Commit 691cf6245ce for nodejs

commit 691cf6245ce585cba223192e944b6dd38e9ec71a
Author: Node.js GitHub Bot <github-bot@iojs.org>
Date:   Tue Sep 29 04:57:54 2026 -0400

    deps: update lief to 1.0.0

    PR-URL: https://github.com/nodejs/node/pull/66345
    Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
    Reviewed-By: Filip Skokan <panva.ip@gmail.com>
    Reviewed-By: Colin Ihrig <cjihrig@gmail.com>

diff --git a/deps/LIEF/LICENSE b/deps/LIEF/LICENSE
index 0c225d7eeb8..f0c1a1afd4c 100644
--- a/deps/LIEF/LICENSE
+++ b/deps/LIEF/LICENSE
@@ -186,8 +186,8 @@
       same "printed page" as the copyright notice for easier
       identification within third-party archives.

-   Copyright 2017 - 2025 R. Thomas
-   Copyright 2017 - 2025 Quarkslab
+   Copyright 2017 - 2026 R. Thomas
+   Copyright 2017 - 2026 Quarkslab

    Licensed under the Apache License, Version 2.0 (the "License");
    you may not use this file except in compliance with the License.
diff --git a/deps/LIEF/README.md b/deps/LIEF/README.md
index 0276c436d97..4e7c41949f3 100644
--- a/deps/LIEF/README.md
+++ b/deps/LIEF/README.md
@@ -17,28 +17,39 @@ modify and abstract ELF, PE and MachO formats.

 **Main features**:

-  * **Parsing**: LIEF can parse [ELF](https://lief.re/doc/latest/formats/elf/index.html), [PE](https://lief.re/doc/latest/formats/pe/index.html), [MachO](https://lief.re/doc/latest/formats/macho/index.html), [COFF](https://lief.re/doc/latest/formats/coff/index.html), OAT, DEX, VDEX, ART and provides an user-friendly API to access to internals.
-  * **Modify**: LIEF can use to modify some parts of these formats (adding a section, changing a symbol's name, ...)
+  * **Parsing**: LIEF can parse [ELF](https://lief.re/doc/latest/formats/elf/index.html), [PE](https://lief.re/doc/latest/formats/pe/index.html), [MachO](https://lief.re/doc/latest/formats/macho/index.html), [COFF](https://lief.re/doc/latest/formats/coff/index.html), OAT, DEX, VDEX, ART and provides a user-friendly API to access their internals.
+  * **Modify**: LIEF can be used to modify some parts of these formats (adding a section, changing a symbol's name, ...)
   * **Abstract**: Three formats have common features like sections, symbols, entry point... LIEF factors them.
-  * **API**: LIEF can be used in [C++](https://lief.re/doc/latest/doxygen/), Python, [Rust](https://lief-rs.s3.fr-par.scw.cloud/doc/latest/lief/index.html) and C
+  * **API**: You can use LIEF via [C++](https://lief.re/doc/latest/doxygen/), Python, [Rust](https://lief-rs.s3.fr-par.scw.cloud/doc/latest/lief/index.html), C and
+    [Node.js](https://github.com/Piebald-AI/node-lief) (unofficial, AI-generated)

 **Extended features**:

+  * [**Runtime**](https://lief.re/doc/latest/runtime/intro.html)
   * [**DWARF/PDB** Support](https://lief.re/doc/latest/extended/debug_info/index.html)
   * [**Objective-C** Metadata](https://lief.re/doc/latest/extended/objc/index.html)
   * [**Dyld Shared Cache**](https://lief.re/doc/latest/extended/dsc/index.html) with support for extracting Dylib
   * [**Disassembler**](https://lief.re/doc/latest/extended/disassembler/index.html): AArch64, x86/x86-64, ARM, RISC-V, Mips, PowerPC, eBPF
-  * [**Assembler**](https://lief.re/doc/latest/extended/assembler/index.html): AArch64, x86/x86-64
+  * [**Assembler**](https://lief.re/doc/latest/extended/assembler/index.html): AArch64, x86/x86-64, RISC-V

 **Plugins**:

   * [**Ghidra**](https://lief.re/doc/latest/plugins/ghidra/index.html)
   * [**BinaryNinja**](https://lief.re/doc/latest/plugins/binaryninja/index.html)

+# Sponsors
+
+<br />
+<p align="center">
+<a href="https://quansight.com/" target="_blank">
+<img width="300px" src="https://lief.re/quansight_logo.jpg"/><br />
+</a>
+</p>
+
 # Content

 - [About](#about)
-- [Download / Install](#downloads--install)
+- [Downloads / Install](#downloads--install)
 - [Getting started](#getting-started)
 - [Blog](https://lief.re/blog/)
 - [Documentation](#documentation)
@@ -56,21 +67,21 @@ modify and abstract ELF, PE and MachO formats.
     - [ELF Coredump](https://lief.re/doc/latest/tutorials/12_elf_coredump.html)
     - [PE Authenticode](https://lief.re/doc/latest/tutorials/13_pe_authenticode.html)
 - [Contact](#contact)
-- [About](#about)
+- [About](#about-1)
   - [Authors](#authors)
   - [License](#license)
   - [Bibtex](#bibtex)

 ## Downloads / Install

-## C++
+### C++

 ```cmake
 find_package(LIEF REQUIRED)
 target_link_libraries(my-project LIEF::LIEF)
 ```

-## Rust
+### Rust

 ```toml
 [package]
@@ -79,10 +90,16 @@ version = "0.0.1"
 edition = "2021"

 [dependencies]
-lief = "0.17.1"
+lief = "1.0.0"
 ```

-## Python
+### Homebrew
+
+```console
+brew install lief
+```
+
+### Python

 To install the latest **version** (release):

@@ -102,7 +119,7 @@ pip install [--user] --force-reinstall --index-url https://lief.s3-website.fr-pa
 - **Nightly**:
   * SDK: https://lief.s3-website.fr-par.scw.cloud/latest/sdk
   * Python Wheels: https://lief.s3-website.fr-par.scw.cloud/latest/lief
-- **v0.17.1**: https://github.com/lief-project/LIEF/releases/tag/0.17.1
+- **v1.0.0**: https://github.com/lief-project/LIEF/releases/tag/1.0.0

 Here are guides to install or integrate LIEF:

@@ -124,15 +141,14 @@ for section in binary.sections:
     print(section.name, section.virtual_address)

 # PE
-binary = lief.parse("C:\\Windows\\explorer.exe")
-
-if rheader := pe.rich_header:
+binary = lief.parse(r"C:\Windows\explorer.exe")
+if (rheader := binary.rich_header) is not None:
     print(rheader.key)

 # Mach-O
 binary = lief.parse("/usr/bin/ls")
-for fixup in binary.dyld_chained_fixups:
-    print(fixup)
+if (fixups := binary.dyld_chained_fixups) is not None:
+    print(fixups)
 ```

 ### Rust
@@ -153,27 +169,30 @@ if let Some(Binary::PE(pe)) = Binary::parse(path.as_str()) {
 ### C++

 ```cpp
+#include <iostream>
 #include <LIEF/LIEF.hpp>

 int main(int argc, char** argv) {
   // ELF
   if (std::unique_ptr<const LIEF::ELF::Binary> elf = LIEF::ELF::Parser::parse("/bin/ls")) {
     for (const LIEF::ELF::Section& section : elf->sections()) {
-      std::cout << section->name() << ' ' << section->virtual_address() << '\n';
+      std::cout << section.name() << ' ' << section.virtual_address() << '\n';
     }
   }

   // PE
   if (std::unique_ptr<const LIEF::PE::Binary> pe = LIEF::PE::Parser::parse("C:\\Windows\\explorer.exe")) {
-    if (const LIEF::PE::RichHeader* rheader : pe->rich_header()) {
+    if (const LIEF::PE::RichHeader* rheader = pe->rich_header()) {
       std::cout << rheader->key() << '\n';
     }
   }

   // Mach-O
   if (std::unique_ptr<LIEF::MachO::FatBinary> macho = LIEF::MachO::Parser::parse("/bin/ls")) {
-    for (const LIEF::MachO::DyldChainedFixups& fixup : macho->dyld_chained_fixups()) {
-      std::cout << fixup << '\n';
+    for (const LIEF::MachO::Binary& bin : *macho) {
+      if (const LIEF::MachO::DyldChainedFixups* fixups = bin.dyld_chained_fixups()) {
+        std::cout << *fixups << '\n';
+      }
     }
   }

@@ -182,25 +201,6 @@ int main(int argc, char** argv) {

 ```

-### C (Limited API)
-
-```cpp
-#include <LIEF/LIEF.h>
-
-int main(int argc, char** argv) {
-  Elf_Binary_t* elf = elf_parse("/usr/bin/ls");
-
-  Elf_Section_t** sections = elf->sections;
-
-  for (size_t i = 0; sections[i] != NULL; ++i) {
-    printf("%s\n", sections[i]->name);
-  }
-
-  elf_binary_destroy(elf);
-  return 0;
-}
-```
-
 ## Documentation

 * [Main documentation](https://lief.re/doc/latest/index.html)
@@ -220,7 +220,7 @@ Romain Thomas ([@rh0main](https://www.romainthomas.fr/)) - Formerly at [Quarksla

 ### License

-LIEF is provided under the [Apache 2.0 license](https://github.com/lief-project/LIEF/blob/0.17.1/LICENSE).
+[Apache 2.0](https://github.com/lief-project/LIEF/blob/1.0.0/LICENSE).

 ### Bibtex

@@ -233,5 +233,3 @@ LIEF is provided under the [Apache 2.0 license](https://github.com/lief-project/
   year         = "2017"
 }
 ```
-
-
diff --git a/deps/LIEF/config/mbedtls/config.h b/deps/LIEF/config/mbedtls/config.h
index 1007c99aee0..fc29d0b91f8 100644
--- a/deps/LIEF/config/mbedtls/config.h
+++ b/deps/LIEF/config/mbedtls/config.h
@@ -1,5 +1,9 @@
 #include "mbedtls/mbedtls_config.h"

-#if defined (MBEDTLS_ARCH_IS_X86)
-#undef MBEDTLS_AESNI_C
+#if defined(MBEDTLS_ARCH_IS_X86)
+  #undef MBEDTLS_AESNI_C
+#endif
+
+#if defined(MBEDTLS_DEBUG_C)
+  #undef MBEDTLS_DEBUG_C
 #endif
diff --git a/deps/LIEF/config/mbedtls/psa_config.h b/deps/LIEF/config/mbedtls/psa_config.h
new file mode 100644
index 00000000000..836d9b1461b
--- /dev/null
+++ b/deps/LIEF/config/mbedtls/psa_config.h
@@ -0,0 +1,14 @@
+// Disable MbedTLS options that are not thread-safe. See
+// `tests/scripts/components-sanitizers.sh` in the MbedTLS tree: both options
+// are unset there when building with MBEDTLS_THREADING_PTHREAD under TSan.
+#if defined(MBEDTLS_THREADING_C)
+  // Self-tests do not currently use multiple threads.
+  #if defined(MBEDTLS_SELF_TEST)
+    #undef MBEDTLS_SELF_TEST
+  #endif
+
+  // Interruptible ECC operations are not thread-safe.
+  #if defined(MBEDTLS_ECP_RESTARTABLE)
+    #undef MBEDTLS_ECP_RESTARTABLE
+  #endif
+#endif
diff --git a/deps/LIEF/include/LIEF/ART.hpp b/deps/LIEF/include/LIEF/ART.hpp
index 7d920b61be4..4695f8f6c42 100644
--- a/deps/LIEF/include/LIEF/ART.hpp
+++ b/deps/LIEF/include/LIEF/ART.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -19,10 +19,10 @@
 #include "LIEF/config.h"

 #if defined(LIEF_ART_SUPPORT)
-#include "LIEF/ART/Parser.hpp"
-#include "LIEF/ART/utils.hpp"
-#include "LIEF/ART/File.hpp"
-#include "LIEF/ART/EnumToString.hpp"
+  #include "LIEF/ART/Parser.hpp"
+  #include "LIEF/ART/utils.hpp"
+  #include "LIEF/ART/File.hpp"
+  #include "LIEF/ART/EnumToString.hpp"
 #endif

 #endif
diff --git a/deps/LIEF/include/LIEF/ART/EnumToString.hpp b/deps/LIEF/include/LIEF/ART/EnumToString.hpp
index a377b91a357..82f0b104bcd 100644
--- a/deps/LIEF/include/LIEF/ART/EnumToString.hpp
+++ b/deps/LIEF/include/LIEF/ART/EnumToString.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -37,4 +37,3 @@ LIEF_API const char* to_string(ART_44::IMAGE_ROOTS e);
 } // namespace LIEF

 #endif
-
diff --git a/deps/LIEF/include/LIEF/ART/File.hpp b/deps/LIEF/include/LIEF/ART/File.hpp
index ea00a53ac18..9f1c8ee330c 100644
--- a/deps/LIEF/include/LIEF/ART/File.hpp
+++ b/deps/LIEF/include/LIEF/ART/File.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -31,10 +31,10 @@ class LIEF_API File : public Object {

   public:
   File& operator=(const File& copy) = delete;
-  File(const File& copy)            = delete;
+  File(const File& copy) = delete;

-  const Header& header() const;
-  Header& header();
+  const Header& header() const LIEF_LIFETIMEBOUND;
+  Header& header() LIEF_LIFETIMEBOUND;

   void accept(Visitor& visitor) const override;

diff --git a/deps/LIEF/include/LIEF/ART/Header.hpp b/deps/LIEF/include/LIEF/ART/Header.hpp
index 3aef2eb4e20..00eaf63c6a9 100644
--- a/deps/LIEF/include/LIEF/ART/Header.hpp
+++ b/deps/LIEF/include/LIEF/ART/Header.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -85,43 +85,43 @@ class LIEF_API Header : public Object {
   ~Header() override;

   private:
-  magic_t       magic_;
-  art_version_t version_;
+  magic_t magic_{};
+  art_version_t version_ = 0;

-  uint32_t image_begin_;
-  uint32_t image_size_;
+  uint32_t image_begin_ = 0;
+  uint32_t image_size_ = 0;

-  uint32_t oat_checksum_;
+  uint32_t oat_checksum_ = 0;

-  uint32_t oat_file_begin_;
-  uint32_t oat_file_end_;
+  uint32_t oat_file_begin_ = 0;
+  uint32_t oat_file_end_ = 0;

-  uint32_t oat_data_begin_;
-  uint32_t oat_data_end_;
+  uint32_t oat_data_begin_ = 0;
+  uint32_t oat_data_end_ = 0;

-  int32_t patch_delta_;
-  uint32_t image_roots_;
+  int32_t patch_delta_ = 0;
+  uint32_t image_roots_ = 0;

-  uint32_t pointer_size_;
+  uint32_t pointer_size_ = 0;

-  bool compile_pic_;
+  bool compile_pic_ = false;

-  uint32_t nb_sections_;
-  uint32_t nb_methods_;
+  uint32_t nb_sections_ = 0;
+  uint32_t nb_methods_ = 0;

-  bool is_pic_;
+  bool is_pic_ = false;

   // From ART 29
   // ===========
-  uint32_t boot_image_begin_;
-  uint32_t boot_image_size_;
+  uint32_t boot_image_begin_ = 0;
+  uint32_t boot_image_size_ = 0;

-  uint32_t boot_oat_begin_;
-  uint32_t boot_oat_size_;
+  uint32_t boot_oat_begin_ = 0;
+  uint32_t boot_oat_size_ = 0;

-  STORAGE_MODES storage_mode_;
+  STORAGE_MODES storage_mode_ = STORAGE_MODES::STORAGE_UNCOMPRESSED;

-  uint32_t data_size_;
+  uint32_t data_size_ = 0;
 };

 } // Namespace ART
diff --git a/deps/LIEF/include/LIEF/ART/Parser.hpp b/deps/LIEF/include/LIEF/ART/Parser.hpp
index 21d2250e4e9..5ff6bed37e7 100644
--- a/deps/LIEF/include/LIEF/ART/Parser.hpp
+++ b/deps/LIEF/include/LIEF/ART/Parser.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -28,14 +28,15 @@ namespace ART {
 class File;


-/// Class which parses an ART file and transform into a ART::File object
+/// Class which parses an ART file and transforms it into an ART::File object
 class LIEF_API Parser {
   public:
   static std::unique_ptr<File> parse(const std::string& file);
-  static std::unique_ptr<File> parse(std::vector<uint8_t> data, const std::string& name = "");
+  static std::unique_ptr<File> parse(std::vector<uint8_t> data,
+                                     const std::string& name = "");

   Parser& operator=(const Parser& copy) = delete;
-  Parser(const Parser& copy)            = delete;
+  Parser(const Parser& copy) = delete;

   private:
   Parser();
@@ -95,8 +96,8 @@ class LIEF_API Parser {


   //// Parse a **Single** java.lang.DexCache object
-  //template<typename ART_T, typename PTR_T>
-  //void parse_class_roots(size_t object_offset);
+  // template<typename ART_T, typename PTR_T>
+  // void parse_class_roots(size_t object_offset);

   std::unique_ptr<File> file_;
   std::unique_ptr<BinaryStream> stream_;
diff --git a/deps/LIEF/include/LIEF/ART/enums.hpp b/deps/LIEF/include/LIEF/ART/enums.hpp
index 2165ea497bd..e149609b43e 100644
--- a/deps/LIEF/include/LIEF/ART/enums.hpp
+++ b/deps/LIEF/include/LIEF/ART/enums.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -21,32 +21,32 @@ namespace ART {

 enum STORAGE_MODES {
   STORAGE_UNCOMPRESSED = 0,
-  STORAGE_LZ4          = 1,
-  STORAGE_LZ4HC        = 2,
+  STORAGE_LZ4 = 1,
+  STORAGE_LZ4HC = 2,
 };

 namespace ART_17 {

 enum IMAGE_METHODS {
-  RESOLUTION_METHOD         = 0,
-  IMT_CONFLICT_METHOD       = 1,
-  IMT_UNIMPLEMENTED_METHOD  = 2,
-  CALLEE_SAVE_METHOD        = 3,
-  REFS_ONLY_SAVE_METHOD     = 4,
+  RESOLUTION_METHOD = 0,
+  IMT_CONFLICT_METHOD = 1,
+  IMT_UNIMPLEMENTED_METHOD = 2,
+  CALLEE_SAVE_METHOD = 3,
+  REFS_ONLY_SAVE_METHOD = 4,
   REFS_AND_ARGS_SAVE_METHOD = 5,
 };

 enum IMAGE_SECTIONS {
-  SECTION_OBJECTS           = 0,
-  SECTION_ART_FIELDS        = 1,
-  SECTION_ART_METHODS       = 2,
-  SECTION_INTERNED_STRINGS  = 3,
-  SECTION_IMAGE_BITMAP      = 4,
+  SECTION_OBJECTS = 0,
+  SECTION_ART_FIELDS = 1,
+  SECTION_ART_METHODS = 2,
+  SECTION_INTERNED_STRINGS = 3,
+  SECTION_IMAGE_BITMAP = 4,
 };

 enum IMAGE_ROOTS {
-  DEX_CACHES   = 0,
-  CLASS_ROOTS  = 1,
+  DEX_CACHES = 0,
+  CLASS_ROOTS = 1,
 };


@@ -59,19 +59,18 @@ using ART_17::IMAGE_METHODS;
 using ART_17::IMAGE_ROOTS;

 enum IMAGE_SECTIONS {
-  SECTION_OBJECTS              = 0,
-  SECTION_ART_FIELDS           = 1,
-  SECTION_ART_METHODS          = 2,
-  SECTION_RUNTIME_METHODS      = 3, // New in ART 29
-  SECTION_IMT_CONFLICT_TABLES  = 4, // New in ART 29
-  SECTION_DEX_CACHE_ARRAYS     = 5, // New in ART 29
-  SECTION_INTERNED_STRINGS     = 6,
-  SECTION_CLASS_TABLE          = 7, // New in ART 29
-  SECTION_IMAGE_BITMAP         = 8,
+  SECTION_OBJECTS = 0,
+  SECTION_ART_FIELDS = 1,
+  SECTION_ART_METHODS = 2,
+  SECTION_RUNTIME_METHODS = 3,     // New in ART 29
+  SECTION_IMT_CONFLICT_TABLES = 4, // New in ART 29
+  SECTION_DEX_CACHE_ARRAYS = 5,    // New in ART 29
+  SECTION_INTERNED_STRINGS = 6,
+  SECTION_CLASS_TABLE = 7, // New in ART 29
+  SECTION_IMAGE_BITMAP = 8,
 };


-
 } // Namespace ART_29


@@ -81,16 +80,16 @@ using ART_29::IMAGE_METHODS;
 using ART_29::IMAGE_ROOTS;

 enum IMAGE_SECTIONS {
-  SECTION_OBJECTS              = 0,
-  SECTION_ART_FIELDS           = 1,
-  SECTION_ART_METHODS          = 2,
-  SECTION_RUNTIME_METHODS      = 3,
-  SECTION_IM_TABLES            = 4, // New in ART 30
-  SECTION_IMT_CONFLICT_TABLES  = 5,
-  SECTION_DEX_CACHE_ARRAYS     = 6,
-  SECTION_INTERNED_STRINGS     = 7,
-  SECTION_CLASS_TABLE          = 8,
-  SECTION_IMAGE_BITMAP         = 9,
+  SECTION_OBJECTS = 0,
+  SECTION_ART_FIELDS = 1,
+  SECTION_ART_METHODS = 2,
+  SECTION_RUNTIME_METHODS = 3,
+  SECTION_IM_TABLES = 4, // New in ART 30
+  SECTION_IMT_CONFLICT_TABLES = 5,
+  SECTION_DEX_CACHE_ARRAYS = 6,
+  SECTION_INTERNED_STRINGS = 7,
+  SECTION_CLASS_TABLE = 8,
+  SECTION_IMAGE_BITMAP = 9,
 };

 } // Namespace ART_30
@@ -100,19 +99,19 @@ namespace ART_44 {
 using ART_30::IMAGE_SECTIONS;

 enum IMAGE_METHODS {
-  RESOLUTION_METHOD            = 0,
-  IMT_CONFLICT_METHOD          = 1,
-  IMT_UNIMPLEMENTED_METHOD     = 2,
+  RESOLUTION_METHOD = 0,
+  IMT_CONFLICT_METHOD = 1,
+  IMT_UNIMPLEMENTED_METHOD = 2,
   SAVE_ALL_CALLEE_SAVES_METHOD = 3, // New in ART 44
-  SAVE_REFS_ONLY_METHOD        = 4, // New in ART 44
-  SAVE_REFS_AND_ARGS_METHOD    = 5, // New in ART 44
-  SAVE_EVERYTHING_METHOD       = 6, // New in ART 44
+  SAVE_REFS_ONLY_METHOD = 4,        // New in ART 44
+  SAVE_REFS_AND_ARGS_METHOD = 5,    // New in ART 44
+  SAVE_EVERYTHING_METHOD = 6,       // New in ART 44
 };


 enum IMAGE_ROOTS {
-  DEX_CACHES   = 0,
-  CLASS_ROOTS  = 1,
+  DEX_CACHES = 0,
+  CLASS_ROOTS = 1,
   CLASS_LOADER = 2, // New in ART 44
 };

diff --git a/deps/LIEF/include/LIEF/ART/hash.hpp b/deps/LIEF/include/LIEF/ART/hash.hpp
index 1aaa7d3acd9..66f0a6a7e11 100644
--- a/deps/LIEF/include/LIEF/ART/hash.hpp
+++ b/deps/LIEF/include/LIEF/ART/hash.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -35,8 +35,8 @@ class LIEF_API Hash : public LIEF::Hash {
   using LIEF::Hash::visit;

   public:
-  void visit(const File& file)      override;
-  void visit(const Header& header)  override;
+  void visit(const File& file) override;
+  void visit(const Header& header) override;

   ~Hash() override;
 };
diff --git a/deps/LIEF/include/LIEF/ART/java_structures.hpp b/deps/LIEF/include/LIEF/ART/java_structures.hpp
index da3514aaffe..5b78d94f981 100644
--- a/deps/LIEF/include/LIEF/ART/java_structures.hpp
+++ b/deps/LIEF/include/LIEF/ART/java_structures.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -49,25 +49,25 @@ struct brooks_read_barrier_t {
 template<class T>
 struct jobject_t {
   heap_reference_t klass;
-  uint32_t         monitor;
-  T                brooks_read_barrier;
+  uint32_t monitor;
+  T brooks_read_barrier;
 };

 template<>
 struct jobject_t<no_brooks_read_barrier_t> {
   heap_reference_t klass;
-  uint32_t         monitor;
+  uint32_t monitor;
 };
 template<class T = no_brooks_read_barrier_t>
 struct ALIGNED_(4) jarray_t {
   jobject_t<T> object;
-  int32_t   length;
+  int32_t length;
   uint32_t* elements;
 };

 template<class T = no_brooks_read_barrier_t>
 struct ALIGNED_(4) jclass_t {
-  jobject_t<T>     object;
+  jobject_t<T> object;

   heap_reference_t class_loader;
   heap_reference_t component_type;
@@ -86,8 +86,8 @@ struct ALIGNED_(4) jclass_t {
   uint64_t virtual_methods;
   uint32_t class_size;
   uint32_t clinit_thread_id;
-  int32_t  dex_class_def_idx;
-  int32_t  dex_type_idx;
+  int32_t dex_class_def_idx;
+  int32_t dex_type_idx;
   uint32_t num_direct_methods;
   uint32_t num_instance_fields;
   uint32_t num_reference_instance_fields;
@@ -97,15 +97,15 @@ struct ALIGNED_(4) jclass_t {
   uint32_t object_size;
   uint32_t primitive_type;
   uint32_t reference_instance_offsets;
-  int32_t  status;
+  int32_t status;
 };

 template<class T = no_brooks_read_barrier_t>
 struct ALIGNED_(4) jstring_t {
   jobject_t<T> object;
-  int32_t      count;
-  uint32_t     hash_code;
-  uint16_t*    value;
+  int32_t count;
+  uint32_t hash_code;
+  uint16_t* value;
 };

 template<class T = no_brooks_read_barrier_t>
@@ -118,7 +118,7 @@ struct ALIGNED_(4) jdex_cache_t {
   heap_reference_t resolved_methods;
   heap_reference_t resolved_types;
   heap_reference_t strings;
-  uint64_t         dex_file;
+  uint64_t dex_file;
 };


@@ -132,7 +132,7 @@ namespace ART_29 {

 /// Namespace related to the Java part of ART 29
 namespace Java {
-using heap_reference_t      = ART_17::Java::heap_reference_t;
+using heap_reference_t = ART_17::Java::heap_reference_t;
 using brooks_read_barrier_t = ART_17::Java::brooks_read_barrier_t;

 template<class T = no_brooks_read_barrier_t>
@@ -143,9 +143,9 @@ using jarray_t = ART_17::Java::jarray_t<T>;

 template<class T = no_brooks_read_barrier_t>
 struct ALIGNED_(4) jclass_t {
-  jobject_t<T>     object;
+  jobject_t<T> object;

-  heap_reference_t annotation_type;           // ADDED in ART 29
+  heap_reference_t annotation_type; // ADDED in ART 29
   heap_reference_t class_loader;
   heap_reference_t component_type;
   heap_reference_t dex_cache;
@@ -153,19 +153,19 @@ struct ALIGNED_(4) jclass_t {
   heap_reference_t iftable;
   heap_reference_t name;
   heap_reference_t super_class;
-  heap_reference_t verify_error;              // Type CHANGED from Class to Object
+  heap_reference_t verify_error; // Type CHANGED from Class to Object
   heap_reference_t vtable;

   uint32_t access_flags;
-  uint64_t dex_cache_strings;                 // direct_methods REPLACED with dex_cache_string
+  uint64_t dex_cache_strings; // direct_methods REPLACED with dex_cache_string
   uint64_t ifields;
-  uint64_t methods;                           // ADDED in ART 29
+  uint64_t methods; // ADDED in ART 29
   uint64_t sfields;
-  uint32_t class_flags;                       // virtual_methods REPLACED with class_flags
+  uint32_t class_flags; // virtual_methods REPLACED with class_flags
   uint32_t class_size;
   uint32_t clinit_thread_id;
-  int32_t  dex_class_def_idx;
-  int32_t  dex_type_idx;
+  int32_t dex_class_def_idx;
+  int32_t dex_type_idx;
   // uint32_t num_direct_methods;             // REMOVED in ART 29
   // uint32_t num_instance_fields;            // REMOVED in ART 29
   uint32_t num_reference_instance_fields;
@@ -175,10 +175,10 @@ struct ALIGNED_(4) jclass_t {
   uint32_t object_size;
   uint32_t primitive_type;
   uint32_t reference_instance_offsets;
-  int32_t  status;
+  int32_t status;

-  uint16_t copied_methods_offset;              // ADDED in ART 29
-  uint16_t virtual_methods_offset;             // ADDED in ART 29
+  uint16_t copied_methods_offset;  // ADDED in ART 29
+  uint16_t virtual_methods_offset; // ADDED in ART 29
 };


@@ -192,20 +192,18 @@ struct ALIGNED_(4) jdex_cache_t {

   heap_reference_t dex;
   heap_reference_t location;
-  uint64_t         dex_file;               // LOCATION CHANGED
-  uint64_t         resolved_fields;        // TYPE CHANGED from heap_reference_t to uint64_t
-  uint64_t         resolved_methods;       // TYPE CHANGED from heap_reference_t to uint64_t
-  uint64_t         resolved_types;         // TYPE CHANGED from heap_reference_t to uint64_t
-  uint64_t         strings;                // TYPE CHANGED from heap_reference_t to uint64_t
-  uint32_t         num_resolved_fields;    // ADDED in ART 29
-  uint32_t         num_resolved_methods;   // ADDED in ART 29
-  uint32_t         num_resolved_types;     // ADDED in ART 29
-  uint32_t         num_strings;            // ADDED in ART 29
+  uint64_t dex_file;             // LOCATION CHANGED
+  uint64_t resolved_fields;      // TYPE CHANGED from heap_reference_t to uint64_t
+  uint64_t resolved_methods;     // TYPE CHANGED from heap_reference_t to uint64_t
+  uint64_t resolved_types;       // TYPE CHANGED from heap_reference_t to uint64_t
+  uint64_t strings;              // TYPE CHANGED from heap_reference_t to uint64_t
+  uint32_t num_resolved_fields;  // ADDED in ART 29
+  uint32_t num_resolved_methods; // ADDED in ART 29
+  uint32_t num_resolved_types;   // ADDED in ART 29
+  uint32_t num_strings;          // ADDED in ART 29
 };


-
-
 } // Namespace Java
 } // Namespace ART_29

@@ -218,7 +216,7 @@ namespace ART_30 {
 /// Namespace related to the Java part of ART 30
 namespace Java {

-using heap_reference_t      = ART_29::Java::heap_reference_t;
+using heap_reference_t = ART_29::Java::heap_reference_t;
 using brooks_read_barrier_t = ART_29::Java::brooks_read_barrier_t;

 template<class T = no_brooks_read_barrier_t>
@@ -250,7 +248,7 @@ namespace ART_44 {
 namespace Java {


-using heap_reference_t      = ART_30::Java::heap_reference_t;
+using heap_reference_t = ART_30::Java::heap_reference_t;
 using brooks_read_barrier_t = ART_30::Java::brooks_read_barrier_t;

 template<class T = no_brooks_read_barrier_t>
@@ -261,13 +259,13 @@ using jarray_t = ART_30::Java::jarray_t<T>;

 template<class T = no_brooks_read_barrier_t>
 struct ALIGNED_(4) jclass_t {
-  jobject_t<T>     object;
+  jobject_t<T> object;

   // heap_reference_t annotation_type;        // REMOVED in ART 44
   heap_reference_t class_loader;
   heap_reference_t component_type;
   heap_reference_t dex_cache;
-  heap_reference_t ext_data;                  // ADDED in ART 44
+  heap_reference_t ext_data; // ADDED in ART 44
   heap_reference_t iftable;
   heap_reference_t name;
   heap_reference_t super_class;
@@ -279,19 +277,19 @@ struct ALIGNED_(4) jclass_t {
   uint64_t ifields;
   uint64_t methods;
   uint64_t sfields;
-  uint32_t access_flags;                      // ADDED in ART 44
+  uint32_t access_flags; // ADDED in ART 44
   uint32_t class_flags;
   uint32_t class_size;
   uint32_t clinit_thread_id;
-  int32_t  dex_class_def_idx;
-  int32_t  dex_type_idx;
+  int32_t dex_class_def_idx;
+  int32_t dex_type_idx;
   uint32_t num_reference_instance_fields;
   uint32_t num_reference_static_fields;
   uint32_t object_size;
-  uint32_t object_size_alloc_fast_path;       // ADDED in ART 44
+  uint32_t object_size_alloc_fast_path; // ADDED in ART 44
   uint32_t primitive_type;
   uint32_t reference_instance_offsets;
-  int32_t  status;
+  int32_t status;
   uint16_t copied_methods_offset;
   uint16_t virtual_methods_offset;
 };
@@ -310,19 +308,19 @@ struct ALIGNED_(4) jdex_cache_t {

   // heap_reference_t dex;                     // REMOVED in ART 44
   heap_reference_t location;
-  uint32_t         num_resolved_call_sites;    // ADDED in ART 44 (related to DEX38 format)
-  uint64_t         dex_file;
-  uint64_t         resolved_call_sites;        // ADDED in ART 44 (related to DEX38 format)
-  uint64_t         resolved_fields;
-  uint64_t         resolved_method_types;      // ADDED in ART 44
-  uint64_t         resolved_methods;
-  uint64_t         resolved_types;
-  uint64_t         strings;
-  uint32_t         num_resolved_fields;
-  uint32_t         num_resolved_methods_types; // ADDED in ART 44
-  uint32_t         num_resolved_methods;
-  uint32_t         num_resolved_types;
-  uint32_t         num_strings;
+  uint32_t num_resolved_call_sites; // ADDED in ART 44 (related to DEX38 format)
+  uint64_t dex_file;
+  uint64_t resolved_call_sites; // ADDED in ART 44 (related to DEX38 format)
+  uint64_t resolved_fields;
+  uint64_t resolved_method_types; // ADDED in ART 44
+  uint64_t resolved_methods;
+  uint64_t resolved_types;
+  uint64_t strings;
+  uint32_t num_resolved_fields;
+  uint32_t num_resolved_methods_types; // ADDED in ART 44
+  uint32_t num_resolved_methods;
+  uint32_t num_resolved_types;
+  uint32_t num_strings;
 };


@@ -338,7 +336,7 @@ namespace ART_46 {
 /// Namespace related to the Java part of ART 46
 namespace Java {

-using heap_reference_t      = ART_44::Java::heap_reference_t;
+using heap_reference_t = ART_44::Java::heap_reference_t;
 using brooks_read_barrier_t = ART_44::Java::brooks_read_barrier_t;

 template<class T = no_brooks_read_barrier_t>
@@ -367,7 +365,7 @@ namespace ART_56 {
 /// Namespace related to the Java part of ART 46
 namespace Java {

-using heap_reference_t      = ART_46::Java::heap_reference_t;
+using heap_reference_t = ART_46::Java::heap_reference_t;
 using brooks_read_barrier_t = ART_46::Java::brooks_read_barrier_t;

 template<class T = no_brooks_read_barrier_t>
@@ -393,5 +391,4 @@ using jdex_cache_t = ART_46::Java::jdex_cache_t<T>;
 } // Namespace LIEF


-
 #endif
diff --git a/deps/LIEF/include/LIEF/ART/json.hpp b/deps/LIEF/include/LIEF/ART/json.hpp
index 3302272bd8c..502f5d6f48c 100644
--- a/deps/LIEF/include/LIEF/ART/json.hpp
+++ b/deps/LIEF/include/LIEF/ART/json.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/deps/LIEF/include/LIEF/ART/types.hpp b/deps/LIEF/include/LIEF/ART/types.hpp
index 706e4143d08..f88380ba0ca 100644
--- a/deps/LIEF/include/LIEF/ART/types.hpp
+++ b/deps/LIEF/include/LIEF/ART/types.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/deps/LIEF/include/LIEF/ART/utils.hpp b/deps/LIEF/include/LIEF/ART/utils.hpp
index fc4bcd8e3ee..4e0e47495fe 100644
--- a/deps/LIEF/include/LIEF/ART/utils.hpp
+++ b/deps/LIEF/include/LIEF/ART/utils.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/deps/LIEF/include/LIEF/ASM.hpp b/deps/LIEF/include/LIEF/ASM.hpp
index 5bc1a376b2c..a09dd1f34b3 100644
--- a/deps/LIEF/include/LIEF/ASM.hpp
+++ b/deps/LIEF/include/LIEF/ASM.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/deps/LIEF/include/LIEF/Abstract.hpp b/deps/LIEF/include/LIEF/Abstract.hpp
index bc10e669486..ee5162f860f 100644
--- a/deps/LIEF/include/LIEF/Abstract.hpp
+++ b/deps/LIEF/include/LIEF/Abstract.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/deps/LIEF/include/LIEF/Abstract/Binary.hpp b/deps/LIEF/include/LIEF/Abstract/Binary.hpp
index 8e4f738a76e..1944a94ad24 100644
--- a/deps/LIEF/include/LIEF/Abstract/Binary.hpp
+++ b/deps/LIEF/include/LIEF/Abstract/Binary.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -20,6 +20,7 @@
 #include <memory>
 #include <unordered_map>

+#include "LIEF/compiler_attributes.hpp"
 #include "LIEF/visibility.h"
 #include "LIEF/Object.hpp"
 #include "LIEF/iterators.hpp"
@@ -58,7 +59,6 @@ class Engine;
 /// Subclasses like LIEF::PE::Binary implement format-specific API
 class LIEF_API Binary : public Object {
   public:
-
   /// Enumeration of virtual address types used for patching and memory access.
   enum class VA_TYPES {
     /// Automatically determine if the address is absolute or relative
@@ -69,7 +69,7 @@ class LIEF_API Binary : public Object {
     RVA = 1,

     /// Absolute Virtual Address.
-    VA = 2
+    VA = 2,
   };

   enum FORMATS {
@@ -131,13 +131,15 @@ class LIEF_API Binary : public Object {
     return get_abstract_header();
   }

-  /// Return an iterator over the abstracted symbols in which the elements **can** be modified
-  it_symbols symbols() {
+  /// Return an iterator over the abstracted symbols in which the elements **can**
+  /// be modified
+  it_symbols symbols() LIEF_LIFETIMEBOUND {
     return get_abstract_symbols();
   }

-  /// Return an iterator over the abstracted symbols in which the elements **can't** be modified
-  it_const_symbols symbols() const {
+  /// Return an iterator over the abstracted symbols in which the elements
+  /// **can't** be modified
+  it_const_symbols symbols() const LIEF_LIFETIMEBOUND {
     return const_cast<Binary*>(this)->get_abstract_symbols();
   }

@@ -148,30 +150,30 @@ class LIEF_API Binary : public Object {

   /// Return the Symbol with the given name
   /// If the symbol does not exist, return a nullptr
-  const Symbol* get_symbol(const std::string& name) const;
+  const Symbol* get_symbol(const std::string& name) const LIEF_LIFETIMEBOUND;

-  Symbol* get_symbol(const std::string& name) {
+  Symbol* get_symbol(const std::string& name) LIEF_LIFETIMEBOUND {
     return const_cast<Symbol*>(static_cast<const Binary*>(this)->get_symbol(name));
   }

   /// Return an iterator over the binary's sections (LIEF::Section)
-  it_sections sections() {
+  it_sections sections() LIEF_LIFETIMEBOUND {
     return get_abstract_sections();
   }

-  it_const_sections sections() const {
+  it_const_sections sections() const LIEF_LIFETIMEBOUND {
     return const_cast<Binary*>(this)->get_abstract_sections();
   }

   /// Remove **all** the sections in the underlying binary
   virtual void remove_section(const std::string& name, bool clear = false) = 0;

-  /// Return an iterator over the binary relocation (LIEF::Relocation)
-  it_relocations relocations() {
+  /// Return an iterator over the binary relocations (LIEF::Relocation)
+  it_relocations relocations() LIEF_LIFETIMEBOUND {
     return get_abstract_relocations();
   }

-  it_const_relocations relocations() const {
+  it_const_relocations relocations() const LIEF_LIFETIMEBOUND {
     return const_cast<Binary*>(this)->get_abstract_relocations();
   }

@@ -199,7 +201,8 @@ class LIEF_API Binary : public Object {
   }

   /// Return the address of the given function name
-  virtual result<uint64_t> get_function_address(const std::string& func_name) const;
+  virtual result<uint64_t>
+      get_function_address(const std::string& func_name) const;

   /// Method so that a ``visitor`` can visit us
   void accept(Visitor& visitor) const override;
@@ -212,7 +215,8 @@ class LIEF_API Binary : public Object {
   /// @param[in] patch_value    Patch to apply
   /// @param[in] addr_type      Specify if the address should be used as an
   ///                           absolute virtual address or a RVA
-  virtual void patch_address(uint64_t address, const std::vector<uint8_t>& patch_value,
+  virtual void patch_address(uint64_t address,
+                             const std::vector<uint8_t>& patch_value,
                              VA_TYPES addr_type = VA_TYPES::AUTO) = 0;

   /// Patch the address with the given value
@@ -220,23 +224,26 @@ class LIEF_API Binary : public Object {
   /// @param[in] address      Address to patch
   /// @param[in] patch_value  Patch to apply
   /// @param[in] size         Size of the value in **bytes** (1, 2, ... 8)
-  /// @param[in] addr_type    Specify if the address should be used as an absolute virtual address or an RVA
-  virtual void patch_address(uint64_t address, uint64_t patch_value, size_t size = sizeof(uint64_t),
+  /// @param[in] addr_type    Specify if the address should be used as an absolute
+  /// virtual address or an RVA
+  virtual void patch_address(uint64_t address, uint64_t patch_value,
+                             size_t size = sizeof(uint64_t),
                              VA_TYPES addr_type = VA_TYPES::AUTO) = 0;

   /// Return the content located at the given virtual address
-  virtual span<const uint8_t>
-    get_content_from_virtual_address(uint64_t virtual_address, uint64_t size,
-                                     VA_TYPES addr_type = VA_TYPES::AUTO) const = 0;
+  virtual span<const uint8_t> get_content_from_virtual_address(
+      uint64_t virtual_address, uint64_t size, VA_TYPES addr_type = VA_TYPES::AUTO
+  ) const LIEF_LIFETIMEBOUND = 0;

   /// Get the integer value at the given virtual address
   template<class T>
-  LIEF::result<T> get_int_from_virtual_address(
-    uint64_t va, VA_TYPES addr_type = VA_TYPES::AUTO) const
-  {
+  LIEF::result<T>
+      get_int_from_virtual_address(uint64_t va,
+                                   VA_TYPES addr_type = VA_TYPES::AUTO) const {
     T value;
     static_assert(std::is_integral<T>::value, "Require an integral type");
-    span<const uint8_t> raw = get_content_from_virtual_address(va, sizeof(T), addr_type);
+    span<const uint8_t> raw =
+        get_content_from_virtual_address(va, sizeof(T), addr_type);
     if (raw.empty() || raw.size() < sizeof(T)) {
       return make_error_code(lief_errors::read_error);
     }
@@ -270,14 +277,17 @@ class LIEF_API Binary : public Object {
   /// Convert the given offset into a virtual address.
   ///
   /// @param[in] offset   The offset to convert.
-  /// @param[in] slide    If not 0, it will replace the default base address (if any)
-  virtual result<uint64_t> offset_to_virtual_address(uint64_t offset, uint64_t slide = 0) const = 0;
+  /// @param[in] slide    If not 0, it will replace the default base address (if
+  /// any)
+  virtual result<uint64_t> offset_to_virtual_address(uint64_t offset,
+                                                     uint64_t slide = 0) const = 0;

   virtual std::ostream& print(std::ostream& os) const {
     return os;
   }

-  LIEF_API friend std::ostream& operator<<(std::ostream& os, const Binary& binary) {
+  LIEF_API friend std::ostream& operator<<(std::ostream& os,
+                                           const Binary& binary) {
     binary.print(os);
     return os;
   }
@@ -293,9 +303,9 @@ class LIEF_API Binary : public Object {
   /// use LIEF::pdb::load() or LIEF::pdb::DebugInfo::from_file() to get PDB debug
   /// info.
   ///
-  /// \warning This function requires LIEF's extended version otherwise it
-  /// **always** return a nullptr
-  DebugInfo* debug_info() const;
+  /// @warning This function requires LIEF's extended version otherwise it
+  /// **always** returns a nullptr
+  DebugInfo* debug_info() const LIEF_LIFETIMEBOUND;

   /// Disassemble code starting at the given virtual address and with the given
   /// size.
@@ -307,7 +317,7 @@ class LIEF_API Binary : public Object {
   /// }
   /// ```
   ///
-  /// \see LIEF::assembly::Instruction
+  /// @see LIEF::assembly::Instruction
   instructions_it disassemble(uint64_t address, size_t size) const;

   /// Disassemble code starting at the given virtual address
@@ -319,7 +329,7 @@ class LIEF_API Binary : public Object {
   /// }
   /// ```
   ///
-  /// \see LIEF::assembly::Instruction
+  /// @see LIEF::assembly::Instruction
   instructions_it disassemble(uint64_t address) const;

   /// Disassemble code for the given symbol name
@@ -331,13 +341,13 @@ class LIEF_API Binary : public Object {
   /// }
   /// ```
   ///
-  /// \see LIEF::assembly::Instruction
+  /// @see LIEF::assembly::Instruction
   instructions_it disassemble(const std::string& function) const;

   /// Disassemble code provided by the given buffer at the specified
   /// `address` parameter.
   ///
-  /// \see LIEF::assembly::Instruction
+  /// @see LIEF::assembly::Instruction
   instructions_it disassemble(const uint8_t* buffer, size_t size,
                               uint64_t address = 0) const;

@@ -345,7 +355,7 @@ class LIEF_API Binary : public Object {
   /// Disassemble code provided by the given vector of bytes at the specified
   /// `address` parameter.
   ///
-  /// \see LIEF::assembly::Instruction
+  /// @see LIEF::assembly::Instruction
   instructions_it disassemble(const std::vector<uint8_t>& buffer,
                               uint64_t address = 0) const {
     return disassemble(buffer.data(), buffer.size(), address);
@@ -356,7 +366,8 @@ class LIEF_API Binary : public Object {
     return disassemble(buffer.data(), buffer.size(), address);
   }

-  instructions_it disassemble(LIEF::span<uint8_t> buffer, uint64_t address = 0) const {
+  instructions_it disassemble(LIEF::span<uint8_t> buffer,
+                              uint64_t address = 0) const {
     return disassemble(buffer.data(), buffer.size(), address);
   }

@@ -374,17 +385,18 @@ class LIEF_API Binary : public Object {
   /// If you need to configure the assembly engine or to define addresses for
   /// symbols, you can provide your own assembly::AssemblerConfig.
   std::vector<uint8_t> assemble(uint64_t address, const std::string& Asm,
-      assembly::AssemblerConfig& config = assembly::AssemblerConfig::default_config());
+                                assembly::AssemblerConfig& config =
+                                    assembly::AssemblerConfig::default_config());

   /// Assemble **and patch** the address with the given LLVM MCInst.
   ///
-  /// \warning Because of ABI compatibility, this MCInst can **only be used**
+  /// @warning Because of ABI compatibility, this MCInst can **only be used**
   ///          with the **same** version of LLVM used by LIEF (see documentation)
   std::vector<uint8_t> assemble(uint64_t address, const llvm::MCInst& inst);

   /// Assemble **and patch** the address with the given LLVM MCInst.
   ///
-  /// \warning Because of ABI compatibility, this MCInst can **only be used**
+  /// @warning Because of ABI compatibility, this MCInst can **only be used**
   ///          with the **same** version of LLVM used by LIEF (see documentation)
   std::vector<uint8_t> assemble(uint64_t address,
                                 const std::vector<llvm::MCInst>& insts);
@@ -393,23 +405,30 @@ class LIEF_API Binary : public Object {
   /// the format of the current binary
   virtual uint64_t page_size() const;

-  /// Load and associate an external debug file (e.g., DWARF or PDB) with this binary.
+  /// Load and associate an external debug file (e.g., DWARF or PDB) with this
+  /// binary.
   ///
-  /// This method attempts to load the debug information from the file located at the given path,
-  /// and binds it to the current binary instance. If successful, it returns a pointer to the
-  /// loaded DebugInfo object.
+  /// This method attempts to load the debug information from the file located at
+  /// the given path, and binds it to the current binary instance. If successful,
+  /// it returns a pointer to the loaded DebugInfo object.
   ///
-  /// \param path Path to the external debug file (e.g., `.dwarf`, `.pdb`)
-  /// \return Pointer to the loaded DebugInfo object on success, or `nullptr` on failure.
+  /// @param path Path to the external debug file (e.g., `.dwarf`, `.pdb`)
+  /// @return Pointer to the loaded DebugInfo object on success, or `nullptr` on
+  /// failure.
   ///
-  /// \warning It is the caller's responsibility to ensure that the debug file is
+  /// @warning It is the caller's responsibility to ensure that the debug file is
   ///          compatible with the binary. Incorrect associations may lead to
   ///          inconsistent or invalid results.
   ///
-  /// \note This function does not verify that the debug file matches the binary's unique
-  ///       identifier (e.g., build ID, GUID).
+  /// @note This function does not verify that the debug file matches the binary's
+  ///       unique identifier (e.g., build ID, GUID).
   DebugInfo* load_debug_info(const std::string& path);

+  /// Size of the binary when mapped in memory
+  virtual uint64_t virtual_size() const {
+    return 0;
+  }
+
   protected:
   FORMATS format_ = FORMATS::UNKNOWN;
   mutable std::unique_ptr<DebugInfo> debug_info_;
@@ -421,14 +440,15 @@ class LIEF_API Binary : public Object {
   template<uint32_t Key, class F>
   LIEF_LOCAL assembly::Engine* get_cache_engine(uint64_t address, F&& f) const;

-  // These functions need to be overloaded by the object that claims to extend this Abstract Binary
+  // These functions need to be overloaded by the object that claims to extend this
+  // Abstract Binary
   virtual Header get_abstract_header() const = 0;
   virtual symbols_t get_abstract_symbols() = 0;
   virtual sections_t get_abstract_sections() = 0;
   virtual relocations_t get_abstract_relocations() = 0;

-  virtual functions_t  get_abstract_exported_functions() const = 0;
-  virtual functions_t  get_abstract_imported_functions() const = 0;
+  virtual functions_t get_abstract_exported_functions() const = 0;
+  virtual functions_t get_abstract_imported_functions() const = 0;
   virtual std::vector<std::string> get_abstract_imported_libraries() const = 0;
 };

diff --git a/deps/LIEF/include/LIEF/Abstract/DebugInfo.hpp b/deps/LIEF/include/LIEF/Abstract/DebugInfo.hpp
index 24961cf7913..5792a14b3b0 100644
--- a/deps/LIEF/include/LIEF/Abstract/DebugInfo.hpp
+++ b/deps/LIEF/include/LIEF/Abstract/DebugInfo.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -34,13 +34,14 @@ class DebugInfo;
 /// Users can use this interface to access high-level debug features like
 /// resolving function addresses.
 ///
-/// See: LIEF::pdb::DebugInfo, LIEF::dwarf::DebugInfo
+/// @see LIEF::pdb::DebugInfo, LIEF::dwarf::DebugInfo
 class LIEF_API DebugInfo {
   public:
   friend class Binary;
   enum class FORMAT {
     UNKNOWN = 0,
-    DWARF, PDB,
+    DWARF,
+    PDB,
   };
   DebugInfo(std::unique_ptr<details::DebugInfo> impl);

@@ -61,7 +62,7 @@ class LIEF_API DebugInfo {
   template<class T>
   const T* as() const {
     static_assert(std::is_base_of<DebugInfo, T>::value,
-                  "Require Instruction inheritance");
+                  "Requires DebugInfo inheritance");
     if (T::classof(this)) {
       return static_cast<const T*>(this);
     }
@@ -69,7 +70,8 @@ class LIEF_API DebugInfo {
   }

   /// Attempt to resolve the address of the function specified by `name`.
-  virtual optional<uint64_t> find_function_address(const std::string& name) const = 0;
+  virtual optional<uint64_t>
+      find_function_address(const std::string& name) const = 0;

   protected:
   std::unique_ptr<details::DebugInfo> impl_;
diff --git a/deps/LIEF/include/LIEF/Abstract/Function.hpp b/deps/LIEF/include/LIEF/Abstract/Function.hpp
index 66004763d6e..f41bbc0424a 100644
--- a/deps/LIEF/include/LIEF/Abstract/Function.hpp
+++ b/deps/LIEF/include/LIEF/Abstract/Function.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -50,24 +50,21 @@ class LIEF_API Function : public Symbol {
     /// returns its virtual address in the binary
     EXPORTED = 1 << 3,

-    /// The function is **imported** by the binary and the address() should return 0
+    /// The function is **imported** by the binary and the address() should return
+    /// 0
     IMPORTED = 1 << 4,
   };

   public:
   Function() = default;
   Function(const std::string& name) :
-    Symbol(name)
-  {}
+    Symbol(name) {}
   Function(uint64_t address) :
-    Function("", address)
-  {}
+    Function("", address) {}
   Function(const std::string& name, uint64_t address) :
-    Symbol(name, address)
-  {}
+    Symbol(name, address) {}
   Function(const std::string& name, uint64_t address, FLAGS flags) :
-    Function(name, address)
-  {
+    Function(name, address) {
     flags_ = flags;
   }

@@ -94,8 +91,8 @@ class LIEF_API Function : public Symbol {
     return ((uint32_t)flags_ & (uint32_t)f) != 0;
   }

-  /// Address of the current function. For functions that are set with the FLAGS::IMPORTED flag,
-  /// this value is likely 0.
+  /// Address of the current function. For functions that are set with the
+  /// FLAGS::IMPORTED flag, this value is likely 0.
   uint64_t address() const {
     return value_;
   }
@@ -106,7 +103,8 @@ class LIEF_API Function : public Symbol {

   void accept(Visitor& visitor) const override;

-  LIEF_API friend std::ostream& operator<<(std::ostream& os, const Function& entry);
+  LIEF_API friend std::ostream& operator<<(std::ostream& os,
+                                           const Function& entry);

   protected:
   FLAGS flags_ = FLAGS::NONE;
@@ -118,4 +116,3 @@ LIEF_API const char* to_string(Function::FLAGS e);
 ENABLE_BITMASK_OPERATORS(LIEF::Function::FLAGS);

 #endif
-
diff --git a/deps/LIEF/include/LIEF/Abstract/Header.hpp b/deps/LIEF/include/LIEF/Abstract/Header.hpp
index 036e64cf5a5..55ade3dffee 100644
--- a/deps/LIEF/include/LIEF/Abstract/Header.hpp
+++ b/deps/LIEF/include/LIEF/Abstract/Header.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -67,9 +67,9 @@ class LIEF_API Header : public Object {
     BITS_16 = 1LLU << 0, /// 16-bits architecture
     BITS_32 = 1LLU << 1, /// 32-bits architecture
     BITS_64 = 1LLU << 2, /// 64-bits architecture
-    THUMB   = 1LLU << 3, /// Support ARM Thumb mode
+    THUMB = 1LLU << 3,   /// Support ARM Thumb mode

-    ARM64E  = 1LLU << 4, /// ARM64 with extended (security) features
+    ARM64E = 1LLU << 4, /// ARM64 with extended (security) features
   };

   enum class OBJECT_TYPES {
@@ -130,7 +130,7 @@ class LIEF_API Header : public Object {

   protected:
   ARCHITECTURES architecture_ = ARCHITECTURES::UNKNOWN;
-  OBJECT_TYPES  object_type_ = OBJECT_TYPES::UNKNOWN;
+  OBJECT_TYPES object_type_ = OBJECT_TYPES::UNKNOWN;
   uint64_t entrypoint_ = 0;
   ENDIANNESS endianness_ = ENDIANNESS::UNKNOWN;
   MODES modes_ = MODES::NONE;
diff --git a/deps/LIEF/include/LIEF/Abstract/Parser.hpp b/deps/LIEF/include/LIEF/Abstract/Parser.hpp
index 9a3665192bb..8a252cf68cc 100644
--- a/deps/LIEF/include/LIEF/Abstract/Parser.hpp
+++ b/deps/LIEF/include/LIEF/Abstract/Parser.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -18,6 +18,7 @@

 #include <string>
 #include <memory>
+#include <cstdint>
 #include <vector>

 #include "LIEF/visibility.h"
@@ -50,7 +51,7 @@ class LIEF_API Parser {

   protected:
   Parser(const std::string& file);
-  uint64_t binary_size_  = 0;
+  uint64_t binary_size_ = 0;

   virtual ~Parser();
   Parser();
diff --git a/deps/LIEF/include/LIEF/Abstract/Relocation.hpp b/deps/LIEF/include/LIEF/Abstract/Relocation.hpp
index c22f8e7a508..339a0d3f609 100644
--- a/deps/LIEF/include/LIEF/Abstract/Relocation.hpp
+++ b/deps/LIEF/include/LIEF/Abstract/Relocation.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -32,8 +32,7 @@ class LIEF_API Relocation : public Object {
   /// Constructor from a relocation's address and size
   Relocation(uint64_t address, uint8_t size) :
     address_(address),
-    size_(size)
-  {}
+    size_(size) {}

   ~Relocation() override = default;

@@ -41,7 +40,7 @@ class LIEF_API Relocation : public Object {
   Relocation(const Relocation&) = default;
   void swap(Relocation& other) {
     std::swap(address_, other.address_);
-    std::swap(size_,    other.size_);
+    std::swap(size_, other.size_);
   }

   /// Relocation's address
@@ -66,31 +65,32 @@ class LIEF_API Relocation : public Object {
   void accept(Visitor& visitor) const override;


-  /// Comparaison based on the Relocation's **address**
+  /// Comparison based on the Relocation's **address**
   virtual bool operator<(const Relocation& rhs) const {
     return address() < rhs.address();
   }

-  /// Comparaison based on the Relocation's **address**
+  /// Comparison based on the Relocation's **address**
   virtual bool operator<=(const Relocation& rhs) const {
     return !(address() > rhs.address());
   }

-  /// Comparaison based on the Relocation's **address**
+  /// Comparison based on the Relocation's **address**
   virtual bool operator>(const Relocation& rhs) const {
     return address() > rhs.address();
   }

-  /// Comparaison based on the Relocation's **address**
+  /// Comparison based on the Relocation's **address**
   virtual bool operator>=(const Relocation& rhs) const {
     return !(address() < rhs.address());
   }

-  LIEF_API friend std::ostream& operator<<(std::ostream& os, const Relocation& entry);
+  LIEF_API friend std::ostream& operator<<(std::ostream& os,
+                                           const Relocation& entry);

   protected:
   uint64_t address_ = 0;
-  uint8_t  size_ = 0;
+  uint8_t size_ = 0;
 };


diff --git a/deps/LIEF/include/LIEF/Abstract/Section.hpp b/deps/LIEF/include/LIEF/Abstract/Section.hpp
index eb89b42ccc5..8e912950073 100644
--- a/deps/LIEF/include/LIEF/Abstract/Section.hpp
+++ b/deps/LIEF/include/LIEF/Abstract/Section.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -22,6 +22,7 @@

 #include "LIEF/span.hpp"
 #include "LIEF/Object.hpp"
+#include "LIEF/compiler_attributes.hpp"
 #include "LIEF/visibility.h"

 namespace LIEF {
@@ -32,27 +33,26 @@ class LIEF_API Section : public Object {

   Section() = default;
   Section(std::string name) :
-    name_(std::move(name))
-  {}
+    name_(std::move(name)) {}

   ~Section() override = default;

   Section& operator=(const Section&) = default;
   Section(const Section&) = default;

-  /// section's name
+  /// Section's name
   virtual std::string name() const {
     return name_.c_str();
   }

-  /// Return the **complete** section's name which might
+  /// Return the **complete** section's name which might include
   /// trailing (``0``) bytes
   virtual const std::string& fullname() const {
     return name_;
   }

-  ///  section's content
-  virtual span<const uint8_t> content() const {
+  /// Section's content
+  virtual span<const uint8_t> content() const LIEF_LIFETIMEBOUND {
     return {};
   }

@@ -61,7 +61,7 @@ class LIEF_API Section : public Object {
     size_ = size;
   }

-  /// section's size (size in the binary, not the virtual size)
+  /// Section's size (size in the binary, not the virtual size)
   virtual uint64_t size() const {
     return size_;
   }
@@ -118,9 +118,9 @@ class LIEF_API Section : public Object {

   protected:
   std::string name_;
-  uint64_t    virtual_address_ = 0;
-  uint64_t    size_ = 0;
-  uint64_t    offset_ = 0;
+  uint64_t virtual_address_ = 0;
+  uint64_t size_ = 0;
+  uint64_t offset_ = 0;

   private:
   template<typename T>
diff --git a/deps/LIEF/include/LIEF/Abstract/Symbol.hpp b/deps/LIEF/include/LIEF/Abstract/Symbol.hpp
index 8d9802beec3..ce4ed5d3aeb 100644
--- a/deps/LIEF/include/LIEF/Abstract/Symbol.hpp
+++ b/deps/LIEF/include/LIEF/Abstract/Symbol.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -29,16 +29,16 @@ class LIEF_API Symbol : public Object {
   public:
   Symbol() = default;
   Symbol(std::string name) :
-    name_(std::move(name))
-  {}
+    name_(std::move(name)) {}

   Symbol(std::string name, uint64_t value) :
-    name_(std::move(name)), value_(value)
-  {}
+    name_(std::move(name)),
+    value_(value) {}

   Symbol(std::string name, uint64_t value, uint64_t size) :
-    name_(std::move(name)), value_(value), size_(size)
-  {}
+    name_(std::move(name)),
+    value_(value),
+    size_(size) {}

   Symbol(const Symbol&) = default;
   Symbol& operator=(const Symbol&) = default;
@@ -64,7 +64,7 @@ class LIEF_API Symbol : public Object {
     name_ = std::move(name);
   }

-  // Symbol's value which is usually the **address** of the symbol
+  /// Symbol's value which is usually the **address** of the symbol
   virtual uint64_t value() const {
     return value_;
   }
@@ -72,7 +72,7 @@ class LIEF_API Symbol : public Object {
     value_ = value;
   }

-  /// This size of the symbol (when applicable)
+  /// The size of the symbol (when applicable)
   virtual uint64_t size() const {
     return size_;
   }
@@ -94,4 +94,3 @@ class LIEF_API Symbol : public Object {
 }

 #endif
-
diff --git a/deps/LIEF/include/LIEF/Abstract/hash.hpp b/deps/LIEF/include/LIEF/Abstract/hash.hpp
index 26f4a375f44..b38537966bf 100644
--- a/deps/LIEF/include/LIEF/Abstract/hash.hpp
+++ b/deps/LIEF/include/LIEF/Abstract/hash.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -34,12 +34,12 @@ class LIEF_API AbstractHash : public LIEF::Hash {
   using LIEF::Hash::visit;

   public:
-  void visit(const Binary& binary)         override;
-  void visit(const Header& header)         override;
-  void visit(const Section& section)       override;
-  void visit(const Symbol& symbol)         override;
+  void visit(const Binary& binary) override;
+  void visit(const Header& header) override;
+  void visit(const Section& section) override;
+  void visit(const Symbol& symbol) override;
   void visit(const Relocation& relocation) override;
-  void visit(const Function& function)     override;
+  void visit(const Function& function) override;

   ~AbstractHash() override;
 };
diff --git a/deps/LIEF/include/LIEF/Abstract/json.hpp b/deps/LIEF/include/LIEF/Abstract/json.hpp
index fa05cec3458..c133c1b54a9 100644
--- a/deps/LIEF/include/LIEF/Abstract/json.hpp
+++ b/deps/LIEF/include/LIEF/Abstract/json.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -26,5 +26,4 @@ LIEF_API std::string to_json_from_abstract(const Object& v);

 }

-#endif // LIEF_JSON_SUPPORT
-
+#endif
diff --git a/deps/LIEF/include/LIEF/BinaryStream/ASN1Reader.hpp b/deps/LIEF/include/LIEF/BinaryStream/ASN1Reader.hpp
index 385bb35dd22..e0f15ec8d49 100644
--- a/deps/LIEF/include/LIEF/BinaryStream/ASN1Reader.hpp
+++ b/deps/LIEF/include/LIEF/BinaryStream/ASN1Reader.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -34,8 +34,7 @@ class ASN1Reader {
   ASN1Reader() = delete;

   ASN1Reader(BinaryStream& stream) :
-    stream_(stream)
-  {}
+    stream_(stream) {}

   ASN1Reader(const ASN1Reader&) = delete;
   ASN1Reader& operator=(const ASN1Reader&) = delete;
diff --git a/deps/LIEF/include/LIEF/BinaryStream/BinaryStream.hpp b/deps/LIEF/include/LIEF/BinaryStream/BinaryStream.hpp
index 48c16034e1d..6be76072b0a 100644
--- a/deps/LIEF/include/LIEF/BinaryStream/BinaryStream.hpp
+++ b/deps/LIEF/include/LIEF/BinaryStream/BinaryStream.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -21,6 +21,7 @@
 #include <cstring>
 #include <string>
 #include <algorithm>
+#include <utility>

 #include "LIEF/endianness_support.hpp"
 #include "LIEF/errors.hpp"
@@ -28,6 +29,7 @@

 namespace LIEF {
 class ASN1Reader;
+class Binary;

 /// Class that is used to a read stream of data from different sources
 class LIEF_API BinaryStream {
@@ -40,13 +42,13 @@ class LIEF_API BinaryStream {
     MEMORY,
     SPAN,
     FILE,
+    DUMP,

     ELF_DATA_HANDLER,
   };

   BinaryStream(STREAM_TYPE type) :
-    stype_(type)
-  {}
+    stype_(type) {}
   virtual ~BinaryStream() = default;
   virtual uint64_t size() const = 0;

@@ -54,6 +56,18 @@ class LIEF_API BinaryStream {
     return stype_;
   }

+  bool is_memory_stream() const {
+    return type() == STREAM_TYPE::MEMORY;
+  }
+
+  bool is_dump_stream() const {
+    return type() == STREAM_TYPE::DUMP;
+  }
+
+  bool is_memory_view() const {
+    return is_memory_stream() || is_dump_stream();
+  }
+
   result<uint64_t> read_uleb128(size_t* size = nullptr) const;
   result<uint64_t> read_sleb128(size_t* size = nullptr) const;

@@ -61,7 +75,9 @@ class LIEF_API BinaryStream {

   result<std::string> read_string(size_t maxsize = ~static_cast<size_t>(0)) const;
   result<std::string> peek_string(size_t maxsize = ~static_cast<size_t>(0)) const;
-  result<std::string> peek_string_at(size_t offset, size_t maxsize = ~static_cast<size_t>(0)) const;
+  result<std::string>
+      peek_string_at(size_t offset,
+                     size_t maxsize = ~static_cast<size_t>(0)) const;

   result<std::u16string> read_u16string() const;
   result<std::u16string> peek_u16string() const;
@@ -73,27 +89,31 @@ class LIEF_API BinaryStream {
   result<std::u16string> peek_u16string_at(size_t offset, size_t length) const;


-  virtual ok_error_t peek_data(std::vector<uint8_t>& container,
-                               uint64_t offset, uint64_t size,
-                               uint64_t virtual_address = 0)
-  {
+  virtual ok_error_t peek_data(std::vector<uint8_t>& container, uint64_t offset,
+                               uint64_t size, uint64_t virtual_address = 0) {
     if (size == 0) {
       return ok();
     }
     // Even though offset + size < ... => offset < ...
     // the addition could overflow so it's worth checking both
-    const bool read_ok = offset <= this->size() && (offset + size) <= this->size()
-                                                /* Check for an overflow */
-                                                && (static_cast<int64_t>(offset) >= 0 && static_cast<int64_t>(size) >= 0)
-                                                && (static_cast<int64_t>(offset + size) >= 0);
+    const bool read_ok = offset <= this->size() &&
+                         (offset + size) <= this->size()
+                         /* Check for an overflow */
+                         && (static_cast<int64_t>(offset) >= 0 &&
+                             static_cast<int64_t>(size) >= 0) &&
+                         (static_cast<int64_t>(offset + size) >= 0);
     if (!read_ok) {
       return make_error_code(lief_errors::read_error);
     }
-    container.resize(size);
-    if (peek_in(container.data(), offset, size, virtual_address)) {
-      return ok();
+
+    if (container.size() < size) {
+      std::vector<uint8_t> buffer(size);
+      const ok_error_t res = peek_in(buffer.data(), offset, size, virtual_address);
+      container = std::move(buffer);
+      return res;
     }
-    return make_error_code(lief_errors::read_error);
+
+    return peek_in(container.data(), offset, size, virtual_address);
   }

   virtual ok_error_t read_data(std::vector<uint8_t>& container, uint64_t size) {
@@ -130,7 +150,8 @@ class LIEF_API BinaryStream {
   }

   template<class T>
-  ok_error_t peek_objects_at(uint64_t offset, std::vector<T>& container, uint64_t count) {
+  ok_error_t peek_objects_at(uint64_t offset, std::vector<T>& container,
+                             uint64_t count) {
     if (count == 0) {
       return ok();
     }
@@ -144,22 +165,25 @@ class LIEF_API BinaryStream {
       return make_error_code(lief_errors::read_error);
     }

-    container.resize(count);
+    ok_error_t res = make_error_code(lief_errors::inconsistent);

-    if (!peek_in(container.data(), pos(), size)) {
-      setpos(current_p);
-      return make_error_code(lief_errors::read_error);
+    if (container.size() < count) {
+      std::vector<T> buffer(count);
+      res = peek_in(buffer.data(), pos(), size);
+      container = std::move(buffer);
+    } else {
+      res = peek_in(container.data(), pos(), size);
     }

     setpos(current_p);
-    return ok();
+    return res;
   }

   void setpos(size_t pos) const {
     pos_ = pos;
   }

-  const BinaryStream& increment_pos(size_t value) const {
+  const BinaryStream& increment_pos(size_t value) const LIEF_LIFETIMEBOUND {
     pos_ += value;
     return *this;
   }
@@ -176,10 +200,14 @@ class LIEF_API BinaryStream {
     return pos_;
   }

-  operator bool() const {
+  bool is_valid() const {
     return pos_ < size();
   }

+  operator bool() const {
+    return is_valid();
+  }
+
   template<class T>
   const T* read_array(size_t size) const;

@@ -190,10 +218,12 @@ class LIEF_API BinaryStream {
     }
     // Even though offset + size < ... => offset < ...
     // the addition could overflow so it's worth checking both
-    const bool read_ok = pos_ <= size() && (pos_ + N) <= size()
-      /* Check for an overflow */
-      && (static_cast<int64_t>(pos_) >= 0 && static_cast<int64_t>(N) >= 0)
-      && (static_cast<int64_t>(pos_ + N) >= 0);
+    const bool read_ok =
+        pos_ <= size() &&
+        (pos_ + N) <= size()
+        /* Check for an overflow */
+        && (static_cast<int64_t>(pos_) >= 0 && static_cast<int64_t>(N) >= 0) &&
+        (static_cast<int64_t>(pos_ + N) >= 0);

     if (!read_ok) {
       return make_error_code(lief_errors::read_error);
@@ -236,7 +266,8 @@ class LIEF_API BinaryStream {
   bool can_read(size_t offset) const;

   bool can_read(int64_t offset, int64_t size) const {
-    return offset < (int64_t)this->size() && (offset + size) < (int64_t)this->size();
+    return offset < (int64_t)this->size() &&
+           size < ((int64_t)this->size() - offset);
   }

   size_t align(size_t align_on) const;
@@ -247,16 +278,15 @@ class LIEF_API BinaryStream {

   template<class T>
   static bool is_all_zero(const T& buffer) {
-    const auto* ptr = reinterpret_cast<const uint8_t *const>(&buffer);
-    return std::all_of(ptr, ptr + sizeof(T),
-                       [] (uint8_t x) { return x == 0; });
+    const auto* ptr = reinterpret_cast<const uint8_t* const>(&buffer);
+    return std::all_of(ptr, ptr + sizeof(T), [](uint8_t x) { return x == 0; });
   }

   bool should_swap() const {
     return endian_swap_;
   }

-  virtual const uint8_t* p() const  {
+  virtual const uint8_t* p() const {
     return nullptr;
   }

@@ -284,11 +314,10 @@ class LIEF_API BinaryStream {
                                       uint64_t virtual_address = 0) const = 0;
   virtual ok_error_t peek_in(void* dst, uint64_t offset, uint64_t size,
                              uint64_t virtual_address = 0) const {
+    if (dst == nullptr) {
+      return make_error_code(lief_errors::read_error);
+    }
     if (auto raw = read_at(offset, size, virtual_address)) {
-      if (dst == nullptr) {
-        return make_error_code(lief_errors::read_error);
-      }
-
       const void* ptr = *raw;

       if (ptr == nullptr) {
@@ -301,6 +330,25 @@ class LIEF_API BinaryStream {
     return make_error_code(lief_errors::read_error);
   }

+  template<class T>
+  const T* cast() const {
+    static_assert(std::is_base_of<BinaryStream, T>::value,
+                  "Require BinaryStream inheritance");
+    if (T::classof(*this)) {
+      return static_cast<const T*>(this);
+    }
+    return nullptr;
+  }
+
+  template<class T>
+  T* cast() {
+    return const_cast<T*>(static_cast<const BinaryStream*>(this)->cast<T>());
+  }
+
+  virtual bool bind_binary(Binary& /*bin*/) {
+    return false;
+  }
+
   protected:
   BinaryStream() = default;

@@ -319,15 +367,13 @@ class ScopedStream {

   explicit ScopedStream(BinaryStream& stream, uint64_t pos) :
     pos_{stream.pos()},
-    stream_{stream}
-  {
+    stream_{stream} {
     stream_.setpos(pos);
   }

   explicit ScopedStream(BinaryStream& stream) :
     pos_{stream.pos()},
-    stream_{stream}
-  {}
+    stream_{stream} {}

   ~ScopedStream() {
     stream_.setpos(pos_);
@@ -360,15 +406,13 @@ class ToggleEndianness {

   explicit ToggleEndianness(BinaryStream& stream, bool value) :
     endian_swap_(stream.should_swap()),
-    stream_{stream}
-  {
+    stream_{stream} {
     stream.set_endian_swap(value);
   }

   explicit ToggleEndianness(BinaryStream& stream) :
     endian_swap_(stream.should_swap()),
-    stream_{stream}
-  {
+    stream_{stream} {
     stream.set_endian_swap(!stream_.should_swap());
   }

diff --git a/deps/LIEF/include/LIEF/BinaryStream/DumpStream.hpp b/deps/LIEF/include/LIEF/BinaryStream/DumpStream.hpp
new file mode 100644
index 00000000000..e7d1fec8ddf
--- /dev/null
+++ b/deps/LIEF/include/LIEF/BinaryStream/DumpStream.hpp
@@ -0,0 +1,97 @@
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
+ *
+ * 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.
+ */
+#ifndef LIEF_DUMP_STREAM_H
+#define LIEF_DUMP_STREAM_H
+
+#include <memory>
+#include <cstdint>
+
+#include "LIEF/compiler_attributes.hpp"
+#include "LIEF/errors.hpp"
+#include "LIEF/visibility.h"
+#include "LIEF/BinaryStream/BinaryStream.hpp"
+
+namespace LIEF {
+class Binary;
+
+/// This stream interface provides facilities to parse a dumped binary.
+///
+/// A dump is a contiguous capture of a process memory that starts at a given
+/// base address. This stream owns (or weakly references)
+/// another BinaryStream that holds the raw dump and translates file offsets
+/// into dump offsets according to this base address and the binary layout.
+class LIEF_API DumpStream : public BinaryStream {
+  public:
+  DumpStream() = delete;
+  DumpStream(uintptr_t base_address, BinaryStream& ref) :
+    BinaryStream(BinaryStream::STREAM_TYPE::DUMP),
+    baseaddr_(base_address),
+    ref_(&ref) {}
+
+  DumpStream(uintptr_t base_address, std::unique_ptr<BinaryStream> owned) :
+    BinaryStream(BinaryStream::STREAM_TYPE::DUMP),
+    baseaddr_(base_address),
+    owned_(std::move(owned)),
+    ref_(owned_.get()) {}
+
+  DumpStream(const DumpStream&) = delete;
+  DumpStream& operator=(const DumpStream&) = delete;
+
+  DumpStream(DumpStream&&) noexcept = default;
+  DumpStream& operator=(DumpStream&&) noexcept = default;
+
+  uintptr_t base_address() const {
+    return baseaddr_;
+  }
+
+  Binary* binary() LIEF_LIFETIMEBOUND {
+    return binary_;
+  }
+
+  uint64_t size() const override {
+    return ref_->size();
+  }
+
+  bool bind_binary(Binary& bin) override {
+    binary_ = &bin;
+    return true;
+  }
+
+  std::vector<uint8_t> content() const;
+
+  result<const void*> read_at(uint64_t /*offset*/, uint64_t /*size*/,
+                              uint64_t /*virtual_address*/ = 0) const override {
+    return make_error_code(lief_errors::not_supported);
+  }
+
+  ok_error_t peek_in(void* dst, uint64_t offset, uint64_t size,
+                     uint64_t virtual_address = 0) const override;
+
+  ~DumpStream() override = default;
+
+  static bool classof(const BinaryStream& stream) {
+    return stream.type() == BinaryStream::STREAM_TYPE::DUMP;
+  }
+
+  protected:
+  uintptr_t baseaddr_ = 0;
+  Binary* binary_ = nullptr;
+  std::unique_ptr<BinaryStream> owned_;
+  BinaryStream* ref_ = nullptr;
+};
+}
+
+#endif
diff --git a/deps/LIEF/include/LIEF/BinaryStream/FileStream.hpp b/deps/LIEF/include/LIEF/BinaryStream/FileStream.hpp
index 0e5d3e5cc86..dc3583e64e9 100644
--- a/deps/LIEF/include/LIEF/BinaryStream/FileStream.hpp
+++ b/deps/LIEF/include/LIEF/BinaryStream/FileStream.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -33,8 +33,7 @@ class LIEF_API FileStream : public BinaryStream {
   FileStream(std::ifstream fs, uint64_t size) :
     BinaryStream(STREAM_TYPE::FILE),
     ifs_(std::move(fs)),
-    size_(size)
-  {}
+    size_(size) {}

   FileStream() = delete;

@@ -56,7 +55,7 @@ class LIEF_API FileStream : public BinaryStream {
   }

   ok_error_t peek_in(void* dst, uint64_t offset, uint64_t size,
-                     uint64_t /* virtual_address */= 0) const override {
+                     uint64_t /* virtual_address */ = 0) const override {
     if (offset > size_ || offset + size > size_) {
       return make_error_code(lief_errors::read_error);
     }
diff --git a/deps/LIEF/include/LIEF/BinaryStream/MemoryStream.hpp b/deps/LIEF/include/LIEF/BinaryStream/MemoryStream.hpp
index 9bce7e764be..bfa9588365b 100644
--- a/deps/LIEF/include/LIEF/BinaryStream/MemoryStream.hpp
+++ b/deps/LIEF/include/LIEF/BinaryStream/MemoryStream.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -35,8 +35,7 @@ class LIEF_API MemoryStream : public BinaryStream {
   MemoryStream(uintptr_t base_address, uint64_t size) :
     BinaryStream(BinaryStream::STREAM_TYPE::MEMORY),
     baseaddr_(base_address),
-    size_(size)
-  {}
+    size_(size) {}

   MemoryStream(const MemoryStream&) = delete;
   MemoryStream& operator=(const MemoryStream&) = delete;
@@ -45,7 +44,7 @@ class LIEF_API MemoryStream : public BinaryStream {
   MemoryStream& operator=(MemoryStream&&) noexcept = default;

   uintptr_t base_address() const {
-    return this->baseaddr_;
+    return baseaddr_;
   }

   const uint8_t* p() const override {
@@ -60,18 +59,19 @@ class LIEF_API MemoryStream : public BinaryStream {
     return start() + size_;
   }

-  void binary(Binary& bin) {
-    this->binary_ = &bin;
-  }
-
   Binary* binary() {
-    return this->binary_;
+    return binary_;
   }

   uint64_t size() const override {
     return size_;
   }

+  bool bind_binary(Binary& bin) override {
+    binary_ = &bin;
+    return true;
+  }
+
   ~MemoryStream() override = default;

   static bool classof(const BinaryStream& stream) {
@@ -79,7 +79,8 @@ class LIEF_API MemoryStream : public BinaryStream {
   }

   protected:
-  result<const void*> read_at(uint64_t offset, uint64_t size, uint64_t va) const override;
+  result<const void*> read_at(uint64_t offset, uint64_t size,
+                              uint64_t va) const override;
   uintptr_t baseaddr_ = 0;
   uint64_t size_ = 0;
   Binary* binary_ = nullptr;
diff --git a/deps/LIEF/include/LIEF/BinaryStream/SpanStream.hpp b/deps/LIEF/include/LIEF/BinaryStream/SpanStream.hpp
index ce7e8b4c003..27ffea72cac 100644
--- a/deps/LIEF/include/LIEF/BinaryStream/SpanStream.hpp
+++ b/deps/LIEF/include/LIEF/BinaryStream/SpanStream.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -45,21 +45,17 @@ class LIEF_API SpanStream : public BinaryStream {
   }

   SpanStream(span<const uint8_t> data) :
-    SpanStream(data.data(), data.size())
-  {}
+    SpanStream(data.data(), data.size()) {}

   SpanStream(span<uint8_t> data) :
-    SpanStream(data.data(), data.size())
-  {}
+    SpanStream(data.data(), data.size()) {}

   SpanStream(const uint8_t* p, size_t size) :
     BinaryStream(BinaryStream::STREAM_TYPE::SPAN),
-    data_{p, p + size}
-  {}
+    data_{p, p + size} {}

   SpanStream(const std::vector<uint8_t>& data) :
-    SpanStream(data.data(), data.size())
-  {}
+    SpanStream(data.data(), data.size()) {}

   std::unique_ptr<SpanStream> clone() const {
     return std::unique_ptr<SpanStream>(new SpanStream(*this));
@@ -94,7 +90,7 @@ class LIEF_API SpanStream : public BinaryStream {
   }

   result<SpanStream> slice(size_t offset, size_t size) const {
-    if (offset > data_.size() || (offset + size) > data_.size()) {
+    if (offset > data_.size() || size > data_.size() - offset) {
       return make_error_code(lief_errors::read_out_of_bound);
     }
     return data_.subspan(offset, size);
@@ -115,9 +111,10 @@ class LIEF_API SpanStream : public BinaryStream {
   ~SpanStream() override = default;

   protected:
-  result<const void*> read_at(uint64_t offset, uint64_t size, uint64_t /*va*/) const override {
+  result<const void*> read_at(uint64_t offset, uint64_t size,
+                              uint64_t /*va*/) const override {
     const uint64_t stream_size = this->size();
-    if (offset > stream_size || (offset + size) > stream_size) {
+    if (offset > stream_size || size > stream_size - offset) {
       return make_error_code(lief_errors::read_error);
     }
     return data_.data() + offset;
diff --git a/deps/LIEF/include/LIEF/BinaryStream/VectorStream.hpp b/deps/LIEF/include/LIEF/BinaryStream/VectorStream.hpp
index 44293aa8c85..7d17d97a4c5 100644
--- a/deps/LIEF/include/LIEF/BinaryStream/VectorStream.hpp
+++ b/deps/LIEF/include/LIEF/BinaryStream/VectorStream.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -36,8 +36,7 @@ class LIEF_API VectorStream : public BinaryStream {
   VectorStream(std::vector<uint8_t> data) :
     BinaryStream(BinaryStream::STREAM_TYPE::VECTOR),
     binary_(std::move(data)),
-    size_(binary_.size())
-  {}
+    size_(binary_.size()) {}

   VectorStream() = delete;

@@ -82,9 +81,10 @@ class LIEF_API VectorStream : public BinaryStream {
   }

   protected:
-  result<const void*> read_at(uint64_t offset, uint64_t size, uint64_t /*va*/) const override {
+  result<const void*> read_at(uint64_t offset, uint64_t size,
+                              uint64_t /*va*/) const override {
     const uint64_t stream_size = this->size();
-    if (offset > stream_size || (offset + size) > stream_size) {
+    if (offset > stream_size || size > stream_size - offset) {
       return make_error_code(lief_errors::read_error);
     }
     return binary_.data() + offset;
diff --git a/deps/LIEF/include/LIEF/COFF.hpp b/deps/LIEF/include/LIEF/COFF.hpp
index dcc13dbde0d..64775817a3c 100644
--- a/deps/LIEF/include/LIEF/COFF.hpp
+++ b/deps/LIEF/include/LIEF/COFF.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -13,30 +13,30 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-#ifndef  LIEF_COFF_H
-#define  LIEF_COFF_H
+#ifndef LIEF_COFF_H
+#define LIEF_COFF_H
 #include "LIEF/config.h"

 #if defined(LIEF_COFF_SUPPORT)
-#include "LIEF/COFF/Binary.hpp"
-#include "LIEF/COFF/utils.hpp"
-#include "LIEF/COFF/Parser.hpp"
-#include "LIEF/COFF/Header.hpp"
-#include "LIEF/COFF/BigObjHeader.hpp"
-#include "LIEF/COFF/RegularHeader.hpp"
-#include "LIEF/COFF/ParserConfig.hpp"
-#include "LIEF/COFF/Section.hpp"
-#include "LIEF/COFF/Relocation.hpp"
-#include "LIEF/COFF/Symbol.hpp"
-#include "LIEF/COFF/String.hpp"
+  #include "LIEF/COFF/Binary.hpp"
+  #include "LIEF/COFF/utils.hpp"
+  #include "LIEF/COFF/Parser.hpp"
+  #include "LIEF/COFF/Header.hpp"
+  #include "LIEF/COFF/BigObjHeader.hpp"
+  #include "LIEF/COFF/RegularHeader.hpp"
+  #include "LIEF/COFF/ParserConfig.hpp"
+  #include "LIEF/COFF/Section.hpp"
+  #include "LIEF/COFF/Relocation.hpp"
+  #include "LIEF/COFF/Symbol.hpp"
+  #include "LIEF/COFF/String.hpp"

-#include "LIEF/COFF/AuxiliarySymbol.hpp"
-#include "LIEF/COFF/AuxiliarySymbols/AuxiliarybfAndefSymbol.hpp"
-#include "LIEF/COFF/AuxiliarySymbols/AuxiliaryCLRToken.hpp"
-#include "LIEF/COFF/AuxiliarySymbols/AuxiliaryFile.hpp"
-#include "LIEF/COFF/AuxiliarySymbols/AuxiliaryFunctionDefinition.hpp"
-#include "LIEF/COFF/AuxiliarySymbols/AuxiliarySectionDefinition.hpp"
-#include "LIEF/COFF/AuxiliarySymbols/AuxiliaryWeakExternal.hpp"
+  #include "LIEF/COFF/AuxiliarySymbol.hpp"
+  #include "LIEF/COFF/AuxiliarySymbols/AuxiliarybfAndefSymbol.hpp"
+  #include "LIEF/COFF/AuxiliarySymbols/AuxiliaryCLRToken.hpp"
+  #include "LIEF/COFF/AuxiliarySymbols/AuxiliaryFile.hpp"
+  #include "LIEF/COFF/AuxiliarySymbols/AuxiliaryFunctionDefinition.hpp"
+  #include "LIEF/COFF/AuxiliarySymbols/AuxiliarySectionDefinition.hpp"
+  #include "LIEF/COFF/AuxiliarySymbols/AuxiliaryWeakExternal.hpp"
 #endif

 #endif
diff --git a/deps/LIEF/include/LIEF/COFF/AuxiliarySymbol.hpp b/deps/LIEF/include/LIEF/COFF/AuxiliarySymbol.hpp
index 398776a324d..9d7970f5788 100644
--- a/deps/LIEF/include/LIEF/COFF/AuxiliarySymbol.hpp
+++ b/deps/LIEF/include/LIEF/COFF/AuxiliarySymbol.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -20,6 +20,7 @@
 #include <memory>
 #include <vector>

+#include "LIEF/compiler_attributes.hpp"
 #include "LIEF/visibility.h"
 #include "LIEF/span.hpp"

@@ -32,14 +33,12 @@ class Symbol;
 /// Class that represents an auxiliary symbol.
 ///
 /// An auxiliary symbol has the same size as a regular LIEF::PE::Symbol (18
-/// bytes) but its content depends on the the parent symbol.
+/// bytes) but its content depends on the parent symbol.
 class LIEF_API AuxiliarySymbol {
   public:
   AuxiliarySymbol() = default;
   AuxiliarySymbol(std::vector<uint8_t> payload) :
-    type_(TYPE::UNKNOWN),
-    payload_(std::move(payload))
-  {}
+    payload_(std::move(payload)) {}
   AuxiliarySymbol(const AuxiliarySymbol&) = default;
   AuxiliarySymbol& operator=(const AuxiliarySymbol&) = default;

@@ -47,7 +46,7 @@ class LIEF_API AuxiliarySymbol {
   AuxiliarySymbol& operator=(AuxiliarySymbol&&) = default;

   LIEF_LOCAL static std::unique_ptr<AuxiliarySymbol>
-    parse(Symbol& sym, std::vector<uint8_t> payload);
+      parse(Symbol& sym, std::vector<uint8_t> payload);

   virtual std::unique_ptr<AuxiliarySymbol> clone() const {
     return std::unique_ptr<AuxiliarySymbol>(new AuxiliarySymbol(*this));
@@ -59,19 +58,22 @@ class LIEF_API AuxiliarySymbol {
     CLR_TOKEN,
     /// Auxiliary Format 1 from the PE-COFF documentation
     FUNC_DEF,
+
     /// Auxiliary Format 2: .bf and .ef Symbols from the PE-COFF documentation
     BF_AND_EF,
+
     /// Auxiliary Format 3: Weak Externals from the PE-COFF documentation
     WEAK_EXTERNAL,
+
     /// Auxiliary Format 4: Files from the PE-COFF documentation
     FILE,
+
     /// Auxiliary Format 5: Section Definitions from the PE-COFF documentation
     SEC_DEF,
   };

   AuxiliarySymbol(TYPE ty) :
-    type_(ty)
-  {}
+    type_(ty) {}

   static TYPE get_aux_type(const Symbol& sym);

@@ -80,11 +82,11 @@ class LIEF_API AuxiliarySymbol {
   }

   /// For unknown type **only**, return the raw representation of this symbol
-  span<const uint8_t> payload() const {
+  span<const uint8_t> payload() const LIEF_LIFETIMEBOUND {
     return payload_;
   }

-  span<uint8_t> payload() {
+  span<uint8_t> payload() LIEF_LIFETIMEBOUND {
     return payload_;
   }

@@ -92,7 +94,7 @@ class LIEF_API AuxiliarySymbol {

   virtual ~AuxiliarySymbol() = default;

-  /// Helper to **downcast** a AuxiliarySymbol into a concrete implementation
+  /// Helper to **downcast** an AuxiliarySymbol into a concrete implementation
   template<class T>
   const T* as() const {
     static_assert(std::is_base_of<AuxiliarySymbol, T>::value,
@@ -108,9 +110,8 @@ class LIEF_API AuxiliarySymbol {
     return const_cast<T*>(static_cast<const AuxiliarySymbol*>(this)->as<T>());
   }

-  LIEF_API friend
-    std::ostream& operator<<(std::ostream& os, const AuxiliarySymbol& aux)
-  {
+  LIEF_API friend std::ostream& operator<<(std::ostream& os,
+                                           const AuxiliarySymbol& aux) {
     os << aux.to_string();
     return os;
   }
diff --git a/deps/LIEF/include/LIEF/COFF/AuxiliarySymbols/AuxiliaryCLRToken.hpp b/deps/LIEF/include/LIEF/COFF/AuxiliarySymbols/AuxiliaryCLRToken.hpp
index cc2ee5feb71..65059a06249 100644
--- a/deps/LIEF/include/LIEF/COFF/AuxiliarySymbols/AuxiliaryCLRToken.hpp
+++ b/deps/LIEF/include/LIEF/COFF/AuxiliarySymbols/AuxiliaryCLRToken.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -18,6 +18,7 @@

 #include <memory>

+#include "LIEF/compiler_attributes.hpp"
 #include "LIEF/visibility.h"
 #include "LIEF/COFF/AuxiliarySymbol.hpp"

@@ -32,11 +33,10 @@ class LIEF_API AuxiliaryCLRToken : public AuxiliarySymbol {
   friend class Parser;

   LIEF_LOCAL static std::unique_ptr<AuxiliaryCLRToken>
-    parse(const std::vector<uint8_t>& payload);
+      parse(const std::vector<uint8_t>& payload);

   AuxiliaryCLRToken() :
-    AuxiliarySymbol(AuxiliarySymbol::TYPE::CLR_TOKEN)
-  {}
+    AuxiliarySymbol(AuxiliarySymbol::TYPE::CLR_TOKEN) {}

   AuxiliaryCLRToken(uint8_t aux_type, uint8_t reserved, uint32_t symbol_idx,
                     std::vector<uint8_t> rgb_reserved) :
@@ -44,8 +44,7 @@ class LIEF_API AuxiliaryCLRToken : public AuxiliarySymbol {
     aux_type_(aux_type),
     reserved_(reserved),
     symbol_idx_(symbol_idx),
-    rgb_reserved_(std::move(rgb_reserved))
-  {}
+    rgb_reserved_(std::move(rgb_reserved)) {}

   AuxiliaryCLRToken(const AuxiliaryCLRToken&) = default;
   AuxiliaryCLRToken& operator=(const AuxiliaryCLRToken&) = default;
@@ -82,7 +81,7 @@ class LIEF_API AuxiliaryCLRToken : public AuxiliarySymbol {
   }

   /// Reserved (padding) values. Should be 0
-  span<const uint8_t> rgb_reserved() const {
+  span<const uint8_t> rgb_reserved() const LIEF_LIFETIMEBOUND {
     return rgb_reserved_;
   }

@@ -93,6 +92,7 @@ class LIEF_API AuxiliaryCLRToken : public AuxiliarySymbol {
   }

   ~AuxiliaryCLRToken() override = default;
+
   private:
   uint8_t aux_type_ = 0;
   uint8_t reserved_ = 0;
diff --git a/deps/LIEF/include/LIEF/COFF/AuxiliarySymbols/AuxiliaryFile.hpp b/deps/LIEF/include/LIEF/COFF/AuxiliarySymbols/AuxiliaryFile.hpp
index 28ed0142d34..102fa70141c 100644
--- a/deps/LIEF/include/LIEF/COFF/AuxiliarySymbols/AuxiliaryFile.hpp
+++ b/deps/LIEF/include/LIEF/COFF/AuxiliarySymbols/AuxiliaryFile.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -29,20 +29,19 @@ namespace COFF {
 /// The Symbol::name itself should start with `.file`, and this auxiliary record
 /// gives the name of a source-code file.
 ///
-/// Reference: https://learn.microsoft.com/en-us/windows/win32/debug/pe-format#auxiliary-format-4-files
+/// Reference:
+/// https://learn.microsoft.com/en-us/windows/win32/debug/pe-format#auxiliary-format-4-files
 class LIEF_API AuxiliaryFile : public AuxiliarySymbol {
   public:
   LIEF_LOCAL static std::unique_ptr<AuxiliaryFile>
-    parse(const std::vector<uint8_t>& payload);
+      parse(const std::vector<uint8_t>& payload);

   AuxiliaryFile() :
-    AuxiliarySymbol(AuxiliarySymbol::TYPE::FILE)
-  {}
+    AuxiliarySymbol(AuxiliarySymbol::TYPE::FILE) {}

   AuxiliaryFile(std::string file) :
     AuxiliarySymbol(AuxiliarySymbol::TYPE::FILE),
-    filename_(std::move(file))
-  {}
+    filename_(std::move(file)) {}

   AuxiliaryFile(const AuxiliaryFile&) = default;
   AuxiliaryFile& operator=(const AuxiliaryFile&) = default;
diff --git a/deps/LIEF/include/LIEF/COFF/AuxiliarySymbols/AuxiliaryFunctionDefinition.hpp b/deps/LIEF/include/LIEF/COFF/AuxiliarySymbols/AuxiliaryFunctionDefinition.hpp
index a3f184ff761..05e92ea04dd 100644
--- a/deps/LIEF/include/LIEF/COFF/AuxiliarySymbols/AuxiliaryFunctionDefinition.hpp
+++ b/deps/LIEF/include/LIEF/COFF/AuxiliarySymbols/AuxiliaryFunctionDefinition.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -26,35 +26,36 @@ namespace COFF {

 /// This auxiliary symbols marks the beginning of a function definition.
 ///
-/// Reference: https://learn.microsoft.com/en-us/windows/win32/debug/pe-format#auxiliary-format-1-function-definitions
+/// Reference:
+/// https://learn.microsoft.com/en-us/windows/win32/debug/pe-format#auxiliary-format-1-function-definitions
 class LIEF_API AuxiliaryFunctionDefinition : public AuxiliarySymbol {
   public:
   LIEF_LOCAL static std::unique_ptr<AuxiliaryFunctionDefinition>
-    parse(const std::vector<uint8_t>& payload);
+      parse(const std::vector<uint8_t>& payload);

   AuxiliaryFunctionDefinition() :
-    AuxiliarySymbol(AuxiliarySymbol::TYPE::FUNC_DEF)
-  {}
+    AuxiliarySymbol(AuxiliarySymbol::TYPE::FUNC_DEF) {}

-  AuxiliaryFunctionDefinition(uint32_t tagidx, uint32_t totalsz,
-                              uint32_t ptr_line, uint32_t ptr_next_func,
-                              uint16_t padding) :
+  AuxiliaryFunctionDefinition(uint32_t tagidx, uint32_t totalsz, uint32_t ptr_line,
+                              uint32_t ptr_next_func, uint16_t padding) :
     AuxiliarySymbol(AuxiliarySymbol::TYPE::FUNC_DEF),
     tag_index_(tagidx),
     total_size_(totalsz),
     ptr_to_linenb_(ptr_line),
     ptr_to_next_func_(ptr_next_func),
-    padding_(padding)
-  {}
+    padding_(padding) {}

   AuxiliaryFunctionDefinition(const AuxiliaryFunctionDefinition&) = default;
-  AuxiliaryFunctionDefinition& operator=(const AuxiliaryFunctionDefinition&) = default;
+  AuxiliaryFunctionDefinition&
+      operator=(const AuxiliaryFunctionDefinition&) = default;

   AuxiliaryFunctionDefinition(AuxiliaryFunctionDefinition&&) = default;
   AuxiliaryFunctionDefinition& operator=(AuxiliaryFunctionDefinition&&) = default;

   std::unique_ptr<AuxiliarySymbol> clone() const override {
-    return std::unique_ptr<AuxiliaryFunctionDefinition>(new AuxiliaryFunctionDefinition{*this});
+    return std::unique_ptr<AuxiliaryFunctionDefinition>(
+        new AuxiliaryFunctionDefinition{*this}
+    );
   }

   /// The symbol-table index of the corresponding `.bf` (begin function)
diff --git a/deps/LIEF/include/LIEF/COFF/AuxiliarySymbols/AuxiliarySectionDefinition.hpp b/deps/LIEF/include/LIEF/COFF/AuxiliarySymbols/AuxiliarySectionDefinition.hpp
index 9037b7700af..bcb36590a3b 100644
--- a/deps/LIEF/include/LIEF/COFF/AuxiliarySymbols/AuxiliarySectionDefinition.hpp
+++ b/deps/LIEF/include/LIEF/COFF/AuxiliarySymbols/AuxiliarySectionDefinition.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -30,11 +30,10 @@ namespace COFF {
 class LIEF_API AuxiliarySectionDefinition : public AuxiliarySymbol {
   public:
   LIEF_LOCAL static std::unique_ptr<AuxiliarySectionDefinition>
-    parse(const std::vector<uint8_t>& payload);
+      parse(const std::vector<uint8_t>& payload);

   AuxiliarySectionDefinition() :
-    AuxiliarySymbol(AuxiliarySymbol::TYPE::SEC_DEF)
-  {}
+    AuxiliarySymbol(AuxiliarySymbol::TYPE::SEC_DEF) {}

   AuxiliarySectionDefinition(uint32_t length, uint16_t nb_relocs,
                              uint16_t nb_lines, uint32_t checksum,
@@ -47,27 +46,30 @@ class LIEF_API AuxiliarySectionDefinition : public AuxiliarySymbol {
     checksum_(checksum),
     sec_idx_(sec_idx),
     selection_((COMDAT_SELECTION)selection),
-    reserved_(reserved)
-  {}
+    reserved_(reserved) {}

   AuxiliarySectionDefinition(const AuxiliarySectionDefinition&) = default;
-  AuxiliarySectionDefinition& operator=(const AuxiliarySectionDefinition&) = default;
+  AuxiliarySectionDefinition&
+      operator=(const AuxiliarySectionDefinition&) = default;

   AuxiliarySectionDefinition(AuxiliarySectionDefinition&&) = default;
   AuxiliarySectionDefinition& operator=(AuxiliarySectionDefinition&&) = default;

   std::unique_ptr<AuxiliarySymbol> clone() const override {
-    return std::unique_ptr<AuxiliarySectionDefinition>(new AuxiliarySectionDefinition{*this});
+    return std::unique_ptr<AuxiliarySectionDefinition>(
+        new AuxiliarySectionDefinition{*this}
+    );
   }

   /// Values for the AuxiliarySectionDefinition::selection attribute
   ///
-  /// See: https://learn.microsoft.com/en-us/windows/win32/debug/pe-format#comdat-sections-object-only
+  /// See:
+  /// https://learn.microsoft.com/en-us/windows/win32/debug/pe-format#comdat-sections-object-only
   enum class COMDAT_SELECTION : uint8_t {
     NONE = 0,

-    /// If this symbol is already defined, the linker issues a `multiply defined symbol`
-    /// error.
+    /// If this symbol is already defined, the linker issues a `multiply defined
+    /// symbol` error.
     NODUPLICATES = 1,

     /// Any section that defines the same COMDAT symbol can be linked; the rest
@@ -75,8 +77,8 @@ class LIEF_API AuxiliarySectionDefinition : public AuxiliarySymbol {
     ANY,

     /// The linker chooses an arbitrary section among the definitions for this
-    /// symbol. If all definitions are not the same size, a `multiply defined symbol`
-    /// error is issued.
+    /// symbol. If all definitions are not the same size, a `multiply defined
+    /// symbol` error is issued.
     SAME_SIZE,

     /// The linker chooses an arbitrary section among the definitions for this
@@ -100,7 +102,7 @@ class LIEF_API AuxiliarySectionDefinition : public AuxiliarySymbol {
     /// The linker chooses the largest definition from among all of the definitions
     /// for this symbol. If multiple definitions have this size, the choice
     /// between them is arbitrary.
-    LARGEST
+    LARGEST,
   };

   /// The size of section data. The same as `SizeOfRawData` in the section header.
diff --git a/deps/LIEF/include/LIEF/COFF/AuxiliarySymbols/AuxiliaryWeakExternal.hpp b/deps/LIEF/include/LIEF/COFF/AuxiliarySymbols/AuxiliaryWeakExternal.hpp
index 488f787dec1..7f79aa760fe 100644
--- a/deps/LIEF/include/LIEF/COFF/AuxiliarySymbols/AuxiliaryWeakExternal.hpp
+++ b/deps/LIEF/include/LIEF/COFF/AuxiliarySymbols/AuxiliaryWeakExternal.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -19,6 +19,7 @@
 #include <memory>
 #include <cassert>

+#include "LIEF/compiler_attributes.hpp"
 #include "LIEF/visibility.h"
 #include "LIEF/COFF/AuxiliarySymbol.hpp"

@@ -34,37 +35,39 @@ namespace COFF {
 ///
 /// If a definition of `sym1` is linked, then an external reference to the
 /// symbol is resolved normally. If a definition of `sym1` is not linked, then all
-/// references to the weak external for `sym1` refer to `sym2` instead. The external
-/// symbol, `sym2`, must always be linked; typically, it is defined in the module
-/// that contains the weak reference to `sym1`.
+/// references to the weak external for `sym1` refer to `sym2` instead. The
+/// external symbol, `sym2`, must always be linked; typically, it is defined in the
+/// module that contains the weak reference to `sym1`.
 ///
-/// Reference: https://learn.microsoft.com/en-us/windows/win32/debug/pe-format#auxiliary-format-3-weak-externals
+/// Reference:
+/// https://learn.microsoft.com/en-us/windows/win32/debug/pe-format#auxiliary-format-3-weak-externals
 class LIEF_API AuxiliaryWeakExternal : public AuxiliarySymbol {
   public:
   enum class CHARACTERISTICS : uint32_t {
     /// No library search for `sym1` should be performed.
     SEARCH_NOLIBRARY = 1,
-    ///A library search for `sym1` should be performed.
+
+    /// A library search for `sym1` should be performed.
     SEARCH_LIBRARY = 2,
+
     /// `sym1` is an alias for sym2
     SEARCH_ALIAS = 3,
-    ANTI_DEPENDENCY = 4
+
+    ANTI_DEPENDENCY = 4,
   };

   LIEF_LOCAL static std::unique_ptr<AuxiliaryWeakExternal>
-    parse(const std::vector<uint8_t>& payload);
+      parse(const std::vector<uint8_t>& payload);

   AuxiliaryWeakExternal() :
-    AuxiliarySymbol(AuxiliarySymbol::TYPE::WEAK_EXTERNAL)
-  {}
+    AuxiliarySymbol(AuxiliarySymbol::TYPE::WEAK_EXTERNAL) {}

   AuxiliaryWeakExternal(uint32_t sym_idx, uint32_t characteristics,
                         std::vector<uint8_t> padding) :
     AuxiliarySymbol(AuxiliarySymbol::TYPE::WEAK_EXTERNAL),
     sym_idx_(sym_idx),
     characteristics_(characteristics),
-    padding_(std::move(padding))
-  {
+    padding_(std::move(padding)) {
     assert(padding_.size() == 10);
   }

@@ -75,7 +78,9 @@ class LIEF_API AuxiliaryWeakExternal : public AuxiliarySymbol {
   AuxiliaryWeakExternal& operator=(AuxiliaryWeakExternal&&) = default;

   std::unique_ptr<AuxiliarySymbol> clone() const override {
-    return std::unique_ptr<AuxiliaryWeakExternal>(new AuxiliaryWeakExternal{*this});
+    return std::unique_ptr<AuxiliaryWeakExternal>(
+        new AuxiliaryWeakExternal{*this}
+    );
   }

   /// The symbol-table index of `sym2`, the symbol to be linked if `sym1` is not
@@ -88,7 +93,7 @@ class LIEF_API AuxiliaryWeakExternal : public AuxiliarySymbol {
     return (CHARACTERISTICS)characteristics_;
   }

-  span<const uint8_t> padding() const {
+  span<const uint8_t> padding() const LIEF_LIFETIMEBOUND {
     return padding_;
   }

diff --git a/deps/LIEF/include/LIEF/COFF/AuxiliarySymbols/AuxiliarybfAndefSymbol.hpp b/deps/LIEF/include/LIEF/COFF/AuxiliarySymbols/AuxiliarybfAndefSymbol.hpp
index 53b0666b588..c76b7de392c 100644
--- a/deps/LIEF/include/LIEF/COFF/AuxiliarySymbols/AuxiliarybfAndefSymbol.hpp
+++ b/deps/LIEF/include/LIEF/COFF/AuxiliarySymbols/AuxiliarybfAndefSymbol.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -28,11 +28,10 @@ namespace COFF {
 class LIEF_API AuxiliarybfAndefSymbol : public AuxiliarySymbol {
   public:
   LIEF_LOCAL static std::unique_ptr<AuxiliarybfAndefSymbol>
-    parse(Symbol& sym, const std::vector<uint8_t>& payload);
+      parse(Symbol& sym, const std::vector<uint8_t>& payload);

   AuxiliarybfAndefSymbol() :
-    AuxiliarySymbol(AuxiliarySymbol::TYPE::BF_AND_EF)
-  {}
+    AuxiliarySymbol(AuxiliarySymbol::TYPE::BF_AND_EF) {}

   AuxiliarybfAndefSymbol(const AuxiliarybfAndefSymbol&) = default;
   AuxiliarybfAndefSymbol& operator=(const AuxiliarybfAndefSymbol&) = default;
@@ -41,7 +40,9 @@ class LIEF_API AuxiliarybfAndefSymbol : public AuxiliarySymbol {
   AuxiliarybfAndefSymbol& operator=(AuxiliarybfAndefSymbol&&) = default;

   std::unique_ptr<AuxiliarySymbol> clone() const override {
-    return std::unique_ptr<AuxiliarybfAndefSymbol>(new AuxiliarybfAndefSymbol{*this});
+    return std::unique_ptr<AuxiliarybfAndefSymbol>(
+        new AuxiliarybfAndefSymbol{*this}
+    );
   }

   std::string to_string() const override {
diff --git a/deps/LIEF/include/LIEF/COFF/BigObjHeader.hpp b/deps/LIEF/include/LIEF/COFF/BigObjHeader.hpp
index a793092cd64..1ae5597453d 100644
--- a/deps/LIEF/include/LIEF/COFF/BigObjHeader.hpp
+++ b/deps/LIEF/include/LIEF/COFF/BigObjHeader.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -20,6 +20,7 @@

 #include "LIEF/COFF/Header.hpp"

+#include "LIEF/compiler_attributes.hpp"
 #include "LIEF/visibility.h"
 #include "LIEF/span.hpp"

@@ -35,8 +36,7 @@ class LIEF_API BigObjHeader : public Header {
   public:
   static constexpr auto UUID_SZ = 16;
   BigObjHeader() :
-    Header(KIND::BIGOBJ)
-  {}
+    Header(KIND::BIGOBJ) {}

   static std::unique_ptr<BigObjHeader> create(BinaryStream& stream);

@@ -55,8 +55,9 @@ class LIEF_API BigObjHeader : public Header {
     return version_;
   }

-  /// Originally named `ClassID`, this uuid should match: `{D1BAA1C7-BAEE-4ba9-AF20-FAF66AA4DCB8}`
-  span<const uint8_t> uuid() const {
+  /// Originally named `ClassID`, this uuid should match:
+  /// `{D1BAA1C7-BAEE-4ba9-AF20-FAF66AA4DCB8}`
+  span<const uint8_t> uuid() const LIEF_LIFETIMEBOUND {
     return uuid_;
   }

diff --git a/deps/LIEF/include/LIEF/COFF/Binary.hpp b/deps/LIEF/include/LIEF/COFF/Binary.hpp
index 9467836970e..4b0cb9f5b20 100644
--- a/deps/LIEF/include/LIEF/COFF/Binary.hpp
+++ b/deps/LIEF/include/LIEF/COFF/Binary.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -61,7 +61,8 @@ class LIEF_API Binary {
   using it_relocations = ref_iterator<relocations_t&, Relocation*>;

   /// Iterator that outputs const Relocation& object
-  using it_const_relocations = const_ref_iterator<const relocations_t&, const Relocation*>;
+  using it_const_relocations =
+      const_ref_iterator<const relocations_t&, const Relocation*>;

   /// Internal container used to store COFF's strings
   using strings_table_t = std::vector<String>;
@@ -100,88 +101,92 @@ class LIEF_API Binary {
   }

   /// Iterator over the different sections located in this COFF binary
-  it_sections sections() {
+  it_sections sections() LIEF_LIFETIMEBOUND {
     return sections_;
   }

-  it_const_sections sections() const {
+  it_const_sections sections() const LIEF_LIFETIMEBOUND {
     return sections_;
   }

   /// Iterator over **all** the relocations used by this COFF binary
-  it_relocations relocations() {
+  it_relocations relocations() LIEF_LIFETIMEBOUND {
     return relocations_;
   }

-  it_const_relocations relocations() const {
+  it_const_relocations relocations() const LIEF_LIFETIMEBOUND {
     return relocations_;
   }

   /// Iterator over the COFF's symbols
-  it_symbols symbols() {
+  it_symbols symbols() LIEF_LIFETIMEBOUND {
     return symbols_;
   }

-  it_const_symbols symbols() const {
+  it_const_symbols symbols() const LIEF_LIFETIMEBOUND {
     return symbols_;
   }

   /// Iterator over the COFF's strings
-  it_const_strings_table string_table() const {
+  it_const_strings_table string_table() const LIEF_LIFETIMEBOUND {
     return strings_table_;
   }

-  it_strings_table string_table() {
+  it_strings_table string_table() LIEF_LIFETIMEBOUND {
     return strings_table_;
   }

   /// Try to find the COFF string at the given offset in the COFF string table.
   ///
-  /// \warning This offset must include the first 4 bytes holding the size of
+  /// @warning This offset must include the first 4 bytes holding the size of
   ///          the table. Hence, the first string starts a the offset 4.
-  String* find_string(uint32_t offset) {
+  String* find_string(uint32_t offset) LIEF_LIFETIMEBOUND {
     auto it = std::find_if(strings_table_.begin(), strings_table_.end(),
-      [offset] (const String& item) {
-        return offset == item.offset();
-      }
-    );
+                           [offset](const String& item) {
+                             return offset == item.offset();
+                           });
     return it == strings_table_.end() ? nullptr : &*it;
   }

-  const String* find_string(uint32_t offset) const {
+  const String* find_string(uint32_t offset) const LIEF_LIFETIMEBOUND {
     return const_cast<Binary*>(this)->find_string(offset);
   }

   /// Iterator over the functions implemented in this COFF
-  it_const_function functions() const;
+  it_const_function functions() const LIEF_LIFETIMEBOUND;

-  it_functions functions();
+  it_functions functions() LIEF_LIFETIMEBOUND;

   /// Try to find the function (symbol) with the given name
-  const Symbol* find_function(const std::string& name) const;
+  const Symbol* find_function(const std::string& name) const LIEF_LIFETIMEBOUND;

-  Symbol* find_function(const std::string& name) {
-    return const_cast<Symbol*>(static_cast<const Binary*>(this)->find_function(name));
+  Symbol* find_function(const std::string& name) LIEF_LIFETIMEBOUND {
+    return const_cast<Symbol*>(
+        static_cast<const Binary*>(this)->find_function(name)
+    );
   }

   /// Try to find the function (symbol) with the given **demangled** name
-  const Symbol* find_demangled_function(const std::string& name) const;
+  const Symbol*
+      find_demangled_function(const std::string& name) const LIEF_LIFETIMEBOUND;

-  Symbol* find_demangled_function(const std::string& name) {
-    return const_cast<Symbol*>(static_cast<const Binary*>(this)->find_demangled_function(name));
+  Symbol* find_demangled_function(const std::string& name) LIEF_LIFETIMEBOUND {
+    return const_cast<Symbol*>(
+        static_cast<const Binary*>(this)->find_demangled_function(name)
+    );
   }

   /// Disassemble code for the given symbol
   ///
   /// ```cpp
-  /// const Symbol* func = binary->find_demangled_function("int __cdecl my_function(int, int)");
-  /// auto insts = binary->disassemble(*func);
-  /// for (std::unique_ptr<assembly::Instruction> inst : insts) {
+  /// const Symbol* func = binary->find_demangled_function("int __cdecl
+  /// my_function(int, int)"); auto insts = binary->disassemble(*func); for
+  /// (std::unique_ptr<assembly::Instruction> inst : insts) {
   ///   std::cout << inst->to_string() << '\n';
   /// }
   /// ```
   ///
-  /// \see LIEF::assembly::Instruction
+  /// @see LIEF::assembly::Instruction
   instructions_it disassemble(const Symbol& symbol) const;

   /// Disassemble code for the given symbol name
@@ -193,13 +198,13 @@ class LIEF_API Binary {
   /// }
   /// ```
   ///
-  /// \see LIEF::assembly::Instruction
+  /// @see LIEF::assembly::Instruction
   instructions_it disassemble(const std::string& symbol) const;

   /// Disassemble code provided by the given buffer at the specified
   /// `address` parameter.
   ///
-  /// \see LIEF::assembly::Instruction
+  /// @see LIEF::assembly::Instruction
   instructions_it disassemble(const uint8_t* buffer, size_t size,
                               uint64_t address = 0) const;

@@ -207,7 +212,7 @@ class LIEF_API Binary {
   /// Disassemble code provided by the given vector of bytes at the specified
   /// `address` parameter.
   ///
-  /// \see LIEF::assembly::Instruction
+  /// @see LIEF::assembly::Instruction
   instructions_it disassemble(const std::vector<uint8_t>& buffer,
                               uint64_t address = 0) const {
     return disassemble(buffer.data(), buffer.size(), address);
@@ -218,7 +223,8 @@ class LIEF_API Binary {
     return disassemble(buffer.data(), buffer.size(), address);
   }

-  instructions_it disassemble(LIEF::span<uint8_t> buffer, uint64_t address = 0) const {
+  instructions_it disassemble(LIEF::span<uint8_t> buffer,
+                              uint64_t address = 0) const {
     return disassemble(buffer.data(), buffer.size(), address);
   }

diff --git a/deps/LIEF/include/LIEF/COFF/Header.hpp b/deps/LIEF/include/LIEF/COFF/Header.hpp
index 5239b73faa4..a2b3038c53c 100644
--- a/deps/LIEF/include/LIEF/COFF/Header.hpp
+++ b/deps/LIEF/include/LIEF/COFF/Header.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -32,11 +32,10 @@ namespace COFF {
 /// `/bigobj` files
 class LIEF_API Header {
   public:
-
   enum class KIND {
     UNKNOWN = 0,
     REGULAR,
-    BIGOBJ
+    BIGOBJ,
   };

   /// The different architectures (mirrored from PE)
@@ -48,8 +47,7 @@ class LIEF_API Header {

   Header() = default;
   Header(KIND kind) :
-    kind_(kind)
-  {}
+    kind_(kind) {}

   Header& operator=(const Header&) = default;
   Header(const Header&) = default;
@@ -119,8 +117,7 @@ class LIEF_API Header {

   template<class T>
   const T* as() const {
-    static_assert(std::is_base_of<Header, T>::value,
-                  "Require Header inheritance");
+    static_assert(std::is_base_of<Header, T>::value, "Require Header inheritance");
     if (T::classof(this)) {
       return static_cast<const T*>(this);
     }
diff --git a/deps/LIEF/include/LIEF/COFF/Parser.hpp b/deps/LIEF/include/LIEF/COFF/Parser.hpp
index fa1a5ff79d7..206cfa7325c 100644
--- a/deps/LIEF/include/LIEF/COFF/Parser.hpp
+++ b/deps/LIEF/include/LIEF/COFF/Parser.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -16,10 +16,10 @@
 #ifndef LIEF_COFF_PARSER_H
 #define LIEF_COFF_PARSER_H
 #include <map>
+#include "LIEF/compiler_attributes.hpp"
+#include "LIEF/BinaryStream/BinaryStream.hpp"
 #include "LIEF/visibility.h"
-
-#include "LIEF/BinaryStream/VectorStream.hpp"
-#include "LIEF/BinaryStream/SpanStream.hpp"
+#include "LIEF/errors.hpp"

 #include "LIEF/COFF/ParserConfig.hpp"
 #include "LIEF/COFF/Header.hpp"
@@ -33,23 +33,20 @@ class Symbol;

 class Parser {
   public:
+  static constexpr size_t MAX_NB_SECTIONS = 1 << 20;
+
   /// Parse the COFF binary referenced by the `stream` argument with the
   /// given config
-  static LIEF_API
-    std::unique_ptr<Binary> parse(std::unique_ptr<BinaryStream> stream,
-                                  const ParserConfig& config = ParserConfig::default_conf());
+  static LIEF_API std::unique_ptr<Binary>
+      parse(std::unique_ptr<BinaryStream> stream,
+            const ParserConfig& config = ParserConfig::default_conf());

   /// Parse the COFF binary pointed by the `file` argument with the given config
-  static std::unique_ptr<Binary> parse(const std::string& file,
-                                       const ParserConfig& config = ParserConfig::default_conf())
-  {
-    if (auto strm = VectorStream::from_file(file)) {
-      return parse(std::unique_ptr<VectorStream>(new VectorStream(std::move(*strm))), config);
-    }
-    return nullptr;
-  }
+  static LIEF_API std::unique_ptr<Binary>
+      parse(const std::string& file,
+            const ParserConfig& config = ParserConfig::default_conf());

-  /// \private
+  /// @private
   struct SymSec {
     size_t sec_idx = 0;
     Symbol* symbol = nullptr;
@@ -70,21 +67,17 @@ class Parser {
   /// <=> std::unordered_multimap<section index, Symbol*>
   using SymSecMap = std::vector<SymSec>;

-  /// \private
+  /// @private
   LIEF_LOCAL void memoize(String str);

-  /// \private
+  /// @private
   LIEF_LOCAL String* find_coff_string(uint32_t offset) const;

   ~Parser();

   private:
   Parser(std::unique_ptr<BinaryStream> stream, const ParserConfig& config,
-         Header::KIND kind) :
-    stream_(std::move(stream)),
-    kind_(kind),
-    config_(config)
-  {}
+         Header::KIND kind);

   ok_error_t process();
   ok_error_t parse_header();
@@ -102,7 +95,7 @@ class Parser {
   std::map<size_t, Symbol*> symbol_idx_;
   SymSecMap symsec_;

-  ParserConfig config_;
+  LIEF_MAYBE_UNUSED ParserConfig config_;
 };
 }
 }
diff --git a/deps/LIEF/include/LIEF/COFF/ParserConfig.hpp b/deps/LIEF/include/LIEF/COFF/ParserConfig.hpp
index 3d0a09636b5..10de521a5d6 100644
--- a/deps/LIEF/include/LIEF/COFF/ParserConfig.hpp
+++ b/deps/LIEF/include/LIEF/COFF/ParserConfig.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -29,7 +29,7 @@ class LIEF_API ParserConfig {
   }

   static const ParserConfig& all() {
-    // To be updated when there is options that are off by default
+    // To be updated when there are options that are off by default
     return default_conf();
   }
 };
diff --git a/deps/LIEF/include/LIEF/COFF/RegularHeader.hpp b/deps/LIEF/include/LIEF/COFF/RegularHeader.hpp
index 1aab5525400..6f6cfa12805 100644
--- a/deps/LIEF/include/LIEF/COFF/RegularHeader.hpp
+++ b/deps/LIEF/include/LIEF/COFF/RegularHeader.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -26,8 +26,7 @@ namespace COFF {
 class LIEF_API RegularHeader : public Header {
   public:
   RegularHeader() :
-    Header(KIND::REGULAR)
-  {}
+    Header(KIND::REGULAR) {}

   /// Create a RegularHeader from the given stream
   static std::unique_ptr<RegularHeader> create(BinaryStream& stream);
@@ -42,7 +41,7 @@ class LIEF_API RegularHeader : public Header {
     return std::unique_ptr<Header>(new RegularHeader(*this));
   }

-  /// The size of the optional header that follows this header (should be 0)
+  /// The size of the optional header which follows this header (should be 0)
   uint16_t sizeof_optionalheader() const {
     return sizeof_optionalheader_;
   }
diff --git a/deps/LIEF/include/LIEF/COFF/Relocation.hpp b/deps/LIEF/include/LIEF/COFF/Relocation.hpp
index 960caf0ad8b..78e5d2f81cb 100644
--- a/deps/LIEF/include/LIEF/COFF/Relocation.hpp
+++ b/deps/LIEF/include/LIEF/COFF/Relocation.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -35,11 +35,11 @@ class LIEF_API Relocation : public LIEF::Relocation {
   public:
   friend class Parser;

-  static constexpr uint32_t I386  = 1 << 17;
-  static constexpr uint32_t X64   = 1 << 18;
-  static constexpr uint32_t ARM   = 1 << 19;
+  static constexpr uint32_t I386 = 1 << 17;
+  static constexpr uint32_t X64 = 1 << 18;
+  static constexpr uint32_t ARM = 1 << 19;
   static constexpr uint32_t ARM64 = 1 << 20;
-  static constexpr uint32_t MIPS  = 1 << 21;
+  static constexpr uint32_t MIPS = 1 << 21;

   /// The different relocation types.
   ///
@@ -48,87 +48,87 @@ class LIEF_API Relocation : public LIEF::Relocation {
   enum class TYPE : uint32_t {
     UNKNOWN = uint32_t(-1),
     I386_ABSOLUTE = I386 + 0x0000,
-    I386_DIR16    = I386 + 0x0001,
-    I386_REL16    = I386 + 0x0002,
-    I386_DIR32    = I386 + 0x0006,
-    I386_DIR32NB  = I386 + 0x0007,
-    I386_SEG12    = I386 + 0x0009,
-    I386_SECTION  = I386 + 0x000A,
-    I386_SECREL   = I386 + 0x000B,
-    I386_TOKEN    = I386 + 0x000C,
-    I386_SECREL7  = I386 + 0x000D,
-    I386_REL32    = I386 + 0x0014,
+    I386_DIR16 = I386 + 0x0001,
+    I386_REL16 = I386 + 0x0002,
+    I386_DIR32 = I386 + 0x0006,
+    I386_DIR32NB = I386 + 0x0007,
+    I386_SEG12 = I386 + 0x0009,
+    I386_SECTION = I386 + 0x000A,
+    I386_SECREL = I386 + 0x000B,
+    I386_TOKEN = I386 + 0x000C,
+    I386_SECREL7 = I386 + 0x000D,
+    I386_REL32 = I386 + 0x0014,

     AMD64_ABSOLUTE = X64 + 0x0000,
-    AMD64_ADDR64   = X64 + 0x0001,
-    AMD64_ADDR32   = X64 + 0x0002,
+    AMD64_ADDR64 = X64 + 0x0001,
+    AMD64_ADDR32 = X64 + 0x0002,
     AMD64_ADDR32NB = X64 + 0x0003,
-    AMD64_REL32    = X64 + 0x0004,
-    AMD64_REL32_1  = X64 + 0x0005,
-    AMD64_REL32_2  = X64 + 0x0006,
-    AMD64_REL32_3  = X64 + 0x0007,
-    AMD64_REL32_4  = X64 + 0x0008,
-    AMD64_REL32_5  = X64 + 0x0009,
-    AMD64_SECTION  = X64 + 0x000A,
-    AMD64_SECREL   = X64 + 0x000B,
-    AMD64_SECREL7  = X64 + 0x000C,
-    AMD64_TOKEN    = X64 + 0x000D,
-    AMD64_SREL32   = X64 + 0x000E,
-    AMD64_PAIR     = X64 + 0x000F,
-    AMD64_SSPAN32  = X64 + 0x0010,
-
-    ARM_ABSOLUTE  = ARM + 0x0000,
-    ARM_ADDR32    = ARM + 0x0001,
-    ARM_ADDR32NB  = ARM + 0x0002,
-    ARM_BRANCH24  = ARM + 0x0003,
-    ARM_BRANCH11  = ARM + 0x0004,
-    ARM_TOKEN     = ARM + 0x0005,
-    ARM_BLX24     = ARM + 0x0008,
-    ARM_BLX11     = ARM + 0x0009,
-    ARM_REL32     = ARM + 0x000A,
-    ARM_SECTION   = ARM + 0x000E,
-    ARM_SECREL    = ARM + 0x000F,
-    ARM_MOV32A    = ARM + 0x0010,
-    ARM_MOV32T    = ARM + 0x0011,
+    AMD64_REL32 = X64 + 0x0004,
+    AMD64_REL32_1 = X64 + 0x0005,
+    AMD64_REL32_2 = X64 + 0x0006,
+    AMD64_REL32_3 = X64 + 0x0007,
+    AMD64_REL32_4 = X64 + 0x0008,
+    AMD64_REL32_5 = X64 + 0x0009,
+    AMD64_SECTION = X64 + 0x000A,
+    AMD64_SECREL = X64 + 0x000B,
+    AMD64_SECREL7 = X64 + 0x000C,
+    AMD64_TOKEN = X64 + 0x000D,
+    AMD64_SREL32 = X64 + 0x000E,
+    AMD64_PAIR = X64 + 0x000F,
+    AMD64_SSPAN32 = X64 + 0x0010,
+
+    ARM_ABSOLUTE = ARM + 0x0000,
+    ARM_ADDR32 = ARM + 0x0001,
+    ARM_ADDR32NB = ARM + 0x0002,
+    ARM_BRANCH24 = ARM + 0x0003,
+    ARM_BRANCH11 = ARM + 0x0004,
+    ARM_TOKEN = ARM + 0x0005,
+    ARM_BLX24 = ARM + 0x0008,
+    ARM_BLX11 = ARM + 0x0009,
+    ARM_REL32 = ARM + 0x000A,
+    ARM_SECTION = ARM + 0x000E,
+    ARM_SECREL = ARM + 0x000F,
+    ARM_MOV32A = ARM + 0x0010,
+    ARM_MOV32T = ARM + 0x0011,
     ARM_BRANCH20T = ARM + 0x0012,
     ARM_BRANCH24T = ARM + 0x0014,
-    ARM_BLX23T    = ARM + 0x0015,
-    ARM_PAIR      = ARM + 0x0016,
+    ARM_BLX23T = ARM + 0x0015,
+    ARM_PAIR = ARM + 0x0016,

-    ARM64_ABSOLUTE       = ARM64 + 0x0000,
-    ARM64_ADDR32         = ARM64 + 0x0001,
-    ARM64_ADDR32NB       = ARM64 + 0x0002,
-    ARM64_BRANCH26       = ARM64 + 0x0003,
+    ARM64_ABSOLUTE = ARM64 + 0x0000,
+    ARM64_ADDR32 = ARM64 + 0x0001,
+    ARM64_ADDR32NB = ARM64 + 0x0002,
+    ARM64_BRANCH26 = ARM64 + 0x0003,
     ARM64_PAGEBASE_REL21 = ARM64 + 0x0004,
-    ARM64_REL21          = ARM64 + 0x0005,
+    ARM64_REL21 = ARM64 + 0x0005,
     ARM64_PAGEOFFSET_12A = ARM64 + 0x0006,
     ARM64_PAGEOFFSET_12L = ARM64 + 0x0007,
-    ARM64_SECREL         = ARM64 + 0x0008,
-    ARM64_SECREL_LOW12A  = ARM64 + 0x0009,
+    ARM64_SECREL = ARM64 + 0x0008,
+    ARM64_SECREL_LOW12A = ARM64 + 0x0009,
     ARM64_SECREL_HIGH12A = ARM64 + 0x000A,
-    ARM64_SECREL_LOW12L  = ARM64 + 0x000B,
-    ARM64_TOKEN          = ARM64 + 0x000C,
-    ARM64_SECTION        = ARM64 + 0x000D,
-    ARM64_ADDR64         = ARM64 + 0x000E,
-    ARM64_BRANCH19       = ARM64 + 0x000F,
-    ARM64_BRANCH14       = ARM64 + 0x0010,
-    ARM64_REL32          = ARM64 + 0x0011,
-
-    MIPS_ABSOLUTE  = MIPS + 0x0000,
-    MIPS_REFHALF   = MIPS + 0x0001,
-    MIPS_REFWORD   = MIPS + 0x0002,
-    MIPS_JMPADDR   = MIPS + 0x0003,
-    MIPS_REFHI     = MIPS + 0x0004,
-    MIPS_REFLO     = MIPS + 0x0005,
-    MIPS_GPREL     = MIPS + 0x0006,
-    MIPS_LITERAL   = MIPS + 0x0007,
-    MIPS_SECTION   = MIPS + 0x000A,
-    MIPS_SECREL    = MIPS + 0x000B,
-    MIPS_SECRELLO  = MIPS + 0x000C,
-    MIPS_SECRELHI  = MIPS + 0x000D,
+    ARM64_SECREL_LOW12L = ARM64 + 0x000B,
+    ARM64_TOKEN = ARM64 + 0x000C,
+    ARM64_SECTION = ARM64 + 0x000D,
+    ARM64_ADDR64 = ARM64 + 0x000E,
+    ARM64_BRANCH19 = ARM64 + 0x000F,
+    ARM64_BRANCH14 = ARM64 + 0x0010,
+    ARM64_REL32 = ARM64 + 0x0011,
+
+    MIPS_ABSOLUTE = MIPS + 0x0000,
+    MIPS_REFHALF = MIPS + 0x0001,
+    MIPS_REFWORD = MIPS + 0x0002,
+    MIPS_JMPADDR = MIPS + 0x0003,
+    MIPS_REFHI = MIPS + 0x0004,
+    MIPS_REFLO = MIPS + 0x0005,
+    MIPS_GPREL = MIPS + 0x0006,
+    MIPS_LITERAL = MIPS + 0x0007,
+    MIPS_SECTION = MIPS + 0x000A,
+    MIPS_SECREL = MIPS + 0x000B,
+    MIPS_SECRELLO = MIPS + 0x000C,
+    MIPS_SECRELHI = MIPS + 0x000D,
     MIPS_JMPADDR16 = MIPS + 0x0010,
     MIPS_REFWORDNB = MIPS + 0x0022,
-    MIPS_PAIR      = MIPS + 0x0025,
+    MIPS_PAIR = MIPS + 0x0025,
   };

   /// Convert a relocation enum type into a 16-bits value.
@@ -139,32 +139,26 @@ class LIEF_API Relocation : public LIEF::Relocation {
   /// Create a relocation type from its raw value and the architecture
   static TYPE from_value(uint16_t value, Header::MACHINE_TYPES arch) {
     switch (arch) {
-      case Header::MACHINE_TYPES::ARM64:
-        return TYPE(value + ARM64);
+      case Header::MACHINE_TYPES::ARM64: return TYPE(value + ARM64);

-      case Header::MACHINE_TYPES::AMD64:
-        return TYPE(value + X64);
+      case Header::MACHINE_TYPES::AMD64: return TYPE(value + X64);

-      case Header::MACHINE_TYPES::I386:
-        return TYPE(value + I386);
+      case Header::MACHINE_TYPES::I386: return TYPE(value + I386);

       case Header::MACHINE_TYPES::ARM:
       case Header::MACHINE_TYPES::ARMNT:
-      case Header::MACHINE_TYPES::THUMB:
-        return TYPE(value + ARM);
+      case Header::MACHINE_TYPES::THUMB: return TYPE(value + ARM);

-      case Header::MACHINE_TYPES::R4000:
-        return TYPE(value + MIPS);
+      case Header::MACHINE_TYPES::R4000: return TYPE(value + MIPS);

-      default:
-        return TYPE::UNKNOWN;
+      default: return TYPE::UNKNOWN;
     }
     return TYPE::UNKNOWN;
   }

   /// Create a relocation from the given stream
-  static std::unique_ptr<Relocation> parse(
-      BinaryStream& stream, Header::MACHINE_TYPES arch);
+  static std::unique_ptr<Relocation> parse(BinaryStream& stream,
+                                           Header::MACHINE_TYPES arch);

   /// Symbol index associated with this relocation
   uint32_t symbol_idx() const {
diff --git a/deps/LIEF/include/LIEF/COFF/Section.hpp b/deps/LIEF/include/LIEF/COFF/Section.hpp
index d70a3117adf..f3ca20eeea7 100644
--- a/deps/LIEF/include/LIEF/COFF/Section.hpp
+++ b/deps/LIEF/include/LIEF/COFF/Section.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -19,6 +19,7 @@
 #include <memory>
 #include <ostream>

+#include "LIEF/compiler_attributes.hpp"
 #include "LIEF/visibility.h"
 #include "LIEF/Abstract/Section.hpp"
 #include "LIEF/PE/Section.hpp"
@@ -60,9 +61,11 @@ class LIEF_API Section : public LIEF::Section {
   using it_relocations = ref_iterator<relocations_t&, Relocation*>;

   /// Iterator that outputs const Relocation&
-  using it_const_relocations = const_ref_iterator<const relocations_t&, const Relocation*>;
+  using it_const_relocations =
+      const_ref_iterator<const relocations_t&, const Relocation*>;

-  /// Container for the symbols associated with this section (owned by the Binary object)
+  /// Container for the symbols associated with this section (owned by the Binary
+  /// object)
   using symbols_t = std::vector<Symbol*>;

   /// Iterator that outputs Symbol&
@@ -85,7 +88,7 @@ class LIEF_API Section : public LIEF::Section {
   }

   /// Content wrapped by this section
-  span<const uint8_t> content() const override {
+  span<const uint8_t> content() const LIEF_LIFETIMEBOUND override {
     return content_;
   }

@@ -110,7 +113,7 @@ class LIEF_API Section : public LIEF::Section {

   /// Number of relocations.
   ///
-  /// \warning If the number of relocations is greater than 0xFFFF (maximum
+  /// @warning If the number of relocations is greater than 0xFFFF (maximum
   ///          value for 16-bits integer), then the number of relocations is
   ///          stored in the virtual address of the **first** relocation.
   uint16_t numberof_relocations() const {
@@ -151,32 +154,33 @@ class LIEF_API Section : public LIEF::Section {
   }

   /// Iterator over the relocations associated with this section
-  it_relocations relocations() {
+  it_relocations relocations() LIEF_LIFETIMEBOUND {
     return relocations_;
   }

-  it_const_relocations relocations() const {
+  it_const_relocations relocations() const LIEF_LIFETIMEBOUND {
     return relocations_;
   }

   /// Iterator over the symbols associated with this section
-  it_symbols symbols() {
+  it_symbols symbols() LIEF_LIFETIMEBOUND {
     return symbols_;
   }

-  it_const_symbols symbols() const {
+  it_const_symbols symbols() const LIEF_LIFETIMEBOUND {
     return symbols_;
   }

-  /// Return comdat infomration (only if the section has the
+  /// Return comdat information (only if the section has the
   /// CHARACTERISTICS::LNK_COMDAT characteristic)
   optional<ComdatInfo> comdat_info() const;

   /// Whether there is a large number of relocations whose number need
   /// to be stored in the virtual address attribute
   bool has_extended_relocations() const {
+    static constexpr auto MAX_RELOC = /*uint16_t::max*/ 65535;
     return has_characteristic(CHARACTERISTICS::LNK_NRELOC_OVFL) &&
-           numberof_relocations() == std::numeric_limits<uint16_t>::max();
+           numberof_relocations() == MAX_RELOC;
   }

   void content(const std::vector<uint8_t>& data) override {
@@ -217,6 +221,18 @@ class LIEF_API Section : public LIEF::Section {
     characteristics_ = characteristics;
   }

+  /// Return the COFF string associated with the section's name (or a nullptr)
+  ///
+  /// This coff string is usually present for long section names whose length
+  /// does not fit in the 8 bytes allocated by the COFF format.
+  String* coff_string() {
+    return coff_string_;
+  }
+
+  const String* coff_string() const {
+    return coff_string_;
+  }
+
   std::string to_string() const;

   LIEF_API friend std::ostream& operator<<(std::ostream& os, const Section& sec) {
@@ -230,15 +246,17 @@ class LIEF_API Section : public LIEF::Section {
   Section() = default;

   std::vector<uint8_t> content_;
-  uint32_t virtual_size_           = 0;
+  uint32_t virtual_size_ = 0;
   uint32_t pointer_to_relocations_ = 0;
   uint32_t pointer_to_linenumbers_ = 0;
-  uint16_t number_of_relocations_  = 0;
-  uint16_t number_of_linenumbers_  = 0;
-  uint32_t characteristics_        = 0;
+  uint16_t number_of_relocations_ = 0;
+  uint16_t number_of_linenumbers_ = 0;
+  uint32_t characteristics_ = 0;

   relocations_t relocations_;
   symbols_t symbols_;
+
+  String* coff_string_ = nullptr;
 };

 inline const char* to_string(Section::CHARACTERISTICS e) {
diff --git a/deps/LIEF/include/LIEF/COFF/String.hpp b/deps/LIEF/include/LIEF/COFF/String.hpp
index 8e678762642..c2ffa3925aa 100644
--- a/deps/LIEF/include/LIEF/COFF/String.hpp
+++ b/deps/LIEF/include/LIEF/COFF/String.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -29,14 +29,14 @@ namespace COFF {
 /// Some of these strings can be used for section names that are greater than 8
 /// bytes. See: LIEF::PE::Section::coff_string()
 ///
-/// Reference: https://learn.microsoft.com/en-us/windows/win32/debug/pe-format#coff-string-table
+/// Reference:
+/// https://learn.microsoft.com/en-us/windows/win32/debug/pe-format#coff-string-table
 class LIEF_API String {
   public:
   String() = default;
   String(uint32_t offset, std::string str) :
     str_(std::move(str)),
-    offset_(offset)
-  {}
+    offset_(offset) {}

   String(const String&) = default;
   String& operator=(const String&) = default;
@@ -47,7 +47,7 @@ class LIEF_API String {
   ~String() = default;

   /// The actual string
-  const std::string& str() const {
+  const std::string& str() const LIEF_LIFETIMEBOUND {
     return str_;
   }

@@ -57,19 +57,17 @@ class LIEF_API String {
     return offset_;
   }

-  String& str(std::string str) {
+  String& str(std::string str) LIEF_LIFETIMEBOUND {
     str_ = std::move(str);
     return *this;
   }

-  String& offset(uint32_t value) {
+  String& offset(uint32_t value) LIEF_LIFETIMEBOUND {
     offset_ = value;
     return *this;
   }

-  friend LIEF_API
-    std::ostream& operator<<(std::ostream& os, const String& str)
-  {
+  friend LIEF_API std::ostream& operator<<(std::ostream& os, const String& str) {
     os << str.str();
     return os;
   }
diff --git a/deps/LIEF/include/LIEF/COFF/Symbol.hpp b/deps/LIEF/include/LIEF/COFF/Symbol.hpp
index 3a9d8a97fcb..d6b4f4f41ed 100644
--- a/deps/LIEF/include/LIEF/COFF/Symbol.hpp
+++ b/deps/LIEF/include/LIEF/COFF/Symbol.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -37,15 +37,17 @@ class LIEF_API Symbol : public LIEF::Symbol {
   friend class Parser;

   using auxiliary_symbols_t = std::vector<std::unique_ptr<AuxiliarySymbol>>;
-  using it_auxiliary_symbols_t = ref_iterator<auxiliary_symbols_t&, AuxiliarySymbol*>;
-  using it_const_auxiliary_symbols_t = const_ref_iterator<const auxiliary_symbols_t&, AuxiliarySymbol*>;
+  using it_auxiliary_symbols_t =
+      ref_iterator<auxiliary_symbols_t&, AuxiliarySymbol*>;
+  using it_const_auxiliary_symbols_t =
+      const_ref_iterator<const auxiliary_symbols_t&, AuxiliarySymbol*>;

   struct parsing_context_t {
     std::function<String*(uint32_t)> find_string;
     bool is_bigobj;
   };
-  static std::unique_ptr<Symbol> parse(
-      parsing_context_t& ctx, BinaryStream& stream, size_t* idx);
+  static std::unique_ptr<Symbol> parse(parsing_context_t& ctx,
+                                       BinaryStream& stream, size_t* idx);

   Symbol();
   Symbol(const Symbol&);
@@ -58,8 +60,10 @@ class LIEF_API Symbol : public LIEF::Symbol {
   /// correspond to a section. Microsoft tools use this setting along with
   /// `.file` records.
   static constexpr auto SYM_SEC_IDX_DEBUG = -2;
+
   /// The symbol has an absolute (non-relocatable) value and is not an address.
   static constexpr auto SYM_SEC_IDX_ABS = -1;
+
   /// The symbol record is not yet assigned a section. A value of zero indicates
   /// that a reference to an external symbol is defined elsewhere. A value of
   /// non-zero is a common symbol with a size that is specified by the value.
@@ -67,37 +71,38 @@ class LIEF_API Symbol : public LIEF::Symbol {

   static constexpr auto SYM_COMPLEX_TYPE_SHIFT = 4;

-  /// Reference: https://learn.microsoft.com/en-us/windows/win32/debug/pe-format#storage-class
+  /// Reference:
+  /// https://learn.microsoft.com/en-us/windows/win32/debug/pe-format#storage-class
   enum class STORAGE_CLASS : int32_t {
     INVALID = 0xFF,

-    END_OF_FUNCTION  = -1,  ///< Physical end of function
-    NONE             = 0,   ///< No symbol
-    AUTOMATIC        = 1,   ///< Stack variable
-    EXTERNAL         = 2,   ///< External symbol
-    STATIC           = 3,   ///< Static
-    REGISTER         = 4,   ///< Register variable
-    EXTERNAL_DEF     = 5,   ///< External definition
-    LABEL            = 6,   ///< Label
-    UNDEFINED_LABEL  = 7,   ///< Undefined label
-    MEMBER_OF_STRUCT = 8,   ///< Member of structure
-    ARGUMENT         = 9,   ///< Function argument
-    STRUCT_TAG       = 10,  ///< Structure tag
-    MEMBER_OF_UNION  = 11,  ///< Member of union
-    UNION_TAG        = 12,  ///< Union tag
-    TYPE_DEFINITION  = 13,  ///< Type definition
-    UNDEFINED_STATIC = 14,  ///< Undefined static
-    ENUM_TAG         = 15,  ///< Enumeration tag
-    MEMBER_OF_ENUM   = 16,  ///< Member of enumeration
-    REGISTER_PARAM   = 17,  ///< Register parameter
-    BIT_FIELD        = 18,  ///< Bit field
-    BLOCK            = 100,
-    FUNCTION         = 101,
-    END_OF_STRUCT    = 102, ///< End of structure
-    FILE             = 103, ///< File name
-    SECTION          = 104,
-    WEAK_EXTERNAL    = 105, ///< Duplicate tag
-    CLR_TOKEN        = 107
+    END_OF_FUNCTION = -1,  ///< Physical end of function
+    NONE = 0,              ///< No symbol
+    AUTOMATIC = 1,         ///< Stack variable
+    EXTERNAL = 2,          ///< External symbol
+    STATIC = 3,            ///< Static
+    REGISTER = 4,          ///< Register variable
+    EXTERNAL_DEF = 5,      ///< External definition
+    LABEL = 6,             ///< Label
+    UNDEFINED_LABEL = 7,   ///< Undefined label
+    MEMBER_OF_STRUCT = 8,  ///< Member of structure
+    ARGUMENT = 9,          ///< Function argument
+    STRUCT_TAG = 10,       ///< Structure tag
+    MEMBER_OF_UNION = 11,  ///< Member of union
+    UNION_TAG = 12,        ///< Union tag
+    TYPE_DEFINITION = 13,  ///< Type definition
+    UNDEFINED_STATIC = 14, ///< Undefined static
+    ENUM_TAG = 15,         ///< Enumeration tag
+    MEMBER_OF_ENUM = 16,   ///< Member of enumeration
+    REGISTER_PARAM = 17,   ///< Register parameter
+    BIT_FIELD = 18,        ///< Bit field
+    BLOCK = 100,
+    FUNCTION = 101,
+    END_OF_STRUCT = 102, ///< End of structure
+    FILE = 103,          ///< File name
+    SECTION = 104,
+    WEAK_EXTERNAL = 105, ///< Duplicate tag
+    CLR_TOKEN = 107,
   };

   enum class BASE_TYPE : uint32_t {
@@ -116,7 +121,7 @@ class LIEF_API Symbol : public LIEF::Symbol {
     TY_BYTE = 12,  ///< A byte; unsigned 1-byte integer.
     TY_WORD = 13,  ///< A word; unsigned 2-byte integer.
     TY_UINT = 14,  ///< An unsigned integer of natural size.
-    TY_DWORD = 15  ///< An unsigned 4-byte integer.
+    TY_DWORD = 15, ///< An unsigned 4-byte integer.
   };

   enum class COMPLEX_TYPE : uint32_t {
@@ -192,8 +197,7 @@ class LIEF_API Symbol : public LIEF::Symbol {
   }

   bool is_undefined() const {
-    return is_external() && section_idx() == SYM_SEC_IDX_UNDEF &&
-           value() == 0;
+    return is_external() && section_idx() == SYM_SEC_IDX_UNDEF && value() == 0;
   }

   bool is_function_line_info() const {
@@ -223,7 +227,7 @@ class LIEF_API Symbol : public LIEF::Symbol {

   std::string& name() override;

-  /// COFF string used to represents the (long) symbol name
+  /// COFF string used to represent the (long) symbol name
   const String* coff_name() const {
     return coff_name_;
   }
@@ -256,9 +260,7 @@ class LIEF_API Symbol : public LIEF::Symbol {

   std::string to_string() const;

-  LIEF_API friend
-    std::ostream& operator<<(std::ostream& os, const Symbol& entry)
-  {
+  LIEF_API friend std::ostream& operator<<(std::ostream& os, const Symbol& entry) {
     os << entry.to_string();
     return os;
   }
@@ -267,8 +269,8 @@ class LIEF_API Symbol : public LIEF::Symbol {

   private:
   template<class T>
-  static std::unique_ptr<Symbol> parse_impl(
-      parsing_context_t& ctx, BinaryStream& stream, size_t* idx);
+  static std::unique_ptr<Symbol> parse_impl(parsing_context_t& ctx,
+                                            BinaryStream& stream, size_t* idx);
   String* coff_name_ = nullptr;
   uint16_t type_ = 0;
   uint8_t storage_class_ = 0;
diff --git a/deps/LIEF/include/LIEF/COFF/utils.hpp b/deps/LIEF/include/LIEF/COFF/utils.hpp
index 73cb9fbf34a..ead86f87efc 100644
--- a/deps/LIEF/include/LIEF/COFF/utils.hpp
+++ b/deps/LIEF/include/LIEF/COFF/utils.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -17,7 +17,6 @@
 #define LIEF_COFF_UTILS_H
 #include "LIEF/visibility.h"
 #include "LIEF/COFF/Header.hpp"
-#include "LIEF/BinaryStream/FileStream.hpp"
 #include "LIEF/BinaryStream/SpanStream.hpp"
 #include <string>

diff --git a/deps/LIEF/include/LIEF/DEX.hpp b/deps/LIEF/include/LIEF/DEX.hpp
index f976b08117d..28324a1fb04 100644
--- a/deps/LIEF/include/LIEF/DEX.hpp
+++ b/deps/LIEF/include/LIEF/DEX.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -18,15 +18,15 @@
 #include "LIEF/config.h"

 #if defined(LIEF_DEX_SUPPORT)
-#include "LIEF/DEX/Parser.hpp"
-#include "LIEF/DEX/utils.hpp"
-#include "LIEF/DEX/File.hpp"
-#include "LIEF/DEX/Class.hpp"
-#include "LIEF/DEX/Prototype.hpp"
-#include "LIEF/DEX/Header.hpp"
-#include "LIEF/DEX/Method.hpp"
-#include "LIEF/DEX/Field.hpp"
-#include "LIEF/DEX/EnumToString.hpp"
+  #include "LIEF/DEX/Parser.hpp"
+  #include "LIEF/DEX/utils.hpp"
+  #include "LIEF/DEX/File.hpp"
+  #include "LIEF/DEX/Class.hpp"
+  #include "LIEF/DEX/Prototype.hpp"
+  #include "LIEF/DEX/Header.hpp"
+  #include "LIEF/DEX/Method.hpp"
+  #include "LIEF/DEX/Field.hpp"
+  #include "LIEF/DEX/EnumToString.hpp"
 #endif

 #endif
diff --git a/deps/LIEF/include/LIEF/DEX/Class.hpp b/deps/LIEF/include/LIEF/DEX/Class.hpp
index 0b1baff36ad..0a05a20d90a 100644
--- a/deps/LIEF/include/LIEF/DEX/Class.hpp
+++ b/deps/LIEF/include/LIEF/DEX/Class.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -56,7 +56,8 @@ class LIEF_API Class : public Object {
   public:
   static std::string package_normalized(const std::string& pkg_name);
   static std::string fullname_normalized(const std::string& pkg_cls);
-  static std::string fullname_normalized(const std::string& pkg, const std::string& cls_name);
+  static std::string fullname_normalized(const std::string& pkg,
+                                         const std::string& cls_name);

   Class();
   Class(const Class&) = delete;
@@ -124,10 +125,10 @@ class LIEF_API Class : public Object {

   private:
   std::string fullname_;
-  uint32_t    access_flags_ = ACCESS_FLAGS::ACC_UNKNOWN;
-  Class*      parent_ = nullptr;
-  methods_t   methods_;
-  fields_t    fields_;
+  uint32_t access_flags_ = ACCESS_FLAGS::ACC_UNKNOWN;
+  Class* parent_ = nullptr;
+  methods_t methods_;
+  fields_t fields_;
   std::string source_filename_;

   uint32_t original_index_ = UINT_MAX;
diff --git a/deps/LIEF/include/LIEF/DEX/CodeInfo.hpp b/deps/LIEF/include/LIEF/DEX/CodeInfo.hpp
index 85410e665b1..34c21b870b3 100644
--- a/deps/LIEF/include/LIEF/DEX/CodeInfo.hpp
+++ b/deps/LIEF/include/LIEF/DEX/CodeInfo.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -46,13 +46,13 @@ class LIEF_API CodeInfo : public Object {

   ~CodeInfo() override;

-  LIEF_API friend std::ostream& operator<<(std::ostream& os, const CodeInfo& cinfo);
+  LIEF_API friend std::ostream& operator<<(std::ostream& os,
+                                           const CodeInfo& cinfo);

   private:
   uint16_t nb_registers_ = 0;
   uint16_t args_input_sizes_ = 0;
   uint16_t output_sizes_ = 0;
-
 };

 } // Namespace DEX
diff --git a/deps/LIEF/include/LIEF/DEX/EnumToString.hpp b/deps/LIEF/include/LIEF/DEX/EnumToString.hpp
index 18336a7028b..e155236f613 100644
--- a/deps/LIEF/include/LIEF/DEX/EnumToString.hpp
+++ b/deps/LIEF/include/LIEF/DEX/EnumToString.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -32,4 +32,3 @@ LIEF_API const char* to_string(Type::PRIMITIVES e);
 } // namespace LIEF

 #endif
-
diff --git a/deps/LIEF/include/LIEF/DEX/Field.hpp b/deps/LIEF/include/LIEF/DEX/Field.hpp
index 25283a81e00..3eff71324bc 100644
--- a/deps/LIEF/include/LIEF/DEX/Field.hpp
+++ b/deps/LIEF/include/LIEF/DEX/Field.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2021 - 2025 R. Thomas
+/* Copyright 2021 - 2026 R. Thomas
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -30,9 +30,10 @@ namespace DEX {
 class Parser;
 class Class;

-/// Class which represent a DEX Field
+/// Class which represents a DEX Field
 class LIEF_API Field : public Object {
   friend class Parser;
+
   public:
   using access_flags_list_t = std::vector<ACCESS_FLAGS>;

@@ -51,8 +52,8 @@ class LIEF_API Field : public Object {
   bool has_class() const;

   /// Class associated with this Field
-  const Class* cls() const;
-  Class* cls();
+  const Class* cls() const LIEF_LIFETIMEBOUND;
+  Class* cls() LIEF_LIFETIMEBOUND;

   /// Index in the DEX Fields pool
   size_t index() const;
@@ -61,8 +62,8 @@ class LIEF_API Field : public Object {
   bool is_static() const;

   /// Field's prototype
-  const Type* type() const;
-  Type* type();
+  const Type* type() const LIEF_LIFETIMEBOUND;
+  Type* type() LIEF_LIFETIMEBOUND;

   void accept(Visitor& visitor) const override;

diff --git a/deps/LIEF/include/LIEF/DEX/File.hpp b/deps/LIEF/include/LIEF/DEX/File.hpp
index 6cf6240d82c..226ffee53ac 100644
--- a/deps/LIEF/include/LIEF/DEX/File.hpp
+++ b/deps/LIEF/include/LIEF/DEX/File.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -49,25 +49,27 @@ class LIEF_API File : public Object {
   using it_methods = ref_iterator<methods_t&, Method*>;
   using it_const_methods = const_ref_iterator<const methods_t&, const Method*>;

-  using strings_t           = std::vector<std::unique_ptr<std::string>>;
-  using it_strings          = ref_iterator<strings_t&, std::string*>;
-  using it_const_strings    = const_ref_iterator<const strings_t&, const std::string*>;
+  using strings_t = std::vector<std::unique_ptr<std::string>>;
+  using it_strings = ref_iterator<strings_t&, std::string*>;
+  using it_const_strings =
+      const_ref_iterator<const strings_t&, const std::string*>;

-  using types_t             = std::vector<std::unique_ptr<Type>>;
-  using it_types            = ref_iterator<types_t&, Type*>;
-  using it_const_types      = const_ref_iterator<const types_t&, const Type*>;
+  using types_t = std::vector<std::unique_ptr<Type>>;
+  using it_types = ref_iterator<types_t&, Type*>;
+  using it_const_types = const_ref_iterator<const types_t&, const Type*>;

-  using prototypes_t        = std::vector<std::unique_ptr<Prototype>>;
-  using it_prototypes       = ref_iterator<prototypes_t&, Prototype*>;
-  using it_const_prototypes = const_ref_iterator<const prototypes_t&, const Prototype*>;
+  using prototypes_t = std::vector<std::unique_ptr<Prototype>>;
+  using it_prototypes = ref_iterator<prototypes_t&, Prototype*>;
+  using it_const_prototypes =
+      const_ref_iterator<const prototypes_t&, const Prototype*>;

-  using fields_t            = std::vector<std::unique_ptr<Field>>;
-  using it_fields           = ref_iterator<fields_t&, Field*>;
-  using it_const_fields     = const_ref_iterator<const fields_t&, const Field*>;
+  using fields_t = std::vector<std::unique_ptr<Field>>;
+  using it_fields = ref_iterator<fields_t&, Field*>;
+  using it_const_fields = const_ref_iterator<const fields_t&, const Field*>;

   public:
   File& operator=(const File& copy) = delete;
-  File(const File& copy)            = delete;
+  File(const File& copy) = delete;

   /// Version of the current DEX file
   dex_version_t version() const;
@@ -82,25 +84,25 @@ class LIEF_API File : public Object {
   void location(const std::string& location);

   /// DEX header
-  const Header& header() const;
-  Header& header();
+  const Header& header() const LIEF_LIFETIMEBOUND;
+  Header& header() LIEF_LIFETIMEBOUND;

   /// **All** classes used in the DEX file
-  it_const_classes classes() const;
-  it_classes classes();
+  it_const_classes classes() const LIEF_LIFETIMEBOUND;
+  it_classes classes() LIEF_LIFETIMEBOUND;

   /// Check if the given class name exists
   bool has_class(const std::string& class_name) const;

   /// Return the DEX::Class object associated with the given name
-  const Class* get_class(const std::string& class_name) const;
+  const Class* get_class(const std::string& class_name) const LIEF_LIFETIMEBOUND;

-  Class* get_class(const std::string& class_name);
+  Class* get_class(const std::string& class_name) LIEF_LIFETIMEBOUND;

   /// Return the DEX::Class object associated with the given index
-  const Class* get_class(size_t index) const;
+  const Class* get_class(size_t index) const LIEF_LIFETIMEBOUND;

-  Class* get_class(size_t index);
+  Class* get_class(size_t index) LIEF_LIFETIMEBOUND;

   /// De-optimize information
   dex2dex_info_t dex2dex_info() const;
@@ -109,24 +111,24 @@ class LIEF_API File : public Object {
   std::string dex2dex_json_info() const;

   /// Return an iterator over **all** the DEX::Method used in this DEX file
-  it_const_methods methods() const;
-  it_methods methods();
+  it_const_methods methods() const LIEF_LIFETIMEBOUND;
+  it_methods methods() LIEF_LIFETIMEBOUND;

   /// Return an iterator over **all** the DEX::Field used in this DEX file
-  it_const_fields fields() const;
-  it_fields fields();
+  it_const_fields fields() const LIEF_LIFETIMEBOUND;
+  it_fields fields() LIEF_LIFETIMEBOUND;

   /// String pool
-  it_const_strings strings() const;
-  it_strings strings();
+  it_const_strings strings() const LIEF_LIFETIMEBOUND;
+  it_strings strings() LIEF_LIFETIMEBOUND;

   /// Type pool
-  it_const_types types() const;
-  it_types types();
+  it_const_types types() const LIEF_LIFETIMEBOUND;
+  it_types types() LIEF_LIFETIMEBOUND;

   /// Prototype pool
-  it_prototypes prototypes();
-  it_const_prototypes prototypes() const;
+  it_prototypes prototypes() LIEF_LIFETIMEBOUND;
+  it_const_prototypes prototypes() const LIEF_LIFETIMEBOUND;

   /// DEX Map
   const MapList& map() const;
@@ -151,20 +153,22 @@ class LIEF_API File : public Object {

   static void deoptimize_nop(uint8_t* inst_ptr, uint32_t value);
   static void deoptimize_return(uint8_t* inst_ptr, uint32_t value);
-  static void deoptimize_invoke_virtual(uint8_t* inst_ptr, uint32_t value, OPCODES new_inst);
-  static void deoptimize_instance_field_access(uint8_t* inst_ptr, uint32_t value, OPCODES new_inst);
+  static void deoptimize_invoke_virtual(uint8_t* inst_ptr, uint32_t value,
+                                        OPCODES new_inst);
+  static void deoptimize_instance_field_access(uint8_t* inst_ptr, uint32_t value,
+                                               OPCODES new_inst);

   std::string name_;
   std::string location_;

-  Header       header_;
-  classes_t    classes_;
-  methods_t    methods_;
-  fields_t     fields_;
-  strings_t    strings_;
-  types_t      types_;
+  Header header_;
+  classes_t classes_;
+  methods_t methods_;
+  fields_t fields_;
+  strings_t strings_;
+  types_t types_;
   prototypes_t prototypes_;
-  MapList      map_;
+  MapList map_;

   classes_list_t class_list_;
   std::vector<uint8_t> original_data_;
diff --git a/deps/LIEF/include/LIEF/DEX/Header.hpp b/deps/LIEF/include/LIEF/DEX/Header.hpp
index b1d269f7a21..d2cab3731ab 100644
--- a/deps/LIEF/include/LIEF/DEX/Header.hpp
+++ b/deps/LIEF/include/LIEF/DEX/Header.hpp
@@ -1,6 +1,6 @@

-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -42,7 +42,7 @@ class LIEF_API Header : public Object {
   public:
   using location_t = std::pair<uint32_t, uint32_t>;

-  using magic_t     = std::array<uint8_t, 8>;
+  using magic_t = std::array<uint8_t, 8>;
   using signature_t = std::array<uint8_t, 20>;

   Header();
@@ -67,7 +67,7 @@ class LIEF_API Header : public Object {
   /// Size of this header. It should be 0x70
   uint32_t header_size() const;

-  /// File endianess of the file
+  /// File endianness of the file
   uint32_t endian_tag() const;

   /// Offset from the start of the file to the map list (see: DEX::MapList)
@@ -95,39 +95,39 @@ class LIEF_API Header : public Object {
   ~Header() override;

   private:
-  magic_t magic_;
-  uint32_t checksum_;
-  signature_t signature_;
-  uint32_t file_size_;
+  magic_t magic_{};
+  uint32_t checksum_ = 0;
+  signature_t signature_{};
+  uint32_t file_size_ = 0;

-  uint32_t header_size_;
-  uint32_t endian_tag_;
+  uint32_t header_size_ = 0;
+  uint32_t endian_tag_ = 0;

-  uint32_t link_size_;
-  uint32_t link_off_;
+  uint32_t link_size_ = 0;
+  uint32_t link_off_ = 0;

-  uint32_t map_off_;
+  uint32_t map_off_ = 0;

-  uint32_t string_ids_size_;
-  uint32_t string_ids_off_;
+  uint32_t string_ids_size_ = 0;
+  uint32_t string_ids_off_ = 0;

-  uint32_t type_ids_size_;
-  uint32_t type_ids_off_;
+  uint32_t type_ids_size_ = 0;
+  uint32_t type_ids_off_ = 0;

-  uint32_t proto_ids_size_;
-  uint32_t proto_ids_off_;
+  uint32_t proto_ids_size_ = 0;
+  uint32_t proto_ids_off_ = 0;

-  uint32_t field_ids_size_;
-  uint32_t field_ids_off_;
+  uint32_t field_ids_size_ = 0;
+  uint32_t field_ids_off_ = 0;

-  uint32_t method_ids_size_;
-  uint32_t method_ids_off_;
+  uint32_t method_ids_size_ = 0;
+  uint32_t method_ids_off_ = 0;

-  uint32_t class_defs_size_;
-  uint32_t class_defs_off_;
+  uint32_t class_defs_size_ = 0;
+  uint32_t class_defs_off_ = 0;

-  uint32_t data_size_;
-  uint32_t data_off_;
+  uint32_t data_size_ = 0;
+  uint32_t data_off_ = 0;
 };

 } // Namespace DEX
diff --git a/deps/LIEF/include/LIEF/DEX/MapItem.hpp b/deps/LIEF/include/LIEF/DEX/MapItem.hpp
index bb791c472e1..2206a8aeeb4 100644
--- a/deps/LIEF/include/LIEF/DEX/MapItem.hpp
+++ b/deps/LIEF/include/LIEF/DEX/MapItem.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -33,26 +33,26 @@ class LIEF_API MapItem : public Object {

   public:
   enum class TYPES : uint16_t {
-    HEADER                  = 0x0000,
-    STRING_ID               = 0x0001,
-    TYPE_ID                 = 0x0002,
-    PROTO_ID                = 0x0003,
-    FIELD_ID                = 0x0004,
-    METHOD_ID               = 0x0005,
-    CLASS_DEF               = 0x0006,
-    CALL_SITE_ID            = 0x0007,
-    METHOD_HANDLE           = 0x0008,
-    MAP_LIST                = 0x1000,
-    TYPE_LIST               = 0x1001,
+    HEADER = 0x0000,
+    STRING_ID = 0x0001,
+    TYPE_ID = 0x0002,
+    PROTO_ID = 0x0003,
+    FIELD_ID = 0x0004,
+    METHOD_ID = 0x0005,
+    CLASS_DEF = 0x0006,
+    CALL_SITE_ID = 0x0007,
+    METHOD_HANDLE = 0x0008,
+    MAP_LIST = 0x1000,
+    TYPE_LIST = 0x1001,
     ANNOTATION_SET_REF_LIST = 0x1002,
-    ANNOTATION_SET          = 0x1003,
-    CLASS_DATA              = 0x2000,
-    CODE                    = 0x2001,
-    STRING_DATA             = 0x2002,
-    DEBUG_INFO              = 0x2003,
-    ANNOTATION              = 0x2004,
-    ENCODED_ARRAY           = 0x2005,
-    ANNOTATIONS_DIRECTORY   = 0x2006,
+    ANNOTATION_SET = 0x1003,
+    CLASS_DATA = 0x2000,
+    CODE = 0x2001,
+    STRING_DATA = 0x2002,
+    DEBUG_INFO = 0x2003,
+    ANNOTATION = 0x2004,
+    ENCODED_ARRAY = 0x2005,
+    ANNOTATIONS_DIRECTORY = 0x2006,

   };

@@ -66,7 +66,7 @@ class LIEF_API MapItem : public Object {
   /// The type of the item
   TYPES type() const;

-  /// Reserved value (likely for alignment prupose)
+  /// Reserved value (likely for alignment purpose)
   uint16_t reserved() const;

   /// The number of elements (the real meaning depends on the type)
@@ -84,11 +84,10 @@ class LIEF_API MapItem : public Object {
   ~MapItem() override;

   private:
-  TYPES    type_;
-  uint16_t reserved_;
-  uint32_t size_;
-  uint32_t offset_;
-
+  TYPES type_ = TYPES::HEADER;
+  uint16_t reserved_ = 0;
+  uint32_t size_ = 0;
+  uint32_t offset_ = 0;
 };

 } // Namespace DEX
diff --git a/deps/LIEF/include/LIEF/DEX/MapList.hpp b/deps/LIEF/include/LIEF/DEX/MapList.hpp
index c0c59ee83b1..53559222f52 100644
--- a/deps/LIEF/include/LIEF/DEX/MapList.hpp
+++ b/deps/LIEF/include/LIEF/DEX/MapList.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -38,9 +38,9 @@ class LIEF_API MapList : public Object {
   friend class Parser;

   public:
-  using items_t           = std::map<MapItem::TYPES, MapItem>;
-  using it_items_t        = ref_iterator<std::vector<MapItem*>>;
-  using it_const_items_t  = const_ref_iterator<std::vector<MapItem*>>;
+  using items_t = std::map<MapItem::TYPES, MapItem>;
+  using it_items_t = ref_iterator<std::vector<MapItem*>>;
+  using it_const_items_t = const_ref_iterator<std::vector<MapItem*>>;

   public:
   MapList();
@@ -56,10 +56,10 @@ class LIEF_API MapList : public Object {
   bool has(MapItem::TYPES type) const;

   /// Return the LIEF::DEX::MapItem associated with the given type
-  const MapItem& get(MapItem::TYPES type) const;
+  const MapItem& get(MapItem::TYPES type) const LIEF_LIFETIMEBOUND;

   /// Return the LIEF::DEX::MapItem associated with the given type
-  MapItem& get(MapItem::TYPES type);
+  MapItem& get(MapItem::TYPES type) LIEF_LIFETIMEBOUND;

   /// Return the LIEF::DEX::MapItem associated with the given type
   const MapItem& operator[](MapItem::TYPES type) const;
@@ -76,7 +76,6 @@ class LIEF_API MapList : public Object {

   private:
   items_t items_;
-
 };

 } // Namespace DEX
diff --git a/deps/LIEF/include/LIEF/DEX/Method.hpp b/deps/LIEF/include/LIEF/DEX/Method.hpp
index 54eec9bd662..5f419760ac2 100644
--- a/deps/LIEF/include/LIEF/DEX/Method.hpp
+++ b/deps/LIEF/include/LIEF/DEX/Method.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -35,6 +35,7 @@ class Prototype;
 /// Class which represents a DEX::Method
 class LIEF_API Method : public Object {
   friend class Parser;
+
   public:
   using access_flags_list_t = std::vector<ACCESS_FLAGS>;

@@ -67,7 +68,7 @@ class LIEF_API Method : public Object {
   size_t index() const;

   /// True if this method is a virtual one.
-  /// i.e. not **static**, **private**, **finale** or constructor
+  /// i.e. not **static**, **private**, **final** or constructor
   bool is_virtual() const;

   /// Method's prototype or a nullptr if it is not resolved
@@ -110,7 +111,6 @@ class LIEF_API Method : public Object {
   CodeInfo code_info_;

   dex2dex_method_info_t dex2dex_info_;
-
 };

 } // Namespace DEX
diff --git a/deps/LIEF/include/LIEF/DEX/Parser.hpp b/deps/LIEF/include/LIEF/DEX/Parser.hpp
index 7b925d129da..2d3337ec9da 100644
--- a/deps/LIEF/include/LIEF/DEX/Parser.hpp
+++ b/deps/LIEF/include/LIEF/DEX/Parser.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -37,13 +37,13 @@ class Type;
 /// Class which parses a DEX file to produce a DEX::File object
 class LIEF_API Parser {
   public:
-
   /// Parse the DEX file from the file path given in parameter
   static std::unique_ptr<File> parse(const std::string& file);
-  static std::unique_ptr<File> parse(std::vector<uint8_t> data, const std::string& name = "");
+  static std::unique_ptr<File> parse(std::vector<uint8_t> data,
+                                     const std::string& name = "");

   Parser& operator=(const Parser& copy) = delete;
-  Parser(const Parser& copy)            = delete;
+  Parser(const Parser& copy) = delete;

   private:
   Parser();
diff --git a/deps/LIEF/include/LIEF/DEX/Prototype.hpp b/deps/LIEF/include/LIEF/DEX/Prototype.hpp
index ff6413a5c0b..37762487ec6 100644
--- a/deps/LIEF/include/LIEF/DEX/Prototype.hpp
+++ b/deps/LIEF/include/LIEF/DEX/Prototype.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -31,16 +31,16 @@ class LIEF_API Prototype : public Object {

   public:
   using parameters_type_t = std::vector<Type*>;
-  using it_params         = ref_iterator<parameters_type_t>;
-  using it_const_params   = const_ref_iterator<const parameters_type_t>;
+  using it_params = ref_iterator<parameters_type_t>;
+  using it_const_params = const_ref_iterator<const parameters_type_t>;

   public:
   Prototype();
   Prototype(const Prototype& other);

   /// Type returned or a nullptr if not resolved
-  const Type* return_type() const;
-  Type* return_type();
+  const Type* return_type() const LIEF_LIFETIMEBOUND;
+  Type* return_type() LIEF_LIFETIMEBOUND;

   /// Types of the parameters
   it_const_params parameters_type() const;
@@ -49,14 +49,14 @@ class LIEF_API Prototype : public Object {
   void accept(Visitor& visitor) const override;


-  LIEF_API friend std::ostream& operator<<(std::ostream& os, const Prototype& type);
+  LIEF_API friend std::ostream& operator<<(std::ostream& os,
+                                           const Prototype& type);

   ~Prototype() override;

   private:
   Type* return_type_ = nullptr;
   parameters_type_t params_;
-
 };

 } // Namespace DEX
diff --git a/deps/LIEF/include/LIEF/DEX/Type.hpp b/deps/LIEF/include/LIEF/DEX/Type.hpp
index 0c93f4922f7..749eb4faf1f 100644
--- a/deps/LIEF/include/LIEF/DEX/Type.hpp
+++ b/deps/LIEF/include/LIEF/DEX/Type.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -29,28 +29,29 @@ class Parser;
 class Class;

 /// Class which represents a DEX type as described in the
-/// format specifications: https://source.android.com/devices/tech/dalvik/dex-format#typedescriptor
+/// format specifications:
+/// https://source.android.com/devices/tech/dalvik/dex-format#typedescriptor
 class LIEF_API Type : public Object {
   friend class Parser;

   public:
   enum class TYPES {
-    UNKNOWN   = 0,
+    UNKNOWN = 0,
     PRIMITIVE = 1,
-    CLASS     = 2,
-    ARRAY     = 3,
+    CLASS = 2,
+    ARRAY = 3,
   };

   enum class PRIMITIVES {
-    VOID_T  = 0x01,
+    VOID_T = 0x01,
     BOOLEAN = 0x02,
-    BYTE    = 0x03,
-    SHORT   = 0x04,
-    CHAR    = 0x05,
-    INT     = 0x06,
-    LONG    = 0x07,
-    FLOAT   = 0x08,
-    DOUBLE  = 0x09,
+    BYTE = 0x03,
+    SHORT = 0x04,
+    CHAR = 0x05,
+    INT = 0x06,
+    LONG = 0x07,
+    FLOAT = 0x08,
+    DOUBLE = 0x09,
   };

   using array_t = std::vector<Type>;
@@ -87,8 +88,8 @@ class LIEF_API Type : public Object {
   size_t dim() const;

   /// In the case of a TYPES::ARRAY, return the array's type
-  const Type& underlying_array_type() const;
-  Type& underlying_array_type();
+  const Type& underlying_array_type() const LIEF_LIFETIMEBOUND;
+  Type& underlying_array_type() LIEF_LIFETIMEBOUND;

   void accept(Visitor& visitor) const override;

diff --git a/deps/LIEF/include/LIEF/DEX/deopt.hpp b/deps/LIEF/include/LIEF/DEX/deopt.hpp
index 4164a8ffecc..4a23843fe89 100644
--- a/deps/LIEF/include/LIEF/DEX/deopt.hpp
+++ b/deps/LIEF/include/LIEF/DEX/deopt.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -25,8 +25,8 @@ class Method;

 // Method Index: {dex_pc: index, ...}
 using dex2dex_method_info_t = std::unordered_map<uint32_t, uint32_t>;
-using dex2dex_class_info_t  = std::unordered_map<Method*, dex2dex_method_info_t>;
-using dex2dex_info_t        = std::unordered_map<Class*, dex2dex_class_info_t>;
+using dex2dex_class_info_t = std::unordered_map<Method*, dex2dex_method_info_t>;
+using dex2dex_info_t = std::unordered_map<Class*, dex2dex_class_info_t>;

 }
 }
diff --git a/deps/LIEF/include/LIEF/DEX/enums.hpp b/deps/LIEF/include/LIEF/DEX/enums.hpp
index 4e808d8f9b7..1bfe7d968e9 100644
--- a/deps/LIEF/include/LIEF/DEX/enums.hpp
+++ b/deps/LIEF/include/LIEF/DEX/enums.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -20,61 +20,51 @@ namespace LIEF {
 namespace DEX {

 enum ACCESS_FLAGS {
-  ACC_UNKNOWN               = 0x0,
-  ACC_PUBLIC                = 0x1,
-  ACC_PRIVATE               = 0x2,
-  ACC_PROTECTED             = 0x4,
-  ACC_STATIC                = 0x8,
-  ACC_FINAL                 = 0x10,
-  ACC_SYNCHRONIZED          = 0x20,
-  ACC_VOLATILE              = 0x40,
-  ACC_BRIDGE                = 0x40,
-  ACC_TRANSIENT             = 0x80,
-  ACC_VARARGS               = 0x80,
-  ACC_NATIVE                = 0x100,
-  ACC_INTERFACE             = 0x200,
-  ACC_ABSTRACT              = 0x400,
-  ACC_STRICT                = 0x800,
-  ACC_SYNTHETIC             = 0x1000,
-  ACC_ANNOTATION            = 0x2000,
-  ACC_ENUM                  = 0x4000,
-  ACC_CONSTRUCTOR           = 0x10000,
-  ACC_DECLARED_SYNCHRONIZED = 0x20000
+  ACC_UNKNOWN = 0x0,
+  ACC_PUBLIC = 0x1,
+  ACC_PRIVATE = 0x2,
+  ACC_PROTECTED = 0x4,
+  ACC_STATIC = 0x8,
+  ACC_FINAL = 0x10,
+  ACC_SYNCHRONIZED = 0x20,
+  ACC_VOLATILE = 0x40,
+  ACC_BRIDGE = 0x40,
+  ACC_TRANSIENT = 0x80,
+  ACC_VARARGS = 0x80,
+  ACC_NATIVE = 0x100,
+  ACC_INTERFACE = 0x200,
+  ACC_ABSTRACT = 0x400,
+  ACC_STRICT = 0x800,
+  ACC_SYNTHETIC = 0x1000,
+  ACC_ANNOTATION = 0x2000,
+  ACC_ENUM = 0x4000,
+  ACC_CONSTRUCTOR = 0x10000,
+  ACC_DECLARED_SYNCHRONIZED = 0x20000,
 };


 enum METHOD_TYPES {
-  METHOD_UNKNOWN      = 0x00,
-  METHOD_VIRTUAL      = 0x01,
-  METHOD_DIRECT       = 0x02, // Deprecated
+  METHOD_UNKNOWN = 0x00,
+  METHOD_VIRTUAL = 0x01,
+  METHOD_DIRECT = 0x02, // Deprecated

-  METHOD_EXTERN       = 0x03,
-  METHOD_CTOR         = 0x04,
-  METHOD_STATIC       = 0x05,
-  METHOD_STATIC_CTOR  = 0x06,
+  METHOD_EXTERN = 0x03,
+  METHOD_CTOR = 0x04,
+  METHOD_STATIC = 0x05,
+  METHOD_STATIC_CTOR = 0x06,
 };

 static const ACCESS_FLAGS access_flags_list[] = {
-  ACCESS_FLAGS::ACC_UNKNOWN,
-  ACCESS_FLAGS::ACC_PUBLIC,
-  ACCESS_FLAGS::ACC_PRIVATE,
-  ACCESS_FLAGS::ACC_PROTECTED,
-  ACCESS_FLAGS::ACC_STATIC,
-  ACCESS_FLAGS::ACC_FINAL,
-  ACCESS_FLAGS::ACC_SYNCHRONIZED,
-  ACCESS_FLAGS::ACC_VOLATILE,
-  ACCESS_FLAGS::ACC_BRIDGE,
-  ACCESS_FLAGS::ACC_TRANSIENT,
-  ACCESS_FLAGS::ACC_VARARGS,
-  ACCESS_FLAGS::ACC_NATIVE,
-  ACCESS_FLAGS::ACC_INTERFACE,
-  ACCESS_FLAGS::ACC_ABSTRACT,
-  ACCESS_FLAGS::ACC_STRICT,
-  ACCESS_FLAGS::ACC_SYNTHETIC,
-  ACCESS_FLAGS::ACC_ANNOTATION,
-  ACCESS_FLAGS::ACC_ENUM,
-  ACCESS_FLAGS::ACC_CONSTRUCTOR,
-  ACCESS_FLAGS::ACC_DECLARED_SYNCHRONIZED,
+    ACCESS_FLAGS::ACC_UNKNOWN,      ACCESS_FLAGS::ACC_PUBLIC,
+    ACCESS_FLAGS::ACC_PRIVATE,      ACCESS_FLAGS::ACC_PROTECTED,
+    ACCESS_FLAGS::ACC_STATIC,       ACCESS_FLAGS::ACC_FINAL,
+    ACCESS_FLAGS::ACC_SYNCHRONIZED, ACCESS_FLAGS::ACC_VOLATILE,
+    ACCESS_FLAGS::ACC_BRIDGE,       ACCESS_FLAGS::ACC_TRANSIENT,
+    ACCESS_FLAGS::ACC_VARARGS,      ACCESS_FLAGS::ACC_NATIVE,
+    ACCESS_FLAGS::ACC_INTERFACE,    ACCESS_FLAGS::ACC_ABSTRACT,
+    ACCESS_FLAGS::ACC_STRICT,       ACCESS_FLAGS::ACC_SYNTHETIC,
+    ACCESS_FLAGS::ACC_ANNOTATION,   ACCESS_FLAGS::ACC_ENUM,
+    ACCESS_FLAGS::ACC_CONSTRUCTOR,  ACCESS_FLAGS::ACC_DECLARED_SYNCHRONIZED,
 };

 }
diff --git a/deps/LIEF/include/LIEF/DEX/hash.hpp b/deps/LIEF/include/LIEF/DEX/hash.hpp
index 42184a42af9..c4c058f1b8e 100644
--- a/deps/LIEF/include/LIEF/DEX/hash.hpp
+++ b/deps/LIEF/include/LIEF/DEX/hash.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -46,16 +46,16 @@ class LIEF_API Hash : public LIEF::Hash {
   using LIEF::Hash::visit;

   public:
-  void visit(const File& file)          override;
-  void visit(const Header& header)      override;
-  void visit(const Class& cls)          override;
-  void visit(const Field& field)        override;
-  void visit(const Method& method)      override;
+  void visit(const File& file) override;
+  void visit(const Header& header) override;
+  void visit(const Class& cls) override;
+  void visit(const Field& field) override;
+  void visit(const Method& method) override;
   void visit(const CodeInfo& code_info) override;
-  void visit(const Type& type)          override;
-  void visit(const Prototype& type)     override;
-  void visit(const MapItem& item)       override;
-  void visit(const MapList& list)       override;
+  void visit(const Type& type) override;
+  void visit(const Prototype& type) override;
+  void visit(const MapItem& item) override;
+  void visit(const MapList& list) override;

   ~Hash() override;
 };
diff --git a/deps/LIEF/include/LIEF/DEX/instructions.hpp b/deps/LIEF/include/LIEF/DEX/instructions.hpp
index 4c076d4575f..c344b9bfd63 100644
--- a/deps/LIEF/include/LIEF/DEX/instructions.hpp
+++ b/deps/LIEF/include/LIEF/DEX/instructions.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -18,6 +18,7 @@
 #include "LIEF/visibility.h"
 #include "LIEF/types.hpp"
 #include <cstddef>
+#include <cstdint>

 namespace LIEF {
 namespace DEX {
@@ -25,258 +26,258 @@ namespace DEX {
 enum SWITCH_ARRAY_IDENT : uint16_t {
   IDENT_PACKED_SWITCH = 0x0100,
   IDENT_SPARSE_SWITCH = 0x0200,
-  IDENT_FILL_ARRAY    = 0x0300,
+  IDENT_FILL_ARRAY = 0x0300,
 };

 /// The Dalvik Opcodes
 enum OPCODES : uint8_t {
-  OP_NOP                    = 0x00,
-  OP_MOVE                   = 0x01,
-  OP_MOVE_FROM_16           = 0x02,
-  OP_MOVE_16                = 0x03,
-  OP_MOVE_WIDE              = 0x04,
-  OP_MOVE_WIDE_FROM_16      = 0x05,
-  OP_MOVE_WIDE_16           = 0x06,
-  OP_MOVE_OBJECT            = 0x07,
-  OP_MOVE_OBJECT_FROM_16    = 0x08,
-  OP_MOVE_OBJECT_16         = 0x09,
-  OP_MOVE_RESULT            = 0x0a,
-  OP_MOVE_RESULT_WIDE       = 0x0b,
-  OP_MOVE_RESULT_OBJECT     = 0x0c,
-  OP_MOVE_EXCEPTION         = 0x0d,
-  OP_RETURN_VOID            = 0x0e,
-  OP_RETURN                 = 0x0f,
-  OP_RETURN_WIDE            = 0x10,
-  OP_RETURN_OBJECT          = 0x11,
-  OP_CONST_4                = 0x12,
-  OP_CONST_16               = 0x13,
-  OP_CONST                  = 0x14,
-  OP_CONST_HIGH_16          = 0x15,
-  OP_CONST_WIDE_16          = 0x16,
-  OP_CONST_WIDE_32          = 0x17,
-  OP_CONST_WIDE             = 0x18,
-  OP_CONST_WIDE_HIGH_16     = 0x19,
-  OP_CONST_STRING           = 0x1a,
-  OP_CONST_STRING_JUMBO     = 0x1b,
-  OP_CONST_CLASS            = 0x1c,
-  OP_MONITOR_ENTER          = 0x1d,
-  OP_MONITOR_EXIT           = 0x1e,
-  OP_CHECK_CAST             = 0x1f,
-  OP_INSTANCE_OF            = 0x20,
-  OP_ARRAY_LENGTH           = 0x21,
-  OP_NEW_INSTANCE           = 0x22,
-  OP_NEW_ARRAY              = 0x23,
-  OP_FILLED_NEW_ARRAY       = 0x24,
+  OP_NOP = 0x00,
+  OP_MOVE = 0x01,
+  OP_MOVE_FROM_16 = 0x02,
+  OP_MOVE_16 = 0x03,
+  OP_MOVE_WIDE = 0x04,
+  OP_MOVE_WIDE_FROM_16 = 0x05,
+  OP_MOVE_WIDE_16 = 0x06,
+  OP_MOVE_OBJECT = 0x07,
+  OP_MOVE_OBJECT_FROM_16 = 0x08,
+  OP_MOVE_OBJECT_16 = 0x09,
+  OP_MOVE_RESULT = 0x0a,
+  OP_MOVE_RESULT_WIDE = 0x0b,
+  OP_MOVE_RESULT_OBJECT = 0x0c,
+  OP_MOVE_EXCEPTION = 0x0d,
+  OP_RETURN_VOID = 0x0e,
+  OP_RETURN = 0x0f,
+  OP_RETURN_WIDE = 0x10,
+  OP_RETURN_OBJECT = 0x11,
+  OP_CONST_4 = 0x12,
+  OP_CONST_16 = 0x13,
+  OP_CONST = 0x14,
+  OP_CONST_HIGH_16 = 0x15,
+  OP_CONST_WIDE_16 = 0x16,
+  OP_CONST_WIDE_32 = 0x17,
+  OP_CONST_WIDE = 0x18,
+  OP_CONST_WIDE_HIGH_16 = 0x19,
+  OP_CONST_STRING = 0x1a,
+  OP_CONST_STRING_JUMBO = 0x1b,
+  OP_CONST_CLASS = 0x1c,
+  OP_MONITOR_ENTER = 0x1d,
+  OP_MONITOR_EXIT = 0x1e,
+  OP_CHECK_CAST = 0x1f,
+  OP_INSTANCE_OF = 0x20,
+  OP_ARRAY_LENGTH = 0x21,
+  OP_NEW_INSTANCE = 0x22,
+  OP_NEW_ARRAY = 0x23,
+  OP_FILLED_NEW_ARRAY = 0x24,
   OP_FILLED_NEW_ARRAY_RANGE = 0x25,
-  OP_FILL_ARRAY_DATA        = 0x26,
-  OP_THROW                  = 0x27,
-  OP_GOTO                   = 0x28,
-  OP_GOTO_16                = 0x29,
-  OP_GOTO_32                = 0x2a,
-  OP_PACKED_SWITCH          = 0x2b,
-  OP_SPARSE_SWITCH          = 0x2c,
-  OP_CMPL_FLOAT             = 0x2d,
-  OP_CMPG_FLOAT             = 0x2e,
-  OP_CMPL_DOUBLE            = 0x2f,
-  OP_CMPG_DOUBLE            = 0x30,
-  OP_CMP_LONG               = 0x31,
-  OP_IF_EQ                  = 0x32,
-  OP_IF_NE                  = 0x33,
-  OP_IF_LT                  = 0x34,
-  OP_IF_GE                  = 0x35,
-  OP_IF_GT                  = 0x36,
-  OP_IF_LE                  = 0x37,
-  OP_IF_EQZ                 = 0x38,
-  OP_IF_NEZ                 = 0x39,
-  OP_IF_LTZ                 = 0x3a,
-  OP_IF_GEZ                 = 0x3b,
-  OP_IF_GTZ                 = 0x3c,
-  OP_IF_LEZ                 = 0x3d,
-  OP_AGET                   = 0x44,
-  OP_AGET_WIDE              = 0x45,
-  OP_AGET_OBJECT            = 0x46,
-  OP_AGET_BOOLEAN           = 0x47,
-  OP_AGET_BYTE              = 0x48,
-  OP_AGET_CHAR              = 0x49,
-  OP_AGET_SHORT             = 0x4a,
-  OP_APUT                   = 0x4b,
-  OP_APUT_WIDE              = 0x4c,
-  OP_APUT_OBJECT            = 0x4d,
-  OP_APUT_BOOLEAN           = 0x4e,
-  OP_APUT_BYTE              = 0x4f,
-  OP_APUT_CHAR              = 0x50,
-  OP_APUT_SHORT             = 0x51,
-  OP_IGET                   = 0x52,
-  OP_IGET_WIDE              = 0x53,
-  OP_IGET_OBJECT            = 0x54,
-  OP_IGET_BOOLEAN           = 0x55,
-  OP_IGET_BYTE              = 0x56,
-  OP_IGET_CHAR              = 0x57,
-  OP_IGET_SHORT             = 0x58,
-  OP_IPUT                   = 0x59,
-  OP_IPUT_WIDE              = 0x5a,
-  OP_IPUT_OBJECT            = 0x5b,
-  OP_IPUT_BOOLEAN           = 0x5c,
-  OP_IPUT_BYTE              = 0x5d,
-  OP_IPUT_CHAR              = 0x5e,
-  OP_IPUT_SHORT             = 0x5f,
-  OP_SGET                   = 0x60,
-  OP_SGET_WIDE              = 0x61,
-  OP_SGET_OBJECT            = 0x62,
-  OP_SGET_BOOLEAN           = 0x63,
-  OP_SGET_BYTE              = 0x64,
-  OP_SGET_CHAR              = 0x65,
-  OP_SGET_SHORT             = 0x66,
-  OP_SPUT                   = 0x67,
-  OP_SPUT_WIDE              = 0x68,
-  OP_SPUT_OBJECT            = 0x69,
-  OP_SPUT_BOOLEAN           = 0x6a,
-  OP_SPUT_BYTE              = 0x6b,
-  OP_SPUT_CHAR              = 0x6c,
-  OP_SPUT_SHORT             = 0x6d,
-  OP_INVOKE_VIRTUAL         = 0x6e,
-  OP_INVOKE_SUPER           = 0x6f,
-  OP_INVOKE_DIRECT          = 0x70,
-  OP_INVOKE_STATIC          = 0x71,
-  OP_INVOKE_INTERFACE       = 0x72,
+  OP_FILL_ARRAY_DATA = 0x26,
+  OP_THROW = 0x27,
+  OP_GOTO = 0x28,
+  OP_GOTO_16 = 0x29,
+  OP_GOTO_32 = 0x2a,
+  OP_PACKED_SWITCH = 0x2b,
+  OP_SPARSE_SWITCH = 0x2c,
+  OP_CMPL_FLOAT = 0x2d,
+  OP_CMPG_FLOAT = 0x2e,
+  OP_CMPL_DOUBLE = 0x2f,
+  OP_CMPG_DOUBLE = 0x30,
+  OP_CMP_LONG = 0x31,
+  OP_IF_EQ = 0x32,
+  OP_IF_NE = 0x33,
+  OP_IF_LT = 0x34,
+  OP_IF_GE = 0x35,
+  OP_IF_GT = 0x36,
+  OP_IF_LE = 0x37,
+  OP_IF_EQZ = 0x38,
+  OP_IF_NEZ = 0x39,
+  OP_IF_LTZ = 0x3a,
+  OP_IF_GEZ = 0x3b,
+  OP_IF_GTZ = 0x3c,
+  OP_IF_LEZ = 0x3d,
+  OP_AGET = 0x44,
+  OP_AGET_WIDE = 0x45,
+  OP_AGET_OBJECT = 0x46,
+  OP_AGET_BOOLEAN = 0x47,
+  OP_AGET_BYTE = 0x48,
+  OP_AGET_CHAR = 0x49,
+  OP_AGET_SHORT = 0x4a,
+  OP_APUT = 0x4b,
+  OP_APUT_WIDE = 0x4c,
+  OP_APUT_OBJECT = 0x4d,
+  OP_APUT_BOOLEAN = 0x4e,
+  OP_APUT_BYTE = 0x4f,
+  OP_APUT_CHAR = 0x50,
+  OP_APUT_SHORT = 0x51,
+  OP_IGET = 0x52,
+  OP_IGET_WIDE = 0x53,
+  OP_IGET_OBJECT = 0x54,
+  OP_IGET_BOOLEAN = 0x55,
+  OP_IGET_BYTE = 0x56,
+  OP_IGET_CHAR = 0x57,
+  OP_IGET_SHORT = 0x58,
+  OP_IPUT = 0x59,
+  OP_IPUT_WIDE = 0x5a,
+  OP_IPUT_OBJECT = 0x5b,
+  OP_IPUT_BOOLEAN = 0x5c,
+  OP_IPUT_BYTE = 0x5d,
+  OP_IPUT_CHAR = 0x5e,
+  OP_IPUT_SHORT = 0x5f,
+  OP_SGET = 0x60,
+  OP_SGET_WIDE = 0x61,
+  OP_SGET_OBJECT = 0x62,
+  OP_SGET_BOOLEAN = 0x63,
+  OP_SGET_BYTE = 0x64,
+  OP_SGET_CHAR = 0x65,
+  OP_SGET_SHORT = 0x66,
+  OP_SPUT = 0x67,
+  OP_SPUT_WIDE = 0x68,
+  OP_SPUT_OBJECT = 0x69,
+  OP_SPUT_BOOLEAN = 0x6a,
+  OP_SPUT_BYTE = 0x6b,
+  OP_SPUT_CHAR = 0x6c,
+  OP_SPUT_SHORT = 0x6d,
+  OP_INVOKE_VIRTUAL = 0x6e,
+  OP_INVOKE_SUPER = 0x6f,
+  OP_INVOKE_DIRECT = 0x70,
+  OP_INVOKE_STATIC = 0x71,
+  OP_INVOKE_INTERFACE = 0x72,
   OP_RETURN_VOID_NO_BARRIER = 0x73,
-  OP_INVOKE_VIRTUAL_RANGE   = 0x74,
-  OP_INVOKE_SUPER_RANGE     = 0x75,
-  OP_INVOKE_DIRECT_RANGE    = 0x76,
-  OP_INVOKE_STATIC_RANGE    = 0x77,
+  OP_INVOKE_VIRTUAL_RANGE = 0x74,
+  OP_INVOKE_SUPER_RANGE = 0x75,
+  OP_INVOKE_DIRECT_RANGE = 0x76,
+  OP_INVOKE_STATIC_RANGE = 0x77,
   OP_INVOKE_INTERFACE_RANGE = 0x78,
-  OP_NEG_INT                = 0x7b,
-  OP_NOT_INT                = 0x7c,
-  OP_NEG_LONG               = 0x7d,
-  OP_NOT_LONG               = 0x7e,
-  OP_NEG_FLOAT              = 0x7f,
-  OP_NEG_DOUBLE             = 0x80,
-  OP_INT_TO_LONG            = 0x81,
-  OP_INT_TO_FLOAT           = 0x82,
-  OP_INT_TO_DOUBLE          = 0x83,
-  OP_LONG_TO_INT            = 0x84,
-  OP_LONG_TO_FLOAT          = 0x85,
-  OP_LONG_TO_DOUBLE         = 0x86,
-  OP_FLOAT_TO_INT           = 0x87,
-  OP_FLOAT_TO_LONG          = 0x88,
-  OP_FLOAT_TO_DOUBLE        = 0x89,
-  OP_DOUBLE_TO_INT          = 0x8a,
-  OP_DOUBLE_TO_LONG         = 0x8b,
-  OP_DOUBLE_TO_FLOAT        = 0x8c,
-  OP_INT_TO_BYTE            = 0x8d,
-  OP_INT_TO_CHAR            = 0x8e,
-  OP_INT_TO_SHORT           = 0x8f,
-  OP_ADD_INT                = 0x90,
-  OP_SUB_INT                = 0x91,
-  OP_MUL_INT                = 0x92,
-  OP_DIV_INT                = 0x93,
-  OP_REM_INT                = 0x94,
-  OP_AND_INT                = 0x95,
-  OP_OR_INT                 = 0x96,
-  OP_XOR_INT                = 0x97,
-  OP_SHL_INT                = 0x98,
-  OP_SHR_INT                = 0x99,
-  OP_USHR_INT               = 0x9a,
-  OP_ADD_LONG               = 0x9b,
-  OP_SUB_LONG               = 0x9c,
-  OP_MUL_LONG               = 0x9d,
-  OP_DIV_LONG               = 0x9e,
-  OP_REM_LONG               = 0x9f,
-  OP_AND_LONG               = 0xa0,
-  OP_OR_LONG                = 0xa1,
-  OP_XOR_LONG               = 0xa2,
-  OP_SHL_LONG               = 0xa3,
-  OP_SHR_LONG               = 0xa4,
-  OP_USHR_LONG              = 0xa5,
-  OP_ADD_FLOAT              = 0xa6,
-  OP_SUB_FLOAT              = 0xa7,
-  OP_MUL_FLOAT              = 0xa8,
-  OP_DIV_FLOAT              = 0xa9,
-  OP_REM_FLOAT              = 0xaa,
-  OP_ADD_DOUBLE             = 0xab,
-  OP_SUB_DOUBLE             = 0xac,
-  OP_MUL_DOUBLE             = 0xad,
-  OP_DIV_DOUBLE             = 0xae,
-  OP_REM_DOUBLE             = 0xaf,
-  OP_ADD_INT_2_ADDR         = 0xb0,
-  OP_SUB_INT_2_ADDR         = 0xb1,
-  OP_MUL_INT_2_ADDR         = 0xb2,
-  OP_DIV_INT_2_ADDR         = 0xb3,
-  OP_REM_INT_2_ADDR         = 0xb4,
-  OP_AND_INT_2_ADDR         = 0xb5,
-  OP_OR_INT_2_ADDR          = 0xb6,
-  OP_XOR_INT_2_ADDR         = 0xb7,
-  OP_SHL_INT_2_ADDR         = 0xb8,
-  OP_SHR_INT_2_ADDR         = 0xb9,
-  OP_USHR_INT_2_ADDR        = 0xba,
-  OP_ADD_LONG_2_ADDR        = 0xbb,
-  OP_SUB_LONG_2_ADDR        = 0xbc,
-  OP_MUL_LONG_2_ADDR        = 0xbd,
-  OP_DIV_LONG_2_ADDR        = 0xbe,
-  OP_REM_LONG_2_ADDR        = 0xbf,
-  OP_AND_LONG_2_ADDR        = 0xc0,
-  OP_OR_LONG_2_ADDR         = 0xc1,
-  OP_XOR_LONG_2_ADDR        = 0xc2,
-  OP_SHL_LONG_2_ADDR        = 0xc3,
-  OP_SHR_LONG_2_ADDR        = 0xc4,
-  OP_USHR_LONG_2_ADDR       = 0xc5,
-  OP_ADD_FLOAT_2_ADDR       = 0xc6,
-  OP_SUB_FLOAT_2_ADDR       = 0xc7,
-  OP_MUL_FLOAT_2_ADDR       = 0xc8,
-  OP_DIV_FLOAT_2_ADDR       = 0xc9,
-  OP_REM_FLOAT_2_ADDR       = 0xca,
-  OP_ADD_DOUBLE_2_ADDR      = 0xcb,
-  OP_SUB_DOUBLE_2_ADDR      = 0xcc,
-  OP_MUL_DOUBLE_2_ADDR      = 0xcd,
-  OP_DIV_DOUBLE_2_ADDR      = 0xce,
-  OP_REM_DOUBLE_2_ADDR      = 0xcf,
-  OP_ADD_INT_LIT_16         = 0xd0,
-  OP_RSUB_INT               = 0xd1,
-  OP_MUL_INT_LIT_16         = 0xd2,
-  OP_DIV_INT_LIT_16         = 0xd3,
-  OP_REM_INT_LIT_16         = 0xd4,
-  OP_AND_INT_LIT_16         = 0xd5,
-  OP_OR_INT_LIT_16          = 0xd6,
-  OP_XOR_INT_LIT_16         = 0xd7,
-  OP_ADD_INT_LIT_8          = 0xd8,
-  OP_RSUB_INT_LIT_8         = 0xd9,
-  OP_MUL_INT_LIT_8          = 0xda,
-  OP_DIV_INT_LIT_8          = 0xdb,
-  OP_REM_INT_LIT_8          = 0xdc,
-  OP_AND_INT_LIT_8          = 0xdd,
-  OP_OR_INT_LIT_8           = 0xde,
-  OP_XOR_INT_LIT_8          = 0xdf,
-  OP_SHL_INT_LIT_8          = 0xe0,
-  OP_SHR_INT_LIT_8          = 0xe1,
-  OP_USHR_INT_LIT_8         = 0xe2,
+  OP_NEG_INT = 0x7b,
+  OP_NOT_INT = 0x7c,
+  OP_NEG_LONG = 0x7d,
+  OP_NOT_LONG = 0x7e,
+  OP_NEG_FLOAT = 0x7f,
+  OP_NEG_DOUBLE = 0x80,
+  OP_INT_TO_LONG = 0x81,
+  OP_INT_TO_FLOAT = 0x82,
+  OP_INT_TO_DOUBLE = 0x83,
+  OP_LONG_TO_INT = 0x84,
+  OP_LONG_TO_FLOAT = 0x85,
+  OP_LONG_TO_DOUBLE = 0x86,
+  OP_FLOAT_TO_INT = 0x87,
+  OP_FLOAT_TO_LONG = 0x88,
+  OP_FLOAT_TO_DOUBLE = 0x89,
+  OP_DOUBLE_TO_INT = 0x8a,
+  OP_DOUBLE_TO_LONG = 0x8b,
+  OP_DOUBLE_TO_FLOAT = 0x8c,
+  OP_INT_TO_BYTE = 0x8d,
+  OP_INT_TO_CHAR = 0x8e,
+  OP_INT_TO_SHORT = 0x8f,
+  OP_ADD_INT = 0x90,
+  OP_SUB_INT = 0x91,
+  OP_MUL_INT = 0x92,
+  OP_DIV_INT = 0x93,
+  OP_REM_INT = 0x94,
+  OP_AND_INT = 0x95,
+  OP_OR_INT = 0x96,
+  OP_XOR_INT = 0x97,
+  OP_SHL_INT = 0x98,
+  OP_SHR_INT = 0x99,
+  OP_USHR_INT = 0x9a,
+  OP_ADD_LONG = 0x9b,
+  OP_SUB_LONG = 0x9c,
+  OP_MUL_LONG = 0x9d,
+  OP_DIV_LONG = 0x9e,
+  OP_REM_LONG = 0x9f,
+  OP_AND_LONG = 0xa0,
+  OP_OR_LONG = 0xa1,
+  OP_XOR_LONG = 0xa2,
+  OP_SHL_LONG = 0xa3,
+  OP_SHR_LONG = 0xa4,
+  OP_USHR_LONG = 0xa5,
+  OP_ADD_FLOAT = 0xa6,
+  OP_SUB_FLOAT = 0xa7,
+  OP_MUL_FLOAT = 0xa8,
+  OP_DIV_FLOAT = 0xa9,
+  OP_REM_FLOAT = 0xaa,
+  OP_ADD_DOUBLE = 0xab,
+  OP_SUB_DOUBLE = 0xac,
+  OP_MUL_DOUBLE = 0xad,
+  OP_DIV_DOUBLE = 0xae,
+  OP_REM_DOUBLE = 0xaf,
+  OP_ADD_INT_2_ADDR = 0xb0,
+  OP_SUB_INT_2_ADDR = 0xb1,
+  OP_MUL_INT_2_ADDR = 0xb2,
+  OP_DIV_INT_2_ADDR = 0xb3,
+  OP_REM_INT_2_ADDR = 0xb4,
+  OP_AND_INT_2_ADDR = 0xb5,
+  OP_OR_INT_2_ADDR = 0xb6,
+  OP_XOR_INT_2_ADDR = 0xb7,
+  OP_SHL_INT_2_ADDR = 0xb8,
+  OP_SHR_INT_2_ADDR = 0xb9,
+  OP_USHR_INT_2_ADDR = 0xba,
+  OP_ADD_LONG_2_ADDR = 0xbb,
+  OP_SUB_LONG_2_ADDR = 0xbc,
+  OP_MUL_LONG_2_ADDR = 0xbd,
+  OP_DIV_LONG_2_ADDR = 0xbe,
+  OP_REM_LONG_2_ADDR = 0xbf,
+  OP_AND_LONG_2_ADDR = 0xc0,
+  OP_OR_LONG_2_ADDR = 0xc1,
+  OP_XOR_LONG_2_ADDR = 0xc2,
+  OP_SHL_LONG_2_ADDR = 0xc3,
+  OP_SHR_LONG_2_ADDR = 0xc4,
+  OP_USHR_LONG_2_ADDR = 0xc5,
+  OP_ADD_FLOAT_2_ADDR = 0xc6,
+  OP_SUB_FLOAT_2_ADDR = 0xc7,
+  OP_MUL_FLOAT_2_ADDR = 0xc8,
+  OP_DIV_FLOAT_2_ADDR = 0xc9,
+  OP_REM_FLOAT_2_ADDR = 0xca,
+  OP_ADD_DOUBLE_2_ADDR = 0xcb,
+  OP_SUB_DOUBLE_2_ADDR = 0xcc,
+  OP_MUL_DOUBLE_2_ADDR = 0xcd,
+  OP_DIV_DOUBLE_2_ADDR = 0xce,
+  OP_REM_DOUBLE_2_ADDR = 0xcf,
+  OP_ADD_INT_LIT_16 = 0xd0,
+  OP_RSUB_INT = 0xd1,
+  OP_MUL_INT_LIT_16 = 0xd2,
+  OP_DIV_INT_LIT_16 = 0xd3,
+  OP_REM_INT_LIT_16 = 0xd4,
+  OP_AND_INT_LIT_16 = 0xd5,
+  OP_OR_INT_LIT_16 = 0xd6,
+  OP_XOR_INT_LIT_16 = 0xd7,
+  OP_ADD_INT_LIT_8 = 0xd8,
+  OP_RSUB_INT_LIT_8 = 0xd9,
+  OP_MUL_INT_LIT_8 = 0xda,
+  OP_DIV_INT_LIT_8 = 0xdb,
+  OP_REM_INT_LIT_8 = 0xdc,
+  OP_AND_INT_LIT_8 = 0xdd,
+  OP_OR_INT_LIT_8 = 0xde,
+  OP_XOR_INT_LIT_8 = 0xdf,
+  OP_SHL_INT_LIT_8 = 0xe0,
+  OP_SHR_INT_LIT_8 = 0xe1,
+  OP_USHR_INT_LIT_8 = 0xe2,

   // ODEX
-  OP_IGET_QUICK                  = 0xe3,
-  OP_IGET_WIDE_QUICK             = 0xe4,
-  OP_IGET_OBJECT_QUICK           = 0xe5,
-  OP_IPUT_QUICK                  = 0xe6,
-  OP_IPUT_WIDE_QUICK             = 0xe7,
-  OP_IPUT_OBJECT_QUICK           = 0xe8,
-  OP_INVOKE_VIRTUAL_QUICK        = 0xe9,
-  OP_INVOKE_VIRTUAL_RANGE_QUICK  = 0xea,
-  OP_IPUT_BOOLEAN_QUICK          = 0xeb,
-  OP_IPUT_BYTE_QUICK             = 0xec,
-  OP_IPUT_CHAR_QUICK             = 0xed,
-  OP_IPUT_SHORT_QUICK            = 0xee,
-  OP_IGET_BOOLEAN_QUICK          = 0xef,
-  OP_IGET_BYTE_QUICK             = 0xf0,
-  OP_IGET_CHAR_QUICK             = 0xf1,
-  OP_IGET_SHORT_QUICK            = 0xf2,
+  OP_IGET_QUICK = 0xe3,
+  OP_IGET_WIDE_QUICK = 0xe4,
+  OP_IGET_OBJECT_QUICK = 0xe5,
+  OP_IPUT_QUICK = 0xe6,
+  OP_IPUT_WIDE_QUICK = 0xe7,
+  OP_IPUT_OBJECT_QUICK = 0xe8,
+  OP_INVOKE_VIRTUAL_QUICK = 0xe9,
+  OP_INVOKE_VIRTUAL_RANGE_QUICK = 0xea,
+  OP_IPUT_BOOLEAN_QUICK = 0xeb,
+  OP_IPUT_BYTE_QUICK = 0xec,
+  OP_IPUT_CHAR_QUICK = 0xed,
+  OP_IPUT_SHORT_QUICK = 0xee,
+  OP_IGET_BOOLEAN_QUICK = 0xef,
+  OP_IGET_BYTE_QUICK = 0xf0,
+  OP_IGET_CHAR_QUICK = 0xf1,
+  OP_IGET_SHORT_QUICK = 0xf2,

   // From DEX 38
-  OP_INVOKE_POLYMORPHIC       = 0xfa,
+  OP_INVOKE_POLYMORPHIC = 0xfa,
   OP_INVOKE_POLYMORPHIC_RANGE = 0xfb,
-  OP_INVOKE_CUSTOM            = 0xfc,
-  OP_INVOKE_CUSTOM_RANGE      = 0xfd,
+  OP_INVOKE_CUSTOM = 0xfc,
+  OP_INVOKE_CUSTOM_RANGE = 0xfd,

   // From DEX 39
-  OP_CONST_METHOD_HANDLE      = 0xfe,
-  OP_CONST_METHOD_TYPE        = 0xff,
+  OP_CONST_METHOD_HANDLE = 0xfe,
+  OP_CONST_METHOD_TYPE = 0xff,
 };

 enum INST_FORMATS : uint8_t {
@@ -335,7 +336,7 @@ struct fill_array_data {
   uint16_t ident;
   uint16_t element_width;
   uint32_t size;
-  //uint8_t data[size];
+  // uint8_t data[size];
 };


@@ -349,8 +350,11 @@ LIEF_API bool is_switch_array(const uint8_t* ptr, const uint8_t* end);

 LIEF_API size_t switch_array_size(const uint8_t* ptr, const uint8_t* end);

+inline bool valid_inst_size(const uint8_t* ptr, const uint8_t* end, size_t size) {
+  return size != 0 && size != SIZE_MAX && (size_t)(end - ptr) >= size;
+}
+
 } // Namespace LIEF
 } // Namespace DEX

 #endif
-
diff --git a/deps/LIEF/include/LIEF/DEX/json.hpp b/deps/LIEF/include/LIEF/DEX/json.hpp
index 74b79fe48e4..30ebec061f9 100644
--- a/deps/LIEF/include/LIEF/DEX/json.hpp
+++ b/deps/LIEF/include/LIEF/DEX/json.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/deps/LIEF/include/LIEF/DEX/types.hpp b/deps/LIEF/include/LIEF/DEX/types.hpp
index e38b44ea5ae..b66a071e018 100644
--- a/deps/LIEF/include/LIEF/DEX/types.hpp
+++ b/deps/LIEF/include/LIEF/DEX/types.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/deps/LIEF/include/LIEF/DEX/utils.hpp b/deps/LIEF/include/LIEF/DEX/utils.hpp
index ceecc6b0a0a..14166cd7f6d 100644
--- a/deps/LIEF/include/LIEF/DEX/utils.hpp
+++ b/deps/LIEF/include/LIEF/DEX/utils.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/deps/LIEF/include/LIEF/DWARF.hpp b/deps/LIEF/include/LIEF/DWARF.hpp
index 39c516b5e6c..086daaf2a87 100644
--- a/deps/LIEF/include/LIEF/DWARF.hpp
+++ b/deps/LIEF/include/LIEF/DWARF.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -26,6 +26,7 @@
 #include "LIEF/DWARF/types.hpp"
 #include "LIEF/DWARF/Parameter.hpp"
 #include "LIEF/DWARF/Editor.hpp"
+#include "LIEF/DWARF/LexicalBlock.hpp"

 #include "LIEF/DWARF/editor/CompilationUnit.hpp"
 #include "LIEF/DWARF/editor/Function.hpp"
diff --git a/deps/LIEF/include/LIEF/DWARF/CompilationUnit.hpp b/deps/LIEF/include/LIEF/DWARF/CompilationUnit.hpp
index c9491b530d4..98233ab516b 100644
--- a/deps/LIEF/include/LIEF/DWARF/CompilationUnit.hpp
+++ b/deps/LIEF/include/LIEF/DWARF/CompilationUnit.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -18,9 +18,11 @@
 #include <string>
 #include <vector>

+#include "LIEF/compiler_attributes.hpp"
 #include "LIEF/visibility.h"
 #include "LIEF/range.hpp"
 #include "LIEF/iterators.hpp"
+#include "LIEF/DebugDeclOpt.hpp"
 #include "LIEF/DWARF/Function.hpp"
 #include "LIEF/DWARF/Type.hpp"

@@ -35,61 +37,52 @@ class CompilationUnitIt;
 /// This class represents a DWARF compilation unit
 class LIEF_API CompilationUnit {
   public:
-  class LIEF_API Iterator {
+  class Iterator final
+    : public iterator_facade_base<Iterator, std::bidirectional_iterator_tag,
+                                  CompilationUnit, std::ptrdiff_t,
+                                  const CompilationUnit*, const CompilationUnit&> {
     public:
-    using iterator_category = std::bidirectional_iterator_tag;
-    using value_type = std::unique_ptr<CompilationUnit>;
-    using difference_type = std::ptrdiff_t;
-    using pointer = CompilationUnit*;
-    using reference = std::unique_ptr<CompilationUnit>&;
     using implementation = details::CompilationUnitIt;
+    using iterator_facade_base::operator++;
+    using iterator_facade_base::operator--;

-    class LIEF_API PointerProxy {
-      // Inspired from LLVM's iterator_facade_base
-      friend class Iterator;
-      public:
-      pointer operator->() const { return R.get(); }
+    LIEF_API Iterator();

-      private:
-      value_type R;
+    LIEF_API Iterator(std::unique_ptr<details::CompilationUnitIt> impl);

-      template <typename RefT>
-      PointerProxy(RefT &&R) : R(std::forward<RefT>(R)) {} // NOLINT(bugprone-forwarding-reference-overload)
-    };
+    LIEF_API Iterator(const Iterator&);
+    LIEF_API Iterator& operator=(const Iterator&);
+
+    LIEF_API Iterator(Iterator&&) noexcept;
+    LIEF_API Iterator& operator=(Iterator&&) noexcept;

-    Iterator(const Iterator&);
-    Iterator(Iterator&&) noexcept;
-    Iterator(std::unique_ptr<details::CompilationUnitIt> impl);
-    ~Iterator();
+    LIEF_API ~Iterator();

     friend LIEF_API bool operator==(const Iterator& LHS, const Iterator& RHS);
-    friend LIEF_API bool operator!=(const Iterator& LHS, const Iterator& RHS) {
+    friend bool operator!=(const Iterator& LHS, const Iterator& RHS) {
       return !(LHS == RHS);
     }

-    Iterator& operator++();
-    Iterator& operator--();
+    // NOLINTNEXTLINE(bugprone-derived-method-shadowing-base-method)
+    LIEF_API Iterator& operator++();

-    Iterator operator--(int) {
-      Iterator tmp = *static_cast<Iterator*>(this);
-      --*static_cast<Iterator *>(this);
-      return tmp;
-    }
+    // NOLINTNEXTLINE(bugprone-derived-method-shadowing-base-method)
+    LIEF_API Iterator& operator--();

-    Iterator operator++(int) {
-      Iterator tmp = *static_cast<Iterator*>(this);
-      ++*static_cast<Iterator *>(this);
-      return tmp;
-    }
+    LIEF_API const CompilationUnit& operator*() const LIEF_LIFETIMEBOUND;

-    std::unique_ptr<CompilationUnit> operator*() const;
+    // NOLINTNEXTLINE(bugprone-derived-method-shadowing-base-method)
+    LIEF_API const CompilationUnit* operator->() const LIEF_LIFETIMEBOUND;

-    PointerProxy operator->() const {
-      return static_cast<const Iterator*>(this)->operator*();
-    }
+    /// Transfer ownership of the compilation unit at the current position
+    /// to the caller. Returns `nullptr` if the iterator is past-the-end.
+    LIEF_API std::unique_ptr<CompilationUnit> yield();

     private:
+    void load() const;
+
     std::unique_ptr<details::CompilationUnitIt> impl_;
+    mutable std::unique_ptr<CompilationUnit> cached_;
   };

   /// Iterator over the dwarf::Function
@@ -130,11 +123,10 @@ class LIEF_API CompilationUnit {

     Language() = default;
     Language(LANG lang, uint32_t version) :
-      lang(lang), version(version)
-    {}
+      lang(lang),
+      version(version) {}
     Language(LANG lang) :
-      Language(lang, 0)
-    {}
+      Language(lang, 0) {}

     Language(const Language&) = default;
     Language& operator=(const Language&) = default;
@@ -169,7 +161,7 @@ class LIEF_API CompilationUnit {
   /// This value matches the `DW_AT_comp_dir` attribute
   std::string compilation_dir() const;

-  /// Original Language of this compilation unit.
+  /// Original language of this compilation unit.
   ///
   /// This value matches the `DW_AT_language` attribute.
   Language language() const;
@@ -186,7 +178,7 @@ class LIEF_API CompilationUnit {
   /// between the lowest address and the highest that are not owned by the CU),
   /// then it returns the sum of **all** the address ranges owned by this CU.
   ///
-  /// If the compilation unit is **not** fragmented, then is basically returns
+  /// If the compilation unit is **not** fragmented, then it basically returns
   /// `high_address - low_address`.
   uint64_t size() const;

@@ -199,16 +191,18 @@ class LIEF_API CompilationUnit {
   /// Try to find the function whose name is given in parameter.
   ///
   /// The provided name can be demangled
-  std::unique_ptr<Function> find_function(const std::string& name) const;
+  std::unique_ptr<Function>
+      find_function(const std::string& name) const LIEF_LIFETIMEBOUND;

   /// Try to find the function at the given address
-  std::unique_ptr<Function> find_function(uint64_t addr) const;
+  std::unique_ptr<Function> find_function(uint64_t addr) const LIEF_LIFETIMEBOUND;

   /// Try to find the Variable at the given address
-  std::unique_ptr<Variable> find_variable(uint64_t addr) const;
+  std::unique_ptr<Variable> find_variable(uint64_t addr) const LIEF_LIFETIMEBOUND;

   /// Try to find the Variable with the given name
-  std::unique_ptr<Variable> find_variable(const std::string& name) const;
+  std::unique_ptr<Variable>
+      find_variable(const std::string& name) const LIEF_LIFETIMEBOUND;

   /// Return an iterator over the functions implemented in this compilation
   /// unit.
@@ -232,7 +226,7 @@ class LIEF_API CompilationUnit {
   /// The iterator will only return **one function** for `main` since
   /// `get_secret_env` is inlined and thus, its implementation is located in
   /// `main`.
-  functions_it functions() const;
+  functions_it functions() const LIEF_LIFETIMEBOUND;

   /// Return an iterator over the functions **imported** in this compilation
   /// unit **but not** implemented.
@@ -251,14 +245,13 @@ class LIEF_API CompilationUnit {
   /// the iterator. On the other hand, `main()` is implemented in this
   /// compilation unit so it is not returned by imported_function() but
   /// functions().
-  functions_it imported_functions() const;
+  functions_it imported_functions() const LIEF_LIFETIMEBOUND;

   /// Return an iterator over the different types defined in this
   /// compilation unit.
-  types_it types() const;
-
+  types_it types() const LIEF_LIFETIMEBOUND;

-  /// Return an iterator over all the variables defined in the this compilation
+  /// Return an iterator over all the variables defined in this compilation
   /// unit:
   ///
   /// ```cpp
@@ -270,7 +263,11 @@ class LIEF_API CompilationUnit {
   ///   return C;
   /// }
   /// ```
-  vars_it variables() const;
+  vars_it variables() const LIEF_LIFETIMEBOUND;
+
+  /// Generate a C/C++ definition for the functions defined in this
+  /// compilation unit.
+  std::string to_decl(const DeclOpt& opt = DeclOpt()) const;

   private:
   std::unique_ptr<details::CompilationUnit> impl_;
@@ -279,4 +276,3 @@ class LIEF_API CompilationUnit {
 }
 }
 #endif
-
diff --git a/deps/LIEF/include/LIEF/DWARF/DebugInfo.hpp b/deps/LIEF/include/LIEF/DWARF/DebugInfo.hpp
index ac76755b790..2298ba3c753 100644
--- a/deps/LIEF/include/LIEF/DWARF/DebugInfo.hpp
+++ b/deps/LIEF/include/LIEF/DWARF/DebugInfo.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -17,6 +17,7 @@
 #include <memory>
 #include <string>

+#include "LIEF/compiler_attributes.hpp"
 #include "LIEF/iterators.hpp"
 #include "LIEF/Abstract/DebugInfo.hpp"
 #include "LIEF/DWARF/CompilationUnit.hpp"
@@ -53,23 +54,26 @@ class LIEF_API DebugInfo : public LIEF::DebugInfo {
   ///   // Found
   /// }
   /// ```
-  std::unique_ptr<Function> find_function(const std::string& name) const;
+  std::unique_ptr<Function>
+      find_function(const std::string& name) const LIEF_LIFETIMEBOUND;

   /// Try to find the function at the given **virtual** address
-  std::unique_ptr<Function> find_function(uint64_t addr) const;
+  std::unique_ptr<Function> find_function(uint64_t addr) const LIEF_LIFETIMEBOUND;

   /// Try to find the variable with the given name. This name can be mangled or
   /// not.
-  std::unique_ptr<Variable> find_variable(const std::string& name) const;
+  std::unique_ptr<Variable>
+      find_variable(const std::string& name) const LIEF_LIFETIMEBOUND;

   /// Try to find the variable at the given **virtual** address
-  std::unique_ptr<Variable> find_variable(uint64_t addr) const;
+  std::unique_ptr<Variable> find_variable(uint64_t addr) const LIEF_LIFETIMEBOUND;

   /// Try to find the type with the given name
-  std::unique_ptr<Type> find_type(const std::string& name) const;
+  std::unique_ptr<Type>
+      find_type(const std::string& name) const LIEF_LIFETIMEBOUND;

   /// Iterator on the CompilationUnit embedded in this dwarf
-  compilation_units_it compilation_units() const;
+  compilation_units_it compilation_units() const LIEF_LIFETIMEBOUND;

   /// Attempt to resolve the address of the function specified by `name`.
   optional<uint64_t> find_function_address(const std::string& name) const override;
diff --git a/deps/LIEF/include/LIEF/DWARF/Editor.hpp b/deps/LIEF/include/LIEF/DWARF/Editor.hpp
index 3c63c138338..e93881878c1 100644
--- a/deps/LIEF/include/LIEF/DWARF/Editor.hpp
+++ b/deps/LIEF/include/LIEF/DWARF/Editor.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -16,7 +16,9 @@
 #define LIEF_DWARF_EDITOR_H
 #include <memory>
 #include <string>
+#include <cstdint>

+#include "LIEF/compiler_attributes.hpp"
 #include "LIEF/visibility.h"

 namespace LIEF {
@@ -37,11 +39,29 @@ class LIEF_API Editor {
   Editor() = delete;
   Editor(std::unique_ptr<details::Editor> impl);

+  enum class FORMAT : uint32_t {
+    ELF,
+    MACHO,
+    PE,
+  };
+
+  enum class ARCH : uint32_t {
+    UNKNOWN,
+    X64,
+    X86,
+    AARCH64,
+    ARM,
+  };
+
   /// Instantiate an editor for the given binary object
   static std::unique_ptr<Editor> from_binary(LIEF::Binary& bin);

+  /// Instantiate an editor for the given format and arch
+  static std::unique_ptr<Editor> create(FORMAT fmt, ARCH arch);
+
   /// Create a new compilation unit
-  std::unique_ptr<editor::CompilationUnit> create_compilation_unit();
+  std::unique_ptr<editor::CompilationUnit>
+      create_compilation_unit() LIEF_LIFETIMEBOUND;

   /// Write the DWARF file to the specified output
   void write(const std::string& output);
@@ -50,7 +70,6 @@ class LIEF_API Editor {

   private:
   std::unique_ptr<details::Editor> impl_;
-
 };

 }
diff --git a/deps/LIEF/include/LIEF/DWARF/Function.hpp b/deps/LIEF/include/LIEF/DWARF/Function.hpp
index 495cbadac72..af98098f69e 100644
--- a/deps/LIEF/include/LIEF/DWARF/Function.hpp
+++ b/deps/LIEF/include/LIEF/DWARF/Function.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -21,9 +21,12 @@
 #include "LIEF/visibility.h"
 #include "LIEF/errors.hpp"
 #include "LIEF/iterators.hpp"
+#include "LIEF/compiler_attributes.hpp"
+
 #include "LIEF/range.hpp"
 #include "LIEF/DWARF/Variable.hpp"
 #include "LIEF/DWARF/Type.hpp"
+#include "LIEF/DWARF/LexicalBlock.hpp"
 #include "LIEF/asm/Instruction.hpp"

 namespace LIEF {
@@ -41,62 +44,53 @@ class FunctionIt;
 /// `DW_TAG_subprogram` or `DW_TAG_inlined_subroutine`.
 class LIEF_API Function {
   public:
-  class LIEF_API Iterator {
+  class Iterator final
+    : public iterator_facade_base<Iterator, std::bidirectional_iterator_tag,
+                                  Function, std::ptrdiff_t, const Function*,
+                                  const Function&> {
     public:
-    using iterator_category = std::bidirectional_iterator_tag;
-    using value_type = std::unique_ptr<Function>;
-    using difference_type = std::ptrdiff_t;
-    using pointer = Function*;
-    using reference = std::unique_ptr<Function>&;
     using implementation = details::FunctionIt;
+    using iterator_facade_base::operator++;
+    using iterator_facade_base::operator--;
+
+    LIEF_API Iterator();

-    class LIEF_API PointerProxy {
-      // Inspired from LLVM's iterator_facade_base
-      friend class Iterator;
-      public:
-      pointer operator->() const { return R.get(); }
+    LIEF_API Iterator(std::unique_ptr<details::FunctionIt> impl);

-      private:
-      value_type R;
+    LIEF_API Iterator(const Iterator&);
+    LIEF_API Iterator& operator=(const Iterator&);

-      template <typename RefT>
-      PointerProxy(RefT &&R) : R(std::forward<RefT>(R)) {} // NOLINT(bugprone-forwarding-reference-overload)
-    };
+    LIEF_API Iterator(Iterator&&) noexcept;
+    LIEF_API Iterator& operator=(Iterator&&) noexcept;

-    Iterator(const Iterator&);
-    Iterator(Iterator&&) noexcept;
-    Iterator(std::unique_ptr<details::FunctionIt> impl);
-    ~Iterator();
+    LIEF_API ~Iterator();

     friend LIEF_API bool operator==(const Iterator& LHS, const Iterator& RHS);

-    friend LIEF_API bool operator!=(const Iterator& LHS, const Iterator& RHS) {
+    friend bool operator!=(const Iterator& LHS, const Iterator& RHS) {
       return !(LHS == RHS);
     }

-    Iterator& operator++();
-    Iterator& operator--();
+    // NOLINTNEXTLINE(bugprone-derived-method-shadowing-base-method)
+    LIEF_API Iterator& operator++();

-    Iterator operator--(int) {
-      Iterator tmp = *static_cast<Iterator*>(this);
-      --*static_cast<Iterator *>(this);
-      return tmp;
-    }
+    // NOLINTNEXTLINE(bugprone-derived-method-shadowing-base-method)
+    LIEF_API Iterator& operator--();

-    Iterator operator++(int) {
-      Iterator tmp = *static_cast<Iterator*>(this);
-      ++*static_cast<Iterator *>(this);
-      return tmp;
-    }
+    LIEF_API const Function& operator*() const LIEF_LIFETIMEBOUND;

-    std::unique_ptr<Function> operator*() const;
+    // NOLINTNEXTLINE(bugprone-derived-method-shadowing-base-method)
+    LIEF_API const Function* operator->() const LIEF_LIFETIMEBOUND;

-    PointerProxy operator->() const {
-      return static_cast<const Iterator*>(this)->operator*();
-    }
+    /// Transfer ownership of the function at the current position to the
+    /// caller. Returns `nullptr` if the iterator is past-the-end.
+    LIEF_API std::unique_ptr<Function> yield();

     private:
+    void load() const;
+
     std::unique_ptr<details::FunctionIt> impl_;
+    mutable std::unique_ptr<Function> cached_;
   };

   /// Iterator over the variables defined in the scope of this function
@@ -104,6 +98,8 @@ class LIEF_API Function {
   using parameters_t = std::vector<std::unique_ptr<Parameter>>;
   using thrown_types_t = std::vector<std::unique_ptr<Type>>;

+  using lexical_blocks_it = iterator_range<LexicalBlock::Iterator>;
+
   using instructions_it = iterator_range<assembly::Instruction::Iterator>;

   Function(std::unique_ptr<details::Function> impl);
@@ -114,7 +110,7 @@ class LIEF_API Function {
   /// The name of the function which is used for linking (`DW_AT_linkage_name`).
   ///
   /// This name differs from name() as it is usually mangled. The function
-  /// return an empty string if the linkage name is not available.
+  /// returns an empty string if the linkage name is not available.
   std::string linkage_name() const;

   /// Return the address of the function (`DW_AT_entry_pc` or `DW_AT_low_pc`).
@@ -123,7 +119,7 @@ class LIEF_API Function {
   /// Return an iterator of variables (`DW_TAG_variable`) defined within the
   /// scope of this function. This includes regular stack-based variables as
   /// well as static ones.
-  vars_it variables() const;
+  vars_it variables() const LIEF_LIFETIMEBOUND;

   /// Whether this function is created by the compiler and not
   /// present in the original source code
@@ -144,10 +140,10 @@ class LIEF_API Function {

   /// Return the dwarf::Type associated with the **return type** of this
   /// function
-  std::unique_ptr<Type> type() const;
+  std::unique_ptr<Type> type() const LIEF_LIFETIMEBOUND;

   /// Return the function's parameters (including any template parameter)
-  parameters_t parameters() const;
+  parameters_t parameters() const LIEF_LIFETIMEBOUND;

   /// List of exceptions (types) that can be thrown by the function.
   ///
@@ -161,16 +157,26 @@ class LIEF_API Function {
   ///
   /// thrown_types() returns one element associated with the Type:
   /// `StatisticsError`.
-  thrown_types_t thrown_types() const;
+  thrown_types_t thrown_types() const LIEF_LIFETIMEBOUND;

   /// Return the scope in which this function is defined
-  std::unique_ptr<Scope> scope() const;
+  std::unique_ptr<Scope> scope() const LIEF_LIFETIMEBOUND;

   /// Disassemble the current function by returning an iterator over
   /// the assembly::Instruction
-  instructions_it instructions() const;
+  instructions_it instructions() const LIEF_LIFETIMEBOUND;
+
+  /// Iterator over the LexicalBlock owned by this function
+  lexical_blocks_it lexical_blocks() const LIEF_LIFETIMEBOUND;
+
+  /// Description (`DW_AT_description`) of this function or an empty string
+  std::string description() const;
+
+  /// Generates a C/C++ definition for this function
+  std::string to_decl(const DeclOpt& opt = DeclOpt()) const;

   ~Function();
+
   private:
   std::unique_ptr<details::Function> impl_;
 };
diff --git a/deps/LIEF/include/LIEF/DWARF/LexicalBlock.hpp b/deps/LIEF/include/LIEF/DWARF/LexicalBlock.hpp
new file mode 100644
index 00000000000..8f3ebbdd9b8
--- /dev/null
+++ b/deps/LIEF/include/LIEF/DWARF/LexicalBlock.hpp
@@ -0,0 +1,135 @@
+/* Copyright 2022 - 2026 R. Thomas
+ *
+ * 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.
+ */
+#ifndef LIEF_DWARF_LEXICAL_BLOCK_H
+#define LIEF_DWARF_LEXICAL_BLOCK_H
+
+#include "LIEF/compiler_attributes.hpp"
+#include "LIEF/visibility.h"
+#include "LIEF/iterators.hpp"
+#include "LIEF/optional.hpp"
+#include "LIEF/range.hpp"
+
+#include <memory>
+#include <string>
+#include <cstdint>
+
+namespace LIEF {
+namespace dwarf {
+
+namespace details {
+class LexicalBlock;
+class LexicalBlockIt;
+}
+
+/// This class represents a DWARF lexical block (`DW_TAG_lexical_block`)
+class LIEF_API LexicalBlock {
+  public:
+  class Iterator final
+    : public iterator_facade_base<Iterator, std::bidirectional_iterator_tag,
+                                  LexicalBlock, std::ptrdiff_t,
+                                  const LexicalBlock*, const LexicalBlock&> {
+    public:
+    using implementation = details::LexicalBlockIt;
+    using iterator_facade_base::operator++;
+    using iterator_facade_base::operator--;
+
+    LIEF_API Iterator();
+
+    LIEF_API Iterator(std::unique_ptr<details::LexicalBlockIt> impl);
+
+    LIEF_API Iterator(const Iterator&);
+    LIEF_API Iterator& operator=(const Iterator&);
+
+    LIEF_API Iterator(Iterator&&) noexcept;
+    LIEF_API Iterator& operator=(Iterator&&) noexcept;
+
+    LIEF_API ~Iterator();
+
+    friend LIEF_API bool operator==(const Iterator& LHS, const Iterator& RHS);
+    friend bool operator!=(const Iterator& LHS, const Iterator& RHS) {
+      return !(LHS == RHS);
+    }
+
+    // NOLINTNEXTLINE(bugprone-derived-method-shadowing-base-method)
+    LIEF_API Iterator& operator++();
+
+    // NOLINTNEXTLINE(bugprone-derived-method-shadowing-base-method)
+    LIEF_API Iterator& operator--();
+
+    LIEF_API const LexicalBlock& operator*() const LIEF_LIFETIMEBOUND;
+
+    // NOLINTNEXTLINE(bugprone-derived-method-shadowing-base-method)
+    LIEF_API const LexicalBlock* operator->() const LIEF_LIFETIMEBOUND;
+
+    /// Transfer ownership of the lexical block at the current position
+    /// to the caller. Returns `nullptr` if the iterator is past-the-end.
+    LIEF_API std::unique_ptr<LexicalBlock> yield();
+
+    private:
+    void load() const;
+
+    std::unique_ptr<details::LexicalBlockIt> impl_;
+    mutable std::unique_ptr<LexicalBlock> cached_;
+  };
+
+  using sub_blocks_it = iterator_range<Iterator>;
+
+  LexicalBlock(std::unique_ptr<details::LexicalBlock> impl);
+  LexicalBlock() = delete;
+  LexicalBlock& operator=(const LexicalBlock&) = delete;
+  LexicalBlock(const LexicalBlock&) = delete;
+
+  /// Return the *name* associated with this lexical block or an
+  /// empty string
+  std::string name() const;
+
+  /// Return the description associated with this lexical block or an
+  /// empty string
+  std::string description() const;
+
+  /// Return an iterator over the sub-LexicalBlock owned by this block.
+  sub_blocks_it sub_blocks() const LIEF_LIFETIMEBOUND;
+
+  /// Return the start address of this block
+  optional<uint64_t> addr() const;
+
+  /// Return the size of this block as the difference of the highest address and
+  /// the lowest address.
+  uint64_t size() const;
+
+  /// Return the lowest virtual address owned by this block.
+  optional<uint64_t> low_pc() const;
+
+  /// Return the highest virtual address owned by this block.
+  optional<uint64_t> high_pc() const;
+
+  /// Return a list of address ranges owned by this block.
+  ///
+  /// If the lexical block owns a contiguous range, it should return
+  /// **a single** range.
+  std::vector<range_t> ranges() const;
+
+  ~LexicalBlock();
+
+  LIEF_LOCAL static std::unique_ptr<LexicalBlock>
+      create(std::unique_ptr<details::LexicalBlock> impl);
+
+  protected:
+  std::unique_ptr<details::LexicalBlock> impl_;
+};
+
+}
+}
+#endif
diff --git a/deps/LIEF/include/LIEF/DWARF/Parameter.hpp b/deps/LIEF/include/LIEF/DWARF/Parameter.hpp
index 9fa7c1211de..9959987e674 100644
--- a/deps/LIEF/include/LIEF/DWARF/Parameter.hpp
+++ b/deps/LIEF/include/LIEF/DWARF/Parameter.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -16,9 +16,11 @@
 #define LIEF_DWARF_PARAMETER_H

 #include "LIEF/visibility.h"
+#include "LIEF/compiler_attributes.hpp"

 #include <memory>
 #include <string>
+#include <cstdint>

 namespace LIEF {
 namespace dwarf {
@@ -41,19 +43,61 @@ class LIEF_API Parameter {
     TEMPLATE_VALUE, ///< DW_TAG_template_value_parameter
     FORMAL,         ///< DW_TAG_formal_parameter
   };
+
+  /// This class exposes information about the location of a parameter
+  class LIEF_API Location {
+    public:
+    enum class Type : uint8_t {
+      UNKNOWN = 0,
+      REG,
+    };
+    Location(Type ty) :
+      type(ty) {}
+
+    template<class T>
+    const T* as() const {
+      if (T::classof(this)) {
+        return static_cast<const T*>(this);
+      }
+      return nullptr;
+    }
+
+    Type type = Type::UNKNOWN;
+  };
+
+  /// This class represents a register location
+  class LIEF_API RegisterLoc : public Location {
+    public:
+    RegisterLoc(uint64_t reg_id) :
+      Location(Type::REG),
+      id(reg_id) {}
+
+    static bool classof(const Location* loc) {
+      return loc->type == Type::REG;
+    }
+
+    /// DWARF id of the register
+    uint64_t id = 0;
+  };
+
   Parameter() = delete;
-  Parameter(Parameter&& other);
-  Parameter& operator=(Parameter&& other);
+  Parameter(Parameter&& other) noexcept;
+  Parameter& operator=(Parameter&& other) noexcept;
   Parameter& operator=(const Parameter&) = delete;
   Parameter(const Parameter&) = delete;

+
   KIND kind() const;

   /// Name of the parameter
   std::string name() const;

   /// Type of this parameter
-  std::unique_ptr<Type> type() const;
+  std::unique_ptr<Type> type() const LIEF_LIFETIMEBOUND;
+
+  /// Location of this parameter. For instance it can be a specific register
+  /// that is not following the calling convention.
+  std::unique_ptr<Location> location() const LIEF_LIFETIMEBOUND;

   template<class T>
   const T* as() const {
@@ -65,8 +109,8 @@ class LIEF_API Parameter {

   virtual ~Parameter();

-  LIEF_LOCAL static
-    std::unique_ptr<Parameter> create(std::unique_ptr<details::Parameter> impl);
+  LIEF_LOCAL static std::unique_ptr<Parameter>
+      create(std::unique_ptr<details::Parameter> impl);

   protected:
   Parameter(std::unique_ptr<details::Parameter> impl);
@@ -130,7 +174,7 @@ class LIEF_API TemplateValue : public Parameter {
 ///
 /// The function `generic` has one parameters::TemplateType parameter: `Y`.
 class LIEF_API TemplateType : public Parameter {
-public:
+  public:
   using Parameter::Parameter;
   static bool classof(const Parameter* P) {
     return P->kind() == Parameter::KIND::TEMPLATE_TYPE;
diff --git a/deps/LIEF/include/LIEF/DWARF/Scope.hpp b/deps/LIEF/include/LIEF/DWARF/Scope.hpp
index 61977c21aec..dbe5e4321f7 100644
--- a/deps/LIEF/include/LIEF/DWARF/Scope.hpp
+++ b/deps/LIEF/include/LIEF/DWARF/Scope.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -57,6 +57,7 @@ class LIEF_API Scope {
   std::string chained(const std::string& sep = "::") const;

   ~Scope();
+
   private:
   std::unique_ptr<details::Scope> impl_;
 };
diff --git a/deps/LIEF/include/LIEF/DWARF/Type.hpp b/deps/LIEF/include/LIEF/DWARF/Type.hpp
index 9e13e896c0d..1ef238cf1b6 100644
--- a/deps/LIEF/include/LIEF/DWARF/Type.hpp
+++ b/deps/LIEF/include/LIEF/DWARF/Type.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -17,10 +17,13 @@

 #include <memory>

+#include "LIEF/compiler_attributes.hpp"
+#include "LIEF/iterators.hpp"
 #include "LIEF/visibility.h"
 #include "LIEF/errors.hpp"
 #include "LIEF/debug_loc.hpp"
 #include "LIEF/canbe_unique.hpp"
+#include "LIEF/DebugDeclOpt.hpp"

 namespace LIEF {
 namespace dwarf {
@@ -63,63 +66,62 @@ class TypeIt;
 /// - `DW_TAG_volatile_type`
 class LIEF_API Type {
   public:
-  class LIEF_API Iterator {
+  class Iterator final
+    : public iterator_facade_base<Iterator, std::bidirectional_iterator_tag, Type,
+                                  std::ptrdiff_t, const Type*, const Type&> {
     public:
-    using iterator_category = std::bidirectional_iterator_tag;
-    using value_type = std::unique_ptr<Type>;
-    using difference_type = std::ptrdiff_t;
-    using pointer = Type*;
-    using reference = std::unique_ptr<Type>&;
     using implementation = details::TypeIt;
+    using iterator_facade_base::operator++;
+    using iterator_facade_base::operator--;

-    class LIEF_API PointerProxy {
-      // Inspired from LLVM's iterator_facade_base
-      friend class Iterator;
-      public:
-      pointer operator->() const { return R.get(); }
+    LIEF_API Iterator();

-      private:
-      value_type R;
+    LIEF_API Iterator(std::unique_ptr<details::TypeIt> impl);

-      template <typename RefT>
-      PointerProxy(RefT &&R) : R(std::forward<RefT>(R)) {} // NOLINT(bugprone-forwarding-reference-overload)
-    };
+    LIEF_API Iterator(const Iterator&);
+    LIEF_API Iterator& operator=(const Iterator&);

-    Iterator(const Iterator&);
-    Iterator(Iterator&&) noexcept;
-    Iterator(std::unique_ptr<details::TypeIt> impl);
-    ~Iterator();
+    LIEF_API Iterator(Iterator&&) noexcept;
+    LIEF_API Iterator& operator=(Iterator&&) noexcept;
+
+    LIEF_API ~Iterator();

     friend LIEF_API bool operator==(const Iterator& LHS, const Iterator& RHS);
-    friend LIEF_API bool operator!=(const Iterator& LHS, const Iterator& RHS) {
+    friend bool operator!=(const Iterator& LHS, const Iterator& RHS) {
       return !(LHS == RHS);
     }

-    Iterator& operator++();
-    Iterator& operator--();
+    // NOLINTNEXTLINE(bugprone-derived-method-shadowing-base-method)
+    LIEF_API Iterator& operator++();

-    Iterator operator--(int) {
-      Iterator tmp = *static_cast<Iterator*>(this);
-      --*static_cast<Iterator *>(this);
-      return tmp;
-    }
+    // NOLINTNEXTLINE(bugprone-derived-method-shadowing-base-method)
+    LIEF_API Iterator& operator--();

-    Iterator operator++(int) {
-      Iterator tmp = *static_cast<Iterator*>(this);
-      ++*static_cast<Iterator *>(this);
-      return tmp;
-    }
+    LIEF_API const Type& operator*() const LIEF_LIFETIMEBOUND;

-    std::unique_ptr<Type> operator*() const;
+    // NOLINTNEXTLINE(bugprone-derived-method-shadowing-base-method)
+    LIEF_API const Type* operator->() const LIEF_LIFETIMEBOUND;

-    PointerProxy operator->() const {
-      return static_cast<const Iterator*>(this)->operator*();
-    }
+    /// Transfer ownership of the type at the current position to the
+    /// caller. Returns `nullptr` if the iterator is past-the-end.
+    LIEF_API std::unique_ptr<Type> yield();

     private:
+    void load() const;
+
     std::unique_ptr<details::TypeIt> impl_;
+    mutable std::unique_ptr<Type> cached_;
   };

+  LIEF_LOCAL Type(std::unique_ptr<details::Type> impl);
+  LIEF_LOCAL Type(details::Type& impl);
+
+  Type(const Type&) = delete;
+  Type& operator=(const Type&) = delete;
+
+  Type(Type&&) noexcept;
+  Type& operator=(Type&&) noexcept;
+
   virtual ~Type();

   enum class KIND {
@@ -176,6 +178,9 @@ class LIEF_API Type {
   /// Return the scope in which this type is defined
   std::unique_ptr<Scope> scope() const;

+  /// Generates a C/C++ definition for this type
+  std::string to_decl(const DeclOpt& opt = DeclOpt()) const;
+
   template<class T>
   const T* as() const {
     if (T::classof(this)) {
@@ -184,12 +189,10 @@ class LIEF_API Type {
     return nullptr;
   }

-  static std::unique_ptr<Type> create(std::unique_ptr<details::Type> impl);
+  static std::unique_ptr<Type>
+      create(std::unique_ptr<details::Type> impl LIEF_LIFETIMEBOUND);

   protected:
-  Type(std::unique_ptr<details::Type> impl);
-  Type(details::Type& impl);
-
   LIEF::details::canbe_unique<details::Type> impl_;
 };

diff --git a/deps/LIEF/include/LIEF/DWARF/Variable.hpp b/deps/LIEF/include/LIEF/DWARF/Variable.hpp
index dd457f45d6e..6e5d4ef1218 100644
--- a/deps/LIEF/include/LIEF/DWARF/Variable.hpp
+++ b/deps/LIEF/include/LIEF/DWARF/Variable.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -17,7 +17,9 @@

 #include <memory>

+#include "LIEF/iterators.hpp"
 #include "LIEF/visibility.h"
+#include "LIEF/compiler_attributes.hpp"
 #include "LIEF/errors.hpp"
 #include "LIEF/debug_loc.hpp"
 #include "LIEF/DWARF/Type.hpp"
@@ -35,61 +37,52 @@ class VariableIt;
 /// dwarf::Function or a dwarf::CompilationUnit
 class LIEF_API Variable {
   public:
-  class LIEF_API Iterator {
+  class Iterator final
+    : public iterator_facade_base<Iterator, std::bidirectional_iterator_tag,
+                                  Variable, std::ptrdiff_t, const Variable*,
+                                  const Variable&> {
     public:
-    using iterator_category = std::bidirectional_iterator_tag;
-    using value_type = std::unique_ptr<Variable>;
-    using difference_type = std::ptrdiff_t;
-    using pointer = Variable*;
-    using reference = std::unique_ptr<Variable>&;
     using implementation = details::VariableIt;
+    using iterator_facade_base::operator++;
+    using iterator_facade_base::operator--;

-    class LIEF_API PointerProxy {
-      // Inspired from LLVM's iterator_facade_base
-      friend class Iterator;
-      public:
-      pointer operator->() const { return R.get(); }
+    LIEF_API Iterator();

-      private:
-      value_type R;
+    LIEF_API Iterator(std::unique_ptr<details::VariableIt> impl);

-      template <typename RefT>
-      PointerProxy(RefT &&R) : R(std::forward<RefT>(R)) {} // NOLINT(bugprone-forwarding-reference-overload)
-    };
+    LIEF_API Iterator(const Iterator&);
+    LIEF_API Iterator& operator=(const Iterator&);

-    Iterator(const Iterator&);
-    Iterator(Iterator&&) noexcept;
-    Iterator(std::unique_ptr<details::VariableIt> impl);
-    ~Iterator();
+    LIEF_API Iterator(Iterator&&) noexcept;
+    LIEF_API Iterator& operator=(Iterator&&) noexcept;
+
+    LIEF_API ~Iterator();

     friend LIEF_API bool operator==(const Iterator& LHS, const Iterator& RHS);
-    friend LIEF_API bool operator!=(const Iterator& LHS, const Iterator& RHS) {
+    friend bool operator!=(const Iterator& LHS, const Iterator& RHS) {
       return !(LHS == RHS);
     }

-    Iterator& operator++();
-    Iterator& operator--();
+    // NOLINTNEXTLINE(bugprone-derived-method-shadowing-base-method)
+    LIEF_API Iterator& operator++();

-    Iterator operator--(int) {
-      Iterator tmp = *static_cast<Iterator*>(this);
-      --*static_cast<Iterator *>(this);
-      return tmp;
-    }
+    // NOLINTNEXTLINE(bugprone-derived-method-shadowing-base-method)
+    LIEF_API Iterator& operator--();

-    Iterator operator++(int) {
-      Iterator tmp = *static_cast<Iterator*>(this);
-      ++*static_cast<Iterator *>(this);
-      return tmp;
-    }
+    LIEF_API const Variable& operator*() const LIEF_LIFETIMEBOUND;

-    std::unique_ptr<Variable> operator*() const;
+    // NOLINTNEXTLINE(bugprone-derived-method-shadowing-base-method)
+    LIEF_API const Variable* operator->() const LIEF_LIFETIMEBOUND;

-    PointerProxy operator->() const {
-      return static_cast<const Iterator*>(this)->operator*();
-    }
+    /// Transfer ownership of the variable at the current position to the
+    /// caller. Returns `nullptr` if the iterator is past-the-end.
+    LIEF_API std::unique_ptr<Variable> yield();

     private:
+    void load() const;
+
     std::unique_ptr<details::VariableIt> impl_;
+    mutable std::unique_ptr<Variable> cached_;
   };

   Variable(std::unique_ptr<details::Variable> impl);
@@ -100,7 +93,7 @@ class LIEF_API Variable {
   /// The name of the variable which is used for linking (`DW_AT_linkage_name`).
   ///
   /// This name differs from name() as it is usually mangled. The function
-  /// return an empty string if the linkage name is not available.
+  /// returns an empty string if the linkage name is not available.
   std::string linkage_name() const;

   /// Address of the variable.
@@ -122,16 +115,26 @@ class LIEF_API Variable {
   /// Whether it's a `constexpr` variable
   bool is_constexpr() const;

+  /// Whether this variable is allocated on the stack
+  bool is_stack_based() const;
+
   /// The original source location where the variable is defined.
   debug_location_t debug_location() const;

   /// Return the type of this variable
-  std::unique_ptr<Type> type() const;
+  std::unique_ptr<Type> type() const LIEF_LIFETIMEBOUND;

   /// Return the scope in which this variable is defined
-  std::unique_ptr<Scope> scope() const;
+  std::unique_ptr<Scope> scope() const LIEF_LIFETIMEBOUND;
+
+  /// Description (`DW_AT_description`) of the variable or an empty string
+  std::string description() const;
+
+  /// Generates a C/C++ definition for this variable
+  std::string to_decl(const DeclOpt& opt = DeclOpt()) const;

   ~Variable();
+
   private:
   std::unique_ptr<details::Variable> impl_;
 };
diff --git a/deps/LIEF/include/LIEF/DWARF/editor/ArrayType.hpp b/deps/LIEF/include/LIEF/DWARF/editor/ArrayType.hpp
index 2116dd9666e..edd21ca7b09 100644
--- a/deps/LIEF/include/LIEF/DWARF/editor/ArrayType.hpp
+++ b/deps/LIEF/include/LIEF/DWARF/editor/ArrayType.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -25,7 +25,11 @@ namespace editor {
 /// This class represents an array type (`DW_TAG_array_type`).
 class LIEF_API ArrayType : public Type {
   public:
-  using Type::Type;
+  template<typename... Args,
+           typename = typename std::
+               enable_if<std::is_constructible<Type, Args&&...>::value>::type>
+  ArrayType(Args&&... args) :
+    Type(std::forward<Args>(args)...) {}

   static bool classof(const Type* type);

diff --git a/deps/LIEF/include/LIEF/DWARF/editor/BaseType.hpp b/deps/LIEF/include/LIEF/DWARF/editor/BaseType.hpp
index f06db195b0a..11b2dd3f026 100644
--- a/deps/LIEF/include/LIEF/DWARF/editor/BaseType.hpp
+++ b/deps/LIEF/include/LIEF/DWARF/editor/BaseType.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -26,7 +26,11 @@ namespace editor {
 /// This class represents a primitive type like `int, char`.
 class LIEF_API BaseType : public Type {
   public:
-  using Type::Type;
+  template<typename... Args,
+           typename = typename std::
+               enable_if<std::is_constructible<Type, Args&&...>::value>::type>
+  BaseType(Args&&... args) :
+    Type(std::forward<Args>(args)...) {}

   enum class ENCODING : uint32_t {
     NONE = 0,
@@ -36,7 +40,7 @@ class LIEF_API BaseType : public Type {
     UNSIGNED,
     UNSIGNED_CHAR,
     BOOLEAN,
-    FLOAT
+    FLOAT,
   };

   static bool classof(const Type* type);
diff --git a/deps/LIEF/include/LIEF/DWARF/editor/CompilationUnit.hpp b/deps/LIEF/include/LIEF/DWARF/editor/CompilationUnit.hpp
index b6b00714d0d..cabab90828d 100644
--- a/deps/LIEF/include/LIEF/DWARF/editor/CompilationUnit.hpp
+++ b/deps/LIEF/include/LIEF/DWARF/editor/CompilationUnit.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -18,6 +18,8 @@
 #include <string>

 #include "LIEF/visibility.h"
+#include "LIEF/compiler_attributes.hpp"
+
 #include "LIEF/DWARF/editor/StructType.hpp"
 #include "LIEF/DWARF/editor/BaseType.hpp"
 #include "LIEF/DWARF/editor/FunctionType.hpp"
@@ -47,46 +49,57 @@ class LIEF_API CompilationUnit {
   ///
   /// This attribute aims to inform about the program that generated this
   /// compilation unit (e.g. `LIEF Extended`)
-  CompilationUnit& set_producer(const std::string& producer);
+  CompilationUnit& set_producer(const std::string& producer) LIEF_LIFETIMEBOUND;

   /// Create a new function owned by this compilation unit
-  std::unique_ptr<Function> create_function(const std::string& name);
+  std::unique_ptr<Function>
+      create_function(const std::string& name) LIEF_LIFETIMEBOUND;

   /// Create a new **global** variable owned by this compilation unit
-  std::unique_ptr<Variable> create_variable(const std::string& name);
+  std::unique_ptr<Variable>
+      create_variable(const std::string& name) LIEF_LIFETIMEBOUND;

   /// Create a `DW_TAG_unspecified_type` type with the given name
-  std::unique_ptr<Type> create_generic_type(const std::string& name);
+  std::unique_ptr<Type>
+      create_generic_type(const std::string& name) LIEF_LIFETIMEBOUND;

   /// Create an enum type (`DW_TAG_enumeration_type`)
-  std::unique_ptr<EnumType> create_enum(const std::string& name);
+  std::unique_ptr<EnumType>
+      create_enum(const std::string& name) LIEF_LIFETIMEBOUND;

-  /// Create a typdef with the name provided in the first parameter which aliases
+  /// Create a typedef with the name provided in the first parameter which aliases
   /// the type provided in the second parameter
-  std::unique_ptr<TypeDef> create_typedef(const std::string& name, const Type& type);
+  std::unique_ptr<TypeDef> create_typedef(const std::string& name,
+                                          const Type& type) LIEF_LIFETIMEBOUND;

   /// Create a struct-like type (struct, class, union) with the given name.
   std::unique_ptr<StructType> create_structure(
-    const std::string& name, StructType::TYPE kind = StructType::TYPE::STRUCT);
+      const std::string& name, StructType::TYPE kind = StructType::TYPE::STRUCT
+  ) LIEF_LIFETIMEBOUND;

   /// Create a primitive type with the given name and size.
-  std::unique_ptr<BaseType> create_base_type(const std::string& name, size_t size,
-    BaseType::ENCODING encoding = BaseType::ENCODING::NONE);
+  std::unique_ptr<BaseType> create_base_type(
+      const std::string& name, size_t size,
+      BaseType::ENCODING encoding = BaseType::ENCODING::NONE
+  ) LIEF_LIFETIMEBOUND;

   /// Create a function type with the given name.
-  std::unique_ptr<FunctionType> create_function_type(const std::string& name);
+  std::unique_ptr<FunctionType>
+      create_function_type(const std::string& name) LIEF_LIFETIMEBOUND;

   /// Create a pointer on the provided type
-  std::unique_ptr<PointerType> create_pointer_type(const Type& ty) {
+  std::unique_ptr<PointerType>
+      create_pointer_type(const Type& ty) LIEF_LIFETIMEBOUND {
     return ty.pointer_to();
   }

   /// Create a `void` type
-  std::unique_ptr<Type> create_void_type();
+  std::unique_ptr<Type> create_void_type() LIEF_LIFETIMEBOUND;

   /// Create an array type with the given name, type and size.
-  std::unique_ptr<ArrayType>
-    create_array(const std::string& name, const Type& type, size_t count);
+  std::unique_ptr<ArrayType> create_array(const std::string& name,
+                                          const Type& type,
+                                          size_t count) LIEF_LIFETIMEBOUND;

   ~CompilationUnit();

diff --git a/deps/LIEF/include/LIEF/DWARF/editor/EnumType.hpp b/deps/LIEF/include/LIEF/DWARF/editor/EnumType.hpp
index 90d76fa0e91..9eda1e305b1 100644
--- a/deps/LIEF/include/LIEF/DWARF/editor/EnumType.hpp
+++ b/deps/LIEF/include/LIEF/DWARF/editor/EnumType.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -17,6 +17,7 @@
 #include <cstdint>
 #include <string>

+#include "LIEF/compiler_attributes.hpp"
 #include "LIEF/visibility.h"
 #include "LIEF/DWARF/editor/Type.hpp"

@@ -31,7 +32,11 @@ class EnumValue;
 /// This class represents an editable enum type (`DW_TAG_enumeration_type`)
 class LIEF_API EnumType : public Type {
   public:
-  using Type::Type;
+  template<typename... Args,
+           typename = typename std::
+               enable_if<std::is_constructible<Type, Args&&...>::value>::type>
+  EnumType(Args&&... args) :
+    Type(std::forward<Args>(args)...) {}

   /// This class represents an enum value
   class LIEF_API Value {
@@ -40,16 +45,21 @@ class LIEF_API EnumType : public Type {
     Value(std::unique_ptr<details::EnumValue> impl);

     ~Value();
+
     private:
     std::unique_ptr<details::EnumValue> impl_;
   };

   /// Define the number of bytes required to hold an instance of the
   /// enumeration (`DW_AT_byte_size`).
-  EnumType& set_size(uint64_t size);
+  EnumType& set_size(uint64_t size) LIEF_LIFETIMEBOUND;
+
+  /// Set the underlying type that is used to encode this enum
+  EnumType& set_underlying_type(const Type& type) LIEF_LIFETIMEBOUND;

   /// Add an enum value by specifying its name and its integer value
-  std::unique_ptr<Value> add_value(const std::string& name, int64_t value);
+  std::unique_ptr<Value> add_value(const std::string& name,
+                                   int64_t value) LIEF_LIFETIMEBOUND;

   static bool classof(const Type* type);

diff --git a/deps/LIEF/include/LIEF/DWARF/editor/Function.hpp b/deps/LIEF/include/LIEF/DWARF/editor/Function.hpp
index e91f64139c0..4c341a1d5cf 100644
--- a/deps/LIEF/include/LIEF/DWARF/editor/Function.hpp
+++ b/deps/LIEF/include/LIEF/DWARF/editor/Function.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -19,6 +19,7 @@
 #include <vector>
 #include <string>

+#include "LIEF/compiler_attributes.hpp"
 #include "LIEF/visibility.h"

 namespace LIEF {
@@ -40,19 +41,27 @@ class LIEF_API Function {
   struct LIEF_API range_t {
     range_t() = default;
     range_t(uint64_t start, uint64_t end) :
-      start(start), end(end)
-    {}
+      start(start),
+      end(end) {}
     uint64_t start = 0;
     uint64_t end = 0;
   };

-  /// This class represents a parameter of the current function (`DW_TAG_formal_parameter`)
+  /// This class represents a parameter of the current function
+  /// (`DW_TAG_formal_parameter`)
   class LIEF_API Parameter {
     public:
     Parameter() = delete;
     Parameter(std::unique_ptr<details::FunctionParameter> impl);

     ~Parameter();
+
+    /// Assign this parameter to a specific named register.
+    Parameter& assign_register(const std::string& name) LIEF_LIFETIMEBOUND;
+
+    /// Assign this parameter to the given DWARF register id (e.g. `DW_OP_reg0`).
+    Parameter& assign_register(uint64_t reg) LIEF_LIFETIMEBOUND;
+
     private:
     std::unique_ptr<details::FunctionParameter> impl_;
   };
@@ -63,7 +72,24 @@ class LIEF_API Function {
     LexicalBlock() = delete;
     LexicalBlock(std::unique_ptr<details::FunctionLexicalBlock> impl);

+    /// Create a sub-block with the given low/high addresses.
+    std::unique_ptr<LexicalBlock> add_block(uint64_t start,
+                                            uint64_t end) LIEF_LIFETIMEBOUND;
+
+    /// Create a sub-block with the given range of addresses.
+    std::unique_ptr<LexicalBlock>
+        add_block(const std::vector<range_t>& range) LIEF_LIFETIMEBOUND;
+
+    /// Create a `DW_AT_description` entry with the description
+    /// provided in parameter.
+    LexicalBlock&
+        add_description(const std::string& description) LIEF_LIFETIMEBOUND;
+
+    /// Create a `DW_AT_name` entry to associate a name to this entry
+    LexicalBlock& add_name(const std::string& name) LIEF_LIFETIMEBOUND;
+
     ~LexicalBlock();
+
     private:
     std::unique_ptr<details::FunctionLexicalBlock> impl_;
   };
@@ -75,6 +101,7 @@ class LIEF_API Function {
     Label(std::unique_ptr<details::FunctionLabel> impl);

     ~Label();
+
     private:
     std::unique_ptr<details::FunctionLabel> impl_;
   };
@@ -83,39 +110,47 @@ class LIEF_API Function {
   Function(std::unique_ptr<details::Function> impl);

   /// Set the address of this function by defining `DW_AT_entry_pc`
-  Function& set_address(uint64_t addr);
+  Function& set_address(uint64_t addr) LIEF_LIFETIMEBOUND;

   /// Set the upper and lower bound addresses for this function. This assumes
   /// that the function is contiguous between `low` and `high`.
   ///
   /// Underneath, the function defines `DW_AT_low_pc` and `DW_AT_high_pc`
-  Function& set_low_high(uint64_t low, uint64_t high);
+  Function& set_low_high(uint64_t low, uint64_t high) LIEF_LIFETIMEBOUND;

   /// Set the ranges of addresses owned by the implementation of this function
   /// by setting the `DW_AT_ranges` attribute.
   ///
-  /// This setter should be used for non-contiguous function.
-  Function& set_ranges(const std::vector<range_t>& ranges);
+  /// This setter should be used for non-contiguous functions.
+  Function& set_ranges(const std::vector<range_t>& ranges) LIEF_LIFETIMEBOUND;

   /// Set the function as external by defining `DW_AT_external` to true.
   /// This means that the function is **imported** by the current compilation
   /// unit.
-  Function& set_external();
+  Function& set_external() LIEF_LIFETIMEBOUND;

   /// Set the return type of this function
-  Function& set_return_type(const Type& type);
+  Function& set_return_type(const Type& type) LIEF_LIFETIMEBOUND;

   /// Add a parameter to the current function
-  std::unique_ptr<Parameter> add_parameter(const std::string& name, const Type& type);
+  std::unique_ptr<Parameter> add_parameter(const std::string& name,
+                                           const Type& type) LIEF_LIFETIMEBOUND;

   /// Create a stack-based variable owned by the current function
-  std::unique_ptr<Variable> create_stack_variable(const std::string& name);
+  std::unique_ptr<Variable>
+      create_stack_variable(const std::string& name) LIEF_LIFETIMEBOUND;

   /// Add a lexical block with the given range
-  std::unique_ptr<LexicalBlock> add_lexical_block(uint64_t start, uint64_t end);
+  std::unique_ptr<LexicalBlock> add_lexical_block(uint64_t start,
+                                                  uint64_t end) LIEF_LIFETIMEBOUND;

   /// Add a label at the given address
-  std::unique_ptr<Label> add_label(uint64_t addr, const std::string& label);
+  std::unique_ptr<Label> add_label(uint64_t addr,
+                                   const std::string& label) LIEF_LIFETIMEBOUND;
+
+  /// Create a `DW_AT_description` entry with the description
+  /// provided in parameter.
+  Function& add_description(const std::string& description) LIEF_LIFETIMEBOUND;

   ~Function();

diff --git a/deps/LIEF/include/LIEF/DWARF/editor/FunctionType.hpp b/deps/LIEF/include/LIEF/DWARF/editor/FunctionType.hpp
index 9b843798404..e45999617f0 100644
--- a/deps/LIEF/include/LIEF/DWARF/editor/FunctionType.hpp
+++ b/deps/LIEF/include/LIEF/DWARF/editor/FunctionType.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -14,6 +14,7 @@
  */
 #ifndef LIEF_DWARF_EDITOR_FUNCTION_TYPE_H
 #define LIEF_DWARF_EDITOR_FUNCTION_TYPE_H
+#include "LIEF/compiler_attributes.hpp"
 #include "LIEF/visibility.h"
 #include "LIEF/DWARF/editor/Type.hpp"

@@ -28,7 +29,11 @@ class FunctionTyParameter;
 /// This class represents a function type (`DW_TAG_subroutine_type`)
 class LIEF_API FunctionType : public Type {
   public:
-  using Type::Type;
+  template<typename... Args,
+           typename = typename std::
+               enable_if<std::is_constructible<Type, Args&&...>::value>::type>
+  FunctionType(Args&&... args) :
+    Type(std::forward<Args>(args)...) {}

   /// This class represents a function's parameter
   class LIEF_API Parameter {
@@ -37,15 +42,16 @@ class LIEF_API FunctionType : public Type {
     Parameter(std::unique_ptr<details::FunctionTyParameter> impl);

     ~Parameter();
+
     private:
     std::unique_ptr<details::FunctionTyParameter> impl_;
   };

   /// Set the return type of this function
-  FunctionType& set_return_type(const Type& type);
+  FunctionType& set_return_type(const Type& type) LIEF_LIFETIMEBOUND;

   /// Add a parameter
-  std::unique_ptr<Parameter> add_parameter(const Type& type);
+  std::unique_ptr<Parameter> add_parameter(const Type& type) LIEF_LIFETIMEBOUND;

   static bool classof(const Type* type);

diff --git a/deps/LIEF/include/LIEF/DWARF/editor/PointerType.hpp b/deps/LIEF/include/LIEF/DWARF/editor/PointerType.hpp
index 8bb5a0ea3cd..884b1b09ca2 100644
--- a/deps/LIEF/include/LIEF/DWARF/editor/PointerType.hpp
+++ b/deps/LIEF/include/LIEF/DWARF/editor/PointerType.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -25,7 +25,11 @@ namespace editor {
 /// This class represents a pointer to another type.
 class LIEF_API PointerType : public Type {
   public:
-  using Type::Type;
+  template<typename... Args,
+           typename = typename std::
+               enable_if<std::is_constructible<Type, Args&&...>::value>::type>
+  PointerType(Args&&... args) :
+    Type(std::forward<Args>(args)...) {}

   static bool classof(const Type* type);

diff --git a/deps/LIEF/include/LIEF/DWARF/editor/StructType.hpp b/deps/LIEF/include/LIEF/DWARF/editor/StructType.hpp
index 82093eb64bc..a01b6160d85 100644
--- a/deps/LIEF/include/LIEF/DWARF/editor/StructType.hpp
+++ b/deps/LIEF/include/LIEF/DWARF/editor/StructType.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -19,6 +19,7 @@
 #include <string>

 #include "LIEF/visibility.h"
+#include "LIEF/compiler_attributes.hpp"
 #include "LIEF/DWARF/editor/Type.hpp"

 namespace LIEF {
@@ -36,12 +37,16 @@ class StructMember;
 /// - `DW_TAG_union_type`
 class LIEF_API StructType : public Type {
   public:
-  using Type::Type;
+  template<typename... Args,
+           typename = typename std::
+               enable_if<std::is_constructible<Type, Args&&...>::value>::type>
+  StructType(Args&&... args) :
+    Type(std::forward<Args>(args)...) {}

   enum class TYPE : uint32_t {
-    CLASS, /// Discriminant for `DW_TAG_class_type`
+    CLASS,  /// Discriminant for `DW_TAG_class_type`
     STRUCT, /// Discriminant for `DW_TAG_structure_type`
-    UNION, /// Discriminant for `DW_TAG_union_type`
+    UNION,  /// Discriminant for `DW_TAG_union_type`
   };

   /// This class represents a member of the struct-like
@@ -51,6 +56,7 @@ class LIEF_API StructType : public Type {
     Member(std::unique_ptr<details::StructMember> impl);

     ~Member();
+
     private:
     std::unique_ptr<details::StructMember> impl_;
   };
@@ -59,11 +65,16 @@ class LIEF_API StructType : public Type {
   /// type.
   ///
   /// This function defines the `DW_AT_byte_size` attribute
-  StructType& set_size(uint64_t size);
+  StructType& set_size(uint64_t size) LIEF_LIFETIMEBOUND;

-  /// Add a member to the current struct-like
+  /// Adds a member to the current struct-like
   std::unique_ptr<Member> add_member(const std::string& name, const Type& type,
-                                     int64_t offset = -1);
+                                     int64_t offset = -1) LIEF_LIFETIMEBOUND;
+
+  /// Adds a bitfield member to the current structure.
+  std::unique_ptr<Member> add_bitfield(const std::string& name, const Type& type,
+                                       uint64_t bitsize,
+                                       int64_t bitoffset = -1) LIEF_LIFETIMEBOUND;

   static bool classof(const Type* type);

diff --git a/deps/LIEF/include/LIEF/DWARF/editor/Type.hpp b/deps/LIEF/include/LIEF/DWARF/editor/Type.hpp
index 6dbe44f9672..7d694537ee4 100644
--- a/deps/LIEF/include/LIEF/DWARF/editor/Type.hpp
+++ b/deps/LIEF/include/LIEF/DWARF/editor/Type.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -17,6 +17,7 @@
 #include <memory>
 #include <cassert>

+#include "LIEF/compiler_attributes.hpp"
 #include "LIEF/visibility.h"

 namespace LIEF {
@@ -39,20 +40,20 @@ class LIEF_API Type {
   Type(std::unique_ptr<details::Type> impl);

   /// Create a pointer type pointing to this type
-  std::unique_ptr<PointerType> pointer_to() const;
+  std::unique_ptr<PointerType> pointer_to() const LIEF_LIFETIMEBOUND;

   virtual ~Type();

-  /// \private
+  /// @private
   static std::unique_ptr<Type> create(std::unique_ptr<details::Type> impl);

-  /// \private
-  details::Type& impl() {
+  /// @private
+  details::Type& impl() LIEF_LIFETIMEBOUND {
     assert(impl_ != nullptr);
     return *impl_;
   }

-  const details::Type& impl() const {
+  const details::Type& impl() const LIEF_LIFETIMEBOUND {
     assert(impl_ != nullptr);
     return *impl_;
   }
diff --git a/deps/LIEF/include/LIEF/DWARF/editor/TypeDef.hpp b/deps/LIEF/include/LIEF/DWARF/editor/TypeDef.hpp
index aab89dd40ef..38e9b5e2d09 100644
--- a/deps/LIEF/include/LIEF/DWARF/editor/TypeDef.hpp
+++ b/deps/LIEF/include/LIEF/DWARF/editor/TypeDef.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -25,7 +25,11 @@ namespace editor {
 /// This class represents a typedef (`DW_TAG_typedef`).
 class LIEF_API TypeDef : public Type {
   public:
-  using Type::Type;
+  template<typename... Args,
+           typename = typename std::
+               enable_if<std::is_constructible<Type, Args&&...>::value>::type>
+  TypeDef(Args&&... args) :
+    Type(std::forward<Args>(args)...) {}

   static bool classof(const Type* type);

diff --git a/deps/LIEF/include/LIEF/DWARF/editor/Variable.hpp b/deps/LIEF/include/LIEF/DWARF/editor/Variable.hpp
index f9e41b20913..a6f2762be79 100644
--- a/deps/LIEF/include/LIEF/DWARF/editor/Variable.hpp
+++ b/deps/LIEF/include/LIEF/DWARF/editor/Variable.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -16,7 +16,9 @@
 #define LIEF_DWARF_EDITOR_VARIABLE_H
 #include <cstdint>
 #include <memory>
+#include <string>

+#include "LIEF/compiler_attributes.hpp"
 #include "LIEF/visibility.h"

 namespace LIEF {
@@ -36,22 +38,26 @@ class LIEF_API Variable {
   Variable(std::unique_ptr<details::Variable> impl);

   /// Set the global address of this variable. Setting this address is only
-  /// revelant in the case of a static global variable. For stack variable, you
+  /// relevant in the case of a static global variable. For stack variable, you
   /// should use set_stack_offset.
   ///
-  /// This function set the `DW_AT_location` attribute
-  Variable& set_addr(uint64_t address);
+  /// This function sets the `DW_AT_location` attribute
+  Variable& set_addr(uint64_t address) LIEF_LIFETIMEBOUND;

   /// Set the stack offset of this variable.
   ///
-  /// This function set the `DW_AT_location` attribute
-  Variable& set_stack_offset(uint64_t offset);
+  /// This function sets the `DW_AT_location` attribute
+  Variable& set_stack_offset(uint64_t offset) LIEF_LIFETIMEBOUND;

   /// Mark this variable as **imported**
-  Variable& set_external();
+  Variable& set_external() LIEF_LIFETIMEBOUND;

   /// Set the type of the current variable
-  Variable& set_type(const Type& type);
+  Variable& set_type(const Type& type) LIEF_LIFETIMEBOUND;
+
+  /// Create a `DW_AT_description` entry with the description
+  /// provided in parameter.
+  Variable& add_description(const std::string& description) LIEF_LIFETIMEBOUND;

   ~Variable();

diff --git a/deps/LIEF/include/LIEF/DWARF/enums.hpp b/deps/LIEF/include/LIEF/DWARF/enums.hpp
index e1c3bd48c4d..6357e39b71d 100644
--- a/deps/LIEF/include/LIEF/DWARF/enums.hpp
+++ b/deps/LIEF/include/LIEF/DWARF/enums.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -19,26 +19,26 @@
 namespace LIEF {
 namespace dwarf {

- enum class EH_ENCODING  {
-    ABSPTR   = 0x00,
-    OMIT     = 0xff,
-    ULEB128  = 0x01,
-    UDATA2   = 0x02,
-    UDATA4   = 0x03,
-    UDATA8   = 0x04,
-    SLEB128  = 0x09,
-    SDATA2   = 0x0a,
-    SDATA4   = 0x0b,
-    SDATA8   = 0x0c,
-    SIGNED   = 0x09,
+enum class EH_ENCODING {
+  ABSPTR = 0x00,
+  OMIT = 0xff,
+  ULEB128 = 0x01,
+  UDATA2 = 0x02,
+  UDATA4 = 0x03,
+  UDATA8 = 0x04,
+  SLEB128 = 0x09,
+  SDATA2 = 0x0a,
+  SDATA4 = 0x0b,
+  SDATA8 = 0x0c,
+  SIGNED = 0x09,

-    PCREL    = 0x10,
-    INDIRECT = 0x80,
-    TEXTREL  = 0x20,
-    DATAREL  = 0x30,
-    FUNCREL  = 0x40,
-    ALIGNED  = 0x50,
- };
+  PCREL = 0x10,
+  INDIRECT = 0x80,
+  TEXTREL = 0x20,
+  DATAREL = 0x30,
+  FUNCREL = 0x40,
+  ALIGNED = 0x50,
+};

 } // dwarf
 } // LIEF
diff --git a/deps/LIEF/include/LIEF/DWARF/types.hpp b/deps/LIEF/include/LIEF/DWARF/types.hpp
index 6064e3b8140..0450baa4ba6 100644
--- a/deps/LIEF/include/LIEF/DWARF/types.hpp
+++ b/deps/LIEF/include/LIEF/DWARF/types.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/deps/LIEF/include/LIEF/DWARF/types/Array.hpp b/deps/LIEF/include/LIEF/DWARF/types/Array.hpp
index 8a8e7ab185a..48c311e610e 100644
--- a/deps/LIEF/include/LIEF/DWARF/types/Array.hpp
+++ b/deps/LIEF/include/LIEF/DWARF/types/Array.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -15,6 +15,7 @@
 #ifndef LIEF_DWARF_TYPE_ARRAY_H
 #define LIEF_DWARF_TYPE_ARRAY_H

+#include "LIEF/compiler_attributes.hpp"
 #include "LIEF/visibility.h"
 #include "LIEF/DWARF/Type.hpp"

@@ -25,7 +26,17 @@ namespace types {
 /// This class represents a `DW_TAG_array_type`
 class LIEF_API Array : public Type {
   public:
-  using Type::Type;
+  template<typename... Args,
+           typename = typename std::
+               enable_if<std::is_constructible<Type, Args&&...>::value>::type>
+  Array(Args&&... args) :
+    Type(std::forward<Args>(args)...) {}
+
+  Array(const Array&) = delete;
+  Array& operator=(const Array&) = delete;
+
+  Array(Array&&) noexcept = default;
+  Array& operator=(Array&&) noexcept = default;

   /// Structure that wraps information about the dimension of this array
   struct size_info_t {
@@ -50,13 +61,13 @@ class LIEF_API Array : public Type {
   }

   /// The underlying type of this array
-  const Type* underlying_type() const;
+  const Type* underlying_type() const LIEF_LIFETIMEBOUND;

-  const Type* operator->() const {
+  const Type* operator->() const LIEF_LIFETIMEBOUND {
     return underlying_type();
   }

-  const Type& operator*() const {
+  const Type& operator*() const LIEF_LIFETIMEBOUND {
     return *underlying_type();
   }

diff --git a/deps/LIEF/include/LIEF/DWARF/types/Atomic.hpp b/deps/LIEF/include/LIEF/DWARF/types/Atomic.hpp
index 6721c240e07..c1a4229157c 100644
--- a/deps/LIEF/include/LIEF/DWARF/types/Atomic.hpp
+++ b/deps/LIEF/include/LIEF/DWARF/types/Atomic.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -15,6 +15,7 @@
 #ifndef LIEF_DWARF_TYPE_ATOMIC_H
 #define LIEF_DWARF_TYPE_ATOMIC_H

+#include "LIEF/compiler_attributes.hpp"
 #include "LIEF/visibility.h"
 #include "LIEF/DWARF/Type.hpp"

@@ -25,20 +26,30 @@ namespace types {
 /// This class represents a `DW_TAG_atomic_type`
 class LIEF_API Atomic : public Type {
   public:
-  using Type::Type;
+  template<typename... Args,
+           typename = typename std::
+               enable_if<std::is_constructible<Type, Args&&...>::value>::type>
+  Atomic(Args&&... args) :
+    Type(std::forward<Args>(args)...) {}
+
+  Atomic(const Atomic&) = delete;
+  Atomic& operator=(const Atomic&) = delete;
+
+  Atomic(Atomic&&) noexcept = default;
+  Atomic& operator=(Atomic&&) noexcept = default;

   static bool classof(const Type* type) {
     return type->kind() == Type::KIND::ATOMIC;
   }

   /// The underlying type being atomic
-  const Type* underlying_type() const;
+  const Type* underlying_type() const LIEF_LIFETIMEBOUND;

-  const Type* operator->() const {
+  const Type* operator->() const LIEF_LIFETIMEBOUND {
     return underlying_type();
   }

-  const Type& operator*() const {
+  const Type& operator*() const LIEF_LIFETIMEBOUND {
     return *underlying_type();
   }

diff --git a/deps/LIEF/include/LIEF/DWARF/types/Base.hpp b/deps/LIEF/include/LIEF/DWARF/types/Base.hpp
index e3c4630896b..2c9b752d376 100644
--- a/deps/LIEF/include/LIEF/DWARF/types/Base.hpp
+++ b/deps/LIEF/include/LIEF/DWARF/types/Base.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -26,7 +26,11 @@ namespace types {
 /// instance -- to represent integers or primitive types.
 class LIEF_API Base : public Type {
   public:
-  using Type::Type;
+  template<typename... Args,
+           typename = typename std::
+               enable_if<std::is_constructible<Type, Args&&...>::value>::type>
+  Base(Args&&... args) :
+    Type(std::forward<Args>(args)...) {}

   enum class ENCODING {
     NONE = 0,
@@ -53,6 +57,12 @@ class LIEF_API Base : public Type {
     ADDRESS,
   };

+  Base(const Base&) = delete;
+  Base& operator=(const Base&) = delete;
+
+  Base(Base&&) noexcept = default;
+  Base& operator=(Base&&) noexcept = default;
+
   static bool classof(const Type* type) {
     return type->kind() == Type::KIND::BASE;
   }
@@ -67,5 +77,3 @@ class LIEF_API Base : public Type {
 }
 }
 #endif
-
-
diff --git a/deps/LIEF/include/LIEF/DWARF/types/ClassLike.hpp b/deps/LIEF/include/LIEF/DWARF/types/ClassLike.hpp
index b5fa0be2b3c..58b26d2005b 100644
--- a/deps/LIEF/include/LIEF/DWARF/types/ClassLike.hpp
+++ b/deps/LIEF/include/LIEF/DWARF/types/ClassLike.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -16,6 +16,7 @@
 #define LIEF_DWARF_TYPE_STRUCTURE_H

 #include "LIEF/visibility.h"
+#include "LIEF/compiler_attributes.hpp"
 #include "LIEF/DWARF/Type.hpp"
 #include "LIEF/DWARF/Function.hpp"

@@ -31,7 +32,11 @@ class Member;
 /// `DW_TAG_class_type`, `DW_TAG_union_type`.
 class LIEF_API ClassLike : public Type {
   public:
-  using Type::Type;
+  template<typename... Args,
+           typename = typename std::
+               enable_if<std::is_constructible<Type, Args&&...>::value>::type>
+  ClassLike(Args&&... args) :
+    Type(std::forward<Args>(args)...) {}

   /// This represents a class/struct/union attribute
   class LIEF_API Member {
@@ -40,6 +45,9 @@ class LIEF_API ClassLike : public Type {
     Member(Member&& other) noexcept;
     Member& operator=(Member&& other) noexcept;

+    Member(const Member&) = delete;
+    Member& operator=(const Member&) = delete;
+
     /// Name of the member
     std::string name() const;

@@ -48,7 +56,7 @@ class LIEF_API ClassLike : public Type {
     /// If the offset can't be resolved it returns a lief_errors
     result<uint64_t> offset() const;

-    /// Offset of the current member in **bits** the struct/union/class
+    /// Offset of the current member in **bits** in the struct/union/class
     ///
     /// This function differs from offset() for aggregates using bit-field
     /// declaration:
@@ -65,35 +73,45 @@ class LIEF_API ClassLike : public Type {
     /// If the offset can't be resolved it returns a lief_errors
     result<uint64_t> bit_offset() const;

-    /// Type of the current member
-    std::unique_ptr<Type> type() const;
-
+    /// If the current member is a bit-field, this function returns its size in
+    /// bits.
+    result<uint64_t> bit_size() const;

+    /// Type of the current member
+    std::unique_ptr<Type> type() const LIEF_LIFETIMEBOUND;

     bool is_external() const;

     bool is_declaration() const;

     ~Member();
+
     private:
     std::unique_ptr<details::Member> impl_;
   };

+  ClassLike(const ClassLike&) = delete;
+  ClassLike& operator=(const ClassLike&) = delete;
+
+  ClassLike(ClassLike&&) noexcept = default;
+  ClassLike& operator=(ClassLike&&) noexcept = default;
+
   using functions_it = iterator_range<Function::Iterator>;

   static bool classof(const Type* type) {
     const auto kind = type->kind();
-    return kind == Type::KIND::CLASS || kind == Type::KIND::STRUCT || kind == Type::KIND::UNION;
+    return kind == Type::KIND::CLASS || kind == Type::KIND::STRUCT ||
+           kind == Type::KIND::UNION;
   }

   /// Return the list of all the attributes defined in this class-like type
-  std::vector<Member> members() const;
+  std::vector<Member> members() const LIEF_LIFETIMEBOUND;

   /// Try to find the attribute at the given offset
-  std::unique_ptr<Member> find_member(uint64_t offset) const;
+  std::unique_ptr<Member> find_member(uint64_t offset) const LIEF_LIFETIMEBOUND;

   /// Iterator over the functions defined by the class-like.
-  functions_it functions() const;
+  functions_it functions() const LIEF_LIFETIMEBOUND;

   ~ClassLike() override;
 };
@@ -101,7 +119,17 @@ class LIEF_API ClassLike : public Type {
 /// This class represents a DWARF `struct` type (`DW_TAG_structure_type`)
 class LIEF_API Structure : public ClassLike {
   public:
-  using ClassLike::ClassLike;
+  template<typename... Args,
+           typename = typename std::
+               enable_if<std::is_constructible<ClassLike, Args&&...>::value>::type>
+  Structure(Args&&... args) :
+    ClassLike(std::forward<Args>(args)...) {}
+
+  Structure(const Structure&) = delete;
+  Structure& operator=(const Structure&) = delete;
+
+  Structure(Structure&&) noexcept = default;
+  Structure& operator=(Structure&&) noexcept = default;

   static bool classof(const Type* type) {
     return type->kind() == Type::KIND::STRUCT;
@@ -113,7 +141,17 @@ class LIEF_API Structure : public ClassLike {
 /// This class represents a DWARF `class` type (`DW_TAG_class_type`)
 class LIEF_API Class : public ClassLike {
   public:
-  using ClassLike::ClassLike;
+  template<typename... Args,
+           typename = typename std::
+               enable_if<std::is_constructible<ClassLike, Args&&...>::value>::type>
+  Class(Args&&... args) :
+    ClassLike(std::forward<Args>(args)...) {}
+
+  Class(const Class&) = delete;
+  Class& operator=(const Class&) = delete;
+
+  Class(Class&&) noexcept = default;
+  Class& operator=(Class&&) noexcept = default;

   static bool classof(const Type* type) {
     return type->kind() == Type::KIND::CLASS;
@@ -122,10 +160,20 @@ class LIEF_API Class : public ClassLike {
   ~Class() override;
 };

-/// This class represents a DWARF `class` type (`DW_TAG_union_type`)
+/// This class represents a DWARF `union` type (`DW_TAG_union_type`)
 class LIEF_API Union : public ClassLike {
   public:
-  using ClassLike::ClassLike;
+  template<typename... Args,
+           typename = typename std::
+               enable_if<std::is_constructible<ClassLike, Args&&...>::value>::type>
+  Union(Args&&... args) :
+    ClassLike(std::forward<Args>(args)...) {}
+
+  Union(const Union&) = delete;
+  Union& operator=(const Union&) = delete;
+
+  Union(Union&&) noexcept = default;
+  Union& operator=(Union&&) noexcept = default;

   static bool classof(const Type* type) {
     return type->kind() == Type::KIND::UNION;
@@ -137,7 +185,17 @@ class LIEF_API Union : public ClassLike {
 /// This class represents a DWARF `packed` type (`DW_TAG_packed_type`)
 class LIEF_API Packed : public ClassLike {
   public:
-  using ClassLike::ClassLike;
+  template<typename... Args,
+           typename = typename std::
+               enable_if<std::is_constructible<ClassLike, Args&&...>::value>::type>
+  Packed(Args&&... args) :
+    ClassLike(std::forward<Args>(args)...) {}
+
+  Packed(const Packed&) = delete;
+  Packed& operator=(const Packed&) = delete;
+
+  Packed(Packed&&) noexcept = default;
+  Packed& operator=(Packed&&) noexcept = default;

   static bool classof(const Type* type) {
     return type->kind() == Type::KIND::PACKED;
@@ -150,5 +208,3 @@ class LIEF_API Packed : public ClassLike {
 }
 }
 #endif
-
-
diff --git a/deps/LIEF/include/LIEF/DWARF/types/Coarray.hpp b/deps/LIEF/include/LIEF/DWARF/types/Coarray.hpp
index b2855331406..3899f5a0cbc 100644
--- a/deps/LIEF/include/LIEF/DWARF/types/Coarray.hpp
+++ b/deps/LIEF/include/LIEF/DWARF/types/Coarray.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -25,7 +25,17 @@ namespace types {
 /// This class represents a `DW_TAG_coarray_type`
 class LIEF_API Coarray : public Type {
   public:
-  using Type::Type;
+  template<typename... Args,
+           typename = typename std::
+               enable_if<std::is_constructible<Type, Args&&...>::value>::type>
+  Coarray(Args&&... args) :
+    Type(std::forward<Args>(args)...) {}
+
+  Coarray(const Coarray&) = delete;
+  Coarray& operator=(const Coarray&) = delete;
+
+  Coarray(Coarray&&) noexcept = default;
+  Coarray& operator=(Coarray&&) noexcept = default;

   static bool classof(const Type* type) {
     return type->kind() == Type::KIND::COARRAY;
diff --git a/deps/LIEF/include/LIEF/DWARF/types/Const.hpp b/deps/LIEF/include/LIEF/DWARF/types/Const.hpp
index 85718ad39e5..091f5fea759 100644
--- a/deps/LIEF/include/LIEF/DWARF/types/Const.hpp
+++ b/deps/LIEF/include/LIEF/DWARF/types/Const.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -16,6 +16,7 @@
 #define LIEF_DWARF_TYPE_CONST_H

 #include "LIEF/visibility.h"
+#include "LIEF/compiler_attributes.hpp"
 #include "LIEF/DWARF/Type.hpp"

 namespace LIEF {
@@ -25,20 +26,30 @@ namespace types {
 /// This class represents a `DW_TAG_const_type`
 class LIEF_API Const : public Type {
   public:
-  using Type::Type;
+  template<typename... Args,
+           typename = typename std::
+               enable_if<std::is_constructible<Type, Args&&...>::value>::type>
+  Const(Args&&... args) :
+    Type(std::forward<Args>(args)...) {}
+
+  Const(const Const&) = delete;
+  Const& operator=(const Const&) = delete;
+
+  Const(Const&&) noexcept = default;
+  Const& operator=(Const&&) noexcept = default;

   static bool classof(const Type* type) {
     return type->kind() == Type::KIND::CONST_KIND;
   }

   /// The underlying type being const-ed
-  const Type* underlying_type() const;
+  const Type* underlying_type() const LIEF_LIFETIMEBOUND;

-  const Type* operator->() const {
+  const Type* operator->() const LIEF_LIFETIMEBOUND {
     return underlying_type();
   }

-  const Type& operator*() const {
+  const Type& operator*() const LIEF_LIFETIMEBOUND {
     return *underlying_type();
   }

@@ -52,5 +63,3 @@ class LIEF_API Const : public Type {
 }
 }
 #endif
-
-
diff --git a/deps/LIEF/include/LIEF/DWARF/types/Dynamic.hpp b/deps/LIEF/include/LIEF/DWARF/types/Dynamic.hpp
index b726545acb4..61ac878cc48 100644
--- a/deps/LIEF/include/LIEF/DWARF/types/Dynamic.hpp
+++ b/deps/LIEF/include/LIEF/DWARF/types/Dynamic.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -25,7 +25,17 @@ namespace types {
 /// This class represents a `DW_TAG_dynamic_type`
 class LIEF_API Dynamic : public Type {
   public:
-  using Type::Type;
+  template<typename... Args,
+           typename = typename std::
+               enable_if<std::is_constructible<Type, Args&&...>::value>::type>
+  Dynamic(Args&&... args) :
+    Type(std::forward<Args>(args)...) {}
+
+  Dynamic(const Dynamic&) = delete;
+  Dynamic& operator=(const Dynamic&) = delete;
+
+  Dynamic(Dynamic&&) noexcept = default;
+  Dynamic& operator=(Dynamic&&) noexcept = default;

   static bool classof(const Type* type) {
     return type->kind() == Type::KIND::DYNAMIC;
diff --git a/deps/LIEF/include/LIEF/DWARF/types/Enum.hpp b/deps/LIEF/include/LIEF/DWARF/types/Enum.hpp
index b8f3791d85b..33f83195bc5 100644
--- a/deps/LIEF/include/LIEF/DWARF/types/Enum.hpp
+++ b/deps/LIEF/include/LIEF/DWARF/types/Enum.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -15,23 +15,74 @@
 #ifndef LIEF_DWARF_TYPE_ENUM_H
 #define LIEF_DWARF_TYPE_ENUM_H

+#include "LIEF/compiler_attributes.hpp"
 #include "LIEF/visibility.h"
+#include "LIEF/optional.hpp"
 #include "LIEF/DWARF/Type.hpp"

 namespace LIEF {
 namespace dwarf {
 namespace types {

+namespace details {
+class EnumEntry;
+}
+
 /// This class represents a `DW_TAG_enumeration_type`
 class LIEF_API Enum : public Type {
   public:
-  using Type::Type;
+  template<typename... Args,
+           typename = typename std::
+               enable_if<std::is_constructible<Type, Args&&...>::value>::type>
+  Enum(Args&&... args) :
+    Type(std::forward<Args>(args)...) {}
+
+  Enum(const Enum&) = delete;
+  Enum& operator=(const Enum&) = delete;
+
+  Enum(Enum&&) noexcept = default;
+  Enum& operator=(Enum&&) noexcept = default;
+
+  /// This class represents an enum entry which is essentially
+  /// composed of a name and its value (integer).
+  class LIEF_API Entry {
+    public:
+    Entry(std::unique_ptr<details::EnumEntry> impl);
+    Entry(Entry&& other) noexcept;
+    Entry& operator=(Entry&& other) noexcept;
+
+    Entry(const Entry&) = delete;
+    Entry& operator=(const Entry&) = delete;
+
+    /// Enum entry's name
+    std::string name() const;
+
+    /// Enum entry's value (if any)
+    optional<int64_t> value() const;
+
+    ~Entry();
+
+    private:
+    std::unique_ptr<details::EnumEntry> impl_;
+  };
+
+  /// Return the different entries associated with this enum
+  std::vector<Entry> entries() const LIEF_LIFETIMEBOUND;
+
+  /// The underlying type that is used to encode this enum
+  const Type* underlying_type() const LIEF_LIFETIMEBOUND;
+
+  /// Try to find the enum matching the given value
+  optional<Entry> find_entry(int64_t value) const LIEF_LIFETIMEBOUND;

   static bool classof(const Type* type) {
     return type->kind() == Type::KIND::ENUM;
   }

   ~Enum() override;
+
+  protected:
+  mutable std::unique_ptr<Type> underlying_;
 };

 }
diff --git a/deps/LIEF/include/LIEF/DWARF/types/File.hpp b/deps/LIEF/include/LIEF/DWARF/types/File.hpp
index acd56227720..5806c25a5ab 100644
--- a/deps/LIEF/include/LIEF/DWARF/types/File.hpp
+++ b/deps/LIEF/include/LIEF/DWARF/types/File.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -25,7 +25,17 @@ namespace types {
 /// This class represents a `DW_TAG_file_type`
 class LIEF_API File : public Type {
   public:
-  using Type::Type;
+  template<typename... Args,
+           typename = typename std::
+               enable_if<std::is_constructible<Type, Args&&...>::value>::type>
+  File(Args&&... args) :
+    Type(std::forward<Args>(args)...) {}
+
+  File(const File&) = delete;
+  File& operator=(const File&) = delete;
+
+  File(File&&) noexcept = default;
+  File& operator=(File&&) noexcept = default;

   static bool classof(const Type* type) {
     return type->kind() == Type::KIND::FILE;
diff --git a/deps/LIEF/include/LIEF/DWARF/types/Immutable.hpp b/deps/LIEF/include/LIEF/DWARF/types/Immutable.hpp
index c2a7e03aa23..d122fc38bda 100644
--- a/deps/LIEF/include/LIEF/DWARF/types/Immutable.hpp
+++ b/deps/LIEF/include/LIEF/DWARF/types/Immutable.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -15,6 +15,7 @@
 #ifndef LIEF_DWARF_TYPE_IMMUTABLE_H
 #define LIEF_DWARF_TYPE_IMMUTABLE_H

+#include "LIEF/compiler_attributes.hpp"
 #include "LIEF/visibility.h"
 #include "LIEF/DWARF/Type.hpp"

@@ -25,20 +26,30 @@ namespace types {
 /// This class represents a `DW_TAG_immutable_type`
 class LIEF_API Immutable : public Type {
   public:
-  using Type::Type;
+  template<typename... Args,
+           typename = typename std::
+               enable_if<std::is_constructible<Type, Args&&...>::value>::type>
+  Immutable(Args&&... args) :
+    Type(std::forward<Args>(args)...) {}
+
+  Immutable(const Immutable&) = delete;
+  Immutable& operator=(const Immutable&) = delete;
+
+  Immutable(Immutable&&) noexcept = default;
+  Immutable& operator=(Immutable&&) noexcept = default;

   static bool classof(const Type* type) {
     return type->kind() == Type::KIND::IMMUTABLE;
   }

   /// The underlying type
-  const Type* underlying_type() const;
+  const Type* underlying_type() const LIEF_LIFETIMEBOUND;

-  const Type* operator->() const {
+  const Type* operator->() const LIEF_LIFETIMEBOUND {
     return underlying_type();
   }

-  const Type& operator*() const {
+  const Type& operator*() const LIEF_LIFETIMEBOUND {
     return *underlying_type();
   }

diff --git a/deps/LIEF/include/LIEF/DWARF/types/Interface.hpp b/deps/LIEF/include/LIEF/DWARF/types/Interface.hpp
index 3cd00f839b0..7e5ff08e4a8 100644
--- a/deps/LIEF/include/LIEF/DWARF/types/Interface.hpp
+++ b/deps/LIEF/include/LIEF/DWARF/types/Interface.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -25,7 +25,17 @@ namespace types {
 /// This class represents a `DW_TAG_interface_type`
 class LIEF_API Interface : public Type {
   public:
-  using Type::Type;
+  template<typename... Args,
+           typename = typename std::
+               enable_if<std::is_constructible<Type, Args&&...>::value>::type>
+  Interface(Args&&... args) :
+    Type(std::forward<Args>(args)...) {}
+
+  Interface(const Interface&) = delete;
+  Interface& operator=(const Interface&) = delete;
+
+  Interface(Interface&&) noexcept = default;
+  Interface& operator=(Interface&&) noexcept = default;

   static bool classof(const Type* type) {
     return type->kind() == Type::KIND::INTERFACE;
diff --git a/deps/LIEF/include/LIEF/DWARF/types/Pointer.hpp b/deps/LIEF/include/LIEF/DWARF/types/Pointer.hpp
index f31cf92b8b4..2509fc55a4e 100644
--- a/deps/LIEF/include/LIEF/DWARF/types/Pointer.hpp
+++ b/deps/LIEF/include/LIEF/DWARF/types/Pointer.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -15,6 +15,7 @@
 #ifndef LIEF_DWARF_TYPE_POINTER_H
 #define LIEF_DWARF_TYPE_POINTER_H

+#include "LIEF/compiler_attributes.hpp"
 #include "LIEF/visibility.h"
 #include "LIEF/DWARF/Type.hpp"

@@ -25,20 +26,30 @@ namespace types {
 /// This class represents a `DW_TAG_pointer_type` DWARF type
 class LIEF_API Pointer : public Type {
   public:
-  using Type::Type;
+  template<typename... Args,
+           typename = typename std::
+               enable_if<std::is_constructible<Type, Args&&...>::value>::type>
+  Pointer(Args&&... args) :
+    Type(std::forward<Args>(args)...) {}
+
+  Pointer(const Pointer&) = delete;
+  Pointer& operator=(const Pointer&) = delete;
+
+  Pointer(Pointer&&) noexcept = default;
+  Pointer& operator=(Pointer&&) noexcept = default;

   static bool classof(const Type* type) {
     return type->kind() == Type::KIND::POINTER;
   }

   /// The type pointed by this pointer
-  const Type* underlying_type() const;
+  const Type* underlying_type() const LIEF_LIFETIMEBOUND;

-  const Type* operator->() const {
+  const Type* operator->() const LIEF_LIFETIMEBOUND {
     return underlying_type();
   }

-  const Type& operator*() const {
+  const Type& operator*() const LIEF_LIFETIMEBOUND {
     return *underlying_type();
   }

@@ -52,5 +63,3 @@ class LIEF_API Pointer : public Type {
 }
 }
 #endif
-
-
diff --git a/deps/LIEF/include/LIEF/DWARF/types/PointerToMember.hpp b/deps/LIEF/include/LIEF/DWARF/types/PointerToMember.hpp
index f8daf900669..aa3fa9c0422 100644
--- a/deps/LIEF/include/LIEF/DWARF/types/PointerToMember.hpp
+++ b/deps/LIEF/include/LIEF/DWARF/types/PointerToMember.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -15,6 +15,7 @@
 #ifndef LIEF_DWARF_TYPE_POINTER_TO_MEMBER_H
 #define LIEF_DWARF_TYPE_POINTER_TO_MEMBER_H

+#include "LIEF/compiler_attributes.hpp"
 #include "LIEF/visibility.h"
 #include "LIEF/DWARF/Type.hpp"

@@ -25,25 +26,35 @@ namespace types {
 /// This class represents a `DW_TAG_ptr_to_member_type`
 class LIEF_API PointerToMember : public Type {
   public:
-  using Type::Type;
+  template<typename... Args,
+           typename = typename std::
+               enable_if<std::is_constructible<Type, Args&&...>::value>::type>
+  PointerToMember(Args&&... args) :
+    Type(std::forward<Args>(args)...) {}
+
+  PointerToMember(const PointerToMember&) = delete;
+  PointerToMember& operator=(const PointerToMember&) = delete;
+
+  PointerToMember(PointerToMember&&) noexcept = default;
+  PointerToMember& operator=(PointerToMember&&) noexcept = default;

   static bool classof(const Type* type) {
     return type->kind() == Type::KIND::POINTER_MEMBER;
   }

   /// The type of the member referenced by this pointer
-  const Type* underlying_type() const;
+  const Type* underlying_type() const LIEF_LIFETIMEBOUND;

-  const Type* operator->() const {
+  const Type* operator->() const LIEF_LIFETIMEBOUND {
     return underlying_.get();
   }

-  const Type* operator*() const {
+  const Type* operator*() const LIEF_LIFETIMEBOUND {
     return underlying_.get();
   }

   /// The type that embeds this member
-  std::unique_ptr<Type> containing_type() const;
+  std::unique_ptr<Type> containing_type() const LIEF_LIFETIMEBOUND;

   ~PointerToMember() override;

diff --git a/deps/LIEF/include/LIEF/DWARF/types/RValueRef.hpp b/deps/LIEF/include/LIEF/DWARF/types/RValueRef.hpp
index 71dd830da2c..7e2bcf819ac 100644
--- a/deps/LIEF/include/LIEF/DWARF/types/RValueRef.hpp
+++ b/deps/LIEF/include/LIEF/DWARF/types/RValueRef.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -15,6 +15,7 @@
 #ifndef LIEF_DWARF_TYPE_RVALUE_REFERENCE_H
 #define LIEF_DWARF_TYPE_RVALUE_REFERENCE_H

+#include "LIEF/compiler_attributes.hpp"
 #include "LIEF/visibility.h"
 #include "LIEF/DWARF/Type.hpp"

@@ -25,20 +26,30 @@ namespace types {
 /// This class represents a `DW_TAG_rvalue_reference_type`
 class LIEF_API RValueReference : public Type {
   public:
-  using Type::Type;
+  template<typename... Args,
+           typename = typename std::
+               enable_if<std::is_constructible<Type, Args&&...>::value>::type>
+  RValueReference(Args&&... args) :
+    Type(std::forward<Args>(args)...) {}
+
+  RValueReference(const RValueReference&) = delete;
+  RValueReference& operator=(const RValueReference&) = delete;
+
+  RValueReference(RValueReference&&) noexcept = default;
+  RValueReference& operator=(RValueReference&&) noexcept = default;

   static bool classof(const Type* type) {
     return type->kind() == Type::KIND::RVALREF;
   }

   /// The underlying type referenced by this rvalue-type.
-  const Type* underlying_type() const;
+  const Type* underlying_type() const LIEF_LIFETIMEBOUND;

-  const Type* operator->() const {
+  const Type* operator->() const LIEF_LIFETIMEBOUND {
     return underlying_.get();
   }

-  const Type* operator*() const {
+  const Type* operator*() const LIEF_LIFETIMEBOUND {
     return underlying_.get();
   }

diff --git a/deps/LIEF/include/LIEF/DWARF/types/Reference.hpp b/deps/LIEF/include/LIEF/DWARF/types/Reference.hpp
index cee47316a57..39ba5886995 100644
--- a/deps/LIEF/include/LIEF/DWARF/types/Reference.hpp
+++ b/deps/LIEF/include/LIEF/DWARF/types/Reference.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -15,6 +15,7 @@
 #ifndef LIEF_DWARF_REFERENCE_H
 #define LIEF_DWARF_REFERENCE_H

+#include "LIEF/compiler_attributes.hpp"
 #include "LIEF/visibility.h"
 #include "LIEF/DWARF/Type.hpp"

@@ -25,20 +26,30 @@ namespace types {
 /// This class represents a `DW_TAG_reference_type`
 class LIEF_API Reference : public Type {
   public:
-  using Type::Type;
+  template<typename... Args,
+           typename = typename std::
+               enable_if<std::is_constructible<Type, Args&&...>::value>::type>
+  Reference(Args&&... args) :
+    Type(std::forward<Args>(args)...) {}
+
+  Reference(const Reference&) = delete;
+  Reference& operator=(const Reference&) = delete;
+
+  Reference(Reference&&) noexcept = default;
+  Reference& operator=(Reference&&) noexcept = default;

   static bool classof(const Type* type) {
     return type->kind() == Type::KIND::REF;
   }

   /// The underlying type referenced by this ref-type.
-  const Type* underlying_type() const;
+  const Type* underlying_type() const LIEF_LIFETIMEBOUND;

-  const Type* operator->() const {
+  const Type* operator->() const LIEF_LIFETIMEBOUND {
     return underlying_.get();
   }

-  const Type* operator*() const {
+  const Type* operator*() const LIEF_LIFETIMEBOUND {
     return underlying_.get();
   }

diff --git a/deps/LIEF/include/LIEF/DWARF/types/Restrict.hpp b/deps/LIEF/include/LIEF/DWARF/types/Restrict.hpp
index 9ece15498c0..5aee2beb1bf 100644
--- a/deps/LIEF/include/LIEF/DWARF/types/Restrict.hpp
+++ b/deps/LIEF/include/LIEF/DWARF/types/Restrict.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -15,6 +15,7 @@
 #ifndef LIEF_DWARF_RESTRICT_H
 #define LIEF_DWARF_RESTRICT_H

+#include "LIEF/compiler_attributes.hpp"
 #include "LIEF/visibility.h"
 #include "LIEF/DWARF/Type.hpp"

@@ -25,20 +26,30 @@ namespace types {
 /// This class represents a `DW_TAG_restrict_type`
 class LIEF_API Restrict : public Type {
   public:
-  using Type::Type;
+  template<typename... Args,
+           typename = typename std::
+               enable_if<std::is_constructible<Type, Args&&...>::value>::type>
+  Restrict(Args&&... args) :
+    Type(std::forward<Args>(args)...) {}
+
+  Restrict(const Restrict&) = delete;
+  Restrict& operator=(const Restrict&) = delete;
+
+  Restrict(Restrict&&) noexcept = default;
+  Restrict& operator=(Restrict&&) noexcept = default;

   static bool classof(const Type* type) {
     return type->kind() == Type::KIND::RESTRICT;
   }

   /// The underlying type referenced by this restrict-type.
-  const Type* underlying_type() const;
+  const Type* underlying_type() const LIEF_LIFETIMEBOUND;

-  const Type* operator->() const {
+  const Type* operator->() const LIEF_LIFETIMEBOUND {
     return underlying_.get();
   }

-  const Type* operator*() const {
+  const Type* operator*() const LIEF_LIFETIMEBOUND {
     return underlying_.get();
   }

diff --git a/deps/LIEF/include/LIEF/DWARF/types/SetTy.hpp b/deps/LIEF/include/LIEF/DWARF/types/SetTy.hpp
index 66dac384326..c0201ee80a4 100644
--- a/deps/LIEF/include/LIEF/DWARF/types/SetTy.hpp
+++ b/deps/LIEF/include/LIEF/DWARF/types/SetTy.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -16,6 +16,7 @@
 #define LIEF_DWARF_SET_TYPE_H

 #include "LIEF/visibility.h"
+#include "LIEF/compiler_attributes.hpp"
 #include "LIEF/DWARF/Type.hpp"

 namespace LIEF {
@@ -25,20 +26,30 @@ namespace types {
 /// This class represents a `DW_TAG_set_type`
 class LIEF_API SetTy : public Type {
   public:
-  using Type::Type;
+  template<typename... Args,
+           typename = typename std::
+               enable_if<std::is_constructible<Type, Args&&...>::value>::type>
+  SetTy(Args&&... args) :
+    Type(std::forward<Args>(args)...) {}
+
+  SetTy(const SetTy&) = delete;
+  SetTy& operator=(const SetTy&) = delete;
+
+  SetTy(SetTy&&) noexcept = default;
+  SetTy& operator=(SetTy&&) noexcept = default;

   static bool classof(const Type* type) {
     return type->kind() == Type::KIND::SET_TYPE;
   }

   /// The underlying type referenced by this set-type.
-  const Type* underlying_type() const;
+  const Type* underlying_type() const LIEF_LIFETIMEBOUND;

-  const Type* operator->() const {
+  const Type* operator->() const LIEF_LIFETIMEBOUND {
     return underlying_.get();
   }

-  const Type* operator*() const {
+  const Type* operator*() const LIEF_LIFETIMEBOUND {
     return underlying_.get();
   }

diff --git a/deps/LIEF/include/LIEF/DWARF/types/Shared.hpp b/deps/LIEF/include/LIEF/DWARF/types/Shared.hpp
index 97ef5cb5bac..f14b7046f2b 100644
--- a/deps/LIEF/include/LIEF/DWARF/types/Shared.hpp
+++ b/deps/LIEF/include/LIEF/DWARF/types/Shared.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -15,6 +15,7 @@
 #ifndef LIEF_DWARF_SHARED_TYPE_H
 #define LIEF_DWARF_SHARED_TYPE_H

+#include "LIEF/compiler_attributes.hpp"
 #include "LIEF/visibility.h"
 #include "LIEF/DWARF/Type.hpp"

@@ -25,20 +26,30 @@ namespace types {
 /// This class represents a `DW_TAG_shared_type`
 class LIEF_API Shared : public Type {
   public:
-  using Type::Type;
+  template<typename... Args,
+           typename = typename std::
+               enable_if<std::is_constructible<Type, Args&&...>::value>::type>
+  Shared(Args&&... args) :
+    Type(std::forward<Args>(args)...) {}
+
+  Shared(const Shared&) = delete;
+  Shared& operator=(const Shared&) = delete;
+
+  Shared(Shared&&) noexcept = default;
+  Shared& operator=(Shared&&) noexcept = default;

   static bool classof(const Type* type) {
     return type->kind() == Type::KIND::SHARED;
   }

   /// The underlying type referenced by this shared-type.
-  const Type* underlying_type() const;
+  const Type* underlying_type() const LIEF_LIFETIMEBOUND;

-  const Type* operator->() const {
+  const Type* operator->() const LIEF_LIFETIMEBOUND {
     return underlying_.get();
   }

-  const Type* operator*() const {
+  const Type* operator*() const LIEF_LIFETIMEBOUND {
     return underlying_.get();
   }

diff --git a/deps/LIEF/include/LIEF/DWARF/types/StringTy.hpp b/deps/LIEF/include/LIEF/DWARF/types/StringTy.hpp
index 6e514bd62d3..f4ca2066bd1 100644
--- a/deps/LIEF/include/LIEF/DWARF/types/StringTy.hpp
+++ b/deps/LIEF/include/LIEF/DWARF/types/StringTy.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -25,7 +25,17 @@ namespace types {
 /// This class represents a `DW_TAG_string_type`
 class LIEF_API StringTy : public Type {
   public:
-  using Type::Type;
+  template<typename... Args,
+           typename = typename std::
+               enable_if<std::is_constructible<Type, Args&&...>::value>::type>
+  StringTy(Args&&... args) :
+    Type(std::forward<Args>(args)...) {}
+
+  StringTy(const StringTy&) = delete;
+  StringTy& operator=(const StringTy&) = delete;
+
+  StringTy(StringTy&&) noexcept = default;
+  StringTy& operator=(StringTy&&) noexcept = default;

   static bool classof(const Type* type) {
     return type->kind() == Type::KIND::STRING;
diff --git a/deps/LIEF/include/LIEF/DWARF/types/Subroutine.hpp b/deps/LIEF/include/LIEF/DWARF/types/Subroutine.hpp
index 3a50085fca5..959070f27a0 100644
--- a/deps/LIEF/include/LIEF/DWARF/types/Subroutine.hpp
+++ b/deps/LIEF/include/LIEF/DWARF/types/Subroutine.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -16,6 +16,7 @@
 #define LIEF_DWARF_SUBROUTINE_TYPE_H

 #include "LIEF/visibility.h"
+#include "LIEF/compiler_attributes.hpp"
 #include "LIEF/DWARF/Type.hpp"

 namespace LIEF {
@@ -27,12 +28,26 @@ namespace types {
 /// This class represents a `DW_TAG_subroutine_type`
 class LIEF_API Subroutine : public Type {
   public:
-  using Type::Type;
+  template<typename... Args,
+           typename = typename std::
+               enable_if<std::is_constructible<Type, Args&&...>::value>::type>
+  Subroutine(Args&&... args) :
+    Type(std::forward<Args>(args)...) {}
+
+  Subroutine(const Subroutine&) = delete;
+  Subroutine& operator=(const Subroutine&) = delete;
+
+  Subroutine(Subroutine&&) noexcept = default;
+  Subroutine& operator=(Subroutine&&) noexcept = default;

   using parameters_t = std::vector<std::unique_ptr<Parameter>>;

+  /// Return the dwarf::Type associated with the **return type** of this
+  /// function
+  std::unique_ptr<Type> return_type() const LIEF_LIFETIMEBOUND;
+
   /// Parameters of this subroutine
-  parameters_t parameters() const;
+  parameters_t parameters() const LIEF_LIFETIMEBOUND;

   static bool classof(const Type* type) {
     return type->kind() == Type::KIND::SUBROUTINE;
diff --git a/deps/LIEF/include/LIEF/DWARF/types/TemplateAlias.hpp b/deps/LIEF/include/LIEF/DWARF/types/TemplateAlias.hpp
index 0217a0fb180..cb6b8e5e904 100644
--- a/deps/LIEF/include/LIEF/DWARF/types/TemplateAlias.hpp
+++ b/deps/LIEF/include/LIEF/DWARF/types/TemplateAlias.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -16,6 +16,7 @@
 #define LIEF_DWARF_TEMPLATE_ALIAS_H

 #include "LIEF/visibility.h"
+#include "LIEF/compiler_attributes.hpp"
 #include "LIEF/DWARF/Type.hpp"

 namespace LIEF {
@@ -27,22 +28,33 @@ namespace types {
 /// This class represents a `DW_TAG_template_alias`
 class LIEF_API TemplateAlias : public Type {
   public:
-  using Type::Type;
+  template<typename... Args,
+           typename = typename std::
+               enable_if<std::is_constructible<Type, Args&&...>::value>::type>
+  TemplateAlias(Args&&... args) :
+    Type(std::forward<Args>(args)...) {}
+
+  TemplateAlias(const TemplateAlias&) = delete;
+  TemplateAlias& operator=(const TemplateAlias&) = delete;
+
+  TemplateAlias(TemplateAlias&&) noexcept = default;
+  TemplateAlias& operator=(TemplateAlias&&) noexcept = default;
+
   using parameters_t = std::vector<std::unique_ptr<Parameter>>;

   /// The underlying type aliased by this type.
-  const Type* underlying_type() const;
+  const Type* underlying_type() const LIEF_LIFETIMEBOUND;

-  const Type* operator->() const {
+  const Type* operator->() const LIEF_LIFETIMEBOUND {
     return underlying_type();
   }

-  const Type& operator*() const {
+  const Type& operator*() const LIEF_LIFETIMEBOUND {
     return *underlying_type();
   }

   /// Parameters associated with the underlying template
-  parameters_t parameters() const;
+  parameters_t parameters() const LIEF_LIFETIMEBOUND;

   static bool classof(const Type* type) {
     return type->kind() == Type::KIND::TEMPLATE_ALIAS;
diff --git a/deps/LIEF/include/LIEF/DWARF/types/Thrown.hpp b/deps/LIEF/include/LIEF/DWARF/types/Thrown.hpp
index 2688c28c823..d02ab974909 100644
--- a/deps/LIEF/include/LIEF/DWARF/types/Thrown.hpp
+++ b/deps/LIEF/include/LIEF/DWARF/types/Thrown.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -16,6 +16,7 @@
 #define LIEF_DWARF_THROWN_TYPE_H

 #include "LIEF/visibility.h"
+#include "LIEF/compiler_attributes.hpp"
 #include "LIEF/DWARF/Type.hpp"

 namespace LIEF {
@@ -27,16 +28,26 @@ namespace types {
 /// This class represents a `DW_TAG_thrown_type`
 class LIEF_API Thrown : public Type {
   public:
-  using Type::Type;
+  template<typename... Args,
+           typename = typename std::
+               enable_if<std::is_constructible<Type, Args&&...>::value>::type>
+  Thrown(Args&&... args) :
+    Type(std::forward<Args>(args)...) {}
+
+  Thrown(const Thrown&) = delete;
+  Thrown& operator=(const Thrown&) = delete;
+
+  Thrown(Thrown&&) noexcept = default;
+  Thrown& operator=(Thrown&&) noexcept = default;

   /// The underlying type being thrown
-  const Type* underlying_type() const;
+  const Type* underlying_type() const LIEF_LIFETIMEBOUND;

-  const Type* operator->() const {
+  const Type* operator->() const LIEF_LIFETIMEBOUND {
     return underlying_type();
   }

-  const Type& operator*() const {
+  const Type& operator*() const LIEF_LIFETIMEBOUND {
     return *underlying_type();
   }

diff --git a/deps/LIEF/include/LIEF/DWARF/types/Typedef.hpp b/deps/LIEF/include/LIEF/DWARF/types/Typedef.hpp
index 0e7f28e1cb2..710e859fca3 100644
--- a/deps/LIEF/include/LIEF/DWARF/types/Typedef.hpp
+++ b/deps/LIEF/include/LIEF/DWARF/types/Typedef.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -15,6 +15,7 @@
 #ifndef LIEF_DWARF_TYPE_TYPEDEF_H
 #define LIEF_DWARF_TYPE_TYPEDEF_H

+#include "LIEF/compiler_attributes.hpp"
 #include "LIEF/visibility.h"
 #include "LIEF/DWARF/Type.hpp"

@@ -25,16 +26,26 @@ namespace types {
 /// This class represents a `DW_TAG_typedef` type
 class LIEF_API Typedef : public Type {
   public:
-  using Type::Type;
+  template<typename... Args,
+           typename = typename std::
+               enable_if<std::is_constructible<Type, Args&&...>::value>::type>
+  Typedef(Args&&... args) :
+    Type(std::forward<Args>(args)...) {}
+
+  Typedef(const Typedef&) = delete;
+  Typedef& operator=(const Typedef&) = delete;
+
+  Typedef(Typedef&&) noexcept = default;
+  Typedef& operator=(Typedef&&) noexcept = default;

   /// The type aliased by this typedef
-  const Type* underlying_type() const;
+  const Type* underlying_type() const LIEF_LIFETIMEBOUND;

-  const Type* operator->() const {
+  const Type* operator->() const LIEF_LIFETIMEBOUND {
     return underlying_type();
   }

-  const Type& operator*() const {
+  const Type& operator*() const LIEF_LIFETIMEBOUND {
     return *underlying_type();
   }

@@ -46,12 +57,9 @@ class LIEF_API Typedef : public Type {

   protected:
   mutable std::unique_ptr<Type> underlying_;
-
 };

 }
 }
 }
 #endif
-
-
diff --git a/deps/LIEF/include/LIEF/DWARF/types/Volatile.hpp b/deps/LIEF/include/LIEF/DWARF/types/Volatile.hpp
index e1fe40867fc..5c82102d994 100644
--- a/deps/LIEF/include/LIEF/DWARF/types/Volatile.hpp
+++ b/deps/LIEF/include/LIEF/DWARF/types/Volatile.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -16,6 +16,7 @@
 #define LIEF_DWARF_VOLATILE_TYPE_H

 #include "LIEF/visibility.h"
+#include "LIEF/compiler_attributes.hpp"
 #include "LIEF/DWARF/Type.hpp"

 namespace LIEF {
@@ -27,16 +28,26 @@ namespace types {
 /// This class represents a `DW_TAG_volatile_type`
 class LIEF_API Volatile : public Type {
   public:
-  using Type::Type;
+  template<typename... Args,
+           typename = typename std::
+               enable_if<std::is_constructible<Type, Args&&...>::value>::type>
+  Volatile(Args&&... args) :
+    Type(std::forward<Args>(args)...) {}

-  /// This underlying type
-  const Type* underlying_type() const;
+  Volatile(const Volatile&) = delete;
+  Volatile& operator=(const Volatile&) = delete;

-  const Type* operator->() const {
+  Volatile(Volatile&&) noexcept = default;
+  Volatile& operator=(Volatile&&) noexcept = default;
+
+  /// The underlying type
+  const Type* underlying_type() const LIEF_LIFETIMEBOUND;
+
+  const Type* operator->() const LIEF_LIFETIMEBOUND {
     return underlying_type();
   }

-  const Type& operator*() const {
+  const Type& operator*() const LIEF_LIFETIMEBOUND {
     return *underlying_type();
   }

diff --git a/deps/LIEF/include/LIEF/DebugDeclOpt.hpp b/deps/LIEF/include/LIEF/DebugDeclOpt.hpp
new file mode 100644
index 00000000000..08cd482933e
--- /dev/null
+++ b/deps/LIEF/include/LIEF/DebugDeclOpt.hpp
@@ -0,0 +1,114 @@
+/* Copyright 2022 - 2026 R. Thomas
+ *
+ * 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.
+ */
+#ifndef LIEF_DEBUG_DECL_OPT_H
+#define LIEF_DEBUG_DECL_OPT_H
+#include <cstdint>
+#include <memory>
+#include <string>
+#include <unordered_map>
+
+#include "LIEF/compiler_attributes.hpp"
+#include "LIEF/visibility.h"
+
+namespace LIEF {
+namespace details {
+class DeclOpt;
+}
+
+/// Configuration options for generated code from debug info.
+///
+/// This structure configures how the debug information (DWARF/PDB) translated
+/// into an AST is generated. You can use it to configure the indentation, and
+/// the information to generate when translating DWARF/PDB into C++-like
+/// definitions
+class LIEF_API DeclOpt {
+  public:
+  /// Mapping between a type name and a user-friendly aliases. (e.g.
+  /// ``std::basic_string<char,std::char_traits<char>,std::allocator<char>>`` ->
+  /// ``std::string``).
+  using type_aliases_t = std::unordered_map<std::string, std::string>;
+
+  DeclOpt();
+
+  DeclOpt(const DeclOpt& other);
+  DeclOpt& operator=(const DeclOpt& other);
+
+  DeclOpt(DeclOpt&& other) noexcept;
+  DeclOpt& operator=(DeclOpt&& other) noexcept;
+
+  ~DeclOpt();
+
+  /// The number of spaces for indentation.
+  uint32_t indentation() const;
+  DeclOpt& indentation(uint32_t value) LIEF_LIFETIMEBOUND;
+
+  /// Prefer C++ syntax over C syntax.
+  ///
+  /// If true, the output will use C++ features (e.g. `bool` keyword)
+  bool is_cpp() const;
+  DeclOpt& is_cpp(bool value) LIEF_LIFETIMEBOUND;
+
+  /// Enable extended comments and annotations.
+  ///
+  /// If true, the generated code will include comments containing low-level
+  /// details such as memory addresses, offsets, type sizes, and original
+  /// source locations.
+  bool show_extended_annotations() const;
+  DeclOpt& show_extended_annotations(bool value) LIEF_LIFETIMEBOUND;
+
+  /// Include full type definitions.
+  ///
+  /// If true, the output will contain the full definition of types (structs,
+  /// enums, unions).
+  bool include_types() const;
+  DeclOpt& include_types(bool value) LIEF_LIFETIMEBOUND;
+
+  /// Emit a function body listing its local / stack variables
+  bool include_locals() const;
+  DeclOpt& include_locals(bool value) LIEF_LIFETIMEBOUND;
+
+  /// Resolve type aliases (sugar).
+  ///
+  /// If true, typedef and type aliases are replaced by their underlying
+  /// canonical types (e.g., `uint32_t` might become `unsigned int`).
+  bool desugar() const;
+  DeclOpt& desugar(bool value) LIEF_LIFETIMEBOUND;
+
+  /// Show the relative offset of each field/attribute in structures.
+  ///
+  /// If true, every member of a structure is prefixed with its byte offset,
+  ///
+  /// ```cpp
+  /// struct Foo {
+  ///   /* 0x00 */ int A;
+  ///   /* 0x04 */ int B;
+  /// };
+  /// ```
+  bool show_field_offsets() const;
+  DeclOpt& show_field_offsets(bool value) LIEF_LIFETIMEBOUND;
+
+  /// Mapping of type names to user-friendly aliases
+  const type_aliases_t& type_aliases() const;
+  DeclOpt& type_aliases(type_aliases_t aliases) LIEF_LIFETIMEBOUND;
+
+  /// Register a single type alias.
+  DeclOpt& add_type_alias(std::string name, std::string alias) LIEF_LIFETIMEBOUND;
+
+  private:
+  std::unique_ptr<details::DeclOpt> impl_;
+};
+
+}
+#endif
diff --git a/deps/LIEF/include/LIEF/DyldSharedCache.hpp b/deps/LIEF/include/LIEF/DyldSharedCache.hpp
index f87a0600b58..b97bdc1218c 100644
--- a/deps/LIEF/include/LIEF/DyldSharedCache.hpp
+++ b/deps/LIEF/include/LIEF/DyldSharedCache.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/deps/LIEF/include/LIEF/DyldSharedCache/DyldSharedCache.hpp b/deps/LIEF/include/LIEF/DyldSharedCache/DyldSharedCache.hpp
index 26b9ca13044..b67c3164ba1 100644
--- a/deps/LIEF/include/LIEF/DyldSharedCache/DyldSharedCache.hpp
+++ b/deps/LIEF/include/LIEF/DyldSharedCache/DyldSharedCache.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -15,6 +15,7 @@
  */
 #ifndef LIEF_DSC_DYLD_SHARED_CACHE_H
 #define LIEF_DSC_DYLD_SHARED_CACHE_H
+#include "LIEF/compiler_attributes.hpp"
 #include "LIEF/visibility.h"
 #include "LIEF/iterators.hpp"
 #include "LIEF/DyldSharedCache/Dylib.hpp"
@@ -39,7 +40,6 @@ class DyldSharedCache;
 /// This class represents a dyld shared cache file.
 class LIEF_API DyldSharedCache {
   public:
-
   /// This enum wraps the dyld's git tags for which the structure of
   /// dyld shared cache evolved
   enum class VERSION : uint32_t {
@@ -63,23 +63,23 @@ class LIEF_API DyldSharedCache {

   /// Platforms supported by the dyld shared cache
   enum class DYLD_TARGET_PLATFORM : uint32_t {
-    UNKNOWN             = 0,
-    MACOS               = 1,
-    IOS                 = 2,
-    TVOS                = 3,
-    WATCHOS             = 4,
-    BRIDGEOS            = 5,
-    IOSMAC              = 6,
-    IOS_SIMULATOR       = 7,
-    TVOS_SIMULATOR      = 8,
-    WATCHOS_SIMULATOR   = 9,
-    DRIVERKIT           = 10,
-    VISIONOS            = 11,
-    VISIONOS_SIMULATOR  = 12,
-    FIRMWARE            = 13,
-    SEPOS               = 14,
-
-    ANY                = 0xFFFFFFFF
+    UNKNOWN = 0,
+    MACOS = 1,
+    IOS = 2,
+    TVOS = 3,
+    WATCHOS = 4,
+    BRIDGEOS = 5,
+    IOSMAC = 6,
+    IOS_SIMULATOR = 7,
+    TVOS_SIMULATOR = 8,
+    WATCHOS_SIMULATOR = 9,
+    DRIVERKIT = 10,
+    VISIONOS = 11,
+    VISIONOS_SIMULATOR = 12,
+    FIRMWARE = 13,
+    SEPOS = 14,
+
+    ANY = 0xFFFFFFFF,
   };

   /// Architecture supported by the dyld shared cache
@@ -113,16 +113,18 @@ class LIEF_API DyldSharedCache {
   DyldSharedCache(std::unique_ptr<details::DyldSharedCache> impl);
   ~DyldSharedCache();

-  /// See the \ref load functions for the details
+  /// See the @ref load functions for the details
   static std::unique_ptr<DyldSharedCache> from_path(const std::string& path,
                                                     const std::string& arch = "");

-  /// See the \ref load functions for the details
-  static std::unique_ptr<DyldSharedCache> from_files(const std::vector<std::string>& path);
+  /// See the @ref load functions for the details
+  static std::unique_ptr<DyldSharedCache>
+      from_files(const std::vector<std::string>& path);

   /// Filename of the dyld shared file associated with this object.
   ///
-  /// For instance: `dyld_shared_cache_arm64e, dyld_shared_cache_arm64e.62.dyldlinkedit`
+  /// For instance: `dyld_shared_cache_arm64e,
+  /// dyld_shared_cache_arm64e.62.dyldlinkedit`
   std::string filename() const;

   /// Version of dyld used by this cache
@@ -146,21 +148,23 @@ class LIEF_API DyldSharedCache {

   /// Find the Dylib that encompasses the given virtual address.
   /// It returns a nullptr if a Dylib can't be found.
-  std::unique_ptr<Dylib> find_lib_from_va(uint64_t va) const;
+  std::unique_ptr<Dylib> find_lib_from_va(uint64_t va) const LIEF_LIFETIMEBOUND;

   /// Find the Dylib whose Dylib::path matches the provided path.
-  std::unique_ptr<Dylib> find_lib_from_path(const std::string& path) const;
+  std::unique_ptr<Dylib>
+      find_lib_from_path(const std::string& path) const LIEF_LIFETIMEBOUND;

   /// Find the Dylib whose filename of Dylib::path matches the provided name.
   ///
   /// If multiple libraries have the same name (but with a different path),
   /// the **first one** matching the provided name is returned.
-  std::unique_ptr<Dylib> find_lib_from_name(const std::string& name) const;
+  std::unique_ptr<Dylib>
+      find_lib_from_name(const std::string& name) const LIEF_LIFETIMEBOUND;

   /// True if the subcaches are associated with this cache
   bool has_subcaches() const;

-  /// Return an interator over the libraries embedded in this dyld shared cache.
+  /// Return an iterator over the libraries embedded in this dyld shared cache.
   ///
   /// This iterator implements the *random access* trait. Thus, one can use
   /// iterator_range::size, iterator_range::at, iterator_range::operator[] to a
@@ -172,9 +176,9 @@ class LIEF_API DyldSharedCache {
   ///   std::string path = libaries[i]->path();
   /// }
   /// ```
-  dylib_iterator libraries() const;
+  dylib_iterator libraries() const LIEF_LIFETIMEBOUND;

-  /// Return an interator over the mapping information of this dyld shared cache.
+  /// Return an iterator over the mapping information of this dyld shared cache.
   ///
   /// This iterator implements the *random access* trait. Thus, one can use
   /// iterator_range::size, iterator_range::at, iterator_range::operator[] to
@@ -188,8 +192,8 @@ class LIEF_API DyldSharedCache {
   /// ```
   mapping_info_iterator mapping_info() const;

-  /// Return an interator over the subcaches associated with this (main) dyld shared
-  /// cache.
+  /// Return an iterator over the subcaches associated with this (main) dyld
+  /// shared cache.
   ///
   /// This iterator implements the *random access* trait. Thus, one can use
   /// iterator_range::size, iterator_range::at, iterator_range::operator[] to
@@ -201,37 +205,39 @@ class LIEF_API DyldSharedCache {
   ///   std::unique_ptr<DyldSharedCache> impl = subcaches[i]->cache();
   /// }
   /// ```
-  subcache_iterator subcaches() const;
+  subcache_iterator subcaches() const LIEF_LIFETIMEBOUND;

   /// Disassemble instructions at the provided virtual address.
   /// This function returns an iterator over assembly::Instruction.
-  instructions_iterator disassemble(uint64_t va) const;
+  instructions_iterator disassemble(uint64_t va) const LIEF_LIFETIMEBOUND;

   /// Return the content at the specified virtual address
   std::vector<uint8_t> get_content_from_va(uint64_t va, uint64_t size) const;

   /// Find the sub-DyldSharedCache that wraps the given virtual address
-  std::unique_ptr<DyldSharedCache> cache_for_address(uint64_t va) const;
+  std::unique_ptr<DyldSharedCache>
+      cache_for_address(uint64_t va) const LIEF_LIFETIMEBOUND;

   /// Return the principal dyld shared cache in the case of multiple subcaches
-  std::unique_ptr<DyldSharedCache> main_cache() const;
+  std::unique_ptr<DyldSharedCache> main_cache() const LIEF_LIFETIMEBOUND;

   /// Try to find the DyldSharedCache associated with the filename given
   /// in the first parameter.
-  std::unique_ptr<DyldSharedCache> find_subcache(const std::string& filename) const;
+  std::unique_ptr<DyldSharedCache>
+      find_subcache(const std::string& filename) const LIEF_LIFETIMEBOUND;

   /// Convert the given virtual address into an offset.
   ///
-  /// \warning If the shared cache contains multiple subcaches,
+  /// @warning If the shared cache contains multiple subcaches,
   ///          this function needs to be called on the targeted subcache.
   ///          See cache_for_address() to find the associated subcache.
   result<uint64_t> va_to_offset(uint64_t va) const;

   /// Return the stream associated with this dyld shared cache
-  FileStream& stream() const;
+  FileStream& stream() const LIEF_LIFETIMEBOUND;

   /// Return the stream associated with this dyld shared cache
-  FileStream& stream();
+  FileStream& stream() LIEF_LIFETIMEBOUND;

   /// When enabled, this function allows to record and to keep in *cache*,
   /// dyld shared cache information that are costly to access.
@@ -240,7 +246,8 @@ class LIEF_API DyldSharedCache {
   ///
   /// It is **highly** recommended to enable this function when processing
   /// a dyld shared cache several times or when extracting a large number of
-  /// LIEF::dsc::Dylib with enhanced extraction options (e.g. Dylib::extract_opt_t::fix_branches)
+  /// LIEF::dsc::Dylib with enhanced extraction options (e.g.
+  /// Dylib::extract_opt_t::fix_branches)
   ///
   /// One can enable caching by calling this function:
   ///
@@ -262,10 +269,10 @@ class LIEF_API DyldSharedCache {
 };

 /// Load a shared cache from a single file or from a directory specified
-/// by the \p path parameter.
+/// by the @p path parameter.
 ///
 /// In the case where multiple architectures are
-/// available in the \p path directory, the \p arch parameter can be used to
+/// available in the @p path directory, the @p arch parameter can be used to
 /// define which architecture should be prefered.
 ///
 /// **Example:**
@@ -281,8 +288,7 @@ class LIEF_API DyldSharedCache {
 /// auto cache = LIEF::dsc::load("macos-12.6/", /*arch=*/"x86_64h");
 /// ```
 inline std::unique_ptr<DyldSharedCache> load(const std::string& path,
-                                             const std::string& arch = "")
-{
+                                             const std::string& arch = "") {
   return DyldSharedCache::from_path(path, arch);
 }

@@ -295,13 +301,11 @@ inline std::unique_ptr<DyldSharedCache> load(const std::string& path,
 /// };
 /// auto cache = LIEF::dsc::load(files);
 /// ```
-inline std::unique_ptr<DyldSharedCache> load(const std::vector<std::string>& files)
-{
+inline std::unique_ptr<DyldSharedCache>
+    load(const std::vector<std::string>& files) {
   return DyldSharedCache::from_files(files);
 }

 }
 }
 #endif
-
-
diff --git a/deps/LIEF/include/LIEF/DyldSharedCache/Dylib.hpp b/deps/LIEF/include/LIEF/DyldSharedCache/Dylib.hpp
index c8eefa05359..faed59117a2 100644
--- a/deps/LIEF/include/LIEF/DyldSharedCache/Dylib.hpp
+++ b/deps/LIEF/include/LIEF/DyldSharedCache/Dylib.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -40,14 +40,14 @@ class DylibIt;
 class LIEF_API Dylib {
   public:
   /// Dylib Iterator
-  class LIEF_API Iterator :
-    public iterator_facade_base<Iterator, std::random_access_iterator_tag,
-                                std::unique_ptr<Dylib>, std::ptrdiff_t, Dylib*,
-                                std::unique_ptr<Dylib>>
-  {
+  class LIEF_API Iterator
+    : public iterator_facade_base<Iterator, std::random_access_iterator_tag, Dylib,
+                                  std::ptrdiff_t, const Dylib*, const Dylib&> {
     public:
     using implementation = details::DylibIt;

+    Iterator();
+
     Iterator(std::unique_ptr<details::DylibIt> impl);
     Iterator(const Iterator&);
     Iterator& operator=(const Iterator&);
@@ -69,11 +69,22 @@ class LIEF_API Dylib {
       return !(LHS == RHS);
     }

-    std::unique_ptr<Dylib> operator*() const;
+    const Dylib& operator*() const LIEF_LIFETIMEBOUND;
+
+    // NOLINTNEXTLINE(bugprone-derived-method-shadowing-base-method)
+    const Dylib* operator->() const LIEF_LIFETIMEBOUND;
+
+    /// Transfer ownership of the dylib at the current position to the
+    /// caller. Returns `nullptr` if the iterator is past-the-end.
+    std::unique_ptr<Dylib> yield();

     private:
+    void load() const;
+
     std::unique_ptr<details::DylibIt> impl_;
+    mutable std::unique_ptr<Dylib> cached_;
   };
+
   public:
   /// This structure is used to tweak the extraction process while calling
   /// Dylib::get. These options allow to deoptimize the dylib and get an
@@ -84,29 +95,32 @@ class LIEF_API Dylib {
     /// Whether the segment's offsets should be packed to avoid
     /// an in-memory size while writing back the binary.
     ///
-    /// \note This option does not have an impact on the performances
+    /// @note This option does not have an impact on the performances
     bool pack = true;

     /// Fix call instructions that target addresses outside the current dylib
     /// virtual space.
     ///
-    /// \warning Enabling this option can have a significant impact on the
+    /// @warning Enabling this option can have a significant impact on the
     ///          performances. Make sure to enable the internal cache mechanism:
-    ///          LIEF::dsc::enable_cache or LIEF::dsc::DyldSharedCache::enable_caching
+    ///          LIEF::dsc::enable_cache or
+    ///          LIEF::dsc::DyldSharedCache::enable_caching
     bool fix_branches = false;

     /// Fix memory accesses performed outside the dylib's virtual space
     ///
-    /// \warning Enabling this option can have a significant impact on the
+    /// @warning Enabling this option can have a significant impact on the
     ///          performances. Make sure to enable the internal cache mechanism:
-    ///          LIEF::dsc::enable_cache or LIEF::dsc::DyldSharedCache::enable_caching
+    ///          LIEF::dsc::enable_cache or
+    ///          LIEF::dsc::DyldSharedCache::enable_caching
     bool fix_memory = false;

     /// Recover and fix relocations
     ///
-    /// \warning Enabling this option can have a significant impact on the
+    /// @warning Enabling this option can have a significant impact on the
     ///          performances. Make sure to enable the internal cache mechanism:
-    ///          LIEF::dsc::enable_cache or LIEF::dsc::DyldSharedCache::enable_caching
+    ///          LIEF::dsc::enable_cache or
+    ///          LIEF::dsc::DyldSharedCache::enable_caching
     bool fix_relocations = false;

     /// Fix Objective-C information
@@ -147,7 +161,8 @@ class LIEF_API Dylib {
   /// ```cpp
   /// dyld_cache->libraries()[12]->get()->write("liblockdown.dylib");
   /// ```
-  std::unique_ptr<LIEF::MachO::Binary> get(const extract_opt_t& opt = extract_opt_t()) const;
+  std::unique_ptr<LIEF::MachO::Binary>
+      get(const extract_opt_t& opt = extract_opt_t()) const;

   private:
   std::unique_ptr<details::Dylib> impl_;
diff --git a/deps/LIEF/include/LIEF/DyldSharedCache/MappingInfo.hpp b/deps/LIEF/include/LIEF/DyldSharedCache/MappingInfo.hpp
index 22d1c0e16b2..25eace02f44 100644
--- a/deps/LIEF/include/LIEF/DyldSharedCache/MappingInfo.hpp
+++ b/deps/LIEF/include/LIEF/DyldSharedCache/MappingInfo.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -15,6 +15,7 @@
  */
 #ifndef LIEF_DSC_MAPPING_INFO_H
 #define LIEF_DSC_MAPPING_INFO_H
+#include "LIEF/compiler_attributes.hpp"
 #include "LIEF/visibility.h"
 #include "LIEF/iterators.hpp"

@@ -31,19 +32,20 @@ class MappingInfoIt;

 /// This class represents a `dyld_cache_mapping_info` entry.
 ///
-/// It provides information about the relationshiop between on-disk shared cache
+/// It provides information about the relationship between on-disk shared cache
 /// and in-memory shared cache.
 class LIEF_API MappingInfo {
   public:
   /// MappingInfo Iterator
-  class LIEF_API Iterator :
-    public iterator_facade_base<Iterator, std::random_access_iterator_tag,
-                                std::unique_ptr<MappingInfo>, std::ptrdiff_t, MappingInfo*,
-                                std::unique_ptr<MappingInfo>>
-  {
+  class LIEF_API Iterator
+    : public iterator_facade_base<Iterator, std::random_access_iterator_tag,
+                                  MappingInfo, std::ptrdiff_t, const MappingInfo*,
+                                  const MappingInfo&> {
     public:
     using implementation = details::MappingInfoIt;

+    Iterator();
+
     Iterator(std::unique_ptr<details::MappingInfoIt> impl);
     Iterator(const Iterator&);
     Iterator& operator=(const Iterator&);
@@ -65,10 +67,20 @@ class LIEF_API MappingInfo {
       return !(LHS == RHS);
     }

-    std::unique_ptr<MappingInfo> operator*() const;
+    const MappingInfo& operator*() const LIEF_LIFETIMEBOUND;
+
+    // NOLINTNEXTLINE(bugprone-derived-method-shadowing-base-method)
+    const MappingInfo* operator->() const LIEF_LIFETIMEBOUND;
+
+    /// Transfer ownership of the mapping info at the current position to
+    /// the caller. Returns `nullptr` if the iterator is past-the-end.
+    std::unique_ptr<MappingInfo> yield();

     private:
+    void load() const;
+
     std::unique_ptr<details::MappingInfoIt> impl_;
+    mutable std::unique_ptr<MappingInfo> cached_;
   };

   MappingInfo(std::unique_ptr<details::MappingInfo> impl);
diff --git a/deps/LIEF/include/LIEF/DyldSharedCache/SubCache.hpp b/deps/LIEF/include/LIEF/DyldSharedCache/SubCache.hpp
index 966e4a85037..d3cd9ba9ced 100644
--- a/deps/LIEF/include/LIEF/DyldSharedCache/SubCache.hpp
+++ b/deps/LIEF/include/LIEF/DyldSharedCache/SubCache.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -15,6 +15,7 @@
  */
 #ifndef LIEF_DSC_SUBCACHE_H
 #define LIEF_DSC_SUBCACHE_H
+#include "LIEF/compiler_attributes.hpp"
 #include "LIEF/visibility.h"
 #include "LIEF/iterators.hpp"
 #include "LIEF/DyldSharedCache/uuid.hpp"
@@ -34,20 +35,20 @@ class SubCacheIt;
 /// This class represents a subcache in the case of large/split dyld shared
 /// cache.
 ///
-/// It mirror (and abstracts) the original `dyld_subcache_entry` / `dyld_subcache_entry_v1`
+/// It mirrors (and abstracts) the original `dyld_subcache_entry` /
+/// `dyld_subcache_entry_v1`
 class LIEF_API SubCache {
   public:
   /// SubCache Iterator
-  class LIEF_API Iterator :
-    public iterator_facade_base<Iterator, std::random_access_iterator_tag,
-                                std::unique_ptr<SubCache>, std::ptrdiff_t, SubCache*,
-                                std::unique_ptr<SubCache>
-
-    >
-  {
+  class LIEF_API Iterator
+    : public iterator_facade_base<Iterator, std::random_access_iterator_tag,
+                                  SubCache, std::ptrdiff_t, const SubCache*,
+                                  const SubCache&> {
     public:
     using implementation = details::SubCacheIt;

+    Iterator();
+
     Iterator(std::unique_ptr<details::SubCacheIt> impl);
     Iterator(const Iterator&);
     Iterator& operator=(const Iterator&);
@@ -69,10 +70,20 @@ class LIEF_API SubCache {
       return !(LHS == RHS);
     }

-    std::unique_ptr<SubCache> operator*() const;
+    const SubCache& operator*() const LIEF_LIFETIMEBOUND;
+
+    // NOLINTNEXTLINE(bugprone-derived-method-shadowing-base-method)
+    const SubCache* operator->() const LIEF_LIFETIMEBOUND;
+
+    /// Transfer ownership of the subcache at the current position to the
+    /// caller. Returns `nullptr` if the iterator is past-the-end.
+    std::unique_ptr<SubCache> yield();

     private:
+    void load() const;
+
     std::unique_ptr<details::SubCacheIt> impl_;
+    mutable std::unique_ptr<SubCache> cached_;
   };

   public:
@@ -85,14 +96,15 @@ class LIEF_API SubCache {
   /// The offset of this subcache from the main cache base address
   uint64_t vm_offset() const;

-  /// The file name suffix of the subCache file (e.g. `.25.data`, `.03.development`)
+  /// The file name suffix of the subCache file (e.g. `.25.data`,
+  /// `.03.development`)
   std::string suffix() const;

   /// The associated DyldSharedCache object for this subcache
-  std::unique_ptr<const DyldSharedCache> cache() const;
+  std::unique_ptr<const DyldSharedCache> cache() const LIEF_LIFETIMEBOUND;

-  friend LIEF_API
-    std::ostream& operator<<(std::ostream& os, const SubCache& subcache);
+  friend LIEF_API std::ostream& operator<<(std::ostream& os,
+                                           const SubCache& subcache);

   private:
   std::unique_ptr<details::SubCache> impl_;
diff --git a/deps/LIEF/include/LIEF/DyldSharedCache/caching.hpp b/deps/LIEF/include/LIEF/DyldSharedCache/caching.hpp
index 81600feb8a0..e057faf294b 100644
--- a/deps/LIEF/include/LIEF/DyldSharedCache/caching.hpp
+++ b/deps/LIEF/include/LIEF/DyldSharedCache/caching.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -35,7 +35,8 @@ namespace dsc {
 /// directory (in this priority):
 ///
 /// 1. System or user cache directory
-///   - macOS: `DARWIN_USER_TEMP_DIR` / `DARWIN_USER_CACHE_DIR` + `/dyld_shared_cache`
+///   - macOS: `DARWIN_USER_TEMP_DIR` / `DARWIN_USER_CACHE_DIR` +
+///   `/dyld_shared_cache`
 ///   - Linux: `${XDG_CACHE_HOME}/dyld_shared_cache`
 ///   - Windows: `%LOCALAPPDATA%\dyld_shared_cache`
 /// 2. Home directory
@@ -43,7 +44,7 @@ namespace dsc {
 ///   - Windows: `%USERPROFILE%\.dyld_shared_cache`
 ///
 ///
-/// \see LIEF::dsc::DyldSharedCache::enable_caching for a finer granularity
+/// @see LIEF::dsc::DyldSharedCache::enable_caching for a finer granularity
 LIEF_API bool enable_cache();

 /// Same behavior as enable_cache() but with a
@@ -52,4 +53,3 @@ LIEF_API bool enable_cache(const std::string& dir);
 }
 }
 #endif
-
diff --git a/deps/LIEF/include/LIEF/DyldSharedCache/utils.hpp b/deps/LIEF/include/LIEF/DyldSharedCache/utils.hpp
index d143e018caf..adb59becf8e 100644
--- a/deps/LIEF/include/LIEF/DyldSharedCache/utils.hpp
+++ b/deps/LIEF/include/LIEF/DyldSharedCache/utils.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/deps/LIEF/include/LIEF/DyldSharedCache/uuid.hpp b/deps/LIEF/include/LIEF/DyldSharedCache/uuid.hpp
index c32002999f9..074792e9a3c 100644
--- a/deps/LIEF/include/LIEF/DyldSharedCache/uuid.hpp
+++ b/deps/LIEF/include/LIEF/DyldSharedCache/uuid.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/deps/LIEF/include/LIEF/ELF.hpp b/deps/LIEF/include/LIEF/ELF.hpp
index fccdea0240b..778e33d3d5c 100644
--- a/deps/LIEF/include/LIEF/ELF.hpp
+++ b/deps/LIEF/include/LIEF/ELF.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -18,35 +18,37 @@
 #include "LIEF/config.h"

 #if defined(LIEF_ELF_SUPPORT)
-#include "LIEF/ELF/hash.hpp"
-#include "LIEF/ELF/utils.hpp"
-#include "LIEF/ELF/enums.hpp"
+  #include "LIEF/ELF/hash.hpp"
+  #include "LIEF/ELF/utils.hpp"
+  #include "LIEF/ELF/enums.hpp"

-#include "LIEF/ELF/Parser.hpp"
-#include "LIEF/ELF/Header.hpp"
-#include "LIEF/ELF/Section.hpp"
-#include "LIEF/ELF/Binary.hpp"
-#include "LIEF/ELF/Segment.hpp"
-#include "LIEF/ELF/Builder.hpp"
-#include "LIEF/ELF/EnumToString.hpp"
-#include "LIEF/ELF/Relocation.hpp"
-#include "LIEF/ELF/DynamicEntryArray.hpp"
-#include "LIEF/ELF/DynamicEntryFlags.hpp"
-#include "LIEF/ELF/DynamicEntry.hpp"
-#include "LIEF/ELF/DynamicEntryLibrary.hpp"
-#include "LIEF/ELF/DynamicEntryRpath.hpp"
-#include "LIEF/ELF/DynamicEntryRunPath.hpp"
-#include "LIEF/ELF/DynamicSharedObject.hpp"
-#include "LIEF/ELF/GnuHash.hpp"
-#include "LIEF/ELF/Note.hpp"
-#include "LIEF/ELF/NoteDetails.hpp"
-#include "LIEF/ELF/Symbol.hpp"
-#include "LIEF/ELF/SymbolVersion.hpp"
-#include "LIEF/ELF/SymbolVersionAux.hpp"
-#include "LIEF/ELF/SymbolVersionAuxRequirement.hpp"
-#include "LIEF/ELF/SymbolVersionDefinition.hpp"
-#include "LIEF/ELF/SymbolVersionRequirement.hpp"
-#include "LIEF/ELF/SysvHash.hpp"
+  #include "LIEF/ELF/Parser.hpp"
+  #include "LIEF/ELF/Header.hpp"
+  #include "LIEF/ELF/Section.hpp"
+  #include "LIEF/ELF/Binary.hpp"
+  #include "LIEF/ELF/Segment.hpp"
+  #include "LIEF/ELF/Builder.hpp"
+  #include "LIEF/ELF/EnumToString.hpp"
+  #include "LIEF/ELF/Relocation.hpp"
+  #include "LIEF/ELF/DynamicEntryArray.hpp"
+  #include "LIEF/ELF/DynamicEntryFlags.hpp"
+  #include "LIEF/ELF/DynamicEntry.hpp"
+  #include "LIEF/ELF/DynamicEntryLibrary.hpp"
+  #include "LIEF/ELF/DynamicEntryRpath.hpp"
+  #include "LIEF/ELF/DynamicEntryRunPath.hpp"
+  #include "LIEF/ELF/DynamicSharedObject.hpp"
+  #include "LIEF/ELF/DynamicEntryFilter.hpp"
+  #include "LIEF/ELF/DynamicEntryAuxiliary.hpp"
+  #include "LIEF/ELF/GnuHash.hpp"
+  #include "LIEF/ELF/Note.hpp"
+  #include "LIEF/ELF/NoteDetails.hpp"
+  #include "LIEF/ELF/Symbol.hpp"
+  #include "LIEF/ELF/SymbolVersion.hpp"
+  #include "LIEF/ELF/SymbolVersionAux.hpp"
+  #include "LIEF/ELF/SymbolVersionAuxRequirement.hpp"
+  #include "LIEF/ELF/SymbolVersionDefinition.hpp"
+  #include "LIEF/ELF/SymbolVersionRequirement.hpp"
+  #include "LIEF/ELF/SysvHash.hpp"

 #endif

diff --git a/deps/LIEF/include/LIEF/ELF/Binary.hpp b/deps/LIEF/include/LIEF/ELF/Binary.hpp
index 4dc44e8fbd6..30410dd84ea 100644
--- a/deps/LIEF/include/LIEF/ELF/Binary.hpp
+++ b/deps/LIEF/include/LIEF/ELF/Binary.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -19,6 +19,7 @@
 #include <vector>
 #include <memory>

+#include "LIEF/compiler_attributes.hpp"
 #include "LIEF/visibility.h"
 #include "LIEF/errors.hpp"
 #include "LIEF/iterators.hpp"
@@ -64,7 +65,7 @@ class LIEF_API Binary : public LIEF::Binary {
   friend class ObjectFileLayout;

   public:
-  using string_list_t  = std::vector<std::string>;
+  using string_list_t = std::vector<std::string>;

   /// Internal container for storing notes
   using notes_t = std::vector<std::unique_ptr<Note>>;
@@ -76,22 +77,30 @@ class LIEF_API Binary : public LIEF::Binary {
   using it_const_notes = const_ref_iterator<const notes_t&, const Note*>;

   /// Internal container for storing SymbolVersionRequirement
-  using symbols_version_requirement_t = std::vector<std::unique_ptr<SymbolVersionRequirement>>;
+  using symbols_version_requirement_t =
+      std::vector<std::unique_ptr<SymbolVersionRequirement>>;

   /// Iterator which outputs SymbolVersionRequirement& object
-  using it_symbols_version_requirement = ref_iterator<symbols_version_requirement_t&, SymbolVersionRequirement*>;
+  using it_symbols_version_requirement =
+      ref_iterator<symbols_version_requirement_t&, SymbolVersionRequirement*>;

   /// Iterator which outputs const SymbolVersionRequirement& object
-  using it_const_symbols_version_requirement = const_ref_iterator<const symbols_version_requirement_t&, const SymbolVersionRequirement*>;
+  using it_const_symbols_version_requirement =
+      const_ref_iterator<const symbols_version_requirement_t&,
+                         const SymbolVersionRequirement*>;

   /// Internal container for storing SymbolVersionDefinition
-  using symbols_version_definition_t = std::vector<std::unique_ptr<SymbolVersionDefinition>>;
+  using symbols_version_definition_t =
+      std::vector<std::unique_ptr<SymbolVersionDefinition>>;

   /// Iterator which outputs SymbolVersionDefinition& object
-  using it_symbols_version_definition       = ref_iterator<symbols_version_definition_t&, SymbolVersionDefinition*>;
+  using it_symbols_version_definition =
+      ref_iterator<symbols_version_definition_t&, SymbolVersionDefinition*>;

   /// Iterator which outputs const SymbolVersionDefinition& object
-  using it_const_symbols_version_definition = const_ref_iterator<const symbols_version_definition_t&, const SymbolVersionDefinition*>;
+  using it_const_symbols_version_definition =
+      const_ref_iterator<const symbols_version_definition_t&,
+                         const SymbolVersionDefinition*>;

   /// Internal container for storing ELF's Segment
   using segments_t = std::vector<std::unique_ptr<Segment>>;
@@ -109,7 +118,8 @@ class LIEF_API Binary : public LIEF::Binary {
   using it_dynamic_entries = ref_iterator<dynamic_entries_t&, DynamicEntry*>;

   /// Iterator which outputs const DynamicEntry& object
-  using it_const_dynamic_entries = const_ref_iterator<const dynamic_entries_t&, const DynamicEntry*>;
+  using it_const_dynamic_entries =
+      const_ref_iterator<const dynamic_entries_t&, const DynamicEntry*>;

   /// Internal container for storing ELF's SymbolVersion
   using symbols_version_t = std::vector<std::unique_ptr<SymbolVersion>>;
@@ -118,7 +128,8 @@ class LIEF_API Binary : public LIEF::Binary {
   using it_symbols_version = ref_iterator<symbols_version_t&, SymbolVersion*>;

   /// Iterator which outputs const SymbolVersion& object
-  using it_const_symbols_version = const_ref_iterator<const symbols_version_t&, const SymbolVersion*>;
+  using it_const_symbols_version =
+      const_ref_iterator<const symbols_version_t&, const SymbolVersion*>;

   /// Internal container for storing ELF's Relocation
   using relocations_t = std::vector<std::unique_ptr<Relocation>>;
@@ -127,25 +138,31 @@ class LIEF_API Binary : public LIEF::Binary {
   using it_pltgot_relocations = filter_iterator<relocations_t&, Relocation*>;

   /// Iterator which outputs plt/got const Relocation& object
-  using it_const_pltgot_relocations = const_filter_iterator<const relocations_t&, const Relocation*>;
+  using it_const_pltgot_relocations =
+      const_filter_iterator<const relocations_t&, const Relocation*>;

-  /// Iterator which outputs dynamic Relocation& object (not related to the PLT/GOT mechanism)
+  /// Iterator which outputs dynamic Relocation& object (not related to the PLT/GOT
+  /// mechanism)
   using it_dynamic_relocations = filter_iterator<relocations_t&, Relocation*>;

-  /// Iterator which outputs dynamic const Relocation& object (not related to the PLT/GOT mechanism)
-  using it_const_dynamic_relocations = const_filter_iterator<const relocations_t&, const Relocation*>;
+  /// Iterator which outputs dynamic const Relocation& object (not related to the
+  /// PLT/GOT mechanism)
+  using it_const_dynamic_relocations =
+      const_filter_iterator<const relocations_t&, const Relocation*>;

   /// Iterator which outputs Relocation& object found in object files (.o)
   using it_object_relocations = filter_iterator<relocations_t&, Relocation*>;

   /// Iterator which outputs const Relocation& object found in object files (.o)
-  using it_const_object_relocations = const_filter_iterator<const relocations_t&, const Relocation*>;
+  using it_const_object_relocations =
+      const_filter_iterator<const relocations_t&, const Relocation*>;

   /// Iterator which outputs Relocation& object
   using it_relocations = ref_iterator<relocations_t&, Relocation*>;

   /// Iterator which outputs const Relocation& object
-  using it_const_relocations = const_ref_iterator<const relocations_t&, const Relocation*>;
+  using it_const_relocations =
+      const_ref_iterator<const relocations_t&, const Relocation*>;

   /// Internal container for storing ELF's Symbol
   using symbols_t = std::vector<std::unique_ptr<Symbol>>;
@@ -154,13 +171,15 @@ class LIEF_API Binary : public LIEF::Binary {
   using it_dynamic_symbols = ref_iterator<symbols_t&, Symbol*>;

   /// Iterator which outputs the Dynamic const Symbol& object
-  using it_const_dynamic_symbols = const_ref_iterator<const symbols_t&, const Symbol*>;
+  using it_const_dynamic_symbols =
+      const_ref_iterator<const symbols_t&, const Symbol*>;

   /// Iterator which outputs the static/debug Symbol& object
   using it_symtab_symbols = ref_iterator<symbols_t&, Symbol*>;

   /// Iterator which outputs the static/debug const Symbol& object
-  using it_const_symtab_symbols = const_ref_iterator<const symbols_t&, const Symbol*>;
+  using it_const_symtab_symbols =
+      const_ref_iterator<const symbols_t&, const Symbol*>;

   /// Iterator which outputs static and dynamic Symbol& object
   using it_symbols = ref_iterator<std::vector<Symbol*>>;
@@ -243,7 +262,7 @@ class LIEF_API Binary : public LIEF::Binary {
   };

   public:
-  Binary& operator=(const Binary& ) = delete;
+  Binary& operator=(const Binary&) = delete;
   Binary(const Binary& copy) = delete;

   /// Return binary's class (ELF32 or ELF64)
@@ -252,11 +271,11 @@ class LIEF_API Binary : public LIEF::Binary {
   }

   /// Return @link ELF::Header Elf header @endlink
-  Header& header() {
+  Header& header() LIEF_LIFETIMEBOUND {
     return header_;
   }

-  const Header& header() const {
+  const Header& header() const LIEF_LIFETIMEBOUND {
     return header_;
   }

@@ -272,11 +291,11 @@ class LIEF_API Binary : public LIEF::Binary {
   uint64_t next_virtual_address() const;

   /// Return an iterator over the binary's sections
-  it_sections sections() {
+  it_sections sections() LIEF_LIFETIMEBOUND {
     return sections_;
   }

-  it_const_sections sections() const {
+  it_const_sections sections() const LIEF_LIFETIMEBOUND {
     return sections_;
   }

@@ -286,28 +305,28 @@ class LIEF_API Binary : public LIEF::Binary {
   }

   /// Return binary's segments
-  it_segments segments() {
+  it_segments segments() LIEF_LIFETIMEBOUND {
     return segments_;
   }

-  it_const_segments segments() const {
+  it_const_segments segments() const LIEF_LIFETIMEBOUND {
     return segments_;
   }

   /// Return binary's dynamic entries
-  it_dynamic_entries dynamic_entries() {
+  it_dynamic_entries dynamic_entries() LIEF_LIFETIMEBOUND {
     return dynamic_entries_;
   }

-  it_const_dynamic_entries dynamic_entries() const {
+  it_const_dynamic_entries dynamic_entries() const LIEF_LIFETIMEBOUND {
     return dynamic_entries_;
   }

   /// Add the given dynamic entry and return the new entry
-  DynamicEntry& add(const DynamicEntry& entry);
+  DynamicEntry& add(const DynamicEntry& entry) LIEF_LIFETIMEBOUND;

   /// Add the given note and return the created entry
-  Note& add(const Note& note);
+  Note& add(const Note& note) LIEF_LIFETIMEBOUND;

   /// Remove the given dynamic entry
   void remove(const DynamicEntry& entry);
@@ -328,131 +347,143 @@ class LIEF_API Binary : public LIEF::Binary {
   /// Remove **all** notes with the given type
   void remove(Note::TYPE type);

-  /// Remove the given segment. If \p clear is set, the original content of the
+  /// Remove the given segment. If @p clear is set, the original content of the
   /// segment will be filled with zeros before removal.
   void remove(const Segment& seg, bool clear = false);

   /// Remove all segments associated with the given type.
   ///
-  /// If \p clear is set, the original content of the segment will be filled
+  /// If @p clear is set, the original content of the segment will be filled
   /// with zeros before removal.
   void remove(Segment::TYPE type, bool clear = false);

   /// Return an iterator over the binary's dynamic symbols
   /// The dynamic symbols are those located in the ``.dynsym`` section
-  it_dynamic_symbols dynamic_symbols() {
+  it_dynamic_symbols dynamic_symbols() LIEF_LIFETIMEBOUND {
     return dynamic_symbols_;
   }

-  it_const_dynamic_symbols dynamic_symbols() const {
+  it_const_dynamic_symbols dynamic_symbols() const LIEF_LIFETIMEBOUND {
     return dynamic_symbols_;
   }

   /// Return symbols which are exported by the binary
-  it_exported_symbols       exported_symbols();
-  it_const_exported_symbols exported_symbols() const;
+  it_exported_symbols exported_symbols() LIEF_LIFETIMEBOUND;
+  it_const_exported_symbols exported_symbols() const LIEF_LIFETIMEBOUND;

   /// Return symbols which are imported by the binary
-  it_imported_symbols       imported_symbols();
-  it_const_imported_symbols imported_symbols() const;
+  it_imported_symbols imported_symbols() LIEF_LIFETIMEBOUND;
+  it_const_imported_symbols imported_symbols() const LIEF_LIFETIMEBOUND;

   /// Return the debug symbols from the `.symtab` section.
-  it_symtab_symbols symtab_symbols() {
+  it_symtab_symbols symtab_symbols() LIEF_LIFETIMEBOUND {
     return symtab_symbols_;
   }

-  it_const_symtab_symbols symtab_symbols() const {
+  it_const_symtab_symbols symtab_symbols() const LIEF_LIFETIMEBOUND {
     return symtab_symbols_;
   }

   /// Return the symbol versions
-  it_symbols_version symbols_version() {
+  it_symbols_version symbols_version() LIEF_LIFETIMEBOUND {
     return symbol_version_table_;
   }
-  it_const_symbols_version symbols_version() const {
+  it_const_symbols_version symbols_version() const LIEF_LIFETIMEBOUND {
     return symbol_version_table_;
   }

   /// Return symbols version definition
-  it_symbols_version_definition symbols_version_definition() {
+  it_symbols_version_definition symbols_version_definition() LIEF_LIFETIMEBOUND {
     return symbol_version_definition_;
   }

-  it_const_symbols_version_definition symbols_version_definition() const {
+  it_const_symbols_version_definition
+      symbols_version_definition() const LIEF_LIFETIMEBOUND {
     return symbol_version_definition_;
   }

   /// Return Symbol version requirement
-  it_symbols_version_requirement symbols_version_requirement() {
+  it_symbols_version_requirement symbols_version_requirement() LIEF_LIFETIMEBOUND {
     return symbol_version_requirements_;
   }

-  it_const_symbols_version_requirement symbols_version_requirement() const {
+  it_const_symbols_version_requirement
+      symbols_version_requirement() const LIEF_LIFETIMEBOUND {
     return symbol_version_requirements_;
   }

   /// Return dynamic relocations
-  it_dynamic_relocations       dynamic_relocations();
-  it_const_dynamic_relocations dynamic_relocations() const;
+  it_dynamic_relocations dynamic_relocations() LIEF_LIFETIMEBOUND;
+  it_const_dynamic_relocations dynamic_relocations() const LIEF_LIFETIMEBOUND;

   /// Add a new *dynamic* relocation.
   ///
   /// We consider a dynamic relocation as a relocation which is not plt-related
   ///
   /// See: add_pltgot_relocation
-  Relocation& add_dynamic_relocation(const Relocation& relocation);
+  Relocation&
+      add_dynamic_relocation(const Relocation& relocation) LIEF_LIFETIMEBOUND;

   /// Add a .plt.got relocation. This kind of relocation is usually
   /// associated with a PLT stub that aims at resolving the underlying symbol
   ///
   /// See also: add_dynamic_relocation
-  Relocation& add_pltgot_relocation(const Relocation& relocation);
+  Relocation&
+      add_pltgot_relocation(const Relocation& relocation) LIEF_LIFETIMEBOUND;

   /// Add relocation for object file (.o)
   ///
   /// The first parameter is the section to add while the second parameter
   /// is the LIEF::ELF::Section associated with the relocation.
   ///
-  /// If there is an error, this function returns a ``nullptr``. Otherwise, it returns
-  /// the relocation added.
-  Relocation* add_object_relocation(const Relocation& relocation, const Section& section);
+  /// If there is an error, this function returns a ``nullptr``. Otherwise, it
+  /// returns the relocation added.
+  Relocation* add_object_relocation(const Relocation& relocation,
+                                    const Section& section) LIEF_LIFETIMEBOUND;

   /// Return `plt.got` relocations
-  it_pltgot_relocations       pltgot_relocations();
-  it_const_pltgot_relocations pltgot_relocations() const;
+  it_pltgot_relocations pltgot_relocations() LIEF_LIFETIMEBOUND;
+  it_const_pltgot_relocations pltgot_relocations() const LIEF_LIFETIMEBOUND;

   /// Return relocations used in an object file (``*.o``)
-  it_object_relocations       object_relocations();
-  it_const_object_relocations object_relocations() const;
+  it_object_relocations object_relocations() LIEF_LIFETIMEBOUND;
+  it_const_object_relocations object_relocations() const LIEF_LIFETIMEBOUND;

   /// Return **all** relocations present in the binary
-  it_relocations relocations() {
+  it_relocations relocations() LIEF_LIFETIMEBOUND {
     return relocations_;
   }

-  it_const_relocations relocations() const {
+  it_const_relocations relocations() const LIEF_LIFETIMEBOUND {
     return relocations_;
   }

   /// Return relocation associated with the given address.
   /// It returns a ``nullptr`` if it is not found
-  const Relocation* get_relocation(uint64_t address) const;
-  Relocation* get_relocation(uint64_t address) {
-    return const_cast<Relocation*>(static_cast<const Binary*>(this)->get_relocation(address));
+  const Relocation* get_relocation(uint64_t address) const LIEF_LIFETIMEBOUND;
+  Relocation* get_relocation(uint64_t address) LIEF_LIFETIMEBOUND {
+    return const_cast<Relocation*>(
+        static_cast<const Binary*>(this)->get_relocation(address)
+    );
   }

   /// Return relocation associated with the given Symbol
   /// It returns a ``nullptr`` if it is not found
-  const Relocation* get_relocation(const Symbol& symbol) const;
-  Relocation* get_relocation(const Symbol& symbol) {
-    return const_cast<Relocation*>(static_cast<const Binary*>(this)->get_relocation(symbol));
+  const Relocation* get_relocation(const Symbol& symbol) const LIEF_LIFETIMEBOUND;
+  Relocation* get_relocation(const Symbol& symbol) LIEF_LIFETIMEBOUND {
+    return const_cast<Relocation*>(
+        static_cast<const Binary*>(this)->get_relocation(symbol)
+    );
   }

   /// Return relocation associated with the given Symbol name
   /// It returns a ``nullptr`` if it is not found
-  const Relocation* get_relocation(const std::string& symbol_name) const;
-  Relocation* get_relocation(const std::string& symbol_name) {
-    return const_cast<Relocation*>(static_cast<const Binary*>(this)->get_relocation(symbol_name));
+  const Relocation*
+      get_relocation(const std::string& symbol_name) const LIEF_LIFETIMEBOUND;
+  Relocation* get_relocation(const std::string& symbol_name) LIEF_LIFETIMEBOUND {
+    return const_cast<Relocation*>(
+        static_cast<const Binary*>(this)->get_relocation(symbol_name)
+    );
   }

   /// ``true`` if GNU hash is used
@@ -464,7 +495,7 @@ class LIEF_API Binary : public LIEF::Binary {

   /// Return the GnuHash object in **readonly**
   /// If the ELF binary does not use the GNU hash table, return a nullptr
-  const GnuHash* gnu_hash() const {
+  const GnuHash* gnu_hash() const LIEF_LIFETIMEBOUND {
     return use_gnu_hash() ? gnu_hash_.get() : nullptr;
   }

@@ -477,7 +508,7 @@ class LIEF_API Binary : public LIEF::Binary {

   /// Return the SysvHash object as a **read-only** object
   /// If the ELF binary does not use the legacy sysv hash table, return a nullptr
-  const SysvHash* sysv_hash() const {
+  const SysvHash* sysv_hash() const LIEF_LIFETIMEBOUND {
     return use_sysv_hash() ? sysv_hash_.get() : nullptr;
   }

@@ -494,28 +525,30 @@ class LIEF_API Binary : public LIEF::Binary {

   /// Return Section with the given `name`. If the section can't be
   /// found, it returns a nullptr
-  Section* get_section(const std::string& name) {
-    return const_cast<Section*>(static_cast<const Binary*>(this)->get_section(name));
+  Section* get_section(const std::string& name) LIEF_LIFETIMEBOUND {
+    return const_cast<Section*>(
+        static_cast<const Binary*>(this)->get_section(name)
+    );
   }
-  const Section* get_section(const std::string& name) const;
+  const Section* get_section(const std::string& name) const LIEF_LIFETIMEBOUND;

   /// Return the `.text` section. If the section
   /// can't be found, it returns a nullptr
-  Section* text_section() {
+  Section* text_section() LIEF_LIFETIMEBOUND {
     return get_section(".text");
   }

   /// Return the `.dynamic` section. If the section
   /// can't be found, it returns a nullptr
-  Section* dynamic_section();
+  Section* dynamic_section() LIEF_LIFETIMEBOUND;

   /// Return the hash section. If the section
   /// can't be found, it returns a nullptr
-  Section* hash_section();
+  Section* hash_section() LIEF_LIFETIMEBOUND;

   /// Return section which holds the symtab symbols. If the section
   /// can't be found, it returns a nullptr
-  Section* symtab_symbols_section();
+  Section* symtab_symbols_section() LIEF_LIFETIMEBOUND;

   /// Return program image base. For instance ``0x40000``
   ///
@@ -524,7 +557,7 @@ class LIEF_API Binary : public LIEF::Binary {
   uint64_t imagebase() const override;

   /// Return the size of the mapped binary
-  uint64_t virtual_size() const;
+  uint64_t virtual_size() const override;

   /// Check if the binary uses a loader (also named linker or interpreter)
   /// @see interpreter
@@ -534,7 +567,7 @@ class LIEF_API Binary : public LIEF::Binary {
   /// If the binary does not have an interpreter, it returns an empty string
   ///
   /// @see has_interpreter
-  const std::string& interpreter() const {
+  const std::string& interpreter() const LIEF_LIFETIMEBOUND {
     return interpreter_;
   }

@@ -544,31 +577,36 @@ class LIEF_API Binary : public LIEF::Binary {
   }

   /// Return an iterator on both static and dynamic symbols
-  it_symbols symbols() {
+  it_symbols symbols() LIEF_LIFETIMEBOUND {
     return symtab_dyn_symbols();
   }

-  it_const_symbols symbols() const {
+  it_const_symbols symbols() const LIEF_LIFETIMEBOUND {
     return symtab_dyn_symbols();
   }

   /// Export the given symbol and create it if it doesn't exist
-  Symbol& export_symbol(const Symbol& symbol);
+  Symbol& export_symbol(const Symbol& symbol) LIEF_LIFETIMEBOUND;

   /// Export the symbol with the given name and create it if it doesn't exist
-  Symbol& export_symbol(const std::string& symbol_name, uint64_t value = 0);
+  Symbol& export_symbol(const std::string& symbol_name,
+                        uint64_t value = 0) LIEF_LIFETIMEBOUND;

-  /// Check if the symbol with the given ``name`` exists in the dynamic symbols table
+  /// Check if the symbol with the given ``name`` exists in the dynamic symbols
+  /// table
   bool has_dynamic_symbol(const std::string& name) const {
     return get_dynamic_symbol(name) != nullptr;
   }

   /// Get the dynamic symbol from the given name.
   /// Return a nullptr if it can't be found
-  const Symbol* get_dynamic_symbol(const std::string& name) const;
+  const Symbol*
+      get_dynamic_symbol(const std::string& name) const LIEF_LIFETIMEBOUND;

-  Symbol* get_dynamic_symbol(const std::string& name) {
-    return const_cast<Symbol*>(static_cast<const Binary*>(this)->get_dynamic_symbol(name));
+  Symbol* get_dynamic_symbol(const std::string& name) LIEF_LIFETIMEBOUND {
+    return const_cast<Symbol*>(
+        static_cast<const Binary*>(this)->get_dynamic_symbol(name)
+    );
   }

   /// Check if the symbol with the given ``name`` exists in the symtab symbol table
@@ -578,15 +616,18 @@ class LIEF_API Binary : public LIEF::Binary {

   /// Get the symtab symbol from the given name
   /// Return a nullptr if it can't be found
-  const Symbol* get_symtab_symbol(const std::string& name) const;
+  const Symbol*
+      get_symtab_symbol(const std::string& name) const LIEF_LIFETIMEBOUND;

-  Symbol* get_symtab_symbol(const std::string& name) {
-    return const_cast<Symbol*>(static_cast<const Binary*>(this)->get_symtab_symbol(name));
+  Symbol* get_symtab_symbol(const std::string& name) LIEF_LIFETIMEBOUND {
+    return const_cast<Symbol*>(
+        static_cast<const Binary*>(this)->get_symtab_symbol(name)
+    );
   }

   /// Return list of the strings used by the ELF binary.
   ///
-  /// Basically, this function looks for string in the ``.roadata`` section
+  /// Basically, this function looks for strings in the ``.rodata`` section
   string_list_t strings(size_t min_size = 5) const;

   /// Remove symbols with the given name in both:
@@ -596,7 +637,7 @@ class LIEF_API Binary : public LIEF::Binary {
   /// @see remove_symtab_symbol, remove_dynamic_symbol
   void remove_symbol(const std::string& name);

-  /// Remove symtabl symbols with the given name
+  /// Remove symtab symbols with the given name
   void remove_symtab_symbol(const std::string& name);
   void remove_symtab_symbol(Symbol* symbol);

@@ -611,18 +652,21 @@ class LIEF_API Binary : public LIEF::Binary {
   void remove_dynamic_symbol(Symbol* symbol);

   /// Return the address of the given function name
-  result<uint64_t> get_function_address(const std::string& func_name) const override;
+  result<uint64_t>
+      get_function_address(const std::string& func_name) const override;

   /// Return the address of the given function name
   //
   /// @param[in] func_name    The function's name target
   /// @param[in] demangled    Use the demangled name
-  result<uint64_t> get_function_address(const std::string& func_name, bool demangled) const;
+  result<uint64_t> get_function_address(const std::string& func_name,
+                                        bool demangled) const;

   /// Add a new section in the binary
   ///
   /// @param[in] section  The section object to insert
-  /// @param[in] loaded   Boolean value to indicate that section's data must be loaded
+  /// @param[in] loaded   Boolean value to indicate that section's data must be
+  /// loaded
   ///                     by a PT_LOAD segment
   /// @param[in] pos      Position where to insert the data in the sections table
   ///
@@ -630,34 +674,41 @@ class LIEF_API Binary : public LIEF::Binary {
   ///
   /// This function requires a well-formed ELF binary
   Section* add(const Section& section, bool loaded = true,
-               SEC_INSERT_POS pos = SEC_INSERT_POS::AUTO);
+               SEC_INSERT_POS pos = SEC_INSERT_POS::AUTO) LIEF_LIFETIMEBOUND;

-  Section* extend(const Section& section, uint64_t size);
+  Section* extend(const Section& section, uint64_t size) LIEF_LIFETIMEBOUND;

   /// Add a symtab symbol
-  Symbol& add_symtab_symbol(const Symbol& symbol);
+  Symbol& add_symtab_symbol(const Symbol& symbol) LIEF_LIFETIMEBOUND;

   /// Add a dynamic symbol with the associated SymbolVersion
-  Symbol& add_dynamic_symbol(const Symbol& symbol, const SymbolVersion* version = nullptr);
+  Symbol& add_dynamic_symbol(const Symbol& symbol, const SymbolVersion* version =
+                                                       nullptr) LIEF_LIFETIMEBOUND;

   /// Create a symbol for the function at the given address and export it
-  Symbol& add_exported_function(uint64_t address, const std::string& name = "");
+  Symbol& add_exported_function(uint64_t address,
+                                const std::string& name = "") LIEF_LIFETIMEBOUND;

   /// Add a library as dependency
-  DynamicEntryLibrary& add_library(const std::string& library_name);
+  DynamicEntryLibrary&
+      add_library(const std::string& library_name) LIEF_LIFETIMEBOUND;

   /// Remove the given library from the dependencies
   void remove_library(const std::string& library_name);

   /// Get the library object (DynamicEntryLibrary) from the given name
   /// If the library can't be found, it returns a nullptr.
-  DynamicEntryLibrary* get_library(const std::string& library_name) {
-    return const_cast<DynamicEntryLibrary*>(static_cast<const Binary*>(this)->get_library(library_name));
+  DynamicEntryLibrary*
+      get_library(const std::string& library_name) LIEF_LIFETIMEBOUND {
+    return const_cast<DynamicEntryLibrary*>(
+        static_cast<const Binary*>(this)->get_library(library_name)
+    );
   }

   /// Get the library object (DynamicEntryLibrary) from the given name
   /// If the library can't be found, it returns a nullptr.
-  const DynamicEntryLibrary* get_library(const std::string& library_name) const;
+  const DynamicEntryLibrary*
+      get_library(const std::string& library_name) const LIEF_LIFETIMEBOUND;

   /// Check if the given library name exists in the current binary
   bool has_library(const std::string& name) const {
@@ -671,23 +722,27 @@ class LIEF_API Binary : public LIEF::Binary {
   /// @return The segment added. `Virtual address` and `File Offset` might change.
   ///
   /// This function requires a well-formed ELF binary
-  Segment* add(const Segment& segment, uint64_t base = 0);
+  Segment* add(const Segment& segment, uint64_t base = 0) LIEF_LIFETIMEBOUND;

-  /// Replace the segment given in 2nd parameter with the segment given in the first one and return the updated segment.
+  /// Replace the segment given in 2nd parameter with the segment given in the
+  /// first one and return the updated segment.
   ///
   /// @warning The ``original_segment`` is no longer valid after this function
-  Segment* replace(const Segment& new_segment, const Segment& original_segment, uint64_t base = 0);
+  Segment* replace(const Segment& new_segment, const Segment& original_segment,
+                   uint64_t base = 0) LIEF_LIFETIMEBOUND;

-  Segment* extend(const Segment& segment, uint64_t size);
+  Segment* extend(const Segment& segment, uint64_t size) LIEF_LIFETIMEBOUND;


   /// Patch the content at virtual address @p address with @p patch_value
   ///
   /// @param[in] address      Address to patch
   /// @param[in] patch_value  Patch to apply
-  /// @param[in] addr_type    Specify if the address should be used as an absolute virtual address or an RVA
+  /// @param[in] addr_type    Specify if the address should be used as an absolute
+  /// virtual address or an RVA
   void patch_address(uint64_t address, const std::vector<uint8_t>& patch_value,
-                     LIEF::Binary::VA_TYPES addr_type = LIEF::Binary::VA_TYPES::AUTO) override;
+                     LIEF::Binary::VA_TYPES addr_type =
+                         LIEF::Binary::VA_TYPES::AUTO) override;


   /// Patch the address with the given value
@@ -695,10 +750,12 @@ class LIEF_API Binary : public LIEF::Binary {
   /// @param[in] address        Address to patch
   /// @param[in] patch_value    Patch to apply
   /// @param[in] size           Size of the value in **bytes** (1, 2, ... 8)
-  /// @param[in] addr_type      Specify if the address should be used as an absolute virtual address or an RVA
-  void patch_address(uint64_t address, uint64_t patch_value,
-                     size_t size = sizeof(uint64_t),
-                     LIEF::Binary::VA_TYPES addr_type = LIEF::Binary::VA_TYPES::AUTO) override;
+  /// @param[in] addr_type      Specify if the address should be used as an
+  /// absolute virtual address or an RVA
+  void patch_address(
+      uint64_t address, uint64_t patch_value, size_t size = sizeof(uint64_t),
+      LIEF::Binary::VA_TYPES addr_type = LIEF::Binary::VA_TYPES::AUTO
+  ) override;

   /// Patch the imported symbol with the ``address``
   ///
@@ -732,7 +789,8 @@ class LIEF_API Binary : public LIEF::Binary {
     return write(filename, Builder::config_t{});
   }

-  /// Reconstruct the binary object with the given config and write it in `filename`
+  /// Reconstruct the binary object with the given config and write it in
+  /// `filename`
   ///
   /// This function assumes that the layout of the current ELF binary is correct
   /// (i.e. the binary can run).
@@ -751,7 +809,8 @@ class LIEF_API Binary : public LIEF::Binary {
     return write(os, Builder::config_t{});
   }

-  /// Reconstruct the binary object with the given config and write it in `os` stream
+  /// Reconstruct the binary object with the given config and write it in `os`
+  /// stream
   ///
   /// @param os     Output stream for the written ELF binary
   /// @param config Builder configuration
@@ -766,8 +825,10 @@ class LIEF_API Binary : public LIEF::Binary {
   /// Convert the given offset into a virtual address.
   ///
   /// @param[in] offset   The offset to convert.
-  /// @param[in] slide    If not 0, it will replace the default base address (if any)
-  result<uint64_t> offset_to_virtual_address(uint64_t offset, uint64_t slide = 0) const override;
+  /// @param[in] slide    If not 0, it will replace the default base address (if
+  /// any)
+  result<uint64_t> offset_to_virtual_address(uint64_t offset,
+                                             uint64_t slide = 0) const override;

   /// Check if the binary has been compiled with `-fpie -pie` flags
   ///
@@ -793,10 +854,16 @@ class LIEF_API Binary : public LIEF::Binary {
   /// if a section can't be found
   ///
   /// If @p skip_nobits is set (which is the case by default), this function won't
-  /// consider section for which the type is ``SHT_NOBITS`` (like ``.bss, .tbss, ...``)
-  const Section* section_from_offset(uint64_t offset, bool skip_nobits = true) const;
-  Section*       section_from_offset(uint64_t offset, bool skip_nobits = true) {
-    return const_cast<Section*>(static_cast<const Binary*>(this)->section_from_offset(offset, skip_nobits));
+  /// consider section for which the type is ``SHT_NOBITS`` (like ``.bss, .tbss,
+  /// ...``)
+  const Section*
+      section_from_offset(uint64_t offset,
+                          bool skip_nobits = true) const LIEF_LIFETIMEBOUND;
+  Section* section_from_offset(uint64_t offset,
+                               bool skip_nobits = true) LIEF_LIFETIMEBOUND {
+    return const_cast<Section*>(
+        static_cast<const Binary*>(this)->section_from_offset(offset, skip_nobits)
+    );
   }

   /// Return the ELF::Section from the given @p address. Return a nullptr
@@ -804,56 +871,76 @@ class LIEF_API Binary : public LIEF::Binary {
   ///
   /// If @p skip_nobits is set (which is the case by default), this function won't
   /// consider section for which type is ``SHT_NOBITS`` (like ``.bss, .tbss, ...``)
-  const Section* section_from_virtual_address(uint64_t address, bool skip_nobits = true) const;
-  Section* section_from_virtual_address(uint64_t address, bool skip_nobits = true) {
-    return const_cast<Section*>(static_cast<const Binary*>(this)->section_from_virtual_address(address, skip_nobits));
+  const Section* section_from_virtual_address(
+      uint64_t address, bool skip_nobits = true
+  ) const LIEF_LIFETIMEBOUND;
+
+  Section*
+      section_from_virtual_address(uint64_t address,
+                                   bool skip_nobits = true) LIEF_LIFETIMEBOUND {
+    return const_cast<Section*>(
+        static_cast<const Binary*>(this)->section_from_virtual_address(address,
+                                                                       skip_nobits)
+    );
   }

   /// Return the ELF::Segment from the given @p address. Return a nullptr
   /// if a segment can't be found.
-  const Segment* segment_from_virtual_address(uint64_t address) const;
-  Segment* segment_from_virtual_address(uint64_t address) {
-    return const_cast<Segment*>(static_cast<const Binary*>(this)->segment_from_virtual_address(address));
+  const Segment*
+      segment_from_virtual_address(uint64_t address) const LIEF_LIFETIMEBOUND;
+
+  Segment* segment_from_virtual_address(uint64_t address) LIEF_LIFETIMEBOUND {
+    return const_cast<Segment*>(
+        static_cast<const Binary*>(this)->segment_from_virtual_address(address)
+    );
   }


-  const Segment* segment_from_virtual_address(Segment::TYPE type, uint64_t address) const;
-  Segment* segment_from_virtual_address(Segment::TYPE type, uint64_t address) {
-    return const_cast<Segment*>(static_cast<const Binary*>(this)->segment_from_virtual_address(type, address));
+  const Segment*
+      segment_from_virtual_address(Segment::TYPE type,
+                                   uint64_t address) const LIEF_LIFETIMEBOUND;
+  Segment* segment_from_virtual_address(Segment::TYPE type,
+                                        uint64_t address) LIEF_LIFETIMEBOUND {
+    return const_cast<Segment*>(
+        static_cast<const Binary*>(this)->segment_from_virtual_address(type,
+                                                                       address)
+    );
   }

   /// Return the ELF::Segment from the @p offset. Return a nullptr
   /// if a segment can't be found.
-  const Segment* segment_from_offset(uint64_t offset) const;
-  Segment* segment_from_offset(uint64_t offset) {
-    return const_cast<Segment*>(static_cast<const Binary*>(this)->segment_from_offset(offset));
+  const Segment* segment_from_offset(uint64_t offset) const LIEF_LIFETIMEBOUND;
+  Segment* segment_from_offset(uint64_t offset) LIEF_LIFETIMEBOUND {
+    return const_cast<Segment*>(
+        static_cast<const Binary*>(this)->segment_from_offset(offset)
+    );
   }

   /// Return the **first** ELF::DynamicEntry associated with the given tag
   /// If the tag can't be found, it returns a nullptr
-  const DynamicEntry* get(DynamicEntry::TAG tag) const;
-  DynamicEntry*       get(DynamicEntry::TAG tag) {
+  const DynamicEntry* get(DynamicEntry::TAG tag) const LIEF_LIFETIMEBOUND;
+  DynamicEntry* get(DynamicEntry::TAG tag) LIEF_LIFETIMEBOUND {
     return const_cast<DynamicEntry*>(static_cast<const Binary*>(this)->get(tag));
   }

   /// Return the **first** ELF::Segment associated with the given type.
   /// If a segment can't be found, it returns a nullptr.
-  const Segment* get(Segment::TYPE type) const;
-  Segment* get(Segment::TYPE type) {
+  const Segment* get(Segment::TYPE type) const LIEF_LIFETIMEBOUND;
+  Segment* get(Segment::TYPE type) LIEF_LIFETIMEBOUND {
     return const_cast<Segment*>(static_cast<const Binary*>(this)->get(type));
   }

   /// Return the **first** ELF::Note associated with the given type
   /// If a note can't be found, it returns a nullptr.
-  const Note* get(Note::TYPE type) const;
-  Note* get(Note::TYPE type) {
+  const Note* get(Note::TYPE type) const LIEF_LIFETIMEBOUND;
+  Note* get(Note::TYPE type) LIEF_LIFETIMEBOUND {
     return const_cast<Note*>(static_cast<const Binary*>(this)->get(type));
   }

   /// Return the **first** ELF::Section associated with the given type
   /// If a section can't be found, it returns a nullptr.
-  const Section* get(Section::TYPE type) const;
-  Section* get(Section::TYPE type) {
+  const Section* get(Section::TYPE type) const LIEF_LIFETIMEBOUND;
+  Section* get(Section::TYPE type) LIEF_LIFETIMEBOUND {
     return const_cast<Section*>(static_cast<const Binary*>(this)->get(type));
   }

@@ -878,8 +965,10 @@ class LIEF_API Binary : public LIEF::Binary {
   }

   /// Return the content located at virtual address
-  span<const uint8_t> get_content_from_virtual_address(uint64_t virtual_address, uint64_t size,
-                                     Binary::VA_TYPES addr_type = Binary::VA_TYPES::AUTO) const override;
+  span<const uint8_t> get_content_from_virtual_address(
+      uint64_t virtual_address, uint64_t size,
+      Binary::VA_TYPES addr_type = Binary::VA_TYPES::AUTO
+  ) const LIEF_LIFETIMEBOUND override;

   /// Method associated with the visitor pattern.
   void accept(LIEF::Visitor& visitor) const override;
@@ -887,13 +976,15 @@ class LIEF_API Binary : public LIEF::Binary {
   /// Apply the given permutation on the dynamic symbols table
   void permute_dynamic_symbols(const std::vector<size_t>& permutation);

-  /// List of binary constructors (typically, the functions located in the ``.init_array``)
+  /// List of binary constructors (typically, the functions located in the
+  /// ``.init_array``)
   LIEF::Binary::functions_t ctor_functions() const override;

-  /// List of the binary destructors (typically, the functions located in the ``.fini_array``)
+  /// List of the binary destructors (typically, the functions located in the
+  /// ``.fini_array``)
   LIEF::Binary::functions_t dtor_functions() const;

-  /// List of the functions found the in the binary.
+  /// List of the functions found in the binary.
   LIEF::Binary::functions_t functions() const;

   /// ``true`` if the binary embeds notes
@@ -902,16 +993,16 @@ class LIEF_API Binary : public LIEF::Binary {
   /// Return an iterator over the ELF's LIEF::ELF::Note
   ///
   /// @see has_note
-  it_const_notes notes() const {
+  it_const_notes notes() const LIEF_LIFETIMEBOUND {
     return notes_;
   }

-  it_notes notes() {
+  it_notes notes() LIEF_LIFETIMEBOUND {
     return notes_;
   }

-  /// Return the last offset used by the ELF binary according to both: the sections table
-  /// and the segments table
+  /// Return the last offset used by the ELF binary according to both: the sections
+  /// table and the segments table
   uint64_t eof_offset() const;

   /// True if data are present at the end of the binary
@@ -920,7 +1011,7 @@ class LIEF_API Binary : public LIEF::Binary {
   }

   /// Overlay data (if any)
-  span<const uint8_t> overlay() const {
+  span<const uint8_t> overlay() const LIEF_LIFETIMEBOUND {
     return overlay_;
   }

@@ -949,10 +1040,9 @@ class LIEF_API Binary : public LIEF::Binary {
   /// Find the index of the section given in the first parameter
   result<size_t> get_section_idx(const Section& section) const {
     auto it = std::find_if(sections_.begin(), sections_.end(),
-      [&section] (const std::unique_ptr<Section>& S) {
-        return S.get() == &section;
-      }
-    );
+                           [&section](const std::unique_ptr<Section>& S) {
+                             return S.get() == &section;
+                           });
     if (it == sections_.end()) {
       return make_error_code(lief_errors::not_found);
     }
@@ -962,10 +1052,9 @@ class LIEF_API Binary : public LIEF::Binary {
   /// Find the index of the section with the name given in the first parameter
   result<size_t> get_section_idx(const std::string& name) const {
     auto it = std::find_if(sections_.begin(), sections_.end(),
-      [name] (const std::unique_ptr<Section>& S) {
-        return S->name() == name;
-      }
-    );
+                           [name](const std::unique_ptr<Section>& S) {
+                             return S->name() == name;
+                           });
     if (it == sections_.end()) {
       return make_error_code(lief_errors::not_found);
     }
@@ -974,29 +1063,30 @@ class LIEF_API Binary : public LIEF::Binary {

   /// Try to find the SymbolVersionRequirement associated with the given library
   /// name (e.g. `libc.so.6`)
-  const SymbolVersionRequirement*
-    find_version_requirement(const std::string& libname) const;
-
-  SymbolVersionRequirement* find_version_requirement(const std::string& name) {
-      return const_cast<SymbolVersionRequirement*>(static_cast<const Binary*>(this)->find_version_requirement(name));
+  const SymbolVersionRequirement* find_version_requirement(
+      const std::string& libname
+  ) const LIEF_LIFETIMEBOUND;
+
+  SymbolVersionRequirement*
+      find_version_requirement(const std::string& name) LIEF_LIFETIMEBOUND {
+    return const_cast<SymbolVersionRequirement*>(
+        static_cast<const Binary*>(this)->find_version_requirement(name)
+    );
   }

   /// Deletes all required symbol versions linked to the specified library name.
   /// The function returns true if the operation succeed, false otherwise.
   ///
-  /// \warning To maintain consistency, this function also removes versions
+  /// @warning To maintain consistency, this function also removes versions
   ///          associated with dynamic symbols that are linked to the specified
   ///          library name.
   bool remove_version_requirement(const std::string& libname);

   uint8_t ptr_size() const {
     switch (type()) {
-      case Header::CLASS::ELF32:
-        return sizeof(uint32_t);
-      case Header::CLASS::ELF64:
-        return sizeof(uint64_t);
-      default:
-        return 0;
+      case Header::CLASS::ELF32: return sizeof(uint32_t);
+      case Header::CLASS::ELF64: return sizeof(uint64_t);
+      default: return 0;
     }
     return 0;
   }
@@ -1014,74 +1104,74 @@ class LIEF_API Binary : public LIEF::Binary {

   std::ostream& print(std::ostream& os) const override;

-  Binary& operator+=(const DynamicEntry& entry) {
+  Binary& operator+=(const DynamicEntry& entry) LIEF_LIFETIMEBOUND {
     add(entry);
     return *this;
   }
-  Binary& operator+=(const Section& section) {
+  Binary& operator+=(const Section& section) LIEF_LIFETIMEBOUND {
     add(section);
     return *this;
   }

-  Binary& operator+=(const Segment& segment) {
+  Binary& operator+=(const Segment& segment) LIEF_LIFETIMEBOUND {
     add(segment);
     return *this;
   }

-  Binary& operator+=(const Note& note) {
+  Binary& operator+=(const Note& note) LIEF_LIFETIMEBOUND {
     add(note);
     return *this;
   }

-  Binary& operator-=(const DynamicEntry& entry) {
+  Binary& operator-=(const DynamicEntry& entry) LIEF_LIFETIMEBOUND {
     remove(entry);
     return *this;
   }

-  Binary& operator-=(DynamicEntry::TAG tag) {
+  Binary& operator-=(DynamicEntry::TAG tag) LIEF_LIFETIMEBOUND {
     remove(tag);
     return *this;
   }

-  Binary& operator-=(const Note& note) {
+  Binary& operator-=(const Note& note) LIEF_LIFETIMEBOUND {
     remove(note);
     return *this;
   }

-  Binary& operator-=(Note::TYPE type) {
+  Binary& operator-=(Note::TYPE type) LIEF_LIFETIMEBOUND {
     remove(type);
     return *this;
   }

-  Segment* operator[](Segment::TYPE type) {
+  Segment* operator[](Segment::TYPE type) LIEF_LIFETIMEBOUND {
     return get(type);
   }

-  const Segment* operator[](Segment::TYPE type) const {
+  const Segment* operator[](Segment::TYPE type) const LIEF_LIFETIMEBOUND {
     return get(type);
   }

-  DynamicEntry* operator[](DynamicEntry::TAG tag) {
+  DynamicEntry* operator[](DynamicEntry::TAG tag) LIEF_LIFETIMEBOUND {
     return get(tag);
   }

-  const DynamicEntry* operator[](DynamicEntry::TAG tag) const {
+  const DynamicEntry* operator[](DynamicEntry::TAG tag) const LIEF_LIFETIMEBOUND {
     return get(tag);
   }

-  Note* operator[](Note::TYPE type) {
+  Note* operator[](Note::TYPE type) LIEF_LIFETIMEBOUND {
     return get(type);
   }

-  const Note* operator[](Note::TYPE type) const {
+  const Note* operator[](Note::TYPE type) const LIEF_LIFETIMEBOUND {
     return get(type);
   }

-  Section* operator[](Section::TYPE type) {
+  Section* operator[](Section::TYPE type) LIEF_LIFETIMEBOUND {
     return get(type);
   }

-  const Section* operator[](Section::TYPE type) const {
+  const Section* operator[](Section::TYPE type) const LIEF_LIFETIMEBOUND {
     return get(type);
   }

@@ -1098,6 +1188,13 @@ class LIEF_API Binary : public LIEF::Binary {
       nb_segments = 0;
     }
   };
+  uint64_t entry_size(DynamicEntry::TAG ent_tag, uint64_t fallback) const {
+    if (const DynamicEntry* dt_ent = get(ent_tag)) {
+      return dt_ent->value();
+    }
+    return fallback;
+  }
+
   LIEF_LOCAL Binary();

   /// Return an abstraction of binary's section: LIEF::Section
@@ -1107,17 +1204,21 @@ class LIEF_API Binary : public LIEF::Binary {
     return LIEF::Header::from(*this);
   }

-  LIEF_LOCAL LIEF::Binary::functions_t get_abstract_exported_functions() const override;
-  LIEF_LOCAL LIEF::Binary::functions_t get_abstract_imported_functions() const override;
-  LIEF_LOCAL std::vector<std::string> get_abstract_imported_libraries() const override;
-  LIEF_LOCAL LIEF::Binary::symbols_t     get_abstract_symbols() override;
+  LIEF_LOCAL LIEF::Binary::functions_t
+      get_abstract_exported_functions() const override;
+  LIEF_LOCAL LIEF::Binary::functions_t
+      get_abstract_imported_functions() const override;
+  LIEF_LOCAL std::vector<std::string>
+      get_abstract_imported_libraries() const override;
+  LIEF_LOCAL LIEF::Binary::symbols_t get_abstract_symbols() override;
   LIEF_LOCAL LIEF::Binary::relocations_t get_abstract_relocations() override;

   template<ELF::ARCH ARCH>
   LIEF_LOCAL void patch_relocations(uint64_t from, uint64_t shift);

   template<class T>
-  LIEF_LOCAL void patch_addend(Relocation& relocatio, uint64_t from, uint64_t shift);
+  LIEF_LOCAL void patch_addend(Relocation& relocatio, uint64_t from,
+                               uint64_t shift);

   LIEF_LOCAL void shift_sections(uint64_t from, uint64_t shift);
   LIEF_LOCAL void shift_segments(uint64_t from, uint64_t shift);
@@ -1132,7 +1233,8 @@ class LIEF_API Binary : public LIEF::Binary {
   LIEF_LOCAL LIEF::Binary::functions_t armexid_functions() const;

   template<Header::FILE_TYPE OBJECT_TYPE, bool note = false>
-  LIEF_LOCAL Segment* add_segment(const Segment& segment, uint64_t base);
+  LIEF_LOCAL Segment* add_segment(const Segment& segment,
+                                  uint64_t base) LIEF_LIFETIMEBOUND;

   LIEF_LOCAL uint64_t relocate_phdr_table_auto();
   LIEF_LOCAL uint64_t relocate_phdr_table_pie();
@@ -1141,16 +1243,18 @@ class LIEF_API Binary : public LIEF::Binary {
   LIEF_LOCAL uint64_t relocate_phdr_table_v3();

   template<Segment::TYPE PT>
-  LIEF_LOCAL Segment* extend_segment(const Segment& segment, uint64_t size);
+  LIEF_LOCAL Segment* extend_segment(const Segment& segment,
+                                     uint64_t size) LIEF_LIFETIMEBOUND;

   template<bool LOADED>
-  LIEF_LOCAL Section* add_section(const Section& section, SEC_INSERT_POS pos);
+  LIEF_LOCAL Section* add_section(const Section& section,
+                                  SEC_INSERT_POS pos) LIEF_LIFETIMEBOUND;

-  std::vector<Symbol*> symtab_dyn_symbols() const;
+  std::vector<Symbol*> symtab_dyn_symbols() const LIEF_LIFETIMEBOUND;

   LIEF_LOCAL std::string shstrtab_name() const;
-  LIEF_LOCAL Section* add_frame_section(const Section& sec);
-  LIEF_LOCAL Section* add_section(std::unique_ptr<Section> sec);
+  LIEF_LOCAL Section* add_frame_section(const Section& sec) LIEF_LIFETIMEBOUND;
+  LIEF_LOCAL Section* add_section(std::unique_ptr<Section> sec) LIEF_LIFETIMEBOUND;

   LIEF_LOCAL LIEF::Binary::functions_t tor_functions(DynamicEntry::TAG tag) const;

@@ -1164,7 +1268,7 @@ class LIEF_API Binary : public LIEF::Binary {
   relocations_t relocations_;
   symbols_version_t symbol_version_table_;
   symbols_version_requirement_t symbol_version_requirements_;
-  symbols_version_definition_t  symbol_version_definition_;
+  symbols_version_definition_t symbol_version_definition_;
   notes_t notes_;
   std::unique_ptr<GnuHash> gnu_hash_;
   std::unique_ptr<SysvHash> sysv_hash_;
diff --git a/deps/LIEF/include/LIEF/ELF/Builder.hpp b/deps/LIEF/include/LIEF/ELF/Builder.hpp
index b7da3f3151c..1f7b595d4ac 100644
--- a/deps/LIEF/include/LIEF/ELF/Builder.hpp
+++ b/deps/LIEF/include/LIEF/ELF/Builder.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  * Copyright 2017 - 2021, NVIDIA CORPORATION. All rights reserved
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
@@ -53,27 +53,70 @@ class LIEF_API Builder {
   public:
   /// Configuration options to tweak the building process
   struct config_t {
-    bool dt_hash         = true;  /// Rebuild DT_HASH
-    bool dyn_str         = true;  /// Rebuild DT_STRTAB
-    bool dynamic_section = true;  /// Rebuild PT_DYNAMIC segment
-    bool fini_array      = true;  /// Rebuild DT_FINI_ARRAY
-    bool gnu_hash        = true;  /// Rebuild DT_GNU_HASH
-    bool init_array      = true;  /// Rebuild DT_INIT_ARRAY
-    bool interpreter     = true;  /// Rebuild PT_INTERPRETER
-    bool jmprel          = true;  /// Rebuild DT_JMPREL
-    bool notes           = false; /// Disable note building since it can break the default layout
-    bool preinit_array   = true;  /// Rebuild DT_PREINIT_ARRAY
-    bool relr            = true;  /// Rebuild DT_RELR
-    bool android_rela    = true;  /// Rebuild DT_ANDROID_REL[A]
-    bool rela            = true;  /// Rebuild DT_REL[A]
-    bool static_symtab   = true;  /// Rebuild `.symtab`
-    bool sym_verdef      = true;  /// Rebuild DT_VERDEF
-    bool sym_verneed     = true;  /// Rebuild DT_VERNEED
-    bool sym_versym      = true;  /// Rebuild DT_VERSYM
-    bool symtab          = true;  /// Rebuild DT_SYMTAB
-    bool coredump_notes  = true;  /// Rebuild the Coredump notes
-    bool force_relocate  = false; /// Force to relocating all the ELF structures that are supported by LIEF (mostly for testing)
-    bool skip_dynamic    = false; /// Skip relocating the PT_DYNAMIC segment (only relevant if force_relocate is set)
+    /// Rebuild DT_HASH
+    bool dt_hash = true;
+
+    /// Rebuild DT_STRTAB
+    bool dyn_str = true;
+
+    /// Rebuild PT_DYNAMIC segment
+    bool dynamic_section = true;
+
+    /// Rebuild DT_FINI_ARRAY
+    bool fini_array = true;
+
+    /// Rebuild DT_GNU_HASH
+    bool gnu_hash = true;
+
+    /// Rebuild DT_INIT_ARRAY
+    bool init_array = true;
+
+    /// Rebuild PT_INTERPRETER
+    bool interpreter = true;
+
+    /// Rebuild DT_JMPREL
+    bool jmprel = true;
+
+    /// Disable note building since it can break the default layout
+    bool notes = false;
+
+    /// Rebuild DT_PREINIT_ARRAY
+    bool preinit_array = true;
+
+    /// Rebuild DT_RELR
+    bool relr = true;
+
+    /// Rebuild DT_ANDROID_REL[A]
+    bool android_rela = true;
+
+    /// Rebuild DT_REL[A]
+    bool rela = true;
+
+    /// Rebuild `.symtab`
+    bool static_symtab = true;
+
+    /// Rebuild DT_VERDEF
+    bool sym_verdef = true;
+
+    /// Rebuild DT_VERNEED
+    bool sym_verneed = true;
+
+    /// Rebuild DT_VERSYM
+    bool sym_versym = true;
+
+    /// Rebuild DT_SYMTAB
+    bool symtab = true;
+
+    /// Rebuild the Coredump notes
+    bool coredump_notes = true;
+
+    /// Force to relocating all the ELF structures that are
+    /// supported by LIEF (mostly for testing)
+    bool force_relocate = false;
+
+    /// Skip relocating the PT_DYNAMIC segment (only relevant if force_relocate is
+    /// set
+    bool skip_dynamic = false;

     /// Remove entries in `.gnu.version_r` if they are not associated with at
     /// least one version
@@ -82,8 +125,7 @@ class LIEF_API Builder {

   Builder(Binary& binary, const config_t& config);
   Builder(Binary& binary) :
-    Builder(binary, config_t())
-  {}
+    Builder(binary, config_t()) {}

   Builder() = delete;
   ~Builder();
@@ -91,12 +133,12 @@ class LIEF_API Builder {
   /// Perform the build of the provided ELF binary
   void build();

-  config_t& config() {
+  config_t& config() LIEF_LIFETIMEBOUND {
     return config_;
   }

   /// Return the built ELF binary as a byte vector
-  const std::vector<uint8_t>& get_build();
+  const std::vector<uint8_t>& get_build() LIEF_LIFETIMEBOUND;

   /// Write the built ELF binary in the ``filename`` given in parameter
   void write(const std::string& filename) const;
@@ -178,7 +220,8 @@ class LIEF_API Builder {
   template<typename ELF_T>
   LIEF_LOCAL ok_error_t build_notes();

-  LIEF_LOCAL ok_error_t update_note_section(const Note& note, std::set<const Note*>& notes);
+  LIEF_LOCAL ok_error_t update_note_section(const Note& note,
+                                            std::set<const Note*>& notes);

   template<typename ELF_T>
   LIEF_LOCAL ok_error_t build_overlay();
@@ -200,6 +243,4 @@ class LIEF_API Builder {
 } // namespace LIEF


-
-
 #endif
diff --git a/deps/LIEF/include/LIEF/ELF/DynamicEntry.hpp b/deps/LIEF/include/LIEF/ELF/DynamicEntry.hpp
index ff12e810d04..ac7e58ed957 100644
--- a/deps/LIEF/include/LIEF/ELF/DynamicEntry.hpp
+++ b/deps/LIEF/include/LIEF/ELF/DynamicEntry.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -32,9 +32,11 @@ struct Elf32_Dyn;
 }

 /// Class which represents an entry in the dynamic table
-/// These entries are located in the ``.dynamic`` section or the ``PT_DYNAMIC`` segment
+/// These entries are located in the ``.dynamic`` section or the ``PT_DYNAMIC``
+/// segment
 class LIEF_API DynamicEntry : public Object {
   public:
+  // clang-format off
   static constexpr uint64_t MIPS_DISC    = 0x100000000;
   static constexpr uint64_t AARCH64_DISC = 0x200000000;
   static constexpr uint64_t HEXAGON_DISC = 0x300000000;
@@ -45,67 +47,72 @@ class LIEF_API DynamicEntry : public Object {
   static constexpr uint64_t IA_64_DISC   = 0x800000000;

   enum class TAG : uint64_t {
-    UNKNOWN                    = uint64_t(-1),
-    DT_NULL_                   = 0, /**< Marks end of dynamic array. */
-    NEEDED                     = 1, /**< String table offset of needed library. */
-    PLTRELSZ                   = 2, /**< Size of relocation entries in PLT. */
-    PLTGOT                     = 3, /**< Address associated with linkage table. */
-    HASH                       = 4, /**< Address of symbolic hash table. */
-    STRTAB                     = 5, /**< Address of dynamic string table. */
-    SYMTAB                     = 6, /**< Address of dynamic symbol table. */
-    RELA                       = 7, /**< Address of relocation table (Rela entries). */
-    RELASZ                     = 8, /**< Size of Rela relocation table. */
-    RELAENT                    = 9, /**< Size of a Rela relocation entry. */
-    STRSZ                      = 10,/**< Total size of the string table. */
-    SYMENT                     = 11,/**< Size of a symbol table entry. */
-    INIT                       = 12,/**< Address of initialization function. */
-    FINI                       = 13,/**< Address of termination function. */
-    SONAME                     = 14,/**< String table offset of a shared objects name. */
-    RPATH                      = 15,/**< String table offset of library search path. */
-    SYMBOLIC                   = 16,/**< Changes symbol resolution algorithm. */
-    REL                        = 17,/**< Address of relocation table (Rel entries). */
-    RELSZ                      = 18,/**< Size of Rel relocation table. */
-    RELENT                     = 19,/**< Size of a Rel relocation entry. */
-    PLTREL                     = 20,/**< Type of relocation entry used for linking. */
-    DEBUG_TAG                  = 21,/**< Reserved for debugger. */
-    TEXTREL                    = 22,/**< Relocations exist for non-writable segments. */
-    JMPREL                     = 23,/**< Address of relocations associated with PLT. */
-    BIND_NOW                   = 24,/**< Process all relocations before execution. */
-    INIT_ARRAY                 = 25,/**< Pointer to array of initialization functions. */
-    FINI_ARRAY                 = 26,/**< Pointer to array of termination functions. */
-    INIT_ARRAYSZ               = 27,/**< Size of DT_INIT_ARRAY. */
-    FINI_ARRAYSZ               = 28,/**< Size of DT_FINI_ARRAY. */
-    RUNPATH                    = 29,/**< String table offset of lib search path. */
-    FLAGS                      = 30,/**< Flags. */
-    PREINIT_ARRAY              = 32,/**< Pointer to array of preinit functions. */
-    PREINIT_ARRAYSZ            = 33,/**< Size of the DT_PREINIT_ARRAY array. */
-    SYMTAB_SHNDX               = 34,/**< Address of SYMTAB_SHNDX section */
-    RELRSZ                     = 35,/**< Total size of RELR relative relocations */
-    RELR                       = 36,/**< Address of RELR relative relocations */
-    RELRENT                    = 37,/**< Size of one RELR relative relocaction */
+    UNKNOWN = uint64_t(-1),
+    DT_NULL_ = 0,         /**< Marks end of dynamic array. */
+    NEEDED = 1,           /**< String table offset of needed library. */
+    PLTRELSZ = 2,         /**< Size of relocation entries in PLT. */
+    PLTGOT = 3,           /**< Address associated with linkage table. */
+    HASH = 4,             /**< Address of symbolic hash table. */
+    STRTAB = 5,           /**< Address of dynamic string table. */
+    SYMTAB = 6,           /**< Address of dynamic symbol table. */
+    RELA = 7,             /**< Address of relocation table (Rela entries). */
+    RELASZ = 8,           /**< Size of Rela relocation table. */
+    RELAENT = 9,          /**< Size of a Rela relocation entry. */
+    STRSZ = 10,           /**< Total size of the string table. */
+    SYMENT = 11,          /**< Size of a symbol table entry. */
+    INIT = 12,            /**< Address of initialization function. */
+    FINI = 13,            /**< Address of termination function. */
+    SONAME = 14,          /**< String table offset of a shared objects name. */
+    RPATH = 15,           /**< String table offset of library search path. */
+    SYMBOLIC = 16,        /**< Changes symbol resolution algorithm. */
+    REL = 17,             /**< Address of relocation table (Rel entries). */
+    RELSZ = 18,           /**< Size of Rel relocation table. */
+    RELENT = 19,          /**< Size of a Rel relocation entry. */
+    PLTREL = 20,          /**< Type of relocation entry used for linking. */
+    DEBUG_TAG = 21,       /**< Reserved for debugger. */
+    TEXTREL = 22,         /**< Relocations exist for non-writable segments. */
+    JMPREL = 23,          /**< Address of relocations associated with PLT. */
+    BIND_NOW = 24,        /**< Process all relocations before execution. */
+    INIT_ARRAY = 25,      /**< Pointer to array of initialization functions. */
+    FINI_ARRAY = 26,      /**< Pointer to array of termination functions. */
+    INIT_ARRAYSZ = 27,    /**< Size of DT_INIT_ARRAY. */
+    FINI_ARRAYSZ = 28,    /**< Size of DT_FINI_ARRAY. */
+    RUNPATH = 29,         /**< String table offset of lib search path. */
+    FLAGS = 30,           /**< Flags. */
+    PREINIT_ARRAY = 32,   /**< Pointer to array of preinit functions. */
+    PREINIT_ARRAYSZ = 33, /**< Size of the DT_PREINIT_ARRAY array. */
+    SYMTAB_SHNDX = 34,    /**< Address of SYMTAB_SHNDX section */
+    RELRSZ = 35,          /**< Total size of RELR relative relocations */
+    RELR = 36,            /**< Address of RELR relative relocations */
+    RELRENT = 37,         /**< Size of one RELR relative relocation */

     // GNU Extensions
-    GNU_HASH                   = 0x6FFFFEF5, /**< Reference to the GNU hash table. */
-    RELACOUNT                  = 0x6FFFFFF9, /**< ELF32_Rela count. */
-    RELCOUNT                   = 0x6FFFFFFA, /**< ELF32_Rel count. */
-    FLAGS_1                    = 0x6FFFFFFB, /**< Flags_1. */
-    VERSYM                     = 0x6FFFFFF0, /**< The address of .gnu.version section. */
-    VERDEF                     = 0x6FFFFFFC, /**< The address of the version definition table. */
-    VERDEFNUM                  = 0x6FFFFFFD, /**< The number of entries in DT_VERDEF. */
-    VERNEED                    = 0x6FFFFFFE, /**< The address of the version Dependency table. */
-    VERNEEDNUM                 = 0x6FFFFFFF, /**< The number of entries in DT_VERNEED. */
+    GNU_HASH    = 0x6FFFFEF5, /**< Reference to the GNU hash table. */
+    TLSDESC_PLT = 0x6FFFFEF6, /**< Location of PLT entry for TLS descriptor resolver calls. */
+    TLSDESC_GOT = 0x6FFFFEF7, /**< Location of GOT entry for TLS descriptor resolver PLT entry. */
+    RELACOUNT   = 0x6FFFFFF9, /**< ELF32_Rela count. */
+    RELCOUNT    = 0x6FFFFFFA, /**< ELF32_Rel count. */
+    FLAGS_1     = 0x6FFFFFFB, /**< Flags_1. */
+    VERSYM      = 0x6FFFFFF0, /**< The address of .gnu.version section. */
+    VERDEF      = 0x6FFFFFFC, /**< The address of the version definition table. */
+    VERDEFNUM   = 0x6FFFFFFD, /**< The number of entries in DT_VERDEF. */
+    VERNEED     = 0x6FFFFFFE, /**< The address of the version Dependency table. */
+    VERNEEDNUM  = 0x6FFFFFFF, /**< The number of entries in DT_VERNEED. */
+
+    AUXILIARY = 0x7ffffffd, /**< Shared object to load before self */
+    FILTER    = 0x7fffffff, /**< Shared object to filter from */

     // Android Extensions
-    ANDROID_REL_OFFSET         = 0x6000000D, /**< The offset of packed relocation data (older version < M) (Android specific). */
-    ANDROID_REL_SIZE           = 0x6000000E, /**< The size of packed relocation data in bytes (older version < M) (Android specific). */
-    ANDROID_REL                = 0x6000000F, /**< The offset of packed relocation data (Android specific). */
-    ANDROID_RELSZ              = 0x60000010, /**< The size of packed relocation data in bytes (Android specific). */
-    ANDROID_RELA               = 0x60000011, /**< The offset of packed relocation data (Android specific). */
-    ANDROID_RELASZ             = 0x60000012, /**< The size of packed relocation data in bytes (Android specific). */
-    ANDROID_RELR               = 0x6FFFE000, /**< The offset of new relr relocation data (Android specific). */
-    ANDROID_RELRSZ             = 0x6FFFE001, /**< The size of nre relr relocation data in bytes (Android specific). */
-    ANDROID_RELRENT            = 0x6FFFE003, /**< The size of a new relr relocation entry (Android specific). */
-    ANDROID_RELRCOUNT          = 0x6FFFE005,  /**< Specifies the relative count of new relr relocation entries (Android specific). */
+    ANDROID_REL_OFFSET = 0x6000000D, /**< The offset of packed relocation data (older version < M) (Android specific). */
+    ANDROID_REL_SIZE   = 0x6000000E, /**< The size of packed relocation data in bytes (older version < M) (Android specific). */
+    ANDROID_REL        = 0x6000000F, /**< The offset of packed relocation data (Android specific). */
+    ANDROID_RELSZ      = 0x60000010, /**< The size of packed relocation data in bytes (Android specific). */
+    ANDROID_RELA       = 0x60000011, /**< The offset of packed relocation data (Android specific). */
+    ANDROID_RELASZ     = 0x60000012, /**< The size of packed relocation data in bytes (Android specific). */
+    ANDROID_RELR       = 0x6FFFE000, /**< The offset of new relr relocation data (Android specific). */
+    ANDROID_RELRSZ     = 0x6FFFE001, /**< The size of new relr relocation data in bytes (Android specific). */
+    ANDROID_RELRENT    = 0x6FFFE003, /**< The size of a new relr relocation entry (Android specific). */
+    ANDROID_RELRCOUNT  = 0x6FFFE005, /**< Specifies the relative count of new relr relocation entries (Android specific). */

     /* Mips specific dynamic table entry tags. */
     MIPS_RLD_VERSION           = MIPS_DISC + 0x70000001, /**< 32 bit version number for runtime linker interface. */
@@ -156,63 +163,64 @@ class LIEF_API DynamicEntry : public Object {
     MIPS_RLD_MAP_REL           = MIPS_DISC + 0x70000035,
     MIPS_XHASH                 = MIPS_DISC + 0x70000036,

-    AARCH64_BTI_PLT            = AARCH64_DISC + 0x70000001,
-    AARCH64_PAC_PLT            = AARCH64_DISC + 0x70000003,
-    AARCH64_VARIANT_PCS        = AARCH64_DISC + 0x70000005,
-    AARCH64_MEMTAG_MODE        = AARCH64_DISC + 0x70000009,
-    AARCH64_MEMTAG_HEAP        = AARCH64_DISC + 0x7000000b,
-    AARCH64_MEMTAG_STACK       = AARCH64_DISC + 0x7000000c,
-    AARCH64_MEMTAG_GLOBALS     = AARCH64_DISC + 0x7000000d,
-    AARCH64_MEMTAG_GLOBALSSZ   = AARCH64_DISC + 0x7000000f,
-
-    HEXAGON_SYMSZ              = HEXAGON_DISC + 0x70000000,
-    HEXAGON_VER                = HEXAGON_DISC + 0x70000001,
-    HEXAGON_PLT                = HEXAGON_DISC + 0x70000002,
-
-    PPC_GOT                    = PPC_DISC     + 0x70000000,
-    PPC_OPT                    = PPC_DISC     + 0x70000001,
-
-    PPC64_GLINK                = PPC64_DISC   + 0x70000000,
-    PPC64_OPT                  = PPC64_DISC   + 0x70000003,
-
-    RISCV_VARIANT_CC           = RISCV_DISC   + 0x70000003,
-
-    X86_64_PLT                 = X86_64_DISC  + 0x70000000,
-    X86_64_PLTSZ               = X86_64_DISC  + 0x70000001,
-    X86_64_PLTENT              = X86_64_DISC  + 0x70000003,
-
-    IA_64_PLT_RESERVE          = IA_64_DISC + (0x70000000 + 0),
-    IA_64_VMS_SUBTYPE          = IA_64_DISC + (0x60000000 + 0),
-    IA_64_VMS_IMGIOCNT         = IA_64_DISC + (0x60000000 + 2),
-    IA_64_VMS_LNKFLAGS         = IA_64_DISC + (0x60000000 + 8),
-    IA_64_VMS_VIR_MEM_BLK_SIZ  = IA_64_DISC + (0x60000000 + 10),
-    IA_64_VMS_IDENT            = IA_64_DISC + (0x60000000 + 12),
-    IA_64_VMS_NEEDED_IDENT     = IA_64_DISC + (0x60000000 + 16),
-    IA_64_VMS_IMG_RELA_CNT     = IA_64_DISC + (0x60000000 + 18),
-    IA_64_VMS_SEG_RELA_CNT     = IA_64_DISC + (0x60000000 + 20),
-    IA_64_VMS_FIXUP_RELA_CNT   = IA_64_DISC + (0x60000000 + 22),
-    IA_64_VMS_FIXUP_NEEDED     = IA_64_DISC + (0x60000000 + 24),
-    IA_64_VMS_SYMVEC_CNT       = IA_64_DISC + (0x60000000 + 26),
-    IA_64_VMS_XLATED           = IA_64_DISC + (0x60000000 + 30),
-    IA_64_VMS_STACKSIZE        = IA_64_DISC + (0x60000000 + 32),
-    IA_64_VMS_UNWINDSZ         = IA_64_DISC + (0x60000000 + 34),
-    IA_64_VMS_UNWIND_CODSEG    = IA_64_DISC + (0x60000000 + 36),
-    IA_64_VMS_UNWIND_INFOSEG   = IA_64_DISC + (0x60000000 + 38),
-    IA_64_VMS_LINKTIME         = IA_64_DISC + (0x60000000 + 40),
-    IA_64_VMS_SEG_NO           = IA_64_DISC + (0x60000000 + 42),
-    IA_64_VMS_SYMVEC_OFFSET    = IA_64_DISC + (0x60000000 + 44),
-    IA_64_VMS_SYMVEC_SEG       = IA_64_DISC + (0x60000000 + 46),
-    IA_64_VMS_UNWIND_OFFSET    = IA_64_DISC + (0x60000000 + 48),
-    IA_64_VMS_UNWIND_SEG       = IA_64_DISC + (0x60000000 + 50),
-    IA_64_VMS_STRTAB_OFFSET    = IA_64_DISC + (0x60000000 + 52),
-    IA_64_VMS_SYSVER_OFFSET    = IA_64_DISC + (0x60000000 + 54),
-    IA_64_VMS_IMG_RELA_OFF     = IA_64_DISC + (0x60000000 + 56),
-    IA_64_VMS_SEG_RELA_OFF     = IA_64_DISC + (0x60000000 + 58),
-    IA_64_VMS_FIXUP_RELA_OFF   = IA_64_DISC + (0x60000000 + 60),
-    IA_64_VMS_PLTGOT_OFFSET    = IA_64_DISC + (0x60000000 + 62),
-    IA_64_VMS_PLTGOT_SEG       = IA_64_DISC + (0x60000000 + 64),
-    IA_64_VMS_FPMODE           = IA_64_DISC + (0x60000000 + 66),
+    AARCH64_BTI_PLT          = AARCH64_DISC + 0x70000001,
+    AARCH64_PAC_PLT          = AARCH64_DISC + 0x70000003,
+    AARCH64_VARIANT_PCS      = AARCH64_DISC + 0x70000005,
+    AARCH64_MEMTAG_MODE      = AARCH64_DISC + 0x70000009,
+    AARCH64_MEMTAG_HEAP      = AARCH64_DISC + 0x7000000b,
+    AARCH64_MEMTAG_STACK     = AARCH64_DISC + 0x7000000c,
+    AARCH64_MEMTAG_GLOBALS   = AARCH64_DISC + 0x7000000d,
+    AARCH64_MEMTAG_GLOBALSSZ = AARCH64_DISC + 0x7000000f,
+
+    HEXAGON_SYMSZ = HEXAGON_DISC + 0x70000000,
+    HEXAGON_VER   = HEXAGON_DISC + 0x70000001,
+    HEXAGON_PLT   = HEXAGON_DISC + 0x70000002,
+
+    PPC_GOT = PPC_DISC + 0x70000000,
+    PPC_OPT = PPC_DISC + 0x70000001,
+
+    PPC64_GLINK = PPC64_DISC + 0x70000000,
+    PPC64_OPT = PPC64_DISC + 0x70000003,
+
+    RISCV_VARIANT_CC = RISCV_DISC + 0x70000003,
+
+    X86_64_PLT    = X86_64_DISC + 0x70000000,
+    X86_64_PLTSZ  = X86_64_DISC + 0x70000001,
+    X86_64_PLTENT = X86_64_DISC + 0x70000003,
+
+    IA_64_PLT_RESERVE         = IA_64_DISC + (0x70000000 + 0),
+    IA_64_VMS_SUBTYPE         = IA_64_DISC + (0x60000000 + 0),
+    IA_64_VMS_IMGIOCNT        = IA_64_DISC + (0x60000000 + 2),
+    IA_64_VMS_LNKFLAGS        = IA_64_DISC + (0x60000000 + 8),
+    IA_64_VMS_VIR_MEM_BLK_SIZ = IA_64_DISC + (0x60000000 + 10),
+    IA_64_VMS_IDENT           = IA_64_DISC + (0x60000000 + 12),
+    IA_64_VMS_NEEDED_IDENT    = IA_64_DISC + (0x60000000 + 16),
+    IA_64_VMS_IMG_RELA_CNT    = IA_64_DISC + (0x60000000 + 18),
+    IA_64_VMS_SEG_RELA_CNT    = IA_64_DISC + (0x60000000 + 20),
+    IA_64_VMS_FIXUP_RELA_CNT  = IA_64_DISC + (0x60000000 + 22),
+    IA_64_VMS_FIXUP_NEEDED    = IA_64_DISC + (0x60000000 + 24),
+    IA_64_VMS_SYMVEC_CNT      = IA_64_DISC + (0x60000000 + 26),
+    IA_64_VMS_XLATED          = IA_64_DISC + (0x60000000 + 30),
+    IA_64_VMS_STACKSIZE       = IA_64_DISC + (0x60000000 + 32),
+    IA_64_VMS_UNWINDSZ        = IA_64_DISC + (0x60000000 + 34),
+    IA_64_VMS_UNWIND_CODSEG   = IA_64_DISC + (0x60000000 + 36),
+    IA_64_VMS_UNWIND_INFOSEG  = IA_64_DISC + (0x60000000 + 38),
+    IA_64_VMS_LINKTIME        = IA_64_DISC + (0x60000000 + 40),
+    IA_64_VMS_SEG_NO          = IA_64_DISC + (0x60000000 + 42),
+    IA_64_VMS_SYMVEC_OFFSET   = IA_64_DISC + (0x60000000 + 44),
+    IA_64_VMS_SYMVEC_SEG      = IA_64_DISC + (0x60000000 + 46),
+    IA_64_VMS_UNWIND_OFFSET   = IA_64_DISC + (0x60000000 + 48),
+    IA_64_VMS_UNWIND_SEG      = IA_64_DISC + (0x60000000 + 50),
+    IA_64_VMS_STRTAB_OFFSET   = IA_64_DISC + (0x60000000 + 52),
+    IA_64_VMS_SYSVER_OFFSET   = IA_64_DISC + (0x60000000 + 54),
+    IA_64_VMS_IMG_RELA_OFF    = IA_64_DISC + (0x60000000 + 56),
+    IA_64_VMS_SEG_RELA_OFF    = IA_64_DISC + (0x60000000 + 58),
+    IA_64_VMS_FIXUP_RELA_OFF  = IA_64_DISC + (0x60000000 + 60),
+    IA_64_VMS_PLTGOT_OFFSET   = IA_64_DISC + (0x60000000 + 62),
+    IA_64_VMS_PLTGOT_SEG      = IA_64_DISC + (0x60000000 + 64),
+    IA_64_VMS_FPMODE          = IA_64_DISC + (0x60000000 + 66),
   };
+  // clang-format on

   static TAG from_value(uint64_t value, ARCH arch);
   static uint64_t to_value(TAG tag);
@@ -222,8 +230,8 @@ class LIEF_API DynamicEntry : public Object {
   DynamicEntry(const details::Elf32_Dyn& header, ARCH arch);

   DynamicEntry(TAG tag, uint64_t value) :
-    tag_(tag), value_(value)
-  {}
+    tag_(tag),
+    value_(value) {}

   DynamicEntry& operator=(const DynamicEntry&) = default;
   DynamicEntry(const DynamicEntry&) = default;
@@ -267,8 +275,8 @@ class LIEF_API DynamicEntry : public Object {

   std::string to_string() const;

-  LIEF_API friend
-  std::ostream& operator<<(std::ostream& os, const DynamicEntry& entry) {
+  LIEF_API friend std::ostream& operator<<(std::ostream& os,
+                                           const DynamicEntry& entry) {
     return entry.print(os);
   }

@@ -288,7 +296,7 @@ class LIEF_API DynamicEntry : public Object {
   }

   protected:
-  TAG      tag_ = TAG::DT_NULL_;
+  TAG tag_ = TAG::DT_NULL_;
   uint64_t value_ = 0;
 };

diff --git a/deps/LIEF/include/LIEF/ELF/DynamicEntryArray.hpp b/deps/LIEF/include/LIEF/ELF/DynamicEntryArray.hpp
index 9b61250e02a..bf146992137 100644
--- a/deps/LIEF/include/LIEF/ELF/DynamicEntryArray.hpp
+++ b/deps/LIEF/include/LIEF/ELF/DynamicEntryArray.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -40,8 +40,7 @@ class LIEF_API DynamicEntryArray : public DynamicEntry {
   DynamicEntryArray() = delete;
   DynamicEntryArray(DynamicEntry::TAG tag, array_t array) :
     DynamicEntry(tag, 0),
-    array_(std::move(array))
-  {}
+    array_(std::move(array)) {}

   DynamicEntryArray& operator=(const DynamicEntryArray&) = default;
   DynamicEntryArray(const DynamicEntryArray&) = default;
@@ -51,11 +50,11 @@ class LIEF_API DynamicEntryArray : public DynamicEntry {
   }

   /// Return the array values (list of pointers)
-  array_t& array() {
+  array_t& array() LIEF_LIFETIMEBOUND {
     return array_;
   }

-  const array_t& array() const {
+  const array_t& array() const LIEF_LIFETIMEBOUND {
     return array_;
   }
   void array(const array_t& array) {
@@ -63,18 +62,18 @@ class LIEF_API DynamicEntryArray : public DynamicEntry {
   }

   /// Insert the given function at ``pos``
-  DynamicEntryArray& insert(size_t pos, uint64_t function);
+  DynamicEntryArray& insert(size_t pos, uint64_t function) LIEF_LIFETIMEBOUND;

   /// Append the given function
-  DynamicEntryArray& append(uint64_t function) {
+  DynamicEntryArray& append(uint64_t function) LIEF_LIFETIMEBOUND {
     array_.push_back(function);
     return *this;
   }

   /// Remove the given function
-  DynamicEntryArray& remove(uint64_t function);
+  DynamicEntryArray& remove(uint64_t function) LIEF_LIFETIMEBOUND;

-  /// Number of function registred in this array
+  /// Number of functions registered in this array
   size_t size() const {
     return array_.size();
   }
@@ -88,7 +87,7 @@ class LIEF_API DynamicEntryArray : public DynamicEntry {
   }

   const uint64_t& operator[](size_t idx) const;
-  uint64_t&       operator[](size_t idx);
+  uint64_t& operator[](size_t idx);

   void accept(Visitor& visitor) const override;

diff --git a/deps/LIEF/include/LIEF/ELF/DynamicEntryAuxiliary.hpp b/deps/LIEF/include/LIEF/ELF/DynamicEntryAuxiliary.hpp
new file mode 100644
index 00000000000..b4379e0d87a
--- /dev/null
+++ b/deps/LIEF/include/LIEF/ELF/DynamicEntryAuxiliary.hpp
@@ -0,0 +1,74 @@
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
+ *
+ * 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.
+ */
+#ifndef LIEF_ELF_DYNAMIC_ENTRY_AUXILIARY_H
+#define LIEF_ELF_DYNAMIC_ENTRY_AUXILIARY_H
+
+#include <string>
+
+#include "LIEF/visibility.h"
+#include "LIEF/ELF/DynamicEntry.hpp"
+
+namespace LIEF {
+namespace ELF {
+
+/// Class which represents a ``DT_AUXILIARY`` entry in the dynamic table
+/// This kind of entry is used to specify a shared object that should be
+/// loaded before the current one.
+class LIEF_API DynamicEntryAuxiliary : public DynamicEntry {
+
+  public:
+  using DynamicEntry::DynamicEntry;
+  DynamicEntryAuxiliary() :
+    DynamicEntry(DynamicEntry::TAG::AUXILIARY, 0) {}
+
+  DynamicEntryAuxiliary(std::string name) :
+    DynamicEntry(DynamicEntry::TAG::AUXILIARY, 0),
+    name_(std::move(name)) {}
+
+  DynamicEntryAuxiliary& operator=(const DynamicEntryAuxiliary&) = default;
+  DynamicEntryAuxiliary(const DynamicEntryAuxiliary&) = default;
+
+  std::unique_ptr<DynamicEntry> clone() const override {
+    return std::unique_ptr<DynamicEntryAuxiliary>(
+        new DynamicEntryAuxiliary(*this)
+    );
+  }
+
+  /// The actual name (e.g. `libaux.so`)
+  const std::string& name() const {
+    return name_;
+  }
+
+  void name(std::string name) {
+    name_ = std::move(name);
+  }
+
+  void accept(Visitor& visitor) const override;
+
+  std::ostream& print(std::ostream& os) const override;
+
+  static bool classof(const DynamicEntry* entry) {
+    return entry->tag() == DynamicEntry::TAG::AUXILIARY;
+  }
+
+  ~DynamicEntryAuxiliary() override = default;
+
+  private:
+  std::string name_;
+};
+}
+}
+#endif
diff --git a/deps/LIEF/include/LIEF/ELF/DynamicEntryFilter.hpp b/deps/LIEF/include/LIEF/ELF/DynamicEntryFilter.hpp
new file mode 100644
index 00000000000..71a1c9c3e09
--- /dev/null
+++ b/deps/LIEF/include/LIEF/ELF/DynamicEntryFilter.hpp
@@ -0,0 +1,72 @@
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
+ *
+ * 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.
+ */
+#ifndef LIEF_ELF_DYNAMIC_ENTRY_FILTER_H
+#define LIEF_ELF_DYNAMIC_ENTRY_FILTER_H
+
+#include <string>
+
+#include "LIEF/visibility.h"
+#include "LIEF/ELF/DynamicEntry.hpp"
+
+namespace LIEF {
+namespace ELF {
+
+/// Class which represents a `DT_FILTER` entry in the dynamic table
+/// This kind of entry is used to specify a shared object for which the
+/// current one is a filter.
+class LIEF_API DynamicEntryFilter : public DynamicEntry {
+
+  public:
+  using DynamicEntry::DynamicEntry;
+  DynamicEntryFilter() :
+    DynamicEntry(DynamicEntry::TAG::FILTER, 0) {}
+
+  DynamicEntryFilter(std::string name) :
+    DynamicEntry(DynamicEntry::TAG::FILTER, 0),
+    name_(std::move(name)) {}
+
+  DynamicEntryFilter& operator=(const DynamicEntryFilter&) = default;
+  DynamicEntryFilter(const DynamicEntryFilter&) = default;
+
+  std::unique_ptr<DynamicEntry> clone() const override {
+    return std::unique_ptr<DynamicEntryFilter>(new DynamicEntryFilter(*this));
+  }
+
+  /// The actual name (e.g. `libfilter.so`)
+  const std::string& name() const {
+    return name_;
+  }
+
+  void name(std::string name) {
+    name_ = std::move(name);
+  }
+
+  void accept(Visitor& visitor) const override;
+
+  std::ostream& print(std::ostream& os) const override;
+
+  static bool classof(const DynamicEntry* entry) {
+    return entry->tag() == DynamicEntry::TAG::FILTER;
+  }
+
+  ~DynamicEntryFilter() override = default;
+
+  private:
+  std::string name_;
+};
+}
+}
+#endif
diff --git a/deps/LIEF/include/LIEF/ELF/DynamicEntryFlags.hpp b/deps/LIEF/include/LIEF/ELF/DynamicEntryFlags.hpp
index 4d4b89f3d42..efd445218b9 100644
--- a/deps/LIEF/include/LIEF/ELF/DynamicEntryFlags.hpp
+++ b/deps/LIEF/include/LIEF/ELF/DynamicEntryFlags.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -30,6 +30,7 @@ class LIEF_API DynamicEntryFlags : public DynamicEntry {
   public:
   static constexpr uint64_t BASE = 0x100000000;

+  // clang-format off
   enum class FLAG : uint64_t {
     ORIGIN        = 0x00000001, /**< The object may reference $ORIGIN. */
     SYMBOLIC      = 0x00000002, /**< Search the shared lib before searching the exe. */
@@ -68,6 +69,7 @@ class LIEF_API DynamicEntryFlags : public DynamicEntry {
     WEAKFILTER    = BASE + 0x020000000,
     NOCOMMON      = BASE + 0x040000000,
   };
+  // clang-format on

   using flags_list_t = std::vector<FLAG>;

@@ -76,11 +78,11 @@ class LIEF_API DynamicEntryFlags : public DynamicEntry {
   DynamicEntryFlags() = delete;

   static DynamicEntryFlags create_dt_flag(uint64_t value) {
-    return DynamicEntryFlags(DynamicEntry::TAG::FLAGS, value);
+    return {DynamicEntry::TAG::FLAGS, value};
   }

   static DynamicEntryFlags create_dt_flag_1(uint64_t value) {
-    return DynamicEntryFlags(DynamicEntry::TAG::FLAGS_1, value);
+    return {DynamicEntry::TAG::FLAGS_1, value};
   }

   DynamicEntryFlags& operator=(const DynamicEntryFlags&) = default;
@@ -99,10 +101,9 @@ class LIEF_API DynamicEntryFlags : public DynamicEntry {
   uint64_t raw_flags() const {
     flags_list_t flags = this->flags();
     return std::accumulate(flags.begin(), flags.end(), uint64_t(0),
-      [] (uint64_t value, FLAG f) {
-        return value + (uint64_t)f;
-      }
-    );
+                           [](uint64_t value, FLAG f) {
+                             return value + (uint64_t)f;
+                           });
   }

   /// Add the given FLAG
@@ -128,13 +129,13 @@ class LIEF_API DynamicEntryFlags : public DynamicEntry {
            entry->tag() == DynamicEntry::TAG::FLAGS_1;
   }

-  ~DynamicEntryFlags() = default;
+  ~DynamicEntryFlags() override = default;

   std::ostream& print(std::ostream& os) const override;
+
   private:
   DynamicEntryFlags(DynamicEntry::TAG tag, uint64_t flags) :
-    DynamicEntry(tag, flags)
-  {}
+    DynamicEntry(tag, flags) {}
 };

 LIEF_API const char* to_string(DynamicEntryFlags::FLAG e);
diff --git a/deps/LIEF/include/LIEF/ELF/DynamicEntryLibrary.hpp b/deps/LIEF/include/LIEF/ELF/DynamicEntryLibrary.hpp
index 86d77b5409f..4fbd0f508f3 100644
--- a/deps/LIEF/include/LIEF/ELF/DynamicEntryLibrary.hpp
+++ b/deps/LIEF/include/LIEF/ELF/DynamicEntryLibrary.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -32,13 +32,11 @@ class LIEF_API DynamicEntryLibrary : public DynamicEntry {
   using DynamicEntry::DynamicEntry;

   DynamicEntryLibrary() :
-    DynamicEntry::DynamicEntry{DynamicEntry::TAG::NEEDED, 0}
-  {}
+    DynamicEntry::DynamicEntry{DynamicEntry::TAG::NEEDED, 0} {}

   DynamicEntryLibrary(std::string name) :
     DynamicEntry::DynamicEntry{DynamicEntry::TAG::NEEDED, 0},
-    libname_(std::move(name))
-  {}
+    libname_(std::move(name)) {}

   DynamicEntryLibrary& operator=(const DynamicEntryLibrary&) = default;
   DynamicEntryLibrary(const DynamicEntryLibrary&) = default;
diff --git a/deps/LIEF/include/LIEF/ELF/DynamicEntryRpath.hpp b/deps/LIEF/include/LIEF/ELF/DynamicEntryRpath.hpp
index c95b6a0e236..323e3818146 100644
--- a/deps/LIEF/include/LIEF/ELF/DynamicEntryRpath.hpp
+++ b/deps/LIEF/include/LIEF/ELF/DynamicEntryRpath.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -26,24 +26,22 @@ namespace LIEF {
 namespace ELF {

 /// Class which represents a ``DT_RPATH`` entry. This attribute is
-/// deprecated (cf. ``man ld``) in favor of ``DT_RUNPATH`` (See DynamicEntryRunPath)
+/// deprecated (cf. ``man ld``) in favor of ``DT_RUNPATH`` (See
+/// DynamicEntryRunPath)
 class LIEF_API DynamicEntryRpath : public DynamicEntry {
   public:
   static constexpr char delimiter = ':';
   using DynamicEntry::DynamicEntry;
   DynamicEntryRpath() :
-    DynamicEntry::DynamicEntry(DynamicEntry::TAG::RPATH, 0)
-  {}
+    DynamicEntry::DynamicEntry(DynamicEntry::TAG::RPATH, 0) {}

   DynamicEntryRpath(std::string rpath) :
     DynamicEntry::DynamicEntry(DynamicEntry::TAG::RPATH, 0),
-    rpath_(std::move(rpath))
-  {}
+    rpath_(std::move(rpath)) {}

   /// Constructor from a list of paths
   DynamicEntryRpath(const std::vector<std::string>& paths) :
-    DynamicEntry::DynamicEntry(DynamicEntry::TAG::RPATH, 0)
-  {
+    DynamicEntry::DynamicEntry(DynamicEntry::TAG::RPATH, 0) {
     this->paths(paths);
   }

@@ -68,13 +66,14 @@ class LIEF_API DynamicEntryRpath : public DynamicEntry {
   void paths(const std::vector<std::string>& paths);

   /// Insert a ``path`` at the given ``position``
-  DynamicEntryRpath& insert(size_t pos, const std::string& path);
+  DynamicEntryRpath& insert(size_t pos,
+                            const std::string& path) LIEF_LIFETIMEBOUND;

   /// Append the given ``path``
-  DynamicEntryRpath& append(std::string path);
+  DynamicEntryRpath& append(std::string path) LIEF_LIFETIMEBOUND;

   /// Remove the given ``path``
-  DynamicEntryRpath& remove(const std::string& path);
+  DynamicEntryRpath& remove(const std::string& path) LIEF_LIFETIMEBOUND;

   DynamicEntryRpath& operator+=(std::string path) {
     return append(std::move(path));
@@ -92,7 +91,7 @@ class LIEF_API DynamicEntryRpath : public DynamicEntry {

   std::ostream& print(std::ostream& os) const override;

-  ~DynamicEntryRpath() = default;
+  ~DynamicEntryRpath() override = default;

   private:
   std::string rpath_;
diff --git a/deps/LIEF/include/LIEF/ELF/DynamicEntryRunPath.hpp b/deps/LIEF/include/LIEF/ELF/DynamicEntryRunPath.hpp
index aa929a61de2..2b6f285d495 100644
--- a/deps/LIEF/include/LIEF/ELF/DynamicEntryRunPath.hpp
+++ b/deps/LIEF/include/LIEF/ELF/DynamicEntryRunPath.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -34,19 +34,16 @@ class LIEF_API DynamicEntryRunPath : public DynamicEntry {
   using DynamicEntry::DynamicEntry;

   DynamicEntryRunPath() :
-    DynamicEntry::DynamicEntry(DynamicEntry::TAG::RUNPATH, 0)
-  {}
+    DynamicEntry::DynamicEntry(DynamicEntry::TAG::RUNPATH, 0) {}

   /// Constructor from (run)path
   DynamicEntryRunPath(std::string runpath) :
     DynamicEntry::DynamicEntry(DynamicEntry::TAG::RUNPATH, 0),
-    runpath_(std::move(runpath))
-  {}
+    runpath_(std::move(runpath)) {}

   /// Constructor from a list of paths
   DynamicEntryRunPath(const std::vector<std::string>& paths) :
-    DynamicEntry::DynamicEntry(DynamicEntry::TAG::RUNPATH, 0)
-  {
+    DynamicEntry::DynamicEntry(DynamicEntry::TAG::RUNPATH, 0) {
     this->paths(paths);
   }

@@ -71,16 +68,17 @@ class LIEF_API DynamicEntryRunPath : public DynamicEntry {
   void paths(const std::vector<std::string>& paths);

   /// Insert a ``path`` at the given ``position``
-  DynamicEntryRunPath& insert(size_t pos, const std::string& path);
+  DynamicEntryRunPath& insert(size_t pos,
+                              const std::string& path) LIEF_LIFETIMEBOUND;

   /// Append the given ``path``
-  DynamicEntryRunPath& append(const std::string& path);
+  DynamicEntryRunPath& append(const std::string& path) LIEF_LIFETIMEBOUND;

   /// Remove the given ``path``
-  DynamicEntryRunPath& remove(const std::string& path);
+  DynamicEntryRunPath& remove(const std::string& path) LIEF_LIFETIMEBOUND;

-  DynamicEntryRunPath& operator+=(std::string path) {
-    return append(std::move(path));
+  DynamicEntryRunPath& operator+=(const std::string& path) {
+    return append(path);
   }

   DynamicEntryRunPath& operator-=(const std::string& path) {
@@ -95,7 +93,7 @@ class LIEF_API DynamicEntryRunPath : public DynamicEntry {

   std::ostream& print(std::ostream& os) const override;

-  ~DynamicEntryRunPath() = default;
+  ~DynamicEntryRunPath() override = default;

   private:
   std::string runpath_;
diff --git a/deps/LIEF/include/LIEF/ELF/DynamicSharedObject.hpp b/deps/LIEF/include/LIEF/ELF/DynamicSharedObject.hpp
index 6206eab223d..e0845535977 100644
--- a/deps/LIEF/include/LIEF/ELF/DynamicSharedObject.hpp
+++ b/deps/LIEF/include/LIEF/ELF/DynamicSharedObject.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -27,19 +27,17 @@ namespace ELF {
 /// Class which represents a ``DT_SONAME`` entry in the dynamic table
 /// This kind of entry is usually used to name the original library.
 ///
-/// This entry is not present for executable.
+/// This entry is not present for executables.
 class LIEF_API DynamicSharedObject : public DynamicEntry {

   public:
   using DynamicEntry::DynamicEntry;
   DynamicSharedObject() :
-    DynamicEntry(DynamicEntry::TAG::SONAME, 0)
-  {}
+    DynamicEntry(DynamicEntry::TAG::SONAME, 0) {}

   DynamicSharedObject(std::string name) :
     DynamicEntry(DynamicEntry::TAG::SONAME, 0),
-    name_(std::move(name))
-  {}
+    name_(std::move(name)) {}

   DynamicSharedObject& operator=(const DynamicSharedObject&) = default;
   DynamicSharedObject(const DynamicSharedObject&) = default;
diff --git a/deps/LIEF/include/LIEF/ELF/EnumToString.hpp b/deps/LIEF/include/LIEF/ELF/EnumToString.hpp
index 8eae9f7af38..e6412128c95 100644
--- a/deps/LIEF/include/LIEF/ELF/EnumToString.hpp
+++ b/deps/LIEF/include/LIEF/ELF/EnumToString.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -25,4 +25,3 @@ LIEF_API const char* to_string(ARCH e);
 } // namespace LIEF

 #endif
-
diff --git a/deps/LIEF/include/LIEF/ELF/GnuHash.hpp b/deps/LIEF/include/LIEF/ELF/GnuHash.hpp
index 1cf07be653e..6f993748011 100644
--- a/deps/LIEF/include/LIEF/ELF/GnuHash.hpp
+++ b/deps/LIEF/include/LIEF/ELF/GnuHash.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -52,8 +52,7 @@ class LIEF_API GnuHash : public Object {
     shift2_{shift2},
     bloom_filters_{std::move(bloom_filters)},
     buckets_{std::move(buckets)},
-    hash_values_{std::move(hash_values)}
-  {}
+    hash_values_{std::move(hash_values)} {}

   GnuHash& operator=(const GnuHash& copy) = default;
   GnuHash(const GnuHash& copy) = default;
@@ -70,7 +69,7 @@ class LIEF_API GnuHash : public Object {
   }

   /// Index of the first symbol in the dynamic
-  /// symbols table which accessible with the hash table
+  /// symbols table which is accessible with the hash table
   uint32_t symbol_index() const {
     return symbol_index_;
   }
@@ -87,17 +86,17 @@ class LIEF_API GnuHash : public Object {
   }

   /// Bloom filters
-  const std::vector<uint64_t>& bloom_filters() const {
+  const std::vector<uint64_t>& bloom_filters() const LIEF_LIFETIMEBOUND {
     return bloom_filters_;
   }

   /// Hash buckets
-  const std::vector<uint32_t>& buckets() const {
+  const std::vector<uint32_t>& buckets() const LIEF_LIFETIMEBOUND {
     return buckets_;
   }

   /// Hash values
-  const std::vector<uint32_t>& hash_values() const {
+  const std::vector<uint32_t>& hash_values() const LIEF_LIFETIMEBOUND {
     return hash_values_;
   }

@@ -106,6 +105,9 @@ class LIEF_API GnuHash : public Object {

   /// Check if the given hash passes the bucket filter
   bool check_bucket(uint32_t hash) const {
+    if (nb_buckets() == 0) {
+      return false;
+    }
     return buckets_[hash % nb_buckets()] > 0;
   }

@@ -117,17 +119,19 @@ class LIEF_API GnuHash : public Object {

   /// Check if the symbol associated with the given hash *probably* exists. If
   /// the returned value is ``false`` you can assume at ``100%`` that
-  /// the symbol doesn't exists. If ``true`` you can't
+  /// the symbol doesn't exist. If ``true`` you can't
   /// do any assumption
   bool check(uint32_t hash) const;


   void accept(Visitor& visitor) const override;

-  LIEF_API friend std::ostream& operator<<(std::ostream& os, const GnuHash& gnuhash);
+  LIEF_API friend std::ostream& operator<<(std::ostream& os,
+                                           const GnuHash& gnuhash);

   template<class ELF_T>
-  static LIEF_LOCAL std::unique_ptr<GnuHash> parse(SpanStream& strm, uint64_t dynsymcount);
+  static LIEF_LOCAL std::unique_ptr<GnuHash> parse(SpanStream& strm,
+                                                   uint64_t dynsymcount);

   template<class ELF_T>
   static LIEF_LOCAL result<uint32_t> nb_symbols(SpanStream& strm);
@@ -138,7 +142,7 @@ class LIEF_API GnuHash : public Object {

   private:
   uint32_t symbol_index_ = 0;
-  uint32_t shift2_       = 0;
+  uint32_t shift2_ = 0;

   std::vector<uint64_t> bloom_filters_;
   std::vector<uint32_t> buckets_;
@@ -149,7 +153,7 @@ class LIEF_API GnuHash : public Object {
 };


-} // namepsace ELF
+} // namespace ELF
 } // namespace LIEF

 #endif
diff --git a/deps/LIEF/include/LIEF/ELF/Header.hpp b/deps/LIEF/include/LIEF/ELF/Header.hpp
index 2ed6ca65e8d..007b33943ee 100644
--- a/deps/LIEF/include/LIEF/ELF/Header.hpp
+++ b/deps/LIEF/include/LIEF/ELF/Header.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -34,80 +34,81 @@ class Parser;
 /// ELF `Elfxx_Ehdr` structure
 class LIEF_API Header : public Object {
   friend class Parser;
+
   public:
   using identity_t = std::array<uint8_t, 16>;

   public:
   /// e_ident size and indices.
   enum ELF_INDENT {
-    ELI_MAG0       = 0,  ///< File identification index.
-    ELI_MAG1       = 1,  ///< File identification index.
-    ELI_MAG2       = 2,  ///< File identification index.
-    ELI_MAG3       = 3,  ///< File identification index.
-    ELI_CLASS      = 4,  ///< File class.
-    ELI_DATA       = 5,  ///< Data encoding.
-    ELI_VERSION    = 6,  ///< File version.
-    ELI_OSABI      = 7,  ///< OS/ABI identification.
-    ELI_ABIVERSION = 8,  ///< ABI version.
-    ELI_PAD        = 9,  ///< Start of padding bytes.
-    ELI_NIDENT     = 16  ///< Number of bytes in e_ident.
+    ELI_MAG0 = 0,       ///< File identification index.
+    ELI_MAG1 = 1,       ///< File identification index.
+    ELI_MAG2 = 2,       ///< File identification index.
+    ELI_MAG3 = 3,       ///< File identification index.
+    ELI_CLASS = 4,      ///< File class.
+    ELI_DATA = 5,       ///< Data encoding.
+    ELI_VERSION = 6,    ///< File version.
+    ELI_OSABI = 7,      ///< OS/ABI identification.
+    ELI_ABIVERSION = 8, ///< ABI version.
+    ELI_PAD = 9,        ///< Start of padding bytes.
+    ELI_NIDENT = 16,    ///< Number of bytes in e_ident.
   };

   /// The type of the underlying ELF file. This enum matches
   /// the semantic of `ET_NONE`, `ET_REL`, ...
   enum class FILE_TYPE {
     NONE = 0, ///< Can't be determined
-    REL  = 1, ///< Relocatable file (or object file)
+    REL = 1,  ///< Relocatable file (or object file)
     EXEC = 2, ///< non-pie executable
-    DYN  = 3, ///< Shared library **or** a pie-executable
+    DYN = 3,  ///< Shared library **or** a pie-executable
     CORE = 4, ///< Core dump file
   };

   /// Match the result of `Elfxx_Ehdr.e_version`
   enum class VERSION {
-    NONE    = 0, ///< Invalid ELF version
+    NONE = 0,    ///< Invalid ELF version
     CURRENT = 1, ///< Current version (default)
   };

   /// Match the result of `Elfxx_Ehdr.e_ident[EI_CLASS]`
   enum class CLASS {
-    NONE = 0, /// Invalid class
-    ELF32,    /// 32-bit objects
-    ELF64,    /// 64-bits objects
+    NONE = 0, ///< Invalid class
+    ELF32,    ///< 32-bit objects
+    ELF64,    ///< 64-bit objects
   };

   /// Match the result `Elfxx_Ehdr.e_ident[EI_OSABI]`
   enum class OS_ABI {
-    SYSTEMV      = 0,  /// UNIX System V ABI
-    HPUX         = 1,  /// HP-UX operating system
-    NETBSD       = 2,  /// NetBSD
-    GNU          = 3,  /// GNU/Linux
-    LINUX        = 3,  /// Historical alias for ELFOSABI_GNU.
-    HURD         = 4,  /// GNU/Hurd
-    SOLARIS      = 6,  /// Solaris
-    AIX          = 7,  /// AIX
-    IRIX         = 8,  /// IRIX
-    FREEBSD      = 9,  /// FreeBSD
-    TRU64        = 10, /// TRU64 UNIX
-    MODESTO      = 11, /// Novell Modesto
-    OPENBSD      = 12, /// OpenBSD
-    OPENVMS      = 13, /// OpenVMS
-    NSK          = 14, /// Hewlett-Packard Non-Stop Kernel
-    AROS         = 15, /// AROS
-    FENIXOS      = 16, /// FenixOS
-    CLOUDABI     = 17, /// Nuxi CloudABI
-    C6000_ELFABI = 64, /// Bare-metal TMS320C6000
-    AMDGPU_HSA   = 64, /// AMD HSA runtime
-    C6000_LINUX  = 65, /// Linux TMS320C6000
-    ARM          = 97, /// ARM
-    STANDALONE   = 255 /// Standalone (embedded) application
+    SYSTEMV = 0,       ///< UNIX System V ABI
+    HPUX = 1,          ///< HP-UX operating system
+    NETBSD = 2,        ///< NetBSD
+    GNU = 3,           ///< GNU/Linux
+    LINUX = 3,         ///< Historical alias for ELFOSABI_GNU.
+    HURD = 4,          ///< GNU/Hurd
+    SOLARIS = 6,       ///< Solaris
+    AIX = 7,           ///< AIX
+    IRIX = 8,          ///< IRIX
+    FREEBSD = 9,       ///< FreeBSD
+    TRU64 = 10,        ///< TRU64 UNIX
+    MODESTO = 11,      ///< Novell Modesto
+    OPENBSD = 12,      ///< OpenBSD
+    OPENVMS = 13,      ///< OpenVMS
+    NSK = 14,          ///< Hewlett-Packard Non-Stop Kernel
+    AROS = 15,         ///< AROS
+    FENIXOS = 16,      ///< FenixOS
+    CLOUDABI = 17,     ///< Nuxi CloudABI
+    C6000_ELFABI = 64, ///< Bare-metal TMS320C6000
+    AMDGPU_HSA = 64,   ///< AMD HSA runtime
+    C6000_LINUX = 65,  ///< Linux TMS320C6000
+    ARM = 97,          ///< ARM
+    STANDALONE = 255,  ///< Standalone (embedded) application
   };

   /// Match the result `Elfxx_Ehdr.e_ident[EI_DATA]`
   enum class ELF_DATA {
-    NONE = 0, /// Invalid data encoding
-    LSB  = 1, /// 2's complement, little endian
-    MSB  = 2  /// 2's complement, big endian
+    NONE = 0, ///< Invalid data encoding
+    LSB = 1,  ///< 2's complement, little endian
+    MSB = 2,  ///< 2's complement, big endian
   };

   Header() = default;
diff --git a/deps/LIEF/include/LIEF/ELF/Note.hpp b/deps/LIEF/include/LIEF/ELF/Note.hpp
index ae365a21d62..a5ce70e73e8 100644
--- a/deps/LIEF/include/LIEF/ELF/Note.hpp
+++ b/deps/LIEF/include/LIEF/ELF/Note.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -21,6 +21,7 @@
 #include <memory>

 #include "LIEF/Object.hpp"
+#include "LIEF/compiler_attributes.hpp"
 #include "LIEF/visibility.h"
 #include "LIEF/errors.hpp"
 #include "LIEF/span.hpp"
@@ -52,12 +53,16 @@ class LIEF_API Note : public Object {
     ///
     /// See: NoteAbi
     GNU_ABI_TAG,
+
     /// Match `NT_HWCAP`: Synthetic hardware capabilities information
     GNU_HWCAP,
+
     /// Match `NT_GNU_BUILD_ID`: Unique build ID as generated by the GNU ld
     GNU_BUILD_ID,
+
     /// Match `NT_GNU_GOLD_VERSION`: The version of gold used to link
     GNU_GOLD_VERSION,
+
     /// Match `NT_GNU_PROPERTY_TYPE_0`: Program property note, as described in
     /// "Linux Extensions to the gABI".
     GNU_PROPERTY_TYPE_0,
@@ -71,11 +76,13 @@ class LIEF_API Note : public Object {
     /// Coredump that wraps the `elf_prstatus` structure
     CORE_PRSTATUS,
     CORE_FPREGSET,
+
     /// Coredump that wraps the `elf_prpsinfo` structure
     ///
     /// See: CorePrPsInfo
     CORE_PRPSINFO,
     CORE_TASKSTRUCT,
+
     /// Coredump that contains a copy of all the auxiliary vectors (auxv)
     ///
     /// See: CoreAuxv
@@ -119,10 +126,12 @@ class LIEF_API Note : public Object {

     /// Note specific to Go binaries
     GO_BUILDID,
+
     /// Note for SystemTap probes
     STAPSDT,
+
     /// QNX Note
-    QNX_STACK
+    QNX_STACK,
   };

   public:
@@ -148,27 +157,28 @@ class LIEF_API Note : public Object {
   /// Create a new note from the given parameters. Additional information
   /// such as the architecture or the ELF class could be required for
   /// creating notes like Coredump notes.
-  static std::unique_ptr<Note> create(
-      const std::string& name, uint32_t type, description_t description,
-      std::string section_name,
-      Header::FILE_TYPE ftype = Header::FILE_TYPE::NONE, ARCH arch = ARCH::NONE,
-      Header::CLASS cls = Header::CLASS::NONE);
+  static std::unique_ptr<Note>
+      create(const std::string& name, uint32_t type, description_t description,
+             std::string section_name,
+             Header::FILE_TYPE ftype = Header::FILE_TYPE::NONE,
+             ARCH arch = ARCH::NONE, Header::CLASS cls = Header::CLASS::NONE);

   /// Create a new note from the given parameters. Additional information
   /// such as the architecture or the ELF class could be required for
   /// creating notes like Coredump notes.
-  static std::unique_ptr<Note> create(
-      const std::string& name, TYPE type, description_t description,
-      std::string section_name,
-      ARCH arch = ARCH::NONE, Header::CLASS cls = Header::CLASS::NONE);
+  static std::unique_ptr<Note> create(const std::string& name, TYPE type,
+                                      description_t description,
+                                      std::string section_name,
+                                      ARCH arch = ARCH::NONE,
+                                      Header::CLASS cls = Header::CLASS::NONE);

   /// Create a new note from the given stream. Additional information
   /// such as the architecture or the ELF class could be required for
   /// creating notes like Coredump notes.
-  static std::unique_ptr<Note> create(BinaryStream& stream,
-      std::string section_name,
-      Header::FILE_TYPE ftype = Header::FILE_TYPE::NONE, ARCH arch = ARCH::NONE,
-      Header::CLASS cls = Header::CLASS::NONE);
+  static std::unique_ptr<Note>
+      create(BinaryStream& stream, std::string section_name,
+             Header::FILE_TYPE ftype = Header::FILE_TYPE::NONE,
+             ARCH arch = ARCH::NONE, Header::CLASS cls = Header::CLASS::NONE);

   Note& operator=(const Note& copy) = default;
   Note(const Note& copy) = default;
@@ -203,11 +213,11 @@ class LIEF_API Note : public Object {
   }

   /// Return the description associated with the note
-  span<const uint8_t> description() const {
+  span<const uint8_t> description() const LIEF_LIFETIMEBOUND {
     return description_;
   }

-  span<uint8_t> description() {
+  span<uint8_t> description() LIEF_LIFETIMEBOUND {
     return description_;
   }

@@ -227,16 +237,14 @@ class LIEF_API Note : public Object {

   void accept(Visitor& visitor) const override;

-  LIEF_API friend
-  std::ostream& operator<<(std::ostream& os, const Note& note) {
+  LIEF_API friend std::ostream& operator<<(std::ostream& os, const Note& note) {
     note.dump(os);
     return os;
   }

   template<class T>
   const T* cast() const {
-    static_assert(std::is_base_of<Note, T>::value,
-                  "Require Note inheritance");
+    static_assert(std::is_base_of<Note, T>::value, "Require Note inheritance");
     if (T::classof(this)) {
       return static_cast<const T*>(this);
     }
@@ -256,8 +264,7 @@ class LIEF_API Note : public Object {
     type_(type),
     original_type_(original_type),
     description_(std::move(description)),
-    section_name_(std::move(section))
-  {}
+    section_name_(std::move(section)) {}

   template<class T>
   LIEF_LOCAL result<T> read_at(size_t offset) const;
@@ -267,10 +274,10 @@ class LIEF_API Note : public Object {

   LIEF_LOCAL ok_error_t write_string_at(size_t offset, const std::string& value);

-  LIEF_LOCAL result<std::string>
-  read_string_at(size_t offset, size_t maxsize = 0) const;
+  LIEF_LOCAL result<std::string> read_string_at(size_t offset,
+                                                size_t maxsize = 0) const;

-  std::string  name_;
+  std::string name_;
   TYPE type_ = TYPE::UNKNOWN;
   uint32_t original_type_ = 0;
   description_t description_;
@@ -280,6 +287,6 @@ class LIEF_API Note : public Object {
 LIEF_API const char* to_string(Note::TYPE type);


-} // namepsace ELF
+} // namespace ELF
 } // namespace LIEF
 #endif
diff --git a/deps/LIEF/include/LIEF/ELF/NoteDetails.hpp b/deps/LIEF/include/LIEF/ELF/NoteDetails.hpp
index f1aba88bed5..fcd422d1fd6 100644
--- a/deps/LIEF/include/LIEF/ELF/NoteDetails.hpp
+++ b/deps/LIEF/include/LIEF/ELF/NoteDetails.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/deps/LIEF/include/LIEF/ELF/NoteDetails/AndroidIdent.hpp b/deps/LIEF/include/LIEF/ELF/NoteDetails/AndroidIdent.hpp
index 0bcb5885452..125cba1f967 100644
--- a/deps/LIEF/include/LIEF/ELF/NoteDetails/AndroidIdent.hpp
+++ b/deps/LIEF/include/LIEF/ELF/NoteDetails/AndroidIdent.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -27,12 +27,13 @@ namespace ELF {

 /// Class representing the ".note.android.ident" section
 ///
-/// @see: https://android.googlesource.com/platform/ndk/+/ndk-release-r16/sources/crt/crtbrand.S#39
+/// @see
+/// https://android.googlesource.com/platform/ndk/+/ndk-release-r16/sources/crt/crtbrand.S#39
 class LIEF_API AndroidIdent : public Note {
   public:
-  static constexpr size_t sdk_version_size        = sizeof(uint32_t);
-  static constexpr size_t ndk_version_size        = 64 * sizeof(char);
-  static constexpr size_t ndk_build_number_size   = 64 * sizeof(char);
+  static constexpr size_t sdk_version_size = sizeof(uint32_t);
+  static constexpr size_t ndk_version_size = 64 * sizeof(char);
+  static constexpr size_t ndk_build_number_size = 64 * sizeof(char);

   public:
   std::unique_ptr<Note> clone() const override {
@@ -66,17 +67,18 @@ class LIEF_API AndroidIdent : public Note {
     return sdk_version_size + ndk_version_size + ndk_build_number_size;
   }

-  LIEF_API friend
-  std::ostream& operator<<(std::ostream& os, const AndroidIdent& note) {
+  LIEF_API friend std::ostream& operator<<(std::ostream& os,
+                                           const AndroidIdent& note) {
     note.dump(os);
     return os;
   }
+
   protected:
   using Note::Note;
 };


-} // namepsace ELF
+} // namespace ELF
 } // namespace LIEF

 #endif
diff --git a/deps/LIEF/include/LIEF/ELF/NoteDetails/Core.hpp b/deps/LIEF/include/LIEF/ELF/NoteDetails/Core.hpp
index 699328e08b5..4a9062949d7 100644
--- a/deps/LIEF/include/LIEF/ELF/NoteDetails/Core.hpp
+++ b/deps/LIEF/include/LIEF/ELF/NoteDetails/Core.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/deps/LIEF/include/LIEF/ELF/NoteDetails/NoteAbi.hpp b/deps/LIEF/include/LIEF/ELF/NoteDetails/NoteAbi.hpp
index aa7de8fa4b9..1043af9f0fa 100644
--- a/deps/LIEF/include/LIEF/ELF/NoteDetails/NoteAbi.hpp
+++ b/deps/LIEF/include/LIEF/ELF/NoteDetails/NoteAbi.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -37,16 +37,16 @@ class LIEF_API NoteAbi : public Note {
     FREEBSD,
     NETBSD,
     SYLLABLE,
-    NACL
+    NACL,
   };
   /// Version type: (Major, Minor, Patch)
   using version_t = std::array<uint32_t, 3>;

-  static constexpr size_t abi_offset      = 0;
-  static constexpr size_t abi_size        = sizeof(uint32_t);
+  static constexpr size_t abi_offset = 0;
+  static constexpr size_t abi_size = sizeof(uint32_t);

-  static constexpr size_t version_offset  = abi_size;
-  static constexpr size_t version_size    = 3 * sizeof(uint32_t);
+  static constexpr size_t version_offset = abi_size;
+  static constexpr size_t version_size = 3 * sizeof(uint32_t);

   public:
   using Note::Note;
@@ -72,15 +72,14 @@ class LIEF_API NoteAbi : public Note {
     return note->type() == Note::TYPE::GNU_ABI_TAG;
   }

-  //// Size of the description content
+  /// Size of the description content
   static constexpr uint8_t description_size() {
     return /* abi */ sizeof(uint32_t) + /* version */ 3 * sizeof(uint32_t);
   }

   ~NoteAbi() override = default;

-  LIEF_API friend
-  std::ostream& operator<<(std::ostream& os, const NoteAbi& note) {
+  LIEF_API friend std::ostream& operator<<(std::ostream& os, const NoteAbi& note) {
     note.dump(os);
     return os;
   }
@@ -88,7 +87,7 @@ class LIEF_API NoteAbi : public Note {

 LIEF_API const char* to_string(NoteAbi::ABI abi);

-} // namepsace ELF
+} // namespace ELF
 } // namespace LIEF

 #endif
diff --git a/deps/LIEF/include/LIEF/ELF/NoteDetails/NoteGnuProperty.hpp b/deps/LIEF/include/LIEF/ELF/NoteDetails/NoteGnuProperty.hpp
index 807a5703d76..fcf6573d197 100644
--- a/deps/LIEF/include/LIEF/ELF/NoteDetails/NoteGnuProperty.hpp
+++ b/deps/LIEF/include/LIEF/ELF/NoteDetails/NoteGnuProperty.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -29,22 +29,37 @@ namespace ELF {
 /// Class that wraps the `NT_GNU_PROPERTY_TYPE_0` note
 class LIEF_API NoteGnuProperty : public Note {
   public:
-
   /// This class wraps the different properties that can be used in a
   /// `NT_GNU_PROPERTY_TYPE_0` note
   class LIEF_API Property {
     public:
+    Property() = delete;

     /// LIEF's mirror types of the original `GNU_PROPERTY_` values
     enum class TYPE {
       UNKNOWN = 0,
-      GENERIC,              ///< Property that dont' have special implementation
-      AARCH64_FEATURES,     ///< Mirror of `GNU_PROPERTY_AARCH64_FEATURE_1_AND`
-      AARCH64_PAUTH,        ///< Mirror of `GNU_PROPERTY_AARCH64_FEATURE_PAUTH`
-      STACK_SIZE,           ///< Mirror of `GNU_PROPERTY_STACK_SIZE`
-      NO_COPY_ON_PROTECTED, ///< Mirror of `GNU_PROPERTY_NO_COPY_ON_PROTECTED`
-      X86_ISA,              ///< Mirror of `GNU_PROPERTY_X86_ISA_1_*` and `GNU_PROPERTY_X86_COMPAT_*`
-      X86_FEATURE,          ///< Mirror of `GNU_PROPERTY_X86_FEATURE_*`
+
+      /// Property that doesn't have a special implementation
+      GENERIC,
+
+      /// Mirror of `GNU_PROPERTY_AARCH64_FEATURE_1_AND`
+      AARCH64_FEATURES,
+
+      /// Mirror of `GNU_PROPERTY_AARCH64_FEATURE_PAUTH`
+      AARCH64_PAUTH,
+
+      /// Mirror of `GNU_PROPERTY_STACK_SIZE`
+      STACK_SIZE,
+
+      /// Mirror of `GNU_PROPERTY_NO_COPY_ON_PROTECTED`
+      NO_COPY_ON_PROTECTED,
+
+      /// Mirror of `GNU_PROPERTY_X86_ISA_1_*` and `GNU_PROPERTY_X86_COMPAT_*`
+      X86_ISA,
+
+      ///< Mirror of `GNU_PROPERTY_X86_FEATURE_*`
+      X86_FEATURE,
+
       NEEDED,
     };

@@ -57,14 +72,13 @@ class LIEF_API NoteGnuProperty : public Note {

     virtual ~Property() = default;

-    LIEF_API friend
-    std::ostream& operator<<(std::ostream& os, const Property& prop) {
+    LIEF_API friend std::ostream& operator<<(std::ostream& os,
+                                             const Property& prop) {
       prop.dump(os);
       return os;
     }

     protected:
-    Property() = delete;
     Property(TYPE type) :
       type_(type) {}
     TYPE type_ = TYPE::UNKNOWN;
@@ -72,13 +86,12 @@ class LIEF_API NoteGnuProperty : public Note {

   using properties_t = std::vector<std::unique_ptr<NoteGnuProperty::Property>>;

-  NoteGnuProperty(ARCH arch, Header::CLASS cls, std::string name,
-                  uint32_t type, description_t description,
-                  std::string secname) :
+  NoteGnuProperty(ARCH arch, Header::CLASS cls, std::string name, uint32_t type,
+                  description_t description, std::string secname) :
     Note(std::move(name), TYPE::GNU_PROPERTY_TYPE_0, type, std::move(description),
          std::move(secname)),
-    arch_(arch), class_(cls)
-  {}
+    arch_(arch),
+    class_(cls) {}

   std::unique_ptr<Note> clone() const override {
     return std::unique_ptr<Note>(new NoteGnuProperty(*this));
@@ -100,8 +113,8 @@ class LIEF_API NoteGnuProperty : public Note {

   ~NoteGnuProperty() override = default;

-  LIEF_API friend
-  std::ostream& operator<<(std::ostream& os, const NoteGnuProperty& note) {
+  LIEF_API friend std::ostream& operator<<(std::ostream& os,
+                                           const NoteGnuProperty& note) {
     note.dump(os);
     return os;
   }
@@ -113,7 +126,7 @@ class LIEF_API NoteGnuProperty : public Note {

 LIEF_API const char* to_string(NoteGnuProperty::Property::TYPE type);

-} // namepsace ELF
+} // namespace ELF
 } // namespace LIEF

 #endif
diff --git a/deps/LIEF/include/LIEF/ELF/NoteDetails/Properties.hpp b/deps/LIEF/include/LIEF/ELF/NoteDetails/Properties.hpp
index eeb39b0a37a..091ae60c64e 100644
--- a/deps/LIEF/include/LIEF/ELF/NoteDetails/Properties.hpp
+++ b/deps/LIEF/include/LIEF/ELF/NoteDetails/Properties.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/deps/LIEF/include/LIEF/ELF/NoteDetails/QNXStack.hpp b/deps/LIEF/include/LIEF/ELF/NoteDetails/QNXStack.hpp
index f614ab895db..8d72fdb00e5 100644
--- a/deps/LIEF/include/LIEF/ELF/NoteDetails/QNXStack.hpp
+++ b/deps/LIEF/include/LIEF/ELF/NoteDetails/QNXStack.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -55,17 +55,18 @@ class LIEF_API QNXStack : public Note {

   ~QNXStack() override = default;

-  LIEF_API friend
-  std::ostream& operator<<(std::ostream& os, const QNXStack& note) {
+  LIEF_API friend std::ostream& operator<<(std::ostream& os,
+                                           const QNXStack& note) {
     note.dump(os);
     return os;
   }
+
   protected:
   using Note::Note;
 };


-} // namepsace ELF
+} // namespace ELF
 } // namespace LIEF

 #endif
diff --git a/deps/LIEF/include/LIEF/ELF/NoteDetails/core/CoreAuxv.hpp b/deps/LIEF/include/LIEF/ELF/NoteDetails/core/CoreAuxv.hpp
index 09b4227f384..a27b50861f4 100644
--- a/deps/LIEF/include/LIEF/ELF/NoteDetails/core/CoreAuxv.hpp
+++ b/deps/LIEF/include/LIEF/ELF/NoteDetails/core/CoreAuxv.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -52,26 +52,26 @@ class LIEF_API CoreAuxv : public Note {
     FPUCW,         /**< Used FPU control word.  */
     DCACHEBSIZE,   /**< Data cache block size.  */
     ICACHEBSIZE,   /**< Instruction cache block size.  */
-    UCACHEBSIZE,   /**< Instruction cache block size.  */
+    UCACHEBSIZE,   /**< Unified cache block size.  */
     IGNOREPPC,     /**< Entry should be ignored.  */
     SECURE,        /**< Boolean, was exec setuid-like?.  */
     BASE_PLATFORM, /**< String identifying real platform  */
     RANDOM,        /**< Address of 16 random bytes  */
     HWCAP2,        /**< Extension of AT_HWCAP  */
-    //ENTRY27,
-    //ENTRY28,
-    //ENTRY29,
-    //ENTRY30,
-    EXECFN = 31,   /**< Filename of executable  */
-    SYSINFO,       /**< Filename of executable  */
-    SYSINFO_EHDR,  /**<  Pointer to ELF header of system-supplied DSO. */
+    // ENTRY27,
+    // ENTRY28,
+    // ENTRY29,
+    // ENTRY30,
+    EXECFN = 31,  /**< Filename of executable  */
+    SYSINFO,      /**< Filename of executable  */
+    SYSINFO_EHDR, /**<  Pointer to ELF header of system-supplied DSO. */
   };

-  CoreAuxv(ARCH arch, Header::CLASS cls, std::string name,
-           uint32_t type, description_t description) :
+  CoreAuxv(ARCH arch, Header::CLASS cls, std::string name, uint32_t type,
+           description_t description) :
     Note(std::move(name), Note::TYPE::CORE_AUXV, type, std::move(description), ""),
-    arch_(arch), class_(cls)
-  {}
+    arch_(arch),
+    class_(cls) {}

   std::unique_ptr<Note> clone() const override {
     return std::unique_ptr<Note>(new CoreAuxv(*this));
@@ -101,8 +101,8 @@ class LIEF_API CoreAuxv : public Note {

   ~CoreAuxv() override = default;

-  LIEF_API friend
-  std::ostream& operator<<(std::ostream& os, const CoreAuxv& note) {
+  LIEF_API friend std::ostream& operator<<(std::ostream& os,
+                                           const CoreAuxv& note) {
     note.dump(os);
     return os;
   }
@@ -114,7 +114,7 @@ class LIEF_API CoreAuxv : public Note {

 LIEF_API const char* to_string(CoreAuxv::TYPE type);

-} // namepsace ELF
+} // namespace ELF
 } // namespace LIEF

 #endif
diff --git a/deps/LIEF/include/LIEF/ELF/NoteDetails/core/CoreFile.hpp b/deps/LIEF/include/LIEF/ELF/NoteDetails/core/CoreFile.hpp
index 28e968ee316..f637b85112e 100644
--- a/deps/LIEF/include/LIEF/ELF/NoteDetails/core/CoreFile.hpp
+++ b/deps/LIEF/include/LIEF/ELF/NoteDetails/core/CoreFile.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -32,22 +32,22 @@ class LIEF_API CoreFile : public Note {
   public:
   /// Core file entry
   struct entry_t {
-    uint64_t start = 0;    /// Start address of mapped file
+    uint64_t start = 0;    ///< Start address of mapped file
     uint64_t end = 0;      ///< End address of mapped file
     uint64_t file_ofs = 0; ///< Offset (in core) of mapped file
     std::string path;      ///< Path of mapped file

-    LIEF_API friend
-    std::ostream& operator<<(std::ostream& os, const entry_t& entry);
+    LIEF_API friend std::ostream& operator<<(std::ostream& os,
+                                             const entry_t& entry);
   };

-  using files_t        = std::vector<entry_t>;
-  using iterator       = files_t::iterator;
+  using files_t = std::vector<entry_t>;
+  using iterator = files_t::iterator;
   using const_iterator = files_t::const_iterator;

   public:
-  CoreFile(ARCH arch, Header::CLASS cls, std::string name,
-           uint32_t type, Note::description_t description);
+  CoreFile(ARCH arch, Header::CLASS cls, std::string name, uint32_t type,
+           Note::description_t description);

   std::unique_ptr<Note> clone() const override {
     return std::unique_ptr<Note>(new CoreFile(*this));
@@ -59,7 +59,7 @@ class LIEF_API CoreFile : public Note {
   }

   /// Coredump file entries
-  const files_t& files() const {
+  const files_t& files() const LIEF_LIFETIMEBOUND {
     return files_;
   }

@@ -90,8 +90,8 @@ class LIEF_API CoreFile : public Note {

   ~CoreFile() override = default;

-  LIEF_API friend
-  std::ostream& operator<<(std::ostream& os, const CoreFile& note) {
+  LIEF_API friend std::ostream& operator<<(std::ostream& os,
+                                           const CoreFile& note) {
     note.dump(os);
     return os;
   }
@@ -103,13 +103,13 @@ class LIEF_API CoreFile : public Note {
   template<class T>
   LIEF_LOCAL void write_files();

-  files_t  files_;
+  files_t files_;
   uint64_t page_size_ = 0;
   ARCH arch_ = ARCH::NONE;
   Header::CLASS class_ = Header::CLASS::NONE;
 };

-} // namepsace ELF
+} // namespace ELF
 } // namespace LIEF

 #endif
diff --git a/deps/LIEF/include/LIEF/ELF/NoteDetails/core/CorePrPsInfo.hpp b/deps/LIEF/include/LIEF/ELF/NoteDetails/core/CorePrPsInfo.hpp
index d9af0f842b3..1daa4dbd5d3 100644
--- a/deps/LIEF/include/LIEF/ELF/NoteDetails/core/CorePrPsInfo.hpp
+++ b/deps/LIEF/include/LIEF/ELF/NoteDetails/core/CorePrPsInfo.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -18,6 +18,7 @@

 #include <ostream>

+#include "LIEF/compiler_attributes.hpp"
 #include "LIEF/visibility.h"
 #include "LIEF/ELF/enums.hpp"
 #include "LIEF/ELF/Note.hpp"
@@ -30,19 +31,19 @@ namespace ELF {
 class LIEF_API CorePrPsInfo : public Note {
   public:
   struct info_t {
-    uint8_t state = 0;    /// Numeric process state
-    char sname = ' ';     /// printable character representing state
-    bool zombie = false;  /// Whether the process is a zombie
-    uint8_t nice = 0;     /// Nice value
-    uint64_t flag = 0;    /// Process flag
-    uint32_t uid = 0;     /// Process user ID
-    uint32_t gid = 0;     /// Process group ID
-    uint32_t pid = 0;     /// Process ID
-    uint32_t ppid = 0;    /// Process parent ID
-    uint32_t pgrp = 0;    /// Process group
-    uint32_t sid = 0;     /// Process session id
-    std::string filename; /// Filename of the executable
-    std::string args;     /// Initial part of the arguments
+    uint8_t state = 0;    ///< Numeric process state
+    char sname = ' ';     ///< Printable character representing state
+    bool zombie = false;  ///< Whether the process is a zombie
+    uint8_t nice = 0;     ///< Nice value
+    uint64_t flag = 0;    ///< Process flag
+    uint32_t uid = 0;     ///< Process user ID
+    uint32_t gid = 0;     ///< Process group ID
+    uint32_t pid = 0;     ///< Process ID
+    uint32_t ppid = 0;    ///< Process parent ID
+    uint32_t pgrp = 0;    ///< Process group
+    uint32_t sid = 0;     ///< Process session ID
+    std::string filename; ///< Filename of the executable
+    std::string args;     ///< Initial part of the arguments

     /// Return the filename without the ending `\x00`
     std::string filename_stripped() const {
@@ -54,11 +55,11 @@ class LIEF_API CorePrPsInfo : public Note {
       return args.c_str();
     }
   };
-  CorePrPsInfo(ARCH arch, Header::CLASS cls, std::string name,
-               uint32_t type, description_t description) :
+  CorePrPsInfo(ARCH arch, Header::CLASS cls, std::string name, uint32_t type,
+               description_t description) :
     Note(std::move(name), TYPE::CORE_PRPSINFO, type, std::move(description), ""),
-    arch_(arch), class_(cls)
-  {}
+    arch_(arch),
+    class_(cls) {}

   std::unique_ptr<Note> clone() const override {
     return std::unique_ptr<Note>(new CorePrPsInfo(*this));
@@ -78,17 +79,18 @@ class LIEF_API CorePrPsInfo : public Note {

   ~CorePrPsInfo() override = default;

-  LIEF_API friend
-  std::ostream& operator<<(std::ostream& os, const CorePrPsInfo& note) {
+  LIEF_API friend std::ostream& operator<<(std::ostream& os,
+                                           const CorePrPsInfo& note) {
     note.dump(os);
     return os;
   }
+
   private:
-  [[maybe_unused]] ARCH arch_ = ARCH::NONE;
+  LIEF_MAYBE_UNUSED ARCH arch_ = ARCH::NONE;
   Header::CLASS class_ = Header::CLASS::NONE;
 };

-} // namepsace ELF
+} // namespace ELF
 } // namespace LIEF

 #endif
diff --git a/deps/LIEF/include/LIEF/ELF/NoteDetails/core/CorePrStatus.hpp b/deps/LIEF/include/LIEF/ELF/NoteDetails/core/CorePrStatus.hpp
index bb91ea12f67..3ba5b28c474 100644
--- a/deps/LIEF/include/LIEF/ELF/NoteDetails/core/CorePrStatus.hpp
+++ b/deps/LIEF/include/LIEF/ELF/NoteDetails/core/CorePrStatus.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -45,6 +45,11 @@ class LIEF_API CorePrStatus : public Note {
     uint64_t usec = 0;
   };

+  /// Status information from a core dump
+  ///
+  /// This structure mirrors the kernel's `prstatus` data embedded in
+  /// `NT_PRSTATUS` core-dump notes and exposes signal state, process
+  /// identifiers, and CPU-time accounting.
   struct pr_status_t {
     siginfo_t info;

@@ -54,10 +59,10 @@ class LIEF_API CorePrStatus : public Note {
     uint64_t sigpend = 0;
     uint64_t sighold = 0;

-    int32_t  pid = 0;
-    int32_t  ppid = 0;
-    int32_t  pgrp = 0;
-    int32_t  sid = 0;
+    int32_t pid = 0;
+    int32_t ppid = 0;
+    int32_t pgrp = 0;
+    int32_t sid = 0;

     timeval_t utime;
     timeval_t stime;
@@ -68,41 +73,124 @@ class LIEF_API CorePrStatus : public Note {
   struct Registers {
     /// Register for the x86 architecture (ARCH::I386).
     enum class X86 {
-      EBX = 0, ECX, EDX, ESI, EDI, EBP, EAX,
-      DS, ES, FS, GS, ORIG_EAX, EIP, CS, EFLAGS, ESP, SS,
-      _COUNT
+      EBX = 0,
+      ECX,
+      EDX,
+      ESI,
+      EDI,
+      EBP,
+      EAX,
+      DS,
+      ES,
+      FS,
+      GS,
+      ORIG_EAX,
+      EIP,
+      CS,
+      EFLAGS,
+      ESP,
+      SS,
+      _COUNT,
     };

     /// Register for the x86-64 architecture (ARCH::X86_64).
     enum class X86_64 {
-      R15 = 0, R14, R13, R12, RBP, RBX, R11, R10,
-      R9, R8, RAX, RCX, RDX, RSI, RDI, ORIG_RAX,
-      RIP, CS, EFLAGS, RSP, SS,
-      _COUNT
+      R15 = 0,
+      R14,
+      R13,
+      R12,
+      RBP,
+      RBX,
+      R11,
+      R10,
+      R9,
+      R8,
+      RAX,
+      RCX,
+      RDX,
+      RSI,
+      RDI,
+      ORIG_RAX,
+      RIP,
+      CS,
+      EFLAGS,
+      RSP,
+      SS,
+      FS_BASE,
+      GS_BASE,
+      DS,
+      ES,
+      _COUNT,
     };

     /// Register for the ARM architecture (ARCH::ARM).
     enum class ARM {
-      R0 = 0, R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R15,
+      R0 = 0,
+      R1,
+      R2,
+      R3,
+      R4,
+      R5,
+      R6,
+      R7,
+      R8,
+      R9,
+      R10,
+      R11,
+      R12,
+      R13,
+      R14,
+      R15,
       CPSR,
-      _COUNT
+      _COUNT,
     };

     /// Register for the AARCH64 architecture (ARCH::AARCH64).
     enum class AARCH64 {
-      X0 = 0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15,
-      X16, X17, X18, X19, X20, X21, X22, X23, X24, X25, X26, X27, X28, X29, X30,
-      X31, PC, PSTATE,
-      _COUNT
+      X0 = 0,
+      X1,
+      X2,
+      X3,
+      X4,
+      X5,
+      X6,
+      X7,
+      X8,
+      X9,
+      X10,
+      X11,
+      X12,
+      X13,
+      X14,
+      X15,
+      X16,
+      X17,
+      X18,
+      X19,
+      X20,
+      X21,
+      X22,
+      X23,
+      X24,
+      X25,
+      X26,
+      X27,
+      X28,
+      X29,
+      X30,
+      X31,
+      PC,
+      PSTATE,
+      _COUNT,
     };
   };

   public:
-  CorePrStatus(ARCH arch, Header::CLASS cls, std::string name,
-               uint32_t type, description_t description) :
+  CorePrStatus(ARCH arch, Header::CLASS cls, std::string name, uint32_t type,
+               description_t description) :
     Note(std::move(name), TYPE::CORE_PRSTATUS, type, std::move(description), ""),
-    arch_(arch), class_(cls)
-  {}
+    arch_(arch),
+    class_(cls) {}

   std::unique_ptr<Note> clone() const override {
     return std::unique_ptr<CorePrStatus>(new CorePrStatus(*this));
@@ -179,8 +267,8 @@ class LIEF_API CorePrStatus : public Note {

   ~CorePrStatus() override = default;

-  LIEF_API friend
-  std::ostream& operator<<(std::ostream& os, const CorePrStatus& note) {
+  LIEF_API friend std::ostream& operator<<(std::ostream& os,
+                                           const CorePrStatus& note) {
     note.dump(os);
     return os;
   }
@@ -195,7 +283,7 @@ LIEF_API const char* to_string(CorePrStatus::Registers::X86_64 e);
 LIEF_API const char* to_string(CorePrStatus::Registers::ARM e);
 LIEF_API const char* to_string(CorePrStatus::Registers::AARCH64 e);

-} // namepsace ELF
+} // namespace ELF
 } // namespace LIEF

 #endif
diff --git a/deps/LIEF/include/LIEF/ELF/NoteDetails/core/CoreSigInfo.hpp b/deps/LIEF/include/LIEF/ELF/NoteDetails/core/CoreSigInfo.hpp
index d9d3381d8b7..f3df861dfcd 100644
--- a/deps/LIEF/include/LIEF/ELF/NoteDetails/core/CoreSigInfo.hpp
+++ b/deps/LIEF/include/LIEF/ELF/NoteDetails/core/CoreSigInfo.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -33,12 +33,13 @@ class LIEF_API CoreSigInfo : public Note {
     return std::unique_ptr<CoreSigInfo>(new CoreSigInfo(*this));
   }

-  /// Signal number of an error if it can't be resolved
+  /// Signal number or an error if it can't be resolved
   result<int32_t> signo() const;
-  /// Signal code of an error if it can't be resolved
+
+  /// Signal code or an error if it can't be resolved
   result<int32_t> sigcode() const;

-  /// Signal error number of an error if it can't be resolved
+  /// Signal error number or an error if it can't be resolved
   result<int32_t> sigerrno() const;

   void signo(uint32_t value);
@@ -54,15 +55,16 @@ class LIEF_API CoreSigInfo : public Note {
     return note->type() == Note::TYPE::CORE_SIGINFO;
   }

-  LIEF_API friend
-  std::ostream& operator<<(std::ostream& os, const CoreSigInfo& note) {
+  LIEF_API friend std::ostream& operator<<(std::ostream& os,
+                                           const CoreSigInfo& note) {
     note.dump(os);
     return os;
   }
+
   protected:
   using Note::Note;
 };
-} // namepsace ELF
+} // namespace ELF
 } // namespace LIEF

 #endif
diff --git a/deps/LIEF/include/LIEF/ELF/NoteDetails/properties/AArch64Feature.hpp b/deps/LIEF/include/LIEF/ELF/NoteDetails/properties/AArch64Feature.hpp
index dac7a856470..d1f0ca0df50 100644
--- a/deps/LIEF/include/LIEF/ELF/NoteDetails/properties/AArch64Feature.hpp
+++ b/deps/LIEF/include/LIEF/ELF/NoteDetails/properties/AArch64Feature.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -31,6 +31,7 @@ class LIEF_API AArch64Feature : public NoteGnuProperty::Property {
     UNKNOWN = 0,
     BTI, ///< Support Branch Target Identification (BTI)
     PAC, ///< Support Pointer authentication (PAC)
+    GCS, ///< Guarded Control Stack
   };

   /// Return the list of the supported features
@@ -44,19 +45,17 @@ class LIEF_API AArch64Feature : public NoteGnuProperty::Property {

   static std::unique_ptr<AArch64Feature> create(BinaryStream& stream);

-  void dump(std::ostream &os) const override;
+  void dump(std::ostream& os) const override;

   ~AArch64Feature() override = default;

   protected:
   AArch64Feature() :
-    NoteGnuProperty::Property(NoteGnuProperty::Property::TYPE::AARCH64_FEATURES)
-  {}
+    NoteGnuProperty::Property(NoteGnuProperty::Property::TYPE::AARCH64_FEATURES) {}

   AArch64Feature(std::vector<FEATURE> features) :
     NoteGnuProperty::Property(NoteGnuProperty::Property::TYPE::AARCH64_FEATURES),
-    features_(std::move(features))
-  {}
+    features_(std::move(features)) {}

   std::vector<FEATURE> features_;
 };
diff --git a/deps/LIEF/include/LIEF/ELF/NoteDetails/properties/AArch64PAuth.hpp b/deps/LIEF/include/LIEF/ELF/NoteDetails/properties/AArch64PAuth.hpp
index efca9bd7204..8183657188c 100644
--- a/deps/LIEF/include/LIEF/ELF/NoteDetails/properties/AArch64PAuth.hpp
+++ b/deps/LIEF/include/LIEF/ELF/NoteDetails/properties/AArch64PAuth.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -27,7 +27,7 @@ namespace ELF {

 /// This class represents the `GNU_PROPERTY_AARCH64_FEATURE_PAUTH` property.
 ///
-/// \note If both: AArch64PAuth::platform and AArch64PAuth::version are set to
+/// @note If both AArch64PAuth::platform and AArch64PAuth::version are set to
 /// 0, this means that the binary is incompatible with PAuth ABI extension.
 class LIEF_API AArch64PAuth : public NoteGnuProperty::Property {
   public:
@@ -50,20 +50,18 @@ class LIEF_API AArch64PAuth : public NoteGnuProperty::Property {

   static std::unique_ptr<AArch64PAuth> create(BinaryStream& stream);

-  void dump(std::ostream &os) const override;
+  void dump(std::ostream& os) const override;

   ~AArch64PAuth() override = default;

   protected:
   AArch64PAuth() :
-    NoteGnuProperty::Property(NoteGnuProperty::Property::TYPE::AARCH64_PAUTH)
-  {}
+    NoteGnuProperty::Property(NoteGnuProperty::Property::TYPE::AARCH64_PAUTH) {}

   AArch64PAuth(uint64_t platform, uint64_t version) :
     NoteGnuProperty::Property(NoteGnuProperty::Property::TYPE::AARCH64_PAUTH),
     platform_(platform),
-    version_(version)
-  {}
+    version_(version) {}

   uint64_t platform_ = 0;
   uint64_t version_ = 0;
diff --git a/deps/LIEF/include/LIEF/ELF/NoteDetails/properties/Generic.hpp b/deps/LIEF/include/LIEF/ELF/NoteDetails/properties/Generic.hpp
index edcaf866a09..58a2464aa18 100644
--- a/deps/LIEF/include/LIEF/ELF/NoteDetails/properties/Generic.hpp
+++ b/deps/LIEF/include/LIEF/ELF/NoteDetails/properties/Generic.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -25,7 +25,6 @@ namespace ELF {
 /// implementation.
 class Generic : public NoteGnuProperty::Property {
   public:
-
   /// The original raw type as an integer. This value might depends
   /// on the architecture and/or the file type.
   uint32_t type() const {
@@ -45,8 +44,7 @@ class Generic : public NoteGnuProperty::Property {
   protected:
   Generic(uint32_t raw_type) :
     NoteGnuProperty::Property(NoteGnuProperty::Property::TYPE::GENERIC),
-    raw_type_(raw_type)
-  {}
+    raw_type_(raw_type) {}
   uint32_t raw_type_ = 0;
 };
 }
diff --git a/deps/LIEF/include/LIEF/ELF/NoteDetails/properties/Needed.hpp b/deps/LIEF/include/LIEF/ELF/NoteDetails/properties/Needed.hpp
index 9507dbc56ed..cf0fa32936d 100644
--- a/deps/LIEF/include/LIEF/ELF/NoteDetails/properties/Needed.hpp
+++ b/deps/LIEF/include/LIEF/ELF/NoteDetails/properties/Needed.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -15,24 +15,52 @@
  */
 #ifndef LIEF_ELF_NOTE_DETAILS_PROPERTIES_NEEDED_H
 #define LIEF_ELF_NOTE_DETAILS_PROPERTIES_NEEDED_H
+#include <vector>

+#include "LIEF/visibility.h"
 #include "LIEF/ELF/NoteDetails/NoteGnuProperty.hpp"

 namespace LIEF {
+class BinaryStream;
+
 namespace ELF {

-class Needed : public NoteGnuProperty::Property {
+/// This class represents the ``GNU_PROPERTY_1_NEEDED`` note property.
+///
+/// This property provides information about additional features that the
+/// object file needs at runtime (e.g. indirect external access).
+class LIEF_API Needed : public NoteGnuProperty::Property {
   public:
   enum class NEED {
     UNKNOWN = 0,
-    INDIRECT_EXTERN_ACCESS,
+    INDIRECT_EXTERN_ACCESS, ///< The object needs indirect external access
   };
+
+  /// Return the list of needed features
+  const std::vector<NEED>& needs() const {
+    return needs_;
+  }
+
   static bool classof(const NoteGnuProperty::Property* prop) {
     return prop->type() == NoteGnuProperty::Property::TYPE::NEEDED;
   }

+  static std::unique_ptr<Needed> create(BinaryStream& stream);
+
+  void dump(std::ostream& os) const override;
+
   ~Needed() override = default;
+
+  protected:
+  Needed(std::vector<NEED> needs) :
+    NoteGnuProperty::Property(NoteGnuProperty::Property::TYPE::NEEDED),
+    needs_(std::move(needs)) {}
+
+  std::vector<NEED> needs_;
 };
+
+LIEF_API const char* to_string(Needed::NEED need);
+
 }
 }

diff --git a/deps/LIEF/include/LIEF/ELF/NoteDetails/properties/NoteNoCopyOnProtected.hpp b/deps/LIEF/include/LIEF/ELF/NoteDetails/properties/NoteNoCopyOnProtected.hpp
index 0720c8e1afb..78da60971e9 100644
--- a/deps/LIEF/include/LIEF/ELF/NoteDetails/properties/NoteNoCopyOnProtected.hpp
+++ b/deps/LIEF/include/LIEF/ELF/NoteDetails/properties/NoteNoCopyOnProtected.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -38,8 +38,9 @@ class NoteNoCopyOnProtected : public NoteGnuProperty::Property {

   protected:
   NoteNoCopyOnProtected() :
-    NoteGnuProperty::Property(NoteGnuProperty::Property::TYPE::NO_COPY_ON_PROTECTED)
-  {}
+    NoteGnuProperty::Property(
+        NoteGnuProperty::Property::TYPE::NO_COPY_ON_PROTECTED
+    ) {}
 };
 }
 }
diff --git a/deps/LIEF/include/LIEF/ELF/NoteDetails/properties/StackSize.hpp b/deps/LIEF/include/LIEF/ELF/NoteDetails/properties/StackSize.hpp
index ebd63a90d84..36b7e54ee5c 100644
--- a/deps/LIEF/include/LIEF/ELF/NoteDetails/properties/StackSize.hpp
+++ b/deps/LIEF/include/LIEF/ELF/NoteDetails/properties/StackSize.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -39,15 +39,14 @@ class LIEF_API StackSize : public NoteGnuProperty::Property {
     return stack_size_;
   }

-  void dump(std::ostream &os) const override;
+  void dump(std::ostream& os) const override;

   ~StackSize() override = default;

   protected:
   StackSize(uint64_t stack_size) :
     NoteGnuProperty::Property(NoteGnuProperty::Property::TYPE::STACK_SIZE),
-    stack_size_(stack_size)
-  {}
+    stack_size_(stack_size) {}
   uint64_t stack_size_ = 0;
 };
 }
diff --git a/deps/LIEF/include/LIEF/ELF/NoteDetails/properties/X86Feature.hpp b/deps/LIEF/include/LIEF/ELF/NoteDetails/properties/X86Feature.hpp
index a4653fd8777..c0d518e6f13 100644
--- a/deps/LIEF/include/LIEF/ELF/NoteDetails/properties/X86Feature.hpp
+++ b/deps/LIEF/include/LIEF/ELF/NoteDetails/properties/X86Feature.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -31,7 +31,6 @@ namespace ELF {
 /// - ``GNU_PROPERTY_X86_FEATURE_2_NEEDED``
 class LIEF_API X86Features : public NoteGnuProperty::Property {
   public:
-
   /// Flag according to the ``_AND``, ``_USED`` or ``_NEEDED`` suffixes
   enum class FLAG {
     NONE = 0, ///< For the original ``GNU_PROPERTY_X86_FEATURE_1_AND`` property
@@ -79,17 +78,18 @@ class LIEF_API X86Features : public NoteGnuProperty::Property {
     return features_;
   }

-  void dump(std::ostream &os) const override;
+  void dump(std::ostream& os) const override;

   ~X86Features() override = default;

   protected:
-  inline static std::unique_ptr<X86Features> create_feat1(FLAG flag, BinaryStream& stream);
-  inline static std::unique_ptr<X86Features> create_feat2(FLAG flag, BinaryStream& stream);
+  inline static std::unique_ptr<X86Features> create_feat1(FLAG flag,
+                                                          BinaryStream& stream);
+  inline static std::unique_ptr<X86Features> create_feat2(FLAG flag,
+                                                          BinaryStream& stream);
   X86Features(features_t values) :
     NoteGnuProperty::Property(NoteGnuProperty::Property::TYPE::X86_FEATURE),
-    features_(std::move(values))
-  {}
+    features_(std::move(values)) {}

   features_t features_;
 };
diff --git a/deps/LIEF/include/LIEF/ELF/NoteDetails/properties/X86ISA.hpp b/deps/LIEF/include/LIEF/ELF/NoteDetails/properties/X86ISA.hpp
index 0b64d08672e..226d828a6de 100644
--- a/deps/LIEF/include/LIEF/ELF/NoteDetails/properties/X86ISA.hpp
+++ b/deps/LIEF/include/LIEF/ELF/NoteDetails/properties/X86ISA.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -90,17 +90,16 @@ class LIEF_API X86ISA : public NoteGnuProperty::Property {

   ~X86ISA() override = default;

-  void dump(std::ostream &os) const override;
+  void dump(std::ostream& os) const override;

   protected:
+  inline static std::unique_ptr<X86ISA> create_isa_1(FLAG flag,
+                                                     BinaryStream& stream);
   inline static std::unique_ptr<X86ISA>
-    create_isa_1(FLAG flag, BinaryStream& stream);
-  inline static std::unique_ptr<X86ISA>
-    create_compat_isa_1(FLAG flag, BinaryStream& stream, bool is_compat2);
+      create_compat_isa_1(FLAG flag, BinaryStream& stream, bool is_compat2);
   X86ISA(values_t values) :
     NoteGnuProperty::Property(NoteGnuProperty::Property::TYPE::X86_ISA),
-    values_(std::move(values))
-  {}
+    values_(std::move(values)) {}

   values_t values_;
 };
diff --git a/deps/LIEF/include/LIEF/ELF/Parser.hpp b/deps/LIEF/include/LIEF/ELF/Parser.hpp
index 12b1436d98b..daeee162337 100644
--- a/deps/LIEF/include/LIEF/ELF/Parser.hpp
+++ b/deps/LIEF/include/LIEF/ELF/Parser.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -22,7 +22,6 @@

 #include "LIEF/Abstract/Parser.hpp"
 #include "LIEF/errors.hpp"
-#include "LIEF/ELF/enums.hpp"

 #include "LIEF/ELF/ParserConfig.hpp"

@@ -44,56 +43,112 @@ class Relocation;
 /// Class which parses and transforms an ELF file into a ELF::Binary object
 class LIEF_API Parser : public LIEF::Parser {
   friend class OAT::Parser;
+
   public:
-  static constexpr uint32_t NB_MAX_SYMBOLS         = 1000000;
-  static constexpr uint32_t DELTA_NB_SYMBOLS       = 3000;
-  static constexpr uint32_t NB_MAX_BUCKETS         = NB_MAX_SYMBOLS;
-  static constexpr uint32_t NB_MAX_CHAINS          = 1000000;
-  static constexpr uint32_t NB_MAX_SEGMENTS        = 10000;
-  static constexpr uint32_t NB_MAX_RELOCATIONS     = 3000000;
+  static constexpr uint32_t NB_MAX_SYMBOLS = 1000000;
+  static constexpr uint32_t DELTA_NB_SYMBOLS = 3000;
+  static constexpr uint32_t NB_MAX_BUCKETS = NB_MAX_SYMBOLS;
+  static constexpr uint32_t NB_MAX_CHAINS = 1000000;
+  static constexpr uint32_t NB_MAX_SEGMENTS = 10000;
+  static constexpr uint32_t NB_MAX_RELOCATIONS = 3000000;
   static constexpr uint32_t NB_MAX_DYNAMIC_ENTRIES = 1000;
-  static constexpr uint32_t MAX_SEGMENT_SIZE       = 3_GB;
+  static constexpr uint32_t MAX_SEGMENT_SIZE = 3_GB;

   enum ELF_TYPE {
     ELF_UNKNOWN,
-    ELF32, ELF64
+    ELF32,
+    ELF64,
   };

   /// Parse an ELF file and return a LIEF::ELF::Binary object
   ///
-  /// For weird binaries (e.g. sectionless) you can choose which method to use for counting dynamic symbols
+  /// For weird binaries (e.g. sectionless) you can choose which method to use for
+  /// counting dynamic symbols
   ///
   /// @param[in] file Path to the ELF binary
   /// @param[in] conf Optional configuration for the parser
   ///
   /// @return LIEF::ELF::Binary as a `unique_ptr`
-  static std::unique_ptr<Binary> parse(const std::string& file,
-                                       const ParserConfig& conf = ParserConfig::all());
+  static std::unique_ptr<Binary>
+      parse(const std::string& file,
+            const ParserConfig& conf = ParserConfig::all());

-  /// Parse the given raw data as an ELF binary and return a LIEF::ELF::Binary object
+  /// Parse the given raw data as an ELF binary and return a LIEF::ELF::Binary
+  /// object
   ///
-  /// For weird binaries (e.g. sectionless) you can choose which method use to count dynamic symbols
+  /// For weird binaries (e.g. sectionless) you can choose which method to use to
+  /// count dynamic symbols
   ///
   /// @param[in] data Raw ELF as a std::vector of uint8_t
   /// @param[in] conf Optional configuration for the parser
   ///
   /// @return LIEF::ELF::Binary
-  static std::unique_ptr<Binary> parse(const std::vector<uint8_t>& data,
-                                       const ParserConfig& conf = ParserConfig::all());
+  static std::unique_ptr<Binary>
+      parse(const std::vector<uint8_t>& data,
+            const ParserConfig& conf = ParserConfig::all());

-  /// Parse the ELF binary from the given stream and return a LIEF::ELF::Binary object
+  /// Parse the ELF binary from the given stream and return a LIEF::ELF::Binary
+  /// object
   ///
-  /// For weird binaries (e.g. sectionless) you can choose which method use to count dynamic symbols
+  /// For weird binaries (e.g. sectionless) you can choose which method to use to
+  /// count dynamic symbols
   ///
   /// @param[in] stream  The stream which wraps the ELF binary
   /// @param[in] conf    Optional configuration for the parser
   ///
   /// @return LIEF::ELF::Binary
-  static std::unique_ptr<Binary> parse(std::unique_ptr<BinaryStream> stream,
-                                       const ParserConfig& conf = ParserConfig::all());
+  static std::unique_ptr<Binary>
+      parse(std::unique_ptr<BinaryStream> stream,
+            const ParserConfig& conf = ParserConfig::all());
+
+  /// Parse the ELF binary from the given memory address
+  ///
+  /// @param[in] address Base address of the ELF binary in memory
+  /// @param[in] conf    Optional configuration for the parser
+  ///
+  /// @return LIEF::ELF::Binary
+  static std::unique_ptr<Binary>
+      parse_from_memory(uintptr_t address,
+                        const ParserConfig& conf = ParserConfig::all());
+
+  /// Parse the ELF binary from the given memory address with the given size
+  ///
+  /// @param[in] address Base address of the ELF binary in memory
+  /// @param[in] size    Size of the memory region
+  /// @param[in] conf    Optional configuration for the parser
+  ///
+  /// @return LIEF::ELF::Binary
+  static std::unique_ptr<Binary>
+      parse_from_memory(uintptr_t address, size_t size,
+                        const ParserConfig& conf = ParserConfig::all());
+
+  /// Parse an ELF binary from a memory dump located on disk.
+  ///
+  /// A dump is a raw capture of the process memory that was mapped starting at
+  /// the virtual address `addr`. This is typically used to parse an ELF image
+  /// that has been dumped from memory (e.g. from a debugger or a runtime hook).
+  ///
+  /// @param[in] filepath Path to the file that contains the memory dump
+  /// @param[in] addr     Virtual address at which the dump was mapped
+  /// @param[in] conf     Optional configuration for the parser
+  static std::unique_ptr<Binary>
+      parse_from_dump(const std::string& filepath, uint64_t addr,
+                      const ParserConfig& conf = ParserConfig::all());
+
+  /// Same as parse_from_dump(const std::string&, uint64_t, const ParserConfig&)
+  /// but the dump is wrapped in the given **non-owned** stream.
+  static std::unique_ptr<Binary>
+      parse_from_dump(BinaryStream& stream, uint64_t addr,
+                      const ParserConfig& conf = ParserConfig::all());
+
+  /// Same as parse_from_dump(const std::string&, uint64_t, const ParserConfig&)
+  /// but the dump is wrapped in the given **owned** stream.
+  static std::unique_ptr<Binary>
+      parse_from_dump(std::unique_ptr<BinaryStream> stream, uint64_t addr,
+                      const ParserConfig& conf = ParserConfig::all());

   Parser& operator=(const Parser&) = delete;
-  Parser(const Parser&)            = delete;
+  Parser(const Parser&) = delete;

   ~Parser() override;

@@ -125,16 +180,18 @@ class LIEF_API Parser : public LIEF::Parser {
   template<typename ELF_T>
   LIEF_LOCAL ok_error_t parse_segments();

-  LIEF_LOCAL uint64_t get_dynamic_string_table(BinaryStream* stream = nullptr) const;
+  LIEF_LOCAL uint64_t
+      get_dynamic_string_table(BinaryStream* stream = nullptr) const;

-  LIEF_LOCAL result<uint64_t> get_dynamic_string_table_from_segments(BinaryStream* stream = nullptr) const;
+  LIEF_LOCAL result<uint64_t>
+      get_dynamic_string_table_from_segments(BinaryStream* stream = nullptr) const;

   LIEF_LOCAL uint64_t get_dynamic_string_table_from_sections() const;

   /// Return the number of dynamic symbols using the given method
   template<typename ELF_T>
   LIEF_LOCAL result<uint32_t>
-    get_numberof_dynamic_symbols(ParserConfig::DYNSYM_COUNT mtd) const;
+      get_numberof_dynamic_symbols(ParserConfig::DYNSYM_COUNT mtd) const;

   /// Count based on hash table (reliable)
   template<typename ELF_T>
@@ -167,20 +224,20 @@ class LIEF_API Parser : public LIEF::Parser {
   /// Parser find Symbols offset by using the file offset attribute of the
   /// ELF_SECTION_TYPES::SHT_SYMTAB Section.
   ///
-  /// The number of symbols is taken from the `information` attribute in the section header.
+  /// The number of symbols is taken from the `information` attribute in the
+  /// section header.
   ///
   /// The section containing symbols name is found with the `link` attribute.
   template<typename ELF_T>
-  LIEF_LOCAL ok_error_t
-    parse_symtab_symbols(uint64_t offset, uint32_t nb_symbols,
-                         const Section& string_section);
+  LIEF_LOCAL ok_error_t parse_symtab_symbols(const Section& symtab_section,
+                                             const Section& string_section);

   /// Parse Dynamic relocations
   ///
   /// It uses DT_REL/DT_RELA dynamic entries to parse it
   template<typename ELF_T, typename REL_T>
-  LIEF_LOCAL ok_error_t
-    parse_dynamic_relocations(uint64_t relocations_offset, uint64_t size);
+  LIEF_LOCAL ok_error_t parse_dynamic_relocations(uint64_t relocations_offset,
+                                                  uint64_t size);

   /// Parse `.plt.got`/`got` relocations
   ///
@@ -205,8 +262,7 @@ class LIEF_API Parser : public LIEF::Parser {
   /// Parse relocations using LIEF::ELF::Section.
   /// Section relocations are usually found in object files
   template<typename ELF_T, typename REL_T>
-  LIEF_LOCAL ok_error_t
-    parse_section_relocations(const Section& section);
+  LIEF_LOCAL ok_error_t parse_section_relocations(const Section& section);

   /// Parse SymbolVersionRequirement
   ///
@@ -214,8 +270,8 @@ class LIEF_API Parser : public LIEF::Parser {
   /// DynamicEntry::TAG::VERNEED entry to get the offset.
   /// and DynamicEntry::TAG::VERNEEDNUM to get the number of entries
   template<typename ELF_T>
-  LIEF_LOCAL ok_error_t
-    parse_symbol_version_requirement(uint64_t offset, uint32_t nb_entries);
+  LIEF_LOCAL ok_error_t parse_symbol_version_requirement(uint64_t offset,
+                                                         uint32_t nb_entries);


   /// Parse SymbolVersionDefinition.
@@ -224,8 +280,8 @@ class LIEF_API Parser : public LIEF::Parser {
   /// the DynamicEntry::TAG::VERDEF DT_VERDEF entry to get the offset.
   /// DynamicEntry::TAG::VERDEFNUM gives the number of entries
   template<typename ELF_T>
-  LIEF_LOCAL ok_error_t
-    parse_symbol_version_definition(uint64_t offset, uint32_t nb_entries);
+  LIEF_LOCAL ok_error_t parse_symbol_version_definition(uint64_t offset,
+                                                        uint32_t nb_entries);


   /// Parse @link SymbolVersion Symbol version @endlink.
@@ -245,8 +301,8 @@ class LIEF_API Parser : public LIEF::Parser {
   /// Parse Note (.gnu.note)
   LIEF_LOCAL ok_error_t parse_notes(uint64_t offset, uint64_t size);

-  LIEF_LOCAL std::unique_ptr<Note>
-    get_note(uint32_t type, std::string name, std::vector<uint8_t> desc_bytes);
+  LIEF_LOCAL std::unique_ptr<Note> get_note(uint32_t type, std::string name,
+                                            std::vector<uint8_t> desc_bytes);

   /// Parse Symbols's SYSV hash
   LIEF_LOCAL ok_error_t parse_symbol_sysv_hash(uint64_t offset);
@@ -254,10 +310,12 @@ class LIEF_API Parser : public LIEF::Parser {
   LIEF_LOCAL ok_error_t parse_overlay();

   template<typename ELF_T, typename REL_T>
-  LIEF_LOCAL uint32_t max_relocation_index(uint64_t relocations_offset, uint64_t size) const;
+  LIEF_LOCAL uint32_t max_relocation_index(uint64_t relocations_offset,
+                                           uint64_t size) const;

   /// Check if the given Section is wrapped by the given segment
-  LIEF_LOCAL static bool check_section_in_segment(const Section& section, const Segment& segment);
+  LIEF_LOCAL static bool check_section_in_segment(const Section& section,
+                                                  const Segment& segment);

   LIEF_LOCAL bool bind_symbol(Relocation& R);
   LIEF_LOCAL Relocation& insert_relocation(std::unique_ptr<Relocation> R);
@@ -276,6 +334,7 @@ class LIEF_API Parser : public LIEF::Parser {
    * reference sections. That's why we have this unordered_map.
    */
   std::unordered_map<size_t, Section*> sections_idx_;
+  uint64_t memory_address_ = 0;
 };

 } // namespace ELF
diff --git a/deps/LIEF/include/LIEF/ELF/ParserConfig.hpp b/deps/LIEF/include/LIEF/ELF/ParserConfig.hpp
index a178568062a..00fd80dad63 100644
--- a/deps/LIEF/include/LIEF/ELF/ParserConfig.hpp
+++ b/deps/LIEF/include/LIEF/ELF/ParserConfig.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -16,20 +16,28 @@
 #ifndef LIEF_ELF_PARSER_CONFIG_H
 #define LIEF_ELF_PARSER_CONFIG_H
 #include "LIEF/visibility.h"
-#include "LIEF/ELF/enums.hpp"
+
+#include <cstdint>

 namespace LIEF {
 namespace ELF {

 /// This structure is used to tweak the ELF Parser (ELF::Parser)
 struct LIEF_API ParserConfig {
-  /** Methods that can be used by the LIEF::ELF::Parser
-      to count the number of dynamic symbols */
+  /// Methods that can be used by the LIEF::ELF::Parser to count the number
+  /// of dynamic symbols
   enum class DYNSYM_COUNT {
-    AUTO        = 0, /**< Automatic detection */
-    SECTION     = 1, /**< Count based on sections (not very reliable) */
-    HASH        = 2, /**< Count based on hash table (reliable) */
-    RELOCATIONS = 3, /**< Count based on PLT/GOT relocations (very reliable but not accurate) */
+    /// Automatic detection
+    AUTO = 0,
+
+    /// Count based on sections (not very reliable)
+    SECTION,
+
+    /// Count based on hash table (reliable)
+    HASH,
+
+    /// Count based on PLT/GOT relocations (very reliable but not accurate)
+    RELOCATIONS,
   };

   /// This returns a ParserConfig object configured to process all the ELF
@@ -39,14 +47,25 @@ struct LIEF_API ParserConfig {
     return DEFAULT;
   }

-  bool parse_relocations     = true; ///< Whether relocations (including plt-like relocations) should be parsed.
-  bool parse_dyn_symbols     = true; ///< Whether dynamic symbols (those from `.dynsym`) should be parsed
-  bool parse_symtab_symbols  = true; ///< Whether debug symbols (those from `.symtab`) should be parsed
-  bool parse_symbol_versions = true; ///< Whether versioning symbols should be parsed
-  bool parse_notes           = true; ///< Whether ELF notes  information should be parsed
-  bool parse_overlay         = true; ///< Whether the overlay data should be parsed
+  /// Whether relocations (including plt-like relocations) should be parsed.
+  bool parse_relocations = true;
+
+  /// Whether dynamic symbols (those from `.dynsym`) should be parsed
+  bool parse_dyn_symbols = true;
+
+  /// Whether debug symbols (those from `.symtab`) should be parsed
+  bool parse_symtab_symbols = true;
+
+  /// Whether versioning symbols should be parsed
+  bool parse_symbol_versions = true;
+
+  /// Whether ELF notes  information should be parsed
+  bool parse_notes = true;
+
+  /// Whether the overlay data should be parsed
+  bool parse_overlay = true;

-  /** The method used to count the number of dynamic symbols */
+  /// The method used to count the number of dynamic symbols
   DYNSYM_COUNT count_mtd = DYNSYM_COUNT::AUTO;

   /// Memory page size if the binary uses a non-standard value.
diff --git a/deps/LIEF/include/LIEF/ELF/ProcessorFlags.hpp b/deps/LIEF/include/LIEF/ELF/ProcessorFlags.hpp
index 5b6bcfde8ff..992c6069e6b 100644
--- a/deps/LIEF/include/LIEF/ELF/ProcessorFlags.hpp
+++ b/deps/LIEF/include/LIEF/ELF/ProcessorFlags.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -21,6 +21,7 @@
 namespace LIEF {
 namespace ELF {

+// clang-format off
 static constexpr uint64_t PFLAGS_BIT = 43;
 static constexpr uint64_t PFLAGS_MASK = (1LLU << PFLAGS_BIT) - 1;
 static constexpr uint64_t PF_ARM_ID = 1;
@@ -39,73 +40,71 @@ enum class PROCESSOR_FLAGS : uint64_t {
   ARM_EABI_VER4    = 0x04000000 | (PF_ARM_ID << PFLAGS_BIT),
   ARM_EABI_VER5    = 0x05000000 | (PF_ARM_ID << PFLAGS_BIT),

-  HEXAGON_MACH_V2   = 0x00000001 | (PF_HEX_ID << PFLAGS_BIT),  // Hexagon V2
-  HEXAGON_MACH_V3   = 0x00000002 | (PF_HEX_ID << PFLAGS_BIT),  // Hexagon V3
-  HEXAGON_MACH_V4   = 0x00000003 | (PF_HEX_ID << PFLAGS_BIT),  // Hexagon V4
-  HEXAGON_MACH_V5   = 0x00000004 | (PF_HEX_ID << PFLAGS_BIT),  // Hexagon V5
-
-  HEXAGON_ISA_V2    = 0x00000010 | (PF_HEX_ID << PFLAGS_BIT),  // Hexagon V2 ISA
-  HEXAGON_ISA_V3    = 0x00000020 | (PF_HEX_ID << PFLAGS_BIT),  // Hexagon V3 ISA
-  HEXAGON_ISA_V4    = 0x00000030 | (PF_HEX_ID << PFLAGS_BIT),  // Hexagon V4 ISA
-  HEXAGON_ISA_V5    = 0x00000040 | (PF_HEX_ID << PFLAGS_BIT),  // Hexagon V5 ISA
-
-  LOONGARCH_ABI_SOFT_FLOAT    = 0x1 | (PF_LOONGARCH_ID << PFLAGS_BIT),
-  LOONGARCH_ABI_SINGLE_FLOAT  = 0x2 | (PF_LOONGARCH_ID << PFLAGS_BIT),
-  LOONGARCH_ABI_DOUBLE_FLOAT  = 0x3 | (PF_LOONGARCH_ID << PFLAGS_BIT),
-
-  MIPS_NOREORDER     = 0x00000001 | (PF_MIPS_ID << PFLAGS_BIT), /* Don't reorder instructions */
-  MIPS_PIC           = 0x00000002 | (PF_MIPS_ID << PFLAGS_BIT), /* Position independent code */
-  MIPS_CPIC          = 0x00000004 | (PF_MIPS_ID << PFLAGS_BIT), /* Call object with Position independent code */
-  MIPS_ABI2          = 0x00000020 | (PF_MIPS_ID << PFLAGS_BIT), /* File uses N32 ABI */
-  MIPS_32BITMODE     = 0x00000100 | (PF_MIPS_ID << PFLAGS_BIT), /* Code compiled for a 64-bit machine */
-  /* in 32-bit mode */
-  MIPS_FP64          = 0x00000200 | (PF_MIPS_ID << PFLAGS_BIT), /* Code compiled for a 32-bit machine */
-  /* but uses 64-bit FP registers */
-  MIPS_NAN2008       = 0x00000400 | (PF_MIPS_ID << PFLAGS_BIT), /* Uses IEE 754-2008 NaN encoding */
+  HEXAGON_MACH_V2 = 0x00000001 | (PF_HEX_ID << PFLAGS_BIT), // Hexagon V2
+  HEXAGON_MACH_V3 = 0x00000002 | (PF_HEX_ID << PFLAGS_BIT), // Hexagon V3
+  HEXAGON_MACH_V4 = 0x00000003 | (PF_HEX_ID << PFLAGS_BIT), // Hexagon V4
+  HEXAGON_MACH_V5 = 0x00000004 | (PF_HEX_ID << PFLAGS_BIT), // Hexagon V5
+
+  HEXAGON_ISA_V2  = 0x00000010 | (PF_HEX_ID << PFLAGS_BIT), // Hexagon V2 ISA
+  HEXAGON_ISA_V3  = 0x00000020 | (PF_HEX_ID << PFLAGS_BIT), // Hexagon V3 ISA
+  HEXAGON_ISA_V4  = 0x00000030 | (PF_HEX_ID << PFLAGS_BIT), // Hexagon V4 ISA
+  HEXAGON_ISA_V5  = 0x00000040 | (PF_HEX_ID << PFLAGS_BIT), // Hexagon V5 ISA
+
+  LOONGARCH_ABI_SOFT_FLOAT   = 0x1 | (PF_LOONGARCH_ID << PFLAGS_BIT),
+  LOONGARCH_ABI_SINGLE_FLOAT = 0x2 | (PF_LOONGARCH_ID << PFLAGS_BIT),
+  LOONGARCH_ABI_DOUBLE_FLOAT = 0x3 | (PF_LOONGARCH_ID << PFLAGS_BIT),
+
+  MIPS_NOREORDER            = 0x00000001 | (PF_MIPS_ID << PFLAGS_BIT), /* Don't reorder instructions */
+  MIPS_PIC                  = 0x00000002 | (PF_MIPS_ID << PFLAGS_BIT), /* Position independent code */
+  MIPS_CPIC                 = 0x00000004 | (PF_MIPS_ID << PFLAGS_BIT), /* Call object with Position independent code */
+  MIPS_ABI2                 = 0x00000020 | (PF_MIPS_ID << PFLAGS_BIT), /* File uses N32 ABI */
+  MIPS_32BITMODE            = 0x00000100 | (PF_MIPS_ID << PFLAGS_BIT), /* Code compiled for a 64-bit machine */
+  MIPS_FP64                 = 0x00000200 | (PF_MIPS_ID << PFLAGS_BIT), /* Code compiled for a 32-bit machine */
+  MIPS_NAN2008              = 0x00000400 | (PF_MIPS_ID << PFLAGS_BIT), /* Uses IEE 754-2008 NaN encoding */

   /* ABI flags */
-  MIPS_ABI_O32       = 0x00001000 | (PF_MIPS_ID << PFLAGS_BIT), /* This file follows the first MIPS 32 bit ABI */
-  MIPS_ABI_O64       = 0x00002000 | (PF_MIPS_ID << PFLAGS_BIT), /* O32 ABI extended for 64-bit architecture. */
-  MIPS_ABI_EABI32    = 0x00003000 | (PF_MIPS_ID << PFLAGS_BIT), /* EABI in 32 bit mode. */
-  MIPS_ABI_EABI64    = 0x00004000 | (PF_MIPS_ID << PFLAGS_BIT), /* EABI in 64 bit mode. */
+  MIPS_ABI_O32              = 0x00001000 | (PF_MIPS_ID << PFLAGS_BIT), /* This file follows the first MIPS 32 bit ABI */
+  MIPS_ABI_O64              = 0x00002000 | (PF_MIPS_ID << PFLAGS_BIT), /* O32 ABI extended for 64-bit architecture. */
+  MIPS_ABI_EABI32           = 0x00003000 | (PF_MIPS_ID << PFLAGS_BIT), /* EABI in 32 bit mode. */
+  MIPS_ABI_EABI64           = 0x00004000 | (PF_MIPS_ID << PFLAGS_BIT), /* EABI in 64 bit mode. */

   /* MIPS machine variant */
-  MIPS_MACH_3900     = 0x00810000 | (PF_MIPS_ID << PFLAGS_BIT), /* Toshiba R3900 */
-  MIPS_MACH_4010     = 0x00820000 | (PF_MIPS_ID << PFLAGS_BIT), /* LSI R4010 */
-  MIPS_MACH_4100     = 0x00830000 | (PF_MIPS_ID << PFLAGS_BIT), /* NEC VR4100 */
-  MIPS_MACH_4650     = 0x00850000 | (PF_MIPS_ID << PFLAGS_BIT), /* MIPS R4650 */
-  MIPS_MACH_4120     = 0x00870000 | (PF_MIPS_ID << PFLAGS_BIT), /* NEC VR4120 */
-  MIPS_MACH_4111     = 0x00880000 | (PF_MIPS_ID << PFLAGS_BIT), /* NEC VR4111/VR4181 */
-  MIPS_MACH_SB1      = 0x008a0000 | (PF_MIPS_ID << PFLAGS_BIT), /* Broadcom SB-1 */
-  MIPS_MACH_OCTEON   = 0x008b0000 | (PF_MIPS_ID << PFLAGS_BIT), /* Cavium Networks Octeon */
-  MIPS_MACH_XLR      = 0x008c0000 | (PF_MIPS_ID << PFLAGS_BIT), /* RMI Xlr */
-  MIPS_MACH_OCTEON2  = 0x008d0000 | (PF_MIPS_ID << PFLAGS_BIT), /* Cavium Networks Octeon2 */
-  MIPS_MACH_OCTEON3  = 0x008e0000 | (PF_MIPS_ID << PFLAGS_BIT), /* Cavium Networks Octeon3 */
-  MIPS_MACH_5400     = 0x00910000 | (PF_MIPS_ID << PFLAGS_BIT), /* NEC VR5400 */
-  MIPS_MACH_5900     = 0x00920000 | (PF_MIPS_ID << PFLAGS_BIT), /* MIPS R5900 */
-  MIPS_MACH_5500     = 0x00980000 | (PF_MIPS_ID << PFLAGS_BIT), /* NEC VR5500 */
-  MIPS_MACH_9000     = 0x00990000 | (PF_MIPS_ID << PFLAGS_BIT), /* Unknown */
-  MIPS_MACH_LS2E     = 0x00a00000 | (PF_MIPS_ID << PFLAGS_BIT), /* ST Microelectronics Loongson 2E */
-  MIPS_MACH_LS2F     = 0x00a10000 | (PF_MIPS_ID << PFLAGS_BIT), /* ST Microelectronics Loongson 2F */
-  MIPS_MACH_LS3A     = 0x00a20000 | (PF_MIPS_ID << PFLAGS_BIT), /* Loongson 3A */
+  MIPS_MACH_3900            = 0x00810000 | (PF_MIPS_ID << PFLAGS_BIT), /* Toshiba R3900 */
+  MIPS_MACH_4010            = 0x00820000 | (PF_MIPS_ID << PFLAGS_BIT), /* LSI R4010 */
+  MIPS_MACH_4100            = 0x00830000 | (PF_MIPS_ID << PFLAGS_BIT), /* NEC VR4100 */
+  MIPS_MACH_4650            = 0x00850000 | (PF_MIPS_ID << PFLAGS_BIT), /* MIPS R4650 */
+  MIPS_MACH_4120            = 0x00870000 | (PF_MIPS_ID << PFLAGS_BIT), /* NEC VR4120 */
+  MIPS_MACH_4111            = 0x00880000 | (PF_MIPS_ID << PFLAGS_BIT), /* NEC VR4111/VR4181 */
+  MIPS_MACH_SB1             = 0x008a0000 | (PF_MIPS_ID << PFLAGS_BIT),  /* Broadcom SB-1 */
+  MIPS_MACH_OCTEON          = 0x008b0000 | (PF_MIPS_ID << PFLAGS_BIT), /* Cavium Networks Octeon */
+  MIPS_MACH_XLR             = 0x008c0000 | (PF_MIPS_ID << PFLAGS_BIT), /* RMI Xlr */
+  MIPS_MACH_OCTEON2         = 0x008d0000 | (PF_MIPS_ID << PFLAGS_BIT), /* Cavium Networks Octeon2 */
+  MIPS_MACH_OCTEON3         = 0x008e0000 | (PF_MIPS_ID << PFLAGS_BIT), /* Cavium Networks Octeon3 */
+  MIPS_MACH_5400            = 0x00910000 | (PF_MIPS_ID << PFLAGS_BIT), /* NEC VR5400 */
+  MIPS_MACH_5900            = 0x00920000 | (PF_MIPS_ID << PFLAGS_BIT), /* MIPS R5900 */
+  MIPS_MACH_5500            = 0x00980000 | (PF_MIPS_ID << PFLAGS_BIT), /* NEC VR5500 */
+  MIPS_MACH_9000            = 0x00990000 | (PF_MIPS_ID << PFLAGS_BIT), /* Unknown */
+  MIPS_MACH_LS2E            = 0x00a00000 | (PF_MIPS_ID << PFLAGS_BIT), /* ST Microelectronics Loongson 2E */
+  MIPS_MACH_LS2F            = 0x00a10000 | (PF_MIPS_ID << PFLAGS_BIT), /* ST Microelectronics Loongson 2F */
+  MIPS_MACH_LS3A            = 0x00a20000 | (PF_MIPS_ID << PFLAGS_BIT), /* Loongson 3A */

   /* ARCH_ASE */
-  MIPS_MICROMIPS     = 0x02000000 | (PF_MIPS_ID << PFLAGS_BIT), /* microMIPS */
-  MIPS_ARCH_ASE_M16  = 0x04000000 | (PF_MIPS_ID << PFLAGS_BIT), /* Has Mips-16 ISA extensions */
-  MIPS_ARCH_ASE_MDMX = 0x08000000 | (PF_MIPS_ID << PFLAGS_BIT), /* Has MDMX multimedia extensions */
+  MIPS_MICROMIPS            = 0x02000000 | (PF_MIPS_ID << PFLAGS_BIT), /* microMIPS */
+  MIPS_ARCH_ASE_M16         = 0x04000000 | (PF_MIPS_ID << PFLAGS_BIT), /* Has Mips-16 ISA extensions */
+  MIPS_ARCH_ASE_MDMX        = 0x08000000 | (PF_MIPS_ID << PFLAGS_BIT), /* Has MDMX multimedia extensions */

   /* ARCH */
-  MIPS_ARCH_1        = 0x00000000 | (PF_MIPS_ID << PFLAGS_BIT), /* MIPS1 instruction set */
-  MIPS_ARCH_2        = 0x10000000 | (PF_MIPS_ID << PFLAGS_BIT), /* MIPS2 instruction set */
-  MIPS_ARCH_3        = 0x20000000 | (PF_MIPS_ID << PFLAGS_BIT), /* MIPS3 instruction set */
-  MIPS_ARCH_4        = 0x30000000 | (PF_MIPS_ID << PFLAGS_BIT), /* MIPS4 instruction set */
-  MIPS_ARCH_5        = 0x40000000 | (PF_MIPS_ID << PFLAGS_BIT), /* MIPS5 instruction set */
-  MIPS_ARCH_32       = 0x50000000 | (PF_MIPS_ID << PFLAGS_BIT), /* MIPS32 instruction set per linux not elf.h */
-  MIPS_ARCH_64       = 0x60000000 | (PF_MIPS_ID << PFLAGS_BIT), /* MIPS64 instruction set per linux not elf.h */
-  MIPS_ARCH_32R2     = 0x70000000 | (PF_MIPS_ID << PFLAGS_BIT), /* mips32r2, mips32r3, mips32r5 */
-  MIPS_ARCH_64R2     = 0x80000000 | (PF_MIPS_ID << PFLAGS_BIT), /* mips64r2, mips64r3, mips64r5 */
-  MIPS_ARCH_32R6     = 0x90000000 | (PF_MIPS_ID << PFLAGS_BIT), /* mips32r6 */
-  MIPS_ARCH_64R6     = 0xa0000000 | (PF_MIPS_ID << PFLAGS_BIT), /* mips64r6 */
+  MIPS_ARCH_1               = 0x00000000 | (PF_MIPS_ID << PFLAGS_BIT), /* MIPS1 instruction set */
+  MIPS_ARCH_2               = 0x10000000 | (PF_MIPS_ID << PFLAGS_BIT), /* MIPS2 instruction set */
+  MIPS_ARCH_3               = 0x20000000 | (PF_MIPS_ID << PFLAGS_BIT), /* MIPS3 instruction set */
+  MIPS_ARCH_4               = 0x30000000 | (PF_MIPS_ID << PFLAGS_BIT), /* MIPS4 instruction set */
+  MIPS_ARCH_5               = 0x40000000 | (PF_MIPS_ID << PFLAGS_BIT), /* MIPS5 instruction set */
+  MIPS_ARCH_32              = 0x50000000 | (PF_MIPS_ID << PFLAGS_BIT), /* MIPS32 instruction set per linux not elf.h */
+  MIPS_ARCH_64              = 0x60000000 | (PF_MIPS_ID << PFLAGS_BIT), /* MIPS64 instruction set per linux not elf.h */
+  MIPS_ARCH_32R2            = 0x70000000 | (PF_MIPS_ID << PFLAGS_BIT), /* mips32r2, mips32r3, mips32r5 */
+  MIPS_ARCH_64R2            = 0x80000000 | (PF_MIPS_ID << PFLAGS_BIT), /* mips64r2, mips64r3, mips64r5 */
+  MIPS_ARCH_32R6            = 0x90000000 | (PF_MIPS_ID << PFLAGS_BIT), /* mips32r6 */
+  MIPS_ARCH_64R6            = 0xa0000000 | (PF_MIPS_ID << PFLAGS_BIT), /* mips64r6 */

   RISCV_RVC              = 0x00000001 | (PF_RISCV_ID << PFLAGS_BIT),

@@ -117,6 +116,7 @@ enum class PROCESSOR_FLAGS : uint64_t {
   RISCV_FLOAT_ABI_RVE    = 0x00000008 | (PF_RISCV_ID << PFLAGS_BIT),
   RISCV_FLOAT_ABI_TSO    = 0x00000010 | (PF_RISCV_ID << PFLAGS_BIT),
 };
+// clang-format on

 LIEF_API const char* to_string(PROCESSOR_FLAGS flag);

diff --git a/deps/LIEF/include/LIEF/ELF/Relocation.hpp b/deps/LIEF/include/LIEF/ELF/Relocation.hpp
index b2001fb04cb..60b70328a72 100644
--- a/deps/LIEF/include/LIEF/ELF/Relocation.hpp
+++ b/deps/LIEF/include/LIEF/ELF/Relocation.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -44,27 +44,40 @@ class LIEF_API Relocation : public LIEF::Relocation {
   friend class Builder;

   public:
-
   /// The *purpose* of a relocation defines how this relocation is used by the
   /// loader.
   enum class PURPOSE {
     NONE = 0,
-    PLTGOT = 1,  ///< The relocation is associated with the PLT/GOT resolution
-    DYNAMIC = 2, ///< The relocation is used for regulard data/code relocation
-    OBJECT = 3,  ///< The relocation is used in an object file
+    /// The relocation is associated with the PLT/GOT resolution
+    PLTGOT,
+
+    /// The relocation is used for regular data/code relocation
+    DYNAMIC,
+
+    /// The relocation is used in an object file
+    OBJECT,
   };

   enum class ENCODING {
     UNKNOWN = 0,
-    REL,   ///< The relocation is using the regular Elf_Rel structure
-    RELA,  ///< The relocation is using the regular Elf_Rela structure
-    RELR,  ///< The relocation is using the relative relocation format
-    ANDROID_SLEB, ///< The relocation is using the packed Android-SLEB128 format
+
+    /// The relocation is using the regular Elf_Rel structure
+    REL,
+
+    /// The relocation is using the regular Elf_Rela structure
+    RELA,
+
+    /// The relocation is using the relative relocation format
+    RELR,
+
+    /// The relocation is using the packed Android-SLEB128 format
+    ANDROID_SLEB,
   };

   static constexpr uint64_t R_BIT = 27;
   static constexpr uint64_t R_MASK = (uint64_t(1) << R_BIT) - 1;

+  // clang-format off
   static constexpr uint64_t R_X64     = uint64_t(1)  << R_BIT;
   static constexpr uint64_t R_AARCH64 = uint64_t(2)  << R_BIT;
   static constexpr uint64_t R_ARM     = uint64_t(3)  << R_BIT;
@@ -79,66 +92,67 @@ class LIEF_API Relocation : public LIEF::Relocation {
   static constexpr uint64_t R_RISCV   = uint64_t(12) << R_BIT;
   static constexpr uint64_t R_BPF     = uint64_t(13) << R_BIT;
   static constexpr uint64_t R_SH4     = uint64_t(14) << R_BIT;
+  // clang-format on

   /// The different types of the relocation
   enum class TYPE : uint32_t {
     UNKNOWN = uint32_t(-1),

-    #define ELF_RELOC(name, value) name = (value | R_X64),
-      #include "LIEF/ELF/Relocations/x86_64.def"
-    #undef ELF_RELOC
+#define ELF_RELOC(name, value) name = (value | R_X64),
+#include "LIEF/ELF/Relocations/x86_64.def"
+#undef ELF_RELOC

-    #define ELF_RELOC(name, value) name = (value | R_AARCH64),
-      #include "LIEF/ELF/Relocations/AArch64.def"
-    #undef ELF_RELOC
+#define ELF_RELOC(name, value) name = (value | R_AARCH64),
+#include "LIEF/ELF/Relocations/AArch64.def"
+#undef ELF_RELOC

-    #define ELF_RELOC(name, value) name = (value | R_ARM),
-      #include "LIEF/ELF/Relocations/ARM.def"
-    #undef ELF_RELOC
+#define ELF_RELOC(name, value) name = (value | R_ARM),
+#include "LIEF/ELF/Relocations/ARM.def"
+#undef ELF_RELOC

-    #define ELF_RELOC(name, value) name = (value | R_HEXAGON),
-      #include "LIEF/ELF/Relocations/Hexagon.def"
-    #undef ELF_RELOC
+#define ELF_RELOC(name, value) name = (value | R_HEXAGON),
+#include "LIEF/ELF/Relocations/Hexagon.def"
+#undef ELF_RELOC

-    #define ELF_RELOC(name, value) name = (value | R_X86),
-      #include "LIEF/ELF/Relocations/i386.def"
-    #undef ELF_RELOC
+#define ELF_RELOC(name, value) name = (value | R_X86),
+#include "LIEF/ELF/Relocations/i386.def"
+#undef ELF_RELOC

-    #define ELF_RELOC(name, value) name = (value | R_LARCH),
-      #include "LIEF/ELF/Relocations/LoongArch.def"
-    #undef ELF_RELOC
+#define ELF_RELOC(name, value) name = (value | R_LARCH),
+#include "LIEF/ELF/Relocations/LoongArch.def"
+#undef ELF_RELOC

-    #define ELF_RELOC(name, value) name = (value | R_MIPS),
-      #include "LIEF/ELF/Relocations/Mips.def"
-    #undef ELF_RELOC
+#define ELF_RELOC(name, value) name = (value | R_MIPS),
+#include "LIEF/ELF/Relocations/Mips.def"
+#undef ELF_RELOC

-    #define ELF_RELOC(name, value) name = (value | R_PPC),
-      #include "LIEF/ELF/Relocations/PowerPC.def"
-    #undef ELF_RELOC
+#define ELF_RELOC(name, value) name = (value | R_PPC),
+#include "LIEF/ELF/Relocations/PowerPC.def"
+#undef ELF_RELOC

-    #define ELF_RELOC(name, value) name = (value | R_PPC64),
-      #include "LIEF/ELF/Relocations/PowerPC64.def"
-    #undef ELF_RELOC
+#define ELF_RELOC(name, value) name = (value | R_PPC64),
+#include "LIEF/ELF/Relocations/PowerPC64.def"
+#undef ELF_RELOC

-    #define ELF_RELOC(name, value) name = (value | R_SPARC),
-      #include "LIEF/ELF/Relocations/Sparc.def"
-    #undef ELF_RELOC
+#define ELF_RELOC(name, value) name = (value | R_SPARC),
+#include "LIEF/ELF/Relocations/Sparc.def"
+#undef ELF_RELOC

-    #define ELF_RELOC(name, value) name = (value | R_SYSZ),
-      #include "LIEF/ELF/Relocations/SystemZ.def"
-    #undef ELF_RELOC
+#define ELF_RELOC(name, value) name = (value | R_SYSZ),
+#include "LIEF/ELF/Relocations/SystemZ.def"
+#undef ELF_RELOC

-    #define ELF_RELOC(name, value) name = (value | R_RISCV),
-      #include "LIEF/ELF/Relocations/RISCV.def"
-    #undef ELF_RELOC
+#define ELF_RELOC(name, value) name = (value | R_RISCV),
+#include "LIEF/ELF/Relocations/RISCV.def"
+#undef ELF_RELOC

-    #define ELF_RELOC(name, value) name = (value | R_BPF),
-      #include "LIEF/ELF/Relocations/BPF.def"
-    #undef ELF_RELOC
+#define ELF_RELOC(name, value) name = (value | R_BPF),
+#include "LIEF/ELF/Relocations/BPF.def"
+#undef ELF_RELOC

-    #define ELF_RELOC(name, value) name = (value | R_SH4),
-      #include "LIEF/ELF/Relocations/SH4.def"
-    #undef ELF_RELOC
+#define ELF_RELOC(name, value) name = (value | R_SH4),
+#include "LIEF/ELF/Relocations/SH4.def"
+#undef ELF_RELOC
   };

   static TYPE type_from(uint32_t value, ARCH arch);
@@ -150,15 +164,14 @@ class LIEF_API Relocation : public LIEF::Relocation {
   Relocation(uint64_t address, TYPE type, ENCODING enc);

   Relocation() = default;
-  Relocation(ARCH arch) {
-    architecture_ = arch;
-  }
+  Relocation(ARCH arch) :
+    architecture_(arch) {}

   ~Relocation() override = default;

   /// Copy constructor.
   ///
-  /// \warning When this constructor is invoked, referenced sections or symbols
+  /// @warning When this constructor is invoked, referenced sections or symbols
   /// are discarded. This means that on the copied Relocation, Relocation::section,
   /// Relocation::symbol and Relocation::symbol_table are set to a nullptr.
   Relocation(const Relocation& other) :
@@ -166,8 +179,7 @@ class LIEF_API Relocation : public LIEF::Relocation {
     type_{other.type_},
     addend_{other.addend_},
     encoding_{other.encoding_},
-    architecture_{other.architecture_}
-  {}
+    architecture_{other.architecture_} {}

   /// Copy assignment operator.
   ///
@@ -178,17 +190,17 @@ class LIEF_API Relocation : public LIEF::Relocation {
   }

   void swap(Relocation& other) {
-    std::swap(address_,      other.address_);
-    std::swap(type_,         other.type_);
-    std::swap(addend_,       other.addend_);
-    std::swap(encoding_,     other.encoding_);
-    std::swap(symbol_,       other.symbol_);
+    std::swap(address_, other.address_);
+    std::swap(type_, other.type_);
+    std::swap(addend_, other.addend_);
+    std::swap(encoding_, other.encoding_);
+    std::swap(symbol_, other.symbol_);
     std::swap(architecture_, other.architecture_);
-    std::swap(purpose_,      other.purpose_);
-    std::swap(section_,      other.section_);
+    std::swap(purpose_, other.purpose_);
+    std::swap(section_, other.section_);
     std::swap(symbol_table_, other.symbol_table_);
-    std::swap(info_,         other.info_);
-    std::swap(binary_,       other.binary_);
+    std::swap(info_, other.info_);
+    std::swap(binary_, other.binary_);
   }

   /// Additional value that can be involved in the relocation processing
@@ -234,8 +246,8 @@ class LIEF_API Relocation : public LIEF::Relocation {
       return 0;
     }
     return clazz == Header::CLASS::ELF32 ?
-           uint32_t(info()) << 8  | to_value(type()) :
-           uint64_t(info()) << 32 | (to_value(type()) & 0xffffffffL);
+               uint32_t(info()) << 8 | to_value(type()) :
+               uint64_t(info()) << 32 | (to_value(type()) & 0xffffffffL);
   }

   /// Target architecture for this relocation
@@ -270,11 +282,11 @@ class LIEF_API Relocation : public LIEF::Relocation {
   }

   /// Symbol associated with the relocation (or a nullptr)
-  Symbol* symbol() {
+  Symbol* symbol() LIEF_LIFETIMEBOUND {
     return symbol_;
   }

-  const Symbol* symbol() const {
+  const Symbol* symbol() const LIEF_LIFETIMEBOUND {
     return symbol_;
   }

@@ -284,20 +296,20 @@ class LIEF_API Relocation : public LIEF::Relocation {
   }

   /// The section in which the relocation is applied (or a nullptr)
-  Section* section() {
+  Section* section() LIEF_LIFETIMEBOUND {
     return section_;
   }

-  const Section* section() const {
+  const Section* section() const LIEF_LIFETIMEBOUND {
     return section_;
   }

   /// The associated symbol table (or a nullptr)
-  Section* symbol_table() {
+  Section* symbol_table() LIEF_LIFETIMEBOUND {
     return symbol_table_;
   }

-  const Section* symbol_table() const {
+  const Section* symbol_table() const LIEF_LIFETIMEBOUND {
     return symbol_table_;
   }

@@ -335,7 +347,8 @@ class LIEF_API Relocation : public LIEF::Relocation {

   void accept(Visitor& visitor) const override;

-  LIEF_API friend std::ostream& operator<<(std::ostream& os, const Relocation& entry);
+  LIEF_API friend std::ostream& operator<<(std::ostream& os,
+                                           const Relocation& entry);

   private:
   template<class T>
diff --git a/deps/LIEF/include/LIEF/ELF/Section.hpp b/deps/LIEF/include/LIEF/ELF/Section.hpp
index 08e22c35879..7e61ef85e0e 100644
--- a/deps/LIEF/include/LIEF/ELF/Section.hpp
+++ b/deps/LIEF/include/LIEF/ELF/Section.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -22,6 +22,7 @@
 #include <memory>

 #include "LIEF/utils.hpp"
+#include "LIEF/compiler_attributes.hpp"
 #include "LIEF/visibility.h"
 #include "LIEF/Abstract/Section.hpp"

@@ -53,56 +54,65 @@ class LIEF_API Section : public LIEF::Section {
   friend class ObjectFileLayout;

   public:
-  using segments_t        = std::vector<Segment*>;
-  using it_segments       = ref_iterator<segments_t&>;
+  using segments_t = std::vector<Segment*>;
+  using it_segments = ref_iterator<segments_t&>;
   using it_const_segments = const_ref_iterator<const segments_t&>;

   static constexpr uint32_t MAX_SECTION_SIZE = 2_GB;

+  // clang-format off
   enum class TYPE : uint64_t {
-    SHT_NULL_           = 0,  /**< No associated section (inactive entry). */
-    PROGBITS            = 1,  /**< Program-defined contents. */
-    SYMTAB              = 2,  /**< Symbol table. */
-    STRTAB              = 3,  /**< String table. */
-    RELA                = 4,  /**< Relocation entries; explicit addends. */
-    HASH                = 5,  /**< Symbol hash table. */
-    DYNAMIC             = 6,  /**< Information for dynamic linking. */
-    NOTE                = 7,  /**< Information about the file. */
-    NOBITS              = 8,  /**< Data occupies no space in the file. */
-    REL                 = 9,  /**< Relocation entries; no explicit addends. */
-    SHLIB               = 10, /**< Reserved. */
-    DYNSYM              = 11, /**< Symbol table. */
-    INIT_ARRAY          = 14, /**< Pointers to initialization functions. */
-    FINI_ARRAY          = 15, /**< Pointers to termination functions. */
-    PREINIT_ARRAY       = 16, /**< Pointers to pre-init functions. */
-    GROUP               = 17, /**< Section group. */
-    SYMTAB_SHNDX        = 18, /**< Indices for SHN_XINDEX entries. */
-    RELR                = 19, /**< Relocation entries; only offsets. */
-
-    ANDROID_REL         = 0x60000001, /**< Packed relocations (Android specific). */
-    ANDROID_RELA        = 0x60000002, /**< Packed relocations (Android specific). */
-    LLVM_ADDRSIG        = 0x6fff4c03, /**< This section is used to mark symbols as address-significant. */
-    ANDROID_RELR        = 0x6fffff00, /**< New relr relocations (Android specific). */
-    GNU_ATTRIBUTES      = 0x6ffffff5, /**< Object attributes. */
-    GNU_HASH            = 0x6ffffff6, /**< GNU-style hash table. */
-    GNU_VERDEF          = 0x6ffffffd, /**< GNU version definitions. */
-    GNU_VERNEED         = 0x6ffffffe, /**< GNU version references. */
-    GNU_VERSYM          = 0x6fffffff, /**< GNU symbol versions table. */
-
-    _ID_SHIFT_ = 32,
-    _ARM_ID_ = 1LLU, _HEX_ID_ = 2LLU, _X86_64_ID_ = 2LLU,
-    _MIPS_ID_ = 3LLU, _RISCV_ID_ = 4LLU,
-
-    ARM_EXIDX           = 0x70000001U + (_ARM_ID_ << _ID_SHIFT_), /**< Exception Index table */
-    ARM_PREEMPTMAP      = 0x70000002U + (_ARM_ID_ << _ID_SHIFT_), /**< BPABI DLL dynamic linking pre-emption map */
-    ARM_ATTRIBUTES      = 0x70000003U + (_ARM_ID_ << _ID_SHIFT_), /**< Object file compatibility attributes */
-    ARM_DEBUGOVERLAY    = 0x70000004U + (_ARM_ID_ << _ID_SHIFT_),
-    ARM_OVERLAYSECTION  = 0x70000005U + (_ARM_ID_ << _ID_SHIFT_),
-
-    HEX_ORDERED         = 0x70000000 + (_HEX_ID_ << _ID_SHIFT_), /**< Link editor is to sort the entries in this section based on their sizes */
+    SHT_NULL_ = 0,      /**< No associated section (inactive entry). */
+    PROGBITS = 1,       /**< Program-defined contents. */
+    SYMTAB = 2,         /**< Symbol table. */
+    STRTAB = 3,         /**< String table. */
+    RELA = 4,           /**< Relocation entries; explicit addends. */
+    HASH = 5,           /**< Symbol hash table. */
+    DYNAMIC = 6,        /**< Information for dynamic linking. */
+    NOTE = 7,           /**< Information about the file. */
+    NOBITS = 8,         /**< Data occupies no space in the file. */
+    REL = 9,            /**< Relocation entries; no explicit addends. */
+    SHLIB = 10,         /**< Reserved. */
+    DYNSYM = 11,        /**< Symbol table. */
+    INIT_ARRAY = 14,    /**< Pointers to initialization functions. */
+    FINI_ARRAY = 15,    /**< Pointers to termination functions. */
+    PREINIT_ARRAY = 16, /**< Pointers to pre-init functions. */
+    GROUP = 17,         /**< Section group. */
+    SYMTAB_SHNDX = 18,  /**< Indices for SHN_XINDEX entries. */
+    RELR = 19,          /**< Relocation entries; only offsets. */
+
+    ANDROID_REL  = 0x60000001, /**< Packed relocations (Android specific). */
+    ANDROID_RELA = 0x60000002, /**< Packed relocations (Android specific). */
+
+    LLVM_ADDRSIG = 0x6fff4c03, /**< This section is used to mark symbols as
+                                    address-significant. */
+
+    ANDROID_RELR   = 0x6fffff00, /**< New relr relocations (Android specific). */
+    GNU_ATTRIBUTES = 0x6ffffff5, /**< Object attributes. */
+    GNU_HASH       = 0x6ffffff6, /**< GNU-style hash table. */
+    GNU_VERDEF     = 0x6ffffffd, /**< GNU version definitions. */
+    GNU_VERNEED    = 0x6ffffffe, /**< GNU version references. */
+    GNU_VERSYM     = 0x6fffffff, /**< GNU symbol versions table. */
+
+    _ID_SHIFT_   = 32,
+    _ARM_ID_     = 1LLU,
+    _HEX_ID_     = 2LLU,
+    _X86_64_ID_  = 2LLU,
+    _MIPS_ID_    = 3LLU,
+    _RISCV_ID_   = 4LLU,
+    _AARCH64_ID_ = 5LLU,
+
+    ARM_EXIDX          = 0x70000001U + (_ARM_ID_ << _ID_SHIFT_), /**< Exception Index table */
+    ARM_PREEMPTMAP     = 0x70000002U + (_ARM_ID_ << _ID_SHIFT_), /**< BPABI DLL dynamic linking pre-emption map */
+    ARM_ATTRIBUTES     = 0x70000003U + (_ARM_ID_ << _ID_SHIFT_), /**< Object file compatibility attributes */
+    ARM_DEBUGOVERLAY   = 0x70000004U + (_ARM_ID_ << _ID_SHIFT_),
+    ARM_OVERLAYSECTION = 0x70000005U + (_ARM_ID_ << _ID_SHIFT_),
+
+    HEX_ORDERED = 0x70000000 + (_HEX_ID_ << _ID_SHIFT_), /**< Link editor is to sort the entries in this
+                                                              section based on their sizes */

     /* this section based on their sizes */
-    X86_64_UNWIND       = 0x70000001 + (_X86_64_ID_ << _ID_SHIFT_), /**< Unwind information */
+    X86_64_UNWIND = 0x70000001 + (_X86_64_ID_ << _ID_SHIFT_), /**< Unwind information */

     MIPS_LIBLIST       = 0x70000000 + (_MIPS_ID_ << _ID_SHIFT_),
     MIPS_MSYM          = 0x70000001 + (_MIPS_ID_ << _ID_SHIFT_),
@@ -146,50 +156,64 @@ class LIEF_API Section : public LIEF::Section {
     MIPS_ABIFLAGS      = 0x7000002a + (_MIPS_ID_ << _ID_SHIFT_),
     MIPS_XHASH         = 0x7000002b + (_MIPS_ID_ << _ID_SHIFT_),

-    RISCV_ATTRIBUTES    = 0x70000003 + (_RISCV_ID_ << _ID_SHIFT_),
+    RISCV_ATTRIBUTES = 0x70000003 + (_RISCV_ID_ << _ID_SHIFT_),
+
+    AARCH64_ATTRIBUTES             = 0x70000003 + (_AARCH64_ID_ << _ID_SHIFT_),
+    AARCH64_AUTH_RELR              = 0x70000004 + (_AARCH64_ID_ << _ID_SHIFT_),
+    AARCH64_MEMTAG_GLOBALS_STATIC  = 0x70000007 + (_AARCH64_ID_ << _ID_SHIFT_),
+    AARCH64_MEMTAG_GLOBALS_DYNAMIC = 0x70000008 + (_AARCH64_ID_ << _ID_SHIFT_),
   };

   enum class FLAGS : uint64_t {
-    NONE                 = 0x000000000,
-    WRITE                = 0x000000001,  /**< Section data should be writable during execution. */
-    ALLOC                = 0x000000002,  /**< Section occupies memory during program execution. */
-    EXECINSTR            = 0x000000004,  /**< Section contains executable machine instructions. */
-    MERGE                = 0x000000010,  /**< The data in this section may be merged. */
-    STRINGS              = 0x000000020,  /**< The data in this section is null-terminated strings. */
-    INFO_LINK            = 0x000000040,  /**< A field in this section holds a section header table index. */
-    LINK_ORDER           = 0x000000080,  /**< Adds special ordering requirements for link editors. */
-    OS_NONCONFORMING     = 0x000000100,  /**< This section requires special OS-specific processing to avoid incorrect behavior */
-    GROUP                = 0x000000200,  /**< This section is a member of a section group. */
-    TLS                  = 0x000000400,  /**< This section holds Thread-Local Storage. */
-    COMPRESSED           = 0x000000800,
-    GNU_RETAIN           = 0x000200000,
-    EXCLUDE              = 0x080000000,
-
-    _ID_SHIFT_ = 32,
-    _XCORE_ID_ = 1LLU, _HEX_ID_ = 3LLU, _X86_64_ID_ = 2LLU,
-    _MIPS_ID_  = 4LLU, _ARM_ID_ = 5LLU,
+    NONE             = 0x000000000,
+    WRITE            = 0x000000001, /**< Section data should be writable during execution. */
+    ALLOC            = 0x000000002, /**< Section occupies memory during program execution. */
+    EXECINSTR        = 0x000000004, /**< Section contains executable machine instructions. */
+    MERGE            = 0x000000010, /**< The data in this section may be merged. */
+    STRINGS          = 0x000000020, /**< The data in this section is null-terminated strings. */
+    INFO_LINK        = 0x000000040, /**< A field in this section holds a section header table index. */
+    LINK_ORDER       = 0x000000080, /**< Adds special ordering requirements for link editors. */
+    OS_NONCONFORMING = 0x000000100, /**< This section requires special OS-specific processing to avoid incorrect behavior */
+    GROUP            = 0x000000200, /**< This section is a member of a section group. */
+    TLS              = 0x000000400, /**< This section holds Thread-Local Storage. */
+    COMPRESSED       = 0x000000800,
+    GNU_RETAIN       = 0x000200000,
+    EXCLUDE          = 0x080000000,
+
+    _ID_SHIFT_   = 32,
+    _XCORE_ID_   = 1LLU,
+    _HEX_ID_     = 3LLU,
+    _X86_64_ID_  = 2LLU,
+    _MIPS_ID_    = 4LLU,
+    _ARM_ID_     = 5LLU,
+    _AARCH64_ID_ = 6LLU,

     XCORE_SHF_DP_SECTION = 0x010000000 + (_XCORE_ID_ << _ID_SHIFT_),
     XCORE_SHF_CP_SECTION = 0x020000000 + (_XCORE_ID_ << _ID_SHIFT_),

-    X86_64_LARGE         = 0x010000000 + (_X86_64_ID_ << _ID_SHIFT_),
+    X86_64_LARGE = 0x010000000 + (_X86_64_ID_ << _ID_SHIFT_),
+
+    HEX_GPREL    = 0x010000000 + (_HEX_ID_ << _ID_SHIFT_),

-    HEX_GPREL            = 0x010000000 + (_HEX_ID_ << _ID_SHIFT_),
+    MIPS_NODUPES = 0x001000000 + (_MIPS_ID_ << _ID_SHIFT_),
+    MIPS_NAMES   = 0x002000000 + (_MIPS_ID_ << _ID_SHIFT_),
+    MIPS_LOCAL   = 0x004000000 + (_MIPS_ID_ << _ID_SHIFT_),
+    MIPS_NOSTRIP = 0x008000000 + (_MIPS_ID_ << _ID_SHIFT_),
+    MIPS_GPREL   = 0x010000000 + (_MIPS_ID_ << _ID_SHIFT_),
+    MIPS_MERGE   = 0x020000000 + (_MIPS_ID_ << _ID_SHIFT_),
+    MIPS_ADDR    = 0x040000000 + (_MIPS_ID_ << _ID_SHIFT_),
+    MIPS_STRING  = 0x080000000 + (_MIPS_ID_ << _ID_SHIFT_),

-    MIPS_NODUPES         = 0x001000000 + (_MIPS_ID_ << _ID_SHIFT_),
-    MIPS_NAMES           = 0x002000000 + (_MIPS_ID_ << _ID_SHIFT_),
-    MIPS_LOCAL           = 0x004000000 + (_MIPS_ID_ << _ID_SHIFT_),
-    MIPS_NOSTRIP         = 0x008000000 + (_MIPS_ID_ << _ID_SHIFT_),
-    MIPS_GPREL           = 0x010000000 + (_MIPS_ID_ << _ID_SHIFT_),
-    MIPS_MERGE           = 0x020000000 + (_MIPS_ID_ << _ID_SHIFT_),
-    MIPS_ADDR            = 0x040000000 + (_MIPS_ID_ << _ID_SHIFT_),
-    MIPS_STRING          = 0x080000000 + (_MIPS_ID_ << _ID_SHIFT_),
+    ARM_PURECODE = 0x020000000 + (_ARM_ID_ << _ID_SHIFT_),

-    ARM_PURECODE         = 0x020000000 + (_ARM_ID_  << _ID_SHIFT_),
+    AARCH64_PURECODE = 0x020000000 + (_AARCH64_ID_ << _ID_SHIFT_),
   };
+  // clang-format on

-  static constexpr uint64_t FLAG_MASK = (uint64_t(1) << uint8_t(FLAGS::_ID_SHIFT_)) - 1;
-  static constexpr uint64_t TYPE_MASK = (uint64_t(1) << uint8_t(TYPE::_ID_SHIFT_)) - 1;
+  static constexpr uint64_t FLAG_MASK =
+      (uint64_t(1) << uint8_t(FLAGS::_ID_SHIFT_)) - 1;
+  static constexpr uint64_t TYPE_MASK =
+      (uint64_t(1) << uint8_t(TYPE::_ID_SHIFT_)) - 1;

   static TYPE type_from(uint32_t value, ARCH arch);
   static uint32_t to_value(TYPE type) {
@@ -198,8 +222,7 @@ class LIEF_API Section : public LIEF::Section {

   Section(const std::string& name, TYPE type = TYPE::PROGBITS) :
     LIEF::Section(name),
-    type_{type}
-  {}
+    type_{type} {}

   Section() = default;
   ~Section() override = default;
@@ -216,7 +239,7 @@ class LIEF_API Section : public LIEF::Section {
   }

   /// Section's content
-  span<const uint8_t> content() const override;
+  span<const uint8_t> content() const LIEF_LIFETIMEBOUND override;

   /// Set section content
   void content(const std::vector<uint8_t>& data) override;
@@ -273,12 +296,12 @@ class LIEF_API Section : public LIEF::Section {
     return info_;
   }

-  /// This function returns the size of an element in the case of a section that contains
-  /// an array.
+  /// This function returns the size of an element in the case of a section that
+  /// contains an array.
   ///
-  /// For instance, the `.dynamic` section contains an array of DynamicEntry. As the
-  /// size of the raw C structure of this entry is 0x10 (`sizeoe(Elf64_Dyn)`)
-  /// in a ELF64, the `entry_size` is set to this value.
+  /// For instance, the `.dynamic` section contains an array of DynamicEntry. As
+  /// the size of the raw C structure of this entry is 0x10 (`sizeof(Elf64_Dyn)`)
+  /// in an ELF64, the `entry_size` is set to this value.
   uint64_t entry_size() const {
     return entry_size_;
   }
@@ -289,7 +312,7 @@ class LIEF_API Section : public LIEF::Section {
   }

   /// Clear the content of the section with the given ``value``
-  Section& clear(uint8_t value = 0);
+  Section& clear(uint8_t value = 0) LIEF_LIFETIMEBOUND;

   /// Add the given ELF_SECTION_FLAGS
   void add(FLAGS flag);
@@ -298,7 +321,7 @@ class LIEF_API Section : public LIEF::Section {
   void remove(FLAGS flag);

   void type(TYPE type) {
-    type_  = type;
+    type_ = type;
   }

   void flags(uint64_t flags) {
@@ -329,15 +352,15 @@ class LIEF_API Section : public LIEF::Section {
     entry_size_ = entry_size;
   }

-  it_segments segments() {
+  it_segments segments() LIEF_LIFETIMEBOUND {
     return segments_;
   }

-  it_const_segments segments() const {
+  it_const_segments segments() const LIEF_LIFETIMEBOUND {
     return segments_;
   }

-  Section& as_frame() {
+  Section& as_frame() LIEF_LIFETIMEBOUND {
     is_frame_ = true;
     return *this;
   }
@@ -361,13 +384,14 @@ class LIEF_API Section : public LIEF::Section {
   /// Return a stream over the content of this section
   std::unique_ptr<SpanStream> stream() const;

-  LIEF_API friend std::ostream& operator<<(std::ostream& os, const Section& section);
+  LIEF_API friend std::ostream& operator<<(std::ostream& os,
+                                           const Section& section);

   private:
   template<class T>
   LIEF_LOCAL Section(const T& header, ARCH arch);

-  LIEF_LOCAL span<uint8_t> writable_content();
+  LIEF_LOCAL span<uint8_t> writable_content() LIEF_LIFETIMEBOUND;
   ARCH arch_ = ARCH::NONE;
   TYPE type_ = TYPE::SHT_NULL_;
   uint64_t flags_ = 0;
diff --git a/deps/LIEF/include/LIEF/ELF/Segment.hpp b/deps/LIEF/include/LIEF/ELF/Segment.hpp
index b74e1850a4a..4edd1c12cf1 100644
--- a/deps/LIEF/include/LIEF/ELF/Segment.hpp
+++ b/deps/LIEF/include/LIEF/ELF/Segment.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -22,6 +22,7 @@
 #include <memory>

 #include "LIEF/Object.hpp"
+#include "LIEF/compiler_attributes.hpp"
 #include "LIEF/visibility.h"
 #include "LIEF/errors.hpp"
 #include "LIEF/iterators.hpp"
@@ -53,78 +54,80 @@ class LIEF_API Segment : public Object {
   friend class Builder;

   public:
-  using sections_t        = std::vector<Section*>;
-  using it_sections       = ref_iterator<sections_t&>;
+  using sections_t = std::vector<Section*>;
+  using it_sections = ref_iterator<sections_t&>;
   using it_const_sections = const_ref_iterator<const sections_t&>;

+  // clang-format off
   static constexpr uint64_t PT_BIT = 33;
   static constexpr uint64_t PT_OS_BIT = 53;
   static constexpr uint64_t PT_MASK = (uint64_t(1) << PT_BIT) - 1;

-  static constexpr uint64_t PT_ARM      = uint64_t(1) << PT_BIT;
-  static constexpr uint64_t PT_AARCH64  = uint64_t(2) << PT_BIT;
-  static constexpr uint64_t PT_MIPS     = uint64_t(3) << PT_BIT;
-  static constexpr uint64_t PT_RISCV    = uint64_t(4) << PT_BIT;
-  static constexpr uint64_t PT_IA_64    = uint64_t(5) << PT_BIT;
+  static constexpr uint64_t PT_ARM     = uint64_t(1) << PT_BIT;
+  static constexpr uint64_t PT_AARCH64 = uint64_t(2) << PT_BIT;
+  static constexpr uint64_t PT_MIPS    = uint64_t(3) << PT_BIT;
+  static constexpr uint64_t PT_RISCV   = uint64_t(4) << PT_BIT;
+  static constexpr uint64_t PT_IA_64   = uint64_t(5) << PT_BIT;

-  static constexpr uint64_t PT_HPUX     = uint64_t(1) << PT_OS_BIT;
+  static constexpr uint64_t PT_HPUX = uint64_t(1) << PT_OS_BIT;

   enum class TYPE : uint64_t {
-    UNKNOWN       = uint64_t(-1),
-    PT_NULL_      = 0, /**< Unused segment. */
-    LOAD          = 1, /**< Loadable segment. */
-    DYNAMIC       = 2, /**< Dynamic linking information. */
-    INTERP        = 3, /**< Interpreter pathname. */
-    NOTE          = 4, /**< Auxiliary information. */
-    SHLIB         = 5, /**< Reserved. */
-    PHDR          = 6, /**< The program header table itself. */
-    TLS           = 7, /**< The thread-local storage template. */
-
-    GNU_EH_FRAME  = 0x6474e550,
-
-    GNU_STACK     = 0x6474e551, /**< Indicates stack executability. */
-    GNU_PROPERTY  = 0x6474e553, /**< GNU property */
-    GNU_RELRO     = 0x6474e552, /**< Read-only after relocation. */
-    PAX_FLAGS     = 0x65041580,
-
-    ARM_ARCHEXT   = 0x70000000 | PT_ARM, /**< Platform architecture compatibility info */
-    ARM_EXIDX     = 0x70000001 | PT_ARM,
+    UNKNOWN = uint64_t(-1),
+    PT_NULL_ = 0, /**< Unused segment. */
+    LOAD = 1,     /**< Loadable segment. */
+    DYNAMIC = 2,  /**< Dynamic linking information. */
+    INTERP = 3,   /**< Interpreter pathname. */
+    NOTE = 4,     /**< Auxiliary information. */
+    SHLIB = 5,    /**< Reserved. */
+    PHDR = 6,     /**< The program header table itself. */
+    TLS = 7,      /**< The thread-local storage template. */
+
+    GNU_EH_FRAME = 0x6474e550,
+
+    GNU_STACK    = 0x6474e551, /**< Indicates stack executability. */
+    GNU_PROPERTY = 0x6474e553, /**< GNU property */
+    GNU_RELRO    = 0x6474e552,    /**< Read-only after relocation. */
+    PAX_FLAGS    = 0x65041580,
+
+    ARM_ARCHEXT = 0x70000000 | PT_ARM, /**< Platform architecture compatibility info */
+    ARM_EXIDX   = 0x70000001 | PT_ARM,

     AARCH64_MEMTAG_MTE = 0x70000002 | PT_AARCH64,

-    MIPS_REGINFO  = 0x70000000 | PT_MIPS,  /**< Register usage information. */
-    MIPS_RTPROC   = 0x70000001 | PT_MIPS,  /**< Runtime procedure table. */
-    MIPS_OPTIONS  = 0x70000002 | PT_MIPS,  /**< Options segment. */
-    MIPS_ABIFLAGS = 0x70000003 | PT_MIPS,  /**< Abiflags segment. */
+    MIPS_REGINFO  = 0x70000000 | PT_MIPS, /**< Register usage information. */
+    MIPS_RTPROC   = 0x70000001 | PT_MIPS, /**< Runtime procedure table. */
+    MIPS_OPTIONS  = 0x70000002 | PT_MIPS, /**< Options segment. */
+    MIPS_ABIFLAGS = 0x70000003 | PT_MIPS, /**< Abiflags segment. */

     RISCV_ATTRIBUTES = 0x70000003 | PT_RISCV,

-    IA_64_EXT         = (0x70000000 + 0x0) | PT_IA_64,
-    IA_64_UNWIND      = (0x70000000 + 0x1) | PT_IA_64,
-
-    HP_TLS            = (0x60000000 + 0x0)  | PT_HPUX,
-    HP_CORE_NONE      = (0x60000000 + 0x1)  | PT_HPUX,
-    HP_CORE_VERSION   = (0x60000000 + 0x2)  | PT_HPUX,
-    HP_CORE_KERNEL    = (0x60000000 + 0x3)  | PT_HPUX,
-    HP_CORE_COMM      = (0x60000000 + 0x4)  | PT_HPUX,
-    HP_CORE_PROC      = (0x60000000 + 0x5)  | PT_HPUX,
-    HP_CORE_LOADABLE  = (0x60000000 + 0x6)  | PT_HPUX,
-    HP_CORE_STACK     = (0x60000000 + 0x7)  | PT_HPUX,
-    HP_CORE_SHM       = (0x60000000 + 0x8)  | PT_HPUX,
-    HP_CORE_MMF       = (0x60000000 + 0x9)  | PT_HPUX,
-    HP_PARALLEL       = (0x60000000 + 0x10) | PT_HPUX,
-    HP_FASTBIND       = (0x60000000 + 0x11) | PT_HPUX,
-    HP_OPT_ANNOT      = (0x60000000 + 0x12) | PT_HPUX,
-    HP_HSL_ANNOT      = (0x60000000 + 0x13) | PT_HPUX,
-    HP_STACK          = (0x60000000 + 0x14) | PT_HPUX,
-    HP_CORE_UTSNAME   = (0x60000000 + 0x15) | PT_HPUX,
+    IA_64_EXT    = (0x70000000 + 0x0) | PT_IA_64,
+    IA_64_UNWIND = (0x70000000 + 0x1) | PT_IA_64,
+
+    HP_TLS           = (0x60000000 + 0x00) | PT_HPUX,
+    HP_CORE_NONE     = (0x60000000 + 0x01) | PT_HPUX,
+    HP_CORE_VERSION  = (0x60000000 + 0x02) | PT_HPUX,
+    HP_CORE_KERNEL   = (0x60000000 + 0x03) | PT_HPUX,
+    HP_CORE_COMM     = (0x60000000 + 0x04) | PT_HPUX,
+    HP_CORE_PROC     = (0x60000000 + 0x05) | PT_HPUX,
+    HP_CORE_LOADABLE = (0x60000000 + 0x06) | PT_HPUX,
+    HP_CORE_STACK    = (0x60000000 + 0x07) | PT_HPUX,
+    HP_CORE_SHM      = (0x60000000 + 0x08) | PT_HPUX,
+    HP_CORE_MMF      = (0x60000000 + 0x09) | PT_HPUX,
+    HP_PARALLEL      = (0x60000000 + 0x10) | PT_HPUX,
+    HP_FASTBIND      = (0x60000000 + 0x11) | PT_HPUX,
+    HP_OPT_ANNOT     = (0x60000000 + 0x12) | PT_HPUX,
+    HP_HSL_ANNOT     = (0x60000000 + 0x13) | PT_HPUX,
+    HP_STACK         = (0x60000000 + 0x14) | PT_HPUX,
+    HP_CORE_UTSNAME  = (0x60000000 + 0x15) | PT_HPUX,
   };
+  // clang-format on

   enum class FLAGS {
     NONE = 0,
-    X    = 1,
-    W    = 2,
-    R    = 4,
+    X = 1,
+    W = 2,
+    R = 4,
   };

   static TYPE type_from(uint64_t value, ARCH arch, Header::OS_ABI os);
@@ -208,7 +211,7 @@ class LIEF_API Segment : public Object {
   }

   /// The raw data associated with this segment.
-  span<const uint8_t> content() const;
+  span<const uint8_t> content() const LIEF_LIFETIMEBOUND;

   /// Check if the current segment has the given flag
   bool has(FLAGS flag) const {
@@ -272,18 +275,22 @@ class LIEF_API Segment : public Object {
   }

   /// Clear the content of this segment
-  void clear() { fill('\0'); }
+  void clear() {
+    fill('\0');
+  }

-  template<typename T> T get_content_value(size_t offset) const;
-  template<typename T> void set_content_value(size_t offset, T value);
+  template<typename T>
+  T get_content_value(size_t offset) const;
+  template<typename T>
+  void set_content_value(size_t offset, T value);
   size_t get_content_size() const;

   /// Iterator over the sections wrapped by this segment
-  it_sections sections() {
+  it_sections sections() LIEF_LIFETIMEBOUND {
     return sections_;
   }

-  it_const_sections sections() const {
+  it_const_sections sections() const LIEF_LIFETIMEBOUND {
     return sections_;
   }

@@ -301,7 +308,8 @@ class LIEF_API Segment : public Object {
     return *this;
   }

-  LIEF_API friend std::ostream& operator<<(std::ostream& os, const Segment& segment);
+  LIEF_API friend std::ostream& operator<<(std::ostream& os,
+                                           const Segment& segment);

   private:
   template<class T>
@@ -309,7 +317,7 @@ class LIEF_API Segment : public Object {
                      Header::OS_ABI os = Header::OS_ABI::SYSTEMV);

   LIEF_LOCAL uint64_t handler_size() const;
-  span<uint8_t> writable_content();
+  span<uint8_t> writable_content() LIEF_LIFETIMEBOUND;

   TYPE type_ = TYPE::PT_NULL_;
   ARCH arch_ = ARCH::NONE;
@@ -323,7 +331,7 @@ class LIEF_API Segment : public Object {
   uint64_t handler_size_ = 0;
   sections_t sections_;
   DataHandler::Handler* datahandler_ = nullptr;
-  std::vector<uint8_t>  content_c_;
+  std::vector<uint8_t> content_c_;
 };

 LIEF_API const char* to_string(Segment::TYPE e);
@@ -334,4 +342,4 @@ LIEF_API const char* to_string(Segment::FLAGS e);

 ENABLE_BITMASK_OPERATORS(LIEF::ELF::Segment::FLAGS);

-#endif /* _ELF_SEGMENT_H */
+#endif
diff --git a/deps/LIEF/include/LIEF/ELF/Symbol.hpp b/deps/LIEF/include/LIEF/ELF/Symbol.hpp
index bfb5c226244..8b38d71f39d 100644
--- a/deps/LIEF/include/LIEF/ELF/Symbol.hpp
+++ b/deps/LIEF/include/LIEF/ELF/Symbol.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -17,7 +17,6 @@
 #define LIEF_ELF_SYMBOL_H

 #include <string>
-#include <vector>
 #include <ostream>

 #include "LIEF/visibility.h"
@@ -35,48 +34,47 @@ class Section;
 class LIEF_API Symbol : public LIEF::Symbol {
   friend class Parser;
   friend class Binary;
-  public:

+  public:
   enum class BINDING {
-    LOCAL      = 0,  ///< Local symbol
-    GLOBAL     = 1,  ///< Global symbol
-    WEAK       = 2,  ///< Weak symbol
+    LOCAL = 0,       ///< Local symbol
+    GLOBAL,          ///< Global symbol
+    WEAK,            ///< Weak symbol
     GNU_UNIQUE = 10, ///< Unique symbol
   };

   /// Type of the symbol. This enum matches the `STT_xxx` values of the ELF
   /// specs
   enum class TYPE {
-    NOTYPE    = 0,   ///< Symbol's type is not specified
-    OBJECT    = 1,   ///< Symbol is a data object (variable, array, etc.)
-    FUNC      = 2,   ///< Symbol is executable code (function, etc.)
-    SECTION   = 3,   ///< Symbol refers to a section
-    FILE      = 4,   ///< Local, absolute symbol that refers to a file
-    COMMON    = 5,   ///< An uninitialized common block
-    TLS       = 6,   ///< Thread local data object
-    GNU_IFUNC = 10,  ///< GNU indirect function
+    NOTYPE = 0,     ///< Symbol's type is not specified
+    OBJECT,         ///< Symbol is a data object (variable, array, etc.)
+    FUNC,           ///< Symbol is executable code (function, etc.)
+    SECTION,        ///< Symbol refers to a section
+    FILE,           ///< Local, absolute symbol that refers to a file
+    COMMON,         ///< An uninitialized common block
+    TLS,            ///< Thread local data object
+    GNU_IFUNC = 10, ///< GNU indirect function
   };

   /// Visibility of the symbol. This enum matches the `STV_xxx` values of the
   /// official ELF specs
   enum class VISIBILITY {
-    DEFAULT   = 0,  ///< Visibility is specified by binding type
-    INTERNAL  = 1,  ///< Defined by processor supplements
-    HIDDEN    = 2,  ///< Not visible to other components
-    PROTECTED = 3   ///< Visible in other components but not preemptable
+    DEFAULT = 0, ///< Visibility is specified by binding type
+    INTERNAL,    ///< Defined by processor supplements
+    HIDDEN,      ///< Not visible to other components
+    PROTECTED,   ///< Visible in other components but not preemptable
   };

   /// Special section indices
   enum SECTION_INDEX {
-    UNDEF  = 0,      ///< Undefined section
-    ABS    = 0xfff1, ///< Associated symbol is absolute
+    UNDEF = 0,       ///< Undefined section
+    ABS = 0xfff1,    ///< Associated symbol is absolute
     COMMON = 0xfff2, ///< Associated symbol is common
   };

   public:
-  Symbol(std::string name):
-    LIEF::Symbol(std::move(name), 0, 0)
-  {}
+  Symbol(std::string name) :
+    LIEF::Symbol(std::move(name), 0, 0) {}

   static BINDING binding_from(uint32_t value, ARCH) {
     return BINDING(value);
@@ -130,31 +128,35 @@ class LIEF_API Symbol : public LIEF::Symbol {
   }

   /// Section associated with the symbol or a nullptr if it does not exist.
-  Section* section() {
+  Section* section() LIEF_LIFETIMEBOUND {
     return section_;
   }

-  const Section* section() const {
+  const Section* section() const LIEF_LIFETIMEBOUND {
     return section_;
   }

   /// This member has slightly different interpretations:
-  ///   * In relocatable files, `value` holds alignment constraints for a symbol for which section index
+  ///   * In relocatable files, `value` holds alignment constraints for a symbol
+  ///   for which section index
   ///     is SHN_COMMON
-  ///   * In relocatable files, `value` holds a section offset for a defined symbol. That is, `value` is an
+  ///   * In relocatable files, `value` holds a section offset for a defined
+  ///   symbol. That is, `value` is an
   ///     offset from the beginning of the section associated with this symbol.
-  ///   * In executable and shared object files, `value` holds a virtual address. To make these files's
-  ///     symbols more useful for the dynamic linker, the section offset (file interpretation) gives way to
-  ///     a virtual address (memory interpretation) for which the section number is irrelevant.
+  ///   * In executable and shared object files, `value` holds a virtual address.
+  ///   To make these files's
+  ///     symbols more useful for the dynamic linker, the section offset (file
+  ///     interpretation) gives way to a virtual address (memory interpretation)
+  ///     for which the section number is irrelevant.
   uint64_t value() const override {
     return value_;
   }

   /// Symbol size
   ///
-  /// Many symbols have associated sizes. For example, a data object's size is the number of
-  /// bytes contained in the object. This member holds `0` if the symbol has no size or
-  /// an unknown size.
+  /// Many symbols have associated sizes. For example, a data object's size is the
+  /// number of bytes contained in the object. This member holds `0` if the symbol
+  /// has no size or an unknown size.
   uint64_t size() const override {
     return size_;
   }
@@ -171,11 +173,11 @@ class LIEF_API Symbol : public LIEF::Symbol {

   /// Return the SymbolVersion associated with this symbol.
   /// If there is no symbol version, return a nullptr
-  SymbolVersion* symbol_version() {
+  SymbolVersion* symbol_version() LIEF_LIFETIMEBOUND {
     return symbol_version_;
   }

-  const SymbolVersion* symbol_version() const {
+  const SymbolVersion* symbol_version() const LIEF_LIFETIMEBOUND {
     return symbol_version_;
   }

@@ -241,12 +243,12 @@ class LIEF_API Symbol : public LIEF::Symbol {
     return this->binding() == BINDING::GLOBAL;
   }

-  /// True if the symbol represent a function
+  /// True if the symbol represents a function
   bool is_function() const {
     return this->type() == TYPE::FUNC;
   }

-  /// True if the symbol represent a variable
+  /// True if the symbol represents a variable
   bool is_variable() const {
     return this->type() == TYPE::OBJECT;
   }
@@ -259,10 +261,10 @@ class LIEF_API Symbol : public LIEF::Symbol {
   template<class T>
   LIEF_API Symbol(const T& header, ARCH arch);

-  TYPE    type_ = TYPE::NOTYPE;
+  TYPE type_ = TYPE::NOTYPE;
   BINDING binding_ = BINDING::LOCAL;
-  uint8_t other_   = 0;
-  uint16_t shndx_   = 0;
+  uint8_t other_ = 0;
+  uint16_t shndx_ = 0;
   Section* section_ = nullptr;
   SymbolVersion* symbol_version_ = nullptr;
   ARCH arch_ = ARCH::NONE;
@@ -273,4 +275,4 @@ LIEF_API const char* to_string(Symbol::TYPE type);
 LIEF_API const char* to_string(Symbol::VISIBILITY viz);
 }
 }
-#endif /* _ELF_SYMBOL_H */
+#endif
diff --git a/deps/LIEF/include/LIEF/ELF/SymbolVersion.hpp b/deps/LIEF/include/LIEF/ELF/SymbolVersion.hpp
index ad92e21203f..3cf718abb82 100644
--- a/deps/LIEF/include/LIEF/ELF/SymbolVersion.hpp
+++ b/deps/LIEF/include/LIEF/ELF/SymbolVersion.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -38,18 +38,17 @@ class LIEF_API SymbolVersion : public Object {
   static constexpr auto GLOBAL_VERSION = 1;

   SymbolVersion(uint16_t value) :
-    value_(value)
-  {}
+    value_(value) {}
   SymbolVersion() = default;

   /// Generate a *local* SymbolVersion
   static SymbolVersion local() {
-    return SymbolVersion(LOCAL_VERSION);
+    return LOCAL_VERSION;
   }

   /// Generate a *global* SymbolVersion
   static SymbolVersion global() {
-    return SymbolVersion(GLOBAL_VERSION);
+    return GLOBAL_VERSION;
   }

   ~SymbolVersion() override = default;
@@ -74,11 +73,11 @@ class LIEF_API SymbolVersion : public Object {

   /// SymbolVersionAux associated with the current Version if any,
   /// or a nullptr
-  SymbolVersionAux* symbol_version_auxiliary() {
+  SymbolVersionAux* symbol_version_auxiliary() LIEF_LIFETIMEBOUND {
     return symbol_aux_;
   }

-  const SymbolVersionAux* symbol_version_auxiliary() const {
+  const SymbolVersionAux* symbol_version_auxiliary() const LIEF_LIFETIMEBOUND {
     return symbol_aux_;
   }

@@ -102,14 +101,14 @@ class LIEF_API SymbolVersion : public Object {

   /// Redefine this version as global by dropping its auxiliary version
   ///
-  /// \see as_local() drop_version()
+  /// @see as_local() drop_version()
   void as_global() {
     return drop_version(GLOBAL_VERSION);
   }

   /// Redefine this version as local by dropping its auxiliary version
   ///
-  /// \see as_global() drop_version()
+  /// @see as_global() drop_version()
   void as_local() {
     return drop_version(LOCAL_VERSION);
   }
@@ -120,10 +119,11 @@ class LIEF_API SymbolVersion : public Object {

   void accept(Visitor& visitor) const override;

-  LIEF_API friend std::ostream& operator<<(std::ostream& os, const SymbolVersion& symv);
+  LIEF_API friend std::ostream& operator<<(std::ostream& os,
+                                           const SymbolVersion& symv);

   private:
-  uint16_t          value_ = 0;
+  uint16_t value_ = 0;
   SymbolVersionAux* symbol_aux_ = nullptr;
 };
 }
diff --git a/deps/LIEF/include/LIEF/ELF/SymbolVersionAux.hpp b/deps/LIEF/include/LIEF/ELF/SymbolVersionAux.hpp
index 4ea2c921993..e784f4ffe88 100644
--- a/deps/LIEF/include/LIEF/ELF/SymbolVersionAux.hpp
+++ b/deps/LIEF/include/LIEF/ELF/SymbolVersionAux.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -29,10 +29,10 @@ class Parser;
 /// Class which represents an Auxiliary Symbol version
 class LIEF_API SymbolVersionAux : public Object {
   friend class Parser;
+
   public:
   SymbolVersionAux(std::string name) :
-    name_(std::move(name))
-  {}
+    name_(std::move(name)) {}
   SymbolVersionAux() = default;
   ~SymbolVersionAux() override = default;

@@ -50,8 +50,8 @@ class LIEF_API SymbolVersionAux : public Object {

   void accept(Visitor& visitor) const override;

-  LIEF_API friend
-  std::ostream& operator<<(std::ostream& os, const SymbolVersionAux& aux) {
+  LIEF_API friend std::ostream& operator<<(std::ostream& os,
+                                           const SymbolVersionAux& aux) {
     os << aux.name();
     return os;
   }
diff --git a/deps/LIEF/include/LIEF/ELF/SymbolVersionAuxRequirement.hpp b/deps/LIEF/include/LIEF/ELF/SymbolVersionAuxRequirement.hpp
index a96a97e2441..712f74ff57f 100644
--- a/deps/LIEF/include/LIEF/ELF/SymbolVersionAuxRequirement.hpp
+++ b/deps/LIEF/include/LIEF/ELF/SymbolVersionAuxRequirement.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -16,12 +16,10 @@
 #ifndef LIEF_ELF_SYMBOL_VERSION_AUX_REQUIREMENT_H
 #define LIEF_ELF_SYMBOL_VERSION_AUX_REQUIREMENT_H

-#include <string>
 #include <ostream>
 #include <cstdint>

 #include "LIEF/visibility.h"
-#include "LIEF/iterators.hpp"

 #include "LIEF/ELF/SymbolVersionAux.hpp"

@@ -40,7 +38,8 @@ class LIEF_API SymbolVersionAuxRequirement : public SymbolVersionAux {
   SymbolVersionAuxRequirement(const details::Elf32_Vernaux& header);
   SymbolVersionAuxRequirement() = default;

-  SymbolVersionAuxRequirement& operator=(const SymbolVersionAuxRequirement&) = default;
+  SymbolVersionAuxRequirement&
+      operator=(const SymbolVersionAuxRequirement&) = default;
   SymbolVersionAuxRequirement(const SymbolVersionAuxRequirement&) = default;

   ~SymbolVersionAuxRequirement() override = default;
@@ -77,8 +76,8 @@ class LIEF_API SymbolVersionAuxRequirement : public SymbolVersionAux {

   void accept(Visitor& visitor) const override;

-  LIEF_API friend
-  std::ostream& operator<<(std::ostream& os, const SymbolVersionAuxRequirement& aux) {
+  LIEF_API friend std::ostream&
+      operator<<(std::ostream& os, const SymbolVersionAuxRequirement& aux) {
     os << aux.name();
     return os;
   }
diff --git a/deps/LIEF/include/LIEF/ELF/SymbolVersionDefinition.hpp b/deps/LIEF/include/LIEF/ELF/SymbolVersionDefinition.hpp
index f3e786ba0f1..368a4291ee8 100644
--- a/deps/LIEF/include/LIEF/ELF/SymbolVersionDefinition.hpp
+++ b/deps/LIEF/include/LIEF/ELF/SymbolVersionDefinition.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -37,10 +37,12 @@ struct Elf32_Verdef;
 /// Class which represents an entry defined in `DT_VERDEF` or `.gnu.version_d`
 class LIEF_API SymbolVersionDefinition : public Object {
   friend class Parser;
+
   public:
-  using version_aux_t        = std::vector<std::unique_ptr<SymbolVersionAux>>;
-  using it_version_aux       = ref_iterator<version_aux_t&, SymbolVersionAux*>;
-  using it_const_version_aux = const_ref_iterator<const version_aux_t&, const SymbolVersionAux*>;
+  using version_aux_t = std::vector<std::unique_ptr<SymbolVersionAux>>;
+  using it_version_aux = ref_iterator<version_aux_t&, SymbolVersionAux*>;
+  using it_const_version_aux =
+      const_ref_iterator<const version_aux_t&, const SymbolVersionAux*>;

   SymbolVersionDefinition() = default;
   SymbolVersionDefinition(const details::Elf64_Verdef& header);
@@ -77,11 +79,11 @@ class LIEF_API SymbolVersionDefinition : public Object {
   }

   /// SymbolVersionAux entries
-  it_version_aux symbols_aux() {
+  it_version_aux symbols_aux() LIEF_LIFETIMEBOUND {
     return symbol_version_aux_;
   }

-  it_const_version_aux symbols_aux() const {
+  it_const_version_aux symbols_aux() const LIEF_LIFETIMEBOUND {
     return symbol_version_aux_;
   }

@@ -99,16 +101,16 @@ class LIEF_API SymbolVersionDefinition : public Object {

   void accept(Visitor& visitor) const override;

-  LIEF_API friend std::ostream& operator<<(std::ostream& os, const SymbolVersionDefinition& sym);
+  LIEF_API friend std::ostream& operator<<(std::ostream& os,
+                                           const SymbolVersionDefinition& sym);

   private:
   uint16_t version_ = 1;
   uint16_t flags_ = 0;
-  uint16_t ndx_  = 0;
+  uint16_t ndx_ = 0;
   uint32_t hash_ = 0;
   version_aux_t symbol_version_aux_;
 };
 }
 }
 #endif
-
diff --git a/deps/LIEF/include/LIEF/ELF/SymbolVersionRequirement.hpp b/deps/LIEF/include/LIEF/ELF/SymbolVersionRequirement.hpp
index cbe20807f5f..94afd0cfde3 100644
--- a/deps/LIEF/include/LIEF/ELF/SymbolVersionRequirement.hpp
+++ b/deps/LIEF/include/LIEF/ELF/SymbolVersionRequirement.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -41,9 +41,13 @@ class LIEF_API SymbolVersionRequirement : public Object {
   friend class Parser;

   public:
-  using aux_requirement_t        = std::vector<std::unique_ptr<SymbolVersionAuxRequirement>>;
-  using it_aux_requirement       = ref_iterator<aux_requirement_t&, SymbolVersionAuxRequirement*>;
-  using it_const_aux_requirement = const_ref_iterator<const aux_requirement_t&, const SymbolVersionAuxRequirement*>;
+  using aux_requirement_t =
+      std::vector<std::unique_ptr<SymbolVersionAuxRequirement>>;
+  using it_aux_requirement =
+      ref_iterator<aux_requirement_t&, SymbolVersionAuxRequirement*>;
+  using it_const_aux_requirement =
+      const_ref_iterator<const aux_requirement_t&,
+                         const SymbolVersionAuxRequirement*>;

   SymbolVersionRequirement() = default;
   SymbolVersionRequirement(const details::Elf64_Verneed& header);
@@ -68,16 +72,16 @@ class LIEF_API SymbolVersionRequirement : public Object {
   }

   /// Auxiliary entries as an iterator over SymbolVersionAuxRequirement
-  it_aux_requirement auxiliary_symbols() {
+  it_aux_requirement auxiliary_symbols() LIEF_LIFETIMEBOUND {
     return aux_requirements_;
   }

-  it_const_aux_requirement auxiliary_symbols() const {
+  it_const_aux_requirement auxiliary_symbols() const LIEF_LIFETIMEBOUND {
     return aux_requirements_;
   }

   /// Return the library name associated with this requirement (e.g. ``libc.so.6``)
-  const std::string& name() const {
+  const std::string& name() const LIEF_LIFETIMEBOUND {
     return name_;
   }

@@ -90,19 +94,26 @@ class LIEF_API SymbolVersionRequirement : public Object {
   }

   /// Add a version auxiliary requirement to the existing list
-  SymbolVersionAuxRequirement& add_aux_requirement(const SymbolVersionAuxRequirement& aux_requirement);
-
-  /// Try to find the SymbolVersionAuxRequirement with the given name (e.g. `GLIBC_2.27`)
-  const SymbolVersionAuxRequirement* find_aux(const std::string& name) const;
-
-  SymbolVersionAuxRequirement* find_aux(const std::string& name) {
-    return const_cast<SymbolVersionAuxRequirement*>(static_cast<const SymbolVersionRequirement*>(this)->find_aux(name));
+  SymbolVersionAuxRequirement& add_aux_requirement(
+      const SymbolVersionAuxRequirement& aux_requirement
+  ) LIEF_LIFETIMEBOUND;
+
+  /// Try to find the SymbolVersionAuxRequirement with the given name (e.g.
+  /// `GLIBC_2.27`)
+  const SymbolVersionAuxRequirement*
+      find_aux(const std::string& name) const LIEF_LIFETIMEBOUND;
+
+  SymbolVersionAuxRequirement*
+      find_aux(const std::string& name) LIEF_LIFETIMEBOUND {
+    return const_cast<SymbolVersionAuxRequirement*>(
+        static_cast<const SymbolVersionRequirement*>(this)->find_aux(name)
+    );
   }

   /// Try to remove the auxiliary requirement symbol with the given name.
   /// The function returns true if the operation succeed, false otherwise.
   ///
-  /// \warning this function invalidates all the references (pointers) of
+  /// @warning this function invalidates all the references (pointers) of
   ///          SymbolVersionAuxRequirement. Therefore, the user is responsible
   ///          to ensure that the auxiliary requirement is no longer used in the
   ///          ELF binary (e.g. in SymbolVersion)
@@ -116,7 +127,7 @@ class LIEF_API SymbolVersionRequirement : public Object {
   /// Try to remove the given auxiliary requirement symbol.
   /// The function returns true if the operation succeed, false otherwise.
   ///
-  /// \warning this function invalidates all the references (pointers) of
+  /// @warning this function invalidates all the references (pointers) of
   ///          SymbolVersionAuxRequirement. Therefore, the user is responsible
   ///          to ensure that the auxiliary requirement is no longer used in the
   ///          ELF binary (e.g. in SymbolVersion)
@@ -124,19 +135,18 @@ class LIEF_API SymbolVersionRequirement : public Object {

   void accept(Visitor& visitor) const override;

-  LIEF_API friend
-  std::ostream& operator<<(std::ostream& os, const SymbolVersionRequirement& symr) {
+  LIEF_API friend std::ostream& operator<<(std::ostream& os,
+                                           const SymbolVersionRequirement& symr) {
     os << symr.version() << " " << symr.name();
     return os;
   }

   private:
   aux_requirement_t aux_requirements_;
-  uint16_t    version_ = 0;
+  uint16_t version_ = 0;
   std::string name_;
 };

 }
 }
 #endif
-
diff --git a/deps/LIEF/include/LIEF/ELF/SysvHash.hpp b/deps/LIEF/include/LIEF/ELF/SysvHash.hpp
index eaacfb1e3bc..f5fefa77e14 100644
--- a/deps/LIEF/include/LIEF/ELF/SysvHash.hpp
+++ b/deps/LIEF/include/LIEF/ELF/SysvHash.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -62,12 +62,12 @@ class LIEF_API SysvHash : public Object {
   }

   /// Buckets values
-  const std::vector<uint32_t>& buckets() const {
+  const std::vector<uint32_t>& buckets() const LIEF_LIFETIMEBOUND {
     return buckets_;
   }

   /// Chains values
-  const std::vector<uint32_t>& chains() const {
+  const std::vector<uint32_t>& chains() const LIEF_LIFETIMEBOUND {
     return chains_;
   }

@@ -77,14 +77,15 @@ class LIEF_API SysvHash : public Object {

   void accept(Visitor& visitor) const override;

-  LIEF_API friend std::ostream& operator<<(std::ostream& os, const SysvHash& sysvhash);
+  LIEF_API friend std::ostream& operator<<(std::ostream& os,
+                                           const SysvHash& sysvhash);

   private:
   std::vector<uint32_t> buckets_;
   std::vector<uint32_t> chains_;
 };

-} // namepsace ELF
+} // namespace ELF
 } // namespace LIEF

 #endif
diff --git a/deps/LIEF/include/LIEF/ELF/enums.hpp b/deps/LIEF/include/LIEF/ELF/enums.hpp
index a14b83f9752..00cfea73d9a 100644
--- a/deps/LIEF/include/LIEF/ELF/enums.hpp
+++ b/deps/LIEF/include/LIEF/ELF/enums.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -28,187 +28,189 @@ namespace ELF {
  * http://www.sco.com/developers/gabi/latest/ch4.eheader.html
  */
 enum class ARCH {
-  NONE          = 0,  /**< No machine */
-  M32           = 1,  /**< AT&T WE 32100 */
-  SPARC         = 2,  /**< SPARC */
-  I386          = 3,  /**< Intel 386 */
-  M68K          = 4,  /**< Motorola 68000 */
-  M88K          = 5,  /**< Motorola 88000 */
-  IAMCU         = 6,  /**< Intel MCU */
-  I860          = 7,  /**< Intel 80860 */
-  MIPS          = 8,  /**< MIPS R3000 */
-  S370          = 9,  /**< IBM System/370 */
-  MIPS_RS3_LE   = 10, /**< MIPS RS3000 Little-endian */
-  PARISC        = 15, /**< Hewlett-Packard PA-RISC */
-  VPP500        = 17, /**< Fujitsu VPP500 */
-  SPARC32PLUS   = 18, /**< Enhanced instruction set SPARC */
-  I60           = 19, /**< Intel 80960 */
-  PPC           = 20, /**< PowerPC */
-  PPC64         = 21, /**< PowerPC64 */
-  S390          = 22, /**< IBM System/390 */
-  SPU           = 23, /**< IBM SPU/SPC */
-  V800          = 36, /**< NEC V800 */
-  FR20          = 37, /**< Fujitsu FR20 */
-  RH32          = 38, /**< TRW RH-32 */
-  RCE           = 39, /**< Motorola RCE */
-  ARM           = 40, /**< ARM */
-  ALPHA         = 41, /**< DEC Alpha */
-  SH            = 42, /**< Hitachi SH */
-  SPARCV9       = 43, /**< SPARC V9 */
-  TRICORE       = 44, /**< Siemens TriCore */
-  ARC           = 45, /**< Argonaut RISC Core */
-  H8_300        = 46, /**< Hitachi H8/300 */
-  H8_300H       = 47, /**< Hitachi H8/300H */
-  H8S           = 48, /**< Hitachi H8S */
-  H8_500        = 49, /**< Hitachi H8/500 */
-  IA_64         = 50, /**< Intel IA-64 processor architecture */
-  MIPS_X        = 51, /**< Stanford MIPS-X */
-  COLDFIRE      = 52, /**< Motorola ColdFire */
-  M68HC12       = 53, /**< Motorola M68HC12 */
-  MMA           = 54, /**< Fujitsu MMA Multimedia Accelerator */
-  PCP           = 55, /**< Siemens PCP */
-  NCPU          = 56, /**< Sony nCPU embedded RISC processor */
-  NDR1          = 57, /**< Denso NDR1 microprocessor */
-  STARCORE      = 58, /**< Motorola Star*Core processor */
-  ME16          = 59, /**< Toyota ME16 processor */
-  ST100         = 60, /**< STMicroelectronics ST100 processor */
-  TINYJ         = 61, /**< Advanced Logic Corp. TinyJ embedded processor family */
-  X86_64        = 62, /**< AMD x86-64 architecture */
-  PDSP          = 63, /**< Sony DSP Processor */
-  PDP10         = 64, /**< Digital Equipment Corp. PDP-10 */
-  PDP11         = 65, /**< Digital Equipment Corp. PDP-11 */
-  FX66          = 66, /**< Siemens FX66 microcontroller */
-  ST9PLUS       = 67, /**< STMicroelectronics ST9+ 8/16 bit microcontroller */
-  ST7           = 68, /**< STMicroelectronics ST7 8-bit microcontroller */
-  M68HC16       = 69, /**< Motorola MC68HC16 Microcontroller */
-  M68HC11       = 70, /**< Motorola MC68HC11 Microcontroller */
-  M68HC08       = 71, /**< Motorola MC68HC08 Microcontroller */
-  M68HC05       = 72, /**< Motorola MC68HC05 Microcontroller */
-  SVX           = 73, /**< Silicon Graphics SVx */
-  ST19          = 74, /**< STMicroelectronics ST19 8-bit microcontroller */
-  VAX           = 75, /**< Digital VAX */
-  CRIS          = 76, /**< Axis Communications 32-bit embedded processor */
-  JAVELIN       = 77, /**< Infineon Technologies 32-bit embedded processor */
-  FIREPATH      = 78, /**< Element 14 64-bit DSP Processor */
-  ZSP           = 79, /**< LSI Logic 16-bit DSP Processor */
-  MMIX          = 80, /**< Donald Knuth's educational 64-bit processor */
-  HUANY         = 81, /**< Harvard University machine-independent object files */
-  PRISM         = 82, /**< SiTera Prism */
-  AVR           = 83, /**< Atmel AVR 8-bit microcontroller */
-  FR30          = 84, /**< Fujitsu FR30 */
-  D10V          = 85, /**< Mitsubishi D10V */
-  D30V          = 86, /**< Mitsubishi D30V */
-  V850          = 87, /**< NEC v850 */
-  M32R          = 88, /**< Mitsubishi M32R */
-  MN10300       = 89, /**< Matsushita MN10300 */
-  MN10200       = 90, /**< Matsushita MN10200 */
-  PJ            = 91, /**< picoJava */
-  OPENRISC      = 92, /**< OpenRISC 32-bit embedded processor */
-  ARC_COMPACT   = 93, /**< ARC International ARCompact processor (old spelling/synonym: EM_ARC_A5) */
-  XTENSA        = 94,  /**< Tensilica Xtensa Architecture */
-  VIDEOCORE     = 95,  /**< Alphamosaic VideoCore processor */
-  TMM_GPP       = 96,  /**< Thompson Multimedia General Purpose Processor */
-  NS32K         = 97,  /**< National Semiconductor 32000 series */
-  TPC           = 98,  /**< Tenor Network TPC processor */
-  SNP1K         = 99,  /**< Trebia SNP 1000 processor */
-  ST200         = 100, /**< STMicroelectronics (www.st.com) ST200 */
-  IP2K          = 101, /**< Ubicom IP2xxx microcontroller family */
-  MAX           = 102, /**< MAX Processor */
-  CR            = 103, /**< National Semiconductor CompactRISC microprocessor */
-  F2MC16        = 104, /**< Fujitsu F2MC16 */
-  MSP430        = 105, /**< Texas Instruments embedded microcontroller msp430 */
-  BLACKFIN      = 106, /**< Analog Devices Blackfin (DSP) processor */
-  SE_C33        = 107, /**< S1C33 Family of Seiko Epson processors */
-  SEP           = 108, /**< Sharp embedded microprocessor */
-  ARCA          = 109, /**< Arca RISC Microprocessor */
-  UNICORE       = 110, /**< Microprocessor series from PKU-Unity Ltd. and MPRC of Peking University */
-  EXCESS        = 111, /**< eXcess: 16/32/64-bit configurable embedded CPU */
-  DXP           = 112, /**< Icera Semiconductor Inc. Deep Execution Processor */
-  ALTERA_NIOS2  = 113, /**< Altera Nios II soft-core processor */
-  CRX           = 114, /**< National Semiconductor CompactRISC CRX */
-  XGATE         = 115, /**< Motorola XGATE embedded processor */
-  C166          = 116, /**< Infineon C16x/XC16x processor */
-  M16C          = 117, /**< Renesas M16C series microprocessors */
-  DSPIC30F      = 118, /**< Microchip Technology dsPIC30F Digital Signal */
-  CE            = 119, /**< Freescale Communication Engine RISC core */
-  M32C          = 120, /**< Renesas M32C series microprocessors */
-  TSK3000       = 131, /**< Altium TSK3000 core */
-  RS08          = 132, /**< Freescale RS08 embedded processor */
-  SHARC         = 133, /**< Analog Devices SHARC family of 32-bit DSP */
-  ECOG2         = 134, /**< Cyan Technology eCOG2 microprocessor */
-  SCORE7        = 135, /**< Sunplus S+core7 RISC processor */
-  DSP24         = 136, /**< New Japan Radio (NJR) 24-bit DSP Processor */
-  VIDEOCORE3    = 137, /**< Broadcom VideoCore III processor */
+  NONE = 0,         /**< No machine */
+  M32 = 1,          /**< AT&T WE 32100 */
+  SPARC = 2,        /**< SPARC */
+  I386 = 3,         /**< Intel 386 */
+  M68K = 4,         /**< Motorola 68000 */
+  M88K = 5,         /**< Motorola 88000 */
+  IAMCU = 6,        /**< Intel MCU */
+  I860 = 7,         /**< Intel 80860 */
+  MIPS = 8,         /**< MIPS R3000 */
+  S370 = 9,         /**< IBM System/370 */
+  MIPS_RS3_LE = 10, /**< MIPS RS3000 Little-endian */
+  PARISC = 15,      /**< Hewlett-Packard PA-RISC */
+  VPP500 = 17,      /**< Fujitsu VPP500 */
+  SPARC32PLUS = 18, /**< Enhanced instruction set SPARC */
+  I60 = 19,         /**< Intel 80960 */
+  PPC = 20,         /**< PowerPC */
+  PPC64 = 21,       /**< PowerPC64 */
+  S390 = 22,        /**< IBM System/390 */
+  SPU = 23,         /**< IBM SPU/SPC */
+  V800 = 36,        /**< NEC V800 */
+  FR20 = 37,        /**< Fujitsu FR20 */
+  RH32 = 38,        /**< TRW RH-32 */
+  RCE = 39,         /**< Motorola RCE */
+  ARM = 40,         /**< ARM */
+  ALPHA = 41,       /**< DEC Alpha */
+  SH = 42,          /**< Hitachi SH */
+  SPARCV9 = 43,     /**< SPARC V9 */
+  TRICORE = 44,     /**< Siemens TriCore */
+  ARC = 45,         /**< Argonaut RISC Core */
+  H8_300 = 46,      /**< Hitachi H8/300 */
+  H8_300H = 47,     /**< Hitachi H8/300H */
+  H8S = 48,         /**< Hitachi H8S */
+  H8_500 = 49,      /**< Hitachi H8/500 */
+  IA_64 = 50,       /**< Intel IA-64 processor architecture */
+  MIPS_X = 51,      /**< Stanford MIPS-X */
+  COLDFIRE = 52,    /**< Motorola ColdFire */
+  M68HC12 = 53,     /**< Motorola M68HC12 */
+  MMA = 54,         /**< Fujitsu MMA Multimedia Accelerator */
+  PCP = 55,         /**< Siemens PCP */
+  NCPU = 56,        /**< Sony nCPU embedded RISC processor */
+  NDR1 = 57,        /**< Denso NDR1 microprocessor */
+  STARCORE = 58,    /**< Motorola Star*Core processor */
+  ME16 = 59,        /**< Toyota ME16 processor */
+  ST100 = 60,       /**< STMicroelectronics ST100 processor */
+  TINYJ = 61,       /**< Advanced Logic Corp. TinyJ embedded processor family */
+  X86_64 = 62,      /**< AMD x86-64 architecture */
+  PDSP = 63,        /**< Sony DSP Processor */
+  PDP10 = 64,       /**< Digital Equipment Corp. PDP-10 */
+  PDP11 = 65,       /**< Digital Equipment Corp. PDP-11 */
+  FX66 = 66,        /**< Siemens FX66 microcontroller */
+  ST9PLUS = 67,     /**< STMicroelectronics ST9+ 8/16 bit microcontroller */
+  ST7 = 68,         /**< STMicroelectronics ST7 8-bit microcontroller */
+  M68HC16 = 69,     /**< Motorola MC68HC16 Microcontroller */
+  M68HC11 = 70,     /**< Motorola MC68HC11 Microcontroller */
+  M68HC08 = 71,     /**< Motorola MC68HC08 Microcontroller */
+  M68HC05 = 72,     /**< Motorola MC68HC05 Microcontroller */
+  SVX = 73,         /**< Silicon Graphics SVx */
+  ST19 = 74,        /**< STMicroelectronics ST19 8-bit microcontroller */
+  VAX = 75,         /**< Digital VAX */
+  CRIS = 76,        /**< Axis Communications 32-bit embedded processor */
+  JAVELIN = 77,     /**< Infineon Technologies 32-bit embedded processor */
+  FIREPATH = 78,    /**< Element 14 64-bit DSP Processor */
+  ZSP = 79,         /**< LSI Logic 16-bit DSP Processor */
+  MMIX = 80,        /**< Donald Knuth's educational 64-bit processor */
+  HUANY = 81,       /**< Harvard University machine-independent object files */
+  PRISM = 82,       /**< SiTera Prism */
+  AVR = 83,         /**< Atmel AVR 8-bit microcontroller */
+  FR30 = 84,        /**< Fujitsu FR30 */
+  D10V = 85,        /**< Mitsubishi D10V */
+  D30V = 86,        /**< Mitsubishi D30V */
+  V850 = 87,        /**< NEC v850 */
+  M32R = 88,        /**< Mitsubishi M32R */
+  MN10300 = 89,     /**< Matsushita MN10300 */
+  MN10200 = 90,     /**< Matsushita MN10200 */
+  PJ = 91,          /**< picoJava */
+  OPENRISC = 92,    /**< OpenRISC 32-bit embedded processor */
+  ARC_COMPACT = 93, /**< ARC International ARCompact processor (old
+                       spelling/synonym: EM_ARC_A5) */
+  XTENSA = 94,      /**< Tensilica Xtensa Architecture */
+  VIDEOCORE = 95,   /**< Alphamosaic VideoCore processor */
+  TMM_GPP = 96,     /**< Thompson Multimedia General Purpose Processor */
+  NS32K = 97,       /**< National Semiconductor 32000 series */
+  TPC = 98,         /**< Tenor Network TPC processor */
+  SNP1K = 99,       /**< Trebia SNP 1000 processor */
+  ST200 = 100,      /**< STMicroelectronics (www.st.com) ST200 */
+  IP2K = 101,       /**< Ubicom IP2xxx microcontroller family */
+  MAX = 102,        /**< MAX Processor */
+  CR = 103,         /**< National Semiconductor CompactRISC microprocessor */
+  F2MC16 = 104,     /**< Fujitsu F2MC16 */
+  MSP430 = 105,     /**< Texas Instruments embedded microcontroller msp430 */
+  BLACKFIN = 106,   /**< Analog Devices Blackfin (DSP) processor */
+  SE_C33 = 107,     /**< S1C33 Family of Seiko Epson processors */
+  SEP = 108,        /**< Sharp embedded microprocessor */
+  ARCA = 109,       /**< Arca RISC Microprocessor */
+  UNICORE = 110, /**< Microprocessor series from PKU-Unity Ltd. and MPRC of Peking
+                    University */
+  EXCESS = 111,  /**< eXcess: 16/32/64-bit configurable embedded CPU */
+  DXP = 112,     /**< Icera Semiconductor Inc. Deep Execution Processor */
+  ALTERA_NIOS2 = 113,  /**< Altera Nios II soft-core processor */
+  CRX = 114,           /**< National Semiconductor CompactRISC CRX */
+  XGATE = 115,         /**< Motorola XGATE embedded processor */
+  C166 = 116,          /**< Infineon C16x/XC16x processor */
+  M16C = 117,          /**< Renesas M16C series microprocessors */
+  DSPIC30F = 118,      /**< Microchip Technology dsPIC30F Digital Signal */
+  CE = 119,            /**< Freescale Communication Engine RISC core */
+  M32C = 120,          /**< Renesas M32C series microprocessors */
+  TSK3000 = 131,       /**< Altium TSK3000 core */
+  RS08 = 132,          /**< Freescale RS08 embedded processor */
+  SHARC = 133,         /**< Analog Devices SHARC family of 32-bit DSP */
+  ECOG2 = 134,         /**< Cyan Technology eCOG2 microprocessor */
+  SCORE7 = 135,        /**< Sunplus S+core7 RISC processor */
+  DSP24 = 136,         /**< New Japan Radio (NJR) 24-bit DSP Processor */
+  VIDEOCORE3 = 137,    /**< Broadcom VideoCore III processor */
   LATTICEMICO32 = 138, /**< RISC processor for Lattice FPGA architecture */
-  SE_C17        = 139, /**< Seiko Epson C17 family */
-  TI_C6000      = 140, /**< The Texas Instruments TMS320C6000 DSP family */
-  TI_C2000      = 141, /**< The Texas Instruments TMS320C2000 DSP family */
-  TI_C5500      = 142, /**< The Texas Instruments TMS320C55x DSP family */
-  MMDSP_PLUS    = 160, /**< STMicroelectronics 64bit VLIW Data Signal Processor */
-  CYPRESS_M8C   = 161, /**< Cypress M8C microprocessor */
-  R32C          = 162, /**< Renesas R32C series microprocessors */
-  TRIMEDIA      = 163, /**< NXP Semiconductors TriMedia architecture family */
-  HEXAGON       = 164, /**< Qualcomm Hexagon processor */
-  M8051          = 165, /**< Intel 8051 and variants */
-  STXP7X        = 166, /**< STMicroelectronics STxP7x family of configurable */
-  NDS32         = 167, /* Andes Technology compact code size embedded RISC */
-  ECOG1         = 168, /**< Cyan Technology eCOG1X family */
-  ECOG1X        = 168, /**< Cyan Technology eCOG1X family */
-  MAXQ30        = 169, /**< Dallas Semiconductor MAXQ30 Core Micro-controllers */
-  XIMO16        = 170, /**< New Japan Radio (NJR) 16-bit DSP Processor */
-  MANIK         = 171, /**< M2000 Reconfigurable RISC Microprocessor */
-  CRAYNV2       = 172, /**< Cray Inc. NV2 vector architecture */
-  RX            = 173, /**< Renesas RX family */
-  METAG         = 174, /**< Imagination Technologies META processor */
-  MCST_ELBRUS   = 175, /**< MCST Elbrus general purpose hardware architecture */
-  ECOG16        = 176, /**< Cyan Technology eCOG16 family */
-  CR16          = 177, /**< National Semiconductor CompactRISC CR16 16-bit */
-  ETPU          = 178, /**< Freescale Extended Time Processing Unit */
-  SLE9X         = 179, /**< Infineon Technologies SLE9X core */
-  L10M          = 180, /**< Intel L10M */
-  K10M          = 181, /**< Intel K10M */
-  AARCH64       = 183, /**< ARM AArch64 */
-  AVR32         = 185, /**< Atmel Corporation 32-bit microprocessor family */
-  STM8          = 186, /**< STMicroeletronics STM8 8-bit microcontroller */
-  TILE64        = 187, /**< Tilera TILE64 multicore architecture family */
-  TILEPRO       = 188, /**< Tilera TILEPro multicore architecture family */
-  CUDA          = 190, /**< NVIDIA CUDA architecture */
-  TILEGX        = 191, /**< Tilera TILE-Gx multicore architecture family */
-  CLOUDSHIELD   = 192, /**< CloudShield architecture family */
-  COREA_1ST     = 193, /**< KIPO-KAIST Core-A 1st generation processor family */
-  COREA_2ND     = 194, /**< KIPO-KAIST Core-A 2nd generation processor family */
-  ARC_COMPACT2  = 195, /**< Synopsys ARCompact V2 */
-  OPEN8         = 196, /**< Open8 8-bit RISC soft processor core */
-  RL78          = 197, /**< Renesas RL78 family */
-  VIDEOCORE5    = 198, /**< Broadcom VideoCore V processor */
-  M78KOR        = 199, /**< Renesas 78KOR family */
-  M56800EX      = 200, /**< Freescale 56800EX Digital Signal Controller (DSC) */
-  BA1           = 201, /**< Beyond BA1 CPU architecture */
-  BA2           = 202, /**< Beyond BA2 CPU architecture */
-  XCORE         = 203, /**< XMOS xCORE processor family */
-  MCHP_PIC      = 204, /**< Microchip 8-bit PIC(r) family */
-  INTEL205      = 205, /**< Reserved by Intel */
-  INTEL206      = 206, /**< Reserved by Intel */
-  INTEL207      = 207, /**< Reserved by Intel */
-  INTEL208      = 208, /**< Reserved by Intel */
-  INTEL209      = 209, /**< Reserved by Intel */
-  KM32          = 210, /**< KM211 KM32 32-bit processor */
-  KMX32         = 211, /**< KM211 KMX32 32-bit processor */
-  KMX16         = 212, /**< KM211 KMX16 16-bit processor */
-  KMX8          = 213, /**< KM211 KMX8 8-bit processor */
-  KVARC         = 214, /**< KM211 KVARC processor */
-  CDP           = 215, /**< Paneve CDP architecture family */
-  COGE          = 216, /**< Cognitive Smart Memory Processor */
-  COOL          = 217, /**< iCelero CoolEngine */
-  NORC          = 218, /**< Nanoradio Optimized RISC */
-  CSR_KALIMBA   = 219, /**< CSR Kalimba architecture family */
-  AMDGPU        = 224, /**< AMD GPU architecture */
-  RISCV         = 243, /**< RISC-V */
-  BPF           = 247, /**< eBPF Filter */
-  CSKY          = 252, /**< C-SKY */
-  LOONGARCH     = 258,  /**< LoongArch */
+  SE_C17 = 139,        /**< Seiko Epson C17 family */
+  TI_C6000 = 140,      /**< The Texas Instruments TMS320C6000 DSP family */
+  TI_C2000 = 141,      /**< The Texas Instruments TMS320C2000 DSP family */
+  TI_C5500 = 142,      /**< The Texas Instruments TMS320C55x DSP family */
+  MMDSP_PLUS = 160,    /**< STMicroelectronics 64bit VLIW Data Signal Processor */
+  CYPRESS_M8C = 161,   /**< Cypress M8C microprocessor */
+  R32C = 162,          /**< Renesas R32C series microprocessors */
+  TRIMEDIA = 163,      /**< NXP Semiconductors TriMedia architecture family */
+  HEXAGON = 164,       /**< Qualcomm Hexagon processor */
+  M8051 = 165,         /**< Intel 8051 and variants */
+  STXP7X = 166,        /**< STMicroelectronics STxP7x family of configurable */
+  NDS32 = 167,         /* Andes Technology compact code size embedded RISC */
+  ECOG1 = 168,         /**< Cyan Technology eCOG1X family */
+  ECOG1X = 168,        /**< Cyan Technology eCOG1X family */
+  MAXQ30 = 169,        /**< Dallas Semiconductor MAXQ30 Core Micro-controllers */
+  XIMO16 = 170,        /**< New Japan Radio (NJR) 16-bit DSP Processor */
+  MANIK = 171,         /**< M2000 Reconfigurable RISC Microprocessor */
+  CRAYNV2 = 172,       /**< Cray Inc. NV2 vector architecture */
+  RX = 173,            /**< Renesas RX family */
+  METAG = 174,         /**< Imagination Technologies META processor */
+  MCST_ELBRUS = 175,   /**< MCST Elbrus general purpose hardware architecture */
+  ECOG16 = 176,        /**< Cyan Technology eCOG16 family */
+  CR16 = 177,          /**< National Semiconductor CompactRISC CR16 16-bit */
+  ETPU = 178,          /**< Freescale Extended Time Processing Unit */
+  SLE9X = 179,         /**< Infineon Technologies SLE9X core */
+  L10M = 180,          /**< Intel L10M */
+  K10M = 181,          /**< Intel K10M */
+  AARCH64 = 183,       /**< ARM AArch64 */
+  AVR32 = 185,         /**< Atmel Corporation 32-bit microprocessor family */
+  STM8 = 186,          /**< STMicroeletronics STM8 8-bit microcontroller */
+  TILE64 = 187,        /**< Tilera TILE64 multicore architecture family */
+  TILEPRO = 188,       /**< Tilera TILEPro multicore architecture family */
+  CUDA = 190,          /**< NVIDIA CUDA architecture */
+  TILEGX = 191,        /**< Tilera TILE-Gx multicore architecture family */
+  CLOUDSHIELD = 192,   /**< CloudShield architecture family */
+  COREA_1ST = 193,     /**< KIPO-KAIST Core-A 1st generation processor family */
+  COREA_2ND = 194,     /**< KIPO-KAIST Core-A 2nd generation processor family */
+  ARC_COMPACT2 = 195,  /**< Synopsys ARCompact V2 */
+  OPEN8 = 196,         /**< Open8 8-bit RISC soft processor core */
+  RL78 = 197,          /**< Renesas RL78 family */
+  VIDEOCORE5 = 198,    /**< Broadcom VideoCore V processor */
+  M78KOR = 199,        /**< Renesas 78KOR family */
+  M56800EX = 200,      /**< Freescale 56800EX Digital Signal Controller (DSC) */
+  BA1 = 201,           /**< Beyond BA1 CPU architecture */
+  BA2 = 202,           /**< Beyond BA2 CPU architecture */
+  XCORE = 203,         /**< XMOS xCORE processor family */
+  MCHP_PIC = 204,      /**< Microchip 8-bit PIC(r) family */
+  INTEL205 = 205,      /**< Reserved by Intel */
+  INTEL206 = 206,      /**< Reserved by Intel */
+  INTEL207 = 207,      /**< Reserved by Intel */
+  INTEL208 = 208,      /**< Reserved by Intel */
+  INTEL209 = 209,      /**< Reserved by Intel */
+  KM32 = 210,          /**< KM211 KM32 32-bit processor */
+  KMX32 = 211,         /**< KM211 KMX32 32-bit processor */
+  KMX16 = 212,         /**< KM211 KMX16 16-bit processor */
+  KMX8 = 213,          /**< KM211 KMX8 8-bit processor */
+  KVARC = 214,         /**< KM211 KVARC processor */
+  CDP = 215,           /**< Paneve CDP architecture family */
+  COGE = 216,          /**< Cognitive Smart Memory Processor */
+  COOL = 217,          /**< iCelero CoolEngine */
+  NORC = 218,          /**< Nanoradio Optimized RISC */
+  CSR_KALIMBA = 219,   /**< CSR Kalimba architecture family */
+  AMDGPU = 224,        /**< AMD GPU architecture */
+  RISCV = 243,         /**< RISC-V */
+  BPF = 247,           /**< eBPF Filter */
+  CSKY = 252,          /**< C-SKY */
+  LOONGARCH = 258,     /**< LoongArch */

-  ALPHA_ALT     = 0x9026
+  ALPHA_ALT = 0x9026,
 };

 }
diff --git a/deps/LIEF/include/LIEF/ELF/hash.hpp b/deps/LIEF/include/LIEF/ELF/hash.hpp
index e10516717a1..6a400b22f0f 100644
--- a/deps/LIEF/include/LIEF/ELF/hash.hpp
+++ b/deps/LIEF/include/LIEF/ELF/hash.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -64,36 +64,36 @@ class LIEF_API Hash : public LIEF::Hash {
   using LIEF::Hash::visit;

   public:
-  void visit(const Binary& binary)                  override;
-  void visit(const Header& header)                  override;
-  void visit(const Section& section)                override;
-  void visit(const Segment& segment)                override;
-  void visit(const DynamicEntry& entry)             override;
-  void visit(const DynamicEntryArray& entry)        override;
-  void visit(const DynamicEntryLibrary& entry)      override;
-  void visit(const DynamicEntryRpath& entry)        override;
-  void visit(const DynamicEntryRunPath& entry)      override;
-  void visit(const DynamicSharedObject& entry)      override;
-  void visit(const DynamicEntryFlags& entry)        override;
-  void visit(const Symbol& symbol)                  override;
-  void visit(const Relocation& relocation)          override;
-  void visit(const SymbolVersion& sv)               override;
-  void visit(const SymbolVersionAux& sv)            override;
+  void visit(const Binary& binary) override;
+  void visit(const Header& header) override;
+  void visit(const Section& section) override;
+  void visit(const Segment& segment) override;
+  void visit(const DynamicEntry& entry) override;
+  void visit(const DynamicEntryArray& entry) override;
+  void visit(const DynamicEntryLibrary& entry) override;
+  void visit(const DynamicEntryRpath& entry) override;
+  void visit(const DynamicEntryRunPath& entry) override;
+  void visit(const DynamicSharedObject& entry) override;
+  void visit(const DynamicEntryFlags& entry) override;
+  void visit(const Symbol& symbol) override;
+  void visit(const Relocation& relocation) override;
+  void visit(const SymbolVersion& sv) override;
+  void visit(const SymbolVersionAux& sv) override;
   void visit(const SymbolVersionAuxRequirement& sv) override;
-  void visit(const SymbolVersionRequirement& svr)   override;
-  void visit(const SymbolVersionDefinition& svd)    override;
-  void visit(const Note& note)                      override;
-  void visit(const AndroidIdent& note)              override;
-  void visit(const QNXStack& note)                  override;
-  void visit(const NoteAbi& note)                   override;
-  void visit(const NoteGnuProperty& note)           override;
-  void visit(const CorePrPsInfo& pinfo)             override;
-  void visit(const CorePrStatus& pstatus)           override;
-  void visit(const CoreAuxv& auxv)                  override;
-  void visit(const CoreSigInfo& siginfo)            override;
-  void visit(const CoreFile& file)                  override;
-  void visit(const GnuHash& gnuhash)                override;
-  void visit(const SysvHash& sysvhash)              override;
+  void visit(const SymbolVersionRequirement& svr) override;
+  void visit(const SymbolVersionDefinition& svd) override;
+  void visit(const Note& note) override;
+  void visit(const AndroidIdent& note) override;
+  void visit(const QNXStack& note) override;
+  void visit(const NoteAbi& note) override;
+  void visit(const NoteGnuProperty& note) override;
+  void visit(const CorePrPsInfo& pinfo) override;
+  void visit(const CorePrStatus& pstatus) override;
+  void visit(const CoreAuxv& auxv) override;
+  void visit(const CoreSigInfo& siginfo) override;
+  void visit(const CoreFile& file) override;
+  void visit(const GnuHash& gnuhash) override;
+  void visit(const SysvHash& sysvhash) override;

   ~Hash() override;
 };
diff --git a/deps/LIEF/include/LIEF/ELF/json.hpp b/deps/LIEF/include/LIEF/ELF/json.hpp
index fa1acd66bd1..a8f5bcdcda1 100644
--- a/deps/LIEF/include/LIEF/ELF/json.hpp
+++ b/deps/LIEF/include/LIEF/ELF/json.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/deps/LIEF/include/LIEF/ELF/utils.hpp b/deps/LIEF/include/LIEF/ELF/utils.hpp
index a723e5a9467..8caf6c5383d 100644
--- a/deps/LIEF/include/LIEF/ELF/utils.hpp
+++ b/deps/LIEF/include/LIEF/ELF/utils.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -18,14 +18,15 @@

 #include <string>
 #include <vector>
+#include <cstdint>

-#include "LIEF/types.hpp"
 #include "LIEF/visibility.h"

 namespace LIEF {
 class BinaryStream;

 namespace ELF {
+class Binary;

 /// Check if given stream wraps an ELF file
 LIEF_API bool is_elf(BinaryStream& stream);
@@ -33,9 +34,12 @@ LIEF_API bool is_elf(BinaryStream& stream);
 /// Check if the given file is an ELF one.
 LIEF_API bool is_elf(const std::string& file);

-/// check if the raw data is an ELF file
+/// Check if the raw data is an ELF file
 LIEF_API bool is_elf(const std::vector<uint8_t>& raw);

+/// Check that the layout of the given Binary is correct
+LIEF_API bool check_layout(const Binary& bin, std::string* error_info = nullptr);
+
 LIEF_API unsigned long hash32(const char* name);
 LIEF_API unsigned long hash64(const char* name);
 LIEF_API uint32_t dl_new_hash(const char* name);
diff --git a/deps/LIEF/include/LIEF/LIEF.hpp b/deps/LIEF/include/LIEF/LIEF.hpp
index 05395035464..81ec0cb4e5c 100644
--- a/deps/LIEF/include/LIEF/LIEF.hpp
+++ b/deps/LIEF/include/LIEF/LIEF.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -19,6 +19,7 @@

 #include <LIEF/Abstract.hpp>

+#include <LIEF/runtime.hpp>
 #include <LIEF/OAT.hpp>
 #include <LIEF/VDEX.hpp>
 #include <LIEF/ART.hpp>
@@ -35,6 +36,7 @@
 #include <LIEF/logging.hpp>
 #include <LIEF/platforms.hpp>
 #include <LIEF/debug_loc.hpp>
+#include <LIEF/DebugDeclOpt.hpp>


 #endif
diff --git a/deps/LIEF/include/LIEF/MachO.hpp b/deps/LIEF/include/LIEF/MachO.hpp
index 8c8151a8dfb..23a280143d6 100644
--- a/deps/LIEF/include/LIEF/MachO.hpp
+++ b/deps/LIEF/include/LIEF/MachO.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -20,72 +20,74 @@

 #if defined(LIEF_MACHO_SUPPORT)

-#include "LIEF/MachO/AtomInfo.hpp"
-#include "LIEF/MachO/Binary.hpp"
-#include "LIEF/MachO/BinaryParser.hpp"
-#include "LIEF/MachO/BindingInfo.hpp"
-#include "LIEF/MachO/BindingInfoIterator.hpp"
-#include "LIEF/MachO/BuildToolVersion.hpp"
-#include "LIEF/MachO/BuildVersion.hpp"
-#include "LIEF/MachO/Builder.hpp"
-#include "LIEF/MachO/ChainedBindingInfo.hpp"
-#include "LIEF/MachO/CodeSignature.hpp"
-#include "LIEF/MachO/CodeSignatureDir.hpp"
-#include "LIEF/MachO/DataCodeEntry.hpp"
-#include "LIEF/MachO/DataInCode.hpp"
-#include "LIEF/MachO/DyldBindingInfo.hpp"
-#include "LIEF/MachO/DyldChainedFixups.hpp"
-#include "LIEF/MachO/DyldChainedFixupsCreator.hpp"
-#include "LIEF/MachO/DyldEnvironment.hpp"
-#include "LIEF/MachO/DyldExportsTrie.hpp"
-#include "LIEF/MachO/DyldInfo.hpp"
-#include "LIEF/MachO/DylibCommand.hpp"
-#include "LIEF/MachO/DylinkerCommand.hpp"
-#include "LIEF/MachO/DynamicSymbolCommand.hpp"
-#include "LIEF/MachO/EncryptionInfo.hpp"
-#include "LIEF/MachO/EnumToString.hpp"
-#include "LIEF/MachO/ExportInfo.hpp"
-#include "LIEF/MachO/FatBinary.hpp"
-#include "LIEF/MachO/FilesetCommand.hpp"
-#include "LIEF/MachO/FunctionStarts.hpp"
-#include "LIEF/MachO/FunctionVariants.hpp"
-#include "LIEF/MachO/FunctionVariantFixups.hpp"
-#include "LIEF/MachO/Header.hpp"
-#include "LIEF/MachO/IndirectBindingInfo.hpp"
-#include "LIEF/MachO/LinkEdit.hpp"
-#include "LIEF/MachO/LinkerOptHint.hpp"
-#include "LIEF/MachO/LoadCommand.hpp"
-#include "LIEF/MachO/MainCommand.hpp"
-#include "LIEF/MachO/NoteCommand.hpp"
-#include "LIEF/MachO/Parser.hpp"
-#include "LIEF/MachO/ParserConfig.hpp"
-#include "LIEF/MachO/RPathCommand.hpp"
-#include "LIEF/MachO/Relocation.hpp"
-#include "LIEF/MachO/RelocationDyld.hpp"
-#include "LIEF/MachO/RelocationFixup.hpp"
-#include "LIEF/MachO/RelocationObject.hpp"
-#include "LIEF/MachO/Routine.hpp"
-#include "LIEF/MachO/Section.hpp"
-#include "LIEF/MachO/SegmentCommand.hpp"
-#include "LIEF/MachO/SegmentSplitInfo.hpp"
-#include "LIEF/MachO/SourceVersion.hpp"
-#include "LIEF/MachO/Stub.hpp"
-#include "LIEF/MachO/SubClient.hpp"
-#include "LIEF/MachO/SubFramework.hpp"
-#include "LIEF/MachO/Symbol.hpp"
-#include "LIEF/MachO/SymbolCommand.hpp"
-#include "LIEF/MachO/ThreadCommand.hpp"
-#include "LIEF/MachO/TwoLevelHints.hpp"
-#include "LIEF/MachO/UUIDCommand.hpp"
-#include "LIEF/MachO/UnknownCommand.hpp"
-#include "LIEF/MachO/VersionMin.hpp"
-#include "LIEF/MachO/enums.hpp"
-#include "LIEF/MachO/hash.hpp"
-#include "LIEF/MachO/json.hpp"
-#include "LIEF/MachO/type_traits.hpp"
-#include "LIEF/MachO/utils.hpp"
+  #include "LIEF/MachO/AtomInfo.hpp"
+  #include "LIEF/MachO/Binary.hpp"
+  #include "LIEF/MachO/BinaryParser.hpp"
+  #include "LIEF/MachO/BindingInfo.hpp"
+  #include "LIEF/MachO/BindingInfoIterator.hpp"
+  #include "LIEF/MachO/BuildToolVersion.hpp"
+  #include "LIEF/MachO/BuildVersion.hpp"
+  #include "LIEF/MachO/Builder.hpp"
+  #include "LIEF/MachO/ChainedBindingInfo.hpp"
+  #include "LIEF/MachO/CodeSignature.hpp"
+  #include "LIEF/MachO/CodeSignatureDir.hpp"
+  #include "LIEF/MachO/DataCodeEntry.hpp"
+  #include "LIEF/MachO/DataInCode.hpp"
+  #include "LIEF/MachO/DyldBindingInfo.hpp"
+  #include "LIEF/MachO/DyldChainedFixups.hpp"
+  #include "LIEF/MachO/DyldChainedFixupsCreator.hpp"
+  #include "LIEF/MachO/DyldEnvironment.hpp"
+  #include "LIEF/MachO/DyldExportsTrie.hpp"
+  #include "LIEF/MachO/DyldInfo.hpp"
+  #include "LIEF/MachO/DylibCommand.hpp"
+  #include "LIEF/MachO/DylinkerCommand.hpp"
+  #include "LIEF/MachO/DynamicSymbolCommand.hpp"
+  #include "LIEF/MachO/EncryptionInfo.hpp"
+  #include "LIEF/MachO/EnumToString.hpp"
+  #include "LIEF/MachO/ExportInfo.hpp"
+  #include "LIEF/MachO/FatBinary.hpp"
+  #include "LIEF/MachO/FilesetCommand.hpp"
+  #include "LIEF/MachO/FunctionStarts.hpp"
+  #include "LIEF/MachO/FunctionVariants.hpp"
+  #include "LIEF/MachO/FunctionVariantFixups.hpp"
+  #include "LIEF/MachO/Header.hpp"
+  #include "LIEF/MachO/IndirectBindingInfo.hpp"
+  #include "LIEF/MachO/LazyLoadDylibInfo.hpp"
+  #include "LIEF/MachO/LinkEdit.hpp"
+  #include "LIEF/MachO/LinkerOptHint.hpp"
+  #include "LIEF/MachO/LoadCommand.hpp"
+  #include "LIEF/MachO/MainCommand.hpp"
+  #include "LIEF/MachO/NoteCommand.hpp"
+  #include "LIEF/MachO/Parser.hpp"
+  #include "LIEF/MachO/ParserConfig.hpp"
+  #include "LIEF/MachO/RPathCommand.hpp"
+  #include "LIEF/MachO/Relocation.hpp"
+  #include "LIEF/MachO/RelocationDyld.hpp"
+  #include "LIEF/MachO/RelocationFixup.hpp"
+  #include "LIEF/MachO/RelocationObject.hpp"
+  #include "LIEF/MachO/Routine.hpp"
+  #include "LIEF/MachO/Section.hpp"
+  #include "LIEF/MachO/ThreadLocalVariables.hpp"
+  #include "LIEF/MachO/SegmentCommand.hpp"
+  #include "LIEF/MachO/SegmentSplitInfo.hpp"
+  #include "LIEF/MachO/SourceVersion.hpp"
+  #include "LIEF/MachO/Stub.hpp"
+  #include "LIEF/MachO/SubClient.hpp"
+  #include "LIEF/MachO/SubFramework.hpp"
+  #include "LIEF/MachO/Symbol.hpp"
+  #include "LIEF/MachO/SymbolCommand.hpp"
+  #include "LIEF/MachO/ThreadCommand.hpp"
+  #include "LIEF/MachO/TwoLevelHints.hpp"
+  #include "LIEF/MachO/UUIDCommand.hpp"
+  #include "LIEF/MachO/UnknownCommand.hpp"
+  #include "LIEF/MachO/VersionMin.hpp"
+  #include "LIEF/MachO/enums.hpp"
+  #include "LIEF/MachO/hash.hpp"
+  #include "LIEF/MachO/json.hpp"
+  #include "LIEF/MachO/type_traits.hpp"
+  #include "LIEF/MachO/utils.hpp"

-#include "LIEF/ObjC/Metadata.hpp"
+  #include "LIEF/ObjC/Metadata.hpp"

 #endif
 #endif
diff --git a/deps/LIEF/include/LIEF/MachO/AtomInfo.hpp b/deps/LIEF/include/LIEF/MachO/AtomInfo.hpp
index 06fa5f85a00..9f657b001c4 100644
--- a/deps/LIEF/include/LIEF/MachO/AtomInfo.hpp
+++ b/deps/LIEF/include/LIEF/MachO/AtomInfo.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -17,6 +17,7 @@
 #define LIEF_MACHO_ATOM_INFO_COMMAND_H
 #include <ostream>

+#include "LIEF/compiler_attributes.hpp"
 #include "LIEF/visibility.h"

 #include "LIEF/span.hpp"
@@ -64,11 +65,11 @@ class LIEF_API AtomInfo : public LoadCommand {
     data_size_ = size;
   }

-  span<const uint8_t> content() const {
+  span<const uint8_t> content() const LIEF_LIFETIMEBOUND {
     return content_;
   }

-  span<uint8_t> content() {
+  span<uint8_t> content() LIEF_LIFETIMEBOUND {
     return content_;
   }

diff --git a/deps/LIEF/include/LIEF/MachO/Binary.hpp b/deps/LIEF/include/LIEF/MachO/Binary.hpp
index 3e300093c5d..e95e07a8deb 100644
--- a/deps/LIEF/include/LIEF/MachO/Binary.hpp
+++ b/deps/LIEF/include/LIEF/MachO/Binary.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -20,6 +20,7 @@
 #include <map>
 #include <set>
 #include <memory>
+#include <mutex>

 #include "LIEF/MachO/LoadCommand.hpp"
 #include "LIEF/MachO/Header.hpp"
@@ -28,6 +29,7 @@
 #include "LIEF/MachO/Stub.hpp"
 #include "LIEF/MachO/Builder.hpp"

+#include "LIEF/compiler_attributes.hpp"
 #include "LIEF/visibility.h"
 #include "LIEF/utils.hpp"

@@ -63,6 +65,7 @@ class ExportInfo;
 class FunctionStarts;
 class FunctionVariants;
 class FunctionVariantFixups;
+class LazyLoadDylibInfo;
 class Header;
 class IndirectBindingInfo;
 class LinkerOptHint;
@@ -85,7 +88,7 @@ class UUIDCommand;
 class VersionMin;

 /// Class which represents a MachO binary
-class LIEF_API Binary : public LIEF::Binary  {
+class LIEF_API Binary : public LIEF::Binary {

   friend class Parser;
   friend class BinaryParser;
@@ -96,7 +99,7 @@ class LIEF_API Binary : public LIEF::Binary  {
   public:
   struct range_t {
     uint64_t start = 0;
-    uint64_t end   = 0;
+    uint64_t end = 0;

     uint64_t size() const {
       return end - start;
@@ -129,13 +132,15 @@ class LIEF_API Binary : public LIEF::Binary  {
   using it_exported_symbols = filter_iterator<symbols_t&, Symbol*>;

   /// Iterator that outputs exported const Symbol&
-  using it_const_exported_symbols = const_filter_iterator<const symbols_t&, const Symbol*>;
+  using it_const_exported_symbols =
+      const_filter_iterator<const symbols_t&, const Symbol*>;

   /// Iterator that outputs imported Symbol&
   using it_imported_symbols = filter_iterator<symbols_t&, Symbol*>;

   /// Iterator that outputs imported const Symbol&
-  using it_const_imported_symbols = const_filter_iterator<const symbols_t&, const Symbol*>;
+  using it_const_imported_symbols =
+      const_filter_iterator<const symbols_t&, const Symbol*>;

   /// Internal container for caching Mach-O Section
   using sections_cache_t = std::vector<Section*>;
@@ -164,6 +169,16 @@ class LIEF_API Binary : public LIEF::Binary  {
   /// Iterator that outputs const DylibCommand&
   using it_const_libraries = const_ref_iterator<const libraries_cache_t&>;

+  /// Internal container for storing Mach-O LazyLoadDylibInfo
+  using lazy_load_dylib_info_cache_t = std::vector<LazyLoadDylibInfo*>;
+
+  /// Iterator that outputs LazyLoadDylibInfo&
+  using it_lazy_load_dylib_info = ref_iterator<lazy_load_dylib_info_cache_t&>;
+
+  /// Iterator that outputs const LazyLoadDylibInfo&
+  using it_const_lazy_load_dylib_info =
+      const_ref_iterator<const lazy_load_dylib_info_cache_t&>;
+
   /// Internal container for storing Mach-O Fileset Binary
   using fileset_binaries_t = std::vector<std::unique_ptr<Binary>>;

@@ -171,10 +186,11 @@ class LIEF_API Binary : public LIEF::Binary  {
   using it_fileset_binaries = ref_iterator<fileset_binaries_t&, Binary*>;

   /// Iterator that outputs const Binary&
-  using it_const_fileset_binaries = const_ref_iterator<const fileset_binaries_t&, Binary*>;
+  using it_const_fileset_binaries =
+      const_ref_iterator<const fileset_binaries_t&, Binary*>;

   struct KeyCmp {
-    bool operator() (const Relocation* lhs, const Relocation* rhs) const;
+    bool operator()(const Relocation* lhs, const Relocation* rhs) const;
   };

   /// Internal container that store all the relocations
@@ -186,19 +202,22 @@ class LIEF_API Binary : public LIEF::Binary  {
   using it_relocations = ref_iterator<relocations_t&, Relocation*>;

   /// Iterator which outputs const Relocation&
-  using it_const_relocations = const_ref_iterator<const relocations_t&, const Relocation*>;
+  using it_const_relocations =
+      const_ref_iterator<const relocations_t&, const Relocation*>;

   /// Iterator which outputs RPathCommand&
   using it_rpaths = filter_iterator<commands_t&, RPathCommand*>;

   /// Iterator which outputs const RPathCommand&
-  using it_const_rpaths = const_filter_iterator<const commands_t&, const RPathCommand*>;
+  using it_const_rpaths =
+      const_filter_iterator<const commands_t&, const RPathCommand*>;

   /// Iterator which outputs SubClient&
   using it_sub_clients = filter_iterator<commands_t&, SubClient*>;

   /// Iterator which outputs const SubClient&
-  using it_const_sub_clients = const_filter_iterator<const commands_t&, const SubClient*>;
+  using it_const_sub_clients =
+      const_filter_iterator<const commands_t&, const SubClient*>;

   using it_bindings = iterator_range<BindingInfoIterator>;

@@ -209,46 +228,47 @@ class LIEF_API Binary : public LIEF::Binary  {
   using it_notes = filter_iterator<commands_t&, NoteCommand*>;

   /// Iterator which outputs const NoteCommand&
-  using it_const_notes = const_filter_iterator<const commands_t&, const NoteCommand*>;
+  using it_const_notes =
+      const_filter_iterator<const commands_t&, const NoteCommand*>;

   public:
   Binary(const Binary&) = delete;
   Binary& operator=(const Binary&) = delete;

   /// Return a reference to the MachO::Header
-  Header& header() {
+  Header& header() LIEF_LIFETIMEBOUND {
     return header_;
   }

-  const Header& header() const {
+  const Header& header() const LIEF_LIFETIMEBOUND {
     return header_;
   }

   /// Return an iterator over the MachO LoadCommand present
   /// in the binary
-  it_commands commands() {
+  it_commands commands() LIEF_LIFETIMEBOUND {
     return commands_;
   }

-  it_const_commands commands() const {
+  it_const_commands commands() const LIEF_LIFETIMEBOUND {
     return commands_;
   }

   /// Return an iterator over the MachO::Binary associated
   /// with the LoadCommand::TYPE::FILESET_ENTRY commands
-  it_fileset_binaries filesets() {
+  it_fileset_binaries filesets() LIEF_LIFETIMEBOUND {
     return filesets_;
   }

-  it_const_fileset_binaries filesets() const {
+  it_const_fileset_binaries filesets() const LIEF_LIFETIMEBOUND {
     return filesets_;
   }

   /// Return binary's @link MachO::Symbol symbols @endlink
-  it_symbols symbols() {
+  it_symbols symbols() LIEF_LIFETIMEBOUND {
     return symbols_;
   }
-  it_const_symbols symbols() const {
+  it_const_symbols symbols() const LIEF_LIFETIMEBOUND {
     return symbols_;
   }

@@ -258,9 +278,9 @@ class LIEF_API Binary : public LIEF::Binary  {
   }

   /// Return Symbol from the given name. If the symbol does not
-  /// exists, it returns a null pointer
-  const Symbol* get_symbol(const std::string& name) const;
-  Symbol* get_symbol(const std::string& name) {
+  /// exist, it returns a null pointer
+  const Symbol* get_symbol(const std::string& name) const LIEF_LIFETIMEBOUND;
+  Symbol* get_symbol(const std::string& name) LIEF_LIFETIMEBOUND {
     return const_cast<Symbol*>(static_cast<const Binary*>(this)->get_symbol(name));
   }

@@ -268,61 +288,74 @@ class LIEF_API Binary : public LIEF::Binary  {
   static bool is_exported(const Symbol& symbol);

   /// Return binary's exported symbols (iterator over LIEF::MachO::Symbol)
-  it_exported_symbols exported_symbols() {
-    return {symbols_, [] (const std::unique_ptr<Symbol>& symbol) {
-      return is_exported(*symbol); }
-    };
+  it_exported_symbols exported_symbols() LIEF_LIFETIMEBOUND {
+    return {symbols_, [](const std::unique_ptr<Symbol>& symbol) {
+              return is_exported(*symbol);
+            }};
   }
-  it_const_exported_symbols exported_symbols() const {
-    return {symbols_, [] (const std::unique_ptr<Symbol>& symbol) {
-      return is_exported(*symbol);
-    }};
+  it_const_exported_symbols exported_symbols() const LIEF_LIFETIMEBOUND {
+    return {symbols_, [](const std::unique_ptr<Symbol>& symbol) {
+              return is_exported(*symbol);
+            }};
   }

   /// Check if the given symbol is an imported one
   static bool is_imported(const Symbol& symbol);

   /// Return binary's imported symbols (iterator over LIEF::MachO::Symbol)
-  it_imported_symbols imported_symbols() {
-    return {symbols_, [] (const std::unique_ptr<Symbol>& symbol) {
-      return is_imported(*symbol);
-    }};
+  it_imported_symbols imported_symbols() LIEF_LIFETIMEBOUND {
+    return {symbols_, [](const std::unique_ptr<Symbol>& symbol) {
+              return is_imported(*symbol);
+            }};
   }

-  it_const_imported_symbols imported_symbols() const {
-    return {symbols_, [] (const std::unique_ptr<Symbol>& symbol) {
-      return is_imported(*symbol);
-    }};
+  it_const_imported_symbols imported_symbols() const LIEF_LIFETIMEBOUND {
+    return {symbols_, [](const std::unique_ptr<Symbol>& symbol) {
+              return is_imported(*symbol);
+            }};
   }

   /// Return binary imported libraries (MachO::DylibCommand)
-  it_libraries libraries() {
+  it_libraries libraries() LIEF_LIFETIMEBOUND {
     return libraries_;
   }

-  it_const_libraries libraries() const {
+  it_const_libraries libraries() const LIEF_LIFETIMEBOUND {
     return libraries_;
   }

+  /// Return an iterator over the binary's LazyLoadDylibInfo commands
+  /// (`LC_LAZY_LOAD_DYLIB_INFO`)
+  it_lazy_load_dylib_info lazy_load_dylib_infos() LIEF_LIFETIMEBOUND {
+    return lazy_load_dylib_infos_;
+  }
+
+  it_const_lazy_load_dylib_info lazy_load_dylib_infos() const LIEF_LIFETIMEBOUND {
+    return lazy_load_dylib_infos_;
+  }
+
   /// Return an iterator over the SegmentCommand
-  it_segments segments() {
+  it_segments segments() LIEF_LIFETIMEBOUND {
     return segments_;
   }
-  it_const_segments segments() const {
+  it_const_segments segments() const LIEF_LIFETIMEBOUND {
     return segments_;
   }

   /// Return an iterator over the MachO::Section
-  it_sections sections() {
+  it_sections sections() LIEF_LIFETIMEBOUND {
     return sections_;
   }
-  it_const_sections sections() const {
+  it_const_sections sections() const LIEF_LIFETIMEBOUND {
     return sections_;
   }

   /// Return an iterator over the MachO::Relocation
-  it_relocations       relocations();
-  it_const_relocations relocations() const;
+  it_relocations relocations() LIEF_LIFETIMEBOUND {
+    return static_cast<const Binary*>(this)->relocations();
+  }
+
+  it_const_relocations relocations() const LIEF_LIFETIMEBOUND;

   /// Reconstruct the binary object and write the result in the given `filename`
   ///
@@ -358,48 +391,52 @@ class LIEF_API Binary : public LIEF::Binary  {

   /// Return the LoadCommand associated with the given LoadCommand::TYPE
   /// or a nullptr if the command can't be found.
-  const LoadCommand* get(LoadCommand::TYPE type) const;
-  LoadCommand* get(LoadCommand::TYPE type) {
+  const LoadCommand* get(LoadCommand::TYPE type) const LIEF_LIFETIMEBOUND;
+  LoadCommand* get(LoadCommand::TYPE type) LIEF_LIFETIMEBOUND {
     return const_cast<LoadCommand*>(static_cast<const Binary*>(this)->get(type));
   }

-  LoadCommand* add(std::unique_ptr<LoadCommand> command);
+  LoadCommand* add(std::unique_ptr<LoadCommand> command) LIEF_LIFETIMEBOUND;

   /// Insert a new LoadCommand
-  LoadCommand* add(const LoadCommand& command) {
+  LoadCommand* add(const LoadCommand& command) LIEF_LIFETIMEBOUND {
     return add(command.clone());
   }

   /// Insert a new LoadCommand at the specified `index`
-  LoadCommand* add(const LoadCommand& command, size_t index);
+  LoadCommand* add(const LoadCommand& command, size_t index) LIEF_LIFETIMEBOUND;

   /// Insert the given DylibCommand
-  LoadCommand* add(const DylibCommand& library);
+  LoadCommand* add(const DylibCommand& library) LIEF_LIFETIMEBOUND;

   /// Add a new LC_SEGMENT command from the given SegmentCommand
-  LoadCommand* add(const SegmentCommand& segment);
+  LoadCommand* add(const SegmentCommand& segment) LIEF_LIFETIMEBOUND;

   /// Insert a new shared library through a `LC_LOAD_DYLIB` command
-  LoadCommand* add_library(const std::string& name);
+  LoadCommand* add_library(const std::string& name) LIEF_LIFETIMEBOUND;

   /// Add a new MachO::Section in the __TEXT segment
-  Section* add_section(const Section& section);
+  Section* add_section(const Section& section) LIEF_LIFETIMEBOUND;

   /// Try to find the library with the given library name.
   ///
   /// This function tries to match the fullpath of the DylibCommand or the
   /// library name suffix.
-  const DylibCommand* find_library(const std::string& name) const;
+  const DylibCommand*
+      find_library(const std::string& name) const LIEF_LIFETIMEBOUND;

-  DylibCommand* find_library(const std::string& name) {
-    return const_cast<DylibCommand*>(static_cast<const Binary*>(this)->find_library(name));
+  DylibCommand* find_library(const std::string& name) LIEF_LIFETIMEBOUND {
+    return const_cast<DylibCommand*>(
+        static_cast<const Binary*>(this)->find_library(name)
+    );
   }

   /// Add a section in the given MachO::SegmentCommand.
   ///
   /// @warning This method may corrupt the file if the segment is not the first one
   ///          nor the last one
-  Section* add_section(const SegmentCommand& segment, const Section& section);
+  Section* add_section(const SegmentCommand& segment,
+                       const Section& section) LIEF_LIFETIMEBOUND;

   /// Remove the section with the name provided in the first parameter.
   ///
@@ -414,7 +451,8 @@ class LIEF_API Binary : public LIEF::Binary  {
   /// @param segname     Name of the MachO::Segment
   /// @param secname     Name of the MachO::Section to remove
   /// @param clear       If `true` clear the content of the section before removing
-  void remove_section(const std::string& segname, const std::string& secname, bool clear = false);
+  void remove_section(const std::string& segname, const std::string& secname,
+                      bool clear = false);

   /// Remove the given LoadCommand
   bool remove(const LoadCommand& command);
@@ -435,7 +473,8 @@ class LIEF_API Binary : public LIEF::Binary  {
   bool extend_segment(const SegmentCommand& segment, size_t size);

   /// Extend the **content** of the given Section.
-  /// @note This method may extend the section more than `size` preventing creation a gap
+  /// @note This method may extend the section more than `size` preventing creation
+  /// a gap
   ///       between the current section and the next one.
   ///       This may happen trying to satisfy alignment requirement of sections.
   /// @note This method works only with sections that belong to the first segment.
@@ -448,7 +487,7 @@ class LIEF_API Binary : public LIEF::Binary  {
   uint64_t imagebase() const override;

   /// Size of the binary in memory when mapped by the loader (`dyld`)
-  uint64_t virtual_size() const {
+  uint64_t virtual_size() const override {
     return align(va_ranges().size(), (uint64_t)page_size());
   }

@@ -461,24 +500,30 @@ class LIEF_API Binary : public LIEF::Binary  {
     return get_section(name) != nullptr;
   }

-  /// Return the section from the given name of a nullptr
+  /// Return the section from the given name or a nullptr
   /// if the section can't be found.
-  Section* get_section(const std::string& name) {
-    return const_cast<Section*>(static_cast<const Binary*>(this)->get_section(name));
+  Section* get_section(const std::string& name) LIEF_LIFETIMEBOUND {
+    return const_cast<Section*>(
+        static_cast<const Binary*>(this)->get_section(name)
+    );
   }

   /// Return the section from the given name or a nullptr
   /// if the section can't be found
-  const Section* get_section(const std::string& name) const;
+  const Section* get_section(const std::string& name) const LIEF_LIFETIMEBOUND;

   /// Return the section from the segment with the name
   /// given in the first parameter and with the section's name provided in the
   /// second parameter. If the section cannot be found, it returns a nullptr
-  Section* get_section(const std::string& segname, const std::string& secname) {
-    return const_cast<Section*>(static_cast<const Binary*>(this)->get_section(segname, secname));
+  Section* get_section(const std::string& segname,
+                       const std::string& secname) LIEF_LIFETIMEBOUND {
+    return const_cast<Section*>(
+        static_cast<const Binary*>(this)->get_section(segname, secname)
+    );
   }

-  const Section* get_section(const std::string& segname, const std::string& secname) const;
+  const Section* get_section(const std::string& segname,
+                             const std::string& secname) const LIEF_LIFETIMEBOUND;

   /// Check if a segment with the given name exists
   bool has_segment(const std::string& name) const {
@@ -486,11 +531,14 @@ class LIEF_API Binary : public LIEF::Binary  {
   }

   /// Return the segment from the given name
-  const SegmentCommand* get_segment(const std::string& name) const;
+  const SegmentCommand*
+      get_segment(const std::string& name) const LIEF_LIFETIMEBOUND;

   /// Return the segment from the given name
-  SegmentCommand* get_segment(const std::string& name) {
-    return const_cast<SegmentCommand*>(static_cast<const Binary*>(this)->get_segment(name));
+  SegmentCommand* get_segment(const std::string& name) LIEF_LIFETIMEBOUND {
+    return const_cast<SegmentCommand*>(
+        static_cast<const Binary*>(this)->get_segment(name)
+    );
   }

   /// Remove the symbol with the given name
@@ -513,17 +561,26 @@ class LIEF_API Binary : public LIEF::Binary  {

   /// Return the MachO::Section that encompasses the provided offset.
   /// If a section can't be found, it returns a null pointer (`nullptr`)
-  Section* section_from_offset(uint64_t offset) {
-    return const_cast<Section*>(static_cast<const Binary*>(this)->section_from_offset(offset));
+  Section* section_from_offset(uint64_t offset) LIEF_LIFETIMEBOUND {
+    return const_cast<Section*>(
+        static_cast<const Binary*>(this)->section_from_offset(offset)
+    );
   }
-  const Section* section_from_offset(uint64_t offset) const;
+  const Section* section_from_offset(uint64_t offset) const LIEF_LIFETIMEBOUND;

   /// Return the MachO::Section that encompasses the provided virtual address.
   /// If a section can't be found, it returns a null pointer (`nullptr`)
-  Section* section_from_virtual_address(uint64_t virtual_address) {
-    return const_cast<Section*>(static_cast<const Binary*>(this)->section_from_virtual_address(virtual_address));
-  }
-  const Section* section_from_virtual_address(uint64_t virtual_address) const;
+  Section*
+      section_from_virtual_address(uint64_t virtual_address) LIEF_LIFETIMEBOUND {
+    return const_cast<Section*>(
+        static_cast<const Binary*>(this)->section_from_virtual_address(
+            virtual_address
+        )
+    );
+  }
+  const Section* section_from_virtual_address(
+      uint64_t virtual_address
+  ) const LIEF_LIFETIMEBOUND;

   /// Convert a virtual address to an offset in the file
   result<uint64_t> virtual_address_to_offset(uint64_t virtual_address) const;
@@ -531,16 +588,21 @@ class LIEF_API Binary : public LIEF::Binary  {
   /// Convert the given offset into a virtual address.
   ///
   /// @param[in] offset    The offset to convert.
-  /// @param[in] slide     If not 0, it will replace the default base address (if any)
-  result<uint64_t> offset_to_virtual_address(uint64_t offset, uint64_t slide = 0) const override;
+  /// @param[in] slide     If not 0, it will replace the default base address (if
+  /// any)
+  result<uint64_t> offset_to_virtual_address(uint64_t offset,
+                                             uint64_t slide = 0) const override;

   /// Return the binary's SegmentCommand that encompasses the provided offset
   ///
   /// If a SegmentCommand can't be found it returns a null pointer (`nullptr`).
-  SegmentCommand* segment_from_offset(uint64_t offset) {
-    return const_cast<SegmentCommand*>(static_cast<const Binary*>(this)->segment_from_offset(offset));
+  SegmentCommand* segment_from_offset(uint64_t offset) LIEF_LIFETIMEBOUND {
+    return const_cast<SegmentCommand*>(
+        static_cast<const Binary*>(this)->segment_from_offset(offset)
+    );
   }
-  const SegmentCommand* segment_from_offset(uint64_t offset) const;
+  const SegmentCommand*
+      segment_from_offset(uint64_t offset) const LIEF_LIFETIMEBOUND;

   /// Return the index of the given SegmentCommand
   size_t segment_index(const SegmentCommand& segment) const;
@@ -550,12 +612,19 @@ class LIEF_API Binary : public LIEF::Binary  {
     return fat_offset_;
   }

-  /// Return the binary's SegmentCommand which encompasses the given virtual address
-  /// or a nullptr if not found.
-  SegmentCommand* segment_from_virtual_address(uint64_t virtual_address) {
-    return const_cast<SegmentCommand*>(static_cast<const Binary*>(this)->segment_from_virtual_address(virtual_address));
+  /// Return the binary's SegmentCommand which encompasses the given virtual
+  /// address or a nullptr if not found.
+  SegmentCommand*
+      segment_from_virtual_address(uint64_t virtual_address) LIEF_LIFETIMEBOUND {
+    return const_cast<SegmentCommand*>(
+        static_cast<const Binary*>(this)->segment_from_virtual_address(
+            virtual_address
+        )
+    );
   }
-  const SegmentCommand* segment_from_virtual_address(uint64_t virtual_address) const;
+  const SegmentCommand* segment_from_virtual_address(
+      uint64_t virtual_address
+  ) const LIEF_LIFETIMEBOUND;

   /// Return the range of virtual addresses
   range_t va_ranges() const;
@@ -563,6 +632,9 @@ class LIEF_API Binary : public LIEF::Binary  {
   /// Return the range of offsets
   range_t off_ranges() const;

+  /// Return the TLV initial content range
+  range_t tlv_initial_content_range() const;
+
   /// Check if the given address is encompassed in the
   /// binary's virtual addresses range
   bool is_valid_addr(uint64_t address) const {
@@ -582,7 +654,8 @@ class LIEF_API Binary : public LIEF::Binary  {
   /// @param[in] addr_type     Specify if the address should be used as
   ///                          an absolute virtual address or an RVA
   void patch_address(uint64_t address, const std::vector<uint8_t>& patch_value,
-                     LIEF::Binary::VA_TYPES addr_type = LIEF::Binary::VA_TYPES::AUTO) override;
+                     LIEF::Binary::VA_TYPES addr_type =
+                         LIEF::Binary::VA_TYPES::AUTO) override;

   /// Patch the address with the given value
   ///
@@ -591,14 +664,16 @@ class LIEF_API Binary : public LIEF::Binary  {
   /// @param[in] size          Size of the value in **bytes** (1, 2, ... 8)
   /// @param[in] addr_type     Specify if the address should be used as
   ///                          an absolute virtual address or an RVA
-  void patch_address(uint64_t address, uint64_t patch_value,
-                     size_t size = sizeof(uint64_t),
-                     LIEF::Binary::VA_TYPES addr_type = LIEF::Binary::VA_TYPES::AUTO) override;
+  void patch_address(
+      uint64_t address, uint64_t patch_value, size_t size = sizeof(uint64_t),
+      LIEF::Binary::VA_TYPES addr_type = LIEF::Binary::VA_TYPES::AUTO
+  ) override;

   /// Return the content located at virtual address
   span<const uint8_t> get_content_from_virtual_address(
       uint64_t virtual_address, uint64_t size,
-      Binary::VA_TYPES addr_type = Binary::VA_TYPES::AUTO) const override;
+      Binary::VA_TYPES addr_type = Binary::VA_TYPES::AUTO
+  ) const LIEF_LIFETIMEBOUND override;

   /// The binary entrypoint
   uint64_t entrypoint() const override;
@@ -636,8 +711,8 @@ class LIEF_API Binary : public LIEF::Binary  {
   }

   /// Return the MachO::UUIDCommand if present, a nullptr otherwise.
-  UUIDCommand* uuid();
-  const UUIDCommand* uuid() const;
+  UUIDCommand* uuid() LIEF_LIFETIMEBOUND;
+  const UUIDCommand* uuid() const LIEF_LIFETIMEBOUND;

   /// `true` if the binary has a MachO::MainCommand command.
   bool has_main_command() const {
@@ -645,8 +720,8 @@ class LIEF_API Binary : public LIEF::Binary  {
   }

   /// Return the MachO::MainCommand if present, a nullptr otherwise.
-  MainCommand* main_command();
-  const MainCommand* main_command() const;
+  MainCommand* main_command() LIEF_LIFETIMEBOUND;
+  const MainCommand* main_command() const LIEF_LIFETIMEBOUND;

   /// `true` if the binary has a MachO::DylinkerCommand.
   bool has_dylinker() const {
@@ -654,8 +729,8 @@ class LIEF_API Binary : public LIEF::Binary  {
   }

   /// Return the MachO::DylinkerCommand if present, a nullptr otherwise.
-  DylinkerCommand* dylinker();
-  const DylinkerCommand* dylinker() const;
+  DylinkerCommand* dylinker() LIEF_LIFETIMEBOUND;
+  const DylinkerCommand* dylinker() const LIEF_LIFETIMEBOUND;

   /// `true` if the binary has a MachO::DyldInfo command.
   bool has_dyld_info() const {
@@ -663,8 +738,8 @@ class LIEF_API Binary : public LIEF::Binary  {
   }

   /// Return the MachO::Dyld command if present, a nullptr otherwise.
-  DyldInfo* dyld_info();
-  const DyldInfo* dyld_info() const;
+  DyldInfo* dyld_info() LIEF_LIFETIMEBOUND;
+  const DyldInfo* dyld_info() const LIEF_LIFETIMEBOUND;

   /// `true` if the binary has a MachO::FunctionStarts command.
   bool has_function_starts() const {
@@ -672,8 +747,8 @@ class LIEF_API Binary : public LIEF::Binary  {
   }

   /// Return the MachO::FunctionStarts command if present, a nullptr otherwise.
-  FunctionStarts* function_starts();
-  const FunctionStarts* function_starts() const;
+  FunctionStarts* function_starts() LIEF_LIFETIMEBOUND;
+  const FunctionStarts* function_starts() const LIEF_LIFETIMEBOUND;

   /// `true` if the binary has a MachO::SourceVersion command.
   bool has_source_version() const {
@@ -681,8 +756,8 @@ class LIEF_API Binary : public LIEF::Binary  {
   }

   /// Return the MachO::SourceVersion command if present, a nullptr otherwise.
-  SourceVersion* source_version();
-  const SourceVersion* source_version() const;
+  SourceVersion* source_version() LIEF_LIFETIMEBOUND;
+  const SourceVersion* source_version() const LIEF_LIFETIMEBOUND;

   /// `true` if the binary has a MachO::VersionMin command.
   bool has_version_min() const {
@@ -690,8 +765,8 @@ class LIEF_API Binary : public LIEF::Binary  {
   }

   /// Return the MachO::VersionMin command if present, a nullptr otherwise.
-  VersionMin* version_min();
-  const VersionMin* version_min() const;
+  VersionMin* version_min() LIEF_LIFETIMEBOUND;
+  const VersionMin* version_min() const LIEF_LIFETIMEBOUND;

   /// `true` if the binary has a MachO::ThreadCommand command.
   bool has_thread_command() const {
@@ -699,8 +774,8 @@ class LIEF_API Binary : public LIEF::Binary  {
   }

   /// Return the MachO::ThreadCommand command if present, a nullptr otherwise.
-  ThreadCommand* thread_command();
-  const ThreadCommand* thread_command() const;
+  ThreadCommand* thread_command() LIEF_LIFETIMEBOUND;
+  const ThreadCommand* thread_command() const LIEF_LIFETIMEBOUND;

   /// `true` if the binary has a MachO::Routine command.
   bool has_routine_command() const {
@@ -708,8 +783,8 @@ class LIEF_API Binary : public LIEF::Binary  {
   }

   /// Return the MachO::Routine command if present, a nullptr otherwise.
-  Routine* routine_command();
-  const Routine* routine_command() const;
+  Routine* routine_command() LIEF_LIFETIMEBOUND;
+  const Routine* routine_command() const LIEF_LIFETIMEBOUND;

   /// `true` if the binary has a MachO::RPathCommand command.
   bool has_rpath() const {
@@ -717,12 +792,12 @@ class LIEF_API Binary : public LIEF::Binary  {
   }

   /// Return the MachO::RPathCommand command if present, a nullptr otherwise.
-  RPathCommand* rpath();
-  const RPathCommand* rpath() const;
+  RPathCommand* rpath() LIEF_LIFETIMEBOUND;
+  const RPathCommand* rpath() const LIEF_LIFETIMEBOUND;

   /// Iterator over **all** the MachO::RPathCommand commands.
-  it_rpaths rpaths();
-  it_const_rpaths rpaths() const;
+  it_rpaths rpaths() LIEF_LIFETIMEBOUND;
+  it_const_rpaths rpaths() const LIEF_LIFETIMEBOUND;

   /// `true` if the binary has a MachO::SymbolCommand command.
   bool has_symbol_command() const {
@@ -730,8 +805,8 @@ class LIEF_API Binary : public LIEF::Binary  {
   }

   /// Return the MachO::SymbolCommand if present, a nullptr otherwise.
-  SymbolCommand* symbol_command();
-  const SymbolCommand* symbol_command() const;
+  SymbolCommand* symbol_command() LIEF_LIFETIMEBOUND;
+  const SymbolCommand* symbol_command() const LIEF_LIFETIMEBOUND;

   /// `true` if the binary has a MachO::DynamicSymbolCommand command.
   bool has_dynamic_symbol_command() const {
@@ -739,8 +814,8 @@ class LIEF_API Binary : public LIEF::Binary  {
   }

   /// Return the MachO::SymbolCommand if present, a nullptr otherwise.
-  DynamicSymbolCommand* dynamic_symbol_command();
-  const DynamicSymbolCommand* dynamic_symbol_command() const;
+  DynamicSymbolCommand* dynamic_symbol_command() LIEF_LIFETIMEBOUND;
+  const DynamicSymbolCommand* dynamic_symbol_command() const LIEF_LIFETIMEBOUND;

   /// `true` if the binary is signed with `LC_CODE_SIGNATURE` command
   bool has_code_signature() const {
@@ -748,10 +823,12 @@ class LIEF_API Binary : public LIEF::Binary  {
   }

   /// Return the MachO::CodeSignature if present, a nullptr otherwise.
-  CodeSignature* code_signature() {
-    return const_cast<CodeSignature*>(static_cast<const Binary*>(this)->code_signature());
+  CodeSignature* code_signature() LIEF_LIFETIMEBOUND {
+    return const_cast<CodeSignature*>(
+        static_cast<const Binary*>(this)->code_signature()
+    );
   }
-  const CodeSignature* code_signature() const;
+  const CodeSignature* code_signature() const LIEF_LIFETIMEBOUND;

   /// `true` if the binary is signed with the command `DYLIB_CODE_SIGN_DRS`
   bool has_code_signature_dir() const {
@@ -759,10 +836,12 @@ class LIEF_API Binary : public LIEF::Binary  {
   }

   /// Return the MachO::CodeSignatureDir if present, a nullptr otherwise.
-  CodeSignatureDir* code_signature_dir() {
-    return const_cast<CodeSignatureDir*>(static_cast<const Binary*>(this)->code_signature_dir());
+  CodeSignatureDir* code_signature_dir() LIEF_LIFETIMEBOUND {
+    return const_cast<CodeSignatureDir*>(
+        static_cast<const Binary*>(this)->code_signature_dir()
+    );
   }
-  const CodeSignatureDir* code_signature_dir() const;
+  const CodeSignatureDir* code_signature_dir() const LIEF_LIFETIMEBOUND;

   /// `true` if the binary has a MachO::DataInCode command.
   bool has_data_in_code() const {
@@ -770,8 +849,8 @@ class LIEF_API Binary : public LIEF::Binary  {
   }

   /// Return the MachO::DataInCode if present, a nullptr otherwise.
-  DataInCode* data_in_code();
-  const DataInCode* data_in_code() const;
+  DataInCode* data_in_code() LIEF_LIFETIMEBOUND;
+  const DataInCode* data_in_code() const LIEF_LIFETIMEBOUND;

   /// `true` if the binary has segment split info.
   bool has_segment_split_info() const {
@@ -779,8 +858,8 @@ class LIEF_API Binary : public LIEF::Binary  {
   }

   /// Return the MachO::SegmentSplitInfo if present, a nullptr otherwise.
-  SegmentSplitInfo* segment_split_info();
-  const SegmentSplitInfo* segment_split_info() const;
+  SegmentSplitInfo* segment_split_info() LIEF_LIFETIMEBOUND;
+  const SegmentSplitInfo* segment_split_info() const LIEF_LIFETIMEBOUND;

   /// `true` if the binary has a sub framework command.
   bool has_sub_framework() const {
@@ -792,28 +871,28 @@ class LIEF_API Binary : public LIEF::Binary  {
     return encryption_info() != nullptr;
   }

-  /// Return the MachO::DyldEnvironment if present, a nullptr otherwise.
-  EncryptionInfo* encryption_info();
-  const EncryptionInfo* encryption_info() const;
+  /// Return the MachO::EncryptionInfo if present, a nullptr otherwise.
+  EncryptionInfo* encryption_info() LIEF_LIFETIMEBOUND;
+  const EncryptionInfo* encryption_info() const LIEF_LIFETIMEBOUND;

   /// Return the MachO::SubFramework if present, a nullptr otherwise.
-  SubFramework* sub_framework();
-  const SubFramework* sub_framework() const;
+  SubFramework* sub_framework() LIEF_LIFETIMEBOUND;
+  const SubFramework* sub_framework() const LIEF_LIFETIMEBOUND;

   /// Iterator over **all** the MachO::SubClient commands.
-  it_sub_clients subclients();
-  it_const_sub_clients subclients() const;
+  it_sub_clients subclients() LIEF_LIFETIMEBOUND;
+  it_const_sub_clients subclients() const LIEF_LIFETIMEBOUND;

   bool has_subclients() const;

-  /// `true` if the binary has Dyld envrionment variables.
+  /// `true` if the binary has Dyld environment variables.
   bool has_dyld_environment() const {
     return dyld_environment() != nullptr;
   }

   /// Return the MachO::DyldEnvironment if present, a nullptr otherwise
-  DyldEnvironment* dyld_environment();
-  const DyldEnvironment* dyld_environment() const;
+  DyldEnvironment* dyld_environment() LIEF_LIFETIMEBOUND;
+  const DyldEnvironment* dyld_environment() const LIEF_LIFETIMEBOUND;

   /// `true` if the binary has the BuildVersion command.
   bool has_build_version() const {
@@ -821,8 +900,8 @@ class LIEF_API Binary : public LIEF::Binary  {
   }

   /// Return the MachO::BuildVersion if present, a nullptr otherwise.
-  BuildVersion* build_version();
-  const BuildVersion* build_version() const;
+  BuildVersion* build_version() LIEF_LIFETIMEBOUND;
+  const BuildVersion* build_version() const LIEF_LIFETIMEBOUND;

   /// Return the platform for which this Mach-O has been compiled for
   BuildVersion::PLATFORMS platform() const {
@@ -851,28 +930,30 @@ class LIEF_API Binary : public LIEF::Binary  {
   }

   /// Return the MachO::DyldChainedFixups if present, a nullptr otherwise.
-  DyldChainedFixups* dyld_chained_fixups();
-  const DyldChainedFixups* dyld_chained_fixups() const;
+  DyldChainedFixups* dyld_chained_fixups() LIEF_LIFETIMEBOUND;
+  const DyldChainedFixups* dyld_chained_fixups() const LIEF_LIFETIMEBOUND;

-  /// `true` if the binary has the command LC_DYLD_CHAINED_FIXUPS.
+  /// `true` if the binary has the command LC_DYLD_EXPORTS_TRIE.
   bool has_dyld_exports_trie() const {
     return dyld_exports_trie() != nullptr;
   }

-  /// Return the MachO::DyldChainedFixups if present, a nullptr otherwise.
-  DyldExportsTrie* dyld_exports_trie();
-  const DyldExportsTrie* dyld_exports_trie() const;
+  /// Return the MachO::DyldExportsTrie if present, a nullptr otherwise.
+  DyldExportsTrie* dyld_exports_trie() LIEF_LIFETIMEBOUND;
+  const DyldExportsTrie* dyld_exports_trie() const LIEF_LIFETIMEBOUND;

   /// `true` if the binary has the command LC_TWO_LEVEL_HINTS.
   bool has_two_level_hints() const {
     return two_level_hints() != nullptr;
   }

-  /// Return the MachO::DyldChainedFixups if present, a nullptr otherwise.
-  TwoLevelHints* two_level_hints() {
-    return const_cast<TwoLevelHints*>(static_cast<const Binary*>(this)->two_level_hints());
+  /// Return the MachO::TwoLevelHints if present, a nullptr otherwise.
+  TwoLevelHints* two_level_hints() LIEF_LIFETIMEBOUND {
+    return const_cast<TwoLevelHints*>(
+        static_cast<const Binary*>(this)->two_level_hints()
+    );
   }
-  const TwoLevelHints* two_level_hints() const;
+  const TwoLevelHints* two_level_hints() const LIEF_LIFETIMEBOUND;

   /// `true` if the binary has the command LC_LINKER_OPTIMIZATION_HINT.
   bool has_linker_opt_hint() const {
@@ -880,16 +961,20 @@ class LIEF_API Binary : public LIEF::Binary  {
   }

   /// Return the MachO::LinkerOptHint if present, a nullptr otherwise.
-  LinkerOptHint* linker_opt_hint() {
-    return const_cast<LinkerOptHint*>(static_cast<const Binary*>(this)->linker_opt_hint());
+  LinkerOptHint* linker_opt_hint() LIEF_LIFETIMEBOUND {
+    return const_cast<LinkerOptHint*>(
+        static_cast<const Binary*>(this)->linker_opt_hint()
+    );
   }
-  const LinkerOptHint* linker_opt_hint() const;
+  const LinkerOptHint* linker_opt_hint() const LIEF_LIFETIMEBOUND;

   /// Add a symbol in the export trie of the current binary
-  ExportInfo* add_exported_function(uint64_t address, const std::string& name);
+  ExportInfo* add_exported_function(uint64_t address,
+                                    const std::string& name) LIEF_LIFETIMEBOUND;

   /// Add a symbol in LC_SYMTAB command of the current binary
-  Symbol* add_local_symbol(uint64_t address, const std::string& name);
+  Symbol* add_local_symbol(uint64_t address,
+                           const std::string& name) LIEF_LIFETIMEBOUND;

   /// Return Objective-C metadata if present
   std::unique_ptr<objc::Metadata> objc_metadata() const;
@@ -899,7 +984,8 @@ class LIEF_API Binary : public LIEF::Binary  {
   /// These stubs are involved when calling an **imported** function and are
   /// similar to the ELF's plt/got mechanism.
   ///
-  /// There are located in sections like: `__stubs,__auth_stubs,__symbol_stub,__picsymbolstub4`
+  /// There are located in sections like:
+  /// `__stubs,__auth_stubs,__symbol_stub,__picsymbolstub4`
   stub_iterator symbol_stubs() const;

   /// `true` if the binary has the command LC_ATOM_INFO.
@@ -908,15 +994,15 @@ class LIEF_API Binary : public LIEF::Binary  {
   }

   /// Return the MachO::AtomInfo if present, a nullptr otherwise.
-  AtomInfo* atom_info() {
+  AtomInfo* atom_info() LIEF_LIFETIMEBOUND {
     return const_cast<AtomInfo*>(static_cast<const Binary*>(this)->atom_info());
   }
-  const AtomInfo* atom_info() const;
+  const AtomInfo* atom_info() const LIEF_LIFETIMEBOUND;

   /// Iterator over the different `LC_NOTE` commands
-  it_notes notes();
+  it_notes notes() LIEF_LIFETIMEBOUND;

-  it_const_notes notes() const;
+  it_const_notes notes() const LIEF_LIFETIMEBOUND;

   /// True if the binary contains `LC_NOTE` command(s)
   bool has_notes() const {
@@ -929,11 +1015,13 @@ class LIEF_API Binary : public LIEF::Binary  {
   }

   /// Return the FunctionVariants if present, a nullptr otherwise.
-  FunctionVariants* function_variants() {
-    return const_cast<FunctionVariants*>(static_cast<const Binary*>(this)->function_variants());
+  FunctionVariants* function_variants() LIEF_LIFETIMEBOUND {
+    return const_cast<FunctionVariants*>(
+        static_cast<const Binary*>(this)->function_variants()
+    );
   }

-  const FunctionVariants* function_variants() const;
+  const FunctionVariants* function_variants() const LIEF_LIFETIMEBOUND;

   /// `true` if the binary has the command `LC_FUNCTION_VARIANT_FIXUPS`.
   bool has_function_variant_fixups() const {
@@ -942,7 +1030,9 @@ class LIEF_API Binary : public LIEF::Binary  {

   /// Return the FunctionVariantFixups if present, a nullptr otherwise.
   FunctionVariantFixups* function_variant_fixups() {
-    return const_cast<FunctionVariantFixups*>(static_cast<const Binary*>(this)->function_variant_fixups());
+    return const_cast<FunctionVariantFixups*>(
+        static_cast<const Binary*>(this)->function_variant_fixups()
+    );
   }

   const FunctionVariantFixups* function_variant_fixups() const;
@@ -980,16 +1070,22 @@ class LIEF_API Binary : public LIEF::Binary  {

   /// `true` if the binary has a LoadCommand::TYPE::FILESET_ENTRY command
   bool has_filesets() const {
-    return filesets_.empty();
+    return !filesets_.empty();
   }

-  /// Name associated with the LC_FILESET_ENTRY binary
+  /// Name associated with the `LC_FILESET_ENTRY` for this MachO.
+  /// For instance: `com.apple.kec.corecrypto`
   const std::string& fileset_name() const {
-    return fileset_name_;
+    return fileset_info_.name;
+  }
+
+  /// Original address associated with the `LC_FILESET_ENTRY` for this MachO.
+  uint64_t fileset_addr() const {
+    return fileset_info_.address;
   }

   /// Add a symbol to this binary
-  Symbol& add(const Symbol& symbol);
+  Symbol& add(const Symbol& symbol) LIEF_LIFETIMEBOUND;

   ~Binary() override;

@@ -1011,7 +1107,8 @@ class LIEF_API Binary : public LIEF::Binary  {
   /// Check if the binary is supporting ARM64 pointer authentication (arm64e)
   bool support_arm64_ptr_auth() const {
     return header().cpu_type() == Header::CPU_TYPE::ARM64 &&
-           (header().cpu_subtype() & ~Header::SUBTYPE_MASK) == Header::CPU_SUBTYPE_ARM64_ARM64E;
+           (header().cpu_subtype() & ~Header::SUBTYPE_MASK) ==
+               Header::CPU_SUBTYPE_ARM64_ARM64E;
   }

   /// Return an iterator over the binding info which can come from either
@@ -1025,7 +1122,7 @@ class LIEF_API Binary : public LIEF::Binary  {
     return bin->format() == Binary::FORMATS::MACHO;
   }

-  span<const uint8_t> overlay() const {
+  span<const uint8_t> overlay() const LIEF_LIFETIMEBOUND {
     return overlay_;
   }

@@ -1035,7 +1132,7 @@ class LIEF_API Binary : public LIEF::Binary  {
   /// Check if the given segment can go in the offset_seg_ cache
   static LIEF_LOCAL bool can_cache_segment(const SegmentCommand& segment);

-  /// \private
+  /// @private
   LIEF_LOCAL size_t available_command_space() const {
     return available_command_space_;
   }
@@ -1061,37 +1158,43 @@ class LIEF_API Binary : public LIEF::Binary  {
   LIEF_LOCAL LIEF::Binary::sections_t get_abstract_sections() override;
   LIEF_LOCAL LIEF::Binary::symbols_t get_abstract_symbols() override;
   LIEF_LOCAL LIEF::Binary::relocations_t get_abstract_relocations() override;
-  LIEF_LOCAL LIEF::Binary::functions_t get_abstract_exported_functions() const override;
-  LIEF_LOCAL LIEF::Binary::functions_t get_abstract_imported_functions() const override;
-  LIEF_LOCAL std::vector<std::string> get_abstract_imported_libraries() const override;
+  LIEF_LOCAL LIEF::Binary::functions_t
+      get_abstract_exported_functions() const override;
+  LIEF_LOCAL LIEF::Binary::functions_t
+      get_abstract_imported_functions() const override;
+  LIEF_LOCAL std::vector<std::string>
+      get_abstract_imported_libraries() const override;

   /// Check that a gap between the load command table and
-  /// the first section is at least \p size bytes.
-  /// If there is not enough space, the gap is grown using \ref shift method.
+  /// the first section is at least @p size bytes.
+  /// If there is not enough space, the gap is grown using the shift method.
   ok_error_t ensure_command_space(size_t size) {
     return available_command_space_ < size ? shift(size) : ok();
   }

   relocations_t& relocations_list() {
-    return this->relocations_;
+    return relocations_;
   }

   const relocations_t& relocations_list() const {
-    return this->relocations_;
+    return relocations_;
   }

   size_t pointer_size() const {
-    return this->is64_ ? sizeof(uint64_t) : sizeof(uint32_t);
+    return is64_ ? sizeof(uint64_t) : sizeof(uint32_t);
   }

-  bool        is64_ = true;
-  Header      header_;
-  commands_t  commands_;
-  symbols_t   symbols_;
+  bool is64_ = true;
+  Header header_;
+  commands_t commands_;
+  symbols_t symbols_;

   // Same purpose as sections_cache_t
   libraries_cache_t libraries_;

+  // Cache of the LC_LAZY_LOAD_DYLIB_INFO commands
+  lazy_load_dylib_info_cache_t lazy_load_dylib_infos_;
+
   // The sections are owned by the SegmentCommand object.
   // This attribute is a cache to speed-up the iteration
   sections_cache_t sections_;
@@ -1110,12 +1213,17 @@ class LIEF_API Binary : public LIEF::Binary  {
   std::map<uint64_t, SegmentCommand*> offset_seg_;

   protected:
+  struct fileset_info_t {
+    std::string name;
+    uint64_t address = 0;
+  };
+
   uint64_t fat_offset_ = 0;
-  uint64_t fileset_offset_ = 0;
   uint64_t in_memory_base_addr_ = 0;
-  std::string fileset_name_;
   std::vector<uint8_t> overlay_;
   std::vector<std::unique_ptr<IndirectBindingInfo>> indirect_bindings_;
+  fileset_info_t fileset_info_;
+  mutable std::mutex mu_;
 };

 } // namespace MachO
diff --git a/deps/LIEF/include/LIEF/MachO/BinaryParser.hpp b/deps/LIEF/include/LIEF/MachO/BinaryParser.hpp
index 96d6a6778b2..90c1e2ad8b6 100644
--- a/deps/LIEF/include/LIEF/MachO/BinaryParser.hpp
+++ b/deps/LIEF/include/LIEF/MachO/BinaryParser.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -50,6 +50,7 @@ class ExportInfo;
 class FunctionStarts;
 class FunctionVariants;
 class FunctionVariantFixups;
+class LazyLoadDylibInfo;
 class LinkerOptHint;
 class Parser;
 class Section;
@@ -72,7 +73,7 @@ union dyld_chained_ptr_arm64e_segmented;

 /// Class used to parse a **single** binary (i.e. non-FAT)
 ///
-/// @warning This class should not be directly used.
+/// @warning This class should not be used directly.
 ///
 /// @see MachO::Parser
 class LIEF_API BinaryParser : public LIEF::Parser {
@@ -87,14 +88,18 @@ class LIEF_API BinaryParser : public LIEF::Parser {

   public:
   static std::unique_ptr<Binary> parse(const std::string& file);
-  static std::unique_ptr<Binary> parse(const std::string& file, const ParserConfig& conf);
-  static std::unique_ptr<Binary> parse(const std::vector<uint8_t>& data,
-                                       const ParserConfig& conf = ParserConfig::deep());
+  static std::unique_ptr<Binary> parse(const std::string& file,
+                                       const ParserConfig& conf);
+  static std::unique_ptr<Binary>
+      parse(const std::vector<uint8_t>& data,
+            const ParserConfig& conf = ParserConfig::deep());

-  static std::unique_ptr<Binary> parse(const std::vector<uint8_t>& data, uint64_t fat_offset,
-                                       const ParserConfig& conf = ParserConfig::deep());
+  static std::unique_ptr<Binary>
+      parse(const std::vector<uint8_t>& data, uint64_t fat_offset,
+            const ParserConfig& conf = ParserConfig::deep());

-  static std::unique_ptr<Binary> parse(std::unique_ptr<BinaryStream> stream, uint64_t fat_offset,
+  static std::unique_ptr<Binary> parse(std::unique_ptr<BinaryStream> stream,
+                                       uint64_t fat_offset,
                                        const ParserConfig& conf);

   BinaryParser& operator=(const BinaryParser& copy) = delete;
@@ -149,27 +154,31 @@ class LIEF_API BinaryParser : public LIEF::Parser {
   LIEF_LOCAL ok_error_t parse_symtab(SymbolCommand& cmd, SpanStream& nlist_s,
                                      SpanStream& string_s);

-  LIEF_LOCAL ok_error_t parse_indirect_symbols(
-    DynamicSymbolCommand& cmd, std::vector<Symbol*>& symtab,
-    BinaryStream& indirect_stream);
+  LIEF_LOCAL ok_error_t parse_indirect_symbols(DynamicSymbolCommand& cmd,
+                                               std::vector<Symbol*>& symtab,
+                                               BinaryStream& indirect_stream);


   template<class MACHO_T>
   LIEF_LOCAL ok_error_t parse_data_in_code(DataInCode& cmd, BinaryStream& stream);

-  using it_opaque_segments = void*; // To avoid including Binary.hpp. It must contains it_opaque_segments
+  using it_opaque_segments =
+      void*; // To avoid including Binary.hpp. It must contains it_opaque_segments

   template<class MACHO_T>
-  LIEF_LOCAL ok_error_t do_bind(DyldBindingInfo::CLASS cls, uint8_t type, uint8_t segment_idx,
-                     uint64_t segment_offset, const std::string& symbol_name,
-                     int32_t ord, int64_t addend, bool is_weak,
-                     bool is_non_weak_definition, it_opaque_segments segments_ptr, uint64_t offset = 0);
+  LIEF_LOCAL ok_error_t do_bind(DyldBindingInfo::CLASS cls, uint8_t type,
+                                uint8_t segment_idx, uint64_t segment_offset,
+                                const std::string& symbol_name, int32_t ord,
+                                int64_t addend, bool is_weak,
+                                bool is_non_weak_definition,
+                                it_opaque_segments segments_ptr,
+                                uint64_t offset = 0);


   template<class MACHO_T>
-  LIEF_LOCAL ok_error_t do_rebase(
-    uint8_t type, uint8_t segment_idx, uint64_t segment_offset,
-    it_opaque_segments segments);
+  LIEF_LOCAL ok_error_t do_rebase(uint8_t type, uint8_t segment_idx,
+                                  uint64_t segment_offset,
+                                  it_opaque_segments segments);

   /*
    * This set of functions are related to the parsing of LC_DYLD_CHAINED_FIXUPS
@@ -178,58 +187,65 @@ class LIEF_API BinaryParser : public LIEF::Parser {
   LIEF_LOCAL ok_error_t parse_chained_payload(SpanStream& stream);

   template<class MACHO_T>
-  LIEF_LOCAL ok_error_t parse_chained_import(
-    const details::dyld_chained_fixups_header& header, SpanStream& stream,
-    SpanStream& symbol_pool);
+  LIEF_LOCAL ok_error_t
+      parse_chained_import(const details::dyld_chained_fixups_header& header,
+                           SpanStream& stream, SpanStream& symbol_pool);

   template<class MACHO_T>
-  LIEF_LOCAL ok_error_t parse_chained_fixup(
-    const details::dyld_chained_fixups_header& header, SpanStream& stream);
+  LIEF_LOCAL ok_error_t
+      parse_chained_fixup(const details::dyld_chained_fixups_header& header,
+                          SpanStream& stream);

   template<class MACHO_T>
-  LIEF_LOCAL ok_error_t parse_fixup_seg(
-    SpanStream& stream, uint32_t seg_info_offset, uint64_t offset,
-    uint32_t seg_idx);
+  LIEF_LOCAL ok_error_t parse_fixup_seg(SpanStream& stream,
+                                        uint32_t seg_info_offset, uint64_t offset,
+                                        uint32_t seg_idx);

   template<class MACHO_T>
-  LIEF_LOCAL ok_error_t do_fixup(
-    DYLD_CHAINED_FORMAT fmt, int32_t ord, const std::string& symbol_name,
-    int64_t addend, bool is_weak);
+  LIEF_LOCAL ok_error_t do_fixup(DYLD_CHAINED_FORMAT fmt, int32_t ord,
+                                 const std::string& symbol_name, int64_t addend,
+                                 bool is_weak);

   template<class MACHO_T>
-  LIEF_LOCAL ok_error_t process_fixup(
-    SegmentCommand& segment, uint64_t chain_address, uint64_t chain_offset,
-    const details::dyld_chained_starts_in_segment& seg_info);
+  LIEF_LOCAL ok_error_t
+      process_fixup(SegmentCommand& segment, uint64_t chain_address,
+                    uint64_t chain_offset,
+                    const details::dyld_chained_starts_in_segment& seg_info);

   template<class MACHO_T>
-  LIEF_LOCAL result<uint64_t> next_chain(
-    uint64_t& chain_address, uint64_t chain_offset,
-    const details::dyld_chained_starts_in_segment& seg_info);
+  LIEF_LOCAL result<uint64_t>
+      next_chain(uint64_t& chain_address, uint64_t chain_offset,
+                 const details::dyld_chained_starts_in_segment& seg_info);

   template<class MACHO_T>
-  LIEF_LOCAL ok_error_t walk_chain(
-    SegmentCommand& segment, uint64_t chain_address, uint64_t chain_offset,
-    const details::dyld_chained_starts_in_segment& seg_info);
+  LIEF_LOCAL ok_error_t
+      walk_chain(SegmentCommand& segment, uint64_t chain_address,
+                 uint64_t chain_offset,
+                 const details::dyld_chained_starts_in_segment& seg_info);

-  LIEF_LOCAL ok_error_t do_chained_fixup(
-    SegmentCommand& segment, uint64_t chain_address, uint32_t chain_offset,
-    const details::dyld_chained_starts_in_segment& seg_info,
-    const details::dyld_chained_ptr_arm64e& fixup);
+  LIEF_LOCAL ok_error_t
+      do_chained_fixup(SegmentCommand& segment, uint64_t chain_address,
+                       uint32_t chain_offset,
+                       const details::dyld_chained_starts_in_segment& seg_info,
+                       const details::dyld_chained_ptr_arm64e& fixup);

-  LIEF_LOCAL ok_error_t do_chained_fixup(
-    SegmentCommand& segment, uint64_t chain_address, uint32_t chain_offset,
-    const details::dyld_chained_starts_in_segment& seg_info,
-    const details::dyld_chained_ptr_generic64& fixup);
+  LIEF_LOCAL ok_error_t
+      do_chained_fixup(SegmentCommand& segment, uint64_t chain_address,
+                       uint32_t chain_offset,
+                       const details::dyld_chained_starts_in_segment& seg_info,
+                       const details::dyld_chained_ptr_generic64& fixup);

-  LIEF_LOCAL ok_error_t do_chained_fixup(
-    SegmentCommand& segment, uint64_t chain_address, uint32_t chain_offset,
-    const details::dyld_chained_starts_in_segment& seg_info,
-    const details::dyld_chained_ptr_generic32 & fixup);
+  LIEF_LOCAL ok_error_t
+      do_chained_fixup(SegmentCommand& segment, uint64_t chain_address,
+                       uint32_t chain_offset,
+                       const details::dyld_chained_starts_in_segment& seg_info,
+                       const details::dyld_chained_ptr_generic32& fixup);

-  LIEF_LOCAL ok_error_t do_chained_fixup(
-    SegmentCommand& segment, uint64_t chain_address, uint32_t chain_offset,
-    const details::dyld_chained_starts_in_segment& seg_info,
-    const details::dyld_chained_ptr_arm64e_segmented& fixup);
+  LIEF_LOCAL ok_error_t
+      do_chained_fixup(SegmentCommand& segment, uint64_t chain_address,
+                       uint32_t chain_offset,
+                       const details::dyld_chained_starts_in_segment& seg_info,
+                       const details::dyld_chained_ptr_arm64e_segmented& fixup);

   template<class MACHO_T>
   LIEF_LOCAL ok_error_t post_process(SymbolCommand& cmd);
@@ -267,6 +283,9 @@ class LIEF_API BinaryParser : public LIEF::Parser {
   template<class MACHO_T>
   LIEF_LOCAL ok_error_t post_process(FunctionVariantFixups& cmd);

+  template<class MACHO_T>
+  LIEF_LOCAL ok_error_t post_process(LazyLoadDylibInfo& cmd);
+
   LIEF_LOCAL ok_error_t parse_overlay();

   // Exports
@@ -274,20 +293,22 @@ class LIEF_API BinaryParser : public LIEF::Parser {
   LIEF_LOCAL ok_error_t parse_dyldinfo_export();
   LIEF_LOCAL ok_error_t parse_dyld_exports();

-  LIEF_LOCAL ok_error_t parse_export_trie(
-    exports_list_t& exports, BinaryStream& stream,
-    uint64_t start, const std::string& prefix, bool* invalid_names);
+  LIEF_LOCAL result<exports_list_t> parse_export_trie(BinaryStream& stream,
+                                                      uint64_t start,
+                                                      const std::string& prefix,
+                                                      uint32_t depth,
+                                                      bool* invalid_names);

   LIEF_LOCAL void copy_from(ChainedBindingInfo& to, ChainedBindingInfo& from);

-  std::unique_ptr<BinaryStream>  stream_;
-  std::unique_ptr<Binary>        binary_;
-  MACHO_TYPES                    type_ = MACHO_TYPES::MAGIC_64;
-  bool                           is64_ = true;
-  ParserConfig                   config_;
-  std::set<uint64_t>             visited_;
+  std::unique_ptr<BinaryStream> stream_;
+  std::unique_ptr<Binary> binary_;
+  MACHO_TYPES type_ = MACHO_TYPES::MAGIC_64;
+  bool is64_ = true;
+  ParserConfig config_;
+  std::set<uint64_t> visited_;
   std::unordered_map<std::string, Symbol*> memoized_symbols_;
-  std::map<uint64_t, Symbol*>    memoized_symbols_by_address_;
+  std::map<uint64_t, Symbol*> memoized_symbols_by_address_;

   std::vector<DylibCommand*> binding_libs_;
   std::set<uint64_t> dyld_reloc_addrs_;
diff --git a/deps/LIEF/include/LIEF/MachO/BindingInfo.hpp b/deps/LIEF/include/LIEF/MachO/BindingInfo.hpp
index 8bf7a5c6274..23701ab6729 100644
--- a/deps/LIEF/include/LIEF/MachO/BindingInfo.hpp
+++ b/deps/LIEF/include/LIEF/MachO/BindingInfo.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -32,8 +32,9 @@ class DyldChainedFixupsCreator;
 /// Class that provides an interface over a *binding* operation.
 ///
 /// This class does not represent a structure that exists in the Mach-O format
-/// specifications but it provides a *view* of a binding operation that is performed
-/// by the Dyld binding bytecode (`LC_DYLD_INFO`) or the Dyld chained fixups (`DYLD_CHAINED_FIXUPS`)
+/// specifications but it provides a *view* of a binding operation that is
+/// performed by the Dyld binding bytecode (`LC_DYLD_INFO`) or the Dyld chained
+/// fixups (`DYLD_CHAINED_FIXUPS`)
 ///
 /// See: LIEF::MachO::ChainedBindingInfo, LIEF::MachO::DyldBindingInfo
 class LIEF_API BindingInfo : public Object {
@@ -47,7 +48,7 @@ class LIEF_API BindingInfo : public Object {
     DYLD_INFO,       /// Binding associated with the Dyld info opcodes
     CHAINED,         /// Binding associated with the chained fixups
     CHAINED_LIST,    /// Internal use
-    INDIRECT_SYMBOL, /// Infered from the indirect symbols table
+    INDIRECT_SYMBOL, /// Inferred from the indirect symbols table
   };

   BindingInfo() = default;
@@ -65,11 +66,11 @@ class LIEF_API BindingInfo : public Object {
   }

   /// The MachO::SegmentCommand associated with the BindingInfo or
-  /// a nullptr of it is not bind to a SegmentCommand
-  const SegmentCommand* segment() const {
+  /// a nullptr if it is not bound to a SegmentCommand
+  const SegmentCommand* segment() const LIEF_LIFETIMEBOUND {
     return segment_;
   }
-  SegmentCommand* segment() {
+  SegmentCommand* segment() LIEF_LIFETIMEBOUND {
     return segment_;
   }

@@ -80,10 +81,10 @@ class LIEF_API BindingInfo : public Object {

   /// MachO::DylibCommand associated with the BindingInfo or a nullptr
   /// if not present
-  const DylibCommand* library() const {
+  const DylibCommand* library() const LIEF_LIFETIMEBOUND {
     return library_;
   }
-  DylibCommand* library() {
+  DylibCommand* library() LIEF_LIFETIMEBOUND {
     return library_;
   }

@@ -94,10 +95,10 @@ class LIEF_API BindingInfo : public Object {

   /// MachO::Symbol associated with the BindingInfo or
   /// a nullptr if not present
-  const Symbol* symbol() const {
+  const Symbol* symbol() const LIEF_LIFETIMEBOUND {
     return symbol_;
   }
-  Symbol* symbol() {
+  Symbol* symbol() LIEF_LIFETIMEBOUND {
     return symbol_;
   }

@@ -145,7 +146,8 @@ class LIEF_API BindingInfo : public Object {

   template<class T>
   const T* cast() const {
-    static_assert(std::is_base_of<BindingInfo, T>::value, "Require BindingInfo inheritance");
+    static_assert(std::is_base_of<BindingInfo, T>::value,
+                  "Require BindingInfo inheritance");
     if (T::classof(this)) {
       return static_cast<const T*>(this);
     }
@@ -157,16 +159,17 @@ class LIEF_API BindingInfo : public Object {
     return const_cast<T*>(static_cast<const BindingInfo*>(this)->cast<T>());
   }

-  LIEF_API friend std::ostream& operator<<(std::ostream& os, const BindingInfo& binding_info);
+  LIEF_API friend std::ostream& operator<<(std::ostream& os,
+                                           const BindingInfo& binding_info);

   protected:
   SegmentCommand* segment_ = nullptr;
-  Symbol*         symbol_ = nullptr;
-  int32_t         library_ordinal_ = 0;
-  int64_t         addend_ = 0;
-  bool            is_weak_import_ = false;
-  DylibCommand*   library_ = nullptr;
-  uint64_t        address_ = 0;
+  Symbol* symbol_ = nullptr;
+  int32_t library_ordinal_ = 0;
+  int64_t addend_ = 0;
+  bool is_weak_import_ = false;
+  DylibCommand* library_ = nullptr;
+  uint64_t address_ = 0;
 };

 }
diff --git a/deps/LIEF/include/LIEF/MachO/BindingInfoIterator.hpp b/deps/LIEF/include/LIEF/MachO/BindingInfoIterator.hpp
index 0bcf8ca6e07..11c0c2f4c77 100644
--- a/deps/LIEF/include/LIEF/MachO/BindingInfoIterator.hpp
+++ b/deps/LIEF/include/LIEF/MachO/BindingInfoIterator.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -25,15 +25,11 @@ class Binary;
 class DyldInfo;
 class DyldChainedFixups;

-class LIEF_API BindingInfoIterator :
-    public iterator_facade_base<BindingInfoIterator,
+class LIEF_API BindingInfoIterator
+  : public iterator_facade_base<BindingInfoIterator,
                                 std::random_access_iterator_tag,
-                                const BindingInfo&,
-                                std::ptrdiff_t,
-                                const BindingInfo*,
-                                const BindingInfo&
-    >
-{
+                                const BindingInfo&, std::ptrdiff_t,
+                                const BindingInfo*, const BindingInfo&> {
   public:
   enum class ORIGIN : uint8_t {
     NONE = 0,
@@ -52,20 +48,17 @@ class LIEF_API BindingInfoIterator :
   BindingInfoIterator(const DyldInfo& dyld_info, size_t pos) :
     pos_(pos),
     origin_(ORIGIN::DYLD),
-    dyld_info_(&dyld_info)
-  {}
+    dyld_info_(&dyld_info) {}

   BindingInfoIterator(const DyldChainedFixups& fixups, size_t pos) :
     pos_(pos),
     origin_(ORIGIN::CHAINED_FIXUPS),
-    chained_fixups_(&fixups)
-  {}
+    chained_fixups_(&fixups) {}

   BindingInfoIterator(const Binary& binary, size_t pos) :
     pos_(pos),
     origin_(ORIGIN::INDIRECT),
-    binary_(&binary)
-  {}
+    binary_(&binary) {}

   bool operator<(const BindingInfoIterator& rhs) const {
     return pos_ < rhs.pos_;
@@ -85,7 +78,8 @@ class LIEF_API BindingInfoIterator :
     return *this;
   }

-  friend bool operator==(const BindingInfoIterator& LHS, const BindingInfoIterator& RHS) {
+  friend bool operator==(const BindingInfoIterator& LHS,
+                         const BindingInfoIterator& RHS) {
     return LHS.pos_ == RHS.pos_;
   }

@@ -100,10 +94,8 @@ class LIEF_API BindingInfoIterator :
     const DyldChainedFixups* chained_fixups_;
     const Binary* binary_;
   };
-
 };

 }
 }
 #endif
-
diff --git a/deps/LIEF/include/LIEF/MachO/BuildToolVersion.hpp b/deps/LIEF/include/LIEF/MachO/BuildToolVersion.hpp
index 07b2119ab4b..a629da1776a 100644
--- a/deps/LIEF/include/LIEF/MachO/BuildToolVersion.hpp
+++ b/deps/LIEF/include/LIEF/MachO/BuildToolVersion.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -39,17 +39,17 @@ class LIEF_API BuildToolVersion : public Object {
   public:
   enum class TOOLS {
     UNKNOWN = 0,
-    CLANG   = 1,
-    SWIFT   = 2,
-    LD      = 3,
-    LLD     = 4,
+    CLANG = 1,
+    SWIFT = 2,
+    LD = 3,
+    LLD = 4,

-    METAL           = 1024,
-    AIRLLD          = 1025,
-    AIRNT           = 1026,
-    AIRNT_PLUGIN    = 1027,
-    AIRPACK         = 1028,
-    GPUARCHIVER     = 1031,
+    METAL = 1024,
+    AIRLLD = 1025,
+    AIRNT = 1026,
+    AIRNT_PLUGIN = 1027,
+    AIRPACK = 1028,
+    GPUARCHIVER = 1031,
     METAL_FRAMEWORK = 1032,
   };

@@ -71,8 +71,8 @@ class LIEF_API BuildToolVersion : public Object {

   void accept(Visitor& visitor) const override;

-  LIEF_API friend
-  std::ostream& operator<<(std::ostream& os, const BuildToolVersion& tool);
+  LIEF_API friend std::ostream& operator<<(std::ostream& os,
+                                           const BuildToolVersion& tool);

   private:
   TOOLS tool_ = TOOLS::UNKNOWN;
diff --git a/deps/LIEF/include/LIEF/MachO/BuildVersion.hpp b/deps/LIEF/include/LIEF/MachO/BuildVersion.hpp
index 2a774dd22d2..bd1627f19ff 100644
--- a/deps/LIEF/include/LIEF/MachO/BuildVersion.hpp
+++ b/deps/LIEF/include/LIEF/MachO/BuildVersion.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -42,42 +42,40 @@ class LIEF_API BuildVersion : public LoadCommand {

   public:
   enum class PLATFORMS : uint32_t {
-    UNKNOWN               = 0,
-    MACOS                 = 1,
-    IOS                   = 2,
-    TVOS                  = 3,
-    WATCHOS               = 4,
-    BRIDGEOS              = 5,
-    MAC_CATALYST          = 6,
-    IOS_SIMULATOR         = 7,
-    TVOS_SIMULATOR        = 8,
-    WATCHOS_SIMULATOR     = 9,
-    DRIVERKIT             = 10,
-    VISIONOS              = 11,
-    VISIONOS_SIMULATOR    = 12,
-    FIRMWARE              = 13,
-    SEPOS                 = 14,
-    MACOS_EXCLAVE_CORE    = 15,
-    MACOS_EXCLAVE_KIT     = 16,
-    IOS_EXCLAVE_CORE      = 17,
-    IOS_EXCLAVE_KIT       = 18,
-    TVOS_EXCLAVE_CORE     = 19,
-    TVOS_EXCLAVE_KIT      = 20,
-    WATCHOS_EXCLAVE_CORE  = 21,
-    WATCHOS_EXCLAVE_KIT   = 22,
+    UNKNOWN = 0,
+    MACOS = 1,
+    IOS = 2,
+    TVOS = 3,
+    WATCHOS = 4,
+    BRIDGEOS = 5,
+    MAC_CATALYST = 6,
+    IOS_SIMULATOR = 7,
+    TVOS_SIMULATOR = 8,
+    WATCHOS_SIMULATOR = 9,
+    DRIVERKIT = 10,
+    VISIONOS = 11,
+    VISIONOS_SIMULATOR = 12,
+    FIRMWARE = 13,
+    SEPOS = 14,
+    MACOS_EXCLAVE_CORE = 15,
+    MACOS_EXCLAVE_KIT = 16,
+    IOS_EXCLAVE_CORE = 17,
+    IOS_EXCLAVE_KIT = 18,
+    TVOS_EXCLAVE_CORE = 19,
+    TVOS_EXCLAVE_KIT = 20,
+    WATCHOS_EXCLAVE_CORE = 21,
+    WATCHOS_EXCLAVE_KIT = 22,
     VISIONOS_EXCLAVE_CORE = 23,
-    VISIONOS_EXCLAVE_KIT  = 24,
+    VISIONOS_EXCLAVE_KIT = 24,

-    ANY                = 0xFFFFFFFF
+    ANY = 0xFFFFFFFF,
   };

   public:
   BuildVersion() = default;
   BuildVersion(const details::build_version_command& version_cmd);
-  BuildVersion(const PLATFORMS platform,
-               const version_t &minos,
-               const version_t &sdk,
-               const tools_list_t &tools);
+  BuildVersion(const PLATFORMS platform, const version_t& minos,
+               const version_t& sdk, const tools_list_t& tools);

   BuildVersion& operator=(const BuildVersion& copy) = default;
   BuildVersion(const BuildVersion& copy) = default;
diff --git a/deps/LIEF/include/LIEF/MachO/Builder.hpp b/deps/LIEF/include/LIEF/MachO/Builder.hpp
index a470c12c888..1edd1f403fa 100644
--- a/deps/LIEF/include/LIEF/MachO/Builder.hpp
+++ b/deps/LIEF/include/LIEF/MachO/Builder.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -44,6 +44,7 @@ class FatBinary;
 class FunctionStarts;
 class FunctionVariants;
 class FunctionVariantFixups;
+class LazyLoadDylibInfo;
 class LinkerOptHint;
 class LoadCommand;
 class MainCommand;
@@ -70,27 +71,41 @@ class LIEF_API Builder {
   Builder() = delete;

   static ok_error_t write(Binary& binary, const std::string& filename);
-  static ok_error_t write(Binary& binary, const std::string& filename, config_t config);
+  static ok_error_t write(Binary& binary, const std::string& filename,
+                          config_t config);

   static ok_error_t write(Binary& binary, std::vector<uint8_t>& out);
-  static ok_error_t write(Binary& binary, std::vector<uint8_t>& out, config_t config);
+  static ok_error_t write(Binary& binary, std::vector<uint8_t>& out,
+                          config_t config);

   static ok_error_t write(Binary& binary, std::ostream& out);
   static ok_error_t write(Binary& binary, std::ostream& out, config_t config);

   static ok_error_t write(FatBinary& fat, const std::string& filename);
-  static ok_error_t write(FatBinary& fat, const std::string& filename, config_t config);
+  static ok_error_t write(FatBinary& fat, const std::string& filename,
+                          config_t config);

   static ok_error_t write(FatBinary& fat, std::vector<uint8_t>& out);
-  static ok_error_t write(FatBinary& fat, std::vector<uint8_t>& out, config_t config);
+  static ok_error_t write(FatBinary& fat, std::vector<uint8_t>& out,
+                          config_t config);

   static ok_error_t write(FatBinary& fat, std::ostream& out);
   static ok_error_t write(FatBinary& fat, std::ostream& out, config_t config);

   ~Builder();
+
   private:
   LIEF_LOCAL ok_error_t build();

+  LIEF_LOCAL bool should_swap() const;
+
+  template<class T>
+  LIEF_LOCAL void swap_endian_if_needed(T& s) const {
+    if (should_swap()) {
+      LIEF::swap_endian(&s);
+    }
+  }
+
   LIEF_LOCAL const std::vector<uint8_t>& get_build();
   LIEF_LOCAL ok_error_t write(const std::string& filename) const;
   LIEF_LOCAL ok_error_t write(std::ostream& os) const;
@@ -98,8 +113,10 @@ class LIEF_API Builder {
   LIEF_LOCAL Builder(Binary& binary, config_t config);
   LIEF_LOCAL Builder(std::vector<Binary*> binaries, config_t config);

-  LIEF_LOCAL static std::vector<uint8_t> build_raw(Binary& binary, config_t config);
-  LIEF_LOCAL static std::vector<uint8_t> build_raw(FatBinary& binary, config_t config);
+  LIEF_LOCAL static std::vector<uint8_t> build_raw(Binary& binary,
+                                                   config_t config);
+  LIEF_LOCAL static std::vector<uint8_t> build_raw(FatBinary& binary,
+                                                   config_t config);

   template<class T>
   LIEF_LOCAL static size_t get_cmd_size(const LoadCommand& cmd);
@@ -201,18 +218,21 @@ class LIEF_API Builder {
   template<class T>
   LIEF_LOCAL ok_error_t build(FunctionVariantFixups& func);

-  template <typename T>
+  template<class T>
+  LIEF_LOCAL ok_error_t build(LazyLoadDylibInfo& cmd);
+
+  template<typename T>
   LIEF_LOCAL ok_error_t build_segments();

   template<class T>
   LIEF_LOCAL ok_error_t build(BuildVersion& bv);

-  template <typename T>
+  template<typename T>
   LIEF_LOCAL ok_error_t build_symbols();

   LIEF_LOCAL ok_error_t build_uuid();

-  template <typename T>
+  template<typename T>
   LIEF_LOCAL ok_error_t update_fixups(DyldChainedFixups& fixups);

   std::vector<Binary*> binaries_;
diff --git a/deps/LIEF/include/LIEF/MachO/ChainedBindingInfo.hpp b/deps/LIEF/include/LIEF/MachO/ChainedBindingInfo.hpp
index 4ece4607d35..5177ac45ac7 100644
--- a/deps/LIEF/include/LIEF/MachO/ChainedBindingInfo.hpp
+++ b/deps/LIEF/include/LIEF/MachO/ChainedBindingInfo.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -44,7 +44,7 @@ struct dyld_chained_ptr_32_bind;
 /// This class does not represent a structure that exists in the Mach-O format
 /// specifications but it provides a *view* on an entry.
 ///
-/// @see: BindingInfo
+/// @see BindingInfo
 class LIEF_API ChainedBindingInfo : public BindingInfo {

   friend class BinaryParser;
@@ -56,14 +56,12 @@ class LIEF_API ChainedBindingInfo : public BindingInfo {
   ChainedBindingInfo() = delete;
   explicit ChainedBindingInfo(DYLD_CHAINED_FORMAT fmt, bool is_weak);

-  ChainedBindingInfo& operator=(ChainedBindingInfo other);
+  ChainedBindingInfo& operator=(const ChainedBindingInfo& other);
   ChainedBindingInfo(const ChainedBindingInfo& other);

   ChainedBindingInfo(ChainedBindingInfo&&) noexcept;
   ChainedBindingInfo& operator=(ChainedBindingInfo&&) noexcept;

-  void swap(ChainedBindingInfo& other) noexcept;
-
   /// Format of the imports
   DYLD_CHAINED_FORMAT format() const {
     return format_;
@@ -105,8 +103,8 @@ class LIEF_API ChainedBindingInfo : public BindingInfo {

   void accept(Visitor& visitor) const override;

-  LIEF_API friend
-  std::ostream& operator<<(std::ostream& os, const ChainedBindingInfo& info) {
+  LIEF_API friend std::ostream& operator<<(std::ostream& os,
+                                           const ChainedBindingInfo& info) {
     os << static_cast<const BindingInfo&>(info);
     return os;
   }
@@ -140,12 +138,12 @@ class LIEF_API ChainedBindingInfo : public BindingInfo {
   BIND_TYPES btypes_ = BIND_TYPES::UNKNOWN;

   union {
-    details::dyld_chained_ptr_arm64e_bind*        arm64_bind_ = nullptr;
-    details::dyld_chained_ptr_arm64e_auth_bind*   arm64_auth_bind_;
-    details::dyld_chained_ptr_arm64e_bind24*      arm64_bind24_;
+    details::dyld_chained_ptr_arm64e_bind* arm64_bind_ = nullptr;
+    details::dyld_chained_ptr_arm64e_auth_bind* arm64_auth_bind_;
+    details::dyld_chained_ptr_arm64e_bind24* arm64_bind24_;
     details::dyld_chained_ptr_arm64e_auth_bind24* arm64_auth_bind24_;
-    details::dyld_chained_ptr_64_bind*            p64_bind_;
-    details::dyld_chained_ptr_32_bind*            p32_bind_;
+    details::dyld_chained_ptr_64_bind* p64_bind_;
+    details::dyld_chained_ptr_32_bind* p32_bind_;
   };
 };

diff --git a/deps/LIEF/include/LIEF/MachO/ChainedPointerAnalysis.hpp b/deps/LIEF/include/LIEF/MachO/ChainedPointerAnalysis.hpp
index ffb688afa1f..8f5b76311f3 100644
--- a/deps/LIEF/include/LIEF/MachO/ChainedPointerAnalysis.hpp
+++ b/deps/LIEF/include/LIEF/MachO/ChainedPointerAnalysis.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -30,16 +30,18 @@ namespace MachO {
 class LIEF_API ChainedPointerAnalysis {
   public:
   // DYLD_CHAINED_PTR_FORMAT::PTR_ARM64E
-  struct dyld_chained_ptr_arm64e_rebase_t
-  {
+  struct dyld_chained_ptr_arm64e_rebase_t {
+    // clang-format off
     uint64_t  target : 43,
               high8  :  8,
               next   : 11,
               bind   :  1,
               auth   :  1;
+    // clang-format on

-    friend LIEF_API
-      std::ostream& operator<<(std::ostream& os, const dyld_chained_ptr_arm64e_rebase_t& chain);
+    friend LIEF_API std::ostream&
+        operator<<(std::ostream& os,
+                   const dyld_chained_ptr_arm64e_rebase_t& chain);

     uint64_t unpack_target() const {
       return uint64_t(high8) | target;
@@ -47,22 +49,23 @@ class LIEF_API ChainedPointerAnalysis {
   };

   // DYLD_CHAINED_PTR_FORMAT::PTR_ARM64E
-  struct dyld_chained_ptr_arm64e_bind_t
-  {
+  struct dyld_chained_ptr_arm64e_bind_t {
+    // clang-format off
     uint64_t  ordinal : 16,
               zero    : 16,
               addend  : 19,
               next    : 11,
               bind    :  1,
               auth    :  1;
+    // clang-format on

-    friend LIEF_API
-      std::ostream& operator<<(std::ostream& os, const dyld_chained_ptr_arm64e_bind_t& chain);
+    friend LIEF_API std::ostream&
+        operator<<(std::ostream& os, const dyld_chained_ptr_arm64e_bind_t& chain);
   };

   // DYLD_CHAINED_PTR_FORMAT::PTR_ARM64E
-  struct dyld_chained_ptr_arm64e_auth_rebase_t
-  {
+  struct dyld_chained_ptr_arm64e_auth_rebase_t {
+    // clang-format off
     uint64_t  target    : 32,
               diversity : 16,
               addr_div  :  1,
@@ -70,14 +73,16 @@ class LIEF_API ChainedPointerAnalysis {
               next      : 11,
               bind      :  1,
               auth      :  1;
+    // clang-format on

-    friend LIEF_API
-      std::ostream& operator<<(std::ostream& os, const dyld_chained_ptr_arm64e_auth_rebase_t& chain);
+    friend LIEF_API std::ostream&
+        operator<<(std::ostream& os,
+                   const dyld_chained_ptr_arm64e_auth_rebase_t& chain);
   };

   // DYLD_CHAINED_PTR_FORMAT::PTR_ARM64E
-  struct dyld_chained_ptr_arm64e_auth_bind_t
-  {
+  struct dyld_chained_ptr_arm64e_auth_bind_t {
+    // clang-format off
     uint64_t  ordinal   : 16,
               zero      : 16,
               diversity : 16,
@@ -86,22 +91,25 @@ class LIEF_API ChainedPointerAnalysis {
               next      : 11,
               bind      :  1,
               auth      :  1;
+    // clang-format on

-    friend LIEF_API
-      std::ostream& operator<<(std::ostream& os, const dyld_chained_ptr_arm64e_auth_bind_t& chain);
+    friend LIEF_API std::ostream&
+        operator<<(std::ostream& os,
+                   const dyld_chained_ptr_arm64e_auth_bind_t& chain);
   };

   // DYLD_CHAINED_PTR_FORMAT::PTR_64 & DYLD_CHAINED_PTR_FORMAT::PTR_64_OFFSET
-  struct dyld_chained_ptr_64_rebase_t
-  {
+  struct dyld_chained_ptr_64_rebase_t {
+    // clang-format off
     uint64_t  target    : 36,
               high8     :  8,
               reserved  :  7,
               next      : 12,
               bind      :  1;
+    // clang-format on

-    friend LIEF_API
-      std::ostream& operator<<(std::ostream& os, const dyld_chained_ptr_64_rebase_t& chain);
+    friend LIEF_API std::ostream&
+        operator<<(std::ostream& os, const dyld_chained_ptr_64_rebase_t& chain);

     uint64_t unpack_target() const {
       return uint64_t(high8) | target;
@@ -109,22 +117,24 @@ class LIEF_API ChainedPointerAnalysis {
   };

   // DYLD_CHAINED_PTR_FORMAT::PTR_ARM64E_USERLAND24
-  struct dyld_chained_ptr_arm64e_bind24_t
-  {
+  struct dyld_chained_ptr_arm64e_bind24_t {
+    // clang-format off
     uint64_t    ordinal : 24,
                 zero    :  8,
                 addend  : 19,
                 next    : 11,
                 bind    :  1,
                 auth    :  1;
+    // clang-format on

-    friend LIEF_API
-      std::ostream& operator<<(std::ostream& os, const dyld_chained_ptr_arm64e_bind24_t& chain);
+    friend LIEF_API std::ostream&
+        operator<<(std::ostream& os,
+                   const dyld_chained_ptr_arm64e_bind24_t& chain);
   };

   // DYLD_CHAINED_PTR_FORMAT::PTR_ARM64E_USERLAND24
-  struct dyld_chained_ptr_arm64e_auth_bind24_t
-  {
+  struct dyld_chained_ptr_arm64e_auth_bind24_t {
+    // clang-format off
     uint64_t  ordinal   : 24,
               zero      :  8,
               diversity : 16,
@@ -133,27 +143,30 @@ class LIEF_API ChainedPointerAnalysis {
               next      : 11,
               bind      :  1,
               auth      :  1;
+    // clang-format on

-    friend LIEF_API
-      std::ostream& operator<<(std::ostream& os, const dyld_chained_ptr_arm64e_auth_bind24_t& chain);
+    friend LIEF_API std::ostream&
+        operator<<(std::ostream& os,
+                   const dyld_chained_ptr_arm64e_auth_bind24_t& chain);
   };

   // DYLD_CHAINED_PTR_FORMAT::PTR_64
-  struct dyld_chained_ptr_64_bind_t
-  {
+  struct dyld_chained_ptr_64_bind_t {
+    // clang-format off
     uint64_t  ordinal   : 24,
               addend    :  8,
               reserved  : 19,
               next      : 12,
               bind      :  1;
+    // clang-format on

-    friend LIEF_API
-      std::ostream& operator<<(std::ostream& os, const dyld_chained_ptr_64_bind_t& chain);
+    friend LIEF_API std::ostream&
+        operator<<(std::ostream& os, const dyld_chained_ptr_64_bind_t& chain);
   };

   // DYLD_CHAINED_PTR_FORMAT::PTR_64_KERNEL_CACHE
-  struct dyld_chained_ptr_64_kernel_cache_rebase_t
-  {
+  struct dyld_chained_ptr_64_kernel_cache_rebase_t {
+    // clang-format off
     uint64_t  target      : 30,
               cache_level :  2,
               diversity   : 16,
@@ -161,70 +174,80 @@ class LIEF_API ChainedPointerAnalysis {
               key         :  2,
               next        : 12,
               is_auth     :  1;
+    // clang-format on

-    friend LIEF_API
-      std::ostream& operator<<(std::ostream& os, const dyld_chained_ptr_64_kernel_cache_rebase_t& chain);
+    friend LIEF_API std::ostream&
+        operator<<(std::ostream& os,
+                   const dyld_chained_ptr_64_kernel_cache_rebase_t& chain);
   };

   // DYLD_CHAINED_PTR_FORMAT::PTR_32
-  struct dyld_chained_ptr_32_rebase_t
-  {
+  struct dyld_chained_ptr_32_rebase_t {
+    // clang-format off
     uint32_t  target : 26,
               next   :  5,
               bind   :  1;
+    // clang-format on

-    friend LIEF_API
-      std::ostream& operator<<(std::ostream& os, const dyld_chained_ptr_32_rebase_t& chain);
+    friend LIEF_API std::ostream&
+        operator<<(std::ostream& os, const dyld_chained_ptr_32_rebase_t& chain);
   };

   // DYLD_CHAINED_PTR_FORMAT::PTR_32
-  struct dyld_chained_ptr_32_bind_t
-  {
+  struct dyld_chained_ptr_32_bind_t {
+    // clang-format off
     uint32_t  ordinal : 20,
               addend  :  6,
               next    :  5,
               bind    :  1;
+    // clang-format on

-    friend LIEF_API
-      std::ostream& operator<<(std::ostream& os, const dyld_chained_ptr_32_bind_t& chain);
+    friend LIEF_API std::ostream&
+        operator<<(std::ostream& os, const dyld_chained_ptr_32_bind_t& chain);
   };

   // DYLD_CHAINED_PTR_FORMAT::PTR_32_CACHE
-  struct dyld_chained_ptr_32_cache_rebase_t
-  {
+  struct dyld_chained_ptr_32_cache_rebase_t {
+    // clang-format off
     uint32_t  target : 30,
               next   :  2;
+    // clang-format on

-    friend LIEF_API
-      std::ostream& operator<<(std::ostream& os, const dyld_chained_ptr_32_cache_rebase_t& chain);
+    friend LIEF_API std::ostream&
+        operator<<(std::ostream& os,
+                   const dyld_chained_ptr_32_cache_rebase_t& chain);
   };

   // DYLD_CHAINED_PTR_FORMAT::PTR_32_FIRMWARE
-  struct dyld_chained_ptr_32_firmware_rebase_t
-  {
+  struct dyld_chained_ptr_32_firmware_rebase_t {
+    // clang-format off
     uint32_t  target : 26,
               next   :  6;
+    // clang-format on

-    friend LIEF_API
-      std::ostream& operator<<(std::ostream& os, const dyld_chained_ptr_32_firmware_rebase_t& chain);
+    friend LIEF_API std::ostream&
+        operator<<(std::ostream& os,
+                   const dyld_chained_ptr_32_firmware_rebase_t& chain);
   };

   // DYLD_CHAINED_PTR_ARM64E_SEGMENTED
-  struct dyld_chained_ptr_arm64e_segmented_rebase_t
-  {
+  struct dyld_chained_ptr_arm64e_segmented_rebase_t {
+    // clang-format off
     uint32_t    target_seg_offset : 28,
                 target_seg_index  :  4;
     uint32_t    padding           : 19,
                 next              : 12,
                 auth              :  1;
+    // clang-format on

-    friend LIEF_API
-      std::ostream& operator<<(std::ostream& os, const dyld_chained_ptr_arm64e_segmented_rebase_t& chain);
+    friend LIEF_API std::ostream&
+        operator<<(std::ostream& os,
+                   const dyld_chained_ptr_arm64e_segmented_rebase_t& chain);
   };

   // DYLD_CHAINED_PTR_ARM64E_SEGMENTED
-  struct dyld_chained_ptr_arm64e_auth_segmented_rebase_t
-  {
+  struct dyld_chained_ptr_arm64e_auth_segmented_rebase_t {
+    // clang-format off
       uint32_t    target_seg_offset : 28,
                   target_seg_index  :  4;
       uint32_t    diversity         : 16,
@@ -232,8 +255,11 @@ class LIEF_API ChainedPointerAnalysis {
                   key               :  2,
                   next              : 12,
                   auth              :  1;
-    friend LIEF_API
-      std::ostream& operator<<(std::ostream& os, const dyld_chained_ptr_arm64e_auth_segmented_rebase_t& chain);
+    // clang-format on
+
+    friend LIEF_API std::ostream&
+        operator<<(std::ostream& os,
+                   const dyld_chained_ptr_arm64e_auth_segmented_rebase_t& chain);
   };


@@ -257,68 +283,60 @@ class LIEF_API ChainedPointerAnalysis {
   };

   static std::unique_ptr<ChainedPointerAnalysis> from_value(uint64_t value,
-                                                            size_t size)
-  {
+                                                            size_t size) {
     return std::unique_ptr<ChainedPointerAnalysis>(
-        new ChainedPointerAnalysis(value, size));
+        new ChainedPointerAnalysis(value, size)
+    );
   }

   static size_t stride(DYLD_CHAINED_PTR_FORMAT fmt) {
     switch (fmt) {
-        case DYLD_CHAINED_PTR_FORMAT::NONE:
-          return 0;
-        case DYLD_CHAINED_PTR_FORMAT::PTR_ARM64E:
-        case DYLD_CHAINED_PTR_FORMAT::PTR_ARM64E_USERLAND:
-        case DYLD_CHAINED_PTR_FORMAT::PTR_ARM64E_USERLAND24:
-        case DYLD_CHAINED_PTR_FORMAT::PTR_ARM64E_SHARED_CACHE:
-          return 8;
-
-        case DYLD_CHAINED_PTR_FORMAT::PTR_ARM64E_KERNEL:
-        case DYLD_CHAINED_PTR_FORMAT::PTR_ARM64E_FIRMWARE:
-        case DYLD_CHAINED_PTR_FORMAT::PTR_32_FIRMWARE:
-        case DYLD_CHAINED_PTR_FORMAT::PTR_64:
-        case DYLD_CHAINED_PTR_FORMAT::PTR_64_OFFSET:
-        case DYLD_CHAINED_PTR_FORMAT::PTR_32:
-        case DYLD_CHAINED_PTR_FORMAT::PTR_32_CACHE:
-        case DYLD_CHAINED_PTR_FORMAT::PTR_64_KERNEL_CACHE:
-        case DYLD_CHAINED_PTR_FORMAT::PTR_ARM64E_SEGMENTED:
-            return 4;
-
-        case DYLD_CHAINED_PTR_FORMAT::PTR_X86_64_KERNEL_CACHE:
-            return 1;
+      case DYLD_CHAINED_PTR_FORMAT::NONE: return 0;
+      case DYLD_CHAINED_PTR_FORMAT::PTR_ARM64E:
+      case DYLD_CHAINED_PTR_FORMAT::PTR_ARM64E_USERLAND:
+      case DYLD_CHAINED_PTR_FORMAT::PTR_ARM64E_USERLAND24:
+      case DYLD_CHAINED_PTR_FORMAT::PTR_ARM64E_SHARED_CACHE: return 8;
+
+      case DYLD_CHAINED_PTR_FORMAT::PTR_ARM64E_KERNEL:
+      case DYLD_CHAINED_PTR_FORMAT::PTR_ARM64E_FIRMWARE:
+      case DYLD_CHAINED_PTR_FORMAT::PTR_32_FIRMWARE:
+      case DYLD_CHAINED_PTR_FORMAT::PTR_64:
+      case DYLD_CHAINED_PTR_FORMAT::PTR_64_OFFSET:
+      case DYLD_CHAINED_PTR_FORMAT::PTR_32:
+      case DYLD_CHAINED_PTR_FORMAT::PTR_32_CACHE:
+      case DYLD_CHAINED_PTR_FORMAT::PTR_64_KERNEL_CACHE:
+      case DYLD_CHAINED_PTR_FORMAT::PTR_ARM64E_SEGMENTED: return 4;
+
+      case DYLD_CHAINED_PTR_FORMAT::PTR_X86_64_KERNEL_CACHE: return 1;
     }
     return 0;
   }

   static size_t ptr_size(DYLD_CHAINED_PTR_FORMAT fmt) {
     switch (fmt) {
-        case DYLD_CHAINED_PTR_FORMAT::NONE:
-          return 0;
-        case DYLD_CHAINED_PTR_FORMAT::PTR_ARM64E:
-        case DYLD_CHAINED_PTR_FORMAT::PTR_ARM64E_USERLAND:
-        case DYLD_CHAINED_PTR_FORMAT::PTR_ARM64E_USERLAND24:
-        case DYLD_CHAINED_PTR_FORMAT::PTR_ARM64E_KERNEL:
-        case DYLD_CHAINED_PTR_FORMAT::PTR_ARM64E_FIRMWARE:
-        case DYLD_CHAINED_PTR_FORMAT::PTR_64:
-        case DYLD_CHAINED_PTR_FORMAT::PTR_64_OFFSET:
-        case DYLD_CHAINED_PTR_FORMAT::PTR_64_KERNEL_CACHE:
-        case DYLD_CHAINED_PTR_FORMAT::PTR_X86_64_KERNEL_CACHE:
-        case DYLD_CHAINED_PTR_FORMAT::PTR_ARM64E_SHARED_CACHE:
-        case DYLD_CHAINED_PTR_FORMAT::PTR_ARM64E_SEGMENTED:
-          return sizeof(uint64_t);
-
-        case DYLD_CHAINED_PTR_FORMAT::PTR_32_FIRMWARE:
-        case DYLD_CHAINED_PTR_FORMAT::PTR_32:
-        case DYLD_CHAINED_PTR_FORMAT::PTR_32_CACHE:
-          return sizeof(uint32_t);
+      case DYLD_CHAINED_PTR_FORMAT::NONE: return 0;
+      case DYLD_CHAINED_PTR_FORMAT::PTR_ARM64E:
+      case DYLD_CHAINED_PTR_FORMAT::PTR_ARM64E_USERLAND:
+      case DYLD_CHAINED_PTR_FORMAT::PTR_ARM64E_USERLAND24:
+      case DYLD_CHAINED_PTR_FORMAT::PTR_ARM64E_KERNEL:
+      case DYLD_CHAINED_PTR_FORMAT::PTR_ARM64E_FIRMWARE:
+      case DYLD_CHAINED_PTR_FORMAT::PTR_64:
+      case DYLD_CHAINED_PTR_FORMAT::PTR_64_OFFSET:
+      case DYLD_CHAINED_PTR_FORMAT::PTR_64_KERNEL_CACHE:
+      case DYLD_CHAINED_PTR_FORMAT::PTR_X86_64_KERNEL_CACHE:
+      case DYLD_CHAINED_PTR_FORMAT::PTR_ARM64E_SHARED_CACHE:
+      case DYLD_CHAINED_PTR_FORMAT::PTR_ARM64E_SEGMENTED: return sizeof(uint64_t);
+
+      case DYLD_CHAINED_PTR_FORMAT::PTR_32_FIRMWARE:
+      case DYLD_CHAINED_PTR_FORMAT::PTR_32:
+      case DYLD_CHAINED_PTR_FORMAT::PTR_32_CACHE: return sizeof(uint32_t);
     }
     return 0;
   }

   ChainedPointerAnalysis(uint64_t value, size_t size) :
     value_(value),
-    size_(size)
-  {}
+    size_(size) {}

   ChainedPointerAnalysis(const ChainedPointerAnalysis&) = default;
   ChainedPointerAnalysis& operator=(const ChainedPointerAnalysis&) = default;
@@ -337,91 +355,99 @@ class LIEF_API ChainedPointerAnalysis {
   }

   const dyld_chained_ptr_arm64e_rebase_t dyld_chained_ptr_arm64e_rebase() const {
-    dyld_chained_ptr_arm64e_rebase_t result;
+    dyld_chained_ptr_arm64e_rebase_t result{};
     std::memcpy(&result, &value_, sizeof(result));
     return result;
   }

   const dyld_chained_ptr_arm64e_bind_t dyld_chained_ptr_arm64e_bind() const {
-    dyld_chained_ptr_arm64e_bind_t result;
+    dyld_chained_ptr_arm64e_bind_t result{};
     std::memcpy(&result, &value_, sizeof(result));
     return result;
   }

-  const dyld_chained_ptr_arm64e_auth_rebase_t dyld_chained_ptr_arm64e_auth_rebase() const {
-    dyld_chained_ptr_arm64e_auth_rebase_t result;
+  const dyld_chained_ptr_arm64e_auth_rebase_t
+      dyld_chained_ptr_arm64e_auth_rebase() const {
+    dyld_chained_ptr_arm64e_auth_rebase_t result{};
     std::memcpy(&result, &value_, sizeof(result));
     return result;
   }

-  const dyld_chained_ptr_arm64e_auth_bind_t dyld_chained_ptr_arm64e_auth_bind() const {
-    dyld_chained_ptr_arm64e_auth_bind_t result;
+  const dyld_chained_ptr_arm64e_auth_bind_t
+      dyld_chained_ptr_arm64e_auth_bind() const {
+    dyld_chained_ptr_arm64e_auth_bind_t result{};
     std::memcpy(&result, &value_, sizeof(result));
     return result;
   }

   const dyld_chained_ptr_64_rebase_t dyld_chained_ptr_64_rebase() const {
-    dyld_chained_ptr_64_rebase_t result;
+    dyld_chained_ptr_64_rebase_t result{};
     std::memcpy(&result, &value_, sizeof(result));
     return result;
   }

   const dyld_chained_ptr_arm64e_bind24_t dyld_chained_ptr_arm64e_bind24() const {
-    dyld_chained_ptr_arm64e_bind24_t result;
+    dyld_chained_ptr_arm64e_bind24_t result{};
     std::memcpy(&result, &value_, sizeof(result));
     return result;
   }

-  const dyld_chained_ptr_arm64e_auth_bind24_t dyld_chained_ptr_arm64e_auth_bind24() const {
-    dyld_chained_ptr_arm64e_auth_bind24_t result;
+  const dyld_chained_ptr_arm64e_auth_bind24_t
+      dyld_chained_ptr_arm64e_auth_bind24() const {
+    dyld_chained_ptr_arm64e_auth_bind24_t result{};
     std::memcpy(&result, &value_, sizeof(result));
     return result;
   }

   const dyld_chained_ptr_64_bind_t dyld_chained_ptr_64_bind() const {
-    dyld_chained_ptr_64_bind_t result;
+    dyld_chained_ptr_64_bind_t result{};
     std::memcpy(&result, &value_, sizeof(result));
     return result;
   }

-  const dyld_chained_ptr_64_kernel_cache_rebase_t dyld_chained_ptr_64_kernel_cache_rebase() const {
-    dyld_chained_ptr_64_kernel_cache_rebase_t result;
+  const dyld_chained_ptr_64_kernel_cache_rebase_t
+      dyld_chained_ptr_64_kernel_cache_rebase() const {
+    dyld_chained_ptr_64_kernel_cache_rebase_t result{};
     std::memcpy(&result, &value_, sizeof(result));
     return result;
   }

   const dyld_chained_ptr_32_rebase_t dyld_chained_ptr_32_rebase() const {
-    dyld_chained_ptr_32_rebase_t result;
+    dyld_chained_ptr_32_rebase_t result{};
     std::memcpy(&result, &value_, sizeof(result));
     return result;
   }

   const dyld_chained_ptr_32_bind_t dyld_chained_ptr_32_bind() const {
-    dyld_chained_ptr_32_bind_t result;
+    dyld_chained_ptr_32_bind_t result{};
     std::memcpy(&result, &value_, sizeof(result));
     return result;
   }

-  const dyld_chained_ptr_32_cache_rebase_t dyld_chained_ptr_32_cache_rebase() const {
-    dyld_chained_ptr_32_cache_rebase_t result;
+  const dyld_chained_ptr_32_cache_rebase_t
+      dyld_chained_ptr_32_cache_rebase() const {
+    dyld_chained_ptr_32_cache_rebase_t result{};
     std::memcpy(&result, &value_, sizeof(result));
     return result;
   }

-  const dyld_chained_ptr_32_firmware_rebase_t dyld_chained_ptr_32_firmware_rebase() const {
-    dyld_chained_ptr_32_firmware_rebase_t result;
+  const dyld_chained_ptr_32_firmware_rebase_t
+      dyld_chained_ptr_32_firmware_rebase() const {
+    dyld_chained_ptr_32_firmware_rebase_t result{};
     std::memcpy(&result, &value_, sizeof(result));
     return result;
   }

-  const dyld_chained_ptr_arm64e_segmented_rebase_t dyld_chained_ptr_arm64e_segmented_rebase() const {
-    dyld_chained_ptr_arm64e_segmented_rebase_t result;
+  const dyld_chained_ptr_arm64e_segmented_rebase_t
+      dyld_chained_ptr_arm64e_segmented_rebase() const {
+    dyld_chained_ptr_arm64e_segmented_rebase_t result{};
     std::memcpy(&result, &value_, sizeof(result));
     return result;
   }

-  const dyld_chained_ptr_arm64e_auth_segmented_rebase_t dyld_chained_ptr_arm64e_auth_segmented_rebase() const {
-    dyld_chained_ptr_arm64e_auth_segmented_rebase_t result;
+  const dyld_chained_ptr_arm64e_auth_segmented_rebase_t
+      dyld_chained_ptr_arm64e_auth_segmented_rebase() const {
+    dyld_chained_ptr_arm64e_auth_segmented_rebase_t result{};
     std::memcpy(&result, &value_, sizeof(result));
     return result;
   }
@@ -429,7 +455,7 @@ class LIEF_API ChainedPointerAnalysis {
   struct union_pointer_t {
     PTR_TYPE type = PTR_TYPE::UNKNOWN;
     union {
-      dyld_chained_ptr_arm64e_rebase_t arm64e_rebase;
+      dyld_chained_ptr_arm64e_rebase_t arm64e_rebase{};
       dyld_chained_ptr_arm64e_bind_t arm64e_bind;
       dyld_chained_ptr_arm64e_auth_rebase_t arm64e_auth_rebase;
       dyld_chained_ptr_arm64e_auth_bind_t arm64e_auth_bind;
@@ -444,7 +470,8 @@ class LIEF_API ChainedPointerAnalysis {
       dyld_chained_ptr_32_firmware_rebase_t ptr_32_firmware_rebase;

       dyld_chained_ptr_arm64e_segmented_rebase_t ptr_arm64e_segmented_rebase;
-      dyld_chained_ptr_arm64e_auth_segmented_rebase_t ptr_arm64e_auth_segmented_rebase;
+      dyld_chained_ptr_arm64e_auth_segmented_rebase_t
+          ptr_arm64e_auth_segmented_rebase;
       uint64_t raw;
     };
     uint32_t next() const;
@@ -457,17 +484,18 @@ class LIEF_API ChainedPointerAnalysis {
     }
     bool is_auth() const;

-    friend LIEF_API
-      std::ostream& operator<<(std::ostream& os, const union_pointer_t& ptr);
+    friend LIEF_API std::ostream& operator<<(std::ostream& os,
+                                             const union_pointer_t& ptr);
   };

-  static_assert(sizeof(union_pointer_t) == 16);
+  static_assert(sizeof(union_pointer_t) == 16, "Wrong sizeof");

   union_pointer_t get_as(DYLD_CHAINED_PTR_FORMAT fmt) const;

   static uint64_t walk_chain(
       BinaryStream& stream, DYLD_CHAINED_PTR_FORMAT format,
-      const std::function<int(uint64_t, const union_pointer_t& ptr)>& callback);
+      const std::function<int(uint64_t, const union_pointer_t& ptr)>& callback
+  );

   private:
   uint64_t value_ = 0;
diff --git a/deps/LIEF/include/LIEF/MachO/CodeSignature.hpp b/deps/LIEF/include/LIEF/MachO/CodeSignature.hpp
index e8b314daf4b..5d3da4e6d57 100644
--- a/deps/LIEF/include/LIEF/MachO/CodeSignature.hpp
+++ b/deps/LIEF/include/LIEF/MachO/CodeSignature.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -19,6 +19,7 @@
 #include <cstdint>

 #include "LIEF/span.hpp"
+#include "LIEF/compiler_attributes.hpp"
 #include "LIEF/visibility.h"

 #include "LIEF/MachO/LoadCommand.hpp"
@@ -67,11 +68,11 @@ class LIEF_API CodeSignature : public LoadCommand {
     data_size_ = size;
   }

-  span<uint8_t> content() {
+  span<uint8_t> content() LIEF_LIFETIMEBOUND {
     return content_;
   }

-  span<const uint8_t> content() const {
+  span<const uint8_t> content() const LIEF_LIFETIMEBOUND {
     return content_;
   }

@@ -89,7 +90,6 @@ class LIEF_API CodeSignature : public LoadCommand {
   uint32_t data_offset_ = 0;
   uint32_t data_size_ = 0;
   span<uint8_t> content_;
-
 };

 }
diff --git a/deps/LIEF/include/LIEF/MachO/CodeSignatureDir.hpp b/deps/LIEF/include/LIEF/MachO/CodeSignatureDir.hpp
index 77760679343..b18ad20ac6b 100644
--- a/deps/LIEF/include/LIEF/MachO/CodeSignatureDir.hpp
+++ b/deps/LIEF/include/LIEF/MachO/CodeSignatureDir.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -17,6 +17,7 @@
 #define LIEF_MACHO_CODE_SIGNATURE_DIR_COMMAND_H
 #include <ostream>

+#include "LIEF/compiler_attributes.hpp"
 #include "LIEF/visibility.h"
 #include "LIEF/span.hpp"

@@ -67,11 +68,11 @@ class LIEF_API CodeSignatureDir : public LoadCommand {
     data_size_ = size;
   }

-  span<const uint8_t> content() const {
+  span<const uint8_t> content() const LIEF_LIFETIMEBOUND {
     return content_;
   }

-  span<uint8_t> content() {
+  span<uint8_t> content() LIEF_LIFETIMEBOUND {
     return content_;
   }

@@ -86,10 +87,9 @@ class LIEF_API CodeSignatureDir : public LoadCommand {
   }

   private:
-  uint32_t      data_offset_ = 0;
-  uint32_t      data_size_   = 0;
+  uint32_t data_offset_ = 0;
+  uint32_t data_size_ = 0;
   span<uint8_t> content_;
-
 };

 }
diff --git a/deps/LIEF/include/LIEF/MachO/DataCodeEntry.hpp b/deps/LIEF/include/LIEF/MachO/DataCodeEntry.hpp
index a4940b65554..9ce70c555b1 100644
--- a/deps/LIEF/include/LIEF/MachO/DataCodeEntry.hpp
+++ b/deps/LIEF/include/LIEF/MachO/DataCodeEntry.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -33,11 +33,11 @@ struct data_in_code_entry;
 class LIEF_API DataCodeEntry : public LIEF::Object {
   public:
   enum class TYPES {
-    UNKNOWN           = 0,
-    DATA              = 1,
-    JUMP_TABLE_8      = 2,
-    JUMP_TABLE_16     = 3,
-    JUMP_TABLE_32     = 4,
+    UNKNOWN = 0,
+    DATA = 1,
+    JUMP_TABLE_8 = 2,
+    JUMP_TABLE_16 = 3,
+    JUMP_TABLE_32 = 4,
     ABS_JUMP_TABLE_32 = 5,
   };

@@ -46,8 +46,7 @@ class LIEF_API DataCodeEntry : public LIEF::Object {
   DataCodeEntry(uint32_t off, uint16_t length, TYPES type) :
     offset_(off),
     length_(length),
-    type_(type)
-  {}
+    type_(type) {}
   DataCodeEntry(const details::data_in_code_entry& entry);

   DataCodeEntry& operator=(const DataCodeEntry&) = default;
@@ -82,7 +81,8 @@ class LIEF_API DataCodeEntry : public LIEF::Object {

   void accept(Visitor& visitor) const override;

-  LIEF_API friend std::ostream& operator<<(std::ostream& os, const DataCodeEntry& entry);
+  LIEF_API friend std::ostream& operator<<(std::ostream& os,
+                                           const DataCodeEntry& entry);

   private:
   uint32_t offset_ = 0;
diff --git a/deps/LIEF/include/LIEF/MachO/DataInCode.hpp b/deps/LIEF/include/LIEF/MachO/DataInCode.hpp
index d9843371e2e..33616151838 100644
--- a/deps/LIEF/include/LIEF/MachO/DataInCode.hpp
+++ b/deps/LIEF/include/LIEF/MachO/DataInCode.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -18,6 +18,7 @@
 #include <vector>
 #include <ostream>

+#include "LIEF/compiler_attributes.hpp"
 #include "LIEF/visibility.h"
 #include "LIEF/iterators.hpp"
 #include "LIEF/span.hpp"
@@ -35,17 +36,18 @@ struct linkedit_data_command;
 }

 /// Interface of the LC_DATA_IN_CODE command
-/// This command is used to list slices of code sections that contain data. The *slices*
-/// information are stored as an array of DataCodeEntry
+/// This command is used to list slices of code sections that contain data. The
+/// *slices* information are stored as an array of DataCodeEntry
 ///
 /// @see DataCodeEntry
 class LIEF_API DataInCode : public LoadCommand {
   friend class BinaryParser;
   friend class LinkEdit;
+
   public:
-  using entries_t        = std::vector<DataCodeEntry>;
+  using entries_t = std::vector<DataCodeEntry>;
   using it_const_entries = const_ref_iterator<const entries_t&>;
-  using it_entries       = ref_iterator<entries_t&>;
+  using it_entries = ref_iterator<entries_t&>;

   public:
   DataInCode() = default;
@@ -82,19 +84,19 @@ class LIEF_API DataInCode : public LoadCommand {
   }

   /// Iterator over the DataCodeEntry
-  it_const_entries entries() const {
+  it_const_entries entries() const LIEF_LIFETIMEBOUND {
     return entries_;
   }

-  it_entries entries() {
+  it_entries entries() LIEF_LIFETIMEBOUND {
     return entries_;
   }

-  span<uint8_t> content() {
+  span<uint8_t> content() LIEF_LIFETIMEBOUND {
     return content_;
   }

-  span<const uint8_t> content() const {
+  span<const uint8_t> content() const LIEF_LIFETIMEBOUND {
     return content_;
   }

@@ -109,11 +111,10 @@ class LIEF_API DataInCode : public LoadCommand {
   }

   private:
-  uint32_t  data_offset_ = 0;
-  uint32_t  data_size_   = 0;
+  uint32_t data_offset_ = 0;
+  uint32_t data_size_ = 0;
   entries_t entries_;
   span<uint8_t> content_;
-
 };

 }
diff --git a/deps/LIEF/include/LIEF/MachO/DyldBindingInfo.hpp b/deps/LIEF/include/LIEF/MachO/DyldBindingInfo.hpp
index 1d0c3f80f93..9bb76d59fa8 100644
--- a/deps/LIEF/include/LIEF/MachO/DyldBindingInfo.hpp
+++ b/deps/LIEF/include/LIEF/MachO/DyldBindingInfo.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -28,30 +28,30 @@ namespace MachO {
 /// the LC_DYLD_INFO bytecode.
 ///
 /// It does not represent a structure that exists in the Mach-O format
-/// specifications but it provides a *view* on an entry of the Dyld binding opcodes.
+/// specifications but it provides a *view* on an entry of the Dyld binding
+/// opcodes.
 ///
-/// @see: BindingInfo
+/// @see BindingInfo
 class LIEF_API DyldBindingInfo : public BindingInfo {
   friend class BinaryParser;

   public:
-  enum class CLASS: uint64_t  {
-    WEAK     = 1u,
-    LAZY     = 2u,
+  enum class CLASS : uint64_t {
+    WEAK = 1u,
+    LAZY = 2u,
     STANDARD = 3u,
-    THREADED = 100u
+    THREADED = 100u,
   };

-  enum class TYPE: uint64_t  {
-    POINTER         = 1u,
+  enum class TYPE : uint64_t {
+    POINTER = 1u,
     TEXT_ABSOLUTE32 = 2u,
-    TEXT_PCREL32    = 3u
+    TEXT_PCREL32 = 3u,
   };

   public:
   DyldBindingInfo() = default;
-  DyldBindingInfo(CLASS cls, TYPE type,
-                  uint64_t address, int64_t addend = 0,
+  DyldBindingInfo(CLASS cls, TYPE type, uint64_t address, int64_t addend = 0,
                   int32_t oridnal = 0, bool is_weak = false,
                   bool is_non_weak_definition = false, uint64_t offset = 0);

@@ -71,7 +71,7 @@ class LIEF_API DyldBindingInfo : public BindingInfo {
     class_ = bind_class;
   }

-  /// Type of the binding. Most of the times it's TYPE::POINTER
+  /// Type of the binding. Most of the time it's TYPE::POINTER
   TYPE binding_type() const {
     return binding_type_;
   }
@@ -81,11 +81,11 @@ class LIEF_API DyldBindingInfo : public BindingInfo {
   }

   bool is_non_weak_definition() const {
-    return this->is_non_weak_definition_;
+    return is_non_weak_definition_;
   }

   void set_non_weak_definition(bool val) {
-    this->is_non_weak_definition_ = val;
+    is_non_weak_definition_ = val;
   }

   /// Original relative offset of the binding opcodes
@@ -105,8 +105,8 @@ class LIEF_API DyldBindingInfo : public BindingInfo {

   void accept(Visitor& visitor) const override;

-  LIEF_API friend
-  std::ostream& operator<<(std::ostream& os, const DyldBindingInfo& info) {
+  LIEF_API friend std::ostream& operator<<(std::ostream& os,
+                                           const DyldBindingInfo& info) {
     os << static_cast<const BindingInfo&>(info);
     return os;
   }
diff --git a/deps/LIEF/include/LIEF/MachO/DyldChainedFixups.hpp b/deps/LIEF/include/LIEF/MachO/DyldChainedFixups.hpp
index 2259a8ae17d..dde6e34c1ef 100644
--- a/deps/LIEF/include/LIEF/MachO/DyldChainedFixups.hpp
+++ b/deps/LIEF/include/LIEF/MachO/DyldChainedFixups.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -18,6 +18,7 @@
 #include <memory>
 #include "LIEF/span.hpp"
 #include "LIEF/iterators.hpp"
+#include "LIEF/compiler_attributes.hpp"
 #include "LIEF/visibility.h"
 #include "LIEF/MachO/LoadCommand.hpp"
 #include "LIEF/MachO/DyldChainedFormat.hpp"
@@ -58,29 +59,51 @@ class LIEF_API DyldChainedFixups : public LoadCommand {
   /// Structure that mirrors the raw dyld_chained_starts_in_segment
   /// which aims at providing information about the chained rebase/bind fixups
   ///
-  /// The relocations provided by this structure can be accessed through SegmentCommand::relocations
+  /// The relocations provided by this structure can be accessed through
+  /// SegmentCommand::relocations
   struct chained_starts_in_segment {
-    uint32_t offset            = 0; ///< Original offset of the structure, relative to DyldChainedFixups::starts_offset
-    uint32_t size              = 0; ///< sizeof(size) + sizeof(page_size) + ... + sizeof(pointer_format)
-    uint16_t page_size         = 0; ///< Likely 0x1000 for x86/x86_64 architectures and 0x4000 for ARM64 architecture
-    uint64_t segment_offset    = 0; ///< Offset of the segment's data from the beginning of the file (it should match SegmentCommand::file_offset)
-    uint32_t max_valid_pointer = 0; ///< for 32-bit OS, any value beyond this is not a pointer
-    DYLD_CHAINED_PTR_FORMAT pointer_format = DYLD_CHAINED_PTR_FORMAT::NONE; ///< How pointers are encoded
+    /// Original offset of the structure, relative to
+    /// DyldChainedFixups::starts_offset
+    uint32_t offset = 0;
+
+    /// sizeof(size) + sizeof(page_size) + ... + sizeof(pointer_format)
+    uint32_t size = 0;
+
+    /// Likely 0x1000 for x86/x86_64 architectures and 0x4000 for ARM64
+    /// architecture
+    uint16_t page_size = 0;
+
+    /// Offset of the segment's data from the beginning of the file (it
+    /// should match SegmentCommand::file_offset)
+    uint64_t segment_offset = 0;
+
+    /// for 32-bit OS, any value beyond this is not a pointer
+    uint32_t max_valid_pointer = 0;
+
+    /// How pointers are encoded
+    DYLD_CHAINED_PTR_FORMAT pointer_format = DYLD_CHAINED_PTR_FORMAT::NONE;

     /// How many pages are in the page_start array
     size_t page_count() const {
       return page_start.size();
     }

-    std::vector<uint16_t> page_start;   ///< Offset in the SegmentCommand of the first element of the chain
-    std::vector<uint16_t> chain_starts; ///< Currently not supported
+    /// Offset in the SegmentCommand of the
+    /// first element of the chain
+    std::vector<uint16_t> page_start;

-    SegmentCommand& segment; ///< Segment in which the rebase/bind fixups take place
+    /// Currently not supported
+    std::vector<uint16_t> chain_starts;

-    LIEF_API friend std::ostream& operator<<(std::ostream& os, const chained_starts_in_segment& info);
+    /// Segment in which the rebase/bind fixups take place
+    SegmentCommand& segment;

-    static chained_starts_in_segment create_empty_chained(SegmentCommand& segment) {
-      return chained_starts_in_segment(0, segment);
+    LIEF_API friend std::ostream&
+        operator<<(std::ostream& os, const chained_starts_in_segment& info);
+
+    static chained_starts_in_segment
+        create_empty_chained(SegmentCommand& segment) {
+      return {0, segment};
     }

     private:
@@ -88,9 +111,9 @@ class LIEF_API DyldChainedFixups : public LoadCommand {
     friend class DyldChainedFixupsCreator;
     chained_starts_in_segment(uint32_t offset, SegmentCommand& segment) :
       offset(offset),
-      segment(segment)
-    {}
-    chained_starts_in_segment(uint32_t offset, const details::dyld_chained_starts_in_segment& info,
+      segment(segment) {}
+    chained_starts_in_segment(uint32_t offset,
+                              const details::dyld_chained_starts_in_segment& info,
                               SegmentCommand& segment);
   };

@@ -98,10 +121,12 @@ class LIEF_API DyldChainedFixups : public LoadCommand {
   using chained_starts_in_segments_t = std::vector<chained_starts_in_segment>;

   /// Iterator that outputs chained_starts_in_segment&
-  using it_chained_starts_in_segments_t = ref_iterator<chained_starts_in_segments_t&>;
+  using it_chained_starts_in_segments_t =
+      ref_iterator<chained_starts_in_segments_t&>;

   /// Iterator that outputs const chained_starts_in_segment&
-  using it_const_chained_starts_in_segments_t = const_ref_iterator<const chained_starts_in_segments_t&>;
+  using it_const_chained_starts_in_segments_t =
+      const_ref_iterator<const chained_starts_in_segments_t&>;

   /// Internal container for storing DyldBindingInfo
   using binding_info_t = std::vector<std::unique_ptr<ChainedBindingInfo>>;
@@ -110,7 +135,8 @@ class LIEF_API DyldChainedFixups : public LoadCommand {
   using it_binding_info = ref_iterator<binding_info_t&, ChainedBindingInfo*>;

   /// Iterator which outputs const DyldBindingInfo&
-  using it_const_binding_info = const_ref_iterator<const binding_info_t&, ChainedBindingInfo*>;
+  using it_const_binding_info =
+      const_ref_iterator<const binding_info_t&, ChainedBindingInfo*>;


   DyldChainedFixups();
@@ -140,61 +166,90 @@ class LIEF_API DyldChainedFixups : public LoadCommand {
   }

   /// Return the raw content of the command
-  span<const uint8_t> payload() const {
+  span<const uint8_t> payload() const LIEF_LIFETIMEBOUND {
     return content_;
   }

   /// Iterator over the bindings (ChainedBindingInfo) associated with this command
-  it_binding_info bindings() {
+  it_binding_info bindings() LIEF_LIFETIMEBOUND {
     return all_bindings_;
   }

   /// Iterator over the bindings (ChainedBindingInfo) associated with this command
-  it_const_binding_info bindings() const {
+  it_const_binding_info bindings() const LIEF_LIFETIMEBOUND {
     return all_bindings_;
   }

   /// Iterator over the chained fixup metadata
-  it_chained_starts_in_segments_t chained_starts_in_segments() {
+  it_chained_starts_in_segments_t chained_starts_in_segments() LIEF_LIFETIMEBOUND {
     return chained_starts_in_segment_;
   }

-  it_const_chained_starts_in_segments_t chained_starts_in_segments() const {
+  it_const_chained_starts_in_segments_t
+      chained_starts_in_segments() const LIEF_LIFETIMEBOUND {
     return chained_starts_in_segment_;
   }

   /// Chained fixups version. The loader (dyld v852.2) checks
   /// that this value is set to 0
-  uint32_t fixups_version() const { return fixups_version_; }
-  void fixups_version(uint32_t version) { fixups_version_ = version; }
+  uint32_t fixups_version() const {
+    return fixups_version_;
+  }
+  void fixups_version(uint32_t version) {
+    fixups_version_ = version;
+  }

   /// offset of dyld_chained_starts_in_image in chain_data
-  uint32_t starts_offset() const { return starts_offset_; }
-  void starts_offset(uint32_t offset) { starts_offset_ = offset; }
+  uint32_t starts_offset() const {
+    return starts_offset_;
+  }
+  void starts_offset(uint32_t offset) {
+    starts_offset_ = offset;
+  }

   /// Offset of imports table in chain data
-  uint32_t imports_offset() const { return imports_offset_; }
-  void imports_offset(uint32_t offset) { imports_offset_ = offset; }
+  uint32_t imports_offset() const {
+    return imports_offset_;
+  }
+  void imports_offset(uint32_t offset) {
+    imports_offset_ = offset;
+  }

   /// Offset of symbol strings in chain data
-  uint32_t symbols_offset() const { return symbols_offset_; }
-  void symbols_offset(uint32_t offset) { symbols_offset_ = offset; }
+  uint32_t symbols_offset() const {
+    return symbols_offset_;
+  }
+  void symbols_offset(uint32_t offset) {
+    symbols_offset_ = offset;
+  }

   /// Number of imported symbol names
-  uint32_t imports_count() const { return imports_count_; }
-  void imports_count(uint32_t cnt) { imports_count_ = cnt; }
+  uint32_t imports_count() const {
+    return imports_count_;
+  }
+  void imports_count(uint32_t cnt) {
+    imports_count_ = cnt;
+  }

   /// The compression algorithm (if any) used to store the symbols
   /// 0 means uncompressed while 1 means zlib compressed.
   ///
   /// As far of the version v852.2 of dyld loader, it only supports
   /// **uncompressed** format
-  uint32_t symbols_format() const { return symbols_format_; }
-  void symbols_format(uint32_t fmt) { symbols_format_ = fmt; }
+  uint32_t symbols_format() const {
+    return symbols_format_;
+  }
+  void symbols_format(uint32_t fmt) {
+    symbols_format_ = fmt;
+  }

   /// The format of the imports (ChainedBindingInfo)
-  DYLD_CHAINED_FORMAT imports_format() const { return imports_format_; }
-  void imports_format(DYLD_CHAINED_FORMAT fmt) { imports_format_ = fmt; }
+  DYLD_CHAINED_FORMAT imports_format() const {
+    return imports_format_;
+  }
+  void imports_format(DYLD_CHAINED_FORMAT fmt) {
+    imports_format_ = fmt;
+  }

   chained_starts_in_segment& add(chained_starts_in_segment start_info) {
     chained_starts_in_segment_.push_back(std::move(start_info));
@@ -215,17 +270,17 @@ class LIEF_API DyldChainedFixups : public LoadCommand {
   LIEF_LOCAL DyldChainedFixups(const DyldChainedFixups& other);

   uint32_t data_offset_ = 0;
-  uint32_t data_size_   = 0;
+  uint32_t data_size_ = 0;

   // Raw payload of the DyldChainedFixups.
   // This payload is located in the __LINKEDIT segment
   span<uint8_t> content_;

   uint32_t fixups_version_ = 0;
-  uint32_t starts_offset_  = 0;
+  uint32_t starts_offset_ = 0;
   uint32_t imports_offset_ = 0;
   uint32_t symbols_offset_ = 0;
-  uint32_t imports_count_  = 0;
+  uint32_t imports_count_ = 0;
   uint32_t symbols_format_ = 0;
   DYLD_CHAINED_FORMAT imports_format_ = DYLD_CHAINED_FORMAT::IMPORT;

diff --git a/deps/LIEF/include/LIEF/MachO/DyldChainedFixupsCreator.hpp b/deps/LIEF/include/LIEF/MachO/DyldChainedFixupsCreator.hpp
index d52bcd1d666..c6b4a06f632 100644
--- a/deps/LIEF/include/LIEF/MachO/DyldChainedFixupsCreator.hpp
+++ b/deps/LIEF/include/LIEF/MachO/DyldChainedFixupsCreator.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -69,25 +69,23 @@ class LIEF_LOCAL DyldChainedFixupsCreator {
   DyldChainedFixupsCreator& add_relocation(uint64_t address, uint64_t target);

   DyldChainedFixupsCreator&
-    add_relocations(const std::vector<reloc_info_t>& relocations)
-  {
+      add_relocations(const std::vector<reloc_info_t>& relocations) {
     std::copy(relocations.begin(), relocations.end(),
               std::back_inserter(relocations_));
     return *this;
   }

-  DyldChainedFixupsCreator& add_binding(uint64_t address,
-                                        std::string symbol, std::string library,
-                                        uint64_t addend = 0, bool weak = false);
+  DyldChainedFixupsCreator& add_binding(uint64_t address, std::string symbol,
+                                        std::string library, uint64_t addend = 0,
+                                        bool weak = false);

-  DyldChainedFixupsCreator& add_binding(uint64_t address,
-                                        std::string symbol,
-                                        uint64_t addend = 0, bool weak = false)
-  {
+  DyldChainedFixupsCreator& add_binding(uint64_t address, std::string symbol,
+                                        uint64_t addend = 0, bool weak = false) {
     return add_binding(address, std::move(symbol), "", addend, weak);
   }

-  DyldChainedFixupsCreator& add_bindings(const std::vector<binding_info_t>& bindings) {
+  DyldChainedFixupsCreator&
+      add_bindings(const std::vector<binding_info_t>& bindings) {
     std::copy(bindings.begin(), bindings.end(), std::back_inserter(bindings_));
     return *this;
   }
@@ -98,7 +96,8 @@ class LIEF_LOCAL DyldChainedFixupsCreator {
   struct LIEF_LOCAL binding_rebase_t {
     enum TYPE {
       UNKNOWN = 0,
-      FIXUP, BINDING,
+      FIXUP,
+      BINDING,
     };
     union {
       ChainedBindingInfo* binding = nullptr;
@@ -108,13 +107,11 @@ class LIEF_LOCAL DyldChainedFixupsCreator {

     binding_rebase_t(ChainedBindingInfo& info) :
       binding(&info),
-      type(BINDING)
-    {}
+      type(BINDING) {}

     binding_rebase_t(RelocationFixup& fixup) :
       fixup(&fixup),
-      type(FIXUP)
-    {}
+      type(FIXUP) {}

     uint64_t addr() const;

@@ -145,24 +142,26 @@ class LIEF_LOCAL DyldChainedFixupsCreator {
                            const binding_rebase_t& rhs) {
       return !(lhs > rhs);
     }
-
   };
   LIEF_LOCAL result<size_t> lib2ord(const Binary& bin, const Symbol& sym,
                                     const std::string& lib);
   LIEF_LOCAL const Symbol* find_symbol(const Binary& bin, const std::string& name);

-  LIEF_LOCAL static DYLD_CHAINED_PTR_FORMAT pointer_format(const Binary& bin, size_t imp_count);
-  LIEF_LOCAL ok_error_t process_relocations(Binary& target, DYLD_CHAINED_PTR_FORMAT ptr_fmt);
-  LIEF_LOCAL ok_error_t process_bindings(
-    Binary& target, strong_map_t& strong_map,
-    std::unordered_map<std::string, size_t>& symbols_idx, DyldChainedFixups* cmd,
-    DyldChainedFixups::binding_info_t& all_bindings);
+  LIEF_LOCAL static DYLD_CHAINED_PTR_FORMAT pointer_format(const Binary& bin,
+                                                           size_t imp_count);
+  LIEF_LOCAL ok_error_t process_relocations(Binary& target,
+                                            DYLD_CHAINED_PTR_FORMAT ptr_fmt);
+  LIEF_LOCAL DyldChainedFixups::binding_info_t
+      process_bindings(Binary& target, strong_map_t& strong_map,
+                       std::unordered_map<std::string, size_t>& symbols_idx,
+                       DyldChainedFixups* cmd);

   uint32_t fixups_version_ = 0;
   DYLD_CHAINED_FORMAT imports_format_;
   std::vector<binding_info_t> bindings_;
   std::vector<reloc_info_t> relocations_;
-  std::unordered_map<SegmentCommand*, std::vector<binding_rebase_t>> segment_chains_;
+  std::unordered_map<SegmentCommand*, std::vector<binding_rebase_t>>
+      segment_chains_;
   std::unordered_map<std::string, size_t> lib2ord_;
 };
 }
diff --git a/deps/LIEF/include/LIEF/MachO/DyldChainedFormat.hpp b/deps/LIEF/include/LIEF/MachO/DyldChainedFormat.hpp
index 603d28de043..ea056e29ae4 100644
--- a/deps/LIEF/include/LIEF/MachO/DyldChainedFormat.hpp
+++ b/deps/LIEF/include/LIEF/MachO/DyldChainedFormat.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2024 - 2025 R. Thomas
+/* Copyright 2024 - 2026 R. Thomas
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -20,29 +20,45 @@ namespace MachO {

 // values for dyld_chained_fixups_header.imports_format
 enum class DYLD_CHAINED_FORMAT {
-  IMPORT          = 1, // Originally: DYLD_CHAINED_IMPORT
-  IMPORT_ADDEND   = 2, // Originally: DYLD_CHAINED_IMPORT_ADDEND
-  IMPORT_ADDEND64 = 3, // Originally: DYLD_CHAINED_IMPORT_ADDEND64
+  /// Originally: DYLD_CHAINED_IMPORT
+  IMPORT = 1,
+
+  /// Originally: DYLD_CHAINED_IMPORT_ADDEND
+  IMPORT_ADDEND = 2,
+
+  /// Originally: DYLD_CHAINED_IMPORT_ADDEND64
+  IMPORT_ADDEND64 = 3,
 };

 // values for dyld_chained_starts_in_segment.pointer_format
 enum class DYLD_CHAINED_PTR_FORMAT {
-  NONE                       =  0,
-  PTR_ARM64E                 =  1, // stride 8, unauth target is vmaddr
-  PTR_64                     =  2, // target is vmaddr
-  PTR_32                     =  3,
-  PTR_32_CACHE               =  4,
-  PTR_32_FIRMWARE            =  5,
-  PTR_64_OFFSET              =  6, // target is vm offset
-  PTR_ARM64E_OFFSET          =  7, // old name
-  PTR_ARM64E_KERNEL          =  7, // stride 4, unauth target is vm offset
-  PTR_64_KERNEL_CACHE        =  8,
-  PTR_ARM64E_USERLAND        =  9, // stride 8, unauth target is vm offset
-  PTR_ARM64E_FIRMWARE        = 10, // stride 4, unauth target is vmaddr
-  PTR_X86_64_KERNEL_CACHE    = 11, // stride 1, x86_64 kernel caches
-  PTR_ARM64E_USERLAND24      = 12, // stride 8, unauth target is vm offset, 24-bit bind
-  PTR_ARM64E_SHARED_CACHE    = 13, // stride 8, regular/auth targets both vm offsets. Only A keys supported
-  PTR_ARM64E_SEGMENTED       = 14, // stride 4, rebase offsets use segIndex and segOffset
+  NONE = 0,
+  // stride 8, unauth target is vmaddr
+  PTR_ARM64E = 1,
+  // target is vmaddr
+  PTR_64 = 2,
+  PTR_32 = 3,
+  PTR_32_CACHE = 4,
+  PTR_32_FIRMWARE = 5,
+  // target is vm offset
+  PTR_64_OFFSET = 6,
+  // old name
+  PTR_ARM64E_OFFSET = 7,
+  // stride 4, unauth target is vm offset
+  PTR_ARM64E_KERNEL = 7,
+  PTR_64_KERNEL_CACHE = 8,
+  // stride 8, unauth target is vm offset
+  PTR_ARM64E_USERLAND = 9,
+  // stride 4, unauth target is vmaddr
+  PTR_ARM64E_FIRMWARE = 10,
+  // stride 1, x86_64 kernel caches
+  PTR_X86_64_KERNEL_CACHE = 11,
+  // stride 8, unauth target is vm offset, 24-bit bind
+  PTR_ARM64E_USERLAND24 = 12,
+  // stride 8, regular/auth targets both vm offsets. Only A keys supported
+  PTR_ARM64E_SHARED_CACHE = 13,
+  // stride 4, rebase offsets use segIndex and segOffset
+  PTR_ARM64E_SEGMENTED = 14,
 };

 LIEF_API const char* to_string(DYLD_CHAINED_FORMAT fmt);
diff --git a/deps/LIEF/include/LIEF/MachO/DyldEnvironment.hpp b/deps/LIEF/include/LIEF/MachO/DyldEnvironment.hpp
index e2c2daf16c3..0176d28c753 100644
--- a/deps/LIEF/include/LIEF/MachO/DyldEnvironment.hpp
+++ b/deps/LIEF/include/LIEF/MachO/DyldEnvironment.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -48,7 +48,7 @@ class LIEF_API DyldEnvironment : public LoadCommand {
   std::ostream& print(std::ostream& os) const override;

   /// The actual environment variable
-  const std::string& value() const {
+  const std::string& value() const LIEF_LIFETIMEBOUND {
     return value_;
   }

diff --git a/deps/LIEF/include/LIEF/MachO/DyldExportsTrie.hpp b/deps/LIEF/include/LIEF/MachO/DyldExportsTrie.hpp
index e4f261ba1c3..3b646bb1e79 100644
--- a/deps/LIEF/include/LIEF/MachO/DyldExportsTrie.hpp
+++ b/deps/LIEF/include/LIEF/MachO/DyldExportsTrie.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -16,8 +16,10 @@
 #ifndef LIEF_MACHO_DYLD_EXPORTS_TRIE_H
 #define LIEF_MACHO_DYLD_EXPORTS_TRIE_H
 #include <memory>
+#include <string>
 #include "LIEF/span.hpp"
 #include "LIEF/iterators.hpp"
+#include "LIEF/compiler_attributes.hpp"
 #include "LIEF/visibility.h"
 #include "LIEF/MachO/LoadCommand.hpp"

@@ -36,7 +38,8 @@ struct linkedit_data_command;

 /// Class that represents the LC_DYLD_EXPORTS_TRIE command
 ///
-/// In recent Mach-O binaries, this command replace the DyldInfo export trie buffer
+/// In recent Mach-O binaries, this command replaces the DyldInfo export trie
+/// buffer
 class LIEF_API DyldExportsTrie : public LoadCommand {
   friend class BinaryParser;
   friend class Builder;
@@ -51,7 +54,8 @@ class LIEF_API DyldExportsTrie : public LoadCommand {
   using it_export_info = ref_iterator<export_info_t&, ExportInfo*>;

   /// Iterator which outputs const ExportInfo&
-  using it_const_export_info = const_ref_iterator<const export_info_t&, ExportInfo*>;
+  using it_const_export_info =
+      const_ref_iterator<const export_info_t&, ExportInfo*>;

   DyldExportsTrie();
   DyldExportsTrie(const details::linkedit_data_command& cmd);
@@ -81,7 +85,7 @@ class LIEF_API DyldExportsTrie : public LoadCommand {
     data_size_ = size;
   }

-  span<const uint8_t> content() const {
+  span<const uint8_t> content() const LIEF_LIFETIMEBOUND {
     return content_;
   }

@@ -94,12 +98,12 @@ class LIEF_API DyldExportsTrie : public LoadCommand {
     return export_info_;
   }

-  /// Print the exports trie in a humman-readable way
+  /// Print the exports trie in a human-readable way
   std::string show_export_trie() const;

-  /// Add an entrie in the current trie.
+  /// Add an entry in the current trie.
   /// See also: LIEF::MachO::Binary::add_exported_function
-  void add(std::unique_ptr<ExportInfo> info);
+  ExportInfo* add(std::unique_ptr<ExportInfo> info) LIEF_LIFETIMEBOUND;

   void accept(Visitor& visitor) const override;

@@ -114,13 +118,13 @@ class LIEF_API DyldExportsTrie : public LoadCommand {
   LIEF_LOCAL DyldExportsTrie(const DyldExportsTrie& other);

   uint32_t data_offset_ = 0;
-  uint32_t data_size_   = 0;
+  uint32_t data_size_ = 0;

-  // Raw payload of the DyldChainedFixups.
+  // Raw payload of the DyldExportsTrie.
   // This payload is located in the __LINKEDIT segment
   span<uint8_t> content_;

-  export_info_t  export_info_;
+  export_info_t export_info_;
 };

 }
diff --git a/deps/LIEF/include/LIEF/MachO/DyldInfo.hpp b/deps/LIEF/include/LIEF/MachO/DyldInfo.hpp
index bbd3042337f..addceded3ba 100644
--- a/deps/LIEF/include/LIEF/MachO/DyldInfo.hpp
+++ b/deps/LIEF/include/LIEF/MachO/DyldInfo.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -21,6 +21,7 @@
 #include <ostream>
 #include <memory>

+#include "LIEF/compiler_attributes.hpp"
 #include "LIEF/visibility.h"
 #include "LIEF/span.hpp"

@@ -66,7 +67,8 @@ class LIEF_API DyldInfo : public LoadCommand {
   using it_binding_info = ref_iterator<binding_info_t&, DyldBindingInfo*>;

   /// Iterator which outputs const DyldBindingInfo&
-  using it_const_binding_info = const_ref_iterator<const binding_info_t&, DyldBindingInfo*>;
+  using it_const_binding_info =
+      const_ref_iterator<const binding_info_t&, DyldBindingInfo*>;

   /// Internal container for storing ExportInfo
   using export_info_t = std::vector<std::unique_ptr<ExportInfo>>;
@@ -75,57 +77,90 @@ class LIEF_API DyldInfo : public LoadCommand {
   using it_export_info = ref_iterator<export_info_t&, ExportInfo*>;

   /// Iterator which outputs const ExportInfo&
-  using it_const_export_info = const_ref_iterator<const export_info_t&, ExportInfo*>;
+  using it_const_export_info =
+      const_ref_iterator<const export_info_t&, ExportInfo*>;

   enum class BINDING_ENCODING_VERSION {
     UNKNOWN = 0,
     V1,
-    V2
+    V2,
   };

-  enum class REBASE_TYPE: uint64_t  {
-    POINTER         = 1u,
+  enum class REBASE_TYPE : uint64_t {
+    POINTER = 1u,
     TEXT_ABSOLUTE32 = 2u,
-    TEXT_PCREL32    = 3u,
-    THREADED        = 102u,
+    TEXT_PCREL32 = 3u,
+    THREADED = 102u,
   };

-  enum class REBASE_OPCODES: uint8_t {
-    DONE                               = 0x00u, ///< It's finished
-    SET_TYPE_IMM                       = 0x10u, ///< Set type to immediate (lower 4-bits). Used for ordinal numbers from 0-15
-    SET_SEGMENT_AND_OFFSET_ULEB        = 0x20u, ///< Set segment's index to immediate (lower 4-bits) and segment's offset to following ULEB128 encoding.
-    ADD_ADDR_ULEB                      = 0x30u, ///< Add segment's offset with the following ULEB128 encoding.
-    ADD_ADDR_IMM_SCALED                = 0x40u, ///< Add segment's offset with immediate scaling
-    DO_REBASE_IMM_TIMES                = 0x50u, ///< Rebase in the range of ``[segment's offset; segment's offset + immediate * sizeof(ptr)]``
-    DO_REBASE_ULEB_TIMES               = 0x60u, ///< Same as REBASE_OPCODE_DO_REBASE_IMM_TIMES but *immediate* is replaced with ULEB128 value
-    DO_REBASE_ADD_ADDR_ULEB            = 0x70u, ///< Rebase and increment segment's offset with following ULEB128 encoding + pointer's size
-    DO_REBASE_ULEB_TIMES_SKIPPING_ULEB = 0x80u  ///< Rebase and skip several bytes
+  enum class REBASE_OPCODES : uint8_t {
+    /// It's finished.
+    DONE = 0x00u,
+    /// Set type to immediate (lower 4-bits). Used for ordinal numbers from
+    /// 0-15.
+    SET_TYPE_IMM = 0x10u,
+    /// Set segment's index to immediate (lower 4-bits) and segment's offset to
+    /// following ULEB128 encoding.
+    SET_SEGMENT_AND_OFFSET_ULEB = 0x20u,
+    /// Add segment's offset with the following ULEB128 encoding.
+    ADD_ADDR_ULEB = 0x30u,
+    /// Add segment's offset with immediate scaling.
+    ADD_ADDR_IMM_SCALED = 0x40u,
+    /// Rebase in the range of ``[segment's offset; segment's offset +
+    /// immediate * sizeof(ptr)]``.
+    DO_REBASE_IMM_TIMES = 0x50u,
+    /// Same as REBASE_OPCODE_DO_REBASE_IMM_TIMES but *immediate* is replaced
+    /// with ULEB128 value.
+    DO_REBASE_ULEB_TIMES = 0x60u,
+    /// Rebase and increment segment's offset with following ULEB128 encoding +
+    /// pointer's size.
+    DO_REBASE_ADD_ADDR_ULEB = 0x70u,
+    /// Rebase and skip several bytes.
+    DO_REBASE_ULEB_TIMES_SKIPPING_ULEB = 0x80u,
   };

   /// Opcodes used by Dyld info to bind symbols
-  enum class BIND_OPCODES: uint8_t {
-    DONE                             = 0x00u, ///< It's finished
-    SET_DYLIB_ORDINAL_IMM            = 0x10u, ///< Set ordinal to immediate (lower 4-bits). Used for ordinal numbers from 0-15
-    SET_DYLIB_ORDINAL_ULEB           = 0x20u, ///< Set ordinal to following ULEB128 encoding. Used for ordinal numbers from 16+
-    SET_DYLIB_SPECIAL_IMM            = 0x30u, ///< Set ordinal, with 0 or negative number as immediate. the value is sign extended.
-    SET_SYMBOL_TRAILING_FLAGS_IMM    = 0x40u, ///< Set the following symbol (NULL-terminated char*).
-    SET_TYPE_IMM                     = 0x50u, ///< Set the type to immediate (lower 4-bits). See BIND_TYPES
-    SET_ADDEND_SLEB                  = 0x60u, ///< Set the addend field to the following SLEB128 encoding.
-    SET_SEGMENT_AND_OFFSET_ULEB      = 0x70u, ///< Set Segment to immediate value, and address to the following SLEB128 encoding
-    ADD_ADDR_ULEB                    = 0x80u, ///< Set the address field to the following SLEB128 encoding.
-    DO_BIND                          = 0x90u, ///< Perform binding of current table row
-    DO_BIND_ADD_ADDR_ULEB            = 0xA0u, ///< Perform binding, also add following ULEB128 as address
-    DO_BIND_ADD_ADDR_IMM_SCALED      = 0xB0u, ///< Perform binding, also add immediate (lower 4-bits) using scaling
-    DO_BIND_ULEB_TIMES_SKIPPING_ULEB = 0xC0u, ///< Perform binding for several symbols (as following ULEB128), and skip several bytes.
-    THREADED                         = 0xD0u,
-
-    THREADED_APPLY                            = 0xD0u | 0x01u,
+  enum class BIND_OPCODES : uint8_t {
+    /// It's finished.
+    DONE = 0x00u,
+    /// Set ordinal to immediate (lower 4-bits). Used for ordinal numbers from
+    /// 0-15.
+    SET_DYLIB_ORDINAL_IMM = 0x10u,
+    /// Set ordinal to following ULEB128 encoding. Used for ordinal numbers
+    /// from 16+.
+    SET_DYLIB_ORDINAL_ULEB = 0x20u,
+    /// Set ordinal, with 0 or negative number as immediate. The value is sign
+    /// extended.
+    SET_DYLIB_SPECIAL_IMM = 0x30u,
+    /// Set the following symbol (NULL-terminated char*).
+    SET_SYMBOL_TRAILING_FLAGS_IMM = 0x40u,
+    /// Set the type to immediate (lower 4-bits). See BIND_TYPES.
+    SET_TYPE_IMM = 0x50u,
+    /// Set the addend field to the following SLEB128 encoding.
+    SET_ADDEND_SLEB = 0x60u,
+    /// Set Segment to immediate value, and address to the following SLEB128
+    /// encoding.
+    SET_SEGMENT_AND_OFFSET_ULEB = 0x70u,
+    /// Set the address field to the following SLEB128 encoding.
+    ADD_ADDR_ULEB = 0x80u,
+    /// Perform binding of current table row.
+    DO_BIND = 0x90u,
+    /// Perform binding, also add following ULEB128 as address.
+    DO_BIND_ADD_ADDR_ULEB = 0xA0u,
+    /// Perform binding, also add immediate (lower 4-bits) using scaling.
+    DO_BIND_ADD_ADDR_IMM_SCALED = 0xB0u,
+    /// Perform binding for several symbols (as following ULEB128), and skip
+    /// several bytes.
+    DO_BIND_ULEB_TIMES_SKIPPING_ULEB = 0xC0u,
+    THREADED = 0xD0u,
+
+    THREADED_APPLY = 0xD0u | 0x01u,
     THREADED_SET_BIND_ORDINAL_TABLE_SIZE_ULEB = 0xD0u | 0x00u,
   };

-  enum class BIND_SUBOPCODE_THREADED: uint8_t {
+  enum class BIND_SUBOPCODE_THREADED : uint8_t {
     SET_BIND_ORDINAL_TABLE_SIZE_ULEB = 0x00u,
-    APPLY                            = 0x01u,
+    APPLY = 0x01u,
   };

   enum BIND_SYMBOL_FLAGS {
@@ -168,17 +203,17 @@ class LIEF_API DyldInfo : public LoadCommand {
   }

   /// Return Rebase's opcodes as raw data
-  span<const uint8_t> rebase_opcodes() const {
+  span<const uint8_t> rebase_opcodes() const LIEF_LIFETIMEBOUND {
     return rebase_opcodes_;
   }
-  span<uint8_t> rebase_opcodes() {
+  span<uint8_t> rebase_opcodes() LIEF_LIFETIMEBOUND {
     return rebase_opcodes_;
   }

   /// Set new opcodes
   void rebase_opcodes(buffer_t raw);

-  /// Return the rebase opcodes in a humman-readable way
+  /// Return the rebase opcodes in a human-readable way
   std::string show_rebases_opcodes() const;

   /// *Bind* information
@@ -191,7 +226,7 @@ class LIEF_API DyldInfo : public LoadCommand {
   ///    <seg-index, seg-offset, type, symbol-library-ordinal, symbol-name, addend>
   /// The opcodes are a compressed way to encode the table by only
   /// encoding when a column changes.  In addition simple patterns
-  /// like for runs of pointers initialzed to the same value can be
+  /// like for runs of pointers initialized to the same value can be
   /// encoded in a few bytes.
   ///
   /// @see ``/usr/include/mach-o/loader.h``
@@ -200,17 +235,17 @@ class LIEF_API DyldInfo : public LoadCommand {
   }

   /// Return Binding's opcodes as raw data
-  span<const uint8_t> bind_opcodes() const {
+  span<const uint8_t> bind_opcodes() const LIEF_LIFETIMEBOUND {
     return bind_opcodes_;
   }
-  span<uint8_t> bind_opcodes() {
+  span<uint8_t> bind_opcodes() LIEF_LIFETIMEBOUND {
     return bind_opcodes_;
   }

   /// Set new opcodes
   void bind_opcodes(buffer_t raw);

-  /// Return the bind opcodes in a humman-readable way
+  /// Return the bind opcodes in a human-readable way
   std::string show_bind_opcodes() const;

   /// *Weak Bind* information
@@ -235,24 +270,24 @@ class LIEF_API DyldInfo : public LoadCommand {
   }

   /// Return **Weak** Binding's opcodes as raw data
-  span<const uint8_t> weak_bind_opcodes() const {
+  span<const uint8_t> weak_bind_opcodes() const LIEF_LIFETIMEBOUND {
     return weak_bind_opcodes_;
   }
-  span<uint8_t> weak_bind_opcodes() {
+  span<uint8_t> weak_bind_opcodes() LIEF_LIFETIMEBOUND {
     return weak_bind_opcodes_;
   }

   /// Set new opcodes
   void weak_bind_opcodes(buffer_t raw);

-  /// Return the bind opcodes in a humman-readable way
+  /// Return the bind opcodes in a human-readable way
   std::string show_weak_bind_opcodes() const;

   /// *Lazy Bind* information
   ///
   /// Some uses of external symbols do not need to be bound immediately.
   /// Instead they can be lazily bound on first use.  The lazy_bind
-  /// are contains a stream of BIND opcodes to bind all lazy symbols.
+  /// area contains a stream of BIND opcodes to bind all lazy symbols.
   /// Normal use is that dyld ignores the lazy_bind section when
   /// loading an image.  Instead the static linker arranged for the
   /// lazy pointer to initially point to a helper function which
@@ -267,25 +302,25 @@ class LIEF_API DyldInfo : public LoadCommand {
   }

   /// Return **Lazy** Binding's opcodes as raw data
-  span<const uint8_t> lazy_bind_opcodes() const {
+  span<const uint8_t> lazy_bind_opcodes() const LIEF_LIFETIMEBOUND {
     return lazy_bind_opcodes_;
   }
-  span<uint8_t> lazy_bind_opcodes() {
+  span<uint8_t> lazy_bind_opcodes() LIEF_LIFETIMEBOUND {
     return lazy_bind_opcodes_;
   }

   /// Set new opcodes
   void lazy_bind_opcodes(buffer_t raw);

-  /// Return the lazy opcodes in a humman-readable way
+  /// Return the lazy opcodes in a human-readable way
   std::string show_lazy_bind_opcodes() const;

   /// Iterator over BindingInfo entries
-  it_binding_info bindings() {
+  it_binding_info bindings() LIEF_LIFETIMEBOUND {
     return binding_info_;
   }

-  it_const_binding_info bindings() const {
+  it_const_binding_info bindings() const LIEF_LIFETIMEBOUND {
     return binding_info_;
   }

@@ -320,25 +355,25 @@ class LIEF_API DyldInfo : public LoadCommand {
   }

   /// Iterator over ExportInfo entries
-  it_export_info exports() {
+  it_export_info exports() LIEF_LIFETIMEBOUND {
     return export_info_;
   }
-  it_const_export_info exports() const {
+  it_const_export_info exports() const LIEF_LIFETIMEBOUND {
     return export_info_;
   }

   /// Return Export's trie as raw data
-  span<const uint8_t> export_trie() const {
+  span<const uint8_t> export_trie() const LIEF_LIFETIMEBOUND {
     return export_trie_;
   }
-  span<uint8_t> export_trie() {
+  span<uint8_t> export_trie() LIEF_LIFETIMEBOUND {
     return export_trie_;
   }

   /// Set new trie
   void export_trie(buffer_t raw);

-  /// Return the export trie in a humman-readable way
+  /// Return the export trie in a human-readable way
   std::string show_export_trie() const;

   void rebase(const info_t& info) {
@@ -361,7 +396,7 @@ class LIEF_API DyldInfo : public LoadCommand {
     rebase_ = {offset, std::get<1>(rebase())};
   }
   void set_rebase_size(uint32_t size) {
-  rebase_ = {std::get<0>(rebase()), size};
+    rebase_ = {std::get<0>(rebase()), size};
   }

   void set_bind_offset(uint32_t offset) {
@@ -393,7 +428,7 @@ class LIEF_API DyldInfo : public LoadCommand {
     export_ = {std::get<0>(export_info()), size};
   }

-  void add(std::unique_ptr<ExportInfo> info);
+  ExportInfo* add(std::unique_ptr<ExportInfo> info) LIEF_LIFETIMEBOUND;

   void accept(Visitor& visitor) const override;

@@ -406,45 +441,57 @@ class LIEF_API DyldInfo : public LoadCommand {
   }

   private:
-  using bind_container_t = std::set<DyldBindingInfo*, std::function<bool(DyldBindingInfo*, DyldBindingInfo*)>>;
+  using bind_container_t =
+      std::set<DyldBindingInfo*,
+               std::function<bool(DyldBindingInfo*, DyldBindingInfo*)>>;

-  LIEF_LOCAL void show_bindings(std::ostream& os, span<const uint8_t> buffer, bool is_lazy = false) const;
+  LIEF_LOCAL void show_bindings(std::ostream& os, span<const uint8_t> buffer,
+                                bool is_lazy = false) const;

   LIEF_LOCAL void show_trie(std::ostream& output, std::string output_prefix,
                             BinaryStream& stream, uint64_t start, uint64_t end,
                             const std::string& prefix) const;

-  LIEF_LOCAL DyldInfo& update_standard_bindings(const bind_container_t& bindings, vector_iostream& stream);
-  LIEF_LOCAL DyldInfo& update_standard_bindings_v1(const bind_container_t& bindings, vector_iostream& stream);
-  LIEF_LOCAL DyldInfo& update_standard_bindings_v2(const bind_container_t& bindings,
-                                                   std::vector<RelocationDyld*> rebases, vector_iostream& stream);
-
-  LIEF_LOCAL DyldInfo& update_weak_bindings(const bind_container_t& bindings, vector_iostream& stream);
-  LIEF_LOCAL DyldInfo& update_lazy_bindings(const bind_container_t& bindings, vector_iostream& stream);
+  LIEF_LOCAL DyldInfo& update_standard_bindings(const bind_container_t& bindings,
+                                                vector_iostream& stream);
+  LIEF_LOCAL DyldInfo&
+      update_standard_bindings_v1(const bind_container_t& bindings,
+                                  vector_iostream& stream);
+  LIEF_LOCAL DyldInfo&
+      update_standard_bindings_v2(const bind_container_t& bindings,
+                                  std::vector<RelocationDyld*> rebases,
+                                  vector_iostream& stream);
+
+  LIEF_LOCAL DyldInfo& update_weak_bindings(const bind_container_t& bindings,
+                                            vector_iostream& stream);
+  LIEF_LOCAL DyldInfo& update_lazy_bindings(const bind_container_t& bindings,
+                                            vector_iostream& stream);

   LIEF_LOCAL DyldInfo& update_rebase_info(vector_iostream& stream);
-  LIEF_LOCAL DyldInfo& update_binding_info(vector_iostream& stream, details::dyld_info_command& cmd);
+  LIEF_LOCAL DyldInfo& update_binding_info(vector_iostream& stream,
+                                           details::dyld_info_command& cmd);
   LIEF_LOCAL DyldInfo& update_export_trie(vector_iostream& stream);

-  info_t   rebase_;
+  info_t rebase_;
   span<uint8_t> rebase_opcodes_;

-  info_t   bind_;
+  info_t bind_;
   span<uint8_t> bind_opcodes_;

-  info_t   weak_bind_;
+  info_t weak_bind_;
   span<uint8_t> weak_bind_opcodes_;

-  info_t   lazy_bind_;
+  info_t lazy_bind_;
   span<uint8_t> lazy_bind_opcodes_;

-  info_t   export_;
+  info_t export_;
   span<uint8_t> export_trie_;

-  export_info_t  export_info_;
+  export_info_t export_info_;
   binding_info_t binding_info_;

-  BINDING_ENCODING_VERSION binding_encoding_version_ = BINDING_ENCODING_VERSION::UNKNOWN;
+  BINDING_ENCODING_VERSION binding_encoding_version_ =
+      BINDING_ENCODING_VERSION::UNKNOWN;

   Binary* binary_ = nullptr;
 };
diff --git a/deps/LIEF/include/LIEF/MachO/DylibCommand.hpp b/deps/LIEF/include/LIEF/MachO/DylibCommand.hpp
index bf4627c767a..cf73d9cbae0 100644
--- a/deps/LIEF/include/LIEF/MachO/DylibCommand.hpp
+++ b/deps/LIEF/include/LIEF/MachO/DylibCommand.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -39,9 +39,9 @@ class LIEF_API DylibCommand : public LoadCommand {
   /// Helper to convert an integer into a version array
   static version_t int2version(uint32_t version) {
     return {{
-      static_cast<uint16_t>(version >> 16),
-      static_cast<uint16_t>((version >> 8) & 0xFF),
-      static_cast<uint16_t>(version & 0xFF),
+        static_cast<uint16_t>(version >> 16),
+        static_cast<uint16_t>((version >> 8) & 0xFF),
+        static_cast<uint16_t>(version & 0xFF),
     }};
   }

@@ -51,40 +51,37 @@ class LIEF_API DylibCommand : public LoadCommand {
   }

   /// Factory function to generate a LC_LOAD_WEAK_DYLIB library
-  static DylibCommand weak_dylib(const std::string& name,
-      uint32_t timestamp = 0,
-      uint32_t current_version = 0,
-      uint32_t compat_version = 0);
+  static DylibCommand weak_dylib(const std::string& name, uint32_t timestamp = 0,
+                                 uint32_t current_version = 0,
+                                 uint32_t compat_version = 0);

   /// Factory function to generate a LC_ID_DYLIB library
-  static DylibCommand id_dylib(const std::string& name,
-      uint32_t timestamp = 0,
-      uint32_t current_version = 0,
-      uint32_t compat_version = 0);
+  static DylibCommand id_dylib(const std::string& name, uint32_t timestamp = 0,
+                               uint32_t current_version = 0,
+                               uint32_t compat_version = 0);

   /// Factory function to generate a LC_LOAD_DYLIB library
-  static DylibCommand load_dylib(const std::string& name,
-      uint32_t timestamp = 2,
-      uint32_t current_version = 0,
-      uint32_t compat_version = 0);
+  static DylibCommand load_dylib(const std::string& name, uint32_t timestamp = 2,
+                                 uint32_t current_version = 0,
+                                 uint32_t compat_version = 0);

   /// Factory function to generate a LC_REEXPORT_DYLIB library
   static DylibCommand reexport_dylib(const std::string& name,
-      uint32_t timestamp = 0,
-      uint32_t current_version = 0,
-      uint32_t compat_version = 0);
+                                     uint32_t timestamp = 0,
+                                     uint32_t current_version = 0,
+                                     uint32_t compat_version = 0);

   /// Factory function to generate a LC_LOAD_UPWARD_DYLIB library
   static DylibCommand load_upward_dylib(const std::string& name,
-      uint32_t timestamp = 0,
-      uint32_t current_version = 0,
-      uint32_t compat_version = 0);
+                                        uint32_t timestamp = 0,
+                                        uint32_t current_version = 0,
+                                        uint32_t compat_version = 0);

   /// Factory function to generate a LC_LAZY_LOAD_DYLIB library
   static DylibCommand lazy_load_dylib(const std::string& name,
-      uint32_t timestamp = 0,
-      uint32_t current_version = 0,
-      uint32_t compat_version = 0);
+                                      uint32_t timestamp = 0,
+                                      uint32_t current_version = 0,
+                                      uint32_t compat_version = 0);

   public:
   DylibCommand() = default;
@@ -100,7 +97,7 @@ class LIEF_API DylibCommand : public LoadCommand {
   }

   /// Library name
-  const std::string& name() const {
+  const std::string& name() const LIEF_LIFETIMEBOUND {
     return name_;
   }

@@ -143,19 +140,18 @@ class LIEF_API DylibCommand : public LoadCommand {

   static bool classof(const LoadCommand* cmd) {
     const LoadCommand::TYPE type = cmd->command();
-    return type == LoadCommand::TYPE::LOAD_WEAK_DYLIB ||
+    return type == LoadCommand::TYPE::LOAD_UPWARD_DYLIB ||
+           type == LoadCommand::TYPE::LAZY_LOAD_DYLIB ||
+           type == LoadCommand::TYPE::LOAD_WEAK_DYLIB ||
            type == LoadCommand::TYPE::ID_DYLIB ||
            type == LoadCommand::TYPE::LOAD_DYLIB ||
-           type == LoadCommand::TYPE::LOAD_UPWARD_DYLIB ||
-           type == LoadCommand::TYPE::REEXPORT_DYLIB ||
-           type == LoadCommand::TYPE::LOAD_UPWARD_DYLIB ||
-           type == LoadCommand::TYPE::LAZY_LOAD_DYLIB;
+           type == LoadCommand::TYPE::REEXPORT_DYLIB;
   }

   private:
-  LIEF_LOCAL static DylibCommand create(
-    LoadCommand::TYPE type, const std::string& name, uint32_t timestamp,
-    uint32_t current_version, uint32_t compat_version);
+  LIEF_LOCAL static DylibCommand
+      create(LoadCommand::TYPE type, const std::string& name, uint32_t timestamp,
+             uint32_t current_version, uint32_t compat_version);

   std::string name_;
   uint32_t name_offset_ = 0;
diff --git a/deps/LIEF/include/LIEF/MachO/DylinkerCommand.hpp b/deps/LIEF/include/LIEF/MachO/DylinkerCommand.hpp
index 4b2bb40e8e9..a7016f3995e 100644
--- a/deps/LIEF/include/LIEF/MachO/DylinkerCommand.hpp
+++ b/deps/LIEF/include/LIEF/MachO/DylinkerCommand.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -49,7 +49,7 @@ class LIEF_API DylinkerCommand : public LoadCommand {
   std::ostream& print(std::ostream& os) const override;

   /// Path to the linker (or loader)
-  const std::string& name() const {
+  const std::string& name() const LIEF_LIFETIMEBOUND {
     return name_;
   }

diff --git a/deps/LIEF/include/LIEF/MachO/DynamicSymbolCommand.hpp b/deps/LIEF/include/LIEF/MachO/DynamicSymbolCommand.hpp
index 12911022d0c..543e51822be 100644
--- a/deps/LIEF/include/LIEF/MachO/DynamicSymbolCommand.hpp
+++ b/deps/LIEF/include/LIEF/MachO/DynamicSymbolCommand.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -142,8 +142,8 @@ class LIEF_API DynamicSymbolCommand : public LoadCommand {

   /// Byte offset from the start of the file to the indirect symbol table data.
   ///
-  /// Indirect symbol table is used by the loader to speed-up symbol resolution during
-  /// the *lazy binding* process
+  /// Indirect symbol table is used by the loader to speed-up symbol resolution
+  /// during the *lazy binding* process
   ///
   /// References:
   ///   * dyld-519.2.1/src/ImageLoaderMachOCompressed.cpp
@@ -252,11 +252,11 @@ class LIEF_API DynamicSymbolCommand : public LoadCommand {
   }

   /// Iterator over the indirect symbols indexed by this command
-  it_indirect_symbols indirect_symbols() {
+  it_indirect_symbols indirect_symbols() LIEF_LIFETIMEBOUND {
     return indirect_symbols_;
   }

-  it_const_indirect_symbols indirect_symbols() const {
+  it_const_indirect_symbols indirect_symbols() const LIEF_LIFETIMEBOUND {
     return indirect_symbols_;
   }

diff --git a/deps/LIEF/include/LIEF/MachO/EncryptionInfo.hpp b/deps/LIEF/include/LIEF/MachO/EncryptionInfo.hpp
index 031f7930418..7dc694bd328 100644
--- a/deps/LIEF/include/LIEF/MachO/EncryptionInfo.hpp
+++ b/deps/LIEF/include/LIEF/MachO/EncryptionInfo.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -56,7 +56,7 @@ class LIEF_API EncryptionInfo : public LoadCommand {
     return csize_;
   }

-  /// The encryption system. 0 means no encrypted
+  /// The encryption system. 0 means not encrypted
   uint32_t crypt_id() const {
     return cid_;
   }
diff --git a/deps/LIEF/include/LIEF/MachO/EnumToString.hpp b/deps/LIEF/include/LIEF/MachO/EnumToString.hpp
index dd9f7a198e6..31356cc747b 100644
--- a/deps/LIEF/include/LIEF/MachO/EnumToString.hpp
+++ b/deps/LIEF/include/LIEF/MachO/EnumToString.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/deps/LIEF/include/LIEF/MachO/ExportInfo.hpp b/deps/LIEF/include/LIEF/MachO/ExportInfo.hpp
index 536e983fa00..55ac191f740 100644
--- a/deps/LIEF/include/LIEF/MachO/ExportInfo.hpp
+++ b/deps/LIEF/include/LIEF/MachO/ExportInfo.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -41,17 +41,17 @@ class LIEF_API ExportInfo : public Object {
   friend class Binary;

   public:
-  enum class KIND: uint64_t  {
-    REGULAR           = 0x00u,
+  enum class KIND : uint64_t {
+    REGULAR = 0x00u,
     THREAD_LOCAL_KIND = 0x01u,
-    ABSOLUTE_KIND     = 0x02u
+    ABSOLUTE_KIND = 0x02u,
   };

-  enum class FLAGS: uint64_t  {
-    WEAK_DEFINITION     = 0x04u,
-    REEXPORT            = 0x08u,
-    STUB_AND_RESOLVER   = 0x10u,
-    STATIC_RESOLVER     = 0x20u,
+  enum class FLAGS : uint64_t {
+    WEAK_DEFINITION = 0x04u,
+    REEXPORT = 0x08u,
+    STUB_AND_RESOLVER = 0x10u,
+    STATIC_RESOLVER = 0x20u,
   };

   using flag_list_t = std::vector<FLAGS>;
@@ -60,8 +60,7 @@ class LIEF_API ExportInfo : public Object {
   ExportInfo(uint64_t address, uint64_t flags, uint64_t offset = 0) :
     node_offset_(offset),
     flags_(flags),
-    address_(address)
-  {}
+    address_(address) {}

   ExportInfo& operator=(ExportInfo copy);
   ExportInfo(const ExportInfo& copy);
@@ -112,28 +111,28 @@ class LIEF_API ExportInfo : public Object {
   }

   /// MachO::Symbol associated with this export or a nullptr if no symbol
-  const Symbol* symbol() const {
+  const Symbol* symbol() const LIEF_LIFETIMEBOUND {
     return symbol_;
   }
-  Symbol* symbol() {
+  Symbol* symbol() LIEF_LIFETIMEBOUND {
     return symbol_;
   }

   /// If the export is a ExportInfo::FLAGS::REEXPORT,
   /// this returns the (optional) MachO::Symbol
-  Symbol* alias() {
+  Symbol* alias() LIEF_LIFETIMEBOUND {
     return alias_;
   }
-  const Symbol* alias() const {
+  const Symbol* alias() const LIEF_LIFETIMEBOUND {
     return alias_;
   }

   /// If the export is a ExportInfo::FLAGS::REEXPORT,
   /// this returns the (optional) library (MachO::DylibCommand)
-  DylibCommand* alias_library() {
+  DylibCommand* alias_library() LIEF_LIFETIMEBOUND {
     return alias_location_;
   }
-  const DylibCommand* alias_library() const {
+  const DylibCommand* alias_library() const LIEF_LIFETIMEBOUND {
     return alias_location_;
   }

@@ -141,7 +140,8 @@ class LIEF_API ExportInfo : public Object {

   void accept(Visitor& visitor) const override;

-  LIEF_API friend std::ostream& operator<<(std::ostream& os, const ExportInfo& export_info);
+  LIEF_API friend std::ostream& operator<<(std::ostream& os,
+                                           const ExportInfo& export_info);

   private:
   uint64_t node_offset_ = 0;
diff --git a/deps/LIEF/include/LIEF/MachO/FatBinary.hpp b/deps/LIEF/include/LIEF/MachO/FatBinary.hpp
index 59afbb7564b..5916a7c3d3a 100644
--- a/deps/LIEF/include/LIEF/MachO/FatBinary.hpp
+++ b/deps/LIEF/include/LIEF/MachO/FatBinary.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -31,17 +31,15 @@ class Parser;
 class Builder;
 class Binary;

-/// Class which represent a Mach-O (fat) binary
+/// Class which represents a Mach-O (fat) binary
 /// This object is also used for representing Mach-O binaries that are **NOT FAT**
 class LIEF_API FatBinary {
-
   friend class LIEF::Parser;
   friend class Parser;
   friend class Builder;

   public:
-
-  /// Internal containter used to store Binary objects within a Fat Mach-O
+  /// Internal container used to store Binary objects within a Fat Mach-O
   using binaries_t = std::vector<std::unique_ptr<Binary>>;

   /// Iterator that outputs Binary&
@@ -53,6 +51,13 @@ class LIEF_API FatBinary {
   FatBinary(const FatBinary&) = delete;
   FatBinary& operator=(const FatBinary&) = delete;

+  /// Create a FatBinary object from the provided list of Binary objects.
+  ///
+  /// The binaries **must** target different architectures (i.e. unique
+  /// CPU type and subtype). If a duplicate architecture is detected,
+  /// this function returns a nullptr.
+  static std::unique_ptr<FatBinary> create(binaries_t binaries);
+
   virtual ~FatBinary();

   /// Number of MachO::Binary wrapped by this object
@@ -65,10 +70,10 @@ class LIEF_API FatBinary {
     return binaries_.empty();
   }

-  it_binaries begin() {
+  it_binaries begin() LIEF_LIFETIMEBOUND {
     return binaries_;
   }
-  it_const_binaries begin() const {
+  it_const_binaries begin() const LIEF_LIFETIMEBOUND {
     return binaries_;
   }

@@ -80,22 +85,43 @@ class LIEF_API FatBinary {
     return it_const_binaries(binaries_).end();
   }

-  void release_all_binaries();
+  void release_all_binaries() {
+    for (auto& bin : binaries_) {
+      bin.release(); // NOLINT(bugprone-unused-return-value)
+    }
+  }

-  /// Get a pointer to the last MachO::Binary object presents in this Fat Binary.
-  /// It returns a nullptr if no binary are present.
+  /// Get a pointer to the last MachO::Binary object present in this Fat Binary.
+  /// It returns a nullptr if no binaries are present.
   std::unique_ptr<Binary> pop_back();

   /// Get a pointer to the MachO::Binary specified by the ``index``.
   /// It returns a nullptr if the binary does not exist at the given index.
-  Binary*       at(size_t index);
-  const Binary* at(size_t index) const;
+  Binary* at(size_t index) LIEF_LIFETIMEBOUND {
+    return const_cast<Binary*>(static_cast<const FatBinary*>(this)->at(index));
+  }
+
+  const Binary* at(size_t index) const LIEF_LIFETIMEBOUND {
+    if (index >= size()) {
+      return nullptr;
+    }
+    return binaries_[index].get();
+  }
+
+  Binary* back() {
+    return const_cast<Binary*>(static_cast<const FatBinary*>(this)->back());
+  }
+  const Binary* back() const {
+    return binaries_.empty() ? nullptr : binaries_.back().get();
+  }

-  Binary*       back();
-  const Binary* back() const;
+  Binary* front() {
+    return const_cast<Binary*>(static_cast<const FatBinary*>(this)->front());
+  }

-  Binary*       front();
-  const Binary* front() const;
+  const Binary* front() const {
+    return binaries_.empty() ? nullptr : binaries_.front().get();
+  }

   Binary* operator[](size_t index) {
     return at(index);
@@ -107,7 +133,7 @@ class LIEF_API FatBinary {
   /// Extract a MachO::Binary object. Gives ownership to the caller, and
   /// remove it from this FatBinary object.
   ///
-  /// @warning: this invalidates any previously hold iterator!
+  /// @warning This invalidates any previously held iterator!
   std::unique_ptr<Binary> take(size_t index);

   /// Take the underlying MachO::Binary that matches the given architecture
@@ -118,10 +144,26 @@ class LIEF_API FatBinary {
   /// @param filename Path to write the reconstructed binary
   void write(const std::string& filename);

-  /// Reconstruct the Fat binary object and return his content as bytes
+  /// Reconstruct the Fat binary object and return its content as bytes
   std::vector<uint8_t> raw();

-  LIEF_API friend std::ostream& operator<<(std::ostream& os, const FatBinary& fatbinary);
+  Binary* get(Header::CPU_TYPE cpu) LIEF_LIFETIMEBOUND {
+    return const_cast<Binary*>(static_cast<const FatBinary*>(this)->get(cpu));
+  }
+
+  /// Gets a pointer to the MachO::Binary that matches the given architecture
+  const Binary* get(Header::CPU_TYPE cpu) const LIEF_LIFETIMEBOUND;
+
+  Binary* operator[](Header::CPU_TYPE cpu) {
+    return get(cpu);
+  }
+
+  const Binary* operator[](Header::CPU_TYPE cpu) const {
+    return get(cpu);
+  }
+
+  LIEF_API friend std::ostream& operator<<(std::ostream& os,
+                                           const FatBinary& fatbinary);

   private:
   LIEF_LOCAL FatBinary();
diff --git a/deps/LIEF/include/LIEF/MachO/FilesetCommand.hpp b/deps/LIEF/include/LIEF/MachO/FilesetCommand.hpp
index f4fcde6a2ec..1854e54d1d6 100644
--- a/deps/LIEF/include/LIEF/MachO/FilesetCommand.hpp
+++ b/deps/LIEF/include/LIEF/MachO/FilesetCommand.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -40,8 +40,7 @@ class LIEF_API FilesetCommand : public LoadCommand {
   FilesetCommand() = default;
   FilesetCommand(const details::fileset_entry_command& command);
   FilesetCommand(std::string name) :
-    name_(std::move(name))
-  {}
+    name_(std::move(name)) {}

   FilesetCommand& operator=(FilesetCommand copy);
   FilesetCommand(const FilesetCommand& copy);
@@ -71,11 +70,11 @@ class LIEF_API FilesetCommand : public LoadCommand {

   /// Return a pointer on the LIEF::MachO::Binary associated
   /// with this entry
-  const Binary* binary() const {
+  const Binary* binary() const LIEF_LIFETIMEBOUND {
     return binary_;
   }

-  Binary* binary() {
+  Binary* binary() LIEF_LIFETIMEBOUND {
     return binary_;
   }

diff --git a/deps/LIEF/include/LIEF/MachO/FunctionStarts.hpp b/deps/LIEF/include/LIEF/MachO/FunctionStarts.hpp
index 793cd7a3e08..7af1f4cd600 100644
--- a/deps/LIEF/include/LIEF/MachO/FunctionStarts.hpp
+++ b/deps/LIEF/include/LIEF/MachO/FunctionStarts.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -18,6 +18,7 @@
 #include <vector>
 #include <ostream>

+#include "LIEF/compiler_attributes.hpp"
 #include "LIEF/visibility.h"

 #include "LIEF/span.hpp"
@@ -51,7 +52,8 @@ class LIEF_API FunctionStarts : public LoadCommand {
     return std::unique_ptr<FunctionStarts>(new FunctionStarts(*this));
   }

-  /// Offset in the ``__LINKEDIT`` SegmentCommand where *start functions* are located
+  /// Offset in the ``__LINKEDIT`` SegmentCommand where *start functions* are
+  /// located
   uint32_t data_offset() const {
     return data_offset_;
   }
@@ -63,14 +65,15 @@ class LIEF_API FunctionStarts : public LoadCommand {

   /// Addresses of every function entry point in the executable.
   ///
-  /// This allows functions to exist for which there are no entries in the symbol table.
+  /// This allows functions to exist for which there are no entries in the symbol
+  /// table.
   ///
   /// @warning The address is relative to the ``__TEXT`` segment
-  const std::vector<uint64_t>& functions() const {
+  const std::vector<uint64_t>& functions() const LIEF_LIFETIMEBOUND {
     return functions_;
   }

-  std::vector<uint64_t>& functions() {
+  std::vector<uint64_t>& functions() LIEF_LIFETIMEBOUND {
     return functions_;
   }

@@ -90,11 +93,11 @@ class LIEF_API FunctionStarts : public LoadCommand {
     functions_ = std::move(funcs);
   }

-  span<const uint8_t> content() const {
+  span<const uint8_t> content() const LIEF_LIFETIMEBOUND {
     return content_;
   }

-  span<uint8_t> content() {
+  span<uint8_t> content() LIEF_LIFETIMEBOUND {
     return content_;
   }

@@ -107,6 +110,7 @@ class LIEF_API FunctionStarts : public LoadCommand {
   static bool classof(const LoadCommand* cmd) {
     return cmd->command() == LoadCommand::TYPE::FUNCTION_STARTS;
   }
+
   private:
   uint32_t data_offset_ = 0;
   uint32_t data_size_ = 0;
diff --git a/deps/LIEF/include/LIEF/MachO/FunctionVariantFixups.hpp b/deps/LIEF/include/LIEF/MachO/FunctionVariantFixups.hpp
index 988c11bf5f9..dc93393e2bc 100644
--- a/deps/LIEF/include/LIEF/MachO/FunctionVariantFixups.hpp
+++ b/deps/LIEF/include/LIEF/MachO/FunctionVariantFixups.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -15,35 +15,200 @@
  */
 #ifndef LIEF_MACHO_FUNCTION_VARIANT_FIXUPS_COMMAND_H
 #define LIEF_MACHO_FUNCTION_VARIANT_FIXUPS_COMMAND_H
+#include <vector>
 #include <ostream>

 #include "LIEF/visibility.h"
+#include "LIEF/span.hpp"
+#include "LIEF/iterators.hpp"

 #include "LIEF/MachO/LoadCommand.hpp"

 namespace LIEF {
+class SpanStream;
+
 namespace MachO {
 class BinaryParser;
 class LinkEdit;
+class SegmentCommand;

 namespace details {
 struct linkedit_data_command;
+
+// clang-format off
+//
+// On-disk entry of a `LC_FUNCTION_VARIANT_FIXUPS` payload
+// (mirror of dyld's `FunctionVariantFixups::InternalFixup`)
+struct function_variant_fixup_t {
+  uint32_t seg_offset;
+  uint32_t seg_index     : 4,
+           variant_index : 8,
+           pac_auth      : 1,
+           pac_address   : 1,
+           pac_key       : 2,
+           pac_diversity : 16;
+};
+// clang-format on
 }

-/// Class which represents the `LC_FUNCTION_VARIANT_FIXUPS` command
+/// Class which represents the `LC_FUNCTION_VARIANT_FIXUPS` command.
+///
+/// This command contains the relocations that must be applied to the GOT-like
+/// slots associated with a FunctionVariants table. At runtime, `dyld` resolves
+/// each slot to the best implementation and (re-)signs it according to the
+/// pointer-authentication information.
 class LIEF_API FunctionVariantFixups : public LoadCommand {
   friend class BinaryParser;
   friend class LinkEdit;

   public:
+  /// A single relocation associated with a function-variant. It mirrors the
+  /// `FunctionVariantFixups::InternalFixup` structure used by `dyld` and
+  /// describes a slot that must be fixed up to point to the variant referenced by
+  /// variant_index().
+  class LIEF_API Fixup {
+    public:
+    Fixup() = default;
+    Fixup(uint32_t seg_offset, uint32_t seg_index, uint32_t variant_index,
+          bool pac_auth, bool pac_address, uint8_t pac_key,
+          uint16_t pac_diversity) :
+      seg_offset_(seg_offset),
+      seg_index_(seg_index),
+      variant_index_(variant_index),
+      pac_auth_(pac_auth),
+      pac_address_(pac_address),
+      pac_key_(pac_key),
+      pac_diversity_(pac_diversity) {}
+
+    Fixup(const details::function_variant_fixup_t& raw);
+
+    Fixup(const Fixup&) = default;
+    Fixup& operator=(const Fixup&) = default;
+
+    Fixup(Fixup&&) noexcept = default;
+    Fixup& operator=(Fixup&&) noexcept = default;
+
+    ~Fixup() = default;
+
+    /// Offset of the slot to fix up, relative to the segment designated by
+    /// seg_index()
+    uint32_t seg_offset() const {
+      return seg_offset_;
+    }
+
+    /// Index of the segment that owns the slot to fix up
+    uint32_t seg_index() const {
+      return seg_index_;
+    }
+
+    /// Index of the FunctionVariants runtime table used to resolve the slot
+    uint32_t variant_index() const {
+      return variant_index_;
+    }
+
+    /// Whether the slot is signed with pointer authentication (arm64e)
+    bool pac_auth() const {
+      return pac_auth_;
+    }
+
+    /// Whether the pointer-authentication signature mixes the storage address
+    /// (address diversity)
+    bool pac_address() const {
+      return pac_address_;
+    }
+
+    /// Pointer-authentication key used to sign the slot
+    uint8_t pac_key() const {
+      return pac_key_;
+    }
+
+    /// Pointer-authentication diversity (discriminator) of the slot
+    uint16_t pac_diversity() const {
+      return pac_diversity_;
+    }
+
+    /// SegmentCommand referenced by seg_index() if it could be resolved
+    SegmentCommand* segment() {
+      return segment_;
+    }
+
+    const SegmentCommand* segment() const {
+      return segment_;
+    }
+
+    void seg_offset(uint32_t value) {
+      seg_offset_ = value;
+    }
+
+    void seg_index(uint32_t value) {
+      seg_index_ = value;
+    }
+
+    void variant_index(uint32_t value) {
+      variant_index_ = value;
+    }
+
+    void pac_auth(bool value) {
+      pac_auth_ = value;
+    }
+
+    void pac_address(bool value) {
+      pac_address_ = value;
+    }
+
+    void pac_key(uint8_t value) {
+      pac_key_ = value;
+    }
+
+    void pac_diversity(uint16_t value) {
+      pac_diversity_ = value;
+    }
+
+    void segment(SegmentCommand& seg) {
+      segment_ = &seg;
+    }
+
+    std::string to_string() const;
+
+    LIEF_API friend std::ostream& operator<<(std::ostream& os,
+                                             const Fixup& fixup) {
+      os << fixup.to_string();
+      return os;
+    }
+
+    private:
+    uint32_t seg_offset_ = 0;
+    uint32_t seg_index_ = 0;
+    uint32_t variant_index_ = 0;
+    bool pac_auth_ = false;
+    bool pac_address_ = false;
+    uint8_t pac_key_ = 0;
+    uint16_t pac_diversity_ = 0;
+    SegmentCommand* segment_ = nullptr;
+  };
+
+  using fixups_t = std::vector<Fixup>;
+
+  /// Iterator that outputs Fixup&
+  using it_fixups = ref_iterator<fixups_t&>;
+
+  /// Iterator that outputs const Fixup&
+  using it_const_fixups = const_ref_iterator<const fixups_t&>;
+
   FunctionVariantFixups() = default;
+
+  FunctionVariantFixups(FunctionVariantFixups&&) noexcept = default;
+  FunctionVariantFixups& operator=(FunctionVariantFixups&&) noexcept = default;
+
   FunctionVariantFixups(const details::linkedit_data_command& cmd);

   FunctionVariantFixups& operator=(const FunctionVariantFixups& copy) = default;
   FunctionVariantFixups(const FunctionVariantFixups& copy) = default;

   std::unique_ptr<LoadCommand> clone() const override {
-    return std::unique_ptr<FunctionVariantFixups>(new FunctionVariantFixups(*this));
+    return std::unique_ptr<FunctionVariantFixups>(
+        new FunctionVariantFixups(*this)
+    );
   }

   /// Offset in the `__LINKEDIT` SegmentCommand where the payload starts
@@ -64,14 +229,30 @@ class LIEF_API FunctionVariantFixups : public LoadCommand {
     data_size_ = size;
   }

-  span<const uint8_t> content() const {
+  /// Return the data slice in the `__LINKEDIT` segment referenced by
+  /// data_offset and data_size
+  span<const uint8_t> content() const LIEF_LIFETIMEBOUND {
     return content_;
   }

-  span<uint8_t> content() {
+  span<uint8_t> content() LIEF_LIFETIMEBOUND {
     return content_;
   }

+  /// Iterator over the different Fixup entries
+  it_fixups fixups() LIEF_LIFETIMEBOUND {
+    return fixups_;
+  }
+
+  it_const_fixups fixups() const LIEF_LIFETIMEBOUND {
+    return fixups_;
+  }
+
+  /// Append a new Fixup
+  FunctionVariantFixups& add(Fixup fixup) {
+    fixups_.push_back(fixup);
+    return *this;
+  }

   ~FunctionVariantFixups() override = default;

@@ -81,10 +262,13 @@ class LIEF_API FunctionVariantFixups : public LoadCommand {
     return cmd->command() == LoadCommand::TYPE::FUNCTION_VARIANT_FIXUPS;
   }

+  LIEF_LOCAL static std::vector<Fixup> parse_payload(SpanStream& stream);
+
   private:
   uint32_t data_offset_ = 0;
   uint32_t data_size_ = 0;
   span<uint8_t> content_;
+  std::vector<Fixup> fixups_;
 };

 }
diff --git a/deps/LIEF/include/LIEF/MachO/FunctionVariants.hpp b/deps/LIEF/include/LIEF/MachO/FunctionVariants.hpp
index b3d2aa4eb35..a52333a2d4e 100644
--- a/deps/LIEF/include/LIEF/MachO/FunctionVariants.hpp
+++ b/deps/LIEF/include/LIEF/MachO/FunctionVariants.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -18,6 +18,7 @@
 #include <vector>
 #include <ostream>

+#include "LIEF/compiler_attributes.hpp"
 #include "LIEF/visibility.h"
 #include "LIEF/errors.hpp"
 #include "LIEF/iterators.hpp"
@@ -34,7 +35,16 @@ class LinkEdit;

 namespace details {
 struct linkedit_data_command;
-struct runtime_table_entry_t;
+
+// clang-format off
+// On-disk entry of a `LC_FUNCTION_VARIANTS` runtime table
+struct runtime_table_entry_t {
+  uint32_t impl          : 31,
+           another_table : 1;
+  uint8_t flag_bit_nums[4];
+};
+// clang-format on
+
 }

 /// Class representing the `LC_FUNCTION_VARIANTS` load command.
@@ -64,13 +74,16 @@ class LIEF_API FunctionVariants : public LoadCommand {
   /// This class exposes information about a given implementation.
   class LIEF_API RuntimeTableEntry {
     public:
+    /// The implementation address/index is encoded on 31 bits
+    static constexpr uint32_t MAX_IMPL = (uint32_t(1) << 31) - 1;
+
     static constexpr uint32_t F_BIT = 20;
     static constexpr uint32_t F_MASK = (uint32_t(1) << F_BIT) - 1;

     static constexpr uint32_t F_PER_PROCESS = uint32_t(1) << F_BIT;
     static constexpr uint32_t F_SYSTEM_WIDE = uint32_t(2) << F_BIT;
-    static constexpr uint32_t F_ARM64       = uint32_t(3) << F_BIT;
-    static constexpr uint32_t F_X86_64      = uint32_t(4) << F_BIT;
+    static constexpr uint32_t F_ARM64 = uint32_t(3) << F_BIT;
+    static constexpr uint32_t F_X86_64 = uint32_t(4) << F_BIT;

     /// Flags describing the target platform, environment, or architecture
     /// for a given function implementation.
@@ -80,21 +93,21 @@ class LIEF_API FunctionVariants : public LoadCommand {
     enum class FLAGS : uint32_t {
       UNKNOWN = 0,

-      #define FUNCTION_VARIANT_FLAG(name, value, _) name = (value | F_ARM64),
-        #include "LIEF/MachO/FunctionVariants/Arm64.def"
-      #undef FUNCTION_VARIANT_FLAG
+#define FUNCTION_VARIANT_FLAG(name, value, _) name = (value | F_ARM64),
+#include "LIEF/MachO/FunctionVariants/Arm64.def"
+#undef FUNCTION_VARIANT_FLAG

-      #define FUNCTION_VARIANT_FLAG(name, value, _) name = (value | F_X86_64),
-        #include "LIEF/MachO/FunctionVariants/X86_64.def"
-      #undef FUNCTION_VARIANT_FLAG
+#define FUNCTION_VARIANT_FLAG(name, value, _) name = (value | F_X86_64),
+#include "LIEF/MachO/FunctionVariants/X86_64.def"
+#undef FUNCTION_VARIANT_FLAG

-      #define FUNCTION_VARIANT_FLAG(name, value, _) name = (value | F_SYSTEM_WIDE),
-        #include "LIEF/MachO/FunctionVariants/SystemWide.def"
-      #undef FUNCTION_VARIANT_FLAG
+#define FUNCTION_VARIANT_FLAG(name, value, _) name = (value | F_SYSTEM_WIDE),
+#include "LIEF/MachO/FunctionVariants/SystemWide.def"
+#undef FUNCTION_VARIANT_FLAG

-      #define FUNCTION_VARIANT_FLAG(name, value, _) name = (value | F_PER_PROCESS),
-        #include "LIEF/MachO/FunctionVariants/PerProcess.def"
-      #undef FUNCTION_VARIANT_FLAG
+#define FUNCTION_VARIANT_FLAG(name, value, _) name = (value | F_PER_PROCESS),
+#include "LIEF/MachO/FunctionVariants/PerProcess.def"
+#undef FUNCTION_VARIANT_FLAG
     };

     static uint8_t get_raw(FLAGS f) {
@@ -118,14 +131,28 @@ class LIEF_API FunctionVariants : public LoadCommand {
       return impl_;
     }

+    /// Set the relative address of the implementation (or the index of the
+    /// target entry when another_table() is set).
+    ///
+    /// \note The value is stored on 31 bits, so the most significant bit is
+    ///       silently dropped.
+    void impl(uint32_t value) {
+      impl_ = value & MAX_IMPL;
+    }
+
     /// Indicates whether impl() refers to an entry in another runtime table,
     /// rather than a direct function implementation address.
     bool another_table() const {
       return another_table_;
     }

+    /// Set whether impl() refers to an entry in another runtime table.
+    void another_table(bool value) {
+      another_table_ = value;
+    }
+
     /// The `flagBitNums` value as a slice of bytes
-    span<const uint8_t> flag_bit_nums() const {
+    span<const uint8_t> flag_bit_nums() const LIEF_LIFETIMEBOUND {
       return flag_bit_nums_;
     }

@@ -136,19 +163,19 @@ class LIEF_API FunctionVariants : public LoadCommand {

     std::string to_string() const;

-    LIEF_API friend
-      std::ostream& operator<<(std::ostream& os, const RuntimeTableEntry& entry)
-    {
+    LIEF_API friend std::ostream& operator<<(std::ostream& os,
+                                             const RuntimeTableEntry& entry) {
       os << entry.to_string();
       return os;
     }

-    /// \private
+    /// @private
     LIEF_LOCAL void set_flags(std::vector<FLAGS> flags) {
       flags_ = std::move(flags);
     }
+
     private:
-    bool another_table_;
+    bool another_table_ = false;
     uint32_t impl_ = 0;
     std::array<uint8_t, 4> flag_bit_nums_ = {};
     std::vector<FLAGS> flags_;
@@ -163,10 +190,10 @@ class LIEF_API FunctionVariants : public LoadCommand {
     public:
     using entries_t = std::vector<RuntimeTableEntry>;

-    /// Iterator that output RuntimeTableEntry&
+    /// Iterator that outputs RuntimeTableEntry&
     using it_entries = ref_iterator<entries_t&>;

-    /// Iterator that output const RuntimeTableEntry&
+    /// Iterator that outputs const RuntimeTableEntry&
     using it_const_entries = const_ref_iterator<const entries_t&>;

     /// Enumeration describing the namespace or category of a function variant.
@@ -184,20 +211,21 @@ class LIEF_API FunctionVariants : public LoadCommand {
       /// Variants that apply on a per-process basis
       PER_PROCESS = 1,

-      /// Variants that are selected based on system-wide capabilities or configurations.
+      /// Variants that are selected based on system-wide capabilities or
+      /// configurations.
       SYSTEM_WIDE = 2,

       /// Variants optimized for the ARM64 architecture.
       ARM64 = 3,

       /// Variants optimized for the x86-64 architecture.
-      X86_64 = 4
+      X86_64 = 4,
     };

     RuntimeTable() = default;
     RuntimeTable(KIND kind, uint32_t offset) :
-      kind_(kind), offset_(offset)
-    {}
+      kind_(kind),
+      offset_(offset) {}
     RuntimeTable(const RuntimeTable&) = default;
     RuntimeTable& operator=(const RuntimeTable&) = default;

@@ -217,11 +245,11 @@ class LIEF_API FunctionVariants : public LoadCommand {
     }

     /// Iterator over the different RuntimeTableEntry entries
-    it_entries entries() {
+    it_entries entries() LIEF_LIFETIMEBOUND {
       return entries_;
     }

-    it_const_entries entries() const {
+    it_const_entries entries() const LIEF_LIFETIMEBOUND {
       return entries_;
     }

@@ -231,9 +259,8 @@ class LIEF_API FunctionVariants : public LoadCommand {

     std::string to_string() const;

-    LIEF_API friend
-      std::ostream& operator<<(std::ostream& os, const RuntimeTable& table)
-    {
+    LIEF_API friend std::ostream& operator<<(std::ostream& os,
+                                             const RuntimeTable& table) {
       os << table.to_string();
       return os;
     }
@@ -282,24 +309,30 @@ class LIEF_API FunctionVariants : public LoadCommand {

   /// Return the data slice in the `__LINKEDIT` segment referenced by
   /// data_offset and data_size;
-  span<const uint8_t> content() const {
+  span<const uint8_t> content() const LIEF_LIFETIMEBOUND {
     return content_;
   }

-  span<uint8_t> content() {
+  span<uint8_t> content() LIEF_LIFETIMEBOUND {
     return content_;
   }

   /// Iterator over the different RuntimeTable entries located in the content
   /// of this `__LINKEDIT` command
-  it_runtime_table runtime_table() {
+  it_runtime_table runtime_table() LIEF_LIFETIMEBOUND {
     return runtime_table_;
   }

-  it_const_runtime_table runtime_table() const {
+  it_const_runtime_table runtime_table() const LIEF_LIFETIMEBOUND {
     return runtime_table_;
   }

+  /// Append a new RuntimeTable and return a reference to the inserted table
+  RuntimeTable& add(RuntimeTable table) LIEF_LIFETIMEBOUND {
+    runtime_table_.push_back(std::move(table));
+    return runtime_table_.back();
+  }
+
   ~FunctionVariants() override = default;

   std::ostream& print(std::ostream& os) const override;
@@ -309,7 +342,8 @@ class LIEF_API FunctionVariants : public LoadCommand {
   }

   LIEF_LOCAL static std::vector<RuntimeTable> parse_payload(SpanStream& stream);
-  LIEF_LOCAL static result<RuntimeTable> parse_entry(BinaryStream& stream);
+  LIEF_LOCAL static result<RuntimeTable> parse_entry(BinaryStream& stream,
+                                                     uint64_t max_entries);

   private:
   uint32_t data_offset_ = 0;
diff --git a/deps/LIEF/include/LIEF/MachO/FunctionVariants/PerProcess.def b/deps/LIEF/include/LIEF/MachO/FunctionVariants/PerProcess.def
index f42208d63b2..b710268dc20 100644
--- a/deps/LIEF/include/LIEF/MachO/FunctionVariants/PerProcess.def
+++ b/deps/LIEF/include/LIEF/MachO/FunctionVariants/PerProcess.def
@@ -5,4 +5,5 @@
 FUNCTION_VARIANT_FLAG(PER_PROCESS_DEFAULT     , 0  , "default"     )

 FUNCTION_VARIANT_FLAG(PER_PROCESS_TRANSLATED   , 1  , "translated"  )
+FUNCTION_VARIANT_FLAG(PER_PROCESS_MTE_ENABLED  , 2  , "mte_enabled"  )
 FUNCTION_VARIANT_FLAG(PER_PROCESS_NO_OVERREAD  , 3  , "no_overread" )
diff --git a/deps/LIEF/include/LIEF/MachO/Header.hpp b/deps/LIEF/include/LIEF/MachO/Header.hpp
index b75a1784af3..46f9fc94295 100644
--- a/deps/LIEF/include/LIEF/MachO/Header.hpp
+++ b/deps/LIEF/include/LIEF/MachO/Header.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -37,6 +37,7 @@ struct mach_header;
 /// Class that represents the Mach-O header
 class LIEF_API Header : public Object {
   friend class BinaryParser;
+
   public:
   Header() = default;

@@ -45,6 +46,7 @@ class LIEF_API Header : public Object {

   ~Header() override = default;

+  // clang-format off
   enum class FILE_TYPE : uint32_t {
     UNKNOWN     = 0,
     OBJECT      = 0x1u,
@@ -62,7 +64,9 @@ class LIEF_API Header : public Object {
     GPU_EXECUTE = 0xDu,
     GPU_DYLIB   = 0xEu,
   };
+  // clang-format on

+  // clang-format off
   enum class FLAGS : uint32_t {
     NOUNDEFS                      = 0x00000001u,
     INCRLINK                      = 0x00000002u,
@@ -95,10 +99,12 @@ class LIEF_API Header : public Object {
     IMPLICIT_PAGEZERO             = 0x10000000u,
     DYLIB_IN_CACHE                = 0x80000000u,
   };
+  // clang-format on

   static constexpr int ABI64 = 0x01000000;

-  enum class CPU_TYPE: int32_t {
+  // clang-format off
+  enum class CPU_TYPE : int32_t {
     ANY       = -1,
     X86       = 7,
     X86_64    = 7 | ABI64,
@@ -110,7 +116,7 @@ class LIEF_API Header : public Object {
     MC88000   = 13,
     SPARC     = 14,
     I860      = 15,
-    ALPHA	    = 16,
+    ALPHA     = 16,
     POWERPC   = 18,
     POWERPC64 = 18 | ABI64,
     APPLE_GPU = 19 | ABI64,
@@ -118,6 +124,7 @@ class LIEF_API Header : public Object {
     INTEL_GPU = 21 | ABI64,
     AIR64     = 23 | ABI64,
   };
+  // clang-format on

   static constexpr uint32_t SUBTYPE_MASK = 0xff000000;
   static constexpr uint32_t SUBTYPE_LIB64 = 0x80000000;
@@ -206,14 +213,12 @@ class LIEF_API Header : public Object {

   /// True if the binary is 32-bit
   bool is_32bit() const {
-    return magic_ == MACHO_TYPES::MAGIC ||
-           magic_ == MACHO_TYPES::CIGAM;
+    return magic_ == MACHO_TYPES::MAGIC || magic_ == MACHO_TYPES::CIGAM;
   }

   /// True if the binary is 64-bit
   bool is_64bit() const {
-    return magic_ == MACHO_TYPES::MAGIC_64 ||
-           magic_ == MACHO_TYPES::CIGAM_64;
+    return magic_ == MACHO_TYPES::MAGIC_64 || magic_ == MACHO_TYPES::CIGAM_64;
   }

   void remove(FLAGS flag);
@@ -240,13 +245,13 @@ class LIEF_API Header : public Object {
   LIEF_LOCAL Header(const T& header);

   MACHO_TYPES magic_ = MACHO_TYPES::UNKNOWN;
-  CPU_TYPE   cputype_ = CPU_TYPE::ANY;
-  uint32_t   cpusubtype_;
-  FILE_TYPE  filetype_ = FILE_TYPE::UNKNOWN;
-  uint32_t   ncmds_ = 0;
-  uint32_t   sizeofcmds_ = 0;
-  uint32_t   flags_ = 0;
-  uint32_t   reserved_ = 0;
+  CPU_TYPE cputype_ = CPU_TYPE::ANY;
+  uint32_t cpusubtype_;
+  FILE_TYPE filetype_ = FILE_TYPE::UNKNOWN;
+  uint32_t ncmds_ = 0;
+  uint32_t sizeofcmds_ = 0;
+  uint32_t flags_ = 0;
+  uint32_t reserved_ = 0;
 };

 LIEF_API const char* to_string(Header::FILE_TYPE e);
diff --git a/deps/LIEF/include/LIEF/MachO/IndirectBindingInfo.hpp b/deps/LIEF/include/LIEF/MachO/IndirectBindingInfo.hpp
index b65a63cb6cd..b2eee511242 100644
--- a/deps/LIEF/include/LIEF/MachO/IndirectBindingInfo.hpp
+++ b/deps/LIEF/include/LIEF/MachO/IndirectBindingInfo.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -24,15 +24,14 @@
 namespace LIEF {
 namespace MachO {

-/// This class represents a binding operation infered from the indirect symbol
+/// This class represents a binding operation inferred from the indirect symbol
 /// table.
 class LIEF_API IndirectBindingInfo : public BindingInfo {
   friend class BinaryParser;
-  public:

+  public:
   IndirectBindingInfo(SegmentCommand& segment, Symbol& symbol, int32_t ordinal,
-                      DylibCommand* dylib, uint64_t address)
-  {
+                      DylibCommand* dylib, uint64_t address) {
     segment_ = &segment;
     symbol_ = &symbol;
     library_ordinal_ = ordinal;
@@ -56,8 +55,8 @@ class LIEF_API IndirectBindingInfo : public BindingInfo {

   ~IndirectBindingInfo() override = default;

-  LIEF_API friend
-  std::ostream& operator<<(std::ostream& os, const IndirectBindingInfo& info) {
+  LIEF_API friend std::ostream& operator<<(std::ostream& os,
+                                           const IndirectBindingInfo& info) {
     os << static_cast<const BindingInfo&>(info);
     return os;
   }
diff --git a/deps/LIEF/include/LIEF/MachO/LazyLoadDylibInfo.hpp b/deps/LIEF/include/LIEF/MachO/LazyLoadDylibInfo.hpp
new file mode 100644
index 00000000000..970eadb4e41
--- /dev/null
+++ b/deps/LIEF/include/LIEF/MachO/LazyLoadDylibInfo.hpp
@@ -0,0 +1,298 @@
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
+ *
+ * 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.
+ */
+#ifndef LIEF_MACHO_LAZY_LOAD_DYLIB_INFO_COMMAND_H
+#define LIEF_MACHO_LAZY_LOAD_DYLIB_INFO_COMMAND_H
+#include <string>
+#include <vector>
+#include <ostream>
+
+#include "LIEF/visibility.h"
+#include "LIEF/errors.hpp"
+#include "LIEF/iterators.hpp"
+
+#include "LIEF/MachO/LoadCommand.hpp"
+
+namespace LIEF {
+class SpanStream;
+class BinaryStream;
+class vector_iostream;
+
+namespace MachO {
+class Binary;
+class BinaryParser;
+class Builder;
+class LinkEdit;
+class SegmentCommand;
+
+namespace details {
+struct linkedit_data_command;
+}
+
+/// Class representing the `LC_LAZY_LOAD_DYLIB_INFO` load command.
+///
+/// This command describes how to **lazily load a dylib**: instead of binding
+/// the library and its symbols at launch time, `dyld` keeps the information
+/// required to resolve the dylib on the first use of one of its symbols.
+class LIEF_API LazyLoadDylibInfo : public LoadCommand {
+  friend class BinaryParser;
+  friend class Builder;
+  friend class LinkEdit;
+
+  public:
+  /// A single lazy-binding fixup decoded from the chain referenced by
+  /// chain_start_image_offset and decoded according to pointer_format
+  class LIEF_API Fixup {
+    friend class Binary;
+
+    public:
+    Fixup() = default;
+    Fixup(uint64_t address, uint32_t ordinal, std::string symbol, bool is_auth) :
+      address_(address),
+      ordinal_(ordinal),
+      symbol_(std::move(symbol)),
+      is_auth_(is_auth) {}
+
+    Fixup(const Fixup&) = default;
+    Fixup& operator=(const Fixup&) = default;
+
+    Fixup(Fixup&&) noexcept = default;
+    Fixup& operator=(Fixup&&) noexcept = default;
+
+    ~Fixup() = default;
+
+    /// Virtual address of the slot bound by this fixup
+    uint64_t address() const {
+      return address_;
+    }
+
+    void address(uint64_t value) {
+      address_ = value;
+    }
+
+    /// Index of the bound symbol in the symbols table of LazyLoadDylibInfo
+    uint32_t ordinal() const {
+      return ordinal_;
+    }
+
+    /// Name of the bound symbol, resolved from ordinal() (empty if the ordinal
+    /// is out of the symbols() range)
+    const std::string& symbol() const LIEF_LIFETIMEBOUND {
+      return symbol_;
+    }
+
+    /// Whether the bound pointer is authenticated (`arm64e` PAC)
+    bool is_auth() const {
+      return is_auth_;
+    }
+
+    std::string to_string() const;
+
+    LIEF_API friend std::ostream& operator<<(std::ostream& os,
+                                             const Fixup& fixup) {
+      os << fixup.to_string();
+      return os;
+    }
+
+    private:
+    uint64_t address_ = 0;
+    uint32_t ordinal_ = 0;
+    std::string symbol_;
+    bool is_auth_ = false;
+  };
+  static constexpr auto MAYBE_MISSING_FLAG = 1;
+
+  using fixups_t = std::vector<Fixup>;
+
+  /// Iterator that outputs Fixup&
+  using it_fixups = ref_iterator<fixups_t&>;
+
+  /// Iterator that outputs const Fixup&
+  using it_const_fixups = const_ref_iterator<const fixups_t&>;
+
+  LazyLoadDylibInfo();
+  LazyLoadDylibInfo(const details::linkedit_data_command& cmd);
+
+  LazyLoadDylibInfo& operator=(const LazyLoadDylibInfo& copy) = default;
+  LazyLoadDylibInfo(const LazyLoadDylibInfo& copy) = default;
+
+  std::unique_ptr<LoadCommand> clone() const override {
+    return std::unique_ptr<LazyLoadDylibInfo>(new LazyLoadDylibInfo(*this));
+  }
+
+  /// Offset in the `__LINKEDIT` segment where the payload starts
+  uint32_t data_offset() const {
+    return data_offset_;
+  }
+
+  /// Size of the payload
+  uint32_t data_size() const {
+    return data_size_;
+  }
+
+  void data_offset(uint32_t offset) {
+    data_offset_ = offset;
+  }
+
+  void data_size(uint32_t size) {
+    data_size_ = size;
+  }
+
+  /// Return the data slice in the `__LINKEDIT` segment referenced by
+  /// data_offset and data_size.
+  span<const uint8_t> content() const LIEF_LIFETIMEBOUND {
+    return content_;
+  }
+
+  span<uint8_t> content() LIEF_LIFETIMEBOUND {
+    return content_;
+  }
+
+  /// Load path of the dylib to bind lazily
+  const std::string& load_path() const LIEF_LIFETIMEBOUND {
+    return load_path_;
+  }
+
+  /// Change the load path of the dylib to bind lazily
+  LazyLoadDylibInfo& load_path(std::string value) LIEF_LIFETIMEBOUND {
+    load_path_ = std::move(value);
+    return *this;
+  }
+
+  /// Image offset of the global flag that is set once the dylib has been
+  /// loaded by dyld
+  uint32_t flag_image_offset() const {
+    return flag_image_offset_;
+  }
+
+  LazyLoadDylibInfo& flag_image_offset(uint32_t value) LIEF_LIFETIMEBOUND {
+    flag_image_offset_ = value;
+    return *this;
+  }
+
+  /// Raw flags associated with this command
+  uint16_t flags() const {
+    return flags_;
+  }
+
+  LazyLoadDylibInfo& flags(uint16_t value) LIEF_LIFETIMEBOUND {
+    flags_ = value;
+    return *this;
+  }
+
+  /// Whether the dylib is allowed to be missing at runtime (i.e. "weak
+  /// linked")
+  bool may_be_missing() const {
+    return (flags_ & MAYBE_MISSING_FLAG) != 0;
+  }
+
+  /// Set or clear the "may be missing" (weak linked) bit of flags().
+  LazyLoadDylibInfo& may_be_missing(bool value) LIEF_LIFETIMEBOUND {
+    if (value) {
+      flags_ |= MAYBE_MISSING_FLAG;
+    } else {
+      flags_ &= ~static_cast<uint16_t>(MAYBE_MISSING_FLAG);
+    }
+    return *this;
+  }
+
+  /// Chained-fixups pointer format used by the binding chain
+  /// (e.g. `DYLD_CHAINED_PTR_ARM64E_USERLAND`)
+  uint16_t pointer_format() const {
+    return pointer_format_;
+  }
+
+  LazyLoadDylibInfo& pointer_format(uint16_t value) LIEF_LIFETIMEBOUND {
+    pointer_format_ = value;
+    return *this;
+  }
+
+  /// Image offset of the fixup chain start used to bind the dylib's symbols
+  uint32_t chain_start_image_offset() const {
+    return chain_start_image_offset_;
+  }
+
+  LazyLoadDylibInfo& chain_start_image_offset(uint32_t value) LIEF_LIFETIMEBOUND {
+    chain_start_image_offset_ = value;
+    return *this;
+  }
+
+  /// List of the symbol names to bind lazily for this dylib
+  const std::vector<std::string>& symbols() const LIEF_LIFETIMEBOUND {
+    return symbols_;
+  }
+
+  /// Replace the list of the symbol names to bind lazily for this dylib.
+  LazyLoadDylibInfo& symbols(std::vector<std::string> value) LIEF_LIFETIMEBOUND {
+    symbols_ = std::move(value);
+    return *this;
+  }
+
+  /// Append a symbol name to the list of symbols to bind lazily.
+  LazyLoadDylibInfo& add_symbol(std::string value) LIEF_LIFETIMEBOUND {
+    symbols_.push_back(std::move(value));
+    return *this;
+  }
+
+  /// Remove all the symbol names to bind lazily.
+  LazyLoadDylibInfo& clear_symbols() LIEF_LIFETIMEBOUND {
+    symbols_.clear();
+    return *this;
+  }
+
+  /// Iterator over the lazy-binding Fixup entries
+  it_fixups fixups() LIEF_LIFETIMEBOUND {
+    return fixups_;
+  }
+
+  it_const_fixups fixups() const LIEF_LIFETIMEBOUND {
+    return fixups_;
+  }
+
+  ~LazyLoadDylibInfo() override = default;
+
+  std::ostream& print(std::ostream& os) const override;
+
+  static bool classof(const LoadCommand* cmd) {
+    return cmd->command() == LoadCommand::TYPE::LAZY_LOAD_DYLIB_INFO;
+  }
+
+  /// \private
+  LIEF_LOCAL ok_error_t parse_payload(BinaryStream& stream);
+
+  /// \private
+  LIEF_LOCAL ok_error_t walk_fixups(uint64_t chain_va, SegmentCommand& seg);
+
+  /// \private
+  LIEF_LOCAL ok_error_t serialize(vector_iostream& ios) const;
+
+
+  private:
+  uint32_t data_offset_ = 0;
+  uint32_t data_size_ = 0;
+  span<uint8_t> content_;
+
+  std::string load_path_;
+  uint32_t flag_image_offset_ = 0;
+  uint16_t flags_ = 0;
+  uint16_t pointer_format_ = 0;
+  uint32_t chain_start_image_offset_ = 0;
+  std::vector<std::string> symbols_;
+  fixups_t fixups_;
+};
+
+}
+}
+#endif
diff --git a/deps/LIEF/include/LIEF/MachO/LinkEdit.hpp b/deps/LIEF/include/LIEF/MachO/LinkEdit.hpp
index 8dcee6c37f8..77e5e534273 100644
--- a/deps/LIEF/include/LIEF/MachO/LinkEdit.hpp
+++ b/deps/LIEF/include/LIEF/MachO/LinkEdit.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -16,6 +16,7 @@
 #ifndef LIEF_MACHO_LINK_EDIT_H
 #define LIEF_MACHO_LINK_EDIT_H
 #include <memory>
+#include <vector>

 #include "LIEF/visibility.h"

@@ -36,6 +37,7 @@ class DyldInfo;
 class FunctionStarts;
 class FunctionVariants;
 class FunctionVariantFixups;
+class LazyLoadDylibInfo;
 class LinkerOptHint;
 class SymbolCommand;
 class TwoLevelHints;
@@ -72,10 +74,10 @@ class LIEF_API LinkEdit : public SegmentCommand {

   private:
   LIEF_LOCAL void update_data(const update_fnc_t& f) override;
-  LIEF_LOCAL void update_data(const update_fnc_ws_t& f,
-                              size_t where, size_t size) override;
+  LIEF_LOCAL void update_data(const update_fnc_ws_t& f, size_t where,
+                              size_t size) override;

-  //x-ref to keep the spans in a consistent state
+  // x-ref to keep the spans in a consistent state
   DyldInfo* dyld_ = nullptr;
   DyldChainedFixups* chained_fixups_ = nullptr;
   DyldExportsTrie* exports_trie_ = nullptr;
@@ -88,8 +90,9 @@ class LIEF_API LinkEdit : public SegmentCommand {
   TwoLevelHints* two_lvl_hint_ = nullptr;
   CodeSignature* code_sig_ = nullptr;
   AtomInfo* atom_info_ = nullptr;
-  FunctionVariants*  func_variants_ = nullptr;
+  FunctionVariants* func_variants_ = nullptr;
   FunctionVariantFixups* func_variant_fixups_ = nullptr;
+  std::vector<LazyLoadDylibInfo*> lazy_load_dylibs_;
 };

 }
diff --git a/deps/LIEF/include/LIEF/MachO/LinkerOptHint.hpp b/deps/LIEF/include/LIEF/MachO/LinkerOptHint.hpp
index 0d39f048edb..b98055954d5 100644
--- a/deps/LIEF/include/LIEF/MachO/LinkerOptHint.hpp
+++ b/deps/LIEF/include/LIEF/MachO/LinkerOptHint.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -17,6 +17,7 @@
 #define LIEF_MACHO_LINKER_OPT_HINT_COMMAND_H
 #include <ostream>

+#include "LIEF/compiler_attributes.hpp"
 #include "LIEF/visibility.h"
 #include "LIEF/span.hpp"

@@ -68,11 +69,11 @@ class LIEF_API LinkerOptHint : public LoadCommand {
     data_size_ = size;
   }

-  span<const uint8_t> content() const {
+  span<const uint8_t> content() const LIEF_LIFETIMEBOUND {
     return content_;
   }

-  span<uint8_t> content() {
+  span<uint8_t> content() LIEF_LIFETIMEBOUND {
     return content_;
   }

@@ -87,10 +88,9 @@ class LIEF_API LinkerOptHint : public LoadCommand {
   }

   private:
-  uint32_t      data_offset_ = 0;
-  uint32_t      data_size_   = 0;
+  uint32_t data_offset_ = 0;
+  uint32_t data_size_ = 0;
   span<uint8_t> content_;
-
 };

 }
diff --git a/deps/LIEF/include/LIEF/MachO/LoadCommand.hpp b/deps/LIEF/include/LIEF/MachO/LoadCommand.hpp
index 5dac8aa0379..1dacbf94dd2 100644
--- a/deps/LIEF/include/LIEF/MachO/LoadCommand.hpp
+++ b/deps/LIEF/include/LIEF/MachO/LoadCommand.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -20,6 +20,7 @@
 #include <vector>

 #include "LIEF/Object.hpp"
+#include "LIEF/compiler_attributes.hpp"
 #include "LIEF/visibility.h"
 #include "LIEF/span.hpp"

@@ -33,15 +34,17 @@ namespace details {
 struct load_command;
 }

-/// Based class for the Mach-O load commands
+/// Base class for the Mach-O load commands
 class LIEF_API LoadCommand : public Object {
   friend class Builder;
   friend class BinaryParser;
   friend class Binary;
+
   public:
   using raw_t = std::vector<uint8_t>;

-  enum class TYPE: uint64_t {
+  // clang-format off
+  enum class TYPE : uint64_t {
     UNKNOWN                  = 0,
     SEGMENT                  = 0x00000001u,
     SYMTAB                   = 0x00000002u,
@@ -101,17 +104,18 @@ class LIEF_API LoadCommand : public Object {
     FUNCTION_VARIANTS        = 0x00000037u,
     FUNCTION_VARIANT_FIXUPS  = 0x00000038u,
     TARGET_TRIPLE            = 0x00000039u,
+    LAZY_LOAD_DYLIB_INFO     = 0x0000003Au,

-    LIEF_UNKNOWN             = 0xffee0001u
+    LIEF_UNKNOWN             = 0xffee0001u,
   };
+  // clang-format on

   public:
   LoadCommand() = default;
   LoadCommand(const details::load_command& command);
   LoadCommand(LoadCommand::TYPE type, uint32_t size) :
     command_(type),
-    size_(size)
-  {}
+    size_(size) {}

   LoadCommand& operator=(const LoadCommand& copy) = default;
   LoadCommand(const LoadCommand& copy) = default;
@@ -129,13 +133,13 @@ class LIEF_API LoadCommand : public Object {
     return command_;
   }

-  /// Size of the command (should be greather than ``sizeof(load_command)``)
+  /// Size of the command (should be greater than ``sizeof(load_command)``)
   uint32_t size() const {
     return size_;
   }

   /// Raw command
-  span<const uint8_t> data() const {
+  span<const uint8_t> data() const LIEF_LIFETIMEBOUND {
     return original_data_;
   }

@@ -182,8 +186,8 @@ class LIEF_API LoadCommand : public Object {
   }


-  LIEF_API friend
-  std::ostream& operator<<(std::ostream& os, const LoadCommand& cmd) {
+  LIEF_API friend std::ostream& operator<<(std::ostream& os,
+                                           const LoadCommand& cmd) {
     return cmd.print(os);
   }

diff --git a/deps/LIEF/include/LIEF/MachO/MainCommand.hpp b/deps/LIEF/include/LIEF/MachO/MainCommand.hpp
index 4f752d4ec37..d89cf9ebde1 100644
--- a/deps/LIEF/include/LIEF/MachO/MainCommand.hpp
+++ b/deps/LIEF/include/LIEF/MachO/MainCommand.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -28,7 +28,7 @@ namespace details {
 struct entry_point_command;
 }

-/// Class that represent the LC_MAIN command. This kind
+/// Class that represents the LC_MAIN command. This kind
 /// of command can be used to determine the entrypoint of an executable
 class LIEF_API MainCommand : public LoadCommand {
   public:
diff --git a/deps/LIEF/include/LIEF/MachO/NoteCommand.hpp b/deps/LIEF/include/LIEF/MachO/NoteCommand.hpp
index cf0794cebc8..2e61173e900 100644
--- a/deps/LIEF/include/LIEF/MachO/NoteCommand.hpp
+++ b/deps/LIEF/include/LIEF/MachO/NoteCommand.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -15,8 +15,11 @@
  */
 #ifndef LIEF_MACHO_NOTE_COMMAND_H
 #define LIEF_MACHO_NOTE_COMMAND_H
+#include <algorithm>
 #include <ostream>
+#include <string>

+#include "LIEF/compiler_attributes.hpp"
 #include "LIEF/visibility.h"
 #include "LIEF/span.hpp"

@@ -29,7 +32,7 @@ namespace details {
 struct note_command;
 }

-/// Class that represent the `LC_NOTE` command.
+/// Class that represents the `LC_NOTE` command.
 ///
 /// This command is used to include arbitrary notes or metadata within a binary.
 class LIEF_API NoteCommand : public LoadCommand {
@@ -55,17 +58,18 @@ class LIEF_API NoteCommand : public LoadCommand {
   }

   /// Owner of the note (e.g. `AIR_METALLIB`)
-  span<const char> owner() const {
+  span<const char> owner() const LIEF_LIFETIMEBOUND {
     return owner_;
   }

-  span<char> owner() {
+  span<char> owner() LIEF_LIFETIMEBOUND {
     return owner_;
   }

   /// Owner as a zero-terminated string
   std::string owner_str() const {
-    return std::string(owner_.data(), owner_.size()).c_str();
+    const auto end = std::find(owner_.begin(), owner_.end(), '\0');
+    return {owner_.begin(), end};
   }

   void note_offset(uint64_t offset) {
diff --git a/deps/LIEF/include/LIEF/MachO/Parser.hpp b/deps/LIEF/include/LIEF/MachO/Parser.hpp
index a33a53757d3..c57bd9bcc23 100644
--- a/deps/LIEF/include/LIEF/MachO/Parser.hpp
+++ b/deps/LIEF/include/LIEF/MachO/Parser.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -36,13 +36,13 @@ class FatBinary;
 /// The main interface to parse a Mach-O binary.
 ///
 /// This class is used to parse both Fat & non-Fat binary.
-/// Non-fat binaries are considerated as a **fat** with
+/// Non-fat binaries are considered as a **fat** with
 /// only one architecture. This is why MachO::Parser::parse outputs
 /// a FatBinary object.
 class LIEF_API Parser : public LIEF::Parser {
   public:
   Parser& operator=(const Parser& copy) = delete;
-  Parser(const Parser& copy)            = delete;
+  Parser(const Parser& copy) = delete;

   ~Parser() override;

@@ -53,9 +53,10 @@ class LIEF_API Parser : public LIEF::Parser {
   /// of the parser
   ///
   /// @param[in] filename   Path to the Mach-O file
-  /// @param[in] conf       Parser configuration (Defaut: ParserConfig::deep)
-  static std::unique_ptr<FatBinary> parse(const std::string& filename,
-                                          const ParserConfig& conf = ParserConfig::deep());
+  /// @param[in] conf       Parser configuration (Default: ParserConfig::deep)
+  static std::unique_ptr<FatBinary>
+      parse(const std::string& filename,
+            const ParserConfig& conf = ParserConfig::deep());

   /// Parse a Mach-O file from the raw content provided by the ``data``
   /// parameter
@@ -64,33 +65,63 @@ class LIEF_API Parser : public LIEF::Parser {
   /// of the parser
   ///
   /// @param[in] data       Mach-O file as a vector of bytes
-  /// @param[in] conf       Parser configuration (Defaut: ParserConfig::deep)
-  static std::unique_ptr<FatBinary> parse(const std::vector<uint8_t>& data,
-                                          const ParserConfig& conf = ParserConfig::deep());
+  /// @param[in] conf       Parser configuration (Default: ParserConfig::deep)
+  static std::unique_ptr<FatBinary>
+      parse(const std::vector<uint8_t>& data,
+            const ParserConfig& conf = ParserConfig::deep());


-  /// Parser a Mach-O binary from the provided BinaryStream.
-  static std::unique_ptr<FatBinary> parse(std::unique_ptr<BinaryStream> stream,
-                                          const ParserConfig& conf = ParserConfig::deep());
+  /// Parse a Mach-O binary from the provided BinaryStream.
+  static std::unique_ptr<FatBinary>
+      parse(std::unique_ptr<BinaryStream> stream,
+            const ParserConfig& conf = ParserConfig::deep());

   /// Parse the Mach-O binary from the address given in the first parameter
-  static std::unique_ptr<FatBinary> parse_from_memory(uintptr_t address,
-                                                      const ParserConfig& conf = ParserConfig::deep());
+  static std::unique_ptr<FatBinary>
+      parse_from_memory(uintptr_t address,
+                        const ParserConfig& conf = ParserConfig::deep());

   /// Parse the Mach-O binary from the address given in the first parameter
   /// and the size given in the second parameter
-  static std::unique_ptr<FatBinary> parse_from_memory(uintptr_t address, size_t size,
-                                                      const ParserConfig& conf = ParserConfig::deep());
+  static std::unique_ptr<FatBinary>
+      parse_from_memory(uintptr_t address, size_t size,
+                        const ParserConfig& conf = ParserConfig::deep());
+
+  /// Parse a Mach-O binary from a memory dump located on disk.
+  ///
+  /// A dump is a raw capture of the process memory that was mapped starting at
+  /// the virtual address `addr`. This is typically used to parse a Mach-O image
+  /// that has been dumped from memory (e.g. from a debugger or a runtime hook).
+  ///
+  /// @param[in] filepath Path to the file that contains the memory dump
+  /// @param[in] addr     Virtual address at which the dump was mapped
+  /// @param[in] conf     Optional configuration for the parser
+  static std::unique_ptr<FatBinary>
+      parse_from_dump(const std::string& filepath, uint64_t addr,
+                      const ParserConfig& conf = ParserConfig::deep());
+
+  /// Same as parse_from_dump(const std::string&, uint64_t, const ParserConfig&)
+  /// but the dump is wrapped in the given **non-owned** stream.
+  static std::unique_ptr<FatBinary>
+      parse_from_dump(BinaryStream& stream, uint64_t addr,
+                      const ParserConfig& conf = ParserConfig::deep());
+
+  /// Same as parse_from_dump(const std::string&, uint64_t, const ParserConfig&)
+  /// but the dump is wrapped in the given **owned** stream.
+  static std::unique_ptr<FatBinary>
+      parse_from_dump(std::unique_ptr<BinaryStream> stream, uint64_t addr,
+                      const ParserConfig& conf = ParserConfig::deep());

   private:
   LIEF_LOCAL Parser(const std::string& file, const ParserConfig& conf);
   LIEF_LOCAL Parser(std::vector<uint8_t> data, const ParserConfig& conf);
   LIEF_LOCAL Parser();

-  LIEF_LOCAL ok_error_t build();
-  LIEF_LOCAL ok_error_t build_fat();
+  LIEF_LOCAL ok_error_t parse();
+  LIEF_LOCAL ok_error_t parse_fat();

   LIEF_LOCAL ok_error_t undo_reloc_bindings(uintptr_t base_address);
+  LIEF_LOCAL ok_error_t unpack_tlv();

   std::unique_ptr<BinaryStream> stream_;
   std::vector<std::unique_ptr<Binary>> binaries_;
diff --git a/deps/LIEF/include/LIEF/MachO/ParserConfig.hpp b/deps/LIEF/include/LIEF/MachO/ParserConfig.hpp
index 429d0e2cff8..c93810dc2e6 100644
--- a/deps/LIEF/include/LIEF/MachO/ParserConfig.hpp
+++ b/deps/LIEF/include/LIEF/MachO/ParserConfig.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -36,10 +36,17 @@ struct LIEF_API ParserConfig {
   /// @warning Enabling this flag can slow down the parsing
   ParserConfig& full_dyldinfo(bool flag);

-  bool parse_dyld_exports  = true; ///< Parse the Dyld export trie
-  bool parse_dyld_bindings = true; ///< Parse the Dyld binding opcodes
-  bool parse_dyld_rebases  = true; ///< Parse the Dyld rebase opcodes
-  bool parse_overlay = true; ///< Whether the overlay data should be parsed
+  /// Parse the Dyld export trie
+  bool parse_dyld_exports = true;
+
+  /// Parse the Dyld binding opcodes
+  bool parse_dyld_bindings = true;
+
+  /// Parse the Dyld rebase opcodes
+  bool parse_dyld_rebases = true;
+
+  /// Whether the overlay data should be parsed
+  bool parse_overlay = true;

   /// When parsing Mach-O from memory, this option
   /// can be used to *undo* relocations and symbols bindings.
diff --git a/deps/LIEF/include/LIEF/MachO/RPathCommand.hpp b/deps/LIEF/include/LIEF/MachO/RPathCommand.hpp
index 6e53014c6bc..262c078e9a0 100644
--- a/deps/LIEF/include/LIEF/MachO/RPathCommand.hpp
+++ b/deps/LIEF/include/LIEF/MachO/RPathCommand.hpp
@@ -1,5 +1,5 @@
 /* Copyright 2017 - 2021 J. Rieck (based on R. Thomas's work)
- * Copyright 2017 - 2025 Quarkslab
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -54,7 +54,7 @@ class LIEF_API RPathCommand : public LoadCommand {
   ~RPathCommand() override = default;

   /// The rpath value as a string
-  const std::string& path() const {
+  const std::string& path() const LIEF_LIFETIMEBOUND {
     return path_;
   }

diff --git a/deps/LIEF/include/LIEF/MachO/Relocation.hpp b/deps/LIEF/include/LIEF/MachO/Relocation.hpp
index 365e22e9ef2..95aa8894692 100644
--- a/deps/LIEF/include/LIEF/MachO/Relocation.hpp
+++ b/deps/LIEF/include/LIEF/MachO/Relocation.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -33,7 +33,7 @@ class Symbol;

 /// Class that represents a Mach-O relocation
 ///
-/// @see:
+/// @see
 ///   * MachO::RelocationObject
 ///   * MachO::RelocationDyld
 ///   * MachO::RelocationFixup
@@ -46,9 +46,9 @@ class LIEF_API Relocation : public LIEF::Relocation {
   using LIEF::Relocation::size;

   enum class ORIGIN {
-    UNKNOWN        = 0,
-    DYLDINFO       = 1,
-    RELOC_TABLE    = 2,
+    UNKNOWN = 0,
+    DYLDINFO = 1,
+    RELOC_TABLE = 2,
     CHAINED_FIXUPS = 3,
   };

@@ -69,8 +69,8 @@ class LIEF_API Relocation : public LIEF::Relocation {
   /// Indicates whether the item containing the address to be
   /// relocated is part of a CPU instruction that uses PC-relative addressing.
   ///
-  /// For addresses contained in PC-relative instructions, the CPU adds the address of
-  /// the instruction to the address contained in the instruction.
+  /// For addresses contained in PC-relative instructions, the CPU adds the address
+  /// of the instruction to the address contained in the instruction.
   virtual bool is_pc_relative() const = 0;

   /// Type of the relocation according to the
@@ -87,7 +87,7 @@ class LIEF_API Relocation : public LIEF::Relocation {
     return type_;
   }

-  /// Achitecture targeted by this relocation
+  /// Architecture targeted by this relocation
   Header::CPU_TYPE architecture() const {
     return architecture_;
   }
@@ -102,10 +102,10 @@ class LIEF_API Relocation : public LIEF::Relocation {

   /// Symbol associated with the relocation, if any,
   /// otherwise a nullptr.
-  Symbol* symbol() {
+  Symbol* symbol() LIEF_LIFETIMEBOUND {
     return symbol_;
   }
-  const Symbol* symbol() const {
+  const Symbol* symbol() const LIEF_LIFETIMEBOUND {
     return symbol_;
   }

@@ -116,10 +116,10 @@ class LIEF_API Relocation : public LIEF::Relocation {

   /// Section associated with the relocation, if any,
   /// otherwise a nullptr.
-  Section* section() {
+  Section* section() LIEF_LIFETIMEBOUND {
     return section_;
   }
-  const Section* section() const {
+  const Section* section() const LIEF_LIFETIMEBOUND {
     return section_;
   }

@@ -130,16 +130,17 @@ class LIEF_API Relocation : public LIEF::Relocation {

   /// SegmentCommand associated with the relocation, if any,
   /// otherwise a nullptr.
-  SegmentCommand* segment() {
+  SegmentCommand* segment() LIEF_LIFETIMEBOUND {
     return segment_;
   }
-  const SegmentCommand* segment() const {
+  const SegmentCommand* segment() const LIEF_LIFETIMEBOUND {
     return segment_;
   }

   template<class T>
   const T* cast() const {
-    static_assert(std::is_base_of<Relocation, T>::value, "Require Relocation inheritance");
+    static_assert(std::is_base_of<Relocation, T>::value,
+                  "Require Relocation inheritance");
     if (T::classof(*this)) {
       return static_cast<const T*>(this);
     }
@@ -158,13 +159,14 @@ class LIEF_API Relocation : public LIEF::Relocation {

   virtual std::ostream& print(std::ostream& os) const;

-  LIEF_API friend std::ostream& operator<<(std::ostream& os, const Relocation& relocation);
+  LIEF_API friend std::ostream& operator<<(std::ostream& os,
+                                           const Relocation& relocation);

   protected:
-  Symbol*         symbol_ = nullptr;
-  uint8_t         type_ = 0;
+  Symbol* symbol_ = nullptr;
+  uint8_t type_ = 0;
   Header::CPU_TYPE architecture_ = Header::CPU_TYPE::ANY;
-  Section*        section_ = nullptr;
+  Section* section_ = nullptr;
   SegmentCommand* segment_ = nullptr;
 };

diff --git a/deps/LIEF/include/LIEF/MachO/RelocationDyld.hpp b/deps/LIEF/include/LIEF/MachO/RelocationDyld.hpp
index f4b0a1a3c09..23b7d936c2c 100644
--- a/deps/LIEF/include/LIEF/MachO/RelocationDyld.hpp
+++ b/deps/LIEF/include/LIEF/MachO/RelocationDyld.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -28,8 +28,8 @@ class BinaryParser;

 /// Class that represents a relocation found in the DyldInfo structure.
 ///
-/// While this class does not have an associated structure in the Mach-O format specification,
-/// it provides a convenient interface for the Dyld::rebase
+/// While this class does not have an associated structure in the Mach-O format
+/// specification, it provides a convenient interface for the Dyld::rebase
 class LIEF_API RelocationDyld : public Relocation {

   friend class BinaryParser;
@@ -54,8 +54,8 @@ class LIEF_API RelocationDyld : public Relocation {
   /// Indicates whether the item containing the address to be
   /// relocated is part of a CPU instruction that uses PC-relative addressing.
   ///
-  /// For addresses contained in PC-relative instructions, the CPU adds the address of
-  /// the instruction to the address contained in the instruction.
+  /// For addresses contained in PC-relative instructions, the CPU adds the address
+  /// of the instruction to the address contained in the instruction.
   bool is_pc_relative() const override;

   /// Origin of the relocation. For this concrete object, it
diff --git a/deps/LIEF/include/LIEF/MachO/RelocationFixup.hpp b/deps/LIEF/include/LIEF/MachO/RelocationFixup.hpp
index 6a7a07c0b2a..7fcf55c8dbe 100644
--- a/deps/LIEF/include/LIEF/MachO/RelocationFixup.hpp
+++ b/deps/LIEF/include/LIEF/MachO/RelocationFixup.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -39,16 +39,19 @@ class BinaryParser;
 class Builder;
 class DyldChainedFixupsCreator;

-/// Class that represents a rebase relocation found in the `LC_DYLD_CHAINED_FIXUPS` command.
+/// Class that represents a rebase relocation found in the `LC_DYLD_CHAINED_FIXUPS`
+/// command.
 ///
-/// This class extends LIEF::Relocation in which LIEF::Relocation::address is set to
-/// the absolute virtual address where the relocation must take place (e.g. `0x10000d270`).
+/// This class extends LIEF::Relocation in which LIEF::Relocation::address is set
+/// to the absolute virtual address where the relocation must take place (e.g.
+/// `0x10000d270`).
 ///
 /// On the other hand, RelocationFixup::target contains the value that should be
-/// set at LIEF::Relocation::address if the imagebase is LIEF::Binary::imagebase (e.g. `0x1000073a8`).
+/// set at LIEF::Relocation::address if the imagebase is LIEF::Binary::imagebase
+/// (e.g. `0x1000073a8`).
 ///
-/// If the Mach-O loader chooses another base address (like 0x7ff100000), it must set
-/// `0x10000d270` to `0x7ff1073a8`.
+/// If the Mach-O loader chooses another base address (like 0x7ff100000), it must
+/// set `0x10000d270` to `0x7ff1073a8`.
 class LIEF_API RelocationFixup : public Relocation {

   friend class BinaryParser;
@@ -86,9 +89,10 @@ class LIEF_API RelocationFixup : public Relocation {
     return ptr_fmt_;
   }

-  /// The value that should be set at the address pointed by LIEF::Relocation::address
-  /// if the imagebase chosen by the loader is LIEF::Binary::imagebase.
-  /// Otherwise: target() - LIEF::Binary::imagebase() + new_imagebase.
+  /// The value that should be set at the address pointed by
+  /// LIEF::Relocation::address if the imagebase chosen by the loader is
+  /// LIEF::Binary::imagebase. Otherwise: target() - LIEF::Binary::imagebase() +
+  /// new_imagebase.
   uint64_t target() const;
   void target(uint64_t target);

@@ -143,8 +147,10 @@ class LIEF_API RelocationFixup : public Relocation {
   LIEF_LOCAL void set(const details::dyld_chained_ptr_arm64e_auth_rebase& fixup);
   LIEF_LOCAL void set(const details::dyld_chained_ptr_64_rebase& fixup);
   LIEF_LOCAL void set(const details::dyld_chained_ptr_32_rebase& fixup);
-  LIEF_LOCAL void set(const details::dyld_chained_ptr_arm64e_segmented_rebase& fixup);
-  LIEF_LOCAL void set(const details::dyld_chained_ptr_arm64e_auth_segmented_rebase& fixup);
+  LIEF_LOCAL void
+      set(const details::dyld_chained_ptr_arm64e_segmented_rebase& fixup);
+  LIEF_LOCAL void
+      set(const details::dyld_chained_ptr_arm64e_auth_segmented_rebase& fixup);

   DYLD_CHAINED_PTR_FORMAT ptr_fmt_ = DYLD_CHAINED_PTR_FORMAT::PTR_32;
   uint64_t imagebase_ = 0;
@@ -153,10 +159,10 @@ class LIEF_API RelocationFixup : public Relocation {
   REBASE_TYPES rtypes_ = REBASE_TYPES::UNKNOWN;

   union {
-    details::dyld_chained_ptr_arm64e_rebase*      arm64_rebase_ = nullptr;
+    details::dyld_chained_ptr_arm64e_rebase* arm64_rebase_ = nullptr;
     details::dyld_chained_ptr_arm64e_auth_rebase* arm64_auth_rebase_;
-    details::dyld_chained_ptr_64_rebase*          p64_rebase_;
-    details::dyld_chained_ptr_32_rebase*          p32_rebase_;
+    details::dyld_chained_ptr_64_rebase* p64_rebase_;
+    details::dyld_chained_ptr_32_rebase* p32_rebase_;
     details::dyld_chained_ptr_arm64e_segmented_rebase* segmented_rebase_;
     details::dyld_chained_ptr_arm64e_auth_segmented_rebase* auth_segmented_rebase_;
   };
diff --git a/deps/LIEF/include/LIEF/MachO/RelocationObject.hpp b/deps/LIEF/include/LIEF/MachO/RelocationObject.hpp
index 82b2b6da19c..f17c61009c3 100644
--- a/deps/LIEF/include/LIEF/MachO/RelocationObject.hpp
+++ b/deps/LIEF/include/LIEF/MachO/RelocationObject.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -31,7 +31,7 @@ struct relocation_info;
 struct scattered_relocation_info;
 }

-/// Class that represents a relocation presents in the MachO object
+/// Class that represents a relocation present in the MachO object
 /// file (``.o``). Usually, this kind of relocation is found in the MachO::Section
 ///
 /// @see RelocationDyld
@@ -65,7 +65,8 @@ class LIEF_API RelocationObject : public Relocation {
   size_t size() const override;

   /// Address where the relocation is applied
-  /// This address is relative to the start of the section where the relocation takes place
+  /// This address is relative to the start of the section where the relocation
+  /// takes place
   uint64_t address() const override;

   /// ``true`` if the relocation is a scattered one
@@ -79,11 +80,12 @@ class LIEF_API RelocationObject : public Relocation {
   ///
   /// For relocatable expressions with the difference of two section addresses,
   /// the address from which to subtract (in mathematical terms, the minuend)
-  /// is contained in the first relocation entry and the address to subtract (the subtrahend)
-  /// is contained in the second relocation entry.
+  /// is contained in the first relocation entry and the address to subtract (the
+  /// subtrahend) is contained in the second relocation entry.
   int32_t value() const;

-  /// Origin of the relocation. For this object it should be Relocation::ORIGIN::RELOC_TABLE)
+  /// Origin of the relocation. For this object it should be
+  /// Relocation::ORIGIN::RELOC_TABLE)
   ORIGIN origin() const override {
     return ORIGIN::RELOC_TABLE;
   }
diff --git a/deps/LIEF/include/LIEF/MachO/Routine.hpp b/deps/LIEF/include/LIEF/MachO/Routine.hpp
index 8bd97cc486c..c59186de9c1 100644
--- a/deps/LIEF/include/LIEF/MachO/Routine.hpp
+++ b/deps/LIEF/include/LIEF/MachO/Routine.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -27,7 +27,7 @@ namespace MachO {
 class BinaryParser;

 /// Class that represents the `LC_ROUTINE/LC_ROUTINE64` commands.
-/// Accodring to the Mach-O `loader.h` documentation:
+/// According to the Mach-O `loader.h` documentation:
 ///
 /// > The routines command contains the address of the dynamic shared library
 /// > initialization routine and an index into the module table for the module
@@ -37,6 +37,7 @@ class BinaryParser;
 /// > routines (used for C++ static constructors) in the library.
 class LIEF_API Routine : public LoadCommand {
   friend class BinaryParser;
+
   public:
   Routine() = default;

@@ -126,6 +127,7 @@ class LIEF_API Routine : public LoadCommand {
     return cmd->command() == LoadCommand::TYPE::ROUTINES ||
            cmd->command() == LoadCommand::TYPE::ROUTINES_64;
   }
+
   private:
   uint64_t init_address_ = 0;
   uint64_t init_module_ = 0;
diff --git a/deps/LIEF/include/LIEF/MachO/Section.hpp b/deps/LIEF/include/LIEF/MachO/Section.hpp
index 20d7cdaad26..1a65307bc5b 100644
--- a/deps/LIEF/include/LIEF/MachO/Section.hpp
+++ b/deps/LIEF/include/LIEF/MachO/Section.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -15,11 +15,13 @@
  */
 #ifndef LIEF_MACHO_SECTION_H
 #define LIEF_MACHO_SECTION_H
+#include <cstdint>
 #include <string>
 #include <vector>
 #include <ostream>
 #include <memory>

+#include "LIEF/compiler_attributes.hpp"
 #include "LIEF/visibility.h"

 #include "LIEF/Abstract/Section.hpp"
@@ -50,7 +52,7 @@ class LIEF_API Section : public LIEF::Section {
   friend class SegmentCommand;

   public:
-  using content_t   = std::vector<uint8_t>;
+  using content_t = std::vector<uint8_t>;

   /// Internal container for storing Mach-O Relocation
   using relocations_t = std::vector<std::unique_ptr<Relocation>>;
@@ -59,67 +61,117 @@ class LIEF_API Section : public LIEF::Section {
   using it_relocations = ref_iterator<relocations_t&, Relocation*>;

   /// Iterator which outputs const Relocation&
-  using it_const_relocations = const_ref_iterator<const relocations_t&, const Relocation*>;
+  using it_const_relocations =
+      const_ref_iterator<const relocations_t&, const Relocation*>;

   static constexpr auto FLAGS_MASK = uint32_t(0xffffff00u);
   static constexpr auto TYPE_MASK = uint32_t(0xff);

-  enum class TYPE: uint64_t  {
-    REGULAR                             = 0x00u, ///< Regular section.
-    ZEROFILL                            = 0x01u, ///< Zero fill on demand section.
-    CSTRING_LITERALS                    = 0x02u, ///< Section with literal C strings.
-    IS_4BYTE_LITERALS                    = 0x03u, ///< Section with 4 byte literals.
-    IS_8BYTE_LITERALS                    = 0x04u, ///< Section with 8 byte literals.
-    LITERAL_POINTERS                    = 0x05u, ///< Section with pointers to literals.
-    NON_LAZY_SYMBOL_POINTERS            = 0x06u, ///< Section with non-lazy symbol pointers.
-    LAZY_SYMBOL_POINTERS                = 0x07u, ///< Section with lazy symbol pointers.
-    SYMBOL_STUBS                        = 0x08u, ///< Section with symbol stubs, byte size of stub in the Reserved2 field.
-    MOD_INIT_FUNC_POINTERS              = 0x09u, ///< Section with only function pointers for initialization.
-    MOD_TERM_FUNC_POINTERS              = 0x0au, ///< Section with only function pointers for termination.
-    COALESCED                           = 0x0bu, ///< Section contains symbols that are to be coalesced.
-    GB_ZEROFILL                         = 0x0cu, ///< Zero fill on demand section (that can be larger than 4 gigabytes).
-    INTERPOSING                         = 0x0du, ///< Section with only pairs of function pointers for interposing.
-    IS_16BYTE_LITERALS                   = 0x0eu, ///< Section with only 16 byte literals.
-    DTRACE_DOF                          = 0x0fu, ///< Section contains DTrace Object Format.
-    LAZY_DYLIB_SYMBOL_POINTERS          = 0x10u, ///< Section with lazy symbol pointers to lazy loaded dylibs.
-    THREAD_LOCAL_REGULAR                = 0x11u, ///< Thread local data section.
-    THREAD_LOCAL_ZEROFILL               = 0x12u, ///< Thread local zerofill section.
-    THREAD_LOCAL_VARIABLES              = 0x13u, ///< Section with thread local variable structure data.
-    THREAD_LOCAL_VARIABLE_POINTERS      = 0x14u, ///< Section with pointers to thread local structures.
-    THREAD_LOCAL_INIT_FUNCTION_POINTERS = 0x15u, ///< Section with thread local variable initialization pointers to functions.
-    INIT_FUNC_OFFSETS                   = 0x16u, ///< Section with 32-bit offsets to initializer functions
+  enum class TYPE : uint64_t {
+    /// Regular section.
+    REGULAR = 0x00u,
+    /// Zero fill on demand section.
+    ZEROFILL = 0x01u,
+    /// Section with literal C strings.
+    CSTRING_LITERALS = 0x02u,
+    /// Section with 4 byte literals.
+    IS_4BYTE_LITERALS = 0x03u,
+    /// Section with 8 byte literals.
+    IS_8BYTE_LITERALS = 0x04u,
+    /// Section with pointers to literals.
+    LITERAL_POINTERS = 0x05u,
+    /// Section with non-lazy symbol pointers.
+    NON_LAZY_SYMBOL_POINTERS = 0x06u,
+    /// Section with lazy symbol pointers.
+    LAZY_SYMBOL_POINTERS = 0x07u,
+    /// Section with symbol stubs, byte size of stub in the Reserved2 field.
+    SYMBOL_STUBS = 0x08u,
+    /// Section with only function pointers for initialization.
+    MOD_INIT_FUNC_POINTERS = 0x09u,
+    /// Section with only function pointers for termination.
+    MOD_TERM_FUNC_POINTERS = 0x0au,
+    /// Section contains symbols that are to be coalesced.
+    COALESCED = 0x0bu,
+    /// Zero fill on demand section (that can be larger than 4 gigabytes).
+    GB_ZEROFILL = 0x0cu,
+    /// Section with only pairs of function pointers for interposing.
+    INTERPOSING = 0x0du,
+    /// Section with only 16 byte literals.
+    IS_16BYTE_LITERALS = 0x0eu,
+    /// Section contains DTrace Object Format.
+    DTRACE_DOF = 0x0fu,
+    /// Section with lazy symbol pointers to lazy loaded dylibs.
+    LAZY_DYLIB_SYMBOL_POINTERS = 0x10u,
+    /// Thread local data section.
+    THREAD_LOCAL_REGULAR = 0x11u,
+    /// Thread local zerofill section.
+    THREAD_LOCAL_ZEROFILL = 0x12u,
+    /// Section with thread local variable structure data.
+    THREAD_LOCAL_VARIABLES = 0x13u,
+    /// Section with pointers to thread local structures.
+    THREAD_LOCAL_VARIABLE_POINTERS = 0x14u,
+    /// Section with thread local variable initialization pointers to functions.
+    THREAD_LOCAL_INIT_FUNCTION_POINTERS = 0x15u,
+    /// Section with 32-bit offsets to initializer functions.
+    INIT_FUNC_OFFSETS = 0x16u,
   };

-  enum class FLAGS: uint64_t  {
-    PURE_INSTRUCTIONS   = 0x80000000u, ///< Section contains only true machine instructions
-    NO_TOC              = 0x40000000u, ///< Section contains coalesced symbols that are not to be in a ranlib table of contents.
-    STRIP_STATIC_SYMS   = 0x20000000u, ///< Ok to strip static symbols in this section in files with the MY_DYLDLINK flag.
-    NO_DEAD_STRIP       = 0x10000000u, ///< No dead stripping.
-    LIVE_SUPPORT        = 0x08000000u, ///< Blocks are live if they reference live blocks.
-    SELF_MODIFYING_CODE = 0x04000000u, ///< Used with i386 code stubs written on by dyld
-    DEBUG_INFO          = 0x02000000u, ///< A debug section.
-
-    SOME_INSTRUCTIONS   = 0x00000400u, ///< Section contains some machine instructions.
-    EXT_RELOC           = 0x00000200u, ///< Section has external relocation entries.
-    LOC_RELOC           = 0x00000100u, ///< Section has local relocation entries.
+  enum class FLAGS : uint64_t {
+    /// Section contains only true machine instructions.
+    PURE_INSTRUCTIONS = 0x80000000u,
+    /// Section contains coalesced symbols that are not to be in a ranlib
+    /// table of contents.
+    NO_TOC = 0x40000000u,
+    /// Ok to strip static symbols in this section in files with the
+    /// MY_DYLDLINK flag.
+    STRIP_STATIC_SYMS = 0x20000000u,
+    /// No dead stripping.
+    NO_DEAD_STRIP = 0x10000000u,
+    /// Blocks are live if they reference live blocks.
+    LIVE_SUPPORT = 0x08000000u,
+    /// Used with i386 code stubs written on by dyld.
+    SELF_MODIFYING_CODE = 0x04000000u,
+    /// A debug section.
+    DEBUG_INFO = 0x02000000u,
+    /// Section contains some machine instructions.
+    SOME_INSTRUCTIONS = 0x00000400u,
+    /// Section has external relocation entries.
+    EXT_RELOC = 0x00000200u,
+    /// Section has local relocation entries.
+    LOC_RELOC = 0x00000100u,
   };

   public:
-  Section();
-  Section(const details::section_32& section_cmd);
-  Section(const details::section_64& section_cmd);
+  static std::unique_ptr<Section> create(const details::section_32& sec);
+  static std::unique_ptr<Section> create(const details::section_64& sec);

-  Section(std::string name);
-  Section(std::string name, content_t content);
+  static std::unique_ptr<Section> create(std::string name,
+                                         const content_t& content,
+                                         TYPE type = TYPE::REGULAR);

-  Section& operator=(Section copy);
-  Section(const Section& copy);

-  void swap(Section& other) noexcept;
+  static std::unique_ptr<Section> create(std::string name,
+                                         TYPE type = TYPE::REGULAR) {
+    return create(std::move(name), /*content=*/{}, type);
+  }
+
+  Section(const details::section_32& sec);
+  Section(const details::section_64& sec);
+
+  Section(Section&&);
+  Section& operator=(Section&&);

   ~Section() override;

-  span<const uint8_t> content() const override;
+  virtual std::unique_ptr<Section> clone() const {
+    return std::unique_ptr<Section>(new Section(*this));
+  }
+
+  span<const uint8_t> content() const LIEF_LIFETIMEBOUND override;
+
+  span<uint8_t> content() LIEF_LIFETIMEBOUND {
+    return as_writable(static_cast<const Section*>(this)->content());
+  }

   /// Update the content of the section
   void content(const content_t& data) override;
@@ -138,7 +190,8 @@ class LIEF_API Section : public LIEF::Section {
   }

   /// Offset of the relocation table. This value should be 0
-  /// for executable and libraries as the relocations are managed by the DyldInfo::rebase
+  /// for executable and libraries as the relocations are managed by the
+  /// DyldInfo::rebase
   ///
   /// On the other hand, for object files (``.o``) this value should not be 0
   ///
@@ -200,10 +253,10 @@ class LIEF_API Section : public LIEF::Section {

   /// The segment associated with this section or a nullptr
   /// if not present
-  SegmentCommand* segment() {
+  SegmentCommand* segment() LIEF_LIFETIMEBOUND {
     return segment_;
   }
-  const SegmentCommand* segment() const {
+  const SegmentCommand* segment() const LIEF_LIFETIMEBOUND {
     return segment_;
   }

@@ -212,16 +265,19 @@ class LIEF_API Section : public LIEF::Section {

   /// Clear the content of this section by filling its values
   /// with the byte provided in parameter
-  void clear(uint8_t v);
+  void clear(uint8_t v) {
+    span<uint8_t> write_content = content();
+    std::fill(write_content.begin(), write_content.end(), v);
+  }

   /// Return an iterator over the MachO::Relocation associated with this section
   ///
-  /// This iterator is likely to be empty of executable and libraries while it should not
-  /// for object files (``.o``)
-  it_relocations relocations() {
+  /// This iterator is likely to be empty for executables and libraries while it
+  /// should not be for object files (``.o``)
+  it_relocations relocations() LIEF_LIFETIMEBOUND {
     return relocations_;
   }
-  it_const_relocations relocations() const {
+  it_const_relocations relocations() const LIEF_LIFETIMEBOUND {
     return relocations_;
   }

@@ -273,11 +329,32 @@ class LIEF_API Section : public LIEF::Section {
     return *this;
   }

+  template<class T>
+  const T* cast() const {
+    static_assert(std::is_base_of<Section, T>::value,
+                  "Require Section inheritance");
+    if (T::classof(this)) {
+      return static_cast<const T*>(this);
+    }
+    return nullptr;
+  }
+
+  template<class T>
+  T* cast() {
+    return const_cast<T*>(static_cast<const Section*>(this)->cast<T>());
+  }
+
   void accept(Visitor& visitor) const override;

-  LIEF_API friend std::ostream& operator<<(std::ostream& os, const Section& section);
+  LIEF_API friend std::ostream& operator<<(std::ostream& os,
+                                           const Section& section);
+
+  protected:
+  Section();
+
+  Section& operator=(const Section& copy);
+  Section(const Section& copy);

-  private:
   std::string segment_name_;
   uint64_t original_size_ = 0;
   uint32_t align_ = 0;
@@ -288,7 +365,7 @@ class LIEF_API Section : public LIEF::Section {
   uint32_t reserved2_ = 0;
   uint32_t reserved3_ = 0;
   content_t content_;
-  SegmentCommand *segment_ = nullptr;
+  SegmentCommand* segment_ = nullptr;
   relocations_t relocations_;
 };

diff --git a/deps/LIEF/include/LIEF/MachO/SegmentCommand.hpp b/deps/LIEF/include/LIEF/MachO/SegmentCommand.hpp
index ef755628bfc..eb6770e3350 100644
--- a/deps/LIEF/include/LIEF/MachO/SegmentCommand.hpp
+++ b/deps/LIEF/include/LIEF/MachO/SegmentCommand.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -23,6 +23,7 @@

 #include "LIEF/enums.hpp"
 #include "LIEF/span.hpp"
+#include "LIEF/compiler_attributes.hpp"
 #include "LIEF/visibility.h"

 #include "LIEF/iterators.hpp"
@@ -38,6 +39,7 @@ class BinaryParser;
 class Builder;
 class DyldChainedFixupsCreator;
 class DyldInfo;
+class Parser;
 class Relocation;
 class Section;

@@ -46,11 +48,13 @@ struct segment_command_32;
 struct segment_command_64;
 }

-/// Class which represents a LoadCommand::TYPE::SEGMENT / LoadCommand::TYPE::SEGMENT_64 command
+/// Class which represents a LoadCommand::TYPE::SEGMENT /
+/// LoadCommand::TYPE::SEGMENT_64 command
 class LIEF_API SegmentCommand : public LoadCommand {

   friend class DyldChainedFixupsCreator;
   friend class BinaryParser;
+  friend class Parser;
   friend class Binary;
   friend class Section;
   friend class Builder;
@@ -74,22 +78,31 @@ class LIEF_API SegmentCommand : public LoadCommand {
   using it_relocations = ref_iterator<relocations_t&, Relocation*>;

   /// Iterator which outputs const Relocation&
-  using it_const_relocations = const_ref_iterator<const relocations_t&, const Relocation*>;
-
-  enum class FLAGS: uint64_t  {
-    HIGHVM              = 0x1u, ///< The file contents for this segment are for the high part of the virtual memory space; the low part is zero filled (for stacks in core files).
-    FVMLIB              = 0x2u, ///< this segment is the VM that is allocated by a fixed VM library, for overlap checking in the link editor.
-    NORELOC             = 0x4u, ///< This segment has nothing that was relocated in it and nothing relocated to it. It may be safely replaced without relocation.
+  using it_const_relocations =
+      const_ref_iterator<const relocations_t&, const Relocation*>;
+
+  enum class FLAGS : uint64_t {
+    /// The file contents for this segment are for the high part of the virtual
+    /// memory space; the low part is zero filled (for stacks in core files).
+    HIGHVM = 0x1u,
+    /// This segment is the VM that is allocated by a fixed VM library, for
+    /// overlap checking in the link editor.
+    FVMLIB = 0x2u,
+    /// This segment has nothing that was relocated in it and nothing relocated
+    /// to it. It may be safely replaced without relocation.
+    NORELOC = 0x4u,
     PROTECTED_VERSION_1 = 0x8u,
-    READ_ONLY           = 0x10u,
+    READ_ONLY = 0x10u,
   };

-  /// Values for segment_command.initprot.
-  /// From <mach/vm_prot.h>
-  enum class VM_PROTECTIONS  {
-    READ    = 0x1, ///< Reading data within the segment is allowed
-    WRITE   = 0x2, ///< Writing data within the segment is allowed
-    EXECUTE = 0x4, ///< Executing data within the segment is allowed
+  /// Values for segment_command.initprot. From <mach/vm_prot.h>
+  enum class VM_PROTECTIONS {
+    /// Reading data within the segment is allowed.
+    READ = 0x1,
+    /// Writing data within the segment is allowed.
+    WRITE = 0x2,
+    /// Executing data within the segment is allowed.
+    EXECUTE = 0x4,
   };

   public:
@@ -158,11 +171,11 @@ class LIEF_API SegmentCommand : public LoadCommand {
   }

   /// Return an iterator over the MachO::Section linked to this segment
-  it_sections sections() {
+  it_sections sections() LIEF_LIFETIMEBOUND {
     return sections_;
   }

-  it_const_sections sections() const {
+  it_const_sections sections() const LIEF_LIFETIMEBOUND {
     return sections_;
   }

@@ -170,20 +183,25 @@ class LIEF_API SegmentCommand : public LoadCommand {
   ///
   /// For Mach-O executable or library this iterator should be empty as
   /// the relocations are managed by the Dyld::rebase_opcodes.
-  /// On the other hand, for object files (``.o``) this iterator should not be empty
-  it_relocations relocations() {
+  /// On the other hand, for object files (``.o``) this iterator should not be
+  /// empty
+  it_relocations relocations() LIEF_LIFETIMEBOUND {
     return relocations_;
   }
-  it_const_relocations relocations() const {
+  it_const_relocations relocations() const LIEF_LIFETIMEBOUND {
     return relocations_;
   }

   /// Get the section with the given name
-  const Section* get_section(const std::string& name) const;
-  Section* get_section(const std::string& name);
+  const Section* get_section(const std::string& name) const LIEF_LIFETIMEBOUND;
+  Section* get_section(const std::string& name) LIEF_LIFETIMEBOUND;

   /// The raw content of this segment
-  span<const uint8_t> content() const {
+  span<const uint8_t> content() const LIEF_LIFETIMEBOUND {
+    return data_;
+  }
+
+  span<uint8_t> content() LIEF_LIFETIMEBOUND {
     return data_;
   }

@@ -192,7 +210,7 @@ class LIEF_API SegmentCommand : public LoadCommand {

   /// The original index of this segment or -1 if not defined
   int8_t index() const {
-    return this->index_;
+    return index_;
   }

   void name(std::string name) {
@@ -227,7 +245,7 @@ class LIEF_API SegmentCommand : public LoadCommand {
   void content(content_t data);

   /// Add a new section in this segment
-  Section& add_section(const Section& section);
+  Section& add_section(const Section& section) LIEF_LIFETIMEBOUND;

   /// Remove all the sections linked to this segment
   void remove_all_sections();
@@ -254,10 +272,6 @@ class LIEF_API SegmentCommand : public LoadCommand {
   }

   protected:
-  span<uint8_t> writable_content() {
-    return data_;
-  }
-
   LIEF_LOCAL void content_resize(size_t size);
   LIEF_LOCAL void content_insert(size_t where, size_t size);

@@ -265,12 +279,13 @@ class LIEF_API SegmentCommand : public LoadCommand {
     content_resize(data_.size() + width);
   }

-  using update_fnc_t    = std::function<void(std::vector<uint8_t>&)>;
-  using update_fnc_ws_t = std::function<void(std::vector<uint8_t>&, size_t, size_t)>;
+  using update_fnc_t = std::function<void(std::vector<uint8_t>&)>;
+  using update_fnc_ws_t =
+      std::function<void(std::vector<uint8_t>&, size_t, size_t)>;

   LIEF_LOCAL virtual void update_data(const update_fnc_t& f);
-  LIEF_LOCAL virtual void update_data(const update_fnc_ws_t& f,
-                                      size_t where, size_t size);
+  LIEF_LOCAL virtual void update_data(const update_fnc_ws_t& f, size_t where,
+                                      size_t size);

   std::string name_;
   uint64_t virtual_address_ = 0;
@@ -281,7 +296,7 @@ class LIEF_API SegmentCommand : public LoadCommand {
   uint32_t init_protection_ = 0;
   uint32_t nb_sections_ = 0;
   uint32_t flags_ = 0;
-  int8_t  index_ = -1;
+  int8_t index_ = -1;
   content_t data_;
   sections_t sections_;
   relocations_t relocations_;
diff --git a/deps/LIEF/include/LIEF/MachO/SegmentSplitInfo.hpp b/deps/LIEF/include/LIEF/MachO/SegmentSplitInfo.hpp
index 46d3c4aa83f..4d2dffb04e9 100644
--- a/deps/LIEF/include/LIEF/MachO/SegmentSplitInfo.hpp
+++ b/deps/LIEF/include/LIEF/MachO/SegmentSplitInfo.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -17,6 +17,7 @@
 #define LIEF_MACHO_SEGMENT_SPLIT_INFO_H
 #include <ostream>

+#include "LIEF/compiler_attributes.hpp"
 #include "LIEF/visibility.h"
 #include "LIEF/span.hpp"

@@ -35,6 +36,7 @@ struct linkedit_data_command;
 class LIEF_API SegmentSplitInfo : public LoadCommand {
   friend class BinaryParser;
   friend class LinkEdit;
+
   public:
   SegmentSplitInfo() = default;
   SegmentSplitInfo(const details::linkedit_data_command& cmd);
@@ -60,11 +62,11 @@ class LIEF_API SegmentSplitInfo : public LoadCommand {
     data_size_ = size;
   }

-  span<uint8_t> content() {
+  span<uint8_t> content() LIEF_LIFETIMEBOUND {
     return content_;
   }

-  span<const uint8_t> content() const {
+  span<const uint8_t> content() const LIEF_LIFETIMEBOUND {
     return content_;
   }

@@ -80,9 +82,8 @@ class LIEF_API SegmentSplitInfo : public LoadCommand {

   private:
   uint32_t data_offset_ = 0;
-  uint32_t data_size_   = 0;
+  uint32_t data_size_ = 0;
   span<uint8_t> content_;
-
 };

 }
diff --git a/deps/LIEF/include/LIEF/MachO/SourceVersion.hpp b/deps/LIEF/include/LIEF/MachO/SourceVersion.hpp
index 158eff31750..ccbb70c90b0 100644
--- a/deps/LIEF/include/LIEF/MachO/SourceVersion.hpp
+++ b/deps/LIEF/include/LIEF/MachO/SourceVersion.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -51,7 +51,7 @@ class LIEF_API SourceVersion : public LoadCommand {
   ~SourceVersion() override = default;

   /// Return the version as an array
-  const version_t& version() const {
+  const version_t& version() const LIEF_LIFETIMEBOUND {
     return version_;
   }
   void version(const version_t& version) {
diff --git a/deps/LIEF/include/LIEF/MachO/Stub.hpp b/deps/LIEF/include/LIEF/MachO/Stub.hpp
index eece39520a4..99ff691e3d4 100644
--- a/deps/LIEF/include/LIEF/MachO/Stub.hpp
+++ b/deps/LIEF/include/LIEF/MachO/Stub.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -15,7 +15,9 @@
  */
 #ifndef LIEF_MACHO_STUB_H
 #define LIEF_MACHO_STUB_H
+#include "LIEF/compiler_attributes.hpp"
 #include "LIEF/visibility.h"
+
 #include "LIEF/span.hpp"
 #include "LIEF/iterators.hpp"
 #include "LIEF/errors.hpp"
@@ -53,14 +55,13 @@ class LIEF_API Stub {
     Header::CPU_TYPE arch;
     uint32_t subtype = 0;
     friend bool operator==(const Stub::target_info_t& lhs,
-                           const Stub::target_info_t& rhs)
-    {
+                           const Stub::target_info_t& rhs) {
       return lhs.arch == rhs.arch && lhs.subtype == rhs.subtype;
     }
   };
-  class LIEF_API Iterator :
-    public iterator_facade_base<Iterator, std::random_access_iterator_tag, const Stub>
-  {
+  class LIEF_API Iterator
+    : public iterator_facade_base<Iterator, std::random_access_iterator_tag,
+                                  const Stub> {
     public:
     Iterator() = default;

@@ -68,9 +69,7 @@ class LIEF_API Stub {
              size_t pos) :
       target_info_(target_info),
       stubs_(std::move(sections)),
-      pos_(pos)
-    {
-    }
+      pos_(pos) {}

     Iterator(const Iterator&) = default;
     Iterator& operator=(const Iterator&) = default;
@@ -114,6 +113,7 @@ class LIEF_API Stub {
     std::vector<const Section*> stubs_;
     size_t pos_ = 0;
   };
+
   public:
   Stub() = delete;
   Stub(const Stub&) = default;
@@ -126,11 +126,10 @@ class LIEF_API Stub {
   Stub(target_info_t target_info, uint64_t addr, std::vector<uint8_t> raw) :
     target_info_(target_info),
     address_(addr),
-    raw_(std::move(raw))
-  {}
+    raw_(std::move(raw)) {}

   /// The (raw) instructions of this entry as a slice of bytes
-  span<const uint8_t> raw() const {
+  span<const uint8_t> raw() const LIEF_LIFETIMEBOUND {
     return raw_;
   }

@@ -159,7 +158,7 @@ class LIEF_API Stub {
   private:
   target_info_t target_info_;
   uint64_t address_ = 0;
-  [[maybe_unused]] mutable uint64_t target_addr_ = 0;
+  LIEF_MAYBE_UNUSED mutable uint64_t target_addr_ = 0;
   std::vector<uint8_t> raw_;
 };

diff --git a/deps/LIEF/include/LIEF/MachO/SubClient.hpp b/deps/LIEF/include/LIEF/MachO/SubClient.hpp
index c74fcc3177a..b6447799872 100644
--- a/deps/LIEF/include/LIEF/MachO/SubClient.hpp
+++ b/deps/LIEF/include/LIEF/MachO/SubClient.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2017 - 2025 R. Thomas
+/* Copyright 2017 - 2026 R. Thomas
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -31,7 +31,7 @@ struct sub_client_command;
 }

 /// Class that represents the SubClient command.
-/// Accodring to the Mach-O `loader.h` documentation:
+/// According to the Mach-O `loader.h` documentation:
 ///
 /// > For dynamically linked shared libraries that are subframework of an umbrella
 /// > framework they can allow clients other than the umbrella framework or other
@@ -42,6 +42,7 @@ struct sub_client_command;
 /// > where the bundle is built with "-client_name client_name".
 class LIEF_API SubClient : public LoadCommand {
   friend class BinaryParser;
+
   public:
   SubClient() = default;
   SubClient(const details::sub_client_command& cmd);
diff --git a/deps/LIEF/include/LIEF/MachO/SubFramework.hpp b/deps/LIEF/include/LIEF/MachO/SubFramework.hpp
index 7fd36ad03b6..8e22a52c328 100644
--- a/deps/LIEF/include/LIEF/MachO/SubFramework.hpp
+++ b/deps/LIEF/include/LIEF/MachO/SubFramework.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -32,7 +32,7 @@ struct sub_framework_command;
 }

 /// Class that represents the SubFramework command.
-/// Accodring to the Mach-O ``loader.h`` documentation:
+/// According to the Mach-O ``loader.h`` documentation:
 ///
 ///
 /// > A dynamically linked shared library may be a subframework of an umbrella
@@ -45,6 +45,7 @@ struct sub_framework_command;
 /// > following structure.
 class LIEF_API SubFramework : public LoadCommand {
   friend class BinaryParser;
+
   public:
   SubFramework() = default;
   SubFramework(const details::sub_framework_command& cmd);
diff --git a/deps/LIEF/include/LIEF/MachO/Symbol.hpp b/deps/LIEF/include/LIEF/MachO/Symbol.hpp
index 4ec3c72e4a2..7c50177637d 100644
--- a/deps/LIEF/include/LIEF/MachO/Symbol.hpp
+++ b/deps/LIEF/include/LIEF/MachO/Symbol.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -50,12 +50,13 @@ class LIEF_API Symbol : public LIEF::Symbol {
   friend class Binary;

   public:
-  static constexpr int SELF_LIBRARY_ORD = 0x0; // Mirror SELF_LIBRARY_ORDINAL
+  static constexpr int SELF_LIBRARY_ORD = 0x0;     // Mirror SELF_LIBRARY_ORDINAL
   static constexpr int MAIN_EXECUTABLE_ORD = 0xff; // Mirror DYNAMIC_LOOKUP_ORDINAL
-  static constexpr int DYNAMIC_LOOKUP_ORD = 0xfe; // EXECUTABLE_ORDINAL
+  static constexpr int DYNAMIC_LOOKUP_ORD = 0xfe;  // EXECUTABLE_ORDINAL

   /// Category of the symbol when the symbol comes from the `LC_SYMTAB` command.
-  /// The category is defined according to the `LC_DYSYMTAB` (DynamicSymbolCommand) command.
+  /// The category is defined according to the `LC_DYSYMTAB` (DynamicSymbolCommand)
+  /// command.
   enum class CATEGORY : uint32_t {
     NONE = 0,
     LOCAL,
@@ -68,18 +69,29 @@ class LIEF_API Symbol : public LIEF::Symbol {
   };

   enum class ORIGIN : uint32_t {
-    UNKNOWN     = 0,
+    UNKNOWN = 0,
     DYLD_EXPORT = 1,
-    DYLD_BIND   = 2, /// The symbol comes from the binding opcodes
-    SYMTAB      = 3, /// The symbol comes from the LC_SYMTAB command
+    /// The symbol comes from the binding opcodes.
+    DYLD_BIND = 2,
+    /// The symbol comes from the LC_SYMTAB command.
+    SYMTAB = 3,
   };

-  enum class TYPE : uint32_t{
-    UNDEFINED     = 0x0u, ///< The symbol is undefined. It is referenced in a different module.
-    ABSOLUTE_SYM  = 0x2u, ///< The symbol is absolute. The linker doesn't update his value.
-    SECTION       = 0xeu, ///< The symbol is defined in the section number given in nlist_base.n_sect .
-    PREBOUND      = 0xcu, ///< The symbol is undefined and the image is using a prebound value for the symbol. Set the n_sect field to NO_SECT .
-    INDIRECT      = 0xau  ///< The symbol is defined to be the same as another symbol. The n_value field is an index into the string table specifying the name of the other symbol. When that symbol is linked, both this and the other symbol point to the same defined type and value.
+  enum class TYPE : uint32_t {
+    /// The symbol is undefined. It is referenced in a different module.
+    UNDEFINED = 0x0u,
+    /// The symbol is absolute. The linker doesn't update its value.
+    ABSOLUTE_SYM = 0x2u,
+    /// The symbol is defined in the section number given in nlist_base.n_sect.
+    SECTION = 0xeu,
+    /// The symbol is undefined and the image is using a prebound value for the
+    /// symbol. Set the n_sect field to NO_SECT.
+    PREBOUND = 0xcu,
+    /// The symbol is defined to be the same as another symbol. The n_value
+    /// field is an index into the string table specifying the name of the other
+    /// symbol. When that symbol is linked, both this and the other symbol point
+    /// to the same defined type and value.
+    INDIRECT = 0xau,
   };


@@ -94,8 +106,7 @@ class LIEF_API Symbol : public LIEF::Symbol {
     type_{n_type},
     numberof_sections_{n_sect},
     description_{n_desc},
-    origin_{ORIGIN::SYMTAB}
-  {
+    origin_{ORIGIN::SYMTAB} {
     value_ = value;
   }

@@ -144,10 +155,10 @@ class LIEF_API Symbol : public LIEF::Symbol {

   /// Return the ExportInfo associated with this symbol (or nullptr if not present)
   /// @see has_export_info
-  const ExportInfo* export_info() const {
+  const ExportInfo* export_info() const LIEF_LIFETIMEBOUND {
     return export_info_;
   }
-  ExportInfo* export_info() {
+  ExportInfo* export_info() LIEF_LIFETIMEBOUND {
     return export_info_;
   }

@@ -157,13 +168,14 @@ class LIEF_API Symbol : public LIEF::Symbol {
     return binding_info() != nullptr;
   }

-  /// Return the BindingInfo associated with this symbol (or nullptr if not present)
+  /// Return the BindingInfo associated with this symbol (or nullptr if not
+  /// present)
   /// @see has_binding_info
-  const BindingInfo* binding_info() const {
+  const BindingInfo* binding_info() const LIEF_LIFETIMEBOUND {
     return binding_info_;
   }

-  BindingInfo* binding_info() {
+  BindingInfo* binding_info() LIEF_LIFETIMEBOUND {
     return binding_info_;
   }

@@ -177,15 +189,16 @@ class LIEF_API Symbol : public LIEF::Symbol {

   /// Return the library in which the symbol is defined.
   /// It returns a null pointer if the library can't be resolved
-  const DylibCommand* library() const {
+  const DylibCommand* library() const LIEF_LIFETIMEBOUND {
     return library_;
   }

-  DylibCommand* library() {
+  DylibCommand* library() LIEF_LIFETIMEBOUND {
     return library_;
   }

-  /// Return the origin of the symbol: from LC_SYMTAB command or from the Dyld information
+  /// Return the origin of the symbol: from LC_SYMTAB command or from the Dyld
+  /// information
   ORIGIN origin() const {
     return origin_;
   }
@@ -215,10 +228,9 @@ class LIEF_API Symbol : public LIEF::Symbol {

   private:
   Symbol(CATEGORY cat) :
-    category_(cat)
-  {}
+    category_(cat) {}
   void library(DylibCommand& library) {
-    this->library_ = &library;
+    library_ = &library;
   }

   uint8_t type_ = 0;
diff --git a/deps/LIEF/include/LIEF/MachO/SymbolCommand.hpp b/deps/LIEF/include/LIEF/MachO/SymbolCommand.hpp
index 1a41178cc45..54a21a6086a 100644
--- a/deps/LIEF/include/LIEF/MachO/SymbolCommand.hpp
+++ b/deps/LIEF/include/LIEF/MachO/SymbolCommand.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -17,6 +17,7 @@
 #define LIEF_MACHO_SYMBOL_COMMAND_H
 #include <ostream>

+#include "LIEF/compiler_attributes.hpp"
 #include "LIEF/visibility.h"
 #include "LIEF/span.hpp"

@@ -64,7 +65,7 @@ class LIEF_API SymbolCommand : public LoadCommand {
     return strings_offset_;
   }

-  /// Size of the size string table
+  /// Size of the string table
   uint32_t strings_size() const {
     return strings_size_;
   }
@@ -82,19 +83,19 @@ class LIEF_API SymbolCommand : public LoadCommand {
     strings_size_ = size;
   }

-  span<const uint8_t> symbol_table() const {
+  span<const uint8_t> symbol_table() const LIEF_LIFETIMEBOUND {
     return symbol_table_;
   }

-  span<uint8_t> symbol_table() {
+  span<uint8_t> symbol_table() LIEF_LIFETIMEBOUND {
     return symbol_table_;
   }

-  span<const uint8_t> string_table() const {
+  span<const uint8_t> string_table() const LIEF_LIFETIMEBOUND {
     return string_table_;
   }

-  span<uint8_t> string_table() {
+  span<uint8_t> string_table() LIEF_LIFETIMEBOUND {
     return string_table_;
   }

@@ -116,11 +117,11 @@ class LIEF_API SymbolCommand : public LoadCommand {

   private:
   uint32_t symbols_offset_ = 0;
-  uint32_t nb_symbols_     = 0;
+  uint32_t nb_symbols_ = 0;
   uint32_t strings_offset_ = 0;
-  uint32_t strings_size_   = 0;
+  uint32_t strings_size_ = 0;

-  uint32_t original_str_size_   = 0;
+  uint32_t original_str_size_ = 0;
   uint32_t original_nb_symbols_ = 0;

   span<uint8_t> symbol_table_;
diff --git a/deps/LIEF/include/LIEF/MachO/ThreadCommand.hpp b/deps/LIEF/include/LIEF/MachO/ThreadCommand.hpp
index 2c9a955e629..e25308b9950 100644
--- a/deps/LIEF/include/LIEF/MachO/ThreadCommand.hpp
+++ b/deps/LIEF/include/LIEF/MachO/ThreadCommand.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -18,6 +18,7 @@
 #include <vector>
 #include <ostream>

+#include "LIEF/compiler_attributes.hpp"
 #include "LIEF/visibility.h"
 #include "LIEF/span.hpp"

@@ -34,18 +35,20 @@ struct thread_command;
 }

 /// Class that represents the LC_THREAD / LC_UNIXTHREAD commands and that
-/// can be used to get the binary entrypoint when the LC_MAIN (MainCommand) is not present
+/// can be used to get the binary entrypoint when the LC_MAIN (MainCommand) is not
+/// present
 ///
 /// Generally speaking, this command aims at defining the original state
 /// of the main thread which includes the registers' values
 class LIEF_API ThreadCommand : public LoadCommand {
   friend class BinaryParser;
+
   public:
   ThreadCommand() = default;
   ThreadCommand(const details::thread_command& cmd,
                 Header::CPU_TYPE arch = Header::CPU_TYPE::ANY);
   ThreadCommand(uint32_t flavor, uint32_t count,
-                Header::CPU_TYPE arch= Header::CPU_TYPE::ANY);
+                Header::CPU_TYPE arch = Header::CPU_TYPE::ANY);

   ThreadCommand& operator=(const ThreadCommand& copy) = default;
   ThreadCommand(const ThreadCommand& copy) = default;
@@ -78,13 +81,14 @@ class LIEF_API ThreadCommand : public LoadCommand {
     return architecture_;
   }

-  /// The actual thread state as a vector of bytes. Depending on the architecture(),
-  /// these data can be casted into x86_thread_state_t, x86_thread_state64_t, ...
-  span<const uint8_t> state() const {
-    return  state_;
+  /// The actual thread state as a vector of bytes. Depending on the
+  /// architecture(), these data can be casted into x86_thread_state_t,
+  /// x86_thread_state64_t, ...
+  span<const uint8_t> state() const LIEF_LIFETIMEBOUND {
+    return state_;
   }

-  span<uint8_t> state() {
+  span<uint8_t> state() LIEF_LIFETIMEBOUND {
     return state_;
   }

@@ -121,9 +125,8 @@ class LIEF_API ThreadCommand : public LoadCommand {
   private:
   uint32_t flavor_ = 0;
   uint32_t count_ = 0;
-  Header::CPU_TYPE architecture_  = Header::CPU_TYPE::ANY;
+  Header::CPU_TYPE architecture_ = Header::CPU_TYPE::ANY;
   std::vector<uint8_t> state_;
-
 };

 }
diff --git a/deps/LIEF/include/LIEF/MachO/ThreadLocalVariables.hpp b/deps/LIEF/include/LIEF/MachO/ThreadLocalVariables.hpp
new file mode 100644
index 00000000000..c332ed7659b
--- /dev/null
+++ b/deps/LIEF/include/LIEF/MachO/ThreadLocalVariables.hpp
@@ -0,0 +1,178 @@
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
+ *
+ * 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.
+ */
+#ifndef LIEF_MACHO_THREAD_LOCAL_VARIABLES_H
+#define LIEF_MACHO_THREAD_LOCAL_VARIABLES_H
+
+#include "LIEF/visibility.h"
+#include "LIEF/iterators.hpp"
+#include "LIEF/optional.hpp"
+
+#include "LIEF/MachO/Section.hpp"
+
+#include <cassert>
+#include <cstddef>
+#include <cstdint>
+#include <iterator>
+#include <memory>
+#include <ostream>
+#include <string>
+
+namespace LIEF {
+
+namespace MachO {
+
+/// This class represents a MachO section with type
+/// Section::TYPE::THREAD_LOCAL_VARIABLES (`S_THREAD_LOCAL_VARIABLES`).
+///
+/// Such a section contains an array of thread-local variable descriptors
+/// (Thunk) that the dynamic linker (dyld) uses to lazily initialize
+/// thread-local storage (TLS) on first access.
+///
+/// Each descriptor holds a pointer to the initializer function, a TLS key, and
+/// the offset of the variable in the TLS block.
+class LIEF_API ThreadLocalVariables : public LIEF::MachO::Section {
+  public:
+  friend class Section;
+  using LIEF::MachO::Section::Section;
+
+  ThreadLocalVariables();
+
+  ThreadLocalVariables(const ThreadLocalVariables&) = default;
+  ThreadLocalVariables(ThreadLocalVariables&&) noexcept = default;
+
+  ThreadLocalVariables& operator=(const ThreadLocalVariables&) = default;
+  ThreadLocalVariables& operator=(ThreadLocalVariables&&) noexcept = default;
+
+  /// Descriptor for a single thread-local variable.
+  ///
+  /// The layout mirrors the `tlv_descriptor` structure defined in
+  /// `<mach-o/loader.h>` (see also `libdyld/ThreadLocalVariables.h` in dyld).
+  struct LIEF_API Thunk {
+    /// Address of the initializer function (`tlv_thunk`)
+    uint64_t func = 0;
+
+    /// `pthread_key_t` key used by the runtime
+    uint64_t key = 0;
+
+    /// Offset of the variable in the TLS block
+    uint64_t offset = 0;
+
+    std::string to_string() const;
+
+    friend std::ostream& operator<<(std::ostream& os, const Thunk& thunk) {
+      os << thunk.to_string();
+      return os;
+    }
+  };
+
+  /// Random-access iterator that materializes Thunk values on the fly from the
+  /// raw section content.
+  class LIEF_API Iterator
+    : public iterator_facade_base<Iterator, std::random_access_iterator_tag,
+                                  const Thunk> {
+    public:
+    Iterator() = default;
+
+    Iterator(const ThreadLocalVariables& parent, size_t pos) :
+      parent_(&parent),
+      pos_(pos) {}
+
+    Iterator(const Iterator&) = default;
+    Iterator& operator=(const Iterator&) = default;
+
+    Iterator(Iterator&&) noexcept = default;
+    Iterator& operator=(Iterator&&) noexcept = default;
+
+    ~Iterator() = default;
+
+    bool operator<(const Iterator& rhs) const {
+      return pos_ < rhs.pos_;
+    }
+
+    std::ptrdiff_t operator-(const Iterator& R) const {
+      return pos_ - R.pos_;
+    }
+
+    Iterator& operator+=(std::ptrdiff_t n) {
+      pos_ += n;
+      return *this;
+    }
+
+    Iterator& operator-=(std::ptrdiff_t n) {
+      pos_ -= n;
+      return *this;
+    }
+
+    friend LIEF_API bool operator==(const Iterator& LHS, const Iterator& RHS) {
+      assert(LHS.parent_ == RHS.parent_);
+      return LHS.pos_ == RHS.pos_;
+    }
+
+    friend LIEF_API bool operator!=(const Iterator& LHS, const Iterator& RHS) {
+      return !(LHS == RHS);
+    }
+
+    Thunk operator*() const {
+      auto value = parent_->get(pos_);
+      assert(value);
+      return *value;
+    }
+
+    private:
+    const ThreadLocalVariables* parent_ = nullptr;
+    size_t pos_ = 0;
+  };
+
+  using thunks_it = iterator_range<Iterator>;
+
+  std::unique_ptr<Section> clone() const override {
+    return std::unique_ptr<Section>(new ThreadLocalVariables(*this));
+  }
+
+  /// Return an iterator range over the Thunk descriptors stored in this
+  /// section.
+  thunks_it thunks() const LIEF_LIFETIMEBOUND {
+    auto B = Iterator(*this, 0);
+    auto E = Iterator(*this, nb_thunks());
+    return make_range(std::move(B), std::move(E)); // NOLINT
+  }
+
+  /// Number of Thunk descriptors in this section.
+  size_t nb_thunks() const;
+
+  /// Access the Thunk at the given @p idx, or return an empty optional if the
+  /// index is out of range.
+  optional<Thunk> get(size_t idx) const;
+
+  /// Change the Thunk at the given @p idx
+  void set(size_t idx, const Thunk& thunk);
+
+  /// Access the Thunk at the given @p idx
+  optional<Thunk> operator[](size_t idx) const {
+    return get(idx);
+  }
+
+  ~ThreadLocalVariables() override = default;
+
+  static bool classof(const Section* section) {
+    return section->type() == Section::TYPE::THREAD_LOCAL_VARIABLES;
+  }
+};
+
+}
+}
+
+#endif
diff --git a/deps/LIEF/include/LIEF/MachO/TwoLevelHints.hpp b/deps/LIEF/include/LIEF/MachO/TwoLevelHints.hpp
index 072950f36a2..3ab64860996 100644
--- a/deps/LIEF/include/LIEF/MachO/TwoLevelHints.hpp
+++ b/deps/LIEF/include/LIEF/MachO/TwoLevelHints.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -18,6 +18,7 @@
 #include <vector>
 #include <ostream>

+#include "LIEF/compiler_attributes.hpp"
 #include "LIEF/visibility.h"
 #include "LIEF/span.hpp"
 #include "LIEF/iterators.hpp"
@@ -42,8 +43,8 @@ class LIEF_API TwoLevelHints : public LoadCommand {
   friend class Builder;

   public:
-  using hints_list_t     = std::vector<uint32_t>;
-  using it_hints_t       = ref_iterator<hints_list_t&>;
+  using hints_list_t = std::vector<uint32_t>;
+  using it_hints_t = ref_iterator<hints_list_t&>;
   using it_const_hints_t = const_ref_iterator<const hints_list_t&>;

   TwoLevelHints() = default;
@@ -57,17 +58,29 @@ class LIEF_API TwoLevelHints : public LoadCommand {
   }

   /// Original payload of the command
-  span<const uint8_t> content() const { return content_; }
-  span<uint8_t> content() { return content_; }
+  span<const uint8_t> content() const LIEF_LIFETIMEBOUND {
+    return content_;
+  }
+  span<uint8_t> content() LIEF_LIFETIMEBOUND {
+    return content_;
+  }

   /// Iterator over the hints (`uint32_t` integers)
-  it_hints_t hints() { return hints_; }
-  it_const_hints_t hints() const { return hints_; }
+  it_hints_t hints() {
+    return hints_;
+  }
+  it_const_hints_t hints() const {
+    return hints_;
+  }

   /// Original offset of the command. It should point in the
   /// `__LINKEDIT` segment
-  uint32_t offset() const { return offset_; }
-  void offset(uint32_t offset)  { offset_ = offset; }
+  uint32_t offset() const {
+    return offset_;
+  }
+  void offset(uint32_t offset) {
+    offset_ = offset;
+  }

   uint32_t original_nb_hints() const {
     return original_nb_hints_;
diff --git a/deps/LIEF/include/LIEF/MachO/UUIDCommand.hpp b/deps/LIEF/include/LIEF/MachO/UUIDCommand.hpp
index fdbfab6eaa4..6f6c1b39c7b 100644
--- a/deps/LIEF/include/LIEF/MachO/UUIDCommand.hpp
+++ b/deps/LIEF/include/LIEF/MachO/UUIDCommand.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -47,7 +47,7 @@ class LIEF_API UUIDCommand : public LoadCommand {
   ~UUIDCommand() override = default;

   /// The UUID as a 16-bytes array
-  const uuid_t& uuid() const {
+  const uuid_t& uuid() const LIEF_LIFETIMEBOUND {
     return uuid_;
   }
   void uuid(const uuid_t& uuid) {
diff --git a/deps/LIEF/include/LIEF/MachO/UnknownCommand.hpp b/deps/LIEF/include/LIEF/MachO/UnknownCommand.hpp
index 7cd9a58a341..c7dd1b829d4 100644
--- a/deps/LIEF/include/LIEF/MachO/UnknownCommand.hpp
+++ b/deps/LIEF/include/LIEF/MachO/UnknownCommand.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2024 - 2025 R. Thomas
+/* Copyright 2024 - 2026 R. Thomas
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -35,8 +35,7 @@ class LIEF_API UnknownCommand : public LoadCommand {
   UnknownCommand() = delete;
   UnknownCommand(const details::load_command& command) :
     LoadCommand(command),
-    original_command_(static_cast<uint64_t>(command_))
-  {
+    original_command_(static_cast<uint64_t>(command_)) {
     command_ = LoadCommand::TYPE::LIEF_UNKNOWN;
   }

diff --git a/deps/LIEF/include/LIEF/MachO/VersionMin.hpp b/deps/LIEF/include/LIEF/MachO/VersionMin.hpp
index a5ebd42961a..3614241d3ab 100644
--- a/deps/LIEF/include/LIEF/MachO/VersionMin.hpp
+++ b/deps/LIEF/include/LIEF/MachO/VersionMin.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -29,7 +29,8 @@ namespace details {
 struct version_min_command;
 }

-/// Class that wraps the LC_VERSION_MIN_MACOSX, LC_VERSION_MIN_IPHONEOS, ... commands.
+/// Class that wraps the LC_VERSION_MIN_MACOSX, LC_VERSION_MIN_IPHONEOS, ...
+/// commands.
 class LIEF_API VersionMin : public LoadCommand {

   public:
@@ -49,7 +50,7 @@ class LIEF_API VersionMin : public LoadCommand {
   ~VersionMin() override = default;

   /// Return the version as an array
-  const version_t& version() const {
+  const version_t& version() const LIEF_LIFETIMEBOUND {
     return version_;
   }
   void version(const version_t& version) {
@@ -57,7 +58,7 @@ class LIEF_API VersionMin : public LoadCommand {
   }

   /// Return the sdk version as an array
-  const version_t& sdk() const {
+  const version_t& sdk() const LIEF_LIFETIMEBOUND {
     return sdk_;
   }
   void sdk(const version_t& sdk) {
diff --git a/deps/LIEF/include/LIEF/MachO/enums.hpp b/deps/LIEF/include/LIEF/MachO/enums.hpp
index 9b381fc8d47..ef28a729dea 100644
--- a/deps/LIEF/include/LIEF/MachO/enums.hpp
+++ b/deps/LIEF/include/LIEF/MachO/enums.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2021 - 2025 R. Thomas
+/* Copyright 2021 - 2026 R. Thomas
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -20,87 +20,113 @@
 namespace LIEF {
 namespace MachO {

-enum class MACHO_TYPES: uint32_t {
-  UNKNOWN    = 0,
-  MAGIC      = 0xFEEDFACEu, ///< 32-bit big-endian magic
-  CIGAM      = 0xCEFAEDFEu, ///< 32-bit little-endian magic
-  MAGIC_64   = 0xFEEDFACFu, ///< 64-bit big-endian magic
-  CIGAM_64   = 0xCFFAEDFEu, ///< 64-bit little-endian magic
-  MAGIC_FAT  = 0xCAFEBABEu, ///< big-endian fat magic
-  CIGAM_FAT  = 0xBEBAFECAu,  ///< little-endian fat magic
+enum class MACHO_TYPES : uint32_t {
+  UNKNOWN = 0,
+  MAGIC = 0xFEEDFACEu,     ///< 32-bit big-endian magic
+  CIGAM = 0xCEFAEDFEu,     ///< 32-bit little-endian magic
+  MAGIC_64 = 0xFEEDFACFu,  ///< 64-bit big-endian magic
+  CIGAM_64 = 0xCFFAEDFEu,  ///< 64-bit little-endian magic
+  MAGIC_FAT = 0xCAFEBABEu, ///< big-endian fat magic
+  CIGAM_FAT = 0xBEBAFECAu, ///< little-endian fat magic

   NEURAL_MODEL = 0xbeeffaceu,
 };

-enum class X86_RELOCATION  {
-  GENERIC_RELOC_VANILLA        = 0, /**< A generic relocation entry for both addresses contained in data and addresses contained in CPU instructions. */
-  GENERIC_RELOC_PAIR           = 1, /**< The second relocation entry of a pair. */
-  GENERIC_RELOC_SECTDIFF       = 2, /**< A relocation entry for an item that contains the difference of two section addresses. This is generally used for position-independent code generation. */
-  GENERIC_RELOC_PB_LA_PTR      = 3, /**< contains the address from which to subtract; it must be followed by a X86_RELOCATION::GENERIC_RELOC_PAIR containing the address to subtract.*/
-  GENERIC_RELOC_LOCAL_SECTDIFF = 4, /**< Similar to X86_RELOCATION::GENERIC_RELOC_SECTDIFF except that this entry refers specifically to the address in this item. If the address is that of a globally visible coalesced symbol, this relocation entry does not change if the symbol is overridden. This is used to associate stack unwinding information with the object code this relocation entry describes.*/
-  GENERIC_RELOC_TLV            = 5, /**< A relocation entry for a prebound lazy pointer. This is always a scattered relocation entry. The MachO::Relocation::value field contains the non-prebound value of the lazy pointer.*/
+enum class X86_RELOCATION {
+  GENERIC_RELOC_VANILLA =
+      0, /**< A generic relocation entry for both addresses contained in data and
+            addresses contained in CPU instructions. */
+  GENERIC_RELOC_PAIR = 1, /**< The second relocation entry of a pair. */
+  GENERIC_RELOC_SECTDIFF =
+      2, /**< A relocation entry for an item that contains the difference of two
+            section addresses. This is generally used for position-independent code
+            generation. */
+  GENERIC_RELOC_PB_LA_PTR =
+      3, /**< contains the address from which to subtract; it must be followed by a
+            X86_RELOCATION::GENERIC_RELOC_PAIR containing the address to
+            subtract.*/
+  GENERIC_RELOC_LOCAL_SECTDIFF =
+      4, /**< Similar to X86_RELOCATION::GENERIC_RELOC_SECTDIFF except that this
+            entry refers specifically to the address in this item. If the address
+            is that of a globally visible coalesced symbol, this relocation entry
+            does not change if the symbol is overridden. This is used to associate
+            stack unwinding information with the object code this relocation entry
+            describes.*/
+  GENERIC_RELOC_TLV =
+      5, /**< A relocation entry for a prebound lazy pointer. This is always a
+            scattered relocation entry. The MachO::Relocation::value field contains
+            the non-prebound value of the lazy pointer.*/
 };

-enum class X86_64_RELOCATION  {
-  X86_64_RELOC_UNSIGNED        = 0, /**< A CALL/JMP instruction with 32-bit displacement. */
-  X86_64_RELOC_SIGNED          = 1, /**< A MOVQ load of a GOT entry. */
-  X86_64_RELOC_BRANCH          = 2, /**< Other GOT references. */
-  X86_64_RELOC_GOT_LOAD        = 3, /**< Signed 32-bit displacement. */
-  X86_64_RELOC_GOT             = 4, /**< Absolute address. */
-  X86_64_RELOC_SUBTRACTOR      = 5, /**< Must be followed by a X86_64_RELOCATION::X86_64_RELOC_UNSIGNED relocation. */
-  X86_64_RELOC_SIGNED_1        = 6, /**< */
-  X86_64_RELOC_SIGNED_2        = 7, /**< */
-  X86_64_RELOC_SIGNED_4        = 8, /**< */
-  X86_64_RELOC_TLV             = 9, /**< */
+enum class X86_64_RELOCATION {
+  X86_64_RELOC_UNSIGNED =
+      0,                   /**< A CALL/JMP instruction with 32-bit displacement. */
+  X86_64_RELOC_SIGNED = 1, /**< A MOVQ load of a GOT entry. */
+  X86_64_RELOC_BRANCH = 2, /**< Other GOT references. */
+  X86_64_RELOC_GOT_LOAD = 3, /**< Signed 32-bit displacement. */
+  X86_64_RELOC_GOT = 4,      /**< Absolute address. */
+  X86_64_RELOC_SUBTRACTOR =
+      5, /**< Must be followed by a X86_64_RELOCATION::X86_64_RELOC_UNSIGNED
+            relocation. */
+  X86_64_RELOC_SIGNED_1 = 6, /**< */
+  X86_64_RELOC_SIGNED_2 = 7, /**< */
+  X86_64_RELOC_SIGNED_4 = 8, /**< */
+  X86_64_RELOC_TLV = 9,      /**< */
 };


-enum class PPC_RELOCATION  {
-  PPC_RELOC_VANILLA            = 0,
-  PPC_RELOC_PAIR               = 1,
-  PPC_RELOC_BR14               = 2,
-  PPC_RELOC_BR24               = 3,
-  PPC_RELOC_HI16               = 4,
-  PPC_RELOC_LO16               = 5,
-  PPC_RELOC_HA16               = 6,
-  PPC_RELOC_LO14               = 7,
-  PPC_RELOC_SECTDIFF           = 8,
-  PPC_RELOC_PB_LA_PTR          = 9,
-  PPC_RELOC_HI16_SECTDIFF      = 10,
-  PPC_RELOC_LO16_SECTDIFF      = 11,
-  PPC_RELOC_HA16_SECTDIFF      = 12,
-  PPC_RELOC_JBSR               = 13,
-  PPC_RELOC_LO14_SECTDIFF      = 14,
-  PPC_RELOC_LOCAL_SECTDIFF     = 15,
+enum class PPC_RELOCATION {
+  PPC_RELOC_VANILLA = 0,
+  PPC_RELOC_PAIR = 1,
+  PPC_RELOC_BR14 = 2,
+  PPC_RELOC_BR24 = 3,
+  PPC_RELOC_HI16 = 4,
+  PPC_RELOC_LO16 = 5,
+  PPC_RELOC_HA16 = 6,
+  PPC_RELOC_LO14 = 7,
+  PPC_RELOC_SECTDIFF = 8,
+  PPC_RELOC_PB_LA_PTR = 9,
+  PPC_RELOC_HI16_SECTDIFF = 10,
+  PPC_RELOC_LO16_SECTDIFF = 11,
+  PPC_RELOC_HA16_SECTDIFF = 12,
+  PPC_RELOC_JBSR = 13,
+  PPC_RELOC_LO14_SECTDIFF = 14,
+  PPC_RELOC_LOCAL_SECTDIFF = 15,
 };


-enum class ARM_RELOCATION  {
-  ARM_RELOC_VANILLA            = 0,
-  ARM_RELOC_PAIR               = 1,
-  ARM_RELOC_SECTDIFF           = 2,
-  ARM_RELOC_LOCAL_SECTDIFF     = 3,
-  ARM_RELOC_PB_LA_PTR          = 4,
-  ARM_RELOC_BR24               = 5,
-  ARM_THUMB_RELOC_BR22         = 6,
-  ARM_THUMB_32BIT_BRANCH       = 7, // obsolete
-  ARM_RELOC_HALF               = 8,
-  ARM_RELOC_HALF_SECTDIFF      = 9,
+enum class ARM_RELOCATION {
+  ARM_RELOC_VANILLA = 0,
+  ARM_RELOC_PAIR = 1,
+  ARM_RELOC_SECTDIFF = 2,
+  ARM_RELOC_LOCAL_SECTDIFF = 3,
+  ARM_RELOC_PB_LA_PTR = 4,
+  ARM_RELOC_BR24 = 5,
+  ARM_THUMB_RELOC_BR22 = 6,
+  ARM_THUMB_32BIT_BRANCH = 7, // obsolete
+  ARM_RELOC_HALF = 8,
+  ARM_RELOC_HALF_SECTDIFF = 9,
 };


-enum class ARM64_RELOCATION  {
-  ARM64_RELOC_UNSIGNED            = 0,  /**< For pointers. */
-  ARM64_RELOC_SUBTRACTOR          = 1,  /**< Must be followed by an ARM64_RELOCATION::ARM64_RELOC_UNSIGNED */
-  ARM64_RELOC_BRANCH26            = 2,  /**< A B/BL instruction with 26-bit displacement. */
-  ARM64_RELOC_PAGE21              = 3,  /**< PC-rel distance to page of target. */
-  ARM64_RELOC_PAGEOFF12           = 4,  /**< Offset within page, scaled by MachO::Relocation::size. */
-  ARM64_RELOC_GOT_LOAD_PAGE21     = 5,  /**< PC-rel distance to page of GOT slot */
-  ARM64_RELOC_GOT_LOAD_PAGEOFF12  = 6,  /**< Offset within page of GOT slot, scaled by MachO::Relocation::size. */
-  ARM64_RELOC_POINTER_TO_GOT      = 7,  /**< For pointers to GOT slots. */
-  ARM64_RELOC_TLVP_LOAD_PAGE21    = 8,  /**< PC-rel distance to page of TLVP slot. */
-  ARM64_RELOC_TLVP_LOAD_PAGEOFF12 = 9,  /**< Offset within page of TLVP slot, scaled by MachO::Relocation::size.*/
-  ARM64_RELOC_ADDEND              = 10, /**< Must be followed by ARM64_RELOCATION::ARM64_RELOC_PAGE21 or ARM64_RELOCATION::ARM64_RELOC_PAGEOFF12. */
+enum class ARM64_RELOCATION {
+  ARM64_RELOC_UNSIGNED = 0, /**< For pointers. */
+  ARM64_RELOC_SUBTRACTOR =
+      1, /**< Must be followed by an ARM64_RELOCATION::ARM64_RELOC_UNSIGNED */
+  ARM64_RELOC_BRANCH26 = 2, /**< A B/BL instruction with 26-bit displacement. */
+  ARM64_RELOC_PAGE21 = 3,   /**< PC-rel distance to page of target. */
+  ARM64_RELOC_PAGEOFF12 =
+      4, /**< Offset within page, scaled by MachO::Relocation::size. */
+  ARM64_RELOC_GOT_LOAD_PAGE21 = 5, /**< PC-rel distance to page of GOT slot */
+  ARM64_RELOC_GOT_LOAD_PAGEOFF12 =
+      6, /**< Offset within page of GOT slot, scaled by MachO::Relocation::size. */
+  ARM64_RELOC_POINTER_TO_GOT = 7,   /**< For pointers to GOT slots. */
+  ARM64_RELOC_TLVP_LOAD_PAGE21 = 8, /**< PC-rel distance to page of TLVP slot. */
+  ARM64_RELOC_TLVP_LOAD_PAGEOFF12 =
+      9, /**< Offset within page of TLVP slot, scaled by MachO::Relocation::size.*/
+  ARM64_RELOC_ADDEND =
+      10, /**< Must be followed by ARM64_RELOCATION::ARM64_RELOC_PAGE21 or
+             ARM64_RELOCATION::ARM64_RELOC_PAGEOFF12. */
 };

 }
diff --git a/deps/LIEF/include/LIEF/MachO/hash.hpp b/deps/LIEF/include/LIEF/MachO/hash.hpp
index 9058b5d2aba..eccde6427fa 100644
--- a/deps/LIEF/include/LIEF/MachO/hash.hpp
+++ b/deps/LIEF/include/LIEF/MachO/hash.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -76,48 +76,48 @@ class LIEF_API Hash : public LIEF::Hash {
   using LIEF::Hash::visit;

   public:
-  void visit(const Binary& binary)                        override;
-  void visit(const BindingInfo& binding)                  override;
-  void visit(const BuildToolVersion& e)                   override;
-  void visit(const BuildVersion& e)                       override;
-  void visit(const ChainedBindingInfo& binding)           override;
-  void visit(const CodeSignature& cs)                     override;
-  void visit(const CodeSignatureDir& e)                   override;
-  void visit(const DataCodeEntry& dce)                    override;
-  void visit(const DataInCode& dic)                       override;
-  void visit(const DyldBindingInfo& binding)              override;
-  void visit(const DyldEnvironment& sf)                   override;
-  void visit(const DyldExportsTrie& trie)                 override;
-  void visit(const DylibCommand& dylib)                   override;
-  void visit(const DylinkerCommand& dylinker)             override;
-  void visit(const DynamicSymbolCommand& dynamic_symbol)  override;
-  void visit(const EncryptionInfo& e)                     override;
-  void visit(const ExportInfo& einfo)                     override;
-  void visit(const FilesetCommand& e)                     override;
-  void visit(const FunctionStarts& fs)                    override;
-  void visit(const Header& header)                        override;
-  void visit(const LinkerOptHint& e)                      override;
-  void visit(const LoadCommand& cmd)                      override;
-  void visit(const MainCommand& maincmd)                  override;
-  void visit(const NoteCommand& note)                     override;
-  void visit(const Routine& rpath)                        override;
-  void visit(const RPathCommand& rpath)                   override;
-  void visit(const Relocation& relocation)                override;
-  void visit(const RelocationDyld& rdyld)                 override;
-  void visit(const RelocationFixup& fixup)                override;
-  void visit(const RelocationObject& robject)             override;
-  void visit(const Section& section)                      override;
-  void visit(const SegmentCommand& segment)               override;
-  void visit(const SegmentSplitInfo& ssi)                 override;
-  void visit(const SourceVersion& sv)                     override;
-  void visit(const SubFramework& sf)                      override;
-  void visit(const Symbol& symbol)                        override;
-  void visit(const SymbolCommand& symbol)                 override;
-  void visit(const ThreadCommand& threadcmd)              override;
-  void visit(const TwoLevelHints& e)                      override;
-  void visit(const UUIDCommand& uuid)                     override;
-  void visit(const VersionMin& vmin)                      override;
-  void visit(const UnknownCommand& ukn)                   override;
+  void visit(const Binary& binary) override;
+  void visit(const BindingInfo& binding) override;
+  void visit(const BuildToolVersion& e) override;
+  void visit(const BuildVersion& e) override;
+  void visit(const ChainedBindingInfo& binding) override;
+  void visit(const CodeSignature& cs) override;
+  void visit(const CodeSignatureDir& e) override;
+  void visit(const DataCodeEntry& dce) override;
+  void visit(const DataInCode& dic) override;
+  void visit(const DyldBindingInfo& binding) override;
+  void visit(const DyldEnvironment& sf) override;
+  void visit(const DyldExportsTrie& trie) override;
+  void visit(const DylibCommand& dylib) override;
+  void visit(const DylinkerCommand& dylinker) override;
+  void visit(const DynamicSymbolCommand& dynamic_symbol) override;
+  void visit(const EncryptionInfo& e) override;
+  void visit(const ExportInfo& einfo) override;
+  void visit(const FilesetCommand& e) override;
+  void visit(const FunctionStarts& fs) override;
+  void visit(const Header& header) override;
+  void visit(const LinkerOptHint& e) override;
+  void visit(const LoadCommand& cmd) override;
+  void visit(const MainCommand& maincmd) override;
+  void visit(const NoteCommand& note) override;
+  void visit(const Routine& rpath) override;
+  void visit(const RPathCommand& rpath) override;
+  void visit(const Relocation& relocation) override;
+  void visit(const RelocationDyld& rdyld) override;
+  void visit(const RelocationFixup& fixup) override;
+  void visit(const RelocationObject& robject) override;
+  void visit(const Section& section) override;
+  void visit(const SegmentCommand& segment) override;
+  void visit(const SegmentSplitInfo& ssi) override;
+  void visit(const SourceVersion& sv) override;
+  void visit(const SubFramework& sf) override;
+  void visit(const Symbol& symbol) override;
+  void visit(const SymbolCommand& symbol) override;
+  void visit(const ThreadCommand& threadcmd) override;
+  void visit(const TwoLevelHints& e) override;
+  void visit(const UUIDCommand& uuid) override;
+  void visit(const VersionMin& vmin) override;
+  void visit(const UnknownCommand& ukn) override;

   ~Hash() override;
 };
diff --git a/deps/LIEF/include/LIEF/MachO/json.hpp b/deps/LIEF/include/LIEF/MachO/json.hpp
index afd1854f39f..d4cf2e64a94 100644
--- a/deps/LIEF/include/LIEF/MachO/json.hpp
+++ b/deps/LIEF/include/LIEF/MachO/json.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/deps/LIEF/include/LIEF/MachO/type_traits.hpp b/deps/LIEF/include/LIEF/MachO/type_traits.hpp
index 0c4c9969ed3..ff338febfe5 100644
--- a/deps/LIEF/include/LIEF/MachO/type_traits.hpp
+++ b/deps/LIEF/include/LIEF/MachO/type_traits.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/deps/LIEF/include/LIEF/MachO/utils.hpp b/deps/LIEF/include/LIEF/MachO/utils.hpp
index a0957a9d724..30dfa18bde5 100644
--- a/deps/LIEF/include/LIEF/MachO/utils.hpp
+++ b/deps/LIEF/include/LIEF/MachO/utils.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -55,11 +55,11 @@ LIEF_API bool check_layout(const Binary& binary, std::string* error = nullptr);
 LIEF_API bool check_layout(const FatBinary& binary, std::string* error = nullptr);


-using segment_callback_t = std::function<
-  void(const std::string& name, uint64_t offset, uint64_t size, uint64_t addr, uint64_t vsize)
->;
+using segment_callback_t =
+    std::function<void(const std::string& name, uint64_t offset, uint64_t size,
+                       uint64_t addr, uint64_t vsize)>;

-LIEF_API void foreach_segment(BinaryStream& stream, const segment_callback_t cbk);
+LIEF_API void foreach_segment(BinaryStream& stream, const segment_callback_t& cbk);

 }
 }
diff --git a/deps/LIEF/include/LIEF/OAT.hpp b/deps/LIEF/include/LIEF/OAT.hpp
index e9ccb622c7b..03695cefc84 100644
--- a/deps/LIEF/include/LIEF/OAT.hpp
+++ b/deps/LIEF/include/LIEF/OAT.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -19,14 +19,14 @@
 #include "LIEF/config.h"

 #if defined(LIEF_OAT_SUPPORT)
-#include "LIEF/OAT/Parser.hpp"
-#include "LIEF/OAT/utils.hpp"
-#include "LIEF/OAT/Binary.hpp"
-#include "LIEF/OAT/Header.hpp"
-#include "LIEF/OAT/DexFile.hpp"
-#include "LIEF/OAT/Class.hpp"
-#include "LIEF/OAT/Method.hpp"
-#include "LIEF/OAT/EnumToString.hpp"
+  #include "LIEF/OAT/Parser.hpp"
+  #include "LIEF/OAT/utils.hpp"
+  #include "LIEF/OAT/Binary.hpp"
+  #include "LIEF/OAT/Header.hpp"
+  #include "LIEF/OAT/DexFile.hpp"
+  #include "LIEF/OAT/Class.hpp"
+  #include "LIEF/OAT/Method.hpp"
+  #include "LIEF/OAT/EnumToString.hpp"
 #endif

 #endif
diff --git a/deps/LIEF/include/LIEF/OAT/Binary.hpp b/deps/LIEF/include/LIEF/OAT/Binary.hpp
index f491a53b6f3..8f8f992ec54 100644
--- a/deps/LIEF/include/LIEF/OAT/Binary.hpp
+++ b/deps/LIEF/include/LIEF/OAT/Binary.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -42,44 +42,46 @@ class LIEF_API Binary : public ELF::Binary {
   friend class Parser;

   public:
-  using dex_files_t        = std::vector<std::unique_ptr<DEX::File>>;
-  using it_dex_files       = ref_iterator<dex_files_t&, DEX::File*>;
-  using it_const_dex_files = const_ref_iterator<const dex_files_t&, const DEX::File*>;
+  using dex_files_t = std::vector<std::unique_ptr<DEX::File>>;
+  using it_dex_files = ref_iterator<dex_files_t&, DEX::File*>;
+  using it_const_dex_files =
+      const_ref_iterator<const dex_files_t&, const DEX::File*>;

-  using classes_t         = std::unordered_map<std::string, Class*>;
-  using classes_list_t    = std::vector<std::unique_ptr<Class>>;
-  using it_classes        = ref_iterator<classes_list_t&, Class*>;
-  using it_const_classes  = const_ref_iterator<const classes_list_t&, const Class*>;
+  using classes_t = std::unordered_map<std::string, Class*>;
+  using classes_list_t = std::vector<std::unique_ptr<Class>>;
+  using it_classes = ref_iterator<classes_list_t&, Class*>;
+  using it_const_classes = const_ref_iterator<const classes_list_t&, const Class*>;

-  using oat_dex_files_t        = std::vector<std::unique_ptr<DexFile>>;
-  using it_oat_dex_files       = ref_iterator<oat_dex_files_t&, DexFile*>;
-  using it_const_oat_dex_files = const_ref_iterator<const oat_dex_files_t&, const DexFile*>;
+  using oat_dex_files_t = std::vector<std::unique_ptr<DexFile>>;
+  using it_oat_dex_files = ref_iterator<oat_dex_files_t&, DexFile*>;
+  using it_const_oat_dex_files =
+      const_ref_iterator<const oat_dex_files_t&, const DexFile*>;

-  using methods_t         = std::vector<std::unique_ptr<Method>>;
-  using it_methods        = ref_iterator<methods_t&, Method*>;
-  using it_const_methods  = const_ref_iterator<const methods_t&, const Method*>;
+  using methods_t = std::vector<std::unique_ptr<Method>>;
+  using it_methods = ref_iterator<methods_t&, Method*>;
+  using it_const_methods = const_ref_iterator<const methods_t&, const Method*>;

   using dex2dex_info_t = std::unordered_map<const DEX::File*, DEX::dex2dex_info_t>;

   public:
   Binary& operator=(const Binary& copy) = delete;
-  Binary(const Binary& copy)            = delete;
+  Binary(const Binary& copy) = delete;

   /// OAT Header
-  const Header& header() const;
-  Header& header();
+  const Header& header() const LIEF_LIFETIMEBOUND;
+  Header& header() LIEF_LIFETIMEBOUND;

   /// Iterator over LIEF::DEX::File
-  it_dex_files dex_files();
-  it_const_dex_files dex_files() const;
+  it_dex_files dex_files() LIEF_LIFETIMEBOUND;
+  it_const_dex_files dex_files() const LIEF_LIFETIMEBOUND;

   /// Iterator over LIEF::OAT::DexFile
-  it_oat_dex_files       oat_dex_files();
-  it_const_oat_dex_files oat_dex_files() const;
+  it_oat_dex_files oat_dex_files() LIEF_LIFETIMEBOUND;
+  it_const_oat_dex_files oat_dex_files() const LIEF_LIFETIMEBOUND;

   /// Iterator over LIEF::OAT::Class
-  it_const_classes classes() const;
-  it_classes classes();
+  it_const_classes classes() const LIEF_LIFETIMEBOUND;
+  it_classes classes() LIEF_LIFETIMEBOUND;

   /// Check if the current OAT has the given class
   bool has_class(const std::string& class_name) const;
@@ -87,19 +89,19 @@ class LIEF_API Binary : public ELF::Binary {

   /// Return the LIEF::OAT::Class with the given name or
   /// a nullptr if the class can't be found
-  const Class* get_class(const std::string& class_name) const;
+  const Class* get_class(const std::string& class_name) const LIEF_LIFETIMEBOUND;

-  Class* get_class(const std::string& class_name);
+  Class* get_class(const std::string& class_name) LIEF_LIFETIMEBOUND;

   /// Return the LIEF::OAT::Class at the given index or a nullptr
   /// if it does not exist
-  const Class* get_class(size_t index) const;
+  const Class* get_class(size_t index) const LIEF_LIFETIMEBOUND;

-  Class* get_class(size_t index);
+  Class* get_class(size_t index) LIEF_LIFETIMEBOUND;

   /// Iterator over LIEF::OAT::Method
-  it_const_methods methods() const;
-  it_methods methods();
+  it_const_methods methods() const LIEF_LIFETIMEBOUND;
+  it_methods methods() LIEF_LIFETIMEBOUND;

   dex2dex_info_t dex2dex_info() const;

diff --git a/deps/LIEF/include/LIEF/OAT/Class.hpp b/deps/LIEF/include/LIEF/OAT/Class.hpp
index bb1d235735f..72f3b199f5d 100644
--- a/deps/LIEF/include/LIEF/OAT/Class.hpp
+++ b/deps/LIEF/include/LIEF/OAT/Class.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -44,8 +44,8 @@ class LIEF_API Class : public Object {
   public:
   Class();

-  Class(OAT_CLASS_STATUS status, OAT_CLASS_TYPES type,
-        DEX::Class* dex_class, std::vector<uint32_t> bitmap = {});
+  Class(OAT_CLASS_STATUS status, OAT_CLASS_TYPES type, DEX::Class* dex_class,
+        std::vector<uint32_t> bitmap = {});

   Class(const Class&);
   Class& operator=(const Class&);
@@ -84,15 +84,13 @@ class LIEF_API Class : public Object {
   ~Class() override;

   private:
-
   DEX::Class* dex_class_ = nullptr;

   OAT_CLASS_STATUS status_ = OAT_CLASS_STATUS::STATUS_NOTREADY;
-  OAT_CLASS_TYPES  type_   = OAT_CLASS_TYPES::OAT_CLASS_NONE_COMPILED;
+  OAT_CLASS_TYPES type_ = OAT_CLASS_TYPES::OAT_CLASS_NONE_COMPILED;

   std::vector<uint32_t> method_bitmap_;
   methods_t methods_;
-
 };

 } // Namespace OAT
diff --git a/deps/LIEF/include/LIEF/OAT/DexFile.hpp b/deps/LIEF/include/LIEF/OAT/DexFile.hpp
index 3902404fa97..41ce04f2d3f 100644
--- a/deps/LIEF/include/LIEF/OAT/DexFile.hpp
+++ b/deps/LIEF/include/LIEF/OAT/DexFile.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -70,7 +70,8 @@ class LIEF_API DexFile : public Object {

   ~DexFile() override;

-  LIEF_API friend std::ostream& operator<<(std::ostream& os, const DexFile& dex_file);
+  LIEF_API friend std::ostream& operator<<(std::ostream& os,
+                                           const DexFile& dex_file);

   private:
   std::string location_;
diff --git a/deps/LIEF/include/LIEF/OAT/EnumToString.hpp b/deps/LIEF/include/LIEF/OAT/EnumToString.hpp
index 8ec2579f6e9..9a9227fb6ce 100644
--- a/deps/LIEF/include/LIEF/OAT/EnumToString.hpp
+++ b/deps/LIEF/include/LIEF/OAT/EnumToString.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -30,4 +30,3 @@ LIEF_API const char* to_string(INSTRUCTION_SETS e);
 } // namespace LIEF

 #endif
-
diff --git a/deps/LIEF/include/LIEF/OAT/Header.hpp b/deps/LIEF/include/LIEF/OAT/Header.hpp
index fe8a1e347bf..3f92526006a 100644
--- a/deps/LIEF/include/LIEF/OAT/Header.hpp
+++ b/deps/LIEF/include/LIEF/OAT/Header.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -39,18 +39,19 @@ class LIEF_API Header : public Object {
   public:
   struct element_t {
     element_t(HEADER_KEYS key, const std::string& value) :
-      key(key), value(const_cast<std::string*>(&value)) {}
+      key(key),
+      value(const_cast<std::string*>(&value)) {}

     HEADER_KEYS key;
     std::string* value = nullptr;
   };
-  using magic_t               = std::array<uint8_t, 4>; // oat\n
-  using key_values_t          = std::map<HEADER_KEYS, std::string>;
-  using it_key_values_t       = ref_iterator<std::vector<element_t>>;
+  using magic_t = std::array<uint8_t, 4>; // oat\n
+  using key_values_t = std::map<HEADER_KEYS, std::string>;
+  using it_key_values_t = ref_iterator<std::vector<element_t>>;
   using it_const_key_values_t = const_ref_iterator<std::vector<element_t>>;

   /// Iterator type over
-  using keys_t   = std::vector<HEADER_KEYS>;
+  using keys_t = std::vector<HEADER_KEYS>;
   using values_t = std::vector<std::string>;

   public:
@@ -99,16 +100,16 @@ class LIEF_API Header : public Object {

   uint32_t key_value_size() const;

-  it_key_values_t       key_values();
-  it_const_key_values_t key_values() const;
+  it_key_values_t key_values() LIEF_LIFETIMEBOUND;
+  it_const_key_values_t key_values() const LIEF_LIFETIMEBOUND;

   keys_t keys() const;
   values_t values() const;

-  const std::string* get(HEADER_KEYS key) const;
-  std::string* get(HEADER_KEYS key);
+  const std::string* get(HEADER_KEYS key) const LIEF_LIFETIMEBOUND;
+  std::string* get(HEADER_KEYS key) LIEF_LIFETIMEBOUND;

-  Header& set(HEADER_KEYS key, const std::string& value);
+  Header& set(HEADER_KEYS key, const std::string& value) LIEF_LIFETIMEBOUND;

   const std::string* operator[](HEADER_KEYS key) const;
   std::string* operator[](HEADER_KEYS key);
@@ -146,8 +147,6 @@ class LIEF_API Header : public Object {
   uint32_t key_value_store_size_ = 0;

   key_values_t dex2oat_context_;
-
-
 };

 }
diff --git a/deps/LIEF/include/LIEF/OAT/Method.hpp b/deps/LIEF/include/LIEF/OAT/Method.hpp
index 1194cf6a006..c3bbb3ed2c9 100644
--- a/deps/LIEF/include/LIEF/OAT/Method.hpp
+++ b/deps/LIEF/include/LIEF/OAT/Method.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -33,14 +33,14 @@ class Class;

 class LIEF_API Method : public Object {
   friend class Parser;
-  public:

+  public:
   /// Container for the Quick Code
   using quick_code_t = std::vector<uint8_t>;

   public:
   Method();
-  Method(DEX::Method* method, Class* oat_class, std::vector<uint8_t>  code = {});
+  Method(DEX::Method* method, Class* oat_class, std::vector<uint8_t> code = {});
   Method(const Method&);
   Method& operator=(const Method&);

@@ -49,16 +49,16 @@ class LIEF_API Method : public Object {
   std::string name() const;

   /// OAT Class associated with this Method
-  const Class* oat_class() const;
-  Class* oat_class();
+  const Class* oat_class() const LIEF_LIFETIMEBOUND;
+  Class* oat_class() LIEF_LIFETIMEBOUND;

   /// Check if a LIEF::DEX::Method is associated with
   /// this Method
   bool has_dex_method() const;

   /// LIEF::DEX::Method associated (if any)
-  const DEX::Method* dex_method() const;
-  DEX::Method* dex_method();
+  const DEX::Method* dex_method() const LIEF_LIFETIMEBOUND;
+  DEX::Method* dex_method() LIEF_LIFETIMEBOUND;

   /// True if the optimization is DEX
   bool is_dex2dex_optimized() const;
diff --git a/deps/LIEF/include/LIEF/OAT/Parser.hpp b/deps/LIEF/include/LIEF/OAT/Parser.hpp
index 87b280ae76b..f34f3864ba3 100644
--- a/deps/LIEF/include/LIEF/OAT/Parser.hpp
+++ b/deps/LIEF/include/LIEF/OAT/Parser.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -15,8 +15,10 @@
  */
 #ifndef LIEF_OAT_PARSER_H
 #define LIEF_OAT_PARSER_H
+#include <cstdint>
 #include <memory>

+#include "LIEF/errors.hpp"
 #include "LIEF/visibility.h"
 #include "LIEF/ELF/Parser.hpp"

@@ -45,7 +47,7 @@ class LIEF_API Parser : public ELF::Parser {
   static std::unique_ptr<Binary> parse(std::vector<uint8_t> data);

   Parser& operator=(const Parser& copy) = delete;
-  Parser(const Parser& copy)            = delete;
+  Parser(const Parser& copy) = delete;

   protected:
   Parser();
@@ -80,10 +82,13 @@ class LIEF_API Parser : public ELF::Parser {
   void parse_oat_classes();

   template<typename OAT_T>
-  void parse_oat_methods(uint64_t methods_offsets, Class& clazz, const DEX::Class& dex_class);
+  void parse_oat_methods(uint64_t methods_offsets, Class& clazz,
+                         const DEX::Class& dex_class);

   void init();

+  result<uint64_t> oat_data_exec_gap() const;
+
   std::unique_ptr<LIEF::VDEX::File> vdex_file_;

   uint64_t data_address_ = 0;
diff --git a/deps/LIEF/include/LIEF/OAT/enums.hpp b/deps/LIEF/include/LIEF/OAT/enums.hpp
index d0d098da35d..bdb0b0bbf5d 100644
--- a/deps/LIEF/include/LIEF/OAT/enums.hpp
+++ b/deps/LIEF/include/LIEF/OAT/enums.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -20,69 +20,68 @@ namespace LIEF {
 namespace OAT {

 enum OAT_CLASS_TYPES {
-  OAT_CLASS_ALL_COMPILED  = 0, /// OatClass is followed by an OatMethodOffsets for each method.
-  OAT_CLASS_SOME_COMPILED = 1, /// A bitmap of which OatMethodOffsets are present follows the OatClass.
-  OAT_CLASS_NONE_COMPILED = 2, /// All methods are interpreted so no OatMethodOffsets are necessary.
+  OAT_CLASS_ALL_COMPILED =
+      0, /// OatClass is followed by an OatMethodOffsets for each method.
+  OAT_CLASS_SOME_COMPILED =
+      1, /// A bitmap of which OatMethodOffsets are present follows the OatClass.
+  OAT_CLASS_NONE_COMPILED =
+      2, /// All methods are interpreted so no OatMethodOffsets are necessary.
 };

 // From art/runtime/mirror/class.h
 enum OAT_CLASS_STATUS {
-  STATUS_RETIRED                       = -2,  // Retired, should not be used. Use the newly cloned one instead.
-  STATUS_ERROR                         = -1,
-  STATUS_NOTREADY                      = 0,
-  STATUS_IDX                           = 1,  // Loaded, DEX idx in super_class_type_idx_ and interfaces_type_idx_.
-  STATUS_LOADED                        = 2,  // DEX idx values resolved.
-  STATUS_RESOLVING                     = 3,  // Just cloned from temporary class object.
-  STATUS_RESOLVED                      = 4,  // Part of linking.
-  STATUS_VERIFYING                     = 5,  // In the process of being verified.
-  STATUS_RETRY_VERIFICATION_AT_RUNTIME = 6,  // Compile time verification failed, retry at runtime.
-  STATUS_VERIFYING_AT_RUNTIME          = 7,  // Retrying verification at runtime.
-  STATUS_VERIFIED                      = 8,  // Logically part of linking; done pre-init.
-  STATUS_INITIALIZING                  = 9,  // Class init in progress.
-  STATUS_INITIALIZED                   = 10, // Ready to go.
+  STATUS_RETIRED =
+      -2, // Retired, should not be used. Use the newly cloned one instead.
+  STATUS_ERROR = -1,
+  STATUS_NOTREADY = 0,
+  STATUS_IDX =
+      1, // Loaded, DEX idx in super_class_type_idx_ and interfaces_type_idx_.
+  STATUS_LOADED = 2,    // DEX idx values resolved.
+  STATUS_RESOLVING = 3, // Just cloned from temporary class object.
+  STATUS_RESOLVED = 4,  // Part of linking.
+  STATUS_VERIFYING = 5, // In the process of being verified.
+  STATUS_RETRY_VERIFICATION_AT_RUNTIME =
+      6, // Compile time verification failed, retry at runtime.
+  STATUS_VERIFYING_AT_RUNTIME = 7, // Retrying verification at runtime.
+  STATUS_VERIFIED = 8,             // Logically part of linking; done pre-init.
+  STATUS_INITIALIZING = 9,         // Class init in progress.
+  STATUS_INITIALIZED = 10,         // Ready to go.
 };

 enum HEADER_KEYS {
-  KEY_IMAGE_LOCATION     = 0,
-  KEY_DEX2OAT_CMD_LINE   = 1,
-  KEY_DEX2OAT_HOST       = 2,
-  KEY_PIC                = 3,
-  KEY_HAS_PATCH_INFO     = 4,
-  KEY_DEBUGGABLE         = 5,
-  KEY_NATIVE_DEBUGGABLE  = 6,
-  KEY_COMPILER_FILTER    = 7,
-  KEY_CLASS_PATH         = 8,
-  KEY_BOOT_CLASS_PATH    = 9,
+  KEY_IMAGE_LOCATION = 0,
+  KEY_DEX2OAT_CMD_LINE = 1,
+  KEY_DEX2OAT_HOST = 2,
+  KEY_PIC = 3,
+  KEY_HAS_PATCH_INFO = 4,
+  KEY_DEBUGGABLE = 5,
+  KEY_NATIVE_DEBUGGABLE = 6,
+  KEY_COMPILER_FILTER = 7,
+  KEY_CLASS_PATH = 8,
+  KEY_BOOT_CLASS_PATH = 9,
   KEY_CONCURRENT_COPYING = 10,
-  KE_COMPILATION_REASON  = 11,
+  KE_COMPILATION_REASON = 11,
 };

 enum INSTRUCTION_SETS {
-  INST_SET_NONE    = 0,
-  INST_SET_ARM     = 1,
-  INST_SET_ARM_64  = 2,
-  INST_SET_THUMB2  = 3,
-  INST_SET_X86     = 4,
-  INST_SET_X86_64  = 5,
-  INST_SET_MIPS    = 6,
+  INST_SET_NONE = 0,
+  INST_SET_ARM = 1,
+  INST_SET_ARM_64 = 2,
+  INST_SET_THUMB2 = 3,
+  INST_SET_X86 = 4,
+  INST_SET_X86_64 = 5,
+  INST_SET_MIPS = 6,
   INST_SET_MIPS_64 = 7,
 };


-
 static const HEADER_KEYS header_keys_list[] = {
-  HEADER_KEYS::KEY_IMAGE_LOCATION     ,
-  HEADER_KEYS::KEY_DEX2OAT_CMD_LINE   ,
-  HEADER_KEYS::KEY_DEX2OAT_HOST       ,
-  HEADER_KEYS::KEY_PIC                ,
-  HEADER_KEYS::KEY_HAS_PATCH_INFO     ,
-  HEADER_KEYS::KEY_DEBUGGABLE         ,
-  HEADER_KEYS::KEY_NATIVE_DEBUGGABLE  ,
-  HEADER_KEYS::KEY_COMPILER_FILTER    ,
-  HEADER_KEYS::KEY_CLASS_PATH         ,
-  HEADER_KEYS::KEY_BOOT_CLASS_PATH    ,
-  HEADER_KEYS::KEY_CONCURRENT_COPYING ,
-  HEADER_KEYS::KE_COMPILATION_REASON  ,
+    HEADER_KEYS::KEY_IMAGE_LOCATION,     HEADER_KEYS::KEY_DEX2OAT_CMD_LINE,
+    HEADER_KEYS::KEY_DEX2OAT_HOST,       HEADER_KEYS::KEY_PIC,
+    HEADER_KEYS::KEY_HAS_PATCH_INFO,     HEADER_KEYS::KEY_DEBUGGABLE,
+    HEADER_KEYS::KEY_NATIVE_DEBUGGABLE,  HEADER_KEYS::KEY_COMPILER_FILTER,
+    HEADER_KEYS::KEY_CLASS_PATH,         HEADER_KEYS::KEY_BOOT_CLASS_PATH,
+    HEADER_KEYS::KEY_CONCURRENT_COPYING, HEADER_KEYS::KE_COMPILATION_REASON,
 };

 }
diff --git a/deps/LIEF/include/LIEF/OAT/hash.hpp b/deps/LIEF/include/LIEF/OAT/hash.hpp
index bfa3a49e987..7839bf97be4 100644
--- a/deps/LIEF/include/LIEF/OAT/hash.hpp
+++ b/deps/LIEF/include/LIEF/OAT/hash.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -38,11 +38,11 @@ class LIEF_API Hash : public LIEF::Hash {
   using LIEF::Hash::visit;

   public:
-  void visit(const Binary& binary)        override;
-  void visit(const Header& header)        override;
-  void visit(const DexFile& dex_file)     override;
-  void visit(const Class& cls)            override;
-  void visit(const Method& method)        override;
+  void visit(const Binary& binary) override;
+  void visit(const Header& header) override;
+  void visit(const DexFile& dex_file) override;
+  void visit(const Class& cls) override;
+  void visit(const Method& method) override;

   ~Hash() override;
 };
diff --git a/deps/LIEF/include/LIEF/OAT/json.hpp b/deps/LIEF/include/LIEF/OAT/json.hpp
index 99dc19bbacc..f37342f0939 100644
--- a/deps/LIEF/include/LIEF/OAT/json.hpp
+++ b/deps/LIEF/include/LIEF/OAT/json.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/deps/LIEF/include/LIEF/OAT/type_traits.hpp b/deps/LIEF/include/LIEF/OAT/type_traits.hpp
index 198554e81eb..cfa691b3b86 100644
--- a/deps/LIEF/include/LIEF/OAT/type_traits.hpp
+++ b/deps/LIEF/include/LIEF/OAT/type_traits.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/deps/LIEF/include/LIEF/OAT/utils.hpp b/deps/LIEF/include/LIEF/OAT/utils.hpp
index fe28a784a21..4274783efc7 100644
--- a/deps/LIEF/include/LIEF/OAT/utils.hpp
+++ b/deps/LIEF/include/LIEF/OAT/utils.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/deps/LIEF/include/LIEF/ObjC.hpp b/deps/LIEF/include/LIEF/ObjC.hpp
index 21f0240179c..4d7f4a140e1 100644
--- a/deps/LIEF/include/LIEF/ObjC.hpp
+++ b/deps/LIEF/include/LIEF/ObjC.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -17,6 +17,7 @@
 #define LIEF_OBJC_H
 #include <LIEF/ObjC/Metadata.hpp>
 #include <LIEF/ObjC/Class.hpp>
+#include <LIEF/ObjC/Category.hpp>
 #include <LIEF/ObjC/IVar.hpp>
 #include <LIEF/ObjC/Method.hpp>
 #include <LIEF/ObjC/Property.hpp>
diff --git a/deps/LIEF/include/LIEF/ObjC/Category.hpp b/deps/LIEF/include/LIEF/ObjC/Category.hpp
new file mode 100644
index 00000000000..5abf1096b70
--- /dev/null
+++ b/deps/LIEF/include/LIEF/ObjC/Category.hpp
@@ -0,0 +1,130 @@
+/* Copyright 2022 - 2026 R. Thomas
+ *
+ * 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.
+ */
+#ifndef LIEF_OBJC_CATEGORY_H
+#define LIEF_OBJC_CATEGORY_H
+#include <LIEF/compiler_attributes.hpp>
+#include <LIEF/visibility.h>
+#include <LIEF/iterators.hpp>
+
+#include <LIEF/ObjC/Method.hpp>
+#include <LIEF/ObjC/Property.hpp>
+#include <LIEF/ObjC/Protocol.hpp>
+#include <LIEF/ObjC/DeclOpt.hpp>
+
+#include <memory>
+#include <string>
+
+namespace LIEF {
+namespace objc {
+
+namespace details {
+class Category;
+class CategoryIt;
+}
+
+/// This class represents an Objective-C category (e.g.
+/// `@interface NSString (MyAdditions)`)
+class LIEF_API Category {
+  public:
+  class Iterator final
+    : public iterator_facade_base<Iterator, std::bidirectional_iterator_tag,
+                                  Category, std::ptrdiff_t, const Category*,
+                                  const Category&> {
+    public:
+    using implementation = details::CategoryIt;
+    using iterator_facade_base::operator++;
+    using iterator_facade_base::operator--;
+
+    LIEF_API Iterator();
+
+    LIEF_API Iterator(std::unique_ptr<details::CategoryIt> impl);
+
+    LIEF_API Iterator(const Iterator&);
+    LIEF_API Iterator& operator=(const Iterator&);
+
+    LIEF_API Iterator(Iterator&&) noexcept;
+    LIEF_API Iterator& operator=(Iterator&&) noexcept;
+
+    LIEF_API ~Iterator();
+
+    friend LIEF_API bool operator==(const Iterator& LHS, const Iterator& RHS);
+
+    friend bool operator!=(const Iterator& LHS, const Iterator& RHS) {
+      return !(LHS == RHS);
+    }
+
+    // NOLINTNEXTLINE(bugprone-derived-method-shadowing-base-method)
+    LIEF_API Iterator& operator++();
+
+    // NOLINTNEXTLINE(bugprone-derived-method-shadowing-base-method)
+    LIEF_API Iterator& operator--();
+
+    LIEF_API const Category& operator*() const;
+
+    // NOLINTNEXTLINE(bugprone-derived-method-shadowing-base-method)
+    LIEF_API const Category* operator->() const;
+
+    /// Transfer ownership of the category at the current position to the
+    /// caller. Returns `nullptr` if the iterator is past-the-end.
+    LIEF_API std::unique_ptr<Category> yield();
+
+    private:
+    void load() const;
+
+    std::unique_ptr<details::CategoryIt> impl_;
+    mutable std::unique_ptr<Category> cached_;
+  };
+
+  public:
+  /// Iterator for the category's methods
+  using methods_t = iterator_range<Method::Iterator>;
+
+  /// Iterator for the protocols adopted by this category
+  using protocols_t = iterator_range<Protocol::Iterator>;
+
+  /// Iterator for the properties declared by this category
+  using properties_t = iterator_range<Property::Iterator>;
+
+  Category(std::unique_ptr<details::Category> impl);
+
+  /// Name of the category
+  std::string name() const;
+
+  /// (demangled) name of the class extended by this category
+  std::string class_name() const;
+
+  /// Iterator over the different methods defined by this category
+  methods_t methods() const LIEF_LIFETIMEBOUND;
+
+  /// Iterator over the different protocols adopted by this category
+  protocols_t protocols() const LIEF_LIFETIMEBOUND;
+
+  /// Iterator over the properties of this category
+  properties_t properties() const LIEF_LIFETIMEBOUND;
+
+  /// Generate a header-like string for this specific category.
+  ///
+  /// The generated output can be configured with DeclOpt
+  std::string to_decl(const DeclOpt& opt = DeclOpt()) const;
+
+  ~Category();
+
+  private:
+  std::unique_ptr<details::Category> impl_;
+};
+
+}
+}
+#endif
diff --git a/deps/LIEF/include/LIEF/ObjC/Class.hpp b/deps/LIEF/include/LIEF/ObjC/Class.hpp
index 71f0894c2d5..2b4457927fe 100644
--- a/deps/LIEF/include/LIEF/ObjC/Class.hpp
+++ b/deps/LIEF/include/LIEF/ObjC/Class.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -16,6 +16,7 @@
 #define LIEF_OBJC_CLASS_H

 #include <LIEF/visibility.h>
+#include <LIEF/compiler_attributes.hpp>

 #include <LIEF/ObjC/IVar.hpp>
 #include <LIEF/ObjC/Protocol.hpp>
@@ -37,66 +38,56 @@ class ClassIt;
 /// This class represents an Objective-C class (`@interface`)
 class LIEF_API Class {
   public:
-  class LIEF_API Iterator {
+  class Iterator final
+    : public iterator_facade_base<Iterator, std::bidirectional_iterator_tag, Class,
+                                  std::ptrdiff_t, const Class*, const Class&> {
     public:
-    using iterator_category = std::bidirectional_iterator_tag;
-    using value_type = std::unique_ptr<Class>;
-    using difference_type = std::ptrdiff_t;
-    using pointer = Class*;
-    using reference = std::unique_ptr<Class>&;
     using implementation = details::ClassIt;
+    using iterator_facade_base::operator++;
+    using iterator_facade_base::operator--;

-    class LIEF_API PointerProxy {
-      // Inspired from LLVM's iterator_facade_base
-      friend class Iterator;
-      public:
-      pointer operator->() const { return R.get(); }
+    LIEF_API Iterator();

-      private:
-      value_type R;
+    LIEF_API Iterator(std::unique_ptr<details::ClassIt> impl);

-      template <typename RefT>
-      PointerProxy(RefT &&R) : R(std::forward<RefT>(R)) {} // NOLINT(bugprone-forwarding-reference-overload)
-    };
+    LIEF_API Iterator(const Iterator&);
+    LIEF_API Iterator& operator=(const Iterator&);

-    Iterator(const Iterator&);
-    Iterator(Iterator&&) noexcept;
-    Iterator(std::unique_ptr<details::ClassIt> impl);
-    ~Iterator();
+    LIEF_API Iterator(Iterator&&) noexcept;
+    LIEF_API Iterator& operator=(Iterator&&) noexcept;
+
+    LIEF_API ~Iterator();

     friend LIEF_API bool operator==(const Iterator& LHS, const Iterator& RHS);

-    friend LIEF_API bool operator!=(const Iterator& LHS, const Iterator& RHS) {
+    friend bool operator!=(const Iterator& LHS, const Iterator& RHS) {
       return !(LHS == RHS);
     }

-    Iterator& operator++();
-    Iterator& operator--();
+    // NOLINTNEXTLINE(bugprone-derived-method-shadowing-base-method)
+    LIEF_API Iterator& operator++();

-    Iterator operator--(int) {
-      Iterator tmp = *static_cast<Iterator*>(this);
-      --*static_cast<Iterator *>(this);
-      return tmp;
-    }
+    // NOLINTNEXTLINE(bugprone-derived-method-shadowing-base-method)
+    LIEF_API Iterator& operator--();

-    Iterator operator++(int) {
-      Iterator tmp = *static_cast<Iterator*>(this);
-      ++*static_cast<Iterator *>(this);
-      return tmp;
-    }
+    LIEF_API const Class& operator*() const;

-    std::unique_ptr<Class> operator*() const;
+    // NOLINTNEXTLINE(bugprone-derived-method-shadowing-base-method)
+    LIEF_API const Class* operator->() const;

-    PointerProxy operator->() const {
-      return static_cast<const Iterator*>(this)->operator*();
-    }
+    /// Transfer ownership of the class at the current position to the
+    /// caller. Returns `nullptr` if the iterator is past-the-end.
+    LIEF_API std::unique_ptr<Class> yield();

     private:
+    void load() const;
+
     std::unique_ptr<details::ClassIt> impl_;
+    mutable std::unique_ptr<Class> cached_;
   };

   public:
-  /// Iterator for the class's method
+  /// Iterator for the class's methods
   using methods_t = iterator_range<Method::Iterator>;

   /// Iterator for the protocols implemented by this class
@@ -116,22 +107,34 @@ class LIEF_API Class {
   /// Demangled name of the class
   std::string demangled_name() const;

-  /// Parent class in case of inheritance
-  std::unique_ptr<Class> super_class() const;
+  /// Parent class in case of inheritance.
+  ///
+  /// This returns the superclass object **only** when it is defined in the same
+  /// binary. For root classes (e.g. `NSObject`) or superclasses imported from
+  /// another image, it returns a null pointer even though the name can still be
+  /// resolved through super_name() / demangled_super_name().
+  std::unique_ptr<Class> super_class() const LIEF_LIFETIMEBOUND;
+
+  /// (raw) name of the superclass (empty for root classes or when it could not
+  /// be resolved).
+  std::string super_name() const;
+
+  /// Demangled name of the superclass.
+  std::string demangled_super_name() const;

   bool is_meta() const;

   /// Iterator over the different methods defined by this class
-  methods_t methods() const;
+  methods_t methods() const LIEF_LIFETIMEBOUND;

   /// Iterator over the different protocols implemented by this class
-  protocols_t protocols() const;
+  protocols_t protocols() const LIEF_LIFETIMEBOUND;

   /// Iterator over the properties of this class
-  properties_t properties() const;
+  properties_t properties() const LIEF_LIFETIMEBOUND;

   /// Iterator over the different instance variables defined in this class
-  ivars_t ivars() const;
+  ivars_t ivars() const LIEF_LIFETIMEBOUND;

   /// Generate a header-like string for this specific class.
   ///
@@ -139,6 +142,7 @@ class LIEF_API Class {
   std::string to_decl(const DeclOpt& opt = DeclOpt()) const;

   ~Class();
+
   private:
   std::unique_ptr<details::Class> impl_;
 };
diff --git a/deps/LIEF/include/LIEF/ObjC/DeclOpt.hpp b/deps/LIEF/include/LIEF/ObjC/DeclOpt.hpp
index 23d12e4b75e..4cab434af3a 100644
--- a/deps/LIEF/include/LIEF/ObjC/DeclOpt.hpp
+++ b/deps/LIEF/include/LIEF/ObjC/DeclOpt.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -26,4 +26,3 @@ struct DeclOpt {
 }
 }
 #endif
-
diff --git a/deps/LIEF/include/LIEF/ObjC/IVar.hpp b/deps/LIEF/include/LIEF/ObjC/IVar.hpp
index cc2650ce051..d34b5a1bdc9 100644
--- a/deps/LIEF/include/LIEF/ObjC/IVar.hpp
+++ b/deps/LIEF/include/LIEF/ObjC/IVar.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -33,62 +33,52 @@ class IVarIt;
 /// This class represents an instance variable (ivar)
 class LIEF_API IVar {
   public:
-  class LIEF_API Iterator {
+  class Iterator final
+    : public iterator_facade_base<Iterator, std::bidirectional_iterator_tag, IVar,
+                                  std::ptrdiff_t, const IVar*, const IVar&> {
     public:
-    using iterator_category = std::bidirectional_iterator_tag;
-    using value_type = std::unique_ptr<IVar>;
-    using difference_type = std::ptrdiff_t;
-    using pointer = IVar*;
-    using reference = std::unique_ptr<IVar>&;
     using implementation = details::IVarIt;
+    using iterator_facade_base::operator++;
+    using iterator_facade_base::operator--;

-    class LIEF_API PointerProxy {
-      // Inspired from LLVM's iterator_facade_base
-      friend class Iterator;
-      public:
-      pointer operator->() const { return R.get(); }
+    LIEF_API Iterator();

-      private:
-      value_type R;
+    LIEF_API Iterator(std::unique_ptr<details::IVarIt> impl);

-      template <typename RefT>
-      PointerProxy(RefT &&R) : R(std::forward<RefT>(R)) {} // NOLINT(bugprone-forwarding-reference-overload)
-    };
+    LIEF_API Iterator(const Iterator&);
+    LIEF_API Iterator& operator=(const Iterator&);

-    Iterator(const Iterator&);
-    Iterator(Iterator&&) noexcept;
-    Iterator(std::unique_ptr<details::IVarIt> impl);
-    ~Iterator();
+    LIEF_API Iterator(Iterator&&) noexcept;
+    LIEF_API Iterator& operator=(Iterator&&) noexcept;
+
+    LIEF_API ~Iterator();

     friend LIEF_API bool operator==(const Iterator& LHS, const Iterator& RHS);

-    friend LIEF_API bool operator!=(const Iterator& LHS, const Iterator& RHS) {
+    friend bool operator!=(const Iterator& LHS, const Iterator& RHS) {
       return !(LHS == RHS);
     }

-    Iterator& operator++();
-    Iterator& operator--();
+    // NOLINTNEXTLINE(bugprone-derived-method-shadowing-base-method)
+    LIEF_API Iterator& operator++();

-    Iterator operator--(int) {
-      Iterator tmp = *static_cast<Iterator*>(this);
-      --*static_cast<Iterator *>(this);
-      return tmp;
-    }
+    // NOLINTNEXTLINE(bugprone-derived-method-shadowing-base-method)
+    LIEF_API Iterator& operator--();

-    Iterator operator++(int) {
-      Iterator tmp = *static_cast<Iterator*>(this);
-      ++*static_cast<Iterator *>(this);
-      return tmp;
-    }
+    LIEF_API const IVar& operator*() const;

-    std::unique_ptr<IVar> operator*() const;
+    // NOLINTNEXTLINE(bugprone-derived-method-shadowing-base-method)
+    LIEF_API const IVar* operator->() const;

-    PointerProxy operator->() const {
-      return static_cast<const Iterator*>(this)->operator*();
-    }
+    /// Transfer ownership of the ivar at the current position to the
+    /// caller. Returns `nullptr` if the iterator is past-the-end.
+    LIEF_API std::unique_ptr<IVar> yield();

     private:
+    void load() const;
+
     std::unique_ptr<details::IVarIt> impl_;
+    mutable std::unique_ptr<IVar> cached_;
   };

   public:
@@ -101,6 +91,7 @@ class LIEF_API IVar {
   std::string mangled_type() const;

   ~IVar();
+
   private:
   std::unique_ptr<details::IVar> impl_;
 };
diff --git a/deps/LIEF/include/LIEF/ObjC/Metadata.hpp b/deps/LIEF/include/LIEF/ObjC/Metadata.hpp
index 83be50c971f..e3a22a3c4c2 100644
--- a/deps/LIEF/include/LIEF/ObjC/Metadata.hpp
+++ b/deps/LIEF/include/LIEF/ObjC/Metadata.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -14,9 +14,11 @@
  */
 #ifndef LIEF_OBJC_METADATA_H
 #define LIEF_OBJC_METADATA_H
+#include <LIEF/compiler_attributes.hpp>
 #include <LIEF/visibility.h>
 #include <LIEF/ObjC/Class.hpp>
 #include <LIEF/ObjC/Protocol.hpp>
+#include <LIEF/ObjC/Category.hpp>

 #include <LIEF/iterators.hpp>
 #include <LIEF/ObjC/DeclOpt.hpp>
@@ -38,20 +40,28 @@ class LIEF_API Metadata {
   public:
   using classes_it = iterator_range<Class::Iterator>;
   using protocols_it = iterator_range<Protocol::Iterator>;
+  using categories_it = iterator_range<Category::Iterator>;

   Metadata(std::unique_ptr<details::Metadata> impl);

   /// Return an iterator over the different Objective-C classes (`@interface`)
-  classes_it classes() const;
+  classes_it classes() const LIEF_LIFETIMEBOUND;

-  /// Return an iterator over the Objective-C protocols declared in this binary (`@protocol`).
-  protocols_it protocols() const;
+  /// Return an iterator over the Objective-C protocols declared in this binary
+  /// (`@protocol`).
+  protocols_it protocols() const LIEF_LIFETIMEBOUND;
+
+  /// Return an iterator over the Objective-C categories declared in this binary
+  /// (e.g. `@interface NSString (MyAdditions)`).
+  categories_it categories() const LIEF_LIFETIMEBOUND;

   /// Try to find the Objective-C class with the given **mangled** name
-  std::unique_ptr<Class> get_class(const std::string& name) const;
+  std::unique_ptr<Class>
+      get_class(const std::string& name) const LIEF_LIFETIMEBOUND;

   /// Try to find the Objective-C protocol with the given **mangled** name
-  std::unique_ptr<Protocol> get_protocol(const std::string& name) const;
+  std::unique_ptr<Protocol>
+      get_protocol(const std::string& name) const LIEF_LIFETIMEBOUND;

   /// Generate a header-like of all the Objective-C metadata identified in the
   /// binary.
@@ -59,6 +69,7 @@ class LIEF_API Metadata {
   std::string to_decl(const DeclOpt& opt = DeclOpt()) const;

   ~Metadata();
+
   private:
   std::unique_ptr<details::Metadata> impl_;
 };
diff --git a/deps/LIEF/include/LIEF/ObjC/Method.hpp b/deps/LIEF/include/LIEF/ObjC/Method.hpp
index b9f37288247..b2a3a602153 100644
--- a/deps/LIEF/include/LIEF/ObjC/Method.hpp
+++ b/deps/LIEF/include/LIEF/ObjC/Method.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -14,6 +14,7 @@
  */
 #ifndef LIEF_OBJC_METHOD_H
 #define LIEF_OBJC_METHOD_H
+#include <LIEF/iterators.hpp>
 #include <LIEF/visibility.h>

 #include <cstdint>
@@ -31,62 +32,53 @@ class MethodIt;
 /// This class represents an Objective-C Method
 class LIEF_API Method {
   public:
-  class LIEF_API Iterator {
+  class Iterator final
+    : public iterator_facade_base<Iterator, std::bidirectional_iterator_tag,
+                                  Method, std::ptrdiff_t, const Method*,
+                                  const Method&> {
     public:
-    using iterator_category = std::bidirectional_iterator_tag;
-    using value_type = std::unique_ptr<Method>;
-    using difference_type = std::ptrdiff_t;
-    using pointer = Method*;
-    using reference = std::unique_ptr<Method>&;
     using implementation = details::MethodIt;
+    using iterator_facade_base::operator++;
+    using iterator_facade_base::operator--;

-    class LIEF_API PointerProxy {
-      // Inspired from LLVM's iterator_facade_base
-      friend class Iterator;
-      public:
-      pointer operator->() const { return R.get(); }
+    LIEF_API Iterator();

-      private:
-      value_type R;
+    LIEF_API Iterator(std::unique_ptr<details::MethodIt> impl);

-      template <typename RefT>
-      PointerProxy(RefT &&R) : R(std::forward<RefT>(R)) {} // NOLINT(bugprone-forwarding-reference-overload)
-    };
+    LIEF_API Iterator(const Iterator&);
+    LIEF_API Iterator& operator=(const Iterator&);

-    Iterator(const Iterator&);
-    Iterator(Iterator&&) noexcept;
-    Iterator(std::unique_ptr<details::MethodIt> impl);
-    ~Iterator();
+    LIEF_API Iterator(Iterator&&) noexcept;
+    LIEF_API Iterator& operator=(Iterator&&) noexcept;
+
+    LIEF_API ~Iterator();

     friend LIEF_API bool operator==(const Iterator& LHS, const Iterator& RHS);

-    friend LIEF_API bool operator!=(const Iterator& LHS, const Iterator& RHS) {
+    friend bool operator!=(const Iterator& LHS, const Iterator& RHS) {
       return !(LHS == RHS);
     }

-    Iterator& operator++();
-    Iterator& operator--();
+    // NOLINTNEXTLINE(bugprone-derived-method-shadowing-base-method)
+    LIEF_API Iterator& operator++();

-    Iterator operator--(int) {
-      Iterator tmp = *static_cast<Iterator*>(this);
-      --*static_cast<Iterator *>(this);
-      return tmp;
-    }
+    // NOLINTNEXTLINE(bugprone-derived-method-shadowing-base-method)
+    LIEF_API Iterator& operator--();

-    Iterator operator++(int) {
-      Iterator tmp = *static_cast<Iterator*>(this);
-      ++*static_cast<Iterator *>(this);
-      return tmp;
-    }
+    LIEF_API const Method& operator*() const;

-    std::unique_ptr<Method> operator*() const;
+    // NOLINTNEXTLINE(bugprone-derived-method-shadowing-base-method)
+    LIEF_API const Method* operator->() const;

-    PointerProxy operator->() const {
-      return static_cast<const Iterator*>(this)->operator*();
-    }
+    /// Transfer ownership of the method at the current position to the
+    /// caller. Returns `nullptr` if the iterator is past-the-end.
+    LIEF_API std::unique_ptr<Method> yield();

     private:
+    void load() const;
+
     std::unique_ptr<details::MethodIt> impl_;
+    mutable std::unique_ptr<Method> cached_;
   };

   public:
@@ -105,6 +97,7 @@ class LIEF_API Method {
   bool is_instance() const;

   ~Method();
+
   private:
   std::unique_ptr<details::Method> impl_;
 };
diff --git a/deps/LIEF/include/LIEF/ObjC/Property.hpp b/deps/LIEF/include/LIEF/ObjC/Property.hpp
index e28336f6998..032dcedcb70 100644
--- a/deps/LIEF/include/LIEF/ObjC/Property.hpp
+++ b/deps/LIEF/include/LIEF/ObjC/Property.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -14,6 +14,7 @@
  */
 #ifndef LIEF_OBJC_PROPERTY_H
 #define LIEF_OBJC_PROPERTY_H
+#include <LIEF/iterators.hpp>
 #include <LIEF/visibility.h>

 #include <memory>
@@ -30,62 +31,53 @@ class PropertyIt;
 /// This class represents a `@property` in Objective-C
 class LIEF_API Property {
   public:
-  class LIEF_API Iterator {
+  class Iterator final
+    : public iterator_facade_base<Iterator, std::bidirectional_iterator_tag,
+                                  Property, std::ptrdiff_t, const Property*,
+                                  const Property&> {
     public:
-    using iterator_category = std::bidirectional_iterator_tag;
-    using value_type = std::unique_ptr<Property>;
-    using difference_type = std::ptrdiff_t;
-    using pointer = Property*;
-    using reference = std::unique_ptr<Property>&;
     using implementation = details::PropertyIt;
+    using iterator_facade_base::operator++;
+    using iterator_facade_base::operator--;

-    class LIEF_API PointerProxy {
-      // Inspired from LLVM's iterator_facade_base
-      friend class Iterator;
-      public:
-      pointer operator->() const { return R.get(); }
+    LIEF_API Iterator();

-      private:
-      value_type R;
+    LIEF_API Iterator(std::unique_ptr<details::PropertyIt> impl);

-      template <typename RefT>
-      PointerProxy(RefT &&R) : R(std::forward<RefT>(R)) {} // NOLINT(bugprone-forwarding-reference-overload)
-    };
+    LIEF_API Iterator(const Iterator&);
+    LIEF_API Iterator& operator=(const Iterator&);

-    Iterator(const Iterator&);
-    Iterator(Iterator&&) noexcept;
-    Iterator(std::unique_ptr<details::PropertyIt> impl);
-    ~Iterator();
+    LIEF_API Iterator(Iterator&&) noexcept;
+    LIEF_API Iterator& operator=(Iterator&&) noexcept;
+
+    LIEF_API ~Iterator();

     friend LIEF_API bool operator==(const Iterator& LHS, const Iterator& RHS);

-    friend LIEF_API bool operator!=(const Iterator& LHS, const Iterator& RHS) {
+    friend bool operator!=(const Iterator& LHS, const Iterator& RHS) {
       return !(LHS == RHS);
     }

-    Iterator& operator++();
-    Iterator& operator--();
+    // NOLINTNEXTLINE(bugprone-derived-method-shadowing-base-method)
+    LIEF_API Iterator& operator++();

-    Iterator operator--(int) {
-      Iterator tmp = *static_cast<Iterator*>(this);
-      --*static_cast<Iterator *>(this);
-      return tmp;
-    }
+    // NOLINTNEXTLINE(bugprone-derived-method-shadowing-base-method)
+    LIEF_API Iterator& operator--();

-    Iterator operator++(int) {
-      Iterator tmp = *static_cast<Iterator*>(this);
-      ++*static_cast<Iterator *>(this);
-      return tmp;
-    }
+    LIEF_API const Property& operator*() const;

-    std::unique_ptr<Property> operator*() const;
+    // NOLINTNEXTLINE(bugprone-derived-method-shadowing-base-method)
+    LIEF_API const Property* operator->() const;

-    PointerProxy operator->() const {
-      return static_cast<const Iterator*>(this)->operator*();
-    }
+    /// Transfer ownership of the property at the current position to the
+    /// caller. Returns `nullptr` if the iterator is past-the-end.
+    LIEF_API std::unique_ptr<Property> yield();

     private:
+    void load() const;
+
     std::unique_ptr<details::PropertyIt> impl_;
+    mutable std::unique_ptr<Property> cached_;
   };

   public:
@@ -98,6 +90,7 @@ class LIEF_API Property {
   std::string attribute() const;

   ~Property();
+
   private:
   std::unique_ptr<details::Property> impl_;
 };
diff --git a/deps/LIEF/include/LIEF/ObjC/Protocol.hpp b/deps/LIEF/include/LIEF/ObjC/Protocol.hpp
index dddd97279ac..3f8e14dc82d 100644
--- a/deps/LIEF/include/LIEF/ObjC/Protocol.hpp
+++ b/deps/LIEF/include/LIEF/ObjC/Protocol.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -14,6 +14,7 @@
  */
 #ifndef LIEF_OBJC_PROTOCOL_H
 #define LIEF_OBJC_PROTOCOL_H
+#include <LIEF/compiler_attributes.hpp>
 #include <LIEF/visibility.h>
 #include <LIEF/iterators.hpp>

@@ -35,81 +36,77 @@ class ProtocolIt;
 /// This class represents an Objective-C `@protocol`
 class LIEF_API Protocol {
   public:
-  class LIEF_API Iterator {
+  class Iterator final
+    : public iterator_facade_base<Iterator, std::bidirectional_iterator_tag,
+                                  Protocol, std::ptrdiff_t, const Protocol*,
+                                  const Protocol&> {
     public:
-    using iterator_category = std::bidirectional_iterator_tag;
-    using value_type = std::unique_ptr<Protocol>;
-    using difference_type = std::ptrdiff_t;
-    using pointer = Protocol*;
-    using reference = std::unique_ptr<Protocol>&;
     using implementation = details::ProtocolIt;
+    using iterator_facade_base::operator++;
+    using iterator_facade_base::operator--;

-    class LIEF_API PointerProxy {
-      // Inspired from LLVM's iterator_facade_base
-      friend class Iterator;
-      public:
-      pointer operator->() const { return R.get(); }
+    LIEF_API Iterator();

-      private:
-      value_type R;
+    LIEF_API Iterator(std::unique_ptr<details::ProtocolIt> impl);

-      template <typename RefT>
-      PointerProxy(RefT &&R) : R(std::forward<RefT>(R)) {} // NOLINT(bugprone-forwarding-reference-overload)
-    };
+    LIEF_API Iterator(const Iterator&);
+    LIEF_API Iterator& operator=(const Iterator&);

-    Iterator(const Iterator&);
-    Iterator(Iterator&&) noexcept;
-    Iterator(std::unique_ptr<details::ProtocolIt> impl);
-    ~Iterator();
+    LIEF_API Iterator(Iterator&&) noexcept;
+    LIEF_API Iterator& operator=(Iterator&&) noexcept;
+
+    LIEF_API ~Iterator();

     friend LIEF_API bool operator==(const Iterator& LHS, const Iterator& RHS);

-    friend LIEF_API bool operator!=(const Iterator& LHS, const Iterator& RHS) {
+    friend bool operator!=(const Iterator& LHS, const Iterator& RHS) {
       return !(LHS == RHS);
     }

-    Iterator& operator++();
-    Iterator& operator--();
+    // NOLINTNEXTLINE(bugprone-derived-method-shadowing-base-method)
+    LIEF_API Iterator& operator++();

-    Iterator operator--(int) {
-      Iterator tmp = *static_cast<Iterator*>(this);
-      --*static_cast<Iterator *>(this);
-      return tmp;
-    }
+    // NOLINTNEXTLINE(bugprone-derived-method-shadowing-base-method)
+    LIEF_API Iterator& operator--();

-    Iterator operator++(int) {
-      Iterator tmp = *static_cast<Iterator*>(this);
-      ++*static_cast<Iterator *>(this);
-      return tmp;
-    }
+    LIEF_API const Protocol& operator*() const;

-    std::unique_ptr<Protocol> operator*() const;
+    // NOLINTNEXTLINE(bugprone-derived-method-shadowing-base-method)
+    LIEF_API const Protocol* operator->() const;

-    PointerProxy operator->() const {
-      return static_cast<const Iterator*>(this)->operator*();
-    }
+    /// Transfer ownership of the protocol at the current position to the
+    /// caller. Returns `nullptr` if the iterator is past-the-end.
+    LIEF_API std::unique_ptr<Protocol> yield();

     private:
+    void load() const;
+
     std::unique_ptr<details::ProtocolIt> impl_;
+    mutable std::unique_ptr<Protocol> cached_;
   };

   public:
   using methods_it = iterator_range<Method::Iterator>;
   using properties_it = iterator_range<Property::Iterator>;
+  using protocols_it = iterator_range<Iterator>;

   Protocol(std::unique_ptr<details::Protocol> impl);

   /// Mangled name of the protocol
   std::string mangled_name() const;

+  /// Iterator over the protocols adopted by this protocol (e.g. the
+  /// `<Bar, Baz>` in `@protocol Foo <Bar, Baz>`).
+  protocols_it protocols() const LIEF_LIFETIMEBOUND;
+
   /// Iterator over the methods that could be overridden
-  methods_it optional_methods() const;
+  methods_it optional_methods() const LIEF_LIFETIMEBOUND;

   /// Iterator over the methods of this protocol that must be implemented
-  methods_it required_methods() const;
+  methods_it required_methods() const LIEF_LIFETIMEBOUND;

   /// Iterator over the properties defined in this protocol
-  properties_it properties() const;
+  properties_it properties() const LIEF_LIFETIMEBOUND;

   /// Generate a header-like string for this specific protocol.
   ///
@@ -117,6 +114,7 @@ class LIEF_API Protocol {
   std::string to_decl(const DeclOpt& opt = DeclOpt()) const;

   ~Protocol();
+
   private:
   std::unique_ptr<details::Protocol> impl_;
 };
diff --git a/deps/LIEF/include/LIEF/Object.hpp b/deps/LIEF/include/LIEF/Object.hpp
index 11ebcad9dc0..003f320ed80 100644
--- a/deps/LIEF/include/LIEF/Object.hpp
+++ b/deps/LIEF/include/LIEF/Object.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/deps/LIEF/include/LIEF/PDB.hpp b/deps/LIEF/include/LIEF/PDB.hpp
index 0aa81447566..92fc9654b6e 100644
--- a/deps/LIEF/include/LIEF/PDB.hpp
+++ b/deps/LIEF/include/LIEF/PDB.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -13,8 +13,8 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-#ifndef  LIEF_PDB_H
-#define  LIEF_PDB_H
+#ifndef LIEF_PDB_H
+#define LIEF_PDB_H
 #include <LIEF/PDB/CompilationUnit.hpp>
 #include <LIEF/PDB/Function.hpp>
 #include <LIEF/PDB/PublicSymbol.hpp>
diff --git a/deps/LIEF/include/LIEF/PDB/BuildMetadata.hpp b/deps/LIEF/include/LIEF/PDB/BuildMetadata.hpp
index e4b40f0ec14..ab7b40383d7 100644
--- a/deps/LIEF/include/LIEF/PDB/BuildMetadata.hpp
+++ b/deps/LIEF/include/LIEF/PDB/BuildMetadata.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -14,6 +14,7 @@
  */
 #ifndef LIEF_PDB_BUILD_METADATA_H
 #define LIEF_PDB_BUILD_METADATA_H
+#include <vector>
 #include <memory>
 #include <ostream>

@@ -31,100 +32,99 @@ class BuildMetadata;
 /// `S_COMPILE3, S_COMPILE2, S_BUILDINFO, S_ENVBLOCK`
 class LIEF_API BuildMetadata {
   public:
-
   enum class LANG : uint8_t {
-    C           = 0x00,
-    CPP         = 0x01,
-    FORTRAN     = 0x02,
-    MASM        = 0x03,
+    C = 0x00,
+    CPP = 0x01,
+    FORTRAN = 0x02,
+    MASM = 0x03,
     PASCAL_LANG = 0x04,
-    BASIC       = 0x05,
-    COBOL       = 0x06,
-    LINK        = 0x07,
-    CVTRES      = 0x08,
-    CVTPGD      = 0x09,
-    CSHARP      = 0x0a,
-    VB          = 0x0b,
-    ILASM       = 0x0c,
-    JAVA        = 0x0d,
-    JSCRIPT     = 0x0e,
-    MSIL        = 0x0f,
-    HLSL        = 0x10,
-    OBJC        = 0x11,
-    OBJCPP      = 0x12,
-    SWIFT       = 0x13,
-    ALIASOBJ    = 0x14,
-    RUST        = 0x15,
-    GO          = 0x16,
+    BASIC = 0x05,
+    COBOL = 0x06,
+    LINK = 0x07,
+    CVTRES = 0x08,
+    CVTPGD = 0x09,
+    CSHARP = 0x0a,
+    VB = 0x0b,
+    ILASM = 0x0c,
+    JAVA = 0x0d,
+    JSCRIPT = 0x0e,
+    MSIL = 0x0f,
+    HLSL = 0x10,
+    OBJC = 0x11,
+    OBJCPP = 0x12,
+    SWIFT = 0x13,
+    ALIASOBJ = 0x14,
+    RUST = 0x15,
+    GO = 0x16,

     UNKNOWN = 0xFF,
   };

   enum class CPU : uint16_t {
-    INTEL_8080      = 0x0,
-    INTEL_8086      = 0x1,
-    INTEL_80286     = 0x2,
-    INTEL_80386     = 0x3,
-    INTEL_80486     = 0x4,
-    PENTIUM         = 0x5,
-    PENTIUMPRO      = 0x6,
-    PENTIUM3        = 0x7,
-    MIPS            = 0x10,
-    MIPS16          = 0x11,
-    MIPS32          = 0x12,
-    MIPS64          = 0x13,
-    MIPSI           = 0x14,
-    MIPSII          = 0x15,
-    MIPSIII         = 0x16,
-    MIPSIV          = 0x17,
-    MIPSV           = 0x18,
-    M68000          = 0x20,
-    M68010          = 0x21,
-    M68020          = 0x22,
-    M68030          = 0x23,
-    M68040          = 0x24,
-    ALPHA           = 0x30,
-    ALPHA_21164     = 0x31,
-    ALPHA_21164A    = 0x32,
-    ALPHA_21264     = 0x33,
-    ALPHA_21364     = 0x34,
-    PPC601          = 0x40,
-    PPC603          = 0x41,
-    PPC604          = 0x42,
-    PPC620          = 0x43,
-    PPCFP           = 0x44,
-    PPCBE           = 0x45,
-    SH3             = 0x50,
-    SH3E            = 0x51,
-    SH3DSP          = 0x52,
-    SH4             = 0x53,
-    SHMEDIA         = 0x54,
-    ARM3            = 0x60,
-    ARM4            = 0x61,
-    ARM4T           = 0x62,
-    ARM5            = 0x63,
-    ARM5T           = 0x64,
-    ARM6            = 0x65,
-    ARM_XMAC        = 0x66,
-    ARM_WMMX        = 0x67,
-    ARM7            = 0x68,
-    OMNI            = 0x70,
-    IA64            = 0x80,
-    IA64_2          = 0x81,
-    CEE             = 0x90,
-    AM33            = 0xa0,
-    M32R            = 0xb0,
-    TRICORE         = 0xc0,
-    X64             = 0xd0,
-    EBC             = 0xe0,
-    THUMB           = 0xf0,
-    ARMNT           = 0xf4,
-    ARM64           = 0xf6,
+    INTEL_8080 = 0x0,
+    INTEL_8086 = 0x1,
+    INTEL_80286 = 0x2,
+    INTEL_80386 = 0x3,
+    INTEL_80486 = 0x4,
+    PENTIUM = 0x5,
+    PENTIUMPRO = 0x6,
+    PENTIUM3 = 0x7,
+    MIPS = 0x10,
+    MIPS16 = 0x11,
+    MIPS32 = 0x12,
+    MIPS64 = 0x13,
+    MIPSI = 0x14,
+    MIPSII = 0x15,
+    MIPSIII = 0x16,
+    MIPSIV = 0x17,
+    MIPSV = 0x18,
+    M68000 = 0x20,
+    M68010 = 0x21,
+    M68020 = 0x22,
+    M68030 = 0x23,
+    M68040 = 0x24,
+    ALPHA = 0x30,
+    ALPHA_21164 = 0x31,
+    ALPHA_21164A = 0x32,
+    ALPHA_21264 = 0x33,
+    ALPHA_21364 = 0x34,
+    PPC601 = 0x40,
+    PPC603 = 0x41,
+    PPC604 = 0x42,
+    PPC620 = 0x43,
+    PPCFP = 0x44,
+    PPCBE = 0x45,
+    SH3 = 0x50,
+    SH3E = 0x51,
+    SH3DSP = 0x52,
+    SH4 = 0x53,
+    SHMEDIA = 0x54,
+    ARM3 = 0x60,
+    ARM4 = 0x61,
+    ARM4T = 0x62,
+    ARM5 = 0x63,
+    ARM5T = 0x64,
+    ARM6 = 0x65,
+    ARM_XMAC = 0x66,
+    ARM_WMMX = 0x67,
+    ARM7 = 0x68,
+    OMNI = 0x70,
+    IA64 = 0x80,
+    IA64_2 = 0x81,
+    CEE = 0x90,
+    AM33 = 0xa0,
+    M32R = 0xb0,
+    TRICORE = 0xc0,
+    X64 = 0xd0,
+    EBC = 0xe0,
+    THUMB = 0xf0,
+    ARMNT = 0xf4,
+    ARM64 = 0xf6,
     HYBRID_X86ARM64 = 0xf7,
-    ARM64EC         = 0xf8,
-    ARM64X          = 0xf9,
-    D3D11_SHADER    = 0x100,
-    UNKNOWN         = 0xff,
+    ARM64EC = 0xf8,
+    ARM64X = 0xf9,
+    D3D11_SHADER = 0x100,
+    UNKNOWN = 0xff,
   };

   /// This structure represents a version for the backend or the frontend.
@@ -138,7 +138,7 @@ class LIEF_API BuildMetadata {
     /// Build version
     uint16_t build = 0;

-    /// Quick Fix Engineeringa version
+    /// Quick Fix Engineering version
     uint16_t qfe = 0;
   };

@@ -148,7 +148,8 @@ class LIEF_API BuildMetadata {
     /// Working directory where the *build tool* was invoked
     std::string cwd;

-    /// Path to the build tool (e.g. `C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.36.32532\bin\HostX64\x64\CL.exe`)
+    /// Path to the build tool (e.g. `C:\Program Files\Microsoft Visual
+    /// Studio\2022\Community\VC\Tools\MSVC\14.36.32532\bin\HostX64\x64\CL.exe`)
     std::string build_tool;

     /// Source file consumed by the *build tool*
@@ -188,9 +189,8 @@ class LIEF_API BuildMetadata {

   std::string to_string() const;

-  LIEF_API friend
-    std::ostream& operator<<(std::ostream& os, const BuildMetadata& meta)
-  {
+  LIEF_API friend std::ostream& operator<<(std::ostream& os,
+                                           const BuildMetadata& meta) {
     os << meta.to_string();
     return os;
   }
@@ -205,4 +205,3 @@ LIEF_API const char* to_string(BuildMetadata::LANG cpu);
 }
 }
 #endif
-
diff --git a/deps/LIEF/include/LIEF/PDB/CompilationUnit.hpp b/deps/LIEF/include/LIEF/PDB/CompilationUnit.hpp
index b3e3c1cfafd..7cb4d6ca65b 100644
--- a/deps/LIEF/include/LIEF/PDB/CompilationUnit.hpp
+++ b/deps/LIEF/include/LIEF/PDB/CompilationUnit.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -20,6 +20,7 @@
 #include <ostream>

 #include "LIEF/iterators.hpp"
+#include "LIEF/DebugDeclOpt.hpp"
 #include "LIEF/PDB/Function.hpp"

 #include "LIEF/visibility.h"
@@ -36,65 +37,57 @@ class CompilationUnitIt;
 /// This class represents a CompilationUnit (or Module) in a PDB file
 class LIEF_API CompilationUnit {
   public:
-  class LIEF_API Iterator {
+  class Iterator final
+    : public iterator_facade_base<Iterator, std::bidirectional_iterator_tag,
+                                  CompilationUnit, std::ptrdiff_t,
+                                  const CompilationUnit*, const CompilationUnit&> {
     public:
-    using iterator_category = std::bidirectional_iterator_tag;
-    using value_type = std::unique_ptr<CompilationUnit>;
-    using difference_type = std::ptrdiff_t;
-    using pointer = CompilationUnit*;
-    using reference = CompilationUnit&;
     using implementation = details::CompilationUnitIt;
+    using iterator_facade_base::operator++;
+    using iterator_facade_base::operator--;

-    class PointerProxy {
-      // Inspired from LLVM's iterator_facade_base
-      friend class Iterator;
-      public:
-      pointer operator->() const { return R.get(); }
+    LIEF_API Iterator();

-      private:
-      value_type R;
+    LIEF_API Iterator(std::unique_ptr<details::CompilationUnitIt> impl);

-      template <typename RefT>
-      PointerProxy(RefT &&R) : R(std::forward<RefT>(R)) {} // NOLINT(bugprone-forwarding-reference-overload)
-    };
+    LIEF_API Iterator(const Iterator&);
+    LIEF_API Iterator& operator=(const Iterator&);

-    Iterator(const Iterator&);
-    Iterator(Iterator&&);
-    Iterator(std::unique_ptr<details::CompilationUnitIt> impl);
-    ~Iterator();
+    LIEF_API Iterator(Iterator&&) noexcept;
+    LIEF_API Iterator& operator=(Iterator&&) noexcept;
+
+    LIEF_API ~Iterator();

     friend LIEF_API bool operator==(const Iterator& LHS, const Iterator& RHS);
-    friend LIEF_API bool operator!=(const Iterator& LHS, const Iterator& RHS) {
+    friend bool operator!=(const Iterator& LHS, const Iterator& RHS) {
       return !(LHS == RHS);
     }

-    Iterator& operator++();
-    Iterator& operator--();
+    // NOLINTNEXTLINE(bugprone-derived-method-shadowing-base-method)
+    LIEF_API Iterator& operator++();

-    Iterator operator--(int) {
-      Iterator tmp = *static_cast<Iterator*>(this);
-      --*static_cast<Iterator *>(this);
-      return tmp;
-    }
+    // NOLINTNEXTLINE(bugprone-derived-method-shadowing-base-method)
+    LIEF_API Iterator& operator--();

-    Iterator operator++(int) {
-      Iterator tmp = *static_cast<Iterator*>(this);
-      ++*static_cast<Iterator *>(this);
-      return tmp;
-    }
+    LIEF_API const CompilationUnit& operator*() const LIEF_LIFETIMEBOUND;

-    std::unique_ptr<CompilationUnit> operator*() const;
+    // NOLINTNEXTLINE(bugprone-derived-method-shadowing-base-method)
+    LIEF_API const CompilationUnit* operator->() const LIEF_LIFETIMEBOUND;

-    PointerProxy operator->() const {
-      return static_cast<const Iterator*>(this)->operator*();
-    }
+    /// Transfer ownership of the compilation unit at the current position
+    /// to the caller. Returns `nullptr` if the iterator is past-the-end.
+    LIEF_API std::unique_ptr<CompilationUnit> yield();

     private:
+    void load() const;
+
     std::unique_ptr<details::CompilationUnitIt> impl_;
+    mutable std::unique_ptr<CompilationUnit> cached_;
   };

-  /// Iterator over the sources file (std::string)
-  using sources_iterator = iterator_range<std::vector<std::string>::const_iterator>;
+  /// Iterator over the source files (std::string)
+  using sources_iterator =
+      iterator_range<std::vector<std::string>::const_iterator>;

   using function_iterator = iterator_range<Function::Iterator>;

@@ -102,32 +95,36 @@ class LIEF_API CompilationUnit {
   ~CompilationUnit();

   /// Name (or path) to the COFF object (`.obj`) associated with this
-  /// compilation unit (e.g. `e:\obj.amd64fre\minkernel\ntos\hvl\mp\objfre\amd64\hvlp.obj`)
+  /// compilation unit (e.g.
+  /// `e:\obj.amd64fre\minkernel\ntos\hvl\mp\objfre\amd64\hvlp.obj`)
   std::string module_name() const;

-  /// Name of path to the original binary object (COFF, Archive) in which
+  /// Name or path to the original binary object (COFF, Archive) in which
   /// the compilation unit was located before being linked.
   /// e.g. `e:\obj.amd64fre\minkernel\ntos\hvl\mp\objfre\amd64\hvl.lib`
   std::string object_filename() const;

   /// Iterator over the sources files that compose this compilation unit.
   /// These files also include **headers** (`.h, .hpp`, ...).
-  sources_iterator sources() const;
+  sources_iterator sources() const LIEF_LIFETIMEBOUND;

   /// Return an iterator over the function defined in this compilation unit.
   /// If the PDB does not contain or has an empty DBI stream, it returns
   /// an empty iterator.
-  function_iterator functions() const;
+  function_iterator functions() const LIEF_LIFETIMEBOUND;

   /// Return build metadata such as the version of the compiler or
   /// the original source language of this compilation unit
-  std::unique_ptr<BuildMetadata> build_metadata() const;
+  std::unique_ptr<BuildMetadata> build_metadata() const LIEF_LIFETIMEBOUND;
+
+  /// Generate a C/C++ definition for the functions defined in this
+  /// compilation unit.
+  std::string to_decl(const DeclOpt& opt = DeclOpt()) const;

   std::string to_string() const;

-  LIEF_API friend
-    std::ostream& operator<<(std::ostream& os, const CompilationUnit& CU)
-  {
+  LIEF_API friend std::ostream& operator<<(std::ostream& os,
+                                           const CompilationUnit& CU) {
     os << CU.to_string();
     return os;
   }
@@ -139,4 +136,3 @@ class LIEF_API CompilationUnit {
 }
 }
 #endif
-
diff --git a/deps/LIEF/include/LIEF/PDB/DebugInfo.hpp b/deps/LIEF/include/LIEF/PDB/DebugInfo.hpp
index 5b4130ff731..4d74de371c4 100644
--- a/deps/LIEF/include/LIEF/PDB/DebugInfo.hpp
+++ b/deps/LIEF/include/LIEF/PDB/DebugInfo.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -18,6 +18,7 @@
 #include <string>
 #include <ostream>

+#include "LIEF/compiler_attributes.hpp"
 #include "LIEF/iterators.hpp"
 #include "LIEF/Abstract/DebugInfo.hpp"

@@ -61,18 +62,23 @@ class LIEF_API DebugInfo : public LIEF::DebugInfo {

   /// Iterator over the CompilationUnit from the PDB's DBI stream.
   /// CompilationUnit are also named "Module" in the PDB's official documentation
-  compilation_units_it compilation_units() const;
+  compilation_units_it compilation_units() const LIEF_LIFETIMEBOUND;

   /// Return an iterator over the public symbol stream
-  public_symbols_it public_symbols() const;
+  public_symbols_it public_symbols() const LIEF_LIFETIMEBOUND;

   /// Return an iterator over the different types registered in this PDB.
-  types_it types() const;
+  types_it types() const LIEF_LIFETIMEBOUND;

   /// Find the type with the given name
-  std::unique_ptr<Type> find_type(const std::string& name) const;
+  std::unique_ptr<Type>
+      find_type(const std::string& name) const LIEF_LIFETIMEBOUND;

-  /// Try to find the PublicSymbol from the given name (based on the public symbol stream)
+  /// Find the type at the given index
+  std::unique_ptr<Type> find_type(uint32_t index) const LIEF_LIFETIMEBOUND;
+
+  /// Try to find the PublicSymbol from the given name (based on the public symbol
+  /// stream)
   ///
   /// The function returns a nullptr if the symbol can't be found
   ///
@@ -82,7 +88,8 @@ class LIEF_API DebugInfo : public LIEF::DebugInfo {
   ///   // FOUND!
   /// }
   /// ```
-  std::unique_ptr<PublicSymbol> find_public_symbol(const std::string& name) const;
+  std::unique_ptr<PublicSymbol>
+      find_public_symbol(const std::string& name) const LIEF_LIFETIMEBOUND;

   /// Attempt to resolve the address of the function specified by `name`.
   optional<uint64_t> find_function_address(const std::string& name) const override;
@@ -96,9 +103,8 @@ class LIEF_API DebugInfo : public LIEF::DebugInfo {
   /// Pretty representation
   std::string to_string() const;

-  friend LIEF_API
-    std::ostream& operator<<(std::ostream& os, const DebugInfo& dbg)
-  {
+  friend LIEF_API std::ostream& operator<<(std::ostream& os,
+                                           const DebugInfo& dbg) {
     os << dbg.to_string();
     return os;
   }
diff --git a/deps/LIEF/include/LIEF/PDB/Function.hpp b/deps/LIEF/include/LIEF/PDB/Function.hpp
index 5e947def641..82427ba7869 100644
--- a/deps/LIEF/include/LIEF/PDB/Function.hpp
+++ b/deps/LIEF/include/LIEF/PDB/Function.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -18,8 +18,11 @@
 #include <string>
 #include <ostream>

+#include "LIEF/compiler_attributes.hpp"
+#include "LIEF/iterators.hpp"
 #include "LIEF/visibility.h"
 #include "LIEF/debug_loc.hpp"
+#include "LIEF/DebugDeclOpt.hpp"

 namespace LIEF {
 namespace pdb {
@@ -31,54 +34,48 @@ class FunctionIt;

 class LIEF_API Function {
   public:
-  class LIEF_API Iterator {
+  class Iterator final
+    : public iterator_facade_base<Iterator, std::forward_iterator_tag, Function,
+                                  std::ptrdiff_t, const Function*,
+                                  const Function&> {
     public:
-    using iterator_category = std::forward_iterator_tag;
-    using value_type = std::unique_ptr<Function>;
-    using difference_type = std::ptrdiff_t;
-    using pointer = Function*;
-    using reference = Function&;
     using implementation = details::FunctionIt;
+    using iterator_facade_base::operator++;

-    class LIEF_API PointerProxy {
-      // Inspired from LLVM's iterator_facade_base
-      friend class Iterator;
-      public:
-      pointer operator->() const { return R.get(); }
+    LIEF_API Iterator();

-      private:
-      value_type R;
+    LIEF_API Iterator(std::unique_ptr<details::FunctionIt> impl);

-      template <typename RefT>
-      PointerProxy(RefT &&R) : R(std::forward<RefT>(R)) {} // NOLINT(bugprone-forwarding-reference-overload)
-    };
+    LIEF_API Iterator(const Iterator&);
+    LIEF_API Iterator& operator=(const Iterator&);

-    Iterator(const Iterator&);
-    Iterator(Iterator&&);
-    Iterator(std::unique_ptr<details::FunctionIt> impl);
-    ~Iterator();
+    LIEF_API Iterator(Iterator&&) noexcept;
+    LIEF_API Iterator& operator=(Iterator&&) noexcept;
+
+    LIEF_API ~Iterator();

     friend LIEF_API bool operator==(const Iterator& LHS, const Iterator& RHS);
-    friend LIEF_API bool operator!=(const Iterator& LHS, const Iterator& RHS) {
+    friend bool operator!=(const Iterator& LHS, const Iterator& RHS) {
       return !(LHS == RHS);
     }

-    Iterator& operator++();
+    // NOLINTNEXTLINE(bugprone-derived-method-shadowing-base-method)
+    LIEF_API Iterator& operator++();

-    Iterator operator++(int) {
-      Iterator tmp = *static_cast<Iterator*>(this);
-      ++*static_cast<Iterator *>(this);
-      return tmp;
-    }
+    LIEF_API const Function& operator*() const LIEF_LIFETIMEBOUND;

-    std::unique_ptr<Function> operator*() const;
+    // NOLINTNEXTLINE(bugprone-derived-method-shadowing-base-method)
+    LIEF_API const Function* operator->() const LIEF_LIFETIMEBOUND;

-    PointerProxy operator->() const {
-      return static_cast<const Iterator*>(this)->operator*();
-    }
+    /// Transfer ownership of the function at the current position to the
+    /// caller. Returns `nullptr` if the iterator is past-the-end.
+    LIEF_API std::unique_ptr<Function> yield();

     private:
+    void load() const;
+
     std::unique_ptr<details::FunctionIt> impl_;
+    mutable std::unique_ptr<Function> cached_;
   };
   Function(std::unique_ptr<details::Function> impl);
   ~Function();
@@ -98,11 +95,12 @@ class LIEF_API Function {
   /// Original source code location
   debug_location_t debug_location() const;

+  /// Generate a C/C++ definition for this function
+  std::string to_decl(const DeclOpt& opt = DeclOpt()) const;
+
   std::string to_string() const;

-  LIEF_API friend
-    std::ostream& operator<<(std::ostream& os, const Function& F)
-  {
+  LIEF_API friend std::ostream& operator<<(std::ostream& os, const Function& F) {
     os << F.to_string();
     return os;
   }
@@ -114,4 +112,3 @@ class LIEF_API Function {
 }
 }
 #endif
-
diff --git a/deps/LIEF/include/LIEF/PDB/PublicSymbol.hpp b/deps/LIEF/include/LIEF/PDB/PublicSymbol.hpp
index 0e1054353ea..f1ec0127e93 100644
--- a/deps/LIEF/include/LIEF/PDB/PublicSymbol.hpp
+++ b/deps/LIEF/include/LIEF/PDB/PublicSymbol.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -19,6 +19,8 @@
 #include <string>
 #include <ostream>

+#include "LIEF/compiler_attributes.hpp"
+#include "LIEF/iterators.hpp"
 #include "LIEF/visibility.h"

 namespace LIEF {
@@ -33,65 +35,59 @@ class PublicSymbolIt;
 /// from the PDB's public symbol stream (or Public symbol hash stream)
 class LIEF_API PublicSymbol {
   public:
-  class LIEF_API Iterator {
+  class Iterator final
+    : public iterator_facade_base<Iterator, std::forward_iterator_tag,
+                                  PublicSymbol, std::ptrdiff_t,
+                                  const PublicSymbol*, const PublicSymbol&> {
     public:
-    using iterator_category = std::forward_iterator_tag;
-    using value_type = std::unique_ptr<PublicSymbol>;
-    using difference_type = std::ptrdiff_t;
-    using pointer = PublicSymbol*;
-    using reference = PublicSymbol&;
     using implementation = details::PublicSymbolIt;
+    using iterator_facade_base::operator++;

-    class LIEF_API PointerProxy {
-      // Inspired from LLVM's iterator_facade_base
-      friend class Iterator;
-      public:
-      pointer operator->() const { return R.get(); }
+    LIEF_API Iterator();

-      private:
-      value_type R;
+    LIEF_API Iterator(std::unique_ptr<details::PublicSymbolIt> impl);

-      template <typename RefT>
-      PointerProxy(RefT &&R) : R(std::forward<RefT>(R)) {} // NOLINT(bugprone-forwarding-reference-overload)
-    };
+    LIEF_API Iterator(const Iterator&);
+    LIEF_API Iterator& operator=(const Iterator&);

-    Iterator(const Iterator&);
-    Iterator(Iterator&&);
-    Iterator(std::unique_ptr<details::PublicSymbolIt> impl);
-    ~Iterator();
+    LIEF_API Iterator(Iterator&&) noexcept;
+    LIEF_API Iterator& operator=(Iterator&&) noexcept;
+
+    LIEF_API ~Iterator();
+
+    // NOLINTNEXTLINE(bugprone-derived-method-shadowing-base-method)
+    LIEF_API Iterator& operator++();

     friend LIEF_API bool operator==(const Iterator& LHS, const Iterator& RHS);

-    friend LIEF_API bool operator!=(const Iterator& LHS, const Iterator& RHS) {
+    friend bool operator!=(const Iterator& LHS, const Iterator& RHS) {
       return !(LHS == RHS);
     }

-    Iterator& operator++();
+    LIEF_API const PublicSymbol& operator*() const LIEF_LIFETIMEBOUND;

-    Iterator operator++(int) {
-      Iterator tmp = *static_cast<Iterator*>(this);
-      ++*static_cast<Iterator *>(this);
-      return tmp;
-    }
+    // NOLINTNEXTLINE(bugprone-derived-method-shadowing-base-method)
+    LIEF_API const PublicSymbol* operator->() const LIEF_LIFETIMEBOUND;

-    std::unique_ptr<PublicSymbol> operator*() const;
-
-    PointerProxy operator->() const {
-      return static_cast<const Iterator*>(this)->operator*();
-    }
+    /// Transfer ownership of the public symbol at the current position to
+    /// the caller. Returns `nullptr` if the iterator is past-the-end.
+    LIEF_API std::unique_ptr<PublicSymbol> yield();

     private:
+    void load() const;
+
     std::unique_ptr<details::PublicSymbolIt> impl_;
+    mutable std::unique_ptr<PublicSymbol> cached_;
   };
   PublicSymbol(std::unique_ptr<details::PublicSymbol> impl);
   ~PublicSymbol();

   enum class FLAGS : uint32_t {
-    NONE     = 0,
-    CODE     = 1 << 0,
+    NONE = 0,
+    CODE = 1 << 0,
     FUNCTION = 1 << 1,
-    MANAGED  = 1 << 2,
-    MSIL     = 1 << 3,
+    MANAGED = 1 << 2,
+    MSIL = 1 << 3,
   };

   /// Name of the symbol
@@ -112,9 +108,8 @@ class LIEF_API PublicSymbol {

   std::string to_string() const;

-  LIEF_API friend
-    std::ostream& operator<<(std::ostream& os, const PublicSymbol& sym)
-  {
+  LIEF_API friend std::ostream& operator<<(std::ostream& os,
+                                           const PublicSymbol& sym) {
     os << sym.to_string();
     return os;
   }
@@ -126,4 +121,3 @@ class LIEF_API PublicSymbol {
 }
 }
 #endif
-
diff --git a/deps/LIEF/include/LIEF/PDB/Type.hpp b/deps/LIEF/include/LIEF/PDB/Type.hpp
index 45621744b51..c006f52e675 100644
--- a/deps/LIEF/include/LIEF/PDB/Type.hpp
+++ b/deps/LIEF/include/LIEF/PDB/Type.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -14,9 +14,15 @@
  */
 #ifndef LIEF_PDB_TYPE_H
 #define LIEF_PDB_TYPE_H
+#include <cstdint>
 #include <memory>
+#include <string>

+#include "LIEF/compiler_attributes.hpp"
+#include "LIEF/iterators.hpp"
 #include "LIEF/visibility.h"
+#include "LIEF/optional.hpp"
+#include "LIEF/DebugDeclOpt.hpp"

 namespace LIEF {
 namespace pdb {
@@ -29,57 +35,52 @@ class TypeIt;
 /// This is the base class for any PDB type
 class LIEF_API Type {
   public:
-  class LIEF_API Iterator {
+  class Iterator final
+    : public iterator_facade_base<Iterator, std::forward_iterator_tag, Type,
+                                  std::ptrdiff_t, const Type*, const Type&> {
     public:
-    using iterator_category = std::forward_iterator_tag;
-    using value_type = std::unique_ptr<Type>;
-    using difference_type = std::ptrdiff_t;
-    using pointer = Type*;
-    using reference = Type&;
     using implementation = details::TypeIt;
+    using iterator_facade_base::operator++;

-    class LIEF_API PointerProxy {
-      // Inspired from LLVM's iterator_facade_base
-      friend class Iterator;
-      public:
-      pointer operator->() const { return R.get(); }
+    LIEF_API Iterator();

-      private:
-      value_type R;
+    LIEF_API Iterator(std::unique_ptr<details::TypeIt> impl);

-      template <typename RefT>
-      PointerProxy(RefT &&R) : R(std::forward<RefT>(R)) {} // NOLINT(bugprone-forwarding-reference-overload)
-    };
+    LIEF_API Iterator(const Iterator&);
+    LIEF_API Iterator& operator=(const Iterator&);

-    Iterator(const Iterator&);
-    Iterator(Iterator&&) noexcept;
-    Iterator(std::unique_ptr<details::TypeIt> impl);
-    ~Iterator();
+    LIEF_API Iterator(Iterator&&) noexcept;
+    LIEF_API Iterator& operator=(Iterator&&) noexcept;
+
+    LIEF_API ~Iterator();

     friend LIEF_API bool operator==(const Iterator& LHS, const Iterator& RHS);

-    friend LIEF_API bool operator!=(const Iterator& LHS, const Iterator& RHS) {
+    friend bool operator!=(const Iterator& LHS, const Iterator& RHS) {
       return !(LHS == RHS);
     }

-    Iterator& operator++();
+    // NOLINTNEXTLINE(bugprone-derived-method-shadowing-base-method)
+    LIEF_API Iterator& operator++();

-    Iterator operator++(int) {
-      Iterator tmp = *static_cast<Iterator*>(this);
-      ++*static_cast<Iterator *>(this);
-      return tmp;
-    }
+    LIEF_API const Type& operator*() const LIEF_LIFETIMEBOUND;

-    std::unique_ptr<Type> operator*() const;
+    // NOLINTNEXTLINE(bugprone-derived-method-shadowing-base-method)
+    LIEF_API const Type* operator->() const LIEF_LIFETIMEBOUND;

-    PointerProxy operator->() const {
-      return static_cast<const Iterator*>(this)->operator*();
-    }
+    /// Transfer ownership of the type at the current position to the
+    /// caller. Returns `nullptr` if the iterator is past-the-end.
+    LIEF_API std::unique_ptr<Type> yield();

     private:
+    void load() const;
+
     std::unique_ptr<details::TypeIt> impl_;
+    mutable std::unique_ptr<Type> cached_;
   };

+  LIEF_LOCAL Type(std::unique_ptr<details::Type> impl);
+
   enum class KIND {
     UNKNOWN = 0,
     CLASS,
@@ -97,6 +98,16 @@ class LIEF_API Type {

   KIND kind() const;

+  /// Size of the type. This size should match the value of `sizeof(...)`
+  /// applied to this type.
+  optional<uint64_t> size() const;
+
+  /// Type's name (if present)
+  optional<std::string> name() const;
+
+  /// Generates a C/C++ definition for this type
+  std::string to_decl(const DeclOpt& opt = DeclOpt()) const;
+
   template<class T>
   const T* as() const {
     if (T::classof(this)) {
@@ -105,16 +116,15 @@ class LIEF_API Type {
     return nullptr;
   }

-  static std::unique_ptr<Type> create(std::unique_ptr<details::Type> impl);
+  static std::unique_ptr<Type>
+      create(std::unique_ptr<details::Type> impl LIEF_LIFETIMEBOUND);

   virtual ~Type();

   protected:
-  Type(std::unique_ptr<details::Type> impl);
   std::unique_ptr<details::Type> impl_;
 };

 }
 }
 #endif
-
diff --git a/deps/LIEF/include/LIEF/PDB/types.hpp b/deps/LIEF/include/LIEF/PDB/types.hpp
index 8c912f3a02d..5cf23bfd8e7 100644
--- a/deps/LIEF/include/LIEF/PDB/types.hpp
+++ b/deps/LIEF/include/LIEF/PDB/types.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/deps/LIEF/include/LIEF/PDB/types/Array.hpp b/deps/LIEF/include/LIEF/PDB/types/Array.hpp
index ad72ddaa342..66c33c1c3bd 100644
--- a/deps/LIEF/include/LIEF/PDB/types/Array.hpp
+++ b/deps/LIEF/include/LIEF/PDB/types/Array.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -15,6 +15,7 @@
 #ifndef LIEF_PDB_TYPE_ARRAY_H
 #define LIEF_PDB_TYPE_ARRAY_H

+#include "LIEF/compiler_attributes.hpp"
 #include "LIEF/visibility.h"
 #include "LIEF/PDB/Type.hpp"

@@ -25,7 +26,20 @@ namespace types {
 /// This class represents a `LF_ARRAY` PDB type
 class LIEF_API Array : public Type {
   public:
-  using Type::Type;
+  template<typename... Args,
+           typename = typename std::
+               enable_if<std::is_constructible<Type, Args&&...>::value>::type>
+  Array(Args&&... args) :
+    Type(std::forward<Args>(args)...) {}
+
+  /// The number of elements in this array
+  size_t numberof_elements() const;
+
+  /// Type of the elements
+  std::unique_ptr<Type> element_type() const LIEF_LIFETIMEBOUND;
+
+  /// Type of the index
+  std::unique_ptr<Type> index_type() const LIEF_LIFETIMEBOUND;

   static bool classof(const Type* type) {
     return type->kind() == Type::KIND::ARRAY;
@@ -38,5 +52,3 @@ class LIEF_API Array : public Type {
 }
 }
 #endif
-
-
diff --git a/deps/LIEF/include/LIEF/PDB/types/Attribute.hpp b/deps/LIEF/include/LIEF/PDB/types/Attribute.hpp
index fc961be5d74..81c0deb37d5 100644
--- a/deps/LIEF/include/LIEF/PDB/types/Attribute.hpp
+++ b/deps/LIEF/include/LIEF/PDB/types/Attribute.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -15,6 +15,8 @@
 #ifndef LIEF_PDB_TYPE_ATTRIBUTE_H
 #define LIEF_PDB_TYPE_ATTRIBUTE_H

+#include "LIEF/compiler_attributes.hpp"
+#include "LIEF/iterators.hpp"
 #include "LIEF/visibility.h"

 #include <cstdint>
@@ -35,54 +37,50 @@ class AttributeIt;
 /// struct, union, ...)
 class LIEF_API Attribute {
   public:
-  class LIEF_API Iterator {
+  class Iterator final
+    : public iterator_facade_base<Iterator, std::forward_iterator_tag, Attribute,
+                                  std::ptrdiff_t, const Attribute*,
+                                  const Attribute&> {
     public:
-    using iterator_category = std::forward_iterator_tag;
-    using value_type = std::unique_ptr<Attribute>;
-    using difference_type = std::ptrdiff_t;
-    using pointer = Attribute*;
-    using reference = Attribute&;
     using implementation = details::AttributeIt;
+    using iterator_facade_base::operator++;

-    class LIEF_API PointerProxy {
-      // Inspired from LLVM's iterator_facade_base
-      friend class Iterator;
-      public:
-      pointer operator->() const { return R.get(); }
+    LIEF_API Iterator();

-      private:
-      value_type R;
+    LIEF_API Iterator(std::unique_ptr<details::AttributeIt> impl);

-      template <typename RefT>
-      PointerProxy(RefT &&R) : R(std::forward<RefT>(R)) {} // NOLINT(bugprone-forwarding-reference-overload)
-    };
-    Iterator(const Iterator&);
-    Iterator(Iterator&&) noexcept;
-    Iterator(std::unique_ptr<details::AttributeIt> impl);
-    ~Iterator();
+    LIEF_API Iterator(const Iterator&);
+    LIEF_API Iterator& operator=(const Iterator&);
+
+    LIEF_API Iterator(Iterator&&) noexcept;
+    LIEF_API Iterator& operator=(Iterator&&) noexcept;
+
+    LIEF_API ~Iterator();

     friend LIEF_API bool operator==(const Iterator& LHS, const Iterator& RHS);
-    friend LIEF_API bool operator!=(const Iterator& LHS, const Iterator& RHS) {
+    friend bool operator!=(const Iterator& LHS, const Iterator& RHS) {
       return !(LHS == RHS);
     }

-    Iterator& operator++();
+    // NOLINTNEXTLINE(bugprone-derived-method-shadowing-base-method)
+    LIEF_API Iterator& operator++();

-    Iterator operator++(int) {
-      Iterator tmp = *static_cast<Iterator*>(this);
-      ++*static_cast<Iterator *>(this);
-      return tmp;
-    }
+    LIEF_API const Attribute& operator*() const LIEF_LIFETIMEBOUND;

-    std::unique_ptr<Attribute> operator*() const;
+    // NOLINTNEXTLINE(bugprone-derived-method-shadowing-base-method)
+    LIEF_API const Attribute* operator->() const LIEF_LIFETIMEBOUND;

-    PointerProxy operator->() const {
-      return static_cast<const Iterator*>(this)->operator*();
-    }
+    /// Transfer ownership of the attribute at the current position to the
+    /// caller. Returns `nullptr` if the iterator is past-the-end.
+    LIEF_API std::unique_ptr<Attribute> yield();

     private:
+    void load() const;
+
     std::unique_ptr<details::AttributeIt> impl_;
+    mutable std::unique_ptr<Attribute> cached_;
   };
+
   public:
   Attribute(std::unique_ptr<details::Attribute> impl);

@@ -90,7 +88,7 @@ class LIEF_API Attribute {
   std::string name() const;

   /// Type of this attribute
-  std::unique_ptr<Type> type() const;
+  std::unique_ptr<Type> type() const LIEF_LIFETIMEBOUND;

   /// Offset of this attribute in the aggregate
   uint64_t field_offset() const;
@@ -105,4 +103,3 @@ class LIEF_API Attribute {
 }
 }
 #endif
-
diff --git a/deps/LIEF/include/LIEF/PDB/types/BitField.hpp b/deps/LIEF/include/LIEF/PDB/types/BitField.hpp
index 1aadb136c43..41285c603af 100644
--- a/deps/LIEF/include/LIEF/PDB/types/BitField.hpp
+++ b/deps/LIEF/include/LIEF/PDB/types/BitField.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -25,7 +25,11 @@ namespace types {
 /// This class represents a `LF_BITFIELD` PDB type
 class LIEF_API BitField : public Type {
   public:
-  using Type::Type;
+  template<typename... Args,
+           typename = typename std::
+               enable_if<std::is_constructible<Type, Args&&...>::value>::type>
+  BitField(Args&&... args) :
+    Type(std::forward<Args>(args)...) {}

   static bool classof(const Type* type) {
     return type->kind() == Type::KIND::BITFIELD;
@@ -38,5 +42,3 @@ class LIEF_API BitField : public Type {
 }
 }
 #endif
-
-
diff --git a/deps/LIEF/include/LIEF/PDB/types/ClassLike.hpp b/deps/LIEF/include/LIEF/PDB/types/ClassLike.hpp
index dd8cb662498..9d61c214cfa 100644
--- a/deps/LIEF/include/LIEF/PDB/types/ClassLike.hpp
+++ b/deps/LIEF/include/LIEF/PDB/types/ClassLike.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -15,6 +15,7 @@
 #ifndef LIEF_PDB_TYPE_CLASS_H
 #define LIEF_PDB_TYPE_CLASS_H

+#include "LIEF/compiler_attributes.hpp"
 #include "LIEF/visibility.h"
 #include "LIEF/PDB/Type.hpp"
 #include "LIEF/PDB/types/Attribute.hpp"
@@ -27,11 +28,15 @@ namespace LIEF {
 namespace pdb {
 namespace types {

-/// This class abstracts the following PDB types: `LF_STRUCTURE`, `LF_INTERFACE`, `LF_CLASS`
-/// or `LF_UNION`.
+/// This class abstracts the following PDB types: `LF_STRUCTURE`, `LF_INTERFACE`,
+/// `LF_CLASS` or `LF_UNION`.
 class LIEF_API ClassLike : public Type {
   public:
-  using Type::Type;
+  template<typename... Args,
+           typename = typename std::
+               enable_if<std::is_constructible<Type, Args&&...>::value>::type>
+  ClassLike(Args&&... args) :
+    Type(std::forward<Args>(args)...) {}

   /// Attributes iterator
   using attributes_iterator = iterator_range<Attribute::Iterator>;
@@ -42,22 +47,17 @@ class LIEF_API ClassLike : public Type {
   /// Mangled type name
   std::string unique_name() const;

-  /// Demangled type name
-  std::string name() const;
-
   /// Iterator over the different attributes defined in this class-like type
-  attributes_iterator attributes() const;
+  attributes_iterator attributes() const LIEF_LIFETIMEBOUND;

   /// Iterator over the different methods implemented in this class-type type
-  methods_iterator methods() const;
-
-  /// Size of the type including all its attributes. This size should match
-  /// the `sizeof(...)` this type.
-  uint64_t size() const;
+  methods_iterator methods() const LIEF_LIFETIMEBOUND;

-  template <class T>
-  static bool classof(const T*, typename std::enable_if<std::is_base_of<ClassLike, T>::value>::type* = 0)
-  {
+  template<class T>
+  static bool classof(
+      const T*,
+      typename std::enable_if<std::is_base_of<ClassLike, T>::value>::type* = 0
+  ) {
     return true;
   }

@@ -68,7 +68,11 @@ class LIEF_API ClassLike : public Type {
 /// Interface for the `LF_STRUCTURE` PDB type
 class LIEF_API Structure : public ClassLike {
   public:
-  using ClassLike::ClassLike;
+  template<typename... Args,
+           typename = typename std::
+               enable_if<std::is_constructible<ClassLike, Args&&...>::value>::type>
+  Structure(Args&&... args) :
+    ClassLike(std::forward<Args>(args)...) {}

   static bool classof(const Type* type) {
     return type->kind() == Type::KIND::STRUCTURE;
@@ -80,7 +84,11 @@ class LIEF_API Structure : public ClassLike {
 /// Interface for the `LF_CLASS` PDB type
 class LIEF_API Class : public ClassLike {
   public:
-  using ClassLike::ClassLike;
+  template<typename... Args,
+           typename = typename std::
+               enable_if<std::is_constructible<ClassLike, Args&&...>::value>::type>
+  Class(Args&&... args) :
+    ClassLike(std::forward<Args>(args)...) {}

   static bool classof(const Type* type) {
     return type->kind() == Type::KIND::CLASS;
@@ -92,7 +100,11 @@ class LIEF_API Class : public ClassLike {
 /// Interface for the `LF_INTERFACE` PDB type
 class LIEF_API Interface : public ClassLike {
   public:
-  using ClassLike::ClassLike;
+  template<typename... Args,
+           typename = typename std::
+               enable_if<std::is_constructible<ClassLike, Args&&...>::value>::type>
+  Interface(Args&&... args) :
+    ClassLike(std::forward<Args>(args)...) {}

   static bool classof(const Type* type) {
     return type->kind() == Type::KIND::INTERFACE;
@@ -106,5 +118,3 @@ class LIEF_API Interface : public ClassLike {
 }
 }
 #endif
-
-
diff --git a/deps/LIEF/include/LIEF/PDB/types/Enum.hpp b/deps/LIEF/include/LIEF/PDB/types/Enum.hpp
index d6ea5dd0e09..a51d3ba4560 100644
--- a/deps/LIEF/include/LIEF/PDB/types/Enum.hpp
+++ b/deps/LIEF/include/LIEF/PDB/types/Enum.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -15,6 +15,7 @@
 #ifndef LIEF_PDB_TYPE_ENUM_H
 #define LIEF_PDB_TYPE_ENUM_H

+#include "LIEF/compiler_attributes.hpp"
 #include "LIEF/visibility.h"
 #include "LIEF/PDB/Type.hpp"

@@ -22,21 +23,62 @@ namespace LIEF {
 namespace pdb {
 namespace types {

+namespace details {
+class EnumEntry;
+}
+
 /// This class represents a `LF_ENUM` PDB type
 class LIEF_API Enum : public Type {
   public:
-  using Type::Type;
+  template<typename... Args,
+           typename = typename std::
+               enable_if<std::is_constructible<Type, Args&&...>::value>::type>
+  Enum(Args&&... args) :
+    Type(std::forward<Args>(args)...) {}
+
+  /// This class represents an enum entry which is essentially
+  /// composed of a name and its value (integer).
+  class LIEF_API Entry {
+    public:
+    Entry(std::unique_ptr<details::EnumEntry> impl LIEF_LIFETIMEBOUND);
+    Entry(Entry&& other) noexcept;
+    Entry& operator=(Entry&& other) noexcept;
+
+    /// Enum entry's name
+    std::string name() const;
+
+    /// Enum entry's value (if any)
+    int64_t value() const;
+
+    ~Entry();
+
+    private:
+    std::unique_ptr<details::EnumEntry> impl_;
+  };
+
+  /// Enum's mangled name
+  std::string unique_name() const;
+
+  /// Return the different entries associated with this enum
+  std::vector<Entry> entries() const LIEF_LIFETIMEBOUND;
+
+  /// The underlying type that is used to encode this enum
+  const Type* underlying_type() const LIEF_LIFETIMEBOUND;
+
+  /// Try to find the enum matching the given value
+  optional<Entry> find_entry(int64_t value) const LIEF_LIFETIMEBOUND;

   static bool classof(const Type* type) {
     return type->kind() == Type::KIND::ENUM;
   }

   ~Enum() override;
+
+  protected:
+  mutable std::unique_ptr<Type> underlying_;
 };

 }
 }
 }
 #endif
-
-
diff --git a/deps/LIEF/include/LIEF/PDB/types/Function.hpp b/deps/LIEF/include/LIEF/PDB/types/Function.hpp
index 39409f09971..c60c99efed3 100644
--- a/deps/LIEF/include/LIEF/PDB/types/Function.hpp
+++ b/deps/LIEF/include/LIEF/PDB/types/Function.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -15,6 +15,7 @@
 #ifndef LIEF_PDB_TYPE_FUNCTION_H
 #define LIEF_PDB_TYPE_FUNCTION_H

+#include "LIEF/compiler_attributes.hpp"
 #include "LIEF/visibility.h"
 #include "LIEF/PDB/Type.hpp"

@@ -25,7 +26,18 @@ namespace types {
 /// This class represents a `LF_PROCEDURE` PDB type
 class LIEF_API Function : public Type {
   public:
-  using Type::Type;
+  template<typename... Args,
+           typename = typename std::
+               enable_if<std::is_constructible<Type, Args&&...>::value>::type>
+  Function(Args&&... args) :
+    Type(std::forward<Args>(args)...) {}
+  using parameters_t = std::vector<std::unique_ptr<Type>>;
+
+  /// Type returned by the function
+  std::unique_ptr<Type> return_type() const LIEF_LIFETIMEBOUND;
+
+  /// Types of the function's parameters
+  parameters_t parameters() const LIEF_LIFETIMEBOUND;

   static bool classof(const Type* type) {
     return type->kind() == Type::KIND::FUNCTION;
@@ -38,5 +50,3 @@ class LIEF_API Function : public Type {
 }
 }
 #endif
-
-
diff --git a/deps/LIEF/include/LIEF/PDB/types/Method.hpp b/deps/LIEF/include/LIEF/PDB/types/Method.hpp
index 5fa9599d84c..c21ade6c33a 100644
--- a/deps/LIEF/include/LIEF/PDB/types/Method.hpp
+++ b/deps/LIEF/include/LIEF/PDB/types/Method.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -15,10 +15,13 @@
 #ifndef LIEF_PDB_TYPE_METHOD_H
 #define LIEF_PDB_TYPE_METHOD_H

+#include "LIEF/compiler_attributes.hpp"
+#include "LIEF/iterators.hpp"
 #include "LIEF/visibility.h"

 #include <string>
 #include <memory>
+#include <cstdint>

 namespace LIEF {
 namespace pdb {
@@ -31,64 +34,97 @@ class MethodIt;
 }

 /// This class represents a Method (`LF_ONEMETHOD`) that can be defined in
-/// ClassLike PDB type
+/// a ClassLike PDB type (Class, Structure, Union, Interface).
 class LIEF_API Method {
   public:
-  class LIEF_API Iterator {
+  class Iterator final
+    : public iterator_facade_base<Iterator, std::forward_iterator_tag, Method,
+                                  std::ptrdiff_t, const Method*, const Method&> {
     public:
-    using iterator_category = std::forward_iterator_tag;
-    using value_type = std::unique_ptr<Method>;
-    using difference_type = std::ptrdiff_t;
-    using pointer = Method*;
-    using reference = Method&;
     using implementation = details::MethodIt;
+    using iterator_facade_base::operator++;

-    class LIEF_API PointerProxy {
-      // Inspired from LLVM's iterator_facade_base
-      friend class Iterator;
-      public:
-      pointer operator->() const { return R.get(); }
+    LIEF_API Iterator();

-      private:
-      value_type R;
+    LIEF_API Iterator(std::unique_ptr<details::MethodIt> impl);

-      template <typename RefT>
-      PointerProxy(RefT &&R) : R(std::forward<RefT>(R)) {} // NOLINT(bugprone-forwarding-reference-overload)
-    };
-    Iterator(const Iterator&);
-    Iterator(Iterator&&) noexcept;
-    Iterator(std::unique_ptr<details::MethodIt> impl);
-    ~Iterator();
+    LIEF_API Iterator(const Iterator&);
+    LIEF_API Iterator& operator=(const Iterator&);
+
+    LIEF_API Iterator(Iterator&&) noexcept;
+    LIEF_API Iterator& operator=(Iterator&&) noexcept;
+
+    LIEF_API ~Iterator();

     friend LIEF_API bool operator==(const Iterator& LHS, const Iterator& RHS);

-    friend LIEF_API bool operator!=(const Iterator& LHS, const Iterator& RHS) {
+    friend bool operator!=(const Iterator& LHS, const Iterator& RHS) {
       return !(LHS == RHS);
     }

-    Iterator& operator++();
+    // NOLINTNEXTLINE(bugprone-derived-method-shadowing-base-method)
+    LIEF_API Iterator& operator++();

-    Iterator operator++(int) {
-      Iterator tmp = *static_cast<Iterator*>(this);
-      ++*static_cast<Iterator *>(this);
-      return tmp;
-    }
+    LIEF_API const Method& operator*() const LIEF_LIFETIMEBOUND;

-    std::unique_ptr<Method> operator*() const;
+    // NOLINTNEXTLINE(bugprone-derived-method-shadowing-base-method)
+    LIEF_API const Method* operator->() const LIEF_LIFETIMEBOUND;

-    PointerProxy operator->() const {
-      return static_cast<const Iterator*>(this)->operator*();
-    }
+    /// Transfer ownership of the method at the current position to the
+    /// caller. Returns `nullptr` if the iterator is past-the-end.
+    LIEF_API std::unique_ptr<Method> yield();

     private:
+    void load() const;
+
     std::unique_ptr<details::MethodIt> impl_;
+    mutable std::unique_ptr<Method> cached_;
   };
+
   public:
+  /// The type (or property) of the method.
+  enum class TYPE {
+    /// Regular instance method
+    VANILLA = 0x00,
+
+    /// Virtual method
+    VIRTUAL = 0x01,
+
+    /// Static method
+    STATIC = 0x02,
+
+    /// Friend method
+    FRIEND = 0x03,
+
+    /// Virtual method that introduces a new vtable slot
+    INTRODUCING_VIRTUAL = 0x04,
+
+    /// Pure virtual method (abstract)
+    PURE_VIRTUAL = 0x05,
+
+    /// Pure virtual method that introduces a new vtable slot
+    PURE_INTRODUCING_VIRTUAL = 0x06,
+  };
+
+  /// Visibility access for the method.
+  enum class ACCESS : uint8_t {
+    NONE = 0,      /// No access specifier (or unknown)
+    PRIVATE = 1,   /// Private access
+    PROTECTED = 2, /// Protected access
+    PUBLIC = 3,    /// Public access
+  };
+
   Method(std::unique_ptr<details::Method> impl);

   /// Name of the method
   std::string name() const;

+  /// Type/Properties of the method (virtual, static, etc.)
+  TYPE type() const;
+
+  /// Visibility access (public, private, ...)
+  ACCESS access() const;
+
   ~Method();

   private:
@@ -99,4 +135,3 @@ class LIEF_API Method {
 }
 }
 #endif
-
diff --git a/deps/LIEF/include/LIEF/PDB/types/Modifier.hpp b/deps/LIEF/include/LIEF/PDB/types/Modifier.hpp
index f08755803d3..632a9986bab 100644
--- a/deps/LIEF/include/LIEF/PDB/types/Modifier.hpp
+++ b/deps/LIEF/include/LIEF/PDB/types/Modifier.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -15,6 +15,7 @@
 #ifndef LIEF_PDB_TYPE_MODIFIER_H
 #define LIEF_PDB_TYPE_MODIFIER_H

+#include "LIEF/compiler_attributes.hpp"
 #include "LIEF/visibility.h"
 #include "LIEF/PDB/Type.hpp"

@@ -25,14 +26,18 @@ namespace types {
 /// This class represents a `LF_MODIFIER` PDB type
 class LIEF_API Modifier : public Type {
   public:
-  using Type::Type;
+  template<typename... Args,
+           typename = typename std::
+               enable_if<std::is_constructible<Type, Args&&...>::value>::type>
+  Modifier(Args&&... args) :
+    Type(std::forward<Args>(args)...) {}

   static bool classof(const Type* type) {
     return type->kind() == Type::KIND::MODIFIER;
   }

   /// Underlying type targeted by this modifier
-  std::unique_ptr<Type> underlying_type() const;
+  std::unique_ptr<Type> underlying_type() const LIEF_LIFETIMEBOUND;

   ~Modifier() override;
 };
@@ -41,5 +46,3 @@ class LIEF_API Modifier : public Type {
 }
 }
 #endif
-
-
diff --git a/deps/LIEF/include/LIEF/PDB/types/Pointer.hpp b/deps/LIEF/include/LIEF/PDB/types/Pointer.hpp
index 66c8e950ab4..a1513eb254d 100644
--- a/deps/LIEF/include/LIEF/PDB/types/Pointer.hpp
+++ b/deps/LIEF/include/LIEF/PDB/types/Pointer.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -15,6 +15,7 @@
 #ifndef LIEF_PDB_TYPE_POINTER_H
 #define LIEF_PDB_TYPE_POINTER_H

+#include "LIEF/compiler_attributes.hpp"
 #include "LIEF/visibility.h"
 #include "LIEF/PDB/Type.hpp"

@@ -25,14 +26,18 @@ namespace types {
 /// This class represents a `LF_POINTER` PDB type
 class LIEF_API Pointer : public Type {
   public:
-  using Type::Type;
+  template<typename... Args,
+           typename = typename std::
+               enable_if<std::is_constructible<Type, Args&&...>::value>::type>
+  Pointer(Args&&... args) :
+    Type(std::forward<Args>(args)...) {}

   static bool classof(const Type* type) {
     return type->kind() == Type::KIND::POINTER;
   }

   /// The underlying type pointed by this pointer
-  std::unique_ptr<Type> underlying_type() const;
+  std::unique_ptr<Type> underlying_type() const LIEF_LIFETIMEBOUND;

   ~Pointer() override;
 };
@@ -41,5 +46,3 @@ class LIEF_API Pointer : public Type {
 }
 }
 #endif
-
-
diff --git a/deps/LIEF/include/LIEF/PDB/types/Simple.hpp b/deps/LIEF/include/LIEF/PDB/types/Simple.hpp
index 44995a41d7c..16e38f5306e 100644
--- a/deps/LIEF/include/LIEF/PDB/types/Simple.hpp
+++ b/deps/LIEF/include/LIEF/PDB/types/Simple.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -22,11 +22,125 @@ namespace LIEF {
 namespace pdb {
 namespace types {

-/// This class represents a primitive types (int, float, ...) which are
+/// This class represents primitive types (int, float, ...) which are
 /// also named *simple* types in the PDB format.
 class LIEF_API Simple : public Type {
   public:
-  using Type::Type;
+  template<typename... Args,
+           typename = typename std::
+               enable_if<std::is_constructible<Type, Args&&...>::value>::type>
+  Simple(Args&&... args) :
+    Type(std::forward<Args>(args)...) {}
+
+  /// Identifier of the primitive type.
+  ///
+  /// These values correspond to the low bits of the CodeView Type Index.
+  enum class TYPES {
+    UNKNOWN = 0,
+    VOID_ = 0x0003,
+
+    // --- Characters ---
+    SCHAR = 0x0010, //!< Signed Character
+    UCHAR = 0x0020, //!< Unsigned Character
+    RCHAR = 0x0070, //!< "Real" Character (char)
+
+    // --- Unicode / Wide Characters ---
+    WCHAR = 0x0071,  //!< Wide Character (wchar_t)
+    CHAR16 = 0x007a, //!< 16-bit Character (char16_t)
+    CHAR32 = 0x007b, //!< 32-bit Character (char32_t)
+    CHAR8 = 0x007c,  //!< 8-bit Character (char8_t)
+
+    // --- Bytes ---
+    SBYTE = 0x0068, //!< Signed Byte
+    UBYTE = 0x0069, //!< Unsigned Byte
+
+    // --- Short (16-bit) ---
+    SSHORT = 0x0011, //!< Signed Short
+    USHORT = 0x0021, //!< Unsigned Short
+
+    SINT16 = 0x0072, //!< Explicit Signed 16-bit Integer
+    UINT16 = 0x0073, //!< Explicit Unsigned 16-bit Integer
+
+    // --- Long (32-bit) ---
+    SLONG = 0x0012, //!< Signed Long
+    ULONG = 0x0022, //!< Unsigned Long
+
+    SINT32 = 0x0074, //!< Explicit Signed 32-bit Integer
+    UINT32 = 0x0075, //!< Explicit Unsigned 32-bit Integer
+
+    // --- Quad (64-bit) ---
+    SQUAD = 0x0013, //!< Signed Quadword
+    UQUAD = 0x0023, //!< Unsigned Quadword
+
+    SINT64 = 0x0076, //!< Explicit Signed 64-bit Integer
+    UINT64 = 0x0077, //!< Explicit Unsigned 64-bit Integer
+
+    // --- Octa (128-bit) ---
+    SOCTA = 0x0014, //!< Signed Octaword
+    UOCTA = 0x0024, //!< Unsigned Octaword
+
+    SINT128 = 0x0078, //!< Explicit Signed 128-bit Integer
+    UINT128 = 0x0079, //!< Explicit Unsigned 128-bit Integer
+
+    // --- Floating Point ---
+    FLOAT16 = 0x0046, //!< 16-bit Floating point
+    FLOAT32 = 0x0040, //!< 32-bit Floating point (float)
+    FLOAT32_PARTIAL_PRECISION = 0x45,
+
+    FLOAT48 = 0x0044,  //!< 48-bit Floating point
+    FLOAT64 = 0x0041,  //!< 64-bit Floating point (double)
+    FLOAT80 = 0x0042,  //!< 80-bit Floating point
+    FLOAT128 = 0x0043, //!< 128-bit Floating point
+
+    // --- Complex Numbers ---
+    COMPLEX16 = 0x0056,
+    COMPLEX32 = 0x0050,
+    COMPLEX32_PARTIAL_PRECISION = 0x0055,
+    COMPLEX48 = 0x0054,
+    COMPLEX64 = 0x0051,
+    COMPLEX80 = 0x0052,
+    COMPLEX128 = 0x0053,
+
+    // --- Booleans ---
+    BOOL8 = 0x0030,   //!< 8-bit Boolean
+    BOOL16 = 0x0031,  //!< 16-bit Boolean
+    BOOL32 = 0x0032,  //!< 32-bit Boolean
+    BOOL64 = 0x0033,  //!< 64-bit Boolean
+    BOOL128 = 0x0034, //!< 128-bit Boolean
+  };
+
+  /// Modifier applied to the underlying type.
+  ///
+  /// In the PDB Simple Type encoding, these represent pointer attributes.
+  enum class MODES : uint32_t {
+    DIRECT = 0x00000000,          //!< Not a pointer (direct access)
+    FAR_POINTER = 0x00000200,     //!< Far pointer
+    HUGE_POINTER = 0x00000300,    //!< Huge pointer
+    NEAR_POINTER32 = 0x00000400,  //!< 32-bit Near pointer
+    FAR_POINTER32 = 0x00000500,   //!< 32-bit Far pointer
+    NEAR_POINTER64 = 0x00000600,  //!< 64-bit Near pointer
+    NEAR_POINTER128 = 0x00000700, //!< 128-bit Near pointer
+  };
+
+  /// Returns the underlying primitive type.
+  TYPES type() const;
+
+  /// Returns the mode (pointer type) of this Simple type.
+  MODES modes() const;
+
+  /// Check if this simple type is a pointer.
+  bool is_pointer() const {
+    return modes() != MODES::DIRECT;
+  }
+
+  /// Check if the underlying type is signed
+  bool is_signed() const {
+    const TYPES ty = type();
+    return ty == TYPES::SCHAR || ty == TYPES::SBYTE || ty == TYPES::SSHORT ||
+           ty == TYPES::SINT16 || ty == TYPES::SLONG || ty == TYPES::SINT32 ||
+           ty == TYPES::SQUAD || ty == TYPES::SINT64 || ty == TYPES::SOCTA ||
+           ty == TYPES::SINT128;
+  }

   static bool classof(const Type* type) {
     return type->kind() == Type::KIND::SIMPLE;
@@ -39,5 +153,3 @@ class LIEF_API Simple : public Type {
 }
 }
 #endif
-
-
diff --git a/deps/LIEF/include/LIEF/PDB/types/Union.hpp b/deps/LIEF/include/LIEF/PDB/types/Union.hpp
index 6fa18c65386..662e342462f 100644
--- a/deps/LIEF/include/LIEF/PDB/types/Union.hpp
+++ b/deps/LIEF/include/LIEF/PDB/types/Union.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -25,7 +25,11 @@ namespace types {
 /// This class represents a `LF_UNION` PDB type
 class LIEF_API Union : public ClassLike {
   public:
-  using ClassLike::ClassLike;
+  template<typename... Args,
+           typename = typename std::
+               enable_if<std::is_constructible<ClassLike, Args&&...>::value>::type>
+  Union(Args&&... args) :
+    ClassLike(std::forward<Args>(args)...) {}

   static bool classof(const Type* type) {
     return type->kind() == Type::KIND::UNION;
@@ -38,5 +42,3 @@ class LIEF_API Union : public ClassLike {
 }
 }
 #endif
-
-
diff --git a/deps/LIEF/include/LIEF/PDB/utils.hpp b/deps/LIEF/include/LIEF/PDB/utils.hpp
index e7521741ece..cfd04d9f4b1 100644
--- a/deps/LIEF/include/LIEF/PDB/utils.hpp
+++ b/deps/LIEF/include/LIEF/PDB/utils.hpp
@@ -1,6 +1,6 @@

-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/deps/LIEF/include/LIEF/PE.hpp b/deps/LIEF/include/LIEF/PE.hpp
index a0d2d081e0b..682bdce406f 100644
--- a/deps/LIEF/include/LIEF/PE.hpp
+++ b/deps/LIEF/include/LIEF/PE.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -20,72 +20,73 @@

 #if defined(LIEF_PE_SUPPORT)

-#include "LIEF/PE/Parser.hpp"
-#include "LIEF/PE/Section.hpp"
-#include "LIEF/PE/TLS.hpp"
-#include "LIEF/PE/Export.hpp"
-#include "LIEF/PE/ExportEntry.hpp"
-#include "LIEF/PE/Import.hpp"
-#include "LIEF/PE/ImportEntry.hpp"
-#include "LIEF/PE/DelayImport.hpp"
-#include "LIEF/PE/DelayImportEntry.hpp"
-#include "LIEF/PE/DataDirectory.hpp"
-#include "LIEF/PE/ResourcesManager.hpp"
-#include "LIEF/PE/ResourceData.hpp"
-#include "LIEF/PE/ResourceNode.hpp"
-#include "LIEF/PE/ResourceDirectory.hpp"
-#include "LIEF/PE/resources/ResourceAccelerator.hpp"
-#include "LIEF/PE/resources/ResourceDialog.hpp"
-#include "LIEF/PE/resources/ResourceDialogRegular.hpp"
-#include "LIEF/PE/resources/ResourceDialogExtended.hpp"
-#include "LIEF/PE/resources/AcceleratorCodes.hpp"
-#include "LIEF/PE/resources/ResourceIcon.hpp"
-#include "LIEF/PE/resources/ResourceStringFileInfo.hpp"
-#include "LIEF/PE/resources/ResourceStringTable.hpp"
-#include "LIEF/PE/resources/ResourceVarFileInfo.hpp"
-#include "LIEF/PE/resources/ResourceVar.hpp"
-#include "LIEF/PE/resources/ResourceVersion.hpp"
-#include "LIEF/PE/RichEntry.hpp"
-#include "LIEF/PE/RichHeader.hpp"
-#include "LIEF/PE/Relocation.hpp"
-#include "LIEF/PE/RelocationEntry.hpp"
-#include "LIEF/PE/Builder.hpp"
-#include "LIEF/PE/Binary.hpp"
-#include "LIEF/PE/Debug.hpp"
-#include "LIEF/PE/DosHeader.hpp"
-#include "LIEF/PE/Header.hpp"
-#include "LIEF/PE/OptionalHeader.hpp"
-#include "LIEF/PE/LoadConfigurations.hpp"
-#include "LIEF/PE/CodeIntegrity.hpp"
-#include "LIEF/PE/Factory.hpp"
-#include "LIEF/PE/ExceptionInfo.hpp"
-#include "LIEF/PE/exceptions_info/RuntimeFunctionAArch64.hpp"
-#include "LIEF/PE/exceptions_info/AArch64/PackedFunction.hpp"
-#include "LIEF/PE/exceptions_info/AArch64/UnpackedFunction.hpp"
-#include "LIEF/PE/exceptions_info/RuntimeFunctionX64.hpp"
-#include "LIEF/PE/exceptions_info/UnwindCodeX64.hpp"
+  #include "LIEF/PE/Parser.hpp"
+  #include "LIEF/PE/Section.hpp"
+  #include "LIEF/PE/TLS.hpp"
+  #include "LIEF/PE/Export.hpp"
+  #include "LIEF/PE/ExportEntry.hpp"
+  #include "LIEF/PE/Import.hpp"
+  #include "LIEF/PE/ImportEntry.hpp"
+  #include "LIEF/PE/DelayImport.hpp"
+  #include "LIEF/PE/DelayImportEntry.hpp"
+  #include "LIEF/PE/DataDirectory.hpp"
+  #include "LIEF/PE/ResourcesManager.hpp"
+  #include "LIEF/PE/ResourceData.hpp"
+  #include "LIEF/PE/ResourceNode.hpp"
+  #include "LIEF/PE/ResourceDirectory.hpp"
+  #include "LIEF/PE/resources/ResourceAccelerator.hpp"
+  #include "LIEF/PE/resources/ResourceDialog.hpp"
+  #include "LIEF/PE/resources/ResourceDialogRegular.hpp"
+  #include "LIEF/PE/resources/ResourceDialogExtended.hpp"
+  #include "LIEF/PE/resources/AcceleratorCodes.hpp"
+  #include "LIEF/PE/resources/ResourceIcon.hpp"
+  #include "LIEF/PE/resources/ResourceStringFileInfo.hpp"
+  #include "LIEF/PE/resources/ResourceStringTable.hpp"
+  #include "LIEF/PE/resources/ResourceVarFileInfo.hpp"
+  #include "LIEF/PE/resources/ResourceVar.hpp"
+  #include "LIEF/PE/resources/ResourceVersion.hpp"
+  #include "LIEF/PE/RichEntry.hpp"
+  #include "LIEF/PE/RichHeader.hpp"
+  #include "LIEF/PE/Relocation.hpp"
+  #include "LIEF/PE/RelocationEntry.hpp"
+  #include "LIEF/PE/Builder.hpp"
+  #include "LIEF/PE/Binary.hpp"
+  #include "LIEF/PE/Debug.hpp"
+  #include "LIEF/PE/DosHeader.hpp"
+  #include "LIEF/PE/Header.hpp"
+  #include "LIEF/PE/OptionalHeader.hpp"
+  #include "LIEF/PE/LoadConfigurations.hpp"
+  #include "LIEF/PE/CodeIntegrity.hpp"
+  #include "LIEF/PE/Factory.hpp"
+  #include "LIEF/PE/ExceptionInfo.hpp"
+  #include "LIEF/PE/exceptions_info/RuntimeFunctionAArch64.hpp"
+  #include "LIEF/PE/exceptions_info/AArch64/PackedFunction.hpp"
+  #include "LIEF/PE/exceptions_info/AArch64/UnpackedFunction.hpp"
+  #include "LIEF/PE/exceptions_info/RuntimeFunctionX64.hpp"
+  #include "LIEF/PE/exceptions_info/UnwindCodeX64.hpp"

-#include "LIEF/PE/signature/Attribute.hpp"
-#include "LIEF/PE/signature/ContentInfo.hpp"
-#include "LIEF/PE/signature/GenericContent.hpp"
-#include "LIEF/PE/signature/OIDToString.hpp"
-#include "LIEF/PE/signature/Signature.hpp"
-#include "LIEF/PE/signature/SignerInfo.hpp"
-#include "LIEF/PE/signature/SpcIndirectData.hpp"
-#include "LIEF/PE/signature/attributes.hpp"
-#include "LIEF/PE/signature/types.hpp"
-#include "LIEF/PE/signature/x509.hpp"
-#include "LIEF/PE/signature/SpcIndirectData.hpp"
-#include "LIEF/PE/signature/GenericContent.hpp"
-#include "LIEF/PE/signature/PKCS9TSTInfo.hpp"
+  #include "LIEF/PE/signature/Attribute.hpp"
+  #include "LIEF/PE/signature/ContentInfo.hpp"
+  #include "LIEF/PE/signature/GenericContent.hpp"
+  #include "LIEF/PE/signature/OIDToString.hpp"
+  #include "LIEF/PE/signature/Signature.hpp"
+  #include "LIEF/PE/signature/SignerInfo.hpp"
+  #include "LIEF/PE/signature/SpcIndirectData.hpp"
+  #include "LIEF/PE/signature/attributes.hpp"
+  #include "LIEF/PE/signature/types.hpp"
+  #include "LIEF/PE/signature/x509.hpp"
+  #include "LIEF/PE/signature/RsaInfo.hpp"
+  #include "LIEF/PE/signature/SpcIndirectData.hpp"
+  #include "LIEF/PE/signature/GenericContent.hpp"
+  #include "LIEF/PE/signature/PKCS9TSTInfo.hpp"

-#include "LIEF/PE/hash.hpp"
-#include "LIEF/PE/enums.hpp"
-#include "LIEF/PE/EnumToString.hpp"
-#include "LIEF/PE/utils.hpp"
+  #include "LIEF/PE/hash.hpp"
+  #include "LIEF/PE/enums.hpp"
+  #include "LIEF/PE/EnumToString.hpp"
+  #include "LIEF/PE/utils.hpp"

-#include "LIEF/COFF/Symbol.hpp"
-#include "LIEF/COFF/String.hpp"
+  #include "LIEF/COFF/Symbol.hpp"
+  #include "LIEF/COFF/String.hpp"

 #endif

diff --git a/deps/LIEF/include/LIEF/PE/Binary.hpp b/deps/LIEF/include/LIEF/PE/Binary.hpp
index 4a05754377c..cd7a5c5ba4d 100644
--- a/deps/LIEF/include/LIEF/PE/Binary.hpp
+++ b/deps/LIEF/include/LIEF/PE/Binary.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -24,7 +24,6 @@
 #include "LIEF/PE/DataDirectory.hpp"
 #include "LIEF/PE/Builder.hpp"
 #include "LIEF/PE/ResourcesManager.hpp"
-#include "LIEF/PE/ExceptionInfo.hpp"
 #include "LIEF/PE/signature/Signature.hpp"

 #include "LIEF/COFF/Symbol.hpp"
@@ -32,6 +31,7 @@

 #include "LIEF/Abstract/Binary.hpp"

+#include "LIEF/compiler_attributes.hpp"
 #include "LIEF/visibility.h"

 namespace LIEF {
@@ -76,7 +76,8 @@ class LIEF_API Binary : public LIEF::Binary {
   using it_data_directories = ref_iterator<data_directories_t&, DataDirectory*>;

   /// Iterator that outputs const DataDirectory&
-  using it_const_data_directories = const_ref_iterator<const data_directories_t&, const DataDirectory*>;
+  using it_const_data_directories =
+      const_ref_iterator<const data_directories_t&, const DataDirectory*>;

   /// Internal container for storing PE's Relocation
   using relocations_t = std::vector<std::unique_ptr<Relocation>>;
@@ -85,12 +86,13 @@ class LIEF_API Binary : public LIEF::Binary {
   using it_relocations = ref_iterator<relocations_t&, Relocation*>;

   /// Iterator that outputs const Relocation&
-  using it_const_relocations = const_ref_iterator<const relocations_t&, const Relocation*>;
+  using it_const_relocations =
+      const_ref_iterator<const relocations_t&, const Relocation*>;

   /// Internal container for storing PE's Import
   using imports_t = std::vector<std::unique_ptr<Import>>;

-  /// Iterator that output Import&
+  /// Iterator that outputs Import&
   using it_imports = ref_iterator<imports_t&, Import*>;

   /// Iterator that outputs const Import&
@@ -99,11 +101,12 @@ class LIEF_API Binary : public LIEF::Binary {
   /// Internal container for storing PE's DelayImport
   using delay_imports_t = std::vector<std::unique_ptr<DelayImport>>;

-  /// Iterator that output DelayImport&
+  /// Iterator that outputs DelayImport&
   using it_delay_imports = ref_iterator<delay_imports_t&, DelayImport*>;

   /// Iterator that outputs const DelayImport&
-  using it_const_delay_imports = const_ref_iterator<const delay_imports_t&, const DelayImport*>;
+  using it_const_delay_imports =
+      const_ref_iterator<const delay_imports_t&, const DelayImport*>;

   /// Internal container for storing Debug information
   using debug_entries_t = std::vector<std::unique_ptr<Debug>>;
@@ -112,7 +115,8 @@ class LIEF_API Binary : public LIEF::Binary {
   using it_debug_entries = ref_iterator<debug_entries_t&, Debug*>;

   /// Iterator that outputs const Debug&
-  using it_const_debug_entries = const_ref_iterator<const debug_entries_t&, const Debug*>;
+  using it_const_debug_entries =
+      const_ref_iterator<const debug_entries_t&, const Debug*>;

   /// Internal container for storing COFF Symbols
   using symbols_t = std::vector<std::unique_ptr<COFF::Symbol>>;
@@ -121,7 +125,8 @@ class LIEF_API Binary : public LIEF::Binary {
   using it_symbols = ref_iterator<symbols_t&, COFF::Symbol*>;

   /// Iterator that outputs const Symbol&
-  using it_const_symbols = const_ref_iterator<const symbols_t&, const COFF::Symbol*>;
+  using it_const_symbols =
+      const_ref_iterator<const symbols_t&, const COFF::Symbol*>;

   /// Internal container for storing strings
   using strings_table_t = std::vector<COFF::String>;
@@ -148,7 +153,8 @@ class LIEF_API Binary : public LIEF::Binary {
   using it_exceptions = ref_iterator<exceptions_t&, ExceptionInfo*>;

   /// Iterator that outputs const ExceptionInfo&
-  using it_const_exceptions = const_ref_iterator<const exceptions_t&, const ExceptionInfo*>;
+  using it_const_exceptions =
+      const_ref_iterator<const exceptions_t&, const ExceptionInfo*>;

   Binary();
   ~Binary() override;
@@ -171,11 +177,15 @@ class LIEF_API Binary : public LIEF::Binary {
     return rva_to_offset(rva);
   }

-  /// Convert the given offset into a virtual address.
+  /// Convert the given offset into an absolute virtual address.
   ///
   /// @param[in] offset The offset to convert.
   /// @param[in] slide  If not 0, it will replace the default base address (if any)
-  result<uint64_t> offset_to_virtual_address(uint64_t offset, uint64_t slide = 0) const override;
+  result<uint64_t> offset_to_virtual_address(uint64_t offset,
+                                             uint64_t slide = 0) const override;
+
+  /// Convert the given offset into a relative virtual address (RVA).
+  uint64_t offset_to_rva(uint64_t offset) const;

   /// Return binary's imagebase. ``0`` if not relevant
   ///
@@ -184,56 +194,61 @@ class LIEF_API Binary : public LIEF::Binary {
     return optional_header().imagebase();
   }

-  /// Find the section associated that encompasses the given offset.
+  /// Find the section that encompasses the given offset.
   ///
   /// If no section can be found, return a nullptr
-  Section* section_from_offset(uint64_t offset) {
-    return const_cast<Section*>(static_cast<const Binary*>(this)->section_from_offset(offset));
+  Section* section_from_offset(uint64_t offset) LIEF_LIFETIMEBOUND {
+    return const_cast<Section*>(
+        static_cast<const Binary*>(this)->section_from_offset(offset)
+    );
   }
-  const Section* section_from_offset(uint64_t offset) const;
+  const Section* section_from_offset(uint64_t offset) const LIEF_LIFETIMEBOUND;

-  /// Find the section associated that encompasses the given RVA.
+  /// Find the section that encompasses the given RVA.
   ///
   /// If no section can be found, return a nullptr
-  Section* section_from_rva(uint64_t virtual_address) {
-    return const_cast<Section*>(static_cast<const Binary*>(this)->section_from_rva(virtual_address));
+  Section* section_from_rva(uint64_t virtual_address) LIEF_LIFETIMEBOUND {
+    return const_cast<Section*>(
+        static_cast<const Binary*>(this)->section_from_rva(virtual_address)
+    );
   }
-  const Section* section_from_rva(uint64_t virtual_address) const;
+  const Section*
+      section_from_rva(uint64_t virtual_address) const LIEF_LIFETIMEBOUND;

   /// Return an iterator over the PE's Section
-  it_sections sections() {
+  it_sections sections() LIEF_LIFETIMEBOUND {
     return sections_;
   }

-  it_const_sections sections() const {
+  it_const_sections sections() const LIEF_LIFETIMEBOUND {
     return sections_;
   }

   /// Return a reference to the PE::DosHeader object
-  DosHeader& dos_header() {
+  DosHeader& dos_header() LIEF_LIFETIMEBOUND {
     return dos_header_;
   }

-  const DosHeader& dos_header() const {
+  const DosHeader& dos_header() const LIEF_LIFETIMEBOUND {
     return dos_header_;
   }

   /// Return a reference to the PE::Header object
-  Header& header() {
+  Header& header() LIEF_LIFETIMEBOUND {
     return header_;
   }

-  const Header& header() const {
+  const Header& header() const LIEF_LIFETIMEBOUND {
     return header_;
   }

   /// Header that follows the header(). It is named optional from the COFF
-  /// specfication but it is mandatory in a PE file.
-  OptionalHeader& optional_header() {
+  /// specification but it is mandatory in a PE file.
+  OptionalHeader& optional_header() LIEF_LIFETIMEBOUND {
     return optional_header_;
   }

-  const OptionalHeader& optional_header() const {
+  const OptionalHeader& optional_header() const LIEF_LIFETIMEBOUND {
     return optional_header_;
   }

@@ -246,22 +261,22 @@ class LIEF_API Binary : public LIEF::Binary {

   /// Compute the binary's virtual size.
   /// It should match OptionalHeader::sizeof_image
-  uint64_t virtual_size() const;
+  uint64_t virtual_size() const override;

   /// Compute the size of all the headers
   uint32_t sizeof_headers() const;

   /// Return a reference to the TLS object
-  TLS* tls() {
+  TLS* tls() LIEF_LIFETIMEBOUND {
     return tls_.get();
   }

-  const TLS* tls() const {
+  const TLS* tls() const LIEF_LIFETIMEBOUND {
     return tls_.get();
   }

   /// Set a TLS object in the current Binary
-  TLS& tls(const TLS& tls);
+  TLS& tls(const TLS& tls) LIEF_LIFETIMEBOUND;

   /// Check if the current binary has a TLS object
   bool has_tls() const {
@@ -299,7 +314,10 @@ class LIEF_API Binary : public LIEF::Binary {

   /// Check if the current binary has exceptions
   bool has_exceptions() const {
-    return exceptions_dir()->size() != 0;
+    if (const DataDirectory* dir = exceptions_dir()) {
+      return dir->size() > 0;
+    }
+    return false;
   }

   /// Check if the current binary has relocations
@@ -326,118 +344,128 @@ class LIEF_API Binary : public LIEF::Binary {
   bool is_reproducible_build() const;

   /// Return an iterator over the Signature object(s) if the binary is signed
-  it_const_signatures signatures() const {
+  it_const_signatures signatures() const LIEF_LIFETIMEBOUND {
     return signatures_;
   }

-  it_signatures signatures() {
+  it_signatures signatures() LIEF_LIFETIMEBOUND {
     return signatures_;
   }

   /// Verify the binary against the embedded signature(s) (if any)
-  /// First, it checks that the embedded signatures are correct (c.f. Signature::check)
-  /// and then, it checks that the authentihash matches ContentInfo::digest
+  /// First, it checks that the embedded signatures are correct (c.f.
+  /// Signature::check) and then, it checks that the authentihash matches
+  /// ContentInfo::digest
   ///
-  /// One can tweak the verification process with the Signature::VERIFICATION_CHECKS flags
+  /// One can tweak the verification process with the
+  /// Signature::VERIFICATION_CHECKS flags
   ///
   /// @see LIEF::PE::Signature::check
-  Signature::VERIFICATION_FLAGS verify_signature(
-      Signature::VERIFICATION_CHECKS checks = Signature::VERIFICATION_CHECKS::DEFAULT) const;
+  Signature::VERIFICATION_FLAGS
+      verify_signature(Signature::VERIFICATION_CHECKS checks =
+                           Signature::VERIFICATION_CHECKS::DEFAULT) const;

   /// Verify the binary with the Signature object provided in the first parameter.
   /// It can be used to verify a detached signature:
   ///
-  /// \code{.cpp}
+  /// @code{.cpp}
   /// result<Signature> detached = LIEF::PE::SignatureParser::parse("sig.pkcs7")
   /// if (detached) {
   ///   binary->verify_signature(detached.value());
   /// }
-  /// \endcode
-  Signature::VERIFICATION_FLAGS verify_signature(const Signature& sig,
-      Signature::VERIFICATION_CHECKS checks = Signature::VERIFICATION_CHECKS::DEFAULT) const;
+  /// @endcode
+  Signature::VERIFICATION_FLAGS
+      verify_signature(const Signature& sig,
+                       Signature::VERIFICATION_CHECKS checks =
+                           Signature::VERIFICATION_CHECKS::DEFAULT) const;

   /// Compute the authentihash according to the algorithm provided in the first
   /// parameter
   std::vector<uint8_t> authentihash(ALGORITHMS algo) const;

   /// Return the Export object
-  Export* get_export() {
+  Export* get_export() LIEF_LIFETIMEBOUND {
     return export_.get();
   }

-  const Export* get_export() const {
+  const Export* get_export() const LIEF_LIFETIMEBOUND {
     return export_.get();
   }

-  Export& set_export(const Export& export_table);
+  Export& set_export(const Export& export_table) LIEF_LIFETIMEBOUND;

   /// Return binary Symbols
-  it_symbols symbols() {
+  it_symbols symbols() LIEF_LIFETIMEBOUND {
     return symbols_;
   }

-  it_const_symbols symbols() const {
+  it_const_symbols symbols() const LIEF_LIFETIMEBOUND {
     return symbols_;
   }

   /// Iterator over the strings located in the COFF string table
-  it_const_strings_table coff_string_table() const {
+  it_const_strings_table coff_string_table() const LIEF_LIFETIMEBOUND {
     return strings_table_;
   }

-  it_strings_table coff_string_table() {
+  it_strings_table coff_string_table() LIEF_LIFETIMEBOUND {
     return strings_table_;
   }

   /// Try to find the COFF string at the given offset in the COFF string table.
   ///
-  /// \warning This offset must include the first 4 bytes holding the size of
-  ///          the table. Hence, the first string starts a the offset 4.
-  COFF::String* find_coff_string(uint32_t offset) {
+  /// @warning This offset must include the first 4 bytes holding the size of
+  ///          the table. Hence, the first string starts at the offset 4.
+  COFF::String* find_coff_string(uint32_t offset) LIEF_LIFETIMEBOUND {
     auto it = std::find_if(strings_table_.begin(), strings_table_.end(),
-      [offset] (const COFF::String& item) {
-        return offset == item.offset();
-      }
-    );
+                           [offset](const COFF::String& item) {
+                             return offset == item.offset();
+                           });
     return it == strings_table_.end() ? nullptr : &*it;
   }

-  const COFF::String* find_coff_string(uint32_t offset) const {
+  const COFF::String* find_coff_string(uint32_t offset) const LIEF_LIFETIMEBOUND {
     return const_cast<Binary*>(this)->find_coff_string(offset);
   }

   /// Return resources as a tree or a nullptr if there is no resources
-  ResourceNode* resources() {
+  ResourceNode* resources() LIEF_LIFETIMEBOUND {
     return resources_.get();
   }

-  const ResourceNode* resources() const {
+  const ResourceNode* resources() const LIEF_LIFETIMEBOUND {
     return resources_.get();
   }

   /// Change or set the current resource tree with the new one provided in
   /// parameter.
-  ResourceNode* set_resources(const ResourceNode& root);
+  ResourceNode* set_resources(const ResourceNode& root) LIEF_LIFETIMEBOUND;

-  ResourceNode* set_resources(std::unique_ptr<ResourceNode> root);
+  ResourceNode*
+      set_resources(std::unique_ptr<ResourceNode> root) LIEF_LIFETIMEBOUND;

-  /// Return the ResourcesManager (class to manage resources more easily than the tree one)
-  result<ResourcesManager> resources_manager() const;
+  /// Return the ResourcesManager (class to manage resources more easily than the
+  /// tree one)
+  result<ResourcesManager> resources_manager() const LIEF_LIFETIMEBOUND;

   /// Return binary's section from its name.
-  /// If the secion can't be found, return a nullptr
+  /// If the section can't be found, return a nullptr
   ///
   /// @param[in] name Name of the Section
-  Section* get_section(const std::string& name) {
-    return const_cast<Section*>(static_cast<const Binary*>(this)->get_section(name));
+  Section* get_section(const std::string& name) LIEF_LIFETIMEBOUND {
+    return const_cast<Section*>(
+        static_cast<const Binary*>(this)->get_section(name)
+    );
   }
-  const Section* get_section(const std::string& name) const;
+  const Section* get_section(const std::string& name) const LIEF_LIFETIMEBOUND;

   /// Return the section associated with import table or a
   /// nullptr if the binary does not have an import table
   const Section* import_section() const;
   Section* import_section() {
-    return const_cast<Section*>(static_cast<const Binary*>(this)->import_section());
+    return const_cast<Section*>(
+        static_cast<const Binary*>(this)->import_section()
+    );
   }

   /// Delete the section with the given name
@@ -453,37 +481,40 @@ class LIEF_API Binary : public LIEF::Binary {
   void remove(const Section& section, bool clear = false);

   /// Add a section to the binary and return the section added.
-  Section* add_section(const Section& section);
+  Section* add_section(const Section& section) LIEF_LIFETIMEBOUND;

   /// Return an iterator over the PE's Relocation
-  it_relocations relocations() {
+  it_relocations relocations() LIEF_LIFETIMEBOUND {
     return relocations_;
   }

-  it_const_relocations relocations() const {
+  it_const_relocations relocations() const LIEF_LIFETIMEBOUND {
     return relocations_;
   }

   /// Add a new PE Relocation
-  Relocation& add_relocation(const Relocation& relocation);
+  Relocation& add_relocation(const Relocation& relocation) LIEF_LIFETIMEBOUND;

   /// Remove all the relocations
   void remove_all_relocations();

   /// Return an iterator over the DataDirectory present in the Binary
-  it_data_directories data_directories() {
+  it_data_directories data_directories() LIEF_LIFETIMEBOUND {
     return data_directories_;
   }

-  it_const_data_directories data_directories() const {
+  it_const_data_directories data_directories() const LIEF_LIFETIMEBOUND {
     return data_directories_;
   }

   /// Return the DataDirectory with the given type (or index)
-  DataDirectory* data_directory(DataDirectory::TYPES type) {
-    return const_cast<DataDirectory*>(static_cast<const Binary*>(this)->data_directory(type));
+  DataDirectory* data_directory(DataDirectory::TYPES type) LIEF_LIFETIMEBOUND {
+    return const_cast<DataDirectory*>(
+        static_cast<const Binary*>(this)->data_directory(type)
+    );
   }
-  const DataDirectory* data_directory(DataDirectory::TYPES type) const;
+  const DataDirectory*
+      data_directory(DataDirectory::TYPES type) const LIEF_LIFETIMEBOUND;

   /// Check if the current binary has the given DataDirectory::TYPES
   bool has(DataDirectory::TYPES type) const {
@@ -491,16 +522,16 @@ class LIEF_API Binary : public LIEF::Binary {
   }

   /// Return an iterator over the Debug entries
-  it_debug_entries debug() {
+  it_debug_entries debug() LIEF_LIFETIMEBOUND {
     return debug_;
   }

-  it_const_debug_entries debug() const {
+  it_const_debug_entries debug() const LIEF_LIFETIMEBOUND {
     return debug_;
   }

   /// Add a new debug entry
-  Debug* add_debug_info(const Debug& entry);
+  Debug* add_debug_info(const Debug& entry) LIEF_LIFETIMEBOUND;

   /// Remove a specific debug entry
   bool remove_debug(const Debug& entry);
@@ -509,24 +540,30 @@ class LIEF_API Binary : public LIEF::Binary {
   bool clear_debug();

   /// Return the CodeViewPDB object if present
-  const CodeViewPDB* codeview_pdb() const;
+  const CodeViewPDB* codeview_pdb() const LIEF_LIFETIMEBOUND;

-  /// Retrun the LoadConfiguration object or a nullptr if the binary does not
+  CodeViewPDB* codeview_pdb() LIEF_LIFETIMEBOUND {
+    return const_cast<CodeViewPDB*>(
+        static_cast<const Binary*>(this)->codeview_pdb()
+    );
+  }
+
+  /// Return the LoadConfiguration object or a nullptr if the binary does not
   /// use the LoadConfiguration
-  const LoadConfiguration* load_configuration() const {
+  const LoadConfiguration* load_configuration() const LIEF_LIFETIMEBOUND {
     return loadconfig_.get();
   }

-  LoadConfiguration* load_configuration() {
+  LoadConfiguration* load_configuration() LIEF_LIFETIMEBOUND {
     return loadconfig_.get();
   }

   /// Return the overlay content
-  span<const uint8_t> overlay() const {
+  span<const uint8_t> overlay() const LIEF_LIFETIMEBOUND {
     return overlay_;
   }

-  span<uint8_t> overlay() {
+  span<uint8_t> overlay() LIEF_LIFETIMEBOUND {
     return overlay_;
   }

@@ -536,11 +573,11 @@ class LIEF_API Binary : public LIEF::Binary {
   }

   /// Return the DOS stub content
-  span<const uint8_t> dos_stub() const {
+  span<const uint8_t> dos_stub() const LIEF_LIFETIMEBOUND {
     return dos_stub_;
   }

-  span<uint8_t> dos_stub() {
+  span<uint8_t> dos_stub() LIEF_LIFETIMEBOUND {
     return dos_stub_;
   }

@@ -550,11 +587,11 @@ class LIEF_API Binary : public LIEF::Binary {
   }

   /// Return a reference to the RichHeader object
-  RichHeader* rich_header() {
+  RichHeader* rich_header() LIEF_LIFETIMEBOUND {
     return rich_header_.get();
   }

-  const RichHeader* rich_header() const {
+  const RichHeader* rich_header() const LIEF_LIFETIMEBOUND {
     return rich_header_.get();
   }

@@ -567,22 +604,25 @@ class LIEF_API Binary : public LIEF::Binary {
   }

   /// Return an iterator over the binary imports
-  it_imports imports() {
+  it_imports imports() LIEF_LIFETIMEBOUND {
     return imports_;
   }

-  it_const_imports imports() const {
+  it_const_imports imports() const LIEF_LIFETIMEBOUND {
     return imports_;
   }

   /// Return the Import matching the provided name (case sensitive)
   ///
   /// If the import can't be found, it returns a nullptr
-  Import* get_import(const std::string& import_name) {
-    return const_cast<Import*>(static_cast<const Binary*>(this)->get_import(import_name));
+  Import* get_import(const std::string& import_name) LIEF_LIFETIMEBOUND {
+    return const_cast<Import*>(
+        static_cast<const Binary*>(this)->get_import(import_name)
+    );
   }

-  const Import* get_import(const std::string& import_name) const;
+  const Import*
+      get_import(const std::string& import_name) const LIEF_LIFETIMEBOUND;

   /// `True` if the binary imports the given library name
   bool has_import(const std::string& import_name) const {
@@ -605,10 +645,14 @@ class LIEF_API Binary : public LIEF::Binary {

   /// Returns the DelayImport matching the given name. If it can't be
   /// found, it returns a nullptr
-  DelayImport* get_delay_import(const std::string& import_name) {
-    return const_cast<DelayImport*>(static_cast<const Binary*>(this)->get_delay_import(import_name));
+  DelayImport*
+      get_delay_import(const std::string& import_name) LIEF_LIFETIMEBOUND {
+    return const_cast<DelayImport*>(
+        static_cast<const Binary*>(this)->get_delay_import(import_name)
+    );
   }
-  const DelayImport* get_delay_import(const std::string& import_name) const;
+  const DelayImport*
+      get_delay_import(const std::string& import_name) const LIEF_LIFETIMEBOUND;


   /// `True` if the binary delay-imports the given library name
@@ -616,15 +660,24 @@ class LIEF_API Binary : public LIEF::Binary {
     return get_delay_import(import_name) != nullptr;
   }

-  /// Add an imported library (i.e. `DLL`) to the binary
-  Import& add_import(const std::string& name) {
-    imports_.push_back(std::unique_ptr<Import>(new Import(name)));
-    return *imports_.back();
+  /// Add an imported library (i.e. `DLL`) to the binary.
+  ///
+  /// The second parameter `pos` defines where to insert the import.
+  /// If negative (default), the import is appended to the end of the list.
+  Import& add_import(const std::string& name,
+                     int32_t pos = -1) LIEF_LIFETIMEBOUND {
+    if (pos < 0) {
+      imports_.push_back(std::unique_ptr<Import>(new Import(name)));
+      return *imports_.back();
+    }
+    assert(pos >= 0);
+    return **imports_.insert(imports_.begin() + pos,
+                             std::unique_ptr<Import>(new Import(name)));
   }

   /// Remove the imported library with the given `name`
   ///
-  /// Return true if the deletion succeed, false otherwise.
+  /// Return true if the deletion succeeded, false otherwise.
   bool remove_import(const std::string& name);

   /// Remove all libraries in the binary
@@ -669,12 +722,14 @@ class LIEF_API Binary : public LIEF::Binary {
   /// @param[in] address        Address to patch
   /// @param[in] patch_value    Patch to apply
   /// @param[in] size           Size of the value in **bytes** (1, 2, ... 8)
-  /// @param[in] addr_type      Type of the Virtual address: VA or RVA. Default: Auto
-  void patch_address(uint64_t address, uint64_t patch_value, size_t size = sizeof(uint64_t),
+  /// @param[in] addr_type      Type of the Virtual address: VA or RVA. Default:
+  /// Auto
+  void patch_address(uint64_t address, uint64_t patch_value,
+                     size_t size = sizeof(uint64_t),
                      VA_TYPES addr_type = VA_TYPES::AUTO) override;


-  /// Fill the content at the provided with a fixed value
+  /// Fill the content at the provided address with a fixed value
   void fill_address(uint64_t address, size_t size, uint8_t value = 0,
                     VA_TYPES addr_type = VA_TYPES::AUTO);

@@ -682,12 +737,15 @@ class LIEF_API Binary : public LIEF::Binary {
   ///
   /// @param[in] virtual_address    Virtual address of the data to retrieve
   /// @param[in] size               Size in bytes of the data to retrieve
-  /// @param[in] addr_type          Type of the Virtual address: VA or RVA. Default: Auto
+  /// @param[in] addr_type          Type of the Virtual address: VA or RVA.
+  /// Default: Auto
   span<const uint8_t> get_content_from_virtual_address(
       uint64_t virtual_address, uint64_t size,
-      Binary::VA_TYPES addr_type = Binary::VA_TYPES::AUTO) const override;
+      Binary::VA_TYPES addr_type = Binary::VA_TYPES::AUTO
+  ) const LIEF_LIFETIMEBOUND override;

-  /// Return the binary's entrypoint (It is the same value as OptionalHeader::addressof_entrypoint
+  /// Return the binary's entrypoint (it is the same value as
+  /// OptionalHeader::addressof_entrypoint)
   uint64_t entrypoint() const override {
     return optional_header_.imagebase() + optional_header_.addressof_entrypoint();
   }
@@ -817,25 +875,25 @@ class LIEF_API Binary : public LIEF::Binary {

   /// Iterator over the exception (`_RUNTIME_FUNCTION`) functions
   ///
-  /// \warning This function requires that the option
+  /// @warning This function requires that the option
   /// LIEF::PE::ParserConfig::parse_exceptions was turned on (default is false)
   /// when parsing the binary
-  it_exceptions exceptions() {
+  it_exceptions exceptions() LIEF_LIFETIMEBOUND {
     return exceptions_;
   }

-  it_const_exceptions exceptions() const {
+  it_const_exceptions exceptions() const LIEF_LIFETIMEBOUND {
     return exceptions_;
   }

   /// Try to find the exception info at the given RVA
   ///
-  /// \warning This function requires that the option
+  /// @warning This function requires that the option
   /// LIEF::PE::ParserConfig::parse_exceptions was turned on (default is false)
   /// when parsing the binary
-  ExceptionInfo* find_exception_at(uint32_t rva);
+  ExceptionInfo* find_exception_at(uint32_t rva) LIEF_LIFETIMEBOUND;

-  const ExceptionInfo* find_exception_at(uint32_t rva) const {
+  const ExceptionInfo* find_exception_at(uint32_t rva) const LIEF_LIFETIMEBOUND {
     return const_cast<Binary*>(this)->find_exception_at(rva);
   }

@@ -853,7 +911,7 @@ class LIEF_API Binary : public LIEF::Binary {
   /// This can be used to get the alternative PE binary, targeting a different
   /// architectures.
   ///
-  /// \warning This function requires that the option
+  /// @warning This function requires that the option
   /// LIEF::PE::ParserConfig::parse_arm64x_binary was turned on (default is false)
   /// when parsing the binary
   const Binary* nested_pe_binary() const {
@@ -874,7 +932,7 @@ class LIEF_API Binary : public LIEF::Binary {
   std::ostream& print(std::ostream& os) const override;


-  /// \private
+  /// @private
   ///
   /// Should only be used for the Rust bindings
   LIEF_LOCAL std::unique_ptr<Binary> move_nested_pe_binary() {
diff --git a/deps/LIEF/include/LIEF/PE/Builder.hpp b/deps/LIEF/include/LIEF/PE/Builder.hpp
index f206ef68664..8efc7be78f1 100644
--- a/deps/LIEF/include/LIEF/PE/Builder.hpp
+++ b/deps/LIEF/include/LIEF/PE/Builder.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -16,7 +16,6 @@
 #ifndef LIEF_PE_BUILDER_H
 #define LIEF_PE_BUILDER_H

-#include <cstring>
 #include <string>
 #include <vector>
 #include <functional>
@@ -65,7 +64,7 @@ class LIEF_API Builder {
     bool exports = false;

     /// Whether the builder should regenerate the resources tree
-    bool resources =  true;
+    bool resources = true;

     /// Whether the builder should regenerate relocations
     bool relocations = true;
@@ -106,18 +105,17 @@ class LIEF_API Builder {
     std::string debug_section = ".debug";

     using resolved_iat_cbk_t =
-      std::function<void(Binary*, const Import*, const ImportEntry*, uint32_t)>;
+        std::function<void(Binary*, const Import*, const ImportEntry*, uint32_t)>;
     resolved_iat_cbk_t resolved_iat_cbk = nullptr;

-    /// \private
+    /// @private
     bool force_relocating = false;
   };

   Builder() = delete;
-  Builder(Binary& binary, const config_t& config) :
+  Builder(Binary& binary, config_t config) :
     binary_(&binary),
-    config_(config)
-  {}
+    config_(std::move(config)) {}

   ~Builder();

@@ -187,14 +185,15 @@ class LIEF_API Builder {
   static ok_error_t compute_resources_size(const ResourceNode& node,
                                            rsrc_sizing_info_t& info);

-  static ok_error_t construct_resource(
-      vector_iostream& ios, ResourceNode& node, rsrc_build_context_t& ctx);
+  static ok_error_t construct_resource(vector_iostream& ios, ResourceNode& node,
+                                       rsrc_build_context_t& ctx);

-  static ok_error_t construct_resource(
-      vector_iostream& ios, ResourceDirectory& dir, rsrc_build_context_t& ctx);
+  static ok_error_t construct_resource(vector_iostream& ios,
+                                       ResourceDirectory& dir,
+                                       rsrc_build_context_t& ctx);

-  static ok_error_t construct_resource(
-      vector_iostream& ios, ResourceData& dir, rsrc_build_context_t& ctx);
+  static ok_error_t construct_resource(vector_iostream& ios, ResourceData& dir,
+                                       rsrc_build_context_t& ctx);

   mutable vector_iostream ios_;
   Binary* binary_ = nullptr;
diff --git a/deps/LIEF/include/LIEF/PE/CodeIntegrity.hpp b/deps/LIEF/include/LIEF/PE/CodeIntegrity.hpp
index c963ae6868b..5181b6d90b8 100644
--- a/deps/LIEF/include/LIEF/PE/CodeIntegrity.hpp
+++ b/deps/LIEF/include/LIEF/PE/CodeIntegrity.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -18,6 +18,7 @@
 #include <ostream>
 #include <cstdint>

+#include "LIEF/compiler_attributes.hpp"
 #include "LIEF/errors.hpp"
 #include "LIEF/Object.hpp"
 #include "LIEF/visibility.h"
@@ -60,29 +61,30 @@ class LIEF_API CodeIntegrity : public Object {
     return reserved_;
   }

-  CodeIntegrity& flags(uint16_t flags) {
+  CodeIntegrity& flags(uint16_t flags) LIEF_LIFETIMEBOUND {
     flags_ = flags;
     return *this;
   }

-  CodeIntegrity& catalog(uint16_t catalog) {
+  CodeIntegrity& catalog(uint16_t catalog) LIEF_LIFETIMEBOUND {
     catalog_ = catalog;
     return *this;
   }

-  CodeIntegrity& catalog_offset(uint32_t catalog_offset) {
+  CodeIntegrity& catalog_offset(uint32_t catalog_offset) LIEF_LIFETIMEBOUND {
     catalog_offset_ = catalog_offset;
     return *this;
   }

-  CodeIntegrity& reserved(uint32_t reserved) {
+  CodeIntegrity& reserved(uint32_t reserved) LIEF_LIFETIMEBOUND {
     reserved_ = reserved;
     return *this;
   }

   void accept(Visitor& visitor) const override;

-  LIEF_API friend std::ostream& operator<<(std::ostream& os, const CodeIntegrity& entry);
+  LIEF_API friend std::ostream& operator<<(std::ostream& os,
+                                           const CodeIntegrity& entry);

   private:
   uint16_t flags_ = 0;
diff --git a/deps/LIEF/include/LIEF/PE/CodePage.hpp b/deps/LIEF/include/LIEF/PE/CodePage.hpp
index e35e755bc22..2f63d1e7cde 100644
--- a/deps/LIEF/include/LIEF/PE/CodePage.hpp
+++ b/deps/LIEF/include/LIEF/PE/CodePage.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -21,6 +21,8 @@
 namespace LIEF {
 namespace PE {

+// clang-format off
+
 /// Code page from https://docs.microsoft.com/en-us/windows/win32/intl/code-page-identifiers
 enum class CODE_PAGES : uint32_t  {
   IBM037                  = 37,    /**< IBM EBCDIC US-Canada */
diff --git a/deps/LIEF/include/LIEF/PE/DataDirectory.hpp b/deps/LIEF/include/LIEF/PE/DataDirectory.hpp
index 3ee16482b57..45e1e82e97d 100644
--- a/deps/LIEF/include/LIEF/PE/DataDirectory.hpp
+++ b/deps/LIEF/include/LIEF/PE/DataDirectory.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -48,7 +48,7 @@ class LIEF_API DataDirectory : public Object {
   public:
   static constexpr size_t DEFAULT_NB = 16;

-  enum class TYPES: uint32_t  {
+  enum class TYPES : uint32_t {
     EXPORT_TABLE = 0,
     IMPORT_TABLE,
     RESOURCE_TABLE,
@@ -70,8 +70,7 @@ class LIEF_API DataDirectory : public Object {
   };
   DataDirectory() = default;
   DataDirectory(TYPES type) :
-    type_{type}
-  {}
+    type_{type} {}

   DataDirectory(const details::pe_data_directory& header, TYPES type);

@@ -101,18 +100,18 @@ class LIEF_API DataDirectory : public Object {
   }

   /// Raw content (bytes) referenced by this data directory
-  span<const uint8_t> content() const {
+  span<const uint8_t> content() const LIEF_LIFETIMEBOUND {
     return const_cast<DataDirectory*>(this)->content();
   }

-  span<uint8_t> content();
+  span<uint8_t> content() LIEF_LIFETIMEBOUND;

   /// Section associated with the DataDirectory
-  Section* section() {
+  Section* section() LIEF_LIFETIMEBOUND {
     return section_;
   }

-  const Section* section() const {
+  const Section* section() const LIEF_LIFETIMEBOUND {
     return section_;
   }

@@ -131,12 +130,12 @@ class LIEF_API DataDirectory : public Object {

   void accept(Visitor& visitor) const override;

-  LIEF_API friend
-    std::ostream& operator<<(std::ostream& os, const DataDirectory& entry);
+  LIEF_API friend std::ostream& operator<<(std::ostream& os,
+                                           const DataDirectory& entry);

-  /// \private
+  /// @private
   LIEF_LOCAL
-    std::unique_ptr<SpanStream> stream(bool sized = true) const;
+  std::unique_ptr<SpanStream> stream(bool sized = true) const;

   private:
   uint32_t rva_ = 0;
@@ -150,4 +149,4 @@ LIEF_API const char* to_string(DataDirectory::TYPES e);
 }
 }

-#endif /* LIEF_PE_DATADIRECTORY_H */
+#endif
diff --git a/deps/LIEF/include/LIEF/PE/Debug.hpp b/deps/LIEF/include/LIEF/PE/Debug.hpp
index 2a6e59ba8d1..46e53f75a06 100644
--- a/deps/LIEF/include/LIEF/PE/Debug.hpp
+++ b/deps/LIEF/include/LIEF/PE/Debug.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/deps/LIEF/include/LIEF/PE/DelayImport.hpp b/deps/LIEF/include/LIEF/PE/DelayImport.hpp
index f9dd19c0044..9e3ea6281d7 100644
--- a/deps/LIEF/include/LIEF/PE/DelayImport.hpp
+++ b/deps/LIEF/include/LIEF/PE/DelayImport.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -40,15 +40,15 @@ class LIEF_API DelayImport : public Object {
   friend class Builder;

   public:
-  using entries_t        = std::vector<std::unique_ptr<DelayImportEntry>>;
-  using it_entries       = ref_iterator<entries_t&, DelayImportEntry*>;
-  using it_const_entries = const_ref_iterator<const entries_t&, const DelayImportEntry*>;
+  using entries_t = std::vector<std::unique_ptr<DelayImportEntry>>;
+  using it_entries = ref_iterator<entries_t&, DelayImportEntry*>;
+  using it_const_entries =
+      const_ref_iterator<const entries_t&, const DelayImportEntry*>;

   DelayImport() = default;
   DelayImport(const details::delay_imports& import, PE_TYPE type);
   DelayImport(std::string name) :
-    name_(std::move(name))
-  {}
+    name_(std::move(name)) {}

   ~DelayImport() override = default;

@@ -73,7 +73,7 @@ class LIEF_API DelayImport : public Object {
   }

   /// Return the library's name (e.g. `kernel32.dll`)
-  const std::string& name() const {
+  const std::string& name() const LIEF_LIFETIMEBOUND {
     return name_;
   }
   void name(std::string name) {
@@ -121,7 +121,7 @@ class LIEF_API DelayImport : public Object {
   ///
   /// According to the PE specifications, this table is an
   /// exact copy of the delay import address table that can be
-  /// used to to restore the original IAT the case of unloading.
+  /// used to restore the original IAT in the case of unloading.
   uint32_t uiat() const {
     return unload_iat_;
   }
@@ -138,18 +138,19 @@ class LIEF_API DelayImport : public Object {
   }

   /// Iterator over the DelayImport's entries (DelayImportEntry)
-  it_entries entries() {
+  it_entries entries() LIEF_LIFETIMEBOUND {
     return entries_;
   }

   /// Iterator over the DelayImport's entries (DelayImportEntry)
-  it_const_entries entries() const {
+  it_const_entries entries() const LIEF_LIFETIMEBOUND {
     return entries_;
   }

   void accept(Visitor& visitor) const override;

-  LIEF_API friend std::ostream& operator<<(std::ostream& os, const DelayImport& entry);
+  LIEF_API friend std::ostream& operator<<(std::ostream& os,
+                                           const DelayImport& entry);

   private:
   uint32_t attribute_ = 0;
diff --git a/deps/LIEF/include/LIEF/PE/DelayImportEntry.hpp b/deps/LIEF/include/LIEF/PE/DelayImportEntry.hpp
index f082ea0518e..a598c3eface 100644
--- a/deps/LIEF/include/LIEF/PE/DelayImportEntry.hpp
+++ b/deps/LIEF/include/LIEF/PE/DelayImportEntry.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -28,13 +28,14 @@ namespace PE {
 class Parser;
 class Builder;

-/// Class that represents an entry (i.e. an import) in the delay import table (DelayImport).
+/// Class that represents an entry (i.e. an import) in the delay import table
+/// (DelayImport).
 ///
-/// It extends the LIEF::Symbol generic class that exposes the LIEF::Symbol::name and
-/// LIEF::Symbol::value API.
+/// It extends the LIEF::Symbol generic class that exposes the LIEF::Symbol::name
+/// and LIEF::Symbol::value API.
 ///
-/// The meaning of LIEF::Symbol::value for this PE object is the address (as an RVA) in the IAT
-/// where the resolution should take place.
+/// The meaning of LIEF::Symbol::value for this PE object is the address (as an
+/// RVA) in the IAT where the resolution should take place.
 class LIEF_API DelayImportEntry : public LIEF::Symbol {
   friend class Parser;
   friend class Builder;
@@ -43,8 +44,7 @@ class LIEF_API DelayImportEntry : public LIEF::Symbol {
   DelayImportEntry() = default;
   DelayImportEntry(uint64_t data, PE_TYPE type) :
     data_(data),
-    type_(type)
-  {}
+    type_(type) {}

   DelayImportEntry(const DelayImportEntry&) = default;
   DelayImportEntry& operator=(const DelayImportEntry&) = default;
@@ -94,17 +94,18 @@ class LIEF_API DelayImportEntry : public LIEF::Symbol {

   void accept(Visitor& visitor) const override;

-  LIEF_API friend std::ostream& operator<<(std::ostream& os, const DelayImportEntry& entry);
+  LIEF_API friend std::ostream& operator<<(std::ostream& os,
+                                           const DelayImportEntry& entry);

   private:
   uint64_t data_ = 0;
   uint16_t hint_ = 0;
   uint64_t iat_offset_ = 0;
   uint64_t iat_value_ = 0;
-  PE_TYPE  type_ = PE_TYPE::PE32_PLUS;
+  PE_TYPE type_ = PE_TYPE::PE32_PLUS;
 };

 }
 }

-#endif /* LIEF_PE_DELAY_IMPORT_ENTRY_H */
+#endif
diff --git a/deps/LIEF/include/LIEF/PE/DosHeader.hpp b/deps/LIEF/include/LIEF/PE/DosHeader.hpp
index 377de46d687..d8c337cef8f 100644
--- a/deps/LIEF/include/LIEF/PE/DosHeader.hpp
+++ b/deps/LIEF/include/LIEF/PE/DosHeader.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -32,12 +32,12 @@ struct pe_dos_header;
 }

 /// Class which represents the DosHeader, the **first**
-/// structure presents at the beginning of a PE file.
+/// structure present at the beginning of a PE file.
 ///
 /// Most of the attributes of this structures are no longer relevant.
 class LIEF_API DosHeader : public Object {
   public:
-  using reserved_t  = std::array<uint16_t, 4>;
+  using reserved_t = std::array<uint16_t, 4>;
   using reserved2_t = std::array<uint16_t, 10>;

   static constexpr uint16_t MAGIC = 0x5a4d; // MZ
@@ -207,36 +207,36 @@ class LIEF_API DosHeader : public Object {

   void accept(Visitor& visitor) const override;

-  LIEF_API friend std::ostream& operator<<(std::ostream& os, const DosHeader& entry);
+  LIEF_API friend std::ostream& operator<<(std::ostream& os,
+                                           const DosHeader& entry);

   static DosHeader create(PE_TYPE type);

-  /// \private
+  /// @private
   LIEF_LOCAL DosHeader() = default;

   private:
-  uint16_t    magic_ = 0;
-  uint16_t    used_bytes_in_last_page_ = 0;
-  uint16_t    file_sz_in_pages_ = 0;
-  uint16_t    nb_relocations_ = 0;
-  uint16_t    header_sz_in_paragraphs_ = 0;
-  uint16_t    min_extra_paragraphs_ = 0;
-  uint16_t    max_extra_paragraphs_ = 0;
-  uint16_t    init_relative_ss_ = 0;
-  uint16_t    init_sp_ = 0;
-  uint16_t    checksum_ = 0;
-  uint16_t    init_ip_ = 0;
-  uint16_t    init_rel_cs_ = 0;
-  uint16_t    addr_reloc_table_ = 0;
-  uint16_t    overlay_number_ = 0;
-  reserved_t  reserved_ = {0};
-  uint16_t    oem_id_ = 0;
-  uint16_t    oem_info_ = 0;
+  uint16_t magic_ = 0;
+  uint16_t used_bytes_in_last_page_ = 0;
+  uint16_t file_sz_in_pages_ = 0;
+  uint16_t nb_relocations_ = 0;
+  uint16_t header_sz_in_paragraphs_ = 0;
+  uint16_t min_extra_paragraphs_ = 0;
+  uint16_t max_extra_paragraphs_ = 0;
+  uint16_t init_relative_ss_ = 0;
+  uint16_t init_sp_ = 0;
+  uint16_t checksum_ = 0;
+  uint16_t init_ip_ = 0;
+  uint16_t init_rel_cs_ = 0;
+  uint16_t addr_reloc_table_ = 0;
+  uint16_t overlay_number_ = 0;
+  reserved_t reserved_ = {0};
+  uint16_t oem_id_ = 0;
+  uint16_t oem_info_ = 0;
   reserved2_t reserved2_ = {0};
-  uint32_t    addr_new_exe_header_ = 0;
+  uint32_t addr_new_exe_header_ = 0;
 };
 }
 }

 #endif
-
diff --git a/deps/LIEF/include/LIEF/PE/EnumToString.hpp b/deps/LIEF/include/LIEF/PE/EnumToString.hpp
index 017f60a6d80..f4a84a23bae 100644
--- a/deps/LIEF/include/LIEF/PE/EnumToString.hpp
+++ b/deps/LIEF/include/LIEF/PE/EnumToString.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -17,7 +17,6 @@
 #define LIEF_PE_ENUM_TO_STRING_H

 #include <cstdint>
-#include <cstddef>

 #include "LIEF/visibility.h"

@@ -33,5 +32,3 @@ LIEF_API const char* to_string(ALGORITHMS e);
 } // namespace PE
 } // namespace LIEF
 #endif
-
-
diff --git a/deps/LIEF/include/LIEF/PE/ExceptionInfo.hpp b/deps/LIEF/include/LIEF/PE/ExceptionInfo.hpp
index 5dce234bd24..b4f7bb447ea 100644
--- a/deps/LIEF/include/LIEF/PE/ExceptionInfo.hpp
+++ b/deps/LIEF/include/LIEF/PE/ExceptionInfo.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -49,17 +49,16 @@ class LIEF_API ExceptionInfo {
   /// Arch discriminator for the subclasses
   enum class ARCH {
     UNKNOWN = 0,
-    ARM64, X86_64
+    ARM64,
+    X86_64,
   };

   ExceptionInfo(ARCH arch, uint64_t rva) :
     arch_(arch),
-    rva_(rva)
-  {}
+    rva_(rva) {}

   ExceptionInfo(ARCH arch) :
-    ExceptionInfo(arch, /*rva=*/0)
-  {}
+    ExceptionInfo(arch, /*rva=*/0) {}

   /// Target architecture of this exception
   ARCH arch() const {
@@ -97,14 +96,13 @@ class LIEF_API ExceptionInfo {
     return const_cast<ExceptionInfo*>(this)->as<T>();
   }

-  /// \private
+  /// @private
   void offset(uint64_t value) {
     offset_ = value;
   }

-  LIEF_API friend
-    std::ostream& operator<<(std::ostream& os, const ExceptionInfo& info)
-  {
+  LIEF_API friend std::ostream& operator<<(std::ostream& os,
+                                           const ExceptionInfo& info) {
     os << info.to_string();
     return os;
   }
diff --git a/deps/LIEF/include/LIEF/PE/Export.hpp b/deps/LIEF/include/LIEF/PE/Export.hpp
index 59d542716ca..4fc2978e779 100644
--- a/deps/LIEF/include/LIEF/PE/Export.hpp
+++ b/deps/LIEF/include/LIEF/PE/Export.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -41,23 +41,22 @@ class LIEF_API Export : public Object {
   friend class Parser;

   public:
-  using entries_t        = std::vector<std::unique_ptr<ExportEntry>>;
-  using it_entries       = ref_iterator<entries_t&, ExportEntry*>;
-  using it_const_entries = const_ref_iterator<const entries_t&, const ExportEntry*>;
+  using entries_t = std::vector<std::unique_ptr<ExportEntry>>;
+  using it_entries = ref_iterator<entries_t&, ExportEntry*>;
+  using it_const_entries =
+      const_ref_iterator<const entries_t&, const ExportEntry*>;

   Export() = default;

   Export(std::string name, const std::vector<ExportEntry>& entries) :
-    name_(std::move(name))
-  {
+    name_(std::move(name)) {
     for (const ExportEntry& E : entries) {
       add_entry(E);
     }
   }

   Export(std::string name) :
-    Export(std::move(name), {})
-  {}
+    Export(std::move(name), {}) {}

   Export(const details::pe_export_directory_table& header);

@@ -101,11 +100,11 @@ class LIEF_API Export : public Object {
   }

   /// Iterator over the ExportEntry
-  it_entries entries() {
+  it_entries entries() LIEF_LIFETIMEBOUND {
     return entries_;
   }

-  it_const_entries entries() const {
+  it_const_entries entries() const LIEF_LIFETIMEBOUND {
     return entries_;
   }

@@ -164,30 +163,36 @@ class LIEF_API Export : public Object {
   }

   /// Find the export entry with the given name
-  const ExportEntry* find_entry(const std::string& name) const;
+  const ExportEntry* find_entry(const std::string& name) const LIEF_LIFETIMEBOUND;

-  ExportEntry* find_entry(const std::string& name) {
-    return const_cast<ExportEntry*>(static_cast<const Export*>(this)->find_entry(name));
+  ExportEntry* find_entry(const std::string& name) LIEF_LIFETIMEBOUND {
+    return const_cast<ExportEntry*>(
+        static_cast<const Export*>(this)->find_entry(name)
+    );
   }

   /// Find the export entry with the given ordinal number
-  const ExportEntry* find_entry(uint32_t ordinal) const;
+  const ExportEntry* find_entry(uint32_t ordinal) const LIEF_LIFETIMEBOUND;

-  ExportEntry* find_entry(uint32_t ordinal) {
-    return const_cast<ExportEntry*>(static_cast<const Export*>(this)->find_entry(ordinal));
+  ExportEntry* find_entry(uint32_t ordinal) LIEF_LIFETIMEBOUND {
+    return const_cast<ExportEntry*>(
+        static_cast<const Export*>(this)->find_entry(ordinal)
+    );
   }

   /// Find the export entry at the provided RVA
-  const ExportEntry* find_entry_at(uint32_t rva) const;
+  const ExportEntry* find_entry_at(uint32_t rva) const LIEF_LIFETIMEBOUND;

-  ExportEntry* find_entry_at(uint32_t rva) {
-    return const_cast<ExportEntry*>(static_cast<const Export*>(this)->find_entry_at(rva));
+  ExportEntry* find_entry_at(uint32_t rva) LIEF_LIFETIMEBOUND {
+    return const_cast<ExportEntry*>(
+        static_cast<const Export*>(this)->find_entry_at(rva)
+    );
   }

   /// Add the given export and return the newly created and added export
-  ExportEntry& add_entry(const ExportEntry& exp);
+  ExportEntry& add_entry(const ExportEntry& exp) LIEF_LIFETIMEBOUND;

-  ExportEntry& add_entry(std::string name, uint32_t rva) {
+  ExportEntry& add_entry(std::string name, uint32_t rva) LIEF_LIFETIMEBOUND {
     return add_entry(ExportEntry(std::move(name), rva));
   }

@@ -234,4 +239,4 @@ class LIEF_API Export : public Object {
 }
 }

-#endif /* PE_EXPORT_H */
+#endif
diff --git a/deps/LIEF/include/LIEF/PE/ExportEntry.hpp b/deps/LIEF/include/LIEF/PE/ExportEntry.hpp
index b6d110af24f..2f717c58608 100644
--- a/deps/LIEF/include/LIEF/PE/ExportEntry.hpp
+++ b/deps/LIEF/include/LIEF/PE/ExportEntry.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -48,7 +48,8 @@ class LIEF_API ExportEntry : public LIEF::Symbol {
       return library + '.' + function;
     }

-    LIEF_API friend std::ostream& operator<<(std::ostream& os, const forward_information_t& info) {
+    LIEF_API friend std::ostream& operator<<(std::ostream& os,
+                                             const forward_information_t& info) {
       os << info.key();
       return os;
     }
@@ -56,18 +57,16 @@ class LIEF_API ExportEntry : public LIEF::Symbol {

   public:
   ExportEntry() = default;
-  ExportEntry(uint32_t address, bool is_extern,
-              uint16_t ordinal, uint32_t function_rva) :
+  ExportEntry(uint32_t address, bool is_extern, uint16_t ordinal,
+              uint32_t function_rva) :
     function_rva_{function_rva},
     ordinal_{ordinal},
     address_{address},
-    is_extern_{is_extern}
-  {}
+    is_extern_{is_extern} {}

   ExportEntry(std::string name, uint32_t rva) :
     LIEF::Symbol(std::move(name)),
-    address_(rva)
-  {}
+    address_(rva) {}

   ExportEntry(const ExportEntry&) = default;
   ExportEntry& operator=(const ExportEntry&) = default;
@@ -91,7 +90,7 @@ class LIEF_API ExportEntry : public LIEF::Symbol {

   /// Address of the current exported function in the DLL.
   ///
-  /// \warning If this entry is **external** to the DLL then it returns 0
+  /// @warning If this entry is **external** to the DLL then it returns 0
   ///          and the external address is returned by function_rva()
   uint32_t address() const {
     return address_;
@@ -133,15 +132,16 @@ class LIEF_API ExportEntry : public LIEF::Symbol {
     address(static_cast<uint32_t>(value));
   }

-  void set_forward_info(std::string lib, std::string function)  {
-    forward_info_.library =  std::move(lib);
+  void set_forward_info(std::string lib, std::string function) {
+    forward_info_.library = std::move(lib);
     forward_info_.function = std::move(function);
   }

   void accept(Visitor& visitor) const override;


-  LIEF_API friend std::ostream& operator<<(std::ostream& os, const ExportEntry& exportEntry);
+  LIEF_API friend std::ostream& operator<<(std::ostream& os,
+                                           const ExportEntry& exportEntry);

   private:
   uint32_t function_rva_ = 0;
@@ -150,10 +150,9 @@ class LIEF_API ExportEntry : public LIEF::Symbol {
   bool is_extern_ = false;

   forward_information_t forward_info_;
-
 };

 }
 }

-#endif /* PE_EXPORTENTRY_H */
+#endif
diff --git a/deps/LIEF/include/LIEF/PE/Factory.hpp b/deps/LIEF/include/LIEF/PE/Factory.hpp
index 819d2815ee7..7df1c8e9928 100644
--- a/deps/LIEF/include/LIEF/PE/Factory.hpp
+++ b/deps/LIEF/include/LIEF/PE/Factory.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -34,7 +34,7 @@ class LIEF_API Factory {
   Factory(Factory&&);
   Factory& operator=(Factory&&);

-  /// Initiate the factory to construct a PE which the given type
+  /// Initiate the factory to construct a PE with the given type
   static std::unique_ptr<Factory> create(PE_TYPE type);

   Factory& add_section(const Section& section) {
@@ -76,8 +76,7 @@ class LIEF_API Factory {

   protected:
   Factory() :
-    pe_(std::unique_ptr<Binary>(new Binary{}))
-  {}
+    pe_(std::unique_ptr<Binary>(new Binary{})) {}
   std::unique_ptr<Binary> process();

   ok_error_t check_overlapping() const;
@@ -93,4 +92,3 @@ class LIEF_API Factory {
 }
 }
 #endif
-
diff --git a/deps/LIEF/include/LIEF/PE/Header.hpp b/deps/LIEF/include/LIEF/PE/Header.hpp
index e598a5e9eba..42f87b9913d 100644
--- a/deps/LIEF/include/LIEF/PE/Header.hpp
+++ b/deps/LIEF/include/LIEF/PE/Header.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -37,6 +37,7 @@ class LIEF_API Header : public Object {
   public:
   using signature_t = std::array<uint8_t, /* PE Magic */ 4>;

+  // clang-format off
   enum class MACHINE_TYPES {
     UNKNOWN     = 0x0,
     ALPHA       = 0x184 , /**< Alpha AXP, 32-bit address space */
@@ -72,40 +73,35 @@ class LIEF_API Header : public Object {
     ARM64X      = 0xa64e,
     CHPE_X86    = 0x3a64,
   };
+  // clang-format on

   static bool is_known_machine(uint16_t machine);

   static bool is_arm(MACHINE_TYPES ty) {
     switch (ty) {
-      default:
-        return false;
+      default: return false;
       case MACHINE_TYPES::ARM:
       case MACHINE_TYPES::THUMB:
-      case MACHINE_TYPES::ARMNT:
-        return true;
+      case MACHINE_TYPES::ARMNT: return true;
     }
     return false;
   }

   static bool is_riscv(MACHINE_TYPES ty) {
     switch (ty) {
-      default:
-        return false;
+      default: return false;
       case MACHINE_TYPES::RISCV32:
       case MACHINE_TYPES::RISCV64:
-      case MACHINE_TYPES::RISCV128:
-        return true;
+      case MACHINE_TYPES::RISCV128: return true;
     }
     return false;
   }

   static bool is_loonarch(MACHINE_TYPES ty) {
     switch (ty) {
-      default:
-        return false;
+      default: return false;
       case MACHINE_TYPES::LOONGARCH32:
-      case MACHINE_TYPES::LOONGARCH64:
-        return true;
+      case MACHINE_TYPES::LOONGARCH64: return true;
     }
     return false;
   }
@@ -129,47 +125,75 @@ class LIEF_API Header : public Object {

   static bool is_mips(MACHINE_TYPES ty) {
     switch (ty) {
-      default:
-        return false;
+      default: return false;
       case MACHINE_TYPES::MIPS16:
       case MACHINE_TYPES::MIPSFPU:
       case MACHINE_TYPES::MIPSFPU16:
       case MACHINE_TYPES::R4000:
-      case MACHINE_TYPES::WCEMIPSV2:
-        return true;
+      case MACHINE_TYPES::WCEMIPSV2: return true;
     }
     return false;
   }

   static bool is_ppc(MACHINE_TYPES ty) {
     switch (ty) {
-      default:
-        return false;
+      default: return false;
       case MACHINE_TYPES::POWERPC:
       case MACHINE_TYPES::POWERPCFP:
-      case MACHINE_TYPES::POWERPCBE:
-        return true;
+      case MACHINE_TYPES::POWERPCBE: return true;
     }
     return false;
   }

   enum class CHARACTERISTICS {
-    NONE                    = 0x0000,
-    RELOCS_STRIPPED         = 0x0001, /**< The file does not contain base relocations and must be loaded at its preferred base. If this cannot be done, the loader will error.*/
-    EXECUTABLE_IMAGE        = 0x0002, /**< File is executable (i.e. no unresolved externel references). */
-    LINE_NUMS_STRIPPED      = 0x0004, /**< COFF line numbers have been stripped. This is deprecated and should be 0 */
-    LOCAL_SYMS_STRIPPED     = 0x0008, /**< COFF symbol table entries for local symbols have been removed. This is deprecated and should be 0.*/
-    AGGRESSIVE_WS_TRIM      = 0x0010, /**< Aggressively trim working set. This is deprecated and must be 0. */
-    LARGE_ADDRESS_AWARE     = 0x0020, /**< Image can handle > 2GiB addresses. */
-    BYTES_REVERSED_LO       = 0x0080, /**< Little endian: the LSB precedes the MSB in memory. This is deprecated and should be 0.*/
-    NEED_32BIT_MACHINE      = 0x0100, /**< Machine is based on a 32bit word architecture. */
-    DEBUG_STRIPPED          = 0x0200, /**< Debugging info has been removed. */
-    REMOVABLE_RUN_FROM_SWAP = 0x0400, /**< If the image is on removable media, fully load it and copy it to swap. */
-    NET_RUN_FROM_SWAP       = 0x0800, /**< If the image is on network media, fully load it and copy it to swap. */
-    SYSTEM                  = 0x1000, /**< The image file is a system file, not a user program.*/
-    DLL                     = 0x2000, /**< The image file is a DLL. */
-    UP_SYSTEM_ONLY          = 0x4000, /**< This file should only be run on a uniprocessor machine. */
-    BYTES_REVERSED_HI       = 0x8000  /**< Big endian: the MSB precedes the LSB in memory. This is deprecated */
+    NONE = 0x0000,
+    /// The file does not contain base relocations and must be loaded at its
+    /// preferred base. If this cannot be done, the loader will error.
+    RELOCS_STRIPPED = 0x0001,
+
+    /// File is executable (i.e. no unresolved external references).
+    EXECUTABLE_IMAGE = 0x0002,
+
+    /// COFF line numbers have been stripped. This is deprecated and should be 0
+    LINE_NUMS_STRIPPED = 0x0004,
+
+    /// COFF symbol table entries for local symbols have been removed. This is
+    /// deprecated and should be 0.
+    LOCAL_SYMS_STRIPPED = 0x0008,
+
+    /// Aggressively trim working set. This is deprecated and must be 0.
+    AGGRESSIVE_WS_TRIM = 0x0010,
+
+    /// Image can handle > 2GiB addresses.
+    LARGE_ADDRESS_AWARE = 0x0020,
+
+    /// Little endian: the LSB precedes the MSB in memory. This is deprecated and
+    /// should be 0.
+    BYTES_REVERSED_LO = 0x0080,
+
+    /// Machine is based on a 32bit word architecture.
+    NEED_32BIT_MACHINE = 0x0100,
+
+    /// Debugging info has been removed.
+    DEBUG_STRIPPED = 0x0200,
+
+    /// If the image is on removable media, fully load it and copy it to swap.
+    REMOVABLE_RUN_FROM_SWAP = 0x0400,
+
+    /// If the image is on network media, fully load it and copy it to swap.
+    NET_RUN_FROM_SWAP = 0x0800,
+
+    /// The image file is a system file, not a user program.
+    SYSTEM = 0x1000,
+
+    /// The image file is a DLL.
+    DLL = 0x2000,
+
+    /// This file should only be run on a uniprocessor machine.
+    UP_SYSTEM_ONLY = 0x4000,
+
+    /// Big endian: the MSB precedes the LSB in memory. This is deprecated
+    BYTES_REVERSED_HI = 0x8000,
   };
   static Header create(PE_TYPE type);

@@ -202,22 +226,26 @@ class LIEF_API Header : public Object {

   /// The offset of the **COFF** symbol table.
   ///
-  /// This value should be zero for an image because COFF debugging information is deprecated.
+  /// This value should be zero for an image because COFF debugging information is
+  /// deprecated.
   uint32_t pointerto_symbol_table() const {
     return pointerto_symtab_;
   }

-  /// The number of entries in the symbol table. This data can be used to locate the string table
-  /// which immediately follows the symbol table.
+  /// The number of entries in the symbol table. This data can be used to locate
+  /// the string table which immediately follows the symbol table.
   ///
-  /// This value should be zero for an image because COFF debugging information is deprecated.
+  /// This value should be zero for an image because COFF debugging information is
+  /// deprecated.
   uint32_t numberof_symbols() const {
     return nb_symbols_;
   }

-  /// Size of the OptionalHeader **AND** the data directories which follows this header.
+  /// Size of the OptionalHeader **AND** the data directories which follows this
+  /// header.
   ///
-  /// This value is equivalent to: ``sizeof(pe_optional_header) + NB_DATA_DIR * sizeof(data_directory)``
+  /// This value is equivalent to: ``sizeof(pe_optional_header) + NB_DATA_DIR *
+  /// sizeof(data_directory)``
   ///
   /// This size **should** be either:
   /// * 0xE0 (224) for a PE32  (32 bits)
@@ -283,7 +311,7 @@ class LIEF_API Header : public Object {

   LIEF_API friend std::ostream& operator<<(std::ostream& os, const Header& entry);

-  /// \private
+  /// @private
   LIEF_LOCAL Header() = default;

   private:
diff --git a/deps/LIEF/include/LIEF/PE/Import.hpp b/deps/LIEF/include/LIEF/PE/Import.hpp
index aa2e45b6e96..5bf07e93b33 100644
--- a/deps/LIEF/include/LIEF/PE/Import.hpp
+++ b/deps/LIEF/include/LIEF/PE/Import.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -43,14 +43,14 @@ class LIEF_API Import : public Object {
   friend class Builder;

   public:
-  using entries_t        = std::vector<std::unique_ptr<ImportEntry>>;
-  using it_entries       = ref_iterator<entries_t&, ImportEntry*>;
-  using it_const_entries = const_ref_iterator<const entries_t&, const ImportEntry*>;
+  using entries_t = std::vector<std::unique_ptr<ImportEntry>>;
+  using it_entries = ref_iterator<entries_t&, ImportEntry*>;
+  using it_const_entries =
+      const_ref_iterator<const entries_t&, const ImportEntry*>;

   Import(const details::pe_import& import);
   Import(std::string name) :
-    name_(std::move(name))
-  {}
+    name_(std::move(name)) {}
   Import() = default;
   ~Import() override = default;

@@ -72,11 +72,11 @@ class LIEF_API Import : public Object {
   }

   /// Iterator over the PE::ImportEntry
-  it_const_entries entries() const {
+  it_const_entries entries() const LIEF_LIFETIMEBOUND {
     return entries_;
   }

-  it_entries entries() {
+  it_entries entries() LIEF_LIFETIMEBOUND {
     return entries_;
   }

@@ -84,31 +84,33 @@ class LIEF_API Import : public Object {
   /// **identical** to the content of the Import Lookup Table (`ILT`) until the
   /// image is bound.
   ///
-  /// \warning This address could change when re-building the binary
+  /// @warning This address could change when re-building the binary
   uint32_t import_address_table_rva() const {
     return iat_rva_;
   }

   /// Return the relative virtual address of the import lookup table.
   ///
-  /// \warning This address could change when re-building the binary
+  /// @warning This address could change when re-building the binary
   uint32_t import_lookup_table_rva() const {
     return ilt_rva_;
   }

   /// Return the Function's RVA from the import address table (`IAT`)
   ///
-  /// \warning This address could change when re-building the binary
+  /// @warning This address could change when re-building the binary
   result<uint32_t> get_function_rva_from_iat(const std::string& function) const;

   /// Return the imported function with the given name
-  ImportEntry* get_entry(const std::string& name) {
-    return const_cast<ImportEntry*>(static_cast<const Import*>(this)->get_entry(name));
+  ImportEntry* get_entry(const std::string& name) LIEF_LIFETIMEBOUND {
+    return const_cast<ImportEntry*>(
+        static_cast<const Import*>(this)->get_entry(name)
+    );
   }
-  const ImportEntry* get_entry(const std::string& name) const;
+  const ImportEntry* get_entry(const std::string& name) const LIEF_LIFETIMEBOUND;

   /// Return the library's name (e.g. `kernel32.dll`)
-  const std::string& name() const {
+  const std::string& name() const LIEF_LIFETIMEBOUND {
     return name_;
   }

@@ -126,46 +128,46 @@ class LIEF_API Import : public Object {
   /// It should be the one at index PE::DataDirectory::TYPES::IMPORT_TABLE
   ///
   /// If the data directory can't be found, return a nullptr
-  DataDirectory* directory() {
+  DataDirectory* directory() LIEF_LIFETIMEBOUND {
     return directory_;
   }

-  const DataDirectory* directory() const {
+  const DataDirectory* directory() const LIEF_LIFETIMEBOUND {
     return directory_;
   }

-  /// Return the PE::DataDirectory associated associated with the IAT.
+  /// Return the PE::DataDirectory associated with the IAT.
   /// It should be the one at index PE::DataDirectory::TYPES::IAT
   ///
   /// If the data directory can't be found, return a nullptr
-  DataDirectory* iat_directory() {
+  DataDirectory* iat_directory() LIEF_LIFETIMEBOUND {
     return iat_directory_;
   }

-  const DataDirectory* iat_directory() const {
+  const DataDirectory* iat_directory() const LIEF_LIFETIMEBOUND {
     return iat_directory_;
   }

   /// Add a new import entry (i.e. an imported function)
-  ImportEntry& add_entry(ImportEntry entry) {
-    entries_.emplace_back(new ImportEntry(std::move(entry)));
+  ImportEntry& add_entry(const ImportEntry& entry) LIEF_LIFETIMEBOUND {
+    entries_.emplace_back(new ImportEntry(entry));
     return *entries_.back();
   }

   /// Add a new import entry with the given name (i.e. an imported function)
-  ImportEntry& add_entry(const std::string& name) {
+  ImportEntry& add_entry(const std::string& name) LIEF_LIFETIMEBOUND {
     entries_.emplace_back(new ImportEntry(name));
-  return *entries_.back();
+    return *entries_.back();
   }

   /// Remove the import entry with the given name.
   ///
-  /// Return true if the deletion succeed, false otherwise
+  /// Return true if the deletion succeeded, false otherwise
   bool remove_entry(const std::string& name);

   /// Remove the import entry with the given ordinal number
   ///
-  /// Return true if the deletion succeed, false otherwise
+  /// Return true if the deletion succeeded, false otherwise
   bool remove_entry(uint32_t ordinal);

   void import_lookup_table_rva(uint32_t rva) {
@@ -176,7 +178,7 @@ class LIEF_API Import : public Object {
     iat_rva_ = rva;
   }

-  /// \private
+  /// @private
   LIEF_LOCAL size_t nb_original_func() const {
     return nb_original_func_;
   }
diff --git a/deps/LIEF/include/LIEF/PE/ImportEntry.hpp b/deps/LIEF/include/LIEF/PE/ImportEntry.hpp
index 57744b2adc9..500cdbddd0a 100644
--- a/deps/LIEF/include/LIEF/PE/ImportEntry.hpp
+++ b/deps/LIEF/include/LIEF/PE/ImportEntry.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -31,8 +31,8 @@ class Builder;

 /// Class that represents an entry (i.e. an import) in the import table (Import).
 ///
-/// It extends the LIEF::Symbol generic class that exposes the LIEF::Symbol::name and
-/// LIEF::Symbol::value API
+/// It extends the LIEF::Symbol generic class that exposes the LIEF::Symbol::name
+/// and LIEF::Symbol::value API
 class LIEF_API ImportEntry : public LIEF::Symbol {
   friend class Parser;
   friend class Builder;
@@ -41,8 +41,8 @@ class LIEF_API ImportEntry : public LIEF::Symbol {
   ImportEntry() = default;

   ImportEntry(uint64_t data, PE_TYPE type) :
-    data_(data), type_(type)
-  {}
+    data_(data),
+    type_(type) {}

   ImportEntry(std::string name) {
     this->name(std::move(name));
@@ -82,12 +82,20 @@ class LIEF_API ImportEntry : public LIEF::Symbol {
     return iat_value_;
   }

+  void iat_value(uint64_t value) {
+    iat_value_ = value;
+  }
+
   /// Original value in the import lookup table.
   /// This value should match the iat_value().
   uint64_t ilt_value() const {
     return ilt_value_;
   }

+  void ilt_value(uint64_t value) {
+    ilt_value_ = value;
+  }
+
   /// Raw value
   uint64_t data() const {
     return data_;
@@ -104,9 +112,10 @@ class LIEF_API ImportEntry : public LIEF::Symbol {

   void accept(Visitor& visitor) const override;

-  LIEF_API friend std::ostream& operator<<(std::ostream& os, const ImportEntry& entry);
+  LIEF_API friend std::ostream& operator<<(std::ostream& os,
+                                           const ImportEntry& entry);

-  /// \private Internal use **only**
+  /// @private Internal use **only**
   LIEF_LOCAL void iat_address(uint64_t rva) {
     rva_ = rva;
   }
@@ -117,10 +126,10 @@ class LIEF_API ImportEntry : public LIEF::Symbol {
   uint64_t iat_value_ = 0;
   uint64_t ilt_value_ = 0;
   uint64_t rva_ = 0;
-  PE_TYPE  type_ = PE_TYPE::PE32_PLUS;
+  PE_TYPE type_ = PE_TYPE::PE32_PLUS;
 };

 }
 }

-#endif /* IMPORTENTRY_H */
+#endif
diff --git a/deps/LIEF/include/LIEF/PE/LoadConfigurations.hpp b/deps/LIEF/include/LIEF/PE/LoadConfigurations.hpp
index 8e31387b185..3b7b28b2fb2 100644
--- a/deps/LIEF/include/LIEF/PE/LoadConfigurations.hpp
+++ b/deps/LIEF/include/LIEF/PE/LoadConfigurations.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/deps/LIEF/include/LIEF/PE/LoadConfigurations/CHPEMetadata.hpp b/deps/LIEF/include/LIEF/PE/LoadConfigurations/CHPEMetadata.hpp
index 92d62e2090c..c6186940b60 100644
--- a/deps/LIEF/include/LIEF/PE/LoadConfigurations/CHPEMetadata.hpp
+++ b/deps/LIEF/include/LIEF/PE/LoadConfigurations/CHPEMetadata.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/deps/LIEF/include/LIEF/PE/LoadConfigurations/CHPEMetadata/Metadata.hpp b/deps/LIEF/include/LIEF/PE/LoadConfigurations/CHPEMetadata/Metadata.hpp
index 90a75c22fda..bfb620b530b 100644
--- a/deps/LIEF/include/LIEF/PE/LoadConfigurations/CHPEMetadata/Metadata.hpp
+++ b/deps/LIEF/include/LIEF/PE/LoadConfigurations/CHPEMetadata/Metadata.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -31,17 +31,17 @@ class Parser;
 /// This class is inherited by architecture-specific implementation.
 class LIEF_API CHPEMetadata {
   public:
-
   /// Discriminator for the subclasses
   enum class KIND {
     UNKNOWN = 0,
-    ARM64, X86,
+    ARM64,
+    X86,
   };

   CHPEMetadata() = default;
   CHPEMetadata(KIND kind, uint32_t version) :
-    kind_(kind), version_(version)
-  {}
+    kind_(kind),
+    version_(version) {}

   CHPEMetadata(const CHPEMetadata&) = default;
   CHPEMetadata& operator=(const CHPEMetadata&) = default;
@@ -84,9 +84,8 @@ class LIEF_API CHPEMetadata {
     return const_cast<CHPEMetadata*>(this)->as<T>();
   }

-  LIEF_API friend
-    std::ostream& operator<<(std::ostream& os, const CHPEMetadata& meta)
-  {
+  LIEF_API friend std::ostream& operator<<(std::ostream& os,
+                                           const CHPEMetadata& meta) {
     os << meta.to_string();
     return os;
   }
diff --git a/deps/LIEF/include/LIEF/PE/LoadConfigurations/CHPEMetadata/MetadataARM64.hpp b/deps/LIEF/include/LIEF/PE/LoadConfigurations/CHPEMetadata/MetadataARM64.hpp
index 13f0fbf91bf..632ef022304 100644
--- a/deps/LIEF/include/LIEF/PE/LoadConfigurations/CHPEMetadata/MetadataARM64.hpp
+++ b/deps/LIEF/include/LIEF/PE/LoadConfigurations/CHPEMetadata/MetadataARM64.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -97,15 +97,16 @@ class LIEF_API CHPEMetadataARM64 : public CHPEMetadata {

   using redirection_entries_t = std::vector<redirection_entry_t>;
   using it_redirection_entries = ref_iterator<redirection_entries_t&>;
-  using it_const_redirection_entries = const_ref_iterator<const redirection_entries_t&>;
+  using it_const_redirection_entries =
+      const_ref_iterator<const redirection_entries_t&>;

   using code_range_entry_point_entries = std::vector<code_range_entry_point_t>;
   using it_code_range_entry_point = ref_iterator<code_range_entry_point_entries&>;
-  using it_const_code_range_entry_point = const_ref_iterator<const code_range_entry_point_entries&>;
+  using it_const_code_range_entry_point =
+      const_ref_iterator<const code_range_entry_point_entries&>;

   CHPEMetadataARM64(uint32_t version) :
-    CHPEMetadata(KIND::ARM64, version)
-  {}
+    CHPEMetadata(KIND::ARM64, version) {}

   CHPEMetadataARM64(const CHPEMetadataARM64&) = default;
   CHPEMetadataARM64& operator=(const CHPEMetadataARM64&) = default;
@@ -117,15 +118,15 @@ class LIEF_API CHPEMetadataARM64 : public CHPEMetadata {
     return std::unique_ptr<CHPEMetadataARM64>(new CHPEMetadataARM64(*this));
   }

-  static std::unique_ptr<CHPEMetadataARM64> parse(
-    Parser& ctx, BinaryStream& stream, uint32_t version);
+  static std::unique_ptr<CHPEMetadataARM64>
+      parse(Parser& ctx, BinaryStream& stream, uint32_t version);

   static ok_error_t parse_code_map(Parser& ctx, CHPEMetadataARM64& metadata);

   static ok_error_t parse_redirections(Parser& ctx, CHPEMetadataARM64& metadata);

-  static ok_error_t parse_code_ranges_to_entry_points(
-      Parser& ctx, CHPEMetadataARM64& metadata);
+  static ok_error_t parse_code_ranges_to_entry_points(Parser& ctx,
+                                                      CHPEMetadataARM64& metadata);

   /// RVA to the array that describes architecture-specific ranges
   uint32_t code_map() const {
@@ -219,136 +220,145 @@ class LIEF_API CHPEMetadataARM64 : public CHPEMetadata {
     return bitfield_info_;
   }

-  it_range_entries code_ranges() {
+  it_range_entries code_ranges() LIEF_LIFETIMEBOUND {
     return range_entries_;
   }

-  it_const_range_entries code_ranges() const {
+  it_const_range_entries code_ranges() const LIEF_LIFETIMEBOUND {
     return range_entries_;
   }

-  it_redirection_entries redirections() {
+  it_redirection_entries redirections() LIEF_LIFETIMEBOUND {
     return redirection_entries_;
   }

-  it_const_redirection_entries redirections() const {
+  it_const_redirection_entries redirections() const LIEF_LIFETIMEBOUND {
     return redirection_entries_;
   }

-  it_code_range_entry_point code_range_entry_point() {
+  it_code_range_entry_point code_range_entry_point() LIEF_LIFETIMEBOUND {
     return code_range_entry_point_entries_;
   }

-  it_const_code_range_entry_point code_range_entry_point() const {
+  it_const_code_range_entry_point
+      code_range_entry_point() const LIEF_LIFETIMEBOUND {
     return code_range_entry_point_entries_;
   }

-  CHPEMetadataARM64& code_map(uint32_t value) {
+  CHPEMetadataARM64& code_map(uint32_t value) LIEF_LIFETIMEBOUND {
     code_map_rva_ = value;
     return *this;
   }

-  CHPEMetadataARM64& code_map_count(uint32_t value) {
+  CHPEMetadataARM64& code_map_count(uint32_t value) LIEF_LIFETIMEBOUND {
     code_map_cnt_ = value;
     return *this;
   }

-  CHPEMetadataARM64& code_ranges_to_entrypoints(uint32_t value) {
+  CHPEMetadataARM64&
+      code_ranges_to_entrypoints(uint32_t value) LIEF_LIFETIMEBOUND {
     code_ranges_to_ep_ = value;
     return *this;
   }

-  CHPEMetadataARM64& redirection_metadata(uint32_t value) {
+  CHPEMetadataARM64& redirection_metadata(uint32_t value) LIEF_LIFETIMEBOUND {
     redirection_metadata_ = value;
     return *this;
   }

-  CHPEMetadataARM64& os_arm64x_dispatch_call_no_redirect(uint32_t value) {
+  CHPEMetadataARM64&
+      os_arm64x_dispatch_call_no_redirect(uint32_t value) LIEF_LIFETIMEBOUND {
     os_arm64x_dispatch_call_no_redirect_ = value;
     return *this;
   }

-  CHPEMetadataARM64& os_arm64x_dispatch_ret(uint32_t value) {
+  CHPEMetadataARM64& os_arm64x_dispatch_ret(uint32_t value) LIEF_LIFETIMEBOUND {
     os_arm64x_dispatch_ret_ = value;
     return *this;
   }

-  CHPEMetadataARM64& os_arm64x_dispatch_call(uint32_t value) {
+  CHPEMetadataARM64& os_arm64x_dispatch_call(uint32_t value) LIEF_LIFETIMEBOUND {
     os_arm64x_dispatch_call_ = value;
     return *this;
   }

-  CHPEMetadataARM64& os_arm64x_dispatch_icall(uint32_t value) {
+  CHPEMetadataARM64& os_arm64x_dispatch_icall(uint32_t value) LIEF_LIFETIMEBOUND {
     os_arm64x_dispatch_icall_ = value;
     return *this;
   }

-  CHPEMetadataARM64& os_arm64x_dispatch_icall_cfg(uint32_t value) {
+  CHPEMetadataARM64&
+      os_arm64x_dispatch_icall_cfg(uint32_t value) LIEF_LIFETIMEBOUND {
     os_arm64x_dispatch_icall_cfg_ = value;
     return *this;
   }

-  CHPEMetadataARM64& alternate_entry_point(uint32_t value) {
+  CHPEMetadataARM64& alternate_entry_point(uint32_t value) LIEF_LIFETIMEBOUND {
     alternate_ep_ = value;
     return *this;
   }

-  CHPEMetadataARM64& auxiliary_iat(uint32_t value) {
+  CHPEMetadataARM64& auxiliary_iat(uint32_t value) LIEF_LIFETIMEBOUND {
     aux_iat_ = value;
     return *this;
   }

-  CHPEMetadataARM64& code_ranges_to_entry_points_count(uint32_t value) {
+  CHPEMetadataARM64&
+      code_ranges_to_entry_points_count(uint32_t value) LIEF_LIFETIMEBOUND {
     code_ranges_to_ep_cnt_ = value;
     return *this;
   }

-  CHPEMetadataARM64& redirection_metadata_count(uint32_t value) {
+  CHPEMetadataARM64&
+      redirection_metadata_count(uint32_t value) LIEF_LIFETIMEBOUND {
     redirection_metadata_cnt_ = value;
     return *this;
   }

-  CHPEMetadataARM64& get_x64_information_function_pointer(uint32_t value) {
+  CHPEMetadataARM64&
+      get_x64_information_function_pointer(uint32_t value) LIEF_LIFETIMEBOUND {
     get_x64_information_function_pointer_ = value;
     return *this;
   }

-  CHPEMetadataARM64& set_x64_information_function_pointer(uint32_t value) {
+  CHPEMetadataARM64&
+      set_x64_information_function_pointer(uint32_t value) LIEF_LIFETIMEBOUND {
     set_x64_information_function_pointer_ = value;
     return *this;
   }

-  CHPEMetadataARM64& extra_rfe_table(uint32_t value) {
+  CHPEMetadataARM64& extra_rfe_table(uint32_t value) LIEF_LIFETIMEBOUND {
     extra_rfe_table_ = value;
     return *this;
   }

-  CHPEMetadataARM64& extra_rfe_table_size(uint32_t value) {
+  CHPEMetadataARM64& extra_rfe_table_size(uint32_t value) LIEF_LIFETIMEBOUND {
     extra_rfe_table_size_ = value;
     return *this;
   }

-  CHPEMetadataARM64& os_arm64x_dispatch_fptr(uint32_t value) {
+  CHPEMetadataARM64& os_arm64x_dispatch_fptr(uint32_t value) LIEF_LIFETIMEBOUND {
     os_arm64x_dispatch_fptr_ = value;
     return *this;
   }

-  CHPEMetadataARM64& auxiliary_iat_copy(uint32_t value) {
+  CHPEMetadataARM64& auxiliary_iat_copy(uint32_t value) LIEF_LIFETIMEBOUND {
     aux_iat_copy_ = value;
     return *this;
   }

-  CHPEMetadataARM64& auxiliary_delay_import(uint32_t value) {
+  CHPEMetadataARM64& auxiliary_delay_import(uint32_t value) LIEF_LIFETIMEBOUND {
     aux_delay_import_ = value;
     return *this;
   }

-  CHPEMetadataARM64& auxiliary_delay_import_copy(uint32_t value) {
+  CHPEMetadataARM64&
+      auxiliary_delay_import_copy(uint32_t value) LIEF_LIFETIMEBOUND {
     aux_delay_import_copy_ = value;
     return *this;
   }

-  CHPEMetadataARM64& bitfield_info(uint32_t value) {
+  CHPEMetadataARM64& bitfield_info(uint32_t value) LIEF_LIFETIMEBOUND {
     bitfield_info_ = value;
     return *this;
   }
@@ -388,7 +398,6 @@ class LIEF_API CHPEMetadataARM64 : public CHPEMetadata {
   range_entries_t range_entries_;
   redirection_entries_t redirection_entries_;
   code_range_entry_point_entries code_range_entry_point_entries_;
-
 };

 LIEF_API const char* to_string(CHPEMetadataARM64::range_entry_t::TYPE e);
diff --git a/deps/LIEF/include/LIEF/PE/LoadConfigurations/CHPEMetadata/MetadataX86.hpp b/deps/LIEF/include/LIEF/PE/LoadConfigurations/CHPEMetadata/MetadataX86.hpp
index b436b1898d6..ce67c65e82e 100644
--- a/deps/LIEF/include/LIEF/PE/LoadConfigurations/CHPEMetadata/MetadataX86.hpp
+++ b/deps/LIEF/include/LIEF/PE/LoadConfigurations/CHPEMetadata/MetadataX86.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -29,8 +29,7 @@ namespace PE {
 class LIEF_API CHPEMetadataX86 : public CHPEMetadata {
   public:
   CHPEMetadataX86(uint32_t version) :
-    CHPEMetadata(KIND::X86, version)
-  {}
+    CHPEMetadata(KIND::X86, version) {}

   CHPEMetadataX86(const CHPEMetadataX86&) = default;
   CHPEMetadataX86& operator=(const CHPEMetadataX86&) = default;
@@ -42,8 +41,8 @@ class LIEF_API CHPEMetadataX86 : public CHPEMetadata {
     return std::unique_ptr<CHPEMetadataX86>(new CHPEMetadataX86(*this));
   }

-  static std::unique_ptr<CHPEMetadataX86> parse(
-    Parser& ctx, BinaryStream& stream, uint32_t version);
+  static std::unique_ptr<CHPEMetadataX86> parse(Parser& ctx, BinaryStream& stream,
+                                                uint32_t version);


   uint32_t chpe_code_address_range_offset() const {
@@ -90,57 +89,71 @@ class LIEF_API CHPEMetadataX86 : public CHPEMetadata {
     return wowa64_rdtsc_function_pointer_;
   }

-  CHPEMetadataX86& chpe_code_address_range_offset(uint32_t value) {
+  CHPEMetadataX86&
+      chpe_code_address_range_offset(uint32_t value) LIEF_LIFETIMEBOUND {
     chpe_code_address_range_offset_ = value;
     return *this;
   }

-  CHPEMetadataX86& chpe_code_address_range_count(uint32_t value) {
+  CHPEMetadataX86&
+      chpe_code_address_range_count(uint32_t value) LIEF_LIFETIMEBOUND {
     chpe_code_address_range_count_ = value;
     return *this;
   }

-  CHPEMetadataX86& wowa64_exception_handler_function_pointer(uint32_t value) {
+  CHPEMetadataX86& wowa64_exception_handler_function_pointer(
+      uint32_t value
+  ) LIEF_LIFETIMEBOUND {
     wowa64_exception_handler_function_pointer_ = value;
     return *this;
   }

-  CHPEMetadataX86& wowa64_dispatch_call_function_pointer(uint32_t value) {
+  CHPEMetadataX86&
+      wowa64_dispatch_call_function_pointer(uint32_t value) LIEF_LIFETIMEBOUND {
     wowa64_dispatch_call_function_pointer_ = value;
     return *this;
   }

-  CHPEMetadataX86& wowa64_dispatch_indirect_call_function_pointer(uint32_t value) {
+  CHPEMetadataX86& wowa64_dispatch_indirect_call_function_pointer(
+      uint32_t value
+  ) LIEF_LIFETIMEBOUND {
     wowa64_dispatch_indirect_call_function_pointer_ = value;
     return *this;
   }

-  CHPEMetadataX86& wowa64_dispatch_indirect_call_cfg_function_pointer(uint32_t value) {
+  CHPEMetadataX86& wowa64_dispatch_indirect_call_cfg_function_pointer(
+      uint32_t value
+  ) LIEF_LIFETIMEBOUND {
     wowa64_dispatch_indirect_call_cfg_function_pointer_ = value;
     return *this;
   }

-  CHPEMetadataX86& wowa64_dispatch_ret_function_pointer(uint32_t value) {
+  CHPEMetadataX86&
+      wowa64_dispatch_ret_function_pointer(uint32_t value) LIEF_LIFETIMEBOUND {
     wowa64_dispatch_ret_function_pointer_ = value;
     return *this;
   }

-  CHPEMetadataX86& wowa64_dispatch_ret_leaf_function_pointer(uint32_t value) {
+  CHPEMetadataX86& wowa64_dispatch_ret_leaf_function_pointer(
+      uint32_t value
+  ) LIEF_LIFETIMEBOUND {
     wowa64_dispatch_ret_leaf_function_pointer_ = value;
     return *this;
   }

-  CHPEMetadataX86& wowa64_dispatch_jump_function_pointer(uint32_t value) {
+  CHPEMetadataX86&
+      wowa64_dispatch_jump_function_pointer(uint32_t value) LIEF_LIFETIMEBOUND {
     wowa64_dispatch_jump_function_pointer_ = value;
     return *this;
   }

-  CHPEMetadataX86& compiler_iat_pointer(uint32_t value) {
+  CHPEMetadataX86& compiler_iat_pointer(uint32_t value) LIEF_LIFETIMEBOUND {
     compiler_iat_pointer_ = value;
     return *this;
   }

-  CHPEMetadataX86& wowa64_rdtsc_function_pointer(uint32_t value) {
+  CHPEMetadataX86&
+      wowa64_rdtsc_function_pointer(uint32_t value) LIEF_LIFETIMEBOUND {
     wowa64_rdtsc_function_pointer_ = value;
     return *this;
   }
diff --git a/deps/LIEF/include/LIEF/PE/LoadConfigurations/DynamicRelocation.hpp b/deps/LIEF/include/LIEF/PE/LoadConfigurations/DynamicRelocation.hpp
index 6cdb3c4de9f..b5d236a9158 100644
--- a/deps/LIEF/include/LIEF/PE/LoadConfigurations/DynamicRelocation.hpp
+++ b/deps/LIEF/include/LIEF/PE/LoadConfigurations/DynamicRelocation.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/deps/LIEF/include/LIEF/PE/LoadConfigurations/DynamicRelocation/DynamicFixup.hpp b/deps/LIEF/include/LIEF/PE/LoadConfigurations/DynamicRelocation/DynamicFixup.hpp
index 85afbe6c105..93fad08960c 100644
--- a/deps/LIEF/include/LIEF/PE/LoadConfigurations/DynamicRelocation/DynamicFixup.hpp
+++ b/deps/LIEF/include/LIEF/PE/LoadConfigurations/DynamicRelocation/DynamicFixup.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -44,20 +44,22 @@ class LIEF_API DynamicFixup {
     /// If DynamicRelocation::symbol is set to `IMAGE_DYNAMIC_RELOCATION_ARM64X`
     ARM64X,

-    /// If DynamicRelocation::symbol is set to `IMAGE_DYNAMIC_RELOCATION_FUNCTION_OVERRIDE`
+    /// If DynamicRelocation::symbol is set to
+    /// `IMAGE_DYNAMIC_RELOCATION_FUNCTION_OVERRIDE`
     FUNCTION_OVERRIDE,

-    /// If DynamicRelocation::symbol is set to `IMAGE_DYNAMIC_RELOCATION_ARM64_KERNEL_IMPORT_CALL_TRANSFER`
+    /// If DynamicRelocation::symbol is set to
+    /// `IMAGE_DYNAMIC_RELOCATION_ARM64_KERNEL_IMPORT_CALL_TRANSFER`
     ARM64_KERNEL_IMPORT_CALL_TRANSFER,

-    /// If DynamicRelocation::symbol is set to `IMAGE_DYNAMIC_RELOCATION_GUARD_IMPORT_CONTROL_TRANSFER`
+    /// If DynamicRelocation::symbol is set to
+    /// `IMAGE_DYNAMIC_RELOCATION_GUARD_IMPORT_CONTROL_TRANSFER`
     GUARD_IMPORT_CONTROL_TRANSFER,
   };

   DynamicFixup() = delete;
   DynamicFixup(KIND kind) :
-    kind_(kind)
-  {}
+    kind_(kind) {}

   DynamicFixup(const DynamicFixup&) = default;
   DynamicFixup& operator=(const DynamicFixup&) = default;
@@ -89,22 +91,20 @@ class LIEF_API DynamicFixup {
     return const_cast<DynamicFixup*>(this)->as<T>();
   }

-  LIEF_API friend
-    std::ostream& operator<<(std::ostream& os, const DynamicFixup& fixup)
-  {
+  LIEF_API friend std::ostream& operator<<(std::ostream& os,
+                                           const DynamicFixup& fixup) {
     os << fixup.to_string();
     return os;
   }

   virtual ~DynamicFixup() = default;

-  /// \private
-  static LIEF_LOCAL ok_error_t
-    parse(Parser& ctx, SpanStream& stream, DynamicRelocation& R);
+  /// @private
+  static LIEF_LOCAL ok_error_t parse(Parser& ctx, SpanStream& stream,
+                                     DynamicRelocation& R);

   protected:
   KIND kind_ = KIND::UNKNOWN;
-
 };


diff --git a/deps/LIEF/include/LIEF/PE/LoadConfigurations/DynamicRelocation/DynamicFixupARM64Kernel.hpp b/deps/LIEF/include/LIEF/PE/LoadConfigurations/DynamicRelocation/DynamicFixupARM64Kernel.hpp
index ca3b1e5e911..c56c5f2d279 100644
--- a/deps/LIEF/include/LIEF/PE/LoadConfigurations/DynamicRelocation/DynamicFixupARM64Kernel.hpp
+++ b/deps/LIEF/include/LIEF/PE/LoadConfigurations/DynamicRelocation/DynamicFixupARM64Kernel.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -55,9 +55,8 @@ class LIEF_API DynamicFixupARM64Kernel : public DynamicFixup {

     std::string to_string() const;

-    friend LIEF_API
-      std::ostream& operator<<(std::ostream& os, const reloc_entry_t& entry)
-    {
+    friend LIEF_API std::ostream& operator<<(std::ostream& os,
+                                             const reloc_entry_t& entry) {
       os << entry.to_string();
       return os;
     }
@@ -68,8 +67,7 @@ class LIEF_API DynamicFixupARM64Kernel : public DynamicFixup {
   using it_const_relocations = const_ref_iterator<const reloc_entries_t&>;

   DynamicFixupARM64Kernel() :
-    DynamicFixup(KIND::ARM64_KERNEL_IMPORT_CALL_TRANSFER)
-  {}
+    DynamicFixup(KIND::ARM64_KERNEL_IMPORT_CALL_TRANSFER) {}

   DynamicFixupARM64Kernel(const DynamicFixupARM64Kernel&) = default;
   DynamicFixupARM64Kernel& operator=(const DynamicFixupARM64Kernel&) = default;
@@ -78,17 +76,19 @@ class LIEF_API DynamicFixupARM64Kernel : public DynamicFixup {
   DynamicFixupARM64Kernel& operator=(DynamicFixupARM64Kernel&&) = default;

   std::unique_ptr<DynamicFixup> clone() const override {
-    return std::unique_ptr<DynamicFixupARM64Kernel>(new DynamicFixupARM64Kernel(*this));
+    return std::unique_ptr<DynamicFixupARM64Kernel>(
+        new DynamicFixupARM64Kernel(*this)
+    );
   }

   std::string to_string() const override;

   /// Iterator over the relocations
-  it_relocations relocations() {
+  it_relocations relocations() LIEF_LIFETIMEBOUND {
     return entries_;
   }

-  it_const_relocations relocations() const {
+  it_const_relocations relocations() const LIEF_LIFETIMEBOUND {
     return entries_;
   }

@@ -98,9 +98,9 @@ class LIEF_API DynamicFixupARM64Kernel : public DynamicFixup {

   ~DynamicFixupARM64Kernel() override = default;

-  /// \private
-  LIEF_LOCAL static
-    std::unique_ptr<DynamicFixupARM64Kernel> parse(Parser& ctx, SpanStream& strm);
+  /// @private
+  LIEF_LOCAL static std::unique_ptr<DynamicFixupARM64Kernel>
+      parse(Parser& ctx, SpanStream& strm);

   private:
   reloc_entries_t entries_;
diff --git a/deps/LIEF/include/LIEF/PE/LoadConfigurations/DynamicRelocation/DynamicFixupARM64X.hpp b/deps/LIEF/include/LIEF/PE/LoadConfigurations/DynamicRelocation/DynamicFixupARM64X.hpp
index 6d1264267e4..6913aea4151 100644
--- a/deps/LIEF/include/LIEF/PE/LoadConfigurations/DynamicRelocation/DynamicFixupARM64X.hpp
+++ b/deps/LIEF/include/LIEF/PE/LoadConfigurations/DynamicRelocation/DynamicFixupARM64X.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -51,9 +51,8 @@ class LIEF_API DynamicFixupARM64X : public DynamicFixup {

     std::string to_string() const;

-    LIEF_API friend
-      std::ostream& operator<<(std::ostream& os, const reloc_entry_t& entry)
-    {
+    LIEF_API friend std::ostream& operator<<(std::ostream& os,
+                                             const reloc_entry_t& entry) {
       os << entry.to_string();
       return os;
     }
@@ -64,8 +63,7 @@ class LIEF_API DynamicFixupARM64X : public DynamicFixup {
   using it_const_relocations = const_ref_iterator<const reloc_entries_t&>;

   DynamicFixupARM64X() :
-    DynamicFixup(KIND::ARM64X)
-  {}
+    DynamicFixup(KIND::ARM64X) {}

   DynamicFixupARM64X(const DynamicFixupARM64X&) = default;
   DynamicFixupARM64X& operator=(const DynamicFixupARM64X&) = default;
@@ -80,11 +78,11 @@ class LIEF_API DynamicFixupARM64X : public DynamicFixup {
   std::string to_string() const override;

   /// Iterator over the different fixup entries
-  it_relocations relocations() {
+  it_relocations relocations() LIEF_LIFETIMEBOUND {
     return entries_;
   }

-  it_const_relocations relocations() const {
+  it_const_relocations relocations() const LIEF_LIFETIMEBOUND {
     return entries_;
   }

@@ -94,13 +92,12 @@ class LIEF_API DynamicFixupARM64X : public DynamicFixup {

   ~DynamicFixupARM64X() override = default;

-  /// \private
-  LIEF_LOCAL static
-    std::unique_ptr<DynamicFixupARM64X> parse(Parser& ctx, SpanStream& strm);
+  /// @private
+  LIEF_LOCAL static std::unique_ptr<DynamicFixupARM64X> parse(Parser& ctx,
+                                                              SpanStream& strm);

   private:
   reloc_entries_t entries_;
-
 };


diff --git a/deps/LIEF/include/LIEF/PE/LoadConfigurations/DynamicRelocation/DynamicFixupControlTransfer.hpp b/deps/LIEF/include/LIEF/PE/LoadConfigurations/DynamicRelocation/DynamicFixupControlTransfer.hpp
index 3acda31f0fd..3ec341965af 100644
--- a/deps/LIEF/include/LIEF/PE/LoadConfigurations/DynamicRelocation/DynamicFixupControlTransfer.hpp
+++ b/deps/LIEF/include/LIEF/PE/LoadConfigurations/DynamicRelocation/DynamicFixupControlTransfer.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -43,9 +43,8 @@ class LIEF_API DynamicFixupControlTransfer : public DynamicFixup {

     std::string to_string() const;

-    friend LIEF_API
-      std::ostream& operator<<(std::ostream& os, const reloc_entry_t& entry)
-    {
+    friend LIEF_API std::ostream& operator<<(std::ostream& os,
+                                             const reloc_entry_t& entry) {
       os << entry.to_string();
       return os;
     }
@@ -56,27 +55,29 @@ class LIEF_API DynamicFixupControlTransfer : public DynamicFixup {
   using it_const_relocations = const_ref_iterator<const reloc_entries_t&>;

   DynamicFixupControlTransfer() :
-    DynamicFixup(KIND::GUARD_IMPORT_CONTROL_TRANSFER)
-  {}
+    DynamicFixup(KIND::GUARD_IMPORT_CONTROL_TRANSFER) {}

   DynamicFixupControlTransfer(const DynamicFixupControlTransfer&) = default;
-  DynamicFixupControlTransfer& operator=(const DynamicFixupControlTransfer&) = default;
+  DynamicFixupControlTransfer&
+      operator=(const DynamicFixupControlTransfer&) = default;

   DynamicFixupControlTransfer(DynamicFixupControlTransfer&&) = default;
   DynamicFixupControlTransfer& operator=(DynamicFixupControlTransfer&&) = default;

   std::unique_ptr<DynamicFixup> clone() const override {
-    return std::unique_ptr<DynamicFixupControlTransfer>(new DynamicFixupControlTransfer(*this));
+    return std::unique_ptr<DynamicFixupControlTransfer>(
+        new DynamicFixupControlTransfer(*this)
+    );
   }

   std::string to_string() const override;

   /// Iterator over the relocations
-  it_relocations relocations() {
+  it_relocations relocations() LIEF_LIFETIMEBOUND {
     return entries_;
   }

-  it_const_relocations relocations() const {
+  it_const_relocations relocations() const LIEF_LIFETIMEBOUND {
     return entries_;
   }

@@ -86,9 +87,9 @@ class LIEF_API DynamicFixupControlTransfer : public DynamicFixup {

   ~DynamicFixupControlTransfer() override = default;

-  /// \private
-  LIEF_LOCAL static
-    std::unique_ptr<DynamicFixupControlTransfer> parse(Parser& ctx, SpanStream& strm);
+  /// @private
+  LIEF_LOCAL static std::unique_ptr<DynamicFixupControlTransfer>
+      parse(Parser& ctx, SpanStream& strm);

   private:
   reloc_entries_t entries_;
diff --git a/deps/LIEF/include/LIEF/PE/LoadConfigurations/DynamicRelocation/DynamicFixupGeneric.hpp b/deps/LIEF/include/LIEF/PE/LoadConfigurations/DynamicRelocation/DynamicFixupGeneric.hpp
index e28bc74cda8..e6c75b67970 100644
--- a/deps/LIEF/include/LIEF/PE/LoadConfigurations/DynamicRelocation/DynamicFixupGeneric.hpp
+++ b/deps/LIEF/include/LIEF/PE/LoadConfigurations/DynamicRelocation/DynamicFixupGeneric.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -29,7 +29,8 @@ class LIEF_API DynamicFixupGeneric : public DynamicFixup {
   public:
   using relocations_t = std::vector<std::unique_ptr<Relocation>>;
   using it_relocations = ref_iterator<relocations_t&, Relocation*>;
-  using it_const_relocations = const_ref_iterator<const relocations_t&, Relocation*>;
+  using it_const_relocations =
+      const_ref_iterator<const relocations_t&, Relocation*>;

   DynamicFixupGeneric();

@@ -44,11 +45,11 @@ class LIEF_API DynamicFixupGeneric : public DynamicFixup {
   }

   /// Iterator over the relocations
-  it_relocations relocations() {
+  it_relocations relocations() LIEF_LIFETIMEBOUND {
     return relocations_;
   }

-  it_const_relocations relocations() const {
+  it_const_relocations relocations() const LIEF_LIFETIMEBOUND {
     return relocations_;
   }

@@ -60,9 +61,9 @@ class LIEF_API DynamicFixupGeneric : public DynamicFixup {

   ~DynamicFixupGeneric() override;

-  /// \private
-  LIEF_LOCAL static
-    std::unique_ptr<DynamicFixupGeneric> parse(Parser& ctx, SpanStream& strm);
+  /// @private
+  LIEF_LOCAL static std::unique_ptr<DynamicFixupGeneric> parse(Parser& ctx,
+                                                               SpanStream& strm);

   private:
   relocations_t relocations_;
diff --git a/deps/LIEF/include/LIEF/PE/LoadConfigurations/DynamicRelocation/DynamicFixupUnknown.hpp b/deps/LIEF/include/LIEF/PE/LoadConfigurations/DynamicRelocation/DynamicFixupUnknown.hpp
index 3ef46db7d54..d72cfec74ed 100644
--- a/deps/LIEF/include/LIEF/PE/LoadConfigurations/DynamicRelocation/DynamicFixupUnknown.hpp
+++ b/deps/LIEF/include/LIEF/PE/LoadConfigurations/DynamicRelocation/DynamicFixupUnknown.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -15,6 +15,7 @@
  */
 #ifndef LIEF_PE_LOAD_CONFIGURATION_DYNAMIC_FIXUP_UNKNOWN_H
 #define LIEF_PE_LOAD_CONFIGURATION_DYNAMIC_FIXUP_UNKNOWN_H
+#include "LIEF/compiler_attributes.hpp"
 #include "LIEF/span.hpp"
 #include "LIEF/PE/LoadConfigurations/DynamicRelocation/DynamicFixup.hpp"

@@ -23,14 +24,13 @@
 namespace LIEF {
 namespace PE {

-/// This class represents an special dynamic relocation where the format of the
+/// This class represents a special dynamic relocation where the format of the
 /// fixups is not supported by LIEF.
 class LIEF_API DynamicFixupUnknown : public DynamicFixup {
   public:
   DynamicFixupUnknown(std::vector<uint8_t> payload) :
     DynamicFixup(KIND::UNKNOWN),
-    payload_(std::move(payload))
-  {}
+    payload_(std::move(payload)) {}

   DynamicFixupUnknown(const DynamicFixupUnknown&) = default;
   DynamicFixupUnknown& operator=(const DynamicFixupUnknown&) = default;
@@ -51,11 +51,11 @@ class LIEF_API DynamicFixupUnknown : public DynamicFixup {
   }

   /// Raw fixups
-  span<const uint8_t> payload() const {
+  span<const uint8_t> payload() const LIEF_LIFETIMEBOUND {
     return payload_;
   }

-  span<uint8_t> payload() {
+  span<uint8_t> payload() LIEF_LIFETIMEBOUND {
     return payload_;
   }

diff --git a/deps/LIEF/include/LIEF/PE/LoadConfigurations/DynamicRelocation/DynamicRelocationBase.hpp b/deps/LIEF/include/LIEF/PE/LoadConfigurations/DynamicRelocation/DynamicRelocationBase.hpp
index 899b60755bc..aca70db2329 100644
--- a/deps/LIEF/include/LIEF/PE/LoadConfigurations/DynamicRelocation/DynamicRelocationBase.hpp
+++ b/deps/LIEF/include/LIEF/PE/LoadConfigurations/DynamicRelocation/DynamicRelocationBase.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -83,22 +83,22 @@ class LIEF_API DynamicRelocation {
     return symbol_;
   }

-  const DynamicFixup* fixups() const {
+  const DynamicFixup* fixups() const LIEF_LIFETIMEBOUND {
     return fixups_.get();
   }

   /// Return fixups information, where the interpretation may depend on the
   /// symbol's value
-  DynamicFixup* fixups() {
+  DynamicFixup* fixups() LIEF_LIFETIMEBOUND {
     return fixups_.get();
   }

-  DynamicRelocation& symbol(uint64_t value) {
+  DynamicRelocation& symbol(uint64_t value) LIEF_LIFETIMEBOUND {
     symbol_ = value;
     return *this;
   }

-  DynamicRelocation& fixups(std::unique_ptr<DynamicFixup> F);
+  DynamicRelocation& fixups(std::unique_ptr<DynamicFixup> F) LIEF_LIFETIMEBOUND;

   virtual std::string to_string() const = 0;

@@ -117,9 +117,8 @@ class LIEF_API DynamicRelocation {
     return const_cast<DynamicRelocation*>(this)->as<T>();
   }

-  LIEF_API friend
-    std::ostream& operator<<(std::ostream& os, const DynamicRelocation& reloc)
-  {
+  LIEF_API friend std::ostream& operator<<(std::ostream& os,
+                                           const DynamicRelocation& reloc) {
     os << reloc.to_string();
     return os;
   }
diff --git a/deps/LIEF/include/LIEF/PE/LoadConfigurations/DynamicRelocation/DynamicRelocationV1.hpp b/deps/LIEF/include/LIEF/PE/LoadConfigurations/DynamicRelocation/DynamicRelocationV1.hpp
index d881df85c17..ba59264b227 100644
--- a/deps/LIEF/include/LIEF/PE/LoadConfigurations/DynamicRelocation/DynamicRelocationV1.hpp
+++ b/deps/LIEF/include/LIEF/PE/LoadConfigurations/DynamicRelocation/DynamicRelocationV1.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -33,8 +33,7 @@ class Parser;
 class LIEF_API DynamicRelocationV1 : public DynamicRelocation {
   public:
   DynamicRelocationV1() :
-    DynamicRelocation(1)
-  {}
+    DynamicRelocation(1) {}

   DynamicRelocationV1(const DynamicRelocationV1&) = default;
   DynamicRelocationV1& operator=(const DynamicRelocationV1&) = default;
@@ -54,9 +53,10 @@ class LIEF_API DynamicRelocationV1 : public DynamicRelocation {

   ~DynamicRelocationV1() override = default;

-  /// \private
-  template<class PE_T> LIEF_LOCAL static
-    std::unique_ptr<DynamicRelocationV1> parse(Parser& ctx, BinaryStream& strm);
+  /// @private
+  template<class PE_T>
+  LIEF_LOCAL static std::unique_ptr<DynamicRelocationV1> parse(Parser& ctx,
+                                                               BinaryStream& strm);
 };

 }
diff --git a/deps/LIEF/include/LIEF/PE/LoadConfigurations/DynamicRelocation/DynamicRelocationV2.hpp b/deps/LIEF/include/LIEF/PE/LoadConfigurations/DynamicRelocation/DynamicRelocationV2.hpp
index 7d6634a9479..2f967c8ed8e 100644
--- a/deps/LIEF/include/LIEF/PE/LoadConfigurations/DynamicRelocation/DynamicRelocationV2.hpp
+++ b/deps/LIEF/include/LIEF/PE/LoadConfigurations/DynamicRelocation/DynamicRelocationV2.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -33,8 +33,7 @@ class Parser;
 class LIEF_API DynamicRelocationV2 : public DynamicRelocation {
   public:
   DynamicRelocationV2() :
-    DynamicRelocation(2)
-  {}
+    DynamicRelocation(2) {}

   DynamicRelocationV2(const DynamicRelocationV2&) = default;
   DynamicRelocationV2& operator=(const DynamicRelocationV2&) = default;
@@ -54,10 +53,10 @@ class LIEF_API DynamicRelocationV2 : public DynamicRelocation {

   ~DynamicRelocationV2() override = default;

-  /// \private
-  template<class PE_T> LIEF_LOCAL static
-    std::unique_ptr<DynamicRelocationV2> parse(Parser& ctx, BinaryStream& strm);
-
+  /// @private
+  template<class PE_T>
+  LIEF_LOCAL static std::unique_ptr<DynamicRelocationV2> parse(Parser& ctx,
+                                                               BinaryStream& strm);
 };

 }
diff --git a/deps/LIEF/include/LIEF/PE/LoadConfigurations/DynamicRelocation/FunctionOverride.hpp b/deps/LIEF/include/LIEF/PE/LoadConfigurations/DynamicRelocation/FunctionOverride.hpp
index 17f671fc4b9..02ebeca3597 100644
--- a/deps/LIEF/include/LIEF/PE/LoadConfigurations/DynamicRelocation/FunctionOverride.hpp
+++ b/deps/LIEF/include/LIEF/PE/LoadConfigurations/DynamicRelocation/FunctionOverride.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -34,7 +34,6 @@ class FunctionOverrideInfo;
 /// This class represents `IMAGE_DYNAMIC_RELOCATION_FUNCTION_OVERRIDE`
 class LIEF_API FunctionOverride : public DynamicFixup {
   public:
-
   /// Mirror `IMAGE_BDD_DYNAMIC_RELOCATION`
   struct image_bdd_dynamic_relocation_t {
     uint16_t left = 0;
@@ -55,9 +54,13 @@ class LIEF_API FunctionOverride : public DynamicFixup {
     std::vector<uint8_t> payload;
   };

-  using func_overriding_info_t = std::vector<std::unique_ptr<FunctionOverrideInfo>>;
-  using it_func_overriding_info = ref_iterator<func_overriding_info_t&, FunctionOverrideInfo*>;
-  using it_const_func_overriding_info = const_ref_iterator<const func_overriding_info_t&, const FunctionOverrideInfo*>;
+  using func_overriding_info_t =
+      std::vector<std::unique_ptr<FunctionOverrideInfo>>;
+  using it_func_overriding_info =
+      ref_iterator<func_overriding_info_t&, FunctionOverrideInfo*>;
+  using it_const_func_overriding_info =
+      const_ref_iterator<const func_overriding_info_t&,
+                         const FunctionOverrideInfo*>;

   using bdd_info_list_t = std::vector<image_bdd_info_t>;
   using it_bdd_info = ref_iterator<bdd_info_list_t&>;
@@ -76,34 +79,36 @@ class LIEF_API FunctionOverride : public DynamicFixup {
   }

   /// Iterator over the overriding info
-  it_func_overriding_info func_overriding_info() {
+  it_func_overriding_info func_overriding_info() LIEF_LIFETIMEBOUND {
     return overriding_info_;
   }

-  it_const_func_overriding_info func_overriding_info() const {
+  it_const_func_overriding_info func_overriding_info() const LIEF_LIFETIMEBOUND {
     return overriding_info_;
   }

   /// Iterator over the BDD info
-  it_bdd_info bdd_info() {
+  it_bdd_info bdd_info() LIEF_LIFETIMEBOUND {
     return bdd_info_;
   }

-  it_const_bdd_info bdd_info() const {
+  it_const_bdd_info bdd_info() const LIEF_LIFETIMEBOUND {
     return bdd_info_;
   }

   /// Find the `IMAGE_BDD_INFO` at the given offset
-  image_bdd_info_t* find_bdd_info(uint32_t offset);
+  image_bdd_info_t* find_bdd_info(uint32_t offset) LIEF_LIFETIMEBOUND;

   /// Find the `IMAGE_BDD_INFO` associated with the given info
-  image_bdd_info_t* find_bdd_info(const FunctionOverrideInfo& info);
+  image_bdd_info_t*
+      find_bdd_info(const FunctionOverrideInfo& info) LIEF_LIFETIMEBOUND;

-  const image_bdd_info_t* find_bdd_info(uint32_t offset) const {
+  const image_bdd_info_t* find_bdd_info(uint32_t offset) const LIEF_LIFETIMEBOUND {
     return const_cast<FunctionOverride*>(this)->find_bdd_info(offset);
   }

-  const image_bdd_info_t* find_bdd_info(const FunctionOverrideInfo& info) const {
+  const image_bdd_info_t*
+      find_bdd_info(const FunctionOverrideInfo& info) const LIEF_LIFETIMEBOUND {
     return const_cast<FunctionOverride*>(this)->find_bdd_info(info);
   }

@@ -115,17 +120,17 @@ class LIEF_API FunctionOverride : public DynamicFixup {

   ~FunctionOverride() override;

-  /// \private
-  LIEF_LOCAL static
-    std::unique_ptr<FunctionOverride> parse(Parser& ctx, SpanStream& strm);
+  /// @private
+  LIEF_LOCAL static std::unique_ptr<FunctionOverride> parse(Parser& ctx,
+                                                            SpanStream& strm);

-  /// \private
-  LIEF_LOCAL static ok_error_t
-    parse_override_info(Parser& ctx, SpanStream& strm, FunctionOverride& func);
+  /// @private
+  LIEF_LOCAL static ok_error_t parse_override_info(Parser& ctx, SpanStream& strm,
+                                                   FunctionOverride& func);

-  /// \private
-  LIEF_LOCAL static ok_error_t
-    parse_bdd_info(Parser& ctx, SpanStream& strm, FunctionOverride& func);
+  /// @private
+  LIEF_LOCAL static ok_error_t parse_bdd_info(Parser& ctx, SpanStream& strm,
+                                              FunctionOverride& func);

   private:
   func_overriding_info_t overriding_info_;
diff --git a/deps/LIEF/include/LIEF/PE/LoadConfigurations/DynamicRelocation/FunctionOverrideInfo.hpp b/deps/LIEF/include/LIEF/PE/LoadConfigurations/DynamicRelocation/FunctionOverrideInfo.hpp
index 589323b2693..d94111eaed3 100644
--- a/deps/LIEF/include/LIEF/PE/LoadConfigurations/DynamicRelocation/FunctionOverrideInfo.hpp
+++ b/deps/LIEF/include/LIEF/PE/LoadConfigurations/DynamicRelocation/FunctionOverrideInfo.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -19,6 +19,7 @@
 #include <memory>
 #include <string>
 #include <vector>
+#include <cstdint>

 #include "LIEF/visibility.h"
 #include "LIEF/iterators.hpp"
@@ -34,7 +35,8 @@ class LIEF_API FunctionOverrideInfo {
   public:
   using relocations_t = std::vector<std::unique_ptr<Relocation>>;
   using it_relocations = ref_iterator<relocations_t&, Relocation*>;
-  using it_const_relocations = const_ref_iterator<const relocations_t&, const Relocation*>;
+  using it_const_relocations =
+      const_ref_iterator<const relocations_t&, const Relocation*>;

   FunctionOverrideInfo() = default;
   FunctionOverrideInfo(uint32_t original_rva, uint32_t bdd_offset,
@@ -72,25 +74,25 @@ class LIEF_API FunctionOverrideInfo {
     return rvas_;
   }

-  it_relocations relocations() {
+  it_relocations relocations() LIEF_LIFETIMEBOUND {
     return relocations_;
   }

-  it_const_relocations relocations() const {
+  it_const_relocations relocations() const LIEF_LIFETIMEBOUND {
     return relocations_;
   }

-  FunctionOverrideInfo& original_rva(uint32_t value) {
+  FunctionOverrideInfo& original_rva(uint32_t value) LIEF_LIFETIMEBOUND {
     original_rva_ = value;
     return *this;
   }

-  FunctionOverrideInfo& bdd_offset(uint32_t value) {
+  FunctionOverrideInfo& bdd_offset(uint32_t value) LIEF_LIFETIMEBOUND {
     bdd_offset_ = value;
     return *this;
   }

-  FunctionOverrideInfo& base_reloc_size(uint32_t value) {
+  FunctionOverrideInfo& base_reloc_size(uint32_t value) LIEF_LIFETIMEBOUND {
     base_relocsz_ = value;
     return *this;
   }
@@ -100,18 +102,17 @@ class LIEF_API FunctionOverrideInfo {
     return *this;
   }

-  friend LIEF_API
-    std::ostream& operator<<(std::ostream& os, const FunctionOverrideInfo& info)
-  {
+  friend LIEF_API std::ostream& operator<<(std::ostream& os,
+                                           const FunctionOverrideInfo& info) {
     os << info.to_string();
     return os;
   }

   ~FunctionOverrideInfo();

-  /// \private
-  LIEF_LOCAL static
-    std::unique_ptr<FunctionOverrideInfo> parse(Parser& ctx, SpanStream& strm);
+  /// @private
+  LIEF_LOCAL static std::unique_ptr<FunctionOverrideInfo> parse(Parser& ctx,
+                                                                SpanStream& strm);

   private:
   uint32_t original_rva_ = 0;
diff --git a/deps/LIEF/include/LIEF/PE/LoadConfigurations/EnclaveConfiguration.hpp b/deps/LIEF/include/LIEF/PE/LoadConfigurations/EnclaveConfiguration.hpp
index 8864ffc4aa9..7fc71619aec 100644
--- a/deps/LIEF/include/LIEF/PE/LoadConfigurations/EnclaveConfiguration.hpp
+++ b/deps/LIEF/include/LIEF/PE/LoadConfigurations/EnclaveConfiguration.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -72,7 +72,8 @@ class LIEF_API EnclaveConfiguration {
   /// If `MinimumRequiredConfigSize` is zero, the minimum size of the
   /// `IMAGE_ENCLAVE_CONFIG(32,64)` structure that the image loader must be able
   /// to process in order for the enclave to be usable is assumed to be the size
-  /// of the structure through and including the `MinimumRequiredConfigSize` member.
+  /// of the structure through and including the `MinimumRequiredConfigSize`
+  /// member.
   uint32_t min_required_config_size() const {
     return min_req_size_;
   }
@@ -106,22 +107,22 @@ class LIEF_API EnclaveConfiguration {
   }

   /// Return an iterator over the enclave's imports
-  it_imports imports() {
+  it_imports imports() LIEF_LIFETIMEBOUND {
     return imports_;
   }

-  it_const_imports imports() const {
+  it_const_imports imports() const LIEF_LIFETIMEBOUND {
     return imports_;
   }

   /// The family identifier that the author of the enclave assigned to the
   /// enclave.
-  const id_array_t& family_id() const {
+  const id_array_t& family_id() const LIEF_LIFETIMEBOUND {
     return family_id_;
   }

   /// The image identifier that the author of the enclave assigned to the enclave.
-  const id_array_t& image_id() const {
+  const id_array_t& image_id() const LIEF_LIFETIMEBOUND {
     return image_id_;
   }

@@ -153,7 +154,7 @@ class LIEF_API EnclaveConfiguration {
     return enclave_flags_;
   }

-  EnclaveConfiguration& size(uint32_t value) {
+  EnclaveConfiguration& size(uint32_t value) LIEF_LIFETIMEBOUND {
     size_ = value;
     return *this;
   }
@@ -163,69 +164,68 @@ class LIEF_API EnclaveConfiguration {
     return *this;
   }

-  EnclaveConfiguration& policy_flags(uint32_t value) {
+  EnclaveConfiguration& policy_flags(uint32_t value) LIEF_LIFETIMEBOUND {
     policy_flags_ = value;
     return *this;
   }

-  EnclaveConfiguration& import_list_rva(uint32_t value) {
+  EnclaveConfiguration& import_list_rva(uint32_t value) LIEF_LIFETIMEBOUND {
     imports_list_rva_ = value;
     return *this;
   }

-  EnclaveConfiguration& import_entry_size(uint32_t value) {
+  EnclaveConfiguration& import_entry_size(uint32_t value) LIEF_LIFETIMEBOUND {
     import_entry_size_ = value;
     return *this;
   }

-  EnclaveConfiguration& family_id(const id_array_t& value) {
+  EnclaveConfiguration& family_id(const id_array_t& value) LIEF_LIFETIMEBOUND {
     family_id_ = value;
     return *this;
   }

-  EnclaveConfiguration& image_id(const id_array_t& value) {
+  EnclaveConfiguration& image_id(const id_array_t& value) LIEF_LIFETIMEBOUND {
     image_id_ = value;
     return *this;
   }

-  EnclaveConfiguration& image_version(uint32_t value) {
+  EnclaveConfiguration& image_version(uint32_t value) LIEF_LIFETIMEBOUND {
     image_version_ = value;
     return *this;
   }

-  EnclaveConfiguration& security_version(uint32_t value) {
+  EnclaveConfiguration& security_version(uint32_t value) LIEF_LIFETIMEBOUND {
     security_version_ = value;
     return *this;
   }

-  EnclaveConfiguration& enclave_size(uint64_t value) {
+  EnclaveConfiguration& enclave_size(uint64_t value) LIEF_LIFETIMEBOUND {
     enclave_size_ = value;
     return *this;
   }

-  EnclaveConfiguration& nb_threads(uint32_t value) {
+  EnclaveConfiguration& nb_threads(uint32_t value) LIEF_LIFETIMEBOUND {
     nb_threads_ = value;
     return *this;
   }

-  EnclaveConfiguration& enclave_flags(uint32_t value) {
+  EnclaveConfiguration& enclave_flags(uint32_t value) LIEF_LIFETIMEBOUND {
     enclave_flags_ = value;
     return *this;
   }

   std::string to_string() const;

-  LIEF_API friend
-    std::ostream& operator<<(std::ostream& os, const EnclaveConfiguration& meta)
-  {
+  LIEF_API friend std::ostream& operator<<(std::ostream& os,
+                                           const EnclaveConfiguration& meta) {
     os << meta.to_string();
     return os;
   }

-  /// \private
+  /// @private
   template<class PE_T>
   LIEF_LOCAL static std::unique_ptr<EnclaveConfiguration>
-    parse(Parser& ctx, BinaryStream& stream);
+      parse(Parser& ctx, BinaryStream& stream);

   private:
   uint32_t size_ = 0;
diff --git a/deps/LIEF/include/LIEF/PE/LoadConfigurations/EnclaveImport.hpp b/deps/LIEF/include/LIEF/PE/LoadConfigurations/EnclaveImport.hpp
index 5eea0597d68..e7d8b63aacb 100644
--- a/deps/LIEF/include/LIEF/PE/LoadConfigurations/EnclaveImport.hpp
+++ b/deps/LIEF/include/LIEF/PE/LoadConfigurations/EnclaveImport.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -48,7 +48,7 @@ class LIEF_API EnclaveImport {
     /// of all zeros, the imported image must be part of the Windows installation.
     AUTHOR_ID = 0x00000002,

- 	  /// The value of the enclave family identifier of the image must match the
+    /// The value of the enclave family identifier of the image must match the
     /// value in the import record. Otherwise, loading of the image fails.
     FAMILY_ID = 0x00000003,

@@ -82,17 +82,17 @@ class LIEF_API EnclaveImport {
   /// The unique identifier of the primary module for the enclave, if the type()
   /// is TYPE::UNIQUE_ID. Otherwise, the author identifier of the primary module
   /// for the enclave.
-  const long_id_t& id() const {
+  const long_id_t& id() const LIEF_LIFETIMEBOUND {
     return id_;
   }

   /// The family identifier of the primary module for the enclave.
-  const short_id_t& family_id() const {
+  const short_id_t& family_id() const LIEF_LIFETIMEBOUND {
     return family_id_;
   }

   /// The image identifier of the primary module for the enclave.
-  const short_id_t& image_id() const {
+  const short_id_t& image_id() const LIEF_LIFETIMEBOUND {
     return image_id_;
   }

@@ -103,7 +103,7 @@ class LIEF_API EnclaveImport {
   }

   /// Resolved import name
-  const std::string& import_name() const {
+  const std::string& import_name() const LIEF_LIFETIMEBOUND {
     return import_name_;
   }

@@ -112,63 +112,61 @@ class LIEF_API EnclaveImport {
     return reserved_;
   }

-  EnclaveImport& type(TYPE ty) {
+  EnclaveImport& type(TYPE ty) LIEF_LIFETIMEBOUND {
     type_ = ty;
     return *this;
   }

-  EnclaveImport& min_security_version(uint32_t value) {
+  EnclaveImport& min_security_version(uint32_t value) LIEF_LIFETIMEBOUND {
     min_security_version_ = value;
     return *this;
   }

-  EnclaveImport& id(const long_id_t& value) {
+  EnclaveImport& id(const long_id_t& value) LIEF_LIFETIMEBOUND {
     id_ = value;
     return *this;
   }

-  EnclaveImport& family_id(const short_id_t& value) {
+  EnclaveImport& family_id(const short_id_t& value) LIEF_LIFETIMEBOUND {
     family_id_ = value;
     return *this;
   }

-  EnclaveImport& image_id(const short_id_t& value) {
+  EnclaveImport& image_id(const short_id_t& value) LIEF_LIFETIMEBOUND {
     image_id_ = value;
     return *this;
   }

-  EnclaveImport& import_name_rva(uint32_t value) {
+  EnclaveImport& import_name_rva(uint32_t value) LIEF_LIFETIMEBOUND {
     import_name_rva_ = value;
     return *this;
   }

-  EnclaveImport& reserved(uint32_t value) {
+  EnclaveImport& reserved(uint32_t value) LIEF_LIFETIMEBOUND {
     reserved_ = value;
     return *this;
   }

-  EnclaveImport& import_name(std::string name) {
+  EnclaveImport& import_name(std::string name) LIEF_LIFETIMEBOUND {
     import_name_ = std::move(name);
     return *this;
   }

   std::string to_string() const;

-  LIEF_API friend
-    std::ostream& operator<<(std::ostream& os, const EnclaveImport& meta)
-  {
+  LIEF_API friend std::ostream& operator<<(std::ostream& os,
+                                           const EnclaveImport& meta) {
     os << meta.to_string();
     return os;
   }

-  /// \private
-  LIEF_LOCAL static result<EnclaveImport>
-    parse(Parser& ctx, BinaryStream& stream);
+  /// @private
+  LIEF_LOCAL static result<EnclaveImport> parse(Parser& ctx, BinaryStream& stream);

   private:
   TYPE type_ = TYPE::NONE;
   uint32_t min_security_version_ = 0;
-  long_id_t id_;
+  long_id_t id_ = {0};
   short_id_t family_id_ = {0};
   short_id_t image_id_ = {0};
   uint32_t import_name_rva_ = 0;
diff --git a/deps/LIEF/include/LIEF/PE/LoadConfigurations/LoadConfiguration.hpp b/deps/LIEF/include/LIEF/PE/LoadConfigurations/LoadConfiguration.hpp
index c9e45c47025..5c84454ce7e 100644
--- a/deps/LIEF/include/LIEF/PE/LoadConfigurations/LoadConfiguration.hpp
+++ b/deps/LIEF/include/LIEF/PE/LoadConfigurations/LoadConfiguration.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -42,7 +42,8 @@ class VolatileMetadata;
 ///
 /// This structure is frequently updated by Microsoft to add new metadata.
 ///
-/// Reference: https://github.com/MicrosoftDocs/sdk-api/blob/cbeab4d371e8bc7e352c4d3a4c5819caa08c6a1c/sdk-api-src/content/winnt/ns-winnt-image_load_config_directory64.md#L2
+/// Reference:
+/// https://github.com/MicrosoftDocs/sdk-api/blob/cbeab4d371e8bc7e352c4d3a4c5819caa08c6a1c/sdk-api-src/content/winnt/ns-winnt-image_load_config_directory64.md#L2
 class LIEF_API LoadConfiguration : public Object {
   public:
   friend class Parser;
@@ -114,12 +115,14 @@ class LIEF_API LoadConfiguration : public Object {
   using it_const_guard_functions = const_ref_iterator<const guard_functions_t&>;

   using dynamic_relocations_t = std::vector<std::unique_ptr<DynamicRelocation>>;
-  using it_dynamic_relocations_t = ref_iterator<dynamic_relocations_t&, DynamicRelocation*>;
-  using it_const_dynamic_relocations_t = const_ref_iterator<const dynamic_relocations_t&, const DynamicRelocation*>;
+  using it_dynamic_relocations_t =
+      ref_iterator<dynamic_relocations_t&, DynamicRelocation*>;
+  using it_const_dynamic_relocations_t =
+      const_ref_iterator<const dynamic_relocations_t&, const DynamicRelocation*>;

   template<class PE_T>
-  static LIEF_LOCAL
-    std::unique_ptr<LoadConfiguration> parse(Parser& ctx, BinaryStream& stream);
+  static LIEF_LOCAL std::unique_ptr<LoadConfiguration> parse(Parser& ctx,
+                                                             BinaryStream& stream);

   LoadConfiguration();

@@ -254,7 +257,7 @@ class LIEF_API LoadConfiguration : public Object {
   }

   /// Return the list of the function RVA in the SEH table (if any)
-  const std::vector<uint32_t>& seh_functions() const {
+  const std::vector<uint32_t>& seh_functions() const LIEF_LIFETIMEBOUND {
     return seh_rva_;
   }

@@ -281,11 +284,11 @@ class LIEF_API LoadConfiguration : public Object {

   /// Iterator over the Control Flow Guard functions referenced by
   /// guard_cf_function_table()
-  it_const_guard_functions guard_cf_functions() const {
+  it_const_guard_functions guard_cf_functions() const LIEF_LIFETIMEBOUND {
     return guard_cf_functions_;
   }

-  it_guard_functions guard_cf_functions() {
+  it_guard_functions guard_cf_functions() LIEF_LIFETIMEBOUND {
     return guard_cf_functions_;
   }

@@ -306,11 +309,11 @@ class LIEF_API LoadConfiguration : public Object {
   std::vector<IMAGE_GUARD> guard_cf_flags_list() const;

   /// Code integrity information.
-  const CodeIntegrity* code_integrity() const {
+  const CodeIntegrity* code_integrity() const LIEF_LIFETIMEBOUND {
     return code_integrity_ ? &*code_integrity_ : nullptr;
   }

-  CodeIntegrity* code_integrity() {
+  CodeIntegrity* code_integrity() LIEF_LIFETIMEBOUND {
     return code_integrity_ ? &*code_integrity_ : nullptr;
   }

@@ -360,11 +363,11 @@ class LIEF_API LoadConfiguration : public Object {
   }

   /// Return an iterator over the Dynamic relocations (DVRT)
-  it_dynamic_relocations_t dynamic_relocations() {
+  it_dynamic_relocations_t dynamic_relocations() LIEF_LIFETIMEBOUND {
     return dynamic_relocs_;
   }

-  it_const_dynamic_relocations_t dynamic_relocations() const {
+  it_const_dynamic_relocations_t dynamic_relocations() const LIEF_LIFETIMEBOUND {
     return dynamic_relocs_;
   }

@@ -379,11 +382,11 @@ class LIEF_API LoadConfiguration : public Object {
   }

   /// Compiled Hybrid Portable Executable (CHPE) metadata (if any)
-  const CHPEMetadata* chpe_metadata() const {
+  const CHPEMetadata* chpe_metadata() const LIEF_LIFETIMEBOUND {
     return chpe_.get();
   }

-  CHPEMetadata* chpe_metadata() {
+  CHPEMetadata* chpe_metadata() LIEF_LIFETIMEBOUND {
     return chpe_.get();
   }

@@ -430,11 +433,11 @@ class LIEF_API LoadConfiguration : public Object {
     return enclave_configuration_ptr_;
   }

-  const EnclaveConfiguration* enclave_config() const {
+  const EnclaveConfiguration* enclave_config() const LIEF_LIFETIMEBOUND {
     return enclave_config_.get();
   }

-  EnclaveConfiguration* enclave_config() {
+  EnclaveConfiguration* enclave_config() LIEF_LIFETIMEBOUND {
     return enclave_config_.get();
   }

@@ -490,221 +493,255 @@ class LIEF_API LoadConfiguration : public Object {
     return uma_function_pointers_;
   }

-  LoadConfiguration& characteristics(uint32_t characteristics) {
+  LoadConfiguration& characteristics(uint32_t characteristics) LIEF_LIFETIMEBOUND {
     characteristics_ = characteristics;
     return *this;
   }

-  LoadConfiguration& size(uint32_t value) {
+  LoadConfiguration& size(uint32_t value) LIEF_LIFETIMEBOUND {
     return characteristics(value);
   }

-  LoadConfiguration& timedatestamp(uint32_t timedatestamp) {
+  LoadConfiguration& timedatestamp(uint32_t timedatestamp) LIEF_LIFETIMEBOUND {
     timedatestamp_ = timedatestamp;
     return *this;
   }

-  LoadConfiguration& major_version(uint16_t major_version) {
+  LoadConfiguration& major_version(uint16_t major_version) LIEF_LIFETIMEBOUND {
     major_version_ = major_version;
     return *this;
   }

-  LoadConfiguration& minor_version(uint16_t minor_version) {
+  LoadConfiguration& minor_version(uint16_t minor_version) LIEF_LIFETIMEBOUND {
     minor_version_ = minor_version;
     return *this;
   }

-  LoadConfiguration& global_flags_clear(uint32_t global_flags_clear) {
+  LoadConfiguration&
+      global_flags_clear(uint32_t global_flags_clear) LIEF_LIFETIMEBOUND {
     global_flags_clear_ = global_flags_clear;
     return *this;
   }

-  LoadConfiguration& global_flags_set(uint32_t global_flags_set) {
+  LoadConfiguration&
+      global_flags_set(uint32_t global_flags_set) LIEF_LIFETIMEBOUND {
     global_flags_set_ = global_flags_set;
     return *this;
   }

-  LoadConfiguration& critical_section_default_timeout(uint32_t critical_section_default_timeout) {
+  LoadConfiguration& critical_section_default_timeout(
+      uint32_t critical_section_default_timeout
+  ) LIEF_LIFETIMEBOUND {
     critical_section_default_timeout_ = critical_section_default_timeout;
     return *this;
   }

-  LoadConfiguration& decommit_free_block_threshold(uint64_t decommit_free_block_threshold) {
+  LoadConfiguration& decommit_free_block_threshold(
+      uint64_t decommit_free_block_threshold
+  ) LIEF_LIFETIMEBOUND {
     decommit_free_block_threshold_ = decommit_free_block_threshold;
     return *this;
   }

-  LoadConfiguration& decommit_total_free_threshold(uint64_t decommit_total_free_threshold) {
+  LoadConfiguration& decommit_total_free_threshold(
+      uint64_t decommit_total_free_threshold
+  ) LIEF_LIFETIMEBOUND {
     decommit_total_free_threshold_ = decommit_total_free_threshold;
     return *this;
   }

-  LoadConfiguration& lock_prefix_table(uint64_t lock_prefix_table) {
+  LoadConfiguration&
+      lock_prefix_table(uint64_t lock_prefix_table) LIEF_LIFETIMEBOUND {
     lock_prefix_table_ = lock_prefix_table;
     return *this;
   }

-  LoadConfiguration& maximum_allocation_size(uint64_t maximum_allocation_size) {
+  LoadConfiguration& maximum_allocation_size(
+      uint64_t maximum_allocation_size
+  ) LIEF_LIFETIMEBOUND {
     maximum_allocation_size_ = maximum_allocation_size;
     return *this;
   }

-  LoadConfiguration& virtual_memory_threshold(uint64_t virtual_memory_threshold) {
+  LoadConfiguration& virtual_memory_threshold(
+      uint64_t virtual_memory_threshold
+  ) LIEF_LIFETIMEBOUND {
     virtual_memory_threshold_ = virtual_memory_threshold;
     return *this;
   }

-  LoadConfiguration& process_affinity_mask(uint64_t process_affinity_mask) {
+  LoadConfiguration&
+      process_affinity_mask(uint64_t process_affinity_mask) LIEF_LIFETIMEBOUND {
     process_affinity_mask_ = process_affinity_mask;
     return *this;
   }

-  LoadConfiguration& process_heap_flags(uint32_t process_heap_flagsid) {
+  LoadConfiguration&
+      process_heap_flags(uint32_t process_heap_flagsid) LIEF_LIFETIMEBOUND {
     process_heap_flags_ = process_heap_flagsid;
     return *this;
   }

-  LoadConfiguration& csd_version(uint16_t csd_version) {
+  LoadConfiguration& csd_version(uint16_t csd_version) LIEF_LIFETIMEBOUND {
     csd_version_ = csd_version;
     return *this;
   }

-  LoadConfiguration& reserved1(uint16_t reserved1) {
+  LoadConfiguration& reserved1(uint16_t reserved1) LIEF_LIFETIMEBOUND {
     reserved1_ = reserved1;
     return *this;
   }

-  LoadConfiguration& dependent_load_flags(uint16_t flags) {
+  LoadConfiguration& dependent_load_flags(uint16_t flags) LIEF_LIFETIMEBOUND {
     reserved1(flags);
     return *this;
   }

-  LoadConfiguration& editlist(uint64_t editlist) {
+  LoadConfiguration& editlist(uint64_t editlist) LIEF_LIFETIMEBOUND {
     editlist_ = editlist;
     return *this;
   }

-  LoadConfiguration& security_cookie(uint64_t security_cookie) {
+  LoadConfiguration& security_cookie(uint64_t security_cookie) LIEF_LIFETIMEBOUND {
     security_cookie_ = security_cookie;
     return *this;
   }

-  LoadConfiguration& se_handler_table(uint64_t se_handler_table) {
+  LoadConfiguration&
+      se_handler_table(uint64_t se_handler_table) LIEF_LIFETIMEBOUND {
     se_handler_table_ = se_handler_table;
     return *this;
   }

-  LoadConfiguration& se_handler_count(uint64_t se_handler_count) {
+  LoadConfiguration&
+      se_handler_count(uint64_t se_handler_count) LIEF_LIFETIMEBOUND {
     se_handler_count_ = se_handler_count;
     return *this;
   }

-  LoadConfiguration& guard_cf_check_function_pointer(uint64_t check_pointer) {
+  LoadConfiguration&
+      guard_cf_check_function_pointer(uint64_t check_pointer) LIEF_LIFETIMEBOUND {
     guard_cf_check_function_pointer_ = check_pointer;
     return *this;
   }

-  LoadConfiguration& guard_cf_dispatch_function_pointer(uint64_t dispatch_pointer) {
+  LoadConfiguration& guard_cf_dispatch_function_pointer(
+      uint64_t dispatch_pointer
+  ) LIEF_LIFETIMEBOUND {
     guard_cf_dispatch_function_pointer_ = dispatch_pointer;
     return *this;
   }

-  LoadConfiguration& guard_cf_function_table(uint64_t guard_cf_function_table) {
+  LoadConfiguration& guard_cf_function_table(
+      uint64_t guard_cf_function_table
+  ) LIEF_LIFETIMEBOUND {
     guard_cf_function_table_ = guard_cf_function_table;
     return *this;
   }

-  LoadConfiguration& guard_cf_function_count(uint64_t guard_cf_function_count) {
+  LoadConfiguration& guard_cf_function_count(
+      uint64_t guard_cf_function_count
+  ) LIEF_LIFETIMEBOUND {
     guard_cf_function_count_ = guard_cf_function_count;
     return *this;
   }

-  LoadConfiguration& guard_flags(IMAGE_GUARD flags) {
+  LoadConfiguration& guard_flags(IMAGE_GUARD flags) LIEF_LIFETIMEBOUND {
     flags_ = (uint32_t)flags;
     return *this;
   }

-  LoadConfiguration& guard_flags(uint32_t flags) {
+  LoadConfiguration& guard_flags(uint32_t flags) LIEF_LIFETIMEBOUND {
     flags_ = flags;
     return *this;
   }

-  LoadConfiguration& code_integrity(CodeIntegrity CI) {
+  LoadConfiguration& code_integrity(CodeIntegrity CI) LIEF_LIFETIMEBOUND {
     code_integrity_ = std::move(CI);
     return *this;
   }

-  LoadConfiguration& guard_address_taken_iat_entry_table(uint64_t value) {
+  LoadConfiguration&
+      guard_address_taken_iat_entry_table(uint64_t value) LIEF_LIFETIMEBOUND {
     guard_address_taken_iat_entry_table_ = value;
     return *this;
   }

-  LoadConfiguration& guard_address_taken_iat_entry_count(uint64_t value) {
+  LoadConfiguration&
+      guard_address_taken_iat_entry_count(uint64_t value) LIEF_LIFETIMEBOUND {
     guard_address_taken_iat_entry_count_ = value;
     return *this;
   }

-  LoadConfiguration& guard_long_jump_target_table(uint64_t value) {
+  LoadConfiguration&
+      guard_long_jump_target_table(uint64_t value) LIEF_LIFETIMEBOUND {
     guard_long_jump_target_table_ = value;
     return *this;
   }

-  LoadConfiguration& guard_long_jump_target_count(uint64_t value) {
+  LoadConfiguration&
+      guard_long_jump_target_count(uint64_t value) LIEF_LIFETIMEBOUND {
     guard_long_jump_target_count_ = value;
     return *this;
   }

-  LoadConfiguration& dynamic_value_reloc_table(uint64_t value) {
+  LoadConfiguration& dynamic_value_reloc_table(uint64_t value) LIEF_LIFETIMEBOUND {
     dynamic_value_reloc_table_ = value;
     return *this;
   }

-  LoadConfiguration& hybrid_metadata_pointer(uint64_t value) {
+  LoadConfiguration& hybrid_metadata_pointer(uint64_t value) LIEF_LIFETIMEBOUND {
     hybrid_metadata_pointer_ = value;
     return *this;
   }

-  LoadConfiguration& guard_rf_failure_routine(uint64_t value) {
+  LoadConfiguration& guard_rf_failure_routine(uint64_t value) LIEF_LIFETIMEBOUND {
     guard_rf_failure_routine_ = value;
     return *this;
   }

-  LoadConfiguration& guard_rf_failure_routine_function_pointer(uint64_t value) {
+  LoadConfiguration& guard_rf_failure_routine_function_pointer(
+      uint64_t value
+  ) LIEF_LIFETIMEBOUND {
     guard_rf_failure_routine_function_pointer_ = value;
     return *this;
   }

-  LoadConfiguration& dynamic_value_reloctable_offset(uint32_t value) {
+  LoadConfiguration&
+      dynamic_value_reloctable_offset(uint32_t value) LIEF_LIFETIMEBOUND {
     dynamic_value_reloctable_offset_ = value;
     return *this;
   }

-  LoadConfiguration& dynamic_value_reloctable_section(uint16_t value) {
+  LoadConfiguration&
+      dynamic_value_reloctable_section(uint16_t value) LIEF_LIFETIMEBOUND {
     dynamic_value_reloctable_section_ = value;
     return *this;
   }

-  LoadConfiguration& reserved2(uint16_t value) {
+  LoadConfiguration& reserved2(uint16_t value) LIEF_LIFETIMEBOUND {
     reserved2_ = value;
     return *this;
   }

-  LoadConfiguration& guard_rf_verify_stackpointer_function_pointer(uint64_t value) {
+  LoadConfiguration& guard_rf_verify_stackpointer_function_pointer(
+      uint64_t value
+  ) LIEF_LIFETIMEBOUND {
     guardrf_verify_stackpointer_function_pointer_ = value;
     return *this;
   }

-  LoadConfiguration& hotpatch_table_offset(uint32_t value) {
+  LoadConfiguration& hotpatch_table_offset(uint32_t value) LIEF_LIFETIMEBOUND {
     hotpatch_table_offset_ = value;
     return *this;
   }

-  LoadConfiguration& reserved3(uint32_t value) {
+  LoadConfiguration& reserved3(uint32_t value) LIEF_LIFETIMEBOUND {
     reserved3_ = value;
     return *this;
   }

-  LoadConfiguration& enclave_configuration_ptr(uint64_t value) {
+  LoadConfiguration& enclave_configuration_ptr(uint64_t value) LIEF_LIFETIMEBOUND {
     enclave_configuration_ptr_ = value;
     return *this;
   }
@@ -760,40 +797,40 @@ class LIEF_API LoadConfiguration : public Object {

   std::string to_string() const;

-  LIEF_API friend
-    std::ostream& operator<<(std::ostream& os, const LoadConfiguration& config)
-  {
+  LIEF_API friend std::ostream& operator<<(std::ostream& os,
+                                           const LoadConfiguration& config) {
     os << config.to_string();
     return os;
   }

-  /// \private
-  LIEF_LOCAL static ok_error_t parse_seh_table(
-    Parser& ctx, BinaryStream& stream, LoadConfiguration& config);
+  /// @private
+  LIEF_LOCAL static ok_error_t parse_seh_table(Parser& ctx, BinaryStream& stream,
+                                               LoadConfiguration& config);

-  /// \private
-  LIEF_LOCAL static ok_error_t parse_guard_functions(
-    Parser& ctx, BinaryStream& stream, LoadConfiguration& config,
-    size_t count, guard_functions_t LoadConfiguration::* dst);
+  /// @private
+  LIEF_LOCAL static ok_error_t
+      parse_guard_functions(Parser& ctx, BinaryStream& stream,
+                            LoadConfiguration& config, size_t count,
+                            guard_functions_t LoadConfiguration::* dst);

-  /// \private
-  LIEF_LOCAL static ok_error_t parse_dyn_relocs(
-    Parser& ctx, LoadConfiguration& config);
+  /// @private
+  LIEF_LOCAL static ok_error_t parse_dyn_relocs(Parser& ctx,
+                                                LoadConfiguration& config);

-  /// \private
+  /// @private
   template<uint8_t version, class PE_T>
-  LIEF_LOCAL static ok_error_t parse_dyn_relocs_entries(
-    Parser& ctx, BinaryStream& stream, LoadConfiguration& config,
-    size_t size);
+  LIEF_LOCAL static ok_error_t
+      parse_dyn_relocs_entries(Parser& ctx, BinaryStream& stream,
+                               LoadConfiguration& config, size_t size);

-  /// \private
+  /// @private
   template<class PE_T>
-  LIEF_LOCAL static ok_error_t parse_enclave_config(
-    Parser& ctx, LoadConfiguration& config);
+  LIEF_LOCAL static ok_error_t parse_enclave_config(Parser& ctx,
+                                                    LoadConfiguration& config);

-  /// \private
-  LIEF_LOCAL static ok_error_t parse_volatile_metadata(
-    Parser& ctx, LoadConfiguration& config);
+  /// @private
+  LIEF_LOCAL static ok_error_t parse_volatile_metadata(Parser& ctx,
+                                                       LoadConfiguration& config);

   protected:
   uint32_t characteristics_ = 0;
@@ -816,7 +853,7 @@ class LIEF_API LoadConfiguration : public Object {
   uint64_t process_affinity_mask_ = 0;
   uint32_t process_heap_flags_ = 0;
   uint16_t csd_version_ = 0;
-  uint16_t reserved1_ = 0;  // named DependentLoadFlags in recent headers
+  uint16_t reserved1_ = 0; // named DependentLoadFlags in recent headers
   uint64_t editlist_ = 0;
   uint64_t security_cookie_ = 0;

diff --git a/deps/LIEF/include/LIEF/PE/LoadConfigurations/VolatileMetadata.hpp b/deps/LIEF/include/LIEF/PE/LoadConfigurations/VolatileMetadata.hpp
index 073ccabc48a..495f305ac41 100644
--- a/deps/LIEF/include/LIEF/PE/LoadConfigurations/VolatileMetadata.hpp
+++ b/deps/LIEF/include/LIEF/PE/LoadConfigurations/VolatileMetadata.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -76,7 +76,7 @@ class LIEF_API VolatileMetadata {
     return access_table_rva_;
   }

-  const access_table_t& access_table() const {
+  const access_table_t& access_table() const LIEF_LIFETIMEBOUND {
     return access_table_;
   }

@@ -89,55 +89,55 @@ class LIEF_API VolatileMetadata {
   }

   uint32_t info_ranges_size() const {
-    static_assert(sizeof(range_t) == 8, "Can't be used for computing the raw size");
+    static_assert(sizeof(range_t) == 8,
+                  "Can't be used for computing the raw size");
     return info_ranges_.size() * sizeof(range_t);
   }

-  it_const_info_ranges_t info_ranges() const {
+  it_const_info_ranges_t info_ranges() const LIEF_LIFETIMEBOUND {
     return info_ranges_;
   }

-  it_info_ranges_t info_ranges() {
+  it_info_ranges_t info_ranges() LIEF_LIFETIMEBOUND {
     return info_ranges_;
   }

-  VolatileMetadata& size(uint32_t value) {
+  VolatileMetadata& size(uint32_t value) LIEF_LIFETIMEBOUND {
     size_ = value;
     return *this;
   }

-  VolatileMetadata& min_version(uint16_t min) {
+  VolatileMetadata& min_version(uint16_t min) LIEF_LIFETIMEBOUND {
     min_version_ = min;
     return *this;
   }

-  VolatileMetadata& max_version(uint16_t max) {
+  VolatileMetadata& max_version(uint16_t max) LIEF_LIFETIMEBOUND {
     max_version_ = max;
     return *this;
   }

-  VolatileMetadata& access_table_rva(uint32_t value) {
+  VolatileMetadata& access_table_rva(uint32_t value) LIEF_LIFETIMEBOUND {
     access_table_rva_ = value;
     return *this;
   }

-  VolatileMetadata& info_range_rva(uint32_t value) {
+  VolatileMetadata& info_range_rva(uint32_t value) LIEF_LIFETIMEBOUND {
     info_range_rva_ = value;
     return *this;
   }

   std::string to_string() const;

-  LIEF_API friend
-    std::ostream& operator<<(std::ostream& os, const VolatileMetadata& meta)
-  {
+  LIEF_API friend std::ostream& operator<<(std::ostream& os,
+                                           const VolatileMetadata& meta) {
     os << meta.to_string();
     return os;
   }

-  /// \private
-  LIEF_LOCAL static std::unique_ptr<VolatileMetadata>
-    parse(Parser& ctx, BinaryStream& stream);
+  /// @private
+  LIEF_LOCAL static std::unique_ptr<VolatileMetadata> parse(Parser& ctx,
+                                                            BinaryStream& stream);

   private:
   uint32_t size_ = 0;
@@ -149,7 +149,6 @@ class LIEF_API VolatileMetadata {

   access_table_t access_table_;
   info_ranges_t info_ranges_;
-
 };
 }
 }
diff --git a/deps/LIEF/include/LIEF/PE/OptionalHeader.hpp b/deps/LIEF/include/LIEF/PE/OptionalHeader.hpp
index 0a344d45f1e..34c859b2ca1 100644
--- a/deps/LIEF/include/LIEF/PE/OptionalHeader.hpp
+++ b/deps/LIEF/include/LIEF/PE/OptionalHeader.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -19,6 +19,7 @@
 #include <vector>
 #include <cstdint>

+#include "LIEF/compiler_attributes.hpp"
 #include "LIEF/Object.hpp"
 #include "LIEF/visibility.h"

@@ -42,37 +43,60 @@ struct pe64_optional_header;
 class LIEF_API OptionalHeader : public Object {
   friend class Parser;
   friend class Binary;
+
   public:
+  enum class DLL_CHARACTERISTICS : size_t {
+    /// ASLR with 64 bit address space.
+    HIGH_ENTROPY_VA = 0x0020,
+
+    /// DLL can be relocated at load time.
+    DYNAMIC_BASE = 0x0040,
+
+    /// Code integrity checks are enforced.
+    FORCE_INTEGRITY = 0x0080,
+
+    /// Image is NX compatible.
+    NX_COMPAT = 0x0100,
+
+    /// Isolation aware, but do not isolate the image.
+    NO_ISOLATION = 0x0200,
+
+    /// Does not use structured exception handling (SEH). No SEH handler may be
+    /// called in this image.
+    NO_SEH = 0x0400,
+
+    /// Do not bind the image.
+    NO_BIND = 0x0800,
+
+    /// Image should execute in an AppContainer.
+    APPCONTAINER = 0x1000,
+
+    /// A WDM driver.
+    WDM_DRIVER = 0x2000,
+
+    /// Image supports Control Flow Guard.
+    GUARD_CF = 0x4000,

-  enum class DLL_CHARACTERISTICS: size_t  {
-    HIGH_ENTROPY_VA       = 0x0020, ///< ASLR with 64 bit address space.
-    DYNAMIC_BASE          = 0x0040, ///< DLL can be relocated at load time.
-    FORCE_INTEGRITY       = 0x0080, ///< Code integrity checks are enforced.
-    NX_COMPAT             = 0x0100, ///< Image is NX compatible.
-    NO_ISOLATION          = 0x0200, ///< Isolation aware, but do not isolate the image.
-    NO_SEH                = 0x0400, ///< Does not use structured exception handling (SEH). No SEH handler may be called in this image.
-    NO_BIND               = 0x0800, ///< Do not bind the image.
-    APPCONTAINER          = 0x1000, ///< Image should execute in an AppContainer.
-    WDM_DRIVER            = 0x2000, ///< A WDM driver.
-    GUARD_CF              = 0x4000, ///< Image supports Control Flow Guard.
-    TERMINAL_SERVER_AWARE = 0x8000  ///< Terminal Server aware.
+    /// Terminal Server aware.
+    TERMINAL_SERVER_AWARE = 0x8000,
   };

-  enum class SUBSYSTEM: size_t  {
-    UNKNOWN                  = 0,  ///< An unknown subsystem.
-    NATIVE                   = 1,  ///< Device drivers and native Windows processes
-    WINDOWS_GUI              = 2,  ///< The Windows GUI subsystem.
-    WINDOWS_CUI              = 3,  ///< The Windows character subsystem.
-    OS2_CUI                  = 5,  ///< The OS/2 character subsytem.
-    POSIX_CUI                = 7,  ///< The POSIX character subsystem.
-    NATIVE_WINDOWS           = 8,  ///< Native Windows 9x driver.
-    WINDOWS_CE_GUI           = 9,  ///< Windows CE.
-    EFI_APPLICATION          = 10, ///< An EFI application.
-    EFI_BOOT_SERVICE_DRIVER  = 11, ///< An EFI driver with boot services.
-    EFI_RUNTIME_DRIVER       = 12, ///< An EFI driver with run-time services.
-    EFI_ROM                  = 13, ///< An EFI ROM image.
-    XBOX                     = 14, ///< XBOX.
-    WINDOWS_BOOT_APPLICATION = 16  ///< A BCD application.
+  enum class SUBSYSTEM : size_t {
+    UNKNOWN = 0,                   ///< An unknown subsystem.
+    NATIVE = 1,                    ///< Device drivers and native Windows processes
+    WINDOWS_GUI = 2,               ///< The Windows GUI subsystem.
+    WINDOWS_CUI = 3,               ///< The Windows character subsystem.
+    OS2_CUI = 5,                   ///< The OS/2 character subsystem.
+    POSIX_CUI = 7,                 ///< The POSIX character subsystem.
+    NATIVE_WINDOWS = 8,            ///< Native Windows 9x driver.
+    WINDOWS_CE_GUI = 9,            ///< Windows CE.
+    EFI_APPLICATION = 10,          ///< An EFI application.
+    EFI_BOOT_SERVICE_DRIVER = 11,  ///< An EFI driver with boot services.
+    EFI_RUNTIME_DRIVER = 12,       ///< An EFI driver with run-time services.
+    EFI_ROM = 13,                  ///< An EFI ROM image.
+    XBOX = 14,                     ///< XBOX.
+    WINDOWS_BOOT_APPLICATION = 16, ///< A BCD application.
+    XBOX_CODE_CATALOG = 17,        ///< Security Metadata Containers
   };

   OptionalHeader(const details::pe32_optional_header& header);
@@ -100,34 +124,38 @@ class LIEF_API OptionalHeader : public Object {
   }

   /// The size of the code ``.text`` section or the sum of
-  /// all the sections that contain code (i.e. PE::Section with the flag Section::CHARACTERISTICS::CNT_CODE)
+  /// all the sections that contain code (i.e. PE::Section with the flag
+  /// Section::CHARACTERISTICS::CNT_CODE)
   uint32_t sizeof_code() const {
     return sizeof_code_;
   }

-  /// The size of the initialized data which are usually located in the ``.data`` section.
-  /// If the initialized data are split across multiple sections, it is the sum of the sections.
+  /// The size of the initialized data which are usually located in the ``.data``
+  /// section. If the initialized data are split across multiple sections, it is
+  /// the sum of the sections.
   ///
-  /// The sections associated with the initialized data are usually identified with the
-  /// flag Section::CHARACTERISTICS::CNT_INITIALIZED_DATA
+  /// The sections associated with the initialized data are usually identified with
+  /// the flag Section::CHARACTERISTICS::CNT_INITIALIZED_DATA
   uint32_t sizeof_initialized_data() const {
     return sizeof_initialized_data_;
   }

-  /// The size of the uninitialized data which are usually located in the ``.bss`` section.
-  /// If the uninitialized data are split across multiple sections, it is the sum of the sections.
+  /// The size of the uninitialized data which are usually located in the ``.bss``
+  /// section. If the uninitialized data are split across multiple sections, it is
+  /// the sum of the sections.
   ///
-  /// The sections associated with the uninitialized data are usually identified with the
-  /// flag Section::CHARACTERISTICS::CNT_UNINITIALIZED_DATA
+  /// The sections associated with the uninitialized data are usually identified
+  /// with the flag Section::CHARACTERISTICS::CNT_UNINITIALIZED_DATA
   uint32_t sizeof_uninitialized_data() const {
     return sizeof_uninitialized_data_;
   }

-  /// The address of the entry point relative to the image base when the executable file is
-  /// loaded into memory. For program images, this is the starting address. For device
-  /// drivers, this is the address of the initialization function.
+  /// The address of the entry point relative to the image base when the executable
+  /// file is loaded into memory. For program images, this is the starting address.
+  /// For device drivers, this is the address of the initialization function.
   ///
-  /// An entry point is optional for DLLs. When no entry point is present, this field must be zero.
+  /// An entry point is optional for DLLs. When no entry point is present, this
+  /// field must be zero.
   uint32_t addressof_entrypoint() const {
     return entrypoint_;
   }
@@ -157,8 +185,8 @@ class LIEF_API OptionalHeader : public Object {
     return section_align_;
   }

-  /// The section's file alignment. This value must be a power of 2 between 512 and 64K.
-  /// The default value is usually 512
+  /// The section's file alignment. This value must be a power of 2 between 512 and
+  /// 64K. The default value is usually 512
   uint32_t file_alignment() const {
     return file_align_;
   }
@@ -199,22 +227,27 @@ class LIEF_API OptionalHeader : public Object {
     return win32_version_value_;
   }

-  /// The size (in bytes) of the image, including all headers, as the image is loaded in memory.
+  /// The size (in bytes) of the image, including all headers, as the image is
+  /// loaded in memory.
   ///
-  /// It must be a multiple of section_alignment and should match Binary::virtual_size
+  /// It must be a multiple of section_alignment and should match
+  /// Binary::virtual_size
   uint32_t sizeof_image() const {
     return sizeof_image_;
   }

-  /// Size of the DosHeader + PE Header + Section headers rounded up to a multiple of the file_alignment
+  /// Size of the DosHeader + PE Header + Section headers rounded up to a multiple
+  /// of the file_alignment
   uint32_t sizeof_headers() const {
     return sizeof_headers_;
   }

-  /// The image file checksum. The algorithm for computing the checksum is incorporated into ``IMAGHELP.DLL``.
+  /// The image file checksum. The algorithm for computing the checksum is
+  /// incorporated into ``IMAGHELP.DLL``.
   ///
-  /// The following are checked for validation at load time all **drivers**, any **DLL loaded at boot**
-  /// time, and any **DLL** that is loaded into a **critical** Windows process.
+  /// The following are checked for validation at load time all **drivers**, any
+  /// **DLL loaded at boot** time, and any **DLL** that is loaded into a
+  /// **critical** Windows process.
   uint32_t checksum() const {
     return checksum_;
   }
@@ -225,8 +258,8 @@ class LIEF_API OptionalHeader : public Object {
   }

   /// Some characteristics of the underlying binary like the support of the PIE.
-  /// The prefix ``dll`` comes from the official PE specifications but these characteristics
-  /// are also used for **executables**
+  /// The prefix ``dll`` comes from the official PE specifications but these
+  /// characteristics are also used for **executables**
   uint32_t dll_characteristics() const {
     return dll_characteristics_;
   }
@@ -254,7 +287,8 @@ class LIEF_API OptionalHeader : public Object {
     return sizeof_heap_commit_;
   }

-  /// According to the PE specifications, this value is *reserved* and **should** be 0.
+  /// According to the PE specifications, this value is *reserved* and **should**
+  /// be 0.
   uint32_t loader_flags() const {
     return loader_flags_;
   }
@@ -269,7 +303,8 @@ class LIEF_API OptionalHeader : public Object {
     return (dll_characteristics() & static_cast<uint32_t>(c)) != 0;
   }

-  /// Return the list of the dll_characteristics as an std::set of DLL_CHARACTERISTICS
+  /// Return the list of the dll_characteristics as an std::set of
+  /// DLL_CHARACTERISTICS
   std::vector<DLL_CHARACTERISTICS> dll_characteristics_list() const;

   /// Add a DLL_CHARACTERISTICS to the current characteristics
@@ -279,7 +314,7 @@ class LIEF_API OptionalHeader : public Object {

   /// Remove a DLL_CHARACTERISTICS from the current characteristics
   void remove(DLL_CHARACTERISTICS c) {
-    dll_characteristics(dll_characteristics() & (~ static_cast<uint32_t>(c)));
+    dll_characteristics(dll_characteristics() & (~static_cast<uint32_t>(c)));
   }

   void magic(PE_TYPE magic) {
@@ -404,50 +439,51 @@ class LIEF_API OptionalHeader : public Object {

   void accept(Visitor& visitor) const override;

-  OptionalHeader& operator+=(DLL_CHARACTERISTICS c) {
+  OptionalHeader& operator+=(DLL_CHARACTERISTICS c) LIEF_LIFETIMEBOUND {
     add(c);
     return *this;
   }
-  OptionalHeader& operator-=(DLL_CHARACTERISTICS c) {
+  OptionalHeader& operator-=(DLL_CHARACTERISTICS c) LIEF_LIFETIMEBOUND {
     remove(c);
     return *this;
   }

-  LIEF_API friend std::ostream& operator<<(std::ostream& os, const OptionalHeader& entry);
+  LIEF_API friend std::ostream& operator<<(std::ostream& os,
+                                           const OptionalHeader& entry);

   private:
   OptionalHeader() = default;

-  PE_TYPE   magic_ = PE_TYPE::PE32;
-  uint8_t   major_linker_version_ = 0;
-  uint8_t   minor_linker_version_ = 0;
-  uint32_t  sizeof_code_ = 0;
-  uint32_t  sizeof_initialized_data_ = 0;
-  uint32_t  sizeof_uninitialized_data_ = 0;
-  uint32_t  entrypoint_ = 0;
-  uint32_t  baseof_code_ = 0;
-  uint32_t  baseof_data_ = 0;
-  uint64_t  imagebase_ = 0;
-  uint32_t  section_align_ = 0;
-  uint32_t  file_align_ = 0;
-  uint16_t  major_os_version_ = 0;
-  uint16_t  minor_os_version_ = 0;
-  uint16_t  major_image_version_ = 0;
-  uint16_t  minor_image_version_ = 0;
-  uint16_t  major_subsys_version_ = 0;
-  uint16_t  minor_subsys_version_ = 0;
-  uint32_t  win32_version_value_ = 0;
-  uint32_t  sizeof_image_ = 0;
-  uint32_t  sizeof_headers_ = 0;
-  uint32_t  checksum_ = 0;
+  PE_TYPE magic_ = PE_TYPE::PE32;
+  uint8_t major_linker_version_ = 0;
+  uint8_t minor_linker_version_ = 0;
+  uint32_t sizeof_code_ = 0;
+  uint32_t sizeof_initialized_data_ = 0;
+  uint32_t sizeof_uninitialized_data_ = 0;
+  uint32_t entrypoint_ = 0;
+  uint32_t baseof_code_ = 0;
+  uint32_t baseof_data_ = 0;
+  uint64_t imagebase_ = 0;
+  uint32_t section_align_ = 0;
+  uint32_t file_align_ = 0;
+  uint16_t major_os_version_ = 0;
+  uint16_t minor_os_version_ = 0;
+  uint16_t major_image_version_ = 0;
+  uint16_t minor_image_version_ = 0;
+  uint16_t major_subsys_version_ = 0;
+  uint16_t minor_subsys_version_ = 0;
+  uint32_t win32_version_value_ = 0;
+  uint32_t sizeof_image_ = 0;
+  uint32_t sizeof_headers_ = 0;
+  uint32_t checksum_ = 0;
   SUBSYSTEM subsystem_ = SUBSYSTEM::UNKNOWN;
-  uint32_t  dll_characteristics_ = 0;
-  uint64_t  sizeof_stack_reserve_ = 0;
-  uint64_t  sizeof_stack_commit_ = 0;
-  uint64_t  sizeof_heap_reserve_ = 0;
-  uint64_t  sizeof_heap_commit_ = 0;
-  uint32_t  loader_flags_ = 0;
-  uint32_t  nb_rva_size_ = 0;
+  uint32_t dll_characteristics_ = 0;
+  uint64_t sizeof_stack_reserve_ = 0;
+  uint64_t sizeof_stack_commit_ = 0;
+  uint64_t sizeof_heap_reserve_ = 0;
+  uint64_t sizeof_heap_commit_ = 0;
+  uint32_t loader_flags_ = 0;
+  uint32_t nb_rva_size_ = 0;
 };

 LIEF_API const char* to_string(OptionalHeader::DLL_CHARACTERISTICS);
diff --git a/deps/LIEF/include/LIEF/PE/Parser.hpp b/deps/LIEF/include/LIEF/PE/Parser.hpp
index 142e47b9122..1af350655dd 100644
--- a/deps/LIEF/include/LIEF/PE/Parser.hpp
+++ b/deps/LIEF/include/LIEF/PE/Parser.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -45,18 +45,25 @@ class RelocationEntry;

 namespace details {
 struct pe_debug;
+struct pe_section;
 }

-/// Main interface to parse PE binaries. In particular the **static** functions:
-/// Parser::parse should be used to get a LIEF::PE::Binary
+/// Main interface to parse PE binaries. In particular, the **static**
+/// Parser::parse functions should be used to get a LIEF::PE::Binary instance.
 class LIEF_API Parser : public LIEF::Parser {
   public:
-
   /// Maximum size of the data read
   static constexpr size_t MAX_DATA_SIZE = 3_GB;

   static constexpr size_t MAX_TLS_CALLBACKS = 3000;

+  // Bounds the import thunk loop to prevent hangs on malformed IATs
+  static constexpr size_t MAX_IMPORT_ENTRIES = 0x10000;
+
+  // Bounds peek_string_at to prevent multi-megabyte reads on invalid RVAs
+  // According to https://stackoverflow.com/a/23340781
+  static constexpr size_t MAX_IMPORT_NAME_SIZE = 0x1000;
+
   // According to https://stackoverflow.com/a/265782/87207
   static constexpr size_t MAX_DLL_NAME_SIZE = 255;

@@ -66,36 +73,76 @@ class LIEF_API Parser : public LIEF::Parser {
   public:
   /// Check if the given name is a valid import.
   ///
-  /// This check verified that:
-  ///   1. The name is not too large or empty (cf. https://stackoverflow.com/a/23340781)
+  /// This check verifies that:
+  ///   1. The name is not too large or empty (cf.
+  ///   https://stackoverflow.com/a/23340781)
   ///   2. All the characters are printable
   static bool is_valid_import_name(const std::string& name);

   /// Check if the given name is a valid DLL name.
   ///
   /// This check verifies that:
-  ///   1. The name of the DLL is at 4
+  ///   1. The name of the DLL is at least 4 characters long
   ///   2. All the characters are printable
   static bool is_valid_dll_name(const std::string& name);

   public:
   /// Parse a PE binary from the given filename
-  static std::unique_ptr<Binary> parse(const std::string& filename,
-                                       const ParserConfig& conf = ParserConfig::default_conf());
+  static std::unique_ptr<Binary>
+      parse(const std::string& filename,
+            const ParserConfig& conf = ParserConfig::default_conf());

   /// Parse a PE binary from a data buffer
-  static std::unique_ptr<Binary> parse(std::vector<uint8_t> data,
-                                       const ParserConfig& conf = ParserConfig::default_conf());
+  static std::unique_ptr<Binary>
+      parse(std::vector<uint8_t> data,
+            const ParserConfig& conf = ParserConfig::default_conf());

-  static std::unique_ptr<Binary> parse(const uint8_t* buffer, size_t size,
-                                       const ParserConfig& conf = ParserConfig::default_conf());
+  static std::unique_ptr<Binary>
+      parse(const uint8_t* buffer, size_t size,
+            const ParserConfig& conf = ParserConfig::default_conf());

   /// Parse a PE binary from the given BinaryStream
-  static std::unique_ptr<Binary> parse(std::unique_ptr<BinaryStream> stream,
-                                       const ParserConfig& conf = ParserConfig::default_conf());
+  static std::unique_ptr<Binary>
+      parse(std::unique_ptr<BinaryStream> stream,
+            const ParserConfig& conf = ParserConfig::default_conf());
+
+  /// Parse the PE binary at the given memory address
+  static std::unique_ptr<Binary>
+      parse_from_memory(uintptr_t address,
+                        const ParserConfig& config = ParserConfig::default_conf());
+
+  /// Parse the PE binary at the given memory address and with the given size
+  static std::unique_ptr<Binary>
+      parse_from_memory(uintptr_t address, size_t size,
+                        const ParserConfig& config = ParserConfig::default_conf());
+
+  /// Parse a PE binary from a memory dump located on disk.
+  ///
+  /// A dump is a raw capture of the process memory that was mapped starting at
+  /// the virtual address `addr`. This is typically used to parse a PE image that
+  /// has been dumped from memory (e.g. from a debugger or a runtime hook).
+  ///
+  /// @param[in] filepath Path to the file that contains the memory dump
+  /// @param[in] addr     Virtual address at which the dump was mapped
+  /// @param[in] config   Optional configuration for the parser
+  static std::unique_ptr<Binary>
+      parse_from_dump(const std::string& filepath, uint64_t addr,
+                      const ParserConfig& config = ParserConfig::default_conf());
+
+  /// Same as parse_from_dump(const std::string&, uint64_t, const ParserConfig&)
+  /// but the dump is wrapped in the given **non-owned** stream.
+  static std::unique_ptr<Binary>
+      parse_from_dump(BinaryStream& stream, uint64_t addr,
+                      const ParserConfig& config = ParserConfig::default_conf());
+
+  /// Same as parse_from_dump(const std::string&, uint64_t, const ParserConfig&)
+  /// but the dump is wrapped in the given **owned** stream.
+  static std::unique_ptr<Binary>
+      parse_from_dump(std::unique_ptr<BinaryStream> stream, uint64_t addr,
+                      const ParserConfig& config = ParserConfig::default_conf());

   Parser& operator=(const Parser& copy) = delete;
-  Parser(const Parser& copy)            = delete;
+  Parser(const Parser& copy) = delete;

   COFF::String* find_coff_string(uint32_t offset) const;

@@ -152,6 +199,9 @@ class LIEF_API Parser : public LIEF::Parser {
   ok_error_t parse_exports();
   ok_error_t parse_sections();

+  ok_error_t read_section_content(const details::pe_section& raw_sec,
+                                  uint32_t index, Section& section);
+
   template<typename PE_T>
   ok_error_t parse_headers();

@@ -204,6 +254,18 @@ class LIEF_API Parser : public LIEF::Parser {
   ok_error_t parse_rich_header();
   ok_error_t parse_chpe_exceptions();

+  template<typename PE_T>
+  ok_error_t undo_relocations();
+
+  template<typename PE_T>
+  ok_error_t fix_iat();
+
+  template<typename PE_T>
+  ok_error_t fix_tls();
+
+  template<typename PE_T>
+  ok_error_t fix_load_config();
+
   PE_TYPE type_ = PE_TYPE::PE32_PLUS;
   std::unique_ptr<Binary> binary_;
   std::unique_ptr<BinaryStream> stream_;
diff --git a/deps/LIEF/include/LIEF/PE/ParserConfig.hpp b/deps/LIEF/include/LIEF/PE/ParserConfig.hpp
index e343fb7ec04..de0b9a8db85 100644
--- a/deps/LIEF/include/LIEF/PE/ParserConfig.hpp
+++ b/deps/LIEF/include/LIEF/PE/ParserConfig.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -18,17 +18,20 @@
 #include <string>
 #include <ostream>
 #include "LIEF/visibility.h"
+#include "LIEF/optional.hpp"

 namespace LIEF {
 namespace PE {

-/// This structure is used to tweak the PE Parser (PE::Parser)
+/// This structure is used to configure the behavior of the PE Parser (PE::Parser).
 struct LIEF_API ParserConfig {
+  /// Returns the default configuration for the PE Parser.
   static const ParserConfig& default_conf() {
     static const ParserConfig DEFAULT;
     return DEFAULT;
   }

+  /// Returns a configuration that enables all optional parsing features.
   static ParserConfig all() {
     ParserConfig config;
     config.parse_exceptions = true;
@@ -36,38 +39,42 @@ struct LIEF_API ParserConfig {
     return config;
   }

-  /// Parse PE Authenticode signature
+  /// Whether to parse the PE Authenticode signature.
   bool parse_signature = true;

-  /// Parse PE Exports Directory
+  /// Whether to parse the PE Export Directory.
   bool parse_exports = true;

-  /// Parse PE Import Directory
+  /// Whether to parse the PE Import Directory.
   bool parse_imports = true;

-  /// Parse PE resources tree
+  /// Whether to parse the PE resources tree.
   bool parse_rsrc = true;

-  /// Parse PE relocations
+  /// Whether to parse PE relocations.
   bool parse_reloc = true;

-  /// Whether it should parse in-depth exceptions metadata.
+  /// Whether to parse in-depth exception metadata.
   ///
-  /// This option is set to off by default since it can introduce a certain
-  /// overhead.
+  /// This option is disabled by default because it can introduce significant
+  /// parsing overhead.
   bool parse_exceptions = false;

-  /// Whether it should parse nested ARM64X binary
+  /// Whether to parse nested ARM64X binaries.
   ///
-  /// This option is set to off by default since it can introduce a certain
-  /// overhead.
+  /// This option is disabled by default because it can introduce significant
+  /// parsing overhead.
   bool parse_arm64x_binary = false;

+  /// If set, this value holds the original image base from which the binary
+  /// should be rebased. This is used to *undo* relocations and IAT bindings
+  /// when parsing a PE loaded in memory.
+  optional<uint64_t> rebase;
+
   std::string to_string() const;

-  LIEF_API friend
-    std::ostream& operator<<(std::ostream& os, const ParserConfig& config)
-  {
+  LIEF_API friend std::ostream& operator<<(std::ostream& os,
+                                           const ParserConfig& config) {
     os << config.to_string();
     return os;
   }
diff --git a/deps/LIEF/include/LIEF/PE/Relocation.hpp b/deps/LIEF/include/LIEF/PE/Relocation.hpp
index cd81bf68541..94dab8c4e70 100644
--- a/deps/LIEF/include/LIEF/PE/Relocation.hpp
+++ b/deps/LIEF/include/LIEF/PE/Relocation.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -46,8 +46,8 @@ class LIEF_API Relocation : public Object {
   friend class Binary;

   public:
-  using entries_t        = std::vector<std::unique_ptr<RelocationEntry>>;
-  using it_entries       = ref_iterator<entries_t&, RelocationEntry*>;
+  using entries_t = std::vector<std::unique_ptr<RelocationEntry>>;
+  using it_entries = ref_iterator<entries_t&, RelocationEntry*>;
   using it_const_entries = const_ref_iterator<const entries_t&, RelocationEntry*>;

   Relocation();
@@ -65,7 +65,8 @@ class LIEF_API Relocation : public Object {

   void swap(Relocation& other);

-  /// The RVA for which the offset of the relocation entries (RelocationEntry) is added
+  /// The RVA for which the offset of the relocation entries (RelocationEntry) is
+  /// added
   uint32_t virtual_address() const {
     return virtual_address_;
   }
@@ -81,11 +82,11 @@ class LIEF_API Relocation : public Object {
   }

   /// Iterator over the RelocationEntry
-  it_const_entries entries() const {
+  it_const_entries entries() const LIEF_LIFETIMEBOUND {
     return entries_;
   }

-  it_entries entries() {
+  it_entries entries() LIEF_LIFETIMEBOUND {
     return entries_;
   }

@@ -97,11 +98,12 @@ class LIEF_API Relocation : public Object {
     block_size_ = block_size;
   }

-  RelocationEntry& add_entry(const RelocationEntry& entry);
+  RelocationEntry& add_entry(const RelocationEntry& entry) LIEF_LIFETIMEBOUND;

   void accept(Visitor& visitor) const override;

-  LIEF_API friend std::ostream& operator<<(std::ostream& os, const Relocation& relocation);
+  LIEF_API friend std::ostream& operator<<(std::ostream& os,
+                                           const Relocation& relocation);

   using relocations_t = std::vector<std::unique_ptr<Relocation>>;

@@ -115,4 +117,4 @@ class LIEF_API Relocation : public Object {

 }
 }
-#endif /* RELOCATION_H */
+#endif
diff --git a/deps/LIEF/include/LIEF/PE/RelocationEntry.hpp b/deps/LIEF/include/LIEF/PE/RelocationEntry.hpp
index f2aa4734a32..22384b15da5 100644
--- a/deps/LIEF/include/LIEF/PE/RelocationEntry.hpp
+++ b/deps/LIEF/include/LIEF/PE/RelocationEntry.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -32,7 +32,8 @@ class Relocation;

 /// Class which represents an entry of the PE relocation table
 ///
-/// It extends the LIEF::Relocation object to provide an uniform API across the file formats
+/// It extends the LIEF::Relocation object to provide an uniform API across the
+/// file formats
 class LIEF_API RelocationEntry : public LIEF::Relocation {

   friend class Parser;
@@ -94,19 +95,23 @@ class LIEF_API RelocationEntry : public LIEF::Relocation {
     /// occupies two slots.
     HIGHADJ = 4,

-    MIPS_JMPADDR = 5 | (1 << 8),
-    ARM_MOV32 = 5 | (1 << 9),
-    RISCV_HI20 = 5 | (1 << 10),
+    // clang-format off

-    SECTION = 6,
+    MIPS_JMPADDR     = 5 | (1 << 8),
+    ARM_MOV32        = 5 | (1 << 9),
+    RISCV_HI20       = 5 | (1 << 10),

-    THUMB_MOV32 = 7 | (1 << 11),
-    RISCV_LOW12I = 7 | (1 << 12),
+    SECTION          = 6,

-    RISCV_LOW12S = 8 | (1 << 13),
+    THUMB_MOV32      = 7 | (1 << 11),
+    RISCV_LOW12I     = 7 | (1 << 12),
+
+    RISCV_LOW12S     = 8 | (1 << 13),
     LOONARCH_MARK_LA = 8 | (1 << 14),

-    MIPS_JMPADDR16 = 9,
+    MIPS_JMPADDR16   = 9,
+
+    // clang-format on

     /// This value matches `IMAGE_REL_BASED_DIR64`
     ///
@@ -117,7 +122,7 @@ class LIEF_API RelocationEntry : public LIEF::Relocation {
     /// ```cpp
     /// write<int64_t_t>(ADDR, read<int64_t_t>(ADDR) + DELTA)
     /// ```
-    DIR64  = 10,
+    DIR64 = 10,
     HIGH3ADJ = 11,
   };

@@ -135,9 +140,9 @@ class LIEF_API RelocationEntry : public LIEF::Relocation {
   RelocationEntry(const RelocationEntry& other) :
     LIEF::Relocation(other),
     position_(other.position_),
-    type_(other.type_),
-    // Parent relocation is not forwarded during copy
-    relocation_(nullptr)
+    type_(other.type_)
+  /* Parent relocation is not forwarded during copy
+   * relocation_(nullptr) */
   {}

   RelocationEntry& operator=(RelocationEntry other) {
@@ -150,8 +155,7 @@ class LIEF_API RelocationEntry : public LIEF::Relocation {

   RelocationEntry(uint16_t position, BASE_TYPES type) :
     position_(position),
-    type_(type)
-  {
+    type_(type) {
     assert(position_ < MAX_ADDR);
   }

@@ -159,8 +163,8 @@ class LIEF_API RelocationEntry : public LIEF::Relocation {

   void swap(RelocationEntry& other) {
     LIEF::Relocation::swap(other);
-    std::swap(position_,   other.position_);
-    std::swap(type_,       other.type_);
+    std::swap(position_, other.position_);
+    std::swap(type_, other.type_);
     std::swap(relocation_, other.relocation_);
   }

@@ -202,19 +206,20 @@ class LIEF_API RelocationEntry : public LIEF::Relocation {

   void accept(Visitor& visitor) const override;

-  LIEF_API friend std::ostream& operator<<(std::ostream& os, const RelocationEntry& entry);
+  LIEF_API friend std::ostream& operator<<(std::ostream& os,
+                                           const RelocationEntry& entry);

-  /// \private
+  /// @private
   LIEF_LOCAL PE::Relocation* parent() {
     return relocation_;
   }

-  /// \private
+  /// @private
   LIEF_LOCAL const PE::Relocation* parent() const {
     return relocation_;
   }

-  /// \private
+  /// @private
   LIEF_LOCAL void parent(PE::Relocation& R) {
     relocation_ = &R;
   }
diff --git a/deps/LIEF/include/LIEF/PE/ResourceData.hpp b/deps/LIEF/include/LIEF/PE/ResourceData.hpp
index 3c2dd5e56e2..35473d774fe 100644
--- a/deps/LIEF/include/LIEF/PE/ResourceData.hpp
+++ b/deps/LIEF/include/LIEF/PE/ResourceData.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -18,6 +18,7 @@

 #include <vector>

+#include "LIEF/compiler_attributes.hpp"
 #include "LIEF/visibility.h"
 #include "LIEF/PE/ResourceNode.hpp"
 #include "LIEF/span.hpp"
@@ -36,19 +37,16 @@ class LIEF_API ResourceData : public ResourceNode {

   public:
   ResourceData() :
-    ResourceNode(ResourceNode::TYPE::DATA)
-  {}
+    ResourceNode(ResourceNode::TYPE::DATA) {}
   ResourceData(std::vector<uint8_t> content, uint32_t code_page = 0) :
     ResourceNode(ResourceNode::TYPE::DATA),
     content_(std::move(content)),
-    code_page_(code_page)
-  {}
+    code_page_(code_page) {}

   ResourceData(const std::string& str, uint32_t code_page = 0) :
     ResourceNode(ResourceNode::TYPE::DATA),
     content_{str.begin(), str.end()},
-    code_page_(code_page)
-  {}
+    code_page_(code_page) {}

   ResourceData(const ResourceData& other) = default;
   ResourceData& operator=(const ResourceData& other) = default;
@@ -67,11 +65,11 @@ class LIEF_API ResourceData : public ResourceNode {
   }

   /// Resource content
-  span<const uint8_t> content() const {
+  span<const uint8_t> content() const LIEF_LIFETIMEBOUND {
     return content_;
   }

-  span<uint8_t> content() {
+  span<uint8_t> content() LIEF_LIFETIMEBOUND {
     return content_;
   }

@@ -107,17 +105,17 @@ class LIEF_API ResourceData : public ResourceNode {
     reserved_ = value;
   }

-  /// \private
+  /// @private
   LIEF_LOCAL vector_iostream edit() {
-    return vector_iostream(content_);
+    return content_;
   }

-  /// \private
+  /// @private
   LIEF_LOCAL const std::vector<uint8_t> raw_content() const {
     return content_;
   }

-  /// \private
+  /// @private
   LIEF_LOCAL void set_offset(uint32_t offset) {
     offset_ = offset;
   }
@@ -136,5 +134,5 @@ class LIEF_API ResourceData : public ResourceNode {
 };

 } // namespace PE
-} // namepsace LIEF
-#endif /* RESOURCEDATA_H */
+} // namespace LIEF
+#endif
diff --git a/deps/LIEF/include/LIEF/PE/ResourceDirectory.hpp b/deps/LIEF/include/LIEF/PE/ResourceDirectory.hpp
index 348a50d483d..214a66f7800 100644
--- a/deps/LIEF/include/LIEF/PE/ResourceDirectory.hpp
+++ b/deps/LIEF/include/LIEF/PE/ResourceDirectory.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -37,12 +37,10 @@ class LIEF_API ResourceDirectory : public ResourceNode {

   public:
   ResourceDirectory() :
-    ResourceNode(ResourceNode::TYPE::DIRECTORY)
-  {}
+    ResourceNode(ResourceNode::TYPE::DIRECTORY) {}

   ResourceDirectory(uint32_t id) :
-    ResourceNode(ResourceNode::TYPE::DIRECTORY)
-  {
+    ResourceNode(ResourceNode::TYPE::DIRECTORY) {
     this->id(id);
   }

@@ -130,4 +128,4 @@ class LIEF_API ResourceDirectory : public ResourceNode {
 };
 }
 }
-#endif /* RESOURCEDIRECTORY_H */
+#endif
diff --git a/deps/LIEF/include/LIEF/PE/ResourceNode.hpp b/deps/LIEF/include/LIEF/PE/ResourceNode.hpp
index 4db05119a1a..0595eb7f5ca 100644
--- a/deps/LIEF/include/LIEF/PE/ResourceNode.hpp
+++ b/deps/LIEF/include/LIEF/PE/ResourceNode.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -49,8 +49,8 @@ class LIEF_API ResourceNode : public Object {
   friend class Builder;

   public:
-  using childs_t        = std::vector<std::unique_ptr<ResourceNode>>;
-  using it_childs       = ref_iterator<childs_t&, ResourceNode*>;
+  using childs_t = std::vector<std::unique_ptr<ResourceNode>>;
+  using it_childs = ref_iterator<childs_t&, ResourceNode*>;
   using it_const_childs = const_ref_iterator<const childs_t&, ResourceNode*>;

   /// Enum that identifies the type of a node in the resource tree
@@ -73,7 +73,7 @@ class LIEF_API ResourceNode : public Object {
   /// Parse the resource tree from the provided BinaryStream stream and
   /// with the original RVA provided in the second parameter.
   ///
-  /// The RVA value should be come from the DataDirectory::RVA associated with
+  /// The RVA value should come from the DataDirectory::RVA associated with
   /// the resource tree.
   static std::unique_ptr<ResourceNode> parse(BinaryStream& stream, uint64_t rva);

@@ -85,20 +85,18 @@ class LIEF_API ResourceNode : public Object {

   /// See doc from other parse functions
   static std::unique_ptr<ResourceNode> parse(const std::vector<uint8_t>& buffer,
-                                             uint64_t rva)
-  {
+                                             uint64_t rva) {
     return parse(buffer.data(), buffer.size(), rva);
   }

   /// See doc from other parse functions
   static std::unique_ptr<ResourceNode> parse(span<const uint8_t> buffer,
-                                             uint64_t rva)
-  {
+                                             uint64_t rva) {
     return parse(buffer.data(), buffer.size(), rva);
   }

-  static std::unique_ptr<ResourceNode>
-    parse(BinaryStream& stream, const Binary& bin);
+  static std::unique_ptr<ResourceNode> parse(BinaryStream& stream,
+                                             const Binary& bin);

   virtual std::unique_ptr<ResourceNode> clone() const = 0;

@@ -109,7 +107,7 @@ class LIEF_API ResourceNode : public Object {
   }

   /// Name of the entry (if any)
-  const std::u16string& name() const {
+  const std::u16string& name() const LIEF_LIFETIMEBOUND {
     return name_;
   }

@@ -117,11 +115,11 @@ class LIEF_API ResourceNode : public Object {
   std::string utf8_name() const;

   /// Iterator on node's children
-  it_childs childs() {
+  it_childs childs() LIEF_LIFETIMEBOUND {
     return childs_;
   }

-  it_const_childs childs() const {
+  it_const_childs childs() const LIEF_LIFETIMEBOUND {
     return childs_;
   }

@@ -169,10 +167,10 @@ class LIEF_API ResourceNode : public Object {

   /// Add a new child to the current node, taking the ownership
   /// of the provided `unique_ptr`
-  ResourceNode& add_child(std::unique_ptr<ResourceNode> child);
+  ResourceNode& add_child(std::unique_ptr<ResourceNode> child) LIEF_LIFETIMEBOUND;

   /// Add a new child to the current node
-  ResourceNode& add_child(const ResourceNode& child) {
+  ResourceNode& add_child(const ResourceNode& child) LIEF_LIFETIMEBOUND {
     return add_child(child.clone());
   }

@@ -186,7 +184,8 @@ class LIEF_API ResourceNode : public Object {

   template<class T>
   const T* cast() const {
-    static_assert(std::is_base_of<ResourceNode, T>::value, "Require inheritance relationship");
+    static_assert(std::is_base_of<ResourceNode, T>::value,
+                  "Require inheritance relationship");
     if (T::classof(this)) {
       return static_cast<const T*>(this);
     }
@@ -198,7 +197,8 @@ class LIEF_API ResourceNode : public Object {
     return const_cast<T*>(static_cast<const ResourceNode*>(this)->cast<T>());
   }

-  LIEF_API friend std::ostream& operator<<(std::ostream& os, const ResourceNode& node);
+  LIEF_API friend std::ostream& operator<<(std::ostream& os,
+                                           const ResourceNode& node);

   std::string to_string() const {
     std::ostringstream oss;
@@ -206,19 +206,21 @@ class LIEF_API ResourceNode : public Object {
     return oss.str();
   }

-  /// Access the children at the given index in a safety way.
+  /// Access the children at the given index in a safe way.
   ///
-  /// \warning For internal use only
+  /// @warning For internal use only
   ///
-  /// \private
-  LIEF_LOCAL const ResourceNode& safe_get_at(size_t idx) const;
-
-  /// \private
-  LIEF_LOCAL ResourceNode& safe_get_at(size_t idx) {
-    return const_cast<ResourceNode&>(static_cast<const ResourceNode*>(this)->safe_get_at(idx));
+  /// @private
+  LIEF_LOCAL const ResourceNode& safe_get_at(size_t idx) const LIEF_LIFETIMEBOUND;
+
+  /// @private
+  LIEF_LOCAL ResourceNode& safe_get_at(size_t idx) LIEF_LIFETIMEBOUND {
+    return const_cast<ResourceNode&>(
+        static_cast<const ResourceNode*>(this)->safe_get_at(idx)
+    );
   }

-  /// \private
+  /// @private
   LIEF_LOCAL void set_depth(uint32_t depth) {
     depth_ = depth;
   }
@@ -227,21 +229,23 @@ class LIEF_API ResourceNode : public Object {
     childs_.push_back(std::move(node));
   }

-  LIEF_API friend bool operator==(const ResourceNode& LHS, const ResourceNode& RHS);
+  LIEF_API friend bool operator==(const ResourceNode& LHS,
+                                  const ResourceNode& RHS);

-  LIEF_API friend bool operator!=(const ResourceNode& LHS, const ResourceNode& RHS) {
+  LIEF_API friend bool operator!=(const ResourceNode& LHS,
+                                  const ResourceNode& RHS) {
     return !(LHS == RHS);
   }

   protected:
   ResourceNode() = default;
   ResourceNode(TYPE type) :
-    type_(type)
-  {}
+    type_(type) {}

   std::unique_ptr<ResourceNode> parse_resource_node(
       const details::pe_resource_directory_table& directory_table,
-      uint32_t base_offset, uint32_t current_offset, uint32_t depth = 0);
+      uint32_t base_offset, uint32_t current_offset, uint32_t depth = 0
+  );

   childs_t::iterator insert_child(std::unique_ptr<ResourceNode> child);

@@ -253,4 +257,4 @@ class LIEF_API ResourceNode : public Object {
 };
 }
 }
-#endif /* RESOURCENODE_H */
+#endif
diff --git a/deps/LIEF/include/LIEF/PE/ResourcesManager.hpp b/deps/LIEF/include/LIEF/PE/ResourcesManager.hpp
index 6ad660fc652..413ba06fe40 100644
--- a/deps/LIEF/include/LIEF/PE/ResourcesManager.hpp
+++ b/deps/LIEF/include/LIEF/PE/ResourcesManager.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -16,8 +16,8 @@
 #ifndef LIEF_PE_RESOURCES_MANAGER_H
 #define LIEF_PE_RESOURCES_MANAGER_H
 #include <ostream>
+#include <sstream>

-#include "LIEF/errors.hpp"
 #include "LIEF/visibility.h"
 #include "LIEF/Object.hpp"
 #include "LIEF/iterators.hpp"
@@ -25,7 +25,6 @@
 #include "LIEF/PE/resources/ResourceVersion.hpp"
 #include "LIEF/PE/resources/ResourceIcon.hpp"
 #include "LIEF/PE/resources/ResourceDialog.hpp"
-#include "LIEF/PE/resources/ResourceStringTable.hpp"
 #include "LIEF/PE/resources/ResourceAccelerator.hpp"

 namespace LIEF {
@@ -37,36 +36,36 @@ class ResourceNode;
 /// The Resource Manager provides an enhanced API to manipulate the resource tree.
 class LIEF_API ResourcesManager : public Object {
   public:
-
   /// The different types of resources
   /// From https://learn.microsoft.com/en-us/windows/win32/menurc/resource-types
   enum class TYPE {
-    CURSOR       = 1,
-    BITMAP       = 2,
-    ICON         = 3,
-    MENU         = 4,
-    DIALOG       = 5,
-    STRING       = 6,
-    FONTDIR      = 7,
-    FONT         = 8,
-    ACCELERATOR  = 9,
-    RCDATA       = 10,
+    CURSOR = 1,
+    BITMAP = 2,
+    ICON = 3,
+    MENU = 4,
+    DIALOG = 5,
+    STRING = 6,
+    FONTDIR = 7,
+    FONT = 8,
+    ACCELERATOR = 9,
+    RCDATA = 10,
     MESSAGETABLE = 11,
     GROUP_CURSOR = 12,
-    GROUP_ICON   = 14,
-    VERSION      = 16,
-    DLGINCLUDE   = 17,
-    PLUGPLAY     = 19,
-    VXD          = 20,
-    ANICURSOR    = 21,
-    ANIICON      = 22,
-    HTML         = 23,
-    MANIFEST     = 24
+    GROUP_ICON = 14,
+    VERSION = 16,
+    DLGINCLUDE = 17,
+    PLUGPLAY = 19,
+    VXD = 20,
+    ANICURSOR = 21,
+    ANIICON = 22,
+    HTML = 23,
+    MANIFEST = 24,
   };

   public:
   using dialogs_t = ResourceDialog::dialogs_t;
-  using it_const_dialogs = const_ref_iterator<const dialogs_t&, const ResourceDialog*>;
+  using it_const_dialogs =
+      const_ref_iterator<const dialogs_t&, const ResourceDialog*>;

   using icons_t = std::vector<ResourceIcon>;
   using it_const_icons = const_ref_iterator<icons_t>;
@@ -89,9 +88,8 @@ class LIEF_API ResourcesManager : public Object {
       return is_defined();
     }

-    friend LIEF_API
-      std::ostream& operator<<(std::ostream& os, const string_entry_t& str)
-    {
+    friend LIEF_API std::ostream& operator<<(std::ostream& os,
+                                             const string_entry_t& str) {
       os << std::to_string(str.id) << ", " << str.string_u8();
       return os;
     }
@@ -101,13 +99,12 @@ class LIEF_API ResourcesManager : public Object {

   ResourcesManager() = delete;
   ResourcesManager(ResourceNode& rsrc) :
-    resources_{&rsrc}
-  {}
+    resources_{&rsrc} {}

   ResourcesManager(const ResourcesManager& other) :
     Object(other),
     resources_(other.resources_)
-    // Skip (on purpose) the `dialogs_` cache
+  // Skip (on purpose) the `dialogs_` cache
   {}

   ResourcesManager& operator=(const ResourcesManager& other) {
@@ -126,11 +123,12 @@ class LIEF_API ResourcesManager : public Object {

   /// Return the ResourceNode associated with the given TYPE
   /// or a nullptr if not found;
-  ResourceNode* get_node_type(TYPE type) {
+  ResourceNode* get_node_type(TYPE type) LIEF_LIFETIMEBOUND {
     return const_cast<ResourceNode*>(
-      static_cast<const ResourcesManager*>(this)->get_node_type(type));
+        static_cast<const ResourcesManager*>(this)->get_node_type(type)
+    );
   }
-  const ResourceNode* get_node_type(TYPE type) const;
+  const ResourceNode* get_node_type(TYPE type) const LIEF_LIFETIMEBOUND;

   /// List of TYPE present in the resources
   std::vector<TYPE> get_types() const;
@@ -153,22 +151,22 @@ class LIEF_API ResourcesManager : public Object {
   /// all required nodes are created.
   void manifest(const std::string& manifest);

-  /// `true` if resources a LIEF::PE::ResourceVersion
+  /// `true` if resources contain a LIEF::PE::ResourceVersion
   bool has_version() const {
     return get_node_type(TYPE::VERSION) != nullptr;
   }

-  /// Return a list of verison info (`VS_VERSIONINFO`).
+  /// Return a list of version info (`VS_VERSIONINFO`).
   std::vector<ResourceVersion> version() const;

   /// `true` if resources contain a LIEF::PE::ResourceIcon
   bool has_icons() const {
-    return get_node_type(TYPE::ICON)       != nullptr &&
+    return get_node_type(TYPE::ICON) != nullptr &&
            get_node_type(TYPE::GROUP_ICON) != nullptr;
   }

   /// Return the list of the icons present in the resources
-  it_const_icons icons() const;
+  it_const_icons icons() const LIEF_LIFETIMEBOUND;

   /// Add an icon to the resources
   void add_icon(const ResourceIcon& icon);
@@ -181,7 +179,7 @@ class LIEF_API ResourcesManager : public Object {
   }

   /// Return the list of the dialogs present in the resource
-  it_const_dialogs dialogs() const;
+  it_const_dialogs dialogs() const LIEF_LIFETIMEBOUND;

   /// `true` if the resources contain a string table
   bool has_string_table() const {
@@ -212,13 +210,14 @@ class LIEF_API ResourcesManager : public Object {

   void accept(Visitor& visitor) const override;

-  LIEF_API friend std::ostream& operator<<(std::ostream& os, const ResourcesManager& m);
+  LIEF_API friend std::ostream& operator<<(std::ostream& os,
+                                           const ResourcesManager& m);

   private:
   void print_tree(const ResourceNode& node, std::ostringstream& stream,
                   uint32_t current_depth, uint32_t max_depth,
-                  const ResourceNode* parent = nullptr,
-                  std::string header = "", bool is_last = false) const;
+                  const ResourceNode* parent = nullptr, std::string header = "",
+                  bool is_last = false) const;
   ResourceNode* resources_ = nullptr;
   mutable dialogs_t dialogs_;
 };
diff --git a/deps/LIEF/include/LIEF/PE/RichEntry.hpp b/deps/LIEF/include/LIEF/PE/RichEntry.hpp
index 296744276f5..b314a98f8be 100644
--- a/deps/LIEF/include/LIEF/PE/RichEntry.hpp
+++ b/deps/LIEF/include/LIEF/PE/RichEntry.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -27,13 +27,11 @@ namespace PE {
 /// Class which represents an entry associated to the RichHeader
 class LIEF_API RichEntry : public Object {
   public:
-
   RichEntry() = default;
   RichEntry(uint16_t id, uint16_t build_id, uint32_t count) :
     id_(id),
     build_id_(build_id),
-    count_(count)
-  {}
+    count_(count) {}

   RichEntry(const RichEntry&) = default;
   RichEntry& operator=(const RichEntry&) = default;
@@ -66,17 +64,15 @@ class LIEF_API RichEntry : public Object {

   void accept(Visitor& visitor) const override;

-  LIEF_API friend
-    std::ostream& operator<<(std::ostream& os, const RichEntry& rich_entry);
+  LIEF_API friend std::ostream& operator<<(std::ostream& os,
+                                           const RichEntry& rich_entry);

   private:
   uint16_t id_ = 0;
   uint16_t build_id_ = 0;
   uint32_t count_ = 0;
-
 };
 }
 }

 #endif
-
diff --git a/deps/LIEF/include/LIEF/PE/RichHeader.hpp b/deps/LIEF/include/LIEF/PE/RichHeader.hpp
index 5c886ab0dc4..d9aa97c6bae 100644
--- a/deps/LIEF/include/LIEF/PE/RichHeader.hpp
+++ b/deps/LIEF/include/LIEF/PE/RichHeader.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -32,17 +32,17 @@ namespace PE {
 ///
 /// This structure is usually located at the end of the Binary::dos_stub
 /// and contains information about the build environment.
-/// It is generated by the Microsoft linker `link.exe` and there are no options to disable
-/// or remove this information.
+/// It is generated by the Microsoft linker `link.exe` and there are no options to
+/// disable or remove this information.
 class LIEF_API RichHeader : public Object {
   public:
-  using entries_t        = std::vector<RichEntry>;
-  using it_entries       = ref_iterator<entries_t&>;
+  using entries_t = std::vector<RichEntry>;
+  using it_entries = ref_iterator<entries_t&>;
   using it_const_entries = const_ref_iterator<const entries_t&>;

   static constexpr uint8_t RICH_MAGIC[] = {'R', 'i', 'c', 'h'};
-  static constexpr uint32_t RICH_MAGIC_INT = 0x68636952; // 'Rich'
-  static constexpr uint32_t DANS_MAGIC_NUMBER = 0x536E6144; // 'Rich'
+  static constexpr uint32_t RICH_MAGIC_INT = 0x68636952;    // 'Rich'
+  static constexpr uint32_t DANS_MAGIC_NUMBER = 0x536E6144; // 'DanS'

   RichHeader() = default;
   RichHeader(const RichHeader&) = default;
@@ -79,7 +79,8 @@ class LIEF_API RichHeader : public Object {

   /// The raw structure of the Rich header without xor-encoding.
   ///
-  /// This function is equivalent as calling RichHeader::raw(uint32_t) with a `xor_key` set to 0
+  /// This function is equivalent as calling RichHeader::raw(uint32_t) with a
+  /// `xor_key` set to 0
   std::vector<uint8_t> raw() const {
     return raw(/*xor_key=*/0);
   }
@@ -103,15 +104,14 @@ class LIEF_API RichHeader : public Object {

   void accept(Visitor& visitor) const override;

-  LIEF_API friend std::ostream& operator<<(std::ostream& os, const RichHeader& rich_header);
+  LIEF_API friend std::ostream& operator<<(std::ostream& os,
+                                           const RichHeader& rich_header);

   private:
   uint32_t key_ = 0;
   entries_t entries_;
-
 };
 }
 }

 #endif
-
diff --git a/deps/LIEF/include/LIEF/PE/Section.hpp b/deps/LIEF/include/LIEF/PE/Section.hpp
index 99aa06c563c..49722950ca2 100644
--- a/deps/LIEF/include/LIEF/PE/Section.hpp
+++ b/deps/LIEF/include/LIEF/PE/Section.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -21,6 +21,7 @@
 #include <memory>

 #include "LIEF/iostream.hpp"
+#include "LIEF/compiler_attributes.hpp"
 #include "LIEF/visibility.h"
 #include "LIEF/Abstract/Section.hpp"
 #include "LIEF/enums.hpp"
@@ -53,7 +54,8 @@ class LIEF_API Section : public LIEF::Section {
   using LIEF::Section::name;
   static constexpr size_t MAX_SECTION_NAME = 8;

-  enum class CHARACTERISTICS: uint64_t  {
+  enum class CHARACTERISTICS : uint64_t {
+    // clang-format off
     TYPE_NO_PAD            = 0x00000008,
     CNT_CODE               = 0x00000020,
     CNT_INITIALIZED_DATA   = 0x00000040,
@@ -88,20 +90,19 @@ class LIEF_API Section : public LIEF::Section {
     MEM_SHARED             = 0x10000000,
     MEM_EXECUTE            = 0x20000000,
     MEM_READ               = 0x40000000,
-    MEM_WRITE              = 0x80000000
+    MEM_WRITE              = 0x80000000,
+    // clang-format on
   };

   Section(const details::pe_section& header);
   Section() = default;
   Section(std::string name) :
-    Section::Section()
-  {
+    Section::Section() {
     name_ = std::move(name);
   }

   Section(std::string name, std::vector<uint8_t> content) :
-    Section(std::move(name))
-  {
+    Section(std::move(name)) {
     content_ = std::move(content);
     size_ = content_.size();
   }
@@ -121,30 +122,32 @@ class LIEF_API Section : public LIEF::Section {
   }

   /// The actual content of the section
-  span<const uint8_t> content() const override {
+  span<const uint8_t> content() const LIEF_LIFETIMEBOUND override {
     return content_;
   }

   /// Content of the section's padding area
-  span<const uint8_t> padding() const {
+  span<const uint8_t> padding() const LIEF_LIFETIMEBOUND {
     return padding_;
   }

   /// The offset of the section data in the PE file
   uint32_t pointerto_raw_data() const;

-  /// The file pointer to the beginning of the COFF relocation entries for the section. This is set to zero for
-  /// executable images or if there are no relocations.
+  /// The file pointer to the beginning of the COFF relocation entries for the
+  /// section. This is set to zero for executable images or if there are no
+  /// relocations.
   ///
-  /// For modern PE binaries, this value is usually set to 0 as the relocations are managed by
-  /// PE::Relocation.
+  /// For modern PE binaries, this value is usually set to 0 as the relocations are
+  /// managed by PE::Relocation.
   uint32_t pointerto_relocation() const {
     return pointer_to_relocations_;
   }

   /// The file pointer to the beginning of line-number entries for the section.
-  /// This is set to zero if there are no COFF line numbers. This value should be zero for an image because COFF
-  /// debugging information is deprecated and modern debug information relies on the PDB files.
+  /// This is set to zero if there are no COFF line numbers. This value should be
+  /// zero for an image because COFF debugging information is deprecated and modern
+  /// debug information relies on the PDB files.
   uint32_t pointerto_line_numbers() const {
     return pointer_to_linenumbers_;
   }
@@ -225,56 +228,58 @@ class LIEF_API Section : public LIEF::Section {
   ///
   /// This coff string is usually present for long section names whose length
   /// does not fit in the 8 bytes allocated by the PE format.
-  COFF::String* coff_string() {
+  COFF::String* coff_string() LIEF_LIFETIMEBOUND {
     return coff_string_;
   }

-  const COFF::String* coff_string() const {
+  const COFF::String* coff_string() const LIEF_LIFETIMEBOUND {
     return coff_string_;
   }

-  Section& remove_characteristic(CHARACTERISTICS characteristic) {
+  Section&
+      remove_characteristic(CHARACTERISTICS characteristic) LIEF_LIFETIMEBOUND {
     characteristics_ &= ~static_cast<size_t>(characteristic);
     return *this;
   }

-  Section& add_characteristic(CHARACTERISTICS characteristic) {
+  Section& add_characteristic(CHARACTERISTICS characteristic) LIEF_LIFETIMEBOUND {
     characteristics_ |= static_cast<size_t>(characteristic);
     return *this;
   }

-  std::unique_ptr<SpanStream> stream() const;
+  std::unique_ptr<SpanStream> stream() const LIEF_LIFETIMEBOUND;

-  /// \private
-  LIEF_LOCAL Section& reserve(size_t size, uint8_t value = 0) {
+  /// @private
+  LIEF_LOCAL Section& reserve(size_t size, uint8_t value = 0) LIEF_LIFETIMEBOUND {
     content_.resize(size, value);
     return *this;
   }

-  /// \private
-  LIEF_LOCAL vector_iostream edit() {
-    return vector_iostream(content_);
+  /// @private
+  LIEF_LOCAL vector_iostream edit() LIEF_LIFETIMEBOUND {
+    return content_;
   }

-  span<uint8_t> writable_content() {
+  span<uint8_t> writable_content() LIEF_LIFETIMEBOUND {
     return content_;
   }

   void accept(Visitor& visitor) const override;

-  LIEF_API friend std::ostream& operator<<(std::ostream& os, const Section& section);
+  LIEF_API friend std::ostream& operator<<(std::ostream& os,
+                                           const Section& section);

   static std::vector<CHARACTERISTICS> characteristics_to_list(uint32_t value);

   private:
   std::vector<uint8_t> content_;
   std::vector<uint8_t> padding_;
-  uint32_t virtual_size_           = 0;
+  uint32_t virtual_size_ = 0;
   uint32_t pointer_to_relocations_ = 0;
   uint32_t pointer_to_linenumbers_ = 0;
-  uint16_t number_of_relocations_  = 0;
-  uint16_t number_of_linenumbers_  = 0;
-  uint32_t characteristics_        = 0;
+  uint16_t number_of_relocations_ = 0;
+  uint16_t number_of_linenumbers_ = 0;
+  uint32_t characteristics_ = 0;

   COFF::String* coff_string_ = nullptr;
 };
diff --git a/deps/LIEF/include/LIEF/PE/TLS.hpp b/deps/LIEF/include/LIEF/PE/TLS.hpp
index 182f37d529d..a77e418f823 100644
--- a/deps/LIEF/include/LIEF/PE/TLS.hpp
+++ b/deps/LIEF/include/LIEF/PE/TLS.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -21,6 +21,7 @@

 #include "LIEF/span.hpp"
 #include "LIEF/Object.hpp"
+#include "LIEF/compiler_attributes.hpp"
 #include "LIEF/visibility.h"

 namespace LIEF {
@@ -59,15 +60,15 @@ class LIEF_API TLS : public Object {
   TLS(TLS&& other) noexcept = default;
   TLS& operator=(TLS&& other) noexcept = default;

-  /// List of the callback associated with the current TLS.
+  /// List of the callbacks associated with the current TLS.
   ///
   /// These functions are called before any other functions.
-  const std::vector<uint64_t>& callbacks() const {
+  const std::vector<uint64_t>& callbacks() const LIEF_LIFETIMEBOUND {
     return callbacks_;
   }

   /// Add a new TLS callback
-  TLS& add_callback(uint64_t addr) {
+  TLS& add_callback(uint64_t addr) LIEF_LIFETIMEBOUND {
     callbacks_.push_back(addr);
     return *this;
   }
@@ -77,7 +78,7 @@ class LIEF_API TLS : public Object {
   /// The system copies all of this data each time a thread is created, so it
   /// must not be corrupted.
   ///
-  /// \note These addresses are not RVA. It is addresses for which there
+  /// @note These addresses are not RVA. They are addresses for which there
   ///       should be a rebase relocation in the `.reloc` section.
   const std::pair<uint64_t, uint64_t>& addressof_raw_data() const {
     return va_rawdata_;
@@ -112,7 +113,7 @@ class LIEF_API TLS : public Object {
   }

   /// The initial content used to initialize TLS data.
-  span<const uint8_t> data_template() const {
+  span<const uint8_t> data_template() const LIEF_LIFETIMEBOUND {
     return data_template_;
   }

@@ -123,11 +124,11 @@ class LIEF_API TLS : public Object {

   /// Return the DataDirectory associated with this object or a nullptr
   /// If it exists, its type should be DataDirectory::TYPES::TLS_TABLE
-  DataDirectory* directory() {
+  DataDirectory* directory() LIEF_LIFETIMEBOUND {
     return directory_;
   }

-  const DataDirectory* directory() const {
+  const DataDirectory* directory() const LIEF_LIFETIMEBOUND {
     return directory_;
   }

@@ -137,11 +138,11 @@ class LIEF_API TLS : public Object {
   }

   /// The section associated with the entry (or a nullptr)
-  Section* section() {
+  Section* section() LIEF_LIFETIMEBOUND {
     return section_;
   }

-  const Section* section() const {
+  const Section* section() const LIEF_LIFETIMEBOUND {
     return section_;
   }

@@ -150,7 +151,7 @@ class LIEF_API TLS : public Object {
   }

   void addressof_raw_data(std::pair<uint64_t, uint64_t> addresses) {
-    va_rawdata_ = addresses;
+    va_rawdata_ = std::move(addresses);
   }

   void addressof_index(uint64_t addr_idx) {
diff --git a/deps/LIEF/include/LIEF/PE/debug/CodeView.hpp b/deps/LIEF/include/LIEF/PE/debug/CodeView.hpp
index 9cd7c613f27..520753ca7d3 100644
--- a/deps/LIEF/include/LIEF/PE/debug/CodeView.hpp
+++ b/deps/LIEF/include/LIEF/PE/debug/CodeView.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -35,22 +35,19 @@ class LIEF_API CodeView : public Debug {

     PDB_70 = 0x53445352, // RSDS
     PDB_20 = 0x3031424e, // NB10
-    CV_50  = 0x3131424e, // NB11
-    CV_41  = 0x3930424e, // NB09
+    CV_50 = 0x3131424e,  // NB11
+    CV_41 = 0x3930424e,  // NB09
   };

   CodeView() :
-    Debug(Debug::TYPES::CODEVIEW)
-  {}
+    Debug(Debug::TYPES::CODEVIEW) {}
   CodeView(SIGNATURES sig) :
     Debug{Debug::TYPES::CODEVIEW},
-    sig_{sig}
-  {}
+    sig_{sig} {}

   CodeView(const details::pe_debug& debug, SIGNATURES sig, Section* sec) :
     Debug(debug, sec),
-    sig_(sig)
-  {}
+    sig_(sig) {}

   CodeView(const CodeView& other) = default;
   CodeView& operator=(const CodeView& other) = default;
diff --git a/deps/LIEF/include/LIEF/PE/debug/CodeViewPDB.hpp b/deps/LIEF/include/LIEF/PE/debug/CodeViewPDB.hpp
index 47b058476bb..afa8ce081d6 100644
--- a/deps/LIEF/include/LIEF/PE/debug/CodeViewPDB.hpp
+++ b/deps/LIEF/include/LIEF/PE/debug/CodeViewPDB.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -19,7 +19,6 @@

 #include <cstdint>
 #include <array>
-#include <ostream>

 namespace LIEF {
 namespace PE {
@@ -39,14 +38,12 @@ class LIEF_API CodeViewPDB : public CodeView {
   public:
   using signature_t = std::array<uint8_t, 16>;
   CodeViewPDB() :
-    CodeView(CodeView::SIGNATURES::PDB_70)
-  {}
+    CodeView(CodeView::SIGNATURES::PDB_70) {}

   CodeViewPDB(std::string filename) :
     CodeView(CodeView::SIGNATURES::PDB_70),
     signature_{0},
-    filename_(std::move(filename))
-  {}
+    filename_(std::move(filename)) {}

   CodeViewPDB(const details::pe_debug& debug_info,
               const details::pe_pdb_70& pdb_70, Section* sec);
@@ -60,12 +57,13 @@ class LIEF_API CodeViewPDB : public CodeView {
   CodeViewPDB(CodeViewPDB&& other) = default;
   CodeViewPDB& operator=(CodeViewPDB&& other) = default;

-  /// The GUID signature to verify against the .pdb file signature.
+  /// The GUID signature to verify against the `.pdb` file signature.
   /// This attribute might be used to lookup remote PDB file on a symbol server
   std::string guid() const;

   /// Age value to verify. The age does not necessarily correspond to any known
-  /// time value, it is used to determine if a .pdb file is out of sync with a corresponding .exe file.
+  /// time value, it is used to determine if a .pdb file is out of sync with
+  /// corresponding `.exe` file.
   uint32_t age() const {
     return age_;
   }
diff --git a/deps/LIEF/include/LIEF/PE/debug/Debug.hpp b/deps/LIEF/include/LIEF/PE/debug/Debug.hpp
index 31e6e28eaa1..a57505cf8dd 100644
--- a/deps/LIEF/include/LIEF/PE/debug/Debug.hpp
+++ b/deps/LIEF/include/LIEF/PE/debug/Debug.hpp
@@ -1,6 +1,6 @@

-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -36,7 +36,7 @@ struct pe_debug;

 /// This class represents a generic entry in the debug data directory.
 /// For known types, this class is extended to provide a dedicated API
-/// (see: CodeCodeView)
+/// (see: CodeView)
 class LIEF_API Debug : public Object {
   friend class Parser;
   friend class Builder;
@@ -100,12 +100,11 @@ class LIEF_API Debug : public Object {
     EX_DLLCHARACTERISTICS = 20,
   };
   Debug() = default;
-  Debug(TYPES type) {
-    type_ = type;
-  }
+  Debug(TYPES type) :
+    type_(type) {}

-  static span<uint8_t> get_payload(Section& section, uint32_t rva,
-                                   uint32_t offset, uint32_t size);
+  static span<uint8_t> get_payload(Section& section, uint32_t rva, uint32_t offset,
+                                   uint32_t size);
   static span<uint8_t> get_payload(Section& section, const details::pe_debug& hdr);
   static span<uint8_t> get_payload(Section& section, const Debug& dbg) {
     return get_payload(section, dbg.addressof_rawdata(), dbg.pointerto_rawdata(),
@@ -167,18 +166,18 @@ class LIEF_API Debug : public Object {
   }

   /// The section where debug data is located
-  const Section* section() const {
+  const Section* section() const LIEF_LIFETIMEBOUND {
     return section_;
   }

-  Section* section() {
+  Section* section() LIEF_LIFETIMEBOUND {
     return section_;
   }

   /// Debug data associated with this entry
-  span<uint8_t> payload();
+  span<uint8_t> payload() LIEF_LIFETIMEBOUND;

-  span<const uint8_t> payload() const {
+  span<const uint8_t> payload() const LIEF_LIFETIMEBOUND {
     return const_cast<Debug*>(this)->payload();
   }

@@ -228,9 +227,7 @@ class LIEF_API Debug : public Object {

   virtual std::string to_string() const;

-  LIEF_API friend
-    std::ostream& operator<<(std::ostream& os, const Debug& entry)
-  {
+  LIEF_API friend std::ostream& operator<<(std::ostream& os, const Debug& entry) {
     os << entry.to_string();
     return os;
   }
diff --git a/deps/LIEF/include/LIEF/PE/debug/ExDllCharacteristics.hpp b/deps/LIEF/include/LIEF/PE/debug/ExDllCharacteristics.hpp
index e153f18ec8e..203525c3381 100644
--- a/deps/LIEF/include/LIEF/PE/debug/ExDllCharacteristics.hpp
+++ b/deps/LIEF/include/LIEF/PE/debug/ExDllCharacteristics.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -30,24 +30,23 @@ class LIEF_API ExDllCharacteristics : public Debug {
   public:
   /// Extended DLL Characteristics
   enum class CHARACTERISTICS : uint32_t {
-    CET_COMPAT                                 = 0x01,
-    CET_COMPAT_STRICT_MODE                     = 0x02,
+    CET_COMPAT = 0x01,
+    CET_COMPAT_STRICT_MODE = 0x02,
     CET_SET_CONTEXT_IP_VALIDATION_RELAXED_MODE = 0x04,
-    CET_DYNAMIC_APIS_ALLOW_IN_PROC             = 0x08,
-    CET_RESERVED_1                             = 0x10,
-    CET_RESERVED_2                             = 0x20,
-    FORWARD_CFI_COMPAT                         = 0x40,
-    HOTPATCH_COMPATIBLE                        = 0x80,
+    CET_DYNAMIC_APIS_ALLOW_IN_PROC = 0x08,
+    CET_RESERVED_1 = 0x10,
+    CET_RESERVED_2 = 0x20,
+    FORWARD_CFI_COMPAT = 0x40,
+    HOTPATCH_COMPATIBLE = 0x80,
   };

   static std::unique_ptr<ExDllCharacteristics>
-    parse(const details::pe_debug& hdr, Section* section, span<uint8_t> payload);
+      parse(const details::pe_debug& hdr, Section* section, span<uint8_t> payload);

   ExDllCharacteristics(const details::pe_debug& debug, Section* sec,
                        uint32_t characteristics) :
     Debug(debug, sec),
-    characteristics_(characteristics)
-  {}
+    characteristics_(characteristics) {}

   ExDllCharacteristics(const ExDllCharacteristics& other) = default;
   ExDllCharacteristics& operator=(const ExDllCharacteristics& other) = default;
diff --git a/deps/LIEF/include/LIEF/PE/debug/FPO.hpp b/deps/LIEF/include/LIEF/PE/debug/FPO.hpp
index 950a66d7e85..3a8e856f06f 100644
--- a/deps/LIEF/include/LIEF/PE/debug/FPO.hpp
+++ b/deps/LIEF/include/LIEF/PE/debug/FPO.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -27,7 +27,6 @@ namespace PE {
 /// This class represents the `IMAGE_DEBUG_TYPE_FPO` debug entry
 class LIEF_API FPO : public Debug {
   public:
-
   enum class FRAME_TYPE {
     FPO = 0,
     TRAP = 1,
@@ -50,7 +49,7 @@ class LIEF_API FPO : public Debug {
     /// The size of the parameters
     uint32_t parameters_size = 0;

-    /// The number of bytes in the function prolog code.
+    /// The number of bytes in the function prologue code.
     uint16_t prolog_size = 0;

     /// Number of registers saved
@@ -70,9 +69,8 @@ class LIEF_API FPO : public Debug {

     std::string to_string() const;

-    friend LIEF_API
-      std::ostream& operator<<(std::ostream& os, const entry_t& entry)
-    {
+    friend LIEF_API std::ostream& operator<<(std::ostream& os,
+                                             const entry_t& entry) {
       os << entry.to_string();
       return os;
     }
@@ -82,12 +80,11 @@ class LIEF_API FPO : public Debug {
   using it_entries = ref_iterator<entries_t&>;
   using it_const_entries = const_ref_iterator<const entries_t&>;

-  static std::unique_ptr<FPO>
-    parse(const details::pe_debug& hdr, Section* section, span<uint8_t> payload);
+  static std::unique_ptr<FPO> parse(const details::pe_debug& hdr, Section* section,
+                                    span<uint8_t> payload);

   FPO(const details::pe_debug& hdr, Section* section) :
-    Debug(hdr, section)
-  {}
+    Debug(hdr, section) {}

   FPO(const FPO& other) = default;
   FPO& operator=(const FPO& other) = default;
@@ -100,11 +97,11 @@ class LIEF_API FPO : public Debug {
   }

   /// Iterator over the FPO entries
-  it_const_entries entries() const {
+  it_const_entries entries() const LIEF_LIFETIMEBOUND {
     return entries_;
   }

-  it_entries entries() {
+  it_entries entries() LIEF_LIFETIMEBOUND {
     return entries_;
   }

diff --git a/deps/LIEF/include/LIEF/PE/debug/PDBChecksum.hpp b/deps/LIEF/include/LIEF/PE/debug/PDBChecksum.hpp
index 2dd85b562de..ffdd92a4a29 100644
--- a/deps/LIEF/include/LIEF/PE/debug/PDBChecksum.hpp
+++ b/deps/LIEF/include/LIEF/PE/debug/PDBChecksum.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -17,6 +17,7 @@
 #define LIEF_PE_PDBCHECKSUM_H
 #include <vector>

+#include "LIEF/compiler_attributes.hpp"
 #include "LIEF/visibility.h"
 #include "LIEF/PE/debug/Debug.hpp"

@@ -28,7 +29,7 @@ namespace PE {
 class LIEF_API PDBChecksum : public Debug {
   public:
   static std::unique_ptr<PDBChecksum>
-    parse(const details::pe_debug& hdr, Section* section, span<uint8_t> payload);
+      parse(const details::pe_debug& hdr, Section* section, span<uint8_t> payload);

   enum class HASH_ALGO : uint32_t {
     UNKNOWN = 0,
@@ -38,15 +39,13 @@ class LIEF_API PDBChecksum : public Debug {
   PDBChecksum(HASH_ALGO algo, std::vector<uint8_t> hash) :
     Debug(Debug::TYPES::PDBCHECKSUM),
     algo_(algo),
-    hash_(std::move(hash))
-  {}
+    hash_(std::move(hash)) {}

-  PDBChecksum(const details::pe_debug& dbg, Section* sec,
-              HASH_ALGO algo, std::vector<uint8_t> hash) :
+  PDBChecksum(const details::pe_debug& dbg, Section* sec, HASH_ALGO algo,
+              std::vector<uint8_t> hash) :
     Debug(dbg, sec),
     algo_(algo),
-    hash_(std::move(hash))
-  {}
+    hash_(std::move(hash)) {}

   PDBChecksum(const PDBChecksum& other) = default;
   PDBChecksum& operator=(const PDBChecksum& other) = default;
@@ -59,11 +58,11 @@ class LIEF_API PDBChecksum : public Debug {
   }

   /// Hash of the PDB content
-  span<const uint8_t> hash() const {
+  span<const uint8_t> hash() const LIEF_LIFETIMEBOUND {
     return hash_;
   }

-  span<uint8_t> hash() {
+  span<uint8_t> hash() LIEF_LIFETIMEBOUND {
     return hash_;
   }

diff --git a/deps/LIEF/include/LIEF/PE/debug/Pogo.hpp b/deps/LIEF/include/LIEF/PE/debug/Pogo.hpp
index bdbdeab5f19..7509e35f636 100644
--- a/deps/LIEF/include/LIEF/PE/debug/Pogo.hpp
+++ b/deps/LIEF/include/LIEF/PE/debug/Pogo.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -15,7 +15,6 @@
  */
 #ifndef LIEF_PE_POGO_H
 #define LIEF_PE_POGO_H
-#include <ostream>

 #include "LIEF/visibility.h"
 #include "LIEF/iterators.hpp"
@@ -36,15 +35,18 @@ class LIEF_API Pogo : public Debug {
   friend class Parser;

   public:
-  using entries_t        = std::vector<PogoEntry>;
-  using it_entries       = ref_iterator<entries_t&>;
+  using entries_t = std::vector<PogoEntry>;
+  using it_entries = ref_iterator<entries_t&>;
   using it_const_entries = const_ref_iterator<const entries_t&>;

   enum class SIGNATURES {
     UNKNOWN = 0x0fffffff,
-    ZERO    = 0x00000000,
-    LCTG    = 0x4C544347, // LCTG
-    PGI     = 0x50474900, // PGI\0
+    ZERO = 0x00000000,
+    LCTG = 0x4C544347, // LCTG
+    PGI = 0x50474900,  // PGI\0
+    PGO = 0x50474F00,  // PGI\0
+    PGU = 0x50475500,  // PGU\0
+    SPGO = 0x5350474f, // SPGO
   };

   Pogo() {
@@ -53,13 +55,11 @@ class LIEF_API Pogo : public Debug {

   Pogo(SIGNATURES sig) :
     Debug{Debug::TYPES::POGO},
-    sig_{sig}
-  {}
+    sig_{sig} {}

   Pogo(const details::pe_debug& debug, SIGNATURES sig, Section* sec) :
     Debug(debug, sec),
-    sig_(sig)
-  {}
+    sig_(sig) {}

   Pogo(const Pogo&) = default;
   Pogo& operator=(const Pogo&) = default;
@@ -76,11 +76,11 @@ class LIEF_API Pogo : public Debug {
   }

   /// An iterator over the different POGO elements
-  it_entries entries() {
+  it_entries entries() LIEF_LIFETIMEBOUND {
     return entries_;
   }

-  it_const_entries entries() const {
+  it_const_entries entries() const LIEF_LIFETIMEBOUND {
     return entries_;
   }

diff --git a/deps/LIEF/include/LIEF/PE/debug/PogoEntry.hpp b/deps/LIEF/include/LIEF/PE/debug/PogoEntry.hpp
index 4221fe5a545..465ac7e246a 100644
--- a/deps/LIEF/include/LIEF/PE/debug/PogoEntry.hpp
+++ b/deps/LIEF/include/LIEF/PE/debug/PogoEntry.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -39,12 +39,10 @@ class LIEF_API PogoEntry : public Object {
   PogoEntry(uint32_t start_rva, uint32_t size, std::string name) :
     start_rva_{start_rva},
     size_{size},
-    name_{std::move(name)}
-  {}
+    name_{std::move(name)} {}

   PogoEntry(uint32_t start_rva, uint32_t size) :
-    PogoEntry{start_rva, size, ""}
-  {}
+    PogoEntry{start_rva, size, ""} {}

   PogoEntry& operator=(const PogoEntry&) = default;
   ~PogoEntry() override = default;
@@ -75,7 +73,8 @@ class LIEF_API PogoEntry : public Object {

   void accept(Visitor& visitor) const override;

-  LIEF_API friend std::ostream& operator<<(std::ostream& os, const PogoEntry& entry);
+  LIEF_API friend std::ostream& operator<<(std::ostream& os,
+                                           const PogoEntry& entry);

   protected:
   uint32_t start_rva_ = 0;
diff --git a/deps/LIEF/include/LIEF/PE/debug/Repro.hpp b/deps/LIEF/include/LIEF/PE/debug/Repro.hpp
index 42bf694766b..9f7b1cdd7d0 100644
--- a/deps/LIEF/include/LIEF/PE/debug/Repro.hpp
+++ b/deps/LIEF/include/LIEF/PE/debug/Repro.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -15,9 +15,9 @@
  */
 #ifndef LIEF_PE_REPRO_H
 #define LIEF_PE_REPRO_H
-#include <ostream>
 #include <vector>

+#include "LIEF/compiler_attributes.hpp"
 #include "LIEF/visibility.h"
 #include "LIEF/PE/debug/Debug.hpp"
 #include "LIEF/span.hpp"
@@ -40,22 +40,18 @@ class LIEF_API Repro : public Debug {

   public:
   Repro() :
-    Debug{Debug::TYPES::REPRO}
-  {}
+    Debug{Debug::TYPES::REPRO} {}

   Repro(std::vector<uint8_t> hash) :
     Debug{Debug::TYPES::REPRO},
-    hash_{std::move(hash)}
-  {}
+    hash_{std::move(hash)} {}

   Repro(const details::pe_debug& dbg, std::vector<uint8_t> hash, Section* sec) :
     Debug{dbg, sec},
-    hash_{std::move(hash)}
-  {}
+    hash_{std::move(hash)} {}

   Repro(const details::pe_debug& dbg, Section* sec) :
-    Debug{dbg, sec}
-  {}
+    Debug{dbg, sec} {}

   Repro(const Repro& other) = default;
   Repro& operator=(const Repro& other) = default;
@@ -64,11 +60,11 @@ class LIEF_API Repro : public Debug {
   Repro& operator=(Repro&& other) = default;

   /// The hash associated with the reproducible build
-  span<const uint8_t> hash() const {
+  span<const uint8_t> hash() const LIEF_LIFETIMEBOUND {
     return hash_;
   }

-  span<uint8_t> hash() {
+  span<uint8_t> hash() LIEF_LIFETIMEBOUND {
     return hash_;
   }

diff --git a/deps/LIEF/include/LIEF/PE/debug/VCFeature.hpp b/deps/LIEF/include/LIEF/PE/debug/VCFeature.hpp
index 07760ddf89b..f245898924e 100644
--- a/deps/LIEF/include/LIEF/PE/debug/VCFeature.hpp
+++ b/deps/LIEF/include/LIEF/PE/debug/VCFeature.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -25,16 +25,17 @@ namespace PE {
 /// This class represents the `IMAGE_DEBUG_TYPE_VC_FEATURE` debug entry
 class LIEF_API VCFeature : public Debug {
   public:
-  static std::unique_ptr<VCFeature>
-    parse(const details::pe_debug& hdr, Section* section, span<uint8_t> payload);
+  static std::unique_ptr<VCFeature> parse(const details::pe_debug& hdr,
+                                          Section* section, span<uint8_t> payload);

-  VCFeature(const details::pe_debug& debug, Section* sec,
-            uint32_t pre_vc, uint32_t c_cpp, uint32_t gs, uint32_t sdl,
-            uint32_t guards) :
+  VCFeature(const details::pe_debug& debug, Section* sec, uint32_t pre_vc,
+            uint32_t c_cpp, uint32_t gs, uint32_t sdl, uint32_t guards) :
     Debug(debug, sec),
-    pre_vc_(pre_vc), c_cpp_(c_cpp),
-    gs_(gs), sdl_(sdl), guards_(guards)
-  {}
+    pre_vc_(pre_vc),
+    c_cpp_(c_cpp),
+    gs_(gs),
+    sdl_(sdl),
+    guards_(guards) {}

   VCFeature(const VCFeature& other) = default;
   VCFeature& operator=(const VCFeature& other) = default;
@@ -75,27 +76,27 @@ class LIEF_API VCFeature : public Debug {
     return guards_;
   }

-  VCFeature& pre_vcpp(uint32_t value) {
+  VCFeature& pre_vcpp(uint32_t value) LIEF_LIFETIMEBOUND {
     pre_vc_ = value;
     return *this;
   }

-  VCFeature& c_cpp(uint32_t value) {
+  VCFeature& c_cpp(uint32_t value) LIEF_LIFETIMEBOUND {
     c_cpp_ = value;
     return *this;
   }

-  VCFeature& gs(uint32_t value) {
+  VCFeature& gs(uint32_t value) LIEF_LIFETIMEBOUND {
     gs_ = value;
     return *this;
   }

-  VCFeature& sdl(uint32_t value) {
+  VCFeature& sdl(uint32_t value) LIEF_LIFETIMEBOUND {
     sdl_ = value;
     return *this;
   }

-  VCFeature& guards(uint32_t value) {
+  VCFeature& guards(uint32_t value) LIEF_LIFETIMEBOUND {
     guards_ = value;
     return *this;
   }
@@ -107,6 +108,7 @@ class LIEF_API VCFeature : public Debug {
   ~VCFeature() override = default;

   std::string to_string() const override;
+
   private:
   uint32_t pre_vc_ = 0;
   uint32_t c_cpp_ = 0;
diff --git a/deps/LIEF/include/LIEF/PE/enums.hpp b/deps/LIEF/include/LIEF/PE/enums.hpp
index aa79c37d6f2..e808ce330b0 100644
--- a/deps/LIEF/include/LIEF/PE/enums.hpp
+++ b/deps/LIEF/include/LIEF/PE/enums.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2021 - 2025 R. Thomas
+/* Copyright 2021 - 2026 R. Thomas
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -20,8 +20,8 @@ namespace LIEF {
 namespace PE {

 enum class PE_TYPE : uint16_t {
-  PE32      = 0x10b, ///< 32bits
-  PE32_PLUS = 0x20b  ///< 64 bits
+  PE32 = 0x10b,      ///< 32bits
+  PE32_PLUS = 0x20b, ///< 64 bits
 };

 /// Cryptography algorithms
diff --git a/deps/LIEF/include/LIEF/PE/exceptions_info/AArch64/PackedFunction.hpp b/deps/LIEF/include/LIEF/PE/exceptions_info/AArch64/PackedFunction.hpp
index 49dccee0077..56f51faa567 100644
--- a/deps/LIEF/include/LIEF/PE/exceptions_info/AArch64/PackedFunction.hpp
+++ b/deps/LIEF/include/LIEF/PE/exceptions_info/AArch64/PackedFunction.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -29,11 +29,12 @@ namespace unwind_aarch64 {
 ///
 /// An excepted entry can be packed if the unwind data fit in 30 bits
 ///
-/// Reference: https://learn.microsoft.com/en-us/cpp/build/arm64-exception-handling?view=msvc-170#packed-unwind-data
+/// Reference:
+/// https://learn.microsoft.com/en-us/cpp/build/arm64-exception-handling?view=msvc-170#packed-unwind-data
 class LIEF_API PackedFunction : public RuntimeFunctionAArch64 {
   public:
-  static std::unique_ptr<PackedFunction>
-    parse(Parser& ctx, BinaryStream& strm, uint32_t rva, uint32_t unwind_data);
+  static std::unique_ptr<PackedFunction> parse(Parser& ctx, BinaryStream& strm,
+                                               uint32_t rva, uint32_t unwind_data);

   using RuntimeFunctionAArch64::RuntimeFunctionAArch64;

@@ -121,7 +122,6 @@ class LIEF_API PackedFunction : public RuntimeFunctionAArch64 {
   uint8_t h_ = 0;
   uint8_t reg_I_ = 0;
   uint8_t reg_F_ = 0;
-
 };
 }
 }
diff --git a/deps/LIEF/include/LIEF/PE/exceptions_info/AArch64/UnpackedFunction.hpp b/deps/LIEF/include/LIEF/PE/exceptions_info/AArch64/UnpackedFunction.hpp
index 1d2120b58ac..11554ff3b78 100644
--- a/deps/LIEF/include/LIEF/PE/exceptions_info/AArch64/UnpackedFunction.hpp
+++ b/deps/LIEF/include/LIEF/PE/exceptions_info/AArch64/UnpackedFunction.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -27,10 +27,10 @@ namespace unwind_aarch64 {

 /// This class represents an unpacked AArch64 exception entry
 ///
-/// Reference: https://learn.microsoft.com/en-us/cpp/build/arm64-exception-handling?view=msvc-170#xdata-records
+/// Reference:
+/// https://learn.microsoft.com/en-us/cpp/build/arm64-exception-handling?view=msvc-170#xdata-records
 class LIEF_API UnpackedFunction : public RuntimeFunctionAArch64 {
   public:
-
   /// This structure describes an epilog scope.
   struct epilog_scope_t {
     static epilog_scope_t from_raw(uint32_t raw);
@@ -48,12 +48,11 @@ class LIEF_API UnpackedFunction : public RuntimeFunctionAArch64 {
   using it_epilog_scopes = ref_iterator<epilog_scopes_t&>;
   using it_const_epilog_scopes = const_ref_iterator<const epilog_scopes_t&>;

-  static std::unique_ptr<UnpackedFunction>
-    parse(Parser& ctx, BinaryStream& strm, uint32_t xdata_rva, uint32_t rva);
+  static std::unique_ptr<UnpackedFunction> parse(Parser& ctx, BinaryStream& strm,
+                                                 uint32_t xdata_rva, uint32_t rva);

   UnpackedFunction(uint32_t rva, uint32_t length) :
-    RuntimeFunctionAArch64(rva, length, PACKED_FLAGS::UNPACKED)
-  {}
+    RuntimeFunctionAArch64(rva, length, PACKED_FLAGS::UNPACKED) {}

   UnpackedFunction(const UnpackedFunction&) = default;
   UnpackedFunction& operator=(const UnpackedFunction&) = default;
@@ -117,11 +116,11 @@ class LIEF_API UnpackedFunction : public RuntimeFunctionAArch64 {
   }

   /// Bytes that contain the unwind codes.
-  span<const uint8_t> unwind_code() const {
+  span<const uint8_t> unwind_code() const LIEF_LIFETIMEBOUND {
     return unwind_code_;
   }

-  span<uint8_t> unwind_code() {
+  span<uint8_t> unwind_code() LIEF_LIFETIMEBOUND {
     return unwind_code_;
   }

@@ -143,11 +142,11 @@ class LIEF_API UnpackedFunction : public RuntimeFunctionAArch64 {
   }

   /// Iterator over the epilog scopes
-  it_epilog_scopes epilog_scopes() {
+  it_epilog_scopes epilog_scopes() LIEF_LIFETIMEBOUND {
     return epilog_scopes_;
   }

-  it_const_epilog_scopes epilog_scopes() const {
+  it_const_epilog_scopes epilog_scopes() const LIEF_LIFETIMEBOUND {
     return epilog_scopes_;
   }

@@ -186,12 +185,12 @@ class LIEF_API UnpackedFunction : public RuntimeFunctionAArch64 {
     return *this;
   }

-  UnpackedFunction& epilog_scopes(epilog_scopes_t scopes) {
+  UnpackedFunction& epilog_scopes(epilog_scopes_t scopes) LIEF_LIFETIMEBOUND {
     epilog_scopes_ = std::move(scopes);
     return *this;
   }

-  UnpackedFunction& unwind_code(std::vector<uint8_t> code) {
+  UnpackedFunction& unwind_code(std::vector<uint8_t> code) LIEF_LIFETIMEBOUND {
     unwind_code_ = std::move(code);
     return *this;
   }
diff --git a/deps/LIEF/include/LIEF/PE/exceptions_info/RuntimeFunctionAArch64.hpp b/deps/LIEF/include/LIEF/PE/exceptions_info/RuntimeFunctionAArch64.hpp
index 94f54dd98fe..7e8d70660e7 100644
--- a/deps/LIEF/include/LIEF/PE/exceptions_info/RuntimeFunctionAArch64.hpp
+++ b/deps/LIEF/include/LIEF/PE/exceptions_info/RuntimeFunctionAArch64.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -34,7 +34,8 @@ class Parser;
 /// format, this class is inherited by LIEF::PE::unwind_aarch64::PackedFunction
 /// and LIEF::PE::unwind_aarch64::UnpackedFunction
 ///
-/// Reference: https://learn.microsoft.com/en-us/cpp/build/arm64-exception-handling#arm64-exception-handling-information
+/// Reference:
+/// https://learn.microsoft.com/en-us/cpp/build/arm64-exception-handling#arm64-exception-handling-information
 class LIEF_API RuntimeFunctionAArch64 : public ExceptionInfo {
   public:
   enum class PACKED_FLAGS {
@@ -44,14 +45,13 @@ class LIEF_API RuntimeFunctionAArch64 : public ExceptionInfo {
     RESERVED = 3,
   };

-  static std::unique_ptr<RuntimeFunctionAArch64>
-    parse(Parser& ctx, BinaryStream& strm);
+  static std::unique_ptr<RuntimeFunctionAArch64> parse(Parser& ctx,
+                                                       BinaryStream& strm);

   RuntimeFunctionAArch64(uint64_t RVA, uint32_t length, PACKED_FLAGS flag) :
     ExceptionInfo(ARCH::ARM64, RVA),
     length_(length),
-    flag_(flag)
-  {}
+    flag_(flag) {}

   RuntimeFunctionAArch64(const RuntimeFunctionAArch64&) = default;
   RuntimeFunctionAArch64& operator=(const RuntimeFunctionAArch64&) = default;
@@ -60,7 +60,9 @@ class LIEF_API RuntimeFunctionAArch64 : public ExceptionInfo {
   RuntimeFunctionAArch64& operator=(RuntimeFunctionAArch64&&) = default;

   std::unique_ptr<ExceptionInfo> clone() const override {
-    return std::unique_ptr<RuntimeFunctionAArch64>(new RuntimeFunctionAArch64(*this));
+    return std::unique_ptr<RuntimeFunctionAArch64>(
+        new RuntimeFunctionAArch64(*this)
+    );
   }

   /// Length of the function in bytes
@@ -85,7 +87,7 @@ class LIEF_API RuntimeFunctionAArch64 : public ExceptionInfo {
     return info->arch() == ExceptionInfo::ARCH::ARM64;
   }

-  ~RuntimeFunctionAArch64() = default;
+  ~RuntimeFunctionAArch64() override = default;

   protected:
   uint32_t length_ = 0;
diff --git a/deps/LIEF/include/LIEF/PE/exceptions_info/RuntimeFunctionX64.hpp b/deps/LIEF/include/LIEF/PE/exceptions_info/RuntimeFunctionX64.hpp
index 2fb4339a2c3..90b0e98db03 100644
--- a/deps/LIEF/include/LIEF/PE/exceptions_info/RuntimeFunctionX64.hpp
+++ b/deps/LIEF/include/LIEF/PE/exceptions_info/RuntimeFunctionX64.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -41,14 +41,13 @@ class Code;
 /// Reference: https://learn.microsoft.com/en-us/cpp/build/exception-handling-x64
 class LIEF_API RuntimeFunctionX64 : public ExceptionInfo {
   public:
-
-  /// \private
+  /// @private
   LIEF_LOCAL static std::unique_ptr<RuntimeFunctionX64>
-    parse(Parser& ctx, BinaryStream& strm, bool skip_unwind = false);
+      parse(Parser& ctx, BinaryStream& strm, bool skip_unwind = false);

-  /// \private
-  LIEF_LOCAL static ok_error_t
-    parse_unwind(Parser& ctx, BinaryStream& strm, RuntimeFunctionX64& func);
+  /// @private
+  LIEF_LOCAL static ok_error_t parse_unwind(Parser& ctx, BinaryStream& strm,
+                                            RuntimeFunctionX64& func);

   enum class UNWIND_FLAGS : uint8_t {
     /// The function has an exception handler that should be called when looking
@@ -133,7 +132,21 @@ class LIEF_API RuntimeFunctionX64 : public ExceptionInfo {

   enum class UNWIND_REG : uint32_t {
     RAX = 0,
-    RCX, RDX, RBX, RSP, RBP, RSI, RDI, R8, R9, R10, R11, R12, R13, R14, R15,
+    RCX,
+    RDX,
+    RBX,
+    RSP,
+    RBP,
+    RSI,
+    RDI,
+    R8,
+    R9,
+    R10,
+    R11,
+    R12,
+    R13,
+    R14,
+    R15,
   };

   /// This structure represents the `UNWIND_INFO` which records the effects
@@ -191,9 +204,8 @@ class LIEF_API RuntimeFunctionX64 : public ExceptionInfo {
     /// Pretty representation of this structure as a string
     std::string to_string() const;

-    friend LIEF_API
-      std::ostream& operator<<(std::ostream& os, const unwind_info_t& info)
-    {
+    friend LIEF_API std::ostream& operator<<(std::ostream& os,
+                                             const unwind_info_t& info) {
       os << info.to_string();
       return os;
     }
@@ -202,8 +214,7 @@ class LIEF_API RuntimeFunctionX64 : public ExceptionInfo {
   RuntimeFunctionX64(uint32_t rva_start, uint32_t rva_end, uint32_t unwind_rva) :
     ExceptionInfo(ARCH::X86_64, rva_start),
     rva_end_(rva_end),
-    unwind_rva_(unwind_rva)
-  {}
+    unwind_rva_(unwind_rva) {}

   RuntimeFunctionX64(const RuntimeFunctionX64&) = default;
   RuntimeFunctionX64& operator=(const RuntimeFunctionX64&) = default;
diff --git a/deps/LIEF/include/LIEF/PE/exceptions_info/UnwindCodeAArch64.hpp b/deps/LIEF/include/LIEF/PE/exceptions_info/UnwindCodeAArch64.hpp
index d7e94f1cad6..dc06e01421c 100644
--- a/deps/LIEF/include/LIEF/PE/exceptions_info/UnwindCodeAArch64.hpp
+++ b/deps/LIEF/include/LIEF/PE/exceptions_info/UnwindCodeAArch64.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -45,7 +45,8 @@ enum class OPCODES {
   END,
   END_C,
   SAVE_NEXT,
-  SAVE_ANY_REG, E7,
+  SAVE_ANY_REG,
+  E7,
   TRAP_FRAME,
   MACHINE_FRAME,
   CONTEXT,
diff --git a/deps/LIEF/include/LIEF/PE/exceptions_info/UnwindCodeX64.hpp b/deps/LIEF/include/LIEF/PE/exceptions_info/UnwindCodeX64.hpp
index 2116e270379..83898043884 100644
--- a/deps/LIEF/include/LIEF/PE/exceptions_info/UnwindCodeX64.hpp
+++ b/deps/LIEF/include/LIEF/PE/exceptions_info/UnwindCodeX64.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -33,9 +33,10 @@ class LIEF_API Code {
   using OPCODE = RuntimeFunctionX64::UNWIND_OPCODES;
   using REG = RuntimeFunctionX64::UNWIND_REG;

-  /// \private
+  /// @private
   static std::unique_ptr<Code>
-    create_from(const RuntimeFunctionX64::unwind_info_t& info, SpanStream& stream);
+      create_from(const RuntimeFunctionX64::unwind_info_t& info,
+                  SpanStream& stream);

   Code() = delete;
   Code(const Code&) = default;
@@ -48,12 +49,10 @@ class LIEF_API Code {

   Code(OPCODE opcode, uint32_t pos) :
     pos_(pos),
-    opcode_(opcode)
-  {}
+    opcode_(opcode) {}

   Code(OPCODE opcode) :
-    Code(opcode, 0)
-  {}
+    Code(opcode, 0) {}

   /// The original opcode
   OPCODE opcode() const {
@@ -84,8 +83,7 @@ class LIEF_API Alloc : public Code {
   public:
   Alloc(OPCODE op, size_t pos, uint32_t size) :
     Code(op, pos),
-    size_(size)
-  {}
+    size_(size) {}

   /// The size allocated
   uint32_t size() const {
@@ -100,6 +98,7 @@ class LIEF_API Alloc : public Code {
     return code->opcode() == OPCODE::ALLOC_LARGE ||
            code->opcode() == OPCODE::ALLOC_SMALL;
   }
+
   protected:
   uint32_t size_ = 0;
 };
@@ -110,8 +109,7 @@ class LIEF_API PushNonVol : public Code {
   PushNonVol() = delete;
   PushNonVol(REG reg, size_t pos) :
     Code(OPCODE::PUSH_NONVOL, pos),
-    reg_(reg)
-  {}
+    reg_(reg) {}

   std::string to_string() const override;

@@ -136,8 +134,7 @@ class LIEF_API PushMachFrame : public Code {
   PushMachFrame() = delete;
   PushMachFrame(uint8_t value, size_t pos) :
     Code(OPCODE::PUSH_MACHFRAME, pos),
-    value_(value)
-  {}
+    value_(value) {}

   /// 0 or 1
   uint8_t value() const {
@@ -163,8 +160,7 @@ class LIEF_API SetFPReg : public Code {
   SetFPReg() = delete;
   SetFPReg(REG value, size_t pos) :
     Code(OPCODE::SET_FPREG, pos),
-    reg_(value)
-  {}
+    reg_(value) {}

   /// Frame pointer register
   REG reg() const {
@@ -191,8 +187,7 @@ class LIEF_API SaveNonVolatile : public Code {
   SaveNonVolatile(OPCODE op, REG value, size_t pos, uint32_t offset) :
     Code(op, pos),
     reg_(value),
-    offset_(offset)
-  {}
+    offset_(offset) {}

   REG reg() const {
     return reg_;
@@ -222,8 +217,7 @@ class LIEF_API SaveXMM128 : public Code {
   SaveXMM128(OPCODE op, uint8_t num, size_t pos, uint32_t offset) :
     Code(op, pos),
     num_(num),
-    offset_(offset)
-  {}
+    offset_(offset) {}

   uint8_t num() const {
     return num_;
@@ -255,8 +249,7 @@ class LIEF_API Epilog : public Code {
   Epilog(uint8_t flags, uint8_t size) :
     Code(OPCODE::EPILOG, 0),
     flags_(flags),
-    size_(size)
-  {}
+    size_(size) {}

   uint8_t flags() const {
     return flags_;
@@ -283,8 +276,7 @@ class LIEF_API Epilog : public Code {
 class LIEF_API Spare : public Code {
   public:
   Spare() :
-    Code(OPCODE::SPARE, 0)
-  {}
+    Code(OPCODE::SPARE, 0) {}

   std::string to_string() const override {
     return "Noop";
@@ -302,5 +294,3 @@ class LIEF_API Spare : public Code {
 }
 }
 #endif
-
-
diff --git a/deps/LIEF/include/LIEF/PE/exceptions_info/internal_arm64.hpp b/deps/LIEF/include/LIEF/PE/exceptions_info/internal_arm64.hpp
index d2a93c4c778..4683a097c8d 100644
--- a/deps/LIEF/include/LIEF/PE/exceptions_info/internal_arm64.hpp
+++ b/deps/LIEF/include/LIEF/PE/exceptions_info/internal_arm64.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -78,8 +78,7 @@ struct arm64_unpacked_t {
   }

   uint16_t epilog_count() const {
-    return is_extended() ? (data[1] & 0x0000ffff) :
-                           (data[0] & 0x07C00000) >> 22;
+    return is_extended() ? (data[1] & 0x0000ffff) : (data[0] & 0x07C00000) >> 22;
   }

   uint8_t code_words() const {
diff --git a/deps/LIEF/include/LIEF/PE/exceptions_info/internal_x64.hpp b/deps/LIEF/include/LIEF/PE/exceptions_info/internal_x64.hpp
index d0394851463..eee9474a737 100644
--- a/deps/LIEF/include/LIEF/PE/exceptions_info/internal_x64.hpp
+++ b/deps/LIEF/include/LIEF/PE/exceptions_info/internal_x64.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/deps/LIEF/include/LIEF/PE/hash.hpp b/deps/LIEF/include/LIEF/PE/hash.hpp
index 92c4a208e31..57b00e2d38b 100644
--- a/deps/LIEF/include/LIEF/PE/hash.hpp
+++ b/deps/LIEF/include/LIEF/PE/hash.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -90,63 +90,63 @@ class LIEF_API Hash : public LIEF::Hash {
   using LIEF::Hash::process;

   public:
-  void visit(const Binary& Binary)                        override;
-  void visit(const DosHeader& dos_header)                 override;
-  void visit(const RichHeader& rich_header)               override;
-  void visit(const RichEntry& rich_entry)                 override;
-  void visit(const Header& header)                        override;
-  void visit(const OptionalHeader& optional_header)       override;
-  void visit(const DataDirectory& data_directory)         override;
-  void visit(const Section& section)                      override;
-  void visit(const Relocation& relocation)                override;
-  void visit(const RelocationEntry& relocation_entry)     override;
-  void visit(const Export& export_)                       override;
-  void visit(const ExportEntry& export_entry)             override;
-  void visit(const TLS& tls)                              override;
-  void visit(const Debug& debug)                          override;
-  void visit(const CodeView& cv)                          override;
-  void visit(const CodeViewPDB& cvpdb)                    override;
-  void visit(const Import& import)                        override;
-  void visit(const ImportEntry& import_entry)             override;
-  void visit(const DelayImport& import)                   override;
-  void visit(const DelayImportEntry& import_entry)        override;
-  void visit(const ResourceNode& resource_node)           override;
-  void visit(const ResourceData& resource_data)           override;
+  void visit(const Binary& Binary) override;
+  void visit(const DosHeader& dos_header) override;
+  void visit(const RichHeader& rich_header) override;
+  void visit(const RichEntry& rich_entry) override;
+  void visit(const Header& header) override;
+  void visit(const OptionalHeader& optional_header) override;
+  void visit(const DataDirectory& data_directory) override;
+  void visit(const Section& section) override;
+  void visit(const Relocation& relocation) override;
+  void visit(const RelocationEntry& relocation_entry) override;
+  void visit(const Export& export_) override;
+  void visit(const ExportEntry& export_entry) override;
+  void visit(const TLS& tls) override;
+  void visit(const Debug& debug) override;
+  void visit(const CodeView& cv) override;
+  void visit(const CodeViewPDB& cvpdb) override;
+  void visit(const Import& import) override;
+  void visit(const ImportEntry& import_entry) override;
+  void visit(const DelayImport& import) override;
+  void visit(const DelayImportEntry& import_entry) override;
+  void visit(const ResourceNode& resource_node) override;
+  void visit(const ResourceData& resource_data) override;
   void visit(const ResourceDirectory& resource_directory) override;
-  void visit(const ResourcesManager& resources_manager)   override;
-  void visit(const ResourceVersion& resource_version)     override;
-  void visit(const ResourceStringFileInfo& resource_sfi)  override;
-  void visit(const ResourceVarFileInfo& resource_vfi)     override;
-  void visit(const ResourceIcon& resource_icon)           override;
-  void visit(const ResourceDialogExtended& dialog)        override;
-  void visit(const ResourceDialogRegular& dialog)         override;
-  void visit(const ResourceStringTable& string_table)     override;
-  void visit(const ResourceAccelerator& acc)              override;
-  void visit(const Signature& signature)                  override;
-  void visit(const x509& x509)                            override;
-  void visit(const SignerInfo& signerinfo)                override;
-  void visit(const ContentInfo& contentinfo)              override;
-  void visit(const GenericContent& content)               override;
-  void visit(const SpcIndirectData& content)              override;
-  void visit(const Attribute& attr)                       override;
-  void visit(const ContentType& attr)                     override;
-  void visit(const GenericType& attr)                     override;
-  void visit(const MsCounterSign& attr)                   override;
-  void visit(const MsSpcNestedSignature& attr)            override;
-  void visit(const MsSpcStatementType& attr)              override;
-  void visit(const MsManifestBinaryID& attr)              override;
-  void visit(const PKCS9AtSequenceNumber& attr)           override;
-  void visit(const PKCS9CounterSignature& attr)           override;
-  void visit(const PKCS9MessageDigest& attr)              override;
-  void visit(const PKCS9SigningTime& attr)                override;
-  void visit(const SpcSpOpusInfo& attr)                   override;
-  void visit(const SpcRelaxedPeMarkerCheck& attr)         override;
-  void visit(const SigningCertificateV2& attr)            override;
-  void visit(const CodeIntegrity& code_integrity)         override;
-  void visit(const LoadConfiguration& config)             override;
-  void visit(const Pogo& pogo)        override;
-  void visit(const PogoEntry& entry)  override;
-  void visit(const Repro& entry)      override;
+  void visit(const ResourcesManager& resources_manager) override;
+  void visit(const ResourceVersion& resource_version) override;
+  void visit(const ResourceStringFileInfo& resource_sfi) override;
+  void visit(const ResourceVarFileInfo& resource_vfi) override;
+  void visit(const ResourceIcon& resource_icon) override;
+  void visit(const ResourceDialogExtended& dialog) override;
+  void visit(const ResourceDialogRegular& dialog) override;
+  void visit(const ResourceStringTable& string_table) override;
+  void visit(const ResourceAccelerator& acc) override;
+  void visit(const Signature& signature) override;
+  void visit(const x509& x509) override;
+  void visit(const SignerInfo& signerinfo) override;
+  void visit(const ContentInfo& contentinfo) override;
+  void visit(const GenericContent& content) override;
+  void visit(const SpcIndirectData& content) override;
+  void visit(const Attribute& attr) override;
+  void visit(const ContentType& attr) override;
+  void visit(const GenericType& attr) override;
+  void visit(const MsCounterSign& attr) override;
+  void visit(const MsSpcNestedSignature& attr) override;
+  void visit(const MsSpcStatementType& attr) override;
+  void visit(const MsManifestBinaryID& attr) override;
+  void visit(const PKCS9AtSequenceNumber& attr) override;
+  void visit(const PKCS9CounterSignature& attr) override;
+  void visit(const PKCS9MessageDigest& attr) override;
+  void visit(const PKCS9SigningTime& attr) override;
+  void visit(const SpcSpOpusInfo& attr) override;
+  void visit(const SpcRelaxedPeMarkerCheck& attr) override;
+  void visit(const SigningCertificateV2& attr) override;
+  void visit(const CodeIntegrity& code_integrity) override;
+  void visit(const LoadConfiguration& config) override;
+  void visit(const Pogo& pogo) override;
+  void visit(const PogoEntry& entry) override;
+  void visit(const Repro& entry) override;

   ~Hash() override;
 };
diff --git a/deps/LIEF/include/LIEF/PE/json.hpp b/deps/LIEF/include/LIEF/PE/json.hpp
index fe08a17a359..e681ddd2ddb 100644
--- a/deps/LIEF/include/LIEF/PE/json.hpp
+++ b/deps/LIEF/include/LIEF/PE/json.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/deps/LIEF/include/LIEF/PE/resources/AcceleratorCodes.hpp b/deps/LIEF/include/LIEF/PE/resources/AcceleratorCodes.hpp
index efe99cad26d..7a870ca9100 100644
--- a/deps/LIEF/include/LIEF/PE/resources/AcceleratorCodes.hpp
+++ b/deps/LIEF/include/LIEF/PE/resources/AcceleratorCodes.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -22,178 +22,178 @@ namespace LIEF {
 namespace PE {

 /// From https://docs.microsoft.com/en-us/windows/win32/inputdev/virtual-key-codes
-enum class ACCELERATOR_CODES: uint32_t  {
-  LBUTTON             = 0x01,
-  RBUTTON             = 0x02,
-  CANCEL              = 0x03,
-  MBUTTON             = 0x04,
-  XBUTTON1_K          = 0x05,
-  XBUTTON2_K          = 0x06,
-  BACK                = 0x08,
-  TAB                 = 0x09,
-  CLEAR               = 0x0C,
-  RETURN              = 0x0D,
-  SHIFT               = 0x10,
-  CONTROL             = 0x11,
-  MENU                = 0x12,
-  PAUSE               = 0x13,
-  CAPITAL             = 0x14,
-  KANA                = 0x15,
-  IME_ON              = 0x16,
-  JUNJA               = 0x17,
-  FINAL               = 0x18,
-  KANJI               = 0x19,
-  IME_OFF             = 0x1A,
-  ESCAPE              = 0x1B,
-  CONVERT             = 0x1C,
-  NONCONVERT          = 0x1D,
-  ACCEPT              = 0x1E,
-  MODECHANGE          = 0x1F,
-  SPACE               = 0x20,
-  PRIOR               = 0x21,
-  NEXT                = 0x22,
-  END                 = 0x23,
-  HOME                = 0x24,
-  LEFT                = 0x25,
-  UP                  = 0x26,
-  RIGHT               = 0x27,
-  DOWN                = 0x28,
-  SELECT              = 0x29,
-  PRINT               = 0x2A,
-  EXECUTE             = 0x2B,
-  SNAPSHOT            = 0x2C,
-  INSERT              = 0x2D,
-  DELETE_K            = 0x2E,
-  HELP                = 0x2F,
-  NUM_0               = 0x30,
-  NUM_1               = 0x31,
-  NUM_2               = 0x32,
-  NUM_3               = 0x33,
-  NUM_4               = 0x34,
-  NUM_5               = 0x35,
-  NUM_6               = 0x36,
-  NUM_7               = 0x37,
-  NUM_8               = 0x38,
-  NUM_9               = 0x39,
-  A                   = 0x41,
-  B                   = 0x42,
-  C                   = 0x43,
-  D                   = 0x44,
-  E                   = 0x45,
-  F                   = 0x46,
-  G                   = 0x47,
-  H                   = 0x48,
-  I                   = 0x49,
-  J                   = 0x4A,
-  K                   = 0x4B,
-  L                   = 0x4C,
-  M                   = 0x4D,
-  N                   = 0x4E,
-  O                   = 0x4F,
-  P                   = 0x50,
-  Q                   = 0x51,
-  R                   = 0x52,
-  S                   = 0x53,
-  T                   = 0x54,
-  U                   = 0x55,
-  V                   = 0x56,
-  W                   = 0x57,
-  X                   = 0x58,
-  Y                   = 0x59,
-  Z                   = 0x5A,
-  LWIN                = 0x5B,
-  RWIN                = 0x5C,
-  APPS                = 0x5D,
-  SLEEP               = 0x5F,
-  NUMPAD0             = 0x60,
-  NUMPAD1             = 0x61,
-  NUMPAD2             = 0x62,
-  NUMPAD3             = 0x63,
-  NUMPAD4             = 0x64,
-  NUMPAD5             = 0x65,
-  NUMPAD6             = 0x66,
-  NUMPAD7             = 0x67,
-  NUMPAD8             = 0x68,
-  NUMPAD9             = 0x69,
-  MULTIPLY            = 0x6A,
-  ADD                 = 0x6B,
-  SEPARATOR           = 0x6C,
-  SUBTRACT            = 0x6D,
-  DECIMAL             = 0x6E,
-  DIVIDE              = 0x6F,
-  F1                  = 0x70,
-  F2                  = 0x71,
-  F3                  = 0x72,
-  F4                  = 0x73,
-  F5                  = 0x74,
-  F6                  = 0x75,
-  F7                  = 0x76,
-  F8                  = 0x77,
-  F9                  = 0x78,
-  F10                 = 0x79,
-  F11                 = 0x7A,
-  F12                 = 0x7B,
-  F13                 = 0x7C,
-  F14                 = 0x7D,
-  F15                 = 0x7E,
-  F16                 = 0x7F,
-  F17                 = 0x80,
-  F18                 = 0x81,
-  F19                 = 0x82,
-  F20                 = 0x83,
-  F21                 = 0x84,
-  F22                 = 0x85,
-  F23                 = 0x86,
-  F24                 = 0x87,
-  NUMLOCK             = 0x90,
-  SCROLL              = 0x91,
-  LSHIFT              = 0xA0,
-  RSHIFT              = 0xA1,
-  LCONTROL            = 0xA2,
-  RCONTROL            = 0xA3,
-  LMENU               = 0xA4,
-  RMENU               = 0xA5,
-  BROWSER_BACK        = 0xA6,
-  BROWSER_FORWARD     = 0xA7,
-  BROWSER_REFRESH     = 0xA8,
-  BROWSER_STOP        = 0xA9,
-  BROWSER_SEARCH      = 0xAA,
-  BROWSER_FAVORITES   = 0xAB,
-  BROWSER_HOME        = 0xAC,
-  VOLUME_MUTE         = 0xAD,
-  VOLUME_DOWN         = 0xAE,
-  VOLUME_UP           = 0xAF,
-  MEDIA_NEXT_TRACK    = 0xB0,
-  MEDIA_PREV_TRACK    = 0xB1,
-  MEDIA_STOP          = 0xB2,
-  MEDIA_PLAY_PAUSE    = 0xB3,
-  LAUNCH_MAIL         = 0xB4,
+enum class ACCELERATOR_CODES : uint32_t {
+  LBUTTON = 0x01,
+  RBUTTON = 0x02,
+  CANCEL = 0x03,
+  MBUTTON = 0x04,
+  XBUTTON1_K = 0x05,
+  XBUTTON2_K = 0x06,
+  BACK = 0x08,
+  TAB = 0x09,
+  CLEAR = 0x0C,
+  RETURN = 0x0D,
+  SHIFT = 0x10,
+  CONTROL = 0x11,
+  MENU = 0x12,
+  PAUSE = 0x13,
+  CAPITAL = 0x14,
+  KANA = 0x15,
+  IME_ON = 0x16,
+  JUNJA = 0x17,
+  FINAL = 0x18,
+  KANJI = 0x19,
+  IME_OFF = 0x1A,
+  ESCAPE = 0x1B,
+  CONVERT = 0x1C,
+  NONCONVERT = 0x1D,
+  ACCEPT = 0x1E,
+  MODECHANGE = 0x1F,
+  SPACE = 0x20,
+  PRIOR = 0x21,
+  NEXT = 0x22,
+  END = 0x23,
+  HOME = 0x24,
+  LEFT = 0x25,
+  UP = 0x26,
+  RIGHT = 0x27,
+  DOWN = 0x28,
+  SELECT = 0x29,
+  PRINT = 0x2A,
+  EXECUTE = 0x2B,
+  SNAPSHOT = 0x2C,
+  INSERT = 0x2D,
+  DELETE_K = 0x2E,
+  HELP = 0x2F,
+  NUM_0 = 0x30,
+  NUM_1 = 0x31,
+  NUM_2 = 0x32,
+  NUM_3 = 0x33,
+  NUM_4 = 0x34,
+  NUM_5 = 0x35,
+  NUM_6 = 0x36,
+  NUM_7 = 0x37,
+  NUM_8 = 0x38,
+  NUM_9 = 0x39,
+  A = 0x41,
+  B = 0x42,
+  C = 0x43,
+  D = 0x44,
+  E = 0x45,
+  F = 0x46,
+  G = 0x47,
+  H = 0x48,
+  I = 0x49,
+  J = 0x4A,
+  K = 0x4B,
+  L = 0x4C,
+  M = 0x4D,
+  N = 0x4E,
+  O = 0x4F,
+  P = 0x50,
+  Q = 0x51,
+  R = 0x52,
+  S = 0x53,
+  T = 0x54,
+  U = 0x55,
+  V = 0x56,
+  W = 0x57,
+  X = 0x58,
+  Y = 0x59,
+  Z = 0x5A,
+  LWIN = 0x5B,
+  RWIN = 0x5C,
+  APPS = 0x5D,
+  SLEEP = 0x5F,
+  NUMPAD0 = 0x60,
+  NUMPAD1 = 0x61,
+  NUMPAD2 = 0x62,
+  NUMPAD3 = 0x63,
+  NUMPAD4 = 0x64,
+  NUMPAD5 = 0x65,
+  NUMPAD6 = 0x66,
+  NUMPAD7 = 0x67,
+  NUMPAD8 = 0x68,
+  NUMPAD9 = 0x69,
+  MULTIPLY = 0x6A,
+  ADD = 0x6B,
+  SEPARATOR = 0x6C,
+  SUBTRACT = 0x6D,
+  DECIMAL = 0x6E,
+  DIVIDE = 0x6F,
+  F1 = 0x70,
+  F2 = 0x71,
+  F3 = 0x72,
+  F4 = 0x73,
+  F5 = 0x74,
+  F6 = 0x75,
+  F7 = 0x76,
+  F8 = 0x77,
+  F9 = 0x78,
+  F10 = 0x79,
+  F11 = 0x7A,
+  F12 = 0x7B,
+  F13 = 0x7C,
+  F14 = 0x7D,
+  F15 = 0x7E,
+  F16 = 0x7F,
+  F17 = 0x80,
+  F18 = 0x81,
+  F19 = 0x82,
+  F20 = 0x83,
+  F21 = 0x84,
+  F22 = 0x85,
+  F23 = 0x86,
+  F24 = 0x87,
+  NUMLOCK = 0x90,
+  SCROLL = 0x91,
+  LSHIFT = 0xA0,
+  RSHIFT = 0xA1,
+  LCONTROL = 0xA2,
+  RCONTROL = 0xA3,
+  LMENU = 0xA4,
+  RMENU = 0xA5,
+  BROWSER_BACK = 0xA6,
+  BROWSER_FORWARD = 0xA7,
+  BROWSER_REFRESH = 0xA8,
+  BROWSER_STOP = 0xA9,
+  BROWSER_SEARCH = 0xAA,
+  BROWSER_FAVORITES = 0xAB,
+  BROWSER_HOME = 0xAC,
+  VOLUME_MUTE = 0xAD,
+  VOLUME_DOWN = 0xAE,
+  VOLUME_UP = 0xAF,
+  MEDIA_NEXT_TRACK = 0xB0,
+  MEDIA_PREV_TRACK = 0xB1,
+  MEDIA_STOP = 0xB2,
+  MEDIA_PLAY_PAUSE = 0xB3,
+  LAUNCH_MAIL = 0xB4,
   LAUNCH_MEDIA_SELECT = 0xB5,
-  LAUNCH_APP1         = 0xB6,
-  LAUNCH_APP2         = 0xB7,
-  OEM_1               = 0xBA,
-  OEM_PLUS            = 0xBB,
-  OEM_COMMA           = 0xBC,
-  OEM_MINUS           = 0xBD,
-  OEM_PERIOD          = 0xBE,
-  OEM_2               = 0xBF,
-  OEM_4               = 0xDB,
-  OEM_5               = 0xDC,
-  OEM_6               = 0xDD,
-  OEM_7               = 0xDE,
-  OEM_8               = 0xDF,
-  OEM_102             = 0xE2,
-  PROCESSKEY          = 0xE5,
-  PACKET              = 0xE7,
-  ATTN                = 0xF6,
-  CRSEL               = 0xF7,
-  EXSEL               = 0xF8,
-  EREOF               = 0xF9,
-  PLAY                = 0xFA,
-  ZOOM                = 0xFB,
-  NONAME              = 0xFC,
-  PA1                 = 0xFD,
-  OEM_CLEAR           = 0xFE,
+  LAUNCH_APP1 = 0xB6,
+  LAUNCH_APP2 = 0xB7,
+  OEM_1 = 0xBA,
+  OEM_PLUS = 0xBB,
+  OEM_COMMA = 0xBC,
+  OEM_MINUS = 0xBD,
+  OEM_PERIOD = 0xBE,
+  OEM_2 = 0xBF,
+  OEM_4 = 0xDB,
+  OEM_5 = 0xDC,
+  OEM_6 = 0xDD,
+  OEM_7 = 0xDE,
+  OEM_8 = 0xDF,
+  OEM_102 = 0xE2,
+  PROCESSKEY = 0xE5,
+  PACKET = 0xE7,
+  ATTN = 0xF6,
+  CRSEL = 0xF7,
+  EXSEL = 0xF8,
+  EREOF = 0xF9,
+  PLAY = 0xFA,
+  ZOOM = 0xFB,
+  NONAME = 0xFC,
+  PA1 = 0xFD,
+  OEM_CLEAR = 0xFE,
 };

 LIEF_API const char* to_string(ACCELERATOR_CODES code);
diff --git a/deps/LIEF/include/LIEF/PE/resources/ResourceAccelerator.hpp b/deps/LIEF/include/LIEF/PE/resources/ResourceAccelerator.hpp
index 9ba111e3362..c6a923d8b2f 100644
--- a/deps/LIEF/include/LIEF/PE/resources/ResourceAccelerator.hpp
+++ b/deps/LIEF/include/LIEF/PE/resources/ResourceAccelerator.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -16,7 +16,6 @@
 #ifndef LIEF_PE_RESOURCE_ACCELERATOR_H
 #define LIEF_PE_RESOURCE_ACCELERATOR_H

-#include <string>
 #include <ostream>
 #include <vector>

@@ -37,8 +36,8 @@ struct pe_resource_acceltableentry;

 class LIEF_API ResourceAccelerator : public Object {
   friend class ResourcesManager;
-  public:

+  public:
   /// From: https://docs.microsoft.com/en-us/windows/win32/menurc/acceltableentry
   enum class FLAGS : uint32_t {
     /// The accelerator key is a virtual-key code. If this flag is not specified,
@@ -122,7 +121,8 @@ class LIEF_API ResourceAccelerator : public Object {

   void accept(Visitor& visitor) const override;

-  LIEF_API friend std::ostream& operator<<(std::ostream& os, const ResourceAccelerator& acc);
+  LIEF_API friend std::ostream& operator<<(std::ostream& os,
+                                           const ResourceAccelerator& acc);

   private:
   int16_t flags_ = 0;
diff --git a/deps/LIEF/include/LIEF/PE/resources/ResourceDialog.hpp b/deps/LIEF/include/LIEF/PE/resources/ResourceDialog.hpp
index 68d51ee8418..3613cbf2dea 100644
--- a/deps/LIEF/include/LIEF/PE/resources/ResourceDialog.hpp
+++ b/deps/LIEF/include/LIEF/PE/resources/ResourceDialog.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -16,6 +16,7 @@
 #ifndef LIEF_PE_RESOURCE_DIALOG_H
 #define LIEF_PE_RESOURCE_DIALOG_H

+#include "LIEF/compiler_attributes.hpp"
 #include "LIEF/visibility.h"
 #include "LIEF/Object.hpp"
 #include "LIEF/enums.hpp"
@@ -36,7 +37,8 @@ class ResourceData;
 /// an extended Dialog. These different kinds of Dialogs are documented by MS
 /// at the following addresses:
 ///
-/// - https://learn.microsoft.com/en-us/windows/win32/api/winuser/ns-winuser-dlgtemplate
+/// -
+/// https://learn.microsoft.com/en-us/windows/win32/api/winuser/ns-winuser-dlgtemplate
 /// - https://learn.microsoft.com/fr-fr/windows/win32/dlgbox/dlgitemtemplateex
 class LIEF_API ResourceDialog : public Object {
   public:
@@ -63,11 +65,14 @@ class LIEF_API ResourceDialog : public Object {
   /// Enum for discriminating the kind of the Dialog (regular vs extended)
   enum class TYPE {
     UNKNOWN = 0,
-    REGULAR, EXTENDED,
+    REGULAR,
+    EXTENDED,
   };

-  /// From: https://learn.microsoft.com/en-us/windows/win32/dlgbox/dialog-box-styles
+  /// From:
+  /// https://learn.microsoft.com/en-us/windows/win32/dlgbox/dialog-box-styles
   enum class DIALOG_STYLES : uint32_t {
+    // clang-format off
     ABSALIGN      = 0x0001,
     SYSMODAL      = 0x0002,
     LOCALEDIT     = 0x0020,
@@ -83,66 +88,75 @@ class LIEF_API ResourceDialog : public Object {
     CENTERMOUSE   = 0x1000,
     CONTEXTHELP   = 0x2000,
     SHELLFONT     = SETFONT | FIXEDSYS,
+    // clang-format on
   };

   /// From: https://docs.microsoft.com/en-us/windows/win32/winmsg/window-styles
   enum class WINDOW_STYLES : uint32_t {
-    OVERLAPPED      = 0x00000000,
-    POPUP           = 0x80000000,
-    CHILD           = 0x40000000,
-    MINIMIZE        = 0x20000000,
-    VISIBLE         = 0x10000000,
-    DISABLED        = 0x08000000,
-    CLIPSIBLINGS    = 0x04000000,
-    CLIPCHILDREN    = 0x02000000,
-    MAXIMIZE        = 0x01000000,
-    CAPTION         = 0x00C00000,
-    BORDER          = 0x00800000,
-    DLGFRAME        = 0x00400000,
-    VSCROLL         = 0x00200000,
-    HSCROLL         = 0x00100000,
-    SYSMENU         = 0x00080000,
-    THICKFRAME      = 0x00040000,
-    GROUP           = 0x00020000,
-    TABSTOP         = 0x00010000,
+    // clang-format off
+    OVERLAPPED   = 0x00000000,
+    POPUP        = 0x80000000,
+    CHILD        = 0x40000000,
+    MINIMIZE     = 0x20000000,
+    VISIBLE      = 0x10000000,
+    DISABLED     = 0x08000000,
+    CLIPSIBLINGS = 0x04000000,
+    CLIPCHILDREN = 0x02000000,
+    MAXIMIZE     = 0x01000000,
+    CAPTION      = 0x00C00000,
+    BORDER       = 0x00800000,
+    DLGFRAME     = 0x00400000,
+    VSCROLL      = 0x00200000,
+    HSCROLL      = 0x00100000,
+    SYSMENU      = 0x00080000,
+    THICKFRAME   = 0x00040000,
+    GROUP        = 0x00020000,
+    TABSTOP      = 0x00010000,
+    // clang-format on
   };

-  /// From https://docs.microsoft.com/en-us/windows/win32/winmsg/extended-window-styles
+  /// From
+  /// https://docs.microsoft.com/en-us/windows/win32/winmsg/extended-window-styles
   enum class WINDOW_EXTENDED_STYLES : uint32_t {
-    DLGMODALFRAME    = 0x00000001,
-    NOPARENTNOTIFY   = 0x00000004,
-    TOPMOST          = 0x00000008,
-    ACCEPTFILES      = 0x00000010,
-    TRANSPARENT_STY  = 0x00000020,
-    MDICHILD         = 0x00000040,
-    TOOLWINDOW       = 0x00000080,
-    WINDOWEDGE       = 0x00000100,
-    CLIENTEDGE       = 0x00000200,
-    CONTEXTHELP      = 0x00000400,
-
-    RIGHT            = 0x00001000,
-    LEFT             = 0x00000000,
-    RTLREADING       = 0x00002000,
-    LEFTSCROLLBAR    = 0x00004000,
-
-    CONTROLPARENT    = 0x00010000,
-    STATICEDGE       = 0x00020000,
-    APPWINDOW        = 0x00040000,
+    // clang-format off
+    DLGMODALFRAME   = 0x00000001,
+    NOPARENTNOTIFY  = 0x00000004,
+    TOPMOST         = 0x00000008,
+    ACCEPTFILES     = 0x00000010,
+    TRANSPARENT_STY = 0x00000020,
+    MDICHILD        = 0x00000040,
+    TOOLWINDOW      = 0x00000080,
+    WINDOWEDGE      = 0x00000100,
+    CLIENTEDGE      = 0x00000200,
+    CONTEXTHELP     = 0x00000400,
+
+    RIGHT           = 0x00001000,
+    LEFT            = 0x00000000,
+    RTLREADING      = 0x00002000,
+    LEFTSCROLLBAR   = 0x00004000,
+
+    CONTROLPARENT   = 0x00010000,
+    STATICEDGE      = 0x00020000,
+    APPWINDOW       = 0x00040000,
+    // clang-format on
   };

-  /// From: https://learn.microsoft.com/en-us/windows/win32/controls/common-control-styles
+  /// From:
+  /// https://learn.microsoft.com/en-us/windows/win32/controls/common-control-styles
   enum class CONTROL_STYLES : uint32_t {
-    TOP            = 0x00000001,
-    NOMOVEY        = 0x00000002,
-    BOTTOM         = 0x00000003,
-    NORESIZE       = 0x00000004,
-    NOPARENTALIGN  = 0x00000008,
-    ADJUSTABLE     = 0x00000020,
-    NODIVIDER      = 0x00000040,
-    VERT           = 0x00000080,
-    LEFT           = VERT | TOP,
-    RIGHT          = VERT | BOTTOM,
-    NOMOVEX        = VERT | NOMOVEY
+    // clang-format off
+    TOP           = 0x00000001,
+    NOMOVEY       = 0x00000002,
+    BOTTOM        = 0x00000003,
+    NORESIZE      = 0x00000004,
+    NOPARENTALIGN = 0x00000008,
+    ADJUSTABLE    = 0x00000020,
+    NODIVIDER     = 0x00000040,
+    VERT          = 0x00000080,
+    LEFT          = VERT | TOP,
+    RIGHT         = VERT | BOTTOM,
+    NOMOVEX       = VERT | NOMOVEY,
+    // clang-format on
   };

   /// This class represents an element of the dialog. It can be for instance,
@@ -161,12 +175,12 @@ class LIEF_API ResourceDialog : public Object {
     Item& operator=(Item&&) = default;

     enum class WINDOW_CLASS : uint32_t {
-      BUTTON     = 0x0080,
-      EDIT       = 0x0081,
-      STATIC     = 0x0082,
-      LIST_BOX   = 0x0083,
+      BUTTON = 0x0080,
+      EDIT = 0x0081,
+      STATIC = 0x0082,
+      LIST_BOX = 0x0083,
       SCROLL_BAR = 0x0084,
-      COMBO_BOX  = 0x0085,
+      COMBO_BOX = 0x0085,
     };

     /// The style of the control. This can be a combination of WINDOW_STYLES or
@@ -208,18 +222,26 @@ class LIEF_API ResourceDialog : public Object {
     /// The x-coordinate, in dialog box units, of the upper-left corner of the
     /// control. This coordinate is always relative to the upper-left corner of
     /// the dialog box's client area.
-    int16_t x() const { return x_; }
+    int16_t x() const {
+      return x_;
+    }

     /// The y-coordinate, in dialog box units, of the upper-left corner of the
     /// control. This coordinate is always relative to the upper-left corner of
     /// the dialog box's client area.
-    int16_t y() const { return y_; }
+    int16_t y() const {
+      return y_;
+    }

     /// The width, in dialog box units, of the control.
-    int16_t cx() const { return cx_; }
+    int16_t cx() const {
+      return cx_;
+    }

     /// The height, in dialog box units, of the control.
-    int16_t cy() const { return cy_; }
+    int16_t cy() const {
+      return cy_;
+    }

     Item& style(uint32_t value) {
       style_ = value;
@@ -231,12 +253,27 @@ class LIEF_API ResourceDialog : public Object {
       return *this;
     }

-    Item& x(int16_t value) { x_ = value; return *this; }
-    Item& y(int16_t value) { y_ = value; return *this; }
-    Item& cx(int16_t value) { cx_ = value; return *this; }
-    Item& cy(int16_t value) { cy_ = value; return *this; }
+    Item& x(int16_t value) {
+      x_ = value;
+      return *this;
+    }
+    Item& y(int16_t value) {
+      y_ = value;
+      return *this;
+    }
+    Item& cx(int16_t value) {
+      cx_ = value;
+      return *this;
+    }
+    Item& cy(int16_t value) {
+      cy_ = value;
+      return *this;
+    }

-    Item& id(int32_t value) { id_ = value; return *this; }
+    Item& id(int32_t value) {
+      id_ = value;
+      return *this;
+    }

     Item& data(std::vector<uint8_t> creation_data) {
       creation_data_ = std::move(creation_data);
@@ -280,11 +317,11 @@ class LIEF_API ResourceDialog : public Object {
     }

     /// Creation data that is passed to the control's window procedure
-    span<const uint8_t> creation_data() const {
+    span<const uint8_t> creation_data() const LIEF_LIFETIMEBOUND {
       return creation_data_;
     }

-    span<uint8_t> creation_data() {
+    span<uint8_t> creation_data() LIEF_LIFETIMEBOUND {
       return creation_data_;
     }

@@ -325,8 +362,7 @@ class LIEF_API ResourceDialog : public Object {
   ResourceDialog& operator=(ResourceDialog&&) = default;

   ResourceDialog(TYPE ty) :
-    type_(ty)
-  {}
+    type_(ty) {}

   virtual std::unique_ptr<ResourceDialog> clone() const = 0;

@@ -350,32 +386,52 @@ class LIEF_API ResourceDialog : public Object {

   /// The x-coordinate, in dialog box units, of the upper-left corner of the
   /// dialog box.
-  int16_t x() const { return x_; }
+  int16_t x() const {
+    return x_;
+  }

   /// The y-coordinate, in dialog box units, of the upper-left corner of the
   /// dialog box.
-  int16_t y() const { return y_; }
+  int16_t y() const {
+    return y_;
+  }

   /// The width, in dialog box units, of the dialog box.
-  int16_t cx() const { return cx_; }
+  int16_t cx() const {
+    return cx_;
+  }

   /// The height, in dialog box units, of the dialog box.
-  int16_t cy() const { return cy_; }
+  int16_t cy() const {
+    return cy_;
+  }

-  ResourceDialog& style(uint32_t value) {
+  ResourceDialog& style(uint32_t value) LIEF_LIFETIMEBOUND {
     style_ = value;
     return *this;
   }

-  ResourceDialog& extended_style(uint32_t value) {
+  ResourceDialog& extended_style(uint32_t value) LIEF_LIFETIMEBOUND {
     extended_style_ = value;
     return *this;
   }

-  ResourceDialog& x(int16_t value) { x_ = value; return *this; }
-  ResourceDialog& y(int16_t value) { y_ = value; return *this; }
-  ResourceDialog& cx(int16_t value) { cx_ = value; return *this; }
-  ResourceDialog& cy(int16_t value) { cy_ = value; return *this; }
+  ResourceDialog& x(int16_t value) LIEF_LIFETIMEBOUND {
+    x_ = value;
+    return *this;
+  }
+  ResourceDialog& y(int16_t value) LIEF_LIFETIMEBOUND {
+    y_ = value;
+    return *this;
+  }
+  ResourceDialog& cx(int16_t value) LIEF_LIFETIMEBOUND {
+    cx_ = value;
+    return *this;
+  }
+  ResourceDialog& cy(int16_t value) LIEF_LIFETIMEBOUND {
+    cy_ = value;
+    return *this;
+  }

   ResourceDialog& menu(std::u16string title) {
     menu_.string = std::move(title);
@@ -399,24 +455,24 @@ class LIEF_API ResourceDialog : public Object {
     return *this;
   }

-  ResourceDialog& title(std::u16string value) {
+  ResourceDialog& title(std::u16string value) LIEF_LIFETIMEBOUND {
     title_ = std::move(value);
     return *this;
   }

-  ResourceDialog& title(const std::string& title);
+  ResourceDialog& title(const std::string& title) LIEF_LIFETIMEBOUND;

-  /// Check if the dialog used to given dialog style
+  /// Check if the dialog uses the given dialog style
   bool has(DIALOG_STYLES style) const {
     return (style_ & (uint32_t)style) != 0;
   }

-  /// Check if the dialog used to given window style
+  /// Check if the dialog uses the given window style
   bool has(WINDOW_STYLES style) const {
     return (style_ & (uint32_t)style) != 0;
   }

-  /// Check if the dialog used to given extended window style
+  /// Check if the dialog uses the given extended window style
   bool has(WINDOW_EXTENDED_STYLES style) const {
     return (extended_style_ & (uint32_t)style) != 0;
   }
@@ -431,7 +487,7 @@ class LIEF_API ResourceDialog : public Object {
   std::vector<WINDOW_EXTENDED_STYLES> windows_ext_styles_list() const;

   /// title of the dialog box
-  const std::u16string& title() const {
+  const std::u16string& title() const LIEF_LIFETIMEBOUND {
     return title_;
   }

@@ -466,7 +522,8 @@ class LIEF_API ResourceDialog : public Object {
     return nullptr;
   }

-  friend LIEF_API std::ostream& operator<<(std::ostream& os, const ResourceDialog& dialog) {
+  friend LIEF_API std::ostream& operator<<(std::ostream& os,
+                                           const ResourceDialog& dialog) {
     os << dialog.to_string();
     return os;
   }
@@ -474,10 +531,13 @@ class LIEF_API ResourceDialog : public Object {
   protected:
   static ok_error_t parse_menu(ResourceDialog& dialog, BinaryStream& stream);
   static ok_error_t parse_class(ResourceDialog& dialog, BinaryStream& stream);
-  static ok_error_t parse_class(ResourceDialog::Item& dialog, BinaryStream& stream);
+  static ok_error_t parse_class(ResourceDialog::Item& dialog,
+                                BinaryStream& stream);
   static ok_error_t parse_title(ResourceDialog& dialog, BinaryStream& stream);
-  static ok_error_t parse_title(ResourceDialog::Item& dialog, BinaryStream& stream);
-  static ok_error_t parse_creation_data(ResourceDialog::Item& item, BinaryStream& stream);
+  static ok_error_t parse_title(ResourceDialog::Item& dialog,
+                                BinaryStream& stream);
+  static ok_error_t parse_creation_data(ResourceDialog::Item& item,
+                                        BinaryStream& stream);
   TYPE type_ = TYPE::UNKNOWN;

   uint32_t style_ = 0;
diff --git a/deps/LIEF/include/LIEF/PE/resources/ResourceDialogExtended.hpp b/deps/LIEF/include/LIEF/PE/resources/ResourceDialogExtended.hpp
index bd7c9e1514f..c2167232a2e 100644
--- a/deps/LIEF/include/LIEF/PE/resources/ResourceDialogExtended.hpp
+++ b/deps/LIEF/include/LIEF/PE/resources/ResourceDialogExtended.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -31,7 +31,6 @@ namespace PE {
 /// See: https://learn.microsoft.com/en-us/windows/win32/dlgbox/dlgtemplateex
 class LIEF_API ResourceDialogExtended : public ResourceDialog {
   public:
-
   /// This class represents a `DLGTEMPLATEEX` item (`DLGITEMTEMPLATEEX`).
   ///
   /// See: https://learn.microsoft.com/en-us/windows/win32/dlgbox/dlgitemtemplateex
@@ -94,7 +93,8 @@ class LIEF_API ResourceDialogExtended : public ResourceDialog {

     std::string to_string() const;

-    LIEF_API friend std::ostream& operator<<(std::ostream& os, const font_t& font) {
+    LIEF_API friend std::ostream& operator<<(std::ostream& os,
+                                             const font_t& font) {
       os << font.to_string();
       return os;
     }
@@ -105,8 +105,7 @@ class LIEF_API ResourceDialogExtended : public ResourceDialog {
   using it_const_items = const_ref_iterator<const items_t&>;

   ResourceDialogExtended() :
-    ResourceDialog(ResourceDialog::TYPE::EXTENDED)
-  {}
+    ResourceDialog(ResourceDialog::TYPE::EXTENDED) {}

   ResourceDialogExtended(const ResourceDialogExtended&) = default;
   ResourceDialogExtended& operator=(const ResourceDialogExtended&) = default;
@@ -117,7 +116,9 @@ class LIEF_API ResourceDialogExtended : public ResourceDialog {
   static std::unique_ptr<ResourceDialogExtended> create(BinaryStream& stream);

   std::unique_ptr<ResourceDialog> clone() const override {
-    return std::unique_ptr<ResourceDialogExtended>(new ResourceDialogExtended(*this));
+    return std::unique_ptr<ResourceDialogExtended>(
+        new ResourceDialogExtended(*this)
+    );
   }

   static bool classof(const ResourceDialog* dialog) {
@@ -151,11 +152,11 @@ class LIEF_API ResourceDialogExtended : public ResourceDialog {
   }

   /// Iterator over the control items of this dialog box
-  it_items items() {
+  it_items items() LIEF_LIFETIMEBOUND {
     return items_;
   }

-  it_const_items items() const {
+  it_const_items items() const LIEF_LIFETIMEBOUND {
     return items_;
   }

@@ -185,8 +186,7 @@ class LIEF_API ResourceDialogExtended : public ResourceDialog {
   }

   ResourceDialogExtended& font(uint16_t point_size, uint16_t weight, bool italic,
-                               uint8_t charset, std::u16string typeface)
-  {
+                               uint8_t charset, std::u16string typeface) {
     font_.point_size = point_size;
     font_.weight = weight;
     font_.italic = italic;
diff --git a/deps/LIEF/include/LIEF/PE/resources/ResourceDialogRegular.hpp b/deps/LIEF/include/LIEF/PE/resources/ResourceDialogRegular.hpp
index 26552687bfb..983147d44fc 100644
--- a/deps/LIEF/include/LIEF/PE/resources/ResourceDialogRegular.hpp
+++ b/deps/LIEF/include/LIEF/PE/resources/ResourceDialogRegular.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -20,7 +20,6 @@
 #include "LIEF/PE/resources/ResourceDialog.hpp"
 #include "LIEF/errors.hpp"
 #include "LIEF/iterators.hpp"
-#include "LIEF/span.hpp"

 namespace LIEF {
 class BinaryStream;
@@ -29,14 +28,16 @@ namespace PE {

 /// Implementation for a regular/legacy dialog box.
 ///
-/// See: https://learn.microsoft.com/en-us/windows/win32/api/winuser/ns-winuser-dlgtemplate
+/// See:
+/// https://learn.microsoft.com/en-us/windows/win32/api/winuser/ns-winuser-dlgtemplate
 class LIEF_API ResourceDialogRegular : public ResourceDialog {
   public:
   using ResourceDialog::ordinal_or_str_t;

   /// This class represents a `DLGTEMPLATE` item: `DLGITEMTEMPLATE`
   ///
-  /// See: https://learn.microsoft.com/en-us/windows/win32/api/winuser/ns-winuser-dlgitemtemplate
+  /// See:
+  /// https://learn.microsoft.com/en-us/windows/win32/api/winuser/ns-winuser-dlgitemtemplate
   class LIEF_API Item : public ResourceDialog::Item {
     public:
     Item() = default;
@@ -69,7 +70,8 @@ class LIEF_API ResourceDialogRegular : public ResourceDialog {

     std::string to_string() const;

-    LIEF_API friend std::ostream& operator<<(std::ostream& os, const font_t& font) {
+    LIEF_API friend std::ostream& operator<<(std::ostream& os,
+                                             const font_t& font) {
       os << font.to_string();
       return os;
     }
@@ -80,8 +82,7 @@ class LIEF_API ResourceDialogRegular : public ResourceDialog {
   using it_const_items = const_ref_iterator<const items_t&>;

   ResourceDialogRegular() :
-    ResourceDialog(ResourceDialog::TYPE::REGULAR)
-  {}
+    ResourceDialog(ResourceDialog::TYPE::REGULAR) {}

   ResourceDialogRegular(const ResourceDialogRegular&) = default;
   ResourceDialogRegular& operator=(const ResourceDialogRegular&) = default;
@@ -92,7 +93,9 @@ class LIEF_API ResourceDialogRegular : public ResourceDialog {
   static std::unique_ptr<ResourceDialogRegular> create(BinaryStream& stream);

   std::unique_ptr<ResourceDialog> clone() const override {
-    return std::unique_ptr<ResourceDialogRegular>(new ResourceDialogRegular(*this));
+    return std::unique_ptr<ResourceDialogRegular>(
+        new ResourceDialogRegular(*this)
+    );
   }

   static bool classof(const ResourceDialog* dialog) {
@@ -107,11 +110,11 @@ class LIEF_API ResourceDialogRegular : public ResourceDialog {
   }

   /// Iterator over the different control items
-  it_items items() {
+  it_items items() LIEF_LIFETIMEBOUND {
     return items_;
   }

-  it_const_items items() const {
+  it_const_items items() const LIEF_LIFETIMEBOUND {
     return items_;
   }

diff --git a/deps/LIEF/include/LIEF/PE/resources/ResourceIcon.hpp b/deps/LIEF/include/LIEF/PE/resources/ResourceIcon.hpp
index d4b4d9073db..f375e16574d 100644
--- a/deps/LIEF/include/LIEF/PE/resources/ResourceIcon.hpp
+++ b/deps/LIEF/include/LIEF/PE/resources/ResourceIcon.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -16,9 +16,9 @@
 #ifndef LIEF_PE_RESOURCE_ICON_H
 #define LIEF_PE_RESOURCE_ICON_H
 #include <ostream>
-#include <climits>
 #include <vector>

+#include "LIEF/compiler_attributes.hpp"
 #include "LIEF/visibility.h"
 #include "LIEF/errors.hpp"

@@ -38,10 +38,11 @@ class LIEF_API ResourceIcon : public Object {
   friend class ResourcesManager;

   public:
-  static result<ResourceIcon>
-    from_serialization(const uint8_t* buffer, size_t size);
+  static result<ResourceIcon> from_serialization(const uint8_t* buffer,
+                                                 size_t size);

-  static result<ResourceIcon> from_serialization(const std::vector<uint8_t>& bytes) {
+  static result<ResourceIcon>
+      from_serialization(const std::vector<uint8_t>& bytes) {
     return from_serialization(bytes.data(), bytes.size());
   }

@@ -112,7 +113,7 @@ class LIEF_API ResourceIcon : public Object {
   }

   /// Pixels of the image (as bytes)
-  span<const uint8_t> pixels() const {
+  span<const uint8_t> pixels() const LIEF_LIFETIMEBOUND {
     return pixels_;
   }

@@ -165,7 +166,8 @@ class LIEF_API ResourceIcon : public Object {

   void accept(Visitor& visitor) const override;

-  LIEF_API friend std::ostream& operator<<(std::ostream& os, const ResourceIcon& entry);
+  LIEF_API friend std::ostream& operator<<(std::ostream& os,
+                                           const ResourceIcon& entry);

   private:
   uint8_t width_ = 0;
@@ -175,7 +177,7 @@ class LIEF_API ResourceIcon : public Object {
   uint16_t planes_ = 0;
   uint16_t bit_count_ = 0;
   uint32_t id_ = uint32_t(-1);
-  uint32_t lang_ = /* LANG_NEUTRAL */0;
+  uint32_t lang_ = /* LANG_NEUTRAL */ 0;
   uint32_t sublang_ = 0 /* SUBLANG_NEUTRAL */;
   std::vector<uint8_t> pixels_;
 };
diff --git a/deps/LIEF/include/LIEF/PE/resources/ResourceStringFileInfo.hpp b/deps/LIEF/include/LIEF/PE/resources/ResourceStringFileInfo.hpp
index 0d8faad7614..3290d58e52d 100644
--- a/deps/LIEF/include/LIEF/PE/resources/ResourceStringFileInfo.hpp
+++ b/deps/LIEF/include/LIEF/PE/resources/ResourceStringFileInfo.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -95,8 +95,8 @@ class LIEF_API ResourceStringFileInfo : public Object {

   void accept(Visitor& visitor) const override;

-  LIEF_API friend
-    std::ostream& operator<<(std::ostream& os, const ResourceStringFileInfo& info);
+  LIEF_API friend std::ostream& operator<<(std::ostream& os,
+                                           const ResourceStringFileInfo& info);

   private:
   uint16_t type_ = 0;
@@ -105,8 +105,6 @@ class LIEF_API ResourceStringFileInfo : public Object {
 };


-
-
 }
 }

diff --git a/deps/LIEF/include/LIEF/PE/resources/ResourceStringTable.hpp b/deps/LIEF/include/LIEF/PE/resources/ResourceStringTable.hpp
index 1617d5af38e..de1ce613b55 100644
--- a/deps/LIEF/include/LIEF/PE/resources/ResourceStringTable.hpp
+++ b/deps/LIEF/include/LIEF/PE/resources/ResourceStringTable.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab

  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -29,8 +29,8 @@ class BinaryStream;
 namespace PE {

 /// This class represents the `StringTable` structure. This structure
-/// can be seen as a dictionary of key, values with key and values defined a
-/// utf-16 string.
+/// can be seen as a dictionary of key-value pairs with keys and values defined as
+/// UTF-16 strings.
 class LIEF_API ResourceStringTable : public Object {
   public:
   /// An entry in this table which is composed of an UTF-16 key and an UTF-16
@@ -57,9 +57,8 @@ class LIEF_API ResourceStringTable : public Object {
       return key_u8() + ": " + value_u8();
     }

-    friend LIEF_API
-      std::ostream& operator<<(std::ostream& os, const entry_t& entry)
-    {
+    friend LIEF_API std::ostream& operator<<(std::ostream& os,
+                                             const entry_t& entry) {
       os << entry.to_string();
       return os;
     }
@@ -111,11 +110,9 @@ class LIEF_API ResourceStringTable : public Object {
   }

   optional<std::u16string> get(const std::u16string& key) const {
-    auto it = std::find_if(entries_.begin(), entries_.end(),
-      [&key] (const entry_t& entry) {
-        return entry.key == key;
-      }
-    );
+    auto it =
+        std::find_if(entries_.begin(), entries_.end(),
+                     [&key](const entry_t& entry) { return entry.key == key; });
     if (it == entries_.end()) {
       return nullopt();
     }
@@ -153,8 +150,8 @@ class LIEF_API ResourceStringTable : public Object {
     return get(str);
   }

-  LIEF_API friend
-    std::ostream& operator<<(std::ostream& os, const ResourceStringTable& table);
+  LIEF_API friend std::ostream& operator<<(std::ostream& os,
+                                           const ResourceStringTable& table);

   private:
   uint16_t type_ = 0;
diff --git a/deps/LIEF/include/LIEF/PE/resources/ResourceVar.hpp b/deps/LIEF/include/LIEF/PE/resources/ResourceVar.hpp
index cce09b6fafd..d273729fbaa 100644
--- a/deps/LIEF/include/LIEF/PE/resources/ResourceVar.hpp
+++ b/deps/LIEF/include/LIEF/PE/resources/ResourceVar.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -90,8 +90,8 @@ class LIEF_API ResourceVar {
     values_.push_back(val);
   }

-  LIEF_API friend
-    std::ostream& operator<<(std::ostream& os, const ResourceVar& entry);
+  LIEF_API friend std::ostream& operator<<(std::ostream& os,
+                                           const ResourceVar& entry);

   private:
   uint16_t type_ = 0;
diff --git a/deps/LIEF/include/LIEF/PE/resources/ResourceVarFileInfo.hpp b/deps/LIEF/include/LIEF/PE/resources/ResourceVarFileInfo.hpp
index 40a64c60807..74cd1af8b2e 100644
--- a/deps/LIEF/include/LIEF/PE/resources/ResourceVarFileInfo.hpp
+++ b/deps/LIEF/include/LIEF/PE/resources/ResourceVarFileInfo.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -95,8 +95,8 @@ class LIEF_API ResourceVarFileInfo : public Object {

   void accept(Visitor& visitor) const override;

-  LIEF_API friend
-    std::ostream& operator<<(std::ostream& os, const ResourceVarFileInfo& entry);
+  LIEF_API friend std::ostream& operator<<(std::ostream& os,
+                                           const ResourceVarFileInfo& entry);

   private:
   uint16_t type_ = 0;
diff --git a/deps/LIEF/include/LIEF/PE/resources/ResourceVersion.hpp b/deps/LIEF/include/LIEF/PE/resources/ResourceVersion.hpp
index 19663fa4d01..d60fe863d44 100644
--- a/deps/LIEF/include/LIEF/PE/resources/ResourceVersion.hpp
+++ b/deps/LIEF/include/LIEF/PE/resources/ResourceVersion.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -33,7 +33,8 @@ class ResourceData;

 /// Representation of the data associated with the `RT_VERSION` entry
 ///
-/// See: `VS_VERSIONINFO` at https://learn.microsoft.com/en-us/windows/win32/menurc/vs-versioninfo
+/// See: `VS_VERSIONINFO` at
+/// https://learn.microsoft.com/en-us/windows/win32/menurc/vs-versioninfo
 class LIEF_API ResourceVersion : public Object {
   public:
   static result<ResourceVersion> parse(const ResourceData& node);
@@ -44,7 +45,8 @@ class LIEF_API ResourceVersion : public Object {
   /// in `verrsrc.h`.
   struct LIEF_API fixed_file_info_t {
     enum class VERSION_OS : uint32_t {
-      /// The operating system for which the file was designed is unknown to the system.
+      /// The operating system for which the file was designed is unknown to the
+      /// system.
       UNKNOWN = 0x00000000,

       /// The file was designed for MS-DOS.
@@ -92,7 +94,7 @@ class LIEF_API ResourceVersion : public Object {
       NT_WINDOWS32 = NT | WINDOWS32,
     };

-    enum class FILE_TYPE : uint32_t  {
+    enum class FILE_TYPE : uint32_t {
       /// The file type is unknown to the system.
       UNKNOWN = 0x00000000,

@@ -142,7 +144,7 @@ class LIEF_API ResourceVersion : public Object {
       /// The file contains a sound driver.
       DRV_SOUND = 0x00000009 | DRV_K,
       /// The file contains a communications driver.
-      DRV_COMM = 0x0000000A  | DRV_K,
+      DRV_COMM = 0x0000000A | DRV_K,

       DRV_INPUTMETHOD = 0x0000000B | DRV_K,

@@ -159,7 +161,7 @@ class LIEF_API ResourceVersion : public Object {
       FONT_TRUETYPE = 0x00000003 | FONT_K,
     };

-    enum class FILE_FLAGS : uint32_t  {
+    enum class FILE_FLAGS : uint32_t {
       /// The file contains debugging information or is compiled with debugging
       /// features enabled.
       DEBUG = 0x00000001,
@@ -273,9 +275,8 @@ class LIEF_API ResourceVersion : public Object {

     std::string to_string() const;

-    LIEF_API friend
-      std::ostream& operator<<(std::ostream& os, const fixed_file_info_t& info)
-    {
+    LIEF_API friend std::ostream& operator<<(std::ostream& os,
+                                             const fixed_file_info_t& info) {
       os << info.to_string();
       return os;
     }
@@ -358,17 +359,20 @@ class LIEF_API ResourceVersion : public Object {

   void accept(Visitor& visitor) const override;

-  LIEF_API friend
-    std::ostream& operator<<(std::ostream& os, const ResourceVersion& version);
+  LIEF_API friend std::ostream& operator<<(std::ostream& os,
+                                           const ResourceVersion& version);

   private:
   ResourceVersion() = default;

   static ok_error_t parse_children(ResourceVersion& version, BinaryStream& stream);
   static ok_error_t parse_child(ResourceVersion& version, BinaryStream& stream);
-  static ok_error_t parse_fixed_file_info(ResourceVersion& version, BinaryStream& stream);
-  static ok_error_t parse_str_file_info(ResourceVersion& version, BinaryStream& stream);
-  static ok_error_t parse_var_file_info(ResourceVersion& version, BinaryStream& stream);
+  static ok_error_t parse_fixed_file_info(ResourceVersion& version,
+                                          BinaryStream& stream);
+  static ok_error_t parse_str_file_info(ResourceVersion& version,
+                                        BinaryStream& stream);
+  static ok_error_t parse_var_file_info(ResourceVersion& version,
+                                        BinaryStream& stream);

   uint16_t type_ = 0;
   std::u16string key_;
@@ -381,7 +385,8 @@ class LIEF_API ResourceVersion : public Object {
 LIEF_API const char* to_string(ResourceVersion::fixed_file_info_t::FILE_FLAGS e);
 LIEF_API const char* to_string(ResourceVersion::fixed_file_info_t::VERSION_OS e);
 LIEF_API const char* to_string(ResourceVersion::fixed_file_info_t::FILE_TYPE e);
-LIEF_API const char* to_string(ResourceVersion::fixed_file_info_t::FILE_TYPE_DETAILS e);
+LIEF_API const char*
+    to_string(ResourceVersion::fixed_file_info_t::FILE_TYPE_DETAILS e);

 }
 }
diff --git a/deps/LIEF/include/LIEF/PE/resources/langs.hpp b/deps/LIEF/include/LIEF/PE/resources/langs.hpp
index 5f2bb087280..4bc3266e6d6 100644
--- a/deps/LIEF/include/LIEF/PE/resources/langs.hpp
+++ b/deps/LIEF/include/LIEF/PE/resources/langs.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -19,110 +19,110 @@
 namespace LIEF {
 namespace PE {

-enum class RESOURCE_LANGS  {
-  NEUTRAL        = 0x00,
-  INVARIANT      = 0x7f,
-  AFRIKAANS      = 0x36,
-  ALBANIAN       = 0x1c,
-  ARABIC         = 0x01,
-  ARMENIAN       = 0x2b,
-  ASSAMESE       = 0x4d,
-  AZERI          = 0x2c,
-  BASQUE         = 0x2d,
-  BELARUSIAN     = 0x23,
-  BANGLA         = 0x45,
-  BULGARIAN      = 0x02,
-  CATALAN        = 0x03,
-  CHINESE        = 0x04,
-  CROATIAN       = 0x1a,
-  BOSNIAN        = 0x1a,
-  CZECH          = 0x05,
-  DANISH         = 0x06,
-  DIVEHI         = 0x65,
-  DUTCH          = 0x13,
-  ENGLISH        = 0x09,
-  ESTONIAN       = 0x25,
-  FAEROESE       = 0x38,
-  FARSI          = 0x29,
-  FINNISH        = 0x0b,
-  FRENCH         = 0x0c,
-  GALICIAN       = 0x56,
-  GEORGIAN       = 0x37,
-  GERMAN         = 0x07,
-  GREEK          = 0x08,
-  GUJARATI       = 0x47,
-  HEBREW         = 0x0d,
-  HINDI          = 0x39,
-  HUNGARIAN      = 0x0e,
-  ICELANDIC      = 0x0f,
-  INDONESIAN     = 0x21,
-  ITALIAN        = 0x10,
-  JAPANESE       = 0x11,
-  KANNADA        = 0x4b,
-  KASHMIRI       = 0x60,
-  KAZAK          = 0x3f,
-  KONKANI        = 0x57,
-  KOREAN         = 0x12,
-  KYRGYZ         = 0x40,
-  LATVIAN        = 0x26,
-  LITHUANIAN     = 0x27,
-  MACEDONIAN     = 0x2f,
-  MALAY          = 0x3e,
-  MALAYALAM      = 0x4c,
-  MANIPURI       = 0x58,
-  MARATHI        = 0x4e,
-  MONGOLIAN      = 0x50,
-  NEPALI         = 0x61,
-  NORWEGIAN      = 0x14,
-  ORIYA          = 0x48,
-  POLISH         = 0x15,
-  PORTUGUESE     = 0x16,
-  PUNJABI        = 0x46,
-  ROMANIAN       = 0x18,
-  RUSSIAN        = 0x19,
-  SANSKRIT       = 0x4f,
-  SERBIAN        = 0x1a,
-  SINDHI         = 0x59,
-  SLOVAK         = 0x1b,
-  SLOVENIAN      = 0x24,
-  SPANISH        = 0x0a,
-  SWAHILI        = 0x41,
-  SWEDISH        = 0x1d,
-  SYRIAC         = 0x5a,
-  TAMIL          = 0x49,
-  TATAR          = 0x44,
-  TELUGU         = 0x4a,
-  THAI           = 0x1e,
-  TURKISH        = 0x1f,
-  UKRAINIAN      = 0x22,
-  URDU           = 0x20,
-  UZBEK          = 0x43,
-  VIETNAMESE     = 0x2a,
-  GAELIC         = 0x3c,
-  MALTESE        = 0x3a,
-  MAORI          = 0x28,
+enum class RESOURCE_LANGS {
+  NEUTRAL = 0x00,
+  INVARIANT = 0x7f,
+  AFRIKAANS = 0x36,
+  ALBANIAN = 0x1c,
+  ARABIC = 0x01,
+  ARMENIAN = 0x2b,
+  ASSAMESE = 0x4d,
+  AZERI = 0x2c,
+  BASQUE = 0x2d,
+  BELARUSIAN = 0x23,
+  BANGLA = 0x45,
+  BULGARIAN = 0x02,
+  CATALAN = 0x03,
+  CHINESE = 0x04,
+  CROATIAN = 0x1a,
+  BOSNIAN = 0x1a,
+  CZECH = 0x05,
+  DANISH = 0x06,
+  DIVEHI = 0x65,
+  DUTCH = 0x13,
+  ENGLISH = 0x09,
+  ESTONIAN = 0x25,
+  FAEROESE = 0x38,
+  FARSI = 0x29,
+  FINNISH = 0x0b,
+  FRENCH = 0x0c,
+  GALICIAN = 0x56,
+  GEORGIAN = 0x37,
+  GERMAN = 0x07,
+  GREEK = 0x08,
+  GUJARATI = 0x47,
+  HEBREW = 0x0d,
+  HINDI = 0x39,
+  HUNGARIAN = 0x0e,
+  ICELANDIC = 0x0f,
+  INDONESIAN = 0x21,
+  ITALIAN = 0x10,
+  JAPANESE = 0x11,
+  KANNADA = 0x4b,
+  KASHMIRI = 0x60,
+  KAZAK = 0x3f,
+  KONKANI = 0x57,
+  KOREAN = 0x12,
+  KYRGYZ = 0x40,
+  LATVIAN = 0x26,
+  LITHUANIAN = 0x27,
+  MACEDONIAN = 0x2f,
+  MALAY = 0x3e,
+  MALAYALAM = 0x4c,
+  MANIPURI = 0x58,
+  MARATHI = 0x4e,
+  MONGOLIAN = 0x50,
+  NEPALI = 0x61,
+  NORWEGIAN = 0x14,
+  ORIYA = 0x48,
+  POLISH = 0x15,
+  PORTUGUESE = 0x16,
+  PUNJABI = 0x46,
+  ROMANIAN = 0x18,
+  RUSSIAN = 0x19,
+  SANSKRIT = 0x4f,
+  SERBIAN = 0x1a,
+  SINDHI = 0x59,
+  SLOVAK = 0x1b,
+  SLOVENIAN = 0x24,
+  SPANISH = 0x0a,
+  SWAHILI = 0x41,
+  SWEDISH = 0x1d,
+  SYRIAC = 0x5a,
+  TAMIL = 0x49,
+  TATAR = 0x44,
+  TELUGU = 0x4a,
+  THAI = 0x1e,
+  TURKISH = 0x1f,
+  UKRAINIAN = 0x22,
+  URDU = 0x20,
+  UZBEK = 0x43,
+  VIETNAMESE = 0x2a,
+  GAELIC = 0x3c,
+  MALTESE = 0x3a,
+  MAORI = 0x28,
   RHAETO_ROMANCE = 0x17,
-  SAMI           = 0x3b,
-  SORBIAN        = 0x2e,
-  SUTU           = 0x30,
-  TSONGA         = 0x31,
-  TSWANA         = 0x32,
-  VENDA          = 0x33,
-  XHOSA          = 0x34,
-  ZULU           = 0x35,
-  ESPERANTO      = 0x8f,
-  WALON          = 0x90,
-  CORNISH        = 0x91,
-  WELSH          = 0x92,
-  BRETON         = 0x93,
-  INUKTITUT      = 0x5d,
-  IRISH          = 0x3C,
-  LOWER_SORBIAN  = 0x2E,
-  PULAR          = 0x67,
-  QUECHUA        = 0x6B,
-  TAMAZIGHT      = 0x5F,
-  TIGRINYA       = 0x73,
-  VALENCIAN      = 0x03,
+  SAMI = 0x3b,
+  SORBIAN = 0x2e,
+  SUTU = 0x30,
+  TSONGA = 0x31,
+  TSWANA = 0x32,
+  VENDA = 0x33,
+  XHOSA = 0x34,
+  ZULU = 0x35,
+  ESPERANTO = 0x8f,
+  WALON = 0x90,
+  CORNISH = 0x91,
+  WELSH = 0x92,
+  BRETON = 0x93,
+  INUKTITUT = 0x5d,
+  IRISH = 0x3C,
+  LOWER_SORBIAN = 0x2E,
+  PULAR = 0x67,
+  QUECHUA = 0x6B,
+  TAMAZIGHT = 0x5F,
+  TIGRINYA = 0x73,
+  VALENCIAN = 0x03,
 };

 static constexpr uint32_t lang_from_id(uint32_t id) {
diff --git a/deps/LIEF/include/LIEF/PE/signature/Attribute.hpp b/deps/LIEF/include/LIEF/PE/signature/Attribute.hpp
index b1fa5a45632..e993b7c9ae4 100644
--- a/deps/LIEF/include/LIEF/PE/signature/Attribute.hpp
+++ b/deps/LIEF/include/LIEF/PE/signature/Attribute.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -70,8 +70,8 @@ class LIEF_API Attribute : public Object {

   ~Attribute() override = default;

-  LIEF_API friend
-  std::ostream& operator<<(std::ostream& os, const Attribute& attribute) {
+  LIEF_API friend std::ostream& operator<<(std::ostream& os,
+                                           const Attribute& attribute) {
     os << attribute.print();
     return os;
   }
@@ -93,8 +93,7 @@ class LIEF_API Attribute : public Object {

   protected:
   Attribute(TYPE type) :
-    type_(type)
-  {}
+    type_(type) {}
   TYPE type_ = TYPE::UNKNOWN;
 };

diff --git a/deps/LIEF/include/LIEF/PE/signature/ContentInfo.hpp b/deps/LIEF/include/LIEF/PE/signature/ContentInfo.hpp
index b3c07d605b0..23ad4f62753 100644
--- a/deps/LIEF/include/LIEF/PE/signature/ContentInfo.hpp
+++ b/deps/LIEF/include/LIEF/PE/signature/ContentInfo.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -33,7 +33,8 @@ class Parser;
 class SignatureParser;

 /**
- * ContentInfo as described in the RFC2315 (https://tools.ietf.org/html/rfc2315#section-7)
+ * ContentInfo as described in the RFC2315
+ * (https://tools.ietf.org/html/rfc2315#section-7)
  *
  * ```text
  * ContentInfo ::= SEQUENCE {
@@ -44,8 +45,9 @@ class SignatureParser;
  * ContentType ::= OBJECT IDENTIFIER
  * ```
  *
- * In the case of PE signature, ContentType **must** be set to SPC_INDIRECT_DATA_OBJID
- * OID: ``1.3.6.1.4.1.311.2.1.4`` and content is defined by the structure: ``SpcIndirectDataContent``
+ * In the case of PE signature, ContentType **must** be set to
+ * SPC_INDIRECT_DATA_OBJID OID: ``1.3.6.1.4.1.311.2.1.4`` and content is defined by
+ * the structure: ``SpcIndirectDataContent``
  *
  * ```text
  * SpcIndirectDataContent ::= SEQUENCE {
@@ -60,7 +62,8 @@ class SignatureParser;
  * ```
  *
  * For PE signature, ``SpcAttributeTypeAndOptionalValue.type``
- * is set to ``SPC_PE_IMAGE_DATAOBJ`` (OID: ``1.3.6.1.4.1.311.2.1.15``) and the value is defined by
+ * is set to ``SPC_PE_IMAGE_DATAOBJ`` (OID: ``1.3.6.1.4.1.311.2.1.15``) and the
+ * value is defined by
  * ``SpcPeImageData``
  *
  * ```text
@@ -80,11 +83,10 @@ class LIEF_API ContentInfo : public Object {
   friend class SignatureParser;

   public:
-  class Content : public Object {
+  class LIEF_API Content : public Object {
     public:
     Content(oid_t oid) :
-      type_(std::move(oid))
-    {}
+      type_(std::move(oid)) {}

     const oid_t& content_type() const {
       return type_;
@@ -93,7 +95,8 @@ class LIEF_API ContentInfo : public Object {
     virtual std::unique_ptr<Content> clone() const = 0;
     virtual void print(std::ostream& os) const = 0;

-    LIEF_API friend std::ostream& operator<<(std::ostream& os, const Content& content) {
+    LIEF_API friend std::ostream& operator<<(std::ostream& os,
+                                             const Content& content) {
       content.print(os);
       return os;
     }
@@ -114,6 +117,7 @@ class LIEF_API ContentInfo : public Object {
     }

     ~Content() override = default;
+
     private:
     oid_t type_;
   };
@@ -130,16 +134,16 @@ class LIEF_API ContentInfo : public Object {
     return value_->content_type();
   }

-  Content& value() {
+  Content& value() LIEF_LIFETIMEBOUND {
     return *value_;
   }

-  const Content& value() const {
+  const Content& value() const LIEF_LIFETIMEBOUND {
     return *value_;
   }

-  /// Return the digest (authentihash) if the underlying content type is `SPC_INDIRECT_DATA_OBJID`
-  /// Otherwise, return an empty vector
+  /// Return the digest (authentihash) if the underlying content type is
+  /// `SPC_INDIRECT_DATA_OBJID` Otherwise, return an empty vector
   std::vector<uint8_t> digest() const;

   /// Return the digest used to hash the file
@@ -149,7 +153,8 @@ class LIEF_API ContentInfo : public Object {

   ~ContentInfo() override = default;

-  LIEF_API friend std::ostream& operator<<(std::ostream& os, const ContentInfo& content_info);
+  LIEF_API friend std::ostream& operator<<(std::ostream& os,
+                                           const ContentInfo& content_info);

   private:
   std::unique_ptr<Content> value_;
diff --git a/deps/LIEF/include/LIEF/PE/signature/GenericContent.hpp b/deps/LIEF/include/LIEF/PE/signature/GenericContent.hpp
index b7ac2f67498..4cfc7369bb3 100644
--- a/deps/LIEF/include/LIEF/PE/signature/GenericContent.hpp
+++ b/deps/LIEF/include/LIEF/PE/signature/GenericContent.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -16,6 +16,7 @@
 #ifndef LIEF_PE_GENERIC_CONTENT_H
 #define LIEF_PE_GENERIC_CONTENT_H

+#include "LIEF/compiler_attributes.hpp"
 #include "LIEF/visibility.h"
 #include "LIEF/span.hpp"

@@ -40,11 +41,11 @@ class LIEF_API GenericContent : public ContentInfo::Content {
     return oid_;
   }

-  span<const uint8_t> raw() const {
+  span<const uint8_t> raw() const LIEF_LIFETIMEBOUND {
     return raw_;
   }

-  span<uint8_t> raw() {
+  span<uint8_t> raw() LIEF_LIFETIMEBOUND {
     return raw_;
   }

@@ -53,7 +54,8 @@ class LIEF_API GenericContent : public ContentInfo::Content {
   void print(std::ostream& os) const override;
   void accept(Visitor& visitor) const override;

-  LIEF_API friend std::ostream& operator<<(std::ostream& os, const GenericContent& content) {
+  LIEF_API friend std::ostream& operator<<(std::ostream& os,
+                                           const GenericContent& content) {
     content.print(os);
     return os;
   }
diff --git a/deps/LIEF/include/LIEF/PE/signature/OIDToString.hpp b/deps/LIEF/include/LIEF/PE/signature/OIDToString.hpp
index c3c0a32b463..57bb5f1be2e 100644
--- a/deps/LIEF/include/LIEF/PE/signature/OIDToString.hpp
+++ b/deps/LIEF/include/LIEF/PE/signature/OIDToString.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/deps/LIEF/include/LIEF/PE/signature/PKCS9TSTInfo.hpp b/deps/LIEF/include/LIEF/PE/signature/PKCS9TSTInfo.hpp
index 75dcd0dccc9..5db5ba884f8 100644
--- a/deps/LIEF/include/LIEF/PE/signature/PKCS9TSTInfo.hpp
+++ b/deps/LIEF/include/LIEF/PE/signature/PKCS9TSTInfo.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -25,7 +25,8 @@
 namespace LIEF {
 namespace PE {

-/// Interface over the structure described by the OID `1.2.840.113549.1.9.16.1.4` (PKCS #9)
+/// Interface over the structure described by the OID `1.2.840.113549.1.9.16.1.4`
+/// (PKCS #9)
 ///
 /// The internal structure is described in the
 /// [RFC #3161](https://tools.ietf.org/html/rfc3161)
@@ -62,8 +63,7 @@ class LIEF_API PKCS9TSTInfo : public ContentInfo::Content {
   public:
   static constexpr auto PKCS9_TSTINFO_OBJID = "1.2.840.113549.1.9.16.1.4";
   PKCS9TSTInfo() :
-    ContentInfo::Content(PKCS9_TSTINFO_OBJID)
-  {}
+    ContentInfo::Content(PKCS9_TSTINFO_OBJID) {}
   PKCS9TSTInfo(const PKCS9TSTInfo&) = default;
   PKCS9TSTInfo& operator=(const PKCS9TSTInfo&) = default;

diff --git a/deps/LIEF/include/LIEF/PE/signature/RsaInfo.hpp b/deps/LIEF/include/LIEF/PE/signature/RsaInfo.hpp
index 86a61a2f889..8572ab2785f 100644
--- a/deps/LIEF/include/LIEF/PE/signature/RsaInfo.hpp
+++ b/deps/LIEF/include/LIEF/PE/signature/RsaInfo.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -72,7 +72,7 @@ class LIEF_API RsaInfo {
   private:
   RsaInfo();
   RsaInfo(const rsa_ctx_handle ctx);
-  rsa_ctx_handle ctx_;
+  rsa_ctx_handle ctx_ = nullptr;
 };

 }
diff --git a/deps/LIEF/include/LIEF/PE/signature/Signature.hpp b/deps/LIEF/include/LIEF/PE/signature/Signature.hpp
index 8be586a0a9b..008ea39095a 100644
--- a/deps/LIEF/include/LIEF/PE/signature/Signature.hpp
+++ b/deps/LIEF/include/LIEF/PE/signature/Signature.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -17,6 +17,7 @@
 #define LIEF_PE_SIGNATURE_H

 #include "LIEF/Object.hpp"
+#include "LIEF/compiler_attributes.hpp"
 #include "LIEF/visibility.h"
 #include "LIEF/span.hpp"

@@ -44,14 +45,15 @@ class LIEF_API Signature : public Object {

   public:
   /// Hash the input given the algorithm
-  static std::vector<uint8_t> hash(const std::vector<uint8_t>& input, ALGORITHMS algo) {
+  static std::vector<uint8_t> hash(const std::vector<uint8_t>& input,
+                                   ALGORITHMS algo) {
     return hash(input.data(), input.size(), algo);
   }

-  static std::vector<uint8_t> hash(const uint8_t* buffer, size_t size, ALGORITHMS algo);
+  static std::vector<uint8_t> hash(const uint8_t* buffer, size_t size,
+                                   ALGORITHMS algo);

   public:
-
   /// Iterator which outputs const x509& certificates
   using it_const_crt = const_ref_iterator<const std::vector<x509>&>;

@@ -66,7 +68,8 @@ class LIEF_API Signature : public Object {

   /// Flags returned by the verification functions
   enum class VERIFICATION_FLAGS : uint32_t {
-    OK = 0,
+    // clang-format off
+    OK                            = 0,
     INVALID_SIGNER                = 1 << 0,
     UNSUPPORTED_ALGORITHM         = 1 << 1,
     INCONSISTENT_DIGEST_ALGORITHM = 1 << 2,
@@ -79,20 +82,33 @@ class LIEF_API Signature : public Object {
     NO_SIGNATURE                  = 1 << 9,
     CERT_EXPIRED                  = 1 << 10,
     CERT_FUTURE                   = 1 << 11,
+    // clang-format on
   };

-  /// Convert a verification flag into a humman representation.
-  /// e.g VERIFICATION_FLAGS.BAD_DIGEST | VERIFICATION_FLAGS.BAD_SIGNATURE | VERIFICATION_FLAGS.CERT_EXPIRED
+  /// Convert a verification flag into a human-readable representation.
+  /// e.g VERIFICATION_FLAGS.BAD_DIGEST | VERIFICATION_FLAGS.BAD_SIGNATURE |
+  /// VERIFICATION_FLAGS.CERT_EXPIRED
   static std::string flag_to_string(VERIFICATION_FLAGS flag);

   /// Flags to tweak the verification process of the signature
   ///
   /// See Signature::check and LIEF::PE::Binary::verify_signature
   enum class VERIFICATION_CHECKS : uint32_t {
-    DEFAULT          = 1 << 0, /**< Default behavior that tries to follow the Microsoft verification process as close as possible */
-    HASH_ONLY        = 1 << 1, /**< Only check that Binary::authentihash matches ContentInfo::digest regardless of the signature's validity */
-    LIFETIME_SIGNING = 1 << 2, /**< Same semantic as [WTD_LIFETIME_SIGNING_FLAG](https://docs.microsoft.com/en-us/windows/win32/api/wintrust/ns-wintrust-wintrust_data#WTD_LIFETIME_SIGNING_FLAG) */
-    SKIP_CERT_TIME   = 1 << 3, /**< Skip the verification of the certificates time validities so that even though a certificate expired, it returns VERIFICATION_FLAGS::OK */
+    /// Default behavior that tries to follow the Microsoft verification process
+    /// as close as possible
+    DEFAULT = 1 << 0,
+
+    /// Only check that Binary::authentihash matches ContentInfo::digest
+    /// regardless of the signature's validity
+    HASH_ONLY = 1 << 1,
+
+    /// Same semantic as
+    /// [WTD_LIFETIME_SIGNING_FLAG](https://docs.microsoft.com/en-us/windows/win32/api/wintrust/ns-wintrust-wintrust_data#WTD_LIFETIME_SIGNING_FLAG)
+    LIFETIME_SIGNING = 1 << 2,
+
+    /// Skip the verification of the certificates time validities so that even
+    /// though a certificate expired, it returns VERIFICATION_FLAGS::OK
+    SKIP_CERT_TIME = 1 << 3,
   };

   Signature();
@@ -115,30 +131,31 @@ class LIEF_API Signature : public Object {
   }

   /// Return the ContentInfo
-  const ContentInfo& content_info() const {
+  const ContentInfo& content_info() const LIEF_LIFETIMEBOUND {
     return content_info_;
   }

   /// Return an iterator over x509 certificates
-  it_const_crt certificates() const {
+  it_const_crt certificates() const LIEF_LIFETIMEBOUND {
     return certificates_;
   }

-  it_crt certificates()  {
+  it_crt certificates() LIEF_LIFETIMEBOUND {
     return certificates_;
   }

-  /// Return an iterator over the signers (SignerInfo) defined in the PKCS #7 signature
-  it_const_signers_t signers() const {
+  /// Return an iterator over the signers (SignerInfo) defined in the PKCS #7
+  /// signature
+  it_const_signers_t signers() const LIEF_LIFETIMEBOUND {
     return signers_;
   }

-  it_signers_t signers() {
+  it_signers_t signers() LIEF_LIFETIMEBOUND {
     return signers_;
   }

   /// Return the raw original PKCS7 signature
-  span<const uint8_t> raw_der() const {
+  span<const uint8_t> raw_der() const LIEF_LIFETIMEBOUND {
     return original_raw_signature_;
   }

@@ -149,15 +166,18 @@ class LIEF_API Signature : public Object {
   const x509* find_crt_subject(const std::string& subject) const;

   /// Find x509 certificate according to its subject **AND** serial number
-  const x509* find_crt_subject(const std::string& subject, const std::vector<uint8_t>& serialno) const;
+  const x509* find_crt_subject(const std::string& subject,
+                               const std::vector<uint8_t>& serialno) const;

   /// Find x509 certificate according to its issuer
   const x509* find_crt_issuer(const std::string& issuer) const;

   /// Find x509 certificate according to its issuer **AND** serial number
-  const x509* find_crt_issuer(const std::string& issuer, const std::vector<uint8_t>& serialno) const;
+  const x509* find_crt_issuer(const std::string& issuer,
+                              const std::vector<uint8_t>& serialno) const;

-  /// Check if this signature is valid according to the Authenticode/PKCS #7 verification scheme
+  /// Check if this signature is valid according to the Authenticode/PKCS #7
+  /// verification scheme
   ///
   /// By default, it performs the following verifications:
   ///
@@ -165,35 +185,42 @@ class LIEF_API Signature : public Object {
   /// 2. Signature::digest_algorithm must match:
   ///    * ContentInfo::digest_algorithm
   ///    * SignerInfo::digest_algorithm
-  /// 3. The x509 certificate specified by SignerInfo::serial_number **and** SignerInfo::issuer
+  /// 3. The x509 certificate specified by SignerInfo::serial_number **and**
+  /// SignerInfo::issuer
   ///    must exist within Signature::certificates
-  /// 4. Given the x509 certificate, compare SignerInfo::encrypted_digest against either:
+  /// 4. Given the x509 certificate, compare SignerInfo::encrypted_digest against
+  /// either:
   ///    * hash of authenticated attributes if present
   ///    * hash of ContentInfo
-  /// 5. If authenticated attributes are present, check that a PKCS9_MESSAGE_DIGEST attribute exists
+  /// 5. If authenticated attributes are present, check that a PKCS9_MESSAGE_DIGEST
+  /// attribute exists
   ///    and that its value matches hash of ContentInfo
   /// 6. Check the validity of the PKCS #9 counter signature if present
-  /// 7. If the signature doesn't embed a signing-time in the counter signature, check the certificate
-  ///    validity. (See LIEF::PE::Signature::VERIFICATION_CHECKS::LIFETIME_SIGNING and LIEF::PE::Signature::VERIFICATION_CHECKS::SKIP_CERT_TIME)
+  /// 7. If the signature doesn't embed a signing-time in the counter signature,
+  /// check the certificate
+  ///    validity. (See LIEF::PE::Signature::VERIFICATION_CHECKS::LIFETIME_SIGNING
+  ///    and LIEF::PE::Signature::VERIFICATION_CHECKS::SKIP_CERT_TIME)
   ///
   /// See: LIEF::PE::Signature::VERIFICATION_CHECKS to tweak the behavior
-  VERIFICATION_FLAGS check(VERIFICATION_CHECKS checks = VERIFICATION_CHECKS::DEFAULT) const;
+  VERIFICATION_FLAGS
+  check(VERIFICATION_CHECKS checks = VERIFICATION_CHECKS::DEFAULT) const;

   void accept(Visitor& visitor) const override;

   ~Signature() override;

-  LIEF_API friend std::ostream& operator<<(std::ostream& os, const Signature& signature);
+  LIEF_API friend std::ostream& operator<<(std::ostream& os,
+                                           const Signature& signature);

   private:
-  uint32_t                version_ = 0;
-  ALGORITHMS              digest_algorithm_ = ALGORITHMS::UNKNOWN;
-  ContentInfo             content_info_;
-  std::vector<x509>       certificates_;
+  uint32_t version_ = 0;
+  ALGORITHMS digest_algorithm_ = ALGORITHMS::UNKNOWN;
+  ContentInfo content_info_;
+  std::vector<x509> certificates_;
   std::vector<SignerInfo> signers_;

-  uint64_t                content_info_start_ = 0;
-  uint64_t                content_info_end_ = 0;
+  uint64_t content_info_start_ = 0;
+  uint64_t content_info_end_ = 0;

   std::vector<uint8_t> original_raw_signature_;
 };
@@ -207,4 +234,3 @@ ENABLE_BITMASK_OPERATORS(LIEF::PE::Signature::VERIFICATION_CHECKS);


 #endif
-
diff --git a/deps/LIEF/include/LIEF/PE/signature/SignatureParser.hpp b/deps/LIEF/include/LIEF/PE/signature/SignatureParser.hpp
index 1f6502f912d..dab54c89a5b 100644
--- a/deps/LIEF/include/LIEF/PE/signature/SignatureParser.hpp
+++ b/deps/LIEF/include/LIEF/PE/signature/SignatureParser.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -22,7 +22,6 @@
 #include "LIEF/errors.hpp"

 #include "LIEF/PE/signature/Signature.hpp"
-#include "LIEF/PE/signature/OIDToString.hpp"

 namespace LIEF {
 class BinaryStream;
@@ -57,7 +56,8 @@ class LIEF_API SignatureParser {
   using time_t = std::array<int32_t, 6>;

   /// Parse a PKCS #7 signature given a raw blob
-  static result<Signature> parse(std::vector<uint8_t> data, bool skip_header = false);
+  static result<Signature> parse(std::vector<uint8_t> data,
+                                 bool skip_header = false);

   /// Parse a PKCS #7 signature given a BinaryStream
   static result<Signature> parse(BinaryStream& stream, bool skip_header = false);
@@ -66,37 +66,46 @@ class LIEF_API SignatureParser {
   static result<Signature> parse(const std::string& path);
   SignatureParser(const SignatureParser&) = delete;
   SignatureParser& operator=(const SignatureParser&) = delete;
-  private:

+  private:
   ~SignatureParser() = default;
   SignatureParser() = default;

   static result<Signature> parse_signature(BinaryStream& stream);

-  static result<ContentInfo> parse_content_info(BinaryStream& stream, range_t& range);
+  static result<ContentInfo> parse_content_info(BinaryStream& stream,
+                                                range_t& range);
   static result<x509_certificates_t> parse_certificates(BinaryStream& stream);
   static result<signer_infos_t> parse_signer_infos(BinaryStream& stream);
   static result<attributes_t> parse_attributes(BinaryStream& stream);
-  static result<std::unique_ptr<Attribute>> parse_content_type(BinaryStream& stream);
+  static result<std::unique_ptr<Attribute>>
+      parse_content_type(BinaryStream& stream);

   static result<signer_infos_t> parse_pkcs9_counter_sign(BinaryStream& stream);
-  static result<std::vector<uint8_t>> parse_pkcs9_message_digest(BinaryStream& stream);
+  static result<std::vector<uint8_t>>
+      parse_pkcs9_message_digest(BinaryStream& stream);
   static result<int32_t> parse_pkcs9_at_sequence_number(BinaryStream& stream);
   static result<time_t> parse_pkcs9_signing_time(BinaryStream& stream);
-  static result<std::unique_ptr<PKCS9TSTInfo>> parse_pkcs9_tstinfo(BinaryStream& stream);
+  static result<std::unique_ptr<PKCS9TSTInfo>>
+      parse_pkcs9_tstinfo(BinaryStream& stream);

-  static result<std::unique_ptr<Attribute>> parse_ms_counter_sign(BinaryStream& stream);
+  static result<std::unique_ptr<Attribute>>
+      parse_ms_counter_sign(BinaryStream& stream);
   static result<Signature> parse_ms_spc_nested_signature(BinaryStream& stream);
   static result<oid_t> parse_ms_spc_statement_type(BinaryStream& stream);
   static result<SpcSpOpusInfo> parse_spc_sp_opus_info(BinaryStream& stream);
   static result<std::string> parse_spc_string(BinaryStream& stream);
   static result<std::string> parse_spc_link(BinaryStream& stream);
-  static result<std::unique_ptr<Attribute>> parse_spc_relaxed_pe_marker_check(BinaryStream& stream);
+  static result<std::unique_ptr<Attribute>>
+      parse_spc_relaxed_pe_marker_check(BinaryStream& stream);
   static result<SpcPeImageData> parse_spc_pe_image_data(BinaryStream& stream);
-  static result<std::unique_ptr<SpcIndirectData>> parse_spc_indirect_data(BinaryStream& stream, range_t& range);
-  static result<std::unique_ptr<Attribute>> parse_ms_platform_manifest_binary_id(BinaryStream& stream);
+  static result<std::unique_ptr<SpcIndirectData>>
+      parse_spc_indirect_data(BinaryStream& stream, range_t& range);
+  static result<std::unique_ptr<Attribute>>
+      parse_ms_platform_manifest_binary_id(BinaryStream& stream);

-  static result<std::unique_ptr<Attribute>> parse_signing_certificate_v2(BinaryStream& stream);
+  static result<std::unique_ptr<Attribute>>
+      parse_signing_certificate_v2(BinaryStream& stream);
 };

 }
diff --git a/deps/LIEF/include/LIEF/PE/signature/SignerInfo.hpp b/deps/LIEF/include/LIEF/PE/signature/SignerInfo.hpp
index c883b77e800..618d248b1c1 100644
--- a/deps/LIEF/include/LIEF/PE/signature/SignerInfo.hpp
+++ b/deps/LIEF/include/LIEF/PE/signature/SignerInfo.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -18,10 +18,10 @@
 #include <memory>

 #include "LIEF/Object.hpp"
+#include "LIEF/compiler_attributes.hpp"
 #include "LIEF/visibility.h"
 #include "LIEF/span.hpp"

-#include "LIEF/PE/signature/types.hpp"
 #include "LIEF/iterators.hpp"
 #include "LIEF/PE/enums.hpp"
 #include "LIEF/PE/signature/Attribute.hpp"
@@ -35,7 +35,8 @@ class Parser;
 class SignatureParser;
 class x509;

-/** SignerInfo as described in the [RFC 2315](https://tools.ietf.org/html/rfc2315#section-9.2)
+/** SignerInfo as described in the [RFC
+ * 2315](https://tools.ietf.org/html/rfc2315#section-9.2)
  *
  * ```text
  * SignerInfo ::= SEQUENCE {
@@ -64,7 +65,8 @@ class LIEF_API SignerInfo : public Object {
   using attributes_t = std::vector<std::unique_ptr<Attribute>>;

   /// Iterator which outputs const Attribute&
-  using it_const_attributes_t = const_ref_iterator<const attributes_t&, const Attribute*>;
+  using it_const_attributes_t =
+      const_ref_iterator<const attributes_t&, const Attribute*>;

   SignerInfo();

@@ -87,7 +89,7 @@ class LIEF_API SignerInfo : public Object {
   /// @see
   /// LIEF::PE::x509::serial_number
   /// SignerInfo::issuer
-  span<const uint8_t> serial_number() const {
+  span<const uint8_t> serial_number() const LIEF_LIFETIMEBOUND {
     return serialno_;
   }

@@ -117,12 +119,12 @@ class LIEF_API SignerInfo : public Object {
   }

   /// Iterator over LIEF::PE::Attribute for **authenticated** attributes
-  it_const_attributes_t authenticated_attributes() const {
+  it_const_attributes_t authenticated_attributes() const LIEF_LIFETIMEBOUND {
     return authenticated_attributes_;
   }

   /// Iterator over LIEF::PE::Attribute for **unauthenticated** attributes
-  it_const_attributes_t unauthenticated_attributes() const {
+  it_const_attributes_t unauthenticated_attributes() const LIEF_LIFETIMEBOUND {
     return unauthenticated_attributes_;
   }

@@ -131,32 +133,38 @@ class LIEF_API SignerInfo : public Object {
   ///
   /// It returns **the first** entry that matches the given type. If it can't be
   /// found, it returns a nullptr.
-  const Attribute* get_attribute(Attribute::TYPE type) const;
+  const Attribute* get_attribute(Attribute::TYPE type) const LIEF_LIFETIMEBOUND;

-  /// Return the authenticated attribute matching the given PE::SIG_ATTRIBUTE_TYPES.
+  /// Return the authenticated attribute matching the given
+  /// PE::SIG_ATTRIBUTE_TYPES.
   ///
   /// It returns **the first** entry that matches the given type. If it can't be
   /// found, it returns a nullptr.
-  const Attribute* get_auth_attribute(Attribute::TYPE type) const;
+  const Attribute*
+      get_auth_attribute(Attribute::TYPE type) const LIEF_LIFETIMEBOUND;

-  /// Return the un-authenticated attribute matching the given PE::SIG_ATTRIBUTE_TYPES.
+  /// Return the un-authenticated attribute matching the given
+  /// PE::SIG_ATTRIBUTE_TYPES.
   ///
   /// It returns **the first** entry that matches the given type. If it can't be
   /// found, it returns a nullptr.
-  const Attribute* get_unauth_attribute(Attribute::TYPE type) const;
+  const Attribute*
+      get_unauth_attribute(Attribute::TYPE type) const LIEF_LIFETIMEBOUND;

-  /// x509 certificate used by this signer. If it can't be found, it returns a nullptr
-  const x509* cert() const {
+  /// x509 certificate used by this signer. If it can't be found, it returns a
+  /// nullptr
+  const x509* cert() const LIEF_LIFETIMEBOUND {
     return cert_.get();
   }

-  /// x509 certificate used by this signer. If it can't be found, it returns a nullptr
-  x509* cert() {
+  /// x509 certificate used by this signer. If it can't be found, it returns a
+  /// nullptr
+  x509* cert() LIEF_LIFETIMEBOUND {
     return cert_.get();
   }

   /// Raw blob that is signed by the signer certificate
-  span<const uint8_t> raw_auth_data() const {
+  span<const uint8_t> raw_auth_data() const LIEF_LIFETIMEBOUND {
     return raw_auth_data_;
   }

@@ -164,14 +172,15 @@ class LIEF_API SignerInfo : public Object {

   ~SignerInfo() override;

-  LIEF_API friend std::ostream& operator<<(std::ostream& os, const SignerInfo& signer_info);
+  LIEF_API friend std::ostream& operator<<(std::ostream& os,
+                                           const SignerInfo& signer_info);

   private:
   uint32_t version_ = 0;
   std::string issuer_;
   std::vector<uint8_t> serialno_;

-  ALGORITHMS digest_algorithm_     = ALGORITHMS::UNKNOWN;
+  ALGORITHMS digest_algorithm_ = ALGORITHMS::UNKNOWN;
   ALGORITHMS digest_enc_algorithm_ = ALGORITHMS::UNKNOWN;

   encrypted_digest_t encrypted_digest_;
diff --git a/deps/LIEF/include/LIEF/PE/signature/SpcIndirectData.hpp b/deps/LIEF/include/LIEF/PE/signature/SpcIndirectData.hpp
index cb65d91a888..367d0ef93b9 100644
--- a/deps/LIEF/include/LIEF/PE/signature/SpcIndirectData.hpp
+++ b/deps/LIEF/include/LIEF/PE/signature/SpcIndirectData.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -20,6 +20,7 @@
 #include <vector>
 #include <cstdint>

+#include "LIEF/compiler_attributes.hpp"
 #include "LIEF/visibility.h"
 #include "LIEF/span.hpp"

@@ -34,8 +35,7 @@ class LIEF_API SpcIndirectData : public ContentInfo::Content {
   static constexpr auto SPC_INDIRECT_DATA_OBJID = "1.3.6.1.4.1.311.2.1.4";

   SpcIndirectData() :
-    ContentInfo::Content(SPC_INDIRECT_DATA_OBJID)
-  {}
+    ContentInfo::Content(SPC_INDIRECT_DATA_OBJID) {}
   SpcIndirectData(const SpcIndirectData&) = default;
   SpcIndirectData& operator=(const SpcIndirectData&) = default;

@@ -53,7 +53,7 @@ class LIEF_API SpcIndirectData : public ContentInfo::Content {
   /// PE's authentihash
   ///
   /// @see LIEF::PE::Binary::authentihash
-  span<const uint8_t> digest() const {
+  span<const uint8_t> digest() const LIEF_LIFETIMEBOUND {
     return digest_;
   }

@@ -69,7 +69,8 @@ class LIEF_API SpcIndirectData : public ContentInfo::Content {

   void accept(Visitor& visitor) const override;

-  LIEF_API friend std::ostream& operator<<(std::ostream& os, const SpcIndirectData& content) {
+  LIEF_API friend std::ostream& operator<<(std::ostream& os,
+                                           const SpcIndirectData& content) {
     content.print(os);
     return os;
   }
diff --git a/deps/LIEF/include/LIEF/PE/signature/attributes.hpp b/deps/LIEF/include/LIEF/PE/signature/attributes.hpp
index d83a5a50713..684cd8f0cc0 100644
--- a/deps/LIEF/include/LIEF/PE/signature/attributes.hpp
+++ b/deps/LIEF/include/LIEF/PE/signature/attributes.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2021 - 2025 R. Thomas
- * Copyright 2021 - 2025 Quarkslab
+/* Copyright 2021 - 2026 R. Thomas
+ * Copyright 2021 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -29,4 +29,3 @@
 #include "LIEF/PE/signature/attributes/SpcSpOpusInfo.hpp"
 #include "LIEF/PE/signature/attributes/SpcRelaxedPeMarkerCheck.hpp"
 #endif
-
diff --git a/deps/LIEF/include/LIEF/PE/signature/attributes/ContentType.hpp b/deps/LIEF/include/LIEF/PE/signature/attributes/ContentType.hpp
index 7e0f161ada5..bd61e107890 100644
--- a/deps/LIEF/include/LIEF/PE/signature/attributes/ContentType.hpp
+++ b/deps/LIEF/include/LIEF/PE/signature/attributes/ContentType.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -26,10 +26,12 @@ namespace LIEF {
 class VectorStream;
 namespace PE {

-/// Interface over the structure described by the OID ``1.2.840.113549.1.9.3`` (PKCS #9)
+/// Interface over the structure described by the OID ``1.2.840.113549.1.9.3``
+/// (PKCS #9)
 ///
 /// The internal structure is described in the
-/// [RFC #2985: PKCS #9 - Selected Object Classes and Attribute Types Version 2.0](https://tools.ietf.org/html/rfc2985)
+/// [RFC #2985: PKCS #9 - Selected Object Classes and Attribute Types
+/// Version 2.0](https://tools.ietf.org/html/rfc2985)
 ///
 /// ```text
 /// ContentType ::= OBJECT IDENTIFIER
@@ -41,12 +43,10 @@ class LIEF_API ContentType : public Attribute {

   public:
   ContentType() :
-    Attribute(Attribute::TYPE::CONTENT_TYPE)
-  {}
+    Attribute(Attribute::TYPE::CONTENT_TYPE) {}
   ContentType(oid_t oid) :
     Attribute(Attribute::TYPE::CONTENT_TYPE),
-    oid_{std::move(oid)}
-  {}
+    oid_{std::move(oid)} {}
   ContentType(const ContentType&) = default;
   ContentType& operator=(const ContentType&) = default;

diff --git a/deps/LIEF/include/LIEF/PE/signature/attributes/GenericType.hpp b/deps/LIEF/include/LIEF/PE/signature/attributes/GenericType.hpp
index b85394f96f2..9ce4e4fb37c 100644
--- a/deps/LIEF/include/LIEF/PE/signature/attributes/GenericType.hpp
+++ b/deps/LIEF/include/LIEF/PE/signature/attributes/GenericType.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -18,6 +18,7 @@
 #include <memory>
 #include <vector>

+#include "LIEF/compiler_attributes.hpp"
 #include "LIEF/visibility.h"
 #include "LIEF/span.hpp"
 #include "LIEF/PE/signature/Attribute.hpp"
@@ -27,20 +28,19 @@ namespace LIEF {
 class VectorStream;
 namespace PE {

-/// Interface over an attribute for which the internal structure is not supported by LIEF
+/// Interface over an attribute for which the internal structure is not supported
+/// by LIEF
 class LIEF_API GenericType : public Attribute {
   friend class Parser;
   friend class SignatureParser;

   public:
   GenericType() :
-    Attribute(Attribute::TYPE::GENERIC_TYPE)
-  {}
+    Attribute(Attribute::TYPE::GENERIC_TYPE) {}
   GenericType(oid_t oid, std::vector<uint8_t> raw) :
     Attribute(Attribute::TYPE::GENERIC_TYPE),
     oid_{std::move(oid)},
-    raw_{std::move(raw)}
-  {}
+    raw_{std::move(raw)} {}
   GenericType(const GenericType&) = default;
   GenericType& operator=(const GenericType&) = default;

@@ -54,7 +54,7 @@ class LIEF_API GenericType : public Attribute {
   }

   /// Original DER blob of the attribute
-  span<const uint8_t> raw_content() const {
+  span<const uint8_t> raw_content() const LIEF_LIFETIMEBOUND {
     return raw_;
   }

diff --git a/deps/LIEF/include/LIEF/PE/signature/attributes/MsCounterSign.hpp b/deps/LIEF/include/LIEF/PE/signature/attributes/MsCounterSign.hpp
index f32ad4867b0..ebe1d17d19c 100644
--- a/deps/LIEF/include/LIEF/PE/signature/attributes/MsCounterSign.hpp
+++ b/deps/LIEF/include/LIEF/PE/signature/attributes/MsCounterSign.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -43,8 +43,7 @@ class LIEF_API MsCounterSign : public Attribute {
   using it_signers = ref_iterator<signers_t&>;

   MsCounterSign() :
-    Attribute(Attribute::TYPE::MS_COUNTER_SIGN)
-  {}
+    Attribute(Attribute::TYPE::MS_COUNTER_SIGN) {}

   MsCounterSign(const MsCounterSign&) = default;
   MsCounterSign& operator=(const MsCounterSign&) = default;
@@ -58,20 +57,20 @@ class LIEF_API MsCounterSign : public Attribute {
   }

   /// Iterator over the LIEF::PE::x509 certificates of this counter signature
-  it_const_certificates certificates() const {
+  it_const_certificates certificates() const LIEF_LIFETIMEBOUND {
     return certificates_;
   }

-  it_certificates certificates() {
+  it_certificates certificates() LIEF_LIFETIMEBOUND {
     return certificates_;
   }

   /// Signer iterator (same as LIEF::PE::SignerInfo)
-  it_const_signers signers() const {
+  it_const_signers signers() const LIEF_LIFETIMEBOUND {
     return signers_;
   }

-  it_signers signers() {
+  it_signers signers() LIEF_LIFETIMEBOUND {
     return signers_;
   }

diff --git a/deps/LIEF/include/LIEF/PE/signature/attributes/MsManifestBinaryID.hpp b/deps/LIEF/include/LIEF/PE/signature/attributes/MsManifestBinaryID.hpp
index 1a4a57a2b79..e11a2f2db99 100644
--- a/deps/LIEF/include/LIEF/PE/signature/attributes/MsManifestBinaryID.hpp
+++ b/deps/LIEF/include/LIEF/PE/signature/attributes/MsManifestBinaryID.hpp
@@ -1,6 +1,6 @@

-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -23,9 +23,11 @@
 namespace LIEF {
 namespace PE {

-/// Interface over the structure described by the OID `1.3.6.1.4.1.311.10.3.28` (szOID_PLATFORM_MANIFEST_BINARY_ID)
+/// Interface over the structure described by the OID `1.3.6.1.4.1.311.10.3.28`
+/// (szOID_PLATFORM_MANIFEST_BINARY_ID)
 ///
-/// The internal structure is not documented but we can infer the following structure:
+/// The internal structure is not documented but we can infer the following
+/// structure:
 ///
 /// ```text
 /// szOID_PLATFORM_MANIFEST_BINARY_ID ::= SET OF BinaryID
@@ -41,8 +43,7 @@ class LIEF_API MsManifestBinaryID : public Attribute {
   MsManifestBinaryID() = delete;
   MsManifestBinaryID(std::string binid) :
     Attribute(Attribute::TYPE::MS_PLATFORM_MANIFEST_BINARY_ID),
-    id_(std::move(binid))
-  {}
+    id_(std::move(binid)) {}

   MsManifestBinaryID(const MsManifestBinaryID&) = default;
   MsManifestBinaryID& operator=(const MsManifestBinaryID&) = default;
@@ -71,7 +72,7 @@ class LIEF_API MsManifestBinaryID : public Attribute {

   void accept(Visitor& visitor) const override;

-  virtual ~MsManifestBinaryID() = default;
+  ~MsManifestBinaryID() override = default;

   private:
   std::string id_;
diff --git a/deps/LIEF/include/LIEF/PE/signature/attributes/MsSpcNestedSignature.hpp b/deps/LIEF/include/LIEF/PE/signature/attributes/MsSpcNestedSignature.hpp
index 1e4a871eb36..a22363ce633 100644
--- a/deps/LIEF/include/LIEF/PE/signature/attributes/MsSpcNestedSignature.hpp
+++ b/deps/LIEF/include/LIEF/PE/signature/attributes/MsSpcNestedSignature.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -26,7 +26,8 @@ namespace PE {

 /// Interface over the structure described by the OID ``1.3.6.1.4.1.311.2.4.1``
 ///
-/// The internal structure is not documented but we can infer the following structure:
+/// The internal structure is not documented but we can infer the following
+/// structure:
 ///
 /// ```text
 /// MsSpcNestedSignature ::= SET OF SignedData
@@ -42,8 +43,7 @@ class LIEF_API MsSpcNestedSignature : public Attribute {
   MsSpcNestedSignature() = delete;
   MsSpcNestedSignature(Signature sig) :
     Attribute(Attribute::TYPE::MS_SPC_NESTED_SIGN),
-    sig_{std::move(sig)}
-  {}
+    sig_{std::move(sig)} {}
   MsSpcNestedSignature(const MsSpcNestedSignature&) = default;
   MsSpcNestedSignature& operator=(const MsSpcNestedSignature&) = default;

@@ -52,7 +52,7 @@ class LIEF_API MsSpcNestedSignature : public Attribute {
   }

   /// Underlying Signature object
-  const Signature& sig() const {
+  const Signature& sig() const LIEF_LIFETIMEBOUND {
     return sig_;
   }

diff --git a/deps/LIEF/include/LIEF/PE/signature/attributes/MsSpcStatementType.hpp b/deps/LIEF/include/LIEF/PE/signature/attributes/MsSpcStatementType.hpp
index baa8451de29..d470096333b 100644
--- a/deps/LIEF/include/LIEF/PE/signature/attributes/MsSpcStatementType.hpp
+++ b/deps/LIEF/include/LIEF/PE/signature/attributes/MsSpcStatementType.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -26,7 +26,8 @@ namespace PE {
 /// Interface over the structure described by the OID ``1.3.6.1.4.1.311.2.1.11``
 ///
 /// The internal structure is described in the official document:
-/// [Windows Authenticode Portable Executable Signature Format](http://download.microsoft.com/download/9/c/5/9c5b2167-8017-4bae-9fde-d599bac8184a/Authenticode_PE.docx)
+/// [Windows Authenticode Portable Executable Signature
+/// Format](http://download.microsoft.com/download/9/c/5/9c5b2167-8017-4bae-9fde-d599bac8184a/Authenticode_PE.docx)
 ///
 /// ```text
 /// SpcStatementType ::= SEQUENCE of OBJECT IDENTIFIER
@@ -40,8 +41,7 @@ class LIEF_API MsSpcStatementType : public Attribute {
   MsSpcStatementType() = delete;
   MsSpcStatementType(oid_t oid) :
     Attribute(Attribute::TYPE::MS_SPC_STATEMENT_TYPE),
-    oid_{std::move(oid)}
-  {}
+    oid_{std::move(oid)} {}

   MsSpcStatementType(const MsSpcStatementType&) = default;
   MsSpcStatementType& operator=(const MsSpcStatementType&) = default;
@@ -52,8 +52,8 @@ class LIEF_API MsSpcStatementType : public Attribute {

   /// According to the documentation:
   /// > The SpcStatementType MUST contain one Object Identifier with either
-  /// > the value ``1.3.6.1.4.1.311.2.1.21 (SPC_INDIVIDUAL_SP_KEY_PURPOSE_OBJID)`` or
-  /// > ``1.3.6.1.4.1.311.2.1.22 (SPC_COMMERCIAL_SP_KEY_PURPOSE_OBJID)``.
+  /// > the value ``1.3.6.1.4.1.311.2.1.21 (SPC_INDIVIDUAL_SP_KEY_PURPOSE_OBJID)``
+  /// or > ``1.3.6.1.4.1.311.2.1.22 (SPC_COMMERCIAL_SP_KEY_PURPOSE_OBJID)``.
   const oid_t& oid() const {
     return oid_;
   }
diff --git a/deps/LIEF/include/LIEF/PE/signature/attributes/PKCS9AtSequenceNumber.hpp b/deps/LIEF/include/LIEF/PE/signature/attributes/PKCS9AtSequenceNumber.hpp
index 32db1470ea3..cdbe60a1c53 100644
--- a/deps/LIEF/include/LIEF/PE/signature/attributes/PKCS9AtSequenceNumber.hpp
+++ b/deps/LIEF/include/LIEF/PE/signature/attributes/PKCS9AtSequenceNumber.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -26,10 +26,12 @@ namespace PE {
 class Parser;
 class SignatureParser;

-/// Interface over the structure described by the OID ``1.2.840.113549.1.9.25.4`` (PKCS #9)
+/// Interface over the structure described by the OID ``1.2.840.113549.1.9.25.4``
+/// (PKCS #9)
 ///
 /// The internal structure is described in the
-/// [RFC #2985: PKCS #9 - Selected Object Classes and Attribute Types Version 2.0](https://tools.ietf.org/html/rfc2985)
+/// [RFC #2985: PKCS #9 - Selected Object Classes and Attribute Types
+/// Version 2.0](https://tools.ietf.org/html/rfc2985)
 ///
 /// ```text
 /// sequenceNumber ATTRIBUTE ::= {
@@ -50,8 +52,7 @@ class LIEF_API PKCS9AtSequenceNumber : public Attribute {
   PKCS9AtSequenceNumber() = delete;
   PKCS9AtSequenceNumber(uint32_t num) :
     Attribute(Attribute::TYPE::PKCS9_AT_SEQUENCE_NUMBER),
-    number_{num}
-  {}
+    number_{num} {}

   PKCS9AtSequenceNumber(const PKCS9AtSequenceNumber&) = default;
   PKCS9AtSequenceNumber& operator=(const PKCS9AtSequenceNumber&) = default;
diff --git a/deps/LIEF/include/LIEF/PE/signature/attributes/PKCS9CounterSignature.hpp b/deps/LIEF/include/LIEF/PE/signature/attributes/PKCS9CounterSignature.hpp
index 78367f50930..9c8bf275200 100644
--- a/deps/LIEF/include/LIEF/PE/signature/attributes/PKCS9CounterSignature.hpp
+++ b/deps/LIEF/include/LIEF/PE/signature/attributes/PKCS9CounterSignature.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -24,10 +24,12 @@ namespace LIEF {
 class VectorStream;
 namespace PE {

-/// Interface over the structure described by the OID ``1.2.840.113549.1.9.6`` (PKCS #9)
+/// Interface over the structure described by the OID ``1.2.840.113549.1.9.6``
+/// (PKCS #9)
 ///
 /// The internal structure is described in the
-/// [RFC #2985: PKCS #9 - Selected Object Classes and Attribute Types Version 2.0](https://tools.ietf.org/html/rfc2985)
+/// [RFC #2985: PKCS #9 - Selected Object Classes and Attribute Types
+/// Version 2.0](https://tools.ietf.org/html/rfc2985)
 ///
 /// ```text
 /// counterSignature ATTRIBUTE ::= {
@@ -44,8 +46,7 @@ class LIEF_API PKCS9CounterSignature : public Attribute {
   PKCS9CounterSignature() = delete;
   PKCS9CounterSignature(SignerInfo signer) :
     Attribute(Attribute::TYPE::PKCS9_COUNTER_SIGNATURE),
-    signer_{std::move(signer)}
-  {}
+    signer_{std::move(signer)} {}

   PKCS9CounterSignature(const PKCS9CounterSignature&) = default;
   PKCS9CounterSignature& operator=(const PKCS9CounterSignature&) = default;
@@ -55,8 +56,8 @@ class LIEF_API PKCS9CounterSignature : public Attribute {
   }

   /// SignerInfo as described in the RFC #2985
-  const SignerInfo& signer() const {
-    return this->signer_;
+  const SignerInfo& signer() const LIEF_LIFETIMEBOUND {
+    return signer_;
   }

   /// Print information about the attribute
diff --git a/deps/LIEF/include/LIEF/PE/signature/attributes/PKCS9MessageDigest.hpp b/deps/LIEF/include/LIEF/PE/signature/attributes/PKCS9MessageDigest.hpp
index 9ec273f98a9..2ada66a4921 100644
--- a/deps/LIEF/include/LIEF/PE/signature/attributes/PKCS9MessageDigest.hpp
+++ b/deps/LIEF/include/LIEF/PE/signature/attributes/PKCS9MessageDigest.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -16,6 +16,7 @@
 #ifndef LIEF_PE_ATTRIBUTES_PKCS9_MESSAGE_DIGEST_H
 #define LIEF_PE_ATTRIBUTES_PKCS9_MESSAGE_DIGEST_H

+#include "LIEF/compiler_attributes.hpp"
 #include "LIEF/visibility.h"
 #include "LIEF/PE/signature/Attribute.hpp"
 #include "LIEF/span.hpp"
@@ -28,10 +29,12 @@ namespace PE {
 class Parser;
 class SignatureParser;

-/// Interface over the structure described by the OID ``1.2.840.113549.1.9.4`` (PKCS #9)
+/// Interface over the structure described by the OID ``1.2.840.113549.1.9.4``
+/// (PKCS #9)
 ///
 /// The internal structure is described in the
-/// [RFC #2985: PKCS #9 - Selected Object Classes and Attribute Types Version 2.0](https://tools.ietf.org/html/rfc2985)
+/// [RFC #2985: PKCS #9 - Selected Object Classes and Attribute Types
+/// Version 2.0](https://tools.ietf.org/html/rfc2985)
 ///
 /// ```text
 /// messageDigest ATTRIBUTE ::= {
@@ -52,8 +55,7 @@ class LIEF_API PKCS9MessageDigest : public Attribute {
   PKCS9MessageDigest() = delete;
   PKCS9MessageDigest(std::vector<uint8_t> digest) :
     Attribute(Attribute::TYPE::PKCS9_MESSAGE_DIGEST),
-    digest_{std::move(digest)}
-  {}
+    digest_{std::move(digest)} {}

   PKCS9MessageDigest(const PKCS9MessageDigest&) = default;
   PKCS9MessageDigest& operator=(const PKCS9MessageDigest&) = default;
@@ -63,7 +65,7 @@ class LIEF_API PKCS9MessageDigest : public Attribute {
   }

   /// Message digeset as a blob of bytes as described in the RFC
-  span<const uint8_t> digest() const {
+  span<const uint8_t> digest() const LIEF_LIFETIMEBOUND {
     return digest_;
   }

diff --git a/deps/LIEF/include/LIEF/PE/signature/attributes/PKCS9SigningTime.hpp b/deps/LIEF/include/LIEF/PE/signature/attributes/PKCS9SigningTime.hpp
index 57896b22728..238807cacc2 100644
--- a/deps/LIEF/include/LIEF/PE/signature/attributes/PKCS9SigningTime.hpp
+++ b/deps/LIEF/include/LIEF/PE/signature/attributes/PKCS9SigningTime.hpp
@@ -1,6 +1,6 @@

-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -24,10 +24,12 @@
 namespace LIEF {
 namespace PE {

-/// Interface over the structure described by the OID ``1.2.840.113549.1.9.5`` (PKCS #9)
+/// Interface over the structure described by the OID ``1.2.840.113549.1.9.5``
+/// (PKCS #9)
 ///
 /// The internal structure is described in the
-/// [RFC #2985: PKCS #9 - Selected Object Classes and Attribute Types Version 2.0](https://tools.ietf.org/html/rfc2985)
+/// [RFC #2985: PKCS #9 - Selected Object Classes and Attribute Types
+/// Version 2.0](https://tools.ietf.org/html/rfc2985)
 ///
 /// ```text
 /// signingTime ATTRIBUTE ::= {
@@ -51,8 +53,7 @@ class LIEF_API PKCS9SigningTime : public Attribute {
   PKCS9SigningTime() = delete;
   PKCS9SigningTime(time_t time) :
     Attribute(Attribute::TYPE::PKCS9_SIGNING_TIME),
-    time_{time}
-  {}
+    time_{time} {}

   PKCS9SigningTime(const PKCS9SigningTime&) = default;
   PKCS9SigningTime& operator=(const PKCS9SigningTime&) = default;
diff --git a/deps/LIEF/include/LIEF/PE/signature/attributes/SigningCertificateV2.hpp b/deps/LIEF/include/LIEF/PE/signature/attributes/SigningCertificateV2.hpp
index 3d95664bf07..bcb6b17e837 100644
--- a/deps/LIEF/include/LIEF/PE/signature/attributes/SigningCertificateV2.hpp
+++ b/deps/LIEF/include/LIEF/PE/signature/attributes/SigningCertificateV2.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -47,8 +47,7 @@ class LIEF_API SigningCertificateV2 : public Attribute {

   public:
   SigningCertificateV2() :
-    Attribute(Attribute::TYPE::SIGNING_CERTIFICATE_V2)
-  {}
+    Attribute(Attribute::TYPE::SIGNING_CERTIFICATE_V2) {}
   SigningCertificateV2(const SigningCertificateV2&) = default;
   SigningCertificateV2& operator=(const SigningCertificateV2&) = default;

diff --git a/deps/LIEF/include/LIEF/PE/signature/attributes/SpcRelaxedPeMarkerCheck.hpp b/deps/LIEF/include/LIEF/PE/signature/attributes/SpcRelaxedPeMarkerCheck.hpp
index 5cce98b4817..861c00f5ff4 100644
--- a/deps/LIEF/include/LIEF/PE/signature/attributes/SpcRelaxedPeMarkerCheck.hpp
+++ b/deps/LIEF/include/LIEF/PE/signature/attributes/SpcRelaxedPeMarkerCheck.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -29,13 +29,11 @@ class LIEF_API SpcRelaxedPeMarkerCheck : public Attribute {

   public:
   SpcRelaxedPeMarkerCheck() :
-    SpcRelaxedPeMarkerCheck(0)
-  {}
+    SpcRelaxedPeMarkerCheck(0) {}

   SpcRelaxedPeMarkerCheck(uint32_t value) :
     Attribute(Attribute::TYPE::SPC_RELAXED_PE_MARKER_CHECK),
-    value_(value)
-  {}
+    value_(value) {}

   SpcRelaxedPeMarkerCheck(const SpcRelaxedPeMarkerCheck&) = default;
   SpcRelaxedPeMarkerCheck& operator=(const SpcRelaxedPeMarkerCheck&) = default;
diff --git a/deps/LIEF/include/LIEF/PE/signature/attributes/SpcSpOpusInfo.hpp b/deps/LIEF/include/LIEF/PE/signature/attributes/SpcSpOpusInfo.hpp
index 4640cd8991d..a9e5f4613e4 100644
--- a/deps/LIEF/include/LIEF/PE/signature/attributes/SpcSpOpusInfo.hpp
+++ b/deps/LIEF/include/LIEF/PE/signature/attributes/SpcSpOpusInfo.hpp
@@ -1,6 +1,6 @@

-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -28,7 +28,8 @@ namespace PE {
 /// Interface over the structure described by the OID ``1.3.6.1.4.1.311.2.1.12``
 ///
 /// The internal structure is described in the official document:
-/// [Windows Authenticode Portable Executable Signature Format](http://download.microsoft.com/download/9/c/5/9c5b2167-8017-4bae-9fde-d599bac8184a/Authenticode_PE.docx)
+/// [Windows Authenticode Portable Executable Signature
+/// Format](http://download.microsoft.com/download/9/c/5/9c5b2167-8017-4bae-9fde-d599bac8184a/Authenticode_PE.docx)
 ///
 /// ```text
 /// SpcSpOpusInfo ::= SEQUENCE {
@@ -45,12 +46,10 @@ class LIEF_API SpcSpOpusInfo : public Attribute {
   SpcSpOpusInfo(std::string program_name, std::string more_info) :
     Attribute(Attribute::TYPE::SPC_SP_OPUS_INFO),
     program_name_(std::move(program_name)),
-    more_info_(std::move(more_info))
-  {}
+    more_info_(std::move(more_info)) {}

   SpcSpOpusInfo() :
-    SpcSpOpusInfo("", "")
-  {}
+    SpcSpOpusInfo("", "") {}

   SpcSpOpusInfo(const SpcSpOpusInfo&) = default;
   SpcSpOpusInfo& operator=(const SpcSpOpusInfo&) = default;
diff --git a/deps/LIEF/include/LIEF/PE/signature/types.hpp b/deps/LIEF/include/LIEF/PE/signature/types.hpp
index 3324b07141f..08e092ffc5c 100644
--- a/deps/LIEF/include/LIEF/PE/signature/types.hpp
+++ b/deps/LIEF/include/LIEF/PE/signature/types.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/deps/LIEF/include/LIEF/PE/signature/x509.hpp b/deps/LIEF/include/LIEF/PE/signature/x509.hpp
index 8f96d92f3f1..1483fd4d796 100644
--- a/deps/LIEF/include/LIEF/PE/signature/x509.hpp
+++ b/deps/LIEF/include/LIEF/PE/signature/x509.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -69,53 +69,118 @@ class LIEF_API x509 : public Object {

   /// Public key scheme
   enum class KEY_TYPES : uint32_t {
-    NONE = 0,    ///< Unknown scheme
-    RSA,         ///< RSA Scheme
-    ECKEY,       ///< Elliptic-curve scheme
-    ECKEY_DH,    ///< Elliptic-curve Diffie-Hellman
-    ECDSA,       ///< Elliptic-curve Digital Signature Algorithm
-    RSA_ALT,     ///< RSA scheme with an alternative implementation for signing and decrypting
-    RSASSA_PSS,  ///< RSA Probabilistic signature scheme
+    NONE = 0,   ///< Unknown scheme
+    RSA,        ///< RSA Scheme
+    ECKEY,      ///< Elliptic-curve scheme
+    ECKEY_DH,   ///< Elliptic-curve Diffie-Hellman
+    ECDSA,      ///< Elliptic-curve Digital Signature Algorithm
+    RSA_ALT,    ///< RSA scheme with an alternative implementation for signing and
+                ///< decrypting
+    RSASSA_PSS, ///< RSA Probabilistic signature scheme
   };

   /// Mirror of mbedtls's X509 Verify codes: MBEDTLS_X509_XX
   ///
   /// It must be sync with include/mbedtls/x509.h
   enum class VERIFICATION_FLAGS : uint32_t {
-    OK                     = 0,       /**< The verification succeed  */
-    BADCERT_EXPIRED        = 1 << 0,  /**< The certificate validity has expired. */
-    BADCERT_REVOKED        = 1 << 1,  /**< The certificate has been revoked (is on a CRL). */
-    BADCERT_CN_MISMATCH    = 1 << 2,  /**< The certificate Common Name (CN) does not match with the expected CN. */
-    BADCERT_NOT_TRUSTED    = 1 << 3,  /**< The certificate is not correctly signed by the trusted CA. */
-    BADCRL_NOT_TRUSTED     = 1 << 4,  /**< The CRL is not correctly signed by the trusted CA. */
-    BADCRL_EXPIRED         = 1 << 5,  /**< The CRL is expired. */
-    BADCERT_MISSING        = 1 << 6,  /**< Certificate was missing. */
-    BADCERT_SKIP_VERIFY    = 1 << 7,  /**< Certificate verification was skipped. */
-    BADCERT_OTHER          = 1 << 8,  /**< Other reason (can be used by verify callback) */
-    BADCERT_FUTURE         = 1 << 9,  /**< The certificate validity starts in the future. */
-    BADCRL_FUTURE          = 1 << 10, /**< The CRL is from the future */
-    BADCERT_KEY_USAGE      = 1 << 11, /**< Usage does not match the keyUsage extension. */
-    BADCERT_EXT_KEY_USAGE  = 1 << 12, /**< Usage does not match the extendedKeyUsage extension. */
-    BADCERT_NS_CERT_TYPE   = 1 << 13, /**< Usage does not match the nsCertType extension. */
-    BADCERT_BAD_MD         = 1 << 14, /**< The certificate is signed with an unacceptable hash. */
-    BADCERT_BAD_PK         = 1 << 15, /**< The certificate is signed with an unacceptable PK alg (eg RSA vs ECDSA). */
-    BADCERT_BAD_KEY        = 1 << 16, /**< The certificate is signed with an unacceptable key (eg bad curve, RSA too short). */
-    BADCRL_BAD_MD          = 1 << 17, /**< The CRL is signed with an unacceptable hash. */
-    BADCRL_BAD_PK          = 1 << 18, /**< The CRL is signed with an unacceptable PK alg (eg RSA vs ECDSA). */
-    BADCRL_BAD_KEY         = 1 << 19, /**< The CRL is signed with an unacceptable key (eg bad curve, RSA too short). */
+    /// The verification succeed
+    OK = 0,
+
+    /// The certificate validity has expired.
+    BADCERT_EXPIRED = 1 << 0,
+
+    /// The certificate has been revoked (is on a CRL).
+    BADCERT_REVOKED = 1 << 1,
+
+    /// The certificate Common Name (CN) does not match with the expected CN.
+    BADCERT_CN_MISMATCH = 1 << 2,
+
+    /// The certificate is not correctly signed by the trusted CA.
+    BADCERT_NOT_TRUSTED = 1 << 3,
+
+    /// The CRL is not correctly signed by the trusted CA.
+    BADCRL_NOT_TRUSTED = 1 << 4,
+
+    /// The CRL is expired.
+    BADCRL_EXPIRED = 1 << 5,
+
+    /// Certificate was missing.
+    BADCERT_MISSING = 1 << 6,
+
+    /// Certificate verification was skipped.
+    BADCERT_SKIP_VERIFY = 1 << 7,
+
+    ///
+    /// Other reason (can be used by verify callback)
+    BADCERT_OTHER = 1 << 8,
+
+    /// The certificate validity starts in the future.
+    BADCERT_FUTURE = 1 << 9,
+
+    /// The CRL is from the future
+    BADCRL_FUTURE = 1 << 10,
+
+    /// Usage does not match the keyUsage extension.
+    BADCERT_KEY_USAGE = 1 << 11,
+
+    /// Usage does not match the extendedKeyUsage extension.
+    BADCERT_EXT_KEY_USAGE = 1 << 12,
+
+    /// Usage does not match the nsCertType extension.
+    BADCERT_NS_CERT_TYPE = 1 << 13,
+
+    /// The certificate is signed with an unacceptable hash.
+    BADCERT_BAD_MD = 1 << 14,
+
+    /// The certificate is signed with an unacceptable PK alg (eg RSA vs ECDSA).
+    BADCERT_BAD_PK = 1 << 15,
+
+    /// The certificate is signed with an unacceptable key (eg bad curve, RSA too
+    /// short).
+    BADCERT_BAD_KEY = 1 << 16,
+
+    /// The CRL is signed with an unacceptable hash.
+    BADCRL_BAD_MD = 1 << 17,
+
+    /// The CRL is signed with an unacceptable PK alg (eg RSA vs ECDSA).
+    BADCRL_BAD_PK = 1 << 18,
+
+    /// The CRL is signed with an unacceptable key (eg bad curve, RSA too short).
+    BADCRL_BAD_KEY = 1 << 19,
   };

-  /// Key usage as defined in [RFC #5280 - section-4.2.1.3](https://tools.ietf.org/html/rfc5280#section-4.2.1.3)
+  /// Key usage as defined in [RFC #5280 -
+  /// section-4.2.1.3](https://tools.ietf.org/html/rfc5280#section-4.2.1.3)
   enum class KEY_USAGE : uint32_t {
-    DIGITAL_SIGNATURE = 0, /**< The key is used for digital signature */
-    NON_REPUDIATION,       /**< The key is used for digital signature AND to protects against falsely denying some action */
-    KEY_ENCIPHERMENT,      /**< The key is used for enciphering private or secret keys */
-    DATA_ENCIPHERMENT,     /**< The key is used for directly enciphering raw user data without the use of an intermediate symmetric cipher */
-    KEY_AGREEMENT,         /**< The Key is used for key agreement. (e.g. with Diffie-Hellman) */
-    KEY_CERT_SIGN,         /**< The key is used for verifying signatures on public key certificates */
-    CRL_SIGN,              /**< The key is used for verifying signatures on certificate revocation lists */
-    ENCIPHER_ONLY,         /**< In **association with** KEY_AGREEMENT (otherwise the meaning is undefined), the key is only used for enciphering data while performing key agreement */
-    DECIPHER_ONLY,         /**< In **association with** KEY_AGREEMENT (otherwise the meaning is undefined), the key is only used for deciphering data while performing key agreement */
+    /// The key is used for digital signature
+    DIGITAL_SIGNATURE = 0,
+    /// The key is used for digital signature AND to protect against falsely
+    /// denying some action
+    NON_REPUDIATION,
+
+    /// The key is used for enciphering private or secret keys
+    KEY_ENCIPHERMENT,
+
+    /// The key is used for directly enciphering raw user data without the use of
+    /// an intermediate symmetric cipher
+    DATA_ENCIPHERMENT,
+
+    /// The Key is used for key agreement. (e.g. with Diffie-Hellman)
+    KEY_AGREEMENT,
+
+    /// The key is used for verifying signatures on public key certificates
+    KEY_CERT_SIGN,
+
+    /// The key is used for verifying signatures on certificate revocation lists
+    CRL_SIGN,
+
+    /// In **association with** KEY_AGREEMENT (otherwise the meaning is undefined),
+    /// the key is only used for enciphering data while performing key agreement
+    ENCIPHER_ONLY,
+
+    /// In **association with** KEY_AGREEMENT (otherwise the meaning is undefined),
+    /// the key is only used for deciphering data while performing key agreement
+    DECIPHER_ONLY,
   };

   x509(mbedtls_x509_crt* ca);
@@ -138,16 +203,17 @@ class LIEF_API x509 : public Object {
   /// End time of certificate validity
   date_t valid_to() const;

-  /// Issuer informations
+  /// Issuer information
   std::string issuer() const;

-  /// Subject informations
+  /// Subject information
   std::string subject() const;

-  /// Try to decrypt the given signature and check if it matches the given hash according to
-  /// the hash algorithm provided
+  /// Try to decrypt the given signature and check if it matches the given hash
+  /// according to the hash algorithm provided
   bool check_signature(const std::vector<uint8_t>& hash,
-                       const std::vector<uint8_t>& signature, ALGORITHMS digest) const;
+                       const std::vector<uint8_t>& signature,
+                       ALGORITHMS digest) const;

   /// The raw x509 bytes (DER encoded)
   std::vector<uint8_t> raw() const;
@@ -171,7 +237,8 @@ class LIEF_API x509 : public Object {
   /// Purpose of the key contained in the certificate
   std::vector<KEY_USAGE> key_usage() const;

-  /// Indicates one or more purposes for which the certified public key may be used (OID types)
+  /// Indicates one or more purposes for which the certified public key may be used
+  /// (OID types)
   std::vector<oid_t> ext_key_usage() const;

   bool is_ca() const;
@@ -183,12 +250,12 @@ class LIEF_API x509 : public Object {

   ~x509() override;

-  LIEF_API friend std::ostream& operator<<(std::ostream& os, const x509& x509_cert);
+  LIEF_API friend std::ostream& operator<<(std::ostream& os,
+                                           const x509& x509_cert);

   private:
   x509();
   mbedtls_x509_crt* x509_cert_ = nullptr;
-
 };

 }
diff --git a/deps/LIEF/include/LIEF/PE/utils.hpp b/deps/LIEF/include/LIEF/PE/utils.hpp
index e3066d11b0e..29b1b65f0c9 100644
--- a/deps/LIEF/include/LIEF/PE/utils.hpp
+++ b/deps/LIEF/include/LIEF/PE/utils.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -31,10 +31,18 @@ class Import;

 /// Enum to define the behavior of LIEF::PE::get_imphash
 enum class IMPHASH_MODE {
-  DEFAULT = 0,    /**< Default implementation */
-  LIEF = DEFAULT, /**< Same as IMPHASH_MODE::DEFAULT */
-  PEFILE,         /**< Use pefile algorithm */
-  VT = PEFILE,    /**< Same as IMPHASH_MODE::PEFILE since Virus Total is using pefile */
+  /// Default implementation
+  DEFAULT = 0,
+
+  /// Same as IMPHASH_MODE::DEFAULT
+  LIEF = DEFAULT,
+
+  /// Use pefile algorithm
+  PEFILE,
+
+  /// Same as IMPHASH_MODE::PEFILE since Virus Total is using pefile
+  VT = PEFILE,
+
 };

 /// Check if the given stream wraps a PE binary
@@ -62,13 +70,16 @@ LIEF_LOCAL result<PE_TYPE> get_type_from_stream(BinaryStream& stream);
 ///   * Casse agnostic
 ///   * Ordinal (**in some extent**) agnostic
 ///
-/// If one needs the same output as Virus Total (i.e. pefile), you can pass IMPHASH_MODE::PEFILE
-/// as second parameter.
+/// If one needs the same output as Virus Total (i.e. pefile), you can pass
+/// IMPHASH_MODE::PEFILE as second parameter.
 ///
-/// @warning The default algorithm used to compute the *imphash* value has some variations compared to Yara, pefile, VT implementation
+/// @warning The default algorithm used to compute the *imphash* value has some
+/// variations compared to Yara, pefile, VT implementation
 ///
-/// @see https://www.fireeye.com/blog/threat-research/2014/01/tracking-malware-import-hashing.html
-LIEF_API std::string get_imphash(const Binary& binary, IMPHASH_MODE mode = IMPHASH_MODE::DEFAULT);
+/// @see
+/// https://www.fireeye.com/blog/threat-research/2014/01/tracking-malware-import-hashing.html
+LIEF_API std::string get_imphash(const Binary& binary,
+                                 IMPHASH_MODE mode = IMPHASH_MODE::DEFAULT);

 /// Take a PE::Import as entry and try to resolve imports
 /// by ordinal.
@@ -77,11 +88,15 @@ LIEF_API std::string get_imphash(const Binary& binary, IMPHASH_MODE mode = IMPHA
 /// if the ordinal can't be resolved. Otherwise it skips the entry.
 ///
 /// @param[in] import Import to resolve
-/// @param[in] strict If set to ``true``, throw an exception if the import can't be resolved
-/// @param[in] use_std If ``true``, it will use the [pefile](https://github.com/erocarrera/pefile/tree/09264be6f731bf8578aee8638cc4046154e03abf/ordlookup) look-up table for resolving imports
+/// @param[in] strict If set to ``true``, throw an exception if the import can't be
+/// resolved
+/// @param[in] use_std If ``true``, it will use the
+/// [pefile](https://github.com/erocarrera/pefile/tree/09264be6f731bf8578aee8638cc4046154e03abf/ordlookup)
+/// look-up table for resolving imports
 ///
 /// @return The PE::import resolved with PE::ImportEntry::name set
-LIEF_API result<Import> resolve_ordinals(const Import& import, bool strict=false, bool use_std=false);
+LIEF_API result<Import> resolve_ordinals(const Import& import, bool strict = false,
+                                         bool use_std = false);

 LIEF_API ALGORITHMS algo_from_oid(const std::string& oid);

diff --git a/deps/LIEF/include/LIEF/VDEX.hpp b/deps/LIEF/include/LIEF/VDEX.hpp
index 304b28f6c06..3506f014a86 100644
--- a/deps/LIEF/include/LIEF/VDEX.hpp
+++ b/deps/LIEF/include/LIEF/VDEX.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -19,13 +19,13 @@
 #include "LIEF/config.h"

 #if defined(LIEF_VDEX_SUPPORT)
-#if !defined(LIEF_DEX_SUPPORT)
-#error "The VDEX module can't be used without the DEX support"
-#endif
-#include "LIEF/DEX.hpp"
-#include "LIEF/VDEX/Parser.hpp"
-#include "LIEF/VDEX/utils.hpp"
-#include "LIEF/VDEX/File.hpp"
+  #if !defined(LIEF_DEX_SUPPORT)
+    #error "The VDEX module can't be used without the DEX support"
+  #endif
+  #include "LIEF/DEX.hpp"
+  #include "LIEF/VDEX/Parser.hpp"
+  #include "LIEF/VDEX/utils.hpp"
+  #include "LIEF/VDEX/File.hpp"
 #endif

 #endif
diff --git a/deps/LIEF/include/LIEF/VDEX/File.hpp b/deps/LIEF/include/LIEF/VDEX/File.hpp
index d25b131503b..b4dc04b5dd6 100644
--- a/deps/LIEF/include/LIEF/VDEX/File.hpp
+++ b/deps/LIEF/include/LIEF/VDEX/File.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -46,18 +46,19 @@ class LIEF_API File : public Object {
   public:
   using dex_files_t = std::vector<std::unique_ptr<DEX::File>>;
   using it_dex_files = ref_iterator<dex_files_t&, DEX::File*>;
-  using it_const_dex_files = const_ref_iterator<const dex_files_t&, const DEX::File*>;
+  using it_const_dex_files =
+      const_ref_iterator<const dex_files_t&, const DEX::File*>;

   File& operator=(const File& copy) = delete;
-  File(const File& copy)            = delete;
+  File(const File& copy) = delete;

   /// VDEX Header
-  const Header& header() const;
-  Header& header();
+  const Header& header() const LIEF_LIFETIMEBOUND;
+  Header& header() LIEF_LIFETIMEBOUND;

   /// Iterator over LIEF::DEX::Files registered
-  it_dex_files       dex_files();
-  it_const_dex_files dex_files() const;
+  it_dex_files dex_files() LIEF_LIFETIMEBOUND;
+  it_const_dex_files dex_files() const LIEF_LIFETIMEBOUND;

   dex2dex_info_t dex2dex_info() const;

@@ -68,7 +69,8 @@ class LIEF_API File : public Object {

   ~File() override;

-  LIEF_API friend std::ostream& operator<<(std::ostream& os, const File& vdex_file);
+  LIEF_API friend std::ostream& operator<<(std::ostream& os,
+                                           const File& vdex_file);

   private:
   File();
diff --git a/deps/LIEF/include/LIEF/VDEX/Header.hpp b/deps/LIEF/include/LIEF/VDEX/Header.hpp
index f97e5125fdb..b91d56c0a60 100644
--- a/deps/LIEF/include/LIEF/VDEX/Header.hpp
+++ b/deps/LIEF/include/LIEF/VDEX/Header.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/deps/LIEF/include/LIEF/VDEX/Parser.hpp b/deps/LIEF/include/LIEF/VDEX/Parser.hpp
index d7c05a73570..9d6afeb4f5d 100644
--- a/deps/LIEF/include/LIEF/VDEX/Parser.hpp
+++ b/deps/LIEF/include/LIEF/VDEX/Parser.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -28,7 +28,7 @@ class VectorStream;
 namespace VDEX {
 class File;

-/// Class which parse an VDEX file and transform into a VDEX::File object
+/// Class which parses a VDEX file and transforms it into a VDEX::File object
 class LIEF_API Parser {
   public:
   static std::unique_ptr<File> parse(const std::string& file);
@@ -36,7 +36,7 @@ class LIEF_API Parser {
                                      const std::string& name = "");

   Parser& operator=(const Parser& copy) = delete;
-  Parser(const Parser& copy)            = delete;
+  Parser(const Parser& copy) = delete;

   private:
   Parser();
diff --git a/deps/LIEF/include/LIEF/VDEX/hash.hpp b/deps/LIEF/include/LIEF/VDEX/hash.hpp
index f9d03fd4273..fcf7e2ae4a3 100644
--- a/deps/LIEF/include/LIEF/VDEX/hash.hpp
+++ b/deps/LIEF/include/LIEF/VDEX/hash.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -33,7 +33,7 @@ class LIEF_API Hash : public LIEF::Hash {
   using LIEF::Hash::visit;

   public:
-  void visit(const File& file)     override;
+  void visit(const File& file) override;
   void visit(const Header& header) override;

   ~Hash() override;
diff --git a/deps/LIEF/include/LIEF/VDEX/json.hpp b/deps/LIEF/include/LIEF/VDEX/json.hpp
index 74644d4be6b..2de70a8c10f 100644
--- a/deps/LIEF/include/LIEF/VDEX/json.hpp
+++ b/deps/LIEF/include/LIEF/VDEX/json.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/deps/LIEF/include/LIEF/VDEX/type_traits.hpp b/deps/LIEF/include/LIEF/VDEX/type_traits.hpp
index 5ae2f6ee357..e69b4c6e2d0 100644
--- a/deps/LIEF/include/LIEF/VDEX/type_traits.hpp
+++ b/deps/LIEF/include/LIEF/VDEX/type_traits.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/deps/LIEF/include/LIEF/VDEX/utils.hpp b/deps/LIEF/include/LIEF/VDEX/utils.hpp
index 71f48f7fcc6..3a68ef8dbde 100644
--- a/deps/LIEF/include/LIEF/VDEX/utils.hpp
+++ b/deps/LIEF/include/LIEF/VDEX/utils.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -29,10 +29,10 @@
 namespace LIEF {
 namespace VDEX {

-/// Check if the given file is an VDEX one.
+/// Check if the given file is a VDEX one.
 LIEF_API bool is_vdex(const std::string& file);

-/// Check if the given raw data is an VDEX one.
+/// Check if the given raw data is a VDEX one.
 LIEF_API bool is_vdex(const std::vector<uint8_t>& raw);

 /// Return the VDEX version of the given file
diff --git a/deps/LIEF/include/LIEF/Visitor.hpp b/deps/LIEF/include/LIEF/Visitor.hpp
index 9c0b57ca2f6..fa4c2a53cc9 100644
--- a/deps/LIEF/include/LIEF/Visitor.hpp
+++ b/deps/LIEF/include/LIEF/Visitor.hpp
@@ -1,18 +1,18 @@
-/* Copyright 2017 - 2025 R. Thomas
-* Copyright 2017 - 2025 Quarkslab
-*
-* 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.
-*/
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
+ *
+ * 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.
+ */
 #ifndef LIEF_VISITOR_H
 #define LIEF_VISITOR_H
 #include <set>
@@ -106,6 +106,8 @@ LIEF_ELF_FORWARD(DynamicEntry)
 LIEF_ELF_FORWARD(DynamicEntryArray)
 LIEF_ELF_FORWARD(DynamicEntryLibrary)
 LIEF_ELF_FORWARD(DynamicSharedObject)
+LIEF_ELF_FORWARD(DynamicEntryAuxiliary)
+LIEF_ELF_FORWARD(DynamicEntryFilter)
 LIEF_ELF_FORWARD(DynamicEntryRunPath)
 LIEF_ELF_FORWARD(DynamicEntryRpath)
 LIEF_ELF_FORWARD(DynamicEntryFlags)
@@ -248,6 +250,8 @@ class LIEF_API Visitor {
   LIEF_ELF_VISITABLE(DynamicEntryArray)
   LIEF_ELF_VISITABLE(DynamicEntryLibrary)
   LIEF_ELF_VISITABLE(DynamicSharedObject)
+  LIEF_ELF_VISITABLE(DynamicEntryAuxiliary)
+  LIEF_ELF_VISITABLE(DynamicEntryFilter)
   LIEF_ELF_VISITABLE(DynamicEntryRunPath)
   LIEF_ELF_VISITABLE(DynamicEntryRpath)
   LIEF_ELF_VISITABLE(DynamicEntryFlags)
@@ -279,10 +283,10 @@ class LIEF_API Visitor {
   /// Method to visit a LIEF::PE::DosHeader
   LIEF_PE_VISITABLE(DosHeader)

-  /// Method to visit a LIEF::PE:RichHeader
+  /// Method to visit a LIEF::PE::RichHeader
   LIEF_PE_VISITABLE(RichHeader)

-  /// Method to visit a LIEF::PE:RichEntry
+  /// Method to visit a LIEF::PE::RichEntry
   LIEF_PE_VISITABLE(RichEntry)

   /// Method to visit a LIEF::PE::Header
@@ -342,7 +346,7 @@ class LIEF_API Visitor {
   /// Method to visit a LIEF::PE::ResourceDirectory
   LIEF_PE_VISITABLE(ResourceDirectory)

-  /// Method to visit a LIEF::PE::ResourceVersion
+  /// Method to visit a LIEF::PE::ResourcesManager
   LIEF_PE_VISITABLE(ResourcesManager)

   /// Method to visit a LIEF::PE::ResourceVersion
@@ -548,16 +552,16 @@ class LIEF_API Visitor {
   /// Method to visit a LIEF::MachO::DyldEnvironment
   LIEF_MACHO_VISITABLE(DyldEnvironment)

-  /// Method to visit a LIEF::MachO::DyldEnvironment
+  /// Method to visit a LIEF::MachO::EncryptionInfo
   LIEF_MACHO_VISITABLE(EncryptionInfo)

-  /// Method to visit a LIEF::MachO:BuildVersion:
+  /// Method to visit a LIEF::MachO::BuildVersion
   LIEF_MACHO_VISITABLE(BuildVersion)

-  /// Method to visit a LIEF::MachO:BuildToolVersion:
+  /// Method to visit a LIEF::MachO::BuildToolVersion
   LIEF_MACHO_VISITABLE(BuildToolVersion)

-  /// Method to visit a LIEF::MachO:BuildToolVersion:
+  /// Method to visit a LIEF::MachO::FilesetCommand
   LIEF_MACHO_VISITABLE(FilesetCommand)

   /// Method to visit a LIEF::MachO::CodeSignatureDir
@@ -597,7 +601,7 @@ class LIEF_API Visitor {
   /// Method to visit a LIEF::DEX::File
   LIEF_DEX_VISITABLE(File)

-/// Method to visit a LIEF::DEX::Field
+  /// Method to visit a LIEF::DEX::Field
   LIEF_DEX_VISITABLE(Field)

   /// Method to visit a LIEF::DEX::Method
@@ -615,13 +619,13 @@ class LIEF_API Visitor {
   /// Method to visit a LIEF::DEX::Type
   LIEF_DEX_VISITABLE(Type)

-  /// Method to visit a LIEF::DEX:Prototype:
+  /// Method to visit a LIEF::DEX::Prototype
   LIEF_DEX_VISITABLE(Prototype)

-  /// Method to visit a LIEF::DEX:MapList:
+  /// Method to visit a LIEF::DEX::MapList
   LIEF_DEX_VISITABLE(MapList)

-  /// Method to visit a LIEF::DEX:MapItem:
+  /// Method to visit a LIEF::DEX::MapItem
   LIEF_DEX_VISITABLE(MapItem)

   // VDEX part
@@ -651,11 +655,10 @@ class LIEF_API Visitor {
 };


-
 template<typename Arg1, typename... Args>
 void Visitor::operator()(Arg1&& arg1, Args&&... args) {
   dispatch(std::forward<Arg1>(arg1));
-  operator()(std::forward<Args>(args)... );
+  operator()(std::forward<Args>(args)...);
 }

 template<class T>
diff --git a/deps/LIEF/include/LIEF/asm/AssemblerConfig.hpp b/deps/LIEF/include/LIEF/asm/AssemblerConfig.hpp
index c9d5b963e38..73c9831d342 100644
--- a/deps/LIEF/include/LIEF/asm/AssemblerConfig.hpp
+++ b/deps/LIEF/include/LIEF/asm/AssemblerConfig.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -30,11 +30,11 @@ class LIEF_API AssemblerConfig {
   public:
   AssemblerConfig() = default;

-  AssemblerConfig(const AssemblerConfig &) = default;
-  AssemblerConfig &operator=(const AssemblerConfig &) = default;
+  AssemblerConfig(const AssemblerConfig&) = default;
+  AssemblerConfig& operator=(const AssemblerConfig&) = default;

-  AssemblerConfig(AssemblerConfig &&) = default;
-  AssemblerConfig &operator=(AssemblerConfig &&) = default;
+  AssemblerConfig(AssemblerConfig&&) = default;
+  AssemblerConfig& operator=(AssemblerConfig&&) = default;

   /// The different supported dialects
   enum class DIALECT {
@@ -65,8 +65,8 @@ class LIEF_API AssemblerConfig {
   /// 0x1003: call _my_function
   /// ```
   ///
-  /// The function `_my_function` will remain undefined unless we return its address
-  /// in `resolve_symbol()`:
+  /// The function `_my_function` will remain undefined unless we return its
+  /// address in `resolve_symbol()`:
   ///
   /// ```cpp
   /// class MyConfig : public AssemblerConfig {
diff --git a/deps/LIEF/include/LIEF/asm/Engine.hpp b/deps/LIEF/include/LIEF/asm/Engine.hpp
index 291752a2a67..9e339872341 100644
--- a/deps/LIEF/include/LIEF/asm/Engine.hpp
+++ b/deps/LIEF/include/LIEF/asm/Engine.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -16,6 +16,7 @@
 #define LIEF_ASM_ENGINE_H
 #include "LIEF/visibility.h"
 #include "LIEF/iterators.hpp"
+#include "LIEF/compiler_attributes.hpp"

 #include "LIEF/asm/Instruction.hpp"
 #include "LIEF/asm/AssemblerConfig.hpp"
@@ -51,34 +52,34 @@ class LIEF_API Engine {
   /// parameter.
   instructions_it disassemble(const uint8_t* buffer, size_t size, uint64_t addr);

-  /// Disassemble the given vector of bytes with the address specified in the second
-  /// parameter.
+  /// Disassemble the given vector of bytes with the address specified in the
+  /// second parameter.
   instructions_it disassemble(const std::vector<uint8_t>& bytes, uint64_t addr) {
     return disassemble(bytes.data(), bytes.size(), addr);
   }

-  std::vector<uint8_t> assemble(uint64_t address, const std::string& Asm,
-      AssemblerConfig& config = AssemblerConfig::default_config());
+  std::vector<uint8_t>
+      assemble(uint64_t address, const std::string& Asm,
+               AssemblerConfig& config = AssemblerConfig::default_config());

-  std::vector<uint8_t> assemble(uint64_t address, const std::string& Asm,
-      LIEF::Binary& bin, AssemblerConfig& config = AssemblerConfig::default_config());
+  std::vector<uint8_t>
+      assemble(uint64_t address, const std::string& Asm, LIEF::Binary& bin,
+               AssemblerConfig& config = AssemblerConfig::default_config());

-  std::vector<uint8_t> assemble(uint64_t address, const llvm::MCInst& inst,
-                                LIEF::Binary& bin);
+  std::vector<uint8_t> assemble(const llvm::MCInst& inst);

-  std::vector<uint8_t> assemble(
-      uint64_t address, const std::vector<llvm::MCInst>& inst, LIEF::Binary& bin);
+  std::vector<uint8_t> assemble(const std::vector<llvm::MCInst>& inst);

   ~Engine();

-  /// \private
-  LIEF_LOCAL const details::Engine& impl() const {
+  /// @private
+  LIEF_LOCAL const details::Engine& impl() const LIEF_LIFETIMEBOUND {
     assert(impl_ != nullptr);
     return *impl_;
   }

-  /// \private
-  LIEF_LOCAL details::Engine& impl() {
+  /// @private
+  LIEF_LOCAL details::Engine& impl() LIEF_LIFETIMEBOUND {
     assert(impl_ != nullptr);
     return *impl_;
   }
diff --git a/deps/LIEF/include/LIEF/asm/Instruction.hpp b/deps/LIEF/include/LIEF/asm/Instruction.hpp
index 7570af8fc61..8e952b57a02 100644
--- a/deps/LIEF/include/LIEF/asm/Instruction.hpp
+++ b/deps/LIEF/include/LIEF/asm/Instruction.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -16,6 +16,7 @@
 #define LIEF_ASM_INST_H
 #include "LIEF/visibility.h"
 #include "LIEF/iterators.hpp"
+#include "LIEF/compiler_attributes.hpp"
 #include "LIEF/errors.hpp"

 #include <ostream>
@@ -37,13 +38,14 @@ class InstructionIt;
 /// This class represents an assembly instruction
 class LIEF_API Instruction {
   public:
-  /// **Lazy-forward** iterator that outputs Instruction
-  class Iterator final :
-    public iterator_facade_base<Iterator, std::forward_iterator_tag, std::unique_ptr<Instruction>,
-                                std::ptrdiff_t, Instruction*, std::unique_ptr<Instruction>>
-  {
+  /// **Lazy-forward** iterator that disassembles instructions on demand.
+  class Iterator final
+    : public iterator_facade_base<Iterator, std::forward_iterator_tag, Instruction,
+                                  std::ptrdiff_t, const Instruction*,
+                                  const Instruction&> {
     public:
     using implementation = details::InstructionIt;
+    using iterator_facade_base::operator++;

     LIEF_API Iterator();

@@ -56,6 +58,7 @@ class LIEF_API Instruction {

     LIEF_API ~Iterator();

+    // NOLINTNEXTLINE(bugprone-derived-method-shadowing-base-method)
     LIEF_API Iterator& operator++();

     friend LIEF_API bool operator==(const Iterator& LHS, const Iterator& RHS);
@@ -64,18 +67,27 @@ class LIEF_API Instruction {
       return !(LHS == RHS);
     }

-    /// Disassemble and output an Instruction at the current iterator's
-    /// position.
-    LIEF_API std::unique_ptr<Instruction> operator*() const;
+    LIEF_API const Instruction& operator*() const LIEF_LIFETIMEBOUND;
+
+    // NOLINTNEXTLINE(bugprone-derived-method-shadowing-base-method)
+    LIEF_API const Instruction* operator->() const LIEF_LIFETIMEBOUND;
+
+    /// Transfer ownership of the instruction at the current position to the
+    /// caller. Returns `nullptr` if the iterator is past-the-end.
+    LIEF_API std::unique_ptr<Instruction> yield();

     private:
+    void load() const;
+
     std::unique_ptr<details::InstructionIt> impl_;
+    mutable std::unique_ptr<Instruction> cached_;
   };
+
   public:
   /// Memory operation flags
   enum class MemoryAccess : uint8_t {
-    NONE  = 0,
-    READ  = 1 << 0,
+    NONE = 0,
+    READ = 1 << 0,
     WRITE = 1 << 1,
     READ_WRITE = READ | WRITE,
   };
@@ -87,7 +99,7 @@ class LIEF_API Instruction {
   size_t size() const;

   /// Raw bytes of the current instruction
-  const std::vector<uint8_t>& raw() const;
+  const std::vector<uint8_t>& raw() const LIEF_LIFETIMEBOUND;

   /// Instruction mnemonic (e.g. `br`)
   std::string mnemonic() const;
@@ -123,14 +135,14 @@ class LIEF_API Instruction {
   bool is_trap() const;

   /// True if the instruction prevents executing the instruction
-  /// that immediatly follows the current. This includes return
+  /// that immediately follows the current. This includes return
   /// or unconditional branch instructions
   bool is_barrier() const;

   /// True if the instruction is a return
   bool is_return() const;

-  /// True if the instruction is and indirect branch.
+  /// True if the instruction is an indirect branch.
   ///
   /// This includes instructions that branch through a register (e.g. `jmp rax`,
   /// `br x1`).
@@ -162,9 +174,9 @@ class LIEF_API Instruction {

   /// Return the underlying llvm::MCInst implementation.
   ///
-  /// \warning Because of ABI compatibility, this MCInst can **only be used**
+  /// @warning Because of ABI compatibility, this MCInst can **only be used**
   ///          with the **same** version of LLVM used by LIEF (see documentation)
-  const llvm::MCInst& mcinst() const;
+  const llvm::MCInst& mcinst() const LIEF_LIFETIMEBOUND;

   /// This function can be used to **down cast** an Instruction instance:
   ///
@@ -175,7 +187,7 @@ class LIEF_API Instruction {
   /// }
   /// ```
   template<class T>
-  const T* as() const {
+  const T* as() const LIEF_LIFETIMEBOUND {
     static_assert(std::is_base_of<Instruction, T>::value,
                   "Require Instruction inheritance");
     if (T::classof(this)) {
@@ -184,25 +196,26 @@ class LIEF_API Instruction {
     return nullptr;
   }

-  friend LIEF_API std::ostream& operator<<(std::ostream& os, const Instruction& inst) {
+  friend LIEF_API std::ostream& operator<<(std::ostream& os,
+                                           const Instruction& inst) {
     os << inst.to_string();
     return os;
   }

   virtual ~Instruction();

-  /// \private
+  /// @private
   static LIEF_LOCAL std::unique_ptr<Instruction>
-    create(std::unique_ptr<details::Instruction> impl);
+      create(std::unique_ptr<details::Instruction> impl);

-  /// \private
-  LIEF_LOCAL const details::Instruction& impl() const {
+  /// @private
+  LIEF_LOCAL const details::Instruction& impl() const LIEF_LIFETIMEBOUND {
     assert(impl_ != nullptr);
     return *impl_;
   }

-  /// \private
-  LIEF_LOCAL details::Instruction& impl() {
+  /// @private
+  LIEF_LOCAL details::Instruction& impl() LIEF_LIFETIMEBOUND {
     assert(impl_ != nullptr);
     return *impl_;
   }
diff --git a/deps/LIEF/include/LIEF/asm/aarch64.hpp b/deps/LIEF/include/LIEF/asm/aarch64.hpp
index 6cd62d1ffdf..63803c6ab94 100644
--- a/deps/LIEF/include/LIEF/asm/aarch64.hpp
+++ b/deps/LIEF/include/LIEF/asm/aarch64.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/deps/LIEF/include/LIEF/asm/aarch64/Instruction.hpp b/deps/LIEF/include/LIEF/asm/aarch64/Instruction.hpp
index 6aadc16acff..7ca78e599d7 100644
--- a/deps/LIEF/include/LIEF/asm/aarch64/Instruction.hpp
+++ b/deps/LIEF/include/LIEF/asm/aarch64/Instruction.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -15,6 +15,7 @@
 #ifndef LIEF_ASM_AARCH64_INST_H
 #define LIEF_ASM_AARCH64_INST_H
 #include "LIEF/visibility.h"
+#include "LIEF/compiler_attributes.hpp"

 #include "LIEF/asm/Instruction.hpp"
 #include "LIEF/asm/aarch64/opcodes.hpp"
@@ -37,7 +38,7 @@ class LIEF_API Instruction : public assembly::Instruction {
   OPCODE opcode() const;

   /// Iterator over the operands of the current instruction
-  operands_it operands() const;
+  operands_it operands() const LIEF_LIFETIMEBOUND;

   /// True if `inst` is an **effective** instance of aarch64::Instruction
   static bool classof(const assembly::Instruction* inst);
diff --git a/deps/LIEF/include/LIEF/asm/aarch64/Operand.hpp b/deps/LIEF/include/LIEF/asm/aarch64/Operand.hpp
index f37c4aae4d0..968c2cbf21d 100644
--- a/deps/LIEF/include/LIEF/asm/aarch64/Operand.hpp
+++ b/deps/LIEF/include/LIEF/asm/aarch64/Operand.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -15,6 +15,7 @@
 #ifndef LIEF_ASM_AARCH64_OPERAND_H
 #define LIEF_ASM_AARCH64_OPERAND_H
 #include "LIEF/visibility.h"
+#include "LIEF/compiler_attributes.hpp"
 #include "LIEF/iterators.hpp"

 #include <memory>
@@ -35,14 +36,13 @@ class OperandIt;
 /// This class represents an operand for an AArch64 instruction
 class LIEF_API Operand {
   public:
-
-  /// **Forward** iterator that outputs aarch64 Operand as `std::unique_ptr`
-  class Iterator final :
-    public iterator_facade_base<Iterator, std::forward_iterator_tag, std::unique_ptr<Operand>,
-                                std::ptrdiff_t, Operand*, std::unique_ptr<Operand>>
-  {
+  /// **Forward** iterator that lazily disassembles aarch64 Operand.
+  class Iterator final
+    : public iterator_facade_base<Iterator, std::forward_iterator_tag, Operand,
+                                  std::ptrdiff_t, const Operand*, const Operand&> {
     public:
     using implementation = details::OperandIt;
+    using iterator_facade_base::operator++;

     LIEF_API Iterator();

@@ -55,6 +55,7 @@ class LIEF_API Operand {

     LIEF_API ~Iterator();

+    // NOLINTNEXTLINE(bugprone-derived-method-shadowing-base-method)
     LIEF_API Iterator& operator++();

     friend LIEF_API bool operator==(const Iterator& LHS, const Iterator& RHS);
@@ -63,10 +64,20 @@ class LIEF_API Operand {
       return !(LHS == RHS);
     }

-    LIEF_API std::unique_ptr<Operand> operator*() const;
+    LIEF_API const Operand& operator*() const LIEF_LIFETIMEBOUND;
+
+    // NOLINTNEXTLINE(bugprone-derived-method-shadowing-base-method)
+    LIEF_API const Operand* operator->() const LIEF_LIFETIMEBOUND;
+
+    /// Transfer ownership of the operand at the current position to the
+    /// caller. Returns `nullptr` if the iterator is past-the-end.
+    LIEF_API std::unique_ptr<Operand> yield();

     private:
+    void load() const;
+
     std::unique_ptr<details::OperandIt> impl_;
+    mutable std::unique_ptr<Operand> cached_;
   };

   /// Pretty representation of the operand
@@ -81,7 +92,7 @@ class LIEF_API Operand {
   /// }
   /// ```
   template<class T>
-  const T* as() const {
+  const T* as() const LIEF_LIFETIMEBOUND {
     static_assert(std::is_base_of<Operand, T>::value,
                   "Require Operand inheritance");
     if (T::classof(this)) {
@@ -92,18 +103,18 @@ class LIEF_API Operand {

   virtual ~Operand();

-  /// \private
+  /// @private
   static LIEF_LOCAL std::unique_ptr<Operand>
-    create(std::unique_ptr<details::Operand> impl);
+      create(std::unique_ptr<details::Operand> impl);

-  /// \private
-  LIEF_LOCAL const details::Operand& impl() const {
+  /// @private
+  LIEF_LOCAL const details::Operand& impl() const LIEF_LIFETIMEBOUND {
     assert(impl_ != nullptr);
     return *impl_;
   }

-  /// \private
-  LIEF_LOCAL details::Operand& impl() {
+  /// @private
+  LIEF_LOCAL details::Operand& impl() LIEF_LIFETIMEBOUND {
     assert(impl_ != nullptr);
     return *impl_;
   }
diff --git a/deps/LIEF/include/LIEF/asm/aarch64/opcodes.hpp b/deps/LIEF/include/LIEF/asm/aarch64/opcodes.hpp
index 79161dcf3bd..61f01f1a9ae 100644
--- a/deps/LIEF/include/LIEF/asm/aarch64/opcodes.hpp
+++ b/deps/LIEF/include/LIEF/asm/aarch64/opcodes.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -15,7 +15,7 @@
 #ifndef LIEF_ASM_AARCH64_OPCODE_H
 #define LIEF_ASM_AARCH64_OPCODE_H

-/* Generated from LLVM: 21.1.0 */
+/* Generated from LLVM: 22.1.8 */

 namespace LIEF {
 namespace assembly {
@@ -42,8986 +42,9121 @@ enum class OPCODE {
   DBG_LABEL = 18,
   REG_SEQUENCE = 19,
   COPY = 20,
-  BUNDLE = 21,
-  LIFETIME_START = 22,
-  LIFETIME_END = 23,
-  PSEUDO_PROBE = 24,
-  ARITH_FENCE = 25,
-  STACKMAP = 26,
-  FENTRY_CALL = 27,
-  PATCHPOINT = 28,
-  LOAD_STACK_GUARD = 29,
-  PREALLOCATED_SETUP = 30,
-  PREALLOCATED_ARG = 31,
-  STATEPOINT = 32,
-  LOCAL_ESCAPE = 33,
-  FAULTING_OP = 34,
-  PATCHABLE_OP = 35,
-  PATCHABLE_FUNCTION_ENTER = 36,
-  PATCHABLE_RET = 37,
-  PATCHABLE_FUNCTION_EXIT = 38,
-  PATCHABLE_TAIL_CALL = 39,
-  PATCHABLE_EVENT_CALL = 40,
-  PATCHABLE_TYPED_EVENT_CALL = 41,
-  ICALL_BRANCH_FUNNEL = 42,
-  FAKE_USE = 43,
-  MEMBARRIER = 44,
-  JUMP_TABLE_DEBUG_INFO = 45,
-  CONVERGENCECTRL_ENTRY = 46,
-  CONVERGENCECTRL_ANCHOR = 47,
-  CONVERGENCECTRL_LOOP = 48,
-  CONVERGENCECTRL_GLUE = 49,
-  G_ASSERT_SEXT = 50,
-  G_ASSERT_ZEXT = 51,
-  G_ASSERT_ALIGN = 52,
-  G_ADD = 53,
-  G_SUB = 54,
-  G_MUL = 55,
-  G_SDIV = 56,
-  G_UDIV = 57,
-  G_SREM = 58,
-  G_UREM = 59,
-  G_SDIVREM = 60,
-  G_UDIVREM = 61,
-  G_AND = 62,
-  G_OR = 63,
-  G_XOR = 64,
-  G_ABDS = 65,
-  G_ABDU = 66,
-  G_IMPLICIT_DEF = 67,
-  G_PHI = 68,
-  G_FRAME_INDEX = 69,
-  G_GLOBAL_VALUE = 70,
-  G_PTRAUTH_GLOBAL_VALUE = 71,
-  G_CONSTANT_POOL = 72,
-  G_EXTRACT = 73,
-  G_UNMERGE_VALUES = 74,
-  G_INSERT = 75,
-  G_MERGE_VALUES = 76,
-  G_BUILD_VECTOR = 77,
-  G_BUILD_VECTOR_TRUNC = 78,
-  G_CONCAT_VECTORS = 79,
-  G_PTRTOINT = 80,
-  G_INTTOPTR = 81,
-  G_BITCAST = 82,
-  G_FREEZE = 83,
-  G_CONSTANT_FOLD_BARRIER = 84,
-  G_INTRINSIC_FPTRUNC_ROUND = 85,
-  G_INTRINSIC_TRUNC = 86,
-  G_INTRINSIC_ROUND = 87,
-  G_INTRINSIC_LRINT = 88,
-  G_INTRINSIC_LLRINT = 89,
-  G_INTRINSIC_ROUNDEVEN = 90,
-  G_READCYCLECOUNTER = 91,
-  G_READSTEADYCOUNTER = 92,
-  G_LOAD = 93,
-  G_SEXTLOAD = 94,
-  G_ZEXTLOAD = 95,
-  G_INDEXED_LOAD = 96,
-  G_INDEXED_SEXTLOAD = 97,
-  G_INDEXED_ZEXTLOAD = 98,
-  G_STORE = 99,
-  G_INDEXED_STORE = 100,
-  G_ATOMIC_CMPXCHG_WITH_SUCCESS = 101,
-  G_ATOMIC_CMPXCHG = 102,
-  G_ATOMICRMW_XCHG = 103,
-  G_ATOMICRMW_ADD = 104,
-  G_ATOMICRMW_SUB = 105,
-  G_ATOMICRMW_AND = 106,
-  G_ATOMICRMW_NAND = 107,
-  G_ATOMICRMW_OR = 108,
-  G_ATOMICRMW_XOR = 109,
-  G_ATOMICRMW_MAX = 110,
-  G_ATOMICRMW_MIN = 111,
-  G_ATOMICRMW_UMAX = 112,
-  G_ATOMICRMW_UMIN = 113,
-  G_ATOMICRMW_FADD = 114,
-  G_ATOMICRMW_FSUB = 115,
-  G_ATOMICRMW_FMAX = 116,
-  G_ATOMICRMW_FMIN = 117,
-  G_ATOMICRMW_FMAXIMUM = 118,
-  G_ATOMICRMW_FMINIMUM = 119,
-  G_ATOMICRMW_UINC_WRAP = 120,
-  G_ATOMICRMW_UDEC_WRAP = 121,
-  G_ATOMICRMW_USUB_COND = 122,
-  G_ATOMICRMW_USUB_SAT = 123,
-  G_FENCE = 124,
-  G_PREFETCH = 125,
-  G_BRCOND = 126,
-  G_BRINDIRECT = 127,
-  G_INVOKE_REGION_START = 128,
-  G_INTRINSIC = 129,
-  G_INTRINSIC_W_SIDE_EFFECTS = 130,
-  G_INTRINSIC_CONVERGENT = 131,
-  G_INTRINSIC_CONVERGENT_W_SIDE_EFFECTS = 132,
-  G_ANYEXT = 133,
-  G_TRUNC = 134,
-  G_TRUNC_SSAT_S = 135,
-  G_TRUNC_SSAT_U = 136,
-  G_TRUNC_USAT_U = 137,
-  G_CONSTANT = 138,
-  G_FCONSTANT = 139,
-  G_VASTART = 140,
-  G_VAARG = 141,
-  G_SEXT = 142,
-  G_SEXT_INREG = 143,
-  G_ZEXT = 144,
-  G_SHL = 145,
-  G_LSHR = 146,
-  G_ASHR = 147,
-  G_FSHL = 148,
-  G_FSHR = 149,
-  G_ROTR = 150,
-  G_ROTL = 151,
-  G_ICMP = 152,
-  G_FCMP = 153,
-  G_SCMP = 154,
-  G_UCMP = 155,
-  G_SELECT = 156,
-  G_UADDO = 157,
-  G_UADDE = 158,
-  G_USUBO = 159,
-  G_USUBE = 160,
-  G_SADDO = 161,
-  G_SADDE = 162,
-  G_SSUBO = 163,
-  G_SSUBE = 164,
-  G_UMULO = 165,
-  G_SMULO = 166,
-  G_UMULH = 167,
-  G_SMULH = 168,
-  G_UADDSAT = 169,
-  G_SADDSAT = 170,
-  G_USUBSAT = 171,
-  G_SSUBSAT = 172,
-  G_USHLSAT = 173,
-  G_SSHLSAT = 174,
-  G_SMULFIX = 175,
-  G_UMULFIX = 176,
-  G_SMULFIXSAT = 177,
-  G_UMULFIXSAT = 178,
-  G_SDIVFIX = 179,
-  G_UDIVFIX = 180,
-  G_SDIVFIXSAT = 181,
-  G_UDIVFIXSAT = 182,
-  G_FADD = 183,
-  G_FSUB = 184,
-  G_FMUL = 185,
-  G_FMA = 186,
-  G_FMAD = 187,
-  G_FDIV = 188,
-  G_FREM = 189,
-  G_FPOW = 190,
-  G_FPOWI = 191,
-  G_FEXP = 192,
-  G_FEXP2 = 193,
-  G_FEXP10 = 194,
-  G_FLOG = 195,
-  G_FLOG2 = 196,
-  G_FLOG10 = 197,
-  G_FLDEXP = 198,
-  G_FFREXP = 199,
-  G_FNEG = 200,
-  G_FPEXT = 201,
-  G_FPTRUNC = 202,
-  G_FPTOSI = 203,
-  G_FPTOUI = 204,
-  G_SITOFP = 205,
-  G_UITOFP = 206,
-  G_FPTOSI_SAT = 207,
-  G_FPTOUI_SAT = 208,
-  G_FABS = 209,
-  G_FCOPYSIGN = 210,
-  G_IS_FPCLASS = 211,
-  G_FCANONICALIZE = 212,
-  G_FMINNUM = 213,
-  G_FMAXNUM = 214,
-  G_FMINNUM_IEEE = 215,
-  G_FMAXNUM_IEEE = 216,
-  G_FMINIMUM = 217,
-  G_FMAXIMUM = 218,
-  G_FMINIMUMNUM = 219,
-  G_FMAXIMUMNUM = 220,
-  G_GET_FPENV = 221,
-  G_SET_FPENV = 222,
-  G_RESET_FPENV = 223,
-  G_GET_FPMODE = 224,
-  G_SET_FPMODE = 225,
-  G_RESET_FPMODE = 226,
-  G_GET_ROUNDING = 227,
-  G_PTR_ADD = 228,
-  G_PTRMASK = 229,
-  G_SMIN = 230,
-  G_SMAX = 231,
-  G_UMIN = 232,
-  G_UMAX = 233,
-  G_ABS = 234,
-  G_LROUND = 235,
-  G_LLROUND = 236,
-  G_BR = 237,
-  G_BRJT = 238,
-  G_VSCALE = 239,
-  G_INSERT_SUBVECTOR = 240,
-  G_EXTRACT_SUBVECTOR = 241,
-  G_INSERT_VECTOR_ELT = 242,
-  G_EXTRACT_VECTOR_ELT = 243,
-  G_SHUFFLE_VECTOR = 244,
-  G_SPLAT_VECTOR = 245,
-  G_STEP_VECTOR = 246,
-  G_VECTOR_COMPRESS = 247,
-  G_CTTZ = 248,
-  G_CTTZ_ZERO_UNDEF = 249,
-  G_CTLZ = 250,
-  G_CTLZ_ZERO_UNDEF = 251,
-  G_CTPOP = 252,
-  G_BSWAP = 253,
-  G_BITREVERSE = 254,
-  G_FCEIL = 255,
-  G_FCOS = 256,
-  G_FSIN = 257,
-  G_FSINCOS = 258,
-  G_FTAN = 259,
-  G_FACOS = 260,
-  G_FASIN = 261,
-  G_FATAN = 262,
-  G_FATAN2 = 263,
-  G_FCOSH = 264,
-  G_FSINH = 265,
-  G_FTANH = 266,
-  G_FSQRT = 267,
-  G_FFLOOR = 268,
-  G_FRINT = 269,
-  G_FNEARBYINT = 270,
-  G_ADDRSPACE_CAST = 271,
-  G_BLOCK_ADDR = 272,
-  G_JUMP_TABLE = 273,
-  G_DYN_STACKALLOC = 274,
-  G_STACKSAVE = 275,
-  G_STACKRESTORE = 276,
-  G_STRICT_FADD = 277,
-  G_STRICT_FSUB = 278,
-  G_STRICT_FMUL = 279,
-  G_STRICT_FDIV = 280,
-  G_STRICT_FREM = 281,
-  G_STRICT_FMA = 282,
-  G_STRICT_FSQRT = 283,
-  G_STRICT_FLDEXP = 284,
-  G_READ_REGISTER = 285,
-  G_WRITE_REGISTER = 286,
-  G_MEMCPY = 287,
-  G_MEMCPY_INLINE = 288,
-  G_MEMMOVE = 289,
-  G_MEMSET = 290,
-  G_BZERO = 291,
-  G_TRAP = 292,
-  G_DEBUGTRAP = 293,
-  G_UBSANTRAP = 294,
-  G_VECREDUCE_SEQ_FADD = 295,
-  G_VECREDUCE_SEQ_FMUL = 296,
-  G_VECREDUCE_FADD = 297,
-  G_VECREDUCE_FMUL = 298,
-  G_VECREDUCE_FMAX = 299,
-  G_VECREDUCE_FMIN = 300,
-  G_VECREDUCE_FMAXIMUM = 301,
-  G_VECREDUCE_FMINIMUM = 302,
-  G_VECREDUCE_ADD = 303,
-  G_VECREDUCE_MUL = 304,
-  G_VECREDUCE_AND = 305,
-  G_VECREDUCE_OR = 306,
-  G_VECREDUCE_XOR = 307,
-  G_VECREDUCE_SMAX = 308,
-  G_VECREDUCE_SMIN = 309,
-  G_VECREDUCE_UMAX = 310,
-  G_VECREDUCE_UMIN = 311,
-  G_SBFX = 312,
-  G_UBFX = 313,
-  ABS_ZPmZ_B_UNDEF = 314,
-  ABS_ZPmZ_D_UNDEF = 315,
-  ABS_ZPmZ_H_UNDEF = 316,
-  ABS_ZPmZ_S_UNDEF = 317,
-  ADDHA_MPPZ_D_PSEUDO_D = 318,
-  ADDHA_MPPZ_S_PSEUDO_S = 319,
-  ADDSWrr = 320,
-  ADDSXrr = 321,
-  ADDVA_MPPZ_D_PSEUDO_D = 322,
-  ADDVA_MPPZ_S_PSEUDO_S = 323,
-  ADDWrr = 324,
-  ADDXrr = 325,
-  ADD_VG2_M2Z2Z_D_PSEUDO = 326,
-  ADD_VG2_M2Z2Z_S_PSEUDO = 327,
-  ADD_VG2_M2ZZ_D_PSEUDO = 328,
-  ADD_VG2_M2ZZ_S_PSEUDO = 329,
-  ADD_VG2_M2Z_D_PSEUDO = 330,
-  ADD_VG2_M2Z_S_PSEUDO = 331,
-  ADD_VG4_M4Z4Z_D_PSEUDO = 332,
-  ADD_VG4_M4Z4Z_S_PSEUDO = 333,
-  ADD_VG4_M4ZZ_D_PSEUDO = 334,
-  ADD_VG4_M4ZZ_S_PSEUDO = 335,
-  ADD_VG4_M4Z_D_PSEUDO = 336,
-  ADD_VG4_M4Z_S_PSEUDO = 337,
-  ADD_ZPZZ_B_ZERO = 338,
-  ADD_ZPZZ_D_ZERO = 339,
-  ADD_ZPZZ_H_ZERO = 340,
-  ADD_ZPZZ_S_ZERO = 341,
-  ADDlowTLS = 342,
-  ADJCALLSTACKDOWN = 343,
-  ADJCALLSTACKUP = 344,
-  AESIMCrrTied = 345,
-  AESMCrrTied = 346,
-  ANDSWrr = 347,
-  ANDSXrr = 348,
-  ANDWrr = 349,
-  ANDXrr = 350,
-  AND_ZPZZ_B_ZERO = 351,
-  AND_ZPZZ_D_ZERO = 352,
-  AND_ZPZZ_H_ZERO = 353,
-  AND_ZPZZ_S_ZERO = 354,
-  ASRD_ZPZI_B_ZERO = 355,
-  ASRD_ZPZI_D_ZERO = 356,
-  ASRD_ZPZI_H_ZERO = 357,
-  ASRD_ZPZI_S_ZERO = 358,
-  ASR_ZPZI_B_UNDEF = 359,
-  ASR_ZPZI_B_ZERO = 360,
-  ASR_ZPZI_D_UNDEF = 361,
-  ASR_ZPZI_D_ZERO = 362,
-  ASR_ZPZI_H_UNDEF = 363,
-  ASR_ZPZI_H_ZERO = 364,
-  ASR_ZPZI_S_UNDEF = 365,
-  ASR_ZPZI_S_ZERO = 366,
-  ASR_ZPZZ_B_UNDEF = 367,
-  ASR_ZPZZ_B_ZERO = 368,
-  ASR_ZPZZ_D_UNDEF = 369,
-  ASR_ZPZZ_D_ZERO = 370,
-  ASR_ZPZZ_H_UNDEF = 371,
-  ASR_ZPZZ_H_ZERO = 372,
-  ASR_ZPZZ_S_UNDEF = 373,
-  ASR_ZPZZ_S_ZERO = 374,
-  AUTH_TCRETURN = 375,
-  AUTH_TCRETURN_BTI = 376,
-  AUTPAC = 377,
-  AUTx16x17 = 378,
-  AUTxMxN = 379,
-  AllocateSMESaveBuffer = 380,
-  AllocateZABuffer = 381,
-  BFADD_VG2_M2Z_H_PSEUDO = 382,
-  BFADD_VG4_M4Z_H_PSEUDO = 383,
-  BFADD_ZPZZ_UNDEF = 384,
-  BFADD_ZPZZ_ZERO = 385,
-  BFDOT_VG2_M2Z2Z_HtoS_PSEUDO = 386,
-  BFDOT_VG2_M2ZZI_HtoS_PSEUDO = 387,
-  BFDOT_VG2_M2ZZ_HtoS_PSEUDO = 388,
-  BFDOT_VG4_M4Z4Z_HtoS_PSEUDO = 389,
-  BFDOT_VG4_M4ZZI_HtoS_PSEUDO = 390,
-  BFDOT_VG4_M4ZZ_HtoS_PSEUDO = 391,
-  BFMAXNM_ZPZZ_UNDEF = 392,
-  BFMAXNM_ZPZZ_ZERO = 393,
-  BFMAX_ZPZZ_UNDEF = 394,
-  BFMAX_ZPZZ_ZERO = 395,
-  BFMINNM_ZPZZ_UNDEF = 396,
-  BFMINNM_ZPZZ_ZERO = 397,
-  BFMIN_ZPZZ_UNDEF = 398,
-  BFMIN_ZPZZ_ZERO = 399,
-  BFMLAL_MZZI_HtoS_PSEUDO = 400,
-  BFMLAL_MZZ_HtoS_PSEUDO = 401,
-  BFMLAL_VG2_M2Z2Z_HtoS_PSEUDO = 402,
-  BFMLAL_VG2_M2ZZI_HtoS_PSEUDO = 403,
-  BFMLAL_VG2_M2ZZ_HtoS_PSEUDO = 404,
-  BFMLAL_VG4_M4Z4Z_HtoS_PSEUDO = 405,
-  BFMLAL_VG4_M4ZZI_HtoS_PSEUDO = 406,
-  BFMLAL_VG4_M4ZZ_HtoS_PSEUDO = 407,
-  BFMLA_VG2_M2Z2Z_PSEUDO = 408,
-  BFMLA_VG2_M2ZZI_PSEUDO = 409,
-  BFMLA_VG2_M2ZZ_PSEUDO = 410,
-  BFMLA_VG4_M4Z4Z_PSEUDO = 411,
-  BFMLA_VG4_M4ZZI_PSEUDO = 412,
-  BFMLA_VG4_M4ZZ_PSEUDO = 413,
-  BFMLA_ZPZZZ_UNDEF = 414,
-  BFMLSL_MZZI_HtoS_PSEUDO = 415,
-  BFMLSL_MZZ_HtoS_PSEUDO = 416,
-  BFMLSL_VG2_M2Z2Z_HtoS_PSEUDO = 417,
-  BFMLSL_VG2_M2ZZI_HtoS_PSEUDO = 418,
-  BFMLSL_VG2_M2ZZ_HtoS_PSEUDO = 419,
-  BFMLSL_VG4_M4Z4Z_HtoS_PSEUDO = 420,
-  BFMLSL_VG4_M4ZZI_HtoS_PSEUDO = 421,
-  BFMLSL_VG4_M4ZZ_HtoS_PSEUDO = 422,
-  BFMLS_VG2_M2Z2Z_PSEUDO = 423,
-  BFMLS_VG2_M2ZZI_PSEUDO = 424,
-  BFMLS_VG2_M2ZZ_PSEUDO = 425,
-  BFMLS_VG4_M4Z4Z_PSEUDO = 426,
-  BFMLS_VG4_M4ZZI_PSEUDO = 427,
-  BFMLS_VG4_M4ZZ_PSEUDO = 428,
-  BFMLS_ZPZZZ_UNDEF = 429,
-  BFMOP4A_M2Z2Z_H_PSEUDO = 430,
-  BFMOP4A_M2Z2Z_S_PSEUDO = 431,
-  BFMOP4A_M2ZZ_H_PSEUDO = 432,
-  BFMOP4A_M2ZZ_S_PSEUDO = 433,
-  BFMOP4A_MZ2Z_H_PSEUDO = 434,
-  BFMOP4A_MZ2Z_S_PSEUDO = 435,
-  BFMOP4A_MZZ_H_PSEUDO = 436,
-  BFMOP4A_MZZ_S_PSEUDO = 437,
-  BFMOP4S_M2Z2Z_H_PSEUDO = 438,
-  BFMOP4S_M2Z2Z_S_PSEUDO = 439,
-  BFMOP4S_M2ZZ_H_PSEUDO = 440,
-  BFMOP4S_M2ZZ_S_PSEUDO = 441,
-  BFMOP4S_MZ2Z_H_PSEUDO = 442,
-  BFMOP4S_MZ2Z_S_PSEUDO = 443,
-  BFMOP4S_MZZ_H_PSEUDO = 444,
-  BFMOP4S_MZZ_S_PSEUDO = 445,
-  BFMOPA_MPPZZ_H_PSEUDO = 446,
-  BFMOPA_MPPZZ_PSEUDO = 447,
-  BFMOPS_MPPZZ_H_PSEUDO = 448,
-  BFMOPS_MPPZZ_PSEUDO = 449,
-  BFMUL_ZPZZ_UNDEF = 450,
-  BFMUL_ZPZZ_ZERO = 451,
-  BFSUB_VG2_M2Z_H_PSEUDO = 452,
-  BFSUB_VG4_M4Z_H_PSEUDO = 453,
-  BFSUB_ZPZZ_UNDEF = 454,
-  BFSUB_ZPZZ_ZERO = 455,
-  BFTMOPA_M2ZZZI_HtoH_PSEUDO = 456,
-  BFTMOPA_M2ZZZI_HtoS_PSEUDO = 457,
-  BFVDOT_VG2_M2ZZI_HtoS_PSEUDO = 458,
-  BICSWrr = 459,
-  BICSXrr = 460,
-  BICWrr = 461,
-  BICXrr = 462,
-  BIC_ZPZZ_B_ZERO = 463,
-  BIC_ZPZZ_D_ZERO = 464,
-  BIC_ZPZZ_H_ZERO = 465,
-  BIC_ZPZZ_S_ZERO = 466,
-  BLRA = 467,
-  BLRA_RVMARKER = 468,
-  BLRNoIP = 469,
-  BLR_BTI = 470,
-  BLR_RVMARKER = 471,
-  BLR_X16 = 472,
-  BMOPA_MPPZZ_S_PSEUDO = 473,
-  BMOPS_MPPZZ_S_PSEUDO = 474,
-  BRA = 475,
-  BR_JumpTable = 476,
-  BSPv16i8 = 477,
-  BSPv8i8 = 478,
-  CATCHRET = 479,
-  CBWPri = 480,
-  CBWPrr = 481,
-  CBXPri = 482,
-  CBXPrr = 483,
-  CLEANUPRET = 484,
-  CLS_ZPmZ_B_UNDEF = 485,
-  CLS_ZPmZ_D_UNDEF = 486,
-  CLS_ZPmZ_H_UNDEF = 487,
-  CLS_ZPmZ_S_UNDEF = 488,
-  CLZ_ZPmZ_B_UNDEF = 489,
-  CLZ_ZPmZ_D_UNDEF = 490,
-  CLZ_ZPmZ_H_UNDEF = 491,
-  CLZ_ZPmZ_S_UNDEF = 492,
-  CMP_SWAP_128 = 493,
-  CMP_SWAP_128_ACQUIRE = 494,
-  CMP_SWAP_128_MONOTONIC = 495,
-  CMP_SWAP_128_RELEASE = 496,
-  CMP_SWAP_16 = 497,
-  CMP_SWAP_32 = 498,
-  CMP_SWAP_64 = 499,
-  CMP_SWAP_8 = 500,
-  CNOT_ZPmZ_B_UNDEF = 501,
-  CNOT_ZPmZ_D_UNDEF = 502,
-  CNOT_ZPmZ_H_UNDEF = 503,
-  CNOT_ZPmZ_S_UNDEF = 504,
-  CNT_ZPmZ_B_UNDEF = 505,
-  CNT_ZPmZ_D_UNDEF = 506,
-  CNT_ZPmZ_H_UNDEF = 507,
-  CNT_ZPmZ_S_UNDEF = 508,
-  COALESCER_BARRIER_FPR128 = 509,
-  COALESCER_BARRIER_FPR16 = 510,
-  COALESCER_BARRIER_FPR32 = 511,
-  COALESCER_BARRIER_FPR64 = 512,
-  EMITBKEY = 513,
-  EMITMTETAGGED = 514,
-  EONWrr = 515,
-  EONXrr = 516,
-  EORWrr = 517,
-  EORXrr = 518,
-  EOR_ZPZZ_B_ZERO = 519,
-  EOR_ZPZZ_D_ZERO = 520,
-  EOR_ZPZZ_H_ZERO = 521,
-  EOR_ZPZZ_S_ZERO = 522,
-  F128CSEL = 523,
-  FABD_ZPZZ_D_UNDEF = 524,
-  FABD_ZPZZ_D_ZERO = 525,
-  FABD_ZPZZ_H_UNDEF = 526,
-  FABD_ZPZZ_H_ZERO = 527,
-  FABD_ZPZZ_S_UNDEF = 528,
-  FABD_ZPZZ_S_ZERO = 529,
-  FABS_ZPmZ_D_UNDEF = 530,
-  FABS_ZPmZ_H_UNDEF = 531,
-  FABS_ZPmZ_S_UNDEF = 532,
-  FADD_VG2_M2Z_D_PSEUDO = 533,
-  FADD_VG2_M2Z_H_PSEUDO = 534,
-  FADD_VG2_M2Z_S_PSEUDO = 535,
-  FADD_VG4_M4Z_D_PSEUDO = 536,
-  FADD_VG4_M4Z_H_PSEUDO = 537,
-  FADD_VG4_M4Z_S_PSEUDO = 538,
-  FADD_ZPZI_D_UNDEF = 539,
-  FADD_ZPZI_D_ZERO = 540,
-  FADD_ZPZI_H_UNDEF = 541,
-  FADD_ZPZI_H_ZERO = 542,
-  FADD_ZPZI_S_UNDEF = 543,
-  FADD_ZPZI_S_ZERO = 544,
-  FADD_ZPZZ_D_UNDEF = 545,
-  FADD_ZPZZ_D_ZERO = 546,
-  FADD_ZPZZ_H_UNDEF = 547,
-  FADD_ZPZZ_H_ZERO = 548,
-  FADD_ZPZZ_S_UNDEF = 549,
-  FADD_ZPZZ_S_ZERO = 550,
-  FAMAX_ZPZZ_D_UNDEF = 551,
-  FAMAX_ZPZZ_H_UNDEF = 552,
-  FAMAX_ZPZZ_S_UNDEF = 553,
-  FAMIN_ZPZZ_D_UNDEF = 554,
-  FAMIN_ZPZZ_H_UNDEF = 555,
-  FAMIN_ZPZZ_S_UNDEF = 556,
-  FCVTZS_ZPmZ_DtoD_UNDEF = 557,
-  FCVTZS_ZPmZ_DtoS_UNDEF = 558,
-  FCVTZS_ZPmZ_HtoD_UNDEF = 559,
-  FCVTZS_ZPmZ_HtoH_UNDEF = 560,
-  FCVTZS_ZPmZ_HtoS_UNDEF = 561,
-  FCVTZS_ZPmZ_StoD_UNDEF = 562,
-  FCVTZS_ZPmZ_StoS_UNDEF = 563,
-  FCVTZU_ZPmZ_DtoD_UNDEF = 564,
-  FCVTZU_ZPmZ_DtoS_UNDEF = 565,
-  FCVTZU_ZPmZ_HtoD_UNDEF = 566,
-  FCVTZU_ZPmZ_HtoH_UNDEF = 567,
-  FCVTZU_ZPmZ_HtoS_UNDEF = 568,
-  FCVTZU_ZPmZ_StoD_UNDEF = 569,
-  FCVTZU_ZPmZ_StoS_UNDEF = 570,
-  FCVT_ZPmZ_DtoH_UNDEF = 571,
-  FCVT_ZPmZ_DtoS_UNDEF = 572,
-  FCVT_ZPmZ_HtoD_UNDEF = 573,
-  FCVT_ZPmZ_HtoS_UNDEF = 574,
-  FCVT_ZPmZ_StoD_UNDEF = 575,
-  FCVT_ZPmZ_StoH_UNDEF = 576,
-  FDIVR_ZPZZ_D_ZERO = 577,
-  FDIVR_ZPZZ_H_ZERO = 578,
-  FDIVR_ZPZZ_S_ZERO = 579,
-  FDIV_ZPZZ_D_UNDEF = 580,
-  FDIV_ZPZZ_D_ZERO = 581,
-  FDIV_ZPZZ_H_UNDEF = 582,
-  FDIV_ZPZZ_H_ZERO = 583,
-  FDIV_ZPZZ_S_UNDEF = 584,
-  FDIV_ZPZZ_S_ZERO = 585,
-  FDOT_VG2_M2Z2Z_BtoH_PSEUDO = 586,
-  FDOT_VG2_M2Z2Z_BtoS_PSEUDO = 587,
-  FDOT_VG2_M2Z2Z_HtoS_PSEUDO = 588,
-  FDOT_VG2_M2ZZI_BtoH_PSEUDO = 589,
-  FDOT_VG2_M2ZZI_BtoS_PSEUDO = 590,
-  FDOT_VG2_M2ZZI_HtoS_PSEUDO = 591,
-  FDOT_VG2_M2ZZ_BtoH_PSEUDO = 592,
-  FDOT_VG2_M2ZZ_BtoS_PSEUDO = 593,
-  FDOT_VG2_M2ZZ_HtoS_PSEUDO = 594,
-  FDOT_VG4_M4Z4Z_BtoH_PSEUDO = 595,
-  FDOT_VG4_M4Z4Z_BtoS_PSEUDO = 596,
-  FDOT_VG4_M4Z4Z_HtoS_PSEUDO = 597,
-  FDOT_VG4_M4ZZI_BtoH_PSEUDO = 598,
-  FDOT_VG4_M4ZZI_BtoS_PSEUDO = 599,
-  FDOT_VG4_M4ZZI_HtoS_PSEUDO = 600,
-  FDOT_VG4_M4ZZ_BtoH_PSEUDO = 601,
-  FDOT_VG4_M4ZZ_BtoS_PSEUDO = 602,
-  FDOT_VG4_M4ZZ_HtoS_PSEUDO = 603,
-  FILL_PPR_FROM_ZPR_SLOT_PSEUDO = 604,
-  FLOGB_ZPZZ_D_ZERO = 605,
-  FLOGB_ZPZZ_H_ZERO = 606,
-  FLOGB_ZPZZ_S_ZERO = 607,
-  FMAXNM_ZPZI_D_UNDEF = 608,
-  FMAXNM_ZPZI_D_ZERO = 609,
-  FMAXNM_ZPZI_H_UNDEF = 610,
-  FMAXNM_ZPZI_H_ZERO = 611,
-  FMAXNM_ZPZI_S_UNDEF = 612,
-  FMAXNM_ZPZI_S_ZERO = 613,
-  FMAXNM_ZPZZ_D_UNDEF = 614,
-  FMAXNM_ZPZZ_D_ZERO = 615,
-  FMAXNM_ZPZZ_H_UNDEF = 616,
-  FMAXNM_ZPZZ_H_ZERO = 617,
-  FMAXNM_ZPZZ_S_UNDEF = 618,
-  FMAXNM_ZPZZ_S_ZERO = 619,
-  FMAX_ZPZI_D_UNDEF = 620,
-  FMAX_ZPZI_D_ZERO = 621,
-  FMAX_ZPZI_H_UNDEF = 622,
-  FMAX_ZPZI_H_ZERO = 623,
-  FMAX_ZPZI_S_UNDEF = 624,
-  FMAX_ZPZI_S_ZERO = 625,
-  FMAX_ZPZZ_D_UNDEF = 626,
-  FMAX_ZPZZ_D_ZERO = 627,
-  FMAX_ZPZZ_H_UNDEF = 628,
-  FMAX_ZPZZ_H_ZERO = 629,
-  FMAX_ZPZZ_S_UNDEF = 630,
-  FMAX_ZPZZ_S_ZERO = 631,
-  FMINNM_ZPZI_D_UNDEF = 632,
-  FMINNM_ZPZI_D_ZERO = 633,
-  FMINNM_ZPZI_H_UNDEF = 634,
-  FMINNM_ZPZI_H_ZERO = 635,
-  FMINNM_ZPZI_S_UNDEF = 636,
-  FMINNM_ZPZI_S_ZERO = 637,
-  FMINNM_ZPZZ_D_UNDEF = 638,
-  FMINNM_ZPZZ_D_ZERO = 639,
-  FMINNM_ZPZZ_H_UNDEF = 640,
-  FMINNM_ZPZZ_H_ZERO = 641,
-  FMINNM_ZPZZ_S_UNDEF = 642,
-  FMINNM_ZPZZ_S_ZERO = 643,
-  FMIN_ZPZI_D_UNDEF = 644,
-  FMIN_ZPZI_D_ZERO = 645,
-  FMIN_ZPZI_H_UNDEF = 646,
-  FMIN_ZPZI_H_ZERO = 647,
-  FMIN_ZPZI_S_UNDEF = 648,
-  FMIN_ZPZI_S_ZERO = 649,
-  FMIN_ZPZZ_D_UNDEF = 650,
-  FMIN_ZPZZ_D_ZERO = 651,
-  FMIN_ZPZZ_H_UNDEF = 652,
-  FMIN_ZPZZ_H_ZERO = 653,
-  FMIN_ZPZZ_S_UNDEF = 654,
-  FMIN_ZPZZ_S_ZERO = 655,
-  FMLALL_MZZI_BtoS_PSEUDO = 656,
-  FMLALL_MZZ_BtoS_PSEUDO = 657,
-  FMLALL_VG2_M2Z2Z_BtoS_PSEUDO = 658,
-  FMLALL_VG2_M2ZZI_BtoS_PSEUDO = 659,
-  FMLALL_VG2_M2ZZ_BtoS_PSEUDO = 660,
-  FMLALL_VG4_M4Z4Z_BtoS_PSEUDO = 661,
-  FMLALL_VG4_M4ZZI_BtoS_PSEUDO = 662,
-  FMLALL_VG4_M4ZZ_BtoS_PSEUDO = 663,
-  FMLAL_MZZI_BtoH_PSEUDO = 664,
-  FMLAL_MZZI_HtoS_PSEUDO = 665,
-  FMLAL_MZZ_HtoS_PSEUDO = 666,
-  FMLAL_VG2_M2Z2Z_BtoH_PSEUDO = 667,
-  FMLAL_VG2_M2Z2Z_HtoS_PSEUDO = 668,
-  FMLAL_VG2_M2ZZI_BtoH_PSEUDO = 669,
-  FMLAL_VG2_M2ZZI_HtoS_PSEUDO = 670,
-  FMLAL_VG2_M2ZZ_BtoH_PSEUDO = 671,
-  FMLAL_VG2_M2ZZ_HtoS_PSEUDO = 672,
-  FMLAL_VG2_MZZ_BtoH_PSEUDO = 673,
-  FMLAL_VG4_M4Z4Z_BtoH_PSEUDO = 674,
-  FMLAL_VG4_M4Z4Z_HtoS_PSEUDO = 675,
-  FMLAL_VG4_M4ZZI_BtoH_PSEUDO = 676,
-  FMLAL_VG4_M4ZZI_HtoS_PSEUDO = 677,
-  FMLAL_VG4_M4ZZ_BtoH_PSEUDO = 678,
-  FMLAL_VG4_M4ZZ_HtoS_PSEUDO = 679,
-  FMLA_VG2_M2Z2Z_D_PSEUDO = 680,
-  FMLA_VG2_M2Z2Z_H_PSEUDO = 681,
-  FMLA_VG2_M2Z2Z_S_PSEUDO = 682,
-  FMLA_VG2_M2ZZI_D_PSEUDO = 683,
-  FMLA_VG2_M2ZZI_H_PSEUDO = 684,
-  FMLA_VG2_M2ZZI_S_PSEUDO = 685,
-  FMLA_VG2_M2ZZ_D_PSEUDO = 686,
-  FMLA_VG2_M2ZZ_H_PSEUDO = 687,
-  FMLA_VG2_M2ZZ_S_PSEUDO = 688,
-  FMLA_VG4_M4Z4Z_D_PSEUDO = 689,
-  FMLA_VG4_M4Z4Z_H_PSEUDO = 690,
-  FMLA_VG4_M4Z4Z_S_PSEUDO = 691,
-  FMLA_VG4_M4ZZI_D_PSEUDO = 692,
-  FMLA_VG4_M4ZZI_H_PSEUDO = 693,
-  FMLA_VG4_M4ZZI_S_PSEUDO = 694,
-  FMLA_VG4_M4ZZ_D_PSEUDO = 695,
-  FMLA_VG4_M4ZZ_H_PSEUDO = 696,
-  FMLA_VG4_M4ZZ_S_PSEUDO = 697,
-  FMLA_ZPZZZ_D_UNDEF = 698,
-  FMLA_ZPZZZ_H_UNDEF = 699,
-  FMLA_ZPZZZ_S_UNDEF = 700,
-  FMLSL_MZZI_HtoS_PSEUDO = 701,
-  FMLSL_MZZ_HtoS_PSEUDO = 702,
-  FMLSL_VG2_M2Z2Z_HtoS_PSEUDO = 703,
-  FMLSL_VG2_M2ZZI_HtoS_PSEUDO = 704,
-  FMLSL_VG2_M2ZZ_HtoS_PSEUDO = 705,
-  FMLSL_VG4_M4Z4Z_HtoS_PSEUDO = 706,
-  FMLSL_VG4_M4ZZI_HtoS_PSEUDO = 707,
-  FMLSL_VG4_M4ZZ_HtoS_PSEUDO = 708,
-  FMLS_VG2_M2Z2Z_D_PSEUDO = 709,
-  FMLS_VG2_M2Z2Z_H_PSEUDO = 710,
-  FMLS_VG2_M2Z2Z_S_PSEUDO = 711,
-  FMLS_VG2_M2ZZI_D_PSEUDO = 712,
-  FMLS_VG2_M2ZZI_H_PSEUDO = 713,
-  FMLS_VG2_M2ZZI_S_PSEUDO = 714,
-  FMLS_VG2_M2ZZ_D_PSEUDO = 715,
-  FMLS_VG2_M2ZZ_H_PSEUDO = 716,
-  FMLS_VG2_M2ZZ_S_PSEUDO = 717,
-  FMLS_VG4_M4Z4Z_D_PSEUDO = 718,
-  FMLS_VG4_M4Z4Z_H_PSEUDO = 719,
-  FMLS_VG4_M4Z4Z_S_PSEUDO = 720,
-  FMLS_VG4_M4ZZI_D_PSEUDO = 721,
-  FMLS_VG4_M4ZZI_H_PSEUDO = 722,
-  FMLS_VG4_M4ZZI_S_PSEUDO = 723,
-  FMLS_VG4_M4ZZ_D_PSEUDO = 724,
-  FMLS_VG4_M4ZZ_H_PSEUDO = 725,
-  FMLS_VG4_M4ZZ_S_PSEUDO = 726,
-  FMLS_ZPZZZ_D_UNDEF = 727,
-  FMLS_ZPZZZ_H_UNDEF = 728,
-  FMLS_ZPZZZ_S_UNDEF = 729,
-  FMOP4A_M2Z2Z_BtoH_PSEUDO = 730,
-  FMOP4A_M2Z2Z_BtoS_PSEUDO = 731,
-  FMOP4A_M2Z2Z_D_PSEUDO = 732,
-  FMOP4A_M2Z2Z_H_PSEUDO = 733,
-  FMOP4A_M2Z2Z_HtoS_PSEUDO = 734,
-  FMOP4A_M2Z2Z_S_PSEUDO = 735,
-  FMOP4A_M2ZZ_BtoH_PSEUDO = 736,
-  FMOP4A_M2ZZ_BtoS_PSEUDO = 737,
-  FMOP4A_M2ZZ_D_PSEUDO = 738,
-  FMOP4A_M2ZZ_H_PSEUDO = 739,
-  FMOP4A_M2ZZ_HtoS_PSEUDO = 740,
-  FMOP4A_M2ZZ_S_PSEUDO = 741,
-  FMOP4A_MZ2Z_BtoH_PSEUDO = 742,
-  FMOP4A_MZ2Z_BtoS_PSEUDO = 743,
-  FMOP4A_MZ2Z_D_PSEUDO = 744,
-  FMOP4A_MZ2Z_H_PSEUDO = 745,
-  FMOP4A_MZ2Z_HtoS_PSEUDO = 746,
-  FMOP4A_MZ2Z_S_PSEUDO = 747,
-  FMOP4A_MZZ_BtoH_PSEUDO = 748,
-  FMOP4A_MZZ_BtoS_PSEUDO = 749,
-  FMOP4A_MZZ_D_PSEUDO = 750,
-  FMOP4A_MZZ_H_PSEUDO = 751,
-  FMOP4A_MZZ_HtoS_PSEUDO = 752,
-  FMOP4A_MZZ_S_PSEUDO = 753,
-  FMOP4S_M2Z2Z_D_PSEUDO = 754,
-  FMOP4S_M2Z2Z_H_PSEUDO = 755,
-  FMOP4S_M2Z2Z_HtoS_PSEUDO = 756,
-  FMOP4S_M2Z2Z_S_PSEUDO = 757,
-  FMOP4S_M2ZZ_D_PSEUDO = 758,
-  FMOP4S_M2ZZ_H_PSEUDO = 759,
-  FMOP4S_M2ZZ_HtoS_PSEUDO = 760,
-  FMOP4S_M2ZZ_S_PSEUDO = 761,
-  FMOP4S_MZ2Z_D_PSEUDO = 762,
-  FMOP4S_MZ2Z_H_PSEUDO = 763,
-  FMOP4S_MZ2Z_HtoS_PSEUDO = 764,
-  FMOP4S_MZ2Z_S_PSEUDO = 765,
-  FMOP4S_MZZ_D_PSEUDO = 766,
-  FMOP4S_MZZ_H_PSEUDO = 767,
-  FMOP4S_MZZ_HtoS_PSEUDO = 768,
-  FMOP4S_MZZ_S_PSEUDO = 769,
-  FMOPAL_MPPZZ_PSEUDO = 770,
-  FMOPA_MPPZZ_BtoH_PSEUDO = 771,
-  FMOPA_MPPZZ_BtoS_PSEUDO = 772,
-  FMOPA_MPPZZ_D_PSEUDO = 773,
-  FMOPA_MPPZZ_H_PSEUDO = 774,
-  FMOPA_MPPZZ_S_PSEUDO = 775,
-  FMOPSL_MPPZZ_PSEUDO = 776,
-  FMOPS_MPPZZ_D_PSEUDO = 777,
-  FMOPS_MPPZZ_H_PSEUDO = 778,
-  FMOPS_MPPZZ_S_PSEUDO = 779,
-  FMOVD0 = 780,
-  FMOVH0 = 781,
-  FMOVS0 = 782,
-  FMULX_ZPZZ_D_UNDEF = 783,
-  FMULX_ZPZZ_D_ZERO = 784,
-  FMULX_ZPZZ_H_UNDEF = 785,
-  FMULX_ZPZZ_H_ZERO = 786,
-  FMULX_ZPZZ_S_UNDEF = 787,
-  FMULX_ZPZZ_S_ZERO = 788,
-  FMUL_ZPZI_D_UNDEF = 789,
-  FMUL_ZPZI_D_ZERO = 790,
-  FMUL_ZPZI_H_UNDEF = 791,
-  FMUL_ZPZI_H_ZERO = 792,
-  FMUL_ZPZI_S_UNDEF = 793,
-  FMUL_ZPZI_S_ZERO = 794,
-  FMUL_ZPZZ_D_UNDEF = 795,
-  FMUL_ZPZZ_D_ZERO = 796,
-  FMUL_ZPZZ_H_UNDEF = 797,
-  FMUL_ZPZZ_H_ZERO = 798,
-  FMUL_ZPZZ_S_UNDEF = 799,
-  FMUL_ZPZZ_S_ZERO = 800,
-  FNEG_ZPmZ_D_UNDEF = 801,
-  FNEG_ZPmZ_H_UNDEF = 802,
-  FNEG_ZPmZ_S_UNDEF = 803,
-  FNMLA_ZPZZZ_D_UNDEF = 804,
-  FNMLA_ZPZZZ_H_UNDEF = 805,
-  FNMLA_ZPZZZ_S_UNDEF = 806,
-  FNMLS_ZPZZZ_D_UNDEF = 807,
-  FNMLS_ZPZZZ_H_UNDEF = 808,
-  FNMLS_ZPZZZ_S_UNDEF = 809,
-  FORM_TRANSPOSED_REG_TUPLE_X2_PSEUDO = 810,
-  FORM_TRANSPOSED_REG_TUPLE_X4_PSEUDO = 811,
-  FRECPX_ZPmZ_D_UNDEF = 812,
-  FRECPX_ZPmZ_H_UNDEF = 813,
-  FRECPX_ZPmZ_S_UNDEF = 814,
-  FRINTA_ZPmZ_D_UNDEF = 815,
-  FRINTA_ZPmZ_H_UNDEF = 816,
-  FRINTA_ZPmZ_S_UNDEF = 817,
-  FRINTI_ZPmZ_D_UNDEF = 818,
-  FRINTI_ZPmZ_H_UNDEF = 819,
-  FRINTI_ZPmZ_S_UNDEF = 820,
-  FRINTM_ZPmZ_D_UNDEF = 821,
-  FRINTM_ZPmZ_H_UNDEF = 822,
-  FRINTM_ZPmZ_S_UNDEF = 823,
-  FRINTN_ZPmZ_D_UNDEF = 824,
-  FRINTN_ZPmZ_H_UNDEF = 825,
-  FRINTN_ZPmZ_S_UNDEF = 826,
-  FRINTP_ZPmZ_D_UNDEF = 827,
-  FRINTP_ZPmZ_H_UNDEF = 828,
-  FRINTP_ZPmZ_S_UNDEF = 829,
-  FRINTX_ZPmZ_D_UNDEF = 830,
-  FRINTX_ZPmZ_H_UNDEF = 831,
-  FRINTX_ZPmZ_S_UNDEF = 832,
-  FRINTZ_ZPmZ_D_UNDEF = 833,
-  FRINTZ_ZPmZ_H_UNDEF = 834,
-  FRINTZ_ZPmZ_S_UNDEF = 835,
-  FSQRT_ZPmZ_D_UNDEF = 836,
-  FSQRT_ZPmZ_H_UNDEF = 837,
-  FSQRT_ZPmZ_S_UNDEF = 838,
-  FSUBR_ZPZI_D_UNDEF = 839,
-  FSUBR_ZPZI_D_ZERO = 840,
-  FSUBR_ZPZI_H_UNDEF = 841,
-  FSUBR_ZPZI_H_ZERO = 842,
-  FSUBR_ZPZI_S_UNDEF = 843,
-  FSUBR_ZPZI_S_ZERO = 844,
-  FSUBR_ZPZZ_D_ZERO = 845,
-  FSUBR_ZPZZ_H_ZERO = 846,
-  FSUBR_ZPZZ_S_ZERO = 847,
-  FSUB_VG2_M2Z_D_PSEUDO = 848,
-  FSUB_VG2_M2Z_H_PSEUDO = 849,
-  FSUB_VG2_M2Z_S_PSEUDO = 850,
-  FSUB_VG4_M4Z_D_PSEUDO = 851,
-  FSUB_VG4_M4Z_H_PSEUDO = 852,
-  FSUB_VG4_M4Z_S_PSEUDO = 853,
-  FSUB_ZPZI_D_UNDEF = 854,
-  FSUB_ZPZI_D_ZERO = 855,
-  FSUB_ZPZI_H_UNDEF = 856,
-  FSUB_ZPZI_H_ZERO = 857,
-  FSUB_ZPZI_S_UNDEF = 858,
-  FSUB_ZPZI_S_ZERO = 859,
-  FSUB_ZPZZ_D_UNDEF = 860,
-  FSUB_ZPZZ_D_ZERO = 861,
-  FSUB_ZPZZ_H_UNDEF = 862,
-  FSUB_ZPZZ_H_ZERO = 863,
-  FSUB_ZPZZ_S_UNDEF = 864,
-  FSUB_ZPZZ_S_ZERO = 865,
-  FTMOPA_M2ZZZI_BtoH_PSEUDO = 866,
-  FTMOPA_M2ZZZI_BtoS_PSEUDO = 867,
-  FTMOPA_M2ZZZI_HtoH_PSEUDO = 868,
-  FTMOPA_M2ZZZI_HtoS_PSEUDO = 869,
-  FTMOPA_M2ZZZI_StoS_PSEUDO = 870,
-  FVDOTB_VG4_M2ZZI_BtoS_PSEUDO = 871,
-  FVDOTT_VG4_M2ZZI_BtoS_PSEUDO = 872,
-  FVDOT_VG2_M2ZZI_BtoH_PSEUDO = 873,
-  FVDOT_VG2_M2ZZI_HtoS_PSEUDO = 874,
-  G_AARCH64_PREFETCH = 875,
-  G_ADD_LOW = 876,
-  G_BSP = 877,
-  G_DUP = 878,
-  G_DUPLANE16 = 879,
-  G_DUPLANE32 = 880,
-  G_DUPLANE64 = 881,
-  G_DUPLANE8 = 882,
-  G_EXT = 883,
-  G_FCMEQ = 884,
-  G_FCMGE = 885,
-  G_FCMGT = 886,
-  G_REV16 = 887,
-  G_REV32 = 888,
-  G_REV64 = 889,
-  G_SADDLP = 890,
-  G_SADDLV = 891,
-  G_SDOT = 892,
-  G_SITOF = 893,
-  G_SMULL = 894,
-  G_TRN1 = 895,
-  G_TRN2 = 896,
-  G_UADDLP = 897,
-  G_UADDLV = 898,
-  G_UDOT = 899,
-  G_UITOF = 900,
-  G_UMULL = 901,
-  G_UZP1 = 902,
-  G_UZP2 = 903,
-  G_VASHR = 904,
-  G_VLSHR = 905,
-  G_ZIP1 = 906,
-  G_ZIP2 = 907,
-  GetSMESaveSize = 908,
-  HOM_Epilog = 909,
-  HOM_Prolog = 910,
-  HWASAN_CHECK_MEMACCESS = 911,
-  HWASAN_CHECK_MEMACCESS_FIXEDSHADOW = 912,
-  HWASAN_CHECK_MEMACCESS_SHORTGRANULES = 913,
-  HWASAN_CHECK_MEMACCESS_SHORTGRANULES_FIXEDSHADOW = 914,
-  INSERT_MXIPZ_H_PSEUDO_B = 915,
-  INSERT_MXIPZ_H_PSEUDO_D = 916,
-  INSERT_MXIPZ_H_PSEUDO_H = 917,
-  INSERT_MXIPZ_H_PSEUDO_Q = 918,
-  INSERT_MXIPZ_H_PSEUDO_S = 919,
-  INSERT_MXIPZ_V_PSEUDO_B = 920,
-  INSERT_MXIPZ_V_PSEUDO_D = 921,
-  INSERT_MXIPZ_V_PSEUDO_H = 922,
-  INSERT_MXIPZ_V_PSEUDO_Q = 923,
-  INSERT_MXIPZ_V_PSEUDO_S = 924,
-  IRGstack = 925,
-  InitTPIDR2Obj = 926,
-  JumpTableDest16 = 927,
-  JumpTableDest32 = 928,
-  JumpTableDest8 = 929,
-  KCFI_CHECK = 930,
-  LD1B_2Z_IMM_PSEUDO = 931,
-  LD1B_2Z_PSEUDO = 932,
-  LD1B_4Z_IMM_PSEUDO = 933,
-  LD1B_4Z_PSEUDO = 934,
-  LD1D_2Z_IMM_PSEUDO = 935,
-  LD1D_2Z_PSEUDO = 936,
-  LD1D_4Z_IMM_PSEUDO = 937,
-  LD1D_4Z_PSEUDO = 938,
-  LD1H_2Z_IMM_PSEUDO = 939,
-  LD1H_2Z_PSEUDO = 940,
-  LD1H_4Z_IMM_PSEUDO = 941,
-  LD1H_4Z_PSEUDO = 942,
-  LD1W_2Z_IMM_PSEUDO = 943,
-  LD1W_2Z_PSEUDO = 944,
-  LD1W_4Z_IMM_PSEUDO = 945,
-  LD1W_4Z_PSEUDO = 946,
-  LD1_MXIPXX_H_PSEUDO_B = 947,
-  LD1_MXIPXX_H_PSEUDO_D = 948,
-  LD1_MXIPXX_H_PSEUDO_H = 949,
-  LD1_MXIPXX_H_PSEUDO_Q = 950,
-  LD1_MXIPXX_H_PSEUDO_S = 951,
-  LD1_MXIPXX_V_PSEUDO_B = 952,
-  LD1_MXIPXX_V_PSEUDO_D = 953,
-  LD1_MXIPXX_V_PSEUDO_H = 954,
-  LD1_MXIPXX_V_PSEUDO_Q = 955,
-  LD1_MXIPXX_V_PSEUDO_S = 956,
-  LDNT1B_2Z_IMM_PSEUDO = 957,
-  LDNT1B_2Z_PSEUDO = 958,
-  LDNT1B_4Z_IMM_PSEUDO = 959,
-  LDNT1B_4Z_PSEUDO = 960,
-  LDNT1D_2Z_IMM_PSEUDO = 961,
-  LDNT1D_2Z_PSEUDO = 962,
-  LDNT1D_4Z_IMM_PSEUDO = 963,
-  LDNT1D_4Z_PSEUDO = 964,
-  LDNT1H_2Z_IMM_PSEUDO = 965,
-  LDNT1H_2Z_PSEUDO = 966,
-  LDNT1H_4Z_IMM_PSEUDO = 967,
-  LDNT1H_4Z_PSEUDO = 968,
-  LDNT1W_2Z_IMM_PSEUDO = 969,
-  LDNT1W_2Z_PSEUDO = 970,
-  LDNT1W_4Z_IMM_PSEUDO = 971,
-  LDNT1W_4Z_PSEUDO = 972,
-  LDR_PPXI = 973,
-  LDR_TX_PSEUDO = 974,
-  LDR_ZA_PSEUDO = 975,
-  LDR_ZZXI = 976,
-  LDR_ZZXI_STRIDED_CONTIGUOUS = 977,
-  LDR_ZZZXI = 978,
-  LDR_ZZZZXI = 979,
-  LDR_ZZZZXI_STRIDED_CONTIGUOUS = 980,
-  LOADauthptrstatic = 981,
-  LOADgot = 982,
-  LOADgotAUTH = 983,
-  LOADgotPAC = 984,
-  LSL_ZPZI_B_UNDEF = 985,
-  LSL_ZPZI_B_ZERO = 986,
-  LSL_ZPZI_D_UNDEF = 987,
-  LSL_ZPZI_D_ZERO = 988,
-  LSL_ZPZI_H_UNDEF = 989,
-  LSL_ZPZI_H_ZERO = 990,
-  LSL_ZPZI_S_UNDEF = 991,
-  LSL_ZPZI_S_ZERO = 992,
-  LSL_ZPZZ_B_UNDEF = 993,
-  LSL_ZPZZ_B_ZERO = 994,
-  LSL_ZPZZ_D_UNDEF = 995,
-  LSL_ZPZZ_D_ZERO = 996,
-  LSL_ZPZZ_H_UNDEF = 997,
-  LSL_ZPZZ_H_ZERO = 998,
-  LSL_ZPZZ_S_UNDEF = 999,
-  LSL_ZPZZ_S_ZERO = 1000,
-  LSR_ZPZI_B_UNDEF = 1001,
-  LSR_ZPZI_B_ZERO = 1002,
-  LSR_ZPZI_D_UNDEF = 1003,
-  LSR_ZPZI_D_ZERO = 1004,
-  LSR_ZPZI_H_UNDEF = 1005,
-  LSR_ZPZI_H_ZERO = 1006,
-  LSR_ZPZI_S_UNDEF = 1007,
-  LSR_ZPZI_S_ZERO = 1008,
-  LSR_ZPZZ_B_UNDEF = 1009,
-  LSR_ZPZZ_B_ZERO = 1010,
-  LSR_ZPZZ_D_UNDEF = 1011,
-  LSR_ZPZZ_D_ZERO = 1012,
-  LSR_ZPZZ_H_UNDEF = 1013,
-  LSR_ZPZZ_H_ZERO = 1014,
-  LSR_ZPZZ_S_UNDEF = 1015,
-  LSR_ZPZZ_S_ZERO = 1016,
-  MLA_ZPZZZ_B_UNDEF = 1017,
-  MLA_ZPZZZ_D_UNDEF = 1018,
-  MLA_ZPZZZ_H_UNDEF = 1019,
-  MLA_ZPZZZ_S_UNDEF = 1020,
-  MLS_ZPZZZ_B_UNDEF = 1021,
-  MLS_ZPZZZ_D_UNDEF = 1022,
-  MLS_ZPZZZ_H_UNDEF = 1023,
-  MLS_ZPZZZ_S_UNDEF = 1024,
-  MOPSMemoryCopyPseudo = 1025,
-  MOPSMemoryMovePseudo = 1026,
-  MOPSMemorySetPseudo = 1027,
-  MOPSMemorySetTaggingPseudo = 1028,
-  MOVAZ_2ZMI_H_B_PSEUDO = 1029,
-  MOVAZ_2ZMI_H_D_PSEUDO = 1030,
-  MOVAZ_2ZMI_H_H_PSEUDO = 1031,
-  MOVAZ_2ZMI_H_S_PSEUDO = 1032,
-  MOVAZ_2ZMI_V_B_PSEUDO = 1033,
-  MOVAZ_2ZMI_V_D_PSEUDO = 1034,
-  MOVAZ_2ZMI_V_H_PSEUDO = 1035,
-  MOVAZ_2ZMI_V_S_PSEUDO = 1036,
-  MOVAZ_4ZMI_H_B_PSEUDO = 1037,
-  MOVAZ_4ZMI_H_D_PSEUDO = 1038,
-  MOVAZ_4ZMI_H_H_PSEUDO = 1039,
-  MOVAZ_4ZMI_H_S_PSEUDO = 1040,
-  MOVAZ_4ZMI_V_B_PSEUDO = 1041,
-  MOVAZ_4ZMI_V_D_PSEUDO = 1042,
-  MOVAZ_4ZMI_V_H_PSEUDO = 1043,
-  MOVAZ_4ZMI_V_S_PSEUDO = 1044,
-  MOVAZ_VG2_2ZMXI_PSEUDO = 1045,
-  MOVAZ_VG4_4ZMXI_PSEUDO = 1046,
-  MOVAZ_ZMI_H_B_PSEUDO = 1047,
-  MOVAZ_ZMI_H_D_PSEUDO = 1048,
-  MOVAZ_ZMI_H_H_PSEUDO = 1049,
-  MOVAZ_ZMI_H_Q_PSEUDO = 1050,
-  MOVAZ_ZMI_H_S_PSEUDO = 1051,
-  MOVAZ_ZMI_V_B_PSEUDO = 1052,
-  MOVAZ_ZMI_V_D_PSEUDO = 1053,
-  MOVAZ_ZMI_V_H_PSEUDO = 1054,
-  MOVAZ_ZMI_V_Q_PSEUDO = 1055,
-  MOVAZ_ZMI_V_S_PSEUDO = 1056,
-  MOVA_MXI2Z_H_B_PSEUDO = 1057,
-  MOVA_MXI2Z_H_D_PSEUDO = 1058,
-  MOVA_MXI2Z_H_H_PSEUDO = 1059,
-  MOVA_MXI2Z_H_S_PSEUDO = 1060,
-  MOVA_MXI2Z_V_B_PSEUDO = 1061,
-  MOVA_MXI2Z_V_D_PSEUDO = 1062,
-  MOVA_MXI2Z_V_H_PSEUDO = 1063,
-  MOVA_MXI2Z_V_S_PSEUDO = 1064,
-  MOVA_MXI4Z_H_B_PSEUDO = 1065,
-  MOVA_MXI4Z_H_D_PSEUDO = 1066,
-  MOVA_MXI4Z_H_H_PSEUDO = 1067,
-  MOVA_MXI4Z_H_S_PSEUDO = 1068,
-  MOVA_MXI4Z_V_B_PSEUDO = 1069,
-  MOVA_MXI4Z_V_D_PSEUDO = 1070,
-  MOVA_MXI4Z_V_H_PSEUDO = 1071,
-  MOVA_MXI4Z_V_S_PSEUDO = 1072,
-  MOVA_VG2_MXI2Z_PSEUDO = 1073,
-  MOVA_VG4_MXI4Z_PSEUDO = 1074,
-  MOVMCSym = 1075,
-  MOVT_TIZ_PSEUDO = 1076,
-  MOVaddr = 1077,
-  MOVaddrBA = 1078,
-  MOVaddrCP = 1079,
-  MOVaddrEXT = 1080,
-  MOVaddrJT = 1081,
-  MOVaddrPAC = 1082,
-  MOVaddrTLS = 1083,
-  MOVbaseTLS = 1084,
-  MOVi32imm = 1085,
-  MOVi64imm = 1086,
-  MRS_FPCR = 1087,
-  MRS_FPSR = 1088,
-  MSR_FPCR = 1089,
-  MSR_FPMR = 1090,
-  MSR_FPSR = 1091,
-  MSRpstatePseudo = 1092,
-  MUL_ZPZZ_B_UNDEF = 1093,
-  MUL_ZPZZ_D_UNDEF = 1094,
-  MUL_ZPZZ_H_UNDEF = 1095,
-  MUL_ZPZZ_S_UNDEF = 1096,
-  NEG_ZPmZ_B_UNDEF = 1097,
-  NEG_ZPmZ_D_UNDEF = 1098,
-  NEG_ZPmZ_H_UNDEF = 1099,
-  NEG_ZPmZ_S_UNDEF = 1100,
-  NOT_ZPmZ_B_UNDEF = 1101,
-  NOT_ZPmZ_D_UNDEF = 1102,
-  NOT_ZPmZ_H_UNDEF = 1103,
-  NOT_ZPmZ_S_UNDEF = 1104,
-  ORNWrr = 1105,
-  ORNXrr = 1106,
-  ORRWrr = 1107,
-  ORRXrr = 1108,
-  ORR_ZPZZ_B_ZERO = 1109,
-  ORR_ZPZZ_D_ZERO = 1110,
-  ORR_ZPZZ_H_ZERO = 1111,
-  ORR_ZPZZ_S_ZERO = 1112,
-  PAUTH_EPILOGUE = 1113,
-  PAUTH_PROLOGUE = 1114,
-  PROBED_STACKALLOC = 1115,
-  PROBED_STACKALLOC_DYN = 1116,
-  PROBED_STACKALLOC_VAR = 1117,
-  PTEST_PP_ANY = 1118,
-  RET_ReallyLR = 1119,
-  RestoreZAPseudo = 1120,
-  SABD_ZPZZ_B_UNDEF = 1121,
-  SABD_ZPZZ_D_UNDEF = 1122,
-  SABD_ZPZZ_H_UNDEF = 1123,
-  SABD_ZPZZ_S_UNDEF = 1124,
-  SCVTF_ZPmZ_DtoD_UNDEF = 1125,
-  SCVTF_ZPmZ_DtoH_UNDEF = 1126,
-  SCVTF_ZPmZ_DtoS_UNDEF = 1127,
-  SCVTF_ZPmZ_HtoH_UNDEF = 1128,
-  SCVTF_ZPmZ_StoD_UNDEF = 1129,
-  SCVTF_ZPmZ_StoH_UNDEF = 1130,
-  SCVTF_ZPmZ_StoS_UNDEF = 1131,
-  SDIV_ZPZZ_D_UNDEF = 1132,
-  SDIV_ZPZZ_S_UNDEF = 1133,
-  SDOT_VG2_M2Z2Z_BtoS_PSEUDO = 1134,
-  SDOT_VG2_M2Z2Z_HtoD_PSEUDO = 1135,
-  SDOT_VG2_M2Z2Z_HtoS_PSEUDO = 1136,
-  SDOT_VG2_M2ZZI_BToS_PSEUDO = 1137,
-  SDOT_VG2_M2ZZI_HToS_PSEUDO = 1138,
-  SDOT_VG2_M2ZZI_HtoD_PSEUDO = 1139,
-  SDOT_VG2_M2ZZ_BtoS_PSEUDO = 1140,
-  SDOT_VG2_M2ZZ_HtoD_PSEUDO = 1141,
-  SDOT_VG2_M2ZZ_HtoS_PSEUDO = 1142,
-  SDOT_VG4_M4Z4Z_BtoS_PSEUDO = 1143,
-  SDOT_VG4_M4Z4Z_HtoD_PSEUDO = 1144,
-  SDOT_VG4_M4Z4Z_HtoS_PSEUDO = 1145,
-  SDOT_VG4_M4ZZI_BToS_PSEUDO = 1146,
-  SDOT_VG4_M4ZZI_HToS_PSEUDO = 1147,
-  SDOT_VG4_M4ZZI_HtoD_PSEUDO = 1148,
-  SDOT_VG4_M4ZZ_BtoS_PSEUDO = 1149,
-  SDOT_VG4_M4ZZ_HtoD_PSEUDO = 1150,
-  SDOT_VG4_M4ZZ_HtoS_PSEUDO = 1151,
-  SEH_AddFP = 1152,
-  SEH_AllocZ = 1153,
-  SEH_EpilogEnd = 1154,
-  SEH_EpilogStart = 1155,
-  SEH_Nop = 1156,
-  SEH_PACSignLR = 1157,
-  SEH_PrologEnd = 1158,
-  SEH_SaveAnyRegQP = 1159,
-  SEH_SaveAnyRegQPX = 1160,
-  SEH_SaveFPLR = 1161,
-  SEH_SaveFPLR_X = 1162,
-  SEH_SaveFReg = 1163,
-  SEH_SaveFRegP = 1164,
-  SEH_SaveFRegP_X = 1165,
-  SEH_SaveFReg_X = 1166,
-  SEH_SavePReg = 1167,
-  SEH_SaveReg = 1168,
-  SEH_SaveRegP = 1169,
-  SEH_SaveRegP_X = 1170,
-  SEH_SaveReg_X = 1171,
-  SEH_SaveZReg = 1172,
-  SEH_SetFP = 1173,
-  SEH_StackAlloc = 1174,
-  SMAX_ZPZZ_B_UNDEF = 1175,
-  SMAX_ZPZZ_D_UNDEF = 1176,
-  SMAX_ZPZZ_H_UNDEF = 1177,
-  SMAX_ZPZZ_S_UNDEF = 1178,
-  SMIN_ZPZZ_B_UNDEF = 1179,
-  SMIN_ZPZZ_D_UNDEF = 1180,
-  SMIN_ZPZZ_H_UNDEF = 1181,
-  SMIN_ZPZZ_S_UNDEF = 1182,
-  SMLALL_MZZI_BtoS_PSEUDO = 1183,
-  SMLALL_MZZI_HtoD_PSEUDO = 1184,
-  SMLALL_MZZ_BtoS_PSEUDO = 1185,
-  SMLALL_MZZ_HtoD_PSEUDO = 1186,
-  SMLALL_VG2_M2Z2Z_BtoS_PSEUDO = 1187,
-  SMLALL_VG2_M2Z2Z_HtoD_PSEUDO = 1188,
-  SMLALL_VG2_M2ZZI_BtoS_PSEUDO = 1189,
-  SMLALL_VG2_M2ZZI_HtoD_PSEUDO = 1190,
-  SMLALL_VG2_M2ZZ_BtoS_PSEUDO = 1191,
-  SMLALL_VG2_M2ZZ_HtoD_PSEUDO = 1192,
-  SMLALL_VG4_M4Z4Z_BtoS_PSEUDO = 1193,
-  SMLALL_VG4_M4Z4Z_HtoD_PSEUDO = 1194,
-  SMLALL_VG4_M4ZZI_BtoS_PSEUDO = 1195,
-  SMLALL_VG4_M4ZZI_HtoD_PSEUDO = 1196,
-  SMLALL_VG4_M4ZZ_BtoS_PSEUDO = 1197,
-  SMLALL_VG4_M4ZZ_HtoD_PSEUDO = 1198,
-  SMLAL_MZZI_HtoS_PSEUDO = 1199,
-  SMLAL_MZZ_HtoS_PSEUDO = 1200,
-  SMLAL_VG2_M2Z2Z_HtoS_PSEUDO = 1201,
-  SMLAL_VG2_M2ZZI_S_PSEUDO = 1202,
-  SMLAL_VG2_M2ZZ_HtoS_PSEUDO = 1203,
-  SMLAL_VG4_M4Z4Z_HtoS_PSEUDO = 1204,
-  SMLAL_VG4_M4ZZI_HtoS_PSEUDO = 1205,
-  SMLAL_VG4_M4ZZ_HtoS_PSEUDO = 1206,
-  SMLSLL_MZZI_BtoS_PSEUDO = 1207,
-  SMLSLL_MZZI_HtoD_PSEUDO = 1208,
-  SMLSLL_MZZ_BtoS_PSEUDO = 1209,
-  SMLSLL_MZZ_HtoD_PSEUDO = 1210,
-  SMLSLL_VG2_M2Z2Z_BtoS_PSEUDO = 1211,
-  SMLSLL_VG2_M2Z2Z_HtoD_PSEUDO = 1212,
-  SMLSLL_VG2_M2ZZI_BtoS_PSEUDO = 1213,
-  SMLSLL_VG2_M2ZZI_HtoD_PSEUDO = 1214,
-  SMLSLL_VG2_M2ZZ_BtoS_PSEUDO = 1215,
-  SMLSLL_VG2_M2ZZ_HtoD_PSEUDO = 1216,
-  SMLSLL_VG4_M4Z4Z_BtoS_PSEUDO = 1217,
-  SMLSLL_VG4_M4Z4Z_HtoD_PSEUDO = 1218,
-  SMLSLL_VG4_M4ZZI_BtoS_PSEUDO = 1219,
-  SMLSLL_VG4_M4ZZI_HtoD_PSEUDO = 1220,
-  SMLSLL_VG4_M4ZZ_BtoS_PSEUDO = 1221,
-  SMLSLL_VG4_M4ZZ_HtoD_PSEUDO = 1222,
-  SMLSL_MZZI_HtoS_PSEUDO = 1223,
-  SMLSL_MZZ_HtoS_PSEUDO = 1224,
-  SMLSL_VG2_M2Z2Z_HtoS_PSEUDO = 1225,
-  SMLSL_VG2_M2ZZI_S_PSEUDO = 1226,
-  SMLSL_VG2_M2ZZ_HtoS_PSEUDO = 1227,
-  SMLSL_VG4_M4Z4Z_HtoS_PSEUDO = 1228,
-  SMLSL_VG4_M4ZZI_HtoS_PSEUDO = 1229,
-  SMLSL_VG4_M4ZZ_HtoS_PSEUDO = 1230,
-  SMOP4A_M2Z2Z_BToS_PSEUDO = 1231,
-  SMOP4A_M2Z2Z_HToS_PSEUDO = 1232,
-  SMOP4A_M2Z2Z_HtoD_PSEUDO = 1233,
-  SMOP4A_M2ZZ_BToS_PSEUDO = 1234,
-  SMOP4A_M2ZZ_HToS_PSEUDO = 1235,
-  SMOP4A_M2ZZ_HtoD_PSEUDO = 1236,
-  SMOP4A_MZ2Z_BToS_PSEUDO = 1237,
-  SMOP4A_MZ2Z_HToS_PSEUDO = 1238,
-  SMOP4A_MZ2Z_HtoD_PSEUDO = 1239,
-  SMOP4A_MZZ_BToS_PSEUDO = 1240,
-  SMOP4A_MZZ_HToS_PSEUDO = 1241,
-  SMOP4A_MZZ_HtoD_PSEUDO = 1242,
-  SMOP4S_M2Z2Z_BToS_PSEUDO = 1243,
-  SMOP4S_M2Z2Z_HToS_PSEUDO = 1244,
-  SMOP4S_M2Z2Z_HtoD_PSEUDO = 1245,
-  SMOP4S_M2ZZ_BToS_PSEUDO = 1246,
-  SMOP4S_M2ZZ_HToS_PSEUDO = 1247,
-  SMOP4S_M2ZZ_HtoD_PSEUDO = 1248,
-  SMOP4S_MZ2Z_BToS_PSEUDO = 1249,
-  SMOP4S_MZ2Z_HToS_PSEUDO = 1250,
-  SMOP4S_MZ2Z_HtoD_PSEUDO = 1251,
-  SMOP4S_MZZ_BToS_PSEUDO = 1252,
-  SMOP4S_MZZ_HToS_PSEUDO = 1253,
-  SMOP4S_MZZ_HtoD_PSEUDO = 1254,
-  SMOPA_MPPZZ_D_PSEUDO = 1255,
-  SMOPA_MPPZZ_HtoS_PSEUDO = 1256,
-  SMOPA_MPPZZ_S_PSEUDO = 1257,
-  SMOPS_MPPZZ_D_PSEUDO = 1258,
-  SMOPS_MPPZZ_HtoS_PSEUDO = 1259,
-  SMOPS_MPPZZ_S_PSEUDO = 1260,
-  SMULH_ZPZZ_B_UNDEF = 1261,
-  SMULH_ZPZZ_D_UNDEF = 1262,
-  SMULH_ZPZZ_H_UNDEF = 1263,
-  SMULH_ZPZZ_S_UNDEF = 1264,
-  SPACE = 1265,
-  SPILL_PPR_TO_ZPR_SLOT_PSEUDO = 1266,
-  SQABS_ZPmZ_B_UNDEF = 1267,
-  SQABS_ZPmZ_D_UNDEF = 1268,
-  SQABS_ZPmZ_H_UNDEF = 1269,
-  SQABS_ZPmZ_S_UNDEF = 1270,
-  SQNEG_ZPmZ_B_UNDEF = 1271,
-  SQNEG_ZPmZ_D_UNDEF = 1272,
-  SQNEG_ZPmZ_H_UNDEF = 1273,
-  SQNEG_ZPmZ_S_UNDEF = 1274,
-  SQRSHL_ZPZZ_B_UNDEF = 1275,
-  SQRSHL_ZPZZ_D_UNDEF = 1276,
-  SQRSHL_ZPZZ_H_UNDEF = 1277,
-  SQRSHL_ZPZZ_S_UNDEF = 1278,
-  SQSHLU_ZPZI_B_ZERO = 1279,
-  SQSHLU_ZPZI_D_ZERO = 1280,
-  SQSHLU_ZPZI_H_ZERO = 1281,
-  SQSHLU_ZPZI_S_ZERO = 1282,
-  SQSHL_ZPZI_B_ZERO = 1283,
-  SQSHL_ZPZI_D_ZERO = 1284,
-  SQSHL_ZPZI_H_ZERO = 1285,
-  SQSHL_ZPZI_S_ZERO = 1286,
-  SQSHL_ZPZZ_B_UNDEF = 1287,
-  SQSHL_ZPZZ_D_UNDEF = 1288,
-  SQSHL_ZPZZ_H_UNDEF = 1289,
-  SQSHL_ZPZZ_S_UNDEF = 1290,
-  SRSHL_ZPZZ_B_UNDEF = 1291,
-  SRSHL_ZPZZ_D_UNDEF = 1292,
-  SRSHL_ZPZZ_H_UNDEF = 1293,
-  SRSHL_ZPZZ_S_UNDEF = 1294,
-  SRSHR_ZPZI_B_ZERO = 1295,
-  SRSHR_ZPZI_D_ZERO = 1296,
-  SRSHR_ZPZI_H_ZERO = 1297,
-  SRSHR_ZPZI_S_ZERO = 1298,
-  STGloop = 1299,
-  STGloop_wback = 1300,
-  STMOPA_M2ZZZI_BtoS_PSEUDO = 1301,
-  STMOPA_M2ZZZI_HtoS_PSEUDO = 1302,
-  STR_PPXI = 1303,
-  STR_TX_PSEUDO = 1304,
-  STR_ZZXI = 1305,
-  STR_ZZXI_STRIDED_CONTIGUOUS = 1306,
-  STR_ZZZXI = 1307,
-  STR_ZZZZXI = 1308,
-  STR_ZZZZXI_STRIDED_CONTIGUOUS = 1309,
-  STZGloop = 1310,
-  STZGloop_wback = 1311,
-  SUBR_ZPZZ_B_ZERO = 1312,
-  SUBR_ZPZZ_D_ZERO = 1313,
-  SUBR_ZPZZ_H_ZERO = 1314,
-  SUBR_ZPZZ_S_ZERO = 1315,
-  SUBSWrr = 1316,
-  SUBSXrr = 1317,
-  SUBWrr = 1318,
-  SUBXrr = 1319,
-  SUB_VG2_M2Z2Z_D_PSEUDO = 1320,
-  SUB_VG2_M2Z2Z_S_PSEUDO = 1321,
-  SUB_VG2_M2ZZ_D_PSEUDO = 1322,
-  SUB_VG2_M2ZZ_S_PSEUDO = 1323,
-  SUB_VG2_M2Z_D_PSEUDO = 1324,
-  SUB_VG2_M2Z_S_PSEUDO = 1325,
-  SUB_VG4_M4Z4Z_D_PSEUDO = 1326,
-  SUB_VG4_M4Z4Z_S_PSEUDO = 1327,
-  SUB_VG4_M4ZZ_D_PSEUDO = 1328,
-  SUB_VG4_M4ZZ_S_PSEUDO = 1329,
-  SUB_VG4_M4Z_D_PSEUDO = 1330,
-  SUB_VG4_M4Z_S_PSEUDO = 1331,
-  SUB_ZPZZ_B_ZERO = 1332,
-  SUB_ZPZZ_D_ZERO = 1333,
-  SUB_ZPZZ_H_ZERO = 1334,
-  SUB_ZPZZ_S_ZERO = 1335,
-  SUDOT_VG2_M2ZZI_BToS_PSEUDO = 1336,
-  SUDOT_VG2_M2ZZ_BToS_PSEUDO = 1337,
-  SUDOT_VG4_M4ZZI_BToS_PSEUDO = 1338,
-  SUDOT_VG4_M4ZZ_BToS_PSEUDO = 1339,
-  SUMLALL_MZZI_BtoS_PSEUDO = 1340,
-  SUMLALL_VG2_M2ZZI_BtoS_PSEUDO = 1341,
-  SUMLALL_VG2_M2ZZ_BtoS_PSEUDO = 1342,
-  SUMLALL_VG4_M4ZZI_BtoS_PSEUDO = 1343,
-  SUMLALL_VG4_M4ZZ_BtoS_PSEUDO = 1344,
-  SUMOP4A_M2Z2Z_BToS_PSEUDO = 1345,
-  SUMOP4A_M2Z2Z_HtoD_PSEUDO = 1346,
-  SUMOP4A_M2ZZ_BToS_PSEUDO = 1347,
-  SUMOP4A_M2ZZ_HtoD_PSEUDO = 1348,
-  SUMOP4A_MZ2Z_BToS_PSEUDO = 1349,
-  SUMOP4A_MZ2Z_HtoD_PSEUDO = 1350,
-  SUMOP4A_MZZ_BToS_PSEUDO = 1351,
-  SUMOP4A_MZZ_HtoD_PSEUDO = 1352,
-  SUMOP4S_M2Z2Z_BToS_PSEUDO = 1353,
-  SUMOP4S_M2Z2Z_HtoD_PSEUDO = 1354,
-  SUMOP4S_M2ZZ_BToS_PSEUDO = 1355,
-  SUMOP4S_M2ZZ_HtoD_PSEUDO = 1356,
-  SUMOP4S_MZ2Z_BToS_PSEUDO = 1357,
-  SUMOP4S_MZ2Z_HtoD_PSEUDO = 1358,
-  SUMOP4S_MZZ_BToS_PSEUDO = 1359,
-  SUMOP4S_MZZ_HtoD_PSEUDO = 1360,
-  SUMOPA_MPPZZ_D_PSEUDO = 1361,
-  SUMOPA_MPPZZ_S_PSEUDO = 1362,
-  SUMOPS_MPPZZ_D_PSEUDO = 1363,
-  SUMOPS_MPPZZ_S_PSEUDO = 1364,
-  SUTMOPA_M2ZZZI_BtoS_PSEUDO = 1365,
-  SUVDOT_VG4_M4ZZI_BToS_PSEUDO = 1366,
-  SVDOT_VG2_M2ZZI_HtoS_PSEUDO = 1367,
-  SVDOT_VG4_M4ZZI_BtoS_PSEUDO = 1368,
-  SVDOT_VG4_M4ZZI_HtoD_PSEUDO = 1369,
-  SXTB_ZPmZ_D_UNDEF = 1370,
-  SXTB_ZPmZ_H_UNDEF = 1371,
-  SXTB_ZPmZ_S_UNDEF = 1372,
-  SXTH_ZPmZ_D_UNDEF = 1373,
-  SXTH_ZPmZ_S_UNDEF = 1374,
-  SXTW_ZPmZ_D_UNDEF = 1375,
-  SpeculationBarrierISBDSBEndBB = 1376,
-  SpeculationBarrierSBEndBB = 1377,
-  SpeculationSafeValueW = 1378,
-  SpeculationSafeValueX = 1379,
-  StoreSwiftAsyncContext = 1380,
-  TAGPstack = 1381,
-  TCRETURNdi = 1382,
-  TCRETURNri = 1383,
-  TCRETURNriALL = 1384,
-  TCRETURNrinotx16 = 1385,
-  TCRETURNrix16x17 = 1386,
-  TCRETURNrix17 = 1387,
-  TLSDESCCALL = 1388,
-  TLSDESC_AUTH_CALLSEQ = 1389,
-  TLSDESC_CALLSEQ = 1390,
-  UABD_ZPZZ_B_UNDEF = 1391,
-  UABD_ZPZZ_D_UNDEF = 1392,
-  UABD_ZPZZ_H_UNDEF = 1393,
-  UABD_ZPZZ_S_UNDEF = 1394,
-  UCVTF_ZPmZ_DtoD_UNDEF = 1395,
-  UCVTF_ZPmZ_DtoH_UNDEF = 1396,
-  UCVTF_ZPmZ_DtoS_UNDEF = 1397,
-  UCVTF_ZPmZ_HtoH_UNDEF = 1398,
-  UCVTF_ZPmZ_StoD_UNDEF = 1399,
-  UCVTF_ZPmZ_StoH_UNDEF = 1400,
-  UCVTF_ZPmZ_StoS_UNDEF = 1401,
-  UDIV_ZPZZ_D_UNDEF = 1402,
-  UDIV_ZPZZ_S_UNDEF = 1403,
-  UDOT_VG2_M2Z2Z_BtoS_PSEUDO = 1404,
-  UDOT_VG2_M2Z2Z_HtoD_PSEUDO = 1405,
-  UDOT_VG2_M2Z2Z_HtoS_PSEUDO = 1406,
-  UDOT_VG2_M2ZZI_BToS_PSEUDO = 1407,
-  UDOT_VG2_M2ZZI_HToS_PSEUDO = 1408,
-  UDOT_VG2_M2ZZI_HtoD_PSEUDO = 1409,
-  UDOT_VG2_M2ZZ_BtoS_PSEUDO = 1410,
-  UDOT_VG2_M2ZZ_HtoD_PSEUDO = 1411,
-  UDOT_VG2_M2ZZ_HtoS_PSEUDO = 1412,
-  UDOT_VG4_M4Z4Z_BtoS_PSEUDO = 1413,
-  UDOT_VG4_M4Z4Z_HtoD_PSEUDO = 1414,
-  UDOT_VG4_M4Z4Z_HtoS_PSEUDO = 1415,
-  UDOT_VG4_M4ZZI_BtoS_PSEUDO = 1416,
-  UDOT_VG4_M4ZZI_HToS_PSEUDO = 1417,
-  UDOT_VG4_M4ZZI_HtoD_PSEUDO = 1418,
-  UDOT_VG4_M4ZZ_BtoS_PSEUDO = 1419,
-  UDOT_VG4_M4ZZ_HtoD_PSEUDO = 1420,
-  UDOT_VG4_M4ZZ_HtoS_PSEUDO = 1421,
-  UMAX_ZPZZ_B_UNDEF = 1422,
-  UMAX_ZPZZ_D_UNDEF = 1423,
-  UMAX_ZPZZ_H_UNDEF = 1424,
-  UMAX_ZPZZ_S_UNDEF = 1425,
-  UMIN_ZPZZ_B_UNDEF = 1426,
-  UMIN_ZPZZ_D_UNDEF = 1427,
-  UMIN_ZPZZ_H_UNDEF = 1428,
-  UMIN_ZPZZ_S_UNDEF = 1429,
-  UMLALL_MZZI_BtoS_PSEUDO = 1430,
-  UMLALL_MZZI_HtoD_PSEUDO = 1431,
-  UMLALL_MZZ_BtoS_PSEUDO = 1432,
-  UMLALL_MZZ_HtoD_PSEUDO = 1433,
-  UMLALL_VG2_M2Z2Z_BtoS_PSEUDO = 1434,
-  UMLALL_VG2_M2Z2Z_HtoD_PSEUDO = 1435,
-  UMLALL_VG2_M2ZZI_BtoS_PSEUDO = 1436,
-  UMLALL_VG2_M2ZZI_HtoD_PSEUDO = 1437,
-  UMLALL_VG2_M2ZZ_BtoS_PSEUDO = 1438,
-  UMLALL_VG2_M2ZZ_HtoD_PSEUDO = 1439,
-  UMLALL_VG4_M4Z4Z_BtoS_PSEUDO = 1440,
-  UMLALL_VG4_M4Z4Z_HtoD_PSEUDO = 1441,
-  UMLALL_VG4_M4ZZI_BtoS_PSEUDO = 1442,
-  UMLALL_VG4_M4ZZI_HtoD_PSEUDO = 1443,
-  UMLALL_VG4_M4ZZ_BtoS_PSEUDO = 1444,
-  UMLALL_VG4_M4ZZ_HtoD_PSEUDO = 1445,
-  UMLAL_MZZI_HtoS_PSEUDO = 1446,
-  UMLAL_MZZ_HtoS_PSEUDO = 1447,
-  UMLAL_VG2_M2Z2Z_HtoS_PSEUDO = 1448,
-  UMLAL_VG2_M2ZZI_S_PSEUDO = 1449,
-  UMLAL_VG2_M2ZZ_HtoS_PSEUDO = 1450,
-  UMLAL_VG4_M4Z4Z_HtoS_PSEUDO = 1451,
-  UMLAL_VG4_M4ZZI_HtoS_PSEUDO = 1452,
-  UMLAL_VG4_M4ZZ_HtoS_PSEUDO = 1453,
-  UMLSLL_MZZI_BtoS_PSEUDO = 1454,
-  UMLSLL_MZZI_HtoD_PSEUDO = 1455,
-  UMLSLL_MZZ_BtoS_PSEUDO = 1456,
-  UMLSLL_MZZ_HtoD_PSEUDO = 1457,
-  UMLSLL_VG2_M2Z2Z_BtoS_PSEUDO = 1458,
-  UMLSLL_VG2_M2Z2Z_HtoD_PSEUDO = 1459,
-  UMLSLL_VG2_M2ZZI_BtoS_PSEUDO = 1460,
-  UMLSLL_VG2_M2ZZI_HtoD_PSEUDO = 1461,
-  UMLSLL_VG2_M2ZZ_BtoS_PSEUDO = 1462,
-  UMLSLL_VG2_M2ZZ_HtoD_PSEUDO = 1463,
-  UMLSLL_VG4_M4Z4Z_BtoS_PSEUDO = 1464,
-  UMLSLL_VG4_M4Z4Z_HtoD_PSEUDO = 1465,
-  UMLSLL_VG4_M4ZZI_BtoS_PSEUDO = 1466,
-  UMLSLL_VG4_M4ZZI_HtoD_PSEUDO = 1467,
-  UMLSLL_VG4_M4ZZ_BtoS_PSEUDO = 1468,
-  UMLSLL_VG4_M4ZZ_HtoD_PSEUDO = 1469,
-  UMLSL_MZZI_HtoS_PSEUDO = 1470,
-  UMLSL_MZZ_HtoS_PSEUDO = 1471,
-  UMLSL_VG2_M2Z2Z_HtoS_PSEUDO = 1472,
-  UMLSL_VG2_M2ZZI_S_PSEUDO = 1473,
-  UMLSL_VG2_M2ZZ_HtoS_PSEUDO = 1474,
-  UMLSL_VG4_M4Z4Z_HtoS_PSEUDO = 1475,
-  UMLSL_VG4_M4ZZI_HtoS_PSEUDO = 1476,
-  UMLSL_VG4_M4ZZ_HtoS_PSEUDO = 1477,
-  UMOP4A_M2Z2Z_BToS_PSEUDO = 1478,
-  UMOP4A_M2Z2Z_HToS_PSEUDO = 1479,
-  UMOP4A_M2Z2Z_HtoD_PSEUDO = 1480,
-  UMOP4A_M2ZZ_BToS_PSEUDO = 1481,
-  UMOP4A_M2ZZ_HToS_PSEUDO = 1482,
-  UMOP4A_M2ZZ_HtoD_PSEUDO = 1483,
-  UMOP4A_MZ2Z_BToS_PSEUDO = 1484,
-  UMOP4A_MZ2Z_HToS_PSEUDO = 1485,
-  UMOP4A_MZ2Z_HtoD_PSEUDO = 1486,
-  UMOP4A_MZZ_BToS_PSEUDO = 1487,
-  UMOP4A_MZZ_HToS_PSEUDO = 1488,
-  UMOP4A_MZZ_HtoD_PSEUDO = 1489,
-  UMOP4S_M2Z2Z_BToS_PSEUDO = 1490,
-  UMOP4S_M2Z2Z_HToS_PSEUDO = 1491,
-  UMOP4S_M2Z2Z_HtoD_PSEUDO = 1492,
-  UMOP4S_M2ZZ_BToS_PSEUDO = 1493,
-  UMOP4S_M2ZZ_HToS_PSEUDO = 1494,
-  UMOP4S_M2ZZ_HtoD_PSEUDO = 1495,
-  UMOP4S_MZ2Z_BToS_PSEUDO = 1496,
-  UMOP4S_MZ2Z_HToS_PSEUDO = 1497,
-  UMOP4S_MZ2Z_HtoD_PSEUDO = 1498,
-  UMOP4S_MZZ_BToS_PSEUDO = 1499,
-  UMOP4S_MZZ_HToS_PSEUDO = 1500,
-  UMOP4S_MZZ_HtoD_PSEUDO = 1501,
-  UMOPA_MPPZZ_D_PSEUDO = 1502,
-  UMOPA_MPPZZ_HtoS_PSEUDO = 1503,
-  UMOPA_MPPZZ_S_PSEUDO = 1504,
-  UMOPS_MPPZZ_D_PSEUDO = 1505,
-  UMOPS_MPPZZ_HtoS_PSEUDO = 1506,
-  UMOPS_MPPZZ_S_PSEUDO = 1507,
-  UMULH_ZPZZ_B_UNDEF = 1508,
-  UMULH_ZPZZ_D_UNDEF = 1509,
-  UMULH_ZPZZ_H_UNDEF = 1510,
-  UMULH_ZPZZ_S_UNDEF = 1511,
-  UQRSHL_ZPZZ_B_UNDEF = 1512,
-  UQRSHL_ZPZZ_D_UNDEF = 1513,
-  UQRSHL_ZPZZ_H_UNDEF = 1514,
-  UQRSHL_ZPZZ_S_UNDEF = 1515,
-  UQSHL_ZPZI_B_ZERO = 1516,
-  UQSHL_ZPZI_D_ZERO = 1517,
-  UQSHL_ZPZI_H_ZERO = 1518,
-  UQSHL_ZPZI_S_ZERO = 1519,
-  UQSHL_ZPZZ_B_UNDEF = 1520,
-  UQSHL_ZPZZ_D_UNDEF = 1521,
-  UQSHL_ZPZZ_H_UNDEF = 1522,
-  UQSHL_ZPZZ_S_UNDEF = 1523,
-  URECPE_ZPmZ_S_UNDEF = 1524,
-  URSHL_ZPZZ_B_UNDEF = 1525,
-  URSHL_ZPZZ_D_UNDEF = 1526,
-  URSHL_ZPZZ_H_UNDEF = 1527,
-  URSHL_ZPZZ_S_UNDEF = 1528,
-  URSHR_ZPZI_B_ZERO = 1529,
-  URSHR_ZPZI_D_ZERO = 1530,
-  URSHR_ZPZI_H_ZERO = 1531,
-  URSHR_ZPZI_S_ZERO = 1532,
-  URSQRTE_ZPmZ_S_UNDEF = 1533,
-  USDOT_VG2_M2Z2Z_BToS_PSEUDO = 1534,
-  USDOT_VG2_M2ZZI_BToS_PSEUDO = 1535,
-  USDOT_VG2_M2ZZ_BToS_PSEUDO = 1536,
-  USDOT_VG4_M4Z4Z_BToS_PSEUDO = 1537,
-  USDOT_VG4_M4ZZI_BToS_PSEUDO = 1538,
-  USDOT_VG4_M4ZZ_BToS_PSEUDO = 1539,
-  USMLALL_MZZI_BtoS_PSEUDO = 1540,
-  USMLALL_MZZ_BtoS_PSEUDO = 1541,
-  USMLALL_VG2_M2Z2Z_BtoS_PSEUDO = 1542,
-  USMLALL_VG2_M2ZZI_BtoS_PSEUDO = 1543,
-  USMLALL_VG2_M2ZZ_BtoS_PSEUDO = 1544,
-  USMLALL_VG4_M4Z4Z_BtoS_PSEUDO = 1545,
-  USMLALL_VG4_M4ZZI_BtoS_PSEUDO = 1546,
-  USMLALL_VG4_M4ZZ_BtoS_PSEUDO = 1547,
-  USMOP4A_M2Z2Z_BToS_PSEUDO = 1548,
-  USMOP4A_M2Z2Z_HtoD_PSEUDO = 1549,
-  USMOP4A_M2ZZ_BToS_PSEUDO = 1550,
-  USMOP4A_M2ZZ_HtoD_PSEUDO = 1551,
-  USMOP4A_MZ2Z_BToS_PSEUDO = 1552,
-  USMOP4A_MZ2Z_HtoD_PSEUDO = 1553,
-  USMOP4A_MZZ_BToS_PSEUDO = 1554,
-  USMOP4A_MZZ_HtoD_PSEUDO = 1555,
-  USMOP4S_M2Z2Z_BToS_PSEUDO = 1556,
-  USMOP4S_M2Z2Z_HtoD_PSEUDO = 1557,
-  USMOP4S_M2ZZ_BToS_PSEUDO = 1558,
-  USMOP4S_M2ZZ_HtoD_PSEUDO = 1559,
-  USMOP4S_MZ2Z_BToS_PSEUDO = 1560,
-  USMOP4S_MZ2Z_HtoD_PSEUDO = 1561,
-  USMOP4S_MZZ_BToS_PSEUDO = 1562,
-  USMOP4S_MZZ_HtoD_PSEUDO = 1563,
-  USMOPA_MPPZZ_D_PSEUDO = 1564,
-  USMOPA_MPPZZ_S_PSEUDO = 1565,
-  USMOPS_MPPZZ_D_PSEUDO = 1566,
-  USMOPS_MPPZZ_S_PSEUDO = 1567,
-  USTMOPA_M2ZZZI_BtoS_PSEUDO = 1568,
-  USVDOT_VG4_M4ZZI_BToS_PSEUDO = 1569,
-  UTMOPA_M2ZZZI_BtoS_PSEUDO = 1570,
-  UTMOPA_M2ZZZI_HtoS_PSEUDO = 1571,
-  UVDOT_VG2_M2ZZI_HtoS_PSEUDO = 1572,
-  UVDOT_VG4_M4ZZI_BtoS_PSEUDO = 1573,
-  UVDOT_VG4_M4ZZI_HtoD_PSEUDO = 1574,
-  UXTB_ZPmZ_D_UNDEF = 1575,
-  UXTB_ZPmZ_H_UNDEF = 1576,
-  UXTB_ZPmZ_S_UNDEF = 1577,
-  UXTH_ZPmZ_D_UNDEF = 1578,
-  UXTH_ZPmZ_S_UNDEF = 1579,
-  UXTW_ZPmZ_D_UNDEF = 1580,
-  VGRestorePseudo = 1581,
-  VGSavePseudo = 1582,
-  ZERO_MXI_2Z_PSEUDO = 1583,
-  ZERO_MXI_4Z_PSEUDO = 1584,
-  ZERO_MXI_VG2_2Z_PSEUDO = 1585,
-  ZERO_MXI_VG2_4Z_PSEUDO = 1586,
-  ZERO_MXI_VG2_Z_PSEUDO = 1587,
-  ZERO_MXI_VG4_2Z_PSEUDO = 1588,
-  ZERO_MXI_VG4_4Z_PSEUDO = 1589,
-  ZERO_MXI_VG4_Z_PSEUDO = 1590,
-  ZERO_M_PSEUDO = 1591,
-  ZERO_T_PSEUDO = 1592,
-  ABSWr = 1593,
-  ABSXr = 1594,
-  ABS_ZPmZ_B = 1595,
-  ABS_ZPmZ_D = 1596,
-  ABS_ZPmZ_H = 1597,
-  ABS_ZPmZ_S = 1598,
-  ABS_ZPzZ_B = 1599,
-  ABS_ZPzZ_D = 1600,
-  ABS_ZPzZ_H = 1601,
-  ABS_ZPzZ_S = 1602,
-  ABSv16i8 = 1603,
-  ABSv1i64 = 1604,
-  ABSv2i32 = 1605,
-  ABSv2i64 = 1606,
-  ABSv4i16 = 1607,
-  ABSv4i32 = 1608,
-  ABSv8i16 = 1609,
-  ABSv8i8 = 1610,
-  ADCLB_ZZZ_D = 1611,
-  ADCLB_ZZZ_S = 1612,
-  ADCLT_ZZZ_D = 1613,
-  ADCLT_ZZZ_S = 1614,
-  ADCSWr = 1615,
-  ADCSXr = 1616,
-  ADCWr = 1617,
-  ADCXr = 1618,
-  ADDG = 1619,
-  ADDHA_MPPZ_D = 1620,
-  ADDHA_MPPZ_S = 1621,
-  ADDHNB_ZZZ_B = 1622,
-  ADDHNB_ZZZ_H = 1623,
-  ADDHNB_ZZZ_S = 1624,
-  ADDHNT_ZZZ_B = 1625,
-  ADDHNT_ZZZ_H = 1626,
-  ADDHNT_ZZZ_S = 1627,
-  ADDHNv2i64_v2i32 = 1628,
-  ADDHNv2i64_v4i32 = 1629,
-  ADDHNv4i32_v4i16 = 1630,
-  ADDHNv4i32_v8i16 = 1631,
-  ADDHNv8i16_v16i8 = 1632,
-  ADDHNv8i16_v8i8 = 1633,
-  ADDPL_XXI = 1634,
-  ADDPT_shift = 1635,
-  ADDP_ZPmZ_B = 1636,
-  ADDP_ZPmZ_D = 1637,
-  ADDP_ZPmZ_H = 1638,
-  ADDP_ZPmZ_S = 1639,
-  ADDPv16i8 = 1640,
-  ADDPv2i32 = 1641,
-  ADDPv2i64 = 1642,
-  ADDPv2i64p = 1643,
-  ADDPv4i16 = 1644,
-  ADDPv4i32 = 1645,
-  ADDPv8i16 = 1646,
-  ADDPv8i8 = 1647,
-  ADDQV_VPZ_B = 1648,
-  ADDQV_VPZ_D = 1649,
-  ADDQV_VPZ_H = 1650,
-  ADDQV_VPZ_S = 1651,
-  ADDSPL_XXI = 1652,
-  ADDSVL_XXI = 1653,
-  ADDSWri = 1654,
-  ADDSWrs = 1655,
-  ADDSWrx = 1656,
-  ADDSXri = 1657,
-  ADDSXrs = 1658,
-  ADDSXrx = 1659,
-  ADDSXrx64 = 1660,
-  ADDVA_MPPZ_D = 1661,
-  ADDVA_MPPZ_S = 1662,
-  ADDVL_XXI = 1663,
-  ADDVv16i8v = 1664,
-  ADDVv4i16v = 1665,
-  ADDVv4i32v = 1666,
-  ADDVv8i16v = 1667,
-  ADDVv8i8v = 1668,
-  ADDWri = 1669,
-  ADDWrs = 1670,
-  ADDWrx = 1671,
-  ADDXri = 1672,
-  ADDXrs = 1673,
-  ADDXrx = 1674,
-  ADDXrx64 = 1675,
-  ADD_VG2_2ZZ_B = 1676,
-  ADD_VG2_2ZZ_D = 1677,
-  ADD_VG2_2ZZ_H = 1678,
-  ADD_VG2_2ZZ_S = 1679,
-  ADD_VG2_M2Z2Z_D = 1680,
-  ADD_VG2_M2Z2Z_S = 1681,
-  ADD_VG2_M2ZZ_D = 1682,
-  ADD_VG2_M2ZZ_S = 1683,
-  ADD_VG2_M2Z_D = 1684,
-  ADD_VG2_M2Z_S = 1685,
-  ADD_VG4_4ZZ_B = 1686,
-  ADD_VG4_4ZZ_D = 1687,
-  ADD_VG4_4ZZ_H = 1688,
-  ADD_VG4_4ZZ_S = 1689,
-  ADD_VG4_M4Z4Z_D = 1690,
-  ADD_VG4_M4Z4Z_S = 1691,
-  ADD_VG4_M4ZZ_D = 1692,
-  ADD_VG4_M4ZZ_S = 1693,
-  ADD_VG4_M4Z_D = 1694,
-  ADD_VG4_M4Z_S = 1695,
-  ADD_ZI_B = 1696,
-  ADD_ZI_D = 1697,
-  ADD_ZI_H = 1698,
-  ADD_ZI_S = 1699,
-  ADD_ZPmZ_B = 1700,
-  ADD_ZPmZ_CPA = 1701,
-  ADD_ZPmZ_D = 1702,
-  ADD_ZPmZ_H = 1703,
-  ADD_ZPmZ_S = 1704,
-  ADD_ZZZ_B = 1705,
-  ADD_ZZZ_CPA = 1706,
-  ADD_ZZZ_D = 1707,
-  ADD_ZZZ_H = 1708,
-  ADD_ZZZ_S = 1709,
-  ADDv16i8 = 1710,
-  ADDv1i64 = 1711,
-  ADDv2i32 = 1712,
-  ADDv2i64 = 1713,
-  ADDv4i16 = 1714,
-  ADDv4i32 = 1715,
-  ADDv8i16 = 1716,
-  ADDv8i8 = 1717,
-  ADR = 1718,
-  ADRP = 1719,
-  ADR_LSL_ZZZ_D_0 = 1720,
-  ADR_LSL_ZZZ_D_1 = 1721,
-  ADR_LSL_ZZZ_D_2 = 1722,
-  ADR_LSL_ZZZ_D_3 = 1723,
-  ADR_LSL_ZZZ_S_0 = 1724,
-  ADR_LSL_ZZZ_S_1 = 1725,
-  ADR_LSL_ZZZ_S_2 = 1726,
-  ADR_LSL_ZZZ_S_3 = 1727,
-  ADR_SXTW_ZZZ_D_0 = 1728,
-  ADR_SXTW_ZZZ_D_1 = 1729,
-  ADR_SXTW_ZZZ_D_2 = 1730,
-  ADR_SXTW_ZZZ_D_3 = 1731,
-  ADR_UXTW_ZZZ_D_0 = 1732,
-  ADR_UXTW_ZZZ_D_1 = 1733,
-  ADR_UXTW_ZZZ_D_2 = 1734,
-  ADR_UXTW_ZZZ_D_3 = 1735,
-  AESDMIC_2ZZI_B = 1736,
-  AESDMIC_4ZZI_B = 1737,
-  AESD_2ZZI_B = 1738,
-  AESD_4ZZI_B = 1739,
-  AESD_ZZZ_B = 1740,
-  AESDrr = 1741,
-  AESEMC_2ZZI_B = 1742,
-  AESEMC_4ZZI_B = 1743,
-  AESE_2ZZI_B = 1744,
-  AESE_4ZZI_B = 1745,
-  AESE_ZZZ_B = 1746,
-  AESErr = 1747,
-  AESIMC_ZZ_B = 1748,
-  AESIMCrr = 1749,
-  AESMC_ZZ_B = 1750,
-  AESMCrr = 1751,
-  ANDQV_VPZ_B = 1752,
-  ANDQV_VPZ_D = 1753,
-  ANDQV_VPZ_H = 1754,
-  ANDQV_VPZ_S = 1755,
-  ANDSWri = 1756,
-  ANDSWrs = 1757,
-  ANDSXri = 1758,
-  ANDSXrs = 1759,
-  ANDS_PPzPP = 1760,
-  ANDV_VPZ_B = 1761,
-  ANDV_VPZ_D = 1762,
-  ANDV_VPZ_H = 1763,
-  ANDV_VPZ_S = 1764,
-  ANDWri = 1765,
-  ANDWrs = 1766,
-  ANDXri = 1767,
-  ANDXrs = 1768,
-  AND_PPzPP = 1769,
-  AND_ZI = 1770,
-  AND_ZPmZ_B = 1771,
-  AND_ZPmZ_D = 1772,
-  AND_ZPmZ_H = 1773,
-  AND_ZPmZ_S = 1774,
-  AND_ZZZ = 1775,
-  ANDv16i8 = 1776,
-  ANDv8i8 = 1777,
-  APAS = 1778,
-  ASRD_ZPmI_B = 1779,
-  ASRD_ZPmI_D = 1780,
-  ASRD_ZPmI_H = 1781,
-  ASRD_ZPmI_S = 1782,
-  ASRR_ZPmZ_B = 1783,
-  ASRR_ZPmZ_D = 1784,
-  ASRR_ZPmZ_H = 1785,
-  ASRR_ZPmZ_S = 1786,
-  ASRVWr = 1787,
-  ASRVXr = 1788,
-  ASR_WIDE_ZPmZ_B = 1789,
-  ASR_WIDE_ZPmZ_H = 1790,
-  ASR_WIDE_ZPmZ_S = 1791,
-  ASR_WIDE_ZZZ_B = 1792,
-  ASR_WIDE_ZZZ_H = 1793,
-  ASR_WIDE_ZZZ_S = 1794,
-  ASR_ZPmI_B = 1795,
-  ASR_ZPmI_D = 1796,
-  ASR_ZPmI_H = 1797,
-  ASR_ZPmI_S = 1798,
-  ASR_ZPmZ_B = 1799,
-  ASR_ZPmZ_D = 1800,
-  ASR_ZPmZ_H = 1801,
-  ASR_ZPmZ_S = 1802,
-  ASR_ZZI_B = 1803,
-  ASR_ZZI_D = 1804,
-  ASR_ZZI_H = 1805,
-  ASR_ZZI_S = 1806,
-  AUTDA = 1807,
-  AUTDB = 1808,
-  AUTDZA = 1809,
-  AUTDZB = 1810,
-  AUTIA = 1811,
-  AUTIA1716 = 1812,
-  AUTIA171615 = 1813,
-  AUTIASP = 1814,
-  AUTIASPPCi = 1815,
-  AUTIASPPCr = 1816,
-  AUTIAZ = 1817,
-  AUTIB = 1818,
-  AUTIB1716 = 1819,
-  AUTIB171615 = 1820,
-  AUTIBSP = 1821,
-  AUTIBSPPCi = 1822,
-  AUTIBSPPCr = 1823,
-  AUTIBZ = 1824,
-  AUTIZA = 1825,
-  AUTIZB = 1826,
-  AXFLAG = 1827,
-  B = 1828,
-  BCAX = 1829,
-  BCAX_ZZZZ = 1830,
-  BCcc = 1831,
-  BDEP_ZZZ_B = 1832,
-  BDEP_ZZZ_D = 1833,
-  BDEP_ZZZ_H = 1834,
-  BDEP_ZZZ_S = 1835,
-  BEXT_ZZZ_B = 1836,
-  BEXT_ZZZ_D = 1837,
-  BEXT_ZZZ_H = 1838,
-  BEXT_ZZZ_S = 1839,
-  BF16DOTlanev4bf16 = 1840,
-  BF16DOTlanev8bf16 = 1841,
-  BF1CVTL = 1842,
-  BF1CVTL2 = 1843,
-  BF1CVTLT_ZZ_BtoH = 1844,
-  BF1CVTL_2ZZ_BtoH = 1845,
-  BF1CVT_2ZZ_BtoH = 1846,
-  BF1CVT_ZZ_BtoH = 1847,
-  BF2CVTL = 1848,
-  BF2CVTL2 = 1849,
-  BF2CVTLT_ZZ_BtoH = 1850,
-  BF2CVTL_2ZZ_BtoH = 1851,
-  BF2CVT_2ZZ_BtoH = 1852,
-  BF2CVT_ZZ_BtoH = 1853,
-  BFADD_VG2_M2Z_H = 1854,
-  BFADD_VG4_M4Z_H = 1855,
-  BFADD_ZPmZZ = 1856,
-  BFADD_ZZZ = 1857,
-  BFCLAMP_VG2_2ZZZ_H = 1858,
-  BFCLAMP_VG4_4ZZZ_H = 1859,
-  BFCLAMP_ZZZ = 1860,
-  BFCVT = 1861,
-  BFCVTN = 1862,
-  BFCVTN2 = 1863,
-  BFCVTNT_ZPmZ = 1864,
-  BFCVTNT_ZPzZ = 1865,
-  BFCVTN_Z2Z_HtoB = 1866,
-  BFCVTN_Z2Z_StoH = 1867,
-  BFCVT_Z2Z_HtoB = 1868,
-  BFCVT_Z2Z_StoH = 1869,
-  BFCVT_ZPmZ = 1870,
-  BFCVT_ZPzZ_StoH = 1871,
-  BFDOT_VG2_M2Z2Z_HtoS = 1872,
-  BFDOT_VG2_M2ZZI_HtoS = 1873,
-  BFDOT_VG2_M2ZZ_HtoS = 1874,
-  BFDOT_VG4_M4Z4Z_HtoS = 1875,
-  BFDOT_VG4_M4ZZI_HtoS = 1876,
-  BFDOT_VG4_M4ZZ_HtoS = 1877,
-  BFDOT_ZZI = 1878,
-  BFDOT_ZZZ = 1879,
-  BFDOTv4bf16 = 1880,
-  BFDOTv8bf16 = 1881,
-  BFMAXNM_VG2_2Z2Z_H = 1882,
-  BFMAXNM_VG2_2ZZ_H = 1883,
-  BFMAXNM_VG4_4Z2Z_H = 1884,
-  BFMAXNM_VG4_4ZZ_H = 1885,
-  BFMAXNM_ZPmZZ = 1886,
-  BFMAX_VG2_2Z2Z_H = 1887,
-  BFMAX_VG2_2ZZ_H = 1888,
-  BFMAX_VG4_4Z2Z_H = 1889,
-  BFMAX_VG4_4ZZ_H = 1890,
-  BFMAX_ZPmZZ = 1891,
-  BFMINNM_VG2_2Z2Z_H = 1892,
-  BFMINNM_VG2_2ZZ_H = 1893,
-  BFMINNM_VG4_4Z2Z_H = 1894,
-  BFMINNM_VG4_4ZZ_H = 1895,
-  BFMINNM_ZPmZZ = 1896,
-  BFMIN_VG2_2Z2Z_H = 1897,
-  BFMIN_VG2_2ZZ_H = 1898,
-  BFMIN_VG4_4Z2Z_H = 1899,
-  BFMIN_VG4_4ZZ_H = 1900,
-  BFMIN_ZPmZZ = 1901,
-  BFMLALB = 1902,
-  BFMLALBIdx = 1903,
-  BFMLALB_ZZZ = 1904,
-  BFMLALB_ZZZI = 1905,
-  BFMLALT = 1906,
-  BFMLALTIdx = 1907,
-  BFMLALT_ZZZ = 1908,
-  BFMLALT_ZZZI = 1909,
-  BFMLAL_MZZI_HtoS = 1910,
-  BFMLAL_MZZ_HtoS = 1911,
-  BFMLAL_VG2_M2Z2Z_HtoS = 1912,
-  BFMLAL_VG2_M2ZZI_HtoS = 1913,
-  BFMLAL_VG2_M2ZZ_HtoS = 1914,
-  BFMLAL_VG4_M4Z4Z_HtoS = 1915,
-  BFMLAL_VG4_M4ZZI_HtoS = 1916,
-  BFMLAL_VG4_M4ZZ_HtoS = 1917,
-  BFMLA_VG2_M2Z2Z = 1918,
-  BFMLA_VG2_M2ZZ = 1919,
-  BFMLA_VG2_M2ZZI = 1920,
-  BFMLA_VG4_M4Z4Z = 1921,
-  BFMLA_VG4_M4ZZ = 1922,
-  BFMLA_VG4_M4ZZI = 1923,
-  BFMLA_ZPmZZ = 1924,
-  BFMLA_ZZZI = 1925,
-  BFMLSLB_ZZZI_S = 1926,
-  BFMLSLB_ZZZ_S = 1927,
-  BFMLSLT_ZZZI_S = 1928,
-  BFMLSLT_ZZZ_S = 1929,
-  BFMLSL_MZZI_HtoS = 1930,
-  BFMLSL_MZZ_HtoS = 1931,
-  BFMLSL_VG2_M2Z2Z_HtoS = 1932,
-  BFMLSL_VG2_M2ZZI_HtoS = 1933,
-  BFMLSL_VG2_M2ZZ_HtoS = 1934,
-  BFMLSL_VG4_M4Z4Z_HtoS = 1935,
-  BFMLSL_VG4_M4ZZI_HtoS = 1936,
-  BFMLSL_VG4_M4ZZ_HtoS = 1937,
-  BFMLS_VG2_M2Z2Z = 1938,
-  BFMLS_VG2_M2ZZ = 1939,
-  BFMLS_VG2_M2ZZI = 1940,
-  BFMLS_VG4_M4Z4Z = 1941,
-  BFMLS_VG4_M4ZZ = 1942,
-  BFMLS_VG4_M4ZZI = 1943,
-  BFMLS_ZPmZZ = 1944,
-  BFMLS_ZZZI = 1945,
-  BFMMLA = 1946,
-  BFMMLA_ZZZ = 1947,
-  BFMOP4A_M2Z2Z_H = 1948,
-  BFMOP4A_M2Z2Z_S = 1949,
-  BFMOP4A_M2ZZ_H = 1950,
-  BFMOP4A_M2ZZ_S = 1951,
-  BFMOP4A_MZ2Z_H = 1952,
-  BFMOP4A_MZ2Z_S = 1953,
-  BFMOP4A_MZZ_H = 1954,
-  BFMOP4A_MZZ_S = 1955,
-  BFMOP4S_M2Z2Z_H = 1956,
-  BFMOP4S_M2Z2Z_S = 1957,
-  BFMOP4S_M2ZZ_H = 1958,
-  BFMOP4S_M2ZZ_S = 1959,
-  BFMOP4S_MZ2Z_H = 1960,
-  BFMOP4S_MZ2Z_S = 1961,
-  BFMOP4S_MZZ_H = 1962,
-  BFMOP4S_MZZ_S = 1963,
-  BFMOPA_MPPZZ = 1964,
-  BFMOPA_MPPZZ_H = 1965,
-  BFMOPS_MPPZZ = 1966,
-  BFMOPS_MPPZZ_H = 1967,
-  BFMUL_2Z2Z = 1968,
-  BFMUL_2ZZ = 1969,
-  BFMUL_4Z4Z = 1970,
-  BFMUL_4ZZ = 1971,
-  BFMUL_ZPmZZ = 1972,
-  BFMUL_ZZZ = 1973,
-  BFMUL_ZZZI = 1974,
-  BFMWri = 1975,
-  BFMXri = 1976,
-  BFSCALE_2Z2Z = 1977,
-  BFSCALE_2ZZ = 1978,
-  BFSCALE_4Z4Z = 1979,
-  BFSCALE_4ZZ = 1980,
-  BFSCALE_ZPZZ = 1981,
-  BFSUB_VG2_M2Z_H = 1982,
-  BFSUB_VG4_M4Z_H = 1983,
-  BFSUB_ZPmZZ = 1984,
-  BFSUB_ZZZ = 1985,
-  BFTMOPA_M2ZZZI_HtoH = 1986,
-  BFTMOPA_M2ZZZI_HtoS = 1987,
-  BFVDOT_VG2_M2ZZI_HtoS = 1988,
-  BGRP_ZZZ_B = 1989,
-  BGRP_ZZZ_D = 1990,
-  BGRP_ZZZ_H = 1991,
-  BGRP_ZZZ_S = 1992,
-  BICSWrs = 1993,
-  BICSXrs = 1994,
-  BICS_PPzPP = 1995,
-  BICWrs = 1996,
-  BICXrs = 1997,
-  BIC_PPzPP = 1998,
-  BIC_ZPmZ_B = 1999,
-  BIC_ZPmZ_D = 2000,
-  BIC_ZPmZ_H = 2001,
-  BIC_ZPmZ_S = 2002,
-  BIC_ZZZ = 2003,
-  BICv16i8 = 2004,
-  BICv2i32 = 2005,
-  BICv4i16 = 2006,
-  BICv4i32 = 2007,
-  BICv8i16 = 2008,
-  BICv8i8 = 2009,
-  BIFv16i8 = 2010,
-  BIFv8i8 = 2011,
-  BITv16i8 = 2012,
-  BITv8i8 = 2013,
-  BL = 2014,
-  BLR = 2015,
-  BLRAA = 2016,
-  BLRAAZ = 2017,
-  BLRAB = 2018,
-  BLRABZ = 2019,
-  BMOPA_MPPZZ_S = 2020,
-  BMOPS_MPPZZ_S = 2021,
-  BR = 2022,
-  BRAA = 2023,
-  BRAAZ = 2024,
-  BRAB = 2025,
-  BRABZ = 2026,
-  BRB_IALL = 2027,
-  BRB_INJ = 2028,
-  BRK = 2029,
-  BRKAS_PPzP = 2030,
-  BRKA_PPmP = 2031,
-  BRKA_PPzP = 2032,
-  BRKBS_PPzP = 2033,
-  BRKB_PPmP = 2034,
-  BRKB_PPzP = 2035,
-  BRKNS_PPzP = 2036,
-  BRKN_PPzP = 2037,
-  BRKPAS_PPzPP = 2038,
-  BRKPA_PPzPP = 2039,
-  BRKPBS_PPzPP = 2040,
-  BRKPB_PPzPP = 2041,
-  BSL1N_ZZZZ = 2042,
-  BSL2N_ZZZZ = 2043,
-  BSL_ZZZZ = 2044,
-  BSLv16i8 = 2045,
-  BSLv8i8 = 2046,
-  Bcc = 2047,
-  CADD_ZZI_B = 2048,
-  CADD_ZZI_D = 2049,
-  CADD_ZZI_H = 2050,
-  CADD_ZZI_S = 2051,
-  CASAB = 2052,
-  CASAH = 2053,
-  CASALB = 2054,
-  CASALH = 2055,
-  CASALTX = 2056,
-  CASALW = 2057,
-  CASALX = 2058,
-  CASATX = 2059,
-  CASAW = 2060,
-  CASAX = 2061,
-  CASB = 2062,
-  CASH = 2063,
-  CASLB = 2064,
-  CASLH = 2065,
-  CASLTX = 2066,
-  CASLW = 2067,
-  CASLX = 2068,
-  CASPALTX = 2069,
-  CASPALW = 2070,
-  CASPALX = 2071,
-  CASPATX = 2072,
-  CASPAW = 2073,
-  CASPAX = 2074,
-  CASPLTX = 2075,
-  CASPLW = 2076,
-  CASPLX = 2077,
-  CASPTX = 2078,
-  CASPW = 2079,
-  CASPX = 2080,
-  CASTX = 2081,
-  CASW = 2082,
-  CASX = 2083,
-  CBBEQWrr = 2084,
-  CBBGEWrr = 2085,
-  CBBGTWrr = 2086,
-  CBBHIWrr = 2087,
-  CBBHSWrr = 2088,
-  CBBNEWrr = 2089,
-  CBEQWri = 2090,
-  CBEQWrr = 2091,
-  CBEQXri = 2092,
-  CBEQXrr = 2093,
-  CBGEWrr = 2094,
-  CBGEXrr = 2095,
-  CBGTWri = 2096,
-  CBGTWrr = 2097,
-  CBGTXri = 2098,
-  CBGTXrr = 2099,
-  CBHEQWrr = 2100,
-  CBHGEWrr = 2101,
-  CBHGTWrr = 2102,
-  CBHHIWrr = 2103,
-  CBHHSWrr = 2104,
-  CBHIWri = 2105,
-  CBHIWrr = 2106,
-  CBHIXri = 2107,
-  CBHIXrr = 2108,
-  CBHNEWrr = 2109,
-  CBHSWrr = 2110,
-  CBHSXrr = 2111,
-  CBLOWri = 2112,
-  CBLOXri = 2113,
-  CBLTWri = 2114,
-  CBLTXri = 2115,
-  CBNEWri = 2116,
-  CBNEWrr = 2117,
-  CBNEXri = 2118,
-  CBNEXrr = 2119,
-  CBNZW = 2120,
-  CBNZX = 2121,
-  CBZW = 2122,
-  CBZX = 2123,
-  CCMNWi = 2124,
-  CCMNWr = 2125,
-  CCMNXi = 2126,
-  CCMNXr = 2127,
-  CCMPWi = 2128,
-  CCMPWr = 2129,
-  CCMPXi = 2130,
-  CCMPXr = 2131,
-  CDOT_ZZZI_D = 2132,
-  CDOT_ZZZI_S = 2133,
-  CDOT_ZZZ_D = 2134,
-  CDOT_ZZZ_S = 2135,
-  CFINV = 2136,
-  CHKFEAT = 2137,
-  CLASTA_RPZ_B = 2138,
-  CLASTA_RPZ_D = 2139,
-  CLASTA_RPZ_H = 2140,
-  CLASTA_RPZ_S = 2141,
-  CLASTA_VPZ_B = 2142,
-  CLASTA_VPZ_D = 2143,
-  CLASTA_VPZ_H = 2144,
-  CLASTA_VPZ_S = 2145,
-  CLASTA_ZPZ_B = 2146,
-  CLASTA_ZPZ_D = 2147,
-  CLASTA_ZPZ_H = 2148,
-  CLASTA_ZPZ_S = 2149,
-  CLASTB_RPZ_B = 2150,
-  CLASTB_RPZ_D = 2151,
-  CLASTB_RPZ_H = 2152,
-  CLASTB_RPZ_S = 2153,
-  CLASTB_VPZ_B = 2154,
-  CLASTB_VPZ_D = 2155,
-  CLASTB_VPZ_H = 2156,
-  CLASTB_VPZ_S = 2157,
-  CLASTB_ZPZ_B = 2158,
-  CLASTB_ZPZ_D = 2159,
-  CLASTB_ZPZ_H = 2160,
-  CLASTB_ZPZ_S = 2161,
-  CLREX = 2162,
-  CLSWr = 2163,
-  CLSXr = 2164,
-  CLS_ZPmZ_B = 2165,
-  CLS_ZPmZ_D = 2166,
-  CLS_ZPmZ_H = 2167,
-  CLS_ZPmZ_S = 2168,
-  CLS_ZPzZ_B = 2169,
-  CLS_ZPzZ_D = 2170,
-  CLS_ZPzZ_H = 2171,
-  CLS_ZPzZ_S = 2172,
-  CLSv16i8 = 2173,
-  CLSv2i32 = 2174,
-  CLSv4i16 = 2175,
-  CLSv4i32 = 2176,
-  CLSv8i16 = 2177,
-  CLSv8i8 = 2178,
-  CLZWr = 2179,
-  CLZXr = 2180,
-  CLZ_ZPmZ_B = 2181,
-  CLZ_ZPmZ_D = 2182,
-  CLZ_ZPmZ_H = 2183,
-  CLZ_ZPmZ_S = 2184,
-  CLZ_ZPzZ_B = 2185,
-  CLZ_ZPzZ_D = 2186,
-  CLZ_ZPzZ_H = 2187,
-  CLZ_ZPzZ_S = 2188,
-  CLZv16i8 = 2189,
-  CLZv2i32 = 2190,
-  CLZv4i16 = 2191,
-  CLZv4i32 = 2192,
-  CLZv8i16 = 2193,
-  CLZv8i8 = 2194,
-  CMEQv16i8 = 2195,
-  CMEQv16i8rz = 2196,
-  CMEQv1i64 = 2197,
-  CMEQv1i64rz = 2198,
-  CMEQv2i32 = 2199,
-  CMEQv2i32rz = 2200,
-  CMEQv2i64 = 2201,
-  CMEQv2i64rz = 2202,
-  CMEQv4i16 = 2203,
-  CMEQv4i16rz = 2204,
-  CMEQv4i32 = 2205,
-  CMEQv4i32rz = 2206,
-  CMEQv8i16 = 2207,
-  CMEQv8i16rz = 2208,
-  CMEQv8i8 = 2209,
-  CMEQv8i8rz = 2210,
-  CMGEv16i8 = 2211,
-  CMGEv16i8rz = 2212,
-  CMGEv1i64 = 2213,
-  CMGEv1i64rz = 2214,
-  CMGEv2i32 = 2215,
-  CMGEv2i32rz = 2216,
-  CMGEv2i64 = 2217,
-  CMGEv2i64rz = 2218,
-  CMGEv4i16 = 2219,
-  CMGEv4i16rz = 2220,
-  CMGEv4i32 = 2221,
-  CMGEv4i32rz = 2222,
-  CMGEv8i16 = 2223,
-  CMGEv8i16rz = 2224,
-  CMGEv8i8 = 2225,
-  CMGEv8i8rz = 2226,
-  CMGTv16i8 = 2227,
-  CMGTv16i8rz = 2228,
-  CMGTv1i64 = 2229,
-  CMGTv1i64rz = 2230,
-  CMGTv2i32 = 2231,
-  CMGTv2i32rz = 2232,
-  CMGTv2i64 = 2233,
-  CMGTv2i64rz = 2234,
-  CMGTv4i16 = 2235,
-  CMGTv4i16rz = 2236,
-  CMGTv4i32 = 2237,
-  CMGTv4i32rz = 2238,
-  CMGTv8i16 = 2239,
-  CMGTv8i16rz = 2240,
-  CMGTv8i8 = 2241,
-  CMGTv8i8rz = 2242,
-  CMHIv16i8 = 2243,
-  CMHIv1i64 = 2244,
-  CMHIv2i32 = 2245,
-  CMHIv2i64 = 2246,
-  CMHIv4i16 = 2247,
-  CMHIv4i32 = 2248,
-  CMHIv8i16 = 2249,
-  CMHIv8i8 = 2250,
-  CMHSv16i8 = 2251,
-  CMHSv1i64 = 2252,
-  CMHSv2i32 = 2253,
-  CMHSv2i64 = 2254,
-  CMHSv4i16 = 2255,
-  CMHSv4i32 = 2256,
-  CMHSv8i16 = 2257,
-  CMHSv8i8 = 2258,
-  CMLA_ZZZI_H = 2259,
-  CMLA_ZZZI_S = 2260,
-  CMLA_ZZZ_B = 2261,
-  CMLA_ZZZ_D = 2262,
-  CMLA_ZZZ_H = 2263,
-  CMLA_ZZZ_S = 2264,
-  CMLEv16i8rz = 2265,
-  CMLEv1i64rz = 2266,
-  CMLEv2i32rz = 2267,
-  CMLEv2i64rz = 2268,
-  CMLEv4i16rz = 2269,
-  CMLEv4i32rz = 2270,
-  CMLEv8i16rz = 2271,
-  CMLEv8i8rz = 2272,
-  CMLTv16i8rz = 2273,
-  CMLTv1i64rz = 2274,
-  CMLTv2i32rz = 2275,
-  CMLTv2i64rz = 2276,
-  CMLTv4i16rz = 2277,
-  CMLTv4i32rz = 2278,
-  CMLTv8i16rz = 2279,
-  CMLTv8i8rz = 2280,
-  CMPEQ_PPzZI_B = 2281,
-  CMPEQ_PPzZI_D = 2282,
-  CMPEQ_PPzZI_H = 2283,
-  CMPEQ_PPzZI_S = 2284,
-  CMPEQ_PPzZZ_B = 2285,
-  CMPEQ_PPzZZ_D = 2286,
-  CMPEQ_PPzZZ_H = 2287,
-  CMPEQ_PPzZZ_S = 2288,
-  CMPEQ_WIDE_PPzZZ_B = 2289,
-  CMPEQ_WIDE_PPzZZ_H = 2290,
-  CMPEQ_WIDE_PPzZZ_S = 2291,
-  CMPGE_PPzZI_B = 2292,
-  CMPGE_PPzZI_D = 2293,
-  CMPGE_PPzZI_H = 2294,
-  CMPGE_PPzZI_S = 2295,
-  CMPGE_PPzZZ_B = 2296,
-  CMPGE_PPzZZ_D = 2297,
-  CMPGE_PPzZZ_H = 2298,
-  CMPGE_PPzZZ_S = 2299,
-  CMPGE_WIDE_PPzZZ_B = 2300,
-  CMPGE_WIDE_PPzZZ_H = 2301,
-  CMPGE_WIDE_PPzZZ_S = 2302,
-  CMPGT_PPzZI_B = 2303,
-  CMPGT_PPzZI_D = 2304,
-  CMPGT_PPzZI_H = 2305,
-  CMPGT_PPzZI_S = 2306,
-  CMPGT_PPzZZ_B = 2307,
-  CMPGT_PPzZZ_D = 2308,
-  CMPGT_PPzZZ_H = 2309,
-  CMPGT_PPzZZ_S = 2310,
-  CMPGT_WIDE_PPzZZ_B = 2311,
-  CMPGT_WIDE_PPzZZ_H = 2312,
-  CMPGT_WIDE_PPzZZ_S = 2313,
-  CMPHI_PPzZI_B = 2314,
-  CMPHI_PPzZI_D = 2315,
-  CMPHI_PPzZI_H = 2316,
-  CMPHI_PPzZI_S = 2317,
-  CMPHI_PPzZZ_B = 2318,
-  CMPHI_PPzZZ_D = 2319,
-  CMPHI_PPzZZ_H = 2320,
-  CMPHI_PPzZZ_S = 2321,
-  CMPHI_WIDE_PPzZZ_B = 2322,
-  CMPHI_WIDE_PPzZZ_H = 2323,
-  CMPHI_WIDE_PPzZZ_S = 2324,
-  CMPHS_PPzZI_B = 2325,
-  CMPHS_PPzZI_D = 2326,
-  CMPHS_PPzZI_H = 2327,
-  CMPHS_PPzZI_S = 2328,
-  CMPHS_PPzZZ_B = 2329,
-  CMPHS_PPzZZ_D = 2330,
-  CMPHS_PPzZZ_H = 2331,
-  CMPHS_PPzZZ_S = 2332,
-  CMPHS_WIDE_PPzZZ_B = 2333,
-  CMPHS_WIDE_PPzZZ_H = 2334,
-  CMPHS_WIDE_PPzZZ_S = 2335,
-  CMPLE_PPzZI_B = 2336,
-  CMPLE_PPzZI_D = 2337,
-  CMPLE_PPzZI_H = 2338,
-  CMPLE_PPzZI_S = 2339,
-  CMPLE_WIDE_PPzZZ_B = 2340,
-  CMPLE_WIDE_PPzZZ_H = 2341,
-  CMPLE_WIDE_PPzZZ_S = 2342,
-  CMPLO_PPzZI_B = 2343,
-  CMPLO_PPzZI_D = 2344,
-  CMPLO_PPzZI_H = 2345,
-  CMPLO_PPzZI_S = 2346,
-  CMPLO_WIDE_PPzZZ_B = 2347,
-  CMPLO_WIDE_PPzZZ_H = 2348,
-  CMPLO_WIDE_PPzZZ_S = 2349,
-  CMPLS_PPzZI_B = 2350,
-  CMPLS_PPzZI_D = 2351,
-  CMPLS_PPzZI_H = 2352,
-  CMPLS_PPzZI_S = 2353,
-  CMPLS_WIDE_PPzZZ_B = 2354,
-  CMPLS_WIDE_PPzZZ_H = 2355,
-  CMPLS_WIDE_PPzZZ_S = 2356,
-  CMPLT_PPzZI_B = 2357,
-  CMPLT_PPzZI_D = 2358,
-  CMPLT_PPzZI_H = 2359,
-  CMPLT_PPzZI_S = 2360,
-  CMPLT_WIDE_PPzZZ_B = 2361,
-  CMPLT_WIDE_PPzZZ_H = 2362,
-  CMPLT_WIDE_PPzZZ_S = 2363,
-  CMPNE_PPzZI_B = 2364,
-  CMPNE_PPzZI_D = 2365,
-  CMPNE_PPzZI_H = 2366,
-  CMPNE_PPzZI_S = 2367,
-  CMPNE_PPzZZ_B = 2368,
-  CMPNE_PPzZZ_D = 2369,
-  CMPNE_PPzZZ_H = 2370,
-  CMPNE_PPzZZ_S = 2371,
-  CMPNE_WIDE_PPzZZ_B = 2372,
-  CMPNE_WIDE_PPzZZ_H = 2373,
-  CMPNE_WIDE_PPzZZ_S = 2374,
-  CMTSTv16i8 = 2375,
-  CMTSTv1i64 = 2376,
-  CMTSTv2i32 = 2377,
-  CMTSTv2i64 = 2378,
-  CMTSTv4i16 = 2379,
-  CMTSTv4i32 = 2380,
-  CMTSTv8i16 = 2381,
-  CMTSTv8i8 = 2382,
-  CNOT_ZPmZ_B = 2383,
-  CNOT_ZPmZ_D = 2384,
-  CNOT_ZPmZ_H = 2385,
-  CNOT_ZPmZ_S = 2386,
-  CNOT_ZPzZ_B = 2387,
-  CNOT_ZPzZ_D = 2388,
-  CNOT_ZPzZ_H = 2389,
-  CNOT_ZPzZ_S = 2390,
-  CNTB_XPiI = 2391,
-  CNTD_XPiI = 2392,
-  CNTH_XPiI = 2393,
-  CNTP_XCI_B = 2394,
-  CNTP_XCI_D = 2395,
-  CNTP_XCI_H = 2396,
-  CNTP_XCI_S = 2397,
-  CNTP_XPP_B = 2398,
-  CNTP_XPP_D = 2399,
-  CNTP_XPP_H = 2400,
-  CNTP_XPP_S = 2401,
-  CNTW_XPiI = 2402,
-  CNTWr = 2403,
-  CNTXr = 2404,
-  CNT_ZPmZ_B = 2405,
-  CNT_ZPmZ_D = 2406,
-  CNT_ZPmZ_H = 2407,
-  CNT_ZPmZ_S = 2408,
-  CNT_ZPzZ_B = 2409,
-  CNT_ZPzZ_D = 2410,
-  CNT_ZPzZ_H = 2411,
-  CNT_ZPzZ_S = 2412,
-  CNTv16i8 = 2413,
-  CNTv8i8 = 2414,
-  COMPACT_ZPZ_B = 2415,
-  COMPACT_ZPZ_D = 2416,
-  COMPACT_ZPZ_H = 2417,
-  COMPACT_ZPZ_S = 2418,
-  CPYE = 2419,
-  CPYEN = 2420,
-  CPYERN = 2421,
-  CPYERT = 2422,
-  CPYERTN = 2423,
-  CPYERTRN = 2424,
-  CPYERTWN = 2425,
-  CPYET = 2426,
-  CPYETN = 2427,
-  CPYETRN = 2428,
-  CPYETWN = 2429,
-  CPYEWN = 2430,
-  CPYEWT = 2431,
-  CPYEWTN = 2432,
-  CPYEWTRN = 2433,
-  CPYEWTWN = 2434,
-  CPYFE = 2435,
-  CPYFEN = 2436,
-  CPYFERN = 2437,
-  CPYFERT = 2438,
-  CPYFERTN = 2439,
-  CPYFERTRN = 2440,
-  CPYFERTWN = 2441,
-  CPYFET = 2442,
-  CPYFETN = 2443,
-  CPYFETRN = 2444,
-  CPYFETWN = 2445,
-  CPYFEWN = 2446,
-  CPYFEWT = 2447,
-  CPYFEWTN = 2448,
-  CPYFEWTRN = 2449,
-  CPYFEWTWN = 2450,
-  CPYFM = 2451,
-  CPYFMN = 2452,
-  CPYFMRN = 2453,
-  CPYFMRT = 2454,
-  CPYFMRTN = 2455,
-  CPYFMRTRN = 2456,
-  CPYFMRTWN = 2457,
-  CPYFMT = 2458,
-  CPYFMTN = 2459,
-  CPYFMTRN = 2460,
-  CPYFMTWN = 2461,
-  CPYFMWN = 2462,
-  CPYFMWT = 2463,
-  CPYFMWTN = 2464,
-  CPYFMWTRN = 2465,
-  CPYFMWTWN = 2466,
-  CPYFP = 2467,
-  CPYFPN = 2468,
-  CPYFPRN = 2469,
-  CPYFPRT = 2470,
-  CPYFPRTN = 2471,
-  CPYFPRTRN = 2472,
-  CPYFPRTWN = 2473,
-  CPYFPT = 2474,
-  CPYFPTN = 2475,
-  CPYFPTRN = 2476,
-  CPYFPTWN = 2477,
-  CPYFPWN = 2478,
-  CPYFPWT = 2479,
-  CPYFPWTN = 2480,
-  CPYFPWTRN = 2481,
-  CPYFPWTWN = 2482,
-  CPYM = 2483,
-  CPYMN = 2484,
-  CPYMRN = 2485,
-  CPYMRT = 2486,
-  CPYMRTN = 2487,
-  CPYMRTRN = 2488,
-  CPYMRTWN = 2489,
-  CPYMT = 2490,
-  CPYMTN = 2491,
-  CPYMTRN = 2492,
-  CPYMTWN = 2493,
-  CPYMWN = 2494,
-  CPYMWT = 2495,
-  CPYMWTN = 2496,
-  CPYMWTRN = 2497,
-  CPYMWTWN = 2498,
-  CPYP = 2499,
-  CPYPN = 2500,
-  CPYPRN = 2501,
-  CPYPRT = 2502,
-  CPYPRTN = 2503,
-  CPYPRTRN = 2504,
-  CPYPRTWN = 2505,
-  CPYPT = 2506,
-  CPYPTN = 2507,
-  CPYPTRN = 2508,
-  CPYPTWN = 2509,
-  CPYPWN = 2510,
-  CPYPWT = 2511,
-  CPYPWTN = 2512,
-  CPYPWTRN = 2513,
-  CPYPWTWN = 2514,
-  CPY_ZPmI_B = 2515,
-  CPY_ZPmI_D = 2516,
-  CPY_ZPmI_H = 2517,
-  CPY_ZPmI_S = 2518,
-  CPY_ZPmR_B = 2519,
-  CPY_ZPmR_D = 2520,
-  CPY_ZPmR_H = 2521,
-  CPY_ZPmR_S = 2522,
-  CPY_ZPmV_B = 2523,
-  CPY_ZPmV_D = 2524,
-  CPY_ZPmV_H = 2525,
-  CPY_ZPmV_S = 2526,
-  CPY_ZPzI_B = 2527,
-  CPY_ZPzI_D = 2528,
-  CPY_ZPzI_H = 2529,
-  CPY_ZPzI_S = 2530,
-  CRC32Brr = 2531,
-  CRC32CBrr = 2532,
-  CRC32CHrr = 2533,
-  CRC32CWrr = 2534,
-  CRC32CXrr = 2535,
-  CRC32Hrr = 2536,
-  CRC32Wrr = 2537,
-  CRC32Xrr = 2538,
-  CSELWr = 2539,
-  CSELXr = 2540,
-  CSINCWr = 2541,
-  CSINCXr = 2542,
-  CSINVWr = 2543,
-  CSINVXr = 2544,
-  CSNEGWr = 2545,
-  CSNEGXr = 2546,
-  CTERMEQ_WW = 2547,
-  CTERMEQ_XX = 2548,
-  CTERMNE_WW = 2549,
-  CTERMNE_XX = 2550,
-  CTZWr = 2551,
-  CTZXr = 2552,
-  DCPS1 = 2553,
-  DCPS2 = 2554,
-  DCPS3 = 2555,
-  DECB_XPiI = 2556,
-  DECD_XPiI = 2557,
-  DECD_ZPiI = 2558,
-  DECH_XPiI = 2559,
-  DECH_ZPiI = 2560,
-  DECP_XP_B = 2561,
-  DECP_XP_D = 2562,
-  DECP_XP_H = 2563,
-  DECP_XP_S = 2564,
-  DECP_ZP_D = 2565,
-  DECP_ZP_H = 2566,
-  DECP_ZP_S = 2567,
-  DECW_XPiI = 2568,
-  DECW_ZPiI = 2569,
-  DMB = 2570,
-  DRPS = 2571,
-  DSB = 2572,
-  DSBnXS = 2573,
-  DUPM_ZI = 2574,
-  DUPQ_ZZI_B = 2575,
-  DUPQ_ZZI_D = 2576,
-  DUPQ_ZZI_H = 2577,
-  DUPQ_ZZI_S = 2578,
-  DUP_ZI_B = 2579,
-  DUP_ZI_D = 2580,
-  DUP_ZI_H = 2581,
-  DUP_ZI_S = 2582,
-  DUP_ZR_B = 2583,
-  DUP_ZR_D = 2584,
-  DUP_ZR_H = 2585,
-  DUP_ZR_S = 2586,
-  DUP_ZZI_B = 2587,
-  DUP_ZZI_D = 2588,
-  DUP_ZZI_H = 2589,
-  DUP_ZZI_Q = 2590,
-  DUP_ZZI_S = 2591,
-  DUPi16 = 2592,
-  DUPi32 = 2593,
-  DUPi64 = 2594,
-  DUPi8 = 2595,
-  DUPv16i8gpr = 2596,
-  DUPv16i8lane = 2597,
-  DUPv2i32gpr = 2598,
-  DUPv2i32lane = 2599,
-  DUPv2i64gpr = 2600,
-  DUPv2i64lane = 2601,
-  DUPv4i16gpr = 2602,
-  DUPv4i16lane = 2603,
-  DUPv4i32gpr = 2604,
-  DUPv4i32lane = 2605,
-  DUPv8i16gpr = 2606,
-  DUPv8i16lane = 2607,
-  DUPv8i8gpr = 2608,
-  DUPv8i8lane = 2609,
-  EONWrs = 2610,
-  EONXrs = 2611,
-  EOR3 = 2612,
-  EOR3_ZZZZ = 2613,
-  EORBT_ZZZ_B = 2614,
-  EORBT_ZZZ_D = 2615,
-  EORBT_ZZZ_H = 2616,
-  EORBT_ZZZ_S = 2617,
-  EORQV_VPZ_B = 2618,
-  EORQV_VPZ_D = 2619,
-  EORQV_VPZ_H = 2620,
-  EORQV_VPZ_S = 2621,
-  EORS_PPzPP = 2622,
-  EORTB_ZZZ_B = 2623,
-  EORTB_ZZZ_D = 2624,
-  EORTB_ZZZ_H = 2625,
-  EORTB_ZZZ_S = 2626,
-  EORV_VPZ_B = 2627,
-  EORV_VPZ_D = 2628,
-  EORV_VPZ_H = 2629,
-  EORV_VPZ_S = 2630,
-  EORWri = 2631,
-  EORWrs = 2632,
-  EORXri = 2633,
-  EORXrs = 2634,
-  EOR_PPzPP = 2635,
-  EOR_ZI = 2636,
-  EOR_ZPmZ_B = 2637,
-  EOR_ZPmZ_D = 2638,
-  EOR_ZPmZ_H = 2639,
-  EOR_ZPmZ_S = 2640,
-  EOR_ZZZ = 2641,
-  EORv16i8 = 2642,
-  EORv8i8 = 2643,
-  ERET = 2644,
-  ERETAA = 2645,
-  ERETAB = 2646,
-  EXPAND_ZPZ_B = 2647,
-  EXPAND_ZPZ_D = 2648,
-  EXPAND_ZPZ_H = 2649,
-  EXPAND_ZPZ_S = 2650,
-  EXTQ_ZZI = 2651,
-  EXTRACT_ZPMXI_H_B = 2652,
-  EXTRACT_ZPMXI_H_D = 2653,
-  EXTRACT_ZPMXI_H_H = 2654,
-  EXTRACT_ZPMXI_H_Q = 2655,
-  EXTRACT_ZPMXI_H_S = 2656,
-  EXTRACT_ZPMXI_V_B = 2657,
-  EXTRACT_ZPMXI_V_D = 2658,
-  EXTRACT_ZPMXI_V_H = 2659,
-  EXTRACT_ZPMXI_V_Q = 2660,
-  EXTRACT_ZPMXI_V_S = 2661,
-  EXTRWrri = 2662,
-  EXTRXrri = 2663,
-  EXT_ZZI = 2664,
-  EXT_ZZI_B = 2665,
-  EXTv16i8 = 2666,
-  EXTv8i8 = 2667,
-  F1CVTL = 2668,
-  F1CVTL2 = 2669,
-  F1CVTLT_ZZ_BtoH = 2670,
-  F1CVTL_2ZZ_BtoH = 2671,
-  F1CVT_2ZZ_BtoH = 2672,
-  F1CVT_ZZ_BtoH = 2673,
-  F2CVTL = 2674,
-  F2CVTL2 = 2675,
-  F2CVTLT_ZZ_BtoH = 2676,
-  F2CVTL_2ZZ_BtoH = 2677,
-  F2CVT_2ZZ_BtoH = 2678,
-  F2CVT_ZZ_BtoH = 2679,
-  FABD16 = 2680,
-  FABD32 = 2681,
-  FABD64 = 2682,
-  FABD_ZPmZ_D = 2683,
-  FABD_ZPmZ_H = 2684,
-  FABD_ZPmZ_S = 2685,
-  FABDv2f32 = 2686,
-  FABDv2f64 = 2687,
-  FABDv4f16 = 2688,
-  FABDv4f32 = 2689,
-  FABDv8f16 = 2690,
-  FABSDr = 2691,
-  FABSHr = 2692,
-  FABSSr = 2693,
-  FABS_ZPmZ_D = 2694,
-  FABS_ZPmZ_H = 2695,
-  FABS_ZPmZ_S = 2696,
-  FABS_ZPzZ_D = 2697,
-  FABS_ZPzZ_H = 2698,
-  FABS_ZPzZ_S = 2699,
-  FABSv2f32 = 2700,
-  FABSv2f64 = 2701,
-  FABSv4f16 = 2702,
-  FABSv4f32 = 2703,
-  FABSv8f16 = 2704,
-  FACGE16 = 2705,
-  FACGE32 = 2706,
-  FACGE64 = 2707,
-  FACGE_PPzZZ_D = 2708,
-  FACGE_PPzZZ_H = 2709,
-  FACGE_PPzZZ_S = 2710,
-  FACGEv2f32 = 2711,
-  FACGEv2f64 = 2712,
-  FACGEv4f16 = 2713,
-  FACGEv4f32 = 2714,
-  FACGEv8f16 = 2715,
-  FACGT16 = 2716,
-  FACGT32 = 2717,
-  FACGT64 = 2718,
-  FACGT_PPzZZ_D = 2719,
-  FACGT_PPzZZ_H = 2720,
-  FACGT_PPzZZ_S = 2721,
-  FACGTv2f32 = 2722,
-  FACGTv2f64 = 2723,
-  FACGTv4f16 = 2724,
-  FACGTv4f32 = 2725,
-  FACGTv8f16 = 2726,
-  FADDA_VPZ_D = 2727,
-  FADDA_VPZ_H = 2728,
-  FADDA_VPZ_S = 2729,
-  FADDDrr = 2730,
-  FADDHrr = 2731,
-  FADDP_ZPmZZ_D = 2732,
-  FADDP_ZPmZZ_H = 2733,
-  FADDP_ZPmZZ_S = 2734,
-  FADDPv2f32 = 2735,
-  FADDPv2f64 = 2736,
-  FADDPv2i16p = 2737,
-  FADDPv2i32p = 2738,
-  FADDPv2i64p = 2739,
-  FADDPv4f16 = 2740,
-  FADDPv4f32 = 2741,
-  FADDPv8f16 = 2742,
-  FADDQV_D = 2743,
-  FADDQV_H = 2744,
-  FADDQV_S = 2745,
-  FADDSrr = 2746,
-  FADDV_VPZ_D = 2747,
-  FADDV_VPZ_H = 2748,
-  FADDV_VPZ_S = 2749,
-  FADD_VG2_M2Z_D = 2750,
-  FADD_VG2_M2Z_H = 2751,
-  FADD_VG2_M2Z_S = 2752,
-  FADD_VG4_M4Z_D = 2753,
-  FADD_VG4_M4Z_H = 2754,
-  FADD_VG4_M4Z_S = 2755,
-  FADD_ZPmI_D = 2756,
-  FADD_ZPmI_H = 2757,
-  FADD_ZPmI_S = 2758,
-  FADD_ZPmZ_D = 2759,
-  FADD_ZPmZ_H = 2760,
-  FADD_ZPmZ_S = 2761,
-  FADD_ZZZ_D = 2762,
-  FADD_ZZZ_H = 2763,
-  FADD_ZZZ_S = 2764,
-  FADDv2f32 = 2765,
-  FADDv2f64 = 2766,
-  FADDv4f16 = 2767,
-  FADDv4f32 = 2768,
-  FADDv8f16 = 2769,
-  FAMAX_2Z2Z_D = 2770,
-  FAMAX_2Z2Z_H = 2771,
-  FAMAX_2Z2Z_S = 2772,
-  FAMAX_4Z4Z_D = 2773,
-  FAMAX_4Z4Z_H = 2774,
-  FAMAX_4Z4Z_S = 2775,
-  FAMAX_ZPmZ_D = 2776,
-  FAMAX_ZPmZ_H = 2777,
-  FAMAX_ZPmZ_S = 2778,
-  FAMAXv2f32 = 2779,
-  FAMAXv2f64 = 2780,
-  FAMAXv4f16 = 2781,
-  FAMAXv4f32 = 2782,
-  FAMAXv8f16 = 2783,
-  FAMIN_2Z2Z_D = 2784,
-  FAMIN_2Z2Z_H = 2785,
-  FAMIN_2Z2Z_S = 2786,
-  FAMIN_4Z4Z_D = 2787,
-  FAMIN_4Z4Z_H = 2788,
-  FAMIN_4Z4Z_S = 2789,
-  FAMIN_ZPmZ_D = 2790,
-  FAMIN_ZPmZ_H = 2791,
-  FAMIN_ZPmZ_S = 2792,
-  FAMINv2f32 = 2793,
-  FAMINv2f64 = 2794,
-  FAMINv4f16 = 2795,
-  FAMINv4f32 = 2796,
-  FAMINv8f16 = 2797,
-  FCADD_ZPmZ_D = 2798,
-  FCADD_ZPmZ_H = 2799,
-  FCADD_ZPmZ_S = 2800,
-  FCADDv2f32 = 2801,
-  FCADDv2f64 = 2802,
-  FCADDv4f16 = 2803,
-  FCADDv4f32 = 2804,
-  FCADDv8f16 = 2805,
-  FCCMPDrr = 2806,
-  FCCMPEDrr = 2807,
-  FCCMPEHrr = 2808,
-  FCCMPESrr = 2809,
-  FCCMPHrr = 2810,
-  FCCMPSrr = 2811,
-  FCLAMP_VG2_2Z2Z_D = 2812,
-  FCLAMP_VG2_2Z2Z_H = 2813,
-  FCLAMP_VG2_2Z2Z_S = 2814,
-  FCLAMP_VG4_4Z4Z_D = 2815,
-  FCLAMP_VG4_4Z4Z_H = 2816,
-  FCLAMP_VG4_4Z4Z_S = 2817,
-  FCLAMP_ZZZ_D = 2818,
-  FCLAMP_ZZZ_H = 2819,
-  FCLAMP_ZZZ_S = 2820,
-  FCMEQ16 = 2821,
-  FCMEQ32 = 2822,
-  FCMEQ64 = 2823,
-  FCMEQ_PPzZ0_D = 2824,
-  FCMEQ_PPzZ0_H = 2825,
-  FCMEQ_PPzZ0_S = 2826,
-  FCMEQ_PPzZZ_D = 2827,
-  FCMEQ_PPzZZ_H = 2828,
-  FCMEQ_PPzZZ_S = 2829,
-  FCMEQv1i16rz = 2830,
-  FCMEQv1i32rz = 2831,
-  FCMEQv1i64rz = 2832,
-  FCMEQv2f32 = 2833,
-  FCMEQv2f64 = 2834,
-  FCMEQv2i32rz = 2835,
-  FCMEQv2i64rz = 2836,
-  FCMEQv4f16 = 2837,
-  FCMEQv4f32 = 2838,
-  FCMEQv4i16rz = 2839,
-  FCMEQv4i32rz = 2840,
-  FCMEQv8f16 = 2841,
-  FCMEQv8i16rz = 2842,
-  FCMGE16 = 2843,
-  FCMGE32 = 2844,
-  FCMGE64 = 2845,
-  FCMGE_PPzZ0_D = 2846,
-  FCMGE_PPzZ0_H = 2847,
-  FCMGE_PPzZ0_S = 2848,
-  FCMGE_PPzZZ_D = 2849,
-  FCMGE_PPzZZ_H = 2850,
-  FCMGE_PPzZZ_S = 2851,
-  FCMGEv1i16rz = 2852,
-  FCMGEv1i32rz = 2853,
-  FCMGEv1i64rz = 2854,
-  FCMGEv2f32 = 2855,
-  FCMGEv2f64 = 2856,
-  FCMGEv2i32rz = 2857,
-  FCMGEv2i64rz = 2858,
-  FCMGEv4f16 = 2859,
-  FCMGEv4f32 = 2860,
-  FCMGEv4i16rz = 2861,
-  FCMGEv4i32rz = 2862,
-  FCMGEv8f16 = 2863,
-  FCMGEv8i16rz = 2864,
-  FCMGT16 = 2865,
-  FCMGT32 = 2866,
-  FCMGT64 = 2867,
-  FCMGT_PPzZ0_D = 2868,
-  FCMGT_PPzZ0_H = 2869,
-  FCMGT_PPzZ0_S = 2870,
-  FCMGT_PPzZZ_D = 2871,
-  FCMGT_PPzZZ_H = 2872,
-  FCMGT_PPzZZ_S = 2873,
-  FCMGTv1i16rz = 2874,
-  FCMGTv1i32rz = 2875,
-  FCMGTv1i64rz = 2876,
-  FCMGTv2f32 = 2877,
-  FCMGTv2f64 = 2878,
-  FCMGTv2i32rz = 2879,
-  FCMGTv2i64rz = 2880,
-  FCMGTv4f16 = 2881,
-  FCMGTv4f32 = 2882,
-  FCMGTv4i16rz = 2883,
-  FCMGTv4i32rz = 2884,
-  FCMGTv8f16 = 2885,
-  FCMGTv8i16rz = 2886,
-  FCMLA_ZPmZZ_D = 2887,
-  FCMLA_ZPmZZ_H = 2888,
-  FCMLA_ZPmZZ_S = 2889,
-  FCMLA_ZZZI_H = 2890,
-  FCMLA_ZZZI_S = 2891,
-  FCMLAv2f32 = 2892,
-  FCMLAv2f64 = 2893,
-  FCMLAv4f16 = 2894,
-  FCMLAv4f16_indexed = 2895,
-  FCMLAv4f32 = 2896,
-  FCMLAv4f32_indexed = 2897,
-  FCMLAv8f16 = 2898,
-  FCMLAv8f16_indexed = 2899,
-  FCMLE_PPzZ0_D = 2900,
-  FCMLE_PPzZ0_H = 2901,
-  FCMLE_PPzZ0_S = 2902,
-  FCMLEv1i16rz = 2903,
-  FCMLEv1i32rz = 2904,
-  FCMLEv1i64rz = 2905,
-  FCMLEv2i32rz = 2906,
-  FCMLEv2i64rz = 2907,
-  FCMLEv4i16rz = 2908,
-  FCMLEv4i32rz = 2909,
-  FCMLEv8i16rz = 2910,
-  FCMLT_PPzZ0_D = 2911,
-  FCMLT_PPzZ0_H = 2912,
-  FCMLT_PPzZ0_S = 2913,
-  FCMLTv1i16rz = 2914,
-  FCMLTv1i32rz = 2915,
-  FCMLTv1i64rz = 2916,
-  FCMLTv2i32rz = 2917,
-  FCMLTv2i64rz = 2918,
-  FCMLTv4i16rz = 2919,
-  FCMLTv4i32rz = 2920,
-  FCMLTv8i16rz = 2921,
-  FCMNE_PPzZ0_D = 2922,
-  FCMNE_PPzZ0_H = 2923,
-  FCMNE_PPzZ0_S = 2924,
-  FCMNE_PPzZZ_D = 2925,
-  FCMNE_PPzZZ_H = 2926,
-  FCMNE_PPzZZ_S = 2927,
-  FCMPDri = 2928,
-  FCMPDrr = 2929,
-  FCMPEDri = 2930,
-  FCMPEDrr = 2931,
-  FCMPEHri = 2932,
-  FCMPEHrr = 2933,
-  FCMPESri = 2934,
-  FCMPESrr = 2935,
-  FCMPHri = 2936,
-  FCMPHrr = 2937,
-  FCMPSri = 2938,
-  FCMPSrr = 2939,
-  FCMUO_PPzZZ_D = 2940,
-  FCMUO_PPzZZ_H = 2941,
-  FCMUO_PPzZZ_S = 2942,
-  FCPY_ZPmI_D = 2943,
-  FCPY_ZPmI_H = 2944,
-  FCPY_ZPmI_S = 2945,
-  FCSELDrrr = 2946,
-  FCSELHrrr = 2947,
-  FCSELSrrr = 2948,
-  FCVTASDHr = 2949,
-  FCVTASDSr = 2950,
-  FCVTASSDr = 2951,
-  FCVTASSHr = 2952,
-  FCVTASUWDr = 2953,
-  FCVTASUWHr = 2954,
-  FCVTASUWSr = 2955,
-  FCVTASUXDr = 2956,
-  FCVTASUXHr = 2957,
-  FCVTASUXSr = 2958,
-  FCVTASv1f16 = 2959,
-  FCVTASv1i32 = 2960,
-  FCVTASv1i64 = 2961,
-  FCVTASv2f32 = 2962,
-  FCVTASv2f64 = 2963,
-  FCVTASv4f16 = 2964,
-  FCVTASv4f32 = 2965,
-  FCVTASv8f16 = 2966,
-  FCVTAUDHr = 2967,
-  FCVTAUDSr = 2968,
-  FCVTAUSDr = 2969,
-  FCVTAUSHr = 2970,
-  FCVTAUUWDr = 2971,
-  FCVTAUUWHr = 2972,
-  FCVTAUUWSr = 2973,
-  FCVTAUUXDr = 2974,
-  FCVTAUUXHr = 2975,
-  FCVTAUUXSr = 2976,
-  FCVTAUv1f16 = 2977,
-  FCVTAUv1i32 = 2978,
-  FCVTAUv1i64 = 2979,
-  FCVTAUv2f32 = 2980,
-  FCVTAUv2f64 = 2981,
-  FCVTAUv4f16 = 2982,
-  FCVTAUv4f32 = 2983,
-  FCVTAUv8f16 = 2984,
-  FCVTDHr = 2985,
-  FCVTDSr = 2986,
-  FCVTHDr = 2987,
-  FCVTHSr = 2988,
-  FCVTLT_ZPmZ_HtoS = 2989,
-  FCVTLT_ZPmZ_StoD = 2990,
-  FCVTLT_ZPzZ_HtoS = 2991,
-  FCVTLT_ZPzZ_StoD = 2992,
-  FCVTL_2ZZ_H_S = 2993,
-  FCVTLv2i32 = 2994,
-  FCVTLv4i16 = 2995,
-  FCVTLv4i32 = 2996,
-  FCVTLv8i16 = 2997,
-  FCVTMSDHr = 2998,
-  FCVTMSDSr = 2999,
-  FCVTMSSDr = 3000,
-  FCVTMSSHr = 3001,
-  FCVTMSUWDr = 3002,
-  FCVTMSUWHr = 3003,
-  FCVTMSUWSr = 3004,
-  FCVTMSUXDr = 3005,
-  FCVTMSUXHr = 3006,
-  FCVTMSUXSr = 3007,
-  FCVTMSv1f16 = 3008,
-  FCVTMSv1i32 = 3009,
-  FCVTMSv1i64 = 3010,
-  FCVTMSv2f32 = 3011,
-  FCVTMSv2f64 = 3012,
-  FCVTMSv4f16 = 3013,
-  FCVTMSv4f32 = 3014,
-  FCVTMSv8f16 = 3015,
-  FCVTMUDHr = 3016,
-  FCVTMUDSr = 3017,
-  FCVTMUSDr = 3018,
-  FCVTMUSHr = 3019,
-  FCVTMUUWDr = 3020,
-  FCVTMUUWHr = 3021,
-  FCVTMUUWSr = 3022,
-  FCVTMUUXDr = 3023,
-  FCVTMUUXHr = 3024,
-  FCVTMUUXSr = 3025,
-  FCVTMUv1f16 = 3026,
-  FCVTMUv1i32 = 3027,
-  FCVTMUv1i64 = 3028,
-  FCVTMUv2f32 = 3029,
-  FCVTMUv2f64 = 3030,
-  FCVTMUv4f16 = 3031,
-  FCVTMUv4f32 = 3032,
-  FCVTMUv8f16 = 3033,
-  FCVTNB_Z2Z_StoB = 3034,
-  FCVTNSDHr = 3035,
-  FCVTNSDSr = 3036,
-  FCVTNSSDr = 3037,
-  FCVTNSSHr = 3038,
-  FCVTNSUWDr = 3039,
-  FCVTNSUWHr = 3040,
-  FCVTNSUWSr = 3041,
-  FCVTNSUXDr = 3042,
-  FCVTNSUXHr = 3043,
-  FCVTNSUXSr = 3044,
-  FCVTNSv1f16 = 3045,
-  FCVTNSv1i32 = 3046,
-  FCVTNSv1i64 = 3047,
-  FCVTNSv2f32 = 3048,
-  FCVTNSv2f64 = 3049,
-  FCVTNSv4f16 = 3050,
-  FCVTNSv4f32 = 3051,
-  FCVTNSv8f16 = 3052,
-  FCVTNT_Z2Z_StoB = 3053,
-  FCVTNT_ZPmZ_DtoS = 3054,
-  FCVTNT_ZPmZ_StoH = 3055,
-  FCVTNT_ZPzZ_DtoS = 3056,
-  FCVTNT_ZPzZ_StoH = 3057,
-  FCVTNUDHr = 3058,
-  FCVTNUDSr = 3059,
-  FCVTNUSDr = 3060,
-  FCVTNUSHr = 3061,
-  FCVTNUUWDr = 3062,
-  FCVTNUUWHr = 3063,
-  FCVTNUUWSr = 3064,
-  FCVTNUUXDr = 3065,
-  FCVTNUUXHr = 3066,
-  FCVTNUUXSr = 3067,
-  FCVTNUv1f16 = 3068,
-  FCVTNUv1i32 = 3069,
-  FCVTNUv1i64 = 3070,
-  FCVTNUv2f32 = 3071,
-  FCVTNUv2f64 = 3072,
-  FCVTNUv4f16 = 3073,
-  FCVTNUv4f32 = 3074,
-  FCVTNUv8f16 = 3075,
-  FCVTN_F16v16f8 = 3076,
-  FCVTN_F16v8f8 = 3077,
-  FCVTN_F322v16f8 = 3078,
-  FCVTN_F32v8f8 = 3079,
-  FCVTN_Z2Z_HtoB = 3080,
-  FCVTN_Z2Z_StoH = 3081,
-  FCVTN_Z4Z_StoB = 3082,
-  FCVTNv2i32 = 3083,
-  FCVTNv4i16 = 3084,
-  FCVTNv4i32 = 3085,
-  FCVTNv8i16 = 3086,
-  FCVTPSDHr = 3087,
-  FCVTPSDSr = 3088,
-  FCVTPSSDr = 3089,
-  FCVTPSSHr = 3090,
-  FCVTPSUWDr = 3091,
-  FCVTPSUWHr = 3092,
-  FCVTPSUWSr = 3093,
-  FCVTPSUXDr = 3094,
-  FCVTPSUXHr = 3095,
-  FCVTPSUXSr = 3096,
-  FCVTPSv1f16 = 3097,
-  FCVTPSv1i32 = 3098,
-  FCVTPSv1i64 = 3099,
-  FCVTPSv2f32 = 3100,
-  FCVTPSv2f64 = 3101,
-  FCVTPSv4f16 = 3102,
-  FCVTPSv4f32 = 3103,
-  FCVTPSv8f16 = 3104,
-  FCVTPUDHr = 3105,
-  FCVTPUDSr = 3106,
-  FCVTPUSDr = 3107,
-  FCVTPUSHr = 3108,
-  FCVTPUUWDr = 3109,
-  FCVTPUUWHr = 3110,
-  FCVTPUUWSr = 3111,
-  FCVTPUUXDr = 3112,
-  FCVTPUUXHr = 3113,
-  FCVTPUUXSr = 3114,
-  FCVTPUv1f16 = 3115,
-  FCVTPUv1i32 = 3116,
-  FCVTPUv1i64 = 3117,
-  FCVTPUv2f32 = 3118,
-  FCVTPUv2f64 = 3119,
-  FCVTPUv4f16 = 3120,
-  FCVTPUv4f32 = 3121,
-  FCVTPUv8f16 = 3122,
-  FCVTSDr = 3123,
-  FCVTSHr = 3124,
-  FCVTXNT_ZPmZ_DtoS = 3125,
-  FCVTXNT_ZPzZ = 3126,
-  FCVTXNv1i64 = 3127,
-  FCVTXNv2f32 = 3128,
-  FCVTXNv4f32 = 3129,
-  FCVTX_ZPmZ_DtoS = 3130,
-  FCVTX_ZPzZ_DtoS = 3131,
-  FCVTZSDHr = 3132,
-  FCVTZSDSr = 3133,
-  FCVTZSSDr = 3134,
-  FCVTZSSHr = 3135,
-  FCVTZSSWDri = 3136,
-  FCVTZSSWHri = 3137,
-  FCVTZSSWSri = 3138,
-  FCVTZSSXDri = 3139,
-  FCVTZSSXHri = 3140,
-  FCVTZSSXSri = 3141,
-  FCVTZSUWDr = 3142,
-  FCVTZSUWHr = 3143,
-  FCVTZSUWSr = 3144,
-  FCVTZSUXDr = 3145,
-  FCVTZSUXHr = 3146,
-  FCVTZSUXSr = 3147,
-  FCVTZS_2Z2Z_StoS = 3148,
-  FCVTZS_4Z4Z_StoS = 3149,
-  FCVTZS_ZPmZ_DtoD = 3150,
-  FCVTZS_ZPmZ_DtoS = 3151,
-  FCVTZS_ZPmZ_HtoD = 3152,
-  FCVTZS_ZPmZ_HtoH = 3153,
-  FCVTZS_ZPmZ_HtoS = 3154,
-  FCVTZS_ZPmZ_StoD = 3155,
-  FCVTZS_ZPmZ_StoS = 3156,
-  FCVTZS_ZPzZ_DtoD = 3157,
-  FCVTZS_ZPzZ_DtoS = 3158,
-  FCVTZS_ZPzZ_HtoD = 3159,
-  FCVTZS_ZPzZ_HtoH = 3160,
-  FCVTZS_ZPzZ_HtoS = 3161,
-  FCVTZS_ZPzZ_StoD = 3162,
-  FCVTZS_ZPzZ_StoS = 3163,
-  FCVTZSd = 3164,
-  FCVTZSh = 3165,
-  FCVTZSs = 3166,
-  FCVTZSv1f16 = 3167,
-  FCVTZSv1i32 = 3168,
-  FCVTZSv1i64 = 3169,
-  FCVTZSv2f32 = 3170,
-  FCVTZSv2f64 = 3171,
-  FCVTZSv2i32_shift = 3172,
-  FCVTZSv2i64_shift = 3173,
-  FCVTZSv4f16 = 3174,
-  FCVTZSv4f32 = 3175,
-  FCVTZSv4i16_shift = 3176,
-  FCVTZSv4i32_shift = 3177,
-  FCVTZSv8f16 = 3178,
-  FCVTZSv8i16_shift = 3179,
-  FCVTZUDHr = 3180,
-  FCVTZUDSr = 3181,
-  FCVTZUSDr = 3182,
-  FCVTZUSHr = 3183,
-  FCVTZUSWDri = 3184,
-  FCVTZUSWHri = 3185,
-  FCVTZUSWSri = 3186,
-  FCVTZUSXDri = 3187,
-  FCVTZUSXHri = 3188,
-  FCVTZUSXSri = 3189,
-  FCVTZUUWDr = 3190,
-  FCVTZUUWHr = 3191,
-  FCVTZUUWSr = 3192,
-  FCVTZUUXDr = 3193,
-  FCVTZUUXHr = 3194,
-  FCVTZUUXSr = 3195,
-  FCVTZU_2Z2Z_StoS = 3196,
-  FCVTZU_4Z4Z_StoS = 3197,
-  FCVTZU_ZPmZ_DtoD = 3198,
-  FCVTZU_ZPmZ_DtoS = 3199,
-  FCVTZU_ZPmZ_HtoD = 3200,
-  FCVTZU_ZPmZ_HtoH = 3201,
-  FCVTZU_ZPmZ_HtoS = 3202,
-  FCVTZU_ZPmZ_StoD = 3203,
-  FCVTZU_ZPmZ_StoS = 3204,
-  FCVTZU_ZPzZ_DtoD = 3205,
-  FCVTZU_ZPzZ_DtoS = 3206,
-  FCVTZU_ZPzZ_HtoD = 3207,
-  FCVTZU_ZPzZ_HtoH = 3208,
-  FCVTZU_ZPzZ_HtoS = 3209,
-  FCVTZU_ZPzZ_StoD = 3210,
-  FCVTZU_ZPzZ_StoS = 3211,
-  FCVTZUd = 3212,
-  FCVTZUh = 3213,
-  FCVTZUs = 3214,
-  FCVTZUv1f16 = 3215,
-  FCVTZUv1i32 = 3216,
-  FCVTZUv1i64 = 3217,
-  FCVTZUv2f32 = 3218,
-  FCVTZUv2f64 = 3219,
-  FCVTZUv2i32_shift = 3220,
-  FCVTZUv2i64_shift = 3221,
-  FCVTZUv4f16 = 3222,
-  FCVTZUv4f32 = 3223,
-  FCVTZUv4i16_shift = 3224,
-  FCVTZUv4i32_shift = 3225,
-  FCVTZUv8f16 = 3226,
-  FCVTZUv8i16_shift = 3227,
-  FCVT_2ZZ_H_S = 3228,
-  FCVT_Z2Z_HtoB = 3229,
-  FCVT_Z2Z_StoH = 3230,
-  FCVT_Z4Z_StoB = 3231,
-  FCVT_ZPmZ_DtoH = 3232,
-  FCVT_ZPmZ_DtoS = 3233,
-  FCVT_ZPmZ_HtoD = 3234,
-  FCVT_ZPmZ_HtoS = 3235,
-  FCVT_ZPmZ_StoD = 3236,
-  FCVT_ZPmZ_StoH = 3237,
-  FCVT_ZPzZ_DtoH = 3238,
-  FCVT_ZPzZ_DtoS = 3239,
-  FCVT_ZPzZ_HtoD = 3240,
-  FCVT_ZPzZ_HtoS = 3241,
-  FCVT_ZPzZ_StoD = 3242,
-  FCVT_ZPzZ_StoH = 3243,
-  FDIVDrr = 3244,
-  FDIVHrr = 3245,
-  FDIVR_ZPmZ_D = 3246,
-  FDIVR_ZPmZ_H = 3247,
-  FDIVR_ZPmZ_S = 3248,
-  FDIVSrr = 3249,
-  FDIV_ZPmZ_D = 3250,
-  FDIV_ZPmZ_H = 3251,
-  FDIV_ZPmZ_S = 3252,
-  FDIVv2f32 = 3253,
-  FDIVv2f64 = 3254,
-  FDIVv4f16 = 3255,
-  FDIVv4f32 = 3256,
-  FDIVv8f16 = 3257,
-  FDOT_VG2_M2Z2Z_BtoH = 3258,
-  FDOT_VG2_M2Z2Z_BtoS = 3259,
-  FDOT_VG2_M2Z2Z_HtoS = 3260,
-  FDOT_VG2_M2ZZI_BtoH = 3261,
-  FDOT_VG2_M2ZZI_BtoS = 3262,
-  FDOT_VG2_M2ZZI_HtoS = 3263,
-  FDOT_VG2_M2ZZ_BtoH = 3264,
-  FDOT_VG2_M2ZZ_BtoS = 3265,
-  FDOT_VG2_M2ZZ_HtoS = 3266,
-  FDOT_VG4_M4Z4Z_BtoH = 3267,
-  FDOT_VG4_M4Z4Z_BtoS = 3268,
-  FDOT_VG4_M4Z4Z_HtoS = 3269,
-  FDOT_VG4_M4ZZI_BtoH = 3270,
-  FDOT_VG4_M4ZZI_BtoS = 3271,
-  FDOT_VG4_M4ZZI_HtoS = 3272,
-  FDOT_VG4_M4ZZ_BtoH = 3273,
-  FDOT_VG4_M4ZZ_BtoS = 3274,
-  FDOT_VG4_M4ZZ_HtoS = 3275,
-  FDOT_ZZZI_BtoH = 3276,
-  FDOT_ZZZI_BtoS = 3277,
-  FDOT_ZZZI_S = 3278,
-  FDOT_ZZZ_BtoH = 3279,
-  FDOT_ZZZ_BtoS = 3280,
-  FDOT_ZZZ_S = 3281,
-  FDOTlanev2f32 = 3282,
-  FDOTlanev4f16 = 3283,
-  FDOTlanev4f32 = 3284,
-  FDOTlanev8f16 = 3285,
-  FDOTv2f32 = 3286,
-  FDOTv4f16 = 3287,
-  FDOTv4f32 = 3288,
-  FDOTv8f16 = 3289,
-  FDUP_ZI_D = 3290,
-  FDUP_ZI_H = 3291,
-  FDUP_ZI_S = 3292,
-  FEXPA_ZZ_D = 3293,
-  FEXPA_ZZ_H = 3294,
-  FEXPA_ZZ_S = 3295,
-  FIRSTP_XPP_B = 3296,
-  FIRSTP_XPP_D = 3297,
-  FIRSTP_XPP_H = 3298,
-  FIRSTP_XPP_S = 3299,
-  FJCVTZS = 3300,
-  FLOGB_ZPmZ_D = 3301,
-  FLOGB_ZPmZ_H = 3302,
-  FLOGB_ZPmZ_S = 3303,
-  FLOGB_ZPzZ_D = 3304,
-  FLOGB_ZPzZ_H = 3305,
-  FLOGB_ZPzZ_S = 3306,
-  FMADDDrrr = 3307,
-  FMADDHrrr = 3308,
-  FMADDSrrr = 3309,
-  FMAD_ZPmZZ_D = 3310,
-  FMAD_ZPmZZ_H = 3311,
-  FMAD_ZPmZZ_S = 3312,
-  FMAXDrr = 3313,
-  FMAXHrr = 3314,
-  FMAXNMDrr = 3315,
-  FMAXNMHrr = 3316,
-  FMAXNMP_ZPmZZ_D = 3317,
-  FMAXNMP_ZPmZZ_H = 3318,
-  FMAXNMP_ZPmZZ_S = 3319,
-  FMAXNMPv2f32 = 3320,
-  FMAXNMPv2f64 = 3321,
-  FMAXNMPv2i16p = 3322,
-  FMAXNMPv2i32p = 3323,
-  FMAXNMPv2i64p = 3324,
-  FMAXNMPv4f16 = 3325,
-  FMAXNMPv4f32 = 3326,
-  FMAXNMPv8f16 = 3327,
-  FMAXNMQV_D = 3328,
-  FMAXNMQV_H = 3329,
-  FMAXNMQV_S = 3330,
-  FMAXNMSrr = 3331,
-  FMAXNMV_VPZ_D = 3332,
-  FMAXNMV_VPZ_H = 3333,
-  FMAXNMV_VPZ_S = 3334,
-  FMAXNMVv4i16v = 3335,
-  FMAXNMVv4i32v = 3336,
-  FMAXNMVv8i16v = 3337,
-  FMAXNM_VG2_2Z2Z_D = 3338,
-  FMAXNM_VG2_2Z2Z_H = 3339,
-  FMAXNM_VG2_2Z2Z_S = 3340,
-  FMAXNM_VG2_2ZZ_D = 3341,
-  FMAXNM_VG2_2ZZ_H = 3342,
-  FMAXNM_VG2_2ZZ_S = 3343,
-  FMAXNM_VG4_4Z4Z_D = 3344,
-  FMAXNM_VG4_4Z4Z_H = 3345,
-  FMAXNM_VG4_4Z4Z_S = 3346,
-  FMAXNM_VG4_4ZZ_D = 3347,
-  FMAXNM_VG4_4ZZ_H = 3348,
-  FMAXNM_VG4_4ZZ_S = 3349,
-  FMAXNM_ZPmI_D = 3350,
-  FMAXNM_ZPmI_H = 3351,
-  FMAXNM_ZPmI_S = 3352,
-  FMAXNM_ZPmZ_D = 3353,
-  FMAXNM_ZPmZ_H = 3354,
-  FMAXNM_ZPmZ_S = 3355,
-  FMAXNMv2f32 = 3356,
-  FMAXNMv2f64 = 3357,
-  FMAXNMv4f16 = 3358,
-  FMAXNMv4f32 = 3359,
-  FMAXNMv8f16 = 3360,
-  FMAXP_ZPmZZ_D = 3361,
-  FMAXP_ZPmZZ_H = 3362,
-  FMAXP_ZPmZZ_S = 3363,
-  FMAXPv2f32 = 3364,
-  FMAXPv2f64 = 3365,
-  FMAXPv2i16p = 3366,
-  FMAXPv2i32p = 3367,
-  FMAXPv2i64p = 3368,
-  FMAXPv4f16 = 3369,
-  FMAXPv4f32 = 3370,
-  FMAXPv8f16 = 3371,
-  FMAXQV_D = 3372,
-  FMAXQV_H = 3373,
-  FMAXQV_S = 3374,
-  FMAXSrr = 3375,
-  FMAXV_VPZ_D = 3376,
-  FMAXV_VPZ_H = 3377,
-  FMAXV_VPZ_S = 3378,
-  FMAXVv4i16v = 3379,
-  FMAXVv4i32v = 3380,
-  FMAXVv8i16v = 3381,
-  FMAX_VG2_2Z2Z_D = 3382,
-  FMAX_VG2_2Z2Z_H = 3383,
-  FMAX_VG2_2Z2Z_S = 3384,
-  FMAX_VG2_2ZZ_D = 3385,
-  FMAX_VG2_2ZZ_H = 3386,
-  FMAX_VG2_2ZZ_S = 3387,
-  FMAX_VG4_4Z4Z_D = 3388,
-  FMAX_VG4_4Z4Z_H = 3389,
-  FMAX_VG4_4Z4Z_S = 3390,
-  FMAX_VG4_4ZZ_D = 3391,
-  FMAX_VG4_4ZZ_H = 3392,
-  FMAX_VG4_4ZZ_S = 3393,
-  FMAX_ZPmI_D = 3394,
-  FMAX_ZPmI_H = 3395,
-  FMAX_ZPmI_S = 3396,
-  FMAX_ZPmZ_D = 3397,
-  FMAX_ZPmZ_H = 3398,
-  FMAX_ZPmZ_S = 3399,
-  FMAXv2f32 = 3400,
-  FMAXv2f64 = 3401,
-  FMAXv4f16 = 3402,
-  FMAXv4f32 = 3403,
-  FMAXv8f16 = 3404,
-  FMINDrr = 3405,
-  FMINHrr = 3406,
-  FMINNMDrr = 3407,
-  FMINNMHrr = 3408,
-  FMINNMP_ZPmZZ_D = 3409,
-  FMINNMP_ZPmZZ_H = 3410,
-  FMINNMP_ZPmZZ_S = 3411,
-  FMINNMPv2f32 = 3412,
-  FMINNMPv2f64 = 3413,
-  FMINNMPv2i16p = 3414,
-  FMINNMPv2i32p = 3415,
-  FMINNMPv2i64p = 3416,
-  FMINNMPv4f16 = 3417,
-  FMINNMPv4f32 = 3418,
-  FMINNMPv8f16 = 3419,
-  FMINNMQV_D = 3420,
-  FMINNMQV_H = 3421,
-  FMINNMQV_S = 3422,
-  FMINNMSrr = 3423,
-  FMINNMV_VPZ_D = 3424,
-  FMINNMV_VPZ_H = 3425,
-  FMINNMV_VPZ_S = 3426,
-  FMINNMVv4i16v = 3427,
-  FMINNMVv4i32v = 3428,
-  FMINNMVv8i16v = 3429,
-  FMINNM_VG2_2Z2Z_D = 3430,
-  FMINNM_VG2_2Z2Z_H = 3431,
-  FMINNM_VG2_2Z2Z_S = 3432,
-  FMINNM_VG2_2ZZ_D = 3433,
-  FMINNM_VG2_2ZZ_H = 3434,
-  FMINNM_VG2_2ZZ_S = 3435,
-  FMINNM_VG4_4Z4Z_D = 3436,
-  FMINNM_VG4_4Z4Z_H = 3437,
-  FMINNM_VG4_4Z4Z_S = 3438,
-  FMINNM_VG4_4ZZ_D = 3439,
-  FMINNM_VG4_4ZZ_H = 3440,
-  FMINNM_VG4_4ZZ_S = 3441,
-  FMINNM_ZPmI_D = 3442,
-  FMINNM_ZPmI_H = 3443,
-  FMINNM_ZPmI_S = 3444,
-  FMINNM_ZPmZ_D = 3445,
-  FMINNM_ZPmZ_H = 3446,
-  FMINNM_ZPmZ_S = 3447,
-  FMINNMv2f32 = 3448,
-  FMINNMv2f64 = 3449,
-  FMINNMv4f16 = 3450,
-  FMINNMv4f32 = 3451,
-  FMINNMv8f16 = 3452,
-  FMINP_ZPmZZ_D = 3453,
-  FMINP_ZPmZZ_H = 3454,
-  FMINP_ZPmZZ_S = 3455,
-  FMINPv2f32 = 3456,
-  FMINPv2f64 = 3457,
-  FMINPv2i16p = 3458,
-  FMINPv2i32p = 3459,
-  FMINPv2i64p = 3460,
-  FMINPv4f16 = 3461,
-  FMINPv4f32 = 3462,
-  FMINPv8f16 = 3463,
-  FMINQV_D = 3464,
-  FMINQV_H = 3465,
-  FMINQV_S = 3466,
-  FMINSrr = 3467,
-  FMINV_VPZ_D = 3468,
-  FMINV_VPZ_H = 3469,
-  FMINV_VPZ_S = 3470,
-  FMINVv4i16v = 3471,
-  FMINVv4i32v = 3472,
-  FMINVv8i16v = 3473,
-  FMIN_VG2_2Z2Z_D = 3474,
-  FMIN_VG2_2Z2Z_H = 3475,
-  FMIN_VG2_2Z2Z_S = 3476,
-  FMIN_VG2_2ZZ_D = 3477,
-  FMIN_VG2_2ZZ_H = 3478,
-  FMIN_VG2_2ZZ_S = 3479,
-  FMIN_VG4_4Z4Z_D = 3480,
-  FMIN_VG4_4Z4Z_H = 3481,
-  FMIN_VG4_4Z4Z_S = 3482,
-  FMIN_VG4_4ZZ_D = 3483,
-  FMIN_VG4_4ZZ_H = 3484,
-  FMIN_VG4_4ZZ_S = 3485,
-  FMIN_ZPmI_D = 3486,
-  FMIN_ZPmI_H = 3487,
-  FMIN_ZPmI_S = 3488,
-  FMIN_ZPmZ_D = 3489,
-  FMIN_ZPmZ_H = 3490,
-  FMIN_ZPmZ_S = 3491,
-  FMINv2f32 = 3492,
-  FMINv2f64 = 3493,
-  FMINv4f16 = 3494,
-  FMINv4f32 = 3495,
-  FMINv8f16 = 3496,
-  FMLAL2lanev4f16 = 3497,
-  FMLAL2lanev8f16 = 3498,
-  FMLAL2v4f16 = 3499,
-  FMLAL2v8f16 = 3500,
-  FMLALB_ZZZ = 3501,
-  FMLALB_ZZZI = 3502,
-  FMLALB_ZZZI_SHH = 3503,
-  FMLALB_ZZZ_SHH = 3504,
-  FMLALBlanev8f16 = 3505,
-  FMLALBv8f16 = 3506,
-  FMLALLBB_ZZZ = 3507,
-  FMLALLBB_ZZZI = 3508,
-  FMLALLBBlanev4f32 = 3509,
-  FMLALLBBv4f32 = 3510,
-  FMLALLBT_ZZZ = 3511,
-  FMLALLBT_ZZZI = 3512,
-  FMLALLBTlanev4f32 = 3513,
-  FMLALLBTv4f32 = 3514,
-  FMLALLTB_ZZZ = 3515,
-  FMLALLTB_ZZZI = 3516,
-  FMLALLTBlanev4f32 = 3517,
-  FMLALLTBv4f32 = 3518,
-  FMLALLTT_ZZZ = 3519,
-  FMLALLTT_ZZZI = 3520,
-  FMLALLTTlanev4f32 = 3521,
-  FMLALLTTv4f32 = 3522,
-  FMLALL_MZZI_BtoS = 3523,
-  FMLALL_MZZ_BtoS = 3524,
-  FMLALL_VG2_M2Z2Z_BtoS = 3525,
-  FMLALL_VG2_M2ZZI_BtoS = 3526,
-  FMLALL_VG2_M2ZZ_BtoS = 3527,
-  FMLALL_VG4_M4Z4Z_BtoS = 3528,
-  FMLALL_VG4_M4ZZI_BtoS = 3529,
-  FMLALL_VG4_M4ZZ_BtoS = 3530,
-  FMLALT_ZZZ = 3531,
-  FMLALT_ZZZI = 3532,
-  FMLALT_ZZZI_SHH = 3533,
-  FMLALT_ZZZ_SHH = 3534,
-  FMLALTlanev8f16 = 3535,
-  FMLALTv8f16 = 3536,
-  FMLAL_MZZI_BtoH = 3537,
-  FMLAL_MZZI_HtoS = 3538,
-  FMLAL_MZZ_HtoS = 3539,
-  FMLAL_VG2_M2Z2Z_BtoH = 3540,
-  FMLAL_VG2_M2Z2Z_HtoS = 3541,
-  FMLAL_VG2_M2ZZI_BtoH = 3542,
-  FMLAL_VG2_M2ZZI_HtoS = 3543,
-  FMLAL_VG2_M2ZZ_BtoH = 3544,
-  FMLAL_VG2_M2ZZ_HtoS = 3545,
-  FMLAL_VG2_MZZ_BtoH = 3546,
-  FMLAL_VG4_M4Z4Z_BtoH = 3547,
-  FMLAL_VG4_M4Z4Z_HtoS = 3548,
-  FMLAL_VG4_M4ZZI_BtoH = 3549,
-  FMLAL_VG4_M4ZZI_HtoS = 3550,
-  FMLAL_VG4_M4ZZ_BtoH = 3551,
-  FMLAL_VG4_M4ZZ_HtoS = 3552,
-  FMLALlanev4f16 = 3553,
-  FMLALlanev8f16 = 3554,
-  FMLALv4f16 = 3555,
-  FMLALv8f16 = 3556,
-  FMLA_VG2_M2Z2Z_D = 3557,
-  FMLA_VG2_M2Z2Z_H = 3558,
-  FMLA_VG2_M2Z2Z_S = 3559,
-  FMLA_VG2_M2ZZI_D = 3560,
-  FMLA_VG2_M2ZZI_H = 3561,
-  FMLA_VG2_M2ZZI_S = 3562,
-  FMLA_VG2_M2ZZ_D = 3563,
-  FMLA_VG2_M2ZZ_H = 3564,
-  FMLA_VG2_M2ZZ_S = 3565,
-  FMLA_VG4_M4Z4Z_D = 3566,
-  FMLA_VG4_M4Z4Z_H = 3567,
-  FMLA_VG4_M4Z4Z_S = 3568,
-  FMLA_VG4_M4ZZI_D = 3569,
-  FMLA_VG4_M4ZZI_H = 3570,
-  FMLA_VG4_M4ZZI_S = 3571,
-  FMLA_VG4_M4ZZ_D = 3572,
-  FMLA_VG4_M4ZZ_H = 3573,
-  FMLA_VG4_M4ZZ_S = 3574,
-  FMLA_ZPmZZ_D = 3575,
-  FMLA_ZPmZZ_H = 3576,
-  FMLA_ZPmZZ_S = 3577,
-  FMLA_ZZZI_D = 3578,
-  FMLA_ZZZI_H = 3579,
-  FMLA_ZZZI_S = 3580,
-  FMLAv1i16_indexed = 3581,
-  FMLAv1i32_indexed = 3582,
-  FMLAv1i64_indexed = 3583,
-  FMLAv2f32 = 3584,
-  FMLAv2f64 = 3585,
-  FMLAv2i32_indexed = 3586,
-  FMLAv2i64_indexed = 3587,
-  FMLAv4f16 = 3588,
-  FMLAv4f32 = 3589,
-  FMLAv4i16_indexed = 3590,
-  FMLAv4i32_indexed = 3591,
-  FMLAv8f16 = 3592,
-  FMLAv8i16_indexed = 3593,
-  FMLLA_ZZZ_HtoS = 3594,
-  FMLSL2lanev4f16 = 3595,
-  FMLSL2lanev8f16 = 3596,
-  FMLSL2v4f16 = 3597,
-  FMLSL2v8f16 = 3598,
-  FMLSLB_ZZZI_SHH = 3599,
-  FMLSLB_ZZZ_SHH = 3600,
-  FMLSLT_ZZZI_SHH = 3601,
-  FMLSLT_ZZZ_SHH = 3602,
-  FMLSL_MZZI_HtoS = 3603,
-  FMLSL_MZZ_HtoS = 3604,
-  FMLSL_VG2_M2Z2Z_HtoS = 3605,
-  FMLSL_VG2_M2ZZI_HtoS = 3606,
-  FMLSL_VG2_M2ZZ_HtoS = 3607,
-  FMLSL_VG4_M4Z4Z_HtoS = 3608,
-  FMLSL_VG4_M4ZZI_HtoS = 3609,
-  FMLSL_VG4_M4ZZ_HtoS = 3610,
-  FMLSLlanev4f16 = 3611,
-  FMLSLlanev8f16 = 3612,
-  FMLSLv4f16 = 3613,
-  FMLSLv8f16 = 3614,
-  FMLS_VG2_M2Z2Z_D = 3615,
-  FMLS_VG2_M2Z2Z_H = 3616,
-  FMLS_VG2_M2Z2Z_S = 3617,
-  FMLS_VG2_M2ZZI_D = 3618,
-  FMLS_VG2_M2ZZI_H = 3619,
-  FMLS_VG2_M2ZZI_S = 3620,
-  FMLS_VG2_M2ZZ_D = 3621,
-  FMLS_VG2_M2ZZ_H = 3622,
-  FMLS_VG2_M2ZZ_S = 3623,
-  FMLS_VG4_M4Z4Z_D = 3624,
-  FMLS_VG4_M4Z4Z_H = 3625,
-  FMLS_VG4_M4Z4Z_S = 3626,
-  FMLS_VG4_M4ZZI_D = 3627,
-  FMLS_VG4_M4ZZI_H = 3628,
-  FMLS_VG4_M4ZZI_S = 3629,
-  FMLS_VG4_M4ZZ_D = 3630,
-  FMLS_VG4_M4ZZ_H = 3631,
-  FMLS_VG4_M4ZZ_S = 3632,
-  FMLS_ZPmZZ_D = 3633,
-  FMLS_ZPmZZ_H = 3634,
-  FMLS_ZPmZZ_S = 3635,
-  FMLS_ZZZI_D = 3636,
-  FMLS_ZZZI_H = 3637,
-  FMLS_ZZZI_S = 3638,
-  FMLSv1i16_indexed = 3639,
-  FMLSv1i32_indexed = 3640,
-  FMLSv1i64_indexed = 3641,
-  FMLSv2f32 = 3642,
-  FMLSv2f64 = 3643,
-  FMLSv2i32_indexed = 3644,
-  FMLSv2i64_indexed = 3645,
-  FMLSv4f16 = 3646,
-  FMLSv4f32 = 3647,
-  FMLSv4i16_indexed = 3648,
-  FMLSv4i32_indexed = 3649,
-  FMLSv8f16 = 3650,
-  FMLSv8i16_indexed = 3651,
-  FMMLA_ZZZ_BtoH = 3652,
-  FMMLA_ZZZ_BtoS = 3653,
-  FMMLA_ZZZ_D = 3654,
-  FMMLA_ZZZ_S = 3655,
-  FMMLAv4f32 = 3656,
-  FMMLAv8f16 = 3657,
-  FMOP4A_M2Z2Z_BtoH = 3658,
-  FMOP4A_M2Z2Z_BtoS = 3659,
-  FMOP4A_M2Z2Z_D = 3660,
-  FMOP4A_M2Z2Z_H = 3661,
-  FMOP4A_M2Z2Z_HtoS = 3662,
-  FMOP4A_M2Z2Z_S = 3663,
-  FMOP4A_M2ZZ_BtoH = 3664,
-  FMOP4A_M2ZZ_BtoS = 3665,
-  FMOP4A_M2ZZ_D = 3666,
-  FMOP4A_M2ZZ_H = 3667,
-  FMOP4A_M2ZZ_HtoS = 3668,
-  FMOP4A_M2ZZ_S = 3669,
-  FMOP4A_MZ2Z_BtoH = 3670,
-  FMOP4A_MZ2Z_BtoS = 3671,
-  FMOP4A_MZ2Z_D = 3672,
-  FMOP4A_MZ2Z_H = 3673,
-  FMOP4A_MZ2Z_HtoS = 3674,
-  FMOP4A_MZ2Z_S = 3675,
-  FMOP4A_MZZ_BtoH = 3676,
-  FMOP4A_MZZ_BtoS = 3677,
-  FMOP4A_MZZ_D = 3678,
-  FMOP4A_MZZ_H = 3679,
-  FMOP4A_MZZ_HtoS = 3680,
-  FMOP4A_MZZ_S = 3681,
-  FMOP4S_M2Z2Z_D = 3682,
-  FMOP4S_M2Z2Z_H = 3683,
-  FMOP4S_M2Z2Z_HtoS = 3684,
-  FMOP4S_M2Z2Z_S = 3685,
-  FMOP4S_M2ZZ_D = 3686,
-  FMOP4S_M2ZZ_H = 3687,
-  FMOP4S_M2ZZ_HtoS = 3688,
-  FMOP4S_M2ZZ_S = 3689,
-  FMOP4S_MZ2Z_D = 3690,
-  FMOP4S_MZ2Z_H = 3691,
-  FMOP4S_MZ2Z_HtoS = 3692,
-  FMOP4S_MZ2Z_S = 3693,
-  FMOP4S_MZZ_D = 3694,
-  FMOP4S_MZZ_H = 3695,
-  FMOP4S_MZZ_HtoS = 3696,
-  FMOP4S_MZZ_S = 3697,
-  FMOPAL_MPPZZ = 3698,
-  FMOPA_MPPZZ_BtoH = 3699,
-  FMOPA_MPPZZ_BtoS = 3700,
-  FMOPA_MPPZZ_D = 3701,
-  FMOPA_MPPZZ_H = 3702,
-  FMOPA_MPPZZ_S = 3703,
-  FMOPSL_MPPZZ = 3704,
-  FMOPS_MPPZZ_D = 3705,
-  FMOPS_MPPZZ_H = 3706,
-  FMOPS_MPPZZ_S = 3707,
-  FMOVDXHighr = 3708,
-  FMOVDXr = 3709,
-  FMOVDi = 3710,
-  FMOVDr = 3711,
-  FMOVHWr = 3712,
-  FMOVHXr = 3713,
-  FMOVHi = 3714,
-  FMOVHr = 3715,
-  FMOVSWr = 3716,
-  FMOVSi = 3717,
-  FMOVSr = 3718,
-  FMOVWHr = 3719,
-  FMOVWSr = 3720,
-  FMOVXDHighr = 3721,
-  FMOVXDr = 3722,
-  FMOVXHr = 3723,
-  FMOVv2f32_ns = 3724,
-  FMOVv2f64_ns = 3725,
-  FMOVv4f16_ns = 3726,
-  FMOVv4f32_ns = 3727,
-  FMOVv8f16_ns = 3728,
-  FMSB_ZPmZZ_D = 3729,
-  FMSB_ZPmZZ_H = 3730,
-  FMSB_ZPmZZ_S = 3731,
-  FMSUBDrrr = 3732,
-  FMSUBHrrr = 3733,
-  FMSUBSrrr = 3734,
-  FMULDrr = 3735,
-  FMULHrr = 3736,
-  FMULSrr = 3737,
-  FMULX16 = 3738,
-  FMULX32 = 3739,
-  FMULX64 = 3740,
-  FMULX_ZPmZ_D = 3741,
-  FMULX_ZPmZ_H = 3742,
-  FMULX_ZPmZ_S = 3743,
-  FMULXv1i16_indexed = 3744,
-  FMULXv1i32_indexed = 3745,
-  FMULXv1i64_indexed = 3746,
-  FMULXv2f32 = 3747,
-  FMULXv2f64 = 3748,
-  FMULXv2i32_indexed = 3749,
-  FMULXv2i64_indexed = 3750,
-  FMULXv4f16 = 3751,
-  FMULXv4f32 = 3752,
-  FMULXv4i16_indexed = 3753,
-  FMULXv4i32_indexed = 3754,
-  FMULXv8f16 = 3755,
-  FMULXv8i16_indexed = 3756,
-  FMUL_2Z2Z_D = 3757,
-  FMUL_2Z2Z_H = 3758,
-  FMUL_2Z2Z_S = 3759,
-  FMUL_2ZZ_D = 3760,
-  FMUL_2ZZ_H = 3761,
-  FMUL_2ZZ_S = 3762,
-  FMUL_4Z4Z_D = 3763,
-  FMUL_4Z4Z_H = 3764,
-  FMUL_4Z4Z_S = 3765,
-  FMUL_4ZZ_D = 3766,
-  FMUL_4ZZ_H = 3767,
-  FMUL_4ZZ_S = 3768,
-  FMUL_ZPmI_D = 3769,
-  FMUL_ZPmI_H = 3770,
-  FMUL_ZPmI_S = 3771,
-  FMUL_ZPmZ_D = 3772,
-  FMUL_ZPmZ_H = 3773,
-  FMUL_ZPmZ_S = 3774,
-  FMUL_ZZZI_D = 3775,
-  FMUL_ZZZI_H = 3776,
-  FMUL_ZZZI_S = 3777,
-  FMUL_ZZZ_D = 3778,
-  FMUL_ZZZ_H = 3779,
-  FMUL_ZZZ_S = 3780,
-  FMULv1i16_indexed = 3781,
-  FMULv1i32_indexed = 3782,
-  FMULv1i64_indexed = 3783,
-  FMULv2f32 = 3784,
-  FMULv2f64 = 3785,
-  FMULv2i32_indexed = 3786,
-  FMULv2i64_indexed = 3787,
-  FMULv4f16 = 3788,
-  FMULv4f32 = 3789,
-  FMULv4i16_indexed = 3790,
-  FMULv4i32_indexed = 3791,
-  FMULv8f16 = 3792,
-  FMULv8i16_indexed = 3793,
-  FNEGDr = 3794,
-  FNEGHr = 3795,
-  FNEGSr = 3796,
-  FNEG_ZPmZ_D = 3797,
-  FNEG_ZPmZ_H = 3798,
-  FNEG_ZPmZ_S = 3799,
-  FNEG_ZPzZ_D = 3800,
-  FNEG_ZPzZ_H = 3801,
-  FNEG_ZPzZ_S = 3802,
-  FNEGv2f32 = 3803,
-  FNEGv2f64 = 3804,
-  FNEGv4f16 = 3805,
-  FNEGv4f32 = 3806,
-  FNEGv8f16 = 3807,
-  FNMADDDrrr = 3808,
-  FNMADDHrrr = 3809,
-  FNMADDSrrr = 3810,
-  FNMAD_ZPmZZ_D = 3811,
-  FNMAD_ZPmZZ_H = 3812,
-  FNMAD_ZPmZZ_S = 3813,
-  FNMLA_ZPmZZ_D = 3814,
-  FNMLA_ZPmZZ_H = 3815,
-  FNMLA_ZPmZZ_S = 3816,
-  FNMLS_ZPmZZ_D = 3817,
-  FNMLS_ZPmZZ_H = 3818,
-  FNMLS_ZPmZZ_S = 3819,
-  FNMSB_ZPmZZ_D = 3820,
-  FNMSB_ZPmZZ_H = 3821,
-  FNMSB_ZPmZZ_S = 3822,
-  FNMSUBDrrr = 3823,
-  FNMSUBHrrr = 3824,
-  FNMSUBSrrr = 3825,
-  FNMULDrr = 3826,
-  FNMULHrr = 3827,
-  FNMULSrr = 3828,
-  FRECPE_ZZ_D = 3829,
-  FRECPE_ZZ_H = 3830,
-  FRECPE_ZZ_S = 3831,
-  FRECPEv1f16 = 3832,
-  FRECPEv1i32 = 3833,
-  FRECPEv1i64 = 3834,
-  FRECPEv2f32 = 3835,
-  FRECPEv2f64 = 3836,
-  FRECPEv4f16 = 3837,
-  FRECPEv4f32 = 3838,
-  FRECPEv8f16 = 3839,
-  FRECPS16 = 3840,
-  FRECPS32 = 3841,
-  FRECPS64 = 3842,
-  FRECPS_ZZZ_D = 3843,
-  FRECPS_ZZZ_H = 3844,
-  FRECPS_ZZZ_S = 3845,
-  FRECPSv2f32 = 3846,
-  FRECPSv2f64 = 3847,
-  FRECPSv4f16 = 3848,
-  FRECPSv4f32 = 3849,
-  FRECPSv8f16 = 3850,
-  FRECPX_ZPmZ_D = 3851,
-  FRECPX_ZPmZ_H = 3852,
-  FRECPX_ZPmZ_S = 3853,
-  FRECPX_ZPzZ_D = 3854,
-  FRECPX_ZPzZ_H = 3855,
-  FRECPX_ZPzZ_S = 3856,
-  FRECPXv1f16 = 3857,
-  FRECPXv1i32 = 3858,
-  FRECPXv1i64 = 3859,
-  FRINT32XDr = 3860,
-  FRINT32XSr = 3861,
-  FRINT32X_ZPmZ_D = 3862,
-  FRINT32X_ZPmZ_S = 3863,
-  FRINT32X_ZPzZ_D = 3864,
-  FRINT32X_ZPzZ_S = 3865,
-  FRINT32Xv2f32 = 3866,
-  FRINT32Xv2f64 = 3867,
-  FRINT32Xv4f32 = 3868,
-  FRINT32ZDr = 3869,
-  FRINT32ZSr = 3870,
-  FRINT32Z_ZPmZ_D = 3871,
-  FRINT32Z_ZPmZ_S = 3872,
-  FRINT32Z_ZPzZ_D = 3873,
-  FRINT32Z_ZPzZ_S = 3874,
-  FRINT32Zv2f32 = 3875,
-  FRINT32Zv2f64 = 3876,
-  FRINT32Zv4f32 = 3877,
-  FRINT64XDr = 3878,
-  FRINT64XSr = 3879,
-  FRINT64X_ZPmZ_D = 3880,
-  FRINT64X_ZPmZ_S = 3881,
-  FRINT64X_ZPzZ_D = 3882,
-  FRINT64X_ZPzZ_S = 3883,
-  FRINT64Xv2f32 = 3884,
-  FRINT64Xv2f64 = 3885,
-  FRINT64Xv4f32 = 3886,
-  FRINT64ZDr = 3887,
-  FRINT64ZSr = 3888,
-  FRINT64Z_ZPmZ_D = 3889,
-  FRINT64Z_ZPmZ_S = 3890,
-  FRINT64Z_ZPzZ_D = 3891,
-  FRINT64Z_ZPzZ_S = 3892,
-  FRINT64Zv2f32 = 3893,
-  FRINT64Zv2f64 = 3894,
-  FRINT64Zv4f32 = 3895,
-  FRINTADr = 3896,
-  FRINTAHr = 3897,
-  FRINTASr = 3898,
-  FRINTA_2Z2Z_S = 3899,
-  FRINTA_4Z4Z_S = 3900,
-  FRINTA_ZPmZ_D = 3901,
-  FRINTA_ZPmZ_H = 3902,
-  FRINTA_ZPmZ_S = 3903,
-  FRINTA_ZPzZ_D = 3904,
-  FRINTA_ZPzZ_H = 3905,
-  FRINTA_ZPzZ_S = 3906,
-  FRINTAv2f32 = 3907,
-  FRINTAv2f64 = 3908,
-  FRINTAv4f16 = 3909,
-  FRINTAv4f32 = 3910,
-  FRINTAv8f16 = 3911,
-  FRINTIDr = 3912,
-  FRINTIHr = 3913,
-  FRINTISr = 3914,
-  FRINTI_ZPmZ_D = 3915,
-  FRINTI_ZPmZ_H = 3916,
-  FRINTI_ZPmZ_S = 3917,
-  FRINTI_ZPzZ_D = 3918,
-  FRINTI_ZPzZ_H = 3919,
-  FRINTI_ZPzZ_S = 3920,
-  FRINTIv2f32 = 3921,
-  FRINTIv2f64 = 3922,
-  FRINTIv4f16 = 3923,
-  FRINTIv4f32 = 3924,
-  FRINTIv8f16 = 3925,
-  FRINTMDr = 3926,
-  FRINTMHr = 3927,
-  FRINTMSr = 3928,
-  FRINTM_2Z2Z_S = 3929,
-  FRINTM_4Z4Z_S = 3930,
-  FRINTM_ZPmZ_D = 3931,
-  FRINTM_ZPmZ_H = 3932,
-  FRINTM_ZPmZ_S = 3933,
-  FRINTM_ZPzZ_D = 3934,
-  FRINTM_ZPzZ_H = 3935,
-  FRINTM_ZPzZ_S = 3936,
-  FRINTMv2f32 = 3937,
-  FRINTMv2f64 = 3938,
-  FRINTMv4f16 = 3939,
-  FRINTMv4f32 = 3940,
-  FRINTMv8f16 = 3941,
-  FRINTNDr = 3942,
-  FRINTNHr = 3943,
-  FRINTNSr = 3944,
-  FRINTN_2Z2Z_S = 3945,
-  FRINTN_4Z4Z_S = 3946,
-  FRINTN_ZPmZ_D = 3947,
-  FRINTN_ZPmZ_H = 3948,
-  FRINTN_ZPmZ_S = 3949,
-  FRINTN_ZPzZ_D = 3950,
-  FRINTN_ZPzZ_H = 3951,
-  FRINTN_ZPzZ_S = 3952,
-  FRINTNv2f32 = 3953,
-  FRINTNv2f64 = 3954,
-  FRINTNv4f16 = 3955,
-  FRINTNv4f32 = 3956,
-  FRINTNv8f16 = 3957,
-  FRINTPDr = 3958,
-  FRINTPHr = 3959,
-  FRINTPSr = 3960,
-  FRINTP_2Z2Z_S = 3961,
-  FRINTP_4Z4Z_S = 3962,
-  FRINTP_ZPmZ_D = 3963,
-  FRINTP_ZPmZ_H = 3964,
-  FRINTP_ZPmZ_S = 3965,
-  FRINTP_ZPzZ_D = 3966,
-  FRINTP_ZPzZ_H = 3967,
-  FRINTP_ZPzZ_S = 3968,
-  FRINTPv2f32 = 3969,
-  FRINTPv2f64 = 3970,
-  FRINTPv4f16 = 3971,
-  FRINTPv4f32 = 3972,
-  FRINTPv8f16 = 3973,
-  FRINTXDr = 3974,
-  FRINTXHr = 3975,
-  FRINTXSr = 3976,
-  FRINTX_ZPmZ_D = 3977,
-  FRINTX_ZPmZ_H = 3978,
-  FRINTX_ZPmZ_S = 3979,
-  FRINTX_ZPzZ_D = 3980,
-  FRINTX_ZPzZ_H = 3981,
-  FRINTX_ZPzZ_S = 3982,
-  FRINTXv2f32 = 3983,
-  FRINTXv2f64 = 3984,
-  FRINTXv4f16 = 3985,
-  FRINTXv4f32 = 3986,
-  FRINTXv8f16 = 3987,
-  FRINTZDr = 3988,
-  FRINTZHr = 3989,
-  FRINTZSr = 3990,
-  FRINTZ_ZPmZ_D = 3991,
-  FRINTZ_ZPmZ_H = 3992,
-  FRINTZ_ZPmZ_S = 3993,
-  FRINTZ_ZPzZ_D = 3994,
-  FRINTZ_ZPzZ_H = 3995,
-  FRINTZ_ZPzZ_S = 3996,
-  FRINTZv2f32 = 3997,
-  FRINTZv2f64 = 3998,
-  FRINTZv4f16 = 3999,
-  FRINTZv4f32 = 4000,
-  FRINTZv8f16 = 4001,
-  FRSQRTE_ZZ_D = 4002,
-  FRSQRTE_ZZ_H = 4003,
-  FRSQRTE_ZZ_S = 4004,
-  FRSQRTEv1f16 = 4005,
-  FRSQRTEv1i32 = 4006,
-  FRSQRTEv1i64 = 4007,
-  FRSQRTEv2f32 = 4008,
-  FRSQRTEv2f64 = 4009,
-  FRSQRTEv4f16 = 4010,
-  FRSQRTEv4f32 = 4011,
-  FRSQRTEv8f16 = 4012,
-  FRSQRTS16 = 4013,
-  FRSQRTS32 = 4014,
-  FRSQRTS64 = 4015,
-  FRSQRTS_ZZZ_D = 4016,
-  FRSQRTS_ZZZ_H = 4017,
-  FRSQRTS_ZZZ_S = 4018,
-  FRSQRTSv2f32 = 4019,
-  FRSQRTSv2f64 = 4020,
-  FRSQRTSv4f16 = 4021,
-  FRSQRTSv4f32 = 4022,
-  FRSQRTSv8f16 = 4023,
-  FSCALE_2Z2Z_D = 4024,
-  FSCALE_2Z2Z_H = 4025,
-  FSCALE_2Z2Z_S = 4026,
-  FSCALE_2ZZ_D = 4027,
-  FSCALE_2ZZ_H = 4028,
-  FSCALE_2ZZ_S = 4029,
-  FSCALE_4Z4Z_D = 4030,
-  FSCALE_4Z4Z_H = 4031,
-  FSCALE_4Z4Z_S = 4032,
-  FSCALE_4ZZ_D = 4033,
-  FSCALE_4ZZ_H = 4034,
-  FSCALE_4ZZ_S = 4035,
-  FSCALE_ZPmZ_D = 4036,
-  FSCALE_ZPmZ_H = 4037,
-  FSCALE_ZPmZ_S = 4038,
-  FSCALEv2f32 = 4039,
-  FSCALEv2f64 = 4040,
-  FSCALEv4f16 = 4041,
-  FSCALEv4f32 = 4042,
-  FSCALEv8f16 = 4043,
-  FSQRTDr = 4044,
-  FSQRTHr = 4045,
-  FSQRTSr = 4046,
-  FSQRT_ZPZz_D = 4047,
-  FSQRT_ZPZz_H = 4048,
-  FSQRT_ZPZz_S = 4049,
-  FSQRT_ZPmZ_D = 4050,
-  FSQRT_ZPmZ_H = 4051,
-  FSQRT_ZPmZ_S = 4052,
-  FSQRTv2f32 = 4053,
-  FSQRTv2f64 = 4054,
-  FSQRTv4f16 = 4055,
-  FSQRTv4f32 = 4056,
-  FSQRTv8f16 = 4057,
-  FSUBDrr = 4058,
-  FSUBHrr = 4059,
-  FSUBR_ZPmI_D = 4060,
-  FSUBR_ZPmI_H = 4061,
-  FSUBR_ZPmI_S = 4062,
-  FSUBR_ZPmZ_D = 4063,
-  FSUBR_ZPmZ_H = 4064,
-  FSUBR_ZPmZ_S = 4065,
-  FSUBSrr = 4066,
-  FSUB_VG2_M2Z_D = 4067,
-  FSUB_VG2_M2Z_H = 4068,
-  FSUB_VG2_M2Z_S = 4069,
-  FSUB_VG4_M4Z_D = 4070,
-  FSUB_VG4_M4Z_H = 4071,
-  FSUB_VG4_M4Z_S = 4072,
-  FSUB_ZPmI_D = 4073,
-  FSUB_ZPmI_H = 4074,
-  FSUB_ZPmI_S = 4075,
-  FSUB_ZPmZ_D = 4076,
-  FSUB_ZPmZ_H = 4077,
-  FSUB_ZPmZ_S = 4078,
-  FSUB_ZZZ_D = 4079,
-  FSUB_ZZZ_H = 4080,
-  FSUB_ZZZ_S = 4081,
-  FSUBv2f32 = 4082,
-  FSUBv2f64 = 4083,
-  FSUBv4f16 = 4084,
-  FSUBv4f32 = 4085,
-  FSUBv8f16 = 4086,
-  FTMAD_ZZI_D = 4087,
-  FTMAD_ZZI_H = 4088,
-  FTMAD_ZZI_S = 4089,
-  FTMOPA_M2ZZZI_BtoH = 4090,
-  FTMOPA_M2ZZZI_BtoS = 4091,
-  FTMOPA_M2ZZZI_HtoH = 4092,
-  FTMOPA_M2ZZZI_HtoS = 4093,
-  FTMOPA_M2ZZZI_StoS = 4094,
-  FTSMUL_ZZZ_D = 4095,
-  FTSMUL_ZZZ_H = 4096,
-  FTSMUL_ZZZ_S = 4097,
-  FTSSEL_ZZZ_D = 4098,
-  FTSSEL_ZZZ_H = 4099,
-  FTSSEL_ZZZ_S = 4100,
-  FVDOTB_VG4_M2ZZI_BtoS = 4101,
-  FVDOTT_VG4_M2ZZI_BtoS = 4102,
-  FVDOT_VG2_M2ZZI_BtoH = 4103,
-  FVDOT_VG2_M2ZZI_HtoS = 4104,
-  GCSPOPCX = 4105,
-  GCSPOPM = 4106,
-  GCSPOPX = 4107,
-  GCSPUSHM = 4108,
-  GCSPUSHX = 4109,
-  GCSSS1 = 4110,
-  GCSSS2 = 4111,
-  GCSSTR = 4112,
-  GCSSTTR = 4113,
-  GLD1B_D = 4114,
-  GLD1B_D_IMM = 4115,
-  GLD1B_D_SXTW = 4116,
-  GLD1B_D_UXTW = 4117,
-  GLD1B_S_IMM = 4118,
-  GLD1B_S_SXTW = 4119,
-  GLD1B_S_UXTW = 4120,
-  GLD1D = 4121,
-  GLD1D_IMM = 4122,
-  GLD1D_SCALED = 4123,
-  GLD1D_SXTW = 4124,
-  GLD1D_SXTW_SCALED = 4125,
-  GLD1D_UXTW = 4126,
-  GLD1D_UXTW_SCALED = 4127,
-  GLD1H_D = 4128,
-  GLD1H_D_IMM = 4129,
-  GLD1H_D_SCALED = 4130,
-  GLD1H_D_SXTW = 4131,
-  GLD1H_D_SXTW_SCALED = 4132,
-  GLD1H_D_UXTW = 4133,
-  GLD1H_D_UXTW_SCALED = 4134,
-  GLD1H_S_IMM = 4135,
-  GLD1H_S_SXTW = 4136,
-  GLD1H_S_SXTW_SCALED = 4137,
-  GLD1H_S_UXTW = 4138,
-  GLD1H_S_UXTW_SCALED = 4139,
-  GLD1Q = 4140,
-  GLD1SB_D = 4141,
-  GLD1SB_D_IMM = 4142,
-  GLD1SB_D_SXTW = 4143,
-  GLD1SB_D_UXTW = 4144,
-  GLD1SB_S_IMM = 4145,
-  GLD1SB_S_SXTW = 4146,
-  GLD1SB_S_UXTW = 4147,
-  GLD1SH_D = 4148,
-  GLD1SH_D_IMM = 4149,
-  GLD1SH_D_SCALED = 4150,
-  GLD1SH_D_SXTW = 4151,
-  GLD1SH_D_SXTW_SCALED = 4152,
-  GLD1SH_D_UXTW = 4153,
-  GLD1SH_D_UXTW_SCALED = 4154,
-  GLD1SH_S_IMM = 4155,
-  GLD1SH_S_SXTW = 4156,
-  GLD1SH_S_SXTW_SCALED = 4157,
-  GLD1SH_S_UXTW = 4158,
-  GLD1SH_S_UXTW_SCALED = 4159,
-  GLD1SW_D = 4160,
-  GLD1SW_D_IMM = 4161,
-  GLD1SW_D_SCALED = 4162,
-  GLD1SW_D_SXTW = 4163,
-  GLD1SW_D_SXTW_SCALED = 4164,
-  GLD1SW_D_UXTW = 4165,
-  GLD1SW_D_UXTW_SCALED = 4166,
-  GLD1W_D = 4167,
-  GLD1W_D_IMM = 4168,
-  GLD1W_D_SCALED = 4169,
-  GLD1W_D_SXTW = 4170,
-  GLD1W_D_SXTW_SCALED = 4171,
-  GLD1W_D_UXTW = 4172,
-  GLD1W_D_UXTW_SCALED = 4173,
-  GLD1W_IMM = 4174,
-  GLD1W_SXTW = 4175,
-  GLD1W_SXTW_SCALED = 4176,
-  GLD1W_UXTW = 4177,
-  GLD1W_UXTW_SCALED = 4178,
-  GLDFF1B_D = 4179,
-  GLDFF1B_D_IMM = 4180,
-  GLDFF1B_D_SXTW = 4181,
-  GLDFF1B_D_UXTW = 4182,
-  GLDFF1B_S_IMM = 4183,
-  GLDFF1B_S_SXTW = 4184,
-  GLDFF1B_S_UXTW = 4185,
-  GLDFF1D = 4186,
-  GLDFF1D_IMM = 4187,
-  GLDFF1D_SCALED = 4188,
-  GLDFF1D_SXTW = 4189,
-  GLDFF1D_SXTW_SCALED = 4190,
-  GLDFF1D_UXTW = 4191,
-  GLDFF1D_UXTW_SCALED = 4192,
-  GLDFF1H_D = 4193,
-  GLDFF1H_D_IMM = 4194,
-  GLDFF1H_D_SCALED = 4195,
-  GLDFF1H_D_SXTW = 4196,
-  GLDFF1H_D_SXTW_SCALED = 4197,
-  GLDFF1H_D_UXTW = 4198,
-  GLDFF1H_D_UXTW_SCALED = 4199,
-  GLDFF1H_S_IMM = 4200,
-  GLDFF1H_S_SXTW = 4201,
-  GLDFF1H_S_SXTW_SCALED = 4202,
-  GLDFF1H_S_UXTW = 4203,
-  GLDFF1H_S_UXTW_SCALED = 4204,
-  GLDFF1SB_D = 4205,
-  GLDFF1SB_D_IMM = 4206,
-  GLDFF1SB_D_SXTW = 4207,
-  GLDFF1SB_D_UXTW = 4208,
-  GLDFF1SB_S_IMM = 4209,
-  GLDFF1SB_S_SXTW = 4210,
-  GLDFF1SB_S_UXTW = 4211,
-  GLDFF1SH_D = 4212,
-  GLDFF1SH_D_IMM = 4213,
-  GLDFF1SH_D_SCALED = 4214,
-  GLDFF1SH_D_SXTW = 4215,
-  GLDFF1SH_D_SXTW_SCALED = 4216,
-  GLDFF1SH_D_UXTW = 4217,
-  GLDFF1SH_D_UXTW_SCALED = 4218,
-  GLDFF1SH_S_IMM = 4219,
-  GLDFF1SH_S_SXTW = 4220,
-  GLDFF1SH_S_SXTW_SCALED = 4221,
-  GLDFF1SH_S_UXTW = 4222,
-  GLDFF1SH_S_UXTW_SCALED = 4223,
-  GLDFF1SW_D = 4224,
-  GLDFF1SW_D_IMM = 4225,
-  GLDFF1SW_D_SCALED = 4226,
-  GLDFF1SW_D_SXTW = 4227,
-  GLDFF1SW_D_SXTW_SCALED = 4228,
-  GLDFF1SW_D_UXTW = 4229,
-  GLDFF1SW_D_UXTW_SCALED = 4230,
-  GLDFF1W_D = 4231,
-  GLDFF1W_D_IMM = 4232,
-  GLDFF1W_D_SCALED = 4233,
-  GLDFF1W_D_SXTW = 4234,
-  GLDFF1W_D_SXTW_SCALED = 4235,
-  GLDFF1W_D_UXTW = 4236,
-  GLDFF1W_D_UXTW_SCALED = 4237,
-  GLDFF1W_IMM = 4238,
-  GLDFF1W_SXTW = 4239,
-  GLDFF1W_SXTW_SCALED = 4240,
-  GLDFF1W_UXTW = 4241,
-  GLDFF1W_UXTW_SCALED = 4242,
-  GMI = 4243,
-  HINT = 4244,
-  HISTCNT_ZPzZZ_D = 4245,
-  HISTCNT_ZPzZZ_S = 4246,
-  HISTSEG_ZZZ = 4247,
-  HLT = 4248,
-  HVC = 4249,
-  INCB_XPiI = 4250,
-  INCD_XPiI = 4251,
-  INCD_ZPiI = 4252,
-  INCH_XPiI = 4253,
-  INCH_ZPiI = 4254,
-  INCP_XP_B = 4255,
-  INCP_XP_D = 4256,
-  INCP_XP_H = 4257,
-  INCP_XP_S = 4258,
-  INCP_ZP_D = 4259,
-  INCP_ZP_H = 4260,
-  INCP_ZP_S = 4261,
-  INCW_XPiI = 4262,
-  INCW_ZPiI = 4263,
-  INDEX_II_B = 4264,
-  INDEX_II_D = 4265,
-  INDEX_II_H = 4266,
-  INDEX_II_S = 4267,
-  INDEX_IR_B = 4268,
-  INDEX_IR_D = 4269,
-  INDEX_IR_H = 4270,
-  INDEX_IR_S = 4271,
-  INDEX_RI_B = 4272,
-  INDEX_RI_D = 4273,
-  INDEX_RI_H = 4274,
-  INDEX_RI_S = 4275,
-  INDEX_RR_B = 4276,
-  INDEX_RR_D = 4277,
-  INDEX_RR_H = 4278,
-  INDEX_RR_S = 4279,
-  INSERT_MXIPZ_H_B = 4280,
-  INSERT_MXIPZ_H_D = 4281,
-  INSERT_MXIPZ_H_H = 4282,
-  INSERT_MXIPZ_H_Q = 4283,
-  INSERT_MXIPZ_H_S = 4284,
-  INSERT_MXIPZ_V_B = 4285,
-  INSERT_MXIPZ_V_D = 4286,
-  INSERT_MXIPZ_V_H = 4287,
-  INSERT_MXIPZ_V_Q = 4288,
-  INSERT_MXIPZ_V_S = 4289,
-  INSR_ZR_B = 4290,
-  INSR_ZR_D = 4291,
-  INSR_ZR_H = 4292,
-  INSR_ZR_S = 4293,
-  INSR_ZV_B = 4294,
-  INSR_ZV_D = 4295,
-  INSR_ZV_H = 4296,
-  INSR_ZV_S = 4297,
-  INSvi16gpr = 4298,
-  INSvi16lane = 4299,
-  INSvi32gpr = 4300,
-  INSvi32lane = 4301,
-  INSvi64gpr = 4302,
-  INSvi64lane = 4303,
-  INSvi8gpr = 4304,
-  INSvi8lane = 4305,
-  IRG = 4306,
-  ISB = 4307,
-  LASTA_RPZ_B = 4308,
-  LASTA_RPZ_D = 4309,
-  LASTA_RPZ_H = 4310,
-  LASTA_RPZ_S = 4311,
-  LASTA_VPZ_B = 4312,
-  LASTA_VPZ_D = 4313,
-  LASTA_VPZ_H = 4314,
-  LASTA_VPZ_S = 4315,
-  LASTB_RPZ_B = 4316,
-  LASTB_RPZ_D = 4317,
-  LASTB_RPZ_H = 4318,
-  LASTB_RPZ_S = 4319,
-  LASTB_VPZ_B = 4320,
-  LASTB_VPZ_D = 4321,
-  LASTB_VPZ_H = 4322,
-  LASTB_VPZ_S = 4323,
-  LASTP_XPP_B = 4324,
-  LASTP_XPP_D = 4325,
-  LASTP_XPP_H = 4326,
-  LASTP_XPP_S = 4327,
-  LD1B = 4328,
-  LD1B_2Z = 4329,
-  LD1B_2Z_IMM = 4330,
-  LD1B_2Z_STRIDED = 4331,
-  LD1B_2Z_STRIDED_IMM = 4332,
-  LD1B_4Z = 4333,
-  LD1B_4Z_IMM = 4334,
-  LD1B_4Z_STRIDED = 4335,
-  LD1B_4Z_STRIDED_IMM = 4336,
-  LD1B_D = 4337,
-  LD1B_D_IMM = 4338,
-  LD1B_H = 4339,
-  LD1B_H_IMM = 4340,
-  LD1B_IMM = 4341,
-  LD1B_S = 4342,
-  LD1B_S_IMM = 4343,
-  LD1D = 4344,
-  LD1D_2Z = 4345,
-  LD1D_2Z_IMM = 4346,
-  LD1D_2Z_STRIDED = 4347,
-  LD1D_2Z_STRIDED_IMM = 4348,
-  LD1D_4Z = 4349,
-  LD1D_4Z_IMM = 4350,
-  LD1D_4Z_STRIDED = 4351,
-  LD1D_4Z_STRIDED_IMM = 4352,
-  LD1D_IMM = 4353,
-  LD1D_Q = 4354,
-  LD1D_Q_IMM = 4355,
-  LD1Fourv16b = 4356,
-  LD1Fourv16b_POST = 4357,
-  LD1Fourv1d = 4358,
-  LD1Fourv1d_POST = 4359,
-  LD1Fourv2d = 4360,
-  LD1Fourv2d_POST = 4361,
-  LD1Fourv2s = 4362,
-  LD1Fourv2s_POST = 4363,
-  LD1Fourv4h = 4364,
-  LD1Fourv4h_POST = 4365,
-  LD1Fourv4s = 4366,
-  LD1Fourv4s_POST = 4367,
-  LD1Fourv8b = 4368,
-  LD1Fourv8b_POST = 4369,
-  LD1Fourv8h = 4370,
-  LD1Fourv8h_POST = 4371,
-  LD1H = 4372,
-  LD1H_2Z = 4373,
-  LD1H_2Z_IMM = 4374,
-  LD1H_2Z_STRIDED = 4375,
-  LD1H_2Z_STRIDED_IMM = 4376,
-  LD1H_4Z = 4377,
-  LD1H_4Z_IMM = 4378,
-  LD1H_4Z_STRIDED = 4379,
-  LD1H_4Z_STRIDED_IMM = 4380,
-  LD1H_D = 4381,
-  LD1H_D_IMM = 4382,
-  LD1H_IMM = 4383,
-  LD1H_S = 4384,
-  LD1H_S_IMM = 4385,
-  LD1Onev16b = 4386,
-  LD1Onev16b_POST = 4387,
-  LD1Onev1d = 4388,
-  LD1Onev1d_POST = 4389,
-  LD1Onev2d = 4390,
-  LD1Onev2d_POST = 4391,
-  LD1Onev2s = 4392,
-  LD1Onev2s_POST = 4393,
-  LD1Onev4h = 4394,
-  LD1Onev4h_POST = 4395,
-  LD1Onev4s = 4396,
-  LD1Onev4s_POST = 4397,
-  LD1Onev8b = 4398,
-  LD1Onev8b_POST = 4399,
-  LD1Onev8h = 4400,
-  LD1Onev8h_POST = 4401,
-  LD1RB_D_IMM = 4402,
-  LD1RB_H_IMM = 4403,
-  LD1RB_IMM = 4404,
-  LD1RB_S_IMM = 4405,
-  LD1RD_IMM = 4406,
-  LD1RH_D_IMM = 4407,
-  LD1RH_IMM = 4408,
-  LD1RH_S_IMM = 4409,
-  LD1RO_B = 4410,
-  LD1RO_B_IMM = 4411,
-  LD1RO_D = 4412,
-  LD1RO_D_IMM = 4413,
-  LD1RO_H = 4414,
-  LD1RO_H_IMM = 4415,
-  LD1RO_W = 4416,
-  LD1RO_W_IMM = 4417,
-  LD1RQ_B = 4418,
-  LD1RQ_B_IMM = 4419,
-  LD1RQ_D = 4420,
-  LD1RQ_D_IMM = 4421,
-  LD1RQ_H = 4422,
-  LD1RQ_H_IMM = 4423,
-  LD1RQ_W = 4424,
-  LD1RQ_W_IMM = 4425,
-  LD1RSB_D_IMM = 4426,
-  LD1RSB_H_IMM = 4427,
-  LD1RSB_S_IMM = 4428,
-  LD1RSH_D_IMM = 4429,
-  LD1RSH_S_IMM = 4430,
-  LD1RSW_IMM = 4431,
-  LD1RW_D_IMM = 4432,
-  LD1RW_IMM = 4433,
-  LD1Rv16b = 4434,
-  LD1Rv16b_POST = 4435,
-  LD1Rv1d = 4436,
-  LD1Rv1d_POST = 4437,
-  LD1Rv2d = 4438,
-  LD1Rv2d_POST = 4439,
-  LD1Rv2s = 4440,
-  LD1Rv2s_POST = 4441,
-  LD1Rv4h = 4442,
-  LD1Rv4h_POST = 4443,
-  LD1Rv4s = 4444,
-  LD1Rv4s_POST = 4445,
-  LD1Rv8b = 4446,
-  LD1Rv8b_POST = 4447,
-  LD1Rv8h = 4448,
-  LD1Rv8h_POST = 4449,
-  LD1SB_D = 4450,
-  LD1SB_D_IMM = 4451,
-  LD1SB_H = 4452,
-  LD1SB_H_IMM = 4453,
-  LD1SB_S = 4454,
-  LD1SB_S_IMM = 4455,
-  LD1SH_D = 4456,
-  LD1SH_D_IMM = 4457,
-  LD1SH_S = 4458,
-  LD1SH_S_IMM = 4459,
-  LD1SW_D = 4460,
-  LD1SW_D_IMM = 4461,
-  LD1Threev16b = 4462,
-  LD1Threev16b_POST = 4463,
-  LD1Threev1d = 4464,
-  LD1Threev1d_POST = 4465,
-  LD1Threev2d = 4466,
-  LD1Threev2d_POST = 4467,
-  LD1Threev2s = 4468,
-  LD1Threev2s_POST = 4469,
-  LD1Threev4h = 4470,
-  LD1Threev4h_POST = 4471,
-  LD1Threev4s = 4472,
-  LD1Threev4s_POST = 4473,
-  LD1Threev8b = 4474,
-  LD1Threev8b_POST = 4475,
-  LD1Threev8h = 4476,
-  LD1Threev8h_POST = 4477,
-  LD1Twov16b = 4478,
-  LD1Twov16b_POST = 4479,
-  LD1Twov1d = 4480,
-  LD1Twov1d_POST = 4481,
-  LD1Twov2d = 4482,
-  LD1Twov2d_POST = 4483,
-  LD1Twov2s = 4484,
-  LD1Twov2s_POST = 4485,
-  LD1Twov4h = 4486,
-  LD1Twov4h_POST = 4487,
-  LD1Twov4s = 4488,
-  LD1Twov4s_POST = 4489,
-  LD1Twov8b = 4490,
-  LD1Twov8b_POST = 4491,
-  LD1Twov8h = 4492,
-  LD1Twov8h_POST = 4493,
-  LD1W = 4494,
-  LD1W_2Z = 4495,
-  LD1W_2Z_IMM = 4496,
-  LD1W_2Z_STRIDED = 4497,
-  LD1W_2Z_STRIDED_IMM = 4498,
-  LD1W_4Z = 4499,
-  LD1W_4Z_IMM = 4500,
-  LD1W_4Z_STRIDED = 4501,
-  LD1W_4Z_STRIDED_IMM = 4502,
-  LD1W_D = 4503,
-  LD1W_D_IMM = 4504,
-  LD1W_IMM = 4505,
-  LD1W_Q = 4506,
-  LD1W_Q_IMM = 4507,
-  LD1_MXIPXX_H_B = 4508,
-  LD1_MXIPXX_H_D = 4509,
-  LD1_MXIPXX_H_H = 4510,
-  LD1_MXIPXX_H_Q = 4511,
-  LD1_MXIPXX_H_S = 4512,
-  LD1_MXIPXX_V_B = 4513,
-  LD1_MXIPXX_V_D = 4514,
-  LD1_MXIPXX_V_H = 4515,
-  LD1_MXIPXX_V_Q = 4516,
-  LD1_MXIPXX_V_S = 4517,
-  LD1i16 = 4518,
-  LD1i16_POST = 4519,
-  LD1i32 = 4520,
-  LD1i32_POST = 4521,
-  LD1i64 = 4522,
-  LD1i64_POST = 4523,
-  LD1i8 = 4524,
-  LD1i8_POST = 4525,
-  LD2B = 4526,
-  LD2B_IMM = 4527,
-  LD2D = 4528,
-  LD2D_IMM = 4529,
-  LD2H = 4530,
-  LD2H_IMM = 4531,
-  LD2Q = 4532,
-  LD2Q_IMM = 4533,
-  LD2Rv16b = 4534,
-  LD2Rv16b_POST = 4535,
-  LD2Rv1d = 4536,
-  LD2Rv1d_POST = 4537,
-  LD2Rv2d = 4538,
-  LD2Rv2d_POST = 4539,
-  LD2Rv2s = 4540,
-  LD2Rv2s_POST = 4541,
-  LD2Rv4h = 4542,
-  LD2Rv4h_POST = 4543,
-  LD2Rv4s = 4544,
-  LD2Rv4s_POST = 4545,
-  LD2Rv8b = 4546,
-  LD2Rv8b_POST = 4547,
-  LD2Rv8h = 4548,
-  LD2Rv8h_POST = 4549,
-  LD2Twov16b = 4550,
-  LD2Twov16b_POST = 4551,
-  LD2Twov2d = 4552,
-  LD2Twov2d_POST = 4553,
-  LD2Twov2s = 4554,
-  LD2Twov2s_POST = 4555,
-  LD2Twov4h = 4556,
-  LD2Twov4h_POST = 4557,
-  LD2Twov4s = 4558,
-  LD2Twov4s_POST = 4559,
-  LD2Twov8b = 4560,
-  LD2Twov8b_POST = 4561,
-  LD2Twov8h = 4562,
-  LD2Twov8h_POST = 4563,
-  LD2W = 4564,
-  LD2W_IMM = 4565,
-  LD2i16 = 4566,
-  LD2i16_POST = 4567,
-  LD2i32 = 4568,
-  LD2i32_POST = 4569,
-  LD2i64 = 4570,
-  LD2i64_POST = 4571,
-  LD2i8 = 4572,
-  LD2i8_POST = 4573,
-  LD3B = 4574,
-  LD3B_IMM = 4575,
-  LD3D = 4576,
-  LD3D_IMM = 4577,
-  LD3H = 4578,
-  LD3H_IMM = 4579,
-  LD3Q = 4580,
-  LD3Q_IMM = 4581,
-  LD3Rv16b = 4582,
-  LD3Rv16b_POST = 4583,
-  LD3Rv1d = 4584,
-  LD3Rv1d_POST = 4585,
-  LD3Rv2d = 4586,
-  LD3Rv2d_POST = 4587,
-  LD3Rv2s = 4588,
-  LD3Rv2s_POST = 4589,
-  LD3Rv4h = 4590,
-  LD3Rv4h_POST = 4591,
-  LD3Rv4s = 4592,
-  LD3Rv4s_POST = 4593,
-  LD3Rv8b = 4594,
-  LD3Rv8b_POST = 4595,
-  LD3Rv8h = 4596,
-  LD3Rv8h_POST = 4597,
-  LD3Threev16b = 4598,
-  LD3Threev16b_POST = 4599,
-  LD3Threev2d = 4600,
-  LD3Threev2d_POST = 4601,
-  LD3Threev2s = 4602,
-  LD3Threev2s_POST = 4603,
-  LD3Threev4h = 4604,
-  LD3Threev4h_POST = 4605,
-  LD3Threev4s = 4606,
-  LD3Threev4s_POST = 4607,
-  LD3Threev8b = 4608,
-  LD3Threev8b_POST = 4609,
-  LD3Threev8h = 4610,
-  LD3Threev8h_POST = 4611,
-  LD3W = 4612,
-  LD3W_IMM = 4613,
-  LD3i16 = 4614,
-  LD3i16_POST = 4615,
-  LD3i32 = 4616,
-  LD3i32_POST = 4617,
-  LD3i64 = 4618,
-  LD3i64_POST = 4619,
-  LD3i8 = 4620,
-  LD3i8_POST = 4621,
-  LD4B = 4622,
-  LD4B_IMM = 4623,
-  LD4D = 4624,
-  LD4D_IMM = 4625,
-  LD4Fourv16b = 4626,
-  LD4Fourv16b_POST = 4627,
-  LD4Fourv2d = 4628,
-  LD4Fourv2d_POST = 4629,
-  LD4Fourv2s = 4630,
-  LD4Fourv2s_POST = 4631,
-  LD4Fourv4h = 4632,
-  LD4Fourv4h_POST = 4633,
-  LD4Fourv4s = 4634,
-  LD4Fourv4s_POST = 4635,
-  LD4Fourv8b = 4636,
-  LD4Fourv8b_POST = 4637,
-  LD4Fourv8h = 4638,
-  LD4Fourv8h_POST = 4639,
-  LD4H = 4640,
-  LD4H_IMM = 4641,
-  LD4Q = 4642,
-  LD4Q_IMM = 4643,
-  LD4Rv16b = 4644,
-  LD4Rv16b_POST = 4645,
-  LD4Rv1d = 4646,
-  LD4Rv1d_POST = 4647,
-  LD4Rv2d = 4648,
-  LD4Rv2d_POST = 4649,
-  LD4Rv2s = 4650,
-  LD4Rv2s_POST = 4651,
-  LD4Rv4h = 4652,
-  LD4Rv4h_POST = 4653,
-  LD4Rv4s = 4654,
-  LD4Rv4s_POST = 4655,
-  LD4Rv8b = 4656,
-  LD4Rv8b_POST = 4657,
-  LD4Rv8h = 4658,
-  LD4Rv8h_POST = 4659,
-  LD4W = 4660,
-  LD4W_IMM = 4661,
-  LD4i16 = 4662,
-  LD4i16_POST = 4663,
-  LD4i32 = 4664,
-  LD4i32_POST = 4665,
-  LD4i64 = 4666,
-  LD4i64_POST = 4667,
-  LD4i8 = 4668,
-  LD4i8_POST = 4669,
-  LD64B = 4670,
-  LDADDAB = 4671,
-  LDADDAH = 4672,
-  LDADDALB = 4673,
-  LDADDALH = 4674,
-  LDADDALW = 4675,
-  LDADDALX = 4676,
-  LDADDAW = 4677,
-  LDADDAX = 4678,
-  LDADDB = 4679,
-  LDADDH = 4680,
-  LDADDLB = 4681,
-  LDADDLH = 4682,
-  LDADDLW = 4683,
-  LDADDLX = 4684,
-  LDADDW = 4685,
-  LDADDX = 4686,
-  LDAP1 = 4687,
-  LDAPRB = 4688,
-  LDAPRH = 4689,
-  LDAPRW = 4690,
-  LDAPRWpost = 4691,
-  LDAPRX = 4692,
-  LDAPRXpost = 4693,
-  LDAPURBi = 4694,
-  LDAPURHi = 4695,
-  LDAPURSBWi = 4696,
-  LDAPURSBXi = 4697,
-  LDAPURSHWi = 4698,
-  LDAPURSHXi = 4699,
-  LDAPURSWi = 4700,
-  LDAPURXi = 4701,
-  LDAPURbi = 4702,
-  LDAPURdi = 4703,
-  LDAPURhi = 4704,
-  LDAPURi = 4705,
-  LDAPURqi = 4706,
-  LDAPURsi = 4707,
-  LDARB = 4708,
-  LDARH = 4709,
-  LDARW = 4710,
-  LDARX = 4711,
-  LDATXRW = 4712,
-  LDATXRX = 4713,
-  LDAXPW = 4714,
-  LDAXPX = 4715,
-  LDAXRB = 4716,
-  LDAXRH = 4717,
-  LDAXRW = 4718,
-  LDAXRX = 4719,
-  LDBFADD = 4720,
-  LDBFADDA = 4721,
-  LDBFADDAL = 4722,
-  LDBFADDL = 4723,
-  LDBFMAX = 4724,
-  LDBFMAXA = 4725,
-  LDBFMAXAL = 4726,
-  LDBFMAXL = 4727,
-  LDBFMAXNM = 4728,
-  LDBFMAXNMA = 4729,
-  LDBFMAXNMAL = 4730,
-  LDBFMAXNML = 4731,
-  LDBFMIN = 4732,
-  LDBFMINA = 4733,
-  LDBFMINAL = 4734,
-  LDBFMINL = 4735,
-  LDBFMINNM = 4736,
-  LDBFMINNMA = 4737,
-  LDBFMINNMAL = 4738,
-  LDBFMINNML = 4739,
-  LDCLRAB = 4740,
-  LDCLRAH = 4741,
-  LDCLRALB = 4742,
-  LDCLRALH = 4743,
-  LDCLRALW = 4744,
-  LDCLRALX = 4745,
-  LDCLRAW = 4746,
-  LDCLRAX = 4747,
-  LDCLRB = 4748,
-  LDCLRH = 4749,
-  LDCLRLB = 4750,
-  LDCLRLH = 4751,
-  LDCLRLW = 4752,
-  LDCLRLX = 4753,
-  LDCLRP = 4754,
-  LDCLRPA = 4755,
-  LDCLRPAL = 4756,
-  LDCLRPL = 4757,
-  LDCLRW = 4758,
-  LDCLRX = 4759,
-  LDEORAB = 4760,
-  LDEORAH = 4761,
-  LDEORALB = 4762,
-  LDEORALH = 4763,
-  LDEORALW = 4764,
-  LDEORALX = 4765,
-  LDEORAW = 4766,
-  LDEORAX = 4767,
-  LDEORB = 4768,
-  LDEORH = 4769,
-  LDEORLB = 4770,
-  LDEORLH = 4771,
-  LDEORLW = 4772,
-  LDEORLX = 4773,
-  LDEORW = 4774,
-  LDEORX = 4775,
-  LDFADDAD = 4776,
-  LDFADDAH = 4777,
-  LDFADDALD = 4778,
-  LDFADDALH = 4779,
-  LDFADDALS = 4780,
-  LDFADDAS = 4781,
-  LDFADDD = 4782,
-  LDFADDH = 4783,
-  LDFADDLD = 4784,
-  LDFADDLH = 4785,
-  LDFADDLS = 4786,
-  LDFADDS = 4787,
-  LDFF1B = 4788,
-  LDFF1B_D = 4789,
-  LDFF1B_H = 4790,
-  LDFF1B_S = 4791,
-  LDFF1D = 4792,
-  LDFF1H = 4793,
-  LDFF1H_D = 4794,
-  LDFF1H_S = 4795,
-  LDFF1SB_D = 4796,
-  LDFF1SB_H = 4797,
-  LDFF1SB_S = 4798,
-  LDFF1SH_D = 4799,
-  LDFF1SH_S = 4800,
-  LDFF1SW_D = 4801,
-  LDFF1W = 4802,
-  LDFF1W_D = 4803,
-  LDFMAXAD = 4804,
-  LDFMAXAH = 4805,
-  LDFMAXALD = 4806,
-  LDFMAXALH = 4807,
-  LDFMAXALS = 4808,
-  LDFMAXAS = 4809,
-  LDFMAXD = 4810,
-  LDFMAXH = 4811,
-  LDFMAXLD = 4812,
-  LDFMAXLH = 4813,
-  LDFMAXLS = 4814,
-  LDFMAXNMAD = 4815,
-  LDFMAXNMAH = 4816,
-  LDFMAXNMALD = 4817,
-  LDFMAXNMALH = 4818,
-  LDFMAXNMALS = 4819,
-  LDFMAXNMAS = 4820,
-  LDFMAXNMD = 4821,
-  LDFMAXNMH = 4822,
-  LDFMAXNMLD = 4823,
-  LDFMAXNMLH = 4824,
-  LDFMAXNMLS = 4825,
-  LDFMAXNMS = 4826,
-  LDFMAXS = 4827,
-  LDFMINAD = 4828,
-  LDFMINAH = 4829,
-  LDFMINALD = 4830,
-  LDFMINALH = 4831,
-  LDFMINALS = 4832,
-  LDFMINAS = 4833,
-  LDFMIND = 4834,
-  LDFMINH = 4835,
-  LDFMINLD = 4836,
-  LDFMINLH = 4837,
-  LDFMINLS = 4838,
-  LDFMINNMAD = 4839,
-  LDFMINNMAH = 4840,
-  LDFMINNMALD = 4841,
-  LDFMINNMALH = 4842,
-  LDFMINNMALS = 4843,
-  LDFMINNMAS = 4844,
-  LDFMINNMD = 4845,
-  LDFMINNMH = 4846,
-  LDFMINNMLD = 4847,
-  LDFMINNMLH = 4848,
-  LDFMINNMLS = 4849,
-  LDFMINNMS = 4850,
-  LDFMINS = 4851,
-  LDG = 4852,
-  LDGM = 4853,
-  LDIAPPW = 4854,
-  LDIAPPWpost = 4855,
-  LDIAPPX = 4856,
-  LDIAPPXpost = 4857,
-  LDLARB = 4858,
-  LDLARH = 4859,
-  LDLARW = 4860,
-  LDLARX = 4861,
-  LDNF1B_D_IMM = 4862,
-  LDNF1B_H_IMM = 4863,
-  LDNF1B_IMM = 4864,
-  LDNF1B_S_IMM = 4865,
-  LDNF1D_IMM = 4866,
-  LDNF1H_D_IMM = 4867,
-  LDNF1H_IMM = 4868,
-  LDNF1H_S_IMM = 4869,
-  LDNF1SB_D_IMM = 4870,
-  LDNF1SB_H_IMM = 4871,
-  LDNF1SB_S_IMM = 4872,
-  LDNF1SH_D_IMM = 4873,
-  LDNF1SH_S_IMM = 4874,
-  LDNF1SW_D_IMM = 4875,
-  LDNF1W_D_IMM = 4876,
-  LDNF1W_IMM = 4877,
-  LDNPDi = 4878,
-  LDNPQi = 4879,
-  LDNPSi = 4880,
-  LDNPWi = 4881,
-  LDNPXi = 4882,
-  LDNT1B_2Z = 4883,
-  LDNT1B_2Z_IMM = 4884,
-  LDNT1B_2Z_STRIDED = 4885,
-  LDNT1B_2Z_STRIDED_IMM = 4886,
-  LDNT1B_4Z = 4887,
-  LDNT1B_4Z_IMM = 4888,
-  LDNT1B_4Z_STRIDED = 4889,
-  LDNT1B_4Z_STRIDED_IMM = 4890,
-  LDNT1B_ZRI = 4891,
-  LDNT1B_ZRR = 4892,
-  LDNT1B_ZZR_D = 4893,
-  LDNT1B_ZZR_S = 4894,
-  LDNT1D_2Z = 4895,
-  LDNT1D_2Z_IMM = 4896,
-  LDNT1D_2Z_STRIDED = 4897,
-  LDNT1D_2Z_STRIDED_IMM = 4898,
-  LDNT1D_4Z = 4899,
-  LDNT1D_4Z_IMM = 4900,
-  LDNT1D_4Z_STRIDED = 4901,
-  LDNT1D_4Z_STRIDED_IMM = 4902,
-  LDNT1D_ZRI = 4903,
-  LDNT1D_ZRR = 4904,
-  LDNT1D_ZZR_D = 4905,
-  LDNT1H_2Z = 4906,
-  LDNT1H_2Z_IMM = 4907,
-  LDNT1H_2Z_STRIDED = 4908,
-  LDNT1H_2Z_STRIDED_IMM = 4909,
-  LDNT1H_4Z = 4910,
-  LDNT1H_4Z_IMM = 4911,
-  LDNT1H_4Z_STRIDED = 4912,
-  LDNT1H_4Z_STRIDED_IMM = 4913,
-  LDNT1H_ZRI = 4914,
-  LDNT1H_ZRR = 4915,
-  LDNT1H_ZZR_D = 4916,
-  LDNT1H_ZZR_S = 4917,
-  LDNT1SB_ZZR_D = 4918,
-  LDNT1SB_ZZR_S = 4919,
-  LDNT1SH_ZZR_D = 4920,
-  LDNT1SH_ZZR_S = 4921,
-  LDNT1SW_ZZR_D = 4922,
-  LDNT1W_2Z = 4923,
-  LDNT1W_2Z_IMM = 4924,
-  LDNT1W_2Z_STRIDED = 4925,
-  LDNT1W_2Z_STRIDED_IMM = 4926,
-  LDNT1W_4Z = 4927,
-  LDNT1W_4Z_IMM = 4928,
-  LDNT1W_4Z_STRIDED = 4929,
-  LDNT1W_4Z_STRIDED_IMM = 4930,
-  LDNT1W_ZRI = 4931,
-  LDNT1W_ZRR = 4932,
-  LDNT1W_ZZR_D = 4933,
-  LDNT1W_ZZR_S = 4934,
-  LDPDi = 4935,
-  LDPDpost = 4936,
-  LDPDpre = 4937,
-  LDPQi = 4938,
-  LDPQpost = 4939,
-  LDPQpre = 4940,
-  LDPSWi = 4941,
-  LDPSWpost = 4942,
-  LDPSWpre = 4943,
-  LDPSi = 4944,
-  LDPSpost = 4945,
-  LDPSpre = 4946,
-  LDPWi = 4947,
-  LDPWpost = 4948,
-  LDPWpre = 4949,
-  LDPXi = 4950,
-  LDPXpost = 4951,
-  LDPXpre = 4952,
-  LDRAAindexed = 4953,
-  LDRAAwriteback = 4954,
-  LDRABindexed = 4955,
-  LDRABwriteback = 4956,
-  LDRBBpost = 4957,
-  LDRBBpre = 4958,
-  LDRBBroW = 4959,
-  LDRBBroX = 4960,
-  LDRBBui = 4961,
-  LDRBpost = 4962,
-  LDRBpre = 4963,
-  LDRBroW = 4964,
-  LDRBroX = 4965,
-  LDRBui = 4966,
-  LDRDl = 4967,
-  LDRDpost = 4968,
-  LDRDpre = 4969,
-  LDRDroW = 4970,
-  LDRDroX = 4971,
-  LDRDui = 4972,
-  LDRHHpost = 4973,
-  LDRHHpre = 4974,
-  LDRHHroW = 4975,
-  LDRHHroX = 4976,
-  LDRHHui = 4977,
-  LDRHpost = 4978,
-  LDRHpre = 4979,
-  LDRHroW = 4980,
-  LDRHroX = 4981,
-  LDRHui = 4982,
-  LDRQl = 4983,
-  LDRQpost = 4984,
-  LDRQpre = 4985,
-  LDRQroW = 4986,
-  LDRQroX = 4987,
-  LDRQui = 4988,
-  LDRSBWpost = 4989,
-  LDRSBWpre = 4990,
-  LDRSBWroW = 4991,
-  LDRSBWroX = 4992,
-  LDRSBWui = 4993,
-  LDRSBXpost = 4994,
-  LDRSBXpre = 4995,
-  LDRSBXroW = 4996,
-  LDRSBXroX = 4997,
-  LDRSBXui = 4998,
-  LDRSHWpost = 4999,
-  LDRSHWpre = 5000,
-  LDRSHWroW = 5001,
-  LDRSHWroX = 5002,
-  LDRSHWui = 5003,
-  LDRSHXpost = 5004,
-  LDRSHXpre = 5005,
-  LDRSHXroW = 5006,
-  LDRSHXroX = 5007,
-  LDRSHXui = 5008,
-  LDRSWl = 5009,
-  LDRSWpost = 5010,
-  LDRSWpre = 5011,
-  LDRSWroW = 5012,
-  LDRSWroX = 5013,
-  LDRSWui = 5014,
-  LDRSl = 5015,
-  LDRSpost = 5016,
-  LDRSpre = 5017,
-  LDRSroW = 5018,
-  LDRSroX = 5019,
-  LDRSui = 5020,
-  LDRWl = 5021,
-  LDRWpost = 5022,
-  LDRWpre = 5023,
-  LDRWroW = 5024,
-  LDRWroX = 5025,
-  LDRWui = 5026,
-  LDRXl = 5027,
-  LDRXpost = 5028,
-  LDRXpre = 5029,
-  LDRXroW = 5030,
-  LDRXroX = 5031,
-  LDRXui = 5032,
-  LDR_PXI = 5033,
-  LDR_TX = 5034,
-  LDR_ZA = 5035,
-  LDR_ZXI = 5036,
-  LDSETAB = 5037,
-  LDSETAH = 5038,
-  LDSETALB = 5039,
-  LDSETALH = 5040,
-  LDSETALW = 5041,
-  LDSETALX = 5042,
-  LDSETAW = 5043,
-  LDSETAX = 5044,
-  LDSETB = 5045,
-  LDSETH = 5046,
-  LDSETLB = 5047,
-  LDSETLH = 5048,
-  LDSETLW = 5049,
-  LDSETLX = 5050,
-  LDSETP = 5051,
-  LDSETPA = 5052,
-  LDSETPAL = 5053,
-  LDSETPL = 5054,
-  LDSETW = 5055,
-  LDSETX = 5056,
-  LDSMAXAB = 5057,
-  LDSMAXAH = 5058,
-  LDSMAXALB = 5059,
-  LDSMAXALH = 5060,
-  LDSMAXALW = 5061,
-  LDSMAXALX = 5062,
-  LDSMAXAW = 5063,
-  LDSMAXAX = 5064,
-  LDSMAXB = 5065,
-  LDSMAXH = 5066,
-  LDSMAXLB = 5067,
-  LDSMAXLH = 5068,
-  LDSMAXLW = 5069,
-  LDSMAXLX = 5070,
-  LDSMAXW = 5071,
-  LDSMAXX = 5072,
-  LDSMINAB = 5073,
-  LDSMINAH = 5074,
-  LDSMINALB = 5075,
-  LDSMINALH = 5076,
-  LDSMINALW = 5077,
-  LDSMINALX = 5078,
-  LDSMINAW = 5079,
-  LDSMINAX = 5080,
-  LDSMINB = 5081,
-  LDSMINH = 5082,
-  LDSMINLB = 5083,
-  LDSMINLH = 5084,
-  LDSMINLW = 5085,
-  LDSMINLX = 5086,
-  LDSMINW = 5087,
-  LDSMINX = 5088,
-  LDTADDALW = 5089,
-  LDTADDALX = 5090,
-  LDTADDAW = 5091,
-  LDTADDAX = 5092,
-  LDTADDLW = 5093,
-  LDTADDLX = 5094,
-  LDTADDW = 5095,
-  LDTADDX = 5096,
-  LDTCLRALW = 5097,
-  LDTCLRALX = 5098,
-  LDTCLRAW = 5099,
-  LDTCLRAX = 5100,
-  LDTCLRLW = 5101,
-  LDTCLRLX = 5102,
-  LDTCLRW = 5103,
-  LDTCLRX = 5104,
-  LDTNPQi = 5105,
-  LDTNPXi = 5106,
-  LDTPQi = 5107,
-  LDTPQpost = 5108,
-  LDTPQpre = 5109,
-  LDTPi = 5110,
-  LDTPpost = 5111,
-  LDTPpre = 5112,
-  LDTRBi = 5113,
-  LDTRHi = 5114,
-  LDTRSBWi = 5115,
-  LDTRSBXi = 5116,
-  LDTRSHWi = 5117,
-  LDTRSHXi = 5118,
-  LDTRSWi = 5119,
-  LDTRWi = 5120,
-  LDTRXi = 5121,
-  LDTSETALW = 5122,
-  LDTSETALX = 5123,
-  LDTSETAW = 5124,
-  LDTSETAX = 5125,
-  LDTSETLW = 5126,
-  LDTSETLX = 5127,
-  LDTSETW = 5128,
-  LDTSETX = 5129,
-  LDTXRWr = 5130,
-  LDTXRXr = 5131,
-  LDUMAXAB = 5132,
-  LDUMAXAH = 5133,
-  LDUMAXALB = 5134,
-  LDUMAXALH = 5135,
-  LDUMAXALW = 5136,
-  LDUMAXALX = 5137,
-  LDUMAXAW = 5138,
-  LDUMAXAX = 5139,
-  LDUMAXB = 5140,
-  LDUMAXH = 5141,
-  LDUMAXLB = 5142,
-  LDUMAXLH = 5143,
-  LDUMAXLW = 5144,
-  LDUMAXLX = 5145,
-  LDUMAXW = 5146,
-  LDUMAXX = 5147,
-  LDUMINAB = 5148,
-  LDUMINAH = 5149,
-  LDUMINALB = 5150,
-  LDUMINALH = 5151,
-  LDUMINALW = 5152,
-  LDUMINALX = 5153,
-  LDUMINAW = 5154,
-  LDUMINAX = 5155,
-  LDUMINB = 5156,
-  LDUMINH = 5157,
-  LDUMINLB = 5158,
-  LDUMINLH = 5159,
-  LDUMINLW = 5160,
-  LDUMINLX = 5161,
-  LDUMINW = 5162,
-  LDUMINX = 5163,
-  LDURBBi = 5164,
-  LDURBi = 5165,
-  LDURDi = 5166,
-  LDURHHi = 5167,
-  LDURHi = 5168,
-  LDURQi = 5169,
-  LDURSBWi = 5170,
-  LDURSBXi = 5171,
-  LDURSHWi = 5172,
-  LDURSHXi = 5173,
-  LDURSWi = 5174,
-  LDURSi = 5175,
-  LDURWi = 5176,
-  LDURXi = 5177,
-  LDXPW = 5178,
-  LDXPX = 5179,
-  LDXRB = 5180,
-  LDXRH = 5181,
-  LDXRW = 5182,
-  LDXRX = 5183,
-  LSLR_ZPmZ_B = 5184,
-  LSLR_ZPmZ_D = 5185,
-  LSLR_ZPmZ_H = 5186,
-  LSLR_ZPmZ_S = 5187,
-  LSLVWr = 5188,
-  LSLVXr = 5189,
-  LSL_WIDE_ZPmZ_B = 5190,
-  LSL_WIDE_ZPmZ_H = 5191,
-  LSL_WIDE_ZPmZ_S = 5192,
-  LSL_WIDE_ZZZ_B = 5193,
-  LSL_WIDE_ZZZ_H = 5194,
-  LSL_WIDE_ZZZ_S = 5195,
-  LSL_ZPmI_B = 5196,
-  LSL_ZPmI_D = 5197,
-  LSL_ZPmI_H = 5198,
-  LSL_ZPmI_S = 5199,
-  LSL_ZPmZ_B = 5200,
-  LSL_ZPmZ_D = 5201,
-  LSL_ZPmZ_H = 5202,
-  LSL_ZPmZ_S = 5203,
-  LSL_ZZI_B = 5204,
-  LSL_ZZI_D = 5205,
-  LSL_ZZI_H = 5206,
-  LSL_ZZI_S = 5207,
-  LSRR_ZPmZ_B = 5208,
-  LSRR_ZPmZ_D = 5209,
-  LSRR_ZPmZ_H = 5210,
-  LSRR_ZPmZ_S = 5211,
-  LSRVWr = 5212,
-  LSRVXr = 5213,
-  LSR_WIDE_ZPmZ_B = 5214,
-  LSR_WIDE_ZPmZ_H = 5215,
-  LSR_WIDE_ZPmZ_S = 5216,
-  LSR_WIDE_ZZZ_B = 5217,
-  LSR_WIDE_ZZZ_H = 5218,
-  LSR_WIDE_ZZZ_S = 5219,
-  LSR_ZPmI_B = 5220,
-  LSR_ZPmI_D = 5221,
-  LSR_ZPmI_H = 5222,
-  LSR_ZPmI_S = 5223,
-  LSR_ZPmZ_B = 5224,
-  LSR_ZPmZ_D = 5225,
-  LSR_ZPmZ_H = 5226,
-  LSR_ZPmZ_S = 5227,
-  LSR_ZZI_B = 5228,
-  LSR_ZZI_D = 5229,
-  LSR_ZZI_H = 5230,
-  LSR_ZZI_S = 5231,
-  LUT2_B = 5232,
-  LUT2_H = 5233,
-  LUT4_B = 5234,
-  LUT4_H = 5235,
-  LUTI2_2ZTZI_B = 5236,
-  LUTI2_2ZTZI_H = 5237,
-  LUTI2_2ZTZI_S = 5238,
-  LUTI2_4ZTZI_B = 5239,
-  LUTI2_4ZTZI_H = 5240,
-  LUTI2_4ZTZI_S = 5241,
-  LUTI2_S_2ZTZI_B = 5242,
-  LUTI2_S_2ZTZI_H = 5243,
-  LUTI2_S_4ZTZI_B = 5244,
-  LUTI2_S_4ZTZI_H = 5245,
-  LUTI2_ZTZI_B = 5246,
-  LUTI2_ZTZI_H = 5247,
-  LUTI2_ZTZI_S = 5248,
-  LUTI2_ZZZI_B = 5249,
-  LUTI2_ZZZI_H = 5250,
-  LUTI4_2ZTZI_B = 5251,
-  LUTI4_2ZTZI_H = 5252,
-  LUTI4_2ZTZI_S = 5253,
-  LUTI4_4ZTZI_H = 5254,
-  LUTI4_4ZTZI_S = 5255,
-  LUTI4_4ZZT2Z = 5256,
-  LUTI4_S_2ZTZI_B = 5257,
-  LUTI4_S_2ZTZI_H = 5258,
-  LUTI4_S_4ZTZI_H = 5259,
-  LUTI4_S_4ZZT2Z = 5260,
-  LUTI4_Z2ZZI = 5261,
-  LUTI4_ZTZI_B = 5262,
-  LUTI4_ZTZI_H = 5263,
-  LUTI4_ZTZI_S = 5264,
-  LUTI4_ZZZI_B = 5265,
-  LUTI4_ZZZI_H = 5266,
-  MADDPT = 5267,
-  MADDWrrr = 5268,
-  MADDXrrr = 5269,
-  MAD_CPA = 5270,
-  MAD_ZPmZZ_B = 5271,
-  MAD_ZPmZZ_D = 5272,
-  MAD_ZPmZZ_H = 5273,
-  MAD_ZPmZZ_S = 5274,
-  MATCH_PPzZZ_B = 5275,
-  MATCH_PPzZZ_H = 5276,
-  MLA_CPA = 5277,
-  MLA_ZPmZZ_B = 5278,
-  MLA_ZPmZZ_D = 5279,
-  MLA_ZPmZZ_H = 5280,
-  MLA_ZPmZZ_S = 5281,
-  MLA_ZZZI_D = 5282,
-  MLA_ZZZI_H = 5283,
-  MLA_ZZZI_S = 5284,
-  MLAv16i8 = 5285,
-  MLAv2i32 = 5286,
-  MLAv2i32_indexed = 5287,
-  MLAv4i16 = 5288,
-  MLAv4i16_indexed = 5289,
-  MLAv4i32 = 5290,
-  MLAv4i32_indexed = 5291,
-  MLAv8i16 = 5292,
-  MLAv8i16_indexed = 5293,
-  MLAv8i8 = 5294,
-  MLS_ZPmZZ_B = 5295,
-  MLS_ZPmZZ_D = 5296,
-  MLS_ZPmZZ_H = 5297,
-  MLS_ZPmZZ_S = 5298,
-  MLS_ZZZI_D = 5299,
-  MLS_ZZZI_H = 5300,
-  MLS_ZZZI_S = 5301,
-  MLSv16i8 = 5302,
-  MLSv2i32 = 5303,
-  MLSv2i32_indexed = 5304,
-  MLSv4i16 = 5305,
-  MLSv4i16_indexed = 5306,
-  MLSv4i32 = 5307,
-  MLSv4i32_indexed = 5308,
-  MLSv8i16 = 5309,
-  MLSv8i16_indexed = 5310,
-  MLSv8i8 = 5311,
-  MOPSSETGE = 5312,
-  MOPSSETGEN = 5313,
-  MOPSSETGET = 5314,
-  MOPSSETGETN = 5315,
-  MOVAZ_2ZMI_H_B = 5316,
-  MOVAZ_2ZMI_H_D = 5317,
-  MOVAZ_2ZMI_H_H = 5318,
-  MOVAZ_2ZMI_H_S = 5319,
-  MOVAZ_2ZMI_V_B = 5320,
-  MOVAZ_2ZMI_V_D = 5321,
-  MOVAZ_2ZMI_V_H = 5322,
-  MOVAZ_2ZMI_V_S = 5323,
-  MOVAZ_4ZMI_H_B = 5324,
-  MOVAZ_4ZMI_H_D = 5325,
-  MOVAZ_4ZMI_H_H = 5326,
-  MOVAZ_4ZMI_H_S = 5327,
-  MOVAZ_4ZMI_V_B = 5328,
-  MOVAZ_4ZMI_V_D = 5329,
-  MOVAZ_4ZMI_V_H = 5330,
-  MOVAZ_4ZMI_V_S = 5331,
-  MOVAZ_VG2_2ZMXI = 5332,
-  MOVAZ_VG4_4ZMXI = 5333,
-  MOVAZ_ZMI_H_B = 5334,
-  MOVAZ_ZMI_H_D = 5335,
-  MOVAZ_ZMI_H_H = 5336,
-  MOVAZ_ZMI_H_Q = 5337,
-  MOVAZ_ZMI_H_S = 5338,
-  MOVAZ_ZMI_V_B = 5339,
-  MOVAZ_ZMI_V_D = 5340,
-  MOVAZ_ZMI_V_H = 5341,
-  MOVAZ_ZMI_V_Q = 5342,
-  MOVAZ_ZMI_V_S = 5343,
-  MOVA_2ZMXI_H_B = 5344,
-  MOVA_2ZMXI_H_D = 5345,
-  MOVA_2ZMXI_H_H = 5346,
-  MOVA_2ZMXI_H_S = 5347,
-  MOVA_2ZMXI_V_B = 5348,
-  MOVA_2ZMXI_V_D = 5349,
-  MOVA_2ZMXI_V_H = 5350,
-  MOVA_2ZMXI_V_S = 5351,
-  MOVA_4ZMXI_H_B = 5352,
-  MOVA_4ZMXI_H_D = 5353,
-  MOVA_4ZMXI_H_H = 5354,
-  MOVA_4ZMXI_H_S = 5355,
-  MOVA_4ZMXI_V_B = 5356,
-  MOVA_4ZMXI_V_D = 5357,
-  MOVA_4ZMXI_V_H = 5358,
-  MOVA_4ZMXI_V_S = 5359,
-  MOVA_MXI2Z_H_B = 5360,
-  MOVA_MXI2Z_H_D = 5361,
-  MOVA_MXI2Z_H_H = 5362,
-  MOVA_MXI2Z_H_S = 5363,
-  MOVA_MXI2Z_V_B = 5364,
-  MOVA_MXI2Z_V_D = 5365,
-  MOVA_MXI2Z_V_H = 5366,
-  MOVA_MXI2Z_V_S = 5367,
-  MOVA_MXI4Z_H_B = 5368,
-  MOVA_MXI4Z_H_D = 5369,
-  MOVA_MXI4Z_H_H = 5370,
-  MOVA_MXI4Z_H_S = 5371,
-  MOVA_MXI4Z_V_B = 5372,
-  MOVA_MXI4Z_V_D = 5373,
-  MOVA_MXI4Z_V_H = 5374,
-  MOVA_MXI4Z_V_S = 5375,
-  MOVA_VG2_2ZMXI = 5376,
-  MOVA_VG2_MXI2Z = 5377,
-  MOVA_VG4_4ZMXI = 5378,
-  MOVA_VG4_MXI4Z = 5379,
-  MOVID = 5380,
-  MOVIv16b_ns = 5381,
-  MOVIv2d_ns = 5382,
-  MOVIv2i32 = 5383,
-  MOVIv2s_msl = 5384,
-  MOVIv4i16 = 5385,
-  MOVIv4i32 = 5386,
-  MOVIv4s_msl = 5387,
-  MOVIv8b_ns = 5388,
-  MOVIv8i16 = 5389,
-  MOVKWi = 5390,
-  MOVKXi = 5391,
-  MOVNWi = 5392,
-  MOVNXi = 5393,
-  MOVPRFX_ZPmZ_B = 5394,
-  MOVPRFX_ZPmZ_D = 5395,
-  MOVPRFX_ZPmZ_H = 5396,
-  MOVPRFX_ZPmZ_S = 5397,
-  MOVPRFX_ZPzZ_B = 5398,
-  MOVPRFX_ZPzZ_D = 5399,
-  MOVPRFX_ZPzZ_H = 5400,
-  MOVPRFX_ZPzZ_S = 5401,
-  MOVPRFX_ZZ = 5402,
-  MOVT_TIX = 5403,
-  MOVT_TIZ = 5404,
-  MOVT_XTI = 5405,
-  MOVZWi = 5406,
-  MOVZXi = 5407,
-  MRRS = 5408,
-  MRS = 5409,
-  MSB_ZPmZZ_B = 5410,
-  MSB_ZPmZZ_D = 5411,
-  MSB_ZPmZZ_H = 5412,
-  MSB_ZPmZZ_S = 5413,
-  MSR = 5414,
-  MSRR = 5415,
-  MSRpstateImm1 = 5416,
-  MSRpstateImm4 = 5417,
-  MSRpstatesvcrImm1 = 5418,
-  MSUBPT = 5419,
-  MSUBWrrr = 5420,
-  MSUBXrrr = 5421,
-  MUL_ZI_B = 5422,
-  MUL_ZI_D = 5423,
-  MUL_ZI_H = 5424,
-  MUL_ZI_S = 5425,
-  MUL_ZPmZ_B = 5426,
-  MUL_ZPmZ_D = 5427,
-  MUL_ZPmZ_H = 5428,
-  MUL_ZPmZ_S = 5429,
-  MUL_ZZZI_D = 5430,
-  MUL_ZZZI_H = 5431,
-  MUL_ZZZI_S = 5432,
-  MUL_ZZZ_B = 5433,
-  MUL_ZZZ_D = 5434,
-  MUL_ZZZ_H = 5435,
-  MUL_ZZZ_S = 5436,
-  MULv16i8 = 5437,
-  MULv2i32 = 5438,
-  MULv2i32_indexed = 5439,
-  MULv4i16 = 5440,
-  MULv4i16_indexed = 5441,
-  MULv4i32 = 5442,
-  MULv4i32_indexed = 5443,
-  MULv8i16 = 5444,
-  MULv8i16_indexed = 5445,
-  MULv8i8 = 5446,
-  MVNIv2i32 = 5447,
-  MVNIv2s_msl = 5448,
-  MVNIv4i16 = 5449,
-  MVNIv4i32 = 5450,
-  MVNIv4s_msl = 5451,
-  MVNIv8i16 = 5452,
-  NANDS_PPzPP = 5453,
-  NAND_PPzPP = 5454,
-  NBSL_ZZZZ = 5455,
-  NEG_ZPmZ_B = 5456,
-  NEG_ZPmZ_D = 5457,
-  NEG_ZPmZ_H = 5458,
-  NEG_ZPmZ_S = 5459,
-  NEG_ZPzZ_B = 5460,
-  NEG_ZPzZ_D = 5461,
-  NEG_ZPzZ_H = 5462,
-  NEG_ZPzZ_S = 5463,
-  NEGv16i8 = 5464,
-  NEGv1i64 = 5465,
-  NEGv2i32 = 5466,
-  NEGv2i64 = 5467,
-  NEGv4i16 = 5468,
-  NEGv4i32 = 5469,
-  NEGv8i16 = 5470,
-  NEGv8i8 = 5471,
-  NMATCH_PPzZZ_B = 5472,
-  NMATCH_PPzZZ_H = 5473,
-  NORS_PPzPP = 5474,
-  NOR_PPzPP = 5475,
-  NOT_ZPmZ_B = 5476,
-  NOT_ZPmZ_D = 5477,
-  NOT_ZPmZ_H = 5478,
-  NOT_ZPmZ_S = 5479,
-  NOT_ZPzZ_B = 5480,
-  NOT_ZPzZ_D = 5481,
-  NOT_ZPzZ_H = 5482,
-  NOT_ZPzZ_S = 5483,
-  NOTv16i8 = 5484,
-  NOTv8i8 = 5485,
-  ORNS_PPzPP = 5486,
-  ORNWrs = 5487,
-  ORNXrs = 5488,
-  ORN_PPzPP = 5489,
-  ORNv16i8 = 5490,
-  ORNv8i8 = 5491,
-  ORQV_VPZ_B = 5492,
-  ORQV_VPZ_D = 5493,
-  ORQV_VPZ_H = 5494,
-  ORQV_VPZ_S = 5495,
-  ORRS_PPzPP = 5496,
-  ORRWri = 5497,
-  ORRWrs = 5498,
-  ORRXri = 5499,
-  ORRXrs = 5500,
-  ORR_PPzPP = 5501,
-  ORR_ZI = 5502,
-  ORR_ZPmZ_B = 5503,
-  ORR_ZPmZ_D = 5504,
-  ORR_ZPmZ_H = 5505,
-  ORR_ZPmZ_S = 5506,
-  ORR_ZZZ = 5507,
-  ORRv16i8 = 5508,
-  ORRv2i32 = 5509,
-  ORRv4i16 = 5510,
-  ORRv4i32 = 5511,
-  ORRv8i16 = 5512,
-  ORRv8i8 = 5513,
-  ORV_VPZ_B = 5514,
-  ORV_VPZ_D = 5515,
-  ORV_VPZ_H = 5516,
-  ORV_VPZ_S = 5517,
-  PACDA = 5518,
-  PACDB = 5519,
-  PACDZA = 5520,
-  PACDZB = 5521,
-  PACGA = 5522,
-  PACIA = 5523,
-  PACIA1716 = 5524,
-  PACIA171615 = 5525,
-  PACIASP = 5526,
-  PACIASPPC = 5527,
-  PACIAZ = 5528,
-  PACIB = 5529,
-  PACIB1716 = 5530,
-  PACIB171615 = 5531,
-  PACIBSP = 5532,
-  PACIBSPPC = 5533,
-  PACIBZ = 5534,
-  PACIZA = 5535,
-  PACIZB = 5536,
-  PACM = 5537,
-  PACNBIASPPC = 5538,
-  PACNBIBSPPC = 5539,
-  PEXT_2PCI_B = 5540,
-  PEXT_2PCI_D = 5541,
-  PEXT_2PCI_H = 5542,
-  PEXT_2PCI_S = 5543,
-  PEXT_PCI_B = 5544,
-  PEXT_PCI_D = 5545,
-  PEXT_PCI_H = 5546,
-  PEXT_PCI_S = 5547,
-  PFALSE = 5548,
-  PFIRST_B = 5549,
-  PMLAL_2ZZZ_Q = 5550,
-  PMOV_PZI_B = 5551,
-  PMOV_PZI_D = 5552,
-  PMOV_PZI_H = 5553,
-  PMOV_PZI_S = 5554,
-  PMOV_ZIP_B = 5555,
-  PMOV_ZIP_D = 5556,
-  PMOV_ZIP_H = 5557,
-  PMOV_ZIP_S = 5558,
-  PMULLB_ZZZ_D = 5559,
-  PMULLB_ZZZ_H = 5560,
-  PMULLB_ZZZ_Q = 5561,
-  PMULLT_ZZZ_D = 5562,
-  PMULLT_ZZZ_H = 5563,
-  PMULLT_ZZZ_Q = 5564,
-  PMULL_2ZZZ_Q = 5565,
-  PMULLv16i8 = 5566,
-  PMULLv1i64 = 5567,
-  PMULLv2i64 = 5568,
-  PMULLv8i8 = 5569,
-  PMUL_ZZZ_B = 5570,
-  PMULv16i8 = 5571,
-  PMULv8i8 = 5572,
-  PNEXT_B = 5573,
-  PNEXT_D = 5574,
-  PNEXT_H = 5575,
-  PNEXT_S = 5576,
-  PRFB_D_PZI = 5577,
-  PRFB_D_SCALED = 5578,
-  PRFB_D_SXTW_SCALED = 5579,
-  PRFB_D_UXTW_SCALED = 5580,
-  PRFB_PRI = 5581,
-  PRFB_PRR = 5582,
-  PRFB_S_PZI = 5583,
-  PRFB_S_SXTW_SCALED = 5584,
-  PRFB_S_UXTW_SCALED = 5585,
-  PRFD_D_PZI = 5586,
-  PRFD_D_SCALED = 5587,
-  PRFD_D_SXTW_SCALED = 5588,
-  PRFD_D_UXTW_SCALED = 5589,
-  PRFD_PRI = 5590,
-  PRFD_PRR = 5591,
-  PRFD_S_PZI = 5592,
-  PRFD_S_SXTW_SCALED = 5593,
-  PRFD_S_UXTW_SCALED = 5594,
-  PRFH_D_PZI = 5595,
-  PRFH_D_SCALED = 5596,
-  PRFH_D_SXTW_SCALED = 5597,
-  PRFH_D_UXTW_SCALED = 5598,
-  PRFH_PRI = 5599,
-  PRFH_PRR = 5600,
-  PRFH_S_PZI = 5601,
-  PRFH_S_SXTW_SCALED = 5602,
-  PRFH_S_UXTW_SCALED = 5603,
-  PRFMl = 5604,
-  PRFMroW = 5605,
-  PRFMroX = 5606,
-  PRFMui = 5607,
-  PRFUMi = 5608,
-  PRFW_D_PZI = 5609,
-  PRFW_D_SCALED = 5610,
-  PRFW_D_SXTW_SCALED = 5611,
-  PRFW_D_UXTW_SCALED = 5612,
-  PRFW_PRI = 5613,
-  PRFW_PRR = 5614,
-  PRFW_S_PZI = 5615,
-  PRFW_S_SXTW_SCALED = 5616,
-  PRFW_S_UXTW_SCALED = 5617,
-  PSEL_PPPRI_B = 5618,
-  PSEL_PPPRI_D = 5619,
-  PSEL_PPPRI_H = 5620,
-  PSEL_PPPRI_S = 5621,
-  PTEST_PP = 5622,
-  PTRUES_B = 5623,
-  PTRUES_D = 5624,
-  PTRUES_H = 5625,
-  PTRUES_S = 5626,
-  PTRUE_B = 5627,
-  PTRUE_C_B = 5628,
-  PTRUE_C_D = 5629,
-  PTRUE_C_H = 5630,
-  PTRUE_C_S = 5631,
-  PTRUE_D = 5632,
-  PTRUE_H = 5633,
-  PTRUE_S = 5634,
-  PUNPKHI_PP = 5635,
-  PUNPKLO_PP = 5636,
-  RADDHNB_ZZZ_B = 5637,
-  RADDHNB_ZZZ_H = 5638,
-  RADDHNB_ZZZ_S = 5639,
-  RADDHNT_ZZZ_B = 5640,
-  RADDHNT_ZZZ_H = 5641,
-  RADDHNT_ZZZ_S = 5642,
-  RADDHNv2i64_v2i32 = 5643,
-  RADDHNv2i64_v4i32 = 5644,
-  RADDHNv4i32_v4i16 = 5645,
-  RADDHNv4i32_v8i16 = 5646,
-  RADDHNv8i16_v16i8 = 5647,
-  RADDHNv8i16_v8i8 = 5648,
-  RAX1 = 5649,
-  RAX1_ZZZ_D = 5650,
-  RBITWr = 5651,
-  RBITXr = 5652,
-  RBIT_ZPmZ_B = 5653,
-  RBIT_ZPmZ_D = 5654,
-  RBIT_ZPmZ_H = 5655,
-  RBIT_ZPmZ_S = 5656,
-  RBIT_ZPzZ_B = 5657,
-  RBIT_ZPzZ_D = 5658,
-  RBIT_ZPzZ_H = 5659,
-  RBIT_ZPzZ_S = 5660,
-  RBITv16i8 = 5661,
-  RBITv8i8 = 5662,
-  RCWCAS = 5663,
-  RCWCASA = 5664,
-  RCWCASAL = 5665,
-  RCWCASL = 5666,
-  RCWCASP = 5667,
-  RCWCASPA = 5668,
-  RCWCASPAL = 5669,
-  RCWCASPL = 5670,
-  RCWCLR = 5671,
-  RCWCLRA = 5672,
-  RCWCLRAL = 5673,
-  RCWCLRL = 5674,
-  RCWCLRP = 5675,
-  RCWCLRPA = 5676,
-  RCWCLRPAL = 5677,
-  RCWCLRPL = 5678,
-  RCWCLRS = 5679,
-  RCWCLRSA = 5680,
-  RCWCLRSAL = 5681,
-  RCWCLRSL = 5682,
-  RCWCLRSP = 5683,
-  RCWCLRSPA = 5684,
-  RCWCLRSPAL = 5685,
-  RCWCLRSPL = 5686,
-  RCWSCAS = 5687,
-  RCWSCASA = 5688,
-  RCWSCASAL = 5689,
-  RCWSCASL = 5690,
-  RCWSCASP = 5691,
-  RCWSCASPA = 5692,
-  RCWSCASPAL = 5693,
-  RCWSCASPL = 5694,
-  RCWSET = 5695,
-  RCWSETA = 5696,
-  RCWSETAL = 5697,
-  RCWSETL = 5698,
-  RCWSETP = 5699,
-  RCWSETPA = 5700,
-  RCWSETPAL = 5701,
-  RCWSETPL = 5702,
-  RCWSETS = 5703,
-  RCWSETSA = 5704,
-  RCWSETSAL = 5705,
-  RCWSETSL = 5706,
-  RCWSETSP = 5707,
-  RCWSETSPA = 5708,
-  RCWSETSPAL = 5709,
-  RCWSETSPL = 5710,
-  RCWSWP = 5711,
-  RCWSWPA = 5712,
-  RCWSWPAL = 5713,
-  RCWSWPL = 5714,
-  RCWSWPP = 5715,
-  RCWSWPPA = 5716,
-  RCWSWPPAL = 5717,
-  RCWSWPPL = 5718,
-  RCWSWPS = 5719,
-  RCWSWPSA = 5720,
-  RCWSWPSAL = 5721,
-  RCWSWPSL = 5722,
-  RCWSWPSP = 5723,
-  RCWSWPSPA = 5724,
-  RCWSWPSPAL = 5725,
-  RCWSWPSPL = 5726,
-  RDFFRS_PPz = 5727,
-  RDFFR_P = 5728,
-  RDFFR_PPz = 5729,
-  RDSVLI_XI = 5730,
-  RDVLI_XI = 5731,
-  RET = 5732,
-  RETAA = 5733,
-  RETAASPPCi = 5734,
-  RETAASPPCr = 5735,
-  RETAB = 5736,
-  RETABSPPCi = 5737,
-  RETABSPPCr = 5738,
-  REV16Wr = 5739,
-  REV16Xr = 5740,
-  REV16v16i8 = 5741,
-  REV16v8i8 = 5742,
-  REV32Xr = 5743,
-  REV32v16i8 = 5744,
-  REV32v4i16 = 5745,
-  REV32v8i16 = 5746,
-  REV32v8i8 = 5747,
-  REV64v16i8 = 5748,
-  REV64v2i32 = 5749,
-  REV64v4i16 = 5750,
-  REV64v4i32 = 5751,
-  REV64v8i16 = 5752,
-  REV64v8i8 = 5753,
-  REVB_ZPmZ_D = 5754,
-  REVB_ZPmZ_H = 5755,
-  REVB_ZPmZ_S = 5756,
-  REVB_ZPzZ_D = 5757,
-  REVB_ZPzZ_H = 5758,
-  REVB_ZPzZ_S = 5759,
-  REVD_ZPmZ = 5760,
-  REVD_ZPzZ = 5761,
-  REVH_ZPmZ_D = 5762,
-  REVH_ZPmZ_S = 5763,
-  REVH_ZPzZ_D = 5764,
-  REVH_ZPzZ_S = 5765,
-  REVW_ZPmZ_D = 5766,
-  REVW_ZPzZ_D = 5767,
-  REVWr = 5768,
-  REVXr = 5769,
-  REV_PP_B = 5770,
-  REV_PP_D = 5771,
-  REV_PP_H = 5772,
-  REV_PP_S = 5773,
-  REV_ZZ_B = 5774,
-  REV_ZZ_D = 5775,
-  REV_ZZ_H = 5776,
-  REV_ZZ_S = 5777,
-  RMIF = 5778,
-  RORVWr = 5779,
-  RORVXr = 5780,
-  RPRFM = 5781,
-  RSHRNB_ZZI_B = 5782,
-  RSHRNB_ZZI_H = 5783,
-  RSHRNB_ZZI_S = 5784,
-  RSHRNT_ZZI_B = 5785,
-  RSHRNT_ZZI_H = 5786,
-  RSHRNT_ZZI_S = 5787,
-  RSHRNv16i8_shift = 5788,
-  RSHRNv2i32_shift = 5789,
-  RSHRNv4i16_shift = 5790,
-  RSHRNv4i32_shift = 5791,
-  RSHRNv8i16_shift = 5792,
-  RSHRNv8i8_shift = 5793,
-  RSUBHNB_ZZZ_B = 5794,
-  RSUBHNB_ZZZ_H = 5795,
-  RSUBHNB_ZZZ_S = 5796,
-  RSUBHNT_ZZZ_B = 5797,
-  RSUBHNT_ZZZ_H = 5798,
-  RSUBHNT_ZZZ_S = 5799,
-  RSUBHNv2i64_v2i32 = 5800,
-  RSUBHNv2i64_v4i32 = 5801,
-  RSUBHNv4i32_v4i16 = 5802,
-  RSUBHNv4i32_v8i16 = 5803,
-  RSUBHNv8i16_v16i8 = 5804,
-  RSUBHNv8i16_v8i8 = 5805,
-  SABALB_ZZZ_D = 5806,
-  SABALB_ZZZ_H = 5807,
-  SABALB_ZZZ_S = 5808,
-  SABALT_ZZZ_D = 5809,
-  SABALT_ZZZ_H = 5810,
-  SABALT_ZZZ_S = 5811,
-  SABALv16i8_v8i16 = 5812,
-  SABALv2i32_v2i64 = 5813,
-  SABALv4i16_v4i32 = 5814,
-  SABALv4i32_v2i64 = 5815,
-  SABALv8i16_v4i32 = 5816,
-  SABALv8i8_v8i16 = 5817,
-  SABA_ZZZ_B = 5818,
-  SABA_ZZZ_D = 5819,
-  SABA_ZZZ_H = 5820,
-  SABA_ZZZ_S = 5821,
-  SABAv16i8 = 5822,
-  SABAv2i32 = 5823,
-  SABAv4i16 = 5824,
-  SABAv4i32 = 5825,
-  SABAv8i16 = 5826,
-  SABAv8i8 = 5827,
-  SABDLB_ZZZ_D = 5828,
-  SABDLB_ZZZ_H = 5829,
-  SABDLB_ZZZ_S = 5830,
-  SABDLT_ZZZ_D = 5831,
-  SABDLT_ZZZ_H = 5832,
-  SABDLT_ZZZ_S = 5833,
-  SABDLv16i8_v8i16 = 5834,
-  SABDLv2i32_v2i64 = 5835,
-  SABDLv4i16_v4i32 = 5836,
-  SABDLv4i32_v2i64 = 5837,
-  SABDLv8i16_v4i32 = 5838,
-  SABDLv8i8_v8i16 = 5839,
-  SABD_ZPmZ_B = 5840,
-  SABD_ZPmZ_D = 5841,
-  SABD_ZPmZ_H = 5842,
-  SABD_ZPmZ_S = 5843,
-  SABDv16i8 = 5844,
-  SABDv2i32 = 5845,
-  SABDv4i16 = 5846,
-  SABDv4i32 = 5847,
-  SABDv8i16 = 5848,
-  SABDv8i8 = 5849,
-  SADALP_ZPmZ_D = 5850,
-  SADALP_ZPmZ_H = 5851,
-  SADALP_ZPmZ_S = 5852,
-  SADALPv16i8_v8i16 = 5853,
-  SADALPv2i32_v1i64 = 5854,
-  SADALPv4i16_v2i32 = 5855,
-  SADALPv4i32_v2i64 = 5856,
-  SADALPv8i16_v4i32 = 5857,
-  SADALPv8i8_v4i16 = 5858,
-  SADDLBT_ZZZ_D = 5859,
-  SADDLBT_ZZZ_H = 5860,
-  SADDLBT_ZZZ_S = 5861,
-  SADDLB_ZZZ_D = 5862,
-  SADDLB_ZZZ_H = 5863,
-  SADDLB_ZZZ_S = 5864,
-  SADDLPv16i8_v8i16 = 5865,
-  SADDLPv2i32_v1i64 = 5866,
-  SADDLPv4i16_v2i32 = 5867,
-  SADDLPv4i32_v2i64 = 5868,
-  SADDLPv8i16_v4i32 = 5869,
-  SADDLPv8i8_v4i16 = 5870,
-  SADDLT_ZZZ_D = 5871,
-  SADDLT_ZZZ_H = 5872,
-  SADDLT_ZZZ_S = 5873,
-  SADDLVv16i8v = 5874,
-  SADDLVv4i16v = 5875,
-  SADDLVv4i32v = 5876,
-  SADDLVv8i16v = 5877,
-  SADDLVv8i8v = 5878,
-  SADDLv16i8_v8i16 = 5879,
-  SADDLv2i32_v2i64 = 5880,
-  SADDLv4i16_v4i32 = 5881,
-  SADDLv4i32_v2i64 = 5882,
-  SADDLv8i16_v4i32 = 5883,
-  SADDLv8i8_v8i16 = 5884,
-  SADDV_VPZ_B = 5885,
-  SADDV_VPZ_H = 5886,
-  SADDV_VPZ_S = 5887,
-  SADDWB_ZZZ_D = 5888,
-  SADDWB_ZZZ_H = 5889,
-  SADDWB_ZZZ_S = 5890,
-  SADDWT_ZZZ_D = 5891,
-  SADDWT_ZZZ_H = 5892,
-  SADDWT_ZZZ_S = 5893,
-  SADDWv16i8_v8i16 = 5894,
-  SADDWv2i32_v2i64 = 5895,
-  SADDWv4i16_v4i32 = 5896,
-  SADDWv4i32_v2i64 = 5897,
-  SADDWv8i16_v4i32 = 5898,
-  SADDWv8i8_v8i16 = 5899,
-  SB = 5900,
-  SBCLB_ZZZ_D = 5901,
-  SBCLB_ZZZ_S = 5902,
-  SBCLT_ZZZ_D = 5903,
-  SBCLT_ZZZ_S = 5904,
-  SBCSWr = 5905,
-  SBCSXr = 5906,
-  SBCWr = 5907,
-  SBCXr = 5908,
-  SBFMWri = 5909,
-  SBFMXri = 5910,
-  SCLAMP_VG2_2Z2Z_B = 5911,
-  SCLAMP_VG2_2Z2Z_D = 5912,
-  SCLAMP_VG2_2Z2Z_H = 5913,
-  SCLAMP_VG2_2Z2Z_S = 5914,
-  SCLAMP_VG4_4Z4Z_B = 5915,
-  SCLAMP_VG4_4Z4Z_D = 5916,
-  SCLAMP_VG4_4Z4Z_H = 5917,
-  SCLAMP_VG4_4Z4Z_S = 5918,
-  SCLAMP_ZZZ_B = 5919,
-  SCLAMP_ZZZ_D = 5920,
-  SCLAMP_ZZZ_H = 5921,
-  SCLAMP_ZZZ_S = 5922,
-  SCVTFDSr = 5923,
-  SCVTFHDr = 5924,
-  SCVTFHSr = 5925,
-  SCVTFSDr = 5926,
-  SCVTFSWDri = 5927,
-  SCVTFSWHri = 5928,
-  SCVTFSWSri = 5929,
-  SCVTFSXDri = 5930,
-  SCVTFSXHri = 5931,
-  SCVTFSXSri = 5932,
-  SCVTFUWDri = 5933,
-  SCVTFUWHri = 5934,
-  SCVTFUWSri = 5935,
-  SCVTFUXDri = 5936,
-  SCVTFUXHri = 5937,
-  SCVTFUXSri = 5938,
-  SCVTF_2Z2Z_StoS = 5939,
-  SCVTF_4Z4Z_StoS = 5940,
-  SCVTF_ZPmZ_DtoD = 5941,
-  SCVTF_ZPmZ_DtoH = 5942,
-  SCVTF_ZPmZ_DtoS = 5943,
-  SCVTF_ZPmZ_HtoH = 5944,
-  SCVTF_ZPmZ_StoD = 5945,
-  SCVTF_ZPmZ_StoH = 5946,
-  SCVTF_ZPmZ_StoS = 5947,
-  SCVTF_ZPzZ_DtoD = 5948,
-  SCVTF_ZPzZ_DtoH = 5949,
-  SCVTF_ZPzZ_DtoS = 5950,
-  SCVTF_ZPzZ_HtoH = 5951,
-  SCVTF_ZPzZ_StoD = 5952,
-  SCVTF_ZPzZ_StoH = 5953,
-  SCVTF_ZPzZ_StoS = 5954,
-  SCVTFd = 5955,
-  SCVTFh = 5956,
-  SCVTFs = 5957,
-  SCVTFv1i16 = 5958,
-  SCVTFv1i32 = 5959,
-  SCVTFv1i64 = 5960,
-  SCVTFv2f32 = 5961,
-  SCVTFv2f64 = 5962,
-  SCVTFv2i32_shift = 5963,
-  SCVTFv2i64_shift = 5964,
-  SCVTFv4f16 = 5965,
-  SCVTFv4f32 = 5966,
-  SCVTFv4i16_shift = 5967,
-  SCVTFv4i32_shift = 5968,
-  SCVTFv8f16 = 5969,
-  SCVTFv8i16_shift = 5970,
-  SDIVR_ZPmZ_D = 5971,
-  SDIVR_ZPmZ_S = 5972,
-  SDIVWr = 5973,
-  SDIVXr = 5974,
-  SDIV_ZPmZ_D = 5975,
-  SDIV_ZPmZ_S = 5976,
-  SDOT_VG2_M2Z2Z_BtoS = 5977,
-  SDOT_VG2_M2Z2Z_HtoD = 5978,
-  SDOT_VG2_M2Z2Z_HtoS = 5979,
-  SDOT_VG2_M2ZZI_BToS = 5980,
-  SDOT_VG2_M2ZZI_HToS = 5981,
-  SDOT_VG2_M2ZZI_HtoD = 5982,
-  SDOT_VG2_M2ZZ_BtoS = 5983,
-  SDOT_VG2_M2ZZ_HtoD = 5984,
-  SDOT_VG2_M2ZZ_HtoS = 5985,
-  SDOT_VG4_M4Z4Z_BtoS = 5986,
-  SDOT_VG4_M4Z4Z_HtoD = 5987,
-  SDOT_VG4_M4Z4Z_HtoS = 5988,
-  SDOT_VG4_M4ZZI_BToS = 5989,
-  SDOT_VG4_M4ZZI_HToS = 5990,
-  SDOT_VG4_M4ZZI_HtoD = 5991,
-  SDOT_VG4_M4ZZ_BtoS = 5992,
-  SDOT_VG4_M4ZZ_HtoD = 5993,
-  SDOT_VG4_M4ZZ_HtoS = 5994,
-  SDOT_ZZZI_D = 5995,
-  SDOT_ZZZI_HtoS = 5996,
-  SDOT_ZZZI_S = 5997,
-  SDOT_ZZZ_D = 5998,
-  SDOT_ZZZ_HtoS = 5999,
-  SDOT_ZZZ_S = 6000,
-  SDOTlanev16i8 = 6001,
-  SDOTlanev8i8 = 6002,
-  SDOTv16i8 = 6003,
-  SDOTv8i8 = 6004,
-  SEL_PPPP = 6005,
-  SEL_VG2_2ZC2Z2Z_B = 6006,
-  SEL_VG2_2ZC2Z2Z_D = 6007,
-  SEL_VG2_2ZC2Z2Z_H = 6008,
-  SEL_VG2_2ZC2Z2Z_S = 6009,
-  SEL_VG4_4ZC4Z4Z_B = 6010,
-  SEL_VG4_4ZC4Z4Z_D = 6011,
-  SEL_VG4_4ZC4Z4Z_H = 6012,
-  SEL_VG4_4ZC4Z4Z_S = 6013,
-  SEL_ZPZZ_B = 6014,
-  SEL_ZPZZ_D = 6015,
-  SEL_ZPZZ_H = 6016,
-  SEL_ZPZZ_S = 6017,
-  SETE = 6018,
-  SETEN = 6019,
-  SETET = 6020,
-  SETETN = 6021,
-  SETF16 = 6022,
-  SETF8 = 6023,
-  SETFFR = 6024,
-  SETGM = 6025,
-  SETGMN = 6026,
-  SETGMT = 6027,
-  SETGMTN = 6028,
-  SETGP = 6029,
-  SETGPN = 6030,
-  SETGPT = 6031,
-  SETGPTN = 6032,
-  SETM = 6033,
-  SETMN = 6034,
-  SETMT = 6035,
-  SETMTN = 6036,
-  SETP = 6037,
-  SETPN = 6038,
-  SETPT = 6039,
-  SETPTN = 6040,
-  SHA1Crrr = 6041,
-  SHA1Hrr = 6042,
-  SHA1Mrrr = 6043,
-  SHA1Prrr = 6044,
-  SHA1SU0rrr = 6045,
-  SHA1SU1rr = 6046,
-  SHA256H2rrr = 6047,
-  SHA256Hrrr = 6048,
-  SHA256SU0rr = 6049,
-  SHA256SU1rrr = 6050,
-  SHA512H = 6051,
-  SHA512H2 = 6052,
-  SHA512SU0 = 6053,
-  SHA512SU1 = 6054,
-  SHADD_ZPmZ_B = 6055,
-  SHADD_ZPmZ_D = 6056,
-  SHADD_ZPmZ_H = 6057,
-  SHADD_ZPmZ_S = 6058,
-  SHADDv16i8 = 6059,
-  SHADDv2i32 = 6060,
-  SHADDv4i16 = 6061,
-  SHADDv4i32 = 6062,
-  SHADDv8i16 = 6063,
-  SHADDv8i8 = 6064,
-  SHLLv16i8 = 6065,
-  SHLLv2i32 = 6066,
-  SHLLv4i16 = 6067,
-  SHLLv4i32 = 6068,
-  SHLLv8i16 = 6069,
-  SHLLv8i8 = 6070,
-  SHLd = 6071,
-  SHLv16i8_shift = 6072,
-  SHLv2i32_shift = 6073,
-  SHLv2i64_shift = 6074,
-  SHLv4i16_shift = 6075,
-  SHLv4i32_shift = 6076,
-  SHLv8i16_shift = 6077,
-  SHLv8i8_shift = 6078,
-  SHRNB_ZZI_B = 6079,
-  SHRNB_ZZI_H = 6080,
-  SHRNB_ZZI_S = 6081,
-  SHRNT_ZZI_B = 6082,
-  SHRNT_ZZI_H = 6083,
-  SHRNT_ZZI_S = 6084,
-  SHRNv16i8_shift = 6085,
-  SHRNv2i32_shift = 6086,
-  SHRNv4i16_shift = 6087,
-  SHRNv4i32_shift = 6088,
-  SHRNv8i16_shift = 6089,
-  SHRNv8i8_shift = 6090,
-  SHSUBR_ZPmZ_B = 6091,
-  SHSUBR_ZPmZ_D = 6092,
-  SHSUBR_ZPmZ_H = 6093,
-  SHSUBR_ZPmZ_S = 6094,
-  SHSUB_ZPmZ_B = 6095,
-  SHSUB_ZPmZ_D = 6096,
-  SHSUB_ZPmZ_H = 6097,
-  SHSUB_ZPmZ_S = 6098,
-  SHSUBv16i8 = 6099,
-  SHSUBv2i32 = 6100,
-  SHSUBv4i16 = 6101,
-  SHSUBv4i32 = 6102,
-  SHSUBv8i16 = 6103,
-  SHSUBv8i8 = 6104,
-  SLI_ZZI_B = 6105,
-  SLI_ZZI_D = 6106,
-  SLI_ZZI_H = 6107,
-  SLI_ZZI_S = 6108,
-  SLId = 6109,
-  SLIv16i8_shift = 6110,
-  SLIv2i32_shift = 6111,
-  SLIv2i64_shift = 6112,
-  SLIv4i16_shift = 6113,
-  SLIv4i32_shift = 6114,
-  SLIv8i16_shift = 6115,
-  SLIv8i8_shift = 6116,
-  SM3PARTW1 = 6117,
-  SM3PARTW2 = 6118,
-  SM3SS1 = 6119,
-  SM3TT1A = 6120,
-  SM3TT1B = 6121,
-  SM3TT2A = 6122,
-  SM3TT2B = 6123,
-  SM4E = 6124,
-  SM4EKEY_ZZZ_S = 6125,
-  SM4ENCKEY = 6126,
-  SM4E_ZZZ_S = 6127,
-  SMADDLrrr = 6128,
-  SMAXP_ZPmZ_B = 6129,
-  SMAXP_ZPmZ_D = 6130,
-  SMAXP_ZPmZ_H = 6131,
-  SMAXP_ZPmZ_S = 6132,
-  SMAXPv16i8 = 6133,
-  SMAXPv2i32 = 6134,
-  SMAXPv4i16 = 6135,
-  SMAXPv4i32 = 6136,
-  SMAXPv8i16 = 6137,
-  SMAXPv8i8 = 6138,
-  SMAXQV_VPZ_B = 6139,
-  SMAXQV_VPZ_D = 6140,
-  SMAXQV_VPZ_H = 6141,
-  SMAXQV_VPZ_S = 6142,
-  SMAXV_VPZ_B = 6143,
-  SMAXV_VPZ_D = 6144,
-  SMAXV_VPZ_H = 6145,
-  SMAXV_VPZ_S = 6146,
-  SMAXVv16i8v = 6147,
-  SMAXVv4i16v = 6148,
-  SMAXVv4i32v = 6149,
-  SMAXVv8i16v = 6150,
-  SMAXVv8i8v = 6151,
-  SMAXWri = 6152,
-  SMAXWrr = 6153,
-  SMAXXri = 6154,
-  SMAXXrr = 6155,
-  SMAX_VG2_2Z2Z_B = 6156,
-  SMAX_VG2_2Z2Z_D = 6157,
-  SMAX_VG2_2Z2Z_H = 6158,
-  SMAX_VG2_2Z2Z_S = 6159,
-  SMAX_VG2_2ZZ_B = 6160,
-  SMAX_VG2_2ZZ_D = 6161,
-  SMAX_VG2_2ZZ_H = 6162,
-  SMAX_VG2_2ZZ_S = 6163,
-  SMAX_VG4_4Z4Z_B = 6164,
-  SMAX_VG4_4Z4Z_D = 6165,
-  SMAX_VG4_4Z4Z_H = 6166,
-  SMAX_VG4_4Z4Z_S = 6167,
-  SMAX_VG4_4ZZ_B = 6168,
-  SMAX_VG4_4ZZ_D = 6169,
-  SMAX_VG4_4ZZ_H = 6170,
-  SMAX_VG4_4ZZ_S = 6171,
-  SMAX_ZI_B = 6172,
-  SMAX_ZI_D = 6173,
-  SMAX_ZI_H = 6174,
-  SMAX_ZI_S = 6175,
-  SMAX_ZPmZ_B = 6176,
-  SMAX_ZPmZ_D = 6177,
-  SMAX_ZPmZ_H = 6178,
-  SMAX_ZPmZ_S = 6179,
-  SMAXv16i8 = 6180,
-  SMAXv2i32 = 6181,
-  SMAXv4i16 = 6182,
-  SMAXv4i32 = 6183,
-  SMAXv8i16 = 6184,
-  SMAXv8i8 = 6185,
-  SMC = 6186,
-  SMINP_ZPmZ_B = 6187,
-  SMINP_ZPmZ_D = 6188,
-  SMINP_ZPmZ_H = 6189,
-  SMINP_ZPmZ_S = 6190,
-  SMINPv16i8 = 6191,
-  SMINPv2i32 = 6192,
-  SMINPv4i16 = 6193,
-  SMINPv4i32 = 6194,
-  SMINPv8i16 = 6195,
-  SMINPv8i8 = 6196,
-  SMINQV_VPZ_B = 6197,
-  SMINQV_VPZ_D = 6198,
-  SMINQV_VPZ_H = 6199,
-  SMINQV_VPZ_S = 6200,
-  SMINV_VPZ_B = 6201,
-  SMINV_VPZ_D = 6202,
-  SMINV_VPZ_H = 6203,
-  SMINV_VPZ_S = 6204,
-  SMINVv16i8v = 6205,
-  SMINVv4i16v = 6206,
-  SMINVv4i32v = 6207,
-  SMINVv8i16v = 6208,
-  SMINVv8i8v = 6209,
-  SMINWri = 6210,
-  SMINWrr = 6211,
-  SMINXri = 6212,
-  SMINXrr = 6213,
-  SMIN_VG2_2Z2Z_B = 6214,
-  SMIN_VG2_2Z2Z_D = 6215,
-  SMIN_VG2_2Z2Z_H = 6216,
-  SMIN_VG2_2Z2Z_S = 6217,
-  SMIN_VG2_2ZZ_B = 6218,
-  SMIN_VG2_2ZZ_D = 6219,
-  SMIN_VG2_2ZZ_H = 6220,
-  SMIN_VG2_2ZZ_S = 6221,
-  SMIN_VG4_4Z4Z_B = 6222,
-  SMIN_VG4_4Z4Z_D = 6223,
-  SMIN_VG4_4Z4Z_H = 6224,
-  SMIN_VG4_4Z4Z_S = 6225,
-  SMIN_VG4_4ZZ_B = 6226,
-  SMIN_VG4_4ZZ_D = 6227,
-  SMIN_VG4_4ZZ_H = 6228,
-  SMIN_VG4_4ZZ_S = 6229,
-  SMIN_ZI_B = 6230,
-  SMIN_ZI_D = 6231,
-  SMIN_ZI_H = 6232,
-  SMIN_ZI_S = 6233,
-  SMIN_ZPmZ_B = 6234,
-  SMIN_ZPmZ_D = 6235,
-  SMIN_ZPmZ_H = 6236,
-  SMIN_ZPmZ_S = 6237,
-  SMINv16i8 = 6238,
-  SMINv2i32 = 6239,
-  SMINv4i16 = 6240,
-  SMINv4i32 = 6241,
-  SMINv8i16 = 6242,
-  SMINv8i8 = 6243,
-  SMLALB_ZZZI_D = 6244,
-  SMLALB_ZZZI_S = 6245,
-  SMLALB_ZZZ_D = 6246,
-  SMLALB_ZZZ_H = 6247,
-  SMLALB_ZZZ_S = 6248,
-  SMLALL_MZZI_BtoS = 6249,
-  SMLALL_MZZI_HtoD = 6250,
-  SMLALL_MZZ_BtoS = 6251,
-  SMLALL_MZZ_HtoD = 6252,
-  SMLALL_VG2_M2Z2Z_BtoS = 6253,
-  SMLALL_VG2_M2Z2Z_HtoD = 6254,
-  SMLALL_VG2_M2ZZI_BtoS = 6255,
-  SMLALL_VG2_M2ZZI_HtoD = 6256,
-  SMLALL_VG2_M2ZZ_BtoS = 6257,
-  SMLALL_VG2_M2ZZ_HtoD = 6258,
-  SMLALL_VG4_M4Z4Z_BtoS = 6259,
-  SMLALL_VG4_M4Z4Z_HtoD = 6260,
-  SMLALL_VG4_M4ZZI_BtoS = 6261,
-  SMLALL_VG4_M4ZZI_HtoD = 6262,
-  SMLALL_VG4_M4ZZ_BtoS = 6263,
-  SMLALL_VG4_M4ZZ_HtoD = 6264,
-  SMLALT_ZZZI_D = 6265,
-  SMLALT_ZZZI_S = 6266,
-  SMLALT_ZZZ_D = 6267,
-  SMLALT_ZZZ_H = 6268,
-  SMLALT_ZZZ_S = 6269,
-  SMLAL_MZZI_HtoS = 6270,
-  SMLAL_MZZ_HtoS = 6271,
-  SMLAL_VG2_M2Z2Z_HtoS = 6272,
-  SMLAL_VG2_M2ZZI_S = 6273,
-  SMLAL_VG2_M2ZZ_HtoS = 6274,
-  SMLAL_VG4_M4Z4Z_HtoS = 6275,
-  SMLAL_VG4_M4ZZI_HtoS = 6276,
-  SMLAL_VG4_M4ZZ_HtoS = 6277,
-  SMLALv16i8_v8i16 = 6278,
-  SMLALv2i32_indexed = 6279,
-  SMLALv2i32_v2i64 = 6280,
-  SMLALv4i16_indexed = 6281,
-  SMLALv4i16_v4i32 = 6282,
-  SMLALv4i32_indexed = 6283,
-  SMLALv4i32_v2i64 = 6284,
-  SMLALv8i16_indexed = 6285,
-  SMLALv8i16_v4i32 = 6286,
-  SMLALv8i8_v8i16 = 6287,
-  SMLSLB_ZZZI_D = 6288,
-  SMLSLB_ZZZI_S = 6289,
-  SMLSLB_ZZZ_D = 6290,
-  SMLSLB_ZZZ_H = 6291,
-  SMLSLB_ZZZ_S = 6292,
-  SMLSLL_MZZI_BtoS = 6293,
-  SMLSLL_MZZI_HtoD = 6294,
-  SMLSLL_MZZ_BtoS = 6295,
-  SMLSLL_MZZ_HtoD = 6296,
-  SMLSLL_VG2_M2Z2Z_BtoS = 6297,
-  SMLSLL_VG2_M2Z2Z_HtoD = 6298,
-  SMLSLL_VG2_M2ZZI_BtoS = 6299,
-  SMLSLL_VG2_M2ZZI_HtoD = 6300,
-  SMLSLL_VG2_M2ZZ_BtoS = 6301,
-  SMLSLL_VG2_M2ZZ_HtoD = 6302,
-  SMLSLL_VG4_M4Z4Z_BtoS = 6303,
-  SMLSLL_VG4_M4Z4Z_HtoD = 6304,
-  SMLSLL_VG4_M4ZZI_BtoS = 6305,
-  SMLSLL_VG4_M4ZZI_HtoD = 6306,
-  SMLSLL_VG4_M4ZZ_BtoS = 6307,
-  SMLSLL_VG4_M4ZZ_HtoD = 6308,
-  SMLSLT_ZZZI_D = 6309,
-  SMLSLT_ZZZI_S = 6310,
-  SMLSLT_ZZZ_D = 6311,
-  SMLSLT_ZZZ_H = 6312,
-  SMLSLT_ZZZ_S = 6313,
-  SMLSL_MZZI_HtoS = 6314,
-  SMLSL_MZZ_HtoS = 6315,
-  SMLSL_VG2_M2Z2Z_HtoS = 6316,
-  SMLSL_VG2_M2ZZI_S = 6317,
-  SMLSL_VG2_M2ZZ_HtoS = 6318,
-  SMLSL_VG4_M4Z4Z_HtoS = 6319,
-  SMLSL_VG4_M4ZZI_HtoS = 6320,
-  SMLSL_VG4_M4ZZ_HtoS = 6321,
-  SMLSLv16i8_v8i16 = 6322,
-  SMLSLv2i32_indexed = 6323,
-  SMLSLv2i32_v2i64 = 6324,
-  SMLSLv4i16_indexed = 6325,
-  SMLSLv4i16_v4i32 = 6326,
-  SMLSLv4i32_indexed = 6327,
-  SMLSLv4i32_v2i64 = 6328,
-  SMLSLv8i16_indexed = 6329,
-  SMLSLv8i16_v4i32 = 6330,
-  SMLSLv8i8_v8i16 = 6331,
-  SMMLA = 6332,
-  SMMLA_ZZZ = 6333,
-  SMOP4A_M2Z2Z_BToS = 6334,
-  SMOP4A_M2Z2Z_HToS = 6335,
-  SMOP4A_M2Z2Z_HtoD = 6336,
-  SMOP4A_M2ZZ_BToS = 6337,
-  SMOP4A_M2ZZ_HToS = 6338,
-  SMOP4A_M2ZZ_HtoD = 6339,
-  SMOP4A_MZ2Z_BToS = 6340,
-  SMOP4A_MZ2Z_HToS = 6341,
-  SMOP4A_MZ2Z_HtoD = 6342,
-  SMOP4A_MZZ_BToS = 6343,
-  SMOP4A_MZZ_HToS = 6344,
-  SMOP4A_MZZ_HtoD = 6345,
-  SMOP4S_M2Z2Z_BToS = 6346,
-  SMOP4S_M2Z2Z_HToS = 6347,
-  SMOP4S_M2Z2Z_HtoD = 6348,
-  SMOP4S_M2ZZ_BToS = 6349,
-  SMOP4S_M2ZZ_HToS = 6350,
-  SMOP4S_M2ZZ_HtoD = 6351,
-  SMOP4S_MZ2Z_BToS = 6352,
-  SMOP4S_MZ2Z_HToS = 6353,
-  SMOP4S_MZ2Z_HtoD = 6354,
-  SMOP4S_MZZ_BToS = 6355,
-  SMOP4S_MZZ_HToS = 6356,
-  SMOP4S_MZZ_HtoD = 6357,
-  SMOPA_MPPZZ_D = 6358,
-  SMOPA_MPPZZ_HtoS = 6359,
-  SMOPA_MPPZZ_S = 6360,
-  SMOPS_MPPZZ_D = 6361,
-  SMOPS_MPPZZ_HtoS = 6362,
-  SMOPS_MPPZZ_S = 6363,
-  SMOVvi16to32 = 6364,
-  SMOVvi16to32_idx0 = 6365,
-  SMOVvi16to64 = 6366,
-  SMOVvi16to64_idx0 = 6367,
-  SMOVvi32to64 = 6368,
-  SMOVvi32to64_idx0 = 6369,
-  SMOVvi8to32 = 6370,
-  SMOVvi8to32_idx0 = 6371,
-  SMOVvi8to64 = 6372,
-  SMOVvi8to64_idx0 = 6373,
-  SMSUBLrrr = 6374,
-  SMULH_ZPmZ_B = 6375,
-  SMULH_ZPmZ_D = 6376,
-  SMULH_ZPmZ_H = 6377,
-  SMULH_ZPmZ_S = 6378,
-  SMULH_ZZZ_B = 6379,
-  SMULH_ZZZ_D = 6380,
-  SMULH_ZZZ_H = 6381,
-  SMULH_ZZZ_S = 6382,
-  SMULHrr = 6383,
-  SMULLB_ZZZI_D = 6384,
-  SMULLB_ZZZI_S = 6385,
-  SMULLB_ZZZ_D = 6386,
-  SMULLB_ZZZ_H = 6387,
-  SMULLB_ZZZ_S = 6388,
-  SMULLT_ZZZI_D = 6389,
-  SMULLT_ZZZI_S = 6390,
-  SMULLT_ZZZ_D = 6391,
-  SMULLT_ZZZ_H = 6392,
-  SMULLT_ZZZ_S = 6393,
-  SMULLv16i8_v8i16 = 6394,
-  SMULLv2i32_indexed = 6395,
-  SMULLv2i32_v2i64 = 6396,
-  SMULLv4i16_indexed = 6397,
-  SMULLv4i16_v4i32 = 6398,
-  SMULLv4i32_indexed = 6399,
-  SMULLv4i32_v2i64 = 6400,
-  SMULLv8i16_indexed = 6401,
-  SMULLv8i16_v4i32 = 6402,
-  SMULLv8i8_v8i16 = 6403,
-  SPLICE_ZPZZ_B = 6404,
-  SPLICE_ZPZZ_D = 6405,
-  SPLICE_ZPZZ_H = 6406,
-  SPLICE_ZPZZ_S = 6407,
-  SPLICE_ZPZ_B = 6408,
-  SPLICE_ZPZ_D = 6409,
-  SPLICE_ZPZ_H = 6410,
-  SPLICE_ZPZ_S = 6411,
-  SQABS_ZPmZ_B = 6412,
-  SQABS_ZPmZ_D = 6413,
-  SQABS_ZPmZ_H = 6414,
-  SQABS_ZPmZ_S = 6415,
-  SQABS_ZPzZ_B = 6416,
-  SQABS_ZPzZ_D = 6417,
-  SQABS_ZPzZ_H = 6418,
-  SQABS_ZPzZ_S = 6419,
-  SQABSv16i8 = 6420,
-  SQABSv1i16 = 6421,
-  SQABSv1i32 = 6422,
-  SQABSv1i64 = 6423,
-  SQABSv1i8 = 6424,
-  SQABSv2i32 = 6425,
-  SQABSv2i64 = 6426,
-  SQABSv4i16 = 6427,
-  SQABSv4i32 = 6428,
-  SQABSv8i16 = 6429,
-  SQABSv8i8 = 6430,
-  SQADD_ZI_B = 6431,
-  SQADD_ZI_D = 6432,
-  SQADD_ZI_H = 6433,
-  SQADD_ZI_S = 6434,
-  SQADD_ZPmZ_B = 6435,
-  SQADD_ZPmZ_D = 6436,
-  SQADD_ZPmZ_H = 6437,
-  SQADD_ZPmZ_S = 6438,
-  SQADD_ZZZ_B = 6439,
-  SQADD_ZZZ_D = 6440,
-  SQADD_ZZZ_H = 6441,
-  SQADD_ZZZ_S = 6442,
-  SQADDv16i8 = 6443,
-  SQADDv1i16 = 6444,
-  SQADDv1i32 = 6445,
-  SQADDv1i64 = 6446,
-  SQADDv1i8 = 6447,
-  SQADDv2i32 = 6448,
-  SQADDv2i64 = 6449,
-  SQADDv4i16 = 6450,
-  SQADDv4i32 = 6451,
-  SQADDv8i16 = 6452,
-  SQADDv8i8 = 6453,
-  SQCADD_ZZI_B = 6454,
-  SQCADD_ZZI_D = 6455,
-  SQCADD_ZZI_H = 6456,
-  SQCADD_ZZI_S = 6457,
-  SQCVTN_Z2Z_StoH = 6458,
-  SQCVTN_Z4Z_DtoH = 6459,
-  SQCVTN_Z4Z_StoB = 6460,
-  SQCVTUN_Z2Z_StoH = 6461,
-  SQCVTUN_Z4Z_DtoH = 6462,
-  SQCVTUN_Z4Z_StoB = 6463,
-  SQCVTU_Z2Z_StoH = 6464,
-  SQCVTU_Z4Z_DtoH = 6465,
-  SQCVTU_Z4Z_StoB = 6466,
-  SQCVT_Z2Z_StoH = 6467,
-  SQCVT_Z4Z_DtoH = 6468,
-  SQCVT_Z4Z_StoB = 6469,
-  SQDECB_XPiI = 6470,
-  SQDECB_XPiWdI = 6471,
-  SQDECD_XPiI = 6472,
-  SQDECD_XPiWdI = 6473,
-  SQDECD_ZPiI = 6474,
-  SQDECH_XPiI = 6475,
-  SQDECH_XPiWdI = 6476,
-  SQDECH_ZPiI = 6477,
-  SQDECP_XPWd_B = 6478,
-  SQDECP_XPWd_D = 6479,
-  SQDECP_XPWd_H = 6480,
-  SQDECP_XPWd_S = 6481,
-  SQDECP_XP_B = 6482,
-  SQDECP_XP_D = 6483,
-  SQDECP_XP_H = 6484,
-  SQDECP_XP_S = 6485,
-  SQDECP_ZP_D = 6486,
-  SQDECP_ZP_H = 6487,
-  SQDECP_ZP_S = 6488,
-  SQDECW_XPiI = 6489,
-  SQDECW_XPiWdI = 6490,
-  SQDECW_ZPiI = 6491,
-  SQDMLALBT_ZZZ_D = 6492,
-  SQDMLALBT_ZZZ_H = 6493,
-  SQDMLALBT_ZZZ_S = 6494,
-  SQDMLALB_ZZZI_D = 6495,
-  SQDMLALB_ZZZI_S = 6496,
-  SQDMLALB_ZZZ_D = 6497,
-  SQDMLALB_ZZZ_H = 6498,
-  SQDMLALB_ZZZ_S = 6499,
-  SQDMLALT_ZZZI_D = 6500,
-  SQDMLALT_ZZZI_S = 6501,
-  SQDMLALT_ZZZ_D = 6502,
-  SQDMLALT_ZZZ_H = 6503,
-  SQDMLALT_ZZZ_S = 6504,
-  SQDMLALi16 = 6505,
-  SQDMLALi32 = 6506,
-  SQDMLALv1i32_indexed = 6507,
-  SQDMLALv1i64_indexed = 6508,
-  SQDMLALv2i32_indexed = 6509,
-  SQDMLALv2i32_v2i64 = 6510,
-  SQDMLALv4i16_indexed = 6511,
-  SQDMLALv4i16_v4i32 = 6512,
-  SQDMLALv4i32_indexed = 6513,
-  SQDMLALv4i32_v2i64 = 6514,
-  SQDMLALv8i16_indexed = 6515,
-  SQDMLALv8i16_v4i32 = 6516,
-  SQDMLSLBT_ZZZ_D = 6517,
-  SQDMLSLBT_ZZZ_H = 6518,
-  SQDMLSLBT_ZZZ_S = 6519,
-  SQDMLSLB_ZZZI_D = 6520,
-  SQDMLSLB_ZZZI_S = 6521,
-  SQDMLSLB_ZZZ_D = 6522,
-  SQDMLSLB_ZZZ_H = 6523,
-  SQDMLSLB_ZZZ_S = 6524,
-  SQDMLSLT_ZZZI_D = 6525,
-  SQDMLSLT_ZZZI_S = 6526,
-  SQDMLSLT_ZZZ_D = 6527,
-  SQDMLSLT_ZZZ_H = 6528,
-  SQDMLSLT_ZZZ_S = 6529,
-  SQDMLSLi16 = 6530,
-  SQDMLSLi32 = 6531,
-  SQDMLSLv1i32_indexed = 6532,
-  SQDMLSLv1i64_indexed = 6533,
-  SQDMLSLv2i32_indexed = 6534,
-  SQDMLSLv2i32_v2i64 = 6535,
-  SQDMLSLv4i16_indexed = 6536,
-  SQDMLSLv4i16_v4i32 = 6537,
-  SQDMLSLv4i32_indexed = 6538,
-  SQDMLSLv4i32_v2i64 = 6539,
-  SQDMLSLv8i16_indexed = 6540,
-  SQDMLSLv8i16_v4i32 = 6541,
-  SQDMULH_VG2_2Z2Z_B = 6542,
-  SQDMULH_VG2_2Z2Z_D = 6543,
-  SQDMULH_VG2_2Z2Z_H = 6544,
-  SQDMULH_VG2_2Z2Z_S = 6545,
-  SQDMULH_VG2_2ZZ_B = 6546,
-  SQDMULH_VG2_2ZZ_D = 6547,
-  SQDMULH_VG2_2ZZ_H = 6548,
-  SQDMULH_VG2_2ZZ_S = 6549,
-  SQDMULH_VG4_4Z4Z_B = 6550,
-  SQDMULH_VG4_4Z4Z_D = 6551,
-  SQDMULH_VG4_4Z4Z_H = 6552,
-  SQDMULH_VG4_4Z4Z_S = 6553,
-  SQDMULH_VG4_4ZZ_B = 6554,
-  SQDMULH_VG4_4ZZ_D = 6555,
-  SQDMULH_VG4_4ZZ_H = 6556,
-  SQDMULH_VG4_4ZZ_S = 6557,
-  SQDMULH_ZZZI_D = 6558,
-  SQDMULH_ZZZI_H = 6559,
-  SQDMULH_ZZZI_S = 6560,
-  SQDMULH_ZZZ_B = 6561,
-  SQDMULH_ZZZ_D = 6562,
-  SQDMULH_ZZZ_H = 6563,
-  SQDMULH_ZZZ_S = 6564,
-  SQDMULHv1i16 = 6565,
-  SQDMULHv1i16_indexed = 6566,
-  SQDMULHv1i32 = 6567,
-  SQDMULHv1i32_indexed = 6568,
-  SQDMULHv2i32 = 6569,
-  SQDMULHv2i32_indexed = 6570,
-  SQDMULHv4i16 = 6571,
-  SQDMULHv4i16_indexed = 6572,
-  SQDMULHv4i32 = 6573,
-  SQDMULHv4i32_indexed = 6574,
-  SQDMULHv8i16 = 6575,
-  SQDMULHv8i16_indexed = 6576,
-  SQDMULLB_ZZZI_D = 6577,
-  SQDMULLB_ZZZI_S = 6578,
-  SQDMULLB_ZZZ_D = 6579,
-  SQDMULLB_ZZZ_H = 6580,
-  SQDMULLB_ZZZ_S = 6581,
-  SQDMULLT_ZZZI_D = 6582,
-  SQDMULLT_ZZZI_S = 6583,
-  SQDMULLT_ZZZ_D = 6584,
-  SQDMULLT_ZZZ_H = 6585,
-  SQDMULLT_ZZZ_S = 6586,
-  SQDMULLi16 = 6587,
-  SQDMULLi32 = 6588,
-  SQDMULLv1i32_indexed = 6589,
-  SQDMULLv1i64_indexed = 6590,
-  SQDMULLv2i32_indexed = 6591,
-  SQDMULLv2i32_v2i64 = 6592,
-  SQDMULLv4i16_indexed = 6593,
-  SQDMULLv4i16_v4i32 = 6594,
-  SQDMULLv4i32_indexed = 6595,
-  SQDMULLv4i32_v2i64 = 6596,
-  SQDMULLv8i16_indexed = 6597,
-  SQDMULLv8i16_v4i32 = 6598,
-  SQINCB_XPiI = 6599,
-  SQINCB_XPiWdI = 6600,
-  SQINCD_XPiI = 6601,
-  SQINCD_XPiWdI = 6602,
-  SQINCD_ZPiI = 6603,
-  SQINCH_XPiI = 6604,
-  SQINCH_XPiWdI = 6605,
-  SQINCH_ZPiI = 6606,
-  SQINCP_XPWd_B = 6607,
-  SQINCP_XPWd_D = 6608,
-  SQINCP_XPWd_H = 6609,
-  SQINCP_XPWd_S = 6610,
-  SQINCP_XP_B = 6611,
-  SQINCP_XP_D = 6612,
-  SQINCP_XP_H = 6613,
-  SQINCP_XP_S = 6614,
-  SQINCP_ZP_D = 6615,
-  SQINCP_ZP_H = 6616,
-  SQINCP_ZP_S = 6617,
-  SQINCW_XPiI = 6618,
-  SQINCW_XPiWdI = 6619,
-  SQINCW_ZPiI = 6620,
-  SQNEG_ZPmZ_B = 6621,
-  SQNEG_ZPmZ_D = 6622,
-  SQNEG_ZPmZ_H = 6623,
-  SQNEG_ZPmZ_S = 6624,
-  SQNEG_ZPzZ_B = 6625,
-  SQNEG_ZPzZ_D = 6626,
-  SQNEG_ZPzZ_H = 6627,
-  SQNEG_ZPzZ_S = 6628,
-  SQNEGv16i8 = 6629,
-  SQNEGv1i16 = 6630,
-  SQNEGv1i32 = 6631,
-  SQNEGv1i64 = 6632,
-  SQNEGv1i8 = 6633,
-  SQNEGv2i32 = 6634,
-  SQNEGv2i64 = 6635,
-  SQNEGv4i16 = 6636,
-  SQNEGv4i32 = 6637,
-  SQNEGv8i16 = 6638,
-  SQNEGv8i8 = 6639,
-  SQRDCMLAH_ZZZI_H = 6640,
-  SQRDCMLAH_ZZZI_S = 6641,
-  SQRDCMLAH_ZZZ_B = 6642,
-  SQRDCMLAH_ZZZ_D = 6643,
-  SQRDCMLAH_ZZZ_H = 6644,
-  SQRDCMLAH_ZZZ_S = 6645,
-  SQRDMLAH_ZZZI_D = 6646,
-  SQRDMLAH_ZZZI_H = 6647,
-  SQRDMLAH_ZZZI_S = 6648,
-  SQRDMLAH_ZZZ_B = 6649,
-  SQRDMLAH_ZZZ_D = 6650,
-  SQRDMLAH_ZZZ_H = 6651,
-  SQRDMLAH_ZZZ_S = 6652,
-  SQRDMLAHv1i16 = 6653,
-  SQRDMLAHv1i16_indexed = 6654,
-  SQRDMLAHv1i32 = 6655,
-  SQRDMLAHv1i32_indexed = 6656,
-  SQRDMLAHv2i32 = 6657,
-  SQRDMLAHv2i32_indexed = 6658,
-  SQRDMLAHv4i16 = 6659,
-  SQRDMLAHv4i16_indexed = 6660,
-  SQRDMLAHv4i32 = 6661,
-  SQRDMLAHv4i32_indexed = 6662,
-  SQRDMLAHv8i16 = 6663,
-  SQRDMLAHv8i16_indexed = 6664,
-  SQRDMLSH_ZZZI_D = 6665,
-  SQRDMLSH_ZZZI_H = 6666,
-  SQRDMLSH_ZZZI_S = 6667,
-  SQRDMLSH_ZZZ_B = 6668,
-  SQRDMLSH_ZZZ_D = 6669,
-  SQRDMLSH_ZZZ_H = 6670,
-  SQRDMLSH_ZZZ_S = 6671,
-  SQRDMLSHv1i16 = 6672,
-  SQRDMLSHv1i16_indexed = 6673,
-  SQRDMLSHv1i32 = 6674,
-  SQRDMLSHv1i32_indexed = 6675,
-  SQRDMLSHv2i32 = 6676,
-  SQRDMLSHv2i32_indexed = 6677,
-  SQRDMLSHv4i16 = 6678,
-  SQRDMLSHv4i16_indexed = 6679,
-  SQRDMLSHv4i32 = 6680,
-  SQRDMLSHv4i32_indexed = 6681,
-  SQRDMLSHv8i16 = 6682,
-  SQRDMLSHv8i16_indexed = 6683,
-  SQRDMULH_ZZZI_D = 6684,
-  SQRDMULH_ZZZI_H = 6685,
-  SQRDMULH_ZZZI_S = 6686,
-  SQRDMULH_ZZZ_B = 6687,
-  SQRDMULH_ZZZ_D = 6688,
-  SQRDMULH_ZZZ_H = 6689,
-  SQRDMULH_ZZZ_S = 6690,
-  SQRDMULHv1i16 = 6691,
-  SQRDMULHv1i16_indexed = 6692,
-  SQRDMULHv1i32 = 6693,
-  SQRDMULHv1i32_indexed = 6694,
-  SQRDMULHv2i32 = 6695,
-  SQRDMULHv2i32_indexed = 6696,
-  SQRDMULHv4i16 = 6697,
-  SQRDMULHv4i16_indexed = 6698,
-  SQRDMULHv4i32 = 6699,
-  SQRDMULHv4i32_indexed = 6700,
-  SQRDMULHv8i16 = 6701,
-  SQRDMULHv8i16_indexed = 6702,
-  SQRSHLR_ZPmZ_B = 6703,
-  SQRSHLR_ZPmZ_D = 6704,
-  SQRSHLR_ZPmZ_H = 6705,
-  SQRSHLR_ZPmZ_S = 6706,
-  SQRSHL_ZPmZ_B = 6707,
-  SQRSHL_ZPmZ_D = 6708,
-  SQRSHL_ZPmZ_H = 6709,
-  SQRSHL_ZPmZ_S = 6710,
-  SQRSHLv16i8 = 6711,
-  SQRSHLv1i16 = 6712,
-  SQRSHLv1i32 = 6713,
-  SQRSHLv1i64 = 6714,
-  SQRSHLv1i8 = 6715,
-  SQRSHLv2i32 = 6716,
-  SQRSHLv2i64 = 6717,
-  SQRSHLv4i16 = 6718,
-  SQRSHLv4i32 = 6719,
-  SQRSHLv8i16 = 6720,
-  SQRSHLv8i8 = 6721,
-  SQRSHRNB_ZZI_B = 6722,
-  SQRSHRNB_ZZI_H = 6723,
-  SQRSHRNB_ZZI_S = 6724,
-  SQRSHRNT_ZZI_B = 6725,
-  SQRSHRNT_ZZI_H = 6726,
-  SQRSHRNT_ZZI_S = 6727,
-  SQRSHRN_VG4_Z4ZI_B = 6728,
-  SQRSHRN_VG4_Z4ZI_H = 6729,
-  SQRSHRN_Z2ZI_StoH = 6730,
-  SQRSHRNb = 6731,
-  SQRSHRNh = 6732,
-  SQRSHRNs = 6733,
-  SQRSHRNv16i8_shift = 6734,
-  SQRSHRNv2i32_shift = 6735,
-  SQRSHRNv4i16_shift = 6736,
-  SQRSHRNv4i32_shift = 6737,
-  SQRSHRNv8i16_shift = 6738,
-  SQRSHRNv8i8_shift = 6739,
-  SQRSHRUNB_ZZI_B = 6740,
-  SQRSHRUNB_ZZI_H = 6741,
-  SQRSHRUNB_ZZI_S = 6742,
-  SQRSHRUNT_ZZI_B = 6743,
-  SQRSHRUNT_ZZI_H = 6744,
-  SQRSHRUNT_ZZI_S = 6745,
-  SQRSHRUN_VG4_Z4ZI_B = 6746,
-  SQRSHRUN_VG4_Z4ZI_H = 6747,
-  SQRSHRUN_Z2ZI_StoH = 6748,
-  SQRSHRUNb = 6749,
-  SQRSHRUNh = 6750,
-  SQRSHRUNs = 6751,
-  SQRSHRUNv16i8_shift = 6752,
-  SQRSHRUNv2i32_shift = 6753,
-  SQRSHRUNv4i16_shift = 6754,
-  SQRSHRUNv4i32_shift = 6755,
-  SQRSHRUNv8i16_shift = 6756,
-  SQRSHRUNv8i8_shift = 6757,
-  SQRSHRU_VG2_Z2ZI_H = 6758,
-  SQRSHRU_VG4_Z4ZI_B = 6759,
-  SQRSHRU_VG4_Z4ZI_H = 6760,
-  SQRSHR_VG2_Z2ZI_H = 6761,
-  SQRSHR_VG4_Z4ZI_B = 6762,
-  SQRSHR_VG4_Z4ZI_H = 6763,
-  SQSHLR_ZPmZ_B = 6764,
-  SQSHLR_ZPmZ_D = 6765,
-  SQSHLR_ZPmZ_H = 6766,
-  SQSHLR_ZPmZ_S = 6767,
-  SQSHLU_ZPmI_B = 6768,
-  SQSHLU_ZPmI_D = 6769,
-  SQSHLU_ZPmI_H = 6770,
-  SQSHLU_ZPmI_S = 6771,
-  SQSHLUb = 6772,
-  SQSHLUd = 6773,
-  SQSHLUh = 6774,
-  SQSHLUs = 6775,
-  SQSHLUv16i8_shift = 6776,
-  SQSHLUv2i32_shift = 6777,
-  SQSHLUv2i64_shift = 6778,
-  SQSHLUv4i16_shift = 6779,
-  SQSHLUv4i32_shift = 6780,
-  SQSHLUv8i16_shift = 6781,
-  SQSHLUv8i8_shift = 6782,
-  SQSHL_ZPmI_B = 6783,
-  SQSHL_ZPmI_D = 6784,
-  SQSHL_ZPmI_H = 6785,
-  SQSHL_ZPmI_S = 6786,
-  SQSHL_ZPmZ_B = 6787,
-  SQSHL_ZPmZ_D = 6788,
-  SQSHL_ZPmZ_H = 6789,
-  SQSHL_ZPmZ_S = 6790,
-  SQSHLb = 6791,
-  SQSHLd = 6792,
-  SQSHLh = 6793,
-  SQSHLs = 6794,
-  SQSHLv16i8 = 6795,
-  SQSHLv16i8_shift = 6796,
-  SQSHLv1i16 = 6797,
-  SQSHLv1i32 = 6798,
-  SQSHLv1i64 = 6799,
-  SQSHLv1i8 = 6800,
-  SQSHLv2i32 = 6801,
-  SQSHLv2i32_shift = 6802,
-  SQSHLv2i64 = 6803,
-  SQSHLv2i64_shift = 6804,
-  SQSHLv4i16 = 6805,
-  SQSHLv4i16_shift = 6806,
-  SQSHLv4i32 = 6807,
-  SQSHLv4i32_shift = 6808,
-  SQSHLv8i16 = 6809,
-  SQSHLv8i16_shift = 6810,
-  SQSHLv8i8 = 6811,
-  SQSHLv8i8_shift = 6812,
-  SQSHRNB_ZZI_B = 6813,
-  SQSHRNB_ZZI_H = 6814,
-  SQSHRNB_ZZI_S = 6815,
-  SQSHRNT_ZZI_B = 6816,
-  SQSHRNT_ZZI_H = 6817,
-  SQSHRNT_ZZI_S = 6818,
-  SQSHRNb = 6819,
-  SQSHRNh = 6820,
-  SQSHRNs = 6821,
-  SQSHRNv16i8_shift = 6822,
-  SQSHRNv2i32_shift = 6823,
-  SQSHRNv4i16_shift = 6824,
-  SQSHRNv4i32_shift = 6825,
-  SQSHRNv8i16_shift = 6826,
-  SQSHRNv8i8_shift = 6827,
-  SQSHRUNB_ZZI_B = 6828,
-  SQSHRUNB_ZZI_H = 6829,
-  SQSHRUNB_ZZI_S = 6830,
-  SQSHRUNT_ZZI_B = 6831,
-  SQSHRUNT_ZZI_H = 6832,
-  SQSHRUNT_ZZI_S = 6833,
-  SQSHRUNb = 6834,
-  SQSHRUNh = 6835,
-  SQSHRUNs = 6836,
-  SQSHRUNv16i8_shift = 6837,
-  SQSHRUNv2i32_shift = 6838,
-  SQSHRUNv4i16_shift = 6839,
-  SQSHRUNv4i32_shift = 6840,
-  SQSHRUNv8i16_shift = 6841,
-  SQSHRUNv8i8_shift = 6842,
-  SQSUBR_ZPmZ_B = 6843,
-  SQSUBR_ZPmZ_D = 6844,
-  SQSUBR_ZPmZ_H = 6845,
-  SQSUBR_ZPmZ_S = 6846,
-  SQSUB_ZI_B = 6847,
-  SQSUB_ZI_D = 6848,
-  SQSUB_ZI_H = 6849,
-  SQSUB_ZI_S = 6850,
-  SQSUB_ZPmZ_B = 6851,
-  SQSUB_ZPmZ_D = 6852,
-  SQSUB_ZPmZ_H = 6853,
-  SQSUB_ZPmZ_S = 6854,
-  SQSUB_ZZZ_B = 6855,
-  SQSUB_ZZZ_D = 6856,
-  SQSUB_ZZZ_H = 6857,
-  SQSUB_ZZZ_S = 6858,
-  SQSUBv16i8 = 6859,
-  SQSUBv1i16 = 6860,
-  SQSUBv1i32 = 6861,
-  SQSUBv1i64 = 6862,
-  SQSUBv1i8 = 6863,
-  SQSUBv2i32 = 6864,
-  SQSUBv2i64 = 6865,
-  SQSUBv4i16 = 6866,
-  SQSUBv4i32 = 6867,
-  SQSUBv8i16 = 6868,
-  SQSUBv8i8 = 6869,
-  SQXTNB_ZZ_B = 6870,
-  SQXTNB_ZZ_H = 6871,
-  SQXTNB_ZZ_S = 6872,
-  SQXTNT_ZZ_B = 6873,
-  SQXTNT_ZZ_H = 6874,
-  SQXTNT_ZZ_S = 6875,
-  SQXTNv16i8 = 6876,
-  SQXTNv1i16 = 6877,
-  SQXTNv1i32 = 6878,
-  SQXTNv1i8 = 6879,
-  SQXTNv2i32 = 6880,
-  SQXTNv4i16 = 6881,
-  SQXTNv4i32 = 6882,
-  SQXTNv8i16 = 6883,
-  SQXTNv8i8 = 6884,
-  SQXTUNB_ZZ_B = 6885,
-  SQXTUNB_ZZ_H = 6886,
-  SQXTUNB_ZZ_S = 6887,
-  SQXTUNT_ZZ_B = 6888,
-  SQXTUNT_ZZ_H = 6889,
-  SQXTUNT_ZZ_S = 6890,
-  SQXTUNv16i8 = 6891,
-  SQXTUNv1i16 = 6892,
-  SQXTUNv1i32 = 6893,
-  SQXTUNv1i8 = 6894,
-  SQXTUNv2i32 = 6895,
-  SQXTUNv4i16 = 6896,
-  SQXTUNv4i32 = 6897,
-  SQXTUNv8i16 = 6898,
-  SQXTUNv8i8 = 6899,
-  SRHADD_ZPmZ_B = 6900,
-  SRHADD_ZPmZ_D = 6901,
-  SRHADD_ZPmZ_H = 6902,
-  SRHADD_ZPmZ_S = 6903,
-  SRHADDv16i8 = 6904,
-  SRHADDv2i32 = 6905,
-  SRHADDv4i16 = 6906,
-  SRHADDv4i32 = 6907,
-  SRHADDv8i16 = 6908,
-  SRHADDv8i8 = 6909,
-  SRI_ZZI_B = 6910,
-  SRI_ZZI_D = 6911,
-  SRI_ZZI_H = 6912,
-  SRI_ZZI_S = 6913,
-  SRId = 6914,
-  SRIv16i8_shift = 6915,
-  SRIv2i32_shift = 6916,
-  SRIv2i64_shift = 6917,
-  SRIv4i16_shift = 6918,
-  SRIv4i32_shift = 6919,
-  SRIv8i16_shift = 6920,
-  SRIv8i8_shift = 6921,
-  SRSHLR_ZPmZ_B = 6922,
-  SRSHLR_ZPmZ_D = 6923,
-  SRSHLR_ZPmZ_H = 6924,
-  SRSHLR_ZPmZ_S = 6925,
-  SRSHL_VG2_2Z2Z_B = 6926,
-  SRSHL_VG2_2Z2Z_D = 6927,
-  SRSHL_VG2_2Z2Z_H = 6928,
-  SRSHL_VG2_2Z2Z_S = 6929,
-  SRSHL_VG2_2ZZ_B = 6930,
-  SRSHL_VG2_2ZZ_D = 6931,
-  SRSHL_VG2_2ZZ_H = 6932,
-  SRSHL_VG2_2ZZ_S = 6933,
-  SRSHL_VG4_4Z4Z_B = 6934,
-  SRSHL_VG4_4Z4Z_D = 6935,
-  SRSHL_VG4_4Z4Z_H = 6936,
-  SRSHL_VG4_4Z4Z_S = 6937,
-  SRSHL_VG4_4ZZ_B = 6938,
-  SRSHL_VG4_4ZZ_D = 6939,
-  SRSHL_VG4_4ZZ_H = 6940,
-  SRSHL_VG4_4ZZ_S = 6941,
-  SRSHL_ZPmZ_B = 6942,
-  SRSHL_ZPmZ_D = 6943,
-  SRSHL_ZPmZ_H = 6944,
-  SRSHL_ZPmZ_S = 6945,
-  SRSHLv16i8 = 6946,
-  SRSHLv1i64 = 6947,
-  SRSHLv2i32 = 6948,
-  SRSHLv2i64 = 6949,
-  SRSHLv4i16 = 6950,
-  SRSHLv4i32 = 6951,
-  SRSHLv8i16 = 6952,
-  SRSHLv8i8 = 6953,
-  SRSHR_ZPmI_B = 6954,
-  SRSHR_ZPmI_D = 6955,
-  SRSHR_ZPmI_H = 6956,
-  SRSHR_ZPmI_S = 6957,
-  SRSHRd = 6958,
-  SRSHRv16i8_shift = 6959,
-  SRSHRv2i32_shift = 6960,
-  SRSHRv2i64_shift = 6961,
-  SRSHRv4i16_shift = 6962,
-  SRSHRv4i32_shift = 6963,
-  SRSHRv8i16_shift = 6964,
-  SRSHRv8i8_shift = 6965,
-  SRSRA_ZZI_B = 6966,
-  SRSRA_ZZI_D = 6967,
-  SRSRA_ZZI_H = 6968,
-  SRSRA_ZZI_S = 6969,
-  SRSRAd = 6970,
-  SRSRAv16i8_shift = 6971,
-  SRSRAv2i32_shift = 6972,
-  SRSRAv2i64_shift = 6973,
-  SRSRAv4i16_shift = 6974,
-  SRSRAv4i32_shift = 6975,
-  SRSRAv8i16_shift = 6976,
-  SRSRAv8i8_shift = 6977,
-  SSHLLB_ZZI_D = 6978,
-  SSHLLB_ZZI_H = 6979,
-  SSHLLB_ZZI_S = 6980,
-  SSHLLT_ZZI_D = 6981,
-  SSHLLT_ZZI_H = 6982,
-  SSHLLT_ZZI_S = 6983,
-  SSHLLv16i8_shift = 6984,
-  SSHLLv2i32_shift = 6985,
-  SSHLLv4i16_shift = 6986,
-  SSHLLv4i32_shift = 6987,
-  SSHLLv8i16_shift = 6988,
-  SSHLLv8i8_shift = 6989,
-  SSHLv16i8 = 6990,
-  SSHLv1i64 = 6991,
-  SSHLv2i32 = 6992,
-  SSHLv2i64 = 6993,
-  SSHLv4i16 = 6994,
-  SSHLv4i32 = 6995,
-  SSHLv8i16 = 6996,
-  SSHLv8i8 = 6997,
-  SSHRd = 6998,
-  SSHRv16i8_shift = 6999,
-  SSHRv2i32_shift = 7000,
-  SSHRv2i64_shift = 7001,
-  SSHRv4i16_shift = 7002,
-  SSHRv4i32_shift = 7003,
-  SSHRv8i16_shift = 7004,
-  SSHRv8i8_shift = 7005,
-  SSRA_ZZI_B = 7006,
-  SSRA_ZZI_D = 7007,
-  SSRA_ZZI_H = 7008,
-  SSRA_ZZI_S = 7009,
-  SSRAd = 7010,
-  SSRAv16i8_shift = 7011,
-  SSRAv2i32_shift = 7012,
-  SSRAv2i64_shift = 7013,
-  SSRAv4i16_shift = 7014,
-  SSRAv4i32_shift = 7015,
-  SSRAv8i16_shift = 7016,
-  SSRAv8i8_shift = 7017,
-  SST1B_D = 7018,
-  SST1B_D_IMM = 7019,
-  SST1B_D_SXTW = 7020,
-  SST1B_D_UXTW = 7021,
-  SST1B_S_IMM = 7022,
-  SST1B_S_SXTW = 7023,
-  SST1B_S_UXTW = 7024,
-  SST1D = 7025,
-  SST1D_IMM = 7026,
-  SST1D_SCALED = 7027,
-  SST1D_SXTW = 7028,
-  SST1D_SXTW_SCALED = 7029,
-  SST1D_UXTW = 7030,
-  SST1D_UXTW_SCALED = 7031,
-  SST1H_D = 7032,
-  SST1H_D_IMM = 7033,
-  SST1H_D_SCALED = 7034,
-  SST1H_D_SXTW = 7035,
-  SST1H_D_SXTW_SCALED = 7036,
-  SST1H_D_UXTW = 7037,
-  SST1H_D_UXTW_SCALED = 7038,
-  SST1H_S_IMM = 7039,
-  SST1H_S_SXTW = 7040,
-  SST1H_S_SXTW_SCALED = 7041,
-  SST1H_S_UXTW = 7042,
-  SST1H_S_UXTW_SCALED = 7043,
-  SST1Q = 7044,
-  SST1W_D = 7045,
-  SST1W_D_IMM = 7046,
-  SST1W_D_SCALED = 7047,
-  SST1W_D_SXTW = 7048,
-  SST1W_D_SXTW_SCALED = 7049,
-  SST1W_D_UXTW = 7050,
-  SST1W_D_UXTW_SCALED = 7051,
-  SST1W_IMM = 7052,
-  SST1W_SXTW = 7053,
-  SST1W_SXTW_SCALED = 7054,
-  SST1W_UXTW = 7055,
-  SST1W_UXTW_SCALED = 7056,
-  SSUBLBT_ZZZ_D = 7057,
-  SSUBLBT_ZZZ_H = 7058,
-  SSUBLBT_ZZZ_S = 7059,
-  SSUBLB_ZZZ_D = 7060,
-  SSUBLB_ZZZ_H = 7061,
-  SSUBLB_ZZZ_S = 7062,
-  SSUBLTB_ZZZ_D = 7063,
-  SSUBLTB_ZZZ_H = 7064,
-  SSUBLTB_ZZZ_S = 7065,
-  SSUBLT_ZZZ_D = 7066,
-  SSUBLT_ZZZ_H = 7067,
-  SSUBLT_ZZZ_S = 7068,
-  SSUBLv16i8_v8i16 = 7069,
-  SSUBLv2i32_v2i64 = 7070,
-  SSUBLv4i16_v4i32 = 7071,
-  SSUBLv4i32_v2i64 = 7072,
-  SSUBLv8i16_v4i32 = 7073,
-  SSUBLv8i8_v8i16 = 7074,
-  SSUBWB_ZZZ_D = 7075,
-  SSUBWB_ZZZ_H = 7076,
-  SSUBWB_ZZZ_S = 7077,
-  SSUBWT_ZZZ_D = 7078,
-  SSUBWT_ZZZ_H = 7079,
-  SSUBWT_ZZZ_S = 7080,
-  SSUBWv16i8_v8i16 = 7081,
-  SSUBWv2i32_v2i64 = 7082,
-  SSUBWv4i16_v4i32 = 7083,
-  SSUBWv4i32_v2i64 = 7084,
-  SSUBWv8i16_v4i32 = 7085,
-  SSUBWv8i8_v8i16 = 7086,
-  ST1B = 7087,
-  ST1B_2Z = 7088,
-  ST1B_2Z_IMM = 7089,
-  ST1B_2Z_STRIDED = 7090,
-  ST1B_2Z_STRIDED_IMM = 7091,
-  ST1B_4Z = 7092,
-  ST1B_4Z_IMM = 7093,
-  ST1B_4Z_STRIDED = 7094,
-  ST1B_4Z_STRIDED_IMM = 7095,
-  ST1B_D = 7096,
-  ST1B_D_IMM = 7097,
-  ST1B_H = 7098,
-  ST1B_H_IMM = 7099,
-  ST1B_IMM = 7100,
-  ST1B_S = 7101,
-  ST1B_S_IMM = 7102,
-  ST1D = 7103,
-  ST1D_2Z = 7104,
-  ST1D_2Z_IMM = 7105,
-  ST1D_2Z_STRIDED = 7106,
-  ST1D_2Z_STRIDED_IMM = 7107,
-  ST1D_4Z = 7108,
-  ST1D_4Z_IMM = 7109,
-  ST1D_4Z_STRIDED = 7110,
-  ST1D_4Z_STRIDED_IMM = 7111,
-  ST1D_IMM = 7112,
-  ST1D_Q = 7113,
-  ST1D_Q_IMM = 7114,
-  ST1Fourv16b = 7115,
-  ST1Fourv16b_POST = 7116,
-  ST1Fourv1d = 7117,
-  ST1Fourv1d_POST = 7118,
-  ST1Fourv2d = 7119,
-  ST1Fourv2d_POST = 7120,
-  ST1Fourv2s = 7121,
-  ST1Fourv2s_POST = 7122,
-  ST1Fourv4h = 7123,
-  ST1Fourv4h_POST = 7124,
-  ST1Fourv4s = 7125,
-  ST1Fourv4s_POST = 7126,
-  ST1Fourv8b = 7127,
-  ST1Fourv8b_POST = 7128,
-  ST1Fourv8h = 7129,
-  ST1Fourv8h_POST = 7130,
-  ST1H = 7131,
-  ST1H_2Z = 7132,
-  ST1H_2Z_IMM = 7133,
-  ST1H_2Z_STRIDED = 7134,
-  ST1H_2Z_STRIDED_IMM = 7135,
-  ST1H_4Z = 7136,
-  ST1H_4Z_IMM = 7137,
-  ST1H_4Z_STRIDED = 7138,
-  ST1H_4Z_STRIDED_IMM = 7139,
-  ST1H_D = 7140,
-  ST1H_D_IMM = 7141,
-  ST1H_IMM = 7142,
-  ST1H_S = 7143,
-  ST1H_S_IMM = 7144,
-  ST1Onev16b = 7145,
-  ST1Onev16b_POST = 7146,
-  ST1Onev1d = 7147,
-  ST1Onev1d_POST = 7148,
-  ST1Onev2d = 7149,
-  ST1Onev2d_POST = 7150,
-  ST1Onev2s = 7151,
-  ST1Onev2s_POST = 7152,
-  ST1Onev4h = 7153,
-  ST1Onev4h_POST = 7154,
-  ST1Onev4s = 7155,
-  ST1Onev4s_POST = 7156,
-  ST1Onev8b = 7157,
-  ST1Onev8b_POST = 7158,
-  ST1Onev8h = 7159,
-  ST1Onev8h_POST = 7160,
-  ST1Threev16b = 7161,
-  ST1Threev16b_POST = 7162,
-  ST1Threev1d = 7163,
-  ST1Threev1d_POST = 7164,
-  ST1Threev2d = 7165,
-  ST1Threev2d_POST = 7166,
-  ST1Threev2s = 7167,
-  ST1Threev2s_POST = 7168,
-  ST1Threev4h = 7169,
-  ST1Threev4h_POST = 7170,
-  ST1Threev4s = 7171,
-  ST1Threev4s_POST = 7172,
-  ST1Threev8b = 7173,
-  ST1Threev8b_POST = 7174,
-  ST1Threev8h = 7175,
-  ST1Threev8h_POST = 7176,
-  ST1Twov16b = 7177,
-  ST1Twov16b_POST = 7178,
-  ST1Twov1d = 7179,
-  ST1Twov1d_POST = 7180,
-  ST1Twov2d = 7181,
-  ST1Twov2d_POST = 7182,
-  ST1Twov2s = 7183,
-  ST1Twov2s_POST = 7184,
-  ST1Twov4h = 7185,
-  ST1Twov4h_POST = 7186,
-  ST1Twov4s = 7187,
-  ST1Twov4s_POST = 7188,
-  ST1Twov8b = 7189,
-  ST1Twov8b_POST = 7190,
-  ST1Twov8h = 7191,
-  ST1Twov8h_POST = 7192,
-  ST1W = 7193,
-  ST1W_2Z = 7194,
-  ST1W_2Z_IMM = 7195,
-  ST1W_2Z_STRIDED = 7196,
-  ST1W_2Z_STRIDED_IMM = 7197,
-  ST1W_4Z = 7198,
-  ST1W_4Z_IMM = 7199,
-  ST1W_4Z_STRIDED = 7200,
-  ST1W_4Z_STRIDED_IMM = 7201,
-  ST1W_D = 7202,
-  ST1W_D_IMM = 7203,
-  ST1W_IMM = 7204,
-  ST1W_Q = 7205,
-  ST1W_Q_IMM = 7206,
-  ST1_MXIPXX_H_B = 7207,
-  ST1_MXIPXX_H_D = 7208,
-  ST1_MXIPXX_H_H = 7209,
-  ST1_MXIPXX_H_Q = 7210,
-  ST1_MXIPXX_H_S = 7211,
-  ST1_MXIPXX_V_B = 7212,
-  ST1_MXIPXX_V_D = 7213,
-  ST1_MXIPXX_V_H = 7214,
-  ST1_MXIPXX_V_Q = 7215,
-  ST1_MXIPXX_V_S = 7216,
-  ST1i16 = 7217,
-  ST1i16_POST = 7218,
-  ST1i32 = 7219,
-  ST1i32_POST = 7220,
-  ST1i64 = 7221,
-  ST1i64_POST = 7222,
-  ST1i8 = 7223,
-  ST1i8_POST = 7224,
-  ST2B = 7225,
-  ST2B_IMM = 7226,
-  ST2D = 7227,
-  ST2D_IMM = 7228,
-  ST2GPostIndex = 7229,
-  ST2GPreIndex = 7230,
-  ST2Gi = 7231,
-  ST2H = 7232,
-  ST2H_IMM = 7233,
-  ST2Q = 7234,
-  ST2Q_IMM = 7235,
-  ST2Twov16b = 7236,
-  ST2Twov16b_POST = 7237,
-  ST2Twov2d = 7238,
-  ST2Twov2d_POST = 7239,
-  ST2Twov2s = 7240,
-  ST2Twov2s_POST = 7241,
-  ST2Twov4h = 7242,
-  ST2Twov4h_POST = 7243,
-  ST2Twov4s = 7244,
-  ST2Twov4s_POST = 7245,
-  ST2Twov8b = 7246,
-  ST2Twov8b_POST = 7247,
-  ST2Twov8h = 7248,
-  ST2Twov8h_POST = 7249,
-  ST2W = 7250,
-  ST2W_IMM = 7251,
-  ST2i16 = 7252,
-  ST2i16_POST = 7253,
-  ST2i32 = 7254,
-  ST2i32_POST = 7255,
-  ST2i64 = 7256,
-  ST2i64_POST = 7257,
-  ST2i8 = 7258,
-  ST2i8_POST = 7259,
-  ST3B = 7260,
-  ST3B_IMM = 7261,
-  ST3D = 7262,
-  ST3D_IMM = 7263,
-  ST3H = 7264,
-  ST3H_IMM = 7265,
-  ST3Q = 7266,
-  ST3Q_IMM = 7267,
-  ST3Threev16b = 7268,
-  ST3Threev16b_POST = 7269,
-  ST3Threev2d = 7270,
-  ST3Threev2d_POST = 7271,
-  ST3Threev2s = 7272,
-  ST3Threev2s_POST = 7273,
-  ST3Threev4h = 7274,
-  ST3Threev4h_POST = 7275,
-  ST3Threev4s = 7276,
-  ST3Threev4s_POST = 7277,
-  ST3Threev8b = 7278,
-  ST3Threev8b_POST = 7279,
-  ST3Threev8h = 7280,
-  ST3Threev8h_POST = 7281,
-  ST3W = 7282,
-  ST3W_IMM = 7283,
-  ST3i16 = 7284,
-  ST3i16_POST = 7285,
-  ST3i32 = 7286,
-  ST3i32_POST = 7287,
-  ST3i64 = 7288,
-  ST3i64_POST = 7289,
-  ST3i8 = 7290,
-  ST3i8_POST = 7291,
-  ST4B = 7292,
-  ST4B_IMM = 7293,
-  ST4D = 7294,
-  ST4D_IMM = 7295,
-  ST4Fourv16b = 7296,
-  ST4Fourv16b_POST = 7297,
-  ST4Fourv2d = 7298,
-  ST4Fourv2d_POST = 7299,
-  ST4Fourv2s = 7300,
-  ST4Fourv2s_POST = 7301,
-  ST4Fourv4h = 7302,
-  ST4Fourv4h_POST = 7303,
-  ST4Fourv4s = 7304,
-  ST4Fourv4s_POST = 7305,
-  ST4Fourv8b = 7306,
-  ST4Fourv8b_POST = 7307,
-  ST4Fourv8h = 7308,
-  ST4Fourv8h_POST = 7309,
-  ST4H = 7310,
-  ST4H_IMM = 7311,
-  ST4Q = 7312,
-  ST4Q_IMM = 7313,
-  ST4W = 7314,
-  ST4W_IMM = 7315,
-  ST4i16 = 7316,
-  ST4i16_POST = 7317,
-  ST4i32 = 7318,
-  ST4i32_POST = 7319,
-  ST4i64 = 7320,
-  ST4i64_POST = 7321,
-  ST4i8 = 7322,
-  ST4i8_POST = 7323,
-  ST64B = 7324,
-  ST64BV = 7325,
-  ST64BV0 = 7326,
-  STBFADD = 7327,
-  STBFADDL = 7328,
-  STBFMAX = 7329,
-  STBFMAXL = 7330,
-  STBFMAXNM = 7331,
-  STBFMAXNML = 7332,
-  STBFMIN = 7333,
-  STBFMINL = 7334,
-  STBFMINNM = 7335,
-  STBFMINNML = 7336,
-  STFADDD = 7337,
-  STFADDH = 7338,
-  STFADDLD = 7339,
-  STFADDLH = 7340,
-  STFADDLS = 7341,
-  STFADDS = 7342,
-  STFMAXD = 7343,
-  STFMAXH = 7344,
-  STFMAXLD = 7345,
-  STFMAXLH = 7346,
-  STFMAXLS = 7347,
-  STFMAXNMD = 7348,
-  STFMAXNMH = 7349,
-  STFMAXNMLD = 7350,
-  STFMAXNMLH = 7351,
-  STFMAXNMLS = 7352,
-  STFMAXNMS = 7353,
-  STFMAXS = 7354,
-  STFMIND = 7355,
-  STFMINH = 7356,
-  STFMINLD = 7357,
-  STFMINLH = 7358,
-  STFMINLS = 7359,
-  STFMINNMD = 7360,
-  STFMINNMH = 7361,
-  STFMINNMLD = 7362,
-  STFMINNMLH = 7363,
-  STFMINNMLS = 7364,
-  STFMINNMS = 7365,
-  STFMINS = 7366,
-  STGM = 7367,
-  STGPi = 7368,
-  STGPostIndex = 7369,
-  STGPpost = 7370,
-  STGPpre = 7371,
-  STGPreIndex = 7372,
-  STGi = 7373,
-  STILPW = 7374,
-  STILPWpre = 7375,
-  STILPX = 7376,
-  STILPXpre = 7377,
-  STL1 = 7378,
-  STLLRB = 7379,
-  STLLRH = 7380,
-  STLLRW = 7381,
-  STLLRX = 7382,
-  STLRB = 7383,
-  STLRH = 7384,
-  STLRW = 7385,
-  STLRWpre = 7386,
-  STLRX = 7387,
-  STLRXpre = 7388,
-  STLTXRW = 7389,
-  STLTXRX = 7390,
-  STLURBi = 7391,
-  STLURHi = 7392,
-  STLURWi = 7393,
-  STLURXi = 7394,
-  STLURbi = 7395,
-  STLURdi = 7396,
-  STLURhi = 7397,
-  STLURqi = 7398,
-  STLURsi = 7399,
-  STLXPW = 7400,
-  STLXPX = 7401,
-  STLXRB = 7402,
-  STLXRH = 7403,
-  STLXRW = 7404,
-  STLXRX = 7405,
-  STMOPA_M2ZZZI_BtoS = 7406,
-  STMOPA_M2ZZZI_HtoS = 7407,
-  STNPDi = 7408,
-  STNPQi = 7409,
-  STNPSi = 7410,
-  STNPWi = 7411,
-  STNPXi = 7412,
-  STNT1B_2Z = 7413,
-  STNT1B_2Z_IMM = 7414,
-  STNT1B_2Z_STRIDED = 7415,
-  STNT1B_2Z_STRIDED_IMM = 7416,
-  STNT1B_4Z = 7417,
-  STNT1B_4Z_IMM = 7418,
-  STNT1B_4Z_STRIDED = 7419,
-  STNT1B_4Z_STRIDED_IMM = 7420,
-  STNT1B_ZRI = 7421,
-  STNT1B_ZRR = 7422,
-  STNT1B_ZZR_D = 7423,
-  STNT1B_ZZR_S = 7424,
-  STNT1D_2Z = 7425,
-  STNT1D_2Z_IMM = 7426,
-  STNT1D_2Z_STRIDED = 7427,
-  STNT1D_2Z_STRIDED_IMM = 7428,
-  STNT1D_4Z = 7429,
-  STNT1D_4Z_IMM = 7430,
-  STNT1D_4Z_STRIDED = 7431,
-  STNT1D_4Z_STRIDED_IMM = 7432,
-  STNT1D_ZRI = 7433,
-  STNT1D_ZRR = 7434,
-  STNT1D_ZZR_D = 7435,
-  STNT1H_2Z = 7436,
-  STNT1H_2Z_IMM = 7437,
-  STNT1H_2Z_STRIDED = 7438,
-  STNT1H_2Z_STRIDED_IMM = 7439,
-  STNT1H_4Z = 7440,
-  STNT1H_4Z_IMM = 7441,
-  STNT1H_4Z_STRIDED = 7442,
-  STNT1H_4Z_STRIDED_IMM = 7443,
-  STNT1H_ZRI = 7444,
-  STNT1H_ZRR = 7445,
-  STNT1H_ZZR_D = 7446,
-  STNT1H_ZZR_S = 7447,
-  STNT1W_2Z = 7448,
-  STNT1W_2Z_IMM = 7449,
-  STNT1W_2Z_STRIDED = 7450,
-  STNT1W_2Z_STRIDED_IMM = 7451,
-  STNT1W_4Z = 7452,
-  STNT1W_4Z_IMM = 7453,
-  STNT1W_4Z_STRIDED = 7454,
-  STNT1W_4Z_STRIDED_IMM = 7455,
-  STNT1W_ZRI = 7456,
-  STNT1W_ZRR = 7457,
-  STNT1W_ZZR_D = 7458,
-  STNT1W_ZZR_S = 7459,
-  STPDi = 7460,
-  STPDpost = 7461,
-  STPDpre = 7462,
-  STPQi = 7463,
-  STPQpost = 7464,
-  STPQpre = 7465,
-  STPSi = 7466,
-  STPSpost = 7467,
-  STPSpre = 7468,
-  STPWi = 7469,
-  STPWpost = 7470,
-  STPWpre = 7471,
-  STPXi = 7472,
-  STPXpost = 7473,
-  STPXpre = 7474,
-  STRBBpost = 7475,
-  STRBBpre = 7476,
-  STRBBroW = 7477,
-  STRBBroX = 7478,
-  STRBBui = 7479,
-  STRBpost = 7480,
-  STRBpre = 7481,
-  STRBroW = 7482,
-  STRBroX = 7483,
-  STRBui = 7484,
-  STRDpost = 7485,
-  STRDpre = 7486,
-  STRDroW = 7487,
-  STRDroX = 7488,
-  STRDui = 7489,
-  STRHHpost = 7490,
-  STRHHpre = 7491,
-  STRHHroW = 7492,
-  STRHHroX = 7493,
-  STRHHui = 7494,
-  STRHpost = 7495,
-  STRHpre = 7496,
-  STRHroW = 7497,
-  STRHroX = 7498,
-  STRHui = 7499,
-  STRQpost = 7500,
-  STRQpre = 7501,
-  STRQroW = 7502,
-  STRQroX = 7503,
-  STRQui = 7504,
-  STRSpost = 7505,
-  STRSpre = 7506,
-  STRSroW = 7507,
-  STRSroX = 7508,
-  STRSui = 7509,
-  STRWpost = 7510,
-  STRWpre = 7511,
-  STRWroW = 7512,
-  STRWroX = 7513,
-  STRWui = 7514,
-  STRXpost = 7515,
-  STRXpre = 7516,
-  STRXroW = 7517,
-  STRXroX = 7518,
-  STRXui = 7519,
-  STR_PXI = 7520,
-  STR_TX = 7521,
-  STR_ZA = 7522,
-  STR_ZXI = 7523,
-  STSHH = 7524,
-  STTNPQi = 7525,
-  STTNPXi = 7526,
-  STTPQi = 7527,
-  STTPQpost = 7528,
-  STTPQpre = 7529,
-  STTPi = 7530,
-  STTPpost = 7531,
-  STTPpre = 7532,
-  STTRBi = 7533,
-  STTRHi = 7534,
-  STTRWi = 7535,
-  STTRXi = 7536,
-  STTXRWr = 7537,
-  STTXRXr = 7538,
-  STURBBi = 7539,
-  STURBi = 7540,
-  STURDi = 7541,
-  STURHHi = 7542,
-  STURHi = 7543,
-  STURQi = 7544,
-  STURSi = 7545,
-  STURWi = 7546,
-  STURXi = 7547,
-  STXPW = 7548,
-  STXPX = 7549,
-  STXRB = 7550,
-  STXRH = 7551,
-  STXRW = 7552,
-  STXRX = 7553,
-  STZ2GPostIndex = 7554,
-  STZ2GPreIndex = 7555,
-  STZ2Gi = 7556,
-  STZGM = 7557,
-  STZGPostIndex = 7558,
-  STZGPreIndex = 7559,
-  STZGi = 7560,
-  SUBG = 7561,
-  SUBHNB_ZZZ_B = 7562,
-  SUBHNB_ZZZ_H = 7563,
-  SUBHNB_ZZZ_S = 7564,
-  SUBHNT_ZZZ_B = 7565,
-  SUBHNT_ZZZ_H = 7566,
-  SUBHNT_ZZZ_S = 7567,
-  SUBHNv2i64_v2i32 = 7568,
-  SUBHNv2i64_v4i32 = 7569,
-  SUBHNv4i32_v4i16 = 7570,
-  SUBHNv4i32_v8i16 = 7571,
-  SUBHNv8i16_v16i8 = 7572,
-  SUBHNv8i16_v8i8 = 7573,
-  SUBP = 7574,
-  SUBPS = 7575,
-  SUBPT_shift = 7576,
-  SUBR_ZI_B = 7577,
-  SUBR_ZI_D = 7578,
-  SUBR_ZI_H = 7579,
-  SUBR_ZI_S = 7580,
-  SUBR_ZPmZ_B = 7581,
-  SUBR_ZPmZ_D = 7582,
-  SUBR_ZPmZ_H = 7583,
-  SUBR_ZPmZ_S = 7584,
-  SUBSWri = 7585,
-  SUBSWrs = 7586,
-  SUBSWrx = 7587,
-  SUBSXri = 7588,
-  SUBSXrs = 7589,
-  SUBSXrx = 7590,
-  SUBSXrx64 = 7591,
-  SUBWri = 7592,
-  SUBWrs = 7593,
-  SUBWrx = 7594,
-  SUBXri = 7595,
-  SUBXrs = 7596,
-  SUBXrx = 7597,
-  SUBXrx64 = 7598,
-  SUB_VG2_M2Z2Z_D = 7599,
-  SUB_VG2_M2Z2Z_S = 7600,
-  SUB_VG2_M2ZZ_D = 7601,
-  SUB_VG2_M2ZZ_S = 7602,
-  SUB_VG2_M2Z_D = 7603,
-  SUB_VG2_M2Z_S = 7604,
-  SUB_VG4_M4Z4Z_D = 7605,
-  SUB_VG4_M4Z4Z_S = 7606,
-  SUB_VG4_M4ZZ_D = 7607,
-  SUB_VG4_M4ZZ_S = 7608,
-  SUB_VG4_M4Z_D = 7609,
-  SUB_VG4_M4Z_S = 7610,
-  SUB_ZI_B = 7611,
-  SUB_ZI_D = 7612,
-  SUB_ZI_H = 7613,
-  SUB_ZI_S = 7614,
-  SUB_ZPmZ_B = 7615,
-  SUB_ZPmZ_CPA = 7616,
-  SUB_ZPmZ_D = 7617,
-  SUB_ZPmZ_H = 7618,
-  SUB_ZPmZ_S = 7619,
-  SUB_ZZZ_B = 7620,
-  SUB_ZZZ_CPA = 7621,
-  SUB_ZZZ_D = 7622,
-  SUB_ZZZ_H = 7623,
-  SUB_ZZZ_S = 7624,
-  SUBv16i8 = 7625,
-  SUBv1i64 = 7626,
-  SUBv2i32 = 7627,
-  SUBv2i64 = 7628,
-  SUBv4i16 = 7629,
-  SUBv4i32 = 7630,
-  SUBv8i16 = 7631,
-  SUBv8i8 = 7632,
-  SUDOT_VG2_M2ZZI_BToS = 7633,
-  SUDOT_VG2_M2ZZ_BToS = 7634,
-  SUDOT_VG4_M4ZZI_BToS = 7635,
-  SUDOT_VG4_M4ZZ_BToS = 7636,
-  SUDOT_ZZZI = 7637,
-  SUDOTlanev16i8 = 7638,
-  SUDOTlanev8i8 = 7639,
-  SUMLALL_MZZI_BtoS = 7640,
-  SUMLALL_VG2_M2ZZI_BtoS = 7641,
-  SUMLALL_VG2_M2ZZ_BtoS = 7642,
-  SUMLALL_VG4_M4ZZI_BtoS = 7643,
-  SUMLALL_VG4_M4ZZ_BtoS = 7644,
-  SUMOP4A_M2Z2Z_BToS = 7645,
-  SUMOP4A_M2Z2Z_HtoD = 7646,
-  SUMOP4A_M2ZZ_BToS = 7647,
-  SUMOP4A_M2ZZ_HtoD = 7648,
-  SUMOP4A_MZ2Z_BToS = 7649,
-  SUMOP4A_MZ2Z_HtoD = 7650,
-  SUMOP4A_MZZ_BToS = 7651,
-  SUMOP4A_MZZ_HtoD = 7652,
-  SUMOP4S_M2Z2Z_BToS = 7653,
-  SUMOP4S_M2Z2Z_HtoD = 7654,
-  SUMOP4S_M2ZZ_BToS = 7655,
-  SUMOP4S_M2ZZ_HtoD = 7656,
-  SUMOP4S_MZ2Z_BToS = 7657,
-  SUMOP4S_MZ2Z_HtoD = 7658,
-  SUMOP4S_MZZ_BToS = 7659,
-  SUMOP4S_MZZ_HtoD = 7660,
-  SUMOPA_MPPZZ_D = 7661,
-  SUMOPA_MPPZZ_S = 7662,
-  SUMOPS_MPPZZ_D = 7663,
-  SUMOPS_MPPZZ_S = 7664,
-  SUNPKHI_ZZ_D = 7665,
-  SUNPKHI_ZZ_H = 7666,
-  SUNPKHI_ZZ_S = 7667,
-  SUNPKLO_ZZ_D = 7668,
-  SUNPKLO_ZZ_H = 7669,
-  SUNPKLO_ZZ_S = 7670,
-  SUNPK_VG2_2ZZ_D = 7671,
-  SUNPK_VG2_2ZZ_H = 7672,
-  SUNPK_VG2_2ZZ_S = 7673,
-  SUNPK_VG4_4Z2Z_D = 7674,
-  SUNPK_VG4_4Z2Z_H = 7675,
-  SUNPK_VG4_4Z2Z_S = 7676,
-  SUQADD_ZPmZ_B = 7677,
-  SUQADD_ZPmZ_D = 7678,
-  SUQADD_ZPmZ_H = 7679,
-  SUQADD_ZPmZ_S = 7680,
-  SUQADDv16i8 = 7681,
-  SUQADDv1i16 = 7682,
-  SUQADDv1i32 = 7683,
-  SUQADDv1i64 = 7684,
-  SUQADDv1i8 = 7685,
-  SUQADDv2i32 = 7686,
-  SUQADDv2i64 = 7687,
-  SUQADDv4i16 = 7688,
-  SUQADDv4i32 = 7689,
-  SUQADDv8i16 = 7690,
-  SUQADDv8i8 = 7691,
-  SUTMOPA_M2ZZZI_BtoS = 7692,
-  SUVDOT_VG4_M4ZZI_BToS = 7693,
-  SVC = 7694,
-  SVDOT_VG2_M2ZZI_HtoS = 7695,
-  SVDOT_VG4_M4ZZI_BtoS = 7696,
-  SVDOT_VG4_M4ZZI_HtoD = 7697,
-  SWPAB = 7698,
-  SWPAH = 7699,
-  SWPALB = 7700,
-  SWPALH = 7701,
-  SWPALW = 7702,
-  SWPALX = 7703,
-  SWPAW = 7704,
-  SWPAX = 7705,
-  SWPB = 7706,
-  SWPH = 7707,
-  SWPLB = 7708,
-  SWPLH = 7709,
-  SWPLW = 7710,
-  SWPLX = 7711,
-  SWPP = 7712,
-  SWPPA = 7713,
-  SWPPAL = 7714,
-  SWPPL = 7715,
-  SWPTALW = 7716,
-  SWPTALX = 7717,
-  SWPTAW = 7718,
-  SWPTAX = 7719,
-  SWPTLW = 7720,
-  SWPTLX = 7721,
-  SWPTW = 7722,
-  SWPTX = 7723,
-  SWPW = 7724,
-  SWPX = 7725,
-  SXTB_ZPmZ_D = 7726,
-  SXTB_ZPmZ_H = 7727,
-  SXTB_ZPmZ_S = 7728,
-  SXTB_ZPzZ_D = 7729,
-  SXTB_ZPzZ_H = 7730,
-  SXTB_ZPzZ_S = 7731,
-  SXTH_ZPmZ_D = 7732,
-  SXTH_ZPmZ_S = 7733,
-  SXTH_ZPzZ_D = 7734,
-  SXTH_ZPzZ_S = 7735,
-  SXTW_ZPmZ_D = 7736,
-  SXTW_ZPzZ_D = 7737,
-  SYSLxt = 7738,
-  SYSPxt = 7739,
-  SYSPxt_XZR = 7740,
-  SYSxt = 7741,
-  TBLQ_ZZZ_B = 7742,
-  TBLQ_ZZZ_D = 7743,
-  TBLQ_ZZZ_H = 7744,
-  TBLQ_ZZZ_S = 7745,
-  TBL_ZZZZ_B = 7746,
-  TBL_ZZZZ_D = 7747,
-  TBL_ZZZZ_H = 7748,
-  TBL_ZZZZ_S = 7749,
-  TBL_ZZZ_B = 7750,
-  TBL_ZZZ_D = 7751,
-  TBL_ZZZ_H = 7752,
-  TBL_ZZZ_S = 7753,
-  TBLv16i8Four = 7754,
-  TBLv16i8One = 7755,
-  TBLv16i8Three = 7756,
-  TBLv16i8Two = 7757,
-  TBLv8i8Four = 7758,
-  TBLv8i8One = 7759,
-  TBLv8i8Three = 7760,
-  TBLv8i8Two = 7761,
-  TBNZW = 7762,
-  TBNZX = 7763,
-  TBXQ_ZZZ_B = 7764,
-  TBXQ_ZZZ_D = 7765,
-  TBXQ_ZZZ_H = 7766,
-  TBXQ_ZZZ_S = 7767,
-  TBX_ZZZ_B = 7768,
-  TBX_ZZZ_D = 7769,
-  TBX_ZZZ_H = 7770,
-  TBX_ZZZ_S = 7771,
-  TBXv16i8Four = 7772,
-  TBXv16i8One = 7773,
-  TBXv16i8Three = 7774,
-  TBXv16i8Two = 7775,
-  TBXv8i8Four = 7776,
-  TBXv8i8One = 7777,
-  TBXv8i8Three = 7778,
-  TBXv8i8Two = 7779,
-  TBZW = 7780,
-  TBZX = 7781,
-  TCANCEL = 7782,
-  TCOMMIT = 7783,
-  TRCIT = 7784,
-  TRN1_PPP_B = 7785,
-  TRN1_PPP_D = 7786,
-  TRN1_PPP_H = 7787,
-  TRN1_PPP_S = 7788,
-  TRN1_ZZZ_B = 7789,
-  TRN1_ZZZ_D = 7790,
-  TRN1_ZZZ_H = 7791,
-  TRN1_ZZZ_Q = 7792,
-  TRN1_ZZZ_S = 7793,
-  TRN1v16i8 = 7794,
-  TRN1v2i32 = 7795,
-  TRN1v2i64 = 7796,
-  TRN1v4i16 = 7797,
-  TRN1v4i32 = 7798,
-  TRN1v8i16 = 7799,
-  TRN1v8i8 = 7800,
-  TRN2_PPP_B = 7801,
-  TRN2_PPP_D = 7802,
-  TRN2_PPP_H = 7803,
-  TRN2_PPP_S = 7804,
-  TRN2_ZZZ_B = 7805,
-  TRN2_ZZZ_D = 7806,
-  TRN2_ZZZ_H = 7807,
-  TRN2_ZZZ_Q = 7808,
-  TRN2_ZZZ_S = 7809,
-  TRN2v16i8 = 7810,
-  TRN2v2i32 = 7811,
-  TRN2v2i64 = 7812,
-  TRN2v4i16 = 7813,
-  TRN2v4i32 = 7814,
-  TRN2v8i16 = 7815,
-  TRN2v8i8 = 7816,
-  TSB = 7817,
-  TSTART = 7818,
-  TTEST = 7819,
-  UABALB_ZZZ_D = 7820,
-  UABALB_ZZZ_H = 7821,
-  UABALB_ZZZ_S = 7822,
-  UABALT_ZZZ_D = 7823,
-  UABALT_ZZZ_H = 7824,
-  UABALT_ZZZ_S = 7825,
-  UABALv16i8_v8i16 = 7826,
-  UABALv2i32_v2i64 = 7827,
-  UABALv4i16_v4i32 = 7828,
-  UABALv4i32_v2i64 = 7829,
-  UABALv8i16_v4i32 = 7830,
-  UABALv8i8_v8i16 = 7831,
-  UABA_ZZZ_B = 7832,
-  UABA_ZZZ_D = 7833,
-  UABA_ZZZ_H = 7834,
-  UABA_ZZZ_S = 7835,
-  UABAv16i8 = 7836,
-  UABAv2i32 = 7837,
-  UABAv4i16 = 7838,
-  UABAv4i32 = 7839,
-  UABAv8i16 = 7840,
-  UABAv8i8 = 7841,
-  UABDLB_ZZZ_D = 7842,
-  UABDLB_ZZZ_H = 7843,
-  UABDLB_ZZZ_S = 7844,
-  UABDLT_ZZZ_D = 7845,
-  UABDLT_ZZZ_H = 7846,
-  UABDLT_ZZZ_S = 7847,
-  UABDLv16i8_v8i16 = 7848,
-  UABDLv2i32_v2i64 = 7849,
-  UABDLv4i16_v4i32 = 7850,
-  UABDLv4i32_v2i64 = 7851,
-  UABDLv8i16_v4i32 = 7852,
-  UABDLv8i8_v8i16 = 7853,
-  UABD_ZPmZ_B = 7854,
-  UABD_ZPmZ_D = 7855,
-  UABD_ZPmZ_H = 7856,
-  UABD_ZPmZ_S = 7857,
-  UABDv16i8 = 7858,
-  UABDv2i32 = 7859,
-  UABDv4i16 = 7860,
-  UABDv4i32 = 7861,
-  UABDv8i16 = 7862,
-  UABDv8i8 = 7863,
-  UADALP_ZPmZ_D = 7864,
-  UADALP_ZPmZ_H = 7865,
-  UADALP_ZPmZ_S = 7866,
-  UADALPv16i8_v8i16 = 7867,
-  UADALPv2i32_v1i64 = 7868,
-  UADALPv4i16_v2i32 = 7869,
-  UADALPv4i32_v2i64 = 7870,
-  UADALPv8i16_v4i32 = 7871,
-  UADALPv8i8_v4i16 = 7872,
-  UADDLB_ZZZ_D = 7873,
-  UADDLB_ZZZ_H = 7874,
-  UADDLB_ZZZ_S = 7875,
-  UADDLPv16i8_v8i16 = 7876,
-  UADDLPv2i32_v1i64 = 7877,
-  UADDLPv4i16_v2i32 = 7878,
-  UADDLPv4i32_v2i64 = 7879,
-  UADDLPv8i16_v4i32 = 7880,
-  UADDLPv8i8_v4i16 = 7881,
-  UADDLT_ZZZ_D = 7882,
-  UADDLT_ZZZ_H = 7883,
-  UADDLT_ZZZ_S = 7884,
-  UADDLVv16i8v = 7885,
-  UADDLVv4i16v = 7886,
-  UADDLVv4i32v = 7887,
-  UADDLVv8i16v = 7888,
-  UADDLVv8i8v = 7889,
-  UADDLv16i8_v8i16 = 7890,
-  UADDLv2i32_v2i64 = 7891,
-  UADDLv4i16_v4i32 = 7892,
-  UADDLv4i32_v2i64 = 7893,
-  UADDLv8i16_v4i32 = 7894,
-  UADDLv8i8_v8i16 = 7895,
-  UADDV_VPZ_B = 7896,
-  UADDV_VPZ_D = 7897,
-  UADDV_VPZ_H = 7898,
-  UADDV_VPZ_S = 7899,
-  UADDWB_ZZZ_D = 7900,
-  UADDWB_ZZZ_H = 7901,
-  UADDWB_ZZZ_S = 7902,
-  UADDWT_ZZZ_D = 7903,
-  UADDWT_ZZZ_H = 7904,
-  UADDWT_ZZZ_S = 7905,
-  UADDWv16i8_v8i16 = 7906,
-  UADDWv2i32_v2i64 = 7907,
-  UADDWv4i16_v4i32 = 7908,
-  UADDWv4i32_v2i64 = 7909,
-  UADDWv8i16_v4i32 = 7910,
-  UADDWv8i8_v8i16 = 7911,
-  UBFMWri = 7912,
-  UBFMXri = 7913,
-  UCLAMP_VG2_2Z2Z_B = 7914,
-  UCLAMP_VG2_2Z2Z_D = 7915,
-  UCLAMP_VG2_2Z2Z_H = 7916,
-  UCLAMP_VG2_2Z2Z_S = 7917,
-  UCLAMP_VG4_4Z4Z_B = 7918,
-  UCLAMP_VG4_4Z4Z_D = 7919,
-  UCLAMP_VG4_4Z4Z_H = 7920,
-  UCLAMP_VG4_4Z4Z_S = 7921,
-  UCLAMP_ZZZ_B = 7922,
-  UCLAMP_ZZZ_D = 7923,
-  UCLAMP_ZZZ_H = 7924,
-  UCLAMP_ZZZ_S = 7925,
-  UCVTFDSr = 7926,
-  UCVTFHDr = 7927,
-  UCVTFHSr = 7928,
-  UCVTFSDr = 7929,
-  UCVTFSWDri = 7930,
-  UCVTFSWHri = 7931,
-  UCVTFSWSri = 7932,
-  UCVTFSXDri = 7933,
-  UCVTFSXHri = 7934,
-  UCVTFSXSri = 7935,
-  UCVTFUWDri = 7936,
-  UCVTFUWHri = 7937,
-  UCVTFUWSri = 7938,
-  UCVTFUXDri = 7939,
-  UCVTFUXHri = 7940,
-  UCVTFUXSri = 7941,
-  UCVTF_2Z2Z_StoS = 7942,
-  UCVTF_4Z4Z_StoS = 7943,
-  UCVTF_ZPmZ_DtoD = 7944,
-  UCVTF_ZPmZ_DtoH = 7945,
-  UCVTF_ZPmZ_DtoS = 7946,
-  UCVTF_ZPmZ_HtoH = 7947,
-  UCVTF_ZPmZ_StoD = 7948,
-  UCVTF_ZPmZ_StoH = 7949,
-  UCVTF_ZPmZ_StoS = 7950,
-  UCVTF_ZPzZ_DtoD = 7951,
-  UCVTF_ZPzZ_DtoH = 7952,
-  UCVTF_ZPzZ_DtoS = 7953,
-  UCVTF_ZPzZ_HtoH = 7954,
-  UCVTF_ZPzZ_StoD = 7955,
-  UCVTF_ZPzZ_StoH = 7956,
-  UCVTF_ZPzZ_StoS = 7957,
-  UCVTFd = 7958,
-  UCVTFh = 7959,
-  UCVTFs = 7960,
-  UCVTFv1i16 = 7961,
-  UCVTFv1i32 = 7962,
-  UCVTFv1i64 = 7963,
-  UCVTFv2f32 = 7964,
-  UCVTFv2f64 = 7965,
-  UCVTFv2i32_shift = 7966,
-  UCVTFv2i64_shift = 7967,
-  UCVTFv4f16 = 7968,
-  UCVTFv4f32 = 7969,
-  UCVTFv4i16_shift = 7970,
-  UCVTFv4i32_shift = 7971,
-  UCVTFv8f16 = 7972,
-  UCVTFv8i16_shift = 7973,
-  UDF = 7974,
-  UDIVR_ZPmZ_D = 7975,
-  UDIVR_ZPmZ_S = 7976,
-  UDIVWr = 7977,
-  UDIVXr = 7978,
-  UDIV_ZPmZ_D = 7979,
-  UDIV_ZPmZ_S = 7980,
-  UDOT_VG2_M2Z2Z_BtoS = 7981,
-  UDOT_VG2_M2Z2Z_HtoD = 7982,
-  UDOT_VG2_M2Z2Z_HtoS = 7983,
-  UDOT_VG2_M2ZZI_BToS = 7984,
-  UDOT_VG2_M2ZZI_HToS = 7985,
-  UDOT_VG2_M2ZZI_HtoD = 7986,
-  UDOT_VG2_M2ZZ_BtoS = 7987,
-  UDOT_VG2_M2ZZ_HtoD = 7988,
-  UDOT_VG2_M2ZZ_HtoS = 7989,
-  UDOT_VG4_M4Z4Z_BtoS = 7990,
-  UDOT_VG4_M4Z4Z_HtoD = 7991,
-  UDOT_VG4_M4Z4Z_HtoS = 7992,
-  UDOT_VG4_M4ZZI_BtoS = 7993,
-  UDOT_VG4_M4ZZI_HToS = 7994,
-  UDOT_VG4_M4ZZI_HtoD = 7995,
-  UDOT_VG4_M4ZZ_BtoS = 7996,
-  UDOT_VG4_M4ZZ_HtoD = 7997,
-  UDOT_VG4_M4ZZ_HtoS = 7998,
-  UDOT_ZZZI_D = 7999,
-  UDOT_ZZZI_HtoS = 8000,
-  UDOT_ZZZI_S = 8001,
-  UDOT_ZZZ_D = 8002,
-  UDOT_ZZZ_HtoS = 8003,
-  UDOT_ZZZ_S = 8004,
-  UDOTlanev16i8 = 8005,
-  UDOTlanev8i8 = 8006,
-  UDOTv16i8 = 8007,
-  UDOTv8i8 = 8008,
-  UHADD_ZPmZ_B = 8009,
-  UHADD_ZPmZ_D = 8010,
-  UHADD_ZPmZ_H = 8011,
-  UHADD_ZPmZ_S = 8012,
-  UHADDv16i8 = 8013,
-  UHADDv2i32 = 8014,
-  UHADDv4i16 = 8015,
-  UHADDv4i32 = 8016,
-  UHADDv8i16 = 8017,
-  UHADDv8i8 = 8018,
-  UHSUBR_ZPmZ_B = 8019,
-  UHSUBR_ZPmZ_D = 8020,
-  UHSUBR_ZPmZ_H = 8021,
-  UHSUBR_ZPmZ_S = 8022,
-  UHSUB_ZPmZ_B = 8023,
-  UHSUB_ZPmZ_D = 8024,
-  UHSUB_ZPmZ_H = 8025,
-  UHSUB_ZPmZ_S = 8026,
-  UHSUBv16i8 = 8027,
-  UHSUBv2i32 = 8028,
-  UHSUBv4i16 = 8029,
-  UHSUBv4i32 = 8030,
-  UHSUBv8i16 = 8031,
-  UHSUBv8i8 = 8032,
-  UMADDLrrr = 8033,
-  UMAXP_ZPmZ_B = 8034,
-  UMAXP_ZPmZ_D = 8035,
-  UMAXP_ZPmZ_H = 8036,
-  UMAXP_ZPmZ_S = 8037,
-  UMAXPv16i8 = 8038,
-  UMAXPv2i32 = 8039,
-  UMAXPv4i16 = 8040,
-  UMAXPv4i32 = 8041,
-  UMAXPv8i16 = 8042,
-  UMAXPv8i8 = 8043,
-  UMAXQV_VPZ_B = 8044,
-  UMAXQV_VPZ_D = 8045,
-  UMAXQV_VPZ_H = 8046,
-  UMAXQV_VPZ_S = 8047,
-  UMAXV_VPZ_B = 8048,
-  UMAXV_VPZ_D = 8049,
-  UMAXV_VPZ_H = 8050,
-  UMAXV_VPZ_S = 8051,
-  UMAXVv16i8v = 8052,
-  UMAXVv4i16v = 8053,
-  UMAXVv4i32v = 8054,
-  UMAXVv8i16v = 8055,
-  UMAXVv8i8v = 8056,
-  UMAXWri = 8057,
-  UMAXWrr = 8058,
-  UMAXXri = 8059,
-  UMAXXrr = 8060,
-  UMAX_VG2_2Z2Z_B = 8061,
-  UMAX_VG2_2Z2Z_D = 8062,
-  UMAX_VG2_2Z2Z_H = 8063,
-  UMAX_VG2_2Z2Z_S = 8064,
-  UMAX_VG2_2ZZ_B = 8065,
-  UMAX_VG2_2ZZ_D = 8066,
-  UMAX_VG2_2ZZ_H = 8067,
-  UMAX_VG2_2ZZ_S = 8068,
-  UMAX_VG4_4Z4Z_B = 8069,
-  UMAX_VG4_4Z4Z_D = 8070,
-  UMAX_VG4_4Z4Z_H = 8071,
-  UMAX_VG4_4Z4Z_S = 8072,
-  UMAX_VG4_4ZZ_B = 8073,
-  UMAX_VG4_4ZZ_D = 8074,
-  UMAX_VG4_4ZZ_H = 8075,
-  UMAX_VG4_4ZZ_S = 8076,
-  UMAX_ZI_B = 8077,
-  UMAX_ZI_D = 8078,
-  UMAX_ZI_H = 8079,
-  UMAX_ZI_S = 8080,
-  UMAX_ZPmZ_B = 8081,
-  UMAX_ZPmZ_D = 8082,
-  UMAX_ZPmZ_H = 8083,
-  UMAX_ZPmZ_S = 8084,
-  UMAXv16i8 = 8085,
-  UMAXv2i32 = 8086,
-  UMAXv4i16 = 8087,
-  UMAXv4i32 = 8088,
-  UMAXv8i16 = 8089,
-  UMAXv8i8 = 8090,
-  UMINP_ZPmZ_B = 8091,
-  UMINP_ZPmZ_D = 8092,
-  UMINP_ZPmZ_H = 8093,
-  UMINP_ZPmZ_S = 8094,
-  UMINPv16i8 = 8095,
-  UMINPv2i32 = 8096,
-  UMINPv4i16 = 8097,
-  UMINPv4i32 = 8098,
-  UMINPv8i16 = 8099,
-  UMINPv8i8 = 8100,
-  UMINQV_VPZ_B = 8101,
-  UMINQV_VPZ_D = 8102,
-  UMINQV_VPZ_H = 8103,
-  UMINQV_VPZ_S = 8104,
-  UMINV_VPZ_B = 8105,
-  UMINV_VPZ_D = 8106,
-  UMINV_VPZ_H = 8107,
-  UMINV_VPZ_S = 8108,
-  UMINVv16i8v = 8109,
-  UMINVv4i16v = 8110,
-  UMINVv4i32v = 8111,
-  UMINVv8i16v = 8112,
-  UMINVv8i8v = 8113,
-  UMINWri = 8114,
-  UMINWrr = 8115,
-  UMINXri = 8116,
-  UMINXrr = 8117,
-  UMIN_VG2_2Z2Z_B = 8118,
-  UMIN_VG2_2Z2Z_D = 8119,
-  UMIN_VG2_2Z2Z_H = 8120,
-  UMIN_VG2_2Z2Z_S = 8121,
-  UMIN_VG2_2ZZ_B = 8122,
-  UMIN_VG2_2ZZ_D = 8123,
-  UMIN_VG2_2ZZ_H = 8124,
-  UMIN_VG2_2ZZ_S = 8125,
-  UMIN_VG4_4Z4Z_B = 8126,
-  UMIN_VG4_4Z4Z_D = 8127,
-  UMIN_VG4_4Z4Z_H = 8128,
-  UMIN_VG4_4Z4Z_S = 8129,
-  UMIN_VG4_4ZZ_B = 8130,
-  UMIN_VG4_4ZZ_D = 8131,
-  UMIN_VG4_4ZZ_H = 8132,
-  UMIN_VG4_4ZZ_S = 8133,
-  UMIN_ZI_B = 8134,
-  UMIN_ZI_D = 8135,
-  UMIN_ZI_H = 8136,
-  UMIN_ZI_S = 8137,
-  UMIN_ZPmZ_B = 8138,
-  UMIN_ZPmZ_D = 8139,
-  UMIN_ZPmZ_H = 8140,
-  UMIN_ZPmZ_S = 8141,
-  UMINv16i8 = 8142,
-  UMINv2i32 = 8143,
-  UMINv4i16 = 8144,
-  UMINv4i32 = 8145,
-  UMINv8i16 = 8146,
-  UMINv8i8 = 8147,
-  UMLALB_ZZZI_D = 8148,
-  UMLALB_ZZZI_S = 8149,
-  UMLALB_ZZZ_D = 8150,
-  UMLALB_ZZZ_H = 8151,
-  UMLALB_ZZZ_S = 8152,
-  UMLALL_MZZI_BtoS = 8153,
-  UMLALL_MZZI_HtoD = 8154,
-  UMLALL_MZZ_BtoS = 8155,
-  UMLALL_MZZ_HtoD = 8156,
-  UMLALL_VG2_M2Z2Z_BtoS = 8157,
-  UMLALL_VG2_M2Z2Z_HtoD = 8158,
-  UMLALL_VG2_M2ZZI_BtoS = 8159,
-  UMLALL_VG2_M2ZZI_HtoD = 8160,
-  UMLALL_VG2_M2ZZ_BtoS = 8161,
-  UMLALL_VG2_M2ZZ_HtoD = 8162,
-  UMLALL_VG4_M4Z4Z_BtoS = 8163,
-  UMLALL_VG4_M4Z4Z_HtoD = 8164,
-  UMLALL_VG4_M4ZZI_BtoS = 8165,
-  UMLALL_VG4_M4ZZI_HtoD = 8166,
-  UMLALL_VG4_M4ZZ_BtoS = 8167,
-  UMLALL_VG4_M4ZZ_HtoD = 8168,
-  UMLALT_ZZZI_D = 8169,
-  UMLALT_ZZZI_S = 8170,
-  UMLALT_ZZZ_D = 8171,
-  UMLALT_ZZZ_H = 8172,
-  UMLALT_ZZZ_S = 8173,
-  UMLAL_MZZI_HtoS = 8174,
-  UMLAL_MZZ_HtoS = 8175,
-  UMLAL_VG2_M2Z2Z_HtoS = 8176,
-  UMLAL_VG2_M2ZZI_S = 8177,
-  UMLAL_VG2_M2ZZ_HtoS = 8178,
-  UMLAL_VG4_M4Z4Z_HtoS = 8179,
-  UMLAL_VG4_M4ZZI_HtoS = 8180,
-  UMLAL_VG4_M4ZZ_HtoS = 8181,
-  UMLALv16i8_v8i16 = 8182,
-  UMLALv2i32_indexed = 8183,
-  UMLALv2i32_v2i64 = 8184,
-  UMLALv4i16_indexed = 8185,
-  UMLALv4i16_v4i32 = 8186,
-  UMLALv4i32_indexed = 8187,
-  UMLALv4i32_v2i64 = 8188,
-  UMLALv8i16_indexed = 8189,
-  UMLALv8i16_v4i32 = 8190,
-  UMLALv8i8_v8i16 = 8191,
-  UMLSLB_ZZZI_D = 8192,
-  UMLSLB_ZZZI_S = 8193,
-  UMLSLB_ZZZ_D = 8194,
-  UMLSLB_ZZZ_H = 8195,
-  UMLSLB_ZZZ_S = 8196,
-  UMLSLL_MZZI_BtoS = 8197,
-  UMLSLL_MZZI_HtoD = 8198,
-  UMLSLL_MZZ_BtoS = 8199,
-  UMLSLL_MZZ_HtoD = 8200,
-  UMLSLL_VG2_M2Z2Z_BtoS = 8201,
-  UMLSLL_VG2_M2Z2Z_HtoD = 8202,
-  UMLSLL_VG2_M2ZZI_BtoS = 8203,
-  UMLSLL_VG2_M2ZZI_HtoD = 8204,
-  UMLSLL_VG2_M2ZZ_BtoS = 8205,
-  UMLSLL_VG2_M2ZZ_HtoD = 8206,
-  UMLSLL_VG4_M4Z4Z_BtoS = 8207,
-  UMLSLL_VG4_M4Z4Z_HtoD = 8208,
-  UMLSLL_VG4_M4ZZI_BtoS = 8209,
-  UMLSLL_VG4_M4ZZI_HtoD = 8210,
-  UMLSLL_VG4_M4ZZ_BtoS = 8211,
-  UMLSLL_VG4_M4ZZ_HtoD = 8212,
-  UMLSLT_ZZZI_D = 8213,
-  UMLSLT_ZZZI_S = 8214,
-  UMLSLT_ZZZ_D = 8215,
-  UMLSLT_ZZZ_H = 8216,
-  UMLSLT_ZZZ_S = 8217,
-  UMLSL_MZZI_HtoS = 8218,
-  UMLSL_MZZ_HtoS = 8219,
-  UMLSL_VG2_M2Z2Z_HtoS = 8220,
-  UMLSL_VG2_M2ZZI_S = 8221,
-  UMLSL_VG2_M2ZZ_HtoS = 8222,
-  UMLSL_VG4_M4Z4Z_HtoS = 8223,
-  UMLSL_VG4_M4ZZI_HtoS = 8224,
-  UMLSL_VG4_M4ZZ_HtoS = 8225,
-  UMLSLv16i8_v8i16 = 8226,
-  UMLSLv2i32_indexed = 8227,
-  UMLSLv2i32_v2i64 = 8228,
-  UMLSLv4i16_indexed = 8229,
-  UMLSLv4i16_v4i32 = 8230,
-  UMLSLv4i32_indexed = 8231,
-  UMLSLv4i32_v2i64 = 8232,
-  UMLSLv8i16_indexed = 8233,
-  UMLSLv8i16_v4i32 = 8234,
-  UMLSLv8i8_v8i16 = 8235,
-  UMMLA = 8236,
-  UMMLA_ZZZ = 8237,
-  UMOP4A_M2Z2Z_BToS = 8238,
-  UMOP4A_M2Z2Z_HToS = 8239,
-  UMOP4A_M2Z2Z_HtoD = 8240,
-  UMOP4A_M2ZZ_BToS = 8241,
-  UMOP4A_M2ZZ_HToS = 8242,
-  UMOP4A_M2ZZ_HtoD = 8243,
-  UMOP4A_MZ2Z_BToS = 8244,
-  UMOP4A_MZ2Z_HToS = 8245,
-  UMOP4A_MZ2Z_HtoD = 8246,
-  UMOP4A_MZZ_BToS = 8247,
-  UMOP4A_MZZ_HToS = 8248,
-  UMOP4A_MZZ_HtoD = 8249,
-  UMOP4S_M2Z2Z_BToS = 8250,
-  UMOP4S_M2Z2Z_HToS = 8251,
-  UMOP4S_M2Z2Z_HtoD = 8252,
-  UMOP4S_M2ZZ_BToS = 8253,
-  UMOP4S_M2ZZ_HToS = 8254,
-  UMOP4S_M2ZZ_HtoD = 8255,
-  UMOP4S_MZ2Z_BToS = 8256,
-  UMOP4S_MZ2Z_HToS = 8257,
-  UMOP4S_MZ2Z_HtoD = 8258,
-  UMOP4S_MZZ_BToS = 8259,
-  UMOP4S_MZZ_HToS = 8260,
-  UMOP4S_MZZ_HtoD = 8261,
-  UMOPA_MPPZZ_D = 8262,
-  UMOPA_MPPZZ_HtoS = 8263,
-  UMOPA_MPPZZ_S = 8264,
-  UMOPS_MPPZZ_D = 8265,
-  UMOPS_MPPZZ_HtoS = 8266,
-  UMOPS_MPPZZ_S = 8267,
-  UMOVvi16 = 8268,
-  UMOVvi16_idx0 = 8269,
-  UMOVvi32 = 8270,
-  UMOVvi32_idx0 = 8271,
-  UMOVvi64 = 8272,
-  UMOVvi64_idx0 = 8273,
-  UMOVvi8 = 8274,
-  UMOVvi8_idx0 = 8275,
-  UMSUBLrrr = 8276,
-  UMULH_ZPmZ_B = 8277,
-  UMULH_ZPmZ_D = 8278,
-  UMULH_ZPmZ_H = 8279,
-  UMULH_ZPmZ_S = 8280,
-  UMULH_ZZZ_B = 8281,
-  UMULH_ZZZ_D = 8282,
-  UMULH_ZZZ_H = 8283,
-  UMULH_ZZZ_S = 8284,
-  UMULHrr = 8285,
-  UMULLB_ZZZI_D = 8286,
-  UMULLB_ZZZI_S = 8287,
-  UMULLB_ZZZ_D = 8288,
-  UMULLB_ZZZ_H = 8289,
-  UMULLB_ZZZ_S = 8290,
-  UMULLT_ZZZI_D = 8291,
-  UMULLT_ZZZI_S = 8292,
-  UMULLT_ZZZ_D = 8293,
-  UMULLT_ZZZ_H = 8294,
-  UMULLT_ZZZ_S = 8295,
-  UMULLv16i8_v8i16 = 8296,
-  UMULLv2i32_indexed = 8297,
-  UMULLv2i32_v2i64 = 8298,
-  UMULLv4i16_indexed = 8299,
-  UMULLv4i16_v4i32 = 8300,
-  UMULLv4i32_indexed = 8301,
-  UMULLv4i32_v2i64 = 8302,
-  UMULLv8i16_indexed = 8303,
-  UMULLv8i16_v4i32 = 8304,
-  UMULLv8i8_v8i16 = 8305,
-  UQADD_ZI_B = 8306,
-  UQADD_ZI_D = 8307,
-  UQADD_ZI_H = 8308,
-  UQADD_ZI_S = 8309,
-  UQADD_ZPmZ_B = 8310,
-  UQADD_ZPmZ_D = 8311,
-  UQADD_ZPmZ_H = 8312,
-  UQADD_ZPmZ_S = 8313,
-  UQADD_ZZZ_B = 8314,
-  UQADD_ZZZ_D = 8315,
-  UQADD_ZZZ_H = 8316,
-  UQADD_ZZZ_S = 8317,
-  UQADDv16i8 = 8318,
-  UQADDv1i16 = 8319,
-  UQADDv1i32 = 8320,
-  UQADDv1i64 = 8321,
-  UQADDv1i8 = 8322,
-  UQADDv2i32 = 8323,
-  UQADDv2i64 = 8324,
-  UQADDv4i16 = 8325,
-  UQADDv4i32 = 8326,
-  UQADDv8i16 = 8327,
-  UQADDv8i8 = 8328,
-  UQCVTN_Z2Z_StoH = 8329,
-  UQCVTN_Z4Z_DtoH = 8330,
-  UQCVTN_Z4Z_StoB = 8331,
-  UQCVT_Z2Z_StoH = 8332,
-  UQCVT_Z4Z_DtoH = 8333,
-  UQCVT_Z4Z_StoB = 8334,
-  UQDECB_WPiI = 8335,
-  UQDECB_XPiI = 8336,
-  UQDECD_WPiI = 8337,
-  UQDECD_XPiI = 8338,
-  UQDECD_ZPiI = 8339,
-  UQDECH_WPiI = 8340,
-  UQDECH_XPiI = 8341,
-  UQDECH_ZPiI = 8342,
-  UQDECP_WP_B = 8343,
-  UQDECP_WP_D = 8344,
-  UQDECP_WP_H = 8345,
-  UQDECP_WP_S = 8346,
-  UQDECP_XP_B = 8347,
-  UQDECP_XP_D = 8348,
-  UQDECP_XP_H = 8349,
-  UQDECP_XP_S = 8350,
-  UQDECP_ZP_D = 8351,
-  UQDECP_ZP_H = 8352,
-  UQDECP_ZP_S = 8353,
-  UQDECW_WPiI = 8354,
-  UQDECW_XPiI = 8355,
-  UQDECW_ZPiI = 8356,
-  UQINCB_WPiI = 8357,
-  UQINCB_XPiI = 8358,
-  UQINCD_WPiI = 8359,
-  UQINCD_XPiI = 8360,
-  UQINCD_ZPiI = 8361,
-  UQINCH_WPiI = 8362,
-  UQINCH_XPiI = 8363,
-  UQINCH_ZPiI = 8364,
-  UQINCP_WP_B = 8365,
-  UQINCP_WP_D = 8366,
-  UQINCP_WP_H = 8367,
-  UQINCP_WP_S = 8368,
-  UQINCP_XP_B = 8369,
-  UQINCP_XP_D = 8370,
-  UQINCP_XP_H = 8371,
-  UQINCP_XP_S = 8372,
-  UQINCP_ZP_D = 8373,
-  UQINCP_ZP_H = 8374,
-  UQINCP_ZP_S = 8375,
-  UQINCW_WPiI = 8376,
-  UQINCW_XPiI = 8377,
-  UQINCW_ZPiI = 8378,
-  UQRSHLR_ZPmZ_B = 8379,
-  UQRSHLR_ZPmZ_D = 8380,
-  UQRSHLR_ZPmZ_H = 8381,
-  UQRSHLR_ZPmZ_S = 8382,
-  UQRSHL_ZPmZ_B = 8383,
-  UQRSHL_ZPmZ_D = 8384,
-  UQRSHL_ZPmZ_H = 8385,
-  UQRSHL_ZPmZ_S = 8386,
-  UQRSHLv16i8 = 8387,
-  UQRSHLv1i16 = 8388,
-  UQRSHLv1i32 = 8389,
-  UQRSHLv1i64 = 8390,
-  UQRSHLv1i8 = 8391,
-  UQRSHLv2i32 = 8392,
-  UQRSHLv2i64 = 8393,
-  UQRSHLv4i16 = 8394,
-  UQRSHLv4i32 = 8395,
-  UQRSHLv8i16 = 8396,
-  UQRSHLv8i8 = 8397,
-  UQRSHRNB_ZZI_B = 8398,
-  UQRSHRNB_ZZI_H = 8399,
-  UQRSHRNB_ZZI_S = 8400,
-  UQRSHRNT_ZZI_B = 8401,
-  UQRSHRNT_ZZI_H = 8402,
-  UQRSHRNT_ZZI_S = 8403,
-  UQRSHRN_VG4_Z4ZI_B = 8404,
-  UQRSHRN_VG4_Z4ZI_H = 8405,
-  UQRSHRN_Z2ZI_StoH = 8406,
-  UQRSHRNb = 8407,
-  UQRSHRNh = 8408,
-  UQRSHRNs = 8409,
-  UQRSHRNv16i8_shift = 8410,
-  UQRSHRNv2i32_shift = 8411,
-  UQRSHRNv4i16_shift = 8412,
-  UQRSHRNv4i32_shift = 8413,
-  UQRSHRNv8i16_shift = 8414,
-  UQRSHRNv8i8_shift = 8415,
-  UQRSHR_VG2_Z2ZI_H = 8416,
-  UQRSHR_VG4_Z4ZI_B = 8417,
-  UQRSHR_VG4_Z4ZI_H = 8418,
-  UQSHLR_ZPmZ_B = 8419,
-  UQSHLR_ZPmZ_D = 8420,
-  UQSHLR_ZPmZ_H = 8421,
-  UQSHLR_ZPmZ_S = 8422,
-  UQSHL_ZPmI_B = 8423,
-  UQSHL_ZPmI_D = 8424,
-  UQSHL_ZPmI_H = 8425,
-  UQSHL_ZPmI_S = 8426,
-  UQSHL_ZPmZ_B = 8427,
-  UQSHL_ZPmZ_D = 8428,
-  UQSHL_ZPmZ_H = 8429,
-  UQSHL_ZPmZ_S = 8430,
-  UQSHLb = 8431,
-  UQSHLd = 8432,
-  UQSHLh = 8433,
-  UQSHLs = 8434,
-  UQSHLv16i8 = 8435,
-  UQSHLv16i8_shift = 8436,
-  UQSHLv1i16 = 8437,
-  UQSHLv1i32 = 8438,
-  UQSHLv1i64 = 8439,
-  UQSHLv1i8 = 8440,
-  UQSHLv2i32 = 8441,
-  UQSHLv2i32_shift = 8442,
-  UQSHLv2i64 = 8443,
-  UQSHLv2i64_shift = 8444,
-  UQSHLv4i16 = 8445,
-  UQSHLv4i16_shift = 8446,
-  UQSHLv4i32 = 8447,
-  UQSHLv4i32_shift = 8448,
-  UQSHLv8i16 = 8449,
-  UQSHLv8i16_shift = 8450,
-  UQSHLv8i8 = 8451,
-  UQSHLv8i8_shift = 8452,
-  UQSHRNB_ZZI_B = 8453,
-  UQSHRNB_ZZI_H = 8454,
-  UQSHRNB_ZZI_S = 8455,
-  UQSHRNT_ZZI_B = 8456,
-  UQSHRNT_ZZI_H = 8457,
-  UQSHRNT_ZZI_S = 8458,
-  UQSHRNb = 8459,
-  UQSHRNh = 8460,
-  UQSHRNs = 8461,
-  UQSHRNv16i8_shift = 8462,
-  UQSHRNv2i32_shift = 8463,
-  UQSHRNv4i16_shift = 8464,
-  UQSHRNv4i32_shift = 8465,
-  UQSHRNv8i16_shift = 8466,
-  UQSHRNv8i8_shift = 8467,
-  UQSUBR_ZPmZ_B = 8468,
-  UQSUBR_ZPmZ_D = 8469,
-  UQSUBR_ZPmZ_H = 8470,
-  UQSUBR_ZPmZ_S = 8471,
-  UQSUB_ZI_B = 8472,
-  UQSUB_ZI_D = 8473,
-  UQSUB_ZI_H = 8474,
-  UQSUB_ZI_S = 8475,
-  UQSUB_ZPmZ_B = 8476,
-  UQSUB_ZPmZ_D = 8477,
-  UQSUB_ZPmZ_H = 8478,
-  UQSUB_ZPmZ_S = 8479,
-  UQSUB_ZZZ_B = 8480,
-  UQSUB_ZZZ_D = 8481,
-  UQSUB_ZZZ_H = 8482,
-  UQSUB_ZZZ_S = 8483,
-  UQSUBv16i8 = 8484,
-  UQSUBv1i16 = 8485,
-  UQSUBv1i32 = 8486,
-  UQSUBv1i64 = 8487,
-  UQSUBv1i8 = 8488,
-  UQSUBv2i32 = 8489,
-  UQSUBv2i64 = 8490,
-  UQSUBv4i16 = 8491,
-  UQSUBv4i32 = 8492,
-  UQSUBv8i16 = 8493,
-  UQSUBv8i8 = 8494,
-  UQXTNB_ZZ_B = 8495,
-  UQXTNB_ZZ_H = 8496,
-  UQXTNB_ZZ_S = 8497,
-  UQXTNT_ZZ_B = 8498,
-  UQXTNT_ZZ_H = 8499,
-  UQXTNT_ZZ_S = 8500,
-  UQXTNv16i8 = 8501,
-  UQXTNv1i16 = 8502,
-  UQXTNv1i32 = 8503,
-  UQXTNv1i8 = 8504,
-  UQXTNv2i32 = 8505,
-  UQXTNv4i16 = 8506,
-  UQXTNv4i32 = 8507,
-  UQXTNv8i16 = 8508,
-  UQXTNv8i8 = 8509,
-  URECPE_ZPmZ_S = 8510,
-  URECPE_ZPzZ_S = 8511,
-  URECPEv2i32 = 8512,
-  URECPEv4i32 = 8513,
-  URHADD_ZPmZ_B = 8514,
-  URHADD_ZPmZ_D = 8515,
-  URHADD_ZPmZ_H = 8516,
-  URHADD_ZPmZ_S = 8517,
-  URHADDv16i8 = 8518,
-  URHADDv2i32 = 8519,
-  URHADDv4i16 = 8520,
-  URHADDv4i32 = 8521,
-  URHADDv8i16 = 8522,
-  URHADDv8i8 = 8523,
-  URSHLR_ZPmZ_B = 8524,
-  URSHLR_ZPmZ_D = 8525,
-  URSHLR_ZPmZ_H = 8526,
-  URSHLR_ZPmZ_S = 8527,
-  URSHL_VG2_2Z2Z_B = 8528,
-  URSHL_VG2_2Z2Z_D = 8529,
-  URSHL_VG2_2Z2Z_H = 8530,
-  URSHL_VG2_2Z2Z_S = 8531,
-  URSHL_VG2_2ZZ_B = 8532,
-  URSHL_VG2_2ZZ_D = 8533,
-  URSHL_VG2_2ZZ_H = 8534,
-  URSHL_VG2_2ZZ_S = 8535,
-  URSHL_VG4_4Z4Z_B = 8536,
-  URSHL_VG4_4Z4Z_D = 8537,
-  URSHL_VG4_4Z4Z_H = 8538,
-  URSHL_VG4_4Z4Z_S = 8539,
-  URSHL_VG4_4ZZ_B = 8540,
-  URSHL_VG4_4ZZ_D = 8541,
-  URSHL_VG4_4ZZ_H = 8542,
-  URSHL_VG4_4ZZ_S = 8543,
-  URSHL_ZPmZ_B = 8544,
-  URSHL_ZPmZ_D = 8545,
-  URSHL_ZPmZ_H = 8546,
-  URSHL_ZPmZ_S = 8547,
-  URSHLv16i8 = 8548,
-  URSHLv1i64 = 8549,
-  URSHLv2i32 = 8550,
-  URSHLv2i64 = 8551,
-  URSHLv4i16 = 8552,
-  URSHLv4i32 = 8553,
-  URSHLv8i16 = 8554,
-  URSHLv8i8 = 8555,
-  URSHR_ZPmI_B = 8556,
-  URSHR_ZPmI_D = 8557,
-  URSHR_ZPmI_H = 8558,
-  URSHR_ZPmI_S = 8559,
-  URSHRd = 8560,
-  URSHRv16i8_shift = 8561,
-  URSHRv2i32_shift = 8562,
-  URSHRv2i64_shift = 8563,
-  URSHRv4i16_shift = 8564,
-  URSHRv4i32_shift = 8565,
-  URSHRv8i16_shift = 8566,
-  URSHRv8i8_shift = 8567,
-  URSQRTE_ZPmZ_S = 8568,
-  URSQRTE_ZPzZ_S = 8569,
-  URSQRTEv2i32 = 8570,
-  URSQRTEv4i32 = 8571,
-  URSRA_ZZI_B = 8572,
-  URSRA_ZZI_D = 8573,
-  URSRA_ZZI_H = 8574,
-  URSRA_ZZI_S = 8575,
-  URSRAd = 8576,
-  URSRAv16i8_shift = 8577,
-  URSRAv2i32_shift = 8578,
-  URSRAv2i64_shift = 8579,
-  URSRAv4i16_shift = 8580,
-  URSRAv4i32_shift = 8581,
-  URSRAv8i16_shift = 8582,
-  URSRAv8i8_shift = 8583,
-  USDOT_VG2_M2Z2Z_BToS = 8584,
-  USDOT_VG2_M2ZZI_BToS = 8585,
-  USDOT_VG2_M2ZZ_BToS = 8586,
-  USDOT_VG4_M4Z4Z_BToS = 8587,
-  USDOT_VG4_M4ZZI_BToS = 8588,
-  USDOT_VG4_M4ZZ_BToS = 8589,
-  USDOT_ZZZ = 8590,
-  USDOT_ZZZI = 8591,
-  USDOTlanev16i8 = 8592,
-  USDOTlanev8i8 = 8593,
-  USDOTv16i8 = 8594,
-  USDOTv8i8 = 8595,
-  USHLLB_ZZI_D = 8596,
-  USHLLB_ZZI_H = 8597,
-  USHLLB_ZZI_S = 8598,
-  USHLLT_ZZI_D = 8599,
-  USHLLT_ZZI_H = 8600,
-  USHLLT_ZZI_S = 8601,
-  USHLLv16i8_shift = 8602,
-  USHLLv2i32_shift = 8603,
-  USHLLv4i16_shift = 8604,
-  USHLLv4i32_shift = 8605,
-  USHLLv8i16_shift = 8606,
-  USHLLv8i8_shift = 8607,
-  USHLv16i8 = 8608,
-  USHLv1i64 = 8609,
-  USHLv2i32 = 8610,
-  USHLv2i64 = 8611,
-  USHLv4i16 = 8612,
-  USHLv4i32 = 8613,
-  USHLv8i16 = 8614,
-  USHLv8i8 = 8615,
-  USHRd = 8616,
-  USHRv16i8_shift = 8617,
-  USHRv2i32_shift = 8618,
-  USHRv2i64_shift = 8619,
-  USHRv4i16_shift = 8620,
-  USHRv4i32_shift = 8621,
-  USHRv8i16_shift = 8622,
-  USHRv8i8_shift = 8623,
-  USMLALL_MZZI_BtoS = 8624,
-  USMLALL_MZZ_BtoS = 8625,
-  USMLALL_VG2_M2Z2Z_BtoS = 8626,
-  USMLALL_VG2_M2ZZI_BtoS = 8627,
-  USMLALL_VG2_M2ZZ_BtoS = 8628,
-  USMLALL_VG4_M4Z4Z_BtoS = 8629,
-  USMLALL_VG4_M4ZZI_BtoS = 8630,
-  USMLALL_VG4_M4ZZ_BtoS = 8631,
-  USMMLA = 8632,
-  USMMLA_ZZZ = 8633,
-  USMOP4A_M2Z2Z_BToS = 8634,
-  USMOP4A_M2Z2Z_HtoD = 8635,
-  USMOP4A_M2ZZ_BToS = 8636,
-  USMOP4A_M2ZZ_HtoD = 8637,
-  USMOP4A_MZ2Z_BToS = 8638,
-  USMOP4A_MZ2Z_HtoD = 8639,
-  USMOP4A_MZZ_BToS = 8640,
-  USMOP4A_MZZ_HtoD = 8641,
-  USMOP4S_M2Z2Z_BToS = 8642,
-  USMOP4S_M2Z2Z_HtoD = 8643,
-  USMOP4S_M2ZZ_BToS = 8644,
-  USMOP4S_M2ZZ_HtoD = 8645,
-  USMOP4S_MZ2Z_BToS = 8646,
-  USMOP4S_MZ2Z_HtoD = 8647,
-  USMOP4S_MZZ_BToS = 8648,
-  USMOP4S_MZZ_HtoD = 8649,
-  USMOPA_MPPZZ_D = 8650,
-  USMOPA_MPPZZ_S = 8651,
-  USMOPS_MPPZZ_D = 8652,
-  USMOPS_MPPZZ_S = 8653,
-  USQADD_ZPmZ_B = 8654,
-  USQADD_ZPmZ_D = 8655,
-  USQADD_ZPmZ_H = 8656,
-  USQADD_ZPmZ_S = 8657,
-  USQADDv16i8 = 8658,
-  USQADDv1i16 = 8659,
-  USQADDv1i32 = 8660,
-  USQADDv1i64 = 8661,
-  USQADDv1i8 = 8662,
-  USQADDv2i32 = 8663,
-  USQADDv2i64 = 8664,
-  USQADDv4i16 = 8665,
-  USQADDv4i32 = 8666,
-  USQADDv8i16 = 8667,
-  USQADDv8i8 = 8668,
-  USRA_ZZI_B = 8669,
-  USRA_ZZI_D = 8670,
-  USRA_ZZI_H = 8671,
-  USRA_ZZI_S = 8672,
-  USRAd = 8673,
-  USRAv16i8_shift = 8674,
-  USRAv2i32_shift = 8675,
-  USRAv2i64_shift = 8676,
-  USRAv4i16_shift = 8677,
-  USRAv4i32_shift = 8678,
-  USRAv8i16_shift = 8679,
-  USRAv8i8_shift = 8680,
-  USTMOPA_M2ZZZI_BtoS = 8681,
-  USUBLB_ZZZ_D = 8682,
-  USUBLB_ZZZ_H = 8683,
-  USUBLB_ZZZ_S = 8684,
-  USUBLT_ZZZ_D = 8685,
-  USUBLT_ZZZ_H = 8686,
-  USUBLT_ZZZ_S = 8687,
-  USUBLv16i8_v8i16 = 8688,
-  USUBLv2i32_v2i64 = 8689,
-  USUBLv4i16_v4i32 = 8690,
-  USUBLv4i32_v2i64 = 8691,
-  USUBLv8i16_v4i32 = 8692,
-  USUBLv8i8_v8i16 = 8693,
-  USUBWB_ZZZ_D = 8694,
-  USUBWB_ZZZ_H = 8695,
-  USUBWB_ZZZ_S = 8696,
-  USUBWT_ZZZ_D = 8697,
-  USUBWT_ZZZ_H = 8698,
-  USUBWT_ZZZ_S = 8699,
-  USUBWv16i8_v8i16 = 8700,
-  USUBWv2i32_v2i64 = 8701,
-  USUBWv4i16_v4i32 = 8702,
-  USUBWv4i32_v2i64 = 8703,
-  USUBWv8i16_v4i32 = 8704,
-  USUBWv8i8_v8i16 = 8705,
-  USVDOT_VG4_M4ZZI_BToS = 8706,
-  UTMOPA_M2ZZZI_BtoS = 8707,
-  UTMOPA_M2ZZZI_HtoS = 8708,
-  UUNPKHI_ZZ_D = 8709,
-  UUNPKHI_ZZ_H = 8710,
-  UUNPKHI_ZZ_S = 8711,
-  UUNPKLO_ZZ_D = 8712,
-  UUNPKLO_ZZ_H = 8713,
-  UUNPKLO_ZZ_S = 8714,
-  UUNPK_VG2_2ZZ_D = 8715,
-  UUNPK_VG2_2ZZ_H = 8716,
-  UUNPK_VG2_2ZZ_S = 8717,
-  UUNPK_VG4_4Z2Z_D = 8718,
-  UUNPK_VG4_4Z2Z_H = 8719,
-  UUNPK_VG4_4Z2Z_S = 8720,
-  UVDOT_VG2_M2ZZI_HtoS = 8721,
-  UVDOT_VG4_M4ZZI_BtoS = 8722,
-  UVDOT_VG4_M4ZZI_HtoD = 8723,
-  UXTB_ZPmZ_D = 8724,
-  UXTB_ZPmZ_H = 8725,
-  UXTB_ZPmZ_S = 8726,
-  UXTB_ZPzZ_D = 8727,
-  UXTB_ZPzZ_H = 8728,
-  UXTB_ZPzZ_S = 8729,
-  UXTH_ZPmZ_D = 8730,
-  UXTH_ZPmZ_S = 8731,
-  UXTH_ZPzZ_D = 8732,
-  UXTH_ZPzZ_S = 8733,
-  UXTW_ZPmZ_D = 8734,
-  UXTW_ZPzZ_D = 8735,
-  UZP1_PPP_B = 8736,
-  UZP1_PPP_D = 8737,
-  UZP1_PPP_H = 8738,
-  UZP1_PPP_S = 8739,
-  UZP1_ZZZ_B = 8740,
-  UZP1_ZZZ_D = 8741,
-  UZP1_ZZZ_H = 8742,
-  UZP1_ZZZ_Q = 8743,
-  UZP1_ZZZ_S = 8744,
-  UZP1v16i8 = 8745,
-  UZP1v2i32 = 8746,
-  UZP1v2i64 = 8747,
-  UZP1v4i16 = 8748,
-  UZP1v4i32 = 8749,
-  UZP1v8i16 = 8750,
-  UZP1v8i8 = 8751,
-  UZP2_PPP_B = 8752,
-  UZP2_PPP_D = 8753,
-  UZP2_PPP_H = 8754,
-  UZP2_PPP_S = 8755,
-  UZP2_ZZZ_B = 8756,
-  UZP2_ZZZ_D = 8757,
-  UZP2_ZZZ_H = 8758,
-  UZP2_ZZZ_Q = 8759,
-  UZP2_ZZZ_S = 8760,
-  UZP2v16i8 = 8761,
-  UZP2v2i32 = 8762,
-  UZP2v2i64 = 8763,
-  UZP2v4i16 = 8764,
-  UZP2v4i32 = 8765,
-  UZP2v8i16 = 8766,
-  UZP2v8i8 = 8767,
-  UZPQ1_ZZZ_B = 8768,
-  UZPQ1_ZZZ_D = 8769,
-  UZPQ1_ZZZ_H = 8770,
-  UZPQ1_ZZZ_S = 8771,
-  UZPQ2_ZZZ_B = 8772,
-  UZPQ2_ZZZ_D = 8773,
-  UZPQ2_ZZZ_H = 8774,
-  UZPQ2_ZZZ_S = 8775,
-  UZP_VG2_2ZZZ_B = 8776,
-  UZP_VG2_2ZZZ_D = 8777,
-  UZP_VG2_2ZZZ_H = 8778,
-  UZP_VG2_2ZZZ_Q = 8779,
-  UZP_VG2_2ZZZ_S = 8780,
-  UZP_VG4_4Z4Z_B = 8781,
-  UZP_VG4_4Z4Z_D = 8782,
-  UZP_VG4_4Z4Z_H = 8783,
-  UZP_VG4_4Z4Z_Q = 8784,
-  UZP_VG4_4Z4Z_S = 8785,
-  WFET = 8786,
-  WFIT = 8787,
-  WHILEGE_2PXX_B = 8788,
-  WHILEGE_2PXX_D = 8789,
-  WHILEGE_2PXX_H = 8790,
-  WHILEGE_2PXX_S = 8791,
-  WHILEGE_CXX_B = 8792,
-  WHILEGE_CXX_D = 8793,
-  WHILEGE_CXX_H = 8794,
-  WHILEGE_CXX_S = 8795,
-  WHILEGE_PWW_B = 8796,
-  WHILEGE_PWW_D = 8797,
-  WHILEGE_PWW_H = 8798,
-  WHILEGE_PWW_S = 8799,
-  WHILEGE_PXX_B = 8800,
-  WHILEGE_PXX_D = 8801,
-  WHILEGE_PXX_H = 8802,
-  WHILEGE_PXX_S = 8803,
-  WHILEGT_2PXX_B = 8804,
-  WHILEGT_2PXX_D = 8805,
-  WHILEGT_2PXX_H = 8806,
-  WHILEGT_2PXX_S = 8807,
-  WHILEGT_CXX_B = 8808,
-  WHILEGT_CXX_D = 8809,
-  WHILEGT_CXX_H = 8810,
-  WHILEGT_CXX_S = 8811,
-  WHILEGT_PWW_B = 8812,
-  WHILEGT_PWW_D = 8813,
-  WHILEGT_PWW_H = 8814,
-  WHILEGT_PWW_S = 8815,
-  WHILEGT_PXX_B = 8816,
-  WHILEGT_PXX_D = 8817,
-  WHILEGT_PXX_H = 8818,
-  WHILEGT_PXX_S = 8819,
-  WHILEHI_2PXX_B = 8820,
-  WHILEHI_2PXX_D = 8821,
-  WHILEHI_2PXX_H = 8822,
-  WHILEHI_2PXX_S = 8823,
-  WHILEHI_CXX_B = 8824,
-  WHILEHI_CXX_D = 8825,
-  WHILEHI_CXX_H = 8826,
-  WHILEHI_CXX_S = 8827,
-  WHILEHI_PWW_B = 8828,
-  WHILEHI_PWW_D = 8829,
-  WHILEHI_PWW_H = 8830,
-  WHILEHI_PWW_S = 8831,
-  WHILEHI_PXX_B = 8832,
-  WHILEHI_PXX_D = 8833,
-  WHILEHI_PXX_H = 8834,
-  WHILEHI_PXX_S = 8835,
-  WHILEHS_2PXX_B = 8836,
-  WHILEHS_2PXX_D = 8837,
-  WHILEHS_2PXX_H = 8838,
-  WHILEHS_2PXX_S = 8839,
-  WHILEHS_CXX_B = 8840,
-  WHILEHS_CXX_D = 8841,
-  WHILEHS_CXX_H = 8842,
-  WHILEHS_CXX_S = 8843,
-  WHILEHS_PWW_B = 8844,
-  WHILEHS_PWW_D = 8845,
-  WHILEHS_PWW_H = 8846,
-  WHILEHS_PWW_S = 8847,
-  WHILEHS_PXX_B = 8848,
-  WHILEHS_PXX_D = 8849,
-  WHILEHS_PXX_H = 8850,
-  WHILEHS_PXX_S = 8851,
-  WHILELE_2PXX_B = 8852,
-  WHILELE_2PXX_D = 8853,
-  WHILELE_2PXX_H = 8854,
-  WHILELE_2PXX_S = 8855,
-  WHILELE_CXX_B = 8856,
-  WHILELE_CXX_D = 8857,
-  WHILELE_CXX_H = 8858,
-  WHILELE_CXX_S = 8859,
-  WHILELE_PWW_B = 8860,
-  WHILELE_PWW_D = 8861,
-  WHILELE_PWW_H = 8862,
-  WHILELE_PWW_S = 8863,
-  WHILELE_PXX_B = 8864,
-  WHILELE_PXX_D = 8865,
-  WHILELE_PXX_H = 8866,
-  WHILELE_PXX_S = 8867,
-  WHILELO_2PXX_B = 8868,
-  WHILELO_2PXX_D = 8869,
-  WHILELO_2PXX_H = 8870,
-  WHILELO_2PXX_S = 8871,
-  WHILELO_CXX_B = 8872,
-  WHILELO_CXX_D = 8873,
-  WHILELO_CXX_H = 8874,
-  WHILELO_CXX_S = 8875,
-  WHILELO_PWW_B = 8876,
-  WHILELO_PWW_D = 8877,
-  WHILELO_PWW_H = 8878,
-  WHILELO_PWW_S = 8879,
-  WHILELO_PXX_B = 8880,
-  WHILELO_PXX_D = 8881,
-  WHILELO_PXX_H = 8882,
-  WHILELO_PXX_S = 8883,
-  WHILELS_2PXX_B = 8884,
-  WHILELS_2PXX_D = 8885,
-  WHILELS_2PXX_H = 8886,
-  WHILELS_2PXX_S = 8887,
-  WHILELS_CXX_B = 8888,
-  WHILELS_CXX_D = 8889,
-  WHILELS_CXX_H = 8890,
-  WHILELS_CXX_S = 8891,
-  WHILELS_PWW_B = 8892,
-  WHILELS_PWW_D = 8893,
-  WHILELS_PWW_H = 8894,
-  WHILELS_PWW_S = 8895,
-  WHILELS_PXX_B = 8896,
-  WHILELS_PXX_D = 8897,
-  WHILELS_PXX_H = 8898,
-  WHILELS_PXX_S = 8899,
-  WHILELT_2PXX_B = 8900,
-  WHILELT_2PXX_D = 8901,
-  WHILELT_2PXX_H = 8902,
-  WHILELT_2PXX_S = 8903,
-  WHILELT_CXX_B = 8904,
-  WHILELT_CXX_D = 8905,
-  WHILELT_CXX_H = 8906,
-  WHILELT_CXX_S = 8907,
-  WHILELT_PWW_B = 8908,
-  WHILELT_PWW_D = 8909,
-  WHILELT_PWW_H = 8910,
-  WHILELT_PWW_S = 8911,
-  WHILELT_PXX_B = 8912,
-  WHILELT_PXX_D = 8913,
-  WHILELT_PXX_H = 8914,
-  WHILELT_PXX_S = 8915,
-  WHILERW_PXX_B = 8916,
-  WHILERW_PXX_D = 8917,
-  WHILERW_PXX_H = 8918,
-  WHILERW_PXX_S = 8919,
-  WHILEWR_PXX_B = 8920,
-  WHILEWR_PXX_D = 8921,
-  WHILEWR_PXX_H = 8922,
-  WHILEWR_PXX_S = 8923,
-  WRFFR = 8924,
-  XAFLAG = 8925,
-  XAR = 8926,
-  XAR_ZZZI_B = 8927,
-  XAR_ZZZI_D = 8928,
-  XAR_ZZZI_H = 8929,
-  XAR_ZZZI_S = 8930,
-  XPACD = 8931,
-  XPACI = 8932,
-  XPACLRI = 8933,
-  XTNv16i8 = 8934,
-  XTNv2i32 = 8935,
-  XTNv4i16 = 8936,
-  XTNv4i32 = 8937,
-  XTNv8i16 = 8938,
-  XTNv8i8 = 8939,
-  ZERO_M = 8940,
-  ZERO_MXI_2Z = 8941,
-  ZERO_MXI_4Z = 8942,
-  ZERO_MXI_VG2_2Z = 8943,
-  ZERO_MXI_VG2_4Z = 8944,
-  ZERO_MXI_VG2_Z = 8945,
-  ZERO_MXI_VG4_2Z = 8946,
-  ZERO_MXI_VG4_4Z = 8947,
-  ZERO_MXI_VG4_Z = 8948,
-  ZERO_T = 8949,
-  ZIP1_PPP_B = 8950,
-  ZIP1_PPP_D = 8951,
-  ZIP1_PPP_H = 8952,
-  ZIP1_PPP_S = 8953,
-  ZIP1_ZZZ_B = 8954,
-  ZIP1_ZZZ_D = 8955,
-  ZIP1_ZZZ_H = 8956,
-  ZIP1_ZZZ_Q = 8957,
-  ZIP1_ZZZ_S = 8958,
-  ZIP1v16i8 = 8959,
-  ZIP1v2i32 = 8960,
-  ZIP1v2i64 = 8961,
-  ZIP1v4i16 = 8962,
-  ZIP1v4i32 = 8963,
-  ZIP1v8i16 = 8964,
-  ZIP1v8i8 = 8965,
-  ZIP2_PPP_B = 8966,
-  ZIP2_PPP_D = 8967,
-  ZIP2_PPP_H = 8968,
-  ZIP2_PPP_S = 8969,
-  ZIP2_ZZZ_B = 8970,
-  ZIP2_ZZZ_D = 8971,
-  ZIP2_ZZZ_H = 8972,
-  ZIP2_ZZZ_Q = 8973,
-  ZIP2_ZZZ_S = 8974,
-  ZIP2v16i8 = 8975,
-  ZIP2v2i32 = 8976,
-  ZIP2v2i64 = 8977,
-  ZIP2v4i16 = 8978,
-  ZIP2v4i32 = 8979,
-  ZIP2v8i16 = 8980,
-  ZIP2v8i8 = 8981,
-  ZIPQ1_ZZZ_B = 8982,
-  ZIPQ1_ZZZ_D = 8983,
-  ZIPQ1_ZZZ_H = 8984,
-  ZIPQ1_ZZZ_S = 8985,
-  ZIPQ2_ZZZ_B = 8986,
-  ZIPQ2_ZZZ_D = 8987,
-  ZIPQ2_ZZZ_H = 8988,
-  ZIPQ2_ZZZ_S = 8989,
-  ZIP_VG2_2ZZZ_B = 8990,
-  ZIP_VG2_2ZZZ_D = 8991,
-  ZIP_VG2_2ZZZ_H = 8992,
-  ZIP_VG2_2ZZZ_Q = 8993,
-  ZIP_VG2_2ZZZ_S = 8994,
-  ZIP_VG4_4Z4Z_B = 8995,
-  ZIP_VG4_4Z4Z_D = 8996,
-  ZIP_VG4_4Z4Z_H = 8997,
-  ZIP_VG4_4Z4Z_Q = 8998,
-  ZIP_VG4_4Z4Z_S = 8999,
-  INSTRUCTION_LIST_END = 9000,
+  COPY_LANEMASK = 21,
+  BUNDLE = 22,
+  LIFETIME_START = 23,
+  LIFETIME_END = 24,
+  PSEUDO_PROBE = 25,
+  ARITH_FENCE = 26,
+  STACKMAP = 27,
+  FENTRY_CALL = 28,
+  PATCHPOINT = 29,
+  LOAD_STACK_GUARD = 30,
+  PREALLOCATED_SETUP = 31,
+  PREALLOCATED_ARG = 32,
+  STATEPOINT = 33,
+  LOCAL_ESCAPE = 34,
+  FAULTING_OP = 35,
+  PATCHABLE_OP = 36,
+  PATCHABLE_FUNCTION_ENTER = 37,
+  PATCHABLE_RET = 38,
+  PATCHABLE_FUNCTION_EXIT = 39,
+  PATCHABLE_TAIL_CALL = 40,
+  PATCHABLE_EVENT_CALL = 41,
+  PATCHABLE_TYPED_EVENT_CALL = 42,
+  ICALL_BRANCH_FUNNEL = 43,
+  FAKE_USE = 44,
+  MEMBARRIER = 45,
+  JUMP_TABLE_DEBUG_INFO = 46,
+  RELOC_NONE = 47,
+  CONVERGENCECTRL_ENTRY = 48,
+  CONVERGENCECTRL_ANCHOR = 49,
+  CONVERGENCECTRL_LOOP = 50,
+  CONVERGENCECTRL_GLUE = 51,
+  G_ASSERT_SEXT = 52,
+  G_ASSERT_ZEXT = 53,
+  G_ASSERT_ALIGN = 54,
+  G_ADD = 55,
+  G_SUB = 56,
+  G_MUL = 57,
+  G_SDIV = 58,
+  G_UDIV = 59,
+  G_SREM = 60,
+  G_UREM = 61,
+  G_SDIVREM = 62,
+  G_UDIVREM = 63,
+  G_AND = 64,
+  G_OR = 65,
+  G_XOR = 66,
+  G_ABDS = 67,
+  G_ABDU = 68,
+  G_UAVGFLOOR = 69,
+  G_UAVGCEIL = 70,
+  G_SAVGFLOOR = 71,
+  G_SAVGCEIL = 72,
+  G_IMPLICIT_DEF = 73,
+  G_PHI = 74,
+  G_FRAME_INDEX = 75,
+  G_GLOBAL_VALUE = 76,
+  G_PTRAUTH_GLOBAL_VALUE = 77,
+  G_CONSTANT_POOL = 78,
+  G_EXTRACT = 79,
+  G_UNMERGE_VALUES = 80,
+  G_INSERT = 81,
+  G_MERGE_VALUES = 82,
+  G_BUILD_VECTOR = 83,
+  G_BUILD_VECTOR_TRUNC = 84,
+  G_CONCAT_VECTORS = 85,
+  G_PTRTOINT = 86,
+  G_INTTOPTR = 87,
+  G_BITCAST = 88,
+  G_FREEZE = 89,
+  G_CONSTANT_FOLD_BARRIER = 90,
+  G_INTRINSIC_FPTRUNC_ROUND = 91,
+  G_INTRINSIC_TRUNC = 92,
+  G_INTRINSIC_ROUND = 93,
+  G_INTRINSIC_LRINT = 94,
+  G_INTRINSIC_LLRINT = 95,
+  G_INTRINSIC_ROUNDEVEN = 96,
+  G_READCYCLECOUNTER = 97,
+  G_READSTEADYCOUNTER = 98,
+  G_LOAD = 99,
+  G_SEXTLOAD = 100,
+  G_ZEXTLOAD = 101,
+  G_INDEXED_LOAD = 102,
+  G_INDEXED_SEXTLOAD = 103,
+  G_INDEXED_ZEXTLOAD = 104,
+  G_STORE = 105,
+  G_INDEXED_STORE = 106,
+  G_ATOMIC_CMPXCHG_WITH_SUCCESS = 107,
+  G_ATOMIC_CMPXCHG = 108,
+  G_ATOMICRMW_XCHG = 109,
+  G_ATOMICRMW_ADD = 110,
+  G_ATOMICRMW_SUB = 111,
+  G_ATOMICRMW_AND = 112,
+  G_ATOMICRMW_NAND = 113,
+  G_ATOMICRMW_OR = 114,
+  G_ATOMICRMW_XOR = 115,
+  G_ATOMICRMW_MAX = 116,
+  G_ATOMICRMW_MIN = 117,
+  G_ATOMICRMW_UMAX = 118,
+  G_ATOMICRMW_UMIN = 119,
+  G_ATOMICRMW_FADD = 120,
+  G_ATOMICRMW_FSUB = 121,
+  G_ATOMICRMW_FMAX = 122,
+  G_ATOMICRMW_FMIN = 123,
+  G_ATOMICRMW_FMAXIMUM = 124,
+  G_ATOMICRMW_FMINIMUM = 125,
+  G_ATOMICRMW_UINC_WRAP = 126,
+  G_ATOMICRMW_UDEC_WRAP = 127,
+  G_ATOMICRMW_USUB_COND = 128,
+  G_ATOMICRMW_USUB_SAT = 129,
+  G_FENCE = 130,
+  G_PREFETCH = 131,
+  G_BRCOND = 132,
+  G_BRINDIRECT = 133,
+  G_INVOKE_REGION_START = 134,
+  G_INTRINSIC = 135,
+  G_INTRINSIC_W_SIDE_EFFECTS = 136,
+  G_INTRINSIC_CONVERGENT = 137,
+  G_INTRINSIC_CONVERGENT_W_SIDE_EFFECTS = 138,
+  G_ANYEXT = 139,
+  G_TRUNC = 140,
+  G_TRUNC_SSAT_S = 141,
+  G_TRUNC_SSAT_U = 142,
+  G_TRUNC_USAT_U = 143,
+  G_CONSTANT = 144,
+  G_FCONSTANT = 145,
+  G_VASTART = 146,
+  G_VAARG = 147,
+  G_SEXT = 148,
+  G_SEXT_INREG = 149,
+  G_ZEXT = 150,
+  G_SHL = 151,
+  G_LSHR = 152,
+  G_ASHR = 153,
+  G_FSHL = 154,
+  G_FSHR = 155,
+  G_ROTR = 156,
+  G_ROTL = 157,
+  G_ICMP = 158,
+  G_FCMP = 159,
+  G_SCMP = 160,
+  G_UCMP = 161,
+  G_SELECT = 162,
+  G_UADDO = 163,
+  G_UADDE = 164,
+  G_USUBO = 165,
+  G_USUBE = 166,
+  G_SADDO = 167,
+  G_SADDE = 168,
+  G_SSUBO = 169,
+  G_SSUBE = 170,
+  G_UMULO = 171,
+  G_SMULO = 172,
+  G_UMULH = 173,
+  G_SMULH = 174,
+  G_UADDSAT = 175,
+  G_SADDSAT = 176,
+  G_USUBSAT = 177,
+  G_SSUBSAT = 178,
+  G_USHLSAT = 179,
+  G_SSHLSAT = 180,
+  G_SMULFIX = 181,
+  G_UMULFIX = 182,
+  G_SMULFIXSAT = 183,
+  G_UMULFIXSAT = 184,
+  G_SDIVFIX = 185,
+  G_UDIVFIX = 186,
+  G_SDIVFIXSAT = 187,
+  G_UDIVFIXSAT = 188,
+  G_FADD = 189,
+  G_FSUB = 190,
+  G_FMUL = 191,
+  G_FMA = 192,
+  G_FMAD = 193,
+  G_FDIV = 194,
+  G_FREM = 195,
+  G_FMODF = 196,
+  G_FPOW = 197,
+  G_FPOWI = 198,
+  G_FEXP = 199,
+  G_FEXP2 = 200,
+  G_FEXP10 = 201,
+  G_FLOG = 202,
+  G_FLOG2 = 203,
+  G_FLOG10 = 204,
+  G_FLDEXP = 205,
+  G_FFREXP = 206,
+  G_FNEG = 207,
+  G_FPEXT = 208,
+  G_FPTRUNC = 209,
+  G_FPTOSI = 210,
+  G_FPTOUI = 211,
+  G_SITOFP = 212,
+  G_UITOFP = 213,
+  G_FPTOSI_SAT = 214,
+  G_FPTOUI_SAT = 215,
+  G_FABS = 216,
+  G_FCOPYSIGN = 217,
+  G_IS_FPCLASS = 218,
+  G_FCANONICALIZE = 219,
+  G_FMINNUM = 220,
+  G_FMAXNUM = 221,
+  G_FMINNUM_IEEE = 222,
+  G_FMAXNUM_IEEE = 223,
+  G_FMINIMUM = 224,
+  G_FMAXIMUM = 225,
+  G_FMINIMUMNUM = 226,
+  G_FMAXIMUMNUM = 227,
+  G_GET_FPENV = 228,
+  G_SET_FPENV = 229,
+  G_RESET_FPENV = 230,
+  G_GET_FPMODE = 231,
+  G_SET_FPMODE = 232,
+  G_RESET_FPMODE = 233,
+  G_GET_ROUNDING = 234,
+  G_SET_ROUNDING = 235,
+  G_PTR_ADD = 236,
+  G_PTRMASK = 237,
+  G_SMIN = 238,
+  G_SMAX = 239,
+  G_UMIN = 240,
+  G_UMAX = 241,
+  G_ABS = 242,
+  G_LROUND = 243,
+  G_LLROUND = 244,
+  G_BR = 245,
+  G_BRJT = 246,
+  G_VSCALE = 247,
+  G_INSERT_SUBVECTOR = 248,
+  G_EXTRACT_SUBVECTOR = 249,
+  G_INSERT_VECTOR_ELT = 250,
+  G_EXTRACT_VECTOR_ELT = 251,
+  G_SHUFFLE_VECTOR = 252,
+  G_SPLAT_VECTOR = 253,
+  G_STEP_VECTOR = 254,
+  G_VECTOR_COMPRESS = 255,
+  G_CTTZ = 256,
+  G_CTTZ_ZERO_UNDEF = 257,
+  G_CTLZ = 258,
+  G_CTLZ_ZERO_UNDEF = 259,
+  G_CTPOP = 260,
+  G_BSWAP = 261,
+  G_BITREVERSE = 262,
+  G_FCEIL = 263,
+  G_FCOS = 264,
+  G_FSIN = 265,
+  G_FSINCOS = 266,
+  G_FTAN = 267,
+  G_FACOS = 268,
+  G_FASIN = 269,
+  G_FATAN = 270,
+  G_FATAN2 = 271,
+  G_FCOSH = 272,
+  G_FSINH = 273,
+  G_FTANH = 274,
+  G_FSQRT = 275,
+  G_FFLOOR = 276,
+  G_FRINT = 277,
+  G_FNEARBYINT = 278,
+  G_ADDRSPACE_CAST = 279,
+  G_BLOCK_ADDR = 280,
+  G_JUMP_TABLE = 281,
+  G_DYN_STACKALLOC = 282,
+  G_STACKSAVE = 283,
+  G_STACKRESTORE = 284,
+  G_STRICT_FADD = 285,
+  G_STRICT_FSUB = 286,
+  G_STRICT_FMUL = 287,
+  G_STRICT_FDIV = 288,
+  G_STRICT_FREM = 289,
+  G_STRICT_FMA = 290,
+  G_STRICT_FSQRT = 291,
+  G_STRICT_FLDEXP = 292,
+  G_READ_REGISTER = 293,
+  G_WRITE_REGISTER = 294,
+  G_MEMCPY = 295,
+  G_MEMCPY_INLINE = 296,
+  G_MEMMOVE = 297,
+  G_MEMSET = 298,
+  G_BZERO = 299,
+  G_TRAP = 300,
+  G_DEBUGTRAP = 301,
+  G_UBSANTRAP = 302,
+  G_VECREDUCE_SEQ_FADD = 303,
+  G_VECREDUCE_SEQ_FMUL = 304,
+  G_VECREDUCE_FADD = 305,
+  G_VECREDUCE_FMUL = 306,
+  G_VECREDUCE_FMAX = 307,
+  G_VECREDUCE_FMIN = 308,
+  G_VECREDUCE_FMAXIMUM = 309,
+  G_VECREDUCE_FMINIMUM = 310,
+  G_VECREDUCE_ADD = 311,
+  G_VECREDUCE_MUL = 312,
+  G_VECREDUCE_AND = 313,
+  G_VECREDUCE_OR = 314,
+  G_VECREDUCE_XOR = 315,
+  G_VECREDUCE_SMAX = 316,
+  G_VECREDUCE_SMIN = 317,
+  G_VECREDUCE_UMAX = 318,
+  G_VECREDUCE_UMIN = 319,
+  G_SBFX = 320,
+  G_UBFX = 321,
+  ABS_ZPmZ_B_UNDEF = 322,
+  ABS_ZPmZ_D_UNDEF = 323,
+  ABS_ZPmZ_H_UNDEF = 324,
+  ABS_ZPmZ_S_UNDEF = 325,
+  ADDHA_MPPZ_D_PSEUDO_D = 326,
+  ADDHA_MPPZ_S_PSEUDO_S = 327,
+  ADDSWrr = 328,
+  ADDSXrr = 329,
+  ADDVA_MPPZ_D_PSEUDO_D = 330,
+  ADDVA_MPPZ_S_PSEUDO_S = 331,
+  ADDWrr = 332,
+  ADDXrr = 333,
+  ADD_VG2_M2Z2Z_D_PSEUDO = 334,
+  ADD_VG2_M2Z2Z_S_PSEUDO = 335,
+  ADD_VG2_M2ZZ_D_PSEUDO = 336,
+  ADD_VG2_M2ZZ_S_PSEUDO = 337,
+  ADD_VG2_M2Z_D_PSEUDO = 338,
+  ADD_VG2_M2Z_S_PSEUDO = 339,
+  ADD_VG4_M4Z4Z_D_PSEUDO = 340,
+  ADD_VG4_M4Z4Z_S_PSEUDO = 341,
+  ADD_VG4_M4ZZ_D_PSEUDO = 342,
+  ADD_VG4_M4ZZ_S_PSEUDO = 343,
+  ADD_VG4_M4Z_D_PSEUDO = 344,
+  ADD_VG4_M4Z_S_PSEUDO = 345,
+  ADD_ZPZZ_B_ZERO = 346,
+  ADD_ZPZZ_D_ZERO = 347,
+  ADD_ZPZZ_H_ZERO = 348,
+  ADD_ZPZZ_S_ZERO = 349,
+  ADDlowTLS = 350,
+  ADJCALLSTACKDOWN = 351,
+  ADJCALLSTACKUP = 352,
+  AESIMCrrTied = 353,
+  AESMCrrTied = 354,
+  ANDSWrr = 355,
+  ANDSXrr = 356,
+  ANDWrr = 357,
+  ANDXrr = 358,
+  AND_ZPZZ_B_ZERO = 359,
+  AND_ZPZZ_D_ZERO = 360,
+  AND_ZPZZ_H_ZERO = 361,
+  AND_ZPZZ_S_ZERO = 362,
+  ASRD_ZPZI_B_ZERO = 363,
+  ASRD_ZPZI_D_ZERO = 364,
+  ASRD_ZPZI_H_ZERO = 365,
+  ASRD_ZPZI_S_ZERO = 366,
+  ASR_ZPZI_B_UNDEF = 367,
+  ASR_ZPZI_B_ZERO = 368,
+  ASR_ZPZI_D_UNDEF = 369,
+  ASR_ZPZI_D_ZERO = 370,
+  ASR_ZPZI_H_UNDEF = 371,
+  ASR_ZPZI_H_ZERO = 372,
+  ASR_ZPZI_S_UNDEF = 373,
+  ASR_ZPZI_S_ZERO = 374,
+  ASR_ZPZZ_B_UNDEF = 375,
+  ASR_ZPZZ_B_ZERO = 376,
+  ASR_ZPZZ_D_UNDEF = 377,
+  ASR_ZPZZ_D_ZERO = 378,
+  ASR_ZPZZ_H_UNDEF = 379,
+  ASR_ZPZZ_H_ZERO = 380,
+  ASR_ZPZZ_S_UNDEF = 381,
+  ASR_ZPZZ_S_ZERO = 382,
+  AUTH_TCRETURN = 383,
+  AUTH_TCRETURN_BTI = 384,
+  AUTPAC = 385,
+  AUTx16x17 = 386,
+  AUTxMxN = 387,
+  AllocateSMESaveBuffer = 388,
+  AllocateZABuffer = 389,
+  BFADD_VG2_M2Z_H_PSEUDO = 390,
+  BFADD_VG4_M4Z_H_PSEUDO = 391,
+  BFADD_ZPZZ_UNDEF = 392,
+  BFADD_ZPZZ_ZERO = 393,
+  BFDOT_VG2_M2Z2Z_HtoS_PSEUDO = 394,
+  BFDOT_VG2_M2ZZI_HtoS_PSEUDO = 395,
+  BFDOT_VG2_M2ZZ_HtoS_PSEUDO = 396,
+  BFDOT_VG4_M4Z4Z_HtoS_PSEUDO = 397,
+  BFDOT_VG4_M4ZZI_HtoS_PSEUDO = 398,
+  BFDOT_VG4_M4ZZ_HtoS_PSEUDO = 399,
+  BFMAXNM_ZPZZ_UNDEF = 400,
+  BFMAXNM_ZPZZ_ZERO = 401,
+  BFMAX_ZPZZ_UNDEF = 402,
+  BFMAX_ZPZZ_ZERO = 403,
+  BFMINNM_ZPZZ_UNDEF = 404,
+  BFMINNM_ZPZZ_ZERO = 405,
+  BFMIN_ZPZZ_UNDEF = 406,
+  BFMIN_ZPZZ_ZERO = 407,
+  BFMLAL_MZZI_HtoS_PSEUDO = 408,
+  BFMLAL_MZZ_HtoS_PSEUDO = 409,
+  BFMLAL_VG2_M2Z2Z_HtoS_PSEUDO = 410,
+  BFMLAL_VG2_M2ZZI_HtoS_PSEUDO = 411,
+  BFMLAL_VG2_M2ZZ_HtoS_PSEUDO = 412,
+  BFMLAL_VG4_M4Z4Z_HtoS_PSEUDO = 413,
+  BFMLAL_VG4_M4ZZI_HtoS_PSEUDO = 414,
+  BFMLAL_VG4_M4ZZ_HtoS_PSEUDO = 415,
+  BFMLA_VG2_M2Z2Z_PSEUDO = 416,
+  BFMLA_VG2_M2ZZI_PSEUDO = 417,
+  BFMLA_VG2_M2ZZ_PSEUDO = 418,
+  BFMLA_VG4_M4Z4Z_PSEUDO = 419,
+  BFMLA_VG4_M4ZZI_PSEUDO = 420,
+  BFMLA_VG4_M4ZZ_PSEUDO = 421,
+  BFMLA_ZPZZZ_UNDEF = 422,
+  BFMLSL_MZZI_HtoS_PSEUDO = 423,
+  BFMLSL_MZZ_HtoS_PSEUDO = 424,
+  BFMLSL_VG2_M2Z2Z_HtoS_PSEUDO = 425,
+  BFMLSL_VG2_M2ZZI_HtoS_PSEUDO = 426,
+  BFMLSL_VG2_M2ZZ_HtoS_PSEUDO = 427,
+  BFMLSL_VG4_M4Z4Z_HtoS_PSEUDO = 428,
+  BFMLSL_VG4_M4ZZI_HtoS_PSEUDO = 429,
+  BFMLSL_VG4_M4ZZ_HtoS_PSEUDO = 430,
+  BFMLS_VG2_M2Z2Z_PSEUDO = 431,
+  BFMLS_VG2_M2ZZI_PSEUDO = 432,
+  BFMLS_VG2_M2ZZ_PSEUDO = 433,
+  BFMLS_VG4_M4Z4Z_PSEUDO = 434,
+  BFMLS_VG4_M4ZZI_PSEUDO = 435,
+  BFMLS_VG4_M4ZZ_PSEUDO = 436,
+  BFMLS_ZPZZZ_UNDEF = 437,
+  BFMOP4A_M2Z2Z_H_PSEUDO = 438,
+  BFMOP4A_M2Z2Z_S_PSEUDO = 439,
+  BFMOP4A_M2ZZ_H_PSEUDO = 440,
+  BFMOP4A_M2ZZ_S_PSEUDO = 441,
+  BFMOP4A_MZ2Z_H_PSEUDO = 442,
+  BFMOP4A_MZ2Z_S_PSEUDO = 443,
+  BFMOP4A_MZZ_H_PSEUDO = 444,
+  BFMOP4A_MZZ_S_PSEUDO = 445,
+  BFMOP4S_M2Z2Z_H_PSEUDO = 446,
+  BFMOP4S_M2Z2Z_S_PSEUDO = 447,
+  BFMOP4S_M2ZZ_H_PSEUDO = 448,
+  BFMOP4S_M2ZZ_S_PSEUDO = 449,
+  BFMOP4S_MZ2Z_H_PSEUDO = 450,
+  BFMOP4S_MZ2Z_S_PSEUDO = 451,
+  BFMOP4S_MZZ_H_PSEUDO = 452,
+  BFMOP4S_MZZ_S_PSEUDO = 453,
+  BFMOPA_MPPZZ_H_PSEUDO = 454,
+  BFMOPA_MPPZZ_PSEUDO = 455,
+  BFMOPS_MPPZZ_H_PSEUDO = 456,
+  BFMOPS_MPPZZ_PSEUDO = 457,
+  BFMUL_ZPZZ_UNDEF = 458,
+  BFMUL_ZPZZ_ZERO = 459,
+  BFSUB_VG2_M2Z_H_PSEUDO = 460,
+  BFSUB_VG4_M4Z_H_PSEUDO = 461,
+  BFSUB_ZPZZ_UNDEF = 462,
+  BFSUB_ZPZZ_ZERO = 463,
+  BFTMOPA_M2ZZZI_HtoH_PSEUDO = 464,
+  BFTMOPA_M2ZZZI_HtoS_PSEUDO = 465,
+  BFVDOT_VG2_M2ZZI_HtoS_PSEUDO = 466,
+  BICSWrr = 467,
+  BICSXrr = 468,
+  BICWrr = 469,
+  BICXrr = 470,
+  BIC_ZPZZ_B_ZERO = 471,
+  BIC_ZPZZ_D_ZERO = 472,
+  BIC_ZPZZ_H_ZERO = 473,
+  BIC_ZPZZ_S_ZERO = 474,
+  BLRA = 475,
+  BLRA_RVMARKER = 476,
+  BLRNoIP = 477,
+  BLR_BTI = 478,
+  BLR_RVMARKER = 479,
+  BLR_X16 = 480,
+  BMOPA_MPPZZ_S_PSEUDO = 481,
+  BMOPS_MPPZZ_S_PSEUDO = 482,
+  BRA = 483,
+  BR_JumpTable = 484,
+  BSPv16i8 = 485,
+  BSPv8i8 = 486,
+  CATCHRET = 487,
+  CBBAssertExt = 488,
+  CBHAssertExt = 489,
+  CBWPri = 490,
+  CBWPrr = 491,
+  CBXPri = 492,
+  CBXPrr = 493,
+  CHECK_MATCHING_VL_PSEUDO = 494,
+  CLEANUPRET = 495,
+  CLS_ZPmZ_B_UNDEF = 496,
+  CLS_ZPmZ_D_UNDEF = 497,
+  CLS_ZPmZ_H_UNDEF = 498,
+  CLS_ZPmZ_S_UNDEF = 499,
+  CLZ_ZPmZ_B_UNDEF = 500,
+  CLZ_ZPmZ_D_UNDEF = 501,
+  CLZ_ZPmZ_H_UNDEF = 502,
+  CLZ_ZPmZ_S_UNDEF = 503,
+  CMP_SWAP_128 = 504,
+  CMP_SWAP_128_ACQUIRE = 505,
+  CMP_SWAP_128_MONOTONIC = 506,
+  CMP_SWAP_128_RELEASE = 507,
+  CMP_SWAP_16 = 508,
+  CMP_SWAP_32 = 509,
+  CMP_SWAP_64 = 510,
+  CMP_SWAP_8 = 511,
+  CNOT_ZPmZ_B_UNDEF = 512,
+  CNOT_ZPmZ_D_UNDEF = 513,
+  CNOT_ZPmZ_H_UNDEF = 514,
+  CNOT_ZPmZ_S_UNDEF = 515,
+  CNT_ZPmZ_B_UNDEF = 516,
+  CNT_ZPmZ_D_UNDEF = 517,
+  CNT_ZPmZ_H_UNDEF = 518,
+  CNT_ZPmZ_S_UNDEF = 519,
+  COALESCER_BARRIER_FPR128 = 520,
+  COALESCER_BARRIER_FPR16 = 521,
+  COALESCER_BARRIER_FPR32 = 522,
+  COALESCER_BARRIER_FPR64 = 523,
+  CommitZASavePseudo = 524,
+  EMITBKEY = 525,
+  EMITMTETAGGED = 526,
+  EONWrr = 527,
+  EONXrr = 528,
+  EORWrr = 529,
+  EORXrr = 530,
+  EOR_ZPZZ_B_ZERO = 531,
+  EOR_ZPZZ_D_ZERO = 532,
+  EOR_ZPZZ_H_ZERO = 533,
+  EOR_ZPZZ_S_ZERO = 534,
+  EXT_ZZI_CONSTRUCTIVE = 535,
+  EntryPStateSM = 536,
+  F128CSEL = 537,
+  FABD_ZPZZ_D_UNDEF = 538,
+  FABD_ZPZZ_D_ZERO = 539,
+  FABD_ZPZZ_H_UNDEF = 540,
+  FABD_ZPZZ_H_ZERO = 541,
+  FABD_ZPZZ_S_UNDEF = 542,
+  FABD_ZPZZ_S_ZERO = 543,
+  FABS_ZPmZ_D_UNDEF = 544,
+  FABS_ZPmZ_H_UNDEF = 545,
+  FABS_ZPmZ_S_UNDEF = 546,
+  FADD_VG2_M2Z_D_PSEUDO = 547,
+  FADD_VG2_M2Z_H_PSEUDO = 548,
+  FADD_VG2_M2Z_S_PSEUDO = 549,
+  FADD_VG4_M4Z_D_PSEUDO = 550,
+  FADD_VG4_M4Z_H_PSEUDO = 551,
+  FADD_VG4_M4Z_S_PSEUDO = 552,
+  FADD_ZPZI_D_UNDEF = 553,
+  FADD_ZPZI_D_ZERO = 554,
+  FADD_ZPZI_H_UNDEF = 555,
+  FADD_ZPZI_H_ZERO = 556,
+  FADD_ZPZI_S_UNDEF = 557,
+  FADD_ZPZI_S_ZERO = 558,
+  FADD_ZPZZ_D_UNDEF = 559,
+  FADD_ZPZZ_D_ZERO = 560,
+  FADD_ZPZZ_H_UNDEF = 561,
+  FADD_ZPZZ_H_ZERO = 562,
+  FADD_ZPZZ_S_UNDEF = 563,
+  FADD_ZPZZ_S_ZERO = 564,
+  FAMAX_ZPZZ_D_UNDEF = 565,
+  FAMAX_ZPZZ_H_UNDEF = 566,
+  FAMAX_ZPZZ_S_UNDEF = 567,
+  FAMIN_ZPZZ_D_UNDEF = 568,
+  FAMIN_ZPZZ_H_UNDEF = 569,
+  FAMIN_ZPZZ_S_UNDEF = 570,
+  FCVTZS_ZPmZ_DtoD_UNDEF = 571,
+  FCVTZS_ZPmZ_DtoS_UNDEF = 572,
+  FCVTZS_ZPmZ_HtoD_UNDEF = 573,
+  FCVTZS_ZPmZ_HtoH_UNDEF = 574,
+  FCVTZS_ZPmZ_HtoS_UNDEF = 575,
+  FCVTZS_ZPmZ_StoD_UNDEF = 576,
+  FCVTZS_ZPmZ_StoS_UNDEF = 577,
+  FCVTZU_ZPmZ_DtoD_UNDEF = 578,
+  FCVTZU_ZPmZ_DtoS_UNDEF = 579,
+  FCVTZU_ZPmZ_HtoD_UNDEF = 580,
+  FCVTZU_ZPmZ_HtoH_UNDEF = 581,
+  FCVTZU_ZPmZ_HtoS_UNDEF = 582,
+  FCVTZU_ZPmZ_StoD_UNDEF = 583,
+  FCVTZU_ZPmZ_StoS_UNDEF = 584,
+  FCVT_ZPmZ_DtoH_UNDEF = 585,
+  FCVT_ZPmZ_DtoS_UNDEF = 586,
+  FCVT_ZPmZ_HtoD_UNDEF = 587,
+  FCVT_ZPmZ_HtoS_UNDEF = 588,
+  FCVT_ZPmZ_StoD_UNDEF = 589,
+  FCVT_ZPmZ_StoH_UNDEF = 590,
+  FDIVR_ZPZZ_D_ZERO = 591,
+  FDIVR_ZPZZ_H_ZERO = 592,
+  FDIVR_ZPZZ_S_ZERO = 593,
+  FDIV_ZPZZ_D_UNDEF = 594,
+  FDIV_ZPZZ_D_ZERO = 595,
+  FDIV_ZPZZ_H_UNDEF = 596,
+  FDIV_ZPZZ_H_ZERO = 597,
+  FDIV_ZPZZ_S_UNDEF = 598,
+  FDIV_ZPZZ_S_ZERO = 599,
+  FDOT_VG2_M2Z2Z_BtoH_PSEUDO = 600,
+  FDOT_VG2_M2Z2Z_BtoS_PSEUDO = 601,
+  FDOT_VG2_M2Z2Z_HtoS_PSEUDO = 602,
+  FDOT_VG2_M2ZZI_BtoH_PSEUDO = 603,
+  FDOT_VG2_M2ZZI_BtoS_PSEUDO = 604,
+  FDOT_VG2_M2ZZI_HtoS_PSEUDO = 605,
+  FDOT_VG2_M2ZZ_BtoH_PSEUDO = 606,
+  FDOT_VG2_M2ZZ_BtoS_PSEUDO = 607,
+  FDOT_VG2_M2ZZ_HtoS_PSEUDO = 608,
+  FDOT_VG4_M4Z4Z_BtoH_PSEUDO = 609,
+  FDOT_VG4_M4Z4Z_BtoS_PSEUDO = 610,
+  FDOT_VG4_M4Z4Z_HtoS_PSEUDO = 611,
+  FDOT_VG4_M4ZZI_BtoH_PSEUDO = 612,
+  FDOT_VG4_M4ZZI_BtoS_PSEUDO = 613,
+  FDOT_VG4_M4ZZI_HtoS_PSEUDO = 614,
+  FDOT_VG4_M4ZZ_BtoH_PSEUDO = 615,
+  FDOT_VG4_M4ZZ_BtoS_PSEUDO = 616,
+  FDOT_VG4_M4ZZ_HtoS_PSEUDO = 617,
+  FLOGB_ZPZZ_D_ZERO = 618,
+  FLOGB_ZPZZ_H_ZERO = 619,
+  FLOGB_ZPZZ_S_ZERO = 620,
+  FMAXNM_ZPZI_D_UNDEF = 621,
+  FMAXNM_ZPZI_D_ZERO = 622,
+  FMAXNM_ZPZI_H_UNDEF = 623,
+  FMAXNM_ZPZI_H_ZERO = 624,
+  FMAXNM_ZPZI_S_UNDEF = 625,
+  FMAXNM_ZPZI_S_ZERO = 626,
+  FMAXNM_ZPZZ_D_UNDEF = 627,
+  FMAXNM_ZPZZ_D_ZERO = 628,
+  FMAXNM_ZPZZ_H_UNDEF = 629,
+  FMAXNM_ZPZZ_H_ZERO = 630,
+  FMAXNM_ZPZZ_S_UNDEF = 631,
+  FMAXNM_ZPZZ_S_ZERO = 632,
+  FMAX_ZPZI_D_UNDEF = 633,
+  FMAX_ZPZI_D_ZERO = 634,
+  FMAX_ZPZI_H_UNDEF = 635,
+  FMAX_ZPZI_H_ZERO = 636,
+  FMAX_ZPZI_S_UNDEF = 637,
+  FMAX_ZPZI_S_ZERO = 638,
+  FMAX_ZPZZ_D_UNDEF = 639,
+  FMAX_ZPZZ_D_ZERO = 640,
+  FMAX_ZPZZ_H_UNDEF = 641,
+  FMAX_ZPZZ_H_ZERO = 642,
+  FMAX_ZPZZ_S_UNDEF = 643,
+  FMAX_ZPZZ_S_ZERO = 644,
+  FMINNM_ZPZI_D_UNDEF = 645,
+  FMINNM_ZPZI_D_ZERO = 646,
+  FMINNM_ZPZI_H_UNDEF = 647,
+  FMINNM_ZPZI_H_ZERO = 648,
+  FMINNM_ZPZI_S_UNDEF = 649,
+  FMINNM_ZPZI_S_ZERO = 650,
+  FMINNM_ZPZZ_D_UNDEF = 651,
+  FMINNM_ZPZZ_D_ZERO = 652,
+  FMINNM_ZPZZ_H_UNDEF = 653,
+  FMINNM_ZPZZ_H_ZERO = 654,
+  FMINNM_ZPZZ_S_UNDEF = 655,
+  FMINNM_ZPZZ_S_ZERO = 656,
+  FMIN_ZPZI_D_UNDEF = 657,
+  FMIN_ZPZI_D_ZERO = 658,
+  FMIN_ZPZI_H_UNDEF = 659,
+  FMIN_ZPZI_H_ZERO = 660,
+  FMIN_ZPZI_S_UNDEF = 661,
+  FMIN_ZPZI_S_ZERO = 662,
+  FMIN_ZPZZ_D_UNDEF = 663,
+  FMIN_ZPZZ_D_ZERO = 664,
+  FMIN_ZPZZ_H_UNDEF = 665,
+  FMIN_ZPZZ_H_ZERO = 666,
+  FMIN_ZPZZ_S_UNDEF = 667,
+  FMIN_ZPZZ_S_ZERO = 668,
+  FMLALL_MZZI_BtoS_PSEUDO = 669,
+  FMLALL_MZZ_BtoS_PSEUDO = 670,
+  FMLALL_VG2_M2Z2Z_BtoS_PSEUDO = 671,
+  FMLALL_VG2_M2ZZI_BtoS_PSEUDO = 672,
+  FMLALL_VG2_M2ZZ_BtoS_PSEUDO = 673,
+  FMLALL_VG4_M4Z4Z_BtoS_PSEUDO = 674,
+  FMLALL_VG4_M4ZZI_BtoS_PSEUDO = 675,
+  FMLALL_VG4_M4ZZ_BtoS_PSEUDO = 676,
+  FMLAL_MZZI_BtoH_PSEUDO = 677,
+  FMLAL_MZZI_HtoS_PSEUDO = 678,
+  FMLAL_MZZ_HtoS_PSEUDO = 679,
+  FMLAL_VG2_M2Z2Z_BtoH_PSEUDO = 680,
+  FMLAL_VG2_M2Z2Z_HtoS_PSEUDO = 681,
+  FMLAL_VG2_M2ZZI_BtoH_PSEUDO = 682,
+  FMLAL_VG2_M2ZZI_HtoS_PSEUDO = 683,
+  FMLAL_VG2_M2ZZ_BtoH_PSEUDO = 684,
+  FMLAL_VG2_M2ZZ_HtoS_PSEUDO = 685,
+  FMLAL_VG2_MZZ_BtoH_PSEUDO = 686,
+  FMLAL_VG4_M4Z4Z_BtoH_PSEUDO = 687,
+  FMLAL_VG4_M4Z4Z_HtoS_PSEUDO = 688,
+  FMLAL_VG4_M4ZZI_BtoH_PSEUDO = 689,
+  FMLAL_VG4_M4ZZI_HtoS_PSEUDO = 690,
+  FMLAL_VG4_M4ZZ_BtoH_PSEUDO = 691,
+  FMLAL_VG4_M4ZZ_HtoS_PSEUDO = 692,
+  FMLA_VG2_M2Z2Z_D_PSEUDO = 693,
+  FMLA_VG2_M2Z2Z_H_PSEUDO = 694,
+  FMLA_VG2_M2Z2Z_S_PSEUDO = 695,
+  FMLA_VG2_M2ZZI_D_PSEUDO = 696,
+  FMLA_VG2_M2ZZI_H_PSEUDO = 697,
+  FMLA_VG2_M2ZZI_S_PSEUDO = 698,
+  FMLA_VG2_M2ZZ_D_PSEUDO = 699,
+  FMLA_VG2_M2ZZ_H_PSEUDO = 700,
+  FMLA_VG2_M2ZZ_S_PSEUDO = 701,
+  FMLA_VG4_M4Z4Z_D_PSEUDO = 702,
+  FMLA_VG4_M4Z4Z_H_PSEUDO = 703,
+  FMLA_VG4_M4Z4Z_S_PSEUDO = 704,
+  FMLA_VG4_M4ZZI_D_PSEUDO = 705,
+  FMLA_VG4_M4ZZI_H_PSEUDO = 706,
+  FMLA_VG4_M4ZZI_S_PSEUDO = 707,
+  FMLA_VG4_M4ZZ_D_PSEUDO = 708,
+  FMLA_VG4_M4ZZ_H_PSEUDO = 709,
+  FMLA_VG4_M4ZZ_S_PSEUDO = 710,
+  FMLA_ZPZZZ_D_UNDEF = 711,
+  FMLA_ZPZZZ_H_UNDEF = 712,
+  FMLA_ZPZZZ_S_UNDEF = 713,
+  FMLSL_MZZI_HtoS_PSEUDO = 714,
+  FMLSL_MZZ_HtoS_PSEUDO = 715,
+  FMLSL_VG2_M2Z2Z_HtoS_PSEUDO = 716,
+  FMLSL_VG2_M2ZZI_HtoS_PSEUDO = 717,
+  FMLSL_VG2_M2ZZ_HtoS_PSEUDO = 718,
+  FMLSL_VG4_M4Z4Z_HtoS_PSEUDO = 719,
+  FMLSL_VG4_M4ZZI_HtoS_PSEUDO = 720,
+  FMLSL_VG4_M4ZZ_HtoS_PSEUDO = 721,
+  FMLS_VG2_M2Z2Z_D_PSEUDO = 722,
+  FMLS_VG2_M2Z2Z_H_PSEUDO = 723,
+  FMLS_VG2_M2Z2Z_S_PSEUDO = 724,
+  FMLS_VG2_M2ZZI_D_PSEUDO = 725,
+  FMLS_VG2_M2ZZI_H_PSEUDO = 726,
+  FMLS_VG2_M2ZZI_S_PSEUDO = 727,
+  FMLS_VG2_M2ZZ_D_PSEUDO = 728,
+  FMLS_VG2_M2ZZ_H_PSEUDO = 729,
+  FMLS_VG2_M2ZZ_S_PSEUDO = 730,
+  FMLS_VG4_M4Z4Z_D_PSEUDO = 731,
+  FMLS_VG4_M4Z4Z_H_PSEUDO = 732,
+  FMLS_VG4_M4Z4Z_S_PSEUDO = 733,
+  FMLS_VG4_M4ZZI_D_PSEUDO = 734,
+  FMLS_VG4_M4ZZI_H_PSEUDO = 735,
+  FMLS_VG4_M4ZZI_S_PSEUDO = 736,
+  FMLS_VG4_M4ZZ_D_PSEUDO = 737,
+  FMLS_VG4_M4ZZ_H_PSEUDO = 738,
+  FMLS_VG4_M4ZZ_S_PSEUDO = 739,
+  FMLS_ZPZZZ_D_UNDEF = 740,
+  FMLS_ZPZZZ_H_UNDEF = 741,
+  FMLS_ZPZZZ_S_UNDEF = 742,
+  FMOP4A_M2Z2Z_BtoH_PSEUDO = 743,
+  FMOP4A_M2Z2Z_BtoS_PSEUDO = 744,
+  FMOP4A_M2Z2Z_D_PSEUDO = 745,
+  FMOP4A_M2Z2Z_H_PSEUDO = 746,
+  FMOP4A_M2Z2Z_HtoS_PSEUDO = 747,
+  FMOP4A_M2Z2Z_S_PSEUDO = 748,
+  FMOP4A_M2ZZ_BtoH_PSEUDO = 749,
+  FMOP4A_M2ZZ_BtoS_PSEUDO = 750,
+  FMOP4A_M2ZZ_D_PSEUDO = 751,
+  FMOP4A_M2ZZ_H_PSEUDO = 752,
+  FMOP4A_M2ZZ_HtoS_PSEUDO = 753,
+  FMOP4A_M2ZZ_S_PSEUDO = 754,
+  FMOP4A_MZ2Z_BtoH_PSEUDO = 755,
+  FMOP4A_MZ2Z_BtoS_PSEUDO = 756,
+  FMOP4A_MZ2Z_D_PSEUDO = 757,
+  FMOP4A_MZ2Z_H_PSEUDO = 758,
+  FMOP4A_MZ2Z_HtoS_PSEUDO = 759,
+  FMOP4A_MZ2Z_S_PSEUDO = 760,
+  FMOP4A_MZZ_BtoH_PSEUDO = 761,
+  FMOP4A_MZZ_BtoS_PSEUDO = 762,
+  FMOP4A_MZZ_D_PSEUDO = 763,
+  FMOP4A_MZZ_H_PSEUDO = 764,
+  FMOP4A_MZZ_HtoS_PSEUDO = 765,
+  FMOP4A_MZZ_S_PSEUDO = 766,
+  FMOP4S_M2Z2Z_D_PSEUDO = 767,
+  FMOP4S_M2Z2Z_H_PSEUDO = 768,
+  FMOP4S_M2Z2Z_HtoS_PSEUDO = 769,
+  FMOP4S_M2Z2Z_S_PSEUDO = 770,
+  FMOP4S_M2ZZ_D_PSEUDO = 771,
+  FMOP4S_M2ZZ_H_PSEUDO = 772,
+  FMOP4S_M2ZZ_HtoS_PSEUDO = 773,
+  FMOP4S_M2ZZ_S_PSEUDO = 774,
+  FMOP4S_MZ2Z_D_PSEUDO = 775,
+  FMOP4S_MZ2Z_H_PSEUDO = 776,
+  FMOP4S_MZ2Z_HtoS_PSEUDO = 777,
+  FMOP4S_MZ2Z_S_PSEUDO = 778,
+  FMOP4S_MZZ_D_PSEUDO = 779,
+  FMOP4S_MZZ_H_PSEUDO = 780,
+  FMOP4S_MZZ_HtoS_PSEUDO = 781,
+  FMOP4S_MZZ_S_PSEUDO = 782,
+  FMOPAL_MPPZZ_PSEUDO = 783,
+  FMOPA_MPPZZ_BtoH_PSEUDO = 784,
+  FMOPA_MPPZZ_BtoS_PSEUDO = 785,
+  FMOPA_MPPZZ_D_PSEUDO = 786,
+  FMOPA_MPPZZ_H_PSEUDO = 787,
+  FMOPA_MPPZZ_S_PSEUDO = 788,
+  FMOPSL_MPPZZ_PSEUDO = 789,
+  FMOPS_MPPZZ_D_PSEUDO = 790,
+  FMOPS_MPPZZ_H_PSEUDO = 791,
+  FMOPS_MPPZZ_S_PSEUDO = 792,
+  FMOVD0 = 793,
+  FMOVH0 = 794,
+  FMOVS0 = 795,
+  FMULX_ZPZZ_D_UNDEF = 796,
+  FMULX_ZPZZ_D_ZERO = 797,
+  FMULX_ZPZZ_H_UNDEF = 798,
+  FMULX_ZPZZ_H_ZERO = 799,
+  FMULX_ZPZZ_S_UNDEF = 800,
+  FMULX_ZPZZ_S_ZERO = 801,
+  FMUL_ZPZI_D_UNDEF = 802,
+  FMUL_ZPZI_D_ZERO = 803,
+  FMUL_ZPZI_H_UNDEF = 804,
+  FMUL_ZPZI_H_ZERO = 805,
+  FMUL_ZPZI_S_UNDEF = 806,
+  FMUL_ZPZI_S_ZERO = 807,
+  FMUL_ZPZZ_D_UNDEF = 808,
+  FMUL_ZPZZ_D_ZERO = 809,
+  FMUL_ZPZZ_H_UNDEF = 810,
+  FMUL_ZPZZ_H_ZERO = 811,
+  FMUL_ZPZZ_S_UNDEF = 812,
+  FMUL_ZPZZ_S_ZERO = 813,
+  FNEG_ZPmZ_D_UNDEF = 814,
+  FNEG_ZPmZ_H_UNDEF = 815,
+  FNEG_ZPmZ_S_UNDEF = 816,
+  FNMLA_ZPZZZ_D_UNDEF = 817,
+  FNMLA_ZPZZZ_H_UNDEF = 818,
+  FNMLA_ZPZZZ_S_UNDEF = 819,
+  FNMLS_ZPZZZ_D_UNDEF = 820,
+  FNMLS_ZPZZZ_H_UNDEF = 821,
+  FNMLS_ZPZZZ_S_UNDEF = 822,
+  FORM_TRANSPOSED_REG_TUPLE_X2_PSEUDO = 823,
+  FORM_TRANSPOSED_REG_TUPLE_X4_PSEUDO = 824,
+  FRECPX_ZPmZ_D_UNDEF = 825,
+  FRECPX_ZPmZ_H_UNDEF = 826,
+  FRECPX_ZPmZ_S_UNDEF = 827,
+  FRINT32X_ZPmZ_D_UNDEF = 828,
+  FRINT32X_ZPmZ_S_UNDEF = 829,
+  FRINT32Z_ZPmZ_D_UNDEF = 830,
+  FRINT32Z_ZPmZ_S_UNDEF = 831,
+  FRINT64X_ZPmZ_D_UNDEF = 832,
+  FRINT64X_ZPmZ_S_UNDEF = 833,
+  FRINT64Z_ZPmZ_D_UNDEF = 834,
+  FRINT64Z_ZPmZ_S_UNDEF = 835,
+  FRINTA_ZPmZ_D_UNDEF = 836,
+  FRINTA_ZPmZ_H_UNDEF = 837,
+  FRINTA_ZPmZ_S_UNDEF = 838,
+  FRINTI_ZPmZ_D_UNDEF = 839,
+  FRINTI_ZPmZ_H_UNDEF = 840,
+  FRINTI_ZPmZ_S_UNDEF = 841,
+  FRINTM_ZPmZ_D_UNDEF = 842,
+  FRINTM_ZPmZ_H_UNDEF = 843,
+  FRINTM_ZPmZ_S_UNDEF = 844,
+  FRINTN_ZPmZ_D_UNDEF = 845,
+  FRINTN_ZPmZ_H_UNDEF = 846,
+  FRINTN_ZPmZ_S_UNDEF = 847,
+  FRINTP_ZPmZ_D_UNDEF = 848,
+  FRINTP_ZPmZ_H_UNDEF = 849,
+  FRINTP_ZPmZ_S_UNDEF = 850,
+  FRINTX_ZPmZ_D_UNDEF = 851,
+  FRINTX_ZPmZ_H_UNDEF = 852,
+  FRINTX_ZPmZ_S_UNDEF = 853,
+  FRINTZ_ZPmZ_D_UNDEF = 854,
+  FRINTZ_ZPmZ_H_UNDEF = 855,
+  FRINTZ_ZPmZ_S_UNDEF = 856,
+  FSQRT_ZPmZ_D_UNDEF = 857,
+  FSQRT_ZPmZ_H_UNDEF = 858,
+  FSQRT_ZPmZ_S_UNDEF = 859,
+  FSUBR_ZPZI_D_UNDEF = 860,
+  FSUBR_ZPZI_D_ZERO = 861,
+  FSUBR_ZPZI_H_UNDEF = 862,
+  FSUBR_ZPZI_H_ZERO = 863,
+  FSUBR_ZPZI_S_UNDEF = 864,
+  FSUBR_ZPZI_S_ZERO = 865,
+  FSUBR_ZPZZ_D_ZERO = 866,
+  FSUBR_ZPZZ_H_ZERO = 867,
+  FSUBR_ZPZZ_S_ZERO = 868,
+  FSUB_VG2_M2Z_D_PSEUDO = 869,
+  FSUB_VG2_M2Z_H_PSEUDO = 870,
+  FSUB_VG2_M2Z_S_PSEUDO = 871,
+  FSUB_VG4_M4Z_D_PSEUDO = 872,
+  FSUB_VG4_M4Z_H_PSEUDO = 873,
+  FSUB_VG4_M4Z_S_PSEUDO = 874,
+  FSUB_ZPZI_D_UNDEF = 875,
+  FSUB_ZPZI_D_ZERO = 876,
+  FSUB_ZPZI_H_UNDEF = 877,
+  FSUB_ZPZI_H_ZERO = 878,
+  FSUB_ZPZI_S_UNDEF = 879,
+  FSUB_ZPZI_S_ZERO = 880,
+  FSUB_ZPZZ_D_UNDEF = 881,
+  FSUB_ZPZZ_D_ZERO = 882,
+  FSUB_ZPZZ_H_UNDEF = 883,
+  FSUB_ZPZZ_H_ZERO = 884,
+  FSUB_ZPZZ_S_UNDEF = 885,
+  FSUB_ZPZZ_S_ZERO = 886,
+  FTMOPA_M2ZZZI_BtoH_PSEUDO = 887,
+  FTMOPA_M2ZZZI_BtoS_PSEUDO = 888,
+  FTMOPA_M2ZZZI_HtoH_PSEUDO = 889,
+  FTMOPA_M2ZZZI_HtoS_PSEUDO = 890,
+  FTMOPA_M2ZZZI_StoS_PSEUDO = 891,
+  FVDOTB_VG4_M2ZZI_BtoS_PSEUDO = 892,
+  FVDOTT_VG4_M2ZZI_BtoS_PSEUDO = 893,
+  FVDOT_VG2_M2ZZI_BtoH_PSEUDO = 894,
+  FVDOT_VG2_M2ZZI_HtoS_PSEUDO = 895,
+  G_AARCH64_PREFETCH = 896,
+  G_AARCH64_RANGE_PREFETCH = 897,
+  G_ADD_LOW = 898,
+  G_BSP = 899,
+  G_DUP = 900,
+  G_DUPLANE16 = 901,
+  G_DUPLANE32 = 902,
+  G_DUPLANE64 = 903,
+  G_DUPLANE8 = 904,
+  G_EXT = 905,
+  G_FCMEQ = 906,
+  G_FCMGE = 907,
+  G_FCMGT = 908,
+  G_FPTRUNC_ODD = 909,
+  G_PMULL = 910,
+  G_REV16 = 911,
+  G_REV32 = 912,
+  G_REV64 = 913,
+  G_SADDLP = 914,
+  G_SADDLV = 915,
+  G_SDOT = 916,
+  G_SITOF = 917,
+  G_SLI = 918,
+  G_SMULL = 919,
+  G_SQSHLU_I = 920,
+  G_SRI = 921,
+  G_SRSHR_I = 922,
+  G_TRN1 = 923,
+  G_TRN2 = 924,
+  G_UADDLP = 925,
+  G_UADDLV = 926,
+  G_UDOT = 927,
+  G_UITOF = 928,
+  G_UMULL = 929,
+  G_URSHR_I = 930,
+  G_USDOT = 931,
+  G_UZP1 = 932,
+  G_UZP2 = 933,
+  G_VASHR = 934,
+  G_VLSHR = 935,
+  G_ZIP1 = 936,
+  G_ZIP2 = 937,
+  GetSMESaveSize = 938,
+  HOM_Epilog = 939,
+  HOM_Prolog = 940,
+  HWASAN_CHECK_MEMACCESS = 941,
+  HWASAN_CHECK_MEMACCESS_FIXEDSHADOW = 942,
+  HWASAN_CHECK_MEMACCESS_SHORTGRANULES = 943,
+  HWASAN_CHECK_MEMACCESS_SHORTGRANULES_FIXEDSHADOW = 944,
+  INSERT_MXIPZ_H_PSEUDO_B = 945,
+  INSERT_MXIPZ_H_PSEUDO_D = 946,
+  INSERT_MXIPZ_H_PSEUDO_H = 947,
+  INSERT_MXIPZ_H_PSEUDO_Q = 948,
+  INSERT_MXIPZ_H_PSEUDO_S = 949,
+  INSERT_MXIPZ_V_PSEUDO_B = 950,
+  INSERT_MXIPZ_V_PSEUDO_D = 951,
+  INSERT_MXIPZ_V_PSEUDO_H = 952,
+  INSERT_MXIPZ_V_PSEUDO_Q = 953,
+  INSERT_MXIPZ_V_PSEUDO_S = 954,
+  IRGstack = 955,
+  InOutZAUsePseudo = 956,
+  InitTPIDR2Obj = 957,
+  JumpTableDest16 = 958,
+  JumpTableDest32 = 959,
+  JumpTableDest8 = 960,
+  KCFI_CHECK = 961,
+  LD1B_2Z_IMM_PSEUDO = 962,
+  LD1B_2Z_PSEUDO = 963,
+  LD1B_4Z_IMM_PSEUDO = 964,
+  LD1B_4Z_PSEUDO = 965,
+  LD1D_2Z_IMM_PSEUDO = 966,
+  LD1D_2Z_PSEUDO = 967,
+  LD1D_4Z_IMM_PSEUDO = 968,
+  LD1D_4Z_PSEUDO = 969,
+  LD1H_2Z_IMM_PSEUDO = 970,
+  LD1H_2Z_PSEUDO = 971,
+  LD1H_4Z_IMM_PSEUDO = 972,
+  LD1H_4Z_PSEUDO = 973,
+  LD1W_2Z_IMM_PSEUDO = 974,
+  LD1W_2Z_PSEUDO = 975,
+  LD1W_4Z_IMM_PSEUDO = 976,
+  LD1W_4Z_PSEUDO = 977,
+  LD1_MXIPXX_H_PSEUDO_B = 978,
+  LD1_MXIPXX_H_PSEUDO_D = 979,
+  LD1_MXIPXX_H_PSEUDO_H = 980,
+  LD1_MXIPXX_H_PSEUDO_Q = 981,
+  LD1_MXIPXX_H_PSEUDO_S = 982,
+  LD1_MXIPXX_V_PSEUDO_B = 983,
+  LD1_MXIPXX_V_PSEUDO_D = 984,
+  LD1_MXIPXX_V_PSEUDO_H = 985,
+  LD1_MXIPXX_V_PSEUDO_Q = 986,
+  LD1_MXIPXX_V_PSEUDO_S = 987,
+  LDNT1B_2Z_IMM_PSEUDO = 988,
+  LDNT1B_2Z_PSEUDO = 989,
+  LDNT1B_4Z_IMM_PSEUDO = 990,
+  LDNT1B_4Z_PSEUDO = 991,
+  LDNT1D_2Z_IMM_PSEUDO = 992,
+  LDNT1D_2Z_PSEUDO = 993,
+  LDNT1D_4Z_IMM_PSEUDO = 994,
+  LDNT1D_4Z_PSEUDO = 995,
+  LDNT1H_2Z_IMM_PSEUDO = 996,
+  LDNT1H_2Z_PSEUDO = 997,
+  LDNT1H_4Z_IMM_PSEUDO = 998,
+  LDNT1H_4Z_PSEUDO = 999,
+  LDNT1W_2Z_IMM_PSEUDO = 1000,
+  LDNT1W_2Z_PSEUDO = 1001,
+  LDNT1W_4Z_IMM_PSEUDO = 1002,
+  LDNT1W_4Z_PSEUDO = 1003,
+  LDR_PPXI = 1004,
+  LDR_TX_PSEUDO = 1005,
+  LDR_ZA_PSEUDO = 1006,
+  LDR_ZZXI = 1007,
+  LDR_ZZXI_STRIDED_CONTIGUOUS = 1008,
+  LDR_ZZZXI = 1009,
+  LDR_ZZZZXI = 1010,
+  LDR_ZZZZXI_STRIDED_CONTIGUOUS = 1011,
+  LOADauthptrstatic = 1012,
+  LOADgot = 1013,
+  LOADgotAUTH = 1014,
+  LOADgotPAC = 1015,
+  LSL_ZPZI_B_UNDEF = 1016,
+  LSL_ZPZI_B_ZERO = 1017,
+  LSL_ZPZI_D_UNDEF = 1018,
+  LSL_ZPZI_D_ZERO = 1019,
+  LSL_ZPZI_H_UNDEF = 1020,
+  LSL_ZPZI_H_ZERO = 1021,
+  LSL_ZPZI_S_UNDEF = 1022,
+  LSL_ZPZI_S_ZERO = 1023,
+  LSL_ZPZZ_B_UNDEF = 1024,
+  LSL_ZPZZ_B_ZERO = 1025,
+  LSL_ZPZZ_D_UNDEF = 1026,
+  LSL_ZPZZ_D_ZERO = 1027,
+  LSL_ZPZZ_H_UNDEF = 1028,
+  LSL_ZPZZ_H_ZERO = 1029,
+  LSL_ZPZZ_S_UNDEF = 1030,
+  LSL_ZPZZ_S_ZERO = 1031,
+  LSR_ZPZI_B_UNDEF = 1032,
+  LSR_ZPZI_B_ZERO = 1033,
+  LSR_ZPZI_D_UNDEF = 1034,
+  LSR_ZPZI_D_ZERO = 1035,
+  LSR_ZPZI_H_UNDEF = 1036,
+  LSR_ZPZI_H_ZERO = 1037,
+  LSR_ZPZI_S_UNDEF = 1038,
+  LSR_ZPZI_S_ZERO = 1039,
+  LSR_ZPZZ_B_UNDEF = 1040,
+  LSR_ZPZZ_B_ZERO = 1041,
+  LSR_ZPZZ_D_UNDEF = 1042,
+  LSR_ZPZZ_D_ZERO = 1043,
+  LSR_ZPZZ_H_UNDEF = 1044,
+  LSR_ZPZZ_H_ZERO = 1045,
+  LSR_ZPZZ_S_UNDEF = 1046,
+  LSR_ZPZZ_S_ZERO = 1047,
+  MLA_ZPZZZ_B_UNDEF = 1048,
+  MLA_ZPZZZ_D_UNDEF = 1049,
+  MLA_ZPZZZ_H_UNDEF = 1050,
+  MLA_ZPZZZ_S_UNDEF = 1051,
+  MLS_ZPZZZ_B_UNDEF = 1052,
+  MLS_ZPZZZ_D_UNDEF = 1053,
+  MLS_ZPZZZ_H_UNDEF = 1054,
+  MLS_ZPZZZ_S_UNDEF = 1055,
+  MOPSMemoryCopyPseudo = 1056,
+  MOPSMemoryMovePseudo = 1057,
+  MOPSMemorySetPseudo = 1058,
+  MOPSMemorySetTaggingPseudo = 1059,
+  MOVAZ_2ZMI_H_B_PSEUDO = 1060,
+  MOVAZ_2ZMI_H_D_PSEUDO = 1061,
+  MOVAZ_2ZMI_H_H_PSEUDO = 1062,
+  MOVAZ_2ZMI_H_S_PSEUDO = 1063,
+  MOVAZ_2ZMI_V_B_PSEUDO = 1064,
+  MOVAZ_2ZMI_V_D_PSEUDO = 1065,
+  MOVAZ_2ZMI_V_H_PSEUDO = 1066,
+  MOVAZ_2ZMI_V_S_PSEUDO = 1067,
+  MOVAZ_4ZMI_H_B_PSEUDO = 1068,
+  MOVAZ_4ZMI_H_D_PSEUDO = 1069,
+  MOVAZ_4ZMI_H_H_PSEUDO = 1070,
+  MOVAZ_4ZMI_H_S_PSEUDO = 1071,
+  MOVAZ_4ZMI_V_B_PSEUDO = 1072,
+  MOVAZ_4ZMI_V_D_PSEUDO = 1073,
+  MOVAZ_4ZMI_V_H_PSEUDO = 1074,
+  MOVAZ_4ZMI_V_S_PSEUDO = 1075,
+  MOVAZ_VG2_2ZMXI_PSEUDO = 1076,
+  MOVAZ_VG4_4ZMXI_PSEUDO = 1077,
+  MOVAZ_ZMI_H_B_PSEUDO = 1078,
+  MOVAZ_ZMI_H_D_PSEUDO = 1079,
+  MOVAZ_ZMI_H_H_PSEUDO = 1080,
+  MOVAZ_ZMI_H_Q_PSEUDO = 1081,
+  MOVAZ_ZMI_H_S_PSEUDO = 1082,
+  MOVAZ_ZMI_V_B_PSEUDO = 1083,
+  MOVAZ_ZMI_V_D_PSEUDO = 1084,
+  MOVAZ_ZMI_V_H_PSEUDO = 1085,
+  MOVAZ_ZMI_V_Q_PSEUDO = 1086,
+  MOVAZ_ZMI_V_S_PSEUDO = 1087,
+  MOVA_MXI2Z_H_B_PSEUDO = 1088,
+  MOVA_MXI2Z_H_D_PSEUDO = 1089,
+  MOVA_MXI2Z_H_H_PSEUDO = 1090,
+  MOVA_MXI2Z_H_S_PSEUDO = 1091,
+  MOVA_MXI2Z_V_B_PSEUDO = 1092,
+  MOVA_MXI2Z_V_D_PSEUDO = 1093,
+  MOVA_MXI2Z_V_H_PSEUDO = 1094,
+  MOVA_MXI2Z_V_S_PSEUDO = 1095,
+  MOVA_MXI4Z_H_B_PSEUDO = 1096,
+  MOVA_MXI4Z_H_D_PSEUDO = 1097,
+  MOVA_MXI4Z_H_H_PSEUDO = 1098,
+  MOVA_MXI4Z_H_S_PSEUDO = 1099,
+  MOVA_MXI4Z_V_B_PSEUDO = 1100,
+  MOVA_MXI4Z_V_D_PSEUDO = 1101,
+  MOVA_MXI4Z_V_H_PSEUDO = 1102,
+  MOVA_MXI4Z_V_S_PSEUDO = 1103,
+  MOVA_VG2_MXI2Z_PSEUDO = 1104,
+  MOVA_VG4_MXI4Z_PSEUDO = 1105,
+  MOVMCSym = 1106,
+  MOVT_TIZ_PSEUDO = 1107,
+  MOVaddr = 1108,
+  MOVaddrBA = 1109,
+  MOVaddrCP = 1110,
+  MOVaddrEXT = 1111,
+  MOVaddrJT = 1112,
+  MOVaddrPAC = 1113,
+  MOVaddrTLS = 1114,
+  MOVbaseTLS = 1115,
+  MOVi32imm = 1116,
+  MOVi64imm = 1117,
+  MRS_FPCR = 1118,
+  MRS_FPSR = 1119,
+  MSR_FPCR = 1120,
+  MSR_FPMR = 1121,
+  MSR_FPSR = 1122,
+  MSRpstatePseudo = 1123,
+  MUL_ZPZZ_B_UNDEF = 1124,
+  MUL_ZPZZ_D_UNDEF = 1125,
+  MUL_ZPZZ_H_UNDEF = 1126,
+  MUL_ZPZZ_S_UNDEF = 1127,
+  NEG_ZPmZ_B_UNDEF = 1128,
+  NEG_ZPmZ_D_UNDEF = 1129,
+  NEG_ZPmZ_H_UNDEF = 1130,
+  NEG_ZPmZ_S_UNDEF = 1131,
+  NOT_ZPmZ_B_UNDEF = 1132,
+  NOT_ZPmZ_D_UNDEF = 1133,
+  NOT_ZPmZ_H_UNDEF = 1134,
+  NOT_ZPmZ_S_UNDEF = 1135,
+  ORNWrr = 1136,
+  ORNXrr = 1137,
+  ORRWrr = 1138,
+  ORRXrr = 1139,
+  ORR_ZPZZ_B_ZERO = 1140,
+  ORR_ZPZZ_D_ZERO = 1141,
+  ORR_ZPZZ_H_ZERO = 1142,
+  ORR_ZPZZ_S_ZERO = 1143,
+  PAC = 1144,
+  PAUTH_EPILOGUE = 1145,
+  PAUTH_PROLOGUE = 1146,
+  PROBED_STACKALLOC = 1147,
+  PROBED_STACKALLOC_DYN = 1148,
+  PROBED_STACKALLOC_VAR = 1149,
+  PTEST_PP_ANY = 1150,
+  PTEST_PP_FIRST = 1151,
+  RET_ReallyLR = 1152,
+  RequiresZASavePseudo = 1153,
+  RequiresZT0SavePseudo = 1154,
+  RestoreZAPseudo = 1155,
+  SABD_ZPZZ_B_UNDEF = 1156,
+  SABD_ZPZZ_D_UNDEF = 1157,
+  SABD_ZPZZ_H_UNDEF = 1158,
+  SABD_ZPZZ_S_UNDEF = 1159,
+  SCVTF_ZPmZ_DtoD_UNDEF = 1160,
+  SCVTF_ZPmZ_DtoH_UNDEF = 1161,
+  SCVTF_ZPmZ_DtoS_UNDEF = 1162,
+  SCVTF_ZPmZ_HtoH_UNDEF = 1163,
+  SCVTF_ZPmZ_StoD_UNDEF = 1164,
+  SCVTF_ZPmZ_StoH_UNDEF = 1165,
+  SCVTF_ZPmZ_StoS_UNDEF = 1166,
+  SDIV_ZPZZ_D_UNDEF = 1167,
+  SDIV_ZPZZ_S_UNDEF = 1168,
+  SDOT_VG2_M2Z2Z_BtoS_PSEUDO = 1169,
+  SDOT_VG2_M2Z2Z_HtoD_PSEUDO = 1170,
+  SDOT_VG2_M2Z2Z_HtoS_PSEUDO = 1171,
+  SDOT_VG2_M2ZZI_BToS_PSEUDO = 1172,
+  SDOT_VG2_M2ZZI_HToS_PSEUDO = 1173,
+  SDOT_VG2_M2ZZI_HtoD_PSEUDO = 1174,
+  SDOT_VG2_M2ZZ_BtoS_PSEUDO = 1175,
+  SDOT_VG2_M2ZZ_HtoD_PSEUDO = 1176,
+  SDOT_VG2_M2ZZ_HtoS_PSEUDO = 1177,
+  SDOT_VG4_M4Z4Z_BtoS_PSEUDO = 1178,
+  SDOT_VG4_M4Z4Z_HtoD_PSEUDO = 1179,
+  SDOT_VG4_M4Z4Z_HtoS_PSEUDO = 1180,
+  SDOT_VG4_M4ZZI_BToS_PSEUDO = 1181,
+  SDOT_VG4_M4ZZI_HToS_PSEUDO = 1182,
+  SDOT_VG4_M4ZZI_HtoD_PSEUDO = 1183,
+  SDOT_VG4_M4ZZ_BtoS_PSEUDO = 1184,
+  SDOT_VG4_M4ZZ_HtoD_PSEUDO = 1185,
+  SDOT_VG4_M4ZZ_HtoS_PSEUDO = 1186,
+  SEH_AddFP = 1187,
+  SEH_AllocZ = 1188,
+  SEH_EpilogEnd = 1189,
+  SEH_EpilogStart = 1190,
+  SEH_Nop = 1191,
+  SEH_PACSignLR = 1192,
+  SEH_PrologEnd = 1193,
+  SEH_SaveAnyRegI = 1194,
+  SEH_SaveAnyRegIP = 1195,
+  SEH_SaveAnyRegQP = 1196,
+  SEH_SaveAnyRegQPX = 1197,
+  SEH_SaveFPLR = 1198,
+  SEH_SaveFPLR_X = 1199,
+  SEH_SaveFReg = 1200,
+  SEH_SaveFRegP = 1201,
+  SEH_SaveFRegP_X = 1202,
+  SEH_SaveFReg_X = 1203,
+  SEH_SavePReg = 1204,
+  SEH_SaveReg = 1205,
+  SEH_SaveRegP = 1206,
+  SEH_SaveRegP_X = 1207,
+  SEH_SaveReg_X = 1208,
+  SEH_SaveZReg = 1209,
+  SEH_SetFP = 1210,
+  SEH_StackAlloc = 1211,
+  SHSUB_ZPZZ_B_UNDEF = 1212,
+  SHSUB_ZPZZ_D_UNDEF = 1213,
+  SHSUB_ZPZZ_H_UNDEF = 1214,
+  SHSUB_ZPZZ_S_UNDEF = 1215,
+  SMAX_ZPZZ_B_UNDEF = 1216,
+  SMAX_ZPZZ_D_UNDEF = 1217,
+  SMAX_ZPZZ_H_UNDEF = 1218,
+  SMAX_ZPZZ_S_UNDEF = 1219,
+  SMEStateAllocPseudo = 1220,
+  SMIN_ZPZZ_B_UNDEF = 1221,
+  SMIN_ZPZZ_D_UNDEF = 1222,
+  SMIN_ZPZZ_H_UNDEF = 1223,
+  SMIN_ZPZZ_S_UNDEF = 1224,
+  SMLALL_MZZI_BtoS_PSEUDO = 1225,
+  SMLALL_MZZI_HtoD_PSEUDO = 1226,
+  SMLALL_MZZ_BtoS_PSEUDO = 1227,
+  SMLALL_MZZ_HtoD_PSEUDO = 1228,
+  SMLALL_VG2_M2Z2Z_BtoS_PSEUDO = 1229,
+  SMLALL_VG2_M2Z2Z_HtoD_PSEUDO = 1230,
+  SMLALL_VG2_M2ZZI_BtoS_PSEUDO = 1231,
+  SMLALL_VG2_M2ZZI_HtoD_PSEUDO = 1232,
+  SMLALL_VG2_M2ZZ_BtoS_PSEUDO = 1233,
+  SMLALL_VG2_M2ZZ_HtoD_PSEUDO = 1234,
+  SMLALL_VG4_M4Z4Z_BtoS_PSEUDO = 1235,
+  SMLALL_VG4_M4Z4Z_HtoD_PSEUDO = 1236,
+  SMLALL_VG4_M4ZZI_BtoS_PSEUDO = 1237,
+  SMLALL_VG4_M4ZZI_HtoD_PSEUDO = 1238,
+  SMLALL_VG4_M4ZZ_BtoS_PSEUDO = 1239,
+  SMLALL_VG4_M4ZZ_HtoD_PSEUDO = 1240,
+  SMLAL_MZZI_HtoS_PSEUDO = 1241,
+  SMLAL_MZZ_HtoS_PSEUDO = 1242,
+  SMLAL_VG2_M2Z2Z_HtoS_PSEUDO = 1243,
+  SMLAL_VG2_M2ZZI_S_PSEUDO = 1244,
+  SMLAL_VG2_M2ZZ_HtoS_PSEUDO = 1245,
+  SMLAL_VG4_M4Z4Z_HtoS_PSEUDO = 1246,
+  SMLAL_VG4_M4ZZI_HtoS_PSEUDO = 1247,
+  SMLAL_VG4_M4ZZ_HtoS_PSEUDO = 1248,
+  SMLSLL_MZZI_BtoS_PSEUDO = 1249,
+  SMLSLL_MZZI_HtoD_PSEUDO = 1250,
+  SMLSLL_MZZ_BtoS_PSEUDO = 1251,
+  SMLSLL_MZZ_HtoD_PSEUDO = 1252,
+  SMLSLL_VG2_M2Z2Z_BtoS_PSEUDO = 1253,
+  SMLSLL_VG2_M2Z2Z_HtoD_PSEUDO = 1254,
+  SMLSLL_VG2_M2ZZI_BtoS_PSEUDO = 1255,
+  SMLSLL_VG2_M2ZZI_HtoD_PSEUDO = 1256,
+  SMLSLL_VG2_M2ZZ_BtoS_PSEUDO = 1257,
+  SMLSLL_VG2_M2ZZ_HtoD_PSEUDO = 1258,
+  SMLSLL_VG4_M4Z4Z_BtoS_PSEUDO = 1259,
+  SMLSLL_VG4_M4Z4Z_HtoD_PSEUDO = 1260,
+  SMLSLL_VG4_M4ZZI_BtoS_PSEUDO = 1261,
+  SMLSLL_VG4_M4ZZI_HtoD_PSEUDO = 1262,
+  SMLSLL_VG4_M4ZZ_BtoS_PSEUDO = 1263,
+  SMLSLL_VG4_M4ZZ_HtoD_PSEUDO = 1264,
+  SMLSL_MZZI_HtoS_PSEUDO = 1265,
+  SMLSL_MZZ_HtoS_PSEUDO = 1266,
+  SMLSL_VG2_M2Z2Z_HtoS_PSEUDO = 1267,
+  SMLSL_VG2_M2ZZI_S_PSEUDO = 1268,
+  SMLSL_VG2_M2ZZ_HtoS_PSEUDO = 1269,
+  SMLSL_VG4_M4Z4Z_HtoS_PSEUDO = 1270,
+  SMLSL_VG4_M4ZZI_HtoS_PSEUDO = 1271,
+  SMLSL_VG4_M4ZZ_HtoS_PSEUDO = 1272,
+  SMOP4A_M2Z2Z_BToS_PSEUDO = 1273,
+  SMOP4A_M2Z2Z_HToS_PSEUDO = 1274,
+  SMOP4A_M2Z2Z_HtoD_PSEUDO = 1275,
+  SMOP4A_M2ZZ_BToS_PSEUDO = 1276,
+  SMOP4A_M2ZZ_HToS_PSEUDO = 1277,
+  SMOP4A_M2ZZ_HtoD_PSEUDO = 1278,
+  SMOP4A_MZ2Z_BToS_PSEUDO = 1279,
+  SMOP4A_MZ2Z_HToS_PSEUDO = 1280,
+  SMOP4A_MZ2Z_HtoD_PSEUDO = 1281,
+  SMOP4A_MZZ_BToS_PSEUDO = 1282,
+  SMOP4A_MZZ_HToS_PSEUDO = 1283,
+  SMOP4A_MZZ_HtoD_PSEUDO = 1284,
+  SMOP4S_M2Z2Z_BToS_PSEUDO = 1285,
+  SMOP4S_M2Z2Z_HToS_PSEUDO = 1286,
+  SMOP4S_M2Z2Z_HtoD_PSEUDO = 1287,
+  SMOP4S_M2ZZ_BToS_PSEUDO = 1288,
+  SMOP4S_M2ZZ_HToS_PSEUDO = 1289,
+  SMOP4S_M2ZZ_HtoD_PSEUDO = 1290,
+  SMOP4S_MZ2Z_BToS_PSEUDO = 1291,
+  SMOP4S_MZ2Z_HToS_PSEUDO = 1292,
+  SMOP4S_MZ2Z_HtoD_PSEUDO = 1293,
+  SMOP4S_MZZ_BToS_PSEUDO = 1294,
+  SMOP4S_MZZ_HToS_PSEUDO = 1295,
+  SMOP4S_MZZ_HtoD_PSEUDO = 1296,
+  SMOPA_MPPZZ_D_PSEUDO = 1297,
+  SMOPA_MPPZZ_HtoS_PSEUDO = 1298,
+  SMOPA_MPPZZ_S_PSEUDO = 1299,
+  SMOPS_MPPZZ_D_PSEUDO = 1300,
+  SMOPS_MPPZZ_HtoS_PSEUDO = 1301,
+  SMOPS_MPPZZ_S_PSEUDO = 1302,
+  SMULH_ZPZZ_B_UNDEF = 1303,
+  SMULH_ZPZZ_D_UNDEF = 1304,
+  SMULH_ZPZZ_H_UNDEF = 1305,
+  SMULH_ZPZZ_S_UNDEF = 1306,
+  SPACE = 1307,
+  SQABS_ZPmZ_B_UNDEF = 1308,
+  SQABS_ZPmZ_D_UNDEF = 1309,
+  SQABS_ZPmZ_H_UNDEF = 1310,
+  SQABS_ZPmZ_S_UNDEF = 1311,
+  SQNEG_ZPmZ_B_UNDEF = 1312,
+  SQNEG_ZPmZ_D_UNDEF = 1313,
+  SQNEG_ZPmZ_H_UNDEF = 1314,
+  SQNEG_ZPmZ_S_UNDEF = 1315,
+  SQRSHL_ZPZZ_B_UNDEF = 1316,
+  SQRSHL_ZPZZ_D_UNDEF = 1317,
+  SQRSHL_ZPZZ_H_UNDEF = 1318,
+  SQRSHL_ZPZZ_S_UNDEF = 1319,
+  SQSHLU_ZPZI_B_ZERO = 1320,
+  SQSHLU_ZPZI_D_ZERO = 1321,
+  SQSHLU_ZPZI_H_ZERO = 1322,
+  SQSHLU_ZPZI_S_ZERO = 1323,
+  SQSHL_ZPZI_B_UNDEF = 1324,
+  SQSHL_ZPZI_B_ZERO = 1325,
+  SQSHL_ZPZI_D_UNDEF = 1326,
+  SQSHL_ZPZI_D_ZERO = 1327,
+  SQSHL_ZPZI_H_UNDEF = 1328,
+  SQSHL_ZPZI_H_ZERO = 1329,
+  SQSHL_ZPZI_S_UNDEF = 1330,
+  SQSHL_ZPZI_S_ZERO = 1331,
+  SQSHL_ZPZZ_B_UNDEF = 1332,
+  SQSHL_ZPZZ_D_UNDEF = 1333,
+  SQSHL_ZPZZ_H_UNDEF = 1334,
+  SQSHL_ZPZZ_S_UNDEF = 1335,
+  SRSHL_ZPZZ_B_UNDEF = 1336,
+  SRSHL_ZPZZ_D_UNDEF = 1337,
+  SRSHL_ZPZZ_H_UNDEF = 1338,
+  SRSHL_ZPZZ_S_UNDEF = 1339,
+  SRSHR_ZPZI_B_ZERO = 1340,
+  SRSHR_ZPZI_D_ZERO = 1341,
+  SRSHR_ZPZI_H_ZERO = 1342,
+  SRSHR_ZPZI_S_ZERO = 1343,
+  STGloop = 1344,
+  STGloop_wback = 1345,
+  STMOPA_M2ZZZI_BtoS_PSEUDO = 1346,
+  STMOPA_M2ZZZI_HtoS_PSEUDO = 1347,
+  STR_PPXI = 1348,
+  STR_TX_PSEUDO = 1349,
+  STR_ZZXI = 1350,
+  STR_ZZXI_STRIDED_CONTIGUOUS = 1351,
+  STR_ZZZXI = 1352,
+  STR_ZZZZXI = 1353,
+  STR_ZZZZXI_STRIDED_CONTIGUOUS = 1354,
+  STZGloop = 1355,
+  STZGloop_wback = 1356,
+  SUBR_ZPZZ_B_ZERO = 1357,
+  SUBR_ZPZZ_D_ZERO = 1358,
+  SUBR_ZPZZ_H_ZERO = 1359,
+  SUBR_ZPZZ_S_ZERO = 1360,
+  SUBSWrr = 1361,
+  SUBSXrr = 1362,
+  SUBWrr = 1363,
+  SUBXrr = 1364,
+  SUB_VG2_M2Z2Z_D_PSEUDO = 1365,
+  SUB_VG2_M2Z2Z_S_PSEUDO = 1366,
+  SUB_VG2_M2ZZ_D_PSEUDO = 1367,
+  SUB_VG2_M2ZZ_S_PSEUDO = 1368,
+  SUB_VG2_M2Z_D_PSEUDO = 1369,
+  SUB_VG2_M2Z_S_PSEUDO = 1370,
+  SUB_VG4_M4Z4Z_D_PSEUDO = 1371,
+  SUB_VG4_M4Z4Z_S_PSEUDO = 1372,
+  SUB_VG4_M4ZZ_D_PSEUDO = 1373,
+  SUB_VG4_M4ZZ_S_PSEUDO = 1374,
+  SUB_VG4_M4Z_D_PSEUDO = 1375,
+  SUB_VG4_M4Z_S_PSEUDO = 1376,
+  SUB_ZPZZ_B_ZERO = 1377,
+  SUB_ZPZZ_D_ZERO = 1378,
+  SUB_ZPZZ_H_ZERO = 1379,
+  SUB_ZPZZ_S_ZERO = 1380,
+  SUDOT_VG2_M2ZZI_BToS_PSEUDO = 1381,
+  SUDOT_VG2_M2ZZ_BToS_PSEUDO = 1382,
+  SUDOT_VG4_M4ZZI_BToS_PSEUDO = 1383,
+  SUDOT_VG4_M4ZZ_BToS_PSEUDO = 1384,
+  SUMLALL_MZZI_BtoS_PSEUDO = 1385,
+  SUMLALL_VG2_M2ZZI_BtoS_PSEUDO = 1386,
+  SUMLALL_VG2_M2ZZ_BtoS_PSEUDO = 1387,
+  SUMLALL_VG4_M4ZZI_BtoS_PSEUDO = 1388,
+  SUMLALL_VG4_M4ZZ_BtoS_PSEUDO = 1389,
+  SUMOP4A_M2Z2Z_BToS_PSEUDO = 1390,
+  SUMOP4A_M2Z2Z_HtoD_PSEUDO = 1391,
+  SUMOP4A_M2ZZ_BToS_PSEUDO = 1392,
+  SUMOP4A_M2ZZ_HtoD_PSEUDO = 1393,
+  SUMOP4A_MZ2Z_BToS_PSEUDO = 1394,
+  SUMOP4A_MZ2Z_HtoD_PSEUDO = 1395,
+  SUMOP4A_MZZ_BToS_PSEUDO = 1396,
+  SUMOP4A_MZZ_HtoD_PSEUDO = 1397,
+  SUMOP4S_M2Z2Z_BToS_PSEUDO = 1398,
+  SUMOP4S_M2Z2Z_HtoD_PSEUDO = 1399,
+  SUMOP4S_M2ZZ_BToS_PSEUDO = 1400,
+  SUMOP4S_M2ZZ_HtoD_PSEUDO = 1401,
+  SUMOP4S_MZ2Z_BToS_PSEUDO = 1402,
+  SUMOP4S_MZ2Z_HtoD_PSEUDO = 1403,
+  SUMOP4S_MZZ_BToS_PSEUDO = 1404,
+  SUMOP4S_MZZ_HtoD_PSEUDO = 1405,
+  SUMOPA_MPPZZ_D_PSEUDO = 1406,
+  SUMOPA_MPPZZ_S_PSEUDO = 1407,
+  SUMOPS_MPPZZ_D_PSEUDO = 1408,
+  SUMOPS_MPPZZ_S_PSEUDO = 1409,
+  SUTMOPA_M2ZZZI_BtoS_PSEUDO = 1410,
+  SUVDOT_VG4_M4ZZI_BToS_PSEUDO = 1411,
+  SVDOT_VG2_M2ZZI_HtoS_PSEUDO = 1412,
+  SVDOT_VG4_M4ZZI_BtoS_PSEUDO = 1413,
+  SVDOT_VG4_M4ZZI_HtoD_PSEUDO = 1414,
+  SXTB_ZPmZ_D_UNDEF = 1415,
+  SXTB_ZPmZ_H_UNDEF = 1416,
+  SXTB_ZPmZ_S_UNDEF = 1417,
+  SXTH_ZPmZ_D_UNDEF = 1418,
+  SXTH_ZPmZ_S_UNDEF = 1419,
+  SXTW_ZPmZ_D_UNDEF = 1420,
+  SpeculationBarrierISBDSBEndBB = 1421,
+  SpeculationBarrierSBEndBB = 1422,
+  SpeculationSafeValueW = 1423,
+  SpeculationSafeValueX = 1424,
+  StoreSwiftAsyncContext = 1425,
+  TAGPstack = 1426,
+  TCRETURNdi = 1427,
+  TCRETURNri = 1428,
+  TCRETURNriALL = 1429,
+  TCRETURNrinotx16 = 1430,
+  TCRETURNrix16x17 = 1431,
+  TCRETURNrix17 = 1432,
+  TLSDESCCALL = 1433,
+  TLSDESC_AUTH_CALLSEQ = 1434,
+  TLSDESC_CALLSEQ = 1435,
+  UABD_ZPZZ_B_UNDEF = 1436,
+  UABD_ZPZZ_D_UNDEF = 1437,
+  UABD_ZPZZ_H_UNDEF = 1438,
+  UABD_ZPZZ_S_UNDEF = 1439,
+  UCVTF_ZPmZ_DtoD_UNDEF = 1440,
+  UCVTF_ZPmZ_DtoH_UNDEF = 1441,
+  UCVTF_ZPmZ_DtoS_UNDEF = 1442,
+  UCVTF_ZPmZ_HtoH_UNDEF = 1443,
+  UCVTF_ZPmZ_StoD_UNDEF = 1444,
+  UCVTF_ZPmZ_StoH_UNDEF = 1445,
+  UCVTF_ZPmZ_StoS_UNDEF = 1446,
+  UDIV_ZPZZ_D_UNDEF = 1447,
+  UDIV_ZPZZ_S_UNDEF = 1448,
+  UDOT_VG2_M2Z2Z_BtoS_PSEUDO = 1449,
+  UDOT_VG2_M2Z2Z_HtoD_PSEUDO = 1450,
+  UDOT_VG2_M2Z2Z_HtoS_PSEUDO = 1451,
+  UDOT_VG2_M2ZZI_BToS_PSEUDO = 1452,
+  UDOT_VG2_M2ZZI_HToS_PSEUDO = 1453,
+  UDOT_VG2_M2ZZI_HtoD_PSEUDO = 1454,
+  UDOT_VG2_M2ZZ_BtoS_PSEUDO = 1455,
+  UDOT_VG2_M2ZZ_HtoD_PSEUDO = 1456,
+  UDOT_VG2_M2ZZ_HtoS_PSEUDO = 1457,
+  UDOT_VG4_M4Z4Z_BtoS_PSEUDO = 1458,
+  UDOT_VG4_M4Z4Z_HtoD_PSEUDO = 1459,
+  UDOT_VG4_M4Z4Z_HtoS_PSEUDO = 1460,
+  UDOT_VG4_M4ZZI_BtoS_PSEUDO = 1461,
+  UDOT_VG4_M4ZZI_HToS_PSEUDO = 1462,
+  UDOT_VG4_M4ZZI_HtoD_PSEUDO = 1463,
+  UDOT_VG4_M4ZZ_BtoS_PSEUDO = 1464,
+  UDOT_VG4_M4ZZ_HtoD_PSEUDO = 1465,
+  UDOT_VG4_M4ZZ_HtoS_PSEUDO = 1466,
+  UHSUB_ZPZZ_B_UNDEF = 1467,
+  UHSUB_ZPZZ_D_UNDEF = 1468,
+  UHSUB_ZPZZ_H_UNDEF = 1469,
+  UHSUB_ZPZZ_S_UNDEF = 1470,
+  UMAX_ZPZZ_B_UNDEF = 1471,
+  UMAX_ZPZZ_D_UNDEF = 1472,
+  UMAX_ZPZZ_H_UNDEF = 1473,
+  UMAX_ZPZZ_S_UNDEF = 1474,
+  UMIN_ZPZZ_B_UNDEF = 1475,
+  UMIN_ZPZZ_D_UNDEF = 1476,
+  UMIN_ZPZZ_H_UNDEF = 1477,
+  UMIN_ZPZZ_S_UNDEF = 1478,
+  UMLALL_MZZI_BtoS_PSEUDO = 1479,
+  UMLALL_MZZI_HtoD_PSEUDO = 1480,
+  UMLALL_MZZ_BtoS_PSEUDO = 1481,
+  UMLALL_MZZ_HtoD_PSEUDO = 1482,
+  UMLALL_VG2_M2Z2Z_BtoS_PSEUDO = 1483,
+  UMLALL_VG2_M2Z2Z_HtoD_PSEUDO = 1484,
+  UMLALL_VG2_M2ZZI_BtoS_PSEUDO = 1485,
+  UMLALL_VG2_M2ZZI_HtoD_PSEUDO = 1486,
+  UMLALL_VG2_M2ZZ_BtoS_PSEUDO = 1487,
+  UMLALL_VG2_M2ZZ_HtoD_PSEUDO = 1488,
+  UMLALL_VG4_M4Z4Z_BtoS_PSEUDO = 1489,
+  UMLALL_VG4_M4Z4Z_HtoD_PSEUDO = 1490,
+  UMLALL_VG4_M4ZZI_BtoS_PSEUDO = 1491,
+  UMLALL_VG4_M4ZZI_HtoD_PSEUDO = 1492,
+  UMLALL_VG4_M4ZZ_BtoS_PSEUDO = 1493,
+  UMLALL_VG4_M4ZZ_HtoD_PSEUDO = 1494,
+  UMLAL_MZZI_HtoS_PSEUDO = 1495,
+  UMLAL_MZZ_HtoS_PSEUDO = 1496,
+  UMLAL_VG2_M2Z2Z_HtoS_PSEUDO = 1497,
+  UMLAL_VG2_M2ZZI_S_PSEUDO = 1498,
+  UMLAL_VG2_M2ZZ_HtoS_PSEUDO = 1499,
+  UMLAL_VG4_M4Z4Z_HtoS_PSEUDO = 1500,
+  UMLAL_VG4_M4ZZI_HtoS_PSEUDO = 1501,
+  UMLAL_VG4_M4ZZ_HtoS_PSEUDO = 1502,
+  UMLSLL_MZZI_BtoS_PSEUDO = 1503,
+  UMLSLL_MZZI_HtoD_PSEUDO = 1504,
+  UMLSLL_MZZ_BtoS_PSEUDO = 1505,
+  UMLSLL_MZZ_HtoD_PSEUDO = 1506,
+  UMLSLL_VG2_M2Z2Z_BtoS_PSEUDO = 1507,
+  UMLSLL_VG2_M2Z2Z_HtoD_PSEUDO = 1508,
+  UMLSLL_VG2_M2ZZI_BtoS_PSEUDO = 1509,
+  UMLSLL_VG2_M2ZZI_HtoD_PSEUDO = 1510,
+  UMLSLL_VG2_M2ZZ_BtoS_PSEUDO = 1511,
+  UMLSLL_VG2_M2ZZ_HtoD_PSEUDO = 1512,
+  UMLSLL_VG4_M4Z4Z_BtoS_PSEUDO = 1513,
+  UMLSLL_VG4_M4Z4Z_HtoD_PSEUDO = 1514,
+  UMLSLL_VG4_M4ZZI_BtoS_PSEUDO = 1515,
+  UMLSLL_VG4_M4ZZI_HtoD_PSEUDO = 1516,
+  UMLSLL_VG4_M4ZZ_BtoS_PSEUDO = 1517,
+  UMLSLL_VG4_M4ZZ_HtoD_PSEUDO = 1518,
+  UMLSL_MZZI_HtoS_PSEUDO = 1519,
+  UMLSL_MZZ_HtoS_PSEUDO = 1520,
+  UMLSL_VG2_M2Z2Z_HtoS_PSEUDO = 1521,
+  UMLSL_VG2_M2ZZI_S_PSEUDO = 1522,
+  UMLSL_VG2_M2ZZ_HtoS_PSEUDO = 1523,
+  UMLSL_VG4_M4Z4Z_HtoS_PSEUDO = 1524,
+  UMLSL_VG4_M4ZZI_HtoS_PSEUDO = 1525,
+  UMLSL_VG4_M4ZZ_HtoS_PSEUDO = 1526,
+  UMOP4A_M2Z2Z_BToS_PSEUDO = 1527,
+  UMOP4A_M2Z2Z_HToS_PSEUDO = 1528,
+  UMOP4A_M2Z2Z_HtoD_PSEUDO = 1529,
+  UMOP4A_M2ZZ_BToS_PSEUDO = 1530,
+  UMOP4A_M2ZZ_HToS_PSEUDO = 1531,
+  UMOP4A_M2ZZ_HtoD_PSEUDO = 1532,
+  UMOP4A_MZ2Z_BToS_PSEUDO = 1533,
+  UMOP4A_MZ2Z_HToS_PSEUDO = 1534,
+  UMOP4A_MZ2Z_HtoD_PSEUDO = 1535,
+  UMOP4A_MZZ_BToS_PSEUDO = 1536,
+  UMOP4A_MZZ_HToS_PSEUDO = 1537,
+  UMOP4A_MZZ_HtoD_PSEUDO = 1538,
+  UMOP4S_M2Z2Z_BToS_PSEUDO = 1539,
+  UMOP4S_M2Z2Z_HToS_PSEUDO = 1540,
+  UMOP4S_M2Z2Z_HtoD_PSEUDO = 1541,
+  UMOP4S_M2ZZ_BToS_PSEUDO = 1542,
+  UMOP4S_M2ZZ_HToS_PSEUDO = 1543,
+  UMOP4S_M2ZZ_HtoD_PSEUDO = 1544,
+  UMOP4S_MZ2Z_BToS_PSEUDO = 1545,
+  UMOP4S_MZ2Z_HToS_PSEUDO = 1546,
+  UMOP4S_MZ2Z_HtoD_PSEUDO = 1547,
+  UMOP4S_MZZ_BToS_PSEUDO = 1548,
+  UMOP4S_MZZ_HToS_PSEUDO = 1549,
+  UMOP4S_MZZ_HtoD_PSEUDO = 1550,
+  UMOPA_MPPZZ_D_PSEUDO = 1551,
+  UMOPA_MPPZZ_HtoS_PSEUDO = 1552,
+  UMOPA_MPPZZ_S_PSEUDO = 1553,
+  UMOPS_MPPZZ_D_PSEUDO = 1554,
+  UMOPS_MPPZZ_HtoS_PSEUDO = 1555,
+  UMOPS_MPPZZ_S_PSEUDO = 1556,
+  UMULH_ZPZZ_B_UNDEF = 1557,
+  UMULH_ZPZZ_D_UNDEF = 1558,
+  UMULH_ZPZZ_H_UNDEF = 1559,
+  UMULH_ZPZZ_S_UNDEF = 1560,
+  UQRSHL_ZPZZ_B_UNDEF = 1561,
+  UQRSHL_ZPZZ_D_UNDEF = 1562,
+  UQRSHL_ZPZZ_H_UNDEF = 1563,
+  UQRSHL_ZPZZ_S_UNDEF = 1564,
+  UQSHL_ZPZI_B_UNDEF = 1565,
+  UQSHL_ZPZI_B_ZERO = 1566,
+  UQSHL_ZPZI_D_UNDEF = 1567,
+  UQSHL_ZPZI_D_ZERO = 1568,
+  UQSHL_ZPZI_H_UNDEF = 1569,
+  UQSHL_ZPZI_H_ZERO = 1570,
+  UQSHL_ZPZI_S_UNDEF = 1571,
+  UQSHL_ZPZI_S_ZERO = 1572,
+  UQSHL_ZPZZ_B_UNDEF = 1573,
+  UQSHL_ZPZZ_D_UNDEF = 1574,
+  UQSHL_ZPZZ_H_UNDEF = 1575,
+  UQSHL_ZPZZ_S_UNDEF = 1576,
+  URECPE_ZPmZ_S_UNDEF = 1577,
+  URSHL_ZPZZ_B_UNDEF = 1578,
+  URSHL_ZPZZ_D_UNDEF = 1579,
+  URSHL_ZPZZ_H_UNDEF = 1580,
+  URSHL_ZPZZ_S_UNDEF = 1581,
+  URSHR_ZPZI_B_ZERO = 1582,
+  URSHR_ZPZI_D_ZERO = 1583,
+  URSHR_ZPZI_H_ZERO = 1584,
+  URSHR_ZPZI_S_ZERO = 1585,
+  URSQRTE_ZPmZ_S_UNDEF = 1586,
+  USDOT_VG2_M2Z2Z_BToS_PSEUDO = 1587,
+  USDOT_VG2_M2ZZI_BToS_PSEUDO = 1588,
+  USDOT_VG2_M2ZZ_BToS_PSEUDO = 1589,
+  USDOT_VG4_M4Z4Z_BToS_PSEUDO = 1590,
+  USDOT_VG4_M4ZZI_BToS_PSEUDO = 1591,
+  USDOT_VG4_M4ZZ_BToS_PSEUDO = 1592,
+  USMLALL_MZZI_BtoS_PSEUDO = 1593,
+  USMLALL_MZZ_BtoS_PSEUDO = 1594,
+  USMLALL_VG2_M2Z2Z_BtoS_PSEUDO = 1595,
+  USMLALL_VG2_M2ZZI_BtoS_PSEUDO = 1596,
+  USMLALL_VG2_M2ZZ_BtoS_PSEUDO = 1597,
+  USMLALL_VG4_M4Z4Z_BtoS_PSEUDO = 1598,
+  USMLALL_VG4_M4ZZI_BtoS_PSEUDO = 1599,
+  USMLALL_VG4_M4ZZ_BtoS_PSEUDO = 1600,
+  USMOP4A_M2Z2Z_BToS_PSEUDO = 1601,
+  USMOP4A_M2Z2Z_HtoD_PSEUDO = 1602,
+  USMOP4A_M2ZZ_BToS_PSEUDO = 1603,
+  USMOP4A_M2ZZ_HtoD_PSEUDO = 1604,
+  USMOP4A_MZ2Z_BToS_PSEUDO = 1605,
+  USMOP4A_MZ2Z_HtoD_PSEUDO = 1606,
+  USMOP4A_MZZ_BToS_PSEUDO = 1607,
+  USMOP4A_MZZ_HtoD_PSEUDO = 1608,
+  USMOP4S_M2Z2Z_BToS_PSEUDO = 1609,
+  USMOP4S_M2Z2Z_HtoD_PSEUDO = 1610,
+  USMOP4S_M2ZZ_BToS_PSEUDO = 1611,
+  USMOP4S_M2ZZ_HtoD_PSEUDO = 1612,
+  USMOP4S_MZ2Z_BToS_PSEUDO = 1613,
+  USMOP4S_MZ2Z_HtoD_PSEUDO = 1614,
+  USMOP4S_MZZ_BToS_PSEUDO = 1615,
+  USMOP4S_MZZ_HtoD_PSEUDO = 1616,
+  USMOPA_MPPZZ_D_PSEUDO = 1617,
+  USMOPA_MPPZZ_S_PSEUDO = 1618,
+  USMOPS_MPPZZ_D_PSEUDO = 1619,
+  USMOPS_MPPZZ_S_PSEUDO = 1620,
+  USTMOPA_M2ZZZI_BtoS_PSEUDO = 1621,
+  USVDOT_VG4_M4ZZI_BToS_PSEUDO = 1622,
+  UTMOPA_M2ZZZI_BtoS_PSEUDO = 1623,
+  UTMOPA_M2ZZZI_HtoS_PSEUDO = 1624,
+  UVDOT_VG2_M2ZZI_HtoS_PSEUDO = 1625,
+  UVDOT_VG4_M4ZZI_BtoS_PSEUDO = 1626,
+  UVDOT_VG4_M4ZZI_HtoD_PSEUDO = 1627,
+  UXTB_ZPmZ_D_UNDEF = 1628,
+  UXTB_ZPmZ_H_UNDEF = 1629,
+  UXTB_ZPmZ_S_UNDEF = 1630,
+  UXTH_ZPmZ_D_UNDEF = 1631,
+  UXTH_ZPmZ_S_UNDEF = 1632,
+  UXTW_ZPmZ_D_UNDEF = 1633,
+  ZERO_MXI_2Z_PSEUDO = 1634,
+  ZERO_MXI_4Z_PSEUDO = 1635,
+  ZERO_MXI_VG2_2Z_PSEUDO = 1636,
+  ZERO_MXI_VG2_4Z_PSEUDO = 1637,
+  ZERO_MXI_VG2_Z_PSEUDO = 1638,
+  ZERO_MXI_VG4_2Z_PSEUDO = 1639,
+  ZERO_MXI_VG4_4Z_PSEUDO = 1640,
+  ZERO_MXI_VG4_Z_PSEUDO = 1641,
+  ZERO_M_PSEUDO = 1642,
+  ZERO_T_PSEUDO = 1643,
+  ABSWr = 1644,
+  ABSXr = 1645,
+  ABS_ZPmZ_B = 1646,
+  ABS_ZPmZ_D = 1647,
+  ABS_ZPmZ_H = 1648,
+  ABS_ZPmZ_S = 1649,
+  ABS_ZPzZ_B = 1650,
+  ABS_ZPzZ_D = 1651,
+  ABS_ZPzZ_H = 1652,
+  ABS_ZPzZ_S = 1653,
+  ABSv16i8 = 1654,
+  ABSv1i64 = 1655,
+  ABSv2i32 = 1656,
+  ABSv2i64 = 1657,
+  ABSv4i16 = 1658,
+  ABSv4i32 = 1659,
+  ABSv8i16 = 1660,
+  ABSv8i8 = 1661,
+  ADCLB_ZZZ_D = 1662,
+  ADCLB_ZZZ_S = 1663,
+  ADCLT_ZZZ_D = 1664,
+  ADCLT_ZZZ_S = 1665,
+  ADCSWr = 1666,
+  ADCSXr = 1667,
+  ADCWr = 1668,
+  ADCXr = 1669,
+  ADDG = 1670,
+  ADDHA_MPPZ_D = 1671,
+  ADDHA_MPPZ_S = 1672,
+  ADDHNB_ZZZ_B = 1673,
+  ADDHNB_ZZZ_H = 1674,
+  ADDHNB_ZZZ_S = 1675,
+  ADDHNT_ZZZ_B = 1676,
+  ADDHNT_ZZZ_H = 1677,
+  ADDHNT_ZZZ_S = 1678,
+  ADDHNv2i64_v2i32 = 1679,
+  ADDHNv2i64_v4i32 = 1680,
+  ADDHNv4i32_v4i16 = 1681,
+  ADDHNv4i32_v8i16 = 1682,
+  ADDHNv8i16_v16i8 = 1683,
+  ADDHNv8i16_v8i8 = 1684,
+  ADDPL_XXI = 1685,
+  ADDPT_shift = 1686,
+  ADDP_ZPmZ_B = 1687,
+  ADDP_ZPmZ_D = 1688,
+  ADDP_ZPmZ_H = 1689,
+  ADDP_ZPmZ_S = 1690,
+  ADDPv16i8 = 1691,
+  ADDPv2i32 = 1692,
+  ADDPv2i64 = 1693,
+  ADDPv2i64p = 1694,
+  ADDPv4i16 = 1695,
+  ADDPv4i32 = 1696,
+  ADDPv8i16 = 1697,
+  ADDPv8i8 = 1698,
+  ADDQP_ZZZ_B = 1699,
+  ADDQP_ZZZ_D = 1700,
+  ADDQP_ZZZ_H = 1701,
+  ADDQP_ZZZ_S = 1702,
+  ADDQV_VPZ_B = 1703,
+  ADDQV_VPZ_D = 1704,
+  ADDQV_VPZ_H = 1705,
+  ADDQV_VPZ_S = 1706,
+  ADDSPL_XXI = 1707,
+  ADDSUBP_ZZZ_B = 1708,
+  ADDSUBP_ZZZ_D = 1709,
+  ADDSUBP_ZZZ_H = 1710,
+  ADDSUBP_ZZZ_S = 1711,
+  ADDSVL_XXI = 1712,
+  ADDSWri = 1713,
+  ADDSWrs = 1714,
+  ADDSWrx = 1715,
+  ADDSXri = 1716,
+  ADDSXrs = 1717,
+  ADDSXrx = 1718,
+  ADDSXrx64 = 1719,
+  ADDVA_MPPZ_D = 1720,
+  ADDVA_MPPZ_S = 1721,
+  ADDVL_XXI = 1722,
+  ADDVv16i8v = 1723,
+  ADDVv4i16v = 1724,
+  ADDVv4i32v = 1725,
+  ADDVv8i16v = 1726,
+  ADDVv8i8v = 1727,
+  ADDWri = 1728,
+  ADDWrs = 1729,
+  ADDWrx = 1730,
+  ADDXri = 1731,
+  ADDXrs = 1732,
+  ADDXrx = 1733,
+  ADDXrx64 = 1734,
+  ADD_VG2_2ZZ_B = 1735,
+  ADD_VG2_2ZZ_D = 1736,
+  ADD_VG2_2ZZ_H = 1737,
+  ADD_VG2_2ZZ_S = 1738,
+  ADD_VG2_M2Z2Z_D = 1739,
+  ADD_VG2_M2Z2Z_S = 1740,
+  ADD_VG2_M2ZZ_D = 1741,
+  ADD_VG2_M2ZZ_S = 1742,
+  ADD_VG2_M2Z_D = 1743,
+  ADD_VG2_M2Z_S = 1744,
+  ADD_VG4_4ZZ_B = 1745,
+  ADD_VG4_4ZZ_D = 1746,
+  ADD_VG4_4ZZ_H = 1747,
+  ADD_VG4_4ZZ_S = 1748,
+  ADD_VG4_M4Z4Z_D = 1749,
+  ADD_VG4_M4Z4Z_S = 1750,
+  ADD_VG4_M4ZZ_D = 1751,
+  ADD_VG4_M4ZZ_S = 1752,
+  ADD_VG4_M4Z_D = 1753,
+  ADD_VG4_M4Z_S = 1754,
+  ADD_ZI_B = 1755,
+  ADD_ZI_D = 1756,
+  ADD_ZI_H = 1757,
+  ADD_ZI_S = 1758,
+  ADD_ZPmZ_B = 1759,
+  ADD_ZPmZ_CPA = 1760,
+  ADD_ZPmZ_D = 1761,
+  ADD_ZPmZ_H = 1762,
+  ADD_ZPmZ_S = 1763,
+  ADD_ZZZ_B = 1764,
+  ADD_ZZZ_CPA = 1765,
+  ADD_ZZZ_D = 1766,
+  ADD_ZZZ_H = 1767,
+  ADD_ZZZ_S = 1768,
+  ADDv16i8 = 1769,
+  ADDv1i64 = 1770,
+  ADDv2i32 = 1771,
+  ADDv2i64 = 1772,
+  ADDv4i16 = 1773,
+  ADDv4i32 = 1774,
+  ADDv8i16 = 1775,
+  ADDv8i8 = 1776,
+  ADR = 1777,
+  ADRP = 1778,
+  ADR_LSL_ZZZ_D_0 = 1779,
+  ADR_LSL_ZZZ_D_1 = 1780,
+  ADR_LSL_ZZZ_D_2 = 1781,
+  ADR_LSL_ZZZ_D_3 = 1782,
+  ADR_LSL_ZZZ_S_0 = 1783,
+  ADR_LSL_ZZZ_S_1 = 1784,
+  ADR_LSL_ZZZ_S_2 = 1785,
+  ADR_LSL_ZZZ_S_3 = 1786,
+  ADR_SXTW_ZZZ_D_0 = 1787,
+  ADR_SXTW_ZZZ_D_1 = 1788,
+  ADR_SXTW_ZZZ_D_2 = 1789,
+  ADR_SXTW_ZZZ_D_3 = 1790,
+  ADR_UXTW_ZZZ_D_0 = 1791,
+  ADR_UXTW_ZZZ_D_1 = 1792,
+  ADR_UXTW_ZZZ_D_2 = 1793,
+  ADR_UXTW_ZZZ_D_3 = 1794,
+  AESDIMC_2ZZI_B = 1795,
+  AESDIMC_4ZZI_B = 1796,
+  AESD_2ZZI_B = 1797,
+  AESD_4ZZI_B = 1798,
+  AESD_ZZZ_B = 1799,
+  AESDrr = 1800,
+  AESEMC_2ZZI_B = 1801,
+  AESEMC_4ZZI_B = 1802,
+  AESE_2ZZI_B = 1803,
+  AESE_4ZZI_B = 1804,
+  AESE_ZZZ_B = 1805,
+  AESErr = 1806,
+  AESIMC_ZZ_B = 1807,
+  AESIMCrr = 1808,
+  AESMC_ZZ_B = 1809,
+  AESMCrr = 1810,
+  ANDQV_VPZ_B = 1811,
+  ANDQV_VPZ_D = 1812,
+  ANDQV_VPZ_H = 1813,
+  ANDQV_VPZ_S = 1814,
+  ANDSWri = 1815,
+  ANDSWrs = 1816,
+  ANDSXri = 1817,
+  ANDSXrs = 1818,
+  ANDS_PPzPP = 1819,
+  ANDV_VPZ_B = 1820,
+  ANDV_VPZ_D = 1821,
+  ANDV_VPZ_H = 1822,
+  ANDV_VPZ_S = 1823,
+  ANDWri = 1824,
+  ANDWrs = 1825,
+  ANDXri = 1826,
+  ANDXrs = 1827,
+  AND_PPzPP = 1828,
+  AND_ZI = 1829,
+  AND_ZPmZ_B = 1830,
+  AND_ZPmZ_D = 1831,
+  AND_ZPmZ_H = 1832,
+  AND_ZPmZ_S = 1833,
+  AND_ZZZ = 1834,
+  ANDv16i8 = 1835,
+  ANDv8i8 = 1836,
+  APAS = 1837,
+  ASRD_ZPmI_B = 1838,
+  ASRD_ZPmI_D = 1839,
+  ASRD_ZPmI_H = 1840,
+  ASRD_ZPmI_S = 1841,
+  ASRR_ZPmZ_B = 1842,
+  ASRR_ZPmZ_D = 1843,
+  ASRR_ZPmZ_H = 1844,
+  ASRR_ZPmZ_S = 1845,
+  ASRVWr = 1846,
+  ASRVXr = 1847,
+  ASR_WIDE_ZPmZ_B = 1848,
+  ASR_WIDE_ZPmZ_H = 1849,
+  ASR_WIDE_ZPmZ_S = 1850,
+  ASR_WIDE_ZZZ_B = 1851,
+  ASR_WIDE_ZZZ_H = 1852,
+  ASR_WIDE_ZZZ_S = 1853,
+  ASR_ZPmI_B = 1854,
+  ASR_ZPmI_D = 1855,
+  ASR_ZPmI_H = 1856,
+  ASR_ZPmI_S = 1857,
+  ASR_ZPmZ_B = 1858,
+  ASR_ZPmZ_D = 1859,
+  ASR_ZPmZ_H = 1860,
+  ASR_ZPmZ_S = 1861,
+  ASR_ZZI_B = 1862,
+  ASR_ZZI_D = 1863,
+  ASR_ZZI_H = 1864,
+  ASR_ZZI_S = 1865,
+  AUTDA = 1866,
+  AUTDB = 1867,
+  AUTDZA = 1868,
+  AUTDZB = 1869,
+  AUTIA = 1870,
+  AUTIA1716 = 1871,
+  AUTIA171615 = 1872,
+  AUTIASP = 1873,
+  AUTIASPPCi = 1874,
+  AUTIASPPCr = 1875,
+  AUTIAZ = 1876,
+  AUTIB = 1877,
+  AUTIB1716 = 1878,
+  AUTIB171615 = 1879,
+  AUTIBSP = 1880,
+  AUTIBSPPCi = 1881,
+  AUTIBSPPCr = 1882,
+  AUTIBZ = 1883,
+  AUTIZA = 1884,
+  AUTIZB = 1885,
+  AXFLAG = 1886,
+  B = 1887,
+  BCAX = 1888,
+  BCAX_ZZZZ = 1889,
+  BCcc = 1890,
+  BDEP_ZZZ_B = 1891,
+  BDEP_ZZZ_D = 1892,
+  BDEP_ZZZ_H = 1893,
+  BDEP_ZZZ_S = 1894,
+  BEXT_ZZZ_B = 1895,
+  BEXT_ZZZ_D = 1896,
+  BEXT_ZZZ_H = 1897,
+  BEXT_ZZZ_S = 1898,
+  BF16DOTlanev4bf16 = 1899,
+  BF16DOTlanev8bf16 = 1900,
+  BF1CVTL = 1901,
+  BF1CVTL2 = 1902,
+  BF1CVTLT_ZZ_BtoH = 1903,
+  BF1CVTL_2ZZ_BtoH = 1904,
+  BF1CVT_2ZZ_BtoH = 1905,
+  BF1CVT_ZZ_BtoH = 1906,
+  BF2CVTL = 1907,
+  BF2CVTL2 = 1908,
+  BF2CVTLT_ZZ_BtoH = 1909,
+  BF2CVTL_2ZZ_BtoH = 1910,
+  BF2CVT_2ZZ_BtoH = 1911,
+  BF2CVT_ZZ_BtoH = 1912,
+  BFADD_VG2_M2Z_H = 1913,
+  BFADD_VG4_M4Z_H = 1914,
+  BFADD_ZPmZZ = 1915,
+  BFADD_ZZZ = 1916,
+  BFCLAMP_VG2_2ZZZ_H = 1917,
+  BFCLAMP_VG4_4ZZZ_H = 1918,
+  BFCLAMP_ZZZ = 1919,
+  BFCVT = 1920,
+  BFCVTN = 1921,
+  BFCVTN2 = 1922,
+  BFCVTNT_ZPmZ = 1923,
+  BFCVTNT_ZPzZ_StoH = 1924,
+  BFCVTN_Z2Z_HtoB = 1925,
+  BFCVTN_Z2Z_StoH = 1926,
+  BFCVT_Z2Z_HtoB = 1927,
+  BFCVT_Z2Z_StoH = 1928,
+  BFCVT_ZPmZ = 1929,
+  BFCVT_ZPzZ_StoH = 1930,
+  BFDOT_VG2_M2Z2Z_HtoS = 1931,
+  BFDOT_VG2_M2ZZI_HtoS = 1932,
+  BFDOT_VG2_M2ZZ_HtoS = 1933,
+  BFDOT_VG4_M4Z4Z_HtoS = 1934,
+  BFDOT_VG4_M4ZZI_HtoS = 1935,
+  BFDOT_VG4_M4ZZ_HtoS = 1936,
+  BFDOT_ZZI = 1937,
+  BFDOT_ZZZ = 1938,
+  BFDOTv4bf16 = 1939,
+  BFDOTv8bf16 = 1940,
+  BFMAXNM_VG2_2Z2Z_H = 1941,
+  BFMAXNM_VG2_2ZZ_H = 1942,
+  BFMAXNM_VG4_4Z2Z_H = 1943,
+  BFMAXNM_VG4_4ZZ_H = 1944,
+  BFMAXNM_ZPmZZ = 1945,
+  BFMAX_VG2_2Z2Z_H = 1946,
+  BFMAX_VG2_2ZZ_H = 1947,
+  BFMAX_VG4_4Z2Z_H = 1948,
+  BFMAX_VG4_4ZZ_H = 1949,
+  BFMAX_ZPmZZ = 1950,
+  BFMINNM_VG2_2Z2Z_H = 1951,
+  BFMINNM_VG2_2ZZ_H = 1952,
+  BFMINNM_VG4_4Z2Z_H = 1953,
+  BFMINNM_VG4_4ZZ_H = 1954,
+  BFMINNM_ZPmZZ = 1955,
+  BFMIN_VG2_2Z2Z_H = 1956,
+  BFMIN_VG2_2ZZ_H = 1957,
+  BFMIN_VG4_4Z2Z_H = 1958,
+  BFMIN_VG4_4ZZ_H = 1959,
+  BFMIN_ZPmZZ = 1960,
+  BFMLALB = 1961,
+  BFMLALBIdx = 1962,
+  BFMLALB_ZZZ = 1963,
+  BFMLALB_ZZZI = 1964,
+  BFMLALT = 1965,
+  BFMLALTIdx = 1966,
+  BFMLALT_ZZZ = 1967,
+  BFMLALT_ZZZI = 1968,
+  BFMLAL_MZZI_HtoS = 1969,
+  BFMLAL_MZZ_HtoS = 1970,
+  BFMLAL_VG2_M2Z2Z_HtoS = 1971,
+  BFMLAL_VG2_M2ZZI_HtoS = 1972,
+  BFMLAL_VG2_M2ZZ_HtoS = 1973,
+  BFMLAL_VG4_M4Z4Z_HtoS = 1974,
+  BFMLAL_VG4_M4ZZI_HtoS = 1975,
+  BFMLAL_VG4_M4ZZ_HtoS = 1976,
+  BFMLA_VG2_M2Z2Z = 1977,
+  BFMLA_VG2_M2ZZ = 1978,
+  BFMLA_VG2_M2ZZI = 1979,
+  BFMLA_VG4_M4Z4Z = 1980,
+  BFMLA_VG4_M4ZZ = 1981,
+  BFMLA_VG4_M4ZZI = 1982,
+  BFMLA_ZPmZZ = 1983,
+  BFMLA_ZZZI = 1984,
+  BFMLSLB_ZZZI_S = 1985,
+  BFMLSLB_ZZZ_S = 1986,
+  BFMLSLT_ZZZI_S = 1987,
+  BFMLSLT_ZZZ_S = 1988,
+  BFMLSL_MZZI_HtoS = 1989,
+  BFMLSL_MZZ_HtoS = 1990,
+  BFMLSL_VG2_M2Z2Z_HtoS = 1991,
+  BFMLSL_VG2_M2ZZI_HtoS = 1992,
+  BFMLSL_VG2_M2ZZ_HtoS = 1993,
+  BFMLSL_VG4_M4Z4Z_HtoS = 1994,
+  BFMLSL_VG4_M4ZZI_HtoS = 1995,
+  BFMLSL_VG4_M4ZZ_HtoS = 1996,
+  BFMLS_VG2_M2Z2Z = 1997,
+  BFMLS_VG2_M2ZZ = 1998,
+  BFMLS_VG2_M2ZZI = 1999,
+  BFMLS_VG4_M4Z4Z = 2000,
+  BFMLS_VG4_M4ZZ = 2001,
+  BFMLS_VG4_M4ZZI = 2002,
+  BFMLS_ZPmZZ = 2003,
+  BFMLS_ZZZI = 2004,
+  BFMMLA = 2005,
+  BFMMLA_ZZZ_H = 2006,
+  BFMMLA_ZZZ_HtoS = 2007,
+  BFMOP4A_M2Z2Z_H = 2008,
+  BFMOP4A_M2Z2Z_S = 2009,
+  BFMOP4A_M2ZZ_H = 2010,
+  BFMOP4A_M2ZZ_S = 2011,
+  BFMOP4A_MZ2Z_H = 2012,
+  BFMOP4A_MZ2Z_S = 2013,
+  BFMOP4A_MZZ_H = 2014,
+  BFMOP4A_MZZ_S = 2015,
+  BFMOP4S_M2Z2Z_H = 2016,
+  BFMOP4S_M2Z2Z_S = 2017,
+  BFMOP4S_M2ZZ_H = 2018,
+  BFMOP4S_M2ZZ_S = 2019,
+  BFMOP4S_MZ2Z_H = 2020,
+  BFMOP4S_MZ2Z_S = 2021,
+  BFMOP4S_MZZ_H = 2022,
+  BFMOP4S_MZZ_S = 2023,
+  BFMOPA_MPPZZ = 2024,
+  BFMOPA_MPPZZ_H = 2025,
+  BFMOPS_MPPZZ = 2026,
+  BFMOPS_MPPZZ_H = 2027,
+  BFMUL_2Z2Z = 2028,
+  BFMUL_2ZZ = 2029,
+  BFMUL_4Z4Z = 2030,
+  BFMUL_4ZZ = 2031,
+  BFMUL_ZPmZZ = 2032,
+  BFMUL_ZZZ = 2033,
+  BFMUL_ZZZI = 2034,
+  BFMWri = 2035,
+  BFMXri = 2036,
+  BFSCALE_2Z2Z = 2037,
+  BFSCALE_2ZZ = 2038,
+  BFSCALE_4Z4Z = 2039,
+  BFSCALE_4ZZ = 2040,
+  BFSCALE_ZPZZ_H = 2041,
+  BFSUB_VG2_M2Z_H = 2042,
+  BFSUB_VG4_M4Z_H = 2043,
+  BFSUB_ZPmZZ = 2044,
+  BFSUB_ZZZ = 2045,
+  BFTMOPA_M2ZZZI_HtoH = 2046,
+  BFTMOPA_M2ZZZI_HtoS = 2047,
+  BFVDOT_VG2_M2ZZI_HtoS = 2048,
+  BGRP_ZZZ_B = 2049,
+  BGRP_ZZZ_D = 2050,
+  BGRP_ZZZ_H = 2051,
+  BGRP_ZZZ_S = 2052,
+  BICSWrs = 2053,
+  BICSXrs = 2054,
+  BICS_PPzPP = 2055,
+  BICWrs = 2056,
+  BICXrs = 2057,
+  BIC_PPzPP = 2058,
+  BIC_ZPmZ_B = 2059,
+  BIC_ZPmZ_D = 2060,
+  BIC_ZPmZ_H = 2061,
+  BIC_ZPmZ_S = 2062,
+  BIC_ZZZ = 2063,
+  BICv16i8 = 2064,
+  BICv2i32 = 2065,
+  BICv4i16 = 2066,
+  BICv4i32 = 2067,
+  BICv8i16 = 2068,
+  BICv8i8 = 2069,
+  BIFv16i8 = 2070,
+  BIFv8i8 = 2071,
+  BITv16i8 = 2072,
+  BITv8i8 = 2073,
+  BL = 2074,
+  BLR = 2075,
+  BLRAA = 2076,
+  BLRAAZ = 2077,
+  BLRAB = 2078,
+  BLRABZ = 2079,
+  BMOPA_MPPZZ_S = 2080,
+  BMOPS_MPPZZ_S = 2081,
+  BR = 2082,
+  BRAA = 2083,
+  BRAAZ = 2084,
+  BRAB = 2085,
+  BRABZ = 2086,
+  BRB_IALL = 2087,
+  BRB_INJ = 2088,
+  BRK = 2089,
+  BRKAS_PPzP = 2090,
+  BRKA_PPmP = 2091,
+  BRKA_PPzP = 2092,
+  BRKBS_PPzP = 2093,
+  BRKB_PPmP = 2094,
+  BRKB_PPzP = 2095,
+  BRKNS_PPzP = 2096,
+  BRKN_PPzP = 2097,
+  BRKPAS_PPzPP = 2098,
+  BRKPA_PPzPP = 2099,
+  BRKPBS_PPzPP = 2100,
+  BRKPB_PPzPP = 2101,
+  BSL1N_ZZZZ = 2102,
+  BSL2N_ZZZZ = 2103,
+  BSL_ZZZZ = 2104,
+  BSLv16i8 = 2105,
+  BSLv8i8 = 2106,
+  Bcc = 2107,
+  CADD_ZZI_B = 2108,
+  CADD_ZZI_D = 2109,
+  CADD_ZZI_H = 2110,
+  CADD_ZZI_S = 2111,
+  CASAB = 2112,
+  CASAH = 2113,
+  CASALB = 2114,
+  CASALH = 2115,
+  CASALTX = 2116,
+  CASALW = 2117,
+  CASALX = 2118,
+  CASATX = 2119,
+  CASAW = 2120,
+  CASAX = 2121,
+  CASB = 2122,
+  CASH = 2123,
+  CASLB = 2124,
+  CASLH = 2125,
+  CASLTX = 2126,
+  CASLW = 2127,
+  CASLX = 2128,
+  CASPALTX = 2129,
+  CASPALW = 2130,
+  CASPALX = 2131,
+  CASPATX = 2132,
+  CASPAW = 2133,
+  CASPAX = 2134,
+  CASPLTX = 2135,
+  CASPLW = 2136,
+  CASPLX = 2137,
+  CASPTX = 2138,
+  CASPW = 2139,
+  CASPX = 2140,
+  CASTX = 2141,
+  CASW = 2142,
+  CASX = 2143,
+  CBBEQWrr = 2144,
+  CBBGEWrr = 2145,
+  CBBGTWrr = 2146,
+  CBBHIWrr = 2147,
+  CBBHSWrr = 2148,
+  CBBNEWrr = 2149,
+  CBEQWri = 2150,
+  CBEQWrr = 2151,
+  CBEQXri = 2152,
+  CBEQXrr = 2153,
+  CBGEWrr = 2154,
+  CBGEXrr = 2155,
+  CBGTWri = 2156,
+  CBGTWrr = 2157,
+  CBGTXri = 2158,
+  CBGTXrr = 2159,
+  CBHEQWrr = 2160,
+  CBHGEWrr = 2161,
+  CBHGTWrr = 2162,
+  CBHHIWrr = 2163,
+  CBHHSWrr = 2164,
+  CBHIWri = 2165,
+  CBHIWrr = 2166,
+  CBHIXri = 2167,
+  CBHIXrr = 2168,
+  CBHNEWrr = 2169,
+  CBHSWrr = 2170,
+  CBHSXrr = 2171,
+  CBLOWri = 2172,
+  CBLOXri = 2173,
+  CBLTWri = 2174,
+  CBLTXri = 2175,
+  CBNEWri = 2176,
+  CBNEWrr = 2177,
+  CBNEXri = 2178,
+  CBNEXrr = 2179,
+  CBNZW = 2180,
+  CBNZX = 2181,
+  CBZW = 2182,
+  CBZX = 2183,
+  CCMNWi = 2184,
+  CCMNWr = 2185,
+  CCMNXi = 2186,
+  CCMNXr = 2187,
+  CCMPWi = 2188,
+  CCMPWr = 2189,
+  CCMPXi = 2190,
+  CCMPXr = 2191,
+  CDOT_ZZZI_D = 2192,
+  CDOT_ZZZI_S = 2193,
+  CDOT_ZZZ_D = 2194,
+  CDOT_ZZZ_S = 2195,
+  CFINV = 2196,
+  CHKFEAT = 2197,
+  CLASTA_RPZ_B = 2198,
+  CLASTA_RPZ_D = 2199,
+  CLASTA_RPZ_H = 2200,
+  CLASTA_RPZ_S = 2201,
+  CLASTA_VPZ_B = 2202,
+  CLASTA_VPZ_D = 2203,
+  CLASTA_VPZ_H = 2204,
+  CLASTA_VPZ_S = 2205,
+  CLASTA_ZPZ_B = 2206,
+  CLASTA_ZPZ_D = 2207,
+  CLASTA_ZPZ_H = 2208,
+  CLASTA_ZPZ_S = 2209,
+  CLASTB_RPZ_B = 2210,
+  CLASTB_RPZ_D = 2211,
+  CLASTB_RPZ_H = 2212,
+  CLASTB_RPZ_S = 2213,
+  CLASTB_VPZ_B = 2214,
+  CLASTB_VPZ_D = 2215,
+  CLASTB_VPZ_H = 2216,
+  CLASTB_VPZ_S = 2217,
+  CLASTB_ZPZ_B = 2218,
+  CLASTB_ZPZ_D = 2219,
+  CLASTB_ZPZ_H = 2220,
+  CLASTB_ZPZ_S = 2221,
+  CLREX = 2222,
+  CLSWr = 2223,
+  CLSXr = 2224,
+  CLS_ZPmZ_B = 2225,
+  CLS_ZPmZ_D = 2226,
+  CLS_ZPmZ_H = 2227,
+  CLS_ZPmZ_S = 2228,
+  CLS_ZPzZ_B = 2229,
+  CLS_ZPzZ_D = 2230,
+  CLS_ZPzZ_H = 2231,
+  CLS_ZPzZ_S = 2232,
+  CLSv16i8 = 2233,
+  CLSv2i32 = 2234,
+  CLSv4i16 = 2235,
+  CLSv4i32 = 2236,
+  CLSv8i16 = 2237,
+  CLSv8i8 = 2238,
+  CLZWr = 2239,
+  CLZXr = 2240,
+  CLZ_ZPmZ_B = 2241,
+  CLZ_ZPmZ_D = 2242,
+  CLZ_ZPmZ_H = 2243,
+  CLZ_ZPmZ_S = 2244,
+  CLZ_ZPzZ_B = 2245,
+  CLZ_ZPzZ_D = 2246,
+  CLZ_ZPzZ_H = 2247,
+  CLZ_ZPzZ_S = 2248,
+  CLZv16i8 = 2249,
+  CLZv2i32 = 2250,
+  CLZv4i16 = 2251,
+  CLZv4i32 = 2252,
+  CLZv8i16 = 2253,
+  CLZv8i8 = 2254,
+  CMEQv16i8 = 2255,
+  CMEQv16i8rz = 2256,
+  CMEQv1i64 = 2257,
+  CMEQv1i64rz = 2258,
+  CMEQv2i32 = 2259,
+  CMEQv2i32rz = 2260,
+  CMEQv2i64 = 2261,
+  CMEQv2i64rz = 2262,
+  CMEQv4i16 = 2263,
+  CMEQv4i16rz = 2264,
+  CMEQv4i32 = 2265,
+  CMEQv4i32rz = 2266,
+  CMEQv8i16 = 2267,
+  CMEQv8i16rz = 2268,
+  CMEQv8i8 = 2269,
+  CMEQv8i8rz = 2270,
+  CMGEv16i8 = 2271,
+  CMGEv16i8rz = 2272,
+  CMGEv1i64 = 2273,
+  CMGEv1i64rz = 2274,
+  CMGEv2i32 = 2275,
+  CMGEv2i32rz = 2276,
+  CMGEv2i64 = 2277,
+  CMGEv2i64rz = 2278,
+  CMGEv4i16 = 2279,
+  CMGEv4i16rz = 2280,
+  CMGEv4i32 = 2281,
+  CMGEv4i32rz = 2282,
+  CMGEv8i16 = 2283,
+  CMGEv8i16rz = 2284,
+  CMGEv8i8 = 2285,
+  CMGEv8i8rz = 2286,
+  CMGTv16i8 = 2287,
+  CMGTv16i8rz = 2288,
+  CMGTv1i64 = 2289,
+  CMGTv1i64rz = 2290,
+  CMGTv2i32 = 2291,
+  CMGTv2i32rz = 2292,
+  CMGTv2i64 = 2293,
+  CMGTv2i64rz = 2294,
+  CMGTv4i16 = 2295,
+  CMGTv4i16rz = 2296,
+  CMGTv4i32 = 2297,
+  CMGTv4i32rz = 2298,
+  CMGTv8i16 = 2299,
+  CMGTv8i16rz = 2300,
+  CMGTv8i8 = 2301,
+  CMGTv8i8rz = 2302,
+  CMHIv16i8 = 2303,
+  CMHIv1i64 = 2304,
+  CMHIv2i32 = 2305,
+  CMHIv2i64 = 2306,
+  CMHIv4i16 = 2307,
+  CMHIv4i32 = 2308,
+  CMHIv8i16 = 2309,
+  CMHIv8i8 = 2310,
+  CMHSv16i8 = 2311,
+  CMHSv1i64 = 2312,
+  CMHSv2i32 = 2313,
+  CMHSv2i64 = 2314,
+  CMHSv4i16 = 2315,
+  CMHSv4i32 = 2316,
+  CMHSv8i16 = 2317,
+  CMHSv8i8 = 2318,
+  CMLA_ZZZI_H = 2319,
+  CMLA_ZZZI_S = 2320,
+  CMLA_ZZZ_B = 2321,
+  CMLA_ZZZ_D = 2322,
+  CMLA_ZZZ_H = 2323,
+  CMLA_ZZZ_S = 2324,
+  CMLEv16i8rz = 2325,
+  CMLEv1i64rz = 2326,
+  CMLEv2i32rz = 2327,
+  CMLEv2i64rz = 2328,
+  CMLEv4i16rz = 2329,
+  CMLEv4i32rz = 2330,
+  CMLEv8i16rz = 2331,
+  CMLEv8i8rz = 2332,
+  CMLTv16i8rz = 2333,
+  CMLTv1i64rz = 2334,
+  CMLTv2i32rz = 2335,
+  CMLTv2i64rz = 2336,
+  CMLTv4i16rz = 2337,
+  CMLTv4i32rz = 2338,
+  CMLTv8i16rz = 2339,
+  CMLTv8i8rz = 2340,
+  CMPEQ_PPzZI_B = 2341,
+  CMPEQ_PPzZI_D = 2342,
+  CMPEQ_PPzZI_H = 2343,
+  CMPEQ_PPzZI_S = 2344,
+  CMPEQ_PPzZZ_B = 2345,
+  CMPEQ_PPzZZ_D = 2346,
+  CMPEQ_PPzZZ_H = 2347,
+  CMPEQ_PPzZZ_S = 2348,
+  CMPEQ_WIDE_PPzZZ_B = 2349,
+  CMPEQ_WIDE_PPzZZ_H = 2350,
+  CMPEQ_WIDE_PPzZZ_S = 2351,
+  CMPGE_PPzZI_B = 2352,
+  CMPGE_PPzZI_D = 2353,
+  CMPGE_PPzZI_H = 2354,
+  CMPGE_PPzZI_S = 2355,
+  CMPGE_PPzZZ_B = 2356,
+  CMPGE_PPzZZ_D = 2357,
+  CMPGE_PPzZZ_H = 2358,
+  CMPGE_PPzZZ_S = 2359,
+  CMPGE_WIDE_PPzZZ_B = 2360,
+  CMPGE_WIDE_PPzZZ_H = 2361,
+  CMPGE_WIDE_PPzZZ_S = 2362,
+  CMPGT_PPzZI_B = 2363,
+  CMPGT_PPzZI_D = 2364,
+  CMPGT_PPzZI_H = 2365,
+  CMPGT_PPzZI_S = 2366,
+  CMPGT_PPzZZ_B = 2367,
+  CMPGT_PPzZZ_D = 2368,
+  CMPGT_PPzZZ_H = 2369,
+  CMPGT_PPzZZ_S = 2370,
+  CMPGT_WIDE_PPzZZ_B = 2371,
+  CMPGT_WIDE_PPzZZ_H = 2372,
+  CMPGT_WIDE_PPzZZ_S = 2373,
+  CMPHI_PPzZI_B = 2374,
+  CMPHI_PPzZI_D = 2375,
+  CMPHI_PPzZI_H = 2376,
+  CMPHI_PPzZI_S = 2377,
+  CMPHI_PPzZZ_B = 2378,
+  CMPHI_PPzZZ_D = 2379,
+  CMPHI_PPzZZ_H = 2380,
+  CMPHI_PPzZZ_S = 2381,
+  CMPHI_WIDE_PPzZZ_B = 2382,
+  CMPHI_WIDE_PPzZZ_H = 2383,
+  CMPHI_WIDE_PPzZZ_S = 2384,
+  CMPHS_PPzZI_B = 2385,
+  CMPHS_PPzZI_D = 2386,
+  CMPHS_PPzZI_H = 2387,
+  CMPHS_PPzZI_S = 2388,
+  CMPHS_PPzZZ_B = 2389,
+  CMPHS_PPzZZ_D = 2390,
+  CMPHS_PPzZZ_H = 2391,
+  CMPHS_PPzZZ_S = 2392,
+  CMPHS_WIDE_PPzZZ_B = 2393,
+  CMPHS_WIDE_PPzZZ_H = 2394,
+  CMPHS_WIDE_PPzZZ_S = 2395,
+  CMPLE_PPzZI_B = 2396,
+  CMPLE_PPzZI_D = 2397,
+  CMPLE_PPzZI_H = 2398,
+  CMPLE_PPzZI_S = 2399,
+  CMPLE_WIDE_PPzZZ_B = 2400,
+  CMPLE_WIDE_PPzZZ_H = 2401,
+  CMPLE_WIDE_PPzZZ_S = 2402,
+  CMPLO_PPzZI_B = 2403,
+  CMPLO_PPzZI_D = 2404,
+  CMPLO_PPzZI_H = 2405,
+  CMPLO_PPzZI_S = 2406,
+  CMPLO_WIDE_PPzZZ_B = 2407,
+  CMPLO_WIDE_PPzZZ_H = 2408,
+  CMPLO_WIDE_PPzZZ_S = 2409,
+  CMPLS_PPzZI_B = 2410,
+  CMPLS_PPzZI_D = 2411,
+  CMPLS_PPzZI_H = 2412,
+  CMPLS_PPzZI_S = 2413,
+  CMPLS_WIDE_PPzZZ_B = 2414,
+  CMPLS_WIDE_PPzZZ_H = 2415,
+  CMPLS_WIDE_PPzZZ_S = 2416,
+  CMPLT_PPzZI_B = 2417,
+  CMPLT_PPzZI_D = 2418,
+  CMPLT_PPzZI_H = 2419,
+  CMPLT_PPzZI_S = 2420,
+  CMPLT_WIDE_PPzZZ_B = 2421,
+  CMPLT_WIDE_PPzZZ_H = 2422,
+  CMPLT_WIDE_PPzZZ_S = 2423,
+  CMPNE_PPzZI_B = 2424,
+  CMPNE_PPzZI_D = 2425,
+  CMPNE_PPzZI_H = 2426,
+  CMPNE_PPzZI_S = 2427,
+  CMPNE_PPzZZ_B = 2428,
+  CMPNE_PPzZZ_D = 2429,
+  CMPNE_PPzZZ_H = 2430,
+  CMPNE_PPzZZ_S = 2431,
+  CMPNE_WIDE_PPzZZ_B = 2432,
+  CMPNE_WIDE_PPzZZ_H = 2433,
+  CMPNE_WIDE_PPzZZ_S = 2434,
+  CMTSTv16i8 = 2435,
+  CMTSTv1i64 = 2436,
+  CMTSTv2i32 = 2437,
+  CMTSTv2i64 = 2438,
+  CMTSTv4i16 = 2439,
+  CMTSTv4i32 = 2440,
+  CMTSTv8i16 = 2441,
+  CMTSTv8i8 = 2442,
+  CNOT_ZPmZ_B = 2443,
+  CNOT_ZPmZ_D = 2444,
+  CNOT_ZPmZ_H = 2445,
+  CNOT_ZPmZ_S = 2446,
+  CNOT_ZPzZ_B = 2447,
+  CNOT_ZPzZ_D = 2448,
+  CNOT_ZPzZ_H = 2449,
+  CNOT_ZPzZ_S = 2450,
+  CNTB_XPiI = 2451,
+  CNTD_XPiI = 2452,
+  CNTH_XPiI = 2453,
+  CNTP_XCI_B = 2454,
+  CNTP_XCI_D = 2455,
+  CNTP_XCI_H = 2456,
+  CNTP_XCI_S = 2457,
+  CNTP_XPP_B = 2458,
+  CNTP_XPP_D = 2459,
+  CNTP_XPP_H = 2460,
+  CNTP_XPP_S = 2461,
+  CNTW_XPiI = 2462,
+  CNTWr = 2463,
+  CNTXr = 2464,
+  CNT_ZPmZ_B = 2465,
+  CNT_ZPmZ_D = 2466,
+  CNT_ZPmZ_H = 2467,
+  CNT_ZPmZ_S = 2468,
+  CNT_ZPzZ_B = 2469,
+  CNT_ZPzZ_D = 2470,
+  CNT_ZPzZ_H = 2471,
+  CNT_ZPzZ_S = 2472,
+  CNTv16i8 = 2473,
+  CNTv8i8 = 2474,
+  COMPACT_ZPZ_B = 2475,
+  COMPACT_ZPZ_D = 2476,
+  COMPACT_ZPZ_H = 2477,
+  COMPACT_ZPZ_S = 2478,
+  CPYE = 2479,
+  CPYEN = 2480,
+  CPYERN = 2481,
+  CPYERT = 2482,
+  CPYERTN = 2483,
+  CPYERTRN = 2484,
+  CPYERTWN = 2485,
+  CPYET = 2486,
+  CPYETN = 2487,
+  CPYETRN = 2488,
+  CPYETWN = 2489,
+  CPYEWN = 2490,
+  CPYEWT = 2491,
+  CPYEWTN = 2492,
+  CPYEWTRN = 2493,
+  CPYEWTWN = 2494,
+  CPYFE = 2495,
+  CPYFEN = 2496,
+  CPYFERN = 2497,
+  CPYFERT = 2498,
+  CPYFERTN = 2499,
+  CPYFERTRN = 2500,
+  CPYFERTWN = 2501,
+  CPYFET = 2502,
+  CPYFETN = 2503,
+  CPYFETRN = 2504,
+  CPYFETWN = 2505,
+  CPYFEWN = 2506,
+  CPYFEWT = 2507,
+  CPYFEWTN = 2508,
+  CPYFEWTRN = 2509,
+  CPYFEWTWN = 2510,
+  CPYFM = 2511,
+  CPYFMN = 2512,
+  CPYFMRN = 2513,
+  CPYFMRT = 2514,
+  CPYFMRTN = 2515,
+  CPYFMRTRN = 2516,
+  CPYFMRTWN = 2517,
+  CPYFMT = 2518,
+  CPYFMTN = 2519,
+  CPYFMTRN = 2520,
+  CPYFMTWN = 2521,
+  CPYFMWN = 2522,
+  CPYFMWT = 2523,
+  CPYFMWTN = 2524,
+  CPYFMWTRN = 2525,
+  CPYFMWTWN = 2526,
+  CPYFP = 2527,
+  CPYFPN = 2528,
+  CPYFPRN = 2529,
+  CPYFPRT = 2530,
+  CPYFPRTN = 2531,
+  CPYFPRTRN = 2532,
+  CPYFPRTWN = 2533,
+  CPYFPT = 2534,
+  CPYFPTN = 2535,
+  CPYFPTRN = 2536,
+  CPYFPTWN = 2537,
+  CPYFPWN = 2538,
+  CPYFPWT = 2539,
+  CPYFPWTN = 2540,
+  CPYFPWTRN = 2541,
+  CPYFPWTWN = 2542,
+  CPYM = 2543,
+  CPYMN = 2544,
+  CPYMRN = 2545,
+  CPYMRT = 2546,
+  CPYMRTN = 2547,
+  CPYMRTRN = 2548,
+  CPYMRTWN = 2549,
+  CPYMT = 2550,
+  CPYMTN = 2551,
+  CPYMTRN = 2552,
+  CPYMTWN = 2553,
+  CPYMWN = 2554,
+  CPYMWT = 2555,
+  CPYMWTN = 2556,
+  CPYMWTRN = 2557,
+  CPYMWTWN = 2558,
+  CPYP = 2559,
+  CPYPN = 2560,
+  CPYPRN = 2561,
+  CPYPRT = 2562,
+  CPYPRTN = 2563,
+  CPYPRTRN = 2564,
+  CPYPRTWN = 2565,
+  CPYPT = 2566,
+  CPYPTN = 2567,
+  CPYPTRN = 2568,
+  CPYPTWN = 2569,
+  CPYPWN = 2570,
+  CPYPWT = 2571,
+  CPYPWTN = 2572,
+  CPYPWTRN = 2573,
+  CPYPWTWN = 2574,
+  CPY_ZPmI_B = 2575,
+  CPY_ZPmI_D = 2576,
+  CPY_ZPmI_H = 2577,
+  CPY_ZPmI_S = 2578,
+  CPY_ZPmR_B = 2579,
+  CPY_ZPmR_D = 2580,
+  CPY_ZPmR_H = 2581,
+  CPY_ZPmR_S = 2582,
+  CPY_ZPmV_B = 2583,
+  CPY_ZPmV_D = 2584,
+  CPY_ZPmV_H = 2585,
+  CPY_ZPmV_S = 2586,
+  CPY_ZPzI_B = 2587,
+  CPY_ZPzI_D = 2588,
+  CPY_ZPzI_H = 2589,
+  CPY_ZPzI_S = 2590,
+  CRC32Brr = 2591,
+  CRC32CBrr = 2592,
+  CRC32CHrr = 2593,
+  CRC32CWrr = 2594,
+  CRC32CXrr = 2595,
+  CRC32Hrr = 2596,
+  CRC32Wrr = 2597,
+  CRC32Xrr = 2598,
+  CSELWr = 2599,
+  CSELXr = 2600,
+  CSINCWr = 2601,
+  CSINCXr = 2602,
+  CSINVWr = 2603,
+  CSINVXr = 2604,
+  CSNEGWr = 2605,
+  CSNEGXr = 2606,
+  CTERMEQ_WW = 2607,
+  CTERMEQ_XX = 2608,
+  CTERMNE_WW = 2609,
+  CTERMNE_XX = 2610,
+  CTZWr = 2611,
+  CTZXr = 2612,
+  DCPS1 = 2613,
+  DCPS2 = 2614,
+  DCPS3 = 2615,
+  DECB_XPiI = 2616,
+  DECD_XPiI = 2617,
+  DECD_ZPiI = 2618,
+  DECH_XPiI = 2619,
+  DECH_ZPiI = 2620,
+  DECP_XP_B = 2621,
+  DECP_XP_D = 2622,
+  DECP_XP_H = 2623,
+  DECP_XP_S = 2624,
+  DECP_ZP_D = 2625,
+  DECP_ZP_H = 2626,
+  DECP_ZP_S = 2627,
+  DECW_XPiI = 2628,
+  DECW_ZPiI = 2629,
+  DMB = 2630,
+  DRPS = 2631,
+  DSB = 2632,
+  DSBnXS = 2633,
+  DUPM_ZI = 2634,
+  DUPQ_ZZI_B = 2635,
+  DUPQ_ZZI_D = 2636,
+  DUPQ_ZZI_H = 2637,
+  DUPQ_ZZI_S = 2638,
+  DUP_ZI_B = 2639,
+  DUP_ZI_D = 2640,
+  DUP_ZI_H = 2641,
+  DUP_ZI_S = 2642,
+  DUP_ZR_B = 2643,
+  DUP_ZR_D = 2644,
+  DUP_ZR_H = 2645,
+  DUP_ZR_S = 2646,
+  DUP_ZZI_B = 2647,
+  DUP_ZZI_D = 2648,
+  DUP_ZZI_H = 2649,
+  DUP_ZZI_Q = 2650,
+  DUP_ZZI_S = 2651,
+  DUPi16 = 2652,
+  DUPi32 = 2653,
+  DUPi64 = 2654,
+  DUPi8 = 2655,
+  DUPv16i8gpr = 2656,
+  DUPv16i8lane = 2657,
+  DUPv2i32gpr = 2658,
+  DUPv2i32lane = 2659,
+  DUPv2i64gpr = 2660,
+  DUPv2i64lane = 2661,
+  DUPv4i16gpr = 2662,
+  DUPv4i16lane = 2663,
+  DUPv4i32gpr = 2664,
+  DUPv4i32lane = 2665,
+  DUPv8i16gpr = 2666,
+  DUPv8i16lane = 2667,
+  DUPv8i8gpr = 2668,
+  DUPv8i8lane = 2669,
+  EONWrs = 2670,
+  EONXrs = 2671,
+  EOR3 = 2672,
+  EOR3_ZZZZ = 2673,
+  EORBT_ZZZ_B = 2674,
+  EORBT_ZZZ_D = 2675,
+  EORBT_ZZZ_H = 2676,
+  EORBT_ZZZ_S = 2677,
+  EORQV_VPZ_B = 2678,
+  EORQV_VPZ_D = 2679,
+  EORQV_VPZ_H = 2680,
+  EORQV_VPZ_S = 2681,
+  EORS_PPzPP = 2682,
+  EORTB_ZZZ_B = 2683,
+  EORTB_ZZZ_D = 2684,
+  EORTB_ZZZ_H = 2685,
+  EORTB_ZZZ_S = 2686,
+  EORV_VPZ_B = 2687,
+  EORV_VPZ_D = 2688,
+  EORV_VPZ_H = 2689,
+  EORV_VPZ_S = 2690,
+  EORWri = 2691,
+  EORWrs = 2692,
+  EORXri = 2693,
+  EORXrs = 2694,
+  EOR_PPzPP = 2695,
+  EOR_ZI = 2696,
+  EOR_ZPmZ_B = 2697,
+  EOR_ZPmZ_D = 2698,
+  EOR_ZPmZ_H = 2699,
+  EOR_ZPmZ_S = 2700,
+  EOR_ZZZ = 2701,
+  EORv16i8 = 2702,
+  EORv8i8 = 2703,
+  ERET = 2704,
+  ERETAA = 2705,
+  ERETAB = 2706,
+  EXPAND_ZPZ_B = 2707,
+  EXPAND_ZPZ_D = 2708,
+  EXPAND_ZPZ_H = 2709,
+  EXPAND_ZPZ_S = 2710,
+  EXTQ_ZZI = 2711,
+  EXTRACT_ZPMXI_H_B = 2712,
+  EXTRACT_ZPMXI_H_D = 2713,
+  EXTRACT_ZPMXI_H_H = 2714,
+  EXTRACT_ZPMXI_H_Q = 2715,
+  EXTRACT_ZPMXI_H_S = 2716,
+  EXTRACT_ZPMXI_V_B = 2717,
+  EXTRACT_ZPMXI_V_D = 2718,
+  EXTRACT_ZPMXI_V_H = 2719,
+  EXTRACT_ZPMXI_V_Q = 2720,
+  EXTRACT_ZPMXI_V_S = 2721,
+  EXTRWrri = 2722,
+  EXTRXrri = 2723,
+  EXT_ZZI = 2724,
+  EXT_ZZI_B = 2725,
+  EXTv16i8 = 2726,
+  EXTv8i8 = 2727,
+  F1CVTL = 2728,
+  F1CVTL2 = 2729,
+  F1CVTLT_ZZ_BtoH = 2730,
+  F1CVTL_2ZZ_BtoH = 2731,
+  F1CVT_2ZZ_BtoH = 2732,
+  F1CVT_ZZ_BtoH = 2733,
+  F2CVTL = 2734,
+  F2CVTL2 = 2735,
+  F2CVTLT_ZZ_BtoH = 2736,
+  F2CVTL_2ZZ_BtoH = 2737,
+  F2CVT_2ZZ_BtoH = 2738,
+  F2CVT_ZZ_BtoH = 2739,
+  FABD16 = 2740,
+  FABD32 = 2741,
+  FABD64 = 2742,
+  FABD_ZPmZ_D = 2743,
+  FABD_ZPmZ_H = 2744,
+  FABD_ZPmZ_S = 2745,
+  FABDv2f32 = 2746,
+  FABDv2f64 = 2747,
+  FABDv4f16 = 2748,
+  FABDv4f32 = 2749,
+  FABDv8f16 = 2750,
+  FABSDr = 2751,
+  FABSHr = 2752,
+  FABSSr = 2753,
+  FABS_ZPmZ_D = 2754,
+  FABS_ZPmZ_H = 2755,
+  FABS_ZPmZ_S = 2756,
+  FABS_ZPzZ_D = 2757,
+  FABS_ZPzZ_H = 2758,
+  FABS_ZPzZ_S = 2759,
+  FABSv2f32 = 2760,
+  FABSv2f64 = 2761,
+  FABSv4f16 = 2762,
+  FABSv4f32 = 2763,
+  FABSv8f16 = 2764,
+  FACGE16 = 2765,
+  FACGE32 = 2766,
+  FACGE64 = 2767,
+  FACGE_PPzZZ_D = 2768,
+  FACGE_PPzZZ_H = 2769,
+  FACGE_PPzZZ_S = 2770,
+  FACGEv2f32 = 2771,
+  FACGEv2f64 = 2772,
+  FACGEv4f16 = 2773,
+  FACGEv4f32 = 2774,
+  FACGEv8f16 = 2775,
+  FACGT16 = 2776,
+  FACGT32 = 2777,
+  FACGT64 = 2778,
+  FACGT_PPzZZ_D = 2779,
+  FACGT_PPzZZ_H = 2780,
+  FACGT_PPzZZ_S = 2781,
+  FACGTv2f32 = 2782,
+  FACGTv2f64 = 2783,
+  FACGTv4f16 = 2784,
+  FACGTv4f32 = 2785,
+  FACGTv8f16 = 2786,
+  FADDA_VPZ_D = 2787,
+  FADDA_VPZ_H = 2788,
+  FADDA_VPZ_S = 2789,
+  FADDDrr = 2790,
+  FADDHrr = 2791,
+  FADDP_ZPmZZ_D = 2792,
+  FADDP_ZPmZZ_H = 2793,
+  FADDP_ZPmZZ_S = 2794,
+  FADDPv2f32 = 2795,
+  FADDPv2f64 = 2796,
+  FADDPv2i16p = 2797,
+  FADDPv2i32p = 2798,
+  FADDPv2i64p = 2799,
+  FADDPv4f16 = 2800,
+  FADDPv4f32 = 2801,
+  FADDPv8f16 = 2802,
+  FADDQV_D = 2803,
+  FADDQV_H = 2804,
+  FADDQV_S = 2805,
+  FADDSrr = 2806,
+  FADDV_VPZ_D = 2807,
+  FADDV_VPZ_H = 2808,
+  FADDV_VPZ_S = 2809,
+  FADD_VG2_M2Z_D = 2810,
+  FADD_VG2_M2Z_H = 2811,
+  FADD_VG2_M2Z_S = 2812,
+  FADD_VG4_M4Z_D = 2813,
+  FADD_VG4_M4Z_H = 2814,
+  FADD_VG4_M4Z_S = 2815,
+  FADD_ZPmI_D = 2816,
+  FADD_ZPmI_H = 2817,
+  FADD_ZPmI_S = 2818,
+  FADD_ZPmZ_D = 2819,
+  FADD_ZPmZ_H = 2820,
+  FADD_ZPmZ_S = 2821,
+  FADD_ZZZ_D = 2822,
+  FADD_ZZZ_H = 2823,
+  FADD_ZZZ_S = 2824,
+  FADDv2f32 = 2825,
+  FADDv2f64 = 2826,
+  FADDv4f16 = 2827,
+  FADDv4f32 = 2828,
+  FADDv8f16 = 2829,
+  FAMAX_2Z2Z_D = 2830,
+  FAMAX_2Z2Z_H = 2831,
+  FAMAX_2Z2Z_S = 2832,
+  FAMAX_4Z4Z_D = 2833,
+  FAMAX_4Z4Z_H = 2834,
+  FAMAX_4Z4Z_S = 2835,
+  FAMAX_ZPmZ_D = 2836,
+  FAMAX_ZPmZ_H = 2837,
+  FAMAX_ZPmZ_S = 2838,
+  FAMAXv2f32 = 2839,
+  FAMAXv2f64 = 2840,
+  FAMAXv4f16 = 2841,
+  FAMAXv4f32 = 2842,
+  FAMAXv8f16 = 2843,
+  FAMIN_2Z2Z_D = 2844,
+  FAMIN_2Z2Z_H = 2845,
+  FAMIN_2Z2Z_S = 2846,
+  FAMIN_4Z4Z_D = 2847,
+  FAMIN_4Z4Z_H = 2848,
+  FAMIN_4Z4Z_S = 2849,
+  FAMIN_ZPmZ_D = 2850,
+  FAMIN_ZPmZ_H = 2851,
+  FAMIN_ZPmZ_S = 2852,
+  FAMINv2f32 = 2853,
+  FAMINv2f64 = 2854,
+  FAMINv4f16 = 2855,
+  FAMINv4f32 = 2856,
+  FAMINv8f16 = 2857,
+  FCADD_ZPmZ_D = 2858,
+  FCADD_ZPmZ_H = 2859,
+  FCADD_ZPmZ_S = 2860,
+  FCADDv2f32 = 2861,
+  FCADDv2f64 = 2862,
+  FCADDv4f16 = 2863,
+  FCADDv4f32 = 2864,
+  FCADDv8f16 = 2865,
+  FCCMPDrr = 2866,
+  FCCMPEDrr = 2867,
+  FCCMPEHrr = 2868,
+  FCCMPESrr = 2869,
+  FCCMPHrr = 2870,
+  FCCMPSrr = 2871,
+  FCLAMP_VG2_2Z2Z_D = 2872,
+  FCLAMP_VG2_2Z2Z_H = 2873,
+  FCLAMP_VG2_2Z2Z_S = 2874,
+  FCLAMP_VG4_4Z4Z_D = 2875,
+  FCLAMP_VG4_4Z4Z_H = 2876,
+  FCLAMP_VG4_4Z4Z_S = 2877,
+  FCLAMP_ZZZ_D = 2878,
+  FCLAMP_ZZZ_H = 2879,
+  FCLAMP_ZZZ_S = 2880,
+  FCMEQ16 = 2881,
+  FCMEQ32 = 2882,
+  FCMEQ64 = 2883,
+  FCMEQ_PPzZ0_D = 2884,
+  FCMEQ_PPzZ0_H = 2885,
+  FCMEQ_PPzZ0_S = 2886,
+  FCMEQ_PPzZZ_D = 2887,
+  FCMEQ_PPzZZ_H = 2888,
+  FCMEQ_PPzZZ_S = 2889,
+  FCMEQv1i16rz = 2890,
+  FCMEQv1i32rz = 2891,
+  FCMEQv1i64rz = 2892,
+  FCMEQv2f32 = 2893,
+  FCMEQv2f64 = 2894,
+  FCMEQv2i32rz = 2895,
+  FCMEQv2i64rz = 2896,
+  FCMEQv4f16 = 2897,
+  FCMEQv4f32 = 2898,
+  FCMEQv4i16rz = 2899,
+  FCMEQv4i32rz = 2900,
+  FCMEQv8f16 = 2901,
+  FCMEQv8i16rz = 2902,
+  FCMGE16 = 2903,
+  FCMGE32 = 2904,
+  FCMGE64 = 2905,
+  FCMGE_PPzZ0_D = 2906,
+  FCMGE_PPzZ0_H = 2907,
+  FCMGE_PPzZ0_S = 2908,
+  FCMGE_PPzZZ_D = 2909,
+  FCMGE_PPzZZ_H = 2910,
+  FCMGE_PPzZZ_S = 2911,
+  FCMGEv1i16rz = 2912,
+  FCMGEv1i32rz = 2913,
+  FCMGEv1i64rz = 2914,
+  FCMGEv2f32 = 2915,
+  FCMGEv2f64 = 2916,
+  FCMGEv2i32rz = 2917,
+  FCMGEv2i64rz = 2918,
+  FCMGEv4f16 = 2919,
+  FCMGEv4f32 = 2920,
+  FCMGEv4i16rz = 2921,
+  FCMGEv4i32rz = 2922,
+  FCMGEv8f16 = 2923,
+  FCMGEv8i16rz = 2924,
+  FCMGT16 = 2925,
+  FCMGT32 = 2926,
+  FCMGT64 = 2927,
+  FCMGT_PPzZ0_D = 2928,
+  FCMGT_PPzZ0_H = 2929,
+  FCMGT_PPzZ0_S = 2930,
+  FCMGT_PPzZZ_D = 2931,
+  FCMGT_PPzZZ_H = 2932,
+  FCMGT_PPzZZ_S = 2933,
+  FCMGTv1i16rz = 2934,
+  FCMGTv1i32rz = 2935,
+  FCMGTv1i64rz = 2936,
+  FCMGTv2f32 = 2937,
+  FCMGTv2f64 = 2938,
+  FCMGTv2i32rz = 2939,
+  FCMGTv2i64rz = 2940,
+  FCMGTv4f16 = 2941,
+  FCMGTv4f32 = 2942,
+  FCMGTv4i16rz = 2943,
+  FCMGTv4i32rz = 2944,
+  FCMGTv8f16 = 2945,
+  FCMGTv8i16rz = 2946,
+  FCMLA_ZPmZZ_D = 2947,
+  FCMLA_ZPmZZ_H = 2948,
+  FCMLA_ZPmZZ_S = 2949,
+  FCMLA_ZZZI_H = 2950,
+  FCMLA_ZZZI_S = 2951,
+  FCMLAv2f32 = 2952,
+  FCMLAv2f64 = 2953,
+  FCMLAv4f16 = 2954,
+  FCMLAv4f16_indexed = 2955,
+  FCMLAv4f32 = 2956,
+  FCMLAv4f32_indexed = 2957,
+  FCMLAv8f16 = 2958,
+  FCMLAv8f16_indexed = 2959,
+  FCMLE_PPzZ0_D = 2960,
+  FCMLE_PPzZ0_H = 2961,
+  FCMLE_PPzZ0_S = 2962,
+  FCMLEv1i16rz = 2963,
+  FCMLEv1i32rz = 2964,
+  FCMLEv1i64rz = 2965,
+  FCMLEv2i32rz = 2966,
+  FCMLEv2i64rz = 2967,
+  FCMLEv4i16rz = 2968,
+  FCMLEv4i32rz = 2969,
+  FCMLEv8i16rz = 2970,
+  FCMLT_PPzZ0_D = 2971,
+  FCMLT_PPzZ0_H = 2972,
+  FCMLT_PPzZ0_S = 2973,
+  FCMLTv1i16rz = 2974,
+  FCMLTv1i32rz = 2975,
+  FCMLTv1i64rz = 2976,
+  FCMLTv2i32rz = 2977,
+  FCMLTv2i64rz = 2978,
+  FCMLTv4i16rz = 2979,
+  FCMLTv4i32rz = 2980,
+  FCMLTv8i16rz = 2981,
+  FCMNE_PPzZ0_D = 2982,
+  FCMNE_PPzZ0_H = 2983,
+  FCMNE_PPzZ0_S = 2984,
+  FCMNE_PPzZZ_D = 2985,
+  FCMNE_PPzZZ_H = 2986,
+  FCMNE_PPzZZ_S = 2987,
+  FCMPDri = 2988,
+  FCMPDrr = 2989,
+  FCMPEDri = 2990,
+  FCMPEDrr = 2991,
+  FCMPEHri = 2992,
+  FCMPEHrr = 2993,
+  FCMPESri = 2994,
+  FCMPESrr = 2995,
+  FCMPHri = 2996,
+  FCMPHrr = 2997,
+  FCMPSri = 2998,
+  FCMPSrr = 2999,
+  FCMUO_PPzZZ_D = 3000,
+  FCMUO_PPzZZ_H = 3001,
+  FCMUO_PPzZZ_S = 3002,
+  FCPY_ZPmI_D = 3003,
+  FCPY_ZPmI_H = 3004,
+  FCPY_ZPmI_S = 3005,
+  FCSELDrrr = 3006,
+  FCSELHrrr = 3007,
+  FCSELSrrr = 3008,
+  FCVTASDHr = 3009,
+  FCVTASDSr = 3010,
+  FCVTASSDr = 3011,
+  FCVTASSHr = 3012,
+  FCVTASUWDr = 3013,
+  FCVTASUWHr = 3014,
+  FCVTASUWSr = 3015,
+  FCVTASUXDr = 3016,
+  FCVTASUXHr = 3017,
+  FCVTASUXSr = 3018,
+  FCVTASv1f16 = 3019,
+  FCVTASv1i32 = 3020,
+  FCVTASv1i64 = 3021,
+  FCVTASv2f32 = 3022,
+  FCVTASv2f64 = 3023,
+  FCVTASv4f16 = 3024,
+  FCVTASv4f32 = 3025,
+  FCVTASv8f16 = 3026,
+  FCVTAUDHr = 3027,
+  FCVTAUDSr = 3028,
+  FCVTAUSDr = 3029,
+  FCVTAUSHr = 3030,
+  FCVTAUUWDr = 3031,
+  FCVTAUUWHr = 3032,
+  FCVTAUUWSr = 3033,
+  FCVTAUUXDr = 3034,
+  FCVTAUUXHr = 3035,
+  FCVTAUUXSr = 3036,
+  FCVTAUv1f16 = 3037,
+  FCVTAUv1i32 = 3038,
+  FCVTAUv1i64 = 3039,
+  FCVTAUv2f32 = 3040,
+  FCVTAUv2f64 = 3041,
+  FCVTAUv4f16 = 3042,
+  FCVTAUv4f32 = 3043,
+  FCVTAUv8f16 = 3044,
+  FCVTDHr = 3045,
+  FCVTDSr = 3046,
+  FCVTHDr = 3047,
+  FCVTHSr = 3048,
+  FCVTLT_ZPmZ_HtoS = 3049,
+  FCVTLT_ZPmZ_StoD = 3050,
+  FCVTLT_ZPzZ_HtoS = 3051,
+  FCVTLT_ZPzZ_StoD = 3052,
+  FCVTL_2ZZ_H_S = 3053,
+  FCVTLv2i32 = 3054,
+  FCVTLv4i16 = 3055,
+  FCVTLv4i32 = 3056,
+  FCVTLv8i16 = 3057,
+  FCVTMSDHr = 3058,
+  FCVTMSDSr = 3059,
+  FCVTMSSDr = 3060,
+  FCVTMSSHr = 3061,
+  FCVTMSUWDr = 3062,
+  FCVTMSUWHr = 3063,
+  FCVTMSUWSr = 3064,
+  FCVTMSUXDr = 3065,
+  FCVTMSUXHr = 3066,
+  FCVTMSUXSr = 3067,
+  FCVTMSv1f16 = 3068,
+  FCVTMSv1i32 = 3069,
+  FCVTMSv1i64 = 3070,
+  FCVTMSv2f32 = 3071,
+  FCVTMSv2f64 = 3072,
+  FCVTMSv4f16 = 3073,
+  FCVTMSv4f32 = 3074,
+  FCVTMSv8f16 = 3075,
+  FCVTMUDHr = 3076,
+  FCVTMUDSr = 3077,
+  FCVTMUSDr = 3078,
+  FCVTMUSHr = 3079,
+  FCVTMUUWDr = 3080,
+  FCVTMUUWHr = 3081,
+  FCVTMUUWSr = 3082,
+  FCVTMUUXDr = 3083,
+  FCVTMUUXHr = 3084,
+  FCVTMUUXSr = 3085,
+  FCVTMUv1f16 = 3086,
+  FCVTMUv1i32 = 3087,
+  FCVTMUv1i64 = 3088,
+  FCVTMUv2f32 = 3089,
+  FCVTMUv2f64 = 3090,
+  FCVTMUv4f16 = 3091,
+  FCVTMUv4f32 = 3092,
+  FCVTMUv8f16 = 3093,
+  FCVTNB_Z2Z_StoB = 3094,
+  FCVTNSDHr = 3095,
+  FCVTNSDSr = 3096,
+  FCVTNSSDr = 3097,
+  FCVTNSSHr = 3098,
+  FCVTNSUWDr = 3099,
+  FCVTNSUWHr = 3100,
+  FCVTNSUWSr = 3101,
+  FCVTNSUXDr = 3102,
+  FCVTNSUXHr = 3103,
+  FCVTNSUXSr = 3104,
+  FCVTNSv1f16 = 3105,
+  FCVTNSv1i32 = 3106,
+  FCVTNSv1i64 = 3107,
+  FCVTNSv2f32 = 3108,
+  FCVTNSv2f64 = 3109,
+  FCVTNSv4f16 = 3110,
+  FCVTNSv4f32 = 3111,
+  FCVTNSv8f16 = 3112,
+  FCVTNT_Z2Z_StoB = 3113,
+  FCVTNT_ZPmZ_DtoS = 3114,
+  FCVTNT_ZPmZ_StoH = 3115,
+  FCVTNT_ZPzZ_DtoS = 3116,
+  FCVTNT_ZPzZ_StoH = 3117,
+  FCVTNUDHr = 3118,
+  FCVTNUDSr = 3119,
+  FCVTNUSDr = 3120,
+  FCVTNUSHr = 3121,
+  FCVTNUUWDr = 3122,
+  FCVTNUUWHr = 3123,
+  FCVTNUUWSr = 3124,
+  FCVTNUUXDr = 3125,
+  FCVTNUUXHr = 3126,
+  FCVTNUUXSr = 3127,
+  FCVTNUv1f16 = 3128,
+  FCVTNUv1i32 = 3129,
+  FCVTNUv1i64 = 3130,
+  FCVTNUv2f32 = 3131,
+  FCVTNUv2f64 = 3132,
+  FCVTNUv4f16 = 3133,
+  FCVTNUv4f32 = 3134,
+  FCVTNUv8f16 = 3135,
+  FCVTN_F16v16f8 = 3136,
+  FCVTN_F16v8f8 = 3137,
+  FCVTN_F322v16f8 = 3138,
+  FCVTN_F32v8f8 = 3139,
+  FCVTN_Z2Z_HtoB = 3140,
+  FCVTN_Z2Z_StoH = 3141,
+  FCVTN_Z4Z_StoB = 3142,
+  FCVTNv2i32 = 3143,
+  FCVTNv4i16 = 3144,
+  FCVTNv4i32 = 3145,
+  FCVTNv8i16 = 3146,
+  FCVTPSDHr = 3147,
+  FCVTPSDSr = 3148,
+  FCVTPSSDr = 3149,
+  FCVTPSSHr = 3150,
+  FCVTPSUWDr = 3151,
+  FCVTPSUWHr = 3152,
+  FCVTPSUWSr = 3153,
+  FCVTPSUXDr = 3154,
+  FCVTPSUXHr = 3155,
+  FCVTPSUXSr = 3156,
+  FCVTPSv1f16 = 3157,
+  FCVTPSv1i32 = 3158,
+  FCVTPSv1i64 = 3159,
+  FCVTPSv2f32 = 3160,
+  FCVTPSv2f64 = 3161,
+  FCVTPSv4f16 = 3162,
+  FCVTPSv4f32 = 3163,
+  FCVTPSv8f16 = 3164,
+  FCVTPUDHr = 3165,
+  FCVTPUDSr = 3166,
+  FCVTPUSDr = 3167,
+  FCVTPUSHr = 3168,
+  FCVTPUUWDr = 3169,
+  FCVTPUUWHr = 3170,
+  FCVTPUUWSr = 3171,
+  FCVTPUUXDr = 3172,
+  FCVTPUUXHr = 3173,
+  FCVTPUUXSr = 3174,
+  FCVTPUv1f16 = 3175,
+  FCVTPUv1i32 = 3176,
+  FCVTPUv1i64 = 3177,
+  FCVTPUv2f32 = 3178,
+  FCVTPUv2f64 = 3179,
+  FCVTPUv4f16 = 3180,
+  FCVTPUv4f32 = 3181,
+  FCVTPUv8f16 = 3182,
+  FCVTSDr = 3183,
+  FCVTSHr = 3184,
+  FCVTXNT_ZPmZ_DtoS = 3185,
+  FCVTXNT_ZPzZ_StoD = 3186,
+  FCVTXNv1i64 = 3187,
+  FCVTXNv2f32 = 3188,
+  FCVTXNv4f32 = 3189,
+  FCVTX_ZPmZ_DtoS = 3190,
+  FCVTX_ZPzZ_DtoS = 3191,
+  FCVTZSDHr = 3192,
+  FCVTZSDSr = 3193,
+  FCVTZSN_Z2Z_DtoS = 3194,
+  FCVTZSN_Z2Z_HtoB = 3195,
+  FCVTZSN_Z2Z_StoH = 3196,
+  FCVTZSSDr = 3197,
+  FCVTZSSHr = 3198,
+  FCVTZSSWDri = 3199,
+  FCVTZSSWHri = 3200,
+  FCVTZSSWSri = 3201,
+  FCVTZSSXDri = 3202,
+  FCVTZSSXHri = 3203,
+  FCVTZSSXSri = 3204,
+  FCVTZSUWDr = 3205,
+  FCVTZSUWHr = 3206,
+  FCVTZSUWSr = 3207,
+  FCVTZSUXDr = 3208,
+  FCVTZSUXHr = 3209,
+  FCVTZSUXSr = 3210,
+  FCVTZS_2Z2Z_StoS = 3211,
+  FCVTZS_4Z4Z_StoS = 3212,
+  FCVTZS_ZPmZ_DtoD = 3213,
+  FCVTZS_ZPmZ_DtoS = 3214,
+  FCVTZS_ZPmZ_HtoD = 3215,
+  FCVTZS_ZPmZ_HtoH = 3216,
+  FCVTZS_ZPmZ_HtoS = 3217,
+  FCVTZS_ZPmZ_StoD = 3218,
+  FCVTZS_ZPmZ_StoS = 3219,
+  FCVTZS_ZPzZ_DtoD = 3220,
+  FCVTZS_ZPzZ_DtoS = 3221,
+  FCVTZS_ZPzZ_HtoD = 3222,
+  FCVTZS_ZPzZ_HtoH = 3223,
+  FCVTZS_ZPzZ_HtoS = 3224,
+  FCVTZS_ZPzZ_StoD = 3225,
+  FCVTZS_ZPzZ_StoS = 3226,
+  FCVTZSd = 3227,
+  FCVTZSh = 3228,
+  FCVTZSs = 3229,
+  FCVTZSv1f16 = 3230,
+  FCVTZSv1i32 = 3231,
+  FCVTZSv1i64 = 3232,
+  FCVTZSv2f32 = 3233,
+  FCVTZSv2f64 = 3234,
+  FCVTZSv2i32_shift = 3235,
+  FCVTZSv2i64_shift = 3236,
+  FCVTZSv4f16 = 3237,
+  FCVTZSv4f32 = 3238,
+  FCVTZSv4i16_shift = 3239,
+  FCVTZSv4i32_shift = 3240,
+  FCVTZSv8f16 = 3241,
+  FCVTZSv8i16_shift = 3242,
+  FCVTZUDHr = 3243,
+  FCVTZUDSr = 3244,
+  FCVTZUN_Z2Z_DtoS = 3245,
+  FCVTZUN_Z2Z_HtoB = 3246,
+  FCVTZUN_Z2Z_StoH = 3247,
+  FCVTZUSDr = 3248,
+  FCVTZUSHr = 3249,
+  FCVTZUSWDri = 3250,
+  FCVTZUSWHri = 3251,
+  FCVTZUSWSri = 3252,
+  FCVTZUSXDri = 3253,
+  FCVTZUSXHri = 3254,
+  FCVTZUSXSri = 3255,
+  FCVTZUUWDr = 3256,
+  FCVTZUUWHr = 3257,
+  FCVTZUUWSr = 3258,
+  FCVTZUUXDr = 3259,
+  FCVTZUUXHr = 3260,
+  FCVTZUUXSr = 3261,
+  FCVTZU_2Z2Z_StoS = 3262,
+  FCVTZU_4Z4Z_StoS = 3263,
+  FCVTZU_ZPmZ_DtoD = 3264,
+  FCVTZU_ZPmZ_DtoS = 3265,
+  FCVTZU_ZPmZ_HtoD = 3266,
+  FCVTZU_ZPmZ_HtoH = 3267,
+  FCVTZU_ZPmZ_HtoS = 3268,
+  FCVTZU_ZPmZ_StoD = 3269,
+  FCVTZU_ZPmZ_StoS = 3270,
+  FCVTZU_ZPzZ_DtoD = 3271,
+  FCVTZU_ZPzZ_DtoS = 3272,
+  FCVTZU_ZPzZ_HtoD = 3273,
+  FCVTZU_ZPzZ_HtoH = 3274,
+  FCVTZU_ZPzZ_HtoS = 3275,
+  FCVTZU_ZPzZ_StoD = 3276,
+  FCVTZU_ZPzZ_StoS = 3277,
+  FCVTZUd = 3278,
+  FCVTZUh = 3279,
+  FCVTZUs = 3280,
+  FCVTZUv1f16 = 3281,
+  FCVTZUv1i32 = 3282,
+  FCVTZUv1i64 = 3283,
+  FCVTZUv2f32 = 3284,
+  FCVTZUv2f64 = 3285,
+  FCVTZUv2i32_shift = 3286,
+  FCVTZUv2i64_shift = 3287,
+  FCVTZUv4f16 = 3288,
+  FCVTZUv4f32 = 3289,
+  FCVTZUv4i16_shift = 3290,
+  FCVTZUv4i32_shift = 3291,
+  FCVTZUv8f16 = 3292,
+  FCVTZUv8i16_shift = 3293,
+  FCVT_2ZZ_H_S = 3294,
+  FCVT_Z2Z_HtoB = 3295,
+  FCVT_Z2Z_StoH = 3296,
+  FCVT_Z4Z_StoB = 3297,
+  FCVT_ZPmZ_DtoH = 3298,
+  FCVT_ZPmZ_DtoS = 3299,
+  FCVT_ZPmZ_HtoD = 3300,
+  FCVT_ZPmZ_HtoS = 3301,
+  FCVT_ZPmZ_StoD = 3302,
+  FCVT_ZPmZ_StoH = 3303,
+  FCVT_ZPzZ_DtoH = 3304,
+  FCVT_ZPzZ_DtoS = 3305,
+  FCVT_ZPzZ_HtoD = 3306,
+  FCVT_ZPzZ_HtoS = 3307,
+  FCVT_ZPzZ_StoD = 3308,
+  FCVT_ZPzZ_StoH = 3309,
+  FDIVDrr = 3310,
+  FDIVHrr = 3311,
+  FDIVR_ZPmZ_D = 3312,
+  FDIVR_ZPmZ_H = 3313,
+  FDIVR_ZPmZ_S = 3314,
+  FDIVSrr = 3315,
+  FDIV_ZPmZ_D = 3316,
+  FDIV_ZPmZ_H = 3317,
+  FDIV_ZPmZ_S = 3318,
+  FDIVv2f32 = 3319,
+  FDIVv2f64 = 3320,
+  FDIVv4f16 = 3321,
+  FDIVv4f32 = 3322,
+  FDIVv8f16 = 3323,
+  FDOT_VG2_M2Z2Z_BtoH = 3324,
+  FDOT_VG2_M2Z2Z_BtoS = 3325,
+  FDOT_VG2_M2Z2Z_HtoS = 3326,
+  FDOT_VG2_M2ZZI_BtoH = 3327,
+  FDOT_VG2_M2ZZI_BtoS = 3328,
+  FDOT_VG2_M2ZZI_HtoS = 3329,
+  FDOT_VG2_M2ZZ_BtoH = 3330,
+  FDOT_VG2_M2ZZ_BtoS = 3331,
+  FDOT_VG2_M2ZZ_HtoS = 3332,
+  FDOT_VG4_M4Z4Z_BtoH = 3333,
+  FDOT_VG4_M4Z4Z_BtoS = 3334,
+  FDOT_VG4_M4Z4Z_HtoS = 3335,
+  FDOT_VG4_M4ZZI_BtoH = 3336,
+  FDOT_VG4_M4ZZI_BtoS = 3337,
+  FDOT_VG4_M4ZZI_HtoS = 3338,
+  FDOT_VG4_M4ZZ_BtoH = 3339,
+  FDOT_VG4_M4ZZ_BtoS = 3340,
+  FDOT_VG4_M4ZZ_HtoS = 3341,
+  FDOT_ZZZI_BtoH = 3342,
+  FDOT_ZZZI_BtoS = 3343,
+  FDOT_ZZZI_S = 3344,
+  FDOT_ZZZ_BtoH = 3345,
+  FDOT_ZZZ_BtoS = 3346,
+  FDOT_ZZZ_S = 3347,
+  FDOTlanev2f32 = 3348,
+  FDOTlanev4f16 = 3349,
+  FDOTlanev4f16_v2f32 = 3350,
+  FDOTlanev4f32 = 3351,
+  FDOTlanev8f16 = 3352,
+  FDOTlanev8f16_v4f32 = 3353,
+  FDOTv2f32 = 3354,
+  FDOTv4f16 = 3355,
+  FDOTv4f16_v2f32 = 3356,
+  FDOTv4f32 = 3357,
+  FDOTv8f16 = 3358,
+  FDOTv8f16_v4f32 = 3359,
+  FDUP_ZI_D = 3360,
+  FDUP_ZI_H = 3361,
+  FDUP_ZI_S = 3362,
+  FEXPA_ZZ_D = 3363,
+  FEXPA_ZZ_H = 3364,
+  FEXPA_ZZ_S = 3365,
+  FIRSTP_XPP_B = 3366,
+  FIRSTP_XPP_D = 3367,
+  FIRSTP_XPP_H = 3368,
+  FIRSTP_XPP_S = 3369,
+  FJCVTZS = 3370,
+  FLOGB_ZPmZ_D = 3371,
+  FLOGB_ZPmZ_H = 3372,
+  FLOGB_ZPmZ_S = 3373,
+  FLOGB_ZPzZ_D = 3374,
+  FLOGB_ZPzZ_H = 3375,
+  FLOGB_ZPzZ_S = 3376,
+  FMADDDrrr = 3377,
+  FMADDHrrr = 3378,
+  FMADDSrrr = 3379,
+  FMAD_ZPmZZ_D = 3380,
+  FMAD_ZPmZZ_H = 3381,
+  FMAD_ZPmZZ_S = 3382,
+  FMAXDrr = 3383,
+  FMAXHrr = 3384,
+  FMAXNMDrr = 3385,
+  FMAXNMHrr = 3386,
+  FMAXNMP_ZPmZZ_D = 3387,
+  FMAXNMP_ZPmZZ_H = 3388,
+  FMAXNMP_ZPmZZ_S = 3389,
+  FMAXNMPv2f32 = 3390,
+  FMAXNMPv2f64 = 3391,
+  FMAXNMPv2i16p = 3392,
+  FMAXNMPv2i32p = 3393,
+  FMAXNMPv2i64p = 3394,
+  FMAXNMPv4f16 = 3395,
+  FMAXNMPv4f32 = 3396,
+  FMAXNMPv8f16 = 3397,
+  FMAXNMQV_D = 3398,
+  FMAXNMQV_H = 3399,
+  FMAXNMQV_S = 3400,
+  FMAXNMSrr = 3401,
+  FMAXNMV_VPZ_D = 3402,
+  FMAXNMV_VPZ_H = 3403,
+  FMAXNMV_VPZ_S = 3404,
+  FMAXNMVv4i16v = 3405,
+  FMAXNMVv4i32v = 3406,
+  FMAXNMVv8i16v = 3407,
+  FMAXNM_VG2_2Z2Z_D = 3408,
+  FMAXNM_VG2_2Z2Z_H = 3409,
+  FMAXNM_VG2_2Z2Z_S = 3410,
+  FMAXNM_VG2_2ZZ_D = 3411,
+  FMAXNM_VG2_2ZZ_H = 3412,
+  FMAXNM_VG2_2ZZ_S = 3413,
+  FMAXNM_VG4_4Z4Z_D = 3414,
+  FMAXNM_VG4_4Z4Z_H = 3415,
+  FMAXNM_VG4_4Z4Z_S = 3416,
+  FMAXNM_VG4_4ZZ_D = 3417,
+  FMAXNM_VG4_4ZZ_H = 3418,
+  FMAXNM_VG4_4ZZ_S = 3419,
+  FMAXNM_ZPmI_D = 3420,
+  FMAXNM_ZPmI_H = 3421,
+  FMAXNM_ZPmI_S = 3422,
+  FMAXNM_ZPmZ_D = 3423,
+  FMAXNM_ZPmZ_H = 3424,
+  FMAXNM_ZPmZ_S = 3425,
+  FMAXNMv2f32 = 3426,
+  FMAXNMv2f64 = 3427,
+  FMAXNMv4f16 = 3428,
+  FMAXNMv4f32 = 3429,
+  FMAXNMv8f16 = 3430,
+  FMAXP_ZPmZZ_D = 3431,
+  FMAXP_ZPmZZ_H = 3432,
+  FMAXP_ZPmZZ_S = 3433,
+  FMAXPv2f32 = 3434,
+  FMAXPv2f64 = 3435,
+  FMAXPv2i16p = 3436,
+  FMAXPv2i32p = 3437,
+  FMAXPv2i64p = 3438,
+  FMAXPv4f16 = 3439,
+  FMAXPv4f32 = 3440,
+  FMAXPv8f16 = 3441,
+  FMAXQV_D = 3442,
+  FMAXQV_H = 3443,
+  FMAXQV_S = 3444,
+  FMAXSrr = 3445,
+  FMAXV_VPZ_D = 3446,
+  FMAXV_VPZ_H = 3447,
+  FMAXV_VPZ_S = 3448,
+  FMAXVv4i16v = 3449,
+  FMAXVv4i32v = 3450,
+  FMAXVv8i16v = 3451,
+  FMAX_VG2_2Z2Z_D = 3452,
+  FMAX_VG2_2Z2Z_H = 3453,
+  FMAX_VG2_2Z2Z_S = 3454,
+  FMAX_VG2_2ZZ_D = 3455,
+  FMAX_VG2_2ZZ_H = 3456,
+  FMAX_VG2_2ZZ_S = 3457,
+  FMAX_VG4_4Z4Z_D = 3458,
+  FMAX_VG4_4Z4Z_H = 3459,
+  FMAX_VG4_4Z4Z_S = 3460,
+  FMAX_VG4_4ZZ_D = 3461,
+  FMAX_VG4_4ZZ_H = 3462,
+  FMAX_VG4_4ZZ_S = 3463,
+  FMAX_ZPmI_D = 3464,
+  FMAX_ZPmI_H = 3465,
+  FMAX_ZPmI_S = 3466,
+  FMAX_ZPmZ_D = 3467,
+  FMAX_ZPmZ_H = 3468,
+  FMAX_ZPmZ_S = 3469,
+  FMAXv2f32 = 3470,
+  FMAXv2f64 = 3471,
+  FMAXv4f16 = 3472,
+  FMAXv4f32 = 3473,
+  FMAXv8f16 = 3474,
+  FMINDrr = 3475,
+  FMINHrr = 3476,
+  FMINNMDrr = 3477,
+  FMINNMHrr = 3478,
+  FMINNMP_ZPmZZ_D = 3479,
+  FMINNMP_ZPmZZ_H = 3480,
+  FMINNMP_ZPmZZ_S = 3481,
+  FMINNMPv2f32 = 3482,
+  FMINNMPv2f64 = 3483,
+  FMINNMPv2i16p = 3484,
+  FMINNMPv2i32p = 3485,
+  FMINNMPv2i64p = 3486,
+  FMINNMPv4f16 = 3487,
+  FMINNMPv4f32 = 3488,
+  FMINNMPv8f16 = 3489,
+  FMINNMQV_D = 3490,
+  FMINNMQV_H = 3491,
+  FMINNMQV_S = 3492,
+  FMINNMSrr = 3493,
+  FMINNMV_VPZ_D = 3494,
+  FMINNMV_VPZ_H = 3495,
+  FMINNMV_VPZ_S = 3496,
+  FMINNMVv4i16v = 3497,
+  FMINNMVv4i32v = 3498,
+  FMINNMVv8i16v = 3499,
+  FMINNM_VG2_2Z2Z_D = 3500,
+  FMINNM_VG2_2Z2Z_H = 3501,
+  FMINNM_VG2_2Z2Z_S = 3502,
+  FMINNM_VG2_2ZZ_D = 3503,
+  FMINNM_VG2_2ZZ_H = 3504,
+  FMINNM_VG2_2ZZ_S = 3505,
+  FMINNM_VG4_4Z4Z_D = 3506,
+  FMINNM_VG4_4Z4Z_H = 3507,
+  FMINNM_VG4_4Z4Z_S = 3508,
+  FMINNM_VG4_4ZZ_D = 3509,
+  FMINNM_VG4_4ZZ_H = 3510,
+  FMINNM_VG4_4ZZ_S = 3511,
+  FMINNM_ZPmI_D = 3512,
+  FMINNM_ZPmI_H = 3513,
+  FMINNM_ZPmI_S = 3514,
+  FMINNM_ZPmZ_D = 3515,
+  FMINNM_ZPmZ_H = 3516,
+  FMINNM_ZPmZ_S = 3517,
+  FMINNMv2f32 = 3518,
+  FMINNMv2f64 = 3519,
+  FMINNMv4f16 = 3520,
+  FMINNMv4f32 = 3521,
+  FMINNMv8f16 = 3522,
+  FMINP_ZPmZZ_D = 3523,
+  FMINP_ZPmZZ_H = 3524,
+  FMINP_ZPmZZ_S = 3525,
+  FMINPv2f32 = 3526,
+  FMINPv2f64 = 3527,
+  FMINPv2i16p = 3528,
+  FMINPv2i32p = 3529,
+  FMINPv2i64p = 3530,
+  FMINPv4f16 = 3531,
+  FMINPv4f32 = 3532,
+  FMINPv8f16 = 3533,
+  FMINQV_D = 3534,
+  FMINQV_H = 3535,
+  FMINQV_S = 3536,
+  FMINSrr = 3537,
+  FMINV_VPZ_D = 3538,
+  FMINV_VPZ_H = 3539,
+  FMINV_VPZ_S = 3540,
+  FMINVv4i16v = 3541,
+  FMINVv4i32v = 3542,
+  FMINVv8i16v = 3543,
+  FMIN_VG2_2Z2Z_D = 3544,
+  FMIN_VG2_2Z2Z_H = 3545,
+  FMIN_VG2_2Z2Z_S = 3546,
+  FMIN_VG2_2ZZ_D = 3547,
+  FMIN_VG2_2ZZ_H = 3548,
+  FMIN_VG2_2ZZ_S = 3549,
+  FMIN_VG4_4Z4Z_D = 3550,
+  FMIN_VG4_4Z4Z_H = 3551,
+  FMIN_VG4_4Z4Z_S = 3552,
+  FMIN_VG4_4ZZ_D = 3553,
+  FMIN_VG4_4ZZ_H = 3554,
+  FMIN_VG4_4ZZ_S = 3555,
+  FMIN_ZPmI_D = 3556,
+  FMIN_ZPmI_H = 3557,
+  FMIN_ZPmI_S = 3558,
+  FMIN_ZPmZ_D = 3559,
+  FMIN_ZPmZ_H = 3560,
+  FMIN_ZPmZ_S = 3561,
+  FMINv2f32 = 3562,
+  FMINv2f64 = 3563,
+  FMINv4f16 = 3564,
+  FMINv4f32 = 3565,
+  FMINv8f16 = 3566,
+  FMLAL2lanev4f16 = 3567,
+  FMLAL2lanev8f16 = 3568,
+  FMLAL2v4f16 = 3569,
+  FMLAL2v8f16 = 3570,
+  FMLALB_ZZZ = 3571,
+  FMLALB_ZZZI = 3572,
+  FMLALB_ZZZI_SHH = 3573,
+  FMLALB_ZZZ_SHH = 3574,
+  FMLALBlanev8f16 = 3575,
+  FMLALBv16i8_v8f16 = 3576,
+  FMLALLBB_ZZZ = 3577,
+  FMLALLBB_ZZZI = 3578,
+  FMLALLBBlanev4f32 = 3579,
+  FMLALLBBv4f32 = 3580,
+  FMLALLBT_ZZZ = 3581,
+  FMLALLBT_ZZZI = 3582,
+  FMLALLBTlanev4f32 = 3583,
+  FMLALLBTv4f32 = 3584,
+  FMLALLTB_ZZZ = 3585,
+  FMLALLTB_ZZZI = 3586,
+  FMLALLTBlanev4f32 = 3587,
+  FMLALLTBv4f32 = 3588,
+  FMLALLTT_ZZZ = 3589,
+  FMLALLTT_ZZZI = 3590,
+  FMLALLTTlanev4f32 = 3591,
+  FMLALLTTv4f32 = 3592,
+  FMLALL_MZZI_BtoS = 3593,
+  FMLALL_MZZ_BtoS = 3594,
+  FMLALL_VG2_M2Z2Z_BtoS = 3595,
+  FMLALL_VG2_M2ZZI_BtoS = 3596,
+  FMLALL_VG2_M2ZZ_BtoS = 3597,
+  FMLALL_VG4_M4Z4Z_BtoS = 3598,
+  FMLALL_VG4_M4ZZI_BtoS = 3599,
+  FMLALL_VG4_M4ZZ_BtoS = 3600,
+  FMLALT_ZZZ = 3601,
+  FMLALT_ZZZI = 3602,
+  FMLALT_ZZZI_SHH = 3603,
+  FMLALT_ZZZ_SHH = 3604,
+  FMLALTlanev8f16 = 3605,
+  FMLALTv16i8_v8f16 = 3606,
+  FMLAL_MZZI_BtoH = 3607,
+  FMLAL_MZZI_HtoS = 3608,
+  FMLAL_MZZ_HtoS = 3609,
+  FMLAL_VG2_M2Z2Z_BtoH = 3610,
+  FMLAL_VG2_M2Z2Z_HtoS = 3611,
+  FMLAL_VG2_M2ZZI_BtoH = 3612,
+  FMLAL_VG2_M2ZZI_HtoS = 3613,
+  FMLAL_VG2_M2ZZ_BtoH = 3614,
+  FMLAL_VG2_M2ZZ_HtoS = 3615,
+  FMLAL_VG2_MZZ_BtoH = 3616,
+  FMLAL_VG4_M4Z4Z_BtoH = 3617,
+  FMLAL_VG4_M4Z4Z_HtoS = 3618,
+  FMLAL_VG4_M4ZZI_BtoH = 3619,
+  FMLAL_VG4_M4ZZI_HtoS = 3620,
+  FMLAL_VG4_M4ZZ_BtoH = 3621,
+  FMLAL_VG4_M4ZZ_HtoS = 3622,
+  FMLALlanev4f16 = 3623,
+  FMLALlanev8f16 = 3624,
+  FMLALv4f16 = 3625,
+  FMLALv8f16 = 3626,
+  FMLA_VG2_M2Z2Z_D = 3627,
+  FMLA_VG2_M2Z2Z_H = 3628,
+  FMLA_VG2_M2Z2Z_S = 3629,
+  FMLA_VG2_M2ZZI_D = 3630,
+  FMLA_VG2_M2ZZI_H = 3631,
+  FMLA_VG2_M2ZZI_S = 3632,
+  FMLA_VG2_M2ZZ_D = 3633,
+  FMLA_VG2_M2ZZ_H = 3634,
+  FMLA_VG2_M2ZZ_S = 3635,
+  FMLA_VG4_M4Z4Z_D = 3636,
+  FMLA_VG4_M4Z4Z_H = 3637,
+  FMLA_VG4_M4Z4Z_S = 3638,
+  FMLA_VG4_M4ZZI_D = 3639,
+  FMLA_VG4_M4ZZI_H = 3640,
+  FMLA_VG4_M4ZZI_S = 3641,
+  FMLA_VG4_M4ZZ_D = 3642,
+  FMLA_VG4_M4ZZ_H = 3643,
+  FMLA_VG4_M4ZZ_S = 3644,
+  FMLA_ZPmZZ_D = 3645,
+  FMLA_ZPmZZ_H = 3646,
+  FMLA_ZPmZZ_S = 3647,
+  FMLA_ZZZI_D = 3648,
+  FMLA_ZZZI_H = 3649,
+  FMLA_ZZZI_S = 3650,
+  FMLAv1i16_indexed = 3651,
+  FMLAv1i32_indexed = 3652,
+  FMLAv1i64_indexed = 3653,
+  FMLAv2f32 = 3654,
+  FMLAv2f64 = 3655,
+  FMLAv2i32_indexed = 3656,
+  FMLAv2i64_indexed = 3657,
+  FMLAv4f16 = 3658,
+  FMLAv4f32 = 3659,
+  FMLAv4i16_indexed = 3660,
+  FMLAv4i32_indexed = 3661,
+  FMLAv8f16 = 3662,
+  FMLAv8i16_indexed = 3663,
+  FMLLA_ZZZ_HtoS = 3664,
+  FMLSL2lanev4f16 = 3665,
+  FMLSL2lanev8f16 = 3666,
+  FMLSL2v4f16 = 3667,
+  FMLSL2v8f16 = 3668,
+  FMLSLB_ZZZI_SHH = 3669,
+  FMLSLB_ZZZ_SHH = 3670,
+  FMLSLT_ZZZI_SHH = 3671,
+  FMLSLT_ZZZ_SHH = 3672,
+  FMLSL_MZZI_HtoS = 3673,
+  FMLSL_MZZ_HtoS = 3674,
+  FMLSL_VG2_M2Z2Z_HtoS = 3675,
+  FMLSL_VG2_M2ZZI_HtoS = 3676,
+  FMLSL_VG2_M2ZZ_HtoS = 3677,
+  FMLSL_VG4_M4Z4Z_HtoS = 3678,
+  FMLSL_VG4_M4ZZI_HtoS = 3679,
+  FMLSL_VG4_M4ZZ_HtoS = 3680,
+  FMLSLlanev4f16 = 3681,
+  FMLSLlanev8f16 = 3682,
+  FMLSLv4f16 = 3683,
+  FMLSLv8f16 = 3684,
+  FMLS_VG2_M2Z2Z_D = 3685,
+  FMLS_VG2_M2Z2Z_H = 3686,
+  FMLS_VG2_M2Z2Z_S = 3687,
+  FMLS_VG2_M2ZZI_D = 3688,
+  FMLS_VG2_M2ZZI_H = 3689,
+  FMLS_VG2_M2ZZI_S = 3690,
+  FMLS_VG2_M2ZZ_D = 3691,
+  FMLS_VG2_M2ZZ_H = 3692,
+  FMLS_VG2_M2ZZ_S = 3693,
+  FMLS_VG4_M4Z4Z_D = 3694,
+  FMLS_VG4_M4Z4Z_H = 3695,
+  FMLS_VG4_M4Z4Z_S = 3696,
+  FMLS_VG4_M4ZZI_D = 3697,
+  FMLS_VG4_M4ZZI_H = 3698,
+  FMLS_VG4_M4ZZI_S = 3699,
+  FMLS_VG4_M4ZZ_D = 3700,
+  FMLS_VG4_M4ZZ_H = 3701,
+  FMLS_VG4_M4ZZ_S = 3702,
+  FMLS_ZPmZZ_D = 3703,
+  FMLS_ZPmZZ_H = 3704,
+  FMLS_ZPmZZ_S = 3705,
+  FMLS_ZZZI_D = 3706,
+  FMLS_ZZZI_H = 3707,
+  FMLS_ZZZI_S = 3708,
+  FMLSv1i16_indexed = 3709,
+  FMLSv1i32_indexed = 3710,
+  FMLSv1i64_indexed = 3711,
+  FMLSv2f32 = 3712,
+  FMLSv2f64 = 3713,
+  FMLSv2i32_indexed = 3714,
+  FMLSv2i64_indexed = 3715,
+  FMLSv4f16 = 3716,
+  FMLSv4f32 = 3717,
+  FMLSv4i16_indexed = 3718,
+  FMLSv4i32_indexed = 3719,
+  FMLSv8f16 = 3720,
+  FMLSv8i16_indexed = 3721,
+  FMMLA_ZZZ_BtoH = 3722,
+  FMMLA_ZZZ_BtoS = 3723,
+  FMMLA_ZZZ_D = 3724,
+  FMMLA_ZZZ_H = 3725,
+  FMMLA_ZZZ_S = 3726,
+  FMMLAv4f32 = 3727,
+  FMMLAv8f16 = 3728,
+  FMMLAv8f16_v4f32 = 3729,
+  FMMLAv8f16_v8f16 = 3730,
+  FMOP4A_M2Z2Z_BtoH = 3731,
+  FMOP4A_M2Z2Z_BtoS = 3732,
+  FMOP4A_M2Z2Z_D = 3733,
+  FMOP4A_M2Z2Z_H = 3734,
+  FMOP4A_M2Z2Z_HtoS = 3735,
+  FMOP4A_M2Z2Z_S = 3736,
+  FMOP4A_M2ZZ_BtoH = 3737,
+  FMOP4A_M2ZZ_BtoS = 3738,
+  FMOP4A_M2ZZ_D = 3739,
+  FMOP4A_M2ZZ_H = 3740,
+  FMOP4A_M2ZZ_HtoS = 3741,
+  FMOP4A_M2ZZ_S = 3742,
+  FMOP4A_MZ2Z_BtoH = 3743,
+  FMOP4A_MZ2Z_BtoS = 3744,
+  FMOP4A_MZ2Z_D = 3745,
+  FMOP4A_MZ2Z_H = 3746,
+  FMOP4A_MZ2Z_HtoS = 3747,
+  FMOP4A_MZ2Z_S = 3748,
+  FMOP4A_MZZ_BtoH = 3749,
+  FMOP4A_MZZ_BtoS = 3750,
+  FMOP4A_MZZ_D = 3751,
+  FMOP4A_MZZ_H = 3752,
+  FMOP4A_MZZ_HtoS = 3753,
+  FMOP4A_MZZ_S = 3754,
+  FMOP4S_M2Z2Z_D = 3755,
+  FMOP4S_M2Z2Z_H = 3756,
+  FMOP4S_M2Z2Z_HtoS = 3757,
+  FMOP4S_M2Z2Z_S = 3758,
+  FMOP4S_M2ZZ_D = 3759,
+  FMOP4S_M2ZZ_H = 3760,
+  FMOP4S_M2ZZ_HtoS = 3761,
+  FMOP4S_M2ZZ_S = 3762,
+  FMOP4S_MZ2Z_D = 3763,
+  FMOP4S_MZ2Z_H = 3764,
+  FMOP4S_MZ2Z_HtoS = 3765,
+  FMOP4S_MZ2Z_S = 3766,
+  FMOP4S_MZZ_D = 3767,
+  FMOP4S_MZZ_H = 3768,
+  FMOP4S_MZZ_HtoS = 3769,
+  FMOP4S_MZZ_S = 3770,
+  FMOPAL_MPPZZ = 3771,
+  FMOPA_MPPZZ_BtoH = 3772,
+  FMOPA_MPPZZ_BtoS = 3773,
+  FMOPA_MPPZZ_D = 3774,
+  FMOPA_MPPZZ_H = 3775,
+  FMOPA_MPPZZ_S = 3776,
+  FMOPSL_MPPZZ = 3777,
+  FMOPS_MPPZZ_D = 3778,
+  FMOPS_MPPZZ_H = 3779,
+  FMOPS_MPPZZ_S = 3780,
+  FMOVDXHighr = 3781,
+  FMOVDXr = 3782,
+  FMOVDi = 3783,
+  FMOVDr = 3784,
+  FMOVHWr = 3785,
+  FMOVHXr = 3786,
+  FMOVHi = 3787,
+  FMOVHr = 3788,
+  FMOVSWr = 3789,
+  FMOVSi = 3790,
+  FMOVSr = 3791,
+  FMOVWHr = 3792,
+  FMOVWSr = 3793,
+  FMOVXDHighr = 3794,
+  FMOVXDr = 3795,
+  FMOVXHr = 3796,
+  FMOVv2f32_ns = 3797,
+  FMOVv2f64_ns = 3798,
+  FMOVv4f16_ns = 3799,
+  FMOVv4f32_ns = 3800,
+  FMOVv8f16_ns = 3801,
+  FMSB_ZPmZZ_D = 3802,
+  FMSB_ZPmZZ_H = 3803,
+  FMSB_ZPmZZ_S = 3804,
+  FMSUBDrrr = 3805,
+  FMSUBHrrr = 3806,
+  FMSUBSrrr = 3807,
+  FMULDrr = 3808,
+  FMULHrr = 3809,
+  FMULSrr = 3810,
+  FMULX16 = 3811,
+  FMULX32 = 3812,
+  FMULX64 = 3813,
+  FMULX_ZPmZ_D = 3814,
+  FMULX_ZPmZ_H = 3815,
+  FMULX_ZPmZ_S = 3816,
+  FMULXv1i16_indexed = 3817,
+  FMULXv1i32_indexed = 3818,
+  FMULXv1i64_indexed = 3819,
+  FMULXv2f32 = 3820,
+  FMULXv2f64 = 3821,
+  FMULXv2i32_indexed = 3822,
+  FMULXv2i64_indexed = 3823,
+  FMULXv4f16 = 3824,
+  FMULXv4f32 = 3825,
+  FMULXv4i16_indexed = 3826,
+  FMULXv4i32_indexed = 3827,
+  FMULXv8f16 = 3828,
+  FMULXv8i16_indexed = 3829,
+  FMUL_2Z2Z_D = 3830,
+  FMUL_2Z2Z_H = 3831,
+  FMUL_2Z2Z_S = 3832,
+  FMUL_2ZZ_D = 3833,
+  FMUL_2ZZ_H = 3834,
+  FMUL_2ZZ_S = 3835,
+  FMUL_4Z4Z_D = 3836,
+  FMUL_4Z4Z_H = 3837,
+  FMUL_4Z4Z_S = 3838,
+  FMUL_4ZZ_D = 3839,
+  FMUL_4ZZ_H = 3840,
+  FMUL_4ZZ_S = 3841,
+  FMUL_ZPmI_D = 3842,
+  FMUL_ZPmI_H = 3843,
+  FMUL_ZPmI_S = 3844,
+  FMUL_ZPmZ_D = 3845,
+  FMUL_ZPmZ_H = 3846,
+  FMUL_ZPmZ_S = 3847,
+  FMUL_ZZZI_D = 3848,
+  FMUL_ZZZI_H = 3849,
+  FMUL_ZZZI_S = 3850,
+  FMUL_ZZZ_D = 3851,
+  FMUL_ZZZ_H = 3852,
+  FMUL_ZZZ_S = 3853,
+  FMULv1i16_indexed = 3854,
+  FMULv1i32_indexed = 3855,
+  FMULv1i64_indexed = 3856,
+  FMULv2f32 = 3857,
+  FMULv2f64 = 3858,
+  FMULv2i32_indexed = 3859,
+  FMULv2i64_indexed = 3860,
+  FMULv4f16 = 3861,
+  FMULv4f32 = 3862,
+  FMULv4i16_indexed = 3863,
+  FMULv4i32_indexed = 3864,
+  FMULv8f16 = 3865,
+  FMULv8i16_indexed = 3866,
+  FNEGDr = 3867,
+  FNEGHr = 3868,
+  FNEGSr = 3869,
+  FNEG_ZPmZ_D = 3870,
+  FNEG_ZPmZ_H = 3871,
+  FNEG_ZPmZ_S = 3872,
+  FNEG_ZPzZ_D = 3873,
+  FNEG_ZPzZ_H = 3874,
+  FNEG_ZPzZ_S = 3875,
+  FNEGv2f32 = 3876,
+  FNEGv2f64 = 3877,
+  FNEGv4f16 = 3878,
+  FNEGv4f32 = 3879,
+  FNEGv8f16 = 3880,
+  FNMADDDrrr = 3881,
+  FNMADDHrrr = 3882,
+  FNMADDSrrr = 3883,
+  FNMAD_ZPmZZ_D = 3884,
+  FNMAD_ZPmZZ_H = 3885,
+  FNMAD_ZPmZZ_S = 3886,
+  FNMLA_ZPmZZ_D = 3887,
+  FNMLA_ZPmZZ_H = 3888,
+  FNMLA_ZPmZZ_S = 3889,
+  FNMLS_ZPmZZ_D = 3890,
+  FNMLS_ZPmZZ_H = 3891,
+  FNMLS_ZPmZZ_S = 3892,
+  FNMSB_ZPmZZ_D = 3893,
+  FNMSB_ZPmZZ_H = 3894,
+  FNMSB_ZPmZZ_S = 3895,
+  FNMSUBDrrr = 3896,
+  FNMSUBHrrr = 3897,
+  FNMSUBSrrr = 3898,
+  FNMULDrr = 3899,
+  FNMULHrr = 3900,
+  FNMULSrr = 3901,
+  FRECPE_ZZ_D = 3902,
+  FRECPE_ZZ_H = 3903,
+  FRECPE_ZZ_S = 3904,
+  FRECPEv1f16 = 3905,
+  FRECPEv1i32 = 3906,
+  FRECPEv1i64 = 3907,
+  FRECPEv2f32 = 3908,
+  FRECPEv2f64 = 3909,
+  FRECPEv4f16 = 3910,
+  FRECPEv4f32 = 3911,
+  FRECPEv8f16 = 3912,
+  FRECPS16 = 3913,
+  FRECPS32 = 3914,
+  FRECPS64 = 3915,
+  FRECPS_ZZZ_D = 3916,
+  FRECPS_ZZZ_H = 3917,
+  FRECPS_ZZZ_S = 3918,
+  FRECPSv2f32 = 3919,
+  FRECPSv2f64 = 3920,
+  FRECPSv4f16 = 3921,
+  FRECPSv4f32 = 3922,
+  FRECPSv8f16 = 3923,
+  FRECPX_ZPmZ_D = 3924,
+  FRECPX_ZPmZ_H = 3925,
+  FRECPX_ZPmZ_S = 3926,
+  FRECPX_ZPzZ_D = 3927,
+  FRECPX_ZPzZ_H = 3928,
+  FRECPX_ZPzZ_S = 3929,
+  FRECPXv1f16 = 3930,
+  FRECPXv1i32 = 3931,
+  FRECPXv1i64 = 3932,
+  FRINT32XDr = 3933,
+  FRINT32XSr = 3934,
+  FRINT32X_ZPmZ_D = 3935,
+  FRINT32X_ZPmZ_S = 3936,
+  FRINT32X_ZPzZ_D = 3937,
+  FRINT32X_ZPzZ_S = 3938,
+  FRINT32Xv2f32 = 3939,
+  FRINT32Xv2f64 = 3940,
+  FRINT32Xv4f32 = 3941,
+  FRINT32ZDr = 3942,
+  FRINT32ZSr = 3943,
+  FRINT32Z_ZPmZ_D = 3944,
+  FRINT32Z_ZPmZ_S = 3945,
+  FRINT32Z_ZPzZ_D = 3946,
+  FRINT32Z_ZPzZ_S = 3947,
+  FRINT32Zv2f32 = 3948,
+  FRINT32Zv2f64 = 3949,
+  FRINT32Zv4f32 = 3950,
+  FRINT64XDr = 3951,
+  FRINT64XSr = 3952,
+  FRINT64X_ZPmZ_D = 3953,
+  FRINT64X_ZPmZ_S = 3954,
+  FRINT64X_ZPzZ_D = 3955,
+  FRINT64X_ZPzZ_S = 3956,
+  FRINT64Xv2f32 = 3957,
+  FRINT64Xv2f64 = 3958,
+  FRINT64Xv4f32 = 3959,
+  FRINT64ZDr = 3960,
+  FRINT64ZSr = 3961,
+  FRINT64Z_ZPmZ_D = 3962,
+  FRINT64Z_ZPmZ_S = 3963,
+  FRINT64Z_ZPzZ_D = 3964,
+  FRINT64Z_ZPzZ_S = 3965,
+  FRINT64Zv2f32 = 3966,
+  FRINT64Zv2f64 = 3967,
+  FRINT64Zv4f32 = 3968,
+  FRINTADr = 3969,
+  FRINTAHr = 3970,
+  FRINTASr = 3971,
+  FRINTA_2Z2Z_S = 3972,
+  FRINTA_4Z4Z_S = 3973,
+  FRINTA_ZPmZ_D = 3974,
+  FRINTA_ZPmZ_H = 3975,
+  FRINTA_ZPmZ_S = 3976,
+  FRINTA_ZPzZ_D = 3977,
+  FRINTA_ZPzZ_H = 3978,
+  FRINTA_ZPzZ_S = 3979,
+  FRINTAv2f32 = 3980,
+  FRINTAv2f64 = 3981,
+  FRINTAv4f16 = 3982,
+  FRINTAv4f32 = 3983,
+  FRINTAv8f16 = 3984,
+  FRINTIDr = 3985,
+  FRINTIHr = 3986,
+  FRINTISr = 3987,
+  FRINTI_ZPmZ_D = 3988,
+  FRINTI_ZPmZ_H = 3989,
+  FRINTI_ZPmZ_S = 3990,
+  FRINTI_ZPzZ_D = 3991,
+  FRINTI_ZPzZ_H = 3992,
+  FRINTI_ZPzZ_S = 3993,
+  FRINTIv2f32 = 3994,
+  FRINTIv2f64 = 3995,
+  FRINTIv4f16 = 3996,
+  FRINTIv4f32 = 3997,
+  FRINTIv8f16 = 3998,
+  FRINTMDr = 3999,
+  FRINTMHr = 4000,
+  FRINTMSr = 4001,
+  FRINTM_2Z2Z_S = 4002,
+  FRINTM_4Z4Z_S = 4003,
+  FRINTM_ZPmZ_D = 4004,
+  FRINTM_ZPmZ_H = 4005,
+  FRINTM_ZPmZ_S = 4006,
+  FRINTM_ZPzZ_D = 4007,
+  FRINTM_ZPzZ_H = 4008,
+  FRINTM_ZPzZ_S = 4009,
+  FRINTMv2f32 = 4010,
+  FRINTMv2f64 = 4011,
+  FRINTMv4f16 = 4012,
+  FRINTMv4f32 = 4013,
+  FRINTMv8f16 = 4014,
+  FRINTNDr = 4015,
+  FRINTNHr = 4016,
+  FRINTNSr = 4017,
+  FRINTN_2Z2Z_S = 4018,
+  FRINTN_4Z4Z_S = 4019,
+  FRINTN_ZPmZ_D = 4020,
+  FRINTN_ZPmZ_H = 4021,
+  FRINTN_ZPmZ_S = 4022,
+  FRINTN_ZPzZ_D = 4023,
+  FRINTN_ZPzZ_H = 4024,
+  FRINTN_ZPzZ_S = 4025,
+  FRINTNv2f32 = 4026,
+  FRINTNv2f64 = 4027,
+  FRINTNv4f16 = 4028,
+  FRINTNv4f32 = 4029,
+  FRINTNv8f16 = 4030,
+  FRINTPDr = 4031,
+  FRINTPHr = 4032,
+  FRINTPSr = 4033,
+  FRINTP_2Z2Z_S = 4034,
+  FRINTP_4Z4Z_S = 4035,
+  FRINTP_ZPmZ_D = 4036,
+  FRINTP_ZPmZ_H = 4037,
+  FRINTP_ZPmZ_S = 4038,
+  FRINTP_ZPzZ_D = 4039,
+  FRINTP_ZPzZ_H = 4040,
+  FRINTP_ZPzZ_S = 4041,
+  FRINTPv2f32 = 4042,
+  FRINTPv2f64 = 4043,
+  FRINTPv4f16 = 4044,
+  FRINTPv4f32 = 4045,
+  FRINTPv8f16 = 4046,
+  FRINTXDr = 4047,
+  FRINTXHr = 4048,
+  FRINTXSr = 4049,
+  FRINTX_ZPmZ_D = 4050,
+  FRINTX_ZPmZ_H = 4051,
+  FRINTX_ZPmZ_S = 4052,
+  FRINTX_ZPzZ_D = 4053,
+  FRINTX_ZPzZ_H = 4054,
+  FRINTX_ZPzZ_S = 4055,
+  FRINTXv2f32 = 4056,
+  FRINTXv2f64 = 4057,
+  FRINTXv4f16 = 4058,
+  FRINTXv4f32 = 4059,
+  FRINTXv8f16 = 4060,
+  FRINTZDr = 4061,
+  FRINTZHr = 4062,
+  FRINTZSr = 4063,
+  FRINTZ_ZPmZ_D = 4064,
+  FRINTZ_ZPmZ_H = 4065,
+  FRINTZ_ZPmZ_S = 4066,
+  FRINTZ_ZPzZ_D = 4067,
+  FRINTZ_ZPzZ_H = 4068,
+  FRINTZ_ZPzZ_S = 4069,
+  FRINTZv2f32 = 4070,
+  FRINTZv2f64 = 4071,
+  FRINTZv4f16 = 4072,
+  FRINTZv4f32 = 4073,
+  FRINTZv8f16 = 4074,
+  FRSQRTE_ZZ_D = 4075,
+  FRSQRTE_ZZ_H = 4076,
+  FRSQRTE_ZZ_S = 4077,
+  FRSQRTEv1f16 = 4078,
+  FRSQRTEv1i32 = 4079,
+  FRSQRTEv1i64 = 4080,
+  FRSQRTEv2f32 = 4081,
+  FRSQRTEv2f64 = 4082,
+  FRSQRTEv4f16 = 4083,
+  FRSQRTEv4f32 = 4084,
+  FRSQRTEv8f16 = 4085,
+  FRSQRTS16 = 4086,
+  FRSQRTS32 = 4087,
+  FRSQRTS64 = 4088,
+  FRSQRTS_ZZZ_D = 4089,
+  FRSQRTS_ZZZ_H = 4090,
+  FRSQRTS_ZZZ_S = 4091,
+  FRSQRTSv2f32 = 4092,
+  FRSQRTSv2f64 = 4093,
+  FRSQRTSv4f16 = 4094,
+  FRSQRTSv4f32 = 4095,
+  FRSQRTSv8f16 = 4096,
+  FSCALE_2Z2Z_D = 4097,
+  FSCALE_2Z2Z_H = 4098,
+  FSCALE_2Z2Z_S = 4099,
+  FSCALE_2ZZ_D = 4100,
+  FSCALE_2ZZ_H = 4101,
+  FSCALE_2ZZ_S = 4102,
+  FSCALE_4Z4Z_D = 4103,
+  FSCALE_4Z4Z_H = 4104,
+  FSCALE_4Z4Z_S = 4105,
+  FSCALE_4ZZ_D = 4106,
+  FSCALE_4ZZ_H = 4107,
+  FSCALE_4ZZ_S = 4108,
+  FSCALE_ZPmZ_D = 4109,
+  FSCALE_ZPmZ_H = 4110,
+  FSCALE_ZPmZ_S = 4111,
+  FSCALEv2f32 = 4112,
+  FSCALEv2f64 = 4113,
+  FSCALEv4f16 = 4114,
+  FSCALEv4f32 = 4115,
+  FSCALEv8f16 = 4116,
+  FSQRTDr = 4117,
+  FSQRTHr = 4118,
+  FSQRTSr = 4119,
+  FSQRT_ZPZz_D = 4120,
+  FSQRT_ZPZz_H = 4121,
+  FSQRT_ZPZz_S = 4122,
+  FSQRT_ZPmZ_D = 4123,
+  FSQRT_ZPmZ_H = 4124,
+  FSQRT_ZPmZ_S = 4125,
+  FSQRTv2f32 = 4126,
+  FSQRTv2f64 = 4127,
+  FSQRTv4f16 = 4128,
+  FSQRTv4f32 = 4129,
+  FSQRTv8f16 = 4130,
+  FSUBDrr = 4131,
+  FSUBHrr = 4132,
+  FSUBR_ZPmI_D = 4133,
+  FSUBR_ZPmI_H = 4134,
+  FSUBR_ZPmI_S = 4135,
+  FSUBR_ZPmZ_D = 4136,
+  FSUBR_ZPmZ_H = 4137,
+  FSUBR_ZPmZ_S = 4138,
+  FSUBSrr = 4139,
+  FSUB_VG2_M2Z_D = 4140,
+  FSUB_VG2_M2Z_H = 4141,
+  FSUB_VG2_M2Z_S = 4142,
+  FSUB_VG4_M4Z_D = 4143,
+  FSUB_VG4_M4Z_H = 4144,
+  FSUB_VG4_M4Z_S = 4145,
+  FSUB_ZPmI_D = 4146,
+  FSUB_ZPmI_H = 4147,
+  FSUB_ZPmI_S = 4148,
+  FSUB_ZPmZ_D = 4149,
+  FSUB_ZPmZ_H = 4150,
+  FSUB_ZPmZ_S = 4151,
+  FSUB_ZZZ_D = 4152,
+  FSUB_ZZZ_H = 4153,
+  FSUB_ZZZ_S = 4154,
+  FSUBv2f32 = 4155,
+  FSUBv2f64 = 4156,
+  FSUBv4f16 = 4157,
+  FSUBv4f32 = 4158,
+  FSUBv8f16 = 4159,
+  FTMAD_ZZI_D = 4160,
+  FTMAD_ZZI_H = 4161,
+  FTMAD_ZZI_S = 4162,
+  FTMOPA_M2ZZZI_BtoH = 4163,
+  FTMOPA_M2ZZZI_BtoS = 4164,
+  FTMOPA_M2ZZZI_HtoH = 4165,
+  FTMOPA_M2ZZZI_HtoS = 4166,
+  FTMOPA_M2ZZZI_StoS = 4167,
+  FTSMUL_ZZZ_D = 4168,
+  FTSMUL_ZZZ_H = 4169,
+  FTSMUL_ZZZ_S = 4170,
+  FTSSEL_ZZZ_D = 4171,
+  FTSSEL_ZZZ_H = 4172,
+  FTSSEL_ZZZ_S = 4173,
+  FVDOTB_VG4_M2ZZI_BtoS = 4174,
+  FVDOTT_VG4_M2ZZI_BtoS = 4175,
+  FVDOT_VG2_M2ZZI_BtoH = 4176,
+  FVDOT_VG2_M2ZZI_HtoS = 4177,
+  GCSPOPCX = 4178,
+  GCSPOPM = 4179,
+  GCSPOPX = 4180,
+  GCSPUSHM = 4181,
+  GCSPUSHX = 4182,
+  GCSSS1 = 4183,
+  GCSSS2 = 4184,
+  GCSSTR = 4185,
+  GCSSTTR = 4186,
+  GLD1B_D = 4187,
+  GLD1B_D_IMM = 4188,
+  GLD1B_D_SXTW = 4189,
+  GLD1B_D_UXTW = 4190,
+  GLD1B_S_IMM = 4191,
+  GLD1B_S_SXTW = 4192,
+  GLD1B_S_UXTW = 4193,
+  GLD1D = 4194,
+  GLD1D_IMM = 4195,
+  GLD1D_SCALED = 4196,
+  GLD1D_SXTW = 4197,
+  GLD1D_SXTW_SCALED = 4198,
+  GLD1D_UXTW = 4199,
+  GLD1D_UXTW_SCALED = 4200,
+  GLD1H_D = 4201,
+  GLD1H_D_IMM = 4202,
+  GLD1H_D_SCALED = 4203,
+  GLD1H_D_SXTW = 4204,
+  GLD1H_D_SXTW_SCALED = 4205,
+  GLD1H_D_UXTW = 4206,
+  GLD1H_D_UXTW_SCALED = 4207,
+  GLD1H_S_IMM = 4208,
+  GLD1H_S_SXTW = 4209,
+  GLD1H_S_SXTW_SCALED = 4210,
+  GLD1H_S_UXTW = 4211,
+  GLD1H_S_UXTW_SCALED = 4212,
+  GLD1Q = 4213,
+  GLD1SB_D = 4214,
+  GLD1SB_D_IMM = 4215,
+  GLD1SB_D_SXTW = 4216,
+  GLD1SB_D_UXTW = 4217,
+  GLD1SB_S_IMM = 4218,
+  GLD1SB_S_SXTW = 4219,
+  GLD1SB_S_UXTW = 4220,
+  GLD1SH_D = 4221,
+  GLD1SH_D_IMM = 4222,
+  GLD1SH_D_SCALED = 4223,
+  GLD1SH_D_SXTW = 4224,
+  GLD1SH_D_SXTW_SCALED = 4225,
+  GLD1SH_D_UXTW = 4226,
+  GLD1SH_D_UXTW_SCALED = 4227,
+  GLD1SH_S_IMM = 4228,
+  GLD1SH_S_SXTW = 4229,
+  GLD1SH_S_SXTW_SCALED = 4230,
+  GLD1SH_S_UXTW = 4231,
+  GLD1SH_S_UXTW_SCALED = 4232,
+  GLD1SW_D = 4233,
+  GLD1SW_D_IMM = 4234,
+  GLD1SW_D_SCALED = 4235,
+  GLD1SW_D_SXTW = 4236,
+  GLD1SW_D_SXTW_SCALED = 4237,
+  GLD1SW_D_UXTW = 4238,
+  GLD1SW_D_UXTW_SCALED = 4239,
+  GLD1W_D = 4240,
+  GLD1W_D_IMM = 4241,
+  GLD1W_D_SCALED = 4242,
+  GLD1W_D_SXTW = 4243,
+  GLD1W_D_SXTW_SCALED = 4244,
+  GLD1W_D_UXTW = 4245,
+  GLD1W_D_UXTW_SCALED = 4246,
+  GLD1W_IMM = 4247,
+  GLD1W_SXTW = 4248,
+  GLD1W_SXTW_SCALED = 4249,
+  GLD1W_UXTW = 4250,
+  GLD1W_UXTW_SCALED = 4251,
+  GLDFF1B_D = 4252,
+  GLDFF1B_D_IMM = 4253,
+  GLDFF1B_D_SXTW = 4254,
+  GLDFF1B_D_UXTW = 4255,
+  GLDFF1B_S_IMM = 4256,
+  GLDFF1B_S_SXTW = 4257,
+  GLDFF1B_S_UXTW = 4258,
+  GLDFF1D = 4259,
+  GLDFF1D_IMM = 4260,
+  GLDFF1D_SCALED = 4261,
+  GLDFF1D_SXTW = 4262,
+  GLDFF1D_SXTW_SCALED = 4263,
+  GLDFF1D_UXTW = 4264,
+  GLDFF1D_UXTW_SCALED = 4265,
+  GLDFF1H_D = 4266,
+  GLDFF1H_D_IMM = 4267,
+  GLDFF1H_D_SCALED = 4268,
+  GLDFF1H_D_SXTW = 4269,
+  GLDFF1H_D_SXTW_SCALED = 4270,
+  GLDFF1H_D_UXTW = 4271,
+  GLDFF1H_D_UXTW_SCALED = 4272,
+  GLDFF1H_S_IMM = 4273,
+  GLDFF1H_S_SXTW = 4274,
+  GLDFF1H_S_SXTW_SCALED = 4275,
+  GLDFF1H_S_UXTW = 4276,
+  GLDFF1H_S_UXTW_SCALED = 4277,
+  GLDFF1SB_D = 4278,
+  GLDFF1SB_D_IMM = 4279,
+  GLDFF1SB_D_SXTW = 4280,
+  GLDFF1SB_D_UXTW = 4281,
+  GLDFF1SB_S_IMM = 4282,
+  GLDFF1SB_S_SXTW = 4283,
+  GLDFF1SB_S_UXTW = 4284,
+  GLDFF1SH_D = 4285,
+  GLDFF1SH_D_IMM = 4286,
+  GLDFF1SH_D_SCALED = 4287,
+  GLDFF1SH_D_SXTW = 4288,
+  GLDFF1SH_D_SXTW_SCALED = 4289,
+  GLDFF1SH_D_UXTW = 4290,
+  GLDFF1SH_D_UXTW_SCALED = 4291,
+  GLDFF1SH_S_IMM = 4292,
+  GLDFF1SH_S_SXTW = 4293,
+  GLDFF1SH_S_SXTW_SCALED = 4294,
+  GLDFF1SH_S_UXTW = 4295,
+  GLDFF1SH_S_UXTW_SCALED = 4296,
+  GLDFF1SW_D = 4297,
+  GLDFF1SW_D_IMM = 4298,
+  GLDFF1SW_D_SCALED = 4299,
+  GLDFF1SW_D_SXTW = 4300,
+  GLDFF1SW_D_SXTW_SCALED = 4301,
+  GLDFF1SW_D_UXTW = 4302,
+  GLDFF1SW_D_UXTW_SCALED = 4303,
+  GLDFF1W_D = 4304,
+  GLDFF1W_D_IMM = 4305,
+  GLDFF1W_D_SCALED = 4306,
+  GLDFF1W_D_SXTW = 4307,
+  GLDFF1W_D_SXTW_SCALED = 4308,
+  GLDFF1W_D_UXTW = 4309,
+  GLDFF1W_D_UXTW_SCALED = 4310,
+  GLDFF1W_IMM = 4311,
+  GLDFF1W_SXTW = 4312,
+  GLDFF1W_SXTW_SCALED = 4313,
+  GLDFF1W_UXTW = 4314,
+  GLDFF1W_UXTW_SCALED = 4315,
+  GMI = 4316,
+  HINT = 4317,
+  HISTCNT_ZPzZZ_D = 4318,
+  HISTCNT_ZPzZZ_S = 4319,
+  HISTSEG_ZZZ = 4320,
+  HLT = 4321,
+  HVC = 4322,
+  INCB_XPiI = 4323,
+  INCD_XPiI = 4324,
+  INCD_ZPiI = 4325,
+  INCH_XPiI = 4326,
+  INCH_ZPiI = 4327,
+  INCP_XP_B = 4328,
+  INCP_XP_D = 4329,
+  INCP_XP_H = 4330,
+  INCP_XP_S = 4331,
+  INCP_ZP_D = 4332,
+  INCP_ZP_H = 4333,
+  INCP_ZP_S = 4334,
+  INCW_XPiI = 4335,
+  INCW_ZPiI = 4336,
+  INDEX_II_B = 4337,
+  INDEX_II_D = 4338,
+  INDEX_II_H = 4339,
+  INDEX_II_S = 4340,
+  INDEX_IR_B = 4341,
+  INDEX_IR_D = 4342,
+  INDEX_IR_H = 4343,
+  INDEX_IR_S = 4344,
+  INDEX_RI_B = 4345,
+  INDEX_RI_D = 4346,
+  INDEX_RI_H = 4347,
+  INDEX_RI_S = 4348,
+  INDEX_RR_B = 4349,
+  INDEX_RR_D = 4350,
+  INDEX_RR_H = 4351,
+  INDEX_RR_S = 4352,
+  INSERT_MXIPZ_H_B = 4353,
+  INSERT_MXIPZ_H_D = 4354,
+  INSERT_MXIPZ_H_H = 4355,
+  INSERT_MXIPZ_H_Q = 4356,
+  INSERT_MXIPZ_H_S = 4357,
+  INSERT_MXIPZ_V_B = 4358,
+  INSERT_MXIPZ_V_D = 4359,
+  INSERT_MXIPZ_V_H = 4360,
+  INSERT_MXIPZ_V_Q = 4361,
+  INSERT_MXIPZ_V_S = 4362,
+  INSR_ZR_B = 4363,
+  INSR_ZR_D = 4364,
+  INSR_ZR_H = 4365,
+  INSR_ZR_S = 4366,
+  INSR_ZV_B = 4367,
+  INSR_ZV_D = 4368,
+  INSR_ZV_H = 4369,
+  INSR_ZV_S = 4370,
+  INSvi16gpr = 4371,
+  INSvi16lane = 4372,
+  INSvi32gpr = 4373,
+  INSvi32lane = 4374,
+  INSvi64gpr = 4375,
+  INSvi64lane = 4376,
+  INSvi8gpr = 4377,
+  INSvi8lane = 4378,
+  IRG = 4379,
+  ISB = 4380,
+  LASTA_RPZ_B = 4381,
+  LASTA_RPZ_D = 4382,
+  LASTA_RPZ_H = 4383,
+  LASTA_RPZ_S = 4384,
+  LASTA_VPZ_B = 4385,
+  LASTA_VPZ_D = 4386,
+  LASTA_VPZ_H = 4387,
+  LASTA_VPZ_S = 4388,
+  LASTB_RPZ_B = 4389,
+  LASTB_RPZ_D = 4390,
+  LASTB_RPZ_H = 4391,
+  LASTB_RPZ_S = 4392,
+  LASTB_VPZ_B = 4393,
+  LASTB_VPZ_D = 4394,
+  LASTB_VPZ_H = 4395,
+  LASTB_VPZ_S = 4396,
+  LASTP_XPP_B = 4397,
+  LASTP_XPP_D = 4398,
+  LASTP_XPP_H = 4399,
+  LASTP_XPP_S = 4400,
+  LD1B = 4401,
+  LD1B_2Z = 4402,
+  LD1B_2Z_IMM = 4403,
+  LD1B_2Z_STRIDED = 4404,
+  LD1B_2Z_STRIDED_IMM = 4405,
+  LD1B_4Z = 4406,
+  LD1B_4Z_IMM = 4407,
+  LD1B_4Z_STRIDED = 4408,
+  LD1B_4Z_STRIDED_IMM = 4409,
+  LD1B_D = 4410,
+  LD1B_D_IMM = 4411,
+  LD1B_H = 4412,
+  LD1B_H_IMM = 4413,
+  LD1B_IMM = 4414,
+  LD1B_S = 4415,
+  LD1B_S_IMM = 4416,
+  LD1D = 4417,
+  LD1D_2Z = 4418,
+  LD1D_2Z_IMM = 4419,
+  LD1D_2Z_STRIDED = 4420,
+  LD1D_2Z_STRIDED_IMM = 4421,
+  LD1D_4Z = 4422,
+  LD1D_4Z_IMM = 4423,
+  LD1D_4Z_STRIDED = 4424,
+  LD1D_4Z_STRIDED_IMM = 4425,
+  LD1D_IMM = 4426,
+  LD1D_Q = 4427,
+  LD1D_Q_IMM = 4428,
+  LD1Fourv16b = 4429,
+  LD1Fourv16b_POST = 4430,
+  LD1Fourv1d = 4431,
+  LD1Fourv1d_POST = 4432,
+  LD1Fourv2d = 4433,
+  LD1Fourv2d_POST = 4434,
+  LD1Fourv2s = 4435,
+  LD1Fourv2s_POST = 4436,
+  LD1Fourv4h = 4437,
+  LD1Fourv4h_POST = 4438,
+  LD1Fourv4s = 4439,
+  LD1Fourv4s_POST = 4440,
+  LD1Fourv8b = 4441,
+  LD1Fourv8b_POST = 4442,
+  LD1Fourv8h = 4443,
+  LD1Fourv8h_POST = 4444,
+  LD1H = 4445,
+  LD1H_2Z = 4446,
+  LD1H_2Z_IMM = 4447,
+  LD1H_2Z_STRIDED = 4448,
+  LD1H_2Z_STRIDED_IMM = 4449,
+  LD1H_4Z = 4450,
+  LD1H_4Z_IMM = 4451,
+  LD1H_4Z_STRIDED = 4452,
+  LD1H_4Z_STRIDED_IMM = 4453,
+  LD1H_D = 4454,
+  LD1H_D_IMM = 4455,
+  LD1H_IMM = 4456,
+  LD1H_S = 4457,
+  LD1H_S_IMM = 4458,
+  LD1Onev16b = 4459,
+  LD1Onev16b_POST = 4460,
+  LD1Onev1d = 4461,
+  LD1Onev1d_POST = 4462,
+  LD1Onev2d = 4463,
+  LD1Onev2d_POST = 4464,
+  LD1Onev2s = 4465,
+  LD1Onev2s_POST = 4466,
+  LD1Onev4h = 4467,
+  LD1Onev4h_POST = 4468,
+  LD1Onev4s = 4469,
+  LD1Onev4s_POST = 4470,
+  LD1Onev8b = 4471,
+  LD1Onev8b_POST = 4472,
+  LD1Onev8h = 4473,
+  LD1Onev8h_POST = 4474,
+  LD1RB_D_IMM = 4475,
+  LD1RB_H_IMM = 4476,
+  LD1RB_IMM = 4477,
+  LD1RB_S_IMM = 4478,
+  LD1RD_IMM = 4479,
+  LD1RH_D_IMM = 4480,
+  LD1RH_IMM = 4481,
+  LD1RH_S_IMM = 4482,
+  LD1RO_B = 4483,
+  LD1RO_B_IMM = 4484,
+  LD1RO_D = 4485,
+  LD1RO_D_IMM = 4486,
+  LD1RO_H = 4487,
+  LD1RO_H_IMM = 4488,
+  LD1RO_W = 4489,
+  LD1RO_W_IMM = 4490,
+  LD1RQ_B = 4491,
+  LD1RQ_B_IMM = 4492,
+  LD1RQ_D = 4493,
+  LD1RQ_D_IMM = 4494,
+  LD1RQ_H = 4495,
+  LD1RQ_H_IMM = 4496,
+  LD1RQ_W = 4497,
+  LD1RQ_W_IMM = 4498,
+  LD1RSB_D_IMM = 4499,
+  LD1RSB_H_IMM = 4500,
+  LD1RSB_S_IMM = 4501,
+  LD1RSH_D_IMM = 4502,
+  LD1RSH_S_IMM = 4503,
+  LD1RSW_IMM = 4504,
+  LD1RW_D_IMM = 4505,
+  LD1RW_IMM = 4506,
+  LD1Rv16b = 4507,
+  LD1Rv16b_POST = 4508,
+  LD1Rv1d = 4509,
+  LD1Rv1d_POST = 4510,
+  LD1Rv2d = 4511,
+  LD1Rv2d_POST = 4512,
+  LD1Rv2s = 4513,
+  LD1Rv2s_POST = 4514,
+  LD1Rv4h = 4515,
+  LD1Rv4h_POST = 4516,
+  LD1Rv4s = 4517,
+  LD1Rv4s_POST = 4518,
+  LD1Rv8b = 4519,
+  LD1Rv8b_POST = 4520,
+  LD1Rv8h = 4521,
+  LD1Rv8h_POST = 4522,
+  LD1SB_D = 4523,
+  LD1SB_D_IMM = 4524,
+  LD1SB_H = 4525,
+  LD1SB_H_IMM = 4526,
+  LD1SB_S = 4527,
+  LD1SB_S_IMM = 4528,
+  LD1SH_D = 4529,
+  LD1SH_D_IMM = 4530,
+  LD1SH_S = 4531,
+  LD1SH_S_IMM = 4532,
+  LD1SW_D = 4533,
+  LD1SW_D_IMM = 4534,
+  LD1Threev16b = 4535,
+  LD1Threev16b_POST = 4536,
+  LD1Threev1d = 4537,
+  LD1Threev1d_POST = 4538,
+  LD1Threev2d = 4539,
+  LD1Threev2d_POST = 4540,
+  LD1Threev2s = 4541,
+  LD1Threev2s_POST = 4542,
+  LD1Threev4h = 4543,
+  LD1Threev4h_POST = 4544,
+  LD1Threev4s = 4545,
+  LD1Threev4s_POST = 4546,
+  LD1Threev8b = 4547,
+  LD1Threev8b_POST = 4548,
+  LD1Threev8h = 4549,
+  LD1Threev8h_POST = 4550,
+  LD1Twov16b = 4551,
+  LD1Twov16b_POST = 4552,
+  LD1Twov1d = 4553,
+  LD1Twov1d_POST = 4554,
+  LD1Twov2d = 4555,
+  LD1Twov2d_POST = 4556,
+  LD1Twov2s = 4557,
+  LD1Twov2s_POST = 4558,
+  LD1Twov4h = 4559,
+  LD1Twov4h_POST = 4560,
+  LD1Twov4s = 4561,
+  LD1Twov4s_POST = 4562,
+  LD1Twov8b = 4563,
+  LD1Twov8b_POST = 4564,
+  LD1Twov8h = 4565,
+  LD1Twov8h_POST = 4566,
+  LD1W = 4567,
+  LD1W_2Z = 4568,
+  LD1W_2Z_IMM = 4569,
+  LD1W_2Z_STRIDED = 4570,
+  LD1W_2Z_STRIDED_IMM = 4571,
+  LD1W_4Z = 4572,
+  LD1W_4Z_IMM = 4573,
+  LD1W_4Z_STRIDED = 4574,
+  LD1W_4Z_STRIDED_IMM = 4575,
+  LD1W_D = 4576,
+  LD1W_D_IMM = 4577,
+  LD1W_IMM = 4578,
+  LD1W_Q = 4579,
+  LD1W_Q_IMM = 4580,
+  LD1_MXIPXX_H_B = 4581,
+  LD1_MXIPXX_H_D = 4582,
+  LD1_MXIPXX_H_H = 4583,
+  LD1_MXIPXX_H_Q = 4584,
+  LD1_MXIPXX_H_S = 4585,
+  LD1_MXIPXX_V_B = 4586,
+  LD1_MXIPXX_V_D = 4587,
+  LD1_MXIPXX_V_H = 4588,
+  LD1_MXIPXX_V_Q = 4589,
+  LD1_MXIPXX_V_S = 4590,
+  LD1i16 = 4591,
+  LD1i16_POST = 4592,
+  LD1i32 = 4593,
+  LD1i32_POST = 4594,
+  LD1i64 = 4595,
+  LD1i64_POST = 4596,
+  LD1i8 = 4597,
+  LD1i8_POST = 4598,
+  LD2B = 4599,
+  LD2B_IMM = 4600,
+  LD2D = 4601,
+  LD2D_IMM = 4602,
+  LD2H = 4603,
+  LD2H_IMM = 4604,
+  LD2Q = 4605,
+  LD2Q_IMM = 4606,
+  LD2Rv16b = 4607,
+  LD2Rv16b_POST = 4608,
+  LD2Rv1d = 4609,
+  LD2Rv1d_POST = 4610,
+  LD2Rv2d = 4611,
+  LD2Rv2d_POST = 4612,
+  LD2Rv2s = 4613,
+  LD2Rv2s_POST = 4614,
+  LD2Rv4h = 4615,
+  LD2Rv4h_POST = 4616,
+  LD2Rv4s = 4617,
+  LD2Rv4s_POST = 4618,
+  LD2Rv8b = 4619,
+  LD2Rv8b_POST = 4620,
+  LD2Rv8h = 4621,
+  LD2Rv8h_POST = 4622,
+  LD2Twov16b = 4623,
+  LD2Twov16b_POST = 4624,
+  LD2Twov2d = 4625,
+  LD2Twov2d_POST = 4626,
+  LD2Twov2s = 4627,
+  LD2Twov2s_POST = 4628,
+  LD2Twov4h = 4629,
+  LD2Twov4h_POST = 4630,
+  LD2Twov4s = 4631,
+  LD2Twov4s_POST = 4632,
+  LD2Twov8b = 4633,
+  LD2Twov8b_POST = 4634,
+  LD2Twov8h = 4635,
+  LD2Twov8h_POST = 4636,
+  LD2W = 4637,
+  LD2W_IMM = 4638,
+  LD2i16 = 4639,
+  LD2i16_POST = 4640,
+  LD2i32 = 4641,
+  LD2i32_POST = 4642,
+  LD2i64 = 4643,
+  LD2i64_POST = 4644,
+  LD2i8 = 4645,
+  LD2i8_POST = 4646,
+  LD3B = 4647,
+  LD3B_IMM = 4648,
+  LD3D = 4649,
+  LD3D_IMM = 4650,
+  LD3H = 4651,
+  LD3H_IMM = 4652,
+  LD3Q = 4653,
+  LD3Q_IMM = 4654,
+  LD3Rv16b = 4655,
+  LD3Rv16b_POST = 4656,
+  LD3Rv1d = 4657,
+  LD3Rv1d_POST = 4658,
+  LD3Rv2d = 4659,
+  LD3Rv2d_POST = 4660,
+  LD3Rv2s = 4661,
+  LD3Rv2s_POST = 4662,
+  LD3Rv4h = 4663,
+  LD3Rv4h_POST = 4664,
+  LD3Rv4s = 4665,
+  LD3Rv4s_POST = 4666,
+  LD3Rv8b = 4667,
+  LD3Rv8b_POST = 4668,
+  LD3Rv8h = 4669,
+  LD3Rv8h_POST = 4670,
+  LD3Threev16b = 4671,
+  LD3Threev16b_POST = 4672,
+  LD3Threev2d = 4673,
+  LD3Threev2d_POST = 4674,
+  LD3Threev2s = 4675,
+  LD3Threev2s_POST = 4676,
+  LD3Threev4h = 4677,
+  LD3Threev4h_POST = 4678,
+  LD3Threev4s = 4679,
+  LD3Threev4s_POST = 4680,
+  LD3Threev8b = 4681,
+  LD3Threev8b_POST = 4682,
+  LD3Threev8h = 4683,
+  LD3Threev8h_POST = 4684,
+  LD3W = 4685,
+  LD3W_IMM = 4686,
+  LD3i16 = 4687,
+  LD3i16_POST = 4688,
+  LD3i32 = 4689,
+  LD3i32_POST = 4690,
+  LD3i64 = 4691,
+  LD3i64_POST = 4692,
+  LD3i8 = 4693,
+  LD3i8_POST = 4694,
+  LD4B = 4695,
+  LD4B_IMM = 4696,
+  LD4D = 4697,
+  LD4D_IMM = 4698,
+  LD4Fourv16b = 4699,
+  LD4Fourv16b_POST = 4700,
+  LD4Fourv2d = 4701,
+  LD4Fourv2d_POST = 4702,
+  LD4Fourv2s = 4703,
+  LD4Fourv2s_POST = 4704,
+  LD4Fourv4h = 4705,
+  LD4Fourv4h_POST = 4706,
+  LD4Fourv4s = 4707,
+  LD4Fourv4s_POST = 4708,
+  LD4Fourv8b = 4709,
+  LD4Fourv8b_POST = 4710,
+  LD4Fourv8h = 4711,
+  LD4Fourv8h_POST = 4712,
+  LD4H = 4713,
+  LD4H_IMM = 4714,
+  LD4Q = 4715,
+  LD4Q_IMM = 4716,
+  LD4Rv16b = 4717,
+  LD4Rv16b_POST = 4718,
+  LD4Rv1d = 4719,
+  LD4Rv1d_POST = 4720,
+  LD4Rv2d = 4721,
+  LD4Rv2d_POST = 4722,
+  LD4Rv2s = 4723,
+  LD4Rv2s_POST = 4724,
+  LD4Rv4h = 4725,
+  LD4Rv4h_POST = 4726,
+  LD4Rv4s = 4727,
+  LD4Rv4s_POST = 4728,
+  LD4Rv8b = 4729,
+  LD4Rv8b_POST = 4730,
+  LD4Rv8h = 4731,
+  LD4Rv8h_POST = 4732,
+  LD4W = 4733,
+  LD4W_IMM = 4734,
+  LD4i16 = 4735,
+  LD4i16_POST = 4736,
+  LD4i32 = 4737,
+  LD4i32_POST = 4738,
+  LD4i64 = 4739,
+  LD4i64_POST = 4740,
+  LD4i8 = 4741,
+  LD4i8_POST = 4742,
+  LD64B = 4743,
+  LDADDAB = 4744,
+  LDADDAH = 4745,
+  LDADDALB = 4746,
+  LDADDALH = 4747,
+  LDADDALW = 4748,
+  LDADDALX = 4749,
+  LDADDAW = 4750,
+  LDADDAX = 4751,
+  LDADDB = 4752,
+  LDADDH = 4753,
+  LDADDLB = 4754,
+  LDADDLH = 4755,
+  LDADDLW = 4756,
+  LDADDLX = 4757,
+  LDADDW = 4758,
+  LDADDX = 4759,
+  LDAP1 = 4760,
+  LDAPPi = 4761,
+  LDAPRB = 4762,
+  LDAPRH = 4763,
+  LDAPRW = 4764,
+  LDAPRWpost = 4765,
+  LDAPRX = 4766,
+  LDAPRXpost = 4767,
+  LDAPURBi = 4768,
+  LDAPURHi = 4769,
+  LDAPURSBWi = 4770,
+  LDAPURSBXi = 4771,
+  LDAPURSHWi = 4772,
+  LDAPURSHXi = 4773,
+  LDAPURSWi = 4774,
+  LDAPURXi = 4775,
+  LDAPURbi = 4776,
+  LDAPURdi = 4777,
+  LDAPURhi = 4778,
+  LDAPURi = 4779,
+  LDAPURqi = 4780,
+  LDAPURsi = 4781,
+  LDAPi = 4782,
+  LDARB = 4783,
+  LDARH = 4784,
+  LDARW = 4785,
+  LDARX = 4786,
+  LDATXRW = 4787,
+  LDATXRX = 4788,
+  LDAXPW = 4789,
+  LDAXPX = 4790,
+  LDAXRB = 4791,
+  LDAXRH = 4792,
+  LDAXRW = 4793,
+  LDAXRX = 4794,
+  LDBFADD = 4795,
+  LDBFADDA = 4796,
+  LDBFADDAL = 4797,
+  LDBFADDL = 4798,
+  LDBFMAX = 4799,
+  LDBFMAXA = 4800,
+  LDBFMAXAL = 4801,
+  LDBFMAXL = 4802,
+  LDBFMAXNM = 4803,
+  LDBFMAXNMA = 4804,
+  LDBFMAXNMAL = 4805,
+  LDBFMAXNML = 4806,
+  LDBFMIN = 4807,
+  LDBFMINA = 4808,
+  LDBFMINAL = 4809,
+  LDBFMINL = 4810,
+  LDBFMINNM = 4811,
+  LDBFMINNMA = 4812,
+  LDBFMINNMAL = 4813,
+  LDBFMINNML = 4814,
+  LDCLRAB = 4815,
+  LDCLRAH = 4816,
+  LDCLRALB = 4817,
+  LDCLRALH = 4818,
+  LDCLRALW = 4819,
+  LDCLRALX = 4820,
+  LDCLRAW = 4821,
+  LDCLRAX = 4822,
+  LDCLRB = 4823,
+  LDCLRH = 4824,
+  LDCLRLB = 4825,
+  LDCLRLH = 4826,
+  LDCLRLW = 4827,
+  LDCLRLX = 4828,
+  LDCLRP = 4829,
+  LDCLRPA = 4830,
+  LDCLRPAL = 4831,
+  LDCLRPL = 4832,
+  LDCLRW = 4833,
+  LDCLRX = 4834,
+  LDEORAB = 4835,
+  LDEORAH = 4836,
+  LDEORALB = 4837,
+  LDEORALH = 4838,
+  LDEORALW = 4839,
+  LDEORALX = 4840,
+  LDEORAW = 4841,
+  LDEORAX = 4842,
+  LDEORB = 4843,
+  LDEORH = 4844,
+  LDEORLB = 4845,
+  LDEORLH = 4846,
+  LDEORLW = 4847,
+  LDEORLX = 4848,
+  LDEORW = 4849,
+  LDEORX = 4850,
+  LDFADDAD = 4851,
+  LDFADDAH = 4852,
+  LDFADDALD = 4853,
+  LDFADDALH = 4854,
+  LDFADDALS = 4855,
+  LDFADDAS = 4856,
+  LDFADDD = 4857,
+  LDFADDH = 4858,
+  LDFADDLD = 4859,
+  LDFADDLH = 4860,
+  LDFADDLS = 4861,
+  LDFADDS = 4862,
+  LDFF1B = 4863,
+  LDFF1B_D = 4864,
+  LDFF1B_H = 4865,
+  LDFF1B_S = 4866,
+  LDFF1D = 4867,
+  LDFF1H = 4868,
+  LDFF1H_D = 4869,
+  LDFF1H_S = 4870,
+  LDFF1SB_D = 4871,
+  LDFF1SB_H = 4872,
+  LDFF1SB_S = 4873,
+  LDFF1SH_D = 4874,
+  LDFF1SH_S = 4875,
+  LDFF1SW_D = 4876,
+  LDFF1W = 4877,
+  LDFF1W_D = 4878,
+  LDFMAXAD = 4879,
+  LDFMAXAH = 4880,
+  LDFMAXALD = 4881,
+  LDFMAXALH = 4882,
+  LDFMAXALS = 4883,
+  LDFMAXAS = 4884,
+  LDFMAXD = 4885,
+  LDFMAXH = 4886,
+  LDFMAXLD = 4887,
+  LDFMAXLH = 4888,
+  LDFMAXLS = 4889,
+  LDFMAXNMAD = 4890,
+  LDFMAXNMAH = 4891,
+  LDFMAXNMALD = 4892,
+  LDFMAXNMALH = 4893,
+  LDFMAXNMALS = 4894,
+  LDFMAXNMAS = 4895,
+  LDFMAXNMD = 4896,
+  LDFMAXNMH = 4897,
+  LDFMAXNMLD = 4898,
+  LDFMAXNMLH = 4899,
+  LDFMAXNMLS = 4900,
+  LDFMAXNMS = 4901,
+  LDFMAXS = 4902,
+  LDFMINAD = 4903,
+  LDFMINAH = 4904,
+  LDFMINALD = 4905,
+  LDFMINALH = 4906,
+  LDFMINALS = 4907,
+  LDFMINAS = 4908,
+  LDFMIND = 4909,
+  LDFMINH = 4910,
+  LDFMINLD = 4911,
+  LDFMINLH = 4912,
+  LDFMINLS = 4913,
+  LDFMINNMAD = 4914,
+  LDFMINNMAH = 4915,
+  LDFMINNMALD = 4916,
+  LDFMINNMALH = 4917,
+  LDFMINNMALS = 4918,
+  LDFMINNMAS = 4919,
+  LDFMINNMD = 4920,
+  LDFMINNMH = 4921,
+  LDFMINNMLD = 4922,
+  LDFMINNMLH = 4923,
+  LDFMINNMLS = 4924,
+  LDFMINNMS = 4925,
+  LDFMINS = 4926,
+  LDG = 4927,
+  LDGM = 4928,
+  LDIAPPW = 4929,
+  LDIAPPWpost = 4930,
+  LDIAPPX = 4931,
+  LDIAPPXpost = 4932,
+  LDLARB = 4933,
+  LDLARH = 4934,
+  LDLARW = 4935,
+  LDLARX = 4936,
+  LDNF1B_D_IMM = 4937,
+  LDNF1B_H_IMM = 4938,
+  LDNF1B_IMM = 4939,
+  LDNF1B_S_IMM = 4940,
+  LDNF1D_IMM = 4941,
+  LDNF1H_D_IMM = 4942,
+  LDNF1H_IMM = 4943,
+  LDNF1H_S_IMM = 4944,
+  LDNF1SB_D_IMM = 4945,
+  LDNF1SB_H_IMM = 4946,
+  LDNF1SB_S_IMM = 4947,
+  LDNF1SH_D_IMM = 4948,
+  LDNF1SH_S_IMM = 4949,
+  LDNF1SW_D_IMM = 4950,
+  LDNF1W_D_IMM = 4951,
+  LDNF1W_IMM = 4952,
+  LDNPDi = 4953,
+  LDNPQi = 4954,
+  LDNPSi = 4955,
+  LDNPWi = 4956,
+  LDNPXi = 4957,
+  LDNT1B_2Z = 4958,
+  LDNT1B_2Z_IMM = 4959,
+  LDNT1B_2Z_STRIDED = 4960,
+  LDNT1B_2Z_STRIDED_IMM = 4961,
+  LDNT1B_4Z = 4962,
+  LDNT1B_4Z_IMM = 4963,
+  LDNT1B_4Z_STRIDED = 4964,
+  LDNT1B_4Z_STRIDED_IMM = 4965,
+  LDNT1B_ZRI = 4966,
+  LDNT1B_ZRR = 4967,
+  LDNT1B_ZZR_D = 4968,
+  LDNT1B_ZZR_S = 4969,
+  LDNT1D_2Z = 4970,
+  LDNT1D_2Z_IMM = 4971,
+  LDNT1D_2Z_STRIDED = 4972,
+  LDNT1D_2Z_STRIDED_IMM = 4973,
+  LDNT1D_4Z = 4974,
+  LDNT1D_4Z_IMM = 4975,
+  LDNT1D_4Z_STRIDED = 4976,
+  LDNT1D_4Z_STRIDED_IMM = 4977,
+  LDNT1D_ZRI = 4978,
+  LDNT1D_ZRR = 4979,
+  LDNT1D_ZZR_D = 4980,
+  LDNT1H_2Z = 4981,
+  LDNT1H_2Z_IMM = 4982,
+  LDNT1H_2Z_STRIDED = 4983,
+  LDNT1H_2Z_STRIDED_IMM = 4984,
+  LDNT1H_4Z = 4985,
+  LDNT1H_4Z_IMM = 4986,
+  LDNT1H_4Z_STRIDED = 4987,
+  LDNT1H_4Z_STRIDED_IMM = 4988,
+  LDNT1H_ZRI = 4989,
+  LDNT1H_ZRR = 4990,
+  LDNT1H_ZZR_D = 4991,
+  LDNT1H_ZZR_S = 4992,
+  LDNT1SB_ZZR_D = 4993,
+  LDNT1SB_ZZR_S = 4994,
+  LDNT1SH_ZZR_D = 4995,
+  LDNT1SH_ZZR_S = 4996,
+  LDNT1SW_ZZR_D = 4997,
+  LDNT1W_2Z = 4998,
+  LDNT1W_2Z_IMM = 4999,
+  LDNT1W_2Z_STRIDED = 5000,
+  LDNT1W_2Z_STRIDED_IMM = 5001,
+  LDNT1W_4Z = 5002,
+  LDNT1W_4Z_IMM = 5003,
+  LDNT1W_4Z_STRIDED = 5004,
+  LDNT1W_4Z_STRIDED_IMM = 5005,
+  LDNT1W_ZRI = 5006,
+  LDNT1W_ZRR = 5007,
+  LDNT1W_ZZR_D = 5008,
+  LDNT1W_ZZR_S = 5009,
+  LDPDi = 5010,
+  LDPDpost = 5011,
+  LDPDpre = 5012,
+  LDPQi = 5013,
+  LDPQpost = 5014,
+  LDPQpre = 5015,
+  LDPSWi = 5016,
+  LDPSWpost = 5017,
+  LDPSWpre = 5018,
+  LDPSi = 5019,
+  LDPSpost = 5020,
+  LDPSpre = 5021,
+  LDPWi = 5022,
+  LDPWpost = 5023,
+  LDPWpre = 5024,
+  LDPXi = 5025,
+  LDPXpost = 5026,
+  LDPXpre = 5027,
+  LDRAAindexed = 5028,
+  LDRAAwriteback = 5029,
+  LDRABindexed = 5030,
+  LDRABwriteback = 5031,
+  LDRBBpost = 5032,
+  LDRBBpre = 5033,
+  LDRBBroW = 5034,
+  LDRBBroX = 5035,
+  LDRBBui = 5036,
+  LDRBpost = 5037,
+  LDRBpre = 5038,
+  LDRBroW = 5039,
+  LDRBroX = 5040,
+  LDRBui = 5041,
+  LDRDl = 5042,
+  LDRDpost = 5043,
+  LDRDpre = 5044,
+  LDRDroW = 5045,
+  LDRDroX = 5046,
+  LDRDui = 5047,
+  LDRHHpost = 5048,
+  LDRHHpre = 5049,
+  LDRHHroW = 5050,
+  LDRHHroX = 5051,
+  LDRHHui = 5052,
+  LDRHpost = 5053,
+  LDRHpre = 5054,
+  LDRHroW = 5055,
+  LDRHroX = 5056,
+  LDRHui = 5057,
+  LDRQl = 5058,
+  LDRQpost = 5059,
+  LDRQpre = 5060,
+  LDRQroW = 5061,
+  LDRQroX = 5062,
+  LDRQui = 5063,
+  LDRSBWpost = 5064,
+  LDRSBWpre = 5065,
+  LDRSBWroW = 5066,
+  LDRSBWroX = 5067,
+  LDRSBWui = 5068,
+  LDRSBXpost = 5069,
+  LDRSBXpre = 5070,
+  LDRSBXroW = 5071,
+  LDRSBXroX = 5072,
+  LDRSBXui = 5073,
+  LDRSHWpost = 5074,
+  LDRSHWpre = 5075,
+  LDRSHWroW = 5076,
+  LDRSHWroX = 5077,
+  LDRSHWui = 5078,
+  LDRSHXpost = 5079,
+  LDRSHXpre = 5080,
+  LDRSHXroW = 5081,
+  LDRSHXroX = 5082,
+  LDRSHXui = 5083,
+  LDRSWl = 5084,
+  LDRSWpost = 5085,
+  LDRSWpre = 5086,
+  LDRSWroW = 5087,
+  LDRSWroX = 5088,
+  LDRSWui = 5089,
+  LDRSl = 5090,
+  LDRSpost = 5091,
+  LDRSpre = 5092,
+  LDRSroW = 5093,
+  LDRSroX = 5094,
+  LDRSui = 5095,
+  LDRWl = 5096,
+  LDRWpost = 5097,
+  LDRWpre = 5098,
+  LDRWroW = 5099,
+  LDRWroX = 5100,
+  LDRWui = 5101,
+  LDRXl = 5102,
+  LDRXpost = 5103,
+  LDRXpre = 5104,
+  LDRXroW = 5105,
+  LDRXroX = 5106,
+  LDRXui = 5107,
+  LDR_PXI = 5108,
+  LDR_TX = 5109,
+  LDR_ZA = 5110,
+  LDR_ZXI = 5111,
+  LDSETAB = 5112,
+  LDSETAH = 5113,
+  LDSETALB = 5114,
+  LDSETALH = 5115,
+  LDSETALW = 5116,
+  LDSETALX = 5117,
+  LDSETAW = 5118,
+  LDSETAX = 5119,
+  LDSETB = 5120,
+  LDSETH = 5121,
+  LDSETLB = 5122,
+  LDSETLH = 5123,
+  LDSETLW = 5124,
+  LDSETLX = 5125,
+  LDSETP = 5126,
+  LDSETPA = 5127,
+  LDSETPAL = 5128,
+  LDSETPL = 5129,
+  LDSETW = 5130,
+  LDSETX = 5131,
+  LDSMAXAB = 5132,
+  LDSMAXAH = 5133,
+  LDSMAXALB = 5134,
+  LDSMAXALH = 5135,
+  LDSMAXALW = 5136,
+  LDSMAXALX = 5137,
+  LDSMAXAW = 5138,
+  LDSMAXAX = 5139,
+  LDSMAXB = 5140,
+  LDSMAXH = 5141,
+  LDSMAXLB = 5142,
+  LDSMAXLH = 5143,
+  LDSMAXLW = 5144,
+  LDSMAXLX = 5145,
+  LDSMAXW = 5146,
+  LDSMAXX = 5147,
+  LDSMINAB = 5148,
+  LDSMINAH = 5149,
+  LDSMINALB = 5150,
+  LDSMINALH = 5151,
+  LDSMINALW = 5152,
+  LDSMINALX = 5153,
+  LDSMINAW = 5154,
+  LDSMINAX = 5155,
+  LDSMINB = 5156,
+  LDSMINH = 5157,
+  LDSMINLB = 5158,
+  LDSMINLH = 5159,
+  LDSMINLW = 5160,
+  LDSMINLX = 5161,
+  LDSMINW = 5162,
+  LDSMINX = 5163,
+  LDTADDALW = 5164,
+  LDTADDALX = 5165,
+  LDTADDAW = 5166,
+  LDTADDAX = 5167,
+  LDTADDLW = 5168,
+  LDTADDLX = 5169,
+  LDTADDW = 5170,
+  LDTADDX = 5171,
+  LDTCLRALW = 5172,
+  LDTCLRALX = 5173,
+  LDTCLRAW = 5174,
+  LDTCLRAX = 5175,
+  LDTCLRLW = 5176,
+  LDTCLRLX = 5177,
+  LDTCLRW = 5178,
+  LDTCLRX = 5179,
+  LDTNPQi = 5180,
+  LDTNPXi = 5181,
+  LDTPQi = 5182,
+  LDTPQpost = 5183,
+  LDTPQpre = 5184,
+  LDTPi = 5185,
+  LDTPpost = 5186,
+  LDTPpre = 5187,
+  LDTRBi = 5188,
+  LDTRHi = 5189,
+  LDTRSBWi = 5190,
+  LDTRSBXi = 5191,
+  LDTRSHWi = 5192,
+  LDTRSHXi = 5193,
+  LDTRSWi = 5194,
+  LDTRWi = 5195,
+  LDTRXi = 5196,
+  LDTSETALW = 5197,
+  LDTSETALX = 5198,
+  LDTSETAW = 5199,
+  LDTSETAX = 5200,
+  LDTSETLW = 5201,
+  LDTSETLX = 5202,
+  LDTSETW = 5203,
+  LDTSETX = 5204,
+  LDTXRWr = 5205,
+  LDTXRXr = 5206,
+  LDUMAXAB = 5207,
+  LDUMAXAH = 5208,
+  LDUMAXALB = 5209,
+  LDUMAXALH = 5210,
+  LDUMAXALW = 5211,
+  LDUMAXALX = 5212,
+  LDUMAXAW = 5213,
+  LDUMAXAX = 5214,
+  LDUMAXB = 5215,
+  LDUMAXH = 5216,
+  LDUMAXLB = 5217,
+  LDUMAXLH = 5218,
+  LDUMAXLW = 5219,
+  LDUMAXLX = 5220,
+  LDUMAXW = 5221,
+  LDUMAXX = 5222,
+  LDUMINAB = 5223,
+  LDUMINAH = 5224,
+  LDUMINALB = 5225,
+  LDUMINALH = 5226,
+  LDUMINALW = 5227,
+  LDUMINALX = 5228,
+  LDUMINAW = 5229,
+  LDUMINAX = 5230,
+  LDUMINB = 5231,
+  LDUMINH = 5232,
+  LDUMINLB = 5233,
+  LDUMINLH = 5234,
+  LDUMINLW = 5235,
+  LDUMINLX = 5236,
+  LDUMINW = 5237,
+  LDUMINX = 5238,
+  LDURBBi = 5239,
+  LDURBi = 5240,
+  LDURDi = 5241,
+  LDURHHi = 5242,
+  LDURHi = 5243,
+  LDURQi = 5244,
+  LDURSBWi = 5245,
+  LDURSBXi = 5246,
+  LDURSHWi = 5247,
+  LDURSHXi = 5248,
+  LDURSWi = 5249,
+  LDURSi = 5250,
+  LDURWi = 5251,
+  LDURXi = 5252,
+  LDXPW = 5253,
+  LDXPX = 5254,
+  LDXRB = 5255,
+  LDXRH = 5256,
+  LDXRW = 5257,
+  LDXRX = 5258,
+  LSLR_ZPmZ_B = 5259,
+  LSLR_ZPmZ_D = 5260,
+  LSLR_ZPmZ_H = 5261,
+  LSLR_ZPmZ_S = 5262,
+  LSLVWr = 5263,
+  LSLVXr = 5264,
+  LSL_WIDE_ZPmZ_B = 5265,
+  LSL_WIDE_ZPmZ_H = 5266,
+  LSL_WIDE_ZPmZ_S = 5267,
+  LSL_WIDE_ZZZ_B = 5268,
+  LSL_WIDE_ZZZ_H = 5269,
+  LSL_WIDE_ZZZ_S = 5270,
+  LSL_ZPmI_B = 5271,
+  LSL_ZPmI_D = 5272,
+  LSL_ZPmI_H = 5273,
+  LSL_ZPmI_S = 5274,
+  LSL_ZPmZ_B = 5275,
+  LSL_ZPmZ_D = 5276,
+  LSL_ZPmZ_H = 5277,
+  LSL_ZPmZ_S = 5278,
+  LSL_ZZI_B = 5279,
+  LSL_ZZI_D = 5280,
+  LSL_ZZI_H = 5281,
+  LSL_ZZI_S = 5282,
+  LSRR_ZPmZ_B = 5283,
+  LSRR_ZPmZ_D = 5284,
+  LSRR_ZPmZ_H = 5285,
+  LSRR_ZPmZ_S = 5286,
+  LSRVWr = 5287,
+  LSRVXr = 5288,
+  LSR_WIDE_ZPmZ_B = 5289,
+  LSR_WIDE_ZPmZ_H = 5290,
+  LSR_WIDE_ZPmZ_S = 5291,
+  LSR_WIDE_ZZZ_B = 5292,
+  LSR_WIDE_ZZZ_H = 5293,
+  LSR_WIDE_ZZZ_S = 5294,
+  LSR_ZPmI_B = 5295,
+  LSR_ZPmI_D = 5296,
+  LSR_ZPmI_H = 5297,
+  LSR_ZPmI_S = 5298,
+  LSR_ZPmZ_B = 5299,
+  LSR_ZPmZ_D = 5300,
+  LSR_ZPmZ_H = 5301,
+  LSR_ZPmZ_S = 5302,
+  LSR_ZZI_B = 5303,
+  LSR_ZZI_D = 5304,
+  LSR_ZZI_H = 5305,
+  LSR_ZZI_S = 5306,
+  LUT2_B = 5307,
+  LUT2_H = 5308,
+  LUT4_B = 5309,
+  LUT4_H = 5310,
+  LUTI2_2ZTZI_B = 5311,
+  LUTI2_2ZTZI_H = 5312,
+  LUTI2_2ZTZI_S = 5313,
+  LUTI2_4ZTZI_B = 5314,
+  LUTI2_4ZTZI_H = 5315,
+  LUTI2_4ZTZI_S = 5316,
+  LUTI2_S_2ZTZI_B = 5317,
+  LUTI2_S_2ZTZI_H = 5318,
+  LUTI2_S_4ZTZI_B = 5319,
+  LUTI2_S_4ZTZI_H = 5320,
+  LUTI2_ZTZI_B = 5321,
+  LUTI2_ZTZI_H = 5322,
+  LUTI2_ZTZI_S = 5323,
+  LUTI2_ZZZI_B = 5324,
+  LUTI2_ZZZI_H = 5325,
+  LUTI4_2ZTZI_B = 5326,
+  LUTI4_2ZTZI_H = 5327,
+  LUTI4_2ZTZI_S = 5328,
+  LUTI4_4ZTZI_H = 5329,
+  LUTI4_4ZTZI_S = 5330,
+  LUTI4_4ZZT2Z = 5331,
+  LUTI4_S_2ZTZI_B = 5332,
+  LUTI4_S_2ZTZI_H = 5333,
+  LUTI4_S_4ZTZI_H = 5334,
+  LUTI4_S_4ZZT2Z = 5335,
+  LUTI4_Z2ZZI = 5336,
+  LUTI4_ZTZI_B = 5337,
+  LUTI4_ZTZI_H = 5338,
+  LUTI4_ZTZI_S = 5339,
+  LUTI4_ZZZI_B = 5340,
+  LUTI4_ZZZI_H = 5341,
+  LUTI6_4Z2Z2ZI = 5342,
+  LUTI6_4ZT3Z = 5343,
+  LUTI6_S_4Z2Z2ZI = 5344,
+  LUTI6_S_4ZT3Z = 5345,
+  LUTI6_Z2ZZ = 5346,
+  LUTI6_Z2ZZI_H = 5347,
+  LUTI6_ZTZ = 5348,
+  MADDPT = 5349,
+  MADDWrrr = 5350,
+  MADDXrrr = 5351,
+  MAD_CPA = 5352,
+  MAD_ZPmZZ_B = 5353,
+  MAD_ZPmZZ_D = 5354,
+  MAD_ZPmZZ_H = 5355,
+  MAD_ZPmZZ_S = 5356,
+  MATCH_PPzZZ_B = 5357,
+  MATCH_PPzZZ_H = 5358,
+  MLA_CPA = 5359,
+  MLA_ZPmZZ_B = 5360,
+  MLA_ZPmZZ_D = 5361,
+  MLA_ZPmZZ_H = 5362,
+  MLA_ZPmZZ_S = 5363,
+  MLA_ZZZI_D = 5364,
+  MLA_ZZZI_H = 5365,
+  MLA_ZZZI_S = 5366,
+  MLAv16i8 = 5367,
+  MLAv2i32 = 5368,
+  MLAv2i32_indexed = 5369,
+  MLAv4i16 = 5370,
+  MLAv4i16_indexed = 5371,
+  MLAv4i32 = 5372,
+  MLAv4i32_indexed = 5373,
+  MLAv8i16 = 5374,
+  MLAv8i16_indexed = 5375,
+  MLAv8i8 = 5376,
+  MLS_ZPmZZ_B = 5377,
+  MLS_ZPmZZ_D = 5378,
+  MLS_ZPmZZ_H = 5379,
+  MLS_ZPmZZ_S = 5380,
+  MLS_ZZZI_D = 5381,
+  MLS_ZZZI_H = 5382,
+  MLS_ZZZI_S = 5383,
+  MLSv16i8 = 5384,
+  MLSv2i32 = 5385,
+  MLSv2i32_indexed = 5386,
+  MLSv4i16 = 5387,
+  MLSv4i16_indexed = 5388,
+  MLSv4i32 = 5389,
+  MLSv4i32_indexed = 5390,
+  MLSv8i16 = 5391,
+  MLSv8i16_indexed = 5392,
+  MLSv8i8 = 5393,
+  MOPSSETGE = 5394,
+  MOPSSETGEN = 5395,
+  MOPSSETGET = 5396,
+  MOPSSETGETN = 5397,
+  MOVAZ_2ZMI_H_B = 5398,
+  MOVAZ_2ZMI_H_D = 5399,
+  MOVAZ_2ZMI_H_H = 5400,
+  MOVAZ_2ZMI_H_S = 5401,
+  MOVAZ_2ZMI_V_B = 5402,
+  MOVAZ_2ZMI_V_D = 5403,
+  MOVAZ_2ZMI_V_H = 5404,
+  MOVAZ_2ZMI_V_S = 5405,
+  MOVAZ_4ZMI_H_B = 5406,
+  MOVAZ_4ZMI_H_D = 5407,
+  MOVAZ_4ZMI_H_H = 5408,
+  MOVAZ_4ZMI_H_S = 5409,
+  MOVAZ_4ZMI_V_B = 5410,
+  MOVAZ_4ZMI_V_D = 5411,
+  MOVAZ_4ZMI_V_H = 5412,
+  MOVAZ_4ZMI_V_S = 5413,
+  MOVAZ_VG2_2ZMXI = 5414,
+  MOVAZ_VG4_4ZMXI = 5415,
+  MOVAZ_ZMI_H_B = 5416,
+  MOVAZ_ZMI_H_D = 5417,
+  MOVAZ_ZMI_H_H = 5418,
+  MOVAZ_ZMI_H_Q = 5419,
+  MOVAZ_ZMI_H_S = 5420,
+  MOVAZ_ZMI_V_B = 5421,
+  MOVAZ_ZMI_V_D = 5422,
+  MOVAZ_ZMI_V_H = 5423,
+  MOVAZ_ZMI_V_Q = 5424,
+  MOVAZ_ZMI_V_S = 5425,
+  MOVA_2ZMXI_H_B = 5426,
+  MOVA_2ZMXI_H_D = 5427,
+  MOVA_2ZMXI_H_H = 5428,
+  MOVA_2ZMXI_H_S = 5429,
+  MOVA_2ZMXI_V_B = 5430,
+  MOVA_2ZMXI_V_D = 5431,
+  MOVA_2ZMXI_V_H = 5432,
+  MOVA_2ZMXI_V_S = 5433,
+  MOVA_4ZMXI_H_B = 5434,
+  MOVA_4ZMXI_H_D = 5435,
+  MOVA_4ZMXI_H_H = 5436,
+  MOVA_4ZMXI_H_S = 5437,
+  MOVA_4ZMXI_V_B = 5438,
+  MOVA_4ZMXI_V_D = 5439,
+  MOVA_4ZMXI_V_H = 5440,
+  MOVA_4ZMXI_V_S = 5441,
+  MOVA_MXI2Z_H_B = 5442,
+  MOVA_MXI2Z_H_D = 5443,
+  MOVA_MXI2Z_H_H = 5444,
+  MOVA_MXI2Z_H_S = 5445,
+  MOVA_MXI2Z_V_B = 5446,
+  MOVA_MXI2Z_V_D = 5447,
+  MOVA_MXI2Z_V_H = 5448,
+  MOVA_MXI2Z_V_S = 5449,
+  MOVA_MXI4Z_H_B = 5450,
+  MOVA_MXI4Z_H_D = 5451,
+  MOVA_MXI4Z_H_H = 5452,
+  MOVA_MXI4Z_H_S = 5453,
+  MOVA_MXI4Z_V_B = 5454,
+  MOVA_MXI4Z_V_D = 5455,
+  MOVA_MXI4Z_V_H = 5456,
+  MOVA_MXI4Z_V_S = 5457,
+  MOVA_VG2_2ZMXI = 5458,
+  MOVA_VG2_MXI2Z = 5459,
+  MOVA_VG4_4ZMXI = 5460,
+  MOVA_VG4_MXI4Z = 5461,
+  MOVID = 5462,
+  MOVIv16b_ns = 5463,
+  MOVIv2d_ns = 5464,
+  MOVIv2i32 = 5465,
+  MOVIv2s_msl = 5466,
+  MOVIv4i16 = 5467,
+  MOVIv4i32 = 5468,
+  MOVIv4s_msl = 5469,
+  MOVIv8b_ns = 5470,
+  MOVIv8i16 = 5471,
+  MOVKWi = 5472,
+  MOVKXi = 5473,
+  MOVNWi = 5474,
+  MOVNXi = 5475,
+  MOVPRFX_ZPmZ_B = 5476,
+  MOVPRFX_ZPmZ_D = 5477,
+  MOVPRFX_ZPmZ_H = 5478,
+  MOVPRFX_ZPmZ_S = 5479,
+  MOVPRFX_ZPzZ_B = 5480,
+  MOVPRFX_ZPzZ_D = 5481,
+  MOVPRFX_ZPzZ_H = 5482,
+  MOVPRFX_ZPzZ_S = 5483,
+  MOVPRFX_ZZ = 5484,
+  MOVT_TIX = 5485,
+  MOVT_TIZ = 5486,
+  MOVT_XTI = 5487,
+  MOVZWi = 5488,
+  MOVZXi = 5489,
+  MRRS = 5490,
+  MRS = 5491,
+  MSB_ZPmZZ_B = 5492,
+  MSB_ZPmZZ_D = 5493,
+  MSB_ZPmZZ_H = 5494,
+  MSB_ZPmZZ_S = 5495,
+  MSR = 5496,
+  MSRR = 5497,
+  MSRpstateImm1 = 5498,
+  MSRpstateImm4 = 5499,
+  MSRpstatesvcrImm1 = 5500,
+  MSUBPT = 5501,
+  MSUBWrrr = 5502,
+  MSUBXrrr = 5503,
+  MUL_ZI_B = 5504,
+  MUL_ZI_D = 5505,
+  MUL_ZI_H = 5506,
+  MUL_ZI_S = 5507,
+  MUL_ZPmZ_B = 5508,
+  MUL_ZPmZ_D = 5509,
+  MUL_ZPmZ_H = 5510,
+  MUL_ZPmZ_S = 5511,
+  MUL_ZZZI_D = 5512,
+  MUL_ZZZI_H = 5513,
+  MUL_ZZZI_S = 5514,
+  MUL_ZZZ_B = 5515,
+  MUL_ZZZ_D = 5516,
+  MUL_ZZZ_H = 5517,
+  MUL_ZZZ_S = 5518,
+  MULv16i8 = 5519,
+  MULv2i32 = 5520,
+  MULv2i32_indexed = 5521,
+  MULv4i16 = 5522,
+  MULv4i16_indexed = 5523,
+  MULv4i32 = 5524,
+  MULv4i32_indexed = 5525,
+  MULv8i16 = 5526,
+  MULv8i16_indexed = 5527,
+  MULv8i8 = 5528,
+  MVNIv2i32 = 5529,
+  MVNIv2s_msl = 5530,
+  MVNIv4i16 = 5531,
+  MVNIv4i32 = 5532,
+  MVNIv4s_msl = 5533,
+  MVNIv8i16 = 5534,
+  NANDS_PPzPP = 5535,
+  NAND_PPzPP = 5536,
+  NBSL_ZZZZ = 5537,
+  NEG_ZPmZ_B = 5538,
+  NEG_ZPmZ_D = 5539,
+  NEG_ZPmZ_H = 5540,
+  NEG_ZPmZ_S = 5541,
+  NEG_ZPzZ_B = 5542,
+  NEG_ZPzZ_D = 5543,
+  NEG_ZPzZ_H = 5544,
+  NEG_ZPzZ_S = 5545,
+  NEGv16i8 = 5546,
+  NEGv1i64 = 5547,
+  NEGv2i32 = 5548,
+  NEGv2i64 = 5549,
+  NEGv4i16 = 5550,
+  NEGv4i32 = 5551,
+  NEGv8i16 = 5552,
+  NEGv8i8 = 5553,
+  NMATCH_PPzZZ_B = 5554,
+  NMATCH_PPzZZ_H = 5555,
+  NOP = 5556,
+  NORS_PPzPP = 5557,
+  NOR_PPzPP = 5558,
+  NOT_ZPmZ_B = 5559,
+  NOT_ZPmZ_D = 5560,
+  NOT_ZPmZ_H = 5561,
+  NOT_ZPmZ_S = 5562,
+  NOT_ZPzZ_B = 5563,
+  NOT_ZPzZ_D = 5564,
+  NOT_ZPzZ_H = 5565,
+  NOT_ZPzZ_S = 5566,
+  NOTv16i8 = 5567,
+  NOTv8i8 = 5568,
+  ORNS_PPzPP = 5569,
+  ORNWrs = 5570,
+  ORNXrs = 5571,
+  ORN_PPzPP = 5572,
+  ORNv16i8 = 5573,
+  ORNv8i8 = 5574,
+  ORQV_VPZ_B = 5575,
+  ORQV_VPZ_D = 5576,
+  ORQV_VPZ_H = 5577,
+  ORQV_VPZ_S = 5578,
+  ORRS_PPzPP = 5579,
+  ORRWri = 5580,
+  ORRWrs = 5581,
+  ORRXri = 5582,
+  ORRXrs = 5583,
+  ORR_PPzPP = 5584,
+  ORR_ZI = 5585,
+  ORR_ZPmZ_B = 5586,
+  ORR_ZPmZ_D = 5587,
+  ORR_ZPmZ_H = 5588,
+  ORR_ZPmZ_S = 5589,
+  ORR_ZZZ = 5590,
+  ORRv16i8 = 5591,
+  ORRv2i32 = 5592,
+  ORRv4i16 = 5593,
+  ORRv4i32 = 5594,
+  ORRv8i16 = 5595,
+  ORRv8i8 = 5596,
+  ORV_VPZ_B = 5597,
+  ORV_VPZ_D = 5598,
+  ORV_VPZ_H = 5599,
+  ORV_VPZ_S = 5600,
+  PACDA = 5601,
+  PACDB = 5602,
+  PACDZA = 5603,
+  PACDZB = 5604,
+  PACGA = 5605,
+  PACIA = 5606,
+  PACIA1716 = 5607,
+  PACIA171615 = 5608,
+  PACIASP = 5609,
+  PACIASPPC = 5610,
+  PACIAZ = 5611,
+  PACIB = 5612,
+  PACIB1716 = 5613,
+  PACIB171615 = 5614,
+  PACIBSP = 5615,
+  PACIBSPPC = 5616,
+  PACIBZ = 5617,
+  PACIZA = 5618,
+  PACIZB = 5619,
+  PACM = 5620,
+  PACNBIASPPC = 5621,
+  PACNBIBSPPC = 5622,
+  PEXT_2PCI_B = 5623,
+  PEXT_2PCI_D = 5624,
+  PEXT_2PCI_H = 5625,
+  PEXT_2PCI_S = 5626,
+  PEXT_PCI_B = 5627,
+  PEXT_PCI_D = 5628,
+  PEXT_PCI_H = 5629,
+  PEXT_PCI_S = 5630,
+  PFALSE = 5631,
+  PFIRST_B = 5632,
+  PMLAL_2ZZZ_Q = 5633,
+  PMOV_PZI_B = 5634,
+  PMOV_PZI_D = 5635,
+  PMOV_PZI_H = 5636,
+  PMOV_PZI_S = 5637,
+  PMOV_ZIP_B = 5638,
+  PMOV_ZIP_D = 5639,
+  PMOV_ZIP_H = 5640,
+  PMOV_ZIP_S = 5641,
+  PMULLB_ZZZ_D = 5642,
+  PMULLB_ZZZ_H = 5643,
+  PMULLB_ZZZ_Q = 5644,
+  PMULLT_ZZZ_D = 5645,
+  PMULLT_ZZZ_H = 5646,
+  PMULLT_ZZZ_Q = 5647,
+  PMULL_2ZZZ_Q = 5648,
+  PMULLv16i8 = 5649,
+  PMULLv1i64 = 5650,
+  PMULLv2i64 = 5651,
+  PMULLv8i8 = 5652,
+  PMUL_ZZZ_B = 5653,
+  PMULv16i8 = 5654,
+  PMULv8i8 = 5655,
+  PNEXT_B = 5656,
+  PNEXT_D = 5657,
+  PNEXT_H = 5658,
+  PNEXT_S = 5659,
+  PRFB_D_PZI = 5660,
+  PRFB_D_SCALED = 5661,
+  PRFB_D_SXTW_SCALED = 5662,
+  PRFB_D_UXTW_SCALED = 5663,
+  PRFB_PRI = 5664,
+  PRFB_PRR = 5665,
+  PRFB_S_PZI = 5666,
+  PRFB_S_SXTW_SCALED = 5667,
+  PRFB_S_UXTW_SCALED = 5668,
+  PRFD_D_PZI = 5669,
+  PRFD_D_SCALED = 5670,
+  PRFD_D_SXTW_SCALED = 5671,
+  PRFD_D_UXTW_SCALED = 5672,
+  PRFD_PRI = 5673,
+  PRFD_PRR = 5674,
+  PRFD_S_PZI = 5675,
+  PRFD_S_SXTW_SCALED = 5676,
+  PRFD_S_UXTW_SCALED = 5677,
+  PRFH_D_PZI = 5678,
+  PRFH_D_SCALED = 5679,
+  PRFH_D_SXTW_SCALED = 5680,
+  PRFH_D_UXTW_SCALED = 5681,
+  PRFH_PRI = 5682,
+  PRFH_PRR = 5683,
+  PRFH_S_PZI = 5684,
+  PRFH_S_SXTW_SCALED = 5685,
+  PRFH_S_UXTW_SCALED = 5686,
+  PRFMl = 5687,
+  PRFMroW = 5688,
+  PRFMroX = 5689,
+  PRFMui = 5690,
+  PRFUMi = 5691,
+  PRFW_D_PZI = 5692,
+  PRFW_D_SCALED = 5693,
+  PRFW_D_SXTW_SCALED = 5694,
+  PRFW_D_UXTW_SCALED = 5695,
+  PRFW_PRI = 5696,
+  PRFW_PRR = 5697,
+  PRFW_S_PZI = 5698,
+  PRFW_S_SXTW_SCALED = 5699,
+  PRFW_S_UXTW_SCALED = 5700,
+  PSEL_PPPRI_B = 5701,
+  PSEL_PPPRI_D = 5702,
+  PSEL_PPPRI_H = 5703,
+  PSEL_PPPRI_S = 5704,
+  PTEST_PP = 5705,
+  PTRUES_B = 5706,
+  PTRUES_D = 5707,
+  PTRUES_H = 5708,
+  PTRUES_S = 5709,
+  PTRUE_B = 5710,
+  PTRUE_C_B = 5711,
+  PTRUE_C_D = 5712,
+  PTRUE_C_H = 5713,
+  PTRUE_C_S = 5714,
+  PTRUE_D = 5715,
+  PTRUE_H = 5716,
+  PTRUE_S = 5717,
+  PUNPKHI_PP = 5718,
+  PUNPKLO_PP = 5719,
+  RADDHNB_ZZZ_B = 5720,
+  RADDHNB_ZZZ_H = 5721,
+  RADDHNB_ZZZ_S = 5722,
+  RADDHNT_ZZZ_B = 5723,
+  RADDHNT_ZZZ_H = 5724,
+  RADDHNT_ZZZ_S = 5725,
+  RADDHNv2i64_v2i32 = 5726,
+  RADDHNv2i64_v4i32 = 5727,
+  RADDHNv4i32_v4i16 = 5728,
+  RADDHNv4i32_v8i16 = 5729,
+  RADDHNv8i16_v16i8 = 5730,
+  RADDHNv8i16_v8i8 = 5731,
+  RAX1 = 5732,
+  RAX1_ZZZ_D = 5733,
+  RBITWr = 5734,
+  RBITXr = 5735,
+  RBIT_ZPmZ_B = 5736,
+  RBIT_ZPmZ_D = 5737,
+  RBIT_ZPmZ_H = 5738,
+  RBIT_ZPmZ_S = 5739,
+  RBIT_ZPzZ_B = 5740,
+  RBIT_ZPzZ_D = 5741,
+  RBIT_ZPzZ_H = 5742,
+  RBIT_ZPzZ_S = 5743,
+  RBITv16i8 = 5744,
+  RBITv8i8 = 5745,
+  RCWCAS = 5746,
+  RCWCASA = 5747,
+  RCWCASAL = 5748,
+  RCWCASL = 5749,
+  RCWCASP = 5750,
+  RCWCASPA = 5751,
+  RCWCASPAL = 5752,
+  RCWCASPL = 5753,
+  RCWCLR = 5754,
+  RCWCLRA = 5755,
+  RCWCLRAL = 5756,
+  RCWCLRL = 5757,
+  RCWCLRP = 5758,
+  RCWCLRPA = 5759,
+  RCWCLRPAL = 5760,
+  RCWCLRPL = 5761,
+  RCWCLRS = 5762,
+  RCWCLRSA = 5763,
+  RCWCLRSAL = 5764,
+  RCWCLRSL = 5765,
+  RCWCLRSP = 5766,
+  RCWCLRSPA = 5767,
+  RCWCLRSPAL = 5768,
+  RCWCLRSPL = 5769,
+  RCWSCAS = 5770,
+  RCWSCASA = 5771,
+  RCWSCASAL = 5772,
+  RCWSCASL = 5773,
+  RCWSCASP = 5774,
+  RCWSCASPA = 5775,
+  RCWSCASPAL = 5776,
+  RCWSCASPL = 5777,
+  RCWSET = 5778,
+  RCWSETA = 5779,
+  RCWSETAL = 5780,
+  RCWSETL = 5781,
+  RCWSETP = 5782,
+  RCWSETPA = 5783,
+  RCWSETPAL = 5784,
+  RCWSETPL = 5785,
+  RCWSETS = 5786,
+  RCWSETSA = 5787,
+  RCWSETSAL = 5788,
+  RCWSETSL = 5789,
+  RCWSETSP = 5790,
+  RCWSETSPA = 5791,
+  RCWSETSPAL = 5792,
+  RCWSETSPL = 5793,
+  RCWSWP = 5794,
+  RCWSWPA = 5795,
+  RCWSWPAL = 5796,
+  RCWSWPL = 5797,
+  RCWSWPP = 5798,
+  RCWSWPPA = 5799,
+  RCWSWPPAL = 5800,
+  RCWSWPPL = 5801,
+  RCWSWPS = 5802,
+  RCWSWPSA = 5803,
+  RCWSWPSAL = 5804,
+  RCWSWPSL = 5805,
+  RCWSWPSP = 5806,
+  RCWSWPSPA = 5807,
+  RCWSWPSPAL = 5808,
+  RCWSWPSPL = 5809,
+  RDFFRS_PPz = 5810,
+  RDFFR_P = 5811,
+  RDFFR_PPz = 5812,
+  RDSVLI_XI = 5813,
+  RDVLI_XI = 5814,
+  RET = 5815,
+  RETAA = 5816,
+  RETAASPPCi = 5817,
+  RETAASPPCr = 5818,
+  RETAB = 5819,
+  RETABSPPCi = 5820,
+  RETABSPPCr = 5821,
+  REV16Wr = 5822,
+  REV16Xr = 5823,
+  REV16v16i8 = 5824,
+  REV16v8i8 = 5825,
+  REV32Xr = 5826,
+  REV32v16i8 = 5827,
+  REV32v4i16 = 5828,
+  REV32v8i16 = 5829,
+  REV32v8i8 = 5830,
+  REV64v16i8 = 5831,
+  REV64v2i32 = 5832,
+  REV64v4i16 = 5833,
+  REV64v4i32 = 5834,
+  REV64v8i16 = 5835,
+  REV64v8i8 = 5836,
+  REVB_ZPmZ_D = 5837,
+  REVB_ZPmZ_H = 5838,
+  REVB_ZPmZ_S = 5839,
+  REVB_ZPzZ_D = 5840,
+  REVB_ZPzZ_H = 5841,
+  REVB_ZPzZ_S = 5842,
+  REVD_ZPmZ = 5843,
+  REVD_ZPzZ = 5844,
+  REVH_ZPmZ_D = 5845,
+  REVH_ZPmZ_S = 5846,
+  REVH_ZPzZ_D = 5847,
+  REVH_ZPzZ_S = 5848,
+  REVW_ZPmZ_D = 5849,
+  REVW_ZPzZ_D = 5850,
+  REVWr = 5851,
+  REVXr = 5852,
+  REV_PP_B = 5853,
+  REV_PP_D = 5854,
+  REV_PP_H = 5855,
+  REV_PP_S = 5856,
+  REV_ZZ_B = 5857,
+  REV_ZZ_D = 5858,
+  REV_ZZ_H = 5859,
+  REV_ZZ_S = 5860,
+  RMIF = 5861,
+  RORVWr = 5862,
+  RORVXr = 5863,
+  RPRFM = 5864,
+  RSHRNB_ZZI_B = 5865,
+  RSHRNB_ZZI_H = 5866,
+  RSHRNB_ZZI_S = 5867,
+  RSHRNT_ZZI_B = 5868,
+  RSHRNT_ZZI_H = 5869,
+  RSHRNT_ZZI_S = 5870,
+  RSHRNv16i8_shift = 5871,
+  RSHRNv2i32_shift = 5872,
+  RSHRNv4i16_shift = 5873,
+  RSHRNv4i32_shift = 5874,
+  RSHRNv8i16_shift = 5875,
+  RSHRNv8i8_shift = 5876,
+  RSUBHNB_ZZZ_B = 5877,
+  RSUBHNB_ZZZ_H = 5878,
+  RSUBHNB_ZZZ_S = 5879,
+  RSUBHNT_ZZZ_B = 5880,
+  RSUBHNT_ZZZ_H = 5881,
+  RSUBHNT_ZZZ_S = 5882,
+  RSUBHNv2i64_v2i32 = 5883,
+  RSUBHNv2i64_v4i32 = 5884,
+  RSUBHNv4i32_v4i16 = 5885,
+  RSUBHNv4i32_v8i16 = 5886,
+  RSUBHNv8i16_v16i8 = 5887,
+  RSUBHNv8i16_v8i8 = 5888,
+  SABALB_ZZZ_D = 5889,
+  SABALB_ZZZ_H = 5890,
+  SABALB_ZZZ_S = 5891,
+  SABALT_ZZZ_D = 5892,
+  SABALT_ZZZ_H = 5893,
+  SABALT_ZZZ_S = 5894,
+  SABAL_ZZZ_BtoH = 5895,
+  SABAL_ZZZ_HtoS = 5896,
+  SABAL_ZZZ_StoD = 5897,
+  SABALv16i8_v8i16 = 5898,
+  SABALv2i32_v2i64 = 5899,
+  SABALv4i16_v4i32 = 5900,
+  SABALv4i32_v2i64 = 5901,
+  SABALv8i16_v4i32 = 5902,
+  SABALv8i8_v8i16 = 5903,
+  SABA_ZZZ_B = 5904,
+  SABA_ZZZ_D = 5905,
+  SABA_ZZZ_H = 5906,
+  SABA_ZZZ_S = 5907,
+  SABAv16i8 = 5908,
+  SABAv2i32 = 5909,
+  SABAv4i16 = 5910,
+  SABAv4i32 = 5911,
+  SABAv8i16 = 5912,
+  SABAv8i8 = 5913,
+  SABDLB_ZZZ_D = 5914,
+  SABDLB_ZZZ_H = 5915,
+  SABDLB_ZZZ_S = 5916,
+  SABDLT_ZZZ_D = 5917,
+  SABDLT_ZZZ_H = 5918,
+  SABDLT_ZZZ_S = 5919,
+  SABDLv16i8_v8i16 = 5920,
+  SABDLv2i32_v2i64 = 5921,
+  SABDLv4i16_v4i32 = 5922,
+  SABDLv4i32_v2i64 = 5923,
+  SABDLv8i16_v4i32 = 5924,
+  SABDLv8i8_v8i16 = 5925,
+  SABD_ZPmZ_B = 5926,
+  SABD_ZPmZ_D = 5927,
+  SABD_ZPmZ_H = 5928,
+  SABD_ZPmZ_S = 5929,
+  SABDv16i8 = 5930,
+  SABDv2i32 = 5931,
+  SABDv4i16 = 5932,
+  SABDv4i32 = 5933,
+  SABDv8i16 = 5934,
+  SABDv8i8 = 5935,
+  SADALP_ZPmZ_D = 5936,
+  SADALP_ZPmZ_H = 5937,
+  SADALP_ZPmZ_S = 5938,
+  SADALPv16i8_v8i16 = 5939,
+  SADALPv2i32_v1i64 = 5940,
+  SADALPv4i16_v2i32 = 5941,
+  SADALPv4i32_v2i64 = 5942,
+  SADALPv8i16_v4i32 = 5943,
+  SADALPv8i8_v4i16 = 5944,
+  SADDLBT_ZZZ_D = 5945,
+  SADDLBT_ZZZ_H = 5946,
+  SADDLBT_ZZZ_S = 5947,
+  SADDLB_ZZZ_D = 5948,
+  SADDLB_ZZZ_H = 5949,
+  SADDLB_ZZZ_S = 5950,
+  SADDLPv16i8_v8i16 = 5951,
+  SADDLPv2i32_v1i64 = 5952,
+  SADDLPv4i16_v2i32 = 5953,
+  SADDLPv4i32_v2i64 = 5954,
+  SADDLPv8i16_v4i32 = 5955,
+  SADDLPv8i8_v4i16 = 5956,
+  SADDLT_ZZZ_D = 5957,
+  SADDLT_ZZZ_H = 5958,
+  SADDLT_ZZZ_S = 5959,
+  SADDLVv16i8v = 5960,
+  SADDLVv4i16v = 5961,
+  SADDLVv4i32v = 5962,
+  SADDLVv8i16v = 5963,
+  SADDLVv8i8v = 5964,
+  SADDLv16i8_v8i16 = 5965,
+  SADDLv2i32_v2i64 = 5966,
+  SADDLv4i16_v4i32 = 5967,
+  SADDLv4i32_v2i64 = 5968,
+  SADDLv8i16_v4i32 = 5969,
+  SADDLv8i8_v8i16 = 5970,
+  SADDV_VPZ_B = 5971,
+  SADDV_VPZ_H = 5972,
+  SADDV_VPZ_S = 5973,
+  SADDWB_ZZZ_D = 5974,
+  SADDWB_ZZZ_H = 5975,
+  SADDWB_ZZZ_S = 5976,
+  SADDWT_ZZZ_D = 5977,
+  SADDWT_ZZZ_H = 5978,
+  SADDWT_ZZZ_S = 5979,
+  SADDWv16i8_v8i16 = 5980,
+  SADDWv2i32_v2i64 = 5981,
+  SADDWv4i16_v4i32 = 5982,
+  SADDWv4i32_v2i64 = 5983,
+  SADDWv8i16_v4i32 = 5984,
+  SADDWv8i8_v8i16 = 5985,
+  SB = 5986,
+  SBCLB_ZZZ_D = 5987,
+  SBCLB_ZZZ_S = 5988,
+  SBCLT_ZZZ_D = 5989,
+  SBCLT_ZZZ_S = 5990,
+  SBCSWr = 5991,
+  SBCSXr = 5992,
+  SBCWr = 5993,
+  SBCXr = 5994,
+  SBFMWri = 5995,
+  SBFMXri = 5996,
+  SCLAMP_VG2_2Z2Z_B = 5997,
+  SCLAMP_VG2_2Z2Z_D = 5998,
+  SCLAMP_VG2_2Z2Z_H = 5999,
+  SCLAMP_VG2_2Z2Z_S = 6000,
+  SCLAMP_VG4_4Z4Z_B = 6001,
+  SCLAMP_VG4_4Z4Z_D = 6002,
+  SCLAMP_VG4_4Z4Z_H = 6003,
+  SCLAMP_VG4_4Z4Z_S = 6004,
+  SCLAMP_ZZZ_B = 6005,
+  SCLAMP_ZZZ_D = 6006,
+  SCLAMP_ZZZ_H = 6007,
+  SCLAMP_ZZZ_S = 6008,
+  SCVTFDSr = 6009,
+  SCVTFHDr = 6010,
+  SCVTFHSr = 6011,
+  SCVTFLT_ZZ_BtoH = 6012,
+  SCVTFLT_ZZ_HtoS = 6013,
+  SCVTFLT_ZZ_StoD = 6014,
+  SCVTFSDr = 6015,
+  SCVTFSWDri = 6016,
+  SCVTFSWHri = 6017,
+  SCVTFSWSri = 6018,
+  SCVTFSXDri = 6019,
+  SCVTFSXHri = 6020,
+  SCVTFSXSri = 6021,
+  SCVTFUWDri = 6022,
+  SCVTFUWHri = 6023,
+  SCVTFUWSri = 6024,
+  SCVTFUXDri = 6025,
+  SCVTFUXHri = 6026,
+  SCVTFUXSri = 6027,
+  SCVTF_2Z2Z_StoS = 6028,
+  SCVTF_4Z4Z_StoS = 6029,
+  SCVTF_ZPmZ_DtoD = 6030,
+  SCVTF_ZPmZ_DtoH = 6031,
+  SCVTF_ZPmZ_DtoS = 6032,
+  SCVTF_ZPmZ_HtoH = 6033,
+  SCVTF_ZPmZ_StoD = 6034,
+  SCVTF_ZPmZ_StoH = 6035,
+  SCVTF_ZPmZ_StoS = 6036,
+  SCVTF_ZPzZ_DtoD = 6037,
+  SCVTF_ZPzZ_DtoH = 6038,
+  SCVTF_ZPzZ_DtoS = 6039,
+  SCVTF_ZPzZ_HtoH = 6040,
+  SCVTF_ZPzZ_StoD = 6041,
+  SCVTF_ZPzZ_StoH = 6042,
+  SCVTF_ZPzZ_StoS = 6043,
+  SCVTF_ZZ_BtoH = 6044,
+  SCVTF_ZZ_HtoS = 6045,
+  SCVTF_ZZ_StoD = 6046,
+  SCVTFd = 6047,
+  SCVTFh = 6048,
+  SCVTFs = 6049,
+  SCVTFv1i16 = 6050,
+  SCVTFv1i32 = 6051,
+  SCVTFv1i64 = 6052,
+  SCVTFv2f32 = 6053,
+  SCVTFv2f64 = 6054,
+  SCVTFv2i32_shift = 6055,
+  SCVTFv2i64_shift = 6056,
+  SCVTFv4f16 = 6057,
+  SCVTFv4f32 = 6058,
+  SCVTFv4i16_shift = 6059,
+  SCVTFv4i32_shift = 6060,
+  SCVTFv8f16 = 6061,
+  SCVTFv8i16_shift = 6062,
+  SDIVR_ZPmZ_D = 6063,
+  SDIVR_ZPmZ_S = 6064,
+  SDIVWr = 6065,
+  SDIVXr = 6066,
+  SDIV_ZPmZ_D = 6067,
+  SDIV_ZPmZ_S = 6068,
+  SDOT_VG2_M2Z2Z_BtoS = 6069,
+  SDOT_VG2_M2Z2Z_HtoD = 6070,
+  SDOT_VG2_M2Z2Z_HtoS = 6071,
+  SDOT_VG2_M2ZZI_BToS = 6072,
+  SDOT_VG2_M2ZZI_HToS = 6073,
+  SDOT_VG2_M2ZZI_HtoD = 6074,
+  SDOT_VG2_M2ZZ_BtoS = 6075,
+  SDOT_VG2_M2ZZ_HtoD = 6076,
+  SDOT_VG2_M2ZZ_HtoS = 6077,
+  SDOT_VG4_M4Z4Z_BtoS = 6078,
+  SDOT_VG4_M4Z4Z_HtoD = 6079,
+  SDOT_VG4_M4Z4Z_HtoS = 6080,
+  SDOT_VG4_M4ZZI_BToS = 6081,
+  SDOT_VG4_M4ZZI_HToS = 6082,
+  SDOT_VG4_M4ZZI_HtoD = 6083,
+  SDOT_VG4_M4ZZ_BtoS = 6084,
+  SDOT_VG4_M4ZZ_HtoD = 6085,
+  SDOT_VG4_M4ZZ_HtoS = 6086,
+  SDOT_ZZZI_BtoH = 6087,
+  SDOT_ZZZI_BtoS = 6088,
+  SDOT_ZZZI_HtoD = 6089,
+  SDOT_ZZZI_HtoS = 6090,
+  SDOT_ZZZ_BtoH = 6091,
+  SDOT_ZZZ_BtoS = 6092,
+  SDOT_ZZZ_HtoD = 6093,
+  SDOT_ZZZ_HtoS = 6094,
+  SDOTlanev16i8 = 6095,
+  SDOTlanev8i8 = 6096,
+  SDOTv16i8 = 6097,
+  SDOTv8i8 = 6098,
+  SEL_PPPP = 6099,
+  SEL_VG2_2ZC2Z2Z_B = 6100,
+  SEL_VG2_2ZC2Z2Z_D = 6101,
+  SEL_VG2_2ZC2Z2Z_H = 6102,
+  SEL_VG2_2ZC2Z2Z_S = 6103,
+  SEL_VG4_4ZC4Z4Z_B = 6104,
+  SEL_VG4_4ZC4Z4Z_D = 6105,
+  SEL_VG4_4ZC4Z4Z_H = 6106,
+  SEL_VG4_4ZC4Z4Z_S = 6107,
+  SEL_ZPZZ_B = 6108,
+  SEL_ZPZZ_D = 6109,
+  SEL_ZPZZ_H = 6110,
+  SEL_ZPZZ_S = 6111,
+  SETE = 6112,
+  SETEN = 6113,
+  SETET = 6114,
+  SETETN = 6115,
+  SETF16 = 6116,
+  SETF8 = 6117,
+  SETFFR = 6118,
+  SETGM = 6119,
+  SETGMN = 6120,
+  SETGMT = 6121,
+  SETGMTN = 6122,
+  SETGOE = 6123,
+  SETGOEN = 6124,
+  SETGOET = 6125,
+  SETGOETN = 6126,
+  SETGOM = 6127,
+  SETGOMN = 6128,
+  SETGOMT = 6129,
+  SETGOMTN = 6130,
+  SETGOP = 6131,
+  SETGOPN = 6132,
+  SETGOPT = 6133,
+  SETGOPTN = 6134,
+  SETGP = 6135,
+  SETGPN = 6136,
+  SETGPT = 6137,
+  SETGPTN = 6138,
+  SETM = 6139,
+  SETMN = 6140,
+  SETMT = 6141,
+  SETMTN = 6142,
+  SETP = 6143,
+  SETPN = 6144,
+  SETPT = 6145,
+  SETPTN = 6146,
+  SHA1Crrr = 6147,
+  SHA1Hrr = 6148,
+  SHA1Mrrr = 6149,
+  SHA1Prrr = 6150,
+  SHA1SU0rrr = 6151,
+  SHA1SU1rr = 6152,
+  SHA256H2rrr = 6153,
+  SHA256Hrrr = 6154,
+  SHA256SU0rr = 6155,
+  SHA256SU1rrr = 6156,
+  SHA512H = 6157,
+  SHA512H2 = 6158,
+  SHA512SU0 = 6159,
+  SHA512SU1 = 6160,
+  SHADD_ZPmZ_B = 6161,
+  SHADD_ZPmZ_D = 6162,
+  SHADD_ZPmZ_H = 6163,
+  SHADD_ZPmZ_S = 6164,
+  SHADDv16i8 = 6165,
+  SHADDv2i32 = 6166,
+  SHADDv4i16 = 6167,
+  SHADDv4i32 = 6168,
+  SHADDv8i16 = 6169,
+  SHADDv8i8 = 6170,
+  SHLLv16i8 = 6171,
+  SHLLv2i32 = 6172,
+  SHLLv4i16 = 6173,
+  SHLLv4i32 = 6174,
+  SHLLv8i16 = 6175,
+  SHLLv8i8 = 6176,
+  SHLd = 6177,
+  SHLv16i8_shift = 6178,
+  SHLv2i32_shift = 6179,
+  SHLv2i64_shift = 6180,
+  SHLv4i16_shift = 6181,
+  SHLv4i32_shift = 6182,
+  SHLv8i16_shift = 6183,
+  SHLv8i8_shift = 6184,
+  SHRNB_ZZI_B = 6185,
+  SHRNB_ZZI_H = 6186,
+  SHRNB_ZZI_S = 6187,
+  SHRNT_ZZI_B = 6188,
+  SHRNT_ZZI_H = 6189,
+  SHRNT_ZZI_S = 6190,
+  SHRNv16i8_shift = 6191,
+  SHRNv2i32_shift = 6192,
+  SHRNv4i16_shift = 6193,
+  SHRNv4i32_shift = 6194,
+  SHRNv8i16_shift = 6195,
+  SHRNv8i8_shift = 6196,
+  SHSUBR_ZPmZ_B = 6197,
+  SHSUBR_ZPmZ_D = 6198,
+  SHSUBR_ZPmZ_H = 6199,
+  SHSUBR_ZPmZ_S = 6200,
+  SHSUB_ZPmZ_B = 6201,
+  SHSUB_ZPmZ_D = 6202,
+  SHSUB_ZPmZ_H = 6203,
+  SHSUB_ZPmZ_S = 6204,
+  SHSUBv16i8 = 6205,
+  SHSUBv2i32 = 6206,
+  SHSUBv4i16 = 6207,
+  SHSUBv4i32 = 6208,
+  SHSUBv8i16 = 6209,
+  SHSUBv8i8 = 6210,
+  SHUH = 6211,
+  SLI_ZZI_B = 6212,
+  SLI_ZZI_D = 6213,
+  SLI_ZZI_H = 6214,
+  SLI_ZZI_S = 6215,
+  SLId = 6216,
+  SLIv16i8_shift = 6217,
+  SLIv2i32_shift = 6218,
+  SLIv2i64_shift = 6219,
+  SLIv4i16_shift = 6220,
+  SLIv4i32_shift = 6221,
+  SLIv8i16_shift = 6222,
+  SLIv8i8_shift = 6223,
+  SM3PARTW1 = 6224,
+  SM3PARTW2 = 6225,
+  SM3SS1 = 6226,
+  SM3TT1A = 6227,
+  SM3TT1B = 6228,
+  SM3TT2A = 6229,
+  SM3TT2B = 6230,
+  SM4E = 6231,
+  SM4EKEY_ZZZ_S = 6232,
+  SM4ENCKEY = 6233,
+  SM4E_ZZZ_S = 6234,
+  SMADDLrrr = 6235,
+  SMAXP_ZPmZ_B = 6236,
+  SMAXP_ZPmZ_D = 6237,
+  SMAXP_ZPmZ_H = 6238,
+  SMAXP_ZPmZ_S = 6239,
+  SMAXPv16i8 = 6240,
+  SMAXPv2i32 = 6241,
+  SMAXPv4i16 = 6242,
+  SMAXPv4i32 = 6243,
+  SMAXPv8i16 = 6244,
+  SMAXPv8i8 = 6245,
+  SMAXQV_VPZ_B = 6246,
+  SMAXQV_VPZ_D = 6247,
+  SMAXQV_VPZ_H = 6248,
+  SMAXQV_VPZ_S = 6249,
+  SMAXV_VPZ_B = 6250,
+  SMAXV_VPZ_D = 6251,
+  SMAXV_VPZ_H = 6252,
+  SMAXV_VPZ_S = 6253,
+  SMAXVv16i8v = 6254,
+  SMAXVv4i16v = 6255,
+  SMAXVv4i32v = 6256,
+  SMAXVv8i16v = 6257,
+  SMAXVv8i8v = 6258,
+  SMAXWri = 6259,
+  SMAXWrr = 6260,
+  SMAXXri = 6261,
+  SMAXXrr = 6262,
+  SMAX_VG2_2Z2Z_B = 6263,
+  SMAX_VG2_2Z2Z_D = 6264,
+  SMAX_VG2_2Z2Z_H = 6265,
+  SMAX_VG2_2Z2Z_S = 6266,
+  SMAX_VG2_2ZZ_B = 6267,
+  SMAX_VG2_2ZZ_D = 6268,
+  SMAX_VG2_2ZZ_H = 6269,
+  SMAX_VG2_2ZZ_S = 6270,
+  SMAX_VG4_4Z4Z_B = 6271,
+  SMAX_VG4_4Z4Z_D = 6272,
+  SMAX_VG4_4Z4Z_H = 6273,
+  SMAX_VG4_4Z4Z_S = 6274,
+  SMAX_VG4_4ZZ_B = 6275,
+  SMAX_VG4_4ZZ_D = 6276,
+  SMAX_VG4_4ZZ_H = 6277,
+  SMAX_VG4_4ZZ_S = 6278,
+  SMAX_ZI_B = 6279,
+  SMAX_ZI_D = 6280,
+  SMAX_ZI_H = 6281,
+  SMAX_ZI_S = 6282,
+  SMAX_ZPmZ_B = 6283,
+  SMAX_ZPmZ_D = 6284,
+  SMAX_ZPmZ_H = 6285,
+  SMAX_ZPmZ_S = 6286,
+  SMAXv16i8 = 6287,
+  SMAXv2i32 = 6288,
+  SMAXv4i16 = 6289,
+  SMAXv4i32 = 6290,
+  SMAXv8i16 = 6291,
+  SMAXv8i8 = 6292,
+  SMC = 6293,
+  SMINP_ZPmZ_B = 6294,
+  SMINP_ZPmZ_D = 6295,
+  SMINP_ZPmZ_H = 6296,
+  SMINP_ZPmZ_S = 6297,
+  SMINPv16i8 = 6298,
+  SMINPv2i32 = 6299,
+  SMINPv4i16 = 6300,
+  SMINPv4i32 = 6301,
+  SMINPv8i16 = 6302,
+  SMINPv8i8 = 6303,
+  SMINQV_VPZ_B = 6304,
+  SMINQV_VPZ_D = 6305,
+  SMINQV_VPZ_H = 6306,
+  SMINQV_VPZ_S = 6307,
+  SMINV_VPZ_B = 6308,
+  SMINV_VPZ_D = 6309,
+  SMINV_VPZ_H = 6310,
+  SMINV_VPZ_S = 6311,
+  SMINVv16i8v = 6312,
+  SMINVv4i16v = 6313,
+  SMINVv4i32v = 6314,
+  SMINVv8i16v = 6315,
+  SMINVv8i8v = 6316,
+  SMINWri = 6317,
+  SMINWrr = 6318,
+  SMINXri = 6319,
+  SMINXrr = 6320,
+  SMIN_VG2_2Z2Z_B = 6321,
+  SMIN_VG2_2Z2Z_D = 6322,
+  SMIN_VG2_2Z2Z_H = 6323,
+  SMIN_VG2_2Z2Z_S = 6324,
+  SMIN_VG2_2ZZ_B = 6325,
+  SMIN_VG2_2ZZ_D = 6326,
+  SMIN_VG2_2ZZ_H = 6327,
+  SMIN_VG2_2ZZ_S = 6328,
+  SMIN_VG4_4Z4Z_B = 6329,
+  SMIN_VG4_4Z4Z_D = 6330,
+  SMIN_VG4_4Z4Z_H = 6331,
+  SMIN_VG4_4Z4Z_S = 6332,
+  SMIN_VG4_4ZZ_B = 6333,
+  SMIN_VG4_4ZZ_D = 6334,
+  SMIN_VG4_4ZZ_H = 6335,
+  SMIN_VG4_4ZZ_S = 6336,
+  SMIN_ZI_B = 6337,
+  SMIN_ZI_D = 6338,
+  SMIN_ZI_H = 6339,
+  SMIN_ZI_S = 6340,
+  SMIN_ZPmZ_B = 6341,
+  SMIN_ZPmZ_D = 6342,
+  SMIN_ZPmZ_H = 6343,
+  SMIN_ZPmZ_S = 6344,
+  SMINv16i8 = 6345,
+  SMINv2i32 = 6346,
+  SMINv4i16 = 6347,
+  SMINv4i32 = 6348,
+  SMINv8i16 = 6349,
+  SMINv8i8 = 6350,
+  SMLALB_ZZZI_D = 6351,
+  SMLALB_ZZZI_S = 6352,
+  SMLALB_ZZZ_D = 6353,
+  SMLALB_ZZZ_H = 6354,
+  SMLALB_ZZZ_S = 6355,
+  SMLALL_MZZI_BtoS = 6356,
+  SMLALL_MZZI_HtoD = 6357,
+  SMLALL_MZZ_BtoS = 6358,
+  SMLALL_MZZ_HtoD = 6359,
+  SMLALL_VG2_M2Z2Z_BtoS = 6360,
+  SMLALL_VG2_M2Z2Z_HtoD = 6361,
+  SMLALL_VG2_M2ZZI_BtoS = 6362,
+  SMLALL_VG2_M2ZZI_HtoD = 6363,
+  SMLALL_VG2_M2ZZ_BtoS = 6364,
+  SMLALL_VG2_M2ZZ_HtoD = 6365,
+  SMLALL_VG4_M4Z4Z_BtoS = 6366,
+  SMLALL_VG4_M4Z4Z_HtoD = 6367,
+  SMLALL_VG4_M4ZZI_BtoS = 6368,
+  SMLALL_VG4_M4ZZI_HtoD = 6369,
+  SMLALL_VG4_M4ZZ_BtoS = 6370,
+  SMLALL_VG4_M4ZZ_HtoD = 6371,
+  SMLALT_ZZZI_D = 6372,
+  SMLALT_ZZZI_S = 6373,
+  SMLALT_ZZZ_D = 6374,
+  SMLALT_ZZZ_H = 6375,
+  SMLALT_ZZZ_S = 6376,
+  SMLAL_MZZI_HtoS = 6377,
+  SMLAL_MZZ_HtoS = 6378,
+  SMLAL_VG2_M2Z2Z_HtoS = 6379,
+  SMLAL_VG2_M2ZZI_S = 6380,
+  SMLAL_VG2_M2ZZ_HtoS = 6381,
+  SMLAL_VG4_M4Z4Z_HtoS = 6382,
+  SMLAL_VG4_M4ZZI_HtoS = 6383,
+  SMLAL_VG4_M4ZZ_HtoS = 6384,
+  SMLALv16i8_v8i16 = 6385,
+  SMLALv2i32_indexed = 6386,
+  SMLALv2i32_v2i64 = 6387,
+  SMLALv4i16_indexed = 6388,
+  SMLALv4i16_v4i32 = 6389,
+  SMLALv4i32_indexed = 6390,
+  SMLALv4i32_v2i64 = 6391,
+  SMLALv8i16_indexed = 6392,
+  SMLALv8i16_v4i32 = 6393,
+  SMLALv8i8_v8i16 = 6394,
+  SMLSLB_ZZZI_D = 6395,
+  SMLSLB_ZZZI_S = 6396,
+  SMLSLB_ZZZ_D = 6397,
+  SMLSLB_ZZZ_H = 6398,
+  SMLSLB_ZZZ_S = 6399,
+  SMLSLL_MZZI_BtoS = 6400,
+  SMLSLL_MZZI_HtoD = 6401,
+  SMLSLL_MZZ_BtoS = 6402,
+  SMLSLL_MZZ_HtoD = 6403,
+  SMLSLL_VG2_M2Z2Z_BtoS = 6404,
+  SMLSLL_VG2_M2Z2Z_HtoD = 6405,
+  SMLSLL_VG2_M2ZZI_BtoS = 6406,
+  SMLSLL_VG2_M2ZZI_HtoD = 6407,
+  SMLSLL_VG2_M2ZZ_BtoS = 6408,
+  SMLSLL_VG2_M2ZZ_HtoD = 6409,
+  SMLSLL_VG4_M4Z4Z_BtoS = 6410,
+  SMLSLL_VG4_M4Z4Z_HtoD = 6411,
+  SMLSLL_VG4_M4ZZI_BtoS = 6412,
+  SMLSLL_VG4_M4ZZI_HtoD = 6413,
+  SMLSLL_VG4_M4ZZ_BtoS = 6414,
+  SMLSLL_VG4_M4ZZ_HtoD = 6415,
+  SMLSLT_ZZZI_D = 6416,
+  SMLSLT_ZZZI_S = 6417,
+  SMLSLT_ZZZ_D = 6418,
+  SMLSLT_ZZZ_H = 6419,
+  SMLSLT_ZZZ_S = 6420,
+  SMLSL_MZZI_HtoS = 6421,
+  SMLSL_MZZ_HtoS = 6422,
+  SMLSL_VG2_M2Z2Z_HtoS = 6423,
+  SMLSL_VG2_M2ZZI_S = 6424,
+  SMLSL_VG2_M2ZZ_HtoS = 6425,
+  SMLSL_VG4_M4Z4Z_HtoS = 6426,
+  SMLSL_VG4_M4ZZI_HtoS = 6427,
+  SMLSL_VG4_M4ZZ_HtoS = 6428,
+  SMLSLv16i8_v8i16 = 6429,
+  SMLSLv2i32_indexed = 6430,
+  SMLSLv2i32_v2i64 = 6431,
+  SMLSLv4i16_indexed = 6432,
+  SMLSLv4i16_v4i32 = 6433,
+  SMLSLv4i32_indexed = 6434,
+  SMLSLv4i32_v2i64 = 6435,
+  SMLSLv8i16_indexed = 6436,
+  SMLSLv8i16_v4i32 = 6437,
+  SMLSLv8i8_v8i16 = 6438,
+  SMMLA = 6439,
+  SMMLA_ZZZ = 6440,
+  SMOP4A_M2Z2Z_BToS = 6441,
+  SMOP4A_M2Z2Z_HToS = 6442,
+  SMOP4A_M2Z2Z_HtoD = 6443,
+  SMOP4A_M2ZZ_BToS = 6444,
+  SMOP4A_M2ZZ_HToS = 6445,
+  SMOP4A_M2ZZ_HtoD = 6446,
+  SMOP4A_MZ2Z_BToS = 6447,
+  SMOP4A_MZ2Z_HToS = 6448,
+  SMOP4A_MZ2Z_HtoD = 6449,
+  SMOP4A_MZZ_BToS = 6450,
+  SMOP4A_MZZ_HToS = 6451,
+  SMOP4A_MZZ_HtoD = 6452,
+  SMOP4S_M2Z2Z_BToS = 6453,
+  SMOP4S_M2Z2Z_HToS = 6454,
+  SMOP4S_M2Z2Z_HtoD = 6455,
+  SMOP4S_M2ZZ_BToS = 6456,
+  SMOP4S_M2ZZ_HToS = 6457,
+  SMOP4S_M2ZZ_HtoD = 6458,
+  SMOP4S_MZ2Z_BToS = 6459,
+  SMOP4S_MZ2Z_HToS = 6460,
+  SMOP4S_MZ2Z_HtoD = 6461,
+  SMOP4S_MZZ_BToS = 6462,
+  SMOP4S_MZZ_HToS = 6463,
+  SMOP4S_MZZ_HtoD = 6464,
+  SMOPA_MPPZZ_D = 6465,
+  SMOPA_MPPZZ_HtoS = 6466,
+  SMOPA_MPPZZ_S = 6467,
+  SMOPS_MPPZZ_D = 6468,
+  SMOPS_MPPZZ_HtoS = 6469,
+  SMOPS_MPPZZ_S = 6470,
+  SMOVvi16to32 = 6471,
+  SMOVvi16to32_idx0 = 6472,
+  SMOVvi16to64 = 6473,
+  SMOVvi16to64_idx0 = 6474,
+  SMOVvi32to64 = 6475,
+  SMOVvi32to64_idx0 = 6476,
+  SMOVvi8to32 = 6477,
+  SMOVvi8to32_idx0 = 6478,
+  SMOVvi8to64 = 6479,
+  SMOVvi8to64_idx0 = 6480,
+  SMSUBLrrr = 6481,
+  SMULH_ZPmZ_B = 6482,
+  SMULH_ZPmZ_D = 6483,
+  SMULH_ZPmZ_H = 6484,
+  SMULH_ZPmZ_S = 6485,
+  SMULH_ZZZ_B = 6486,
+  SMULH_ZZZ_D = 6487,
+  SMULH_ZZZ_H = 6488,
+  SMULH_ZZZ_S = 6489,
+  SMULHrr = 6490,
+  SMULLB_ZZZI_D = 6491,
+  SMULLB_ZZZI_S = 6492,
+  SMULLB_ZZZ_D = 6493,
+  SMULLB_ZZZ_H = 6494,
+  SMULLB_ZZZ_S = 6495,
+  SMULLT_ZZZI_D = 6496,
+  SMULLT_ZZZI_S = 6497,
+  SMULLT_ZZZ_D = 6498,
+  SMULLT_ZZZ_H = 6499,
+  SMULLT_ZZZ_S = 6500,
+  SMULLv16i8_v8i16 = 6501,
+  SMULLv2i32_indexed = 6502,
+  SMULLv2i32_v2i64 = 6503,
+  SMULLv4i16_indexed = 6504,
+  SMULLv4i16_v4i32 = 6505,
+  SMULLv4i32_indexed = 6506,
+  SMULLv4i32_v2i64 = 6507,
+  SMULLv8i16_indexed = 6508,
+  SMULLv8i16_v4i32 = 6509,
+  SMULLv8i8_v8i16 = 6510,
+  SPLICE_ZPZZ_B = 6511,
+  SPLICE_ZPZZ_D = 6512,
+  SPLICE_ZPZZ_H = 6513,
+  SPLICE_ZPZZ_S = 6514,
+  SPLICE_ZPZ_B = 6515,
+  SPLICE_ZPZ_D = 6516,
+  SPLICE_ZPZ_H = 6517,
+  SPLICE_ZPZ_S = 6518,
+  SQABS_ZPmZ_B = 6519,
+  SQABS_ZPmZ_D = 6520,
+  SQABS_ZPmZ_H = 6521,
+  SQABS_ZPmZ_S = 6522,
+  SQABS_ZPzZ_B = 6523,
+  SQABS_ZPzZ_D = 6524,
+  SQABS_ZPzZ_H = 6525,
+  SQABS_ZPzZ_S = 6526,
+  SQABSv16i8 = 6527,
+  SQABSv1i16 = 6528,
+  SQABSv1i32 = 6529,
+  SQABSv1i64 = 6530,
+  SQABSv1i8 = 6531,
+  SQABSv2i32 = 6532,
+  SQABSv2i64 = 6533,
+  SQABSv4i16 = 6534,
+  SQABSv4i32 = 6535,
+  SQABSv8i16 = 6536,
+  SQABSv8i8 = 6537,
+  SQADD_ZI_B = 6538,
+  SQADD_ZI_D = 6539,
+  SQADD_ZI_H = 6540,
+  SQADD_ZI_S = 6541,
+  SQADD_ZPmZ_B = 6542,
+  SQADD_ZPmZ_D = 6543,
+  SQADD_ZPmZ_H = 6544,
+  SQADD_ZPmZ_S = 6545,
+  SQADD_ZZZ_B = 6546,
+  SQADD_ZZZ_D = 6547,
+  SQADD_ZZZ_H = 6548,
+  SQADD_ZZZ_S = 6549,
+  SQADDv16i8 = 6550,
+  SQADDv1i16 = 6551,
+  SQADDv1i32 = 6552,
+  SQADDv1i64 = 6553,
+  SQADDv1i8 = 6554,
+  SQADDv2i32 = 6555,
+  SQADDv2i64 = 6556,
+  SQADDv4i16 = 6557,
+  SQADDv4i32 = 6558,
+  SQADDv8i16 = 6559,
+  SQADDv8i8 = 6560,
+  SQCADD_ZZI_B = 6561,
+  SQCADD_ZZI_D = 6562,
+  SQCADD_ZZI_H = 6563,
+  SQCADD_ZZI_S = 6564,
+  SQCVTN_Z2Z_StoH = 6565,
+  SQCVTN_Z4Z_DtoH = 6566,
+  SQCVTN_Z4Z_StoB = 6567,
+  SQCVTUN_Z2Z_StoH = 6568,
+  SQCVTUN_Z4Z_DtoH = 6569,
+  SQCVTUN_Z4Z_StoB = 6570,
+  SQCVTU_Z2Z_StoH = 6571,
+  SQCVTU_Z4Z_DtoH = 6572,
+  SQCVTU_Z4Z_StoB = 6573,
+  SQCVT_Z2Z_StoH = 6574,
+  SQCVT_Z4Z_DtoH = 6575,
+  SQCVT_Z4Z_StoB = 6576,
+  SQDECB_XPiI = 6577,
+  SQDECB_XPiWdI = 6578,
+  SQDECD_XPiI = 6579,
+  SQDECD_XPiWdI = 6580,
+  SQDECD_ZPiI = 6581,
+  SQDECH_XPiI = 6582,
+  SQDECH_XPiWdI = 6583,
+  SQDECH_ZPiI = 6584,
+  SQDECP_XPWd_B = 6585,
+  SQDECP_XPWd_D = 6586,
+  SQDECP_XPWd_H = 6587,
+  SQDECP_XPWd_S = 6588,
+  SQDECP_XP_B = 6589,
+  SQDECP_XP_D = 6590,
+  SQDECP_XP_H = 6591,
+  SQDECP_XP_S = 6592,
+  SQDECP_ZP_D = 6593,
+  SQDECP_ZP_H = 6594,
+  SQDECP_ZP_S = 6595,
+  SQDECW_XPiI = 6596,
+  SQDECW_XPiWdI = 6597,
+  SQDECW_ZPiI = 6598,
+  SQDMLALBT_ZZZ_D = 6599,
+  SQDMLALBT_ZZZ_H = 6600,
+  SQDMLALBT_ZZZ_S = 6601,
+  SQDMLALB_ZZZI_D = 6602,
+  SQDMLALB_ZZZI_S = 6603,
+  SQDMLALB_ZZZ_D = 6604,
+  SQDMLALB_ZZZ_H = 6605,
+  SQDMLALB_ZZZ_S = 6606,
+  SQDMLALT_ZZZI_D = 6607,
+  SQDMLALT_ZZZI_S = 6608,
+  SQDMLALT_ZZZ_D = 6609,
+  SQDMLALT_ZZZ_H = 6610,
+  SQDMLALT_ZZZ_S = 6611,
+  SQDMLALi16 = 6612,
+  SQDMLALi32 = 6613,
+  SQDMLALv1i32_indexed = 6614,
+  SQDMLALv1i64_indexed = 6615,
+  SQDMLALv2i32_indexed = 6616,
+  SQDMLALv2i32_v2i64 = 6617,
+  SQDMLALv4i16_indexed = 6618,
+  SQDMLALv4i16_v4i32 = 6619,
+  SQDMLALv4i32_indexed = 6620,
+  SQDMLALv4i32_v2i64 = 6621,
+  SQDMLALv8i16_indexed = 6622,
+  SQDMLALv8i16_v4i32 = 6623,
+  SQDMLSLBT_ZZZ_D = 6624,
+  SQDMLSLBT_ZZZ_H = 6625,
+  SQDMLSLBT_ZZZ_S = 6626,
+  SQDMLSLB_ZZZI_D = 6627,
+  SQDMLSLB_ZZZI_S = 6628,
+  SQDMLSLB_ZZZ_D = 6629,
+  SQDMLSLB_ZZZ_H = 6630,
+  SQDMLSLB_ZZZ_S = 6631,
+  SQDMLSLT_ZZZI_D = 6632,
+  SQDMLSLT_ZZZI_S = 6633,
+  SQDMLSLT_ZZZ_D = 6634,
+  SQDMLSLT_ZZZ_H = 6635,
+  SQDMLSLT_ZZZ_S = 6636,
+  SQDMLSLi16 = 6637,
+  SQDMLSLi32 = 6638,
+  SQDMLSLv1i32_indexed = 6639,
+  SQDMLSLv1i64_indexed = 6640,
+  SQDMLSLv2i32_indexed = 6641,
+  SQDMLSLv2i32_v2i64 = 6642,
+  SQDMLSLv4i16_indexed = 6643,
+  SQDMLSLv4i16_v4i32 = 6644,
+  SQDMLSLv4i32_indexed = 6645,
+  SQDMLSLv4i32_v2i64 = 6646,
+  SQDMLSLv8i16_indexed = 6647,
+  SQDMLSLv8i16_v4i32 = 6648,
+  SQDMULH_VG2_2Z2Z_B = 6649,
+  SQDMULH_VG2_2Z2Z_D = 6650,
+  SQDMULH_VG2_2Z2Z_H = 6651,
+  SQDMULH_VG2_2Z2Z_S = 6652,
+  SQDMULH_VG2_2ZZ_B = 6653,
+  SQDMULH_VG2_2ZZ_D = 6654,
+  SQDMULH_VG2_2ZZ_H = 6655,
+  SQDMULH_VG2_2ZZ_S = 6656,
+  SQDMULH_VG4_4Z4Z_B = 6657,
+  SQDMULH_VG4_4Z4Z_D = 6658,
+  SQDMULH_VG4_4Z4Z_H = 6659,
+  SQDMULH_VG4_4Z4Z_S = 6660,
+  SQDMULH_VG4_4ZZ_B = 6661,
+  SQDMULH_VG4_4ZZ_D = 6662,
+  SQDMULH_VG4_4ZZ_H = 6663,
+  SQDMULH_VG4_4ZZ_S = 6664,
+  SQDMULH_ZZZI_D = 6665,
+  SQDMULH_ZZZI_H = 6666,
+  SQDMULH_ZZZI_S = 6667,
+  SQDMULH_ZZZ_B = 6668,
+  SQDMULH_ZZZ_D = 6669,
+  SQDMULH_ZZZ_H = 6670,
+  SQDMULH_ZZZ_S = 6671,
+  SQDMULHv1i16 = 6672,
+  SQDMULHv1i16_indexed = 6673,
+  SQDMULHv1i32 = 6674,
+  SQDMULHv1i32_indexed = 6675,
+  SQDMULHv2i32 = 6676,
+  SQDMULHv2i32_indexed = 6677,
+  SQDMULHv4i16 = 6678,
+  SQDMULHv4i16_indexed = 6679,
+  SQDMULHv4i32 = 6680,
+  SQDMULHv4i32_indexed = 6681,
+  SQDMULHv8i16 = 6682,
+  SQDMULHv8i16_indexed = 6683,
+  SQDMULLB_ZZZI_D = 6684,
+  SQDMULLB_ZZZI_S = 6685,
+  SQDMULLB_ZZZ_D = 6686,
+  SQDMULLB_ZZZ_H = 6687,
+  SQDMULLB_ZZZ_S = 6688,
+  SQDMULLT_ZZZI_D = 6689,
+  SQDMULLT_ZZZI_S = 6690,
+  SQDMULLT_ZZZ_D = 6691,
+  SQDMULLT_ZZZ_H = 6692,
+  SQDMULLT_ZZZ_S = 6693,
+  SQDMULLi16 = 6694,
+  SQDMULLi32 = 6695,
+  SQDMULLv1i32_indexed = 6696,
+  SQDMULLv1i64_indexed = 6697,
+  SQDMULLv2i32_indexed = 6698,
+  SQDMULLv2i32_v2i64 = 6699,
+  SQDMULLv4i16_indexed = 6700,
+  SQDMULLv4i16_v4i32 = 6701,
+  SQDMULLv4i32_indexed = 6702,
+  SQDMULLv4i32_v2i64 = 6703,
+  SQDMULLv8i16_indexed = 6704,
+  SQDMULLv8i16_v4i32 = 6705,
+  SQINCB_XPiI = 6706,
+  SQINCB_XPiWdI = 6707,
+  SQINCD_XPiI = 6708,
+  SQINCD_XPiWdI = 6709,
+  SQINCD_ZPiI = 6710,
+  SQINCH_XPiI = 6711,
+  SQINCH_XPiWdI = 6712,
+  SQINCH_ZPiI = 6713,
+  SQINCP_XPWd_B = 6714,
+  SQINCP_XPWd_D = 6715,
+  SQINCP_XPWd_H = 6716,
+  SQINCP_XPWd_S = 6717,
+  SQINCP_XP_B = 6718,
+  SQINCP_XP_D = 6719,
+  SQINCP_XP_H = 6720,
+  SQINCP_XP_S = 6721,
+  SQINCP_ZP_D = 6722,
+  SQINCP_ZP_H = 6723,
+  SQINCP_ZP_S = 6724,
+  SQINCW_XPiI = 6725,
+  SQINCW_XPiWdI = 6726,
+  SQINCW_ZPiI = 6727,
+  SQNEG_ZPmZ_B = 6728,
+  SQNEG_ZPmZ_D = 6729,
+  SQNEG_ZPmZ_H = 6730,
+  SQNEG_ZPmZ_S = 6731,
+  SQNEG_ZPzZ_B = 6732,
+  SQNEG_ZPzZ_D = 6733,
+  SQNEG_ZPzZ_H = 6734,
+  SQNEG_ZPzZ_S = 6735,
+  SQNEGv16i8 = 6736,
+  SQNEGv1i16 = 6737,
+  SQNEGv1i32 = 6738,
+  SQNEGv1i64 = 6739,
+  SQNEGv1i8 = 6740,
+  SQNEGv2i32 = 6741,
+  SQNEGv2i64 = 6742,
+  SQNEGv4i16 = 6743,
+  SQNEGv4i32 = 6744,
+  SQNEGv8i16 = 6745,
+  SQNEGv8i8 = 6746,
+  SQRDCMLAH_ZZZI_H = 6747,
+  SQRDCMLAH_ZZZI_S = 6748,
+  SQRDCMLAH_ZZZ_B = 6749,
+  SQRDCMLAH_ZZZ_D = 6750,
+  SQRDCMLAH_ZZZ_H = 6751,
+  SQRDCMLAH_ZZZ_S = 6752,
+  SQRDMLAH_ZZZI_D = 6753,
+  SQRDMLAH_ZZZI_H = 6754,
+  SQRDMLAH_ZZZI_S = 6755,
+  SQRDMLAH_ZZZ_B = 6756,
+  SQRDMLAH_ZZZ_D = 6757,
+  SQRDMLAH_ZZZ_H = 6758,
+  SQRDMLAH_ZZZ_S = 6759,
+  SQRDMLAHv1i16 = 6760,
+  SQRDMLAHv1i16_indexed = 6761,
+  SQRDMLAHv1i32 = 6762,
+  SQRDMLAHv1i32_indexed = 6763,
+  SQRDMLAHv2i32 = 6764,
+  SQRDMLAHv2i32_indexed = 6765,
+  SQRDMLAHv4i16 = 6766,
+  SQRDMLAHv4i16_indexed = 6767,
+  SQRDMLAHv4i32 = 6768,
+  SQRDMLAHv4i32_indexed = 6769,
+  SQRDMLAHv8i16 = 6770,
+  SQRDMLAHv8i16_indexed = 6771,
+  SQRDMLSH_ZZZI_D = 6772,
+  SQRDMLSH_ZZZI_H = 6773,
+  SQRDMLSH_ZZZI_S = 6774,
+  SQRDMLSH_ZZZ_B = 6775,
+  SQRDMLSH_ZZZ_D = 6776,
+  SQRDMLSH_ZZZ_H = 6777,
+  SQRDMLSH_ZZZ_S = 6778,
+  SQRDMLSHv1i16 = 6779,
+  SQRDMLSHv1i16_indexed = 6780,
+  SQRDMLSHv1i32 = 6781,
+  SQRDMLSHv1i32_indexed = 6782,
+  SQRDMLSHv2i32 = 6783,
+  SQRDMLSHv2i32_indexed = 6784,
+  SQRDMLSHv4i16 = 6785,
+  SQRDMLSHv4i16_indexed = 6786,
+  SQRDMLSHv4i32 = 6787,
+  SQRDMLSHv4i32_indexed = 6788,
+  SQRDMLSHv8i16 = 6789,
+  SQRDMLSHv8i16_indexed = 6790,
+  SQRDMULH_ZZZI_D = 6791,
+  SQRDMULH_ZZZI_H = 6792,
+  SQRDMULH_ZZZI_S = 6793,
+  SQRDMULH_ZZZ_B = 6794,
+  SQRDMULH_ZZZ_D = 6795,
+  SQRDMULH_ZZZ_H = 6796,
+  SQRDMULH_ZZZ_S = 6797,
+  SQRDMULHv1i16 = 6798,
+  SQRDMULHv1i16_indexed = 6799,
+  SQRDMULHv1i32 = 6800,
+  SQRDMULHv1i32_indexed = 6801,
+  SQRDMULHv2i32 = 6802,
+  SQRDMULHv2i32_indexed = 6803,
+  SQRDMULHv4i16 = 6804,
+  SQRDMULHv4i16_indexed = 6805,
+  SQRDMULHv4i32 = 6806,
+  SQRDMULHv4i32_indexed = 6807,
+  SQRDMULHv8i16 = 6808,
+  SQRDMULHv8i16_indexed = 6809,
+  SQRSHLR_ZPmZ_B = 6810,
+  SQRSHLR_ZPmZ_D = 6811,
+  SQRSHLR_ZPmZ_H = 6812,
+  SQRSHLR_ZPmZ_S = 6813,
+  SQRSHL_ZPmZ_B = 6814,
+  SQRSHL_ZPmZ_D = 6815,
+  SQRSHL_ZPmZ_H = 6816,
+  SQRSHL_ZPmZ_S = 6817,
+  SQRSHLv16i8 = 6818,
+  SQRSHLv1i16 = 6819,
+  SQRSHLv1i32 = 6820,
+  SQRSHLv1i64 = 6821,
+  SQRSHLv1i8 = 6822,
+  SQRSHLv2i32 = 6823,
+  SQRSHLv2i64 = 6824,
+  SQRSHLv4i16 = 6825,
+  SQRSHLv4i32 = 6826,
+  SQRSHLv8i16 = 6827,
+  SQRSHLv8i8 = 6828,
+  SQRSHRNB_ZZI_B = 6829,
+  SQRSHRNB_ZZI_H = 6830,
+  SQRSHRNB_ZZI_S = 6831,
+  SQRSHRNT_ZZI_B = 6832,
+  SQRSHRNT_ZZI_H = 6833,
+  SQRSHRNT_ZZI_S = 6834,
+  SQRSHRN_VG4_Z4ZI_B = 6835,
+  SQRSHRN_VG4_Z4ZI_H = 6836,
+  SQRSHRN_Z2ZI_HtoB = 6837,
+  SQRSHRN_Z2ZI_StoH = 6838,
+  SQRSHRNb = 6839,
+  SQRSHRNh = 6840,
+  SQRSHRNs = 6841,
+  SQRSHRNv16i8_shift = 6842,
+  SQRSHRNv2i32_shift = 6843,
+  SQRSHRNv4i16_shift = 6844,
+  SQRSHRNv4i32_shift = 6845,
+  SQRSHRNv8i16_shift = 6846,
+  SQRSHRNv8i8_shift = 6847,
+  SQRSHRUNB_ZZI_B = 6848,
+  SQRSHRUNB_ZZI_H = 6849,
+  SQRSHRUNB_ZZI_S = 6850,
+  SQRSHRUNT_ZZI_B = 6851,
+  SQRSHRUNT_ZZI_H = 6852,
+  SQRSHRUNT_ZZI_S = 6853,
+  SQRSHRUN_VG4_Z4ZI_B = 6854,
+  SQRSHRUN_VG4_Z4ZI_H = 6855,
+  SQRSHRUN_Z2ZI_HtoB = 6856,
+  SQRSHRUN_Z2ZI_StoH = 6857,
+  SQRSHRUNb = 6858,
+  SQRSHRUNh = 6859,
+  SQRSHRUNs = 6860,
+  SQRSHRUNv16i8_shift = 6861,
+  SQRSHRUNv2i32_shift = 6862,
+  SQRSHRUNv4i16_shift = 6863,
+  SQRSHRUNv4i32_shift = 6864,
+  SQRSHRUNv8i16_shift = 6865,
+  SQRSHRUNv8i8_shift = 6866,
+  SQRSHRU_VG2_Z2ZI_H = 6867,
+  SQRSHRU_VG4_Z4ZI_B = 6868,
+  SQRSHRU_VG4_Z4ZI_H = 6869,
+  SQRSHR_VG2_Z2ZI_H = 6870,
+  SQRSHR_VG4_Z4ZI_B = 6871,
+  SQRSHR_VG4_Z4ZI_H = 6872,
+  SQSHLR_ZPmZ_B = 6873,
+  SQSHLR_ZPmZ_D = 6874,
+  SQSHLR_ZPmZ_H = 6875,
+  SQSHLR_ZPmZ_S = 6876,
+  SQSHLU_ZPmI_B = 6877,
+  SQSHLU_ZPmI_D = 6878,
+  SQSHLU_ZPmI_H = 6879,
+  SQSHLU_ZPmI_S = 6880,
+  SQSHLUb = 6881,
+  SQSHLUd = 6882,
+  SQSHLUh = 6883,
+  SQSHLUs = 6884,
+  SQSHLUv16i8_shift = 6885,
+  SQSHLUv2i32_shift = 6886,
+  SQSHLUv2i64_shift = 6887,
+  SQSHLUv4i16_shift = 6888,
+  SQSHLUv4i32_shift = 6889,
+  SQSHLUv8i16_shift = 6890,
+  SQSHLUv8i8_shift = 6891,
+  SQSHL_ZPmI_B = 6892,
+  SQSHL_ZPmI_D = 6893,
+  SQSHL_ZPmI_H = 6894,
+  SQSHL_ZPmI_S = 6895,
+  SQSHL_ZPmZ_B = 6896,
+  SQSHL_ZPmZ_D = 6897,
+  SQSHL_ZPmZ_H = 6898,
+  SQSHL_ZPmZ_S = 6899,
+  SQSHLb = 6900,
+  SQSHLd = 6901,
+  SQSHLh = 6902,
+  SQSHLs = 6903,
+  SQSHLv16i8 = 6904,
+  SQSHLv16i8_shift = 6905,
+  SQSHLv1i16 = 6906,
+  SQSHLv1i32 = 6907,
+  SQSHLv1i64 = 6908,
+  SQSHLv1i8 = 6909,
+  SQSHLv2i32 = 6910,
+  SQSHLv2i32_shift = 6911,
+  SQSHLv2i64 = 6912,
+  SQSHLv2i64_shift = 6913,
+  SQSHLv4i16 = 6914,
+  SQSHLv4i16_shift = 6915,
+  SQSHLv4i32 = 6916,
+  SQSHLv4i32_shift = 6917,
+  SQSHLv8i16 = 6918,
+  SQSHLv8i16_shift = 6919,
+  SQSHLv8i8 = 6920,
+  SQSHLv8i8_shift = 6921,
+  SQSHRNB_ZZI_B = 6922,
+  SQSHRNB_ZZI_H = 6923,
+  SQSHRNB_ZZI_S = 6924,
+  SQSHRNT_ZZI_B = 6925,
+  SQSHRNT_ZZI_H = 6926,
+  SQSHRNT_ZZI_S = 6927,
+  SQSHRN_Z2ZI_HtoB = 6928,
+  SQSHRN_Z2ZI_StoH = 6929,
+  SQSHRNb = 6930,
+  SQSHRNh = 6931,
+  SQSHRNs = 6932,
+  SQSHRNv16i8_shift = 6933,
+  SQSHRNv2i32_shift = 6934,
+  SQSHRNv4i16_shift = 6935,
+  SQSHRNv4i32_shift = 6936,
+  SQSHRNv8i16_shift = 6937,
+  SQSHRNv8i8_shift = 6938,
+  SQSHRUNB_ZZI_B = 6939,
+  SQSHRUNB_ZZI_H = 6940,
+  SQSHRUNB_ZZI_S = 6941,
+  SQSHRUNT_ZZI_B = 6942,
+  SQSHRUNT_ZZI_H = 6943,
+  SQSHRUNT_ZZI_S = 6944,
+  SQSHRUN_Z2ZI_HtoB = 6945,
+  SQSHRUN_Z2ZI_StoH = 6946,
+  SQSHRUNb = 6947,
+  SQSHRUNh = 6948,
+  SQSHRUNs = 6949,
+  SQSHRUNv16i8_shift = 6950,
+  SQSHRUNv2i32_shift = 6951,
+  SQSHRUNv4i16_shift = 6952,
+  SQSHRUNv4i32_shift = 6953,
+  SQSHRUNv8i16_shift = 6954,
+  SQSHRUNv8i8_shift = 6955,
+  SQSUBR_ZPmZ_B = 6956,
+  SQSUBR_ZPmZ_D = 6957,
+  SQSUBR_ZPmZ_H = 6958,
+  SQSUBR_ZPmZ_S = 6959,
+  SQSUB_ZI_B = 6960,
+  SQSUB_ZI_D = 6961,
+  SQSUB_ZI_H = 6962,
+  SQSUB_ZI_S = 6963,
+  SQSUB_ZPmZ_B = 6964,
+  SQSUB_ZPmZ_D = 6965,
+  SQSUB_ZPmZ_H = 6966,
+  SQSUB_ZPmZ_S = 6967,
+  SQSUB_ZZZ_B = 6968,
+  SQSUB_ZZZ_D = 6969,
+  SQSUB_ZZZ_H = 6970,
+  SQSUB_ZZZ_S = 6971,
+  SQSUBv16i8 = 6972,
+  SQSUBv1i16 = 6973,
+  SQSUBv1i32 = 6974,
+  SQSUBv1i64 = 6975,
+  SQSUBv1i8 = 6976,
+  SQSUBv2i32 = 6977,
+  SQSUBv2i64 = 6978,
+  SQSUBv4i16 = 6979,
+  SQSUBv4i32 = 6980,
+  SQSUBv8i16 = 6981,
+  SQSUBv8i8 = 6982,
+  SQXTNB_ZZ_B = 6983,
+  SQXTNB_ZZ_H = 6984,
+  SQXTNB_ZZ_S = 6985,
+  SQXTNT_ZZ_B = 6986,
+  SQXTNT_ZZ_H = 6987,
+  SQXTNT_ZZ_S = 6988,
+  SQXTNv16i8 = 6989,
+  SQXTNv1i16 = 6990,
+  SQXTNv1i32 = 6991,
+  SQXTNv1i8 = 6992,
+  SQXTNv2i32 = 6993,
+  SQXTNv4i16 = 6994,
+  SQXTNv4i32 = 6995,
+  SQXTNv8i16 = 6996,
+  SQXTNv8i8 = 6997,
+  SQXTUNB_ZZ_B = 6998,
+  SQXTUNB_ZZ_H = 6999,
+  SQXTUNB_ZZ_S = 7000,
+  SQXTUNT_ZZ_B = 7001,
+  SQXTUNT_ZZ_H = 7002,
+  SQXTUNT_ZZ_S = 7003,
+  SQXTUNv16i8 = 7004,
+  SQXTUNv1i16 = 7005,
+  SQXTUNv1i32 = 7006,
+  SQXTUNv1i8 = 7007,
+  SQXTUNv2i32 = 7008,
+  SQXTUNv4i16 = 7009,
+  SQXTUNv4i32 = 7010,
+  SQXTUNv8i16 = 7011,
+  SQXTUNv8i8 = 7012,
+  SRHADD_ZPmZ_B = 7013,
+  SRHADD_ZPmZ_D = 7014,
+  SRHADD_ZPmZ_H = 7015,
+  SRHADD_ZPmZ_S = 7016,
+  SRHADDv16i8 = 7017,
+  SRHADDv2i32 = 7018,
+  SRHADDv4i16 = 7019,
+  SRHADDv4i32 = 7020,
+  SRHADDv8i16 = 7021,
+  SRHADDv8i8 = 7022,
+  SRI_ZZI_B = 7023,
+  SRI_ZZI_D = 7024,
+  SRI_ZZI_H = 7025,
+  SRI_ZZI_S = 7026,
+  SRId = 7027,
+  SRIv16i8_shift = 7028,
+  SRIv2i32_shift = 7029,
+  SRIv2i64_shift = 7030,
+  SRIv4i16_shift = 7031,
+  SRIv4i32_shift = 7032,
+  SRIv8i16_shift = 7033,
+  SRIv8i8_shift = 7034,
+  SRSHLR_ZPmZ_B = 7035,
+  SRSHLR_ZPmZ_D = 7036,
+  SRSHLR_ZPmZ_H = 7037,
+  SRSHLR_ZPmZ_S = 7038,
+  SRSHL_VG2_2Z2Z_B = 7039,
+  SRSHL_VG2_2Z2Z_D = 7040,
+  SRSHL_VG2_2Z2Z_H = 7041,
+  SRSHL_VG2_2Z2Z_S = 7042,
+  SRSHL_VG2_2ZZ_B = 7043,
+  SRSHL_VG2_2ZZ_D = 7044,
+  SRSHL_VG2_2ZZ_H = 7045,
+  SRSHL_VG2_2ZZ_S = 7046,
+  SRSHL_VG4_4Z4Z_B = 7047,
+  SRSHL_VG4_4Z4Z_D = 7048,
+  SRSHL_VG4_4Z4Z_H = 7049,
+  SRSHL_VG4_4Z4Z_S = 7050,
+  SRSHL_VG4_4ZZ_B = 7051,
+  SRSHL_VG4_4ZZ_D = 7052,
+  SRSHL_VG4_4ZZ_H = 7053,
+  SRSHL_VG4_4ZZ_S = 7054,
+  SRSHL_ZPmZ_B = 7055,
+  SRSHL_ZPmZ_D = 7056,
+  SRSHL_ZPmZ_H = 7057,
+  SRSHL_ZPmZ_S = 7058,
+  SRSHLv16i8 = 7059,
+  SRSHLv1i64 = 7060,
+  SRSHLv2i32 = 7061,
+  SRSHLv2i64 = 7062,
+  SRSHLv4i16 = 7063,
+  SRSHLv4i32 = 7064,
+  SRSHLv8i16 = 7065,
+  SRSHLv8i8 = 7066,
+  SRSHR_ZPmI_B = 7067,
+  SRSHR_ZPmI_D = 7068,
+  SRSHR_ZPmI_H = 7069,
+  SRSHR_ZPmI_S = 7070,
+  SRSHRd = 7071,
+  SRSHRv16i8_shift = 7072,
+  SRSHRv2i32_shift = 7073,
+  SRSHRv2i64_shift = 7074,
+  SRSHRv4i16_shift = 7075,
+  SRSHRv4i32_shift = 7076,
+  SRSHRv8i16_shift = 7077,
+  SRSHRv8i8_shift = 7078,
+  SRSRA_ZZI_B = 7079,
+  SRSRA_ZZI_D = 7080,
+  SRSRA_ZZI_H = 7081,
+  SRSRA_ZZI_S = 7082,
+  SRSRAd = 7083,
+  SRSRAv16i8_shift = 7084,
+  SRSRAv2i32_shift = 7085,
+  SRSRAv2i64_shift = 7086,
+  SRSRAv4i16_shift = 7087,
+  SRSRAv4i32_shift = 7088,
+  SRSRAv8i16_shift = 7089,
+  SRSRAv8i8_shift = 7090,
+  SSHLLB_ZZI_D = 7091,
+  SSHLLB_ZZI_H = 7092,
+  SSHLLB_ZZI_S = 7093,
+  SSHLLT_ZZI_D = 7094,
+  SSHLLT_ZZI_H = 7095,
+  SSHLLT_ZZI_S = 7096,
+  SSHLLv16i8_shift = 7097,
+  SSHLLv2i32_shift = 7098,
+  SSHLLv4i16_shift = 7099,
+  SSHLLv4i32_shift = 7100,
+  SSHLLv8i16_shift = 7101,
+  SSHLLv8i8_shift = 7102,
+  SSHLv16i8 = 7103,
+  SSHLv1i64 = 7104,
+  SSHLv2i32 = 7105,
+  SSHLv2i64 = 7106,
+  SSHLv4i16 = 7107,
+  SSHLv4i32 = 7108,
+  SSHLv8i16 = 7109,
+  SSHLv8i8 = 7110,
+  SSHRd = 7111,
+  SSHRv16i8_shift = 7112,
+  SSHRv2i32_shift = 7113,
+  SSHRv2i64_shift = 7114,
+  SSHRv4i16_shift = 7115,
+  SSHRv4i32_shift = 7116,
+  SSHRv8i16_shift = 7117,
+  SSHRv8i8_shift = 7118,
+  SSRA_ZZI_B = 7119,
+  SSRA_ZZI_D = 7120,
+  SSRA_ZZI_H = 7121,
+  SSRA_ZZI_S = 7122,
+  SSRAd = 7123,
+  SSRAv16i8_shift = 7124,
+  SSRAv2i32_shift = 7125,
+  SSRAv2i64_shift = 7126,
+  SSRAv4i16_shift = 7127,
+  SSRAv4i32_shift = 7128,
+  SSRAv8i16_shift = 7129,
+  SSRAv8i8_shift = 7130,
+  SST1B_D = 7131,
+  SST1B_D_IMM = 7132,
+  SST1B_D_SXTW = 7133,
+  SST1B_D_UXTW = 7134,
+  SST1B_S_IMM = 7135,
+  SST1B_S_SXTW = 7136,
+  SST1B_S_UXTW = 7137,
+  SST1D = 7138,
+  SST1D_IMM = 7139,
+  SST1D_SCALED = 7140,
+  SST1D_SXTW = 7141,
+  SST1D_SXTW_SCALED = 7142,
+  SST1D_UXTW = 7143,
+  SST1D_UXTW_SCALED = 7144,
+  SST1H_D = 7145,
+  SST1H_D_IMM = 7146,
+  SST1H_D_SCALED = 7147,
+  SST1H_D_SXTW = 7148,
+  SST1H_D_SXTW_SCALED = 7149,
+  SST1H_D_UXTW = 7150,
+  SST1H_D_UXTW_SCALED = 7151,
+  SST1H_S_IMM = 7152,
+  SST1H_S_SXTW = 7153,
+  SST1H_S_SXTW_SCALED = 7154,
+  SST1H_S_UXTW = 7155,
+  SST1H_S_UXTW_SCALED = 7156,
+  SST1Q = 7157,
+  SST1W_D = 7158,
+  SST1W_D_IMM = 7159,
+  SST1W_D_SCALED = 7160,
+  SST1W_D_SXTW = 7161,
+  SST1W_D_SXTW_SCALED = 7162,
+  SST1W_D_UXTW = 7163,
+  SST1W_D_UXTW_SCALED = 7164,
+  SST1W_IMM = 7165,
+  SST1W_SXTW = 7166,
+  SST1W_SXTW_SCALED = 7167,
+  SST1W_UXTW = 7168,
+  SST1W_UXTW_SCALED = 7169,
+  SSUBLBT_ZZZ_D = 7170,
+  SSUBLBT_ZZZ_H = 7171,
+  SSUBLBT_ZZZ_S = 7172,
+  SSUBLB_ZZZ_D = 7173,
+  SSUBLB_ZZZ_H = 7174,
+  SSUBLB_ZZZ_S = 7175,
+  SSUBLTB_ZZZ_D = 7176,
+  SSUBLTB_ZZZ_H = 7177,
+  SSUBLTB_ZZZ_S = 7178,
+  SSUBLT_ZZZ_D = 7179,
+  SSUBLT_ZZZ_H = 7180,
+  SSUBLT_ZZZ_S = 7181,
+  SSUBLv16i8_v8i16 = 7182,
+  SSUBLv2i32_v2i64 = 7183,
+  SSUBLv4i16_v4i32 = 7184,
+  SSUBLv4i32_v2i64 = 7185,
+  SSUBLv8i16_v4i32 = 7186,
+  SSUBLv8i8_v8i16 = 7187,
+  SSUBWB_ZZZ_D = 7188,
+  SSUBWB_ZZZ_H = 7189,
+  SSUBWB_ZZZ_S = 7190,
+  SSUBWT_ZZZ_D = 7191,
+  SSUBWT_ZZZ_H = 7192,
+  SSUBWT_ZZZ_S = 7193,
+  SSUBWv16i8_v8i16 = 7194,
+  SSUBWv2i32_v2i64 = 7195,
+  SSUBWv4i16_v4i32 = 7196,
+  SSUBWv4i32_v2i64 = 7197,
+  SSUBWv8i16_v4i32 = 7198,
+  SSUBWv8i8_v8i16 = 7199,
+  ST1B = 7200,
+  ST1B_2Z = 7201,
+  ST1B_2Z_IMM = 7202,
+  ST1B_2Z_STRIDED = 7203,
+  ST1B_2Z_STRIDED_IMM = 7204,
+  ST1B_4Z = 7205,
+  ST1B_4Z_IMM = 7206,
+  ST1B_4Z_STRIDED = 7207,
+  ST1B_4Z_STRIDED_IMM = 7208,
+  ST1B_D = 7209,
+  ST1B_D_IMM = 7210,
+  ST1B_H = 7211,
+  ST1B_H_IMM = 7212,
+  ST1B_IMM = 7213,
+  ST1B_S = 7214,
+  ST1B_S_IMM = 7215,
+  ST1D = 7216,
+  ST1D_2Z = 7217,
+  ST1D_2Z_IMM = 7218,
+  ST1D_2Z_STRIDED = 7219,
+  ST1D_2Z_STRIDED_IMM = 7220,
+  ST1D_4Z = 7221,
+  ST1D_4Z_IMM = 7222,
+  ST1D_4Z_STRIDED = 7223,
+  ST1D_4Z_STRIDED_IMM = 7224,
+  ST1D_IMM = 7225,
+  ST1D_Q = 7226,
+  ST1D_Q_IMM = 7227,
+  ST1Fourv16b = 7228,
+  ST1Fourv16b_POST = 7229,
+  ST1Fourv1d = 7230,
+  ST1Fourv1d_POST = 7231,
+  ST1Fourv2d = 7232,
+  ST1Fourv2d_POST = 7233,
+  ST1Fourv2s = 7234,
+  ST1Fourv2s_POST = 7235,
+  ST1Fourv4h = 7236,
+  ST1Fourv4h_POST = 7237,
+  ST1Fourv4s = 7238,
+  ST1Fourv4s_POST = 7239,
+  ST1Fourv8b = 7240,
+  ST1Fourv8b_POST = 7241,
+  ST1Fourv8h = 7242,
+  ST1Fourv8h_POST = 7243,
+  ST1H = 7244,
+  ST1H_2Z = 7245,
+  ST1H_2Z_IMM = 7246,
+  ST1H_2Z_STRIDED = 7247,
+  ST1H_2Z_STRIDED_IMM = 7248,
+  ST1H_4Z = 7249,
+  ST1H_4Z_IMM = 7250,
+  ST1H_4Z_STRIDED = 7251,
+  ST1H_4Z_STRIDED_IMM = 7252,
+  ST1H_D = 7253,
+  ST1H_D_IMM = 7254,
+  ST1H_IMM = 7255,
+  ST1H_S = 7256,
+  ST1H_S_IMM = 7257,
+  ST1Onev16b = 7258,
+  ST1Onev16b_POST = 7259,
+  ST1Onev1d = 7260,
+  ST1Onev1d_POST = 7261,
+  ST1Onev2d = 7262,
+  ST1Onev2d_POST = 7263,
+  ST1Onev2s = 7264,
+  ST1Onev2s_POST = 7265,
+  ST1Onev4h = 7266,
+  ST1Onev4h_POST = 7267,
+  ST1Onev4s = 7268,
+  ST1Onev4s_POST = 7269,
+  ST1Onev8b = 7270,
+  ST1Onev8b_POST = 7271,
+  ST1Onev8h = 7272,
+  ST1Onev8h_POST = 7273,
+  ST1Threev16b = 7274,
+  ST1Threev16b_POST = 7275,
+  ST1Threev1d = 7276,
+  ST1Threev1d_POST = 7277,
+  ST1Threev2d = 7278,
+  ST1Threev2d_POST = 7279,
+  ST1Threev2s = 7280,
+  ST1Threev2s_POST = 7281,
+  ST1Threev4h = 7282,
+  ST1Threev4h_POST = 7283,
+  ST1Threev4s = 7284,
+  ST1Threev4s_POST = 7285,
+  ST1Threev8b = 7286,
+  ST1Threev8b_POST = 7287,
+  ST1Threev8h = 7288,
+  ST1Threev8h_POST = 7289,
+  ST1Twov16b = 7290,
+  ST1Twov16b_POST = 7291,
+  ST1Twov1d = 7292,
+  ST1Twov1d_POST = 7293,
+  ST1Twov2d = 7294,
+  ST1Twov2d_POST = 7295,
+  ST1Twov2s = 7296,
+  ST1Twov2s_POST = 7297,
+  ST1Twov4h = 7298,
+  ST1Twov4h_POST = 7299,
+  ST1Twov4s = 7300,
+  ST1Twov4s_POST = 7301,
+  ST1Twov8b = 7302,
+  ST1Twov8b_POST = 7303,
+  ST1Twov8h = 7304,
+  ST1Twov8h_POST = 7305,
+  ST1W = 7306,
+  ST1W_2Z = 7307,
+  ST1W_2Z_IMM = 7308,
+  ST1W_2Z_STRIDED = 7309,
+  ST1W_2Z_STRIDED_IMM = 7310,
+  ST1W_4Z = 7311,
+  ST1W_4Z_IMM = 7312,
+  ST1W_4Z_STRIDED = 7313,
+  ST1W_4Z_STRIDED_IMM = 7314,
+  ST1W_D = 7315,
+  ST1W_D_IMM = 7316,
+  ST1W_IMM = 7317,
+  ST1W_Q = 7318,
+  ST1W_Q_IMM = 7319,
+  ST1_MXIPXX_H_B = 7320,
+  ST1_MXIPXX_H_D = 7321,
+  ST1_MXIPXX_H_H = 7322,
+  ST1_MXIPXX_H_Q = 7323,
+  ST1_MXIPXX_H_S = 7324,
+  ST1_MXIPXX_V_B = 7325,
+  ST1_MXIPXX_V_D = 7326,
+  ST1_MXIPXX_V_H = 7327,
+  ST1_MXIPXX_V_Q = 7328,
+  ST1_MXIPXX_V_S = 7329,
+  ST1i16 = 7330,
+  ST1i16_POST = 7331,
+  ST1i32 = 7332,
+  ST1i32_POST = 7333,
+  ST1i64 = 7334,
+  ST1i64_POST = 7335,
+  ST1i8 = 7336,
+  ST1i8_POST = 7337,
+  ST2B = 7338,
+  ST2B_IMM = 7339,
+  ST2D = 7340,
+  ST2D_IMM = 7341,
+  ST2GPostIndex = 7342,
+  ST2GPreIndex = 7343,
+  ST2Gi = 7344,
+  ST2H = 7345,
+  ST2H_IMM = 7346,
+  ST2Q = 7347,
+  ST2Q_IMM = 7348,
+  ST2Twov16b = 7349,
+  ST2Twov16b_POST = 7350,
+  ST2Twov2d = 7351,
+  ST2Twov2d_POST = 7352,
+  ST2Twov2s = 7353,
+  ST2Twov2s_POST = 7354,
+  ST2Twov4h = 7355,
+  ST2Twov4h_POST = 7356,
+  ST2Twov4s = 7357,
+  ST2Twov4s_POST = 7358,
+  ST2Twov8b = 7359,
+  ST2Twov8b_POST = 7360,
+  ST2Twov8h = 7361,
+  ST2Twov8h_POST = 7362,
+  ST2W = 7363,
+  ST2W_IMM = 7364,
+  ST2i16 = 7365,
+  ST2i16_POST = 7366,
+  ST2i32 = 7367,
+  ST2i32_POST = 7368,
+  ST2i64 = 7369,
+  ST2i64_POST = 7370,
+  ST2i8 = 7371,
+  ST2i8_POST = 7372,
+  ST3B = 7373,
+  ST3B_IMM = 7374,
+  ST3D = 7375,
+  ST3D_IMM = 7376,
+  ST3H = 7377,
+  ST3H_IMM = 7378,
+  ST3Q = 7379,
+  ST3Q_IMM = 7380,
+  ST3Threev16b = 7381,
+  ST3Threev16b_POST = 7382,
+  ST3Threev2d = 7383,
+  ST3Threev2d_POST = 7384,
+  ST3Threev2s = 7385,
+  ST3Threev2s_POST = 7386,
+  ST3Threev4h = 7387,
+  ST3Threev4h_POST = 7388,
+  ST3Threev4s = 7389,
+  ST3Threev4s_POST = 7390,
+  ST3Threev8b = 7391,
+  ST3Threev8b_POST = 7392,
+  ST3Threev8h = 7393,
+  ST3Threev8h_POST = 7394,
+  ST3W = 7395,
+  ST3W_IMM = 7396,
+  ST3i16 = 7397,
+  ST3i16_POST = 7398,
+  ST3i32 = 7399,
+  ST3i32_POST = 7400,
+  ST3i64 = 7401,
+  ST3i64_POST = 7402,
+  ST3i8 = 7403,
+  ST3i8_POST = 7404,
+  ST4B = 7405,
+  ST4B_IMM = 7406,
+  ST4D = 7407,
+  ST4D_IMM = 7408,
+  ST4Fourv16b = 7409,
+  ST4Fourv16b_POST = 7410,
+  ST4Fourv2d = 7411,
+  ST4Fourv2d_POST = 7412,
+  ST4Fourv2s = 7413,
+  ST4Fourv2s_POST = 7414,
+  ST4Fourv4h = 7415,
+  ST4Fourv4h_POST = 7416,
+  ST4Fourv4s = 7417,
+  ST4Fourv4s_POST = 7418,
+  ST4Fourv8b = 7419,
+  ST4Fourv8b_POST = 7420,
+  ST4Fourv8h = 7421,
+  ST4Fourv8h_POST = 7422,
+  ST4H = 7423,
+  ST4H_IMM = 7424,
+  ST4Q = 7425,
+  ST4Q_IMM = 7426,
+  ST4W = 7427,
+  ST4W_IMM = 7428,
+  ST4i16 = 7429,
+  ST4i16_POST = 7430,
+  ST4i32 = 7431,
+  ST4i32_POST = 7432,
+  ST4i64 = 7433,
+  ST4i64_POST = 7434,
+  ST4i8 = 7435,
+  ST4i8_POST = 7436,
+  ST64B = 7437,
+  ST64BV = 7438,
+  ST64BV0 = 7439,
+  STBFADD = 7440,
+  STBFADDL = 7441,
+  STBFMAX = 7442,
+  STBFMAXL = 7443,
+  STBFMAXNM = 7444,
+  STBFMAXNML = 7445,
+  STBFMIN = 7446,
+  STBFMINL = 7447,
+  STBFMINNM = 7448,
+  STBFMINNML = 7449,
+  STCPH = 7450,
+  STFADDD = 7451,
+  STFADDH = 7452,
+  STFADDLD = 7453,
+  STFADDLH = 7454,
+  STFADDLS = 7455,
+  STFADDS = 7456,
+  STFMAXD = 7457,
+  STFMAXH = 7458,
+  STFMAXLD = 7459,
+  STFMAXLH = 7460,
+  STFMAXLS = 7461,
+  STFMAXNMD = 7462,
+  STFMAXNMH = 7463,
+  STFMAXNMLD = 7464,
+  STFMAXNMLH = 7465,
+  STFMAXNMLS = 7466,
+  STFMAXNMS = 7467,
+  STFMAXS = 7468,
+  STFMIND = 7469,
+  STFMINH = 7470,
+  STFMINLD = 7471,
+  STFMINLH = 7472,
+  STFMINLS = 7473,
+  STFMINNMD = 7474,
+  STFMINNMH = 7475,
+  STFMINNMLD = 7476,
+  STFMINNMLH = 7477,
+  STFMINNMLS = 7478,
+  STFMINNMS = 7479,
+  STFMINS = 7480,
+  STGM = 7481,
+  STGPi = 7482,
+  STGPostIndex = 7483,
+  STGPpost = 7484,
+  STGPpre = 7485,
+  STGPreIndex = 7486,
+  STGi = 7487,
+  STILPW = 7488,
+  STILPWpre = 7489,
+  STILPX = 7490,
+  STILPXpre = 7491,
+  STL1 = 7492,
+  STLLRB = 7493,
+  STLLRH = 7494,
+  STLLRW = 7495,
+  STLLRX = 7496,
+  STLPi = 7497,
+  STLRB = 7498,
+  STLRH = 7499,
+  STLRW = 7500,
+  STLRWpre = 7501,
+  STLRX = 7502,
+  STLRXpre = 7503,
+  STLTXRW = 7504,
+  STLTXRX = 7505,
+  STLURBi = 7506,
+  STLURHi = 7507,
+  STLURWi = 7508,
+  STLURXi = 7509,
+  STLURbi = 7510,
+  STLURdi = 7511,
+  STLURhi = 7512,
+  STLURqi = 7513,
+  STLURsi = 7514,
+  STLXPW = 7515,
+  STLXPX = 7516,
+  STLXRB = 7517,
+  STLXRH = 7518,
+  STLXRW = 7519,
+  STLXRX = 7520,
+  STMOPA_M2ZZZI_BtoS = 7521,
+  STMOPA_M2ZZZI_HtoS = 7522,
+  STNPDi = 7523,
+  STNPQi = 7524,
+  STNPSi = 7525,
+  STNPWi = 7526,
+  STNPXi = 7527,
+  STNT1B_2Z = 7528,
+  STNT1B_2Z_IMM = 7529,
+  STNT1B_2Z_STRIDED = 7530,
+  STNT1B_2Z_STRIDED_IMM = 7531,
+  STNT1B_4Z = 7532,
+  STNT1B_4Z_IMM = 7533,
+  STNT1B_4Z_STRIDED = 7534,
+  STNT1B_4Z_STRIDED_IMM = 7535,
+  STNT1B_ZRI = 7536,
+  STNT1B_ZRR = 7537,
+  STNT1B_ZZR_D = 7538,
+  STNT1B_ZZR_S = 7539,
+  STNT1D_2Z = 7540,
+  STNT1D_2Z_IMM = 7541,
+  STNT1D_2Z_STRIDED = 7542,
+  STNT1D_2Z_STRIDED_IMM = 7543,
+  STNT1D_4Z = 7544,
+  STNT1D_4Z_IMM = 7545,
+  STNT1D_4Z_STRIDED = 7546,
+  STNT1D_4Z_STRIDED_IMM = 7547,
+  STNT1D_ZRI = 7548,
+  STNT1D_ZRR = 7549,
+  STNT1D_ZZR_D = 7550,
+  STNT1H_2Z = 7551,
+  STNT1H_2Z_IMM = 7552,
+  STNT1H_2Z_STRIDED = 7553,
+  STNT1H_2Z_STRIDED_IMM = 7554,
+  STNT1H_4Z = 7555,
+  STNT1H_4Z_IMM = 7556,
+  STNT1H_4Z_STRIDED = 7557,
+  STNT1H_4Z_STRIDED_IMM = 7558,
+  STNT1H_ZRI = 7559,
+  STNT1H_ZRR = 7560,
+  STNT1H_ZZR_D = 7561,
+  STNT1H_ZZR_S = 7562,
+  STNT1W_2Z = 7563,
+  STNT1W_2Z_IMM = 7564,
+  STNT1W_2Z_STRIDED = 7565,
+  STNT1W_2Z_STRIDED_IMM = 7566,
+  STNT1W_4Z = 7567,
+  STNT1W_4Z_IMM = 7568,
+  STNT1W_4Z_STRIDED = 7569,
+  STNT1W_4Z_STRIDED_IMM = 7570,
+  STNT1W_ZRI = 7571,
+  STNT1W_ZRR = 7572,
+  STNT1W_ZZR_D = 7573,
+  STNT1W_ZZR_S = 7574,
+  STPDi = 7575,
+  STPDpost = 7576,
+  STPDpre = 7577,
+  STPQi = 7578,
+  STPQpost = 7579,
+  STPQpre = 7580,
+  STPSi = 7581,
+  STPSpost = 7582,
+  STPSpre = 7583,
+  STPWi = 7584,
+  STPWpost = 7585,
+  STPWpre = 7586,
+  STPXi = 7587,
+  STPXpost = 7588,
+  STPXpre = 7589,
+  STRBBpost = 7590,
+  STRBBpre = 7591,
+  STRBBroW = 7592,
+  STRBBroX = 7593,
+  STRBBui = 7594,
+  STRBpost = 7595,
+  STRBpre = 7596,
+  STRBroW = 7597,
+  STRBroX = 7598,
+  STRBui = 7599,
+  STRDpost = 7600,
+  STRDpre = 7601,
+  STRDroW = 7602,
+  STRDroX = 7603,
+  STRDui = 7604,
+  STRHHpost = 7605,
+  STRHHpre = 7606,
+  STRHHroW = 7607,
+  STRHHroX = 7608,
+  STRHHui = 7609,
+  STRHpost = 7610,
+  STRHpre = 7611,
+  STRHroW = 7612,
+  STRHroX = 7613,
+  STRHui = 7614,
+  STRQpost = 7615,
+  STRQpre = 7616,
+  STRQroW = 7617,
+  STRQroX = 7618,
+  STRQui = 7619,
+  STRSpost = 7620,
+  STRSpre = 7621,
+  STRSroW = 7622,
+  STRSroX = 7623,
+  STRSui = 7624,
+  STRWpost = 7625,
+  STRWpre = 7626,
+  STRWroW = 7627,
+  STRWroX = 7628,
+  STRWui = 7629,
+  STRXpost = 7630,
+  STRXpre = 7631,
+  STRXroW = 7632,
+  STRXroX = 7633,
+  STRXui = 7634,
+  STR_PXI = 7635,
+  STR_TX = 7636,
+  STR_ZA = 7637,
+  STR_ZXI = 7638,
+  STSHH = 7639,
+  STTNPQi = 7640,
+  STTNPXi = 7641,
+  STTPQi = 7642,
+  STTPQpost = 7643,
+  STTPQpre = 7644,
+  STTPi = 7645,
+  STTPpost = 7646,
+  STTPpre = 7647,
+  STTRBi = 7648,
+  STTRHi = 7649,
+  STTRWi = 7650,
+  STTRXi = 7651,
+  STTXRWr = 7652,
+  STTXRXr = 7653,
+  STURBBi = 7654,
+  STURBi = 7655,
+  STURDi = 7656,
+  STURHHi = 7657,
+  STURHi = 7658,
+  STURQi = 7659,
+  STURSi = 7660,
+  STURWi = 7661,
+  STURXi = 7662,
+  STXPW = 7663,
+  STXPX = 7664,
+  STXRB = 7665,
+  STXRH = 7666,
+  STXRW = 7667,
+  STXRX = 7668,
+  STZ2GPostIndex = 7669,
+  STZ2GPreIndex = 7670,
+  STZ2Gi = 7671,
+  STZGM = 7672,
+  STZGPostIndex = 7673,
+  STZGPreIndex = 7674,
+  STZGi = 7675,
+  SUBG = 7676,
+  SUBHNB_ZZZ_B = 7677,
+  SUBHNB_ZZZ_H = 7678,
+  SUBHNB_ZZZ_S = 7679,
+  SUBHNT_ZZZ_B = 7680,
+  SUBHNT_ZZZ_H = 7681,
+  SUBHNT_ZZZ_S = 7682,
+  SUBHNv2i64_v2i32 = 7683,
+  SUBHNv2i64_v4i32 = 7684,
+  SUBHNv4i32_v4i16 = 7685,
+  SUBHNv4i32_v8i16 = 7686,
+  SUBHNv8i16_v16i8 = 7687,
+  SUBHNv8i16_v8i8 = 7688,
+  SUBP = 7689,
+  SUBPS = 7690,
+  SUBPT_shift = 7691,
+  SUBP_ZPmZZ_B = 7692,
+  SUBP_ZPmZZ_D = 7693,
+  SUBP_ZPmZZ_H = 7694,
+  SUBP_ZPmZZ_S = 7695,
+  SUBR_ZI_B = 7696,
+  SUBR_ZI_D = 7697,
+  SUBR_ZI_H = 7698,
+  SUBR_ZI_S = 7699,
+  SUBR_ZPmZ_B = 7700,
+  SUBR_ZPmZ_D = 7701,
+  SUBR_ZPmZ_H = 7702,
+  SUBR_ZPmZ_S = 7703,
+  SUBSWri = 7704,
+  SUBSWrs = 7705,
+  SUBSWrx = 7706,
+  SUBSXri = 7707,
+  SUBSXrs = 7708,
+  SUBSXrx = 7709,
+  SUBSXrx64 = 7710,
+  SUBWri = 7711,
+  SUBWrs = 7712,
+  SUBWrx = 7713,
+  SUBXri = 7714,
+  SUBXrs = 7715,
+  SUBXrx = 7716,
+  SUBXrx64 = 7717,
+  SUB_VG2_M2Z2Z_D = 7718,
+  SUB_VG2_M2Z2Z_S = 7719,
+  SUB_VG2_M2ZZ_D = 7720,
+  SUB_VG2_M2ZZ_S = 7721,
+  SUB_VG2_M2Z_D = 7722,
+  SUB_VG2_M2Z_S = 7723,
+  SUB_VG4_M4Z4Z_D = 7724,
+  SUB_VG4_M4Z4Z_S = 7725,
+  SUB_VG4_M4ZZ_D = 7726,
+  SUB_VG4_M4ZZ_S = 7727,
+  SUB_VG4_M4Z_D = 7728,
+  SUB_VG4_M4Z_S = 7729,
+  SUB_ZI_B = 7730,
+  SUB_ZI_D = 7731,
+  SUB_ZI_H = 7732,
+  SUB_ZI_S = 7733,
+  SUB_ZPmZ_B = 7734,
+  SUB_ZPmZ_CPA = 7735,
+  SUB_ZPmZ_D = 7736,
+  SUB_ZPmZ_H = 7737,
+  SUB_ZPmZ_S = 7738,
+  SUB_ZZZ_B = 7739,
+  SUB_ZZZ_CPA = 7740,
+  SUB_ZZZ_D = 7741,
+  SUB_ZZZ_H = 7742,
+  SUB_ZZZ_S = 7743,
+  SUBv16i8 = 7744,
+  SUBv1i64 = 7745,
+  SUBv2i32 = 7746,
+  SUBv2i64 = 7747,
+  SUBv4i16 = 7748,
+  SUBv4i32 = 7749,
+  SUBv8i16 = 7750,
+  SUBv8i8 = 7751,
+  SUDOT_VG2_M2ZZI_BToS = 7752,
+  SUDOT_VG2_M2ZZ_BToS = 7753,
+  SUDOT_VG4_M4ZZI_BToS = 7754,
+  SUDOT_VG4_M4ZZ_BToS = 7755,
+  SUDOT_ZZZI = 7756,
+  SUDOTlanev16i8 = 7757,
+  SUDOTlanev8i8 = 7758,
+  SUMLALL_MZZI_BtoS = 7759,
+  SUMLALL_VG2_M2ZZI_BtoS = 7760,
+  SUMLALL_VG2_M2ZZ_BtoS = 7761,
+  SUMLALL_VG4_M4ZZI_BtoS = 7762,
+  SUMLALL_VG4_M4ZZ_BtoS = 7763,
+  SUMOP4A_M2Z2Z_BToS = 7764,
+  SUMOP4A_M2Z2Z_HtoD = 7765,
+  SUMOP4A_M2ZZ_BToS = 7766,
+  SUMOP4A_M2ZZ_HtoD = 7767,
+  SUMOP4A_MZ2Z_BToS = 7768,
+  SUMOP4A_MZ2Z_HtoD = 7769,
+  SUMOP4A_MZZ_BToS = 7770,
+  SUMOP4A_MZZ_HtoD = 7771,
+  SUMOP4S_M2Z2Z_BToS = 7772,
+  SUMOP4S_M2Z2Z_HtoD = 7773,
+  SUMOP4S_M2ZZ_BToS = 7774,
+  SUMOP4S_M2ZZ_HtoD = 7775,
+  SUMOP4S_MZ2Z_BToS = 7776,
+  SUMOP4S_MZ2Z_HtoD = 7777,
+  SUMOP4S_MZZ_BToS = 7778,
+  SUMOP4S_MZZ_HtoD = 7779,
+  SUMOPA_MPPZZ_D = 7780,
+  SUMOPA_MPPZZ_S = 7781,
+  SUMOPS_MPPZZ_D = 7782,
+  SUMOPS_MPPZZ_S = 7783,
+  SUNPKHI_ZZ_D = 7784,
+  SUNPKHI_ZZ_H = 7785,
+  SUNPKHI_ZZ_S = 7786,
+  SUNPKLO_ZZ_D = 7787,
+  SUNPKLO_ZZ_H = 7788,
+  SUNPKLO_ZZ_S = 7789,
+  SUNPK_VG2_2ZZ_D = 7790,
+  SUNPK_VG2_2ZZ_H = 7791,
+  SUNPK_VG2_2ZZ_S = 7792,
+  SUNPK_VG4_4Z2Z_D = 7793,
+  SUNPK_VG4_4Z2Z_H = 7794,
+  SUNPK_VG4_4Z2Z_S = 7795,
+  SUQADD_ZPmZ_B = 7796,
+  SUQADD_ZPmZ_D = 7797,
+  SUQADD_ZPmZ_H = 7798,
+  SUQADD_ZPmZ_S = 7799,
+  SUQADDv16i8 = 7800,
+  SUQADDv1i16 = 7801,
+  SUQADDv1i32 = 7802,
+  SUQADDv1i64 = 7803,
+  SUQADDv1i8 = 7804,
+  SUQADDv2i32 = 7805,
+  SUQADDv2i64 = 7806,
+  SUQADDv4i16 = 7807,
+  SUQADDv4i32 = 7808,
+  SUQADDv8i16 = 7809,
+  SUQADDv8i8 = 7810,
+  SUTMOPA_M2ZZZI_BtoS = 7811,
+  SUVDOT_VG4_M4ZZI_BToS = 7812,
+  SVC = 7813,
+  SVDOT_VG2_M2ZZI_HtoS = 7814,
+  SVDOT_VG4_M4ZZI_BtoS = 7815,
+  SVDOT_VG4_M4ZZI_HtoD = 7816,
+  SWPAB = 7817,
+  SWPAH = 7818,
+  SWPALB = 7819,
+  SWPALH = 7820,
+  SWPALW = 7821,
+  SWPALX = 7822,
+  SWPAW = 7823,
+  SWPAX = 7824,
+  SWPB = 7825,
+  SWPH = 7826,
+  SWPLB = 7827,
+  SWPLH = 7828,
+  SWPLW = 7829,
+  SWPLX = 7830,
+  SWPP = 7831,
+  SWPPA = 7832,
+  SWPPAL = 7833,
+  SWPPL = 7834,
+  SWPTALW = 7835,
+  SWPTALX = 7836,
+  SWPTAW = 7837,
+  SWPTAX = 7838,
+  SWPTLW = 7839,
+  SWPTLX = 7840,
+  SWPTW = 7841,
+  SWPTX = 7842,
+  SWPW = 7843,
+  SWPX = 7844,
+  SXTB_ZPmZ_D = 7845,
+  SXTB_ZPmZ_H = 7846,
+  SXTB_ZPmZ_S = 7847,
+  SXTB_ZPzZ_D = 7848,
+  SXTB_ZPzZ_H = 7849,
+  SXTB_ZPzZ_S = 7850,
+  SXTH_ZPmZ_D = 7851,
+  SXTH_ZPmZ_S = 7852,
+  SXTH_ZPzZ_D = 7853,
+  SXTH_ZPzZ_S = 7854,
+  SXTW_ZPmZ_D = 7855,
+  SXTW_ZPzZ_D = 7856,
+  SYSLxt = 7857,
+  SYSPxt = 7858,
+  SYSPxt_XZR = 7859,
+  SYSxt = 7860,
+  TBLQ_ZZZ_B = 7861,
+  TBLQ_ZZZ_D = 7862,
+  TBLQ_ZZZ_H = 7863,
+  TBLQ_ZZZ_S = 7864,
+  TBL_ZZZZ_B = 7865,
+  TBL_ZZZZ_D = 7866,
+  TBL_ZZZZ_H = 7867,
+  TBL_ZZZZ_S = 7868,
+  TBL_ZZZ_B = 7869,
+  TBL_ZZZ_D = 7870,
+  TBL_ZZZ_H = 7871,
+  TBL_ZZZ_S = 7872,
+  TBLv16i8Four = 7873,
+  TBLv16i8One = 7874,
+  TBLv16i8Three = 7875,
+  TBLv16i8Two = 7876,
+  TBLv8i8Four = 7877,
+  TBLv8i8One = 7878,
+  TBLv8i8Three = 7879,
+  TBLv8i8Two = 7880,
+  TBNZW = 7881,
+  TBNZX = 7882,
+  TBXQ_ZZZ_B = 7883,
+  TBXQ_ZZZ_D = 7884,
+  TBXQ_ZZZ_H = 7885,
+  TBXQ_ZZZ_S = 7886,
+  TBX_ZZZ_B = 7887,
+  TBX_ZZZ_D = 7888,
+  TBX_ZZZ_H = 7889,
+  TBX_ZZZ_S = 7890,
+  TBXv16i8Four = 7891,
+  TBXv16i8One = 7892,
+  TBXv16i8Three = 7893,
+  TBXv16i8Two = 7894,
+  TBXv8i8Four = 7895,
+  TBXv8i8One = 7896,
+  TBXv8i8Three = 7897,
+  TBXv8i8Two = 7898,
+  TBZW = 7899,
+  TBZX = 7900,
+  TCHANGEBri = 7901,
+  TCHANGEBrr = 7902,
+  TCHANGEFri = 7903,
+  TCHANGEFrr = 7904,
+  TENTER = 7905,
+  TEXIT = 7906,
+  TRCIT = 7907,
+  TRN1_PPP_B = 7908,
+  TRN1_PPP_D = 7909,
+  TRN1_PPP_H = 7910,
+  TRN1_PPP_S = 7911,
+  TRN1_ZZZ_B = 7912,
+  TRN1_ZZZ_D = 7913,
+  TRN1_ZZZ_H = 7914,
+  TRN1_ZZZ_Q = 7915,
+  TRN1_ZZZ_S = 7916,
+  TRN1v16i8 = 7917,
+  TRN1v2i32 = 7918,
+  TRN1v2i64 = 7919,
+  TRN1v4i16 = 7920,
+  TRN1v4i32 = 7921,
+  TRN1v8i16 = 7922,
+  TRN1v8i8 = 7923,
+  TRN2_PPP_B = 7924,
+  TRN2_PPP_D = 7925,
+  TRN2_PPP_H = 7926,
+  TRN2_PPP_S = 7927,
+  TRN2_ZZZ_B = 7928,
+  TRN2_ZZZ_D = 7929,
+  TRN2_ZZZ_H = 7930,
+  TRN2_ZZZ_Q = 7931,
+  TRN2_ZZZ_S = 7932,
+  TRN2v16i8 = 7933,
+  TRN2v2i32 = 7934,
+  TRN2v2i64 = 7935,
+  TRN2v4i16 = 7936,
+  TRN2v4i32 = 7937,
+  TRN2v8i16 = 7938,
+  TRN2v8i8 = 7939,
+  TSB = 7940,
+  UABALB_ZZZ_D = 7941,
+  UABALB_ZZZ_H = 7942,
+  UABALB_ZZZ_S = 7943,
+  UABALT_ZZZ_D = 7944,
+  UABALT_ZZZ_H = 7945,
+  UABALT_ZZZ_S = 7946,
+  UABAL_ZZZ_BtoH = 7947,
+  UABAL_ZZZ_HtoS = 7948,
+  UABAL_ZZZ_StoD = 7949,
+  UABALv16i8_v8i16 = 7950,
+  UABALv2i32_v2i64 = 7951,
+  UABALv4i16_v4i32 = 7952,
+  UABALv4i32_v2i64 = 7953,
+  UABALv8i16_v4i32 = 7954,
+  UABALv8i8_v8i16 = 7955,
+  UABA_ZZZ_B = 7956,
+  UABA_ZZZ_D = 7957,
+  UABA_ZZZ_H = 7958,
+  UABA_ZZZ_S = 7959,
+  UABAv16i8 = 7960,
+  UABAv2i32 = 7961,
+  UABAv4i16 = 7962,
+  UABAv4i32 = 7963,
+  UABAv8i16 = 7964,
+  UABAv8i8 = 7965,
+  UABDLB_ZZZ_D = 7966,
+  UABDLB_ZZZ_H = 7967,
+  UABDLB_ZZZ_S = 7968,
+  UABDLT_ZZZ_D = 7969,
+  UABDLT_ZZZ_H = 7970,
+  UABDLT_ZZZ_S = 7971,
+  UABDLv16i8_v8i16 = 7972,
+  UABDLv2i32_v2i64 = 7973,
+  UABDLv4i16_v4i32 = 7974,
+  UABDLv4i32_v2i64 = 7975,
+  UABDLv8i16_v4i32 = 7976,
+  UABDLv8i8_v8i16 = 7977,
+  UABD_ZPmZ_B = 7978,
+  UABD_ZPmZ_D = 7979,
+  UABD_ZPmZ_H = 7980,
+  UABD_ZPmZ_S = 7981,
+  UABDv16i8 = 7982,
+  UABDv2i32 = 7983,
+  UABDv4i16 = 7984,
+  UABDv4i32 = 7985,
+  UABDv8i16 = 7986,
+  UABDv8i8 = 7987,
+  UADALP_ZPmZ_D = 7988,
+  UADALP_ZPmZ_H = 7989,
+  UADALP_ZPmZ_S = 7990,
+  UADALPv16i8_v8i16 = 7991,
+  UADALPv2i32_v1i64 = 7992,
+  UADALPv4i16_v2i32 = 7993,
+  UADALPv4i32_v2i64 = 7994,
+  UADALPv8i16_v4i32 = 7995,
+  UADALPv8i8_v4i16 = 7996,
+  UADDLB_ZZZ_D = 7997,
+  UADDLB_ZZZ_H = 7998,
+  UADDLB_ZZZ_S = 7999,
+  UADDLPv16i8_v8i16 = 8000,
+  UADDLPv2i32_v1i64 = 8001,
+  UADDLPv4i16_v2i32 = 8002,
+  UADDLPv4i32_v2i64 = 8003,
+  UADDLPv8i16_v4i32 = 8004,
+  UADDLPv8i8_v4i16 = 8005,
+  UADDLT_ZZZ_D = 8006,
+  UADDLT_ZZZ_H = 8007,
+  UADDLT_ZZZ_S = 8008,
+  UADDLVv16i8v = 8009,
+  UADDLVv4i16v = 8010,
+  UADDLVv4i32v = 8011,
+  UADDLVv8i16v = 8012,
+  UADDLVv8i8v = 8013,
+  UADDLv16i8_v8i16 = 8014,
+  UADDLv2i32_v2i64 = 8015,
+  UADDLv4i16_v4i32 = 8016,
+  UADDLv4i32_v2i64 = 8017,
+  UADDLv8i16_v4i32 = 8018,
+  UADDLv8i8_v8i16 = 8019,
+  UADDV_VPZ_B = 8020,
+  UADDV_VPZ_D = 8021,
+  UADDV_VPZ_H = 8022,
+  UADDV_VPZ_S = 8023,
+  UADDWB_ZZZ_D = 8024,
+  UADDWB_ZZZ_H = 8025,
+  UADDWB_ZZZ_S = 8026,
+  UADDWT_ZZZ_D = 8027,
+  UADDWT_ZZZ_H = 8028,
+  UADDWT_ZZZ_S = 8029,
+  UADDWv16i8_v8i16 = 8030,
+  UADDWv2i32_v2i64 = 8031,
+  UADDWv4i16_v4i32 = 8032,
+  UADDWv4i32_v2i64 = 8033,
+  UADDWv8i16_v4i32 = 8034,
+  UADDWv8i8_v8i16 = 8035,
+  UBFMWri = 8036,
+  UBFMXri = 8037,
+  UCLAMP_VG2_2Z2Z_B = 8038,
+  UCLAMP_VG2_2Z2Z_D = 8039,
+  UCLAMP_VG2_2Z2Z_H = 8040,
+  UCLAMP_VG2_2Z2Z_S = 8041,
+  UCLAMP_VG4_4Z4Z_B = 8042,
+  UCLAMP_VG4_4Z4Z_D = 8043,
+  UCLAMP_VG4_4Z4Z_H = 8044,
+  UCLAMP_VG4_4Z4Z_S = 8045,
+  UCLAMP_ZZZ_B = 8046,
+  UCLAMP_ZZZ_D = 8047,
+  UCLAMP_ZZZ_H = 8048,
+  UCLAMP_ZZZ_S = 8049,
+  UCVTFDSr = 8050,
+  UCVTFHDr = 8051,
+  UCVTFHSr = 8052,
+  UCVTFLT_ZZ_BtoH = 8053,
+  UCVTFLT_ZZ_HtoS = 8054,
+  UCVTFLT_ZZ_StoD = 8055,
+  UCVTFSDr = 8056,
+  UCVTFSWDri = 8057,
+  UCVTFSWHri = 8058,
+  UCVTFSWSri = 8059,
+  UCVTFSXDri = 8060,
+  UCVTFSXHri = 8061,
+  UCVTFSXSri = 8062,
+  UCVTFUWDri = 8063,
+  UCVTFUWHri = 8064,
+  UCVTFUWSri = 8065,
+  UCVTFUXDri = 8066,
+  UCVTFUXHri = 8067,
+  UCVTFUXSri = 8068,
+  UCVTF_2Z2Z_StoS = 8069,
+  UCVTF_4Z4Z_StoS = 8070,
+  UCVTF_ZPmZ_DtoD = 8071,
+  UCVTF_ZPmZ_DtoH = 8072,
+  UCVTF_ZPmZ_DtoS = 8073,
+  UCVTF_ZPmZ_HtoH = 8074,
+  UCVTF_ZPmZ_StoD = 8075,
+  UCVTF_ZPmZ_StoH = 8076,
+  UCVTF_ZPmZ_StoS = 8077,
+  UCVTF_ZPzZ_DtoD = 8078,
+  UCVTF_ZPzZ_DtoH = 8079,
+  UCVTF_ZPzZ_DtoS = 8080,
+  UCVTF_ZPzZ_HtoH = 8081,
+  UCVTF_ZPzZ_StoD = 8082,
+  UCVTF_ZPzZ_StoH = 8083,
+  UCVTF_ZPzZ_StoS = 8084,
+  UCVTF_ZZ_BtoH = 8085,
+  UCVTF_ZZ_HtoS = 8086,
+  UCVTF_ZZ_StoD = 8087,
+  UCVTFd = 8088,
+  UCVTFh = 8089,
+  UCVTFs = 8090,
+  UCVTFv1i16 = 8091,
+  UCVTFv1i32 = 8092,
+  UCVTFv1i64 = 8093,
+  UCVTFv2f32 = 8094,
+  UCVTFv2f64 = 8095,
+  UCVTFv2i32_shift = 8096,
+  UCVTFv2i64_shift = 8097,
+  UCVTFv4f16 = 8098,
+  UCVTFv4f32 = 8099,
+  UCVTFv4i16_shift = 8100,
+  UCVTFv4i32_shift = 8101,
+  UCVTFv8f16 = 8102,
+  UCVTFv8i16_shift = 8103,
+  UDF = 8104,
+  UDIVR_ZPmZ_D = 8105,
+  UDIVR_ZPmZ_S = 8106,
+  UDIVWr = 8107,
+  UDIVXr = 8108,
+  UDIV_ZPmZ_D = 8109,
+  UDIV_ZPmZ_S = 8110,
+  UDOT_VG2_M2Z2Z_BtoS = 8111,
+  UDOT_VG2_M2Z2Z_HtoD = 8112,
+  UDOT_VG2_M2Z2Z_HtoS = 8113,
+  UDOT_VG2_M2ZZI_BToS = 8114,
+  UDOT_VG2_M2ZZI_HToS = 8115,
+  UDOT_VG2_M2ZZI_HtoD = 8116,
+  UDOT_VG2_M2ZZ_BtoS = 8117,
+  UDOT_VG2_M2ZZ_HtoD = 8118,
+  UDOT_VG2_M2ZZ_HtoS = 8119,
+  UDOT_VG4_M4Z4Z_BtoS = 8120,
+  UDOT_VG4_M4Z4Z_HtoD = 8121,
+  UDOT_VG4_M4Z4Z_HtoS = 8122,
+  UDOT_VG4_M4ZZI_BtoS = 8123,
+  UDOT_VG4_M4ZZI_HToS = 8124,
+  UDOT_VG4_M4ZZI_HtoD = 8125,
+  UDOT_VG4_M4ZZ_BtoS = 8126,
+  UDOT_VG4_M4ZZ_HtoD = 8127,
+  UDOT_VG4_M4ZZ_HtoS = 8128,
+  UDOT_ZZZI_BtoH = 8129,
+  UDOT_ZZZI_BtoS = 8130,
+  UDOT_ZZZI_HtoD = 8131,
+  UDOT_ZZZI_HtoS = 8132,
+  UDOT_ZZZ_BtoH = 8133,
+  UDOT_ZZZ_BtoS = 8134,
+  UDOT_ZZZ_HtoD = 8135,
+  UDOT_ZZZ_HtoS = 8136,
+  UDOTlanev16i8 = 8137,
+  UDOTlanev8i8 = 8138,
+  UDOTv16i8 = 8139,
+  UDOTv8i8 = 8140,
+  UHADD_ZPmZ_B = 8141,
+  UHADD_ZPmZ_D = 8142,
+  UHADD_ZPmZ_H = 8143,
+  UHADD_ZPmZ_S = 8144,
+  UHADDv16i8 = 8145,
+  UHADDv2i32 = 8146,
+  UHADDv4i16 = 8147,
+  UHADDv4i32 = 8148,
+  UHADDv8i16 = 8149,
+  UHADDv8i8 = 8150,
+  UHSUBR_ZPmZ_B = 8151,
+  UHSUBR_ZPmZ_D = 8152,
+  UHSUBR_ZPmZ_H = 8153,
+  UHSUBR_ZPmZ_S = 8154,
+  UHSUB_ZPmZ_B = 8155,
+  UHSUB_ZPmZ_D = 8156,
+  UHSUB_ZPmZ_H = 8157,
+  UHSUB_ZPmZ_S = 8158,
+  UHSUBv16i8 = 8159,
+  UHSUBv2i32 = 8160,
+  UHSUBv4i16 = 8161,
+  UHSUBv4i32 = 8162,
+  UHSUBv8i16 = 8163,
+  UHSUBv8i8 = 8164,
+  UMADDLrrr = 8165,
+  UMAXP_ZPmZ_B = 8166,
+  UMAXP_ZPmZ_D = 8167,
+  UMAXP_ZPmZ_H = 8168,
+  UMAXP_ZPmZ_S = 8169,
+  UMAXPv16i8 = 8170,
+  UMAXPv2i32 = 8171,
+  UMAXPv4i16 = 8172,
+  UMAXPv4i32 = 8173,
+  UMAXPv8i16 = 8174,
+  UMAXPv8i8 = 8175,
+  UMAXQV_VPZ_B = 8176,
+  UMAXQV_VPZ_D = 8177,
+  UMAXQV_VPZ_H = 8178,
+  UMAXQV_VPZ_S = 8179,
+  UMAXV_VPZ_B = 8180,
+  UMAXV_VPZ_D = 8181,
+  UMAXV_VPZ_H = 8182,
+  UMAXV_VPZ_S = 8183,
+  UMAXVv16i8v = 8184,
+  UMAXVv4i16v = 8185,
+  UMAXVv4i32v = 8186,
+  UMAXVv8i16v = 8187,
+  UMAXVv8i8v = 8188,
+  UMAXWri = 8189,
+  UMAXWrr = 8190,
+  UMAXXri = 8191,
+  UMAXXrr = 8192,
+  UMAX_VG2_2Z2Z_B = 8193,
+  UMAX_VG2_2Z2Z_D = 8194,
+  UMAX_VG2_2Z2Z_H = 8195,
+  UMAX_VG2_2Z2Z_S = 8196,
+  UMAX_VG2_2ZZ_B = 8197,
+  UMAX_VG2_2ZZ_D = 8198,
+  UMAX_VG2_2ZZ_H = 8199,
+  UMAX_VG2_2ZZ_S = 8200,
+  UMAX_VG4_4Z4Z_B = 8201,
+  UMAX_VG4_4Z4Z_D = 8202,
+  UMAX_VG4_4Z4Z_H = 8203,
+  UMAX_VG4_4Z4Z_S = 8204,
+  UMAX_VG4_4ZZ_B = 8205,
+  UMAX_VG4_4ZZ_D = 8206,
+  UMAX_VG4_4ZZ_H = 8207,
+  UMAX_VG4_4ZZ_S = 8208,
+  UMAX_ZI_B = 8209,
+  UMAX_ZI_D = 8210,
+  UMAX_ZI_H = 8211,
+  UMAX_ZI_S = 8212,
+  UMAX_ZPmZ_B = 8213,
+  UMAX_ZPmZ_D = 8214,
+  UMAX_ZPmZ_H = 8215,
+  UMAX_ZPmZ_S = 8216,
+  UMAXv16i8 = 8217,
+  UMAXv2i32 = 8218,
+  UMAXv4i16 = 8219,
+  UMAXv4i32 = 8220,
+  UMAXv8i16 = 8221,
+  UMAXv8i8 = 8222,
+  UMINP_ZPmZ_B = 8223,
+  UMINP_ZPmZ_D = 8224,
+  UMINP_ZPmZ_H = 8225,
+  UMINP_ZPmZ_S = 8226,
+  UMINPv16i8 = 8227,
+  UMINPv2i32 = 8228,
+  UMINPv4i16 = 8229,
+  UMINPv4i32 = 8230,
+  UMINPv8i16 = 8231,
+  UMINPv8i8 = 8232,
+  UMINQV_VPZ_B = 8233,
+  UMINQV_VPZ_D = 8234,
+  UMINQV_VPZ_H = 8235,
+  UMINQV_VPZ_S = 8236,
+  UMINV_VPZ_B = 8237,
+  UMINV_VPZ_D = 8238,
+  UMINV_VPZ_H = 8239,
+  UMINV_VPZ_S = 8240,
+  UMINVv16i8v = 8241,
+  UMINVv4i16v = 8242,
+  UMINVv4i32v = 8243,
+  UMINVv8i16v = 8244,
+  UMINVv8i8v = 8245,
+  UMINWri = 8246,
+  UMINWrr = 8247,
+  UMINXri = 8248,
+  UMINXrr = 8249,
+  UMIN_VG2_2Z2Z_B = 8250,
+  UMIN_VG2_2Z2Z_D = 8251,
+  UMIN_VG2_2Z2Z_H = 8252,
+  UMIN_VG2_2Z2Z_S = 8253,
+  UMIN_VG2_2ZZ_B = 8254,
+  UMIN_VG2_2ZZ_D = 8255,
+  UMIN_VG2_2ZZ_H = 8256,
+  UMIN_VG2_2ZZ_S = 8257,
+  UMIN_VG4_4Z4Z_B = 8258,
+  UMIN_VG4_4Z4Z_D = 8259,
+  UMIN_VG4_4Z4Z_H = 8260,
+  UMIN_VG4_4Z4Z_S = 8261,
+  UMIN_VG4_4ZZ_B = 8262,
+  UMIN_VG4_4ZZ_D = 8263,
+  UMIN_VG4_4ZZ_H = 8264,
+  UMIN_VG4_4ZZ_S = 8265,
+  UMIN_ZI_B = 8266,
+  UMIN_ZI_D = 8267,
+  UMIN_ZI_H = 8268,
+  UMIN_ZI_S = 8269,
+  UMIN_ZPmZ_B = 8270,
+  UMIN_ZPmZ_D = 8271,
+  UMIN_ZPmZ_H = 8272,
+  UMIN_ZPmZ_S = 8273,
+  UMINv16i8 = 8274,
+  UMINv2i32 = 8275,
+  UMINv4i16 = 8276,
+  UMINv4i32 = 8277,
+  UMINv8i16 = 8278,
+  UMINv8i8 = 8279,
+  UMLALB_ZZZI_D = 8280,
+  UMLALB_ZZZI_S = 8281,
+  UMLALB_ZZZ_D = 8282,
+  UMLALB_ZZZ_H = 8283,
+  UMLALB_ZZZ_S = 8284,
+  UMLALL_MZZI_BtoS = 8285,
+  UMLALL_MZZI_HtoD = 8286,
+  UMLALL_MZZ_BtoS = 8287,
+  UMLALL_MZZ_HtoD = 8288,
+  UMLALL_VG2_M2Z2Z_BtoS = 8289,
+  UMLALL_VG2_M2Z2Z_HtoD = 8290,
+  UMLALL_VG2_M2ZZI_BtoS = 8291,
+  UMLALL_VG2_M2ZZI_HtoD = 8292,
+  UMLALL_VG2_M2ZZ_BtoS = 8293,
+  UMLALL_VG2_M2ZZ_HtoD = 8294,
+  UMLALL_VG4_M4Z4Z_BtoS = 8295,
+  UMLALL_VG4_M4Z4Z_HtoD = 8296,
+  UMLALL_VG4_M4ZZI_BtoS = 8297,
+  UMLALL_VG4_M4ZZI_HtoD = 8298,
+  UMLALL_VG4_M4ZZ_BtoS = 8299,
+  UMLALL_VG4_M4ZZ_HtoD = 8300,
+  UMLALT_ZZZI_D = 8301,
+  UMLALT_ZZZI_S = 8302,
+  UMLALT_ZZZ_D = 8303,
+  UMLALT_ZZZ_H = 8304,
+  UMLALT_ZZZ_S = 8305,
+  UMLAL_MZZI_HtoS = 8306,
+  UMLAL_MZZ_HtoS = 8307,
+  UMLAL_VG2_M2Z2Z_HtoS = 8308,
+  UMLAL_VG2_M2ZZI_S = 8309,
+  UMLAL_VG2_M2ZZ_HtoS = 8310,
+  UMLAL_VG4_M4Z4Z_HtoS = 8311,
+  UMLAL_VG4_M4ZZI_HtoS = 8312,
+  UMLAL_VG4_M4ZZ_HtoS = 8313,
+  UMLALv16i8_v8i16 = 8314,
+  UMLALv2i32_indexed = 8315,
+  UMLALv2i32_v2i64 = 8316,
+  UMLALv4i16_indexed = 8317,
+  UMLALv4i16_v4i32 = 8318,
+  UMLALv4i32_indexed = 8319,
+  UMLALv4i32_v2i64 = 8320,
+  UMLALv8i16_indexed = 8321,
+  UMLALv8i16_v4i32 = 8322,
+  UMLALv8i8_v8i16 = 8323,
+  UMLSLB_ZZZI_D = 8324,
+  UMLSLB_ZZZI_S = 8325,
+  UMLSLB_ZZZ_D = 8326,
+  UMLSLB_ZZZ_H = 8327,
+  UMLSLB_ZZZ_S = 8328,
+  UMLSLL_MZZI_BtoS = 8329,
+  UMLSLL_MZZI_HtoD = 8330,
+  UMLSLL_MZZ_BtoS = 8331,
+  UMLSLL_MZZ_HtoD = 8332,
+  UMLSLL_VG2_M2Z2Z_BtoS = 8333,
+  UMLSLL_VG2_M2Z2Z_HtoD = 8334,
+  UMLSLL_VG2_M2ZZI_BtoS = 8335,
+  UMLSLL_VG2_M2ZZI_HtoD = 8336,
+  UMLSLL_VG2_M2ZZ_BtoS = 8337,
+  UMLSLL_VG2_M2ZZ_HtoD = 8338,
+  UMLSLL_VG4_M4Z4Z_BtoS = 8339,
+  UMLSLL_VG4_M4Z4Z_HtoD = 8340,
+  UMLSLL_VG4_M4ZZI_BtoS = 8341,
+  UMLSLL_VG4_M4ZZI_HtoD = 8342,
+  UMLSLL_VG4_M4ZZ_BtoS = 8343,
+  UMLSLL_VG4_M4ZZ_HtoD = 8344,
+  UMLSLT_ZZZI_D = 8345,
+  UMLSLT_ZZZI_S = 8346,
+  UMLSLT_ZZZ_D = 8347,
+  UMLSLT_ZZZ_H = 8348,
+  UMLSLT_ZZZ_S = 8349,
+  UMLSL_MZZI_HtoS = 8350,
+  UMLSL_MZZ_HtoS = 8351,
+  UMLSL_VG2_M2Z2Z_HtoS = 8352,
+  UMLSL_VG2_M2ZZI_S = 8353,
+  UMLSL_VG2_M2ZZ_HtoS = 8354,
+  UMLSL_VG4_M4Z4Z_HtoS = 8355,
+  UMLSL_VG4_M4ZZI_HtoS = 8356,
+  UMLSL_VG4_M4ZZ_HtoS = 8357,
+  UMLSLv16i8_v8i16 = 8358,
+  UMLSLv2i32_indexed = 8359,
+  UMLSLv2i32_v2i64 = 8360,
+  UMLSLv4i16_indexed = 8361,
+  UMLSLv4i16_v4i32 = 8362,
+  UMLSLv4i32_indexed = 8363,
+  UMLSLv4i32_v2i64 = 8364,
+  UMLSLv8i16_indexed = 8365,
+  UMLSLv8i16_v4i32 = 8366,
+  UMLSLv8i8_v8i16 = 8367,
+  UMMLA = 8368,
+  UMMLA_ZZZ = 8369,
+  UMOP4A_M2Z2Z_BToS = 8370,
+  UMOP4A_M2Z2Z_HToS = 8371,
+  UMOP4A_M2Z2Z_HtoD = 8372,
+  UMOP4A_M2ZZ_BToS = 8373,
+  UMOP4A_M2ZZ_HToS = 8374,
+  UMOP4A_M2ZZ_HtoD = 8375,
+  UMOP4A_MZ2Z_BToS = 8376,
+  UMOP4A_MZ2Z_HToS = 8377,
+  UMOP4A_MZ2Z_HtoD = 8378,
+  UMOP4A_MZZ_BToS = 8379,
+  UMOP4A_MZZ_HToS = 8380,
+  UMOP4A_MZZ_HtoD = 8381,
+  UMOP4S_M2Z2Z_BToS = 8382,
+  UMOP4S_M2Z2Z_HToS = 8383,
+  UMOP4S_M2Z2Z_HtoD = 8384,
+  UMOP4S_M2ZZ_BToS = 8385,
+  UMOP4S_M2ZZ_HToS = 8386,
+  UMOP4S_M2ZZ_HtoD = 8387,
+  UMOP4S_MZ2Z_BToS = 8388,
+  UMOP4S_MZ2Z_HToS = 8389,
+  UMOP4S_MZ2Z_HtoD = 8390,
+  UMOP4S_MZZ_BToS = 8391,
+  UMOP4S_MZZ_HToS = 8392,
+  UMOP4S_MZZ_HtoD = 8393,
+  UMOPA_MPPZZ_D = 8394,
+  UMOPA_MPPZZ_HtoS = 8395,
+  UMOPA_MPPZZ_S = 8396,
+  UMOPS_MPPZZ_D = 8397,
+  UMOPS_MPPZZ_HtoS = 8398,
+  UMOPS_MPPZZ_S = 8399,
+  UMOVvi16 = 8400,
+  UMOVvi16_idx0 = 8401,
+  UMOVvi32 = 8402,
+  UMOVvi32_idx0 = 8403,
+  UMOVvi64 = 8404,
+  UMOVvi64_idx0 = 8405,
+  UMOVvi8 = 8406,
+  UMOVvi8_idx0 = 8407,
+  UMSUBLrrr = 8408,
+  UMULH_ZPmZ_B = 8409,
+  UMULH_ZPmZ_D = 8410,
+  UMULH_ZPmZ_H = 8411,
+  UMULH_ZPmZ_S = 8412,
+  UMULH_ZZZ_B = 8413,
+  UMULH_ZZZ_D = 8414,
+  UMULH_ZZZ_H = 8415,
+  UMULH_ZZZ_S = 8416,
+  UMULHrr = 8417,
+  UMULLB_ZZZI_D = 8418,
+  UMULLB_ZZZI_S = 8419,
+  UMULLB_ZZZ_D = 8420,
+  UMULLB_ZZZ_H = 8421,
+  UMULLB_ZZZ_S = 8422,
+  UMULLT_ZZZI_D = 8423,
+  UMULLT_ZZZI_S = 8424,
+  UMULLT_ZZZ_D = 8425,
+  UMULLT_ZZZ_H = 8426,
+  UMULLT_ZZZ_S = 8427,
+  UMULLv16i8_v8i16 = 8428,
+  UMULLv2i32_indexed = 8429,
+  UMULLv2i32_v2i64 = 8430,
+  UMULLv4i16_indexed = 8431,
+  UMULLv4i16_v4i32 = 8432,
+  UMULLv4i32_indexed = 8433,
+  UMULLv4i32_v2i64 = 8434,
+  UMULLv8i16_indexed = 8435,
+  UMULLv8i16_v4i32 = 8436,
+  UMULLv8i8_v8i16 = 8437,
+  UQADD_ZI_B = 8438,
+  UQADD_ZI_D = 8439,
+  UQADD_ZI_H = 8440,
+  UQADD_ZI_S = 8441,
+  UQADD_ZPmZ_B = 8442,
+  UQADD_ZPmZ_D = 8443,
+  UQADD_ZPmZ_H = 8444,
+  UQADD_ZPmZ_S = 8445,
+  UQADD_ZZZ_B = 8446,
+  UQADD_ZZZ_D = 8447,
+  UQADD_ZZZ_H = 8448,
+  UQADD_ZZZ_S = 8449,
+  UQADDv16i8 = 8450,
+  UQADDv1i16 = 8451,
+  UQADDv1i32 = 8452,
+  UQADDv1i64 = 8453,
+  UQADDv1i8 = 8454,
+  UQADDv2i32 = 8455,
+  UQADDv2i64 = 8456,
+  UQADDv4i16 = 8457,
+  UQADDv4i32 = 8458,
+  UQADDv8i16 = 8459,
+  UQADDv8i8 = 8460,
+  UQCVTN_Z2Z_StoH = 8461,
+  UQCVTN_Z4Z_DtoH = 8462,
+  UQCVTN_Z4Z_StoB = 8463,
+  UQCVT_Z2Z_StoH = 8464,
+  UQCVT_Z4Z_DtoH = 8465,
+  UQCVT_Z4Z_StoB = 8466,
+  UQDECB_WPiI = 8467,
+  UQDECB_XPiI = 8468,
+  UQDECD_WPiI = 8469,
+  UQDECD_XPiI = 8470,
+  UQDECD_ZPiI = 8471,
+  UQDECH_WPiI = 8472,
+  UQDECH_XPiI = 8473,
+  UQDECH_ZPiI = 8474,
+  UQDECP_WP_B = 8475,
+  UQDECP_WP_D = 8476,
+  UQDECP_WP_H = 8477,
+  UQDECP_WP_S = 8478,
+  UQDECP_XP_B = 8479,
+  UQDECP_XP_D = 8480,
+  UQDECP_XP_H = 8481,
+  UQDECP_XP_S = 8482,
+  UQDECP_ZP_D = 8483,
+  UQDECP_ZP_H = 8484,
+  UQDECP_ZP_S = 8485,
+  UQDECW_WPiI = 8486,
+  UQDECW_XPiI = 8487,
+  UQDECW_ZPiI = 8488,
+  UQINCB_WPiI = 8489,
+  UQINCB_XPiI = 8490,
+  UQINCD_WPiI = 8491,
+  UQINCD_XPiI = 8492,
+  UQINCD_ZPiI = 8493,
+  UQINCH_WPiI = 8494,
+  UQINCH_XPiI = 8495,
+  UQINCH_ZPiI = 8496,
+  UQINCP_WP_B = 8497,
+  UQINCP_WP_D = 8498,
+  UQINCP_WP_H = 8499,
+  UQINCP_WP_S = 8500,
+  UQINCP_XP_B = 8501,
+  UQINCP_XP_D = 8502,
+  UQINCP_XP_H = 8503,
+  UQINCP_XP_S = 8504,
+  UQINCP_ZP_D = 8505,
+  UQINCP_ZP_H = 8506,
+  UQINCP_ZP_S = 8507,
+  UQINCW_WPiI = 8508,
+  UQINCW_XPiI = 8509,
+  UQINCW_ZPiI = 8510,
+  UQRSHLR_ZPmZ_B = 8511,
+  UQRSHLR_ZPmZ_D = 8512,
+  UQRSHLR_ZPmZ_H = 8513,
+  UQRSHLR_ZPmZ_S = 8514,
+  UQRSHL_ZPmZ_B = 8515,
+  UQRSHL_ZPmZ_D = 8516,
+  UQRSHL_ZPmZ_H = 8517,
+  UQRSHL_ZPmZ_S = 8518,
+  UQRSHLv16i8 = 8519,
+  UQRSHLv1i16 = 8520,
+  UQRSHLv1i32 = 8521,
+  UQRSHLv1i64 = 8522,
+  UQRSHLv1i8 = 8523,
+  UQRSHLv2i32 = 8524,
+  UQRSHLv2i64 = 8525,
+  UQRSHLv4i16 = 8526,
+  UQRSHLv4i32 = 8527,
+  UQRSHLv8i16 = 8528,
+  UQRSHLv8i8 = 8529,
+  UQRSHRNB_ZZI_B = 8530,
+  UQRSHRNB_ZZI_H = 8531,
+  UQRSHRNB_ZZI_S = 8532,
+  UQRSHRNT_ZZI_B = 8533,
+  UQRSHRNT_ZZI_H = 8534,
+  UQRSHRNT_ZZI_S = 8535,
+  UQRSHRN_VG4_Z4ZI_B = 8536,
+  UQRSHRN_VG4_Z4ZI_H = 8537,
+  UQRSHRN_Z2ZI_HtoB = 8538,
+  UQRSHRN_Z2ZI_StoH = 8539,
+  UQRSHRNb = 8540,
+  UQRSHRNh = 8541,
+  UQRSHRNs = 8542,
+  UQRSHRNv16i8_shift = 8543,
+  UQRSHRNv2i32_shift = 8544,
+  UQRSHRNv4i16_shift = 8545,
+  UQRSHRNv4i32_shift = 8546,
+  UQRSHRNv8i16_shift = 8547,
+  UQRSHRNv8i8_shift = 8548,
+  UQRSHR_VG2_Z2ZI_H = 8549,
+  UQRSHR_VG4_Z4ZI_B = 8550,
+  UQRSHR_VG4_Z4ZI_H = 8551,
+  UQSHLR_ZPmZ_B = 8552,
+  UQSHLR_ZPmZ_D = 8553,
+  UQSHLR_ZPmZ_H = 8554,
+  UQSHLR_ZPmZ_S = 8555,
+  UQSHL_ZPmI_B = 8556,
+  UQSHL_ZPmI_D = 8557,
+  UQSHL_ZPmI_H = 8558,
+  UQSHL_ZPmI_S = 8559,
+  UQSHL_ZPmZ_B = 8560,
+  UQSHL_ZPmZ_D = 8561,
+  UQSHL_ZPmZ_H = 8562,
+  UQSHL_ZPmZ_S = 8563,
+  UQSHLb = 8564,
+  UQSHLd = 8565,
+  UQSHLh = 8566,
+  UQSHLs = 8567,
+  UQSHLv16i8 = 8568,
+  UQSHLv16i8_shift = 8569,
+  UQSHLv1i16 = 8570,
+  UQSHLv1i32 = 8571,
+  UQSHLv1i64 = 8572,
+  UQSHLv1i8 = 8573,
+  UQSHLv2i32 = 8574,
+  UQSHLv2i32_shift = 8575,
+  UQSHLv2i64 = 8576,
+  UQSHLv2i64_shift = 8577,
+  UQSHLv4i16 = 8578,
+  UQSHLv4i16_shift = 8579,
+  UQSHLv4i32 = 8580,
+  UQSHLv4i32_shift = 8581,
+  UQSHLv8i16 = 8582,
+  UQSHLv8i16_shift = 8583,
+  UQSHLv8i8 = 8584,
+  UQSHLv8i8_shift = 8585,
+  UQSHRNB_ZZI_B = 8586,
+  UQSHRNB_ZZI_H = 8587,
+  UQSHRNB_ZZI_S = 8588,
+  UQSHRNT_ZZI_B = 8589,
+  UQSHRNT_ZZI_H = 8590,
+  UQSHRNT_ZZI_S = 8591,
+  UQSHRN_Z2ZI_HtoB = 8592,
+  UQSHRN_Z2ZI_StoH = 8593,
+  UQSHRNb = 8594,
+  UQSHRNh = 8595,
+  UQSHRNs = 8596,
+  UQSHRNv16i8_shift = 8597,
+  UQSHRNv2i32_shift = 8598,
+  UQSHRNv4i16_shift = 8599,
+  UQSHRNv4i32_shift = 8600,
+  UQSHRNv8i16_shift = 8601,
+  UQSHRNv8i8_shift = 8602,
+  UQSUBR_ZPmZ_B = 8603,
+  UQSUBR_ZPmZ_D = 8604,
+  UQSUBR_ZPmZ_H = 8605,
+  UQSUBR_ZPmZ_S = 8606,
+  UQSUB_ZI_B = 8607,
+  UQSUB_ZI_D = 8608,
+  UQSUB_ZI_H = 8609,
+  UQSUB_ZI_S = 8610,
+  UQSUB_ZPmZ_B = 8611,
+  UQSUB_ZPmZ_D = 8612,
+  UQSUB_ZPmZ_H = 8613,
+  UQSUB_ZPmZ_S = 8614,
+  UQSUB_ZZZ_B = 8615,
+  UQSUB_ZZZ_D = 8616,
+  UQSUB_ZZZ_H = 8617,
+  UQSUB_ZZZ_S = 8618,
+  UQSUBv16i8 = 8619,
+  UQSUBv1i16 = 8620,
+  UQSUBv1i32 = 8621,
+  UQSUBv1i64 = 8622,
+  UQSUBv1i8 = 8623,
+  UQSUBv2i32 = 8624,
+  UQSUBv2i64 = 8625,
+  UQSUBv4i16 = 8626,
+  UQSUBv4i32 = 8627,
+  UQSUBv8i16 = 8628,
+  UQSUBv8i8 = 8629,
+  UQXTNB_ZZ_B = 8630,
+  UQXTNB_ZZ_H = 8631,
+  UQXTNB_ZZ_S = 8632,
+  UQXTNT_ZZ_B = 8633,
+  UQXTNT_ZZ_H = 8634,
+  UQXTNT_ZZ_S = 8635,
+  UQXTNv16i8 = 8636,
+  UQXTNv1i16 = 8637,
+  UQXTNv1i32 = 8638,
+  UQXTNv1i8 = 8639,
+  UQXTNv2i32 = 8640,
+  UQXTNv4i16 = 8641,
+  UQXTNv4i32 = 8642,
+  UQXTNv8i16 = 8643,
+  UQXTNv8i8 = 8644,
+  URECPE_ZPmZ_S = 8645,
+  URECPE_ZPzZ_S = 8646,
+  URECPEv2i32 = 8647,
+  URECPEv4i32 = 8648,
+  URHADD_ZPmZ_B = 8649,
+  URHADD_ZPmZ_D = 8650,
+  URHADD_ZPmZ_H = 8651,
+  URHADD_ZPmZ_S = 8652,
+  URHADDv16i8 = 8653,
+  URHADDv2i32 = 8654,
+  URHADDv4i16 = 8655,
+  URHADDv4i32 = 8656,
+  URHADDv8i16 = 8657,
+  URHADDv8i8 = 8658,
+  URSHLR_ZPmZ_B = 8659,
+  URSHLR_ZPmZ_D = 8660,
+  URSHLR_ZPmZ_H = 8661,
+  URSHLR_ZPmZ_S = 8662,
+  URSHL_VG2_2Z2Z_B = 8663,
+  URSHL_VG2_2Z2Z_D = 8664,
+  URSHL_VG2_2Z2Z_H = 8665,
+  URSHL_VG2_2Z2Z_S = 8666,
+  URSHL_VG2_2ZZ_B = 8667,
+  URSHL_VG2_2ZZ_D = 8668,
+  URSHL_VG2_2ZZ_H = 8669,
+  URSHL_VG2_2ZZ_S = 8670,
+  URSHL_VG4_4Z4Z_B = 8671,
+  URSHL_VG4_4Z4Z_D = 8672,
+  URSHL_VG4_4Z4Z_H = 8673,
+  URSHL_VG4_4Z4Z_S = 8674,
+  URSHL_VG4_4ZZ_B = 8675,
+  URSHL_VG4_4ZZ_D = 8676,
+  URSHL_VG4_4ZZ_H = 8677,
+  URSHL_VG4_4ZZ_S = 8678,
+  URSHL_ZPmZ_B = 8679,
+  URSHL_ZPmZ_D = 8680,
+  URSHL_ZPmZ_H = 8681,
+  URSHL_ZPmZ_S = 8682,
+  URSHLv16i8 = 8683,
+  URSHLv1i64 = 8684,
+  URSHLv2i32 = 8685,
+  URSHLv2i64 = 8686,
+  URSHLv4i16 = 8687,
+  URSHLv4i32 = 8688,
+  URSHLv8i16 = 8689,
+  URSHLv8i8 = 8690,
+  URSHR_ZPmI_B = 8691,
+  URSHR_ZPmI_D = 8692,
+  URSHR_ZPmI_H = 8693,
+  URSHR_ZPmI_S = 8694,
+  URSHRd = 8695,
+  URSHRv16i8_shift = 8696,
+  URSHRv2i32_shift = 8697,
+  URSHRv2i64_shift = 8698,
+  URSHRv4i16_shift = 8699,
+  URSHRv4i32_shift = 8700,
+  URSHRv8i16_shift = 8701,
+  URSHRv8i8_shift = 8702,
+  URSQRTE_ZPmZ_S = 8703,
+  URSQRTE_ZPzZ_S = 8704,
+  URSQRTEv2i32 = 8705,
+  URSQRTEv4i32 = 8706,
+  URSRA_ZZI_B = 8707,
+  URSRA_ZZI_D = 8708,
+  URSRA_ZZI_H = 8709,
+  URSRA_ZZI_S = 8710,
+  URSRAd = 8711,
+  URSRAv16i8_shift = 8712,
+  URSRAv2i32_shift = 8713,
+  URSRAv2i64_shift = 8714,
+  URSRAv4i16_shift = 8715,
+  URSRAv4i32_shift = 8716,
+  URSRAv8i16_shift = 8717,
+  URSRAv8i8_shift = 8718,
+  USDOT_VG2_M2Z2Z_BToS = 8719,
+  USDOT_VG2_M2ZZI_BToS = 8720,
+  USDOT_VG2_M2ZZ_BToS = 8721,
+  USDOT_VG4_M4Z4Z_BToS = 8722,
+  USDOT_VG4_M4ZZI_BToS = 8723,
+  USDOT_VG4_M4ZZ_BToS = 8724,
+  USDOT_ZZZ = 8725,
+  USDOT_ZZZI = 8726,
+  USDOTlanev16i8 = 8727,
+  USDOTlanev8i8 = 8728,
+  USDOTv16i8 = 8729,
+  USDOTv8i8 = 8730,
+  USHLLB_ZZI_D = 8731,
+  USHLLB_ZZI_H = 8732,
+  USHLLB_ZZI_S = 8733,
+  USHLLT_ZZI_D = 8734,
+  USHLLT_ZZI_H = 8735,
+  USHLLT_ZZI_S = 8736,
+  USHLLv16i8_shift = 8737,
+  USHLLv2i32_shift = 8738,
+  USHLLv4i16_shift = 8739,
+  USHLLv4i32_shift = 8740,
+  USHLLv8i16_shift = 8741,
+  USHLLv8i8_shift = 8742,
+  USHLv16i8 = 8743,
+  USHLv1i64 = 8744,
+  USHLv2i32 = 8745,
+  USHLv2i64 = 8746,
+  USHLv4i16 = 8747,
+  USHLv4i32 = 8748,
+  USHLv8i16 = 8749,
+  USHLv8i8 = 8750,
+  USHRd = 8751,
+  USHRv16i8_shift = 8752,
+  USHRv2i32_shift = 8753,
+  USHRv2i64_shift = 8754,
+  USHRv4i16_shift = 8755,
+  USHRv4i32_shift = 8756,
+  USHRv8i16_shift = 8757,
+  USHRv8i8_shift = 8758,
+  USMLALL_MZZI_BtoS = 8759,
+  USMLALL_MZZ_BtoS = 8760,
+  USMLALL_VG2_M2Z2Z_BtoS = 8761,
+  USMLALL_VG2_M2ZZI_BtoS = 8762,
+  USMLALL_VG2_M2ZZ_BtoS = 8763,
+  USMLALL_VG4_M4Z4Z_BtoS = 8764,
+  USMLALL_VG4_M4ZZI_BtoS = 8765,
+  USMLALL_VG4_M4ZZ_BtoS = 8766,
+  USMMLA = 8767,
+  USMMLA_ZZZ = 8768,
+  USMOP4A_M2Z2Z_BToS = 8769,
+  USMOP4A_M2Z2Z_HtoD = 8770,
+  USMOP4A_M2ZZ_BToS = 8771,
+  USMOP4A_M2ZZ_HtoD = 8772,
+  USMOP4A_MZ2Z_BToS = 8773,
+  USMOP4A_MZ2Z_HtoD = 8774,
+  USMOP4A_MZZ_BToS = 8775,
+  USMOP4A_MZZ_HtoD = 8776,
+  USMOP4S_M2Z2Z_BToS = 8777,
+  USMOP4S_M2Z2Z_HtoD = 8778,
+  USMOP4S_M2ZZ_BToS = 8779,
+  USMOP4S_M2ZZ_HtoD = 8780,
+  USMOP4S_MZ2Z_BToS = 8781,
+  USMOP4S_MZ2Z_HtoD = 8782,
+  USMOP4S_MZZ_BToS = 8783,
+  USMOP4S_MZZ_HtoD = 8784,
+  USMOPA_MPPZZ_D = 8785,
+  USMOPA_MPPZZ_S = 8786,
+  USMOPS_MPPZZ_D = 8787,
+  USMOPS_MPPZZ_S = 8788,
+  USQADD_ZPmZ_B = 8789,
+  USQADD_ZPmZ_D = 8790,
+  USQADD_ZPmZ_H = 8791,
+  USQADD_ZPmZ_S = 8792,
+  USQADDv16i8 = 8793,
+  USQADDv1i16 = 8794,
+  USQADDv1i32 = 8795,
+  USQADDv1i64 = 8796,
+  USQADDv1i8 = 8797,
+  USQADDv2i32 = 8798,
+  USQADDv2i64 = 8799,
+  USQADDv4i16 = 8800,
+  USQADDv4i32 = 8801,
+  USQADDv8i16 = 8802,
+  USQADDv8i8 = 8803,
+  USRA_ZZI_B = 8804,
+  USRA_ZZI_D = 8805,
+  USRA_ZZI_H = 8806,
+  USRA_ZZI_S = 8807,
+  USRAd = 8808,
+  USRAv16i8_shift = 8809,
+  USRAv2i32_shift = 8810,
+  USRAv2i64_shift = 8811,
+  USRAv4i16_shift = 8812,
+  USRAv4i32_shift = 8813,
+  USRAv8i16_shift = 8814,
+  USRAv8i8_shift = 8815,
+  USTMOPA_M2ZZZI_BtoS = 8816,
+  USUBLB_ZZZ_D = 8817,
+  USUBLB_ZZZ_H = 8818,
+  USUBLB_ZZZ_S = 8819,
+  USUBLT_ZZZ_D = 8820,
+  USUBLT_ZZZ_H = 8821,
+  USUBLT_ZZZ_S = 8822,
+  USUBLv16i8_v8i16 = 8823,
+  USUBLv2i32_v2i64 = 8824,
+  USUBLv4i16_v4i32 = 8825,
+  USUBLv4i32_v2i64 = 8826,
+  USUBLv8i16_v4i32 = 8827,
+  USUBLv8i8_v8i16 = 8828,
+  USUBWB_ZZZ_D = 8829,
+  USUBWB_ZZZ_H = 8830,
+  USUBWB_ZZZ_S = 8831,
+  USUBWT_ZZZ_D = 8832,
+  USUBWT_ZZZ_H = 8833,
+  USUBWT_ZZZ_S = 8834,
+  USUBWv16i8_v8i16 = 8835,
+  USUBWv2i32_v2i64 = 8836,
+  USUBWv4i16_v4i32 = 8837,
+  USUBWv4i32_v2i64 = 8838,
+  USUBWv8i16_v4i32 = 8839,
+  USUBWv8i8_v8i16 = 8840,
+  USVDOT_VG4_M4ZZI_BToS = 8841,
+  UTMOPA_M2ZZZI_BtoS = 8842,
+  UTMOPA_M2ZZZI_HtoS = 8843,
+  UUNPKHI_ZZ_D = 8844,
+  UUNPKHI_ZZ_H = 8845,
+  UUNPKHI_ZZ_S = 8846,
+  UUNPKLO_ZZ_D = 8847,
+  UUNPKLO_ZZ_H = 8848,
+  UUNPKLO_ZZ_S = 8849,
+  UUNPK_VG2_2ZZ_D = 8850,
+  UUNPK_VG2_2ZZ_H = 8851,
+  UUNPK_VG2_2ZZ_S = 8852,
+  UUNPK_VG4_4Z2Z_D = 8853,
+  UUNPK_VG4_4Z2Z_H = 8854,
+  UUNPK_VG4_4Z2Z_S = 8855,
+  UVDOT_VG2_M2ZZI_HtoS = 8856,
+  UVDOT_VG4_M4ZZI_BtoS = 8857,
+  UVDOT_VG4_M4ZZI_HtoD = 8858,
+  UXTB_ZPmZ_D = 8859,
+  UXTB_ZPmZ_H = 8860,
+  UXTB_ZPmZ_S = 8861,
+  UXTB_ZPzZ_D = 8862,
+  UXTB_ZPzZ_H = 8863,
+  UXTB_ZPzZ_S = 8864,
+  UXTH_ZPmZ_D = 8865,
+  UXTH_ZPmZ_S = 8866,
+  UXTH_ZPzZ_D = 8867,
+  UXTH_ZPzZ_S = 8868,
+  UXTW_ZPmZ_D = 8869,
+  UXTW_ZPzZ_D = 8870,
+  UZP1_PPP_B = 8871,
+  UZP1_PPP_D = 8872,
+  UZP1_PPP_H = 8873,
+  UZP1_PPP_S = 8874,
+  UZP1_ZZZ_B = 8875,
+  UZP1_ZZZ_D = 8876,
+  UZP1_ZZZ_H = 8877,
+  UZP1_ZZZ_Q = 8878,
+  UZP1_ZZZ_S = 8879,
+  UZP1v16i8 = 8880,
+  UZP1v2i32 = 8881,
+  UZP1v2i64 = 8882,
+  UZP1v4i16 = 8883,
+  UZP1v4i32 = 8884,
+  UZP1v8i16 = 8885,
+  UZP1v8i8 = 8886,
+  UZP2_PPP_B = 8887,
+  UZP2_PPP_D = 8888,
+  UZP2_PPP_H = 8889,
+  UZP2_PPP_S = 8890,
+  UZP2_ZZZ_B = 8891,
+  UZP2_ZZZ_D = 8892,
+  UZP2_ZZZ_H = 8893,
+  UZP2_ZZZ_Q = 8894,
+  UZP2_ZZZ_S = 8895,
+  UZP2v16i8 = 8896,
+  UZP2v2i32 = 8897,
+  UZP2v2i64 = 8898,
+  UZP2v4i16 = 8899,
+  UZP2v4i32 = 8900,
+  UZP2v8i16 = 8901,
+  UZP2v8i8 = 8902,
+  UZPQ1_ZZZ_B = 8903,
+  UZPQ1_ZZZ_D = 8904,
+  UZPQ1_ZZZ_H = 8905,
+  UZPQ1_ZZZ_S = 8906,
+  UZPQ2_ZZZ_B = 8907,
+  UZPQ2_ZZZ_D = 8908,
+  UZPQ2_ZZZ_H = 8909,
+  UZPQ2_ZZZ_S = 8910,
+  UZP_VG2_2ZZZ_B = 8911,
+  UZP_VG2_2ZZZ_D = 8912,
+  UZP_VG2_2ZZZ_H = 8913,
+  UZP_VG2_2ZZZ_Q = 8914,
+  UZP_VG2_2ZZZ_S = 8915,
+  UZP_VG4_4Z4Z_B = 8916,
+  UZP_VG4_4Z4Z_D = 8917,
+  UZP_VG4_4Z4Z_H = 8918,
+  UZP_VG4_4Z4Z_Q = 8919,
+  UZP_VG4_4Z4Z_S = 8920,
+  WFET = 8921,
+  WFIT = 8922,
+  WHILEGE_2PXX_B = 8923,
+  WHILEGE_2PXX_D = 8924,
+  WHILEGE_2PXX_H = 8925,
+  WHILEGE_2PXX_S = 8926,
+  WHILEGE_CXX_B = 8927,
+  WHILEGE_CXX_D = 8928,
+  WHILEGE_CXX_H = 8929,
+  WHILEGE_CXX_S = 8930,
+  WHILEGE_PWW_B = 8931,
+  WHILEGE_PWW_D = 8932,
+  WHILEGE_PWW_H = 8933,
+  WHILEGE_PWW_S = 8934,
+  WHILEGE_PXX_B = 8935,
+  WHILEGE_PXX_D = 8936,
+  WHILEGE_PXX_H = 8937,
+  WHILEGE_PXX_S = 8938,
+  WHILEGT_2PXX_B = 8939,
+  WHILEGT_2PXX_D = 8940,
+  WHILEGT_2PXX_H = 8941,
+  WHILEGT_2PXX_S = 8942,
+  WHILEGT_CXX_B = 8943,
+  WHILEGT_CXX_D = 8944,
+  WHILEGT_CXX_H = 8945,
+  WHILEGT_CXX_S = 8946,
+  WHILEGT_PWW_B = 8947,
+  WHILEGT_PWW_D = 8948,
+  WHILEGT_PWW_H = 8949,
+  WHILEGT_PWW_S = 8950,
+  WHILEGT_PXX_B = 8951,
+  WHILEGT_PXX_D = 8952,
+  WHILEGT_PXX_H = 8953,
+  WHILEGT_PXX_S = 8954,
+  WHILEHI_2PXX_B = 8955,
+  WHILEHI_2PXX_D = 8956,
+  WHILEHI_2PXX_H = 8957,
+  WHILEHI_2PXX_S = 8958,
+  WHILEHI_CXX_B = 8959,
+  WHILEHI_CXX_D = 8960,
+  WHILEHI_CXX_H = 8961,
+  WHILEHI_CXX_S = 8962,
+  WHILEHI_PWW_B = 8963,
+  WHILEHI_PWW_D = 8964,
+  WHILEHI_PWW_H = 8965,
+  WHILEHI_PWW_S = 8966,
+  WHILEHI_PXX_B = 8967,
+  WHILEHI_PXX_D = 8968,
+  WHILEHI_PXX_H = 8969,
+  WHILEHI_PXX_S = 8970,
+  WHILEHS_2PXX_B = 8971,
+  WHILEHS_2PXX_D = 8972,
+  WHILEHS_2PXX_H = 8973,
+  WHILEHS_2PXX_S = 8974,
+  WHILEHS_CXX_B = 8975,
+  WHILEHS_CXX_D = 8976,
+  WHILEHS_CXX_H = 8977,
+  WHILEHS_CXX_S = 8978,
+  WHILEHS_PWW_B = 8979,
+  WHILEHS_PWW_D = 8980,
+  WHILEHS_PWW_H = 8981,
+  WHILEHS_PWW_S = 8982,
+  WHILEHS_PXX_B = 8983,
+  WHILEHS_PXX_D = 8984,
+  WHILEHS_PXX_H = 8985,
+  WHILEHS_PXX_S = 8986,
+  WHILELE_2PXX_B = 8987,
+  WHILELE_2PXX_D = 8988,
+  WHILELE_2PXX_H = 8989,
+  WHILELE_2PXX_S = 8990,
+  WHILELE_CXX_B = 8991,
+  WHILELE_CXX_D = 8992,
+  WHILELE_CXX_H = 8993,
+  WHILELE_CXX_S = 8994,
+  WHILELE_PWW_B = 8995,
+  WHILELE_PWW_D = 8996,
+  WHILELE_PWW_H = 8997,
+  WHILELE_PWW_S = 8998,
+  WHILELE_PXX_B = 8999,
+  WHILELE_PXX_D = 9000,
+  WHILELE_PXX_H = 9001,
+  WHILELE_PXX_S = 9002,
+  WHILELO_2PXX_B = 9003,
+  WHILELO_2PXX_D = 9004,
+  WHILELO_2PXX_H = 9005,
+  WHILELO_2PXX_S = 9006,
+  WHILELO_CXX_B = 9007,
+  WHILELO_CXX_D = 9008,
+  WHILELO_CXX_H = 9009,
+  WHILELO_CXX_S = 9010,
+  WHILELO_PWW_B = 9011,
+  WHILELO_PWW_D = 9012,
+  WHILELO_PWW_H = 9013,
+  WHILELO_PWW_S = 9014,
+  WHILELO_PXX_B = 9015,
+  WHILELO_PXX_D = 9016,
+  WHILELO_PXX_H = 9017,
+  WHILELO_PXX_S = 9018,
+  WHILELS_2PXX_B = 9019,
+  WHILELS_2PXX_D = 9020,
+  WHILELS_2PXX_H = 9021,
+  WHILELS_2PXX_S = 9022,
+  WHILELS_CXX_B = 9023,
+  WHILELS_CXX_D = 9024,
+  WHILELS_CXX_H = 9025,
+  WHILELS_CXX_S = 9026,
+  WHILELS_PWW_B = 9027,
+  WHILELS_PWW_D = 9028,
+  WHILELS_PWW_H = 9029,
+  WHILELS_PWW_S = 9030,
+  WHILELS_PXX_B = 9031,
+  WHILELS_PXX_D = 9032,
+  WHILELS_PXX_H = 9033,
+  WHILELS_PXX_S = 9034,
+  WHILELT_2PXX_B = 9035,
+  WHILELT_2PXX_D = 9036,
+  WHILELT_2PXX_H = 9037,
+  WHILELT_2PXX_S = 9038,
+  WHILELT_CXX_B = 9039,
+  WHILELT_CXX_D = 9040,
+  WHILELT_CXX_H = 9041,
+  WHILELT_CXX_S = 9042,
+  WHILELT_PWW_B = 9043,
+  WHILELT_PWW_D = 9044,
+  WHILELT_PWW_H = 9045,
+  WHILELT_PWW_S = 9046,
+  WHILELT_PXX_B = 9047,
+  WHILELT_PXX_D = 9048,
+  WHILELT_PXX_H = 9049,
+  WHILELT_PXX_S = 9050,
+  WHILERW_PXX_B = 9051,
+  WHILERW_PXX_D = 9052,
+  WHILERW_PXX_H = 9053,
+  WHILERW_PXX_S = 9054,
+  WHILEWR_PXX_B = 9055,
+  WHILEWR_PXX_D = 9056,
+  WHILEWR_PXX_H = 9057,
+  WHILEWR_PXX_S = 9058,
+  WRFFR = 9059,
+  XAFLAG = 9060,
+  XAR = 9061,
+  XAR_ZZZI_B = 9062,
+  XAR_ZZZI_D = 9063,
+  XAR_ZZZI_H = 9064,
+  XAR_ZZZI_S = 9065,
+  XPACD = 9066,
+  XPACI = 9067,
+  XPACLRI = 9068,
+  XTNv16i8 = 9069,
+  XTNv2i32 = 9070,
+  XTNv4i16 = 9071,
+  XTNv4i32 = 9072,
+  XTNv8i16 = 9073,
+  XTNv8i8 = 9074,
+  ZERO_M = 9075,
+  ZERO_MXI_2Z = 9076,
+  ZERO_MXI_4Z = 9077,
+  ZERO_MXI_VG2_2Z = 9078,
+  ZERO_MXI_VG2_4Z = 9079,
+  ZERO_MXI_VG2_Z = 9080,
+  ZERO_MXI_VG4_2Z = 9081,
+  ZERO_MXI_VG4_4Z = 9082,
+  ZERO_MXI_VG4_Z = 9083,
+  ZERO_T = 9084,
+  ZIP1_PPP_B = 9085,
+  ZIP1_PPP_D = 9086,
+  ZIP1_PPP_H = 9087,
+  ZIP1_PPP_S = 9088,
+  ZIP1_ZZZ_B = 9089,
+  ZIP1_ZZZ_D = 9090,
+  ZIP1_ZZZ_H = 9091,
+  ZIP1_ZZZ_Q = 9092,
+  ZIP1_ZZZ_S = 9093,
+  ZIP1v16i8 = 9094,
+  ZIP1v2i32 = 9095,
+  ZIP1v2i64 = 9096,
+  ZIP1v4i16 = 9097,
+  ZIP1v4i32 = 9098,
+  ZIP1v8i16 = 9099,
+  ZIP1v8i8 = 9100,
+  ZIP2_PPP_B = 9101,
+  ZIP2_PPP_D = 9102,
+  ZIP2_PPP_H = 9103,
+  ZIP2_PPP_S = 9104,
+  ZIP2_ZZZ_B = 9105,
+  ZIP2_ZZZ_D = 9106,
+  ZIP2_ZZZ_H = 9107,
+  ZIP2_ZZZ_Q = 9108,
+  ZIP2_ZZZ_S = 9109,
+  ZIP2v16i8 = 9110,
+  ZIP2v2i32 = 9111,
+  ZIP2v2i64 = 9112,
+  ZIP2v4i16 = 9113,
+  ZIP2v4i32 = 9114,
+  ZIP2v8i16 = 9115,
+  ZIP2v8i8 = 9116,
+  ZIPQ1_ZZZ_B = 9117,
+  ZIPQ1_ZZZ_D = 9118,
+  ZIPQ1_ZZZ_H = 9119,
+  ZIPQ1_ZZZ_S = 9120,
+  ZIPQ2_ZZZ_B = 9121,
+  ZIPQ2_ZZZ_D = 9122,
+  ZIPQ2_ZZZ_H = 9123,
+  ZIPQ2_ZZZ_S = 9124,
+  ZIP_VG2_2ZZZ_B = 9125,
+  ZIP_VG2_2ZZZ_D = 9126,
+  ZIP_VG2_2ZZZ_H = 9127,
+  ZIP_VG2_2ZZZ_Q = 9128,
+  ZIP_VG2_2ZZZ_S = 9129,
+  ZIP_VG4_4Z4Z_B = 9130,
+  ZIP_VG4_4Z4Z_D = 9131,
+  ZIP_VG4_4Z4Z_H = 9132,
+  ZIP_VG4_4Z4Z_Q = 9133,
+  ZIP_VG4_4Z4Z_S = 9134,
+  INSTRUCTION_LIST_END = 9135,
 };
 }
 }
diff --git a/deps/LIEF/include/LIEF/asm/aarch64/operands.hpp b/deps/LIEF/include/LIEF/asm/aarch64/operands.hpp
index e3bbf86ab0d..525b9a45f74 100644
--- a/deps/LIEF/include/LIEF/asm/aarch64/operands.hpp
+++ b/deps/LIEF/include/LIEF/asm/aarch64/operands.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/deps/LIEF/include/LIEF/asm/aarch64/operands/Immediate.hpp b/deps/LIEF/include/LIEF/asm/aarch64/operands/Immediate.hpp
index 4fde9acf5de..3fc811b18e3 100644
--- a/deps/LIEF/include/LIEF/asm/aarch64/operands/Immediate.hpp
+++ b/deps/LIEF/include/LIEF/asm/aarch64/operands/Immediate.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/deps/LIEF/include/LIEF/asm/aarch64/operands/Memory.hpp b/deps/LIEF/include/LIEF/asm/aarch64/operands/Memory.hpp
index 51cdf3292b4..d110c9c7406 100644
--- a/deps/LIEF/include/LIEF/asm/aarch64/operands/Memory.hpp
+++ b/deps/LIEF/include/LIEF/asm/aarch64/operands/Memory.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/deps/LIEF/include/LIEF/asm/aarch64/operands/PCRelative.hpp b/deps/LIEF/include/LIEF/asm/aarch64/operands/PCRelative.hpp
index 23248cdffa7..e3516e2e500 100644
--- a/deps/LIEF/include/LIEF/asm/aarch64/operands/PCRelative.hpp
+++ b/deps/LIEF/include/LIEF/asm/aarch64/operands/PCRelative.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/deps/LIEF/include/LIEF/asm/aarch64/operands/Register.hpp b/deps/LIEF/include/LIEF/asm/aarch64/operands/Register.hpp
index 3f29f223ed2..61d9e09fd78 100644
--- a/deps/LIEF/include/LIEF/asm/aarch64/operands/Register.hpp
+++ b/deps/LIEF/include/LIEF/asm/aarch64/operands/Register.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/deps/LIEF/include/LIEF/asm/aarch64/registers.hpp b/deps/LIEF/include/LIEF/asm/aarch64/registers.hpp
index 3d8b1cafc1c..a48c7db8dad 100644
--- a/deps/LIEF/include/LIEF/asm/aarch64/registers.hpp
+++ b/deps/LIEF/include/LIEF/asm/aarch64/registers.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -1085,7 +1085,6 @@ enum class SYSREG {
   TRCEVENTCTL0R = 34880,
   TRCVDCTLR = 34882,
   TRCEXTINSELR = 34884,
-  TRCEXTINSELR0 = 34884,
   TRCCNTVR0 = 34885,
   TRCIDR0 = 34887,
   TRCEVENTCTL1R = 34888,
@@ -1367,7 +1366,6 @@ enum class SYSREG {
   MDCCSR_EL0 = 38920,
   DBGDTR_EL0 = 38944,
   DBGDTRRX_EL0 = 38952,
-  DBGDTRTX_EL0 = 38952,
   SPMCR_EL0 = 40160,
   SPMCNTENSET_EL0 = 40161,
   SPMCNTENCLR_EL0 = 40162,
@@ -1516,14 +1514,23 @@ enum class SYSREG {
   TTBR1_EL1 = 49409,
   TCR_EL1 = 49410,
   TCR2_EL1 = 49411,
+  IRTBRU_EL1 = 49412,
+  IRTBRP_EL1 = 49413,
+  DPOTBR0_EL1 = 49414,
+  DPOTBR1_EL1 = 49415,
   APIAKeyLo_EL1 = 49416,
   APIAKeyHi_EL1 = 49417,
   APIBKeyLo_EL1 = 49418,
   APIBKeyHi_EL1 = 49419,
+  LDSTT_EL1 = 49423,
   APDAKeyLo_EL1 = 49424,
   APDAKeyHi_EL1 = 49425,
   APDBKeyLo_EL1 = 49426,
   APDBKeyHi_EL1 = 49427,
+  TPMIN0_EL1 = 49428,
+  TPMAX0_EL1 = 49429,
+  TPMIN1_EL1 = 49430,
+  TPMAX1_EL1 = 49431,
   APGAKeyLo_EL1 = 49432,
   APGAKeyHi_EL1 = 49433,
   GCSCR_EL1 = 49448,
@@ -1533,8 +1540,74 @@ enum class SYSREG {
   TCR2MASK_EL1 = 49467,
   TCRALIAS_EL1 = 49470,
   TCR2ALIAS_EL1 = 49471,
+  FGDTP0_EL1 = 49552,
+  FGDTP1_EL1 = 49553,
+  FGDTP2_EL1 = 49554,
+  FGDTP3_EL1 = 49555,
+  FGDTP4_EL1 = 49556,
+  FGDTP5_EL1 = 49557,
+  FGDTP6_EL1 = 49558,
+  FGDTP7_EL1 = 49559,
+  FGDTP8_EL1 = 49560,
+  FGDTP9_EL1 = 49561,
+  FGDTP10_EL1 = 49562,
+  FGDTP11_EL1 = 49563,
+  FGDTP12_EL1 = 49564,
+  FGDTP13_EL1 = 49565,
+  FGDTP14_EL1 = 49566,
+  FGDTP15_EL1 = 49567,
+  FGDTU0_EL1 = 49568,
+  FGDTU1_EL1 = 49569,
+  FGDTU2_EL1 = 49570,
+  FGDTU3_EL1 = 49571,
+  FGDTU4_EL1 = 49572,
+  FGDTU5_EL1 = 49573,
+  FGDTU6_EL1 = 49574,
+  FGDTU7_EL1 = 49575,
+  FGDTU8_EL1 = 49576,
+  FGDTU9_EL1 = 49577,
+  FGDTU10_EL1 = 49578,
+  FGDTU11_EL1 = 49579,
+  FGDTU12_EL1 = 49580,
+  FGDTU13_EL1 = 49581,
+  FGDTU14_EL1 = 49582,
+  FGDTU15_EL1 = 49583,
+  AFGDTP0_EL1 = 49584,
+  AFGDTP1_EL1 = 49585,
+  AFGDTP2_EL1 = 49586,
+  AFGDTP3_EL1 = 49587,
+  AFGDTP4_EL1 = 49588,
+  AFGDTP5_EL1 = 49589,
+  AFGDTP6_EL1 = 49590,
+  AFGDTP7_EL1 = 49591,
+  AFGDTP8_EL1 = 49592,
+  AFGDTP9_EL1 = 49593,
+  AFGDTP10_EL1 = 49594,
+  AFGDTP11_EL1 = 49595,
+  AFGDTP12_EL1 = 49596,
+  AFGDTP13_EL1 = 49597,
+  AFGDTP14_EL1 = 49598,
+  AFGDTP15_EL1 = 49599,
+  AFGDTU0_EL1 = 49600,
+  AFGDTU1_EL1 = 49601,
+  AFGDTU2_EL1 = 49602,
+  AFGDTU3_EL1 = 49603,
+  AFGDTU4_EL1 = 49604,
+  AFGDTU5_EL1 = 49605,
+  AFGDTU6_EL1 = 49606,
+  AFGDTU7_EL1 = 49607,
+  AFGDTU8_EL1 = 49608,
+  AFGDTU9_EL1 = 49609,
+  AFGDTU10_EL1 = 49610,
+  AFGDTU11_EL1 = 49611,
+  AFGDTU12_EL1 = 49612,
+  AFGDTU13_EL1 = 49613,
+  AFGDTU14_EL1 = 49614,
+  AFGDTU15_EL1 = 49615,
   SPSR_EL1 = 49664,
   ELR_EL1 = 49665,
+  STINDEX_EL1 = 49666,
+  TINDEX_EL1 = 49667,
   SP_EL0 = 49672,
   SPSel = 49680,
   CurrentEL = 49682,
@@ -1634,6 +1707,8 @@ enum class SYSREG {
   PIR_EL1 = 50451,
   POR_EL1 = 50452,
   S2POR_EL1 = 50453,
+  TTTBRU_EL1 = 50454,
+  TTTBRP_EL1 = 50455,
   AMAIR_EL1 = 50456,
   AMAIR2_EL1 = 50457,
   LORSA_EL1 = 50464,
@@ -1642,9 +1717,11 @@ enum class SYSREG {
   LORC_EL1 = 50467,
   MPAMIDR_EL1 = 50468,
   MPAMBWIDR_EL1 = 50469,
+  TLBIDIDR_EL1 = 50470,
   LORID_EL1 = 50471,
   MPAM1_EL1 = 50472,
   MPAM0_EL1 = 50473,
+  MPAMCTL_EL1 = 50474,
   MPAMSM_EL1 = 50475,
   MPAMBW1_EL1 = 50476,
   MPAMBW0_EL1 = 50477,
@@ -1667,6 +1744,14 @@ enum class SYSREG {
   ICC_AP1R2_EL1 = 50762,
   ICC_AP1R3_EL1 = 50763,
   ICC_NMIAR1_EL1 = 50765,
+  ICC_PPI_HMR0_EL1 = 50768,
+  ICC_PPI_HMR1_EL1 = 50769,
+  ICC_IDR0_EL1 = 50770,
+  ICC_HPPIR_EL1 = 50771,
+  ICC_ICSR_EL1 = 50772,
+  ICC_IAFFIDR_EL1 = 50773,
+  ICC_PPI_ENABLER0_EL1 = 50774,
+  ICC_PPI_ENABLER1_EL1 = 50775,
   ICC_DIR_EL1 = 50777,
   ICC_RPR_EL1 = 50779,
   ICC_SGI1R_EL1 = 50781,
@@ -1680,6 +1765,31 @@ enum class SYSREG {
   ICC_SRE_EL1 = 50789,
   ICC_IGRPEN0_EL1 = 50790,
   ICC_IGRPEN1_EL1 = 50791,
+  ICC_PPI_CACTIVER0_EL1 = 50792,
+  ICC_PPI_CACTIVER1_EL1 = 50793,
+  ICC_PPI_SACTIVER0_EL1 = 50794,
+  ICC_PPI_SACTIVER1_EL1 = 50795,
+  ICC_PPI_CPENDR0_EL1 = 50796,
+  ICC_PPI_CPENDR1_EL1 = 50797,
+  ICC_PPI_SPENDR0_EL1 = 50798,
+  ICC_PPI_SPENDR1_EL1 = 50799,
+  ICC_PPI_PRIORITYR0_EL1 = 50800,
+  ICC_PPI_PRIORITYR1_EL1 = 50801,
+  ICC_PPI_PRIORITYR2_EL1 = 50802,
+  ICC_PPI_PRIORITYR3_EL1 = 50803,
+  ICC_PPI_PRIORITYR4_EL1 = 50804,
+  ICC_PPI_PRIORITYR5_EL1 = 50805,
+  ICC_PPI_PRIORITYR6_EL1 = 50806,
+  ICC_PPI_PRIORITYR7_EL1 = 50807,
+  ICC_PPI_PRIORITYR8_EL1 = 50808,
+  ICC_PPI_PRIORITYR9_EL1 = 50809,
+  ICC_PPI_PRIORITYR10_EL1 = 50810,
+  ICC_PPI_PRIORITYR11_EL1 = 50811,
+  ICC_PPI_PRIORITYR12_EL1 = 50812,
+  ICC_PPI_PRIORITYR13_EL1 = 50813,
+  ICC_PPI_PRIORITYR14_EL1 = 50814,
+  ICC_PPI_PRIORITYR15_EL1 = 50815,
+  TPIDR3_EL1 = 50816,
   CONTEXTIDR_EL1 = 50817,
   RCWSMASK_EL1 = 50819,
   TPIDR_EL1 = 50820,
@@ -1693,12 +1803,21 @@ enum class SYSREG {
   GMID_EL1 = 51204,
   SMIDR_EL1 = 51206,
   AIDR_EL1 = 51207,
+  ICC_APR_EL1 = 52736,
+  ICC_CR0_EL1 = 52737,
+  ICC_PCR_EL1 = 52738,
+  ICC_HAPR_EL1 = 52739,
   CSSELR_EL1 = 53248,
   CTR_EL0 = 55297,
   DCZID_EL0 = 55303,
+  TPMIN0_EL0 = 55572,
+  TPMAX0_EL0 = 55573,
+  TPMIN1_EL0 = 55574,
+  TPMAX1_EL0 = 55575,
   RNDR = 55584,
   RNDRRS = 55585,
   GCSPR_EL0 = 55593,
+  TINDEX_EL0 = 55811,
   NZCV = 55824,
   DAIF = 55825,
   SVCR = 55826,
@@ -1710,6 +1829,7 @@ enum class SYSREG {
   FPMR = 55842,
   DSPSR_EL0 = 55848,
   DLR_EL0 = 55849,
+  DPOCR_EL0 = 55850,
   PMICNTR_EL0 = 56480,
   PMICFILTR_EL0 = 56496,
   PMCR_EL0 = 56544,
@@ -1727,6 +1847,7 @@ enum class SYSREG {
   PMUSERENR_EL0 = 56560,
   PMOVSSET_EL0 = 56563,
   POR_EL0 = 56596,
+  TPIDR3_EL0 = 56960,
   TPIDR_EL0 = 56962,
   TPIDRRO_EL0 = 56963,
   TPIDR2_EL0 = 56965,
@@ -1879,14 +2000,29 @@ enum class SYSREG {
   ACTLRMASK_EL2 = 57505,
   CPTRMASK_EL2 = 57506,
   SCTLR2MASK_EL2 = 57507,
+  NVHCR_EL2 = 57512,
+  NVHCRX_EL2 = 57513,
+  NVHCRMASK_EL2 = 57516,
+  NVHCRXMASK_EL2 = 57517,
+  HCRMASK_EL2 = 57518,
+  HCRXMASK_EL2 = 57519,
   TTBR0_EL2 = 57600,
-  VSCTLR_EL2 = 57600,
   TTBR1_EL2 = 57601,
   TCR_EL2 = 57602,
   TCR2_EL2 = 57603,
+  IRTBRU_EL2 = 57604,
+  IRTBRP_EL2 = 57605,
+  DPOTBR0_EL2 = 57606,
+  DPOTBR1_EL2 = 57607,
   VTTBR_EL2 = 57608,
   VTCR_EL2 = 57610,
+  LDSTT_EL2 = 57615,
   VNCR_EL2 = 57616,
+  VNCCR_EL2 = 57617,
+  TPMIN0_EL2 = 57620,
+  TPMAX0_EL2 = 57621,
+  TPMIN1_EL2 = 57622,
+  TPMAX1_EL2 = 57623,
   HDBSSBR_EL2 = 57626,
   HDBSSPROD_EL2 = 57627,
   HACDBSBR_EL2 = 57628,
@@ -1897,6 +2033,14 @@ enum class SYSREG {
   VSTCR_EL2 = 57650,
   TCRMASK_EL2 = 57658,
   TCR2MASK_EL2 = 57659,
+  VTLBID0_EL2 = 57664,
+  VTLBID1_EL2 = 57665,
+  VTLBID2_EL2 = 57666,
+  VTLBID3_EL2 = 57667,
+  VTLBIDOS0_EL2 = 57672,
+  VTLBIDOS1_EL2 = 57673,
+  VTLBIDOS2_EL2 = 57674,
+  VTLBIDOS3_EL2 = 57675,
   DACR32_EL2 = 57728,
   HDFGRTR2_EL2 = 57736,
   HDFGWTR2_EL2 = 57737,
@@ -1906,8 +2050,74 @@ enum class SYSREG {
   HDFGWTR_EL2 = 57741,
   HAFGRTR_EL2 = 57742,
   HFGITR2_EL2 = 57743,
+  FGDTP0_EL2 = 57744,
+  FGDTP1_EL2 = 57745,
+  FGDTP2_EL2 = 57746,
+  FGDTP3_EL2 = 57747,
+  FGDTP4_EL2 = 57748,
+  FGDTP5_EL2 = 57749,
+  FGDTP6_EL2 = 57750,
+  FGDTP7_EL2 = 57751,
+  FGDTP8_EL2 = 57752,
+  FGDTP9_EL2 = 57753,
+  FGDTP10_EL2 = 57754,
+  FGDTP11_EL2 = 57755,
+  FGDTP12_EL2 = 57756,
+  FGDTP13_EL2 = 57757,
+  FGDTP14_EL2 = 57758,
+  FGDTP15_EL2 = 57759,
+  FGDTU0_EL2 = 57760,
+  FGDTU1_EL2 = 57761,
+  FGDTU2_EL2 = 57762,
+  FGDTU3_EL2 = 57763,
+  FGDTU4_EL2 = 57764,
+  FGDTU5_EL2 = 57765,
+  FGDTU6_EL2 = 57766,
+  FGDTU7_EL2 = 57767,
+  FGDTU8_EL2 = 57768,
+  FGDTU9_EL2 = 57769,
+  FGDTU10_EL2 = 57770,
+  FGDTU11_EL2 = 57771,
+  FGDTU12_EL2 = 57772,
+  FGDTU13_EL2 = 57773,
+  FGDTU14_EL2 = 57774,
+  FGDTU15_EL2 = 57775,
+  AFGDTP0_EL2 = 57776,
+  AFGDTP1_EL2 = 57777,
+  AFGDTP2_EL2 = 57778,
+  AFGDTP3_EL2 = 57779,
+  AFGDTP4_EL2 = 57780,
+  AFGDTP5_EL2 = 57781,
+  AFGDTP6_EL2 = 57782,
+  AFGDTP7_EL2 = 57783,
+  AFGDTP8_EL2 = 57784,
+  AFGDTP9_EL2 = 57785,
+  AFGDTP10_EL2 = 57786,
+  AFGDTP11_EL2 = 57787,
+  AFGDTP12_EL2 = 57788,
+  AFGDTP13_EL2 = 57789,
+  AFGDTP14_EL2 = 57790,
+  AFGDTP15_EL2 = 57791,
+  AFGDTU0_EL2 = 57792,
+  AFGDTU1_EL2 = 57793,
+  AFGDTU2_EL2 = 57794,
+  AFGDTU3_EL2 = 57795,
+  AFGDTU4_EL2 = 57796,
+  AFGDTU5_EL2 = 57797,
+  AFGDTU6_EL2 = 57798,
+  AFGDTU7_EL2 = 57799,
+  AFGDTU8_EL2 = 57800,
+  AFGDTU9_EL2 = 57801,
+  AFGDTU10_EL2 = 57802,
+  AFGDTU11_EL2 = 57803,
+  AFGDTU12_EL2 = 57804,
+  AFGDTU13_EL2 = 57805,
+  AFGDTU14_EL2 = 57806,
+  AFGDTU15_EL2 = 57807,
   SPSR_EL2 = 57856,
   ELR_EL2 = 57857,
+  STINDEX_EL2 = 57858,
+  TINDEX_EL2 = 57859,
   SP_EL1 = 57864,
   SPSR_irq = 57880,
   SPSR_abt = 57881,
@@ -1966,11 +2176,14 @@ enum class SYSREG {
   PIR_EL2 = 58643,
   POR_EL2 = 58644,
   S2PIR_EL2 = 58645,
+  TTTBRU_EL2 = 58646,
+  TTTBRP_EL2 = 58647,
   AMAIR_EL2 = 58648,
   AMAIR2_EL2 = 58649,
   MPAMHCR_EL2 = 58656,
   MPAMVPMV_EL2 = 58657,
   MPAM2_EL2 = 58664,
+  MPAMCTL_EL2 = 58666,
   MPAMBW2_EL2 = 58668,
   MPAMBWCAP_EL2 = 58670,
   MPAMVPM0_EL2 = 58672,
@@ -1981,6 +2194,8 @@ enum class SYSREG {
   MPAMVPM5_EL2 = 58677,
   MPAMVPM6_EL2 = 58678,
   MPAMVPM7_EL2 = 58679,
+  MPAMVIDCR_EL2 = 58680,
+  MPAMVIDSR_EL2 = 58681,
   MECID_P0_EL2 = 58688,
   MECID_A0_EL2 = 58689,
   MECID_P1_EL2 = 58690,
@@ -1996,16 +2211,31 @@ enum class SYSREG {
   ICH_AP0R1_EL2 = 58945,
   ICH_AP0R2_EL2 = 58946,
   ICH_AP0R3_EL2 = 58947,
+  ICH_APR_EL2 = 58948,
+  ICH_HPPIR_EL2 = 58949,
   ICH_AP1R0_EL2 = 58952,
   ICH_AP1R1_EL2 = 58953,
   ICH_AP1R2_EL2 = 58954,
   ICH_AP1R3_EL2 = 58955,
+  ICH_HFGRTR_EL2 = 58956,
   ICC_SRE_EL2 = 58957,
+  ICH_HFGWTR_EL2 = 58958,
+  ICH_HFGITR_EL2 = 58959,
+  ICH_PPI_DVIR0_EL2 = 58960,
+  ICH_PPI_DVIR1_EL2 = 58961,
+  ICH_PPI_ENABLER0_EL2 = 58962,
+  ICH_PPI_ENABLER1_EL2 = 58963,
+  ICH_PPI_PENDR0_EL2 = 58964,
+  ICH_PPI_PENDR1_EL2 = 58965,
+  ICH_PPI_ACTIVER0_EL2 = 58966,
+  ICH_PPI_ACTIVER1_EL2 = 58967,
   ICH_HCR_EL2 = 58968,
   ICH_VTR_EL2 = 58969,
   ICH_MISR_EL2 = 58970,
   ICH_EISR_EL2 = 58971,
+  ICH_VCTLR_EL2 = 58972,
   ICH_ELRSR_EL2 = 58973,
+  ICH_CONTEXTR_EL2 = 58974,
   ICH_VMCR_EL2 = 58975,
   ICH_LR0_EL2 = 58976,
   ICH_LR1_EL2 = 58977,
@@ -2023,6 +2253,23 @@ enum class SYSREG {
   ICH_LR13_EL2 = 58989,
   ICH_LR14_EL2 = 58990,
   ICH_LR15_EL2 = 58991,
+  ICH_PPI_PRIORITYR0_EL2 = 58992,
+  ICH_PPI_PRIORITYR1_EL2 = 58993,
+  ICH_PPI_PRIORITYR2_EL2 = 58994,
+  ICH_PPI_PRIORITYR3_EL2 = 58995,
+  ICH_PPI_PRIORITYR4_EL2 = 58996,
+  ICH_PPI_PRIORITYR5_EL2 = 58997,
+  ICH_PPI_PRIORITYR6_EL2 = 58998,
+  ICH_PPI_PRIORITYR7_EL2 = 58999,
+  ICH_PPI_PRIORITYR8_EL2 = 59000,
+  ICH_PPI_PRIORITYR9_EL2 = 59001,
+  ICH_PPI_PRIORITYR10_EL2 = 59002,
+  ICH_PPI_PRIORITYR11_EL2 = 59003,
+  ICH_PPI_PRIORITYR12_EL2 = 59004,
+  ICH_PPI_PRIORITYR13_EL2 = 59005,
+  ICH_PPI_PRIORITYR14_EL2 = 59006,
+  ICH_PPI_PRIORITYR15_EL2 = 59007,
+  TPIDR3_EL2 = 59008,
   CONTEXTIDR_EL2 = 59009,
   TPIDR_EL2 = 59010,
   SCXTNUM_EL2 = 59015,
@@ -2092,12 +2339,87 @@ enum class SYSREG {
   TTBR1_EL12 = 59649,
   TCR_EL12 = 59650,
   TCR2_EL12 = 59651,
+  IRTBRU_EL12 = 59652,
+  IRTBRP_EL12 = 59653,
+  DPOTBR0_EL12 = 59654,
+  DPOTBR1_EL12 = 59655,
+  LDSTT_EL12 = 59663,
+  TPMIN0_EL12 = 59668,
+  TPMAX0_EL12 = 59669,
+  TPMIN1_EL12 = 59670,
+  TPMAX1_EL12 = 59671,
   GCSCR_EL12 = 59688,
   GCSPR_EL12 = 59689,
   TCRMASK_EL12 = 59706,
   TCR2MASK_EL12 = 59707,
+  FGDTP0_EL12 = 59792,
+  FGDTP1_EL12 = 59793,
+  FGDTP2_EL12 = 59794,
+  FGDTP3_EL12 = 59795,
+  FGDTP4_EL12 = 59796,
+  FGDTP5_EL12 = 59797,
+  FGDTP6_EL12 = 59798,
+  FGDTP7_EL12 = 59799,
+  FGDTP8_EL12 = 59800,
+  FGDTP9_EL12 = 59801,
+  FGDTP10_EL12 = 59802,
+  FGDTP11_EL12 = 59803,
+  FGDTP12_EL12 = 59804,
+  FGDTP13_EL12 = 59805,
+  FGDTP14_EL12 = 59806,
+  FGDTP15_EL12 = 59807,
+  FGDTU0_EL12 = 59808,
+  FGDTU1_EL12 = 59809,
+  FGDTU2_EL12 = 59810,
+  FGDTU3_EL12 = 59811,
+  FGDTU4_EL12 = 59812,
+  FGDTU5_EL12 = 59813,
+  FGDTU6_EL12 = 59814,
+  FGDTU7_EL12 = 59815,
+  FGDTU8_EL12 = 59816,
+  FGDTU9_EL12 = 59817,
+  FGDTU10_EL12 = 59818,
+  FGDTU11_EL12 = 59819,
+  FGDTU12_EL12 = 59820,
+  FGDTU13_EL12 = 59821,
+  FGDTU14_EL12 = 59822,
+  FGDTU15_EL12 = 59823,
+  AFGDTP0_EL12 = 59824,
+  AFGDTP1_EL12 = 59825,
+  AFGDTP2_EL12 = 59826,
+  AFGDTP3_EL12 = 59827,
+  AFGDTP4_EL12 = 59828,
+  AFGDTP5_EL12 = 59829,
+  AFGDTP6_EL12 = 59830,
+  AFGDTP7_EL12 = 59831,
+  AFGDTP8_EL12 = 59832,
+  AFGDTP9_EL12 = 59833,
+  AFGDTP10_EL12 = 59834,
+  AFGDTP11_EL12 = 59835,
+  AFGDTP12_EL12 = 59836,
+  AFGDTP13_EL12 = 59837,
+  AFGDTP14_EL12 = 59838,
+  AFGDTP15_EL12 = 59839,
+  AFGDTU0_EL12 = 59840,
+  AFGDTU1_EL12 = 59841,
+  AFGDTU2_EL12 = 59842,
+  AFGDTU3_EL12 = 59843,
+  AFGDTU4_EL12 = 59844,
+  AFGDTU5_EL12 = 59845,
+  AFGDTU6_EL12 = 59846,
+  AFGDTU7_EL12 = 59847,
+  AFGDTU8_EL12 = 59848,
+  AFGDTU9_EL12 = 59849,
+  AFGDTU10_EL12 = 59850,
+  AFGDTU11_EL12 = 59851,
+  AFGDTU12_EL12 = 59852,
+  AFGDTU13_EL12 = 59853,
+  AFGDTU14_EL12 = 59854,
+  AFGDTU15_EL12 = 59855,
   SPSR_EL12 = 59904,
   ELR_EL12 = 59905,
+  STINDEX_EL12 = 59906,
+  TINDEX_EL12 = 59907,
   AFSR0_EL12 = 60040,
   AFSR1_EL12 = 60041,
   ESR_EL12 = 60048,
@@ -2112,11 +2434,15 @@ enum class SYSREG {
   PIRE0_EL12 = 60690,
   PIR_EL12 = 60691,
   POR_EL12 = 60692,
+  TTTBRU_EL12 = 60694,
+  TTTBRP_EL12 = 60695,
   AMAIR_EL12 = 60696,
   AMAIR2_EL12 = 60697,
   MPAM1_EL12 = 60712,
+  MPAMCTL_EL12 = 60714,
   MPAMBW1_EL12 = 60716,
   VBAR_EL12 = 60928,
+  TPIDR3_EL12 = 61056,
   CONTEXTIDR_EL12 = 61057,
   SCXTNUM_EL12 = 61063,
   CNTKCTL_EL12 = 61192,
@@ -2138,13 +2464,49 @@ enum class SYSREG {
   MDCR_EL3 = 61593,
   TTBR0_EL3 = 61696,
   TCR_EL3 = 61698,
+  IRTBRP_EL3 = 61701,
+  DPOTBR0_EL3 = 61702,
   GPTBR_EL3 = 61708,
   GPCBW_EL3 = 61709,
   GPCCR_EL3 = 61710,
   GCSCR_EL3 = 61736,
   GCSPR_EL3 = 61737,
+  FGDTP0_EL3 = 61840,
+  FGDTP1_EL3 = 61841,
+  FGDTP2_EL3 = 61842,
+  FGDTP3_EL3 = 61843,
+  FGDTP4_EL3 = 61844,
+  FGDTP5_EL3 = 61845,
+  FGDTP6_EL3 = 61846,
+  FGDTP7_EL3 = 61847,
+  FGDTP8_EL3 = 61848,
+  FGDTP9_EL3 = 61849,
+  FGDTP10_EL3 = 61850,
+  FGDTP11_EL3 = 61851,
+  FGDTP12_EL3 = 61852,
+  FGDTP13_EL3 = 61853,
+  FGDTP14_EL3 = 61854,
+  FGDTP15_EL3 = 61855,
+  AFGDTP0_EL3 = 61872,
+  AFGDTP1_EL3 = 61873,
+  AFGDTP2_EL3 = 61874,
+  AFGDTP3_EL3 = 61875,
+  AFGDTP4_EL3 = 61876,
+  AFGDTP5_EL3 = 61877,
+  AFGDTP6_EL3 = 61878,
+  AFGDTP7_EL3 = 61879,
+  AFGDTP8_EL3 = 61880,
+  AFGDTP9_EL3 = 61881,
+  AFGDTP10_EL3 = 61882,
+  AFGDTP11_EL3 = 61883,
+  AFGDTP12_EL3 = 61884,
+  AFGDTP13_EL3 = 61885,
+  AFGDTP14_EL3 = 61886,
+  AFGDTP15_EL3 = 61887,
   SPSR_EL3 = 61952,
   ELR_EL3 = 61953,
+  STINDEX_EL3 = 61954,
+  TINDEX_EL3 = 61955,
   SP_EL2 = 61960,
   AFSR0_EL3 = 62088,
   AFSR1_EL3 = 62089,
@@ -2159,24 +2521,37 @@ enum class SYSREG {
   MAIR_EL3 = 62736,
   PIR_EL3 = 62739,
   POR_EL3 = 62740,
+  TTTBRP_EL3 = 62743,
   AMAIR_EL3 = 62744,
   AMAIR2_EL3 = 62745,
   MPAM3_EL3 = 62760,
+  MPAMCTL_EL3 = 62762,
   MPAMBW3_EL3 = 62764,
+  MPAMVIDSR_EL3 = 62777,
   MECID_RL_A_EL3 = 62801,
   VBAR_EL3 = 62976,
   RVBAR_EL3 = 62977,
   RMR_EL3 = 62978,
   VDISR_EL3 = 62985,
+  ICC_APR_EL3 = 63040,
+  ICC_PCR_EL3 = 63041,
+  ICC_DOMHPPIR_EL3 = 63042,
+  ICC_PPI_DOMAINR0_EL3 = 63044,
+  ICC_PPI_DOMAINR1_EL3 = 63045,
+  ICC_PPI_DOMAINR2_EL3 = 63046,
+  ICC_PPI_DOMAINR3_EL3 = 63047,
+  ICC_CR0_EL3 = 63048,
+  ICC_HPPIR_EL3 = 63049,
   ICC_CTLR_EL3 = 63076,
   ICC_SRE_EL3 = 63077,
   ICC_IGRPEN1_EL3 = 63079,
+  TPIDR3_EL3 = 63104,
   TPIDR_EL3 = 63106,
   SCXTNUM_EL3 = 63111,
   CNTPS_TVAL_EL1 = 65296,
   CNTPS_CTL_EL1 = 65297,
   CNTPS_CVAL_EL1 = 65298,
-  NUM_TARGET_SYSREGS = 1254,
+  NUM_TARGET_SYSREGS = 1665,
 };
 }
 }
diff --git a/deps/LIEF/include/LIEF/asm/arm.hpp b/deps/LIEF/include/LIEF/asm/arm.hpp
index 64b8faaa0ba..685af56ac7b 100644
--- a/deps/LIEF/include/LIEF/asm/arm.hpp
+++ b/deps/LIEF/include/LIEF/asm/arm.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/deps/LIEF/include/LIEF/asm/arm/Instruction.hpp b/deps/LIEF/include/LIEF/asm/arm/Instruction.hpp
index b8a79e700ca..8735a7cf7cf 100644
--- a/deps/LIEF/include/LIEF/asm/arm/Instruction.hpp
+++ b/deps/LIEF/include/LIEF/asm/arm/Instruction.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/deps/LIEF/include/LIEF/asm/arm/opcodes.hpp b/deps/LIEF/include/LIEF/asm/arm/opcodes.hpp
index 2e0efc79a95..57c852ac243 100644
--- a/deps/LIEF/include/LIEF/asm/arm/opcodes.hpp
+++ b/deps/LIEF/include/LIEF/asm/arm/opcodes.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -15,7 +15,7 @@
 #ifndef LIEF_ASM_ARM_OPCODE_H
 #define LIEF_ASM_ARM_OPCODE_H

-/* Generated from LLVM: 21.1.0 */
+/* Generated from LLVM: 22.1.8 */

 namespace LIEF {
 namespace assembly {
@@ -42,4497 +42,4505 @@ enum class OPCODE {
   DBG_LABEL = 18,
   REG_SEQUENCE = 19,
   COPY = 20,
-  BUNDLE = 21,
-  LIFETIME_START = 22,
-  LIFETIME_END = 23,
-  PSEUDO_PROBE = 24,
-  ARITH_FENCE = 25,
-  STACKMAP = 26,
-  FENTRY_CALL = 27,
-  PATCHPOINT = 28,
-  LOAD_STACK_GUARD = 29,
-  PREALLOCATED_SETUP = 30,
-  PREALLOCATED_ARG = 31,
-  STATEPOINT = 32,
-  LOCAL_ESCAPE = 33,
-  FAULTING_OP = 34,
-  PATCHABLE_OP = 35,
-  PATCHABLE_FUNCTION_ENTER = 36,
-  PATCHABLE_RET = 37,
-  PATCHABLE_FUNCTION_EXIT = 38,
-  PATCHABLE_TAIL_CALL = 39,
-  PATCHABLE_EVENT_CALL = 40,
-  PATCHABLE_TYPED_EVENT_CALL = 41,
-  ICALL_BRANCH_FUNNEL = 42,
-  FAKE_USE = 43,
-  MEMBARRIER = 44,
-  JUMP_TABLE_DEBUG_INFO = 45,
-  CONVERGENCECTRL_ENTRY = 46,
-  CONVERGENCECTRL_ANCHOR = 47,
-  CONVERGENCECTRL_LOOP = 48,
-  CONVERGENCECTRL_GLUE = 49,
-  G_ASSERT_SEXT = 50,
-  G_ASSERT_ZEXT = 51,
-  G_ASSERT_ALIGN = 52,
-  G_ADD = 53,
-  G_SUB = 54,
-  G_MUL = 55,
-  G_SDIV = 56,
-  G_UDIV = 57,
-  G_SREM = 58,
-  G_UREM = 59,
-  G_SDIVREM = 60,
-  G_UDIVREM = 61,
-  G_AND = 62,
-  G_OR = 63,
-  G_XOR = 64,
-  G_ABDS = 65,
-  G_ABDU = 66,
-  G_IMPLICIT_DEF = 67,
-  G_PHI = 68,
-  G_FRAME_INDEX = 69,
-  G_GLOBAL_VALUE = 70,
-  G_PTRAUTH_GLOBAL_VALUE = 71,
-  G_CONSTANT_POOL = 72,
-  G_EXTRACT = 73,
-  G_UNMERGE_VALUES = 74,
-  G_INSERT = 75,
-  G_MERGE_VALUES = 76,
-  G_BUILD_VECTOR = 77,
-  G_BUILD_VECTOR_TRUNC = 78,
-  G_CONCAT_VECTORS = 79,
-  G_PTRTOINT = 80,
-  G_INTTOPTR = 81,
-  G_BITCAST = 82,
-  G_FREEZE = 83,
-  G_CONSTANT_FOLD_BARRIER = 84,
-  G_INTRINSIC_FPTRUNC_ROUND = 85,
-  G_INTRINSIC_TRUNC = 86,
-  G_INTRINSIC_ROUND = 87,
-  G_INTRINSIC_LRINT = 88,
-  G_INTRINSIC_LLRINT = 89,
-  G_INTRINSIC_ROUNDEVEN = 90,
-  G_READCYCLECOUNTER = 91,
-  G_READSTEADYCOUNTER = 92,
-  G_LOAD = 93,
-  G_SEXTLOAD = 94,
-  G_ZEXTLOAD = 95,
-  G_INDEXED_LOAD = 96,
-  G_INDEXED_SEXTLOAD = 97,
-  G_INDEXED_ZEXTLOAD = 98,
-  G_STORE = 99,
-  G_INDEXED_STORE = 100,
-  G_ATOMIC_CMPXCHG_WITH_SUCCESS = 101,
-  G_ATOMIC_CMPXCHG = 102,
-  G_ATOMICRMW_XCHG = 103,
-  G_ATOMICRMW_ADD = 104,
-  G_ATOMICRMW_SUB = 105,
-  G_ATOMICRMW_AND = 106,
-  G_ATOMICRMW_NAND = 107,
-  G_ATOMICRMW_OR = 108,
-  G_ATOMICRMW_XOR = 109,
-  G_ATOMICRMW_MAX = 110,
-  G_ATOMICRMW_MIN = 111,
-  G_ATOMICRMW_UMAX = 112,
-  G_ATOMICRMW_UMIN = 113,
-  G_ATOMICRMW_FADD = 114,
-  G_ATOMICRMW_FSUB = 115,
-  G_ATOMICRMW_FMAX = 116,
-  G_ATOMICRMW_FMIN = 117,
-  G_ATOMICRMW_FMAXIMUM = 118,
-  G_ATOMICRMW_FMINIMUM = 119,
-  G_ATOMICRMW_UINC_WRAP = 120,
-  G_ATOMICRMW_UDEC_WRAP = 121,
-  G_ATOMICRMW_USUB_COND = 122,
-  G_ATOMICRMW_USUB_SAT = 123,
-  G_FENCE = 124,
-  G_PREFETCH = 125,
-  G_BRCOND = 126,
-  G_BRINDIRECT = 127,
-  G_INVOKE_REGION_START = 128,
-  G_INTRINSIC = 129,
-  G_INTRINSIC_W_SIDE_EFFECTS = 130,
-  G_INTRINSIC_CONVERGENT = 131,
-  G_INTRINSIC_CONVERGENT_W_SIDE_EFFECTS = 132,
-  G_ANYEXT = 133,
-  G_TRUNC = 134,
-  G_TRUNC_SSAT_S = 135,
-  G_TRUNC_SSAT_U = 136,
-  G_TRUNC_USAT_U = 137,
-  G_CONSTANT = 138,
-  G_FCONSTANT = 139,
-  G_VASTART = 140,
-  G_VAARG = 141,
-  G_SEXT = 142,
-  G_SEXT_INREG = 143,
-  G_ZEXT = 144,
-  G_SHL = 145,
-  G_LSHR = 146,
-  G_ASHR = 147,
-  G_FSHL = 148,
-  G_FSHR = 149,
-  G_ROTR = 150,
-  G_ROTL = 151,
-  G_ICMP = 152,
-  G_FCMP = 153,
-  G_SCMP = 154,
-  G_UCMP = 155,
-  G_SELECT = 156,
-  G_UADDO = 157,
-  G_UADDE = 158,
-  G_USUBO = 159,
-  G_USUBE = 160,
-  G_SADDO = 161,
-  G_SADDE = 162,
-  G_SSUBO = 163,
-  G_SSUBE = 164,
-  G_UMULO = 165,
-  G_SMULO = 166,
-  G_UMULH = 167,
-  G_SMULH = 168,
-  G_UADDSAT = 169,
-  G_SADDSAT = 170,
-  G_USUBSAT = 171,
-  G_SSUBSAT = 172,
-  G_USHLSAT = 173,
-  G_SSHLSAT = 174,
-  G_SMULFIX = 175,
-  G_UMULFIX = 176,
-  G_SMULFIXSAT = 177,
-  G_UMULFIXSAT = 178,
-  G_SDIVFIX = 179,
-  G_UDIVFIX = 180,
-  G_SDIVFIXSAT = 181,
-  G_UDIVFIXSAT = 182,
-  G_FADD = 183,
-  G_FSUB = 184,
-  G_FMUL = 185,
-  G_FMA = 186,
-  G_FMAD = 187,
-  G_FDIV = 188,
-  G_FREM = 189,
-  G_FPOW = 190,
-  G_FPOWI = 191,
-  G_FEXP = 192,
-  G_FEXP2 = 193,
-  G_FEXP10 = 194,
-  G_FLOG = 195,
-  G_FLOG2 = 196,
-  G_FLOG10 = 197,
-  G_FLDEXP = 198,
-  G_FFREXP = 199,
-  G_FNEG = 200,
-  G_FPEXT = 201,
-  G_FPTRUNC = 202,
-  G_FPTOSI = 203,
-  G_FPTOUI = 204,
-  G_SITOFP = 205,
-  G_UITOFP = 206,
-  G_FPTOSI_SAT = 207,
-  G_FPTOUI_SAT = 208,
-  G_FABS = 209,
-  G_FCOPYSIGN = 210,
-  G_IS_FPCLASS = 211,
-  G_FCANONICALIZE = 212,
-  G_FMINNUM = 213,
-  G_FMAXNUM = 214,
-  G_FMINNUM_IEEE = 215,
-  G_FMAXNUM_IEEE = 216,
-  G_FMINIMUM = 217,
-  G_FMAXIMUM = 218,
-  G_FMINIMUMNUM = 219,
-  G_FMAXIMUMNUM = 220,
-  G_GET_FPENV = 221,
-  G_SET_FPENV = 222,
-  G_RESET_FPENV = 223,
-  G_GET_FPMODE = 224,
-  G_SET_FPMODE = 225,
-  G_RESET_FPMODE = 226,
-  G_GET_ROUNDING = 227,
-  G_PTR_ADD = 228,
-  G_PTRMASK = 229,
-  G_SMIN = 230,
-  G_SMAX = 231,
-  G_UMIN = 232,
-  G_UMAX = 233,
-  G_ABS = 234,
-  G_LROUND = 235,
-  G_LLROUND = 236,
-  G_BR = 237,
-  G_BRJT = 238,
-  G_VSCALE = 239,
-  G_INSERT_SUBVECTOR = 240,
-  G_EXTRACT_SUBVECTOR = 241,
-  G_INSERT_VECTOR_ELT = 242,
-  G_EXTRACT_VECTOR_ELT = 243,
-  G_SHUFFLE_VECTOR = 244,
-  G_SPLAT_VECTOR = 245,
-  G_STEP_VECTOR = 246,
-  G_VECTOR_COMPRESS = 247,
-  G_CTTZ = 248,
-  G_CTTZ_ZERO_UNDEF = 249,
-  G_CTLZ = 250,
-  G_CTLZ_ZERO_UNDEF = 251,
-  G_CTPOP = 252,
-  G_BSWAP = 253,
-  G_BITREVERSE = 254,
-  G_FCEIL = 255,
-  G_FCOS = 256,
-  G_FSIN = 257,
-  G_FSINCOS = 258,
-  G_FTAN = 259,
-  G_FACOS = 260,
-  G_FASIN = 261,
-  G_FATAN = 262,
-  G_FATAN2 = 263,
-  G_FCOSH = 264,
-  G_FSINH = 265,
-  G_FTANH = 266,
-  G_FSQRT = 267,
-  G_FFLOOR = 268,
-  G_FRINT = 269,
-  G_FNEARBYINT = 270,
-  G_ADDRSPACE_CAST = 271,
-  G_BLOCK_ADDR = 272,
-  G_JUMP_TABLE = 273,
-  G_DYN_STACKALLOC = 274,
-  G_STACKSAVE = 275,
-  G_STACKRESTORE = 276,
-  G_STRICT_FADD = 277,
-  G_STRICT_FSUB = 278,
-  G_STRICT_FMUL = 279,
-  G_STRICT_FDIV = 280,
-  G_STRICT_FREM = 281,
-  G_STRICT_FMA = 282,
-  G_STRICT_FSQRT = 283,
-  G_STRICT_FLDEXP = 284,
-  G_READ_REGISTER = 285,
-  G_WRITE_REGISTER = 286,
-  G_MEMCPY = 287,
-  G_MEMCPY_INLINE = 288,
-  G_MEMMOVE = 289,
-  G_MEMSET = 290,
-  G_BZERO = 291,
-  G_TRAP = 292,
-  G_DEBUGTRAP = 293,
-  G_UBSANTRAP = 294,
-  G_VECREDUCE_SEQ_FADD = 295,
-  G_VECREDUCE_SEQ_FMUL = 296,
-  G_VECREDUCE_FADD = 297,
-  G_VECREDUCE_FMUL = 298,
-  G_VECREDUCE_FMAX = 299,
-  G_VECREDUCE_FMIN = 300,
-  G_VECREDUCE_FMAXIMUM = 301,
-  G_VECREDUCE_FMINIMUM = 302,
-  G_VECREDUCE_ADD = 303,
-  G_VECREDUCE_MUL = 304,
-  G_VECREDUCE_AND = 305,
-  G_VECREDUCE_OR = 306,
-  G_VECREDUCE_XOR = 307,
-  G_VECREDUCE_SMAX = 308,
-  G_VECREDUCE_SMIN = 309,
-  G_VECREDUCE_UMAX = 310,
-  G_VECREDUCE_UMIN = 311,
-  G_SBFX = 312,
-  G_UBFX = 313,
-  ABS = 314,
-  ADDSri = 315,
-  ADDSrr = 316,
-  ADDSrsi = 317,
-  ADDSrsr = 318,
-  ADJCALLSTACKDOWN = 319,
-  ADJCALLSTACKUP = 320,
-  ASRi = 321,
-  ASRr = 322,
-  ASRs1 = 323,
-  B = 324,
-  BCCZi64 = 325,
-  BCCi64 = 326,
-  BLX_noip = 327,
-  BLX_pred_noip = 328,
-  BL_PUSHLR = 329,
-  BMOVPCB_CALL = 330,
-  BMOVPCRX_CALL = 331,
-  BR_JTadd = 332,
-  BR_JTm_i12 = 333,
-  BR_JTm_rs = 334,
-  BR_JTr = 335,
-  BX_CALL = 336,
-  CMP_SWAP_16 = 337,
-  CMP_SWAP_32 = 338,
-  CMP_SWAP_64 = 339,
-  CMP_SWAP_8 = 340,
-  CONSTPOOL_ENTRY = 341,
-  COPY_STRUCT_BYVAL_I32 = 342,
-  ITasm = 343,
-  Int_eh_sjlj_dispatchsetup = 344,
-  Int_eh_sjlj_longjmp = 345,
-  Int_eh_sjlj_setjmp = 346,
-  Int_eh_sjlj_setjmp_nofp = 347,
-  Int_eh_sjlj_setup_dispatch = 348,
-  JUMPTABLE_ADDRS = 349,
-  JUMPTABLE_INSTS = 350,
-  JUMPTABLE_TBB = 351,
-  JUMPTABLE_TBH = 352,
-  LDMIA_RET = 353,
-  LDRBT_POST = 354,
-  LDRConstPool = 355,
-  LDRHTii = 356,
-  LDRLIT_ga_abs = 357,
-  LDRLIT_ga_pcrel = 358,
-  LDRLIT_ga_pcrel_ldr = 359,
-  LDRSBTii = 360,
-  LDRSHTii = 361,
-  LDRT_POST = 362,
-  LEApcrel = 363,
-  LEApcrelJT = 364,
-  LOADDUAL = 365,
-  LSLi = 366,
-  LSLr = 367,
-  LSRi = 368,
-  LSRr = 369,
-  LSRs1 = 370,
-  MEMCPY = 371,
-  MLAv5 = 372,
-  MOVCCi = 373,
-  MOVCCi16 = 374,
-  MOVCCi32imm = 375,
-  MOVCCr = 376,
-  MOVCCsi = 377,
-  MOVCCsr = 378,
-  MOVPCRX = 379,
-  MOVTi16_ga_pcrel = 380,
-  MOV_ga_pcrel = 381,
-  MOV_ga_pcrel_ldr = 382,
-  MOVi16_ga_pcrel = 383,
-  MOVi32imm = 384,
-  MQPRCopy = 385,
-  MQQPRLoad = 386,
-  MQQPRStore = 387,
-  MQQQQPRLoad = 388,
-  MQQQQPRStore = 389,
-  MULv5 = 390,
-  MVE_MEMCPYLOOPINST = 391,
-  MVE_MEMSETLOOPINST = 392,
-  MVNCCi = 393,
-  PICADD = 394,
-  PICLDR = 395,
-  PICLDRB = 396,
-  PICLDRH = 397,
-  PICLDRSB = 398,
-  PICLDRSH = 399,
-  PICSTR = 400,
-  PICSTRB = 401,
-  PICSTRH = 402,
-  RORi = 403,
-  RORr = 404,
-  RRX = 405,
-  RRXi = 406,
-  RSBSri = 407,
-  RSBSrsi = 408,
-  RSBSrsr = 409,
-  SEH_EpilogEnd = 410,
-  SEH_EpilogStart = 411,
-  SEH_Nop = 412,
-  SEH_Nop_Ret = 413,
-  SEH_PrologEnd = 414,
-  SEH_SaveFRegs = 415,
-  SEH_SaveLR = 416,
-  SEH_SaveRegs = 417,
-  SEH_SaveRegs_Ret = 418,
-  SEH_SaveSP = 419,
-  SEH_StackAlloc = 420,
-  SMLALv5 = 421,
-  SMULLv5 = 422,
-  SPACE = 423,
-  STOREDUAL = 424,
-  STRBT_POST = 425,
-  STRBi_preidx = 426,
-  STRBr_preidx = 427,
-  STRH_preidx = 428,
-  STRT_POST = 429,
-  STRi_preidx = 430,
-  STRr_preidx = 431,
-  SUBS_PC_LR = 432,
-  SUBSri = 433,
-  SUBSrr = 434,
-  SUBSrsi = 435,
-  SUBSrsr = 436,
-  SpeculationBarrierISBDSBEndBB = 437,
-  SpeculationBarrierSBEndBB = 438,
-  TAILJMPd = 439,
-  TAILJMPr = 440,
-  TAILJMPr4 = 441,
-  TCRETURNdi = 442,
-  TCRETURNri = 443,
-  TCRETURNrinotr12 = 444,
-  TPsoft = 445,
-  UMLALv5 = 446,
-  UMULLv5 = 447,
-  VLD1LNdAsm_16 = 448,
-  VLD1LNdAsm_32 = 449,
-  VLD1LNdAsm_8 = 450,
-  VLD1LNdWB_fixed_Asm_16 = 451,
-  VLD1LNdWB_fixed_Asm_32 = 452,
-  VLD1LNdWB_fixed_Asm_8 = 453,
-  VLD1LNdWB_register_Asm_16 = 454,
-  VLD1LNdWB_register_Asm_32 = 455,
-  VLD1LNdWB_register_Asm_8 = 456,
-  VLD2LNdAsm_16 = 457,
-  VLD2LNdAsm_32 = 458,
-  VLD2LNdAsm_8 = 459,
-  VLD2LNdWB_fixed_Asm_16 = 460,
-  VLD2LNdWB_fixed_Asm_32 = 461,
-  VLD2LNdWB_fixed_Asm_8 = 462,
-  VLD2LNdWB_register_Asm_16 = 463,
-  VLD2LNdWB_register_Asm_32 = 464,
-  VLD2LNdWB_register_Asm_8 = 465,
-  VLD2LNqAsm_16 = 466,
-  VLD2LNqAsm_32 = 467,
-  VLD2LNqWB_fixed_Asm_16 = 468,
-  VLD2LNqWB_fixed_Asm_32 = 469,
-  VLD2LNqWB_register_Asm_16 = 470,
-  VLD2LNqWB_register_Asm_32 = 471,
-  VLD3DUPdAsm_16 = 472,
-  VLD3DUPdAsm_32 = 473,
-  VLD3DUPdAsm_8 = 474,
-  VLD3DUPdWB_fixed_Asm_16 = 475,
-  VLD3DUPdWB_fixed_Asm_32 = 476,
-  VLD3DUPdWB_fixed_Asm_8 = 477,
-  VLD3DUPdWB_register_Asm_16 = 478,
-  VLD3DUPdWB_register_Asm_32 = 479,
-  VLD3DUPdWB_register_Asm_8 = 480,
-  VLD3DUPqAsm_16 = 481,
-  VLD3DUPqAsm_32 = 482,
-  VLD3DUPqAsm_8 = 483,
-  VLD3DUPqWB_fixed_Asm_16 = 484,
-  VLD3DUPqWB_fixed_Asm_32 = 485,
-  VLD3DUPqWB_fixed_Asm_8 = 486,
-  VLD3DUPqWB_register_Asm_16 = 487,
-  VLD3DUPqWB_register_Asm_32 = 488,
-  VLD3DUPqWB_register_Asm_8 = 489,
-  VLD3LNdAsm_16 = 490,
-  VLD3LNdAsm_32 = 491,
-  VLD3LNdAsm_8 = 492,
-  VLD3LNdWB_fixed_Asm_16 = 493,
-  VLD3LNdWB_fixed_Asm_32 = 494,
-  VLD3LNdWB_fixed_Asm_8 = 495,
-  VLD3LNdWB_register_Asm_16 = 496,
-  VLD3LNdWB_register_Asm_32 = 497,
-  VLD3LNdWB_register_Asm_8 = 498,
-  VLD3LNqAsm_16 = 499,
-  VLD3LNqAsm_32 = 500,
-  VLD3LNqWB_fixed_Asm_16 = 501,
-  VLD3LNqWB_fixed_Asm_32 = 502,
-  VLD3LNqWB_register_Asm_16 = 503,
-  VLD3LNqWB_register_Asm_32 = 504,
-  VLD3dAsm_16 = 505,
-  VLD3dAsm_32 = 506,
-  VLD3dAsm_8 = 507,
-  VLD3dWB_fixed_Asm_16 = 508,
-  VLD3dWB_fixed_Asm_32 = 509,
-  VLD3dWB_fixed_Asm_8 = 510,
-  VLD3dWB_register_Asm_16 = 511,
-  VLD3dWB_register_Asm_32 = 512,
-  VLD3dWB_register_Asm_8 = 513,
-  VLD3qAsm_16 = 514,
-  VLD3qAsm_32 = 515,
-  VLD3qAsm_8 = 516,
-  VLD3qWB_fixed_Asm_16 = 517,
-  VLD3qWB_fixed_Asm_32 = 518,
-  VLD3qWB_fixed_Asm_8 = 519,
-  VLD3qWB_register_Asm_16 = 520,
-  VLD3qWB_register_Asm_32 = 521,
-  VLD3qWB_register_Asm_8 = 522,
-  VLD4DUPdAsm_16 = 523,
-  VLD4DUPdAsm_32 = 524,
-  VLD4DUPdAsm_8 = 525,
-  VLD4DUPdWB_fixed_Asm_16 = 526,
-  VLD4DUPdWB_fixed_Asm_32 = 527,
-  VLD4DUPdWB_fixed_Asm_8 = 528,
-  VLD4DUPdWB_register_Asm_16 = 529,
-  VLD4DUPdWB_register_Asm_32 = 530,
-  VLD4DUPdWB_register_Asm_8 = 531,
-  VLD4DUPqAsm_16 = 532,
-  VLD4DUPqAsm_32 = 533,
-  VLD4DUPqAsm_8 = 534,
-  VLD4DUPqWB_fixed_Asm_16 = 535,
-  VLD4DUPqWB_fixed_Asm_32 = 536,
-  VLD4DUPqWB_fixed_Asm_8 = 537,
-  VLD4DUPqWB_register_Asm_16 = 538,
-  VLD4DUPqWB_register_Asm_32 = 539,
-  VLD4DUPqWB_register_Asm_8 = 540,
-  VLD4LNdAsm_16 = 541,
-  VLD4LNdAsm_32 = 542,
-  VLD4LNdAsm_8 = 543,
-  VLD4LNdWB_fixed_Asm_16 = 544,
-  VLD4LNdWB_fixed_Asm_32 = 545,
-  VLD4LNdWB_fixed_Asm_8 = 546,
-  VLD4LNdWB_register_Asm_16 = 547,
-  VLD4LNdWB_register_Asm_32 = 548,
-  VLD4LNdWB_register_Asm_8 = 549,
-  VLD4LNqAsm_16 = 550,
-  VLD4LNqAsm_32 = 551,
-  VLD4LNqWB_fixed_Asm_16 = 552,
-  VLD4LNqWB_fixed_Asm_32 = 553,
-  VLD4LNqWB_register_Asm_16 = 554,
-  VLD4LNqWB_register_Asm_32 = 555,
-  VLD4dAsm_16 = 556,
-  VLD4dAsm_32 = 557,
-  VLD4dAsm_8 = 558,
-  VLD4dWB_fixed_Asm_16 = 559,
-  VLD4dWB_fixed_Asm_32 = 560,
-  VLD4dWB_fixed_Asm_8 = 561,
-  VLD4dWB_register_Asm_16 = 562,
-  VLD4dWB_register_Asm_32 = 563,
-  VLD4dWB_register_Asm_8 = 564,
-  VLD4qAsm_16 = 565,
-  VLD4qAsm_32 = 566,
-  VLD4qAsm_8 = 567,
-  VLD4qWB_fixed_Asm_16 = 568,
-  VLD4qWB_fixed_Asm_32 = 569,
-  VLD4qWB_fixed_Asm_8 = 570,
-  VLD4qWB_register_Asm_16 = 571,
-  VLD4qWB_register_Asm_32 = 572,
-  VLD4qWB_register_Asm_8 = 573,
-  VMOVD0 = 574,
-  VMOVDcc = 575,
-  VMOVHcc = 576,
-  VMOVQ0 = 577,
-  VMOVScc = 578,
-  VST1LNdAsm_16 = 579,
-  VST1LNdAsm_32 = 580,
-  VST1LNdAsm_8 = 581,
-  VST1LNdWB_fixed_Asm_16 = 582,
-  VST1LNdWB_fixed_Asm_32 = 583,
-  VST1LNdWB_fixed_Asm_8 = 584,
-  VST1LNdWB_register_Asm_16 = 585,
-  VST1LNdWB_register_Asm_32 = 586,
-  VST1LNdWB_register_Asm_8 = 587,
-  VST2LNdAsm_16 = 588,
-  VST2LNdAsm_32 = 589,
-  VST2LNdAsm_8 = 590,
-  VST2LNdWB_fixed_Asm_16 = 591,
-  VST2LNdWB_fixed_Asm_32 = 592,
-  VST2LNdWB_fixed_Asm_8 = 593,
-  VST2LNdWB_register_Asm_16 = 594,
-  VST2LNdWB_register_Asm_32 = 595,
-  VST2LNdWB_register_Asm_8 = 596,
-  VST2LNqAsm_16 = 597,
-  VST2LNqAsm_32 = 598,
-  VST2LNqWB_fixed_Asm_16 = 599,
-  VST2LNqWB_fixed_Asm_32 = 600,
-  VST2LNqWB_register_Asm_16 = 601,
-  VST2LNqWB_register_Asm_32 = 602,
-  VST3LNdAsm_16 = 603,
-  VST3LNdAsm_32 = 604,
-  VST3LNdAsm_8 = 605,
-  VST3LNdWB_fixed_Asm_16 = 606,
-  VST3LNdWB_fixed_Asm_32 = 607,
-  VST3LNdWB_fixed_Asm_8 = 608,
-  VST3LNdWB_register_Asm_16 = 609,
-  VST3LNdWB_register_Asm_32 = 610,
-  VST3LNdWB_register_Asm_8 = 611,
-  VST3LNqAsm_16 = 612,
-  VST3LNqAsm_32 = 613,
-  VST3LNqWB_fixed_Asm_16 = 614,
-  VST3LNqWB_fixed_Asm_32 = 615,
-  VST3LNqWB_register_Asm_16 = 616,
-  VST3LNqWB_register_Asm_32 = 617,
-  VST3dAsm_16 = 618,
-  VST3dAsm_32 = 619,
-  VST3dAsm_8 = 620,
-  VST3dWB_fixed_Asm_16 = 621,
-  VST3dWB_fixed_Asm_32 = 622,
-  VST3dWB_fixed_Asm_8 = 623,
-  VST3dWB_register_Asm_16 = 624,
-  VST3dWB_register_Asm_32 = 625,
-  VST3dWB_register_Asm_8 = 626,
-  VST3qAsm_16 = 627,
-  VST3qAsm_32 = 628,
-  VST3qAsm_8 = 629,
-  VST3qWB_fixed_Asm_16 = 630,
-  VST3qWB_fixed_Asm_32 = 631,
-  VST3qWB_fixed_Asm_8 = 632,
-  VST3qWB_register_Asm_16 = 633,
-  VST3qWB_register_Asm_32 = 634,
-  VST3qWB_register_Asm_8 = 635,
-  VST4LNdAsm_16 = 636,
-  VST4LNdAsm_32 = 637,
-  VST4LNdAsm_8 = 638,
-  VST4LNdWB_fixed_Asm_16 = 639,
-  VST4LNdWB_fixed_Asm_32 = 640,
-  VST4LNdWB_fixed_Asm_8 = 641,
-  VST4LNdWB_register_Asm_16 = 642,
-  VST4LNdWB_register_Asm_32 = 643,
-  VST4LNdWB_register_Asm_8 = 644,
-  VST4LNqAsm_16 = 645,
-  VST4LNqAsm_32 = 646,
-  VST4LNqWB_fixed_Asm_16 = 647,
-  VST4LNqWB_fixed_Asm_32 = 648,
-  VST4LNqWB_register_Asm_16 = 649,
-  VST4LNqWB_register_Asm_32 = 650,
-  VST4dAsm_16 = 651,
-  VST4dAsm_32 = 652,
-  VST4dAsm_8 = 653,
-  VST4dWB_fixed_Asm_16 = 654,
-  VST4dWB_fixed_Asm_32 = 655,
-  VST4dWB_fixed_Asm_8 = 656,
-  VST4dWB_register_Asm_16 = 657,
-  VST4dWB_register_Asm_32 = 658,
-  VST4dWB_register_Asm_8 = 659,
-  VST4qAsm_16 = 660,
-  VST4qAsm_32 = 661,
-  VST4qAsm_8 = 662,
-  VST4qWB_fixed_Asm_16 = 663,
-  VST4qWB_fixed_Asm_32 = 664,
-  VST4qWB_fixed_Asm_8 = 665,
-  VST4qWB_register_Asm_16 = 666,
-  VST4qWB_register_Asm_32 = 667,
-  VST4qWB_register_Asm_8 = 668,
-  WIN__CHKSTK = 669,
-  WIN__DBZCHK = 670,
-  t2ABS = 671,
-  t2ADDSri = 672,
-  t2ADDSrr = 673,
-  t2ADDSrs = 674,
-  t2BF_LabelPseudo = 675,
-  t2BR_JT = 676,
-  t2CALL_BTI = 677,
-  t2DoLoopStart = 678,
-  t2DoLoopStartTP = 679,
-  t2LDMIA_RET = 680,
-  t2LDRB_OFFSET_imm = 681,
-  t2LDRB_POST_imm = 682,
-  t2LDRB_PRE_imm = 683,
-  t2LDRBpcrel = 684,
-  t2LDRConstPool = 685,
-  t2LDRH_OFFSET_imm = 686,
-  t2LDRH_POST_imm = 687,
-  t2LDRH_PRE_imm = 688,
-  t2LDRHpcrel = 689,
-  t2LDRLIT_ga_pcrel = 690,
-  t2LDRSB_OFFSET_imm = 691,
-  t2LDRSB_POST_imm = 692,
-  t2LDRSB_PRE_imm = 693,
-  t2LDRSBpcrel = 694,
-  t2LDRSH_OFFSET_imm = 695,
-  t2LDRSH_POST_imm = 696,
-  t2LDRSH_PRE_imm = 697,
-  t2LDRSHpcrel = 698,
-  t2LDR_POST_imm = 699,
-  t2LDR_PRE_imm = 700,
-  t2LDRpci_pic = 701,
-  t2LDRpcrel = 702,
-  t2LEApcrel = 703,
-  t2LEApcrelJT = 704,
-  t2LoopDec = 705,
-  t2LoopEnd = 706,
-  t2LoopEndDec = 707,
-  t2MOVCCasr = 708,
-  t2MOVCCi = 709,
-  t2MOVCCi16 = 710,
-  t2MOVCCi32imm = 711,
-  t2MOVCClsl = 712,
-  t2MOVCClsr = 713,
-  t2MOVCCr = 714,
-  t2MOVCCror = 715,
-  t2MOVSsi = 716,
-  t2MOVSsr = 717,
-  t2MOVTi16_ga_pcrel = 718,
-  t2MOV_ga_pcrel = 719,
-  t2MOVi16_ga_pcrel = 720,
-  t2MOVi32imm = 721,
-  t2MOVsi = 722,
-  t2MOVsr = 723,
-  t2MVNCCi = 724,
-  t2RSBSri = 725,
-  t2RSBSrs = 726,
-  t2STRB_OFFSET_imm = 727,
-  t2STRB_POST_imm = 728,
-  t2STRB_PRE_imm = 729,
-  t2STRB_preidx = 730,
-  t2STRH_OFFSET_imm = 731,
-  t2STRH_POST_imm = 732,
-  t2STRH_PRE_imm = 733,
-  t2STRH_preidx = 734,
-  t2STR_POST_imm = 735,
-  t2STR_PRE_imm = 736,
-  t2STR_preidx = 737,
-  t2SUBSri = 738,
-  t2SUBSrr = 739,
-  t2SUBSrs = 740,
-  t2SpeculationBarrierISBDSBEndBB = 741,
-  t2SpeculationBarrierSBEndBB = 742,
-  t2TBB_JT = 743,
-  t2TBH_JT = 744,
-  t2WhileLoopSetup = 745,
-  t2WhileLoopStart = 746,
-  t2WhileLoopStartLR = 747,
-  t2WhileLoopStartTP = 748,
-  tADCS = 749,
-  tADDSi3 = 750,
-  tADDSi8 = 751,
-  tADDSrr = 752,
-  tADDframe = 753,
-  tADJCALLSTACKDOWN = 754,
-  tADJCALLSTACKUP = 755,
-  tBLXNS_CALL = 756,
-  tBLXr_noip = 757,
-  tBL_PUSHLR = 758,
-  tBRIND = 759,
-  tBR_JTr = 760,
-  tBXNS_RET = 761,
-  tBX_CALL = 762,
-  tBX_RET = 763,
-  tBX_RET_vararg = 764,
-  tBfar = 765,
-  tCMP_SWAP_16 = 766,
-  tCMP_SWAP_32 = 767,
-  tCMP_SWAP_8 = 768,
-  tLDMIA_UPD = 769,
-  tLDRConstPool = 770,
-  tLDRLIT_ga_abs = 771,
-  tLDRLIT_ga_pcrel = 772,
-  tLDR_postidx = 773,
-  tLDRpci_pic = 774,
-  tLEApcrel = 775,
-  tLEApcrelJT = 776,
-  tLSLSri = 777,
-  tMOVCCr_pseudo = 778,
-  tMOVi32imm = 779,
-  tPOP_RET = 780,
-  tRSBS = 781,
-  tSBCS = 782,
-  tSUBSi3 = 783,
-  tSUBSi8 = 784,
-  tSUBSrr = 785,
-  tTAILJMPd = 786,
-  tTAILJMPdND = 787,
-  tTAILJMPr = 788,
-  tTBB_JT = 789,
-  tTBH_JT = 790,
-  tTPsoft = 791,
-  ADCri = 792,
-  ADCrr = 793,
-  ADCrsi = 794,
-  ADCrsr = 795,
-  ADDri = 796,
-  ADDrr = 797,
-  ADDrsi = 798,
-  ADDrsr = 799,
-  ADR = 800,
-  AESD = 801,
-  AESE = 802,
-  AESIMC = 803,
-  AESMC = 804,
-  ANDri = 805,
-  ANDrr = 806,
-  ANDrsi = 807,
-  ANDrsr = 808,
-  BF16VDOTI_VDOTD = 809,
-  BF16VDOTI_VDOTQ = 810,
-  BF16VDOTS_VDOTD = 811,
-  BF16VDOTS_VDOTQ = 812,
-  BF16_VCVT = 813,
-  BF16_VCVTB = 814,
-  BF16_VCVTT = 815,
-  BFC = 816,
-  BFI = 817,
-  BICri = 818,
-  BICrr = 819,
-  BICrsi = 820,
-  BICrsr = 821,
-  BKPT = 822,
-  BL = 823,
-  BLX = 824,
-  BLX_pred = 825,
-  BLXi = 826,
-  BL_pred = 827,
-  BX = 828,
-  BXJ = 829,
-  BX_RET = 830,
-  BX_pred = 831,
-  Bcc = 832,
-  CDE_CX1 = 833,
-  CDE_CX1A = 834,
-  CDE_CX1D = 835,
-  CDE_CX1DA = 836,
-  CDE_CX2 = 837,
-  CDE_CX2A = 838,
-  CDE_CX2D = 839,
-  CDE_CX2DA = 840,
-  CDE_CX3 = 841,
-  CDE_CX3A = 842,
-  CDE_CX3D = 843,
-  CDE_CX3DA = 844,
-  CDE_VCX1A_fpdp = 845,
-  CDE_VCX1A_fpsp = 846,
-  CDE_VCX1A_vec = 847,
-  CDE_VCX1_fpdp = 848,
-  CDE_VCX1_fpsp = 849,
-  CDE_VCX1_vec = 850,
-  CDE_VCX2A_fpdp = 851,
-  CDE_VCX2A_fpsp = 852,
-  CDE_VCX2A_vec = 853,
-  CDE_VCX2_fpdp = 854,
-  CDE_VCX2_fpsp = 855,
-  CDE_VCX2_vec = 856,
-  CDE_VCX3A_fpdp = 857,
-  CDE_VCX3A_fpsp = 858,
-  CDE_VCX3A_vec = 859,
-  CDE_VCX3_fpdp = 860,
-  CDE_VCX3_fpsp = 861,
-  CDE_VCX3_vec = 862,
-  CDP = 863,
-  CDP2 = 864,
-  CLREX = 865,
-  CLZ = 866,
-  CMNri = 867,
-  CMNzrr = 868,
-  CMNzrsi = 869,
-  CMNzrsr = 870,
-  CMPri = 871,
-  CMPrr = 872,
-  CMPrsi = 873,
-  CMPrsr = 874,
-  CPS1p = 875,
-  CPS2p = 876,
-  CPS3p = 877,
-  CRC32B = 878,
-  CRC32CB = 879,
-  CRC32CH = 880,
-  CRC32CW = 881,
-  CRC32H = 882,
-  CRC32W = 883,
-  DBG = 884,
-  DMB = 885,
-  DSB = 886,
-  EORri = 887,
-  EORrr = 888,
-  EORrsi = 889,
-  EORrsr = 890,
-  ERET = 891,
-  FCONSTD = 892,
-  FCONSTH = 893,
-  FCONSTS = 894,
-  FLDMXDB_UPD = 895,
-  FLDMXIA = 896,
-  FLDMXIA_UPD = 897,
-  FMSTAT = 898,
-  FSTMXDB_UPD = 899,
-  FSTMXIA = 900,
-  FSTMXIA_UPD = 901,
-  HINT = 902,
-  HLT = 903,
-  HVC = 904,
-  ISB = 905,
-  LDA = 906,
-  LDAB = 907,
-  LDAEX = 908,
-  LDAEXB = 909,
-  LDAEXD = 910,
-  LDAEXH = 911,
-  LDAH = 912,
-  LDC2L_OFFSET = 913,
-  LDC2L_OPTION = 914,
-  LDC2L_POST = 915,
-  LDC2L_PRE = 916,
-  LDC2_OFFSET = 917,
-  LDC2_OPTION = 918,
-  LDC2_POST = 919,
-  LDC2_PRE = 920,
-  LDCL_OFFSET = 921,
-  LDCL_OPTION = 922,
-  LDCL_POST = 923,
-  LDCL_PRE = 924,
-  LDC_OFFSET = 925,
-  LDC_OPTION = 926,
-  LDC_POST = 927,
-  LDC_PRE = 928,
-  LDMDA = 929,
-  LDMDA_UPD = 930,
-  LDMDB = 931,
-  LDMDB_UPD = 932,
-  LDMIA = 933,
-  LDMIA_UPD = 934,
-  LDMIB = 935,
-  LDMIB_UPD = 936,
-  LDRBT_POST_IMM = 937,
-  LDRBT_POST_REG = 938,
-  LDRB_POST_IMM = 939,
-  LDRB_POST_REG = 940,
-  LDRB_PRE_IMM = 941,
-  LDRB_PRE_REG = 942,
-  LDRBi12 = 943,
-  LDRBrs = 944,
-  LDRD = 945,
-  LDRD_POST = 946,
-  LDRD_PRE = 947,
-  LDREX = 948,
-  LDREXB = 949,
-  LDREXD = 950,
-  LDREXH = 951,
-  LDRH = 952,
-  LDRHTi = 953,
-  LDRHTr = 954,
-  LDRH_POST = 955,
-  LDRH_PRE = 956,
-  LDRSB = 957,
-  LDRSBTi = 958,
-  LDRSBTr = 959,
-  LDRSB_POST = 960,
-  LDRSB_PRE = 961,
-  LDRSH = 962,
-  LDRSHTi = 963,
-  LDRSHTr = 964,
-  LDRSH_POST = 965,
-  LDRSH_PRE = 966,
-  LDRT_POST_IMM = 967,
-  LDRT_POST_REG = 968,
-  LDR_POST_IMM = 969,
-  LDR_POST_REG = 970,
-  LDR_PRE_IMM = 971,
-  LDR_PRE_REG = 972,
-  LDRcp = 973,
-  LDRi12 = 974,
-  LDRrs = 975,
-  MCR = 976,
-  MCR2 = 977,
-  MCRR = 978,
-  MCRR2 = 979,
-  MLA = 980,
-  MLS = 981,
-  MOVPCLR = 982,
-  MOVTi16 = 983,
-  MOVi = 984,
-  MOVi16 = 985,
-  MOVr = 986,
-  MOVr_TC = 987,
-  MOVsi = 988,
-  MOVsr = 989,
-  MRC = 990,
-  MRC2 = 991,
-  MRRC = 992,
-  MRRC2 = 993,
-  MRS = 994,
-  MRSbanked = 995,
-  MRSsys = 996,
-  MSR = 997,
-  MSRbanked = 998,
-  MSRi = 999,
-  MUL = 1000,
-  MVE_ASRLi = 1001,
-  MVE_ASRLr = 1002,
-  MVE_DLSTP_16 = 1003,
-  MVE_DLSTP_32 = 1004,
-  MVE_DLSTP_64 = 1005,
-  MVE_DLSTP_8 = 1006,
-  MVE_LCTP = 1007,
-  MVE_LETP = 1008,
-  MVE_LSLLi = 1009,
-  MVE_LSLLr = 1010,
-  MVE_LSRL = 1011,
-  MVE_SQRSHR = 1012,
-  MVE_SQRSHRL = 1013,
-  MVE_SQSHL = 1014,
-  MVE_SQSHLL = 1015,
-  MVE_SRSHR = 1016,
-  MVE_SRSHRL = 1017,
-  MVE_UQRSHL = 1018,
-  MVE_UQRSHLL = 1019,
-  MVE_UQSHL = 1020,
-  MVE_UQSHLL = 1021,
-  MVE_URSHR = 1022,
-  MVE_URSHRL = 1023,
-  MVE_VABAVs16 = 1024,
-  MVE_VABAVs32 = 1025,
-  MVE_VABAVs8 = 1026,
-  MVE_VABAVu16 = 1027,
-  MVE_VABAVu32 = 1028,
-  MVE_VABAVu8 = 1029,
-  MVE_VABDf16 = 1030,
-  MVE_VABDf32 = 1031,
-  MVE_VABDs16 = 1032,
-  MVE_VABDs32 = 1033,
-  MVE_VABDs8 = 1034,
-  MVE_VABDu16 = 1035,
-  MVE_VABDu32 = 1036,
-  MVE_VABDu8 = 1037,
-  MVE_VABSf16 = 1038,
-  MVE_VABSf32 = 1039,
-  MVE_VABSs16 = 1040,
-  MVE_VABSs32 = 1041,
-  MVE_VABSs8 = 1042,
-  MVE_VADC = 1043,
-  MVE_VADCI = 1044,
-  MVE_VADDLVs32acc = 1045,
-  MVE_VADDLVs32no_acc = 1046,
-  MVE_VADDLVu32acc = 1047,
-  MVE_VADDLVu32no_acc = 1048,
-  MVE_VADDVs16acc = 1049,
-  MVE_VADDVs16no_acc = 1050,
-  MVE_VADDVs32acc = 1051,
-  MVE_VADDVs32no_acc = 1052,
-  MVE_VADDVs8acc = 1053,
-  MVE_VADDVs8no_acc = 1054,
-  MVE_VADDVu16acc = 1055,
-  MVE_VADDVu16no_acc = 1056,
-  MVE_VADDVu32acc = 1057,
-  MVE_VADDVu32no_acc = 1058,
-  MVE_VADDVu8acc = 1059,
-  MVE_VADDVu8no_acc = 1060,
-  MVE_VADD_qr_f16 = 1061,
-  MVE_VADD_qr_f32 = 1062,
-  MVE_VADD_qr_i16 = 1063,
-  MVE_VADD_qr_i32 = 1064,
-  MVE_VADD_qr_i8 = 1065,
-  MVE_VADDf16 = 1066,
-  MVE_VADDf32 = 1067,
-  MVE_VADDi16 = 1068,
-  MVE_VADDi32 = 1069,
-  MVE_VADDi8 = 1070,
-  MVE_VAND = 1071,
-  MVE_VBIC = 1072,
-  MVE_VBICimmi16 = 1073,
-  MVE_VBICimmi32 = 1074,
-  MVE_VBRSR16 = 1075,
-  MVE_VBRSR32 = 1076,
-  MVE_VBRSR8 = 1077,
-  MVE_VCADDf16 = 1078,
-  MVE_VCADDf32 = 1079,
-  MVE_VCADDi16 = 1080,
-  MVE_VCADDi32 = 1081,
-  MVE_VCADDi8 = 1082,
-  MVE_VCLSs16 = 1083,
-  MVE_VCLSs32 = 1084,
-  MVE_VCLSs8 = 1085,
-  MVE_VCLZs16 = 1086,
-  MVE_VCLZs32 = 1087,
-  MVE_VCLZs8 = 1088,
-  MVE_VCMLAf16 = 1089,
-  MVE_VCMLAf32 = 1090,
-  MVE_VCMPf16 = 1091,
-  MVE_VCMPf16r = 1092,
-  MVE_VCMPf32 = 1093,
-  MVE_VCMPf32r = 1094,
-  MVE_VCMPi16 = 1095,
-  MVE_VCMPi16r = 1096,
-  MVE_VCMPi32 = 1097,
-  MVE_VCMPi32r = 1098,
-  MVE_VCMPi8 = 1099,
-  MVE_VCMPi8r = 1100,
-  MVE_VCMPs16 = 1101,
-  MVE_VCMPs16r = 1102,
-  MVE_VCMPs32 = 1103,
-  MVE_VCMPs32r = 1104,
-  MVE_VCMPs8 = 1105,
-  MVE_VCMPs8r = 1106,
-  MVE_VCMPu16 = 1107,
-  MVE_VCMPu16r = 1108,
-  MVE_VCMPu32 = 1109,
-  MVE_VCMPu32r = 1110,
-  MVE_VCMPu8 = 1111,
-  MVE_VCMPu8r = 1112,
-  MVE_VCMULf16 = 1113,
-  MVE_VCMULf32 = 1114,
-  MVE_VCTP16 = 1115,
-  MVE_VCTP32 = 1116,
-  MVE_VCTP64 = 1117,
-  MVE_VCTP8 = 1118,
-  MVE_VCVTf16f32bh = 1119,
-  MVE_VCVTf16f32th = 1120,
-  MVE_VCVTf16s16_fix = 1121,
-  MVE_VCVTf16s16n = 1122,
-  MVE_VCVTf16u16_fix = 1123,
-  MVE_VCVTf16u16n = 1124,
-  MVE_VCVTf32f16bh = 1125,
-  MVE_VCVTf32f16th = 1126,
-  MVE_VCVTf32s32_fix = 1127,
-  MVE_VCVTf32s32n = 1128,
-  MVE_VCVTf32u32_fix = 1129,
-  MVE_VCVTf32u32n = 1130,
-  MVE_VCVTs16f16_fix = 1131,
-  MVE_VCVTs16f16a = 1132,
-  MVE_VCVTs16f16m = 1133,
-  MVE_VCVTs16f16n = 1134,
-  MVE_VCVTs16f16p = 1135,
-  MVE_VCVTs16f16z = 1136,
-  MVE_VCVTs32f32_fix = 1137,
-  MVE_VCVTs32f32a = 1138,
-  MVE_VCVTs32f32m = 1139,
-  MVE_VCVTs32f32n = 1140,
-  MVE_VCVTs32f32p = 1141,
-  MVE_VCVTs32f32z = 1142,
-  MVE_VCVTu16f16_fix = 1143,
-  MVE_VCVTu16f16a = 1144,
-  MVE_VCVTu16f16m = 1145,
-  MVE_VCVTu16f16n = 1146,
-  MVE_VCVTu16f16p = 1147,
-  MVE_VCVTu16f16z = 1148,
-  MVE_VCVTu32f32_fix = 1149,
-  MVE_VCVTu32f32a = 1150,
-  MVE_VCVTu32f32m = 1151,
-  MVE_VCVTu32f32n = 1152,
-  MVE_VCVTu32f32p = 1153,
-  MVE_VCVTu32f32z = 1154,
-  MVE_VDDUPu16 = 1155,
-  MVE_VDDUPu32 = 1156,
-  MVE_VDDUPu8 = 1157,
-  MVE_VDUP16 = 1158,
-  MVE_VDUP32 = 1159,
-  MVE_VDUP8 = 1160,
-  MVE_VDWDUPu16 = 1161,
-  MVE_VDWDUPu32 = 1162,
-  MVE_VDWDUPu8 = 1163,
-  MVE_VEOR = 1164,
-  MVE_VFMA_qr_Sf16 = 1165,
-  MVE_VFMA_qr_Sf32 = 1166,
-  MVE_VFMA_qr_f16 = 1167,
-  MVE_VFMA_qr_f32 = 1168,
-  MVE_VFMAf16 = 1169,
-  MVE_VFMAf32 = 1170,
-  MVE_VFMSf16 = 1171,
-  MVE_VFMSf32 = 1172,
-  MVE_VHADD_qr_s16 = 1173,
-  MVE_VHADD_qr_s32 = 1174,
-  MVE_VHADD_qr_s8 = 1175,
-  MVE_VHADD_qr_u16 = 1176,
-  MVE_VHADD_qr_u32 = 1177,
-  MVE_VHADD_qr_u8 = 1178,
-  MVE_VHADDs16 = 1179,
-  MVE_VHADDs32 = 1180,
-  MVE_VHADDs8 = 1181,
-  MVE_VHADDu16 = 1182,
-  MVE_VHADDu32 = 1183,
-  MVE_VHADDu8 = 1184,
-  MVE_VHCADDs16 = 1185,
-  MVE_VHCADDs32 = 1186,
-  MVE_VHCADDs8 = 1187,
-  MVE_VHSUB_qr_s16 = 1188,
-  MVE_VHSUB_qr_s32 = 1189,
-  MVE_VHSUB_qr_s8 = 1190,
-  MVE_VHSUB_qr_u16 = 1191,
-  MVE_VHSUB_qr_u32 = 1192,
-  MVE_VHSUB_qr_u8 = 1193,
-  MVE_VHSUBs16 = 1194,
-  MVE_VHSUBs32 = 1195,
-  MVE_VHSUBs8 = 1196,
-  MVE_VHSUBu16 = 1197,
-  MVE_VHSUBu32 = 1198,
-  MVE_VHSUBu8 = 1199,
-  MVE_VIDUPu16 = 1200,
-  MVE_VIDUPu32 = 1201,
-  MVE_VIDUPu8 = 1202,
-  MVE_VIWDUPu16 = 1203,
-  MVE_VIWDUPu32 = 1204,
-  MVE_VIWDUPu8 = 1205,
-  MVE_VLD20_16 = 1206,
-  MVE_VLD20_16_wb = 1207,
-  MVE_VLD20_32 = 1208,
-  MVE_VLD20_32_wb = 1209,
-  MVE_VLD20_8 = 1210,
-  MVE_VLD20_8_wb = 1211,
-  MVE_VLD21_16 = 1212,
-  MVE_VLD21_16_wb = 1213,
-  MVE_VLD21_32 = 1214,
-  MVE_VLD21_32_wb = 1215,
-  MVE_VLD21_8 = 1216,
-  MVE_VLD21_8_wb = 1217,
-  MVE_VLD40_16 = 1218,
-  MVE_VLD40_16_wb = 1219,
-  MVE_VLD40_32 = 1220,
-  MVE_VLD40_32_wb = 1221,
-  MVE_VLD40_8 = 1222,
-  MVE_VLD40_8_wb = 1223,
-  MVE_VLD41_16 = 1224,
-  MVE_VLD41_16_wb = 1225,
-  MVE_VLD41_32 = 1226,
-  MVE_VLD41_32_wb = 1227,
-  MVE_VLD41_8 = 1228,
-  MVE_VLD41_8_wb = 1229,
-  MVE_VLD42_16 = 1230,
-  MVE_VLD42_16_wb = 1231,
-  MVE_VLD42_32 = 1232,
-  MVE_VLD42_32_wb = 1233,
-  MVE_VLD42_8 = 1234,
-  MVE_VLD42_8_wb = 1235,
-  MVE_VLD43_16 = 1236,
-  MVE_VLD43_16_wb = 1237,
-  MVE_VLD43_32 = 1238,
-  MVE_VLD43_32_wb = 1239,
-  MVE_VLD43_8 = 1240,
-  MVE_VLD43_8_wb = 1241,
-  MVE_VLDRBS16 = 1242,
-  MVE_VLDRBS16_post = 1243,
-  MVE_VLDRBS16_pre = 1244,
-  MVE_VLDRBS16_rq = 1245,
-  MVE_VLDRBS32 = 1246,
-  MVE_VLDRBS32_post = 1247,
-  MVE_VLDRBS32_pre = 1248,
-  MVE_VLDRBS32_rq = 1249,
-  MVE_VLDRBU16 = 1250,
-  MVE_VLDRBU16_post = 1251,
-  MVE_VLDRBU16_pre = 1252,
-  MVE_VLDRBU16_rq = 1253,
-  MVE_VLDRBU32 = 1254,
-  MVE_VLDRBU32_post = 1255,
-  MVE_VLDRBU32_pre = 1256,
-  MVE_VLDRBU32_rq = 1257,
-  MVE_VLDRBU8 = 1258,
-  MVE_VLDRBU8_post = 1259,
-  MVE_VLDRBU8_pre = 1260,
-  MVE_VLDRBU8_rq = 1261,
-  MVE_VLDRDU64_qi = 1262,
-  MVE_VLDRDU64_qi_pre = 1263,
-  MVE_VLDRDU64_rq = 1264,
-  MVE_VLDRDU64_rq_u = 1265,
-  MVE_VLDRHS32 = 1266,
-  MVE_VLDRHS32_post = 1267,
-  MVE_VLDRHS32_pre = 1268,
-  MVE_VLDRHS32_rq = 1269,
-  MVE_VLDRHS32_rq_u = 1270,
-  MVE_VLDRHU16 = 1271,
-  MVE_VLDRHU16_post = 1272,
-  MVE_VLDRHU16_pre = 1273,
-  MVE_VLDRHU16_rq = 1274,
-  MVE_VLDRHU16_rq_u = 1275,
-  MVE_VLDRHU32 = 1276,
-  MVE_VLDRHU32_post = 1277,
-  MVE_VLDRHU32_pre = 1278,
-  MVE_VLDRHU32_rq = 1279,
-  MVE_VLDRHU32_rq_u = 1280,
-  MVE_VLDRWU32 = 1281,
-  MVE_VLDRWU32_post = 1282,
-  MVE_VLDRWU32_pre = 1283,
-  MVE_VLDRWU32_qi = 1284,
-  MVE_VLDRWU32_qi_pre = 1285,
-  MVE_VLDRWU32_rq = 1286,
-  MVE_VLDRWU32_rq_u = 1287,
-  MVE_VMAXAVs16 = 1288,
-  MVE_VMAXAVs32 = 1289,
-  MVE_VMAXAVs8 = 1290,
-  MVE_VMAXAs16 = 1291,
-  MVE_VMAXAs32 = 1292,
-  MVE_VMAXAs8 = 1293,
-  MVE_VMAXNMAVf16 = 1294,
-  MVE_VMAXNMAVf32 = 1295,
-  MVE_VMAXNMAf16 = 1296,
-  MVE_VMAXNMAf32 = 1297,
-  MVE_VMAXNMVf16 = 1298,
-  MVE_VMAXNMVf32 = 1299,
-  MVE_VMAXNMf16 = 1300,
-  MVE_VMAXNMf32 = 1301,
-  MVE_VMAXVs16 = 1302,
-  MVE_VMAXVs32 = 1303,
-  MVE_VMAXVs8 = 1304,
-  MVE_VMAXVu16 = 1305,
-  MVE_VMAXVu32 = 1306,
-  MVE_VMAXVu8 = 1307,
-  MVE_VMAXs16 = 1308,
-  MVE_VMAXs32 = 1309,
-  MVE_VMAXs8 = 1310,
-  MVE_VMAXu16 = 1311,
-  MVE_VMAXu32 = 1312,
-  MVE_VMAXu8 = 1313,
-  MVE_VMINAVs16 = 1314,
-  MVE_VMINAVs32 = 1315,
-  MVE_VMINAVs8 = 1316,
-  MVE_VMINAs16 = 1317,
-  MVE_VMINAs32 = 1318,
-  MVE_VMINAs8 = 1319,
-  MVE_VMINNMAVf16 = 1320,
-  MVE_VMINNMAVf32 = 1321,
-  MVE_VMINNMAf16 = 1322,
-  MVE_VMINNMAf32 = 1323,
-  MVE_VMINNMVf16 = 1324,
-  MVE_VMINNMVf32 = 1325,
-  MVE_VMINNMf16 = 1326,
-  MVE_VMINNMf32 = 1327,
-  MVE_VMINVs16 = 1328,
-  MVE_VMINVs32 = 1329,
-  MVE_VMINVs8 = 1330,
-  MVE_VMINVu16 = 1331,
-  MVE_VMINVu32 = 1332,
-  MVE_VMINVu8 = 1333,
-  MVE_VMINs16 = 1334,
-  MVE_VMINs32 = 1335,
-  MVE_VMINs8 = 1336,
-  MVE_VMINu16 = 1337,
-  MVE_VMINu32 = 1338,
-  MVE_VMINu8 = 1339,
-  MVE_VMLADAVas16 = 1340,
-  MVE_VMLADAVas32 = 1341,
-  MVE_VMLADAVas8 = 1342,
-  MVE_VMLADAVau16 = 1343,
-  MVE_VMLADAVau32 = 1344,
-  MVE_VMLADAVau8 = 1345,
-  MVE_VMLADAVaxs16 = 1346,
-  MVE_VMLADAVaxs32 = 1347,
-  MVE_VMLADAVaxs8 = 1348,
-  MVE_VMLADAVs16 = 1349,
-  MVE_VMLADAVs32 = 1350,
-  MVE_VMLADAVs8 = 1351,
-  MVE_VMLADAVu16 = 1352,
-  MVE_VMLADAVu32 = 1353,
-  MVE_VMLADAVu8 = 1354,
-  MVE_VMLADAVxs16 = 1355,
-  MVE_VMLADAVxs32 = 1356,
-  MVE_VMLADAVxs8 = 1357,
-  MVE_VMLALDAVas16 = 1358,
-  MVE_VMLALDAVas32 = 1359,
-  MVE_VMLALDAVau16 = 1360,
-  MVE_VMLALDAVau32 = 1361,
-  MVE_VMLALDAVaxs16 = 1362,
-  MVE_VMLALDAVaxs32 = 1363,
-  MVE_VMLALDAVs16 = 1364,
-  MVE_VMLALDAVs32 = 1365,
-  MVE_VMLALDAVu16 = 1366,
-  MVE_VMLALDAVu32 = 1367,
-  MVE_VMLALDAVxs16 = 1368,
-  MVE_VMLALDAVxs32 = 1369,
-  MVE_VMLAS_qr_i16 = 1370,
-  MVE_VMLAS_qr_i32 = 1371,
-  MVE_VMLAS_qr_i8 = 1372,
-  MVE_VMLA_qr_i16 = 1373,
-  MVE_VMLA_qr_i32 = 1374,
-  MVE_VMLA_qr_i8 = 1375,
-  MVE_VMLSDAVas16 = 1376,
-  MVE_VMLSDAVas32 = 1377,
-  MVE_VMLSDAVas8 = 1378,
-  MVE_VMLSDAVaxs16 = 1379,
-  MVE_VMLSDAVaxs32 = 1380,
-  MVE_VMLSDAVaxs8 = 1381,
-  MVE_VMLSDAVs16 = 1382,
-  MVE_VMLSDAVs32 = 1383,
-  MVE_VMLSDAVs8 = 1384,
-  MVE_VMLSDAVxs16 = 1385,
-  MVE_VMLSDAVxs32 = 1386,
-  MVE_VMLSDAVxs8 = 1387,
-  MVE_VMLSLDAVas16 = 1388,
-  MVE_VMLSLDAVas32 = 1389,
-  MVE_VMLSLDAVaxs16 = 1390,
-  MVE_VMLSLDAVaxs32 = 1391,
-  MVE_VMLSLDAVs16 = 1392,
-  MVE_VMLSLDAVs32 = 1393,
-  MVE_VMLSLDAVxs16 = 1394,
-  MVE_VMLSLDAVxs32 = 1395,
-  MVE_VMOVLs16bh = 1396,
-  MVE_VMOVLs16th = 1397,
-  MVE_VMOVLs8bh = 1398,
-  MVE_VMOVLs8th = 1399,
-  MVE_VMOVLu16bh = 1400,
-  MVE_VMOVLu16th = 1401,
-  MVE_VMOVLu8bh = 1402,
-  MVE_VMOVLu8th = 1403,
-  MVE_VMOVNi16bh = 1404,
-  MVE_VMOVNi16th = 1405,
-  MVE_VMOVNi32bh = 1406,
-  MVE_VMOVNi32th = 1407,
-  MVE_VMOV_from_lane_32 = 1408,
-  MVE_VMOV_from_lane_s16 = 1409,
-  MVE_VMOV_from_lane_s8 = 1410,
-  MVE_VMOV_from_lane_u16 = 1411,
-  MVE_VMOV_from_lane_u8 = 1412,
-  MVE_VMOV_q_rr = 1413,
-  MVE_VMOV_rr_q = 1414,
-  MVE_VMOV_to_lane_16 = 1415,
-  MVE_VMOV_to_lane_32 = 1416,
-  MVE_VMOV_to_lane_8 = 1417,
-  MVE_VMOVimmf32 = 1418,
-  MVE_VMOVimmi16 = 1419,
-  MVE_VMOVimmi32 = 1420,
-  MVE_VMOVimmi64 = 1421,
-  MVE_VMOVimmi8 = 1422,
-  MVE_VMULHs16 = 1423,
-  MVE_VMULHs32 = 1424,
-  MVE_VMULHs8 = 1425,
-  MVE_VMULHu16 = 1426,
-  MVE_VMULHu32 = 1427,
-  MVE_VMULHu8 = 1428,
-  MVE_VMULLBp16 = 1429,
-  MVE_VMULLBp8 = 1430,
-  MVE_VMULLBs16 = 1431,
-  MVE_VMULLBs32 = 1432,
-  MVE_VMULLBs8 = 1433,
-  MVE_VMULLBu16 = 1434,
-  MVE_VMULLBu32 = 1435,
-  MVE_VMULLBu8 = 1436,
-  MVE_VMULLTp16 = 1437,
-  MVE_VMULLTp8 = 1438,
-  MVE_VMULLTs16 = 1439,
-  MVE_VMULLTs32 = 1440,
-  MVE_VMULLTs8 = 1441,
-  MVE_VMULLTu16 = 1442,
-  MVE_VMULLTu32 = 1443,
-  MVE_VMULLTu8 = 1444,
-  MVE_VMUL_qr_f16 = 1445,
-  MVE_VMUL_qr_f32 = 1446,
-  MVE_VMUL_qr_i16 = 1447,
-  MVE_VMUL_qr_i32 = 1448,
-  MVE_VMUL_qr_i8 = 1449,
-  MVE_VMULf16 = 1450,
-  MVE_VMULf32 = 1451,
-  MVE_VMULi16 = 1452,
-  MVE_VMULi32 = 1453,
-  MVE_VMULi8 = 1454,
-  MVE_VMVN = 1455,
-  MVE_VMVNimmi16 = 1456,
-  MVE_VMVNimmi32 = 1457,
-  MVE_VNEGf16 = 1458,
-  MVE_VNEGf32 = 1459,
-  MVE_VNEGs16 = 1460,
-  MVE_VNEGs32 = 1461,
-  MVE_VNEGs8 = 1462,
-  MVE_VORN = 1463,
-  MVE_VORR = 1464,
-  MVE_VORRimmi16 = 1465,
-  MVE_VORRimmi32 = 1466,
-  MVE_VPNOT = 1467,
-  MVE_VPSEL = 1468,
-  MVE_VPST = 1469,
-  MVE_VPTv16i8 = 1470,
-  MVE_VPTv16i8r = 1471,
-  MVE_VPTv16s8 = 1472,
-  MVE_VPTv16s8r = 1473,
-  MVE_VPTv16u8 = 1474,
-  MVE_VPTv16u8r = 1475,
-  MVE_VPTv4f32 = 1476,
-  MVE_VPTv4f32r = 1477,
-  MVE_VPTv4i32 = 1478,
-  MVE_VPTv4i32r = 1479,
-  MVE_VPTv4s32 = 1480,
-  MVE_VPTv4s32r = 1481,
-  MVE_VPTv4u32 = 1482,
-  MVE_VPTv4u32r = 1483,
-  MVE_VPTv8f16 = 1484,
-  MVE_VPTv8f16r = 1485,
-  MVE_VPTv8i16 = 1486,
-  MVE_VPTv8i16r = 1487,
-  MVE_VPTv8s16 = 1488,
-  MVE_VPTv8s16r = 1489,
-  MVE_VPTv8u16 = 1490,
-  MVE_VPTv8u16r = 1491,
-  MVE_VQABSs16 = 1492,
-  MVE_VQABSs32 = 1493,
-  MVE_VQABSs8 = 1494,
-  MVE_VQADD_qr_s16 = 1495,
-  MVE_VQADD_qr_s32 = 1496,
-  MVE_VQADD_qr_s8 = 1497,
-  MVE_VQADD_qr_u16 = 1498,
-  MVE_VQADD_qr_u32 = 1499,
-  MVE_VQADD_qr_u8 = 1500,
-  MVE_VQADDs16 = 1501,
-  MVE_VQADDs32 = 1502,
-  MVE_VQADDs8 = 1503,
-  MVE_VQADDu16 = 1504,
-  MVE_VQADDu32 = 1505,
-  MVE_VQADDu8 = 1506,
-  MVE_VQDMLADHXs16 = 1507,
-  MVE_VQDMLADHXs32 = 1508,
-  MVE_VQDMLADHXs8 = 1509,
-  MVE_VQDMLADHs16 = 1510,
-  MVE_VQDMLADHs32 = 1511,
-  MVE_VQDMLADHs8 = 1512,
-  MVE_VQDMLAH_qrs16 = 1513,
-  MVE_VQDMLAH_qrs32 = 1514,
-  MVE_VQDMLAH_qrs8 = 1515,
-  MVE_VQDMLASH_qrs16 = 1516,
-  MVE_VQDMLASH_qrs32 = 1517,
-  MVE_VQDMLASH_qrs8 = 1518,
-  MVE_VQDMLSDHXs16 = 1519,
-  MVE_VQDMLSDHXs32 = 1520,
-  MVE_VQDMLSDHXs8 = 1521,
-  MVE_VQDMLSDHs16 = 1522,
-  MVE_VQDMLSDHs32 = 1523,
-  MVE_VQDMLSDHs8 = 1524,
-  MVE_VQDMULH_qr_s16 = 1525,
-  MVE_VQDMULH_qr_s32 = 1526,
-  MVE_VQDMULH_qr_s8 = 1527,
-  MVE_VQDMULHi16 = 1528,
-  MVE_VQDMULHi32 = 1529,
-  MVE_VQDMULHi8 = 1530,
-  MVE_VQDMULL_qr_s16bh = 1531,
-  MVE_VQDMULL_qr_s16th = 1532,
-  MVE_VQDMULL_qr_s32bh = 1533,
-  MVE_VQDMULL_qr_s32th = 1534,
-  MVE_VQDMULLs16bh = 1535,
-  MVE_VQDMULLs16th = 1536,
-  MVE_VQDMULLs32bh = 1537,
-  MVE_VQDMULLs32th = 1538,
-  MVE_VQMOVNs16bh = 1539,
-  MVE_VQMOVNs16th = 1540,
-  MVE_VQMOVNs32bh = 1541,
-  MVE_VQMOVNs32th = 1542,
-  MVE_VQMOVNu16bh = 1543,
-  MVE_VQMOVNu16th = 1544,
-  MVE_VQMOVNu32bh = 1545,
-  MVE_VQMOVNu32th = 1546,
-  MVE_VQMOVUNs16bh = 1547,
-  MVE_VQMOVUNs16th = 1548,
-  MVE_VQMOVUNs32bh = 1549,
-  MVE_VQMOVUNs32th = 1550,
-  MVE_VQNEGs16 = 1551,
-  MVE_VQNEGs32 = 1552,
-  MVE_VQNEGs8 = 1553,
-  MVE_VQRDMLADHXs16 = 1554,
-  MVE_VQRDMLADHXs32 = 1555,
-  MVE_VQRDMLADHXs8 = 1556,
-  MVE_VQRDMLADHs16 = 1557,
-  MVE_VQRDMLADHs32 = 1558,
-  MVE_VQRDMLADHs8 = 1559,
-  MVE_VQRDMLAH_qrs16 = 1560,
-  MVE_VQRDMLAH_qrs32 = 1561,
-  MVE_VQRDMLAH_qrs8 = 1562,
-  MVE_VQRDMLASH_qrs16 = 1563,
-  MVE_VQRDMLASH_qrs32 = 1564,
-  MVE_VQRDMLASH_qrs8 = 1565,
-  MVE_VQRDMLSDHXs16 = 1566,
-  MVE_VQRDMLSDHXs32 = 1567,
-  MVE_VQRDMLSDHXs8 = 1568,
-  MVE_VQRDMLSDHs16 = 1569,
-  MVE_VQRDMLSDHs32 = 1570,
-  MVE_VQRDMLSDHs8 = 1571,
-  MVE_VQRDMULH_qr_s16 = 1572,
-  MVE_VQRDMULH_qr_s32 = 1573,
-  MVE_VQRDMULH_qr_s8 = 1574,
-  MVE_VQRDMULHi16 = 1575,
-  MVE_VQRDMULHi32 = 1576,
-  MVE_VQRDMULHi8 = 1577,
-  MVE_VQRSHL_by_vecs16 = 1578,
-  MVE_VQRSHL_by_vecs32 = 1579,
-  MVE_VQRSHL_by_vecs8 = 1580,
-  MVE_VQRSHL_by_vecu16 = 1581,
-  MVE_VQRSHL_by_vecu32 = 1582,
-  MVE_VQRSHL_by_vecu8 = 1583,
-  MVE_VQRSHL_qrs16 = 1584,
-  MVE_VQRSHL_qrs32 = 1585,
-  MVE_VQRSHL_qrs8 = 1586,
-  MVE_VQRSHL_qru16 = 1587,
-  MVE_VQRSHL_qru32 = 1588,
-  MVE_VQRSHL_qru8 = 1589,
-  MVE_VQRSHRNbhs16 = 1590,
-  MVE_VQRSHRNbhs32 = 1591,
-  MVE_VQRSHRNbhu16 = 1592,
-  MVE_VQRSHRNbhu32 = 1593,
-  MVE_VQRSHRNths16 = 1594,
-  MVE_VQRSHRNths32 = 1595,
-  MVE_VQRSHRNthu16 = 1596,
-  MVE_VQRSHRNthu32 = 1597,
-  MVE_VQRSHRUNs16bh = 1598,
-  MVE_VQRSHRUNs16th = 1599,
-  MVE_VQRSHRUNs32bh = 1600,
-  MVE_VQRSHRUNs32th = 1601,
-  MVE_VQSHLU_imms16 = 1602,
-  MVE_VQSHLU_imms32 = 1603,
-  MVE_VQSHLU_imms8 = 1604,
-  MVE_VQSHL_by_vecs16 = 1605,
-  MVE_VQSHL_by_vecs32 = 1606,
-  MVE_VQSHL_by_vecs8 = 1607,
-  MVE_VQSHL_by_vecu16 = 1608,
-  MVE_VQSHL_by_vecu32 = 1609,
-  MVE_VQSHL_by_vecu8 = 1610,
-  MVE_VQSHL_qrs16 = 1611,
-  MVE_VQSHL_qrs32 = 1612,
-  MVE_VQSHL_qrs8 = 1613,
-  MVE_VQSHL_qru16 = 1614,
-  MVE_VQSHL_qru32 = 1615,
-  MVE_VQSHL_qru8 = 1616,
-  MVE_VQSHLimms16 = 1617,
-  MVE_VQSHLimms32 = 1618,
-  MVE_VQSHLimms8 = 1619,
-  MVE_VQSHLimmu16 = 1620,
-  MVE_VQSHLimmu32 = 1621,
-  MVE_VQSHLimmu8 = 1622,
-  MVE_VQSHRNbhs16 = 1623,
-  MVE_VQSHRNbhs32 = 1624,
-  MVE_VQSHRNbhu16 = 1625,
-  MVE_VQSHRNbhu32 = 1626,
-  MVE_VQSHRNths16 = 1627,
-  MVE_VQSHRNths32 = 1628,
-  MVE_VQSHRNthu16 = 1629,
-  MVE_VQSHRNthu32 = 1630,
-  MVE_VQSHRUNs16bh = 1631,
-  MVE_VQSHRUNs16th = 1632,
-  MVE_VQSHRUNs32bh = 1633,
-  MVE_VQSHRUNs32th = 1634,
-  MVE_VQSUB_qr_s16 = 1635,
-  MVE_VQSUB_qr_s32 = 1636,
-  MVE_VQSUB_qr_s8 = 1637,
-  MVE_VQSUB_qr_u16 = 1638,
-  MVE_VQSUB_qr_u32 = 1639,
-  MVE_VQSUB_qr_u8 = 1640,
-  MVE_VQSUBs16 = 1641,
-  MVE_VQSUBs32 = 1642,
-  MVE_VQSUBs8 = 1643,
-  MVE_VQSUBu16 = 1644,
-  MVE_VQSUBu32 = 1645,
-  MVE_VQSUBu8 = 1646,
-  MVE_VREV16_8 = 1647,
-  MVE_VREV32_16 = 1648,
-  MVE_VREV32_8 = 1649,
-  MVE_VREV64_16 = 1650,
-  MVE_VREV64_32 = 1651,
-  MVE_VREV64_8 = 1652,
-  MVE_VRHADDs16 = 1653,
-  MVE_VRHADDs32 = 1654,
-  MVE_VRHADDs8 = 1655,
-  MVE_VRHADDu16 = 1656,
-  MVE_VRHADDu32 = 1657,
-  MVE_VRHADDu8 = 1658,
-  MVE_VRINTf16A = 1659,
-  MVE_VRINTf16M = 1660,
-  MVE_VRINTf16N = 1661,
-  MVE_VRINTf16P = 1662,
-  MVE_VRINTf16X = 1663,
-  MVE_VRINTf16Z = 1664,
-  MVE_VRINTf32A = 1665,
-  MVE_VRINTf32M = 1666,
-  MVE_VRINTf32N = 1667,
-  MVE_VRINTf32P = 1668,
-  MVE_VRINTf32X = 1669,
-  MVE_VRINTf32Z = 1670,
-  MVE_VRMLALDAVHas32 = 1671,
-  MVE_VRMLALDAVHau32 = 1672,
-  MVE_VRMLALDAVHaxs32 = 1673,
-  MVE_VRMLALDAVHs32 = 1674,
-  MVE_VRMLALDAVHu32 = 1675,
-  MVE_VRMLALDAVHxs32 = 1676,
-  MVE_VRMLSLDAVHas32 = 1677,
-  MVE_VRMLSLDAVHaxs32 = 1678,
-  MVE_VRMLSLDAVHs32 = 1679,
-  MVE_VRMLSLDAVHxs32 = 1680,
-  MVE_VRMULHs16 = 1681,
-  MVE_VRMULHs32 = 1682,
-  MVE_VRMULHs8 = 1683,
-  MVE_VRMULHu16 = 1684,
-  MVE_VRMULHu32 = 1685,
-  MVE_VRMULHu8 = 1686,
-  MVE_VRSHL_by_vecs16 = 1687,
-  MVE_VRSHL_by_vecs32 = 1688,
-  MVE_VRSHL_by_vecs8 = 1689,
-  MVE_VRSHL_by_vecu16 = 1690,
-  MVE_VRSHL_by_vecu32 = 1691,
-  MVE_VRSHL_by_vecu8 = 1692,
-  MVE_VRSHL_qrs16 = 1693,
-  MVE_VRSHL_qrs32 = 1694,
-  MVE_VRSHL_qrs8 = 1695,
-  MVE_VRSHL_qru16 = 1696,
-  MVE_VRSHL_qru32 = 1697,
-  MVE_VRSHL_qru8 = 1698,
-  MVE_VRSHRNi16bh = 1699,
-  MVE_VRSHRNi16th = 1700,
-  MVE_VRSHRNi32bh = 1701,
-  MVE_VRSHRNi32th = 1702,
-  MVE_VRSHR_imms16 = 1703,
-  MVE_VRSHR_imms32 = 1704,
-  MVE_VRSHR_imms8 = 1705,
-  MVE_VRSHR_immu16 = 1706,
-  MVE_VRSHR_immu32 = 1707,
-  MVE_VRSHR_immu8 = 1708,
-  MVE_VSBC = 1709,
-  MVE_VSBCI = 1710,
-  MVE_VSHLC = 1711,
-  MVE_VSHLL_imms16bh = 1712,
-  MVE_VSHLL_imms16th = 1713,
-  MVE_VSHLL_imms8bh = 1714,
-  MVE_VSHLL_imms8th = 1715,
-  MVE_VSHLL_immu16bh = 1716,
-  MVE_VSHLL_immu16th = 1717,
-  MVE_VSHLL_immu8bh = 1718,
-  MVE_VSHLL_immu8th = 1719,
-  MVE_VSHLL_lws16bh = 1720,
-  MVE_VSHLL_lws16th = 1721,
-  MVE_VSHLL_lws8bh = 1722,
-  MVE_VSHLL_lws8th = 1723,
-  MVE_VSHLL_lwu16bh = 1724,
-  MVE_VSHLL_lwu16th = 1725,
-  MVE_VSHLL_lwu8bh = 1726,
-  MVE_VSHLL_lwu8th = 1727,
-  MVE_VSHL_by_vecs16 = 1728,
-  MVE_VSHL_by_vecs32 = 1729,
-  MVE_VSHL_by_vecs8 = 1730,
-  MVE_VSHL_by_vecu16 = 1731,
-  MVE_VSHL_by_vecu32 = 1732,
-  MVE_VSHL_by_vecu8 = 1733,
-  MVE_VSHL_immi16 = 1734,
-  MVE_VSHL_immi32 = 1735,
-  MVE_VSHL_immi8 = 1736,
-  MVE_VSHL_qrs16 = 1737,
-  MVE_VSHL_qrs32 = 1738,
-  MVE_VSHL_qrs8 = 1739,
-  MVE_VSHL_qru16 = 1740,
-  MVE_VSHL_qru32 = 1741,
-  MVE_VSHL_qru8 = 1742,
-  MVE_VSHRNi16bh = 1743,
-  MVE_VSHRNi16th = 1744,
-  MVE_VSHRNi32bh = 1745,
-  MVE_VSHRNi32th = 1746,
-  MVE_VSHR_imms16 = 1747,
-  MVE_VSHR_imms32 = 1748,
-  MVE_VSHR_imms8 = 1749,
-  MVE_VSHR_immu16 = 1750,
-  MVE_VSHR_immu32 = 1751,
-  MVE_VSHR_immu8 = 1752,
-  MVE_VSLIimm16 = 1753,
-  MVE_VSLIimm32 = 1754,
-  MVE_VSLIimm8 = 1755,
-  MVE_VSRIimm16 = 1756,
-  MVE_VSRIimm32 = 1757,
-  MVE_VSRIimm8 = 1758,
-  MVE_VST20_16 = 1759,
-  MVE_VST20_16_wb = 1760,
-  MVE_VST20_32 = 1761,
-  MVE_VST20_32_wb = 1762,
-  MVE_VST20_8 = 1763,
-  MVE_VST20_8_wb = 1764,
-  MVE_VST21_16 = 1765,
-  MVE_VST21_16_wb = 1766,
-  MVE_VST21_32 = 1767,
-  MVE_VST21_32_wb = 1768,
-  MVE_VST21_8 = 1769,
-  MVE_VST21_8_wb = 1770,
-  MVE_VST40_16 = 1771,
-  MVE_VST40_16_wb = 1772,
-  MVE_VST40_32 = 1773,
-  MVE_VST40_32_wb = 1774,
-  MVE_VST40_8 = 1775,
-  MVE_VST40_8_wb = 1776,
-  MVE_VST41_16 = 1777,
-  MVE_VST41_16_wb = 1778,
-  MVE_VST41_32 = 1779,
-  MVE_VST41_32_wb = 1780,
-  MVE_VST41_8 = 1781,
-  MVE_VST41_8_wb = 1782,
-  MVE_VST42_16 = 1783,
-  MVE_VST42_16_wb = 1784,
-  MVE_VST42_32 = 1785,
-  MVE_VST42_32_wb = 1786,
-  MVE_VST42_8 = 1787,
-  MVE_VST42_8_wb = 1788,
-  MVE_VST43_16 = 1789,
-  MVE_VST43_16_wb = 1790,
-  MVE_VST43_32 = 1791,
-  MVE_VST43_32_wb = 1792,
-  MVE_VST43_8 = 1793,
-  MVE_VST43_8_wb = 1794,
-  MVE_VSTRB16 = 1795,
-  MVE_VSTRB16_post = 1796,
-  MVE_VSTRB16_pre = 1797,
-  MVE_VSTRB16_rq = 1798,
-  MVE_VSTRB32 = 1799,
-  MVE_VSTRB32_post = 1800,
-  MVE_VSTRB32_pre = 1801,
-  MVE_VSTRB32_rq = 1802,
-  MVE_VSTRB8_rq = 1803,
-  MVE_VSTRBU8 = 1804,
-  MVE_VSTRBU8_post = 1805,
-  MVE_VSTRBU8_pre = 1806,
-  MVE_VSTRD64_qi = 1807,
-  MVE_VSTRD64_qi_pre = 1808,
-  MVE_VSTRD64_rq = 1809,
-  MVE_VSTRD64_rq_u = 1810,
-  MVE_VSTRH16_rq = 1811,
-  MVE_VSTRH16_rq_u = 1812,
-  MVE_VSTRH32 = 1813,
-  MVE_VSTRH32_post = 1814,
-  MVE_VSTRH32_pre = 1815,
-  MVE_VSTRH32_rq = 1816,
-  MVE_VSTRH32_rq_u = 1817,
-  MVE_VSTRHU16 = 1818,
-  MVE_VSTRHU16_post = 1819,
-  MVE_VSTRHU16_pre = 1820,
-  MVE_VSTRW32_qi = 1821,
-  MVE_VSTRW32_qi_pre = 1822,
-  MVE_VSTRW32_rq = 1823,
-  MVE_VSTRW32_rq_u = 1824,
-  MVE_VSTRWU32 = 1825,
-  MVE_VSTRWU32_post = 1826,
-  MVE_VSTRWU32_pre = 1827,
-  MVE_VSUB_qr_f16 = 1828,
-  MVE_VSUB_qr_f32 = 1829,
-  MVE_VSUB_qr_i16 = 1830,
-  MVE_VSUB_qr_i32 = 1831,
-  MVE_VSUB_qr_i8 = 1832,
-  MVE_VSUBf16 = 1833,
-  MVE_VSUBf32 = 1834,
-  MVE_VSUBi16 = 1835,
-  MVE_VSUBi32 = 1836,
-  MVE_VSUBi8 = 1837,
-  MVE_WLSTP_16 = 1838,
-  MVE_WLSTP_32 = 1839,
-  MVE_WLSTP_64 = 1840,
-  MVE_WLSTP_8 = 1841,
-  MVNi = 1842,
-  MVNr = 1843,
-  MVNsi = 1844,
-  MVNsr = 1845,
-  NEON_VMAXNMNDf = 1846,
-  NEON_VMAXNMNDh = 1847,
-  NEON_VMAXNMNQf = 1848,
-  NEON_VMAXNMNQh = 1849,
-  NEON_VMINNMNDf = 1850,
-  NEON_VMINNMNDh = 1851,
-  NEON_VMINNMNQf = 1852,
-  NEON_VMINNMNQh = 1853,
-  ORRri = 1854,
-  ORRrr = 1855,
-  ORRrsi = 1856,
-  ORRrsr = 1857,
-  PKHBT = 1858,
-  PKHTB = 1859,
-  PLDWi12 = 1860,
-  PLDWrs = 1861,
-  PLDi12 = 1862,
-  PLDrs = 1863,
-  PLIi12 = 1864,
-  PLIrs = 1865,
-  QADD = 1866,
-  QADD16 = 1867,
-  QADD8 = 1868,
-  QASX = 1869,
-  QDADD = 1870,
-  QDSUB = 1871,
-  QSAX = 1872,
-  QSUB = 1873,
-  QSUB16 = 1874,
-  QSUB8 = 1875,
-  RBIT = 1876,
-  REV = 1877,
-  REV16 = 1878,
-  REVSH = 1879,
-  RFEDA = 1880,
-  RFEDA_UPD = 1881,
-  RFEDB = 1882,
-  RFEDB_UPD = 1883,
-  RFEIA = 1884,
-  RFEIA_UPD = 1885,
-  RFEIB = 1886,
-  RFEIB_UPD = 1887,
-  RSBri = 1888,
-  RSBrr = 1889,
-  RSBrsi = 1890,
-  RSBrsr = 1891,
-  RSCri = 1892,
-  RSCrr = 1893,
-  RSCrsi = 1894,
-  RSCrsr = 1895,
-  SADD16 = 1896,
-  SADD8 = 1897,
-  SASX = 1898,
-  SB = 1899,
-  SBCri = 1900,
-  SBCrr = 1901,
-  SBCrsi = 1902,
-  SBCrsr = 1903,
-  SBFX = 1904,
-  SDIV = 1905,
-  SEL = 1906,
-  SETEND = 1907,
-  SETPAN = 1908,
-  SHA1C = 1909,
-  SHA1H = 1910,
-  SHA1M = 1911,
-  SHA1P = 1912,
-  SHA1SU0 = 1913,
-  SHA1SU1 = 1914,
-  SHA256H = 1915,
-  SHA256H2 = 1916,
-  SHA256SU0 = 1917,
-  SHA256SU1 = 1918,
-  SHADD16 = 1919,
-  SHADD8 = 1920,
-  SHASX = 1921,
-  SHSAX = 1922,
-  SHSUB16 = 1923,
-  SHSUB8 = 1924,
-  SMC = 1925,
-  SMLABB = 1926,
-  SMLABT = 1927,
-  SMLAD = 1928,
-  SMLADX = 1929,
-  SMLAL = 1930,
-  SMLALBB = 1931,
-  SMLALBT = 1932,
-  SMLALD = 1933,
-  SMLALDX = 1934,
-  SMLALTB = 1935,
-  SMLALTT = 1936,
-  SMLATB = 1937,
-  SMLATT = 1938,
-  SMLAWB = 1939,
-  SMLAWT = 1940,
-  SMLSD = 1941,
-  SMLSDX = 1942,
-  SMLSLD = 1943,
-  SMLSLDX = 1944,
-  SMMLA = 1945,
-  SMMLAR = 1946,
-  SMMLS = 1947,
-  SMMLSR = 1948,
-  SMMUL = 1949,
-  SMMULR = 1950,
-  SMUAD = 1951,
-  SMUADX = 1952,
-  SMULBB = 1953,
-  SMULBT = 1954,
-  SMULL = 1955,
-  SMULTB = 1956,
-  SMULTT = 1957,
-  SMULWB = 1958,
-  SMULWT = 1959,
-  SMUSD = 1960,
-  SMUSDX = 1961,
-  SRSDA = 1962,
-  SRSDA_UPD = 1963,
-  SRSDB = 1964,
-  SRSDB_UPD = 1965,
-  SRSIA = 1966,
-  SRSIA_UPD = 1967,
-  SRSIB = 1968,
-  SRSIB_UPD = 1969,
-  SSAT = 1970,
-  SSAT16 = 1971,
-  SSAX = 1972,
-  SSUB16 = 1973,
-  SSUB8 = 1974,
-  STC2L_OFFSET = 1975,
-  STC2L_OPTION = 1976,
-  STC2L_POST = 1977,
-  STC2L_PRE = 1978,
-  STC2_OFFSET = 1979,
-  STC2_OPTION = 1980,
-  STC2_POST = 1981,
-  STC2_PRE = 1982,
-  STCL_OFFSET = 1983,
-  STCL_OPTION = 1984,
-  STCL_POST = 1985,
-  STCL_PRE = 1986,
-  STC_OFFSET = 1987,
-  STC_OPTION = 1988,
-  STC_POST = 1989,
-  STC_PRE = 1990,
-  STL = 1991,
-  STLB = 1992,
-  STLEX = 1993,
-  STLEXB = 1994,
-  STLEXD = 1995,
-  STLEXH = 1996,
-  STLH = 1997,
-  STMDA = 1998,
-  STMDA_UPD = 1999,
-  STMDB = 2000,
-  STMDB_UPD = 2001,
-  STMIA = 2002,
-  STMIA_UPD = 2003,
-  STMIB = 2004,
-  STMIB_UPD = 2005,
-  STRBT_POST_IMM = 2006,
-  STRBT_POST_REG = 2007,
-  STRB_POST_IMM = 2008,
-  STRB_POST_REG = 2009,
-  STRB_PRE_IMM = 2010,
-  STRB_PRE_REG = 2011,
-  STRBi12 = 2012,
-  STRBrs = 2013,
-  STRD = 2014,
-  STRD_POST = 2015,
-  STRD_PRE = 2016,
-  STREX = 2017,
-  STREXB = 2018,
-  STREXD = 2019,
-  STREXH = 2020,
-  STRH = 2021,
-  STRHTi = 2022,
-  STRHTr = 2023,
-  STRH_POST = 2024,
-  STRH_PRE = 2025,
-  STRT_POST_IMM = 2026,
-  STRT_POST_REG = 2027,
-  STR_POST_IMM = 2028,
-  STR_POST_REG = 2029,
-  STR_PRE_IMM = 2030,
-  STR_PRE_REG = 2031,
-  STRi12 = 2032,
-  STRrs = 2033,
-  SUBri = 2034,
-  SUBrr = 2035,
-  SUBrsi = 2036,
-  SUBrsr = 2037,
-  SVC = 2038,
-  SWP = 2039,
-  SWPB = 2040,
-  SXTAB = 2041,
-  SXTAB16 = 2042,
-  SXTAH = 2043,
-  SXTB = 2044,
-  SXTB16 = 2045,
-  SXTH = 2046,
-  TEQri = 2047,
-  TEQrr = 2048,
-  TEQrsi = 2049,
-  TEQrsr = 2050,
-  TRAP = 2051,
-  TRAPNaCl = 2052,
-  TSB = 2053,
-  TSTri = 2054,
-  TSTrr = 2055,
-  TSTrsi = 2056,
-  TSTrsr = 2057,
-  UADD16 = 2058,
-  UADD8 = 2059,
-  UASX = 2060,
-  UBFX = 2061,
-  UDF = 2062,
-  UDIV = 2063,
-  UHADD16 = 2064,
-  UHADD8 = 2065,
-  UHASX = 2066,
-  UHSAX = 2067,
-  UHSUB16 = 2068,
-  UHSUB8 = 2069,
-  UMAAL = 2070,
-  UMLAL = 2071,
-  UMULL = 2072,
-  UQADD16 = 2073,
-  UQADD8 = 2074,
-  UQASX = 2075,
-  UQSAX = 2076,
-  UQSUB16 = 2077,
-  UQSUB8 = 2078,
-  USAD8 = 2079,
-  USADA8 = 2080,
-  USAT = 2081,
-  USAT16 = 2082,
-  USAX = 2083,
-  USUB16 = 2084,
-  USUB8 = 2085,
-  UXTAB = 2086,
-  UXTAB16 = 2087,
-  UXTAH = 2088,
-  UXTB = 2089,
-  UXTB16 = 2090,
-  UXTH = 2091,
-  VABALsv2i64 = 2092,
-  VABALsv4i32 = 2093,
-  VABALsv8i16 = 2094,
-  VABALuv2i64 = 2095,
-  VABALuv4i32 = 2096,
-  VABALuv8i16 = 2097,
-  VABAsv16i8 = 2098,
-  VABAsv2i32 = 2099,
-  VABAsv4i16 = 2100,
-  VABAsv4i32 = 2101,
-  VABAsv8i16 = 2102,
-  VABAsv8i8 = 2103,
-  VABAuv16i8 = 2104,
-  VABAuv2i32 = 2105,
-  VABAuv4i16 = 2106,
-  VABAuv4i32 = 2107,
-  VABAuv8i16 = 2108,
-  VABAuv8i8 = 2109,
-  VABDLsv2i64 = 2110,
-  VABDLsv4i32 = 2111,
-  VABDLsv8i16 = 2112,
-  VABDLuv2i64 = 2113,
-  VABDLuv4i32 = 2114,
-  VABDLuv8i16 = 2115,
-  VABDfd = 2116,
-  VABDfq = 2117,
-  VABDhd = 2118,
-  VABDhq = 2119,
-  VABDsv16i8 = 2120,
-  VABDsv2i32 = 2121,
-  VABDsv4i16 = 2122,
-  VABDsv4i32 = 2123,
-  VABDsv8i16 = 2124,
-  VABDsv8i8 = 2125,
-  VABDuv16i8 = 2126,
-  VABDuv2i32 = 2127,
-  VABDuv4i16 = 2128,
-  VABDuv4i32 = 2129,
-  VABDuv8i16 = 2130,
-  VABDuv8i8 = 2131,
-  VABSD = 2132,
-  VABSH = 2133,
-  VABSS = 2134,
-  VABSfd = 2135,
-  VABSfq = 2136,
-  VABShd = 2137,
-  VABShq = 2138,
-  VABSv16i8 = 2139,
-  VABSv2i32 = 2140,
-  VABSv4i16 = 2141,
-  VABSv4i32 = 2142,
-  VABSv8i16 = 2143,
-  VABSv8i8 = 2144,
-  VACGEfd = 2145,
-  VACGEfq = 2146,
-  VACGEhd = 2147,
-  VACGEhq = 2148,
-  VACGTfd = 2149,
-  VACGTfq = 2150,
-  VACGThd = 2151,
-  VACGThq = 2152,
-  VADDD = 2153,
-  VADDH = 2154,
-  VADDHNv2i32 = 2155,
-  VADDHNv4i16 = 2156,
-  VADDHNv8i8 = 2157,
-  VADDLsv2i64 = 2158,
-  VADDLsv4i32 = 2159,
-  VADDLsv8i16 = 2160,
-  VADDLuv2i64 = 2161,
-  VADDLuv4i32 = 2162,
-  VADDLuv8i16 = 2163,
-  VADDS = 2164,
-  VADDWsv2i64 = 2165,
-  VADDWsv4i32 = 2166,
-  VADDWsv8i16 = 2167,
-  VADDWuv2i64 = 2168,
-  VADDWuv4i32 = 2169,
-  VADDWuv8i16 = 2170,
-  VADDfd = 2171,
-  VADDfq = 2172,
-  VADDhd = 2173,
-  VADDhq = 2174,
-  VADDv16i8 = 2175,
-  VADDv1i64 = 2176,
-  VADDv2i32 = 2177,
-  VADDv2i64 = 2178,
-  VADDv4i16 = 2179,
-  VADDv4i32 = 2180,
-  VADDv8i16 = 2181,
-  VADDv8i8 = 2182,
-  VANDd = 2183,
-  VANDq = 2184,
-  VBF16MALBQ = 2185,
-  VBF16MALBQI = 2186,
-  VBF16MALTQ = 2187,
-  VBF16MALTQI = 2188,
-  VBICd = 2189,
-  VBICiv2i32 = 2190,
-  VBICiv4i16 = 2191,
-  VBICiv4i32 = 2192,
-  VBICiv8i16 = 2193,
-  VBICq = 2194,
-  VBIFd = 2195,
-  VBIFq = 2196,
-  VBITd = 2197,
-  VBITq = 2198,
-  VBSLd = 2199,
-  VBSLq = 2200,
-  VBSPd = 2201,
-  VBSPq = 2202,
-  VCADDv2f32 = 2203,
-  VCADDv4f16 = 2204,
-  VCADDv4f32 = 2205,
-  VCADDv8f16 = 2206,
-  VCEQfd = 2207,
-  VCEQfq = 2208,
-  VCEQhd = 2209,
-  VCEQhq = 2210,
-  VCEQv16i8 = 2211,
-  VCEQv2i32 = 2212,
-  VCEQv4i16 = 2213,
-  VCEQv4i32 = 2214,
-  VCEQv8i16 = 2215,
-  VCEQv8i8 = 2216,
-  VCEQzv16i8 = 2217,
-  VCEQzv2f32 = 2218,
-  VCEQzv2i32 = 2219,
-  VCEQzv4f16 = 2220,
-  VCEQzv4f32 = 2221,
-  VCEQzv4i16 = 2222,
-  VCEQzv4i32 = 2223,
-  VCEQzv8f16 = 2224,
-  VCEQzv8i16 = 2225,
-  VCEQzv8i8 = 2226,
-  VCGEfd = 2227,
-  VCGEfq = 2228,
-  VCGEhd = 2229,
-  VCGEhq = 2230,
-  VCGEsv16i8 = 2231,
-  VCGEsv2i32 = 2232,
-  VCGEsv4i16 = 2233,
-  VCGEsv4i32 = 2234,
-  VCGEsv8i16 = 2235,
-  VCGEsv8i8 = 2236,
-  VCGEuv16i8 = 2237,
-  VCGEuv2i32 = 2238,
-  VCGEuv4i16 = 2239,
-  VCGEuv4i32 = 2240,
-  VCGEuv8i16 = 2241,
-  VCGEuv8i8 = 2242,
-  VCGEzv16i8 = 2243,
-  VCGEzv2f32 = 2244,
-  VCGEzv2i32 = 2245,
-  VCGEzv4f16 = 2246,
-  VCGEzv4f32 = 2247,
-  VCGEzv4i16 = 2248,
-  VCGEzv4i32 = 2249,
-  VCGEzv8f16 = 2250,
-  VCGEzv8i16 = 2251,
-  VCGEzv8i8 = 2252,
-  VCGTfd = 2253,
-  VCGTfq = 2254,
-  VCGThd = 2255,
-  VCGThq = 2256,
-  VCGTsv16i8 = 2257,
-  VCGTsv2i32 = 2258,
-  VCGTsv4i16 = 2259,
-  VCGTsv4i32 = 2260,
-  VCGTsv8i16 = 2261,
-  VCGTsv8i8 = 2262,
-  VCGTuv16i8 = 2263,
-  VCGTuv2i32 = 2264,
-  VCGTuv4i16 = 2265,
-  VCGTuv4i32 = 2266,
-  VCGTuv8i16 = 2267,
-  VCGTuv8i8 = 2268,
-  VCGTzv16i8 = 2269,
-  VCGTzv2f32 = 2270,
-  VCGTzv2i32 = 2271,
-  VCGTzv4f16 = 2272,
-  VCGTzv4f32 = 2273,
-  VCGTzv4i16 = 2274,
-  VCGTzv4i32 = 2275,
-  VCGTzv8f16 = 2276,
-  VCGTzv8i16 = 2277,
-  VCGTzv8i8 = 2278,
-  VCLEzv16i8 = 2279,
-  VCLEzv2f32 = 2280,
-  VCLEzv2i32 = 2281,
-  VCLEzv4f16 = 2282,
-  VCLEzv4f32 = 2283,
-  VCLEzv4i16 = 2284,
-  VCLEzv4i32 = 2285,
-  VCLEzv8f16 = 2286,
-  VCLEzv8i16 = 2287,
-  VCLEzv8i8 = 2288,
-  VCLSv16i8 = 2289,
-  VCLSv2i32 = 2290,
-  VCLSv4i16 = 2291,
-  VCLSv4i32 = 2292,
-  VCLSv8i16 = 2293,
-  VCLSv8i8 = 2294,
-  VCLTzv16i8 = 2295,
-  VCLTzv2f32 = 2296,
-  VCLTzv2i32 = 2297,
-  VCLTzv4f16 = 2298,
-  VCLTzv4f32 = 2299,
-  VCLTzv4i16 = 2300,
-  VCLTzv4i32 = 2301,
-  VCLTzv8f16 = 2302,
-  VCLTzv8i16 = 2303,
-  VCLTzv8i8 = 2304,
-  VCLZv16i8 = 2305,
-  VCLZv2i32 = 2306,
-  VCLZv4i16 = 2307,
-  VCLZv4i32 = 2308,
-  VCLZv8i16 = 2309,
-  VCLZv8i8 = 2310,
-  VCMLAv2f32 = 2311,
-  VCMLAv2f32_indexed = 2312,
-  VCMLAv4f16 = 2313,
-  VCMLAv4f16_indexed = 2314,
-  VCMLAv4f32 = 2315,
-  VCMLAv4f32_indexed = 2316,
-  VCMLAv8f16 = 2317,
-  VCMLAv8f16_indexed = 2318,
-  VCMPD = 2319,
-  VCMPED = 2320,
-  VCMPEH = 2321,
-  VCMPES = 2322,
-  VCMPEZD = 2323,
-  VCMPEZH = 2324,
-  VCMPEZS = 2325,
-  VCMPH = 2326,
-  VCMPS = 2327,
-  VCMPZD = 2328,
-  VCMPZH = 2329,
-  VCMPZS = 2330,
-  VCNTd = 2331,
-  VCNTq = 2332,
-  VCVTANSDf = 2333,
-  VCVTANSDh = 2334,
-  VCVTANSQf = 2335,
-  VCVTANSQh = 2336,
-  VCVTANUDf = 2337,
-  VCVTANUDh = 2338,
-  VCVTANUQf = 2339,
-  VCVTANUQh = 2340,
-  VCVTASD = 2341,
-  VCVTASH = 2342,
-  VCVTASS = 2343,
-  VCVTAUD = 2344,
-  VCVTAUH = 2345,
-  VCVTAUS = 2346,
-  VCVTBDH = 2347,
-  VCVTBHD = 2348,
-  VCVTBHS = 2349,
-  VCVTBSH = 2350,
-  VCVTDS = 2351,
-  VCVTMNSDf = 2352,
-  VCVTMNSDh = 2353,
-  VCVTMNSQf = 2354,
-  VCVTMNSQh = 2355,
-  VCVTMNUDf = 2356,
-  VCVTMNUDh = 2357,
-  VCVTMNUQf = 2358,
-  VCVTMNUQh = 2359,
-  VCVTMSD = 2360,
-  VCVTMSH = 2361,
-  VCVTMSS = 2362,
-  VCVTMUD = 2363,
-  VCVTMUH = 2364,
-  VCVTMUS = 2365,
-  VCVTNNSDf = 2366,
-  VCVTNNSDh = 2367,
-  VCVTNNSQf = 2368,
-  VCVTNNSQh = 2369,
-  VCVTNNUDf = 2370,
-  VCVTNNUDh = 2371,
-  VCVTNNUQf = 2372,
-  VCVTNNUQh = 2373,
-  VCVTNSD = 2374,
-  VCVTNSH = 2375,
-  VCVTNSS = 2376,
-  VCVTNUD = 2377,
-  VCVTNUH = 2378,
-  VCVTNUS = 2379,
-  VCVTPNSDf = 2380,
-  VCVTPNSDh = 2381,
-  VCVTPNSQf = 2382,
-  VCVTPNSQh = 2383,
-  VCVTPNUDf = 2384,
-  VCVTPNUDh = 2385,
-  VCVTPNUQf = 2386,
-  VCVTPNUQh = 2387,
-  VCVTPSD = 2388,
-  VCVTPSH = 2389,
-  VCVTPSS = 2390,
-  VCVTPUD = 2391,
-  VCVTPUH = 2392,
-  VCVTPUS = 2393,
-  VCVTSD = 2394,
-  VCVTTDH = 2395,
-  VCVTTHD = 2396,
-  VCVTTHS = 2397,
-  VCVTTSH = 2398,
-  VCVTf2h = 2399,
-  VCVTf2sd = 2400,
-  VCVTf2sq = 2401,
-  VCVTf2ud = 2402,
-  VCVTf2uq = 2403,
-  VCVTf2xsd = 2404,
-  VCVTf2xsq = 2405,
-  VCVTf2xud = 2406,
-  VCVTf2xuq = 2407,
-  VCVTh2f = 2408,
-  VCVTh2sd = 2409,
-  VCVTh2sq = 2410,
-  VCVTh2ud = 2411,
-  VCVTh2uq = 2412,
-  VCVTh2xsd = 2413,
-  VCVTh2xsq = 2414,
-  VCVTh2xud = 2415,
-  VCVTh2xuq = 2416,
-  VCVTs2fd = 2417,
-  VCVTs2fq = 2418,
-  VCVTs2hd = 2419,
-  VCVTs2hq = 2420,
-  VCVTu2fd = 2421,
-  VCVTu2fq = 2422,
-  VCVTu2hd = 2423,
-  VCVTu2hq = 2424,
-  VCVTxs2fd = 2425,
-  VCVTxs2fq = 2426,
-  VCVTxs2hd = 2427,
-  VCVTxs2hq = 2428,
-  VCVTxu2fd = 2429,
-  VCVTxu2fq = 2430,
-  VCVTxu2hd = 2431,
-  VCVTxu2hq = 2432,
-  VDIVD = 2433,
-  VDIVH = 2434,
-  VDIVS = 2435,
-  VDUP16d = 2436,
-  VDUP16q = 2437,
-  VDUP32d = 2438,
-  VDUP32q = 2439,
-  VDUP8d = 2440,
-  VDUP8q = 2441,
-  VDUPLN16d = 2442,
-  VDUPLN16q = 2443,
-  VDUPLN32d = 2444,
-  VDUPLN32q = 2445,
-  VDUPLN8d = 2446,
-  VDUPLN8q = 2447,
-  VEORd = 2448,
-  VEORq = 2449,
-  VEXTd16 = 2450,
-  VEXTd32 = 2451,
-  VEXTd8 = 2452,
-  VEXTq16 = 2453,
-  VEXTq32 = 2454,
-  VEXTq64 = 2455,
-  VEXTq8 = 2456,
-  VFMAD = 2457,
-  VFMAH = 2458,
-  VFMALD = 2459,
-  VFMALDI = 2460,
-  VFMALQ = 2461,
-  VFMALQI = 2462,
-  VFMAS = 2463,
-  VFMAfd = 2464,
-  VFMAfq = 2465,
-  VFMAhd = 2466,
-  VFMAhq = 2467,
-  VFMSD = 2468,
-  VFMSH = 2469,
-  VFMSLD = 2470,
-  VFMSLDI = 2471,
-  VFMSLQ = 2472,
-  VFMSLQI = 2473,
-  VFMSS = 2474,
-  VFMSfd = 2475,
-  VFMSfq = 2476,
-  VFMShd = 2477,
-  VFMShq = 2478,
-  VFNMAD = 2479,
-  VFNMAH = 2480,
-  VFNMAS = 2481,
-  VFNMSD = 2482,
-  VFNMSH = 2483,
-  VFNMSS = 2484,
-  VFP_VMAXNMD = 2485,
-  VFP_VMAXNMH = 2486,
-  VFP_VMAXNMS = 2487,
-  VFP_VMINNMD = 2488,
-  VFP_VMINNMH = 2489,
-  VFP_VMINNMS = 2490,
-  VGETLNi32 = 2491,
-  VGETLNs16 = 2492,
-  VGETLNs8 = 2493,
-  VGETLNu16 = 2494,
-  VGETLNu8 = 2495,
-  VHADDsv16i8 = 2496,
-  VHADDsv2i32 = 2497,
-  VHADDsv4i16 = 2498,
-  VHADDsv4i32 = 2499,
-  VHADDsv8i16 = 2500,
-  VHADDsv8i8 = 2501,
-  VHADDuv16i8 = 2502,
-  VHADDuv2i32 = 2503,
-  VHADDuv4i16 = 2504,
-  VHADDuv4i32 = 2505,
-  VHADDuv8i16 = 2506,
-  VHADDuv8i8 = 2507,
-  VHSUBsv16i8 = 2508,
-  VHSUBsv2i32 = 2509,
-  VHSUBsv4i16 = 2510,
-  VHSUBsv4i32 = 2511,
-  VHSUBsv8i16 = 2512,
-  VHSUBsv8i8 = 2513,
-  VHSUBuv16i8 = 2514,
-  VHSUBuv2i32 = 2515,
-  VHSUBuv4i16 = 2516,
-  VHSUBuv4i32 = 2517,
-  VHSUBuv8i16 = 2518,
-  VHSUBuv8i8 = 2519,
-  VINSH = 2520,
-  VJCVT = 2521,
-  VLD1DUPd16 = 2522,
-  VLD1DUPd16wb_fixed = 2523,
-  VLD1DUPd16wb_register = 2524,
-  VLD1DUPd32 = 2525,
-  VLD1DUPd32wb_fixed = 2526,
-  VLD1DUPd32wb_register = 2527,
-  VLD1DUPd8 = 2528,
-  VLD1DUPd8wb_fixed = 2529,
-  VLD1DUPd8wb_register = 2530,
-  VLD1DUPq16 = 2531,
-  VLD1DUPq16wb_fixed = 2532,
-  VLD1DUPq16wb_register = 2533,
-  VLD1DUPq32 = 2534,
-  VLD1DUPq32wb_fixed = 2535,
-  VLD1DUPq32wb_register = 2536,
-  VLD1DUPq8 = 2537,
-  VLD1DUPq8wb_fixed = 2538,
-  VLD1DUPq8wb_register = 2539,
-  VLD1LNd16 = 2540,
-  VLD1LNd16_UPD = 2541,
-  VLD1LNd32 = 2542,
-  VLD1LNd32_UPD = 2543,
-  VLD1LNd8 = 2544,
-  VLD1LNd8_UPD = 2545,
-  VLD1LNq16Pseudo = 2546,
-  VLD1LNq16Pseudo_UPD = 2547,
-  VLD1LNq32Pseudo = 2548,
-  VLD1LNq32Pseudo_UPD = 2549,
-  VLD1LNq8Pseudo = 2550,
-  VLD1LNq8Pseudo_UPD = 2551,
-  VLD1d16 = 2552,
-  VLD1d16Q = 2553,
-  VLD1d16QPseudo = 2554,
-  VLD1d16QPseudoWB_fixed = 2555,
-  VLD1d16QPseudoWB_register = 2556,
-  VLD1d16Qwb_fixed = 2557,
-  VLD1d16Qwb_register = 2558,
-  VLD1d16T = 2559,
-  VLD1d16TPseudo = 2560,
-  VLD1d16TPseudoWB_fixed = 2561,
-  VLD1d16TPseudoWB_register = 2562,
-  VLD1d16Twb_fixed = 2563,
-  VLD1d16Twb_register = 2564,
-  VLD1d16wb_fixed = 2565,
-  VLD1d16wb_register = 2566,
-  VLD1d32 = 2567,
-  VLD1d32Q = 2568,
-  VLD1d32QPseudo = 2569,
-  VLD1d32QPseudoWB_fixed = 2570,
-  VLD1d32QPseudoWB_register = 2571,
-  VLD1d32Qwb_fixed = 2572,
-  VLD1d32Qwb_register = 2573,
-  VLD1d32T = 2574,
-  VLD1d32TPseudo = 2575,
-  VLD1d32TPseudoWB_fixed = 2576,
-  VLD1d32TPseudoWB_register = 2577,
-  VLD1d32Twb_fixed = 2578,
-  VLD1d32Twb_register = 2579,
-  VLD1d32wb_fixed = 2580,
-  VLD1d32wb_register = 2581,
-  VLD1d64 = 2582,
-  VLD1d64Q = 2583,
-  VLD1d64QPseudo = 2584,
-  VLD1d64QPseudoWB_fixed = 2585,
-  VLD1d64QPseudoWB_register = 2586,
-  VLD1d64Qwb_fixed = 2587,
-  VLD1d64Qwb_register = 2588,
-  VLD1d64T = 2589,
-  VLD1d64TPseudo = 2590,
-  VLD1d64TPseudoWB_fixed = 2591,
-  VLD1d64TPseudoWB_register = 2592,
-  VLD1d64Twb_fixed = 2593,
-  VLD1d64Twb_register = 2594,
-  VLD1d64wb_fixed = 2595,
-  VLD1d64wb_register = 2596,
-  VLD1d8 = 2597,
-  VLD1d8Q = 2598,
-  VLD1d8QPseudo = 2599,
-  VLD1d8QPseudoWB_fixed = 2600,
-  VLD1d8QPseudoWB_register = 2601,
-  VLD1d8Qwb_fixed = 2602,
-  VLD1d8Qwb_register = 2603,
-  VLD1d8T = 2604,
-  VLD1d8TPseudo = 2605,
-  VLD1d8TPseudoWB_fixed = 2606,
-  VLD1d8TPseudoWB_register = 2607,
-  VLD1d8Twb_fixed = 2608,
-  VLD1d8Twb_register = 2609,
-  VLD1d8wb_fixed = 2610,
-  VLD1d8wb_register = 2611,
-  VLD1q16 = 2612,
-  VLD1q16HighQPseudo = 2613,
-  VLD1q16HighQPseudo_UPD = 2614,
-  VLD1q16HighTPseudo = 2615,
-  VLD1q16HighTPseudo_UPD = 2616,
-  VLD1q16LowQPseudo_UPD = 2617,
-  VLD1q16LowTPseudo_UPD = 2618,
-  VLD1q16wb_fixed = 2619,
-  VLD1q16wb_register = 2620,
-  VLD1q32 = 2621,
-  VLD1q32HighQPseudo = 2622,
-  VLD1q32HighQPseudo_UPD = 2623,
-  VLD1q32HighTPseudo = 2624,
-  VLD1q32HighTPseudo_UPD = 2625,
-  VLD1q32LowQPseudo_UPD = 2626,
-  VLD1q32LowTPseudo_UPD = 2627,
-  VLD1q32wb_fixed = 2628,
-  VLD1q32wb_register = 2629,
-  VLD1q64 = 2630,
-  VLD1q64HighQPseudo = 2631,
-  VLD1q64HighQPseudo_UPD = 2632,
-  VLD1q64HighTPseudo = 2633,
-  VLD1q64HighTPseudo_UPD = 2634,
-  VLD1q64LowQPseudo_UPD = 2635,
-  VLD1q64LowTPseudo_UPD = 2636,
-  VLD1q64wb_fixed = 2637,
-  VLD1q64wb_register = 2638,
-  VLD1q8 = 2639,
-  VLD1q8HighQPseudo = 2640,
-  VLD1q8HighQPseudo_UPD = 2641,
-  VLD1q8HighTPseudo = 2642,
-  VLD1q8HighTPseudo_UPD = 2643,
-  VLD1q8LowQPseudo_UPD = 2644,
-  VLD1q8LowTPseudo_UPD = 2645,
-  VLD1q8wb_fixed = 2646,
-  VLD1q8wb_register = 2647,
-  VLD2DUPd16 = 2648,
-  VLD2DUPd16wb_fixed = 2649,
-  VLD2DUPd16wb_register = 2650,
-  VLD2DUPd16x2 = 2651,
-  VLD2DUPd16x2wb_fixed = 2652,
-  VLD2DUPd16x2wb_register = 2653,
-  VLD2DUPd32 = 2654,
-  VLD2DUPd32wb_fixed = 2655,
-  VLD2DUPd32wb_register = 2656,
-  VLD2DUPd32x2 = 2657,
-  VLD2DUPd32x2wb_fixed = 2658,
-  VLD2DUPd32x2wb_register = 2659,
-  VLD2DUPd8 = 2660,
-  VLD2DUPd8wb_fixed = 2661,
-  VLD2DUPd8wb_register = 2662,
-  VLD2DUPd8x2 = 2663,
-  VLD2DUPd8x2wb_fixed = 2664,
-  VLD2DUPd8x2wb_register = 2665,
-  VLD2DUPq16EvenPseudo = 2666,
-  VLD2DUPq16OddPseudo = 2667,
-  VLD2DUPq16OddPseudoWB_fixed = 2668,
-  VLD2DUPq16OddPseudoWB_register = 2669,
-  VLD2DUPq32EvenPseudo = 2670,
-  VLD2DUPq32OddPseudo = 2671,
-  VLD2DUPq32OddPseudoWB_fixed = 2672,
-  VLD2DUPq32OddPseudoWB_register = 2673,
-  VLD2DUPq8EvenPseudo = 2674,
-  VLD2DUPq8OddPseudo = 2675,
-  VLD2DUPq8OddPseudoWB_fixed = 2676,
-  VLD2DUPq8OddPseudoWB_register = 2677,
-  VLD2LNd16 = 2678,
-  VLD2LNd16Pseudo = 2679,
-  VLD2LNd16Pseudo_UPD = 2680,
-  VLD2LNd16_UPD = 2681,
-  VLD2LNd32 = 2682,
-  VLD2LNd32Pseudo = 2683,
-  VLD2LNd32Pseudo_UPD = 2684,
-  VLD2LNd32_UPD = 2685,
-  VLD2LNd8 = 2686,
-  VLD2LNd8Pseudo = 2687,
-  VLD2LNd8Pseudo_UPD = 2688,
-  VLD2LNd8_UPD = 2689,
-  VLD2LNq16 = 2690,
-  VLD2LNq16Pseudo = 2691,
-  VLD2LNq16Pseudo_UPD = 2692,
-  VLD2LNq16_UPD = 2693,
-  VLD2LNq32 = 2694,
-  VLD2LNq32Pseudo = 2695,
-  VLD2LNq32Pseudo_UPD = 2696,
-  VLD2LNq32_UPD = 2697,
-  VLD2b16 = 2698,
-  VLD2b16wb_fixed = 2699,
-  VLD2b16wb_register = 2700,
-  VLD2b32 = 2701,
-  VLD2b32wb_fixed = 2702,
-  VLD2b32wb_register = 2703,
-  VLD2b8 = 2704,
-  VLD2b8wb_fixed = 2705,
-  VLD2b8wb_register = 2706,
-  VLD2d16 = 2707,
-  VLD2d16wb_fixed = 2708,
-  VLD2d16wb_register = 2709,
-  VLD2d32 = 2710,
-  VLD2d32wb_fixed = 2711,
-  VLD2d32wb_register = 2712,
-  VLD2d8 = 2713,
-  VLD2d8wb_fixed = 2714,
-  VLD2d8wb_register = 2715,
-  VLD2q16 = 2716,
-  VLD2q16Pseudo = 2717,
-  VLD2q16PseudoWB_fixed = 2718,
-  VLD2q16PseudoWB_register = 2719,
-  VLD2q16wb_fixed = 2720,
-  VLD2q16wb_register = 2721,
-  VLD2q32 = 2722,
-  VLD2q32Pseudo = 2723,
-  VLD2q32PseudoWB_fixed = 2724,
-  VLD2q32PseudoWB_register = 2725,
-  VLD2q32wb_fixed = 2726,
-  VLD2q32wb_register = 2727,
-  VLD2q8 = 2728,
-  VLD2q8Pseudo = 2729,
-  VLD2q8PseudoWB_fixed = 2730,
-  VLD2q8PseudoWB_register = 2731,
-  VLD2q8wb_fixed = 2732,
-  VLD2q8wb_register = 2733,
-  VLD3DUPd16 = 2734,
-  VLD3DUPd16Pseudo = 2735,
-  VLD3DUPd16Pseudo_UPD = 2736,
-  VLD3DUPd16_UPD = 2737,
-  VLD3DUPd32 = 2738,
-  VLD3DUPd32Pseudo = 2739,
-  VLD3DUPd32Pseudo_UPD = 2740,
-  VLD3DUPd32_UPD = 2741,
-  VLD3DUPd8 = 2742,
-  VLD3DUPd8Pseudo = 2743,
-  VLD3DUPd8Pseudo_UPD = 2744,
-  VLD3DUPd8_UPD = 2745,
-  VLD3DUPq16 = 2746,
-  VLD3DUPq16EvenPseudo = 2747,
-  VLD3DUPq16OddPseudo = 2748,
-  VLD3DUPq16OddPseudo_UPD = 2749,
-  VLD3DUPq16_UPD = 2750,
-  VLD3DUPq32 = 2751,
-  VLD3DUPq32EvenPseudo = 2752,
-  VLD3DUPq32OddPseudo = 2753,
-  VLD3DUPq32OddPseudo_UPD = 2754,
-  VLD3DUPq32_UPD = 2755,
-  VLD3DUPq8 = 2756,
-  VLD3DUPq8EvenPseudo = 2757,
-  VLD3DUPq8OddPseudo = 2758,
-  VLD3DUPq8OddPseudo_UPD = 2759,
-  VLD3DUPq8_UPD = 2760,
-  VLD3LNd16 = 2761,
-  VLD3LNd16Pseudo = 2762,
-  VLD3LNd16Pseudo_UPD = 2763,
-  VLD3LNd16_UPD = 2764,
-  VLD3LNd32 = 2765,
-  VLD3LNd32Pseudo = 2766,
-  VLD3LNd32Pseudo_UPD = 2767,
-  VLD3LNd32_UPD = 2768,
-  VLD3LNd8 = 2769,
-  VLD3LNd8Pseudo = 2770,
-  VLD3LNd8Pseudo_UPD = 2771,
-  VLD3LNd8_UPD = 2772,
-  VLD3LNq16 = 2773,
-  VLD3LNq16Pseudo = 2774,
-  VLD3LNq16Pseudo_UPD = 2775,
-  VLD3LNq16_UPD = 2776,
-  VLD3LNq32 = 2777,
-  VLD3LNq32Pseudo = 2778,
-  VLD3LNq32Pseudo_UPD = 2779,
-  VLD3LNq32_UPD = 2780,
-  VLD3d16 = 2781,
-  VLD3d16Pseudo = 2782,
-  VLD3d16Pseudo_UPD = 2783,
-  VLD3d16_UPD = 2784,
-  VLD3d32 = 2785,
-  VLD3d32Pseudo = 2786,
-  VLD3d32Pseudo_UPD = 2787,
-  VLD3d32_UPD = 2788,
-  VLD3d8 = 2789,
-  VLD3d8Pseudo = 2790,
-  VLD3d8Pseudo_UPD = 2791,
-  VLD3d8_UPD = 2792,
-  VLD3q16 = 2793,
-  VLD3q16Pseudo_UPD = 2794,
-  VLD3q16_UPD = 2795,
-  VLD3q16oddPseudo = 2796,
-  VLD3q16oddPseudo_UPD = 2797,
-  VLD3q32 = 2798,
-  VLD3q32Pseudo_UPD = 2799,
-  VLD3q32_UPD = 2800,
-  VLD3q32oddPseudo = 2801,
-  VLD3q32oddPseudo_UPD = 2802,
-  VLD3q8 = 2803,
-  VLD3q8Pseudo_UPD = 2804,
-  VLD3q8_UPD = 2805,
-  VLD3q8oddPseudo = 2806,
-  VLD3q8oddPseudo_UPD = 2807,
-  VLD4DUPd16 = 2808,
-  VLD4DUPd16Pseudo = 2809,
-  VLD4DUPd16Pseudo_UPD = 2810,
-  VLD4DUPd16_UPD = 2811,
-  VLD4DUPd32 = 2812,
-  VLD4DUPd32Pseudo = 2813,
-  VLD4DUPd32Pseudo_UPD = 2814,
-  VLD4DUPd32_UPD = 2815,
-  VLD4DUPd8 = 2816,
-  VLD4DUPd8Pseudo = 2817,
-  VLD4DUPd8Pseudo_UPD = 2818,
-  VLD4DUPd8_UPD = 2819,
-  VLD4DUPq16 = 2820,
-  VLD4DUPq16EvenPseudo = 2821,
-  VLD4DUPq16OddPseudo = 2822,
-  VLD4DUPq16OddPseudo_UPD = 2823,
-  VLD4DUPq16_UPD = 2824,
-  VLD4DUPq32 = 2825,
-  VLD4DUPq32EvenPseudo = 2826,
-  VLD4DUPq32OddPseudo = 2827,
-  VLD4DUPq32OddPseudo_UPD = 2828,
-  VLD4DUPq32_UPD = 2829,
-  VLD4DUPq8 = 2830,
-  VLD4DUPq8EvenPseudo = 2831,
-  VLD4DUPq8OddPseudo = 2832,
-  VLD4DUPq8OddPseudo_UPD = 2833,
-  VLD4DUPq8_UPD = 2834,
-  VLD4LNd16 = 2835,
-  VLD4LNd16Pseudo = 2836,
-  VLD4LNd16Pseudo_UPD = 2837,
-  VLD4LNd16_UPD = 2838,
-  VLD4LNd32 = 2839,
-  VLD4LNd32Pseudo = 2840,
-  VLD4LNd32Pseudo_UPD = 2841,
-  VLD4LNd32_UPD = 2842,
-  VLD4LNd8 = 2843,
-  VLD4LNd8Pseudo = 2844,
-  VLD4LNd8Pseudo_UPD = 2845,
-  VLD4LNd8_UPD = 2846,
-  VLD4LNq16 = 2847,
-  VLD4LNq16Pseudo = 2848,
-  VLD4LNq16Pseudo_UPD = 2849,
-  VLD4LNq16_UPD = 2850,
-  VLD4LNq32 = 2851,
-  VLD4LNq32Pseudo = 2852,
-  VLD4LNq32Pseudo_UPD = 2853,
-  VLD4LNq32_UPD = 2854,
-  VLD4d16 = 2855,
-  VLD4d16Pseudo = 2856,
-  VLD4d16Pseudo_UPD = 2857,
-  VLD4d16_UPD = 2858,
-  VLD4d32 = 2859,
-  VLD4d32Pseudo = 2860,
-  VLD4d32Pseudo_UPD = 2861,
-  VLD4d32_UPD = 2862,
-  VLD4d8 = 2863,
-  VLD4d8Pseudo = 2864,
-  VLD4d8Pseudo_UPD = 2865,
-  VLD4d8_UPD = 2866,
-  VLD4q16 = 2867,
-  VLD4q16Pseudo_UPD = 2868,
-  VLD4q16_UPD = 2869,
-  VLD4q16oddPseudo = 2870,
-  VLD4q16oddPseudo_UPD = 2871,
-  VLD4q32 = 2872,
-  VLD4q32Pseudo_UPD = 2873,
-  VLD4q32_UPD = 2874,
-  VLD4q32oddPseudo = 2875,
-  VLD4q32oddPseudo_UPD = 2876,
-  VLD4q8 = 2877,
-  VLD4q8Pseudo_UPD = 2878,
-  VLD4q8_UPD = 2879,
-  VLD4q8oddPseudo = 2880,
-  VLD4q8oddPseudo_UPD = 2881,
-  VLDMDDB_UPD = 2882,
-  VLDMDIA = 2883,
-  VLDMDIA_UPD = 2884,
-  VLDMQIA = 2885,
-  VLDMSDB_UPD = 2886,
-  VLDMSIA = 2887,
-  VLDMSIA_UPD = 2888,
-  VLDRD = 2889,
-  VLDRH = 2890,
-  VLDRS = 2891,
-  VLDR_FPCXTNS_off = 2892,
-  VLDR_FPCXTNS_post = 2893,
-  VLDR_FPCXTNS_pre = 2894,
-  VLDR_FPCXTS_off = 2895,
-  VLDR_FPCXTS_post = 2896,
-  VLDR_FPCXTS_pre = 2897,
-  VLDR_FPSCR_NZCVQC_off = 2898,
-  VLDR_FPSCR_NZCVQC_post = 2899,
-  VLDR_FPSCR_NZCVQC_pre = 2900,
-  VLDR_FPSCR_off = 2901,
-  VLDR_FPSCR_post = 2902,
-  VLDR_FPSCR_pre = 2903,
-  VLDR_P0_off = 2904,
-  VLDR_P0_post = 2905,
-  VLDR_P0_pre = 2906,
-  VLDR_VPR_off = 2907,
-  VLDR_VPR_post = 2908,
-  VLDR_VPR_pre = 2909,
-  VLLDM = 2910,
-  VLLDM_T2 = 2911,
-  VLSTM = 2912,
-  VLSTM_T2 = 2913,
-  VMAXfd = 2914,
-  VMAXfq = 2915,
-  VMAXhd = 2916,
-  VMAXhq = 2917,
-  VMAXsv16i8 = 2918,
-  VMAXsv2i32 = 2919,
-  VMAXsv4i16 = 2920,
-  VMAXsv4i32 = 2921,
-  VMAXsv8i16 = 2922,
-  VMAXsv8i8 = 2923,
-  VMAXuv16i8 = 2924,
-  VMAXuv2i32 = 2925,
-  VMAXuv4i16 = 2926,
-  VMAXuv4i32 = 2927,
-  VMAXuv8i16 = 2928,
-  VMAXuv8i8 = 2929,
-  VMINfd = 2930,
-  VMINfq = 2931,
-  VMINhd = 2932,
-  VMINhq = 2933,
-  VMINsv16i8 = 2934,
-  VMINsv2i32 = 2935,
-  VMINsv4i16 = 2936,
-  VMINsv4i32 = 2937,
-  VMINsv8i16 = 2938,
-  VMINsv8i8 = 2939,
-  VMINuv16i8 = 2940,
-  VMINuv2i32 = 2941,
-  VMINuv4i16 = 2942,
-  VMINuv4i32 = 2943,
-  VMINuv8i16 = 2944,
-  VMINuv8i8 = 2945,
-  VMLAD = 2946,
-  VMLAH = 2947,
-  VMLALslsv2i32 = 2948,
-  VMLALslsv4i16 = 2949,
-  VMLALsluv2i32 = 2950,
-  VMLALsluv4i16 = 2951,
-  VMLALsv2i64 = 2952,
-  VMLALsv4i32 = 2953,
-  VMLALsv8i16 = 2954,
-  VMLALuv2i64 = 2955,
-  VMLALuv4i32 = 2956,
-  VMLALuv8i16 = 2957,
-  VMLAS = 2958,
-  VMLAfd = 2959,
-  VMLAfq = 2960,
-  VMLAhd = 2961,
-  VMLAhq = 2962,
-  VMLAslfd = 2963,
-  VMLAslfq = 2964,
-  VMLAslhd = 2965,
-  VMLAslhq = 2966,
-  VMLAslv2i32 = 2967,
-  VMLAslv4i16 = 2968,
-  VMLAslv4i32 = 2969,
-  VMLAslv8i16 = 2970,
-  VMLAv16i8 = 2971,
-  VMLAv2i32 = 2972,
-  VMLAv4i16 = 2973,
-  VMLAv4i32 = 2974,
-  VMLAv8i16 = 2975,
-  VMLAv8i8 = 2976,
-  VMLSD = 2977,
-  VMLSH = 2978,
-  VMLSLslsv2i32 = 2979,
-  VMLSLslsv4i16 = 2980,
-  VMLSLsluv2i32 = 2981,
-  VMLSLsluv4i16 = 2982,
-  VMLSLsv2i64 = 2983,
-  VMLSLsv4i32 = 2984,
-  VMLSLsv8i16 = 2985,
-  VMLSLuv2i64 = 2986,
-  VMLSLuv4i32 = 2987,
-  VMLSLuv8i16 = 2988,
-  VMLSS = 2989,
-  VMLSfd = 2990,
-  VMLSfq = 2991,
-  VMLShd = 2992,
-  VMLShq = 2993,
-  VMLSslfd = 2994,
-  VMLSslfq = 2995,
-  VMLSslhd = 2996,
-  VMLSslhq = 2997,
-  VMLSslv2i32 = 2998,
-  VMLSslv4i16 = 2999,
-  VMLSslv4i32 = 3000,
-  VMLSslv8i16 = 3001,
-  VMLSv16i8 = 3002,
-  VMLSv2i32 = 3003,
-  VMLSv4i16 = 3004,
-  VMLSv4i32 = 3005,
-  VMLSv8i16 = 3006,
-  VMLSv8i8 = 3007,
-  VMMLA = 3008,
-  VMOVD = 3009,
-  VMOVDRR = 3010,
-  VMOVH = 3011,
-  VMOVHR = 3012,
-  VMOVLsv2i64 = 3013,
-  VMOVLsv4i32 = 3014,
-  VMOVLsv8i16 = 3015,
-  VMOVLuv2i64 = 3016,
-  VMOVLuv4i32 = 3017,
-  VMOVLuv8i16 = 3018,
-  VMOVNv2i32 = 3019,
-  VMOVNv4i16 = 3020,
-  VMOVNv8i8 = 3021,
-  VMOVRH = 3022,
-  VMOVRRD = 3023,
-  VMOVRRS = 3024,
-  VMOVRS = 3025,
-  VMOVS = 3026,
-  VMOVSR = 3027,
-  VMOVSRR = 3028,
-  VMOVv16i8 = 3029,
-  VMOVv1i64 = 3030,
-  VMOVv2f32 = 3031,
-  VMOVv2i32 = 3032,
-  VMOVv2i64 = 3033,
-  VMOVv4f32 = 3034,
-  VMOVv4i16 = 3035,
-  VMOVv4i32 = 3036,
-  VMOVv8i16 = 3037,
-  VMOVv8i8 = 3038,
-  VMRS = 3039,
-  VMRS_FPCXTNS = 3040,
-  VMRS_FPCXTS = 3041,
-  VMRS_FPEXC = 3042,
-  VMRS_FPINST = 3043,
-  VMRS_FPINST2 = 3044,
-  VMRS_FPSCR_NZCVQC = 3045,
-  VMRS_FPSID = 3046,
-  VMRS_MVFR0 = 3047,
-  VMRS_MVFR1 = 3048,
-  VMRS_MVFR2 = 3049,
-  VMRS_P0 = 3050,
-  VMRS_VPR = 3051,
-  VMSR = 3052,
-  VMSR_FPCXTNS = 3053,
-  VMSR_FPCXTS = 3054,
-  VMSR_FPEXC = 3055,
-  VMSR_FPINST = 3056,
-  VMSR_FPINST2 = 3057,
-  VMSR_FPSCR_NZCVQC = 3058,
-  VMSR_FPSID = 3059,
-  VMSR_P0 = 3060,
-  VMSR_VPR = 3061,
-  VMULD = 3062,
-  VMULH = 3063,
-  VMULLp64 = 3064,
-  VMULLp8 = 3065,
-  VMULLslsv2i32 = 3066,
-  VMULLslsv4i16 = 3067,
-  VMULLsluv2i32 = 3068,
-  VMULLsluv4i16 = 3069,
-  VMULLsv2i64 = 3070,
-  VMULLsv4i32 = 3071,
-  VMULLsv8i16 = 3072,
-  VMULLuv2i64 = 3073,
-  VMULLuv4i32 = 3074,
-  VMULLuv8i16 = 3075,
-  VMULS = 3076,
-  VMULfd = 3077,
-  VMULfq = 3078,
-  VMULhd = 3079,
-  VMULhq = 3080,
-  VMULpd = 3081,
-  VMULpq = 3082,
-  VMULslfd = 3083,
-  VMULslfq = 3084,
-  VMULslhd = 3085,
-  VMULslhq = 3086,
-  VMULslv2i32 = 3087,
-  VMULslv4i16 = 3088,
-  VMULslv4i32 = 3089,
-  VMULslv8i16 = 3090,
-  VMULv16i8 = 3091,
-  VMULv2i32 = 3092,
-  VMULv4i16 = 3093,
-  VMULv4i32 = 3094,
-  VMULv8i16 = 3095,
-  VMULv8i8 = 3096,
-  VMVNd = 3097,
-  VMVNq = 3098,
-  VMVNv2i32 = 3099,
-  VMVNv4i16 = 3100,
-  VMVNv4i32 = 3101,
-  VMVNv8i16 = 3102,
-  VNEGD = 3103,
-  VNEGH = 3104,
-  VNEGS = 3105,
-  VNEGf32q = 3106,
-  VNEGfd = 3107,
-  VNEGhd = 3108,
-  VNEGhq = 3109,
-  VNEGs16d = 3110,
-  VNEGs16q = 3111,
-  VNEGs32d = 3112,
-  VNEGs32q = 3113,
-  VNEGs8d = 3114,
-  VNEGs8q = 3115,
-  VNMLAD = 3116,
-  VNMLAH = 3117,
-  VNMLAS = 3118,
-  VNMLSD = 3119,
-  VNMLSH = 3120,
-  VNMLSS = 3121,
-  VNMULD = 3122,
-  VNMULH = 3123,
-  VNMULS = 3124,
-  VORNd = 3125,
-  VORNq = 3126,
-  VORRd = 3127,
-  VORRiv2i32 = 3128,
-  VORRiv4i16 = 3129,
-  VORRiv4i32 = 3130,
-  VORRiv8i16 = 3131,
-  VORRq = 3132,
-  VPADALsv16i8 = 3133,
-  VPADALsv2i32 = 3134,
-  VPADALsv4i16 = 3135,
-  VPADALsv4i32 = 3136,
-  VPADALsv8i16 = 3137,
-  VPADALsv8i8 = 3138,
-  VPADALuv16i8 = 3139,
-  VPADALuv2i32 = 3140,
-  VPADALuv4i16 = 3141,
-  VPADALuv4i32 = 3142,
-  VPADALuv8i16 = 3143,
-  VPADALuv8i8 = 3144,
-  VPADDLsv16i8 = 3145,
-  VPADDLsv2i32 = 3146,
-  VPADDLsv4i16 = 3147,
-  VPADDLsv4i32 = 3148,
-  VPADDLsv8i16 = 3149,
-  VPADDLsv8i8 = 3150,
-  VPADDLuv16i8 = 3151,
-  VPADDLuv2i32 = 3152,
-  VPADDLuv4i16 = 3153,
-  VPADDLuv4i32 = 3154,
-  VPADDLuv8i16 = 3155,
-  VPADDLuv8i8 = 3156,
-  VPADDf = 3157,
-  VPADDh = 3158,
-  VPADDi16 = 3159,
-  VPADDi32 = 3160,
-  VPADDi8 = 3161,
-  VPMAXf = 3162,
-  VPMAXh = 3163,
-  VPMAXs16 = 3164,
-  VPMAXs32 = 3165,
-  VPMAXs8 = 3166,
-  VPMAXu16 = 3167,
-  VPMAXu32 = 3168,
-  VPMAXu8 = 3169,
-  VPMINf = 3170,
-  VPMINh = 3171,
-  VPMINs16 = 3172,
-  VPMINs32 = 3173,
-  VPMINs8 = 3174,
-  VPMINu16 = 3175,
-  VPMINu32 = 3176,
-  VPMINu8 = 3177,
-  VQABSv16i8 = 3178,
-  VQABSv2i32 = 3179,
-  VQABSv4i16 = 3180,
-  VQABSv4i32 = 3181,
-  VQABSv8i16 = 3182,
-  VQABSv8i8 = 3183,
-  VQADDsv16i8 = 3184,
-  VQADDsv1i64 = 3185,
-  VQADDsv2i32 = 3186,
-  VQADDsv2i64 = 3187,
-  VQADDsv4i16 = 3188,
-  VQADDsv4i32 = 3189,
-  VQADDsv8i16 = 3190,
-  VQADDsv8i8 = 3191,
-  VQADDuv16i8 = 3192,
-  VQADDuv1i64 = 3193,
-  VQADDuv2i32 = 3194,
-  VQADDuv2i64 = 3195,
-  VQADDuv4i16 = 3196,
-  VQADDuv4i32 = 3197,
-  VQADDuv8i16 = 3198,
-  VQADDuv8i8 = 3199,
-  VQDMLALslv2i32 = 3200,
-  VQDMLALslv4i16 = 3201,
-  VQDMLALv2i64 = 3202,
-  VQDMLALv4i32 = 3203,
-  VQDMLSLslv2i32 = 3204,
-  VQDMLSLslv4i16 = 3205,
-  VQDMLSLv2i64 = 3206,
-  VQDMLSLv4i32 = 3207,
-  VQDMULHslv2i32 = 3208,
-  VQDMULHslv4i16 = 3209,
-  VQDMULHslv4i32 = 3210,
-  VQDMULHslv8i16 = 3211,
-  VQDMULHv2i32 = 3212,
-  VQDMULHv4i16 = 3213,
-  VQDMULHv4i32 = 3214,
-  VQDMULHv8i16 = 3215,
-  VQDMULLslv2i32 = 3216,
-  VQDMULLslv4i16 = 3217,
-  VQDMULLv2i64 = 3218,
-  VQDMULLv4i32 = 3219,
-  VQMOVNsuv2i32 = 3220,
-  VQMOVNsuv4i16 = 3221,
-  VQMOVNsuv8i8 = 3222,
-  VQMOVNsv2i32 = 3223,
-  VQMOVNsv4i16 = 3224,
-  VQMOVNsv8i8 = 3225,
-  VQMOVNuv2i32 = 3226,
-  VQMOVNuv4i16 = 3227,
-  VQMOVNuv8i8 = 3228,
-  VQNEGv16i8 = 3229,
-  VQNEGv2i32 = 3230,
-  VQNEGv4i16 = 3231,
-  VQNEGv4i32 = 3232,
-  VQNEGv8i16 = 3233,
-  VQNEGv8i8 = 3234,
-  VQRDMLAHslv2i32 = 3235,
-  VQRDMLAHslv4i16 = 3236,
-  VQRDMLAHslv4i32 = 3237,
-  VQRDMLAHslv8i16 = 3238,
-  VQRDMLAHv2i32 = 3239,
-  VQRDMLAHv4i16 = 3240,
-  VQRDMLAHv4i32 = 3241,
-  VQRDMLAHv8i16 = 3242,
-  VQRDMLSHslv2i32 = 3243,
-  VQRDMLSHslv4i16 = 3244,
-  VQRDMLSHslv4i32 = 3245,
-  VQRDMLSHslv8i16 = 3246,
-  VQRDMLSHv2i32 = 3247,
-  VQRDMLSHv4i16 = 3248,
-  VQRDMLSHv4i32 = 3249,
-  VQRDMLSHv8i16 = 3250,
-  VQRDMULHslv2i32 = 3251,
-  VQRDMULHslv4i16 = 3252,
-  VQRDMULHslv4i32 = 3253,
-  VQRDMULHslv8i16 = 3254,
-  VQRDMULHv2i32 = 3255,
-  VQRDMULHv4i16 = 3256,
-  VQRDMULHv4i32 = 3257,
-  VQRDMULHv8i16 = 3258,
-  VQRSHLsv16i8 = 3259,
-  VQRSHLsv1i64 = 3260,
-  VQRSHLsv2i32 = 3261,
-  VQRSHLsv2i64 = 3262,
-  VQRSHLsv4i16 = 3263,
-  VQRSHLsv4i32 = 3264,
-  VQRSHLsv8i16 = 3265,
-  VQRSHLsv8i8 = 3266,
-  VQRSHLuv16i8 = 3267,
-  VQRSHLuv1i64 = 3268,
-  VQRSHLuv2i32 = 3269,
-  VQRSHLuv2i64 = 3270,
-  VQRSHLuv4i16 = 3271,
-  VQRSHLuv4i32 = 3272,
-  VQRSHLuv8i16 = 3273,
-  VQRSHLuv8i8 = 3274,
-  VQRSHRNsv2i32 = 3275,
-  VQRSHRNsv4i16 = 3276,
-  VQRSHRNsv8i8 = 3277,
-  VQRSHRNuv2i32 = 3278,
-  VQRSHRNuv4i16 = 3279,
-  VQRSHRNuv8i8 = 3280,
-  VQRSHRUNv2i32 = 3281,
-  VQRSHRUNv4i16 = 3282,
-  VQRSHRUNv8i8 = 3283,
-  VQSHLsiv16i8 = 3284,
-  VQSHLsiv1i64 = 3285,
-  VQSHLsiv2i32 = 3286,
-  VQSHLsiv2i64 = 3287,
-  VQSHLsiv4i16 = 3288,
-  VQSHLsiv4i32 = 3289,
-  VQSHLsiv8i16 = 3290,
-  VQSHLsiv8i8 = 3291,
-  VQSHLsuv16i8 = 3292,
-  VQSHLsuv1i64 = 3293,
-  VQSHLsuv2i32 = 3294,
-  VQSHLsuv2i64 = 3295,
-  VQSHLsuv4i16 = 3296,
-  VQSHLsuv4i32 = 3297,
-  VQSHLsuv8i16 = 3298,
-  VQSHLsuv8i8 = 3299,
-  VQSHLsv16i8 = 3300,
-  VQSHLsv1i64 = 3301,
-  VQSHLsv2i32 = 3302,
-  VQSHLsv2i64 = 3303,
-  VQSHLsv4i16 = 3304,
-  VQSHLsv4i32 = 3305,
-  VQSHLsv8i16 = 3306,
-  VQSHLsv8i8 = 3307,
-  VQSHLuiv16i8 = 3308,
-  VQSHLuiv1i64 = 3309,
-  VQSHLuiv2i32 = 3310,
-  VQSHLuiv2i64 = 3311,
-  VQSHLuiv4i16 = 3312,
-  VQSHLuiv4i32 = 3313,
-  VQSHLuiv8i16 = 3314,
-  VQSHLuiv8i8 = 3315,
-  VQSHLuv16i8 = 3316,
-  VQSHLuv1i64 = 3317,
-  VQSHLuv2i32 = 3318,
-  VQSHLuv2i64 = 3319,
-  VQSHLuv4i16 = 3320,
-  VQSHLuv4i32 = 3321,
-  VQSHLuv8i16 = 3322,
-  VQSHLuv8i8 = 3323,
-  VQSHRNsv2i32 = 3324,
-  VQSHRNsv4i16 = 3325,
-  VQSHRNsv8i8 = 3326,
-  VQSHRNuv2i32 = 3327,
-  VQSHRNuv4i16 = 3328,
-  VQSHRNuv8i8 = 3329,
-  VQSHRUNv2i32 = 3330,
-  VQSHRUNv4i16 = 3331,
-  VQSHRUNv8i8 = 3332,
-  VQSUBsv16i8 = 3333,
-  VQSUBsv1i64 = 3334,
-  VQSUBsv2i32 = 3335,
-  VQSUBsv2i64 = 3336,
-  VQSUBsv4i16 = 3337,
-  VQSUBsv4i32 = 3338,
-  VQSUBsv8i16 = 3339,
-  VQSUBsv8i8 = 3340,
-  VQSUBuv16i8 = 3341,
-  VQSUBuv1i64 = 3342,
-  VQSUBuv2i32 = 3343,
-  VQSUBuv2i64 = 3344,
-  VQSUBuv4i16 = 3345,
-  VQSUBuv4i32 = 3346,
-  VQSUBuv8i16 = 3347,
-  VQSUBuv8i8 = 3348,
-  VRADDHNv2i32 = 3349,
-  VRADDHNv4i16 = 3350,
-  VRADDHNv8i8 = 3351,
-  VRECPEd = 3352,
-  VRECPEfd = 3353,
-  VRECPEfq = 3354,
-  VRECPEhd = 3355,
-  VRECPEhq = 3356,
-  VRECPEq = 3357,
-  VRECPSfd = 3358,
-  VRECPSfq = 3359,
-  VRECPShd = 3360,
-  VRECPShq = 3361,
-  VREV16d8 = 3362,
-  VREV16q8 = 3363,
-  VREV32d16 = 3364,
-  VREV32d8 = 3365,
-  VREV32q16 = 3366,
-  VREV32q8 = 3367,
-  VREV64d16 = 3368,
-  VREV64d32 = 3369,
-  VREV64d8 = 3370,
-  VREV64q16 = 3371,
-  VREV64q32 = 3372,
-  VREV64q8 = 3373,
-  VRHADDsv16i8 = 3374,
-  VRHADDsv2i32 = 3375,
-  VRHADDsv4i16 = 3376,
-  VRHADDsv4i32 = 3377,
-  VRHADDsv8i16 = 3378,
-  VRHADDsv8i8 = 3379,
-  VRHADDuv16i8 = 3380,
-  VRHADDuv2i32 = 3381,
-  VRHADDuv4i16 = 3382,
-  VRHADDuv4i32 = 3383,
-  VRHADDuv8i16 = 3384,
-  VRHADDuv8i8 = 3385,
-  VRINTAD = 3386,
-  VRINTAH = 3387,
-  VRINTANDf = 3388,
-  VRINTANDh = 3389,
-  VRINTANQf = 3390,
-  VRINTANQh = 3391,
-  VRINTAS = 3392,
-  VRINTMD = 3393,
-  VRINTMH = 3394,
-  VRINTMNDf = 3395,
-  VRINTMNDh = 3396,
-  VRINTMNQf = 3397,
-  VRINTMNQh = 3398,
-  VRINTMS = 3399,
-  VRINTND = 3400,
-  VRINTNH = 3401,
-  VRINTNNDf = 3402,
-  VRINTNNDh = 3403,
-  VRINTNNQf = 3404,
-  VRINTNNQh = 3405,
-  VRINTNS = 3406,
-  VRINTPD = 3407,
-  VRINTPH = 3408,
-  VRINTPNDf = 3409,
-  VRINTPNDh = 3410,
-  VRINTPNQf = 3411,
-  VRINTPNQh = 3412,
-  VRINTPS = 3413,
-  VRINTRD = 3414,
-  VRINTRH = 3415,
-  VRINTRS = 3416,
-  VRINTXD = 3417,
-  VRINTXH = 3418,
-  VRINTXNDf = 3419,
-  VRINTXNDh = 3420,
-  VRINTXNQf = 3421,
-  VRINTXNQh = 3422,
-  VRINTXS = 3423,
-  VRINTZD = 3424,
-  VRINTZH = 3425,
-  VRINTZNDf = 3426,
-  VRINTZNDh = 3427,
-  VRINTZNQf = 3428,
-  VRINTZNQh = 3429,
-  VRINTZS = 3430,
-  VRSHLsv16i8 = 3431,
-  VRSHLsv1i64 = 3432,
-  VRSHLsv2i32 = 3433,
-  VRSHLsv2i64 = 3434,
-  VRSHLsv4i16 = 3435,
-  VRSHLsv4i32 = 3436,
-  VRSHLsv8i16 = 3437,
-  VRSHLsv8i8 = 3438,
-  VRSHLuv16i8 = 3439,
-  VRSHLuv1i64 = 3440,
-  VRSHLuv2i32 = 3441,
-  VRSHLuv2i64 = 3442,
-  VRSHLuv4i16 = 3443,
-  VRSHLuv4i32 = 3444,
-  VRSHLuv8i16 = 3445,
-  VRSHLuv8i8 = 3446,
-  VRSHRNv2i32 = 3447,
-  VRSHRNv4i16 = 3448,
-  VRSHRNv8i8 = 3449,
-  VRSHRsv16i8 = 3450,
-  VRSHRsv1i64 = 3451,
-  VRSHRsv2i32 = 3452,
-  VRSHRsv2i64 = 3453,
-  VRSHRsv4i16 = 3454,
-  VRSHRsv4i32 = 3455,
-  VRSHRsv8i16 = 3456,
-  VRSHRsv8i8 = 3457,
-  VRSHRuv16i8 = 3458,
-  VRSHRuv1i64 = 3459,
-  VRSHRuv2i32 = 3460,
-  VRSHRuv2i64 = 3461,
-  VRSHRuv4i16 = 3462,
-  VRSHRuv4i32 = 3463,
-  VRSHRuv8i16 = 3464,
-  VRSHRuv8i8 = 3465,
-  VRSQRTEd = 3466,
-  VRSQRTEfd = 3467,
-  VRSQRTEfq = 3468,
-  VRSQRTEhd = 3469,
-  VRSQRTEhq = 3470,
-  VRSQRTEq = 3471,
-  VRSQRTSfd = 3472,
-  VRSQRTSfq = 3473,
-  VRSQRTShd = 3474,
-  VRSQRTShq = 3475,
-  VRSRAsv16i8 = 3476,
-  VRSRAsv1i64 = 3477,
-  VRSRAsv2i32 = 3478,
-  VRSRAsv2i64 = 3479,
-  VRSRAsv4i16 = 3480,
-  VRSRAsv4i32 = 3481,
-  VRSRAsv8i16 = 3482,
-  VRSRAsv8i8 = 3483,
-  VRSRAuv16i8 = 3484,
-  VRSRAuv1i64 = 3485,
-  VRSRAuv2i32 = 3486,
-  VRSRAuv2i64 = 3487,
-  VRSRAuv4i16 = 3488,
-  VRSRAuv4i32 = 3489,
-  VRSRAuv8i16 = 3490,
-  VRSRAuv8i8 = 3491,
-  VRSUBHNv2i32 = 3492,
-  VRSUBHNv4i16 = 3493,
-  VRSUBHNv8i8 = 3494,
-  VSCCLRMD = 3495,
-  VSCCLRMS = 3496,
-  VSDOTD = 3497,
-  VSDOTDI = 3498,
-  VSDOTQ = 3499,
-  VSDOTQI = 3500,
-  VSELEQD = 3501,
-  VSELEQH = 3502,
-  VSELEQS = 3503,
-  VSELGED = 3504,
-  VSELGEH = 3505,
-  VSELGES = 3506,
-  VSELGTD = 3507,
-  VSELGTH = 3508,
-  VSELGTS = 3509,
-  VSELVSD = 3510,
-  VSELVSH = 3511,
-  VSELVSS = 3512,
-  VSETLNi16 = 3513,
-  VSETLNi32 = 3514,
-  VSETLNi8 = 3515,
-  VSHLLi16 = 3516,
-  VSHLLi32 = 3517,
-  VSHLLi8 = 3518,
-  VSHLLsv2i64 = 3519,
-  VSHLLsv4i32 = 3520,
-  VSHLLsv8i16 = 3521,
-  VSHLLuv2i64 = 3522,
-  VSHLLuv4i32 = 3523,
-  VSHLLuv8i16 = 3524,
-  VSHLiv16i8 = 3525,
-  VSHLiv1i64 = 3526,
-  VSHLiv2i32 = 3527,
-  VSHLiv2i64 = 3528,
-  VSHLiv4i16 = 3529,
-  VSHLiv4i32 = 3530,
-  VSHLiv8i16 = 3531,
-  VSHLiv8i8 = 3532,
-  VSHLsv16i8 = 3533,
-  VSHLsv1i64 = 3534,
-  VSHLsv2i32 = 3535,
-  VSHLsv2i64 = 3536,
-  VSHLsv4i16 = 3537,
-  VSHLsv4i32 = 3538,
-  VSHLsv8i16 = 3539,
-  VSHLsv8i8 = 3540,
-  VSHLuv16i8 = 3541,
-  VSHLuv1i64 = 3542,
-  VSHLuv2i32 = 3543,
-  VSHLuv2i64 = 3544,
-  VSHLuv4i16 = 3545,
-  VSHLuv4i32 = 3546,
-  VSHLuv8i16 = 3547,
-  VSHLuv8i8 = 3548,
-  VSHRNv2i32 = 3549,
-  VSHRNv4i16 = 3550,
-  VSHRNv8i8 = 3551,
-  VSHRsv16i8 = 3552,
-  VSHRsv1i64 = 3553,
-  VSHRsv2i32 = 3554,
-  VSHRsv2i64 = 3555,
-  VSHRsv4i16 = 3556,
-  VSHRsv4i32 = 3557,
-  VSHRsv8i16 = 3558,
-  VSHRsv8i8 = 3559,
-  VSHRuv16i8 = 3560,
-  VSHRuv1i64 = 3561,
-  VSHRuv2i32 = 3562,
-  VSHRuv2i64 = 3563,
-  VSHRuv4i16 = 3564,
-  VSHRuv4i32 = 3565,
-  VSHRuv8i16 = 3566,
-  VSHRuv8i8 = 3567,
-  VSHTOD = 3568,
-  VSHTOH = 3569,
-  VSHTOS = 3570,
-  VSITOD = 3571,
-  VSITOH = 3572,
-  VSITOS = 3573,
-  VSLIv16i8 = 3574,
-  VSLIv1i64 = 3575,
-  VSLIv2i32 = 3576,
-  VSLIv2i64 = 3577,
-  VSLIv4i16 = 3578,
-  VSLIv4i32 = 3579,
-  VSLIv8i16 = 3580,
-  VSLIv8i8 = 3581,
-  VSLTOD = 3582,
-  VSLTOH = 3583,
-  VSLTOS = 3584,
-  VSMMLA = 3585,
-  VSQRTD = 3586,
-  VSQRTH = 3587,
-  VSQRTS = 3588,
-  VSRAsv16i8 = 3589,
-  VSRAsv1i64 = 3590,
-  VSRAsv2i32 = 3591,
-  VSRAsv2i64 = 3592,
-  VSRAsv4i16 = 3593,
-  VSRAsv4i32 = 3594,
-  VSRAsv8i16 = 3595,
-  VSRAsv8i8 = 3596,
-  VSRAuv16i8 = 3597,
-  VSRAuv1i64 = 3598,
-  VSRAuv2i32 = 3599,
-  VSRAuv2i64 = 3600,
-  VSRAuv4i16 = 3601,
-  VSRAuv4i32 = 3602,
-  VSRAuv8i16 = 3603,
-  VSRAuv8i8 = 3604,
-  VSRIv16i8 = 3605,
-  VSRIv1i64 = 3606,
-  VSRIv2i32 = 3607,
-  VSRIv2i64 = 3608,
-  VSRIv4i16 = 3609,
-  VSRIv4i32 = 3610,
-  VSRIv8i16 = 3611,
-  VSRIv8i8 = 3612,
-  VST1LNd16 = 3613,
-  VST1LNd16_UPD = 3614,
-  VST1LNd32 = 3615,
-  VST1LNd32_UPD = 3616,
-  VST1LNd8 = 3617,
-  VST1LNd8_UPD = 3618,
-  VST1LNq16Pseudo = 3619,
-  VST1LNq16Pseudo_UPD = 3620,
-  VST1LNq32Pseudo = 3621,
-  VST1LNq32Pseudo_UPD = 3622,
-  VST1LNq8Pseudo = 3623,
-  VST1LNq8Pseudo_UPD = 3624,
-  VST1d16 = 3625,
-  VST1d16Q = 3626,
-  VST1d16QPseudo = 3627,
-  VST1d16QPseudoWB_fixed = 3628,
-  VST1d16QPseudoWB_register = 3629,
-  VST1d16Qwb_fixed = 3630,
-  VST1d16Qwb_register = 3631,
-  VST1d16T = 3632,
-  VST1d16TPseudo = 3633,
-  VST1d16TPseudoWB_fixed = 3634,
-  VST1d16TPseudoWB_register = 3635,
-  VST1d16Twb_fixed = 3636,
-  VST1d16Twb_register = 3637,
-  VST1d16wb_fixed = 3638,
-  VST1d16wb_register = 3639,
-  VST1d32 = 3640,
-  VST1d32Q = 3641,
-  VST1d32QPseudo = 3642,
-  VST1d32QPseudoWB_fixed = 3643,
-  VST1d32QPseudoWB_register = 3644,
-  VST1d32Qwb_fixed = 3645,
-  VST1d32Qwb_register = 3646,
-  VST1d32T = 3647,
-  VST1d32TPseudo = 3648,
-  VST1d32TPseudoWB_fixed = 3649,
-  VST1d32TPseudoWB_register = 3650,
-  VST1d32Twb_fixed = 3651,
-  VST1d32Twb_register = 3652,
-  VST1d32wb_fixed = 3653,
-  VST1d32wb_register = 3654,
-  VST1d64 = 3655,
-  VST1d64Q = 3656,
-  VST1d64QPseudo = 3657,
-  VST1d64QPseudoWB_fixed = 3658,
-  VST1d64QPseudoWB_register = 3659,
-  VST1d64Qwb_fixed = 3660,
-  VST1d64Qwb_register = 3661,
-  VST1d64T = 3662,
-  VST1d64TPseudo = 3663,
-  VST1d64TPseudoWB_fixed = 3664,
-  VST1d64TPseudoWB_register = 3665,
-  VST1d64Twb_fixed = 3666,
-  VST1d64Twb_register = 3667,
-  VST1d64wb_fixed = 3668,
-  VST1d64wb_register = 3669,
-  VST1d8 = 3670,
-  VST1d8Q = 3671,
-  VST1d8QPseudo = 3672,
-  VST1d8QPseudoWB_fixed = 3673,
-  VST1d8QPseudoWB_register = 3674,
-  VST1d8Qwb_fixed = 3675,
-  VST1d8Qwb_register = 3676,
-  VST1d8T = 3677,
-  VST1d8TPseudo = 3678,
-  VST1d8TPseudoWB_fixed = 3679,
-  VST1d8TPseudoWB_register = 3680,
-  VST1d8Twb_fixed = 3681,
-  VST1d8Twb_register = 3682,
-  VST1d8wb_fixed = 3683,
-  VST1d8wb_register = 3684,
-  VST1q16 = 3685,
-  VST1q16HighQPseudo = 3686,
-  VST1q16HighQPseudo_UPD = 3687,
-  VST1q16HighTPseudo = 3688,
-  VST1q16HighTPseudo_UPD = 3689,
-  VST1q16LowQPseudo_UPD = 3690,
-  VST1q16LowTPseudo_UPD = 3691,
-  VST1q16wb_fixed = 3692,
-  VST1q16wb_register = 3693,
-  VST1q32 = 3694,
-  VST1q32HighQPseudo = 3695,
-  VST1q32HighQPseudo_UPD = 3696,
-  VST1q32HighTPseudo = 3697,
-  VST1q32HighTPseudo_UPD = 3698,
-  VST1q32LowQPseudo_UPD = 3699,
-  VST1q32LowTPseudo_UPD = 3700,
-  VST1q32wb_fixed = 3701,
-  VST1q32wb_register = 3702,
-  VST1q64 = 3703,
-  VST1q64HighQPseudo = 3704,
-  VST1q64HighQPseudo_UPD = 3705,
-  VST1q64HighTPseudo = 3706,
-  VST1q64HighTPseudo_UPD = 3707,
-  VST1q64LowQPseudo_UPD = 3708,
-  VST1q64LowTPseudo_UPD = 3709,
-  VST1q64wb_fixed = 3710,
-  VST1q64wb_register = 3711,
-  VST1q8 = 3712,
-  VST1q8HighQPseudo = 3713,
-  VST1q8HighQPseudo_UPD = 3714,
-  VST1q8HighTPseudo = 3715,
-  VST1q8HighTPseudo_UPD = 3716,
-  VST1q8LowQPseudo_UPD = 3717,
-  VST1q8LowTPseudo_UPD = 3718,
-  VST1q8wb_fixed = 3719,
-  VST1q8wb_register = 3720,
-  VST2LNd16 = 3721,
-  VST2LNd16Pseudo = 3722,
-  VST2LNd16Pseudo_UPD = 3723,
-  VST2LNd16_UPD = 3724,
-  VST2LNd32 = 3725,
-  VST2LNd32Pseudo = 3726,
-  VST2LNd32Pseudo_UPD = 3727,
-  VST2LNd32_UPD = 3728,
-  VST2LNd8 = 3729,
-  VST2LNd8Pseudo = 3730,
-  VST2LNd8Pseudo_UPD = 3731,
-  VST2LNd8_UPD = 3732,
-  VST2LNq16 = 3733,
-  VST2LNq16Pseudo = 3734,
-  VST2LNq16Pseudo_UPD = 3735,
-  VST2LNq16_UPD = 3736,
-  VST2LNq32 = 3737,
-  VST2LNq32Pseudo = 3738,
-  VST2LNq32Pseudo_UPD = 3739,
-  VST2LNq32_UPD = 3740,
-  VST2b16 = 3741,
-  VST2b16wb_fixed = 3742,
-  VST2b16wb_register = 3743,
-  VST2b32 = 3744,
-  VST2b32wb_fixed = 3745,
-  VST2b32wb_register = 3746,
-  VST2b8 = 3747,
-  VST2b8wb_fixed = 3748,
-  VST2b8wb_register = 3749,
-  VST2d16 = 3750,
-  VST2d16wb_fixed = 3751,
-  VST2d16wb_register = 3752,
-  VST2d32 = 3753,
-  VST2d32wb_fixed = 3754,
-  VST2d32wb_register = 3755,
-  VST2d8 = 3756,
-  VST2d8wb_fixed = 3757,
-  VST2d8wb_register = 3758,
-  VST2q16 = 3759,
-  VST2q16Pseudo = 3760,
-  VST2q16PseudoWB_fixed = 3761,
-  VST2q16PseudoWB_register = 3762,
-  VST2q16wb_fixed = 3763,
-  VST2q16wb_register = 3764,
-  VST2q32 = 3765,
-  VST2q32Pseudo = 3766,
-  VST2q32PseudoWB_fixed = 3767,
-  VST2q32PseudoWB_register = 3768,
-  VST2q32wb_fixed = 3769,
-  VST2q32wb_register = 3770,
-  VST2q8 = 3771,
-  VST2q8Pseudo = 3772,
-  VST2q8PseudoWB_fixed = 3773,
-  VST2q8PseudoWB_register = 3774,
-  VST2q8wb_fixed = 3775,
-  VST2q8wb_register = 3776,
-  VST3LNd16 = 3777,
-  VST3LNd16Pseudo = 3778,
-  VST3LNd16Pseudo_UPD = 3779,
-  VST3LNd16_UPD = 3780,
-  VST3LNd32 = 3781,
-  VST3LNd32Pseudo = 3782,
-  VST3LNd32Pseudo_UPD = 3783,
-  VST3LNd32_UPD = 3784,
-  VST3LNd8 = 3785,
-  VST3LNd8Pseudo = 3786,
-  VST3LNd8Pseudo_UPD = 3787,
-  VST3LNd8_UPD = 3788,
-  VST3LNq16 = 3789,
-  VST3LNq16Pseudo = 3790,
-  VST3LNq16Pseudo_UPD = 3791,
-  VST3LNq16_UPD = 3792,
-  VST3LNq32 = 3793,
-  VST3LNq32Pseudo = 3794,
-  VST3LNq32Pseudo_UPD = 3795,
-  VST3LNq32_UPD = 3796,
-  VST3d16 = 3797,
-  VST3d16Pseudo = 3798,
-  VST3d16Pseudo_UPD = 3799,
-  VST3d16_UPD = 3800,
-  VST3d32 = 3801,
-  VST3d32Pseudo = 3802,
-  VST3d32Pseudo_UPD = 3803,
-  VST3d32_UPD = 3804,
-  VST3d8 = 3805,
-  VST3d8Pseudo = 3806,
-  VST3d8Pseudo_UPD = 3807,
-  VST3d8_UPD = 3808,
-  VST3q16 = 3809,
-  VST3q16Pseudo_UPD = 3810,
-  VST3q16_UPD = 3811,
-  VST3q16oddPseudo = 3812,
-  VST3q16oddPseudo_UPD = 3813,
-  VST3q32 = 3814,
-  VST3q32Pseudo_UPD = 3815,
-  VST3q32_UPD = 3816,
-  VST3q32oddPseudo = 3817,
-  VST3q32oddPseudo_UPD = 3818,
-  VST3q8 = 3819,
-  VST3q8Pseudo_UPD = 3820,
-  VST3q8_UPD = 3821,
-  VST3q8oddPseudo = 3822,
-  VST3q8oddPseudo_UPD = 3823,
-  VST4LNd16 = 3824,
-  VST4LNd16Pseudo = 3825,
-  VST4LNd16Pseudo_UPD = 3826,
-  VST4LNd16_UPD = 3827,
-  VST4LNd32 = 3828,
-  VST4LNd32Pseudo = 3829,
-  VST4LNd32Pseudo_UPD = 3830,
-  VST4LNd32_UPD = 3831,
-  VST4LNd8 = 3832,
-  VST4LNd8Pseudo = 3833,
-  VST4LNd8Pseudo_UPD = 3834,
-  VST4LNd8_UPD = 3835,
-  VST4LNq16 = 3836,
-  VST4LNq16Pseudo = 3837,
-  VST4LNq16Pseudo_UPD = 3838,
-  VST4LNq16_UPD = 3839,
-  VST4LNq32 = 3840,
-  VST4LNq32Pseudo = 3841,
-  VST4LNq32Pseudo_UPD = 3842,
-  VST4LNq32_UPD = 3843,
-  VST4d16 = 3844,
-  VST4d16Pseudo = 3845,
-  VST4d16Pseudo_UPD = 3846,
-  VST4d16_UPD = 3847,
-  VST4d32 = 3848,
-  VST4d32Pseudo = 3849,
-  VST4d32Pseudo_UPD = 3850,
-  VST4d32_UPD = 3851,
-  VST4d8 = 3852,
-  VST4d8Pseudo = 3853,
-  VST4d8Pseudo_UPD = 3854,
-  VST4d8_UPD = 3855,
-  VST4q16 = 3856,
-  VST4q16Pseudo_UPD = 3857,
-  VST4q16_UPD = 3858,
-  VST4q16oddPseudo = 3859,
-  VST4q16oddPseudo_UPD = 3860,
-  VST4q32 = 3861,
-  VST4q32Pseudo_UPD = 3862,
-  VST4q32_UPD = 3863,
-  VST4q32oddPseudo = 3864,
-  VST4q32oddPseudo_UPD = 3865,
-  VST4q8 = 3866,
-  VST4q8Pseudo_UPD = 3867,
-  VST4q8_UPD = 3868,
-  VST4q8oddPseudo = 3869,
-  VST4q8oddPseudo_UPD = 3870,
-  VSTMDDB_UPD = 3871,
-  VSTMDIA = 3872,
-  VSTMDIA_UPD = 3873,
-  VSTMQIA = 3874,
-  VSTMSDB_UPD = 3875,
-  VSTMSIA = 3876,
-  VSTMSIA_UPD = 3877,
-  VSTRD = 3878,
-  VSTRH = 3879,
-  VSTRS = 3880,
-  VSTR_FPCXTNS_off = 3881,
-  VSTR_FPCXTNS_post = 3882,
-  VSTR_FPCXTNS_pre = 3883,
-  VSTR_FPCXTS_off = 3884,
-  VSTR_FPCXTS_post = 3885,
-  VSTR_FPCXTS_pre = 3886,
-  VSTR_FPSCR_NZCVQC_off = 3887,
-  VSTR_FPSCR_NZCVQC_post = 3888,
-  VSTR_FPSCR_NZCVQC_pre = 3889,
-  VSTR_FPSCR_off = 3890,
-  VSTR_FPSCR_post = 3891,
-  VSTR_FPSCR_pre = 3892,
-  VSTR_P0_off = 3893,
-  VSTR_P0_post = 3894,
-  VSTR_P0_pre = 3895,
-  VSTR_VPR_off = 3896,
-  VSTR_VPR_post = 3897,
-  VSTR_VPR_pre = 3898,
-  VSUBD = 3899,
-  VSUBH = 3900,
-  VSUBHNv2i32 = 3901,
-  VSUBHNv4i16 = 3902,
-  VSUBHNv8i8 = 3903,
-  VSUBLsv2i64 = 3904,
-  VSUBLsv4i32 = 3905,
-  VSUBLsv8i16 = 3906,
-  VSUBLuv2i64 = 3907,
-  VSUBLuv4i32 = 3908,
-  VSUBLuv8i16 = 3909,
-  VSUBS = 3910,
-  VSUBWsv2i64 = 3911,
-  VSUBWsv4i32 = 3912,
-  VSUBWsv8i16 = 3913,
-  VSUBWuv2i64 = 3914,
-  VSUBWuv4i32 = 3915,
-  VSUBWuv8i16 = 3916,
-  VSUBfd = 3917,
-  VSUBfq = 3918,
-  VSUBhd = 3919,
-  VSUBhq = 3920,
-  VSUBv16i8 = 3921,
-  VSUBv1i64 = 3922,
-  VSUBv2i32 = 3923,
-  VSUBv2i64 = 3924,
-  VSUBv4i16 = 3925,
-  VSUBv4i32 = 3926,
-  VSUBv8i16 = 3927,
-  VSUBv8i8 = 3928,
-  VSUDOTDI = 3929,
-  VSUDOTQI = 3930,
-  VSWPd = 3931,
-  VSWPq = 3932,
-  VTBL1 = 3933,
-  VTBL2 = 3934,
-  VTBL3 = 3935,
-  VTBL3Pseudo = 3936,
-  VTBL4 = 3937,
-  VTBL4Pseudo = 3938,
-  VTBX1 = 3939,
-  VTBX2 = 3940,
-  VTBX3 = 3941,
-  VTBX3Pseudo = 3942,
-  VTBX4 = 3943,
-  VTBX4Pseudo = 3944,
-  VTOSHD = 3945,
-  VTOSHH = 3946,
-  VTOSHS = 3947,
-  VTOSIRD = 3948,
-  VTOSIRH = 3949,
-  VTOSIRS = 3950,
-  VTOSIZD = 3951,
-  VTOSIZH = 3952,
-  VTOSIZS = 3953,
-  VTOSLD = 3954,
-  VTOSLH = 3955,
-  VTOSLS = 3956,
-  VTOUHD = 3957,
-  VTOUHH = 3958,
-  VTOUHS = 3959,
-  VTOUIRD = 3960,
-  VTOUIRH = 3961,
-  VTOUIRS = 3962,
-  VTOUIZD = 3963,
-  VTOUIZH = 3964,
-  VTOUIZS = 3965,
-  VTOULD = 3966,
-  VTOULH = 3967,
-  VTOULS = 3968,
-  VTRNd16 = 3969,
-  VTRNd32 = 3970,
-  VTRNd8 = 3971,
-  VTRNq16 = 3972,
-  VTRNq32 = 3973,
-  VTRNq8 = 3974,
-  VTSTv16i8 = 3975,
-  VTSTv2i32 = 3976,
-  VTSTv4i16 = 3977,
-  VTSTv4i32 = 3978,
-  VTSTv8i16 = 3979,
-  VTSTv8i8 = 3980,
-  VUDOTD = 3981,
-  VUDOTDI = 3982,
-  VUDOTQ = 3983,
-  VUDOTQI = 3984,
-  VUHTOD = 3985,
-  VUHTOH = 3986,
-  VUHTOS = 3987,
-  VUITOD = 3988,
-  VUITOH = 3989,
-  VUITOS = 3990,
-  VULTOD = 3991,
-  VULTOH = 3992,
-  VULTOS = 3993,
-  VUMMLA = 3994,
-  VUSDOTD = 3995,
-  VUSDOTDI = 3996,
-  VUSDOTQ = 3997,
-  VUSDOTQI = 3998,
-  VUSMMLA = 3999,
-  VUZPd16 = 4000,
-  VUZPd8 = 4001,
-  VUZPq16 = 4002,
-  VUZPq32 = 4003,
-  VUZPq8 = 4004,
-  VZIPd16 = 4005,
-  VZIPd8 = 4006,
-  VZIPq16 = 4007,
-  VZIPq32 = 4008,
-  VZIPq8 = 4009,
-  sysLDMDA = 4010,
-  sysLDMDA_UPD = 4011,
-  sysLDMDB = 4012,
-  sysLDMDB_UPD = 4013,
-  sysLDMIA = 4014,
-  sysLDMIA_UPD = 4015,
-  sysLDMIB = 4016,
-  sysLDMIB_UPD = 4017,
-  sysSTMDA = 4018,
-  sysSTMDA_UPD = 4019,
-  sysSTMDB = 4020,
-  sysSTMDB_UPD = 4021,
-  sysSTMIA = 4022,
-  sysSTMIA_UPD = 4023,
-  sysSTMIB = 4024,
-  sysSTMIB_UPD = 4025,
-  t2ADCri = 4026,
-  t2ADCrr = 4027,
-  t2ADCrs = 4028,
-  t2ADDri = 4029,
-  t2ADDri12 = 4030,
-  t2ADDrr = 4031,
-  t2ADDrs = 4032,
-  t2ADDspImm = 4033,
-  t2ADDspImm12 = 4034,
-  t2ADR = 4035,
-  t2ANDri = 4036,
-  t2ANDrr = 4037,
-  t2ANDrs = 4038,
-  t2ASRri = 4039,
-  t2ASRrr = 4040,
-  t2ASRs1 = 4041,
-  t2AUT = 4042,
-  t2AUTG = 4043,
-  t2B = 4044,
-  t2BFC = 4045,
-  t2BFI = 4046,
-  t2BFLi = 4047,
-  t2BFLr = 4048,
-  t2BFi = 4049,
-  t2BFic = 4050,
-  t2BFr = 4051,
-  t2BICri = 4052,
-  t2BICrr = 4053,
-  t2BICrs = 4054,
-  t2BTI = 4055,
-  t2BXAUT = 4056,
-  t2BXJ = 4057,
-  t2Bcc = 4058,
-  t2CDP = 4059,
-  t2CDP2 = 4060,
-  t2CLREX = 4061,
-  t2CLRM = 4062,
-  t2CLZ = 4063,
-  t2CMNri = 4064,
-  t2CMNzrr = 4065,
-  t2CMNzrs = 4066,
-  t2CMPri = 4067,
-  t2CMPrr = 4068,
-  t2CMPrs = 4069,
-  t2CPS1p = 4070,
-  t2CPS2p = 4071,
-  t2CPS3p = 4072,
-  t2CRC32B = 4073,
-  t2CRC32CB = 4074,
-  t2CRC32CH = 4075,
-  t2CRC32CW = 4076,
-  t2CRC32H = 4077,
-  t2CRC32W = 4078,
-  t2CSEL = 4079,
-  t2CSINC = 4080,
-  t2CSINV = 4081,
-  t2CSNEG = 4082,
-  t2DBG = 4083,
-  t2DCPS1 = 4084,
-  t2DCPS2 = 4085,
-  t2DCPS3 = 4086,
-  t2DLS = 4087,
-  t2DMB = 4088,
-  t2DSB = 4089,
-  t2EORri = 4090,
-  t2EORrr = 4091,
-  t2EORrs = 4092,
-  t2HINT = 4093,
-  t2HVC = 4094,
-  t2ISB = 4095,
-  t2IT = 4096,
-  t2Int_eh_sjlj_setjmp = 4097,
-  t2Int_eh_sjlj_setjmp_nofp = 4098,
-  t2LDA = 4099,
-  t2LDAB = 4100,
-  t2LDAEX = 4101,
-  t2LDAEXB = 4102,
-  t2LDAEXD = 4103,
-  t2LDAEXH = 4104,
-  t2LDAH = 4105,
-  t2LDC2L_OFFSET = 4106,
-  t2LDC2L_OPTION = 4107,
-  t2LDC2L_POST = 4108,
-  t2LDC2L_PRE = 4109,
-  t2LDC2_OFFSET = 4110,
-  t2LDC2_OPTION = 4111,
-  t2LDC2_POST = 4112,
-  t2LDC2_PRE = 4113,
-  t2LDCL_OFFSET = 4114,
-  t2LDCL_OPTION = 4115,
-  t2LDCL_POST = 4116,
-  t2LDCL_PRE = 4117,
-  t2LDC_OFFSET = 4118,
-  t2LDC_OPTION = 4119,
-  t2LDC_POST = 4120,
-  t2LDC_PRE = 4121,
-  t2LDMDB = 4122,
-  t2LDMDB_UPD = 4123,
-  t2LDMIA = 4124,
-  t2LDMIA_UPD = 4125,
-  t2LDRBT = 4126,
-  t2LDRB_POST = 4127,
-  t2LDRB_PRE = 4128,
-  t2LDRBi12 = 4129,
-  t2LDRBi8 = 4130,
-  t2LDRBpci = 4131,
-  t2LDRBs = 4132,
-  t2LDRD_POST = 4133,
-  t2LDRD_PRE = 4134,
-  t2LDRDi8 = 4135,
-  t2LDREX = 4136,
-  t2LDREXB = 4137,
-  t2LDREXD = 4138,
-  t2LDREXH = 4139,
-  t2LDRHT = 4140,
-  t2LDRH_POST = 4141,
-  t2LDRH_PRE = 4142,
-  t2LDRHi12 = 4143,
-  t2LDRHi8 = 4144,
-  t2LDRHpci = 4145,
-  t2LDRHs = 4146,
-  t2LDRSBT = 4147,
-  t2LDRSB_POST = 4148,
-  t2LDRSB_PRE = 4149,
-  t2LDRSBi12 = 4150,
-  t2LDRSBi8 = 4151,
-  t2LDRSBpci = 4152,
-  t2LDRSBs = 4153,
-  t2LDRSHT = 4154,
-  t2LDRSH_POST = 4155,
-  t2LDRSH_PRE = 4156,
-  t2LDRSHi12 = 4157,
-  t2LDRSHi8 = 4158,
-  t2LDRSHpci = 4159,
-  t2LDRSHs = 4160,
-  t2LDRT = 4161,
-  t2LDR_POST = 4162,
-  t2LDR_PRE = 4163,
-  t2LDRi12 = 4164,
-  t2LDRi8 = 4165,
-  t2LDRpci = 4166,
-  t2LDRs = 4167,
-  t2LE = 4168,
-  t2LEUpdate = 4169,
-  t2LSLri = 4170,
-  t2LSLrr = 4171,
-  t2LSRri = 4172,
-  t2LSRrr = 4173,
-  t2LSRs1 = 4174,
-  t2MCR = 4175,
-  t2MCR2 = 4176,
-  t2MCRR = 4177,
-  t2MCRR2 = 4178,
-  t2MLA = 4179,
-  t2MLS = 4180,
-  t2MOVTi16 = 4181,
-  t2MOVi = 4182,
-  t2MOVi16 = 4183,
-  t2MOVr = 4184,
-  t2MRC = 4185,
-  t2MRC2 = 4186,
-  t2MRRC = 4187,
-  t2MRRC2 = 4188,
-  t2MRS_AR = 4189,
-  t2MRS_M = 4190,
-  t2MRSbanked = 4191,
-  t2MRSsys_AR = 4192,
-  t2MSR_AR = 4193,
-  t2MSR_M = 4194,
-  t2MSRbanked = 4195,
-  t2MUL = 4196,
-  t2MVNi = 4197,
-  t2MVNr = 4198,
-  t2MVNs = 4199,
-  t2ORNri = 4200,
-  t2ORNrr = 4201,
-  t2ORNrs = 4202,
-  t2ORRri = 4203,
-  t2ORRrr = 4204,
-  t2ORRrs = 4205,
-  t2PAC = 4206,
-  t2PACBTI = 4207,
-  t2PACG = 4208,
-  t2PKHBT = 4209,
-  t2PKHTB = 4210,
-  t2PLDWi12 = 4211,
-  t2PLDWi8 = 4212,
-  t2PLDWs = 4213,
-  t2PLDi12 = 4214,
-  t2PLDi8 = 4215,
-  t2PLDpci = 4216,
-  t2PLDs = 4217,
-  t2PLIi12 = 4218,
-  t2PLIi8 = 4219,
-  t2PLIpci = 4220,
-  t2PLIs = 4221,
-  t2QADD = 4222,
-  t2QADD16 = 4223,
-  t2QADD8 = 4224,
-  t2QASX = 4225,
-  t2QDADD = 4226,
-  t2QDSUB = 4227,
-  t2QSAX = 4228,
-  t2QSUB = 4229,
-  t2QSUB16 = 4230,
-  t2QSUB8 = 4231,
-  t2RBIT = 4232,
-  t2REV = 4233,
-  t2REV16 = 4234,
-  t2REVSH = 4235,
-  t2RFEDB = 4236,
-  t2RFEDBW = 4237,
-  t2RFEIA = 4238,
-  t2RFEIAW = 4239,
-  t2RORri = 4240,
-  t2RORrr = 4241,
-  t2RRX = 4242,
-  t2RSBri = 4243,
-  t2RSBrr = 4244,
-  t2RSBrs = 4245,
-  t2SADD16 = 4246,
-  t2SADD8 = 4247,
-  t2SASX = 4248,
-  t2SB = 4249,
-  t2SBCri = 4250,
-  t2SBCrr = 4251,
-  t2SBCrs = 4252,
-  t2SBFX = 4253,
-  t2SDIV = 4254,
-  t2SEL = 4255,
-  t2SETPAN = 4256,
-  t2SG = 4257,
-  t2SHADD16 = 4258,
-  t2SHADD8 = 4259,
-  t2SHASX = 4260,
-  t2SHSAX = 4261,
-  t2SHSUB16 = 4262,
-  t2SHSUB8 = 4263,
-  t2SMC = 4264,
-  t2SMLABB = 4265,
-  t2SMLABT = 4266,
-  t2SMLAD = 4267,
-  t2SMLADX = 4268,
-  t2SMLAL = 4269,
-  t2SMLALBB = 4270,
-  t2SMLALBT = 4271,
-  t2SMLALD = 4272,
-  t2SMLALDX = 4273,
-  t2SMLALTB = 4274,
-  t2SMLALTT = 4275,
-  t2SMLATB = 4276,
-  t2SMLATT = 4277,
-  t2SMLAWB = 4278,
-  t2SMLAWT = 4279,
-  t2SMLSD = 4280,
-  t2SMLSDX = 4281,
-  t2SMLSLD = 4282,
-  t2SMLSLDX = 4283,
-  t2SMMLA = 4284,
-  t2SMMLAR = 4285,
-  t2SMMLS = 4286,
-  t2SMMLSR = 4287,
-  t2SMMUL = 4288,
-  t2SMMULR = 4289,
-  t2SMUAD = 4290,
-  t2SMUADX = 4291,
-  t2SMULBB = 4292,
-  t2SMULBT = 4293,
-  t2SMULL = 4294,
-  t2SMULTB = 4295,
-  t2SMULTT = 4296,
-  t2SMULWB = 4297,
-  t2SMULWT = 4298,
-  t2SMUSD = 4299,
-  t2SMUSDX = 4300,
-  t2SRSDB = 4301,
-  t2SRSDB_UPD = 4302,
-  t2SRSIA = 4303,
-  t2SRSIA_UPD = 4304,
-  t2SSAT = 4305,
-  t2SSAT16 = 4306,
-  t2SSAX = 4307,
-  t2SSUB16 = 4308,
-  t2SSUB8 = 4309,
-  t2STC2L_OFFSET = 4310,
-  t2STC2L_OPTION = 4311,
-  t2STC2L_POST = 4312,
-  t2STC2L_PRE = 4313,
-  t2STC2_OFFSET = 4314,
-  t2STC2_OPTION = 4315,
-  t2STC2_POST = 4316,
-  t2STC2_PRE = 4317,
-  t2STCL_OFFSET = 4318,
-  t2STCL_OPTION = 4319,
-  t2STCL_POST = 4320,
-  t2STCL_PRE = 4321,
-  t2STC_OFFSET = 4322,
-  t2STC_OPTION = 4323,
-  t2STC_POST = 4324,
-  t2STC_PRE = 4325,
-  t2STL = 4326,
-  t2STLB = 4327,
-  t2STLEX = 4328,
-  t2STLEXB = 4329,
-  t2STLEXD = 4330,
-  t2STLEXH = 4331,
-  t2STLH = 4332,
-  t2STMDB = 4333,
-  t2STMDB_UPD = 4334,
-  t2STMIA = 4335,
-  t2STMIA_UPD = 4336,
-  t2STRBT = 4337,
-  t2STRB_POST = 4338,
-  t2STRB_PRE = 4339,
-  t2STRBi12 = 4340,
-  t2STRBi8 = 4341,
-  t2STRBs = 4342,
-  t2STRD_POST = 4343,
-  t2STRD_PRE = 4344,
-  t2STRDi8 = 4345,
-  t2STREX = 4346,
-  t2STREXB = 4347,
-  t2STREXD = 4348,
-  t2STREXH = 4349,
-  t2STRHT = 4350,
-  t2STRH_POST = 4351,
-  t2STRH_PRE = 4352,
-  t2STRHi12 = 4353,
-  t2STRHi8 = 4354,
-  t2STRHs = 4355,
-  t2STRT = 4356,
-  t2STR_POST = 4357,
-  t2STR_PRE = 4358,
-  t2STRi12 = 4359,
-  t2STRi8 = 4360,
-  t2STRs = 4361,
-  t2SUBS_PC_LR = 4362,
-  t2SUBri = 4363,
-  t2SUBri12 = 4364,
-  t2SUBrr = 4365,
-  t2SUBrs = 4366,
-  t2SUBspImm = 4367,
-  t2SUBspImm12 = 4368,
-  t2SXTAB = 4369,
-  t2SXTAB16 = 4370,
-  t2SXTAH = 4371,
-  t2SXTB = 4372,
-  t2SXTB16 = 4373,
-  t2SXTH = 4374,
-  t2TBB = 4375,
-  t2TBH = 4376,
-  t2TEQri = 4377,
-  t2TEQrr = 4378,
-  t2TEQrs = 4379,
-  t2TSB = 4380,
-  t2TSTri = 4381,
-  t2TSTrr = 4382,
-  t2TSTrs = 4383,
-  t2TT = 4384,
-  t2TTA = 4385,
-  t2TTAT = 4386,
-  t2TTT = 4387,
-  t2UADD16 = 4388,
-  t2UADD8 = 4389,
-  t2UASX = 4390,
-  t2UBFX = 4391,
-  t2UDF = 4392,
-  t2UDIV = 4393,
-  t2UHADD16 = 4394,
-  t2UHADD8 = 4395,
-  t2UHASX = 4396,
-  t2UHSAX = 4397,
-  t2UHSUB16 = 4398,
-  t2UHSUB8 = 4399,
-  t2UMAAL = 4400,
-  t2UMLAL = 4401,
-  t2UMULL = 4402,
-  t2UQADD16 = 4403,
-  t2UQADD8 = 4404,
-  t2UQASX = 4405,
-  t2UQSAX = 4406,
-  t2UQSUB16 = 4407,
-  t2UQSUB8 = 4408,
-  t2USAD8 = 4409,
-  t2USADA8 = 4410,
-  t2USAT = 4411,
-  t2USAT16 = 4412,
-  t2USAX = 4413,
-  t2USUB16 = 4414,
-  t2USUB8 = 4415,
-  t2UXTAB = 4416,
-  t2UXTAB16 = 4417,
-  t2UXTAH = 4418,
-  t2UXTB = 4419,
-  t2UXTB16 = 4420,
-  t2UXTH = 4421,
-  t2WLS = 4422,
-  tADC = 4423,
-  tADDhirr = 4424,
-  tADDi3 = 4425,
-  tADDi8 = 4426,
-  tADDrSP = 4427,
-  tADDrSPi = 4428,
-  tADDrr = 4429,
-  tADDspi = 4430,
-  tADDspr = 4431,
-  tADR = 4432,
-  tAND = 4433,
-  tASRri = 4434,
-  tASRrr = 4435,
-  tB = 4436,
-  tBIC = 4437,
-  tBKPT = 4438,
-  tBL = 4439,
-  tBLXNSr = 4440,
-  tBLXi = 4441,
-  tBLXr = 4442,
-  tBX = 4443,
-  tBXNS = 4444,
-  tBcc = 4445,
-  tCBNZ = 4446,
-  tCBZ = 4447,
-  tCMNz = 4448,
-  tCMPhir = 4449,
-  tCMPi8 = 4450,
-  tCMPr = 4451,
-  tCPS = 4452,
-  tEOR = 4453,
-  tHINT = 4454,
-  tHLT = 4455,
-  tInt_WIN_eh_sjlj_longjmp = 4456,
-  tInt_eh_sjlj_longjmp = 4457,
-  tInt_eh_sjlj_setjmp = 4458,
-  tLDMIA = 4459,
-  tLDRBi = 4460,
-  tLDRBr = 4461,
-  tLDRHi = 4462,
-  tLDRHr = 4463,
-  tLDRSB = 4464,
-  tLDRSH = 4465,
-  tLDRi = 4466,
-  tLDRpci = 4467,
-  tLDRr = 4468,
-  tLDRspi = 4469,
-  tLSLri = 4470,
-  tLSLrr = 4471,
-  tLSRri = 4472,
-  tLSRrr = 4473,
-  tMOVSr = 4474,
-  tMOVi8 = 4475,
-  tMOVr = 4476,
-  tMUL = 4477,
-  tMVN = 4478,
-  tORR = 4479,
-  tPICADD = 4480,
-  tPOP = 4481,
-  tPUSH = 4482,
-  tREV = 4483,
-  tREV16 = 4484,
-  tREVSH = 4485,
-  tROR = 4486,
-  tRSB = 4487,
-  tSBC = 4488,
-  tSETEND = 4489,
-  tSTMIA_UPD = 4490,
-  tSTRBi = 4491,
-  tSTRBr = 4492,
-  tSTRHi = 4493,
-  tSTRHr = 4494,
-  tSTRi = 4495,
-  tSTRr = 4496,
-  tSTRspi = 4497,
-  tSUBi3 = 4498,
-  tSUBi8 = 4499,
-  tSUBrr = 4500,
-  tSUBspi = 4501,
-  tSVC = 4502,
-  tSXTB = 4503,
-  tSXTH = 4504,
-  tTRAP = 4505,
-  tTST = 4506,
-  tUDF = 4507,
-  tUXTB = 4508,
-  tUXTH = 4509,
-  t__brkdiv0 = 4510,
-  INSTRUCTION_LIST_END = 4511,
+  COPY_LANEMASK = 21,
+  BUNDLE = 22,
+  LIFETIME_START = 23,
+  LIFETIME_END = 24,
+  PSEUDO_PROBE = 25,
+  ARITH_FENCE = 26,
+  STACKMAP = 27,
+  FENTRY_CALL = 28,
+  PATCHPOINT = 29,
+  LOAD_STACK_GUARD = 30,
+  PREALLOCATED_SETUP = 31,
+  PREALLOCATED_ARG = 32,
+  STATEPOINT = 33,
+  LOCAL_ESCAPE = 34,
+  FAULTING_OP = 35,
+  PATCHABLE_OP = 36,
+  PATCHABLE_FUNCTION_ENTER = 37,
+  PATCHABLE_RET = 38,
+  PATCHABLE_FUNCTION_EXIT = 39,
+  PATCHABLE_TAIL_CALL = 40,
+  PATCHABLE_EVENT_CALL = 41,
+  PATCHABLE_TYPED_EVENT_CALL = 42,
+  ICALL_BRANCH_FUNNEL = 43,
+  FAKE_USE = 44,
+  MEMBARRIER = 45,
+  JUMP_TABLE_DEBUG_INFO = 46,
+  RELOC_NONE = 47,
+  CONVERGENCECTRL_ENTRY = 48,
+  CONVERGENCECTRL_ANCHOR = 49,
+  CONVERGENCECTRL_LOOP = 50,
+  CONVERGENCECTRL_GLUE = 51,
+  G_ASSERT_SEXT = 52,
+  G_ASSERT_ZEXT = 53,
+  G_ASSERT_ALIGN = 54,
+  G_ADD = 55,
+  G_SUB = 56,
+  G_MUL = 57,
+  G_SDIV = 58,
+  G_UDIV = 59,
+  G_SREM = 60,
+  G_UREM = 61,
+  G_SDIVREM = 62,
+  G_UDIVREM = 63,
+  G_AND = 64,
+  G_OR = 65,
+  G_XOR = 66,
+  G_ABDS = 67,
+  G_ABDU = 68,
+  G_UAVGFLOOR = 69,
+  G_UAVGCEIL = 70,
+  G_SAVGFLOOR = 71,
+  G_SAVGCEIL = 72,
+  G_IMPLICIT_DEF = 73,
+  G_PHI = 74,
+  G_FRAME_INDEX = 75,
+  G_GLOBAL_VALUE = 76,
+  G_PTRAUTH_GLOBAL_VALUE = 77,
+  G_CONSTANT_POOL = 78,
+  G_EXTRACT = 79,
+  G_UNMERGE_VALUES = 80,
+  G_INSERT = 81,
+  G_MERGE_VALUES = 82,
+  G_BUILD_VECTOR = 83,
+  G_BUILD_VECTOR_TRUNC = 84,
+  G_CONCAT_VECTORS = 85,
+  G_PTRTOINT = 86,
+  G_INTTOPTR = 87,
+  G_BITCAST = 88,
+  G_FREEZE = 89,
+  G_CONSTANT_FOLD_BARRIER = 90,
+  G_INTRINSIC_FPTRUNC_ROUND = 91,
+  G_INTRINSIC_TRUNC = 92,
+  G_INTRINSIC_ROUND = 93,
+  G_INTRINSIC_LRINT = 94,
+  G_INTRINSIC_LLRINT = 95,
+  G_INTRINSIC_ROUNDEVEN = 96,
+  G_READCYCLECOUNTER = 97,
+  G_READSTEADYCOUNTER = 98,
+  G_LOAD = 99,
+  G_SEXTLOAD = 100,
+  G_ZEXTLOAD = 101,
+  G_INDEXED_LOAD = 102,
+  G_INDEXED_SEXTLOAD = 103,
+  G_INDEXED_ZEXTLOAD = 104,
+  G_STORE = 105,
+  G_INDEXED_STORE = 106,
+  G_ATOMIC_CMPXCHG_WITH_SUCCESS = 107,
+  G_ATOMIC_CMPXCHG = 108,
+  G_ATOMICRMW_XCHG = 109,
+  G_ATOMICRMW_ADD = 110,
+  G_ATOMICRMW_SUB = 111,
+  G_ATOMICRMW_AND = 112,
+  G_ATOMICRMW_NAND = 113,
+  G_ATOMICRMW_OR = 114,
+  G_ATOMICRMW_XOR = 115,
+  G_ATOMICRMW_MAX = 116,
+  G_ATOMICRMW_MIN = 117,
+  G_ATOMICRMW_UMAX = 118,
+  G_ATOMICRMW_UMIN = 119,
+  G_ATOMICRMW_FADD = 120,
+  G_ATOMICRMW_FSUB = 121,
+  G_ATOMICRMW_FMAX = 122,
+  G_ATOMICRMW_FMIN = 123,
+  G_ATOMICRMW_FMAXIMUM = 124,
+  G_ATOMICRMW_FMINIMUM = 125,
+  G_ATOMICRMW_UINC_WRAP = 126,
+  G_ATOMICRMW_UDEC_WRAP = 127,
+  G_ATOMICRMW_USUB_COND = 128,
+  G_ATOMICRMW_USUB_SAT = 129,
+  G_FENCE = 130,
+  G_PREFETCH = 131,
+  G_BRCOND = 132,
+  G_BRINDIRECT = 133,
+  G_INVOKE_REGION_START = 134,
+  G_INTRINSIC = 135,
+  G_INTRINSIC_W_SIDE_EFFECTS = 136,
+  G_INTRINSIC_CONVERGENT = 137,
+  G_INTRINSIC_CONVERGENT_W_SIDE_EFFECTS = 138,
+  G_ANYEXT = 139,
+  G_TRUNC = 140,
+  G_TRUNC_SSAT_S = 141,
+  G_TRUNC_SSAT_U = 142,
+  G_TRUNC_USAT_U = 143,
+  G_CONSTANT = 144,
+  G_FCONSTANT = 145,
+  G_VASTART = 146,
+  G_VAARG = 147,
+  G_SEXT = 148,
+  G_SEXT_INREG = 149,
+  G_ZEXT = 150,
+  G_SHL = 151,
+  G_LSHR = 152,
+  G_ASHR = 153,
+  G_FSHL = 154,
+  G_FSHR = 155,
+  G_ROTR = 156,
+  G_ROTL = 157,
+  G_ICMP = 158,
+  G_FCMP = 159,
+  G_SCMP = 160,
+  G_UCMP = 161,
+  G_SELECT = 162,
+  G_UADDO = 163,
+  G_UADDE = 164,
+  G_USUBO = 165,
+  G_USUBE = 166,
+  G_SADDO = 167,
+  G_SADDE = 168,
+  G_SSUBO = 169,
+  G_SSUBE = 170,
+  G_UMULO = 171,
+  G_SMULO = 172,
+  G_UMULH = 173,
+  G_SMULH = 174,
+  G_UADDSAT = 175,
+  G_SADDSAT = 176,
+  G_USUBSAT = 177,
+  G_SSUBSAT = 178,
+  G_USHLSAT = 179,
+  G_SSHLSAT = 180,
+  G_SMULFIX = 181,
+  G_UMULFIX = 182,
+  G_SMULFIXSAT = 183,
+  G_UMULFIXSAT = 184,
+  G_SDIVFIX = 185,
+  G_UDIVFIX = 186,
+  G_SDIVFIXSAT = 187,
+  G_UDIVFIXSAT = 188,
+  G_FADD = 189,
+  G_FSUB = 190,
+  G_FMUL = 191,
+  G_FMA = 192,
+  G_FMAD = 193,
+  G_FDIV = 194,
+  G_FREM = 195,
+  G_FMODF = 196,
+  G_FPOW = 197,
+  G_FPOWI = 198,
+  G_FEXP = 199,
+  G_FEXP2 = 200,
+  G_FEXP10 = 201,
+  G_FLOG = 202,
+  G_FLOG2 = 203,
+  G_FLOG10 = 204,
+  G_FLDEXP = 205,
+  G_FFREXP = 206,
+  G_FNEG = 207,
+  G_FPEXT = 208,
+  G_FPTRUNC = 209,
+  G_FPTOSI = 210,
+  G_FPTOUI = 211,
+  G_SITOFP = 212,
+  G_UITOFP = 213,
+  G_FPTOSI_SAT = 214,
+  G_FPTOUI_SAT = 215,
+  G_FABS = 216,
+  G_FCOPYSIGN = 217,
+  G_IS_FPCLASS = 218,
+  G_FCANONICALIZE = 219,
+  G_FMINNUM = 220,
+  G_FMAXNUM = 221,
+  G_FMINNUM_IEEE = 222,
+  G_FMAXNUM_IEEE = 223,
+  G_FMINIMUM = 224,
+  G_FMAXIMUM = 225,
+  G_FMINIMUMNUM = 226,
+  G_FMAXIMUMNUM = 227,
+  G_GET_FPENV = 228,
+  G_SET_FPENV = 229,
+  G_RESET_FPENV = 230,
+  G_GET_FPMODE = 231,
+  G_SET_FPMODE = 232,
+  G_RESET_FPMODE = 233,
+  G_GET_ROUNDING = 234,
+  G_SET_ROUNDING = 235,
+  G_PTR_ADD = 236,
+  G_PTRMASK = 237,
+  G_SMIN = 238,
+  G_SMAX = 239,
+  G_UMIN = 240,
+  G_UMAX = 241,
+  G_ABS = 242,
+  G_LROUND = 243,
+  G_LLROUND = 244,
+  G_BR = 245,
+  G_BRJT = 246,
+  G_VSCALE = 247,
+  G_INSERT_SUBVECTOR = 248,
+  G_EXTRACT_SUBVECTOR = 249,
+  G_INSERT_VECTOR_ELT = 250,
+  G_EXTRACT_VECTOR_ELT = 251,
+  G_SHUFFLE_VECTOR = 252,
+  G_SPLAT_VECTOR = 253,
+  G_STEP_VECTOR = 254,
+  G_VECTOR_COMPRESS = 255,
+  G_CTTZ = 256,
+  G_CTTZ_ZERO_UNDEF = 257,
+  G_CTLZ = 258,
+  G_CTLZ_ZERO_UNDEF = 259,
+  G_CTPOP = 260,
+  G_BSWAP = 261,
+  G_BITREVERSE = 262,
+  G_FCEIL = 263,
+  G_FCOS = 264,
+  G_FSIN = 265,
+  G_FSINCOS = 266,
+  G_FTAN = 267,
+  G_FACOS = 268,
+  G_FASIN = 269,
+  G_FATAN = 270,
+  G_FATAN2 = 271,
+  G_FCOSH = 272,
+  G_FSINH = 273,
+  G_FTANH = 274,
+  G_FSQRT = 275,
+  G_FFLOOR = 276,
+  G_FRINT = 277,
+  G_FNEARBYINT = 278,
+  G_ADDRSPACE_CAST = 279,
+  G_BLOCK_ADDR = 280,
+  G_JUMP_TABLE = 281,
+  G_DYN_STACKALLOC = 282,
+  G_STACKSAVE = 283,
+  G_STACKRESTORE = 284,
+  G_STRICT_FADD = 285,
+  G_STRICT_FSUB = 286,
+  G_STRICT_FMUL = 287,
+  G_STRICT_FDIV = 288,
+  G_STRICT_FREM = 289,
+  G_STRICT_FMA = 290,
+  G_STRICT_FSQRT = 291,
+  G_STRICT_FLDEXP = 292,
+  G_READ_REGISTER = 293,
+  G_WRITE_REGISTER = 294,
+  G_MEMCPY = 295,
+  G_MEMCPY_INLINE = 296,
+  G_MEMMOVE = 297,
+  G_MEMSET = 298,
+  G_BZERO = 299,
+  G_TRAP = 300,
+  G_DEBUGTRAP = 301,
+  G_UBSANTRAP = 302,
+  G_VECREDUCE_SEQ_FADD = 303,
+  G_VECREDUCE_SEQ_FMUL = 304,
+  G_VECREDUCE_FADD = 305,
+  G_VECREDUCE_FMUL = 306,
+  G_VECREDUCE_FMAX = 307,
+  G_VECREDUCE_FMIN = 308,
+  G_VECREDUCE_FMAXIMUM = 309,
+  G_VECREDUCE_FMINIMUM = 310,
+  G_VECREDUCE_ADD = 311,
+  G_VECREDUCE_MUL = 312,
+  G_VECREDUCE_AND = 313,
+  G_VECREDUCE_OR = 314,
+  G_VECREDUCE_XOR = 315,
+  G_VECREDUCE_SMAX = 316,
+  G_VECREDUCE_SMIN = 317,
+  G_VECREDUCE_UMAX = 318,
+  G_VECREDUCE_UMIN = 319,
+  G_SBFX = 320,
+  G_UBFX = 321,
+  ADDSri = 322,
+  ADDSrr = 323,
+  ADDSrsi = 324,
+  ADDSrsr = 325,
+  ADJCALLSTACKDOWN = 326,
+  ADJCALLSTACKUP = 327,
+  ASRi = 328,
+  ASRr = 329,
+  ASRs1 = 330,
+  B = 331,
+  BCCZi64 = 332,
+  BCCi64 = 333,
+  BLX_noip = 334,
+  BLX_pred_noip = 335,
+  BL_PUSHLR = 336,
+  BMOVPCB_CALL = 337,
+  BMOVPCRX_CALL = 338,
+  BR_JTadd = 339,
+  BR_JTm_i12 = 340,
+  BR_JTm_rs = 341,
+  BR_JTr = 342,
+  BX_CALL = 343,
+  CMP_SWAP_16 = 344,
+  CMP_SWAP_32 = 345,
+  CMP_SWAP_64 = 346,
+  CMP_SWAP_8 = 347,
+  CONSTPOOL_ENTRY = 348,
+  COPY_STRUCT_BYVAL_I32 = 349,
+  ITasm = 350,
+  Int_eh_sjlj_dispatchsetup = 351,
+  Int_eh_sjlj_longjmp = 352,
+  Int_eh_sjlj_setjmp = 353,
+  Int_eh_sjlj_setjmp_nofp = 354,
+  Int_eh_sjlj_setup_dispatch = 355,
+  JUMPTABLE_ADDRS = 356,
+  JUMPTABLE_INSTS = 357,
+  JUMPTABLE_TBB = 358,
+  JUMPTABLE_TBH = 359,
+  KCFI_CHECK_ARM = 360,
+  KCFI_CHECK_Thumb1 = 361,
+  KCFI_CHECK_Thumb2 = 362,
+  LDMIA_RET = 363,
+  LDRBT_POST = 364,
+  LDRConstPool = 365,
+  LDRHTii = 366,
+  LDRLIT_ga_abs = 367,
+  LDRLIT_ga_pcrel = 368,
+  LDRLIT_ga_pcrel_ldr = 369,
+  LDRSBTii = 370,
+  LDRSHTii = 371,
+  LDRT_POST = 372,
+  LEApcrel = 373,
+  LEApcrelJT = 374,
+  LOADDUAL = 375,
+  LSLi = 376,
+  LSLr = 377,
+  LSRi = 378,
+  LSRr = 379,
+  LSRs1 = 380,
+  MEMCPY = 381,
+  MLAv5 = 382,
+  MOVCCi = 383,
+  MOVCCi16 = 384,
+  MOVCCi32imm = 385,
+  MOVCCr = 386,
+  MOVCCsi = 387,
+  MOVCCsr = 388,
+  MOVPCRX = 389,
+  MOVTi16_ga_pcrel = 390,
+  MOV_ga_pcrel = 391,
+  MOV_ga_pcrel_ldr = 392,
+  MOVi16_ga_pcrel = 393,
+  MOVi32imm = 394,
+  MQPRCopy = 395,
+  MQQPRLoad = 396,
+  MQQPRStore = 397,
+  MQQQQPRLoad = 398,
+  MQQQQPRStore = 399,
+  MULv5 = 400,
+  MVE_MEMCPYLOOPINST = 401,
+  MVE_MEMSETLOOPINST = 402,
+  MVNCCi = 403,
+  PICADD = 404,
+  PICLDR = 405,
+  PICLDRB = 406,
+  PICLDRH = 407,
+  PICLDRSB = 408,
+  PICLDRSH = 409,
+  PICSTR = 410,
+  PICSTRB = 411,
+  PICSTRH = 412,
+  RORi = 413,
+  RORr = 414,
+  RRX = 415,
+  RRXi = 416,
+  RSBSri = 417,
+  RSBSrsi = 418,
+  RSBSrsr = 419,
+  SEH_EpilogEnd = 420,
+  SEH_EpilogStart = 421,
+  SEH_Nop = 422,
+  SEH_Nop_Ret = 423,
+  SEH_PrologEnd = 424,
+  SEH_SaveFRegs = 425,
+  SEH_SaveLR = 426,
+  SEH_SaveRegs = 427,
+  SEH_SaveRegs_Ret = 428,
+  SEH_SaveSP = 429,
+  SEH_StackAlloc = 430,
+  SMLALv5 = 431,
+  SMULLv5 = 432,
+  SPACE = 433,
+  STOREDUAL = 434,
+  STRBT_POST = 435,
+  STRBi_preidx = 436,
+  STRBr_preidx = 437,
+  STRH_preidx = 438,
+  STRT_POST = 439,
+  STRi_preidx = 440,
+  STRr_preidx = 441,
+  SUBS_PC_LR = 442,
+  SUBSri = 443,
+  SUBSrr = 444,
+  SUBSrsi = 445,
+  SUBSrsr = 446,
+  SpeculationBarrierISBDSBEndBB = 447,
+  SpeculationBarrierSBEndBB = 448,
+  TAILJMPd = 449,
+  TAILJMPr = 450,
+  TAILJMPr4 = 451,
+  TCRETURNdi = 452,
+  TCRETURNri = 453,
+  TCRETURNrinotr12 = 454,
+  TPsoft = 455,
+  UMLALv5 = 456,
+  UMULLv5 = 457,
+  VLD1LNdAsm_16 = 458,
+  VLD1LNdAsm_32 = 459,
+  VLD1LNdAsm_8 = 460,
+  VLD1LNdWB_fixed_Asm_16 = 461,
+  VLD1LNdWB_fixed_Asm_32 = 462,
+  VLD1LNdWB_fixed_Asm_8 = 463,
+  VLD1LNdWB_register_Asm_16 = 464,
+  VLD1LNdWB_register_Asm_32 = 465,
+  VLD1LNdWB_register_Asm_8 = 466,
+  VLD2LNdAsm_16 = 467,
+  VLD2LNdAsm_32 = 468,
+  VLD2LNdAsm_8 = 469,
+  VLD2LNdWB_fixed_Asm_16 = 470,
+  VLD2LNdWB_fixed_Asm_32 = 471,
+  VLD2LNdWB_fixed_Asm_8 = 472,
+  VLD2LNdWB_register_Asm_16 = 473,
+  VLD2LNdWB_register_Asm_32 = 474,
+  VLD2LNdWB_register_Asm_8 = 475,
+  VLD2LNqAsm_16 = 476,
+  VLD2LNqAsm_32 = 477,
+  VLD2LNqWB_fixed_Asm_16 = 478,
+  VLD2LNqWB_fixed_Asm_32 = 479,
+  VLD2LNqWB_register_Asm_16 = 480,
+  VLD2LNqWB_register_Asm_32 = 481,
+  VLD3DUPdAsm_16 = 482,
+  VLD3DUPdAsm_32 = 483,
+  VLD3DUPdAsm_8 = 484,
+  VLD3DUPdWB_fixed_Asm_16 = 485,
+  VLD3DUPdWB_fixed_Asm_32 = 486,
+  VLD3DUPdWB_fixed_Asm_8 = 487,
+  VLD3DUPdWB_register_Asm_16 = 488,
+  VLD3DUPdWB_register_Asm_32 = 489,
+  VLD3DUPdWB_register_Asm_8 = 490,
+  VLD3DUPqAsm_16 = 491,
+  VLD3DUPqAsm_32 = 492,
+  VLD3DUPqAsm_8 = 493,
+  VLD3DUPqWB_fixed_Asm_16 = 494,
+  VLD3DUPqWB_fixed_Asm_32 = 495,
+  VLD3DUPqWB_fixed_Asm_8 = 496,
+  VLD3DUPqWB_register_Asm_16 = 497,
+  VLD3DUPqWB_register_Asm_32 = 498,
+  VLD3DUPqWB_register_Asm_8 = 499,
+  VLD3LNdAsm_16 = 500,
+  VLD3LNdAsm_32 = 501,
+  VLD3LNdAsm_8 = 502,
+  VLD3LNdWB_fixed_Asm_16 = 503,
+  VLD3LNdWB_fixed_Asm_32 = 504,
+  VLD3LNdWB_fixed_Asm_8 = 505,
+  VLD3LNdWB_register_Asm_16 = 506,
+  VLD3LNdWB_register_Asm_32 = 507,
+  VLD3LNdWB_register_Asm_8 = 508,
+  VLD3LNqAsm_16 = 509,
+  VLD3LNqAsm_32 = 510,
+  VLD3LNqWB_fixed_Asm_16 = 511,
+  VLD3LNqWB_fixed_Asm_32 = 512,
+  VLD3LNqWB_register_Asm_16 = 513,
+  VLD3LNqWB_register_Asm_32 = 514,
+  VLD3dAsm_16 = 515,
+  VLD3dAsm_32 = 516,
+  VLD3dAsm_8 = 517,
+  VLD3dWB_fixed_Asm_16 = 518,
+  VLD3dWB_fixed_Asm_32 = 519,
+  VLD3dWB_fixed_Asm_8 = 520,
+  VLD3dWB_register_Asm_16 = 521,
+  VLD3dWB_register_Asm_32 = 522,
+  VLD3dWB_register_Asm_8 = 523,
+  VLD3qAsm_16 = 524,
+  VLD3qAsm_32 = 525,
+  VLD3qAsm_8 = 526,
+  VLD3qWB_fixed_Asm_16 = 527,
+  VLD3qWB_fixed_Asm_32 = 528,
+  VLD3qWB_fixed_Asm_8 = 529,
+  VLD3qWB_register_Asm_16 = 530,
+  VLD3qWB_register_Asm_32 = 531,
+  VLD3qWB_register_Asm_8 = 532,
+  VLD4DUPdAsm_16 = 533,
+  VLD4DUPdAsm_32 = 534,
+  VLD4DUPdAsm_8 = 535,
+  VLD4DUPdWB_fixed_Asm_16 = 536,
+  VLD4DUPdWB_fixed_Asm_32 = 537,
+  VLD4DUPdWB_fixed_Asm_8 = 538,
+  VLD4DUPdWB_register_Asm_16 = 539,
+  VLD4DUPdWB_register_Asm_32 = 540,
+  VLD4DUPdWB_register_Asm_8 = 541,
+  VLD4DUPqAsm_16 = 542,
+  VLD4DUPqAsm_32 = 543,
+  VLD4DUPqAsm_8 = 544,
+  VLD4DUPqWB_fixed_Asm_16 = 545,
+  VLD4DUPqWB_fixed_Asm_32 = 546,
+  VLD4DUPqWB_fixed_Asm_8 = 547,
+  VLD4DUPqWB_register_Asm_16 = 548,
+  VLD4DUPqWB_register_Asm_32 = 549,
+  VLD4DUPqWB_register_Asm_8 = 550,
+  VLD4LNdAsm_16 = 551,
+  VLD4LNdAsm_32 = 552,
+  VLD4LNdAsm_8 = 553,
+  VLD4LNdWB_fixed_Asm_16 = 554,
+  VLD4LNdWB_fixed_Asm_32 = 555,
+  VLD4LNdWB_fixed_Asm_8 = 556,
+  VLD4LNdWB_register_Asm_16 = 557,
+  VLD4LNdWB_register_Asm_32 = 558,
+  VLD4LNdWB_register_Asm_8 = 559,
+  VLD4LNqAsm_16 = 560,
+  VLD4LNqAsm_32 = 561,
+  VLD4LNqWB_fixed_Asm_16 = 562,
+  VLD4LNqWB_fixed_Asm_32 = 563,
+  VLD4LNqWB_register_Asm_16 = 564,
+  VLD4LNqWB_register_Asm_32 = 565,
+  VLD4dAsm_16 = 566,
+  VLD4dAsm_32 = 567,
+  VLD4dAsm_8 = 568,
+  VLD4dWB_fixed_Asm_16 = 569,
+  VLD4dWB_fixed_Asm_32 = 570,
+  VLD4dWB_fixed_Asm_8 = 571,
+  VLD4dWB_register_Asm_16 = 572,
+  VLD4dWB_register_Asm_32 = 573,
+  VLD4dWB_register_Asm_8 = 574,
+  VLD4qAsm_16 = 575,
+  VLD4qAsm_32 = 576,
+  VLD4qAsm_8 = 577,
+  VLD4qWB_fixed_Asm_16 = 578,
+  VLD4qWB_fixed_Asm_32 = 579,
+  VLD4qWB_fixed_Asm_8 = 580,
+  VLD4qWB_register_Asm_16 = 581,
+  VLD4qWB_register_Asm_32 = 582,
+  VLD4qWB_register_Asm_8 = 583,
+  VMOVD0 = 584,
+  VMOVDcc = 585,
+  VMOVHcc = 586,
+  VMOVQ0 = 587,
+  VMOVScc = 588,
+  VST1LNdAsm_16 = 589,
+  VST1LNdAsm_32 = 590,
+  VST1LNdAsm_8 = 591,
+  VST1LNdWB_fixed_Asm_16 = 592,
+  VST1LNdWB_fixed_Asm_32 = 593,
+  VST1LNdWB_fixed_Asm_8 = 594,
+  VST1LNdWB_register_Asm_16 = 595,
+  VST1LNdWB_register_Asm_32 = 596,
+  VST1LNdWB_register_Asm_8 = 597,
+  VST2LNdAsm_16 = 598,
+  VST2LNdAsm_32 = 599,
+  VST2LNdAsm_8 = 600,
+  VST2LNdWB_fixed_Asm_16 = 601,
+  VST2LNdWB_fixed_Asm_32 = 602,
+  VST2LNdWB_fixed_Asm_8 = 603,
+  VST2LNdWB_register_Asm_16 = 604,
+  VST2LNdWB_register_Asm_32 = 605,
+  VST2LNdWB_register_Asm_8 = 606,
+  VST2LNqAsm_16 = 607,
+  VST2LNqAsm_32 = 608,
+  VST2LNqWB_fixed_Asm_16 = 609,
+  VST2LNqWB_fixed_Asm_32 = 610,
+  VST2LNqWB_register_Asm_16 = 611,
+  VST2LNqWB_register_Asm_32 = 612,
+  VST3LNdAsm_16 = 613,
+  VST3LNdAsm_32 = 614,
+  VST3LNdAsm_8 = 615,
+  VST3LNdWB_fixed_Asm_16 = 616,
+  VST3LNdWB_fixed_Asm_32 = 617,
+  VST3LNdWB_fixed_Asm_8 = 618,
+  VST3LNdWB_register_Asm_16 = 619,
+  VST3LNdWB_register_Asm_32 = 620,
+  VST3LNdWB_register_Asm_8 = 621,
+  VST3LNqAsm_16 = 622,
+  VST3LNqAsm_32 = 623,
+  VST3LNqWB_fixed_Asm_16 = 624,
+  VST3LNqWB_fixed_Asm_32 = 625,
+  VST3LNqWB_register_Asm_16 = 626,
+  VST3LNqWB_register_Asm_32 = 627,
+  VST3dAsm_16 = 628,
+  VST3dAsm_32 = 629,
+  VST3dAsm_8 = 630,
+  VST3dWB_fixed_Asm_16 = 631,
+  VST3dWB_fixed_Asm_32 = 632,
+  VST3dWB_fixed_Asm_8 = 633,
+  VST3dWB_register_Asm_16 = 634,
+  VST3dWB_register_Asm_32 = 635,
+  VST3dWB_register_Asm_8 = 636,
+  VST3qAsm_16 = 637,
+  VST3qAsm_32 = 638,
+  VST3qAsm_8 = 639,
+  VST3qWB_fixed_Asm_16 = 640,
+  VST3qWB_fixed_Asm_32 = 641,
+  VST3qWB_fixed_Asm_8 = 642,
+  VST3qWB_register_Asm_16 = 643,
+  VST3qWB_register_Asm_32 = 644,
+  VST3qWB_register_Asm_8 = 645,
+  VST4LNdAsm_16 = 646,
+  VST4LNdAsm_32 = 647,
+  VST4LNdAsm_8 = 648,
+  VST4LNdWB_fixed_Asm_16 = 649,
+  VST4LNdWB_fixed_Asm_32 = 650,
+  VST4LNdWB_fixed_Asm_8 = 651,
+  VST4LNdWB_register_Asm_16 = 652,
+  VST4LNdWB_register_Asm_32 = 653,
+  VST4LNdWB_register_Asm_8 = 654,
+  VST4LNqAsm_16 = 655,
+  VST4LNqAsm_32 = 656,
+  VST4LNqWB_fixed_Asm_16 = 657,
+  VST4LNqWB_fixed_Asm_32 = 658,
+  VST4LNqWB_register_Asm_16 = 659,
+  VST4LNqWB_register_Asm_32 = 660,
+  VST4dAsm_16 = 661,
+  VST4dAsm_32 = 662,
+  VST4dAsm_8 = 663,
+  VST4dWB_fixed_Asm_16 = 664,
+  VST4dWB_fixed_Asm_32 = 665,
+  VST4dWB_fixed_Asm_8 = 666,
+  VST4dWB_register_Asm_16 = 667,
+  VST4dWB_register_Asm_32 = 668,
+  VST4dWB_register_Asm_8 = 669,
+  VST4qAsm_16 = 670,
+  VST4qAsm_32 = 671,
+  VST4qAsm_8 = 672,
+  VST4qWB_fixed_Asm_16 = 673,
+  VST4qWB_fixed_Asm_32 = 674,
+  VST4qWB_fixed_Asm_8 = 675,
+  VST4qWB_register_Asm_16 = 676,
+  VST4qWB_register_Asm_32 = 677,
+  VST4qWB_register_Asm_8 = 678,
+  WIN__CHKSTK = 679,
+  WIN__DBZCHK = 680,
+  t2ADDSri = 681,
+  t2ADDSrr = 682,
+  t2ADDSrs = 683,
+  t2BF_LabelPseudo = 684,
+  t2BR_JT = 685,
+  t2CALL_BTI = 686,
+  t2DoLoopStart = 687,
+  t2DoLoopStartTP = 688,
+  t2LDMIA_RET = 689,
+  t2LDRB_OFFSET_imm = 690,
+  t2LDRB_POST_imm = 691,
+  t2LDRB_PRE_imm = 692,
+  t2LDRBpcrel = 693,
+  t2LDRConstPool = 694,
+  t2LDRH_OFFSET_imm = 695,
+  t2LDRH_POST_imm = 696,
+  t2LDRH_PRE_imm = 697,
+  t2LDRHpcrel = 698,
+  t2LDRLIT_ga_pcrel = 699,
+  t2LDRSB_OFFSET_imm = 700,
+  t2LDRSB_POST_imm = 701,
+  t2LDRSB_PRE_imm = 702,
+  t2LDRSBpcrel = 703,
+  t2LDRSH_OFFSET_imm = 704,
+  t2LDRSH_POST_imm = 705,
+  t2LDRSH_PRE_imm = 706,
+  t2LDRSHpcrel = 707,
+  t2LDR_POST_imm = 708,
+  t2LDR_PRE_imm = 709,
+  t2LDRpci_pic = 710,
+  t2LDRpcrel = 711,
+  t2LEApcrel = 712,
+  t2LEApcrelJT = 713,
+  t2LoopDec = 714,
+  t2LoopEnd = 715,
+  t2LoopEndDec = 716,
+  t2MOVCCasr = 717,
+  t2MOVCCi = 718,
+  t2MOVCCi16 = 719,
+  t2MOVCCi32imm = 720,
+  t2MOVCClsl = 721,
+  t2MOVCClsr = 722,
+  t2MOVCCr = 723,
+  t2MOVCCror = 724,
+  t2MOVSsi = 725,
+  t2MOVSsr = 726,
+  t2MOVTi16_ga_pcrel = 727,
+  t2MOV_ga_pcrel = 728,
+  t2MOVi16_ga_pcrel = 729,
+  t2MOVi32imm = 730,
+  t2MOVsi = 731,
+  t2MOVsr = 732,
+  t2MVNCCi = 733,
+  t2RSBSri = 734,
+  t2RSBSrs = 735,
+  t2STRB_OFFSET_imm = 736,
+  t2STRB_POST_imm = 737,
+  t2STRB_PRE_imm = 738,
+  t2STRB_preidx = 739,
+  t2STRH_OFFSET_imm = 740,
+  t2STRH_POST_imm = 741,
+  t2STRH_PRE_imm = 742,
+  t2STRH_preidx = 743,
+  t2STR_POST_imm = 744,
+  t2STR_PRE_imm = 745,
+  t2STR_preidx = 746,
+  t2SUBSri = 747,
+  t2SUBSrr = 748,
+  t2SUBSrs = 749,
+  t2SpeculationBarrierISBDSBEndBB = 750,
+  t2SpeculationBarrierSBEndBB = 751,
+  t2TBB_JT = 752,
+  t2TBH_JT = 753,
+  t2WhileLoopSetup = 754,
+  t2WhileLoopStart = 755,
+  t2WhileLoopStartLR = 756,
+  t2WhileLoopStartTP = 757,
+  tADCS = 758,
+  tADDSi3 = 759,
+  tADDSi8 = 760,
+  tADDSrr = 761,
+  tADDframe = 762,
+  tADJCALLSTACKDOWN = 763,
+  tADJCALLSTACKUP = 764,
+  tBLXNS_CALL = 765,
+  tBLXr_noip = 766,
+  tBL_PUSHLR = 767,
+  tBRIND = 768,
+  tBR_JTr = 769,
+  tBXNS_RET = 770,
+  tBX_CALL = 771,
+  tBX_RET = 772,
+  tBX_RET_vararg = 773,
+  tBfar = 774,
+  tCMP_SWAP_16 = 775,
+  tCMP_SWAP_32 = 776,
+  tCMP_SWAP_8 = 777,
+  tLDMIA_UPD = 778,
+  tLDRConstPool = 779,
+  tLDRLIT_ga_abs = 780,
+  tLDRLIT_ga_pcrel = 781,
+  tLDR_postidx = 782,
+  tLDRpci_pic = 783,
+  tLEApcrel = 784,
+  tLEApcrelJT = 785,
+  tLSLSri = 786,
+  tMOVCCr_pseudo = 787,
+  tMOVi32imm = 788,
+  tPOP_RET = 789,
+  tRSBS = 790,
+  tSBCS = 791,
+  tSUBSi3 = 792,
+  tSUBSi8 = 793,
+  tSUBSrr = 794,
+  tTAILJMPd = 795,
+  tTAILJMPdND = 796,
+  tTAILJMPr = 797,
+  tTBB_JT = 798,
+  tTBH_JT = 799,
+  tTPsoft = 800,
+  ADCri = 801,
+  ADCrr = 802,
+  ADCrsi = 803,
+  ADCrsr = 804,
+  ADDri = 805,
+  ADDrr = 806,
+  ADDrsi = 807,
+  ADDrsr = 808,
+  ADR = 809,
+  AESD = 810,
+  AESE = 811,
+  AESIMC = 812,
+  AESMC = 813,
+  ANDri = 814,
+  ANDrr = 815,
+  ANDrsi = 816,
+  ANDrsr = 817,
+  BF16VDOTI_VDOTD = 818,
+  BF16VDOTI_VDOTQ = 819,
+  BF16VDOTS_VDOTD = 820,
+  BF16VDOTS_VDOTQ = 821,
+  BF16_VCVT = 822,
+  BF16_VCVTB = 823,
+  BF16_VCVTT = 824,
+  BFC = 825,
+  BFI = 826,
+  BICri = 827,
+  BICrr = 828,
+  BICrsi = 829,
+  BICrsr = 830,
+  BKPT = 831,
+  BL = 832,
+  BLX = 833,
+  BLX_pred = 834,
+  BLXi = 835,
+  BL_pred = 836,
+  BX = 837,
+  BXJ = 838,
+  BX_RET = 839,
+  BX_pred = 840,
+  Bcc = 841,
+  CDE_CX1 = 842,
+  CDE_CX1A = 843,
+  CDE_CX1D = 844,
+  CDE_CX1DA = 845,
+  CDE_CX2 = 846,
+  CDE_CX2A = 847,
+  CDE_CX2D = 848,
+  CDE_CX2DA = 849,
+  CDE_CX3 = 850,
+  CDE_CX3A = 851,
+  CDE_CX3D = 852,
+  CDE_CX3DA = 853,
+  CDE_VCX1A_fpdp = 854,
+  CDE_VCX1A_fpsp = 855,
+  CDE_VCX1A_vec = 856,
+  CDE_VCX1_fpdp = 857,
+  CDE_VCX1_fpsp = 858,
+  CDE_VCX1_vec = 859,
+  CDE_VCX2A_fpdp = 860,
+  CDE_VCX2A_fpsp = 861,
+  CDE_VCX2A_vec = 862,
+  CDE_VCX2_fpdp = 863,
+  CDE_VCX2_fpsp = 864,
+  CDE_VCX2_vec = 865,
+  CDE_VCX3A_fpdp = 866,
+  CDE_VCX3A_fpsp = 867,
+  CDE_VCX3A_vec = 868,
+  CDE_VCX3_fpdp = 869,
+  CDE_VCX3_fpsp = 870,
+  CDE_VCX3_vec = 871,
+  CDP = 872,
+  CDP2 = 873,
+  CLREX = 874,
+  CLZ = 875,
+  CMNri = 876,
+  CMNzrr = 877,
+  CMNzrsi = 878,
+  CMNzrsr = 879,
+  CMPri = 880,
+  CMPrr = 881,
+  CMPrsi = 882,
+  CMPrsr = 883,
+  CPS1p = 884,
+  CPS2p = 885,
+  CPS3p = 886,
+  CRC32B = 887,
+  CRC32CB = 888,
+  CRC32CH = 889,
+  CRC32CW = 890,
+  CRC32H = 891,
+  CRC32W = 892,
+  DBG = 893,
+  DMB = 894,
+  DSB = 895,
+  EORri = 896,
+  EORrr = 897,
+  EORrsi = 898,
+  EORrsr = 899,
+  ERET = 900,
+  FCONSTD = 901,
+  FCONSTH = 902,
+  FCONSTS = 903,
+  FLDMXDB_UPD = 904,
+  FLDMXIA = 905,
+  FLDMXIA_UPD = 906,
+  FMSTAT = 907,
+  FSTMXDB_UPD = 908,
+  FSTMXIA = 909,
+  FSTMXIA_UPD = 910,
+  HINT = 911,
+  HLT = 912,
+  HVC = 913,
+  ISB = 914,
+  LDA = 915,
+  LDAB = 916,
+  LDAEX = 917,
+  LDAEXB = 918,
+  LDAEXD = 919,
+  LDAEXH = 920,
+  LDAH = 921,
+  LDC2L_OFFSET = 922,
+  LDC2L_OPTION = 923,
+  LDC2L_POST = 924,
+  LDC2L_PRE = 925,
+  LDC2_OFFSET = 926,
+  LDC2_OPTION = 927,
+  LDC2_POST = 928,
+  LDC2_PRE = 929,
+  LDCL_OFFSET = 930,
+  LDCL_OPTION = 931,
+  LDCL_POST = 932,
+  LDCL_PRE = 933,
+  LDC_OFFSET = 934,
+  LDC_OPTION = 935,
+  LDC_POST = 936,
+  LDC_PRE = 937,
+  LDMDA = 938,
+  LDMDA_UPD = 939,
+  LDMDB = 940,
+  LDMDB_UPD = 941,
+  LDMIA = 942,
+  LDMIA_UPD = 943,
+  LDMIB = 944,
+  LDMIB_UPD = 945,
+  LDRBT_POST_IMM = 946,
+  LDRBT_POST_REG = 947,
+  LDRB_POST_IMM = 948,
+  LDRB_POST_REG = 949,
+  LDRB_PRE_IMM = 950,
+  LDRB_PRE_REG = 951,
+  LDRBi12 = 952,
+  LDRBrs = 953,
+  LDRD = 954,
+  LDRD_POST = 955,
+  LDRD_PRE = 956,
+  LDREX = 957,
+  LDREXB = 958,
+  LDREXD = 959,
+  LDREXH = 960,
+  LDRH = 961,
+  LDRHTi = 962,
+  LDRHTr = 963,
+  LDRH_POST = 964,
+  LDRH_PRE = 965,
+  LDRSB = 966,
+  LDRSBTi = 967,
+  LDRSBTr = 968,
+  LDRSB_POST = 969,
+  LDRSB_PRE = 970,
+  LDRSH = 971,
+  LDRSHTi = 972,
+  LDRSHTr = 973,
+  LDRSH_POST = 974,
+  LDRSH_PRE = 975,
+  LDRT_POST_IMM = 976,
+  LDRT_POST_REG = 977,
+  LDR_POST_IMM = 978,
+  LDR_POST_REG = 979,
+  LDR_PRE_IMM = 980,
+  LDR_PRE_REG = 981,
+  LDRcp = 982,
+  LDRi12 = 983,
+  LDRrs = 984,
+  MCR = 985,
+  MCR2 = 986,
+  MCRR = 987,
+  MCRR2 = 988,
+  MLA = 989,
+  MLS = 990,
+  MOVPCLR = 991,
+  MOVTi16 = 992,
+  MOVi = 993,
+  MOVi16 = 994,
+  MOVr = 995,
+  MOVr_TC = 996,
+  MOVsi = 997,
+  MOVsr = 998,
+  MRC = 999,
+  MRC2 = 1000,
+  MRRC = 1001,
+  MRRC2 = 1002,
+  MRS = 1003,
+  MRSbanked = 1004,
+  MRSsys = 1005,
+  MSR = 1006,
+  MSRbanked = 1007,
+  MSRi = 1008,
+  MUL = 1009,
+  MVE_ASRLi = 1010,
+  MVE_ASRLr = 1011,
+  MVE_DLSTP_16 = 1012,
+  MVE_DLSTP_32 = 1013,
+  MVE_DLSTP_64 = 1014,
+  MVE_DLSTP_8 = 1015,
+  MVE_LCTP = 1016,
+  MVE_LETP = 1017,
+  MVE_LSLLi = 1018,
+  MVE_LSLLr = 1019,
+  MVE_LSRL = 1020,
+  MVE_SQRSHR = 1021,
+  MVE_SQRSHRL = 1022,
+  MVE_SQSHL = 1023,
+  MVE_SQSHLL = 1024,
+  MVE_SRSHR = 1025,
+  MVE_SRSHRL = 1026,
+  MVE_UQRSHL = 1027,
+  MVE_UQRSHLL = 1028,
+  MVE_UQSHL = 1029,
+  MVE_UQSHLL = 1030,
+  MVE_URSHR = 1031,
+  MVE_URSHRL = 1032,
+  MVE_VABAVs16 = 1033,
+  MVE_VABAVs32 = 1034,
+  MVE_VABAVs8 = 1035,
+  MVE_VABAVu16 = 1036,
+  MVE_VABAVu32 = 1037,
+  MVE_VABAVu8 = 1038,
+  MVE_VABDf16 = 1039,
+  MVE_VABDf32 = 1040,
+  MVE_VABDs16 = 1041,
+  MVE_VABDs32 = 1042,
+  MVE_VABDs8 = 1043,
+  MVE_VABDu16 = 1044,
+  MVE_VABDu32 = 1045,
+  MVE_VABDu8 = 1046,
+  MVE_VABSf16 = 1047,
+  MVE_VABSf32 = 1048,
+  MVE_VABSs16 = 1049,
+  MVE_VABSs32 = 1050,
+  MVE_VABSs8 = 1051,
+  MVE_VADC = 1052,
+  MVE_VADCI = 1053,
+  MVE_VADDLVs32acc = 1054,
+  MVE_VADDLVs32no_acc = 1055,
+  MVE_VADDLVu32acc = 1056,
+  MVE_VADDLVu32no_acc = 1057,
+  MVE_VADDVs16acc = 1058,
+  MVE_VADDVs16no_acc = 1059,
+  MVE_VADDVs32acc = 1060,
+  MVE_VADDVs32no_acc = 1061,
+  MVE_VADDVs8acc = 1062,
+  MVE_VADDVs8no_acc = 1063,
+  MVE_VADDVu16acc = 1064,
+  MVE_VADDVu16no_acc = 1065,
+  MVE_VADDVu32acc = 1066,
+  MVE_VADDVu32no_acc = 1067,
+  MVE_VADDVu8acc = 1068,
+  MVE_VADDVu8no_acc = 1069,
+  MVE_VADD_qr_f16 = 1070,
+  MVE_VADD_qr_f32 = 1071,
+  MVE_VADD_qr_i16 = 1072,
+  MVE_VADD_qr_i32 = 1073,
+  MVE_VADD_qr_i8 = 1074,
+  MVE_VADDf16 = 1075,
+  MVE_VADDf32 = 1076,
+  MVE_VADDi16 = 1077,
+  MVE_VADDi32 = 1078,
+  MVE_VADDi8 = 1079,
+  MVE_VAND = 1080,
+  MVE_VBIC = 1081,
+  MVE_VBICimmi16 = 1082,
+  MVE_VBICimmi32 = 1083,
+  MVE_VBRSR16 = 1084,
+  MVE_VBRSR32 = 1085,
+  MVE_VBRSR8 = 1086,
+  MVE_VCADDf16 = 1087,
+  MVE_VCADDf32 = 1088,
+  MVE_VCADDi16 = 1089,
+  MVE_VCADDi32 = 1090,
+  MVE_VCADDi8 = 1091,
+  MVE_VCLSs16 = 1092,
+  MVE_VCLSs32 = 1093,
+  MVE_VCLSs8 = 1094,
+  MVE_VCLZs16 = 1095,
+  MVE_VCLZs32 = 1096,
+  MVE_VCLZs8 = 1097,
+  MVE_VCMLAf16 = 1098,
+  MVE_VCMLAf32 = 1099,
+  MVE_VCMPf16 = 1100,
+  MVE_VCMPf16r = 1101,
+  MVE_VCMPf32 = 1102,
+  MVE_VCMPf32r = 1103,
+  MVE_VCMPi16 = 1104,
+  MVE_VCMPi16r = 1105,
+  MVE_VCMPi32 = 1106,
+  MVE_VCMPi32r = 1107,
+  MVE_VCMPi8 = 1108,
+  MVE_VCMPi8r = 1109,
+  MVE_VCMPs16 = 1110,
+  MVE_VCMPs16r = 1111,
+  MVE_VCMPs32 = 1112,
+  MVE_VCMPs32r = 1113,
+  MVE_VCMPs8 = 1114,
+  MVE_VCMPs8r = 1115,
+  MVE_VCMPu16 = 1116,
+  MVE_VCMPu16r = 1117,
+  MVE_VCMPu32 = 1118,
+  MVE_VCMPu32r = 1119,
+  MVE_VCMPu8 = 1120,
+  MVE_VCMPu8r = 1121,
+  MVE_VCMULf16 = 1122,
+  MVE_VCMULf32 = 1123,
+  MVE_VCTP16 = 1124,
+  MVE_VCTP32 = 1125,
+  MVE_VCTP64 = 1126,
+  MVE_VCTP8 = 1127,
+  MVE_VCVTf16f32bh = 1128,
+  MVE_VCVTf16f32th = 1129,
+  MVE_VCVTf16s16_fix = 1130,
+  MVE_VCVTf16s16n = 1131,
+  MVE_VCVTf16u16_fix = 1132,
+  MVE_VCVTf16u16n = 1133,
+  MVE_VCVTf32f16bh = 1134,
+  MVE_VCVTf32f16th = 1135,
+  MVE_VCVTf32s32_fix = 1136,
+  MVE_VCVTf32s32n = 1137,
+  MVE_VCVTf32u32_fix = 1138,
+  MVE_VCVTf32u32n = 1139,
+  MVE_VCVTs16f16_fix = 1140,
+  MVE_VCVTs16f16a = 1141,
+  MVE_VCVTs16f16m = 1142,
+  MVE_VCVTs16f16n = 1143,
+  MVE_VCVTs16f16p = 1144,
+  MVE_VCVTs16f16z = 1145,
+  MVE_VCVTs32f32_fix = 1146,
+  MVE_VCVTs32f32a = 1147,
+  MVE_VCVTs32f32m = 1148,
+  MVE_VCVTs32f32n = 1149,
+  MVE_VCVTs32f32p = 1150,
+  MVE_VCVTs32f32z = 1151,
+  MVE_VCVTu16f16_fix = 1152,
+  MVE_VCVTu16f16a = 1153,
+  MVE_VCVTu16f16m = 1154,
+  MVE_VCVTu16f16n = 1155,
+  MVE_VCVTu16f16p = 1156,
+  MVE_VCVTu16f16z = 1157,
+  MVE_VCVTu32f32_fix = 1158,
+  MVE_VCVTu32f32a = 1159,
+  MVE_VCVTu32f32m = 1160,
+  MVE_VCVTu32f32n = 1161,
+  MVE_VCVTu32f32p = 1162,
+  MVE_VCVTu32f32z = 1163,
+  MVE_VDDUPu16 = 1164,
+  MVE_VDDUPu32 = 1165,
+  MVE_VDDUPu8 = 1166,
+  MVE_VDUP16 = 1167,
+  MVE_VDUP32 = 1168,
+  MVE_VDUP8 = 1169,
+  MVE_VDWDUPu16 = 1170,
+  MVE_VDWDUPu32 = 1171,
+  MVE_VDWDUPu8 = 1172,
+  MVE_VEOR = 1173,
+  MVE_VFMA_qr_Sf16 = 1174,
+  MVE_VFMA_qr_Sf32 = 1175,
+  MVE_VFMA_qr_f16 = 1176,
+  MVE_VFMA_qr_f32 = 1177,
+  MVE_VFMAf16 = 1178,
+  MVE_VFMAf32 = 1179,
+  MVE_VFMSf16 = 1180,
+  MVE_VFMSf32 = 1181,
+  MVE_VHADD_qr_s16 = 1182,
+  MVE_VHADD_qr_s32 = 1183,
+  MVE_VHADD_qr_s8 = 1184,
+  MVE_VHADD_qr_u16 = 1185,
+  MVE_VHADD_qr_u32 = 1186,
+  MVE_VHADD_qr_u8 = 1187,
+  MVE_VHADDs16 = 1188,
+  MVE_VHADDs32 = 1189,
+  MVE_VHADDs8 = 1190,
+  MVE_VHADDu16 = 1191,
+  MVE_VHADDu32 = 1192,
+  MVE_VHADDu8 = 1193,
+  MVE_VHCADDs16 = 1194,
+  MVE_VHCADDs32 = 1195,
+  MVE_VHCADDs8 = 1196,
+  MVE_VHSUB_qr_s16 = 1197,
+  MVE_VHSUB_qr_s32 = 1198,
+  MVE_VHSUB_qr_s8 = 1199,
+  MVE_VHSUB_qr_u16 = 1200,
+  MVE_VHSUB_qr_u32 = 1201,
+  MVE_VHSUB_qr_u8 = 1202,
+  MVE_VHSUBs16 = 1203,
+  MVE_VHSUBs32 = 1204,
+  MVE_VHSUBs8 = 1205,
+  MVE_VHSUBu16 = 1206,
+  MVE_VHSUBu32 = 1207,
+  MVE_VHSUBu8 = 1208,
+  MVE_VIDUPu16 = 1209,
+  MVE_VIDUPu32 = 1210,
+  MVE_VIDUPu8 = 1211,
+  MVE_VIWDUPu16 = 1212,
+  MVE_VIWDUPu32 = 1213,
+  MVE_VIWDUPu8 = 1214,
+  MVE_VLD20_16 = 1215,
+  MVE_VLD20_16_wb = 1216,
+  MVE_VLD20_32 = 1217,
+  MVE_VLD20_32_wb = 1218,
+  MVE_VLD20_8 = 1219,
+  MVE_VLD20_8_wb = 1220,
+  MVE_VLD21_16 = 1221,
+  MVE_VLD21_16_wb = 1222,
+  MVE_VLD21_32 = 1223,
+  MVE_VLD21_32_wb = 1224,
+  MVE_VLD21_8 = 1225,
+  MVE_VLD21_8_wb = 1226,
+  MVE_VLD40_16 = 1227,
+  MVE_VLD40_16_wb = 1228,
+  MVE_VLD40_32 = 1229,
+  MVE_VLD40_32_wb = 1230,
+  MVE_VLD40_8 = 1231,
+  MVE_VLD40_8_wb = 1232,
+  MVE_VLD41_16 = 1233,
+  MVE_VLD41_16_wb = 1234,
+  MVE_VLD41_32 = 1235,
+  MVE_VLD41_32_wb = 1236,
+  MVE_VLD41_8 = 1237,
+  MVE_VLD41_8_wb = 1238,
+  MVE_VLD42_16 = 1239,
+  MVE_VLD42_16_wb = 1240,
+  MVE_VLD42_32 = 1241,
+  MVE_VLD42_32_wb = 1242,
+  MVE_VLD42_8 = 1243,
+  MVE_VLD42_8_wb = 1244,
+  MVE_VLD43_16 = 1245,
+  MVE_VLD43_16_wb = 1246,
+  MVE_VLD43_32 = 1247,
+  MVE_VLD43_32_wb = 1248,
+  MVE_VLD43_8 = 1249,
+  MVE_VLD43_8_wb = 1250,
+  MVE_VLDRBS16 = 1251,
+  MVE_VLDRBS16_post = 1252,
+  MVE_VLDRBS16_pre = 1253,
+  MVE_VLDRBS16_rq = 1254,
+  MVE_VLDRBS32 = 1255,
+  MVE_VLDRBS32_post = 1256,
+  MVE_VLDRBS32_pre = 1257,
+  MVE_VLDRBS32_rq = 1258,
+  MVE_VLDRBU16 = 1259,
+  MVE_VLDRBU16_post = 1260,
+  MVE_VLDRBU16_pre = 1261,
+  MVE_VLDRBU16_rq = 1262,
+  MVE_VLDRBU32 = 1263,
+  MVE_VLDRBU32_post = 1264,
+  MVE_VLDRBU32_pre = 1265,
+  MVE_VLDRBU32_rq = 1266,
+  MVE_VLDRBU8 = 1267,
+  MVE_VLDRBU8_post = 1268,
+  MVE_VLDRBU8_pre = 1269,
+  MVE_VLDRBU8_rq = 1270,
+  MVE_VLDRDU64_qi = 1271,
+  MVE_VLDRDU64_qi_pre = 1272,
+  MVE_VLDRDU64_rq = 1273,
+  MVE_VLDRDU64_rq_u = 1274,
+  MVE_VLDRHS32 = 1275,
+  MVE_VLDRHS32_post = 1276,
+  MVE_VLDRHS32_pre = 1277,
+  MVE_VLDRHS32_rq = 1278,
+  MVE_VLDRHS32_rq_u = 1279,
+  MVE_VLDRHU16 = 1280,
+  MVE_VLDRHU16_post = 1281,
+  MVE_VLDRHU16_pre = 1282,
+  MVE_VLDRHU16_rq = 1283,
+  MVE_VLDRHU16_rq_u = 1284,
+  MVE_VLDRHU32 = 1285,
+  MVE_VLDRHU32_post = 1286,
+  MVE_VLDRHU32_pre = 1287,
+  MVE_VLDRHU32_rq = 1288,
+  MVE_VLDRHU32_rq_u = 1289,
+  MVE_VLDRWU32 = 1290,
+  MVE_VLDRWU32_post = 1291,
+  MVE_VLDRWU32_pre = 1292,
+  MVE_VLDRWU32_qi = 1293,
+  MVE_VLDRWU32_qi_pre = 1294,
+  MVE_VLDRWU32_rq = 1295,
+  MVE_VLDRWU32_rq_u = 1296,
+  MVE_VMAXAVs16 = 1297,
+  MVE_VMAXAVs32 = 1298,
+  MVE_VMAXAVs8 = 1299,
+  MVE_VMAXAs16 = 1300,
+  MVE_VMAXAs32 = 1301,
+  MVE_VMAXAs8 = 1302,
+  MVE_VMAXNMAVf16 = 1303,
+  MVE_VMAXNMAVf32 = 1304,
+  MVE_VMAXNMAf16 = 1305,
+  MVE_VMAXNMAf32 = 1306,
+  MVE_VMAXNMVf16 = 1307,
+  MVE_VMAXNMVf32 = 1308,
+  MVE_VMAXNMf16 = 1309,
+  MVE_VMAXNMf32 = 1310,
+  MVE_VMAXVs16 = 1311,
+  MVE_VMAXVs32 = 1312,
+  MVE_VMAXVs8 = 1313,
+  MVE_VMAXVu16 = 1314,
+  MVE_VMAXVu32 = 1315,
+  MVE_VMAXVu8 = 1316,
+  MVE_VMAXs16 = 1317,
+  MVE_VMAXs32 = 1318,
+  MVE_VMAXs8 = 1319,
+  MVE_VMAXu16 = 1320,
+  MVE_VMAXu32 = 1321,
+  MVE_VMAXu8 = 1322,
+  MVE_VMINAVs16 = 1323,
+  MVE_VMINAVs32 = 1324,
+  MVE_VMINAVs8 = 1325,
+  MVE_VMINAs16 = 1326,
+  MVE_VMINAs32 = 1327,
+  MVE_VMINAs8 = 1328,
+  MVE_VMINNMAVf16 = 1329,
+  MVE_VMINNMAVf32 = 1330,
+  MVE_VMINNMAf16 = 1331,
+  MVE_VMINNMAf32 = 1332,
+  MVE_VMINNMVf16 = 1333,
+  MVE_VMINNMVf32 = 1334,
+  MVE_VMINNMf16 = 1335,
+  MVE_VMINNMf32 = 1336,
+  MVE_VMINVs16 = 1337,
+  MVE_VMINVs32 = 1338,
+  MVE_VMINVs8 = 1339,
+  MVE_VMINVu16 = 1340,
+  MVE_VMINVu32 = 1341,
+  MVE_VMINVu8 = 1342,
+  MVE_VMINs16 = 1343,
+  MVE_VMINs32 = 1344,
+  MVE_VMINs8 = 1345,
+  MVE_VMINu16 = 1346,
+  MVE_VMINu32 = 1347,
+  MVE_VMINu8 = 1348,
+  MVE_VMLADAVas16 = 1349,
+  MVE_VMLADAVas32 = 1350,
+  MVE_VMLADAVas8 = 1351,
+  MVE_VMLADAVau16 = 1352,
+  MVE_VMLADAVau32 = 1353,
+  MVE_VMLADAVau8 = 1354,
+  MVE_VMLADAVaxs16 = 1355,
+  MVE_VMLADAVaxs32 = 1356,
+  MVE_VMLADAVaxs8 = 1357,
+  MVE_VMLADAVs16 = 1358,
+  MVE_VMLADAVs32 = 1359,
+  MVE_VMLADAVs8 = 1360,
+  MVE_VMLADAVu16 = 1361,
+  MVE_VMLADAVu32 = 1362,
+  MVE_VMLADAVu8 = 1363,
+  MVE_VMLADAVxs16 = 1364,
+  MVE_VMLADAVxs32 = 1365,
+  MVE_VMLADAVxs8 = 1366,
+  MVE_VMLALDAVas16 = 1367,
+  MVE_VMLALDAVas32 = 1368,
+  MVE_VMLALDAVau16 = 1369,
+  MVE_VMLALDAVau32 = 1370,
+  MVE_VMLALDAVaxs16 = 1371,
+  MVE_VMLALDAVaxs32 = 1372,
+  MVE_VMLALDAVs16 = 1373,
+  MVE_VMLALDAVs32 = 1374,
+  MVE_VMLALDAVu16 = 1375,
+  MVE_VMLALDAVu32 = 1376,
+  MVE_VMLALDAVxs16 = 1377,
+  MVE_VMLALDAVxs32 = 1378,
+  MVE_VMLAS_qr_i16 = 1379,
+  MVE_VMLAS_qr_i32 = 1380,
+  MVE_VMLAS_qr_i8 = 1381,
+  MVE_VMLA_qr_i16 = 1382,
+  MVE_VMLA_qr_i32 = 1383,
+  MVE_VMLA_qr_i8 = 1384,
+  MVE_VMLSDAVas16 = 1385,
+  MVE_VMLSDAVas32 = 1386,
+  MVE_VMLSDAVas8 = 1387,
+  MVE_VMLSDAVaxs16 = 1388,
+  MVE_VMLSDAVaxs32 = 1389,
+  MVE_VMLSDAVaxs8 = 1390,
+  MVE_VMLSDAVs16 = 1391,
+  MVE_VMLSDAVs32 = 1392,
+  MVE_VMLSDAVs8 = 1393,
+  MVE_VMLSDAVxs16 = 1394,
+  MVE_VMLSDAVxs32 = 1395,
+  MVE_VMLSDAVxs8 = 1396,
+  MVE_VMLSLDAVas16 = 1397,
+  MVE_VMLSLDAVas32 = 1398,
+  MVE_VMLSLDAVaxs16 = 1399,
+  MVE_VMLSLDAVaxs32 = 1400,
+  MVE_VMLSLDAVs16 = 1401,
+  MVE_VMLSLDAVs32 = 1402,
+  MVE_VMLSLDAVxs16 = 1403,
+  MVE_VMLSLDAVxs32 = 1404,
+  MVE_VMOVLs16bh = 1405,
+  MVE_VMOVLs16th = 1406,
+  MVE_VMOVLs8bh = 1407,
+  MVE_VMOVLs8th = 1408,
+  MVE_VMOVLu16bh = 1409,
+  MVE_VMOVLu16th = 1410,
+  MVE_VMOVLu8bh = 1411,
+  MVE_VMOVLu8th = 1412,
+  MVE_VMOVNi16bh = 1413,
+  MVE_VMOVNi16th = 1414,
+  MVE_VMOVNi32bh = 1415,
+  MVE_VMOVNi32th = 1416,
+  MVE_VMOV_from_lane_32 = 1417,
+  MVE_VMOV_from_lane_s16 = 1418,
+  MVE_VMOV_from_lane_s8 = 1419,
+  MVE_VMOV_from_lane_u16 = 1420,
+  MVE_VMOV_from_lane_u8 = 1421,
+  MVE_VMOV_q_rr = 1422,
+  MVE_VMOV_rr_q = 1423,
+  MVE_VMOV_to_lane_16 = 1424,
+  MVE_VMOV_to_lane_32 = 1425,
+  MVE_VMOV_to_lane_8 = 1426,
+  MVE_VMOVimmf32 = 1427,
+  MVE_VMOVimmi16 = 1428,
+  MVE_VMOVimmi32 = 1429,
+  MVE_VMOVimmi64 = 1430,
+  MVE_VMOVimmi8 = 1431,
+  MVE_VMULHs16 = 1432,
+  MVE_VMULHs32 = 1433,
+  MVE_VMULHs8 = 1434,
+  MVE_VMULHu16 = 1435,
+  MVE_VMULHu32 = 1436,
+  MVE_VMULHu8 = 1437,
+  MVE_VMULLBp16 = 1438,
+  MVE_VMULLBp8 = 1439,
+  MVE_VMULLBs16 = 1440,
+  MVE_VMULLBs32 = 1441,
+  MVE_VMULLBs8 = 1442,
+  MVE_VMULLBu16 = 1443,
+  MVE_VMULLBu32 = 1444,
+  MVE_VMULLBu8 = 1445,
+  MVE_VMULLTp16 = 1446,
+  MVE_VMULLTp8 = 1447,
+  MVE_VMULLTs16 = 1448,
+  MVE_VMULLTs32 = 1449,
+  MVE_VMULLTs8 = 1450,
+  MVE_VMULLTu16 = 1451,
+  MVE_VMULLTu32 = 1452,
+  MVE_VMULLTu8 = 1453,
+  MVE_VMUL_qr_f16 = 1454,
+  MVE_VMUL_qr_f32 = 1455,
+  MVE_VMUL_qr_i16 = 1456,
+  MVE_VMUL_qr_i32 = 1457,
+  MVE_VMUL_qr_i8 = 1458,
+  MVE_VMULf16 = 1459,
+  MVE_VMULf32 = 1460,
+  MVE_VMULi16 = 1461,
+  MVE_VMULi32 = 1462,
+  MVE_VMULi8 = 1463,
+  MVE_VMVN = 1464,
+  MVE_VMVNimmi16 = 1465,
+  MVE_VMVNimmi32 = 1466,
+  MVE_VNEGf16 = 1467,
+  MVE_VNEGf32 = 1468,
+  MVE_VNEGs16 = 1469,
+  MVE_VNEGs32 = 1470,
+  MVE_VNEGs8 = 1471,
+  MVE_VORN = 1472,
+  MVE_VORR = 1473,
+  MVE_VORRimmi16 = 1474,
+  MVE_VORRimmi32 = 1475,
+  MVE_VPNOT = 1476,
+  MVE_VPSEL = 1477,
+  MVE_VPST = 1478,
+  MVE_VPTv16i8 = 1479,
+  MVE_VPTv16i8r = 1480,
+  MVE_VPTv16s8 = 1481,
+  MVE_VPTv16s8r = 1482,
+  MVE_VPTv16u8 = 1483,
+  MVE_VPTv16u8r = 1484,
+  MVE_VPTv4f32 = 1485,
+  MVE_VPTv4f32r = 1486,
+  MVE_VPTv4i32 = 1487,
+  MVE_VPTv4i32r = 1488,
+  MVE_VPTv4s32 = 1489,
+  MVE_VPTv4s32r = 1490,
+  MVE_VPTv4u32 = 1491,
+  MVE_VPTv4u32r = 1492,
+  MVE_VPTv8f16 = 1493,
+  MVE_VPTv8f16r = 1494,
+  MVE_VPTv8i16 = 1495,
+  MVE_VPTv8i16r = 1496,
+  MVE_VPTv8s16 = 1497,
+  MVE_VPTv8s16r = 1498,
+  MVE_VPTv8u16 = 1499,
+  MVE_VPTv8u16r = 1500,
+  MVE_VQABSs16 = 1501,
+  MVE_VQABSs32 = 1502,
+  MVE_VQABSs8 = 1503,
+  MVE_VQADD_qr_s16 = 1504,
+  MVE_VQADD_qr_s32 = 1505,
+  MVE_VQADD_qr_s8 = 1506,
+  MVE_VQADD_qr_u16 = 1507,
+  MVE_VQADD_qr_u32 = 1508,
+  MVE_VQADD_qr_u8 = 1509,
+  MVE_VQADDs16 = 1510,
+  MVE_VQADDs32 = 1511,
+  MVE_VQADDs8 = 1512,
+  MVE_VQADDu16 = 1513,
+  MVE_VQADDu32 = 1514,
+  MVE_VQADDu8 = 1515,
+  MVE_VQDMLADHXs16 = 1516,
+  MVE_VQDMLADHXs32 = 1517,
+  MVE_VQDMLADHXs8 = 1518,
+  MVE_VQDMLADHs16 = 1519,
+  MVE_VQDMLADHs32 = 1520,
+  MVE_VQDMLADHs8 = 1521,
+  MVE_VQDMLAH_qrs16 = 1522,
+  MVE_VQDMLAH_qrs32 = 1523,
+  MVE_VQDMLAH_qrs8 = 1524,
+  MVE_VQDMLASH_qrs16 = 1525,
+  MVE_VQDMLASH_qrs32 = 1526,
+  MVE_VQDMLASH_qrs8 = 1527,
+  MVE_VQDMLSDHXs16 = 1528,
+  MVE_VQDMLSDHXs32 = 1529,
+  MVE_VQDMLSDHXs8 = 1530,
+  MVE_VQDMLSDHs16 = 1531,
+  MVE_VQDMLSDHs32 = 1532,
+  MVE_VQDMLSDHs8 = 1533,
+  MVE_VQDMULH_qr_s16 = 1534,
+  MVE_VQDMULH_qr_s32 = 1535,
+  MVE_VQDMULH_qr_s8 = 1536,
+  MVE_VQDMULHi16 = 1537,
+  MVE_VQDMULHi32 = 1538,
+  MVE_VQDMULHi8 = 1539,
+  MVE_VQDMULL_qr_s16bh = 1540,
+  MVE_VQDMULL_qr_s16th = 1541,
+  MVE_VQDMULL_qr_s32bh = 1542,
+  MVE_VQDMULL_qr_s32th = 1543,
+  MVE_VQDMULLs16bh = 1544,
+  MVE_VQDMULLs16th = 1545,
+  MVE_VQDMULLs32bh = 1546,
+  MVE_VQDMULLs32th = 1547,
+  MVE_VQMOVNs16bh = 1548,
+  MVE_VQMOVNs16th = 1549,
+  MVE_VQMOVNs32bh = 1550,
+  MVE_VQMOVNs32th = 1551,
+  MVE_VQMOVNu16bh = 1552,
+  MVE_VQMOVNu16th = 1553,
+  MVE_VQMOVNu32bh = 1554,
+  MVE_VQMOVNu32th = 1555,
+  MVE_VQMOVUNs16bh = 1556,
+  MVE_VQMOVUNs16th = 1557,
+  MVE_VQMOVUNs32bh = 1558,
+  MVE_VQMOVUNs32th = 1559,
+  MVE_VQNEGs16 = 1560,
+  MVE_VQNEGs32 = 1561,
+  MVE_VQNEGs8 = 1562,
+  MVE_VQRDMLADHXs16 = 1563,
+  MVE_VQRDMLADHXs32 = 1564,
+  MVE_VQRDMLADHXs8 = 1565,
+  MVE_VQRDMLADHs16 = 1566,
+  MVE_VQRDMLADHs32 = 1567,
+  MVE_VQRDMLADHs8 = 1568,
+  MVE_VQRDMLAH_qrs16 = 1569,
+  MVE_VQRDMLAH_qrs32 = 1570,
+  MVE_VQRDMLAH_qrs8 = 1571,
+  MVE_VQRDMLASH_qrs16 = 1572,
+  MVE_VQRDMLASH_qrs32 = 1573,
+  MVE_VQRDMLASH_qrs8 = 1574,
+  MVE_VQRDMLSDHXs16 = 1575,
+  MVE_VQRDMLSDHXs32 = 1576,
+  MVE_VQRDMLSDHXs8 = 1577,
+  MVE_VQRDMLSDHs16 = 1578,
+  MVE_VQRDMLSDHs32 = 1579,
+  MVE_VQRDMLSDHs8 = 1580,
+  MVE_VQRDMULH_qr_s16 = 1581,
+  MVE_VQRDMULH_qr_s32 = 1582,
+  MVE_VQRDMULH_qr_s8 = 1583,
+  MVE_VQRDMULHi16 = 1584,
+  MVE_VQRDMULHi32 = 1585,
+  MVE_VQRDMULHi8 = 1586,
+  MVE_VQRSHL_by_vecs16 = 1587,
+  MVE_VQRSHL_by_vecs32 = 1588,
+  MVE_VQRSHL_by_vecs8 = 1589,
+  MVE_VQRSHL_by_vecu16 = 1590,
+  MVE_VQRSHL_by_vecu32 = 1591,
+  MVE_VQRSHL_by_vecu8 = 1592,
+  MVE_VQRSHL_qrs16 = 1593,
+  MVE_VQRSHL_qrs32 = 1594,
+  MVE_VQRSHL_qrs8 = 1595,
+  MVE_VQRSHL_qru16 = 1596,
+  MVE_VQRSHL_qru32 = 1597,
+  MVE_VQRSHL_qru8 = 1598,
+  MVE_VQRSHRNbhs16 = 1599,
+  MVE_VQRSHRNbhs32 = 1600,
+  MVE_VQRSHRNbhu16 = 1601,
+  MVE_VQRSHRNbhu32 = 1602,
+  MVE_VQRSHRNths16 = 1603,
+  MVE_VQRSHRNths32 = 1604,
+  MVE_VQRSHRNthu16 = 1605,
+  MVE_VQRSHRNthu32 = 1606,
+  MVE_VQRSHRUNs16bh = 1607,
+  MVE_VQRSHRUNs16th = 1608,
+  MVE_VQRSHRUNs32bh = 1609,
+  MVE_VQRSHRUNs32th = 1610,
+  MVE_VQSHLU_imms16 = 1611,
+  MVE_VQSHLU_imms32 = 1612,
+  MVE_VQSHLU_imms8 = 1613,
+  MVE_VQSHL_by_vecs16 = 1614,
+  MVE_VQSHL_by_vecs32 = 1615,
+  MVE_VQSHL_by_vecs8 = 1616,
+  MVE_VQSHL_by_vecu16 = 1617,
+  MVE_VQSHL_by_vecu32 = 1618,
+  MVE_VQSHL_by_vecu8 = 1619,
+  MVE_VQSHL_qrs16 = 1620,
+  MVE_VQSHL_qrs32 = 1621,
+  MVE_VQSHL_qrs8 = 1622,
+  MVE_VQSHL_qru16 = 1623,
+  MVE_VQSHL_qru32 = 1624,
+  MVE_VQSHL_qru8 = 1625,
+  MVE_VQSHLimms16 = 1626,
+  MVE_VQSHLimms32 = 1627,
+  MVE_VQSHLimms8 = 1628,
+  MVE_VQSHLimmu16 = 1629,
+  MVE_VQSHLimmu32 = 1630,
+  MVE_VQSHLimmu8 = 1631,
+  MVE_VQSHRNbhs16 = 1632,
+  MVE_VQSHRNbhs32 = 1633,
+  MVE_VQSHRNbhu16 = 1634,
+  MVE_VQSHRNbhu32 = 1635,
+  MVE_VQSHRNths16 = 1636,
+  MVE_VQSHRNths32 = 1637,
+  MVE_VQSHRNthu16 = 1638,
+  MVE_VQSHRNthu32 = 1639,
+  MVE_VQSHRUNs16bh = 1640,
+  MVE_VQSHRUNs16th = 1641,
+  MVE_VQSHRUNs32bh = 1642,
+  MVE_VQSHRUNs32th = 1643,
+  MVE_VQSUB_qr_s16 = 1644,
+  MVE_VQSUB_qr_s32 = 1645,
+  MVE_VQSUB_qr_s8 = 1646,
+  MVE_VQSUB_qr_u16 = 1647,
+  MVE_VQSUB_qr_u32 = 1648,
+  MVE_VQSUB_qr_u8 = 1649,
+  MVE_VQSUBs16 = 1650,
+  MVE_VQSUBs32 = 1651,
+  MVE_VQSUBs8 = 1652,
+  MVE_VQSUBu16 = 1653,
+  MVE_VQSUBu32 = 1654,
+  MVE_VQSUBu8 = 1655,
+  MVE_VREV16_8 = 1656,
+  MVE_VREV32_16 = 1657,
+  MVE_VREV32_8 = 1658,
+  MVE_VREV64_16 = 1659,
+  MVE_VREV64_32 = 1660,
+  MVE_VREV64_8 = 1661,
+  MVE_VRHADDs16 = 1662,
+  MVE_VRHADDs32 = 1663,
+  MVE_VRHADDs8 = 1664,
+  MVE_VRHADDu16 = 1665,
+  MVE_VRHADDu32 = 1666,
+  MVE_VRHADDu8 = 1667,
+  MVE_VRINTf16A = 1668,
+  MVE_VRINTf16M = 1669,
+  MVE_VRINTf16N = 1670,
+  MVE_VRINTf16P = 1671,
+  MVE_VRINTf16X = 1672,
+  MVE_VRINTf16Z = 1673,
+  MVE_VRINTf32A = 1674,
+  MVE_VRINTf32M = 1675,
+  MVE_VRINTf32N = 1676,
+  MVE_VRINTf32P = 1677,
+  MVE_VRINTf32X = 1678,
+  MVE_VRINTf32Z = 1679,
+  MVE_VRMLALDAVHas32 = 1680,
+  MVE_VRMLALDAVHau32 = 1681,
+  MVE_VRMLALDAVHaxs32 = 1682,
+  MVE_VRMLALDAVHs32 = 1683,
+  MVE_VRMLALDAVHu32 = 1684,
+  MVE_VRMLALDAVHxs32 = 1685,
+  MVE_VRMLSLDAVHas32 = 1686,
+  MVE_VRMLSLDAVHaxs32 = 1687,
+  MVE_VRMLSLDAVHs32 = 1688,
+  MVE_VRMLSLDAVHxs32 = 1689,
+  MVE_VRMULHs16 = 1690,
+  MVE_VRMULHs32 = 1691,
+  MVE_VRMULHs8 = 1692,
+  MVE_VRMULHu16 = 1693,
+  MVE_VRMULHu32 = 1694,
+  MVE_VRMULHu8 = 1695,
+  MVE_VRSHL_by_vecs16 = 1696,
+  MVE_VRSHL_by_vecs32 = 1697,
+  MVE_VRSHL_by_vecs8 = 1698,
+  MVE_VRSHL_by_vecu16 = 1699,
+  MVE_VRSHL_by_vecu32 = 1700,
+  MVE_VRSHL_by_vecu8 = 1701,
+  MVE_VRSHL_qrs16 = 1702,
+  MVE_VRSHL_qrs32 = 1703,
+  MVE_VRSHL_qrs8 = 1704,
+  MVE_VRSHL_qru16 = 1705,
+  MVE_VRSHL_qru32 = 1706,
+  MVE_VRSHL_qru8 = 1707,
+  MVE_VRSHRNi16bh = 1708,
+  MVE_VRSHRNi16th = 1709,
+  MVE_VRSHRNi32bh = 1710,
+  MVE_VRSHRNi32th = 1711,
+  MVE_VRSHR_imms16 = 1712,
+  MVE_VRSHR_imms32 = 1713,
+  MVE_VRSHR_imms8 = 1714,
+  MVE_VRSHR_immu16 = 1715,
+  MVE_VRSHR_immu32 = 1716,
+  MVE_VRSHR_immu8 = 1717,
+  MVE_VSBC = 1718,
+  MVE_VSBCI = 1719,
+  MVE_VSHLC = 1720,
+  MVE_VSHLL_imms16bh = 1721,
+  MVE_VSHLL_imms16th = 1722,
+  MVE_VSHLL_imms8bh = 1723,
+  MVE_VSHLL_imms8th = 1724,
+  MVE_VSHLL_immu16bh = 1725,
+  MVE_VSHLL_immu16th = 1726,
+  MVE_VSHLL_immu8bh = 1727,
+  MVE_VSHLL_immu8th = 1728,
+  MVE_VSHLL_lws16bh = 1729,
+  MVE_VSHLL_lws16th = 1730,
+  MVE_VSHLL_lws8bh = 1731,
+  MVE_VSHLL_lws8th = 1732,
+  MVE_VSHLL_lwu16bh = 1733,
+  MVE_VSHLL_lwu16th = 1734,
+  MVE_VSHLL_lwu8bh = 1735,
+  MVE_VSHLL_lwu8th = 1736,
+  MVE_VSHL_by_vecs16 = 1737,
+  MVE_VSHL_by_vecs32 = 1738,
+  MVE_VSHL_by_vecs8 = 1739,
+  MVE_VSHL_by_vecu16 = 1740,
+  MVE_VSHL_by_vecu32 = 1741,
+  MVE_VSHL_by_vecu8 = 1742,
+  MVE_VSHL_immi16 = 1743,
+  MVE_VSHL_immi32 = 1744,
+  MVE_VSHL_immi8 = 1745,
+  MVE_VSHL_qrs16 = 1746,
+  MVE_VSHL_qrs32 = 1747,
+  MVE_VSHL_qrs8 = 1748,
+  MVE_VSHL_qru16 = 1749,
+  MVE_VSHL_qru32 = 1750,
+  MVE_VSHL_qru8 = 1751,
+  MVE_VSHRNi16bh = 1752,
+  MVE_VSHRNi16th = 1753,
+  MVE_VSHRNi32bh = 1754,
+  MVE_VSHRNi32th = 1755,
+  MVE_VSHR_imms16 = 1756,
+  MVE_VSHR_imms32 = 1757,
+  MVE_VSHR_imms8 = 1758,
+  MVE_VSHR_immu16 = 1759,
+  MVE_VSHR_immu32 = 1760,
+  MVE_VSHR_immu8 = 1761,
+  MVE_VSLIimm16 = 1762,
+  MVE_VSLIimm32 = 1763,
+  MVE_VSLIimm8 = 1764,
+  MVE_VSRIimm16 = 1765,
+  MVE_VSRIimm32 = 1766,
+  MVE_VSRIimm8 = 1767,
+  MVE_VST20_16 = 1768,
+  MVE_VST20_16_wb = 1769,
+  MVE_VST20_32 = 1770,
+  MVE_VST20_32_wb = 1771,
+  MVE_VST20_8 = 1772,
+  MVE_VST20_8_wb = 1773,
+  MVE_VST21_16 = 1774,
+  MVE_VST21_16_wb = 1775,
+  MVE_VST21_32 = 1776,
+  MVE_VST21_32_wb = 1777,
+  MVE_VST21_8 = 1778,
+  MVE_VST21_8_wb = 1779,
+  MVE_VST40_16 = 1780,
+  MVE_VST40_16_wb = 1781,
+  MVE_VST40_32 = 1782,
+  MVE_VST40_32_wb = 1783,
+  MVE_VST40_8 = 1784,
+  MVE_VST40_8_wb = 1785,
+  MVE_VST41_16 = 1786,
+  MVE_VST41_16_wb = 1787,
+  MVE_VST41_32 = 1788,
+  MVE_VST41_32_wb = 1789,
+  MVE_VST41_8 = 1790,
+  MVE_VST41_8_wb = 1791,
+  MVE_VST42_16 = 1792,
+  MVE_VST42_16_wb = 1793,
+  MVE_VST42_32 = 1794,
+  MVE_VST42_32_wb = 1795,
+  MVE_VST42_8 = 1796,
+  MVE_VST42_8_wb = 1797,
+  MVE_VST43_16 = 1798,
+  MVE_VST43_16_wb = 1799,
+  MVE_VST43_32 = 1800,
+  MVE_VST43_32_wb = 1801,
+  MVE_VST43_8 = 1802,
+  MVE_VST43_8_wb = 1803,
+  MVE_VSTRB16 = 1804,
+  MVE_VSTRB16_post = 1805,
+  MVE_VSTRB16_pre = 1806,
+  MVE_VSTRB16_rq = 1807,
+  MVE_VSTRB32 = 1808,
+  MVE_VSTRB32_post = 1809,
+  MVE_VSTRB32_pre = 1810,
+  MVE_VSTRB32_rq = 1811,
+  MVE_VSTRB8_rq = 1812,
+  MVE_VSTRBU8 = 1813,
+  MVE_VSTRBU8_post = 1814,
+  MVE_VSTRBU8_pre = 1815,
+  MVE_VSTRD64_qi = 1816,
+  MVE_VSTRD64_qi_pre = 1817,
+  MVE_VSTRD64_rq = 1818,
+  MVE_VSTRD64_rq_u = 1819,
+  MVE_VSTRH16_rq = 1820,
+  MVE_VSTRH16_rq_u = 1821,
+  MVE_VSTRH32 = 1822,
+  MVE_VSTRH32_post = 1823,
+  MVE_VSTRH32_pre = 1824,
+  MVE_VSTRH32_rq = 1825,
+  MVE_VSTRH32_rq_u = 1826,
+  MVE_VSTRHU16 = 1827,
+  MVE_VSTRHU16_post = 1828,
+  MVE_VSTRHU16_pre = 1829,
+  MVE_VSTRW32_qi = 1830,
+  MVE_VSTRW32_qi_pre = 1831,
+  MVE_VSTRW32_rq = 1832,
+  MVE_VSTRW32_rq_u = 1833,
+  MVE_VSTRWU32 = 1834,
+  MVE_VSTRWU32_post = 1835,
+  MVE_VSTRWU32_pre = 1836,
+  MVE_VSUB_qr_f16 = 1837,
+  MVE_VSUB_qr_f32 = 1838,
+  MVE_VSUB_qr_i16 = 1839,
+  MVE_VSUB_qr_i32 = 1840,
+  MVE_VSUB_qr_i8 = 1841,
+  MVE_VSUBf16 = 1842,
+  MVE_VSUBf32 = 1843,
+  MVE_VSUBi16 = 1844,
+  MVE_VSUBi32 = 1845,
+  MVE_VSUBi8 = 1846,
+  MVE_WLSTP_16 = 1847,
+  MVE_WLSTP_32 = 1848,
+  MVE_WLSTP_64 = 1849,
+  MVE_WLSTP_8 = 1850,
+  MVNi = 1851,
+  MVNr = 1852,
+  MVNsi = 1853,
+  MVNsr = 1854,
+  NEON_VMAXNMNDf = 1855,
+  NEON_VMAXNMNDh = 1856,
+  NEON_VMAXNMNQf = 1857,
+  NEON_VMAXNMNQh = 1858,
+  NEON_VMINNMNDf = 1859,
+  NEON_VMINNMNDh = 1860,
+  NEON_VMINNMNQf = 1861,
+  NEON_VMINNMNQh = 1862,
+  ORRri = 1863,
+  ORRrr = 1864,
+  ORRrsi = 1865,
+  ORRrsr = 1866,
+  PKHBT = 1867,
+  PKHTB = 1868,
+  PLDWi12 = 1869,
+  PLDWrs = 1870,
+  PLDi12 = 1871,
+  PLDrs = 1872,
+  PLIi12 = 1873,
+  PLIrs = 1874,
+  QADD = 1875,
+  QADD16 = 1876,
+  QADD8 = 1877,
+  QASX = 1878,
+  QDADD = 1879,
+  QDSUB = 1880,
+  QSAX = 1881,
+  QSUB = 1882,
+  QSUB16 = 1883,
+  QSUB8 = 1884,
+  RBIT = 1885,
+  REV = 1886,
+  REV16 = 1887,
+  REVSH = 1888,
+  RFEDA = 1889,
+  RFEDA_UPD = 1890,
+  RFEDB = 1891,
+  RFEDB_UPD = 1892,
+  RFEIA = 1893,
+  RFEIA_UPD = 1894,
+  RFEIB = 1895,
+  RFEIB_UPD = 1896,
+  RSBri = 1897,
+  RSBrr = 1898,
+  RSBrsi = 1899,
+  RSBrsr = 1900,
+  RSCri = 1901,
+  RSCrr = 1902,
+  RSCrsi = 1903,
+  RSCrsr = 1904,
+  SADD16 = 1905,
+  SADD8 = 1906,
+  SASX = 1907,
+  SB = 1908,
+  SBCri = 1909,
+  SBCrr = 1910,
+  SBCrsi = 1911,
+  SBCrsr = 1912,
+  SBFX = 1913,
+  SDIV = 1914,
+  SEL = 1915,
+  SETEND = 1916,
+  SETPAN = 1917,
+  SHA1C = 1918,
+  SHA1H = 1919,
+  SHA1M = 1920,
+  SHA1P = 1921,
+  SHA1SU0 = 1922,
+  SHA1SU1 = 1923,
+  SHA256H = 1924,
+  SHA256H2 = 1925,
+  SHA256SU0 = 1926,
+  SHA256SU1 = 1927,
+  SHADD16 = 1928,
+  SHADD8 = 1929,
+  SHASX = 1930,
+  SHSAX = 1931,
+  SHSUB16 = 1932,
+  SHSUB8 = 1933,
+  SMC = 1934,
+  SMLABB = 1935,
+  SMLABT = 1936,
+  SMLAD = 1937,
+  SMLADX = 1938,
+  SMLAL = 1939,
+  SMLALBB = 1940,
+  SMLALBT = 1941,
+  SMLALD = 1942,
+  SMLALDX = 1943,
+  SMLALTB = 1944,
+  SMLALTT = 1945,
+  SMLATB = 1946,
+  SMLATT = 1947,
+  SMLAWB = 1948,
+  SMLAWT = 1949,
+  SMLSD = 1950,
+  SMLSDX = 1951,
+  SMLSLD = 1952,
+  SMLSLDX = 1953,
+  SMMLA = 1954,
+  SMMLAR = 1955,
+  SMMLS = 1956,
+  SMMLSR = 1957,
+  SMMUL = 1958,
+  SMMULR = 1959,
+  SMUAD = 1960,
+  SMUADX = 1961,
+  SMULBB = 1962,
+  SMULBT = 1963,
+  SMULL = 1964,
+  SMULTB = 1965,
+  SMULTT = 1966,
+  SMULWB = 1967,
+  SMULWT = 1968,
+  SMUSD = 1969,
+  SMUSDX = 1970,
+  SRSDA = 1971,
+  SRSDA_UPD = 1972,
+  SRSDB = 1973,
+  SRSDB_UPD = 1974,
+  SRSIA = 1975,
+  SRSIA_UPD = 1976,
+  SRSIB = 1977,
+  SRSIB_UPD = 1978,
+  SSAT = 1979,
+  SSAT16 = 1980,
+  SSAX = 1981,
+  SSUB16 = 1982,
+  SSUB8 = 1983,
+  STC2L_OFFSET = 1984,
+  STC2L_OPTION = 1985,
+  STC2L_POST = 1986,
+  STC2L_PRE = 1987,
+  STC2_OFFSET = 1988,
+  STC2_OPTION = 1989,
+  STC2_POST = 1990,
+  STC2_PRE = 1991,
+  STCL_OFFSET = 1992,
+  STCL_OPTION = 1993,
+  STCL_POST = 1994,
+  STCL_PRE = 1995,
+  STC_OFFSET = 1996,
+  STC_OPTION = 1997,
+  STC_POST = 1998,
+  STC_PRE = 1999,
+  STL = 2000,
+  STLB = 2001,
+  STLEX = 2002,
+  STLEXB = 2003,
+  STLEXD = 2004,
+  STLEXH = 2005,
+  STLH = 2006,
+  STMDA = 2007,
+  STMDA_UPD = 2008,
+  STMDB = 2009,
+  STMDB_UPD = 2010,
+  STMIA = 2011,
+  STMIA_UPD = 2012,
+  STMIB = 2013,
+  STMIB_UPD = 2014,
+  STRBT_POST_IMM = 2015,
+  STRBT_POST_REG = 2016,
+  STRB_POST_IMM = 2017,
+  STRB_POST_REG = 2018,
+  STRB_PRE_IMM = 2019,
+  STRB_PRE_REG = 2020,
+  STRBi12 = 2021,
+  STRBrs = 2022,
+  STRD = 2023,
+  STRD_POST = 2024,
+  STRD_PRE = 2025,
+  STREX = 2026,
+  STREXB = 2027,
+  STREXD = 2028,
+  STREXH = 2029,
+  STRH = 2030,
+  STRHTi = 2031,
+  STRHTr = 2032,
+  STRH_POST = 2033,
+  STRH_PRE = 2034,
+  STRT_POST_IMM = 2035,
+  STRT_POST_REG = 2036,
+  STR_POST_IMM = 2037,
+  STR_POST_REG = 2038,
+  STR_PRE_IMM = 2039,
+  STR_PRE_REG = 2040,
+  STRi12 = 2041,
+  STRrs = 2042,
+  SUBri = 2043,
+  SUBrr = 2044,
+  SUBrsi = 2045,
+  SUBrsr = 2046,
+  SVC = 2047,
+  SWP = 2048,
+  SWPB = 2049,
+  SXTAB = 2050,
+  SXTAB16 = 2051,
+  SXTAH = 2052,
+  SXTB = 2053,
+  SXTB16 = 2054,
+  SXTH = 2055,
+  TEQri = 2056,
+  TEQrr = 2057,
+  TEQrsi = 2058,
+  TEQrsr = 2059,
+  TRAP = 2060,
+  TSB = 2061,
+  TSTri = 2062,
+  TSTrr = 2063,
+  TSTrsi = 2064,
+  TSTrsr = 2065,
+  UADD16 = 2066,
+  UADD8 = 2067,
+  UASX = 2068,
+  UBFX = 2069,
+  UDF = 2070,
+  UDIV = 2071,
+  UHADD16 = 2072,
+  UHADD8 = 2073,
+  UHASX = 2074,
+  UHSAX = 2075,
+  UHSUB16 = 2076,
+  UHSUB8 = 2077,
+  UMAAL = 2078,
+  UMLAL = 2079,
+  UMULL = 2080,
+  UQADD16 = 2081,
+  UQADD8 = 2082,
+  UQASX = 2083,
+  UQSAX = 2084,
+  UQSUB16 = 2085,
+  UQSUB8 = 2086,
+  USAD8 = 2087,
+  USADA8 = 2088,
+  USAT = 2089,
+  USAT16 = 2090,
+  USAX = 2091,
+  USUB16 = 2092,
+  USUB8 = 2093,
+  UXTAB = 2094,
+  UXTAB16 = 2095,
+  UXTAH = 2096,
+  UXTB = 2097,
+  UXTB16 = 2098,
+  UXTH = 2099,
+  VABALsv2i64 = 2100,
+  VABALsv4i32 = 2101,
+  VABALsv8i16 = 2102,
+  VABALuv2i64 = 2103,
+  VABALuv4i32 = 2104,
+  VABALuv8i16 = 2105,
+  VABAsv16i8 = 2106,
+  VABAsv2i32 = 2107,
+  VABAsv4i16 = 2108,
+  VABAsv4i32 = 2109,
+  VABAsv8i16 = 2110,
+  VABAsv8i8 = 2111,
+  VABAuv16i8 = 2112,
+  VABAuv2i32 = 2113,
+  VABAuv4i16 = 2114,
+  VABAuv4i32 = 2115,
+  VABAuv8i16 = 2116,
+  VABAuv8i8 = 2117,
+  VABDLsv2i64 = 2118,
+  VABDLsv4i32 = 2119,
+  VABDLsv8i16 = 2120,
+  VABDLuv2i64 = 2121,
+  VABDLuv4i32 = 2122,
+  VABDLuv8i16 = 2123,
+  VABDfd = 2124,
+  VABDfq = 2125,
+  VABDhd = 2126,
+  VABDhq = 2127,
+  VABDsv16i8 = 2128,
+  VABDsv2i32 = 2129,
+  VABDsv4i16 = 2130,
+  VABDsv4i32 = 2131,
+  VABDsv8i16 = 2132,
+  VABDsv8i8 = 2133,
+  VABDuv16i8 = 2134,
+  VABDuv2i32 = 2135,
+  VABDuv4i16 = 2136,
+  VABDuv4i32 = 2137,
+  VABDuv8i16 = 2138,
+  VABDuv8i8 = 2139,
+  VABSD = 2140,
+  VABSH = 2141,
+  VABSS = 2142,
+  VABSfd = 2143,
+  VABSfq = 2144,
+  VABShd = 2145,
+  VABShq = 2146,
+  VABSv16i8 = 2147,
+  VABSv2i32 = 2148,
+  VABSv4i16 = 2149,
+  VABSv4i32 = 2150,
+  VABSv8i16 = 2151,
+  VABSv8i8 = 2152,
+  VACGEfd = 2153,
+  VACGEfq = 2154,
+  VACGEhd = 2155,
+  VACGEhq = 2156,
+  VACGTfd = 2157,
+  VACGTfq = 2158,
+  VACGThd = 2159,
+  VACGThq = 2160,
+  VADDD = 2161,
+  VADDH = 2162,
+  VADDHNv2i32 = 2163,
+  VADDHNv4i16 = 2164,
+  VADDHNv8i8 = 2165,
+  VADDLsv2i64 = 2166,
+  VADDLsv4i32 = 2167,
+  VADDLsv8i16 = 2168,
+  VADDLuv2i64 = 2169,
+  VADDLuv4i32 = 2170,
+  VADDLuv8i16 = 2171,
+  VADDS = 2172,
+  VADDWsv2i64 = 2173,
+  VADDWsv4i32 = 2174,
+  VADDWsv8i16 = 2175,
+  VADDWuv2i64 = 2176,
+  VADDWuv4i32 = 2177,
+  VADDWuv8i16 = 2178,
+  VADDfd = 2179,
+  VADDfq = 2180,
+  VADDhd = 2181,
+  VADDhq = 2182,
+  VADDv16i8 = 2183,
+  VADDv1i64 = 2184,
+  VADDv2i32 = 2185,
+  VADDv2i64 = 2186,
+  VADDv4i16 = 2187,
+  VADDv4i32 = 2188,
+  VADDv8i16 = 2189,
+  VADDv8i8 = 2190,
+  VANDd = 2191,
+  VANDq = 2192,
+  VBF16MALBQ = 2193,
+  VBF16MALBQI = 2194,
+  VBF16MALTQ = 2195,
+  VBF16MALTQI = 2196,
+  VBICd = 2197,
+  VBICiv2i32 = 2198,
+  VBICiv4i16 = 2199,
+  VBICiv4i32 = 2200,
+  VBICiv8i16 = 2201,
+  VBICq = 2202,
+  VBIFd = 2203,
+  VBIFq = 2204,
+  VBITd = 2205,
+  VBITq = 2206,
+  VBSLd = 2207,
+  VBSLq = 2208,
+  VBSPd = 2209,
+  VBSPq = 2210,
+  VCADDv2f32 = 2211,
+  VCADDv4f16 = 2212,
+  VCADDv4f32 = 2213,
+  VCADDv8f16 = 2214,
+  VCEQfd = 2215,
+  VCEQfq = 2216,
+  VCEQhd = 2217,
+  VCEQhq = 2218,
+  VCEQv16i8 = 2219,
+  VCEQv2i32 = 2220,
+  VCEQv4i16 = 2221,
+  VCEQv4i32 = 2222,
+  VCEQv8i16 = 2223,
+  VCEQv8i8 = 2224,
+  VCEQzv16i8 = 2225,
+  VCEQzv2f32 = 2226,
+  VCEQzv2i32 = 2227,
+  VCEQzv4f16 = 2228,
+  VCEQzv4f32 = 2229,
+  VCEQzv4i16 = 2230,
+  VCEQzv4i32 = 2231,
+  VCEQzv8f16 = 2232,
+  VCEQzv8i16 = 2233,
+  VCEQzv8i8 = 2234,
+  VCGEfd = 2235,
+  VCGEfq = 2236,
+  VCGEhd = 2237,
+  VCGEhq = 2238,
+  VCGEsv16i8 = 2239,
+  VCGEsv2i32 = 2240,
+  VCGEsv4i16 = 2241,
+  VCGEsv4i32 = 2242,
+  VCGEsv8i16 = 2243,
+  VCGEsv8i8 = 2244,
+  VCGEuv16i8 = 2245,
+  VCGEuv2i32 = 2246,
+  VCGEuv4i16 = 2247,
+  VCGEuv4i32 = 2248,
+  VCGEuv8i16 = 2249,
+  VCGEuv8i8 = 2250,
+  VCGEzv16i8 = 2251,
+  VCGEzv2f32 = 2252,
+  VCGEzv2i32 = 2253,
+  VCGEzv4f16 = 2254,
+  VCGEzv4f32 = 2255,
+  VCGEzv4i16 = 2256,
+  VCGEzv4i32 = 2257,
+  VCGEzv8f16 = 2258,
+  VCGEzv8i16 = 2259,
+  VCGEzv8i8 = 2260,
+  VCGTfd = 2261,
+  VCGTfq = 2262,
+  VCGThd = 2263,
+  VCGThq = 2264,
+  VCGTsv16i8 = 2265,
+  VCGTsv2i32 = 2266,
+  VCGTsv4i16 = 2267,
+  VCGTsv4i32 = 2268,
+  VCGTsv8i16 = 2269,
+  VCGTsv8i8 = 2270,
+  VCGTuv16i8 = 2271,
+  VCGTuv2i32 = 2272,
+  VCGTuv4i16 = 2273,
+  VCGTuv4i32 = 2274,
+  VCGTuv8i16 = 2275,
+  VCGTuv8i8 = 2276,
+  VCGTzv16i8 = 2277,
+  VCGTzv2f32 = 2278,
+  VCGTzv2i32 = 2279,
+  VCGTzv4f16 = 2280,
+  VCGTzv4f32 = 2281,
+  VCGTzv4i16 = 2282,
+  VCGTzv4i32 = 2283,
+  VCGTzv8f16 = 2284,
+  VCGTzv8i16 = 2285,
+  VCGTzv8i8 = 2286,
+  VCLEzv16i8 = 2287,
+  VCLEzv2f32 = 2288,
+  VCLEzv2i32 = 2289,
+  VCLEzv4f16 = 2290,
+  VCLEzv4f32 = 2291,
+  VCLEzv4i16 = 2292,
+  VCLEzv4i32 = 2293,
+  VCLEzv8f16 = 2294,
+  VCLEzv8i16 = 2295,
+  VCLEzv8i8 = 2296,
+  VCLSv16i8 = 2297,
+  VCLSv2i32 = 2298,
+  VCLSv4i16 = 2299,
+  VCLSv4i32 = 2300,
+  VCLSv8i16 = 2301,
+  VCLSv8i8 = 2302,
+  VCLTzv16i8 = 2303,
+  VCLTzv2f32 = 2304,
+  VCLTzv2i32 = 2305,
+  VCLTzv4f16 = 2306,
+  VCLTzv4f32 = 2307,
+  VCLTzv4i16 = 2308,
+  VCLTzv4i32 = 2309,
+  VCLTzv8f16 = 2310,
+  VCLTzv8i16 = 2311,
+  VCLTzv8i8 = 2312,
+  VCLZv16i8 = 2313,
+  VCLZv2i32 = 2314,
+  VCLZv4i16 = 2315,
+  VCLZv4i32 = 2316,
+  VCLZv8i16 = 2317,
+  VCLZv8i8 = 2318,
+  VCMLAv2f32 = 2319,
+  VCMLAv2f32_indexed = 2320,
+  VCMLAv4f16 = 2321,
+  VCMLAv4f16_indexed = 2322,
+  VCMLAv4f32 = 2323,
+  VCMLAv4f32_indexed = 2324,
+  VCMLAv8f16 = 2325,
+  VCMLAv8f16_indexed = 2326,
+  VCMPD = 2327,
+  VCMPED = 2328,
+  VCMPEH = 2329,
+  VCMPES = 2330,
+  VCMPEZD = 2331,
+  VCMPEZH = 2332,
+  VCMPEZS = 2333,
+  VCMPH = 2334,
+  VCMPS = 2335,
+  VCMPZD = 2336,
+  VCMPZH = 2337,
+  VCMPZS = 2338,
+  VCNTd = 2339,
+  VCNTq = 2340,
+  VCVTANSDf = 2341,
+  VCVTANSDh = 2342,
+  VCVTANSQf = 2343,
+  VCVTANSQh = 2344,
+  VCVTANUDf = 2345,
+  VCVTANUDh = 2346,
+  VCVTANUQf = 2347,
+  VCVTANUQh = 2348,
+  VCVTASD = 2349,
+  VCVTASH = 2350,
+  VCVTASS = 2351,
+  VCVTAUD = 2352,
+  VCVTAUH = 2353,
+  VCVTAUS = 2354,
+  VCVTBDH = 2355,
+  VCVTBHD = 2356,
+  VCVTBHS = 2357,
+  VCVTBSH = 2358,
+  VCVTDS = 2359,
+  VCVTMNSDf = 2360,
+  VCVTMNSDh = 2361,
+  VCVTMNSQf = 2362,
+  VCVTMNSQh = 2363,
+  VCVTMNUDf = 2364,
+  VCVTMNUDh = 2365,
+  VCVTMNUQf = 2366,
+  VCVTMNUQh = 2367,
+  VCVTMSD = 2368,
+  VCVTMSH = 2369,
+  VCVTMSS = 2370,
+  VCVTMUD = 2371,
+  VCVTMUH = 2372,
+  VCVTMUS = 2373,
+  VCVTNNSDf = 2374,
+  VCVTNNSDh = 2375,
+  VCVTNNSQf = 2376,
+  VCVTNNSQh = 2377,
+  VCVTNNUDf = 2378,
+  VCVTNNUDh = 2379,
+  VCVTNNUQf = 2380,
+  VCVTNNUQh = 2381,
+  VCVTNSD = 2382,
+  VCVTNSH = 2383,
+  VCVTNSS = 2384,
+  VCVTNUD = 2385,
+  VCVTNUH = 2386,
+  VCVTNUS = 2387,
+  VCVTPNSDf = 2388,
+  VCVTPNSDh = 2389,
+  VCVTPNSQf = 2390,
+  VCVTPNSQh = 2391,
+  VCVTPNUDf = 2392,
+  VCVTPNUDh = 2393,
+  VCVTPNUQf = 2394,
+  VCVTPNUQh = 2395,
+  VCVTPSD = 2396,
+  VCVTPSH = 2397,
+  VCVTPSS = 2398,
+  VCVTPUD = 2399,
+  VCVTPUH = 2400,
+  VCVTPUS = 2401,
+  VCVTSD = 2402,
+  VCVTTDH = 2403,
+  VCVTTHD = 2404,
+  VCVTTHS = 2405,
+  VCVTTSH = 2406,
+  VCVTf2h = 2407,
+  VCVTf2sd = 2408,
+  VCVTf2sq = 2409,
+  VCVTf2ud = 2410,
+  VCVTf2uq = 2411,
+  VCVTf2xsd = 2412,
+  VCVTf2xsq = 2413,
+  VCVTf2xud = 2414,
+  VCVTf2xuq = 2415,
+  VCVTh2f = 2416,
+  VCVTh2sd = 2417,
+  VCVTh2sq = 2418,
+  VCVTh2ud = 2419,
+  VCVTh2uq = 2420,
+  VCVTh2xsd = 2421,
+  VCVTh2xsq = 2422,
+  VCVTh2xud = 2423,
+  VCVTh2xuq = 2424,
+  VCVTs2fd = 2425,
+  VCVTs2fq = 2426,
+  VCVTs2hd = 2427,
+  VCVTs2hq = 2428,
+  VCVTu2fd = 2429,
+  VCVTu2fq = 2430,
+  VCVTu2hd = 2431,
+  VCVTu2hq = 2432,
+  VCVTxs2fd = 2433,
+  VCVTxs2fq = 2434,
+  VCVTxs2hd = 2435,
+  VCVTxs2hq = 2436,
+  VCVTxu2fd = 2437,
+  VCVTxu2fq = 2438,
+  VCVTxu2hd = 2439,
+  VCVTxu2hq = 2440,
+  VDIVD = 2441,
+  VDIVH = 2442,
+  VDIVS = 2443,
+  VDUP16d = 2444,
+  VDUP16q = 2445,
+  VDUP32d = 2446,
+  VDUP32q = 2447,
+  VDUP8d = 2448,
+  VDUP8q = 2449,
+  VDUPLN16d = 2450,
+  VDUPLN16q = 2451,
+  VDUPLN32d = 2452,
+  VDUPLN32q = 2453,
+  VDUPLN8d = 2454,
+  VDUPLN8q = 2455,
+  VEORd = 2456,
+  VEORq = 2457,
+  VEXTd16 = 2458,
+  VEXTd32 = 2459,
+  VEXTd8 = 2460,
+  VEXTq16 = 2461,
+  VEXTq32 = 2462,
+  VEXTq64 = 2463,
+  VEXTq8 = 2464,
+  VFMAD = 2465,
+  VFMAH = 2466,
+  VFMALD = 2467,
+  VFMALDI = 2468,
+  VFMALQ = 2469,
+  VFMALQI = 2470,
+  VFMAS = 2471,
+  VFMAfd = 2472,
+  VFMAfq = 2473,
+  VFMAhd = 2474,
+  VFMAhq = 2475,
+  VFMSD = 2476,
+  VFMSH = 2477,
+  VFMSLD = 2478,
+  VFMSLDI = 2479,
+  VFMSLQ = 2480,
+  VFMSLQI = 2481,
+  VFMSS = 2482,
+  VFMSfd = 2483,
+  VFMSfq = 2484,
+  VFMShd = 2485,
+  VFMShq = 2486,
+  VFNMAD = 2487,
+  VFNMAH = 2488,
+  VFNMAS = 2489,
+  VFNMSD = 2490,
+  VFNMSH = 2491,
+  VFNMSS = 2492,
+  VFP_VMAXNMD = 2493,
+  VFP_VMAXNMH = 2494,
+  VFP_VMAXNMS = 2495,
+  VFP_VMINNMD = 2496,
+  VFP_VMINNMH = 2497,
+  VFP_VMINNMS = 2498,
+  VGETLNi32 = 2499,
+  VGETLNs16 = 2500,
+  VGETLNs8 = 2501,
+  VGETLNu16 = 2502,
+  VGETLNu8 = 2503,
+  VHADDsv16i8 = 2504,
+  VHADDsv2i32 = 2505,
+  VHADDsv4i16 = 2506,
+  VHADDsv4i32 = 2507,
+  VHADDsv8i16 = 2508,
+  VHADDsv8i8 = 2509,
+  VHADDuv16i8 = 2510,
+  VHADDuv2i32 = 2511,
+  VHADDuv4i16 = 2512,
+  VHADDuv4i32 = 2513,
+  VHADDuv8i16 = 2514,
+  VHADDuv8i8 = 2515,
+  VHSUBsv16i8 = 2516,
+  VHSUBsv2i32 = 2517,
+  VHSUBsv4i16 = 2518,
+  VHSUBsv4i32 = 2519,
+  VHSUBsv8i16 = 2520,
+  VHSUBsv8i8 = 2521,
+  VHSUBuv16i8 = 2522,
+  VHSUBuv2i32 = 2523,
+  VHSUBuv4i16 = 2524,
+  VHSUBuv4i32 = 2525,
+  VHSUBuv8i16 = 2526,
+  VHSUBuv8i8 = 2527,
+  VINSH = 2528,
+  VJCVT = 2529,
+  VLD1DUPd16 = 2530,
+  VLD1DUPd16wb_fixed = 2531,
+  VLD1DUPd16wb_register = 2532,
+  VLD1DUPd32 = 2533,
+  VLD1DUPd32wb_fixed = 2534,
+  VLD1DUPd32wb_register = 2535,
+  VLD1DUPd8 = 2536,
+  VLD1DUPd8wb_fixed = 2537,
+  VLD1DUPd8wb_register = 2538,
+  VLD1DUPq16 = 2539,
+  VLD1DUPq16wb_fixed = 2540,
+  VLD1DUPq16wb_register = 2541,
+  VLD1DUPq32 = 2542,
+  VLD1DUPq32wb_fixed = 2543,
+  VLD1DUPq32wb_register = 2544,
+  VLD1DUPq8 = 2545,
+  VLD1DUPq8wb_fixed = 2546,
+  VLD1DUPq8wb_register = 2547,
+  VLD1LNd16 = 2548,
+  VLD1LNd16_UPD = 2549,
+  VLD1LNd32 = 2550,
+  VLD1LNd32_UPD = 2551,
+  VLD1LNd8 = 2552,
+  VLD1LNd8_UPD = 2553,
+  VLD1LNq16Pseudo = 2554,
+  VLD1LNq16Pseudo_UPD = 2555,
+  VLD1LNq32Pseudo = 2556,
+  VLD1LNq32Pseudo_UPD = 2557,
+  VLD1LNq8Pseudo = 2558,
+  VLD1LNq8Pseudo_UPD = 2559,
+  VLD1d16 = 2560,
+  VLD1d16Q = 2561,
+  VLD1d16QPseudo = 2562,
+  VLD1d16QPseudoWB_fixed = 2563,
+  VLD1d16QPseudoWB_register = 2564,
+  VLD1d16Qwb_fixed = 2565,
+  VLD1d16Qwb_register = 2566,
+  VLD1d16T = 2567,
+  VLD1d16TPseudo = 2568,
+  VLD1d16TPseudoWB_fixed = 2569,
+  VLD1d16TPseudoWB_register = 2570,
+  VLD1d16Twb_fixed = 2571,
+  VLD1d16Twb_register = 2572,
+  VLD1d16wb_fixed = 2573,
+  VLD1d16wb_register = 2574,
+  VLD1d32 = 2575,
+  VLD1d32Q = 2576,
+  VLD1d32QPseudo = 2577,
+  VLD1d32QPseudoWB_fixed = 2578,
+  VLD1d32QPseudoWB_register = 2579,
+  VLD1d32Qwb_fixed = 2580,
+  VLD1d32Qwb_register = 2581,
+  VLD1d32T = 2582,
+  VLD1d32TPseudo = 2583,
+  VLD1d32TPseudoWB_fixed = 2584,
+  VLD1d32TPseudoWB_register = 2585,
+  VLD1d32Twb_fixed = 2586,
+  VLD1d32Twb_register = 2587,
+  VLD1d32wb_fixed = 2588,
+  VLD1d32wb_register = 2589,
+  VLD1d64 = 2590,
+  VLD1d64Q = 2591,
+  VLD1d64QPseudo = 2592,
+  VLD1d64QPseudoWB_fixed = 2593,
+  VLD1d64QPseudoWB_register = 2594,
+  VLD1d64Qwb_fixed = 2595,
+  VLD1d64Qwb_register = 2596,
+  VLD1d64T = 2597,
+  VLD1d64TPseudo = 2598,
+  VLD1d64TPseudoWB_fixed = 2599,
+  VLD1d64TPseudoWB_register = 2600,
+  VLD1d64Twb_fixed = 2601,
+  VLD1d64Twb_register = 2602,
+  VLD1d64wb_fixed = 2603,
+  VLD1d64wb_register = 2604,
+  VLD1d8 = 2605,
+  VLD1d8Q = 2606,
+  VLD1d8QPseudo = 2607,
+  VLD1d8QPseudoWB_fixed = 2608,
+  VLD1d8QPseudoWB_register = 2609,
+  VLD1d8Qwb_fixed = 2610,
+  VLD1d8Qwb_register = 2611,
+  VLD1d8T = 2612,
+  VLD1d8TPseudo = 2613,
+  VLD1d8TPseudoWB_fixed = 2614,
+  VLD1d8TPseudoWB_register = 2615,
+  VLD1d8Twb_fixed = 2616,
+  VLD1d8Twb_register = 2617,
+  VLD1d8wb_fixed = 2618,
+  VLD1d8wb_register = 2619,
+  VLD1q16 = 2620,
+  VLD1q16HighQPseudo = 2621,
+  VLD1q16HighQPseudo_UPD = 2622,
+  VLD1q16HighTPseudo = 2623,
+  VLD1q16HighTPseudo_UPD = 2624,
+  VLD1q16LowQPseudo_UPD = 2625,
+  VLD1q16LowTPseudo_UPD = 2626,
+  VLD1q16wb_fixed = 2627,
+  VLD1q16wb_register = 2628,
+  VLD1q32 = 2629,
+  VLD1q32HighQPseudo = 2630,
+  VLD1q32HighQPseudo_UPD = 2631,
+  VLD1q32HighTPseudo = 2632,
+  VLD1q32HighTPseudo_UPD = 2633,
+  VLD1q32LowQPseudo_UPD = 2634,
+  VLD1q32LowTPseudo_UPD = 2635,
+  VLD1q32wb_fixed = 2636,
+  VLD1q32wb_register = 2637,
+  VLD1q64 = 2638,
+  VLD1q64HighQPseudo = 2639,
+  VLD1q64HighQPseudo_UPD = 2640,
+  VLD1q64HighTPseudo = 2641,
+  VLD1q64HighTPseudo_UPD = 2642,
+  VLD1q64LowQPseudo_UPD = 2643,
+  VLD1q64LowTPseudo_UPD = 2644,
+  VLD1q64wb_fixed = 2645,
+  VLD1q64wb_register = 2646,
+  VLD1q8 = 2647,
+  VLD1q8HighQPseudo = 2648,
+  VLD1q8HighQPseudo_UPD = 2649,
+  VLD1q8HighTPseudo = 2650,
+  VLD1q8HighTPseudo_UPD = 2651,
+  VLD1q8LowQPseudo_UPD = 2652,
+  VLD1q8LowTPseudo_UPD = 2653,
+  VLD1q8wb_fixed = 2654,
+  VLD1q8wb_register = 2655,
+  VLD2DUPd16 = 2656,
+  VLD2DUPd16wb_fixed = 2657,
+  VLD2DUPd16wb_register = 2658,
+  VLD2DUPd16x2 = 2659,
+  VLD2DUPd16x2wb_fixed = 2660,
+  VLD2DUPd16x2wb_register = 2661,
+  VLD2DUPd32 = 2662,
+  VLD2DUPd32wb_fixed = 2663,
+  VLD2DUPd32wb_register = 2664,
+  VLD2DUPd32x2 = 2665,
+  VLD2DUPd32x2wb_fixed = 2666,
+  VLD2DUPd32x2wb_register = 2667,
+  VLD2DUPd8 = 2668,
+  VLD2DUPd8wb_fixed = 2669,
+  VLD2DUPd8wb_register = 2670,
+  VLD2DUPd8x2 = 2671,
+  VLD2DUPd8x2wb_fixed = 2672,
+  VLD2DUPd8x2wb_register = 2673,
+  VLD2DUPq16EvenPseudo = 2674,
+  VLD2DUPq16OddPseudo = 2675,
+  VLD2DUPq16OddPseudoWB_fixed = 2676,
+  VLD2DUPq16OddPseudoWB_register = 2677,
+  VLD2DUPq32EvenPseudo = 2678,
+  VLD2DUPq32OddPseudo = 2679,
+  VLD2DUPq32OddPseudoWB_fixed = 2680,
+  VLD2DUPq32OddPseudoWB_register = 2681,
+  VLD2DUPq8EvenPseudo = 2682,
+  VLD2DUPq8OddPseudo = 2683,
+  VLD2DUPq8OddPseudoWB_fixed = 2684,
+  VLD2DUPq8OddPseudoWB_register = 2685,
+  VLD2LNd16 = 2686,
+  VLD2LNd16Pseudo = 2687,
+  VLD2LNd16Pseudo_UPD = 2688,
+  VLD2LNd16_UPD = 2689,
+  VLD2LNd32 = 2690,
+  VLD2LNd32Pseudo = 2691,
+  VLD2LNd32Pseudo_UPD = 2692,
+  VLD2LNd32_UPD = 2693,
+  VLD2LNd8 = 2694,
+  VLD2LNd8Pseudo = 2695,
+  VLD2LNd8Pseudo_UPD = 2696,
+  VLD2LNd8_UPD = 2697,
+  VLD2LNq16 = 2698,
+  VLD2LNq16Pseudo = 2699,
+  VLD2LNq16Pseudo_UPD = 2700,
+  VLD2LNq16_UPD = 2701,
+  VLD2LNq32 = 2702,
+  VLD2LNq32Pseudo = 2703,
+  VLD2LNq32Pseudo_UPD = 2704,
+  VLD2LNq32_UPD = 2705,
+  VLD2b16 = 2706,
+  VLD2b16wb_fixed = 2707,
+  VLD2b16wb_register = 2708,
+  VLD2b32 = 2709,
+  VLD2b32wb_fixed = 2710,
+  VLD2b32wb_register = 2711,
+  VLD2b8 = 2712,
+  VLD2b8wb_fixed = 2713,
+  VLD2b8wb_register = 2714,
+  VLD2d16 = 2715,
+  VLD2d16wb_fixed = 2716,
+  VLD2d16wb_register = 2717,
+  VLD2d32 = 2718,
+  VLD2d32wb_fixed = 2719,
+  VLD2d32wb_register = 2720,
+  VLD2d8 = 2721,
+  VLD2d8wb_fixed = 2722,
+  VLD2d8wb_register = 2723,
+  VLD2q16 = 2724,
+  VLD2q16Pseudo = 2725,
+  VLD2q16PseudoWB_fixed = 2726,
+  VLD2q16PseudoWB_register = 2727,
+  VLD2q16wb_fixed = 2728,
+  VLD2q16wb_register = 2729,
+  VLD2q32 = 2730,
+  VLD2q32Pseudo = 2731,
+  VLD2q32PseudoWB_fixed = 2732,
+  VLD2q32PseudoWB_register = 2733,
+  VLD2q32wb_fixed = 2734,
+  VLD2q32wb_register = 2735,
+  VLD2q8 = 2736,
+  VLD2q8Pseudo = 2737,
+  VLD2q8PseudoWB_fixed = 2738,
+  VLD2q8PseudoWB_register = 2739,
+  VLD2q8wb_fixed = 2740,
+  VLD2q8wb_register = 2741,
+  VLD3DUPd16 = 2742,
+  VLD3DUPd16Pseudo = 2743,
+  VLD3DUPd16Pseudo_UPD = 2744,
+  VLD3DUPd16_UPD = 2745,
+  VLD3DUPd32 = 2746,
+  VLD3DUPd32Pseudo = 2747,
+  VLD3DUPd32Pseudo_UPD = 2748,
+  VLD3DUPd32_UPD = 2749,
+  VLD3DUPd8 = 2750,
+  VLD3DUPd8Pseudo = 2751,
+  VLD3DUPd8Pseudo_UPD = 2752,
+  VLD3DUPd8_UPD = 2753,
+  VLD3DUPq16 = 2754,
+  VLD3DUPq16EvenPseudo = 2755,
+  VLD3DUPq16OddPseudo = 2756,
+  VLD3DUPq16OddPseudo_UPD = 2757,
+  VLD3DUPq16_UPD = 2758,
+  VLD3DUPq32 = 2759,
+  VLD3DUPq32EvenPseudo = 2760,
+  VLD3DUPq32OddPseudo = 2761,
+  VLD3DUPq32OddPseudo_UPD = 2762,
+  VLD3DUPq32_UPD = 2763,
+  VLD3DUPq8 = 2764,
+  VLD3DUPq8EvenPseudo = 2765,
+  VLD3DUPq8OddPseudo = 2766,
+  VLD3DUPq8OddPseudo_UPD = 2767,
+  VLD3DUPq8_UPD = 2768,
+  VLD3LNd16 = 2769,
+  VLD3LNd16Pseudo = 2770,
+  VLD3LNd16Pseudo_UPD = 2771,
+  VLD3LNd16_UPD = 2772,
+  VLD3LNd32 = 2773,
+  VLD3LNd32Pseudo = 2774,
+  VLD3LNd32Pseudo_UPD = 2775,
+  VLD3LNd32_UPD = 2776,
+  VLD3LNd8 = 2777,
+  VLD3LNd8Pseudo = 2778,
+  VLD3LNd8Pseudo_UPD = 2779,
+  VLD3LNd8_UPD = 2780,
+  VLD3LNq16 = 2781,
+  VLD3LNq16Pseudo = 2782,
+  VLD3LNq16Pseudo_UPD = 2783,
+  VLD3LNq16_UPD = 2784,
+  VLD3LNq32 = 2785,
+  VLD3LNq32Pseudo = 2786,
+  VLD3LNq32Pseudo_UPD = 2787,
+  VLD3LNq32_UPD = 2788,
+  VLD3d16 = 2789,
+  VLD3d16Pseudo = 2790,
+  VLD3d16Pseudo_UPD = 2791,
+  VLD3d16_UPD = 2792,
+  VLD3d32 = 2793,
+  VLD3d32Pseudo = 2794,
+  VLD3d32Pseudo_UPD = 2795,
+  VLD3d32_UPD = 2796,
+  VLD3d8 = 2797,
+  VLD3d8Pseudo = 2798,
+  VLD3d8Pseudo_UPD = 2799,
+  VLD3d8_UPD = 2800,
+  VLD3q16 = 2801,
+  VLD3q16Pseudo_UPD = 2802,
+  VLD3q16_UPD = 2803,
+  VLD3q16oddPseudo = 2804,
+  VLD3q16oddPseudo_UPD = 2805,
+  VLD3q32 = 2806,
+  VLD3q32Pseudo_UPD = 2807,
+  VLD3q32_UPD = 2808,
+  VLD3q32oddPseudo = 2809,
+  VLD3q32oddPseudo_UPD = 2810,
+  VLD3q8 = 2811,
+  VLD3q8Pseudo_UPD = 2812,
+  VLD3q8_UPD = 2813,
+  VLD3q8oddPseudo = 2814,
+  VLD3q8oddPseudo_UPD = 2815,
+  VLD4DUPd16 = 2816,
+  VLD4DUPd16Pseudo = 2817,
+  VLD4DUPd16Pseudo_UPD = 2818,
+  VLD4DUPd16_UPD = 2819,
+  VLD4DUPd32 = 2820,
+  VLD4DUPd32Pseudo = 2821,
+  VLD4DUPd32Pseudo_UPD = 2822,
+  VLD4DUPd32_UPD = 2823,
+  VLD4DUPd8 = 2824,
+  VLD4DUPd8Pseudo = 2825,
+  VLD4DUPd8Pseudo_UPD = 2826,
+  VLD4DUPd8_UPD = 2827,
+  VLD4DUPq16 = 2828,
+  VLD4DUPq16EvenPseudo = 2829,
+  VLD4DUPq16OddPseudo = 2830,
+  VLD4DUPq16OddPseudo_UPD = 2831,
+  VLD4DUPq16_UPD = 2832,
+  VLD4DUPq32 = 2833,
+  VLD4DUPq32EvenPseudo = 2834,
+  VLD4DUPq32OddPseudo = 2835,
+  VLD4DUPq32OddPseudo_UPD = 2836,
+  VLD4DUPq32_UPD = 2837,
+  VLD4DUPq8 = 2838,
+  VLD4DUPq8EvenPseudo = 2839,
+  VLD4DUPq8OddPseudo = 2840,
+  VLD4DUPq8OddPseudo_UPD = 2841,
+  VLD4DUPq8_UPD = 2842,
+  VLD4LNd16 = 2843,
+  VLD4LNd16Pseudo = 2844,
+  VLD4LNd16Pseudo_UPD = 2845,
+  VLD4LNd16_UPD = 2846,
+  VLD4LNd32 = 2847,
+  VLD4LNd32Pseudo = 2848,
+  VLD4LNd32Pseudo_UPD = 2849,
+  VLD4LNd32_UPD = 2850,
+  VLD4LNd8 = 2851,
+  VLD4LNd8Pseudo = 2852,
+  VLD4LNd8Pseudo_UPD = 2853,
+  VLD4LNd8_UPD = 2854,
+  VLD4LNq16 = 2855,
+  VLD4LNq16Pseudo = 2856,
+  VLD4LNq16Pseudo_UPD = 2857,
+  VLD4LNq16_UPD = 2858,
+  VLD4LNq32 = 2859,
+  VLD4LNq32Pseudo = 2860,
+  VLD4LNq32Pseudo_UPD = 2861,
+  VLD4LNq32_UPD = 2862,
+  VLD4d16 = 2863,
+  VLD4d16Pseudo = 2864,
+  VLD4d16Pseudo_UPD = 2865,
+  VLD4d16_UPD = 2866,
+  VLD4d32 = 2867,
+  VLD4d32Pseudo = 2868,
+  VLD4d32Pseudo_UPD = 2869,
+  VLD4d32_UPD = 2870,
+  VLD4d8 = 2871,
+  VLD4d8Pseudo = 2872,
+  VLD4d8Pseudo_UPD = 2873,
+  VLD4d8_UPD = 2874,
+  VLD4q16 = 2875,
+  VLD4q16Pseudo_UPD = 2876,
+  VLD4q16_UPD = 2877,
+  VLD4q16oddPseudo = 2878,
+  VLD4q16oddPseudo_UPD = 2879,
+  VLD4q32 = 2880,
+  VLD4q32Pseudo_UPD = 2881,
+  VLD4q32_UPD = 2882,
+  VLD4q32oddPseudo = 2883,
+  VLD4q32oddPseudo_UPD = 2884,
+  VLD4q8 = 2885,
+  VLD4q8Pseudo_UPD = 2886,
+  VLD4q8_UPD = 2887,
+  VLD4q8oddPseudo = 2888,
+  VLD4q8oddPseudo_UPD = 2889,
+  VLDMDDB_UPD = 2890,
+  VLDMDIA = 2891,
+  VLDMDIA_UPD = 2892,
+  VLDMQIA = 2893,
+  VLDMSDB_UPD = 2894,
+  VLDMSIA = 2895,
+  VLDMSIA_UPD = 2896,
+  VLDRD = 2897,
+  VLDRH = 2898,
+  VLDRS = 2899,
+  VLDR_FPCXTNS_off = 2900,
+  VLDR_FPCXTNS_post = 2901,
+  VLDR_FPCXTNS_pre = 2902,
+  VLDR_FPCXTS_off = 2903,
+  VLDR_FPCXTS_post = 2904,
+  VLDR_FPCXTS_pre = 2905,
+  VLDR_FPSCR_NZCVQC_off = 2906,
+  VLDR_FPSCR_NZCVQC_post = 2907,
+  VLDR_FPSCR_NZCVQC_pre = 2908,
+  VLDR_FPSCR_off = 2909,
+  VLDR_FPSCR_post = 2910,
+  VLDR_FPSCR_pre = 2911,
+  VLDR_P0_off = 2912,
+  VLDR_P0_post = 2913,
+  VLDR_P0_pre = 2914,
+  VLDR_VPR_off = 2915,
+  VLDR_VPR_post = 2916,
+  VLDR_VPR_pre = 2917,
+  VLLDM = 2918,
+  VLLDM_T2 = 2919,
+  VLSTM = 2920,
+  VLSTM_T2 = 2921,
+  VMAXfd = 2922,
+  VMAXfq = 2923,
+  VMAXhd = 2924,
+  VMAXhq = 2925,
+  VMAXsv16i8 = 2926,
+  VMAXsv2i32 = 2927,
+  VMAXsv4i16 = 2928,
+  VMAXsv4i32 = 2929,
+  VMAXsv8i16 = 2930,
+  VMAXsv8i8 = 2931,
+  VMAXuv16i8 = 2932,
+  VMAXuv2i32 = 2933,
+  VMAXuv4i16 = 2934,
+  VMAXuv4i32 = 2935,
+  VMAXuv8i16 = 2936,
+  VMAXuv8i8 = 2937,
+  VMINfd = 2938,
+  VMINfq = 2939,
+  VMINhd = 2940,
+  VMINhq = 2941,
+  VMINsv16i8 = 2942,
+  VMINsv2i32 = 2943,
+  VMINsv4i16 = 2944,
+  VMINsv4i32 = 2945,
+  VMINsv8i16 = 2946,
+  VMINsv8i8 = 2947,
+  VMINuv16i8 = 2948,
+  VMINuv2i32 = 2949,
+  VMINuv4i16 = 2950,
+  VMINuv4i32 = 2951,
+  VMINuv8i16 = 2952,
+  VMINuv8i8 = 2953,
+  VMLAD = 2954,
+  VMLAH = 2955,
+  VMLALslsv2i32 = 2956,
+  VMLALslsv4i16 = 2957,
+  VMLALsluv2i32 = 2958,
+  VMLALsluv4i16 = 2959,
+  VMLALsv2i64 = 2960,
+  VMLALsv4i32 = 2961,
+  VMLALsv8i16 = 2962,
+  VMLALuv2i64 = 2963,
+  VMLALuv4i32 = 2964,
+  VMLALuv8i16 = 2965,
+  VMLAS = 2966,
+  VMLAfd = 2967,
+  VMLAfq = 2968,
+  VMLAhd = 2969,
+  VMLAhq = 2970,
+  VMLAslfd = 2971,
+  VMLAslfq = 2972,
+  VMLAslhd = 2973,
+  VMLAslhq = 2974,
+  VMLAslv2i32 = 2975,
+  VMLAslv4i16 = 2976,
+  VMLAslv4i32 = 2977,
+  VMLAslv8i16 = 2978,
+  VMLAv16i8 = 2979,
+  VMLAv2i32 = 2980,
+  VMLAv4i16 = 2981,
+  VMLAv4i32 = 2982,
+  VMLAv8i16 = 2983,
+  VMLAv8i8 = 2984,
+  VMLSD = 2985,
+  VMLSH = 2986,
+  VMLSLslsv2i32 = 2987,
+  VMLSLslsv4i16 = 2988,
+  VMLSLsluv2i32 = 2989,
+  VMLSLsluv4i16 = 2990,
+  VMLSLsv2i64 = 2991,
+  VMLSLsv4i32 = 2992,
+  VMLSLsv8i16 = 2993,
+  VMLSLuv2i64 = 2994,
+  VMLSLuv4i32 = 2995,
+  VMLSLuv8i16 = 2996,
+  VMLSS = 2997,
+  VMLSfd = 2998,
+  VMLSfq = 2999,
+  VMLShd = 3000,
+  VMLShq = 3001,
+  VMLSslfd = 3002,
+  VMLSslfq = 3003,
+  VMLSslhd = 3004,
+  VMLSslhq = 3005,
+  VMLSslv2i32 = 3006,
+  VMLSslv4i16 = 3007,
+  VMLSslv4i32 = 3008,
+  VMLSslv8i16 = 3009,
+  VMLSv16i8 = 3010,
+  VMLSv2i32 = 3011,
+  VMLSv4i16 = 3012,
+  VMLSv4i32 = 3013,
+  VMLSv8i16 = 3014,
+  VMLSv8i8 = 3015,
+  VMMLA = 3016,
+  VMOVD = 3017,
+  VMOVDRR = 3018,
+  VMOVH = 3019,
+  VMOVHR = 3020,
+  VMOVLsv2i64 = 3021,
+  VMOVLsv4i32 = 3022,
+  VMOVLsv8i16 = 3023,
+  VMOVLuv2i64 = 3024,
+  VMOVLuv4i32 = 3025,
+  VMOVLuv8i16 = 3026,
+  VMOVNv2i32 = 3027,
+  VMOVNv4i16 = 3028,
+  VMOVNv8i8 = 3029,
+  VMOVRH = 3030,
+  VMOVRRD = 3031,
+  VMOVRRS = 3032,
+  VMOVRS = 3033,
+  VMOVS = 3034,
+  VMOVSR = 3035,
+  VMOVSRR = 3036,
+  VMOVv16i8 = 3037,
+  VMOVv1i64 = 3038,
+  VMOVv2f32 = 3039,
+  VMOVv2i32 = 3040,
+  VMOVv2i64 = 3041,
+  VMOVv4f32 = 3042,
+  VMOVv4i16 = 3043,
+  VMOVv4i32 = 3044,
+  VMOVv8i16 = 3045,
+  VMOVv8i8 = 3046,
+  VMRS = 3047,
+  VMRS_FPCXTNS = 3048,
+  VMRS_FPCXTS = 3049,
+  VMRS_FPEXC = 3050,
+  VMRS_FPINST = 3051,
+  VMRS_FPINST2 = 3052,
+  VMRS_FPSCR_NZCVQC = 3053,
+  VMRS_FPSID = 3054,
+  VMRS_MVFR0 = 3055,
+  VMRS_MVFR1 = 3056,
+  VMRS_MVFR2 = 3057,
+  VMRS_P0 = 3058,
+  VMRS_VPR = 3059,
+  VMSR = 3060,
+  VMSR_FPCXTNS = 3061,
+  VMSR_FPCXTS = 3062,
+  VMSR_FPEXC = 3063,
+  VMSR_FPINST = 3064,
+  VMSR_FPINST2 = 3065,
+  VMSR_FPSCR_NZCVQC = 3066,
+  VMSR_FPSID = 3067,
+  VMSR_P0 = 3068,
+  VMSR_VPR = 3069,
+  VMULD = 3070,
+  VMULH = 3071,
+  VMULLp64 = 3072,
+  VMULLp8 = 3073,
+  VMULLslsv2i32 = 3074,
+  VMULLslsv4i16 = 3075,
+  VMULLsluv2i32 = 3076,
+  VMULLsluv4i16 = 3077,
+  VMULLsv2i64 = 3078,
+  VMULLsv4i32 = 3079,
+  VMULLsv8i16 = 3080,
+  VMULLuv2i64 = 3081,
+  VMULLuv4i32 = 3082,
+  VMULLuv8i16 = 3083,
+  VMULS = 3084,
+  VMULfd = 3085,
+  VMULfq = 3086,
+  VMULhd = 3087,
+  VMULhq = 3088,
+  VMULpd = 3089,
+  VMULpq = 3090,
+  VMULslfd = 3091,
+  VMULslfq = 3092,
+  VMULslhd = 3093,
+  VMULslhq = 3094,
+  VMULslv2i32 = 3095,
+  VMULslv4i16 = 3096,
+  VMULslv4i32 = 3097,
+  VMULslv8i16 = 3098,
+  VMULv16i8 = 3099,
+  VMULv2i32 = 3100,
+  VMULv4i16 = 3101,
+  VMULv4i32 = 3102,
+  VMULv8i16 = 3103,
+  VMULv8i8 = 3104,
+  VMVNd = 3105,
+  VMVNq = 3106,
+  VMVNv2i32 = 3107,
+  VMVNv4i16 = 3108,
+  VMVNv4i32 = 3109,
+  VMVNv8i16 = 3110,
+  VNEGD = 3111,
+  VNEGH = 3112,
+  VNEGS = 3113,
+  VNEGf32q = 3114,
+  VNEGfd = 3115,
+  VNEGhd = 3116,
+  VNEGhq = 3117,
+  VNEGs16d = 3118,
+  VNEGs16q = 3119,
+  VNEGs32d = 3120,
+  VNEGs32q = 3121,
+  VNEGs8d = 3122,
+  VNEGs8q = 3123,
+  VNMLAD = 3124,
+  VNMLAH = 3125,
+  VNMLAS = 3126,
+  VNMLSD = 3127,
+  VNMLSH = 3128,
+  VNMLSS = 3129,
+  VNMULD = 3130,
+  VNMULH = 3131,
+  VNMULS = 3132,
+  VORNd = 3133,
+  VORNq = 3134,
+  VORRd = 3135,
+  VORRiv2i32 = 3136,
+  VORRiv4i16 = 3137,
+  VORRiv4i32 = 3138,
+  VORRiv8i16 = 3139,
+  VORRq = 3140,
+  VPADALsv16i8 = 3141,
+  VPADALsv2i32 = 3142,
+  VPADALsv4i16 = 3143,
+  VPADALsv4i32 = 3144,
+  VPADALsv8i16 = 3145,
+  VPADALsv8i8 = 3146,
+  VPADALuv16i8 = 3147,
+  VPADALuv2i32 = 3148,
+  VPADALuv4i16 = 3149,
+  VPADALuv4i32 = 3150,
+  VPADALuv8i16 = 3151,
+  VPADALuv8i8 = 3152,
+  VPADDLsv16i8 = 3153,
+  VPADDLsv2i32 = 3154,
+  VPADDLsv4i16 = 3155,
+  VPADDLsv4i32 = 3156,
+  VPADDLsv8i16 = 3157,
+  VPADDLsv8i8 = 3158,
+  VPADDLuv16i8 = 3159,
+  VPADDLuv2i32 = 3160,
+  VPADDLuv4i16 = 3161,
+  VPADDLuv4i32 = 3162,
+  VPADDLuv8i16 = 3163,
+  VPADDLuv8i8 = 3164,
+  VPADDf = 3165,
+  VPADDh = 3166,
+  VPADDi16 = 3167,
+  VPADDi32 = 3168,
+  VPADDi8 = 3169,
+  VPMAXf = 3170,
+  VPMAXh = 3171,
+  VPMAXs16 = 3172,
+  VPMAXs32 = 3173,
+  VPMAXs8 = 3174,
+  VPMAXu16 = 3175,
+  VPMAXu32 = 3176,
+  VPMAXu8 = 3177,
+  VPMINf = 3178,
+  VPMINh = 3179,
+  VPMINs16 = 3180,
+  VPMINs32 = 3181,
+  VPMINs8 = 3182,
+  VPMINu16 = 3183,
+  VPMINu32 = 3184,
+  VPMINu8 = 3185,
+  VQABSv16i8 = 3186,
+  VQABSv2i32 = 3187,
+  VQABSv4i16 = 3188,
+  VQABSv4i32 = 3189,
+  VQABSv8i16 = 3190,
+  VQABSv8i8 = 3191,
+  VQADDsv16i8 = 3192,
+  VQADDsv1i64 = 3193,
+  VQADDsv2i32 = 3194,
+  VQADDsv2i64 = 3195,
+  VQADDsv4i16 = 3196,
+  VQADDsv4i32 = 3197,
+  VQADDsv8i16 = 3198,
+  VQADDsv8i8 = 3199,
+  VQADDuv16i8 = 3200,
+  VQADDuv1i64 = 3201,
+  VQADDuv2i32 = 3202,
+  VQADDuv2i64 = 3203,
+  VQADDuv4i16 = 3204,
+  VQADDuv4i32 = 3205,
+  VQADDuv8i16 = 3206,
+  VQADDuv8i8 = 3207,
+  VQDMLALslv2i32 = 3208,
+  VQDMLALslv4i16 = 3209,
+  VQDMLALv2i64 = 3210,
+  VQDMLALv4i32 = 3211,
+  VQDMLSLslv2i32 = 3212,
+  VQDMLSLslv4i16 = 3213,
+  VQDMLSLv2i64 = 3214,
+  VQDMLSLv4i32 = 3215,
+  VQDMULHslv2i32 = 3216,
+  VQDMULHslv4i16 = 3217,
+  VQDMULHslv4i32 = 3218,
+  VQDMULHslv8i16 = 3219,
+  VQDMULHv2i32 = 3220,
+  VQDMULHv4i16 = 3221,
+  VQDMULHv4i32 = 3222,
+  VQDMULHv8i16 = 3223,
+  VQDMULLslv2i32 = 3224,
+  VQDMULLslv4i16 = 3225,
+  VQDMULLv2i64 = 3226,
+  VQDMULLv4i32 = 3227,
+  VQMOVNsuv2i32 = 3228,
+  VQMOVNsuv4i16 = 3229,
+  VQMOVNsuv8i8 = 3230,
+  VQMOVNsv2i32 = 3231,
+  VQMOVNsv4i16 = 3232,
+  VQMOVNsv8i8 = 3233,
+  VQMOVNuv2i32 = 3234,
+  VQMOVNuv4i16 = 3235,
+  VQMOVNuv8i8 = 3236,
+  VQNEGv16i8 = 3237,
+  VQNEGv2i32 = 3238,
+  VQNEGv4i16 = 3239,
+  VQNEGv4i32 = 3240,
+  VQNEGv8i16 = 3241,
+  VQNEGv8i8 = 3242,
+  VQRDMLAHslv2i32 = 3243,
+  VQRDMLAHslv4i16 = 3244,
+  VQRDMLAHslv4i32 = 3245,
+  VQRDMLAHslv8i16 = 3246,
+  VQRDMLAHv2i32 = 3247,
+  VQRDMLAHv4i16 = 3248,
+  VQRDMLAHv4i32 = 3249,
+  VQRDMLAHv8i16 = 3250,
+  VQRDMLSHslv2i32 = 3251,
+  VQRDMLSHslv4i16 = 3252,
+  VQRDMLSHslv4i32 = 3253,
+  VQRDMLSHslv8i16 = 3254,
+  VQRDMLSHv2i32 = 3255,
+  VQRDMLSHv4i16 = 3256,
+  VQRDMLSHv4i32 = 3257,
+  VQRDMLSHv8i16 = 3258,
+  VQRDMULHslv2i32 = 3259,
+  VQRDMULHslv4i16 = 3260,
+  VQRDMULHslv4i32 = 3261,
+  VQRDMULHslv8i16 = 3262,
+  VQRDMULHv2i32 = 3263,
+  VQRDMULHv4i16 = 3264,
+  VQRDMULHv4i32 = 3265,
+  VQRDMULHv8i16 = 3266,
+  VQRSHLsv16i8 = 3267,
+  VQRSHLsv1i64 = 3268,
+  VQRSHLsv2i32 = 3269,
+  VQRSHLsv2i64 = 3270,
+  VQRSHLsv4i16 = 3271,
+  VQRSHLsv4i32 = 3272,
+  VQRSHLsv8i16 = 3273,
+  VQRSHLsv8i8 = 3274,
+  VQRSHLuv16i8 = 3275,
+  VQRSHLuv1i64 = 3276,
+  VQRSHLuv2i32 = 3277,
+  VQRSHLuv2i64 = 3278,
+  VQRSHLuv4i16 = 3279,
+  VQRSHLuv4i32 = 3280,
+  VQRSHLuv8i16 = 3281,
+  VQRSHLuv8i8 = 3282,
+  VQRSHRNsv2i32 = 3283,
+  VQRSHRNsv4i16 = 3284,
+  VQRSHRNsv8i8 = 3285,
+  VQRSHRNuv2i32 = 3286,
+  VQRSHRNuv4i16 = 3287,
+  VQRSHRNuv8i8 = 3288,
+  VQRSHRUNv2i32 = 3289,
+  VQRSHRUNv4i16 = 3290,
+  VQRSHRUNv8i8 = 3291,
+  VQSHLsiv16i8 = 3292,
+  VQSHLsiv1i64 = 3293,
+  VQSHLsiv2i32 = 3294,
+  VQSHLsiv2i64 = 3295,
+  VQSHLsiv4i16 = 3296,
+  VQSHLsiv4i32 = 3297,
+  VQSHLsiv8i16 = 3298,
+  VQSHLsiv8i8 = 3299,
+  VQSHLsuv16i8 = 3300,
+  VQSHLsuv1i64 = 3301,
+  VQSHLsuv2i32 = 3302,
+  VQSHLsuv2i64 = 3303,
+  VQSHLsuv4i16 = 3304,
+  VQSHLsuv4i32 = 3305,
+  VQSHLsuv8i16 = 3306,
+  VQSHLsuv8i8 = 3307,
+  VQSHLsv16i8 = 3308,
+  VQSHLsv1i64 = 3309,
+  VQSHLsv2i32 = 3310,
+  VQSHLsv2i64 = 3311,
+  VQSHLsv4i16 = 3312,
+  VQSHLsv4i32 = 3313,
+  VQSHLsv8i16 = 3314,
+  VQSHLsv8i8 = 3315,
+  VQSHLuiv16i8 = 3316,
+  VQSHLuiv1i64 = 3317,
+  VQSHLuiv2i32 = 3318,
+  VQSHLuiv2i64 = 3319,
+  VQSHLuiv4i16 = 3320,
+  VQSHLuiv4i32 = 3321,
+  VQSHLuiv8i16 = 3322,
+  VQSHLuiv8i8 = 3323,
+  VQSHLuv16i8 = 3324,
+  VQSHLuv1i64 = 3325,
+  VQSHLuv2i32 = 3326,
+  VQSHLuv2i64 = 3327,
+  VQSHLuv4i16 = 3328,
+  VQSHLuv4i32 = 3329,
+  VQSHLuv8i16 = 3330,
+  VQSHLuv8i8 = 3331,
+  VQSHRNsv2i32 = 3332,
+  VQSHRNsv4i16 = 3333,
+  VQSHRNsv8i8 = 3334,
+  VQSHRNuv2i32 = 3335,
+  VQSHRNuv4i16 = 3336,
+  VQSHRNuv8i8 = 3337,
+  VQSHRUNv2i32 = 3338,
+  VQSHRUNv4i16 = 3339,
+  VQSHRUNv8i8 = 3340,
+  VQSUBsv16i8 = 3341,
+  VQSUBsv1i64 = 3342,
+  VQSUBsv2i32 = 3343,
+  VQSUBsv2i64 = 3344,
+  VQSUBsv4i16 = 3345,
+  VQSUBsv4i32 = 3346,
+  VQSUBsv8i16 = 3347,
+  VQSUBsv8i8 = 3348,
+  VQSUBuv16i8 = 3349,
+  VQSUBuv1i64 = 3350,
+  VQSUBuv2i32 = 3351,
+  VQSUBuv2i64 = 3352,
+  VQSUBuv4i16 = 3353,
+  VQSUBuv4i32 = 3354,
+  VQSUBuv8i16 = 3355,
+  VQSUBuv8i8 = 3356,
+  VRADDHNv2i32 = 3357,
+  VRADDHNv4i16 = 3358,
+  VRADDHNv8i8 = 3359,
+  VRECPEd = 3360,
+  VRECPEfd = 3361,
+  VRECPEfq = 3362,
+  VRECPEhd = 3363,
+  VRECPEhq = 3364,
+  VRECPEq = 3365,
+  VRECPSfd = 3366,
+  VRECPSfq = 3367,
+  VRECPShd = 3368,
+  VRECPShq = 3369,
+  VREV16d8 = 3370,
+  VREV16q8 = 3371,
+  VREV32d16 = 3372,
+  VREV32d8 = 3373,
+  VREV32q16 = 3374,
+  VREV32q8 = 3375,
+  VREV64d16 = 3376,
+  VREV64d32 = 3377,
+  VREV64d8 = 3378,
+  VREV64q16 = 3379,
+  VREV64q32 = 3380,
+  VREV64q8 = 3381,
+  VRHADDsv16i8 = 3382,
+  VRHADDsv2i32 = 3383,
+  VRHADDsv4i16 = 3384,
+  VRHADDsv4i32 = 3385,
+  VRHADDsv8i16 = 3386,
+  VRHADDsv8i8 = 3387,
+  VRHADDuv16i8 = 3388,
+  VRHADDuv2i32 = 3389,
+  VRHADDuv4i16 = 3390,
+  VRHADDuv4i32 = 3391,
+  VRHADDuv8i16 = 3392,
+  VRHADDuv8i8 = 3393,
+  VRINTAD = 3394,
+  VRINTAH = 3395,
+  VRINTANDf = 3396,
+  VRINTANDh = 3397,
+  VRINTANQf = 3398,
+  VRINTANQh = 3399,
+  VRINTAS = 3400,
+  VRINTMD = 3401,
+  VRINTMH = 3402,
+  VRINTMNDf = 3403,
+  VRINTMNDh = 3404,
+  VRINTMNQf = 3405,
+  VRINTMNQh = 3406,
+  VRINTMS = 3407,
+  VRINTND = 3408,
+  VRINTNH = 3409,
+  VRINTNNDf = 3410,
+  VRINTNNDh = 3411,
+  VRINTNNQf = 3412,
+  VRINTNNQh = 3413,
+  VRINTNS = 3414,
+  VRINTPD = 3415,
+  VRINTPH = 3416,
+  VRINTPNDf = 3417,
+  VRINTPNDh = 3418,
+  VRINTPNQf = 3419,
+  VRINTPNQh = 3420,
+  VRINTPS = 3421,
+  VRINTRD = 3422,
+  VRINTRH = 3423,
+  VRINTRS = 3424,
+  VRINTXD = 3425,
+  VRINTXH = 3426,
+  VRINTXNDf = 3427,
+  VRINTXNDh = 3428,
+  VRINTXNQf = 3429,
+  VRINTXNQh = 3430,
+  VRINTXS = 3431,
+  VRINTZD = 3432,
+  VRINTZH = 3433,
+  VRINTZNDf = 3434,
+  VRINTZNDh = 3435,
+  VRINTZNQf = 3436,
+  VRINTZNQh = 3437,
+  VRINTZS = 3438,
+  VRSHLsv16i8 = 3439,
+  VRSHLsv1i64 = 3440,
+  VRSHLsv2i32 = 3441,
+  VRSHLsv2i64 = 3442,
+  VRSHLsv4i16 = 3443,
+  VRSHLsv4i32 = 3444,
+  VRSHLsv8i16 = 3445,
+  VRSHLsv8i8 = 3446,
+  VRSHLuv16i8 = 3447,
+  VRSHLuv1i64 = 3448,
+  VRSHLuv2i32 = 3449,
+  VRSHLuv2i64 = 3450,
+  VRSHLuv4i16 = 3451,
+  VRSHLuv4i32 = 3452,
+  VRSHLuv8i16 = 3453,
+  VRSHLuv8i8 = 3454,
+  VRSHRNv2i32 = 3455,
+  VRSHRNv4i16 = 3456,
+  VRSHRNv8i8 = 3457,
+  VRSHRsv16i8 = 3458,
+  VRSHRsv1i64 = 3459,
+  VRSHRsv2i32 = 3460,
+  VRSHRsv2i64 = 3461,
+  VRSHRsv4i16 = 3462,
+  VRSHRsv4i32 = 3463,
+  VRSHRsv8i16 = 3464,
+  VRSHRsv8i8 = 3465,
+  VRSHRuv16i8 = 3466,
+  VRSHRuv1i64 = 3467,
+  VRSHRuv2i32 = 3468,
+  VRSHRuv2i64 = 3469,
+  VRSHRuv4i16 = 3470,
+  VRSHRuv4i32 = 3471,
+  VRSHRuv8i16 = 3472,
+  VRSHRuv8i8 = 3473,
+  VRSQRTEd = 3474,
+  VRSQRTEfd = 3475,
+  VRSQRTEfq = 3476,
+  VRSQRTEhd = 3477,
+  VRSQRTEhq = 3478,
+  VRSQRTEq = 3479,
+  VRSQRTSfd = 3480,
+  VRSQRTSfq = 3481,
+  VRSQRTShd = 3482,
+  VRSQRTShq = 3483,
+  VRSRAsv16i8 = 3484,
+  VRSRAsv1i64 = 3485,
+  VRSRAsv2i32 = 3486,
+  VRSRAsv2i64 = 3487,
+  VRSRAsv4i16 = 3488,
+  VRSRAsv4i32 = 3489,
+  VRSRAsv8i16 = 3490,
+  VRSRAsv8i8 = 3491,
+  VRSRAuv16i8 = 3492,
+  VRSRAuv1i64 = 3493,
+  VRSRAuv2i32 = 3494,
+  VRSRAuv2i64 = 3495,
+  VRSRAuv4i16 = 3496,
+  VRSRAuv4i32 = 3497,
+  VRSRAuv8i16 = 3498,
+  VRSRAuv8i8 = 3499,
+  VRSUBHNv2i32 = 3500,
+  VRSUBHNv4i16 = 3501,
+  VRSUBHNv8i8 = 3502,
+  VSCCLRMD = 3503,
+  VSCCLRMS = 3504,
+  VSDOTD = 3505,
+  VSDOTDI = 3506,
+  VSDOTQ = 3507,
+  VSDOTQI = 3508,
+  VSELEQD = 3509,
+  VSELEQH = 3510,
+  VSELEQS = 3511,
+  VSELGED = 3512,
+  VSELGEH = 3513,
+  VSELGES = 3514,
+  VSELGTD = 3515,
+  VSELGTH = 3516,
+  VSELGTS = 3517,
+  VSELVSD = 3518,
+  VSELVSH = 3519,
+  VSELVSS = 3520,
+  VSETLNi16 = 3521,
+  VSETLNi32 = 3522,
+  VSETLNi8 = 3523,
+  VSHLLi16 = 3524,
+  VSHLLi32 = 3525,
+  VSHLLi8 = 3526,
+  VSHLLsv2i64 = 3527,
+  VSHLLsv4i32 = 3528,
+  VSHLLsv8i16 = 3529,
+  VSHLLuv2i64 = 3530,
+  VSHLLuv4i32 = 3531,
+  VSHLLuv8i16 = 3532,
+  VSHLiv16i8 = 3533,
+  VSHLiv1i64 = 3534,
+  VSHLiv2i32 = 3535,
+  VSHLiv2i64 = 3536,
+  VSHLiv4i16 = 3537,
+  VSHLiv4i32 = 3538,
+  VSHLiv8i16 = 3539,
+  VSHLiv8i8 = 3540,
+  VSHLsv16i8 = 3541,
+  VSHLsv1i64 = 3542,
+  VSHLsv2i32 = 3543,
+  VSHLsv2i64 = 3544,
+  VSHLsv4i16 = 3545,
+  VSHLsv4i32 = 3546,
+  VSHLsv8i16 = 3547,
+  VSHLsv8i8 = 3548,
+  VSHLuv16i8 = 3549,
+  VSHLuv1i64 = 3550,
+  VSHLuv2i32 = 3551,
+  VSHLuv2i64 = 3552,
+  VSHLuv4i16 = 3553,
+  VSHLuv4i32 = 3554,
+  VSHLuv8i16 = 3555,
+  VSHLuv8i8 = 3556,
+  VSHRNv2i32 = 3557,
+  VSHRNv4i16 = 3558,
+  VSHRNv8i8 = 3559,
+  VSHRsv16i8 = 3560,
+  VSHRsv1i64 = 3561,
+  VSHRsv2i32 = 3562,
+  VSHRsv2i64 = 3563,
+  VSHRsv4i16 = 3564,
+  VSHRsv4i32 = 3565,
+  VSHRsv8i16 = 3566,
+  VSHRsv8i8 = 3567,
+  VSHRuv16i8 = 3568,
+  VSHRuv1i64 = 3569,
+  VSHRuv2i32 = 3570,
+  VSHRuv2i64 = 3571,
+  VSHRuv4i16 = 3572,
+  VSHRuv4i32 = 3573,
+  VSHRuv8i16 = 3574,
+  VSHRuv8i8 = 3575,
+  VSHTOD = 3576,
+  VSHTOH = 3577,
+  VSHTOS = 3578,
+  VSITOD = 3579,
+  VSITOH = 3580,
+  VSITOS = 3581,
+  VSLIv16i8 = 3582,
+  VSLIv1i64 = 3583,
+  VSLIv2i32 = 3584,
+  VSLIv2i64 = 3585,
+  VSLIv4i16 = 3586,
+  VSLIv4i32 = 3587,
+  VSLIv8i16 = 3588,
+  VSLIv8i8 = 3589,
+  VSLTOD = 3590,
+  VSLTOH = 3591,
+  VSLTOS = 3592,
+  VSMMLA = 3593,
+  VSQRTD = 3594,
+  VSQRTH = 3595,
+  VSQRTS = 3596,
+  VSRAsv16i8 = 3597,
+  VSRAsv1i64 = 3598,
+  VSRAsv2i32 = 3599,
+  VSRAsv2i64 = 3600,
+  VSRAsv4i16 = 3601,
+  VSRAsv4i32 = 3602,
+  VSRAsv8i16 = 3603,
+  VSRAsv8i8 = 3604,
+  VSRAuv16i8 = 3605,
+  VSRAuv1i64 = 3606,
+  VSRAuv2i32 = 3607,
+  VSRAuv2i64 = 3608,
+  VSRAuv4i16 = 3609,
+  VSRAuv4i32 = 3610,
+  VSRAuv8i16 = 3611,
+  VSRAuv8i8 = 3612,
+  VSRIv16i8 = 3613,
+  VSRIv1i64 = 3614,
+  VSRIv2i32 = 3615,
+  VSRIv2i64 = 3616,
+  VSRIv4i16 = 3617,
+  VSRIv4i32 = 3618,
+  VSRIv8i16 = 3619,
+  VSRIv8i8 = 3620,
+  VST1LNd16 = 3621,
+  VST1LNd16_UPD = 3622,
+  VST1LNd32 = 3623,
+  VST1LNd32_UPD = 3624,
+  VST1LNd8 = 3625,
+  VST1LNd8_UPD = 3626,
+  VST1LNq16Pseudo = 3627,
+  VST1LNq16Pseudo_UPD = 3628,
+  VST1LNq32Pseudo = 3629,
+  VST1LNq32Pseudo_UPD = 3630,
+  VST1LNq8Pseudo = 3631,
+  VST1LNq8Pseudo_UPD = 3632,
+  VST1d16 = 3633,
+  VST1d16Q = 3634,
+  VST1d16QPseudo = 3635,
+  VST1d16QPseudoWB_fixed = 3636,
+  VST1d16QPseudoWB_register = 3637,
+  VST1d16Qwb_fixed = 3638,
+  VST1d16Qwb_register = 3639,
+  VST1d16T = 3640,
+  VST1d16TPseudo = 3641,
+  VST1d16TPseudoWB_fixed = 3642,
+  VST1d16TPseudoWB_register = 3643,
+  VST1d16Twb_fixed = 3644,
+  VST1d16Twb_register = 3645,
+  VST1d16wb_fixed = 3646,
+  VST1d16wb_register = 3647,
+  VST1d32 = 3648,
+  VST1d32Q = 3649,
+  VST1d32QPseudo = 3650,
+  VST1d32QPseudoWB_fixed = 3651,
+  VST1d32QPseudoWB_register = 3652,
+  VST1d32Qwb_fixed = 3653,
+  VST1d32Qwb_register = 3654,
+  VST1d32T = 3655,
+  VST1d32TPseudo = 3656,
+  VST1d32TPseudoWB_fixed = 3657,
+  VST1d32TPseudoWB_register = 3658,
+  VST1d32Twb_fixed = 3659,
+  VST1d32Twb_register = 3660,
+  VST1d32wb_fixed = 3661,
+  VST1d32wb_register = 3662,
+  VST1d64 = 3663,
+  VST1d64Q = 3664,
+  VST1d64QPseudo = 3665,
+  VST1d64QPseudoWB_fixed = 3666,
+  VST1d64QPseudoWB_register = 3667,
+  VST1d64Qwb_fixed = 3668,
+  VST1d64Qwb_register = 3669,
+  VST1d64T = 3670,
+  VST1d64TPseudo = 3671,
+  VST1d64TPseudoWB_fixed = 3672,
+  VST1d64TPseudoWB_register = 3673,
+  VST1d64Twb_fixed = 3674,
+  VST1d64Twb_register = 3675,
+  VST1d64wb_fixed = 3676,
+  VST1d64wb_register = 3677,
+  VST1d8 = 3678,
+  VST1d8Q = 3679,
+  VST1d8QPseudo = 3680,
+  VST1d8QPseudoWB_fixed = 3681,
+  VST1d8QPseudoWB_register = 3682,
+  VST1d8Qwb_fixed = 3683,
+  VST1d8Qwb_register = 3684,
+  VST1d8T = 3685,
+  VST1d8TPseudo = 3686,
+  VST1d8TPseudoWB_fixed = 3687,
+  VST1d8TPseudoWB_register = 3688,
+  VST1d8Twb_fixed = 3689,
+  VST1d8Twb_register = 3690,
+  VST1d8wb_fixed = 3691,
+  VST1d8wb_register = 3692,
+  VST1q16 = 3693,
+  VST1q16HighQPseudo = 3694,
+  VST1q16HighQPseudo_UPD = 3695,
+  VST1q16HighTPseudo = 3696,
+  VST1q16HighTPseudo_UPD = 3697,
+  VST1q16LowQPseudo_UPD = 3698,
+  VST1q16LowTPseudo_UPD = 3699,
+  VST1q16wb_fixed = 3700,
+  VST1q16wb_register = 3701,
+  VST1q32 = 3702,
+  VST1q32HighQPseudo = 3703,
+  VST1q32HighQPseudo_UPD = 3704,
+  VST1q32HighTPseudo = 3705,
+  VST1q32HighTPseudo_UPD = 3706,
+  VST1q32LowQPseudo_UPD = 3707,
+  VST1q32LowTPseudo_UPD = 3708,
+  VST1q32wb_fixed = 3709,
+  VST1q32wb_register = 3710,
+  VST1q64 = 3711,
+  VST1q64HighQPseudo = 3712,
+  VST1q64HighQPseudo_UPD = 3713,
+  VST1q64HighTPseudo = 3714,
+  VST1q64HighTPseudo_UPD = 3715,
+  VST1q64LowQPseudo_UPD = 3716,
+  VST1q64LowTPseudo_UPD = 3717,
+  VST1q64wb_fixed = 3718,
+  VST1q64wb_register = 3719,
+  VST1q8 = 3720,
+  VST1q8HighQPseudo = 3721,
+  VST1q8HighQPseudo_UPD = 3722,
+  VST1q8HighTPseudo = 3723,
+  VST1q8HighTPseudo_UPD = 3724,
+  VST1q8LowQPseudo_UPD = 3725,
+  VST1q8LowTPseudo_UPD = 3726,
+  VST1q8wb_fixed = 3727,
+  VST1q8wb_register = 3728,
+  VST2LNd16 = 3729,
+  VST2LNd16Pseudo = 3730,
+  VST2LNd16Pseudo_UPD = 3731,
+  VST2LNd16_UPD = 3732,
+  VST2LNd32 = 3733,
+  VST2LNd32Pseudo = 3734,
+  VST2LNd32Pseudo_UPD = 3735,
+  VST2LNd32_UPD = 3736,
+  VST2LNd8 = 3737,
+  VST2LNd8Pseudo = 3738,
+  VST2LNd8Pseudo_UPD = 3739,
+  VST2LNd8_UPD = 3740,
+  VST2LNq16 = 3741,
+  VST2LNq16Pseudo = 3742,
+  VST2LNq16Pseudo_UPD = 3743,
+  VST2LNq16_UPD = 3744,
+  VST2LNq32 = 3745,
+  VST2LNq32Pseudo = 3746,
+  VST2LNq32Pseudo_UPD = 3747,
+  VST2LNq32_UPD = 3748,
+  VST2b16 = 3749,
+  VST2b16wb_fixed = 3750,
+  VST2b16wb_register = 3751,
+  VST2b32 = 3752,
+  VST2b32wb_fixed = 3753,
+  VST2b32wb_register = 3754,
+  VST2b8 = 3755,
+  VST2b8wb_fixed = 3756,
+  VST2b8wb_register = 3757,
+  VST2d16 = 3758,
+  VST2d16wb_fixed = 3759,
+  VST2d16wb_register = 3760,
+  VST2d32 = 3761,
+  VST2d32wb_fixed = 3762,
+  VST2d32wb_register = 3763,
+  VST2d8 = 3764,
+  VST2d8wb_fixed = 3765,
+  VST2d8wb_register = 3766,
+  VST2q16 = 3767,
+  VST2q16Pseudo = 3768,
+  VST2q16PseudoWB_fixed = 3769,
+  VST2q16PseudoWB_register = 3770,
+  VST2q16wb_fixed = 3771,
+  VST2q16wb_register = 3772,
+  VST2q32 = 3773,
+  VST2q32Pseudo = 3774,
+  VST2q32PseudoWB_fixed = 3775,
+  VST2q32PseudoWB_register = 3776,
+  VST2q32wb_fixed = 3777,
+  VST2q32wb_register = 3778,
+  VST2q8 = 3779,
+  VST2q8Pseudo = 3780,
+  VST2q8PseudoWB_fixed = 3781,
+  VST2q8PseudoWB_register = 3782,
+  VST2q8wb_fixed = 3783,
+  VST2q8wb_register = 3784,
+  VST3LNd16 = 3785,
+  VST3LNd16Pseudo = 3786,
+  VST3LNd16Pseudo_UPD = 3787,
+  VST3LNd16_UPD = 3788,
+  VST3LNd32 = 3789,
+  VST3LNd32Pseudo = 3790,
+  VST3LNd32Pseudo_UPD = 3791,
+  VST3LNd32_UPD = 3792,
+  VST3LNd8 = 3793,
+  VST3LNd8Pseudo = 3794,
+  VST3LNd8Pseudo_UPD = 3795,
+  VST3LNd8_UPD = 3796,
+  VST3LNq16 = 3797,
+  VST3LNq16Pseudo = 3798,
+  VST3LNq16Pseudo_UPD = 3799,
+  VST3LNq16_UPD = 3800,
+  VST3LNq32 = 3801,
+  VST3LNq32Pseudo = 3802,
+  VST3LNq32Pseudo_UPD = 3803,
+  VST3LNq32_UPD = 3804,
+  VST3d16 = 3805,
+  VST3d16Pseudo = 3806,
+  VST3d16Pseudo_UPD = 3807,
+  VST3d16_UPD = 3808,
+  VST3d32 = 3809,
+  VST3d32Pseudo = 3810,
+  VST3d32Pseudo_UPD = 3811,
+  VST3d32_UPD = 3812,
+  VST3d8 = 3813,
+  VST3d8Pseudo = 3814,
+  VST3d8Pseudo_UPD = 3815,
+  VST3d8_UPD = 3816,
+  VST3q16 = 3817,
+  VST3q16Pseudo_UPD = 3818,
+  VST3q16_UPD = 3819,
+  VST3q16oddPseudo = 3820,
+  VST3q16oddPseudo_UPD = 3821,
+  VST3q32 = 3822,
+  VST3q32Pseudo_UPD = 3823,
+  VST3q32_UPD = 3824,
+  VST3q32oddPseudo = 3825,
+  VST3q32oddPseudo_UPD = 3826,
+  VST3q8 = 3827,
+  VST3q8Pseudo_UPD = 3828,
+  VST3q8_UPD = 3829,
+  VST3q8oddPseudo = 3830,
+  VST3q8oddPseudo_UPD = 3831,
+  VST4LNd16 = 3832,
+  VST4LNd16Pseudo = 3833,
+  VST4LNd16Pseudo_UPD = 3834,
+  VST4LNd16_UPD = 3835,
+  VST4LNd32 = 3836,
+  VST4LNd32Pseudo = 3837,
+  VST4LNd32Pseudo_UPD = 3838,
+  VST4LNd32_UPD = 3839,
+  VST4LNd8 = 3840,
+  VST4LNd8Pseudo = 3841,
+  VST4LNd8Pseudo_UPD = 3842,
+  VST4LNd8_UPD = 3843,
+  VST4LNq16 = 3844,
+  VST4LNq16Pseudo = 3845,
+  VST4LNq16Pseudo_UPD = 3846,
+  VST4LNq16_UPD = 3847,
+  VST4LNq32 = 3848,
+  VST4LNq32Pseudo = 3849,
+  VST4LNq32Pseudo_UPD = 3850,
+  VST4LNq32_UPD = 3851,
+  VST4d16 = 3852,
+  VST4d16Pseudo = 3853,
+  VST4d16Pseudo_UPD = 3854,
+  VST4d16_UPD = 3855,
+  VST4d32 = 3856,
+  VST4d32Pseudo = 3857,
+  VST4d32Pseudo_UPD = 3858,
+  VST4d32_UPD = 3859,
+  VST4d8 = 3860,
+  VST4d8Pseudo = 3861,
+  VST4d8Pseudo_UPD = 3862,
+  VST4d8_UPD = 3863,
+  VST4q16 = 3864,
+  VST4q16Pseudo_UPD = 3865,
+  VST4q16_UPD = 3866,
+  VST4q16oddPseudo = 3867,
+  VST4q16oddPseudo_UPD = 3868,
+  VST4q32 = 3869,
+  VST4q32Pseudo_UPD = 3870,
+  VST4q32_UPD = 3871,
+  VST4q32oddPseudo = 3872,
+  VST4q32oddPseudo_UPD = 3873,
+  VST4q8 = 3874,
+  VST4q8Pseudo_UPD = 3875,
+  VST4q8_UPD = 3876,
+  VST4q8oddPseudo = 3877,
+  VST4q8oddPseudo_UPD = 3878,
+  VSTMDDB_UPD = 3879,
+  VSTMDIA = 3880,
+  VSTMDIA_UPD = 3881,
+  VSTMQIA = 3882,
+  VSTMSDB_UPD = 3883,
+  VSTMSIA = 3884,
+  VSTMSIA_UPD = 3885,
+  VSTRD = 3886,
+  VSTRH = 3887,
+  VSTRS = 3888,
+  VSTR_FPCXTNS_off = 3889,
+  VSTR_FPCXTNS_post = 3890,
+  VSTR_FPCXTNS_pre = 3891,
+  VSTR_FPCXTS_off = 3892,
+  VSTR_FPCXTS_post = 3893,
+  VSTR_FPCXTS_pre = 3894,
+  VSTR_FPSCR_NZCVQC_off = 3895,
+  VSTR_FPSCR_NZCVQC_post = 3896,
+  VSTR_FPSCR_NZCVQC_pre = 3897,
+  VSTR_FPSCR_off = 3898,
+  VSTR_FPSCR_post = 3899,
+  VSTR_FPSCR_pre = 3900,
+  VSTR_P0_off = 3901,
+  VSTR_P0_post = 3902,
+  VSTR_P0_pre = 3903,
+  VSTR_VPR_off = 3904,
+  VSTR_VPR_post = 3905,
+  VSTR_VPR_pre = 3906,
+  VSUBD = 3907,
+  VSUBH = 3908,
+  VSUBHNv2i32 = 3909,
+  VSUBHNv4i16 = 3910,
+  VSUBHNv8i8 = 3911,
+  VSUBLsv2i64 = 3912,
+  VSUBLsv4i32 = 3913,
+  VSUBLsv8i16 = 3914,
+  VSUBLuv2i64 = 3915,
+  VSUBLuv4i32 = 3916,
+  VSUBLuv8i16 = 3917,
+  VSUBS = 3918,
+  VSUBWsv2i64 = 3919,
+  VSUBWsv4i32 = 3920,
+  VSUBWsv8i16 = 3921,
+  VSUBWuv2i64 = 3922,
+  VSUBWuv4i32 = 3923,
+  VSUBWuv8i16 = 3924,
+  VSUBfd = 3925,
+  VSUBfq = 3926,
+  VSUBhd = 3927,
+  VSUBhq = 3928,
+  VSUBv16i8 = 3929,
+  VSUBv1i64 = 3930,
+  VSUBv2i32 = 3931,
+  VSUBv2i64 = 3932,
+  VSUBv4i16 = 3933,
+  VSUBv4i32 = 3934,
+  VSUBv8i16 = 3935,
+  VSUBv8i8 = 3936,
+  VSUDOTDI = 3937,
+  VSUDOTQI = 3938,
+  VSWPd = 3939,
+  VSWPq = 3940,
+  VTBL1 = 3941,
+  VTBL2 = 3942,
+  VTBL3 = 3943,
+  VTBL3Pseudo = 3944,
+  VTBL4 = 3945,
+  VTBL4Pseudo = 3946,
+  VTBX1 = 3947,
+  VTBX2 = 3948,
+  VTBX3 = 3949,
+  VTBX3Pseudo = 3950,
+  VTBX4 = 3951,
+  VTBX4Pseudo = 3952,
+  VTOSHD = 3953,
+  VTOSHH = 3954,
+  VTOSHS = 3955,
+  VTOSIRD = 3956,
+  VTOSIRH = 3957,
+  VTOSIRS = 3958,
+  VTOSIZD = 3959,
+  VTOSIZH = 3960,
+  VTOSIZS = 3961,
+  VTOSLD = 3962,
+  VTOSLH = 3963,
+  VTOSLS = 3964,
+  VTOUHD = 3965,
+  VTOUHH = 3966,
+  VTOUHS = 3967,
+  VTOUIRD = 3968,
+  VTOUIRH = 3969,
+  VTOUIRS = 3970,
+  VTOUIZD = 3971,
+  VTOUIZH = 3972,
+  VTOUIZS = 3973,
+  VTOULD = 3974,
+  VTOULH = 3975,
+  VTOULS = 3976,
+  VTRNd16 = 3977,
+  VTRNd32 = 3978,
+  VTRNd8 = 3979,
+  VTRNq16 = 3980,
+  VTRNq32 = 3981,
+  VTRNq8 = 3982,
+  VTSTv16i8 = 3983,
+  VTSTv2i32 = 3984,
+  VTSTv4i16 = 3985,
+  VTSTv4i32 = 3986,
+  VTSTv8i16 = 3987,
+  VTSTv8i8 = 3988,
+  VUDOTD = 3989,
+  VUDOTDI = 3990,
+  VUDOTQ = 3991,
+  VUDOTQI = 3992,
+  VUHTOD = 3993,
+  VUHTOH = 3994,
+  VUHTOS = 3995,
+  VUITOD = 3996,
+  VUITOH = 3997,
+  VUITOS = 3998,
+  VULTOD = 3999,
+  VULTOH = 4000,
+  VULTOS = 4001,
+  VUMMLA = 4002,
+  VUSDOTD = 4003,
+  VUSDOTDI = 4004,
+  VUSDOTQ = 4005,
+  VUSDOTQI = 4006,
+  VUSMMLA = 4007,
+  VUZPd16 = 4008,
+  VUZPd8 = 4009,
+  VUZPq16 = 4010,
+  VUZPq32 = 4011,
+  VUZPq8 = 4012,
+  VZIPd16 = 4013,
+  VZIPd8 = 4014,
+  VZIPq16 = 4015,
+  VZIPq32 = 4016,
+  VZIPq8 = 4017,
+  sysLDMDA = 4018,
+  sysLDMDA_UPD = 4019,
+  sysLDMDB = 4020,
+  sysLDMDB_UPD = 4021,
+  sysLDMIA = 4022,
+  sysLDMIA_UPD = 4023,
+  sysLDMIB = 4024,
+  sysLDMIB_UPD = 4025,
+  sysSTMDA = 4026,
+  sysSTMDA_UPD = 4027,
+  sysSTMDB = 4028,
+  sysSTMDB_UPD = 4029,
+  sysSTMIA = 4030,
+  sysSTMIA_UPD = 4031,
+  sysSTMIB = 4032,
+  sysSTMIB_UPD = 4033,
+  t2ADCri = 4034,
+  t2ADCrr = 4035,
+  t2ADCrs = 4036,
+  t2ADDri = 4037,
+  t2ADDri12 = 4038,
+  t2ADDrr = 4039,
+  t2ADDrs = 4040,
+  t2ADDspImm = 4041,
+  t2ADDspImm12 = 4042,
+  t2ADR = 4043,
+  t2ANDri = 4044,
+  t2ANDrr = 4045,
+  t2ANDrs = 4046,
+  t2ASRri = 4047,
+  t2ASRrr = 4048,
+  t2ASRs1 = 4049,
+  t2AUT = 4050,
+  t2AUTG = 4051,
+  t2B = 4052,
+  t2BFC = 4053,
+  t2BFI = 4054,
+  t2BFLi = 4055,
+  t2BFLr = 4056,
+  t2BFi = 4057,
+  t2BFic = 4058,
+  t2BFr = 4059,
+  t2BICri = 4060,
+  t2BICrr = 4061,
+  t2BICrs = 4062,
+  t2BTI = 4063,
+  t2BXAUT = 4064,
+  t2BXJ = 4065,
+  t2Bcc = 4066,
+  t2CDP = 4067,
+  t2CDP2 = 4068,
+  t2CLREX = 4069,
+  t2CLRM = 4070,
+  t2CLZ = 4071,
+  t2CMNri = 4072,
+  t2CMNzrr = 4073,
+  t2CMNzrs = 4074,
+  t2CMPri = 4075,
+  t2CMPrr = 4076,
+  t2CMPrs = 4077,
+  t2CPS1p = 4078,
+  t2CPS2p = 4079,
+  t2CPS3p = 4080,
+  t2CRC32B = 4081,
+  t2CRC32CB = 4082,
+  t2CRC32CH = 4083,
+  t2CRC32CW = 4084,
+  t2CRC32H = 4085,
+  t2CRC32W = 4086,
+  t2CSEL = 4087,
+  t2CSINC = 4088,
+  t2CSINV = 4089,
+  t2CSNEG = 4090,
+  t2DBG = 4091,
+  t2DCPS1 = 4092,
+  t2DCPS2 = 4093,
+  t2DCPS3 = 4094,
+  t2DLS = 4095,
+  t2DMB = 4096,
+  t2DSB = 4097,
+  t2EORri = 4098,
+  t2EORrr = 4099,
+  t2EORrs = 4100,
+  t2HINT = 4101,
+  t2HVC = 4102,
+  t2ISB = 4103,
+  t2IT = 4104,
+  t2Int_eh_sjlj_setjmp = 4105,
+  t2Int_eh_sjlj_setjmp_nofp = 4106,
+  t2LDA = 4107,
+  t2LDAB = 4108,
+  t2LDAEX = 4109,
+  t2LDAEXB = 4110,
+  t2LDAEXD = 4111,
+  t2LDAEXH = 4112,
+  t2LDAH = 4113,
+  t2LDC2L_OFFSET = 4114,
+  t2LDC2L_OPTION = 4115,
+  t2LDC2L_POST = 4116,
+  t2LDC2L_PRE = 4117,
+  t2LDC2_OFFSET = 4118,
+  t2LDC2_OPTION = 4119,
+  t2LDC2_POST = 4120,
+  t2LDC2_PRE = 4121,
+  t2LDCL_OFFSET = 4122,
+  t2LDCL_OPTION = 4123,
+  t2LDCL_POST = 4124,
+  t2LDCL_PRE = 4125,
+  t2LDC_OFFSET = 4126,
+  t2LDC_OPTION = 4127,
+  t2LDC_POST = 4128,
+  t2LDC_PRE = 4129,
+  t2LDMDB = 4130,
+  t2LDMDB_UPD = 4131,
+  t2LDMIA = 4132,
+  t2LDMIA_UPD = 4133,
+  t2LDRBT = 4134,
+  t2LDRB_POST = 4135,
+  t2LDRB_PRE = 4136,
+  t2LDRBi12 = 4137,
+  t2LDRBi8 = 4138,
+  t2LDRBpci = 4139,
+  t2LDRBs = 4140,
+  t2LDRD_POST = 4141,
+  t2LDRD_PRE = 4142,
+  t2LDRDi8 = 4143,
+  t2LDREX = 4144,
+  t2LDREXB = 4145,
+  t2LDREXD = 4146,
+  t2LDREXH = 4147,
+  t2LDRHT = 4148,
+  t2LDRH_POST = 4149,
+  t2LDRH_PRE = 4150,
+  t2LDRHi12 = 4151,
+  t2LDRHi8 = 4152,
+  t2LDRHpci = 4153,
+  t2LDRHs = 4154,
+  t2LDRSBT = 4155,
+  t2LDRSB_POST = 4156,
+  t2LDRSB_PRE = 4157,
+  t2LDRSBi12 = 4158,
+  t2LDRSBi8 = 4159,
+  t2LDRSBpci = 4160,
+  t2LDRSBs = 4161,
+  t2LDRSHT = 4162,
+  t2LDRSH_POST = 4163,
+  t2LDRSH_PRE = 4164,
+  t2LDRSHi12 = 4165,
+  t2LDRSHi8 = 4166,
+  t2LDRSHpci = 4167,
+  t2LDRSHs = 4168,
+  t2LDRT = 4169,
+  t2LDR_POST = 4170,
+  t2LDR_PRE = 4171,
+  t2LDRi12 = 4172,
+  t2LDRi8 = 4173,
+  t2LDRpci = 4174,
+  t2LDRs = 4175,
+  t2LE = 4176,
+  t2LEUpdate = 4177,
+  t2LSLri = 4178,
+  t2LSLrr = 4179,
+  t2LSRri = 4180,
+  t2LSRrr = 4181,
+  t2LSRs1 = 4182,
+  t2MCR = 4183,
+  t2MCR2 = 4184,
+  t2MCRR = 4185,
+  t2MCRR2 = 4186,
+  t2MLA = 4187,
+  t2MLS = 4188,
+  t2MOVTi16 = 4189,
+  t2MOVi = 4190,
+  t2MOVi16 = 4191,
+  t2MOVr = 4192,
+  t2MRC = 4193,
+  t2MRC2 = 4194,
+  t2MRRC = 4195,
+  t2MRRC2 = 4196,
+  t2MRS_AR = 4197,
+  t2MRS_M = 4198,
+  t2MRSbanked = 4199,
+  t2MRSsys_AR = 4200,
+  t2MSR_AR = 4201,
+  t2MSR_M = 4202,
+  t2MSRbanked = 4203,
+  t2MUL = 4204,
+  t2MVNi = 4205,
+  t2MVNr = 4206,
+  t2MVNs = 4207,
+  t2ORNri = 4208,
+  t2ORNrr = 4209,
+  t2ORNrs = 4210,
+  t2ORRri = 4211,
+  t2ORRrr = 4212,
+  t2ORRrs = 4213,
+  t2PAC = 4214,
+  t2PACBTI = 4215,
+  t2PACG = 4216,
+  t2PKHBT = 4217,
+  t2PKHTB = 4218,
+  t2PLDWi12 = 4219,
+  t2PLDWi8 = 4220,
+  t2PLDWs = 4221,
+  t2PLDi12 = 4222,
+  t2PLDi8 = 4223,
+  t2PLDpci = 4224,
+  t2PLDs = 4225,
+  t2PLIi12 = 4226,
+  t2PLIi8 = 4227,
+  t2PLIpci = 4228,
+  t2PLIs = 4229,
+  t2QADD = 4230,
+  t2QADD16 = 4231,
+  t2QADD8 = 4232,
+  t2QASX = 4233,
+  t2QDADD = 4234,
+  t2QDSUB = 4235,
+  t2QSAX = 4236,
+  t2QSUB = 4237,
+  t2QSUB16 = 4238,
+  t2QSUB8 = 4239,
+  t2RBIT = 4240,
+  t2REV = 4241,
+  t2REV16 = 4242,
+  t2REVSH = 4243,
+  t2RFEDB = 4244,
+  t2RFEDBW = 4245,
+  t2RFEIA = 4246,
+  t2RFEIAW = 4247,
+  t2RORri = 4248,
+  t2RORrr = 4249,
+  t2RRX = 4250,
+  t2RSBri = 4251,
+  t2RSBrr = 4252,
+  t2RSBrs = 4253,
+  t2SADD16 = 4254,
+  t2SADD8 = 4255,
+  t2SASX = 4256,
+  t2SB = 4257,
+  t2SBCri = 4258,
+  t2SBCrr = 4259,
+  t2SBCrs = 4260,
+  t2SBFX = 4261,
+  t2SDIV = 4262,
+  t2SEL = 4263,
+  t2SETPAN = 4264,
+  t2SG = 4265,
+  t2SHADD16 = 4266,
+  t2SHADD8 = 4267,
+  t2SHASX = 4268,
+  t2SHSAX = 4269,
+  t2SHSUB16 = 4270,
+  t2SHSUB8 = 4271,
+  t2SMC = 4272,
+  t2SMLABB = 4273,
+  t2SMLABT = 4274,
+  t2SMLAD = 4275,
+  t2SMLADX = 4276,
+  t2SMLAL = 4277,
+  t2SMLALBB = 4278,
+  t2SMLALBT = 4279,
+  t2SMLALD = 4280,
+  t2SMLALDX = 4281,
+  t2SMLALTB = 4282,
+  t2SMLALTT = 4283,
+  t2SMLATB = 4284,
+  t2SMLATT = 4285,
+  t2SMLAWB = 4286,
+  t2SMLAWT = 4287,
+  t2SMLSD = 4288,
+  t2SMLSDX = 4289,
+  t2SMLSLD = 4290,
+  t2SMLSLDX = 4291,
+  t2SMMLA = 4292,
+  t2SMMLAR = 4293,
+  t2SMMLS = 4294,
+  t2SMMLSR = 4295,
+  t2SMMUL = 4296,
+  t2SMMULR = 4297,
+  t2SMUAD = 4298,
+  t2SMUADX = 4299,
+  t2SMULBB = 4300,
+  t2SMULBT = 4301,
+  t2SMULL = 4302,
+  t2SMULTB = 4303,
+  t2SMULTT = 4304,
+  t2SMULWB = 4305,
+  t2SMULWT = 4306,
+  t2SMUSD = 4307,
+  t2SMUSDX = 4308,
+  t2SRSDB = 4309,
+  t2SRSDB_UPD = 4310,
+  t2SRSIA = 4311,
+  t2SRSIA_UPD = 4312,
+  t2SSAT = 4313,
+  t2SSAT16 = 4314,
+  t2SSAX = 4315,
+  t2SSUB16 = 4316,
+  t2SSUB8 = 4317,
+  t2STC2L_OFFSET = 4318,
+  t2STC2L_OPTION = 4319,
+  t2STC2L_POST = 4320,
+  t2STC2L_PRE = 4321,
+  t2STC2_OFFSET = 4322,
+  t2STC2_OPTION = 4323,
+  t2STC2_POST = 4324,
+  t2STC2_PRE = 4325,
+  t2STCL_OFFSET = 4326,
+  t2STCL_OPTION = 4327,
+  t2STCL_POST = 4328,
+  t2STCL_PRE = 4329,
+  t2STC_OFFSET = 4330,
+  t2STC_OPTION = 4331,
+  t2STC_POST = 4332,
+  t2STC_PRE = 4333,
+  t2STL = 4334,
+  t2STLB = 4335,
+  t2STLEX = 4336,
+  t2STLEXB = 4337,
+  t2STLEXD = 4338,
+  t2STLEXH = 4339,
+  t2STLH = 4340,
+  t2STMDB = 4341,
+  t2STMDB_UPD = 4342,
+  t2STMIA = 4343,
+  t2STMIA_UPD = 4344,
+  t2STRBT = 4345,
+  t2STRB_POST = 4346,
+  t2STRB_PRE = 4347,
+  t2STRBi12 = 4348,
+  t2STRBi8 = 4349,
+  t2STRBs = 4350,
+  t2STRD_POST = 4351,
+  t2STRD_PRE = 4352,
+  t2STRDi8 = 4353,
+  t2STREX = 4354,
+  t2STREXB = 4355,
+  t2STREXD = 4356,
+  t2STREXH = 4357,
+  t2STRHT = 4358,
+  t2STRH_POST = 4359,
+  t2STRH_PRE = 4360,
+  t2STRHi12 = 4361,
+  t2STRHi8 = 4362,
+  t2STRHs = 4363,
+  t2STRT = 4364,
+  t2STR_POST = 4365,
+  t2STR_PRE = 4366,
+  t2STRi12 = 4367,
+  t2STRi8 = 4368,
+  t2STRs = 4369,
+  t2SUBS_PC_LR = 4370,
+  t2SUBri = 4371,
+  t2SUBri12 = 4372,
+  t2SUBrr = 4373,
+  t2SUBrs = 4374,
+  t2SUBspImm = 4375,
+  t2SUBspImm12 = 4376,
+  t2SXTAB = 4377,
+  t2SXTAB16 = 4378,
+  t2SXTAH = 4379,
+  t2SXTB = 4380,
+  t2SXTB16 = 4381,
+  t2SXTH = 4382,
+  t2TBB = 4383,
+  t2TBH = 4384,
+  t2TEQri = 4385,
+  t2TEQrr = 4386,
+  t2TEQrs = 4387,
+  t2TSB = 4388,
+  t2TSTri = 4389,
+  t2TSTrr = 4390,
+  t2TSTrs = 4391,
+  t2TT = 4392,
+  t2TTA = 4393,
+  t2TTAT = 4394,
+  t2TTT = 4395,
+  t2UADD16 = 4396,
+  t2UADD8 = 4397,
+  t2UASX = 4398,
+  t2UBFX = 4399,
+  t2UDF = 4400,
+  t2UDIV = 4401,
+  t2UHADD16 = 4402,
+  t2UHADD8 = 4403,
+  t2UHASX = 4404,
+  t2UHSAX = 4405,
+  t2UHSUB16 = 4406,
+  t2UHSUB8 = 4407,
+  t2UMAAL = 4408,
+  t2UMLAL = 4409,
+  t2UMULL = 4410,
+  t2UQADD16 = 4411,
+  t2UQADD8 = 4412,
+  t2UQASX = 4413,
+  t2UQSAX = 4414,
+  t2UQSUB16 = 4415,
+  t2UQSUB8 = 4416,
+  t2USAD8 = 4417,
+  t2USADA8 = 4418,
+  t2USAT = 4419,
+  t2USAT16 = 4420,
+  t2USAX = 4421,
+  t2USUB16 = 4422,
+  t2USUB8 = 4423,
+  t2UXTAB = 4424,
+  t2UXTAB16 = 4425,
+  t2UXTAH = 4426,
+  t2UXTB = 4427,
+  t2UXTB16 = 4428,
+  t2UXTH = 4429,
+  t2WLS = 4430,
+  tADC = 4431,
+  tADDhirr = 4432,
+  tADDi3 = 4433,
+  tADDi8 = 4434,
+  tADDrSP = 4435,
+  tADDrSPi = 4436,
+  tADDrr = 4437,
+  tADDspi = 4438,
+  tADDspr = 4439,
+  tADR = 4440,
+  tAND = 4441,
+  tASRri = 4442,
+  tASRrr = 4443,
+  tB = 4444,
+  tBIC = 4445,
+  tBKPT = 4446,
+  tBL = 4447,
+  tBLXNSr = 4448,
+  tBLXi = 4449,
+  tBLXr = 4450,
+  tBX = 4451,
+  tBXNS = 4452,
+  tBcc = 4453,
+  tCBNZ = 4454,
+  tCBZ = 4455,
+  tCMNz = 4456,
+  tCMPhir = 4457,
+  tCMPi8 = 4458,
+  tCMPr = 4459,
+  tCPS = 4460,
+  tEOR = 4461,
+  tHINT = 4462,
+  tHLT = 4463,
+  tInt_WIN_eh_sjlj_longjmp = 4464,
+  tInt_eh_sjlj_longjmp = 4465,
+  tInt_eh_sjlj_setjmp = 4466,
+  tLDMIA = 4467,
+  tLDRBi = 4468,
+  tLDRBr = 4469,
+  tLDRHi = 4470,
+  tLDRHr = 4471,
+  tLDRSB = 4472,
+  tLDRSH = 4473,
+  tLDRi = 4474,
+  tLDRpci = 4475,
+  tLDRr = 4476,
+  tLDRspi = 4477,
+  tLSLri = 4478,
+  tLSLrr = 4479,
+  tLSRri = 4480,
+  tLSRrr = 4481,
+  tMOVSr = 4482,
+  tMOVi8 = 4483,
+  tMOVr = 4484,
+  tMUL = 4485,
+  tMVN = 4486,
+  tORR = 4487,
+  tPICADD = 4488,
+  tPOP = 4489,
+  tPUSH = 4490,
+  tREV = 4491,
+  tREV16 = 4492,
+  tREVSH = 4493,
+  tROR = 4494,
+  tRSB = 4495,
+  tSBC = 4496,
+  tSETEND = 4497,
+  tSTMIA_UPD = 4498,
+  tSTRBi = 4499,
+  tSTRBr = 4500,
+  tSTRHi = 4501,
+  tSTRHr = 4502,
+  tSTRi = 4503,
+  tSTRr = 4504,
+  tSTRspi = 4505,
+  tSUBi3 = 4506,
+  tSUBi8 = 4507,
+  tSUBrr = 4508,
+  tSUBspi = 4509,
+  tSVC = 4510,
+  tSXTB = 4511,
+  tSXTH = 4512,
+  tTRAP = 4513,
+  tTST = 4514,
+  tUDF = 4515,
+  tUXTB = 4516,
+  tUXTH = 4517,
+  t__brkdiv0 = 4518,
+  INSTRUCTION_LIST_END = 4519,
 };
 }
 }
diff --git a/deps/LIEF/include/LIEF/asm/arm/registers.hpp b/deps/LIEF/include/LIEF/asm/arm/registers.hpp
index 3623cb1d5ef..9f60e39d993 100644
--- a/deps/LIEF/include/LIEF/asm/arm/registers.hpp
+++ b/deps/LIEF/include/LIEF/asm/arm/registers.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -32,292 +32,293 @@ enum class REG {
   FPSCR = 8,
   FPSCR_NZCV = 9,
   FPSCR_NZCVQC = 10,
-  FPSID = 11,
-  ITSTATE = 12,
-  LR = 13,
-  PC = 14,
-  RA_AUTH_CODE = 15,
-  SP = 16,
-  SPSR = 17,
-  VPR = 18,
-  ZR = 19,
-  D0 = 20,
-  D1 = 21,
-  D2 = 22,
-  D3 = 23,
-  D4 = 24,
-  D5 = 25,
-  D6 = 26,
-  D7 = 27,
-  D8 = 28,
-  D9 = 29,
-  D10 = 30,
-  D11 = 31,
-  D12 = 32,
-  D13 = 33,
-  D14 = 34,
-  D15 = 35,
-  D16 = 36,
-  D17 = 37,
-  D18 = 38,
-  D19 = 39,
-  D20 = 40,
-  D21 = 41,
-  D22 = 42,
-  D23 = 43,
-  D24 = 44,
-  D25 = 45,
-  D26 = 46,
-  D27 = 47,
-  D28 = 48,
-  D29 = 49,
-  D30 = 50,
-  D31 = 51,
-  FPINST2 = 52,
-  MVFR0 = 53,
-  MVFR1 = 54,
-  MVFR2 = 55,
-  P0 = 56,
-  Q0 = 57,
-  Q1 = 58,
-  Q2 = 59,
-  Q3 = 60,
-  Q4 = 61,
-  Q5 = 62,
-  Q6 = 63,
-  Q7 = 64,
-  Q8 = 65,
-  Q9 = 66,
-  Q10 = 67,
-  Q11 = 68,
-  Q12 = 69,
-  Q13 = 70,
-  Q14 = 71,
-  Q15 = 72,
-  R0 = 73,
-  R1 = 74,
-  R2 = 75,
-  R3 = 76,
-  R4 = 77,
-  R5 = 78,
-  R6 = 79,
-  R7 = 80,
-  R8 = 81,
-  R9 = 82,
-  R10 = 83,
-  R11 = 84,
-  R12 = 85,
-  S0 = 86,
-  S1 = 87,
-  S2 = 88,
-  S3 = 89,
-  S4 = 90,
-  S5 = 91,
-  S6 = 92,
-  S7 = 93,
-  S8 = 94,
-  S9 = 95,
-  S10 = 96,
-  S11 = 97,
-  S12 = 98,
-  S13 = 99,
-  S14 = 100,
-  S15 = 101,
-  S16 = 102,
-  S17 = 103,
-  S18 = 104,
-  S19 = 105,
-  S20 = 106,
-  S21 = 107,
-  S22 = 108,
-  S23 = 109,
-  S24 = 110,
-  S25 = 111,
-  S26 = 112,
-  S27 = 113,
-  S28 = 114,
-  S29 = 115,
-  S30 = 116,
-  S31 = 117,
-  D0_D2 = 118,
-  D1_D3 = 119,
-  D2_D4 = 120,
-  D3_D5 = 121,
-  D4_D6 = 122,
-  D5_D7 = 123,
-  D6_D8 = 124,
-  D7_D9 = 125,
-  D8_D10 = 126,
-  D9_D11 = 127,
-  D10_D12 = 128,
-  D11_D13 = 129,
-  D12_D14 = 130,
-  D13_D15 = 131,
-  D14_D16 = 132,
-  D15_D17 = 133,
-  D16_D18 = 134,
-  D17_D19 = 135,
-  D18_D20 = 136,
-  D19_D21 = 137,
-  D20_D22 = 138,
-  D21_D23 = 139,
-  D22_D24 = 140,
-  D23_D25 = 141,
-  D24_D26 = 142,
-  D25_D27 = 143,
-  D26_D28 = 144,
-  D27_D29 = 145,
-  D28_D30 = 146,
-  D29_D31 = 147,
-  Q0_Q1 = 148,
-  Q1_Q2 = 149,
-  Q2_Q3 = 150,
-  Q3_Q4 = 151,
-  Q4_Q5 = 152,
-  Q5_Q6 = 153,
-  Q6_Q7 = 154,
-  Q7_Q8 = 155,
-  Q8_Q9 = 156,
-  Q9_Q10 = 157,
-  Q10_Q11 = 158,
-  Q11_Q12 = 159,
-  Q12_Q13 = 160,
-  Q13_Q14 = 161,
-  Q14_Q15 = 162,
-  Q0_Q1_Q2_Q3 = 163,
-  Q1_Q2_Q3_Q4 = 164,
-  Q2_Q3_Q4_Q5 = 165,
-  Q3_Q4_Q5_Q6 = 166,
-  Q4_Q5_Q6_Q7 = 167,
-  Q5_Q6_Q7_Q8 = 168,
-  Q6_Q7_Q8_Q9 = 169,
-  Q7_Q8_Q9_Q10 = 170,
-  Q8_Q9_Q10_Q11 = 171,
-  Q9_Q10_Q11_Q12 = 172,
-  Q10_Q11_Q12_Q13 = 173,
-  Q11_Q12_Q13_Q14 = 174,
-  Q12_Q13_Q14_Q15 = 175,
-  R0_R1 = 176,
-  R2_R3 = 177,
-  R4_R5 = 178,
-  R6_R7 = 179,
-  R8_R9 = 180,
-  R10_R11 = 181,
-  R12_SP = 182,
-  D0_D1_D2 = 183,
-  D1_D2_D3 = 184,
-  D2_D3_D4 = 185,
-  D3_D4_D5 = 186,
-  D4_D5_D6 = 187,
-  D5_D6_D7 = 188,
-  D6_D7_D8 = 189,
-  D7_D8_D9 = 190,
-  D8_D9_D10 = 191,
-  D9_D10_D11 = 192,
-  D10_D11_D12 = 193,
-  D11_D12_D13 = 194,
-  D12_D13_D14 = 195,
-  D13_D14_D15 = 196,
-  D14_D15_D16 = 197,
-  D15_D16_D17 = 198,
-  D16_D17_D18 = 199,
-  D17_D18_D19 = 200,
-  D18_D19_D20 = 201,
-  D19_D20_D21 = 202,
-  D20_D21_D22 = 203,
-  D21_D22_D23 = 204,
-  D22_D23_D24 = 205,
-  D23_D24_D25 = 206,
-  D24_D25_D26 = 207,
-  D25_D26_D27 = 208,
-  D26_D27_D28 = 209,
-  D27_D28_D29 = 210,
-  D28_D29_D30 = 211,
-  D29_D30_D31 = 212,
-  D0_D2_D4 = 213,
-  D1_D3_D5 = 214,
-  D2_D4_D6 = 215,
-  D3_D5_D7 = 216,
-  D4_D6_D8 = 217,
-  D5_D7_D9 = 218,
-  D6_D8_D10 = 219,
-  D7_D9_D11 = 220,
-  D8_D10_D12 = 221,
-  D9_D11_D13 = 222,
-  D10_D12_D14 = 223,
-  D11_D13_D15 = 224,
-  D12_D14_D16 = 225,
-  D13_D15_D17 = 226,
-  D14_D16_D18 = 227,
-  D15_D17_D19 = 228,
-  D16_D18_D20 = 229,
-  D17_D19_D21 = 230,
-  D18_D20_D22 = 231,
-  D19_D21_D23 = 232,
-  D20_D22_D24 = 233,
-  D21_D23_D25 = 234,
-  D22_D24_D26 = 235,
-  D23_D25_D27 = 236,
-  D24_D26_D28 = 237,
-  D25_D27_D29 = 238,
-  D26_D28_D30 = 239,
-  D27_D29_D31 = 240,
-  D0_D2_D4_D6 = 241,
-  D1_D3_D5_D7 = 242,
-  D2_D4_D6_D8 = 243,
-  D3_D5_D7_D9 = 244,
-  D4_D6_D8_D10 = 245,
-  D5_D7_D9_D11 = 246,
-  D6_D8_D10_D12 = 247,
-  D7_D9_D11_D13 = 248,
-  D8_D10_D12_D14 = 249,
-  D9_D11_D13_D15 = 250,
-  D10_D12_D14_D16 = 251,
-  D11_D13_D15_D17 = 252,
-  D12_D14_D16_D18 = 253,
-  D13_D15_D17_D19 = 254,
-  D14_D16_D18_D20 = 255,
-  D15_D17_D19_D21 = 256,
-  D16_D18_D20_D22 = 257,
-  D17_D19_D21_D23 = 258,
-  D18_D20_D22_D24 = 259,
-  D19_D21_D23_D25 = 260,
-  D20_D22_D24_D26 = 261,
-  D21_D23_D25_D27 = 262,
-  D22_D24_D26_D28 = 263,
-  D23_D25_D27_D29 = 264,
-  D24_D26_D28_D30 = 265,
-  D25_D27_D29_D31 = 266,
-  D1_D2 = 267,
-  D3_D4 = 268,
-  D5_D6 = 269,
-  D7_D8 = 270,
-  D9_D10 = 271,
-  D11_D12 = 272,
-  D13_D14 = 273,
-  D15_D16 = 274,
-  D17_D18 = 275,
-  D19_D20 = 276,
-  D21_D22 = 277,
-  D23_D24 = 278,
-  D25_D26 = 279,
-  D27_D28 = 280,
-  D29_D30 = 281,
-  D1_D2_D3_D4 = 282,
-  D3_D4_D5_D6 = 283,
-  D5_D6_D7_D8 = 284,
-  D7_D8_D9_D10 = 285,
-  D9_D10_D11_D12 = 286,
-  D11_D12_D13_D14 = 287,
-  D13_D14_D15_D16 = 288,
-  D15_D16_D17_D18 = 289,
-  D17_D18_D19_D20 = 290,
-  D19_D20_D21_D22 = 291,
-  D21_D22_D23_D24 = 292,
-  D23_D24_D25_D26 = 293,
-  D25_D26_D27_D28 = 294,
-  D27_D28_D29_D30 = 295,
-  NUM_TARGET_REGS = 296,
+  FPSCR_RM = 11,
+  FPSID = 12,
+  ITSTATE = 13,
+  LR = 14,
+  PC = 15,
+  RA_AUTH_CODE = 16,
+  SP = 17,
+  SPSR = 18,
+  VPR = 19,
+  ZR = 20,
+  D0 = 21,
+  D1 = 22,
+  D2 = 23,
+  D3 = 24,
+  D4 = 25,
+  D5 = 26,
+  D6 = 27,
+  D7 = 28,
+  D8 = 29,
+  D9 = 30,
+  D10 = 31,
+  D11 = 32,
+  D12 = 33,
+  D13 = 34,
+  D14 = 35,
+  D15 = 36,
+  D16 = 37,
+  D17 = 38,
+  D18 = 39,
+  D19 = 40,
+  D20 = 41,
+  D21 = 42,
+  D22 = 43,
+  D23 = 44,
+  D24 = 45,
+  D25 = 46,
+  D26 = 47,
+  D27 = 48,
+  D28 = 49,
+  D29 = 50,
+  D30 = 51,
+  D31 = 52,
+  FPINST2 = 53,
+  MVFR0 = 54,
+  MVFR1 = 55,
+  MVFR2 = 56,
+  P0 = 57,
+  Q0 = 58,
+  Q1 = 59,
+  Q2 = 60,
+  Q3 = 61,
+  Q4 = 62,
+  Q5 = 63,
+  Q6 = 64,
+  Q7 = 65,
+  Q8 = 66,
+  Q9 = 67,
+  Q10 = 68,
+  Q11 = 69,
+  Q12 = 70,
+  Q13 = 71,
+  Q14 = 72,
+  Q15 = 73,
+  R0 = 74,
+  R1 = 75,
+  R2 = 76,
+  R3 = 77,
+  R4 = 78,
+  R5 = 79,
+  R6 = 80,
+  R7 = 81,
+  R8 = 82,
+  R9 = 83,
+  R10 = 84,
+  R11 = 85,
+  R12 = 86,
+  S0 = 87,
+  S1 = 88,
+  S2 = 89,
+  S3 = 90,
+  S4 = 91,
+  S5 = 92,
+  S6 = 93,
+  S7 = 94,
+  S8 = 95,
+  S9 = 96,
+  S10 = 97,
+  S11 = 98,
+  S12 = 99,
+  S13 = 100,
+  S14 = 101,
+  S15 = 102,
+  S16 = 103,
+  S17 = 104,
+  S18 = 105,
+  S19 = 106,
+  S20 = 107,
+  S21 = 108,
+  S22 = 109,
+  S23 = 110,
+  S24 = 111,
+  S25 = 112,
+  S26 = 113,
+  S27 = 114,
+  S28 = 115,
+  S29 = 116,
+  S30 = 117,
+  S31 = 118,
+  D0_D2 = 119,
+  D1_D3 = 120,
+  D2_D4 = 121,
+  D3_D5 = 122,
+  D4_D6 = 123,
+  D5_D7 = 124,
+  D6_D8 = 125,
+  D7_D9 = 126,
+  D8_D10 = 127,
+  D9_D11 = 128,
+  D10_D12 = 129,
+  D11_D13 = 130,
+  D12_D14 = 131,
+  D13_D15 = 132,
+  D14_D16 = 133,
+  D15_D17 = 134,
+  D16_D18 = 135,
+  D17_D19 = 136,
+  D18_D20 = 137,
+  D19_D21 = 138,
+  D20_D22 = 139,
+  D21_D23 = 140,
+  D22_D24 = 141,
+  D23_D25 = 142,
+  D24_D26 = 143,
+  D25_D27 = 144,
+  D26_D28 = 145,
+  D27_D29 = 146,
+  D28_D30 = 147,
+  D29_D31 = 148,
+  Q0_Q1 = 149,
+  Q1_Q2 = 150,
+  Q2_Q3 = 151,
+  Q3_Q4 = 152,
+  Q4_Q5 = 153,
+  Q5_Q6 = 154,
+  Q6_Q7 = 155,
+  Q7_Q8 = 156,
+  Q8_Q9 = 157,
+  Q9_Q10 = 158,
+  Q10_Q11 = 159,
+  Q11_Q12 = 160,
+  Q12_Q13 = 161,
+  Q13_Q14 = 162,
+  Q14_Q15 = 163,
+  Q0_Q1_Q2_Q3 = 164,
+  Q1_Q2_Q3_Q4 = 165,
+  Q2_Q3_Q4_Q5 = 166,
+  Q3_Q4_Q5_Q6 = 167,
+  Q4_Q5_Q6_Q7 = 168,
+  Q5_Q6_Q7_Q8 = 169,
+  Q6_Q7_Q8_Q9 = 170,
+  Q7_Q8_Q9_Q10 = 171,
+  Q8_Q9_Q10_Q11 = 172,
+  Q9_Q10_Q11_Q12 = 173,
+  Q10_Q11_Q12_Q13 = 174,
+  Q11_Q12_Q13_Q14 = 175,
+  Q12_Q13_Q14_Q15 = 176,
+  R0_R1 = 177,
+  R2_R3 = 178,
+  R4_R5 = 179,
+  R6_R7 = 180,
+  R8_R9 = 181,
+  R10_R11 = 182,
+  R12_SP = 183,
+  D0_D1_D2 = 184,
+  D1_D2_D3 = 185,
+  D2_D3_D4 = 186,
+  D3_D4_D5 = 187,
+  D4_D5_D6 = 188,
+  D5_D6_D7 = 189,
+  D6_D7_D8 = 190,
+  D7_D8_D9 = 191,
+  D8_D9_D10 = 192,
+  D9_D10_D11 = 193,
+  D10_D11_D12 = 194,
+  D11_D12_D13 = 195,
+  D12_D13_D14 = 196,
+  D13_D14_D15 = 197,
+  D14_D15_D16 = 198,
+  D15_D16_D17 = 199,
+  D16_D17_D18 = 200,
+  D17_D18_D19 = 201,
+  D18_D19_D20 = 202,
+  D19_D20_D21 = 203,
+  D20_D21_D22 = 204,
+  D21_D22_D23 = 205,
+  D22_D23_D24 = 206,
+  D23_D24_D25 = 207,
+  D24_D25_D26 = 208,
+  D25_D26_D27 = 209,
+  D26_D27_D28 = 210,
+  D27_D28_D29 = 211,
+  D28_D29_D30 = 212,
+  D29_D30_D31 = 213,
+  D0_D2_D4 = 214,
+  D1_D3_D5 = 215,
+  D2_D4_D6 = 216,
+  D3_D5_D7 = 217,
+  D4_D6_D8 = 218,
+  D5_D7_D9 = 219,
+  D6_D8_D10 = 220,
+  D7_D9_D11 = 221,
+  D8_D10_D12 = 222,
+  D9_D11_D13 = 223,
+  D10_D12_D14 = 224,
+  D11_D13_D15 = 225,
+  D12_D14_D16 = 226,
+  D13_D15_D17 = 227,
+  D14_D16_D18 = 228,
+  D15_D17_D19 = 229,
+  D16_D18_D20 = 230,
+  D17_D19_D21 = 231,
+  D18_D20_D22 = 232,
+  D19_D21_D23 = 233,
+  D20_D22_D24 = 234,
+  D21_D23_D25 = 235,
+  D22_D24_D26 = 236,
+  D23_D25_D27 = 237,
+  D24_D26_D28 = 238,
+  D25_D27_D29 = 239,
+  D26_D28_D30 = 240,
+  D27_D29_D31 = 241,
+  D0_D2_D4_D6 = 242,
+  D1_D3_D5_D7 = 243,
+  D2_D4_D6_D8 = 244,
+  D3_D5_D7_D9 = 245,
+  D4_D6_D8_D10 = 246,
+  D5_D7_D9_D11 = 247,
+  D6_D8_D10_D12 = 248,
+  D7_D9_D11_D13 = 249,
+  D8_D10_D12_D14 = 250,
+  D9_D11_D13_D15 = 251,
+  D10_D12_D14_D16 = 252,
+  D11_D13_D15_D17 = 253,
+  D12_D14_D16_D18 = 254,
+  D13_D15_D17_D19 = 255,
+  D14_D16_D18_D20 = 256,
+  D15_D17_D19_D21 = 257,
+  D16_D18_D20_D22 = 258,
+  D17_D19_D21_D23 = 259,
+  D18_D20_D22_D24 = 260,
+  D19_D21_D23_D25 = 261,
+  D20_D22_D24_D26 = 262,
+  D21_D23_D25_D27 = 263,
+  D22_D24_D26_D28 = 264,
+  D23_D25_D27_D29 = 265,
+  D24_D26_D28_D30 = 266,
+  D25_D27_D29_D31 = 267,
+  D1_D2 = 268,
+  D3_D4 = 269,
+  D5_D6 = 270,
+  D7_D8 = 271,
+  D9_D10 = 272,
+  D11_D12 = 273,
+  D13_D14 = 274,
+  D15_D16 = 275,
+  D17_D18 = 276,
+  D19_D20 = 277,
+  D21_D22 = 278,
+  D23_D24 = 279,
+  D25_D26 = 280,
+  D27_D28 = 281,
+  D29_D30 = 282,
+  D1_D2_D3_D4 = 283,
+  D3_D4_D5_D6 = 284,
+  D5_D6_D7_D8 = 285,
+  D7_D8_D9_D10 = 286,
+  D9_D10_D11_D12 = 287,
+  D11_D12_D13_D14 = 288,
+  D13_D14_D15_D16 = 289,
+  D15_D16_D17_D18 = 290,
+  D17_D18_D19_D20 = 291,
+  D19_D20_D21_D22 = 292,
+  D21_D22_D23_D24 = 293,
+  D23_D24_D25_D26 = 294,
+  D25_D26_D27_D28 = 295,
+  D27_D28_D29_D30 = 296,
+  NUM_TARGET_REGS = 297,
 };

 }
diff --git a/deps/LIEF/include/LIEF/asm/ebpf.hpp b/deps/LIEF/include/LIEF/asm/ebpf.hpp
index cd0b05a84ca..a80835d37c4 100644
--- a/deps/LIEF/include/LIEF/asm/ebpf.hpp
+++ b/deps/LIEF/include/LIEF/asm/ebpf.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -18,4 +18,5 @@
 #include <LIEF/asm/ebpf/Instruction.hpp>
 #include <LIEF/asm/ebpf/opcodes.hpp>
 #include <LIEF/asm/ebpf/registers.hpp>
+#include <LIEF/asm/ebpf/operands.hpp>
 #endif
diff --git a/deps/LIEF/include/LIEF/asm/ebpf/Instruction.hpp b/deps/LIEF/include/LIEF/asm/ebpf/Instruction.hpp
index 80e6d24d37c..9cc45c03774 100644
--- a/deps/LIEF/include/LIEF/asm/ebpf/Instruction.hpp
+++ b/deps/LIEF/include/LIEF/asm/ebpf/Instruction.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -15,9 +15,11 @@
 #ifndef LIEF_ASM_EBPF_INST_H
 #define LIEF_ASM_EBPF_INST_H
 #include "LIEF/visibility.h"
+#include "LIEF/compiler_attributes.hpp"

 #include "LIEF/asm/Instruction.hpp"
 #include "LIEF/asm/ebpf/opcodes.hpp"
+#include "LIEF/asm/ebpf/Operand.hpp"

 namespace LIEF {
 namespace assembly {
@@ -30,9 +32,14 @@ class LIEF_API Instruction : public assembly::Instruction {
   public:
   using assembly::Instruction::Instruction;

+  using operands_it = iterator_range<Operand::Iterator>;
+
   /// The instruction opcode as defined in LLVM
   OPCODE opcode() const;

+  /// Iterator over the operands of the current instruction
+  operands_it operands() const LIEF_LIFETIMEBOUND;
+
   /// True if `inst` is an **effective** instance of ebpf::Instruction
   static bool classof(const assembly::Instruction* inst);

diff --git a/deps/LIEF/include/LIEF/asm/ebpf/Operand.hpp b/deps/LIEF/include/LIEF/asm/ebpf/Operand.hpp
new file mode 100644
index 00000000000..817f7d1bfac
--- /dev/null
+++ b/deps/LIEF/include/LIEF/asm/ebpf/Operand.hpp
@@ -0,0 +1,136 @@
+/* Copyright 2022 - 2026 R. Thomas
+ *
+ * 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.
+ */
+#ifndef LIEF_ASM_EBPF_OPERAND_H
+#define LIEF_ASM_EBPF_OPERAND_H
+#include "LIEF/visibility.h"
+#include "LIEF/compiler_attributes.hpp"
+#include "LIEF/iterators.hpp"
+
+#include <memory>
+#include <string>
+#include <cassert>
+
+#include <ostream>
+
+namespace LIEF {
+namespace assembly {
+namespace ebpf {
+
+namespace details {
+class Operand;
+class OperandIt;
+}
+
+/// This class represents an operand for an eBPF instruction
+class LIEF_API Operand {
+  public:
+  /// **Forward** iterator that lazily disassembles ebpf Operand.
+  class Iterator final
+    : public iterator_facade_base<Iterator, std::forward_iterator_tag, Operand,
+                                  std::ptrdiff_t, const Operand*, const Operand&> {
+    public:
+    using implementation = details::OperandIt;
+    using iterator_facade_base::operator++;
+
+    LIEF_API Iterator();
+
+    LIEF_API Iterator(std::unique_ptr<details::OperandIt> impl);
+    LIEF_API Iterator(const Iterator&);
+    LIEF_API Iterator& operator=(const Iterator&);
+
+    LIEF_API Iterator(Iterator&&) noexcept;
+    LIEF_API Iterator& operator=(Iterator&&) noexcept;
+
+    LIEF_API ~Iterator();
+
+    // NOLINTNEXTLINE(bugprone-derived-method-shadowing-base-method)
+    LIEF_API Iterator& operator++() LIEF_LIFETIMEBOUND;
+
+    friend LIEF_API bool operator==(const Iterator& LHS, const Iterator& RHS);
+
+    friend bool operator!=(const Iterator& LHS, const Iterator& RHS) {
+      return !(LHS == RHS);
+    }
+
+    LIEF_API const Operand& operator*() const LIEF_LIFETIMEBOUND;
+
+    // NOLINTNEXTLINE(bugprone-derived-method-shadowing-base-method)
+    LIEF_API const Operand* operator->() const LIEF_LIFETIMEBOUND;
+
+    /// Transfer ownership of the operand at the current position to the
+    /// caller. Returns `nullptr` if the iterator is past-the-end.
+    LIEF_API std::unique_ptr<Operand> yield();
+
+    private:
+    void load() const;
+
+    std::unique_ptr<details::OperandIt> impl_;
+    mutable std::unique_ptr<Operand> cached_;
+  };
+
+  /// Pretty representation of the operand
+  std::string to_string() const;
+
+  /// This function can be used to **down cast** an Operand instance:
+  ///
+  /// ```cpp
+  /// std::unique_ptr<assembly::ebpf::Operand> op = ...;
+  /// if (const auto* imm = inst->as<assembly::ebpf::operands::Immediate>()) {
+  ///   const int64_t value = imm->value();
+  /// }
+  /// ```
+  template<class T>
+  const T* as() const LIEF_LIFETIMEBOUND {
+    static_assert(std::is_base_of<Operand, T>::value,
+                  "Require Operand inheritance");
+    if (T::classof(this)) {
+      return static_cast<const T*>(this);
+    }
+    return nullptr;
+  }
+
+  virtual ~Operand();
+
+  /// @private
+  static LIEF_LOCAL std::unique_ptr<Operand>
+      create(std::unique_ptr<details::Operand> impl);
+
+  /// @private
+  LIEF_LOCAL const details::Operand& impl() const LIEF_LIFETIMEBOUND {
+    assert(impl_ != nullptr);
+    return *impl_;
+  }
+
+  /// @private
+  LIEF_LOCAL details::Operand& impl() LIEF_LIFETIMEBOUND {
+    assert(impl_ != nullptr);
+    return *impl_;
+  }
+
+  friend LIEF_API std::ostream& operator<<(std::ostream& os, const Operand& op) {
+    os << op.to_string();
+    return os;
+  }
+
+  protected:
+  LIEF_LOCAL Operand(std::unique_ptr<details::Operand> impl);
+  std::unique_ptr<details::Operand> impl_;
+};
+
+}
+}
+}
+
+#endif
diff --git a/deps/LIEF/include/LIEF/asm/ebpf/opcodes.hpp b/deps/LIEF/include/LIEF/asm/ebpf/opcodes.hpp
index 1bcc0618192..ccb23396ae1 100644
--- a/deps/LIEF/include/LIEF/asm/ebpf/opcodes.hpp
+++ b/deps/LIEF/include/LIEF/asm/ebpf/opcodes.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -15,7 +15,7 @@
 #ifndef LIEF_ASM_EBPF_OPCODE_H
 #define LIEF_ASM_EBPF_OPCODE_H

-/* Generated from LLVM: 21.1.0 */
+/* Generated from LLVM: 22.1.8 */

 namespace LIEF {
 namespace assembly {
@@ -42,499 +42,509 @@ enum class OPCODE {
   DBG_LABEL = 18,
   REG_SEQUENCE = 19,
   COPY = 20,
-  BUNDLE = 21,
-  LIFETIME_START = 22,
-  LIFETIME_END = 23,
-  PSEUDO_PROBE = 24,
-  ARITH_FENCE = 25,
-  STACKMAP = 26,
-  FENTRY_CALL = 27,
-  PATCHPOINT = 28,
-  LOAD_STACK_GUARD = 29,
-  PREALLOCATED_SETUP = 30,
-  PREALLOCATED_ARG = 31,
-  STATEPOINT = 32,
-  LOCAL_ESCAPE = 33,
-  FAULTING_OP = 34,
-  PATCHABLE_OP = 35,
-  PATCHABLE_FUNCTION_ENTER = 36,
-  PATCHABLE_RET = 37,
-  PATCHABLE_FUNCTION_EXIT = 38,
-  PATCHABLE_TAIL_CALL = 39,
-  PATCHABLE_EVENT_CALL = 40,
-  PATCHABLE_TYPED_EVENT_CALL = 41,
-  ICALL_BRANCH_FUNNEL = 42,
-  FAKE_USE = 43,
-  MEMBARRIER = 44,
-  JUMP_TABLE_DEBUG_INFO = 45,
-  CONVERGENCECTRL_ENTRY = 46,
-  CONVERGENCECTRL_ANCHOR = 47,
-  CONVERGENCECTRL_LOOP = 48,
-  CONVERGENCECTRL_GLUE = 49,
-  G_ASSERT_SEXT = 50,
-  G_ASSERT_ZEXT = 51,
-  G_ASSERT_ALIGN = 52,
-  G_ADD = 53,
-  G_SUB = 54,
-  G_MUL = 55,
-  G_SDIV = 56,
-  G_UDIV = 57,
-  G_SREM = 58,
-  G_UREM = 59,
-  G_SDIVREM = 60,
-  G_UDIVREM = 61,
-  G_AND = 62,
-  G_OR = 63,
-  G_XOR = 64,
-  G_ABDS = 65,
-  G_ABDU = 66,
-  G_IMPLICIT_DEF = 67,
-  G_PHI = 68,
-  G_FRAME_INDEX = 69,
-  G_GLOBAL_VALUE = 70,
-  G_PTRAUTH_GLOBAL_VALUE = 71,
-  G_CONSTANT_POOL = 72,
-  G_EXTRACT = 73,
-  G_UNMERGE_VALUES = 74,
-  G_INSERT = 75,
-  G_MERGE_VALUES = 76,
-  G_BUILD_VECTOR = 77,
-  G_BUILD_VECTOR_TRUNC = 78,
-  G_CONCAT_VECTORS = 79,
-  G_PTRTOINT = 80,
-  G_INTTOPTR = 81,
-  G_BITCAST = 82,
-  G_FREEZE = 83,
-  G_CONSTANT_FOLD_BARRIER = 84,
-  G_INTRINSIC_FPTRUNC_ROUND = 85,
-  G_INTRINSIC_TRUNC = 86,
-  G_INTRINSIC_ROUND = 87,
-  G_INTRINSIC_LRINT = 88,
-  G_INTRINSIC_LLRINT = 89,
-  G_INTRINSIC_ROUNDEVEN = 90,
-  G_READCYCLECOUNTER = 91,
-  G_READSTEADYCOUNTER = 92,
-  G_LOAD = 93,
-  G_SEXTLOAD = 94,
-  G_ZEXTLOAD = 95,
-  G_INDEXED_LOAD = 96,
-  G_INDEXED_SEXTLOAD = 97,
-  G_INDEXED_ZEXTLOAD = 98,
-  G_STORE = 99,
-  G_INDEXED_STORE = 100,
-  G_ATOMIC_CMPXCHG_WITH_SUCCESS = 101,
-  G_ATOMIC_CMPXCHG = 102,
-  G_ATOMICRMW_XCHG = 103,
-  G_ATOMICRMW_ADD = 104,
-  G_ATOMICRMW_SUB = 105,
-  G_ATOMICRMW_AND = 106,
-  G_ATOMICRMW_NAND = 107,
-  G_ATOMICRMW_OR = 108,
-  G_ATOMICRMW_XOR = 109,
-  G_ATOMICRMW_MAX = 110,
-  G_ATOMICRMW_MIN = 111,
-  G_ATOMICRMW_UMAX = 112,
-  G_ATOMICRMW_UMIN = 113,
-  G_ATOMICRMW_FADD = 114,
-  G_ATOMICRMW_FSUB = 115,
-  G_ATOMICRMW_FMAX = 116,
-  G_ATOMICRMW_FMIN = 117,
-  G_ATOMICRMW_FMAXIMUM = 118,
-  G_ATOMICRMW_FMINIMUM = 119,
-  G_ATOMICRMW_UINC_WRAP = 120,
-  G_ATOMICRMW_UDEC_WRAP = 121,
-  G_ATOMICRMW_USUB_COND = 122,
-  G_ATOMICRMW_USUB_SAT = 123,
-  G_FENCE = 124,
-  G_PREFETCH = 125,
-  G_BRCOND = 126,
-  G_BRINDIRECT = 127,
-  G_INVOKE_REGION_START = 128,
-  G_INTRINSIC = 129,
-  G_INTRINSIC_W_SIDE_EFFECTS = 130,
-  G_INTRINSIC_CONVERGENT = 131,
-  G_INTRINSIC_CONVERGENT_W_SIDE_EFFECTS = 132,
-  G_ANYEXT = 133,
-  G_TRUNC = 134,
-  G_TRUNC_SSAT_S = 135,
-  G_TRUNC_SSAT_U = 136,
-  G_TRUNC_USAT_U = 137,
-  G_CONSTANT = 138,
-  G_FCONSTANT = 139,
-  G_VASTART = 140,
-  G_VAARG = 141,
-  G_SEXT = 142,
-  G_SEXT_INREG = 143,
-  G_ZEXT = 144,
-  G_SHL = 145,
-  G_LSHR = 146,
-  G_ASHR = 147,
-  G_FSHL = 148,
-  G_FSHR = 149,
-  G_ROTR = 150,
-  G_ROTL = 151,
-  G_ICMP = 152,
-  G_FCMP = 153,
-  G_SCMP = 154,
-  G_UCMP = 155,
-  G_SELECT = 156,
-  G_UADDO = 157,
-  G_UADDE = 158,
-  G_USUBO = 159,
-  G_USUBE = 160,
-  G_SADDO = 161,
-  G_SADDE = 162,
-  G_SSUBO = 163,
-  G_SSUBE = 164,
-  G_UMULO = 165,
-  G_SMULO = 166,
-  G_UMULH = 167,
-  G_SMULH = 168,
-  G_UADDSAT = 169,
-  G_SADDSAT = 170,
-  G_USUBSAT = 171,
-  G_SSUBSAT = 172,
-  G_USHLSAT = 173,
-  G_SSHLSAT = 174,
-  G_SMULFIX = 175,
-  G_UMULFIX = 176,
-  G_SMULFIXSAT = 177,
-  G_UMULFIXSAT = 178,
-  G_SDIVFIX = 179,
-  G_UDIVFIX = 180,
-  G_SDIVFIXSAT = 181,
-  G_UDIVFIXSAT = 182,
-  G_FADD = 183,
-  G_FSUB = 184,
-  G_FMUL = 185,
-  G_FMA = 186,
-  G_FMAD = 187,
-  G_FDIV = 188,
-  G_FREM = 189,
-  G_FPOW = 190,
-  G_FPOWI = 191,
-  G_FEXP = 192,
-  G_FEXP2 = 193,
-  G_FEXP10 = 194,
-  G_FLOG = 195,
-  G_FLOG2 = 196,
-  G_FLOG10 = 197,
-  G_FLDEXP = 198,
-  G_FFREXP = 199,
-  G_FNEG = 200,
-  G_FPEXT = 201,
-  G_FPTRUNC = 202,
-  G_FPTOSI = 203,
-  G_FPTOUI = 204,
-  G_SITOFP = 205,
-  G_UITOFP = 206,
-  G_FPTOSI_SAT = 207,
-  G_FPTOUI_SAT = 208,
-  G_FABS = 209,
-  G_FCOPYSIGN = 210,
-  G_IS_FPCLASS = 211,
-  G_FCANONICALIZE = 212,
-  G_FMINNUM = 213,
-  G_FMAXNUM = 214,
-  G_FMINNUM_IEEE = 215,
-  G_FMAXNUM_IEEE = 216,
-  G_FMINIMUM = 217,
-  G_FMAXIMUM = 218,
-  G_FMINIMUMNUM = 219,
-  G_FMAXIMUMNUM = 220,
-  G_GET_FPENV = 221,
-  G_SET_FPENV = 222,
-  G_RESET_FPENV = 223,
-  G_GET_FPMODE = 224,
-  G_SET_FPMODE = 225,
-  G_RESET_FPMODE = 226,
-  G_GET_ROUNDING = 227,
-  G_PTR_ADD = 228,
-  G_PTRMASK = 229,
-  G_SMIN = 230,
-  G_SMAX = 231,
-  G_UMIN = 232,
-  G_UMAX = 233,
-  G_ABS = 234,
-  G_LROUND = 235,
-  G_LLROUND = 236,
-  G_BR = 237,
-  G_BRJT = 238,
-  G_VSCALE = 239,
-  G_INSERT_SUBVECTOR = 240,
-  G_EXTRACT_SUBVECTOR = 241,
-  G_INSERT_VECTOR_ELT = 242,
-  G_EXTRACT_VECTOR_ELT = 243,
-  G_SHUFFLE_VECTOR = 244,
-  G_SPLAT_VECTOR = 245,
-  G_STEP_VECTOR = 246,
-  G_VECTOR_COMPRESS = 247,
-  G_CTTZ = 248,
-  G_CTTZ_ZERO_UNDEF = 249,
-  G_CTLZ = 250,
-  G_CTLZ_ZERO_UNDEF = 251,
-  G_CTPOP = 252,
-  G_BSWAP = 253,
-  G_BITREVERSE = 254,
-  G_FCEIL = 255,
-  G_FCOS = 256,
-  G_FSIN = 257,
-  G_FSINCOS = 258,
-  G_FTAN = 259,
-  G_FACOS = 260,
-  G_FASIN = 261,
-  G_FATAN = 262,
-  G_FATAN2 = 263,
-  G_FCOSH = 264,
-  G_FSINH = 265,
-  G_FTANH = 266,
-  G_FSQRT = 267,
-  G_FFLOOR = 268,
-  G_FRINT = 269,
-  G_FNEARBYINT = 270,
-  G_ADDRSPACE_CAST = 271,
-  G_BLOCK_ADDR = 272,
-  G_JUMP_TABLE = 273,
-  G_DYN_STACKALLOC = 274,
-  G_STACKSAVE = 275,
-  G_STACKRESTORE = 276,
-  G_STRICT_FADD = 277,
-  G_STRICT_FSUB = 278,
-  G_STRICT_FMUL = 279,
-  G_STRICT_FDIV = 280,
-  G_STRICT_FREM = 281,
-  G_STRICT_FMA = 282,
-  G_STRICT_FSQRT = 283,
-  G_STRICT_FLDEXP = 284,
-  G_READ_REGISTER = 285,
-  G_WRITE_REGISTER = 286,
-  G_MEMCPY = 287,
-  G_MEMCPY_INLINE = 288,
-  G_MEMMOVE = 289,
-  G_MEMSET = 290,
-  G_BZERO = 291,
-  G_TRAP = 292,
-  G_DEBUGTRAP = 293,
-  G_UBSANTRAP = 294,
-  G_VECREDUCE_SEQ_FADD = 295,
-  G_VECREDUCE_SEQ_FMUL = 296,
-  G_VECREDUCE_FADD = 297,
-  G_VECREDUCE_FMUL = 298,
-  G_VECREDUCE_FMAX = 299,
-  G_VECREDUCE_FMIN = 300,
-  G_VECREDUCE_FMAXIMUM = 301,
-  G_VECREDUCE_FMINIMUM = 302,
-  G_VECREDUCE_ADD = 303,
-  G_VECREDUCE_MUL = 304,
-  G_VECREDUCE_AND = 305,
-  G_VECREDUCE_OR = 306,
-  G_VECREDUCE_XOR = 307,
-  G_VECREDUCE_SMAX = 308,
-  G_VECREDUCE_SMIN = 309,
-  G_VECREDUCE_UMAX = 310,
-  G_VECREDUCE_UMIN = 311,
-  G_SBFX = 312,
-  G_UBFX = 313,
-  ADJCALLSTACKDOWN = 314,
-  ADJCALLSTACKUP = 315,
-  FI_ri = 316,
-  MEMCPY = 317,
-  Select = 318,
-  Select_32 = 319,
-  Select_32_64 = 320,
-  Select_64_32 = 321,
-  Select_Ri = 322,
-  Select_Ri_32 = 323,
-  Select_Ri_32_64 = 324,
-  Select_Ri_64_32 = 325,
-  ADDR_SPACE_CAST = 326,
-  ADD_ri = 327,
-  ADD_ri_32 = 328,
-  ADD_rr = 329,
-  ADD_rr_32 = 330,
-  AND_ri = 331,
-  AND_ri_32 = 332,
-  AND_rr = 333,
-  AND_rr_32 = 334,
-  BE16 = 335,
-  BE32 = 336,
-  BE64 = 337,
-  BSWAP16 = 338,
-  BSWAP32 = 339,
-  BSWAP64 = 340,
-  CMPXCHGD = 341,
-  CMPXCHGW32 = 342,
-  CORE_LD32 = 343,
-  CORE_LD64 = 344,
-  CORE_SHIFT = 345,
-  CORE_ST = 346,
-  DIV_ri = 347,
-  DIV_ri_32 = 348,
-  DIV_rr = 349,
-  DIV_rr_32 = 350,
-  JAL = 351,
-  JALX = 352,
-  JCOND = 353,
-  JEQ_ri = 354,
-  JEQ_ri_32 = 355,
-  JEQ_rr = 356,
-  JEQ_rr_32 = 357,
-  JMP = 358,
-  JMPL = 359,
-  JNE_ri = 360,
-  JNE_ri_32 = 361,
-  JNE_rr = 362,
-  JNE_rr_32 = 363,
-  JSET_ri = 364,
-  JSET_ri_32 = 365,
-  JSET_rr = 366,
-  JSET_rr_32 = 367,
-  JSGE_ri = 368,
-  JSGE_ri_32 = 369,
-  JSGE_rr = 370,
-  JSGE_rr_32 = 371,
-  JSGT_ri = 372,
-  JSGT_ri_32 = 373,
-  JSGT_rr = 374,
-  JSGT_rr_32 = 375,
-  JSLE_ri = 376,
-  JSLE_ri_32 = 377,
-  JSLE_rr = 378,
-  JSLE_rr_32 = 379,
-  JSLT_ri = 380,
-  JSLT_ri_32 = 381,
-  JSLT_rr = 382,
-  JSLT_rr_32 = 383,
-  JUGE_ri = 384,
-  JUGE_ri_32 = 385,
-  JUGE_rr = 386,
-  JUGE_rr_32 = 387,
-  JUGT_ri = 388,
-  JUGT_ri_32 = 389,
-  JUGT_rr = 390,
-  JUGT_rr_32 = 391,
-  JULE_ri = 392,
-  JULE_ri_32 = 393,
-  JULE_rr = 394,
-  JULE_rr_32 = 395,
-  JULT_ri = 396,
-  JULT_ri_32 = 397,
-  JULT_rr = 398,
-  JULT_rr_32 = 399,
-  LDB = 400,
-  LDB32 = 401,
-  LDBACQ32 = 402,
-  LDBSX = 403,
-  LDD = 404,
-  LDDACQ = 405,
-  LDH = 406,
-  LDH32 = 407,
-  LDHACQ32 = 408,
-  LDHSX = 409,
-  LDW = 410,
-  LDW32 = 411,
-  LDWACQ32 = 412,
-  LDWSX = 413,
-  LD_ABS_B = 414,
-  LD_ABS_H = 415,
-  LD_ABS_W = 416,
-  LD_IND_B = 417,
-  LD_IND_H = 418,
-  LD_IND_W = 419,
-  LD_imm64 = 420,
-  LD_pseudo = 421,
-  LE16 = 422,
-  LE32 = 423,
-  LE64 = 424,
-  MOD_ri = 425,
-  MOD_ri_32 = 426,
-  MOD_rr = 427,
-  MOD_rr_32 = 428,
-  MOVSX_rr_16 = 429,
-  MOVSX_rr_32 = 430,
-  MOVSX_rr_32_16 = 431,
-  MOVSX_rr_32_8 = 432,
-  MOVSX_rr_8 = 433,
-  MOV_32_64 = 434,
-  MOV_ri = 435,
-  MOV_ri_32 = 436,
-  MOV_rr = 437,
-  MOV_rr_32 = 438,
-  MUL_ri = 439,
-  MUL_ri_32 = 440,
-  MUL_rr = 441,
-  MUL_rr_32 = 442,
-  NEG_32 = 443,
-  NEG_64 = 444,
-  NOP = 445,
-  OR_ri = 446,
-  OR_ri_32 = 447,
-  OR_rr = 448,
-  OR_rr_32 = 449,
-  RET = 450,
-  SDIV_ri = 451,
-  SDIV_ri_32 = 452,
-  SDIV_rr = 453,
-  SDIV_rr_32 = 454,
-  SLL_ri = 455,
-  SLL_ri_32 = 456,
-  SLL_rr = 457,
-  SLL_rr_32 = 458,
-  SMOD_ri = 459,
-  SMOD_ri_32 = 460,
-  SMOD_rr = 461,
-  SMOD_rr_32 = 462,
-  SRA_ri = 463,
-  SRA_ri_32 = 464,
-  SRA_rr = 465,
-  SRA_rr_32 = 466,
-  SRL_ri = 467,
-  SRL_ri_32 = 468,
-  SRL_rr = 469,
-  SRL_rr_32 = 470,
-  STB = 471,
-  STB32 = 472,
-  STBREL32 = 473,
-  STB_imm = 474,
-  STD = 475,
-  STDREL = 476,
-  STD_imm = 477,
-  STH = 478,
-  STH32 = 479,
-  STHREL32 = 480,
-  STH_imm = 481,
-  STW = 482,
-  STW32 = 483,
-  STWREL32 = 484,
-  STW_imm = 485,
-  SUB_ri = 486,
-  SUB_ri_32 = 487,
-  SUB_rr = 488,
-  SUB_rr_32 = 489,
-  XADDD = 490,
-  XADDW = 491,
-  XADDW32 = 492,
-  XANDD = 493,
-  XANDW32 = 494,
-  XCHGD = 495,
-  XCHGW32 = 496,
-  XFADDD = 497,
-  XFADDW32 = 498,
-  XFANDD = 499,
-  XFANDW32 = 500,
-  XFORD = 501,
-  XFORW32 = 502,
-  XFXORD = 503,
-  XFXORW32 = 504,
-  XORD = 505,
-  XORW32 = 506,
-  XOR_ri = 507,
-  XOR_ri_32 = 508,
-  XOR_rr = 509,
-  XOR_rr_32 = 510,
-  XXORD = 511,
-  XXORW32 = 512,
-  INSTRUCTION_LIST_END = 513,
+  COPY_LANEMASK = 21,
+  BUNDLE = 22,
+  LIFETIME_START = 23,
+  LIFETIME_END = 24,
+  PSEUDO_PROBE = 25,
+  ARITH_FENCE = 26,
+  STACKMAP = 27,
+  FENTRY_CALL = 28,
+  PATCHPOINT = 29,
+  LOAD_STACK_GUARD = 30,
+  PREALLOCATED_SETUP = 31,
+  PREALLOCATED_ARG = 32,
+  STATEPOINT = 33,
+  LOCAL_ESCAPE = 34,
+  FAULTING_OP = 35,
+  PATCHABLE_OP = 36,
+  PATCHABLE_FUNCTION_ENTER = 37,
+  PATCHABLE_RET = 38,
+  PATCHABLE_FUNCTION_EXIT = 39,
+  PATCHABLE_TAIL_CALL = 40,
+  PATCHABLE_EVENT_CALL = 41,
+  PATCHABLE_TYPED_EVENT_CALL = 42,
+  ICALL_BRANCH_FUNNEL = 43,
+  FAKE_USE = 44,
+  MEMBARRIER = 45,
+  JUMP_TABLE_DEBUG_INFO = 46,
+  RELOC_NONE = 47,
+  CONVERGENCECTRL_ENTRY = 48,
+  CONVERGENCECTRL_ANCHOR = 49,
+  CONVERGENCECTRL_LOOP = 50,
+  CONVERGENCECTRL_GLUE = 51,
+  G_ASSERT_SEXT = 52,
+  G_ASSERT_ZEXT = 53,
+  G_ASSERT_ALIGN = 54,
+  G_ADD = 55,
+  G_SUB = 56,
+  G_MUL = 57,
+  G_SDIV = 58,
+  G_UDIV = 59,
+  G_SREM = 60,
+  G_UREM = 61,
+  G_SDIVREM = 62,
+  G_UDIVREM = 63,
+  G_AND = 64,
+  G_OR = 65,
+  G_XOR = 66,
+  G_ABDS = 67,
+  G_ABDU = 68,
+  G_UAVGFLOOR = 69,
+  G_UAVGCEIL = 70,
+  G_SAVGFLOOR = 71,
+  G_SAVGCEIL = 72,
+  G_IMPLICIT_DEF = 73,
+  G_PHI = 74,
+  G_FRAME_INDEX = 75,
+  G_GLOBAL_VALUE = 76,
+  G_PTRAUTH_GLOBAL_VALUE = 77,
+  G_CONSTANT_POOL = 78,
+  G_EXTRACT = 79,
+  G_UNMERGE_VALUES = 80,
+  G_INSERT = 81,
+  G_MERGE_VALUES = 82,
+  G_BUILD_VECTOR = 83,
+  G_BUILD_VECTOR_TRUNC = 84,
+  G_CONCAT_VECTORS = 85,
+  G_PTRTOINT = 86,
+  G_INTTOPTR = 87,
+  G_BITCAST = 88,
+  G_FREEZE = 89,
+  G_CONSTANT_FOLD_BARRIER = 90,
+  G_INTRINSIC_FPTRUNC_ROUND = 91,
+  G_INTRINSIC_TRUNC = 92,
+  G_INTRINSIC_ROUND = 93,
+  G_INTRINSIC_LRINT = 94,
+  G_INTRINSIC_LLRINT = 95,
+  G_INTRINSIC_ROUNDEVEN = 96,
+  G_READCYCLECOUNTER = 97,
+  G_READSTEADYCOUNTER = 98,
+  G_LOAD = 99,
+  G_SEXTLOAD = 100,
+  G_ZEXTLOAD = 101,
+  G_INDEXED_LOAD = 102,
+  G_INDEXED_SEXTLOAD = 103,
+  G_INDEXED_ZEXTLOAD = 104,
+  G_STORE = 105,
+  G_INDEXED_STORE = 106,
+  G_ATOMIC_CMPXCHG_WITH_SUCCESS = 107,
+  G_ATOMIC_CMPXCHG = 108,
+  G_ATOMICRMW_XCHG = 109,
+  G_ATOMICRMW_ADD = 110,
+  G_ATOMICRMW_SUB = 111,
+  G_ATOMICRMW_AND = 112,
+  G_ATOMICRMW_NAND = 113,
+  G_ATOMICRMW_OR = 114,
+  G_ATOMICRMW_XOR = 115,
+  G_ATOMICRMW_MAX = 116,
+  G_ATOMICRMW_MIN = 117,
+  G_ATOMICRMW_UMAX = 118,
+  G_ATOMICRMW_UMIN = 119,
+  G_ATOMICRMW_FADD = 120,
+  G_ATOMICRMW_FSUB = 121,
+  G_ATOMICRMW_FMAX = 122,
+  G_ATOMICRMW_FMIN = 123,
+  G_ATOMICRMW_FMAXIMUM = 124,
+  G_ATOMICRMW_FMINIMUM = 125,
+  G_ATOMICRMW_UINC_WRAP = 126,
+  G_ATOMICRMW_UDEC_WRAP = 127,
+  G_ATOMICRMW_USUB_COND = 128,
+  G_ATOMICRMW_USUB_SAT = 129,
+  G_FENCE = 130,
+  G_PREFETCH = 131,
+  G_BRCOND = 132,
+  G_BRINDIRECT = 133,
+  G_INVOKE_REGION_START = 134,
+  G_INTRINSIC = 135,
+  G_INTRINSIC_W_SIDE_EFFECTS = 136,
+  G_INTRINSIC_CONVERGENT = 137,
+  G_INTRINSIC_CONVERGENT_W_SIDE_EFFECTS = 138,
+  G_ANYEXT = 139,
+  G_TRUNC = 140,
+  G_TRUNC_SSAT_S = 141,
+  G_TRUNC_SSAT_U = 142,
+  G_TRUNC_USAT_U = 143,
+  G_CONSTANT = 144,
+  G_FCONSTANT = 145,
+  G_VASTART = 146,
+  G_VAARG = 147,
+  G_SEXT = 148,
+  G_SEXT_INREG = 149,
+  G_ZEXT = 150,
+  G_SHL = 151,
+  G_LSHR = 152,
+  G_ASHR = 153,
+  G_FSHL = 154,
+  G_FSHR = 155,
+  G_ROTR = 156,
+  G_ROTL = 157,
+  G_ICMP = 158,
+  G_FCMP = 159,
+  G_SCMP = 160,
+  G_UCMP = 161,
+  G_SELECT = 162,
+  G_UADDO = 163,
+  G_UADDE = 164,
+  G_USUBO = 165,
+  G_USUBE = 166,
+  G_SADDO = 167,
+  G_SADDE = 168,
+  G_SSUBO = 169,
+  G_SSUBE = 170,
+  G_UMULO = 171,
+  G_SMULO = 172,
+  G_UMULH = 173,
+  G_SMULH = 174,
+  G_UADDSAT = 175,
+  G_SADDSAT = 176,
+  G_USUBSAT = 177,
+  G_SSUBSAT = 178,
+  G_USHLSAT = 179,
+  G_SSHLSAT = 180,
+  G_SMULFIX = 181,
+  G_UMULFIX = 182,
+  G_SMULFIXSAT = 183,
+  G_UMULFIXSAT = 184,
+  G_SDIVFIX = 185,
+  G_UDIVFIX = 186,
+  G_SDIVFIXSAT = 187,
+  G_UDIVFIXSAT = 188,
+  G_FADD = 189,
+  G_FSUB = 190,
+  G_FMUL = 191,
+  G_FMA = 192,
+  G_FMAD = 193,
+  G_FDIV = 194,
+  G_FREM = 195,
+  G_FMODF = 196,
+  G_FPOW = 197,
+  G_FPOWI = 198,
+  G_FEXP = 199,
+  G_FEXP2 = 200,
+  G_FEXP10 = 201,
+  G_FLOG = 202,
+  G_FLOG2 = 203,
+  G_FLOG10 = 204,
+  G_FLDEXP = 205,
+  G_FFREXP = 206,
+  G_FNEG = 207,
+  G_FPEXT = 208,
+  G_FPTRUNC = 209,
+  G_FPTOSI = 210,
+  G_FPTOUI = 211,
+  G_SITOFP = 212,
+  G_UITOFP = 213,
+  G_FPTOSI_SAT = 214,
+  G_FPTOUI_SAT = 215,
+  G_FABS = 216,
+  G_FCOPYSIGN = 217,
+  G_IS_FPCLASS = 218,
+  G_FCANONICALIZE = 219,
+  G_FMINNUM = 220,
+  G_FMAXNUM = 221,
+  G_FMINNUM_IEEE = 222,
+  G_FMAXNUM_IEEE = 223,
+  G_FMINIMUM = 224,
+  G_FMAXIMUM = 225,
+  G_FMINIMUMNUM = 226,
+  G_FMAXIMUMNUM = 227,
+  G_GET_FPENV = 228,
+  G_SET_FPENV = 229,
+  G_RESET_FPENV = 230,
+  G_GET_FPMODE = 231,
+  G_SET_FPMODE = 232,
+  G_RESET_FPMODE = 233,
+  G_GET_ROUNDING = 234,
+  G_SET_ROUNDING = 235,
+  G_PTR_ADD = 236,
+  G_PTRMASK = 237,
+  G_SMIN = 238,
+  G_SMAX = 239,
+  G_UMIN = 240,
+  G_UMAX = 241,
+  G_ABS = 242,
+  G_LROUND = 243,
+  G_LLROUND = 244,
+  G_BR = 245,
+  G_BRJT = 246,
+  G_VSCALE = 247,
+  G_INSERT_SUBVECTOR = 248,
+  G_EXTRACT_SUBVECTOR = 249,
+  G_INSERT_VECTOR_ELT = 250,
+  G_EXTRACT_VECTOR_ELT = 251,
+  G_SHUFFLE_VECTOR = 252,
+  G_SPLAT_VECTOR = 253,
+  G_STEP_VECTOR = 254,
+  G_VECTOR_COMPRESS = 255,
+  G_CTTZ = 256,
+  G_CTTZ_ZERO_UNDEF = 257,
+  G_CTLZ = 258,
+  G_CTLZ_ZERO_UNDEF = 259,
+  G_CTPOP = 260,
+  G_BSWAP = 261,
+  G_BITREVERSE = 262,
+  G_FCEIL = 263,
+  G_FCOS = 264,
+  G_FSIN = 265,
+  G_FSINCOS = 266,
+  G_FTAN = 267,
+  G_FACOS = 268,
+  G_FASIN = 269,
+  G_FATAN = 270,
+  G_FATAN2 = 271,
+  G_FCOSH = 272,
+  G_FSINH = 273,
+  G_FTANH = 274,
+  G_FSQRT = 275,
+  G_FFLOOR = 276,
+  G_FRINT = 277,
+  G_FNEARBYINT = 278,
+  G_ADDRSPACE_CAST = 279,
+  G_BLOCK_ADDR = 280,
+  G_JUMP_TABLE = 281,
+  G_DYN_STACKALLOC = 282,
+  G_STACKSAVE = 283,
+  G_STACKRESTORE = 284,
+  G_STRICT_FADD = 285,
+  G_STRICT_FSUB = 286,
+  G_STRICT_FMUL = 287,
+  G_STRICT_FDIV = 288,
+  G_STRICT_FREM = 289,
+  G_STRICT_FMA = 290,
+  G_STRICT_FSQRT = 291,
+  G_STRICT_FLDEXP = 292,
+  G_READ_REGISTER = 293,
+  G_WRITE_REGISTER = 294,
+  G_MEMCPY = 295,
+  G_MEMCPY_INLINE = 296,
+  G_MEMMOVE = 297,
+  G_MEMSET = 298,
+  G_BZERO = 299,
+  G_TRAP = 300,
+  G_DEBUGTRAP = 301,
+  G_UBSANTRAP = 302,
+  G_VECREDUCE_SEQ_FADD = 303,
+  G_VECREDUCE_SEQ_FMUL = 304,
+  G_VECREDUCE_FADD = 305,
+  G_VECREDUCE_FMUL = 306,
+  G_VECREDUCE_FMAX = 307,
+  G_VECREDUCE_FMIN = 308,
+  G_VECREDUCE_FMAXIMUM = 309,
+  G_VECREDUCE_FMINIMUM = 310,
+  G_VECREDUCE_ADD = 311,
+  G_VECREDUCE_MUL = 312,
+  G_VECREDUCE_AND = 313,
+  G_VECREDUCE_OR = 314,
+  G_VECREDUCE_XOR = 315,
+  G_VECREDUCE_SMAX = 316,
+  G_VECREDUCE_SMIN = 317,
+  G_VECREDUCE_UMAX = 318,
+  G_VECREDUCE_UMIN = 319,
+  G_SBFX = 320,
+  G_UBFX = 321,
+  ADJCALLSTACKDOWN = 322,
+  ADJCALLSTACKUP = 323,
+  FI_ri = 324,
+  LDIMM64 = 325,
+  MEMCPY = 326,
+  Select = 327,
+  Select_32 = 328,
+  Select_32_64 = 329,
+  Select_64_32 = 330,
+  Select_Ri = 331,
+  Select_Ri_32 = 332,
+  Select_Ri_32_64 = 333,
+  Select_Ri_64_32 = 334,
+  ADDR_SPACE_CAST = 335,
+  ADD_ri = 336,
+  ADD_ri_32 = 337,
+  ADD_rr = 338,
+  ADD_rr_32 = 339,
+  AND_ri = 340,
+  AND_ri_32 = 341,
+  AND_rr = 342,
+  AND_rr_32 = 343,
+  BE16 = 344,
+  BE32 = 345,
+  BE64 = 346,
+  BSWAP16 = 347,
+  BSWAP32 = 348,
+  BSWAP64 = 349,
+  CMPXCHGD = 350,
+  CMPXCHGW32 = 351,
+  CORE_LD32 = 352,
+  CORE_LD64 = 353,
+  CORE_SHIFT = 354,
+  CORE_ST = 355,
+  DIV_ri = 356,
+  DIV_ri_32 = 357,
+  DIV_rr = 358,
+  DIV_rr_32 = 359,
+  JAL = 360,
+  JALX = 361,
+  JCOND = 362,
+  JEQ_ri = 363,
+  JEQ_ri_32 = 364,
+  JEQ_rr = 365,
+  JEQ_rr_32 = 366,
+  JMP = 367,
+  JMPL = 368,
+  JNE_ri = 369,
+  JNE_ri_32 = 370,
+  JNE_rr = 371,
+  JNE_rr_32 = 372,
+  JSET_ri = 373,
+  JSET_ri_32 = 374,
+  JSET_rr = 375,
+  JSET_rr_32 = 376,
+  JSGE_ri = 377,
+  JSGE_ri_32 = 378,
+  JSGE_rr = 379,
+  JSGE_rr_32 = 380,
+  JSGT_ri = 381,
+  JSGT_ri_32 = 382,
+  JSGT_rr = 383,
+  JSGT_rr_32 = 384,
+  JSLE_ri = 385,
+  JSLE_ri_32 = 386,
+  JSLE_rr = 387,
+  JSLE_rr_32 = 388,
+  JSLT_ri = 389,
+  JSLT_ri_32 = 390,
+  JSLT_rr = 391,
+  JSLT_rr_32 = 392,
+  JUGE_ri = 393,
+  JUGE_ri_32 = 394,
+  JUGE_rr = 395,
+  JUGE_rr_32 = 396,
+  JUGT_ri = 397,
+  JUGT_ri_32 = 398,
+  JUGT_rr = 399,
+  JUGT_rr_32 = 400,
+  JULE_ri = 401,
+  JULE_ri_32 = 402,
+  JULE_rr = 403,
+  JULE_rr_32 = 404,
+  JULT_ri = 405,
+  JULT_ri_32 = 406,
+  JULT_rr = 407,
+  JULT_rr_32 = 408,
+  JX = 409,
+  LDB = 410,
+  LDB32 = 411,
+  LDBACQ32 = 412,
+  LDBSX = 413,
+  LDD = 414,
+  LDDACQ = 415,
+  LDH = 416,
+  LDH32 = 417,
+  LDHACQ32 = 418,
+  LDHSX = 419,
+  LDW = 420,
+  LDW32 = 421,
+  LDWACQ32 = 422,
+  LDWSX = 423,
+  LD_ABS_B = 424,
+  LD_ABS_H = 425,
+  LD_ABS_W = 426,
+  LD_IND_B = 427,
+  LD_IND_H = 428,
+  LD_IND_W = 429,
+  LD_imm64 = 430,
+  LD_pseudo = 431,
+  LE16 = 432,
+  LE32 = 433,
+  LE64 = 434,
+  MOD_ri = 435,
+  MOD_ri_32 = 436,
+  MOD_rr = 437,
+  MOD_rr_32 = 438,
+  MOVSX_rr_16 = 439,
+  MOVSX_rr_32 = 440,
+  MOVSX_rr_32_16 = 441,
+  MOVSX_rr_32_8 = 442,
+  MOVSX_rr_8 = 443,
+  MOV_32_64 = 444,
+  MOV_ri = 445,
+  MOV_ri_32 = 446,
+  MOV_rr = 447,
+  MOV_rr_32 = 448,
+  MUL_ri = 449,
+  MUL_ri_32 = 450,
+  MUL_rr = 451,
+  MUL_rr_32 = 452,
+  NEG_32 = 453,
+  NEG_64 = 454,
+  NOP = 455,
+  OR_ri = 456,
+  OR_ri_32 = 457,
+  OR_rr = 458,
+  OR_rr_32 = 459,
+  RET = 460,
+  SDIV_ri = 461,
+  SDIV_ri_32 = 462,
+  SDIV_rr = 463,
+  SDIV_rr_32 = 464,
+  SLL_ri = 465,
+  SLL_ri_32 = 466,
+  SLL_rr = 467,
+  SLL_rr_32 = 468,
+  SMOD_ri = 469,
+  SMOD_ri_32 = 470,
+  SMOD_rr = 471,
+  SMOD_rr_32 = 472,
+  SRA_ri = 473,
+  SRA_ri_32 = 474,
+  SRA_rr = 475,
+  SRA_rr_32 = 476,
+  SRL_ri = 477,
+  SRL_ri_32 = 478,
+  SRL_rr = 479,
+  SRL_rr_32 = 480,
+  STB = 481,
+  STB32 = 482,
+  STBREL32 = 483,
+  STB_imm = 484,
+  STD = 485,
+  STDREL = 486,
+  STD_imm = 487,
+  STH = 488,
+  STH32 = 489,
+  STHREL32 = 490,
+  STH_imm = 491,
+  STW = 492,
+  STW32 = 493,
+  STWREL32 = 494,
+  STW_imm = 495,
+  SUB_ri = 496,
+  SUB_ri_32 = 497,
+  SUB_rr = 498,
+  SUB_rr_32 = 499,
+  XADDD = 500,
+  XADDW = 501,
+  XADDW32 = 502,
+  XANDD = 503,
+  XANDW32 = 504,
+  XCHGD = 505,
+  XCHGW32 = 506,
+  XFADDD = 507,
+  XFADDW32 = 508,
+  XFANDD = 509,
+  XFANDW32 = 510,
+  XFORD = 511,
+  XFORW32 = 512,
+  XFXORD = 513,
+  XFXORW32 = 514,
+  XORD = 515,
+  XORW32 = 516,
+  XOR_ri = 517,
+  XOR_ri_32 = 518,
+  XOR_rr = 519,
+  XOR_rr_32 = 520,
+  XXORD = 521,
+  XXORW32 = 522,
+  INSTRUCTION_LIST_END = 523,
 };
 }
 }
diff --git a/deps/LIEF/include/LIEF/asm/ebpf/operands.hpp b/deps/LIEF/include/LIEF/asm/ebpf/operands.hpp
new file mode 100644
index 00000000000..d6962cd70a5
--- /dev/null
+++ b/deps/LIEF/include/LIEF/asm/ebpf/operands.hpp
@@ -0,0 +1,22 @@
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
+ *
+ * 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.
+ */
+#ifndef LIEF_ASM_EBPF_OPERANDS_H
+#define LIEF_ASM_EBPF_OPERANDS_H
+#include <LIEF/asm/ebpf/operands/Register.hpp>
+#include <LIEF/asm/ebpf/operands/Immediate.hpp>
+#include <LIEF/asm/ebpf/operands/PCRelative.hpp>
+#include <LIEF/asm/ebpf/operands/Memory.hpp>
+#endif
diff --git a/deps/LIEF/include/LIEF/asm/ebpf/operands/Immediate.hpp b/deps/LIEF/include/LIEF/asm/ebpf/operands/Immediate.hpp
new file mode 100644
index 00000000000..6ca85137008
--- /dev/null
+++ b/deps/LIEF/include/LIEF/asm/ebpf/operands/Immediate.hpp
@@ -0,0 +1,49 @@
+/* Copyright 2022 - 2026 R. Thomas
+ *
+ * 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.
+ */
+#ifndef LIEF_ASM_EBPF_OPERAND_IMM_H
+#define LIEF_ASM_EBPF_OPERAND_IMM_H
+#include "LIEF/asm/ebpf/Operand.hpp"
+
+namespace LIEF {
+namespace assembly {
+namespace ebpf {
+/// Namespace that wraps the different eBPF operands
+namespace operands {
+
+
+/// This class represents an immediate operand (i.e. a constant)
+///
+/// For instance:
+///
+/// ```text
+/// r1 = 8
+///      |
+///      +---> Immediate(8)
+/// ```
+class LIEF_API Immediate : public Operand {
+  public:
+  using Operand::Operand;
+
+  /// The constant value wrapped by this operand
+  int64_t value() const;
+
+  static bool classof(const Operand* op);
+  ~Immediate() override = default;
+};
+}
+}
+}
+}
+#endif
diff --git a/deps/LIEF/include/LIEF/asm/ebpf/operands/Memory.hpp b/deps/LIEF/include/LIEF/asm/ebpf/operands/Memory.hpp
new file mode 100644
index 00000000000..4a497adf11c
--- /dev/null
+++ b/deps/LIEF/include/LIEF/asm/ebpf/operands/Memory.hpp
@@ -0,0 +1,57 @@
+/* Copyright 2022 - 2026 R. Thomas
+ *
+ * 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.
+ */
+#ifndef LIEF_ASM_EBPF_OPERAND_MEMORY_H
+#define LIEF_ASM_EBPF_OPERAND_MEMORY_H
+#include <cstdint>
+
+#include "LIEF/asm/ebpf/Operand.hpp"
+#include "LIEF/asm/ebpf/registers.hpp"
+
+namespace LIEF {
+namespace assembly {
+namespace ebpf {
+namespace operands {
+
+/// This class represents a memory operand.
+///
+/// ```text
+/// *(u64 *)(r1 + 8) = r2
+///           |    |
+///           |    +-----> Displacement: 8
+///           |
+///           +----------> Base: r1
+/// ```
+class LIEF_API Memory : public Operand {
+  public:
+  using Operand::Operand;
+
+  /// The base register.
+  ///
+  /// For `*(u64 *)(r1 + 8)` it would return `r1`.
+  REG base() const;
+
+  /// The displacement value.
+  ///
+  /// For `*(u64 *)(r1 + 8)` it would return `8`.
+  int64_t displacement() const;
+
+  static bool classof(const Operand* op);
+  ~Memory() override = default;
+};
+}
+}
+}
+}
+#endif
diff --git a/deps/LIEF/include/LIEF/asm/ebpf/operands/PCRelative.hpp b/deps/LIEF/include/LIEF/asm/ebpf/operands/PCRelative.hpp
new file mode 100644
index 00000000000..9d02038ace0
--- /dev/null
+++ b/deps/LIEF/include/LIEF/asm/ebpf/operands/PCRelative.hpp
@@ -0,0 +1,47 @@
+/* Copyright 2022 - 2026 R. Thomas
+ *
+ * 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.
+ */
+#ifndef LIEF_ASM_EBPF_OPERAND_PCREL_H
+#define LIEF_ASM_EBPF_OPERAND_PCREL_H
+#include "LIEF/asm/ebpf/Operand.hpp"
+
+namespace LIEF {
+namespace assembly {
+namespace ebpf {
+namespace operands {
+
+/// This class represents a PC-relative operand.
+///
+/// ```text
+/// if r1 == 0 goto +5
+///                 |
+///                 v
+///         PC Relative operand
+/// ```
+class LIEF_API PCRelative : public Operand {
+  public:
+  using Operand::Operand;
+
+  /// The effective value that is relative to the current `pc` register
+  int64_t value() const;
+
+  static bool classof(const Operand* op);
+
+  ~PCRelative() override = default;
+};
+}
+}
+}
+}
+#endif
diff --git a/deps/LIEF/include/LIEF/asm/ebpf/operands/Register.hpp b/deps/LIEF/include/LIEF/asm/ebpf/operands/Register.hpp
new file mode 100644
index 00000000000..fdac41367ce
--- /dev/null
+++ b/deps/LIEF/include/LIEF/asm/ebpf/operands/Register.hpp
@@ -0,0 +1,51 @@
+/* Copyright 2022 - 2026 R. Thomas
+ *
+ * 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.
+ */
+#ifndef LIEF_ASM_EBPF_OPERAND_REG_H
+#define LIEF_ASM_EBPF_OPERAND_REG_H
+
+#include "LIEF/asm/ebpf/Operand.hpp"
+#include "LIEF/asm/ebpf/registers.hpp"
+
+namespace LIEF {
+namespace assembly {
+namespace ebpf {
+namespace operands {
+
+/// This class represents a register operand.
+///
+/// For instance:
+///
+/// ```text
+/// r0 = r1
+///  |    |
+///  |    +---------> Register(r1)
+///  |
+///  +--------------> Register(r0)
+/// ```
+class LIEF_API Register : public Operand {
+  public:
+  using Operand::Operand;
+
+  /// The effective REG wrapped by this operand
+  REG value() const;
+
+  static bool classof(const Operand* op);
+  ~Register() override = default;
+};
+}
+}
+}
+}
+#endif
diff --git a/deps/LIEF/include/LIEF/asm/ebpf/registers.hpp b/deps/LIEF/include/LIEF/asm/ebpf/registers.hpp
index 67d5b023c17..b76b36158ee 100644
--- a/deps/LIEF/include/LIEF/asm/ebpf/registers.hpp
+++ b/deps/LIEF/include/LIEF/asm/ebpf/registers.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/deps/LIEF/include/LIEF/asm/mips.hpp b/deps/LIEF/include/LIEF/asm/mips.hpp
index 64641b4acb9..d7395c38df7 100644
--- a/deps/LIEF/include/LIEF/asm/mips.hpp
+++ b/deps/LIEF/include/LIEF/asm/mips.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -18,4 +18,5 @@
 #include <LIEF/asm/mips/Instruction.hpp>
 #include <LIEF/asm/mips/opcodes.hpp>
 #include <LIEF/asm/mips/registers.hpp>
+#include <LIEF/asm/mips/operands.hpp>
 #endif
diff --git a/deps/LIEF/include/LIEF/asm/mips/Instruction.hpp b/deps/LIEF/include/LIEF/asm/mips/Instruction.hpp
index 79dcfc20822..ea9a96828b6 100644
--- a/deps/LIEF/include/LIEF/asm/mips/Instruction.hpp
+++ b/deps/LIEF/include/LIEF/asm/mips/Instruction.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -15,9 +15,11 @@
 #ifndef LIEF_ASM_MIPS_INST_H
 #define LIEF_ASM_MIPS_INST_H
 #include "LIEF/visibility.h"
+#include "LIEF/compiler_attributes.hpp"

 #include "LIEF/asm/Instruction.hpp"
 #include "LIEF/asm/mips/opcodes.hpp"
+#include "LIEF/asm/mips/Operand.hpp"

 namespace LIEF {
 namespace assembly {
@@ -30,9 +32,14 @@ class LIEF_API Instruction : public assembly::Instruction {
   public:
   using assembly::Instruction::Instruction;

+  using operands_it = iterator_range<Operand::Iterator>;
+
   /// The instruction opcode as defined in LLVM
   OPCODE opcode() const;

+  /// Iterator over the operands of the current instruction
+  operands_it operands() const LIEF_LIFETIMEBOUND;
+
   /// True if `inst` is an **effective** instance of mips::Instruction
   static bool classof(const assembly::Instruction* inst);

diff --git a/deps/LIEF/include/LIEF/asm/mips/Operand.hpp b/deps/LIEF/include/LIEF/asm/mips/Operand.hpp
new file mode 100644
index 00000000000..99081019132
--- /dev/null
+++ b/deps/LIEF/include/LIEF/asm/mips/Operand.hpp
@@ -0,0 +1,135 @@
+/* Copyright 2022 - 2026 R. Thomas
+ *
+ * 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.
+ */
+#ifndef LIEF_ASM_MIPS_OPERAND_H
+#define LIEF_ASM_MIPS_OPERAND_H
+#include "LIEF/visibility.h"
+#include "LIEF/iterators.hpp"
+
+#include <memory>
+#include <string>
+#include <cassert>
+
+#include <ostream>
+
+namespace LIEF {
+namespace assembly {
+namespace mips {
+
+namespace details {
+class Operand;
+class OperandIt;
+}
+
+/// This class represents an operand for a Mips instruction
+class LIEF_API Operand {
+  public:
+  /// **Forward** iterator that lazily disassembles mips Operand.
+  class Iterator final
+    : public iterator_facade_base<Iterator, std::forward_iterator_tag, Operand,
+                                  std::ptrdiff_t, const Operand*, const Operand&> {
+    public:
+    using implementation = details::OperandIt;
+    using iterator_facade_base::operator++;
+
+    LIEF_API Iterator();
+
+    LIEF_API Iterator(std::unique_ptr<details::OperandIt> impl);
+    LIEF_API Iterator(const Iterator&);
+    LIEF_API Iterator& operator=(const Iterator&);
+
+    LIEF_API Iterator(Iterator&&) noexcept;
+    LIEF_API Iterator& operator=(Iterator&&) noexcept;
+
+    LIEF_API ~Iterator();
+
+    // NOLINTNEXTLINE(bugprone-derived-method-shadowing-base-method)
+    LIEF_API Iterator& operator++() LIEF_LIFETIMEBOUND;
+
+    friend LIEF_API bool operator==(const Iterator& LHS, const Iterator& RHS);
+
+    friend bool operator!=(const Iterator& LHS, const Iterator& RHS) {
+      return !(LHS == RHS);
+    }
+
+    LIEF_API const Operand& operator*() const LIEF_LIFETIMEBOUND;
+
+    // NOLINTNEXTLINE(bugprone-derived-method-shadowing-base-method)
+    LIEF_API const Operand* operator->() const LIEF_LIFETIMEBOUND;
+
+    /// Transfer ownership of the operand at the current position to the
+    /// caller. Returns `nullptr` if the iterator is past-the-end.
+    LIEF_API std::unique_ptr<Operand> yield();
+
+    private:
+    void load() const;
+
+    std::unique_ptr<details::OperandIt> impl_;
+    mutable std::unique_ptr<Operand> cached_;
+  };
+
+  /// Pretty representation of the operand
+  std::string to_string() const;
+
+  /// This function can be used to **down cast** an Operand instance:
+  ///
+  /// ```cpp
+  /// std::unique_ptr<assembly::mips::Operand> op = ...;
+  /// if (const auto* imm = inst->as<assembly::mips::operands::Immediate>()) {
+  ///   const int64_t value = imm->value();
+  /// }
+  /// ```
+  template<class T>
+  const T* as() const LIEF_LIFETIMEBOUND {
+    static_assert(std::is_base_of<Operand, T>::value,
+                  "Require Operand inheritance");
+    if (T::classof(this)) {
+      return static_cast<const T*>(this);
+    }
+    return nullptr;
+  }
+
+  virtual ~Operand();
+
+  /// @private
+  static LIEF_LOCAL std::unique_ptr<Operand>
+      create(std::unique_ptr<details::Operand> impl);
+
+  /// @private
+  LIEF_LOCAL const details::Operand& impl() const LIEF_LIFETIMEBOUND {
+    assert(impl_ != nullptr);
+    return *impl_;
+  }
+
+  /// @private
+  LIEF_LOCAL details::Operand& impl() LIEF_LIFETIMEBOUND {
+    assert(impl_ != nullptr);
+    return *impl_;
+  }
+
+  friend LIEF_API std::ostream& operator<<(std::ostream& os, const Operand& op) {
+    os << op.to_string();
+    return os;
+  }
+
+  protected:
+  LIEF_LOCAL Operand(std::unique_ptr<details::Operand> impl);
+  std::unique_ptr<details::Operand> impl_;
+};
+
+}
+}
+}
+
+#endif
diff --git a/deps/LIEF/include/LIEF/asm/mips/opcodes.hpp b/deps/LIEF/include/LIEF/asm/mips/opcodes.hpp
index 41532b8f1cf..766c0326fe3 100644
--- a/deps/LIEF/include/LIEF/asm/mips/opcodes.hpp
+++ b/deps/LIEF/include/LIEF/asm/mips/opcodes.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -15,7 +15,7 @@
 #ifndef LIEF_ASM_MIPS_OPCODE_H
 #define LIEF_ASM_MIPS_OPCODE_H

-/* Generated from LLVM: 21.1.0 */
+/* Generated from LLVM: 22.1.8 */

 namespace LIEF {
 namespace assembly {
@@ -42,2898 +42,2906 @@ enum class OPCODE {
   DBG_LABEL = 18,
   REG_SEQUENCE = 19,
   COPY = 20,
-  BUNDLE = 21,
-  LIFETIME_START = 22,
-  LIFETIME_END = 23,
-  PSEUDO_PROBE = 24,
-  ARITH_FENCE = 25,
-  STACKMAP = 26,
-  FENTRY_CALL = 27,
-  PATCHPOINT = 28,
-  LOAD_STACK_GUARD = 29,
-  PREALLOCATED_SETUP = 30,
-  PREALLOCATED_ARG = 31,
-  STATEPOINT = 32,
-  LOCAL_ESCAPE = 33,
-  FAULTING_OP = 34,
-  PATCHABLE_OP = 35,
-  PATCHABLE_FUNCTION_ENTER = 36,
-  PATCHABLE_RET = 37,
-  PATCHABLE_FUNCTION_EXIT = 38,
-  PATCHABLE_TAIL_CALL = 39,
-  PATCHABLE_EVENT_CALL = 40,
-  PATCHABLE_TYPED_EVENT_CALL = 41,
-  ICALL_BRANCH_FUNNEL = 42,
-  FAKE_USE = 43,
-  MEMBARRIER = 44,
-  JUMP_TABLE_DEBUG_INFO = 45,
-  CONVERGENCECTRL_ENTRY = 46,
-  CONVERGENCECTRL_ANCHOR = 47,
-  CONVERGENCECTRL_LOOP = 48,
-  CONVERGENCECTRL_GLUE = 49,
-  G_ASSERT_SEXT = 50,
-  G_ASSERT_ZEXT = 51,
-  G_ASSERT_ALIGN = 52,
-  G_ADD = 53,
-  G_SUB = 54,
-  G_MUL = 55,
-  G_SDIV = 56,
-  G_UDIV = 57,
-  G_SREM = 58,
-  G_UREM = 59,
-  G_SDIVREM = 60,
-  G_UDIVREM = 61,
-  G_AND = 62,
-  G_OR = 63,
-  G_XOR = 64,
-  G_ABDS = 65,
-  G_ABDU = 66,
-  G_IMPLICIT_DEF = 67,
-  G_PHI = 68,
-  G_FRAME_INDEX = 69,
-  G_GLOBAL_VALUE = 70,
-  G_PTRAUTH_GLOBAL_VALUE = 71,
-  G_CONSTANT_POOL = 72,
-  G_EXTRACT = 73,
-  G_UNMERGE_VALUES = 74,
-  G_INSERT = 75,
-  G_MERGE_VALUES = 76,
-  G_BUILD_VECTOR = 77,
-  G_BUILD_VECTOR_TRUNC = 78,
-  G_CONCAT_VECTORS = 79,
-  G_PTRTOINT = 80,
-  G_INTTOPTR = 81,
-  G_BITCAST = 82,
-  G_FREEZE = 83,
-  G_CONSTANT_FOLD_BARRIER = 84,
-  G_INTRINSIC_FPTRUNC_ROUND = 85,
-  G_INTRINSIC_TRUNC = 86,
-  G_INTRINSIC_ROUND = 87,
-  G_INTRINSIC_LRINT = 88,
-  G_INTRINSIC_LLRINT = 89,
-  G_INTRINSIC_ROUNDEVEN = 90,
-  G_READCYCLECOUNTER = 91,
-  G_READSTEADYCOUNTER = 92,
-  G_LOAD = 93,
-  G_SEXTLOAD = 94,
-  G_ZEXTLOAD = 95,
-  G_INDEXED_LOAD = 96,
-  G_INDEXED_SEXTLOAD = 97,
-  G_INDEXED_ZEXTLOAD = 98,
-  G_STORE = 99,
-  G_INDEXED_STORE = 100,
-  G_ATOMIC_CMPXCHG_WITH_SUCCESS = 101,
-  G_ATOMIC_CMPXCHG = 102,
-  G_ATOMICRMW_XCHG = 103,
-  G_ATOMICRMW_ADD = 104,
-  G_ATOMICRMW_SUB = 105,
-  G_ATOMICRMW_AND = 106,
-  G_ATOMICRMW_NAND = 107,
-  G_ATOMICRMW_OR = 108,
-  G_ATOMICRMW_XOR = 109,
-  G_ATOMICRMW_MAX = 110,
-  G_ATOMICRMW_MIN = 111,
-  G_ATOMICRMW_UMAX = 112,
-  G_ATOMICRMW_UMIN = 113,
-  G_ATOMICRMW_FADD = 114,
-  G_ATOMICRMW_FSUB = 115,
-  G_ATOMICRMW_FMAX = 116,
-  G_ATOMICRMW_FMIN = 117,
-  G_ATOMICRMW_FMAXIMUM = 118,
-  G_ATOMICRMW_FMINIMUM = 119,
-  G_ATOMICRMW_UINC_WRAP = 120,
-  G_ATOMICRMW_UDEC_WRAP = 121,
-  G_ATOMICRMW_USUB_COND = 122,
-  G_ATOMICRMW_USUB_SAT = 123,
-  G_FENCE = 124,
-  G_PREFETCH = 125,
-  G_BRCOND = 126,
-  G_BRINDIRECT = 127,
-  G_INVOKE_REGION_START = 128,
-  G_INTRINSIC = 129,
-  G_INTRINSIC_W_SIDE_EFFECTS = 130,
-  G_INTRINSIC_CONVERGENT = 131,
-  G_INTRINSIC_CONVERGENT_W_SIDE_EFFECTS = 132,
-  G_ANYEXT = 133,
-  G_TRUNC = 134,
-  G_TRUNC_SSAT_S = 135,
-  G_TRUNC_SSAT_U = 136,
-  G_TRUNC_USAT_U = 137,
-  G_CONSTANT = 138,
-  G_FCONSTANT = 139,
-  G_VASTART = 140,
-  G_VAARG = 141,
-  G_SEXT = 142,
-  G_SEXT_INREG = 143,
-  G_ZEXT = 144,
-  G_SHL = 145,
-  G_LSHR = 146,
-  G_ASHR = 147,
-  G_FSHL = 148,
-  G_FSHR = 149,
-  G_ROTR = 150,
-  G_ROTL = 151,
-  G_ICMP = 152,
-  G_FCMP = 153,
-  G_SCMP = 154,
-  G_UCMP = 155,
-  G_SELECT = 156,
-  G_UADDO = 157,
-  G_UADDE = 158,
-  G_USUBO = 159,
-  G_USUBE = 160,
-  G_SADDO = 161,
-  G_SADDE = 162,
-  G_SSUBO = 163,
-  G_SSUBE = 164,
-  G_UMULO = 165,
-  G_SMULO = 166,
-  G_UMULH = 167,
-  G_SMULH = 168,
-  G_UADDSAT = 169,
-  G_SADDSAT = 170,
-  G_USUBSAT = 171,
-  G_SSUBSAT = 172,
-  G_USHLSAT = 173,
-  G_SSHLSAT = 174,
-  G_SMULFIX = 175,
-  G_UMULFIX = 176,
-  G_SMULFIXSAT = 177,
-  G_UMULFIXSAT = 178,
-  G_SDIVFIX = 179,
-  G_UDIVFIX = 180,
-  G_SDIVFIXSAT = 181,
-  G_UDIVFIXSAT = 182,
-  G_FADD = 183,
-  G_FSUB = 184,
-  G_FMUL = 185,
-  G_FMA = 186,
-  G_FMAD = 187,
-  G_FDIV = 188,
-  G_FREM = 189,
-  G_FPOW = 190,
-  G_FPOWI = 191,
-  G_FEXP = 192,
-  G_FEXP2 = 193,
-  G_FEXP10 = 194,
-  G_FLOG = 195,
-  G_FLOG2 = 196,
-  G_FLOG10 = 197,
-  G_FLDEXP = 198,
-  G_FFREXP = 199,
-  G_FNEG = 200,
-  G_FPEXT = 201,
-  G_FPTRUNC = 202,
-  G_FPTOSI = 203,
-  G_FPTOUI = 204,
-  G_SITOFP = 205,
-  G_UITOFP = 206,
-  G_FPTOSI_SAT = 207,
-  G_FPTOUI_SAT = 208,
-  G_FABS = 209,
-  G_FCOPYSIGN = 210,
-  G_IS_FPCLASS = 211,
-  G_FCANONICALIZE = 212,
-  G_FMINNUM = 213,
-  G_FMAXNUM = 214,
-  G_FMINNUM_IEEE = 215,
-  G_FMAXNUM_IEEE = 216,
-  G_FMINIMUM = 217,
-  G_FMAXIMUM = 218,
-  G_FMINIMUMNUM = 219,
-  G_FMAXIMUMNUM = 220,
-  G_GET_FPENV = 221,
-  G_SET_FPENV = 222,
-  G_RESET_FPENV = 223,
-  G_GET_FPMODE = 224,
-  G_SET_FPMODE = 225,
-  G_RESET_FPMODE = 226,
-  G_GET_ROUNDING = 227,
-  G_PTR_ADD = 228,
-  G_PTRMASK = 229,
-  G_SMIN = 230,
-  G_SMAX = 231,
-  G_UMIN = 232,
-  G_UMAX = 233,
-  G_ABS = 234,
-  G_LROUND = 235,
-  G_LLROUND = 236,
-  G_BR = 237,
-  G_BRJT = 238,
-  G_VSCALE = 239,
-  G_INSERT_SUBVECTOR = 240,
-  G_EXTRACT_SUBVECTOR = 241,
-  G_INSERT_VECTOR_ELT = 242,
-  G_EXTRACT_VECTOR_ELT = 243,
-  G_SHUFFLE_VECTOR = 244,
-  G_SPLAT_VECTOR = 245,
-  G_STEP_VECTOR = 246,
-  G_VECTOR_COMPRESS = 247,
-  G_CTTZ = 248,
-  G_CTTZ_ZERO_UNDEF = 249,
-  G_CTLZ = 250,
-  G_CTLZ_ZERO_UNDEF = 251,
-  G_CTPOP = 252,
-  G_BSWAP = 253,
-  G_BITREVERSE = 254,
-  G_FCEIL = 255,
-  G_FCOS = 256,
-  G_FSIN = 257,
-  G_FSINCOS = 258,
-  G_FTAN = 259,
-  G_FACOS = 260,
-  G_FASIN = 261,
-  G_FATAN = 262,
-  G_FATAN2 = 263,
-  G_FCOSH = 264,
-  G_FSINH = 265,
-  G_FTANH = 266,
-  G_FSQRT = 267,
-  G_FFLOOR = 268,
-  G_FRINT = 269,
-  G_FNEARBYINT = 270,
-  G_ADDRSPACE_CAST = 271,
-  G_BLOCK_ADDR = 272,
-  G_JUMP_TABLE = 273,
-  G_DYN_STACKALLOC = 274,
-  G_STACKSAVE = 275,
-  G_STACKRESTORE = 276,
-  G_STRICT_FADD = 277,
-  G_STRICT_FSUB = 278,
-  G_STRICT_FMUL = 279,
-  G_STRICT_FDIV = 280,
-  G_STRICT_FREM = 281,
-  G_STRICT_FMA = 282,
-  G_STRICT_FSQRT = 283,
-  G_STRICT_FLDEXP = 284,
-  G_READ_REGISTER = 285,
-  G_WRITE_REGISTER = 286,
-  G_MEMCPY = 287,
-  G_MEMCPY_INLINE = 288,
-  G_MEMMOVE = 289,
-  G_MEMSET = 290,
-  G_BZERO = 291,
-  G_TRAP = 292,
-  G_DEBUGTRAP = 293,
-  G_UBSANTRAP = 294,
-  G_VECREDUCE_SEQ_FADD = 295,
-  G_VECREDUCE_SEQ_FMUL = 296,
-  G_VECREDUCE_FADD = 297,
-  G_VECREDUCE_FMUL = 298,
-  G_VECREDUCE_FMAX = 299,
-  G_VECREDUCE_FMIN = 300,
-  G_VECREDUCE_FMAXIMUM = 301,
-  G_VECREDUCE_FMINIMUM = 302,
-  G_VECREDUCE_ADD = 303,
-  G_VECREDUCE_MUL = 304,
-  G_VECREDUCE_AND = 305,
-  G_VECREDUCE_OR = 306,
-  G_VECREDUCE_XOR = 307,
-  G_VECREDUCE_SMAX = 308,
-  G_VECREDUCE_SMIN = 309,
-  G_VECREDUCE_UMAX = 310,
-  G_VECREDUCE_UMIN = 311,
-  G_SBFX = 312,
-  G_UBFX = 313,
-  ABSMacro = 314,
-  ADJCALLSTACKDOWN = 315,
-  ADJCALLSTACKUP = 316,
-  AND_V_D_PSEUDO = 317,
-  AND_V_H_PSEUDO = 318,
-  AND_V_W_PSEUDO = 319,
-  ATOMIC_CMP_SWAP_I16 = 320,
-  ATOMIC_CMP_SWAP_I16_POSTRA = 321,
-  ATOMIC_CMP_SWAP_I32 = 322,
-  ATOMIC_CMP_SWAP_I32_POSTRA = 323,
-  ATOMIC_CMP_SWAP_I64 = 324,
-  ATOMIC_CMP_SWAP_I64_POSTRA = 325,
-  ATOMIC_CMP_SWAP_I8 = 326,
-  ATOMIC_CMP_SWAP_I8_POSTRA = 327,
-  ATOMIC_LOAD_ADD_I16 = 328,
-  ATOMIC_LOAD_ADD_I16_POSTRA = 329,
-  ATOMIC_LOAD_ADD_I32 = 330,
-  ATOMIC_LOAD_ADD_I32_POSTRA = 331,
-  ATOMIC_LOAD_ADD_I64 = 332,
-  ATOMIC_LOAD_ADD_I64_POSTRA = 333,
-  ATOMIC_LOAD_ADD_I8 = 334,
-  ATOMIC_LOAD_ADD_I8_POSTRA = 335,
-  ATOMIC_LOAD_AND_I16 = 336,
-  ATOMIC_LOAD_AND_I16_POSTRA = 337,
-  ATOMIC_LOAD_AND_I32 = 338,
-  ATOMIC_LOAD_AND_I32_POSTRA = 339,
-  ATOMIC_LOAD_AND_I64 = 340,
-  ATOMIC_LOAD_AND_I64_POSTRA = 341,
-  ATOMIC_LOAD_AND_I8 = 342,
-  ATOMIC_LOAD_AND_I8_POSTRA = 343,
-  ATOMIC_LOAD_MAX_I16 = 344,
-  ATOMIC_LOAD_MAX_I16_POSTRA = 345,
-  ATOMIC_LOAD_MAX_I32 = 346,
-  ATOMIC_LOAD_MAX_I32_POSTRA = 347,
-  ATOMIC_LOAD_MAX_I64 = 348,
-  ATOMIC_LOAD_MAX_I64_POSTRA = 349,
-  ATOMIC_LOAD_MAX_I8 = 350,
-  ATOMIC_LOAD_MAX_I8_POSTRA = 351,
-  ATOMIC_LOAD_MIN_I16 = 352,
-  ATOMIC_LOAD_MIN_I16_POSTRA = 353,
-  ATOMIC_LOAD_MIN_I32 = 354,
-  ATOMIC_LOAD_MIN_I32_POSTRA = 355,
-  ATOMIC_LOAD_MIN_I64 = 356,
-  ATOMIC_LOAD_MIN_I64_POSTRA = 357,
-  ATOMIC_LOAD_MIN_I8 = 358,
-  ATOMIC_LOAD_MIN_I8_POSTRA = 359,
-  ATOMIC_LOAD_NAND_I16 = 360,
-  ATOMIC_LOAD_NAND_I16_POSTRA = 361,
-  ATOMIC_LOAD_NAND_I32 = 362,
-  ATOMIC_LOAD_NAND_I32_POSTRA = 363,
-  ATOMIC_LOAD_NAND_I64 = 364,
-  ATOMIC_LOAD_NAND_I64_POSTRA = 365,
-  ATOMIC_LOAD_NAND_I8 = 366,
-  ATOMIC_LOAD_NAND_I8_POSTRA = 367,
-  ATOMIC_LOAD_OR_I16 = 368,
-  ATOMIC_LOAD_OR_I16_POSTRA = 369,
-  ATOMIC_LOAD_OR_I32 = 370,
-  ATOMIC_LOAD_OR_I32_POSTRA = 371,
-  ATOMIC_LOAD_OR_I64 = 372,
-  ATOMIC_LOAD_OR_I64_POSTRA = 373,
-  ATOMIC_LOAD_OR_I8 = 374,
-  ATOMIC_LOAD_OR_I8_POSTRA = 375,
-  ATOMIC_LOAD_SUB_I16 = 376,
-  ATOMIC_LOAD_SUB_I16_POSTRA = 377,
-  ATOMIC_LOAD_SUB_I32 = 378,
-  ATOMIC_LOAD_SUB_I32_POSTRA = 379,
-  ATOMIC_LOAD_SUB_I64 = 380,
-  ATOMIC_LOAD_SUB_I64_POSTRA = 381,
-  ATOMIC_LOAD_SUB_I8 = 382,
-  ATOMIC_LOAD_SUB_I8_POSTRA = 383,
-  ATOMIC_LOAD_UMAX_I16 = 384,
-  ATOMIC_LOAD_UMAX_I16_POSTRA = 385,
-  ATOMIC_LOAD_UMAX_I32 = 386,
-  ATOMIC_LOAD_UMAX_I32_POSTRA = 387,
-  ATOMIC_LOAD_UMAX_I64 = 388,
-  ATOMIC_LOAD_UMAX_I64_POSTRA = 389,
-  ATOMIC_LOAD_UMAX_I8 = 390,
-  ATOMIC_LOAD_UMAX_I8_POSTRA = 391,
-  ATOMIC_LOAD_UMIN_I16 = 392,
-  ATOMIC_LOAD_UMIN_I16_POSTRA = 393,
-  ATOMIC_LOAD_UMIN_I32 = 394,
-  ATOMIC_LOAD_UMIN_I32_POSTRA = 395,
-  ATOMIC_LOAD_UMIN_I64 = 396,
-  ATOMIC_LOAD_UMIN_I64_POSTRA = 397,
-  ATOMIC_LOAD_UMIN_I8 = 398,
-  ATOMIC_LOAD_UMIN_I8_POSTRA = 399,
-  ATOMIC_LOAD_XOR_I16 = 400,
-  ATOMIC_LOAD_XOR_I16_POSTRA = 401,
-  ATOMIC_LOAD_XOR_I32 = 402,
-  ATOMIC_LOAD_XOR_I32_POSTRA = 403,
-  ATOMIC_LOAD_XOR_I64 = 404,
-  ATOMIC_LOAD_XOR_I64_POSTRA = 405,
-  ATOMIC_LOAD_XOR_I8 = 406,
-  ATOMIC_LOAD_XOR_I8_POSTRA = 407,
-  ATOMIC_SWAP_I16 = 408,
-  ATOMIC_SWAP_I16_POSTRA = 409,
-  ATOMIC_SWAP_I32 = 410,
-  ATOMIC_SWAP_I32_POSTRA = 411,
-  ATOMIC_SWAP_I64 = 412,
-  ATOMIC_SWAP_I64_POSTRA = 413,
-  ATOMIC_SWAP_I8 = 414,
-  ATOMIC_SWAP_I8_POSTRA = 415,
-  B = 416,
-  BAL_BR = 417,
-  BAL_BR_MM = 418,
-  BEQLImmMacro = 419,
-  BGE = 420,
-  BGEImmMacro = 421,
-  BGEL = 422,
-  BGELImmMacro = 423,
-  BGEU = 424,
-  BGEUImmMacro = 425,
-  BGEUL = 426,
-  BGEULImmMacro = 427,
-  BGT = 428,
-  BGTImmMacro = 429,
-  BGTL = 430,
-  BGTLImmMacro = 431,
-  BGTU = 432,
-  BGTUImmMacro = 433,
-  BGTUL = 434,
-  BGTULImmMacro = 435,
-  BLE = 436,
-  BLEImmMacro = 437,
-  BLEL = 438,
-  BLELImmMacro = 439,
-  BLEU = 440,
-  BLEUImmMacro = 441,
-  BLEUL = 442,
-  BLEULImmMacro = 443,
-  BLT = 444,
-  BLTImmMacro = 445,
-  BLTL = 446,
-  BLTLImmMacro = 447,
-  BLTU = 448,
-  BLTUImmMacro = 449,
-  BLTUL = 450,
-  BLTULImmMacro = 451,
-  BNELImmMacro = 452,
-  BPOSGE32_PSEUDO = 453,
-  BSEL_D_PSEUDO = 454,
-  BSEL_FD_PSEUDO = 455,
-  BSEL_FW_PSEUDO = 456,
-  BSEL_H_PSEUDO = 457,
-  BSEL_W_PSEUDO = 458,
-  B_MM = 459,
-  B_MMR6_Pseudo = 460,
-  B_MM_Pseudo = 461,
-  BeqImm = 462,
-  BneImm = 463,
-  BteqzT8CmpX16 = 464,
-  BteqzT8CmpiX16 = 465,
-  BteqzT8SltX16 = 466,
-  BteqzT8SltiX16 = 467,
-  BteqzT8SltiuX16 = 468,
-  BteqzT8SltuX16 = 469,
-  BtnezT8CmpX16 = 470,
-  BtnezT8CmpiX16 = 471,
-  BtnezT8SltX16 = 472,
-  BtnezT8SltiX16 = 473,
-  BtnezT8SltiuX16 = 474,
-  BtnezT8SltuX16 = 475,
-  BuildPairF64 = 476,
-  BuildPairF64_64 = 477,
-  CFTC1 = 478,
-  CONSTPOOL_ENTRY = 479,
-  COPY_FD_PSEUDO = 480,
-  COPY_FW_PSEUDO = 481,
-  CTTC1 = 482,
-  Constant32 = 483,
-  DMULImmMacro = 484,
-  DMULMacro = 485,
-  DMULOMacro = 486,
-  DMULOUMacro = 487,
-  DROL = 488,
-  DROLImm = 489,
-  DROR = 490,
-  DRORImm = 491,
-  DSDivIMacro = 492,
-  DSDivMacro = 493,
-  DSRemIMacro = 494,
-  DSRemMacro = 495,
-  DUDivIMacro = 496,
-  DUDivMacro = 497,
-  DURemIMacro = 498,
-  DURemMacro = 499,
-  ERet = 500,
-  ExtractElementF64 = 501,
-  ExtractElementF64_64 = 502,
-  FABS_D = 503,
-  FABS_W = 504,
-  FEXP2_D_1_PSEUDO = 505,
-  FEXP2_W_1_PSEUDO = 506,
-  FILL_FD_PSEUDO = 507,
-  FILL_FW_PSEUDO = 508,
-  GotPrologue16 = 509,
-  INSERT_B_VIDX64_PSEUDO = 510,
-  INSERT_B_VIDX_PSEUDO = 511,
-  INSERT_D_VIDX64_PSEUDO = 512,
-  INSERT_D_VIDX_PSEUDO = 513,
-  INSERT_FD_PSEUDO = 514,
-  INSERT_FD_VIDX64_PSEUDO = 515,
-  INSERT_FD_VIDX_PSEUDO = 516,
-  INSERT_FW_PSEUDO = 517,
-  INSERT_FW_VIDX64_PSEUDO = 518,
-  INSERT_FW_VIDX_PSEUDO = 519,
-  INSERT_H_VIDX64_PSEUDO = 520,
-  INSERT_H_VIDX_PSEUDO = 521,
-  INSERT_W_VIDX64_PSEUDO = 522,
-  INSERT_W_VIDX_PSEUDO = 523,
-  JALR64Pseudo = 524,
-  JALRHB64Pseudo = 525,
-  JALRHBPseudo = 526,
-  JALRPseudo = 527,
-  JAL_MMR6 = 528,
-  JalOneReg = 529,
-  JalTwoReg = 530,
-  LDMacro = 531,
-  LDR_D = 532,
-  LDR_W = 533,
-  LD_F16 = 534,
-  LOAD_ACC128 = 535,
-  LOAD_ACC64 = 536,
-  LOAD_ACC64DSP = 537,
-  LOAD_CCOND_DSP = 538,
-  LONG_BRANCH_ADDiu = 539,
-  LONG_BRANCH_ADDiu2Op = 540,
-  LONG_BRANCH_DADDiu = 541,
-  LONG_BRANCH_DADDiu2Op = 542,
-  LONG_BRANCH_LUi = 543,
-  LONG_BRANCH_LUi2Op = 544,
-  LONG_BRANCH_LUi2Op_64 = 545,
-  LWM_MM = 546,
-  LoadAddrImm32 = 547,
-  LoadAddrImm64 = 548,
-  LoadAddrReg32 = 549,
-  LoadAddrReg64 = 550,
-  LoadImm32 = 551,
-  LoadImm64 = 552,
-  LoadImmDoubleFGR = 553,
-  LoadImmDoubleFGR_32 = 554,
-  LoadImmDoubleGPR = 555,
-  LoadImmSingleFGR = 556,
-  LoadImmSingleGPR = 557,
-  LwConstant32 = 558,
-  MFTACX = 559,
-  MFTC0 = 560,
-  MFTC1 = 561,
-  MFTDSP = 562,
-  MFTGPR = 563,
-  MFTHC1 = 564,
-  MFTHI = 565,
-  MFTLO = 566,
-  MIPSeh_return32 = 567,
-  MIPSeh_return64 = 568,
-  MSA_FP_EXTEND_D_PSEUDO = 569,
-  MSA_FP_EXTEND_W_PSEUDO = 570,
-  MSA_FP_ROUND_D_PSEUDO = 571,
-  MSA_FP_ROUND_W_PSEUDO = 572,
-  MTTACX = 573,
-  MTTC0 = 574,
-  MTTC1 = 575,
-  MTTDSP = 576,
-  MTTGPR = 577,
-  MTTHC1 = 578,
-  MTTHI = 579,
-  MTTLO = 580,
-  MULImmMacro = 581,
-  MULOMacro = 582,
-  MULOUMacro = 583,
-  MultRxRy16 = 584,
-  MultRxRyRz16 = 585,
-  MultuRxRy16 = 586,
-  MultuRxRyRz16 = 587,
-  NOP = 588,
-  NORImm = 589,
-  NORImm64 = 590,
-  NOR_V_D_PSEUDO = 591,
-  NOR_V_H_PSEUDO = 592,
-  NOR_V_W_PSEUDO = 593,
-  OR_V_D_PSEUDO = 594,
-  OR_V_H_PSEUDO = 595,
-  OR_V_W_PSEUDO = 596,
-  PseudoCMPU_EQ_QB = 597,
-  PseudoCMPU_LE_QB = 598,
-  PseudoCMPU_LT_QB = 599,
-  PseudoCMP_EQ_PH = 600,
-  PseudoCMP_LE_PH = 601,
-  PseudoCMP_LT_PH = 602,
-  PseudoCVT_D32_W = 603,
-  PseudoCVT_D64_L = 604,
-  PseudoCVT_D64_W = 605,
-  PseudoCVT_S_L = 606,
-  PseudoCVT_S_W = 607,
-  PseudoDMULT = 608,
-  PseudoDMULTu = 609,
-  PseudoDSDIV = 610,
-  PseudoDUDIV = 611,
-  PseudoD_SELECT_I = 612,
-  PseudoD_SELECT_I64 = 613,
-  PseudoIndirectBranch = 614,
-  PseudoIndirectBranch64 = 615,
-  PseudoIndirectBranch64R6 = 616,
-  PseudoIndirectBranchR6 = 617,
-  PseudoIndirectBranch_MM = 618,
-  PseudoIndirectBranch_MMR6 = 619,
-  PseudoIndirectHazardBranch = 620,
-  PseudoIndirectHazardBranch64 = 621,
-  PseudoIndrectHazardBranch64R6 = 622,
-  PseudoIndrectHazardBranchR6 = 623,
-  PseudoMADD = 624,
-  PseudoMADDU = 625,
-  PseudoMADDU_MM = 626,
-  PseudoMADD_MM = 627,
-  PseudoMFHI = 628,
-  PseudoMFHI64 = 629,
-  PseudoMFHI_MM = 630,
-  PseudoMFLO = 631,
-  PseudoMFLO64 = 632,
-  PseudoMFLO_MM = 633,
-  PseudoMSUB = 634,
-  PseudoMSUBU = 635,
-  PseudoMSUBU_MM = 636,
-  PseudoMSUB_MM = 637,
-  PseudoMTLOHI = 638,
-  PseudoMTLOHI64 = 639,
-  PseudoMTLOHI_DSP = 640,
-  PseudoMTLOHI_MM = 641,
-  PseudoMULT = 642,
-  PseudoMULT_MM = 643,
-  PseudoMULTu = 644,
-  PseudoMULTu_MM = 645,
-  PseudoPICK_PH = 646,
-  PseudoPICK_QB = 647,
-  PseudoReturn = 648,
-  PseudoReturn64 = 649,
-  PseudoSDIV = 650,
-  PseudoSELECTFP_F_D32 = 651,
-  PseudoSELECTFP_F_D64 = 652,
-  PseudoSELECTFP_F_I = 653,
-  PseudoSELECTFP_F_I64 = 654,
-  PseudoSELECTFP_F_S = 655,
-  PseudoSELECTFP_T_D32 = 656,
-  PseudoSELECTFP_T_D64 = 657,
-  PseudoSELECTFP_T_I = 658,
-  PseudoSELECTFP_T_I64 = 659,
-  PseudoSELECTFP_T_S = 660,
-  PseudoSELECT_D32 = 661,
-  PseudoSELECT_D64 = 662,
-  PseudoSELECT_I = 663,
-  PseudoSELECT_I64 = 664,
-  PseudoSELECT_S = 665,
-  PseudoTRUNC_W_D = 666,
-  PseudoTRUNC_W_D32 = 667,
-  PseudoTRUNC_W_S = 668,
-  PseudoUDIV = 669,
-  ROL = 670,
-  ROLImm = 671,
-  ROR = 672,
-  RORImm = 673,
-  RetRA = 674,
-  RetRA16 = 675,
-  SDC1_M1 = 676,
-  SDIV_MM_Pseudo = 677,
-  SDMacro = 678,
-  SDivIMacro = 679,
-  SDivMacro = 680,
-  SEQIMacro = 681,
-  SEQMacro = 682,
-  SGE = 683,
-  SGEImm = 684,
-  SGEImm64 = 685,
-  SGEU = 686,
-  SGEUImm = 687,
-  SGEUImm64 = 688,
-  SGTImm = 689,
-  SGTImm64 = 690,
-  SGTUImm = 691,
-  SGTUImm64 = 692,
-  SLE = 693,
-  SLEImm = 694,
-  SLEImm64 = 695,
-  SLEU = 696,
-  SLEUImm = 697,
-  SLEUImm64 = 698,
-  SLTImm64 = 699,
-  SLTUImm64 = 700,
-  SNEIMacro = 701,
-  SNEMacro = 702,
-  SNZ_B_PSEUDO = 703,
-  SNZ_D_PSEUDO = 704,
-  SNZ_H_PSEUDO = 705,
-  SNZ_V_PSEUDO = 706,
-  SNZ_W_PSEUDO = 707,
-  SRemIMacro = 708,
-  SRemMacro = 709,
-  STORE_ACC128 = 710,
-  STORE_ACC64 = 711,
-  STORE_ACC64DSP = 712,
-  STORE_CCOND_DSP = 713,
-  STR_D = 714,
-  STR_W = 715,
-  ST_F16 = 716,
-  SWM_MM = 717,
-  SZ_B_PSEUDO = 718,
-  SZ_D_PSEUDO = 719,
-  SZ_H_PSEUDO = 720,
-  SZ_V_PSEUDO = 721,
-  SZ_W_PSEUDO = 722,
-  SaaAddr = 723,
-  SaadAddr = 724,
-  SelBeqZ = 725,
-  SelBneZ = 726,
-  SelTBteqZCmp = 727,
-  SelTBteqZCmpi = 728,
-  SelTBteqZSlt = 729,
-  SelTBteqZSlti = 730,
-  SelTBteqZSltiu = 731,
-  SelTBteqZSltu = 732,
-  SelTBtneZCmp = 733,
-  SelTBtneZCmpi = 734,
-  SelTBtneZSlt = 735,
-  SelTBtneZSlti = 736,
-  SelTBtneZSltiu = 737,
-  SelTBtneZSltu = 738,
-  SltCCRxRy16 = 739,
-  SltiCCRxImmX16 = 740,
-  SltiuCCRxImmX16 = 741,
-  SltuCCRxRy16 = 742,
-  SltuRxRyRz16 = 743,
-  TAILCALL = 744,
-  TAILCALL64R6REG = 745,
-  TAILCALLHB64R6REG = 746,
-  TAILCALLHBR6REG = 747,
-  TAILCALLR6REG = 748,
-  TAILCALLREG = 749,
-  TAILCALLREG64 = 750,
-  TAILCALLREGHB = 751,
-  TAILCALLREGHB64 = 752,
-  TAILCALLREG_MM = 753,
-  TAILCALLREG_MMR6 = 754,
-  TAILCALL_MM = 755,
-  TAILCALL_MMR6 = 756,
-  TRAP = 757,
-  TRAP_MM = 758,
-  UDIV_MM_Pseudo = 759,
-  UDivIMacro = 760,
-  UDivMacro = 761,
-  URemIMacro = 762,
-  URemMacro = 763,
-  Ulh = 764,
-  Ulhu = 765,
-  Ulw = 766,
-  Ush = 767,
-  Usw = 768,
-  XOR_V_D_PSEUDO = 769,
-  XOR_V_H_PSEUDO = 770,
-  XOR_V_W_PSEUDO = 771,
-  ABSQ_S_PH = 772,
-  ABSQ_S_PH_MM = 773,
-  ABSQ_S_QB = 774,
-  ABSQ_S_QB_MMR2 = 775,
-  ABSQ_S_W = 776,
-  ABSQ_S_W_MM = 777,
-  ADD = 778,
-  ADDIUPC = 779,
-  ADDIUPC_MM = 780,
-  ADDIUPC_MMR6 = 781,
-  ADDIUR1SP_MM = 782,
-  ADDIUR2_MM = 783,
-  ADDIUS5_MM = 784,
-  ADDIUSP_MM = 785,
-  ADDIU_MMR6 = 786,
-  ADDQH_PH = 787,
-  ADDQH_PH_MMR2 = 788,
-  ADDQH_R_PH = 789,
-  ADDQH_R_PH_MMR2 = 790,
-  ADDQH_R_W = 791,
-  ADDQH_R_W_MMR2 = 792,
-  ADDQH_W = 793,
-  ADDQH_W_MMR2 = 794,
-  ADDQ_PH = 795,
-  ADDQ_PH_MM = 796,
-  ADDQ_S_PH = 797,
-  ADDQ_S_PH_MM = 798,
-  ADDQ_S_W = 799,
-  ADDQ_S_W_MM = 800,
-  ADDR_PS64 = 801,
-  ADDSC = 802,
-  ADDSC_MM = 803,
-  ADDS_A_B = 804,
-  ADDS_A_D = 805,
-  ADDS_A_H = 806,
-  ADDS_A_W = 807,
-  ADDS_S_B = 808,
-  ADDS_S_D = 809,
-  ADDS_S_H = 810,
-  ADDS_S_W = 811,
-  ADDS_U_B = 812,
-  ADDS_U_D = 813,
-  ADDS_U_H = 814,
-  ADDS_U_W = 815,
-  ADDU16_MM = 816,
-  ADDU16_MMR6 = 817,
-  ADDUH_QB = 818,
-  ADDUH_QB_MMR2 = 819,
-  ADDUH_R_QB = 820,
-  ADDUH_R_QB_MMR2 = 821,
-  ADDU_MMR6 = 822,
-  ADDU_PH = 823,
-  ADDU_PH_MMR2 = 824,
-  ADDU_QB = 825,
-  ADDU_QB_MM = 826,
-  ADDU_S_PH = 827,
-  ADDU_S_PH_MMR2 = 828,
-  ADDU_S_QB = 829,
-  ADDU_S_QB_MM = 830,
-  ADDVI_B = 831,
-  ADDVI_D = 832,
-  ADDVI_H = 833,
-  ADDVI_W = 834,
-  ADDV_B = 835,
-  ADDV_D = 836,
-  ADDV_H = 837,
-  ADDV_W = 838,
-  ADDWC = 839,
-  ADDWC_MM = 840,
-  ADD_A_B = 841,
-  ADD_A_D = 842,
-  ADD_A_H = 843,
-  ADD_A_W = 844,
-  ADD_MM = 845,
-  ADD_MMR6 = 846,
-  ADDi = 847,
-  ADDi_MM = 848,
-  ADDiu = 849,
-  ADDiu_MM = 850,
-  ADDu = 851,
-  ADDu_MM = 852,
-  ALIGN = 853,
-  ALIGN_MMR6 = 854,
-  ALUIPC = 855,
-  ALUIPC_MMR6 = 856,
-  AND = 857,
-  AND16_MM = 858,
-  AND16_MMR6 = 859,
-  AND64 = 860,
-  ANDI16_MM = 861,
-  ANDI16_MMR6 = 862,
-  ANDI_B = 863,
-  ANDI_MMR6 = 864,
-  AND_MM = 865,
-  AND_MMR6 = 866,
-  AND_V = 867,
-  ANDi = 868,
-  ANDi64 = 869,
-  ANDi_MM = 870,
-  APPEND = 871,
-  APPEND_MMR2 = 872,
-  ASUB_S_B = 873,
-  ASUB_S_D = 874,
-  ASUB_S_H = 875,
-  ASUB_S_W = 876,
-  ASUB_U_B = 877,
-  ASUB_U_D = 878,
-  ASUB_U_H = 879,
-  ASUB_U_W = 880,
-  AUI = 881,
-  AUIPC = 882,
-  AUIPC_MMR6 = 883,
-  AUI_MMR6 = 884,
-  AVER_S_B = 885,
-  AVER_S_D = 886,
-  AVER_S_H = 887,
-  AVER_S_W = 888,
-  AVER_U_B = 889,
-  AVER_U_D = 890,
-  AVER_U_H = 891,
-  AVER_U_W = 892,
-  AVE_S_B = 893,
-  AVE_S_D = 894,
-  AVE_S_H = 895,
-  AVE_S_W = 896,
-  AVE_U_B = 897,
-  AVE_U_D = 898,
-  AVE_U_H = 899,
-  AVE_U_W = 900,
-  AddiuRxImmX16 = 901,
-  AddiuRxPcImmX16 = 902,
-  AddiuRxRxImm16 = 903,
-  AddiuRxRxImmX16 = 904,
-  AddiuRxRyOffMemX16 = 905,
-  AddiuSpImm16 = 906,
-  AddiuSpImmX16 = 907,
-  AdduRxRyRz16 = 908,
-  AndRxRxRy16 = 909,
-  B16_MM = 910,
-  BADDu = 911,
-  BAL = 912,
-  BALC = 913,
-  BALC_MMR6 = 914,
-  BALIGN = 915,
-  BALIGN_MMR2 = 916,
-  BBIT0 = 917,
-  BBIT032 = 918,
-  BBIT1 = 919,
-  BBIT132 = 920,
-  BC = 921,
-  BC16_MMR6 = 922,
-  BC1EQZ = 923,
-  BC1EQZC_MMR6 = 924,
-  BC1F = 925,
-  BC1FL = 926,
-  BC1F_MM = 927,
-  BC1NEZ = 928,
-  BC1NEZC_MMR6 = 929,
-  BC1T = 930,
-  BC1TL = 931,
-  BC1T_MM = 932,
-  BC2EQZ = 933,
-  BC2EQZC_MMR6 = 934,
-  BC2NEZ = 935,
-  BC2NEZC_MMR6 = 936,
-  BCLRI_B = 937,
-  BCLRI_D = 938,
-  BCLRI_H = 939,
-  BCLRI_W = 940,
-  BCLR_B = 941,
-  BCLR_D = 942,
-  BCLR_H = 943,
-  BCLR_W = 944,
-  BC_MMR6 = 945,
-  BEQ = 946,
-  BEQ64 = 947,
-  BEQC = 948,
-  BEQC64 = 949,
-  BEQC_MMR6 = 950,
-  BEQL = 951,
-  BEQZ16_MM = 952,
-  BEQZALC = 953,
-  BEQZALC_MMR6 = 954,
-  BEQZC = 955,
-  BEQZC16_MMR6 = 956,
-  BEQZC64 = 957,
-  BEQZC_MM = 958,
-  BEQZC_MMR6 = 959,
-  BEQ_MM = 960,
-  BGEC = 961,
-  BGEC64 = 962,
-  BGEC_MMR6 = 963,
-  BGEUC = 964,
-  BGEUC64 = 965,
-  BGEUC_MMR6 = 966,
-  BGEZ = 967,
-  BGEZ64 = 968,
-  BGEZAL = 969,
-  BGEZALC = 970,
-  BGEZALC_MMR6 = 971,
-  BGEZALL = 972,
-  BGEZALS_MM = 973,
-  BGEZAL_MM = 974,
-  BGEZC = 975,
-  BGEZC64 = 976,
-  BGEZC_MMR6 = 977,
-  BGEZL = 978,
-  BGEZ_MM = 979,
-  BGTZ = 980,
-  BGTZ64 = 981,
-  BGTZALC = 982,
-  BGTZALC_MMR6 = 983,
-  BGTZC = 984,
-  BGTZC64 = 985,
-  BGTZC_MMR6 = 986,
-  BGTZL = 987,
-  BGTZ_MM = 988,
-  BINSLI_B = 989,
-  BINSLI_D = 990,
-  BINSLI_H = 991,
-  BINSLI_W = 992,
-  BINSL_B = 993,
-  BINSL_D = 994,
-  BINSL_H = 995,
-  BINSL_W = 996,
-  BINSRI_B = 997,
-  BINSRI_D = 998,
-  BINSRI_H = 999,
-  BINSRI_W = 1000,
-  BINSR_B = 1001,
-  BINSR_D = 1002,
-  BINSR_H = 1003,
-  BINSR_W = 1004,
-  BITREV = 1005,
-  BITREV_MM = 1006,
-  BITSWAP = 1007,
-  BITSWAP_MMR6 = 1008,
-  BLEZ = 1009,
-  BLEZ64 = 1010,
-  BLEZALC = 1011,
-  BLEZALC_MMR6 = 1012,
-  BLEZC = 1013,
-  BLEZC64 = 1014,
-  BLEZC_MMR6 = 1015,
-  BLEZL = 1016,
-  BLEZ_MM = 1017,
-  BLTC = 1018,
-  BLTC64 = 1019,
-  BLTC_MMR6 = 1020,
-  BLTUC = 1021,
-  BLTUC64 = 1022,
-  BLTUC_MMR6 = 1023,
-  BLTZ = 1024,
-  BLTZ64 = 1025,
-  BLTZAL = 1026,
-  BLTZALC = 1027,
-  BLTZALC_MMR6 = 1028,
-  BLTZALL = 1029,
-  BLTZALS_MM = 1030,
-  BLTZAL_MM = 1031,
-  BLTZC = 1032,
-  BLTZC64 = 1033,
-  BLTZC_MMR6 = 1034,
-  BLTZL = 1035,
-  BLTZ_MM = 1036,
-  BMNZI_B = 1037,
-  BMNZ_V = 1038,
-  BMZI_B = 1039,
-  BMZ_V = 1040,
-  BNE = 1041,
-  BNE64 = 1042,
-  BNEC = 1043,
-  BNEC64 = 1044,
-  BNEC_MMR6 = 1045,
-  BNEGI_B = 1046,
-  BNEGI_D = 1047,
-  BNEGI_H = 1048,
-  BNEGI_W = 1049,
-  BNEG_B = 1050,
-  BNEG_D = 1051,
-  BNEG_H = 1052,
-  BNEG_W = 1053,
-  BNEL = 1054,
-  BNEZ16_MM = 1055,
-  BNEZALC = 1056,
-  BNEZALC_MMR6 = 1057,
-  BNEZC = 1058,
-  BNEZC16_MMR6 = 1059,
-  BNEZC64 = 1060,
-  BNEZC_MM = 1061,
-  BNEZC_MMR6 = 1062,
-  BNE_MM = 1063,
-  BNVC = 1064,
-  BNVC_MMR6 = 1065,
-  BNZ_B = 1066,
-  BNZ_D = 1067,
-  BNZ_H = 1068,
-  BNZ_V = 1069,
-  BNZ_W = 1070,
-  BOVC = 1071,
-  BOVC_MMR6 = 1072,
-  BPOSGE32 = 1073,
-  BPOSGE32C_MMR3 = 1074,
-  BPOSGE32_MM = 1075,
-  BREAK = 1076,
-  BREAK16_MM = 1077,
-  BREAK16_MMR6 = 1078,
-  BREAK_MM = 1079,
-  BREAK_MMR6 = 1080,
-  BSELI_B = 1081,
-  BSEL_V = 1082,
-  BSETI_B = 1083,
-  BSETI_D = 1084,
-  BSETI_H = 1085,
-  BSETI_W = 1086,
-  BSET_B = 1087,
-  BSET_D = 1088,
-  BSET_H = 1089,
-  BSET_W = 1090,
-  BZ_B = 1091,
-  BZ_D = 1092,
-  BZ_H = 1093,
-  BZ_V = 1094,
-  BZ_W = 1095,
-  BeqzRxImm16 = 1096,
-  BeqzRxImmX16 = 1097,
-  Bimm16 = 1098,
-  BimmX16 = 1099,
-  BnezRxImm16 = 1100,
-  BnezRxImmX16 = 1101,
-  Break16 = 1102,
-  Bteqz16 = 1103,
-  BteqzX16 = 1104,
-  Btnez16 = 1105,
-  BtnezX16 = 1106,
-  CACHE = 1107,
-  CACHEE = 1108,
-  CACHEE_MM = 1109,
-  CACHE_MM = 1110,
-  CACHE_MMR6 = 1111,
-  CACHE_R6 = 1112,
-  CEIL_L_D64 = 1113,
-  CEIL_L_D_MMR6 = 1114,
-  CEIL_L_S = 1115,
-  CEIL_L_S_MMR6 = 1116,
-  CEIL_W_D32 = 1117,
-  CEIL_W_D64 = 1118,
-  CEIL_W_D_MMR6 = 1119,
-  CEIL_W_MM = 1120,
-  CEIL_W_S = 1121,
-  CEIL_W_S_MM = 1122,
-  CEIL_W_S_MMR6 = 1123,
-  CEQI_B = 1124,
-  CEQI_D = 1125,
-  CEQI_H = 1126,
-  CEQI_W = 1127,
-  CEQ_B = 1128,
-  CEQ_D = 1129,
-  CEQ_H = 1130,
-  CEQ_W = 1131,
-  CFC1 = 1132,
-  CFC1_MM = 1133,
-  CFC2_MM = 1134,
-  CFCMSA = 1135,
-  CINS = 1136,
-  CINS32 = 1137,
-  CINS64_32 = 1138,
-  CINS_i32 = 1139,
-  CLASS_D = 1140,
-  CLASS_D_MMR6 = 1141,
-  CLASS_S = 1142,
-  CLASS_S_MMR6 = 1143,
-  CLEI_S_B = 1144,
-  CLEI_S_D = 1145,
-  CLEI_S_H = 1146,
-  CLEI_S_W = 1147,
-  CLEI_U_B = 1148,
-  CLEI_U_D = 1149,
-  CLEI_U_H = 1150,
-  CLEI_U_W = 1151,
-  CLE_S_B = 1152,
-  CLE_S_D = 1153,
-  CLE_S_H = 1154,
-  CLE_S_W = 1155,
-  CLE_U_B = 1156,
-  CLE_U_D = 1157,
-  CLE_U_H = 1158,
-  CLE_U_W = 1159,
-  CLO = 1160,
-  CLO_MM = 1161,
-  CLO_MMR6 = 1162,
-  CLO_R6 = 1163,
-  CLTI_S_B = 1164,
-  CLTI_S_D = 1165,
-  CLTI_S_H = 1166,
-  CLTI_S_W = 1167,
-  CLTI_U_B = 1168,
-  CLTI_U_D = 1169,
-  CLTI_U_H = 1170,
-  CLTI_U_W = 1171,
-  CLT_S_B = 1172,
-  CLT_S_D = 1173,
-  CLT_S_H = 1174,
-  CLT_S_W = 1175,
-  CLT_U_B = 1176,
-  CLT_U_D = 1177,
-  CLT_U_H = 1178,
-  CLT_U_W = 1179,
-  CLZ = 1180,
-  CLZ_MM = 1181,
-  CLZ_MMR6 = 1182,
-  CLZ_R6 = 1183,
-  CMPGDU_EQ_QB = 1184,
-  CMPGDU_EQ_QB_MMR2 = 1185,
-  CMPGDU_LE_QB = 1186,
-  CMPGDU_LE_QB_MMR2 = 1187,
-  CMPGDU_LT_QB = 1188,
-  CMPGDU_LT_QB_MMR2 = 1189,
-  CMPGU_EQ_QB = 1190,
-  CMPGU_EQ_QB_MM = 1191,
-  CMPGU_LE_QB = 1192,
-  CMPGU_LE_QB_MM = 1193,
-  CMPGU_LT_QB = 1194,
-  CMPGU_LT_QB_MM = 1195,
-  CMPU_EQ_QB = 1196,
-  CMPU_EQ_QB_MM = 1197,
-  CMPU_LE_QB = 1198,
-  CMPU_LE_QB_MM = 1199,
-  CMPU_LT_QB = 1200,
-  CMPU_LT_QB_MM = 1201,
-  CMP_AF_D_MMR6 = 1202,
-  CMP_AF_S_MMR6 = 1203,
-  CMP_EQ_D = 1204,
-  CMP_EQ_D_MMR6 = 1205,
-  CMP_EQ_PH = 1206,
-  CMP_EQ_PH_MM = 1207,
-  CMP_EQ_S = 1208,
-  CMP_EQ_S_MMR6 = 1209,
-  CMP_F_D = 1210,
-  CMP_F_S = 1211,
-  CMP_LE_D = 1212,
-  CMP_LE_D_MMR6 = 1213,
-  CMP_LE_PH = 1214,
-  CMP_LE_PH_MM = 1215,
-  CMP_LE_S = 1216,
-  CMP_LE_S_MMR6 = 1217,
-  CMP_LT_D = 1218,
-  CMP_LT_D_MMR6 = 1219,
-  CMP_LT_PH = 1220,
-  CMP_LT_PH_MM = 1221,
-  CMP_LT_S = 1222,
-  CMP_LT_S_MMR6 = 1223,
-  CMP_SAF_D = 1224,
-  CMP_SAF_D_MMR6 = 1225,
-  CMP_SAF_S = 1226,
-  CMP_SAF_S_MMR6 = 1227,
-  CMP_SEQ_D = 1228,
-  CMP_SEQ_D_MMR6 = 1229,
-  CMP_SEQ_S = 1230,
-  CMP_SEQ_S_MMR6 = 1231,
-  CMP_SLE_D = 1232,
-  CMP_SLE_D_MMR6 = 1233,
-  CMP_SLE_S = 1234,
-  CMP_SLE_S_MMR6 = 1235,
-  CMP_SLT_D = 1236,
-  CMP_SLT_D_MMR6 = 1237,
-  CMP_SLT_S = 1238,
-  CMP_SLT_S_MMR6 = 1239,
-  CMP_SUEQ_D = 1240,
-  CMP_SUEQ_D_MMR6 = 1241,
-  CMP_SUEQ_S = 1242,
-  CMP_SUEQ_S_MMR6 = 1243,
-  CMP_SULE_D = 1244,
-  CMP_SULE_D_MMR6 = 1245,
-  CMP_SULE_S = 1246,
-  CMP_SULE_S_MMR6 = 1247,
-  CMP_SULT_D = 1248,
-  CMP_SULT_D_MMR6 = 1249,
-  CMP_SULT_S = 1250,
-  CMP_SULT_S_MMR6 = 1251,
-  CMP_SUN_D = 1252,
-  CMP_SUN_D_MMR6 = 1253,
-  CMP_SUN_S = 1254,
-  CMP_SUN_S_MMR6 = 1255,
-  CMP_UEQ_D = 1256,
-  CMP_UEQ_D_MMR6 = 1257,
-  CMP_UEQ_S = 1258,
-  CMP_UEQ_S_MMR6 = 1259,
-  CMP_ULE_D = 1260,
-  CMP_ULE_D_MMR6 = 1261,
-  CMP_ULE_S = 1262,
-  CMP_ULE_S_MMR6 = 1263,
-  CMP_ULT_D = 1264,
-  CMP_ULT_D_MMR6 = 1265,
-  CMP_ULT_S = 1266,
-  CMP_ULT_S_MMR6 = 1267,
-  CMP_UN_D = 1268,
-  CMP_UN_D_MMR6 = 1269,
-  CMP_UN_S = 1270,
-  CMP_UN_S_MMR6 = 1271,
-  COPY_S_B = 1272,
-  COPY_S_D = 1273,
-  COPY_S_H = 1274,
-  COPY_S_W = 1275,
-  COPY_U_B = 1276,
-  COPY_U_H = 1277,
-  COPY_U_W = 1278,
-  CRC32B = 1279,
-  CRC32CB = 1280,
-  CRC32CD = 1281,
-  CRC32CH = 1282,
-  CRC32CW = 1283,
-  CRC32D = 1284,
-  CRC32H = 1285,
-  CRC32W = 1286,
-  CTC1 = 1287,
-  CTC1_MM = 1288,
-  CTC2_MM = 1289,
-  CTCMSA = 1290,
-  CVT_D32_S = 1291,
-  CVT_D32_S_MM = 1292,
-  CVT_D32_W = 1293,
-  CVT_D32_W_MM = 1294,
-  CVT_D64_L = 1295,
-  CVT_D64_S = 1296,
-  CVT_D64_S_MM = 1297,
-  CVT_D64_W = 1298,
-  CVT_D64_W_MM = 1299,
-  CVT_D_L_MMR6 = 1300,
-  CVT_L_D64 = 1301,
-  CVT_L_D64_MM = 1302,
-  CVT_L_D_MMR6 = 1303,
-  CVT_L_S = 1304,
-  CVT_L_S_MM = 1305,
-  CVT_L_S_MMR6 = 1306,
-  CVT_PS_PW64 = 1307,
-  CVT_PS_S64 = 1308,
-  CVT_PW_PS64 = 1309,
-  CVT_S_D32 = 1310,
-  CVT_S_D32_MM = 1311,
-  CVT_S_D64 = 1312,
-  CVT_S_D64_MM = 1313,
-  CVT_S_L = 1314,
-  CVT_S_L_MMR6 = 1315,
-  CVT_S_PL64 = 1316,
-  CVT_S_PU64 = 1317,
-  CVT_S_W = 1318,
-  CVT_S_W_MM = 1319,
-  CVT_S_W_MMR6 = 1320,
-  CVT_W_D32 = 1321,
-  CVT_W_D32_MM = 1322,
-  CVT_W_D64 = 1323,
-  CVT_W_D64_MM = 1324,
-  CVT_W_S = 1325,
-  CVT_W_S_MM = 1326,
-  CVT_W_S_MMR6 = 1327,
-  C_EQ_D32 = 1328,
-  C_EQ_D32_MM = 1329,
-  C_EQ_D64 = 1330,
-  C_EQ_D64_MM = 1331,
-  C_EQ_S = 1332,
-  C_EQ_S_MM = 1333,
-  C_F_D32 = 1334,
-  C_F_D32_MM = 1335,
-  C_F_D64 = 1336,
-  C_F_D64_MM = 1337,
-  C_F_S = 1338,
-  C_F_S_MM = 1339,
-  C_LE_D32 = 1340,
-  C_LE_D32_MM = 1341,
-  C_LE_D64 = 1342,
-  C_LE_D64_MM = 1343,
-  C_LE_S = 1344,
-  C_LE_S_MM = 1345,
-  C_LT_D32 = 1346,
-  C_LT_D32_MM = 1347,
-  C_LT_D64 = 1348,
-  C_LT_D64_MM = 1349,
-  C_LT_S = 1350,
-  C_LT_S_MM = 1351,
-  C_NGE_D32 = 1352,
-  C_NGE_D32_MM = 1353,
-  C_NGE_D64 = 1354,
-  C_NGE_D64_MM = 1355,
-  C_NGE_S = 1356,
-  C_NGE_S_MM = 1357,
-  C_NGLE_D32 = 1358,
-  C_NGLE_D32_MM = 1359,
-  C_NGLE_D64 = 1360,
-  C_NGLE_D64_MM = 1361,
-  C_NGLE_S = 1362,
-  C_NGLE_S_MM = 1363,
-  C_NGL_D32 = 1364,
-  C_NGL_D32_MM = 1365,
-  C_NGL_D64 = 1366,
-  C_NGL_D64_MM = 1367,
-  C_NGL_S = 1368,
-  C_NGL_S_MM = 1369,
-  C_NGT_D32 = 1370,
-  C_NGT_D32_MM = 1371,
-  C_NGT_D64 = 1372,
-  C_NGT_D64_MM = 1373,
-  C_NGT_S = 1374,
-  C_NGT_S_MM = 1375,
-  C_OLE_D32 = 1376,
-  C_OLE_D32_MM = 1377,
-  C_OLE_D64 = 1378,
-  C_OLE_D64_MM = 1379,
-  C_OLE_S = 1380,
-  C_OLE_S_MM = 1381,
-  C_OLT_D32 = 1382,
-  C_OLT_D32_MM = 1383,
-  C_OLT_D64 = 1384,
-  C_OLT_D64_MM = 1385,
-  C_OLT_S = 1386,
-  C_OLT_S_MM = 1387,
-  C_SEQ_D32 = 1388,
-  C_SEQ_D32_MM = 1389,
-  C_SEQ_D64 = 1390,
-  C_SEQ_D64_MM = 1391,
-  C_SEQ_S = 1392,
-  C_SEQ_S_MM = 1393,
-  C_SF_D32 = 1394,
-  C_SF_D32_MM = 1395,
-  C_SF_D64 = 1396,
-  C_SF_D64_MM = 1397,
-  C_SF_S = 1398,
-  C_SF_S_MM = 1399,
-  C_UEQ_D32 = 1400,
-  C_UEQ_D32_MM = 1401,
-  C_UEQ_D64 = 1402,
-  C_UEQ_D64_MM = 1403,
-  C_UEQ_S = 1404,
-  C_UEQ_S_MM = 1405,
-  C_ULE_D32 = 1406,
-  C_ULE_D32_MM = 1407,
-  C_ULE_D64 = 1408,
-  C_ULE_D64_MM = 1409,
-  C_ULE_S = 1410,
-  C_ULE_S_MM = 1411,
-  C_ULT_D32 = 1412,
-  C_ULT_D32_MM = 1413,
-  C_ULT_D64 = 1414,
-  C_ULT_D64_MM = 1415,
-  C_ULT_S = 1416,
-  C_ULT_S_MM = 1417,
-  C_UN_D32 = 1418,
-  C_UN_D32_MM = 1419,
-  C_UN_D64 = 1420,
-  C_UN_D64_MM = 1421,
-  C_UN_S = 1422,
-  C_UN_S_MM = 1423,
-  CmpRxRy16 = 1424,
-  CmpiRxImm16 = 1425,
-  CmpiRxImmX16 = 1426,
-  DADD = 1427,
-  DADDi = 1428,
-  DADDiu = 1429,
-  DADDu = 1430,
-  DAHI = 1431,
-  DALIGN = 1432,
-  DATI = 1433,
-  DAUI = 1434,
-  DBITSWAP = 1435,
-  DCLO = 1436,
-  DCLO_R6 = 1437,
-  DCLZ = 1438,
-  DCLZ_R6 = 1439,
-  DDIV = 1440,
-  DDIVU = 1441,
-  DERET = 1442,
-  DERET_MM = 1443,
-  DERET_MMR6 = 1444,
-  DEXT = 1445,
-  DEXT64_32 = 1446,
-  DEXTM = 1447,
-  DEXTU = 1448,
-  DI = 1449,
-  DINS = 1450,
-  DINSM = 1451,
-  DINSU = 1452,
-  DIV = 1453,
-  DIVU = 1454,
-  DIVU_MMR6 = 1455,
-  DIV_MMR6 = 1456,
-  DIV_S_B = 1457,
-  DIV_S_D = 1458,
-  DIV_S_H = 1459,
-  DIV_S_W = 1460,
-  DIV_U_B = 1461,
-  DIV_U_D = 1462,
-  DIV_U_H = 1463,
-  DIV_U_W = 1464,
-  DI_MM = 1465,
-  DI_MMR6 = 1466,
-  DLSA = 1467,
-  DLSA_R6 = 1468,
-  DMFC0 = 1469,
-  DMFC1 = 1470,
-  DMFC2 = 1471,
-  DMFC2_OCTEON = 1472,
-  DMFGC0 = 1473,
-  DMOD = 1474,
-  DMODU = 1475,
-  DMT = 1476,
-  DMTC0 = 1477,
-  DMTC1 = 1478,
-  DMTC2 = 1479,
-  DMTC2_OCTEON = 1480,
-  DMTGC0 = 1481,
-  DMUH = 1482,
-  DMUHU = 1483,
-  DMUL = 1484,
-  DMULT = 1485,
-  DMULTu = 1486,
-  DMULU = 1487,
-  DMUL_R6 = 1488,
-  DOTP_S_D = 1489,
-  DOTP_S_H = 1490,
-  DOTP_S_W = 1491,
-  DOTP_U_D = 1492,
-  DOTP_U_H = 1493,
-  DOTP_U_W = 1494,
-  DPADD_S_D = 1495,
-  DPADD_S_H = 1496,
-  DPADD_S_W = 1497,
-  DPADD_U_D = 1498,
-  DPADD_U_H = 1499,
-  DPADD_U_W = 1500,
-  DPAQX_SA_W_PH = 1501,
-  DPAQX_SA_W_PH_MMR2 = 1502,
-  DPAQX_S_W_PH = 1503,
-  DPAQX_S_W_PH_MMR2 = 1504,
-  DPAQ_SA_L_W = 1505,
-  DPAQ_SA_L_W_MM = 1506,
-  DPAQ_S_W_PH = 1507,
-  DPAQ_S_W_PH_MM = 1508,
-  DPAU_H_QBL = 1509,
-  DPAU_H_QBL_MM = 1510,
-  DPAU_H_QBR = 1511,
-  DPAU_H_QBR_MM = 1512,
-  DPAX_W_PH = 1513,
-  DPAX_W_PH_MMR2 = 1514,
-  DPA_W_PH = 1515,
-  DPA_W_PH_MMR2 = 1516,
-  DPOP = 1517,
-  DPSQX_SA_W_PH = 1518,
-  DPSQX_SA_W_PH_MMR2 = 1519,
-  DPSQX_S_W_PH = 1520,
-  DPSQX_S_W_PH_MMR2 = 1521,
-  DPSQ_SA_L_W = 1522,
-  DPSQ_SA_L_W_MM = 1523,
-  DPSQ_S_W_PH = 1524,
-  DPSQ_S_W_PH_MM = 1525,
-  DPSUB_S_D = 1526,
-  DPSUB_S_H = 1527,
-  DPSUB_S_W = 1528,
-  DPSUB_U_D = 1529,
-  DPSUB_U_H = 1530,
-  DPSUB_U_W = 1531,
-  DPSU_H_QBL = 1532,
-  DPSU_H_QBL_MM = 1533,
-  DPSU_H_QBR = 1534,
-  DPSU_H_QBR_MM = 1535,
-  DPSX_W_PH = 1536,
-  DPSX_W_PH_MMR2 = 1537,
-  DPS_W_PH = 1538,
-  DPS_W_PH_MMR2 = 1539,
-  DROTR = 1540,
-  DROTR32 = 1541,
-  DROTRV = 1542,
-  DSBH = 1543,
-  DSDIV = 1544,
-  DSHD = 1545,
-  DSLL = 1546,
-  DSLL32 = 1547,
-  DSLL64_32 = 1548,
-  DSLLV = 1549,
-  DSRA = 1550,
-  DSRA32 = 1551,
-  DSRAV = 1552,
-  DSRL = 1553,
-  DSRL32 = 1554,
-  DSRLV = 1555,
-  DSUB = 1556,
-  DSUBu = 1557,
-  DUDIV = 1558,
-  DVP = 1559,
-  DVPE = 1560,
-  DVP_MMR6 = 1561,
-  DivRxRy16 = 1562,
-  DivuRxRy16 = 1563,
-  EHB = 1564,
-  EHB_MM = 1565,
-  EHB_MMR6 = 1566,
-  EI = 1567,
-  EI_MM = 1568,
-  EI_MMR6 = 1569,
-  EMT = 1570,
-  ERET = 1571,
-  ERETNC = 1572,
-  ERETNC_MMR6 = 1573,
-  ERET_MM = 1574,
-  ERET_MMR6 = 1575,
-  EVP = 1576,
-  EVPE = 1577,
-  EVP_MMR6 = 1578,
-  EXT = 1579,
-  EXTP = 1580,
-  EXTPDP = 1581,
-  EXTPDPV = 1582,
-  EXTPDPV_MM = 1583,
-  EXTPDP_MM = 1584,
-  EXTPV = 1585,
-  EXTPV_MM = 1586,
-  EXTP_MM = 1587,
-  EXTRV_RS_W = 1588,
-  EXTRV_RS_W_MM = 1589,
-  EXTRV_R_W = 1590,
-  EXTRV_R_W_MM = 1591,
-  EXTRV_S_H = 1592,
-  EXTRV_S_H_MM = 1593,
-  EXTRV_W = 1594,
-  EXTRV_W_MM = 1595,
-  EXTR_RS_W = 1596,
-  EXTR_RS_W_MM = 1597,
-  EXTR_R_W = 1598,
-  EXTR_R_W_MM = 1599,
-  EXTR_S_H = 1600,
-  EXTR_S_H_MM = 1601,
-  EXTR_W = 1602,
-  EXTR_W_MM = 1603,
-  EXTS = 1604,
-  EXTS32 = 1605,
-  EXT_MM = 1606,
-  EXT_MMR6 = 1607,
-  FABS_D32 = 1608,
-  FABS_D32_MM = 1609,
-  FABS_D64 = 1610,
-  FABS_D64_MM = 1611,
-  FABS_S = 1612,
-  FABS_S_MM = 1613,
-  FADD_D = 1614,
-  FADD_D32 = 1615,
-  FADD_D32_MM = 1616,
-  FADD_D64 = 1617,
-  FADD_D64_MM = 1618,
-  FADD_PS64 = 1619,
-  FADD_S = 1620,
-  FADD_S_MM = 1621,
-  FADD_S_MMR6 = 1622,
-  FADD_W = 1623,
-  FCAF_D = 1624,
-  FCAF_W = 1625,
-  FCEQ_D = 1626,
-  FCEQ_W = 1627,
-  FCLASS_D = 1628,
-  FCLASS_W = 1629,
-  FCLE_D = 1630,
-  FCLE_W = 1631,
-  FCLT_D = 1632,
-  FCLT_W = 1633,
-  FCMP_D32 = 1634,
-  FCMP_D32_MM = 1635,
-  FCMP_D64 = 1636,
-  FCMP_S32 = 1637,
-  FCMP_S32_MM = 1638,
-  FCNE_D = 1639,
-  FCNE_W = 1640,
-  FCOR_D = 1641,
-  FCOR_W = 1642,
-  FCUEQ_D = 1643,
-  FCUEQ_W = 1644,
-  FCULE_D = 1645,
-  FCULE_W = 1646,
-  FCULT_D = 1647,
-  FCULT_W = 1648,
-  FCUNE_D = 1649,
-  FCUNE_W = 1650,
-  FCUN_D = 1651,
-  FCUN_W = 1652,
-  FDIV_D = 1653,
-  FDIV_D32 = 1654,
-  FDIV_D32_MM = 1655,
-  FDIV_D64 = 1656,
-  FDIV_D64_MM = 1657,
-  FDIV_S = 1658,
-  FDIV_S_MM = 1659,
-  FDIV_S_MMR6 = 1660,
-  FDIV_W = 1661,
-  FEXDO_H = 1662,
-  FEXDO_W = 1663,
-  FEXP2_D = 1664,
-  FEXP2_W = 1665,
-  FEXUPL_D = 1666,
-  FEXUPL_W = 1667,
-  FEXUPR_D = 1668,
-  FEXUPR_W = 1669,
-  FFINT_S_D = 1670,
-  FFINT_S_W = 1671,
-  FFINT_U_D = 1672,
-  FFINT_U_W = 1673,
-  FFQL_D = 1674,
-  FFQL_W = 1675,
-  FFQR_D = 1676,
-  FFQR_W = 1677,
-  FILL_B = 1678,
-  FILL_D = 1679,
-  FILL_H = 1680,
-  FILL_W = 1681,
-  FLOG2_D = 1682,
-  FLOG2_W = 1683,
-  FLOOR_L_D64 = 1684,
-  FLOOR_L_D_MMR6 = 1685,
-  FLOOR_L_S = 1686,
-  FLOOR_L_S_MMR6 = 1687,
-  FLOOR_W_D32 = 1688,
-  FLOOR_W_D64 = 1689,
-  FLOOR_W_D_MMR6 = 1690,
-  FLOOR_W_MM = 1691,
-  FLOOR_W_S = 1692,
-  FLOOR_W_S_MM = 1693,
-  FLOOR_W_S_MMR6 = 1694,
-  FMADD_D = 1695,
-  FMADD_W = 1696,
-  FMAX_A_D = 1697,
-  FMAX_A_W = 1698,
-  FMAX_D = 1699,
-  FMAX_W = 1700,
-  FMIN_A_D = 1701,
-  FMIN_A_W = 1702,
-  FMIN_D = 1703,
-  FMIN_W = 1704,
-  FMOV_D32 = 1705,
-  FMOV_D32_MM = 1706,
-  FMOV_D64 = 1707,
-  FMOV_D64_MM = 1708,
-  FMOV_D_MMR6 = 1709,
-  FMOV_S = 1710,
-  FMOV_S_MM = 1711,
-  FMOV_S_MMR6 = 1712,
-  FMSUB_D = 1713,
-  FMSUB_W = 1714,
-  FMUL_D = 1715,
-  FMUL_D32 = 1716,
-  FMUL_D32_MM = 1717,
-  FMUL_D64 = 1718,
-  FMUL_D64_MM = 1719,
-  FMUL_PS64 = 1720,
-  FMUL_S = 1721,
-  FMUL_S_MM = 1722,
-  FMUL_S_MMR6 = 1723,
-  FMUL_W = 1724,
-  FNEG_D32 = 1725,
-  FNEG_D32_MM = 1726,
-  FNEG_D64 = 1727,
-  FNEG_D64_MM = 1728,
-  FNEG_S = 1729,
-  FNEG_S_MM = 1730,
-  FNEG_S_MMR6 = 1731,
-  FORK = 1732,
-  FRCP_D = 1733,
-  FRCP_W = 1734,
-  FRINT_D = 1735,
-  FRINT_W = 1736,
-  FRSQRT_D = 1737,
-  FRSQRT_W = 1738,
-  FSAF_D = 1739,
-  FSAF_W = 1740,
-  FSEQ_D = 1741,
-  FSEQ_W = 1742,
-  FSLE_D = 1743,
-  FSLE_W = 1744,
-  FSLT_D = 1745,
-  FSLT_W = 1746,
-  FSNE_D = 1747,
-  FSNE_W = 1748,
-  FSOR_D = 1749,
-  FSOR_W = 1750,
-  FSQRT_D = 1751,
-  FSQRT_D32 = 1752,
-  FSQRT_D32_MM = 1753,
-  FSQRT_D64 = 1754,
-  FSQRT_D64_MM = 1755,
-  FSQRT_S = 1756,
-  FSQRT_S_MM = 1757,
-  FSQRT_W = 1758,
-  FSUB_D = 1759,
-  FSUB_D32 = 1760,
-  FSUB_D32_MM = 1761,
-  FSUB_D64 = 1762,
-  FSUB_D64_MM = 1763,
-  FSUB_PS64 = 1764,
-  FSUB_S = 1765,
-  FSUB_S_MM = 1766,
-  FSUB_S_MMR6 = 1767,
-  FSUB_W = 1768,
-  FSUEQ_D = 1769,
-  FSUEQ_W = 1770,
-  FSULE_D = 1771,
-  FSULE_W = 1772,
-  FSULT_D = 1773,
-  FSULT_W = 1774,
-  FSUNE_D = 1775,
-  FSUNE_W = 1776,
-  FSUN_D = 1777,
-  FSUN_W = 1778,
-  FTINT_S_D = 1779,
-  FTINT_S_W = 1780,
-  FTINT_U_D = 1781,
-  FTINT_U_W = 1782,
-  FTQ_H = 1783,
-  FTQ_W = 1784,
-  FTRUNC_S_D = 1785,
-  FTRUNC_S_W = 1786,
-  FTRUNC_U_D = 1787,
-  FTRUNC_U_W = 1788,
-  GINVI = 1789,
-  GINVI_MMR6 = 1790,
-  GINVT = 1791,
-  GINVT_MMR6 = 1792,
-  HADD_S_D = 1793,
-  HADD_S_H = 1794,
-  HADD_S_W = 1795,
-  HADD_U_D = 1796,
-  HADD_U_H = 1797,
-  HADD_U_W = 1798,
-  HSUB_S_D = 1799,
-  HSUB_S_H = 1800,
-  HSUB_S_W = 1801,
-  HSUB_U_D = 1802,
-  HSUB_U_H = 1803,
-  HSUB_U_W = 1804,
-  HYPCALL = 1805,
-  HYPCALL_MM = 1806,
-  ILVEV_B = 1807,
-  ILVEV_D = 1808,
-  ILVEV_H = 1809,
-  ILVEV_W = 1810,
-  ILVL_B = 1811,
-  ILVL_D = 1812,
-  ILVL_H = 1813,
-  ILVL_W = 1814,
-  ILVOD_B = 1815,
-  ILVOD_D = 1816,
-  ILVOD_H = 1817,
-  ILVOD_W = 1818,
-  ILVR_B = 1819,
-  ILVR_D = 1820,
-  ILVR_H = 1821,
-  ILVR_W = 1822,
-  INS = 1823,
-  INSERT_B = 1824,
-  INSERT_D = 1825,
-  INSERT_H = 1826,
-  INSERT_W = 1827,
-  INSV = 1828,
-  INSVE_B = 1829,
-  INSVE_D = 1830,
-  INSVE_H = 1831,
-  INSVE_W = 1832,
-  INSV_MM = 1833,
-  INS_MM = 1834,
-  INS_MMR6 = 1835,
-  J = 1836,
-  JAL = 1837,
-  JALR = 1838,
-  JALR16_MM = 1839,
-  JALR64 = 1840,
-  JALRC16_MMR6 = 1841,
-  JALRC_HB_MMR6 = 1842,
-  JALRC_MMR6 = 1843,
-  JALRS16_MM = 1844,
-  JALRS_MM = 1845,
-  JALR_HB = 1846,
-  JALR_HB64 = 1847,
-  JALR_MM = 1848,
-  JALS_MM = 1849,
-  JALX = 1850,
-  JALX_MM = 1851,
-  JAL_MM = 1852,
-  JIALC = 1853,
-  JIALC64 = 1854,
-  JIALC_MMR6 = 1855,
-  JIC = 1856,
-  JIC64 = 1857,
-  JIC_MMR6 = 1858,
-  JR = 1859,
-  JR16_MM = 1860,
-  JR64 = 1861,
-  JRADDIUSP = 1862,
-  JRC16_MM = 1863,
-  JRC16_MMR6 = 1864,
-  JRCADDIUSP_MMR6 = 1865,
-  JR_HB = 1866,
-  JR_HB64 = 1867,
-  JR_HB64_R6 = 1868,
-  JR_HB_R6 = 1869,
-  JR_MM = 1870,
-  J_MM = 1871,
-  Jal16 = 1872,
-  JalB16 = 1873,
-  JrRa16 = 1874,
-  JrcRa16 = 1875,
-  JrcRx16 = 1876,
-  JumpLinkReg16 = 1877,
-  LB = 1878,
-  LB64 = 1879,
-  LBE = 1880,
-  LBE_MM = 1881,
-  LBU16_MM = 1882,
-  LBUX = 1883,
-  LBUX_MM = 1884,
-  LBU_MMR6 = 1885,
-  LB_MM = 1886,
-  LB_MMR6 = 1887,
-  LBu = 1888,
-  LBu64 = 1889,
-  LBuE = 1890,
-  LBuE_MM = 1891,
-  LBu_MM = 1892,
-  LD = 1893,
-  LDC1 = 1894,
-  LDC164 = 1895,
-  LDC1_D64_MMR6 = 1896,
-  LDC1_MM_D32 = 1897,
-  LDC1_MM_D64 = 1898,
-  LDC2 = 1899,
-  LDC2_MMR6 = 1900,
-  LDC2_R6 = 1901,
-  LDC3 = 1902,
-  LDI_B = 1903,
-  LDI_D = 1904,
-  LDI_H = 1905,
-  LDI_W = 1906,
-  LDL = 1907,
-  LDPC = 1908,
-  LDR = 1909,
-  LDXC1 = 1910,
-  LDXC164 = 1911,
-  LD_B = 1912,
-  LD_D = 1913,
-  LD_H = 1914,
-  LD_W = 1915,
-  LEA_ADDiu = 1916,
-  LEA_ADDiu64 = 1917,
-  LEA_ADDiu_MM = 1918,
-  LH = 1919,
-  LH64 = 1920,
-  LHE = 1921,
-  LHE_MM = 1922,
-  LHU16_MM = 1923,
-  LHX = 1924,
-  LHX_MM = 1925,
-  LH_MM = 1926,
-  LHu = 1927,
-  LHu64 = 1928,
-  LHuE = 1929,
-  LHuE_MM = 1930,
-  LHu_MM = 1931,
-  LI16_MM = 1932,
-  LI16_MMR6 = 1933,
-  LL = 1934,
-  LL64 = 1935,
-  LL64_R6 = 1936,
-  LLD = 1937,
-  LLD_R6 = 1938,
-  LLE = 1939,
-  LLE_MM = 1940,
-  LL_MM = 1941,
-  LL_MMR6 = 1942,
-  LL_R6 = 1943,
-  LSA = 1944,
-  LSA_MMR6 = 1945,
-  LSA_R6 = 1946,
-  LUI_MMR6 = 1947,
-  LUXC1 = 1948,
-  LUXC164 = 1949,
-  LUXC1_MM = 1950,
-  LUi = 1951,
-  LUi64 = 1952,
-  LUi_MM = 1953,
-  LW = 1954,
-  LW16_MM = 1955,
-  LW64 = 1956,
-  LWC1 = 1957,
-  LWC1_MM = 1958,
-  LWC2 = 1959,
-  LWC2_MMR6 = 1960,
-  LWC2_R6 = 1961,
-  LWC3 = 1962,
-  LWDSP = 1963,
-  LWDSP_MM = 1964,
-  LWE = 1965,
-  LWE_MM = 1966,
-  LWGP_MM = 1967,
-  LWL = 1968,
-  LWL64 = 1969,
-  LWLE = 1970,
-  LWLE_MM = 1971,
-  LWL_MM = 1972,
-  LWM16_MM = 1973,
-  LWM16_MMR6 = 1974,
-  LWM32_MM = 1975,
-  LWPC = 1976,
-  LWPC_MMR6 = 1977,
-  LWP_MM = 1978,
-  LWR = 1979,
-  LWR64 = 1980,
-  LWRE = 1981,
-  LWRE_MM = 1982,
-  LWR_MM = 1983,
-  LWSP_MM = 1984,
-  LWUPC = 1985,
-  LWU_MM = 1986,
-  LWX = 1987,
-  LWXC1 = 1988,
-  LWXC1_MM = 1989,
-  LWXS_MM = 1990,
-  LWX_MM = 1991,
-  LW_MM = 1992,
-  LW_MMR6 = 1993,
-  LWu = 1994,
-  LbRxRyOffMemX16 = 1995,
-  LbuRxRyOffMemX16 = 1996,
-  LhRxRyOffMemX16 = 1997,
-  LhuRxRyOffMemX16 = 1998,
-  LiRxImm16 = 1999,
-  LiRxImmAlignX16 = 2000,
-  LiRxImmX16 = 2001,
-  LwRxPcTcp16 = 2002,
-  LwRxPcTcpX16 = 2003,
-  LwRxRyOffMemX16 = 2004,
-  LwRxSpImmX16 = 2005,
-  MADD = 2006,
-  MADDF_D = 2007,
-  MADDF_D_MMR6 = 2008,
-  MADDF_S = 2009,
-  MADDF_S_MMR6 = 2010,
-  MADDR_Q_H = 2011,
-  MADDR_Q_W = 2012,
-  MADDU = 2013,
-  MADDU_DSP = 2014,
-  MADDU_DSP_MM = 2015,
-  MADDU_MM = 2016,
-  MADDV_B = 2017,
-  MADDV_D = 2018,
-  MADDV_H = 2019,
-  MADDV_W = 2020,
-  MADD_D32 = 2021,
-  MADD_D32_MM = 2022,
-  MADD_D64 = 2023,
-  MADD_DSP = 2024,
-  MADD_DSP_MM = 2025,
-  MADD_MM = 2026,
-  MADD_Q_H = 2027,
-  MADD_Q_W = 2028,
-  MADD_S = 2029,
-  MADD_S_MM = 2030,
-  MAQ_SA_W_PHL = 2031,
-  MAQ_SA_W_PHL_MM = 2032,
-  MAQ_SA_W_PHR = 2033,
-  MAQ_SA_W_PHR_MM = 2034,
-  MAQ_S_W_PHL = 2035,
-  MAQ_S_W_PHL_MM = 2036,
-  MAQ_S_W_PHR = 2037,
-  MAQ_S_W_PHR_MM = 2038,
-  MAXA_D = 2039,
-  MAXA_D_MMR6 = 2040,
-  MAXA_S = 2041,
-  MAXA_S_MMR6 = 2042,
-  MAXI_S_B = 2043,
-  MAXI_S_D = 2044,
-  MAXI_S_H = 2045,
-  MAXI_S_W = 2046,
-  MAXI_U_B = 2047,
-  MAXI_U_D = 2048,
-  MAXI_U_H = 2049,
-  MAXI_U_W = 2050,
-  MAX_A_B = 2051,
-  MAX_A_D = 2052,
-  MAX_A_H = 2053,
-  MAX_A_W = 2054,
-  MAX_D = 2055,
-  MAX_D_MMR6 = 2056,
-  MAX_S = 2057,
-  MAX_S_B = 2058,
-  MAX_S_D = 2059,
-  MAX_S_H = 2060,
-  MAX_S_MMR6 = 2061,
-  MAX_S_W = 2062,
-  MAX_U_B = 2063,
-  MAX_U_D = 2064,
-  MAX_U_H = 2065,
-  MAX_U_W = 2066,
-  MFC0 = 2067,
-  MFC0_MMR6 = 2068,
-  MFC1 = 2069,
-  MFC1_D64 = 2070,
-  MFC1_MM = 2071,
-  MFC1_MMR6 = 2072,
-  MFC2 = 2073,
-  MFC2_MMR6 = 2074,
-  MFGC0 = 2075,
-  MFGC0_MM = 2076,
-  MFHC0_MMR6 = 2077,
-  MFHC1_D32 = 2078,
-  MFHC1_D32_MM = 2079,
-  MFHC1_D64 = 2080,
-  MFHC1_D64_MM = 2081,
-  MFHC2_MMR6 = 2082,
-  MFHGC0 = 2083,
-  MFHGC0_MM = 2084,
-  MFHI = 2085,
-  MFHI16_MM = 2086,
-  MFHI64 = 2087,
-  MFHI_DSP = 2088,
-  MFHI_DSP_MM = 2089,
-  MFHI_MM = 2090,
-  MFLO = 2091,
-  MFLO16_MM = 2092,
-  MFLO64 = 2093,
-  MFLO_DSP = 2094,
-  MFLO_DSP_MM = 2095,
-  MFLO_MM = 2096,
-  MFTR = 2097,
-  MINA_D = 2098,
-  MINA_D_MMR6 = 2099,
-  MINA_S = 2100,
-  MINA_S_MMR6 = 2101,
-  MINI_S_B = 2102,
-  MINI_S_D = 2103,
-  MINI_S_H = 2104,
-  MINI_S_W = 2105,
-  MINI_U_B = 2106,
-  MINI_U_D = 2107,
-  MINI_U_H = 2108,
-  MINI_U_W = 2109,
-  MIN_A_B = 2110,
-  MIN_A_D = 2111,
-  MIN_A_H = 2112,
-  MIN_A_W = 2113,
-  MIN_D = 2114,
-  MIN_D_MMR6 = 2115,
-  MIN_S = 2116,
-  MIN_S_B = 2117,
-  MIN_S_D = 2118,
-  MIN_S_H = 2119,
-  MIN_S_MMR6 = 2120,
-  MIN_S_W = 2121,
-  MIN_U_B = 2122,
-  MIN_U_D = 2123,
-  MIN_U_H = 2124,
-  MIN_U_W = 2125,
-  MOD = 2126,
-  MODSUB = 2127,
-  MODSUB_MM = 2128,
-  MODU = 2129,
-  MODU_MMR6 = 2130,
-  MOD_MMR6 = 2131,
-  MOD_S_B = 2132,
-  MOD_S_D = 2133,
-  MOD_S_H = 2134,
-  MOD_S_W = 2135,
-  MOD_U_B = 2136,
-  MOD_U_D = 2137,
-  MOD_U_H = 2138,
-  MOD_U_W = 2139,
-  MOVE16_MM = 2140,
-  MOVE16_MMR6 = 2141,
-  MOVEP_MM = 2142,
-  MOVEP_MMR6 = 2143,
-  MOVE_V = 2144,
-  MOVF_D32 = 2145,
-  MOVF_D32_MM = 2146,
-  MOVF_D64 = 2147,
-  MOVF_I = 2148,
-  MOVF_I64 = 2149,
-  MOVF_I_MM = 2150,
-  MOVF_S = 2151,
-  MOVF_S_MM = 2152,
-  MOVN_I64_D64 = 2153,
-  MOVN_I64_I = 2154,
-  MOVN_I64_I64 = 2155,
-  MOVN_I64_S = 2156,
-  MOVN_I_D32 = 2157,
-  MOVN_I_D32_MM = 2158,
-  MOVN_I_D64 = 2159,
-  MOVN_I_I = 2160,
-  MOVN_I_I64 = 2161,
-  MOVN_I_MM = 2162,
-  MOVN_I_S = 2163,
-  MOVN_I_S_MM = 2164,
-  MOVT_D32 = 2165,
-  MOVT_D32_MM = 2166,
-  MOVT_D64 = 2167,
-  MOVT_I = 2168,
-  MOVT_I64 = 2169,
-  MOVT_I_MM = 2170,
-  MOVT_S = 2171,
-  MOVT_S_MM = 2172,
-  MOVZ_I64_D64 = 2173,
-  MOVZ_I64_I = 2174,
-  MOVZ_I64_I64 = 2175,
-  MOVZ_I64_S = 2176,
-  MOVZ_I_D32 = 2177,
-  MOVZ_I_D32_MM = 2178,
-  MOVZ_I_D64 = 2179,
-  MOVZ_I_I = 2180,
-  MOVZ_I_I64 = 2181,
-  MOVZ_I_MM = 2182,
-  MOVZ_I_S = 2183,
-  MOVZ_I_S_MM = 2184,
-  MSUB = 2185,
-  MSUBF_D = 2186,
-  MSUBF_D_MMR6 = 2187,
-  MSUBF_S = 2188,
-  MSUBF_S_MMR6 = 2189,
-  MSUBR_Q_H = 2190,
-  MSUBR_Q_W = 2191,
-  MSUBU = 2192,
-  MSUBU_DSP = 2193,
-  MSUBU_DSP_MM = 2194,
-  MSUBU_MM = 2195,
-  MSUBV_B = 2196,
-  MSUBV_D = 2197,
-  MSUBV_H = 2198,
-  MSUBV_W = 2199,
-  MSUB_D32 = 2200,
-  MSUB_D32_MM = 2201,
-  MSUB_D64 = 2202,
-  MSUB_DSP = 2203,
-  MSUB_DSP_MM = 2204,
-  MSUB_MM = 2205,
-  MSUB_Q_H = 2206,
-  MSUB_Q_W = 2207,
-  MSUB_S = 2208,
-  MSUB_S_MM = 2209,
-  MTC0 = 2210,
-  MTC0_MMR6 = 2211,
-  MTC1 = 2212,
-  MTC1_D64 = 2213,
-  MTC1_D64_MM = 2214,
-  MTC1_MM = 2215,
-  MTC1_MMR6 = 2216,
-  MTC2 = 2217,
-  MTC2_MMR6 = 2218,
-  MTGC0 = 2219,
-  MTGC0_MM = 2220,
-  MTHC0_MMR6 = 2221,
-  MTHC1_D32 = 2222,
-  MTHC1_D32_MM = 2223,
-  MTHC1_D64 = 2224,
-  MTHC1_D64_MM = 2225,
-  MTHC2_MMR6 = 2226,
-  MTHGC0 = 2227,
-  MTHGC0_MM = 2228,
-  MTHI = 2229,
-  MTHI64 = 2230,
-  MTHI_DSP = 2231,
-  MTHI_DSP_MM = 2232,
-  MTHI_MM = 2233,
-  MTHLIP = 2234,
-  MTHLIP_MM = 2235,
-  MTLO = 2236,
-  MTLO64 = 2237,
-  MTLO_DSP = 2238,
-  MTLO_DSP_MM = 2239,
-  MTLO_MM = 2240,
-  MTM0 = 2241,
-  MTM1 = 2242,
-  MTM2 = 2243,
-  MTP0 = 2244,
-  MTP1 = 2245,
-  MTP2 = 2246,
-  MTTR = 2247,
-  MUH = 2248,
-  MUHU = 2249,
-  MUHU_MMR6 = 2250,
-  MUH_MMR6 = 2251,
-  MUL = 2252,
-  MULEQ_S_W_PHL = 2253,
-  MULEQ_S_W_PHL_MM = 2254,
-  MULEQ_S_W_PHR = 2255,
-  MULEQ_S_W_PHR_MM = 2256,
-  MULEU_S_PH_QBL = 2257,
-  MULEU_S_PH_QBL_MM = 2258,
-  MULEU_S_PH_QBR = 2259,
-  MULEU_S_PH_QBR_MM = 2260,
-  MULQ_RS_PH = 2261,
-  MULQ_RS_PH_MM = 2262,
-  MULQ_RS_W = 2263,
-  MULQ_RS_W_MMR2 = 2264,
-  MULQ_S_PH = 2265,
-  MULQ_S_PH_MMR2 = 2266,
-  MULQ_S_W = 2267,
-  MULQ_S_W_MMR2 = 2268,
-  MULR_PS64 = 2269,
-  MULR_Q_H = 2270,
-  MULR_Q_W = 2271,
-  MULSAQ_S_W_PH = 2272,
-  MULSAQ_S_W_PH_MM = 2273,
-  MULSA_W_PH = 2274,
-  MULSA_W_PH_MMR2 = 2275,
-  MULT = 2276,
-  MULTU_DSP = 2277,
-  MULTU_DSP_MM = 2278,
-  MULT_DSP = 2279,
-  MULT_DSP_MM = 2280,
-  MULT_MM = 2281,
-  MULTu = 2282,
-  MULTu_MM = 2283,
-  MULU = 2284,
-  MULU_MMR6 = 2285,
-  MULV_B = 2286,
-  MULV_D = 2287,
-  MULV_H = 2288,
-  MULV_W = 2289,
-  MUL_MM = 2290,
-  MUL_MMR6 = 2291,
-  MUL_PH = 2292,
-  MUL_PH_MMR2 = 2293,
-  MUL_Q_H = 2294,
-  MUL_Q_W = 2295,
-  MUL_R6 = 2296,
-  MUL_S_PH = 2297,
-  MUL_S_PH_MMR2 = 2298,
-  Mfhi16 = 2299,
-  Mflo16 = 2300,
-  Move32R16 = 2301,
-  MoveR3216 = 2302,
-  NAL = 2303,
-  NLOC_B = 2304,
-  NLOC_D = 2305,
-  NLOC_H = 2306,
-  NLOC_W = 2307,
-  NLZC_B = 2308,
-  NLZC_D = 2309,
-  NLZC_H = 2310,
-  NLZC_W = 2311,
-  NMADD_D32 = 2312,
-  NMADD_D32_MM = 2313,
-  NMADD_D64 = 2314,
-  NMADD_S = 2315,
-  NMADD_S_MM = 2316,
-  NMSUB_D32 = 2317,
-  NMSUB_D32_MM = 2318,
-  NMSUB_D64 = 2319,
-  NMSUB_S = 2320,
-  NMSUB_S_MM = 2321,
-  NOR = 2322,
-  NOR64 = 2323,
-  NORI_B = 2324,
-  NOR_MM = 2325,
-  NOR_MMR6 = 2326,
-  NOR_V = 2327,
-  NOT16_MM = 2328,
-  NOT16_MMR6 = 2329,
-  NegRxRy16 = 2330,
-  NotRxRy16 = 2331,
-  OR = 2332,
-  OR16_MM = 2333,
-  OR16_MMR6 = 2334,
-  OR64 = 2335,
-  ORI_B = 2336,
-  ORI_MMR6 = 2337,
-  OR_MM = 2338,
-  OR_MMR6 = 2339,
-  OR_V = 2340,
-  ORi = 2341,
-  ORi64 = 2342,
-  ORi_MM = 2343,
-  OrRxRxRy16 = 2344,
-  PACKRL_PH = 2345,
-  PACKRL_PH_MM = 2346,
-  PAUSE = 2347,
-  PAUSE_MM = 2348,
-  PAUSE_MMR6 = 2349,
-  PCKEV_B = 2350,
-  PCKEV_D = 2351,
-  PCKEV_H = 2352,
-  PCKEV_W = 2353,
-  PCKOD_B = 2354,
-  PCKOD_D = 2355,
-  PCKOD_H = 2356,
-  PCKOD_W = 2357,
-  PCNT_B = 2358,
-  PCNT_D = 2359,
-  PCNT_H = 2360,
-  PCNT_W = 2361,
-  PICK_PH = 2362,
-  PICK_PH_MM = 2363,
-  PICK_QB = 2364,
-  PICK_QB_MM = 2365,
-  PLL_PS64 = 2366,
-  PLU_PS64 = 2367,
-  POP = 2368,
-  PRECEQU_PH_QBL = 2369,
-  PRECEQU_PH_QBLA = 2370,
-  PRECEQU_PH_QBLA_MM = 2371,
-  PRECEQU_PH_QBL_MM = 2372,
-  PRECEQU_PH_QBR = 2373,
-  PRECEQU_PH_QBRA = 2374,
-  PRECEQU_PH_QBRA_MM = 2375,
-  PRECEQU_PH_QBR_MM = 2376,
-  PRECEQ_W_PHL = 2377,
-  PRECEQ_W_PHL_MM = 2378,
-  PRECEQ_W_PHR = 2379,
-  PRECEQ_W_PHR_MM = 2380,
-  PRECEU_PH_QBL = 2381,
-  PRECEU_PH_QBLA = 2382,
-  PRECEU_PH_QBLA_MM = 2383,
-  PRECEU_PH_QBL_MM = 2384,
-  PRECEU_PH_QBR = 2385,
-  PRECEU_PH_QBRA = 2386,
-  PRECEU_PH_QBRA_MM = 2387,
-  PRECEU_PH_QBR_MM = 2388,
-  PRECRQU_S_QB_PH = 2389,
-  PRECRQU_S_QB_PH_MM = 2390,
-  PRECRQ_PH_W = 2391,
-  PRECRQ_PH_W_MM = 2392,
-  PRECRQ_QB_PH = 2393,
-  PRECRQ_QB_PH_MM = 2394,
-  PRECRQ_RS_PH_W = 2395,
-  PRECRQ_RS_PH_W_MM = 2396,
-  PRECR_QB_PH = 2397,
-  PRECR_QB_PH_MMR2 = 2398,
-  PRECR_SRA_PH_W = 2399,
-  PRECR_SRA_PH_W_MMR2 = 2400,
-  PRECR_SRA_R_PH_W = 2401,
-  PRECR_SRA_R_PH_W_MMR2 = 2402,
-  PREF = 2403,
-  PREFE = 2404,
-  PREFE_MM = 2405,
-  PREFX_MM = 2406,
-  PREF_MM = 2407,
-  PREF_MMR6 = 2408,
-  PREF_R6 = 2409,
-  PREPEND = 2410,
-  PREPEND_MMR2 = 2411,
-  PUL_PS64 = 2412,
-  PUU_PS64 = 2413,
-  RADDU_W_QB = 2414,
-  RADDU_W_QB_MM = 2415,
-  RDDSP = 2416,
-  RDDSP_MM = 2417,
-  RDHWR = 2418,
-  RDHWR64 = 2419,
-  RDHWR_MM = 2420,
-  RDHWR_MMR6 = 2421,
-  RDPGPR_MMR6 = 2422,
-  RECIP_D32 = 2423,
-  RECIP_D32_MM = 2424,
-  RECIP_D64 = 2425,
-  RECIP_D64_MM = 2426,
-  RECIP_S = 2427,
-  RECIP_S_MM = 2428,
-  REPLV_PH = 2429,
-  REPLV_PH_MM = 2430,
-  REPLV_QB = 2431,
-  REPLV_QB_MM = 2432,
-  REPL_PH = 2433,
-  REPL_PH_MM = 2434,
-  REPL_QB = 2435,
-  REPL_QB_MM = 2436,
-  RINT_D = 2437,
-  RINT_D_MMR6 = 2438,
-  RINT_S = 2439,
-  RINT_S_MMR6 = 2440,
-  ROTR = 2441,
-  ROTRV = 2442,
-  ROTRV_MM = 2443,
-  ROTR_MM = 2444,
-  ROUND_L_D64 = 2445,
-  ROUND_L_D_MMR6 = 2446,
-  ROUND_L_S = 2447,
-  ROUND_L_S_MMR6 = 2448,
-  ROUND_W_D32 = 2449,
-  ROUND_W_D64 = 2450,
-  ROUND_W_D_MMR6 = 2451,
-  ROUND_W_MM = 2452,
-  ROUND_W_S = 2453,
-  ROUND_W_S_MM = 2454,
-  ROUND_W_S_MMR6 = 2455,
-  RSQRT_D32 = 2456,
-  RSQRT_D32_MM = 2457,
-  RSQRT_D64 = 2458,
-  RSQRT_D64_MM = 2459,
-  RSQRT_S = 2460,
-  RSQRT_S_MM = 2461,
-  Restore16 = 2462,
-  RestoreX16 = 2463,
-  SAA = 2464,
-  SAAD = 2465,
-  SAT_S_B = 2466,
-  SAT_S_D = 2467,
-  SAT_S_H = 2468,
-  SAT_S_W = 2469,
-  SAT_U_B = 2470,
-  SAT_U_D = 2471,
-  SAT_U_H = 2472,
-  SAT_U_W = 2473,
-  SB = 2474,
-  SB16_MM = 2475,
-  SB16_MMR6 = 2476,
-  SB64 = 2477,
-  SBE = 2478,
-  SBE_MM = 2479,
-  SB_MM = 2480,
-  SB_MMR6 = 2481,
-  SC = 2482,
-  SC64 = 2483,
-  SC64_R6 = 2484,
-  SCD = 2485,
-  SCD_R6 = 2486,
-  SCE = 2487,
-  SCE_MM = 2488,
-  SC_MM = 2489,
-  SC_MMR6 = 2490,
-  SC_R6 = 2491,
-  SD = 2492,
-  SDBBP = 2493,
-  SDBBP16_MM = 2494,
-  SDBBP16_MMR6 = 2495,
-  SDBBP_MM = 2496,
-  SDBBP_MMR6 = 2497,
-  SDBBP_R6 = 2498,
-  SDC1 = 2499,
-  SDC164 = 2500,
-  SDC1_D64_MMR6 = 2501,
-  SDC1_MM_D32 = 2502,
-  SDC1_MM_D64 = 2503,
-  SDC2 = 2504,
-  SDC2_MMR6 = 2505,
-  SDC2_R6 = 2506,
-  SDC3 = 2507,
-  SDIV = 2508,
-  SDIV_MM = 2509,
-  SDL = 2510,
-  SDR = 2511,
-  SDXC1 = 2512,
-  SDXC164 = 2513,
-  SEB = 2514,
-  SEB64 = 2515,
-  SEB_MM = 2516,
-  SEH = 2517,
-  SEH64 = 2518,
-  SEH_MM = 2519,
-  SELEQZ = 2520,
-  SELEQZ64 = 2521,
-  SELEQZ_D = 2522,
-  SELEQZ_D_MMR6 = 2523,
-  SELEQZ_MMR6 = 2524,
-  SELEQZ_S = 2525,
-  SELEQZ_S_MMR6 = 2526,
-  SELNEZ = 2527,
-  SELNEZ64 = 2528,
-  SELNEZ_D = 2529,
-  SELNEZ_D_MMR6 = 2530,
-  SELNEZ_MMR6 = 2531,
-  SELNEZ_S = 2532,
-  SELNEZ_S_MMR6 = 2533,
-  SEL_D = 2534,
-  SEL_D_MMR6 = 2535,
-  SEL_S = 2536,
-  SEL_S_MMR6 = 2537,
-  SEQ = 2538,
-  SEQi = 2539,
-  SH = 2540,
-  SH16_MM = 2541,
-  SH16_MMR6 = 2542,
-  SH64 = 2543,
-  SHE = 2544,
-  SHE_MM = 2545,
-  SHF_B = 2546,
-  SHF_H = 2547,
-  SHF_W = 2548,
-  SHILO = 2549,
-  SHILOV = 2550,
-  SHILOV_MM = 2551,
-  SHILO_MM = 2552,
-  SHLLV_PH = 2553,
-  SHLLV_PH_MM = 2554,
-  SHLLV_QB = 2555,
-  SHLLV_QB_MM = 2556,
-  SHLLV_S_PH = 2557,
-  SHLLV_S_PH_MM = 2558,
-  SHLLV_S_W = 2559,
-  SHLLV_S_W_MM = 2560,
-  SHLL_PH = 2561,
-  SHLL_PH_MM = 2562,
-  SHLL_QB = 2563,
-  SHLL_QB_MM = 2564,
-  SHLL_S_PH = 2565,
-  SHLL_S_PH_MM = 2566,
-  SHLL_S_W = 2567,
-  SHLL_S_W_MM = 2568,
-  SHRAV_PH = 2569,
-  SHRAV_PH_MM = 2570,
-  SHRAV_QB = 2571,
-  SHRAV_QB_MMR2 = 2572,
-  SHRAV_R_PH = 2573,
-  SHRAV_R_PH_MM = 2574,
-  SHRAV_R_QB = 2575,
-  SHRAV_R_QB_MMR2 = 2576,
-  SHRAV_R_W = 2577,
-  SHRAV_R_W_MM = 2578,
-  SHRA_PH = 2579,
-  SHRA_PH_MM = 2580,
-  SHRA_QB = 2581,
-  SHRA_QB_MMR2 = 2582,
-  SHRA_R_PH = 2583,
-  SHRA_R_PH_MM = 2584,
-  SHRA_R_QB = 2585,
-  SHRA_R_QB_MMR2 = 2586,
-  SHRA_R_W = 2587,
-  SHRA_R_W_MM = 2588,
-  SHRLV_PH = 2589,
-  SHRLV_PH_MMR2 = 2590,
-  SHRLV_QB = 2591,
-  SHRLV_QB_MM = 2592,
-  SHRL_PH = 2593,
-  SHRL_PH_MMR2 = 2594,
-  SHRL_QB = 2595,
-  SHRL_QB_MM = 2596,
-  SH_MM = 2597,
-  SH_MMR6 = 2598,
-  SIGRIE = 2599,
-  SIGRIE_MMR6 = 2600,
-  SLDI_B = 2601,
-  SLDI_D = 2602,
-  SLDI_H = 2603,
-  SLDI_W = 2604,
-  SLD_B = 2605,
-  SLD_D = 2606,
-  SLD_H = 2607,
-  SLD_W = 2608,
-  SLL = 2609,
-  SLL16_MM = 2610,
-  SLL16_MMR6 = 2611,
-  SLL64_32 = 2612,
-  SLL64_64 = 2613,
-  SLLI_B = 2614,
-  SLLI_D = 2615,
-  SLLI_H = 2616,
-  SLLI_W = 2617,
-  SLLV = 2618,
-  SLLV_MM = 2619,
-  SLL_B = 2620,
-  SLL_D = 2621,
-  SLL_H = 2622,
-  SLL_MM = 2623,
-  SLL_MMR6 = 2624,
-  SLL_W = 2625,
-  SLT = 2626,
-  SLT64 = 2627,
-  SLT_MM = 2628,
-  SLTi = 2629,
-  SLTi64 = 2630,
-  SLTi_MM = 2631,
-  SLTiu = 2632,
-  SLTiu64 = 2633,
-  SLTiu_MM = 2634,
-  SLTu = 2635,
-  SLTu64 = 2636,
-  SLTu_MM = 2637,
-  SNE = 2638,
-  SNEi = 2639,
-  SPLATI_B = 2640,
-  SPLATI_D = 2641,
-  SPLATI_H = 2642,
-  SPLATI_W = 2643,
-  SPLAT_B = 2644,
-  SPLAT_D = 2645,
-  SPLAT_H = 2646,
-  SPLAT_W = 2647,
-  SRA = 2648,
-  SRAI_B = 2649,
-  SRAI_D = 2650,
-  SRAI_H = 2651,
-  SRAI_W = 2652,
-  SRARI_B = 2653,
-  SRARI_D = 2654,
-  SRARI_H = 2655,
-  SRARI_W = 2656,
-  SRAR_B = 2657,
-  SRAR_D = 2658,
-  SRAR_H = 2659,
-  SRAR_W = 2660,
-  SRAV = 2661,
-  SRAV_MM = 2662,
-  SRA_B = 2663,
-  SRA_D = 2664,
-  SRA_H = 2665,
-  SRA_MM = 2666,
-  SRA_W = 2667,
-  SRL = 2668,
-  SRL16_MM = 2669,
-  SRL16_MMR6 = 2670,
-  SRLI_B = 2671,
-  SRLI_D = 2672,
-  SRLI_H = 2673,
-  SRLI_W = 2674,
-  SRLRI_B = 2675,
-  SRLRI_D = 2676,
-  SRLRI_H = 2677,
-  SRLRI_W = 2678,
-  SRLR_B = 2679,
-  SRLR_D = 2680,
-  SRLR_H = 2681,
-  SRLR_W = 2682,
-  SRLV = 2683,
-  SRLV_MM = 2684,
-  SRL_B = 2685,
-  SRL_D = 2686,
-  SRL_H = 2687,
-  SRL_MM = 2688,
-  SRL_W = 2689,
-  SSNOP = 2690,
-  SSNOP_MM = 2691,
-  SSNOP_MMR6 = 2692,
-  ST_B = 2693,
-  ST_D = 2694,
-  ST_H = 2695,
-  ST_W = 2696,
-  SUB = 2697,
-  SUBQH_PH = 2698,
-  SUBQH_PH_MMR2 = 2699,
-  SUBQH_R_PH = 2700,
-  SUBQH_R_PH_MMR2 = 2701,
-  SUBQH_R_W = 2702,
-  SUBQH_R_W_MMR2 = 2703,
-  SUBQH_W = 2704,
-  SUBQH_W_MMR2 = 2705,
-  SUBQ_PH = 2706,
-  SUBQ_PH_MM = 2707,
-  SUBQ_S_PH = 2708,
-  SUBQ_S_PH_MM = 2709,
-  SUBQ_S_W = 2710,
-  SUBQ_S_W_MM = 2711,
-  SUBSUS_U_B = 2712,
-  SUBSUS_U_D = 2713,
-  SUBSUS_U_H = 2714,
-  SUBSUS_U_W = 2715,
-  SUBSUU_S_B = 2716,
-  SUBSUU_S_D = 2717,
-  SUBSUU_S_H = 2718,
-  SUBSUU_S_W = 2719,
-  SUBS_S_B = 2720,
-  SUBS_S_D = 2721,
-  SUBS_S_H = 2722,
-  SUBS_S_W = 2723,
-  SUBS_U_B = 2724,
-  SUBS_U_D = 2725,
-  SUBS_U_H = 2726,
-  SUBS_U_W = 2727,
-  SUBU16_MM = 2728,
-  SUBU16_MMR6 = 2729,
-  SUBUH_QB = 2730,
-  SUBUH_QB_MMR2 = 2731,
-  SUBUH_R_QB = 2732,
-  SUBUH_R_QB_MMR2 = 2733,
-  SUBU_MMR6 = 2734,
-  SUBU_PH = 2735,
-  SUBU_PH_MMR2 = 2736,
-  SUBU_QB = 2737,
-  SUBU_QB_MM = 2738,
-  SUBU_S_PH = 2739,
-  SUBU_S_PH_MMR2 = 2740,
-  SUBU_S_QB = 2741,
-  SUBU_S_QB_MM = 2742,
-  SUBVI_B = 2743,
-  SUBVI_D = 2744,
-  SUBVI_H = 2745,
-  SUBVI_W = 2746,
-  SUBV_B = 2747,
-  SUBV_D = 2748,
-  SUBV_H = 2749,
-  SUBV_W = 2750,
-  SUB_MM = 2751,
-  SUB_MMR6 = 2752,
-  SUBu = 2753,
-  SUBu_MM = 2754,
-  SUXC1 = 2755,
-  SUXC164 = 2756,
-  SUXC1_MM = 2757,
-  SW = 2758,
-  SW16_MM = 2759,
-  SW16_MMR6 = 2760,
-  SW64 = 2761,
-  SWC1 = 2762,
-  SWC1_MM = 2763,
-  SWC2 = 2764,
-  SWC2_MMR6 = 2765,
-  SWC2_R6 = 2766,
-  SWC3 = 2767,
-  SWDSP = 2768,
-  SWDSP_MM = 2769,
-  SWE = 2770,
-  SWE_MM = 2771,
-  SWL = 2772,
-  SWL64 = 2773,
-  SWLE = 2774,
-  SWLE_MM = 2775,
-  SWL_MM = 2776,
-  SWM16_MM = 2777,
-  SWM16_MMR6 = 2778,
-  SWM32_MM = 2779,
-  SWP_MM = 2780,
-  SWR = 2781,
-  SWR64 = 2782,
-  SWRE = 2783,
-  SWRE_MM = 2784,
-  SWR_MM = 2785,
-  SWSP_MM = 2786,
-  SWSP_MMR6 = 2787,
-  SWXC1 = 2788,
-  SWXC1_MM = 2789,
-  SW_MM = 2790,
-  SW_MMR6 = 2791,
-  SYNC = 2792,
-  SYNCI = 2793,
-  SYNCI_MM = 2794,
-  SYNCI_MMR6 = 2795,
-  SYNC_MM = 2796,
-  SYNC_MMR6 = 2797,
-  SYSCALL = 2798,
-  SYSCALL_MM = 2799,
-  Save16 = 2800,
-  SaveX16 = 2801,
-  SbRxRyOffMemX16 = 2802,
-  SebRx16 = 2803,
-  SehRx16 = 2804,
-  ShRxRyOffMemX16 = 2805,
-  SllX16 = 2806,
-  SllvRxRy16 = 2807,
-  SltRxRy16 = 2808,
-  SltiRxImm16 = 2809,
-  SltiRxImmX16 = 2810,
-  SltiuRxImm16 = 2811,
-  SltiuRxImmX16 = 2812,
-  SltuRxRy16 = 2813,
-  SraX16 = 2814,
-  SravRxRy16 = 2815,
-  SrlX16 = 2816,
-  SrlvRxRy16 = 2817,
-  SubuRxRyRz16 = 2818,
-  SwRxRyOffMemX16 = 2819,
-  SwRxSpImmX16 = 2820,
-  TEQ = 2821,
-  TEQI = 2822,
-  TEQI_MM = 2823,
-  TEQ_MM = 2824,
-  TGE = 2825,
-  TGEI = 2826,
-  TGEIU = 2827,
-  TGEIU_MM = 2828,
-  TGEI_MM = 2829,
-  TGEU = 2830,
-  TGEU_MM = 2831,
-  TGE_MM = 2832,
-  TLBGINV = 2833,
-  TLBGINVF = 2834,
-  TLBGINVF_MM = 2835,
-  TLBGINV_MM = 2836,
-  TLBGP = 2837,
-  TLBGP_MM = 2838,
-  TLBGR = 2839,
-  TLBGR_MM = 2840,
-  TLBGWI = 2841,
-  TLBGWI_MM = 2842,
-  TLBGWR = 2843,
-  TLBGWR_MM = 2844,
-  TLBINV = 2845,
-  TLBINVF = 2846,
-  TLBINVF_MMR6 = 2847,
-  TLBINV_MMR6 = 2848,
-  TLBP = 2849,
-  TLBP_MM = 2850,
-  TLBR = 2851,
-  TLBR_MM = 2852,
-  TLBWI = 2853,
-  TLBWI_MM = 2854,
-  TLBWR = 2855,
-  TLBWR_MM = 2856,
-  TLT = 2857,
-  TLTI = 2858,
-  TLTIU_MM = 2859,
-  TLTI_MM = 2860,
-  TLTU = 2861,
-  TLTU_MM = 2862,
-  TLT_MM = 2863,
-  TNE = 2864,
-  TNEI = 2865,
-  TNEI_MM = 2866,
-  TNE_MM = 2867,
-  TRUNC_L_D64 = 2868,
-  TRUNC_L_D_MMR6 = 2869,
-  TRUNC_L_S = 2870,
-  TRUNC_L_S_MMR6 = 2871,
-  TRUNC_W_D32 = 2872,
-  TRUNC_W_D64 = 2873,
-  TRUNC_W_D_MMR6 = 2874,
-  TRUNC_W_MM = 2875,
-  TRUNC_W_S = 2876,
-  TRUNC_W_S_MM = 2877,
-  TRUNC_W_S_MMR6 = 2878,
-  TTLTIU = 2879,
-  UDIV = 2880,
-  UDIV_MM = 2881,
-  V3MULU = 2882,
-  VMM0 = 2883,
-  VMULU = 2884,
-  VSHF_B = 2885,
-  VSHF_D = 2886,
-  VSHF_H = 2887,
-  VSHF_W = 2888,
-  WAIT = 2889,
-  WAIT_MM = 2890,
-  WAIT_MMR6 = 2891,
-  WRDSP = 2892,
-  WRDSP_MM = 2893,
-  WRPGPR_MMR6 = 2894,
-  WSBH = 2895,
-  WSBH_MM = 2896,
-  WSBH_MMR6 = 2897,
-  XOR = 2898,
-  XOR16_MM = 2899,
-  XOR16_MMR6 = 2900,
-  XOR64 = 2901,
-  XORI_B = 2902,
-  XORI_MMR6 = 2903,
-  XOR_MM = 2904,
-  XOR_MMR6 = 2905,
-  XOR_V = 2906,
-  XORi = 2907,
-  XORi64 = 2908,
-  XORi_MM = 2909,
-  XorRxRxRy16 = 2910,
-  YIELD = 2911,
-  INSTRUCTION_LIST_END = 2912,
+  COPY_LANEMASK = 21,
+  BUNDLE = 22,
+  LIFETIME_START = 23,
+  LIFETIME_END = 24,
+  PSEUDO_PROBE = 25,
+  ARITH_FENCE = 26,
+  STACKMAP = 27,
+  FENTRY_CALL = 28,
+  PATCHPOINT = 29,
+  LOAD_STACK_GUARD = 30,
+  PREALLOCATED_SETUP = 31,
+  PREALLOCATED_ARG = 32,
+  STATEPOINT = 33,
+  LOCAL_ESCAPE = 34,
+  FAULTING_OP = 35,
+  PATCHABLE_OP = 36,
+  PATCHABLE_FUNCTION_ENTER = 37,
+  PATCHABLE_RET = 38,
+  PATCHABLE_FUNCTION_EXIT = 39,
+  PATCHABLE_TAIL_CALL = 40,
+  PATCHABLE_EVENT_CALL = 41,
+  PATCHABLE_TYPED_EVENT_CALL = 42,
+  ICALL_BRANCH_FUNNEL = 43,
+  FAKE_USE = 44,
+  MEMBARRIER = 45,
+  JUMP_TABLE_DEBUG_INFO = 46,
+  RELOC_NONE = 47,
+  CONVERGENCECTRL_ENTRY = 48,
+  CONVERGENCECTRL_ANCHOR = 49,
+  CONVERGENCECTRL_LOOP = 50,
+  CONVERGENCECTRL_GLUE = 51,
+  G_ASSERT_SEXT = 52,
+  G_ASSERT_ZEXT = 53,
+  G_ASSERT_ALIGN = 54,
+  G_ADD = 55,
+  G_SUB = 56,
+  G_MUL = 57,
+  G_SDIV = 58,
+  G_UDIV = 59,
+  G_SREM = 60,
+  G_UREM = 61,
+  G_SDIVREM = 62,
+  G_UDIVREM = 63,
+  G_AND = 64,
+  G_OR = 65,
+  G_XOR = 66,
+  G_ABDS = 67,
+  G_ABDU = 68,
+  G_UAVGFLOOR = 69,
+  G_UAVGCEIL = 70,
+  G_SAVGFLOOR = 71,
+  G_SAVGCEIL = 72,
+  G_IMPLICIT_DEF = 73,
+  G_PHI = 74,
+  G_FRAME_INDEX = 75,
+  G_GLOBAL_VALUE = 76,
+  G_PTRAUTH_GLOBAL_VALUE = 77,
+  G_CONSTANT_POOL = 78,
+  G_EXTRACT = 79,
+  G_UNMERGE_VALUES = 80,
+  G_INSERT = 81,
+  G_MERGE_VALUES = 82,
+  G_BUILD_VECTOR = 83,
+  G_BUILD_VECTOR_TRUNC = 84,
+  G_CONCAT_VECTORS = 85,
+  G_PTRTOINT = 86,
+  G_INTTOPTR = 87,
+  G_BITCAST = 88,
+  G_FREEZE = 89,
+  G_CONSTANT_FOLD_BARRIER = 90,
+  G_INTRINSIC_FPTRUNC_ROUND = 91,
+  G_INTRINSIC_TRUNC = 92,
+  G_INTRINSIC_ROUND = 93,
+  G_INTRINSIC_LRINT = 94,
+  G_INTRINSIC_LLRINT = 95,
+  G_INTRINSIC_ROUNDEVEN = 96,
+  G_READCYCLECOUNTER = 97,
+  G_READSTEADYCOUNTER = 98,
+  G_LOAD = 99,
+  G_SEXTLOAD = 100,
+  G_ZEXTLOAD = 101,
+  G_INDEXED_LOAD = 102,
+  G_INDEXED_SEXTLOAD = 103,
+  G_INDEXED_ZEXTLOAD = 104,
+  G_STORE = 105,
+  G_INDEXED_STORE = 106,
+  G_ATOMIC_CMPXCHG_WITH_SUCCESS = 107,
+  G_ATOMIC_CMPXCHG = 108,
+  G_ATOMICRMW_XCHG = 109,
+  G_ATOMICRMW_ADD = 110,
+  G_ATOMICRMW_SUB = 111,
+  G_ATOMICRMW_AND = 112,
+  G_ATOMICRMW_NAND = 113,
+  G_ATOMICRMW_OR = 114,
+  G_ATOMICRMW_XOR = 115,
+  G_ATOMICRMW_MAX = 116,
+  G_ATOMICRMW_MIN = 117,
+  G_ATOMICRMW_UMAX = 118,
+  G_ATOMICRMW_UMIN = 119,
+  G_ATOMICRMW_FADD = 120,
+  G_ATOMICRMW_FSUB = 121,
+  G_ATOMICRMW_FMAX = 122,
+  G_ATOMICRMW_FMIN = 123,
+  G_ATOMICRMW_FMAXIMUM = 124,
+  G_ATOMICRMW_FMINIMUM = 125,
+  G_ATOMICRMW_UINC_WRAP = 126,
+  G_ATOMICRMW_UDEC_WRAP = 127,
+  G_ATOMICRMW_USUB_COND = 128,
+  G_ATOMICRMW_USUB_SAT = 129,
+  G_FENCE = 130,
+  G_PREFETCH = 131,
+  G_BRCOND = 132,
+  G_BRINDIRECT = 133,
+  G_INVOKE_REGION_START = 134,
+  G_INTRINSIC = 135,
+  G_INTRINSIC_W_SIDE_EFFECTS = 136,
+  G_INTRINSIC_CONVERGENT = 137,
+  G_INTRINSIC_CONVERGENT_W_SIDE_EFFECTS = 138,
+  G_ANYEXT = 139,
+  G_TRUNC = 140,
+  G_TRUNC_SSAT_S = 141,
+  G_TRUNC_SSAT_U = 142,
+  G_TRUNC_USAT_U = 143,
+  G_CONSTANT = 144,
+  G_FCONSTANT = 145,
+  G_VASTART = 146,
+  G_VAARG = 147,
+  G_SEXT = 148,
+  G_SEXT_INREG = 149,
+  G_ZEXT = 150,
+  G_SHL = 151,
+  G_LSHR = 152,
+  G_ASHR = 153,
+  G_FSHL = 154,
+  G_FSHR = 155,
+  G_ROTR = 156,
+  G_ROTL = 157,
+  G_ICMP = 158,
+  G_FCMP = 159,
+  G_SCMP = 160,
+  G_UCMP = 161,
+  G_SELECT = 162,
+  G_UADDO = 163,
+  G_UADDE = 164,
+  G_USUBO = 165,
+  G_USUBE = 166,
+  G_SADDO = 167,
+  G_SADDE = 168,
+  G_SSUBO = 169,
+  G_SSUBE = 170,
+  G_UMULO = 171,
+  G_SMULO = 172,
+  G_UMULH = 173,
+  G_SMULH = 174,
+  G_UADDSAT = 175,
+  G_SADDSAT = 176,
+  G_USUBSAT = 177,
+  G_SSUBSAT = 178,
+  G_USHLSAT = 179,
+  G_SSHLSAT = 180,
+  G_SMULFIX = 181,
+  G_UMULFIX = 182,
+  G_SMULFIXSAT = 183,
+  G_UMULFIXSAT = 184,
+  G_SDIVFIX = 185,
+  G_UDIVFIX = 186,
+  G_SDIVFIXSAT = 187,
+  G_UDIVFIXSAT = 188,
+  G_FADD = 189,
+  G_FSUB = 190,
+  G_FMUL = 191,
+  G_FMA = 192,
+  G_FMAD = 193,
+  G_FDIV = 194,
+  G_FREM = 195,
+  G_FMODF = 196,
+  G_FPOW = 197,
+  G_FPOWI = 198,
+  G_FEXP = 199,
+  G_FEXP2 = 200,
+  G_FEXP10 = 201,
+  G_FLOG = 202,
+  G_FLOG2 = 203,
+  G_FLOG10 = 204,
+  G_FLDEXP = 205,
+  G_FFREXP = 206,
+  G_FNEG = 207,
+  G_FPEXT = 208,
+  G_FPTRUNC = 209,
+  G_FPTOSI = 210,
+  G_FPTOUI = 211,
+  G_SITOFP = 212,
+  G_UITOFP = 213,
+  G_FPTOSI_SAT = 214,
+  G_FPTOUI_SAT = 215,
+  G_FABS = 216,
+  G_FCOPYSIGN = 217,
+  G_IS_FPCLASS = 218,
+  G_FCANONICALIZE = 219,
+  G_FMINNUM = 220,
+  G_FMAXNUM = 221,
+  G_FMINNUM_IEEE = 222,
+  G_FMAXNUM_IEEE = 223,
+  G_FMINIMUM = 224,
+  G_FMAXIMUM = 225,
+  G_FMINIMUMNUM = 226,
+  G_FMAXIMUMNUM = 227,
+  G_GET_FPENV = 228,
+  G_SET_FPENV = 229,
+  G_RESET_FPENV = 230,
+  G_GET_FPMODE = 231,
+  G_SET_FPMODE = 232,
+  G_RESET_FPMODE = 233,
+  G_GET_ROUNDING = 234,
+  G_SET_ROUNDING = 235,
+  G_PTR_ADD = 236,
+  G_PTRMASK = 237,
+  G_SMIN = 238,
+  G_SMAX = 239,
+  G_UMIN = 240,
+  G_UMAX = 241,
+  G_ABS = 242,
+  G_LROUND = 243,
+  G_LLROUND = 244,
+  G_BR = 245,
+  G_BRJT = 246,
+  G_VSCALE = 247,
+  G_INSERT_SUBVECTOR = 248,
+  G_EXTRACT_SUBVECTOR = 249,
+  G_INSERT_VECTOR_ELT = 250,
+  G_EXTRACT_VECTOR_ELT = 251,
+  G_SHUFFLE_VECTOR = 252,
+  G_SPLAT_VECTOR = 253,
+  G_STEP_VECTOR = 254,
+  G_VECTOR_COMPRESS = 255,
+  G_CTTZ = 256,
+  G_CTTZ_ZERO_UNDEF = 257,
+  G_CTLZ = 258,
+  G_CTLZ_ZERO_UNDEF = 259,
+  G_CTPOP = 260,
+  G_BSWAP = 261,
+  G_BITREVERSE = 262,
+  G_FCEIL = 263,
+  G_FCOS = 264,
+  G_FSIN = 265,
+  G_FSINCOS = 266,
+  G_FTAN = 267,
+  G_FACOS = 268,
+  G_FASIN = 269,
+  G_FATAN = 270,
+  G_FATAN2 = 271,
+  G_FCOSH = 272,
+  G_FSINH = 273,
+  G_FTANH = 274,
+  G_FSQRT = 275,
+  G_FFLOOR = 276,
+  G_FRINT = 277,
+  G_FNEARBYINT = 278,
+  G_ADDRSPACE_CAST = 279,
+  G_BLOCK_ADDR = 280,
+  G_JUMP_TABLE = 281,
+  G_DYN_STACKALLOC = 282,
+  G_STACKSAVE = 283,
+  G_STACKRESTORE = 284,
+  G_STRICT_FADD = 285,
+  G_STRICT_FSUB = 286,
+  G_STRICT_FMUL = 287,
+  G_STRICT_FDIV = 288,
+  G_STRICT_FREM = 289,
+  G_STRICT_FMA = 290,
+  G_STRICT_FSQRT = 291,
+  G_STRICT_FLDEXP = 292,
+  G_READ_REGISTER = 293,
+  G_WRITE_REGISTER = 294,
+  G_MEMCPY = 295,
+  G_MEMCPY_INLINE = 296,
+  G_MEMMOVE = 297,
+  G_MEMSET = 298,
+  G_BZERO = 299,
+  G_TRAP = 300,
+  G_DEBUGTRAP = 301,
+  G_UBSANTRAP = 302,
+  G_VECREDUCE_SEQ_FADD = 303,
+  G_VECREDUCE_SEQ_FMUL = 304,
+  G_VECREDUCE_FADD = 305,
+  G_VECREDUCE_FMUL = 306,
+  G_VECREDUCE_FMAX = 307,
+  G_VECREDUCE_FMIN = 308,
+  G_VECREDUCE_FMAXIMUM = 309,
+  G_VECREDUCE_FMINIMUM = 310,
+  G_VECREDUCE_ADD = 311,
+  G_VECREDUCE_MUL = 312,
+  G_VECREDUCE_AND = 313,
+  G_VECREDUCE_OR = 314,
+  G_VECREDUCE_XOR = 315,
+  G_VECREDUCE_SMAX = 316,
+  G_VECREDUCE_SMIN = 317,
+  G_VECREDUCE_UMAX = 318,
+  G_VECREDUCE_UMIN = 319,
+  G_SBFX = 320,
+  G_UBFX = 321,
+  ABSMacro = 322,
+  ADJCALLSTACKDOWN = 323,
+  ADJCALLSTACKUP = 324,
+  AND_V_D_PSEUDO = 325,
+  AND_V_H_PSEUDO = 326,
+  AND_V_W_PSEUDO = 327,
+  ATOMIC_CMP_SWAP_I16 = 328,
+  ATOMIC_CMP_SWAP_I16_POSTRA = 329,
+  ATOMIC_CMP_SWAP_I32 = 330,
+  ATOMIC_CMP_SWAP_I32_POSTRA = 331,
+  ATOMIC_CMP_SWAP_I64 = 332,
+  ATOMIC_CMP_SWAP_I64_POSTRA = 333,
+  ATOMIC_CMP_SWAP_I8 = 334,
+  ATOMIC_CMP_SWAP_I8_POSTRA = 335,
+  ATOMIC_LOAD_ADD_I16 = 336,
+  ATOMIC_LOAD_ADD_I16_POSTRA = 337,
+  ATOMIC_LOAD_ADD_I32 = 338,
+  ATOMIC_LOAD_ADD_I32_POSTRA = 339,
+  ATOMIC_LOAD_ADD_I64 = 340,
+  ATOMIC_LOAD_ADD_I64_POSTRA = 341,
+  ATOMIC_LOAD_ADD_I8 = 342,
+  ATOMIC_LOAD_ADD_I8_POSTRA = 343,
+  ATOMIC_LOAD_AND_I16 = 344,
+  ATOMIC_LOAD_AND_I16_POSTRA = 345,
+  ATOMIC_LOAD_AND_I32 = 346,
+  ATOMIC_LOAD_AND_I32_POSTRA = 347,
+  ATOMIC_LOAD_AND_I64 = 348,
+  ATOMIC_LOAD_AND_I64_POSTRA = 349,
+  ATOMIC_LOAD_AND_I8 = 350,
+  ATOMIC_LOAD_AND_I8_POSTRA = 351,
+  ATOMIC_LOAD_MAX_I16 = 352,
+  ATOMIC_LOAD_MAX_I16_POSTRA = 353,
+  ATOMIC_LOAD_MAX_I32 = 354,
+  ATOMIC_LOAD_MAX_I32_POSTRA = 355,
+  ATOMIC_LOAD_MAX_I64 = 356,
+  ATOMIC_LOAD_MAX_I64_POSTRA = 357,
+  ATOMIC_LOAD_MAX_I8 = 358,
+  ATOMIC_LOAD_MAX_I8_POSTRA = 359,
+  ATOMIC_LOAD_MIN_I16 = 360,
+  ATOMIC_LOAD_MIN_I16_POSTRA = 361,
+  ATOMIC_LOAD_MIN_I32 = 362,
+  ATOMIC_LOAD_MIN_I32_POSTRA = 363,
+  ATOMIC_LOAD_MIN_I64 = 364,
+  ATOMIC_LOAD_MIN_I64_POSTRA = 365,
+  ATOMIC_LOAD_MIN_I8 = 366,
+  ATOMIC_LOAD_MIN_I8_POSTRA = 367,
+  ATOMIC_LOAD_NAND_I16 = 368,
+  ATOMIC_LOAD_NAND_I16_POSTRA = 369,
+  ATOMIC_LOAD_NAND_I32 = 370,
+  ATOMIC_LOAD_NAND_I32_POSTRA = 371,
+  ATOMIC_LOAD_NAND_I64 = 372,
+  ATOMIC_LOAD_NAND_I64_POSTRA = 373,
+  ATOMIC_LOAD_NAND_I8 = 374,
+  ATOMIC_LOAD_NAND_I8_POSTRA = 375,
+  ATOMIC_LOAD_OR_I16 = 376,
+  ATOMIC_LOAD_OR_I16_POSTRA = 377,
+  ATOMIC_LOAD_OR_I32 = 378,
+  ATOMIC_LOAD_OR_I32_POSTRA = 379,
+  ATOMIC_LOAD_OR_I64 = 380,
+  ATOMIC_LOAD_OR_I64_POSTRA = 381,
+  ATOMIC_LOAD_OR_I8 = 382,
+  ATOMIC_LOAD_OR_I8_POSTRA = 383,
+  ATOMIC_LOAD_SUB_I16 = 384,
+  ATOMIC_LOAD_SUB_I16_POSTRA = 385,
+  ATOMIC_LOAD_SUB_I32 = 386,
+  ATOMIC_LOAD_SUB_I32_POSTRA = 387,
+  ATOMIC_LOAD_SUB_I64 = 388,
+  ATOMIC_LOAD_SUB_I64_POSTRA = 389,
+  ATOMIC_LOAD_SUB_I8 = 390,
+  ATOMIC_LOAD_SUB_I8_POSTRA = 391,
+  ATOMIC_LOAD_UMAX_I16 = 392,
+  ATOMIC_LOAD_UMAX_I16_POSTRA = 393,
+  ATOMIC_LOAD_UMAX_I32 = 394,
+  ATOMIC_LOAD_UMAX_I32_POSTRA = 395,
+  ATOMIC_LOAD_UMAX_I64 = 396,
+  ATOMIC_LOAD_UMAX_I64_POSTRA = 397,
+  ATOMIC_LOAD_UMAX_I8 = 398,
+  ATOMIC_LOAD_UMAX_I8_POSTRA = 399,
+  ATOMIC_LOAD_UMIN_I16 = 400,
+  ATOMIC_LOAD_UMIN_I16_POSTRA = 401,
+  ATOMIC_LOAD_UMIN_I32 = 402,
+  ATOMIC_LOAD_UMIN_I32_POSTRA = 403,
+  ATOMIC_LOAD_UMIN_I64 = 404,
+  ATOMIC_LOAD_UMIN_I64_POSTRA = 405,
+  ATOMIC_LOAD_UMIN_I8 = 406,
+  ATOMIC_LOAD_UMIN_I8_POSTRA = 407,
+  ATOMIC_LOAD_XOR_I16 = 408,
+  ATOMIC_LOAD_XOR_I16_POSTRA = 409,
+  ATOMIC_LOAD_XOR_I32 = 410,
+  ATOMIC_LOAD_XOR_I32_POSTRA = 411,
+  ATOMIC_LOAD_XOR_I64 = 412,
+  ATOMIC_LOAD_XOR_I64_POSTRA = 413,
+  ATOMIC_LOAD_XOR_I8 = 414,
+  ATOMIC_LOAD_XOR_I8_POSTRA = 415,
+  ATOMIC_SWAP_I16 = 416,
+  ATOMIC_SWAP_I16_POSTRA = 417,
+  ATOMIC_SWAP_I32 = 418,
+  ATOMIC_SWAP_I32_POSTRA = 419,
+  ATOMIC_SWAP_I64 = 420,
+  ATOMIC_SWAP_I64_POSTRA = 421,
+  ATOMIC_SWAP_I8 = 422,
+  ATOMIC_SWAP_I8_POSTRA = 423,
+  B = 424,
+  BAL_BR = 425,
+  BAL_BR_MM = 426,
+  BEQLImmMacro = 427,
+  BGE = 428,
+  BGEImmMacro = 429,
+  BGEL = 430,
+  BGELImmMacro = 431,
+  BGEU = 432,
+  BGEUImmMacro = 433,
+  BGEUL = 434,
+  BGEULImmMacro = 435,
+  BGT = 436,
+  BGTImmMacro = 437,
+  BGTL = 438,
+  BGTLImmMacro = 439,
+  BGTU = 440,
+  BGTUImmMacro = 441,
+  BGTUL = 442,
+  BGTULImmMacro = 443,
+  BLE = 444,
+  BLEImmMacro = 445,
+  BLEL = 446,
+  BLELImmMacro = 447,
+  BLEU = 448,
+  BLEUImmMacro = 449,
+  BLEUL = 450,
+  BLEULImmMacro = 451,
+  BLT = 452,
+  BLTImmMacro = 453,
+  BLTL = 454,
+  BLTLImmMacro = 455,
+  BLTU = 456,
+  BLTUImmMacro = 457,
+  BLTUL = 458,
+  BLTULImmMacro = 459,
+  BNELImmMacro = 460,
+  BPOSGE32_PSEUDO = 461,
+  BSEL_D_PSEUDO = 462,
+  BSEL_FD_PSEUDO = 463,
+  BSEL_FW_PSEUDO = 464,
+  BSEL_H_PSEUDO = 465,
+  BSEL_W_PSEUDO = 466,
+  B_MM = 467,
+  B_MMR6_Pseudo = 468,
+  B_MM_Pseudo = 469,
+  BeqImm = 470,
+  BneImm = 471,
+  BteqzT8CmpX16 = 472,
+  BteqzT8CmpiX16 = 473,
+  BteqzT8SltX16 = 474,
+  BteqzT8SltiX16 = 475,
+  BteqzT8SltiuX16 = 476,
+  BteqzT8SltuX16 = 477,
+  BtnezT8CmpX16 = 478,
+  BtnezT8CmpiX16 = 479,
+  BtnezT8SltX16 = 480,
+  BtnezT8SltiX16 = 481,
+  BtnezT8SltiuX16 = 482,
+  BtnezT8SltuX16 = 483,
+  BuildPairF64 = 484,
+  BuildPairF64_64 = 485,
+  CFTC1 = 486,
+  CONSTPOOL_ENTRY = 487,
+  COPY_FD_PSEUDO = 488,
+  COPY_FW_PSEUDO = 489,
+  CTTC1 = 490,
+  Constant32 = 491,
+  DMULImmMacro = 492,
+  DMULMacro = 493,
+  DMULOMacro = 494,
+  DMULOUMacro = 495,
+  DROL = 496,
+  DROLImm = 497,
+  DROR = 498,
+  DRORImm = 499,
+  DSDivIMacro = 500,
+  DSDivMacro = 501,
+  DSRemIMacro = 502,
+  DSRemMacro = 503,
+  DUDivIMacro = 504,
+  DUDivMacro = 505,
+  DURemIMacro = 506,
+  DURemMacro = 507,
+  ERet = 508,
+  ExtractElementF64 = 509,
+  ExtractElementF64_64 = 510,
+  FABS_D = 511,
+  FABS_W = 512,
+  FEXP2_D_1_PSEUDO = 513,
+  FEXP2_W_1_PSEUDO = 514,
+  FILL_FD_PSEUDO = 515,
+  FILL_FW_PSEUDO = 516,
+  GotPrologue16 = 517,
+  INSERT_B_VIDX64_PSEUDO = 518,
+  INSERT_B_VIDX_PSEUDO = 519,
+  INSERT_D_VIDX64_PSEUDO = 520,
+  INSERT_D_VIDX_PSEUDO = 521,
+  INSERT_FD_PSEUDO = 522,
+  INSERT_FD_VIDX64_PSEUDO = 523,
+  INSERT_FD_VIDX_PSEUDO = 524,
+  INSERT_FW_PSEUDO = 525,
+  INSERT_FW_VIDX64_PSEUDO = 526,
+  INSERT_FW_VIDX_PSEUDO = 527,
+  INSERT_H_VIDX64_PSEUDO = 528,
+  INSERT_H_VIDX_PSEUDO = 529,
+  INSERT_W_VIDX64_PSEUDO = 530,
+  INSERT_W_VIDX_PSEUDO = 531,
+  JALR64Pseudo = 532,
+  JALRHB64Pseudo = 533,
+  JALRHBPseudo = 534,
+  JALRPseudo = 535,
+  JAL_MMR6 = 536,
+  JalOneReg = 537,
+  JalTwoReg = 538,
+  LDMacro = 539,
+  LDR_D = 540,
+  LDR_W = 541,
+  LD_F16 = 542,
+  LOAD_ACC128 = 543,
+  LOAD_ACC64 = 544,
+  LOAD_ACC64DSP = 545,
+  LOAD_CCOND_DSP = 546,
+  LONG_BRANCH_ADDiu = 547,
+  LONG_BRANCH_ADDiu2Op = 548,
+  LONG_BRANCH_DADDiu = 549,
+  LONG_BRANCH_DADDiu2Op = 550,
+  LONG_BRANCH_LUi = 551,
+  LONG_BRANCH_LUi2Op = 552,
+  LONG_BRANCH_LUi2Op_64 = 553,
+  LWM_MM = 554,
+  LoadAddrImm32 = 555,
+  LoadAddrImm64 = 556,
+  LoadAddrReg32 = 557,
+  LoadAddrReg64 = 558,
+  LoadImm32 = 559,
+  LoadImm64 = 560,
+  LoadImmDoubleFGR = 561,
+  LoadImmDoubleFGR_32 = 562,
+  LoadImmDoubleGPR = 563,
+  LoadImmSingleFGR = 564,
+  LoadImmSingleGPR = 565,
+  LwConstant32 = 566,
+  MFTACX = 567,
+  MFTC0 = 568,
+  MFTC1 = 569,
+  MFTDSP = 570,
+  MFTGPR = 571,
+  MFTHC1 = 572,
+  MFTHI = 573,
+  MFTLO = 574,
+  MIPSeh_return32 = 575,
+  MIPSeh_return64 = 576,
+  MSA_FP_EXTEND_D_PSEUDO = 577,
+  MSA_FP_EXTEND_W_PSEUDO = 578,
+  MSA_FP_ROUND_D_PSEUDO = 579,
+  MSA_FP_ROUND_W_PSEUDO = 580,
+  MTTACX = 581,
+  MTTC0 = 582,
+  MTTC1 = 583,
+  MTTDSP = 584,
+  MTTGPR = 585,
+  MTTHC1 = 586,
+  MTTHI = 587,
+  MTTLO = 588,
+  MULImmMacro = 589,
+  MULOMacro = 590,
+  MULOUMacro = 591,
+  MultRxRy16 = 592,
+  MultRxRyRz16 = 593,
+  MultuRxRy16 = 594,
+  MultuRxRyRz16 = 595,
+  NOP = 596,
+  NORImm = 597,
+  NORImm64 = 598,
+  NOR_V_D_PSEUDO = 599,
+  NOR_V_H_PSEUDO = 600,
+  NOR_V_W_PSEUDO = 601,
+  OR_V_D_PSEUDO = 602,
+  OR_V_H_PSEUDO = 603,
+  OR_V_W_PSEUDO = 604,
+  PseudoCMPU_EQ_QB = 605,
+  PseudoCMPU_LE_QB = 606,
+  PseudoCMPU_LT_QB = 607,
+  PseudoCMP_EQ_PH = 608,
+  PseudoCMP_LE_PH = 609,
+  PseudoCMP_LT_PH = 610,
+  PseudoCVT_D32_W = 611,
+  PseudoCVT_D64_L = 612,
+  PseudoCVT_D64_W = 613,
+  PseudoCVT_S_L = 614,
+  PseudoCVT_S_W = 615,
+  PseudoDMULT = 616,
+  PseudoDMULTu = 617,
+  PseudoDSDIV = 618,
+  PseudoDUDIV = 619,
+  PseudoD_SELECT_I = 620,
+  PseudoD_SELECT_I64 = 621,
+  PseudoIndirectBranch = 622,
+  PseudoIndirectBranch64 = 623,
+  PseudoIndirectBranch64R6 = 624,
+  PseudoIndirectBranchR6 = 625,
+  PseudoIndirectBranch_MM = 626,
+  PseudoIndirectBranch_MMR6 = 627,
+  PseudoIndirectHazardBranch = 628,
+  PseudoIndirectHazardBranch64 = 629,
+  PseudoIndrectHazardBranch64R6 = 630,
+  PseudoIndrectHazardBranchR6 = 631,
+  PseudoMADD = 632,
+  PseudoMADDU = 633,
+  PseudoMADDU_MM = 634,
+  PseudoMADD_MM = 635,
+  PseudoMFHI = 636,
+  PseudoMFHI64 = 637,
+  PseudoMFHI_MM = 638,
+  PseudoMFLO = 639,
+  PseudoMFLO64 = 640,
+  PseudoMFLO_MM = 641,
+  PseudoMSUB = 642,
+  PseudoMSUBU = 643,
+  PseudoMSUBU_MM = 644,
+  PseudoMSUB_MM = 645,
+  PseudoMTLOHI = 646,
+  PseudoMTLOHI64 = 647,
+  PseudoMTLOHI_DSP = 648,
+  PseudoMTLOHI_MM = 649,
+  PseudoMULT = 650,
+  PseudoMULT_MM = 651,
+  PseudoMULTu = 652,
+  PseudoMULTu_MM = 653,
+  PseudoPICK_PH = 654,
+  PseudoPICK_QB = 655,
+  PseudoReturn = 656,
+  PseudoReturn64 = 657,
+  PseudoSDIV = 658,
+  PseudoSELECTFP_F_D32 = 659,
+  PseudoSELECTFP_F_D64 = 660,
+  PseudoSELECTFP_F_I = 661,
+  PseudoSELECTFP_F_I64 = 662,
+  PseudoSELECTFP_F_S = 663,
+  PseudoSELECTFP_T_D32 = 664,
+  PseudoSELECTFP_T_D64 = 665,
+  PseudoSELECTFP_T_I = 666,
+  PseudoSELECTFP_T_I64 = 667,
+  PseudoSELECTFP_T_S = 668,
+  PseudoSELECT_D32 = 669,
+  PseudoSELECT_D64 = 670,
+  PseudoSELECT_I = 671,
+  PseudoSELECT_I64 = 672,
+  PseudoSELECT_S = 673,
+  PseudoTRUNC_W_D = 674,
+  PseudoTRUNC_W_D32 = 675,
+  PseudoTRUNC_W_S = 676,
+  PseudoUDIV = 677,
+  ROL = 678,
+  ROLImm = 679,
+  ROR = 680,
+  RORImm = 681,
+  RetRA = 682,
+  RetRA16 = 683,
+  SDC1_M1 = 684,
+  SDIV_MM_Pseudo = 685,
+  SDMacro = 686,
+  SDivIMacro = 687,
+  SDivMacro = 688,
+  SEQIMacro = 689,
+  SEQMacro = 690,
+  SGE = 691,
+  SGEImm = 692,
+  SGEImm64 = 693,
+  SGEU = 694,
+  SGEUImm = 695,
+  SGEUImm64 = 696,
+  SGTImm = 697,
+  SGTImm64 = 698,
+  SGTUImm = 699,
+  SGTUImm64 = 700,
+  SLE = 701,
+  SLEImm = 702,
+  SLEImm64 = 703,
+  SLEU = 704,
+  SLEUImm = 705,
+  SLEUImm64 = 706,
+  SLTImm64 = 707,
+  SLTUImm64 = 708,
+  SNEIMacro = 709,
+  SNEMacro = 710,
+  SNZ_B_PSEUDO = 711,
+  SNZ_D_PSEUDO = 712,
+  SNZ_H_PSEUDO = 713,
+  SNZ_V_PSEUDO = 714,
+  SNZ_W_PSEUDO = 715,
+  SRemIMacro = 716,
+  SRemMacro = 717,
+  STORE_ACC128 = 718,
+  STORE_ACC64 = 719,
+  STORE_ACC64DSP = 720,
+  STORE_CCOND_DSP = 721,
+  STR_D = 722,
+  STR_W = 723,
+  ST_F16 = 724,
+  SWM_MM = 725,
+  SZ_B_PSEUDO = 726,
+  SZ_D_PSEUDO = 727,
+  SZ_H_PSEUDO = 728,
+  SZ_V_PSEUDO = 729,
+  SZ_W_PSEUDO = 730,
+  SaaAddr = 731,
+  SaadAddr = 732,
+  SelBeqZ = 733,
+  SelBneZ = 734,
+  SelTBteqZCmp = 735,
+  SelTBteqZCmpi = 736,
+  SelTBteqZSlt = 737,
+  SelTBteqZSlti = 738,
+  SelTBteqZSltiu = 739,
+  SelTBteqZSltu = 740,
+  SelTBtneZCmp = 741,
+  SelTBtneZCmpi = 742,
+  SelTBtneZSlt = 743,
+  SelTBtneZSlti = 744,
+  SelTBtneZSltiu = 745,
+  SelTBtneZSltu = 746,
+  SltCCRxRy16 = 747,
+  SltiCCRxImmX16 = 748,
+  SltiuCCRxImmX16 = 749,
+  SltuCCRxRy16 = 750,
+  SltuRxRyRz16 = 751,
+  TAILCALL = 752,
+  TAILCALL64R6REG = 753,
+  TAILCALLHB64R6REG = 754,
+  TAILCALLHBR6REG = 755,
+  TAILCALLR6REG = 756,
+  TAILCALLREG = 757,
+  TAILCALLREG64 = 758,
+  TAILCALLREGHB = 759,
+  TAILCALLREGHB64 = 760,
+  TAILCALLREG_MM = 761,
+  TAILCALLREG_MMR6 = 762,
+  TAILCALL_MM = 763,
+  TAILCALL_MMR6 = 764,
+  TRAP = 765,
+  TRAP_MM = 766,
+  UDIV_MM_Pseudo = 767,
+  UDivIMacro = 768,
+  UDivMacro = 769,
+  URemIMacro = 770,
+  URemMacro = 771,
+  Ulh = 772,
+  Ulhu = 773,
+  Ulw = 774,
+  Ush = 775,
+  Usw = 776,
+  XOR_V_D_PSEUDO = 777,
+  XOR_V_H_PSEUDO = 778,
+  XOR_V_W_PSEUDO = 779,
+  ABSQ_S_PH = 780,
+  ABSQ_S_PH_MM = 781,
+  ABSQ_S_QB = 782,
+  ABSQ_S_QB_MMR2 = 783,
+  ABSQ_S_W = 784,
+  ABSQ_S_W_MM = 785,
+  ADD = 786,
+  ADDIUPC = 787,
+  ADDIUPC_MM = 788,
+  ADDIUPC_MMR6 = 789,
+  ADDIUR1SP_MM = 790,
+  ADDIUR2_MM = 791,
+  ADDIUS5_MM = 792,
+  ADDIUSP_MM = 793,
+  ADDIU_MMR6 = 794,
+  ADDQH_PH = 795,
+  ADDQH_PH_MMR2 = 796,
+  ADDQH_R_PH = 797,
+  ADDQH_R_PH_MMR2 = 798,
+  ADDQH_R_W = 799,
+  ADDQH_R_W_MMR2 = 800,
+  ADDQH_W = 801,
+  ADDQH_W_MMR2 = 802,
+  ADDQ_PH = 803,
+  ADDQ_PH_MM = 804,
+  ADDQ_S_PH = 805,
+  ADDQ_S_PH_MM = 806,
+  ADDQ_S_W = 807,
+  ADDQ_S_W_MM = 808,
+  ADDR_PS64 = 809,
+  ADDSC = 810,
+  ADDSC_MM = 811,
+  ADDS_A_B = 812,
+  ADDS_A_D = 813,
+  ADDS_A_H = 814,
+  ADDS_A_W = 815,
+  ADDS_S_B = 816,
+  ADDS_S_D = 817,
+  ADDS_S_H = 818,
+  ADDS_S_W = 819,
+  ADDS_U_B = 820,
+  ADDS_U_D = 821,
+  ADDS_U_H = 822,
+  ADDS_U_W = 823,
+  ADDU16_MM = 824,
+  ADDU16_MMR6 = 825,
+  ADDUH_QB = 826,
+  ADDUH_QB_MMR2 = 827,
+  ADDUH_R_QB = 828,
+  ADDUH_R_QB_MMR2 = 829,
+  ADDU_MMR6 = 830,
+  ADDU_PH = 831,
+  ADDU_PH_MMR2 = 832,
+  ADDU_QB = 833,
+  ADDU_QB_MM = 834,
+  ADDU_S_PH = 835,
+  ADDU_S_PH_MMR2 = 836,
+  ADDU_S_QB = 837,
+  ADDU_S_QB_MM = 838,
+  ADDVI_B = 839,
+  ADDVI_D = 840,
+  ADDVI_H = 841,
+  ADDVI_W = 842,
+  ADDV_B = 843,
+  ADDV_D = 844,
+  ADDV_H = 845,
+  ADDV_W = 846,
+  ADDWC = 847,
+  ADDWC_MM = 848,
+  ADD_A_B = 849,
+  ADD_A_D = 850,
+  ADD_A_H = 851,
+  ADD_A_W = 852,
+  ADD_MM = 853,
+  ADD_MMR6 = 854,
+  ADDi = 855,
+  ADDi_MM = 856,
+  ADDiu = 857,
+  ADDiu_MM = 858,
+  ADDu = 859,
+  ADDu_MM = 860,
+  ALIGN = 861,
+  ALIGN_MMR6 = 862,
+  ALUIPC = 863,
+  ALUIPC_MMR6 = 864,
+  AND = 865,
+  AND16_MM = 866,
+  AND16_MMR6 = 867,
+  AND64 = 868,
+  ANDI16_MM = 869,
+  ANDI16_MMR6 = 870,
+  ANDI_B = 871,
+  ANDI_MMR6 = 872,
+  AND_MM = 873,
+  AND_MMR6 = 874,
+  AND_V = 875,
+  ANDi = 876,
+  ANDi64 = 877,
+  ANDi_MM = 878,
+  APPEND = 879,
+  APPEND_MMR2 = 880,
+  ASUB_S_B = 881,
+  ASUB_S_D = 882,
+  ASUB_S_H = 883,
+  ASUB_S_W = 884,
+  ASUB_U_B = 885,
+  ASUB_U_D = 886,
+  ASUB_U_H = 887,
+  ASUB_U_W = 888,
+  AUI = 889,
+  AUIPC = 890,
+  AUIPC_MMR6 = 891,
+  AUI_MMR6 = 892,
+  AVER_S_B = 893,
+  AVER_S_D = 894,
+  AVER_S_H = 895,
+  AVER_S_W = 896,
+  AVER_U_B = 897,
+  AVER_U_D = 898,
+  AVER_U_H = 899,
+  AVER_U_W = 900,
+  AVE_S_B = 901,
+  AVE_S_D = 902,
+  AVE_S_H = 903,
+  AVE_S_W = 904,
+  AVE_U_B = 905,
+  AVE_U_D = 906,
+  AVE_U_H = 907,
+  AVE_U_W = 908,
+  AddiuRxImmX16 = 909,
+  AddiuRxPcImmX16 = 910,
+  AddiuRxRxImm16 = 911,
+  AddiuRxRxImmX16 = 912,
+  AddiuRxRyOffMemX16 = 913,
+  AddiuSpImm16 = 914,
+  AddiuSpImmX16 = 915,
+  AdduRxRyRz16 = 916,
+  AndRxRxRy16 = 917,
+  B16_MM = 918,
+  BADDu = 919,
+  BAL = 920,
+  BALC = 921,
+  BALC_MMR6 = 922,
+  BALIGN = 923,
+  BALIGN_MMR2 = 924,
+  BBIT0 = 925,
+  BBIT032 = 926,
+  BBIT1 = 927,
+  BBIT132 = 928,
+  BC = 929,
+  BC16_MMR6 = 930,
+  BC1EQZ = 931,
+  BC1EQZC_MMR6 = 932,
+  BC1F = 933,
+  BC1FL = 934,
+  BC1F_MM = 935,
+  BC1NEZ = 936,
+  BC1NEZC_MMR6 = 937,
+  BC1T = 938,
+  BC1TL = 939,
+  BC1T_MM = 940,
+  BC2EQZ = 941,
+  BC2EQZC_MMR6 = 942,
+  BC2NEZ = 943,
+  BC2NEZC_MMR6 = 944,
+  BCLRI_B = 945,
+  BCLRI_D = 946,
+  BCLRI_H = 947,
+  BCLRI_W = 948,
+  BCLR_B = 949,
+  BCLR_D = 950,
+  BCLR_H = 951,
+  BCLR_W = 952,
+  BC_MMR6 = 953,
+  BEQ = 954,
+  BEQ64 = 955,
+  BEQC = 956,
+  BEQC64 = 957,
+  BEQC_MMR6 = 958,
+  BEQL = 959,
+  BEQZ16_MM = 960,
+  BEQZALC = 961,
+  BEQZALC_MMR6 = 962,
+  BEQZC = 963,
+  BEQZC16_MMR6 = 964,
+  BEQZC64 = 965,
+  BEQZC_MM = 966,
+  BEQZC_MMR6 = 967,
+  BEQ_MM = 968,
+  BGEC = 969,
+  BGEC64 = 970,
+  BGEC_MMR6 = 971,
+  BGEUC = 972,
+  BGEUC64 = 973,
+  BGEUC_MMR6 = 974,
+  BGEZ = 975,
+  BGEZ64 = 976,
+  BGEZAL = 977,
+  BGEZALC = 978,
+  BGEZALC_MMR6 = 979,
+  BGEZALL = 980,
+  BGEZALS_MM = 981,
+  BGEZAL_MM = 982,
+  BGEZC = 983,
+  BGEZC64 = 984,
+  BGEZC_MMR6 = 985,
+  BGEZL = 986,
+  BGEZ_MM = 987,
+  BGTZ = 988,
+  BGTZ64 = 989,
+  BGTZALC = 990,
+  BGTZALC_MMR6 = 991,
+  BGTZC = 992,
+  BGTZC64 = 993,
+  BGTZC_MMR6 = 994,
+  BGTZL = 995,
+  BGTZ_MM = 996,
+  BINSLI_B = 997,
+  BINSLI_D = 998,
+  BINSLI_H = 999,
+  BINSLI_W = 1000,
+  BINSL_B = 1001,
+  BINSL_D = 1002,
+  BINSL_H = 1003,
+  BINSL_W = 1004,
+  BINSRI_B = 1005,
+  BINSRI_D = 1006,
+  BINSRI_H = 1007,
+  BINSRI_W = 1008,
+  BINSR_B = 1009,
+  BINSR_D = 1010,
+  BINSR_H = 1011,
+  BINSR_W = 1012,
+  BITREV = 1013,
+  BITREV_MM = 1014,
+  BITSWAP = 1015,
+  BITSWAP_MMR6 = 1016,
+  BLEZ = 1017,
+  BLEZ64 = 1018,
+  BLEZALC = 1019,
+  BLEZALC_MMR6 = 1020,
+  BLEZC = 1021,
+  BLEZC64 = 1022,
+  BLEZC_MMR6 = 1023,
+  BLEZL = 1024,
+  BLEZ_MM = 1025,
+  BLTC = 1026,
+  BLTC64 = 1027,
+  BLTC_MMR6 = 1028,
+  BLTUC = 1029,
+  BLTUC64 = 1030,
+  BLTUC_MMR6 = 1031,
+  BLTZ = 1032,
+  BLTZ64 = 1033,
+  BLTZAL = 1034,
+  BLTZALC = 1035,
+  BLTZALC_MMR6 = 1036,
+  BLTZALL = 1037,
+  BLTZALS_MM = 1038,
+  BLTZAL_MM = 1039,
+  BLTZC = 1040,
+  BLTZC64 = 1041,
+  BLTZC_MMR6 = 1042,
+  BLTZL = 1043,
+  BLTZ_MM = 1044,
+  BMNZI_B = 1045,
+  BMNZ_V = 1046,
+  BMZI_B = 1047,
+  BMZ_V = 1048,
+  BNE = 1049,
+  BNE64 = 1050,
+  BNEC = 1051,
+  BNEC64 = 1052,
+  BNEC_MMR6 = 1053,
+  BNEGI_B = 1054,
+  BNEGI_D = 1055,
+  BNEGI_H = 1056,
+  BNEGI_W = 1057,
+  BNEG_B = 1058,
+  BNEG_D = 1059,
+  BNEG_H = 1060,
+  BNEG_W = 1061,
+  BNEL = 1062,
+  BNEZ16_MM = 1063,
+  BNEZALC = 1064,
+  BNEZALC_MMR6 = 1065,
+  BNEZC = 1066,
+  BNEZC16_MMR6 = 1067,
+  BNEZC64 = 1068,
+  BNEZC_MM = 1069,
+  BNEZC_MMR6 = 1070,
+  BNE_MM = 1071,
+  BNVC = 1072,
+  BNVC_MMR6 = 1073,
+  BNZ_B = 1074,
+  BNZ_D = 1075,
+  BNZ_H = 1076,
+  BNZ_V = 1077,
+  BNZ_W = 1078,
+  BOVC = 1079,
+  BOVC_MMR6 = 1080,
+  BPOSGE32 = 1081,
+  BPOSGE32C_MMR3 = 1082,
+  BPOSGE32_MM = 1083,
+  BREAK = 1084,
+  BREAK16_MM = 1085,
+  BREAK16_MMR6 = 1086,
+  BREAK_MM = 1087,
+  BREAK_MMR6 = 1088,
+  BSELI_B = 1089,
+  BSEL_V = 1090,
+  BSETI_B = 1091,
+  BSETI_D = 1092,
+  BSETI_H = 1093,
+  BSETI_W = 1094,
+  BSET_B = 1095,
+  BSET_D = 1096,
+  BSET_H = 1097,
+  BSET_W = 1098,
+  BZ_B = 1099,
+  BZ_D = 1100,
+  BZ_H = 1101,
+  BZ_V = 1102,
+  BZ_W = 1103,
+  BeqzRxImm16 = 1104,
+  BeqzRxImmX16 = 1105,
+  Bimm16 = 1106,
+  BimmX16 = 1107,
+  BnezRxImm16 = 1108,
+  BnezRxImmX16 = 1109,
+  Break16 = 1110,
+  Bteqz16 = 1111,
+  BteqzX16 = 1112,
+  Btnez16 = 1113,
+  BtnezX16 = 1114,
+  CACHE = 1115,
+  CACHEE = 1116,
+  CACHEE_MM = 1117,
+  CACHE_MM = 1118,
+  CACHE_MMR6 = 1119,
+  CACHE_R6 = 1120,
+  CEIL_L_D64 = 1121,
+  CEIL_L_D_MMR6 = 1122,
+  CEIL_L_S = 1123,
+  CEIL_L_S_MMR6 = 1124,
+  CEIL_W_D32 = 1125,
+  CEIL_W_D64 = 1126,
+  CEIL_W_D_MMR6 = 1127,
+  CEIL_W_MM = 1128,
+  CEIL_W_S = 1129,
+  CEIL_W_S_MM = 1130,
+  CEIL_W_S_MMR6 = 1131,
+  CEQI_B = 1132,
+  CEQI_D = 1133,
+  CEQI_H = 1134,
+  CEQI_W = 1135,
+  CEQ_B = 1136,
+  CEQ_D = 1137,
+  CEQ_H = 1138,
+  CEQ_W = 1139,
+  CFC1 = 1140,
+  CFC1_MM = 1141,
+  CFC2_MM = 1142,
+  CFCMSA = 1143,
+  CINS = 1144,
+  CINS32 = 1145,
+  CINS64_32 = 1146,
+  CINS_i32 = 1147,
+  CLASS_D = 1148,
+  CLASS_D_MMR6 = 1149,
+  CLASS_S = 1150,
+  CLASS_S_MMR6 = 1151,
+  CLEI_S_B = 1152,
+  CLEI_S_D = 1153,
+  CLEI_S_H = 1154,
+  CLEI_S_W = 1155,
+  CLEI_U_B = 1156,
+  CLEI_U_D = 1157,
+  CLEI_U_H = 1158,
+  CLEI_U_W = 1159,
+  CLE_S_B = 1160,
+  CLE_S_D = 1161,
+  CLE_S_H = 1162,
+  CLE_S_W = 1163,
+  CLE_U_B = 1164,
+  CLE_U_D = 1165,
+  CLE_U_H = 1166,
+  CLE_U_W = 1167,
+  CLO = 1168,
+  CLO_MM = 1169,
+  CLO_MMR6 = 1170,
+  CLO_R6 = 1171,
+  CLTI_S_B = 1172,
+  CLTI_S_D = 1173,
+  CLTI_S_H = 1174,
+  CLTI_S_W = 1175,
+  CLTI_U_B = 1176,
+  CLTI_U_D = 1177,
+  CLTI_U_H = 1178,
+  CLTI_U_W = 1179,
+  CLT_S_B = 1180,
+  CLT_S_D = 1181,
+  CLT_S_H = 1182,
+  CLT_S_W = 1183,
+  CLT_U_B = 1184,
+  CLT_U_D = 1185,
+  CLT_U_H = 1186,
+  CLT_U_W = 1187,
+  CLZ = 1188,
+  CLZ_MM = 1189,
+  CLZ_MMR6 = 1190,
+  CLZ_R6 = 1191,
+  CMPGDU_EQ_QB = 1192,
+  CMPGDU_EQ_QB_MMR2 = 1193,
+  CMPGDU_LE_QB = 1194,
+  CMPGDU_LE_QB_MMR2 = 1195,
+  CMPGDU_LT_QB = 1196,
+  CMPGDU_LT_QB_MMR2 = 1197,
+  CMPGU_EQ_QB = 1198,
+  CMPGU_EQ_QB_MM = 1199,
+  CMPGU_LE_QB = 1200,
+  CMPGU_LE_QB_MM = 1201,
+  CMPGU_LT_QB = 1202,
+  CMPGU_LT_QB_MM = 1203,
+  CMPU_EQ_QB = 1204,
+  CMPU_EQ_QB_MM = 1205,
+  CMPU_LE_QB = 1206,
+  CMPU_LE_QB_MM = 1207,
+  CMPU_LT_QB = 1208,
+  CMPU_LT_QB_MM = 1209,
+  CMP_AF_D_MMR6 = 1210,
+  CMP_AF_S_MMR6 = 1211,
+  CMP_EQ_D = 1212,
+  CMP_EQ_D_MMR6 = 1213,
+  CMP_EQ_PH = 1214,
+  CMP_EQ_PH_MM = 1215,
+  CMP_EQ_S = 1216,
+  CMP_EQ_S_MMR6 = 1217,
+  CMP_F_D = 1218,
+  CMP_F_S = 1219,
+  CMP_LE_D = 1220,
+  CMP_LE_D_MMR6 = 1221,
+  CMP_LE_PH = 1222,
+  CMP_LE_PH_MM = 1223,
+  CMP_LE_S = 1224,
+  CMP_LE_S_MMR6 = 1225,
+  CMP_LT_D = 1226,
+  CMP_LT_D_MMR6 = 1227,
+  CMP_LT_PH = 1228,
+  CMP_LT_PH_MM = 1229,
+  CMP_LT_S = 1230,
+  CMP_LT_S_MMR6 = 1231,
+  CMP_SAF_D = 1232,
+  CMP_SAF_D_MMR6 = 1233,
+  CMP_SAF_S = 1234,
+  CMP_SAF_S_MMR6 = 1235,
+  CMP_SEQ_D = 1236,
+  CMP_SEQ_D_MMR6 = 1237,
+  CMP_SEQ_S = 1238,
+  CMP_SEQ_S_MMR6 = 1239,
+  CMP_SLE_D = 1240,
+  CMP_SLE_D_MMR6 = 1241,
+  CMP_SLE_S = 1242,
+  CMP_SLE_S_MMR6 = 1243,
+  CMP_SLT_D = 1244,
+  CMP_SLT_D_MMR6 = 1245,
+  CMP_SLT_S = 1246,
+  CMP_SLT_S_MMR6 = 1247,
+  CMP_SUEQ_D = 1248,
+  CMP_SUEQ_D_MMR6 = 1249,
+  CMP_SUEQ_S = 1250,
+  CMP_SUEQ_S_MMR6 = 1251,
+  CMP_SULE_D = 1252,
+  CMP_SULE_D_MMR6 = 1253,
+  CMP_SULE_S = 1254,
+  CMP_SULE_S_MMR6 = 1255,
+  CMP_SULT_D = 1256,
+  CMP_SULT_D_MMR6 = 1257,
+  CMP_SULT_S = 1258,
+  CMP_SULT_S_MMR6 = 1259,
+  CMP_SUN_D = 1260,
+  CMP_SUN_D_MMR6 = 1261,
+  CMP_SUN_S = 1262,
+  CMP_SUN_S_MMR6 = 1263,
+  CMP_UEQ_D = 1264,
+  CMP_UEQ_D_MMR6 = 1265,
+  CMP_UEQ_S = 1266,
+  CMP_UEQ_S_MMR6 = 1267,
+  CMP_ULE_D = 1268,
+  CMP_ULE_D_MMR6 = 1269,
+  CMP_ULE_S = 1270,
+  CMP_ULE_S_MMR6 = 1271,
+  CMP_ULT_D = 1272,
+  CMP_ULT_D_MMR6 = 1273,
+  CMP_ULT_S = 1274,
+  CMP_ULT_S_MMR6 = 1275,
+  CMP_UN_D = 1276,
+  CMP_UN_D_MMR6 = 1277,
+  CMP_UN_S = 1278,
+  CMP_UN_S_MMR6 = 1279,
+  COPY_S_B = 1280,
+  COPY_S_D = 1281,
+  COPY_S_H = 1282,
+  COPY_S_W = 1283,
+  COPY_U_B = 1284,
+  COPY_U_H = 1285,
+  COPY_U_W = 1286,
+  CRC32B = 1287,
+  CRC32CB = 1288,
+  CRC32CD = 1289,
+  CRC32CH = 1290,
+  CRC32CW = 1291,
+  CRC32D = 1292,
+  CRC32H = 1293,
+  CRC32W = 1294,
+  CTC1 = 1295,
+  CTC1_MM = 1296,
+  CTC2_MM = 1297,
+  CTCMSA = 1298,
+  CVT_D32_S = 1299,
+  CVT_D32_S_MM = 1300,
+  CVT_D32_W = 1301,
+  CVT_D32_W_MM = 1302,
+  CVT_D64_L = 1303,
+  CVT_D64_S = 1304,
+  CVT_D64_S_MM = 1305,
+  CVT_D64_W = 1306,
+  CVT_D64_W_MM = 1307,
+  CVT_D_L_MMR6 = 1308,
+  CVT_L_D64 = 1309,
+  CVT_L_D64_MM = 1310,
+  CVT_L_D_MMR6 = 1311,
+  CVT_L_S = 1312,
+  CVT_L_S_MM = 1313,
+  CVT_L_S_MMR6 = 1314,
+  CVT_PS_PW64 = 1315,
+  CVT_PS_S64 = 1316,
+  CVT_PW_PS64 = 1317,
+  CVT_S_D32 = 1318,
+  CVT_S_D32_MM = 1319,
+  CVT_S_D64 = 1320,
+  CVT_S_D64_MM = 1321,
+  CVT_S_L = 1322,
+  CVT_S_L_MMR6 = 1323,
+  CVT_S_PL64 = 1324,
+  CVT_S_PU64 = 1325,
+  CVT_S_W = 1326,
+  CVT_S_W_MM = 1327,
+  CVT_S_W_MMR6 = 1328,
+  CVT_W_D32 = 1329,
+  CVT_W_D32_MM = 1330,
+  CVT_W_D64 = 1331,
+  CVT_W_D64_MM = 1332,
+  CVT_W_S = 1333,
+  CVT_W_S_MM = 1334,
+  CVT_W_S_MMR6 = 1335,
+  C_EQ_D32 = 1336,
+  C_EQ_D32_MM = 1337,
+  C_EQ_D64 = 1338,
+  C_EQ_D64_MM = 1339,
+  C_EQ_S = 1340,
+  C_EQ_S_MM = 1341,
+  C_F_D32 = 1342,
+  C_F_D32_MM = 1343,
+  C_F_D64 = 1344,
+  C_F_D64_MM = 1345,
+  C_F_S = 1346,
+  C_F_S_MM = 1347,
+  C_LE_D32 = 1348,
+  C_LE_D32_MM = 1349,
+  C_LE_D64 = 1350,
+  C_LE_D64_MM = 1351,
+  C_LE_S = 1352,
+  C_LE_S_MM = 1353,
+  C_LT_D32 = 1354,
+  C_LT_D32_MM = 1355,
+  C_LT_D64 = 1356,
+  C_LT_D64_MM = 1357,
+  C_LT_S = 1358,
+  C_LT_S_MM = 1359,
+  C_NGE_D32 = 1360,
+  C_NGE_D32_MM = 1361,
+  C_NGE_D64 = 1362,
+  C_NGE_D64_MM = 1363,
+  C_NGE_S = 1364,
+  C_NGE_S_MM = 1365,
+  C_NGLE_D32 = 1366,
+  C_NGLE_D32_MM = 1367,
+  C_NGLE_D64 = 1368,
+  C_NGLE_D64_MM = 1369,
+  C_NGLE_S = 1370,
+  C_NGLE_S_MM = 1371,
+  C_NGL_D32 = 1372,
+  C_NGL_D32_MM = 1373,
+  C_NGL_D64 = 1374,
+  C_NGL_D64_MM = 1375,
+  C_NGL_S = 1376,
+  C_NGL_S_MM = 1377,
+  C_NGT_D32 = 1378,
+  C_NGT_D32_MM = 1379,
+  C_NGT_D64 = 1380,
+  C_NGT_D64_MM = 1381,
+  C_NGT_S = 1382,
+  C_NGT_S_MM = 1383,
+  C_OLE_D32 = 1384,
+  C_OLE_D32_MM = 1385,
+  C_OLE_D64 = 1386,
+  C_OLE_D64_MM = 1387,
+  C_OLE_S = 1388,
+  C_OLE_S_MM = 1389,
+  C_OLT_D32 = 1390,
+  C_OLT_D32_MM = 1391,
+  C_OLT_D64 = 1392,
+  C_OLT_D64_MM = 1393,
+  C_OLT_S = 1394,
+  C_OLT_S_MM = 1395,
+  C_SEQ_D32 = 1396,
+  C_SEQ_D32_MM = 1397,
+  C_SEQ_D64 = 1398,
+  C_SEQ_D64_MM = 1399,
+  C_SEQ_S = 1400,
+  C_SEQ_S_MM = 1401,
+  C_SF_D32 = 1402,
+  C_SF_D32_MM = 1403,
+  C_SF_D64 = 1404,
+  C_SF_D64_MM = 1405,
+  C_SF_S = 1406,
+  C_SF_S_MM = 1407,
+  C_UEQ_D32 = 1408,
+  C_UEQ_D32_MM = 1409,
+  C_UEQ_D64 = 1410,
+  C_UEQ_D64_MM = 1411,
+  C_UEQ_S = 1412,
+  C_UEQ_S_MM = 1413,
+  C_ULE_D32 = 1414,
+  C_ULE_D32_MM = 1415,
+  C_ULE_D64 = 1416,
+  C_ULE_D64_MM = 1417,
+  C_ULE_S = 1418,
+  C_ULE_S_MM = 1419,
+  C_ULT_D32 = 1420,
+  C_ULT_D32_MM = 1421,
+  C_ULT_D64 = 1422,
+  C_ULT_D64_MM = 1423,
+  C_ULT_S = 1424,
+  C_ULT_S_MM = 1425,
+  C_UN_D32 = 1426,
+  C_UN_D32_MM = 1427,
+  C_UN_D64 = 1428,
+  C_UN_D64_MM = 1429,
+  C_UN_S = 1430,
+  C_UN_S_MM = 1431,
+  CmpRxRy16 = 1432,
+  CmpiRxImm16 = 1433,
+  CmpiRxImmX16 = 1434,
+  DADD = 1435,
+  DADDi = 1436,
+  DADDiu = 1437,
+  DADDu = 1438,
+  DAHI = 1439,
+  DALIGN = 1440,
+  DATI = 1441,
+  DAUI = 1442,
+  DBITSWAP = 1443,
+  DCLO = 1444,
+  DCLO_R6 = 1445,
+  DCLZ = 1446,
+  DCLZ_R6 = 1447,
+  DDIV = 1448,
+  DDIVU = 1449,
+  DERET = 1450,
+  DERET_MM = 1451,
+  DERET_MMR6 = 1452,
+  DEXT = 1453,
+  DEXT64_32 = 1454,
+  DEXTM = 1455,
+  DEXTU = 1456,
+  DI = 1457,
+  DINS = 1458,
+  DINSM = 1459,
+  DINSU = 1460,
+  DIV = 1461,
+  DIVU = 1462,
+  DIVU_MMR6 = 1463,
+  DIV_MMR6 = 1464,
+  DIV_S_B = 1465,
+  DIV_S_D = 1466,
+  DIV_S_H = 1467,
+  DIV_S_W = 1468,
+  DIV_U_B = 1469,
+  DIV_U_D = 1470,
+  DIV_U_H = 1471,
+  DIV_U_W = 1472,
+  DI_MM = 1473,
+  DI_MMR6 = 1474,
+  DLSA = 1475,
+  DLSA_R6 = 1476,
+  DMFC0 = 1477,
+  DMFC1 = 1478,
+  DMFC2 = 1479,
+  DMFC2_OCTEON = 1480,
+  DMFGC0 = 1481,
+  DMOD = 1482,
+  DMODU = 1483,
+  DMT = 1484,
+  DMTC0 = 1485,
+  DMTC1 = 1486,
+  DMTC2 = 1487,
+  DMTC2_OCTEON = 1488,
+  DMTGC0 = 1489,
+  DMUH = 1490,
+  DMUHU = 1491,
+  DMUL = 1492,
+  DMULT = 1493,
+  DMULTu = 1494,
+  DMULU = 1495,
+  DMUL_R6 = 1496,
+  DOTP_S_D = 1497,
+  DOTP_S_H = 1498,
+  DOTP_S_W = 1499,
+  DOTP_U_D = 1500,
+  DOTP_U_H = 1501,
+  DOTP_U_W = 1502,
+  DPADD_S_D = 1503,
+  DPADD_S_H = 1504,
+  DPADD_S_W = 1505,
+  DPADD_U_D = 1506,
+  DPADD_U_H = 1507,
+  DPADD_U_W = 1508,
+  DPAQX_SA_W_PH = 1509,
+  DPAQX_SA_W_PH_MMR2 = 1510,
+  DPAQX_S_W_PH = 1511,
+  DPAQX_S_W_PH_MMR2 = 1512,
+  DPAQ_SA_L_W = 1513,
+  DPAQ_SA_L_W_MM = 1514,
+  DPAQ_S_W_PH = 1515,
+  DPAQ_S_W_PH_MM = 1516,
+  DPAU_H_QBL = 1517,
+  DPAU_H_QBL_MM = 1518,
+  DPAU_H_QBR = 1519,
+  DPAU_H_QBR_MM = 1520,
+  DPAX_W_PH = 1521,
+  DPAX_W_PH_MMR2 = 1522,
+  DPA_W_PH = 1523,
+  DPA_W_PH_MMR2 = 1524,
+  DPOP = 1525,
+  DPSQX_SA_W_PH = 1526,
+  DPSQX_SA_W_PH_MMR2 = 1527,
+  DPSQX_S_W_PH = 1528,
+  DPSQX_S_W_PH_MMR2 = 1529,
+  DPSQ_SA_L_W = 1530,
+  DPSQ_SA_L_W_MM = 1531,
+  DPSQ_S_W_PH = 1532,
+  DPSQ_S_W_PH_MM = 1533,
+  DPSUB_S_D = 1534,
+  DPSUB_S_H = 1535,
+  DPSUB_S_W = 1536,
+  DPSUB_U_D = 1537,
+  DPSUB_U_H = 1538,
+  DPSUB_U_W = 1539,
+  DPSU_H_QBL = 1540,
+  DPSU_H_QBL_MM = 1541,
+  DPSU_H_QBR = 1542,
+  DPSU_H_QBR_MM = 1543,
+  DPSX_W_PH = 1544,
+  DPSX_W_PH_MMR2 = 1545,
+  DPS_W_PH = 1546,
+  DPS_W_PH_MMR2 = 1547,
+  DROTR = 1548,
+  DROTR32 = 1549,
+  DROTRV = 1550,
+  DSBH = 1551,
+  DSDIV = 1552,
+  DSHD = 1553,
+  DSLL = 1554,
+  DSLL32 = 1555,
+  DSLL64_32 = 1556,
+  DSLLV = 1557,
+  DSRA = 1558,
+  DSRA32 = 1559,
+  DSRAV = 1560,
+  DSRL = 1561,
+  DSRL32 = 1562,
+  DSRLV = 1563,
+  DSUB = 1564,
+  DSUBu = 1565,
+  DUDIV = 1566,
+  DVP = 1567,
+  DVPE = 1568,
+  DVP_MMR6 = 1569,
+  DivRxRy16 = 1570,
+  DivuRxRy16 = 1571,
+  EHB = 1572,
+  EHB_MM = 1573,
+  EHB_MMR6 = 1574,
+  EI = 1575,
+  EI_MM = 1576,
+  EI_MMR6 = 1577,
+  EMT = 1578,
+  ERET = 1579,
+  ERETNC = 1580,
+  ERETNC_MMR6 = 1581,
+  ERET_MM = 1582,
+  ERET_MMR6 = 1583,
+  EVP = 1584,
+  EVPE = 1585,
+  EVP_MMR6 = 1586,
+  EXT = 1587,
+  EXTP = 1588,
+  EXTPDP = 1589,
+  EXTPDPV = 1590,
+  EXTPDPV_MM = 1591,
+  EXTPDP_MM = 1592,
+  EXTPV = 1593,
+  EXTPV_MM = 1594,
+  EXTP_MM = 1595,
+  EXTRV_RS_W = 1596,
+  EXTRV_RS_W_MM = 1597,
+  EXTRV_R_W = 1598,
+  EXTRV_R_W_MM = 1599,
+  EXTRV_S_H = 1600,
+  EXTRV_S_H_MM = 1601,
+  EXTRV_W = 1602,
+  EXTRV_W_MM = 1603,
+  EXTR_RS_W = 1604,
+  EXTR_RS_W_MM = 1605,
+  EXTR_R_W = 1606,
+  EXTR_R_W_MM = 1607,
+  EXTR_S_H = 1608,
+  EXTR_S_H_MM = 1609,
+  EXTR_W = 1610,
+  EXTR_W_MM = 1611,
+  EXTS = 1612,
+  EXTS32 = 1613,
+  EXT_MM = 1614,
+  EXT_MMR6 = 1615,
+  FABS_D32 = 1616,
+  FABS_D32_MM = 1617,
+  FABS_D64 = 1618,
+  FABS_D64_MM = 1619,
+  FABS_S = 1620,
+  FABS_S_MM = 1621,
+  FADD_D = 1622,
+  FADD_D32 = 1623,
+  FADD_D32_MM = 1624,
+  FADD_D64 = 1625,
+  FADD_D64_MM = 1626,
+  FADD_PS64 = 1627,
+  FADD_S = 1628,
+  FADD_S_MM = 1629,
+  FADD_S_MMR6 = 1630,
+  FADD_W = 1631,
+  FCAF_D = 1632,
+  FCAF_W = 1633,
+  FCEQ_D = 1634,
+  FCEQ_W = 1635,
+  FCLASS_D = 1636,
+  FCLASS_W = 1637,
+  FCLE_D = 1638,
+  FCLE_W = 1639,
+  FCLT_D = 1640,
+  FCLT_W = 1641,
+  FCMP_D32 = 1642,
+  FCMP_D32_MM = 1643,
+  FCMP_D64 = 1644,
+  FCMP_S32 = 1645,
+  FCMP_S32_MM = 1646,
+  FCNE_D = 1647,
+  FCNE_W = 1648,
+  FCOR_D = 1649,
+  FCOR_W = 1650,
+  FCUEQ_D = 1651,
+  FCUEQ_W = 1652,
+  FCULE_D = 1653,
+  FCULE_W = 1654,
+  FCULT_D = 1655,
+  FCULT_W = 1656,
+  FCUNE_D = 1657,
+  FCUNE_W = 1658,
+  FCUN_D = 1659,
+  FCUN_W = 1660,
+  FDIV_D = 1661,
+  FDIV_D32 = 1662,
+  FDIV_D32_MM = 1663,
+  FDIV_D64 = 1664,
+  FDIV_D64_MM = 1665,
+  FDIV_S = 1666,
+  FDIV_S_MM = 1667,
+  FDIV_S_MMR6 = 1668,
+  FDIV_W = 1669,
+  FEXDO_H = 1670,
+  FEXDO_W = 1671,
+  FEXP2_D = 1672,
+  FEXP2_W = 1673,
+  FEXUPL_D = 1674,
+  FEXUPL_W = 1675,
+  FEXUPR_D = 1676,
+  FEXUPR_W = 1677,
+  FFINT_S_D = 1678,
+  FFINT_S_W = 1679,
+  FFINT_U_D = 1680,
+  FFINT_U_W = 1681,
+  FFQL_D = 1682,
+  FFQL_W = 1683,
+  FFQR_D = 1684,
+  FFQR_W = 1685,
+  FILL_B = 1686,
+  FILL_D = 1687,
+  FILL_H = 1688,
+  FILL_W = 1689,
+  FLOG2_D = 1690,
+  FLOG2_W = 1691,
+  FLOOR_L_D64 = 1692,
+  FLOOR_L_D_MMR6 = 1693,
+  FLOOR_L_S = 1694,
+  FLOOR_L_S_MMR6 = 1695,
+  FLOOR_W_D32 = 1696,
+  FLOOR_W_D64 = 1697,
+  FLOOR_W_D_MMR6 = 1698,
+  FLOOR_W_MM = 1699,
+  FLOOR_W_S = 1700,
+  FLOOR_W_S_MM = 1701,
+  FLOOR_W_S_MMR6 = 1702,
+  FMADD_D = 1703,
+  FMADD_W = 1704,
+  FMAX_A_D = 1705,
+  FMAX_A_W = 1706,
+  FMAX_D = 1707,
+  FMAX_W = 1708,
+  FMIN_A_D = 1709,
+  FMIN_A_W = 1710,
+  FMIN_D = 1711,
+  FMIN_W = 1712,
+  FMOV_D32 = 1713,
+  FMOV_D32_MM = 1714,
+  FMOV_D64 = 1715,
+  FMOV_D64_MM = 1716,
+  FMOV_D_MMR6 = 1717,
+  FMOV_S = 1718,
+  FMOV_S_MM = 1719,
+  FMOV_S_MMR6 = 1720,
+  FMSUB_D = 1721,
+  FMSUB_W = 1722,
+  FMUL_D = 1723,
+  FMUL_D32 = 1724,
+  FMUL_D32_MM = 1725,
+  FMUL_D64 = 1726,
+  FMUL_D64_MM = 1727,
+  FMUL_PS64 = 1728,
+  FMUL_S = 1729,
+  FMUL_S_MM = 1730,
+  FMUL_S_MMR6 = 1731,
+  FMUL_W = 1732,
+  FNEG_D32 = 1733,
+  FNEG_D32_MM = 1734,
+  FNEG_D64 = 1735,
+  FNEG_D64_MM = 1736,
+  FNEG_S = 1737,
+  FNEG_S_MM = 1738,
+  FNEG_S_MMR6 = 1739,
+  FORK = 1740,
+  FRCP_D = 1741,
+  FRCP_W = 1742,
+  FRINT_D = 1743,
+  FRINT_W = 1744,
+  FRSQRT_D = 1745,
+  FRSQRT_W = 1746,
+  FSAF_D = 1747,
+  FSAF_W = 1748,
+  FSEQ_D = 1749,
+  FSEQ_W = 1750,
+  FSLE_D = 1751,
+  FSLE_W = 1752,
+  FSLT_D = 1753,
+  FSLT_W = 1754,
+  FSNE_D = 1755,
+  FSNE_W = 1756,
+  FSOR_D = 1757,
+  FSOR_W = 1758,
+  FSQRT_D = 1759,
+  FSQRT_D32 = 1760,
+  FSQRT_D32_MM = 1761,
+  FSQRT_D64 = 1762,
+  FSQRT_D64_MM = 1763,
+  FSQRT_S = 1764,
+  FSQRT_S_MM = 1765,
+  FSQRT_W = 1766,
+  FSUB_D = 1767,
+  FSUB_D32 = 1768,
+  FSUB_D32_MM = 1769,
+  FSUB_D64 = 1770,
+  FSUB_D64_MM = 1771,
+  FSUB_PS64 = 1772,
+  FSUB_S = 1773,
+  FSUB_S_MM = 1774,
+  FSUB_S_MMR6 = 1775,
+  FSUB_W = 1776,
+  FSUEQ_D = 1777,
+  FSUEQ_W = 1778,
+  FSULE_D = 1779,
+  FSULE_W = 1780,
+  FSULT_D = 1781,
+  FSULT_W = 1782,
+  FSUNE_D = 1783,
+  FSUNE_W = 1784,
+  FSUN_D = 1785,
+  FSUN_W = 1786,
+  FTINT_S_D = 1787,
+  FTINT_S_W = 1788,
+  FTINT_U_D = 1789,
+  FTINT_U_W = 1790,
+  FTQ_H = 1791,
+  FTQ_W = 1792,
+  FTRUNC_S_D = 1793,
+  FTRUNC_S_W = 1794,
+  FTRUNC_U_D = 1795,
+  FTRUNC_U_W = 1796,
+  GINVI = 1797,
+  GINVI_MMR6 = 1798,
+  GINVT = 1799,
+  GINVT_MMR6 = 1800,
+  HADD_S_D = 1801,
+  HADD_S_H = 1802,
+  HADD_S_W = 1803,
+  HADD_U_D = 1804,
+  HADD_U_H = 1805,
+  HADD_U_W = 1806,
+  HSUB_S_D = 1807,
+  HSUB_S_H = 1808,
+  HSUB_S_W = 1809,
+  HSUB_U_D = 1810,
+  HSUB_U_H = 1811,
+  HSUB_U_W = 1812,
+  HYPCALL = 1813,
+  HYPCALL_MM = 1814,
+  ILVEV_B = 1815,
+  ILVEV_D = 1816,
+  ILVEV_H = 1817,
+  ILVEV_W = 1818,
+  ILVL_B = 1819,
+  ILVL_D = 1820,
+  ILVL_H = 1821,
+  ILVL_W = 1822,
+  ILVOD_B = 1823,
+  ILVOD_D = 1824,
+  ILVOD_H = 1825,
+  ILVOD_W = 1826,
+  ILVR_B = 1827,
+  ILVR_D = 1828,
+  ILVR_H = 1829,
+  ILVR_W = 1830,
+  INS = 1831,
+  INSERT_B = 1832,
+  INSERT_D = 1833,
+  INSERT_H = 1834,
+  INSERT_W = 1835,
+  INSV = 1836,
+  INSVE_B = 1837,
+  INSVE_D = 1838,
+  INSVE_H = 1839,
+  INSVE_W = 1840,
+  INSV_MM = 1841,
+  INS_MM = 1842,
+  INS_MMR6 = 1843,
+  J = 1844,
+  JAL = 1845,
+  JALR = 1846,
+  JALR16_MM = 1847,
+  JALR64 = 1848,
+  JALRC16_MMR6 = 1849,
+  JALRC_HB_MMR6 = 1850,
+  JALRC_MMR6 = 1851,
+  JALRS16_MM = 1852,
+  JALRS_MM = 1853,
+  JALR_HB = 1854,
+  JALR_HB64 = 1855,
+  JALR_MM = 1856,
+  JALS_MM = 1857,
+  JALX = 1858,
+  JALX_MM = 1859,
+  JAL_MM = 1860,
+  JIALC = 1861,
+  JIALC64 = 1862,
+  JIALC_MMR6 = 1863,
+  JIC = 1864,
+  JIC64 = 1865,
+  JIC_MMR6 = 1866,
+  JR = 1867,
+  JR16_MM = 1868,
+  JR64 = 1869,
+  JRADDIUSP = 1870,
+  JRC16_MM = 1871,
+  JRC16_MMR6 = 1872,
+  JRCADDIUSP_MMR6 = 1873,
+  JR_HB = 1874,
+  JR_HB64 = 1875,
+  JR_HB64_R6 = 1876,
+  JR_HB_R6 = 1877,
+  JR_MM = 1878,
+  J_MM = 1879,
+  Jal16 = 1880,
+  JalB16 = 1881,
+  JrRa16 = 1882,
+  JrcRa16 = 1883,
+  JrcRx16 = 1884,
+  JumpLinkReg16 = 1885,
+  LB = 1886,
+  LB64 = 1887,
+  LBE = 1888,
+  LBE_MM = 1889,
+  LBU16_MM = 1890,
+  LBUX = 1891,
+  LBUX_MM = 1892,
+  LBU_MMR6 = 1893,
+  LB_MM = 1894,
+  LB_MMR6 = 1895,
+  LBu = 1896,
+  LBu64 = 1897,
+  LBuE = 1898,
+  LBuE_MM = 1899,
+  LBu_MM = 1900,
+  LD = 1901,
+  LDC1 = 1902,
+  LDC164 = 1903,
+  LDC1_D64_MMR6 = 1904,
+  LDC1_MM_D32 = 1905,
+  LDC1_MM_D64 = 1906,
+  LDC2 = 1907,
+  LDC2_MMR6 = 1908,
+  LDC2_R6 = 1909,
+  LDC3 = 1910,
+  LDI_B = 1911,
+  LDI_D = 1912,
+  LDI_H = 1913,
+  LDI_W = 1914,
+  LDL = 1915,
+  LDPC = 1916,
+  LDR = 1917,
+  LDXC1 = 1918,
+  LDXC164 = 1919,
+  LD_B = 1920,
+  LD_D = 1921,
+  LD_H = 1922,
+  LD_W = 1923,
+  LEA_ADDiu = 1924,
+  LEA_ADDiu64 = 1925,
+  LEA_ADDiu_MM = 1926,
+  LH = 1927,
+  LH64 = 1928,
+  LHE = 1929,
+  LHE_MM = 1930,
+  LHU16_MM = 1931,
+  LHX = 1932,
+  LHX_MM = 1933,
+  LH_MM = 1934,
+  LHu = 1935,
+  LHu64 = 1936,
+  LHuE = 1937,
+  LHuE_MM = 1938,
+  LHu_MM = 1939,
+  LI16_MM = 1940,
+  LI16_MMR6 = 1941,
+  LL = 1942,
+  LL64 = 1943,
+  LL64_R6 = 1944,
+  LLD = 1945,
+  LLD_R6 = 1946,
+  LLE = 1947,
+  LLE_MM = 1948,
+  LL_MM = 1949,
+  LL_MMR6 = 1950,
+  LL_R6 = 1951,
+  LSA = 1952,
+  LSA_MMR6 = 1953,
+  LSA_R6 = 1954,
+  LUI_MMR6 = 1955,
+  LUXC1 = 1956,
+  LUXC164 = 1957,
+  LUXC1_MM = 1958,
+  LUi = 1959,
+  LUi64 = 1960,
+  LUi_MM = 1961,
+  LW = 1962,
+  LW16_MM = 1963,
+  LW64 = 1964,
+  LWC1 = 1965,
+  LWC1_MM = 1966,
+  LWC2 = 1967,
+  LWC2_MMR6 = 1968,
+  LWC2_R6 = 1969,
+  LWC3 = 1970,
+  LWDSP = 1971,
+  LWDSP_MM = 1972,
+  LWE = 1973,
+  LWE_MM = 1974,
+  LWGP_MM = 1975,
+  LWL = 1976,
+  LWL64 = 1977,
+  LWLE = 1978,
+  LWLE_MM = 1979,
+  LWL_MM = 1980,
+  LWM16_MM = 1981,
+  LWM16_MMR6 = 1982,
+  LWM32_MM = 1983,
+  LWPC = 1984,
+  LWPC_MMR6 = 1985,
+  LWP_MM = 1986,
+  LWR = 1987,
+  LWR64 = 1988,
+  LWRE = 1989,
+  LWRE_MM = 1990,
+  LWR_MM = 1991,
+  LWSP_MM = 1992,
+  LWUPC = 1993,
+  LWU_MM = 1994,
+  LWX = 1995,
+  LWXC1 = 1996,
+  LWXC1_MM = 1997,
+  LWXS_MM = 1998,
+  LWX_MM = 1999,
+  LW_MM = 2000,
+  LW_MMR6 = 2001,
+  LWu = 2002,
+  LbRxRyOffMemX16 = 2003,
+  LbuRxRyOffMemX16 = 2004,
+  LhRxRyOffMemX16 = 2005,
+  LhuRxRyOffMemX16 = 2006,
+  LiRxImm16 = 2007,
+  LiRxImmAlignX16 = 2008,
+  LiRxImmX16 = 2009,
+  LwRxPcTcp16 = 2010,
+  LwRxPcTcpX16 = 2011,
+  LwRxRyOffMemX16 = 2012,
+  LwRxSpImmX16 = 2013,
+  MADD = 2014,
+  MADDF_D = 2015,
+  MADDF_D_MMR6 = 2016,
+  MADDF_S = 2017,
+  MADDF_S_MMR6 = 2018,
+  MADDR_Q_H = 2019,
+  MADDR_Q_W = 2020,
+  MADDU = 2021,
+  MADDU_DSP = 2022,
+  MADDU_DSP_MM = 2023,
+  MADDU_MM = 2024,
+  MADDV_B = 2025,
+  MADDV_D = 2026,
+  MADDV_H = 2027,
+  MADDV_W = 2028,
+  MADD_D32 = 2029,
+  MADD_D32_MM = 2030,
+  MADD_D64 = 2031,
+  MADD_DSP = 2032,
+  MADD_DSP_MM = 2033,
+  MADD_MM = 2034,
+  MADD_Q_H = 2035,
+  MADD_Q_W = 2036,
+  MADD_S = 2037,
+  MADD_S_MM = 2038,
+  MAQ_SA_W_PHL = 2039,
+  MAQ_SA_W_PHL_MM = 2040,
+  MAQ_SA_W_PHR = 2041,
+  MAQ_SA_W_PHR_MM = 2042,
+  MAQ_S_W_PHL = 2043,
+  MAQ_S_W_PHL_MM = 2044,
+  MAQ_S_W_PHR = 2045,
+  MAQ_S_W_PHR_MM = 2046,
+  MAXA_D = 2047,
+  MAXA_D_MMR6 = 2048,
+  MAXA_S = 2049,
+  MAXA_S_MMR6 = 2050,
+  MAXI_S_B = 2051,
+  MAXI_S_D = 2052,
+  MAXI_S_H = 2053,
+  MAXI_S_W = 2054,
+  MAXI_U_B = 2055,
+  MAXI_U_D = 2056,
+  MAXI_U_H = 2057,
+  MAXI_U_W = 2058,
+  MAX_A_B = 2059,
+  MAX_A_D = 2060,
+  MAX_A_H = 2061,
+  MAX_A_W = 2062,
+  MAX_D = 2063,
+  MAX_D_MMR6 = 2064,
+  MAX_S = 2065,
+  MAX_S_B = 2066,
+  MAX_S_D = 2067,
+  MAX_S_H = 2068,
+  MAX_S_MMR6 = 2069,
+  MAX_S_W = 2070,
+  MAX_U_B = 2071,
+  MAX_U_D = 2072,
+  MAX_U_H = 2073,
+  MAX_U_W = 2074,
+  MFC0 = 2075,
+  MFC0_MMR6 = 2076,
+  MFC1 = 2077,
+  MFC1_D64 = 2078,
+  MFC1_MM = 2079,
+  MFC1_MMR6 = 2080,
+  MFC2 = 2081,
+  MFC2_MMR6 = 2082,
+  MFGC0 = 2083,
+  MFGC0_MM = 2084,
+  MFHC0_MMR6 = 2085,
+  MFHC1_D32 = 2086,
+  MFHC1_D32_MM = 2087,
+  MFHC1_D64 = 2088,
+  MFHC1_D64_MM = 2089,
+  MFHC2_MMR6 = 2090,
+  MFHGC0 = 2091,
+  MFHGC0_MM = 2092,
+  MFHI = 2093,
+  MFHI16_MM = 2094,
+  MFHI64 = 2095,
+  MFHI_DSP = 2096,
+  MFHI_DSP_MM = 2097,
+  MFHI_MM = 2098,
+  MFLO = 2099,
+  MFLO16_MM = 2100,
+  MFLO64 = 2101,
+  MFLO_DSP = 2102,
+  MFLO_DSP_MM = 2103,
+  MFLO_MM = 2104,
+  MFTR = 2105,
+  MINA_D = 2106,
+  MINA_D_MMR6 = 2107,
+  MINA_S = 2108,
+  MINA_S_MMR6 = 2109,
+  MINI_S_B = 2110,
+  MINI_S_D = 2111,
+  MINI_S_H = 2112,
+  MINI_S_W = 2113,
+  MINI_U_B = 2114,
+  MINI_U_D = 2115,
+  MINI_U_H = 2116,
+  MINI_U_W = 2117,
+  MIN_A_B = 2118,
+  MIN_A_D = 2119,
+  MIN_A_H = 2120,
+  MIN_A_W = 2121,
+  MIN_D = 2122,
+  MIN_D_MMR6 = 2123,
+  MIN_S = 2124,
+  MIN_S_B = 2125,
+  MIN_S_D = 2126,
+  MIN_S_H = 2127,
+  MIN_S_MMR6 = 2128,
+  MIN_S_W = 2129,
+  MIN_U_B = 2130,
+  MIN_U_D = 2131,
+  MIN_U_H = 2132,
+  MIN_U_W = 2133,
+  MOD = 2134,
+  MODSUB = 2135,
+  MODSUB_MM = 2136,
+  MODU = 2137,
+  MODU_MMR6 = 2138,
+  MOD_MMR6 = 2139,
+  MOD_S_B = 2140,
+  MOD_S_D = 2141,
+  MOD_S_H = 2142,
+  MOD_S_W = 2143,
+  MOD_U_B = 2144,
+  MOD_U_D = 2145,
+  MOD_U_H = 2146,
+  MOD_U_W = 2147,
+  MOVE16_MM = 2148,
+  MOVE16_MMR6 = 2149,
+  MOVEP_MM = 2150,
+  MOVEP_MMR6 = 2151,
+  MOVE_V = 2152,
+  MOVF_D32 = 2153,
+  MOVF_D32_MM = 2154,
+  MOVF_D64 = 2155,
+  MOVF_I = 2156,
+  MOVF_I64 = 2157,
+  MOVF_I_MM = 2158,
+  MOVF_S = 2159,
+  MOVF_S_MM = 2160,
+  MOVN_I64_D64 = 2161,
+  MOVN_I64_I = 2162,
+  MOVN_I64_I64 = 2163,
+  MOVN_I64_S = 2164,
+  MOVN_I_D32 = 2165,
+  MOVN_I_D32_MM = 2166,
+  MOVN_I_D64 = 2167,
+  MOVN_I_I = 2168,
+  MOVN_I_I64 = 2169,
+  MOVN_I_MM = 2170,
+  MOVN_I_S = 2171,
+  MOVN_I_S_MM = 2172,
+  MOVT_D32 = 2173,
+  MOVT_D32_MM = 2174,
+  MOVT_D64 = 2175,
+  MOVT_I = 2176,
+  MOVT_I64 = 2177,
+  MOVT_I_MM = 2178,
+  MOVT_S = 2179,
+  MOVT_S_MM = 2180,
+  MOVZ_I64_D64 = 2181,
+  MOVZ_I64_I = 2182,
+  MOVZ_I64_I64 = 2183,
+  MOVZ_I64_S = 2184,
+  MOVZ_I_D32 = 2185,
+  MOVZ_I_D32_MM = 2186,
+  MOVZ_I_D64 = 2187,
+  MOVZ_I_I = 2188,
+  MOVZ_I_I64 = 2189,
+  MOVZ_I_MM = 2190,
+  MOVZ_I_S = 2191,
+  MOVZ_I_S_MM = 2192,
+  MSUB = 2193,
+  MSUBF_D = 2194,
+  MSUBF_D_MMR6 = 2195,
+  MSUBF_S = 2196,
+  MSUBF_S_MMR6 = 2197,
+  MSUBR_Q_H = 2198,
+  MSUBR_Q_W = 2199,
+  MSUBU = 2200,
+  MSUBU_DSP = 2201,
+  MSUBU_DSP_MM = 2202,
+  MSUBU_MM = 2203,
+  MSUBV_B = 2204,
+  MSUBV_D = 2205,
+  MSUBV_H = 2206,
+  MSUBV_W = 2207,
+  MSUB_D32 = 2208,
+  MSUB_D32_MM = 2209,
+  MSUB_D64 = 2210,
+  MSUB_DSP = 2211,
+  MSUB_DSP_MM = 2212,
+  MSUB_MM = 2213,
+  MSUB_Q_H = 2214,
+  MSUB_Q_W = 2215,
+  MSUB_S = 2216,
+  MSUB_S_MM = 2217,
+  MTC0 = 2218,
+  MTC0_MMR6 = 2219,
+  MTC1 = 2220,
+  MTC1_D64 = 2221,
+  MTC1_D64_MM = 2222,
+  MTC1_MM = 2223,
+  MTC1_MMR6 = 2224,
+  MTC2 = 2225,
+  MTC2_MMR6 = 2226,
+  MTGC0 = 2227,
+  MTGC0_MM = 2228,
+  MTHC0_MMR6 = 2229,
+  MTHC1_D32 = 2230,
+  MTHC1_D32_MM = 2231,
+  MTHC1_D64 = 2232,
+  MTHC1_D64_MM = 2233,
+  MTHC2_MMR6 = 2234,
+  MTHGC0 = 2235,
+  MTHGC0_MM = 2236,
+  MTHI = 2237,
+  MTHI64 = 2238,
+  MTHI_DSP = 2239,
+  MTHI_DSP_MM = 2240,
+  MTHI_MM = 2241,
+  MTHLIP = 2242,
+  MTHLIP_MM = 2243,
+  MTLO = 2244,
+  MTLO64 = 2245,
+  MTLO_DSP = 2246,
+  MTLO_DSP_MM = 2247,
+  MTLO_MM = 2248,
+  MTM0 = 2249,
+  MTM1 = 2250,
+  MTM2 = 2251,
+  MTP0 = 2252,
+  MTP1 = 2253,
+  MTP2 = 2254,
+  MTTR = 2255,
+  MUH = 2256,
+  MUHU = 2257,
+  MUHU_MMR6 = 2258,
+  MUH_MMR6 = 2259,
+  MUL = 2260,
+  MULEQ_S_W_PHL = 2261,
+  MULEQ_S_W_PHL_MM = 2262,
+  MULEQ_S_W_PHR = 2263,
+  MULEQ_S_W_PHR_MM = 2264,
+  MULEU_S_PH_QBL = 2265,
+  MULEU_S_PH_QBL_MM = 2266,
+  MULEU_S_PH_QBR = 2267,
+  MULEU_S_PH_QBR_MM = 2268,
+  MULQ_RS_PH = 2269,
+  MULQ_RS_PH_MM = 2270,
+  MULQ_RS_W = 2271,
+  MULQ_RS_W_MMR2 = 2272,
+  MULQ_S_PH = 2273,
+  MULQ_S_PH_MMR2 = 2274,
+  MULQ_S_W = 2275,
+  MULQ_S_W_MMR2 = 2276,
+  MULR_PS64 = 2277,
+  MULR_Q_H = 2278,
+  MULR_Q_W = 2279,
+  MULSAQ_S_W_PH = 2280,
+  MULSAQ_S_W_PH_MM = 2281,
+  MULSA_W_PH = 2282,
+  MULSA_W_PH_MMR2 = 2283,
+  MULT = 2284,
+  MULTU_DSP = 2285,
+  MULTU_DSP_MM = 2286,
+  MULT_DSP = 2287,
+  MULT_DSP_MM = 2288,
+  MULT_MM = 2289,
+  MULTu = 2290,
+  MULTu_MM = 2291,
+  MULU = 2292,
+  MULU_MMR6 = 2293,
+  MULV_B = 2294,
+  MULV_D = 2295,
+  MULV_H = 2296,
+  MULV_W = 2297,
+  MUL_MM = 2298,
+  MUL_MMR6 = 2299,
+  MUL_PH = 2300,
+  MUL_PH_MMR2 = 2301,
+  MUL_Q_H = 2302,
+  MUL_Q_W = 2303,
+  MUL_R6 = 2304,
+  MUL_S_PH = 2305,
+  MUL_S_PH_MMR2 = 2306,
+  Mfhi16 = 2307,
+  Mflo16 = 2308,
+  Move32R16 = 2309,
+  MoveR3216 = 2310,
+  NAL = 2311,
+  NLOC_B = 2312,
+  NLOC_D = 2313,
+  NLOC_H = 2314,
+  NLOC_W = 2315,
+  NLZC_B = 2316,
+  NLZC_D = 2317,
+  NLZC_H = 2318,
+  NLZC_W = 2319,
+  NMADD_D32 = 2320,
+  NMADD_D32_MM = 2321,
+  NMADD_D64 = 2322,
+  NMADD_S = 2323,
+  NMADD_S_MM = 2324,
+  NMSUB_D32 = 2325,
+  NMSUB_D32_MM = 2326,
+  NMSUB_D64 = 2327,
+  NMSUB_S = 2328,
+  NMSUB_S_MM = 2329,
+  NOR = 2330,
+  NOR64 = 2331,
+  NORI_B = 2332,
+  NOR_MM = 2333,
+  NOR_MMR6 = 2334,
+  NOR_V = 2335,
+  NOT16_MM = 2336,
+  NOT16_MMR6 = 2337,
+  NegRxRy16 = 2338,
+  NotRxRy16 = 2339,
+  OR = 2340,
+  OR16_MM = 2341,
+  OR16_MMR6 = 2342,
+  OR64 = 2343,
+  ORI_B = 2344,
+  ORI_MMR6 = 2345,
+  OR_MM = 2346,
+  OR_MMR6 = 2347,
+  OR_V = 2348,
+  ORi = 2349,
+  ORi64 = 2350,
+  ORi_MM = 2351,
+  OrRxRxRy16 = 2352,
+  PACKRL_PH = 2353,
+  PACKRL_PH_MM = 2354,
+  PAUSE = 2355,
+  PAUSE_MM = 2356,
+  PAUSE_MMR6 = 2357,
+  PCKEV_B = 2358,
+  PCKEV_D = 2359,
+  PCKEV_H = 2360,
+  PCKEV_W = 2361,
+  PCKOD_B = 2362,
+  PCKOD_D = 2363,
+  PCKOD_H = 2364,
+  PCKOD_W = 2365,
+  PCNT_B = 2366,
+  PCNT_D = 2367,
+  PCNT_H = 2368,
+  PCNT_W = 2369,
+  PICK_PH = 2370,
+  PICK_PH_MM = 2371,
+  PICK_QB = 2372,
+  PICK_QB_MM = 2373,
+  PLL_PS64 = 2374,
+  PLU_PS64 = 2375,
+  POP = 2376,
+  PRECEQU_PH_QBL = 2377,
+  PRECEQU_PH_QBLA = 2378,
+  PRECEQU_PH_QBLA_MM = 2379,
+  PRECEQU_PH_QBL_MM = 2380,
+  PRECEQU_PH_QBR = 2381,
+  PRECEQU_PH_QBRA = 2382,
+  PRECEQU_PH_QBRA_MM = 2383,
+  PRECEQU_PH_QBR_MM = 2384,
+  PRECEQ_W_PHL = 2385,
+  PRECEQ_W_PHL_MM = 2386,
+  PRECEQ_W_PHR = 2387,
+  PRECEQ_W_PHR_MM = 2388,
+  PRECEU_PH_QBL = 2389,
+  PRECEU_PH_QBLA = 2390,
+  PRECEU_PH_QBLA_MM = 2391,
+  PRECEU_PH_QBL_MM = 2392,
+  PRECEU_PH_QBR = 2393,
+  PRECEU_PH_QBRA = 2394,
+  PRECEU_PH_QBRA_MM = 2395,
+  PRECEU_PH_QBR_MM = 2396,
+  PRECRQU_S_QB_PH = 2397,
+  PRECRQU_S_QB_PH_MM = 2398,
+  PRECRQ_PH_W = 2399,
+  PRECRQ_PH_W_MM = 2400,
+  PRECRQ_QB_PH = 2401,
+  PRECRQ_QB_PH_MM = 2402,
+  PRECRQ_RS_PH_W = 2403,
+  PRECRQ_RS_PH_W_MM = 2404,
+  PRECR_QB_PH = 2405,
+  PRECR_QB_PH_MMR2 = 2406,
+  PRECR_SRA_PH_W = 2407,
+  PRECR_SRA_PH_W_MMR2 = 2408,
+  PRECR_SRA_R_PH_W = 2409,
+  PRECR_SRA_R_PH_W_MMR2 = 2410,
+  PREF = 2411,
+  PREFE = 2412,
+  PREFE_MM = 2413,
+  PREFX_MM = 2414,
+  PREF_MM = 2415,
+  PREF_MMR6 = 2416,
+  PREF_R6 = 2417,
+  PREPEND = 2418,
+  PREPEND_MMR2 = 2419,
+  PUL_PS64 = 2420,
+  PUU_PS64 = 2421,
+  RADDU_W_QB = 2422,
+  RADDU_W_QB_MM = 2423,
+  RDDSP = 2424,
+  RDDSP_MM = 2425,
+  RDHWR = 2426,
+  RDHWR64 = 2427,
+  RDHWR_MM = 2428,
+  RDHWR_MMR6 = 2429,
+  RDPGPR_MMR6 = 2430,
+  RECIP_D32 = 2431,
+  RECIP_D32_MM = 2432,
+  RECIP_D64 = 2433,
+  RECIP_D64_MM = 2434,
+  RECIP_S = 2435,
+  RECIP_S_MM = 2436,
+  REPLV_PH = 2437,
+  REPLV_PH_MM = 2438,
+  REPLV_QB = 2439,
+  REPLV_QB_MM = 2440,
+  REPL_PH = 2441,
+  REPL_PH_MM = 2442,
+  REPL_QB = 2443,
+  REPL_QB_MM = 2444,
+  RINT_D = 2445,
+  RINT_D_MMR6 = 2446,
+  RINT_S = 2447,
+  RINT_S_MMR6 = 2448,
+  ROTR = 2449,
+  ROTRV = 2450,
+  ROTRV_MM = 2451,
+  ROTR_MM = 2452,
+  ROUND_L_D64 = 2453,
+  ROUND_L_D_MMR6 = 2454,
+  ROUND_L_S = 2455,
+  ROUND_L_S_MMR6 = 2456,
+  ROUND_W_D32 = 2457,
+  ROUND_W_D64 = 2458,
+  ROUND_W_D_MMR6 = 2459,
+  ROUND_W_MM = 2460,
+  ROUND_W_S = 2461,
+  ROUND_W_S_MM = 2462,
+  ROUND_W_S_MMR6 = 2463,
+  RSQRT_D32 = 2464,
+  RSQRT_D32_MM = 2465,
+  RSQRT_D64 = 2466,
+  RSQRT_D64_MM = 2467,
+  RSQRT_S = 2468,
+  RSQRT_S_MM = 2469,
+  Restore16 = 2470,
+  RestoreX16 = 2471,
+  SAA = 2472,
+  SAAD = 2473,
+  SAT_S_B = 2474,
+  SAT_S_D = 2475,
+  SAT_S_H = 2476,
+  SAT_S_W = 2477,
+  SAT_U_B = 2478,
+  SAT_U_D = 2479,
+  SAT_U_H = 2480,
+  SAT_U_W = 2481,
+  SB = 2482,
+  SB16_MM = 2483,
+  SB16_MMR6 = 2484,
+  SB64 = 2485,
+  SBE = 2486,
+  SBE_MM = 2487,
+  SB_MM = 2488,
+  SB_MMR6 = 2489,
+  SC = 2490,
+  SC64 = 2491,
+  SC64_R6 = 2492,
+  SCD = 2493,
+  SCD_R6 = 2494,
+  SCE = 2495,
+  SCE_MM = 2496,
+  SC_MM = 2497,
+  SC_MMR6 = 2498,
+  SC_R6 = 2499,
+  SD = 2500,
+  SDBBP = 2501,
+  SDBBP16_MM = 2502,
+  SDBBP16_MMR6 = 2503,
+  SDBBP_MM = 2504,
+  SDBBP_MMR6 = 2505,
+  SDBBP_R6 = 2506,
+  SDC1 = 2507,
+  SDC164 = 2508,
+  SDC1_D64_MMR6 = 2509,
+  SDC1_MM_D32 = 2510,
+  SDC1_MM_D64 = 2511,
+  SDC2 = 2512,
+  SDC2_MMR6 = 2513,
+  SDC2_R6 = 2514,
+  SDC3 = 2515,
+  SDIV = 2516,
+  SDIV_MM = 2517,
+  SDL = 2518,
+  SDR = 2519,
+  SDXC1 = 2520,
+  SDXC164 = 2521,
+  SEB = 2522,
+  SEB64 = 2523,
+  SEB_MM = 2524,
+  SEH = 2525,
+  SEH64 = 2526,
+  SEH_MM = 2527,
+  SELEQZ = 2528,
+  SELEQZ64 = 2529,
+  SELEQZ_D = 2530,
+  SELEQZ_D_MMR6 = 2531,
+  SELEQZ_MMR6 = 2532,
+  SELEQZ_S = 2533,
+  SELEQZ_S_MMR6 = 2534,
+  SELNEZ = 2535,
+  SELNEZ64 = 2536,
+  SELNEZ_D = 2537,
+  SELNEZ_D_MMR6 = 2538,
+  SELNEZ_MMR6 = 2539,
+  SELNEZ_S = 2540,
+  SELNEZ_S_MMR6 = 2541,
+  SEL_D = 2542,
+  SEL_D_MMR6 = 2543,
+  SEL_S = 2544,
+  SEL_S_MMR6 = 2545,
+  SEQ = 2546,
+  SEQi = 2547,
+  SH = 2548,
+  SH16_MM = 2549,
+  SH16_MMR6 = 2550,
+  SH64 = 2551,
+  SHE = 2552,
+  SHE_MM = 2553,
+  SHF_B = 2554,
+  SHF_H = 2555,
+  SHF_W = 2556,
+  SHILO = 2557,
+  SHILOV = 2558,
+  SHILOV_MM = 2559,
+  SHILO_MM = 2560,
+  SHLLV_PH = 2561,
+  SHLLV_PH_MM = 2562,
+  SHLLV_QB = 2563,
+  SHLLV_QB_MM = 2564,
+  SHLLV_S_PH = 2565,
+  SHLLV_S_PH_MM = 2566,
+  SHLLV_S_W = 2567,
+  SHLLV_S_W_MM = 2568,
+  SHLL_PH = 2569,
+  SHLL_PH_MM = 2570,
+  SHLL_QB = 2571,
+  SHLL_QB_MM = 2572,
+  SHLL_S_PH = 2573,
+  SHLL_S_PH_MM = 2574,
+  SHLL_S_W = 2575,
+  SHLL_S_W_MM = 2576,
+  SHRAV_PH = 2577,
+  SHRAV_PH_MM = 2578,
+  SHRAV_QB = 2579,
+  SHRAV_QB_MMR2 = 2580,
+  SHRAV_R_PH = 2581,
+  SHRAV_R_PH_MM = 2582,
+  SHRAV_R_QB = 2583,
+  SHRAV_R_QB_MMR2 = 2584,
+  SHRAV_R_W = 2585,
+  SHRAV_R_W_MM = 2586,
+  SHRA_PH = 2587,
+  SHRA_PH_MM = 2588,
+  SHRA_QB = 2589,
+  SHRA_QB_MMR2 = 2590,
+  SHRA_R_PH = 2591,
+  SHRA_R_PH_MM = 2592,
+  SHRA_R_QB = 2593,
+  SHRA_R_QB_MMR2 = 2594,
+  SHRA_R_W = 2595,
+  SHRA_R_W_MM = 2596,
+  SHRLV_PH = 2597,
+  SHRLV_PH_MMR2 = 2598,
+  SHRLV_QB = 2599,
+  SHRLV_QB_MM = 2600,
+  SHRL_PH = 2601,
+  SHRL_PH_MMR2 = 2602,
+  SHRL_QB = 2603,
+  SHRL_QB_MM = 2604,
+  SH_MM = 2605,
+  SH_MMR6 = 2606,
+  SIGRIE = 2607,
+  SIGRIE_MMR6 = 2608,
+  SLDI_B = 2609,
+  SLDI_D = 2610,
+  SLDI_H = 2611,
+  SLDI_W = 2612,
+  SLD_B = 2613,
+  SLD_D = 2614,
+  SLD_H = 2615,
+  SLD_W = 2616,
+  SLL = 2617,
+  SLL16_MM = 2618,
+  SLL16_MMR6 = 2619,
+  SLL64_32 = 2620,
+  SLL64_64 = 2621,
+  SLLI_B = 2622,
+  SLLI_D = 2623,
+  SLLI_H = 2624,
+  SLLI_W = 2625,
+  SLLV = 2626,
+  SLLV_MM = 2627,
+  SLL_B = 2628,
+  SLL_D = 2629,
+  SLL_H = 2630,
+  SLL_MM = 2631,
+  SLL_MMR6 = 2632,
+  SLL_W = 2633,
+  SLT = 2634,
+  SLT64 = 2635,
+  SLT_MM = 2636,
+  SLTi = 2637,
+  SLTi64 = 2638,
+  SLTi_MM = 2639,
+  SLTiu = 2640,
+  SLTiu64 = 2641,
+  SLTiu_MM = 2642,
+  SLTu = 2643,
+  SLTu64 = 2644,
+  SLTu_MM = 2645,
+  SNE = 2646,
+  SNEi = 2647,
+  SPLATI_B = 2648,
+  SPLATI_D = 2649,
+  SPLATI_H = 2650,
+  SPLATI_W = 2651,
+  SPLAT_B = 2652,
+  SPLAT_D = 2653,
+  SPLAT_H = 2654,
+  SPLAT_W = 2655,
+  SRA = 2656,
+  SRAI_B = 2657,
+  SRAI_D = 2658,
+  SRAI_H = 2659,
+  SRAI_W = 2660,
+  SRARI_B = 2661,
+  SRARI_D = 2662,
+  SRARI_H = 2663,
+  SRARI_W = 2664,
+  SRAR_B = 2665,
+  SRAR_D = 2666,
+  SRAR_H = 2667,
+  SRAR_W = 2668,
+  SRAV = 2669,
+  SRAV_MM = 2670,
+  SRA_B = 2671,
+  SRA_D = 2672,
+  SRA_H = 2673,
+  SRA_MM = 2674,
+  SRA_W = 2675,
+  SRL = 2676,
+  SRL16_MM = 2677,
+  SRL16_MMR6 = 2678,
+  SRLI_B = 2679,
+  SRLI_D = 2680,
+  SRLI_H = 2681,
+  SRLI_W = 2682,
+  SRLRI_B = 2683,
+  SRLRI_D = 2684,
+  SRLRI_H = 2685,
+  SRLRI_W = 2686,
+  SRLR_B = 2687,
+  SRLR_D = 2688,
+  SRLR_H = 2689,
+  SRLR_W = 2690,
+  SRLV = 2691,
+  SRLV_MM = 2692,
+  SRL_B = 2693,
+  SRL_D = 2694,
+  SRL_H = 2695,
+  SRL_MM = 2696,
+  SRL_W = 2697,
+  SSNOP = 2698,
+  SSNOP_MM = 2699,
+  SSNOP_MMR6 = 2700,
+  ST_B = 2701,
+  ST_D = 2702,
+  ST_H = 2703,
+  ST_W = 2704,
+  SUB = 2705,
+  SUBQH_PH = 2706,
+  SUBQH_PH_MMR2 = 2707,
+  SUBQH_R_PH = 2708,
+  SUBQH_R_PH_MMR2 = 2709,
+  SUBQH_R_W = 2710,
+  SUBQH_R_W_MMR2 = 2711,
+  SUBQH_W = 2712,
+  SUBQH_W_MMR2 = 2713,
+  SUBQ_PH = 2714,
+  SUBQ_PH_MM = 2715,
+  SUBQ_S_PH = 2716,
+  SUBQ_S_PH_MM = 2717,
+  SUBQ_S_W = 2718,
+  SUBQ_S_W_MM = 2719,
+  SUBSUS_U_B = 2720,
+  SUBSUS_U_D = 2721,
+  SUBSUS_U_H = 2722,
+  SUBSUS_U_W = 2723,
+  SUBSUU_S_B = 2724,
+  SUBSUU_S_D = 2725,
+  SUBSUU_S_H = 2726,
+  SUBSUU_S_W = 2727,
+  SUBS_S_B = 2728,
+  SUBS_S_D = 2729,
+  SUBS_S_H = 2730,
+  SUBS_S_W = 2731,
+  SUBS_U_B = 2732,
+  SUBS_U_D = 2733,
+  SUBS_U_H = 2734,
+  SUBS_U_W = 2735,
+  SUBU16_MM = 2736,
+  SUBU16_MMR6 = 2737,
+  SUBUH_QB = 2738,
+  SUBUH_QB_MMR2 = 2739,
+  SUBUH_R_QB = 2740,
+  SUBUH_R_QB_MMR2 = 2741,
+  SUBU_MMR6 = 2742,
+  SUBU_PH = 2743,
+  SUBU_PH_MMR2 = 2744,
+  SUBU_QB = 2745,
+  SUBU_QB_MM = 2746,
+  SUBU_S_PH = 2747,
+  SUBU_S_PH_MMR2 = 2748,
+  SUBU_S_QB = 2749,
+  SUBU_S_QB_MM = 2750,
+  SUBVI_B = 2751,
+  SUBVI_D = 2752,
+  SUBVI_H = 2753,
+  SUBVI_W = 2754,
+  SUBV_B = 2755,
+  SUBV_D = 2756,
+  SUBV_H = 2757,
+  SUBV_W = 2758,
+  SUB_MM = 2759,
+  SUB_MMR6 = 2760,
+  SUBu = 2761,
+  SUBu_MM = 2762,
+  SUXC1 = 2763,
+  SUXC164 = 2764,
+  SUXC1_MM = 2765,
+  SW = 2766,
+  SW16_MM = 2767,
+  SW16_MMR6 = 2768,
+  SW64 = 2769,
+  SWC1 = 2770,
+  SWC1_MM = 2771,
+  SWC2 = 2772,
+  SWC2_MMR6 = 2773,
+  SWC2_R6 = 2774,
+  SWC3 = 2775,
+  SWDSP = 2776,
+  SWDSP_MM = 2777,
+  SWE = 2778,
+  SWE_MM = 2779,
+  SWL = 2780,
+  SWL64 = 2781,
+  SWLE = 2782,
+  SWLE_MM = 2783,
+  SWL_MM = 2784,
+  SWM16_MM = 2785,
+  SWM16_MMR6 = 2786,
+  SWM32_MM = 2787,
+  SWP_MM = 2788,
+  SWR = 2789,
+  SWR64 = 2790,
+  SWRE = 2791,
+  SWRE_MM = 2792,
+  SWR_MM = 2793,
+  SWSP_MM = 2794,
+  SWSP_MMR6 = 2795,
+  SWXC1 = 2796,
+  SWXC1_MM = 2797,
+  SW_MM = 2798,
+  SW_MMR6 = 2799,
+  SYNC = 2800,
+  SYNCI = 2801,
+  SYNCI_MM = 2802,
+  SYNCI_MMR6 = 2803,
+  SYNC_MM = 2804,
+  SYNC_MMR6 = 2805,
+  SYSCALL = 2806,
+  SYSCALL_MM = 2807,
+  Save16 = 2808,
+  SaveX16 = 2809,
+  SbRxRyOffMemX16 = 2810,
+  SebRx16 = 2811,
+  SehRx16 = 2812,
+  ShRxRyOffMemX16 = 2813,
+  SllX16 = 2814,
+  SllvRxRy16 = 2815,
+  SltRxRy16 = 2816,
+  SltiRxImm16 = 2817,
+  SltiRxImmX16 = 2818,
+  SltiuRxImm16 = 2819,
+  SltiuRxImmX16 = 2820,
+  SltuRxRy16 = 2821,
+  SraX16 = 2822,
+  SravRxRy16 = 2823,
+  SrlX16 = 2824,
+  SrlvRxRy16 = 2825,
+  SubuRxRyRz16 = 2826,
+  SwRxRyOffMemX16 = 2827,
+  SwRxSpImmX16 = 2828,
+  TEQ = 2829,
+  TEQI = 2830,
+  TEQI_MM = 2831,
+  TEQ_MM = 2832,
+  TGE = 2833,
+  TGEI = 2834,
+  TGEIU = 2835,
+  TGEIU_MM = 2836,
+  TGEI_MM = 2837,
+  TGEU = 2838,
+  TGEU_MM = 2839,
+  TGE_MM = 2840,
+  TLBGINV = 2841,
+  TLBGINVF = 2842,
+  TLBGINVF_MM = 2843,
+  TLBGINV_MM = 2844,
+  TLBGP = 2845,
+  TLBGP_MM = 2846,
+  TLBGR = 2847,
+  TLBGR_MM = 2848,
+  TLBGWI = 2849,
+  TLBGWI_MM = 2850,
+  TLBGWR = 2851,
+  TLBGWR_MM = 2852,
+  TLBINV = 2853,
+  TLBINVF = 2854,
+  TLBINVF_MMR6 = 2855,
+  TLBINV_MMR6 = 2856,
+  TLBP = 2857,
+  TLBP_MM = 2858,
+  TLBR = 2859,
+  TLBR_MM = 2860,
+  TLBWI = 2861,
+  TLBWI_MM = 2862,
+  TLBWR = 2863,
+  TLBWR_MM = 2864,
+  TLT = 2865,
+  TLTI = 2866,
+  TLTIU_MM = 2867,
+  TLTI_MM = 2868,
+  TLTU = 2869,
+  TLTU_MM = 2870,
+  TLT_MM = 2871,
+  TNE = 2872,
+  TNEI = 2873,
+  TNEI_MM = 2874,
+  TNE_MM = 2875,
+  TRUNC_L_D64 = 2876,
+  TRUNC_L_D_MMR6 = 2877,
+  TRUNC_L_S = 2878,
+  TRUNC_L_S_MMR6 = 2879,
+  TRUNC_W_D32 = 2880,
+  TRUNC_W_D64 = 2881,
+  TRUNC_W_D_MMR6 = 2882,
+  TRUNC_W_MM = 2883,
+  TRUNC_W_S = 2884,
+  TRUNC_W_S_MM = 2885,
+  TRUNC_W_S_MMR6 = 2886,
+  TTLTIU = 2887,
+  UDIV = 2888,
+  UDIV_MM = 2889,
+  V3MULU = 2890,
+  VMM0 = 2891,
+  VMULU = 2892,
+  VSHF_B = 2893,
+  VSHF_D = 2894,
+  VSHF_H = 2895,
+  VSHF_W = 2896,
+  WAIT = 2897,
+  WAIT_MM = 2898,
+  WAIT_MMR6 = 2899,
+  WRDSP = 2900,
+  WRDSP_MM = 2901,
+  WRPGPR_MMR6 = 2902,
+  WSBH = 2903,
+  WSBH_MM = 2904,
+  WSBH_MMR6 = 2905,
+  XOR = 2906,
+  XOR16_MM = 2907,
+  XOR16_MMR6 = 2908,
+  XOR64 = 2909,
+  XORI_B = 2910,
+  XORI_MMR6 = 2911,
+  XOR_MM = 2912,
+  XOR_MMR6 = 2913,
+  XOR_V = 2914,
+  XORi = 2915,
+  XORi64 = 2916,
+  XORi_MM = 2917,
+  XorRxRxRy16 = 2918,
+  YIELD = 2919,
+  INSTRUCTION_LIST_END = 2920,
 };
 }
 }
diff --git a/deps/LIEF/include/LIEF/asm/mips/operands.hpp b/deps/LIEF/include/LIEF/asm/mips/operands.hpp
new file mode 100644
index 00000000000..f4b16eab99b
--- /dev/null
+++ b/deps/LIEF/include/LIEF/asm/mips/operands.hpp
@@ -0,0 +1,22 @@
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
+ *
+ * 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.
+ */
+#ifndef LIEF_ASM_MIPS_OPERANDS_H
+#define LIEF_ASM_MIPS_OPERANDS_H
+#include <LIEF/asm/mips/operands/Register.hpp>
+#include <LIEF/asm/mips/operands/Immediate.hpp>
+#include <LIEF/asm/mips/operands/PCRelative.hpp>
+#include <LIEF/asm/mips/operands/Memory.hpp>
+#endif
diff --git a/deps/LIEF/include/LIEF/asm/mips/operands/Immediate.hpp b/deps/LIEF/include/LIEF/asm/mips/operands/Immediate.hpp
new file mode 100644
index 00000000000..780bc9e163a
--- /dev/null
+++ b/deps/LIEF/include/LIEF/asm/mips/operands/Immediate.hpp
@@ -0,0 +1,49 @@
+/* Copyright 2022 - 2026 R. Thomas
+ *
+ * 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.
+ */
+#ifndef LIEF_ASM_MIPS_OPERAND_IMM_H
+#define LIEF_ASM_MIPS_OPERAND_IMM_H
+#include "LIEF/asm/mips/Operand.hpp"
+
+namespace LIEF {
+namespace assembly {
+namespace mips {
+/// Namespace that wraps the different Mips operands
+namespace operands {
+
+
+/// This class represents an immediate operand (i.e. a constant)
+///
+/// For instance:
+///
+/// ```text
+/// addiu $4, $5, 8
+///               |
+///               +---> Immediate(8)
+/// ```
+class LIEF_API Immediate : public Operand {
+  public:
+  using Operand::Operand;
+
+  /// The constant value wrapped by this operand
+  int64_t value() const;
+
+  static bool classof(const Operand* op);
+  ~Immediate() override = default;
+};
+}
+}
+}
+}
+#endif
diff --git a/deps/LIEF/include/LIEF/asm/mips/operands/Memory.hpp b/deps/LIEF/include/LIEF/asm/mips/operands/Memory.hpp
new file mode 100644
index 00000000000..bf0d425f871
--- /dev/null
+++ b/deps/LIEF/include/LIEF/asm/mips/operands/Memory.hpp
@@ -0,0 +1,82 @@
+/* Copyright 2022 - 2026 R. Thomas
+ *
+ * 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.
+ */
+#ifndef LIEF_ASM_MIPS_OPERAND_MEMORY_H
+#define LIEF_ASM_MIPS_OPERAND_MEMORY_H
+#include "LIEF/asm/mips/Operand.hpp"
+#include "LIEF/asm/mips/registers.hpp"
+
+namespace LIEF {
+namespace assembly {
+namespace mips {
+namespace operands {
+
+/// This class represents a memory operand.
+///
+/// MIPS has two addressing forms:
+///
+/// ```text
+/// lw    $4, 8($5)            ldxc1  $f2, $4($7)
+///        |  | |                      |   |  |
+/// +------+  | +---+          +-------+   |  +-----+
+/// |         |     |          |           |        |
+/// v         v     v          v           v        v
+/// Reg      Disp  Base       Reg         Index    Base
+/// ```
+class LIEF_API Memory : public Operand {
+  public:
+  using Operand::Operand;
+
+  /// Wraps the memory offset as either an integer displacement or an index
+  /// register.
+  struct offset_t {
+    /// Enum type used to discriminate the anonymous union
+    enum class TYPE {
+      NONE = 0,
+      /// The *union* holds the REG attribute
+      REG,
+      /// The *union* holds the `displacement` attribute (`int64_t`)
+      DISP,
+    };
+
+    union {
+      /// Register offset (index register)
+      REG reg;
+
+      /// Integer offset
+      int64_t displacement = 0;
+    };
+    TYPE type = TYPE::NONE;
+  };
+
+  /// The base register.
+  ///
+  /// For `lw $4, 8($5)` it would return `$5`.
+  REG base() const;
+
+  /// The addressing offset.
+  ///
+  /// It can be either:
+  /// - A register (e.g. `ldxc1 $f2, $4($7)`)
+  /// - A displacement (e.g. `lw $4, 8($5)`)
+  offset_t offset() const;
+
+  static bool classof(const Operand* op);
+  ~Memory() override = default;
+};
+}
+}
+}
+}
+#endif
diff --git a/deps/LIEF/include/LIEF/asm/mips/operands/PCRelative.hpp b/deps/LIEF/include/LIEF/asm/mips/operands/PCRelative.hpp
new file mode 100644
index 00000000000..0120c4ece07
--- /dev/null
+++ b/deps/LIEF/include/LIEF/asm/mips/operands/PCRelative.hpp
@@ -0,0 +1,47 @@
+/* Copyright 2022 - 2026 R. Thomas
+ *
+ * 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.
+ */
+#ifndef LIEF_ASM_MIPS_OPERAND_PCREL_H
+#define LIEF_ASM_MIPS_OPERAND_PCREL_H
+#include "LIEF/asm/mips/Operand.hpp"
+
+namespace LIEF {
+namespace assembly {
+namespace mips {
+namespace operands {
+
+/// This class represents a PC-relative operand.
+///
+/// ```text
+/// bal 0x100
+///     |
+///     v
+///  PC Relative operand
+/// ```
+class LIEF_API PCRelative : public Operand {
+  public:
+  using Operand::Operand;
+
+  /// The effective value that is relative to the current `pc` register
+  int64_t value() const;
+
+  static bool classof(const Operand* op);
+
+  ~PCRelative() override = default;
+};
+}
+}
+}
+}
+#endif
diff --git a/deps/LIEF/include/LIEF/asm/mips/operands/Register.hpp b/deps/LIEF/include/LIEF/asm/mips/operands/Register.hpp
new file mode 100644
index 00000000000..4622bae888d
--- /dev/null
+++ b/deps/LIEF/include/LIEF/asm/mips/operands/Register.hpp
@@ -0,0 +1,51 @@
+/* Copyright 2022 - 2026 R. Thomas
+ *
+ * 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.
+ */
+#ifndef LIEF_ASM_MIPS_OPERAND_REG_H
+#define LIEF_ASM_MIPS_OPERAND_REG_H
+
+#include "LIEF/asm/mips/Operand.hpp"
+#include "LIEF/asm/mips/registers.hpp"
+
+namespace LIEF {
+namespace assembly {
+namespace mips {
+namespace operands {
+
+/// This class represents a register operand.
+///
+/// For instance:
+///
+/// ```text
+/// move $4, $5
+///       |   |
+///       |   +---------> Register($5)
+///       |
+///       +-------------> Register($4)
+/// ```
+class LIEF_API Register : public Operand {
+  public:
+  using Operand::Operand;
+
+  /// The effective REG wrapped by this operand
+  REG value() const;
+
+  static bool classof(const Operand* op);
+  ~Register() override = default;
+};
+}
+}
+}
+}
+#endif
diff --git a/deps/LIEF/include/LIEF/asm/mips/registers.hpp b/deps/LIEF/include/LIEF/asm/mips/registers.hpp
index ec6b4fc931e..a721969baeb 100644
--- a/deps/LIEF/include/LIEF/asm/mips/registers.hpp
+++ b/deps/LIEF/include/LIEF/asm/mips/registers.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/deps/LIEF/include/LIEF/asm/powerpc.hpp b/deps/LIEF/include/LIEF/asm/powerpc.hpp
index d404e1fa549..23339ef52e6 100644
--- a/deps/LIEF/include/LIEF/asm/powerpc.hpp
+++ b/deps/LIEF/include/LIEF/asm/powerpc.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -18,4 +18,5 @@
 #include <LIEF/asm/powerpc/Instruction.hpp>
 #include <LIEF/asm/powerpc/opcodes.hpp>
 #include <LIEF/asm/powerpc/registers.hpp>
+#include <LIEF/asm/powerpc/operands.hpp>
 #endif
diff --git a/deps/LIEF/include/LIEF/asm/powerpc/Instruction.hpp b/deps/LIEF/include/LIEF/asm/powerpc/Instruction.hpp
index d6758649de1..574c39d6db0 100644
--- a/deps/LIEF/include/LIEF/asm/powerpc/Instruction.hpp
+++ b/deps/LIEF/include/LIEF/asm/powerpc/Instruction.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -15,9 +15,11 @@
 #ifndef LIEF_ASM_POWERPC_INST_H
 #define LIEF_ASM_POWERPC_INST_H
 #include "LIEF/visibility.h"
+#include "LIEF/compiler_attributes.hpp"

 #include "LIEF/asm/Instruction.hpp"
 #include "LIEF/asm/powerpc/opcodes.hpp"
+#include "LIEF/asm/powerpc/Operand.hpp"

 namespace LIEF {
 namespace assembly {
@@ -29,9 +31,14 @@ class LIEF_API Instruction : public assembly::Instruction {
   public:
   using assembly::Instruction::Instruction;

+  using operands_it = iterator_range<Operand::Iterator>;
+
   /// The instruction opcode as defined in LLVM
   OPCODE opcode() const;

+  /// Iterator over the operands of the current instruction
+  operands_it operands() const LIEF_LIFETIMEBOUND;
+
   /// True if `inst` is an **effective** instance of powerpc::Instruction
   static bool classof(const assembly::Instruction* inst);

diff --git a/deps/LIEF/include/LIEF/asm/powerpc/Operand.hpp b/deps/LIEF/include/LIEF/asm/powerpc/Operand.hpp
new file mode 100644
index 00000000000..f80d231cdf2
--- /dev/null
+++ b/deps/LIEF/include/LIEF/asm/powerpc/Operand.hpp
@@ -0,0 +1,136 @@
+/* Copyright 2022 - 2026 R. Thomas
+ *
+ * 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.
+ */
+#ifndef LIEF_ASM_POWERPC_OPERAND_H
+#define LIEF_ASM_POWERPC_OPERAND_H
+#include "LIEF/visibility.h"
+#include "LIEF/iterators.hpp"
+#include "LIEF/compiler_attributes.hpp"
+
+#include <memory>
+#include <string>
+#include <cassert>
+
+#include <ostream>
+
+namespace LIEF {
+namespace assembly {
+namespace powerpc {
+
+namespace details {
+class Operand;
+class OperandIt;
+}
+
+/// This class represents an operand for a PowerPC instruction
+class LIEF_API Operand {
+  public:
+  /// **Forward** iterator that lazily disassembles powerpc Operand.
+  class Iterator final
+    : public iterator_facade_base<Iterator, std::forward_iterator_tag, Operand,
+                                  std::ptrdiff_t, const Operand*, const Operand&> {
+    public:
+    using implementation = details::OperandIt;
+    using iterator_facade_base::operator++;
+
+    LIEF_API Iterator();
+
+    LIEF_API Iterator(std::unique_ptr<details::OperandIt> impl);
+    LIEF_API Iterator(const Iterator&);
+    LIEF_API Iterator& operator=(const Iterator&);
+
+    LIEF_API Iterator(Iterator&&) noexcept;
+    LIEF_API Iterator& operator=(Iterator&&) noexcept;
+
+    LIEF_API ~Iterator();
+
+    // NOLINTNEXTLINE(bugprone-derived-method-shadowing-base-method)
+    LIEF_API Iterator& operator++() LIEF_LIFETIMEBOUND;
+
+    friend LIEF_API bool operator==(const Iterator& LHS, const Iterator& RHS);
+
+    friend bool operator!=(const Iterator& LHS, const Iterator& RHS) {
+      return !(LHS == RHS);
+    }
+
+    LIEF_API const Operand& operator*() const LIEF_LIFETIMEBOUND;
+
+    // NOLINTNEXTLINE(bugprone-derived-method-shadowing-base-method)
+    LIEF_API const Operand* operator->() const LIEF_LIFETIMEBOUND;
+
+    /// Transfer ownership of the operand at the current position to the
+    /// caller. Returns `nullptr` if the iterator is past-the-end.
+    LIEF_API std::unique_ptr<Operand> yield();
+
+    private:
+    void load() const;
+
+    std::unique_ptr<details::OperandIt> impl_;
+    mutable std::unique_ptr<Operand> cached_;
+  };
+
+  /// Pretty representation of the operand
+  std::string to_string() const;
+
+  /// This function can be used to **down cast** an Operand instance:
+  ///
+  /// ```cpp
+  /// std::unique_ptr<assembly::powerpc::Operand> op = ...;
+  /// if (const auto* imm = inst->as<assembly::powerpc::operands::Immediate>()) {
+  ///   const int64_t value = imm->value();
+  /// }
+  /// ```
+  template<class T>
+  const T* as() const LIEF_LIFETIMEBOUND {
+    static_assert(std::is_base_of<Operand, T>::value,
+                  "Require Operand inheritance");
+    if (T::classof(this)) {
+      return static_cast<const T*>(this);
+    }
+    return nullptr;
+  }
+
+  virtual ~Operand();
+
+  /// @private
+  static LIEF_LOCAL std::unique_ptr<Operand>
+      create(std::unique_ptr<details::Operand> impl);
+
+  /// @private
+  LIEF_LOCAL const details::Operand& impl() const LIEF_LIFETIMEBOUND {
+    assert(impl_ != nullptr);
+    return *impl_;
+  }
+
+  /// @private
+  LIEF_LOCAL details::Operand& impl() LIEF_LIFETIMEBOUND {
+    assert(impl_ != nullptr);
+    return *impl_;
+  }
+
+  friend LIEF_API std::ostream& operator<<(std::ostream& os, const Operand& op) {
+    os << op.to_string();
+    return os;
+  }
+
+  protected:
+  LIEF_LOCAL Operand(std::unique_ptr<details::Operand> impl);
+  std::unique_ptr<details::Operand> impl_;
+};
+
+}
+}
+}
+
+#endif
diff --git a/deps/LIEF/include/LIEF/asm/powerpc/opcodes.hpp b/deps/LIEF/include/LIEF/asm/powerpc/opcodes.hpp
index e0b6d5dff13..ff2e43ded6b 100644
--- a/deps/LIEF/include/LIEF/asm/powerpc/opcodes.hpp
+++ b/deps/LIEF/include/LIEF/asm/powerpc/opcodes.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -15,7 +15,7 @@
 #ifndef LIEF_ASM_POWERPC_OPCODE_H
 #define LIEF_ASM_POWERPC_OPCODE_H

-/* Generated from LLVM: 21.1.0 */
+/* Generated from LLVM: 22.1.8 */

 namespace LIEF {
 namespace assembly {
@@ -42,2909 +42,2982 @@ enum class OPCODE {
   DBG_LABEL = 18,
   REG_SEQUENCE = 19,
   COPY = 20,
-  BUNDLE = 21,
-  LIFETIME_START = 22,
-  LIFETIME_END = 23,
-  PSEUDO_PROBE = 24,
-  ARITH_FENCE = 25,
-  STACKMAP = 26,
-  FENTRY_CALL = 27,
-  PATCHPOINT = 28,
-  LOAD_STACK_GUARD = 29,
-  PREALLOCATED_SETUP = 30,
-  PREALLOCATED_ARG = 31,
-  STATEPOINT = 32,
-  LOCAL_ESCAPE = 33,
-  FAULTING_OP = 34,
-  PATCHABLE_OP = 35,
-  PATCHABLE_FUNCTION_ENTER = 36,
-  PATCHABLE_RET = 37,
-  PATCHABLE_FUNCTION_EXIT = 38,
-  PATCHABLE_TAIL_CALL = 39,
-  PATCHABLE_EVENT_CALL = 40,
-  PATCHABLE_TYPED_EVENT_CALL = 41,
-  ICALL_BRANCH_FUNNEL = 42,
-  FAKE_USE = 43,
-  MEMBARRIER = 44,
-  JUMP_TABLE_DEBUG_INFO = 45,
-  CONVERGENCECTRL_ENTRY = 46,
-  CONVERGENCECTRL_ANCHOR = 47,
-  CONVERGENCECTRL_LOOP = 48,
-  CONVERGENCECTRL_GLUE = 49,
-  G_ASSERT_SEXT = 50,
-  G_ASSERT_ZEXT = 51,
-  G_ASSERT_ALIGN = 52,
-  G_ADD = 53,
-  G_SUB = 54,
-  G_MUL = 55,
-  G_SDIV = 56,
-  G_UDIV = 57,
-  G_SREM = 58,
-  G_UREM = 59,
-  G_SDIVREM = 60,
-  G_UDIVREM = 61,
-  G_AND = 62,
-  G_OR = 63,
-  G_XOR = 64,
-  G_ABDS = 65,
-  G_ABDU = 66,
-  G_IMPLICIT_DEF = 67,
-  G_PHI = 68,
-  G_FRAME_INDEX = 69,
-  G_GLOBAL_VALUE = 70,
-  G_PTRAUTH_GLOBAL_VALUE = 71,
-  G_CONSTANT_POOL = 72,
-  G_EXTRACT = 73,
-  G_UNMERGE_VALUES = 74,
-  G_INSERT = 75,
-  G_MERGE_VALUES = 76,
-  G_BUILD_VECTOR = 77,
-  G_BUILD_VECTOR_TRUNC = 78,
-  G_CONCAT_VECTORS = 79,
-  G_PTRTOINT = 80,
-  G_INTTOPTR = 81,
-  G_BITCAST = 82,
-  G_FREEZE = 83,
-  G_CONSTANT_FOLD_BARRIER = 84,
-  G_INTRINSIC_FPTRUNC_ROUND = 85,
-  G_INTRINSIC_TRUNC = 86,
-  G_INTRINSIC_ROUND = 87,
-  G_INTRINSIC_LRINT = 88,
-  G_INTRINSIC_LLRINT = 89,
-  G_INTRINSIC_ROUNDEVEN = 90,
-  G_READCYCLECOUNTER = 91,
-  G_READSTEADYCOUNTER = 92,
-  G_LOAD = 93,
-  G_SEXTLOAD = 94,
-  G_ZEXTLOAD = 95,
-  G_INDEXED_LOAD = 96,
-  G_INDEXED_SEXTLOAD = 97,
-  G_INDEXED_ZEXTLOAD = 98,
-  G_STORE = 99,
-  G_INDEXED_STORE = 100,
-  G_ATOMIC_CMPXCHG_WITH_SUCCESS = 101,
-  G_ATOMIC_CMPXCHG = 102,
-  G_ATOMICRMW_XCHG = 103,
-  G_ATOMICRMW_ADD = 104,
-  G_ATOMICRMW_SUB = 105,
-  G_ATOMICRMW_AND = 106,
-  G_ATOMICRMW_NAND = 107,
-  G_ATOMICRMW_OR = 108,
-  G_ATOMICRMW_XOR = 109,
-  G_ATOMICRMW_MAX = 110,
-  G_ATOMICRMW_MIN = 111,
-  G_ATOMICRMW_UMAX = 112,
-  G_ATOMICRMW_UMIN = 113,
-  G_ATOMICRMW_FADD = 114,
-  G_ATOMICRMW_FSUB = 115,
-  G_ATOMICRMW_FMAX = 116,
-  G_ATOMICRMW_FMIN = 117,
-  G_ATOMICRMW_FMAXIMUM = 118,
-  G_ATOMICRMW_FMINIMUM = 119,
-  G_ATOMICRMW_UINC_WRAP = 120,
-  G_ATOMICRMW_UDEC_WRAP = 121,
-  G_ATOMICRMW_USUB_COND = 122,
-  G_ATOMICRMW_USUB_SAT = 123,
-  G_FENCE = 124,
-  G_PREFETCH = 125,
-  G_BRCOND = 126,
-  G_BRINDIRECT = 127,
-  G_INVOKE_REGION_START = 128,
-  G_INTRINSIC = 129,
-  G_INTRINSIC_W_SIDE_EFFECTS = 130,
-  G_INTRINSIC_CONVERGENT = 131,
-  G_INTRINSIC_CONVERGENT_W_SIDE_EFFECTS = 132,
-  G_ANYEXT = 133,
-  G_TRUNC = 134,
-  G_TRUNC_SSAT_S = 135,
-  G_TRUNC_SSAT_U = 136,
-  G_TRUNC_USAT_U = 137,
-  G_CONSTANT = 138,
-  G_FCONSTANT = 139,
-  G_VASTART = 140,
-  G_VAARG = 141,
-  G_SEXT = 142,
-  G_SEXT_INREG = 143,
-  G_ZEXT = 144,
-  G_SHL = 145,
-  G_LSHR = 146,
-  G_ASHR = 147,
-  G_FSHL = 148,
-  G_FSHR = 149,
-  G_ROTR = 150,
-  G_ROTL = 151,
-  G_ICMP = 152,
-  G_FCMP = 153,
-  G_SCMP = 154,
-  G_UCMP = 155,
-  G_SELECT = 156,
-  G_UADDO = 157,
-  G_UADDE = 158,
-  G_USUBO = 159,
-  G_USUBE = 160,
-  G_SADDO = 161,
-  G_SADDE = 162,
-  G_SSUBO = 163,
-  G_SSUBE = 164,
-  G_UMULO = 165,
-  G_SMULO = 166,
-  G_UMULH = 167,
-  G_SMULH = 168,
-  G_UADDSAT = 169,
-  G_SADDSAT = 170,
-  G_USUBSAT = 171,
-  G_SSUBSAT = 172,
-  G_USHLSAT = 173,
-  G_SSHLSAT = 174,
-  G_SMULFIX = 175,
-  G_UMULFIX = 176,
-  G_SMULFIXSAT = 177,
-  G_UMULFIXSAT = 178,
-  G_SDIVFIX = 179,
-  G_UDIVFIX = 180,
-  G_SDIVFIXSAT = 181,
-  G_UDIVFIXSAT = 182,
-  G_FADD = 183,
-  G_FSUB = 184,
-  G_FMUL = 185,
-  G_FMA = 186,
-  G_FMAD = 187,
-  G_FDIV = 188,
-  G_FREM = 189,
-  G_FPOW = 190,
-  G_FPOWI = 191,
-  G_FEXP = 192,
-  G_FEXP2 = 193,
-  G_FEXP10 = 194,
-  G_FLOG = 195,
-  G_FLOG2 = 196,
-  G_FLOG10 = 197,
-  G_FLDEXP = 198,
-  G_FFREXP = 199,
-  G_FNEG = 200,
-  G_FPEXT = 201,
-  G_FPTRUNC = 202,
-  G_FPTOSI = 203,
-  G_FPTOUI = 204,
-  G_SITOFP = 205,
-  G_UITOFP = 206,
-  G_FPTOSI_SAT = 207,
-  G_FPTOUI_SAT = 208,
-  G_FABS = 209,
-  G_FCOPYSIGN = 210,
-  G_IS_FPCLASS = 211,
-  G_FCANONICALIZE = 212,
-  G_FMINNUM = 213,
-  G_FMAXNUM = 214,
-  G_FMINNUM_IEEE = 215,
-  G_FMAXNUM_IEEE = 216,
-  G_FMINIMUM = 217,
-  G_FMAXIMUM = 218,
-  G_FMINIMUMNUM = 219,
-  G_FMAXIMUMNUM = 220,
-  G_GET_FPENV = 221,
-  G_SET_FPENV = 222,
-  G_RESET_FPENV = 223,
-  G_GET_FPMODE = 224,
-  G_SET_FPMODE = 225,
-  G_RESET_FPMODE = 226,
-  G_GET_ROUNDING = 227,
-  G_PTR_ADD = 228,
-  G_PTRMASK = 229,
-  G_SMIN = 230,
-  G_SMAX = 231,
-  G_UMIN = 232,
-  G_UMAX = 233,
-  G_ABS = 234,
-  G_LROUND = 235,
-  G_LLROUND = 236,
-  G_BR = 237,
-  G_BRJT = 238,
-  G_VSCALE = 239,
-  G_INSERT_SUBVECTOR = 240,
-  G_EXTRACT_SUBVECTOR = 241,
-  G_INSERT_VECTOR_ELT = 242,
-  G_EXTRACT_VECTOR_ELT = 243,
-  G_SHUFFLE_VECTOR = 244,
-  G_SPLAT_VECTOR = 245,
-  G_STEP_VECTOR = 246,
-  G_VECTOR_COMPRESS = 247,
-  G_CTTZ = 248,
-  G_CTTZ_ZERO_UNDEF = 249,
-  G_CTLZ = 250,
-  G_CTLZ_ZERO_UNDEF = 251,
-  G_CTPOP = 252,
-  G_BSWAP = 253,
-  G_BITREVERSE = 254,
-  G_FCEIL = 255,
-  G_FCOS = 256,
-  G_FSIN = 257,
-  G_FSINCOS = 258,
-  G_FTAN = 259,
-  G_FACOS = 260,
-  G_FASIN = 261,
-  G_FATAN = 262,
-  G_FATAN2 = 263,
-  G_FCOSH = 264,
-  G_FSINH = 265,
-  G_FTANH = 266,
-  G_FSQRT = 267,
-  G_FFLOOR = 268,
-  G_FRINT = 269,
-  G_FNEARBYINT = 270,
-  G_ADDRSPACE_CAST = 271,
-  G_BLOCK_ADDR = 272,
-  G_JUMP_TABLE = 273,
-  G_DYN_STACKALLOC = 274,
-  G_STACKSAVE = 275,
-  G_STACKRESTORE = 276,
-  G_STRICT_FADD = 277,
-  G_STRICT_FSUB = 278,
-  G_STRICT_FMUL = 279,
-  G_STRICT_FDIV = 280,
-  G_STRICT_FREM = 281,
-  G_STRICT_FMA = 282,
-  G_STRICT_FSQRT = 283,
-  G_STRICT_FLDEXP = 284,
-  G_READ_REGISTER = 285,
-  G_WRITE_REGISTER = 286,
-  G_MEMCPY = 287,
-  G_MEMCPY_INLINE = 288,
-  G_MEMMOVE = 289,
-  G_MEMSET = 290,
-  G_BZERO = 291,
-  G_TRAP = 292,
-  G_DEBUGTRAP = 293,
-  G_UBSANTRAP = 294,
-  G_VECREDUCE_SEQ_FADD = 295,
-  G_VECREDUCE_SEQ_FMUL = 296,
-  G_VECREDUCE_FADD = 297,
-  G_VECREDUCE_FMUL = 298,
-  G_VECREDUCE_FMAX = 299,
-  G_VECREDUCE_FMIN = 300,
-  G_VECREDUCE_FMAXIMUM = 301,
-  G_VECREDUCE_FMINIMUM = 302,
-  G_VECREDUCE_ADD = 303,
-  G_VECREDUCE_MUL = 304,
-  G_VECREDUCE_AND = 305,
-  G_VECREDUCE_OR = 306,
-  G_VECREDUCE_XOR = 307,
-  G_VECREDUCE_SMAX = 308,
-  G_VECREDUCE_SMIN = 309,
-  G_VECREDUCE_UMAX = 310,
-  G_VECREDUCE_UMIN = 311,
-  G_SBFX = 312,
-  G_UBFX = 313,
-  ATOMIC_CMP_SWAP_I128 = 314,
-  ATOMIC_LOAD_ADD_I128 = 315,
-  ATOMIC_LOAD_AND_I128 = 316,
-  ATOMIC_LOAD_NAND_I128 = 317,
-  ATOMIC_LOAD_OR_I128 = 318,
-  ATOMIC_LOAD_SUB_I128 = 319,
-  ATOMIC_LOAD_XOR_I128 = 320,
-  ATOMIC_SWAP_I128 = 321,
-  BUILD_QUADWORD = 322,
-  BUILD_UACC = 323,
-  CFENCE = 324,
-  CFENCE8 = 325,
-  CLRLSLDI = 326,
-  CLRLSLDI_rec = 327,
-  CLRLSLWI = 328,
-  CLRLSLWI_rec = 329,
-  CLRRDI = 330,
-  CLRRDI_rec = 331,
-  CLRRWI = 332,
-  CLRRWI_rec = 333,
-  DCBFL = 334,
-  DCBFLP = 335,
-  DCBFPS = 336,
-  DCBFx = 337,
-  DCBSTPS = 338,
-  DCBTCT = 339,
-  DCBTDS = 340,
-  DCBTSTCT = 341,
-  DCBTSTDS = 342,
-  DCBTSTT = 343,
-  DCBTSTx = 344,
-  DCBTT = 345,
-  DCBTx = 346,
-  DFLOADf32 = 347,
-  DFLOADf64 = 348,
-  DFSTOREf32 = 349,
-  DFSTOREf64 = 350,
-  EXTLDI = 351,
-  EXTLDI_rec = 352,
-  EXTLWI = 353,
-  EXTLWI_rec = 354,
-  EXTRDI = 355,
-  EXTRDI_rec = 356,
-  EXTRWI = 357,
-  EXTRWI_rec = 358,
-  INSLWI = 359,
-  INSLWI_rec = 360,
-  INSRDI = 361,
-  INSRDI_rec = 362,
-  INSRWI = 363,
-  INSRWI_rec = 364,
-  KILL_PAIR = 365,
-  LAx = 366,
-  LIWAX = 367,
-  LIWZX = 368,
-  PPCLdFixedAddr = 369,
-  PSUBI = 370,
-  RLWIMIbm = 371,
-  RLWIMIbm_rec = 372,
-  RLWINMbm = 373,
-  RLWINMbm_rec = 374,
-  RLWNMbm = 375,
-  RLWNMbm_rec = 376,
-  ROTRDI = 377,
-  ROTRDI_rec = 378,
-  ROTRWI = 379,
-  ROTRWI_rec = 380,
-  SLDI = 381,
-  SLDI_rec = 382,
-  SLWI = 383,
-  SLWI_rec = 384,
-  SPILLTOVSR_LD = 385,
-  SPILLTOVSR_LDX = 386,
-  SPILLTOVSR_ST = 387,
-  SPILLTOVSR_STX = 388,
-  SRDI = 389,
-  SRDI_rec = 390,
-  SRWI = 391,
-  SRWI_rec = 392,
-  STIWX = 393,
-  SUBI = 394,
-  SUBIC = 395,
-  SUBIC_rec = 396,
-  SUBIS = 397,
-  SUBPCIS = 398,
-  XFLOADf32 = 399,
-  XFLOADf64 = 400,
-  XFSTOREf32 = 401,
-  XFSTOREf64 = 402,
-  ADD4 = 403,
-  ADD4O = 404,
-  ADD4O_rec = 405,
-  ADD4TLS = 406,
-  ADD4_rec = 407,
-  ADD8 = 408,
-  ADD8O = 409,
-  ADD8O_rec = 410,
-  ADD8TLS = 411,
-  ADD8TLS_ = 412,
-  ADD8_rec = 413,
-  ADDC = 414,
-  ADDC8 = 415,
-  ADDC8O = 416,
-  ADDC8O_rec = 417,
-  ADDC8_rec = 418,
-  ADDCO = 419,
-  ADDCO_rec = 420,
-  ADDC_rec = 421,
-  ADDE = 422,
-  ADDE8 = 423,
-  ADDE8O = 424,
-  ADDE8O_rec = 425,
-  ADDE8_rec = 426,
-  ADDEO = 427,
-  ADDEO_rec = 428,
-  ADDEX = 429,
-  ADDEX8 = 430,
-  ADDE_rec = 431,
-  ADDG6S = 432,
-  ADDG6S8 = 433,
-  ADDI = 434,
-  ADDI8 = 435,
-  ADDIC = 436,
-  ADDIC8 = 437,
-  ADDIC_rec = 438,
-  ADDIS = 439,
-  ADDIS8 = 440,
-  ADDISdtprelHA = 441,
-  ADDISdtprelHA32 = 442,
-  ADDISgotTprelHA = 443,
-  ADDIStlsgdHA = 444,
-  ADDIStlsldHA = 445,
-  ADDIStocHA = 446,
-  ADDIStocHA8 = 447,
-  ADDIdtprelL = 448,
-  ADDIdtprelL32 = 449,
-  ADDItlsgdL = 450,
-  ADDItlsgdL32 = 451,
-  ADDItlsgdLADDR = 452,
-  ADDItlsgdLADDR32 = 453,
-  ADDItlsldL = 454,
-  ADDItlsldL32 = 455,
-  ADDItlsldLADDR = 456,
-  ADDItlsldLADDR32 = 457,
-  ADDItoc = 458,
-  ADDItoc8 = 459,
-  ADDItocL = 460,
-  ADDItocL8 = 461,
-  ADDME = 462,
-  ADDME8 = 463,
-  ADDME8O = 464,
-  ADDME8O_rec = 465,
-  ADDME8_rec = 466,
-  ADDMEO = 467,
-  ADDMEO_rec = 468,
-  ADDME_rec = 469,
-  ADDPCIS = 470,
-  ADDZE = 471,
-  ADDZE8 = 472,
-  ADDZE8O = 473,
-  ADDZE8O_rec = 474,
-  ADDZE8_rec = 475,
-  ADDZEO = 476,
-  ADDZEO_rec = 477,
-  ADDZE_rec = 478,
-  ADJCALLSTACKDOWN = 479,
-  ADJCALLSTACKUP = 480,
-  AND = 481,
-  AND8 = 482,
-  AND8_rec = 483,
-  ANDC = 484,
-  ANDC8 = 485,
-  ANDC8_rec = 486,
-  ANDC_rec = 487,
-  ANDI8_rec = 488,
-  ANDIS8_rec = 489,
-  ANDIS_rec = 490,
-  ANDI_rec = 491,
-  ANDI_rec_1_EQ_BIT = 492,
-  ANDI_rec_1_EQ_BIT8 = 493,
-  ANDI_rec_1_GT_BIT = 494,
-  ANDI_rec_1_GT_BIT8 = 495,
-  AND_rec = 496,
-  ATOMIC_CMP_SWAP_I16 = 497,
-  ATOMIC_CMP_SWAP_I32 = 498,
-  ATOMIC_CMP_SWAP_I64 = 499,
-  ATOMIC_CMP_SWAP_I8 = 500,
-  ATOMIC_LOAD_ADD_I16 = 501,
-  ATOMIC_LOAD_ADD_I32 = 502,
-  ATOMIC_LOAD_ADD_I64 = 503,
-  ATOMIC_LOAD_ADD_I8 = 504,
-  ATOMIC_LOAD_AND_I16 = 505,
-  ATOMIC_LOAD_AND_I32 = 506,
-  ATOMIC_LOAD_AND_I64 = 507,
-  ATOMIC_LOAD_AND_I8 = 508,
-  ATOMIC_LOAD_MAX_I16 = 509,
-  ATOMIC_LOAD_MAX_I32 = 510,
-  ATOMIC_LOAD_MAX_I64 = 511,
-  ATOMIC_LOAD_MAX_I8 = 512,
-  ATOMIC_LOAD_MIN_I16 = 513,
-  ATOMIC_LOAD_MIN_I32 = 514,
-  ATOMIC_LOAD_MIN_I64 = 515,
-  ATOMIC_LOAD_MIN_I8 = 516,
-  ATOMIC_LOAD_NAND_I16 = 517,
-  ATOMIC_LOAD_NAND_I32 = 518,
-  ATOMIC_LOAD_NAND_I64 = 519,
-  ATOMIC_LOAD_NAND_I8 = 520,
-  ATOMIC_LOAD_OR_I16 = 521,
-  ATOMIC_LOAD_OR_I32 = 522,
-  ATOMIC_LOAD_OR_I64 = 523,
-  ATOMIC_LOAD_OR_I8 = 524,
-  ATOMIC_LOAD_SUB_I16 = 525,
-  ATOMIC_LOAD_SUB_I32 = 526,
-  ATOMIC_LOAD_SUB_I64 = 527,
-  ATOMIC_LOAD_SUB_I8 = 528,
-  ATOMIC_LOAD_UMAX_I16 = 529,
-  ATOMIC_LOAD_UMAX_I32 = 530,
-  ATOMIC_LOAD_UMAX_I64 = 531,
-  ATOMIC_LOAD_UMAX_I8 = 532,
-  ATOMIC_LOAD_UMIN_I16 = 533,
-  ATOMIC_LOAD_UMIN_I32 = 534,
-  ATOMIC_LOAD_UMIN_I64 = 535,
-  ATOMIC_LOAD_UMIN_I8 = 536,
-  ATOMIC_LOAD_XOR_I16 = 537,
-  ATOMIC_LOAD_XOR_I32 = 538,
-  ATOMIC_LOAD_XOR_I64 = 539,
-  ATOMIC_LOAD_XOR_I8 = 540,
-  ATOMIC_SWAP_I16 = 541,
-  ATOMIC_SWAP_I32 = 542,
-  ATOMIC_SWAP_I64 = 543,
-  ATOMIC_SWAP_I8 = 544,
-  ATTN = 545,
-  B = 546,
-  BA = 547,
-  BC = 548,
-  BCC = 549,
-  BCCA = 550,
-  BCCCTR = 551,
-  BCCCTR8 = 552,
-  BCCCTRL = 553,
-  BCCCTRL8 = 554,
-  BCCL = 555,
-  BCCLA = 556,
-  BCCLR = 557,
-  BCCLRL = 558,
-  BCCTR = 559,
-  BCCTR8 = 560,
-  BCCTR8n = 561,
-  BCCTRL = 562,
-  BCCTRL8 = 563,
-  BCCTRL8n = 564,
-  BCCTRLn = 565,
-  BCCTRn = 566,
-  BCDADD_rec = 567,
-  BCDCFN_rec = 568,
-  BCDCFSQ_rec = 569,
-  BCDCFZ_rec = 570,
-  BCDCPSGN_rec = 571,
-  BCDCTN_rec = 572,
-  BCDCTSQ_rec = 573,
-  BCDCTZ_rec = 574,
-  BCDSETSGN_rec = 575,
-  BCDSR_rec = 576,
-  BCDSUB_rec = 577,
-  BCDS_rec = 578,
-  BCDTRUNC_rec = 579,
-  BCDUS_rec = 580,
-  BCDUTRUNC_rec = 581,
-  BCL = 582,
-  BCLR = 583,
-  BCLRL = 584,
-  BCLRLn = 585,
-  BCLRn = 586,
-  BCLalways = 587,
-  BCLn = 588,
-  BCTR = 589,
-  BCTR8 = 590,
-  BCTRL = 591,
-  BCTRL8 = 592,
-  BCTRL8_LDinto_toc = 593,
-  BCTRL8_LDinto_toc_RM = 594,
-  BCTRL8_RM = 595,
-  BCTRL_LWZinto_toc = 596,
-  BCTRL_LWZinto_toc_RM = 597,
-  BCTRL_RM = 598,
-  BCn = 599,
-  BDNZ = 600,
-  BDNZ8 = 601,
-  BDNZA = 602,
-  BDNZAm = 603,
-  BDNZAp = 604,
-  BDNZL = 605,
-  BDNZLA = 606,
-  BDNZLAm = 607,
-  BDNZLAp = 608,
-  BDNZLR = 609,
-  BDNZLR8 = 610,
-  BDNZLRL = 611,
-  BDNZLRLm = 612,
-  BDNZLRLp = 613,
-  BDNZLRm = 614,
-  BDNZLRp = 615,
-  BDNZLm = 616,
-  BDNZLp = 617,
-  BDNZm = 618,
-  BDNZp = 619,
-  BDZ = 620,
-  BDZ8 = 621,
-  BDZA = 622,
-  BDZAm = 623,
-  BDZAp = 624,
-  BDZL = 625,
-  BDZLA = 626,
-  BDZLAm = 627,
-  BDZLAp = 628,
-  BDZLR = 629,
-  BDZLR8 = 630,
-  BDZLRL = 631,
-  BDZLRLm = 632,
-  BDZLRLp = 633,
-  BDZLRm = 634,
-  BDZLRp = 635,
-  BDZLm = 636,
-  BDZLp = 637,
-  BDZm = 638,
-  BDZp = 639,
-  BL = 640,
-  BL8 = 641,
-  BL8_NOP = 642,
-  BL8_NOP_RM = 643,
-  BL8_NOP_TLS = 644,
-  BL8_NOTOC = 645,
-  BL8_NOTOC_RM = 646,
-  BL8_NOTOC_TLS = 647,
-  BL8_RM = 648,
-  BL8_TLS = 649,
-  BL8_TLS_ = 650,
-  BLA = 651,
-  BLA8 = 652,
-  BLA8_NOP = 653,
-  BLA8_NOP_RM = 654,
-  BLA8_RM = 655,
-  BLA_RM = 656,
-  BLR = 657,
-  BLR8 = 658,
-  BLRL = 659,
-  BL_NOP = 660,
-  BL_NOP_RM = 661,
-  BL_RM = 662,
-  BL_TLS = 663,
-  BPERMD = 664,
-  BRD = 665,
-  BRH = 666,
-  BRH8 = 667,
-  BRINC = 668,
-  BRW = 669,
-  BRW8 = 670,
-  CBCDTD = 671,
-  CBCDTD8 = 672,
-  CDTBCD = 673,
-  CDTBCD8 = 674,
-  CFUGED = 675,
-  CLRBHRB = 676,
-  CMPB = 677,
-  CMPB8 = 678,
-  CMPD = 679,
-  CMPDI = 680,
-  CMPEQB = 681,
-  CMPLD = 682,
-  CMPLDI = 683,
-  CMPLW = 684,
-  CMPLWI = 685,
-  CMPRB = 686,
-  CMPRB8 = 687,
-  CMPW = 688,
-  CMPWI = 689,
-  CNTLZD = 690,
-  CNTLZDM = 691,
-  CNTLZD_rec = 692,
-  CNTLZW = 693,
-  CNTLZW8 = 694,
-  CNTLZW8_rec = 695,
-  CNTLZW_rec = 696,
-  CNTTZD = 697,
-  CNTTZDM = 698,
-  CNTTZD_rec = 699,
-  CNTTZW = 700,
-  CNTTZW8 = 701,
-  CNTTZW8_rec = 702,
-  CNTTZW_rec = 703,
-  CP_ABORT = 704,
-  CP_COPY = 705,
-  CP_COPY8 = 706,
-  CP_PASTE8_rec = 707,
-  CP_PASTE_rec = 708,
-  CR6SET = 709,
-  CR6UNSET = 710,
-  CRAND = 711,
-  CRANDC = 712,
-  CREQV = 713,
-  CRNAND = 714,
-  CRNOR = 715,
-  CRNOT = 716,
-  CROR = 717,
-  CRORC = 718,
-  CRSET = 719,
-  CRUNSET = 720,
-  CRXOR = 721,
-  CTRL_DEP = 722,
-  DADD = 723,
-  DADDQ = 724,
-  DADDQ_rec = 725,
-  DADD_rec = 726,
-  DARN = 727,
-  DCBA = 728,
-  DCBF = 729,
-  DCBFEP = 730,
-  DCBI = 731,
-  DCBST = 732,
-  DCBSTEP = 733,
-  DCBT = 734,
-  DCBTEP = 735,
-  DCBTST = 736,
-  DCBTSTEP = 737,
-  DCBZ = 738,
-  DCBZEP = 739,
-  DCBZL = 740,
-  DCBZLEP = 741,
-  DCCCI = 742,
-  DCFFIX = 743,
-  DCFFIXQ = 744,
-  DCFFIXQQ = 745,
-  DCFFIXQ_rec = 746,
-  DCFFIX_rec = 747,
-  DCMPO = 748,
-  DCMPOQ = 749,
-  DCMPU = 750,
-  DCMPUQ = 751,
-  DCTDP = 752,
-  DCTDP_rec = 753,
-  DCTFIX = 754,
-  DCTFIXQ = 755,
-  DCTFIXQQ = 756,
-  DCTFIXQ_rec = 757,
-  DCTFIX_rec = 758,
-  DCTQPQ = 759,
-  DCTQPQ_rec = 760,
-  DDEDPD = 761,
-  DDEDPDQ = 762,
-  DDEDPDQ_rec = 763,
-  DDEDPD_rec = 764,
-  DDIV = 765,
-  DDIVQ = 766,
-  DDIVQ_rec = 767,
-  DDIV_rec = 768,
-  DENBCD = 769,
-  DENBCDQ = 770,
-  DENBCDQ_rec = 771,
-  DENBCD_rec = 772,
-  DIEX = 773,
-  DIEXQ = 774,
-  DIEXQ_rec = 775,
-  DIEX_rec = 776,
-  DIVD = 777,
-  DIVDE = 778,
-  DIVDEO = 779,
-  DIVDEO_rec = 780,
-  DIVDEU = 781,
-  DIVDEUO = 782,
-  DIVDEUO_rec = 783,
-  DIVDEU_rec = 784,
-  DIVDE_rec = 785,
-  DIVDO = 786,
-  DIVDO_rec = 787,
-  DIVDU = 788,
-  DIVDUO = 789,
-  DIVDUO_rec = 790,
-  DIVDU_rec = 791,
-  DIVD_rec = 792,
-  DIVW = 793,
-  DIVWE = 794,
-  DIVWEO = 795,
-  DIVWEO_rec = 796,
-  DIVWEU = 797,
-  DIVWEUO = 798,
-  DIVWEUO_rec = 799,
-  DIVWEU_rec = 800,
-  DIVWE_rec = 801,
-  DIVWO = 802,
-  DIVWO_rec = 803,
-  DIVWU = 804,
-  DIVWUO = 805,
-  DIVWUO_rec = 806,
-  DIVWU_rec = 807,
-  DIVW_rec = 808,
-  DMMR = 809,
-  DMSETDMRZ = 810,
-  DMSHA2HASH = 811,
-  DMSHA3HASH = 812,
-  DMUL = 813,
-  DMULQ = 814,
-  DMULQ_rec = 815,
-  DMUL_rec = 816,
-  DMXOR = 817,
-  DMXVBF16GERX2 = 818,
-  DMXVBF16GERX2NN = 819,
-  DMXVBF16GERX2NP = 820,
-  DMXVBF16GERX2PN = 821,
-  DMXVBF16GERX2PP = 822,
-  DMXVF16GERX2 = 823,
-  DMXVF16GERX2NN = 824,
-  DMXVF16GERX2NP = 825,
-  DMXVF16GERX2PN = 826,
-  DMXVF16GERX2PP = 827,
-  DMXVI8GERX4 = 828,
-  DMXVI8GERX4PP = 829,
-  DMXVI8GERX4SPP = 830,
-  DMXXEXTFDMR256 = 831,
-  DMXXEXTFDMR512 = 832,
-  DMXXEXTFDMR512_HI = 833,
-  DMXXINSTDMR256 = 834,
-  DMXXINSTDMR512 = 835,
-  DMXXINSTDMR512_HI = 836,
-  DMXXSETACCZ = 837,
-  DMXXSHAPAD = 838,
-  DQUA = 839,
-  DQUAI = 840,
-  DQUAIQ = 841,
-  DQUAIQ_rec = 842,
-  DQUAI_rec = 843,
-  DQUAQ = 844,
-  DQUAQ_rec = 845,
-  DQUA_rec = 846,
-  DRDPQ = 847,
-  DRDPQ_rec = 848,
-  DRINTN = 849,
-  DRINTNQ = 850,
-  DRINTNQ_rec = 851,
-  DRINTN_rec = 852,
-  DRINTX = 853,
-  DRINTXQ = 854,
-  DRINTXQ_rec = 855,
-  DRINTX_rec = 856,
-  DRRND = 857,
-  DRRNDQ = 858,
-  DRRNDQ_rec = 859,
-  DRRND_rec = 860,
-  DRSP = 861,
-  DRSP_rec = 862,
-  DSCLI = 863,
-  DSCLIQ = 864,
-  DSCLIQ_rec = 865,
-  DSCLI_rec = 866,
-  DSCRI = 867,
-  DSCRIQ = 868,
-  DSCRIQ_rec = 869,
-  DSCRI_rec = 870,
-  DSS = 871,
-  DSSALL = 872,
-  DST = 873,
-  DST64 = 874,
-  DSTST = 875,
-  DSTST64 = 876,
-  DSTSTT = 877,
-  DSTSTT64 = 878,
-  DSTT = 879,
-  DSTT64 = 880,
-  DSUB = 881,
-  DSUBQ = 882,
-  DSUBQ_rec = 883,
-  DSUB_rec = 884,
-  DTSTDC = 885,
-  DTSTDCQ = 886,
-  DTSTDG = 887,
-  DTSTDGQ = 888,
-  DTSTEX = 889,
-  DTSTEXQ = 890,
-  DTSTSF = 891,
-  DTSTSFI = 892,
-  DTSTSFIQ = 893,
-  DTSTSFQ = 894,
-  DXEX = 895,
-  DXEXQ = 896,
-  DXEXQ_rec = 897,
-  DXEX_rec = 898,
-  DYNALLOC = 899,
-  DYNALLOC8 = 900,
-  DYNAREAOFFSET = 901,
-  DYNAREAOFFSET8 = 902,
-  DecreaseCTR8loop = 903,
-  DecreaseCTRloop = 904,
-  EFDABS = 905,
-  EFDADD = 906,
-  EFDCFS = 907,
-  EFDCFSF = 908,
-  EFDCFSI = 909,
-  EFDCFSID = 910,
-  EFDCFUF = 911,
-  EFDCFUI = 912,
-  EFDCFUID = 913,
-  EFDCMPEQ = 914,
-  EFDCMPGT = 915,
-  EFDCMPLT = 916,
-  EFDCTSF = 917,
-  EFDCTSI = 918,
-  EFDCTSIDZ = 919,
-  EFDCTSIZ = 920,
-  EFDCTUF = 921,
-  EFDCTUI = 922,
-  EFDCTUIDZ = 923,
-  EFDCTUIZ = 924,
-  EFDDIV = 925,
-  EFDMUL = 926,
-  EFDNABS = 927,
-  EFDNEG = 928,
-  EFDSUB = 929,
-  EFDTSTEQ = 930,
-  EFDTSTGT = 931,
-  EFDTSTLT = 932,
-  EFSABS = 933,
-  EFSADD = 934,
-  EFSCFD = 935,
-  EFSCFSF = 936,
-  EFSCFSI = 937,
-  EFSCFUF = 938,
-  EFSCFUI = 939,
-  EFSCMPEQ = 940,
-  EFSCMPGT = 941,
-  EFSCMPLT = 942,
-  EFSCTSF = 943,
-  EFSCTSI = 944,
-  EFSCTSIZ = 945,
-  EFSCTUF = 946,
-  EFSCTUI = 947,
-  EFSCTUIZ = 948,
-  EFSDIV = 949,
-  EFSMUL = 950,
-  EFSNABS = 951,
-  EFSNEG = 952,
-  EFSSUB = 953,
-  EFSTSTEQ = 954,
-  EFSTSTGT = 955,
-  EFSTSTLT = 956,
-  EH_SjLj_LongJmp32 = 957,
-  EH_SjLj_LongJmp64 = 958,
-  EH_SjLj_SetJmp32 = 959,
-  EH_SjLj_SetJmp64 = 960,
-  EH_SjLj_Setup = 961,
-  EQV = 962,
-  EQV8 = 963,
-  EQV8_rec = 964,
-  EQV_rec = 965,
-  EVABS = 966,
-  EVADDIW = 967,
-  EVADDSMIAAW = 968,
-  EVADDSSIAAW = 969,
-  EVADDUMIAAW = 970,
-  EVADDUSIAAW = 971,
-  EVADDW = 972,
-  EVAND = 973,
-  EVANDC = 974,
-  EVCMPEQ = 975,
-  EVCMPGTS = 976,
-  EVCMPGTU = 977,
-  EVCMPLTS = 978,
-  EVCMPLTU = 979,
-  EVCNTLSW = 980,
-  EVCNTLZW = 981,
-  EVDIVWS = 982,
-  EVDIVWU = 983,
-  EVEQV = 984,
-  EVEXTSB = 985,
-  EVEXTSH = 986,
-  EVFSABS = 987,
-  EVFSADD = 988,
-  EVFSCFSF = 989,
-  EVFSCFSI = 990,
-  EVFSCFUF = 991,
-  EVFSCFUI = 992,
-  EVFSCMPEQ = 993,
-  EVFSCMPGT = 994,
-  EVFSCMPLT = 995,
-  EVFSCTSF = 996,
-  EVFSCTSI = 997,
-  EVFSCTSIZ = 998,
-  EVFSCTUF = 999,
-  EVFSCTUI = 1000,
-  EVFSCTUIZ = 1001,
-  EVFSDIV = 1002,
-  EVFSMUL = 1003,
-  EVFSNABS = 1004,
-  EVFSNEG = 1005,
-  EVFSSUB = 1006,
-  EVFSTSTEQ = 1007,
-  EVFSTSTGT = 1008,
-  EVFSTSTLT = 1009,
-  EVLDD = 1010,
-  EVLDDX = 1011,
-  EVLDH = 1012,
-  EVLDHX = 1013,
-  EVLDW = 1014,
-  EVLDWX = 1015,
-  EVLHHESPLAT = 1016,
-  EVLHHESPLATX = 1017,
-  EVLHHOSSPLAT = 1018,
-  EVLHHOSSPLATX = 1019,
-  EVLHHOUSPLAT = 1020,
-  EVLHHOUSPLATX = 1021,
-  EVLWHE = 1022,
-  EVLWHEX = 1023,
-  EVLWHOS = 1024,
-  EVLWHOSX = 1025,
-  EVLWHOU = 1026,
-  EVLWHOUX = 1027,
-  EVLWHSPLAT = 1028,
-  EVLWHSPLATX = 1029,
-  EVLWWSPLAT = 1030,
-  EVLWWSPLATX = 1031,
-  EVMERGEHI = 1032,
-  EVMERGEHILO = 1033,
-  EVMERGELO = 1034,
-  EVMERGELOHI = 1035,
-  EVMHEGSMFAA = 1036,
-  EVMHEGSMFAN = 1037,
-  EVMHEGSMIAA = 1038,
-  EVMHEGSMIAN = 1039,
-  EVMHEGUMIAA = 1040,
-  EVMHEGUMIAN = 1041,
-  EVMHESMF = 1042,
-  EVMHESMFA = 1043,
-  EVMHESMFAAW = 1044,
-  EVMHESMFANW = 1045,
-  EVMHESMI = 1046,
-  EVMHESMIA = 1047,
-  EVMHESMIAAW = 1048,
-  EVMHESMIANW = 1049,
-  EVMHESSF = 1050,
-  EVMHESSFA = 1051,
-  EVMHESSFAAW = 1052,
-  EVMHESSFANW = 1053,
-  EVMHESSIAAW = 1054,
-  EVMHESSIANW = 1055,
-  EVMHEUMI = 1056,
-  EVMHEUMIA = 1057,
-  EVMHEUMIAAW = 1058,
-  EVMHEUMIANW = 1059,
-  EVMHEUSIAAW = 1060,
-  EVMHEUSIANW = 1061,
-  EVMHOGSMFAA = 1062,
-  EVMHOGSMFAN = 1063,
-  EVMHOGSMIAA = 1064,
-  EVMHOGSMIAN = 1065,
-  EVMHOGUMIAA = 1066,
-  EVMHOGUMIAN = 1067,
-  EVMHOSMF = 1068,
-  EVMHOSMFA = 1069,
-  EVMHOSMFAAW = 1070,
-  EVMHOSMFANW = 1071,
-  EVMHOSMI = 1072,
-  EVMHOSMIA = 1073,
-  EVMHOSMIAAW = 1074,
-  EVMHOSMIANW = 1075,
-  EVMHOSSF = 1076,
-  EVMHOSSFA = 1077,
-  EVMHOSSFAAW = 1078,
-  EVMHOSSFANW = 1079,
-  EVMHOSSIAAW = 1080,
-  EVMHOSSIANW = 1081,
-  EVMHOUMI = 1082,
-  EVMHOUMIA = 1083,
-  EVMHOUMIAAW = 1084,
-  EVMHOUMIANW = 1085,
-  EVMHOUSIAAW = 1086,
-  EVMHOUSIANW = 1087,
-  EVMRA = 1088,
-  EVMWHSMF = 1089,
-  EVMWHSMFA = 1090,
-  EVMWHSMI = 1091,
-  EVMWHSMIA = 1092,
-  EVMWHSSF = 1093,
-  EVMWHSSFA = 1094,
-  EVMWHUMI = 1095,
-  EVMWHUMIA = 1096,
-  EVMWLSMIAAW = 1097,
-  EVMWLSMIANW = 1098,
-  EVMWLSSIAAW = 1099,
-  EVMWLSSIANW = 1100,
-  EVMWLUMI = 1101,
-  EVMWLUMIA = 1102,
-  EVMWLUMIAAW = 1103,
-  EVMWLUMIANW = 1104,
-  EVMWLUSIAAW = 1105,
-  EVMWLUSIANW = 1106,
-  EVMWSMF = 1107,
-  EVMWSMFA = 1108,
-  EVMWSMFAA = 1109,
-  EVMWSMFAN = 1110,
-  EVMWSMI = 1111,
-  EVMWSMIA = 1112,
-  EVMWSMIAA = 1113,
-  EVMWSMIAN = 1114,
-  EVMWSSF = 1115,
-  EVMWSSFA = 1116,
-  EVMWSSFAA = 1117,
-  EVMWSSFAN = 1118,
-  EVMWUMI = 1119,
-  EVMWUMIA = 1120,
-  EVMWUMIAA = 1121,
-  EVMWUMIAN = 1122,
-  EVNAND = 1123,
-  EVNEG = 1124,
-  EVNOR = 1125,
-  EVOR = 1126,
-  EVORC = 1127,
-  EVRLW = 1128,
-  EVRLWI = 1129,
-  EVRNDW = 1130,
-  EVSEL = 1131,
-  EVSLW = 1132,
-  EVSLWI = 1133,
-  EVSPLATFI = 1134,
-  EVSPLATI = 1135,
-  EVSRWIS = 1136,
-  EVSRWIU = 1137,
-  EVSRWS = 1138,
-  EVSRWU = 1139,
-  EVSTDD = 1140,
-  EVSTDDX = 1141,
-  EVSTDH = 1142,
-  EVSTDHX = 1143,
-  EVSTDW = 1144,
-  EVSTDWX = 1145,
-  EVSTWHE = 1146,
-  EVSTWHEX = 1147,
-  EVSTWHO = 1148,
-  EVSTWHOX = 1149,
-  EVSTWWE = 1150,
-  EVSTWWEX = 1151,
-  EVSTWWO = 1152,
-  EVSTWWOX = 1153,
-  EVSUBFSMIAAW = 1154,
-  EVSUBFSSIAAW = 1155,
-  EVSUBFUMIAAW = 1156,
-  EVSUBFUSIAAW = 1157,
-  EVSUBFW = 1158,
-  EVSUBIFW = 1159,
-  EVXOR = 1160,
-  EXTSB = 1161,
-  EXTSB8 = 1162,
-  EXTSB8_32_64 = 1163,
-  EXTSB8_rec = 1164,
-  EXTSB_rec = 1165,
-  EXTSH = 1166,
-  EXTSH8 = 1167,
-  EXTSH8_32_64 = 1168,
-  EXTSH8_rec = 1169,
-  EXTSH_rec = 1170,
-  EXTSW = 1171,
-  EXTSWSLI = 1172,
-  EXTSWSLI_32_64 = 1173,
-  EXTSWSLI_32_64_rec = 1174,
-  EXTSWSLI_rec = 1175,
-  EXTSW_32 = 1176,
-  EXTSW_32_64 = 1177,
-  EXTSW_32_64_rec = 1178,
-  EXTSW_rec = 1179,
-  EnforceIEIO = 1180,
-  FABSD = 1181,
-  FABSD_rec = 1182,
-  FABSS = 1183,
-  FABSS_rec = 1184,
-  FADD = 1185,
-  FADDS = 1186,
-  FADDS_rec = 1187,
-  FADD_rec = 1188,
-  FADDrtz = 1189,
-  FCFID = 1190,
-  FCFIDS = 1191,
-  FCFIDS_rec = 1192,
-  FCFIDU = 1193,
-  FCFIDUS = 1194,
-  FCFIDUS_rec = 1195,
-  FCFIDU_rec = 1196,
-  FCFID_rec = 1197,
-  FCMPOD = 1198,
-  FCMPOS = 1199,
-  FCMPUD = 1200,
-  FCMPUS = 1201,
-  FCPSGND = 1202,
-  FCPSGND_rec = 1203,
-  FCPSGNS = 1204,
-  FCPSGNS_rec = 1205,
-  FCTID = 1206,
-  FCTIDU = 1207,
-  FCTIDUZ = 1208,
-  FCTIDUZ_rec = 1209,
-  FCTIDU_rec = 1210,
-  FCTIDZ = 1211,
-  FCTIDZ_rec = 1212,
-  FCTID_rec = 1213,
-  FCTIW = 1214,
-  FCTIWU = 1215,
-  FCTIWUZ = 1216,
-  FCTIWUZ_rec = 1217,
-  FCTIWU_rec = 1218,
-  FCTIWZ = 1219,
-  FCTIWZ_rec = 1220,
-  FCTIW_rec = 1221,
-  FDIV = 1222,
-  FDIVS = 1223,
-  FDIVS_rec = 1224,
-  FDIV_rec = 1225,
-  FENCE = 1226,
-  FMADD = 1227,
-  FMADDS = 1228,
-  FMADDS_rec = 1229,
-  FMADD_rec = 1230,
-  FMR = 1231,
-  FMR_rec = 1232,
-  FMSUB = 1233,
-  FMSUBS = 1234,
-  FMSUBS_rec = 1235,
-  FMSUB_rec = 1236,
-  FMUL = 1237,
-  FMULS = 1238,
-  FMULS_rec = 1239,
-  FMUL_rec = 1240,
-  FNABSD = 1241,
-  FNABSD_rec = 1242,
-  FNABSS = 1243,
-  FNABSS_rec = 1244,
-  FNEGD = 1245,
-  FNEGD_rec = 1246,
-  FNEGS = 1247,
-  FNEGS_rec = 1248,
-  FNMADD = 1249,
-  FNMADDS = 1250,
-  FNMADDS_rec = 1251,
-  FNMADD_rec = 1252,
-  FNMSUB = 1253,
-  FNMSUBS = 1254,
-  FNMSUBS_rec = 1255,
-  FNMSUB_rec = 1256,
-  FRE = 1257,
-  FRES = 1258,
-  FRES_rec = 1259,
-  FRE_rec = 1260,
-  FRIMD = 1261,
-  FRIMD_rec = 1262,
-  FRIMS = 1263,
-  FRIMS_rec = 1264,
-  FRIND = 1265,
-  FRIND_rec = 1266,
-  FRINS = 1267,
-  FRINS_rec = 1268,
-  FRIPD = 1269,
-  FRIPD_rec = 1270,
-  FRIPS = 1271,
-  FRIPS_rec = 1272,
-  FRIZD = 1273,
-  FRIZD_rec = 1274,
-  FRIZS = 1275,
-  FRIZS_rec = 1276,
-  FRSP = 1277,
-  FRSP_rec = 1278,
-  FRSQRTE = 1279,
-  FRSQRTES = 1280,
-  FRSQRTES_rec = 1281,
-  FRSQRTE_rec = 1282,
-  FSELD = 1283,
-  FSELD_rec = 1284,
-  FSELS = 1285,
-  FSELS_rec = 1286,
-  FSQRT = 1287,
-  FSQRTS = 1288,
-  FSQRTS_rec = 1289,
-  FSQRT_rec = 1290,
-  FSUB = 1291,
-  FSUBS = 1292,
-  FSUBS_rec = 1293,
-  FSUB_rec = 1294,
-  FTDIV = 1295,
-  FTSQRT = 1296,
-  GETtlsADDR = 1297,
-  GETtlsADDR32 = 1298,
-  GETtlsADDR32AIX = 1299,
-  GETtlsADDR64AIX = 1300,
-  GETtlsADDRPCREL = 1301,
-  GETtlsMOD32AIX = 1302,
-  GETtlsMOD64AIX = 1303,
-  GETtlsTpointer32AIX = 1304,
-  GETtlsldADDR = 1305,
-  GETtlsldADDR32 = 1306,
-  GETtlsldADDRPCREL = 1307,
-  HASHCHK = 1308,
-  HASHCHK8 = 1309,
-  HASHCHKP = 1310,
-  HASHCHKP8 = 1311,
-  HASHST = 1312,
-  HASHST8 = 1313,
-  HASHSTP = 1314,
-  HASHSTP8 = 1315,
-  HRFID = 1316,
-  ICBI = 1317,
-  ICBIEP = 1318,
-  ICBLC = 1319,
-  ICBLQ = 1320,
-  ICBT = 1321,
-  ICBTLS = 1322,
-  ICCCI = 1323,
-  ISEL = 1324,
-  ISEL8 = 1325,
-  ISYNC = 1326,
-  LA = 1327,
-  LA8 = 1328,
-  LBARX = 1329,
-  LBARXL = 1330,
-  LBEPX = 1331,
-  LBZ = 1332,
-  LBZ8 = 1333,
-  LBZCIX = 1334,
-  LBZU = 1335,
-  LBZU8 = 1336,
-  LBZUX = 1337,
-  LBZUX8 = 1338,
-  LBZX = 1339,
-  LBZX8 = 1340,
-  LBZXTLS = 1341,
-  LBZXTLS_ = 1342,
-  LBZXTLS_32 = 1343,
-  LD = 1344,
-  LDARX = 1345,
-  LDARXL = 1346,
-  LDAT = 1347,
-  LDBRX = 1348,
-  LDCIX = 1349,
-  LDU = 1350,
-  LDUX = 1351,
-  LDX = 1352,
-  LDXTLS = 1353,
-  LDXTLS_ = 1354,
-  LDgotTprelL = 1355,
-  LDgotTprelL32 = 1356,
-  LDtoc = 1357,
-  LDtocBA = 1358,
-  LDtocCPT = 1359,
-  LDtocJTI = 1360,
-  LDtocL = 1361,
-  LFD = 1362,
-  LFDEPX = 1363,
-  LFDU = 1364,
-  LFDUX = 1365,
-  LFDX = 1366,
-  LFDXTLS = 1367,
-  LFDXTLS_ = 1368,
-  LFIWAX = 1369,
-  LFIWZX = 1370,
-  LFS = 1371,
-  LFSU = 1372,
-  LFSUX = 1373,
-  LFSX = 1374,
-  LFSXTLS = 1375,
-  LFSXTLS_ = 1376,
-  LHA = 1377,
-  LHA8 = 1378,
-  LHARX = 1379,
-  LHARXL = 1380,
-  LHAU = 1381,
-  LHAU8 = 1382,
-  LHAUX = 1383,
-  LHAUX8 = 1384,
-  LHAX = 1385,
-  LHAX8 = 1386,
-  LHAXTLS = 1387,
-  LHAXTLS_ = 1388,
-  LHAXTLS_32 = 1389,
-  LHBRX = 1390,
-  LHBRX8 = 1391,
-  LHEPX = 1392,
-  LHZ = 1393,
-  LHZ8 = 1394,
-  LHZCIX = 1395,
-  LHZU = 1396,
-  LHZU8 = 1397,
-  LHZUX = 1398,
-  LHZUX8 = 1399,
-  LHZX = 1400,
-  LHZX8 = 1401,
-  LHZXTLS = 1402,
-  LHZXTLS_ = 1403,
-  LHZXTLS_32 = 1404,
-  LI = 1405,
-  LI8 = 1406,
-  LIS = 1407,
-  LIS8 = 1408,
-  LMW = 1409,
-  LQ = 1410,
-  LQARX = 1411,
-  LQARXL = 1412,
-  LQX_PSEUDO = 1413,
-  LSWI = 1414,
-  LVEBX = 1415,
-  LVEHX = 1416,
-  LVEWX = 1417,
-  LVSL = 1418,
-  LVSR = 1419,
-  LVX = 1420,
-  LVXL = 1421,
-  LWA = 1422,
-  LWARX = 1423,
-  LWARXL = 1424,
-  LWAT = 1425,
-  LWAUX = 1426,
-  LWAX = 1427,
-  LWAXTLS = 1428,
-  LWAXTLS_ = 1429,
-  LWAXTLS_32 = 1430,
-  LWAX_32 = 1431,
-  LWA_32 = 1432,
-  LWBRX = 1433,
-  LWBRX8 = 1434,
-  LWEPX = 1435,
-  LWZ = 1436,
-  LWZ8 = 1437,
-  LWZCIX = 1438,
-  LWZU = 1439,
-  LWZU8 = 1440,
-  LWZUX = 1441,
-  LWZUX8 = 1442,
-  LWZX = 1443,
-  LWZX8 = 1444,
-  LWZXTLS = 1445,
-  LWZXTLS_ = 1446,
-  LWZXTLS_32 = 1447,
-  LWZtoc = 1448,
-  LWZtocL = 1449,
-  LXSD = 1450,
-  LXSDX = 1451,
-  LXSIBZX = 1452,
-  LXSIHZX = 1453,
-  LXSIWAX = 1454,
-  LXSIWZX = 1455,
-  LXSSP = 1456,
-  LXSSPX = 1457,
-  LXV = 1458,
-  LXVB16X = 1459,
-  LXVD2X = 1460,
-  LXVDSX = 1461,
-  LXVH8X = 1462,
-  LXVKQ = 1463,
-  LXVL = 1464,
-  LXVLL = 1465,
-  LXVP = 1466,
-  LXVPRL = 1467,
-  LXVPRLL = 1468,
-  LXVPX = 1469,
-  LXVRBX = 1470,
-  LXVRDX = 1471,
-  LXVRHX = 1472,
-  LXVRL = 1473,
-  LXVRLL = 1474,
-  LXVRWX = 1475,
-  LXVW4X = 1476,
-  LXVWSX = 1477,
-  LXVX = 1478,
-  MADDHD = 1479,
-  MADDHDU = 1480,
-  MADDLD = 1481,
-  MADDLD8 = 1482,
-  MBAR = 1483,
-  MCRF = 1484,
-  MCRFS = 1485,
-  MCRXRX = 1486,
-  MFBHRBE = 1487,
-  MFCR = 1488,
-  MFCR8 = 1489,
-  MFCTR = 1490,
-  MFCTR8 = 1491,
-  MFDCR = 1492,
-  MFFS = 1493,
-  MFFSCDRN = 1494,
-  MFFSCDRNI = 1495,
-  MFFSCE = 1496,
-  MFFSCRN = 1497,
-  MFFSCRNI = 1498,
-  MFFSL = 1499,
-  MFFS_rec = 1500,
-  MFLR = 1501,
-  MFLR8 = 1502,
-  MFMSR = 1503,
-  MFOCRF = 1504,
-  MFOCRF8 = 1505,
-  MFPMR = 1506,
-  MFSPR = 1507,
-  MFSPR8 = 1508,
-  MFSR = 1509,
-  MFSRIN = 1510,
-  MFTB = 1511,
-  MFTB8 = 1512,
-  MFUDSCR = 1513,
-  MFVRD = 1514,
-  MFVRSAVE = 1515,
-  MFVRSAVEv = 1516,
-  MFVRWZ = 1517,
-  MFVSCR = 1518,
-  MFVSRD = 1519,
-  MFVSRLD = 1520,
-  MFVSRWZ = 1521,
-  MODSD = 1522,
-  MODSW = 1523,
-  MODUD = 1524,
-  MODUW = 1525,
-  MSGSYNC = 1526,
-  MSYNC = 1527,
-  MTCRF = 1528,
-  MTCRF8 = 1529,
-  MTCTR = 1530,
-  MTCTR8 = 1531,
-  MTCTR8loop = 1532,
-  MTCTRloop = 1533,
-  MTDCR = 1534,
-  MTFSB0 = 1535,
-  MTFSB1 = 1536,
-  MTFSF = 1537,
-  MTFSFI = 1538,
-  MTFSFI_rec = 1539,
-  MTFSFIb = 1540,
-  MTFSF_rec = 1541,
-  MTFSFb = 1542,
-  MTLR = 1543,
-  MTLR8 = 1544,
-  MTMSR = 1545,
-  MTMSRD = 1546,
-  MTOCRF = 1547,
-  MTOCRF8 = 1548,
-  MTPMR = 1549,
-  MTSPR = 1550,
-  MTSPR8 = 1551,
-  MTSR = 1552,
-  MTSRIN = 1553,
-  MTUDSCR = 1554,
-  MTVRD = 1555,
-  MTVRSAVE = 1556,
-  MTVRSAVEv = 1557,
-  MTVRWA = 1558,
-  MTVRWZ = 1559,
-  MTVSCR = 1560,
-  MTVSRBM = 1561,
-  MTVSRBMI = 1562,
-  MTVSRD = 1563,
-  MTVSRDD = 1564,
-  MTVSRDM = 1565,
-  MTVSRHM = 1566,
-  MTVSRQM = 1567,
-  MTVSRWA = 1568,
-  MTVSRWM = 1569,
-  MTVSRWS = 1570,
-  MTVSRWZ = 1571,
-  MULHD = 1572,
-  MULHDU = 1573,
-  MULHDU_rec = 1574,
-  MULHD_rec = 1575,
-  MULHW = 1576,
-  MULHWU = 1577,
-  MULHWU_rec = 1578,
-  MULHW_rec = 1579,
-  MULLD = 1580,
-  MULLDO = 1581,
-  MULLDO_rec = 1582,
-  MULLD_rec = 1583,
-  MULLI = 1584,
-  MULLI8 = 1585,
-  MULLW = 1586,
-  MULLWO = 1587,
-  MULLWO_rec = 1588,
-  MULLW_rec = 1589,
-  MoveGOTtoLR = 1590,
-  MovePCtoLR = 1591,
-  MovePCtoLR8 = 1592,
-  NAND = 1593,
-  NAND8 = 1594,
-  NAND8_rec = 1595,
-  NAND_rec = 1596,
-  NAP = 1597,
-  NEG = 1598,
-  NEG8 = 1599,
-  NEG8O = 1600,
-  NEG8O_rec = 1601,
-  NEG8_rec = 1602,
-  NEGO = 1603,
-  NEGO_rec = 1604,
-  NEG_rec = 1605,
-  NOP = 1606,
-  NOP_GT_PWR6 = 1607,
-  NOP_GT_PWR7 = 1608,
-  NOR = 1609,
-  NOR8 = 1610,
-  NOR8_rec = 1611,
-  NOR_rec = 1612,
-  OR = 1613,
-  OR8 = 1614,
-  OR8_rec = 1615,
-  ORC = 1616,
-  ORC8 = 1617,
-  ORC8_rec = 1618,
-  ORC_rec = 1619,
-  ORI = 1620,
-  ORI8 = 1621,
-  ORIS = 1622,
-  ORIS8 = 1623,
-  OR_rec = 1624,
-  PADDI = 1625,
-  PADDI8 = 1626,
-  PADDI8pc = 1627,
-  PADDIdtprel = 1628,
-  PADDIpc = 1629,
-  PDEPD = 1630,
-  PEXTD = 1631,
-  PLA = 1632,
-  PLA8 = 1633,
-  PLA8pc = 1634,
-  PLApc = 1635,
-  PLBZ = 1636,
-  PLBZ8 = 1637,
-  PLBZ8nopc = 1638,
-  PLBZ8onlypc = 1639,
-  PLBZ8pc = 1640,
-  PLBZnopc = 1641,
-  PLBZonlypc = 1642,
-  PLBZpc = 1643,
-  PLD = 1644,
-  PLDnopc = 1645,
-  PLDonlypc = 1646,
-  PLDpc = 1647,
-  PLFD = 1648,
-  PLFDnopc = 1649,
-  PLFDonlypc = 1650,
-  PLFDpc = 1651,
-  PLFS = 1652,
-  PLFSnopc = 1653,
-  PLFSonlypc = 1654,
-  PLFSpc = 1655,
-  PLHA = 1656,
-  PLHA8 = 1657,
-  PLHA8nopc = 1658,
-  PLHA8onlypc = 1659,
-  PLHA8pc = 1660,
-  PLHAnopc = 1661,
-  PLHAonlypc = 1662,
-  PLHApc = 1663,
-  PLHZ = 1664,
-  PLHZ8 = 1665,
-  PLHZ8nopc = 1666,
-  PLHZ8onlypc = 1667,
-  PLHZ8pc = 1668,
-  PLHZnopc = 1669,
-  PLHZonlypc = 1670,
-  PLHZpc = 1671,
-  PLI = 1672,
-  PLI8 = 1673,
-  PLWA = 1674,
-  PLWA8 = 1675,
-  PLWA8nopc = 1676,
-  PLWA8onlypc = 1677,
-  PLWA8pc = 1678,
-  PLWAnopc = 1679,
-  PLWAonlypc = 1680,
-  PLWApc = 1681,
-  PLWZ = 1682,
-  PLWZ8 = 1683,
-  PLWZ8nopc = 1684,
-  PLWZ8onlypc = 1685,
-  PLWZ8pc = 1686,
-  PLWZnopc = 1687,
-  PLWZonlypc = 1688,
-  PLWZpc = 1689,
-  PLXSD = 1690,
-  PLXSDnopc = 1691,
-  PLXSDonlypc = 1692,
-  PLXSDpc = 1693,
-  PLXSSP = 1694,
-  PLXSSPnopc = 1695,
-  PLXSSPonlypc = 1696,
-  PLXSSPpc = 1697,
-  PLXV = 1698,
-  PLXVP = 1699,
-  PLXVPnopc = 1700,
-  PLXVPonlypc = 1701,
-  PLXVPpc = 1702,
-  PLXVnopc = 1703,
-  PLXVonlypc = 1704,
-  PLXVpc = 1705,
-  PMDMXVBF16GERX2 = 1706,
-  PMDMXVBF16GERX2NN = 1707,
-  PMDMXVBF16GERX2NP = 1708,
-  PMDMXVBF16GERX2PN = 1709,
-  PMDMXVBF16GERX2PP = 1710,
-  PMDMXVF16GERX2 = 1711,
-  PMDMXVF16GERX2NN = 1712,
-  PMDMXVF16GERX2NP = 1713,
-  PMDMXVF16GERX2PN = 1714,
-  PMDMXVF16GERX2PP = 1715,
-  PMDMXVI8GERX4 = 1716,
-  PMDMXVI8GERX4PP = 1717,
-  PMDMXVI8GERX4SPP = 1718,
-  PMXVBF16GER2 = 1719,
-  PMXVBF16GER2NN = 1720,
-  PMXVBF16GER2NP = 1721,
-  PMXVBF16GER2PN = 1722,
-  PMXVBF16GER2PP = 1723,
-  PMXVBF16GER2W = 1724,
-  PMXVBF16GER2WNN = 1725,
-  PMXVBF16GER2WNP = 1726,
-  PMXVBF16GER2WPN = 1727,
-  PMXVBF16GER2WPP = 1728,
-  PMXVF16GER2 = 1729,
-  PMXVF16GER2NN = 1730,
-  PMXVF16GER2NP = 1731,
-  PMXVF16GER2PN = 1732,
-  PMXVF16GER2PP = 1733,
-  PMXVF16GER2W = 1734,
-  PMXVF16GER2WNN = 1735,
-  PMXVF16GER2WNP = 1736,
-  PMXVF16GER2WPN = 1737,
-  PMXVF16GER2WPP = 1738,
-  PMXVF32GER = 1739,
-  PMXVF32GERNN = 1740,
-  PMXVF32GERNP = 1741,
-  PMXVF32GERPN = 1742,
-  PMXVF32GERPP = 1743,
-  PMXVF32GERW = 1744,
-  PMXVF32GERWNN = 1745,
-  PMXVF32GERWNP = 1746,
-  PMXVF32GERWPN = 1747,
-  PMXVF32GERWPP = 1748,
-  PMXVF64GER = 1749,
-  PMXVF64GERNN = 1750,
-  PMXVF64GERNP = 1751,
-  PMXVF64GERPN = 1752,
-  PMXVF64GERPP = 1753,
-  PMXVF64GERW = 1754,
-  PMXVF64GERWNN = 1755,
-  PMXVF64GERWNP = 1756,
-  PMXVF64GERWPN = 1757,
-  PMXVF64GERWPP = 1758,
-  PMXVI16GER2 = 1759,
-  PMXVI16GER2PP = 1760,
-  PMXVI16GER2S = 1761,
-  PMXVI16GER2SPP = 1762,
-  PMXVI16GER2SW = 1763,
-  PMXVI16GER2SWPP = 1764,
-  PMXVI16GER2W = 1765,
-  PMXVI16GER2WPP = 1766,
-  PMXVI4GER8 = 1767,
-  PMXVI4GER8PP = 1768,
-  PMXVI4GER8W = 1769,
-  PMXVI4GER8WPP = 1770,
-  PMXVI8GER4 = 1771,
-  PMXVI8GER4PP = 1772,
-  PMXVI8GER4SPP = 1773,
-  PMXVI8GER4W = 1774,
-  PMXVI8GER4WPP = 1775,
-  PMXVI8GER4WSPP = 1776,
-  POPCNTB = 1777,
-  POPCNTB8 = 1778,
-  POPCNTD = 1779,
-  POPCNTW = 1780,
-  PPC32GOT = 1781,
-  PPC32PICGOT = 1782,
-  PREPARE_PROBED_ALLOCA_32 = 1783,
-  PREPARE_PROBED_ALLOCA_64 = 1784,
-  PREPARE_PROBED_ALLOCA_NEGSIZE_SAME_REG_32 = 1785,
-  PREPARE_PROBED_ALLOCA_NEGSIZE_SAME_REG_64 = 1786,
-  PROBED_ALLOCA_32 = 1787,
-  PROBED_ALLOCA_64 = 1788,
-  PROBED_STACKALLOC_32 = 1789,
-  PROBED_STACKALLOC_64 = 1790,
-  PSTB = 1791,
-  PSTB8 = 1792,
-  PSTB8nopc = 1793,
-  PSTB8onlypc = 1794,
-  PSTB8pc = 1795,
-  PSTBnopc = 1796,
-  PSTBonlypc = 1797,
-  PSTBpc = 1798,
-  PSTD = 1799,
-  PSTDnopc = 1800,
-  PSTDonlypc = 1801,
-  PSTDpc = 1802,
-  PSTFD = 1803,
-  PSTFDnopc = 1804,
-  PSTFDonlypc = 1805,
-  PSTFDpc = 1806,
-  PSTFS = 1807,
-  PSTFSnopc = 1808,
-  PSTFSonlypc = 1809,
-  PSTFSpc = 1810,
-  PSTH = 1811,
-  PSTH8 = 1812,
-  PSTH8nopc = 1813,
-  PSTH8onlypc = 1814,
-  PSTH8pc = 1815,
-  PSTHnopc = 1816,
-  PSTHonlypc = 1817,
-  PSTHpc = 1818,
-  PSTW = 1819,
-  PSTW8 = 1820,
-  PSTW8nopc = 1821,
-  PSTW8onlypc = 1822,
-  PSTW8pc = 1823,
-  PSTWnopc = 1824,
-  PSTWonlypc = 1825,
-  PSTWpc = 1826,
-  PSTXSD = 1827,
-  PSTXSDnopc = 1828,
-  PSTXSDonlypc = 1829,
-  PSTXSDpc = 1830,
-  PSTXSSP = 1831,
-  PSTXSSPnopc = 1832,
-  PSTXSSPonlypc = 1833,
-  PSTXSSPpc = 1834,
-  PSTXV = 1835,
-  PSTXVP = 1836,
-  PSTXVPnopc = 1837,
-  PSTXVPonlypc = 1838,
-  PSTXVPpc = 1839,
-  PSTXVnopc = 1840,
-  PSTXVonlypc = 1841,
-  PSTXVpc = 1842,
-  PseudoEIEIO = 1843,
-  RESTORE_ACC = 1844,
-  RESTORE_CR = 1845,
-  RESTORE_CRBIT = 1846,
-  RESTORE_DMR = 1847,
-  RESTORE_DMRP = 1848,
-  RESTORE_QUADWORD = 1849,
-  RESTORE_UACC = 1850,
-  RESTORE_WACC = 1851,
-  RFCI = 1852,
-  RFDI = 1853,
-  RFEBB = 1854,
-  RFI = 1855,
-  RFID = 1856,
-  RFMCI = 1857,
-  RLDCL = 1858,
-  RLDCL_rec = 1859,
-  RLDCR = 1860,
-  RLDCR_rec = 1861,
-  RLDIC = 1862,
-  RLDICL = 1863,
-  RLDICL_32 = 1864,
-  RLDICL_32_64 = 1865,
-  RLDICL_32_rec = 1866,
-  RLDICL_rec = 1867,
-  RLDICR = 1868,
-  RLDICR_32 = 1869,
-  RLDICR_rec = 1870,
-  RLDIC_rec = 1871,
-  RLDIMI = 1872,
-  RLDIMI_rec = 1873,
-  RLWIMI = 1874,
-  RLWIMI8 = 1875,
-  RLWIMI8_rec = 1876,
-  RLWIMI_rec = 1877,
-  RLWINM = 1878,
-  RLWINM8 = 1879,
-  RLWINM8_rec = 1880,
-  RLWINM_rec = 1881,
-  RLWNM = 1882,
-  RLWNM8 = 1883,
-  RLWNM8_rec = 1884,
-  RLWNM_rec = 1885,
-  ReadTB = 1886,
-  SC = 1887,
-  SCV = 1888,
-  SELECT_CC_F16 = 1889,
-  SELECT_CC_F4 = 1890,
-  SELECT_CC_F8 = 1891,
-  SELECT_CC_I4 = 1892,
-  SELECT_CC_I8 = 1893,
-  SELECT_CC_SPE = 1894,
-  SELECT_CC_SPE4 = 1895,
-  SELECT_CC_VRRC = 1896,
-  SELECT_CC_VSFRC = 1897,
-  SELECT_CC_VSRC = 1898,
-  SELECT_CC_VSSRC = 1899,
-  SELECT_F16 = 1900,
-  SELECT_F4 = 1901,
-  SELECT_F8 = 1902,
-  SELECT_I4 = 1903,
-  SELECT_I8 = 1904,
-  SELECT_SPE = 1905,
-  SELECT_SPE4 = 1906,
-  SELECT_VRRC = 1907,
-  SELECT_VSFRC = 1908,
-  SELECT_VSRC = 1909,
-  SELECT_VSSRC = 1910,
-  SETB = 1911,
-  SETB8 = 1912,
-  SETBC = 1913,
-  SETBC8 = 1914,
-  SETBCR = 1915,
-  SETBCR8 = 1916,
-  SETFLM = 1917,
-  SETNBC = 1918,
-  SETNBC8 = 1919,
-  SETNBCR = 1920,
-  SETNBCR8 = 1921,
-  SETRND = 1922,
-  SETRNDi = 1923,
-  SLBFEE_rec = 1924,
-  SLBIA = 1925,
-  SLBIE = 1926,
-  SLBIEG = 1927,
-  SLBMFEE = 1928,
-  SLBMFEV = 1929,
-  SLBMTE = 1930,
-  SLBSYNC = 1931,
-  SLD = 1932,
-  SLD_rec = 1933,
-  SLW = 1934,
-  SLW8 = 1935,
-  SLW8_rec = 1936,
-  SLW_rec = 1937,
-  SPELWZ = 1938,
-  SPELWZX = 1939,
-  SPESTW = 1940,
-  SPESTWX = 1941,
-  SPILL_ACC = 1942,
-  SPILL_CR = 1943,
-  SPILL_CRBIT = 1944,
-  SPILL_DMR = 1945,
-  SPILL_DMRP = 1946,
-  SPILL_QUADWORD = 1947,
-  SPILL_UACC = 1948,
-  SPILL_WACC = 1949,
-  SPLIT_QUADWORD = 1950,
-  SRAD = 1951,
-  SRADI = 1952,
-  SRADI_32 = 1953,
-  SRADI_rec = 1954,
-  SRAD_rec = 1955,
-  SRAW = 1956,
-  SRAW8 = 1957,
-  SRAW8_rec = 1958,
-  SRAWI = 1959,
-  SRAWI8 = 1960,
-  SRAWI8_rec = 1961,
-  SRAWI_rec = 1962,
-  SRAW_rec = 1963,
-  SRD = 1964,
-  SRD_rec = 1965,
-  SRW = 1966,
-  SRW8 = 1967,
-  SRW8_rec = 1968,
-  SRW_rec = 1969,
-  STB = 1970,
-  STB8 = 1971,
-  STBCIX = 1972,
-  STBCX = 1973,
-  STBEPX = 1974,
-  STBU = 1975,
-  STBU8 = 1976,
-  STBUX = 1977,
-  STBUX8 = 1978,
-  STBX = 1979,
-  STBX8 = 1980,
-  STBXTLS = 1981,
-  STBXTLS_ = 1982,
-  STBXTLS_32 = 1983,
-  STD = 1984,
-  STDAT = 1985,
-  STDBRX = 1986,
-  STDCIX = 1987,
-  STDCX = 1988,
-  STDU = 1989,
-  STDUX = 1990,
-  STDX = 1991,
-  STDXTLS = 1992,
-  STDXTLS_ = 1993,
-  STFD = 1994,
-  STFDEPX = 1995,
-  STFDU = 1996,
-  STFDUX = 1997,
-  STFDX = 1998,
-  STFDXTLS = 1999,
-  STFDXTLS_ = 2000,
-  STFIWX = 2001,
-  STFS = 2002,
-  STFSU = 2003,
-  STFSUX = 2004,
-  STFSX = 2005,
-  STFSXTLS = 2006,
-  STFSXTLS_ = 2007,
-  STH = 2008,
-  STH8 = 2009,
-  STHBRX = 2010,
-  STHCIX = 2011,
-  STHCX = 2012,
-  STHEPX = 2013,
-  STHU = 2014,
-  STHU8 = 2015,
-  STHUX = 2016,
-  STHUX8 = 2017,
-  STHX = 2018,
-  STHX8 = 2019,
-  STHXTLS = 2020,
-  STHXTLS_ = 2021,
-  STHXTLS_32 = 2022,
-  STMW = 2023,
-  STOP = 2024,
-  STQ = 2025,
-  STQCX = 2026,
-  STQX_PSEUDO = 2027,
-  STSWI = 2028,
-  STVEBX = 2029,
-  STVEHX = 2030,
-  STVEWX = 2031,
-  STVX = 2032,
-  STVXL = 2033,
-  STW = 2034,
-  STW8 = 2035,
-  STWAT = 2036,
-  STWBRX = 2037,
-  STWCIX = 2038,
-  STWCX = 2039,
-  STWEPX = 2040,
-  STWU = 2041,
-  STWU8 = 2042,
-  STWUX = 2043,
-  STWUX8 = 2044,
-  STWX = 2045,
-  STWX8 = 2046,
-  STWXTLS = 2047,
-  STWXTLS_ = 2048,
-  STWXTLS_32 = 2049,
-  STXSD = 2050,
-  STXSDX = 2051,
-  STXSIBX = 2052,
-  STXSIBXv = 2053,
-  STXSIHX = 2054,
-  STXSIHXv = 2055,
-  STXSIWX = 2056,
-  STXSSP = 2057,
-  STXSSPX = 2058,
-  STXV = 2059,
-  STXVB16X = 2060,
-  STXVD2X = 2061,
-  STXVH8X = 2062,
-  STXVL = 2063,
-  STXVLL = 2064,
-  STXVP = 2065,
-  STXVPRL = 2066,
-  STXVPRLL = 2067,
-  STXVPX = 2068,
-  STXVRBX = 2069,
-  STXVRDX = 2070,
-  STXVRHX = 2071,
-  STXVRL = 2072,
-  STXVRLL = 2073,
-  STXVRWX = 2074,
-  STXVW4X = 2075,
-  STXVX = 2076,
-  SUBF = 2077,
-  SUBF8 = 2078,
-  SUBF8O = 2079,
-  SUBF8O_rec = 2080,
-  SUBF8_rec = 2081,
-  SUBFC = 2082,
-  SUBFC8 = 2083,
-  SUBFC8O = 2084,
-  SUBFC8O_rec = 2085,
-  SUBFC8_rec = 2086,
-  SUBFCO = 2087,
-  SUBFCO_rec = 2088,
-  SUBFC_rec = 2089,
-  SUBFE = 2090,
-  SUBFE8 = 2091,
-  SUBFE8O = 2092,
-  SUBFE8O_rec = 2093,
-  SUBFE8_rec = 2094,
-  SUBFEO = 2095,
-  SUBFEO_rec = 2096,
-  SUBFE_rec = 2097,
-  SUBFIC = 2098,
-  SUBFIC8 = 2099,
-  SUBFME = 2100,
-  SUBFME8 = 2101,
-  SUBFME8O = 2102,
-  SUBFME8O_rec = 2103,
-  SUBFME8_rec = 2104,
-  SUBFMEO = 2105,
-  SUBFMEO_rec = 2106,
-  SUBFME_rec = 2107,
-  SUBFO = 2108,
-  SUBFO_rec = 2109,
-  SUBFUS = 2110,
-  SUBFUS_rec = 2111,
-  SUBFZE = 2112,
-  SUBFZE8 = 2113,
-  SUBFZE8O = 2114,
-  SUBFZE8O_rec = 2115,
-  SUBFZE8_rec = 2116,
-  SUBFZEO = 2117,
-  SUBFZEO_rec = 2118,
-  SUBFZE_rec = 2119,
-  SUBF_rec = 2120,
-  SYNC = 2121,
-  SYNCP10 = 2122,
-  TABORT = 2123,
-  TABORTDC = 2124,
-  TABORTDCI = 2125,
-  TABORTWC = 2126,
-  TABORTWCI = 2127,
-  TAILB = 2128,
-  TAILB8 = 2129,
-  TAILBA = 2130,
-  TAILBA8 = 2131,
-  TAILBCTR = 2132,
-  TAILBCTR8 = 2133,
-  TBEGIN = 2134,
-  TBEGIN_RET = 2135,
-  TCHECK = 2136,
-  TCHECK_RET = 2137,
-  TCRETURNai = 2138,
-  TCRETURNai8 = 2139,
-  TCRETURNdi = 2140,
-  TCRETURNdi8 = 2141,
-  TCRETURNri = 2142,
-  TCRETURNri8 = 2143,
-  TD = 2144,
-  TDI = 2145,
-  TEND = 2146,
-  TLBIA = 2147,
-  TLBIE = 2148,
-  TLBIEL = 2149,
-  TLBILX = 2150,
-  TLBIVAX = 2151,
-  TLBLD = 2152,
-  TLBLI = 2153,
-  TLBRE = 2154,
-  TLBRE2 = 2155,
-  TLBSX = 2156,
-  TLBSX2 = 2157,
-  TLBSX2D = 2158,
-  TLBSYNC = 2159,
-  TLBWE = 2160,
-  TLBWE2 = 2161,
-  TLSGDAIX = 2162,
-  TLSGDAIX8 = 2163,
-  TLSLDAIX = 2164,
-  TLSLDAIX8 = 2165,
-  TRAP = 2166,
-  TRECHKPT = 2167,
-  TRECLAIM = 2168,
-  TSR = 2169,
-  TW = 2170,
-  TWI = 2171,
-  UNENCODED_NOP = 2172,
-  UpdateGBR = 2173,
-  VABSDUB = 2174,
-  VABSDUH = 2175,
-  VABSDUW = 2176,
-  VADDCUQ = 2177,
-  VADDCUW = 2178,
-  VADDECUQ = 2179,
-  VADDEUQM = 2180,
-  VADDFP = 2181,
-  VADDSBS = 2182,
-  VADDSHS = 2183,
-  VADDSWS = 2184,
-  VADDUBM = 2185,
-  VADDUBS = 2186,
-  VADDUDM = 2187,
-  VADDUHM = 2188,
-  VADDUHS = 2189,
-  VADDUQM = 2190,
-  VADDUWM = 2191,
-  VADDUWS = 2192,
-  VAND = 2193,
-  VANDC = 2194,
-  VAVGSB = 2195,
-  VAVGSH = 2196,
-  VAVGSW = 2197,
-  VAVGUB = 2198,
-  VAVGUH = 2199,
-  VAVGUW = 2200,
-  VBPERMD = 2201,
-  VBPERMQ = 2202,
-  VCFSX = 2203,
-  VCFSX_0 = 2204,
-  VCFUGED = 2205,
-  VCFUX = 2206,
-  VCFUX_0 = 2207,
-  VCIPHER = 2208,
-  VCIPHERLAST = 2209,
-  VCLRLB = 2210,
-  VCLRRB = 2211,
-  VCLZB = 2212,
-  VCLZD = 2213,
-  VCLZDM = 2214,
-  VCLZH = 2215,
-  VCLZLSBB = 2216,
-  VCLZW = 2217,
-  VCMPBFP = 2218,
-  VCMPBFP_rec = 2219,
-  VCMPEQFP = 2220,
-  VCMPEQFP_rec = 2221,
-  VCMPEQUB = 2222,
-  VCMPEQUB_rec = 2223,
-  VCMPEQUD = 2224,
-  VCMPEQUD_rec = 2225,
-  VCMPEQUH = 2226,
-  VCMPEQUH_rec = 2227,
-  VCMPEQUQ = 2228,
-  VCMPEQUQ_rec = 2229,
-  VCMPEQUW = 2230,
-  VCMPEQUW_rec = 2231,
-  VCMPGEFP = 2232,
-  VCMPGEFP_rec = 2233,
-  VCMPGTFP = 2234,
-  VCMPGTFP_rec = 2235,
-  VCMPGTSB = 2236,
-  VCMPGTSB_rec = 2237,
-  VCMPGTSD = 2238,
-  VCMPGTSD_rec = 2239,
-  VCMPGTSH = 2240,
-  VCMPGTSH_rec = 2241,
-  VCMPGTSQ = 2242,
-  VCMPGTSQ_rec = 2243,
-  VCMPGTSW = 2244,
-  VCMPGTSW_rec = 2245,
-  VCMPGTUB = 2246,
-  VCMPGTUB_rec = 2247,
-  VCMPGTUD = 2248,
-  VCMPGTUD_rec = 2249,
-  VCMPGTUH = 2250,
-  VCMPGTUH_rec = 2251,
-  VCMPGTUQ = 2252,
-  VCMPGTUQ_rec = 2253,
-  VCMPGTUW = 2254,
-  VCMPGTUW_rec = 2255,
-  VCMPNEB = 2256,
-  VCMPNEB_rec = 2257,
-  VCMPNEH = 2258,
-  VCMPNEH_rec = 2259,
-  VCMPNEW = 2260,
-  VCMPNEW_rec = 2261,
-  VCMPNEZB = 2262,
-  VCMPNEZB_rec = 2263,
-  VCMPNEZH = 2264,
-  VCMPNEZH_rec = 2265,
-  VCMPNEZW = 2266,
-  VCMPNEZW_rec = 2267,
-  VCMPSQ = 2268,
-  VCMPUQ = 2269,
-  VCNTMBB = 2270,
-  VCNTMBD = 2271,
-  VCNTMBH = 2272,
-  VCNTMBW = 2273,
-  VCTSXS = 2274,
-  VCTSXS_0 = 2275,
-  VCTUXS = 2276,
-  VCTUXS_0 = 2277,
-  VCTZB = 2278,
-  VCTZD = 2279,
-  VCTZDM = 2280,
-  VCTZH = 2281,
-  VCTZLSBB = 2282,
-  VCTZW = 2283,
-  VDIVESD = 2284,
-  VDIVESQ = 2285,
-  VDIVESW = 2286,
-  VDIVEUD = 2287,
-  VDIVEUQ = 2288,
-  VDIVEUW = 2289,
-  VDIVSD = 2290,
-  VDIVSQ = 2291,
-  VDIVSW = 2292,
-  VDIVUD = 2293,
-  VDIVUQ = 2294,
-  VDIVUW = 2295,
-  VEQV = 2296,
-  VEXPANDBM = 2297,
-  VEXPANDDM = 2298,
-  VEXPANDHM = 2299,
-  VEXPANDQM = 2300,
-  VEXPANDWM = 2301,
-  VEXPTEFP = 2302,
-  VEXTDDVLX = 2303,
-  VEXTDDVRX = 2304,
-  VEXTDUBVLX = 2305,
-  VEXTDUBVRX = 2306,
-  VEXTDUHVLX = 2307,
-  VEXTDUHVRX = 2308,
-  VEXTDUWVLX = 2309,
-  VEXTDUWVRX = 2310,
-  VEXTRACTBM = 2311,
-  VEXTRACTD = 2312,
-  VEXTRACTDM = 2313,
-  VEXTRACTHM = 2314,
-  VEXTRACTQM = 2315,
-  VEXTRACTUB = 2316,
-  VEXTRACTUH = 2317,
-  VEXTRACTUW = 2318,
-  VEXTRACTWM = 2319,
-  VEXTSB2D = 2320,
-  VEXTSB2Ds = 2321,
-  VEXTSB2W = 2322,
-  VEXTSB2Ws = 2323,
-  VEXTSD2Q = 2324,
-  VEXTSH2D = 2325,
-  VEXTSH2Ds = 2326,
-  VEXTSH2W = 2327,
-  VEXTSH2Ws = 2328,
-  VEXTSW2D = 2329,
-  VEXTSW2Ds = 2330,
-  VEXTUBLX = 2331,
-  VEXTUBRX = 2332,
-  VEXTUHLX = 2333,
-  VEXTUHRX = 2334,
-  VEXTUWLX = 2335,
-  VEXTUWRX = 2336,
-  VGBBD = 2337,
-  VGNB = 2338,
-  VINSBLX = 2339,
-  VINSBRX = 2340,
-  VINSBVLX = 2341,
-  VINSBVRX = 2342,
-  VINSD = 2343,
-  VINSDLX = 2344,
-  VINSDRX = 2345,
-  VINSERTB = 2346,
-  VINSERTD = 2347,
-  VINSERTH = 2348,
-  VINSERTW = 2349,
-  VINSHLX = 2350,
-  VINSHRX = 2351,
-  VINSHVLX = 2352,
-  VINSHVRX = 2353,
-  VINSW = 2354,
-  VINSWLX = 2355,
-  VINSWRX = 2356,
-  VINSWVLX = 2357,
-  VINSWVRX = 2358,
-  VLOGEFP = 2359,
-  VMADDFP = 2360,
-  VMAXFP = 2361,
-  VMAXSB = 2362,
-  VMAXSD = 2363,
-  VMAXSH = 2364,
-  VMAXSW = 2365,
-  VMAXUB = 2366,
-  VMAXUD = 2367,
-  VMAXUH = 2368,
-  VMAXUW = 2369,
-  VMHADDSHS = 2370,
-  VMHRADDSHS = 2371,
-  VMINFP = 2372,
-  VMINSB = 2373,
-  VMINSD = 2374,
-  VMINSH = 2375,
-  VMINSW = 2376,
-  VMINUB = 2377,
-  VMINUD = 2378,
-  VMINUH = 2379,
-  VMINUW = 2380,
-  VMLADDUHM = 2381,
-  VMODSD = 2382,
-  VMODSQ = 2383,
-  VMODSW = 2384,
-  VMODUD = 2385,
-  VMODUQ = 2386,
-  VMODUW = 2387,
-  VMRGEW = 2388,
-  VMRGHB = 2389,
-  VMRGHH = 2390,
-  VMRGHW = 2391,
-  VMRGLB = 2392,
-  VMRGLH = 2393,
-  VMRGLW = 2394,
-  VMRGOW = 2395,
-  VMSUMCUD = 2396,
-  VMSUMMBM = 2397,
-  VMSUMSHM = 2398,
-  VMSUMSHS = 2399,
-  VMSUMUBM = 2400,
-  VMSUMUDM = 2401,
-  VMSUMUHM = 2402,
-  VMSUMUHS = 2403,
-  VMUL10CUQ = 2404,
-  VMUL10ECUQ = 2405,
-  VMUL10EUQ = 2406,
-  VMUL10UQ = 2407,
-  VMULESB = 2408,
-  VMULESD = 2409,
-  VMULESH = 2410,
-  VMULESW = 2411,
-  VMULEUB = 2412,
-  VMULEUD = 2413,
-  VMULEUH = 2414,
-  VMULEUW = 2415,
-  VMULHSD = 2416,
-  VMULHSW = 2417,
-  VMULHUD = 2418,
-  VMULHUW = 2419,
-  VMULLD = 2420,
-  VMULOSB = 2421,
-  VMULOSD = 2422,
-  VMULOSH = 2423,
-  VMULOSW = 2424,
-  VMULOUB = 2425,
-  VMULOUD = 2426,
-  VMULOUH = 2427,
-  VMULOUW = 2428,
-  VMULUWM = 2429,
-  VNAND = 2430,
-  VNCIPHER = 2431,
-  VNCIPHERLAST = 2432,
-  VNEGD = 2433,
-  VNEGW = 2434,
-  VNMSUBFP = 2435,
-  VNOR = 2436,
-  VOR = 2437,
-  VORC = 2438,
-  VPDEPD = 2439,
-  VPERM = 2440,
-  VPERMR = 2441,
-  VPERMXOR = 2442,
-  VPEXTD = 2443,
-  VPKPX = 2444,
-  VPKSDSS = 2445,
-  VPKSDUS = 2446,
-  VPKSHSS = 2447,
-  VPKSHUS = 2448,
-  VPKSWSS = 2449,
-  VPKSWUS = 2450,
-  VPKUDUM = 2451,
-  VPKUDUS = 2452,
-  VPKUHUM = 2453,
-  VPKUHUS = 2454,
-  VPKUWUM = 2455,
-  VPKUWUS = 2456,
-  VPMSUMB = 2457,
-  VPMSUMD = 2458,
-  VPMSUMH = 2459,
-  VPMSUMW = 2460,
-  VPOPCNTB = 2461,
-  VPOPCNTD = 2462,
-  VPOPCNTH = 2463,
-  VPOPCNTW = 2464,
-  VPRTYBD = 2465,
-  VPRTYBQ = 2466,
-  VPRTYBW = 2467,
-  VREFP = 2468,
-  VRFIM = 2469,
-  VRFIN = 2470,
-  VRFIP = 2471,
-  VRFIZ = 2472,
-  VRLB = 2473,
-  VRLD = 2474,
-  VRLDMI = 2475,
-  VRLDNM = 2476,
-  VRLH = 2477,
-  VRLQ = 2478,
-  VRLQMI = 2479,
-  VRLQNM = 2480,
-  VRLW = 2481,
-  VRLWMI = 2482,
-  VRLWNM = 2483,
-  VRSQRTEFP = 2484,
-  VSBOX = 2485,
-  VSEL = 2486,
-  VSHASIGMAD = 2487,
-  VSHASIGMAW = 2488,
-  VSL = 2489,
-  VSLB = 2490,
-  VSLD = 2491,
-  VSLDBI = 2492,
-  VSLDOI = 2493,
-  VSLH = 2494,
-  VSLO = 2495,
-  VSLQ = 2496,
-  VSLV = 2497,
-  VSLW = 2498,
-  VSPLTB = 2499,
-  VSPLTBs = 2500,
-  VSPLTH = 2501,
-  VSPLTHs = 2502,
-  VSPLTISB = 2503,
-  VSPLTISH = 2504,
-  VSPLTISW = 2505,
-  VSPLTW = 2506,
-  VSR = 2507,
-  VSRAB = 2508,
-  VSRAD = 2509,
-  VSRAH = 2510,
-  VSRAQ = 2511,
-  VSRAW = 2512,
-  VSRB = 2513,
-  VSRD = 2514,
-  VSRDBI = 2515,
-  VSRH = 2516,
-  VSRO = 2517,
-  VSRQ = 2518,
-  VSRV = 2519,
-  VSRW = 2520,
-  VSTRIBL = 2521,
-  VSTRIBL_rec = 2522,
-  VSTRIBR = 2523,
-  VSTRIBR_rec = 2524,
-  VSTRIHL = 2525,
-  VSTRIHL_rec = 2526,
-  VSTRIHR = 2527,
-  VSTRIHR_rec = 2528,
-  VSUBCUQ = 2529,
-  VSUBCUW = 2530,
-  VSUBECUQ = 2531,
-  VSUBEUQM = 2532,
-  VSUBFP = 2533,
-  VSUBSBS = 2534,
-  VSUBSHS = 2535,
-  VSUBSWS = 2536,
-  VSUBUBM = 2537,
-  VSUBUBS = 2538,
-  VSUBUDM = 2539,
-  VSUBUHM = 2540,
-  VSUBUHS = 2541,
-  VSUBUQM = 2542,
-  VSUBUWM = 2543,
-  VSUBUWS = 2544,
-  VSUM2SWS = 2545,
-  VSUM4SBS = 2546,
-  VSUM4SHS = 2547,
-  VSUM4UBS = 2548,
-  VSUMSWS = 2549,
-  VUPKHPX = 2550,
-  VUPKHSB = 2551,
-  VUPKHSH = 2552,
-  VUPKHSW = 2553,
-  VUPKLPX = 2554,
-  VUPKLSB = 2555,
-  VUPKLSH = 2556,
-  VUPKLSW = 2557,
-  VXOR = 2558,
-  V_SET0 = 2559,
-  V_SET0B = 2560,
-  V_SET0H = 2561,
-  V_SETALLONES = 2562,
-  V_SETALLONESB = 2563,
-  V_SETALLONESH = 2564,
-  WAIT = 2565,
-  WAITP10 = 2566,
-  WRTEE = 2567,
-  WRTEEI = 2568,
-  XOR = 2569,
-  XOR8 = 2570,
-  XOR8_rec = 2571,
-  XORI = 2572,
-  XORI8 = 2573,
-  XORIS = 2574,
-  XORIS8 = 2575,
-  XOR_rec = 2576,
-  XSABSDP = 2577,
-  XSABSQP = 2578,
-  XSADDDP = 2579,
-  XSADDQP = 2580,
-  XSADDQPO = 2581,
-  XSADDSP = 2582,
-  XSCMPEQDP = 2583,
-  XSCMPEQQP = 2584,
-  XSCMPEXPDP = 2585,
-  XSCMPEXPQP = 2586,
-  XSCMPGEDP = 2587,
-  XSCMPGEQP = 2588,
-  XSCMPGTDP = 2589,
-  XSCMPGTQP = 2590,
-  XSCMPODP = 2591,
-  XSCMPOQP = 2592,
-  XSCMPUDP = 2593,
-  XSCMPUQP = 2594,
-  XSCPSGNDP = 2595,
-  XSCPSGNQP = 2596,
-  XSCVDPHP = 2597,
-  XSCVDPQP = 2598,
-  XSCVDPSP = 2599,
-  XSCVDPSPN = 2600,
-  XSCVDPSXDS = 2601,
-  XSCVDPSXDSs = 2602,
-  XSCVDPSXWS = 2603,
-  XSCVDPSXWSs = 2604,
-  XSCVDPUXDS = 2605,
-  XSCVDPUXDSs = 2606,
-  XSCVDPUXWS = 2607,
-  XSCVDPUXWSs = 2608,
-  XSCVHPDP = 2609,
-  XSCVQPDP = 2610,
-  XSCVQPDPO = 2611,
-  XSCVQPSDZ = 2612,
-  XSCVQPSQZ = 2613,
-  XSCVQPSWZ = 2614,
-  XSCVQPUDZ = 2615,
-  XSCVQPUQZ = 2616,
-  XSCVQPUWZ = 2617,
-  XSCVSDQP = 2618,
-  XSCVSPDP = 2619,
-  XSCVSPDPN = 2620,
-  XSCVSQQP = 2621,
-  XSCVSXDDP = 2622,
-  XSCVSXDSP = 2623,
-  XSCVUDQP = 2624,
-  XSCVUQQP = 2625,
-  XSCVUXDDP = 2626,
-  XSCVUXDSP = 2627,
-  XSDIVDP = 2628,
-  XSDIVQP = 2629,
-  XSDIVQPO = 2630,
-  XSDIVSP = 2631,
-  XSIEXPDP = 2632,
-  XSIEXPQP = 2633,
-  XSMADDADP = 2634,
-  XSMADDASP = 2635,
-  XSMADDMDP = 2636,
-  XSMADDMSP = 2637,
-  XSMADDQP = 2638,
-  XSMADDQPO = 2639,
-  XSMAXCDP = 2640,
-  XSMAXCQP = 2641,
-  XSMAXDP = 2642,
-  XSMAXJDP = 2643,
-  XSMINCDP = 2644,
-  XSMINCQP = 2645,
-  XSMINDP = 2646,
-  XSMINJDP = 2647,
-  XSMSUBADP = 2648,
-  XSMSUBASP = 2649,
-  XSMSUBMDP = 2650,
-  XSMSUBMSP = 2651,
-  XSMSUBQP = 2652,
-  XSMSUBQPO = 2653,
-  XSMULDP = 2654,
-  XSMULQP = 2655,
-  XSMULQPO = 2656,
-  XSMULSP = 2657,
-  XSNABSDP = 2658,
-  XSNABSDPs = 2659,
-  XSNABSQP = 2660,
-  XSNEGDP = 2661,
-  XSNEGQP = 2662,
-  XSNMADDADP = 2663,
-  XSNMADDASP = 2664,
-  XSNMADDMDP = 2665,
-  XSNMADDMSP = 2666,
-  XSNMADDQP = 2667,
-  XSNMADDQPO = 2668,
-  XSNMSUBADP = 2669,
-  XSNMSUBASP = 2670,
-  XSNMSUBMDP = 2671,
-  XSNMSUBMSP = 2672,
-  XSNMSUBQP = 2673,
-  XSNMSUBQPO = 2674,
-  XSRDPI = 2675,
-  XSRDPIC = 2676,
-  XSRDPIM = 2677,
-  XSRDPIP = 2678,
-  XSRDPIZ = 2679,
-  XSREDP = 2680,
-  XSRESP = 2681,
-  XSRQPI = 2682,
-  XSRQPIX = 2683,
-  XSRQPXP = 2684,
-  XSRSP = 2685,
-  XSRSQRTEDP = 2686,
-  XSRSQRTESP = 2687,
-  XSSQRTDP = 2688,
-  XSSQRTQP = 2689,
-  XSSQRTQPO = 2690,
-  XSSQRTSP = 2691,
-  XSSUBDP = 2692,
-  XSSUBQP = 2693,
-  XSSUBQPO = 2694,
-  XSSUBSP = 2695,
-  XSTDIVDP = 2696,
-  XSTSQRTDP = 2697,
-  XSTSTDCDP = 2698,
-  XSTSTDCQP = 2699,
-  XSTSTDCSP = 2700,
-  XSXEXPDP = 2701,
-  XSXEXPQP = 2702,
-  XSXSIGDP = 2703,
-  XSXSIGQP = 2704,
-  XVABSDP = 2705,
-  XVABSSP = 2706,
-  XVADDDP = 2707,
-  XVADDSP = 2708,
-  XVBF16GER2 = 2709,
-  XVBF16GER2NN = 2710,
-  XVBF16GER2NP = 2711,
-  XVBF16GER2PN = 2712,
-  XVBF16GER2PP = 2713,
-  XVBF16GER2W = 2714,
-  XVBF16GER2WNN = 2715,
-  XVBF16GER2WNP = 2716,
-  XVBF16GER2WPN = 2717,
-  XVBF16GER2WPP = 2718,
-  XVCMPEQDP = 2719,
-  XVCMPEQDP_rec = 2720,
-  XVCMPEQSP = 2721,
-  XVCMPEQSP_rec = 2722,
-  XVCMPGEDP = 2723,
-  XVCMPGEDP_rec = 2724,
-  XVCMPGESP = 2725,
-  XVCMPGESP_rec = 2726,
-  XVCMPGTDP = 2727,
-  XVCMPGTDP_rec = 2728,
-  XVCMPGTSP = 2729,
-  XVCMPGTSP_rec = 2730,
-  XVCPSGNDP = 2731,
-  XVCPSGNSP = 2732,
-  XVCVBF16SPN = 2733,
-  XVCVDPSP = 2734,
-  XVCVDPSXDS = 2735,
-  XVCVDPSXWS = 2736,
-  XVCVDPUXDS = 2737,
-  XVCVDPUXWS = 2738,
-  XVCVHPSP = 2739,
-  XVCVSPBF16 = 2740,
-  XVCVSPDP = 2741,
-  XVCVSPHP = 2742,
-  XVCVSPSXDS = 2743,
-  XVCVSPSXWS = 2744,
-  XVCVSPUXDS = 2745,
-  XVCVSPUXWS = 2746,
-  XVCVSXDDP = 2747,
-  XVCVSXDSP = 2748,
-  XVCVSXWDP = 2749,
-  XVCVSXWSP = 2750,
-  XVCVUXDDP = 2751,
-  XVCVUXDSP = 2752,
-  XVCVUXWDP = 2753,
-  XVCVUXWSP = 2754,
-  XVDIVDP = 2755,
-  XVDIVSP = 2756,
-  XVF16GER2 = 2757,
-  XVF16GER2NN = 2758,
-  XVF16GER2NP = 2759,
-  XVF16GER2PN = 2760,
-  XVF16GER2PP = 2761,
-  XVF16GER2W = 2762,
-  XVF16GER2WNN = 2763,
-  XVF16GER2WNP = 2764,
-  XVF16GER2WPN = 2765,
-  XVF16GER2WPP = 2766,
-  XVF32GER = 2767,
-  XVF32GERNN = 2768,
-  XVF32GERNP = 2769,
-  XVF32GERPN = 2770,
-  XVF32GERPP = 2771,
-  XVF32GERW = 2772,
-  XVF32GERWNN = 2773,
-  XVF32GERWNP = 2774,
-  XVF32GERWPN = 2775,
-  XVF32GERWPP = 2776,
-  XVF64GER = 2777,
-  XVF64GERNN = 2778,
-  XVF64GERNP = 2779,
-  XVF64GERPN = 2780,
-  XVF64GERPP = 2781,
-  XVF64GERW = 2782,
-  XVF64GERWNN = 2783,
-  XVF64GERWNP = 2784,
-  XVF64GERWPN = 2785,
-  XVF64GERWPP = 2786,
-  XVI16GER2 = 2787,
-  XVI16GER2PP = 2788,
-  XVI16GER2S = 2789,
-  XVI16GER2SPP = 2790,
-  XVI16GER2SW = 2791,
-  XVI16GER2SWPP = 2792,
-  XVI16GER2W = 2793,
-  XVI16GER2WPP = 2794,
-  XVI4GER8 = 2795,
-  XVI4GER8PP = 2796,
-  XVI4GER8W = 2797,
-  XVI4GER8WPP = 2798,
-  XVI8GER4 = 2799,
-  XVI8GER4PP = 2800,
-  XVI8GER4SPP = 2801,
-  XVI8GER4W = 2802,
-  XVI8GER4WPP = 2803,
-  XVI8GER4WSPP = 2804,
-  XVIEXPDP = 2805,
-  XVIEXPSP = 2806,
-  XVMADDADP = 2807,
-  XVMADDASP = 2808,
-  XVMADDMDP = 2809,
-  XVMADDMSP = 2810,
-  XVMAXDP = 2811,
-  XVMAXSP = 2812,
-  XVMINDP = 2813,
-  XVMINSP = 2814,
-  XVMSUBADP = 2815,
-  XVMSUBASP = 2816,
-  XVMSUBMDP = 2817,
-  XVMSUBMSP = 2818,
-  XVMULDP = 2819,
-  XVMULSP = 2820,
-  XVNABSDP = 2821,
-  XVNABSSP = 2822,
-  XVNEGDP = 2823,
-  XVNEGSP = 2824,
-  XVNMADDADP = 2825,
-  XVNMADDASP = 2826,
-  XVNMADDMDP = 2827,
-  XVNMADDMSP = 2828,
-  XVNMSUBADP = 2829,
-  XVNMSUBASP = 2830,
-  XVNMSUBMDP = 2831,
-  XVNMSUBMSP = 2832,
-  XVRDPI = 2833,
-  XVRDPIC = 2834,
-  XVRDPIM = 2835,
-  XVRDPIP = 2836,
-  XVRDPIZ = 2837,
-  XVREDP = 2838,
-  XVRESP = 2839,
-  XVRSPI = 2840,
-  XVRSPIC = 2841,
-  XVRSPIM = 2842,
-  XVRSPIP = 2843,
-  XVRSPIZ = 2844,
-  XVRSQRTEDP = 2845,
-  XVRSQRTESP = 2846,
-  XVSQRTDP = 2847,
-  XVSQRTSP = 2848,
-  XVSUBDP = 2849,
-  XVSUBSP = 2850,
-  XVTDIVDP = 2851,
-  XVTDIVSP = 2852,
-  XVTLSBB = 2853,
-  XVTSQRTDP = 2854,
-  XVTSQRTSP = 2855,
-  XVTSTDCDP = 2856,
-  XVTSTDCSP = 2857,
-  XVXEXPDP = 2858,
-  XVXEXPSP = 2859,
-  XVXSIGDP = 2860,
-  XVXSIGSP = 2861,
-  XXBLENDVB = 2862,
-  XXBLENDVD = 2863,
-  XXBLENDVH = 2864,
-  XXBLENDVW = 2865,
-  XXBRD = 2866,
-  XXBRH = 2867,
-  XXBRQ = 2868,
-  XXBRW = 2869,
-  XXEVAL = 2870,
-  XXEXTRACTUW = 2871,
-  XXGENPCVBM = 2872,
-  XXGENPCVDM = 2873,
-  XXGENPCVHM = 2874,
-  XXGENPCVWM = 2875,
-  XXINSERTW = 2876,
-  XXLAND = 2877,
-  XXLANDC = 2878,
-  XXLEQV = 2879,
-  XXLEQVOnes = 2880,
-  XXLNAND = 2881,
-  XXLNOR = 2882,
-  XXLOR = 2883,
-  XXLORC = 2884,
-  XXLORf = 2885,
-  XXLXOR = 2886,
-  XXLXORdpz = 2887,
-  XXLXORspz = 2888,
-  XXLXORz = 2889,
-  XXMFACC = 2890,
-  XXMFACCW = 2891,
-  XXMRGHW = 2892,
-  XXMRGLW = 2893,
-  XXMTACC = 2894,
-  XXMTACCW = 2895,
-  XXPERM = 2896,
-  XXPERMDI = 2897,
-  XXPERMDIs = 2898,
-  XXPERMR = 2899,
-  XXPERMX = 2900,
-  XXSEL = 2901,
-  XXSETACCZ = 2902,
-  XXSLDWI = 2903,
-  XXSLDWIs = 2904,
-  XXSPLTI32DX = 2905,
-  XXSPLTIB = 2906,
-  XXSPLTIDP = 2907,
-  XXSPLTIW = 2908,
-  XXSPLTW = 2909,
-  XXSPLTWs = 2910,
-  gBC = 2911,
-  gBCA = 2912,
-  gBCAat = 2913,
-  gBCCTR = 2914,
-  gBCCTRL = 2915,
-  gBCL = 2916,
-  gBCLA = 2917,
-  gBCLAat = 2918,
-  gBCLR = 2919,
-  gBCLRL = 2920,
-  gBCLat = 2921,
-  gBCat = 2922,
-  INSTRUCTION_LIST_END = 2923,
+  COPY_LANEMASK = 21,
+  BUNDLE = 22,
+  LIFETIME_START = 23,
+  LIFETIME_END = 24,
+  PSEUDO_PROBE = 25,
+  ARITH_FENCE = 26,
+  STACKMAP = 27,
+  FENTRY_CALL = 28,
+  PATCHPOINT = 29,
+  LOAD_STACK_GUARD = 30,
+  PREALLOCATED_SETUP = 31,
+  PREALLOCATED_ARG = 32,
+  STATEPOINT = 33,
+  LOCAL_ESCAPE = 34,
+  FAULTING_OP = 35,
+  PATCHABLE_OP = 36,
+  PATCHABLE_FUNCTION_ENTER = 37,
+  PATCHABLE_RET = 38,
+  PATCHABLE_FUNCTION_EXIT = 39,
+  PATCHABLE_TAIL_CALL = 40,
+  PATCHABLE_EVENT_CALL = 41,
+  PATCHABLE_TYPED_EVENT_CALL = 42,
+  ICALL_BRANCH_FUNNEL = 43,
+  FAKE_USE = 44,
+  MEMBARRIER = 45,
+  JUMP_TABLE_DEBUG_INFO = 46,
+  RELOC_NONE = 47,
+  CONVERGENCECTRL_ENTRY = 48,
+  CONVERGENCECTRL_ANCHOR = 49,
+  CONVERGENCECTRL_LOOP = 50,
+  CONVERGENCECTRL_GLUE = 51,
+  G_ASSERT_SEXT = 52,
+  G_ASSERT_ZEXT = 53,
+  G_ASSERT_ALIGN = 54,
+  G_ADD = 55,
+  G_SUB = 56,
+  G_MUL = 57,
+  G_SDIV = 58,
+  G_UDIV = 59,
+  G_SREM = 60,
+  G_UREM = 61,
+  G_SDIVREM = 62,
+  G_UDIVREM = 63,
+  G_AND = 64,
+  G_OR = 65,
+  G_XOR = 66,
+  G_ABDS = 67,
+  G_ABDU = 68,
+  G_UAVGFLOOR = 69,
+  G_UAVGCEIL = 70,
+  G_SAVGFLOOR = 71,
+  G_SAVGCEIL = 72,
+  G_IMPLICIT_DEF = 73,
+  G_PHI = 74,
+  G_FRAME_INDEX = 75,
+  G_GLOBAL_VALUE = 76,
+  G_PTRAUTH_GLOBAL_VALUE = 77,
+  G_CONSTANT_POOL = 78,
+  G_EXTRACT = 79,
+  G_UNMERGE_VALUES = 80,
+  G_INSERT = 81,
+  G_MERGE_VALUES = 82,
+  G_BUILD_VECTOR = 83,
+  G_BUILD_VECTOR_TRUNC = 84,
+  G_CONCAT_VECTORS = 85,
+  G_PTRTOINT = 86,
+  G_INTTOPTR = 87,
+  G_BITCAST = 88,
+  G_FREEZE = 89,
+  G_CONSTANT_FOLD_BARRIER = 90,
+  G_INTRINSIC_FPTRUNC_ROUND = 91,
+  G_INTRINSIC_TRUNC = 92,
+  G_INTRINSIC_ROUND = 93,
+  G_INTRINSIC_LRINT = 94,
+  G_INTRINSIC_LLRINT = 95,
+  G_INTRINSIC_ROUNDEVEN = 96,
+  G_READCYCLECOUNTER = 97,
+  G_READSTEADYCOUNTER = 98,
+  G_LOAD = 99,
+  G_SEXTLOAD = 100,
+  G_ZEXTLOAD = 101,
+  G_INDEXED_LOAD = 102,
+  G_INDEXED_SEXTLOAD = 103,
+  G_INDEXED_ZEXTLOAD = 104,
+  G_STORE = 105,
+  G_INDEXED_STORE = 106,
+  G_ATOMIC_CMPXCHG_WITH_SUCCESS = 107,
+  G_ATOMIC_CMPXCHG = 108,
+  G_ATOMICRMW_XCHG = 109,
+  G_ATOMICRMW_ADD = 110,
+  G_ATOMICRMW_SUB = 111,
+  G_ATOMICRMW_AND = 112,
+  G_ATOMICRMW_NAND = 113,
+  G_ATOMICRMW_OR = 114,
+  G_ATOMICRMW_XOR = 115,
+  G_ATOMICRMW_MAX = 116,
+  G_ATOMICRMW_MIN = 117,
+  G_ATOMICRMW_UMAX = 118,
+  G_ATOMICRMW_UMIN = 119,
+  G_ATOMICRMW_FADD = 120,
+  G_ATOMICRMW_FSUB = 121,
+  G_ATOMICRMW_FMAX = 122,
+  G_ATOMICRMW_FMIN = 123,
+  G_ATOMICRMW_FMAXIMUM = 124,
+  G_ATOMICRMW_FMINIMUM = 125,
+  G_ATOMICRMW_UINC_WRAP = 126,
+  G_ATOMICRMW_UDEC_WRAP = 127,
+  G_ATOMICRMW_USUB_COND = 128,
+  G_ATOMICRMW_USUB_SAT = 129,
+  G_FENCE = 130,
+  G_PREFETCH = 131,
+  G_BRCOND = 132,
+  G_BRINDIRECT = 133,
+  G_INVOKE_REGION_START = 134,
+  G_INTRINSIC = 135,
+  G_INTRINSIC_W_SIDE_EFFECTS = 136,
+  G_INTRINSIC_CONVERGENT = 137,
+  G_INTRINSIC_CONVERGENT_W_SIDE_EFFECTS = 138,
+  G_ANYEXT = 139,
+  G_TRUNC = 140,
+  G_TRUNC_SSAT_S = 141,
+  G_TRUNC_SSAT_U = 142,
+  G_TRUNC_USAT_U = 143,
+  G_CONSTANT = 144,
+  G_FCONSTANT = 145,
+  G_VASTART = 146,
+  G_VAARG = 147,
+  G_SEXT = 148,
+  G_SEXT_INREG = 149,
+  G_ZEXT = 150,
+  G_SHL = 151,
+  G_LSHR = 152,
+  G_ASHR = 153,
+  G_FSHL = 154,
+  G_FSHR = 155,
+  G_ROTR = 156,
+  G_ROTL = 157,
+  G_ICMP = 158,
+  G_FCMP = 159,
+  G_SCMP = 160,
+  G_UCMP = 161,
+  G_SELECT = 162,
+  G_UADDO = 163,
+  G_UADDE = 164,
+  G_USUBO = 165,
+  G_USUBE = 166,
+  G_SADDO = 167,
+  G_SADDE = 168,
+  G_SSUBO = 169,
+  G_SSUBE = 170,
+  G_UMULO = 171,
+  G_SMULO = 172,
+  G_UMULH = 173,
+  G_SMULH = 174,
+  G_UADDSAT = 175,
+  G_SADDSAT = 176,
+  G_USUBSAT = 177,
+  G_SSUBSAT = 178,
+  G_USHLSAT = 179,
+  G_SSHLSAT = 180,
+  G_SMULFIX = 181,
+  G_UMULFIX = 182,
+  G_SMULFIXSAT = 183,
+  G_UMULFIXSAT = 184,
+  G_SDIVFIX = 185,
+  G_UDIVFIX = 186,
+  G_SDIVFIXSAT = 187,
+  G_UDIVFIXSAT = 188,
+  G_FADD = 189,
+  G_FSUB = 190,
+  G_FMUL = 191,
+  G_FMA = 192,
+  G_FMAD = 193,
+  G_FDIV = 194,
+  G_FREM = 195,
+  G_FMODF = 196,
+  G_FPOW = 197,
+  G_FPOWI = 198,
+  G_FEXP = 199,
+  G_FEXP2 = 200,
+  G_FEXP10 = 201,
+  G_FLOG = 202,
+  G_FLOG2 = 203,
+  G_FLOG10 = 204,
+  G_FLDEXP = 205,
+  G_FFREXP = 206,
+  G_FNEG = 207,
+  G_FPEXT = 208,
+  G_FPTRUNC = 209,
+  G_FPTOSI = 210,
+  G_FPTOUI = 211,
+  G_SITOFP = 212,
+  G_UITOFP = 213,
+  G_FPTOSI_SAT = 214,
+  G_FPTOUI_SAT = 215,
+  G_FABS = 216,
+  G_FCOPYSIGN = 217,
+  G_IS_FPCLASS = 218,
+  G_FCANONICALIZE = 219,
+  G_FMINNUM = 220,
+  G_FMAXNUM = 221,
+  G_FMINNUM_IEEE = 222,
+  G_FMAXNUM_IEEE = 223,
+  G_FMINIMUM = 224,
+  G_FMAXIMUM = 225,
+  G_FMINIMUMNUM = 226,
+  G_FMAXIMUMNUM = 227,
+  G_GET_FPENV = 228,
+  G_SET_FPENV = 229,
+  G_RESET_FPENV = 230,
+  G_GET_FPMODE = 231,
+  G_SET_FPMODE = 232,
+  G_RESET_FPMODE = 233,
+  G_GET_ROUNDING = 234,
+  G_SET_ROUNDING = 235,
+  G_PTR_ADD = 236,
+  G_PTRMASK = 237,
+  G_SMIN = 238,
+  G_SMAX = 239,
+  G_UMIN = 240,
+  G_UMAX = 241,
+  G_ABS = 242,
+  G_LROUND = 243,
+  G_LLROUND = 244,
+  G_BR = 245,
+  G_BRJT = 246,
+  G_VSCALE = 247,
+  G_INSERT_SUBVECTOR = 248,
+  G_EXTRACT_SUBVECTOR = 249,
+  G_INSERT_VECTOR_ELT = 250,
+  G_EXTRACT_VECTOR_ELT = 251,
+  G_SHUFFLE_VECTOR = 252,
+  G_SPLAT_VECTOR = 253,
+  G_STEP_VECTOR = 254,
+  G_VECTOR_COMPRESS = 255,
+  G_CTTZ = 256,
+  G_CTTZ_ZERO_UNDEF = 257,
+  G_CTLZ = 258,
+  G_CTLZ_ZERO_UNDEF = 259,
+  G_CTPOP = 260,
+  G_BSWAP = 261,
+  G_BITREVERSE = 262,
+  G_FCEIL = 263,
+  G_FCOS = 264,
+  G_FSIN = 265,
+  G_FSINCOS = 266,
+  G_FTAN = 267,
+  G_FACOS = 268,
+  G_FASIN = 269,
+  G_FATAN = 270,
+  G_FATAN2 = 271,
+  G_FCOSH = 272,
+  G_FSINH = 273,
+  G_FTANH = 274,
+  G_FSQRT = 275,
+  G_FFLOOR = 276,
+  G_FRINT = 277,
+  G_FNEARBYINT = 278,
+  G_ADDRSPACE_CAST = 279,
+  G_BLOCK_ADDR = 280,
+  G_JUMP_TABLE = 281,
+  G_DYN_STACKALLOC = 282,
+  G_STACKSAVE = 283,
+  G_STACKRESTORE = 284,
+  G_STRICT_FADD = 285,
+  G_STRICT_FSUB = 286,
+  G_STRICT_FMUL = 287,
+  G_STRICT_FDIV = 288,
+  G_STRICT_FREM = 289,
+  G_STRICT_FMA = 290,
+  G_STRICT_FSQRT = 291,
+  G_STRICT_FLDEXP = 292,
+  G_READ_REGISTER = 293,
+  G_WRITE_REGISTER = 294,
+  G_MEMCPY = 295,
+  G_MEMCPY_INLINE = 296,
+  G_MEMMOVE = 297,
+  G_MEMSET = 298,
+  G_BZERO = 299,
+  G_TRAP = 300,
+  G_DEBUGTRAP = 301,
+  G_UBSANTRAP = 302,
+  G_VECREDUCE_SEQ_FADD = 303,
+  G_VECREDUCE_SEQ_FMUL = 304,
+  G_VECREDUCE_FADD = 305,
+  G_VECREDUCE_FMUL = 306,
+  G_VECREDUCE_FMAX = 307,
+  G_VECREDUCE_FMIN = 308,
+  G_VECREDUCE_FMAXIMUM = 309,
+  G_VECREDUCE_FMINIMUM = 310,
+  G_VECREDUCE_ADD = 311,
+  G_VECREDUCE_MUL = 312,
+  G_VECREDUCE_AND = 313,
+  G_VECREDUCE_OR = 314,
+  G_VECREDUCE_XOR = 315,
+  G_VECREDUCE_SMAX = 316,
+  G_VECREDUCE_SMIN = 317,
+  G_VECREDUCE_UMAX = 318,
+  G_VECREDUCE_UMIN = 319,
+  G_SBFX = 320,
+  G_UBFX = 321,
+  ATOMIC_CMP_SWAP_I128 = 322,
+  ATOMIC_LOAD_ADD_I128 = 323,
+  ATOMIC_LOAD_AND_I128 = 324,
+  ATOMIC_LOAD_NAND_I128 = 325,
+  ATOMIC_LOAD_OR_I128 = 326,
+  ATOMIC_LOAD_SUB_I128 = 327,
+  ATOMIC_LOAD_XOR_I128 = 328,
+  ATOMIC_SWAP_I128 = 329,
+  BUILD_QUADWORD = 330,
+  BUILD_UACC = 331,
+  CFENCE = 332,
+  CFENCE8 = 333,
+  CLRLSLDI = 334,
+  CLRLSLDI_rec = 335,
+  CLRLSLWI = 336,
+  CLRLSLWI_rec = 337,
+  CLRRDI = 338,
+  CLRRDI_rec = 339,
+  CLRRWI = 340,
+  CLRRWI_rec = 341,
+  DCBFL = 342,
+  DCBFLP = 343,
+  DCBFPS = 344,
+  DCBFx = 345,
+  DCBSTPS = 346,
+  DCBTCT = 347,
+  DCBTDS = 348,
+  DCBTSTCT = 349,
+  DCBTSTDS = 350,
+  DCBTSTT = 351,
+  DCBTSTx = 352,
+  DCBTT = 353,
+  DCBTx = 354,
+  DFLOADf32 = 355,
+  DFLOADf64 = 356,
+  DFSTOREf32 = 357,
+  DFSTOREf64 = 358,
+  EXTLDI = 359,
+  EXTLDI_rec = 360,
+  EXTLWI = 361,
+  EXTLWI_rec = 362,
+  EXTRDI = 363,
+  EXTRDI_rec = 364,
+  EXTRWI = 365,
+  EXTRWI_rec = 366,
+  INSLWI = 367,
+  INSLWI_rec = 368,
+  INSRDI = 369,
+  INSRDI_rec = 370,
+  INSRWI = 371,
+  INSRWI_rec = 372,
+  KILL_PAIR = 373,
+  LAx = 374,
+  LIWAX = 375,
+  LIWZX = 376,
+  PPCLdFixedAddr = 377,
+  PSUBI = 378,
+  RLWIMIbm = 379,
+  RLWIMIbm_rec = 380,
+  RLWINMbm = 381,
+  RLWINMbm_rec = 382,
+  RLWNMbm = 383,
+  RLWNMbm_rec = 384,
+  ROTRDI = 385,
+  ROTRDI_rec = 386,
+  ROTRWI = 387,
+  ROTRWI_rec = 388,
+  SLDI = 389,
+  SLDI_rec = 390,
+  SLWI = 391,
+  SLWI_rec = 392,
+  SPILLTOVSR_LD = 393,
+  SPILLTOVSR_LDX = 394,
+  SPILLTOVSR_ST = 395,
+  SPILLTOVSR_STX = 396,
+  SRDI = 397,
+  SRDI_rec = 398,
+  SRWI = 399,
+  SRWI_rec = 400,
+  STIWX = 401,
+  SUBI = 402,
+  SUBIC = 403,
+  SUBIC_rec = 404,
+  SUBIS = 405,
+  SUBPCIS = 406,
+  XFLOADf32 = 407,
+  XFLOADf64 = 408,
+  XFSTOREf32 = 409,
+  XFSTOREf64 = 410,
+  ADD4 = 411,
+  ADD4O = 412,
+  ADD4O_rec = 413,
+  ADD4TLS = 414,
+  ADD4_rec = 415,
+  ADD8 = 416,
+  ADD8O = 417,
+  ADD8O_rec = 418,
+  ADD8TLS = 419,
+  ADD8TLS_ = 420,
+  ADD8_rec = 421,
+  ADDC = 422,
+  ADDC8 = 423,
+  ADDC8O = 424,
+  ADDC8O_rec = 425,
+  ADDC8_rec = 426,
+  ADDCO = 427,
+  ADDCO_rec = 428,
+  ADDC_rec = 429,
+  ADDE = 430,
+  ADDE8 = 431,
+  ADDE8O = 432,
+  ADDE8O_rec = 433,
+  ADDE8_rec = 434,
+  ADDEO = 435,
+  ADDEO_rec = 436,
+  ADDEX = 437,
+  ADDEX8 = 438,
+  ADDE_rec = 439,
+  ADDG6S = 440,
+  ADDG6S8 = 441,
+  ADDI = 442,
+  ADDI8 = 443,
+  ADDIC = 444,
+  ADDIC8 = 445,
+  ADDIC_rec = 446,
+  ADDIS = 447,
+  ADDIS8 = 448,
+  ADDISdtprelHA = 449,
+  ADDISdtprelHA32 = 450,
+  ADDISgotTprelHA = 451,
+  ADDIStlsgdHA = 452,
+  ADDIStlsldHA = 453,
+  ADDIStocHA = 454,
+  ADDIStocHA8 = 455,
+  ADDIdtprelL = 456,
+  ADDIdtprelL32 = 457,
+  ADDItlsgdL = 458,
+  ADDItlsgdL32 = 459,
+  ADDItlsgdLADDR = 460,
+  ADDItlsgdLADDR32 = 461,
+  ADDItlsldL = 462,
+  ADDItlsldL32 = 463,
+  ADDItlsldLADDR = 464,
+  ADDItlsldLADDR32 = 465,
+  ADDItoc = 466,
+  ADDItoc8 = 467,
+  ADDItocL = 468,
+  ADDItocL8 = 469,
+  ADDME = 470,
+  ADDME8 = 471,
+  ADDME8O = 472,
+  ADDME8O_rec = 473,
+  ADDME8_rec = 474,
+  ADDMEO = 475,
+  ADDMEO_rec = 476,
+  ADDME_rec = 477,
+  ADDPCIS = 478,
+  ADDZE = 479,
+  ADDZE8 = 480,
+  ADDZE8O = 481,
+  ADDZE8O_rec = 482,
+  ADDZE8_rec = 483,
+  ADDZEO = 484,
+  ADDZEO_rec = 485,
+  ADDZE_rec = 486,
+  ADJCALLSTACKDOWN = 487,
+  ADJCALLSTACKUP = 488,
+  AND = 489,
+  AND8 = 490,
+  AND8_rec = 491,
+  ANDC = 492,
+  ANDC8 = 493,
+  ANDC8_rec = 494,
+  ANDC_rec = 495,
+  ANDI8_rec = 496,
+  ANDIS8_rec = 497,
+  ANDIS_rec = 498,
+  ANDI_rec = 499,
+  ANDI_rec_1_EQ_BIT = 500,
+  ANDI_rec_1_EQ_BIT8 = 501,
+  ANDI_rec_1_GT_BIT = 502,
+  ANDI_rec_1_GT_BIT8 = 503,
+  AND_rec = 504,
+  ATOMIC_CMP_SWAP_I16 = 505,
+  ATOMIC_CMP_SWAP_I32 = 506,
+  ATOMIC_CMP_SWAP_I64 = 507,
+  ATOMIC_CMP_SWAP_I8 = 508,
+  ATOMIC_LOAD_ADD_I16 = 509,
+  ATOMIC_LOAD_ADD_I32 = 510,
+  ATOMIC_LOAD_ADD_I64 = 511,
+  ATOMIC_LOAD_ADD_I8 = 512,
+  ATOMIC_LOAD_AND_I16 = 513,
+  ATOMIC_LOAD_AND_I32 = 514,
+  ATOMIC_LOAD_AND_I64 = 515,
+  ATOMIC_LOAD_AND_I8 = 516,
+  ATOMIC_LOAD_MAX_I16 = 517,
+  ATOMIC_LOAD_MAX_I32 = 518,
+  ATOMIC_LOAD_MAX_I64 = 519,
+  ATOMIC_LOAD_MAX_I8 = 520,
+  ATOMIC_LOAD_MIN_I16 = 521,
+  ATOMIC_LOAD_MIN_I32 = 522,
+  ATOMIC_LOAD_MIN_I64 = 523,
+  ATOMIC_LOAD_MIN_I8 = 524,
+  ATOMIC_LOAD_NAND_I16 = 525,
+  ATOMIC_LOAD_NAND_I32 = 526,
+  ATOMIC_LOAD_NAND_I64 = 527,
+  ATOMIC_LOAD_NAND_I8 = 528,
+  ATOMIC_LOAD_OR_I16 = 529,
+  ATOMIC_LOAD_OR_I32 = 530,
+  ATOMIC_LOAD_OR_I64 = 531,
+  ATOMIC_LOAD_OR_I8 = 532,
+  ATOMIC_LOAD_SUB_I16 = 533,
+  ATOMIC_LOAD_SUB_I32 = 534,
+  ATOMIC_LOAD_SUB_I64 = 535,
+  ATOMIC_LOAD_SUB_I8 = 536,
+  ATOMIC_LOAD_UMAX_I16 = 537,
+  ATOMIC_LOAD_UMAX_I32 = 538,
+  ATOMIC_LOAD_UMAX_I64 = 539,
+  ATOMIC_LOAD_UMAX_I8 = 540,
+  ATOMIC_LOAD_UMIN_I16 = 541,
+  ATOMIC_LOAD_UMIN_I32 = 542,
+  ATOMIC_LOAD_UMIN_I64 = 543,
+  ATOMIC_LOAD_UMIN_I8 = 544,
+  ATOMIC_LOAD_XOR_I16 = 545,
+  ATOMIC_LOAD_XOR_I32 = 546,
+  ATOMIC_LOAD_XOR_I64 = 547,
+  ATOMIC_LOAD_XOR_I8 = 548,
+  ATOMIC_SWAP_I16 = 549,
+  ATOMIC_SWAP_I32 = 550,
+  ATOMIC_SWAP_I64 = 551,
+  ATOMIC_SWAP_I8 = 552,
+  ATTN = 553,
+  B = 554,
+  BA = 555,
+  BC = 556,
+  BCC = 557,
+  BCCA = 558,
+  BCCCTR = 559,
+  BCCCTR8 = 560,
+  BCCCTRL = 561,
+  BCCCTRL8 = 562,
+  BCCL = 563,
+  BCCLA = 564,
+  BCCLR = 565,
+  BCCLRL = 566,
+  BCCTR = 567,
+  BCCTR8 = 568,
+  BCCTR8n = 569,
+  BCCTRL = 570,
+  BCCTRL8 = 571,
+  BCCTRL8n = 572,
+  BCCTRLn = 573,
+  BCCTRn = 574,
+  BCDADD_rec = 575,
+  BCDCFN_rec = 576,
+  BCDCFSQ_rec = 577,
+  BCDCFZ_rec = 578,
+  BCDCPSGN_rec = 579,
+  BCDCTN_rec = 580,
+  BCDCTSQ_rec = 581,
+  BCDCTZ_rec = 582,
+  BCDSETSGN_rec = 583,
+  BCDSR_rec = 584,
+  BCDSUB_rec = 585,
+  BCDS_rec = 586,
+  BCDTRUNC_rec = 587,
+  BCDUS_rec = 588,
+  BCDUTRUNC_rec = 589,
+  BCL = 590,
+  BCLR = 591,
+  BCLRL = 592,
+  BCLRLn = 593,
+  BCLRn = 594,
+  BCLalways = 595,
+  BCLn = 596,
+  BCTR = 597,
+  BCTR8 = 598,
+  BCTRL = 599,
+  BCTRL8 = 600,
+  BCTRL8_LDinto_toc = 601,
+  BCTRL8_LDinto_toc_RM = 602,
+  BCTRL8_RM = 603,
+  BCTRL_LWZinto_toc = 604,
+  BCTRL_LWZinto_toc_RM = 605,
+  BCTRL_RM = 606,
+  BCn = 607,
+  BDNZ = 608,
+  BDNZ8 = 609,
+  BDNZA = 610,
+  BDNZAm = 611,
+  BDNZAp = 612,
+  BDNZL = 613,
+  BDNZLA = 614,
+  BDNZLAm = 615,
+  BDNZLAp = 616,
+  BDNZLR = 617,
+  BDNZLR8 = 618,
+  BDNZLRL = 619,
+  BDNZLRLm = 620,
+  BDNZLRLp = 621,
+  BDNZLRm = 622,
+  BDNZLRp = 623,
+  BDNZLm = 624,
+  BDNZLp = 625,
+  BDNZm = 626,
+  BDNZp = 627,
+  BDZ = 628,
+  BDZ8 = 629,
+  BDZA = 630,
+  BDZAm = 631,
+  BDZAp = 632,
+  BDZL = 633,
+  BDZLA = 634,
+  BDZLAm = 635,
+  BDZLAp = 636,
+  BDZLR = 637,
+  BDZLR8 = 638,
+  BDZLRL = 639,
+  BDZLRLm = 640,
+  BDZLRLp = 641,
+  BDZLRm = 642,
+  BDZLRp = 643,
+  BDZLm = 644,
+  BDZLp = 645,
+  BDZm = 646,
+  BDZp = 647,
+  BL = 648,
+  BL8 = 649,
+  BL8_NOP = 650,
+  BL8_NOP_RM = 651,
+  BL8_NOP_TLS = 652,
+  BL8_NOTOC = 653,
+  BL8_NOTOC_RM = 654,
+  BL8_NOTOC_TLS = 655,
+  BL8_RM = 656,
+  BL8_TLS = 657,
+  BL8_TLS_ = 658,
+  BLA = 659,
+  BLA8 = 660,
+  BLA8_NOP = 661,
+  BLA8_NOP_RM = 662,
+  BLA8_RM = 663,
+  BLA_RM = 664,
+  BLR = 665,
+  BLR8 = 666,
+  BLRL = 667,
+  BL_NOP = 668,
+  BL_NOP_RM = 669,
+  BL_RM = 670,
+  BL_TLS = 671,
+  BPERMD = 672,
+  BRD = 673,
+  BRH = 674,
+  BRH8 = 675,
+  BRINC = 676,
+  BRW = 677,
+  BRW8 = 678,
+  CBCDTD = 679,
+  CBCDTD8 = 680,
+  CDTBCD = 681,
+  CDTBCD8 = 682,
+  CFUGED = 683,
+  CLRBHRB = 684,
+  CMPB = 685,
+  CMPB8 = 686,
+  CMPD = 687,
+  CMPDI = 688,
+  CMPEQB = 689,
+  CMPLD = 690,
+  CMPLDI = 691,
+  CMPLW = 692,
+  CMPLWI = 693,
+  CMPRB = 694,
+  CMPRB8 = 695,
+  CMPW = 696,
+  CMPWI = 697,
+  CNTLZD = 698,
+  CNTLZDM = 699,
+  CNTLZD_rec = 700,
+  CNTLZW = 701,
+  CNTLZW8 = 702,
+  CNTLZW8_rec = 703,
+  CNTLZW_rec = 704,
+  CNTTZD = 705,
+  CNTTZDM = 706,
+  CNTTZD_rec = 707,
+  CNTTZW = 708,
+  CNTTZW8 = 709,
+  CNTTZW8_rec = 710,
+  CNTTZW_rec = 711,
+  CP_ABORT = 712,
+  CP_COPY = 713,
+  CP_COPY8 = 714,
+  CP_PASTE8_rec = 715,
+  CP_PASTE_rec = 716,
+  CR6SET = 717,
+  CR6UNSET = 718,
+  CRAND = 719,
+  CRANDC = 720,
+  CREQV = 721,
+  CRNAND = 722,
+  CRNOR = 723,
+  CRNOT = 724,
+  CROR = 725,
+  CRORC = 726,
+  CRSET = 727,
+  CRUNSET = 728,
+  CRXOR = 729,
+  CTRL_DEP = 730,
+  DADD = 731,
+  DADDQ = 732,
+  DADDQ_rec = 733,
+  DADD_rec = 734,
+  DARN = 735,
+  DCBA = 736,
+  DCBF = 737,
+  DCBFEP = 738,
+  DCBI = 739,
+  DCBST = 740,
+  DCBSTEP = 741,
+  DCBT = 742,
+  DCBTEP = 743,
+  DCBTST = 744,
+  DCBTSTEP = 745,
+  DCBZ = 746,
+  DCBZEP = 747,
+  DCBZL = 748,
+  DCBZLEP = 749,
+  DCCCI = 750,
+  DCFFIX = 751,
+  DCFFIXQ = 752,
+  DCFFIXQQ = 753,
+  DCFFIXQ_rec = 754,
+  DCFFIX_rec = 755,
+  DCMPO = 756,
+  DCMPOQ = 757,
+  DCMPU = 758,
+  DCMPUQ = 759,
+  DCTDP = 760,
+  DCTDP_rec = 761,
+  DCTFIX = 762,
+  DCTFIXQ = 763,
+  DCTFIXQQ = 764,
+  DCTFIXQ_rec = 765,
+  DCTFIX_rec = 766,
+  DCTQPQ = 767,
+  DCTQPQ_rec = 768,
+  DDEDPD = 769,
+  DDEDPDQ = 770,
+  DDEDPDQ_rec = 771,
+  DDEDPD_rec = 772,
+  DDIV = 773,
+  DDIVQ = 774,
+  DDIVQ_rec = 775,
+  DDIV_rec = 776,
+  DENBCD = 777,
+  DENBCDQ = 778,
+  DENBCDQ_rec = 779,
+  DENBCD_rec = 780,
+  DIEX = 781,
+  DIEXQ = 782,
+  DIEXQ_rec = 783,
+  DIEX_rec = 784,
+  DIVD = 785,
+  DIVDE = 786,
+  DIVDEO = 787,
+  DIVDEO_rec = 788,
+  DIVDEU = 789,
+  DIVDEUO = 790,
+  DIVDEUO_rec = 791,
+  DIVDEU_rec = 792,
+  DIVDE_rec = 793,
+  DIVDO = 794,
+  DIVDO_rec = 795,
+  DIVDU = 796,
+  DIVDUO = 797,
+  DIVDUO_rec = 798,
+  DIVDU_rec = 799,
+  DIVD_rec = 800,
+  DIVW = 801,
+  DIVWE = 802,
+  DIVWEO = 803,
+  DIVWEO_rec = 804,
+  DIVWEU = 805,
+  DIVWEUO = 806,
+  DIVWEUO_rec = 807,
+  DIVWEU_rec = 808,
+  DIVWE_rec = 809,
+  DIVWO = 810,
+  DIVWO_rec = 811,
+  DIVWU = 812,
+  DIVWUO = 813,
+  DIVWUO_rec = 814,
+  DIVWU_rec = 815,
+  DIVW_rec = 816,
+  DMMR = 817,
+  DMSETDMRZ = 818,
+  DMSHA2HASH = 819,
+  DMSHA3HASH = 820,
+  DMUL = 821,
+  DMULQ = 822,
+  DMULQ_rec = 823,
+  DMUL_rec = 824,
+  DMXOR = 825,
+  DMXVBF16GERX2 = 826,
+  DMXVBF16GERX2NN = 827,
+  DMXVBF16GERX2NP = 828,
+  DMXVBF16GERX2PN = 829,
+  DMXVBF16GERX2PP = 830,
+  DMXVF16GERX2 = 831,
+  DMXVF16GERX2NN = 832,
+  DMXVF16GERX2NP = 833,
+  DMXVF16GERX2PN = 834,
+  DMXVF16GERX2PP = 835,
+  DMXVI8GERX4 = 836,
+  DMXVI8GERX4PP = 837,
+  DMXVI8GERX4SPP = 838,
+  DMXXEXTFDMR256 = 839,
+  DMXXEXTFDMR512 = 840,
+  DMXXEXTFDMR512_HI = 841,
+  DMXXINSTDMR256 = 842,
+  DMXXINSTDMR512 = 843,
+  DMXXINSTDMR512_HI = 844,
+  DMXXSETACCZ = 845,
+  DMXXSHAPAD = 846,
+  DQUA = 847,
+  DQUAI = 848,
+  DQUAIQ = 849,
+  DQUAIQ_rec = 850,
+  DQUAI_rec = 851,
+  DQUAQ = 852,
+  DQUAQ_rec = 853,
+  DQUA_rec = 854,
+  DRDPQ = 855,
+  DRDPQ_rec = 856,
+  DRINTN = 857,
+  DRINTNQ = 858,
+  DRINTNQ_rec = 859,
+  DRINTN_rec = 860,
+  DRINTX = 861,
+  DRINTXQ = 862,
+  DRINTXQ_rec = 863,
+  DRINTX_rec = 864,
+  DRRND = 865,
+  DRRNDQ = 866,
+  DRRNDQ_rec = 867,
+  DRRND_rec = 868,
+  DRSP = 869,
+  DRSP_rec = 870,
+  DSCLI = 871,
+  DSCLIQ = 872,
+  DSCLIQ_rec = 873,
+  DSCLI_rec = 874,
+  DSCRI = 875,
+  DSCRIQ = 876,
+  DSCRIQ_rec = 877,
+  DSCRI_rec = 878,
+  DSS = 879,
+  DSSALL = 880,
+  DST = 881,
+  DST64 = 882,
+  DSTST = 883,
+  DSTST64 = 884,
+  DSTSTT = 885,
+  DSTSTT64 = 886,
+  DSTT = 887,
+  DSTT64 = 888,
+  DSUB = 889,
+  DSUBQ = 890,
+  DSUBQ_rec = 891,
+  DSUB_rec = 892,
+  DTSTDC = 893,
+  DTSTDCQ = 894,
+  DTSTDG = 895,
+  DTSTDGQ = 896,
+  DTSTEX = 897,
+  DTSTEXQ = 898,
+  DTSTSF = 899,
+  DTSTSFI = 900,
+  DTSTSFIQ = 901,
+  DTSTSFQ = 902,
+  DXEX = 903,
+  DXEXQ = 904,
+  DXEXQ_rec = 905,
+  DXEX_rec = 906,
+  DYNALLOC = 907,
+  DYNALLOC8 = 908,
+  DYNAREAOFFSET = 909,
+  DYNAREAOFFSET8 = 910,
+  DecreaseCTR8loop = 911,
+  DecreaseCTRloop = 912,
+  EFDABS = 913,
+  EFDADD = 914,
+  EFDCFS = 915,
+  EFDCFSF = 916,
+  EFDCFSI = 917,
+  EFDCFSID = 918,
+  EFDCFUF = 919,
+  EFDCFUI = 920,
+  EFDCFUID = 921,
+  EFDCMPEQ = 922,
+  EFDCMPGT = 923,
+  EFDCMPLT = 924,
+  EFDCTSF = 925,
+  EFDCTSI = 926,
+  EFDCTSIDZ = 927,
+  EFDCTSIZ = 928,
+  EFDCTUF = 929,
+  EFDCTUI = 930,
+  EFDCTUIDZ = 931,
+  EFDCTUIZ = 932,
+  EFDDIV = 933,
+  EFDMUL = 934,
+  EFDNABS = 935,
+  EFDNEG = 936,
+  EFDSUB = 937,
+  EFDTSTEQ = 938,
+  EFDTSTGT = 939,
+  EFDTSTLT = 940,
+  EFSABS = 941,
+  EFSADD = 942,
+  EFSCFD = 943,
+  EFSCFSF = 944,
+  EFSCFSI = 945,
+  EFSCFUF = 946,
+  EFSCFUI = 947,
+  EFSCMPEQ = 948,
+  EFSCMPGT = 949,
+  EFSCMPLT = 950,
+  EFSCTSF = 951,
+  EFSCTSI = 952,
+  EFSCTSIZ = 953,
+  EFSCTUF = 954,
+  EFSCTUI = 955,
+  EFSCTUIZ = 956,
+  EFSDIV = 957,
+  EFSMUL = 958,
+  EFSNABS = 959,
+  EFSNEG = 960,
+  EFSSUB = 961,
+  EFSTSTEQ = 962,
+  EFSTSTGT = 963,
+  EFSTSTLT = 964,
+  EH_SjLj_LongJmp32 = 965,
+  EH_SjLj_LongJmp64 = 966,
+  EH_SjLj_SetJmp32 = 967,
+  EH_SjLj_SetJmp64 = 968,
+  EH_SjLj_Setup = 969,
+  EQV = 970,
+  EQV8 = 971,
+  EQV8_rec = 972,
+  EQV_rec = 973,
+  EVABS = 974,
+  EVADDIW = 975,
+  EVADDSMIAAW = 976,
+  EVADDSSIAAW = 977,
+  EVADDUMIAAW = 978,
+  EVADDUSIAAW = 979,
+  EVADDW = 980,
+  EVAND = 981,
+  EVANDC = 982,
+  EVCMPEQ = 983,
+  EVCMPGTS = 984,
+  EVCMPGTU = 985,
+  EVCMPLTS = 986,
+  EVCMPLTU = 987,
+  EVCNTLSW = 988,
+  EVCNTLZW = 989,
+  EVDIVWS = 990,
+  EVDIVWU = 991,
+  EVEQV = 992,
+  EVEXTSB = 993,
+  EVEXTSH = 994,
+  EVFSABS = 995,
+  EVFSADD = 996,
+  EVFSCFSF = 997,
+  EVFSCFSI = 998,
+  EVFSCFUF = 999,
+  EVFSCFUI = 1000,
+  EVFSCMPEQ = 1001,
+  EVFSCMPGT = 1002,
+  EVFSCMPLT = 1003,
+  EVFSCTSF = 1004,
+  EVFSCTSI = 1005,
+  EVFSCTSIZ = 1006,
+  EVFSCTUF = 1007,
+  EVFSCTUI = 1008,
+  EVFSCTUIZ = 1009,
+  EVFSDIV = 1010,
+  EVFSMUL = 1011,
+  EVFSNABS = 1012,
+  EVFSNEG = 1013,
+  EVFSSUB = 1014,
+  EVFSTSTEQ = 1015,
+  EVFSTSTGT = 1016,
+  EVFSTSTLT = 1017,
+  EVLDD = 1018,
+  EVLDDX = 1019,
+  EVLDH = 1020,
+  EVLDHX = 1021,
+  EVLDW = 1022,
+  EVLDWX = 1023,
+  EVLHHESPLAT = 1024,
+  EVLHHESPLATX = 1025,
+  EVLHHOSSPLAT = 1026,
+  EVLHHOSSPLATX = 1027,
+  EVLHHOUSPLAT = 1028,
+  EVLHHOUSPLATX = 1029,
+  EVLWHE = 1030,
+  EVLWHEX = 1031,
+  EVLWHOS = 1032,
+  EVLWHOSX = 1033,
+  EVLWHOU = 1034,
+  EVLWHOUX = 1035,
+  EVLWHSPLAT = 1036,
+  EVLWHSPLATX = 1037,
+  EVLWWSPLAT = 1038,
+  EVLWWSPLATX = 1039,
+  EVMERGEHI = 1040,
+  EVMERGEHILO = 1041,
+  EVMERGELO = 1042,
+  EVMERGELOHI = 1043,
+  EVMHEGSMFAA = 1044,
+  EVMHEGSMFAN = 1045,
+  EVMHEGSMIAA = 1046,
+  EVMHEGSMIAN = 1047,
+  EVMHEGUMIAA = 1048,
+  EVMHEGUMIAN = 1049,
+  EVMHESMF = 1050,
+  EVMHESMFA = 1051,
+  EVMHESMFAAW = 1052,
+  EVMHESMFANW = 1053,
+  EVMHESMI = 1054,
+  EVMHESMIA = 1055,
+  EVMHESMIAAW = 1056,
+  EVMHESMIANW = 1057,
+  EVMHESSF = 1058,
+  EVMHESSFA = 1059,
+  EVMHESSFAAW = 1060,
+  EVMHESSFANW = 1061,
+  EVMHESSIAAW = 1062,
+  EVMHESSIANW = 1063,
+  EVMHEUMI = 1064,
+  EVMHEUMIA = 1065,
+  EVMHEUMIAAW = 1066,
+  EVMHEUMIANW = 1067,
+  EVMHEUSIAAW = 1068,
+  EVMHEUSIANW = 1069,
+  EVMHOGSMFAA = 1070,
+  EVMHOGSMFAN = 1071,
+  EVMHOGSMIAA = 1072,
+  EVMHOGSMIAN = 1073,
+  EVMHOGUMIAA = 1074,
+  EVMHOGUMIAN = 1075,
+  EVMHOSMF = 1076,
+  EVMHOSMFA = 1077,
+  EVMHOSMFAAW = 1078,
+  EVMHOSMFANW = 1079,
+  EVMHOSMI = 1080,
+  EVMHOSMIA = 1081,
+  EVMHOSMIAAW = 1082,
+  EVMHOSMIANW = 1083,
+  EVMHOSSF = 1084,
+  EVMHOSSFA = 1085,
+  EVMHOSSFAAW = 1086,
+  EVMHOSSFANW = 1087,
+  EVMHOSSIAAW = 1088,
+  EVMHOSSIANW = 1089,
+  EVMHOUMI = 1090,
+  EVMHOUMIA = 1091,
+  EVMHOUMIAAW = 1092,
+  EVMHOUMIANW = 1093,
+  EVMHOUSIAAW = 1094,
+  EVMHOUSIANW = 1095,
+  EVMRA = 1096,
+  EVMWHSMF = 1097,
+  EVMWHSMFA = 1098,
+  EVMWHSMI = 1099,
+  EVMWHSMIA = 1100,
+  EVMWHSSF = 1101,
+  EVMWHSSFA = 1102,
+  EVMWHUMI = 1103,
+  EVMWHUMIA = 1104,
+  EVMWLSMIAAW = 1105,
+  EVMWLSMIANW = 1106,
+  EVMWLSSIAAW = 1107,
+  EVMWLSSIANW = 1108,
+  EVMWLUMI = 1109,
+  EVMWLUMIA = 1110,
+  EVMWLUMIAAW = 1111,
+  EVMWLUMIANW = 1112,
+  EVMWLUSIAAW = 1113,
+  EVMWLUSIANW = 1114,
+  EVMWSMF = 1115,
+  EVMWSMFA = 1116,
+  EVMWSMFAA = 1117,
+  EVMWSMFAN = 1118,
+  EVMWSMI = 1119,
+  EVMWSMIA = 1120,
+  EVMWSMIAA = 1121,
+  EVMWSMIAN = 1122,
+  EVMWSSF = 1123,
+  EVMWSSFA = 1124,
+  EVMWSSFAA = 1125,
+  EVMWSSFAN = 1126,
+  EVMWUMI = 1127,
+  EVMWUMIA = 1128,
+  EVMWUMIAA = 1129,
+  EVMWUMIAN = 1130,
+  EVNAND = 1131,
+  EVNEG = 1132,
+  EVNOR = 1133,
+  EVOR = 1134,
+  EVORC = 1135,
+  EVRLW = 1136,
+  EVRLWI = 1137,
+  EVRNDW = 1138,
+  EVSEL = 1139,
+  EVSLW = 1140,
+  EVSLWI = 1141,
+  EVSPLATFI = 1142,
+  EVSPLATI = 1143,
+  EVSRWIS = 1144,
+  EVSRWIU = 1145,
+  EVSRWS = 1146,
+  EVSRWU = 1147,
+  EVSTDD = 1148,
+  EVSTDDX = 1149,
+  EVSTDH = 1150,
+  EVSTDHX = 1151,
+  EVSTDW = 1152,
+  EVSTDWX = 1153,
+  EVSTWHE = 1154,
+  EVSTWHEX = 1155,
+  EVSTWHO = 1156,
+  EVSTWHOX = 1157,
+  EVSTWWE = 1158,
+  EVSTWWEX = 1159,
+  EVSTWWO = 1160,
+  EVSTWWOX = 1161,
+  EVSUBFSMIAAW = 1162,
+  EVSUBFSSIAAW = 1163,
+  EVSUBFUMIAAW = 1164,
+  EVSUBFUSIAAW = 1165,
+  EVSUBFW = 1166,
+  EVSUBIFW = 1167,
+  EVXOR = 1168,
+  EXTSB = 1169,
+  EXTSB8 = 1170,
+  EXTSB8_32_64 = 1171,
+  EXTSB8_rec = 1172,
+  EXTSB_rec = 1173,
+  EXTSH = 1174,
+  EXTSH8 = 1175,
+  EXTSH8_32_64 = 1176,
+  EXTSH8_rec = 1177,
+  EXTSH_rec = 1178,
+  EXTSW = 1179,
+  EXTSWSLI = 1180,
+  EXTSWSLI_32_64 = 1181,
+  EXTSWSLI_32_64_rec = 1182,
+  EXTSWSLI_rec = 1183,
+  EXTSW_32 = 1184,
+  EXTSW_32_64 = 1185,
+  EXTSW_32_64_rec = 1186,
+  EXTSW_rec = 1187,
+  EnforceIEIO = 1188,
+  FABSD = 1189,
+  FABSD_rec = 1190,
+  FABSS = 1191,
+  FABSS_rec = 1192,
+  FADD = 1193,
+  FADDS = 1194,
+  FADDS_rec = 1195,
+  FADD_rec = 1196,
+  FADDrtz = 1197,
+  FCFID = 1198,
+  FCFIDS = 1199,
+  FCFIDS_rec = 1200,
+  FCFIDU = 1201,
+  FCFIDUS = 1202,
+  FCFIDUS_rec = 1203,
+  FCFIDU_rec = 1204,
+  FCFID_rec = 1205,
+  FCMPOD = 1206,
+  FCMPOS = 1207,
+  FCMPUD = 1208,
+  FCMPUS = 1209,
+  FCPSGND = 1210,
+  FCPSGND_rec = 1211,
+  FCPSGNS = 1212,
+  FCPSGNS_rec = 1213,
+  FCTID = 1214,
+  FCTIDU = 1215,
+  FCTIDUZ = 1216,
+  FCTIDUZ_rec = 1217,
+  FCTIDU_rec = 1218,
+  FCTIDZ = 1219,
+  FCTIDZ_rec = 1220,
+  FCTID_rec = 1221,
+  FCTIW = 1222,
+  FCTIWU = 1223,
+  FCTIWUZ = 1224,
+  FCTIWUZ_rec = 1225,
+  FCTIWU_rec = 1226,
+  FCTIWZ = 1227,
+  FCTIWZ_rec = 1228,
+  FCTIW_rec = 1229,
+  FDIV = 1230,
+  FDIVS = 1231,
+  FDIVS_rec = 1232,
+  FDIV_rec = 1233,
+  FENCE = 1234,
+  FMADD = 1235,
+  FMADDS = 1236,
+  FMADDS_rec = 1237,
+  FMADD_rec = 1238,
+  FMR = 1239,
+  FMR_rec = 1240,
+  FMSUB = 1241,
+  FMSUBS = 1242,
+  FMSUBS_rec = 1243,
+  FMSUB_rec = 1244,
+  FMUL = 1245,
+  FMULS = 1246,
+  FMULS_rec = 1247,
+  FMUL_rec = 1248,
+  FNABSD = 1249,
+  FNABSD_rec = 1250,
+  FNABSS = 1251,
+  FNABSS_rec = 1252,
+  FNEGD = 1253,
+  FNEGD_rec = 1254,
+  FNEGS = 1255,
+  FNEGS_rec = 1256,
+  FNMADD = 1257,
+  FNMADDS = 1258,
+  FNMADDS_rec = 1259,
+  FNMADD_rec = 1260,
+  FNMSUB = 1261,
+  FNMSUBS = 1262,
+  FNMSUBS_rec = 1263,
+  FNMSUB_rec = 1264,
+  FRE = 1265,
+  FRES = 1266,
+  FRES_rec = 1267,
+  FRE_rec = 1268,
+  FRIMD = 1269,
+  FRIMD_rec = 1270,
+  FRIMS = 1271,
+  FRIMS_rec = 1272,
+  FRIND = 1273,
+  FRIND_rec = 1274,
+  FRINS = 1275,
+  FRINS_rec = 1276,
+  FRIPD = 1277,
+  FRIPD_rec = 1278,
+  FRIPS = 1279,
+  FRIPS_rec = 1280,
+  FRIZD = 1281,
+  FRIZD_rec = 1282,
+  FRIZS = 1283,
+  FRIZS_rec = 1284,
+  FRSP = 1285,
+  FRSP_rec = 1286,
+  FRSQRTE = 1287,
+  FRSQRTES = 1288,
+  FRSQRTES_rec = 1289,
+  FRSQRTE_rec = 1290,
+  FSELD = 1291,
+  FSELD_rec = 1292,
+  FSELS = 1293,
+  FSELS_rec = 1294,
+  FSQRT = 1295,
+  FSQRTS = 1296,
+  FSQRTS_rec = 1297,
+  FSQRT_rec = 1298,
+  FSUB = 1299,
+  FSUBS = 1300,
+  FSUBS_rec = 1301,
+  FSUB_rec = 1302,
+  FTDIV = 1303,
+  FTSQRT = 1304,
+  GETtlsADDR = 1305,
+  GETtlsADDR32 = 1306,
+  GETtlsADDR32AIX = 1307,
+  GETtlsADDR64AIX = 1308,
+  GETtlsADDRPCREL = 1309,
+  GETtlsMOD32AIX = 1310,
+  GETtlsMOD64AIX = 1311,
+  GETtlsTpointer32AIX = 1312,
+  GETtlsldADDR = 1313,
+  GETtlsldADDR32 = 1314,
+  GETtlsldADDRPCREL = 1315,
+  HASHCHK = 1316,
+  HASHCHK8 = 1317,
+  HASHCHKP = 1318,
+  HASHCHKP8 = 1319,
+  HASHST = 1320,
+  HASHST8 = 1321,
+  HASHSTP = 1322,
+  HASHSTP8 = 1323,
+  HRFID = 1324,
+  ICBI = 1325,
+  ICBIEP = 1326,
+  ICBLC = 1327,
+  ICBLQ = 1328,
+  ICBT = 1329,
+  ICBTLS = 1330,
+  ICCCI = 1331,
+  ISEL = 1332,
+  ISEL8 = 1333,
+  ISYNC = 1334,
+  LA = 1335,
+  LA8 = 1336,
+  LBARX = 1337,
+  LBARXL = 1338,
+  LBEPX = 1339,
+  LBZ = 1340,
+  LBZ8 = 1341,
+  LBZCIX = 1342,
+  LBZU = 1343,
+  LBZU8 = 1344,
+  LBZUX = 1345,
+  LBZUX8 = 1346,
+  LBZX = 1347,
+  LBZX8 = 1348,
+  LBZXTLS = 1349,
+  LBZXTLS_ = 1350,
+  LBZXTLS_32 = 1351,
+  LD = 1352,
+  LDARX = 1353,
+  LDARXL = 1354,
+  LDAT = 1355,
+  LDAT_PSEUDO = 1356,
+  LDBRX = 1357,
+  LDCIX = 1358,
+  LDU = 1359,
+  LDUX = 1360,
+  LDX = 1361,
+  LDXTLS = 1362,
+  LDXTLS_ = 1363,
+  LDgotTprelL = 1364,
+  LDgotTprelL32 = 1365,
+  LDtoc = 1366,
+  LDtocBA = 1367,
+  LDtocCPT = 1368,
+  LDtocJTI = 1369,
+  LDtocL = 1370,
+  LFD = 1371,
+  LFDEPX = 1372,
+  LFDU = 1373,
+  LFDUX = 1374,
+  LFDX = 1375,
+  LFDXTLS = 1376,
+  LFDXTLS_ = 1377,
+  LFIWAX = 1378,
+  LFIWZX = 1379,
+  LFS = 1380,
+  LFSU = 1381,
+  LFSUX = 1382,
+  LFSX = 1383,
+  LFSXTLS = 1384,
+  LFSXTLS_ = 1385,
+  LHA = 1386,
+  LHA8 = 1387,
+  LHARX = 1388,
+  LHARXL = 1389,
+  LHAU = 1390,
+  LHAU8 = 1391,
+  LHAUX = 1392,
+  LHAUX8 = 1393,
+  LHAX = 1394,
+  LHAX8 = 1395,
+  LHAXTLS = 1396,
+  LHAXTLS_ = 1397,
+  LHAXTLS_32 = 1398,
+  LHBRX = 1399,
+  LHBRX8 = 1400,
+  LHEPX = 1401,
+  LHZ = 1402,
+  LHZ8 = 1403,
+  LHZCIX = 1404,
+  LHZU = 1405,
+  LHZU8 = 1406,
+  LHZUX = 1407,
+  LHZUX8 = 1408,
+  LHZX = 1409,
+  LHZX8 = 1410,
+  LHZXTLS = 1411,
+  LHZXTLS_ = 1412,
+  LHZXTLS_32 = 1413,
+  LI = 1414,
+  LI8 = 1415,
+  LIS = 1416,
+  LIS8 = 1417,
+  LMW = 1418,
+  LQ = 1419,
+  LQARX = 1420,
+  LQARXL = 1421,
+  LQX_PSEUDO = 1422,
+  LSWI = 1423,
+  LVEBX = 1424,
+  LVEHX = 1425,
+  LVEWX = 1426,
+  LVSL = 1427,
+  LVSR = 1428,
+  LVX = 1429,
+  LVXL = 1430,
+  LWA = 1431,
+  LWARX = 1432,
+  LWARXL = 1433,
+  LWAT = 1434,
+  LWAT_PSEUDO = 1435,
+  LWAUX = 1436,
+  LWAX = 1437,
+  LWAXTLS = 1438,
+  LWAXTLS_ = 1439,
+  LWAXTLS_32 = 1440,
+  LWAX_32 = 1441,
+  LWA_32 = 1442,
+  LWBRX = 1443,
+  LWBRX8 = 1444,
+  LWEPX = 1445,
+  LWZ = 1446,
+  LWZ8 = 1447,
+  LWZCIX = 1448,
+  LWZU = 1449,
+  LWZU8 = 1450,
+  LWZUX = 1451,
+  LWZUX8 = 1452,
+  LWZX = 1453,
+  LWZX8 = 1454,
+  LWZXTLS = 1455,
+  LWZXTLS_ = 1456,
+  LWZXTLS_32 = 1457,
+  LWZtoc = 1458,
+  LWZtocL = 1459,
+  LXSD = 1460,
+  LXSDX = 1461,
+  LXSIBZX = 1462,
+  LXSIHZX = 1463,
+  LXSIWAX = 1464,
+  LXSIWZX = 1465,
+  LXSSP = 1466,
+  LXSSPX = 1467,
+  LXV = 1468,
+  LXVB16X = 1469,
+  LXVD2X = 1470,
+  LXVDSX = 1471,
+  LXVH8X = 1472,
+  LXVKQ = 1473,
+  LXVL = 1474,
+  LXVLL = 1475,
+  LXVP = 1476,
+  LXVPB32X = 1477,
+  LXVPRL = 1478,
+  LXVPRLL = 1479,
+  LXVPX = 1480,
+  LXVRBX = 1481,
+  LXVRDX = 1482,
+  LXVRHX = 1483,
+  LXVRL = 1484,
+  LXVRLL = 1485,
+  LXVRWX = 1486,
+  LXVW4X = 1487,
+  LXVWSX = 1488,
+  LXVX = 1489,
+  MADDHD = 1490,
+  MADDHDU = 1491,
+  MADDLD = 1492,
+  MADDLD8 = 1493,
+  MBAR = 1494,
+  MCRF = 1495,
+  MCRFS = 1496,
+  MCRXRX = 1497,
+  MFBHRBE = 1498,
+  MFCR = 1499,
+  MFCR8 = 1500,
+  MFCTR = 1501,
+  MFCTR8 = 1502,
+  MFDCR = 1503,
+  MFFS = 1504,
+  MFFSCDRN = 1505,
+  MFFSCDRNI = 1506,
+  MFFSCE = 1507,
+  MFFSCRN = 1508,
+  MFFSCRNI = 1509,
+  MFFSL = 1510,
+  MFFS_rec = 1511,
+  MFLR = 1512,
+  MFLR8 = 1513,
+  MFMSR = 1514,
+  MFOCRF = 1515,
+  MFOCRF8 = 1516,
+  MFPMR = 1517,
+  MFSPR = 1518,
+  MFSPR8 = 1519,
+  MFSR = 1520,
+  MFSRIN = 1521,
+  MFTB = 1522,
+  MFTB8 = 1523,
+  MFUDSCR = 1524,
+  MFVRD = 1525,
+  MFVRSAVE = 1526,
+  MFVRSAVEv = 1527,
+  MFVRWZ = 1528,
+  MFVSCR = 1529,
+  MFVSRD = 1530,
+  MFVSRLD = 1531,
+  MFVSRWZ = 1532,
+  MODSD = 1533,
+  MODSW = 1534,
+  MODUD = 1535,
+  MODUW = 1536,
+  MSGSYNC = 1537,
+  MSYNC = 1538,
+  MTCRF = 1539,
+  MTCRF8 = 1540,
+  MTCTR = 1541,
+  MTCTR8 = 1542,
+  MTCTR8loop = 1543,
+  MTCTRloop = 1544,
+  MTDCR = 1545,
+  MTFSB0 = 1546,
+  MTFSB1 = 1547,
+  MTFSF = 1548,
+  MTFSFI = 1549,
+  MTFSFI_rec = 1550,
+  MTFSFIb = 1551,
+  MTFSF_rec = 1552,
+  MTFSFb = 1553,
+  MTLPL = 1554,
+  MTLPL8 = 1555,
+  MTLR = 1556,
+  MTLR8 = 1557,
+  MTMSR = 1558,
+  MTMSRD = 1559,
+  MTOCRF = 1560,
+  MTOCRF8 = 1561,
+  MTPMR = 1562,
+  MTSPR = 1563,
+  MTSPR8 = 1564,
+  MTSR = 1565,
+  MTSRIN = 1566,
+  MTUDSCR = 1567,
+  MTVRD = 1568,
+  MTVRSAVE = 1569,
+  MTVRSAVEv = 1570,
+  MTVRWA = 1571,
+  MTVRWZ = 1572,
+  MTVSCR = 1573,
+  MTVSRBM = 1574,
+  MTVSRBMI = 1575,
+  MTVSRD = 1576,
+  MTVSRDD = 1577,
+  MTVSRDM = 1578,
+  MTVSRHM = 1579,
+  MTVSRQM = 1580,
+  MTVSRWA = 1581,
+  MTVSRWM = 1582,
+  MTVSRWS = 1583,
+  MTVSRWZ = 1584,
+  MULHD = 1585,
+  MULHDU = 1586,
+  MULHDU_rec = 1587,
+  MULHD_rec = 1588,
+  MULHW = 1589,
+  MULHWU = 1590,
+  MULHWU_rec = 1591,
+  MULHW_rec = 1592,
+  MULLD = 1593,
+  MULLDO = 1594,
+  MULLDO_rec = 1595,
+  MULLD_rec = 1596,
+  MULLI = 1597,
+  MULLI8 = 1598,
+  MULLW = 1599,
+  MULLWO = 1600,
+  MULLWO_rec = 1601,
+  MULLW_rec = 1602,
+  MoveGOTtoLR = 1603,
+  MovePCtoLR = 1604,
+  MovePCtoLR8 = 1605,
+  NAND = 1606,
+  NAND8 = 1607,
+  NAND8_rec = 1608,
+  NAND_rec = 1609,
+  NAP = 1610,
+  NEG = 1611,
+  NEG8 = 1612,
+  NEG8O = 1613,
+  NEG8O_rec = 1614,
+  NEG8_rec = 1615,
+  NEGO = 1616,
+  NEGO_rec = 1617,
+  NEG_rec = 1618,
+  NOP = 1619,
+  NOP_GT_PWR6 = 1620,
+  NOP_GT_PWR7 = 1621,
+  NOR = 1622,
+  NOR8 = 1623,
+  NOR8_rec = 1624,
+  NOR_rec = 1625,
+  OR = 1626,
+  OR8 = 1627,
+  OR8_rec = 1628,
+  ORC = 1629,
+  ORC8 = 1630,
+  ORC8_rec = 1631,
+  ORC_rec = 1632,
+  ORI = 1633,
+  ORI8 = 1634,
+  ORIS = 1635,
+  ORIS8 = 1636,
+  OR_rec = 1637,
+  PADDI = 1638,
+  PADDI8 = 1639,
+  PADDI8pc = 1640,
+  PADDIS = 1641,
+  PADDIS8 = 1642,
+  PADDIS8pc = 1643,
+  PADDISpc = 1644,
+  PADDIdtprel = 1645,
+  PADDIpc = 1646,
+  PDEPD = 1647,
+  PEXTD = 1648,
+  PLA = 1649,
+  PLA8 = 1650,
+  PLA8pc = 1651,
+  PLApc = 1652,
+  PLBZ = 1653,
+  PLBZ8 = 1654,
+  PLBZ8nopc = 1655,
+  PLBZ8onlypc = 1656,
+  PLBZ8pc = 1657,
+  PLBZnopc = 1658,
+  PLBZonlypc = 1659,
+  PLBZpc = 1660,
+  PLD = 1661,
+  PLDnopc = 1662,
+  PLDonlypc = 1663,
+  PLDpc = 1664,
+  PLFD = 1665,
+  PLFDnopc = 1666,
+  PLFDonlypc = 1667,
+  PLFDpc = 1668,
+  PLFS = 1669,
+  PLFSnopc = 1670,
+  PLFSonlypc = 1671,
+  PLFSpc = 1672,
+  PLHA = 1673,
+  PLHA8 = 1674,
+  PLHA8nopc = 1675,
+  PLHA8onlypc = 1676,
+  PLHA8pc = 1677,
+  PLHAnopc = 1678,
+  PLHAonlypc = 1679,
+  PLHApc = 1680,
+  PLHZ = 1681,
+  PLHZ8 = 1682,
+  PLHZ8nopc = 1683,
+  PLHZ8onlypc = 1684,
+  PLHZ8pc = 1685,
+  PLHZnopc = 1686,
+  PLHZonlypc = 1687,
+  PLHZpc = 1688,
+  PLI = 1689,
+  PLI8 = 1690,
+  PLWA = 1691,
+  PLWA8 = 1692,
+  PLWA8nopc = 1693,
+  PLWA8onlypc = 1694,
+  PLWA8pc = 1695,
+  PLWAnopc = 1696,
+  PLWAonlypc = 1697,
+  PLWApc = 1698,
+  PLWZ = 1699,
+  PLWZ8 = 1700,
+  PLWZ8nopc = 1701,
+  PLWZ8onlypc = 1702,
+  PLWZ8pc = 1703,
+  PLWZnopc = 1704,
+  PLWZonlypc = 1705,
+  PLWZpc = 1706,
+  PLXSD = 1707,
+  PLXSDnopc = 1708,
+  PLXSDonlypc = 1709,
+  PLXSDpc = 1710,
+  PLXSSP = 1711,
+  PLXSSPnopc = 1712,
+  PLXSSPonlypc = 1713,
+  PLXSSPpc = 1714,
+  PLXV = 1715,
+  PLXVP = 1716,
+  PLXVPnopc = 1717,
+  PLXVPonlypc = 1718,
+  PLXVPpc = 1719,
+  PLXVnopc = 1720,
+  PLXVonlypc = 1721,
+  PLXVpc = 1722,
+  PMDMXVBF16GERX2 = 1723,
+  PMDMXVBF16GERX2NN = 1724,
+  PMDMXVBF16GERX2NP = 1725,
+  PMDMXVBF16GERX2PN = 1726,
+  PMDMXVBF16GERX2PP = 1727,
+  PMDMXVF16GERX2 = 1728,
+  PMDMXVF16GERX2NN = 1729,
+  PMDMXVF16GERX2NP = 1730,
+  PMDMXVF16GERX2PN = 1731,
+  PMDMXVF16GERX2PP = 1732,
+  PMDMXVI8GERX4 = 1733,
+  PMDMXVI8GERX4PP = 1734,
+  PMDMXVI8GERX4SPP = 1735,
+  PMXVBF16GER2 = 1736,
+  PMXVBF16GER2NN = 1737,
+  PMXVBF16GER2NP = 1738,
+  PMXVBF16GER2PN = 1739,
+  PMXVBF16GER2PP = 1740,
+  PMXVBF16GER2W = 1741,
+  PMXVBF16GER2WNN = 1742,
+  PMXVBF16GER2WNP = 1743,
+  PMXVBF16GER2WPN = 1744,
+  PMXVBF16GER2WPP = 1745,
+  PMXVF16GER2 = 1746,
+  PMXVF16GER2NN = 1747,
+  PMXVF16GER2NP = 1748,
+  PMXVF16GER2PN = 1749,
+  PMXVF16GER2PP = 1750,
+  PMXVF16GER2W = 1751,
+  PMXVF16GER2WNN = 1752,
+  PMXVF16GER2WNP = 1753,
+  PMXVF16GER2WPN = 1754,
+  PMXVF16GER2WPP = 1755,
+  PMXVF32GER = 1756,
+  PMXVF32GERNN = 1757,
+  PMXVF32GERNP = 1758,
+  PMXVF32GERPN = 1759,
+  PMXVF32GERPP = 1760,
+  PMXVF32GERW = 1761,
+  PMXVF32GERWNN = 1762,
+  PMXVF32GERWNP = 1763,
+  PMXVF32GERWPN = 1764,
+  PMXVF32GERWPP = 1765,
+  PMXVF64GER = 1766,
+  PMXVF64GERNN = 1767,
+  PMXVF64GERNP = 1768,
+  PMXVF64GERPN = 1769,
+  PMXVF64GERPP = 1770,
+  PMXVF64GERW = 1771,
+  PMXVF64GERWNN = 1772,
+  PMXVF64GERWNP = 1773,
+  PMXVF64GERWPN = 1774,
+  PMXVF64GERWPP = 1775,
+  PMXVI16GER2 = 1776,
+  PMXVI16GER2PP = 1777,
+  PMXVI16GER2S = 1778,
+  PMXVI16GER2SPP = 1779,
+  PMXVI16GER2SW = 1780,
+  PMXVI16GER2SWPP = 1781,
+  PMXVI16GER2W = 1782,
+  PMXVI16GER2WPP = 1783,
+  PMXVI4GER8 = 1784,
+  PMXVI4GER8PP = 1785,
+  PMXVI4GER8W = 1786,
+  PMXVI4GER8WPP = 1787,
+  PMXVI8GER4 = 1788,
+  PMXVI8GER4PP = 1789,
+  PMXVI8GER4SPP = 1790,
+  PMXVI8GER4W = 1791,
+  PMXVI8GER4WPP = 1792,
+  PMXVI8GER4WSPP = 1793,
+  POPCNTB = 1794,
+  POPCNTB8 = 1795,
+  POPCNTD = 1796,
+  POPCNTW = 1797,
+  PPC32GOT = 1798,
+  PPC32PICGOT = 1799,
+  PREPARE_PROBED_ALLOCA_32 = 1800,
+  PREPARE_PROBED_ALLOCA_64 = 1801,
+  PREPARE_PROBED_ALLOCA_NEGSIZE_SAME_REG_32 = 1802,
+  PREPARE_PROBED_ALLOCA_NEGSIZE_SAME_REG_64 = 1803,
+  PROBED_ALLOCA_32 = 1804,
+  PROBED_ALLOCA_64 = 1805,
+  PROBED_STACKALLOC_32 = 1806,
+  PROBED_STACKALLOC_64 = 1807,
+  PSTB = 1808,
+  PSTB8 = 1809,
+  PSTB8nopc = 1810,
+  PSTB8onlypc = 1811,
+  PSTB8pc = 1812,
+  PSTBnopc = 1813,
+  PSTBonlypc = 1814,
+  PSTBpc = 1815,
+  PSTD = 1816,
+  PSTDnopc = 1817,
+  PSTDonlypc = 1818,
+  PSTDpc = 1819,
+  PSTFD = 1820,
+  PSTFDnopc = 1821,
+  PSTFDonlypc = 1822,
+  PSTFDpc = 1823,
+  PSTFS = 1824,
+  PSTFSnopc = 1825,
+  PSTFSonlypc = 1826,
+  PSTFSpc = 1827,
+  PSTH = 1828,
+  PSTH8 = 1829,
+  PSTH8nopc = 1830,
+  PSTH8onlypc = 1831,
+  PSTH8pc = 1832,
+  PSTHnopc = 1833,
+  PSTHonlypc = 1834,
+  PSTHpc = 1835,
+  PSTW = 1836,
+  PSTW8 = 1837,
+  PSTW8nopc = 1838,
+  PSTW8onlypc = 1839,
+  PSTW8pc = 1840,
+  PSTWnopc = 1841,
+  PSTWonlypc = 1842,
+  PSTWpc = 1843,
+  PSTXSD = 1844,
+  PSTXSDnopc = 1845,
+  PSTXSDonlypc = 1846,
+  PSTXSDpc = 1847,
+  PSTXSSP = 1848,
+  PSTXSSPnopc = 1849,
+  PSTXSSPonlypc = 1850,
+  PSTXSSPpc = 1851,
+  PSTXV = 1852,
+  PSTXVP = 1853,
+  PSTXVPnopc = 1854,
+  PSTXVPonlypc = 1855,
+  PSTXVPpc = 1856,
+  PSTXVnopc = 1857,
+  PSTXVonlypc = 1858,
+  PSTXVpc = 1859,
+  PTESYNCIO = 1860,
+  PseudoEIEIO = 1861,
+  RESTORE_ACC = 1862,
+  RESTORE_CR = 1863,
+  RESTORE_CRBIT = 1864,
+  RESTORE_DMR = 1865,
+  RESTORE_DMRP = 1866,
+  RESTORE_QUADWORD = 1867,
+  RESTORE_UACC = 1868,
+  RESTORE_WACC = 1869,
+  RFCI = 1870,
+  RFDI = 1871,
+  RFEBB = 1872,
+  RFI = 1873,
+  RFID = 1874,
+  RFMCI = 1875,
+  RLDCL = 1876,
+  RLDCL_rec = 1877,
+  RLDCR = 1878,
+  RLDCR_rec = 1879,
+  RLDIC = 1880,
+  RLDICL = 1881,
+  RLDICL_32 = 1882,
+  RLDICL_32_64 = 1883,
+  RLDICL_32_rec = 1884,
+  RLDICL_rec = 1885,
+  RLDICR = 1886,
+  RLDICR_32 = 1887,
+  RLDICR_rec = 1888,
+  RLDIC_rec = 1889,
+  RLDIMI = 1890,
+  RLDIMI_rec = 1891,
+  RLWIMI = 1892,
+  RLWIMI8 = 1893,
+  RLWIMI8_rec = 1894,
+  RLWIMI_rec = 1895,
+  RLWINM = 1896,
+  RLWINM8 = 1897,
+  RLWINM8_rec = 1898,
+  RLWINM_rec = 1899,
+  RLWNM = 1900,
+  RLWNM8 = 1901,
+  RLWNM8_rec = 1902,
+  RLWNM_rec = 1903,
+  ReadTB = 1904,
+  SC = 1905,
+  SCV = 1906,
+  SELECT_CC_F16 = 1907,
+  SELECT_CC_F4 = 1908,
+  SELECT_CC_F8 = 1909,
+  SELECT_CC_I4 = 1910,
+  SELECT_CC_I8 = 1911,
+  SELECT_CC_SPE = 1912,
+  SELECT_CC_SPE4 = 1913,
+  SELECT_CC_VRRC = 1914,
+  SELECT_CC_VSFRC = 1915,
+  SELECT_CC_VSRC = 1916,
+  SELECT_CC_VSSRC = 1917,
+  SELECT_F16 = 1918,
+  SELECT_F4 = 1919,
+  SELECT_F8 = 1920,
+  SELECT_I4 = 1921,
+  SELECT_I8 = 1922,
+  SELECT_SPE = 1923,
+  SELECT_SPE4 = 1924,
+  SELECT_VRRC = 1925,
+  SELECT_VSFRC = 1926,
+  SELECT_VSRC = 1927,
+  SELECT_VSSRC = 1928,
+  SETB = 1929,
+  SETB8 = 1930,
+  SETBC = 1931,
+  SETBC8 = 1932,
+  SETBCR = 1933,
+  SETBCR8 = 1934,
+  SETFLM = 1935,
+  SETNBC = 1936,
+  SETNBC8 = 1937,
+  SETNBCR = 1938,
+  SETNBCR8 = 1939,
+  SETRND = 1940,
+  SETRNDi = 1941,
+  SLBFEE_rec = 1942,
+  SLBIA = 1943,
+  SLBIE = 1944,
+  SLBIEG = 1945,
+  SLBMFEE = 1946,
+  SLBMFEV = 1947,
+  SLBMTE = 1948,
+  SLBSYNC = 1949,
+  SLD = 1950,
+  SLD_rec = 1951,
+  SLW = 1952,
+  SLW8 = 1953,
+  SLW8_rec = 1954,
+  SLW_rec = 1955,
+  SPELWZ = 1956,
+  SPELWZX = 1957,
+  SPESTW = 1958,
+  SPESTWX = 1959,
+  SPILL_ACC = 1960,
+  SPILL_CR = 1961,
+  SPILL_CRBIT = 1962,
+  SPILL_DMR = 1963,
+  SPILL_DMRP = 1964,
+  SPILL_QUADWORD = 1965,
+  SPILL_UACC = 1966,
+  SPILL_WACC = 1967,
+  SPLIT_QUADWORD = 1968,
+  SRAD = 1969,
+  SRADI = 1970,
+  SRADI_32 = 1971,
+  SRADI_rec = 1972,
+  SRAD_rec = 1973,
+  SRAW = 1974,
+  SRAW8 = 1975,
+  SRAW8_rec = 1976,
+  SRAWI = 1977,
+  SRAWI8 = 1978,
+  SRAWI8_rec = 1979,
+  SRAWI_rec = 1980,
+  SRAW_rec = 1981,
+  SRD = 1982,
+  SRD_rec = 1983,
+  SRW = 1984,
+  SRW8 = 1985,
+  SRW8_rec = 1986,
+  SRW_rec = 1987,
+  STB = 1988,
+  STB8 = 1989,
+  STBCIX = 1990,
+  STBCX = 1991,
+  STBEPX = 1992,
+  STBU = 1993,
+  STBU8 = 1994,
+  STBUX = 1995,
+  STBUX8 = 1996,
+  STBX = 1997,
+  STBX8 = 1998,
+  STBXTLS = 1999,
+  STBXTLS_ = 2000,
+  STBXTLS_32 = 2001,
+  STD = 2002,
+  STDAT = 2003,
+  STDBRX = 2004,
+  STDCIX = 2005,
+  STDCX = 2006,
+  STDU = 2007,
+  STDUX = 2008,
+  STDX = 2009,
+  STDXTLS = 2010,
+  STDXTLS_ = 2011,
+  STFD = 2012,
+  STFDEPX = 2013,
+  STFDU = 2014,
+  STFDUX = 2015,
+  STFDX = 2016,
+  STFDXTLS = 2017,
+  STFDXTLS_ = 2018,
+  STFIWX = 2019,
+  STFS = 2020,
+  STFSU = 2021,
+  STFSUX = 2022,
+  STFSX = 2023,
+  STFSXTLS = 2024,
+  STFSXTLS_ = 2025,
+  STH = 2026,
+  STH8 = 2027,
+  STHBRX = 2028,
+  STHCIX = 2029,
+  STHCX = 2030,
+  STHEPX = 2031,
+  STHU = 2032,
+  STHU8 = 2033,
+  STHUX = 2034,
+  STHUX8 = 2035,
+  STHX = 2036,
+  STHX8 = 2037,
+  STHXTLS = 2038,
+  STHXTLS_ = 2039,
+  STHXTLS_32 = 2040,
+  STMW = 2041,
+  STOP = 2042,
+  STQ = 2043,
+  STQCX = 2044,
+  STQX_PSEUDO = 2045,
+  STSWI = 2046,
+  STVEBX = 2047,
+  STVEHX = 2048,
+  STVEWX = 2049,
+  STVX = 2050,
+  STVXL = 2051,
+  STW = 2052,
+  STW8 = 2053,
+  STWAT = 2054,
+  STWBRX = 2055,
+  STWCIX = 2056,
+  STWCX = 2057,
+  STWEPX = 2058,
+  STWU = 2059,
+  STWU8 = 2060,
+  STWUX = 2061,
+  STWUX8 = 2062,
+  STWX = 2063,
+  STWX8 = 2064,
+  STWXTLS = 2065,
+  STWXTLS_ = 2066,
+  STWXTLS_32 = 2067,
+  STXSD = 2068,
+  STXSDX = 2069,
+  STXSIBX = 2070,
+  STXSIBXv = 2071,
+  STXSIHX = 2072,
+  STXSIHXv = 2073,
+  STXSIWX = 2074,
+  STXSSP = 2075,
+  STXSSPX = 2076,
+  STXV = 2077,
+  STXVB16X = 2078,
+  STXVD2X = 2079,
+  STXVH8X = 2080,
+  STXVL = 2081,
+  STXVLL = 2082,
+  STXVP = 2083,
+  STXVPB32X = 2084,
+  STXVPRL = 2085,
+  STXVPRLL = 2086,
+  STXVPX = 2087,
+  STXVRBX = 2088,
+  STXVRDX = 2089,
+  STXVRHX = 2090,
+  STXVRL = 2091,
+  STXVRLL = 2092,
+  STXVRWX = 2093,
+  STXVW4X = 2094,
+  STXVX = 2095,
+  SUBF = 2096,
+  SUBF8 = 2097,
+  SUBF8O = 2098,
+  SUBF8O_rec = 2099,
+  SUBF8_rec = 2100,
+  SUBFC = 2101,
+  SUBFC8 = 2102,
+  SUBFC8O = 2103,
+  SUBFC8O_rec = 2104,
+  SUBFC8_rec = 2105,
+  SUBFCO = 2106,
+  SUBFCO_rec = 2107,
+  SUBFC_rec = 2108,
+  SUBFE = 2109,
+  SUBFE8 = 2110,
+  SUBFE8O = 2111,
+  SUBFE8O_rec = 2112,
+  SUBFE8_rec = 2113,
+  SUBFEO = 2114,
+  SUBFEO_rec = 2115,
+  SUBFE_rec = 2116,
+  SUBFIC = 2117,
+  SUBFIC8 = 2118,
+  SUBFME = 2119,
+  SUBFME8 = 2120,
+  SUBFME8O = 2121,
+  SUBFME8O_rec = 2122,
+  SUBFME8_rec = 2123,
+  SUBFMEO = 2124,
+  SUBFMEO_rec = 2125,
+  SUBFME_rec = 2126,
+  SUBFO = 2127,
+  SUBFO_rec = 2128,
+  SUBFUS = 2129,
+  SUBFUS_rec = 2130,
+  SUBFZE = 2131,
+  SUBFZE8 = 2132,
+  SUBFZE8O = 2133,
+  SUBFZE8O_rec = 2134,
+  SUBFZE8_rec = 2135,
+  SUBFZEO = 2136,
+  SUBFZEO_rec = 2137,
+  SUBFZE_rec = 2138,
+  SUBF_rec = 2139,
+  SYNC = 2140,
+  SYNCP10 = 2141,
+  TABORT = 2142,
+  TABORTDC = 2143,
+  TABORTDCI = 2144,
+  TABORTWC = 2145,
+  TABORTWCI = 2146,
+  TAILB = 2147,
+  TAILB8 = 2148,
+  TAILBA = 2149,
+  TAILBA8 = 2150,
+  TAILBCTR = 2151,
+  TAILBCTR8 = 2152,
+  TBEGIN = 2153,
+  TBEGIN_RET = 2154,
+  TCHECK = 2155,
+  TCHECK_RET = 2156,
+  TCRETURNai = 2157,
+  TCRETURNai8 = 2158,
+  TCRETURNdi = 2159,
+  TCRETURNdi8 = 2160,
+  TCRETURNri = 2161,
+  TCRETURNri8 = 2162,
+  TD = 2163,
+  TDI = 2164,
+  TEND = 2165,
+  TLBIA = 2166,
+  TLBIE = 2167,
+  TLBIE8P9 = 2168,
+  TLBIEIO = 2169,
+  TLBIEL = 2170,
+  TLBIEP = 2171,
+  TLBIEP8 = 2172,
+  TLBIEP9 = 2173,
+  TLBILX = 2174,
+  TLBIVAX = 2175,
+  TLBLD = 2176,
+  TLBLI = 2177,
+  TLBRE = 2178,
+  TLBRE2 = 2179,
+  TLBSX = 2180,
+  TLBSX2 = 2181,
+  TLBSX2D = 2182,
+  TLBSYNC = 2183,
+  TLBSYNCIO = 2184,
+  TLBWE = 2185,
+  TLBWE2 = 2186,
+  TLSGDAIX = 2187,
+  TLSGDAIX8 = 2188,
+  TLSLDAIX = 2189,
+  TLSLDAIX8 = 2190,
+  TRAP = 2191,
+  TRECHKPT = 2192,
+  TRECLAIM = 2193,
+  TSR = 2194,
+  TW = 2195,
+  TWI = 2196,
+  UNENCODED_NOP = 2197,
+  UpdateGBR = 2198,
+  VABSDUB = 2199,
+  VABSDUH = 2200,
+  VABSDUW = 2201,
+  VADDCUQ = 2202,
+  VADDCUW = 2203,
+  VADDECUQ = 2204,
+  VADDEUQM = 2205,
+  VADDFP = 2206,
+  VADDSBS = 2207,
+  VADDSHS = 2208,
+  VADDSWS = 2209,
+  VADDUBM = 2210,
+  VADDUBS = 2211,
+  VADDUDM = 2212,
+  VADDUHM = 2213,
+  VADDUHS = 2214,
+  VADDUQM = 2215,
+  VADDUWM = 2216,
+  VADDUWS = 2217,
+  VAND = 2218,
+  VANDC = 2219,
+  VAVGSB = 2220,
+  VAVGSH = 2221,
+  VAVGSW = 2222,
+  VAVGUB = 2223,
+  VAVGUH = 2224,
+  VAVGUW = 2225,
+  VBPERMD = 2226,
+  VBPERMQ = 2227,
+  VCFSX = 2228,
+  VCFSX_0 = 2229,
+  VCFUGED = 2230,
+  VCFUX = 2231,
+  VCFUX_0 = 2232,
+  VCIPHER = 2233,
+  VCIPHERLAST = 2234,
+  VCLRLB = 2235,
+  VCLRRB = 2236,
+  VCLZB = 2237,
+  VCLZD = 2238,
+  VCLZDM = 2239,
+  VCLZH = 2240,
+  VCLZLSBB = 2241,
+  VCLZW = 2242,
+  VCMPBFP = 2243,
+  VCMPBFP_rec = 2244,
+  VCMPEQFP = 2245,
+  VCMPEQFP_rec = 2246,
+  VCMPEQUB = 2247,
+  VCMPEQUB_rec = 2248,
+  VCMPEQUD = 2249,
+  VCMPEQUD_rec = 2250,
+  VCMPEQUH = 2251,
+  VCMPEQUH_rec = 2252,
+  VCMPEQUQ = 2253,
+  VCMPEQUQ_rec = 2254,
+  VCMPEQUW = 2255,
+  VCMPEQUW_rec = 2256,
+  VCMPGEFP = 2257,
+  VCMPGEFP_rec = 2258,
+  VCMPGTFP = 2259,
+  VCMPGTFP_rec = 2260,
+  VCMPGTSB = 2261,
+  VCMPGTSB_rec = 2262,
+  VCMPGTSD = 2263,
+  VCMPGTSD_rec = 2264,
+  VCMPGTSH = 2265,
+  VCMPGTSH_rec = 2266,
+  VCMPGTSQ = 2267,
+  VCMPGTSQ_rec = 2268,
+  VCMPGTSW = 2269,
+  VCMPGTSW_rec = 2270,
+  VCMPGTUB = 2271,
+  VCMPGTUB_rec = 2272,
+  VCMPGTUD = 2273,
+  VCMPGTUD_rec = 2274,
+  VCMPGTUH = 2275,
+  VCMPGTUH_rec = 2276,
+  VCMPGTUQ = 2277,
+  VCMPGTUQ_rec = 2278,
+  VCMPGTUW = 2279,
+  VCMPGTUW_rec = 2280,
+  VCMPNEB = 2281,
+  VCMPNEB_rec = 2282,
+  VCMPNEH = 2283,
+  VCMPNEH_rec = 2284,
+  VCMPNEW = 2285,
+  VCMPNEW_rec = 2286,
+  VCMPNEZB = 2287,
+  VCMPNEZB_rec = 2288,
+  VCMPNEZH = 2289,
+  VCMPNEZH_rec = 2290,
+  VCMPNEZW = 2291,
+  VCMPNEZW_rec = 2292,
+  VCMPSQ = 2293,
+  VCMPUQ = 2294,
+  VCNTMBB = 2295,
+  VCNTMBD = 2296,
+  VCNTMBH = 2297,
+  VCNTMBW = 2298,
+  VCTSXS = 2299,
+  VCTSXS_0 = 2300,
+  VCTUXS = 2301,
+  VCTUXS_0 = 2302,
+  VCTZB = 2303,
+  VCTZD = 2304,
+  VCTZDM = 2305,
+  VCTZH = 2306,
+  VCTZLSBB = 2307,
+  VCTZW = 2308,
+  VDIVESD = 2309,
+  VDIVESQ = 2310,
+  VDIVESW = 2311,
+  VDIVEUD = 2312,
+  VDIVEUQ = 2313,
+  VDIVEUW = 2314,
+  VDIVSD = 2315,
+  VDIVSQ = 2316,
+  VDIVSW = 2317,
+  VDIVUD = 2318,
+  VDIVUQ = 2319,
+  VDIVUW = 2320,
+  VEQV = 2321,
+  VEXPANDBM = 2322,
+  VEXPANDDM = 2323,
+  VEXPANDHM = 2324,
+  VEXPANDQM = 2325,
+  VEXPANDWM = 2326,
+  VEXPTEFP = 2327,
+  VEXTDDVLX = 2328,
+  VEXTDDVRX = 2329,
+  VEXTDUBVLX = 2330,
+  VEXTDUBVRX = 2331,
+  VEXTDUHVLX = 2332,
+  VEXTDUHVRX = 2333,
+  VEXTDUWVLX = 2334,
+  VEXTDUWVRX = 2335,
+  VEXTRACTBM = 2336,
+  VEXTRACTD = 2337,
+  VEXTRACTDM = 2338,
+  VEXTRACTHM = 2339,
+  VEXTRACTQM = 2340,
+  VEXTRACTUB = 2341,
+  VEXTRACTUH = 2342,
+  VEXTRACTUW = 2343,
+  VEXTRACTWM = 2344,
+  VEXTSB2D = 2345,
+  VEXTSB2Ds = 2346,
+  VEXTSB2W = 2347,
+  VEXTSB2Ws = 2348,
+  VEXTSD2Q = 2349,
+  VEXTSH2D = 2350,
+  VEXTSH2Ds = 2351,
+  VEXTSH2W = 2352,
+  VEXTSH2Ws = 2353,
+  VEXTSW2D = 2354,
+  VEXTSW2Ds = 2355,
+  VEXTUBLX = 2356,
+  VEXTUBRX = 2357,
+  VEXTUHLX = 2358,
+  VEXTUHRX = 2359,
+  VEXTUWLX = 2360,
+  VEXTUWRX = 2361,
+  VGBBD = 2362,
+  VGNB = 2363,
+  VINSBLX = 2364,
+  VINSBRX = 2365,
+  VINSBVLX = 2366,
+  VINSBVRX = 2367,
+  VINSD = 2368,
+  VINSDLX = 2369,
+  VINSDRX = 2370,
+  VINSERTB = 2371,
+  VINSERTD = 2372,
+  VINSERTH = 2373,
+  VINSERTW = 2374,
+  VINSHLX = 2375,
+  VINSHRX = 2376,
+  VINSHVLX = 2377,
+  VINSHVRX = 2378,
+  VINSW = 2379,
+  VINSWLX = 2380,
+  VINSWRX = 2381,
+  VINSWVLX = 2382,
+  VINSWVRX = 2383,
+  VLOGEFP = 2384,
+  VMADDFP = 2385,
+  VMAXFP = 2386,
+  VMAXSB = 2387,
+  VMAXSD = 2388,
+  VMAXSH = 2389,
+  VMAXSW = 2390,
+  VMAXUB = 2391,
+  VMAXUD = 2392,
+  VMAXUH = 2393,
+  VMAXUW = 2394,
+  VMHADDSHS = 2395,
+  VMHRADDSHS = 2396,
+  VMINFP = 2397,
+  VMINSB = 2398,
+  VMINSD = 2399,
+  VMINSH = 2400,
+  VMINSW = 2401,
+  VMINUB = 2402,
+  VMINUD = 2403,
+  VMINUH = 2404,
+  VMINUW = 2405,
+  VMLADDUHM = 2406,
+  VMODSD = 2407,
+  VMODSQ = 2408,
+  VMODSW = 2409,
+  VMODUD = 2410,
+  VMODUQ = 2411,
+  VMODUW = 2412,
+  VMRGEW = 2413,
+  VMRGHB = 2414,
+  VMRGHH = 2415,
+  VMRGHW = 2416,
+  VMRGLB = 2417,
+  VMRGLH = 2418,
+  VMRGLW = 2419,
+  VMRGOW = 2420,
+  VMSUMCUD = 2421,
+  VMSUMMBM = 2422,
+  VMSUMSHM = 2423,
+  VMSUMSHS = 2424,
+  VMSUMUBM = 2425,
+  VMSUMUDM = 2426,
+  VMSUMUHM = 2427,
+  VMSUMUHS = 2428,
+  VMUL10CUQ = 2429,
+  VMUL10ECUQ = 2430,
+  VMUL10EUQ = 2431,
+  VMUL10UQ = 2432,
+  VMULESB = 2433,
+  VMULESD = 2434,
+  VMULESH = 2435,
+  VMULESW = 2436,
+  VMULEUB = 2437,
+  VMULEUD = 2438,
+  VMULEUH = 2439,
+  VMULEUW = 2440,
+  VMULHSD = 2441,
+  VMULHSW = 2442,
+  VMULHUD = 2443,
+  VMULHUW = 2444,
+  VMULLD = 2445,
+  VMULOSB = 2446,
+  VMULOSD = 2447,
+  VMULOSH = 2448,
+  VMULOSW = 2449,
+  VMULOUB = 2450,
+  VMULOUD = 2451,
+  VMULOUH = 2452,
+  VMULOUW = 2453,
+  VMULUWM = 2454,
+  VNAND = 2455,
+  VNCIPHER = 2456,
+  VNCIPHERLAST = 2457,
+  VNEGD = 2458,
+  VNEGW = 2459,
+  VNMSUBFP = 2460,
+  VNOR = 2461,
+  VOR = 2462,
+  VORC = 2463,
+  VPDEPD = 2464,
+  VPERM = 2465,
+  VPERMR = 2466,
+  VPERMXOR = 2467,
+  VPEXTD = 2468,
+  VPKPX = 2469,
+  VPKSDSS = 2470,
+  VPKSDUS = 2471,
+  VPKSHSS = 2472,
+  VPKSHUS = 2473,
+  VPKSWSS = 2474,
+  VPKSWUS = 2475,
+  VPKUDUM = 2476,
+  VPKUDUS = 2477,
+  VPKUHUM = 2478,
+  VPKUHUS = 2479,
+  VPKUWUM = 2480,
+  VPKUWUS = 2481,
+  VPMSUMB = 2482,
+  VPMSUMD = 2483,
+  VPMSUMH = 2484,
+  VPMSUMW = 2485,
+  VPOPCNTB = 2486,
+  VPOPCNTD = 2487,
+  VPOPCNTH = 2488,
+  VPOPCNTW = 2489,
+  VPRTYBD = 2490,
+  VPRTYBQ = 2491,
+  VPRTYBW = 2492,
+  VREFP = 2493,
+  VRFIM = 2494,
+  VRFIN = 2495,
+  VRFIP = 2496,
+  VRFIZ = 2497,
+  VRLB = 2498,
+  VRLD = 2499,
+  VRLDMI = 2500,
+  VRLDNM = 2501,
+  VRLH = 2502,
+  VRLQ = 2503,
+  VRLQMI = 2504,
+  VRLQNM = 2505,
+  VRLW = 2506,
+  VRLWMI = 2507,
+  VRLWNM = 2508,
+  VRSQRTEFP = 2509,
+  VSBOX = 2510,
+  VSEL = 2511,
+  VSHASIGMAD = 2512,
+  VSHASIGMAW = 2513,
+  VSL = 2514,
+  VSLB = 2515,
+  VSLD = 2516,
+  VSLDBI = 2517,
+  VSLDOI = 2518,
+  VSLH = 2519,
+  VSLO = 2520,
+  VSLQ = 2521,
+  VSLV = 2522,
+  VSLW = 2523,
+  VSPLTB = 2524,
+  VSPLTBs = 2525,
+  VSPLTH = 2526,
+  VSPLTHs = 2527,
+  VSPLTISB = 2528,
+  VSPLTISH = 2529,
+  VSPLTISW = 2530,
+  VSPLTW = 2531,
+  VSR = 2532,
+  VSRAB = 2533,
+  VSRAD = 2534,
+  VSRAH = 2535,
+  VSRAQ = 2536,
+  VSRAW = 2537,
+  VSRB = 2538,
+  VSRD = 2539,
+  VSRDBI = 2540,
+  VSRH = 2541,
+  VSRO = 2542,
+  VSRQ = 2543,
+  VSRV = 2544,
+  VSRW = 2545,
+  VSTRIBL = 2546,
+  VSTRIBL_rec = 2547,
+  VSTRIBR = 2548,
+  VSTRIBR_rec = 2549,
+  VSTRIHL = 2550,
+  VSTRIHL_rec = 2551,
+  VSTRIHR = 2552,
+  VSTRIHR_rec = 2553,
+  VSUBCUQ = 2554,
+  VSUBCUW = 2555,
+  VSUBECUQ = 2556,
+  VSUBEUQM = 2557,
+  VSUBFP = 2558,
+  VSUBSBS = 2559,
+  VSUBSHS = 2560,
+  VSUBSWS = 2561,
+  VSUBUBM = 2562,
+  VSUBUBS = 2563,
+  VSUBUDM = 2564,
+  VSUBUHM = 2565,
+  VSUBUHS = 2566,
+  VSUBUQM = 2567,
+  VSUBUWM = 2568,
+  VSUBUWS = 2569,
+  VSUM2SWS = 2570,
+  VSUM4SBS = 2571,
+  VSUM4SHS = 2572,
+  VSUM4UBS = 2573,
+  VSUMSWS = 2574,
+  VUCMPRHB = 2575,
+  VUCMPRHH = 2576,
+  VUCMPRHN = 2577,
+  VUCMPRLB = 2578,
+  VUCMPRLH = 2579,
+  VUCMPRLN = 2580,
+  VUPKHPX = 2581,
+  VUPKHSB = 2582,
+  VUPKHSH = 2583,
+  VUPKHSNTOB = 2584,
+  VUPKHSW = 2585,
+  VUPKINT4TOBF16 = 2586,
+  VUPKINT4TOFP32 = 2587,
+  VUPKINT8TOBF16 = 2588,
+  VUPKINT8TOFP32 = 2589,
+  VUPKLPX = 2590,
+  VUPKLSB = 2591,
+  VUPKLSH = 2592,
+  VUPKLSNTOB = 2593,
+  VUPKLSW = 2594,
+  VXOR = 2595,
+  V_SET0 = 2596,
+  V_SET0B = 2597,
+  V_SET0H = 2598,
+  V_SETALLONES = 2599,
+  V_SETALLONESB = 2600,
+  V_SETALLONESH = 2601,
+  WAIT = 2602,
+  WAITP10 = 2603,
+  WRTEE = 2604,
+  WRTEEI = 2605,
+  XOR = 2606,
+  XOR8 = 2607,
+  XOR8_rec = 2608,
+  XORI = 2609,
+  XORI8 = 2610,
+  XORIS = 2611,
+  XORIS8 = 2612,
+  XOR_rec = 2613,
+  XSABSDP = 2614,
+  XSABSQP = 2615,
+  XSADDADDSUQM = 2616,
+  XSADDADDUQM = 2617,
+  XSADDDP = 2618,
+  XSADDQP = 2619,
+  XSADDQPO = 2620,
+  XSADDSP = 2621,
+  XSADDSUBSUQM = 2622,
+  XSADDSUBUQM = 2623,
+  XSCMPEQDP = 2624,
+  XSCMPEQQP = 2625,
+  XSCMPEXPDP = 2626,
+  XSCMPEXPQP = 2627,
+  XSCMPGEDP = 2628,
+  XSCMPGEQP = 2629,
+  XSCMPGTDP = 2630,
+  XSCMPGTQP = 2631,
+  XSCMPODP = 2632,
+  XSCMPOQP = 2633,
+  XSCMPUDP = 2634,
+  XSCMPUQP = 2635,
+  XSCPSGNDP = 2636,
+  XSCPSGNQP = 2637,
+  XSCVDPHP = 2638,
+  XSCVDPQP = 2639,
+  XSCVDPSP = 2640,
+  XSCVDPSPN = 2641,
+  XSCVDPSXDS = 2642,
+  XSCVDPSXDSs = 2643,
+  XSCVDPSXWS = 2644,
+  XSCVDPSXWSs = 2645,
+  XSCVDPUXDS = 2646,
+  XSCVDPUXDSs = 2647,
+  XSCVDPUXWS = 2648,
+  XSCVDPUXWSs = 2649,
+  XSCVHPDP = 2650,
+  XSCVQPDP = 2651,
+  XSCVQPDPO = 2652,
+  XSCVQPSDZ = 2653,
+  XSCVQPSQZ = 2654,
+  XSCVQPSWZ = 2655,
+  XSCVQPUDZ = 2656,
+  XSCVQPUQZ = 2657,
+  XSCVQPUWZ = 2658,
+  XSCVSDQP = 2659,
+  XSCVSPDP = 2660,
+  XSCVSPDPN = 2661,
+  XSCVSQQP = 2662,
+  XSCVSXDDP = 2663,
+  XSCVSXDSP = 2664,
+  XSCVUDQP = 2665,
+  XSCVUQQP = 2666,
+  XSCVUXDDP = 2667,
+  XSCVUXDSP = 2668,
+  XSDIVDP = 2669,
+  XSDIVQP = 2670,
+  XSDIVQPO = 2671,
+  XSDIVSP = 2672,
+  XSIEXPDP = 2673,
+  XSIEXPQP = 2674,
+  XSMADDADP = 2675,
+  XSMADDASP = 2676,
+  XSMADDMDP = 2677,
+  XSMADDMSP = 2678,
+  XSMADDQP = 2679,
+  XSMADDQPO = 2680,
+  XSMAXCDP = 2681,
+  XSMAXCQP = 2682,
+  XSMAXDP = 2683,
+  XSMAXJDP = 2684,
+  XSMERGE2T1UQM = 2685,
+  XSMERGE2T2UQM = 2686,
+  XSMERGE2T3UQM = 2687,
+  XSMERGE3T1UQM = 2688,
+  XSMINCDP = 2689,
+  XSMINCQP = 2690,
+  XSMINDP = 2691,
+  XSMINJDP = 2692,
+  XSMSUBADP = 2693,
+  XSMSUBASP = 2694,
+  XSMSUBMDP = 2695,
+  XSMSUBMSP = 2696,
+  XSMSUBQP = 2697,
+  XSMSUBQPO = 2698,
+  XSMULDP = 2699,
+  XSMULQP = 2700,
+  XSMULQPO = 2701,
+  XSMULSP = 2702,
+  XSNABSDP = 2703,
+  XSNABSDPs = 2704,
+  XSNABSQP = 2705,
+  XSNEGDP = 2706,
+  XSNEGQP = 2707,
+  XSNMADDADP = 2708,
+  XSNMADDASP = 2709,
+  XSNMADDMDP = 2710,
+  XSNMADDMSP = 2711,
+  XSNMADDQP = 2712,
+  XSNMADDQPO = 2713,
+  XSNMSUBADP = 2714,
+  XSNMSUBASP = 2715,
+  XSNMSUBMDP = 2716,
+  XSNMSUBMSP = 2717,
+  XSNMSUBQP = 2718,
+  XSNMSUBQPO = 2719,
+  XSRDPI = 2720,
+  XSRDPIC = 2721,
+  XSRDPIM = 2722,
+  XSRDPIP = 2723,
+  XSRDPIZ = 2724,
+  XSREBASE2T1UQM = 2725,
+  XSREBASE2T2UQM = 2726,
+  XSREBASE2T3UQM = 2727,
+  XSREBASE2T4UQM = 2728,
+  XSREBASE3T1UQM = 2729,
+  XSREBASE3T2UQM = 2730,
+  XSREBASE3T3UQM = 2731,
+  XSREDP = 2732,
+  XSRESP = 2733,
+  XSRQPI = 2734,
+  XSRQPIX = 2735,
+  XSRQPXP = 2736,
+  XSRSP = 2737,
+  XSRSQRTEDP = 2738,
+  XSRSQRTESP = 2739,
+  XSSQRTDP = 2740,
+  XSSQRTQP = 2741,
+  XSSQRTQPO = 2742,
+  XSSQRTSP = 2743,
+  XSSUBDP = 2744,
+  XSSUBQP = 2745,
+  XSSUBQPO = 2746,
+  XSSUBSP = 2747,
+  XSTDIVDP = 2748,
+  XSTSQRTDP = 2749,
+  XSTSTDCDP = 2750,
+  XSTSTDCQP = 2751,
+  XSTSTDCSP = 2752,
+  XSXEXPDP = 2753,
+  XSXEXPQP = 2754,
+  XSXSIGDP = 2755,
+  XSXSIGQP = 2756,
+  XVABSDP = 2757,
+  XVABSSP = 2758,
+  XVADDDP = 2759,
+  XVADDSP = 2760,
+  XVADDUHM = 2761,
+  XVADDUWM = 2762,
+  XVBF16GER2 = 2763,
+  XVBF16GER2NN = 2764,
+  XVBF16GER2NP = 2765,
+  XVBF16GER2PN = 2766,
+  XVBF16GER2PP = 2767,
+  XVBF16GER2W = 2768,
+  XVBF16GER2WNN = 2769,
+  XVBF16GER2WNP = 2770,
+  XVBF16GER2WPN = 2771,
+  XVBF16GER2WPP = 2772,
+  XVCMPEQDP = 2773,
+  XVCMPEQDP_rec = 2774,
+  XVCMPEQSP = 2775,
+  XVCMPEQSP_rec = 2776,
+  XVCMPGEDP = 2777,
+  XVCMPGEDP_rec = 2778,
+  XVCMPGESP = 2779,
+  XVCMPGESP_rec = 2780,
+  XVCMPGTDP = 2781,
+  XVCMPGTDP_rec = 2782,
+  XVCMPGTSP = 2783,
+  XVCMPGTSP_rec = 2784,
+  XVCPSGNDP = 2785,
+  XVCPSGNSP = 2786,
+  XVCVBF16SPN = 2787,
+  XVCVDPSP = 2788,
+  XVCVDPSXDS = 2789,
+  XVCVDPSXWS = 2790,
+  XVCVDPUXDS = 2791,
+  XVCVDPUXWS = 2792,
+  XVCVHPSP = 2793,
+  XVCVSPBF16 = 2794,
+  XVCVSPDP = 2795,
+  XVCVSPHP = 2796,
+  XVCVSPSXDS = 2797,
+  XVCVSPSXWS = 2798,
+  XVCVSPUXDS = 2799,
+  XVCVSPUXWS = 2800,
+  XVCVSXDDP = 2801,
+  XVCVSXDSP = 2802,
+  XVCVSXWDP = 2803,
+  XVCVSXWSP = 2804,
+  XVCVUXDDP = 2805,
+  XVCVUXDSP = 2806,
+  XVCVUXWDP = 2807,
+  XVCVUXWSP = 2808,
+  XVDIVDP = 2809,
+  XVDIVSP = 2810,
+  XVF16GER2 = 2811,
+  XVF16GER2NN = 2812,
+  XVF16GER2NP = 2813,
+  XVF16GER2PN = 2814,
+  XVF16GER2PP = 2815,
+  XVF16GER2W = 2816,
+  XVF16GER2WNN = 2817,
+  XVF16GER2WNP = 2818,
+  XVF16GER2WPN = 2819,
+  XVF16GER2WPP = 2820,
+  XVF32GER = 2821,
+  XVF32GERNN = 2822,
+  XVF32GERNP = 2823,
+  XVF32GERPN = 2824,
+  XVF32GERPP = 2825,
+  XVF32GERW = 2826,
+  XVF32GERWNN = 2827,
+  XVF32GERWNP = 2828,
+  XVF32GERWPN = 2829,
+  XVF32GERWPP = 2830,
+  XVF64GER = 2831,
+  XVF64GERNN = 2832,
+  XVF64GERNP = 2833,
+  XVF64GERPN = 2834,
+  XVF64GERPP = 2835,
+  XVF64GERW = 2836,
+  XVF64GERWNN = 2837,
+  XVF64GERWNP = 2838,
+  XVF64GERWPN = 2839,
+  XVF64GERWPP = 2840,
+  XVI16GER2 = 2841,
+  XVI16GER2PP = 2842,
+  XVI16GER2S = 2843,
+  XVI16GER2SPP = 2844,
+  XVI16GER2SW = 2845,
+  XVI16GER2SWPP = 2846,
+  XVI16GER2W = 2847,
+  XVI16GER2WPP = 2848,
+  XVI4GER8 = 2849,
+  XVI4GER8PP = 2850,
+  XVI4GER8W = 2851,
+  XVI4GER8WPP = 2852,
+  XVI8GER4 = 2853,
+  XVI8GER4PP = 2854,
+  XVI8GER4SPP = 2855,
+  XVI8GER4W = 2856,
+  XVI8GER4WPP = 2857,
+  XVI8GER4WSPP = 2858,
+  XVIEXPDP = 2859,
+  XVIEXPSP = 2860,
+  XVMADDADP = 2861,
+  XVMADDASP = 2862,
+  XVMADDMDP = 2863,
+  XVMADDMSP = 2864,
+  XVMAXDP = 2865,
+  XVMAXSP = 2866,
+  XVMINDP = 2867,
+  XVMINSP = 2868,
+  XVMSUBADP = 2869,
+  XVMSUBASP = 2870,
+  XVMSUBMDP = 2871,
+  XVMSUBMSP = 2872,
+  XVMULDP = 2873,
+  XVMULHSH = 2874,
+  XVMULHSW = 2875,
+  XVMULHUH = 2876,
+  XVMULHUW = 2877,
+  XVMULSP = 2878,
+  XVMULUHM = 2879,
+  XVMULUWM = 2880,
+  XVNABSDP = 2881,
+  XVNABSSP = 2882,
+  XVNEGDP = 2883,
+  XVNEGSP = 2884,
+  XVNMADDADP = 2885,
+  XVNMADDASP = 2886,
+  XVNMADDMDP = 2887,
+  XVNMADDMSP = 2888,
+  XVNMSUBADP = 2889,
+  XVNMSUBASP = 2890,
+  XVNMSUBMDP = 2891,
+  XVNMSUBMSP = 2892,
+  XVRDPI = 2893,
+  XVRDPIC = 2894,
+  XVRDPIM = 2895,
+  XVRDPIP = 2896,
+  XVRDPIZ = 2897,
+  XVREDP = 2898,
+  XVRESP = 2899,
+  XVRLW = 2900,
+  XVRSPI = 2901,
+  XVRSPIC = 2902,
+  XVRSPIM = 2903,
+  XVRSPIP = 2904,
+  XVRSPIZ = 2905,
+  XVRSQRTEDP = 2906,
+  XVRSQRTESP = 2907,
+  XVSQRTDP = 2908,
+  XVSQRTSP = 2909,
+  XVSUBDP = 2910,
+  XVSUBSP = 2911,
+  XVSUBUHM = 2912,
+  XVSUBUWM = 2913,
+  XVTDIVDP = 2914,
+  XVTDIVSP = 2915,
+  XVTLSBB = 2916,
+  XVTSQRTDP = 2917,
+  XVTSQRTSP = 2918,
+  XVTSTDCDP = 2919,
+  XVTSTDCSP = 2920,
+  XVXEXPDP = 2921,
+  XVXEXPSP = 2922,
+  XVXSIGDP = 2923,
+  XVXSIGSP = 2924,
+  XXAESDECP = 2925,
+  XXAESENCP = 2926,
+  XXAESGENLKP = 2927,
+  XXBLENDVB = 2928,
+  XXBLENDVD = 2929,
+  XXBLENDVH = 2930,
+  XXBLENDVW = 2931,
+  XXBRD = 2932,
+  XXBRH = 2933,
+  XXBRQ = 2934,
+  XXBRW = 2935,
+  XXEVAL = 2936,
+  XXEXTRACTUW = 2937,
+  XXGENPCVBM = 2938,
+  XXGENPCVDM = 2939,
+  XXGENPCVHM = 2940,
+  XXGENPCVWM = 2941,
+  XXGFMUL128 = 2942,
+  XXINSERTW = 2943,
+  XXLAND = 2944,
+  XXLANDC = 2945,
+  XXLEQV = 2946,
+  XXLEQVOnes = 2947,
+  XXLNAND = 2948,
+  XXLNOR = 2949,
+  XXLOR = 2950,
+  XXLORC = 2951,
+  XXLORf = 2952,
+  XXLXOR = 2953,
+  XXLXORdpz = 2954,
+  XXLXORspz = 2955,
+  XXLXORz = 2956,
+  XXMFACC = 2957,
+  XXMFACCW = 2958,
+  XXMRGHW = 2959,
+  XXMRGLW = 2960,
+  XXMTACC = 2961,
+  XXMTACCW = 2962,
+  XXMULMUL = 2963,
+  XXMULMULHIADD = 2964,
+  XXMULMULLOADD = 2965,
+  XXPERM = 2966,
+  XXPERMDI = 2967,
+  XXPERMDIs = 2968,
+  XXPERMR = 2969,
+  XXPERMX = 2970,
+  XXSEL = 2971,
+  XXSETACCZ = 2972,
+  XXSLDWI = 2973,
+  XXSLDWIs = 2974,
+  XXSPLTI32DX = 2975,
+  XXSPLTIB = 2976,
+  XXSPLTIDP = 2977,
+  XXSPLTIW = 2978,
+  XXSPLTW = 2979,
+  XXSPLTWs = 2980,
+  XXSSUMUDM = 2981,
+  XXSSUMUDMC = 2982,
+  XXSSUMUDMCEXT = 2983,
+  gBC = 2984,
+  gBCA = 2985,
+  gBCAat = 2986,
+  gBCCTR = 2987,
+  gBCCTRL = 2988,
+  gBCL = 2989,
+  gBCLA = 2990,
+  gBCLAat = 2991,
+  gBCLR = 2992,
+  gBCLRL = 2993,
+  gBCLat = 2994,
+  gBCat = 2995,
+  INSTRUCTION_LIST_END = 2996,
 };
 }
 }
diff --git a/deps/LIEF/include/LIEF/asm/powerpc/operands.hpp b/deps/LIEF/include/LIEF/asm/powerpc/operands.hpp
new file mode 100644
index 00000000000..ec280f53a00
--- /dev/null
+++ b/deps/LIEF/include/LIEF/asm/powerpc/operands.hpp
@@ -0,0 +1,22 @@
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
+ *
+ * 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.
+ */
+#ifndef LIEF_ASM_POWERPC_OPERANDS_H
+#define LIEF_ASM_POWERPC_OPERANDS_H
+#include <LIEF/asm/powerpc/operands/Register.hpp>
+#include <LIEF/asm/powerpc/operands/Immediate.hpp>
+#include <LIEF/asm/powerpc/operands/PCRelative.hpp>
+#include <LIEF/asm/powerpc/operands/Memory.hpp>
+#endif
diff --git a/deps/LIEF/include/LIEF/asm/powerpc/operands/Immediate.hpp b/deps/LIEF/include/LIEF/asm/powerpc/operands/Immediate.hpp
new file mode 100644
index 00000000000..42da450f77e
--- /dev/null
+++ b/deps/LIEF/include/LIEF/asm/powerpc/operands/Immediate.hpp
@@ -0,0 +1,49 @@
+/* Copyright 2022 - 2026 R. Thomas
+ *
+ * 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.
+ */
+#ifndef LIEF_ASM_POWERPC_OPERAND_IMM_H
+#define LIEF_ASM_POWERPC_OPERAND_IMM_H
+#include "LIEF/asm/powerpc/Operand.hpp"
+
+namespace LIEF {
+namespace assembly {
+namespace powerpc {
+/// Namespace that wraps the different PowerPC operands
+namespace operands {
+
+
+/// This class represents an immediate operand (i.e. a constant)
+///
+/// For instance:
+///
+/// ```text
+/// li 3, 8
+///       |
+///       +---> Immediate(8)
+/// ```
+class LIEF_API Immediate : public Operand {
+  public:
+  using Operand::Operand;
+
+  /// The constant value wrapped by this operand
+  int64_t value() const;
+
+  static bool classof(const Operand* op);
+  ~Immediate() override = default;
+};
+}
+}
+}
+}
+#endif
diff --git a/deps/LIEF/include/LIEF/asm/powerpc/operands/Memory.hpp b/deps/LIEF/include/LIEF/asm/powerpc/operands/Memory.hpp
new file mode 100644
index 00000000000..1a87ef6f19e
--- /dev/null
+++ b/deps/LIEF/include/LIEF/asm/powerpc/operands/Memory.hpp
@@ -0,0 +1,88 @@
+/* Copyright 2022 - 2026 R. Thomas
+ *
+ * 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.
+ */
+#ifndef LIEF_ASM_POWERPC_OPERAND_MEMORY_H
+#define LIEF_ASM_POWERPC_OPERAND_MEMORY_H
+#include "LIEF/asm/powerpc/Operand.hpp"
+#include "LIEF/asm/powerpc/registers.hpp"
+
+namespace LIEF {
+namespace assembly {
+namespace powerpc {
+namespace operands {
+
+/// This class represents a memory operand.
+///
+/// PowerPC has two addressing forms:
+///
+/// ```text
+/// lwz   3, 8(4)              lwzx   3, 4, 5
+///        |  |                       |  |  |
+/// +------+  +---+            +------+   |  +---+
+/// |             |           |          |      |
+/// v             v           v          v      v
+/// Disp         Base        Reg        Base   Index
+/// ```
+class LIEF_API Memory : public Operand {
+  public:
+  using Operand::Operand;
+
+  /// Wraps the memory offset as either an integer displacement or an index
+  /// register.
+  struct offset_t {
+    /// Enum type used to discriminate the anonymous union
+    enum class TYPE {
+      NONE = 0,
+      /// The *union* holds the REG attribute
+      REG,
+      /// The *union* holds the `displacement` attribute (`int64_t`)
+      DISP,
+    };
+
+    union {
+      /// Register offset (index register)
+      REG reg;
+
+      /// Integer offset
+      int64_t displacement = 0;
+    };
+    TYPE type = TYPE::NONE;
+  };
+
+  /// The base register.
+  ///
+  /// For `lwz 3, 8(4)` it would return `4`.
+  REG base() const;
+
+  /// The addressing offset.
+  ///
+  /// It can be either:
+  /// - An index register (e.g. `lwzx 3, 4, 5`)
+  /// - A displacement (e.g. `lwz 3, 8(4)`)
+  offset_t offset() const;
+
+  /// @private
+  /// Whether the addressing offset is an index register (`true`) rather than
+  /// a constant displacement (`false`). This is redundant with offset() (which
+  /// already discriminates the two) and is kept as an internal helper.
+  LIEF_LOCAL bool has_index() const;
+
+  static bool classof(const Operand* op);
+  ~Memory() override = default;
+};
+}
+}
+}
+}
+#endif
diff --git a/deps/LIEF/include/LIEF/asm/powerpc/operands/PCRelative.hpp b/deps/LIEF/include/LIEF/asm/powerpc/operands/PCRelative.hpp
new file mode 100644
index 00000000000..a69c7ebf670
--- /dev/null
+++ b/deps/LIEF/include/LIEF/asm/powerpc/operands/PCRelative.hpp
@@ -0,0 +1,47 @@
+/* Copyright 2022 - 2026 R. Thomas
+ *
+ * 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.
+ */
+#ifndef LIEF_ASM_POWERPC_OPERAND_PCREL_H
+#define LIEF_ASM_POWERPC_OPERAND_PCREL_H
+#include "LIEF/asm/powerpc/Operand.hpp"
+
+namespace LIEF {
+namespace assembly {
+namespace powerpc {
+namespace operands {
+
+/// This class represents a PC-relative operand.
+///
+/// ```text
+/// bl 0x100
+///    |
+///    v
+///  PC Relative operand
+/// ```
+class LIEF_API PCRelative : public Operand {
+  public:
+  using Operand::Operand;
+
+  /// The effective value that is relative to the current `pc` register
+  int64_t value() const;
+
+  static bool classof(const Operand* op);
+
+  ~PCRelative() override = default;
+};
+}
+}
+}
+}
+#endif
diff --git a/deps/LIEF/include/LIEF/asm/powerpc/operands/Register.hpp b/deps/LIEF/include/LIEF/asm/powerpc/operands/Register.hpp
new file mode 100644
index 00000000000..b511f9921ff
--- /dev/null
+++ b/deps/LIEF/include/LIEF/asm/powerpc/operands/Register.hpp
@@ -0,0 +1,51 @@
+/* Copyright 2022 - 2026 R. Thomas
+ *
+ * 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.
+ */
+#ifndef LIEF_ASM_POWERPC_OPERAND_REG_H
+#define LIEF_ASM_POWERPC_OPERAND_REG_H
+
+#include "LIEF/asm/powerpc/Operand.hpp"
+#include "LIEF/asm/powerpc/registers.hpp"
+
+namespace LIEF {
+namespace assembly {
+namespace powerpc {
+namespace operands {
+
+/// This class represents a register operand.
+///
+/// For instance:
+///
+/// ```text
+/// add 3, 4, 5
+///      |  |  |
+///      |  |  +---------> Register(5)
+///      |  +------------> Register(4)
+///      +---------------> Register(3)
+/// ```
+class LIEF_API Register : public Operand {
+  public:
+  using Operand::Operand;
+
+  /// The effective REG wrapped by this operand
+  REG value() const;
+
+  static bool classof(const Operand* op);
+  ~Register() override = default;
+};
+}
+}
+}
+}
+#endif
diff --git a/deps/LIEF/include/LIEF/asm/powerpc/registers.hpp b/deps/LIEF/include/LIEF/asm/powerpc/registers.hpp
index c1005c4279d..ee61142b002 100644
--- a/deps/LIEF/include/LIEF/asm/powerpc/registers.hpp
+++ b/deps/LIEF/include/LIEF/asm/powerpc/registers.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/deps/LIEF/include/LIEF/asm/riscv.hpp b/deps/LIEF/include/LIEF/asm/riscv.hpp
index 0bcdd6ceb96..d1d9a3cb032 100644
--- a/deps/LIEF/include/LIEF/asm/riscv.hpp
+++ b/deps/LIEF/include/LIEF/asm/riscv.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -18,4 +18,5 @@
 #include <LIEF/asm/riscv/Instruction.hpp>
 #include <LIEF/asm/riscv/opcodes.hpp>
 #include <LIEF/asm/riscv/registers.hpp>
+#include <LIEF/asm/riscv/operands.hpp>
 #endif
diff --git a/deps/LIEF/include/LIEF/asm/riscv/Instruction.hpp b/deps/LIEF/include/LIEF/asm/riscv/Instruction.hpp
index e0da9480afc..d4dc4cc7f9d 100644
--- a/deps/LIEF/include/LIEF/asm/riscv/Instruction.hpp
+++ b/deps/LIEF/include/LIEF/asm/riscv/Instruction.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -15,9 +15,11 @@
 #ifndef LIEF_ASM_RISCV_INST_H
 #define LIEF_ASM_RISCV_INST_H
 #include "LIEF/visibility.h"
+#include "LIEF/compiler_attributes.hpp"

 #include "LIEF/asm/Instruction.hpp"
 #include "LIEF/asm/riscv/opcodes.hpp"
+#include "LIEF/asm/riscv/Operand.hpp"

 namespace LIEF {
 namespace assembly {
@@ -30,9 +32,14 @@ class LIEF_API Instruction : public assembly::Instruction {
   public:
   using assembly::Instruction::Instruction;

+  using operands_it = iterator_range<Operand::Iterator>;
+
   /// The instruction opcode as defined in LLVM
   OPCODE opcode() const;

+  /// Iterator over the operands of the current instruction
+  operands_it operands() const LIEF_LIFETIMEBOUND;
+
   /// True if `inst` is an **effective** instance of riscv::Instruction
   static bool classof(const assembly::Instruction* inst);

diff --git a/deps/LIEF/include/LIEF/asm/riscv/Operand.hpp b/deps/LIEF/include/LIEF/asm/riscv/Operand.hpp
new file mode 100644
index 00000000000..4ffd2df6ba7
--- /dev/null
+++ b/deps/LIEF/include/LIEF/asm/riscv/Operand.hpp
@@ -0,0 +1,136 @@
+/* Copyright 2022 - 2026 R. Thomas
+ *
+ * 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.
+ */
+#ifndef LIEF_ASM_RISCV_OPERAND_H
+#define LIEF_ASM_RISCV_OPERAND_H
+#include "LIEF/visibility.h"
+#include "LIEF/iterators.hpp"
+#include "LIEF/compiler_attributes.hpp"
+
+#include <memory>
+#include <string>
+#include <cassert>
+
+#include <ostream>
+
+namespace LIEF {
+namespace assembly {
+namespace riscv {
+
+namespace details {
+class Operand;
+class OperandIt;
+}
+
+/// This class represents an operand for a RISC-V instruction
+class LIEF_API Operand {
+  public:
+  /// **Forward** iterator that lazily disassembles riscv Operand.
+  class Iterator final
+    : public iterator_facade_base<Iterator, std::forward_iterator_tag, Operand,
+                                  std::ptrdiff_t, const Operand*, const Operand&> {
+    public:
+    using implementation = details::OperandIt;
+    using iterator_facade_base::operator++;
+
+    LIEF_API Iterator();
+
+    LIEF_API Iterator(std::unique_ptr<details::OperandIt> impl);
+    LIEF_API Iterator(const Iterator&);
+    LIEF_API Iterator& operator=(const Iterator&);
+
+    LIEF_API Iterator(Iterator&&) noexcept;
+    LIEF_API Iterator& operator=(Iterator&&) noexcept;
+
+    LIEF_API ~Iterator();
+
+    // NOLINTNEXTLINE(bugprone-derived-method-shadowing-base-method)
+    LIEF_API Iterator& operator++() LIEF_LIFETIMEBOUND;
+
+    friend LIEF_API bool operator==(const Iterator& LHS, const Iterator& RHS);
+
+    friend bool operator!=(const Iterator& LHS, const Iterator& RHS) {
+      return !(LHS == RHS);
+    }
+
+    LIEF_API const Operand& operator*() const LIEF_LIFETIMEBOUND;
+
+    // NOLINTNEXTLINE(bugprone-derived-method-shadowing-base-method)
+    LIEF_API const Operand* operator->() const LIEF_LIFETIMEBOUND;
+
+    /// Transfer ownership of the operand at the current position to the
+    /// caller. Returns `nullptr` if the iterator is past-the-end.
+    LIEF_API std::unique_ptr<Operand> yield();
+
+    private:
+    void load() const;
+
+    std::unique_ptr<details::OperandIt> impl_;
+    mutable std::unique_ptr<Operand> cached_;
+  };
+
+  /// Pretty representation of the operand
+  std::string to_string() const;
+
+  /// This function can be used to **down cast** an Operand instance:
+  ///
+  /// ```cpp
+  /// std::unique_ptr<assembly::riscv::Operand> op = ...;
+  /// if (const auto* imm = inst->as<assembly::riscv::operands::Immediate>()) {
+  ///   const int64_t value = imm->value();
+  /// }
+  /// ```
+  template<class T>
+  const T* as() const {
+    static_assert(std::is_base_of<Operand, T>::value,
+                  "Require Operand inheritance");
+    if (T::classof(this)) {
+      return static_cast<const T*>(this);
+    }
+    return nullptr;
+  }
+
+  virtual ~Operand();
+
+  /// @private
+  static LIEF_LOCAL std::unique_ptr<Operand>
+      create(std::unique_ptr<details::Operand> impl);
+
+  /// @private
+  LIEF_LOCAL const details::Operand& impl() const {
+    assert(impl_ != nullptr);
+    return *impl_;
+  }
+
+  /// @private
+  LIEF_LOCAL details::Operand& impl() {
+    assert(impl_ != nullptr);
+    return *impl_;
+  }
+
+  friend LIEF_API std::ostream& operator<<(std::ostream& os, const Operand& op) {
+    os << op.to_string();
+    return os;
+  }
+
+  protected:
+  LIEF_LOCAL Operand(std::unique_ptr<details::Operand> impl);
+  std::unique_ptr<details::Operand> impl_;
+};
+
+}
+}
+}
+
+#endif
diff --git a/deps/LIEF/include/LIEF/asm/riscv/opcodes.hpp b/deps/LIEF/include/LIEF/asm/riscv/opcodes.hpp
index a586cf8ba13..2b3d2caaf5a 100644
--- a/deps/LIEF/include/LIEF/asm/riscv/opcodes.hpp
+++ b/deps/LIEF/include/LIEF/asm/riscv/opcodes.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -15,7 +15,7 @@
 #ifndef LIEF_ASM_RISCV_OPCODE_H
 #define LIEF_ASM_RISCV_OPCODE_H

-/* Generated from LLVM: 21.1.0 */
+/* Generated from LLVM: 22.1.8 */

 namespace LIEF {
 namespace assembly {
@@ -42,14298 +42,16207 @@ enum class OPCODE {
   DBG_LABEL = 18,
   REG_SEQUENCE = 19,
   COPY = 20,
-  BUNDLE = 21,
-  LIFETIME_START = 22,
-  LIFETIME_END = 23,
-  PSEUDO_PROBE = 24,
-  ARITH_FENCE = 25,
-  STACKMAP = 26,
-  FENTRY_CALL = 27,
-  PATCHPOINT = 28,
-  LOAD_STACK_GUARD = 29,
-  PREALLOCATED_SETUP = 30,
-  PREALLOCATED_ARG = 31,
-  STATEPOINT = 32,
-  LOCAL_ESCAPE = 33,
-  FAULTING_OP = 34,
-  PATCHABLE_OP = 35,
-  PATCHABLE_FUNCTION_ENTER = 36,
-  PATCHABLE_RET = 37,
-  PATCHABLE_FUNCTION_EXIT = 38,
-  PATCHABLE_TAIL_CALL = 39,
-  PATCHABLE_EVENT_CALL = 40,
-  PATCHABLE_TYPED_EVENT_CALL = 41,
-  ICALL_BRANCH_FUNNEL = 42,
-  FAKE_USE = 43,
-  MEMBARRIER = 44,
-  JUMP_TABLE_DEBUG_INFO = 45,
-  CONVERGENCECTRL_ENTRY = 46,
-  CONVERGENCECTRL_ANCHOR = 47,
-  CONVERGENCECTRL_LOOP = 48,
-  CONVERGENCECTRL_GLUE = 49,
-  G_ASSERT_SEXT = 50,
-  G_ASSERT_ZEXT = 51,
-  G_ASSERT_ALIGN = 52,
-  G_ADD = 53,
-  G_SUB = 54,
-  G_MUL = 55,
-  G_SDIV = 56,
-  G_UDIV = 57,
-  G_SREM = 58,
-  G_UREM = 59,
-  G_SDIVREM = 60,
-  G_UDIVREM = 61,
-  G_AND = 62,
-  G_OR = 63,
-  G_XOR = 64,
-  G_ABDS = 65,
-  G_ABDU = 66,
-  G_IMPLICIT_DEF = 67,
-  G_PHI = 68,
-  G_FRAME_INDEX = 69,
-  G_GLOBAL_VALUE = 70,
-  G_PTRAUTH_GLOBAL_VALUE = 71,
-  G_CONSTANT_POOL = 72,
-  G_EXTRACT = 73,
-  G_UNMERGE_VALUES = 74,
-  G_INSERT = 75,
-  G_MERGE_VALUES = 76,
-  G_BUILD_VECTOR = 77,
-  G_BUILD_VECTOR_TRUNC = 78,
-  G_CONCAT_VECTORS = 79,
-  G_PTRTOINT = 80,
-  G_INTTOPTR = 81,
-  G_BITCAST = 82,
-  G_FREEZE = 83,
-  G_CONSTANT_FOLD_BARRIER = 84,
-  G_INTRINSIC_FPTRUNC_ROUND = 85,
-  G_INTRINSIC_TRUNC = 86,
-  G_INTRINSIC_ROUND = 87,
-  G_INTRINSIC_LRINT = 88,
-  G_INTRINSIC_LLRINT = 89,
-  G_INTRINSIC_ROUNDEVEN = 90,
-  G_READCYCLECOUNTER = 91,
-  G_READSTEADYCOUNTER = 92,
-  G_LOAD = 93,
-  G_SEXTLOAD = 94,
-  G_ZEXTLOAD = 95,
-  G_INDEXED_LOAD = 96,
-  G_INDEXED_SEXTLOAD = 97,
-  G_INDEXED_ZEXTLOAD = 98,
-  G_STORE = 99,
-  G_INDEXED_STORE = 100,
-  G_ATOMIC_CMPXCHG_WITH_SUCCESS = 101,
-  G_ATOMIC_CMPXCHG = 102,
-  G_ATOMICRMW_XCHG = 103,
-  G_ATOMICRMW_ADD = 104,
-  G_ATOMICRMW_SUB = 105,
-  G_ATOMICRMW_AND = 106,
-  G_ATOMICRMW_NAND = 107,
-  G_ATOMICRMW_OR = 108,
-  G_ATOMICRMW_XOR = 109,
-  G_ATOMICRMW_MAX = 110,
-  G_ATOMICRMW_MIN = 111,
-  G_ATOMICRMW_UMAX = 112,
-  G_ATOMICRMW_UMIN = 113,
-  G_ATOMICRMW_FADD = 114,
-  G_ATOMICRMW_FSUB = 115,
-  G_ATOMICRMW_FMAX = 116,
-  G_ATOMICRMW_FMIN = 117,
-  G_ATOMICRMW_FMAXIMUM = 118,
-  G_ATOMICRMW_FMINIMUM = 119,
-  G_ATOMICRMW_UINC_WRAP = 120,
-  G_ATOMICRMW_UDEC_WRAP = 121,
-  G_ATOMICRMW_USUB_COND = 122,
-  G_ATOMICRMW_USUB_SAT = 123,
-  G_FENCE = 124,
-  G_PREFETCH = 125,
-  G_BRCOND = 126,
-  G_BRINDIRECT = 127,
-  G_INVOKE_REGION_START = 128,
-  G_INTRINSIC = 129,
-  G_INTRINSIC_W_SIDE_EFFECTS = 130,
-  G_INTRINSIC_CONVERGENT = 131,
-  G_INTRINSIC_CONVERGENT_W_SIDE_EFFECTS = 132,
-  G_ANYEXT = 133,
-  G_TRUNC = 134,
-  G_TRUNC_SSAT_S = 135,
-  G_TRUNC_SSAT_U = 136,
-  G_TRUNC_USAT_U = 137,
-  G_CONSTANT = 138,
-  G_FCONSTANT = 139,
-  G_VASTART = 140,
-  G_VAARG = 141,
-  G_SEXT = 142,
-  G_SEXT_INREG = 143,
-  G_ZEXT = 144,
-  G_SHL = 145,
-  G_LSHR = 146,
-  G_ASHR = 147,
-  G_FSHL = 148,
-  G_FSHR = 149,
-  G_ROTR = 150,
-  G_ROTL = 151,
-  G_ICMP = 152,
-  G_FCMP = 153,
-  G_SCMP = 154,
-  G_UCMP = 155,
-  G_SELECT = 156,
-  G_UADDO = 157,
-  G_UADDE = 158,
-  G_USUBO = 159,
-  G_USUBE = 160,
-  G_SADDO = 161,
-  G_SADDE = 162,
-  G_SSUBO = 163,
-  G_SSUBE = 164,
-  G_UMULO = 165,
-  G_SMULO = 166,
-  G_UMULH = 167,
-  G_SMULH = 168,
-  G_UADDSAT = 169,
-  G_SADDSAT = 170,
-  G_USUBSAT = 171,
-  G_SSUBSAT = 172,
-  G_USHLSAT = 173,
-  G_SSHLSAT = 174,
-  G_SMULFIX = 175,
-  G_UMULFIX = 176,
-  G_SMULFIXSAT = 177,
-  G_UMULFIXSAT = 178,
-  G_SDIVFIX = 179,
-  G_UDIVFIX = 180,
-  G_SDIVFIXSAT = 181,
-  G_UDIVFIXSAT = 182,
-  G_FADD = 183,
-  G_FSUB = 184,
-  G_FMUL = 185,
-  G_FMA = 186,
-  G_FMAD = 187,
-  G_FDIV = 188,
-  G_FREM = 189,
-  G_FPOW = 190,
-  G_FPOWI = 191,
-  G_FEXP = 192,
-  G_FEXP2 = 193,
-  G_FEXP10 = 194,
-  G_FLOG = 195,
-  G_FLOG2 = 196,
-  G_FLOG10 = 197,
-  G_FLDEXP = 198,
-  G_FFREXP = 199,
-  G_FNEG = 200,
-  G_FPEXT = 201,
-  G_FPTRUNC = 202,
-  G_FPTOSI = 203,
-  G_FPTOUI = 204,
-  G_SITOFP = 205,
-  G_UITOFP = 206,
-  G_FPTOSI_SAT = 207,
-  G_FPTOUI_SAT = 208,
-  G_FABS = 209,
-  G_FCOPYSIGN = 210,
-  G_IS_FPCLASS = 211,
-  G_FCANONICALIZE = 212,
-  G_FMINNUM = 213,
-  G_FMAXNUM = 214,
-  G_FMINNUM_IEEE = 215,
-  G_FMAXNUM_IEEE = 216,
-  G_FMINIMUM = 217,
-  G_FMAXIMUM = 218,
-  G_FMINIMUMNUM = 219,
-  G_FMAXIMUMNUM = 220,
-  G_GET_FPENV = 221,
-  G_SET_FPENV = 222,
-  G_RESET_FPENV = 223,
-  G_GET_FPMODE = 224,
-  G_SET_FPMODE = 225,
-  G_RESET_FPMODE = 226,
-  G_GET_ROUNDING = 227,
-  G_PTR_ADD = 228,
-  G_PTRMASK = 229,
-  G_SMIN = 230,
-  G_SMAX = 231,
-  G_UMIN = 232,
-  G_UMAX = 233,
-  G_ABS = 234,
-  G_LROUND = 235,
-  G_LLROUND = 236,
-  G_BR = 237,
-  G_BRJT = 238,
-  G_VSCALE = 239,
-  G_INSERT_SUBVECTOR = 240,
-  G_EXTRACT_SUBVECTOR = 241,
-  G_INSERT_VECTOR_ELT = 242,
-  G_EXTRACT_VECTOR_ELT = 243,
-  G_SHUFFLE_VECTOR = 244,
-  G_SPLAT_VECTOR = 245,
-  G_STEP_VECTOR = 246,
-  G_VECTOR_COMPRESS = 247,
-  G_CTTZ = 248,
-  G_CTTZ_ZERO_UNDEF = 249,
-  G_CTLZ = 250,
-  G_CTLZ_ZERO_UNDEF = 251,
-  G_CTPOP = 252,
-  G_BSWAP = 253,
-  G_BITREVERSE = 254,
-  G_FCEIL = 255,
-  G_FCOS = 256,
-  G_FSIN = 257,
-  G_FSINCOS = 258,
-  G_FTAN = 259,
-  G_FACOS = 260,
-  G_FASIN = 261,
-  G_FATAN = 262,
-  G_FATAN2 = 263,
-  G_FCOSH = 264,
-  G_FSINH = 265,
-  G_FTANH = 266,
-  G_FSQRT = 267,
-  G_FFLOOR = 268,
-  G_FRINT = 269,
-  G_FNEARBYINT = 270,
-  G_ADDRSPACE_CAST = 271,
-  G_BLOCK_ADDR = 272,
-  G_JUMP_TABLE = 273,
-  G_DYN_STACKALLOC = 274,
-  G_STACKSAVE = 275,
-  G_STACKRESTORE = 276,
-  G_STRICT_FADD = 277,
-  G_STRICT_FSUB = 278,
-  G_STRICT_FMUL = 279,
-  G_STRICT_FDIV = 280,
-  G_STRICT_FREM = 281,
-  G_STRICT_FMA = 282,
-  G_STRICT_FSQRT = 283,
-  G_STRICT_FLDEXP = 284,
-  G_READ_REGISTER = 285,
-  G_WRITE_REGISTER = 286,
-  G_MEMCPY = 287,
-  G_MEMCPY_INLINE = 288,
-  G_MEMMOVE = 289,
-  G_MEMSET = 290,
-  G_BZERO = 291,
-  G_TRAP = 292,
-  G_DEBUGTRAP = 293,
-  G_UBSANTRAP = 294,
-  G_VECREDUCE_SEQ_FADD = 295,
-  G_VECREDUCE_SEQ_FMUL = 296,
-  G_VECREDUCE_FADD = 297,
-  G_VECREDUCE_FMUL = 298,
-  G_VECREDUCE_FMAX = 299,
-  G_VECREDUCE_FMIN = 300,
-  G_VECREDUCE_FMAXIMUM = 301,
-  G_VECREDUCE_FMINIMUM = 302,
-  G_VECREDUCE_ADD = 303,
-  G_VECREDUCE_MUL = 304,
-  G_VECREDUCE_AND = 305,
-  G_VECREDUCE_OR = 306,
-  G_VECREDUCE_XOR = 307,
-  G_VECREDUCE_SMAX = 308,
-  G_VECREDUCE_SMIN = 309,
-  G_VECREDUCE_UMAX = 310,
-  G_VECREDUCE_UMIN = 311,
-  G_SBFX = 312,
-  G_UBFX = 313,
-  ADJCALLSTACKDOWN = 314,
-  ADJCALLSTACKUP = 315,
-  BuildPairF64Pseudo = 316,
-  G_CLZW = 317,
-  G_CTZW = 318,
-  G_DIVUW = 319,
-  G_DIVW = 320,
-  G_FCLASS = 321,
-  G_FCVT_WU_RV64 = 322,
-  G_FCVT_W_RV64 = 323,
-  G_READ_VLENB = 324,
-  G_REMUW = 325,
-  G_ROLW = 326,
-  G_RORW = 327,
-  G_SLLW = 328,
-  G_SPLAT_VECTOR_SPLIT_I64_VL = 329,
-  G_SRAW = 330,
-  G_SRLW = 331,
-  G_VMCLR_VL = 332,
-  G_VMSET_VL = 333,
-  G_VMV_V_V_VL = 334,
-  G_VSLIDEDOWN_VL = 335,
-  G_VSLIDEUP_VL = 336,
-  HWASAN_CHECK_MEMACCESS_SHORTGRANULES = 337,
-  KCFI_CHECK = 338,
-  PROBED_STACKALLOC = 339,
-  PROBED_STACKALLOC_DYN = 340,
-  PROBED_STACKALLOC_RVV = 341,
-  PseudoAddTPRel = 342,
-  PseudoAtomicLoadNand32 = 343,
-  PseudoAtomicLoadNand64 = 344,
-  PseudoBR = 345,
-  PseudoBRIND = 346,
-  PseudoBRINDNonX7 = 347,
-  PseudoBRINDX7 = 348,
-  PseudoCALL = 349,
-  PseudoCALLIndirect = 350,
-  PseudoCALLIndirectNonX7 = 351,
-  PseudoCALLIndirectX7 = 352,
-  PseudoCALLReg = 353,
-  PseudoCCADD = 354,
-  PseudoCCADDI = 355,
-  PseudoCCADDIW = 356,
-  PseudoCCADDW = 357,
-  PseudoCCAND = 358,
-  PseudoCCANDI = 359,
-  PseudoCCANDN = 360,
-  PseudoCCMOVGPR = 361,
-  PseudoCCMOVGPRNoX0 = 362,
-  PseudoCCNDS_BFOS = 363,
-  PseudoCCNDS_BFOZ = 364,
-  PseudoCCOR = 365,
-  PseudoCCORI = 366,
-  PseudoCCORN = 367,
-  PseudoCCSLL = 368,
-  PseudoCCSLLI = 369,
-  PseudoCCSLLIW = 370,
-  PseudoCCSLLW = 371,
-  PseudoCCSRA = 372,
-  PseudoCCSRAI = 373,
-  PseudoCCSRAIW = 374,
-  PseudoCCSRAW = 375,
-  PseudoCCSRL = 376,
-  PseudoCCSRLI = 377,
-  PseudoCCSRLIW = 378,
-  PseudoCCSRLW = 379,
-  PseudoCCSUB = 380,
-  PseudoCCSUBW = 381,
-  PseudoCCXNOR = 382,
-  PseudoCCXOR = 383,
-  PseudoCCXORI = 384,
-  PseudoC_ADDI_NOP = 385,
-  PseudoCmpXchg32 = 386,
-  PseudoCmpXchg64 = 387,
-  PseudoFLD = 388,
-  PseudoFLH = 389,
-  PseudoFLQ = 390,
-  PseudoFLW = 391,
-  PseudoFROUND_D = 392,
-  PseudoFROUND_D_IN32X = 393,
-  PseudoFROUND_D_INX = 394,
-  PseudoFROUND_H = 395,
-  PseudoFROUND_H_INX = 396,
-  PseudoFROUND_S = 397,
-  PseudoFROUND_S_INX = 398,
-  PseudoFSD = 399,
-  PseudoFSH = 400,
-  PseudoFSQ = 401,
-  PseudoFSW = 402,
-  PseudoJump = 403,
-  PseudoLA = 404,
-  PseudoLAImm = 405,
-  PseudoLA_TLSDESC = 406,
-  PseudoLA_TLS_GD = 407,
-  PseudoLA_TLS_IE = 408,
-  PseudoLB = 409,
-  PseudoLBU = 410,
-  PseudoLD = 411,
-  PseudoLD_RV32 = 412,
-  PseudoLGA = 413,
-  PseudoLH = 414,
-  PseudoLHU = 415,
-  PseudoLI = 416,
-  PseudoLLA = 417,
-  PseudoLLAImm = 418,
-  PseudoLW = 419,
-  PseudoLWU = 420,
-  PseudoLongBEQ = 421,
-  PseudoLongBGE = 422,
-  PseudoLongBGEU = 423,
-  PseudoLongBLT = 424,
-  PseudoLongBLTU = 425,
-  PseudoLongBNE = 426,
-  PseudoLongQC_BEQI = 427,
-  PseudoLongQC_BGEI = 428,
-  PseudoLongQC_BGEUI = 429,
-  PseudoLongQC_BLTI = 430,
-  PseudoLongQC_BLTUI = 431,
-  PseudoLongQC_BNEI = 432,
-  PseudoLongQC_E_BEQI = 433,
-  PseudoLongQC_E_BGEI = 434,
-  PseudoLongQC_E_BGEUI = 435,
-  PseudoLongQC_E_BLTI = 436,
-  PseudoLongQC_E_BLTUI = 437,
-  PseudoLongQC_E_BNEI = 438,
-  PseudoMV_FPR16INX = 439,
-  PseudoMV_FPR32INX = 440,
-  PseudoMaskedAtomicLoadAdd32 = 441,
-  PseudoMaskedAtomicLoadMax32 = 442,
-  PseudoMaskedAtomicLoadMin32 = 443,
-  PseudoMaskedAtomicLoadNand32 = 444,
-  PseudoMaskedAtomicLoadSub32 = 445,
-  PseudoMaskedAtomicLoadUMax32 = 446,
-  PseudoMaskedAtomicLoadUMin32 = 447,
-  PseudoMaskedAtomicSwap32 = 448,
-  PseudoMaskedCmpXchg32 = 449,
-  PseudoMovAddr = 450,
-  PseudoMovImm = 451,
-  PseudoNDS_VD4DOTSU_VV_M1 = 452,
-  PseudoNDS_VD4DOTSU_VV_M1_MASK = 453,
-  PseudoNDS_VD4DOTSU_VV_M2 = 454,
-  PseudoNDS_VD4DOTSU_VV_M2_MASK = 455,
-  PseudoNDS_VD4DOTSU_VV_M4 = 456,
-  PseudoNDS_VD4DOTSU_VV_M4_MASK = 457,
-  PseudoNDS_VD4DOTSU_VV_M8 = 458,
-  PseudoNDS_VD4DOTSU_VV_M8_MASK = 459,
-  PseudoNDS_VD4DOTSU_VV_MF2 = 460,
-  PseudoNDS_VD4DOTSU_VV_MF2_MASK = 461,
-  PseudoNDS_VD4DOTS_VV_M1 = 462,
-  PseudoNDS_VD4DOTS_VV_M1_MASK = 463,
-  PseudoNDS_VD4DOTS_VV_M2 = 464,
-  PseudoNDS_VD4DOTS_VV_M2_MASK = 465,
-  PseudoNDS_VD4DOTS_VV_M4 = 466,
-  PseudoNDS_VD4DOTS_VV_M4_MASK = 467,
-  PseudoNDS_VD4DOTS_VV_M8 = 468,
-  PseudoNDS_VD4DOTS_VV_M8_MASK = 469,
-  PseudoNDS_VD4DOTS_VV_MF2 = 470,
-  PseudoNDS_VD4DOTS_VV_MF2_MASK = 471,
-  PseudoNDS_VD4DOTU_VV_M1 = 472,
-  PseudoNDS_VD4DOTU_VV_M1_MASK = 473,
-  PseudoNDS_VD4DOTU_VV_M2 = 474,
-  PseudoNDS_VD4DOTU_VV_M2_MASK = 475,
-  PseudoNDS_VD4DOTU_VV_M4 = 476,
-  PseudoNDS_VD4DOTU_VV_M4_MASK = 477,
-  PseudoNDS_VD4DOTU_VV_M8 = 478,
-  PseudoNDS_VD4DOTU_VV_M8_MASK = 479,
-  PseudoNDS_VD4DOTU_VV_MF2 = 480,
-  PseudoNDS_VD4DOTU_VV_MF2_MASK = 481,
-  PseudoNDS_VFNCVT_BF16_S_M1 = 482,
-  PseudoNDS_VFNCVT_BF16_S_M2 = 483,
-  PseudoNDS_VFNCVT_BF16_S_M4 = 484,
-  PseudoNDS_VFNCVT_BF16_S_MF2 = 485,
-  PseudoNDS_VFNCVT_BF16_S_MF4 = 486,
-  PseudoNDS_VFPMADB_VFPR16_M1 = 487,
-  PseudoNDS_VFPMADB_VFPR16_M1_MASK = 488,
-  PseudoNDS_VFPMADB_VFPR16_M2 = 489,
-  PseudoNDS_VFPMADB_VFPR16_M2_MASK = 490,
-  PseudoNDS_VFPMADB_VFPR16_M4 = 491,
-  PseudoNDS_VFPMADB_VFPR16_M4_MASK = 492,
-  PseudoNDS_VFPMADB_VFPR16_M8 = 493,
-  PseudoNDS_VFPMADB_VFPR16_M8_MASK = 494,
-  PseudoNDS_VFPMADB_VFPR16_MF2 = 495,
-  PseudoNDS_VFPMADB_VFPR16_MF2_MASK = 496,
-  PseudoNDS_VFPMADB_VFPR16_MF4 = 497,
-  PseudoNDS_VFPMADB_VFPR16_MF4_MASK = 498,
-  PseudoNDS_VFPMADT_VFPR16_M1 = 499,
-  PseudoNDS_VFPMADT_VFPR16_M1_MASK = 500,
-  PseudoNDS_VFPMADT_VFPR16_M2 = 501,
-  PseudoNDS_VFPMADT_VFPR16_M2_MASK = 502,
-  PseudoNDS_VFPMADT_VFPR16_M4 = 503,
-  PseudoNDS_VFPMADT_VFPR16_M4_MASK = 504,
-  PseudoNDS_VFPMADT_VFPR16_M8 = 505,
-  PseudoNDS_VFPMADT_VFPR16_M8_MASK = 506,
-  PseudoNDS_VFPMADT_VFPR16_MF2 = 507,
-  PseudoNDS_VFPMADT_VFPR16_MF2_MASK = 508,
-  PseudoNDS_VFPMADT_VFPR16_MF4 = 509,
-  PseudoNDS_VFPMADT_VFPR16_MF4_MASK = 510,
-  PseudoNDS_VFWCVT_S_BF16_M1 = 511,
-  PseudoNDS_VFWCVT_S_BF16_M2 = 512,
-  PseudoNDS_VFWCVT_S_BF16_M4 = 513,
-  PseudoNDS_VFWCVT_S_BF16_MF2 = 514,
-  PseudoNDS_VFWCVT_S_BF16_MF4 = 515,
-  PseudoNDS_VLN8_V_M1 = 516,
-  PseudoNDS_VLN8_V_M1_MASK = 517,
-  PseudoNDS_VLN8_V_M2 = 518,
-  PseudoNDS_VLN8_V_M2_MASK = 519,
-  PseudoNDS_VLN8_V_M4 = 520,
-  PseudoNDS_VLN8_V_M4_MASK = 521,
-  PseudoNDS_VLN8_V_M8 = 522,
-  PseudoNDS_VLN8_V_M8_MASK = 523,
-  PseudoNDS_VLN8_V_MF2 = 524,
-  PseudoNDS_VLN8_V_MF2_MASK = 525,
-  PseudoNDS_VLN8_V_MF4 = 526,
-  PseudoNDS_VLN8_V_MF4_MASK = 527,
-  PseudoNDS_VLN8_V_MF8 = 528,
-  PseudoNDS_VLN8_V_MF8_MASK = 529,
-  PseudoNDS_VLNU8_V_M1 = 530,
-  PseudoNDS_VLNU8_V_M1_MASK = 531,
-  PseudoNDS_VLNU8_V_M2 = 532,
-  PseudoNDS_VLNU8_V_M2_MASK = 533,
-  PseudoNDS_VLNU8_V_M4 = 534,
-  PseudoNDS_VLNU8_V_M4_MASK = 535,
-  PseudoNDS_VLNU8_V_M8 = 536,
-  PseudoNDS_VLNU8_V_M8_MASK = 537,
-  PseudoNDS_VLNU8_V_MF2 = 538,
-  PseudoNDS_VLNU8_V_MF2_MASK = 539,
-  PseudoNDS_VLNU8_V_MF4 = 540,
-  PseudoNDS_VLNU8_V_MF4_MASK = 541,
-  PseudoNDS_VLNU8_V_MF8 = 542,
-  PseudoNDS_VLNU8_V_MF8_MASK = 543,
-  PseudoQC_E_LB = 544,
-  PseudoQC_E_LBU = 545,
-  PseudoQC_E_LH = 546,
-  PseudoQC_E_LHU = 547,
-  PseudoQC_E_LW = 548,
-  PseudoQC_E_SB = 549,
-  PseudoQC_E_SH = 550,
-  PseudoQC_E_SW = 551,
-  PseudoQuietFLE_D = 552,
-  PseudoQuietFLE_D_IN32X = 553,
-  PseudoQuietFLE_D_INX = 554,
-  PseudoQuietFLE_H = 555,
-  PseudoQuietFLE_H_INX = 556,
-  PseudoQuietFLE_S = 557,
-  PseudoQuietFLE_S_INX = 558,
-  PseudoQuietFLT_D = 559,
-  PseudoQuietFLT_D_IN32X = 560,
-  PseudoQuietFLT_D_INX = 561,
-  PseudoQuietFLT_H = 562,
-  PseudoQuietFLT_H_INX = 563,
-  PseudoQuietFLT_S = 564,
-  PseudoQuietFLT_S_INX = 565,
-  PseudoRET = 566,
-  PseudoRI_VEXTRACT_M1 = 567,
-  PseudoRI_VEXTRACT_M2 = 568,
-  PseudoRI_VEXTRACT_M4 = 569,
-  PseudoRI_VEXTRACT_M8 = 570,
-  PseudoRI_VEXTRACT_MF2 = 571,
-  PseudoRI_VEXTRACT_MF4 = 572,
-  PseudoRI_VEXTRACT_MF8 = 573,
-  PseudoRI_VINSERT_M1 = 574,
-  PseudoRI_VINSERT_M2 = 575,
-  PseudoRI_VINSERT_M4 = 576,
-  PseudoRI_VINSERT_M8 = 577,
-  PseudoRI_VINSERT_MF2 = 578,
-  PseudoRI_VINSERT_MF4 = 579,
-  PseudoRI_VINSERT_MF8 = 580,
-  PseudoRI_VUNZIP2A_VV_M1 = 581,
-  PseudoRI_VUNZIP2A_VV_M1_MASK = 582,
-  PseudoRI_VUNZIP2A_VV_M2 = 583,
-  PseudoRI_VUNZIP2A_VV_M2_MASK = 584,
-  PseudoRI_VUNZIP2A_VV_M4 = 585,
-  PseudoRI_VUNZIP2A_VV_M4_MASK = 586,
-  PseudoRI_VUNZIP2A_VV_M8 = 587,
-  PseudoRI_VUNZIP2A_VV_M8_MASK = 588,
-  PseudoRI_VUNZIP2A_VV_MF2 = 589,
-  PseudoRI_VUNZIP2A_VV_MF2_MASK = 590,
-  PseudoRI_VUNZIP2A_VV_MF4 = 591,
-  PseudoRI_VUNZIP2A_VV_MF4_MASK = 592,
-  PseudoRI_VUNZIP2A_VV_MF8 = 593,
-  PseudoRI_VUNZIP2A_VV_MF8_MASK = 594,
-  PseudoRI_VUNZIP2B_VV_M1 = 595,
-  PseudoRI_VUNZIP2B_VV_M1_MASK = 596,
-  PseudoRI_VUNZIP2B_VV_M2 = 597,
-  PseudoRI_VUNZIP2B_VV_M2_MASK = 598,
-  PseudoRI_VUNZIP2B_VV_M4 = 599,
-  PseudoRI_VUNZIP2B_VV_M4_MASK = 600,
-  PseudoRI_VUNZIP2B_VV_M8 = 601,
-  PseudoRI_VUNZIP2B_VV_M8_MASK = 602,
-  PseudoRI_VUNZIP2B_VV_MF2 = 603,
-  PseudoRI_VUNZIP2B_VV_MF2_MASK = 604,
-  PseudoRI_VUNZIP2B_VV_MF4 = 605,
-  PseudoRI_VUNZIP2B_VV_MF4_MASK = 606,
-  PseudoRI_VUNZIP2B_VV_MF8 = 607,
-  PseudoRI_VUNZIP2B_VV_MF8_MASK = 608,
-  PseudoRI_VZIP2A_VV_M1 = 609,
-  PseudoRI_VZIP2A_VV_M1_MASK = 610,
-  PseudoRI_VZIP2A_VV_M2 = 611,
-  PseudoRI_VZIP2A_VV_M2_MASK = 612,
-  PseudoRI_VZIP2A_VV_M4 = 613,
-  PseudoRI_VZIP2A_VV_M4_MASK = 614,
-  PseudoRI_VZIP2A_VV_M8 = 615,
-  PseudoRI_VZIP2A_VV_M8_MASK = 616,
-  PseudoRI_VZIP2A_VV_MF2 = 617,
-  PseudoRI_VZIP2A_VV_MF2_MASK = 618,
-  PseudoRI_VZIP2A_VV_MF4 = 619,
-  PseudoRI_VZIP2A_VV_MF4_MASK = 620,
-  PseudoRI_VZIP2A_VV_MF8 = 621,
-  PseudoRI_VZIP2A_VV_MF8_MASK = 622,
-  PseudoRI_VZIP2B_VV_M1 = 623,
-  PseudoRI_VZIP2B_VV_M1_MASK = 624,
-  PseudoRI_VZIP2B_VV_M2 = 625,
-  PseudoRI_VZIP2B_VV_M2_MASK = 626,
-  PseudoRI_VZIP2B_VV_M4 = 627,
-  PseudoRI_VZIP2B_VV_M4_MASK = 628,
-  PseudoRI_VZIP2B_VV_M8 = 629,
-  PseudoRI_VZIP2B_VV_M8_MASK = 630,
-  PseudoRI_VZIP2B_VV_MF2 = 631,
-  PseudoRI_VZIP2B_VV_MF2_MASK = 632,
-  PseudoRI_VZIP2B_VV_MF4 = 633,
-  PseudoRI_VZIP2B_VV_MF4_MASK = 634,
-  PseudoRI_VZIP2B_VV_MF8 = 635,
-  PseudoRI_VZIP2B_VV_MF8_MASK = 636,
-  PseudoRI_VZIPEVEN_VV_M1 = 637,
-  PseudoRI_VZIPEVEN_VV_M1_MASK = 638,
-  PseudoRI_VZIPEVEN_VV_M2 = 639,
-  PseudoRI_VZIPEVEN_VV_M2_MASK = 640,
-  PseudoRI_VZIPEVEN_VV_M4 = 641,
-  PseudoRI_VZIPEVEN_VV_M4_MASK = 642,
-  PseudoRI_VZIPEVEN_VV_M8 = 643,
-  PseudoRI_VZIPEVEN_VV_M8_MASK = 644,
-  PseudoRI_VZIPEVEN_VV_MF2 = 645,
-  PseudoRI_VZIPEVEN_VV_MF2_MASK = 646,
-  PseudoRI_VZIPEVEN_VV_MF4 = 647,
-  PseudoRI_VZIPEVEN_VV_MF4_MASK = 648,
-  PseudoRI_VZIPEVEN_VV_MF8 = 649,
-  PseudoRI_VZIPEVEN_VV_MF8_MASK = 650,
-  PseudoRI_VZIPODD_VV_M1 = 651,
-  PseudoRI_VZIPODD_VV_M1_MASK = 652,
-  PseudoRI_VZIPODD_VV_M2 = 653,
-  PseudoRI_VZIPODD_VV_M2_MASK = 654,
-  PseudoRI_VZIPODD_VV_M4 = 655,
-  PseudoRI_VZIPODD_VV_M4_MASK = 656,
-  PseudoRI_VZIPODD_VV_M8 = 657,
-  PseudoRI_VZIPODD_VV_M8_MASK = 658,
-  PseudoRI_VZIPODD_VV_MF2 = 659,
-  PseudoRI_VZIPODD_VV_MF2_MASK = 660,
-  PseudoRI_VZIPODD_VV_MF4 = 661,
-  PseudoRI_VZIPODD_VV_MF4_MASK = 662,
-  PseudoRI_VZIPODD_VV_MF8 = 663,
-  PseudoRI_VZIPODD_VV_MF8_MASK = 664,
-  PseudoRV32ZdinxLD = 665,
-  PseudoRV32ZdinxSD = 666,
-  PseudoReadVL = 667,
-  PseudoReadVLENB = 668,
-  PseudoReadVLENBViaVSETVLIX0 = 669,
-  PseudoSB = 670,
-  PseudoSD = 671,
-  PseudoSD_RV32 = 672,
-  PseudoSEXT_B = 673,
-  PseudoSEXT_H = 674,
-  PseudoSF_VC_FPR16VV_SE_M1 = 675,
-  PseudoSF_VC_FPR16VV_SE_M2 = 676,
-  PseudoSF_VC_FPR16VV_SE_M4 = 677,
-  PseudoSF_VC_FPR16VV_SE_M8 = 678,
-  PseudoSF_VC_FPR16VV_SE_MF2 = 679,
-  PseudoSF_VC_FPR16VV_SE_MF4 = 680,
-  PseudoSF_VC_FPR16VW_SE_M1 = 681,
-  PseudoSF_VC_FPR16VW_SE_M2 = 682,
-  PseudoSF_VC_FPR16VW_SE_M4 = 683,
-  PseudoSF_VC_FPR16VW_SE_M8 = 684,
-  PseudoSF_VC_FPR16VW_SE_MF2 = 685,
-  PseudoSF_VC_FPR16VW_SE_MF4 = 686,
-  PseudoSF_VC_FPR16V_SE_M1 = 687,
-  PseudoSF_VC_FPR16V_SE_M2 = 688,
-  PseudoSF_VC_FPR16V_SE_M4 = 689,
-  PseudoSF_VC_FPR16V_SE_M8 = 690,
-  PseudoSF_VC_FPR16V_SE_MF2 = 691,
-  PseudoSF_VC_FPR16V_SE_MF4 = 692,
-  PseudoSF_VC_FPR32VV_SE_M1 = 693,
-  PseudoSF_VC_FPR32VV_SE_M2 = 694,
-  PseudoSF_VC_FPR32VV_SE_M4 = 695,
-  PseudoSF_VC_FPR32VV_SE_M8 = 696,
-  PseudoSF_VC_FPR32VV_SE_MF2 = 697,
-  PseudoSF_VC_FPR32VW_SE_M1 = 698,
-  PseudoSF_VC_FPR32VW_SE_M2 = 699,
-  PseudoSF_VC_FPR32VW_SE_M4 = 700,
-  PseudoSF_VC_FPR32VW_SE_M8 = 701,
-  PseudoSF_VC_FPR32VW_SE_MF2 = 702,
-  PseudoSF_VC_FPR32V_SE_M1 = 703,
-  PseudoSF_VC_FPR32V_SE_M2 = 704,
-  PseudoSF_VC_FPR32V_SE_M4 = 705,
-  PseudoSF_VC_FPR32V_SE_M8 = 706,
-  PseudoSF_VC_FPR32V_SE_MF2 = 707,
-  PseudoSF_VC_FPR64VV_SE_M1 = 708,
-  PseudoSF_VC_FPR64VV_SE_M2 = 709,
-  PseudoSF_VC_FPR64VV_SE_M4 = 710,
-  PseudoSF_VC_FPR64VV_SE_M8 = 711,
-  PseudoSF_VC_FPR64V_SE_M1 = 712,
-  PseudoSF_VC_FPR64V_SE_M2 = 713,
-  PseudoSF_VC_FPR64V_SE_M4 = 714,
-  PseudoSF_VC_FPR64V_SE_M8 = 715,
-  PseudoSF_VC_IVV_SE_M1 = 716,
-  PseudoSF_VC_IVV_SE_M2 = 717,
-  PseudoSF_VC_IVV_SE_M4 = 718,
-  PseudoSF_VC_IVV_SE_M8 = 719,
-  PseudoSF_VC_IVV_SE_MF2 = 720,
-  PseudoSF_VC_IVV_SE_MF4 = 721,
-  PseudoSF_VC_IVV_SE_MF8 = 722,
-  PseudoSF_VC_IVW_SE_M1 = 723,
-  PseudoSF_VC_IVW_SE_M2 = 724,
-  PseudoSF_VC_IVW_SE_M4 = 725,
-  PseudoSF_VC_IVW_SE_MF2 = 726,
-  PseudoSF_VC_IVW_SE_MF4 = 727,
-  PseudoSF_VC_IVW_SE_MF8 = 728,
-  PseudoSF_VC_IV_SE_M1 = 729,
-  PseudoSF_VC_IV_SE_M2 = 730,
-  PseudoSF_VC_IV_SE_M4 = 731,
-  PseudoSF_VC_IV_SE_M8 = 732,
-  PseudoSF_VC_IV_SE_MF2 = 733,
-  PseudoSF_VC_IV_SE_MF4 = 734,
-  PseudoSF_VC_IV_SE_MF8 = 735,
-  PseudoSF_VC_I_SE_M1 = 736,
-  PseudoSF_VC_I_SE_M2 = 737,
-  PseudoSF_VC_I_SE_M4 = 738,
-  PseudoSF_VC_I_SE_M8 = 739,
-  PseudoSF_VC_I_SE_MF2 = 740,
-  PseudoSF_VC_I_SE_MF4 = 741,
-  PseudoSF_VC_I_SE_MF8 = 742,
-  PseudoSF_VC_VVV_SE_M1 = 743,
-  PseudoSF_VC_VVV_SE_M2 = 744,
-  PseudoSF_VC_VVV_SE_M4 = 745,
-  PseudoSF_VC_VVV_SE_M8 = 746,
-  PseudoSF_VC_VVV_SE_MF2 = 747,
-  PseudoSF_VC_VVV_SE_MF4 = 748,
-  PseudoSF_VC_VVV_SE_MF8 = 749,
-  PseudoSF_VC_VVW_SE_M1 = 750,
-  PseudoSF_VC_VVW_SE_M2 = 751,
-  PseudoSF_VC_VVW_SE_M4 = 752,
-  PseudoSF_VC_VVW_SE_MF2 = 753,
-  PseudoSF_VC_VVW_SE_MF4 = 754,
-  PseudoSF_VC_VVW_SE_MF8 = 755,
-  PseudoSF_VC_VV_SE_M1 = 756,
-  PseudoSF_VC_VV_SE_M2 = 757,
-  PseudoSF_VC_VV_SE_M4 = 758,
-  PseudoSF_VC_VV_SE_M8 = 759,
-  PseudoSF_VC_VV_SE_MF2 = 760,
-  PseudoSF_VC_VV_SE_MF4 = 761,
-  PseudoSF_VC_VV_SE_MF8 = 762,
-  PseudoSF_VC_V_FPR16VV_M1 = 763,
-  PseudoSF_VC_V_FPR16VV_M2 = 764,
-  PseudoSF_VC_V_FPR16VV_M4 = 765,
-  PseudoSF_VC_V_FPR16VV_M8 = 766,
-  PseudoSF_VC_V_FPR16VV_MF2 = 767,
-  PseudoSF_VC_V_FPR16VV_MF4 = 768,
-  PseudoSF_VC_V_FPR16VV_SE_M1 = 769,
-  PseudoSF_VC_V_FPR16VV_SE_M2 = 770,
-  PseudoSF_VC_V_FPR16VV_SE_M4 = 771,
-  PseudoSF_VC_V_FPR16VV_SE_M8 = 772,
-  PseudoSF_VC_V_FPR16VV_SE_MF2 = 773,
-  PseudoSF_VC_V_FPR16VV_SE_MF4 = 774,
-  PseudoSF_VC_V_FPR16VW_M1 = 775,
-  PseudoSF_VC_V_FPR16VW_M2 = 776,
-  PseudoSF_VC_V_FPR16VW_M4 = 777,
-  PseudoSF_VC_V_FPR16VW_M8 = 778,
-  PseudoSF_VC_V_FPR16VW_MF2 = 779,
-  PseudoSF_VC_V_FPR16VW_MF4 = 780,
-  PseudoSF_VC_V_FPR16VW_SE_M1 = 781,
-  PseudoSF_VC_V_FPR16VW_SE_M2 = 782,
-  PseudoSF_VC_V_FPR16VW_SE_M4 = 783,
-  PseudoSF_VC_V_FPR16VW_SE_M8 = 784,
-  PseudoSF_VC_V_FPR16VW_SE_MF2 = 785,
-  PseudoSF_VC_V_FPR16VW_SE_MF4 = 786,
-  PseudoSF_VC_V_FPR16V_M1 = 787,
-  PseudoSF_VC_V_FPR16V_M2 = 788,
-  PseudoSF_VC_V_FPR16V_M4 = 789,
-  PseudoSF_VC_V_FPR16V_M8 = 790,
-  PseudoSF_VC_V_FPR16V_MF2 = 791,
-  PseudoSF_VC_V_FPR16V_MF4 = 792,
-  PseudoSF_VC_V_FPR16V_SE_M1 = 793,
-  PseudoSF_VC_V_FPR16V_SE_M2 = 794,
-  PseudoSF_VC_V_FPR16V_SE_M4 = 795,
-  PseudoSF_VC_V_FPR16V_SE_M8 = 796,
-  PseudoSF_VC_V_FPR16V_SE_MF2 = 797,
-  PseudoSF_VC_V_FPR16V_SE_MF4 = 798,
-  PseudoSF_VC_V_FPR32VV_M1 = 799,
-  PseudoSF_VC_V_FPR32VV_M2 = 800,
-  PseudoSF_VC_V_FPR32VV_M4 = 801,
-  PseudoSF_VC_V_FPR32VV_M8 = 802,
-  PseudoSF_VC_V_FPR32VV_MF2 = 803,
-  PseudoSF_VC_V_FPR32VV_SE_M1 = 804,
-  PseudoSF_VC_V_FPR32VV_SE_M2 = 805,
-  PseudoSF_VC_V_FPR32VV_SE_M4 = 806,
-  PseudoSF_VC_V_FPR32VV_SE_M8 = 807,
-  PseudoSF_VC_V_FPR32VV_SE_MF2 = 808,
-  PseudoSF_VC_V_FPR32VW_M1 = 809,
-  PseudoSF_VC_V_FPR32VW_M2 = 810,
-  PseudoSF_VC_V_FPR32VW_M4 = 811,
-  PseudoSF_VC_V_FPR32VW_M8 = 812,
-  PseudoSF_VC_V_FPR32VW_MF2 = 813,
-  PseudoSF_VC_V_FPR32VW_SE_M1 = 814,
-  PseudoSF_VC_V_FPR32VW_SE_M2 = 815,
-  PseudoSF_VC_V_FPR32VW_SE_M4 = 816,
-  PseudoSF_VC_V_FPR32VW_SE_M8 = 817,
-  PseudoSF_VC_V_FPR32VW_SE_MF2 = 818,
-  PseudoSF_VC_V_FPR32V_M1 = 819,
-  PseudoSF_VC_V_FPR32V_M2 = 820,
-  PseudoSF_VC_V_FPR32V_M4 = 821,
-  PseudoSF_VC_V_FPR32V_M8 = 822,
-  PseudoSF_VC_V_FPR32V_MF2 = 823,
-  PseudoSF_VC_V_FPR32V_SE_M1 = 824,
-  PseudoSF_VC_V_FPR32V_SE_M2 = 825,
-  PseudoSF_VC_V_FPR32V_SE_M4 = 826,
-  PseudoSF_VC_V_FPR32V_SE_M8 = 827,
-  PseudoSF_VC_V_FPR32V_SE_MF2 = 828,
-  PseudoSF_VC_V_FPR64VV_M1 = 829,
-  PseudoSF_VC_V_FPR64VV_M2 = 830,
-  PseudoSF_VC_V_FPR64VV_M4 = 831,
-  PseudoSF_VC_V_FPR64VV_M8 = 832,
-  PseudoSF_VC_V_FPR64VV_SE_M1 = 833,
-  PseudoSF_VC_V_FPR64VV_SE_M2 = 834,
-  PseudoSF_VC_V_FPR64VV_SE_M4 = 835,
-  PseudoSF_VC_V_FPR64VV_SE_M8 = 836,
-  PseudoSF_VC_V_FPR64V_M1 = 837,
-  PseudoSF_VC_V_FPR64V_M2 = 838,
-  PseudoSF_VC_V_FPR64V_M4 = 839,
-  PseudoSF_VC_V_FPR64V_M8 = 840,
-  PseudoSF_VC_V_FPR64V_SE_M1 = 841,
-  PseudoSF_VC_V_FPR64V_SE_M2 = 842,
-  PseudoSF_VC_V_FPR64V_SE_M4 = 843,
-  PseudoSF_VC_V_FPR64V_SE_M8 = 844,
-  PseudoSF_VC_V_IVV_M1 = 845,
-  PseudoSF_VC_V_IVV_M2 = 846,
-  PseudoSF_VC_V_IVV_M4 = 847,
-  PseudoSF_VC_V_IVV_M8 = 848,
-  PseudoSF_VC_V_IVV_MF2 = 849,
-  PseudoSF_VC_V_IVV_MF4 = 850,
-  PseudoSF_VC_V_IVV_MF8 = 851,
-  PseudoSF_VC_V_IVV_SE_M1 = 852,
-  PseudoSF_VC_V_IVV_SE_M2 = 853,
-  PseudoSF_VC_V_IVV_SE_M4 = 854,
-  PseudoSF_VC_V_IVV_SE_M8 = 855,
-  PseudoSF_VC_V_IVV_SE_MF2 = 856,
-  PseudoSF_VC_V_IVV_SE_MF4 = 857,
-  PseudoSF_VC_V_IVV_SE_MF8 = 858,
-  PseudoSF_VC_V_IVW_M1 = 859,
-  PseudoSF_VC_V_IVW_M2 = 860,
-  PseudoSF_VC_V_IVW_M4 = 861,
-  PseudoSF_VC_V_IVW_MF2 = 862,
-  PseudoSF_VC_V_IVW_MF4 = 863,
-  PseudoSF_VC_V_IVW_MF8 = 864,
-  PseudoSF_VC_V_IVW_SE_M1 = 865,
-  PseudoSF_VC_V_IVW_SE_M2 = 866,
-  PseudoSF_VC_V_IVW_SE_M4 = 867,
-  PseudoSF_VC_V_IVW_SE_MF2 = 868,
-  PseudoSF_VC_V_IVW_SE_MF4 = 869,
-  PseudoSF_VC_V_IVW_SE_MF8 = 870,
-  PseudoSF_VC_V_IV_M1 = 871,
-  PseudoSF_VC_V_IV_M2 = 872,
-  PseudoSF_VC_V_IV_M4 = 873,
-  PseudoSF_VC_V_IV_M8 = 874,
-  PseudoSF_VC_V_IV_MF2 = 875,
-  PseudoSF_VC_V_IV_MF4 = 876,
-  PseudoSF_VC_V_IV_MF8 = 877,
-  PseudoSF_VC_V_IV_SE_M1 = 878,
-  PseudoSF_VC_V_IV_SE_M2 = 879,
-  PseudoSF_VC_V_IV_SE_M4 = 880,
-  PseudoSF_VC_V_IV_SE_M8 = 881,
-  PseudoSF_VC_V_IV_SE_MF2 = 882,
-  PseudoSF_VC_V_IV_SE_MF4 = 883,
-  PseudoSF_VC_V_IV_SE_MF8 = 884,
-  PseudoSF_VC_V_I_M1 = 885,
-  PseudoSF_VC_V_I_M2 = 886,
-  PseudoSF_VC_V_I_M4 = 887,
-  PseudoSF_VC_V_I_M8 = 888,
-  PseudoSF_VC_V_I_MF2 = 889,
-  PseudoSF_VC_V_I_MF4 = 890,
-  PseudoSF_VC_V_I_MF8 = 891,
-  PseudoSF_VC_V_I_SE_M1 = 892,
-  PseudoSF_VC_V_I_SE_M2 = 893,
-  PseudoSF_VC_V_I_SE_M4 = 894,
-  PseudoSF_VC_V_I_SE_M8 = 895,
-  PseudoSF_VC_V_I_SE_MF2 = 896,
-  PseudoSF_VC_V_I_SE_MF4 = 897,
-  PseudoSF_VC_V_I_SE_MF8 = 898,
-  PseudoSF_VC_V_VVV_M1 = 899,
-  PseudoSF_VC_V_VVV_M2 = 900,
-  PseudoSF_VC_V_VVV_M4 = 901,
-  PseudoSF_VC_V_VVV_M8 = 902,
-  PseudoSF_VC_V_VVV_MF2 = 903,
-  PseudoSF_VC_V_VVV_MF4 = 904,
-  PseudoSF_VC_V_VVV_MF8 = 905,
-  PseudoSF_VC_V_VVV_SE_M1 = 906,
-  PseudoSF_VC_V_VVV_SE_M2 = 907,
-  PseudoSF_VC_V_VVV_SE_M4 = 908,
-  PseudoSF_VC_V_VVV_SE_M8 = 909,
-  PseudoSF_VC_V_VVV_SE_MF2 = 910,
-  PseudoSF_VC_V_VVV_SE_MF4 = 911,
-  PseudoSF_VC_V_VVV_SE_MF8 = 912,
-  PseudoSF_VC_V_VVW_M1 = 913,
-  PseudoSF_VC_V_VVW_M2 = 914,
-  PseudoSF_VC_V_VVW_M4 = 915,
-  PseudoSF_VC_V_VVW_MF2 = 916,
-  PseudoSF_VC_V_VVW_MF4 = 917,
-  PseudoSF_VC_V_VVW_MF8 = 918,
-  PseudoSF_VC_V_VVW_SE_M1 = 919,
-  PseudoSF_VC_V_VVW_SE_M2 = 920,
-  PseudoSF_VC_V_VVW_SE_M4 = 921,
-  PseudoSF_VC_V_VVW_SE_MF2 = 922,
-  PseudoSF_VC_V_VVW_SE_MF4 = 923,
-  PseudoSF_VC_V_VVW_SE_MF8 = 924,
-  PseudoSF_VC_V_VV_M1 = 925,
-  PseudoSF_VC_V_VV_M2 = 926,
-  PseudoSF_VC_V_VV_M4 = 927,
-  PseudoSF_VC_V_VV_M8 = 928,
-  PseudoSF_VC_V_VV_MF2 = 929,
-  PseudoSF_VC_V_VV_MF4 = 930,
-  PseudoSF_VC_V_VV_MF8 = 931,
-  PseudoSF_VC_V_VV_SE_M1 = 932,
-  PseudoSF_VC_V_VV_SE_M2 = 933,
-  PseudoSF_VC_V_VV_SE_M4 = 934,
-  PseudoSF_VC_V_VV_SE_M8 = 935,
-  PseudoSF_VC_V_VV_SE_MF2 = 936,
-  PseudoSF_VC_V_VV_SE_MF4 = 937,
-  PseudoSF_VC_V_VV_SE_MF8 = 938,
-  PseudoSF_VC_V_XVV_M1 = 939,
-  PseudoSF_VC_V_XVV_M2 = 940,
-  PseudoSF_VC_V_XVV_M4 = 941,
-  PseudoSF_VC_V_XVV_M8 = 942,
-  PseudoSF_VC_V_XVV_MF2 = 943,
-  PseudoSF_VC_V_XVV_MF4 = 944,
-  PseudoSF_VC_V_XVV_MF8 = 945,
-  PseudoSF_VC_V_XVV_SE_M1 = 946,
-  PseudoSF_VC_V_XVV_SE_M2 = 947,
-  PseudoSF_VC_V_XVV_SE_M4 = 948,
-  PseudoSF_VC_V_XVV_SE_M8 = 949,
-  PseudoSF_VC_V_XVV_SE_MF2 = 950,
-  PseudoSF_VC_V_XVV_SE_MF4 = 951,
-  PseudoSF_VC_V_XVV_SE_MF8 = 952,
-  PseudoSF_VC_V_XVW_M1 = 953,
-  PseudoSF_VC_V_XVW_M2 = 954,
-  PseudoSF_VC_V_XVW_M4 = 955,
-  PseudoSF_VC_V_XVW_MF2 = 956,
-  PseudoSF_VC_V_XVW_MF4 = 957,
-  PseudoSF_VC_V_XVW_MF8 = 958,
-  PseudoSF_VC_V_XVW_SE_M1 = 959,
-  PseudoSF_VC_V_XVW_SE_M2 = 960,
-  PseudoSF_VC_V_XVW_SE_M4 = 961,
-  PseudoSF_VC_V_XVW_SE_MF2 = 962,
-  PseudoSF_VC_V_XVW_SE_MF4 = 963,
-  PseudoSF_VC_V_XVW_SE_MF8 = 964,
-  PseudoSF_VC_V_XV_M1 = 965,
-  PseudoSF_VC_V_XV_M2 = 966,
-  PseudoSF_VC_V_XV_M4 = 967,
-  PseudoSF_VC_V_XV_M8 = 968,
-  PseudoSF_VC_V_XV_MF2 = 969,
-  PseudoSF_VC_V_XV_MF4 = 970,
-  PseudoSF_VC_V_XV_MF8 = 971,
-  PseudoSF_VC_V_XV_SE_M1 = 972,
-  PseudoSF_VC_V_XV_SE_M2 = 973,
-  PseudoSF_VC_V_XV_SE_M4 = 974,
-  PseudoSF_VC_V_XV_SE_M8 = 975,
-  PseudoSF_VC_V_XV_SE_MF2 = 976,
-  PseudoSF_VC_V_XV_SE_MF4 = 977,
-  PseudoSF_VC_V_XV_SE_MF8 = 978,
-  PseudoSF_VC_V_X_M1 = 979,
-  PseudoSF_VC_V_X_M2 = 980,
-  PseudoSF_VC_V_X_M4 = 981,
-  PseudoSF_VC_V_X_M8 = 982,
-  PseudoSF_VC_V_X_MF2 = 983,
-  PseudoSF_VC_V_X_MF4 = 984,
-  PseudoSF_VC_V_X_MF8 = 985,
-  PseudoSF_VC_V_X_SE_M1 = 986,
-  PseudoSF_VC_V_X_SE_M2 = 987,
-  PseudoSF_VC_V_X_SE_M4 = 988,
-  PseudoSF_VC_V_X_SE_M8 = 989,
-  PseudoSF_VC_V_X_SE_MF2 = 990,
-  PseudoSF_VC_V_X_SE_MF4 = 991,
-  PseudoSF_VC_V_X_SE_MF8 = 992,
-  PseudoSF_VC_XVV_SE_M1 = 993,
-  PseudoSF_VC_XVV_SE_M2 = 994,
-  PseudoSF_VC_XVV_SE_M4 = 995,
-  PseudoSF_VC_XVV_SE_M8 = 996,
-  PseudoSF_VC_XVV_SE_MF2 = 997,
-  PseudoSF_VC_XVV_SE_MF4 = 998,
-  PseudoSF_VC_XVV_SE_MF8 = 999,
-  PseudoSF_VC_XVW_SE_M1 = 1000,
-  PseudoSF_VC_XVW_SE_M2 = 1001,
-  PseudoSF_VC_XVW_SE_M4 = 1002,
-  PseudoSF_VC_XVW_SE_MF2 = 1003,
-  PseudoSF_VC_XVW_SE_MF4 = 1004,
-  PseudoSF_VC_XVW_SE_MF8 = 1005,
-  PseudoSF_VC_XV_SE_M1 = 1006,
-  PseudoSF_VC_XV_SE_M2 = 1007,
-  PseudoSF_VC_XV_SE_M4 = 1008,
-  PseudoSF_VC_XV_SE_M8 = 1009,
-  PseudoSF_VC_XV_SE_MF2 = 1010,
-  PseudoSF_VC_XV_SE_MF4 = 1011,
-  PseudoSF_VC_XV_SE_MF8 = 1012,
-  PseudoSF_VC_X_SE_M1 = 1013,
-  PseudoSF_VC_X_SE_M2 = 1014,
-  PseudoSF_VC_X_SE_M4 = 1015,
-  PseudoSF_VC_X_SE_M8 = 1016,
-  PseudoSF_VC_X_SE_MF2 = 1017,
-  PseudoSF_VC_X_SE_MF4 = 1018,
-  PseudoSF_VC_X_SE_MF8 = 1019,
-  PseudoSF_VFNRCLIP_XU_F_QF_M1 = 1020,
-  PseudoSF_VFNRCLIP_XU_F_QF_M1_MASK = 1021,
-  PseudoSF_VFNRCLIP_XU_F_QF_M2 = 1022,
-  PseudoSF_VFNRCLIP_XU_F_QF_M2_MASK = 1023,
-  PseudoSF_VFNRCLIP_XU_F_QF_MF2 = 1024,
-  PseudoSF_VFNRCLIP_XU_F_QF_MF2_MASK = 1025,
-  PseudoSF_VFNRCLIP_XU_F_QF_MF4 = 1026,
-  PseudoSF_VFNRCLIP_XU_F_QF_MF4_MASK = 1027,
-  PseudoSF_VFNRCLIP_XU_F_QF_MF8 = 1028,
-  PseudoSF_VFNRCLIP_XU_F_QF_MF8_MASK = 1029,
-  PseudoSF_VFNRCLIP_X_F_QF_M1 = 1030,
-  PseudoSF_VFNRCLIP_X_F_QF_M1_MASK = 1031,
-  PseudoSF_VFNRCLIP_X_F_QF_M2 = 1032,
-  PseudoSF_VFNRCLIP_X_F_QF_M2_MASK = 1033,
-  PseudoSF_VFNRCLIP_X_F_QF_MF2 = 1034,
-  PseudoSF_VFNRCLIP_X_F_QF_MF2_MASK = 1035,
-  PseudoSF_VFNRCLIP_X_F_QF_MF4 = 1036,
-  PseudoSF_VFNRCLIP_X_F_QF_MF4_MASK = 1037,
-  PseudoSF_VFNRCLIP_X_F_QF_MF8 = 1038,
-  PseudoSF_VFNRCLIP_X_F_QF_MF8_MASK = 1039,
-  PseudoSF_VFWMACC_4x4x4_M1 = 1040,
-  PseudoSF_VFWMACC_4x4x4_M2 = 1041,
-  PseudoSF_VFWMACC_4x4x4_M4 = 1042,
-  PseudoSF_VFWMACC_4x4x4_MF2 = 1043,
-  PseudoSF_VFWMACC_4x4x4_MF4 = 1044,
-  PseudoSF_VQMACCSU_2x8x2_M1 = 1045,
-  PseudoSF_VQMACCSU_2x8x2_M2 = 1046,
-  PseudoSF_VQMACCSU_2x8x2_M4 = 1047,
-  PseudoSF_VQMACCSU_2x8x2_M8 = 1048,
-  PseudoSF_VQMACCSU_4x8x4_M1 = 1049,
-  PseudoSF_VQMACCSU_4x8x4_M2 = 1050,
-  PseudoSF_VQMACCSU_4x8x4_M4 = 1051,
-  PseudoSF_VQMACCSU_4x8x4_MF2 = 1052,
-  PseudoSF_VQMACCUS_2x8x2_M1 = 1053,
-  PseudoSF_VQMACCUS_2x8x2_M2 = 1054,
-  PseudoSF_VQMACCUS_2x8x2_M4 = 1055,
-  PseudoSF_VQMACCUS_2x8x2_M8 = 1056,
-  PseudoSF_VQMACCUS_4x8x4_M1 = 1057,
-  PseudoSF_VQMACCUS_4x8x4_M2 = 1058,
-  PseudoSF_VQMACCUS_4x8x4_M4 = 1059,
-  PseudoSF_VQMACCUS_4x8x4_MF2 = 1060,
-  PseudoSF_VQMACCU_2x8x2_M1 = 1061,
-  PseudoSF_VQMACCU_2x8x2_M2 = 1062,
-  PseudoSF_VQMACCU_2x8x2_M4 = 1063,
-  PseudoSF_VQMACCU_2x8x2_M8 = 1064,
-  PseudoSF_VQMACCU_4x8x4_M1 = 1065,
-  PseudoSF_VQMACCU_4x8x4_M2 = 1066,
-  PseudoSF_VQMACCU_4x8x4_M4 = 1067,
-  PseudoSF_VQMACCU_4x8x4_MF2 = 1068,
-  PseudoSF_VQMACC_2x8x2_M1 = 1069,
-  PseudoSF_VQMACC_2x8x2_M2 = 1070,
-  PseudoSF_VQMACC_2x8x2_M4 = 1071,
-  PseudoSF_VQMACC_2x8x2_M8 = 1072,
-  PseudoSF_VQMACC_4x8x4_M1 = 1073,
-  PseudoSF_VQMACC_4x8x4_M2 = 1074,
-  PseudoSF_VQMACC_4x8x4_M4 = 1075,
-  PseudoSF_VQMACC_4x8x4_MF2 = 1076,
-  PseudoSH = 1077,
-  PseudoSW = 1078,
-  PseudoTAIL = 1079,
-  PseudoTAILIndirect = 1080,
-  PseudoTAILIndirectNonX7 = 1081,
-  PseudoTAILIndirectX7 = 1082,
-  PseudoTH_VMAQASU_VV_M1 = 1083,
-  PseudoTH_VMAQASU_VV_M1_MASK = 1084,
-  PseudoTH_VMAQASU_VV_M2 = 1085,
-  PseudoTH_VMAQASU_VV_M2_MASK = 1086,
-  PseudoTH_VMAQASU_VV_M4 = 1087,
-  PseudoTH_VMAQASU_VV_M4_MASK = 1088,
-  PseudoTH_VMAQASU_VV_M8 = 1089,
-  PseudoTH_VMAQASU_VV_M8_MASK = 1090,
-  PseudoTH_VMAQASU_VV_MF2 = 1091,
-  PseudoTH_VMAQASU_VV_MF2_MASK = 1092,
-  PseudoTH_VMAQASU_VX_M1 = 1093,
-  PseudoTH_VMAQASU_VX_M1_MASK = 1094,
-  PseudoTH_VMAQASU_VX_M2 = 1095,
-  PseudoTH_VMAQASU_VX_M2_MASK = 1096,
-  PseudoTH_VMAQASU_VX_M4 = 1097,
-  PseudoTH_VMAQASU_VX_M4_MASK = 1098,
-  PseudoTH_VMAQASU_VX_M8 = 1099,
-  PseudoTH_VMAQASU_VX_M8_MASK = 1100,
-  PseudoTH_VMAQASU_VX_MF2 = 1101,
-  PseudoTH_VMAQASU_VX_MF2_MASK = 1102,
-  PseudoTH_VMAQAUS_VX_M1 = 1103,
-  PseudoTH_VMAQAUS_VX_M1_MASK = 1104,
-  PseudoTH_VMAQAUS_VX_M2 = 1105,
-  PseudoTH_VMAQAUS_VX_M2_MASK = 1106,
-  PseudoTH_VMAQAUS_VX_M4 = 1107,
-  PseudoTH_VMAQAUS_VX_M4_MASK = 1108,
-  PseudoTH_VMAQAUS_VX_M8 = 1109,
-  PseudoTH_VMAQAUS_VX_M8_MASK = 1110,
-  PseudoTH_VMAQAUS_VX_MF2 = 1111,
-  PseudoTH_VMAQAUS_VX_MF2_MASK = 1112,
-  PseudoTH_VMAQAU_VV_M1 = 1113,
-  PseudoTH_VMAQAU_VV_M1_MASK = 1114,
-  PseudoTH_VMAQAU_VV_M2 = 1115,
-  PseudoTH_VMAQAU_VV_M2_MASK = 1116,
-  PseudoTH_VMAQAU_VV_M4 = 1117,
-  PseudoTH_VMAQAU_VV_M4_MASK = 1118,
-  PseudoTH_VMAQAU_VV_M8 = 1119,
-  PseudoTH_VMAQAU_VV_M8_MASK = 1120,
-  PseudoTH_VMAQAU_VV_MF2 = 1121,
-  PseudoTH_VMAQAU_VV_MF2_MASK = 1122,
-  PseudoTH_VMAQAU_VX_M1 = 1123,
-  PseudoTH_VMAQAU_VX_M1_MASK = 1124,
-  PseudoTH_VMAQAU_VX_M2 = 1125,
-  PseudoTH_VMAQAU_VX_M2_MASK = 1126,
-  PseudoTH_VMAQAU_VX_M4 = 1127,
-  PseudoTH_VMAQAU_VX_M4_MASK = 1128,
-  PseudoTH_VMAQAU_VX_M8 = 1129,
-  PseudoTH_VMAQAU_VX_M8_MASK = 1130,
-  PseudoTH_VMAQAU_VX_MF2 = 1131,
-  PseudoTH_VMAQAU_VX_MF2_MASK = 1132,
-  PseudoTH_VMAQA_VV_M1 = 1133,
-  PseudoTH_VMAQA_VV_M1_MASK = 1134,
-  PseudoTH_VMAQA_VV_M2 = 1135,
-  PseudoTH_VMAQA_VV_M2_MASK = 1136,
-  PseudoTH_VMAQA_VV_M4 = 1137,
-  PseudoTH_VMAQA_VV_M4_MASK = 1138,
-  PseudoTH_VMAQA_VV_M8 = 1139,
-  PseudoTH_VMAQA_VV_M8_MASK = 1140,
-  PseudoTH_VMAQA_VV_MF2 = 1141,
-  PseudoTH_VMAQA_VV_MF2_MASK = 1142,
-  PseudoTH_VMAQA_VX_M1 = 1143,
-  PseudoTH_VMAQA_VX_M1_MASK = 1144,
-  PseudoTH_VMAQA_VX_M2 = 1145,
-  PseudoTH_VMAQA_VX_M2_MASK = 1146,
-  PseudoTH_VMAQA_VX_M4 = 1147,
-  PseudoTH_VMAQA_VX_M4_MASK = 1148,
-  PseudoTH_VMAQA_VX_M8 = 1149,
-  PseudoTH_VMAQA_VX_M8_MASK = 1150,
-  PseudoTH_VMAQA_VX_MF2 = 1151,
-  PseudoTH_VMAQA_VX_MF2_MASK = 1152,
-  PseudoTLSDESCCall = 1153,
-  PseudoVAADDU_VV_M1 = 1154,
-  PseudoVAADDU_VV_M1_MASK = 1155,
-  PseudoVAADDU_VV_M2 = 1156,
-  PseudoVAADDU_VV_M2_MASK = 1157,
-  PseudoVAADDU_VV_M4 = 1158,
-  PseudoVAADDU_VV_M4_MASK = 1159,
-  PseudoVAADDU_VV_M8 = 1160,
-  PseudoVAADDU_VV_M8_MASK = 1161,
-  PseudoVAADDU_VV_MF2 = 1162,
-  PseudoVAADDU_VV_MF2_MASK = 1163,
-  PseudoVAADDU_VV_MF4 = 1164,
-  PseudoVAADDU_VV_MF4_MASK = 1165,
-  PseudoVAADDU_VV_MF8 = 1166,
-  PseudoVAADDU_VV_MF8_MASK = 1167,
-  PseudoVAADDU_VX_M1 = 1168,
-  PseudoVAADDU_VX_M1_MASK = 1169,
-  PseudoVAADDU_VX_M2 = 1170,
-  PseudoVAADDU_VX_M2_MASK = 1171,
-  PseudoVAADDU_VX_M4 = 1172,
-  PseudoVAADDU_VX_M4_MASK = 1173,
-  PseudoVAADDU_VX_M8 = 1174,
-  PseudoVAADDU_VX_M8_MASK = 1175,
-  PseudoVAADDU_VX_MF2 = 1176,
-  PseudoVAADDU_VX_MF2_MASK = 1177,
-  PseudoVAADDU_VX_MF4 = 1178,
-  PseudoVAADDU_VX_MF4_MASK = 1179,
-  PseudoVAADDU_VX_MF8 = 1180,
-  PseudoVAADDU_VX_MF8_MASK = 1181,
-  PseudoVAADD_VV_M1 = 1182,
-  PseudoVAADD_VV_M1_MASK = 1183,
-  PseudoVAADD_VV_M2 = 1184,
-  PseudoVAADD_VV_M2_MASK = 1185,
-  PseudoVAADD_VV_M4 = 1186,
-  PseudoVAADD_VV_M4_MASK = 1187,
-  PseudoVAADD_VV_M8 = 1188,
-  PseudoVAADD_VV_M8_MASK = 1189,
-  PseudoVAADD_VV_MF2 = 1190,
-  PseudoVAADD_VV_MF2_MASK = 1191,
-  PseudoVAADD_VV_MF4 = 1192,
-  PseudoVAADD_VV_MF4_MASK = 1193,
-  PseudoVAADD_VV_MF8 = 1194,
-  PseudoVAADD_VV_MF8_MASK = 1195,
-  PseudoVAADD_VX_M1 = 1196,
-  PseudoVAADD_VX_M1_MASK = 1197,
-  PseudoVAADD_VX_M2 = 1198,
-  PseudoVAADD_VX_M2_MASK = 1199,
-  PseudoVAADD_VX_M4 = 1200,
-  PseudoVAADD_VX_M4_MASK = 1201,
-  PseudoVAADD_VX_M8 = 1202,
-  PseudoVAADD_VX_M8_MASK = 1203,
-  PseudoVAADD_VX_MF2 = 1204,
-  PseudoVAADD_VX_MF2_MASK = 1205,
-  PseudoVAADD_VX_MF4 = 1206,
-  PseudoVAADD_VX_MF4_MASK = 1207,
-  PseudoVAADD_VX_MF8 = 1208,
-  PseudoVAADD_VX_MF8_MASK = 1209,
-  PseudoVADC_VIM_M1 = 1210,
-  PseudoVADC_VIM_M2 = 1211,
-  PseudoVADC_VIM_M4 = 1212,
-  PseudoVADC_VIM_M8 = 1213,
-  PseudoVADC_VIM_MF2 = 1214,
-  PseudoVADC_VIM_MF4 = 1215,
-  PseudoVADC_VIM_MF8 = 1216,
-  PseudoVADC_VVM_M1 = 1217,
-  PseudoVADC_VVM_M2 = 1218,
-  PseudoVADC_VVM_M4 = 1219,
-  PseudoVADC_VVM_M8 = 1220,
-  PseudoVADC_VVM_MF2 = 1221,
-  PseudoVADC_VVM_MF4 = 1222,
-  PseudoVADC_VVM_MF8 = 1223,
-  PseudoVADC_VXM_M1 = 1224,
-  PseudoVADC_VXM_M2 = 1225,
-  PseudoVADC_VXM_M4 = 1226,
-  PseudoVADC_VXM_M8 = 1227,
-  PseudoVADC_VXM_MF2 = 1228,
-  PseudoVADC_VXM_MF4 = 1229,
-  PseudoVADC_VXM_MF8 = 1230,
-  PseudoVADD_VI_M1 = 1231,
-  PseudoVADD_VI_M1_MASK = 1232,
-  PseudoVADD_VI_M2 = 1233,
-  PseudoVADD_VI_M2_MASK = 1234,
-  PseudoVADD_VI_M4 = 1235,
-  PseudoVADD_VI_M4_MASK = 1236,
-  PseudoVADD_VI_M8 = 1237,
-  PseudoVADD_VI_M8_MASK = 1238,
-  PseudoVADD_VI_MF2 = 1239,
-  PseudoVADD_VI_MF2_MASK = 1240,
-  PseudoVADD_VI_MF4 = 1241,
-  PseudoVADD_VI_MF4_MASK = 1242,
-  PseudoVADD_VI_MF8 = 1243,
-  PseudoVADD_VI_MF8_MASK = 1244,
-  PseudoVADD_VV_M1 = 1245,
-  PseudoVADD_VV_M1_MASK = 1246,
-  PseudoVADD_VV_M2 = 1247,
-  PseudoVADD_VV_M2_MASK = 1248,
-  PseudoVADD_VV_M4 = 1249,
-  PseudoVADD_VV_M4_MASK = 1250,
-  PseudoVADD_VV_M8 = 1251,
-  PseudoVADD_VV_M8_MASK = 1252,
-  PseudoVADD_VV_MF2 = 1253,
-  PseudoVADD_VV_MF2_MASK = 1254,
-  PseudoVADD_VV_MF4 = 1255,
-  PseudoVADD_VV_MF4_MASK = 1256,
-  PseudoVADD_VV_MF8 = 1257,
-  PseudoVADD_VV_MF8_MASK = 1258,
-  PseudoVADD_VX_M1 = 1259,
-  PseudoVADD_VX_M1_MASK = 1260,
-  PseudoVADD_VX_M2 = 1261,
-  PseudoVADD_VX_M2_MASK = 1262,
-  PseudoVADD_VX_M4 = 1263,
-  PseudoVADD_VX_M4_MASK = 1264,
-  PseudoVADD_VX_M8 = 1265,
-  PseudoVADD_VX_M8_MASK = 1266,
-  PseudoVADD_VX_MF2 = 1267,
-  PseudoVADD_VX_MF2_MASK = 1268,
-  PseudoVADD_VX_MF4 = 1269,
-  PseudoVADD_VX_MF4_MASK = 1270,
-  PseudoVADD_VX_MF8 = 1271,
-  PseudoVADD_VX_MF8_MASK = 1272,
-  PseudoVAESDF_VS_M1_M1 = 1273,
-  PseudoVAESDF_VS_M1_MF2 = 1274,
-  PseudoVAESDF_VS_M1_MF4 = 1275,
-  PseudoVAESDF_VS_M1_MF8 = 1276,
-  PseudoVAESDF_VS_M2_M1 = 1277,
-  PseudoVAESDF_VS_M2_M2 = 1278,
-  PseudoVAESDF_VS_M2_MF2 = 1279,
-  PseudoVAESDF_VS_M2_MF4 = 1280,
-  PseudoVAESDF_VS_M2_MF8 = 1281,
-  PseudoVAESDF_VS_M4_M1 = 1282,
-  PseudoVAESDF_VS_M4_M2 = 1283,
-  PseudoVAESDF_VS_M4_M4 = 1284,
-  PseudoVAESDF_VS_M4_MF2 = 1285,
-  PseudoVAESDF_VS_M4_MF4 = 1286,
-  PseudoVAESDF_VS_M4_MF8 = 1287,
-  PseudoVAESDF_VS_M8_M1 = 1288,
-  PseudoVAESDF_VS_M8_M2 = 1289,
-  PseudoVAESDF_VS_M8_M4 = 1290,
-  PseudoVAESDF_VS_M8_MF2 = 1291,
-  PseudoVAESDF_VS_M8_MF4 = 1292,
-  PseudoVAESDF_VS_M8_MF8 = 1293,
-  PseudoVAESDF_VS_MF2_MF2 = 1294,
-  PseudoVAESDF_VS_MF2_MF4 = 1295,
-  PseudoVAESDF_VS_MF2_MF8 = 1296,
-  PseudoVAESDF_VV_M1 = 1297,
-  PseudoVAESDF_VV_M2 = 1298,
-  PseudoVAESDF_VV_M4 = 1299,
-  PseudoVAESDF_VV_M8 = 1300,
-  PseudoVAESDF_VV_MF2 = 1301,
-  PseudoVAESDM_VS_M1_M1 = 1302,
-  PseudoVAESDM_VS_M1_MF2 = 1303,
-  PseudoVAESDM_VS_M1_MF4 = 1304,
-  PseudoVAESDM_VS_M1_MF8 = 1305,
-  PseudoVAESDM_VS_M2_M1 = 1306,
-  PseudoVAESDM_VS_M2_M2 = 1307,
-  PseudoVAESDM_VS_M2_MF2 = 1308,
-  PseudoVAESDM_VS_M2_MF4 = 1309,
-  PseudoVAESDM_VS_M2_MF8 = 1310,
-  PseudoVAESDM_VS_M4_M1 = 1311,
-  PseudoVAESDM_VS_M4_M2 = 1312,
-  PseudoVAESDM_VS_M4_M4 = 1313,
-  PseudoVAESDM_VS_M4_MF2 = 1314,
-  PseudoVAESDM_VS_M4_MF4 = 1315,
-  PseudoVAESDM_VS_M4_MF8 = 1316,
-  PseudoVAESDM_VS_M8_M1 = 1317,
-  PseudoVAESDM_VS_M8_M2 = 1318,
-  PseudoVAESDM_VS_M8_M4 = 1319,
-  PseudoVAESDM_VS_M8_MF2 = 1320,
-  PseudoVAESDM_VS_M8_MF4 = 1321,
-  PseudoVAESDM_VS_M8_MF8 = 1322,
-  PseudoVAESDM_VS_MF2_MF2 = 1323,
-  PseudoVAESDM_VS_MF2_MF4 = 1324,
-  PseudoVAESDM_VS_MF2_MF8 = 1325,
-  PseudoVAESDM_VV_M1 = 1326,
-  PseudoVAESDM_VV_M2 = 1327,
-  PseudoVAESDM_VV_M4 = 1328,
-  PseudoVAESDM_VV_M8 = 1329,
-  PseudoVAESDM_VV_MF2 = 1330,
-  PseudoVAESEF_VS_M1_M1 = 1331,
-  PseudoVAESEF_VS_M1_MF2 = 1332,
-  PseudoVAESEF_VS_M1_MF4 = 1333,
-  PseudoVAESEF_VS_M1_MF8 = 1334,
-  PseudoVAESEF_VS_M2_M1 = 1335,
-  PseudoVAESEF_VS_M2_M2 = 1336,
-  PseudoVAESEF_VS_M2_MF2 = 1337,
-  PseudoVAESEF_VS_M2_MF4 = 1338,
-  PseudoVAESEF_VS_M2_MF8 = 1339,
-  PseudoVAESEF_VS_M4_M1 = 1340,
-  PseudoVAESEF_VS_M4_M2 = 1341,
-  PseudoVAESEF_VS_M4_M4 = 1342,
-  PseudoVAESEF_VS_M4_MF2 = 1343,
-  PseudoVAESEF_VS_M4_MF4 = 1344,
-  PseudoVAESEF_VS_M4_MF8 = 1345,
-  PseudoVAESEF_VS_M8_M1 = 1346,
-  PseudoVAESEF_VS_M8_M2 = 1347,
-  PseudoVAESEF_VS_M8_M4 = 1348,
-  PseudoVAESEF_VS_M8_MF2 = 1349,
-  PseudoVAESEF_VS_M8_MF4 = 1350,
-  PseudoVAESEF_VS_M8_MF8 = 1351,
-  PseudoVAESEF_VS_MF2_MF2 = 1352,
-  PseudoVAESEF_VS_MF2_MF4 = 1353,
-  PseudoVAESEF_VS_MF2_MF8 = 1354,
-  PseudoVAESEF_VV_M1 = 1355,
-  PseudoVAESEF_VV_M2 = 1356,
-  PseudoVAESEF_VV_M4 = 1357,
-  PseudoVAESEF_VV_M8 = 1358,
-  PseudoVAESEF_VV_MF2 = 1359,
-  PseudoVAESEM_VS_M1_M1 = 1360,
-  PseudoVAESEM_VS_M1_MF2 = 1361,
-  PseudoVAESEM_VS_M1_MF4 = 1362,
-  PseudoVAESEM_VS_M1_MF8 = 1363,
-  PseudoVAESEM_VS_M2_M1 = 1364,
-  PseudoVAESEM_VS_M2_M2 = 1365,
-  PseudoVAESEM_VS_M2_MF2 = 1366,
-  PseudoVAESEM_VS_M2_MF4 = 1367,
-  PseudoVAESEM_VS_M2_MF8 = 1368,
-  PseudoVAESEM_VS_M4_M1 = 1369,
-  PseudoVAESEM_VS_M4_M2 = 1370,
-  PseudoVAESEM_VS_M4_M4 = 1371,
-  PseudoVAESEM_VS_M4_MF2 = 1372,
-  PseudoVAESEM_VS_M4_MF4 = 1373,
-  PseudoVAESEM_VS_M4_MF8 = 1374,
-  PseudoVAESEM_VS_M8_M1 = 1375,
-  PseudoVAESEM_VS_M8_M2 = 1376,
-  PseudoVAESEM_VS_M8_M4 = 1377,
-  PseudoVAESEM_VS_M8_MF2 = 1378,
-  PseudoVAESEM_VS_M8_MF4 = 1379,
-  PseudoVAESEM_VS_M8_MF8 = 1380,
-  PseudoVAESEM_VS_MF2_MF2 = 1381,
-  PseudoVAESEM_VS_MF2_MF4 = 1382,
-  PseudoVAESEM_VS_MF2_MF8 = 1383,
-  PseudoVAESEM_VV_M1 = 1384,
-  PseudoVAESEM_VV_M2 = 1385,
-  PseudoVAESEM_VV_M4 = 1386,
-  PseudoVAESEM_VV_M8 = 1387,
-  PseudoVAESEM_VV_MF2 = 1388,
-  PseudoVAESKF1_VI_M1 = 1389,
-  PseudoVAESKF1_VI_M2 = 1390,
-  PseudoVAESKF1_VI_M4 = 1391,
-  PseudoVAESKF1_VI_M8 = 1392,
-  PseudoVAESKF1_VI_MF2 = 1393,
-  PseudoVAESKF2_VI_M1 = 1394,
-  PseudoVAESKF2_VI_M2 = 1395,
-  PseudoVAESKF2_VI_M4 = 1396,
-  PseudoVAESKF2_VI_M8 = 1397,
-  PseudoVAESKF2_VI_MF2 = 1398,
-  PseudoVAESZ_VS_M1_M1 = 1399,
-  PseudoVAESZ_VS_M1_MF2 = 1400,
-  PseudoVAESZ_VS_M1_MF4 = 1401,
-  PseudoVAESZ_VS_M1_MF8 = 1402,
-  PseudoVAESZ_VS_M2_M1 = 1403,
-  PseudoVAESZ_VS_M2_M2 = 1404,
-  PseudoVAESZ_VS_M2_MF2 = 1405,
-  PseudoVAESZ_VS_M2_MF4 = 1406,
-  PseudoVAESZ_VS_M2_MF8 = 1407,
-  PseudoVAESZ_VS_M4_M1 = 1408,
-  PseudoVAESZ_VS_M4_M2 = 1409,
-  PseudoVAESZ_VS_M4_M4 = 1410,
-  PseudoVAESZ_VS_M4_MF2 = 1411,
-  PseudoVAESZ_VS_M4_MF4 = 1412,
-  PseudoVAESZ_VS_M4_MF8 = 1413,
-  PseudoVAESZ_VS_M8_M1 = 1414,
-  PseudoVAESZ_VS_M8_M2 = 1415,
-  PseudoVAESZ_VS_M8_M4 = 1416,
-  PseudoVAESZ_VS_M8_MF2 = 1417,
-  PseudoVAESZ_VS_M8_MF4 = 1418,
-  PseudoVAESZ_VS_M8_MF8 = 1419,
-  PseudoVAESZ_VS_MF2_MF2 = 1420,
-  PseudoVAESZ_VS_MF2_MF4 = 1421,
-  PseudoVAESZ_VS_MF2_MF8 = 1422,
-  PseudoVANDN_VV_M1 = 1423,
-  PseudoVANDN_VV_M1_MASK = 1424,
-  PseudoVANDN_VV_M2 = 1425,
-  PseudoVANDN_VV_M2_MASK = 1426,
-  PseudoVANDN_VV_M4 = 1427,
-  PseudoVANDN_VV_M4_MASK = 1428,
-  PseudoVANDN_VV_M8 = 1429,
-  PseudoVANDN_VV_M8_MASK = 1430,
-  PseudoVANDN_VV_MF2 = 1431,
-  PseudoVANDN_VV_MF2_MASK = 1432,
-  PseudoVANDN_VV_MF4 = 1433,
-  PseudoVANDN_VV_MF4_MASK = 1434,
-  PseudoVANDN_VV_MF8 = 1435,
-  PseudoVANDN_VV_MF8_MASK = 1436,
-  PseudoVANDN_VX_M1 = 1437,
-  PseudoVANDN_VX_M1_MASK = 1438,
-  PseudoVANDN_VX_M2 = 1439,
-  PseudoVANDN_VX_M2_MASK = 1440,
-  PseudoVANDN_VX_M4 = 1441,
-  PseudoVANDN_VX_M4_MASK = 1442,
-  PseudoVANDN_VX_M8 = 1443,
-  PseudoVANDN_VX_M8_MASK = 1444,
-  PseudoVANDN_VX_MF2 = 1445,
-  PseudoVANDN_VX_MF2_MASK = 1446,
-  PseudoVANDN_VX_MF4 = 1447,
-  PseudoVANDN_VX_MF4_MASK = 1448,
-  PseudoVANDN_VX_MF8 = 1449,
-  PseudoVANDN_VX_MF8_MASK = 1450,
-  PseudoVAND_VI_M1 = 1451,
-  PseudoVAND_VI_M1_MASK = 1452,
-  PseudoVAND_VI_M2 = 1453,
-  PseudoVAND_VI_M2_MASK = 1454,
-  PseudoVAND_VI_M4 = 1455,
-  PseudoVAND_VI_M4_MASK = 1456,
-  PseudoVAND_VI_M8 = 1457,
-  PseudoVAND_VI_M8_MASK = 1458,
-  PseudoVAND_VI_MF2 = 1459,
-  PseudoVAND_VI_MF2_MASK = 1460,
-  PseudoVAND_VI_MF4 = 1461,
-  PseudoVAND_VI_MF4_MASK = 1462,
-  PseudoVAND_VI_MF8 = 1463,
-  PseudoVAND_VI_MF8_MASK = 1464,
-  PseudoVAND_VV_M1 = 1465,
-  PseudoVAND_VV_M1_MASK = 1466,
-  PseudoVAND_VV_M2 = 1467,
-  PseudoVAND_VV_M2_MASK = 1468,
-  PseudoVAND_VV_M4 = 1469,
-  PseudoVAND_VV_M4_MASK = 1470,
-  PseudoVAND_VV_M8 = 1471,
-  PseudoVAND_VV_M8_MASK = 1472,
-  PseudoVAND_VV_MF2 = 1473,
-  PseudoVAND_VV_MF2_MASK = 1474,
-  PseudoVAND_VV_MF4 = 1475,
-  PseudoVAND_VV_MF4_MASK = 1476,
-  PseudoVAND_VV_MF8 = 1477,
-  PseudoVAND_VV_MF8_MASK = 1478,
-  PseudoVAND_VX_M1 = 1479,
-  PseudoVAND_VX_M1_MASK = 1480,
-  PseudoVAND_VX_M2 = 1481,
-  PseudoVAND_VX_M2_MASK = 1482,
-  PseudoVAND_VX_M4 = 1483,
-  PseudoVAND_VX_M4_MASK = 1484,
-  PseudoVAND_VX_M8 = 1485,
-  PseudoVAND_VX_M8_MASK = 1486,
-  PseudoVAND_VX_MF2 = 1487,
-  PseudoVAND_VX_MF2_MASK = 1488,
-  PseudoVAND_VX_MF4 = 1489,
-  PseudoVAND_VX_MF4_MASK = 1490,
-  PseudoVAND_VX_MF8 = 1491,
-  PseudoVAND_VX_MF8_MASK = 1492,
-  PseudoVASUBU_VV_M1 = 1493,
-  PseudoVASUBU_VV_M1_MASK = 1494,
-  PseudoVASUBU_VV_M2 = 1495,
-  PseudoVASUBU_VV_M2_MASK = 1496,
-  PseudoVASUBU_VV_M4 = 1497,
-  PseudoVASUBU_VV_M4_MASK = 1498,
-  PseudoVASUBU_VV_M8 = 1499,
-  PseudoVASUBU_VV_M8_MASK = 1500,
-  PseudoVASUBU_VV_MF2 = 1501,
-  PseudoVASUBU_VV_MF2_MASK = 1502,
-  PseudoVASUBU_VV_MF4 = 1503,
-  PseudoVASUBU_VV_MF4_MASK = 1504,
-  PseudoVASUBU_VV_MF8 = 1505,
-  PseudoVASUBU_VV_MF8_MASK = 1506,
-  PseudoVASUBU_VX_M1 = 1507,
-  PseudoVASUBU_VX_M1_MASK = 1508,
-  PseudoVASUBU_VX_M2 = 1509,
-  PseudoVASUBU_VX_M2_MASK = 1510,
-  PseudoVASUBU_VX_M4 = 1511,
-  PseudoVASUBU_VX_M4_MASK = 1512,
-  PseudoVASUBU_VX_M8 = 1513,
-  PseudoVASUBU_VX_M8_MASK = 1514,
-  PseudoVASUBU_VX_MF2 = 1515,
-  PseudoVASUBU_VX_MF2_MASK = 1516,
-  PseudoVASUBU_VX_MF4 = 1517,
-  PseudoVASUBU_VX_MF4_MASK = 1518,
-  PseudoVASUBU_VX_MF8 = 1519,
-  PseudoVASUBU_VX_MF8_MASK = 1520,
-  PseudoVASUB_VV_M1 = 1521,
-  PseudoVASUB_VV_M1_MASK = 1522,
-  PseudoVASUB_VV_M2 = 1523,
-  PseudoVASUB_VV_M2_MASK = 1524,
-  PseudoVASUB_VV_M4 = 1525,
-  PseudoVASUB_VV_M4_MASK = 1526,
-  PseudoVASUB_VV_M8 = 1527,
-  PseudoVASUB_VV_M8_MASK = 1528,
-  PseudoVASUB_VV_MF2 = 1529,
-  PseudoVASUB_VV_MF2_MASK = 1530,
-  PseudoVASUB_VV_MF4 = 1531,
-  PseudoVASUB_VV_MF4_MASK = 1532,
-  PseudoVASUB_VV_MF8 = 1533,
-  PseudoVASUB_VV_MF8_MASK = 1534,
-  PseudoVASUB_VX_M1 = 1535,
-  PseudoVASUB_VX_M1_MASK = 1536,
-  PseudoVASUB_VX_M2 = 1537,
-  PseudoVASUB_VX_M2_MASK = 1538,
-  PseudoVASUB_VX_M4 = 1539,
-  PseudoVASUB_VX_M4_MASK = 1540,
-  PseudoVASUB_VX_M8 = 1541,
-  PseudoVASUB_VX_M8_MASK = 1542,
-  PseudoVASUB_VX_MF2 = 1543,
-  PseudoVASUB_VX_MF2_MASK = 1544,
-  PseudoVASUB_VX_MF4 = 1545,
-  PseudoVASUB_VX_MF4_MASK = 1546,
-  PseudoVASUB_VX_MF8 = 1547,
-  PseudoVASUB_VX_MF8_MASK = 1548,
-  PseudoVBREV8_V_M1 = 1549,
-  PseudoVBREV8_V_M1_MASK = 1550,
-  PseudoVBREV8_V_M2 = 1551,
-  PseudoVBREV8_V_M2_MASK = 1552,
-  PseudoVBREV8_V_M4 = 1553,
-  PseudoVBREV8_V_M4_MASK = 1554,
-  PseudoVBREV8_V_M8 = 1555,
-  PseudoVBREV8_V_M8_MASK = 1556,
-  PseudoVBREV8_V_MF2 = 1557,
-  PseudoVBREV8_V_MF2_MASK = 1558,
-  PseudoVBREV8_V_MF4 = 1559,
-  PseudoVBREV8_V_MF4_MASK = 1560,
-  PseudoVBREV8_V_MF8 = 1561,
-  PseudoVBREV8_V_MF8_MASK = 1562,
-  PseudoVBREV_V_M1 = 1563,
-  PseudoVBREV_V_M1_MASK = 1564,
-  PseudoVBREV_V_M2 = 1565,
-  PseudoVBREV_V_M2_MASK = 1566,
-  PseudoVBREV_V_M4 = 1567,
-  PseudoVBREV_V_M4_MASK = 1568,
-  PseudoVBREV_V_M8 = 1569,
-  PseudoVBREV_V_M8_MASK = 1570,
-  PseudoVBREV_V_MF2 = 1571,
-  PseudoVBREV_V_MF2_MASK = 1572,
-  PseudoVBREV_V_MF4 = 1573,
-  PseudoVBREV_V_MF4_MASK = 1574,
-  PseudoVBREV_V_MF8 = 1575,
-  PseudoVBREV_V_MF8_MASK = 1576,
-  PseudoVCLMULH_VV_M1 = 1577,
-  PseudoVCLMULH_VV_M1_MASK = 1578,
-  PseudoVCLMULH_VV_M2 = 1579,
-  PseudoVCLMULH_VV_M2_MASK = 1580,
-  PseudoVCLMULH_VV_M4 = 1581,
-  PseudoVCLMULH_VV_M4_MASK = 1582,
-  PseudoVCLMULH_VV_M8 = 1583,
-  PseudoVCLMULH_VV_M8_MASK = 1584,
-  PseudoVCLMULH_VV_MF2 = 1585,
-  PseudoVCLMULH_VV_MF2_MASK = 1586,
-  PseudoVCLMULH_VV_MF4 = 1587,
-  PseudoVCLMULH_VV_MF4_MASK = 1588,
-  PseudoVCLMULH_VV_MF8 = 1589,
-  PseudoVCLMULH_VV_MF8_MASK = 1590,
-  PseudoVCLMULH_VX_M1 = 1591,
-  PseudoVCLMULH_VX_M1_MASK = 1592,
-  PseudoVCLMULH_VX_M2 = 1593,
-  PseudoVCLMULH_VX_M2_MASK = 1594,
-  PseudoVCLMULH_VX_M4 = 1595,
-  PseudoVCLMULH_VX_M4_MASK = 1596,
-  PseudoVCLMULH_VX_M8 = 1597,
-  PseudoVCLMULH_VX_M8_MASK = 1598,
-  PseudoVCLMULH_VX_MF2 = 1599,
-  PseudoVCLMULH_VX_MF2_MASK = 1600,
-  PseudoVCLMULH_VX_MF4 = 1601,
-  PseudoVCLMULH_VX_MF4_MASK = 1602,
-  PseudoVCLMULH_VX_MF8 = 1603,
-  PseudoVCLMULH_VX_MF8_MASK = 1604,
-  PseudoVCLMUL_VV_M1 = 1605,
-  PseudoVCLMUL_VV_M1_MASK = 1606,
-  PseudoVCLMUL_VV_M2 = 1607,
-  PseudoVCLMUL_VV_M2_MASK = 1608,
-  PseudoVCLMUL_VV_M4 = 1609,
-  PseudoVCLMUL_VV_M4_MASK = 1610,
-  PseudoVCLMUL_VV_M8 = 1611,
-  PseudoVCLMUL_VV_M8_MASK = 1612,
-  PseudoVCLMUL_VV_MF2 = 1613,
-  PseudoVCLMUL_VV_MF2_MASK = 1614,
-  PseudoVCLMUL_VV_MF4 = 1615,
-  PseudoVCLMUL_VV_MF4_MASK = 1616,
-  PseudoVCLMUL_VV_MF8 = 1617,
-  PseudoVCLMUL_VV_MF8_MASK = 1618,
-  PseudoVCLMUL_VX_M1 = 1619,
-  PseudoVCLMUL_VX_M1_MASK = 1620,
-  PseudoVCLMUL_VX_M2 = 1621,
-  PseudoVCLMUL_VX_M2_MASK = 1622,
-  PseudoVCLMUL_VX_M4 = 1623,
-  PseudoVCLMUL_VX_M4_MASK = 1624,
-  PseudoVCLMUL_VX_M8 = 1625,
-  PseudoVCLMUL_VX_M8_MASK = 1626,
-  PseudoVCLMUL_VX_MF2 = 1627,
-  PseudoVCLMUL_VX_MF2_MASK = 1628,
-  PseudoVCLMUL_VX_MF4 = 1629,
-  PseudoVCLMUL_VX_MF4_MASK = 1630,
-  PseudoVCLMUL_VX_MF8 = 1631,
-  PseudoVCLMUL_VX_MF8_MASK = 1632,
-  PseudoVCLZ_V_M1 = 1633,
-  PseudoVCLZ_V_M1_MASK = 1634,
-  PseudoVCLZ_V_M2 = 1635,
-  PseudoVCLZ_V_M2_MASK = 1636,
-  PseudoVCLZ_V_M4 = 1637,
-  PseudoVCLZ_V_M4_MASK = 1638,
-  PseudoVCLZ_V_M8 = 1639,
-  PseudoVCLZ_V_M8_MASK = 1640,
-  PseudoVCLZ_V_MF2 = 1641,
-  PseudoVCLZ_V_MF2_MASK = 1642,
-  PseudoVCLZ_V_MF4 = 1643,
-  PseudoVCLZ_V_MF4_MASK = 1644,
-  PseudoVCLZ_V_MF8 = 1645,
-  PseudoVCLZ_V_MF8_MASK = 1646,
-  PseudoVCOMPRESS_VM_M1_E16 = 1647,
-  PseudoVCOMPRESS_VM_M1_E32 = 1648,
-  PseudoVCOMPRESS_VM_M1_E64 = 1649,
-  PseudoVCOMPRESS_VM_M1_E8 = 1650,
-  PseudoVCOMPRESS_VM_M2_E16 = 1651,
-  PseudoVCOMPRESS_VM_M2_E32 = 1652,
-  PseudoVCOMPRESS_VM_M2_E64 = 1653,
-  PseudoVCOMPRESS_VM_M2_E8 = 1654,
-  PseudoVCOMPRESS_VM_M4_E16 = 1655,
-  PseudoVCOMPRESS_VM_M4_E32 = 1656,
-  PseudoVCOMPRESS_VM_M4_E64 = 1657,
-  PseudoVCOMPRESS_VM_M4_E8 = 1658,
-  PseudoVCOMPRESS_VM_M8_E16 = 1659,
-  PseudoVCOMPRESS_VM_M8_E32 = 1660,
-  PseudoVCOMPRESS_VM_M8_E64 = 1661,
-  PseudoVCOMPRESS_VM_M8_E8 = 1662,
-  PseudoVCOMPRESS_VM_MF2_E16 = 1663,
-  PseudoVCOMPRESS_VM_MF2_E32 = 1664,
-  PseudoVCOMPRESS_VM_MF2_E8 = 1665,
-  PseudoVCOMPRESS_VM_MF4_E16 = 1666,
-  PseudoVCOMPRESS_VM_MF4_E8 = 1667,
-  PseudoVCOMPRESS_VM_MF8_E8 = 1668,
-  PseudoVCPOP_M_B1 = 1669,
-  PseudoVCPOP_M_B16 = 1670,
-  PseudoVCPOP_M_B16_MASK = 1671,
-  PseudoVCPOP_M_B1_MASK = 1672,
-  PseudoVCPOP_M_B2 = 1673,
-  PseudoVCPOP_M_B2_MASK = 1674,
-  PseudoVCPOP_M_B32 = 1675,
-  PseudoVCPOP_M_B32_MASK = 1676,
-  PseudoVCPOP_M_B4 = 1677,
-  PseudoVCPOP_M_B4_MASK = 1678,
-  PseudoVCPOP_M_B64 = 1679,
-  PseudoVCPOP_M_B64_MASK = 1680,
-  PseudoVCPOP_M_B8 = 1681,
-  PseudoVCPOP_M_B8_MASK = 1682,
-  PseudoVCPOP_V_M1 = 1683,
-  PseudoVCPOP_V_M1_MASK = 1684,
-  PseudoVCPOP_V_M2 = 1685,
-  PseudoVCPOP_V_M2_MASK = 1686,
-  PseudoVCPOP_V_M4 = 1687,
-  PseudoVCPOP_V_M4_MASK = 1688,
-  PseudoVCPOP_V_M8 = 1689,
-  PseudoVCPOP_V_M8_MASK = 1690,
-  PseudoVCPOP_V_MF2 = 1691,
-  PseudoVCPOP_V_MF2_MASK = 1692,
-  PseudoVCPOP_V_MF4 = 1693,
-  PseudoVCPOP_V_MF4_MASK = 1694,
-  PseudoVCPOP_V_MF8 = 1695,
-  PseudoVCPOP_V_MF8_MASK = 1696,
-  PseudoVCTZ_V_M1 = 1697,
-  PseudoVCTZ_V_M1_MASK = 1698,
-  PseudoVCTZ_V_M2 = 1699,
-  PseudoVCTZ_V_M2_MASK = 1700,
-  PseudoVCTZ_V_M4 = 1701,
-  PseudoVCTZ_V_M4_MASK = 1702,
-  PseudoVCTZ_V_M8 = 1703,
-  PseudoVCTZ_V_M8_MASK = 1704,
-  PseudoVCTZ_V_MF2 = 1705,
-  PseudoVCTZ_V_MF2_MASK = 1706,
-  PseudoVCTZ_V_MF4 = 1707,
-  PseudoVCTZ_V_MF4_MASK = 1708,
-  PseudoVCTZ_V_MF8 = 1709,
-  PseudoVCTZ_V_MF8_MASK = 1710,
-  PseudoVDIVU_VV_M1_E16 = 1711,
-  PseudoVDIVU_VV_M1_E16_MASK = 1712,
-  PseudoVDIVU_VV_M1_E32 = 1713,
-  PseudoVDIVU_VV_M1_E32_MASK = 1714,
-  PseudoVDIVU_VV_M1_E64 = 1715,
-  PseudoVDIVU_VV_M1_E64_MASK = 1716,
-  PseudoVDIVU_VV_M1_E8 = 1717,
-  PseudoVDIVU_VV_M1_E8_MASK = 1718,
-  PseudoVDIVU_VV_M2_E16 = 1719,
-  PseudoVDIVU_VV_M2_E16_MASK = 1720,
-  PseudoVDIVU_VV_M2_E32 = 1721,
-  PseudoVDIVU_VV_M2_E32_MASK = 1722,
-  PseudoVDIVU_VV_M2_E64 = 1723,
-  PseudoVDIVU_VV_M2_E64_MASK = 1724,
-  PseudoVDIVU_VV_M2_E8 = 1725,
-  PseudoVDIVU_VV_M2_E8_MASK = 1726,
-  PseudoVDIVU_VV_M4_E16 = 1727,
-  PseudoVDIVU_VV_M4_E16_MASK = 1728,
-  PseudoVDIVU_VV_M4_E32 = 1729,
-  PseudoVDIVU_VV_M4_E32_MASK = 1730,
-  PseudoVDIVU_VV_M4_E64 = 1731,
-  PseudoVDIVU_VV_M4_E64_MASK = 1732,
-  PseudoVDIVU_VV_M4_E8 = 1733,
-  PseudoVDIVU_VV_M4_E8_MASK = 1734,
-  PseudoVDIVU_VV_M8_E16 = 1735,
-  PseudoVDIVU_VV_M8_E16_MASK = 1736,
-  PseudoVDIVU_VV_M8_E32 = 1737,
-  PseudoVDIVU_VV_M8_E32_MASK = 1738,
-  PseudoVDIVU_VV_M8_E64 = 1739,
-  PseudoVDIVU_VV_M8_E64_MASK = 1740,
-  PseudoVDIVU_VV_M8_E8 = 1741,
-  PseudoVDIVU_VV_M8_E8_MASK = 1742,
-  PseudoVDIVU_VV_MF2_E16 = 1743,
-  PseudoVDIVU_VV_MF2_E16_MASK = 1744,
-  PseudoVDIVU_VV_MF2_E32 = 1745,
-  PseudoVDIVU_VV_MF2_E32_MASK = 1746,
-  PseudoVDIVU_VV_MF2_E8 = 1747,
-  PseudoVDIVU_VV_MF2_E8_MASK = 1748,
-  PseudoVDIVU_VV_MF4_E16 = 1749,
-  PseudoVDIVU_VV_MF4_E16_MASK = 1750,
-  PseudoVDIVU_VV_MF4_E8 = 1751,
-  PseudoVDIVU_VV_MF4_E8_MASK = 1752,
-  PseudoVDIVU_VV_MF8_E8 = 1753,
-  PseudoVDIVU_VV_MF8_E8_MASK = 1754,
-  PseudoVDIVU_VX_M1_E16 = 1755,
-  PseudoVDIVU_VX_M1_E16_MASK = 1756,
-  PseudoVDIVU_VX_M1_E32 = 1757,
-  PseudoVDIVU_VX_M1_E32_MASK = 1758,
-  PseudoVDIVU_VX_M1_E64 = 1759,
-  PseudoVDIVU_VX_M1_E64_MASK = 1760,
-  PseudoVDIVU_VX_M1_E8 = 1761,
-  PseudoVDIVU_VX_M1_E8_MASK = 1762,
-  PseudoVDIVU_VX_M2_E16 = 1763,
-  PseudoVDIVU_VX_M2_E16_MASK = 1764,
-  PseudoVDIVU_VX_M2_E32 = 1765,
-  PseudoVDIVU_VX_M2_E32_MASK = 1766,
-  PseudoVDIVU_VX_M2_E64 = 1767,
-  PseudoVDIVU_VX_M2_E64_MASK = 1768,
-  PseudoVDIVU_VX_M2_E8 = 1769,
-  PseudoVDIVU_VX_M2_E8_MASK = 1770,
-  PseudoVDIVU_VX_M4_E16 = 1771,
-  PseudoVDIVU_VX_M4_E16_MASK = 1772,
-  PseudoVDIVU_VX_M4_E32 = 1773,
-  PseudoVDIVU_VX_M4_E32_MASK = 1774,
-  PseudoVDIVU_VX_M4_E64 = 1775,
-  PseudoVDIVU_VX_M4_E64_MASK = 1776,
-  PseudoVDIVU_VX_M4_E8 = 1777,
-  PseudoVDIVU_VX_M4_E8_MASK = 1778,
-  PseudoVDIVU_VX_M8_E16 = 1779,
-  PseudoVDIVU_VX_M8_E16_MASK = 1780,
-  PseudoVDIVU_VX_M8_E32 = 1781,
-  PseudoVDIVU_VX_M8_E32_MASK = 1782,
-  PseudoVDIVU_VX_M8_E64 = 1783,
-  PseudoVDIVU_VX_M8_E64_MASK = 1784,
-  PseudoVDIVU_VX_M8_E8 = 1785,
-  PseudoVDIVU_VX_M8_E8_MASK = 1786,
-  PseudoVDIVU_VX_MF2_E16 = 1787,
-  PseudoVDIVU_VX_MF2_E16_MASK = 1788,
-  PseudoVDIVU_VX_MF2_E32 = 1789,
-  PseudoVDIVU_VX_MF2_E32_MASK = 1790,
-  PseudoVDIVU_VX_MF2_E8 = 1791,
-  PseudoVDIVU_VX_MF2_E8_MASK = 1792,
-  PseudoVDIVU_VX_MF4_E16 = 1793,
-  PseudoVDIVU_VX_MF4_E16_MASK = 1794,
-  PseudoVDIVU_VX_MF4_E8 = 1795,
-  PseudoVDIVU_VX_MF4_E8_MASK = 1796,
-  PseudoVDIVU_VX_MF8_E8 = 1797,
-  PseudoVDIVU_VX_MF8_E8_MASK = 1798,
-  PseudoVDIV_VV_M1_E16 = 1799,
-  PseudoVDIV_VV_M1_E16_MASK = 1800,
-  PseudoVDIV_VV_M1_E32 = 1801,
-  PseudoVDIV_VV_M1_E32_MASK = 1802,
-  PseudoVDIV_VV_M1_E64 = 1803,
-  PseudoVDIV_VV_M1_E64_MASK = 1804,
-  PseudoVDIV_VV_M1_E8 = 1805,
-  PseudoVDIV_VV_M1_E8_MASK = 1806,
-  PseudoVDIV_VV_M2_E16 = 1807,
-  PseudoVDIV_VV_M2_E16_MASK = 1808,
-  PseudoVDIV_VV_M2_E32 = 1809,
-  PseudoVDIV_VV_M2_E32_MASK = 1810,
-  PseudoVDIV_VV_M2_E64 = 1811,
-  PseudoVDIV_VV_M2_E64_MASK = 1812,
-  PseudoVDIV_VV_M2_E8 = 1813,
-  PseudoVDIV_VV_M2_E8_MASK = 1814,
-  PseudoVDIV_VV_M4_E16 = 1815,
-  PseudoVDIV_VV_M4_E16_MASK = 1816,
-  PseudoVDIV_VV_M4_E32 = 1817,
-  PseudoVDIV_VV_M4_E32_MASK = 1818,
-  PseudoVDIV_VV_M4_E64 = 1819,
-  PseudoVDIV_VV_M4_E64_MASK = 1820,
-  PseudoVDIV_VV_M4_E8 = 1821,
-  PseudoVDIV_VV_M4_E8_MASK = 1822,
-  PseudoVDIV_VV_M8_E16 = 1823,
-  PseudoVDIV_VV_M8_E16_MASK = 1824,
-  PseudoVDIV_VV_M8_E32 = 1825,
-  PseudoVDIV_VV_M8_E32_MASK = 1826,
-  PseudoVDIV_VV_M8_E64 = 1827,
-  PseudoVDIV_VV_M8_E64_MASK = 1828,
-  PseudoVDIV_VV_M8_E8 = 1829,
-  PseudoVDIV_VV_M8_E8_MASK = 1830,
-  PseudoVDIV_VV_MF2_E16 = 1831,
-  PseudoVDIV_VV_MF2_E16_MASK = 1832,
-  PseudoVDIV_VV_MF2_E32 = 1833,
-  PseudoVDIV_VV_MF2_E32_MASK = 1834,
-  PseudoVDIV_VV_MF2_E8 = 1835,
-  PseudoVDIV_VV_MF2_E8_MASK = 1836,
-  PseudoVDIV_VV_MF4_E16 = 1837,
-  PseudoVDIV_VV_MF4_E16_MASK = 1838,
-  PseudoVDIV_VV_MF4_E8 = 1839,
-  PseudoVDIV_VV_MF4_E8_MASK = 1840,
-  PseudoVDIV_VV_MF8_E8 = 1841,
-  PseudoVDIV_VV_MF8_E8_MASK = 1842,
-  PseudoVDIV_VX_M1_E16 = 1843,
-  PseudoVDIV_VX_M1_E16_MASK = 1844,
-  PseudoVDIV_VX_M1_E32 = 1845,
-  PseudoVDIV_VX_M1_E32_MASK = 1846,
-  PseudoVDIV_VX_M1_E64 = 1847,
-  PseudoVDIV_VX_M1_E64_MASK = 1848,
-  PseudoVDIV_VX_M1_E8 = 1849,
-  PseudoVDIV_VX_M1_E8_MASK = 1850,
-  PseudoVDIV_VX_M2_E16 = 1851,
-  PseudoVDIV_VX_M2_E16_MASK = 1852,
-  PseudoVDIV_VX_M2_E32 = 1853,
-  PseudoVDIV_VX_M2_E32_MASK = 1854,
-  PseudoVDIV_VX_M2_E64 = 1855,
-  PseudoVDIV_VX_M2_E64_MASK = 1856,
-  PseudoVDIV_VX_M2_E8 = 1857,
-  PseudoVDIV_VX_M2_E8_MASK = 1858,
-  PseudoVDIV_VX_M4_E16 = 1859,
-  PseudoVDIV_VX_M4_E16_MASK = 1860,
-  PseudoVDIV_VX_M4_E32 = 1861,
-  PseudoVDIV_VX_M4_E32_MASK = 1862,
-  PseudoVDIV_VX_M4_E64 = 1863,
-  PseudoVDIV_VX_M4_E64_MASK = 1864,
-  PseudoVDIV_VX_M4_E8 = 1865,
-  PseudoVDIV_VX_M4_E8_MASK = 1866,
-  PseudoVDIV_VX_M8_E16 = 1867,
-  PseudoVDIV_VX_M8_E16_MASK = 1868,
-  PseudoVDIV_VX_M8_E32 = 1869,
-  PseudoVDIV_VX_M8_E32_MASK = 1870,
-  PseudoVDIV_VX_M8_E64 = 1871,
-  PseudoVDIV_VX_M8_E64_MASK = 1872,
-  PseudoVDIV_VX_M8_E8 = 1873,
-  PseudoVDIV_VX_M8_E8_MASK = 1874,
-  PseudoVDIV_VX_MF2_E16 = 1875,
-  PseudoVDIV_VX_MF2_E16_MASK = 1876,
-  PseudoVDIV_VX_MF2_E32 = 1877,
-  PseudoVDIV_VX_MF2_E32_MASK = 1878,
-  PseudoVDIV_VX_MF2_E8 = 1879,
-  PseudoVDIV_VX_MF2_E8_MASK = 1880,
-  PseudoVDIV_VX_MF4_E16 = 1881,
-  PseudoVDIV_VX_MF4_E16_MASK = 1882,
-  PseudoVDIV_VX_MF4_E8 = 1883,
-  PseudoVDIV_VX_MF4_E8_MASK = 1884,
-  PseudoVDIV_VX_MF8_E8 = 1885,
-  PseudoVDIV_VX_MF8_E8_MASK = 1886,
-  PseudoVFADD_VFPR16_M1_E16 = 1887,
-  PseudoVFADD_VFPR16_M1_E16_MASK = 1888,
-  PseudoVFADD_VFPR16_M2_E16 = 1889,
-  PseudoVFADD_VFPR16_M2_E16_MASK = 1890,
-  PseudoVFADD_VFPR16_M4_E16 = 1891,
-  PseudoVFADD_VFPR16_M4_E16_MASK = 1892,
-  PseudoVFADD_VFPR16_M8_E16 = 1893,
-  PseudoVFADD_VFPR16_M8_E16_MASK = 1894,
-  PseudoVFADD_VFPR16_MF2_E16 = 1895,
-  PseudoVFADD_VFPR16_MF2_E16_MASK = 1896,
-  PseudoVFADD_VFPR16_MF4_E16 = 1897,
-  PseudoVFADD_VFPR16_MF4_E16_MASK = 1898,
-  PseudoVFADD_VFPR32_M1_E32 = 1899,
-  PseudoVFADD_VFPR32_M1_E32_MASK = 1900,
-  PseudoVFADD_VFPR32_M2_E32 = 1901,
-  PseudoVFADD_VFPR32_M2_E32_MASK = 1902,
-  PseudoVFADD_VFPR32_M4_E32 = 1903,
-  PseudoVFADD_VFPR32_M4_E32_MASK = 1904,
-  PseudoVFADD_VFPR32_M8_E32 = 1905,
-  PseudoVFADD_VFPR32_M8_E32_MASK = 1906,
-  PseudoVFADD_VFPR32_MF2_E32 = 1907,
-  PseudoVFADD_VFPR32_MF2_E32_MASK = 1908,
-  PseudoVFADD_VFPR64_M1_E64 = 1909,
-  PseudoVFADD_VFPR64_M1_E64_MASK = 1910,
-  PseudoVFADD_VFPR64_M2_E64 = 1911,
-  PseudoVFADD_VFPR64_M2_E64_MASK = 1912,
-  PseudoVFADD_VFPR64_M4_E64 = 1913,
-  PseudoVFADD_VFPR64_M4_E64_MASK = 1914,
-  PseudoVFADD_VFPR64_M8_E64 = 1915,
-  PseudoVFADD_VFPR64_M8_E64_MASK = 1916,
-  PseudoVFADD_VV_M1_E16 = 1917,
-  PseudoVFADD_VV_M1_E16_MASK = 1918,
-  PseudoVFADD_VV_M1_E32 = 1919,
-  PseudoVFADD_VV_M1_E32_MASK = 1920,
-  PseudoVFADD_VV_M1_E64 = 1921,
-  PseudoVFADD_VV_M1_E64_MASK = 1922,
-  PseudoVFADD_VV_M2_E16 = 1923,
-  PseudoVFADD_VV_M2_E16_MASK = 1924,
-  PseudoVFADD_VV_M2_E32 = 1925,
-  PseudoVFADD_VV_M2_E32_MASK = 1926,
-  PseudoVFADD_VV_M2_E64 = 1927,
-  PseudoVFADD_VV_M2_E64_MASK = 1928,
-  PseudoVFADD_VV_M4_E16 = 1929,
-  PseudoVFADD_VV_M4_E16_MASK = 1930,
-  PseudoVFADD_VV_M4_E32 = 1931,
-  PseudoVFADD_VV_M4_E32_MASK = 1932,
-  PseudoVFADD_VV_M4_E64 = 1933,
-  PseudoVFADD_VV_M4_E64_MASK = 1934,
-  PseudoVFADD_VV_M8_E16 = 1935,
-  PseudoVFADD_VV_M8_E16_MASK = 1936,
-  PseudoVFADD_VV_M8_E32 = 1937,
-  PseudoVFADD_VV_M8_E32_MASK = 1938,
-  PseudoVFADD_VV_M8_E64 = 1939,
-  PseudoVFADD_VV_M8_E64_MASK = 1940,
-  PseudoVFADD_VV_MF2_E16 = 1941,
-  PseudoVFADD_VV_MF2_E16_MASK = 1942,
-  PseudoVFADD_VV_MF2_E32 = 1943,
-  PseudoVFADD_VV_MF2_E32_MASK = 1944,
-  PseudoVFADD_VV_MF4_E16 = 1945,
-  PseudoVFADD_VV_MF4_E16_MASK = 1946,
-  PseudoVFCLASS_V_M1 = 1947,
-  PseudoVFCLASS_V_M1_MASK = 1948,
-  PseudoVFCLASS_V_M2 = 1949,
-  PseudoVFCLASS_V_M2_MASK = 1950,
-  PseudoVFCLASS_V_M4 = 1951,
-  PseudoVFCLASS_V_M4_MASK = 1952,
-  PseudoVFCLASS_V_M8 = 1953,
-  PseudoVFCLASS_V_M8_MASK = 1954,
-  PseudoVFCLASS_V_MF2 = 1955,
-  PseudoVFCLASS_V_MF2_MASK = 1956,
-  PseudoVFCLASS_V_MF4 = 1957,
-  PseudoVFCLASS_V_MF4_MASK = 1958,
-  PseudoVFCVT_F_XU_V_M1_E16 = 1959,
-  PseudoVFCVT_F_XU_V_M1_E16_MASK = 1960,
-  PseudoVFCVT_F_XU_V_M1_E32 = 1961,
-  PseudoVFCVT_F_XU_V_M1_E32_MASK = 1962,
-  PseudoVFCVT_F_XU_V_M1_E64 = 1963,
-  PseudoVFCVT_F_XU_V_M1_E64_MASK = 1964,
-  PseudoVFCVT_F_XU_V_M2_E16 = 1965,
-  PseudoVFCVT_F_XU_V_M2_E16_MASK = 1966,
-  PseudoVFCVT_F_XU_V_M2_E32 = 1967,
-  PseudoVFCVT_F_XU_V_M2_E32_MASK = 1968,
-  PseudoVFCVT_F_XU_V_M2_E64 = 1969,
-  PseudoVFCVT_F_XU_V_M2_E64_MASK = 1970,
-  PseudoVFCVT_F_XU_V_M4_E16 = 1971,
-  PseudoVFCVT_F_XU_V_M4_E16_MASK = 1972,
-  PseudoVFCVT_F_XU_V_M4_E32 = 1973,
-  PseudoVFCVT_F_XU_V_M4_E32_MASK = 1974,
-  PseudoVFCVT_F_XU_V_M4_E64 = 1975,
-  PseudoVFCVT_F_XU_V_M4_E64_MASK = 1976,
-  PseudoVFCVT_F_XU_V_M8_E16 = 1977,
-  PseudoVFCVT_F_XU_V_M8_E16_MASK = 1978,
-  PseudoVFCVT_F_XU_V_M8_E32 = 1979,
-  PseudoVFCVT_F_XU_V_M8_E32_MASK = 1980,
-  PseudoVFCVT_F_XU_V_M8_E64 = 1981,
-  PseudoVFCVT_F_XU_V_M8_E64_MASK = 1982,
-  PseudoVFCVT_F_XU_V_MF2_E16 = 1983,
-  PseudoVFCVT_F_XU_V_MF2_E16_MASK = 1984,
-  PseudoVFCVT_F_XU_V_MF2_E32 = 1985,
-  PseudoVFCVT_F_XU_V_MF2_E32_MASK = 1986,
-  PseudoVFCVT_F_XU_V_MF4_E16 = 1987,
-  PseudoVFCVT_F_XU_V_MF4_E16_MASK = 1988,
-  PseudoVFCVT_F_X_V_M1_E16 = 1989,
-  PseudoVFCVT_F_X_V_M1_E16_MASK = 1990,
-  PseudoVFCVT_F_X_V_M1_E32 = 1991,
-  PseudoVFCVT_F_X_V_M1_E32_MASK = 1992,
-  PseudoVFCVT_F_X_V_M1_E64 = 1993,
-  PseudoVFCVT_F_X_V_M1_E64_MASK = 1994,
-  PseudoVFCVT_F_X_V_M2_E16 = 1995,
-  PseudoVFCVT_F_X_V_M2_E16_MASK = 1996,
-  PseudoVFCVT_F_X_V_M2_E32 = 1997,
-  PseudoVFCVT_F_X_V_M2_E32_MASK = 1998,
-  PseudoVFCVT_F_X_V_M2_E64 = 1999,
-  PseudoVFCVT_F_X_V_M2_E64_MASK = 2000,
-  PseudoVFCVT_F_X_V_M4_E16 = 2001,
-  PseudoVFCVT_F_X_V_M4_E16_MASK = 2002,
-  PseudoVFCVT_F_X_V_M4_E32 = 2003,
-  PseudoVFCVT_F_X_V_M4_E32_MASK = 2004,
-  PseudoVFCVT_F_X_V_M4_E64 = 2005,
-  PseudoVFCVT_F_X_V_M4_E64_MASK = 2006,
-  PseudoVFCVT_F_X_V_M8_E16 = 2007,
-  PseudoVFCVT_F_X_V_M8_E16_MASK = 2008,
-  PseudoVFCVT_F_X_V_M8_E32 = 2009,
-  PseudoVFCVT_F_X_V_M8_E32_MASK = 2010,
-  PseudoVFCVT_F_X_V_M8_E64 = 2011,
-  PseudoVFCVT_F_X_V_M8_E64_MASK = 2012,
-  PseudoVFCVT_F_X_V_MF2_E16 = 2013,
-  PseudoVFCVT_F_X_V_MF2_E16_MASK = 2014,
-  PseudoVFCVT_F_X_V_MF2_E32 = 2015,
-  PseudoVFCVT_F_X_V_MF2_E32_MASK = 2016,
-  PseudoVFCVT_F_X_V_MF4_E16 = 2017,
-  PseudoVFCVT_F_X_V_MF4_E16_MASK = 2018,
-  PseudoVFCVT_RTZ_XU_F_V_M1 = 2019,
-  PseudoVFCVT_RTZ_XU_F_V_M1_MASK = 2020,
-  PseudoVFCVT_RTZ_XU_F_V_M2 = 2021,
-  PseudoVFCVT_RTZ_XU_F_V_M2_MASK = 2022,
-  PseudoVFCVT_RTZ_XU_F_V_M4 = 2023,
-  PseudoVFCVT_RTZ_XU_F_V_M4_MASK = 2024,
-  PseudoVFCVT_RTZ_XU_F_V_M8 = 2025,
-  PseudoVFCVT_RTZ_XU_F_V_M8_MASK = 2026,
-  PseudoVFCVT_RTZ_XU_F_V_MF2 = 2027,
-  PseudoVFCVT_RTZ_XU_F_V_MF2_MASK = 2028,
-  PseudoVFCVT_RTZ_XU_F_V_MF4 = 2029,
-  PseudoVFCVT_RTZ_XU_F_V_MF4_MASK = 2030,
-  PseudoVFCVT_RTZ_X_F_V_M1 = 2031,
-  PseudoVFCVT_RTZ_X_F_V_M1_MASK = 2032,
-  PseudoVFCVT_RTZ_X_F_V_M2 = 2033,
-  PseudoVFCVT_RTZ_X_F_V_M2_MASK = 2034,
-  PseudoVFCVT_RTZ_X_F_V_M4 = 2035,
-  PseudoVFCVT_RTZ_X_F_V_M4_MASK = 2036,
-  PseudoVFCVT_RTZ_X_F_V_M8 = 2037,
-  PseudoVFCVT_RTZ_X_F_V_M8_MASK = 2038,
-  PseudoVFCVT_RTZ_X_F_V_MF2 = 2039,
-  PseudoVFCVT_RTZ_X_F_V_MF2_MASK = 2040,
-  PseudoVFCVT_RTZ_X_F_V_MF4 = 2041,
-  PseudoVFCVT_RTZ_X_F_V_MF4_MASK = 2042,
-  PseudoVFCVT_XU_F_V_M1 = 2043,
-  PseudoVFCVT_XU_F_V_M1_MASK = 2044,
-  PseudoVFCVT_XU_F_V_M2 = 2045,
-  PseudoVFCVT_XU_F_V_M2_MASK = 2046,
-  PseudoVFCVT_XU_F_V_M4 = 2047,
-  PseudoVFCVT_XU_F_V_M4_MASK = 2048,
-  PseudoVFCVT_XU_F_V_M8 = 2049,
-  PseudoVFCVT_XU_F_V_M8_MASK = 2050,
-  PseudoVFCVT_XU_F_V_MF2 = 2051,
-  PseudoVFCVT_XU_F_V_MF2_MASK = 2052,
-  PseudoVFCVT_XU_F_V_MF4 = 2053,
-  PseudoVFCVT_XU_F_V_MF4_MASK = 2054,
-  PseudoVFCVT_X_F_V_M1 = 2055,
-  PseudoVFCVT_X_F_V_M1_MASK = 2056,
-  PseudoVFCVT_X_F_V_M2 = 2057,
-  PseudoVFCVT_X_F_V_M2_MASK = 2058,
-  PseudoVFCVT_X_F_V_M4 = 2059,
-  PseudoVFCVT_X_F_V_M4_MASK = 2060,
-  PseudoVFCVT_X_F_V_M8 = 2061,
-  PseudoVFCVT_X_F_V_M8_MASK = 2062,
-  PseudoVFCVT_X_F_V_MF2 = 2063,
-  PseudoVFCVT_X_F_V_MF2_MASK = 2064,
-  PseudoVFCVT_X_F_V_MF4 = 2065,
-  PseudoVFCVT_X_F_V_MF4_MASK = 2066,
-  PseudoVFDIV_VFPR16_M1_E16 = 2067,
-  PseudoVFDIV_VFPR16_M1_E16_MASK = 2068,
-  PseudoVFDIV_VFPR16_M2_E16 = 2069,
-  PseudoVFDIV_VFPR16_M2_E16_MASK = 2070,
-  PseudoVFDIV_VFPR16_M4_E16 = 2071,
-  PseudoVFDIV_VFPR16_M4_E16_MASK = 2072,
-  PseudoVFDIV_VFPR16_M8_E16 = 2073,
-  PseudoVFDIV_VFPR16_M8_E16_MASK = 2074,
-  PseudoVFDIV_VFPR16_MF2_E16 = 2075,
-  PseudoVFDIV_VFPR16_MF2_E16_MASK = 2076,
-  PseudoVFDIV_VFPR16_MF4_E16 = 2077,
-  PseudoVFDIV_VFPR16_MF4_E16_MASK = 2078,
-  PseudoVFDIV_VFPR32_M1_E32 = 2079,
-  PseudoVFDIV_VFPR32_M1_E32_MASK = 2080,
-  PseudoVFDIV_VFPR32_M2_E32 = 2081,
-  PseudoVFDIV_VFPR32_M2_E32_MASK = 2082,
-  PseudoVFDIV_VFPR32_M4_E32 = 2083,
-  PseudoVFDIV_VFPR32_M4_E32_MASK = 2084,
-  PseudoVFDIV_VFPR32_M8_E32 = 2085,
-  PseudoVFDIV_VFPR32_M8_E32_MASK = 2086,
-  PseudoVFDIV_VFPR32_MF2_E32 = 2087,
-  PseudoVFDIV_VFPR32_MF2_E32_MASK = 2088,
-  PseudoVFDIV_VFPR64_M1_E64 = 2089,
-  PseudoVFDIV_VFPR64_M1_E64_MASK = 2090,
-  PseudoVFDIV_VFPR64_M2_E64 = 2091,
-  PseudoVFDIV_VFPR64_M2_E64_MASK = 2092,
-  PseudoVFDIV_VFPR64_M4_E64 = 2093,
-  PseudoVFDIV_VFPR64_M4_E64_MASK = 2094,
-  PseudoVFDIV_VFPR64_M8_E64 = 2095,
-  PseudoVFDIV_VFPR64_M8_E64_MASK = 2096,
-  PseudoVFDIV_VV_M1_E16 = 2097,
-  PseudoVFDIV_VV_M1_E16_MASK = 2098,
-  PseudoVFDIV_VV_M1_E32 = 2099,
-  PseudoVFDIV_VV_M1_E32_MASK = 2100,
-  PseudoVFDIV_VV_M1_E64 = 2101,
-  PseudoVFDIV_VV_M1_E64_MASK = 2102,
-  PseudoVFDIV_VV_M2_E16 = 2103,
-  PseudoVFDIV_VV_M2_E16_MASK = 2104,
-  PseudoVFDIV_VV_M2_E32 = 2105,
-  PseudoVFDIV_VV_M2_E32_MASK = 2106,
-  PseudoVFDIV_VV_M2_E64 = 2107,
-  PseudoVFDIV_VV_M2_E64_MASK = 2108,
-  PseudoVFDIV_VV_M4_E16 = 2109,
-  PseudoVFDIV_VV_M4_E16_MASK = 2110,
-  PseudoVFDIV_VV_M4_E32 = 2111,
-  PseudoVFDIV_VV_M4_E32_MASK = 2112,
-  PseudoVFDIV_VV_M4_E64 = 2113,
-  PseudoVFDIV_VV_M4_E64_MASK = 2114,
-  PseudoVFDIV_VV_M8_E16 = 2115,
-  PseudoVFDIV_VV_M8_E16_MASK = 2116,
-  PseudoVFDIV_VV_M8_E32 = 2117,
-  PseudoVFDIV_VV_M8_E32_MASK = 2118,
-  PseudoVFDIV_VV_M8_E64 = 2119,
-  PseudoVFDIV_VV_M8_E64_MASK = 2120,
-  PseudoVFDIV_VV_MF2_E16 = 2121,
-  PseudoVFDIV_VV_MF2_E16_MASK = 2122,
-  PseudoVFDIV_VV_MF2_E32 = 2123,
-  PseudoVFDIV_VV_MF2_E32_MASK = 2124,
-  PseudoVFDIV_VV_MF4_E16 = 2125,
-  PseudoVFDIV_VV_MF4_E16_MASK = 2126,
-  PseudoVFIRST_M_B1 = 2127,
-  PseudoVFIRST_M_B16 = 2128,
-  PseudoVFIRST_M_B16_MASK = 2129,
-  PseudoVFIRST_M_B1_MASK = 2130,
-  PseudoVFIRST_M_B2 = 2131,
-  PseudoVFIRST_M_B2_MASK = 2132,
-  PseudoVFIRST_M_B32 = 2133,
-  PseudoVFIRST_M_B32_MASK = 2134,
-  PseudoVFIRST_M_B4 = 2135,
-  PseudoVFIRST_M_B4_MASK = 2136,
-  PseudoVFIRST_M_B64 = 2137,
-  PseudoVFIRST_M_B64_MASK = 2138,
-  PseudoVFIRST_M_B8 = 2139,
-  PseudoVFIRST_M_B8_MASK = 2140,
-  PseudoVFMACC_VFPR16_M1_E16 = 2141,
-  PseudoVFMACC_VFPR16_M1_E16_MASK = 2142,
-  PseudoVFMACC_VFPR16_M2_E16 = 2143,
-  PseudoVFMACC_VFPR16_M2_E16_MASK = 2144,
-  PseudoVFMACC_VFPR16_M4_E16 = 2145,
-  PseudoVFMACC_VFPR16_M4_E16_MASK = 2146,
-  PseudoVFMACC_VFPR16_M8_E16 = 2147,
-  PseudoVFMACC_VFPR16_M8_E16_MASK = 2148,
-  PseudoVFMACC_VFPR16_MF2_E16 = 2149,
-  PseudoVFMACC_VFPR16_MF2_E16_MASK = 2150,
-  PseudoVFMACC_VFPR16_MF4_E16 = 2151,
-  PseudoVFMACC_VFPR16_MF4_E16_MASK = 2152,
-  PseudoVFMACC_VFPR32_M1_E32 = 2153,
-  PseudoVFMACC_VFPR32_M1_E32_MASK = 2154,
-  PseudoVFMACC_VFPR32_M2_E32 = 2155,
-  PseudoVFMACC_VFPR32_M2_E32_MASK = 2156,
-  PseudoVFMACC_VFPR32_M4_E32 = 2157,
-  PseudoVFMACC_VFPR32_M4_E32_MASK = 2158,
-  PseudoVFMACC_VFPR32_M8_E32 = 2159,
-  PseudoVFMACC_VFPR32_M8_E32_MASK = 2160,
-  PseudoVFMACC_VFPR32_MF2_E32 = 2161,
-  PseudoVFMACC_VFPR32_MF2_E32_MASK = 2162,
-  PseudoVFMACC_VFPR64_M1_E64 = 2163,
-  PseudoVFMACC_VFPR64_M1_E64_MASK = 2164,
-  PseudoVFMACC_VFPR64_M2_E64 = 2165,
-  PseudoVFMACC_VFPR64_M2_E64_MASK = 2166,
-  PseudoVFMACC_VFPR64_M4_E64 = 2167,
-  PseudoVFMACC_VFPR64_M4_E64_MASK = 2168,
-  PseudoVFMACC_VFPR64_M8_E64 = 2169,
-  PseudoVFMACC_VFPR64_M8_E64_MASK = 2170,
-  PseudoVFMACC_VV_M1_E16 = 2171,
-  PseudoVFMACC_VV_M1_E16_MASK = 2172,
-  PseudoVFMACC_VV_M1_E32 = 2173,
-  PseudoVFMACC_VV_M1_E32_MASK = 2174,
-  PseudoVFMACC_VV_M1_E64 = 2175,
-  PseudoVFMACC_VV_M1_E64_MASK = 2176,
-  PseudoVFMACC_VV_M2_E16 = 2177,
-  PseudoVFMACC_VV_M2_E16_MASK = 2178,
-  PseudoVFMACC_VV_M2_E32 = 2179,
-  PseudoVFMACC_VV_M2_E32_MASK = 2180,
-  PseudoVFMACC_VV_M2_E64 = 2181,
-  PseudoVFMACC_VV_M2_E64_MASK = 2182,
-  PseudoVFMACC_VV_M4_E16 = 2183,
-  PseudoVFMACC_VV_M4_E16_MASK = 2184,
-  PseudoVFMACC_VV_M4_E32 = 2185,
-  PseudoVFMACC_VV_M4_E32_MASK = 2186,
-  PseudoVFMACC_VV_M4_E64 = 2187,
-  PseudoVFMACC_VV_M4_E64_MASK = 2188,
-  PseudoVFMACC_VV_M8_E16 = 2189,
-  PseudoVFMACC_VV_M8_E16_MASK = 2190,
-  PseudoVFMACC_VV_M8_E32 = 2191,
-  PseudoVFMACC_VV_M8_E32_MASK = 2192,
-  PseudoVFMACC_VV_M8_E64 = 2193,
-  PseudoVFMACC_VV_M8_E64_MASK = 2194,
-  PseudoVFMACC_VV_MF2_E16 = 2195,
-  PseudoVFMACC_VV_MF2_E16_MASK = 2196,
-  PseudoVFMACC_VV_MF2_E32 = 2197,
-  PseudoVFMACC_VV_MF2_E32_MASK = 2198,
-  PseudoVFMACC_VV_MF4_E16 = 2199,
-  PseudoVFMACC_VV_MF4_E16_MASK = 2200,
-  PseudoVFMADD_VFPR16_M1_E16 = 2201,
-  PseudoVFMADD_VFPR16_M1_E16_MASK = 2202,
-  PseudoVFMADD_VFPR16_M2_E16 = 2203,
-  PseudoVFMADD_VFPR16_M2_E16_MASK = 2204,
-  PseudoVFMADD_VFPR16_M4_E16 = 2205,
-  PseudoVFMADD_VFPR16_M4_E16_MASK = 2206,
-  PseudoVFMADD_VFPR16_M8_E16 = 2207,
-  PseudoVFMADD_VFPR16_M8_E16_MASK = 2208,
-  PseudoVFMADD_VFPR16_MF2_E16 = 2209,
-  PseudoVFMADD_VFPR16_MF2_E16_MASK = 2210,
-  PseudoVFMADD_VFPR16_MF4_E16 = 2211,
-  PseudoVFMADD_VFPR16_MF4_E16_MASK = 2212,
-  PseudoVFMADD_VFPR32_M1_E32 = 2213,
-  PseudoVFMADD_VFPR32_M1_E32_MASK = 2214,
-  PseudoVFMADD_VFPR32_M2_E32 = 2215,
-  PseudoVFMADD_VFPR32_M2_E32_MASK = 2216,
-  PseudoVFMADD_VFPR32_M4_E32 = 2217,
-  PseudoVFMADD_VFPR32_M4_E32_MASK = 2218,
-  PseudoVFMADD_VFPR32_M8_E32 = 2219,
-  PseudoVFMADD_VFPR32_M8_E32_MASK = 2220,
-  PseudoVFMADD_VFPR32_MF2_E32 = 2221,
-  PseudoVFMADD_VFPR32_MF2_E32_MASK = 2222,
-  PseudoVFMADD_VFPR64_M1_E64 = 2223,
-  PseudoVFMADD_VFPR64_M1_E64_MASK = 2224,
-  PseudoVFMADD_VFPR64_M2_E64 = 2225,
-  PseudoVFMADD_VFPR64_M2_E64_MASK = 2226,
-  PseudoVFMADD_VFPR64_M4_E64 = 2227,
-  PseudoVFMADD_VFPR64_M4_E64_MASK = 2228,
-  PseudoVFMADD_VFPR64_M8_E64 = 2229,
-  PseudoVFMADD_VFPR64_M8_E64_MASK = 2230,
-  PseudoVFMADD_VV_M1_E16 = 2231,
-  PseudoVFMADD_VV_M1_E16_MASK = 2232,
-  PseudoVFMADD_VV_M1_E32 = 2233,
-  PseudoVFMADD_VV_M1_E32_MASK = 2234,
-  PseudoVFMADD_VV_M1_E64 = 2235,
-  PseudoVFMADD_VV_M1_E64_MASK = 2236,
-  PseudoVFMADD_VV_M2_E16 = 2237,
-  PseudoVFMADD_VV_M2_E16_MASK = 2238,
-  PseudoVFMADD_VV_M2_E32 = 2239,
-  PseudoVFMADD_VV_M2_E32_MASK = 2240,
-  PseudoVFMADD_VV_M2_E64 = 2241,
-  PseudoVFMADD_VV_M2_E64_MASK = 2242,
-  PseudoVFMADD_VV_M4_E16 = 2243,
-  PseudoVFMADD_VV_M4_E16_MASK = 2244,
-  PseudoVFMADD_VV_M4_E32 = 2245,
-  PseudoVFMADD_VV_M4_E32_MASK = 2246,
-  PseudoVFMADD_VV_M4_E64 = 2247,
-  PseudoVFMADD_VV_M4_E64_MASK = 2248,
-  PseudoVFMADD_VV_M8_E16 = 2249,
-  PseudoVFMADD_VV_M8_E16_MASK = 2250,
-  PseudoVFMADD_VV_M8_E32 = 2251,
-  PseudoVFMADD_VV_M8_E32_MASK = 2252,
-  PseudoVFMADD_VV_M8_E64 = 2253,
-  PseudoVFMADD_VV_M8_E64_MASK = 2254,
-  PseudoVFMADD_VV_MF2_E16 = 2255,
-  PseudoVFMADD_VV_MF2_E16_MASK = 2256,
-  PseudoVFMADD_VV_MF2_E32 = 2257,
-  PseudoVFMADD_VV_MF2_E32_MASK = 2258,
-  PseudoVFMADD_VV_MF4_E16 = 2259,
-  PseudoVFMADD_VV_MF4_E16_MASK = 2260,
-  PseudoVFMAX_VFPR16_M1_E16 = 2261,
-  PseudoVFMAX_VFPR16_M1_E16_MASK = 2262,
-  PseudoVFMAX_VFPR16_M2_E16 = 2263,
-  PseudoVFMAX_VFPR16_M2_E16_MASK = 2264,
-  PseudoVFMAX_VFPR16_M4_E16 = 2265,
-  PseudoVFMAX_VFPR16_M4_E16_MASK = 2266,
-  PseudoVFMAX_VFPR16_M8_E16 = 2267,
-  PseudoVFMAX_VFPR16_M8_E16_MASK = 2268,
-  PseudoVFMAX_VFPR16_MF2_E16 = 2269,
-  PseudoVFMAX_VFPR16_MF2_E16_MASK = 2270,
-  PseudoVFMAX_VFPR16_MF4_E16 = 2271,
-  PseudoVFMAX_VFPR16_MF4_E16_MASK = 2272,
-  PseudoVFMAX_VFPR32_M1_E32 = 2273,
-  PseudoVFMAX_VFPR32_M1_E32_MASK = 2274,
-  PseudoVFMAX_VFPR32_M2_E32 = 2275,
-  PseudoVFMAX_VFPR32_M2_E32_MASK = 2276,
-  PseudoVFMAX_VFPR32_M4_E32 = 2277,
-  PseudoVFMAX_VFPR32_M4_E32_MASK = 2278,
-  PseudoVFMAX_VFPR32_M8_E32 = 2279,
-  PseudoVFMAX_VFPR32_M8_E32_MASK = 2280,
-  PseudoVFMAX_VFPR32_MF2_E32 = 2281,
-  PseudoVFMAX_VFPR32_MF2_E32_MASK = 2282,
-  PseudoVFMAX_VFPR64_M1_E64 = 2283,
-  PseudoVFMAX_VFPR64_M1_E64_MASK = 2284,
-  PseudoVFMAX_VFPR64_M2_E64 = 2285,
-  PseudoVFMAX_VFPR64_M2_E64_MASK = 2286,
-  PseudoVFMAX_VFPR64_M4_E64 = 2287,
-  PseudoVFMAX_VFPR64_M4_E64_MASK = 2288,
-  PseudoVFMAX_VFPR64_M8_E64 = 2289,
-  PseudoVFMAX_VFPR64_M8_E64_MASK = 2290,
-  PseudoVFMAX_VV_M1_E16 = 2291,
-  PseudoVFMAX_VV_M1_E16_MASK = 2292,
-  PseudoVFMAX_VV_M1_E32 = 2293,
-  PseudoVFMAX_VV_M1_E32_MASK = 2294,
-  PseudoVFMAX_VV_M1_E64 = 2295,
-  PseudoVFMAX_VV_M1_E64_MASK = 2296,
-  PseudoVFMAX_VV_M2_E16 = 2297,
-  PseudoVFMAX_VV_M2_E16_MASK = 2298,
-  PseudoVFMAX_VV_M2_E32 = 2299,
-  PseudoVFMAX_VV_M2_E32_MASK = 2300,
-  PseudoVFMAX_VV_M2_E64 = 2301,
-  PseudoVFMAX_VV_M2_E64_MASK = 2302,
-  PseudoVFMAX_VV_M4_E16 = 2303,
-  PseudoVFMAX_VV_M4_E16_MASK = 2304,
-  PseudoVFMAX_VV_M4_E32 = 2305,
-  PseudoVFMAX_VV_M4_E32_MASK = 2306,
-  PseudoVFMAX_VV_M4_E64 = 2307,
-  PseudoVFMAX_VV_M4_E64_MASK = 2308,
-  PseudoVFMAX_VV_M8_E16 = 2309,
-  PseudoVFMAX_VV_M8_E16_MASK = 2310,
-  PseudoVFMAX_VV_M8_E32 = 2311,
-  PseudoVFMAX_VV_M8_E32_MASK = 2312,
-  PseudoVFMAX_VV_M8_E64 = 2313,
-  PseudoVFMAX_VV_M8_E64_MASK = 2314,
-  PseudoVFMAX_VV_MF2_E16 = 2315,
-  PseudoVFMAX_VV_MF2_E16_MASK = 2316,
-  PseudoVFMAX_VV_MF2_E32 = 2317,
-  PseudoVFMAX_VV_MF2_E32_MASK = 2318,
-  PseudoVFMAX_VV_MF4_E16 = 2319,
-  PseudoVFMAX_VV_MF4_E16_MASK = 2320,
-  PseudoVFMERGE_VFPR16M_M1 = 2321,
-  PseudoVFMERGE_VFPR16M_M2 = 2322,
-  PseudoVFMERGE_VFPR16M_M4 = 2323,
-  PseudoVFMERGE_VFPR16M_M8 = 2324,
-  PseudoVFMERGE_VFPR16M_MF2 = 2325,
-  PseudoVFMERGE_VFPR16M_MF4 = 2326,
-  PseudoVFMERGE_VFPR32M_M1 = 2327,
-  PseudoVFMERGE_VFPR32M_M2 = 2328,
-  PseudoVFMERGE_VFPR32M_M4 = 2329,
-  PseudoVFMERGE_VFPR32M_M8 = 2330,
-  PseudoVFMERGE_VFPR32M_MF2 = 2331,
-  PseudoVFMERGE_VFPR64M_M1 = 2332,
-  PseudoVFMERGE_VFPR64M_M2 = 2333,
-  PseudoVFMERGE_VFPR64M_M4 = 2334,
-  PseudoVFMERGE_VFPR64M_M8 = 2335,
-  PseudoVFMIN_VFPR16_M1_E16 = 2336,
-  PseudoVFMIN_VFPR16_M1_E16_MASK = 2337,
-  PseudoVFMIN_VFPR16_M2_E16 = 2338,
-  PseudoVFMIN_VFPR16_M2_E16_MASK = 2339,
-  PseudoVFMIN_VFPR16_M4_E16 = 2340,
-  PseudoVFMIN_VFPR16_M4_E16_MASK = 2341,
-  PseudoVFMIN_VFPR16_M8_E16 = 2342,
-  PseudoVFMIN_VFPR16_M8_E16_MASK = 2343,
-  PseudoVFMIN_VFPR16_MF2_E16 = 2344,
-  PseudoVFMIN_VFPR16_MF2_E16_MASK = 2345,
-  PseudoVFMIN_VFPR16_MF4_E16 = 2346,
-  PseudoVFMIN_VFPR16_MF4_E16_MASK = 2347,
-  PseudoVFMIN_VFPR32_M1_E32 = 2348,
-  PseudoVFMIN_VFPR32_M1_E32_MASK = 2349,
-  PseudoVFMIN_VFPR32_M2_E32 = 2350,
-  PseudoVFMIN_VFPR32_M2_E32_MASK = 2351,
-  PseudoVFMIN_VFPR32_M4_E32 = 2352,
-  PseudoVFMIN_VFPR32_M4_E32_MASK = 2353,
-  PseudoVFMIN_VFPR32_M8_E32 = 2354,
-  PseudoVFMIN_VFPR32_M8_E32_MASK = 2355,
-  PseudoVFMIN_VFPR32_MF2_E32 = 2356,
-  PseudoVFMIN_VFPR32_MF2_E32_MASK = 2357,
-  PseudoVFMIN_VFPR64_M1_E64 = 2358,
-  PseudoVFMIN_VFPR64_M1_E64_MASK = 2359,
-  PseudoVFMIN_VFPR64_M2_E64 = 2360,
-  PseudoVFMIN_VFPR64_M2_E64_MASK = 2361,
-  PseudoVFMIN_VFPR64_M4_E64 = 2362,
-  PseudoVFMIN_VFPR64_M4_E64_MASK = 2363,
-  PseudoVFMIN_VFPR64_M8_E64 = 2364,
-  PseudoVFMIN_VFPR64_M8_E64_MASK = 2365,
-  PseudoVFMIN_VV_M1_E16 = 2366,
-  PseudoVFMIN_VV_M1_E16_MASK = 2367,
-  PseudoVFMIN_VV_M1_E32 = 2368,
-  PseudoVFMIN_VV_M1_E32_MASK = 2369,
-  PseudoVFMIN_VV_M1_E64 = 2370,
-  PseudoVFMIN_VV_M1_E64_MASK = 2371,
-  PseudoVFMIN_VV_M2_E16 = 2372,
-  PseudoVFMIN_VV_M2_E16_MASK = 2373,
-  PseudoVFMIN_VV_M2_E32 = 2374,
-  PseudoVFMIN_VV_M2_E32_MASK = 2375,
-  PseudoVFMIN_VV_M2_E64 = 2376,
-  PseudoVFMIN_VV_M2_E64_MASK = 2377,
-  PseudoVFMIN_VV_M4_E16 = 2378,
-  PseudoVFMIN_VV_M4_E16_MASK = 2379,
-  PseudoVFMIN_VV_M4_E32 = 2380,
-  PseudoVFMIN_VV_M4_E32_MASK = 2381,
-  PseudoVFMIN_VV_M4_E64 = 2382,
-  PseudoVFMIN_VV_M4_E64_MASK = 2383,
-  PseudoVFMIN_VV_M8_E16 = 2384,
-  PseudoVFMIN_VV_M8_E16_MASK = 2385,
-  PseudoVFMIN_VV_M8_E32 = 2386,
-  PseudoVFMIN_VV_M8_E32_MASK = 2387,
-  PseudoVFMIN_VV_M8_E64 = 2388,
-  PseudoVFMIN_VV_M8_E64_MASK = 2389,
-  PseudoVFMIN_VV_MF2_E16 = 2390,
-  PseudoVFMIN_VV_MF2_E16_MASK = 2391,
-  PseudoVFMIN_VV_MF2_E32 = 2392,
-  PseudoVFMIN_VV_MF2_E32_MASK = 2393,
-  PseudoVFMIN_VV_MF4_E16 = 2394,
-  PseudoVFMIN_VV_MF4_E16_MASK = 2395,
-  PseudoVFMSAC_VFPR16_M1_E16 = 2396,
-  PseudoVFMSAC_VFPR16_M1_E16_MASK = 2397,
-  PseudoVFMSAC_VFPR16_M2_E16 = 2398,
-  PseudoVFMSAC_VFPR16_M2_E16_MASK = 2399,
-  PseudoVFMSAC_VFPR16_M4_E16 = 2400,
-  PseudoVFMSAC_VFPR16_M4_E16_MASK = 2401,
-  PseudoVFMSAC_VFPR16_M8_E16 = 2402,
-  PseudoVFMSAC_VFPR16_M8_E16_MASK = 2403,
-  PseudoVFMSAC_VFPR16_MF2_E16 = 2404,
-  PseudoVFMSAC_VFPR16_MF2_E16_MASK = 2405,
-  PseudoVFMSAC_VFPR16_MF4_E16 = 2406,
-  PseudoVFMSAC_VFPR16_MF4_E16_MASK = 2407,
-  PseudoVFMSAC_VFPR32_M1_E32 = 2408,
-  PseudoVFMSAC_VFPR32_M1_E32_MASK = 2409,
-  PseudoVFMSAC_VFPR32_M2_E32 = 2410,
-  PseudoVFMSAC_VFPR32_M2_E32_MASK = 2411,
-  PseudoVFMSAC_VFPR32_M4_E32 = 2412,
-  PseudoVFMSAC_VFPR32_M4_E32_MASK = 2413,
-  PseudoVFMSAC_VFPR32_M8_E32 = 2414,
-  PseudoVFMSAC_VFPR32_M8_E32_MASK = 2415,
-  PseudoVFMSAC_VFPR32_MF2_E32 = 2416,
-  PseudoVFMSAC_VFPR32_MF2_E32_MASK = 2417,
-  PseudoVFMSAC_VFPR64_M1_E64 = 2418,
-  PseudoVFMSAC_VFPR64_M1_E64_MASK = 2419,
-  PseudoVFMSAC_VFPR64_M2_E64 = 2420,
-  PseudoVFMSAC_VFPR64_M2_E64_MASK = 2421,
-  PseudoVFMSAC_VFPR64_M4_E64 = 2422,
-  PseudoVFMSAC_VFPR64_M4_E64_MASK = 2423,
-  PseudoVFMSAC_VFPR64_M8_E64 = 2424,
-  PseudoVFMSAC_VFPR64_M8_E64_MASK = 2425,
-  PseudoVFMSAC_VV_M1_E16 = 2426,
-  PseudoVFMSAC_VV_M1_E16_MASK = 2427,
-  PseudoVFMSAC_VV_M1_E32 = 2428,
-  PseudoVFMSAC_VV_M1_E32_MASK = 2429,
-  PseudoVFMSAC_VV_M1_E64 = 2430,
-  PseudoVFMSAC_VV_M1_E64_MASK = 2431,
-  PseudoVFMSAC_VV_M2_E16 = 2432,
-  PseudoVFMSAC_VV_M2_E16_MASK = 2433,
-  PseudoVFMSAC_VV_M2_E32 = 2434,
-  PseudoVFMSAC_VV_M2_E32_MASK = 2435,
-  PseudoVFMSAC_VV_M2_E64 = 2436,
-  PseudoVFMSAC_VV_M2_E64_MASK = 2437,
-  PseudoVFMSAC_VV_M4_E16 = 2438,
-  PseudoVFMSAC_VV_M4_E16_MASK = 2439,
-  PseudoVFMSAC_VV_M4_E32 = 2440,
-  PseudoVFMSAC_VV_M4_E32_MASK = 2441,
-  PseudoVFMSAC_VV_M4_E64 = 2442,
-  PseudoVFMSAC_VV_M4_E64_MASK = 2443,
-  PseudoVFMSAC_VV_M8_E16 = 2444,
-  PseudoVFMSAC_VV_M8_E16_MASK = 2445,
-  PseudoVFMSAC_VV_M8_E32 = 2446,
-  PseudoVFMSAC_VV_M8_E32_MASK = 2447,
-  PseudoVFMSAC_VV_M8_E64 = 2448,
-  PseudoVFMSAC_VV_M8_E64_MASK = 2449,
-  PseudoVFMSAC_VV_MF2_E16 = 2450,
-  PseudoVFMSAC_VV_MF2_E16_MASK = 2451,
-  PseudoVFMSAC_VV_MF2_E32 = 2452,
-  PseudoVFMSAC_VV_MF2_E32_MASK = 2453,
-  PseudoVFMSAC_VV_MF4_E16 = 2454,
-  PseudoVFMSAC_VV_MF4_E16_MASK = 2455,
-  PseudoVFMSUB_VFPR16_M1_E16 = 2456,
-  PseudoVFMSUB_VFPR16_M1_E16_MASK = 2457,
-  PseudoVFMSUB_VFPR16_M2_E16 = 2458,
-  PseudoVFMSUB_VFPR16_M2_E16_MASK = 2459,
-  PseudoVFMSUB_VFPR16_M4_E16 = 2460,
-  PseudoVFMSUB_VFPR16_M4_E16_MASK = 2461,
-  PseudoVFMSUB_VFPR16_M8_E16 = 2462,
-  PseudoVFMSUB_VFPR16_M8_E16_MASK = 2463,
-  PseudoVFMSUB_VFPR16_MF2_E16 = 2464,
-  PseudoVFMSUB_VFPR16_MF2_E16_MASK = 2465,
-  PseudoVFMSUB_VFPR16_MF4_E16 = 2466,
-  PseudoVFMSUB_VFPR16_MF4_E16_MASK = 2467,
-  PseudoVFMSUB_VFPR32_M1_E32 = 2468,
-  PseudoVFMSUB_VFPR32_M1_E32_MASK = 2469,
-  PseudoVFMSUB_VFPR32_M2_E32 = 2470,
-  PseudoVFMSUB_VFPR32_M2_E32_MASK = 2471,
-  PseudoVFMSUB_VFPR32_M4_E32 = 2472,
-  PseudoVFMSUB_VFPR32_M4_E32_MASK = 2473,
-  PseudoVFMSUB_VFPR32_M8_E32 = 2474,
-  PseudoVFMSUB_VFPR32_M8_E32_MASK = 2475,
-  PseudoVFMSUB_VFPR32_MF2_E32 = 2476,
-  PseudoVFMSUB_VFPR32_MF2_E32_MASK = 2477,
-  PseudoVFMSUB_VFPR64_M1_E64 = 2478,
-  PseudoVFMSUB_VFPR64_M1_E64_MASK = 2479,
-  PseudoVFMSUB_VFPR64_M2_E64 = 2480,
-  PseudoVFMSUB_VFPR64_M2_E64_MASK = 2481,
-  PseudoVFMSUB_VFPR64_M4_E64 = 2482,
-  PseudoVFMSUB_VFPR64_M4_E64_MASK = 2483,
-  PseudoVFMSUB_VFPR64_M8_E64 = 2484,
-  PseudoVFMSUB_VFPR64_M8_E64_MASK = 2485,
-  PseudoVFMSUB_VV_M1_E16 = 2486,
-  PseudoVFMSUB_VV_M1_E16_MASK = 2487,
-  PseudoVFMSUB_VV_M1_E32 = 2488,
-  PseudoVFMSUB_VV_M1_E32_MASK = 2489,
-  PseudoVFMSUB_VV_M1_E64 = 2490,
-  PseudoVFMSUB_VV_M1_E64_MASK = 2491,
-  PseudoVFMSUB_VV_M2_E16 = 2492,
-  PseudoVFMSUB_VV_M2_E16_MASK = 2493,
-  PseudoVFMSUB_VV_M2_E32 = 2494,
-  PseudoVFMSUB_VV_M2_E32_MASK = 2495,
-  PseudoVFMSUB_VV_M2_E64 = 2496,
-  PseudoVFMSUB_VV_M2_E64_MASK = 2497,
-  PseudoVFMSUB_VV_M4_E16 = 2498,
-  PseudoVFMSUB_VV_M4_E16_MASK = 2499,
-  PseudoVFMSUB_VV_M4_E32 = 2500,
-  PseudoVFMSUB_VV_M4_E32_MASK = 2501,
-  PseudoVFMSUB_VV_M4_E64 = 2502,
-  PseudoVFMSUB_VV_M4_E64_MASK = 2503,
-  PseudoVFMSUB_VV_M8_E16 = 2504,
-  PseudoVFMSUB_VV_M8_E16_MASK = 2505,
-  PseudoVFMSUB_VV_M8_E32 = 2506,
-  PseudoVFMSUB_VV_M8_E32_MASK = 2507,
-  PseudoVFMSUB_VV_M8_E64 = 2508,
-  PseudoVFMSUB_VV_M8_E64_MASK = 2509,
-  PseudoVFMSUB_VV_MF2_E16 = 2510,
-  PseudoVFMSUB_VV_MF2_E16_MASK = 2511,
-  PseudoVFMSUB_VV_MF2_E32 = 2512,
-  PseudoVFMSUB_VV_MF2_E32_MASK = 2513,
-  PseudoVFMSUB_VV_MF4_E16 = 2514,
-  PseudoVFMSUB_VV_MF4_E16_MASK = 2515,
-  PseudoVFMUL_VFPR16_M1_E16 = 2516,
-  PseudoVFMUL_VFPR16_M1_E16_MASK = 2517,
-  PseudoVFMUL_VFPR16_M2_E16 = 2518,
-  PseudoVFMUL_VFPR16_M2_E16_MASK = 2519,
-  PseudoVFMUL_VFPR16_M4_E16 = 2520,
-  PseudoVFMUL_VFPR16_M4_E16_MASK = 2521,
-  PseudoVFMUL_VFPR16_M8_E16 = 2522,
-  PseudoVFMUL_VFPR16_M8_E16_MASK = 2523,
-  PseudoVFMUL_VFPR16_MF2_E16 = 2524,
-  PseudoVFMUL_VFPR16_MF2_E16_MASK = 2525,
-  PseudoVFMUL_VFPR16_MF4_E16 = 2526,
-  PseudoVFMUL_VFPR16_MF4_E16_MASK = 2527,
-  PseudoVFMUL_VFPR32_M1_E32 = 2528,
-  PseudoVFMUL_VFPR32_M1_E32_MASK = 2529,
-  PseudoVFMUL_VFPR32_M2_E32 = 2530,
-  PseudoVFMUL_VFPR32_M2_E32_MASK = 2531,
-  PseudoVFMUL_VFPR32_M4_E32 = 2532,
-  PseudoVFMUL_VFPR32_M4_E32_MASK = 2533,
-  PseudoVFMUL_VFPR32_M8_E32 = 2534,
-  PseudoVFMUL_VFPR32_M8_E32_MASK = 2535,
-  PseudoVFMUL_VFPR32_MF2_E32 = 2536,
-  PseudoVFMUL_VFPR32_MF2_E32_MASK = 2537,
-  PseudoVFMUL_VFPR64_M1_E64 = 2538,
-  PseudoVFMUL_VFPR64_M1_E64_MASK = 2539,
-  PseudoVFMUL_VFPR64_M2_E64 = 2540,
-  PseudoVFMUL_VFPR64_M2_E64_MASK = 2541,
-  PseudoVFMUL_VFPR64_M4_E64 = 2542,
-  PseudoVFMUL_VFPR64_M4_E64_MASK = 2543,
-  PseudoVFMUL_VFPR64_M8_E64 = 2544,
-  PseudoVFMUL_VFPR64_M8_E64_MASK = 2545,
-  PseudoVFMUL_VV_M1_E16 = 2546,
-  PseudoVFMUL_VV_M1_E16_MASK = 2547,
-  PseudoVFMUL_VV_M1_E32 = 2548,
-  PseudoVFMUL_VV_M1_E32_MASK = 2549,
-  PseudoVFMUL_VV_M1_E64 = 2550,
-  PseudoVFMUL_VV_M1_E64_MASK = 2551,
-  PseudoVFMUL_VV_M2_E16 = 2552,
-  PseudoVFMUL_VV_M2_E16_MASK = 2553,
-  PseudoVFMUL_VV_M2_E32 = 2554,
-  PseudoVFMUL_VV_M2_E32_MASK = 2555,
-  PseudoVFMUL_VV_M2_E64 = 2556,
-  PseudoVFMUL_VV_M2_E64_MASK = 2557,
-  PseudoVFMUL_VV_M4_E16 = 2558,
-  PseudoVFMUL_VV_M4_E16_MASK = 2559,
-  PseudoVFMUL_VV_M4_E32 = 2560,
-  PseudoVFMUL_VV_M4_E32_MASK = 2561,
-  PseudoVFMUL_VV_M4_E64 = 2562,
-  PseudoVFMUL_VV_M4_E64_MASK = 2563,
-  PseudoVFMUL_VV_M8_E16 = 2564,
-  PseudoVFMUL_VV_M8_E16_MASK = 2565,
-  PseudoVFMUL_VV_M8_E32 = 2566,
-  PseudoVFMUL_VV_M8_E32_MASK = 2567,
-  PseudoVFMUL_VV_M8_E64 = 2568,
-  PseudoVFMUL_VV_M8_E64_MASK = 2569,
-  PseudoVFMUL_VV_MF2_E16 = 2570,
-  PseudoVFMUL_VV_MF2_E16_MASK = 2571,
-  PseudoVFMUL_VV_MF2_E32 = 2572,
-  PseudoVFMUL_VV_MF2_E32_MASK = 2573,
-  PseudoVFMUL_VV_MF4_E16 = 2574,
-  PseudoVFMUL_VV_MF4_E16_MASK = 2575,
-  PseudoVFMV_FPR16_S = 2576,
-  PseudoVFMV_FPR32_S = 2577,
-  PseudoVFMV_FPR64_S = 2578,
-  PseudoVFMV_S_FPR16 = 2579,
-  PseudoVFMV_S_FPR32 = 2580,
-  PseudoVFMV_S_FPR64 = 2581,
-  PseudoVFMV_V_FPR16_M1 = 2582,
-  PseudoVFMV_V_FPR16_M2 = 2583,
-  PseudoVFMV_V_FPR16_M4 = 2584,
-  PseudoVFMV_V_FPR16_M8 = 2585,
-  PseudoVFMV_V_FPR16_MF2 = 2586,
-  PseudoVFMV_V_FPR16_MF4 = 2587,
-  PseudoVFMV_V_FPR32_M1 = 2588,
-  PseudoVFMV_V_FPR32_M2 = 2589,
-  PseudoVFMV_V_FPR32_M4 = 2590,
-  PseudoVFMV_V_FPR32_M8 = 2591,
-  PseudoVFMV_V_FPR32_MF2 = 2592,
-  PseudoVFMV_V_FPR64_M1 = 2593,
-  PseudoVFMV_V_FPR64_M2 = 2594,
-  PseudoVFMV_V_FPR64_M4 = 2595,
-  PseudoVFMV_V_FPR64_M8 = 2596,
-  PseudoVFNCVTBF16_F_F_W_M1_E16 = 2597,
-  PseudoVFNCVTBF16_F_F_W_M1_E16_MASK = 2598,
-  PseudoVFNCVTBF16_F_F_W_M1_E32 = 2599,
-  PseudoVFNCVTBF16_F_F_W_M1_E32_MASK = 2600,
-  PseudoVFNCVTBF16_F_F_W_M2_E16 = 2601,
-  PseudoVFNCVTBF16_F_F_W_M2_E16_MASK = 2602,
-  PseudoVFNCVTBF16_F_F_W_M2_E32 = 2603,
-  PseudoVFNCVTBF16_F_F_W_M2_E32_MASK = 2604,
-  PseudoVFNCVTBF16_F_F_W_M4_E16 = 2605,
-  PseudoVFNCVTBF16_F_F_W_M4_E16_MASK = 2606,
-  PseudoVFNCVTBF16_F_F_W_M4_E32 = 2607,
-  PseudoVFNCVTBF16_F_F_W_M4_E32_MASK = 2608,
-  PseudoVFNCVTBF16_F_F_W_MF2_E16 = 2609,
-  PseudoVFNCVTBF16_F_F_W_MF2_E16_MASK = 2610,
-  PseudoVFNCVTBF16_F_F_W_MF2_E32 = 2611,
-  PseudoVFNCVTBF16_F_F_W_MF2_E32_MASK = 2612,
-  PseudoVFNCVTBF16_F_F_W_MF4_E16 = 2613,
-  PseudoVFNCVTBF16_F_F_W_MF4_E16_MASK = 2614,
-  PseudoVFNCVT_F_F_W_M1_E16 = 2615,
-  PseudoVFNCVT_F_F_W_M1_E16_MASK = 2616,
-  PseudoVFNCVT_F_F_W_M1_E32 = 2617,
-  PseudoVFNCVT_F_F_W_M1_E32_MASK = 2618,
-  PseudoVFNCVT_F_F_W_M2_E16 = 2619,
-  PseudoVFNCVT_F_F_W_M2_E16_MASK = 2620,
-  PseudoVFNCVT_F_F_W_M2_E32 = 2621,
-  PseudoVFNCVT_F_F_W_M2_E32_MASK = 2622,
-  PseudoVFNCVT_F_F_W_M4_E16 = 2623,
-  PseudoVFNCVT_F_F_W_M4_E16_MASK = 2624,
-  PseudoVFNCVT_F_F_W_M4_E32 = 2625,
-  PseudoVFNCVT_F_F_W_M4_E32_MASK = 2626,
-  PseudoVFNCVT_F_F_W_MF2_E16 = 2627,
-  PseudoVFNCVT_F_F_W_MF2_E16_MASK = 2628,
-  PseudoVFNCVT_F_F_W_MF2_E32 = 2629,
-  PseudoVFNCVT_F_F_W_MF2_E32_MASK = 2630,
-  PseudoVFNCVT_F_F_W_MF4_E16 = 2631,
-  PseudoVFNCVT_F_F_W_MF4_E16_MASK = 2632,
-  PseudoVFNCVT_F_XU_W_M1_E16 = 2633,
-  PseudoVFNCVT_F_XU_W_M1_E16_MASK = 2634,
-  PseudoVFNCVT_F_XU_W_M1_E32 = 2635,
-  PseudoVFNCVT_F_XU_W_M1_E32_MASK = 2636,
-  PseudoVFNCVT_F_XU_W_M2_E16 = 2637,
-  PseudoVFNCVT_F_XU_W_M2_E16_MASK = 2638,
-  PseudoVFNCVT_F_XU_W_M2_E32 = 2639,
-  PseudoVFNCVT_F_XU_W_M2_E32_MASK = 2640,
-  PseudoVFNCVT_F_XU_W_M4_E16 = 2641,
-  PseudoVFNCVT_F_XU_W_M4_E16_MASK = 2642,
-  PseudoVFNCVT_F_XU_W_M4_E32 = 2643,
-  PseudoVFNCVT_F_XU_W_M4_E32_MASK = 2644,
-  PseudoVFNCVT_F_XU_W_MF2_E16 = 2645,
-  PseudoVFNCVT_F_XU_W_MF2_E16_MASK = 2646,
-  PseudoVFNCVT_F_XU_W_MF2_E32 = 2647,
-  PseudoVFNCVT_F_XU_W_MF2_E32_MASK = 2648,
-  PseudoVFNCVT_F_XU_W_MF4_E16 = 2649,
-  PseudoVFNCVT_F_XU_W_MF4_E16_MASK = 2650,
-  PseudoVFNCVT_F_X_W_M1_E16 = 2651,
-  PseudoVFNCVT_F_X_W_M1_E16_MASK = 2652,
-  PseudoVFNCVT_F_X_W_M1_E32 = 2653,
-  PseudoVFNCVT_F_X_W_M1_E32_MASK = 2654,
-  PseudoVFNCVT_F_X_W_M2_E16 = 2655,
-  PseudoVFNCVT_F_X_W_M2_E16_MASK = 2656,
-  PseudoVFNCVT_F_X_W_M2_E32 = 2657,
-  PseudoVFNCVT_F_X_W_M2_E32_MASK = 2658,
-  PseudoVFNCVT_F_X_W_M4_E16 = 2659,
-  PseudoVFNCVT_F_X_W_M4_E16_MASK = 2660,
-  PseudoVFNCVT_F_X_W_M4_E32 = 2661,
-  PseudoVFNCVT_F_X_W_M4_E32_MASK = 2662,
-  PseudoVFNCVT_F_X_W_MF2_E16 = 2663,
-  PseudoVFNCVT_F_X_W_MF2_E16_MASK = 2664,
-  PseudoVFNCVT_F_X_W_MF2_E32 = 2665,
-  PseudoVFNCVT_F_X_W_MF2_E32_MASK = 2666,
-  PseudoVFNCVT_F_X_W_MF4_E16 = 2667,
-  PseudoVFNCVT_F_X_W_MF4_E16_MASK = 2668,
-  PseudoVFNCVT_ROD_F_F_W_M1_E16 = 2669,
-  PseudoVFNCVT_ROD_F_F_W_M1_E16_MASK = 2670,
-  PseudoVFNCVT_ROD_F_F_W_M1_E32 = 2671,
-  PseudoVFNCVT_ROD_F_F_W_M1_E32_MASK = 2672,
-  PseudoVFNCVT_ROD_F_F_W_M2_E16 = 2673,
-  PseudoVFNCVT_ROD_F_F_W_M2_E16_MASK = 2674,
-  PseudoVFNCVT_ROD_F_F_W_M2_E32 = 2675,
-  PseudoVFNCVT_ROD_F_F_W_M2_E32_MASK = 2676,
-  PseudoVFNCVT_ROD_F_F_W_M4_E16 = 2677,
-  PseudoVFNCVT_ROD_F_F_W_M4_E16_MASK = 2678,
-  PseudoVFNCVT_ROD_F_F_W_M4_E32 = 2679,
-  PseudoVFNCVT_ROD_F_F_W_M4_E32_MASK = 2680,
-  PseudoVFNCVT_ROD_F_F_W_MF2_E16 = 2681,
-  PseudoVFNCVT_ROD_F_F_W_MF2_E16_MASK = 2682,
-  PseudoVFNCVT_ROD_F_F_W_MF2_E32 = 2683,
-  PseudoVFNCVT_ROD_F_F_W_MF2_E32_MASK = 2684,
-  PseudoVFNCVT_ROD_F_F_W_MF4_E16 = 2685,
-  PseudoVFNCVT_ROD_F_F_W_MF4_E16_MASK = 2686,
-  PseudoVFNCVT_RTZ_XU_F_W_M1 = 2687,
-  PseudoVFNCVT_RTZ_XU_F_W_M1_MASK = 2688,
-  PseudoVFNCVT_RTZ_XU_F_W_M2 = 2689,
-  PseudoVFNCVT_RTZ_XU_F_W_M2_MASK = 2690,
-  PseudoVFNCVT_RTZ_XU_F_W_M4 = 2691,
-  PseudoVFNCVT_RTZ_XU_F_W_M4_MASK = 2692,
-  PseudoVFNCVT_RTZ_XU_F_W_MF2 = 2693,
-  PseudoVFNCVT_RTZ_XU_F_W_MF2_MASK = 2694,
-  PseudoVFNCVT_RTZ_XU_F_W_MF4 = 2695,
-  PseudoVFNCVT_RTZ_XU_F_W_MF4_MASK = 2696,
-  PseudoVFNCVT_RTZ_XU_F_W_MF8 = 2697,
-  PseudoVFNCVT_RTZ_XU_F_W_MF8_MASK = 2698,
-  PseudoVFNCVT_RTZ_X_F_W_M1 = 2699,
-  PseudoVFNCVT_RTZ_X_F_W_M1_MASK = 2700,
-  PseudoVFNCVT_RTZ_X_F_W_M2 = 2701,
-  PseudoVFNCVT_RTZ_X_F_W_M2_MASK = 2702,
-  PseudoVFNCVT_RTZ_X_F_W_M4 = 2703,
-  PseudoVFNCVT_RTZ_X_F_W_M4_MASK = 2704,
-  PseudoVFNCVT_RTZ_X_F_W_MF2 = 2705,
-  PseudoVFNCVT_RTZ_X_F_W_MF2_MASK = 2706,
-  PseudoVFNCVT_RTZ_X_F_W_MF4 = 2707,
-  PseudoVFNCVT_RTZ_X_F_W_MF4_MASK = 2708,
-  PseudoVFNCVT_RTZ_X_F_W_MF8 = 2709,
-  PseudoVFNCVT_RTZ_X_F_W_MF8_MASK = 2710,
-  PseudoVFNCVT_XU_F_W_M1 = 2711,
-  PseudoVFNCVT_XU_F_W_M1_MASK = 2712,
-  PseudoVFNCVT_XU_F_W_M2 = 2713,
-  PseudoVFNCVT_XU_F_W_M2_MASK = 2714,
-  PseudoVFNCVT_XU_F_W_M4 = 2715,
-  PseudoVFNCVT_XU_F_W_M4_MASK = 2716,
-  PseudoVFNCVT_XU_F_W_MF2 = 2717,
-  PseudoVFNCVT_XU_F_W_MF2_MASK = 2718,
-  PseudoVFNCVT_XU_F_W_MF4 = 2719,
-  PseudoVFNCVT_XU_F_W_MF4_MASK = 2720,
-  PseudoVFNCVT_XU_F_W_MF8 = 2721,
-  PseudoVFNCVT_XU_F_W_MF8_MASK = 2722,
-  PseudoVFNCVT_X_F_W_M1 = 2723,
-  PseudoVFNCVT_X_F_W_M1_MASK = 2724,
-  PseudoVFNCVT_X_F_W_M2 = 2725,
-  PseudoVFNCVT_X_F_W_M2_MASK = 2726,
-  PseudoVFNCVT_X_F_W_M4 = 2727,
-  PseudoVFNCVT_X_F_W_M4_MASK = 2728,
-  PseudoVFNCVT_X_F_W_MF2 = 2729,
-  PseudoVFNCVT_X_F_W_MF2_MASK = 2730,
-  PseudoVFNCVT_X_F_W_MF4 = 2731,
-  PseudoVFNCVT_X_F_W_MF4_MASK = 2732,
-  PseudoVFNCVT_X_F_W_MF8 = 2733,
-  PseudoVFNCVT_X_F_W_MF8_MASK = 2734,
-  PseudoVFNMACC_VFPR16_M1_E16 = 2735,
-  PseudoVFNMACC_VFPR16_M1_E16_MASK = 2736,
-  PseudoVFNMACC_VFPR16_M2_E16 = 2737,
-  PseudoVFNMACC_VFPR16_M2_E16_MASK = 2738,
-  PseudoVFNMACC_VFPR16_M4_E16 = 2739,
-  PseudoVFNMACC_VFPR16_M4_E16_MASK = 2740,
-  PseudoVFNMACC_VFPR16_M8_E16 = 2741,
-  PseudoVFNMACC_VFPR16_M8_E16_MASK = 2742,
-  PseudoVFNMACC_VFPR16_MF2_E16 = 2743,
-  PseudoVFNMACC_VFPR16_MF2_E16_MASK = 2744,
-  PseudoVFNMACC_VFPR16_MF4_E16 = 2745,
-  PseudoVFNMACC_VFPR16_MF4_E16_MASK = 2746,
-  PseudoVFNMACC_VFPR32_M1_E32 = 2747,
-  PseudoVFNMACC_VFPR32_M1_E32_MASK = 2748,
-  PseudoVFNMACC_VFPR32_M2_E32 = 2749,
-  PseudoVFNMACC_VFPR32_M2_E32_MASK = 2750,
-  PseudoVFNMACC_VFPR32_M4_E32 = 2751,
-  PseudoVFNMACC_VFPR32_M4_E32_MASK = 2752,
-  PseudoVFNMACC_VFPR32_M8_E32 = 2753,
-  PseudoVFNMACC_VFPR32_M8_E32_MASK = 2754,
-  PseudoVFNMACC_VFPR32_MF2_E32 = 2755,
-  PseudoVFNMACC_VFPR32_MF2_E32_MASK = 2756,
-  PseudoVFNMACC_VFPR64_M1_E64 = 2757,
-  PseudoVFNMACC_VFPR64_M1_E64_MASK = 2758,
-  PseudoVFNMACC_VFPR64_M2_E64 = 2759,
-  PseudoVFNMACC_VFPR64_M2_E64_MASK = 2760,
-  PseudoVFNMACC_VFPR64_M4_E64 = 2761,
-  PseudoVFNMACC_VFPR64_M4_E64_MASK = 2762,
-  PseudoVFNMACC_VFPR64_M8_E64 = 2763,
-  PseudoVFNMACC_VFPR64_M8_E64_MASK = 2764,
-  PseudoVFNMACC_VV_M1_E16 = 2765,
-  PseudoVFNMACC_VV_M1_E16_MASK = 2766,
-  PseudoVFNMACC_VV_M1_E32 = 2767,
-  PseudoVFNMACC_VV_M1_E32_MASK = 2768,
-  PseudoVFNMACC_VV_M1_E64 = 2769,
-  PseudoVFNMACC_VV_M1_E64_MASK = 2770,
-  PseudoVFNMACC_VV_M2_E16 = 2771,
-  PseudoVFNMACC_VV_M2_E16_MASK = 2772,
-  PseudoVFNMACC_VV_M2_E32 = 2773,
-  PseudoVFNMACC_VV_M2_E32_MASK = 2774,
-  PseudoVFNMACC_VV_M2_E64 = 2775,
-  PseudoVFNMACC_VV_M2_E64_MASK = 2776,
-  PseudoVFNMACC_VV_M4_E16 = 2777,
-  PseudoVFNMACC_VV_M4_E16_MASK = 2778,
-  PseudoVFNMACC_VV_M4_E32 = 2779,
-  PseudoVFNMACC_VV_M4_E32_MASK = 2780,
-  PseudoVFNMACC_VV_M4_E64 = 2781,
-  PseudoVFNMACC_VV_M4_E64_MASK = 2782,
-  PseudoVFNMACC_VV_M8_E16 = 2783,
-  PseudoVFNMACC_VV_M8_E16_MASK = 2784,
-  PseudoVFNMACC_VV_M8_E32 = 2785,
-  PseudoVFNMACC_VV_M8_E32_MASK = 2786,
-  PseudoVFNMACC_VV_M8_E64 = 2787,
-  PseudoVFNMACC_VV_M8_E64_MASK = 2788,
-  PseudoVFNMACC_VV_MF2_E16 = 2789,
-  PseudoVFNMACC_VV_MF2_E16_MASK = 2790,
-  PseudoVFNMACC_VV_MF2_E32 = 2791,
-  PseudoVFNMACC_VV_MF2_E32_MASK = 2792,
-  PseudoVFNMACC_VV_MF4_E16 = 2793,
-  PseudoVFNMACC_VV_MF4_E16_MASK = 2794,
-  PseudoVFNMADD_VFPR16_M1_E16 = 2795,
-  PseudoVFNMADD_VFPR16_M1_E16_MASK = 2796,
-  PseudoVFNMADD_VFPR16_M2_E16 = 2797,
-  PseudoVFNMADD_VFPR16_M2_E16_MASK = 2798,
-  PseudoVFNMADD_VFPR16_M4_E16 = 2799,
-  PseudoVFNMADD_VFPR16_M4_E16_MASK = 2800,
-  PseudoVFNMADD_VFPR16_M8_E16 = 2801,
-  PseudoVFNMADD_VFPR16_M8_E16_MASK = 2802,
-  PseudoVFNMADD_VFPR16_MF2_E16 = 2803,
-  PseudoVFNMADD_VFPR16_MF2_E16_MASK = 2804,
-  PseudoVFNMADD_VFPR16_MF4_E16 = 2805,
-  PseudoVFNMADD_VFPR16_MF4_E16_MASK = 2806,
-  PseudoVFNMADD_VFPR32_M1_E32 = 2807,
-  PseudoVFNMADD_VFPR32_M1_E32_MASK = 2808,
-  PseudoVFNMADD_VFPR32_M2_E32 = 2809,
-  PseudoVFNMADD_VFPR32_M2_E32_MASK = 2810,
-  PseudoVFNMADD_VFPR32_M4_E32 = 2811,
-  PseudoVFNMADD_VFPR32_M4_E32_MASK = 2812,
-  PseudoVFNMADD_VFPR32_M8_E32 = 2813,
-  PseudoVFNMADD_VFPR32_M8_E32_MASK = 2814,
-  PseudoVFNMADD_VFPR32_MF2_E32 = 2815,
-  PseudoVFNMADD_VFPR32_MF2_E32_MASK = 2816,
-  PseudoVFNMADD_VFPR64_M1_E64 = 2817,
-  PseudoVFNMADD_VFPR64_M1_E64_MASK = 2818,
-  PseudoVFNMADD_VFPR64_M2_E64 = 2819,
-  PseudoVFNMADD_VFPR64_M2_E64_MASK = 2820,
-  PseudoVFNMADD_VFPR64_M4_E64 = 2821,
-  PseudoVFNMADD_VFPR64_M4_E64_MASK = 2822,
-  PseudoVFNMADD_VFPR64_M8_E64 = 2823,
-  PseudoVFNMADD_VFPR64_M8_E64_MASK = 2824,
-  PseudoVFNMADD_VV_M1_E16 = 2825,
-  PseudoVFNMADD_VV_M1_E16_MASK = 2826,
-  PseudoVFNMADD_VV_M1_E32 = 2827,
-  PseudoVFNMADD_VV_M1_E32_MASK = 2828,
-  PseudoVFNMADD_VV_M1_E64 = 2829,
-  PseudoVFNMADD_VV_M1_E64_MASK = 2830,
-  PseudoVFNMADD_VV_M2_E16 = 2831,
-  PseudoVFNMADD_VV_M2_E16_MASK = 2832,
-  PseudoVFNMADD_VV_M2_E32 = 2833,
-  PseudoVFNMADD_VV_M2_E32_MASK = 2834,
-  PseudoVFNMADD_VV_M2_E64 = 2835,
-  PseudoVFNMADD_VV_M2_E64_MASK = 2836,
-  PseudoVFNMADD_VV_M4_E16 = 2837,
-  PseudoVFNMADD_VV_M4_E16_MASK = 2838,
-  PseudoVFNMADD_VV_M4_E32 = 2839,
-  PseudoVFNMADD_VV_M4_E32_MASK = 2840,
-  PseudoVFNMADD_VV_M4_E64 = 2841,
-  PseudoVFNMADD_VV_M4_E64_MASK = 2842,
-  PseudoVFNMADD_VV_M8_E16 = 2843,
-  PseudoVFNMADD_VV_M8_E16_MASK = 2844,
-  PseudoVFNMADD_VV_M8_E32 = 2845,
-  PseudoVFNMADD_VV_M8_E32_MASK = 2846,
-  PseudoVFNMADD_VV_M8_E64 = 2847,
-  PseudoVFNMADD_VV_M8_E64_MASK = 2848,
-  PseudoVFNMADD_VV_MF2_E16 = 2849,
-  PseudoVFNMADD_VV_MF2_E16_MASK = 2850,
-  PseudoVFNMADD_VV_MF2_E32 = 2851,
-  PseudoVFNMADD_VV_MF2_E32_MASK = 2852,
-  PseudoVFNMADD_VV_MF4_E16 = 2853,
-  PseudoVFNMADD_VV_MF4_E16_MASK = 2854,
-  PseudoVFNMSAC_VFPR16_M1_E16 = 2855,
-  PseudoVFNMSAC_VFPR16_M1_E16_MASK = 2856,
-  PseudoVFNMSAC_VFPR16_M2_E16 = 2857,
-  PseudoVFNMSAC_VFPR16_M2_E16_MASK = 2858,
-  PseudoVFNMSAC_VFPR16_M4_E16 = 2859,
-  PseudoVFNMSAC_VFPR16_M4_E16_MASK = 2860,
-  PseudoVFNMSAC_VFPR16_M8_E16 = 2861,
-  PseudoVFNMSAC_VFPR16_M8_E16_MASK = 2862,
-  PseudoVFNMSAC_VFPR16_MF2_E16 = 2863,
-  PseudoVFNMSAC_VFPR16_MF2_E16_MASK = 2864,
-  PseudoVFNMSAC_VFPR16_MF4_E16 = 2865,
-  PseudoVFNMSAC_VFPR16_MF4_E16_MASK = 2866,
-  PseudoVFNMSAC_VFPR32_M1_E32 = 2867,
-  PseudoVFNMSAC_VFPR32_M1_E32_MASK = 2868,
-  PseudoVFNMSAC_VFPR32_M2_E32 = 2869,
-  PseudoVFNMSAC_VFPR32_M2_E32_MASK = 2870,
-  PseudoVFNMSAC_VFPR32_M4_E32 = 2871,
-  PseudoVFNMSAC_VFPR32_M4_E32_MASK = 2872,
-  PseudoVFNMSAC_VFPR32_M8_E32 = 2873,
-  PseudoVFNMSAC_VFPR32_M8_E32_MASK = 2874,
-  PseudoVFNMSAC_VFPR32_MF2_E32 = 2875,
-  PseudoVFNMSAC_VFPR32_MF2_E32_MASK = 2876,
-  PseudoVFNMSAC_VFPR64_M1_E64 = 2877,
-  PseudoVFNMSAC_VFPR64_M1_E64_MASK = 2878,
-  PseudoVFNMSAC_VFPR64_M2_E64 = 2879,
-  PseudoVFNMSAC_VFPR64_M2_E64_MASK = 2880,
-  PseudoVFNMSAC_VFPR64_M4_E64 = 2881,
-  PseudoVFNMSAC_VFPR64_M4_E64_MASK = 2882,
-  PseudoVFNMSAC_VFPR64_M8_E64 = 2883,
-  PseudoVFNMSAC_VFPR64_M8_E64_MASK = 2884,
-  PseudoVFNMSAC_VV_M1_E16 = 2885,
-  PseudoVFNMSAC_VV_M1_E16_MASK = 2886,
-  PseudoVFNMSAC_VV_M1_E32 = 2887,
-  PseudoVFNMSAC_VV_M1_E32_MASK = 2888,
-  PseudoVFNMSAC_VV_M1_E64 = 2889,
-  PseudoVFNMSAC_VV_M1_E64_MASK = 2890,
-  PseudoVFNMSAC_VV_M2_E16 = 2891,
-  PseudoVFNMSAC_VV_M2_E16_MASK = 2892,
-  PseudoVFNMSAC_VV_M2_E32 = 2893,
-  PseudoVFNMSAC_VV_M2_E32_MASK = 2894,
-  PseudoVFNMSAC_VV_M2_E64 = 2895,
-  PseudoVFNMSAC_VV_M2_E64_MASK = 2896,
-  PseudoVFNMSAC_VV_M4_E16 = 2897,
-  PseudoVFNMSAC_VV_M4_E16_MASK = 2898,
-  PseudoVFNMSAC_VV_M4_E32 = 2899,
-  PseudoVFNMSAC_VV_M4_E32_MASK = 2900,
-  PseudoVFNMSAC_VV_M4_E64 = 2901,
-  PseudoVFNMSAC_VV_M4_E64_MASK = 2902,
-  PseudoVFNMSAC_VV_M8_E16 = 2903,
-  PseudoVFNMSAC_VV_M8_E16_MASK = 2904,
-  PseudoVFNMSAC_VV_M8_E32 = 2905,
-  PseudoVFNMSAC_VV_M8_E32_MASK = 2906,
-  PseudoVFNMSAC_VV_M8_E64 = 2907,
-  PseudoVFNMSAC_VV_M8_E64_MASK = 2908,
-  PseudoVFNMSAC_VV_MF2_E16 = 2909,
-  PseudoVFNMSAC_VV_MF2_E16_MASK = 2910,
-  PseudoVFNMSAC_VV_MF2_E32 = 2911,
-  PseudoVFNMSAC_VV_MF2_E32_MASK = 2912,
-  PseudoVFNMSAC_VV_MF4_E16 = 2913,
-  PseudoVFNMSAC_VV_MF4_E16_MASK = 2914,
-  PseudoVFNMSUB_VFPR16_M1_E16 = 2915,
-  PseudoVFNMSUB_VFPR16_M1_E16_MASK = 2916,
-  PseudoVFNMSUB_VFPR16_M2_E16 = 2917,
-  PseudoVFNMSUB_VFPR16_M2_E16_MASK = 2918,
-  PseudoVFNMSUB_VFPR16_M4_E16 = 2919,
-  PseudoVFNMSUB_VFPR16_M4_E16_MASK = 2920,
-  PseudoVFNMSUB_VFPR16_M8_E16 = 2921,
-  PseudoVFNMSUB_VFPR16_M8_E16_MASK = 2922,
-  PseudoVFNMSUB_VFPR16_MF2_E16 = 2923,
-  PseudoVFNMSUB_VFPR16_MF2_E16_MASK = 2924,
-  PseudoVFNMSUB_VFPR16_MF4_E16 = 2925,
-  PseudoVFNMSUB_VFPR16_MF4_E16_MASK = 2926,
-  PseudoVFNMSUB_VFPR32_M1_E32 = 2927,
-  PseudoVFNMSUB_VFPR32_M1_E32_MASK = 2928,
-  PseudoVFNMSUB_VFPR32_M2_E32 = 2929,
-  PseudoVFNMSUB_VFPR32_M2_E32_MASK = 2930,
-  PseudoVFNMSUB_VFPR32_M4_E32 = 2931,
-  PseudoVFNMSUB_VFPR32_M4_E32_MASK = 2932,
-  PseudoVFNMSUB_VFPR32_M8_E32 = 2933,
-  PseudoVFNMSUB_VFPR32_M8_E32_MASK = 2934,
-  PseudoVFNMSUB_VFPR32_MF2_E32 = 2935,
-  PseudoVFNMSUB_VFPR32_MF2_E32_MASK = 2936,
-  PseudoVFNMSUB_VFPR64_M1_E64 = 2937,
-  PseudoVFNMSUB_VFPR64_M1_E64_MASK = 2938,
-  PseudoVFNMSUB_VFPR64_M2_E64 = 2939,
-  PseudoVFNMSUB_VFPR64_M2_E64_MASK = 2940,
-  PseudoVFNMSUB_VFPR64_M4_E64 = 2941,
-  PseudoVFNMSUB_VFPR64_M4_E64_MASK = 2942,
-  PseudoVFNMSUB_VFPR64_M8_E64 = 2943,
-  PseudoVFNMSUB_VFPR64_M8_E64_MASK = 2944,
-  PseudoVFNMSUB_VV_M1_E16 = 2945,
-  PseudoVFNMSUB_VV_M1_E16_MASK = 2946,
-  PseudoVFNMSUB_VV_M1_E32 = 2947,
-  PseudoVFNMSUB_VV_M1_E32_MASK = 2948,
-  PseudoVFNMSUB_VV_M1_E64 = 2949,
-  PseudoVFNMSUB_VV_M1_E64_MASK = 2950,
-  PseudoVFNMSUB_VV_M2_E16 = 2951,
-  PseudoVFNMSUB_VV_M2_E16_MASK = 2952,
-  PseudoVFNMSUB_VV_M2_E32 = 2953,
-  PseudoVFNMSUB_VV_M2_E32_MASK = 2954,
-  PseudoVFNMSUB_VV_M2_E64 = 2955,
-  PseudoVFNMSUB_VV_M2_E64_MASK = 2956,
-  PseudoVFNMSUB_VV_M4_E16 = 2957,
-  PseudoVFNMSUB_VV_M4_E16_MASK = 2958,
-  PseudoVFNMSUB_VV_M4_E32 = 2959,
-  PseudoVFNMSUB_VV_M4_E32_MASK = 2960,
-  PseudoVFNMSUB_VV_M4_E64 = 2961,
-  PseudoVFNMSUB_VV_M4_E64_MASK = 2962,
-  PseudoVFNMSUB_VV_M8_E16 = 2963,
-  PseudoVFNMSUB_VV_M8_E16_MASK = 2964,
-  PseudoVFNMSUB_VV_M8_E32 = 2965,
-  PseudoVFNMSUB_VV_M8_E32_MASK = 2966,
-  PseudoVFNMSUB_VV_M8_E64 = 2967,
-  PseudoVFNMSUB_VV_M8_E64_MASK = 2968,
-  PseudoVFNMSUB_VV_MF2_E16 = 2969,
-  PseudoVFNMSUB_VV_MF2_E16_MASK = 2970,
-  PseudoVFNMSUB_VV_MF2_E32 = 2971,
-  PseudoVFNMSUB_VV_MF2_E32_MASK = 2972,
-  PseudoVFNMSUB_VV_MF4_E16 = 2973,
-  PseudoVFNMSUB_VV_MF4_E16_MASK = 2974,
-  PseudoVFRDIV_VFPR16_M1_E16 = 2975,
-  PseudoVFRDIV_VFPR16_M1_E16_MASK = 2976,
-  PseudoVFRDIV_VFPR16_M2_E16 = 2977,
-  PseudoVFRDIV_VFPR16_M2_E16_MASK = 2978,
-  PseudoVFRDIV_VFPR16_M4_E16 = 2979,
-  PseudoVFRDIV_VFPR16_M4_E16_MASK = 2980,
-  PseudoVFRDIV_VFPR16_M8_E16 = 2981,
-  PseudoVFRDIV_VFPR16_M8_E16_MASK = 2982,
-  PseudoVFRDIV_VFPR16_MF2_E16 = 2983,
-  PseudoVFRDIV_VFPR16_MF2_E16_MASK = 2984,
-  PseudoVFRDIV_VFPR16_MF4_E16 = 2985,
-  PseudoVFRDIV_VFPR16_MF4_E16_MASK = 2986,
-  PseudoVFRDIV_VFPR32_M1_E32 = 2987,
-  PseudoVFRDIV_VFPR32_M1_E32_MASK = 2988,
-  PseudoVFRDIV_VFPR32_M2_E32 = 2989,
-  PseudoVFRDIV_VFPR32_M2_E32_MASK = 2990,
-  PseudoVFRDIV_VFPR32_M4_E32 = 2991,
-  PseudoVFRDIV_VFPR32_M4_E32_MASK = 2992,
-  PseudoVFRDIV_VFPR32_M8_E32 = 2993,
-  PseudoVFRDIV_VFPR32_M8_E32_MASK = 2994,
-  PseudoVFRDIV_VFPR32_MF2_E32 = 2995,
-  PseudoVFRDIV_VFPR32_MF2_E32_MASK = 2996,
-  PseudoVFRDIV_VFPR64_M1_E64 = 2997,
-  PseudoVFRDIV_VFPR64_M1_E64_MASK = 2998,
-  PseudoVFRDIV_VFPR64_M2_E64 = 2999,
-  PseudoVFRDIV_VFPR64_M2_E64_MASK = 3000,
-  PseudoVFRDIV_VFPR64_M4_E64 = 3001,
-  PseudoVFRDIV_VFPR64_M4_E64_MASK = 3002,
-  PseudoVFRDIV_VFPR64_M8_E64 = 3003,
-  PseudoVFRDIV_VFPR64_M8_E64_MASK = 3004,
-  PseudoVFREC7_V_M1_E16 = 3005,
-  PseudoVFREC7_V_M1_E16_MASK = 3006,
-  PseudoVFREC7_V_M1_E32 = 3007,
-  PseudoVFREC7_V_M1_E32_MASK = 3008,
-  PseudoVFREC7_V_M1_E64 = 3009,
-  PseudoVFREC7_V_M1_E64_MASK = 3010,
-  PseudoVFREC7_V_M2_E16 = 3011,
-  PseudoVFREC7_V_M2_E16_MASK = 3012,
-  PseudoVFREC7_V_M2_E32 = 3013,
-  PseudoVFREC7_V_M2_E32_MASK = 3014,
-  PseudoVFREC7_V_M2_E64 = 3015,
-  PseudoVFREC7_V_M2_E64_MASK = 3016,
-  PseudoVFREC7_V_M4_E16 = 3017,
-  PseudoVFREC7_V_M4_E16_MASK = 3018,
-  PseudoVFREC7_V_M4_E32 = 3019,
-  PseudoVFREC7_V_M4_E32_MASK = 3020,
-  PseudoVFREC7_V_M4_E64 = 3021,
-  PseudoVFREC7_V_M4_E64_MASK = 3022,
-  PseudoVFREC7_V_M8_E16 = 3023,
-  PseudoVFREC7_V_M8_E16_MASK = 3024,
-  PseudoVFREC7_V_M8_E32 = 3025,
-  PseudoVFREC7_V_M8_E32_MASK = 3026,
-  PseudoVFREC7_V_M8_E64 = 3027,
-  PseudoVFREC7_V_M8_E64_MASK = 3028,
-  PseudoVFREC7_V_MF2_E16 = 3029,
-  PseudoVFREC7_V_MF2_E16_MASK = 3030,
-  PseudoVFREC7_V_MF2_E32 = 3031,
-  PseudoVFREC7_V_MF2_E32_MASK = 3032,
-  PseudoVFREC7_V_MF4_E16 = 3033,
-  PseudoVFREC7_V_MF4_E16_MASK = 3034,
-  PseudoVFREDMAX_VS_M1_E16 = 3035,
-  PseudoVFREDMAX_VS_M1_E16_MASK = 3036,
-  PseudoVFREDMAX_VS_M1_E32 = 3037,
-  PseudoVFREDMAX_VS_M1_E32_MASK = 3038,
-  PseudoVFREDMAX_VS_M1_E64 = 3039,
-  PseudoVFREDMAX_VS_M1_E64_MASK = 3040,
-  PseudoVFREDMAX_VS_M2_E16 = 3041,
-  PseudoVFREDMAX_VS_M2_E16_MASK = 3042,
-  PseudoVFREDMAX_VS_M2_E32 = 3043,
-  PseudoVFREDMAX_VS_M2_E32_MASK = 3044,
-  PseudoVFREDMAX_VS_M2_E64 = 3045,
-  PseudoVFREDMAX_VS_M2_E64_MASK = 3046,
-  PseudoVFREDMAX_VS_M4_E16 = 3047,
-  PseudoVFREDMAX_VS_M4_E16_MASK = 3048,
-  PseudoVFREDMAX_VS_M4_E32 = 3049,
-  PseudoVFREDMAX_VS_M4_E32_MASK = 3050,
-  PseudoVFREDMAX_VS_M4_E64 = 3051,
-  PseudoVFREDMAX_VS_M4_E64_MASK = 3052,
-  PseudoVFREDMAX_VS_M8_E16 = 3053,
-  PseudoVFREDMAX_VS_M8_E16_MASK = 3054,
-  PseudoVFREDMAX_VS_M8_E32 = 3055,
-  PseudoVFREDMAX_VS_M8_E32_MASK = 3056,
-  PseudoVFREDMAX_VS_M8_E64 = 3057,
-  PseudoVFREDMAX_VS_M8_E64_MASK = 3058,
-  PseudoVFREDMAX_VS_MF2_E16 = 3059,
-  PseudoVFREDMAX_VS_MF2_E16_MASK = 3060,
-  PseudoVFREDMAX_VS_MF2_E32 = 3061,
-  PseudoVFREDMAX_VS_MF2_E32_MASK = 3062,
-  PseudoVFREDMAX_VS_MF4_E16 = 3063,
-  PseudoVFREDMAX_VS_MF4_E16_MASK = 3064,
-  PseudoVFREDMIN_VS_M1_E16 = 3065,
-  PseudoVFREDMIN_VS_M1_E16_MASK = 3066,
-  PseudoVFREDMIN_VS_M1_E32 = 3067,
-  PseudoVFREDMIN_VS_M1_E32_MASK = 3068,
-  PseudoVFREDMIN_VS_M1_E64 = 3069,
-  PseudoVFREDMIN_VS_M1_E64_MASK = 3070,
-  PseudoVFREDMIN_VS_M2_E16 = 3071,
-  PseudoVFREDMIN_VS_M2_E16_MASK = 3072,
-  PseudoVFREDMIN_VS_M2_E32 = 3073,
-  PseudoVFREDMIN_VS_M2_E32_MASK = 3074,
-  PseudoVFREDMIN_VS_M2_E64 = 3075,
-  PseudoVFREDMIN_VS_M2_E64_MASK = 3076,
-  PseudoVFREDMIN_VS_M4_E16 = 3077,
-  PseudoVFREDMIN_VS_M4_E16_MASK = 3078,
-  PseudoVFREDMIN_VS_M4_E32 = 3079,
-  PseudoVFREDMIN_VS_M4_E32_MASK = 3080,
-  PseudoVFREDMIN_VS_M4_E64 = 3081,
-  PseudoVFREDMIN_VS_M4_E64_MASK = 3082,
-  PseudoVFREDMIN_VS_M8_E16 = 3083,
-  PseudoVFREDMIN_VS_M8_E16_MASK = 3084,
-  PseudoVFREDMIN_VS_M8_E32 = 3085,
-  PseudoVFREDMIN_VS_M8_E32_MASK = 3086,
-  PseudoVFREDMIN_VS_M8_E64 = 3087,
-  PseudoVFREDMIN_VS_M8_E64_MASK = 3088,
-  PseudoVFREDMIN_VS_MF2_E16 = 3089,
-  PseudoVFREDMIN_VS_MF2_E16_MASK = 3090,
-  PseudoVFREDMIN_VS_MF2_E32 = 3091,
-  PseudoVFREDMIN_VS_MF2_E32_MASK = 3092,
-  PseudoVFREDMIN_VS_MF4_E16 = 3093,
-  PseudoVFREDMIN_VS_MF4_E16_MASK = 3094,
-  PseudoVFREDOSUM_VS_M1_E16 = 3095,
-  PseudoVFREDOSUM_VS_M1_E16_MASK = 3096,
-  PseudoVFREDOSUM_VS_M1_E32 = 3097,
-  PseudoVFREDOSUM_VS_M1_E32_MASK = 3098,
-  PseudoVFREDOSUM_VS_M1_E64 = 3099,
-  PseudoVFREDOSUM_VS_M1_E64_MASK = 3100,
-  PseudoVFREDOSUM_VS_M2_E16 = 3101,
-  PseudoVFREDOSUM_VS_M2_E16_MASK = 3102,
-  PseudoVFREDOSUM_VS_M2_E32 = 3103,
-  PseudoVFREDOSUM_VS_M2_E32_MASK = 3104,
-  PseudoVFREDOSUM_VS_M2_E64 = 3105,
-  PseudoVFREDOSUM_VS_M2_E64_MASK = 3106,
-  PseudoVFREDOSUM_VS_M4_E16 = 3107,
-  PseudoVFREDOSUM_VS_M4_E16_MASK = 3108,
-  PseudoVFREDOSUM_VS_M4_E32 = 3109,
-  PseudoVFREDOSUM_VS_M4_E32_MASK = 3110,
-  PseudoVFREDOSUM_VS_M4_E64 = 3111,
-  PseudoVFREDOSUM_VS_M4_E64_MASK = 3112,
-  PseudoVFREDOSUM_VS_M8_E16 = 3113,
-  PseudoVFREDOSUM_VS_M8_E16_MASK = 3114,
-  PseudoVFREDOSUM_VS_M8_E32 = 3115,
-  PseudoVFREDOSUM_VS_M8_E32_MASK = 3116,
-  PseudoVFREDOSUM_VS_M8_E64 = 3117,
-  PseudoVFREDOSUM_VS_M8_E64_MASK = 3118,
-  PseudoVFREDOSUM_VS_MF2_E16 = 3119,
-  PseudoVFREDOSUM_VS_MF2_E16_MASK = 3120,
-  PseudoVFREDOSUM_VS_MF2_E32 = 3121,
-  PseudoVFREDOSUM_VS_MF2_E32_MASK = 3122,
-  PseudoVFREDOSUM_VS_MF4_E16 = 3123,
-  PseudoVFREDOSUM_VS_MF4_E16_MASK = 3124,
-  PseudoVFREDUSUM_VS_M1_E16 = 3125,
-  PseudoVFREDUSUM_VS_M1_E16_MASK = 3126,
-  PseudoVFREDUSUM_VS_M1_E32 = 3127,
-  PseudoVFREDUSUM_VS_M1_E32_MASK = 3128,
-  PseudoVFREDUSUM_VS_M1_E64 = 3129,
-  PseudoVFREDUSUM_VS_M1_E64_MASK = 3130,
-  PseudoVFREDUSUM_VS_M2_E16 = 3131,
-  PseudoVFREDUSUM_VS_M2_E16_MASK = 3132,
-  PseudoVFREDUSUM_VS_M2_E32 = 3133,
-  PseudoVFREDUSUM_VS_M2_E32_MASK = 3134,
-  PseudoVFREDUSUM_VS_M2_E64 = 3135,
-  PseudoVFREDUSUM_VS_M2_E64_MASK = 3136,
-  PseudoVFREDUSUM_VS_M4_E16 = 3137,
-  PseudoVFREDUSUM_VS_M4_E16_MASK = 3138,
-  PseudoVFREDUSUM_VS_M4_E32 = 3139,
-  PseudoVFREDUSUM_VS_M4_E32_MASK = 3140,
-  PseudoVFREDUSUM_VS_M4_E64 = 3141,
-  PseudoVFREDUSUM_VS_M4_E64_MASK = 3142,
-  PseudoVFREDUSUM_VS_M8_E16 = 3143,
-  PseudoVFREDUSUM_VS_M8_E16_MASK = 3144,
-  PseudoVFREDUSUM_VS_M8_E32 = 3145,
-  PseudoVFREDUSUM_VS_M8_E32_MASK = 3146,
-  PseudoVFREDUSUM_VS_M8_E64 = 3147,
-  PseudoVFREDUSUM_VS_M8_E64_MASK = 3148,
-  PseudoVFREDUSUM_VS_MF2_E16 = 3149,
-  PseudoVFREDUSUM_VS_MF2_E16_MASK = 3150,
-  PseudoVFREDUSUM_VS_MF2_E32 = 3151,
-  PseudoVFREDUSUM_VS_MF2_E32_MASK = 3152,
-  PseudoVFREDUSUM_VS_MF4_E16 = 3153,
-  PseudoVFREDUSUM_VS_MF4_E16_MASK = 3154,
-  PseudoVFROUND_NOEXCEPT_V_M1_MASK = 3155,
-  PseudoVFROUND_NOEXCEPT_V_M2_MASK = 3156,
-  PseudoVFROUND_NOEXCEPT_V_M4_MASK = 3157,
-  PseudoVFROUND_NOEXCEPT_V_M8_MASK = 3158,
-  PseudoVFROUND_NOEXCEPT_V_MF2_MASK = 3159,
-  PseudoVFROUND_NOEXCEPT_V_MF4_MASK = 3160,
-  PseudoVFRSQRT7_V_M1_E16 = 3161,
-  PseudoVFRSQRT7_V_M1_E16_MASK = 3162,
-  PseudoVFRSQRT7_V_M1_E32 = 3163,
-  PseudoVFRSQRT7_V_M1_E32_MASK = 3164,
-  PseudoVFRSQRT7_V_M1_E64 = 3165,
-  PseudoVFRSQRT7_V_M1_E64_MASK = 3166,
-  PseudoVFRSQRT7_V_M2_E16 = 3167,
-  PseudoVFRSQRT7_V_M2_E16_MASK = 3168,
-  PseudoVFRSQRT7_V_M2_E32 = 3169,
-  PseudoVFRSQRT7_V_M2_E32_MASK = 3170,
-  PseudoVFRSQRT7_V_M2_E64 = 3171,
-  PseudoVFRSQRT7_V_M2_E64_MASK = 3172,
-  PseudoVFRSQRT7_V_M4_E16 = 3173,
-  PseudoVFRSQRT7_V_M4_E16_MASK = 3174,
-  PseudoVFRSQRT7_V_M4_E32 = 3175,
-  PseudoVFRSQRT7_V_M4_E32_MASK = 3176,
-  PseudoVFRSQRT7_V_M4_E64 = 3177,
-  PseudoVFRSQRT7_V_M4_E64_MASK = 3178,
-  PseudoVFRSQRT7_V_M8_E16 = 3179,
-  PseudoVFRSQRT7_V_M8_E16_MASK = 3180,
-  PseudoVFRSQRT7_V_M8_E32 = 3181,
-  PseudoVFRSQRT7_V_M8_E32_MASK = 3182,
-  PseudoVFRSQRT7_V_M8_E64 = 3183,
-  PseudoVFRSQRT7_V_M8_E64_MASK = 3184,
-  PseudoVFRSQRT7_V_MF2_E16 = 3185,
-  PseudoVFRSQRT7_V_MF2_E16_MASK = 3186,
-  PseudoVFRSQRT7_V_MF2_E32 = 3187,
-  PseudoVFRSQRT7_V_MF2_E32_MASK = 3188,
-  PseudoVFRSQRT7_V_MF4_E16 = 3189,
-  PseudoVFRSQRT7_V_MF4_E16_MASK = 3190,
-  PseudoVFRSUB_VFPR16_M1_E16 = 3191,
-  PseudoVFRSUB_VFPR16_M1_E16_MASK = 3192,
-  PseudoVFRSUB_VFPR16_M2_E16 = 3193,
-  PseudoVFRSUB_VFPR16_M2_E16_MASK = 3194,
-  PseudoVFRSUB_VFPR16_M4_E16 = 3195,
-  PseudoVFRSUB_VFPR16_M4_E16_MASK = 3196,
-  PseudoVFRSUB_VFPR16_M8_E16 = 3197,
-  PseudoVFRSUB_VFPR16_M8_E16_MASK = 3198,
-  PseudoVFRSUB_VFPR16_MF2_E16 = 3199,
-  PseudoVFRSUB_VFPR16_MF2_E16_MASK = 3200,
-  PseudoVFRSUB_VFPR16_MF4_E16 = 3201,
-  PseudoVFRSUB_VFPR16_MF4_E16_MASK = 3202,
-  PseudoVFRSUB_VFPR32_M1_E32 = 3203,
-  PseudoVFRSUB_VFPR32_M1_E32_MASK = 3204,
-  PseudoVFRSUB_VFPR32_M2_E32 = 3205,
-  PseudoVFRSUB_VFPR32_M2_E32_MASK = 3206,
-  PseudoVFRSUB_VFPR32_M4_E32 = 3207,
-  PseudoVFRSUB_VFPR32_M4_E32_MASK = 3208,
-  PseudoVFRSUB_VFPR32_M8_E32 = 3209,
-  PseudoVFRSUB_VFPR32_M8_E32_MASK = 3210,
-  PseudoVFRSUB_VFPR32_MF2_E32 = 3211,
-  PseudoVFRSUB_VFPR32_MF2_E32_MASK = 3212,
-  PseudoVFRSUB_VFPR64_M1_E64 = 3213,
-  PseudoVFRSUB_VFPR64_M1_E64_MASK = 3214,
-  PseudoVFRSUB_VFPR64_M2_E64 = 3215,
-  PseudoVFRSUB_VFPR64_M2_E64_MASK = 3216,
-  PseudoVFRSUB_VFPR64_M4_E64 = 3217,
-  PseudoVFRSUB_VFPR64_M4_E64_MASK = 3218,
-  PseudoVFRSUB_VFPR64_M8_E64 = 3219,
-  PseudoVFRSUB_VFPR64_M8_E64_MASK = 3220,
-  PseudoVFSGNJN_VFPR16_M1_E16 = 3221,
-  PseudoVFSGNJN_VFPR16_M1_E16_MASK = 3222,
-  PseudoVFSGNJN_VFPR16_M2_E16 = 3223,
-  PseudoVFSGNJN_VFPR16_M2_E16_MASK = 3224,
-  PseudoVFSGNJN_VFPR16_M4_E16 = 3225,
-  PseudoVFSGNJN_VFPR16_M4_E16_MASK = 3226,
-  PseudoVFSGNJN_VFPR16_M8_E16 = 3227,
-  PseudoVFSGNJN_VFPR16_M8_E16_MASK = 3228,
-  PseudoVFSGNJN_VFPR16_MF2_E16 = 3229,
-  PseudoVFSGNJN_VFPR16_MF2_E16_MASK = 3230,
-  PseudoVFSGNJN_VFPR16_MF4_E16 = 3231,
-  PseudoVFSGNJN_VFPR16_MF4_E16_MASK = 3232,
-  PseudoVFSGNJN_VFPR32_M1_E32 = 3233,
-  PseudoVFSGNJN_VFPR32_M1_E32_MASK = 3234,
-  PseudoVFSGNJN_VFPR32_M2_E32 = 3235,
-  PseudoVFSGNJN_VFPR32_M2_E32_MASK = 3236,
-  PseudoVFSGNJN_VFPR32_M4_E32 = 3237,
-  PseudoVFSGNJN_VFPR32_M4_E32_MASK = 3238,
-  PseudoVFSGNJN_VFPR32_M8_E32 = 3239,
-  PseudoVFSGNJN_VFPR32_M8_E32_MASK = 3240,
-  PseudoVFSGNJN_VFPR32_MF2_E32 = 3241,
-  PseudoVFSGNJN_VFPR32_MF2_E32_MASK = 3242,
-  PseudoVFSGNJN_VFPR64_M1_E64 = 3243,
-  PseudoVFSGNJN_VFPR64_M1_E64_MASK = 3244,
-  PseudoVFSGNJN_VFPR64_M2_E64 = 3245,
-  PseudoVFSGNJN_VFPR64_M2_E64_MASK = 3246,
-  PseudoVFSGNJN_VFPR64_M4_E64 = 3247,
-  PseudoVFSGNJN_VFPR64_M4_E64_MASK = 3248,
-  PseudoVFSGNJN_VFPR64_M8_E64 = 3249,
-  PseudoVFSGNJN_VFPR64_M8_E64_MASK = 3250,
-  PseudoVFSGNJN_VV_M1_E16 = 3251,
-  PseudoVFSGNJN_VV_M1_E16_MASK = 3252,
-  PseudoVFSGNJN_VV_M1_E32 = 3253,
-  PseudoVFSGNJN_VV_M1_E32_MASK = 3254,
-  PseudoVFSGNJN_VV_M1_E64 = 3255,
-  PseudoVFSGNJN_VV_M1_E64_MASK = 3256,
-  PseudoVFSGNJN_VV_M2_E16 = 3257,
-  PseudoVFSGNJN_VV_M2_E16_MASK = 3258,
-  PseudoVFSGNJN_VV_M2_E32 = 3259,
-  PseudoVFSGNJN_VV_M2_E32_MASK = 3260,
-  PseudoVFSGNJN_VV_M2_E64 = 3261,
-  PseudoVFSGNJN_VV_M2_E64_MASK = 3262,
-  PseudoVFSGNJN_VV_M4_E16 = 3263,
-  PseudoVFSGNJN_VV_M4_E16_MASK = 3264,
-  PseudoVFSGNJN_VV_M4_E32 = 3265,
-  PseudoVFSGNJN_VV_M4_E32_MASK = 3266,
-  PseudoVFSGNJN_VV_M4_E64 = 3267,
-  PseudoVFSGNJN_VV_M4_E64_MASK = 3268,
-  PseudoVFSGNJN_VV_M8_E16 = 3269,
-  PseudoVFSGNJN_VV_M8_E16_MASK = 3270,
-  PseudoVFSGNJN_VV_M8_E32 = 3271,
-  PseudoVFSGNJN_VV_M8_E32_MASK = 3272,
-  PseudoVFSGNJN_VV_M8_E64 = 3273,
-  PseudoVFSGNJN_VV_M8_E64_MASK = 3274,
-  PseudoVFSGNJN_VV_MF2_E16 = 3275,
-  PseudoVFSGNJN_VV_MF2_E16_MASK = 3276,
-  PseudoVFSGNJN_VV_MF2_E32 = 3277,
-  PseudoVFSGNJN_VV_MF2_E32_MASK = 3278,
-  PseudoVFSGNJN_VV_MF4_E16 = 3279,
-  PseudoVFSGNJN_VV_MF4_E16_MASK = 3280,
-  PseudoVFSGNJX_VFPR16_M1_E16 = 3281,
-  PseudoVFSGNJX_VFPR16_M1_E16_MASK = 3282,
-  PseudoVFSGNJX_VFPR16_M2_E16 = 3283,
-  PseudoVFSGNJX_VFPR16_M2_E16_MASK = 3284,
-  PseudoVFSGNJX_VFPR16_M4_E16 = 3285,
-  PseudoVFSGNJX_VFPR16_M4_E16_MASK = 3286,
-  PseudoVFSGNJX_VFPR16_M8_E16 = 3287,
-  PseudoVFSGNJX_VFPR16_M8_E16_MASK = 3288,
-  PseudoVFSGNJX_VFPR16_MF2_E16 = 3289,
-  PseudoVFSGNJX_VFPR16_MF2_E16_MASK = 3290,
-  PseudoVFSGNJX_VFPR16_MF4_E16 = 3291,
-  PseudoVFSGNJX_VFPR16_MF4_E16_MASK = 3292,
-  PseudoVFSGNJX_VFPR32_M1_E32 = 3293,
-  PseudoVFSGNJX_VFPR32_M1_E32_MASK = 3294,
-  PseudoVFSGNJX_VFPR32_M2_E32 = 3295,
-  PseudoVFSGNJX_VFPR32_M2_E32_MASK = 3296,
-  PseudoVFSGNJX_VFPR32_M4_E32 = 3297,
-  PseudoVFSGNJX_VFPR32_M4_E32_MASK = 3298,
-  PseudoVFSGNJX_VFPR32_M8_E32 = 3299,
-  PseudoVFSGNJX_VFPR32_M8_E32_MASK = 3300,
-  PseudoVFSGNJX_VFPR32_MF2_E32 = 3301,
-  PseudoVFSGNJX_VFPR32_MF2_E32_MASK = 3302,
-  PseudoVFSGNJX_VFPR64_M1_E64 = 3303,
-  PseudoVFSGNJX_VFPR64_M1_E64_MASK = 3304,
-  PseudoVFSGNJX_VFPR64_M2_E64 = 3305,
-  PseudoVFSGNJX_VFPR64_M2_E64_MASK = 3306,
-  PseudoVFSGNJX_VFPR64_M4_E64 = 3307,
-  PseudoVFSGNJX_VFPR64_M4_E64_MASK = 3308,
-  PseudoVFSGNJX_VFPR64_M8_E64 = 3309,
-  PseudoVFSGNJX_VFPR64_M8_E64_MASK = 3310,
-  PseudoVFSGNJX_VV_M1_E16 = 3311,
-  PseudoVFSGNJX_VV_M1_E16_MASK = 3312,
-  PseudoVFSGNJX_VV_M1_E32 = 3313,
-  PseudoVFSGNJX_VV_M1_E32_MASK = 3314,
-  PseudoVFSGNJX_VV_M1_E64 = 3315,
-  PseudoVFSGNJX_VV_M1_E64_MASK = 3316,
-  PseudoVFSGNJX_VV_M2_E16 = 3317,
-  PseudoVFSGNJX_VV_M2_E16_MASK = 3318,
-  PseudoVFSGNJX_VV_M2_E32 = 3319,
-  PseudoVFSGNJX_VV_M2_E32_MASK = 3320,
-  PseudoVFSGNJX_VV_M2_E64 = 3321,
-  PseudoVFSGNJX_VV_M2_E64_MASK = 3322,
-  PseudoVFSGNJX_VV_M4_E16 = 3323,
-  PseudoVFSGNJX_VV_M4_E16_MASK = 3324,
-  PseudoVFSGNJX_VV_M4_E32 = 3325,
-  PseudoVFSGNJX_VV_M4_E32_MASK = 3326,
-  PseudoVFSGNJX_VV_M4_E64 = 3327,
-  PseudoVFSGNJX_VV_M4_E64_MASK = 3328,
-  PseudoVFSGNJX_VV_M8_E16 = 3329,
-  PseudoVFSGNJX_VV_M8_E16_MASK = 3330,
-  PseudoVFSGNJX_VV_M8_E32 = 3331,
-  PseudoVFSGNJX_VV_M8_E32_MASK = 3332,
-  PseudoVFSGNJX_VV_M8_E64 = 3333,
-  PseudoVFSGNJX_VV_M8_E64_MASK = 3334,
-  PseudoVFSGNJX_VV_MF2_E16 = 3335,
-  PseudoVFSGNJX_VV_MF2_E16_MASK = 3336,
-  PseudoVFSGNJX_VV_MF2_E32 = 3337,
-  PseudoVFSGNJX_VV_MF2_E32_MASK = 3338,
-  PseudoVFSGNJX_VV_MF4_E16 = 3339,
-  PseudoVFSGNJX_VV_MF4_E16_MASK = 3340,
-  PseudoVFSGNJ_VFPR16_M1_E16 = 3341,
-  PseudoVFSGNJ_VFPR16_M1_E16_MASK = 3342,
-  PseudoVFSGNJ_VFPR16_M2_E16 = 3343,
-  PseudoVFSGNJ_VFPR16_M2_E16_MASK = 3344,
-  PseudoVFSGNJ_VFPR16_M4_E16 = 3345,
-  PseudoVFSGNJ_VFPR16_M4_E16_MASK = 3346,
-  PseudoVFSGNJ_VFPR16_M8_E16 = 3347,
-  PseudoVFSGNJ_VFPR16_M8_E16_MASK = 3348,
-  PseudoVFSGNJ_VFPR16_MF2_E16 = 3349,
-  PseudoVFSGNJ_VFPR16_MF2_E16_MASK = 3350,
-  PseudoVFSGNJ_VFPR16_MF4_E16 = 3351,
-  PseudoVFSGNJ_VFPR16_MF4_E16_MASK = 3352,
-  PseudoVFSGNJ_VFPR32_M1_E32 = 3353,
-  PseudoVFSGNJ_VFPR32_M1_E32_MASK = 3354,
-  PseudoVFSGNJ_VFPR32_M2_E32 = 3355,
-  PseudoVFSGNJ_VFPR32_M2_E32_MASK = 3356,
-  PseudoVFSGNJ_VFPR32_M4_E32 = 3357,
-  PseudoVFSGNJ_VFPR32_M4_E32_MASK = 3358,
-  PseudoVFSGNJ_VFPR32_M8_E32 = 3359,
-  PseudoVFSGNJ_VFPR32_M8_E32_MASK = 3360,
-  PseudoVFSGNJ_VFPR32_MF2_E32 = 3361,
-  PseudoVFSGNJ_VFPR32_MF2_E32_MASK = 3362,
-  PseudoVFSGNJ_VFPR64_M1_E64 = 3363,
-  PseudoVFSGNJ_VFPR64_M1_E64_MASK = 3364,
-  PseudoVFSGNJ_VFPR64_M2_E64 = 3365,
-  PseudoVFSGNJ_VFPR64_M2_E64_MASK = 3366,
-  PseudoVFSGNJ_VFPR64_M4_E64 = 3367,
-  PseudoVFSGNJ_VFPR64_M4_E64_MASK = 3368,
-  PseudoVFSGNJ_VFPR64_M8_E64 = 3369,
-  PseudoVFSGNJ_VFPR64_M8_E64_MASK = 3370,
-  PseudoVFSGNJ_VV_M1_E16 = 3371,
-  PseudoVFSGNJ_VV_M1_E16_MASK = 3372,
-  PseudoVFSGNJ_VV_M1_E32 = 3373,
-  PseudoVFSGNJ_VV_M1_E32_MASK = 3374,
-  PseudoVFSGNJ_VV_M1_E64 = 3375,
-  PseudoVFSGNJ_VV_M1_E64_MASK = 3376,
-  PseudoVFSGNJ_VV_M2_E16 = 3377,
-  PseudoVFSGNJ_VV_M2_E16_MASK = 3378,
-  PseudoVFSGNJ_VV_M2_E32 = 3379,
-  PseudoVFSGNJ_VV_M2_E32_MASK = 3380,
-  PseudoVFSGNJ_VV_M2_E64 = 3381,
-  PseudoVFSGNJ_VV_M2_E64_MASK = 3382,
-  PseudoVFSGNJ_VV_M4_E16 = 3383,
-  PseudoVFSGNJ_VV_M4_E16_MASK = 3384,
-  PseudoVFSGNJ_VV_M4_E32 = 3385,
-  PseudoVFSGNJ_VV_M4_E32_MASK = 3386,
-  PseudoVFSGNJ_VV_M4_E64 = 3387,
-  PseudoVFSGNJ_VV_M4_E64_MASK = 3388,
-  PseudoVFSGNJ_VV_M8_E16 = 3389,
-  PseudoVFSGNJ_VV_M8_E16_MASK = 3390,
-  PseudoVFSGNJ_VV_M8_E32 = 3391,
-  PseudoVFSGNJ_VV_M8_E32_MASK = 3392,
-  PseudoVFSGNJ_VV_M8_E64 = 3393,
-  PseudoVFSGNJ_VV_M8_E64_MASK = 3394,
-  PseudoVFSGNJ_VV_MF2_E16 = 3395,
-  PseudoVFSGNJ_VV_MF2_E16_MASK = 3396,
-  PseudoVFSGNJ_VV_MF2_E32 = 3397,
-  PseudoVFSGNJ_VV_MF2_E32_MASK = 3398,
-  PseudoVFSGNJ_VV_MF4_E16 = 3399,
-  PseudoVFSGNJ_VV_MF4_E16_MASK = 3400,
-  PseudoVFSLIDE1DOWN_VFPR16_M1 = 3401,
-  PseudoVFSLIDE1DOWN_VFPR16_M1_MASK = 3402,
-  PseudoVFSLIDE1DOWN_VFPR16_M2 = 3403,
-  PseudoVFSLIDE1DOWN_VFPR16_M2_MASK = 3404,
-  PseudoVFSLIDE1DOWN_VFPR16_M4 = 3405,
-  PseudoVFSLIDE1DOWN_VFPR16_M4_MASK = 3406,
-  PseudoVFSLIDE1DOWN_VFPR16_M8 = 3407,
-  PseudoVFSLIDE1DOWN_VFPR16_M8_MASK = 3408,
-  PseudoVFSLIDE1DOWN_VFPR16_MF2 = 3409,
-  PseudoVFSLIDE1DOWN_VFPR16_MF2_MASK = 3410,
-  PseudoVFSLIDE1DOWN_VFPR16_MF4 = 3411,
-  PseudoVFSLIDE1DOWN_VFPR16_MF4_MASK = 3412,
-  PseudoVFSLIDE1DOWN_VFPR32_M1 = 3413,
-  PseudoVFSLIDE1DOWN_VFPR32_M1_MASK = 3414,
-  PseudoVFSLIDE1DOWN_VFPR32_M2 = 3415,
-  PseudoVFSLIDE1DOWN_VFPR32_M2_MASK = 3416,
-  PseudoVFSLIDE1DOWN_VFPR32_M4 = 3417,
-  PseudoVFSLIDE1DOWN_VFPR32_M4_MASK = 3418,
-  PseudoVFSLIDE1DOWN_VFPR32_M8 = 3419,
-  PseudoVFSLIDE1DOWN_VFPR32_M8_MASK = 3420,
-  PseudoVFSLIDE1DOWN_VFPR32_MF2 = 3421,
-  PseudoVFSLIDE1DOWN_VFPR32_MF2_MASK = 3422,
-  PseudoVFSLIDE1DOWN_VFPR64_M1 = 3423,
-  PseudoVFSLIDE1DOWN_VFPR64_M1_MASK = 3424,
-  PseudoVFSLIDE1DOWN_VFPR64_M2 = 3425,
-  PseudoVFSLIDE1DOWN_VFPR64_M2_MASK = 3426,
-  PseudoVFSLIDE1DOWN_VFPR64_M4 = 3427,
-  PseudoVFSLIDE1DOWN_VFPR64_M4_MASK = 3428,
-  PseudoVFSLIDE1DOWN_VFPR64_M8 = 3429,
-  PseudoVFSLIDE1DOWN_VFPR64_M8_MASK = 3430,
-  PseudoVFSLIDE1UP_VFPR16_M1 = 3431,
-  PseudoVFSLIDE1UP_VFPR16_M1_MASK = 3432,
-  PseudoVFSLIDE1UP_VFPR16_M2 = 3433,
-  PseudoVFSLIDE1UP_VFPR16_M2_MASK = 3434,
-  PseudoVFSLIDE1UP_VFPR16_M4 = 3435,
-  PseudoVFSLIDE1UP_VFPR16_M4_MASK = 3436,
-  PseudoVFSLIDE1UP_VFPR16_M8 = 3437,
-  PseudoVFSLIDE1UP_VFPR16_M8_MASK = 3438,
-  PseudoVFSLIDE1UP_VFPR16_MF2 = 3439,
-  PseudoVFSLIDE1UP_VFPR16_MF2_MASK = 3440,
-  PseudoVFSLIDE1UP_VFPR16_MF4 = 3441,
-  PseudoVFSLIDE1UP_VFPR16_MF4_MASK = 3442,
-  PseudoVFSLIDE1UP_VFPR32_M1 = 3443,
-  PseudoVFSLIDE1UP_VFPR32_M1_MASK = 3444,
-  PseudoVFSLIDE1UP_VFPR32_M2 = 3445,
-  PseudoVFSLIDE1UP_VFPR32_M2_MASK = 3446,
-  PseudoVFSLIDE1UP_VFPR32_M4 = 3447,
-  PseudoVFSLIDE1UP_VFPR32_M4_MASK = 3448,
-  PseudoVFSLIDE1UP_VFPR32_M8 = 3449,
-  PseudoVFSLIDE1UP_VFPR32_M8_MASK = 3450,
-  PseudoVFSLIDE1UP_VFPR32_MF2 = 3451,
-  PseudoVFSLIDE1UP_VFPR32_MF2_MASK = 3452,
-  PseudoVFSLIDE1UP_VFPR64_M1 = 3453,
-  PseudoVFSLIDE1UP_VFPR64_M1_MASK = 3454,
-  PseudoVFSLIDE1UP_VFPR64_M2 = 3455,
-  PseudoVFSLIDE1UP_VFPR64_M2_MASK = 3456,
-  PseudoVFSLIDE1UP_VFPR64_M4 = 3457,
-  PseudoVFSLIDE1UP_VFPR64_M4_MASK = 3458,
-  PseudoVFSLIDE1UP_VFPR64_M8 = 3459,
-  PseudoVFSLIDE1UP_VFPR64_M8_MASK = 3460,
-  PseudoVFSQRT_V_M1_E16 = 3461,
-  PseudoVFSQRT_V_M1_E16_MASK = 3462,
-  PseudoVFSQRT_V_M1_E32 = 3463,
-  PseudoVFSQRT_V_M1_E32_MASK = 3464,
-  PseudoVFSQRT_V_M1_E64 = 3465,
-  PseudoVFSQRT_V_M1_E64_MASK = 3466,
-  PseudoVFSQRT_V_M2_E16 = 3467,
-  PseudoVFSQRT_V_M2_E16_MASK = 3468,
-  PseudoVFSQRT_V_M2_E32 = 3469,
-  PseudoVFSQRT_V_M2_E32_MASK = 3470,
-  PseudoVFSQRT_V_M2_E64 = 3471,
-  PseudoVFSQRT_V_M2_E64_MASK = 3472,
-  PseudoVFSQRT_V_M4_E16 = 3473,
-  PseudoVFSQRT_V_M4_E16_MASK = 3474,
-  PseudoVFSQRT_V_M4_E32 = 3475,
-  PseudoVFSQRT_V_M4_E32_MASK = 3476,
-  PseudoVFSQRT_V_M4_E64 = 3477,
-  PseudoVFSQRT_V_M4_E64_MASK = 3478,
-  PseudoVFSQRT_V_M8_E16 = 3479,
-  PseudoVFSQRT_V_M8_E16_MASK = 3480,
-  PseudoVFSQRT_V_M8_E32 = 3481,
-  PseudoVFSQRT_V_M8_E32_MASK = 3482,
-  PseudoVFSQRT_V_M8_E64 = 3483,
-  PseudoVFSQRT_V_M8_E64_MASK = 3484,
-  PseudoVFSQRT_V_MF2_E16 = 3485,
-  PseudoVFSQRT_V_MF2_E16_MASK = 3486,
-  PseudoVFSQRT_V_MF2_E32 = 3487,
-  PseudoVFSQRT_V_MF2_E32_MASK = 3488,
-  PseudoVFSQRT_V_MF4_E16 = 3489,
-  PseudoVFSQRT_V_MF4_E16_MASK = 3490,
-  PseudoVFSUB_VFPR16_M1_E16 = 3491,
-  PseudoVFSUB_VFPR16_M1_E16_MASK = 3492,
-  PseudoVFSUB_VFPR16_M2_E16 = 3493,
-  PseudoVFSUB_VFPR16_M2_E16_MASK = 3494,
-  PseudoVFSUB_VFPR16_M4_E16 = 3495,
-  PseudoVFSUB_VFPR16_M4_E16_MASK = 3496,
-  PseudoVFSUB_VFPR16_M8_E16 = 3497,
-  PseudoVFSUB_VFPR16_M8_E16_MASK = 3498,
-  PseudoVFSUB_VFPR16_MF2_E16 = 3499,
-  PseudoVFSUB_VFPR16_MF2_E16_MASK = 3500,
-  PseudoVFSUB_VFPR16_MF4_E16 = 3501,
-  PseudoVFSUB_VFPR16_MF4_E16_MASK = 3502,
-  PseudoVFSUB_VFPR32_M1_E32 = 3503,
-  PseudoVFSUB_VFPR32_M1_E32_MASK = 3504,
-  PseudoVFSUB_VFPR32_M2_E32 = 3505,
-  PseudoVFSUB_VFPR32_M2_E32_MASK = 3506,
-  PseudoVFSUB_VFPR32_M4_E32 = 3507,
-  PseudoVFSUB_VFPR32_M4_E32_MASK = 3508,
-  PseudoVFSUB_VFPR32_M8_E32 = 3509,
-  PseudoVFSUB_VFPR32_M8_E32_MASK = 3510,
-  PseudoVFSUB_VFPR32_MF2_E32 = 3511,
-  PseudoVFSUB_VFPR32_MF2_E32_MASK = 3512,
-  PseudoVFSUB_VFPR64_M1_E64 = 3513,
-  PseudoVFSUB_VFPR64_M1_E64_MASK = 3514,
-  PseudoVFSUB_VFPR64_M2_E64 = 3515,
-  PseudoVFSUB_VFPR64_M2_E64_MASK = 3516,
-  PseudoVFSUB_VFPR64_M4_E64 = 3517,
-  PseudoVFSUB_VFPR64_M4_E64_MASK = 3518,
-  PseudoVFSUB_VFPR64_M8_E64 = 3519,
-  PseudoVFSUB_VFPR64_M8_E64_MASK = 3520,
-  PseudoVFSUB_VV_M1_E16 = 3521,
-  PseudoVFSUB_VV_M1_E16_MASK = 3522,
-  PseudoVFSUB_VV_M1_E32 = 3523,
-  PseudoVFSUB_VV_M1_E32_MASK = 3524,
-  PseudoVFSUB_VV_M1_E64 = 3525,
-  PseudoVFSUB_VV_M1_E64_MASK = 3526,
-  PseudoVFSUB_VV_M2_E16 = 3527,
-  PseudoVFSUB_VV_M2_E16_MASK = 3528,
-  PseudoVFSUB_VV_M2_E32 = 3529,
-  PseudoVFSUB_VV_M2_E32_MASK = 3530,
-  PseudoVFSUB_VV_M2_E64 = 3531,
-  PseudoVFSUB_VV_M2_E64_MASK = 3532,
-  PseudoVFSUB_VV_M4_E16 = 3533,
-  PseudoVFSUB_VV_M4_E16_MASK = 3534,
-  PseudoVFSUB_VV_M4_E32 = 3535,
-  PseudoVFSUB_VV_M4_E32_MASK = 3536,
-  PseudoVFSUB_VV_M4_E64 = 3537,
-  PseudoVFSUB_VV_M4_E64_MASK = 3538,
-  PseudoVFSUB_VV_M8_E16 = 3539,
-  PseudoVFSUB_VV_M8_E16_MASK = 3540,
-  PseudoVFSUB_VV_M8_E32 = 3541,
-  PseudoVFSUB_VV_M8_E32_MASK = 3542,
-  PseudoVFSUB_VV_M8_E64 = 3543,
-  PseudoVFSUB_VV_M8_E64_MASK = 3544,
-  PseudoVFSUB_VV_MF2_E16 = 3545,
-  PseudoVFSUB_VV_MF2_E16_MASK = 3546,
-  PseudoVFSUB_VV_MF2_E32 = 3547,
-  PseudoVFSUB_VV_MF2_E32_MASK = 3548,
-  PseudoVFSUB_VV_MF4_E16 = 3549,
-  PseudoVFSUB_VV_MF4_E16_MASK = 3550,
-  PseudoVFWADD_VFPR16_M1_E16 = 3551,
-  PseudoVFWADD_VFPR16_M1_E16_MASK = 3552,
-  PseudoVFWADD_VFPR16_M2_E16 = 3553,
-  PseudoVFWADD_VFPR16_M2_E16_MASK = 3554,
-  PseudoVFWADD_VFPR16_M4_E16 = 3555,
-  PseudoVFWADD_VFPR16_M4_E16_MASK = 3556,
-  PseudoVFWADD_VFPR16_MF2_E16 = 3557,
-  PseudoVFWADD_VFPR16_MF2_E16_MASK = 3558,
-  PseudoVFWADD_VFPR16_MF4_E16 = 3559,
-  PseudoVFWADD_VFPR16_MF4_E16_MASK = 3560,
-  PseudoVFWADD_VFPR32_M1_E32 = 3561,
-  PseudoVFWADD_VFPR32_M1_E32_MASK = 3562,
-  PseudoVFWADD_VFPR32_M2_E32 = 3563,
-  PseudoVFWADD_VFPR32_M2_E32_MASK = 3564,
-  PseudoVFWADD_VFPR32_M4_E32 = 3565,
-  PseudoVFWADD_VFPR32_M4_E32_MASK = 3566,
-  PseudoVFWADD_VFPR32_MF2_E32 = 3567,
-  PseudoVFWADD_VFPR32_MF2_E32_MASK = 3568,
-  PseudoVFWADD_VV_M1_E16 = 3569,
-  PseudoVFWADD_VV_M1_E16_MASK = 3570,
-  PseudoVFWADD_VV_M1_E32 = 3571,
-  PseudoVFWADD_VV_M1_E32_MASK = 3572,
-  PseudoVFWADD_VV_M2_E16 = 3573,
-  PseudoVFWADD_VV_M2_E16_MASK = 3574,
-  PseudoVFWADD_VV_M2_E32 = 3575,
-  PseudoVFWADD_VV_M2_E32_MASK = 3576,
-  PseudoVFWADD_VV_M4_E16 = 3577,
-  PseudoVFWADD_VV_M4_E16_MASK = 3578,
-  PseudoVFWADD_VV_M4_E32 = 3579,
-  PseudoVFWADD_VV_M4_E32_MASK = 3580,
-  PseudoVFWADD_VV_MF2_E16 = 3581,
-  PseudoVFWADD_VV_MF2_E16_MASK = 3582,
-  PseudoVFWADD_VV_MF2_E32 = 3583,
-  PseudoVFWADD_VV_MF2_E32_MASK = 3584,
-  PseudoVFWADD_VV_MF4_E16 = 3585,
-  PseudoVFWADD_VV_MF4_E16_MASK = 3586,
-  PseudoVFWADD_WFPR16_M1_E16 = 3587,
-  PseudoVFWADD_WFPR16_M1_E16_MASK = 3588,
-  PseudoVFWADD_WFPR16_M2_E16 = 3589,
-  PseudoVFWADD_WFPR16_M2_E16_MASK = 3590,
-  PseudoVFWADD_WFPR16_M4_E16 = 3591,
-  PseudoVFWADD_WFPR16_M4_E16_MASK = 3592,
-  PseudoVFWADD_WFPR16_MF2_E16 = 3593,
-  PseudoVFWADD_WFPR16_MF2_E16_MASK = 3594,
-  PseudoVFWADD_WFPR16_MF4_E16 = 3595,
-  PseudoVFWADD_WFPR16_MF4_E16_MASK = 3596,
-  PseudoVFWADD_WFPR32_M1_E32 = 3597,
-  PseudoVFWADD_WFPR32_M1_E32_MASK = 3598,
-  PseudoVFWADD_WFPR32_M2_E32 = 3599,
-  PseudoVFWADD_WFPR32_M2_E32_MASK = 3600,
-  PseudoVFWADD_WFPR32_M4_E32 = 3601,
-  PseudoVFWADD_WFPR32_M4_E32_MASK = 3602,
-  PseudoVFWADD_WFPR32_MF2_E32 = 3603,
-  PseudoVFWADD_WFPR32_MF2_E32_MASK = 3604,
-  PseudoVFWADD_WV_M1_E16 = 3605,
-  PseudoVFWADD_WV_M1_E16_MASK = 3606,
-  PseudoVFWADD_WV_M1_E16_MASK_TIED = 3607,
-  PseudoVFWADD_WV_M1_E16_TIED = 3608,
-  PseudoVFWADD_WV_M1_E32 = 3609,
-  PseudoVFWADD_WV_M1_E32_MASK = 3610,
-  PseudoVFWADD_WV_M1_E32_MASK_TIED = 3611,
-  PseudoVFWADD_WV_M1_E32_TIED = 3612,
-  PseudoVFWADD_WV_M2_E16 = 3613,
-  PseudoVFWADD_WV_M2_E16_MASK = 3614,
-  PseudoVFWADD_WV_M2_E16_MASK_TIED = 3615,
-  PseudoVFWADD_WV_M2_E16_TIED = 3616,
-  PseudoVFWADD_WV_M2_E32 = 3617,
-  PseudoVFWADD_WV_M2_E32_MASK = 3618,
-  PseudoVFWADD_WV_M2_E32_MASK_TIED = 3619,
-  PseudoVFWADD_WV_M2_E32_TIED = 3620,
-  PseudoVFWADD_WV_M4_E16 = 3621,
-  PseudoVFWADD_WV_M4_E16_MASK = 3622,
-  PseudoVFWADD_WV_M4_E16_MASK_TIED = 3623,
-  PseudoVFWADD_WV_M4_E16_TIED = 3624,
-  PseudoVFWADD_WV_M4_E32 = 3625,
-  PseudoVFWADD_WV_M4_E32_MASK = 3626,
-  PseudoVFWADD_WV_M4_E32_MASK_TIED = 3627,
-  PseudoVFWADD_WV_M4_E32_TIED = 3628,
-  PseudoVFWADD_WV_MF2_E16 = 3629,
-  PseudoVFWADD_WV_MF2_E16_MASK = 3630,
-  PseudoVFWADD_WV_MF2_E16_MASK_TIED = 3631,
-  PseudoVFWADD_WV_MF2_E16_TIED = 3632,
-  PseudoVFWADD_WV_MF2_E32 = 3633,
-  PseudoVFWADD_WV_MF2_E32_MASK = 3634,
-  PseudoVFWADD_WV_MF2_E32_MASK_TIED = 3635,
-  PseudoVFWADD_WV_MF2_E32_TIED = 3636,
-  PseudoVFWADD_WV_MF4_E16 = 3637,
-  PseudoVFWADD_WV_MF4_E16_MASK = 3638,
-  PseudoVFWADD_WV_MF4_E16_MASK_TIED = 3639,
-  PseudoVFWADD_WV_MF4_E16_TIED = 3640,
-  PseudoVFWCVTBF16_F_F_V_M1_E16 = 3641,
-  PseudoVFWCVTBF16_F_F_V_M1_E16_MASK = 3642,
-  PseudoVFWCVTBF16_F_F_V_M1_E32 = 3643,
-  PseudoVFWCVTBF16_F_F_V_M1_E32_MASK = 3644,
-  PseudoVFWCVTBF16_F_F_V_M2_E16 = 3645,
-  PseudoVFWCVTBF16_F_F_V_M2_E16_MASK = 3646,
-  PseudoVFWCVTBF16_F_F_V_M2_E32 = 3647,
-  PseudoVFWCVTBF16_F_F_V_M2_E32_MASK = 3648,
-  PseudoVFWCVTBF16_F_F_V_M4_E16 = 3649,
-  PseudoVFWCVTBF16_F_F_V_M4_E16_MASK = 3650,
-  PseudoVFWCVTBF16_F_F_V_M4_E32 = 3651,
-  PseudoVFWCVTBF16_F_F_V_M4_E32_MASK = 3652,
-  PseudoVFWCVTBF16_F_F_V_MF2_E16 = 3653,
-  PseudoVFWCVTBF16_F_F_V_MF2_E16_MASK = 3654,
-  PseudoVFWCVTBF16_F_F_V_MF2_E32 = 3655,
-  PseudoVFWCVTBF16_F_F_V_MF2_E32_MASK = 3656,
-  PseudoVFWCVTBF16_F_F_V_MF4_E16 = 3657,
-  PseudoVFWCVTBF16_F_F_V_MF4_E16_MASK = 3658,
-  PseudoVFWCVT_F_F_V_M1_E16 = 3659,
-  PseudoVFWCVT_F_F_V_M1_E16_MASK = 3660,
-  PseudoVFWCVT_F_F_V_M1_E32 = 3661,
-  PseudoVFWCVT_F_F_V_M1_E32_MASK = 3662,
-  PseudoVFWCVT_F_F_V_M2_E16 = 3663,
-  PseudoVFWCVT_F_F_V_M2_E16_MASK = 3664,
-  PseudoVFWCVT_F_F_V_M2_E32 = 3665,
-  PseudoVFWCVT_F_F_V_M2_E32_MASK = 3666,
-  PseudoVFWCVT_F_F_V_M4_E16 = 3667,
-  PseudoVFWCVT_F_F_V_M4_E16_MASK = 3668,
-  PseudoVFWCVT_F_F_V_M4_E32 = 3669,
-  PseudoVFWCVT_F_F_V_M4_E32_MASK = 3670,
-  PseudoVFWCVT_F_F_V_MF2_E16 = 3671,
-  PseudoVFWCVT_F_F_V_MF2_E16_MASK = 3672,
-  PseudoVFWCVT_F_F_V_MF2_E32 = 3673,
-  PseudoVFWCVT_F_F_V_MF2_E32_MASK = 3674,
-  PseudoVFWCVT_F_F_V_MF4_E16 = 3675,
-  PseudoVFWCVT_F_F_V_MF4_E16_MASK = 3676,
-  PseudoVFWCVT_F_XU_V_M1_E16 = 3677,
-  PseudoVFWCVT_F_XU_V_M1_E16_MASK = 3678,
-  PseudoVFWCVT_F_XU_V_M1_E32 = 3679,
-  PseudoVFWCVT_F_XU_V_M1_E32_MASK = 3680,
-  PseudoVFWCVT_F_XU_V_M1_E8 = 3681,
-  PseudoVFWCVT_F_XU_V_M1_E8_MASK = 3682,
-  PseudoVFWCVT_F_XU_V_M2_E16 = 3683,
-  PseudoVFWCVT_F_XU_V_M2_E16_MASK = 3684,
-  PseudoVFWCVT_F_XU_V_M2_E32 = 3685,
-  PseudoVFWCVT_F_XU_V_M2_E32_MASK = 3686,
-  PseudoVFWCVT_F_XU_V_M2_E8 = 3687,
-  PseudoVFWCVT_F_XU_V_M2_E8_MASK = 3688,
-  PseudoVFWCVT_F_XU_V_M4_E16 = 3689,
-  PseudoVFWCVT_F_XU_V_M4_E16_MASK = 3690,
-  PseudoVFWCVT_F_XU_V_M4_E32 = 3691,
-  PseudoVFWCVT_F_XU_V_M4_E32_MASK = 3692,
-  PseudoVFWCVT_F_XU_V_M4_E8 = 3693,
-  PseudoVFWCVT_F_XU_V_M4_E8_MASK = 3694,
-  PseudoVFWCVT_F_XU_V_MF2_E16 = 3695,
-  PseudoVFWCVT_F_XU_V_MF2_E16_MASK = 3696,
-  PseudoVFWCVT_F_XU_V_MF2_E32 = 3697,
-  PseudoVFWCVT_F_XU_V_MF2_E32_MASK = 3698,
-  PseudoVFWCVT_F_XU_V_MF2_E8 = 3699,
-  PseudoVFWCVT_F_XU_V_MF2_E8_MASK = 3700,
-  PseudoVFWCVT_F_XU_V_MF4_E16 = 3701,
-  PseudoVFWCVT_F_XU_V_MF4_E16_MASK = 3702,
-  PseudoVFWCVT_F_XU_V_MF4_E8 = 3703,
-  PseudoVFWCVT_F_XU_V_MF4_E8_MASK = 3704,
-  PseudoVFWCVT_F_XU_V_MF8_E8 = 3705,
-  PseudoVFWCVT_F_XU_V_MF8_E8_MASK = 3706,
-  PseudoVFWCVT_F_X_V_M1_E16 = 3707,
-  PseudoVFWCVT_F_X_V_M1_E16_MASK = 3708,
-  PseudoVFWCVT_F_X_V_M1_E32 = 3709,
-  PseudoVFWCVT_F_X_V_M1_E32_MASK = 3710,
-  PseudoVFWCVT_F_X_V_M1_E8 = 3711,
-  PseudoVFWCVT_F_X_V_M1_E8_MASK = 3712,
-  PseudoVFWCVT_F_X_V_M2_E16 = 3713,
-  PseudoVFWCVT_F_X_V_M2_E16_MASK = 3714,
-  PseudoVFWCVT_F_X_V_M2_E32 = 3715,
-  PseudoVFWCVT_F_X_V_M2_E32_MASK = 3716,
-  PseudoVFWCVT_F_X_V_M2_E8 = 3717,
-  PseudoVFWCVT_F_X_V_M2_E8_MASK = 3718,
-  PseudoVFWCVT_F_X_V_M4_E16 = 3719,
-  PseudoVFWCVT_F_X_V_M4_E16_MASK = 3720,
-  PseudoVFWCVT_F_X_V_M4_E32 = 3721,
-  PseudoVFWCVT_F_X_V_M4_E32_MASK = 3722,
-  PseudoVFWCVT_F_X_V_M4_E8 = 3723,
-  PseudoVFWCVT_F_X_V_M4_E8_MASK = 3724,
-  PseudoVFWCVT_F_X_V_MF2_E16 = 3725,
-  PseudoVFWCVT_F_X_V_MF2_E16_MASK = 3726,
-  PseudoVFWCVT_F_X_V_MF2_E32 = 3727,
-  PseudoVFWCVT_F_X_V_MF2_E32_MASK = 3728,
-  PseudoVFWCVT_F_X_V_MF2_E8 = 3729,
-  PseudoVFWCVT_F_X_V_MF2_E8_MASK = 3730,
-  PseudoVFWCVT_F_X_V_MF4_E16 = 3731,
-  PseudoVFWCVT_F_X_V_MF4_E16_MASK = 3732,
-  PseudoVFWCVT_F_X_V_MF4_E8 = 3733,
-  PseudoVFWCVT_F_X_V_MF4_E8_MASK = 3734,
-  PseudoVFWCVT_F_X_V_MF8_E8 = 3735,
-  PseudoVFWCVT_F_X_V_MF8_E8_MASK = 3736,
-  PseudoVFWCVT_RTZ_XU_F_V_M1 = 3737,
-  PseudoVFWCVT_RTZ_XU_F_V_M1_MASK = 3738,
-  PseudoVFWCVT_RTZ_XU_F_V_M2 = 3739,
-  PseudoVFWCVT_RTZ_XU_F_V_M2_MASK = 3740,
-  PseudoVFWCVT_RTZ_XU_F_V_M4 = 3741,
-  PseudoVFWCVT_RTZ_XU_F_V_M4_MASK = 3742,
-  PseudoVFWCVT_RTZ_XU_F_V_MF2 = 3743,
-  PseudoVFWCVT_RTZ_XU_F_V_MF2_MASK = 3744,
-  PseudoVFWCVT_RTZ_XU_F_V_MF4 = 3745,
-  PseudoVFWCVT_RTZ_XU_F_V_MF4_MASK = 3746,
-  PseudoVFWCVT_RTZ_X_F_V_M1 = 3747,
-  PseudoVFWCVT_RTZ_X_F_V_M1_MASK = 3748,
-  PseudoVFWCVT_RTZ_X_F_V_M2 = 3749,
-  PseudoVFWCVT_RTZ_X_F_V_M2_MASK = 3750,
-  PseudoVFWCVT_RTZ_X_F_V_M4 = 3751,
-  PseudoVFWCVT_RTZ_X_F_V_M4_MASK = 3752,
-  PseudoVFWCVT_RTZ_X_F_V_MF2 = 3753,
-  PseudoVFWCVT_RTZ_X_F_V_MF2_MASK = 3754,
-  PseudoVFWCVT_RTZ_X_F_V_MF4 = 3755,
-  PseudoVFWCVT_RTZ_X_F_V_MF4_MASK = 3756,
-  PseudoVFWCVT_XU_F_V_M1 = 3757,
-  PseudoVFWCVT_XU_F_V_M1_MASK = 3758,
-  PseudoVFWCVT_XU_F_V_M2 = 3759,
-  PseudoVFWCVT_XU_F_V_M2_MASK = 3760,
-  PseudoVFWCVT_XU_F_V_M4 = 3761,
-  PseudoVFWCVT_XU_F_V_M4_MASK = 3762,
-  PseudoVFWCVT_XU_F_V_MF2 = 3763,
-  PseudoVFWCVT_XU_F_V_MF2_MASK = 3764,
-  PseudoVFWCVT_XU_F_V_MF4 = 3765,
-  PseudoVFWCVT_XU_F_V_MF4_MASK = 3766,
-  PseudoVFWCVT_X_F_V_M1 = 3767,
-  PseudoVFWCVT_X_F_V_M1_MASK = 3768,
-  PseudoVFWCVT_X_F_V_M2 = 3769,
-  PseudoVFWCVT_X_F_V_M2_MASK = 3770,
-  PseudoVFWCVT_X_F_V_M4 = 3771,
-  PseudoVFWCVT_X_F_V_M4_MASK = 3772,
-  PseudoVFWCVT_X_F_V_MF2 = 3773,
-  PseudoVFWCVT_X_F_V_MF2_MASK = 3774,
-  PseudoVFWCVT_X_F_V_MF4 = 3775,
-  PseudoVFWCVT_X_F_V_MF4_MASK = 3776,
-  PseudoVFWMACCBF16_VFPR16_M1_E16 = 3777,
-  PseudoVFWMACCBF16_VFPR16_M1_E16_MASK = 3778,
-  PseudoVFWMACCBF16_VFPR16_M2_E16 = 3779,
-  PseudoVFWMACCBF16_VFPR16_M2_E16_MASK = 3780,
-  PseudoVFWMACCBF16_VFPR16_M4_E16 = 3781,
-  PseudoVFWMACCBF16_VFPR16_M4_E16_MASK = 3782,
-  PseudoVFWMACCBF16_VFPR16_MF2_E16 = 3783,
-  PseudoVFWMACCBF16_VFPR16_MF2_E16_MASK = 3784,
-  PseudoVFWMACCBF16_VFPR16_MF4_E16 = 3785,
-  PseudoVFWMACCBF16_VFPR16_MF4_E16_MASK = 3786,
-  PseudoVFWMACCBF16_VV_M1_E16 = 3787,
-  PseudoVFWMACCBF16_VV_M1_E16_MASK = 3788,
-  PseudoVFWMACCBF16_VV_M1_E32 = 3789,
-  PseudoVFWMACCBF16_VV_M1_E32_MASK = 3790,
-  PseudoVFWMACCBF16_VV_M2_E16 = 3791,
-  PseudoVFWMACCBF16_VV_M2_E16_MASK = 3792,
-  PseudoVFWMACCBF16_VV_M2_E32 = 3793,
-  PseudoVFWMACCBF16_VV_M2_E32_MASK = 3794,
-  PseudoVFWMACCBF16_VV_M4_E16 = 3795,
-  PseudoVFWMACCBF16_VV_M4_E16_MASK = 3796,
-  PseudoVFWMACCBF16_VV_M4_E32 = 3797,
-  PseudoVFWMACCBF16_VV_M4_E32_MASK = 3798,
-  PseudoVFWMACCBF16_VV_MF2_E16 = 3799,
-  PseudoVFWMACCBF16_VV_MF2_E16_MASK = 3800,
-  PseudoVFWMACCBF16_VV_MF2_E32 = 3801,
-  PseudoVFWMACCBF16_VV_MF2_E32_MASK = 3802,
-  PseudoVFWMACCBF16_VV_MF4_E16 = 3803,
-  PseudoVFWMACCBF16_VV_MF4_E16_MASK = 3804,
-  PseudoVFWMACC_VFPR16_M1_E16 = 3805,
-  PseudoVFWMACC_VFPR16_M1_E16_MASK = 3806,
-  PseudoVFWMACC_VFPR16_M2_E16 = 3807,
-  PseudoVFWMACC_VFPR16_M2_E16_MASK = 3808,
-  PseudoVFWMACC_VFPR16_M4_E16 = 3809,
-  PseudoVFWMACC_VFPR16_M4_E16_MASK = 3810,
-  PseudoVFWMACC_VFPR16_MF2_E16 = 3811,
-  PseudoVFWMACC_VFPR16_MF2_E16_MASK = 3812,
-  PseudoVFWMACC_VFPR16_MF4_E16 = 3813,
-  PseudoVFWMACC_VFPR16_MF4_E16_MASK = 3814,
-  PseudoVFWMACC_VFPR32_M1_E32 = 3815,
-  PseudoVFWMACC_VFPR32_M1_E32_MASK = 3816,
-  PseudoVFWMACC_VFPR32_M2_E32 = 3817,
-  PseudoVFWMACC_VFPR32_M2_E32_MASK = 3818,
-  PseudoVFWMACC_VFPR32_M4_E32 = 3819,
-  PseudoVFWMACC_VFPR32_M4_E32_MASK = 3820,
-  PseudoVFWMACC_VFPR32_MF2_E32 = 3821,
-  PseudoVFWMACC_VFPR32_MF2_E32_MASK = 3822,
-  PseudoVFWMACC_VV_M1_E16 = 3823,
-  PseudoVFWMACC_VV_M1_E16_MASK = 3824,
-  PseudoVFWMACC_VV_M1_E32 = 3825,
-  PseudoVFWMACC_VV_M1_E32_MASK = 3826,
-  PseudoVFWMACC_VV_M2_E16 = 3827,
-  PseudoVFWMACC_VV_M2_E16_MASK = 3828,
-  PseudoVFWMACC_VV_M2_E32 = 3829,
-  PseudoVFWMACC_VV_M2_E32_MASK = 3830,
-  PseudoVFWMACC_VV_M4_E16 = 3831,
-  PseudoVFWMACC_VV_M4_E16_MASK = 3832,
-  PseudoVFWMACC_VV_M4_E32 = 3833,
-  PseudoVFWMACC_VV_M4_E32_MASK = 3834,
-  PseudoVFWMACC_VV_MF2_E16 = 3835,
-  PseudoVFWMACC_VV_MF2_E16_MASK = 3836,
-  PseudoVFWMACC_VV_MF2_E32 = 3837,
-  PseudoVFWMACC_VV_MF2_E32_MASK = 3838,
-  PseudoVFWMACC_VV_MF4_E16 = 3839,
-  PseudoVFWMACC_VV_MF4_E16_MASK = 3840,
-  PseudoVFWMSAC_VFPR16_M1_E16 = 3841,
-  PseudoVFWMSAC_VFPR16_M1_E16_MASK = 3842,
-  PseudoVFWMSAC_VFPR16_M2_E16 = 3843,
-  PseudoVFWMSAC_VFPR16_M2_E16_MASK = 3844,
-  PseudoVFWMSAC_VFPR16_M4_E16 = 3845,
-  PseudoVFWMSAC_VFPR16_M4_E16_MASK = 3846,
-  PseudoVFWMSAC_VFPR16_MF2_E16 = 3847,
-  PseudoVFWMSAC_VFPR16_MF2_E16_MASK = 3848,
-  PseudoVFWMSAC_VFPR16_MF4_E16 = 3849,
-  PseudoVFWMSAC_VFPR16_MF4_E16_MASK = 3850,
-  PseudoVFWMSAC_VFPR32_M1_E32 = 3851,
-  PseudoVFWMSAC_VFPR32_M1_E32_MASK = 3852,
-  PseudoVFWMSAC_VFPR32_M2_E32 = 3853,
-  PseudoVFWMSAC_VFPR32_M2_E32_MASK = 3854,
-  PseudoVFWMSAC_VFPR32_M4_E32 = 3855,
-  PseudoVFWMSAC_VFPR32_M4_E32_MASK = 3856,
-  PseudoVFWMSAC_VFPR32_MF2_E32 = 3857,
-  PseudoVFWMSAC_VFPR32_MF2_E32_MASK = 3858,
-  PseudoVFWMSAC_VV_M1_E16 = 3859,
-  PseudoVFWMSAC_VV_M1_E16_MASK = 3860,
-  PseudoVFWMSAC_VV_M1_E32 = 3861,
-  PseudoVFWMSAC_VV_M1_E32_MASK = 3862,
-  PseudoVFWMSAC_VV_M2_E16 = 3863,
-  PseudoVFWMSAC_VV_M2_E16_MASK = 3864,
-  PseudoVFWMSAC_VV_M2_E32 = 3865,
-  PseudoVFWMSAC_VV_M2_E32_MASK = 3866,
-  PseudoVFWMSAC_VV_M4_E16 = 3867,
-  PseudoVFWMSAC_VV_M4_E16_MASK = 3868,
-  PseudoVFWMSAC_VV_M4_E32 = 3869,
-  PseudoVFWMSAC_VV_M4_E32_MASK = 3870,
-  PseudoVFWMSAC_VV_MF2_E16 = 3871,
-  PseudoVFWMSAC_VV_MF2_E16_MASK = 3872,
-  PseudoVFWMSAC_VV_MF2_E32 = 3873,
-  PseudoVFWMSAC_VV_MF2_E32_MASK = 3874,
-  PseudoVFWMSAC_VV_MF4_E16 = 3875,
-  PseudoVFWMSAC_VV_MF4_E16_MASK = 3876,
-  PseudoVFWMUL_VFPR16_M1_E16 = 3877,
-  PseudoVFWMUL_VFPR16_M1_E16_MASK = 3878,
-  PseudoVFWMUL_VFPR16_M2_E16 = 3879,
-  PseudoVFWMUL_VFPR16_M2_E16_MASK = 3880,
-  PseudoVFWMUL_VFPR16_M4_E16 = 3881,
-  PseudoVFWMUL_VFPR16_M4_E16_MASK = 3882,
-  PseudoVFWMUL_VFPR16_MF2_E16 = 3883,
-  PseudoVFWMUL_VFPR16_MF2_E16_MASK = 3884,
-  PseudoVFWMUL_VFPR16_MF4_E16 = 3885,
-  PseudoVFWMUL_VFPR16_MF4_E16_MASK = 3886,
-  PseudoVFWMUL_VFPR32_M1_E32 = 3887,
-  PseudoVFWMUL_VFPR32_M1_E32_MASK = 3888,
-  PseudoVFWMUL_VFPR32_M2_E32 = 3889,
-  PseudoVFWMUL_VFPR32_M2_E32_MASK = 3890,
-  PseudoVFWMUL_VFPR32_M4_E32 = 3891,
-  PseudoVFWMUL_VFPR32_M4_E32_MASK = 3892,
-  PseudoVFWMUL_VFPR32_MF2_E32 = 3893,
-  PseudoVFWMUL_VFPR32_MF2_E32_MASK = 3894,
-  PseudoVFWMUL_VV_M1_E16 = 3895,
-  PseudoVFWMUL_VV_M1_E16_MASK = 3896,
-  PseudoVFWMUL_VV_M1_E32 = 3897,
-  PseudoVFWMUL_VV_M1_E32_MASK = 3898,
-  PseudoVFWMUL_VV_M2_E16 = 3899,
-  PseudoVFWMUL_VV_M2_E16_MASK = 3900,
-  PseudoVFWMUL_VV_M2_E32 = 3901,
-  PseudoVFWMUL_VV_M2_E32_MASK = 3902,
-  PseudoVFWMUL_VV_M4_E16 = 3903,
-  PseudoVFWMUL_VV_M4_E16_MASK = 3904,
-  PseudoVFWMUL_VV_M4_E32 = 3905,
-  PseudoVFWMUL_VV_M4_E32_MASK = 3906,
-  PseudoVFWMUL_VV_MF2_E16 = 3907,
-  PseudoVFWMUL_VV_MF2_E16_MASK = 3908,
-  PseudoVFWMUL_VV_MF2_E32 = 3909,
-  PseudoVFWMUL_VV_MF2_E32_MASK = 3910,
-  PseudoVFWMUL_VV_MF4_E16 = 3911,
-  PseudoVFWMUL_VV_MF4_E16_MASK = 3912,
-  PseudoVFWNMACC_VFPR16_M1_E16 = 3913,
-  PseudoVFWNMACC_VFPR16_M1_E16_MASK = 3914,
-  PseudoVFWNMACC_VFPR16_M2_E16 = 3915,
-  PseudoVFWNMACC_VFPR16_M2_E16_MASK = 3916,
-  PseudoVFWNMACC_VFPR16_M4_E16 = 3917,
-  PseudoVFWNMACC_VFPR16_M4_E16_MASK = 3918,
-  PseudoVFWNMACC_VFPR16_MF2_E16 = 3919,
-  PseudoVFWNMACC_VFPR16_MF2_E16_MASK = 3920,
-  PseudoVFWNMACC_VFPR16_MF4_E16 = 3921,
-  PseudoVFWNMACC_VFPR16_MF4_E16_MASK = 3922,
-  PseudoVFWNMACC_VFPR32_M1_E32 = 3923,
-  PseudoVFWNMACC_VFPR32_M1_E32_MASK = 3924,
-  PseudoVFWNMACC_VFPR32_M2_E32 = 3925,
-  PseudoVFWNMACC_VFPR32_M2_E32_MASK = 3926,
-  PseudoVFWNMACC_VFPR32_M4_E32 = 3927,
-  PseudoVFWNMACC_VFPR32_M4_E32_MASK = 3928,
-  PseudoVFWNMACC_VFPR32_MF2_E32 = 3929,
-  PseudoVFWNMACC_VFPR32_MF2_E32_MASK = 3930,
-  PseudoVFWNMACC_VV_M1_E16 = 3931,
-  PseudoVFWNMACC_VV_M1_E16_MASK = 3932,
-  PseudoVFWNMACC_VV_M1_E32 = 3933,
-  PseudoVFWNMACC_VV_M1_E32_MASK = 3934,
-  PseudoVFWNMACC_VV_M2_E16 = 3935,
-  PseudoVFWNMACC_VV_M2_E16_MASK = 3936,
-  PseudoVFWNMACC_VV_M2_E32 = 3937,
-  PseudoVFWNMACC_VV_M2_E32_MASK = 3938,
-  PseudoVFWNMACC_VV_M4_E16 = 3939,
-  PseudoVFWNMACC_VV_M4_E16_MASK = 3940,
-  PseudoVFWNMACC_VV_M4_E32 = 3941,
-  PseudoVFWNMACC_VV_M4_E32_MASK = 3942,
-  PseudoVFWNMACC_VV_MF2_E16 = 3943,
-  PseudoVFWNMACC_VV_MF2_E16_MASK = 3944,
-  PseudoVFWNMACC_VV_MF2_E32 = 3945,
-  PseudoVFWNMACC_VV_MF2_E32_MASK = 3946,
-  PseudoVFWNMACC_VV_MF4_E16 = 3947,
-  PseudoVFWNMACC_VV_MF4_E16_MASK = 3948,
-  PseudoVFWNMSAC_VFPR16_M1_E16 = 3949,
-  PseudoVFWNMSAC_VFPR16_M1_E16_MASK = 3950,
-  PseudoVFWNMSAC_VFPR16_M2_E16 = 3951,
-  PseudoVFWNMSAC_VFPR16_M2_E16_MASK = 3952,
-  PseudoVFWNMSAC_VFPR16_M4_E16 = 3953,
-  PseudoVFWNMSAC_VFPR16_M4_E16_MASK = 3954,
-  PseudoVFWNMSAC_VFPR16_MF2_E16 = 3955,
-  PseudoVFWNMSAC_VFPR16_MF2_E16_MASK = 3956,
-  PseudoVFWNMSAC_VFPR16_MF4_E16 = 3957,
-  PseudoVFWNMSAC_VFPR16_MF4_E16_MASK = 3958,
-  PseudoVFWNMSAC_VFPR32_M1_E32 = 3959,
-  PseudoVFWNMSAC_VFPR32_M1_E32_MASK = 3960,
-  PseudoVFWNMSAC_VFPR32_M2_E32 = 3961,
-  PseudoVFWNMSAC_VFPR32_M2_E32_MASK = 3962,
-  PseudoVFWNMSAC_VFPR32_M4_E32 = 3963,
-  PseudoVFWNMSAC_VFPR32_M4_E32_MASK = 3964,
-  PseudoVFWNMSAC_VFPR32_MF2_E32 = 3965,
-  PseudoVFWNMSAC_VFPR32_MF2_E32_MASK = 3966,
-  PseudoVFWNMSAC_VV_M1_E16 = 3967,
-  PseudoVFWNMSAC_VV_M1_E16_MASK = 3968,
-  PseudoVFWNMSAC_VV_M1_E32 = 3969,
-  PseudoVFWNMSAC_VV_M1_E32_MASK = 3970,
-  PseudoVFWNMSAC_VV_M2_E16 = 3971,
-  PseudoVFWNMSAC_VV_M2_E16_MASK = 3972,
-  PseudoVFWNMSAC_VV_M2_E32 = 3973,
-  PseudoVFWNMSAC_VV_M2_E32_MASK = 3974,
-  PseudoVFWNMSAC_VV_M4_E16 = 3975,
-  PseudoVFWNMSAC_VV_M4_E16_MASK = 3976,
-  PseudoVFWNMSAC_VV_M4_E32 = 3977,
-  PseudoVFWNMSAC_VV_M4_E32_MASK = 3978,
-  PseudoVFWNMSAC_VV_MF2_E16 = 3979,
-  PseudoVFWNMSAC_VV_MF2_E16_MASK = 3980,
-  PseudoVFWNMSAC_VV_MF2_E32 = 3981,
-  PseudoVFWNMSAC_VV_MF2_E32_MASK = 3982,
-  PseudoVFWNMSAC_VV_MF4_E16 = 3983,
-  PseudoVFWNMSAC_VV_MF4_E16_MASK = 3984,
-  PseudoVFWREDOSUM_VS_M1_E16 = 3985,
-  PseudoVFWREDOSUM_VS_M1_E16_MASK = 3986,
-  PseudoVFWREDOSUM_VS_M1_E32 = 3987,
-  PseudoVFWREDOSUM_VS_M1_E32_MASK = 3988,
-  PseudoVFWREDOSUM_VS_M2_E16 = 3989,
-  PseudoVFWREDOSUM_VS_M2_E16_MASK = 3990,
-  PseudoVFWREDOSUM_VS_M2_E32 = 3991,
-  PseudoVFWREDOSUM_VS_M2_E32_MASK = 3992,
-  PseudoVFWREDOSUM_VS_M4_E16 = 3993,
-  PseudoVFWREDOSUM_VS_M4_E16_MASK = 3994,
-  PseudoVFWREDOSUM_VS_M4_E32 = 3995,
-  PseudoVFWREDOSUM_VS_M4_E32_MASK = 3996,
-  PseudoVFWREDOSUM_VS_M8_E16 = 3997,
-  PseudoVFWREDOSUM_VS_M8_E16_MASK = 3998,
-  PseudoVFWREDOSUM_VS_M8_E32 = 3999,
-  PseudoVFWREDOSUM_VS_M8_E32_MASK = 4000,
-  PseudoVFWREDOSUM_VS_MF2_E16 = 4001,
-  PseudoVFWREDOSUM_VS_MF2_E16_MASK = 4002,
-  PseudoVFWREDOSUM_VS_MF2_E32 = 4003,
-  PseudoVFWREDOSUM_VS_MF2_E32_MASK = 4004,
-  PseudoVFWREDOSUM_VS_MF4_E16 = 4005,
-  PseudoVFWREDOSUM_VS_MF4_E16_MASK = 4006,
-  PseudoVFWREDUSUM_VS_M1_E16 = 4007,
-  PseudoVFWREDUSUM_VS_M1_E16_MASK = 4008,
-  PseudoVFWREDUSUM_VS_M1_E32 = 4009,
-  PseudoVFWREDUSUM_VS_M1_E32_MASK = 4010,
-  PseudoVFWREDUSUM_VS_M2_E16 = 4011,
-  PseudoVFWREDUSUM_VS_M2_E16_MASK = 4012,
-  PseudoVFWREDUSUM_VS_M2_E32 = 4013,
-  PseudoVFWREDUSUM_VS_M2_E32_MASK = 4014,
-  PseudoVFWREDUSUM_VS_M4_E16 = 4015,
-  PseudoVFWREDUSUM_VS_M4_E16_MASK = 4016,
-  PseudoVFWREDUSUM_VS_M4_E32 = 4017,
-  PseudoVFWREDUSUM_VS_M4_E32_MASK = 4018,
-  PseudoVFWREDUSUM_VS_M8_E16 = 4019,
-  PseudoVFWREDUSUM_VS_M8_E16_MASK = 4020,
-  PseudoVFWREDUSUM_VS_M8_E32 = 4021,
-  PseudoVFWREDUSUM_VS_M8_E32_MASK = 4022,
-  PseudoVFWREDUSUM_VS_MF2_E16 = 4023,
-  PseudoVFWREDUSUM_VS_MF2_E16_MASK = 4024,
-  PseudoVFWREDUSUM_VS_MF2_E32 = 4025,
-  PseudoVFWREDUSUM_VS_MF2_E32_MASK = 4026,
-  PseudoVFWREDUSUM_VS_MF4_E16 = 4027,
-  PseudoVFWREDUSUM_VS_MF4_E16_MASK = 4028,
-  PseudoVFWSUB_VFPR16_M1_E16 = 4029,
-  PseudoVFWSUB_VFPR16_M1_E16_MASK = 4030,
-  PseudoVFWSUB_VFPR16_M2_E16 = 4031,
-  PseudoVFWSUB_VFPR16_M2_E16_MASK = 4032,
-  PseudoVFWSUB_VFPR16_M4_E16 = 4033,
-  PseudoVFWSUB_VFPR16_M4_E16_MASK = 4034,
-  PseudoVFWSUB_VFPR16_MF2_E16 = 4035,
-  PseudoVFWSUB_VFPR16_MF2_E16_MASK = 4036,
-  PseudoVFWSUB_VFPR16_MF4_E16 = 4037,
-  PseudoVFWSUB_VFPR16_MF4_E16_MASK = 4038,
-  PseudoVFWSUB_VFPR32_M1_E32 = 4039,
-  PseudoVFWSUB_VFPR32_M1_E32_MASK = 4040,
-  PseudoVFWSUB_VFPR32_M2_E32 = 4041,
-  PseudoVFWSUB_VFPR32_M2_E32_MASK = 4042,
-  PseudoVFWSUB_VFPR32_M4_E32 = 4043,
-  PseudoVFWSUB_VFPR32_M4_E32_MASK = 4044,
-  PseudoVFWSUB_VFPR32_MF2_E32 = 4045,
-  PseudoVFWSUB_VFPR32_MF2_E32_MASK = 4046,
-  PseudoVFWSUB_VV_M1_E16 = 4047,
-  PseudoVFWSUB_VV_M1_E16_MASK = 4048,
-  PseudoVFWSUB_VV_M1_E32 = 4049,
-  PseudoVFWSUB_VV_M1_E32_MASK = 4050,
-  PseudoVFWSUB_VV_M2_E16 = 4051,
-  PseudoVFWSUB_VV_M2_E16_MASK = 4052,
-  PseudoVFWSUB_VV_M2_E32 = 4053,
-  PseudoVFWSUB_VV_M2_E32_MASK = 4054,
-  PseudoVFWSUB_VV_M4_E16 = 4055,
-  PseudoVFWSUB_VV_M4_E16_MASK = 4056,
-  PseudoVFWSUB_VV_M4_E32 = 4057,
-  PseudoVFWSUB_VV_M4_E32_MASK = 4058,
-  PseudoVFWSUB_VV_MF2_E16 = 4059,
-  PseudoVFWSUB_VV_MF2_E16_MASK = 4060,
-  PseudoVFWSUB_VV_MF2_E32 = 4061,
-  PseudoVFWSUB_VV_MF2_E32_MASK = 4062,
-  PseudoVFWSUB_VV_MF4_E16 = 4063,
-  PseudoVFWSUB_VV_MF4_E16_MASK = 4064,
-  PseudoVFWSUB_WFPR16_M1_E16 = 4065,
-  PseudoVFWSUB_WFPR16_M1_E16_MASK = 4066,
-  PseudoVFWSUB_WFPR16_M2_E16 = 4067,
-  PseudoVFWSUB_WFPR16_M2_E16_MASK = 4068,
-  PseudoVFWSUB_WFPR16_M4_E16 = 4069,
-  PseudoVFWSUB_WFPR16_M4_E16_MASK = 4070,
-  PseudoVFWSUB_WFPR16_MF2_E16 = 4071,
-  PseudoVFWSUB_WFPR16_MF2_E16_MASK = 4072,
-  PseudoVFWSUB_WFPR16_MF4_E16 = 4073,
-  PseudoVFWSUB_WFPR16_MF4_E16_MASK = 4074,
-  PseudoVFWSUB_WFPR32_M1_E32 = 4075,
-  PseudoVFWSUB_WFPR32_M1_E32_MASK = 4076,
-  PseudoVFWSUB_WFPR32_M2_E32 = 4077,
-  PseudoVFWSUB_WFPR32_M2_E32_MASK = 4078,
-  PseudoVFWSUB_WFPR32_M4_E32 = 4079,
-  PseudoVFWSUB_WFPR32_M4_E32_MASK = 4080,
-  PseudoVFWSUB_WFPR32_MF2_E32 = 4081,
-  PseudoVFWSUB_WFPR32_MF2_E32_MASK = 4082,
-  PseudoVFWSUB_WV_M1_E16 = 4083,
-  PseudoVFWSUB_WV_M1_E16_MASK = 4084,
-  PseudoVFWSUB_WV_M1_E16_MASK_TIED = 4085,
-  PseudoVFWSUB_WV_M1_E16_TIED = 4086,
-  PseudoVFWSUB_WV_M1_E32 = 4087,
-  PseudoVFWSUB_WV_M1_E32_MASK = 4088,
-  PseudoVFWSUB_WV_M1_E32_MASK_TIED = 4089,
-  PseudoVFWSUB_WV_M1_E32_TIED = 4090,
-  PseudoVFWSUB_WV_M2_E16 = 4091,
-  PseudoVFWSUB_WV_M2_E16_MASK = 4092,
-  PseudoVFWSUB_WV_M2_E16_MASK_TIED = 4093,
-  PseudoVFWSUB_WV_M2_E16_TIED = 4094,
-  PseudoVFWSUB_WV_M2_E32 = 4095,
-  PseudoVFWSUB_WV_M2_E32_MASK = 4096,
-  PseudoVFWSUB_WV_M2_E32_MASK_TIED = 4097,
-  PseudoVFWSUB_WV_M2_E32_TIED = 4098,
-  PseudoVFWSUB_WV_M4_E16 = 4099,
-  PseudoVFWSUB_WV_M4_E16_MASK = 4100,
-  PseudoVFWSUB_WV_M4_E16_MASK_TIED = 4101,
-  PseudoVFWSUB_WV_M4_E16_TIED = 4102,
-  PseudoVFWSUB_WV_M4_E32 = 4103,
-  PseudoVFWSUB_WV_M4_E32_MASK = 4104,
-  PseudoVFWSUB_WV_M4_E32_MASK_TIED = 4105,
-  PseudoVFWSUB_WV_M4_E32_TIED = 4106,
-  PseudoVFWSUB_WV_MF2_E16 = 4107,
-  PseudoVFWSUB_WV_MF2_E16_MASK = 4108,
-  PseudoVFWSUB_WV_MF2_E16_MASK_TIED = 4109,
-  PseudoVFWSUB_WV_MF2_E16_TIED = 4110,
-  PseudoVFWSUB_WV_MF2_E32 = 4111,
-  PseudoVFWSUB_WV_MF2_E32_MASK = 4112,
-  PseudoVFWSUB_WV_MF2_E32_MASK_TIED = 4113,
-  PseudoVFWSUB_WV_MF2_E32_TIED = 4114,
-  PseudoVFWSUB_WV_MF4_E16 = 4115,
-  PseudoVFWSUB_WV_MF4_E16_MASK = 4116,
-  PseudoVFWSUB_WV_MF4_E16_MASK_TIED = 4117,
-  PseudoVFWSUB_WV_MF4_E16_TIED = 4118,
-  PseudoVGHSH_VV_M1 = 4119,
-  PseudoVGHSH_VV_M2 = 4120,
-  PseudoVGHSH_VV_M4 = 4121,
-  PseudoVGHSH_VV_M8 = 4122,
-  PseudoVGHSH_VV_MF2 = 4123,
-  PseudoVGMUL_VV_M1 = 4124,
-  PseudoVGMUL_VV_M2 = 4125,
-  PseudoVGMUL_VV_M4 = 4126,
-  PseudoVGMUL_VV_M8 = 4127,
-  PseudoVGMUL_VV_MF2 = 4128,
-  PseudoVID_V_M1 = 4129,
-  PseudoVID_V_M1_MASK = 4130,
-  PseudoVID_V_M2 = 4131,
-  PseudoVID_V_M2_MASK = 4132,
-  PseudoVID_V_M4 = 4133,
-  PseudoVID_V_M4_MASK = 4134,
-  PseudoVID_V_M8 = 4135,
-  PseudoVID_V_M8_MASK = 4136,
-  PseudoVID_V_MF2 = 4137,
-  PseudoVID_V_MF2_MASK = 4138,
-  PseudoVID_V_MF4 = 4139,
-  PseudoVID_V_MF4_MASK = 4140,
-  PseudoVID_V_MF8 = 4141,
-  PseudoVID_V_MF8_MASK = 4142,
-  PseudoVIOTA_M_M1 = 4143,
-  PseudoVIOTA_M_M1_MASK = 4144,
-  PseudoVIOTA_M_M2 = 4145,
-  PseudoVIOTA_M_M2_MASK = 4146,
-  PseudoVIOTA_M_M4 = 4147,
-  PseudoVIOTA_M_M4_MASK = 4148,
-  PseudoVIOTA_M_M8 = 4149,
-  PseudoVIOTA_M_M8_MASK = 4150,
-  PseudoVIOTA_M_MF2 = 4151,
-  PseudoVIOTA_M_MF2_MASK = 4152,
-  PseudoVIOTA_M_MF4 = 4153,
-  PseudoVIOTA_M_MF4_MASK = 4154,
-  PseudoVIOTA_M_MF8 = 4155,
-  PseudoVIOTA_M_MF8_MASK = 4156,
-  PseudoVLE16FF_V_M1 = 4157,
-  PseudoVLE16FF_V_M1_MASK = 4158,
-  PseudoVLE16FF_V_M2 = 4159,
-  PseudoVLE16FF_V_M2_MASK = 4160,
-  PseudoVLE16FF_V_M4 = 4161,
-  PseudoVLE16FF_V_M4_MASK = 4162,
-  PseudoVLE16FF_V_M8 = 4163,
-  PseudoVLE16FF_V_M8_MASK = 4164,
-  PseudoVLE16FF_V_MF2 = 4165,
-  PseudoVLE16FF_V_MF2_MASK = 4166,
-  PseudoVLE16FF_V_MF4 = 4167,
-  PseudoVLE16FF_V_MF4_MASK = 4168,
-  PseudoVLE16_V_M1 = 4169,
-  PseudoVLE16_V_M1_MASK = 4170,
-  PseudoVLE16_V_M2 = 4171,
-  PseudoVLE16_V_M2_MASK = 4172,
-  PseudoVLE16_V_M4 = 4173,
-  PseudoVLE16_V_M4_MASK = 4174,
-  PseudoVLE16_V_M8 = 4175,
-  PseudoVLE16_V_M8_MASK = 4176,
-  PseudoVLE16_V_MF2 = 4177,
-  PseudoVLE16_V_MF2_MASK = 4178,
-  PseudoVLE16_V_MF4 = 4179,
-  PseudoVLE16_V_MF4_MASK = 4180,
-  PseudoVLE32FF_V_M1 = 4181,
-  PseudoVLE32FF_V_M1_MASK = 4182,
-  PseudoVLE32FF_V_M2 = 4183,
-  PseudoVLE32FF_V_M2_MASK = 4184,
-  PseudoVLE32FF_V_M4 = 4185,
-  PseudoVLE32FF_V_M4_MASK = 4186,
-  PseudoVLE32FF_V_M8 = 4187,
-  PseudoVLE32FF_V_M8_MASK = 4188,
-  PseudoVLE32FF_V_MF2 = 4189,
-  PseudoVLE32FF_V_MF2_MASK = 4190,
-  PseudoVLE32_V_M1 = 4191,
-  PseudoVLE32_V_M1_MASK = 4192,
-  PseudoVLE32_V_M2 = 4193,
-  PseudoVLE32_V_M2_MASK = 4194,
-  PseudoVLE32_V_M4 = 4195,
-  PseudoVLE32_V_M4_MASK = 4196,
-  PseudoVLE32_V_M8 = 4197,
-  PseudoVLE32_V_M8_MASK = 4198,
-  PseudoVLE32_V_MF2 = 4199,
-  PseudoVLE32_V_MF2_MASK = 4200,
-  PseudoVLE64FF_V_M1 = 4201,
-  PseudoVLE64FF_V_M1_MASK = 4202,
-  PseudoVLE64FF_V_M2 = 4203,
-  PseudoVLE64FF_V_M2_MASK = 4204,
-  PseudoVLE64FF_V_M4 = 4205,
-  PseudoVLE64FF_V_M4_MASK = 4206,
-  PseudoVLE64FF_V_M8 = 4207,
-  PseudoVLE64FF_V_M8_MASK = 4208,
-  PseudoVLE64_V_M1 = 4209,
-  PseudoVLE64_V_M1_MASK = 4210,
-  PseudoVLE64_V_M2 = 4211,
-  PseudoVLE64_V_M2_MASK = 4212,
-  PseudoVLE64_V_M4 = 4213,
-  PseudoVLE64_V_M4_MASK = 4214,
-  PseudoVLE64_V_M8 = 4215,
-  PseudoVLE64_V_M8_MASK = 4216,
-  PseudoVLE8FF_V_M1 = 4217,
-  PseudoVLE8FF_V_M1_MASK = 4218,
-  PseudoVLE8FF_V_M2 = 4219,
-  PseudoVLE8FF_V_M2_MASK = 4220,
-  PseudoVLE8FF_V_M4 = 4221,
-  PseudoVLE8FF_V_M4_MASK = 4222,
-  PseudoVLE8FF_V_M8 = 4223,
-  PseudoVLE8FF_V_M8_MASK = 4224,
-  PseudoVLE8FF_V_MF2 = 4225,
-  PseudoVLE8FF_V_MF2_MASK = 4226,
-  PseudoVLE8FF_V_MF4 = 4227,
-  PseudoVLE8FF_V_MF4_MASK = 4228,
-  PseudoVLE8FF_V_MF8 = 4229,
-  PseudoVLE8FF_V_MF8_MASK = 4230,
-  PseudoVLE8_V_M1 = 4231,
-  PseudoVLE8_V_M1_MASK = 4232,
-  PseudoVLE8_V_M2 = 4233,
-  PseudoVLE8_V_M2_MASK = 4234,
-  PseudoVLE8_V_M4 = 4235,
-  PseudoVLE8_V_M4_MASK = 4236,
-  PseudoVLE8_V_M8 = 4237,
-  PseudoVLE8_V_M8_MASK = 4238,
-  PseudoVLE8_V_MF2 = 4239,
-  PseudoVLE8_V_MF2_MASK = 4240,
-  PseudoVLE8_V_MF4 = 4241,
-  PseudoVLE8_V_MF4_MASK = 4242,
-  PseudoVLE8_V_MF8 = 4243,
-  PseudoVLE8_V_MF8_MASK = 4244,
-  PseudoVLM_V_B1 = 4245,
-  PseudoVLM_V_B16 = 4246,
-  PseudoVLM_V_B2 = 4247,
-  PseudoVLM_V_B32 = 4248,
-  PseudoVLM_V_B4 = 4249,
-  PseudoVLM_V_B64 = 4250,
-  PseudoVLM_V_B8 = 4251,
-  PseudoVLOXEI16_V_M1_M1 = 4252,
-  PseudoVLOXEI16_V_M1_M1_MASK = 4253,
-  PseudoVLOXEI16_V_M1_M2 = 4254,
-  PseudoVLOXEI16_V_M1_M2_MASK = 4255,
-  PseudoVLOXEI16_V_M1_M4 = 4256,
-  PseudoVLOXEI16_V_M1_M4_MASK = 4257,
-  PseudoVLOXEI16_V_M1_MF2 = 4258,
-  PseudoVLOXEI16_V_M1_MF2_MASK = 4259,
-  PseudoVLOXEI16_V_M2_M1 = 4260,
-  PseudoVLOXEI16_V_M2_M1_MASK = 4261,
-  PseudoVLOXEI16_V_M2_M2 = 4262,
-  PseudoVLOXEI16_V_M2_M2_MASK = 4263,
-  PseudoVLOXEI16_V_M2_M4 = 4264,
-  PseudoVLOXEI16_V_M2_M4_MASK = 4265,
-  PseudoVLOXEI16_V_M2_M8 = 4266,
-  PseudoVLOXEI16_V_M2_M8_MASK = 4267,
-  PseudoVLOXEI16_V_M4_M2 = 4268,
-  PseudoVLOXEI16_V_M4_M2_MASK = 4269,
-  PseudoVLOXEI16_V_M4_M4 = 4270,
-  PseudoVLOXEI16_V_M4_M4_MASK = 4271,
-  PseudoVLOXEI16_V_M4_M8 = 4272,
-  PseudoVLOXEI16_V_M4_M8_MASK = 4273,
-  PseudoVLOXEI16_V_M8_M4 = 4274,
-  PseudoVLOXEI16_V_M8_M4_MASK = 4275,
-  PseudoVLOXEI16_V_M8_M8 = 4276,
-  PseudoVLOXEI16_V_M8_M8_MASK = 4277,
-  PseudoVLOXEI16_V_MF2_M1 = 4278,
-  PseudoVLOXEI16_V_MF2_M1_MASK = 4279,
-  PseudoVLOXEI16_V_MF2_M2 = 4280,
-  PseudoVLOXEI16_V_MF2_M2_MASK = 4281,
-  PseudoVLOXEI16_V_MF2_MF2 = 4282,
-  PseudoVLOXEI16_V_MF2_MF2_MASK = 4283,
-  PseudoVLOXEI16_V_MF2_MF4 = 4284,
-  PseudoVLOXEI16_V_MF2_MF4_MASK = 4285,
-  PseudoVLOXEI16_V_MF4_M1 = 4286,
-  PseudoVLOXEI16_V_MF4_M1_MASK = 4287,
-  PseudoVLOXEI16_V_MF4_MF2 = 4288,
-  PseudoVLOXEI16_V_MF4_MF2_MASK = 4289,
-  PseudoVLOXEI16_V_MF4_MF4 = 4290,
-  PseudoVLOXEI16_V_MF4_MF4_MASK = 4291,
-  PseudoVLOXEI16_V_MF4_MF8 = 4292,
-  PseudoVLOXEI16_V_MF4_MF8_MASK = 4293,
-  PseudoVLOXEI32_V_M1_M1 = 4294,
-  PseudoVLOXEI32_V_M1_M1_MASK = 4295,
-  PseudoVLOXEI32_V_M1_M2 = 4296,
-  PseudoVLOXEI32_V_M1_M2_MASK = 4297,
-  PseudoVLOXEI32_V_M1_MF2 = 4298,
-  PseudoVLOXEI32_V_M1_MF2_MASK = 4299,
-  PseudoVLOXEI32_V_M1_MF4 = 4300,
-  PseudoVLOXEI32_V_M1_MF4_MASK = 4301,
-  PseudoVLOXEI32_V_M2_M1 = 4302,
-  PseudoVLOXEI32_V_M2_M1_MASK = 4303,
-  PseudoVLOXEI32_V_M2_M2 = 4304,
-  PseudoVLOXEI32_V_M2_M2_MASK = 4305,
-  PseudoVLOXEI32_V_M2_M4 = 4306,
-  PseudoVLOXEI32_V_M2_M4_MASK = 4307,
-  PseudoVLOXEI32_V_M2_MF2 = 4308,
-  PseudoVLOXEI32_V_M2_MF2_MASK = 4309,
-  PseudoVLOXEI32_V_M4_M1 = 4310,
-  PseudoVLOXEI32_V_M4_M1_MASK = 4311,
-  PseudoVLOXEI32_V_M4_M2 = 4312,
-  PseudoVLOXEI32_V_M4_M2_MASK = 4313,
-  PseudoVLOXEI32_V_M4_M4 = 4314,
-  PseudoVLOXEI32_V_M4_M4_MASK = 4315,
-  PseudoVLOXEI32_V_M4_M8 = 4316,
-  PseudoVLOXEI32_V_M4_M8_MASK = 4317,
-  PseudoVLOXEI32_V_M8_M2 = 4318,
-  PseudoVLOXEI32_V_M8_M2_MASK = 4319,
-  PseudoVLOXEI32_V_M8_M4 = 4320,
-  PseudoVLOXEI32_V_M8_M4_MASK = 4321,
-  PseudoVLOXEI32_V_M8_M8 = 4322,
-  PseudoVLOXEI32_V_M8_M8_MASK = 4323,
-  PseudoVLOXEI32_V_MF2_M1 = 4324,
-  PseudoVLOXEI32_V_MF2_M1_MASK = 4325,
-  PseudoVLOXEI32_V_MF2_MF2 = 4326,
-  PseudoVLOXEI32_V_MF2_MF2_MASK = 4327,
-  PseudoVLOXEI32_V_MF2_MF4 = 4328,
-  PseudoVLOXEI32_V_MF2_MF4_MASK = 4329,
-  PseudoVLOXEI32_V_MF2_MF8 = 4330,
-  PseudoVLOXEI32_V_MF2_MF8_MASK = 4331,
-  PseudoVLOXEI64_V_M1_M1 = 4332,
-  PseudoVLOXEI64_V_M1_M1_MASK = 4333,
-  PseudoVLOXEI64_V_M1_MF2 = 4334,
-  PseudoVLOXEI64_V_M1_MF2_MASK = 4335,
-  PseudoVLOXEI64_V_M1_MF4 = 4336,
-  PseudoVLOXEI64_V_M1_MF4_MASK = 4337,
-  PseudoVLOXEI64_V_M1_MF8 = 4338,
-  PseudoVLOXEI64_V_M1_MF8_MASK = 4339,
-  PseudoVLOXEI64_V_M2_M1 = 4340,
-  PseudoVLOXEI64_V_M2_M1_MASK = 4341,
-  PseudoVLOXEI64_V_M2_M2 = 4342,
-  PseudoVLOXEI64_V_M2_M2_MASK = 4343,
-  PseudoVLOXEI64_V_M2_MF2 = 4344,
-  PseudoVLOXEI64_V_M2_MF2_MASK = 4345,
-  PseudoVLOXEI64_V_M2_MF4 = 4346,
-  PseudoVLOXEI64_V_M2_MF4_MASK = 4347,
-  PseudoVLOXEI64_V_M4_M1 = 4348,
-  PseudoVLOXEI64_V_M4_M1_MASK = 4349,
-  PseudoVLOXEI64_V_M4_M2 = 4350,
-  PseudoVLOXEI64_V_M4_M2_MASK = 4351,
-  PseudoVLOXEI64_V_M4_M4 = 4352,
-  PseudoVLOXEI64_V_M4_M4_MASK = 4353,
-  PseudoVLOXEI64_V_M4_MF2 = 4354,
-  PseudoVLOXEI64_V_M4_MF2_MASK = 4355,
-  PseudoVLOXEI64_V_M8_M1 = 4356,
-  PseudoVLOXEI64_V_M8_M1_MASK = 4357,
-  PseudoVLOXEI64_V_M8_M2 = 4358,
-  PseudoVLOXEI64_V_M8_M2_MASK = 4359,
-  PseudoVLOXEI64_V_M8_M4 = 4360,
-  PseudoVLOXEI64_V_M8_M4_MASK = 4361,
-  PseudoVLOXEI64_V_M8_M8 = 4362,
-  PseudoVLOXEI64_V_M8_M8_MASK = 4363,
-  PseudoVLOXEI8_V_M1_M1 = 4364,
-  PseudoVLOXEI8_V_M1_M1_MASK = 4365,
-  PseudoVLOXEI8_V_M1_M2 = 4366,
-  PseudoVLOXEI8_V_M1_M2_MASK = 4367,
-  PseudoVLOXEI8_V_M1_M4 = 4368,
-  PseudoVLOXEI8_V_M1_M4_MASK = 4369,
-  PseudoVLOXEI8_V_M1_M8 = 4370,
-  PseudoVLOXEI8_V_M1_M8_MASK = 4371,
-  PseudoVLOXEI8_V_M2_M2 = 4372,
-  PseudoVLOXEI8_V_M2_M2_MASK = 4373,
-  PseudoVLOXEI8_V_M2_M4 = 4374,
-  PseudoVLOXEI8_V_M2_M4_MASK = 4375,
-  PseudoVLOXEI8_V_M2_M8 = 4376,
-  PseudoVLOXEI8_V_M2_M8_MASK = 4377,
-  PseudoVLOXEI8_V_M4_M4 = 4378,
-  PseudoVLOXEI8_V_M4_M4_MASK = 4379,
-  PseudoVLOXEI8_V_M4_M8 = 4380,
-  PseudoVLOXEI8_V_M4_M8_MASK = 4381,
-  PseudoVLOXEI8_V_M8_M8 = 4382,
-  PseudoVLOXEI8_V_M8_M8_MASK = 4383,
-  PseudoVLOXEI8_V_MF2_M1 = 4384,
-  PseudoVLOXEI8_V_MF2_M1_MASK = 4385,
-  PseudoVLOXEI8_V_MF2_M2 = 4386,
-  PseudoVLOXEI8_V_MF2_M2_MASK = 4387,
-  PseudoVLOXEI8_V_MF2_M4 = 4388,
-  PseudoVLOXEI8_V_MF2_M4_MASK = 4389,
-  PseudoVLOXEI8_V_MF2_MF2 = 4390,
-  PseudoVLOXEI8_V_MF2_MF2_MASK = 4391,
-  PseudoVLOXEI8_V_MF4_M1 = 4392,
-  PseudoVLOXEI8_V_MF4_M1_MASK = 4393,
-  PseudoVLOXEI8_V_MF4_M2 = 4394,
-  PseudoVLOXEI8_V_MF4_M2_MASK = 4395,
-  PseudoVLOXEI8_V_MF4_MF2 = 4396,
-  PseudoVLOXEI8_V_MF4_MF2_MASK = 4397,
-  PseudoVLOXEI8_V_MF4_MF4 = 4398,
-  PseudoVLOXEI8_V_MF4_MF4_MASK = 4399,
-  PseudoVLOXEI8_V_MF8_M1 = 4400,
-  PseudoVLOXEI8_V_MF8_M1_MASK = 4401,
-  PseudoVLOXEI8_V_MF8_MF2 = 4402,
-  PseudoVLOXEI8_V_MF8_MF2_MASK = 4403,
-  PseudoVLOXEI8_V_MF8_MF4 = 4404,
-  PseudoVLOXEI8_V_MF8_MF4_MASK = 4405,
-  PseudoVLOXEI8_V_MF8_MF8 = 4406,
-  PseudoVLOXEI8_V_MF8_MF8_MASK = 4407,
-  PseudoVLOXSEG2EI16_V_M1_M1 = 4408,
-  PseudoVLOXSEG2EI16_V_M1_M1_MASK = 4409,
-  PseudoVLOXSEG2EI16_V_M1_M2 = 4410,
-  PseudoVLOXSEG2EI16_V_M1_M2_MASK = 4411,
-  PseudoVLOXSEG2EI16_V_M1_M4 = 4412,
-  PseudoVLOXSEG2EI16_V_M1_M4_MASK = 4413,
-  PseudoVLOXSEG2EI16_V_M1_MF2 = 4414,
-  PseudoVLOXSEG2EI16_V_M1_MF2_MASK = 4415,
-  PseudoVLOXSEG2EI16_V_M2_M1 = 4416,
-  PseudoVLOXSEG2EI16_V_M2_M1_MASK = 4417,
-  PseudoVLOXSEG2EI16_V_M2_M2 = 4418,
-  PseudoVLOXSEG2EI16_V_M2_M2_MASK = 4419,
-  PseudoVLOXSEG2EI16_V_M2_M4 = 4420,
-  PseudoVLOXSEG2EI16_V_M2_M4_MASK = 4421,
-  PseudoVLOXSEG2EI16_V_M4_M2 = 4422,
-  PseudoVLOXSEG2EI16_V_M4_M2_MASK = 4423,
-  PseudoVLOXSEG2EI16_V_M4_M4 = 4424,
-  PseudoVLOXSEG2EI16_V_M4_M4_MASK = 4425,
-  PseudoVLOXSEG2EI16_V_M8_M4 = 4426,
-  PseudoVLOXSEG2EI16_V_M8_M4_MASK = 4427,
-  PseudoVLOXSEG2EI16_V_MF2_M1 = 4428,
-  PseudoVLOXSEG2EI16_V_MF2_M1_MASK = 4429,
-  PseudoVLOXSEG2EI16_V_MF2_M2 = 4430,
-  PseudoVLOXSEG2EI16_V_MF2_M2_MASK = 4431,
-  PseudoVLOXSEG2EI16_V_MF2_MF2 = 4432,
-  PseudoVLOXSEG2EI16_V_MF2_MF2_MASK = 4433,
-  PseudoVLOXSEG2EI16_V_MF2_MF4 = 4434,
-  PseudoVLOXSEG2EI16_V_MF2_MF4_MASK = 4435,
-  PseudoVLOXSEG2EI16_V_MF4_M1 = 4436,
-  PseudoVLOXSEG2EI16_V_MF4_M1_MASK = 4437,
-  PseudoVLOXSEG2EI16_V_MF4_MF2 = 4438,
-  PseudoVLOXSEG2EI16_V_MF4_MF2_MASK = 4439,
-  PseudoVLOXSEG2EI16_V_MF4_MF4 = 4440,
-  PseudoVLOXSEG2EI16_V_MF4_MF4_MASK = 4441,
-  PseudoVLOXSEG2EI16_V_MF4_MF8 = 4442,
-  PseudoVLOXSEG2EI16_V_MF4_MF8_MASK = 4443,
-  PseudoVLOXSEG2EI32_V_M1_M1 = 4444,
-  PseudoVLOXSEG2EI32_V_M1_M1_MASK = 4445,
-  PseudoVLOXSEG2EI32_V_M1_M2 = 4446,
-  PseudoVLOXSEG2EI32_V_M1_M2_MASK = 4447,
-  PseudoVLOXSEG2EI32_V_M1_MF2 = 4448,
-  PseudoVLOXSEG2EI32_V_M1_MF2_MASK = 4449,
-  PseudoVLOXSEG2EI32_V_M1_MF4 = 4450,
-  PseudoVLOXSEG2EI32_V_M1_MF4_MASK = 4451,
-  PseudoVLOXSEG2EI32_V_M2_M1 = 4452,
-  PseudoVLOXSEG2EI32_V_M2_M1_MASK = 4453,
-  PseudoVLOXSEG2EI32_V_M2_M2 = 4454,
-  PseudoVLOXSEG2EI32_V_M2_M2_MASK = 4455,
-  PseudoVLOXSEG2EI32_V_M2_M4 = 4456,
-  PseudoVLOXSEG2EI32_V_M2_M4_MASK = 4457,
-  PseudoVLOXSEG2EI32_V_M2_MF2 = 4458,
-  PseudoVLOXSEG2EI32_V_M2_MF2_MASK = 4459,
-  PseudoVLOXSEG2EI32_V_M4_M1 = 4460,
-  PseudoVLOXSEG2EI32_V_M4_M1_MASK = 4461,
-  PseudoVLOXSEG2EI32_V_M4_M2 = 4462,
-  PseudoVLOXSEG2EI32_V_M4_M2_MASK = 4463,
-  PseudoVLOXSEG2EI32_V_M4_M4 = 4464,
-  PseudoVLOXSEG2EI32_V_M4_M4_MASK = 4465,
-  PseudoVLOXSEG2EI32_V_M8_M2 = 4466,
-  PseudoVLOXSEG2EI32_V_M8_M2_MASK = 4467,
-  PseudoVLOXSEG2EI32_V_M8_M4 = 4468,
-  PseudoVLOXSEG2EI32_V_M8_M4_MASK = 4469,
-  PseudoVLOXSEG2EI32_V_MF2_M1 = 4470,
-  PseudoVLOXSEG2EI32_V_MF2_M1_MASK = 4471,
-  PseudoVLOXSEG2EI32_V_MF2_MF2 = 4472,
-  PseudoVLOXSEG2EI32_V_MF2_MF2_MASK = 4473,
-  PseudoVLOXSEG2EI32_V_MF2_MF4 = 4474,
-  PseudoVLOXSEG2EI32_V_MF2_MF4_MASK = 4475,
-  PseudoVLOXSEG2EI32_V_MF2_MF8 = 4476,
-  PseudoVLOXSEG2EI32_V_MF2_MF8_MASK = 4477,
-  PseudoVLOXSEG2EI64_V_M1_M1 = 4478,
-  PseudoVLOXSEG2EI64_V_M1_M1_MASK = 4479,
-  PseudoVLOXSEG2EI64_V_M1_MF2 = 4480,
-  PseudoVLOXSEG2EI64_V_M1_MF2_MASK = 4481,
-  PseudoVLOXSEG2EI64_V_M1_MF4 = 4482,
-  PseudoVLOXSEG2EI64_V_M1_MF4_MASK = 4483,
-  PseudoVLOXSEG2EI64_V_M1_MF8 = 4484,
-  PseudoVLOXSEG2EI64_V_M1_MF8_MASK = 4485,
-  PseudoVLOXSEG2EI64_V_M2_M1 = 4486,
-  PseudoVLOXSEG2EI64_V_M2_M1_MASK = 4487,
-  PseudoVLOXSEG2EI64_V_M2_M2 = 4488,
-  PseudoVLOXSEG2EI64_V_M2_M2_MASK = 4489,
-  PseudoVLOXSEG2EI64_V_M2_MF2 = 4490,
-  PseudoVLOXSEG2EI64_V_M2_MF2_MASK = 4491,
-  PseudoVLOXSEG2EI64_V_M2_MF4 = 4492,
-  PseudoVLOXSEG2EI64_V_M2_MF4_MASK = 4493,
-  PseudoVLOXSEG2EI64_V_M4_M1 = 4494,
-  PseudoVLOXSEG2EI64_V_M4_M1_MASK = 4495,
-  PseudoVLOXSEG2EI64_V_M4_M2 = 4496,
-  PseudoVLOXSEG2EI64_V_M4_M2_MASK = 4497,
-  PseudoVLOXSEG2EI64_V_M4_M4 = 4498,
-  PseudoVLOXSEG2EI64_V_M4_M4_MASK = 4499,
-  PseudoVLOXSEG2EI64_V_M4_MF2 = 4500,
-  PseudoVLOXSEG2EI64_V_M4_MF2_MASK = 4501,
-  PseudoVLOXSEG2EI64_V_M8_M1 = 4502,
-  PseudoVLOXSEG2EI64_V_M8_M1_MASK = 4503,
-  PseudoVLOXSEG2EI64_V_M8_M2 = 4504,
-  PseudoVLOXSEG2EI64_V_M8_M2_MASK = 4505,
-  PseudoVLOXSEG2EI64_V_M8_M4 = 4506,
-  PseudoVLOXSEG2EI64_V_M8_M4_MASK = 4507,
-  PseudoVLOXSEG2EI8_V_M1_M1 = 4508,
-  PseudoVLOXSEG2EI8_V_M1_M1_MASK = 4509,
-  PseudoVLOXSEG2EI8_V_M1_M2 = 4510,
-  PseudoVLOXSEG2EI8_V_M1_M2_MASK = 4511,
-  PseudoVLOXSEG2EI8_V_M1_M4 = 4512,
-  PseudoVLOXSEG2EI8_V_M1_M4_MASK = 4513,
-  PseudoVLOXSEG2EI8_V_M2_M2 = 4514,
-  PseudoVLOXSEG2EI8_V_M2_M2_MASK = 4515,
-  PseudoVLOXSEG2EI8_V_M2_M4 = 4516,
-  PseudoVLOXSEG2EI8_V_M2_M4_MASK = 4517,
-  PseudoVLOXSEG2EI8_V_M4_M4 = 4518,
-  PseudoVLOXSEG2EI8_V_M4_M4_MASK = 4519,
-  PseudoVLOXSEG2EI8_V_MF2_M1 = 4520,
-  PseudoVLOXSEG2EI8_V_MF2_M1_MASK = 4521,
-  PseudoVLOXSEG2EI8_V_MF2_M2 = 4522,
-  PseudoVLOXSEG2EI8_V_MF2_M2_MASK = 4523,
-  PseudoVLOXSEG2EI8_V_MF2_M4 = 4524,
-  PseudoVLOXSEG2EI8_V_MF2_M4_MASK = 4525,
-  PseudoVLOXSEG2EI8_V_MF2_MF2 = 4526,
-  PseudoVLOXSEG2EI8_V_MF2_MF2_MASK = 4527,
-  PseudoVLOXSEG2EI8_V_MF4_M1 = 4528,
-  PseudoVLOXSEG2EI8_V_MF4_M1_MASK = 4529,
-  PseudoVLOXSEG2EI8_V_MF4_M2 = 4530,
-  PseudoVLOXSEG2EI8_V_MF4_M2_MASK = 4531,
-  PseudoVLOXSEG2EI8_V_MF4_MF2 = 4532,
-  PseudoVLOXSEG2EI8_V_MF4_MF2_MASK = 4533,
-  PseudoVLOXSEG2EI8_V_MF4_MF4 = 4534,
-  PseudoVLOXSEG2EI8_V_MF4_MF4_MASK = 4535,
-  PseudoVLOXSEG2EI8_V_MF8_M1 = 4536,
-  PseudoVLOXSEG2EI8_V_MF8_M1_MASK = 4537,
-  PseudoVLOXSEG2EI8_V_MF8_MF2 = 4538,
-  PseudoVLOXSEG2EI8_V_MF8_MF2_MASK = 4539,
-  PseudoVLOXSEG2EI8_V_MF8_MF4 = 4540,
-  PseudoVLOXSEG2EI8_V_MF8_MF4_MASK = 4541,
-  PseudoVLOXSEG2EI8_V_MF8_MF8 = 4542,
-  PseudoVLOXSEG2EI8_V_MF8_MF8_MASK = 4543,
-  PseudoVLOXSEG3EI16_V_M1_M1 = 4544,
-  PseudoVLOXSEG3EI16_V_M1_M1_MASK = 4545,
-  PseudoVLOXSEG3EI16_V_M1_M2 = 4546,
-  PseudoVLOXSEG3EI16_V_M1_M2_MASK = 4547,
-  PseudoVLOXSEG3EI16_V_M1_MF2 = 4548,
-  PseudoVLOXSEG3EI16_V_M1_MF2_MASK = 4549,
-  PseudoVLOXSEG3EI16_V_M2_M1 = 4550,
-  PseudoVLOXSEG3EI16_V_M2_M1_MASK = 4551,
-  PseudoVLOXSEG3EI16_V_M2_M2 = 4552,
-  PseudoVLOXSEG3EI16_V_M2_M2_MASK = 4553,
-  PseudoVLOXSEG3EI16_V_M4_M2 = 4554,
-  PseudoVLOXSEG3EI16_V_M4_M2_MASK = 4555,
-  PseudoVLOXSEG3EI16_V_MF2_M1 = 4556,
-  PseudoVLOXSEG3EI16_V_MF2_M1_MASK = 4557,
-  PseudoVLOXSEG3EI16_V_MF2_M2 = 4558,
-  PseudoVLOXSEG3EI16_V_MF2_M2_MASK = 4559,
-  PseudoVLOXSEG3EI16_V_MF2_MF2 = 4560,
-  PseudoVLOXSEG3EI16_V_MF2_MF2_MASK = 4561,
-  PseudoVLOXSEG3EI16_V_MF2_MF4 = 4562,
-  PseudoVLOXSEG3EI16_V_MF2_MF4_MASK = 4563,
-  PseudoVLOXSEG3EI16_V_MF4_M1 = 4564,
-  PseudoVLOXSEG3EI16_V_MF4_M1_MASK = 4565,
-  PseudoVLOXSEG3EI16_V_MF4_MF2 = 4566,
-  PseudoVLOXSEG3EI16_V_MF4_MF2_MASK = 4567,
-  PseudoVLOXSEG3EI16_V_MF4_MF4 = 4568,
-  PseudoVLOXSEG3EI16_V_MF4_MF4_MASK = 4569,
-  PseudoVLOXSEG3EI16_V_MF4_MF8 = 4570,
-  PseudoVLOXSEG3EI16_V_MF4_MF8_MASK = 4571,
-  PseudoVLOXSEG3EI32_V_M1_M1 = 4572,
-  PseudoVLOXSEG3EI32_V_M1_M1_MASK = 4573,
-  PseudoVLOXSEG3EI32_V_M1_M2 = 4574,
-  PseudoVLOXSEG3EI32_V_M1_M2_MASK = 4575,
-  PseudoVLOXSEG3EI32_V_M1_MF2 = 4576,
-  PseudoVLOXSEG3EI32_V_M1_MF2_MASK = 4577,
-  PseudoVLOXSEG3EI32_V_M1_MF4 = 4578,
-  PseudoVLOXSEG3EI32_V_M1_MF4_MASK = 4579,
-  PseudoVLOXSEG3EI32_V_M2_M1 = 4580,
-  PseudoVLOXSEG3EI32_V_M2_M1_MASK = 4581,
-  PseudoVLOXSEG3EI32_V_M2_M2 = 4582,
-  PseudoVLOXSEG3EI32_V_M2_M2_MASK = 4583,
-  PseudoVLOXSEG3EI32_V_M2_MF2 = 4584,
-  PseudoVLOXSEG3EI32_V_M2_MF2_MASK = 4585,
-  PseudoVLOXSEG3EI32_V_M4_M1 = 4586,
-  PseudoVLOXSEG3EI32_V_M4_M1_MASK = 4587,
-  PseudoVLOXSEG3EI32_V_M4_M2 = 4588,
-  PseudoVLOXSEG3EI32_V_M4_M2_MASK = 4589,
-  PseudoVLOXSEG3EI32_V_M8_M2 = 4590,
-  PseudoVLOXSEG3EI32_V_M8_M2_MASK = 4591,
-  PseudoVLOXSEG3EI32_V_MF2_M1 = 4592,
-  PseudoVLOXSEG3EI32_V_MF2_M1_MASK = 4593,
-  PseudoVLOXSEG3EI32_V_MF2_MF2 = 4594,
-  PseudoVLOXSEG3EI32_V_MF2_MF2_MASK = 4595,
-  PseudoVLOXSEG3EI32_V_MF2_MF4 = 4596,
-  PseudoVLOXSEG3EI32_V_MF2_MF4_MASK = 4597,
-  PseudoVLOXSEG3EI32_V_MF2_MF8 = 4598,
-  PseudoVLOXSEG3EI32_V_MF2_MF8_MASK = 4599,
-  PseudoVLOXSEG3EI64_V_M1_M1 = 4600,
-  PseudoVLOXSEG3EI64_V_M1_M1_MASK = 4601,
-  PseudoVLOXSEG3EI64_V_M1_MF2 = 4602,
-  PseudoVLOXSEG3EI64_V_M1_MF2_MASK = 4603,
-  PseudoVLOXSEG3EI64_V_M1_MF4 = 4604,
-  PseudoVLOXSEG3EI64_V_M1_MF4_MASK = 4605,
-  PseudoVLOXSEG3EI64_V_M1_MF8 = 4606,
-  PseudoVLOXSEG3EI64_V_M1_MF8_MASK = 4607,
-  PseudoVLOXSEG3EI64_V_M2_M1 = 4608,
-  PseudoVLOXSEG3EI64_V_M2_M1_MASK = 4609,
-  PseudoVLOXSEG3EI64_V_M2_M2 = 4610,
-  PseudoVLOXSEG3EI64_V_M2_M2_MASK = 4611,
-  PseudoVLOXSEG3EI64_V_M2_MF2 = 4612,
-  PseudoVLOXSEG3EI64_V_M2_MF2_MASK = 4613,
-  PseudoVLOXSEG3EI64_V_M2_MF4 = 4614,
-  PseudoVLOXSEG3EI64_V_M2_MF4_MASK = 4615,
-  PseudoVLOXSEG3EI64_V_M4_M1 = 4616,
-  PseudoVLOXSEG3EI64_V_M4_M1_MASK = 4617,
-  PseudoVLOXSEG3EI64_V_M4_M2 = 4618,
-  PseudoVLOXSEG3EI64_V_M4_M2_MASK = 4619,
-  PseudoVLOXSEG3EI64_V_M4_MF2 = 4620,
-  PseudoVLOXSEG3EI64_V_M4_MF2_MASK = 4621,
-  PseudoVLOXSEG3EI64_V_M8_M1 = 4622,
-  PseudoVLOXSEG3EI64_V_M8_M1_MASK = 4623,
-  PseudoVLOXSEG3EI64_V_M8_M2 = 4624,
-  PseudoVLOXSEG3EI64_V_M8_M2_MASK = 4625,
-  PseudoVLOXSEG3EI8_V_M1_M1 = 4626,
-  PseudoVLOXSEG3EI8_V_M1_M1_MASK = 4627,
-  PseudoVLOXSEG3EI8_V_M1_M2 = 4628,
-  PseudoVLOXSEG3EI8_V_M1_M2_MASK = 4629,
-  PseudoVLOXSEG3EI8_V_M2_M2 = 4630,
-  PseudoVLOXSEG3EI8_V_M2_M2_MASK = 4631,
-  PseudoVLOXSEG3EI8_V_MF2_M1 = 4632,
-  PseudoVLOXSEG3EI8_V_MF2_M1_MASK = 4633,
-  PseudoVLOXSEG3EI8_V_MF2_M2 = 4634,
-  PseudoVLOXSEG3EI8_V_MF2_M2_MASK = 4635,
-  PseudoVLOXSEG3EI8_V_MF2_MF2 = 4636,
-  PseudoVLOXSEG3EI8_V_MF2_MF2_MASK = 4637,
-  PseudoVLOXSEG3EI8_V_MF4_M1 = 4638,
-  PseudoVLOXSEG3EI8_V_MF4_M1_MASK = 4639,
-  PseudoVLOXSEG3EI8_V_MF4_M2 = 4640,
-  PseudoVLOXSEG3EI8_V_MF4_M2_MASK = 4641,
-  PseudoVLOXSEG3EI8_V_MF4_MF2 = 4642,
-  PseudoVLOXSEG3EI8_V_MF4_MF2_MASK = 4643,
-  PseudoVLOXSEG3EI8_V_MF4_MF4 = 4644,
-  PseudoVLOXSEG3EI8_V_MF4_MF4_MASK = 4645,
-  PseudoVLOXSEG3EI8_V_MF8_M1 = 4646,
-  PseudoVLOXSEG3EI8_V_MF8_M1_MASK = 4647,
-  PseudoVLOXSEG3EI8_V_MF8_MF2 = 4648,
-  PseudoVLOXSEG3EI8_V_MF8_MF2_MASK = 4649,
-  PseudoVLOXSEG3EI8_V_MF8_MF4 = 4650,
-  PseudoVLOXSEG3EI8_V_MF8_MF4_MASK = 4651,
-  PseudoVLOXSEG3EI8_V_MF8_MF8 = 4652,
-  PseudoVLOXSEG3EI8_V_MF8_MF8_MASK = 4653,
-  PseudoVLOXSEG4EI16_V_M1_M1 = 4654,
-  PseudoVLOXSEG4EI16_V_M1_M1_MASK = 4655,
-  PseudoVLOXSEG4EI16_V_M1_M2 = 4656,
-  PseudoVLOXSEG4EI16_V_M1_M2_MASK = 4657,
-  PseudoVLOXSEG4EI16_V_M1_MF2 = 4658,
-  PseudoVLOXSEG4EI16_V_M1_MF2_MASK = 4659,
-  PseudoVLOXSEG4EI16_V_M2_M1 = 4660,
-  PseudoVLOXSEG4EI16_V_M2_M1_MASK = 4661,
-  PseudoVLOXSEG4EI16_V_M2_M2 = 4662,
-  PseudoVLOXSEG4EI16_V_M2_M2_MASK = 4663,
-  PseudoVLOXSEG4EI16_V_M4_M2 = 4664,
-  PseudoVLOXSEG4EI16_V_M4_M2_MASK = 4665,
-  PseudoVLOXSEG4EI16_V_MF2_M1 = 4666,
-  PseudoVLOXSEG4EI16_V_MF2_M1_MASK = 4667,
-  PseudoVLOXSEG4EI16_V_MF2_M2 = 4668,
-  PseudoVLOXSEG4EI16_V_MF2_M2_MASK = 4669,
-  PseudoVLOXSEG4EI16_V_MF2_MF2 = 4670,
-  PseudoVLOXSEG4EI16_V_MF2_MF2_MASK = 4671,
-  PseudoVLOXSEG4EI16_V_MF2_MF4 = 4672,
-  PseudoVLOXSEG4EI16_V_MF2_MF4_MASK = 4673,
-  PseudoVLOXSEG4EI16_V_MF4_M1 = 4674,
-  PseudoVLOXSEG4EI16_V_MF4_M1_MASK = 4675,
-  PseudoVLOXSEG4EI16_V_MF4_MF2 = 4676,
-  PseudoVLOXSEG4EI16_V_MF4_MF2_MASK = 4677,
-  PseudoVLOXSEG4EI16_V_MF4_MF4 = 4678,
-  PseudoVLOXSEG4EI16_V_MF4_MF4_MASK = 4679,
-  PseudoVLOXSEG4EI16_V_MF4_MF8 = 4680,
-  PseudoVLOXSEG4EI16_V_MF4_MF8_MASK = 4681,
-  PseudoVLOXSEG4EI32_V_M1_M1 = 4682,
-  PseudoVLOXSEG4EI32_V_M1_M1_MASK = 4683,
-  PseudoVLOXSEG4EI32_V_M1_M2 = 4684,
-  PseudoVLOXSEG4EI32_V_M1_M2_MASK = 4685,
-  PseudoVLOXSEG4EI32_V_M1_MF2 = 4686,
-  PseudoVLOXSEG4EI32_V_M1_MF2_MASK = 4687,
-  PseudoVLOXSEG4EI32_V_M1_MF4 = 4688,
-  PseudoVLOXSEG4EI32_V_M1_MF4_MASK = 4689,
-  PseudoVLOXSEG4EI32_V_M2_M1 = 4690,
-  PseudoVLOXSEG4EI32_V_M2_M1_MASK = 4691,
-  PseudoVLOXSEG4EI32_V_M2_M2 = 4692,
-  PseudoVLOXSEG4EI32_V_M2_M2_MASK = 4693,
-  PseudoVLOXSEG4EI32_V_M2_MF2 = 4694,
-  PseudoVLOXSEG4EI32_V_M2_MF2_MASK = 4695,
-  PseudoVLOXSEG4EI32_V_M4_M1 = 4696,
-  PseudoVLOXSEG4EI32_V_M4_M1_MASK = 4697,
-  PseudoVLOXSEG4EI32_V_M4_M2 = 4698,
-  PseudoVLOXSEG4EI32_V_M4_M2_MASK = 4699,
-  PseudoVLOXSEG4EI32_V_M8_M2 = 4700,
-  PseudoVLOXSEG4EI32_V_M8_M2_MASK = 4701,
-  PseudoVLOXSEG4EI32_V_MF2_M1 = 4702,
-  PseudoVLOXSEG4EI32_V_MF2_M1_MASK = 4703,
-  PseudoVLOXSEG4EI32_V_MF2_MF2 = 4704,
-  PseudoVLOXSEG4EI32_V_MF2_MF2_MASK = 4705,
-  PseudoVLOXSEG4EI32_V_MF2_MF4 = 4706,
-  PseudoVLOXSEG4EI32_V_MF2_MF4_MASK = 4707,
-  PseudoVLOXSEG4EI32_V_MF2_MF8 = 4708,
-  PseudoVLOXSEG4EI32_V_MF2_MF8_MASK = 4709,
-  PseudoVLOXSEG4EI64_V_M1_M1 = 4710,
-  PseudoVLOXSEG4EI64_V_M1_M1_MASK = 4711,
-  PseudoVLOXSEG4EI64_V_M1_MF2 = 4712,
-  PseudoVLOXSEG4EI64_V_M1_MF2_MASK = 4713,
-  PseudoVLOXSEG4EI64_V_M1_MF4 = 4714,
-  PseudoVLOXSEG4EI64_V_M1_MF4_MASK = 4715,
-  PseudoVLOXSEG4EI64_V_M1_MF8 = 4716,
-  PseudoVLOXSEG4EI64_V_M1_MF8_MASK = 4717,
-  PseudoVLOXSEG4EI64_V_M2_M1 = 4718,
-  PseudoVLOXSEG4EI64_V_M2_M1_MASK = 4719,
-  PseudoVLOXSEG4EI64_V_M2_M2 = 4720,
-  PseudoVLOXSEG4EI64_V_M2_M2_MASK = 4721,
-  PseudoVLOXSEG4EI64_V_M2_MF2 = 4722,
-  PseudoVLOXSEG4EI64_V_M2_MF2_MASK = 4723,
-  PseudoVLOXSEG4EI64_V_M2_MF4 = 4724,
-  PseudoVLOXSEG4EI64_V_M2_MF4_MASK = 4725,
-  PseudoVLOXSEG4EI64_V_M4_M1 = 4726,
-  PseudoVLOXSEG4EI64_V_M4_M1_MASK = 4727,
-  PseudoVLOXSEG4EI64_V_M4_M2 = 4728,
-  PseudoVLOXSEG4EI64_V_M4_M2_MASK = 4729,
-  PseudoVLOXSEG4EI64_V_M4_MF2 = 4730,
-  PseudoVLOXSEG4EI64_V_M4_MF2_MASK = 4731,
-  PseudoVLOXSEG4EI64_V_M8_M1 = 4732,
-  PseudoVLOXSEG4EI64_V_M8_M1_MASK = 4733,
-  PseudoVLOXSEG4EI64_V_M8_M2 = 4734,
-  PseudoVLOXSEG4EI64_V_M8_M2_MASK = 4735,
-  PseudoVLOXSEG4EI8_V_M1_M1 = 4736,
-  PseudoVLOXSEG4EI8_V_M1_M1_MASK = 4737,
-  PseudoVLOXSEG4EI8_V_M1_M2 = 4738,
-  PseudoVLOXSEG4EI8_V_M1_M2_MASK = 4739,
-  PseudoVLOXSEG4EI8_V_M2_M2 = 4740,
-  PseudoVLOXSEG4EI8_V_M2_M2_MASK = 4741,
-  PseudoVLOXSEG4EI8_V_MF2_M1 = 4742,
-  PseudoVLOXSEG4EI8_V_MF2_M1_MASK = 4743,
-  PseudoVLOXSEG4EI8_V_MF2_M2 = 4744,
-  PseudoVLOXSEG4EI8_V_MF2_M2_MASK = 4745,
-  PseudoVLOXSEG4EI8_V_MF2_MF2 = 4746,
-  PseudoVLOXSEG4EI8_V_MF2_MF2_MASK = 4747,
-  PseudoVLOXSEG4EI8_V_MF4_M1 = 4748,
-  PseudoVLOXSEG4EI8_V_MF4_M1_MASK = 4749,
-  PseudoVLOXSEG4EI8_V_MF4_M2 = 4750,
-  PseudoVLOXSEG4EI8_V_MF4_M2_MASK = 4751,
-  PseudoVLOXSEG4EI8_V_MF4_MF2 = 4752,
-  PseudoVLOXSEG4EI8_V_MF4_MF2_MASK = 4753,
-  PseudoVLOXSEG4EI8_V_MF4_MF4 = 4754,
-  PseudoVLOXSEG4EI8_V_MF4_MF4_MASK = 4755,
-  PseudoVLOXSEG4EI8_V_MF8_M1 = 4756,
-  PseudoVLOXSEG4EI8_V_MF8_M1_MASK = 4757,
-  PseudoVLOXSEG4EI8_V_MF8_MF2 = 4758,
-  PseudoVLOXSEG4EI8_V_MF8_MF2_MASK = 4759,
-  PseudoVLOXSEG4EI8_V_MF8_MF4 = 4760,
-  PseudoVLOXSEG4EI8_V_MF8_MF4_MASK = 4761,
-  PseudoVLOXSEG4EI8_V_MF8_MF8 = 4762,
-  PseudoVLOXSEG4EI8_V_MF8_MF8_MASK = 4763,
-  PseudoVLOXSEG5EI16_V_M1_M1 = 4764,
-  PseudoVLOXSEG5EI16_V_M1_M1_MASK = 4765,
-  PseudoVLOXSEG5EI16_V_M1_MF2 = 4766,
-  PseudoVLOXSEG5EI16_V_M1_MF2_MASK = 4767,
-  PseudoVLOXSEG5EI16_V_M2_M1 = 4768,
-  PseudoVLOXSEG5EI16_V_M2_M1_MASK = 4769,
-  PseudoVLOXSEG5EI16_V_MF2_M1 = 4770,
-  PseudoVLOXSEG5EI16_V_MF2_M1_MASK = 4771,
-  PseudoVLOXSEG5EI16_V_MF2_MF2 = 4772,
-  PseudoVLOXSEG5EI16_V_MF2_MF2_MASK = 4773,
-  PseudoVLOXSEG5EI16_V_MF2_MF4 = 4774,
-  PseudoVLOXSEG5EI16_V_MF2_MF4_MASK = 4775,
-  PseudoVLOXSEG5EI16_V_MF4_M1 = 4776,
-  PseudoVLOXSEG5EI16_V_MF4_M1_MASK = 4777,
-  PseudoVLOXSEG5EI16_V_MF4_MF2 = 4778,
-  PseudoVLOXSEG5EI16_V_MF4_MF2_MASK = 4779,
-  PseudoVLOXSEG5EI16_V_MF4_MF4 = 4780,
-  PseudoVLOXSEG5EI16_V_MF4_MF4_MASK = 4781,
-  PseudoVLOXSEG5EI16_V_MF4_MF8 = 4782,
-  PseudoVLOXSEG5EI16_V_MF4_MF8_MASK = 4783,
-  PseudoVLOXSEG5EI32_V_M1_M1 = 4784,
-  PseudoVLOXSEG5EI32_V_M1_M1_MASK = 4785,
-  PseudoVLOXSEG5EI32_V_M1_MF2 = 4786,
-  PseudoVLOXSEG5EI32_V_M1_MF2_MASK = 4787,
-  PseudoVLOXSEG5EI32_V_M1_MF4 = 4788,
-  PseudoVLOXSEG5EI32_V_M1_MF4_MASK = 4789,
-  PseudoVLOXSEG5EI32_V_M2_M1 = 4790,
-  PseudoVLOXSEG5EI32_V_M2_M1_MASK = 4791,
-  PseudoVLOXSEG5EI32_V_M2_MF2 = 4792,
-  PseudoVLOXSEG5EI32_V_M2_MF2_MASK = 4793,
-  PseudoVLOXSEG5EI32_V_M4_M1 = 4794,
-  PseudoVLOXSEG5EI32_V_M4_M1_MASK = 4795,
-  PseudoVLOXSEG5EI32_V_MF2_M1 = 4796,
-  PseudoVLOXSEG5EI32_V_MF2_M1_MASK = 4797,
-  PseudoVLOXSEG5EI32_V_MF2_MF2 = 4798,
-  PseudoVLOXSEG5EI32_V_MF2_MF2_MASK = 4799,
-  PseudoVLOXSEG5EI32_V_MF2_MF4 = 4800,
-  PseudoVLOXSEG5EI32_V_MF2_MF4_MASK = 4801,
-  PseudoVLOXSEG5EI32_V_MF2_MF8 = 4802,
-  PseudoVLOXSEG5EI32_V_MF2_MF8_MASK = 4803,
-  PseudoVLOXSEG5EI64_V_M1_M1 = 4804,
-  PseudoVLOXSEG5EI64_V_M1_M1_MASK = 4805,
-  PseudoVLOXSEG5EI64_V_M1_MF2 = 4806,
-  PseudoVLOXSEG5EI64_V_M1_MF2_MASK = 4807,
-  PseudoVLOXSEG5EI64_V_M1_MF4 = 4808,
-  PseudoVLOXSEG5EI64_V_M1_MF4_MASK = 4809,
-  PseudoVLOXSEG5EI64_V_M1_MF8 = 4810,
-  PseudoVLOXSEG5EI64_V_M1_MF8_MASK = 4811,
-  PseudoVLOXSEG5EI64_V_M2_M1 = 4812,
-  PseudoVLOXSEG5EI64_V_M2_M1_MASK = 4813,
-  PseudoVLOXSEG5EI64_V_M2_MF2 = 4814,
-  PseudoVLOXSEG5EI64_V_M2_MF2_MASK = 4815,
-  PseudoVLOXSEG5EI64_V_M2_MF4 = 4816,
-  PseudoVLOXSEG5EI64_V_M2_MF4_MASK = 4817,
-  PseudoVLOXSEG5EI64_V_M4_M1 = 4818,
-  PseudoVLOXSEG5EI64_V_M4_M1_MASK = 4819,
-  PseudoVLOXSEG5EI64_V_M4_MF2 = 4820,
-  PseudoVLOXSEG5EI64_V_M4_MF2_MASK = 4821,
-  PseudoVLOXSEG5EI64_V_M8_M1 = 4822,
-  PseudoVLOXSEG5EI64_V_M8_M1_MASK = 4823,
-  PseudoVLOXSEG5EI8_V_M1_M1 = 4824,
-  PseudoVLOXSEG5EI8_V_M1_M1_MASK = 4825,
-  PseudoVLOXSEG5EI8_V_MF2_M1 = 4826,
-  PseudoVLOXSEG5EI8_V_MF2_M1_MASK = 4827,
-  PseudoVLOXSEG5EI8_V_MF2_MF2 = 4828,
-  PseudoVLOXSEG5EI8_V_MF2_MF2_MASK = 4829,
-  PseudoVLOXSEG5EI8_V_MF4_M1 = 4830,
-  PseudoVLOXSEG5EI8_V_MF4_M1_MASK = 4831,
-  PseudoVLOXSEG5EI8_V_MF4_MF2 = 4832,
-  PseudoVLOXSEG5EI8_V_MF4_MF2_MASK = 4833,
-  PseudoVLOXSEG5EI8_V_MF4_MF4 = 4834,
-  PseudoVLOXSEG5EI8_V_MF4_MF4_MASK = 4835,
-  PseudoVLOXSEG5EI8_V_MF8_M1 = 4836,
-  PseudoVLOXSEG5EI8_V_MF8_M1_MASK = 4837,
-  PseudoVLOXSEG5EI8_V_MF8_MF2 = 4838,
-  PseudoVLOXSEG5EI8_V_MF8_MF2_MASK = 4839,
-  PseudoVLOXSEG5EI8_V_MF8_MF4 = 4840,
-  PseudoVLOXSEG5EI8_V_MF8_MF4_MASK = 4841,
-  PseudoVLOXSEG5EI8_V_MF8_MF8 = 4842,
-  PseudoVLOXSEG5EI8_V_MF8_MF8_MASK = 4843,
-  PseudoVLOXSEG6EI16_V_M1_M1 = 4844,
-  PseudoVLOXSEG6EI16_V_M1_M1_MASK = 4845,
-  PseudoVLOXSEG6EI16_V_M1_MF2 = 4846,
-  PseudoVLOXSEG6EI16_V_M1_MF2_MASK = 4847,
-  PseudoVLOXSEG6EI16_V_M2_M1 = 4848,
-  PseudoVLOXSEG6EI16_V_M2_M1_MASK = 4849,
-  PseudoVLOXSEG6EI16_V_MF2_M1 = 4850,
-  PseudoVLOXSEG6EI16_V_MF2_M1_MASK = 4851,
-  PseudoVLOXSEG6EI16_V_MF2_MF2 = 4852,
-  PseudoVLOXSEG6EI16_V_MF2_MF2_MASK = 4853,
-  PseudoVLOXSEG6EI16_V_MF2_MF4 = 4854,
-  PseudoVLOXSEG6EI16_V_MF2_MF4_MASK = 4855,
-  PseudoVLOXSEG6EI16_V_MF4_M1 = 4856,
-  PseudoVLOXSEG6EI16_V_MF4_M1_MASK = 4857,
-  PseudoVLOXSEG6EI16_V_MF4_MF2 = 4858,
-  PseudoVLOXSEG6EI16_V_MF4_MF2_MASK = 4859,
-  PseudoVLOXSEG6EI16_V_MF4_MF4 = 4860,
-  PseudoVLOXSEG6EI16_V_MF4_MF4_MASK = 4861,
-  PseudoVLOXSEG6EI16_V_MF4_MF8 = 4862,
-  PseudoVLOXSEG6EI16_V_MF4_MF8_MASK = 4863,
-  PseudoVLOXSEG6EI32_V_M1_M1 = 4864,
-  PseudoVLOXSEG6EI32_V_M1_M1_MASK = 4865,
-  PseudoVLOXSEG6EI32_V_M1_MF2 = 4866,
-  PseudoVLOXSEG6EI32_V_M1_MF2_MASK = 4867,
-  PseudoVLOXSEG6EI32_V_M1_MF4 = 4868,
-  PseudoVLOXSEG6EI32_V_M1_MF4_MASK = 4869,
-  PseudoVLOXSEG6EI32_V_M2_M1 = 4870,
-  PseudoVLOXSEG6EI32_V_M2_M1_MASK = 4871,
-  PseudoVLOXSEG6EI32_V_M2_MF2 = 4872,
-  PseudoVLOXSEG6EI32_V_M2_MF2_MASK = 4873,
-  PseudoVLOXSEG6EI32_V_M4_M1 = 4874,
-  PseudoVLOXSEG6EI32_V_M4_M1_MASK = 4875,
-  PseudoVLOXSEG6EI32_V_MF2_M1 = 4876,
-  PseudoVLOXSEG6EI32_V_MF2_M1_MASK = 4877,
-  PseudoVLOXSEG6EI32_V_MF2_MF2 = 4878,
-  PseudoVLOXSEG6EI32_V_MF2_MF2_MASK = 4879,
-  PseudoVLOXSEG6EI32_V_MF2_MF4 = 4880,
-  PseudoVLOXSEG6EI32_V_MF2_MF4_MASK = 4881,
-  PseudoVLOXSEG6EI32_V_MF2_MF8 = 4882,
-  PseudoVLOXSEG6EI32_V_MF2_MF8_MASK = 4883,
-  PseudoVLOXSEG6EI64_V_M1_M1 = 4884,
-  PseudoVLOXSEG6EI64_V_M1_M1_MASK = 4885,
-  PseudoVLOXSEG6EI64_V_M1_MF2 = 4886,
-  PseudoVLOXSEG6EI64_V_M1_MF2_MASK = 4887,
-  PseudoVLOXSEG6EI64_V_M1_MF4 = 4888,
-  PseudoVLOXSEG6EI64_V_M1_MF4_MASK = 4889,
-  PseudoVLOXSEG6EI64_V_M1_MF8 = 4890,
-  PseudoVLOXSEG6EI64_V_M1_MF8_MASK = 4891,
-  PseudoVLOXSEG6EI64_V_M2_M1 = 4892,
-  PseudoVLOXSEG6EI64_V_M2_M1_MASK = 4893,
-  PseudoVLOXSEG6EI64_V_M2_MF2 = 4894,
-  PseudoVLOXSEG6EI64_V_M2_MF2_MASK = 4895,
-  PseudoVLOXSEG6EI64_V_M2_MF4 = 4896,
-  PseudoVLOXSEG6EI64_V_M2_MF4_MASK = 4897,
-  PseudoVLOXSEG6EI64_V_M4_M1 = 4898,
-  PseudoVLOXSEG6EI64_V_M4_M1_MASK = 4899,
-  PseudoVLOXSEG6EI64_V_M4_MF2 = 4900,
-  PseudoVLOXSEG6EI64_V_M4_MF2_MASK = 4901,
-  PseudoVLOXSEG6EI64_V_M8_M1 = 4902,
-  PseudoVLOXSEG6EI64_V_M8_M1_MASK = 4903,
-  PseudoVLOXSEG6EI8_V_M1_M1 = 4904,
-  PseudoVLOXSEG6EI8_V_M1_M1_MASK = 4905,
-  PseudoVLOXSEG6EI8_V_MF2_M1 = 4906,
-  PseudoVLOXSEG6EI8_V_MF2_M1_MASK = 4907,
-  PseudoVLOXSEG6EI8_V_MF2_MF2 = 4908,
-  PseudoVLOXSEG6EI8_V_MF2_MF2_MASK = 4909,
-  PseudoVLOXSEG6EI8_V_MF4_M1 = 4910,
-  PseudoVLOXSEG6EI8_V_MF4_M1_MASK = 4911,
-  PseudoVLOXSEG6EI8_V_MF4_MF2 = 4912,
-  PseudoVLOXSEG6EI8_V_MF4_MF2_MASK = 4913,
-  PseudoVLOXSEG6EI8_V_MF4_MF4 = 4914,
-  PseudoVLOXSEG6EI8_V_MF4_MF4_MASK = 4915,
-  PseudoVLOXSEG6EI8_V_MF8_M1 = 4916,
-  PseudoVLOXSEG6EI8_V_MF8_M1_MASK = 4917,
-  PseudoVLOXSEG6EI8_V_MF8_MF2 = 4918,
-  PseudoVLOXSEG6EI8_V_MF8_MF2_MASK = 4919,
-  PseudoVLOXSEG6EI8_V_MF8_MF4 = 4920,
-  PseudoVLOXSEG6EI8_V_MF8_MF4_MASK = 4921,
-  PseudoVLOXSEG6EI8_V_MF8_MF8 = 4922,
-  PseudoVLOXSEG6EI8_V_MF8_MF8_MASK = 4923,
-  PseudoVLOXSEG7EI16_V_M1_M1 = 4924,
-  PseudoVLOXSEG7EI16_V_M1_M1_MASK = 4925,
-  PseudoVLOXSEG7EI16_V_M1_MF2 = 4926,
-  PseudoVLOXSEG7EI16_V_M1_MF2_MASK = 4927,
-  PseudoVLOXSEG7EI16_V_M2_M1 = 4928,
-  PseudoVLOXSEG7EI16_V_M2_M1_MASK = 4929,
-  PseudoVLOXSEG7EI16_V_MF2_M1 = 4930,
-  PseudoVLOXSEG7EI16_V_MF2_M1_MASK = 4931,
-  PseudoVLOXSEG7EI16_V_MF2_MF2 = 4932,
-  PseudoVLOXSEG7EI16_V_MF2_MF2_MASK = 4933,
-  PseudoVLOXSEG7EI16_V_MF2_MF4 = 4934,
-  PseudoVLOXSEG7EI16_V_MF2_MF4_MASK = 4935,
-  PseudoVLOXSEG7EI16_V_MF4_M1 = 4936,
-  PseudoVLOXSEG7EI16_V_MF4_M1_MASK = 4937,
-  PseudoVLOXSEG7EI16_V_MF4_MF2 = 4938,
-  PseudoVLOXSEG7EI16_V_MF4_MF2_MASK = 4939,
-  PseudoVLOXSEG7EI16_V_MF4_MF4 = 4940,
-  PseudoVLOXSEG7EI16_V_MF4_MF4_MASK = 4941,
-  PseudoVLOXSEG7EI16_V_MF4_MF8 = 4942,
-  PseudoVLOXSEG7EI16_V_MF4_MF8_MASK = 4943,
-  PseudoVLOXSEG7EI32_V_M1_M1 = 4944,
-  PseudoVLOXSEG7EI32_V_M1_M1_MASK = 4945,
-  PseudoVLOXSEG7EI32_V_M1_MF2 = 4946,
-  PseudoVLOXSEG7EI32_V_M1_MF2_MASK = 4947,
-  PseudoVLOXSEG7EI32_V_M1_MF4 = 4948,
-  PseudoVLOXSEG7EI32_V_M1_MF4_MASK = 4949,
-  PseudoVLOXSEG7EI32_V_M2_M1 = 4950,
-  PseudoVLOXSEG7EI32_V_M2_M1_MASK = 4951,
-  PseudoVLOXSEG7EI32_V_M2_MF2 = 4952,
-  PseudoVLOXSEG7EI32_V_M2_MF2_MASK = 4953,
-  PseudoVLOXSEG7EI32_V_M4_M1 = 4954,
-  PseudoVLOXSEG7EI32_V_M4_M1_MASK = 4955,
-  PseudoVLOXSEG7EI32_V_MF2_M1 = 4956,
-  PseudoVLOXSEG7EI32_V_MF2_M1_MASK = 4957,
-  PseudoVLOXSEG7EI32_V_MF2_MF2 = 4958,
-  PseudoVLOXSEG7EI32_V_MF2_MF2_MASK = 4959,
-  PseudoVLOXSEG7EI32_V_MF2_MF4 = 4960,
-  PseudoVLOXSEG7EI32_V_MF2_MF4_MASK = 4961,
-  PseudoVLOXSEG7EI32_V_MF2_MF8 = 4962,
-  PseudoVLOXSEG7EI32_V_MF2_MF8_MASK = 4963,
-  PseudoVLOXSEG7EI64_V_M1_M1 = 4964,
-  PseudoVLOXSEG7EI64_V_M1_M1_MASK = 4965,
-  PseudoVLOXSEG7EI64_V_M1_MF2 = 4966,
-  PseudoVLOXSEG7EI64_V_M1_MF2_MASK = 4967,
-  PseudoVLOXSEG7EI64_V_M1_MF4 = 4968,
-  PseudoVLOXSEG7EI64_V_M1_MF4_MASK = 4969,
-  PseudoVLOXSEG7EI64_V_M1_MF8 = 4970,
-  PseudoVLOXSEG7EI64_V_M1_MF8_MASK = 4971,
-  PseudoVLOXSEG7EI64_V_M2_M1 = 4972,
-  PseudoVLOXSEG7EI64_V_M2_M1_MASK = 4973,
-  PseudoVLOXSEG7EI64_V_M2_MF2 = 4974,
-  PseudoVLOXSEG7EI64_V_M2_MF2_MASK = 4975,
-  PseudoVLOXSEG7EI64_V_M2_MF4 = 4976,
-  PseudoVLOXSEG7EI64_V_M2_MF4_MASK = 4977,
-  PseudoVLOXSEG7EI64_V_M4_M1 = 4978,
-  PseudoVLOXSEG7EI64_V_M4_M1_MASK = 4979,
-  PseudoVLOXSEG7EI64_V_M4_MF2 = 4980,
-  PseudoVLOXSEG7EI64_V_M4_MF2_MASK = 4981,
-  PseudoVLOXSEG7EI64_V_M8_M1 = 4982,
-  PseudoVLOXSEG7EI64_V_M8_M1_MASK = 4983,
-  PseudoVLOXSEG7EI8_V_M1_M1 = 4984,
-  PseudoVLOXSEG7EI8_V_M1_M1_MASK = 4985,
-  PseudoVLOXSEG7EI8_V_MF2_M1 = 4986,
-  PseudoVLOXSEG7EI8_V_MF2_M1_MASK = 4987,
-  PseudoVLOXSEG7EI8_V_MF2_MF2 = 4988,
-  PseudoVLOXSEG7EI8_V_MF2_MF2_MASK = 4989,
-  PseudoVLOXSEG7EI8_V_MF4_M1 = 4990,
-  PseudoVLOXSEG7EI8_V_MF4_M1_MASK = 4991,
-  PseudoVLOXSEG7EI8_V_MF4_MF2 = 4992,
-  PseudoVLOXSEG7EI8_V_MF4_MF2_MASK = 4993,
-  PseudoVLOXSEG7EI8_V_MF4_MF4 = 4994,
-  PseudoVLOXSEG7EI8_V_MF4_MF4_MASK = 4995,
-  PseudoVLOXSEG7EI8_V_MF8_M1 = 4996,
-  PseudoVLOXSEG7EI8_V_MF8_M1_MASK = 4997,
-  PseudoVLOXSEG7EI8_V_MF8_MF2 = 4998,
-  PseudoVLOXSEG7EI8_V_MF8_MF2_MASK = 4999,
-  PseudoVLOXSEG7EI8_V_MF8_MF4 = 5000,
-  PseudoVLOXSEG7EI8_V_MF8_MF4_MASK = 5001,
-  PseudoVLOXSEG7EI8_V_MF8_MF8 = 5002,
-  PseudoVLOXSEG7EI8_V_MF8_MF8_MASK = 5003,
-  PseudoVLOXSEG8EI16_V_M1_M1 = 5004,
-  PseudoVLOXSEG8EI16_V_M1_M1_MASK = 5005,
-  PseudoVLOXSEG8EI16_V_M1_MF2 = 5006,
-  PseudoVLOXSEG8EI16_V_M1_MF2_MASK = 5007,
-  PseudoVLOXSEG8EI16_V_M2_M1 = 5008,
-  PseudoVLOXSEG8EI16_V_M2_M1_MASK = 5009,
-  PseudoVLOXSEG8EI16_V_MF2_M1 = 5010,
-  PseudoVLOXSEG8EI16_V_MF2_M1_MASK = 5011,
-  PseudoVLOXSEG8EI16_V_MF2_MF2 = 5012,
-  PseudoVLOXSEG8EI16_V_MF2_MF2_MASK = 5013,
-  PseudoVLOXSEG8EI16_V_MF2_MF4 = 5014,
-  PseudoVLOXSEG8EI16_V_MF2_MF4_MASK = 5015,
-  PseudoVLOXSEG8EI16_V_MF4_M1 = 5016,
-  PseudoVLOXSEG8EI16_V_MF4_M1_MASK = 5017,
-  PseudoVLOXSEG8EI16_V_MF4_MF2 = 5018,
-  PseudoVLOXSEG8EI16_V_MF4_MF2_MASK = 5019,
-  PseudoVLOXSEG8EI16_V_MF4_MF4 = 5020,
-  PseudoVLOXSEG8EI16_V_MF4_MF4_MASK = 5021,
-  PseudoVLOXSEG8EI16_V_MF4_MF8 = 5022,
-  PseudoVLOXSEG8EI16_V_MF4_MF8_MASK = 5023,
-  PseudoVLOXSEG8EI32_V_M1_M1 = 5024,
-  PseudoVLOXSEG8EI32_V_M1_M1_MASK = 5025,
-  PseudoVLOXSEG8EI32_V_M1_MF2 = 5026,
-  PseudoVLOXSEG8EI32_V_M1_MF2_MASK = 5027,
-  PseudoVLOXSEG8EI32_V_M1_MF4 = 5028,
-  PseudoVLOXSEG8EI32_V_M1_MF4_MASK = 5029,
-  PseudoVLOXSEG8EI32_V_M2_M1 = 5030,
-  PseudoVLOXSEG8EI32_V_M2_M1_MASK = 5031,
-  PseudoVLOXSEG8EI32_V_M2_MF2 = 5032,
-  PseudoVLOXSEG8EI32_V_M2_MF2_MASK = 5033,
-  PseudoVLOXSEG8EI32_V_M4_M1 = 5034,
-  PseudoVLOXSEG8EI32_V_M4_M1_MASK = 5035,
-  PseudoVLOXSEG8EI32_V_MF2_M1 = 5036,
-  PseudoVLOXSEG8EI32_V_MF2_M1_MASK = 5037,
-  PseudoVLOXSEG8EI32_V_MF2_MF2 = 5038,
-  PseudoVLOXSEG8EI32_V_MF2_MF2_MASK = 5039,
-  PseudoVLOXSEG8EI32_V_MF2_MF4 = 5040,
-  PseudoVLOXSEG8EI32_V_MF2_MF4_MASK = 5041,
-  PseudoVLOXSEG8EI32_V_MF2_MF8 = 5042,
-  PseudoVLOXSEG8EI32_V_MF2_MF8_MASK = 5043,
-  PseudoVLOXSEG8EI64_V_M1_M1 = 5044,
-  PseudoVLOXSEG8EI64_V_M1_M1_MASK = 5045,
-  PseudoVLOXSEG8EI64_V_M1_MF2 = 5046,
-  PseudoVLOXSEG8EI64_V_M1_MF2_MASK = 5047,
-  PseudoVLOXSEG8EI64_V_M1_MF4 = 5048,
-  PseudoVLOXSEG8EI64_V_M1_MF4_MASK = 5049,
-  PseudoVLOXSEG8EI64_V_M1_MF8 = 5050,
-  PseudoVLOXSEG8EI64_V_M1_MF8_MASK = 5051,
-  PseudoVLOXSEG8EI64_V_M2_M1 = 5052,
-  PseudoVLOXSEG8EI64_V_M2_M1_MASK = 5053,
-  PseudoVLOXSEG8EI64_V_M2_MF2 = 5054,
-  PseudoVLOXSEG8EI64_V_M2_MF2_MASK = 5055,
-  PseudoVLOXSEG8EI64_V_M2_MF4 = 5056,
-  PseudoVLOXSEG8EI64_V_M2_MF4_MASK = 5057,
-  PseudoVLOXSEG8EI64_V_M4_M1 = 5058,
-  PseudoVLOXSEG8EI64_V_M4_M1_MASK = 5059,
-  PseudoVLOXSEG8EI64_V_M4_MF2 = 5060,
-  PseudoVLOXSEG8EI64_V_M4_MF2_MASK = 5061,
-  PseudoVLOXSEG8EI64_V_M8_M1 = 5062,
-  PseudoVLOXSEG8EI64_V_M8_M1_MASK = 5063,
-  PseudoVLOXSEG8EI8_V_M1_M1 = 5064,
-  PseudoVLOXSEG8EI8_V_M1_M1_MASK = 5065,
-  PseudoVLOXSEG8EI8_V_MF2_M1 = 5066,
-  PseudoVLOXSEG8EI8_V_MF2_M1_MASK = 5067,
-  PseudoVLOXSEG8EI8_V_MF2_MF2 = 5068,
-  PseudoVLOXSEG8EI8_V_MF2_MF2_MASK = 5069,
-  PseudoVLOXSEG8EI8_V_MF4_M1 = 5070,
-  PseudoVLOXSEG8EI8_V_MF4_M1_MASK = 5071,
-  PseudoVLOXSEG8EI8_V_MF4_MF2 = 5072,
-  PseudoVLOXSEG8EI8_V_MF4_MF2_MASK = 5073,
-  PseudoVLOXSEG8EI8_V_MF4_MF4 = 5074,
-  PseudoVLOXSEG8EI8_V_MF4_MF4_MASK = 5075,
-  PseudoVLOXSEG8EI8_V_MF8_M1 = 5076,
-  PseudoVLOXSEG8EI8_V_MF8_M1_MASK = 5077,
-  PseudoVLOXSEG8EI8_V_MF8_MF2 = 5078,
-  PseudoVLOXSEG8EI8_V_MF8_MF2_MASK = 5079,
-  PseudoVLOXSEG8EI8_V_MF8_MF4 = 5080,
-  PseudoVLOXSEG8EI8_V_MF8_MF4_MASK = 5081,
-  PseudoVLOXSEG8EI8_V_MF8_MF8 = 5082,
-  PseudoVLOXSEG8EI8_V_MF8_MF8_MASK = 5083,
-  PseudoVLSE16_V_M1 = 5084,
-  PseudoVLSE16_V_M1_MASK = 5085,
-  PseudoVLSE16_V_M2 = 5086,
-  PseudoVLSE16_V_M2_MASK = 5087,
-  PseudoVLSE16_V_M4 = 5088,
-  PseudoVLSE16_V_M4_MASK = 5089,
-  PseudoVLSE16_V_M8 = 5090,
-  PseudoVLSE16_V_M8_MASK = 5091,
-  PseudoVLSE16_V_MF2 = 5092,
-  PseudoVLSE16_V_MF2_MASK = 5093,
-  PseudoVLSE16_V_MF4 = 5094,
-  PseudoVLSE16_V_MF4_MASK = 5095,
-  PseudoVLSE32_V_M1 = 5096,
-  PseudoVLSE32_V_M1_MASK = 5097,
-  PseudoVLSE32_V_M2 = 5098,
-  PseudoVLSE32_V_M2_MASK = 5099,
-  PseudoVLSE32_V_M4 = 5100,
-  PseudoVLSE32_V_M4_MASK = 5101,
-  PseudoVLSE32_V_M8 = 5102,
-  PseudoVLSE32_V_M8_MASK = 5103,
-  PseudoVLSE32_V_MF2 = 5104,
-  PseudoVLSE32_V_MF2_MASK = 5105,
-  PseudoVLSE64_V_M1 = 5106,
-  PseudoVLSE64_V_M1_MASK = 5107,
-  PseudoVLSE64_V_M2 = 5108,
-  PseudoVLSE64_V_M2_MASK = 5109,
-  PseudoVLSE64_V_M4 = 5110,
-  PseudoVLSE64_V_M4_MASK = 5111,
-  PseudoVLSE64_V_M8 = 5112,
-  PseudoVLSE64_V_M8_MASK = 5113,
-  PseudoVLSE8_V_M1 = 5114,
-  PseudoVLSE8_V_M1_MASK = 5115,
-  PseudoVLSE8_V_M2 = 5116,
-  PseudoVLSE8_V_M2_MASK = 5117,
-  PseudoVLSE8_V_M4 = 5118,
-  PseudoVLSE8_V_M4_MASK = 5119,
-  PseudoVLSE8_V_M8 = 5120,
-  PseudoVLSE8_V_M8_MASK = 5121,
-  PseudoVLSE8_V_MF2 = 5122,
-  PseudoVLSE8_V_MF2_MASK = 5123,
-  PseudoVLSE8_V_MF4 = 5124,
-  PseudoVLSE8_V_MF4_MASK = 5125,
-  PseudoVLSE8_V_MF8 = 5126,
-  PseudoVLSE8_V_MF8_MASK = 5127,
-  PseudoVLSEG2E16FF_V_M1 = 5128,
-  PseudoVLSEG2E16FF_V_M1_MASK = 5129,
-  PseudoVLSEG2E16FF_V_M2 = 5130,
-  PseudoVLSEG2E16FF_V_M2_MASK = 5131,
-  PseudoVLSEG2E16FF_V_M4 = 5132,
-  PseudoVLSEG2E16FF_V_M4_MASK = 5133,
-  PseudoVLSEG2E16FF_V_MF2 = 5134,
-  PseudoVLSEG2E16FF_V_MF2_MASK = 5135,
-  PseudoVLSEG2E16FF_V_MF4 = 5136,
-  PseudoVLSEG2E16FF_V_MF4_MASK = 5137,
-  PseudoVLSEG2E16_V_M1 = 5138,
-  PseudoVLSEG2E16_V_M1_MASK = 5139,
-  PseudoVLSEG2E16_V_M2 = 5140,
-  PseudoVLSEG2E16_V_M2_MASK = 5141,
-  PseudoVLSEG2E16_V_M4 = 5142,
-  PseudoVLSEG2E16_V_M4_MASK = 5143,
-  PseudoVLSEG2E16_V_MF2 = 5144,
-  PseudoVLSEG2E16_V_MF2_MASK = 5145,
-  PseudoVLSEG2E16_V_MF4 = 5146,
-  PseudoVLSEG2E16_V_MF4_MASK = 5147,
-  PseudoVLSEG2E32FF_V_M1 = 5148,
-  PseudoVLSEG2E32FF_V_M1_MASK = 5149,
-  PseudoVLSEG2E32FF_V_M2 = 5150,
-  PseudoVLSEG2E32FF_V_M2_MASK = 5151,
-  PseudoVLSEG2E32FF_V_M4 = 5152,
-  PseudoVLSEG2E32FF_V_M4_MASK = 5153,
-  PseudoVLSEG2E32FF_V_MF2 = 5154,
-  PseudoVLSEG2E32FF_V_MF2_MASK = 5155,
-  PseudoVLSEG2E32_V_M1 = 5156,
-  PseudoVLSEG2E32_V_M1_MASK = 5157,
-  PseudoVLSEG2E32_V_M2 = 5158,
-  PseudoVLSEG2E32_V_M2_MASK = 5159,
-  PseudoVLSEG2E32_V_M4 = 5160,
-  PseudoVLSEG2E32_V_M4_MASK = 5161,
-  PseudoVLSEG2E32_V_MF2 = 5162,
-  PseudoVLSEG2E32_V_MF2_MASK = 5163,
-  PseudoVLSEG2E64FF_V_M1 = 5164,
-  PseudoVLSEG2E64FF_V_M1_MASK = 5165,
-  PseudoVLSEG2E64FF_V_M2 = 5166,
-  PseudoVLSEG2E64FF_V_M2_MASK = 5167,
-  PseudoVLSEG2E64FF_V_M4 = 5168,
-  PseudoVLSEG2E64FF_V_M4_MASK = 5169,
-  PseudoVLSEG2E64_V_M1 = 5170,
-  PseudoVLSEG2E64_V_M1_MASK = 5171,
-  PseudoVLSEG2E64_V_M2 = 5172,
-  PseudoVLSEG2E64_V_M2_MASK = 5173,
-  PseudoVLSEG2E64_V_M4 = 5174,
-  PseudoVLSEG2E64_V_M4_MASK = 5175,
-  PseudoVLSEG2E8FF_V_M1 = 5176,
-  PseudoVLSEG2E8FF_V_M1_MASK = 5177,
-  PseudoVLSEG2E8FF_V_M2 = 5178,
-  PseudoVLSEG2E8FF_V_M2_MASK = 5179,
-  PseudoVLSEG2E8FF_V_M4 = 5180,
-  PseudoVLSEG2E8FF_V_M4_MASK = 5181,
-  PseudoVLSEG2E8FF_V_MF2 = 5182,
-  PseudoVLSEG2E8FF_V_MF2_MASK = 5183,
-  PseudoVLSEG2E8FF_V_MF4 = 5184,
-  PseudoVLSEG2E8FF_V_MF4_MASK = 5185,
-  PseudoVLSEG2E8FF_V_MF8 = 5186,
-  PseudoVLSEG2E8FF_V_MF8_MASK = 5187,
-  PseudoVLSEG2E8_V_M1 = 5188,
-  PseudoVLSEG2E8_V_M1_MASK = 5189,
-  PseudoVLSEG2E8_V_M2 = 5190,
-  PseudoVLSEG2E8_V_M2_MASK = 5191,
-  PseudoVLSEG2E8_V_M4 = 5192,
-  PseudoVLSEG2E8_V_M4_MASK = 5193,
-  PseudoVLSEG2E8_V_MF2 = 5194,
-  PseudoVLSEG2E8_V_MF2_MASK = 5195,
-  PseudoVLSEG2E8_V_MF4 = 5196,
-  PseudoVLSEG2E8_V_MF4_MASK = 5197,
-  PseudoVLSEG2E8_V_MF8 = 5198,
-  PseudoVLSEG2E8_V_MF8_MASK = 5199,
-  PseudoVLSEG3E16FF_V_M1 = 5200,
-  PseudoVLSEG3E16FF_V_M1_MASK = 5201,
-  PseudoVLSEG3E16FF_V_M2 = 5202,
-  PseudoVLSEG3E16FF_V_M2_MASK = 5203,
-  PseudoVLSEG3E16FF_V_MF2 = 5204,
-  PseudoVLSEG3E16FF_V_MF2_MASK = 5205,
-  PseudoVLSEG3E16FF_V_MF4 = 5206,
-  PseudoVLSEG3E16FF_V_MF4_MASK = 5207,
-  PseudoVLSEG3E16_V_M1 = 5208,
-  PseudoVLSEG3E16_V_M1_MASK = 5209,
-  PseudoVLSEG3E16_V_M2 = 5210,
-  PseudoVLSEG3E16_V_M2_MASK = 5211,
-  PseudoVLSEG3E16_V_MF2 = 5212,
-  PseudoVLSEG3E16_V_MF2_MASK = 5213,
-  PseudoVLSEG3E16_V_MF4 = 5214,
-  PseudoVLSEG3E16_V_MF4_MASK = 5215,
-  PseudoVLSEG3E32FF_V_M1 = 5216,
-  PseudoVLSEG3E32FF_V_M1_MASK = 5217,
-  PseudoVLSEG3E32FF_V_M2 = 5218,
-  PseudoVLSEG3E32FF_V_M2_MASK = 5219,
-  PseudoVLSEG3E32FF_V_MF2 = 5220,
-  PseudoVLSEG3E32FF_V_MF2_MASK = 5221,
-  PseudoVLSEG3E32_V_M1 = 5222,
-  PseudoVLSEG3E32_V_M1_MASK = 5223,
-  PseudoVLSEG3E32_V_M2 = 5224,
-  PseudoVLSEG3E32_V_M2_MASK = 5225,
-  PseudoVLSEG3E32_V_MF2 = 5226,
-  PseudoVLSEG3E32_V_MF2_MASK = 5227,
-  PseudoVLSEG3E64FF_V_M1 = 5228,
-  PseudoVLSEG3E64FF_V_M1_MASK = 5229,
-  PseudoVLSEG3E64FF_V_M2 = 5230,
-  PseudoVLSEG3E64FF_V_M2_MASK = 5231,
-  PseudoVLSEG3E64_V_M1 = 5232,
-  PseudoVLSEG3E64_V_M1_MASK = 5233,
-  PseudoVLSEG3E64_V_M2 = 5234,
-  PseudoVLSEG3E64_V_M2_MASK = 5235,
-  PseudoVLSEG3E8FF_V_M1 = 5236,
-  PseudoVLSEG3E8FF_V_M1_MASK = 5237,
-  PseudoVLSEG3E8FF_V_M2 = 5238,
-  PseudoVLSEG3E8FF_V_M2_MASK = 5239,
-  PseudoVLSEG3E8FF_V_MF2 = 5240,
-  PseudoVLSEG3E8FF_V_MF2_MASK = 5241,
-  PseudoVLSEG3E8FF_V_MF4 = 5242,
-  PseudoVLSEG3E8FF_V_MF4_MASK = 5243,
-  PseudoVLSEG3E8FF_V_MF8 = 5244,
-  PseudoVLSEG3E8FF_V_MF8_MASK = 5245,
-  PseudoVLSEG3E8_V_M1 = 5246,
-  PseudoVLSEG3E8_V_M1_MASK = 5247,
-  PseudoVLSEG3E8_V_M2 = 5248,
-  PseudoVLSEG3E8_V_M2_MASK = 5249,
-  PseudoVLSEG3E8_V_MF2 = 5250,
-  PseudoVLSEG3E8_V_MF2_MASK = 5251,
-  PseudoVLSEG3E8_V_MF4 = 5252,
-  PseudoVLSEG3E8_V_MF4_MASK = 5253,
-  PseudoVLSEG3E8_V_MF8 = 5254,
-  PseudoVLSEG3E8_V_MF8_MASK = 5255,
-  PseudoVLSEG4E16FF_V_M1 = 5256,
-  PseudoVLSEG4E16FF_V_M1_MASK = 5257,
-  PseudoVLSEG4E16FF_V_M2 = 5258,
-  PseudoVLSEG4E16FF_V_M2_MASK = 5259,
-  PseudoVLSEG4E16FF_V_MF2 = 5260,
-  PseudoVLSEG4E16FF_V_MF2_MASK = 5261,
-  PseudoVLSEG4E16FF_V_MF4 = 5262,
-  PseudoVLSEG4E16FF_V_MF4_MASK = 5263,
-  PseudoVLSEG4E16_V_M1 = 5264,
-  PseudoVLSEG4E16_V_M1_MASK = 5265,
-  PseudoVLSEG4E16_V_M2 = 5266,
-  PseudoVLSEG4E16_V_M2_MASK = 5267,
-  PseudoVLSEG4E16_V_MF2 = 5268,
-  PseudoVLSEG4E16_V_MF2_MASK = 5269,
-  PseudoVLSEG4E16_V_MF4 = 5270,
-  PseudoVLSEG4E16_V_MF4_MASK = 5271,
-  PseudoVLSEG4E32FF_V_M1 = 5272,
-  PseudoVLSEG4E32FF_V_M1_MASK = 5273,
-  PseudoVLSEG4E32FF_V_M2 = 5274,
-  PseudoVLSEG4E32FF_V_M2_MASK = 5275,
-  PseudoVLSEG4E32FF_V_MF2 = 5276,
-  PseudoVLSEG4E32FF_V_MF2_MASK = 5277,
-  PseudoVLSEG4E32_V_M1 = 5278,
-  PseudoVLSEG4E32_V_M1_MASK = 5279,
-  PseudoVLSEG4E32_V_M2 = 5280,
-  PseudoVLSEG4E32_V_M2_MASK = 5281,
-  PseudoVLSEG4E32_V_MF2 = 5282,
-  PseudoVLSEG4E32_V_MF2_MASK = 5283,
-  PseudoVLSEG4E64FF_V_M1 = 5284,
-  PseudoVLSEG4E64FF_V_M1_MASK = 5285,
-  PseudoVLSEG4E64FF_V_M2 = 5286,
-  PseudoVLSEG4E64FF_V_M2_MASK = 5287,
-  PseudoVLSEG4E64_V_M1 = 5288,
-  PseudoVLSEG4E64_V_M1_MASK = 5289,
-  PseudoVLSEG4E64_V_M2 = 5290,
-  PseudoVLSEG4E64_V_M2_MASK = 5291,
-  PseudoVLSEG4E8FF_V_M1 = 5292,
-  PseudoVLSEG4E8FF_V_M1_MASK = 5293,
-  PseudoVLSEG4E8FF_V_M2 = 5294,
-  PseudoVLSEG4E8FF_V_M2_MASK = 5295,
-  PseudoVLSEG4E8FF_V_MF2 = 5296,
-  PseudoVLSEG4E8FF_V_MF2_MASK = 5297,
-  PseudoVLSEG4E8FF_V_MF4 = 5298,
-  PseudoVLSEG4E8FF_V_MF4_MASK = 5299,
-  PseudoVLSEG4E8FF_V_MF8 = 5300,
-  PseudoVLSEG4E8FF_V_MF8_MASK = 5301,
-  PseudoVLSEG4E8_V_M1 = 5302,
-  PseudoVLSEG4E8_V_M1_MASK = 5303,
-  PseudoVLSEG4E8_V_M2 = 5304,
-  PseudoVLSEG4E8_V_M2_MASK = 5305,
-  PseudoVLSEG4E8_V_MF2 = 5306,
-  PseudoVLSEG4E8_V_MF2_MASK = 5307,
-  PseudoVLSEG4E8_V_MF4 = 5308,
-  PseudoVLSEG4E8_V_MF4_MASK = 5309,
-  PseudoVLSEG4E8_V_MF8 = 5310,
-  PseudoVLSEG4E8_V_MF8_MASK = 5311,
-  PseudoVLSEG5E16FF_V_M1 = 5312,
-  PseudoVLSEG5E16FF_V_M1_MASK = 5313,
-  PseudoVLSEG5E16FF_V_MF2 = 5314,
-  PseudoVLSEG5E16FF_V_MF2_MASK = 5315,
-  PseudoVLSEG5E16FF_V_MF4 = 5316,
-  PseudoVLSEG5E16FF_V_MF4_MASK = 5317,
-  PseudoVLSEG5E16_V_M1 = 5318,
-  PseudoVLSEG5E16_V_M1_MASK = 5319,
-  PseudoVLSEG5E16_V_MF2 = 5320,
-  PseudoVLSEG5E16_V_MF2_MASK = 5321,
-  PseudoVLSEG5E16_V_MF4 = 5322,
-  PseudoVLSEG5E16_V_MF4_MASK = 5323,
-  PseudoVLSEG5E32FF_V_M1 = 5324,
-  PseudoVLSEG5E32FF_V_M1_MASK = 5325,
-  PseudoVLSEG5E32FF_V_MF2 = 5326,
-  PseudoVLSEG5E32FF_V_MF2_MASK = 5327,
-  PseudoVLSEG5E32_V_M1 = 5328,
-  PseudoVLSEG5E32_V_M1_MASK = 5329,
-  PseudoVLSEG5E32_V_MF2 = 5330,
-  PseudoVLSEG5E32_V_MF2_MASK = 5331,
-  PseudoVLSEG5E64FF_V_M1 = 5332,
-  PseudoVLSEG5E64FF_V_M1_MASK = 5333,
-  PseudoVLSEG5E64_V_M1 = 5334,
-  PseudoVLSEG5E64_V_M1_MASK = 5335,
-  PseudoVLSEG5E8FF_V_M1 = 5336,
-  PseudoVLSEG5E8FF_V_M1_MASK = 5337,
-  PseudoVLSEG5E8FF_V_MF2 = 5338,
-  PseudoVLSEG5E8FF_V_MF2_MASK = 5339,
-  PseudoVLSEG5E8FF_V_MF4 = 5340,
-  PseudoVLSEG5E8FF_V_MF4_MASK = 5341,
-  PseudoVLSEG5E8FF_V_MF8 = 5342,
-  PseudoVLSEG5E8FF_V_MF8_MASK = 5343,
-  PseudoVLSEG5E8_V_M1 = 5344,
-  PseudoVLSEG5E8_V_M1_MASK = 5345,
-  PseudoVLSEG5E8_V_MF2 = 5346,
-  PseudoVLSEG5E8_V_MF2_MASK = 5347,
-  PseudoVLSEG5E8_V_MF4 = 5348,
-  PseudoVLSEG5E8_V_MF4_MASK = 5349,
-  PseudoVLSEG5E8_V_MF8 = 5350,
-  PseudoVLSEG5E8_V_MF8_MASK = 5351,
-  PseudoVLSEG6E16FF_V_M1 = 5352,
-  PseudoVLSEG6E16FF_V_M1_MASK = 5353,
-  PseudoVLSEG6E16FF_V_MF2 = 5354,
-  PseudoVLSEG6E16FF_V_MF2_MASK = 5355,
-  PseudoVLSEG6E16FF_V_MF4 = 5356,
-  PseudoVLSEG6E16FF_V_MF4_MASK = 5357,
-  PseudoVLSEG6E16_V_M1 = 5358,
-  PseudoVLSEG6E16_V_M1_MASK = 5359,
-  PseudoVLSEG6E16_V_MF2 = 5360,
-  PseudoVLSEG6E16_V_MF2_MASK = 5361,
-  PseudoVLSEG6E16_V_MF4 = 5362,
-  PseudoVLSEG6E16_V_MF4_MASK = 5363,
-  PseudoVLSEG6E32FF_V_M1 = 5364,
-  PseudoVLSEG6E32FF_V_M1_MASK = 5365,
-  PseudoVLSEG6E32FF_V_MF2 = 5366,
-  PseudoVLSEG6E32FF_V_MF2_MASK = 5367,
-  PseudoVLSEG6E32_V_M1 = 5368,
-  PseudoVLSEG6E32_V_M1_MASK = 5369,
-  PseudoVLSEG6E32_V_MF2 = 5370,
-  PseudoVLSEG6E32_V_MF2_MASK = 5371,
-  PseudoVLSEG6E64FF_V_M1 = 5372,
-  PseudoVLSEG6E64FF_V_M1_MASK = 5373,
-  PseudoVLSEG6E64_V_M1 = 5374,
-  PseudoVLSEG6E64_V_M1_MASK = 5375,
-  PseudoVLSEG6E8FF_V_M1 = 5376,
-  PseudoVLSEG6E8FF_V_M1_MASK = 5377,
-  PseudoVLSEG6E8FF_V_MF2 = 5378,
-  PseudoVLSEG6E8FF_V_MF2_MASK = 5379,
-  PseudoVLSEG6E8FF_V_MF4 = 5380,
-  PseudoVLSEG6E8FF_V_MF4_MASK = 5381,
-  PseudoVLSEG6E8FF_V_MF8 = 5382,
-  PseudoVLSEG6E8FF_V_MF8_MASK = 5383,
-  PseudoVLSEG6E8_V_M1 = 5384,
-  PseudoVLSEG6E8_V_M1_MASK = 5385,
-  PseudoVLSEG6E8_V_MF2 = 5386,
-  PseudoVLSEG6E8_V_MF2_MASK = 5387,
-  PseudoVLSEG6E8_V_MF4 = 5388,
-  PseudoVLSEG6E8_V_MF4_MASK = 5389,
-  PseudoVLSEG6E8_V_MF8 = 5390,
-  PseudoVLSEG6E8_V_MF8_MASK = 5391,
-  PseudoVLSEG7E16FF_V_M1 = 5392,
-  PseudoVLSEG7E16FF_V_M1_MASK = 5393,
-  PseudoVLSEG7E16FF_V_MF2 = 5394,
-  PseudoVLSEG7E16FF_V_MF2_MASK = 5395,
-  PseudoVLSEG7E16FF_V_MF4 = 5396,
-  PseudoVLSEG7E16FF_V_MF4_MASK = 5397,
-  PseudoVLSEG7E16_V_M1 = 5398,
-  PseudoVLSEG7E16_V_M1_MASK = 5399,
-  PseudoVLSEG7E16_V_MF2 = 5400,
-  PseudoVLSEG7E16_V_MF2_MASK = 5401,
-  PseudoVLSEG7E16_V_MF4 = 5402,
-  PseudoVLSEG7E16_V_MF4_MASK = 5403,
-  PseudoVLSEG7E32FF_V_M1 = 5404,
-  PseudoVLSEG7E32FF_V_M1_MASK = 5405,
-  PseudoVLSEG7E32FF_V_MF2 = 5406,
-  PseudoVLSEG7E32FF_V_MF2_MASK = 5407,
-  PseudoVLSEG7E32_V_M1 = 5408,
-  PseudoVLSEG7E32_V_M1_MASK = 5409,
-  PseudoVLSEG7E32_V_MF2 = 5410,
-  PseudoVLSEG7E32_V_MF2_MASK = 5411,
-  PseudoVLSEG7E64FF_V_M1 = 5412,
-  PseudoVLSEG7E64FF_V_M1_MASK = 5413,
-  PseudoVLSEG7E64_V_M1 = 5414,
-  PseudoVLSEG7E64_V_M1_MASK = 5415,
-  PseudoVLSEG7E8FF_V_M1 = 5416,
-  PseudoVLSEG7E8FF_V_M1_MASK = 5417,
-  PseudoVLSEG7E8FF_V_MF2 = 5418,
-  PseudoVLSEG7E8FF_V_MF2_MASK = 5419,
-  PseudoVLSEG7E8FF_V_MF4 = 5420,
-  PseudoVLSEG7E8FF_V_MF4_MASK = 5421,
-  PseudoVLSEG7E8FF_V_MF8 = 5422,
-  PseudoVLSEG7E8FF_V_MF8_MASK = 5423,
-  PseudoVLSEG7E8_V_M1 = 5424,
-  PseudoVLSEG7E8_V_M1_MASK = 5425,
-  PseudoVLSEG7E8_V_MF2 = 5426,
-  PseudoVLSEG7E8_V_MF2_MASK = 5427,
-  PseudoVLSEG7E8_V_MF4 = 5428,
-  PseudoVLSEG7E8_V_MF4_MASK = 5429,
-  PseudoVLSEG7E8_V_MF8 = 5430,
-  PseudoVLSEG7E8_V_MF8_MASK = 5431,
-  PseudoVLSEG8E16FF_V_M1 = 5432,
-  PseudoVLSEG8E16FF_V_M1_MASK = 5433,
-  PseudoVLSEG8E16FF_V_MF2 = 5434,
-  PseudoVLSEG8E16FF_V_MF2_MASK = 5435,
-  PseudoVLSEG8E16FF_V_MF4 = 5436,
-  PseudoVLSEG8E16FF_V_MF4_MASK = 5437,
-  PseudoVLSEG8E16_V_M1 = 5438,
-  PseudoVLSEG8E16_V_M1_MASK = 5439,
-  PseudoVLSEG8E16_V_MF2 = 5440,
-  PseudoVLSEG8E16_V_MF2_MASK = 5441,
-  PseudoVLSEG8E16_V_MF4 = 5442,
-  PseudoVLSEG8E16_V_MF4_MASK = 5443,
-  PseudoVLSEG8E32FF_V_M1 = 5444,
-  PseudoVLSEG8E32FF_V_M1_MASK = 5445,
-  PseudoVLSEG8E32FF_V_MF2 = 5446,
-  PseudoVLSEG8E32FF_V_MF2_MASK = 5447,
-  PseudoVLSEG8E32_V_M1 = 5448,
-  PseudoVLSEG8E32_V_M1_MASK = 5449,
-  PseudoVLSEG8E32_V_MF2 = 5450,
-  PseudoVLSEG8E32_V_MF2_MASK = 5451,
-  PseudoVLSEG8E64FF_V_M1 = 5452,
-  PseudoVLSEG8E64FF_V_M1_MASK = 5453,
-  PseudoVLSEG8E64_V_M1 = 5454,
-  PseudoVLSEG8E64_V_M1_MASK = 5455,
-  PseudoVLSEG8E8FF_V_M1 = 5456,
-  PseudoVLSEG8E8FF_V_M1_MASK = 5457,
-  PseudoVLSEG8E8FF_V_MF2 = 5458,
-  PseudoVLSEG8E8FF_V_MF2_MASK = 5459,
-  PseudoVLSEG8E8FF_V_MF4 = 5460,
-  PseudoVLSEG8E8FF_V_MF4_MASK = 5461,
-  PseudoVLSEG8E8FF_V_MF8 = 5462,
-  PseudoVLSEG8E8FF_V_MF8_MASK = 5463,
-  PseudoVLSEG8E8_V_M1 = 5464,
-  PseudoVLSEG8E8_V_M1_MASK = 5465,
-  PseudoVLSEG8E8_V_MF2 = 5466,
-  PseudoVLSEG8E8_V_MF2_MASK = 5467,
-  PseudoVLSEG8E8_V_MF4 = 5468,
-  PseudoVLSEG8E8_V_MF4_MASK = 5469,
-  PseudoVLSEG8E8_V_MF8 = 5470,
-  PseudoVLSEG8E8_V_MF8_MASK = 5471,
-  PseudoVLSSEG2E16_V_M1 = 5472,
-  PseudoVLSSEG2E16_V_M1_MASK = 5473,
-  PseudoVLSSEG2E16_V_M2 = 5474,
-  PseudoVLSSEG2E16_V_M2_MASK = 5475,
-  PseudoVLSSEG2E16_V_M4 = 5476,
-  PseudoVLSSEG2E16_V_M4_MASK = 5477,
-  PseudoVLSSEG2E16_V_MF2 = 5478,
-  PseudoVLSSEG2E16_V_MF2_MASK = 5479,
-  PseudoVLSSEG2E16_V_MF4 = 5480,
-  PseudoVLSSEG2E16_V_MF4_MASK = 5481,
-  PseudoVLSSEG2E32_V_M1 = 5482,
-  PseudoVLSSEG2E32_V_M1_MASK = 5483,
-  PseudoVLSSEG2E32_V_M2 = 5484,
-  PseudoVLSSEG2E32_V_M2_MASK = 5485,
-  PseudoVLSSEG2E32_V_M4 = 5486,
-  PseudoVLSSEG2E32_V_M4_MASK = 5487,
-  PseudoVLSSEG2E32_V_MF2 = 5488,
-  PseudoVLSSEG2E32_V_MF2_MASK = 5489,
-  PseudoVLSSEG2E64_V_M1 = 5490,
-  PseudoVLSSEG2E64_V_M1_MASK = 5491,
-  PseudoVLSSEG2E64_V_M2 = 5492,
-  PseudoVLSSEG2E64_V_M2_MASK = 5493,
-  PseudoVLSSEG2E64_V_M4 = 5494,
-  PseudoVLSSEG2E64_V_M4_MASK = 5495,
-  PseudoVLSSEG2E8_V_M1 = 5496,
-  PseudoVLSSEG2E8_V_M1_MASK = 5497,
-  PseudoVLSSEG2E8_V_M2 = 5498,
-  PseudoVLSSEG2E8_V_M2_MASK = 5499,
-  PseudoVLSSEG2E8_V_M4 = 5500,
-  PseudoVLSSEG2E8_V_M4_MASK = 5501,
-  PseudoVLSSEG2E8_V_MF2 = 5502,
-  PseudoVLSSEG2E8_V_MF2_MASK = 5503,
-  PseudoVLSSEG2E8_V_MF4 = 5504,
-  PseudoVLSSEG2E8_V_MF4_MASK = 5505,
-  PseudoVLSSEG2E8_V_MF8 = 5506,
-  PseudoVLSSEG2E8_V_MF8_MASK = 5507,
-  PseudoVLSSEG3E16_V_M1 = 5508,
-  PseudoVLSSEG3E16_V_M1_MASK = 5509,
-  PseudoVLSSEG3E16_V_M2 = 5510,
-  PseudoVLSSEG3E16_V_M2_MASK = 5511,
-  PseudoVLSSEG3E16_V_MF2 = 5512,
-  PseudoVLSSEG3E16_V_MF2_MASK = 5513,
-  PseudoVLSSEG3E16_V_MF4 = 5514,
-  PseudoVLSSEG3E16_V_MF4_MASK = 5515,
-  PseudoVLSSEG3E32_V_M1 = 5516,
-  PseudoVLSSEG3E32_V_M1_MASK = 5517,
-  PseudoVLSSEG3E32_V_M2 = 5518,
-  PseudoVLSSEG3E32_V_M2_MASK = 5519,
-  PseudoVLSSEG3E32_V_MF2 = 5520,
-  PseudoVLSSEG3E32_V_MF2_MASK = 5521,
-  PseudoVLSSEG3E64_V_M1 = 5522,
-  PseudoVLSSEG3E64_V_M1_MASK = 5523,
-  PseudoVLSSEG3E64_V_M2 = 5524,
-  PseudoVLSSEG3E64_V_M2_MASK = 5525,
-  PseudoVLSSEG3E8_V_M1 = 5526,
-  PseudoVLSSEG3E8_V_M1_MASK = 5527,
-  PseudoVLSSEG3E8_V_M2 = 5528,
-  PseudoVLSSEG3E8_V_M2_MASK = 5529,
-  PseudoVLSSEG3E8_V_MF2 = 5530,
-  PseudoVLSSEG3E8_V_MF2_MASK = 5531,
-  PseudoVLSSEG3E8_V_MF4 = 5532,
-  PseudoVLSSEG3E8_V_MF4_MASK = 5533,
-  PseudoVLSSEG3E8_V_MF8 = 5534,
-  PseudoVLSSEG3E8_V_MF8_MASK = 5535,
-  PseudoVLSSEG4E16_V_M1 = 5536,
-  PseudoVLSSEG4E16_V_M1_MASK = 5537,
-  PseudoVLSSEG4E16_V_M2 = 5538,
-  PseudoVLSSEG4E16_V_M2_MASK = 5539,
-  PseudoVLSSEG4E16_V_MF2 = 5540,
-  PseudoVLSSEG4E16_V_MF2_MASK = 5541,
-  PseudoVLSSEG4E16_V_MF4 = 5542,
-  PseudoVLSSEG4E16_V_MF4_MASK = 5543,
-  PseudoVLSSEG4E32_V_M1 = 5544,
-  PseudoVLSSEG4E32_V_M1_MASK = 5545,
-  PseudoVLSSEG4E32_V_M2 = 5546,
-  PseudoVLSSEG4E32_V_M2_MASK = 5547,
-  PseudoVLSSEG4E32_V_MF2 = 5548,
-  PseudoVLSSEG4E32_V_MF2_MASK = 5549,
-  PseudoVLSSEG4E64_V_M1 = 5550,
-  PseudoVLSSEG4E64_V_M1_MASK = 5551,
-  PseudoVLSSEG4E64_V_M2 = 5552,
-  PseudoVLSSEG4E64_V_M2_MASK = 5553,
-  PseudoVLSSEG4E8_V_M1 = 5554,
-  PseudoVLSSEG4E8_V_M1_MASK = 5555,
-  PseudoVLSSEG4E8_V_M2 = 5556,
-  PseudoVLSSEG4E8_V_M2_MASK = 5557,
-  PseudoVLSSEG4E8_V_MF2 = 5558,
-  PseudoVLSSEG4E8_V_MF2_MASK = 5559,
-  PseudoVLSSEG4E8_V_MF4 = 5560,
-  PseudoVLSSEG4E8_V_MF4_MASK = 5561,
-  PseudoVLSSEG4E8_V_MF8 = 5562,
-  PseudoVLSSEG4E8_V_MF8_MASK = 5563,
-  PseudoVLSSEG5E16_V_M1 = 5564,
-  PseudoVLSSEG5E16_V_M1_MASK = 5565,
-  PseudoVLSSEG5E16_V_MF2 = 5566,
-  PseudoVLSSEG5E16_V_MF2_MASK = 5567,
-  PseudoVLSSEG5E16_V_MF4 = 5568,
-  PseudoVLSSEG5E16_V_MF4_MASK = 5569,
-  PseudoVLSSEG5E32_V_M1 = 5570,
-  PseudoVLSSEG5E32_V_M1_MASK = 5571,
-  PseudoVLSSEG5E32_V_MF2 = 5572,
-  PseudoVLSSEG5E32_V_MF2_MASK = 5573,
-  PseudoVLSSEG5E64_V_M1 = 5574,
-  PseudoVLSSEG5E64_V_M1_MASK = 5575,
-  PseudoVLSSEG5E8_V_M1 = 5576,
-  PseudoVLSSEG5E8_V_M1_MASK = 5577,
-  PseudoVLSSEG5E8_V_MF2 = 5578,
-  PseudoVLSSEG5E8_V_MF2_MASK = 5579,
-  PseudoVLSSEG5E8_V_MF4 = 5580,
-  PseudoVLSSEG5E8_V_MF4_MASK = 5581,
-  PseudoVLSSEG5E8_V_MF8 = 5582,
-  PseudoVLSSEG5E8_V_MF8_MASK = 5583,
-  PseudoVLSSEG6E16_V_M1 = 5584,
-  PseudoVLSSEG6E16_V_M1_MASK = 5585,
-  PseudoVLSSEG6E16_V_MF2 = 5586,
-  PseudoVLSSEG6E16_V_MF2_MASK = 5587,
-  PseudoVLSSEG6E16_V_MF4 = 5588,
-  PseudoVLSSEG6E16_V_MF4_MASK = 5589,
-  PseudoVLSSEG6E32_V_M1 = 5590,
-  PseudoVLSSEG6E32_V_M1_MASK = 5591,
-  PseudoVLSSEG6E32_V_MF2 = 5592,
-  PseudoVLSSEG6E32_V_MF2_MASK = 5593,
-  PseudoVLSSEG6E64_V_M1 = 5594,
-  PseudoVLSSEG6E64_V_M1_MASK = 5595,
-  PseudoVLSSEG6E8_V_M1 = 5596,
-  PseudoVLSSEG6E8_V_M1_MASK = 5597,
-  PseudoVLSSEG6E8_V_MF2 = 5598,
-  PseudoVLSSEG6E8_V_MF2_MASK = 5599,
-  PseudoVLSSEG6E8_V_MF4 = 5600,
-  PseudoVLSSEG6E8_V_MF4_MASK = 5601,
-  PseudoVLSSEG6E8_V_MF8 = 5602,
-  PseudoVLSSEG6E8_V_MF8_MASK = 5603,
-  PseudoVLSSEG7E16_V_M1 = 5604,
-  PseudoVLSSEG7E16_V_M1_MASK = 5605,
-  PseudoVLSSEG7E16_V_MF2 = 5606,
-  PseudoVLSSEG7E16_V_MF2_MASK = 5607,
-  PseudoVLSSEG7E16_V_MF4 = 5608,
-  PseudoVLSSEG7E16_V_MF4_MASK = 5609,
-  PseudoVLSSEG7E32_V_M1 = 5610,
-  PseudoVLSSEG7E32_V_M1_MASK = 5611,
-  PseudoVLSSEG7E32_V_MF2 = 5612,
-  PseudoVLSSEG7E32_V_MF2_MASK = 5613,
-  PseudoVLSSEG7E64_V_M1 = 5614,
-  PseudoVLSSEG7E64_V_M1_MASK = 5615,
-  PseudoVLSSEG7E8_V_M1 = 5616,
-  PseudoVLSSEG7E8_V_M1_MASK = 5617,
-  PseudoVLSSEG7E8_V_MF2 = 5618,
-  PseudoVLSSEG7E8_V_MF2_MASK = 5619,
-  PseudoVLSSEG7E8_V_MF4 = 5620,
-  PseudoVLSSEG7E8_V_MF4_MASK = 5621,
-  PseudoVLSSEG7E8_V_MF8 = 5622,
-  PseudoVLSSEG7E8_V_MF8_MASK = 5623,
-  PseudoVLSSEG8E16_V_M1 = 5624,
-  PseudoVLSSEG8E16_V_M1_MASK = 5625,
-  PseudoVLSSEG8E16_V_MF2 = 5626,
-  PseudoVLSSEG8E16_V_MF2_MASK = 5627,
-  PseudoVLSSEG8E16_V_MF4 = 5628,
-  PseudoVLSSEG8E16_V_MF4_MASK = 5629,
-  PseudoVLSSEG8E32_V_M1 = 5630,
-  PseudoVLSSEG8E32_V_M1_MASK = 5631,
-  PseudoVLSSEG8E32_V_MF2 = 5632,
-  PseudoVLSSEG8E32_V_MF2_MASK = 5633,
-  PseudoVLSSEG8E64_V_M1 = 5634,
-  PseudoVLSSEG8E64_V_M1_MASK = 5635,
-  PseudoVLSSEG8E8_V_M1 = 5636,
-  PseudoVLSSEG8E8_V_M1_MASK = 5637,
-  PseudoVLSSEG8E8_V_MF2 = 5638,
-  PseudoVLSSEG8E8_V_MF2_MASK = 5639,
-  PseudoVLSSEG8E8_V_MF4 = 5640,
-  PseudoVLSSEG8E8_V_MF4_MASK = 5641,
-  PseudoVLSSEG8E8_V_MF8 = 5642,
-  PseudoVLSSEG8E8_V_MF8_MASK = 5643,
-  PseudoVLUXEI16_V_M1_M1 = 5644,
-  PseudoVLUXEI16_V_M1_M1_MASK = 5645,
-  PseudoVLUXEI16_V_M1_M2 = 5646,
-  PseudoVLUXEI16_V_M1_M2_MASK = 5647,
-  PseudoVLUXEI16_V_M1_M4 = 5648,
-  PseudoVLUXEI16_V_M1_M4_MASK = 5649,
-  PseudoVLUXEI16_V_M1_MF2 = 5650,
-  PseudoVLUXEI16_V_M1_MF2_MASK = 5651,
-  PseudoVLUXEI16_V_M2_M1 = 5652,
-  PseudoVLUXEI16_V_M2_M1_MASK = 5653,
-  PseudoVLUXEI16_V_M2_M2 = 5654,
-  PseudoVLUXEI16_V_M2_M2_MASK = 5655,
-  PseudoVLUXEI16_V_M2_M4 = 5656,
-  PseudoVLUXEI16_V_M2_M4_MASK = 5657,
-  PseudoVLUXEI16_V_M2_M8 = 5658,
-  PseudoVLUXEI16_V_M2_M8_MASK = 5659,
-  PseudoVLUXEI16_V_M4_M2 = 5660,
-  PseudoVLUXEI16_V_M4_M2_MASK = 5661,
-  PseudoVLUXEI16_V_M4_M4 = 5662,
-  PseudoVLUXEI16_V_M4_M4_MASK = 5663,
-  PseudoVLUXEI16_V_M4_M8 = 5664,
-  PseudoVLUXEI16_V_M4_M8_MASK = 5665,
-  PseudoVLUXEI16_V_M8_M4 = 5666,
-  PseudoVLUXEI16_V_M8_M4_MASK = 5667,
-  PseudoVLUXEI16_V_M8_M8 = 5668,
-  PseudoVLUXEI16_V_M8_M8_MASK = 5669,
-  PseudoVLUXEI16_V_MF2_M1 = 5670,
-  PseudoVLUXEI16_V_MF2_M1_MASK = 5671,
-  PseudoVLUXEI16_V_MF2_M2 = 5672,
-  PseudoVLUXEI16_V_MF2_M2_MASK = 5673,
-  PseudoVLUXEI16_V_MF2_MF2 = 5674,
-  PseudoVLUXEI16_V_MF2_MF2_MASK = 5675,
-  PseudoVLUXEI16_V_MF2_MF4 = 5676,
-  PseudoVLUXEI16_V_MF2_MF4_MASK = 5677,
-  PseudoVLUXEI16_V_MF4_M1 = 5678,
-  PseudoVLUXEI16_V_MF4_M1_MASK = 5679,
-  PseudoVLUXEI16_V_MF4_MF2 = 5680,
-  PseudoVLUXEI16_V_MF4_MF2_MASK = 5681,
-  PseudoVLUXEI16_V_MF4_MF4 = 5682,
-  PseudoVLUXEI16_V_MF4_MF4_MASK = 5683,
-  PseudoVLUXEI16_V_MF4_MF8 = 5684,
-  PseudoVLUXEI16_V_MF4_MF8_MASK = 5685,
-  PseudoVLUXEI32_V_M1_M1 = 5686,
-  PseudoVLUXEI32_V_M1_M1_MASK = 5687,
-  PseudoVLUXEI32_V_M1_M2 = 5688,
-  PseudoVLUXEI32_V_M1_M2_MASK = 5689,
-  PseudoVLUXEI32_V_M1_MF2 = 5690,
-  PseudoVLUXEI32_V_M1_MF2_MASK = 5691,
-  PseudoVLUXEI32_V_M1_MF4 = 5692,
-  PseudoVLUXEI32_V_M1_MF4_MASK = 5693,
-  PseudoVLUXEI32_V_M2_M1 = 5694,
-  PseudoVLUXEI32_V_M2_M1_MASK = 5695,
-  PseudoVLUXEI32_V_M2_M2 = 5696,
-  PseudoVLUXEI32_V_M2_M2_MASK = 5697,
-  PseudoVLUXEI32_V_M2_M4 = 5698,
-  PseudoVLUXEI32_V_M2_M4_MASK = 5699,
-  PseudoVLUXEI32_V_M2_MF2 = 5700,
-  PseudoVLUXEI32_V_M2_MF2_MASK = 5701,
-  PseudoVLUXEI32_V_M4_M1 = 5702,
-  PseudoVLUXEI32_V_M4_M1_MASK = 5703,
-  PseudoVLUXEI32_V_M4_M2 = 5704,
-  PseudoVLUXEI32_V_M4_M2_MASK = 5705,
-  PseudoVLUXEI32_V_M4_M4 = 5706,
-  PseudoVLUXEI32_V_M4_M4_MASK = 5707,
-  PseudoVLUXEI32_V_M4_M8 = 5708,
-  PseudoVLUXEI32_V_M4_M8_MASK = 5709,
-  PseudoVLUXEI32_V_M8_M2 = 5710,
-  PseudoVLUXEI32_V_M8_M2_MASK = 5711,
-  PseudoVLUXEI32_V_M8_M4 = 5712,
-  PseudoVLUXEI32_V_M8_M4_MASK = 5713,
-  PseudoVLUXEI32_V_M8_M8 = 5714,
-  PseudoVLUXEI32_V_M8_M8_MASK = 5715,
-  PseudoVLUXEI32_V_MF2_M1 = 5716,
-  PseudoVLUXEI32_V_MF2_M1_MASK = 5717,
-  PseudoVLUXEI32_V_MF2_MF2 = 5718,
-  PseudoVLUXEI32_V_MF2_MF2_MASK = 5719,
-  PseudoVLUXEI32_V_MF2_MF4 = 5720,
-  PseudoVLUXEI32_V_MF2_MF4_MASK = 5721,
-  PseudoVLUXEI32_V_MF2_MF8 = 5722,
-  PseudoVLUXEI32_V_MF2_MF8_MASK = 5723,
-  PseudoVLUXEI64_V_M1_M1 = 5724,
-  PseudoVLUXEI64_V_M1_M1_MASK = 5725,
-  PseudoVLUXEI64_V_M1_MF2 = 5726,
-  PseudoVLUXEI64_V_M1_MF2_MASK = 5727,
-  PseudoVLUXEI64_V_M1_MF4 = 5728,
-  PseudoVLUXEI64_V_M1_MF4_MASK = 5729,
-  PseudoVLUXEI64_V_M1_MF8 = 5730,
-  PseudoVLUXEI64_V_M1_MF8_MASK = 5731,
-  PseudoVLUXEI64_V_M2_M1 = 5732,
-  PseudoVLUXEI64_V_M2_M1_MASK = 5733,
-  PseudoVLUXEI64_V_M2_M2 = 5734,
-  PseudoVLUXEI64_V_M2_M2_MASK = 5735,
-  PseudoVLUXEI64_V_M2_MF2 = 5736,
-  PseudoVLUXEI64_V_M2_MF2_MASK = 5737,
-  PseudoVLUXEI64_V_M2_MF4 = 5738,
-  PseudoVLUXEI64_V_M2_MF4_MASK = 5739,
-  PseudoVLUXEI64_V_M4_M1 = 5740,
-  PseudoVLUXEI64_V_M4_M1_MASK = 5741,
-  PseudoVLUXEI64_V_M4_M2 = 5742,
-  PseudoVLUXEI64_V_M4_M2_MASK = 5743,
-  PseudoVLUXEI64_V_M4_M4 = 5744,
-  PseudoVLUXEI64_V_M4_M4_MASK = 5745,
-  PseudoVLUXEI64_V_M4_MF2 = 5746,
-  PseudoVLUXEI64_V_M4_MF2_MASK = 5747,
-  PseudoVLUXEI64_V_M8_M1 = 5748,
-  PseudoVLUXEI64_V_M8_M1_MASK = 5749,
-  PseudoVLUXEI64_V_M8_M2 = 5750,
-  PseudoVLUXEI64_V_M8_M2_MASK = 5751,
-  PseudoVLUXEI64_V_M8_M4 = 5752,
-  PseudoVLUXEI64_V_M8_M4_MASK = 5753,
-  PseudoVLUXEI64_V_M8_M8 = 5754,
-  PseudoVLUXEI64_V_M8_M8_MASK = 5755,
-  PseudoVLUXEI8_V_M1_M1 = 5756,
-  PseudoVLUXEI8_V_M1_M1_MASK = 5757,
-  PseudoVLUXEI8_V_M1_M2 = 5758,
-  PseudoVLUXEI8_V_M1_M2_MASK = 5759,
-  PseudoVLUXEI8_V_M1_M4 = 5760,
-  PseudoVLUXEI8_V_M1_M4_MASK = 5761,
-  PseudoVLUXEI8_V_M1_M8 = 5762,
-  PseudoVLUXEI8_V_M1_M8_MASK = 5763,
-  PseudoVLUXEI8_V_M2_M2 = 5764,
-  PseudoVLUXEI8_V_M2_M2_MASK = 5765,
-  PseudoVLUXEI8_V_M2_M4 = 5766,
-  PseudoVLUXEI8_V_M2_M4_MASK = 5767,
-  PseudoVLUXEI8_V_M2_M8 = 5768,
-  PseudoVLUXEI8_V_M2_M8_MASK = 5769,
-  PseudoVLUXEI8_V_M4_M4 = 5770,
-  PseudoVLUXEI8_V_M4_M4_MASK = 5771,
-  PseudoVLUXEI8_V_M4_M8 = 5772,
-  PseudoVLUXEI8_V_M4_M8_MASK = 5773,
-  PseudoVLUXEI8_V_M8_M8 = 5774,
-  PseudoVLUXEI8_V_M8_M8_MASK = 5775,
-  PseudoVLUXEI8_V_MF2_M1 = 5776,
-  PseudoVLUXEI8_V_MF2_M1_MASK = 5777,
-  PseudoVLUXEI8_V_MF2_M2 = 5778,
-  PseudoVLUXEI8_V_MF2_M2_MASK = 5779,
-  PseudoVLUXEI8_V_MF2_M4 = 5780,
-  PseudoVLUXEI8_V_MF2_M4_MASK = 5781,
-  PseudoVLUXEI8_V_MF2_MF2 = 5782,
-  PseudoVLUXEI8_V_MF2_MF2_MASK = 5783,
-  PseudoVLUXEI8_V_MF4_M1 = 5784,
-  PseudoVLUXEI8_V_MF4_M1_MASK = 5785,
-  PseudoVLUXEI8_V_MF4_M2 = 5786,
-  PseudoVLUXEI8_V_MF4_M2_MASK = 5787,
-  PseudoVLUXEI8_V_MF4_MF2 = 5788,
-  PseudoVLUXEI8_V_MF4_MF2_MASK = 5789,
-  PseudoVLUXEI8_V_MF4_MF4 = 5790,
-  PseudoVLUXEI8_V_MF4_MF4_MASK = 5791,
-  PseudoVLUXEI8_V_MF8_M1 = 5792,
-  PseudoVLUXEI8_V_MF8_M1_MASK = 5793,
-  PseudoVLUXEI8_V_MF8_MF2 = 5794,
-  PseudoVLUXEI8_V_MF8_MF2_MASK = 5795,
-  PseudoVLUXEI8_V_MF8_MF4 = 5796,
-  PseudoVLUXEI8_V_MF8_MF4_MASK = 5797,
-  PseudoVLUXEI8_V_MF8_MF8 = 5798,
-  PseudoVLUXEI8_V_MF8_MF8_MASK = 5799,
-  PseudoVLUXSEG2EI16_V_M1_M1 = 5800,
-  PseudoVLUXSEG2EI16_V_M1_M1_MASK = 5801,
-  PseudoVLUXSEG2EI16_V_M1_M2 = 5802,
-  PseudoVLUXSEG2EI16_V_M1_M2_MASK = 5803,
-  PseudoVLUXSEG2EI16_V_M1_M4 = 5804,
-  PseudoVLUXSEG2EI16_V_M1_M4_MASK = 5805,
-  PseudoVLUXSEG2EI16_V_M1_MF2 = 5806,
-  PseudoVLUXSEG2EI16_V_M1_MF2_MASK = 5807,
-  PseudoVLUXSEG2EI16_V_M2_M1 = 5808,
-  PseudoVLUXSEG2EI16_V_M2_M1_MASK = 5809,
-  PseudoVLUXSEG2EI16_V_M2_M2 = 5810,
-  PseudoVLUXSEG2EI16_V_M2_M2_MASK = 5811,
-  PseudoVLUXSEG2EI16_V_M2_M4 = 5812,
-  PseudoVLUXSEG2EI16_V_M2_M4_MASK = 5813,
-  PseudoVLUXSEG2EI16_V_M4_M2 = 5814,
-  PseudoVLUXSEG2EI16_V_M4_M2_MASK = 5815,
-  PseudoVLUXSEG2EI16_V_M4_M4 = 5816,
-  PseudoVLUXSEG2EI16_V_M4_M4_MASK = 5817,
-  PseudoVLUXSEG2EI16_V_M8_M4 = 5818,
-  PseudoVLUXSEG2EI16_V_M8_M4_MASK = 5819,
-  PseudoVLUXSEG2EI16_V_MF2_M1 = 5820,
-  PseudoVLUXSEG2EI16_V_MF2_M1_MASK = 5821,
-  PseudoVLUXSEG2EI16_V_MF2_M2 = 5822,
-  PseudoVLUXSEG2EI16_V_MF2_M2_MASK = 5823,
-  PseudoVLUXSEG2EI16_V_MF2_MF2 = 5824,
-  PseudoVLUXSEG2EI16_V_MF2_MF2_MASK = 5825,
-  PseudoVLUXSEG2EI16_V_MF2_MF4 = 5826,
-  PseudoVLUXSEG2EI16_V_MF2_MF4_MASK = 5827,
-  PseudoVLUXSEG2EI16_V_MF4_M1 = 5828,
-  PseudoVLUXSEG2EI16_V_MF4_M1_MASK = 5829,
-  PseudoVLUXSEG2EI16_V_MF4_MF2 = 5830,
-  PseudoVLUXSEG2EI16_V_MF4_MF2_MASK = 5831,
-  PseudoVLUXSEG2EI16_V_MF4_MF4 = 5832,
-  PseudoVLUXSEG2EI16_V_MF4_MF4_MASK = 5833,
-  PseudoVLUXSEG2EI16_V_MF4_MF8 = 5834,
-  PseudoVLUXSEG2EI16_V_MF4_MF8_MASK = 5835,
-  PseudoVLUXSEG2EI32_V_M1_M1 = 5836,
-  PseudoVLUXSEG2EI32_V_M1_M1_MASK = 5837,
-  PseudoVLUXSEG2EI32_V_M1_M2 = 5838,
-  PseudoVLUXSEG2EI32_V_M1_M2_MASK = 5839,
-  PseudoVLUXSEG2EI32_V_M1_MF2 = 5840,
-  PseudoVLUXSEG2EI32_V_M1_MF2_MASK = 5841,
-  PseudoVLUXSEG2EI32_V_M1_MF4 = 5842,
-  PseudoVLUXSEG2EI32_V_M1_MF4_MASK = 5843,
-  PseudoVLUXSEG2EI32_V_M2_M1 = 5844,
-  PseudoVLUXSEG2EI32_V_M2_M1_MASK = 5845,
-  PseudoVLUXSEG2EI32_V_M2_M2 = 5846,
-  PseudoVLUXSEG2EI32_V_M2_M2_MASK = 5847,
-  PseudoVLUXSEG2EI32_V_M2_M4 = 5848,
-  PseudoVLUXSEG2EI32_V_M2_M4_MASK = 5849,
-  PseudoVLUXSEG2EI32_V_M2_MF2 = 5850,
-  PseudoVLUXSEG2EI32_V_M2_MF2_MASK = 5851,
-  PseudoVLUXSEG2EI32_V_M4_M1 = 5852,
-  PseudoVLUXSEG2EI32_V_M4_M1_MASK = 5853,
-  PseudoVLUXSEG2EI32_V_M4_M2 = 5854,
-  PseudoVLUXSEG2EI32_V_M4_M2_MASK = 5855,
-  PseudoVLUXSEG2EI32_V_M4_M4 = 5856,
-  PseudoVLUXSEG2EI32_V_M4_M4_MASK = 5857,
-  PseudoVLUXSEG2EI32_V_M8_M2 = 5858,
-  PseudoVLUXSEG2EI32_V_M8_M2_MASK = 5859,
-  PseudoVLUXSEG2EI32_V_M8_M4 = 5860,
-  PseudoVLUXSEG2EI32_V_M8_M4_MASK = 5861,
-  PseudoVLUXSEG2EI32_V_MF2_M1 = 5862,
-  PseudoVLUXSEG2EI32_V_MF2_M1_MASK = 5863,
-  PseudoVLUXSEG2EI32_V_MF2_MF2 = 5864,
-  PseudoVLUXSEG2EI32_V_MF2_MF2_MASK = 5865,
-  PseudoVLUXSEG2EI32_V_MF2_MF4 = 5866,
-  PseudoVLUXSEG2EI32_V_MF2_MF4_MASK = 5867,
-  PseudoVLUXSEG2EI32_V_MF2_MF8 = 5868,
-  PseudoVLUXSEG2EI32_V_MF2_MF8_MASK = 5869,
-  PseudoVLUXSEG2EI64_V_M1_M1 = 5870,
-  PseudoVLUXSEG2EI64_V_M1_M1_MASK = 5871,
-  PseudoVLUXSEG2EI64_V_M1_MF2 = 5872,
-  PseudoVLUXSEG2EI64_V_M1_MF2_MASK = 5873,
-  PseudoVLUXSEG2EI64_V_M1_MF4 = 5874,
-  PseudoVLUXSEG2EI64_V_M1_MF4_MASK = 5875,
-  PseudoVLUXSEG2EI64_V_M1_MF8 = 5876,
-  PseudoVLUXSEG2EI64_V_M1_MF8_MASK = 5877,
-  PseudoVLUXSEG2EI64_V_M2_M1 = 5878,
-  PseudoVLUXSEG2EI64_V_M2_M1_MASK = 5879,
-  PseudoVLUXSEG2EI64_V_M2_M2 = 5880,
-  PseudoVLUXSEG2EI64_V_M2_M2_MASK = 5881,
-  PseudoVLUXSEG2EI64_V_M2_MF2 = 5882,
-  PseudoVLUXSEG2EI64_V_M2_MF2_MASK = 5883,
-  PseudoVLUXSEG2EI64_V_M2_MF4 = 5884,
-  PseudoVLUXSEG2EI64_V_M2_MF4_MASK = 5885,
-  PseudoVLUXSEG2EI64_V_M4_M1 = 5886,
-  PseudoVLUXSEG2EI64_V_M4_M1_MASK = 5887,
-  PseudoVLUXSEG2EI64_V_M4_M2 = 5888,
-  PseudoVLUXSEG2EI64_V_M4_M2_MASK = 5889,
-  PseudoVLUXSEG2EI64_V_M4_M4 = 5890,
-  PseudoVLUXSEG2EI64_V_M4_M4_MASK = 5891,
-  PseudoVLUXSEG2EI64_V_M4_MF2 = 5892,
-  PseudoVLUXSEG2EI64_V_M4_MF2_MASK = 5893,
-  PseudoVLUXSEG2EI64_V_M8_M1 = 5894,
-  PseudoVLUXSEG2EI64_V_M8_M1_MASK = 5895,
-  PseudoVLUXSEG2EI64_V_M8_M2 = 5896,
-  PseudoVLUXSEG2EI64_V_M8_M2_MASK = 5897,
-  PseudoVLUXSEG2EI64_V_M8_M4 = 5898,
-  PseudoVLUXSEG2EI64_V_M8_M4_MASK = 5899,
-  PseudoVLUXSEG2EI8_V_M1_M1 = 5900,
-  PseudoVLUXSEG2EI8_V_M1_M1_MASK = 5901,
-  PseudoVLUXSEG2EI8_V_M1_M2 = 5902,
-  PseudoVLUXSEG2EI8_V_M1_M2_MASK = 5903,
-  PseudoVLUXSEG2EI8_V_M1_M4 = 5904,
-  PseudoVLUXSEG2EI8_V_M1_M4_MASK = 5905,
-  PseudoVLUXSEG2EI8_V_M2_M2 = 5906,
-  PseudoVLUXSEG2EI8_V_M2_M2_MASK = 5907,
-  PseudoVLUXSEG2EI8_V_M2_M4 = 5908,
-  PseudoVLUXSEG2EI8_V_M2_M4_MASK = 5909,
-  PseudoVLUXSEG2EI8_V_M4_M4 = 5910,
-  PseudoVLUXSEG2EI8_V_M4_M4_MASK = 5911,
-  PseudoVLUXSEG2EI8_V_MF2_M1 = 5912,
-  PseudoVLUXSEG2EI8_V_MF2_M1_MASK = 5913,
-  PseudoVLUXSEG2EI8_V_MF2_M2 = 5914,
-  PseudoVLUXSEG2EI8_V_MF2_M2_MASK = 5915,
-  PseudoVLUXSEG2EI8_V_MF2_M4 = 5916,
-  PseudoVLUXSEG2EI8_V_MF2_M4_MASK = 5917,
-  PseudoVLUXSEG2EI8_V_MF2_MF2 = 5918,
-  PseudoVLUXSEG2EI8_V_MF2_MF2_MASK = 5919,
-  PseudoVLUXSEG2EI8_V_MF4_M1 = 5920,
-  PseudoVLUXSEG2EI8_V_MF4_M1_MASK = 5921,
-  PseudoVLUXSEG2EI8_V_MF4_M2 = 5922,
-  PseudoVLUXSEG2EI8_V_MF4_M2_MASK = 5923,
-  PseudoVLUXSEG2EI8_V_MF4_MF2 = 5924,
-  PseudoVLUXSEG2EI8_V_MF4_MF2_MASK = 5925,
-  PseudoVLUXSEG2EI8_V_MF4_MF4 = 5926,
-  PseudoVLUXSEG2EI8_V_MF4_MF4_MASK = 5927,
-  PseudoVLUXSEG2EI8_V_MF8_M1 = 5928,
-  PseudoVLUXSEG2EI8_V_MF8_M1_MASK = 5929,
-  PseudoVLUXSEG2EI8_V_MF8_MF2 = 5930,
-  PseudoVLUXSEG2EI8_V_MF8_MF2_MASK = 5931,
-  PseudoVLUXSEG2EI8_V_MF8_MF4 = 5932,
-  PseudoVLUXSEG2EI8_V_MF8_MF4_MASK = 5933,
-  PseudoVLUXSEG2EI8_V_MF8_MF8 = 5934,
-  PseudoVLUXSEG2EI8_V_MF8_MF8_MASK = 5935,
-  PseudoVLUXSEG3EI16_V_M1_M1 = 5936,
-  PseudoVLUXSEG3EI16_V_M1_M1_MASK = 5937,
-  PseudoVLUXSEG3EI16_V_M1_M2 = 5938,
-  PseudoVLUXSEG3EI16_V_M1_M2_MASK = 5939,
-  PseudoVLUXSEG3EI16_V_M1_MF2 = 5940,
-  PseudoVLUXSEG3EI16_V_M1_MF2_MASK = 5941,
-  PseudoVLUXSEG3EI16_V_M2_M1 = 5942,
-  PseudoVLUXSEG3EI16_V_M2_M1_MASK = 5943,
-  PseudoVLUXSEG3EI16_V_M2_M2 = 5944,
-  PseudoVLUXSEG3EI16_V_M2_M2_MASK = 5945,
-  PseudoVLUXSEG3EI16_V_M4_M2 = 5946,
-  PseudoVLUXSEG3EI16_V_M4_M2_MASK = 5947,
-  PseudoVLUXSEG3EI16_V_MF2_M1 = 5948,
-  PseudoVLUXSEG3EI16_V_MF2_M1_MASK = 5949,
-  PseudoVLUXSEG3EI16_V_MF2_M2 = 5950,
-  PseudoVLUXSEG3EI16_V_MF2_M2_MASK = 5951,
-  PseudoVLUXSEG3EI16_V_MF2_MF2 = 5952,
-  PseudoVLUXSEG3EI16_V_MF2_MF2_MASK = 5953,
-  PseudoVLUXSEG3EI16_V_MF2_MF4 = 5954,
-  PseudoVLUXSEG3EI16_V_MF2_MF4_MASK = 5955,
-  PseudoVLUXSEG3EI16_V_MF4_M1 = 5956,
-  PseudoVLUXSEG3EI16_V_MF4_M1_MASK = 5957,
-  PseudoVLUXSEG3EI16_V_MF4_MF2 = 5958,
-  PseudoVLUXSEG3EI16_V_MF4_MF2_MASK = 5959,
-  PseudoVLUXSEG3EI16_V_MF4_MF4 = 5960,
-  PseudoVLUXSEG3EI16_V_MF4_MF4_MASK = 5961,
-  PseudoVLUXSEG3EI16_V_MF4_MF8 = 5962,
-  PseudoVLUXSEG3EI16_V_MF4_MF8_MASK = 5963,
-  PseudoVLUXSEG3EI32_V_M1_M1 = 5964,
-  PseudoVLUXSEG3EI32_V_M1_M1_MASK = 5965,
-  PseudoVLUXSEG3EI32_V_M1_M2 = 5966,
-  PseudoVLUXSEG3EI32_V_M1_M2_MASK = 5967,
-  PseudoVLUXSEG3EI32_V_M1_MF2 = 5968,
-  PseudoVLUXSEG3EI32_V_M1_MF2_MASK = 5969,
-  PseudoVLUXSEG3EI32_V_M1_MF4 = 5970,
-  PseudoVLUXSEG3EI32_V_M1_MF4_MASK = 5971,
-  PseudoVLUXSEG3EI32_V_M2_M1 = 5972,
-  PseudoVLUXSEG3EI32_V_M2_M1_MASK = 5973,
-  PseudoVLUXSEG3EI32_V_M2_M2 = 5974,
-  PseudoVLUXSEG3EI32_V_M2_M2_MASK = 5975,
-  PseudoVLUXSEG3EI32_V_M2_MF2 = 5976,
-  PseudoVLUXSEG3EI32_V_M2_MF2_MASK = 5977,
-  PseudoVLUXSEG3EI32_V_M4_M1 = 5978,
-  PseudoVLUXSEG3EI32_V_M4_M1_MASK = 5979,
-  PseudoVLUXSEG3EI32_V_M4_M2 = 5980,
-  PseudoVLUXSEG3EI32_V_M4_M2_MASK = 5981,
-  PseudoVLUXSEG3EI32_V_M8_M2 = 5982,
-  PseudoVLUXSEG3EI32_V_M8_M2_MASK = 5983,
-  PseudoVLUXSEG3EI32_V_MF2_M1 = 5984,
-  PseudoVLUXSEG3EI32_V_MF2_M1_MASK = 5985,
-  PseudoVLUXSEG3EI32_V_MF2_MF2 = 5986,
-  PseudoVLUXSEG3EI32_V_MF2_MF2_MASK = 5987,
-  PseudoVLUXSEG3EI32_V_MF2_MF4 = 5988,
-  PseudoVLUXSEG3EI32_V_MF2_MF4_MASK = 5989,
-  PseudoVLUXSEG3EI32_V_MF2_MF8 = 5990,
-  PseudoVLUXSEG3EI32_V_MF2_MF8_MASK = 5991,
-  PseudoVLUXSEG3EI64_V_M1_M1 = 5992,
-  PseudoVLUXSEG3EI64_V_M1_M1_MASK = 5993,
-  PseudoVLUXSEG3EI64_V_M1_MF2 = 5994,
-  PseudoVLUXSEG3EI64_V_M1_MF2_MASK = 5995,
-  PseudoVLUXSEG3EI64_V_M1_MF4 = 5996,
-  PseudoVLUXSEG3EI64_V_M1_MF4_MASK = 5997,
-  PseudoVLUXSEG3EI64_V_M1_MF8 = 5998,
-  PseudoVLUXSEG3EI64_V_M1_MF8_MASK = 5999,
-  PseudoVLUXSEG3EI64_V_M2_M1 = 6000,
-  PseudoVLUXSEG3EI64_V_M2_M1_MASK = 6001,
-  PseudoVLUXSEG3EI64_V_M2_M2 = 6002,
-  PseudoVLUXSEG3EI64_V_M2_M2_MASK = 6003,
-  PseudoVLUXSEG3EI64_V_M2_MF2 = 6004,
-  PseudoVLUXSEG3EI64_V_M2_MF2_MASK = 6005,
-  PseudoVLUXSEG3EI64_V_M2_MF4 = 6006,
-  PseudoVLUXSEG3EI64_V_M2_MF4_MASK = 6007,
-  PseudoVLUXSEG3EI64_V_M4_M1 = 6008,
-  PseudoVLUXSEG3EI64_V_M4_M1_MASK = 6009,
-  PseudoVLUXSEG3EI64_V_M4_M2 = 6010,
-  PseudoVLUXSEG3EI64_V_M4_M2_MASK = 6011,
-  PseudoVLUXSEG3EI64_V_M4_MF2 = 6012,
-  PseudoVLUXSEG3EI64_V_M4_MF2_MASK = 6013,
-  PseudoVLUXSEG3EI64_V_M8_M1 = 6014,
-  PseudoVLUXSEG3EI64_V_M8_M1_MASK = 6015,
-  PseudoVLUXSEG3EI64_V_M8_M2 = 6016,
-  PseudoVLUXSEG3EI64_V_M8_M2_MASK = 6017,
-  PseudoVLUXSEG3EI8_V_M1_M1 = 6018,
-  PseudoVLUXSEG3EI8_V_M1_M1_MASK = 6019,
-  PseudoVLUXSEG3EI8_V_M1_M2 = 6020,
-  PseudoVLUXSEG3EI8_V_M1_M2_MASK = 6021,
-  PseudoVLUXSEG3EI8_V_M2_M2 = 6022,
-  PseudoVLUXSEG3EI8_V_M2_M2_MASK = 6023,
-  PseudoVLUXSEG3EI8_V_MF2_M1 = 6024,
-  PseudoVLUXSEG3EI8_V_MF2_M1_MASK = 6025,
-  PseudoVLUXSEG3EI8_V_MF2_M2 = 6026,
-  PseudoVLUXSEG3EI8_V_MF2_M2_MASK = 6027,
-  PseudoVLUXSEG3EI8_V_MF2_MF2 = 6028,
-  PseudoVLUXSEG3EI8_V_MF2_MF2_MASK = 6029,
-  PseudoVLUXSEG3EI8_V_MF4_M1 = 6030,
-  PseudoVLUXSEG3EI8_V_MF4_M1_MASK = 6031,
-  PseudoVLUXSEG3EI8_V_MF4_M2 = 6032,
-  PseudoVLUXSEG3EI8_V_MF4_M2_MASK = 6033,
-  PseudoVLUXSEG3EI8_V_MF4_MF2 = 6034,
-  PseudoVLUXSEG3EI8_V_MF4_MF2_MASK = 6035,
-  PseudoVLUXSEG3EI8_V_MF4_MF4 = 6036,
-  PseudoVLUXSEG3EI8_V_MF4_MF4_MASK = 6037,
-  PseudoVLUXSEG3EI8_V_MF8_M1 = 6038,
-  PseudoVLUXSEG3EI8_V_MF8_M1_MASK = 6039,
-  PseudoVLUXSEG3EI8_V_MF8_MF2 = 6040,
-  PseudoVLUXSEG3EI8_V_MF8_MF2_MASK = 6041,
-  PseudoVLUXSEG3EI8_V_MF8_MF4 = 6042,
-  PseudoVLUXSEG3EI8_V_MF8_MF4_MASK = 6043,
-  PseudoVLUXSEG3EI8_V_MF8_MF8 = 6044,
-  PseudoVLUXSEG3EI8_V_MF8_MF8_MASK = 6045,
-  PseudoVLUXSEG4EI16_V_M1_M1 = 6046,
-  PseudoVLUXSEG4EI16_V_M1_M1_MASK = 6047,
-  PseudoVLUXSEG4EI16_V_M1_M2 = 6048,
-  PseudoVLUXSEG4EI16_V_M1_M2_MASK = 6049,
-  PseudoVLUXSEG4EI16_V_M1_MF2 = 6050,
-  PseudoVLUXSEG4EI16_V_M1_MF2_MASK = 6051,
-  PseudoVLUXSEG4EI16_V_M2_M1 = 6052,
-  PseudoVLUXSEG4EI16_V_M2_M1_MASK = 6053,
-  PseudoVLUXSEG4EI16_V_M2_M2 = 6054,
-  PseudoVLUXSEG4EI16_V_M2_M2_MASK = 6055,
-  PseudoVLUXSEG4EI16_V_M4_M2 = 6056,
-  PseudoVLUXSEG4EI16_V_M4_M2_MASK = 6057,
-  PseudoVLUXSEG4EI16_V_MF2_M1 = 6058,
-  PseudoVLUXSEG4EI16_V_MF2_M1_MASK = 6059,
-  PseudoVLUXSEG4EI16_V_MF2_M2 = 6060,
-  PseudoVLUXSEG4EI16_V_MF2_M2_MASK = 6061,
-  PseudoVLUXSEG4EI16_V_MF2_MF2 = 6062,
-  PseudoVLUXSEG4EI16_V_MF2_MF2_MASK = 6063,
-  PseudoVLUXSEG4EI16_V_MF2_MF4 = 6064,
-  PseudoVLUXSEG4EI16_V_MF2_MF4_MASK = 6065,
-  PseudoVLUXSEG4EI16_V_MF4_M1 = 6066,
-  PseudoVLUXSEG4EI16_V_MF4_M1_MASK = 6067,
-  PseudoVLUXSEG4EI16_V_MF4_MF2 = 6068,
-  PseudoVLUXSEG4EI16_V_MF4_MF2_MASK = 6069,
-  PseudoVLUXSEG4EI16_V_MF4_MF4 = 6070,
-  PseudoVLUXSEG4EI16_V_MF4_MF4_MASK = 6071,
-  PseudoVLUXSEG4EI16_V_MF4_MF8 = 6072,
-  PseudoVLUXSEG4EI16_V_MF4_MF8_MASK = 6073,
-  PseudoVLUXSEG4EI32_V_M1_M1 = 6074,
-  PseudoVLUXSEG4EI32_V_M1_M1_MASK = 6075,
-  PseudoVLUXSEG4EI32_V_M1_M2 = 6076,
-  PseudoVLUXSEG4EI32_V_M1_M2_MASK = 6077,
-  PseudoVLUXSEG4EI32_V_M1_MF2 = 6078,
-  PseudoVLUXSEG4EI32_V_M1_MF2_MASK = 6079,
-  PseudoVLUXSEG4EI32_V_M1_MF4 = 6080,
-  PseudoVLUXSEG4EI32_V_M1_MF4_MASK = 6081,
-  PseudoVLUXSEG4EI32_V_M2_M1 = 6082,
-  PseudoVLUXSEG4EI32_V_M2_M1_MASK = 6083,
-  PseudoVLUXSEG4EI32_V_M2_M2 = 6084,
-  PseudoVLUXSEG4EI32_V_M2_M2_MASK = 6085,
-  PseudoVLUXSEG4EI32_V_M2_MF2 = 6086,
-  PseudoVLUXSEG4EI32_V_M2_MF2_MASK = 6087,
-  PseudoVLUXSEG4EI32_V_M4_M1 = 6088,
-  PseudoVLUXSEG4EI32_V_M4_M1_MASK = 6089,
-  PseudoVLUXSEG4EI32_V_M4_M2 = 6090,
-  PseudoVLUXSEG4EI32_V_M4_M2_MASK = 6091,
-  PseudoVLUXSEG4EI32_V_M8_M2 = 6092,
-  PseudoVLUXSEG4EI32_V_M8_M2_MASK = 6093,
-  PseudoVLUXSEG4EI32_V_MF2_M1 = 6094,
-  PseudoVLUXSEG4EI32_V_MF2_M1_MASK = 6095,
-  PseudoVLUXSEG4EI32_V_MF2_MF2 = 6096,
-  PseudoVLUXSEG4EI32_V_MF2_MF2_MASK = 6097,
-  PseudoVLUXSEG4EI32_V_MF2_MF4 = 6098,
-  PseudoVLUXSEG4EI32_V_MF2_MF4_MASK = 6099,
-  PseudoVLUXSEG4EI32_V_MF2_MF8 = 6100,
-  PseudoVLUXSEG4EI32_V_MF2_MF8_MASK = 6101,
-  PseudoVLUXSEG4EI64_V_M1_M1 = 6102,
-  PseudoVLUXSEG4EI64_V_M1_M1_MASK = 6103,
-  PseudoVLUXSEG4EI64_V_M1_MF2 = 6104,
-  PseudoVLUXSEG4EI64_V_M1_MF2_MASK = 6105,
-  PseudoVLUXSEG4EI64_V_M1_MF4 = 6106,
-  PseudoVLUXSEG4EI64_V_M1_MF4_MASK = 6107,
-  PseudoVLUXSEG4EI64_V_M1_MF8 = 6108,
-  PseudoVLUXSEG4EI64_V_M1_MF8_MASK = 6109,
-  PseudoVLUXSEG4EI64_V_M2_M1 = 6110,
-  PseudoVLUXSEG4EI64_V_M2_M1_MASK = 6111,
-  PseudoVLUXSEG4EI64_V_M2_M2 = 6112,
-  PseudoVLUXSEG4EI64_V_M2_M2_MASK = 6113,
-  PseudoVLUXSEG4EI64_V_M2_MF2 = 6114,
-  PseudoVLUXSEG4EI64_V_M2_MF2_MASK = 6115,
-  PseudoVLUXSEG4EI64_V_M2_MF4 = 6116,
-  PseudoVLUXSEG4EI64_V_M2_MF4_MASK = 6117,
-  PseudoVLUXSEG4EI64_V_M4_M1 = 6118,
-  PseudoVLUXSEG4EI64_V_M4_M1_MASK = 6119,
-  PseudoVLUXSEG4EI64_V_M4_M2 = 6120,
-  PseudoVLUXSEG4EI64_V_M4_M2_MASK = 6121,
-  PseudoVLUXSEG4EI64_V_M4_MF2 = 6122,
-  PseudoVLUXSEG4EI64_V_M4_MF2_MASK = 6123,
-  PseudoVLUXSEG4EI64_V_M8_M1 = 6124,
-  PseudoVLUXSEG4EI64_V_M8_M1_MASK = 6125,
-  PseudoVLUXSEG4EI64_V_M8_M2 = 6126,
-  PseudoVLUXSEG4EI64_V_M8_M2_MASK = 6127,
-  PseudoVLUXSEG4EI8_V_M1_M1 = 6128,
-  PseudoVLUXSEG4EI8_V_M1_M1_MASK = 6129,
-  PseudoVLUXSEG4EI8_V_M1_M2 = 6130,
-  PseudoVLUXSEG4EI8_V_M1_M2_MASK = 6131,
-  PseudoVLUXSEG4EI8_V_M2_M2 = 6132,
-  PseudoVLUXSEG4EI8_V_M2_M2_MASK = 6133,
-  PseudoVLUXSEG4EI8_V_MF2_M1 = 6134,
-  PseudoVLUXSEG4EI8_V_MF2_M1_MASK = 6135,
-  PseudoVLUXSEG4EI8_V_MF2_M2 = 6136,
-  PseudoVLUXSEG4EI8_V_MF2_M2_MASK = 6137,
-  PseudoVLUXSEG4EI8_V_MF2_MF2 = 6138,
-  PseudoVLUXSEG4EI8_V_MF2_MF2_MASK = 6139,
-  PseudoVLUXSEG4EI8_V_MF4_M1 = 6140,
-  PseudoVLUXSEG4EI8_V_MF4_M1_MASK = 6141,
-  PseudoVLUXSEG4EI8_V_MF4_M2 = 6142,
-  PseudoVLUXSEG4EI8_V_MF4_M2_MASK = 6143,
-  PseudoVLUXSEG4EI8_V_MF4_MF2 = 6144,
-  PseudoVLUXSEG4EI8_V_MF4_MF2_MASK = 6145,
-  PseudoVLUXSEG4EI8_V_MF4_MF4 = 6146,
-  PseudoVLUXSEG4EI8_V_MF4_MF4_MASK = 6147,
-  PseudoVLUXSEG4EI8_V_MF8_M1 = 6148,
-  PseudoVLUXSEG4EI8_V_MF8_M1_MASK = 6149,
-  PseudoVLUXSEG4EI8_V_MF8_MF2 = 6150,
-  PseudoVLUXSEG4EI8_V_MF8_MF2_MASK = 6151,
-  PseudoVLUXSEG4EI8_V_MF8_MF4 = 6152,
-  PseudoVLUXSEG4EI8_V_MF8_MF4_MASK = 6153,
-  PseudoVLUXSEG4EI8_V_MF8_MF8 = 6154,
-  PseudoVLUXSEG4EI8_V_MF8_MF8_MASK = 6155,
-  PseudoVLUXSEG5EI16_V_M1_M1 = 6156,
-  PseudoVLUXSEG5EI16_V_M1_M1_MASK = 6157,
-  PseudoVLUXSEG5EI16_V_M1_MF2 = 6158,
-  PseudoVLUXSEG5EI16_V_M1_MF2_MASK = 6159,
-  PseudoVLUXSEG5EI16_V_M2_M1 = 6160,
-  PseudoVLUXSEG5EI16_V_M2_M1_MASK = 6161,
-  PseudoVLUXSEG5EI16_V_MF2_M1 = 6162,
-  PseudoVLUXSEG5EI16_V_MF2_M1_MASK = 6163,
-  PseudoVLUXSEG5EI16_V_MF2_MF2 = 6164,
-  PseudoVLUXSEG5EI16_V_MF2_MF2_MASK = 6165,
-  PseudoVLUXSEG5EI16_V_MF2_MF4 = 6166,
-  PseudoVLUXSEG5EI16_V_MF2_MF4_MASK = 6167,
-  PseudoVLUXSEG5EI16_V_MF4_M1 = 6168,
-  PseudoVLUXSEG5EI16_V_MF4_M1_MASK = 6169,
-  PseudoVLUXSEG5EI16_V_MF4_MF2 = 6170,
-  PseudoVLUXSEG5EI16_V_MF4_MF2_MASK = 6171,
-  PseudoVLUXSEG5EI16_V_MF4_MF4 = 6172,
-  PseudoVLUXSEG5EI16_V_MF4_MF4_MASK = 6173,
-  PseudoVLUXSEG5EI16_V_MF4_MF8 = 6174,
-  PseudoVLUXSEG5EI16_V_MF4_MF8_MASK = 6175,
-  PseudoVLUXSEG5EI32_V_M1_M1 = 6176,
-  PseudoVLUXSEG5EI32_V_M1_M1_MASK = 6177,
-  PseudoVLUXSEG5EI32_V_M1_MF2 = 6178,
-  PseudoVLUXSEG5EI32_V_M1_MF2_MASK = 6179,
-  PseudoVLUXSEG5EI32_V_M1_MF4 = 6180,
-  PseudoVLUXSEG5EI32_V_M1_MF4_MASK = 6181,
-  PseudoVLUXSEG5EI32_V_M2_M1 = 6182,
-  PseudoVLUXSEG5EI32_V_M2_M1_MASK = 6183,
-  PseudoVLUXSEG5EI32_V_M2_MF2 = 6184,
-  PseudoVLUXSEG5EI32_V_M2_MF2_MASK = 6185,
-  PseudoVLUXSEG5EI32_V_M4_M1 = 6186,
-  PseudoVLUXSEG5EI32_V_M4_M1_MASK = 6187,
-  PseudoVLUXSEG5EI32_V_MF2_M1 = 6188,
-  PseudoVLUXSEG5EI32_V_MF2_M1_MASK = 6189,
-  PseudoVLUXSEG5EI32_V_MF2_MF2 = 6190,
-  PseudoVLUXSEG5EI32_V_MF2_MF2_MASK = 6191,
-  PseudoVLUXSEG5EI32_V_MF2_MF4 = 6192,
-  PseudoVLUXSEG5EI32_V_MF2_MF4_MASK = 6193,
-  PseudoVLUXSEG5EI32_V_MF2_MF8 = 6194,
-  PseudoVLUXSEG5EI32_V_MF2_MF8_MASK = 6195,
-  PseudoVLUXSEG5EI64_V_M1_M1 = 6196,
-  PseudoVLUXSEG5EI64_V_M1_M1_MASK = 6197,
-  PseudoVLUXSEG5EI64_V_M1_MF2 = 6198,
-  PseudoVLUXSEG5EI64_V_M1_MF2_MASK = 6199,
-  PseudoVLUXSEG5EI64_V_M1_MF4 = 6200,
-  PseudoVLUXSEG5EI64_V_M1_MF4_MASK = 6201,
-  PseudoVLUXSEG5EI64_V_M1_MF8 = 6202,
-  PseudoVLUXSEG5EI64_V_M1_MF8_MASK = 6203,
-  PseudoVLUXSEG5EI64_V_M2_M1 = 6204,
-  PseudoVLUXSEG5EI64_V_M2_M1_MASK = 6205,
-  PseudoVLUXSEG5EI64_V_M2_MF2 = 6206,
-  PseudoVLUXSEG5EI64_V_M2_MF2_MASK = 6207,
-  PseudoVLUXSEG5EI64_V_M2_MF4 = 6208,
-  PseudoVLUXSEG5EI64_V_M2_MF4_MASK = 6209,
-  PseudoVLUXSEG5EI64_V_M4_M1 = 6210,
-  PseudoVLUXSEG5EI64_V_M4_M1_MASK = 6211,
-  PseudoVLUXSEG5EI64_V_M4_MF2 = 6212,
-  PseudoVLUXSEG5EI64_V_M4_MF2_MASK = 6213,
-  PseudoVLUXSEG5EI64_V_M8_M1 = 6214,
-  PseudoVLUXSEG5EI64_V_M8_M1_MASK = 6215,
-  PseudoVLUXSEG5EI8_V_M1_M1 = 6216,
-  PseudoVLUXSEG5EI8_V_M1_M1_MASK = 6217,
-  PseudoVLUXSEG5EI8_V_MF2_M1 = 6218,
-  PseudoVLUXSEG5EI8_V_MF2_M1_MASK = 6219,
-  PseudoVLUXSEG5EI8_V_MF2_MF2 = 6220,
-  PseudoVLUXSEG5EI8_V_MF2_MF2_MASK = 6221,
-  PseudoVLUXSEG5EI8_V_MF4_M1 = 6222,
-  PseudoVLUXSEG5EI8_V_MF4_M1_MASK = 6223,
-  PseudoVLUXSEG5EI8_V_MF4_MF2 = 6224,
-  PseudoVLUXSEG5EI8_V_MF4_MF2_MASK = 6225,
-  PseudoVLUXSEG5EI8_V_MF4_MF4 = 6226,
-  PseudoVLUXSEG5EI8_V_MF4_MF4_MASK = 6227,
-  PseudoVLUXSEG5EI8_V_MF8_M1 = 6228,
-  PseudoVLUXSEG5EI8_V_MF8_M1_MASK = 6229,
-  PseudoVLUXSEG5EI8_V_MF8_MF2 = 6230,
-  PseudoVLUXSEG5EI8_V_MF8_MF2_MASK = 6231,
-  PseudoVLUXSEG5EI8_V_MF8_MF4 = 6232,
-  PseudoVLUXSEG5EI8_V_MF8_MF4_MASK = 6233,
-  PseudoVLUXSEG5EI8_V_MF8_MF8 = 6234,
-  PseudoVLUXSEG5EI8_V_MF8_MF8_MASK = 6235,
-  PseudoVLUXSEG6EI16_V_M1_M1 = 6236,
-  PseudoVLUXSEG6EI16_V_M1_M1_MASK = 6237,
-  PseudoVLUXSEG6EI16_V_M1_MF2 = 6238,
-  PseudoVLUXSEG6EI16_V_M1_MF2_MASK = 6239,
-  PseudoVLUXSEG6EI16_V_M2_M1 = 6240,
-  PseudoVLUXSEG6EI16_V_M2_M1_MASK = 6241,
-  PseudoVLUXSEG6EI16_V_MF2_M1 = 6242,
-  PseudoVLUXSEG6EI16_V_MF2_M1_MASK = 6243,
-  PseudoVLUXSEG6EI16_V_MF2_MF2 = 6244,
-  PseudoVLUXSEG6EI16_V_MF2_MF2_MASK = 6245,
-  PseudoVLUXSEG6EI16_V_MF2_MF4 = 6246,
-  PseudoVLUXSEG6EI16_V_MF2_MF4_MASK = 6247,
-  PseudoVLUXSEG6EI16_V_MF4_M1 = 6248,
-  PseudoVLUXSEG6EI16_V_MF4_M1_MASK = 6249,
-  PseudoVLUXSEG6EI16_V_MF4_MF2 = 6250,
-  PseudoVLUXSEG6EI16_V_MF4_MF2_MASK = 6251,
-  PseudoVLUXSEG6EI16_V_MF4_MF4 = 6252,
-  PseudoVLUXSEG6EI16_V_MF4_MF4_MASK = 6253,
-  PseudoVLUXSEG6EI16_V_MF4_MF8 = 6254,
-  PseudoVLUXSEG6EI16_V_MF4_MF8_MASK = 6255,
-  PseudoVLUXSEG6EI32_V_M1_M1 = 6256,
-  PseudoVLUXSEG6EI32_V_M1_M1_MASK = 6257,
-  PseudoVLUXSEG6EI32_V_M1_MF2 = 6258,
-  PseudoVLUXSEG6EI32_V_M1_MF2_MASK = 6259,
-  PseudoVLUXSEG6EI32_V_M1_MF4 = 6260,
-  PseudoVLUXSEG6EI32_V_M1_MF4_MASK = 6261,
-  PseudoVLUXSEG6EI32_V_M2_M1 = 6262,
-  PseudoVLUXSEG6EI32_V_M2_M1_MASK = 6263,
-  PseudoVLUXSEG6EI32_V_M2_MF2 = 6264,
-  PseudoVLUXSEG6EI32_V_M2_MF2_MASK = 6265,
-  PseudoVLUXSEG6EI32_V_M4_M1 = 6266,
-  PseudoVLUXSEG6EI32_V_M4_M1_MASK = 6267,
-  PseudoVLUXSEG6EI32_V_MF2_M1 = 6268,
-  PseudoVLUXSEG6EI32_V_MF2_M1_MASK = 6269,
-  PseudoVLUXSEG6EI32_V_MF2_MF2 = 6270,
-  PseudoVLUXSEG6EI32_V_MF2_MF2_MASK = 6271,
-  PseudoVLUXSEG6EI32_V_MF2_MF4 = 6272,
-  PseudoVLUXSEG6EI32_V_MF2_MF4_MASK = 6273,
-  PseudoVLUXSEG6EI32_V_MF2_MF8 = 6274,
-  PseudoVLUXSEG6EI32_V_MF2_MF8_MASK = 6275,
-  PseudoVLUXSEG6EI64_V_M1_M1 = 6276,
-  PseudoVLUXSEG6EI64_V_M1_M1_MASK = 6277,
-  PseudoVLUXSEG6EI64_V_M1_MF2 = 6278,
-  PseudoVLUXSEG6EI64_V_M1_MF2_MASK = 6279,
-  PseudoVLUXSEG6EI64_V_M1_MF4 = 6280,
-  PseudoVLUXSEG6EI64_V_M1_MF4_MASK = 6281,
-  PseudoVLUXSEG6EI64_V_M1_MF8 = 6282,
-  PseudoVLUXSEG6EI64_V_M1_MF8_MASK = 6283,
-  PseudoVLUXSEG6EI64_V_M2_M1 = 6284,
-  PseudoVLUXSEG6EI64_V_M2_M1_MASK = 6285,
-  PseudoVLUXSEG6EI64_V_M2_MF2 = 6286,
-  PseudoVLUXSEG6EI64_V_M2_MF2_MASK = 6287,
-  PseudoVLUXSEG6EI64_V_M2_MF4 = 6288,
-  PseudoVLUXSEG6EI64_V_M2_MF4_MASK = 6289,
-  PseudoVLUXSEG6EI64_V_M4_M1 = 6290,
-  PseudoVLUXSEG6EI64_V_M4_M1_MASK = 6291,
-  PseudoVLUXSEG6EI64_V_M4_MF2 = 6292,
-  PseudoVLUXSEG6EI64_V_M4_MF2_MASK = 6293,
-  PseudoVLUXSEG6EI64_V_M8_M1 = 6294,
-  PseudoVLUXSEG6EI64_V_M8_M1_MASK = 6295,
-  PseudoVLUXSEG6EI8_V_M1_M1 = 6296,
-  PseudoVLUXSEG6EI8_V_M1_M1_MASK = 6297,
-  PseudoVLUXSEG6EI8_V_MF2_M1 = 6298,
-  PseudoVLUXSEG6EI8_V_MF2_M1_MASK = 6299,
-  PseudoVLUXSEG6EI8_V_MF2_MF2 = 6300,
-  PseudoVLUXSEG6EI8_V_MF2_MF2_MASK = 6301,
-  PseudoVLUXSEG6EI8_V_MF4_M1 = 6302,
-  PseudoVLUXSEG6EI8_V_MF4_M1_MASK = 6303,
-  PseudoVLUXSEG6EI8_V_MF4_MF2 = 6304,
-  PseudoVLUXSEG6EI8_V_MF4_MF2_MASK = 6305,
-  PseudoVLUXSEG6EI8_V_MF4_MF4 = 6306,
-  PseudoVLUXSEG6EI8_V_MF4_MF4_MASK = 6307,
-  PseudoVLUXSEG6EI8_V_MF8_M1 = 6308,
-  PseudoVLUXSEG6EI8_V_MF8_M1_MASK = 6309,
-  PseudoVLUXSEG6EI8_V_MF8_MF2 = 6310,
-  PseudoVLUXSEG6EI8_V_MF8_MF2_MASK = 6311,
-  PseudoVLUXSEG6EI8_V_MF8_MF4 = 6312,
-  PseudoVLUXSEG6EI8_V_MF8_MF4_MASK = 6313,
-  PseudoVLUXSEG6EI8_V_MF8_MF8 = 6314,
-  PseudoVLUXSEG6EI8_V_MF8_MF8_MASK = 6315,
-  PseudoVLUXSEG7EI16_V_M1_M1 = 6316,
-  PseudoVLUXSEG7EI16_V_M1_M1_MASK = 6317,
-  PseudoVLUXSEG7EI16_V_M1_MF2 = 6318,
-  PseudoVLUXSEG7EI16_V_M1_MF2_MASK = 6319,
-  PseudoVLUXSEG7EI16_V_M2_M1 = 6320,
-  PseudoVLUXSEG7EI16_V_M2_M1_MASK = 6321,
-  PseudoVLUXSEG7EI16_V_MF2_M1 = 6322,
-  PseudoVLUXSEG7EI16_V_MF2_M1_MASK = 6323,
-  PseudoVLUXSEG7EI16_V_MF2_MF2 = 6324,
-  PseudoVLUXSEG7EI16_V_MF2_MF2_MASK = 6325,
-  PseudoVLUXSEG7EI16_V_MF2_MF4 = 6326,
-  PseudoVLUXSEG7EI16_V_MF2_MF4_MASK = 6327,
-  PseudoVLUXSEG7EI16_V_MF4_M1 = 6328,
-  PseudoVLUXSEG7EI16_V_MF4_M1_MASK = 6329,
-  PseudoVLUXSEG7EI16_V_MF4_MF2 = 6330,
-  PseudoVLUXSEG7EI16_V_MF4_MF2_MASK = 6331,
-  PseudoVLUXSEG7EI16_V_MF4_MF4 = 6332,
-  PseudoVLUXSEG7EI16_V_MF4_MF4_MASK = 6333,
-  PseudoVLUXSEG7EI16_V_MF4_MF8 = 6334,
-  PseudoVLUXSEG7EI16_V_MF4_MF8_MASK = 6335,
-  PseudoVLUXSEG7EI32_V_M1_M1 = 6336,
-  PseudoVLUXSEG7EI32_V_M1_M1_MASK = 6337,
-  PseudoVLUXSEG7EI32_V_M1_MF2 = 6338,
-  PseudoVLUXSEG7EI32_V_M1_MF2_MASK = 6339,
-  PseudoVLUXSEG7EI32_V_M1_MF4 = 6340,
-  PseudoVLUXSEG7EI32_V_M1_MF4_MASK = 6341,
-  PseudoVLUXSEG7EI32_V_M2_M1 = 6342,
-  PseudoVLUXSEG7EI32_V_M2_M1_MASK = 6343,
-  PseudoVLUXSEG7EI32_V_M2_MF2 = 6344,
-  PseudoVLUXSEG7EI32_V_M2_MF2_MASK = 6345,
-  PseudoVLUXSEG7EI32_V_M4_M1 = 6346,
-  PseudoVLUXSEG7EI32_V_M4_M1_MASK = 6347,
-  PseudoVLUXSEG7EI32_V_MF2_M1 = 6348,
-  PseudoVLUXSEG7EI32_V_MF2_M1_MASK = 6349,
-  PseudoVLUXSEG7EI32_V_MF2_MF2 = 6350,
-  PseudoVLUXSEG7EI32_V_MF2_MF2_MASK = 6351,
-  PseudoVLUXSEG7EI32_V_MF2_MF4 = 6352,
-  PseudoVLUXSEG7EI32_V_MF2_MF4_MASK = 6353,
-  PseudoVLUXSEG7EI32_V_MF2_MF8 = 6354,
-  PseudoVLUXSEG7EI32_V_MF2_MF8_MASK = 6355,
-  PseudoVLUXSEG7EI64_V_M1_M1 = 6356,
-  PseudoVLUXSEG7EI64_V_M1_M1_MASK = 6357,
-  PseudoVLUXSEG7EI64_V_M1_MF2 = 6358,
-  PseudoVLUXSEG7EI64_V_M1_MF2_MASK = 6359,
-  PseudoVLUXSEG7EI64_V_M1_MF4 = 6360,
-  PseudoVLUXSEG7EI64_V_M1_MF4_MASK = 6361,
-  PseudoVLUXSEG7EI64_V_M1_MF8 = 6362,
-  PseudoVLUXSEG7EI64_V_M1_MF8_MASK = 6363,
-  PseudoVLUXSEG7EI64_V_M2_M1 = 6364,
-  PseudoVLUXSEG7EI64_V_M2_M1_MASK = 6365,
-  PseudoVLUXSEG7EI64_V_M2_MF2 = 6366,
-  PseudoVLUXSEG7EI64_V_M2_MF2_MASK = 6367,
-  PseudoVLUXSEG7EI64_V_M2_MF4 = 6368,
-  PseudoVLUXSEG7EI64_V_M2_MF4_MASK = 6369,
-  PseudoVLUXSEG7EI64_V_M4_M1 = 6370,
-  PseudoVLUXSEG7EI64_V_M4_M1_MASK = 6371,
-  PseudoVLUXSEG7EI64_V_M4_MF2 = 6372,
-  PseudoVLUXSEG7EI64_V_M4_MF2_MASK = 6373,
-  PseudoVLUXSEG7EI64_V_M8_M1 = 6374,
-  PseudoVLUXSEG7EI64_V_M8_M1_MASK = 6375,
-  PseudoVLUXSEG7EI8_V_M1_M1 = 6376,
-  PseudoVLUXSEG7EI8_V_M1_M1_MASK = 6377,
-  PseudoVLUXSEG7EI8_V_MF2_M1 = 6378,
-  PseudoVLUXSEG7EI8_V_MF2_M1_MASK = 6379,
-  PseudoVLUXSEG7EI8_V_MF2_MF2 = 6380,
-  PseudoVLUXSEG7EI8_V_MF2_MF2_MASK = 6381,
-  PseudoVLUXSEG7EI8_V_MF4_M1 = 6382,
-  PseudoVLUXSEG7EI8_V_MF4_M1_MASK = 6383,
-  PseudoVLUXSEG7EI8_V_MF4_MF2 = 6384,
-  PseudoVLUXSEG7EI8_V_MF4_MF2_MASK = 6385,
-  PseudoVLUXSEG7EI8_V_MF4_MF4 = 6386,
-  PseudoVLUXSEG7EI8_V_MF4_MF4_MASK = 6387,
-  PseudoVLUXSEG7EI8_V_MF8_M1 = 6388,
-  PseudoVLUXSEG7EI8_V_MF8_M1_MASK = 6389,
-  PseudoVLUXSEG7EI8_V_MF8_MF2 = 6390,
-  PseudoVLUXSEG7EI8_V_MF8_MF2_MASK = 6391,
-  PseudoVLUXSEG7EI8_V_MF8_MF4 = 6392,
-  PseudoVLUXSEG7EI8_V_MF8_MF4_MASK = 6393,
-  PseudoVLUXSEG7EI8_V_MF8_MF8 = 6394,
-  PseudoVLUXSEG7EI8_V_MF8_MF8_MASK = 6395,
-  PseudoVLUXSEG8EI16_V_M1_M1 = 6396,
-  PseudoVLUXSEG8EI16_V_M1_M1_MASK = 6397,
-  PseudoVLUXSEG8EI16_V_M1_MF2 = 6398,
-  PseudoVLUXSEG8EI16_V_M1_MF2_MASK = 6399,
-  PseudoVLUXSEG8EI16_V_M2_M1 = 6400,
-  PseudoVLUXSEG8EI16_V_M2_M1_MASK = 6401,
-  PseudoVLUXSEG8EI16_V_MF2_M1 = 6402,
-  PseudoVLUXSEG8EI16_V_MF2_M1_MASK = 6403,
-  PseudoVLUXSEG8EI16_V_MF2_MF2 = 6404,
-  PseudoVLUXSEG8EI16_V_MF2_MF2_MASK = 6405,
-  PseudoVLUXSEG8EI16_V_MF2_MF4 = 6406,
-  PseudoVLUXSEG8EI16_V_MF2_MF4_MASK = 6407,
-  PseudoVLUXSEG8EI16_V_MF4_M1 = 6408,
-  PseudoVLUXSEG8EI16_V_MF4_M1_MASK = 6409,
-  PseudoVLUXSEG8EI16_V_MF4_MF2 = 6410,
-  PseudoVLUXSEG8EI16_V_MF4_MF2_MASK = 6411,
-  PseudoVLUXSEG8EI16_V_MF4_MF4 = 6412,
-  PseudoVLUXSEG8EI16_V_MF4_MF4_MASK = 6413,
-  PseudoVLUXSEG8EI16_V_MF4_MF8 = 6414,
-  PseudoVLUXSEG8EI16_V_MF4_MF8_MASK = 6415,
-  PseudoVLUXSEG8EI32_V_M1_M1 = 6416,
-  PseudoVLUXSEG8EI32_V_M1_M1_MASK = 6417,
-  PseudoVLUXSEG8EI32_V_M1_MF2 = 6418,
-  PseudoVLUXSEG8EI32_V_M1_MF2_MASK = 6419,
-  PseudoVLUXSEG8EI32_V_M1_MF4 = 6420,
-  PseudoVLUXSEG8EI32_V_M1_MF4_MASK = 6421,
-  PseudoVLUXSEG8EI32_V_M2_M1 = 6422,
-  PseudoVLUXSEG8EI32_V_M2_M1_MASK = 6423,
-  PseudoVLUXSEG8EI32_V_M2_MF2 = 6424,
-  PseudoVLUXSEG8EI32_V_M2_MF2_MASK = 6425,
-  PseudoVLUXSEG8EI32_V_M4_M1 = 6426,
-  PseudoVLUXSEG8EI32_V_M4_M1_MASK = 6427,
-  PseudoVLUXSEG8EI32_V_MF2_M1 = 6428,
-  PseudoVLUXSEG8EI32_V_MF2_M1_MASK = 6429,
-  PseudoVLUXSEG8EI32_V_MF2_MF2 = 6430,
-  PseudoVLUXSEG8EI32_V_MF2_MF2_MASK = 6431,
-  PseudoVLUXSEG8EI32_V_MF2_MF4 = 6432,
-  PseudoVLUXSEG8EI32_V_MF2_MF4_MASK = 6433,
-  PseudoVLUXSEG8EI32_V_MF2_MF8 = 6434,
-  PseudoVLUXSEG8EI32_V_MF2_MF8_MASK = 6435,
-  PseudoVLUXSEG8EI64_V_M1_M1 = 6436,
-  PseudoVLUXSEG8EI64_V_M1_M1_MASK = 6437,
-  PseudoVLUXSEG8EI64_V_M1_MF2 = 6438,
-  PseudoVLUXSEG8EI64_V_M1_MF2_MASK = 6439,
-  PseudoVLUXSEG8EI64_V_M1_MF4 = 6440,
-  PseudoVLUXSEG8EI64_V_M1_MF4_MASK = 6441,
-  PseudoVLUXSEG8EI64_V_M1_MF8 = 6442,
-  PseudoVLUXSEG8EI64_V_M1_MF8_MASK = 6443,
-  PseudoVLUXSEG8EI64_V_M2_M1 = 6444,
-  PseudoVLUXSEG8EI64_V_M2_M1_MASK = 6445,
-  PseudoVLUXSEG8EI64_V_M2_MF2 = 6446,
-  PseudoVLUXSEG8EI64_V_M2_MF2_MASK = 6447,
-  PseudoVLUXSEG8EI64_V_M2_MF4 = 6448,
-  PseudoVLUXSEG8EI64_V_M2_MF4_MASK = 6449,
-  PseudoVLUXSEG8EI64_V_M4_M1 = 6450,
-  PseudoVLUXSEG8EI64_V_M4_M1_MASK = 6451,
-  PseudoVLUXSEG8EI64_V_M4_MF2 = 6452,
-  PseudoVLUXSEG8EI64_V_M4_MF2_MASK = 6453,
-  PseudoVLUXSEG8EI64_V_M8_M1 = 6454,
-  PseudoVLUXSEG8EI64_V_M8_M1_MASK = 6455,
-  PseudoVLUXSEG8EI8_V_M1_M1 = 6456,
-  PseudoVLUXSEG8EI8_V_M1_M1_MASK = 6457,
-  PseudoVLUXSEG8EI8_V_MF2_M1 = 6458,
-  PseudoVLUXSEG8EI8_V_MF2_M1_MASK = 6459,
-  PseudoVLUXSEG8EI8_V_MF2_MF2 = 6460,
-  PseudoVLUXSEG8EI8_V_MF2_MF2_MASK = 6461,
-  PseudoVLUXSEG8EI8_V_MF4_M1 = 6462,
-  PseudoVLUXSEG8EI8_V_MF4_M1_MASK = 6463,
-  PseudoVLUXSEG8EI8_V_MF4_MF2 = 6464,
-  PseudoVLUXSEG8EI8_V_MF4_MF2_MASK = 6465,
-  PseudoVLUXSEG8EI8_V_MF4_MF4 = 6466,
-  PseudoVLUXSEG8EI8_V_MF4_MF4_MASK = 6467,
-  PseudoVLUXSEG8EI8_V_MF8_M1 = 6468,
-  PseudoVLUXSEG8EI8_V_MF8_M1_MASK = 6469,
-  PseudoVLUXSEG8EI8_V_MF8_MF2 = 6470,
-  PseudoVLUXSEG8EI8_V_MF8_MF2_MASK = 6471,
-  PseudoVLUXSEG8EI8_V_MF8_MF4 = 6472,
-  PseudoVLUXSEG8EI8_V_MF8_MF4_MASK = 6473,
-  PseudoVLUXSEG8EI8_V_MF8_MF8 = 6474,
-  PseudoVLUXSEG8EI8_V_MF8_MF8_MASK = 6475,
-  PseudoVMACC_VV_M1 = 6476,
-  PseudoVMACC_VV_M1_MASK = 6477,
-  PseudoVMACC_VV_M2 = 6478,
-  PseudoVMACC_VV_M2_MASK = 6479,
-  PseudoVMACC_VV_M4 = 6480,
-  PseudoVMACC_VV_M4_MASK = 6481,
-  PseudoVMACC_VV_M8 = 6482,
-  PseudoVMACC_VV_M8_MASK = 6483,
-  PseudoVMACC_VV_MF2 = 6484,
-  PseudoVMACC_VV_MF2_MASK = 6485,
-  PseudoVMACC_VV_MF4 = 6486,
-  PseudoVMACC_VV_MF4_MASK = 6487,
-  PseudoVMACC_VV_MF8 = 6488,
-  PseudoVMACC_VV_MF8_MASK = 6489,
-  PseudoVMACC_VX_M1 = 6490,
-  PseudoVMACC_VX_M1_MASK = 6491,
-  PseudoVMACC_VX_M2 = 6492,
-  PseudoVMACC_VX_M2_MASK = 6493,
-  PseudoVMACC_VX_M4 = 6494,
-  PseudoVMACC_VX_M4_MASK = 6495,
-  PseudoVMACC_VX_M8 = 6496,
-  PseudoVMACC_VX_M8_MASK = 6497,
-  PseudoVMACC_VX_MF2 = 6498,
-  PseudoVMACC_VX_MF2_MASK = 6499,
-  PseudoVMACC_VX_MF4 = 6500,
-  PseudoVMACC_VX_MF4_MASK = 6501,
-  PseudoVMACC_VX_MF8 = 6502,
-  PseudoVMACC_VX_MF8_MASK = 6503,
-  PseudoVMADC_VIM_M1 = 6504,
-  PseudoVMADC_VIM_M2 = 6505,
-  PseudoVMADC_VIM_M4 = 6506,
-  PseudoVMADC_VIM_M8 = 6507,
-  PseudoVMADC_VIM_MF2 = 6508,
-  PseudoVMADC_VIM_MF4 = 6509,
-  PseudoVMADC_VIM_MF8 = 6510,
-  PseudoVMADC_VI_M1 = 6511,
-  PseudoVMADC_VI_M2 = 6512,
-  PseudoVMADC_VI_M4 = 6513,
-  PseudoVMADC_VI_M8 = 6514,
-  PseudoVMADC_VI_MF2 = 6515,
-  PseudoVMADC_VI_MF4 = 6516,
-  PseudoVMADC_VI_MF8 = 6517,
-  PseudoVMADC_VVM_M1 = 6518,
-  PseudoVMADC_VVM_M2 = 6519,
-  PseudoVMADC_VVM_M4 = 6520,
-  PseudoVMADC_VVM_M8 = 6521,
-  PseudoVMADC_VVM_MF2 = 6522,
-  PseudoVMADC_VVM_MF4 = 6523,
-  PseudoVMADC_VVM_MF8 = 6524,
-  PseudoVMADC_VV_M1 = 6525,
-  PseudoVMADC_VV_M2 = 6526,
-  PseudoVMADC_VV_M4 = 6527,
-  PseudoVMADC_VV_M8 = 6528,
-  PseudoVMADC_VV_MF2 = 6529,
-  PseudoVMADC_VV_MF4 = 6530,
-  PseudoVMADC_VV_MF8 = 6531,
-  PseudoVMADC_VXM_M1 = 6532,
-  PseudoVMADC_VXM_M2 = 6533,
-  PseudoVMADC_VXM_M4 = 6534,
-  PseudoVMADC_VXM_M8 = 6535,
-  PseudoVMADC_VXM_MF2 = 6536,
-  PseudoVMADC_VXM_MF4 = 6537,
-  PseudoVMADC_VXM_MF8 = 6538,
-  PseudoVMADC_VX_M1 = 6539,
-  PseudoVMADC_VX_M2 = 6540,
-  PseudoVMADC_VX_M4 = 6541,
-  PseudoVMADC_VX_M8 = 6542,
-  PseudoVMADC_VX_MF2 = 6543,
-  PseudoVMADC_VX_MF4 = 6544,
-  PseudoVMADC_VX_MF8 = 6545,
-  PseudoVMADD_VV_M1 = 6546,
-  PseudoVMADD_VV_M1_MASK = 6547,
-  PseudoVMADD_VV_M2 = 6548,
-  PseudoVMADD_VV_M2_MASK = 6549,
-  PseudoVMADD_VV_M4 = 6550,
-  PseudoVMADD_VV_M4_MASK = 6551,
-  PseudoVMADD_VV_M8 = 6552,
-  PseudoVMADD_VV_M8_MASK = 6553,
-  PseudoVMADD_VV_MF2 = 6554,
-  PseudoVMADD_VV_MF2_MASK = 6555,
-  PseudoVMADD_VV_MF4 = 6556,
-  PseudoVMADD_VV_MF4_MASK = 6557,
-  PseudoVMADD_VV_MF8 = 6558,
-  PseudoVMADD_VV_MF8_MASK = 6559,
-  PseudoVMADD_VX_M1 = 6560,
-  PseudoVMADD_VX_M1_MASK = 6561,
-  PseudoVMADD_VX_M2 = 6562,
-  PseudoVMADD_VX_M2_MASK = 6563,
-  PseudoVMADD_VX_M4 = 6564,
-  PseudoVMADD_VX_M4_MASK = 6565,
-  PseudoVMADD_VX_M8 = 6566,
-  PseudoVMADD_VX_M8_MASK = 6567,
-  PseudoVMADD_VX_MF2 = 6568,
-  PseudoVMADD_VX_MF2_MASK = 6569,
-  PseudoVMADD_VX_MF4 = 6570,
-  PseudoVMADD_VX_MF4_MASK = 6571,
-  PseudoVMADD_VX_MF8 = 6572,
-  PseudoVMADD_VX_MF8_MASK = 6573,
-  PseudoVMANDN_MM_B1 = 6574,
-  PseudoVMANDN_MM_B16 = 6575,
-  PseudoVMANDN_MM_B2 = 6576,
-  PseudoVMANDN_MM_B32 = 6577,
-  PseudoVMANDN_MM_B4 = 6578,
-  PseudoVMANDN_MM_B64 = 6579,
-  PseudoVMANDN_MM_B8 = 6580,
-  PseudoVMAND_MM_B1 = 6581,
-  PseudoVMAND_MM_B16 = 6582,
-  PseudoVMAND_MM_B2 = 6583,
-  PseudoVMAND_MM_B32 = 6584,
-  PseudoVMAND_MM_B4 = 6585,
-  PseudoVMAND_MM_B64 = 6586,
-  PseudoVMAND_MM_B8 = 6587,
-  PseudoVMAXU_VV_M1 = 6588,
-  PseudoVMAXU_VV_M1_MASK = 6589,
-  PseudoVMAXU_VV_M2 = 6590,
-  PseudoVMAXU_VV_M2_MASK = 6591,
-  PseudoVMAXU_VV_M4 = 6592,
-  PseudoVMAXU_VV_M4_MASK = 6593,
-  PseudoVMAXU_VV_M8 = 6594,
-  PseudoVMAXU_VV_M8_MASK = 6595,
-  PseudoVMAXU_VV_MF2 = 6596,
-  PseudoVMAXU_VV_MF2_MASK = 6597,
-  PseudoVMAXU_VV_MF4 = 6598,
-  PseudoVMAXU_VV_MF4_MASK = 6599,
-  PseudoVMAXU_VV_MF8 = 6600,
-  PseudoVMAXU_VV_MF8_MASK = 6601,
-  PseudoVMAXU_VX_M1 = 6602,
-  PseudoVMAXU_VX_M1_MASK = 6603,
-  PseudoVMAXU_VX_M2 = 6604,
-  PseudoVMAXU_VX_M2_MASK = 6605,
-  PseudoVMAXU_VX_M4 = 6606,
-  PseudoVMAXU_VX_M4_MASK = 6607,
-  PseudoVMAXU_VX_M8 = 6608,
-  PseudoVMAXU_VX_M8_MASK = 6609,
-  PseudoVMAXU_VX_MF2 = 6610,
-  PseudoVMAXU_VX_MF2_MASK = 6611,
-  PseudoVMAXU_VX_MF4 = 6612,
-  PseudoVMAXU_VX_MF4_MASK = 6613,
-  PseudoVMAXU_VX_MF8 = 6614,
-  PseudoVMAXU_VX_MF8_MASK = 6615,
-  PseudoVMAX_VV_M1 = 6616,
-  PseudoVMAX_VV_M1_MASK = 6617,
-  PseudoVMAX_VV_M2 = 6618,
-  PseudoVMAX_VV_M2_MASK = 6619,
-  PseudoVMAX_VV_M4 = 6620,
-  PseudoVMAX_VV_M4_MASK = 6621,
-  PseudoVMAX_VV_M8 = 6622,
-  PseudoVMAX_VV_M8_MASK = 6623,
-  PseudoVMAX_VV_MF2 = 6624,
-  PseudoVMAX_VV_MF2_MASK = 6625,
-  PseudoVMAX_VV_MF4 = 6626,
-  PseudoVMAX_VV_MF4_MASK = 6627,
-  PseudoVMAX_VV_MF8 = 6628,
-  PseudoVMAX_VV_MF8_MASK = 6629,
-  PseudoVMAX_VX_M1 = 6630,
-  PseudoVMAX_VX_M1_MASK = 6631,
-  PseudoVMAX_VX_M2 = 6632,
-  PseudoVMAX_VX_M2_MASK = 6633,
-  PseudoVMAX_VX_M4 = 6634,
-  PseudoVMAX_VX_M4_MASK = 6635,
-  PseudoVMAX_VX_M8 = 6636,
-  PseudoVMAX_VX_M8_MASK = 6637,
-  PseudoVMAX_VX_MF2 = 6638,
-  PseudoVMAX_VX_MF2_MASK = 6639,
-  PseudoVMAX_VX_MF4 = 6640,
-  PseudoVMAX_VX_MF4_MASK = 6641,
-  PseudoVMAX_VX_MF8 = 6642,
-  PseudoVMAX_VX_MF8_MASK = 6643,
-  PseudoVMCLR_M_B1 = 6644,
-  PseudoVMCLR_M_B16 = 6645,
-  PseudoVMCLR_M_B2 = 6646,
-  PseudoVMCLR_M_B32 = 6647,
-  PseudoVMCLR_M_B4 = 6648,
-  PseudoVMCLR_M_B64 = 6649,
-  PseudoVMCLR_M_B8 = 6650,
-  PseudoVMERGE_VIM_M1 = 6651,
-  PseudoVMERGE_VIM_M2 = 6652,
-  PseudoVMERGE_VIM_M4 = 6653,
-  PseudoVMERGE_VIM_M8 = 6654,
-  PseudoVMERGE_VIM_MF2 = 6655,
-  PseudoVMERGE_VIM_MF4 = 6656,
-  PseudoVMERGE_VIM_MF8 = 6657,
-  PseudoVMERGE_VVM_M1 = 6658,
-  PseudoVMERGE_VVM_M2 = 6659,
-  PseudoVMERGE_VVM_M4 = 6660,
-  PseudoVMERGE_VVM_M8 = 6661,
-  PseudoVMERGE_VVM_MF2 = 6662,
-  PseudoVMERGE_VVM_MF4 = 6663,
-  PseudoVMERGE_VVM_MF8 = 6664,
-  PseudoVMERGE_VXM_M1 = 6665,
-  PseudoVMERGE_VXM_M2 = 6666,
-  PseudoVMERGE_VXM_M4 = 6667,
-  PseudoVMERGE_VXM_M8 = 6668,
-  PseudoVMERGE_VXM_MF2 = 6669,
-  PseudoVMERGE_VXM_MF4 = 6670,
-  PseudoVMERGE_VXM_MF8 = 6671,
-  PseudoVMFEQ_VFPR16_M1 = 6672,
-  PseudoVMFEQ_VFPR16_M1_MASK = 6673,
-  PseudoVMFEQ_VFPR16_M2 = 6674,
-  PseudoVMFEQ_VFPR16_M2_MASK = 6675,
-  PseudoVMFEQ_VFPR16_M4 = 6676,
-  PseudoVMFEQ_VFPR16_M4_MASK = 6677,
-  PseudoVMFEQ_VFPR16_M8 = 6678,
-  PseudoVMFEQ_VFPR16_M8_MASK = 6679,
-  PseudoVMFEQ_VFPR16_MF2 = 6680,
-  PseudoVMFEQ_VFPR16_MF2_MASK = 6681,
-  PseudoVMFEQ_VFPR16_MF4 = 6682,
-  PseudoVMFEQ_VFPR16_MF4_MASK = 6683,
-  PseudoVMFEQ_VFPR32_M1 = 6684,
-  PseudoVMFEQ_VFPR32_M1_MASK = 6685,
-  PseudoVMFEQ_VFPR32_M2 = 6686,
-  PseudoVMFEQ_VFPR32_M2_MASK = 6687,
-  PseudoVMFEQ_VFPR32_M4 = 6688,
-  PseudoVMFEQ_VFPR32_M4_MASK = 6689,
-  PseudoVMFEQ_VFPR32_M8 = 6690,
-  PseudoVMFEQ_VFPR32_M8_MASK = 6691,
-  PseudoVMFEQ_VFPR32_MF2 = 6692,
-  PseudoVMFEQ_VFPR32_MF2_MASK = 6693,
-  PseudoVMFEQ_VFPR64_M1 = 6694,
-  PseudoVMFEQ_VFPR64_M1_MASK = 6695,
-  PseudoVMFEQ_VFPR64_M2 = 6696,
-  PseudoVMFEQ_VFPR64_M2_MASK = 6697,
-  PseudoVMFEQ_VFPR64_M4 = 6698,
-  PseudoVMFEQ_VFPR64_M4_MASK = 6699,
-  PseudoVMFEQ_VFPR64_M8 = 6700,
-  PseudoVMFEQ_VFPR64_M8_MASK = 6701,
-  PseudoVMFEQ_VV_M1 = 6702,
-  PseudoVMFEQ_VV_M1_MASK = 6703,
-  PseudoVMFEQ_VV_M2 = 6704,
-  PseudoVMFEQ_VV_M2_MASK = 6705,
-  PseudoVMFEQ_VV_M4 = 6706,
-  PseudoVMFEQ_VV_M4_MASK = 6707,
-  PseudoVMFEQ_VV_M8 = 6708,
-  PseudoVMFEQ_VV_M8_MASK = 6709,
-  PseudoVMFEQ_VV_MF2 = 6710,
-  PseudoVMFEQ_VV_MF2_MASK = 6711,
-  PseudoVMFEQ_VV_MF4 = 6712,
-  PseudoVMFEQ_VV_MF4_MASK = 6713,
-  PseudoVMFGE_VFPR16_M1 = 6714,
-  PseudoVMFGE_VFPR16_M1_MASK = 6715,
-  PseudoVMFGE_VFPR16_M2 = 6716,
-  PseudoVMFGE_VFPR16_M2_MASK = 6717,
-  PseudoVMFGE_VFPR16_M4 = 6718,
-  PseudoVMFGE_VFPR16_M4_MASK = 6719,
-  PseudoVMFGE_VFPR16_M8 = 6720,
-  PseudoVMFGE_VFPR16_M8_MASK = 6721,
-  PseudoVMFGE_VFPR16_MF2 = 6722,
-  PseudoVMFGE_VFPR16_MF2_MASK = 6723,
-  PseudoVMFGE_VFPR16_MF4 = 6724,
-  PseudoVMFGE_VFPR16_MF4_MASK = 6725,
-  PseudoVMFGE_VFPR32_M1 = 6726,
-  PseudoVMFGE_VFPR32_M1_MASK = 6727,
-  PseudoVMFGE_VFPR32_M2 = 6728,
-  PseudoVMFGE_VFPR32_M2_MASK = 6729,
-  PseudoVMFGE_VFPR32_M4 = 6730,
-  PseudoVMFGE_VFPR32_M4_MASK = 6731,
-  PseudoVMFGE_VFPR32_M8 = 6732,
-  PseudoVMFGE_VFPR32_M8_MASK = 6733,
-  PseudoVMFGE_VFPR32_MF2 = 6734,
-  PseudoVMFGE_VFPR32_MF2_MASK = 6735,
-  PseudoVMFGE_VFPR64_M1 = 6736,
-  PseudoVMFGE_VFPR64_M1_MASK = 6737,
-  PseudoVMFGE_VFPR64_M2 = 6738,
-  PseudoVMFGE_VFPR64_M2_MASK = 6739,
-  PseudoVMFGE_VFPR64_M4 = 6740,
-  PseudoVMFGE_VFPR64_M4_MASK = 6741,
-  PseudoVMFGE_VFPR64_M8 = 6742,
-  PseudoVMFGE_VFPR64_M8_MASK = 6743,
-  PseudoVMFGT_VFPR16_M1 = 6744,
-  PseudoVMFGT_VFPR16_M1_MASK = 6745,
-  PseudoVMFGT_VFPR16_M2 = 6746,
-  PseudoVMFGT_VFPR16_M2_MASK = 6747,
-  PseudoVMFGT_VFPR16_M4 = 6748,
-  PseudoVMFGT_VFPR16_M4_MASK = 6749,
-  PseudoVMFGT_VFPR16_M8 = 6750,
-  PseudoVMFGT_VFPR16_M8_MASK = 6751,
-  PseudoVMFGT_VFPR16_MF2 = 6752,
-  PseudoVMFGT_VFPR16_MF2_MASK = 6753,
-  PseudoVMFGT_VFPR16_MF4 = 6754,
-  PseudoVMFGT_VFPR16_MF4_MASK = 6755,
-  PseudoVMFGT_VFPR32_M1 = 6756,
-  PseudoVMFGT_VFPR32_M1_MASK = 6757,
-  PseudoVMFGT_VFPR32_M2 = 6758,
-  PseudoVMFGT_VFPR32_M2_MASK = 6759,
-  PseudoVMFGT_VFPR32_M4 = 6760,
-  PseudoVMFGT_VFPR32_M4_MASK = 6761,
-  PseudoVMFGT_VFPR32_M8 = 6762,
-  PseudoVMFGT_VFPR32_M8_MASK = 6763,
-  PseudoVMFGT_VFPR32_MF2 = 6764,
-  PseudoVMFGT_VFPR32_MF2_MASK = 6765,
-  PseudoVMFGT_VFPR64_M1 = 6766,
-  PseudoVMFGT_VFPR64_M1_MASK = 6767,
-  PseudoVMFGT_VFPR64_M2 = 6768,
-  PseudoVMFGT_VFPR64_M2_MASK = 6769,
-  PseudoVMFGT_VFPR64_M4 = 6770,
-  PseudoVMFGT_VFPR64_M4_MASK = 6771,
-  PseudoVMFGT_VFPR64_M8 = 6772,
-  PseudoVMFGT_VFPR64_M8_MASK = 6773,
-  PseudoVMFLE_VFPR16_M1 = 6774,
-  PseudoVMFLE_VFPR16_M1_MASK = 6775,
-  PseudoVMFLE_VFPR16_M2 = 6776,
-  PseudoVMFLE_VFPR16_M2_MASK = 6777,
-  PseudoVMFLE_VFPR16_M4 = 6778,
-  PseudoVMFLE_VFPR16_M4_MASK = 6779,
-  PseudoVMFLE_VFPR16_M8 = 6780,
-  PseudoVMFLE_VFPR16_M8_MASK = 6781,
-  PseudoVMFLE_VFPR16_MF2 = 6782,
-  PseudoVMFLE_VFPR16_MF2_MASK = 6783,
-  PseudoVMFLE_VFPR16_MF4 = 6784,
-  PseudoVMFLE_VFPR16_MF4_MASK = 6785,
-  PseudoVMFLE_VFPR32_M1 = 6786,
-  PseudoVMFLE_VFPR32_M1_MASK = 6787,
-  PseudoVMFLE_VFPR32_M2 = 6788,
-  PseudoVMFLE_VFPR32_M2_MASK = 6789,
-  PseudoVMFLE_VFPR32_M4 = 6790,
-  PseudoVMFLE_VFPR32_M4_MASK = 6791,
-  PseudoVMFLE_VFPR32_M8 = 6792,
-  PseudoVMFLE_VFPR32_M8_MASK = 6793,
-  PseudoVMFLE_VFPR32_MF2 = 6794,
-  PseudoVMFLE_VFPR32_MF2_MASK = 6795,
-  PseudoVMFLE_VFPR64_M1 = 6796,
-  PseudoVMFLE_VFPR64_M1_MASK = 6797,
-  PseudoVMFLE_VFPR64_M2 = 6798,
-  PseudoVMFLE_VFPR64_M2_MASK = 6799,
-  PseudoVMFLE_VFPR64_M4 = 6800,
-  PseudoVMFLE_VFPR64_M4_MASK = 6801,
-  PseudoVMFLE_VFPR64_M8 = 6802,
-  PseudoVMFLE_VFPR64_M8_MASK = 6803,
-  PseudoVMFLE_VV_M1 = 6804,
-  PseudoVMFLE_VV_M1_MASK = 6805,
-  PseudoVMFLE_VV_M2 = 6806,
-  PseudoVMFLE_VV_M2_MASK = 6807,
-  PseudoVMFLE_VV_M4 = 6808,
-  PseudoVMFLE_VV_M4_MASK = 6809,
-  PseudoVMFLE_VV_M8 = 6810,
-  PseudoVMFLE_VV_M8_MASK = 6811,
-  PseudoVMFLE_VV_MF2 = 6812,
-  PseudoVMFLE_VV_MF2_MASK = 6813,
-  PseudoVMFLE_VV_MF4 = 6814,
-  PseudoVMFLE_VV_MF4_MASK = 6815,
-  PseudoVMFLT_VFPR16_M1 = 6816,
-  PseudoVMFLT_VFPR16_M1_MASK = 6817,
-  PseudoVMFLT_VFPR16_M2 = 6818,
-  PseudoVMFLT_VFPR16_M2_MASK = 6819,
-  PseudoVMFLT_VFPR16_M4 = 6820,
-  PseudoVMFLT_VFPR16_M4_MASK = 6821,
-  PseudoVMFLT_VFPR16_M8 = 6822,
-  PseudoVMFLT_VFPR16_M8_MASK = 6823,
-  PseudoVMFLT_VFPR16_MF2 = 6824,
-  PseudoVMFLT_VFPR16_MF2_MASK = 6825,
-  PseudoVMFLT_VFPR16_MF4 = 6826,
-  PseudoVMFLT_VFPR16_MF4_MASK = 6827,
-  PseudoVMFLT_VFPR32_M1 = 6828,
-  PseudoVMFLT_VFPR32_M1_MASK = 6829,
-  PseudoVMFLT_VFPR32_M2 = 6830,
-  PseudoVMFLT_VFPR32_M2_MASK = 6831,
-  PseudoVMFLT_VFPR32_M4 = 6832,
-  PseudoVMFLT_VFPR32_M4_MASK = 6833,
-  PseudoVMFLT_VFPR32_M8 = 6834,
-  PseudoVMFLT_VFPR32_M8_MASK = 6835,
-  PseudoVMFLT_VFPR32_MF2 = 6836,
-  PseudoVMFLT_VFPR32_MF2_MASK = 6837,
-  PseudoVMFLT_VFPR64_M1 = 6838,
-  PseudoVMFLT_VFPR64_M1_MASK = 6839,
-  PseudoVMFLT_VFPR64_M2 = 6840,
-  PseudoVMFLT_VFPR64_M2_MASK = 6841,
-  PseudoVMFLT_VFPR64_M4 = 6842,
-  PseudoVMFLT_VFPR64_M4_MASK = 6843,
-  PseudoVMFLT_VFPR64_M8 = 6844,
-  PseudoVMFLT_VFPR64_M8_MASK = 6845,
-  PseudoVMFLT_VV_M1 = 6846,
-  PseudoVMFLT_VV_M1_MASK = 6847,
-  PseudoVMFLT_VV_M2 = 6848,
-  PseudoVMFLT_VV_M2_MASK = 6849,
-  PseudoVMFLT_VV_M4 = 6850,
-  PseudoVMFLT_VV_M4_MASK = 6851,
-  PseudoVMFLT_VV_M8 = 6852,
-  PseudoVMFLT_VV_M8_MASK = 6853,
-  PseudoVMFLT_VV_MF2 = 6854,
-  PseudoVMFLT_VV_MF2_MASK = 6855,
-  PseudoVMFLT_VV_MF4 = 6856,
-  PseudoVMFLT_VV_MF4_MASK = 6857,
-  PseudoVMFNE_VFPR16_M1 = 6858,
-  PseudoVMFNE_VFPR16_M1_MASK = 6859,
-  PseudoVMFNE_VFPR16_M2 = 6860,
-  PseudoVMFNE_VFPR16_M2_MASK = 6861,
-  PseudoVMFNE_VFPR16_M4 = 6862,
-  PseudoVMFNE_VFPR16_M4_MASK = 6863,
-  PseudoVMFNE_VFPR16_M8 = 6864,
-  PseudoVMFNE_VFPR16_M8_MASK = 6865,
-  PseudoVMFNE_VFPR16_MF2 = 6866,
-  PseudoVMFNE_VFPR16_MF2_MASK = 6867,
-  PseudoVMFNE_VFPR16_MF4 = 6868,
-  PseudoVMFNE_VFPR16_MF4_MASK = 6869,
-  PseudoVMFNE_VFPR32_M1 = 6870,
-  PseudoVMFNE_VFPR32_M1_MASK = 6871,
-  PseudoVMFNE_VFPR32_M2 = 6872,
-  PseudoVMFNE_VFPR32_M2_MASK = 6873,
-  PseudoVMFNE_VFPR32_M4 = 6874,
-  PseudoVMFNE_VFPR32_M4_MASK = 6875,
-  PseudoVMFNE_VFPR32_M8 = 6876,
-  PseudoVMFNE_VFPR32_M8_MASK = 6877,
-  PseudoVMFNE_VFPR32_MF2 = 6878,
-  PseudoVMFNE_VFPR32_MF2_MASK = 6879,
-  PseudoVMFNE_VFPR64_M1 = 6880,
-  PseudoVMFNE_VFPR64_M1_MASK = 6881,
-  PseudoVMFNE_VFPR64_M2 = 6882,
-  PseudoVMFNE_VFPR64_M2_MASK = 6883,
-  PseudoVMFNE_VFPR64_M4 = 6884,
-  PseudoVMFNE_VFPR64_M4_MASK = 6885,
-  PseudoVMFNE_VFPR64_M8 = 6886,
-  PseudoVMFNE_VFPR64_M8_MASK = 6887,
-  PseudoVMFNE_VV_M1 = 6888,
-  PseudoVMFNE_VV_M1_MASK = 6889,
-  PseudoVMFNE_VV_M2 = 6890,
-  PseudoVMFNE_VV_M2_MASK = 6891,
-  PseudoVMFNE_VV_M4 = 6892,
-  PseudoVMFNE_VV_M4_MASK = 6893,
-  PseudoVMFNE_VV_M8 = 6894,
-  PseudoVMFNE_VV_M8_MASK = 6895,
-  PseudoVMFNE_VV_MF2 = 6896,
-  PseudoVMFNE_VV_MF2_MASK = 6897,
-  PseudoVMFNE_VV_MF4 = 6898,
-  PseudoVMFNE_VV_MF4_MASK = 6899,
-  PseudoVMINU_VV_M1 = 6900,
-  PseudoVMINU_VV_M1_MASK = 6901,
-  PseudoVMINU_VV_M2 = 6902,
-  PseudoVMINU_VV_M2_MASK = 6903,
-  PseudoVMINU_VV_M4 = 6904,
-  PseudoVMINU_VV_M4_MASK = 6905,
-  PseudoVMINU_VV_M8 = 6906,
-  PseudoVMINU_VV_M8_MASK = 6907,
-  PseudoVMINU_VV_MF2 = 6908,
-  PseudoVMINU_VV_MF2_MASK = 6909,
-  PseudoVMINU_VV_MF4 = 6910,
-  PseudoVMINU_VV_MF4_MASK = 6911,
-  PseudoVMINU_VV_MF8 = 6912,
-  PseudoVMINU_VV_MF8_MASK = 6913,
-  PseudoVMINU_VX_M1 = 6914,
-  PseudoVMINU_VX_M1_MASK = 6915,
-  PseudoVMINU_VX_M2 = 6916,
-  PseudoVMINU_VX_M2_MASK = 6917,
-  PseudoVMINU_VX_M4 = 6918,
-  PseudoVMINU_VX_M4_MASK = 6919,
-  PseudoVMINU_VX_M8 = 6920,
-  PseudoVMINU_VX_M8_MASK = 6921,
-  PseudoVMINU_VX_MF2 = 6922,
-  PseudoVMINU_VX_MF2_MASK = 6923,
-  PseudoVMINU_VX_MF4 = 6924,
-  PseudoVMINU_VX_MF4_MASK = 6925,
-  PseudoVMINU_VX_MF8 = 6926,
-  PseudoVMINU_VX_MF8_MASK = 6927,
-  PseudoVMIN_VV_M1 = 6928,
-  PseudoVMIN_VV_M1_MASK = 6929,
-  PseudoVMIN_VV_M2 = 6930,
-  PseudoVMIN_VV_M2_MASK = 6931,
-  PseudoVMIN_VV_M4 = 6932,
-  PseudoVMIN_VV_M4_MASK = 6933,
-  PseudoVMIN_VV_M8 = 6934,
-  PseudoVMIN_VV_M8_MASK = 6935,
-  PseudoVMIN_VV_MF2 = 6936,
-  PseudoVMIN_VV_MF2_MASK = 6937,
-  PseudoVMIN_VV_MF4 = 6938,
-  PseudoVMIN_VV_MF4_MASK = 6939,
-  PseudoVMIN_VV_MF8 = 6940,
-  PseudoVMIN_VV_MF8_MASK = 6941,
-  PseudoVMIN_VX_M1 = 6942,
-  PseudoVMIN_VX_M1_MASK = 6943,
-  PseudoVMIN_VX_M2 = 6944,
-  PseudoVMIN_VX_M2_MASK = 6945,
-  PseudoVMIN_VX_M4 = 6946,
-  PseudoVMIN_VX_M4_MASK = 6947,
-  PseudoVMIN_VX_M8 = 6948,
-  PseudoVMIN_VX_M8_MASK = 6949,
-  PseudoVMIN_VX_MF2 = 6950,
-  PseudoVMIN_VX_MF2_MASK = 6951,
-  PseudoVMIN_VX_MF4 = 6952,
-  PseudoVMIN_VX_MF4_MASK = 6953,
-  PseudoVMIN_VX_MF8 = 6954,
-  PseudoVMIN_VX_MF8_MASK = 6955,
-  PseudoVMNAND_MM_B1 = 6956,
-  PseudoVMNAND_MM_B16 = 6957,
-  PseudoVMNAND_MM_B2 = 6958,
-  PseudoVMNAND_MM_B32 = 6959,
-  PseudoVMNAND_MM_B4 = 6960,
-  PseudoVMNAND_MM_B64 = 6961,
-  PseudoVMNAND_MM_B8 = 6962,
-  PseudoVMNOR_MM_B1 = 6963,
-  PseudoVMNOR_MM_B16 = 6964,
-  PseudoVMNOR_MM_B2 = 6965,
-  PseudoVMNOR_MM_B32 = 6966,
-  PseudoVMNOR_MM_B4 = 6967,
-  PseudoVMNOR_MM_B64 = 6968,
-  PseudoVMNOR_MM_B8 = 6969,
-  PseudoVMORN_MM_B1 = 6970,
-  PseudoVMORN_MM_B16 = 6971,
-  PseudoVMORN_MM_B2 = 6972,
-  PseudoVMORN_MM_B32 = 6973,
-  PseudoVMORN_MM_B4 = 6974,
-  PseudoVMORN_MM_B64 = 6975,
-  PseudoVMORN_MM_B8 = 6976,
-  PseudoVMOR_MM_B1 = 6977,
-  PseudoVMOR_MM_B16 = 6978,
-  PseudoVMOR_MM_B2 = 6979,
-  PseudoVMOR_MM_B32 = 6980,
-  PseudoVMOR_MM_B4 = 6981,
-  PseudoVMOR_MM_B64 = 6982,
-  PseudoVMOR_MM_B8 = 6983,
-  PseudoVMSBC_VVM_M1 = 6984,
-  PseudoVMSBC_VVM_M2 = 6985,
-  PseudoVMSBC_VVM_M4 = 6986,
-  PseudoVMSBC_VVM_M8 = 6987,
-  PseudoVMSBC_VVM_MF2 = 6988,
-  PseudoVMSBC_VVM_MF4 = 6989,
-  PseudoVMSBC_VVM_MF8 = 6990,
-  PseudoVMSBC_VV_M1 = 6991,
-  PseudoVMSBC_VV_M2 = 6992,
-  PseudoVMSBC_VV_M4 = 6993,
-  PseudoVMSBC_VV_M8 = 6994,
-  PseudoVMSBC_VV_MF2 = 6995,
-  PseudoVMSBC_VV_MF4 = 6996,
-  PseudoVMSBC_VV_MF8 = 6997,
-  PseudoVMSBC_VXM_M1 = 6998,
-  PseudoVMSBC_VXM_M2 = 6999,
-  PseudoVMSBC_VXM_M4 = 7000,
-  PseudoVMSBC_VXM_M8 = 7001,
-  PseudoVMSBC_VXM_MF2 = 7002,
-  PseudoVMSBC_VXM_MF4 = 7003,
-  PseudoVMSBC_VXM_MF8 = 7004,
-  PseudoVMSBC_VX_M1 = 7005,
-  PseudoVMSBC_VX_M2 = 7006,
-  PseudoVMSBC_VX_M4 = 7007,
-  PseudoVMSBC_VX_M8 = 7008,
-  PseudoVMSBC_VX_MF2 = 7009,
-  PseudoVMSBC_VX_MF4 = 7010,
-  PseudoVMSBC_VX_MF8 = 7011,
-  PseudoVMSBF_M_B1 = 7012,
-  PseudoVMSBF_M_B16 = 7013,
-  PseudoVMSBF_M_B16_MASK = 7014,
-  PseudoVMSBF_M_B1_MASK = 7015,
-  PseudoVMSBF_M_B2 = 7016,
-  PseudoVMSBF_M_B2_MASK = 7017,
-  PseudoVMSBF_M_B32 = 7018,
-  PseudoVMSBF_M_B32_MASK = 7019,
-  PseudoVMSBF_M_B4 = 7020,
-  PseudoVMSBF_M_B4_MASK = 7021,
-  PseudoVMSBF_M_B64 = 7022,
-  PseudoVMSBF_M_B64_MASK = 7023,
-  PseudoVMSBF_M_B8 = 7024,
-  PseudoVMSBF_M_B8_MASK = 7025,
-  PseudoVMSEQ_VI_M1 = 7026,
-  PseudoVMSEQ_VI_M1_MASK = 7027,
-  PseudoVMSEQ_VI_M2 = 7028,
-  PseudoVMSEQ_VI_M2_MASK = 7029,
-  PseudoVMSEQ_VI_M4 = 7030,
-  PseudoVMSEQ_VI_M4_MASK = 7031,
-  PseudoVMSEQ_VI_M8 = 7032,
-  PseudoVMSEQ_VI_M8_MASK = 7033,
-  PseudoVMSEQ_VI_MF2 = 7034,
-  PseudoVMSEQ_VI_MF2_MASK = 7035,
-  PseudoVMSEQ_VI_MF4 = 7036,
-  PseudoVMSEQ_VI_MF4_MASK = 7037,
-  PseudoVMSEQ_VI_MF8 = 7038,
-  PseudoVMSEQ_VI_MF8_MASK = 7039,
-  PseudoVMSEQ_VV_M1 = 7040,
-  PseudoVMSEQ_VV_M1_MASK = 7041,
-  PseudoVMSEQ_VV_M2 = 7042,
-  PseudoVMSEQ_VV_M2_MASK = 7043,
-  PseudoVMSEQ_VV_M4 = 7044,
-  PseudoVMSEQ_VV_M4_MASK = 7045,
-  PseudoVMSEQ_VV_M8 = 7046,
-  PseudoVMSEQ_VV_M8_MASK = 7047,
-  PseudoVMSEQ_VV_MF2 = 7048,
-  PseudoVMSEQ_VV_MF2_MASK = 7049,
-  PseudoVMSEQ_VV_MF4 = 7050,
-  PseudoVMSEQ_VV_MF4_MASK = 7051,
-  PseudoVMSEQ_VV_MF8 = 7052,
-  PseudoVMSEQ_VV_MF8_MASK = 7053,
-  PseudoVMSEQ_VX_M1 = 7054,
-  PseudoVMSEQ_VX_M1_MASK = 7055,
-  PseudoVMSEQ_VX_M2 = 7056,
-  PseudoVMSEQ_VX_M2_MASK = 7057,
-  PseudoVMSEQ_VX_M4 = 7058,
-  PseudoVMSEQ_VX_M4_MASK = 7059,
-  PseudoVMSEQ_VX_M8 = 7060,
-  PseudoVMSEQ_VX_M8_MASK = 7061,
-  PseudoVMSEQ_VX_MF2 = 7062,
-  PseudoVMSEQ_VX_MF2_MASK = 7063,
-  PseudoVMSEQ_VX_MF4 = 7064,
-  PseudoVMSEQ_VX_MF4_MASK = 7065,
-  PseudoVMSEQ_VX_MF8 = 7066,
-  PseudoVMSEQ_VX_MF8_MASK = 7067,
-  PseudoVMSET_M_B1 = 7068,
-  PseudoVMSET_M_B16 = 7069,
-  PseudoVMSET_M_B2 = 7070,
-  PseudoVMSET_M_B32 = 7071,
-  PseudoVMSET_M_B4 = 7072,
-  PseudoVMSET_M_B64 = 7073,
-  PseudoVMSET_M_B8 = 7074,
-  PseudoVMSGEU_VI = 7075,
-  PseudoVMSGEU_VX = 7076,
-  PseudoVMSGEU_VX_M = 7077,
-  PseudoVMSGEU_VX_M_T = 7078,
-  PseudoVMSGE_VI = 7079,
-  PseudoVMSGE_VX = 7080,
-  PseudoVMSGE_VX_M = 7081,
-  PseudoVMSGE_VX_M_T = 7082,
-  PseudoVMSGTU_VI_M1 = 7083,
-  PseudoVMSGTU_VI_M1_MASK = 7084,
-  PseudoVMSGTU_VI_M2 = 7085,
-  PseudoVMSGTU_VI_M2_MASK = 7086,
-  PseudoVMSGTU_VI_M4 = 7087,
-  PseudoVMSGTU_VI_M4_MASK = 7088,
-  PseudoVMSGTU_VI_M8 = 7089,
-  PseudoVMSGTU_VI_M8_MASK = 7090,
-  PseudoVMSGTU_VI_MF2 = 7091,
-  PseudoVMSGTU_VI_MF2_MASK = 7092,
-  PseudoVMSGTU_VI_MF4 = 7093,
-  PseudoVMSGTU_VI_MF4_MASK = 7094,
-  PseudoVMSGTU_VI_MF8 = 7095,
-  PseudoVMSGTU_VI_MF8_MASK = 7096,
-  PseudoVMSGTU_VX_M1 = 7097,
-  PseudoVMSGTU_VX_M1_MASK = 7098,
-  PseudoVMSGTU_VX_M2 = 7099,
-  PseudoVMSGTU_VX_M2_MASK = 7100,
-  PseudoVMSGTU_VX_M4 = 7101,
-  PseudoVMSGTU_VX_M4_MASK = 7102,
-  PseudoVMSGTU_VX_M8 = 7103,
-  PseudoVMSGTU_VX_M8_MASK = 7104,
-  PseudoVMSGTU_VX_MF2 = 7105,
-  PseudoVMSGTU_VX_MF2_MASK = 7106,
-  PseudoVMSGTU_VX_MF4 = 7107,
-  PseudoVMSGTU_VX_MF4_MASK = 7108,
-  PseudoVMSGTU_VX_MF8 = 7109,
-  PseudoVMSGTU_VX_MF8_MASK = 7110,
-  PseudoVMSGT_VI_M1 = 7111,
-  PseudoVMSGT_VI_M1_MASK = 7112,
-  PseudoVMSGT_VI_M2 = 7113,
-  PseudoVMSGT_VI_M2_MASK = 7114,
-  PseudoVMSGT_VI_M4 = 7115,
-  PseudoVMSGT_VI_M4_MASK = 7116,
-  PseudoVMSGT_VI_M8 = 7117,
-  PseudoVMSGT_VI_M8_MASK = 7118,
-  PseudoVMSGT_VI_MF2 = 7119,
-  PseudoVMSGT_VI_MF2_MASK = 7120,
-  PseudoVMSGT_VI_MF4 = 7121,
-  PseudoVMSGT_VI_MF4_MASK = 7122,
-  PseudoVMSGT_VI_MF8 = 7123,
-  PseudoVMSGT_VI_MF8_MASK = 7124,
-  PseudoVMSGT_VX_M1 = 7125,
-  PseudoVMSGT_VX_M1_MASK = 7126,
-  PseudoVMSGT_VX_M2 = 7127,
-  PseudoVMSGT_VX_M2_MASK = 7128,
-  PseudoVMSGT_VX_M4 = 7129,
-  PseudoVMSGT_VX_M4_MASK = 7130,
-  PseudoVMSGT_VX_M8 = 7131,
-  PseudoVMSGT_VX_M8_MASK = 7132,
-  PseudoVMSGT_VX_MF2 = 7133,
-  PseudoVMSGT_VX_MF2_MASK = 7134,
-  PseudoVMSGT_VX_MF4 = 7135,
-  PseudoVMSGT_VX_MF4_MASK = 7136,
-  PseudoVMSGT_VX_MF8 = 7137,
-  PseudoVMSGT_VX_MF8_MASK = 7138,
-  PseudoVMSIF_M_B1 = 7139,
-  PseudoVMSIF_M_B16 = 7140,
-  PseudoVMSIF_M_B16_MASK = 7141,
-  PseudoVMSIF_M_B1_MASK = 7142,
-  PseudoVMSIF_M_B2 = 7143,
-  PseudoVMSIF_M_B2_MASK = 7144,
-  PseudoVMSIF_M_B32 = 7145,
-  PseudoVMSIF_M_B32_MASK = 7146,
-  PseudoVMSIF_M_B4 = 7147,
-  PseudoVMSIF_M_B4_MASK = 7148,
-  PseudoVMSIF_M_B64 = 7149,
-  PseudoVMSIF_M_B64_MASK = 7150,
-  PseudoVMSIF_M_B8 = 7151,
-  PseudoVMSIF_M_B8_MASK = 7152,
-  PseudoVMSLEU_VI_M1 = 7153,
-  PseudoVMSLEU_VI_M1_MASK = 7154,
-  PseudoVMSLEU_VI_M2 = 7155,
-  PseudoVMSLEU_VI_M2_MASK = 7156,
-  PseudoVMSLEU_VI_M4 = 7157,
-  PseudoVMSLEU_VI_M4_MASK = 7158,
-  PseudoVMSLEU_VI_M8 = 7159,
-  PseudoVMSLEU_VI_M8_MASK = 7160,
-  PseudoVMSLEU_VI_MF2 = 7161,
-  PseudoVMSLEU_VI_MF2_MASK = 7162,
-  PseudoVMSLEU_VI_MF4 = 7163,
-  PseudoVMSLEU_VI_MF4_MASK = 7164,
-  PseudoVMSLEU_VI_MF8 = 7165,
-  PseudoVMSLEU_VI_MF8_MASK = 7166,
-  PseudoVMSLEU_VV_M1 = 7167,
-  PseudoVMSLEU_VV_M1_MASK = 7168,
-  PseudoVMSLEU_VV_M2 = 7169,
-  PseudoVMSLEU_VV_M2_MASK = 7170,
-  PseudoVMSLEU_VV_M4 = 7171,
-  PseudoVMSLEU_VV_M4_MASK = 7172,
-  PseudoVMSLEU_VV_M8 = 7173,
-  PseudoVMSLEU_VV_M8_MASK = 7174,
-  PseudoVMSLEU_VV_MF2 = 7175,
-  PseudoVMSLEU_VV_MF2_MASK = 7176,
-  PseudoVMSLEU_VV_MF4 = 7177,
-  PseudoVMSLEU_VV_MF4_MASK = 7178,
-  PseudoVMSLEU_VV_MF8 = 7179,
-  PseudoVMSLEU_VV_MF8_MASK = 7180,
-  PseudoVMSLEU_VX_M1 = 7181,
-  PseudoVMSLEU_VX_M1_MASK = 7182,
-  PseudoVMSLEU_VX_M2 = 7183,
-  PseudoVMSLEU_VX_M2_MASK = 7184,
-  PseudoVMSLEU_VX_M4 = 7185,
-  PseudoVMSLEU_VX_M4_MASK = 7186,
-  PseudoVMSLEU_VX_M8 = 7187,
-  PseudoVMSLEU_VX_M8_MASK = 7188,
-  PseudoVMSLEU_VX_MF2 = 7189,
-  PseudoVMSLEU_VX_MF2_MASK = 7190,
-  PseudoVMSLEU_VX_MF4 = 7191,
-  PseudoVMSLEU_VX_MF4_MASK = 7192,
-  PseudoVMSLEU_VX_MF8 = 7193,
-  PseudoVMSLEU_VX_MF8_MASK = 7194,
-  PseudoVMSLE_VI_M1 = 7195,
-  PseudoVMSLE_VI_M1_MASK = 7196,
-  PseudoVMSLE_VI_M2 = 7197,
-  PseudoVMSLE_VI_M2_MASK = 7198,
-  PseudoVMSLE_VI_M4 = 7199,
-  PseudoVMSLE_VI_M4_MASK = 7200,
-  PseudoVMSLE_VI_M8 = 7201,
-  PseudoVMSLE_VI_M8_MASK = 7202,
-  PseudoVMSLE_VI_MF2 = 7203,
-  PseudoVMSLE_VI_MF2_MASK = 7204,
-  PseudoVMSLE_VI_MF4 = 7205,
-  PseudoVMSLE_VI_MF4_MASK = 7206,
-  PseudoVMSLE_VI_MF8 = 7207,
-  PseudoVMSLE_VI_MF8_MASK = 7208,
-  PseudoVMSLE_VV_M1 = 7209,
-  PseudoVMSLE_VV_M1_MASK = 7210,
-  PseudoVMSLE_VV_M2 = 7211,
-  PseudoVMSLE_VV_M2_MASK = 7212,
-  PseudoVMSLE_VV_M4 = 7213,
-  PseudoVMSLE_VV_M4_MASK = 7214,
-  PseudoVMSLE_VV_M8 = 7215,
-  PseudoVMSLE_VV_M8_MASK = 7216,
-  PseudoVMSLE_VV_MF2 = 7217,
-  PseudoVMSLE_VV_MF2_MASK = 7218,
-  PseudoVMSLE_VV_MF4 = 7219,
-  PseudoVMSLE_VV_MF4_MASK = 7220,
-  PseudoVMSLE_VV_MF8 = 7221,
-  PseudoVMSLE_VV_MF8_MASK = 7222,
-  PseudoVMSLE_VX_M1 = 7223,
-  PseudoVMSLE_VX_M1_MASK = 7224,
-  PseudoVMSLE_VX_M2 = 7225,
-  PseudoVMSLE_VX_M2_MASK = 7226,
-  PseudoVMSLE_VX_M4 = 7227,
-  PseudoVMSLE_VX_M4_MASK = 7228,
-  PseudoVMSLE_VX_M8 = 7229,
-  PseudoVMSLE_VX_M8_MASK = 7230,
-  PseudoVMSLE_VX_MF2 = 7231,
-  PseudoVMSLE_VX_MF2_MASK = 7232,
-  PseudoVMSLE_VX_MF4 = 7233,
-  PseudoVMSLE_VX_MF4_MASK = 7234,
-  PseudoVMSLE_VX_MF8 = 7235,
-  PseudoVMSLE_VX_MF8_MASK = 7236,
-  PseudoVMSLTU_VI = 7237,
-  PseudoVMSLTU_VV_M1 = 7238,
-  PseudoVMSLTU_VV_M1_MASK = 7239,
-  PseudoVMSLTU_VV_M2 = 7240,
-  PseudoVMSLTU_VV_M2_MASK = 7241,
-  PseudoVMSLTU_VV_M4 = 7242,
-  PseudoVMSLTU_VV_M4_MASK = 7243,
-  PseudoVMSLTU_VV_M8 = 7244,
-  PseudoVMSLTU_VV_M8_MASK = 7245,
-  PseudoVMSLTU_VV_MF2 = 7246,
-  PseudoVMSLTU_VV_MF2_MASK = 7247,
-  PseudoVMSLTU_VV_MF4 = 7248,
-  PseudoVMSLTU_VV_MF4_MASK = 7249,
-  PseudoVMSLTU_VV_MF8 = 7250,
-  PseudoVMSLTU_VV_MF8_MASK = 7251,
-  PseudoVMSLTU_VX_M1 = 7252,
-  PseudoVMSLTU_VX_M1_MASK = 7253,
-  PseudoVMSLTU_VX_M2 = 7254,
-  PseudoVMSLTU_VX_M2_MASK = 7255,
-  PseudoVMSLTU_VX_M4 = 7256,
-  PseudoVMSLTU_VX_M4_MASK = 7257,
-  PseudoVMSLTU_VX_M8 = 7258,
-  PseudoVMSLTU_VX_M8_MASK = 7259,
-  PseudoVMSLTU_VX_MF2 = 7260,
-  PseudoVMSLTU_VX_MF2_MASK = 7261,
-  PseudoVMSLTU_VX_MF4 = 7262,
-  PseudoVMSLTU_VX_MF4_MASK = 7263,
-  PseudoVMSLTU_VX_MF8 = 7264,
-  PseudoVMSLTU_VX_MF8_MASK = 7265,
-  PseudoVMSLT_VI = 7266,
-  PseudoVMSLT_VV_M1 = 7267,
-  PseudoVMSLT_VV_M1_MASK = 7268,
-  PseudoVMSLT_VV_M2 = 7269,
-  PseudoVMSLT_VV_M2_MASK = 7270,
-  PseudoVMSLT_VV_M4 = 7271,
-  PseudoVMSLT_VV_M4_MASK = 7272,
-  PseudoVMSLT_VV_M8 = 7273,
-  PseudoVMSLT_VV_M8_MASK = 7274,
-  PseudoVMSLT_VV_MF2 = 7275,
-  PseudoVMSLT_VV_MF2_MASK = 7276,
-  PseudoVMSLT_VV_MF4 = 7277,
-  PseudoVMSLT_VV_MF4_MASK = 7278,
-  PseudoVMSLT_VV_MF8 = 7279,
-  PseudoVMSLT_VV_MF8_MASK = 7280,
-  PseudoVMSLT_VX_M1 = 7281,
-  PseudoVMSLT_VX_M1_MASK = 7282,
-  PseudoVMSLT_VX_M2 = 7283,
-  PseudoVMSLT_VX_M2_MASK = 7284,
-  PseudoVMSLT_VX_M4 = 7285,
-  PseudoVMSLT_VX_M4_MASK = 7286,
-  PseudoVMSLT_VX_M8 = 7287,
-  PseudoVMSLT_VX_M8_MASK = 7288,
-  PseudoVMSLT_VX_MF2 = 7289,
-  PseudoVMSLT_VX_MF2_MASK = 7290,
-  PseudoVMSLT_VX_MF4 = 7291,
-  PseudoVMSLT_VX_MF4_MASK = 7292,
-  PseudoVMSLT_VX_MF8 = 7293,
-  PseudoVMSLT_VX_MF8_MASK = 7294,
-  PseudoVMSNE_VI_M1 = 7295,
-  PseudoVMSNE_VI_M1_MASK = 7296,
-  PseudoVMSNE_VI_M2 = 7297,
-  PseudoVMSNE_VI_M2_MASK = 7298,
-  PseudoVMSNE_VI_M4 = 7299,
-  PseudoVMSNE_VI_M4_MASK = 7300,
-  PseudoVMSNE_VI_M8 = 7301,
-  PseudoVMSNE_VI_M8_MASK = 7302,
-  PseudoVMSNE_VI_MF2 = 7303,
-  PseudoVMSNE_VI_MF2_MASK = 7304,
-  PseudoVMSNE_VI_MF4 = 7305,
-  PseudoVMSNE_VI_MF4_MASK = 7306,
-  PseudoVMSNE_VI_MF8 = 7307,
-  PseudoVMSNE_VI_MF8_MASK = 7308,
-  PseudoVMSNE_VV_M1 = 7309,
-  PseudoVMSNE_VV_M1_MASK = 7310,
-  PseudoVMSNE_VV_M2 = 7311,
-  PseudoVMSNE_VV_M2_MASK = 7312,
-  PseudoVMSNE_VV_M4 = 7313,
-  PseudoVMSNE_VV_M4_MASK = 7314,
-  PseudoVMSNE_VV_M8 = 7315,
-  PseudoVMSNE_VV_M8_MASK = 7316,
-  PseudoVMSNE_VV_MF2 = 7317,
-  PseudoVMSNE_VV_MF2_MASK = 7318,
-  PseudoVMSNE_VV_MF4 = 7319,
-  PseudoVMSNE_VV_MF4_MASK = 7320,
-  PseudoVMSNE_VV_MF8 = 7321,
-  PseudoVMSNE_VV_MF8_MASK = 7322,
-  PseudoVMSNE_VX_M1 = 7323,
-  PseudoVMSNE_VX_M1_MASK = 7324,
-  PseudoVMSNE_VX_M2 = 7325,
-  PseudoVMSNE_VX_M2_MASK = 7326,
-  PseudoVMSNE_VX_M4 = 7327,
-  PseudoVMSNE_VX_M4_MASK = 7328,
-  PseudoVMSNE_VX_M8 = 7329,
-  PseudoVMSNE_VX_M8_MASK = 7330,
-  PseudoVMSNE_VX_MF2 = 7331,
-  PseudoVMSNE_VX_MF2_MASK = 7332,
-  PseudoVMSNE_VX_MF4 = 7333,
-  PseudoVMSNE_VX_MF4_MASK = 7334,
-  PseudoVMSNE_VX_MF8 = 7335,
-  PseudoVMSNE_VX_MF8_MASK = 7336,
-  PseudoVMSOF_M_B1 = 7337,
-  PseudoVMSOF_M_B16 = 7338,
-  PseudoVMSOF_M_B16_MASK = 7339,
-  PseudoVMSOF_M_B1_MASK = 7340,
-  PseudoVMSOF_M_B2 = 7341,
-  PseudoVMSOF_M_B2_MASK = 7342,
-  PseudoVMSOF_M_B32 = 7343,
-  PseudoVMSOF_M_B32_MASK = 7344,
-  PseudoVMSOF_M_B4 = 7345,
-  PseudoVMSOF_M_B4_MASK = 7346,
-  PseudoVMSOF_M_B64 = 7347,
-  PseudoVMSOF_M_B64_MASK = 7348,
-  PseudoVMSOF_M_B8 = 7349,
-  PseudoVMSOF_M_B8_MASK = 7350,
-  PseudoVMULHSU_VV_M1 = 7351,
-  PseudoVMULHSU_VV_M1_MASK = 7352,
-  PseudoVMULHSU_VV_M2 = 7353,
-  PseudoVMULHSU_VV_M2_MASK = 7354,
-  PseudoVMULHSU_VV_M4 = 7355,
-  PseudoVMULHSU_VV_M4_MASK = 7356,
-  PseudoVMULHSU_VV_M8 = 7357,
-  PseudoVMULHSU_VV_M8_MASK = 7358,
-  PseudoVMULHSU_VV_MF2 = 7359,
-  PseudoVMULHSU_VV_MF2_MASK = 7360,
-  PseudoVMULHSU_VV_MF4 = 7361,
-  PseudoVMULHSU_VV_MF4_MASK = 7362,
-  PseudoVMULHSU_VV_MF8 = 7363,
-  PseudoVMULHSU_VV_MF8_MASK = 7364,
-  PseudoVMULHSU_VX_M1 = 7365,
-  PseudoVMULHSU_VX_M1_MASK = 7366,
-  PseudoVMULHSU_VX_M2 = 7367,
-  PseudoVMULHSU_VX_M2_MASK = 7368,
-  PseudoVMULHSU_VX_M4 = 7369,
-  PseudoVMULHSU_VX_M4_MASK = 7370,
-  PseudoVMULHSU_VX_M8 = 7371,
-  PseudoVMULHSU_VX_M8_MASK = 7372,
-  PseudoVMULHSU_VX_MF2 = 7373,
-  PseudoVMULHSU_VX_MF2_MASK = 7374,
-  PseudoVMULHSU_VX_MF4 = 7375,
-  PseudoVMULHSU_VX_MF4_MASK = 7376,
-  PseudoVMULHSU_VX_MF8 = 7377,
-  PseudoVMULHSU_VX_MF8_MASK = 7378,
-  PseudoVMULHU_VV_M1 = 7379,
-  PseudoVMULHU_VV_M1_MASK = 7380,
-  PseudoVMULHU_VV_M2 = 7381,
-  PseudoVMULHU_VV_M2_MASK = 7382,
-  PseudoVMULHU_VV_M4 = 7383,
-  PseudoVMULHU_VV_M4_MASK = 7384,
-  PseudoVMULHU_VV_M8 = 7385,
-  PseudoVMULHU_VV_M8_MASK = 7386,
-  PseudoVMULHU_VV_MF2 = 7387,
-  PseudoVMULHU_VV_MF2_MASK = 7388,
-  PseudoVMULHU_VV_MF4 = 7389,
-  PseudoVMULHU_VV_MF4_MASK = 7390,
-  PseudoVMULHU_VV_MF8 = 7391,
-  PseudoVMULHU_VV_MF8_MASK = 7392,
-  PseudoVMULHU_VX_M1 = 7393,
-  PseudoVMULHU_VX_M1_MASK = 7394,
-  PseudoVMULHU_VX_M2 = 7395,
-  PseudoVMULHU_VX_M2_MASK = 7396,
-  PseudoVMULHU_VX_M4 = 7397,
-  PseudoVMULHU_VX_M4_MASK = 7398,
-  PseudoVMULHU_VX_M8 = 7399,
-  PseudoVMULHU_VX_M8_MASK = 7400,
-  PseudoVMULHU_VX_MF2 = 7401,
-  PseudoVMULHU_VX_MF2_MASK = 7402,
-  PseudoVMULHU_VX_MF4 = 7403,
-  PseudoVMULHU_VX_MF4_MASK = 7404,
-  PseudoVMULHU_VX_MF8 = 7405,
-  PseudoVMULHU_VX_MF8_MASK = 7406,
-  PseudoVMULH_VV_M1 = 7407,
-  PseudoVMULH_VV_M1_MASK = 7408,
-  PseudoVMULH_VV_M2 = 7409,
-  PseudoVMULH_VV_M2_MASK = 7410,
-  PseudoVMULH_VV_M4 = 7411,
-  PseudoVMULH_VV_M4_MASK = 7412,
-  PseudoVMULH_VV_M8 = 7413,
-  PseudoVMULH_VV_M8_MASK = 7414,
-  PseudoVMULH_VV_MF2 = 7415,
-  PseudoVMULH_VV_MF2_MASK = 7416,
-  PseudoVMULH_VV_MF4 = 7417,
-  PseudoVMULH_VV_MF4_MASK = 7418,
-  PseudoVMULH_VV_MF8 = 7419,
-  PseudoVMULH_VV_MF8_MASK = 7420,
-  PseudoVMULH_VX_M1 = 7421,
-  PseudoVMULH_VX_M1_MASK = 7422,
-  PseudoVMULH_VX_M2 = 7423,
-  PseudoVMULH_VX_M2_MASK = 7424,
-  PseudoVMULH_VX_M4 = 7425,
-  PseudoVMULH_VX_M4_MASK = 7426,
-  PseudoVMULH_VX_M8 = 7427,
-  PseudoVMULH_VX_M8_MASK = 7428,
-  PseudoVMULH_VX_MF2 = 7429,
-  PseudoVMULH_VX_MF2_MASK = 7430,
-  PseudoVMULH_VX_MF4 = 7431,
-  PseudoVMULH_VX_MF4_MASK = 7432,
-  PseudoVMULH_VX_MF8 = 7433,
-  PseudoVMULH_VX_MF8_MASK = 7434,
-  PseudoVMUL_VV_M1 = 7435,
-  PseudoVMUL_VV_M1_MASK = 7436,
-  PseudoVMUL_VV_M2 = 7437,
-  PseudoVMUL_VV_M2_MASK = 7438,
-  PseudoVMUL_VV_M4 = 7439,
-  PseudoVMUL_VV_M4_MASK = 7440,
-  PseudoVMUL_VV_M8 = 7441,
-  PseudoVMUL_VV_M8_MASK = 7442,
-  PseudoVMUL_VV_MF2 = 7443,
-  PseudoVMUL_VV_MF2_MASK = 7444,
-  PseudoVMUL_VV_MF4 = 7445,
-  PseudoVMUL_VV_MF4_MASK = 7446,
-  PseudoVMUL_VV_MF8 = 7447,
-  PseudoVMUL_VV_MF8_MASK = 7448,
-  PseudoVMUL_VX_M1 = 7449,
-  PseudoVMUL_VX_M1_MASK = 7450,
-  PseudoVMUL_VX_M2 = 7451,
-  PseudoVMUL_VX_M2_MASK = 7452,
-  PseudoVMUL_VX_M4 = 7453,
-  PseudoVMUL_VX_M4_MASK = 7454,
-  PseudoVMUL_VX_M8 = 7455,
-  PseudoVMUL_VX_M8_MASK = 7456,
-  PseudoVMUL_VX_MF2 = 7457,
-  PseudoVMUL_VX_MF2_MASK = 7458,
-  PseudoVMUL_VX_MF4 = 7459,
-  PseudoVMUL_VX_MF4_MASK = 7460,
-  PseudoVMUL_VX_MF8 = 7461,
-  PseudoVMUL_VX_MF8_MASK = 7462,
-  PseudoVMV_S_X = 7463,
-  PseudoVMV_V_I_M1 = 7464,
-  PseudoVMV_V_I_M2 = 7465,
-  PseudoVMV_V_I_M4 = 7466,
-  PseudoVMV_V_I_M8 = 7467,
-  PseudoVMV_V_I_MF2 = 7468,
-  PseudoVMV_V_I_MF4 = 7469,
-  PseudoVMV_V_I_MF8 = 7470,
-  PseudoVMV_V_V_M1 = 7471,
-  PseudoVMV_V_V_M2 = 7472,
-  PseudoVMV_V_V_M4 = 7473,
-  PseudoVMV_V_V_M8 = 7474,
-  PseudoVMV_V_V_MF2 = 7475,
-  PseudoVMV_V_V_MF4 = 7476,
-  PseudoVMV_V_V_MF8 = 7477,
-  PseudoVMV_V_X_M1 = 7478,
-  PseudoVMV_V_X_M2 = 7479,
-  PseudoVMV_V_X_M4 = 7480,
-  PseudoVMV_V_X_M8 = 7481,
-  PseudoVMV_V_X_MF2 = 7482,
-  PseudoVMV_V_X_MF4 = 7483,
-  PseudoVMV_V_X_MF8 = 7484,
-  PseudoVMV_X_S = 7485,
-  PseudoVMXNOR_MM_B1 = 7486,
-  PseudoVMXNOR_MM_B16 = 7487,
-  PseudoVMXNOR_MM_B2 = 7488,
-  PseudoVMXNOR_MM_B32 = 7489,
-  PseudoVMXNOR_MM_B4 = 7490,
-  PseudoVMXNOR_MM_B64 = 7491,
-  PseudoVMXNOR_MM_B8 = 7492,
-  PseudoVMXOR_MM_B1 = 7493,
-  PseudoVMXOR_MM_B16 = 7494,
-  PseudoVMXOR_MM_B2 = 7495,
-  PseudoVMXOR_MM_B32 = 7496,
-  PseudoVMXOR_MM_B4 = 7497,
-  PseudoVMXOR_MM_B64 = 7498,
-  PseudoVMXOR_MM_B8 = 7499,
-  PseudoVNCLIPU_WI_M1 = 7500,
-  PseudoVNCLIPU_WI_M1_MASK = 7501,
-  PseudoVNCLIPU_WI_M2 = 7502,
-  PseudoVNCLIPU_WI_M2_MASK = 7503,
-  PseudoVNCLIPU_WI_M4 = 7504,
-  PseudoVNCLIPU_WI_M4_MASK = 7505,
-  PseudoVNCLIPU_WI_MF2 = 7506,
-  PseudoVNCLIPU_WI_MF2_MASK = 7507,
-  PseudoVNCLIPU_WI_MF4 = 7508,
-  PseudoVNCLIPU_WI_MF4_MASK = 7509,
-  PseudoVNCLIPU_WI_MF8 = 7510,
-  PseudoVNCLIPU_WI_MF8_MASK = 7511,
-  PseudoVNCLIPU_WV_M1 = 7512,
-  PseudoVNCLIPU_WV_M1_MASK = 7513,
-  PseudoVNCLIPU_WV_M2 = 7514,
-  PseudoVNCLIPU_WV_M2_MASK = 7515,
-  PseudoVNCLIPU_WV_M4 = 7516,
-  PseudoVNCLIPU_WV_M4_MASK = 7517,
-  PseudoVNCLIPU_WV_MF2 = 7518,
-  PseudoVNCLIPU_WV_MF2_MASK = 7519,
-  PseudoVNCLIPU_WV_MF4 = 7520,
-  PseudoVNCLIPU_WV_MF4_MASK = 7521,
-  PseudoVNCLIPU_WV_MF8 = 7522,
-  PseudoVNCLIPU_WV_MF8_MASK = 7523,
-  PseudoVNCLIPU_WX_M1 = 7524,
-  PseudoVNCLIPU_WX_M1_MASK = 7525,
-  PseudoVNCLIPU_WX_M2 = 7526,
-  PseudoVNCLIPU_WX_M2_MASK = 7527,
-  PseudoVNCLIPU_WX_M4 = 7528,
-  PseudoVNCLIPU_WX_M4_MASK = 7529,
-  PseudoVNCLIPU_WX_MF2 = 7530,
-  PseudoVNCLIPU_WX_MF2_MASK = 7531,
-  PseudoVNCLIPU_WX_MF4 = 7532,
-  PseudoVNCLIPU_WX_MF4_MASK = 7533,
-  PseudoVNCLIPU_WX_MF8 = 7534,
-  PseudoVNCLIPU_WX_MF8_MASK = 7535,
-  PseudoVNCLIP_WI_M1 = 7536,
-  PseudoVNCLIP_WI_M1_MASK = 7537,
-  PseudoVNCLIP_WI_M2 = 7538,
-  PseudoVNCLIP_WI_M2_MASK = 7539,
-  PseudoVNCLIP_WI_M4 = 7540,
-  PseudoVNCLIP_WI_M4_MASK = 7541,
-  PseudoVNCLIP_WI_MF2 = 7542,
-  PseudoVNCLIP_WI_MF2_MASK = 7543,
-  PseudoVNCLIP_WI_MF4 = 7544,
-  PseudoVNCLIP_WI_MF4_MASK = 7545,
-  PseudoVNCLIP_WI_MF8 = 7546,
-  PseudoVNCLIP_WI_MF8_MASK = 7547,
-  PseudoVNCLIP_WV_M1 = 7548,
-  PseudoVNCLIP_WV_M1_MASK = 7549,
-  PseudoVNCLIP_WV_M2 = 7550,
-  PseudoVNCLIP_WV_M2_MASK = 7551,
-  PseudoVNCLIP_WV_M4 = 7552,
-  PseudoVNCLIP_WV_M4_MASK = 7553,
-  PseudoVNCLIP_WV_MF2 = 7554,
-  PseudoVNCLIP_WV_MF2_MASK = 7555,
-  PseudoVNCLIP_WV_MF4 = 7556,
-  PseudoVNCLIP_WV_MF4_MASK = 7557,
-  PseudoVNCLIP_WV_MF8 = 7558,
-  PseudoVNCLIP_WV_MF8_MASK = 7559,
-  PseudoVNCLIP_WX_M1 = 7560,
-  PseudoVNCLIP_WX_M1_MASK = 7561,
-  PseudoVNCLIP_WX_M2 = 7562,
-  PseudoVNCLIP_WX_M2_MASK = 7563,
-  PseudoVNCLIP_WX_M4 = 7564,
-  PseudoVNCLIP_WX_M4_MASK = 7565,
-  PseudoVNCLIP_WX_MF2 = 7566,
-  PseudoVNCLIP_WX_MF2_MASK = 7567,
-  PseudoVNCLIP_WX_MF4 = 7568,
-  PseudoVNCLIP_WX_MF4_MASK = 7569,
-  PseudoVNCLIP_WX_MF8 = 7570,
-  PseudoVNCLIP_WX_MF8_MASK = 7571,
-  PseudoVNMSAC_VV_M1 = 7572,
-  PseudoVNMSAC_VV_M1_MASK = 7573,
-  PseudoVNMSAC_VV_M2 = 7574,
-  PseudoVNMSAC_VV_M2_MASK = 7575,
-  PseudoVNMSAC_VV_M4 = 7576,
-  PseudoVNMSAC_VV_M4_MASK = 7577,
-  PseudoVNMSAC_VV_M8 = 7578,
-  PseudoVNMSAC_VV_M8_MASK = 7579,
-  PseudoVNMSAC_VV_MF2 = 7580,
-  PseudoVNMSAC_VV_MF2_MASK = 7581,
-  PseudoVNMSAC_VV_MF4 = 7582,
-  PseudoVNMSAC_VV_MF4_MASK = 7583,
-  PseudoVNMSAC_VV_MF8 = 7584,
-  PseudoVNMSAC_VV_MF8_MASK = 7585,
-  PseudoVNMSAC_VX_M1 = 7586,
-  PseudoVNMSAC_VX_M1_MASK = 7587,
-  PseudoVNMSAC_VX_M2 = 7588,
-  PseudoVNMSAC_VX_M2_MASK = 7589,
-  PseudoVNMSAC_VX_M4 = 7590,
-  PseudoVNMSAC_VX_M4_MASK = 7591,
-  PseudoVNMSAC_VX_M8 = 7592,
-  PseudoVNMSAC_VX_M8_MASK = 7593,
-  PseudoVNMSAC_VX_MF2 = 7594,
-  PseudoVNMSAC_VX_MF2_MASK = 7595,
-  PseudoVNMSAC_VX_MF4 = 7596,
-  PseudoVNMSAC_VX_MF4_MASK = 7597,
-  PseudoVNMSAC_VX_MF8 = 7598,
-  PseudoVNMSAC_VX_MF8_MASK = 7599,
-  PseudoVNMSUB_VV_M1 = 7600,
-  PseudoVNMSUB_VV_M1_MASK = 7601,
-  PseudoVNMSUB_VV_M2 = 7602,
-  PseudoVNMSUB_VV_M2_MASK = 7603,
-  PseudoVNMSUB_VV_M4 = 7604,
-  PseudoVNMSUB_VV_M4_MASK = 7605,
-  PseudoVNMSUB_VV_M8 = 7606,
-  PseudoVNMSUB_VV_M8_MASK = 7607,
-  PseudoVNMSUB_VV_MF2 = 7608,
-  PseudoVNMSUB_VV_MF2_MASK = 7609,
-  PseudoVNMSUB_VV_MF4 = 7610,
-  PseudoVNMSUB_VV_MF4_MASK = 7611,
-  PseudoVNMSUB_VV_MF8 = 7612,
-  PseudoVNMSUB_VV_MF8_MASK = 7613,
-  PseudoVNMSUB_VX_M1 = 7614,
-  PseudoVNMSUB_VX_M1_MASK = 7615,
-  PseudoVNMSUB_VX_M2 = 7616,
-  PseudoVNMSUB_VX_M2_MASK = 7617,
-  PseudoVNMSUB_VX_M4 = 7618,
-  PseudoVNMSUB_VX_M4_MASK = 7619,
-  PseudoVNMSUB_VX_M8 = 7620,
-  PseudoVNMSUB_VX_M8_MASK = 7621,
-  PseudoVNMSUB_VX_MF2 = 7622,
-  PseudoVNMSUB_VX_MF2_MASK = 7623,
-  PseudoVNMSUB_VX_MF4 = 7624,
-  PseudoVNMSUB_VX_MF4_MASK = 7625,
-  PseudoVNMSUB_VX_MF8 = 7626,
-  PseudoVNMSUB_VX_MF8_MASK = 7627,
-  PseudoVNSRA_WI_M1 = 7628,
-  PseudoVNSRA_WI_M1_MASK = 7629,
-  PseudoVNSRA_WI_M2 = 7630,
-  PseudoVNSRA_WI_M2_MASK = 7631,
-  PseudoVNSRA_WI_M4 = 7632,
-  PseudoVNSRA_WI_M4_MASK = 7633,
-  PseudoVNSRA_WI_MF2 = 7634,
-  PseudoVNSRA_WI_MF2_MASK = 7635,
-  PseudoVNSRA_WI_MF4 = 7636,
-  PseudoVNSRA_WI_MF4_MASK = 7637,
-  PseudoVNSRA_WI_MF8 = 7638,
-  PseudoVNSRA_WI_MF8_MASK = 7639,
-  PseudoVNSRA_WV_M1 = 7640,
-  PseudoVNSRA_WV_M1_MASK = 7641,
-  PseudoVNSRA_WV_M2 = 7642,
-  PseudoVNSRA_WV_M2_MASK = 7643,
-  PseudoVNSRA_WV_M4 = 7644,
-  PseudoVNSRA_WV_M4_MASK = 7645,
-  PseudoVNSRA_WV_MF2 = 7646,
-  PseudoVNSRA_WV_MF2_MASK = 7647,
-  PseudoVNSRA_WV_MF4 = 7648,
-  PseudoVNSRA_WV_MF4_MASK = 7649,
-  PseudoVNSRA_WV_MF8 = 7650,
-  PseudoVNSRA_WV_MF8_MASK = 7651,
-  PseudoVNSRA_WX_M1 = 7652,
-  PseudoVNSRA_WX_M1_MASK = 7653,
-  PseudoVNSRA_WX_M2 = 7654,
-  PseudoVNSRA_WX_M2_MASK = 7655,
-  PseudoVNSRA_WX_M4 = 7656,
-  PseudoVNSRA_WX_M4_MASK = 7657,
-  PseudoVNSRA_WX_MF2 = 7658,
-  PseudoVNSRA_WX_MF2_MASK = 7659,
-  PseudoVNSRA_WX_MF4 = 7660,
-  PseudoVNSRA_WX_MF4_MASK = 7661,
-  PseudoVNSRA_WX_MF8 = 7662,
-  PseudoVNSRA_WX_MF8_MASK = 7663,
-  PseudoVNSRL_WI_M1 = 7664,
-  PseudoVNSRL_WI_M1_MASK = 7665,
-  PseudoVNSRL_WI_M2 = 7666,
-  PseudoVNSRL_WI_M2_MASK = 7667,
-  PseudoVNSRL_WI_M4 = 7668,
-  PseudoVNSRL_WI_M4_MASK = 7669,
-  PseudoVNSRL_WI_MF2 = 7670,
-  PseudoVNSRL_WI_MF2_MASK = 7671,
-  PseudoVNSRL_WI_MF4 = 7672,
-  PseudoVNSRL_WI_MF4_MASK = 7673,
-  PseudoVNSRL_WI_MF8 = 7674,
-  PseudoVNSRL_WI_MF8_MASK = 7675,
-  PseudoVNSRL_WV_M1 = 7676,
-  PseudoVNSRL_WV_M1_MASK = 7677,
-  PseudoVNSRL_WV_M2 = 7678,
-  PseudoVNSRL_WV_M2_MASK = 7679,
-  PseudoVNSRL_WV_M4 = 7680,
-  PseudoVNSRL_WV_M4_MASK = 7681,
-  PseudoVNSRL_WV_MF2 = 7682,
-  PseudoVNSRL_WV_MF2_MASK = 7683,
-  PseudoVNSRL_WV_MF4 = 7684,
-  PseudoVNSRL_WV_MF4_MASK = 7685,
-  PseudoVNSRL_WV_MF8 = 7686,
-  PseudoVNSRL_WV_MF8_MASK = 7687,
-  PseudoVNSRL_WX_M1 = 7688,
-  PseudoVNSRL_WX_M1_MASK = 7689,
-  PseudoVNSRL_WX_M2 = 7690,
-  PseudoVNSRL_WX_M2_MASK = 7691,
-  PseudoVNSRL_WX_M4 = 7692,
-  PseudoVNSRL_WX_M4_MASK = 7693,
-  PseudoVNSRL_WX_MF2 = 7694,
-  PseudoVNSRL_WX_MF2_MASK = 7695,
-  PseudoVNSRL_WX_MF4 = 7696,
-  PseudoVNSRL_WX_MF4_MASK = 7697,
-  PseudoVNSRL_WX_MF8 = 7698,
-  PseudoVNSRL_WX_MF8_MASK = 7699,
-  PseudoVOR_VI_M1 = 7700,
-  PseudoVOR_VI_M1_MASK = 7701,
-  PseudoVOR_VI_M2 = 7702,
-  PseudoVOR_VI_M2_MASK = 7703,
-  PseudoVOR_VI_M4 = 7704,
-  PseudoVOR_VI_M4_MASK = 7705,
-  PseudoVOR_VI_M8 = 7706,
-  PseudoVOR_VI_M8_MASK = 7707,
-  PseudoVOR_VI_MF2 = 7708,
-  PseudoVOR_VI_MF2_MASK = 7709,
-  PseudoVOR_VI_MF4 = 7710,
-  PseudoVOR_VI_MF4_MASK = 7711,
-  PseudoVOR_VI_MF8 = 7712,
-  PseudoVOR_VI_MF8_MASK = 7713,
-  PseudoVOR_VV_M1 = 7714,
-  PseudoVOR_VV_M1_MASK = 7715,
-  PseudoVOR_VV_M2 = 7716,
-  PseudoVOR_VV_M2_MASK = 7717,
-  PseudoVOR_VV_M4 = 7718,
-  PseudoVOR_VV_M4_MASK = 7719,
-  PseudoVOR_VV_M8 = 7720,
-  PseudoVOR_VV_M8_MASK = 7721,
-  PseudoVOR_VV_MF2 = 7722,
-  PseudoVOR_VV_MF2_MASK = 7723,
-  PseudoVOR_VV_MF4 = 7724,
-  PseudoVOR_VV_MF4_MASK = 7725,
-  PseudoVOR_VV_MF8 = 7726,
-  PseudoVOR_VV_MF8_MASK = 7727,
-  PseudoVOR_VX_M1 = 7728,
-  PseudoVOR_VX_M1_MASK = 7729,
-  PseudoVOR_VX_M2 = 7730,
-  PseudoVOR_VX_M2_MASK = 7731,
-  PseudoVOR_VX_M4 = 7732,
-  PseudoVOR_VX_M4_MASK = 7733,
-  PseudoVOR_VX_M8 = 7734,
-  PseudoVOR_VX_M8_MASK = 7735,
-  PseudoVOR_VX_MF2 = 7736,
-  PseudoVOR_VX_MF2_MASK = 7737,
-  PseudoVOR_VX_MF4 = 7738,
-  PseudoVOR_VX_MF4_MASK = 7739,
-  PseudoVOR_VX_MF8 = 7740,
-  PseudoVOR_VX_MF8_MASK = 7741,
-  PseudoVQDOTSU_VV_M1 = 7742,
-  PseudoVQDOTSU_VV_M1_MASK = 7743,
-  PseudoVQDOTSU_VV_M2 = 7744,
-  PseudoVQDOTSU_VV_M2_MASK = 7745,
-  PseudoVQDOTSU_VV_M4 = 7746,
-  PseudoVQDOTSU_VV_M4_MASK = 7747,
-  PseudoVQDOTSU_VV_M8 = 7748,
-  PseudoVQDOTSU_VV_M8_MASK = 7749,
-  PseudoVQDOTSU_VV_MF2 = 7750,
-  PseudoVQDOTSU_VV_MF2_MASK = 7751,
-  PseudoVQDOTSU_VX_M1 = 7752,
-  PseudoVQDOTSU_VX_M1_MASK = 7753,
-  PseudoVQDOTSU_VX_M2 = 7754,
-  PseudoVQDOTSU_VX_M2_MASK = 7755,
-  PseudoVQDOTSU_VX_M4 = 7756,
-  PseudoVQDOTSU_VX_M4_MASK = 7757,
-  PseudoVQDOTSU_VX_M8 = 7758,
-  PseudoVQDOTSU_VX_M8_MASK = 7759,
-  PseudoVQDOTSU_VX_MF2 = 7760,
-  PseudoVQDOTSU_VX_MF2_MASK = 7761,
-  PseudoVQDOTU_VV_M1 = 7762,
-  PseudoVQDOTU_VV_M1_MASK = 7763,
-  PseudoVQDOTU_VV_M2 = 7764,
-  PseudoVQDOTU_VV_M2_MASK = 7765,
-  PseudoVQDOTU_VV_M4 = 7766,
-  PseudoVQDOTU_VV_M4_MASK = 7767,
-  PseudoVQDOTU_VV_M8 = 7768,
-  PseudoVQDOTU_VV_M8_MASK = 7769,
-  PseudoVQDOTU_VV_MF2 = 7770,
-  PseudoVQDOTU_VV_MF2_MASK = 7771,
-  PseudoVQDOTU_VX_M1 = 7772,
-  PseudoVQDOTU_VX_M1_MASK = 7773,
-  PseudoVQDOTU_VX_M2 = 7774,
-  PseudoVQDOTU_VX_M2_MASK = 7775,
-  PseudoVQDOTU_VX_M4 = 7776,
-  PseudoVQDOTU_VX_M4_MASK = 7777,
-  PseudoVQDOTU_VX_M8 = 7778,
-  PseudoVQDOTU_VX_M8_MASK = 7779,
-  PseudoVQDOTU_VX_MF2 = 7780,
-  PseudoVQDOTU_VX_MF2_MASK = 7781,
-  PseudoVQDOT_VV_M1 = 7782,
-  PseudoVQDOT_VV_M1_MASK = 7783,
-  PseudoVQDOT_VV_M2 = 7784,
-  PseudoVQDOT_VV_M2_MASK = 7785,
-  PseudoVQDOT_VV_M4 = 7786,
-  PseudoVQDOT_VV_M4_MASK = 7787,
-  PseudoVQDOT_VV_M8 = 7788,
-  PseudoVQDOT_VV_M8_MASK = 7789,
-  PseudoVQDOT_VV_MF2 = 7790,
-  PseudoVQDOT_VV_MF2_MASK = 7791,
-  PseudoVQDOT_VX_M1 = 7792,
-  PseudoVQDOT_VX_M1_MASK = 7793,
-  PseudoVQDOT_VX_M2 = 7794,
-  PseudoVQDOT_VX_M2_MASK = 7795,
-  PseudoVQDOT_VX_M4 = 7796,
-  PseudoVQDOT_VX_M4_MASK = 7797,
-  PseudoVQDOT_VX_M8 = 7798,
-  PseudoVQDOT_VX_M8_MASK = 7799,
-  PseudoVQDOT_VX_MF2 = 7800,
-  PseudoVQDOT_VX_MF2_MASK = 7801,
-  PseudoVREDAND_VS_M1_E16 = 7802,
-  PseudoVREDAND_VS_M1_E16_MASK = 7803,
-  PseudoVREDAND_VS_M1_E32 = 7804,
-  PseudoVREDAND_VS_M1_E32_MASK = 7805,
-  PseudoVREDAND_VS_M1_E64 = 7806,
-  PseudoVREDAND_VS_M1_E64_MASK = 7807,
-  PseudoVREDAND_VS_M1_E8 = 7808,
-  PseudoVREDAND_VS_M1_E8_MASK = 7809,
-  PseudoVREDAND_VS_M2_E16 = 7810,
-  PseudoVREDAND_VS_M2_E16_MASK = 7811,
-  PseudoVREDAND_VS_M2_E32 = 7812,
-  PseudoVREDAND_VS_M2_E32_MASK = 7813,
-  PseudoVREDAND_VS_M2_E64 = 7814,
-  PseudoVREDAND_VS_M2_E64_MASK = 7815,
-  PseudoVREDAND_VS_M2_E8 = 7816,
-  PseudoVREDAND_VS_M2_E8_MASK = 7817,
-  PseudoVREDAND_VS_M4_E16 = 7818,
-  PseudoVREDAND_VS_M4_E16_MASK = 7819,
-  PseudoVREDAND_VS_M4_E32 = 7820,
-  PseudoVREDAND_VS_M4_E32_MASK = 7821,
-  PseudoVREDAND_VS_M4_E64 = 7822,
-  PseudoVREDAND_VS_M4_E64_MASK = 7823,
-  PseudoVREDAND_VS_M4_E8 = 7824,
-  PseudoVREDAND_VS_M4_E8_MASK = 7825,
-  PseudoVREDAND_VS_M8_E16 = 7826,
-  PseudoVREDAND_VS_M8_E16_MASK = 7827,
-  PseudoVREDAND_VS_M8_E32 = 7828,
-  PseudoVREDAND_VS_M8_E32_MASK = 7829,
-  PseudoVREDAND_VS_M8_E64 = 7830,
-  PseudoVREDAND_VS_M8_E64_MASK = 7831,
-  PseudoVREDAND_VS_M8_E8 = 7832,
-  PseudoVREDAND_VS_M8_E8_MASK = 7833,
-  PseudoVREDAND_VS_MF2_E16 = 7834,
-  PseudoVREDAND_VS_MF2_E16_MASK = 7835,
-  PseudoVREDAND_VS_MF2_E32 = 7836,
-  PseudoVREDAND_VS_MF2_E32_MASK = 7837,
-  PseudoVREDAND_VS_MF2_E8 = 7838,
-  PseudoVREDAND_VS_MF2_E8_MASK = 7839,
-  PseudoVREDAND_VS_MF4_E16 = 7840,
-  PseudoVREDAND_VS_MF4_E16_MASK = 7841,
-  PseudoVREDAND_VS_MF4_E8 = 7842,
-  PseudoVREDAND_VS_MF4_E8_MASK = 7843,
-  PseudoVREDAND_VS_MF8_E8 = 7844,
-  PseudoVREDAND_VS_MF8_E8_MASK = 7845,
-  PseudoVREDMAXU_VS_M1_E16 = 7846,
-  PseudoVREDMAXU_VS_M1_E16_MASK = 7847,
-  PseudoVREDMAXU_VS_M1_E32 = 7848,
-  PseudoVREDMAXU_VS_M1_E32_MASK = 7849,
-  PseudoVREDMAXU_VS_M1_E64 = 7850,
-  PseudoVREDMAXU_VS_M1_E64_MASK = 7851,
-  PseudoVREDMAXU_VS_M1_E8 = 7852,
-  PseudoVREDMAXU_VS_M1_E8_MASK = 7853,
-  PseudoVREDMAXU_VS_M2_E16 = 7854,
-  PseudoVREDMAXU_VS_M2_E16_MASK = 7855,
-  PseudoVREDMAXU_VS_M2_E32 = 7856,
-  PseudoVREDMAXU_VS_M2_E32_MASK = 7857,
-  PseudoVREDMAXU_VS_M2_E64 = 7858,
-  PseudoVREDMAXU_VS_M2_E64_MASK = 7859,
-  PseudoVREDMAXU_VS_M2_E8 = 7860,
-  PseudoVREDMAXU_VS_M2_E8_MASK = 7861,
-  PseudoVREDMAXU_VS_M4_E16 = 7862,
-  PseudoVREDMAXU_VS_M4_E16_MASK = 7863,
-  PseudoVREDMAXU_VS_M4_E32 = 7864,
-  PseudoVREDMAXU_VS_M4_E32_MASK = 7865,
-  PseudoVREDMAXU_VS_M4_E64 = 7866,
-  PseudoVREDMAXU_VS_M4_E64_MASK = 7867,
-  PseudoVREDMAXU_VS_M4_E8 = 7868,
-  PseudoVREDMAXU_VS_M4_E8_MASK = 7869,
-  PseudoVREDMAXU_VS_M8_E16 = 7870,
-  PseudoVREDMAXU_VS_M8_E16_MASK = 7871,
-  PseudoVREDMAXU_VS_M8_E32 = 7872,
-  PseudoVREDMAXU_VS_M8_E32_MASK = 7873,
-  PseudoVREDMAXU_VS_M8_E64 = 7874,
-  PseudoVREDMAXU_VS_M8_E64_MASK = 7875,
-  PseudoVREDMAXU_VS_M8_E8 = 7876,
-  PseudoVREDMAXU_VS_M8_E8_MASK = 7877,
-  PseudoVREDMAXU_VS_MF2_E16 = 7878,
-  PseudoVREDMAXU_VS_MF2_E16_MASK = 7879,
-  PseudoVREDMAXU_VS_MF2_E32 = 7880,
-  PseudoVREDMAXU_VS_MF2_E32_MASK = 7881,
-  PseudoVREDMAXU_VS_MF2_E8 = 7882,
-  PseudoVREDMAXU_VS_MF2_E8_MASK = 7883,
-  PseudoVREDMAXU_VS_MF4_E16 = 7884,
-  PseudoVREDMAXU_VS_MF4_E16_MASK = 7885,
-  PseudoVREDMAXU_VS_MF4_E8 = 7886,
-  PseudoVREDMAXU_VS_MF4_E8_MASK = 7887,
-  PseudoVREDMAXU_VS_MF8_E8 = 7888,
-  PseudoVREDMAXU_VS_MF8_E8_MASK = 7889,
-  PseudoVREDMAX_VS_M1_E16 = 7890,
-  PseudoVREDMAX_VS_M1_E16_MASK = 7891,
-  PseudoVREDMAX_VS_M1_E32 = 7892,
-  PseudoVREDMAX_VS_M1_E32_MASK = 7893,
-  PseudoVREDMAX_VS_M1_E64 = 7894,
-  PseudoVREDMAX_VS_M1_E64_MASK = 7895,
-  PseudoVREDMAX_VS_M1_E8 = 7896,
-  PseudoVREDMAX_VS_M1_E8_MASK = 7897,
-  PseudoVREDMAX_VS_M2_E16 = 7898,
-  PseudoVREDMAX_VS_M2_E16_MASK = 7899,
-  PseudoVREDMAX_VS_M2_E32 = 7900,
-  PseudoVREDMAX_VS_M2_E32_MASK = 7901,
-  PseudoVREDMAX_VS_M2_E64 = 7902,
-  PseudoVREDMAX_VS_M2_E64_MASK = 7903,
-  PseudoVREDMAX_VS_M2_E8 = 7904,
-  PseudoVREDMAX_VS_M2_E8_MASK = 7905,
-  PseudoVREDMAX_VS_M4_E16 = 7906,
-  PseudoVREDMAX_VS_M4_E16_MASK = 7907,
-  PseudoVREDMAX_VS_M4_E32 = 7908,
-  PseudoVREDMAX_VS_M4_E32_MASK = 7909,
-  PseudoVREDMAX_VS_M4_E64 = 7910,
-  PseudoVREDMAX_VS_M4_E64_MASK = 7911,
-  PseudoVREDMAX_VS_M4_E8 = 7912,
-  PseudoVREDMAX_VS_M4_E8_MASK = 7913,
-  PseudoVREDMAX_VS_M8_E16 = 7914,
-  PseudoVREDMAX_VS_M8_E16_MASK = 7915,
-  PseudoVREDMAX_VS_M8_E32 = 7916,
-  PseudoVREDMAX_VS_M8_E32_MASK = 7917,
-  PseudoVREDMAX_VS_M8_E64 = 7918,
-  PseudoVREDMAX_VS_M8_E64_MASK = 7919,
-  PseudoVREDMAX_VS_M8_E8 = 7920,
-  PseudoVREDMAX_VS_M8_E8_MASK = 7921,
-  PseudoVREDMAX_VS_MF2_E16 = 7922,
-  PseudoVREDMAX_VS_MF2_E16_MASK = 7923,
-  PseudoVREDMAX_VS_MF2_E32 = 7924,
-  PseudoVREDMAX_VS_MF2_E32_MASK = 7925,
-  PseudoVREDMAX_VS_MF2_E8 = 7926,
-  PseudoVREDMAX_VS_MF2_E8_MASK = 7927,
-  PseudoVREDMAX_VS_MF4_E16 = 7928,
-  PseudoVREDMAX_VS_MF4_E16_MASK = 7929,
-  PseudoVREDMAX_VS_MF4_E8 = 7930,
-  PseudoVREDMAX_VS_MF4_E8_MASK = 7931,
-  PseudoVREDMAX_VS_MF8_E8 = 7932,
-  PseudoVREDMAX_VS_MF8_E8_MASK = 7933,
-  PseudoVREDMINU_VS_M1_E16 = 7934,
-  PseudoVREDMINU_VS_M1_E16_MASK = 7935,
-  PseudoVREDMINU_VS_M1_E32 = 7936,
-  PseudoVREDMINU_VS_M1_E32_MASK = 7937,
-  PseudoVREDMINU_VS_M1_E64 = 7938,
-  PseudoVREDMINU_VS_M1_E64_MASK = 7939,
-  PseudoVREDMINU_VS_M1_E8 = 7940,
-  PseudoVREDMINU_VS_M1_E8_MASK = 7941,
-  PseudoVREDMINU_VS_M2_E16 = 7942,
-  PseudoVREDMINU_VS_M2_E16_MASK = 7943,
-  PseudoVREDMINU_VS_M2_E32 = 7944,
-  PseudoVREDMINU_VS_M2_E32_MASK = 7945,
-  PseudoVREDMINU_VS_M2_E64 = 7946,
-  PseudoVREDMINU_VS_M2_E64_MASK = 7947,
-  PseudoVREDMINU_VS_M2_E8 = 7948,
-  PseudoVREDMINU_VS_M2_E8_MASK = 7949,
-  PseudoVREDMINU_VS_M4_E16 = 7950,
-  PseudoVREDMINU_VS_M4_E16_MASK = 7951,
-  PseudoVREDMINU_VS_M4_E32 = 7952,
-  PseudoVREDMINU_VS_M4_E32_MASK = 7953,
-  PseudoVREDMINU_VS_M4_E64 = 7954,
-  PseudoVREDMINU_VS_M4_E64_MASK = 7955,
-  PseudoVREDMINU_VS_M4_E8 = 7956,
-  PseudoVREDMINU_VS_M4_E8_MASK = 7957,
-  PseudoVREDMINU_VS_M8_E16 = 7958,
-  PseudoVREDMINU_VS_M8_E16_MASK = 7959,
-  PseudoVREDMINU_VS_M8_E32 = 7960,
-  PseudoVREDMINU_VS_M8_E32_MASK = 7961,
-  PseudoVREDMINU_VS_M8_E64 = 7962,
-  PseudoVREDMINU_VS_M8_E64_MASK = 7963,
-  PseudoVREDMINU_VS_M8_E8 = 7964,
-  PseudoVREDMINU_VS_M8_E8_MASK = 7965,
-  PseudoVREDMINU_VS_MF2_E16 = 7966,
-  PseudoVREDMINU_VS_MF2_E16_MASK = 7967,
-  PseudoVREDMINU_VS_MF2_E32 = 7968,
-  PseudoVREDMINU_VS_MF2_E32_MASK = 7969,
-  PseudoVREDMINU_VS_MF2_E8 = 7970,
-  PseudoVREDMINU_VS_MF2_E8_MASK = 7971,
-  PseudoVREDMINU_VS_MF4_E16 = 7972,
-  PseudoVREDMINU_VS_MF4_E16_MASK = 7973,
-  PseudoVREDMINU_VS_MF4_E8 = 7974,
-  PseudoVREDMINU_VS_MF4_E8_MASK = 7975,
-  PseudoVREDMINU_VS_MF8_E8 = 7976,
-  PseudoVREDMINU_VS_MF8_E8_MASK = 7977,
-  PseudoVREDMIN_VS_M1_E16 = 7978,
-  PseudoVREDMIN_VS_M1_E16_MASK = 7979,
-  PseudoVREDMIN_VS_M1_E32 = 7980,
-  PseudoVREDMIN_VS_M1_E32_MASK = 7981,
-  PseudoVREDMIN_VS_M1_E64 = 7982,
-  PseudoVREDMIN_VS_M1_E64_MASK = 7983,
-  PseudoVREDMIN_VS_M1_E8 = 7984,
-  PseudoVREDMIN_VS_M1_E8_MASK = 7985,
-  PseudoVREDMIN_VS_M2_E16 = 7986,
-  PseudoVREDMIN_VS_M2_E16_MASK = 7987,
-  PseudoVREDMIN_VS_M2_E32 = 7988,
-  PseudoVREDMIN_VS_M2_E32_MASK = 7989,
-  PseudoVREDMIN_VS_M2_E64 = 7990,
-  PseudoVREDMIN_VS_M2_E64_MASK = 7991,
-  PseudoVREDMIN_VS_M2_E8 = 7992,
-  PseudoVREDMIN_VS_M2_E8_MASK = 7993,
-  PseudoVREDMIN_VS_M4_E16 = 7994,
-  PseudoVREDMIN_VS_M4_E16_MASK = 7995,
-  PseudoVREDMIN_VS_M4_E32 = 7996,
-  PseudoVREDMIN_VS_M4_E32_MASK = 7997,
-  PseudoVREDMIN_VS_M4_E64 = 7998,
-  PseudoVREDMIN_VS_M4_E64_MASK = 7999,
-  PseudoVREDMIN_VS_M4_E8 = 8000,
-  PseudoVREDMIN_VS_M4_E8_MASK = 8001,
-  PseudoVREDMIN_VS_M8_E16 = 8002,
-  PseudoVREDMIN_VS_M8_E16_MASK = 8003,
-  PseudoVREDMIN_VS_M8_E32 = 8004,
-  PseudoVREDMIN_VS_M8_E32_MASK = 8005,
-  PseudoVREDMIN_VS_M8_E64 = 8006,
-  PseudoVREDMIN_VS_M8_E64_MASK = 8007,
-  PseudoVREDMIN_VS_M8_E8 = 8008,
-  PseudoVREDMIN_VS_M8_E8_MASK = 8009,
-  PseudoVREDMIN_VS_MF2_E16 = 8010,
-  PseudoVREDMIN_VS_MF2_E16_MASK = 8011,
-  PseudoVREDMIN_VS_MF2_E32 = 8012,
-  PseudoVREDMIN_VS_MF2_E32_MASK = 8013,
-  PseudoVREDMIN_VS_MF2_E8 = 8014,
-  PseudoVREDMIN_VS_MF2_E8_MASK = 8015,
-  PseudoVREDMIN_VS_MF4_E16 = 8016,
-  PseudoVREDMIN_VS_MF4_E16_MASK = 8017,
-  PseudoVREDMIN_VS_MF4_E8 = 8018,
-  PseudoVREDMIN_VS_MF4_E8_MASK = 8019,
-  PseudoVREDMIN_VS_MF8_E8 = 8020,
-  PseudoVREDMIN_VS_MF8_E8_MASK = 8021,
-  PseudoVREDOR_VS_M1_E16 = 8022,
-  PseudoVREDOR_VS_M1_E16_MASK = 8023,
-  PseudoVREDOR_VS_M1_E32 = 8024,
-  PseudoVREDOR_VS_M1_E32_MASK = 8025,
-  PseudoVREDOR_VS_M1_E64 = 8026,
-  PseudoVREDOR_VS_M1_E64_MASK = 8027,
-  PseudoVREDOR_VS_M1_E8 = 8028,
-  PseudoVREDOR_VS_M1_E8_MASK = 8029,
-  PseudoVREDOR_VS_M2_E16 = 8030,
-  PseudoVREDOR_VS_M2_E16_MASK = 8031,
-  PseudoVREDOR_VS_M2_E32 = 8032,
-  PseudoVREDOR_VS_M2_E32_MASK = 8033,
-  PseudoVREDOR_VS_M2_E64 = 8034,
-  PseudoVREDOR_VS_M2_E64_MASK = 8035,
-  PseudoVREDOR_VS_M2_E8 = 8036,
-  PseudoVREDOR_VS_M2_E8_MASK = 8037,
-  PseudoVREDOR_VS_M4_E16 = 8038,
-  PseudoVREDOR_VS_M4_E16_MASK = 8039,
-  PseudoVREDOR_VS_M4_E32 = 8040,
-  PseudoVREDOR_VS_M4_E32_MASK = 8041,
-  PseudoVREDOR_VS_M4_E64 = 8042,
-  PseudoVREDOR_VS_M4_E64_MASK = 8043,
-  PseudoVREDOR_VS_M4_E8 = 8044,
-  PseudoVREDOR_VS_M4_E8_MASK = 8045,
-  PseudoVREDOR_VS_M8_E16 = 8046,
-  PseudoVREDOR_VS_M8_E16_MASK = 8047,
-  PseudoVREDOR_VS_M8_E32 = 8048,
-  PseudoVREDOR_VS_M8_E32_MASK = 8049,
-  PseudoVREDOR_VS_M8_E64 = 8050,
-  PseudoVREDOR_VS_M8_E64_MASK = 8051,
-  PseudoVREDOR_VS_M8_E8 = 8052,
-  PseudoVREDOR_VS_M8_E8_MASK = 8053,
-  PseudoVREDOR_VS_MF2_E16 = 8054,
-  PseudoVREDOR_VS_MF2_E16_MASK = 8055,
-  PseudoVREDOR_VS_MF2_E32 = 8056,
-  PseudoVREDOR_VS_MF2_E32_MASK = 8057,
-  PseudoVREDOR_VS_MF2_E8 = 8058,
-  PseudoVREDOR_VS_MF2_E8_MASK = 8059,
-  PseudoVREDOR_VS_MF4_E16 = 8060,
-  PseudoVREDOR_VS_MF4_E16_MASK = 8061,
-  PseudoVREDOR_VS_MF4_E8 = 8062,
-  PseudoVREDOR_VS_MF4_E8_MASK = 8063,
-  PseudoVREDOR_VS_MF8_E8 = 8064,
-  PseudoVREDOR_VS_MF8_E8_MASK = 8065,
-  PseudoVREDSUM_VS_M1_E16 = 8066,
-  PseudoVREDSUM_VS_M1_E16_MASK = 8067,
-  PseudoVREDSUM_VS_M1_E32 = 8068,
-  PseudoVREDSUM_VS_M1_E32_MASK = 8069,
-  PseudoVREDSUM_VS_M1_E64 = 8070,
-  PseudoVREDSUM_VS_M1_E64_MASK = 8071,
-  PseudoVREDSUM_VS_M1_E8 = 8072,
-  PseudoVREDSUM_VS_M1_E8_MASK = 8073,
-  PseudoVREDSUM_VS_M2_E16 = 8074,
-  PseudoVREDSUM_VS_M2_E16_MASK = 8075,
-  PseudoVREDSUM_VS_M2_E32 = 8076,
-  PseudoVREDSUM_VS_M2_E32_MASK = 8077,
-  PseudoVREDSUM_VS_M2_E64 = 8078,
-  PseudoVREDSUM_VS_M2_E64_MASK = 8079,
-  PseudoVREDSUM_VS_M2_E8 = 8080,
-  PseudoVREDSUM_VS_M2_E8_MASK = 8081,
-  PseudoVREDSUM_VS_M4_E16 = 8082,
-  PseudoVREDSUM_VS_M4_E16_MASK = 8083,
-  PseudoVREDSUM_VS_M4_E32 = 8084,
-  PseudoVREDSUM_VS_M4_E32_MASK = 8085,
-  PseudoVREDSUM_VS_M4_E64 = 8086,
-  PseudoVREDSUM_VS_M4_E64_MASK = 8087,
-  PseudoVREDSUM_VS_M4_E8 = 8088,
-  PseudoVREDSUM_VS_M4_E8_MASK = 8089,
-  PseudoVREDSUM_VS_M8_E16 = 8090,
-  PseudoVREDSUM_VS_M8_E16_MASK = 8091,
-  PseudoVREDSUM_VS_M8_E32 = 8092,
-  PseudoVREDSUM_VS_M8_E32_MASK = 8093,
-  PseudoVREDSUM_VS_M8_E64 = 8094,
-  PseudoVREDSUM_VS_M8_E64_MASK = 8095,
-  PseudoVREDSUM_VS_M8_E8 = 8096,
-  PseudoVREDSUM_VS_M8_E8_MASK = 8097,
-  PseudoVREDSUM_VS_MF2_E16 = 8098,
-  PseudoVREDSUM_VS_MF2_E16_MASK = 8099,
-  PseudoVREDSUM_VS_MF2_E32 = 8100,
-  PseudoVREDSUM_VS_MF2_E32_MASK = 8101,
-  PseudoVREDSUM_VS_MF2_E8 = 8102,
-  PseudoVREDSUM_VS_MF2_E8_MASK = 8103,
-  PseudoVREDSUM_VS_MF4_E16 = 8104,
-  PseudoVREDSUM_VS_MF4_E16_MASK = 8105,
-  PseudoVREDSUM_VS_MF4_E8 = 8106,
-  PseudoVREDSUM_VS_MF4_E8_MASK = 8107,
-  PseudoVREDSUM_VS_MF8_E8 = 8108,
-  PseudoVREDSUM_VS_MF8_E8_MASK = 8109,
-  PseudoVREDXOR_VS_M1_E16 = 8110,
-  PseudoVREDXOR_VS_M1_E16_MASK = 8111,
-  PseudoVREDXOR_VS_M1_E32 = 8112,
-  PseudoVREDXOR_VS_M1_E32_MASK = 8113,
-  PseudoVREDXOR_VS_M1_E64 = 8114,
-  PseudoVREDXOR_VS_M1_E64_MASK = 8115,
-  PseudoVREDXOR_VS_M1_E8 = 8116,
-  PseudoVREDXOR_VS_M1_E8_MASK = 8117,
-  PseudoVREDXOR_VS_M2_E16 = 8118,
-  PseudoVREDXOR_VS_M2_E16_MASK = 8119,
-  PseudoVREDXOR_VS_M2_E32 = 8120,
-  PseudoVREDXOR_VS_M2_E32_MASK = 8121,
-  PseudoVREDXOR_VS_M2_E64 = 8122,
-  PseudoVREDXOR_VS_M2_E64_MASK = 8123,
-  PseudoVREDXOR_VS_M2_E8 = 8124,
-  PseudoVREDXOR_VS_M2_E8_MASK = 8125,
-  PseudoVREDXOR_VS_M4_E16 = 8126,
-  PseudoVREDXOR_VS_M4_E16_MASK = 8127,
-  PseudoVREDXOR_VS_M4_E32 = 8128,
-  PseudoVREDXOR_VS_M4_E32_MASK = 8129,
-  PseudoVREDXOR_VS_M4_E64 = 8130,
-  PseudoVREDXOR_VS_M4_E64_MASK = 8131,
-  PseudoVREDXOR_VS_M4_E8 = 8132,
-  PseudoVREDXOR_VS_M4_E8_MASK = 8133,
-  PseudoVREDXOR_VS_M8_E16 = 8134,
-  PseudoVREDXOR_VS_M8_E16_MASK = 8135,
-  PseudoVREDXOR_VS_M8_E32 = 8136,
-  PseudoVREDXOR_VS_M8_E32_MASK = 8137,
-  PseudoVREDXOR_VS_M8_E64 = 8138,
-  PseudoVREDXOR_VS_M8_E64_MASK = 8139,
-  PseudoVREDXOR_VS_M8_E8 = 8140,
-  PseudoVREDXOR_VS_M8_E8_MASK = 8141,
-  PseudoVREDXOR_VS_MF2_E16 = 8142,
-  PseudoVREDXOR_VS_MF2_E16_MASK = 8143,
-  PseudoVREDXOR_VS_MF2_E32 = 8144,
-  PseudoVREDXOR_VS_MF2_E32_MASK = 8145,
-  PseudoVREDXOR_VS_MF2_E8 = 8146,
-  PseudoVREDXOR_VS_MF2_E8_MASK = 8147,
-  PseudoVREDXOR_VS_MF4_E16 = 8148,
-  PseudoVREDXOR_VS_MF4_E16_MASK = 8149,
-  PseudoVREDXOR_VS_MF4_E8 = 8150,
-  PseudoVREDXOR_VS_MF4_E8_MASK = 8151,
-  PseudoVREDXOR_VS_MF8_E8 = 8152,
-  PseudoVREDXOR_VS_MF8_E8_MASK = 8153,
-  PseudoVRELOAD2_M1 = 8154,
-  PseudoVRELOAD2_M2 = 8155,
-  PseudoVRELOAD2_M4 = 8156,
-  PseudoVRELOAD2_MF2 = 8157,
-  PseudoVRELOAD2_MF4 = 8158,
-  PseudoVRELOAD2_MF8 = 8159,
-  PseudoVRELOAD3_M1 = 8160,
-  PseudoVRELOAD3_M2 = 8161,
-  PseudoVRELOAD3_MF2 = 8162,
-  PseudoVRELOAD3_MF4 = 8163,
-  PseudoVRELOAD3_MF8 = 8164,
-  PseudoVRELOAD4_M1 = 8165,
-  PseudoVRELOAD4_M2 = 8166,
-  PseudoVRELOAD4_MF2 = 8167,
-  PseudoVRELOAD4_MF4 = 8168,
-  PseudoVRELOAD4_MF8 = 8169,
-  PseudoVRELOAD5_M1 = 8170,
-  PseudoVRELOAD5_MF2 = 8171,
-  PseudoVRELOAD5_MF4 = 8172,
-  PseudoVRELOAD5_MF8 = 8173,
-  PseudoVRELOAD6_M1 = 8174,
-  PseudoVRELOAD6_MF2 = 8175,
-  PseudoVRELOAD6_MF4 = 8176,
-  PseudoVRELOAD6_MF8 = 8177,
-  PseudoVRELOAD7_M1 = 8178,
-  PseudoVRELOAD7_MF2 = 8179,
-  PseudoVRELOAD7_MF4 = 8180,
-  PseudoVRELOAD7_MF8 = 8181,
-  PseudoVRELOAD8_M1 = 8182,
-  PseudoVRELOAD8_MF2 = 8183,
-  PseudoVRELOAD8_MF4 = 8184,
-  PseudoVRELOAD8_MF8 = 8185,
-  PseudoVREMU_VV_M1_E16 = 8186,
-  PseudoVREMU_VV_M1_E16_MASK = 8187,
-  PseudoVREMU_VV_M1_E32 = 8188,
-  PseudoVREMU_VV_M1_E32_MASK = 8189,
-  PseudoVREMU_VV_M1_E64 = 8190,
-  PseudoVREMU_VV_M1_E64_MASK = 8191,
-  PseudoVREMU_VV_M1_E8 = 8192,
-  PseudoVREMU_VV_M1_E8_MASK = 8193,
-  PseudoVREMU_VV_M2_E16 = 8194,
-  PseudoVREMU_VV_M2_E16_MASK = 8195,
-  PseudoVREMU_VV_M2_E32 = 8196,
-  PseudoVREMU_VV_M2_E32_MASK = 8197,
-  PseudoVREMU_VV_M2_E64 = 8198,
-  PseudoVREMU_VV_M2_E64_MASK = 8199,
-  PseudoVREMU_VV_M2_E8 = 8200,
-  PseudoVREMU_VV_M2_E8_MASK = 8201,
-  PseudoVREMU_VV_M4_E16 = 8202,
-  PseudoVREMU_VV_M4_E16_MASK = 8203,
-  PseudoVREMU_VV_M4_E32 = 8204,
-  PseudoVREMU_VV_M4_E32_MASK = 8205,
-  PseudoVREMU_VV_M4_E64 = 8206,
-  PseudoVREMU_VV_M4_E64_MASK = 8207,
-  PseudoVREMU_VV_M4_E8 = 8208,
-  PseudoVREMU_VV_M4_E8_MASK = 8209,
-  PseudoVREMU_VV_M8_E16 = 8210,
-  PseudoVREMU_VV_M8_E16_MASK = 8211,
-  PseudoVREMU_VV_M8_E32 = 8212,
-  PseudoVREMU_VV_M8_E32_MASK = 8213,
-  PseudoVREMU_VV_M8_E64 = 8214,
-  PseudoVREMU_VV_M8_E64_MASK = 8215,
-  PseudoVREMU_VV_M8_E8 = 8216,
-  PseudoVREMU_VV_M8_E8_MASK = 8217,
-  PseudoVREMU_VV_MF2_E16 = 8218,
-  PseudoVREMU_VV_MF2_E16_MASK = 8219,
-  PseudoVREMU_VV_MF2_E32 = 8220,
-  PseudoVREMU_VV_MF2_E32_MASK = 8221,
-  PseudoVREMU_VV_MF2_E8 = 8222,
-  PseudoVREMU_VV_MF2_E8_MASK = 8223,
-  PseudoVREMU_VV_MF4_E16 = 8224,
-  PseudoVREMU_VV_MF4_E16_MASK = 8225,
-  PseudoVREMU_VV_MF4_E8 = 8226,
-  PseudoVREMU_VV_MF4_E8_MASK = 8227,
-  PseudoVREMU_VV_MF8_E8 = 8228,
-  PseudoVREMU_VV_MF8_E8_MASK = 8229,
-  PseudoVREMU_VX_M1_E16 = 8230,
-  PseudoVREMU_VX_M1_E16_MASK = 8231,
-  PseudoVREMU_VX_M1_E32 = 8232,
-  PseudoVREMU_VX_M1_E32_MASK = 8233,
-  PseudoVREMU_VX_M1_E64 = 8234,
-  PseudoVREMU_VX_M1_E64_MASK = 8235,
-  PseudoVREMU_VX_M1_E8 = 8236,
-  PseudoVREMU_VX_M1_E8_MASK = 8237,
-  PseudoVREMU_VX_M2_E16 = 8238,
-  PseudoVREMU_VX_M2_E16_MASK = 8239,
-  PseudoVREMU_VX_M2_E32 = 8240,
-  PseudoVREMU_VX_M2_E32_MASK = 8241,
-  PseudoVREMU_VX_M2_E64 = 8242,
-  PseudoVREMU_VX_M2_E64_MASK = 8243,
-  PseudoVREMU_VX_M2_E8 = 8244,
-  PseudoVREMU_VX_M2_E8_MASK = 8245,
-  PseudoVREMU_VX_M4_E16 = 8246,
-  PseudoVREMU_VX_M4_E16_MASK = 8247,
-  PseudoVREMU_VX_M4_E32 = 8248,
-  PseudoVREMU_VX_M4_E32_MASK = 8249,
-  PseudoVREMU_VX_M4_E64 = 8250,
-  PseudoVREMU_VX_M4_E64_MASK = 8251,
-  PseudoVREMU_VX_M4_E8 = 8252,
-  PseudoVREMU_VX_M4_E8_MASK = 8253,
-  PseudoVREMU_VX_M8_E16 = 8254,
-  PseudoVREMU_VX_M8_E16_MASK = 8255,
-  PseudoVREMU_VX_M8_E32 = 8256,
-  PseudoVREMU_VX_M8_E32_MASK = 8257,
-  PseudoVREMU_VX_M8_E64 = 8258,
-  PseudoVREMU_VX_M8_E64_MASK = 8259,
-  PseudoVREMU_VX_M8_E8 = 8260,
-  PseudoVREMU_VX_M8_E8_MASK = 8261,
-  PseudoVREMU_VX_MF2_E16 = 8262,
-  PseudoVREMU_VX_MF2_E16_MASK = 8263,
-  PseudoVREMU_VX_MF2_E32 = 8264,
-  PseudoVREMU_VX_MF2_E32_MASK = 8265,
-  PseudoVREMU_VX_MF2_E8 = 8266,
-  PseudoVREMU_VX_MF2_E8_MASK = 8267,
-  PseudoVREMU_VX_MF4_E16 = 8268,
-  PseudoVREMU_VX_MF4_E16_MASK = 8269,
-  PseudoVREMU_VX_MF4_E8 = 8270,
-  PseudoVREMU_VX_MF4_E8_MASK = 8271,
-  PseudoVREMU_VX_MF8_E8 = 8272,
-  PseudoVREMU_VX_MF8_E8_MASK = 8273,
-  PseudoVREM_VV_M1_E16 = 8274,
-  PseudoVREM_VV_M1_E16_MASK = 8275,
-  PseudoVREM_VV_M1_E32 = 8276,
-  PseudoVREM_VV_M1_E32_MASK = 8277,
-  PseudoVREM_VV_M1_E64 = 8278,
-  PseudoVREM_VV_M1_E64_MASK = 8279,
-  PseudoVREM_VV_M1_E8 = 8280,
-  PseudoVREM_VV_M1_E8_MASK = 8281,
-  PseudoVREM_VV_M2_E16 = 8282,
-  PseudoVREM_VV_M2_E16_MASK = 8283,
-  PseudoVREM_VV_M2_E32 = 8284,
-  PseudoVREM_VV_M2_E32_MASK = 8285,
-  PseudoVREM_VV_M2_E64 = 8286,
-  PseudoVREM_VV_M2_E64_MASK = 8287,
-  PseudoVREM_VV_M2_E8 = 8288,
-  PseudoVREM_VV_M2_E8_MASK = 8289,
-  PseudoVREM_VV_M4_E16 = 8290,
-  PseudoVREM_VV_M4_E16_MASK = 8291,
-  PseudoVREM_VV_M4_E32 = 8292,
-  PseudoVREM_VV_M4_E32_MASK = 8293,
-  PseudoVREM_VV_M4_E64 = 8294,
-  PseudoVREM_VV_M4_E64_MASK = 8295,
-  PseudoVREM_VV_M4_E8 = 8296,
-  PseudoVREM_VV_M4_E8_MASK = 8297,
-  PseudoVREM_VV_M8_E16 = 8298,
-  PseudoVREM_VV_M8_E16_MASK = 8299,
-  PseudoVREM_VV_M8_E32 = 8300,
-  PseudoVREM_VV_M8_E32_MASK = 8301,
-  PseudoVREM_VV_M8_E64 = 8302,
-  PseudoVREM_VV_M8_E64_MASK = 8303,
-  PseudoVREM_VV_M8_E8 = 8304,
-  PseudoVREM_VV_M8_E8_MASK = 8305,
-  PseudoVREM_VV_MF2_E16 = 8306,
-  PseudoVREM_VV_MF2_E16_MASK = 8307,
-  PseudoVREM_VV_MF2_E32 = 8308,
-  PseudoVREM_VV_MF2_E32_MASK = 8309,
-  PseudoVREM_VV_MF2_E8 = 8310,
-  PseudoVREM_VV_MF2_E8_MASK = 8311,
-  PseudoVREM_VV_MF4_E16 = 8312,
-  PseudoVREM_VV_MF4_E16_MASK = 8313,
-  PseudoVREM_VV_MF4_E8 = 8314,
-  PseudoVREM_VV_MF4_E8_MASK = 8315,
-  PseudoVREM_VV_MF8_E8 = 8316,
-  PseudoVREM_VV_MF8_E8_MASK = 8317,
-  PseudoVREM_VX_M1_E16 = 8318,
-  PseudoVREM_VX_M1_E16_MASK = 8319,
-  PseudoVREM_VX_M1_E32 = 8320,
-  PseudoVREM_VX_M1_E32_MASK = 8321,
-  PseudoVREM_VX_M1_E64 = 8322,
-  PseudoVREM_VX_M1_E64_MASK = 8323,
-  PseudoVREM_VX_M1_E8 = 8324,
-  PseudoVREM_VX_M1_E8_MASK = 8325,
-  PseudoVREM_VX_M2_E16 = 8326,
-  PseudoVREM_VX_M2_E16_MASK = 8327,
-  PseudoVREM_VX_M2_E32 = 8328,
-  PseudoVREM_VX_M2_E32_MASK = 8329,
-  PseudoVREM_VX_M2_E64 = 8330,
-  PseudoVREM_VX_M2_E64_MASK = 8331,
-  PseudoVREM_VX_M2_E8 = 8332,
-  PseudoVREM_VX_M2_E8_MASK = 8333,
-  PseudoVREM_VX_M4_E16 = 8334,
-  PseudoVREM_VX_M4_E16_MASK = 8335,
-  PseudoVREM_VX_M4_E32 = 8336,
-  PseudoVREM_VX_M4_E32_MASK = 8337,
-  PseudoVREM_VX_M4_E64 = 8338,
-  PseudoVREM_VX_M4_E64_MASK = 8339,
-  PseudoVREM_VX_M4_E8 = 8340,
-  PseudoVREM_VX_M4_E8_MASK = 8341,
-  PseudoVREM_VX_M8_E16 = 8342,
-  PseudoVREM_VX_M8_E16_MASK = 8343,
-  PseudoVREM_VX_M8_E32 = 8344,
-  PseudoVREM_VX_M8_E32_MASK = 8345,
-  PseudoVREM_VX_M8_E64 = 8346,
-  PseudoVREM_VX_M8_E64_MASK = 8347,
-  PseudoVREM_VX_M8_E8 = 8348,
-  PseudoVREM_VX_M8_E8_MASK = 8349,
-  PseudoVREM_VX_MF2_E16 = 8350,
-  PseudoVREM_VX_MF2_E16_MASK = 8351,
-  PseudoVREM_VX_MF2_E32 = 8352,
-  PseudoVREM_VX_MF2_E32_MASK = 8353,
-  PseudoVREM_VX_MF2_E8 = 8354,
-  PseudoVREM_VX_MF2_E8_MASK = 8355,
-  PseudoVREM_VX_MF4_E16 = 8356,
-  PseudoVREM_VX_MF4_E16_MASK = 8357,
-  PseudoVREM_VX_MF4_E8 = 8358,
-  PseudoVREM_VX_MF4_E8_MASK = 8359,
-  PseudoVREM_VX_MF8_E8 = 8360,
-  PseudoVREM_VX_MF8_E8_MASK = 8361,
-  PseudoVREV8_V_M1 = 8362,
-  PseudoVREV8_V_M1_MASK = 8363,
-  PseudoVREV8_V_M2 = 8364,
-  PseudoVREV8_V_M2_MASK = 8365,
-  PseudoVREV8_V_M4 = 8366,
-  PseudoVREV8_V_M4_MASK = 8367,
-  PseudoVREV8_V_M8 = 8368,
-  PseudoVREV8_V_M8_MASK = 8369,
-  PseudoVREV8_V_MF2 = 8370,
-  PseudoVREV8_V_MF2_MASK = 8371,
-  PseudoVREV8_V_MF4 = 8372,
-  PseudoVREV8_V_MF4_MASK = 8373,
-  PseudoVREV8_V_MF8 = 8374,
-  PseudoVREV8_V_MF8_MASK = 8375,
-  PseudoVRGATHEREI16_VV_M1_E16_M1 = 8376,
-  PseudoVRGATHEREI16_VV_M1_E16_M1_MASK = 8377,
-  PseudoVRGATHEREI16_VV_M1_E16_M2 = 8378,
-  PseudoVRGATHEREI16_VV_M1_E16_M2_MASK = 8379,
-  PseudoVRGATHEREI16_VV_M1_E16_MF2 = 8380,
-  PseudoVRGATHEREI16_VV_M1_E16_MF2_MASK = 8381,
-  PseudoVRGATHEREI16_VV_M1_E16_MF4 = 8382,
-  PseudoVRGATHEREI16_VV_M1_E16_MF4_MASK = 8383,
-  PseudoVRGATHEREI16_VV_M1_E32_M1 = 8384,
-  PseudoVRGATHEREI16_VV_M1_E32_M1_MASK = 8385,
-  PseudoVRGATHEREI16_VV_M1_E32_M2 = 8386,
-  PseudoVRGATHEREI16_VV_M1_E32_M2_MASK = 8387,
-  PseudoVRGATHEREI16_VV_M1_E32_MF2 = 8388,
-  PseudoVRGATHEREI16_VV_M1_E32_MF2_MASK = 8389,
-  PseudoVRGATHEREI16_VV_M1_E32_MF4 = 8390,
-  PseudoVRGATHEREI16_VV_M1_E32_MF4_MASK = 8391,
-  PseudoVRGATHEREI16_VV_M1_E64_M1 = 8392,
-  PseudoVRGATHEREI16_VV_M1_E64_M1_MASK = 8393,
-  PseudoVRGATHEREI16_VV_M1_E64_M2 = 8394,
-  PseudoVRGATHEREI16_VV_M1_E64_M2_MASK = 8395,
-  PseudoVRGATHEREI16_VV_M1_E64_MF2 = 8396,
-  PseudoVRGATHEREI16_VV_M1_E64_MF2_MASK = 8397,
-  PseudoVRGATHEREI16_VV_M1_E64_MF4 = 8398,
-  PseudoVRGATHEREI16_VV_M1_E64_MF4_MASK = 8399,
-  PseudoVRGATHEREI16_VV_M1_E8_M1 = 8400,
-  PseudoVRGATHEREI16_VV_M1_E8_M1_MASK = 8401,
-  PseudoVRGATHEREI16_VV_M1_E8_M2 = 8402,
-  PseudoVRGATHEREI16_VV_M1_E8_M2_MASK = 8403,
-  PseudoVRGATHEREI16_VV_M1_E8_MF2 = 8404,
-  PseudoVRGATHEREI16_VV_M1_E8_MF2_MASK = 8405,
-  PseudoVRGATHEREI16_VV_M1_E8_MF4 = 8406,
-  PseudoVRGATHEREI16_VV_M1_E8_MF4_MASK = 8407,
-  PseudoVRGATHEREI16_VV_M2_E16_M1 = 8408,
-  PseudoVRGATHEREI16_VV_M2_E16_M1_MASK = 8409,
-  PseudoVRGATHEREI16_VV_M2_E16_M2 = 8410,
-  PseudoVRGATHEREI16_VV_M2_E16_M2_MASK = 8411,
-  PseudoVRGATHEREI16_VV_M2_E16_M4 = 8412,
-  PseudoVRGATHEREI16_VV_M2_E16_M4_MASK = 8413,
-  PseudoVRGATHEREI16_VV_M2_E16_MF2 = 8414,
-  PseudoVRGATHEREI16_VV_M2_E16_MF2_MASK = 8415,
-  PseudoVRGATHEREI16_VV_M2_E32_M1 = 8416,
-  PseudoVRGATHEREI16_VV_M2_E32_M1_MASK = 8417,
-  PseudoVRGATHEREI16_VV_M2_E32_M2 = 8418,
-  PseudoVRGATHEREI16_VV_M2_E32_M2_MASK = 8419,
-  PseudoVRGATHEREI16_VV_M2_E32_M4 = 8420,
-  PseudoVRGATHEREI16_VV_M2_E32_M4_MASK = 8421,
-  PseudoVRGATHEREI16_VV_M2_E32_MF2 = 8422,
-  PseudoVRGATHEREI16_VV_M2_E32_MF2_MASK = 8423,
-  PseudoVRGATHEREI16_VV_M2_E64_M1 = 8424,
-  PseudoVRGATHEREI16_VV_M2_E64_M1_MASK = 8425,
-  PseudoVRGATHEREI16_VV_M2_E64_M2 = 8426,
-  PseudoVRGATHEREI16_VV_M2_E64_M2_MASK = 8427,
-  PseudoVRGATHEREI16_VV_M2_E64_M4 = 8428,
-  PseudoVRGATHEREI16_VV_M2_E64_M4_MASK = 8429,
-  PseudoVRGATHEREI16_VV_M2_E64_MF2 = 8430,
-  PseudoVRGATHEREI16_VV_M2_E64_MF2_MASK = 8431,
-  PseudoVRGATHEREI16_VV_M2_E8_M1 = 8432,
-  PseudoVRGATHEREI16_VV_M2_E8_M1_MASK = 8433,
-  PseudoVRGATHEREI16_VV_M2_E8_M2 = 8434,
-  PseudoVRGATHEREI16_VV_M2_E8_M2_MASK = 8435,
-  PseudoVRGATHEREI16_VV_M2_E8_M4 = 8436,
-  PseudoVRGATHEREI16_VV_M2_E8_M4_MASK = 8437,
-  PseudoVRGATHEREI16_VV_M2_E8_MF2 = 8438,
-  PseudoVRGATHEREI16_VV_M2_E8_MF2_MASK = 8439,
-  PseudoVRGATHEREI16_VV_M4_E16_M1 = 8440,
-  PseudoVRGATHEREI16_VV_M4_E16_M1_MASK = 8441,
-  PseudoVRGATHEREI16_VV_M4_E16_M2 = 8442,
-  PseudoVRGATHEREI16_VV_M4_E16_M2_MASK = 8443,
-  PseudoVRGATHEREI16_VV_M4_E16_M4 = 8444,
-  PseudoVRGATHEREI16_VV_M4_E16_M4_MASK = 8445,
-  PseudoVRGATHEREI16_VV_M4_E16_M8 = 8446,
-  PseudoVRGATHEREI16_VV_M4_E16_M8_MASK = 8447,
-  PseudoVRGATHEREI16_VV_M4_E32_M1 = 8448,
-  PseudoVRGATHEREI16_VV_M4_E32_M1_MASK = 8449,
-  PseudoVRGATHEREI16_VV_M4_E32_M2 = 8450,
-  PseudoVRGATHEREI16_VV_M4_E32_M2_MASK = 8451,
-  PseudoVRGATHEREI16_VV_M4_E32_M4 = 8452,
-  PseudoVRGATHEREI16_VV_M4_E32_M4_MASK = 8453,
-  PseudoVRGATHEREI16_VV_M4_E32_M8 = 8454,
-  PseudoVRGATHEREI16_VV_M4_E32_M8_MASK = 8455,
-  PseudoVRGATHEREI16_VV_M4_E64_M1 = 8456,
-  PseudoVRGATHEREI16_VV_M4_E64_M1_MASK = 8457,
-  PseudoVRGATHEREI16_VV_M4_E64_M2 = 8458,
-  PseudoVRGATHEREI16_VV_M4_E64_M2_MASK = 8459,
-  PseudoVRGATHEREI16_VV_M4_E64_M4 = 8460,
-  PseudoVRGATHEREI16_VV_M4_E64_M4_MASK = 8461,
-  PseudoVRGATHEREI16_VV_M4_E64_M8 = 8462,
-  PseudoVRGATHEREI16_VV_M4_E64_M8_MASK = 8463,
-  PseudoVRGATHEREI16_VV_M4_E8_M1 = 8464,
-  PseudoVRGATHEREI16_VV_M4_E8_M1_MASK = 8465,
-  PseudoVRGATHEREI16_VV_M4_E8_M2 = 8466,
-  PseudoVRGATHEREI16_VV_M4_E8_M2_MASK = 8467,
-  PseudoVRGATHEREI16_VV_M4_E8_M4 = 8468,
-  PseudoVRGATHEREI16_VV_M4_E8_M4_MASK = 8469,
-  PseudoVRGATHEREI16_VV_M4_E8_M8 = 8470,
-  PseudoVRGATHEREI16_VV_M4_E8_M8_MASK = 8471,
-  PseudoVRGATHEREI16_VV_M8_E16_M2 = 8472,
-  PseudoVRGATHEREI16_VV_M8_E16_M2_MASK = 8473,
-  PseudoVRGATHEREI16_VV_M8_E16_M4 = 8474,
-  PseudoVRGATHEREI16_VV_M8_E16_M4_MASK = 8475,
-  PseudoVRGATHEREI16_VV_M8_E16_M8 = 8476,
-  PseudoVRGATHEREI16_VV_M8_E16_M8_MASK = 8477,
-  PseudoVRGATHEREI16_VV_M8_E32_M2 = 8478,
-  PseudoVRGATHEREI16_VV_M8_E32_M2_MASK = 8479,
-  PseudoVRGATHEREI16_VV_M8_E32_M4 = 8480,
-  PseudoVRGATHEREI16_VV_M8_E32_M4_MASK = 8481,
-  PseudoVRGATHEREI16_VV_M8_E32_M8 = 8482,
-  PseudoVRGATHEREI16_VV_M8_E32_M8_MASK = 8483,
-  PseudoVRGATHEREI16_VV_M8_E64_M2 = 8484,
-  PseudoVRGATHEREI16_VV_M8_E64_M2_MASK = 8485,
-  PseudoVRGATHEREI16_VV_M8_E64_M4 = 8486,
-  PseudoVRGATHEREI16_VV_M8_E64_M4_MASK = 8487,
-  PseudoVRGATHEREI16_VV_M8_E64_M8 = 8488,
-  PseudoVRGATHEREI16_VV_M8_E64_M8_MASK = 8489,
-  PseudoVRGATHEREI16_VV_M8_E8_M2 = 8490,
-  PseudoVRGATHEREI16_VV_M8_E8_M2_MASK = 8491,
-  PseudoVRGATHEREI16_VV_M8_E8_M4 = 8492,
-  PseudoVRGATHEREI16_VV_M8_E8_M4_MASK = 8493,
-  PseudoVRGATHEREI16_VV_M8_E8_M8 = 8494,
-  PseudoVRGATHEREI16_VV_M8_E8_M8_MASK = 8495,
-  PseudoVRGATHEREI16_VV_MF2_E16_M1 = 8496,
-  PseudoVRGATHEREI16_VV_MF2_E16_M1_MASK = 8497,
-  PseudoVRGATHEREI16_VV_MF2_E16_MF2 = 8498,
-  PseudoVRGATHEREI16_VV_MF2_E16_MF2_MASK = 8499,
-  PseudoVRGATHEREI16_VV_MF2_E16_MF4 = 8500,
-  PseudoVRGATHEREI16_VV_MF2_E16_MF4_MASK = 8501,
-  PseudoVRGATHEREI16_VV_MF2_E16_MF8 = 8502,
-  PseudoVRGATHEREI16_VV_MF2_E16_MF8_MASK = 8503,
-  PseudoVRGATHEREI16_VV_MF2_E32_M1 = 8504,
-  PseudoVRGATHEREI16_VV_MF2_E32_M1_MASK = 8505,
-  PseudoVRGATHEREI16_VV_MF2_E32_MF2 = 8506,
-  PseudoVRGATHEREI16_VV_MF2_E32_MF2_MASK = 8507,
-  PseudoVRGATHEREI16_VV_MF2_E32_MF4 = 8508,
-  PseudoVRGATHEREI16_VV_MF2_E32_MF4_MASK = 8509,
-  PseudoVRGATHEREI16_VV_MF2_E32_MF8 = 8510,
-  PseudoVRGATHEREI16_VV_MF2_E32_MF8_MASK = 8511,
-  PseudoVRGATHEREI16_VV_MF2_E8_M1 = 8512,
-  PseudoVRGATHEREI16_VV_MF2_E8_M1_MASK = 8513,
-  PseudoVRGATHEREI16_VV_MF2_E8_MF2 = 8514,
-  PseudoVRGATHEREI16_VV_MF2_E8_MF2_MASK = 8515,
-  PseudoVRGATHEREI16_VV_MF2_E8_MF4 = 8516,
-  PseudoVRGATHEREI16_VV_MF2_E8_MF4_MASK = 8517,
-  PseudoVRGATHEREI16_VV_MF2_E8_MF8 = 8518,
-  PseudoVRGATHEREI16_VV_MF2_E8_MF8_MASK = 8519,
-  PseudoVRGATHEREI16_VV_MF4_E16_MF2 = 8520,
-  PseudoVRGATHEREI16_VV_MF4_E16_MF2_MASK = 8521,
-  PseudoVRGATHEREI16_VV_MF4_E16_MF4 = 8522,
-  PseudoVRGATHEREI16_VV_MF4_E16_MF4_MASK = 8523,
-  PseudoVRGATHEREI16_VV_MF4_E16_MF8 = 8524,
-  PseudoVRGATHEREI16_VV_MF4_E16_MF8_MASK = 8525,
-  PseudoVRGATHEREI16_VV_MF4_E8_MF2 = 8526,
-  PseudoVRGATHEREI16_VV_MF4_E8_MF2_MASK = 8527,
-  PseudoVRGATHEREI16_VV_MF4_E8_MF4 = 8528,
-  PseudoVRGATHEREI16_VV_MF4_E8_MF4_MASK = 8529,
-  PseudoVRGATHEREI16_VV_MF4_E8_MF8 = 8530,
-  PseudoVRGATHEREI16_VV_MF4_E8_MF8_MASK = 8531,
-  PseudoVRGATHEREI16_VV_MF8_E8_MF4 = 8532,
-  PseudoVRGATHEREI16_VV_MF8_E8_MF4_MASK = 8533,
-  PseudoVRGATHEREI16_VV_MF8_E8_MF8 = 8534,
-  PseudoVRGATHEREI16_VV_MF8_E8_MF8_MASK = 8535,
-  PseudoVRGATHER_VI_M1 = 8536,
-  PseudoVRGATHER_VI_M1_MASK = 8537,
-  PseudoVRGATHER_VI_M2 = 8538,
-  PseudoVRGATHER_VI_M2_MASK = 8539,
-  PseudoVRGATHER_VI_M4 = 8540,
-  PseudoVRGATHER_VI_M4_MASK = 8541,
-  PseudoVRGATHER_VI_M8 = 8542,
-  PseudoVRGATHER_VI_M8_MASK = 8543,
-  PseudoVRGATHER_VI_MF2 = 8544,
-  PseudoVRGATHER_VI_MF2_MASK = 8545,
-  PseudoVRGATHER_VI_MF4 = 8546,
-  PseudoVRGATHER_VI_MF4_MASK = 8547,
-  PseudoVRGATHER_VI_MF8 = 8548,
-  PseudoVRGATHER_VI_MF8_MASK = 8549,
-  PseudoVRGATHER_VV_M1_E16 = 8550,
-  PseudoVRGATHER_VV_M1_E16_MASK = 8551,
-  PseudoVRGATHER_VV_M1_E32 = 8552,
-  PseudoVRGATHER_VV_M1_E32_MASK = 8553,
-  PseudoVRGATHER_VV_M1_E64 = 8554,
-  PseudoVRGATHER_VV_M1_E64_MASK = 8555,
-  PseudoVRGATHER_VV_M1_E8 = 8556,
-  PseudoVRGATHER_VV_M1_E8_MASK = 8557,
-  PseudoVRGATHER_VV_M2_E16 = 8558,
-  PseudoVRGATHER_VV_M2_E16_MASK = 8559,
-  PseudoVRGATHER_VV_M2_E32 = 8560,
-  PseudoVRGATHER_VV_M2_E32_MASK = 8561,
-  PseudoVRGATHER_VV_M2_E64 = 8562,
-  PseudoVRGATHER_VV_M2_E64_MASK = 8563,
-  PseudoVRGATHER_VV_M2_E8 = 8564,
-  PseudoVRGATHER_VV_M2_E8_MASK = 8565,
-  PseudoVRGATHER_VV_M4_E16 = 8566,
-  PseudoVRGATHER_VV_M4_E16_MASK = 8567,
-  PseudoVRGATHER_VV_M4_E32 = 8568,
-  PseudoVRGATHER_VV_M4_E32_MASK = 8569,
-  PseudoVRGATHER_VV_M4_E64 = 8570,
-  PseudoVRGATHER_VV_M4_E64_MASK = 8571,
-  PseudoVRGATHER_VV_M4_E8 = 8572,
-  PseudoVRGATHER_VV_M4_E8_MASK = 8573,
-  PseudoVRGATHER_VV_M8_E16 = 8574,
-  PseudoVRGATHER_VV_M8_E16_MASK = 8575,
-  PseudoVRGATHER_VV_M8_E32 = 8576,
-  PseudoVRGATHER_VV_M8_E32_MASK = 8577,
-  PseudoVRGATHER_VV_M8_E64 = 8578,
-  PseudoVRGATHER_VV_M8_E64_MASK = 8579,
-  PseudoVRGATHER_VV_M8_E8 = 8580,
-  PseudoVRGATHER_VV_M8_E8_MASK = 8581,
-  PseudoVRGATHER_VV_MF2_E16 = 8582,
-  PseudoVRGATHER_VV_MF2_E16_MASK = 8583,
-  PseudoVRGATHER_VV_MF2_E32 = 8584,
-  PseudoVRGATHER_VV_MF2_E32_MASK = 8585,
-  PseudoVRGATHER_VV_MF2_E8 = 8586,
-  PseudoVRGATHER_VV_MF2_E8_MASK = 8587,
-  PseudoVRGATHER_VV_MF4_E16 = 8588,
-  PseudoVRGATHER_VV_MF4_E16_MASK = 8589,
-  PseudoVRGATHER_VV_MF4_E8 = 8590,
-  PseudoVRGATHER_VV_MF4_E8_MASK = 8591,
-  PseudoVRGATHER_VV_MF8_E8 = 8592,
-  PseudoVRGATHER_VV_MF8_E8_MASK = 8593,
-  PseudoVRGATHER_VX_M1 = 8594,
-  PseudoVRGATHER_VX_M1_MASK = 8595,
-  PseudoVRGATHER_VX_M2 = 8596,
-  PseudoVRGATHER_VX_M2_MASK = 8597,
-  PseudoVRGATHER_VX_M4 = 8598,
-  PseudoVRGATHER_VX_M4_MASK = 8599,
-  PseudoVRGATHER_VX_M8 = 8600,
-  PseudoVRGATHER_VX_M8_MASK = 8601,
-  PseudoVRGATHER_VX_MF2 = 8602,
-  PseudoVRGATHER_VX_MF2_MASK = 8603,
-  PseudoVRGATHER_VX_MF4 = 8604,
-  PseudoVRGATHER_VX_MF4_MASK = 8605,
-  PseudoVRGATHER_VX_MF8 = 8606,
-  PseudoVRGATHER_VX_MF8_MASK = 8607,
-  PseudoVROL_VV_M1 = 8608,
-  PseudoVROL_VV_M1_MASK = 8609,
-  PseudoVROL_VV_M2 = 8610,
-  PseudoVROL_VV_M2_MASK = 8611,
-  PseudoVROL_VV_M4 = 8612,
-  PseudoVROL_VV_M4_MASK = 8613,
-  PseudoVROL_VV_M8 = 8614,
-  PseudoVROL_VV_M8_MASK = 8615,
-  PseudoVROL_VV_MF2 = 8616,
-  PseudoVROL_VV_MF2_MASK = 8617,
-  PseudoVROL_VV_MF4 = 8618,
-  PseudoVROL_VV_MF4_MASK = 8619,
-  PseudoVROL_VV_MF8 = 8620,
-  PseudoVROL_VV_MF8_MASK = 8621,
-  PseudoVROL_VX_M1 = 8622,
-  PseudoVROL_VX_M1_MASK = 8623,
-  PseudoVROL_VX_M2 = 8624,
-  PseudoVROL_VX_M2_MASK = 8625,
-  PseudoVROL_VX_M4 = 8626,
-  PseudoVROL_VX_M4_MASK = 8627,
-  PseudoVROL_VX_M8 = 8628,
-  PseudoVROL_VX_M8_MASK = 8629,
-  PseudoVROL_VX_MF2 = 8630,
-  PseudoVROL_VX_MF2_MASK = 8631,
-  PseudoVROL_VX_MF4 = 8632,
-  PseudoVROL_VX_MF4_MASK = 8633,
-  PseudoVROL_VX_MF8 = 8634,
-  PseudoVROL_VX_MF8_MASK = 8635,
-  PseudoVROR_VI_M1 = 8636,
-  PseudoVROR_VI_M1_MASK = 8637,
-  PseudoVROR_VI_M2 = 8638,
-  PseudoVROR_VI_M2_MASK = 8639,
-  PseudoVROR_VI_M4 = 8640,
-  PseudoVROR_VI_M4_MASK = 8641,
-  PseudoVROR_VI_M8 = 8642,
-  PseudoVROR_VI_M8_MASK = 8643,
-  PseudoVROR_VI_MF2 = 8644,
-  PseudoVROR_VI_MF2_MASK = 8645,
-  PseudoVROR_VI_MF4 = 8646,
-  PseudoVROR_VI_MF4_MASK = 8647,
-  PseudoVROR_VI_MF8 = 8648,
-  PseudoVROR_VI_MF8_MASK = 8649,
-  PseudoVROR_VV_M1 = 8650,
-  PseudoVROR_VV_M1_MASK = 8651,
-  PseudoVROR_VV_M2 = 8652,
-  PseudoVROR_VV_M2_MASK = 8653,
-  PseudoVROR_VV_M4 = 8654,
-  PseudoVROR_VV_M4_MASK = 8655,
-  PseudoVROR_VV_M8 = 8656,
-  PseudoVROR_VV_M8_MASK = 8657,
-  PseudoVROR_VV_MF2 = 8658,
-  PseudoVROR_VV_MF2_MASK = 8659,
-  PseudoVROR_VV_MF4 = 8660,
-  PseudoVROR_VV_MF4_MASK = 8661,
-  PseudoVROR_VV_MF8 = 8662,
-  PseudoVROR_VV_MF8_MASK = 8663,
-  PseudoVROR_VX_M1 = 8664,
-  PseudoVROR_VX_M1_MASK = 8665,
-  PseudoVROR_VX_M2 = 8666,
-  PseudoVROR_VX_M2_MASK = 8667,
-  PseudoVROR_VX_M4 = 8668,
-  PseudoVROR_VX_M4_MASK = 8669,
-  PseudoVROR_VX_M8 = 8670,
-  PseudoVROR_VX_M8_MASK = 8671,
-  PseudoVROR_VX_MF2 = 8672,
-  PseudoVROR_VX_MF2_MASK = 8673,
-  PseudoVROR_VX_MF4 = 8674,
-  PseudoVROR_VX_MF4_MASK = 8675,
-  PseudoVROR_VX_MF8 = 8676,
-  PseudoVROR_VX_MF8_MASK = 8677,
-  PseudoVRSUB_VI_M1 = 8678,
-  PseudoVRSUB_VI_M1_MASK = 8679,
-  PseudoVRSUB_VI_M2 = 8680,
-  PseudoVRSUB_VI_M2_MASK = 8681,
-  PseudoVRSUB_VI_M4 = 8682,
-  PseudoVRSUB_VI_M4_MASK = 8683,
-  PseudoVRSUB_VI_M8 = 8684,
-  PseudoVRSUB_VI_M8_MASK = 8685,
-  PseudoVRSUB_VI_MF2 = 8686,
-  PseudoVRSUB_VI_MF2_MASK = 8687,
-  PseudoVRSUB_VI_MF4 = 8688,
-  PseudoVRSUB_VI_MF4_MASK = 8689,
-  PseudoVRSUB_VI_MF8 = 8690,
-  PseudoVRSUB_VI_MF8_MASK = 8691,
-  PseudoVRSUB_VX_M1 = 8692,
-  PseudoVRSUB_VX_M1_MASK = 8693,
-  PseudoVRSUB_VX_M2 = 8694,
-  PseudoVRSUB_VX_M2_MASK = 8695,
-  PseudoVRSUB_VX_M4 = 8696,
-  PseudoVRSUB_VX_M4_MASK = 8697,
-  PseudoVRSUB_VX_M8 = 8698,
-  PseudoVRSUB_VX_M8_MASK = 8699,
-  PseudoVRSUB_VX_MF2 = 8700,
-  PseudoVRSUB_VX_MF2_MASK = 8701,
-  PseudoVRSUB_VX_MF4 = 8702,
-  PseudoVRSUB_VX_MF4_MASK = 8703,
-  PseudoVRSUB_VX_MF8 = 8704,
-  PseudoVRSUB_VX_MF8_MASK = 8705,
-  PseudoVSADDU_VI_M1 = 8706,
-  PseudoVSADDU_VI_M1_MASK = 8707,
-  PseudoVSADDU_VI_M2 = 8708,
-  PseudoVSADDU_VI_M2_MASK = 8709,
-  PseudoVSADDU_VI_M4 = 8710,
-  PseudoVSADDU_VI_M4_MASK = 8711,
-  PseudoVSADDU_VI_M8 = 8712,
-  PseudoVSADDU_VI_M8_MASK = 8713,
-  PseudoVSADDU_VI_MF2 = 8714,
-  PseudoVSADDU_VI_MF2_MASK = 8715,
-  PseudoVSADDU_VI_MF4 = 8716,
-  PseudoVSADDU_VI_MF4_MASK = 8717,
-  PseudoVSADDU_VI_MF8 = 8718,
-  PseudoVSADDU_VI_MF8_MASK = 8719,
-  PseudoVSADDU_VV_M1 = 8720,
-  PseudoVSADDU_VV_M1_MASK = 8721,
-  PseudoVSADDU_VV_M2 = 8722,
-  PseudoVSADDU_VV_M2_MASK = 8723,
-  PseudoVSADDU_VV_M4 = 8724,
-  PseudoVSADDU_VV_M4_MASK = 8725,
-  PseudoVSADDU_VV_M8 = 8726,
-  PseudoVSADDU_VV_M8_MASK = 8727,
-  PseudoVSADDU_VV_MF2 = 8728,
-  PseudoVSADDU_VV_MF2_MASK = 8729,
-  PseudoVSADDU_VV_MF4 = 8730,
-  PseudoVSADDU_VV_MF4_MASK = 8731,
-  PseudoVSADDU_VV_MF8 = 8732,
-  PseudoVSADDU_VV_MF8_MASK = 8733,
-  PseudoVSADDU_VX_M1 = 8734,
-  PseudoVSADDU_VX_M1_MASK = 8735,
-  PseudoVSADDU_VX_M2 = 8736,
-  PseudoVSADDU_VX_M2_MASK = 8737,
-  PseudoVSADDU_VX_M4 = 8738,
-  PseudoVSADDU_VX_M4_MASK = 8739,
-  PseudoVSADDU_VX_M8 = 8740,
-  PseudoVSADDU_VX_M8_MASK = 8741,
-  PseudoVSADDU_VX_MF2 = 8742,
-  PseudoVSADDU_VX_MF2_MASK = 8743,
-  PseudoVSADDU_VX_MF4 = 8744,
-  PseudoVSADDU_VX_MF4_MASK = 8745,
-  PseudoVSADDU_VX_MF8 = 8746,
-  PseudoVSADDU_VX_MF8_MASK = 8747,
-  PseudoVSADD_VI_M1 = 8748,
-  PseudoVSADD_VI_M1_MASK = 8749,
-  PseudoVSADD_VI_M2 = 8750,
-  PseudoVSADD_VI_M2_MASK = 8751,
-  PseudoVSADD_VI_M4 = 8752,
-  PseudoVSADD_VI_M4_MASK = 8753,
-  PseudoVSADD_VI_M8 = 8754,
-  PseudoVSADD_VI_M8_MASK = 8755,
-  PseudoVSADD_VI_MF2 = 8756,
-  PseudoVSADD_VI_MF2_MASK = 8757,
-  PseudoVSADD_VI_MF4 = 8758,
-  PseudoVSADD_VI_MF4_MASK = 8759,
-  PseudoVSADD_VI_MF8 = 8760,
-  PseudoVSADD_VI_MF8_MASK = 8761,
-  PseudoVSADD_VV_M1 = 8762,
-  PseudoVSADD_VV_M1_MASK = 8763,
-  PseudoVSADD_VV_M2 = 8764,
-  PseudoVSADD_VV_M2_MASK = 8765,
-  PseudoVSADD_VV_M4 = 8766,
-  PseudoVSADD_VV_M4_MASK = 8767,
-  PseudoVSADD_VV_M8 = 8768,
-  PseudoVSADD_VV_M8_MASK = 8769,
-  PseudoVSADD_VV_MF2 = 8770,
-  PseudoVSADD_VV_MF2_MASK = 8771,
-  PseudoVSADD_VV_MF4 = 8772,
-  PseudoVSADD_VV_MF4_MASK = 8773,
-  PseudoVSADD_VV_MF8 = 8774,
-  PseudoVSADD_VV_MF8_MASK = 8775,
-  PseudoVSADD_VX_M1 = 8776,
-  PseudoVSADD_VX_M1_MASK = 8777,
-  PseudoVSADD_VX_M2 = 8778,
-  PseudoVSADD_VX_M2_MASK = 8779,
-  PseudoVSADD_VX_M4 = 8780,
-  PseudoVSADD_VX_M4_MASK = 8781,
-  PseudoVSADD_VX_M8 = 8782,
-  PseudoVSADD_VX_M8_MASK = 8783,
-  PseudoVSADD_VX_MF2 = 8784,
-  PseudoVSADD_VX_MF2_MASK = 8785,
-  PseudoVSADD_VX_MF4 = 8786,
-  PseudoVSADD_VX_MF4_MASK = 8787,
-  PseudoVSADD_VX_MF8 = 8788,
-  PseudoVSADD_VX_MF8_MASK = 8789,
-  PseudoVSBC_VVM_M1 = 8790,
-  PseudoVSBC_VVM_M2 = 8791,
-  PseudoVSBC_VVM_M4 = 8792,
-  PseudoVSBC_VVM_M8 = 8793,
-  PseudoVSBC_VVM_MF2 = 8794,
-  PseudoVSBC_VVM_MF4 = 8795,
-  PseudoVSBC_VVM_MF8 = 8796,
-  PseudoVSBC_VXM_M1 = 8797,
-  PseudoVSBC_VXM_M2 = 8798,
-  PseudoVSBC_VXM_M4 = 8799,
-  PseudoVSBC_VXM_M8 = 8800,
-  PseudoVSBC_VXM_MF2 = 8801,
-  PseudoVSBC_VXM_MF4 = 8802,
-  PseudoVSBC_VXM_MF8 = 8803,
-  PseudoVSE16_V_M1 = 8804,
-  PseudoVSE16_V_M1_MASK = 8805,
-  PseudoVSE16_V_M2 = 8806,
-  PseudoVSE16_V_M2_MASK = 8807,
-  PseudoVSE16_V_M4 = 8808,
-  PseudoVSE16_V_M4_MASK = 8809,
-  PseudoVSE16_V_M8 = 8810,
-  PseudoVSE16_V_M8_MASK = 8811,
-  PseudoVSE16_V_MF2 = 8812,
-  PseudoVSE16_V_MF2_MASK = 8813,
-  PseudoVSE16_V_MF4 = 8814,
-  PseudoVSE16_V_MF4_MASK = 8815,
-  PseudoVSE32_V_M1 = 8816,
-  PseudoVSE32_V_M1_MASK = 8817,
-  PseudoVSE32_V_M2 = 8818,
-  PseudoVSE32_V_M2_MASK = 8819,
-  PseudoVSE32_V_M4 = 8820,
-  PseudoVSE32_V_M4_MASK = 8821,
-  PseudoVSE32_V_M8 = 8822,
-  PseudoVSE32_V_M8_MASK = 8823,
-  PseudoVSE32_V_MF2 = 8824,
-  PseudoVSE32_V_MF2_MASK = 8825,
-  PseudoVSE64_V_M1 = 8826,
-  PseudoVSE64_V_M1_MASK = 8827,
-  PseudoVSE64_V_M2 = 8828,
-  PseudoVSE64_V_M2_MASK = 8829,
-  PseudoVSE64_V_M4 = 8830,
-  PseudoVSE64_V_M4_MASK = 8831,
-  PseudoVSE64_V_M8 = 8832,
-  PseudoVSE64_V_M8_MASK = 8833,
-  PseudoVSE8_V_M1 = 8834,
-  PseudoVSE8_V_M1_MASK = 8835,
-  PseudoVSE8_V_M2 = 8836,
-  PseudoVSE8_V_M2_MASK = 8837,
-  PseudoVSE8_V_M4 = 8838,
-  PseudoVSE8_V_M4_MASK = 8839,
-  PseudoVSE8_V_M8 = 8840,
-  PseudoVSE8_V_M8_MASK = 8841,
-  PseudoVSE8_V_MF2 = 8842,
-  PseudoVSE8_V_MF2_MASK = 8843,
-  PseudoVSE8_V_MF4 = 8844,
-  PseudoVSE8_V_MF4_MASK = 8845,
-  PseudoVSE8_V_MF8 = 8846,
-  PseudoVSE8_V_MF8_MASK = 8847,
-  PseudoVSETIVLI = 8848,
-  PseudoVSETVLI = 8849,
-  PseudoVSETVLIX0 = 8850,
-  PseudoVSETVLIX0X0 = 8851,
-  PseudoVSEXT_VF2_M1 = 8852,
-  PseudoVSEXT_VF2_M1_MASK = 8853,
-  PseudoVSEXT_VF2_M2 = 8854,
-  PseudoVSEXT_VF2_M2_MASK = 8855,
-  PseudoVSEXT_VF2_M4 = 8856,
-  PseudoVSEXT_VF2_M4_MASK = 8857,
-  PseudoVSEXT_VF2_M8 = 8858,
-  PseudoVSEXT_VF2_M8_MASK = 8859,
-  PseudoVSEXT_VF2_MF2 = 8860,
-  PseudoVSEXT_VF2_MF2_MASK = 8861,
-  PseudoVSEXT_VF2_MF4 = 8862,
-  PseudoVSEXT_VF2_MF4_MASK = 8863,
-  PseudoVSEXT_VF4_M1 = 8864,
-  PseudoVSEXT_VF4_M1_MASK = 8865,
-  PseudoVSEXT_VF4_M2 = 8866,
-  PseudoVSEXT_VF4_M2_MASK = 8867,
-  PseudoVSEXT_VF4_M4 = 8868,
-  PseudoVSEXT_VF4_M4_MASK = 8869,
-  PseudoVSEXT_VF4_M8 = 8870,
-  PseudoVSEXT_VF4_M8_MASK = 8871,
-  PseudoVSEXT_VF4_MF2 = 8872,
-  PseudoVSEXT_VF4_MF2_MASK = 8873,
-  PseudoVSEXT_VF8_M1 = 8874,
-  PseudoVSEXT_VF8_M1_MASK = 8875,
-  PseudoVSEXT_VF8_M2 = 8876,
-  PseudoVSEXT_VF8_M2_MASK = 8877,
-  PseudoVSEXT_VF8_M4 = 8878,
-  PseudoVSEXT_VF8_M4_MASK = 8879,
-  PseudoVSEXT_VF8_M8 = 8880,
-  PseudoVSEXT_VF8_M8_MASK = 8881,
-  PseudoVSHA2CH_VV_M1 = 8882,
-  PseudoVSHA2CH_VV_M2 = 8883,
-  PseudoVSHA2CH_VV_M4 = 8884,
-  PseudoVSHA2CH_VV_M8 = 8885,
-  PseudoVSHA2CH_VV_MF2 = 8886,
-  PseudoVSHA2CL_VV_M1 = 8887,
-  PseudoVSHA2CL_VV_M2 = 8888,
-  PseudoVSHA2CL_VV_M4 = 8889,
-  PseudoVSHA2CL_VV_M8 = 8890,
-  PseudoVSHA2CL_VV_MF2 = 8891,
-  PseudoVSHA2MS_VV_M1_E32 = 8892,
-  PseudoVSHA2MS_VV_M1_E64 = 8893,
-  PseudoVSHA2MS_VV_M2_E32 = 8894,
-  PseudoVSHA2MS_VV_M2_E64 = 8895,
-  PseudoVSHA2MS_VV_M4_E32 = 8896,
-  PseudoVSHA2MS_VV_M4_E64 = 8897,
-  PseudoVSHA2MS_VV_M8_E32 = 8898,
-  PseudoVSHA2MS_VV_M8_E64 = 8899,
-  PseudoVSHA2MS_VV_MF2_E32 = 8900,
-  PseudoVSLIDE1DOWN_VX_M1 = 8901,
-  PseudoVSLIDE1DOWN_VX_M1_MASK = 8902,
-  PseudoVSLIDE1DOWN_VX_M2 = 8903,
-  PseudoVSLIDE1DOWN_VX_M2_MASK = 8904,
-  PseudoVSLIDE1DOWN_VX_M4 = 8905,
-  PseudoVSLIDE1DOWN_VX_M4_MASK = 8906,
-  PseudoVSLIDE1DOWN_VX_M8 = 8907,
-  PseudoVSLIDE1DOWN_VX_M8_MASK = 8908,
-  PseudoVSLIDE1DOWN_VX_MF2 = 8909,
-  PseudoVSLIDE1DOWN_VX_MF2_MASK = 8910,
-  PseudoVSLIDE1DOWN_VX_MF4 = 8911,
-  PseudoVSLIDE1DOWN_VX_MF4_MASK = 8912,
-  PseudoVSLIDE1DOWN_VX_MF8 = 8913,
-  PseudoVSLIDE1DOWN_VX_MF8_MASK = 8914,
-  PseudoVSLIDE1UP_VX_M1 = 8915,
-  PseudoVSLIDE1UP_VX_M1_MASK = 8916,
-  PseudoVSLIDE1UP_VX_M2 = 8917,
-  PseudoVSLIDE1UP_VX_M2_MASK = 8918,
-  PseudoVSLIDE1UP_VX_M4 = 8919,
-  PseudoVSLIDE1UP_VX_M4_MASK = 8920,
-  PseudoVSLIDE1UP_VX_M8 = 8921,
-  PseudoVSLIDE1UP_VX_M8_MASK = 8922,
-  PseudoVSLIDE1UP_VX_MF2 = 8923,
-  PseudoVSLIDE1UP_VX_MF2_MASK = 8924,
-  PseudoVSLIDE1UP_VX_MF4 = 8925,
-  PseudoVSLIDE1UP_VX_MF4_MASK = 8926,
-  PseudoVSLIDE1UP_VX_MF8 = 8927,
-  PseudoVSLIDE1UP_VX_MF8_MASK = 8928,
-  PseudoVSLIDEDOWN_VI_M1 = 8929,
-  PseudoVSLIDEDOWN_VI_M1_MASK = 8930,
-  PseudoVSLIDEDOWN_VI_M2 = 8931,
-  PseudoVSLIDEDOWN_VI_M2_MASK = 8932,
-  PseudoVSLIDEDOWN_VI_M4 = 8933,
-  PseudoVSLIDEDOWN_VI_M4_MASK = 8934,
-  PseudoVSLIDEDOWN_VI_M8 = 8935,
-  PseudoVSLIDEDOWN_VI_M8_MASK = 8936,
-  PseudoVSLIDEDOWN_VI_MF2 = 8937,
-  PseudoVSLIDEDOWN_VI_MF2_MASK = 8938,
-  PseudoVSLIDEDOWN_VI_MF4 = 8939,
-  PseudoVSLIDEDOWN_VI_MF4_MASK = 8940,
-  PseudoVSLIDEDOWN_VI_MF8 = 8941,
-  PseudoVSLIDEDOWN_VI_MF8_MASK = 8942,
-  PseudoVSLIDEDOWN_VX_M1 = 8943,
-  PseudoVSLIDEDOWN_VX_M1_MASK = 8944,
-  PseudoVSLIDEDOWN_VX_M2 = 8945,
-  PseudoVSLIDEDOWN_VX_M2_MASK = 8946,
-  PseudoVSLIDEDOWN_VX_M4 = 8947,
-  PseudoVSLIDEDOWN_VX_M4_MASK = 8948,
-  PseudoVSLIDEDOWN_VX_M8 = 8949,
-  PseudoVSLIDEDOWN_VX_M8_MASK = 8950,
-  PseudoVSLIDEDOWN_VX_MF2 = 8951,
-  PseudoVSLIDEDOWN_VX_MF2_MASK = 8952,
-  PseudoVSLIDEDOWN_VX_MF4 = 8953,
-  PseudoVSLIDEDOWN_VX_MF4_MASK = 8954,
-  PseudoVSLIDEDOWN_VX_MF8 = 8955,
-  PseudoVSLIDEDOWN_VX_MF8_MASK = 8956,
-  PseudoVSLIDEUP_VI_M1 = 8957,
-  PseudoVSLIDEUP_VI_M1_MASK = 8958,
-  PseudoVSLIDEUP_VI_M2 = 8959,
-  PseudoVSLIDEUP_VI_M2_MASK = 8960,
-  PseudoVSLIDEUP_VI_M4 = 8961,
-  PseudoVSLIDEUP_VI_M4_MASK = 8962,
-  PseudoVSLIDEUP_VI_M8 = 8963,
-  PseudoVSLIDEUP_VI_M8_MASK = 8964,
-  PseudoVSLIDEUP_VI_MF2 = 8965,
-  PseudoVSLIDEUP_VI_MF2_MASK = 8966,
-  PseudoVSLIDEUP_VI_MF4 = 8967,
-  PseudoVSLIDEUP_VI_MF4_MASK = 8968,
-  PseudoVSLIDEUP_VI_MF8 = 8969,
-  PseudoVSLIDEUP_VI_MF8_MASK = 8970,
-  PseudoVSLIDEUP_VX_M1 = 8971,
-  PseudoVSLIDEUP_VX_M1_MASK = 8972,
-  PseudoVSLIDEUP_VX_M2 = 8973,
-  PseudoVSLIDEUP_VX_M2_MASK = 8974,
-  PseudoVSLIDEUP_VX_M4 = 8975,
-  PseudoVSLIDEUP_VX_M4_MASK = 8976,
-  PseudoVSLIDEUP_VX_M8 = 8977,
-  PseudoVSLIDEUP_VX_M8_MASK = 8978,
-  PseudoVSLIDEUP_VX_MF2 = 8979,
-  PseudoVSLIDEUP_VX_MF2_MASK = 8980,
-  PseudoVSLIDEUP_VX_MF4 = 8981,
-  PseudoVSLIDEUP_VX_MF4_MASK = 8982,
-  PseudoVSLIDEUP_VX_MF8 = 8983,
-  PseudoVSLIDEUP_VX_MF8_MASK = 8984,
-  PseudoVSLL_VI_M1 = 8985,
-  PseudoVSLL_VI_M1_MASK = 8986,
-  PseudoVSLL_VI_M2 = 8987,
-  PseudoVSLL_VI_M2_MASK = 8988,
-  PseudoVSLL_VI_M4 = 8989,
-  PseudoVSLL_VI_M4_MASK = 8990,
-  PseudoVSLL_VI_M8 = 8991,
-  PseudoVSLL_VI_M8_MASK = 8992,
-  PseudoVSLL_VI_MF2 = 8993,
-  PseudoVSLL_VI_MF2_MASK = 8994,
-  PseudoVSLL_VI_MF4 = 8995,
-  PseudoVSLL_VI_MF4_MASK = 8996,
-  PseudoVSLL_VI_MF8 = 8997,
-  PseudoVSLL_VI_MF8_MASK = 8998,
-  PseudoVSLL_VV_M1 = 8999,
-  PseudoVSLL_VV_M1_MASK = 9000,
-  PseudoVSLL_VV_M2 = 9001,
-  PseudoVSLL_VV_M2_MASK = 9002,
-  PseudoVSLL_VV_M4 = 9003,
-  PseudoVSLL_VV_M4_MASK = 9004,
-  PseudoVSLL_VV_M8 = 9005,
-  PseudoVSLL_VV_M8_MASK = 9006,
-  PseudoVSLL_VV_MF2 = 9007,
-  PseudoVSLL_VV_MF2_MASK = 9008,
-  PseudoVSLL_VV_MF4 = 9009,
-  PseudoVSLL_VV_MF4_MASK = 9010,
-  PseudoVSLL_VV_MF8 = 9011,
-  PseudoVSLL_VV_MF8_MASK = 9012,
-  PseudoVSLL_VX_M1 = 9013,
-  PseudoVSLL_VX_M1_MASK = 9014,
-  PseudoVSLL_VX_M2 = 9015,
-  PseudoVSLL_VX_M2_MASK = 9016,
-  PseudoVSLL_VX_M4 = 9017,
-  PseudoVSLL_VX_M4_MASK = 9018,
-  PseudoVSLL_VX_M8 = 9019,
-  PseudoVSLL_VX_M8_MASK = 9020,
-  PseudoVSLL_VX_MF2 = 9021,
-  PseudoVSLL_VX_MF2_MASK = 9022,
-  PseudoVSLL_VX_MF4 = 9023,
-  PseudoVSLL_VX_MF4_MASK = 9024,
-  PseudoVSLL_VX_MF8 = 9025,
-  PseudoVSLL_VX_MF8_MASK = 9026,
-  PseudoVSM3C_VI_M1 = 9027,
-  PseudoVSM3C_VI_M2 = 9028,
-  PseudoVSM3C_VI_M4 = 9029,
-  PseudoVSM3C_VI_M8 = 9030,
-  PseudoVSM3C_VI_MF2 = 9031,
-  PseudoVSM3ME_VV_M1 = 9032,
-  PseudoVSM3ME_VV_M2 = 9033,
-  PseudoVSM3ME_VV_M4 = 9034,
-  PseudoVSM3ME_VV_M8 = 9035,
-  PseudoVSM3ME_VV_MF2 = 9036,
-  PseudoVSM4K_VI_M1 = 9037,
-  PseudoVSM4K_VI_M2 = 9038,
-  PseudoVSM4K_VI_M4 = 9039,
-  PseudoVSM4K_VI_M8 = 9040,
-  PseudoVSM4K_VI_MF2 = 9041,
-  PseudoVSM4R_VS_M1_M1 = 9042,
-  PseudoVSM4R_VS_M1_MF2 = 9043,
-  PseudoVSM4R_VS_M1_MF4 = 9044,
-  PseudoVSM4R_VS_M1_MF8 = 9045,
-  PseudoVSM4R_VS_M2_M1 = 9046,
-  PseudoVSM4R_VS_M2_M2 = 9047,
-  PseudoVSM4R_VS_M2_MF2 = 9048,
-  PseudoVSM4R_VS_M2_MF4 = 9049,
-  PseudoVSM4R_VS_M2_MF8 = 9050,
-  PseudoVSM4R_VS_M4_M1 = 9051,
-  PseudoVSM4R_VS_M4_M2 = 9052,
-  PseudoVSM4R_VS_M4_M4 = 9053,
-  PseudoVSM4R_VS_M4_MF2 = 9054,
-  PseudoVSM4R_VS_M4_MF4 = 9055,
-  PseudoVSM4R_VS_M4_MF8 = 9056,
-  PseudoVSM4R_VS_M8_M1 = 9057,
-  PseudoVSM4R_VS_M8_M2 = 9058,
-  PseudoVSM4R_VS_M8_M4 = 9059,
-  PseudoVSM4R_VS_M8_MF2 = 9060,
-  PseudoVSM4R_VS_M8_MF4 = 9061,
-  PseudoVSM4R_VS_M8_MF8 = 9062,
-  PseudoVSM4R_VS_MF2_MF2 = 9063,
-  PseudoVSM4R_VS_MF2_MF4 = 9064,
-  PseudoVSM4R_VS_MF2_MF8 = 9065,
-  PseudoVSM4R_VV_M1 = 9066,
-  PseudoVSM4R_VV_M2 = 9067,
-  PseudoVSM4R_VV_M4 = 9068,
-  PseudoVSM4R_VV_M8 = 9069,
-  PseudoVSM4R_VV_MF2 = 9070,
-  PseudoVSMUL_VV_M1 = 9071,
-  PseudoVSMUL_VV_M1_MASK = 9072,
-  PseudoVSMUL_VV_M2 = 9073,
-  PseudoVSMUL_VV_M2_MASK = 9074,
-  PseudoVSMUL_VV_M4 = 9075,
-  PseudoVSMUL_VV_M4_MASK = 9076,
-  PseudoVSMUL_VV_M8 = 9077,
-  PseudoVSMUL_VV_M8_MASK = 9078,
-  PseudoVSMUL_VV_MF2 = 9079,
-  PseudoVSMUL_VV_MF2_MASK = 9080,
-  PseudoVSMUL_VV_MF4 = 9081,
-  PseudoVSMUL_VV_MF4_MASK = 9082,
-  PseudoVSMUL_VV_MF8 = 9083,
-  PseudoVSMUL_VV_MF8_MASK = 9084,
-  PseudoVSMUL_VX_M1 = 9085,
-  PseudoVSMUL_VX_M1_MASK = 9086,
-  PseudoVSMUL_VX_M2 = 9087,
-  PseudoVSMUL_VX_M2_MASK = 9088,
-  PseudoVSMUL_VX_M4 = 9089,
-  PseudoVSMUL_VX_M4_MASK = 9090,
-  PseudoVSMUL_VX_M8 = 9091,
-  PseudoVSMUL_VX_M8_MASK = 9092,
-  PseudoVSMUL_VX_MF2 = 9093,
-  PseudoVSMUL_VX_MF2_MASK = 9094,
-  PseudoVSMUL_VX_MF4 = 9095,
-  PseudoVSMUL_VX_MF4_MASK = 9096,
-  PseudoVSMUL_VX_MF8 = 9097,
-  PseudoVSMUL_VX_MF8_MASK = 9098,
-  PseudoVSM_V_B1 = 9099,
-  PseudoVSM_V_B16 = 9100,
-  PseudoVSM_V_B2 = 9101,
-  PseudoVSM_V_B32 = 9102,
-  PseudoVSM_V_B4 = 9103,
-  PseudoVSM_V_B64 = 9104,
-  PseudoVSM_V_B8 = 9105,
-  PseudoVSOXEI16_V_M1_M1 = 9106,
-  PseudoVSOXEI16_V_M1_M1_MASK = 9107,
-  PseudoVSOXEI16_V_M1_M2 = 9108,
-  PseudoVSOXEI16_V_M1_M2_MASK = 9109,
-  PseudoVSOXEI16_V_M1_M4 = 9110,
-  PseudoVSOXEI16_V_M1_M4_MASK = 9111,
-  PseudoVSOXEI16_V_M1_MF2 = 9112,
-  PseudoVSOXEI16_V_M1_MF2_MASK = 9113,
-  PseudoVSOXEI16_V_M2_M1 = 9114,
-  PseudoVSOXEI16_V_M2_M1_MASK = 9115,
-  PseudoVSOXEI16_V_M2_M2 = 9116,
-  PseudoVSOXEI16_V_M2_M2_MASK = 9117,
-  PseudoVSOXEI16_V_M2_M4 = 9118,
-  PseudoVSOXEI16_V_M2_M4_MASK = 9119,
-  PseudoVSOXEI16_V_M2_M8 = 9120,
-  PseudoVSOXEI16_V_M2_M8_MASK = 9121,
-  PseudoVSOXEI16_V_M4_M2 = 9122,
-  PseudoVSOXEI16_V_M4_M2_MASK = 9123,
-  PseudoVSOXEI16_V_M4_M4 = 9124,
-  PseudoVSOXEI16_V_M4_M4_MASK = 9125,
-  PseudoVSOXEI16_V_M4_M8 = 9126,
-  PseudoVSOXEI16_V_M4_M8_MASK = 9127,
-  PseudoVSOXEI16_V_M8_M4 = 9128,
-  PseudoVSOXEI16_V_M8_M4_MASK = 9129,
-  PseudoVSOXEI16_V_M8_M8 = 9130,
-  PseudoVSOXEI16_V_M8_M8_MASK = 9131,
-  PseudoVSOXEI16_V_MF2_M1 = 9132,
-  PseudoVSOXEI16_V_MF2_M1_MASK = 9133,
-  PseudoVSOXEI16_V_MF2_M2 = 9134,
-  PseudoVSOXEI16_V_MF2_M2_MASK = 9135,
-  PseudoVSOXEI16_V_MF2_MF2 = 9136,
-  PseudoVSOXEI16_V_MF2_MF2_MASK = 9137,
-  PseudoVSOXEI16_V_MF2_MF4 = 9138,
-  PseudoVSOXEI16_V_MF2_MF4_MASK = 9139,
-  PseudoVSOXEI16_V_MF4_M1 = 9140,
-  PseudoVSOXEI16_V_MF4_M1_MASK = 9141,
-  PseudoVSOXEI16_V_MF4_MF2 = 9142,
-  PseudoVSOXEI16_V_MF4_MF2_MASK = 9143,
-  PseudoVSOXEI16_V_MF4_MF4 = 9144,
-  PseudoVSOXEI16_V_MF4_MF4_MASK = 9145,
-  PseudoVSOXEI16_V_MF4_MF8 = 9146,
-  PseudoVSOXEI16_V_MF4_MF8_MASK = 9147,
-  PseudoVSOXEI32_V_M1_M1 = 9148,
-  PseudoVSOXEI32_V_M1_M1_MASK = 9149,
-  PseudoVSOXEI32_V_M1_M2 = 9150,
-  PseudoVSOXEI32_V_M1_M2_MASK = 9151,
-  PseudoVSOXEI32_V_M1_MF2 = 9152,
-  PseudoVSOXEI32_V_M1_MF2_MASK = 9153,
-  PseudoVSOXEI32_V_M1_MF4 = 9154,
-  PseudoVSOXEI32_V_M1_MF4_MASK = 9155,
-  PseudoVSOXEI32_V_M2_M1 = 9156,
-  PseudoVSOXEI32_V_M2_M1_MASK = 9157,
-  PseudoVSOXEI32_V_M2_M2 = 9158,
-  PseudoVSOXEI32_V_M2_M2_MASK = 9159,
-  PseudoVSOXEI32_V_M2_M4 = 9160,
-  PseudoVSOXEI32_V_M2_M4_MASK = 9161,
-  PseudoVSOXEI32_V_M2_MF2 = 9162,
-  PseudoVSOXEI32_V_M2_MF2_MASK = 9163,
-  PseudoVSOXEI32_V_M4_M1 = 9164,
-  PseudoVSOXEI32_V_M4_M1_MASK = 9165,
-  PseudoVSOXEI32_V_M4_M2 = 9166,
-  PseudoVSOXEI32_V_M4_M2_MASK = 9167,
-  PseudoVSOXEI32_V_M4_M4 = 9168,
-  PseudoVSOXEI32_V_M4_M4_MASK = 9169,
-  PseudoVSOXEI32_V_M4_M8 = 9170,
-  PseudoVSOXEI32_V_M4_M8_MASK = 9171,
-  PseudoVSOXEI32_V_M8_M2 = 9172,
-  PseudoVSOXEI32_V_M8_M2_MASK = 9173,
-  PseudoVSOXEI32_V_M8_M4 = 9174,
-  PseudoVSOXEI32_V_M8_M4_MASK = 9175,
-  PseudoVSOXEI32_V_M8_M8 = 9176,
-  PseudoVSOXEI32_V_M8_M8_MASK = 9177,
-  PseudoVSOXEI32_V_MF2_M1 = 9178,
-  PseudoVSOXEI32_V_MF2_M1_MASK = 9179,
-  PseudoVSOXEI32_V_MF2_MF2 = 9180,
-  PseudoVSOXEI32_V_MF2_MF2_MASK = 9181,
-  PseudoVSOXEI32_V_MF2_MF4 = 9182,
-  PseudoVSOXEI32_V_MF2_MF4_MASK = 9183,
-  PseudoVSOXEI32_V_MF2_MF8 = 9184,
-  PseudoVSOXEI32_V_MF2_MF8_MASK = 9185,
-  PseudoVSOXEI64_V_M1_M1 = 9186,
-  PseudoVSOXEI64_V_M1_M1_MASK = 9187,
-  PseudoVSOXEI64_V_M1_MF2 = 9188,
-  PseudoVSOXEI64_V_M1_MF2_MASK = 9189,
-  PseudoVSOXEI64_V_M1_MF4 = 9190,
-  PseudoVSOXEI64_V_M1_MF4_MASK = 9191,
-  PseudoVSOXEI64_V_M1_MF8 = 9192,
-  PseudoVSOXEI64_V_M1_MF8_MASK = 9193,
-  PseudoVSOXEI64_V_M2_M1 = 9194,
-  PseudoVSOXEI64_V_M2_M1_MASK = 9195,
-  PseudoVSOXEI64_V_M2_M2 = 9196,
-  PseudoVSOXEI64_V_M2_M2_MASK = 9197,
-  PseudoVSOXEI64_V_M2_MF2 = 9198,
-  PseudoVSOXEI64_V_M2_MF2_MASK = 9199,
-  PseudoVSOXEI64_V_M2_MF4 = 9200,
-  PseudoVSOXEI64_V_M2_MF4_MASK = 9201,
-  PseudoVSOXEI64_V_M4_M1 = 9202,
-  PseudoVSOXEI64_V_M4_M1_MASK = 9203,
-  PseudoVSOXEI64_V_M4_M2 = 9204,
-  PseudoVSOXEI64_V_M4_M2_MASK = 9205,
-  PseudoVSOXEI64_V_M4_M4 = 9206,
-  PseudoVSOXEI64_V_M4_M4_MASK = 9207,
-  PseudoVSOXEI64_V_M4_MF2 = 9208,
-  PseudoVSOXEI64_V_M4_MF2_MASK = 9209,
-  PseudoVSOXEI64_V_M8_M1 = 9210,
-  PseudoVSOXEI64_V_M8_M1_MASK = 9211,
-  PseudoVSOXEI64_V_M8_M2 = 9212,
-  PseudoVSOXEI64_V_M8_M2_MASK = 9213,
-  PseudoVSOXEI64_V_M8_M4 = 9214,
-  PseudoVSOXEI64_V_M8_M4_MASK = 9215,
-  PseudoVSOXEI64_V_M8_M8 = 9216,
-  PseudoVSOXEI64_V_M8_M8_MASK = 9217,
-  PseudoVSOXEI8_V_M1_M1 = 9218,
-  PseudoVSOXEI8_V_M1_M1_MASK = 9219,
-  PseudoVSOXEI8_V_M1_M2 = 9220,
-  PseudoVSOXEI8_V_M1_M2_MASK = 9221,
-  PseudoVSOXEI8_V_M1_M4 = 9222,
-  PseudoVSOXEI8_V_M1_M4_MASK = 9223,
-  PseudoVSOXEI8_V_M1_M8 = 9224,
-  PseudoVSOXEI8_V_M1_M8_MASK = 9225,
-  PseudoVSOXEI8_V_M2_M2 = 9226,
-  PseudoVSOXEI8_V_M2_M2_MASK = 9227,
-  PseudoVSOXEI8_V_M2_M4 = 9228,
-  PseudoVSOXEI8_V_M2_M4_MASK = 9229,
-  PseudoVSOXEI8_V_M2_M8 = 9230,
-  PseudoVSOXEI8_V_M2_M8_MASK = 9231,
-  PseudoVSOXEI8_V_M4_M4 = 9232,
-  PseudoVSOXEI8_V_M4_M4_MASK = 9233,
-  PseudoVSOXEI8_V_M4_M8 = 9234,
-  PseudoVSOXEI8_V_M4_M8_MASK = 9235,
-  PseudoVSOXEI8_V_M8_M8 = 9236,
-  PseudoVSOXEI8_V_M8_M8_MASK = 9237,
-  PseudoVSOXEI8_V_MF2_M1 = 9238,
-  PseudoVSOXEI8_V_MF2_M1_MASK = 9239,
-  PseudoVSOXEI8_V_MF2_M2 = 9240,
-  PseudoVSOXEI8_V_MF2_M2_MASK = 9241,
-  PseudoVSOXEI8_V_MF2_M4 = 9242,
-  PseudoVSOXEI8_V_MF2_M4_MASK = 9243,
-  PseudoVSOXEI8_V_MF2_MF2 = 9244,
-  PseudoVSOXEI8_V_MF2_MF2_MASK = 9245,
-  PseudoVSOXEI8_V_MF4_M1 = 9246,
-  PseudoVSOXEI8_V_MF4_M1_MASK = 9247,
-  PseudoVSOXEI8_V_MF4_M2 = 9248,
-  PseudoVSOXEI8_V_MF4_M2_MASK = 9249,
-  PseudoVSOXEI8_V_MF4_MF2 = 9250,
-  PseudoVSOXEI8_V_MF4_MF2_MASK = 9251,
-  PseudoVSOXEI8_V_MF4_MF4 = 9252,
-  PseudoVSOXEI8_V_MF4_MF4_MASK = 9253,
-  PseudoVSOXEI8_V_MF8_M1 = 9254,
-  PseudoVSOXEI8_V_MF8_M1_MASK = 9255,
-  PseudoVSOXEI8_V_MF8_MF2 = 9256,
-  PseudoVSOXEI8_V_MF8_MF2_MASK = 9257,
-  PseudoVSOXEI8_V_MF8_MF4 = 9258,
-  PseudoVSOXEI8_V_MF8_MF4_MASK = 9259,
-  PseudoVSOXEI8_V_MF8_MF8 = 9260,
-  PseudoVSOXEI8_V_MF8_MF8_MASK = 9261,
-  PseudoVSOXSEG2EI16_V_M1_M1 = 9262,
-  PseudoVSOXSEG2EI16_V_M1_M1_MASK = 9263,
-  PseudoVSOXSEG2EI16_V_M1_M2 = 9264,
-  PseudoVSOXSEG2EI16_V_M1_M2_MASK = 9265,
-  PseudoVSOXSEG2EI16_V_M1_M4 = 9266,
-  PseudoVSOXSEG2EI16_V_M1_M4_MASK = 9267,
-  PseudoVSOXSEG2EI16_V_M1_MF2 = 9268,
-  PseudoVSOXSEG2EI16_V_M1_MF2_MASK = 9269,
-  PseudoVSOXSEG2EI16_V_M2_M1 = 9270,
-  PseudoVSOXSEG2EI16_V_M2_M1_MASK = 9271,
-  PseudoVSOXSEG2EI16_V_M2_M2 = 9272,
-  PseudoVSOXSEG2EI16_V_M2_M2_MASK = 9273,
-  PseudoVSOXSEG2EI16_V_M2_M4 = 9274,
-  PseudoVSOXSEG2EI16_V_M2_M4_MASK = 9275,
-  PseudoVSOXSEG2EI16_V_M4_M2 = 9276,
-  PseudoVSOXSEG2EI16_V_M4_M2_MASK = 9277,
-  PseudoVSOXSEG2EI16_V_M4_M4 = 9278,
-  PseudoVSOXSEG2EI16_V_M4_M4_MASK = 9279,
-  PseudoVSOXSEG2EI16_V_M8_M4 = 9280,
-  PseudoVSOXSEG2EI16_V_M8_M4_MASK = 9281,
-  PseudoVSOXSEG2EI16_V_MF2_M1 = 9282,
-  PseudoVSOXSEG2EI16_V_MF2_M1_MASK = 9283,
-  PseudoVSOXSEG2EI16_V_MF2_M2 = 9284,
-  PseudoVSOXSEG2EI16_V_MF2_M2_MASK = 9285,
-  PseudoVSOXSEG2EI16_V_MF2_MF2 = 9286,
-  PseudoVSOXSEG2EI16_V_MF2_MF2_MASK = 9287,
-  PseudoVSOXSEG2EI16_V_MF2_MF4 = 9288,
-  PseudoVSOXSEG2EI16_V_MF2_MF4_MASK = 9289,
-  PseudoVSOXSEG2EI16_V_MF4_M1 = 9290,
-  PseudoVSOXSEG2EI16_V_MF4_M1_MASK = 9291,
-  PseudoVSOXSEG2EI16_V_MF4_MF2 = 9292,
-  PseudoVSOXSEG2EI16_V_MF4_MF2_MASK = 9293,
-  PseudoVSOXSEG2EI16_V_MF4_MF4 = 9294,
-  PseudoVSOXSEG2EI16_V_MF4_MF4_MASK = 9295,
-  PseudoVSOXSEG2EI16_V_MF4_MF8 = 9296,
-  PseudoVSOXSEG2EI16_V_MF4_MF8_MASK = 9297,
-  PseudoVSOXSEG2EI32_V_M1_M1 = 9298,
-  PseudoVSOXSEG2EI32_V_M1_M1_MASK = 9299,
-  PseudoVSOXSEG2EI32_V_M1_M2 = 9300,
-  PseudoVSOXSEG2EI32_V_M1_M2_MASK = 9301,
-  PseudoVSOXSEG2EI32_V_M1_MF2 = 9302,
-  PseudoVSOXSEG2EI32_V_M1_MF2_MASK = 9303,
-  PseudoVSOXSEG2EI32_V_M1_MF4 = 9304,
-  PseudoVSOXSEG2EI32_V_M1_MF4_MASK = 9305,
-  PseudoVSOXSEG2EI32_V_M2_M1 = 9306,
-  PseudoVSOXSEG2EI32_V_M2_M1_MASK = 9307,
-  PseudoVSOXSEG2EI32_V_M2_M2 = 9308,
-  PseudoVSOXSEG2EI32_V_M2_M2_MASK = 9309,
-  PseudoVSOXSEG2EI32_V_M2_M4 = 9310,
-  PseudoVSOXSEG2EI32_V_M2_M4_MASK = 9311,
-  PseudoVSOXSEG2EI32_V_M2_MF2 = 9312,
-  PseudoVSOXSEG2EI32_V_M2_MF2_MASK = 9313,
-  PseudoVSOXSEG2EI32_V_M4_M1 = 9314,
-  PseudoVSOXSEG2EI32_V_M4_M1_MASK = 9315,
-  PseudoVSOXSEG2EI32_V_M4_M2 = 9316,
-  PseudoVSOXSEG2EI32_V_M4_M2_MASK = 9317,
-  PseudoVSOXSEG2EI32_V_M4_M4 = 9318,
-  PseudoVSOXSEG2EI32_V_M4_M4_MASK = 9319,
-  PseudoVSOXSEG2EI32_V_M8_M2 = 9320,
-  PseudoVSOXSEG2EI32_V_M8_M2_MASK = 9321,
-  PseudoVSOXSEG2EI32_V_M8_M4 = 9322,
-  PseudoVSOXSEG2EI32_V_M8_M4_MASK = 9323,
-  PseudoVSOXSEG2EI32_V_MF2_M1 = 9324,
-  PseudoVSOXSEG2EI32_V_MF2_M1_MASK = 9325,
-  PseudoVSOXSEG2EI32_V_MF2_MF2 = 9326,
-  PseudoVSOXSEG2EI32_V_MF2_MF2_MASK = 9327,
-  PseudoVSOXSEG2EI32_V_MF2_MF4 = 9328,
-  PseudoVSOXSEG2EI32_V_MF2_MF4_MASK = 9329,
-  PseudoVSOXSEG2EI32_V_MF2_MF8 = 9330,
-  PseudoVSOXSEG2EI32_V_MF2_MF8_MASK = 9331,
-  PseudoVSOXSEG2EI64_V_M1_M1 = 9332,
-  PseudoVSOXSEG2EI64_V_M1_M1_MASK = 9333,
-  PseudoVSOXSEG2EI64_V_M1_MF2 = 9334,
-  PseudoVSOXSEG2EI64_V_M1_MF2_MASK = 9335,
-  PseudoVSOXSEG2EI64_V_M1_MF4 = 9336,
-  PseudoVSOXSEG2EI64_V_M1_MF4_MASK = 9337,
-  PseudoVSOXSEG2EI64_V_M1_MF8 = 9338,
-  PseudoVSOXSEG2EI64_V_M1_MF8_MASK = 9339,
-  PseudoVSOXSEG2EI64_V_M2_M1 = 9340,
-  PseudoVSOXSEG2EI64_V_M2_M1_MASK = 9341,
-  PseudoVSOXSEG2EI64_V_M2_M2 = 9342,
-  PseudoVSOXSEG2EI64_V_M2_M2_MASK = 9343,
-  PseudoVSOXSEG2EI64_V_M2_MF2 = 9344,
-  PseudoVSOXSEG2EI64_V_M2_MF2_MASK = 9345,
-  PseudoVSOXSEG2EI64_V_M2_MF4 = 9346,
-  PseudoVSOXSEG2EI64_V_M2_MF4_MASK = 9347,
-  PseudoVSOXSEG2EI64_V_M4_M1 = 9348,
-  PseudoVSOXSEG2EI64_V_M4_M1_MASK = 9349,
-  PseudoVSOXSEG2EI64_V_M4_M2 = 9350,
-  PseudoVSOXSEG2EI64_V_M4_M2_MASK = 9351,
-  PseudoVSOXSEG2EI64_V_M4_M4 = 9352,
-  PseudoVSOXSEG2EI64_V_M4_M4_MASK = 9353,
-  PseudoVSOXSEG2EI64_V_M4_MF2 = 9354,
-  PseudoVSOXSEG2EI64_V_M4_MF2_MASK = 9355,
-  PseudoVSOXSEG2EI64_V_M8_M1 = 9356,
-  PseudoVSOXSEG2EI64_V_M8_M1_MASK = 9357,
-  PseudoVSOXSEG2EI64_V_M8_M2 = 9358,
-  PseudoVSOXSEG2EI64_V_M8_M2_MASK = 9359,
-  PseudoVSOXSEG2EI64_V_M8_M4 = 9360,
-  PseudoVSOXSEG2EI64_V_M8_M4_MASK = 9361,
-  PseudoVSOXSEG2EI8_V_M1_M1 = 9362,
-  PseudoVSOXSEG2EI8_V_M1_M1_MASK = 9363,
-  PseudoVSOXSEG2EI8_V_M1_M2 = 9364,
-  PseudoVSOXSEG2EI8_V_M1_M2_MASK = 9365,
-  PseudoVSOXSEG2EI8_V_M1_M4 = 9366,
-  PseudoVSOXSEG2EI8_V_M1_M4_MASK = 9367,
-  PseudoVSOXSEG2EI8_V_M2_M2 = 9368,
-  PseudoVSOXSEG2EI8_V_M2_M2_MASK = 9369,
-  PseudoVSOXSEG2EI8_V_M2_M4 = 9370,
-  PseudoVSOXSEG2EI8_V_M2_M4_MASK = 9371,
-  PseudoVSOXSEG2EI8_V_M4_M4 = 9372,
-  PseudoVSOXSEG2EI8_V_M4_M4_MASK = 9373,
-  PseudoVSOXSEG2EI8_V_MF2_M1 = 9374,
-  PseudoVSOXSEG2EI8_V_MF2_M1_MASK = 9375,
-  PseudoVSOXSEG2EI8_V_MF2_M2 = 9376,
-  PseudoVSOXSEG2EI8_V_MF2_M2_MASK = 9377,
-  PseudoVSOXSEG2EI8_V_MF2_M4 = 9378,
-  PseudoVSOXSEG2EI8_V_MF2_M4_MASK = 9379,
-  PseudoVSOXSEG2EI8_V_MF2_MF2 = 9380,
-  PseudoVSOXSEG2EI8_V_MF2_MF2_MASK = 9381,
-  PseudoVSOXSEG2EI8_V_MF4_M1 = 9382,
-  PseudoVSOXSEG2EI8_V_MF4_M1_MASK = 9383,
-  PseudoVSOXSEG2EI8_V_MF4_M2 = 9384,
-  PseudoVSOXSEG2EI8_V_MF4_M2_MASK = 9385,
-  PseudoVSOXSEG2EI8_V_MF4_MF2 = 9386,
-  PseudoVSOXSEG2EI8_V_MF4_MF2_MASK = 9387,
-  PseudoVSOXSEG2EI8_V_MF4_MF4 = 9388,
-  PseudoVSOXSEG2EI8_V_MF4_MF4_MASK = 9389,
-  PseudoVSOXSEG2EI8_V_MF8_M1 = 9390,
-  PseudoVSOXSEG2EI8_V_MF8_M1_MASK = 9391,
-  PseudoVSOXSEG2EI8_V_MF8_MF2 = 9392,
-  PseudoVSOXSEG2EI8_V_MF8_MF2_MASK = 9393,
-  PseudoVSOXSEG2EI8_V_MF8_MF4 = 9394,
-  PseudoVSOXSEG2EI8_V_MF8_MF4_MASK = 9395,
-  PseudoVSOXSEG2EI8_V_MF8_MF8 = 9396,
-  PseudoVSOXSEG2EI8_V_MF8_MF8_MASK = 9397,
-  PseudoVSOXSEG3EI16_V_M1_M1 = 9398,
-  PseudoVSOXSEG3EI16_V_M1_M1_MASK = 9399,
-  PseudoVSOXSEG3EI16_V_M1_M2 = 9400,
-  PseudoVSOXSEG3EI16_V_M1_M2_MASK = 9401,
-  PseudoVSOXSEG3EI16_V_M1_MF2 = 9402,
-  PseudoVSOXSEG3EI16_V_M1_MF2_MASK = 9403,
-  PseudoVSOXSEG3EI16_V_M2_M1 = 9404,
-  PseudoVSOXSEG3EI16_V_M2_M1_MASK = 9405,
-  PseudoVSOXSEG3EI16_V_M2_M2 = 9406,
-  PseudoVSOXSEG3EI16_V_M2_M2_MASK = 9407,
-  PseudoVSOXSEG3EI16_V_M4_M2 = 9408,
-  PseudoVSOXSEG3EI16_V_M4_M2_MASK = 9409,
-  PseudoVSOXSEG3EI16_V_MF2_M1 = 9410,
-  PseudoVSOXSEG3EI16_V_MF2_M1_MASK = 9411,
-  PseudoVSOXSEG3EI16_V_MF2_M2 = 9412,
-  PseudoVSOXSEG3EI16_V_MF2_M2_MASK = 9413,
-  PseudoVSOXSEG3EI16_V_MF2_MF2 = 9414,
-  PseudoVSOXSEG3EI16_V_MF2_MF2_MASK = 9415,
-  PseudoVSOXSEG3EI16_V_MF2_MF4 = 9416,
-  PseudoVSOXSEG3EI16_V_MF2_MF4_MASK = 9417,
-  PseudoVSOXSEG3EI16_V_MF4_M1 = 9418,
-  PseudoVSOXSEG3EI16_V_MF4_M1_MASK = 9419,
-  PseudoVSOXSEG3EI16_V_MF4_MF2 = 9420,
-  PseudoVSOXSEG3EI16_V_MF4_MF2_MASK = 9421,
-  PseudoVSOXSEG3EI16_V_MF4_MF4 = 9422,
-  PseudoVSOXSEG3EI16_V_MF4_MF4_MASK = 9423,
-  PseudoVSOXSEG3EI16_V_MF4_MF8 = 9424,
-  PseudoVSOXSEG3EI16_V_MF4_MF8_MASK = 9425,
-  PseudoVSOXSEG3EI32_V_M1_M1 = 9426,
-  PseudoVSOXSEG3EI32_V_M1_M1_MASK = 9427,
-  PseudoVSOXSEG3EI32_V_M1_M2 = 9428,
-  PseudoVSOXSEG3EI32_V_M1_M2_MASK = 9429,
-  PseudoVSOXSEG3EI32_V_M1_MF2 = 9430,
-  PseudoVSOXSEG3EI32_V_M1_MF2_MASK = 9431,
-  PseudoVSOXSEG3EI32_V_M1_MF4 = 9432,
-  PseudoVSOXSEG3EI32_V_M1_MF4_MASK = 9433,
-  PseudoVSOXSEG3EI32_V_M2_M1 = 9434,
-  PseudoVSOXSEG3EI32_V_M2_M1_MASK = 9435,
-  PseudoVSOXSEG3EI32_V_M2_M2 = 9436,
-  PseudoVSOXSEG3EI32_V_M2_M2_MASK = 9437,
-  PseudoVSOXSEG3EI32_V_M2_MF2 = 9438,
-  PseudoVSOXSEG3EI32_V_M2_MF2_MASK = 9439,
-  PseudoVSOXSEG3EI32_V_M4_M1 = 9440,
-  PseudoVSOXSEG3EI32_V_M4_M1_MASK = 9441,
-  PseudoVSOXSEG3EI32_V_M4_M2 = 9442,
-  PseudoVSOXSEG3EI32_V_M4_M2_MASK = 9443,
-  PseudoVSOXSEG3EI32_V_M8_M2 = 9444,
-  PseudoVSOXSEG3EI32_V_M8_M2_MASK = 9445,
-  PseudoVSOXSEG3EI32_V_MF2_M1 = 9446,
-  PseudoVSOXSEG3EI32_V_MF2_M1_MASK = 9447,
-  PseudoVSOXSEG3EI32_V_MF2_MF2 = 9448,
-  PseudoVSOXSEG3EI32_V_MF2_MF2_MASK = 9449,
-  PseudoVSOXSEG3EI32_V_MF2_MF4 = 9450,
-  PseudoVSOXSEG3EI32_V_MF2_MF4_MASK = 9451,
-  PseudoVSOXSEG3EI32_V_MF2_MF8 = 9452,
-  PseudoVSOXSEG3EI32_V_MF2_MF8_MASK = 9453,
-  PseudoVSOXSEG3EI64_V_M1_M1 = 9454,
-  PseudoVSOXSEG3EI64_V_M1_M1_MASK = 9455,
-  PseudoVSOXSEG3EI64_V_M1_MF2 = 9456,
-  PseudoVSOXSEG3EI64_V_M1_MF2_MASK = 9457,
-  PseudoVSOXSEG3EI64_V_M1_MF4 = 9458,
-  PseudoVSOXSEG3EI64_V_M1_MF4_MASK = 9459,
-  PseudoVSOXSEG3EI64_V_M1_MF8 = 9460,
-  PseudoVSOXSEG3EI64_V_M1_MF8_MASK = 9461,
-  PseudoVSOXSEG3EI64_V_M2_M1 = 9462,
-  PseudoVSOXSEG3EI64_V_M2_M1_MASK = 9463,
-  PseudoVSOXSEG3EI64_V_M2_M2 = 9464,
-  PseudoVSOXSEG3EI64_V_M2_M2_MASK = 9465,
-  PseudoVSOXSEG3EI64_V_M2_MF2 = 9466,
-  PseudoVSOXSEG3EI64_V_M2_MF2_MASK = 9467,
-  PseudoVSOXSEG3EI64_V_M2_MF4 = 9468,
-  PseudoVSOXSEG3EI64_V_M2_MF4_MASK = 9469,
-  PseudoVSOXSEG3EI64_V_M4_M1 = 9470,
-  PseudoVSOXSEG3EI64_V_M4_M1_MASK = 9471,
-  PseudoVSOXSEG3EI64_V_M4_M2 = 9472,
-  PseudoVSOXSEG3EI64_V_M4_M2_MASK = 9473,
-  PseudoVSOXSEG3EI64_V_M4_MF2 = 9474,
-  PseudoVSOXSEG3EI64_V_M4_MF2_MASK = 9475,
-  PseudoVSOXSEG3EI64_V_M8_M1 = 9476,
-  PseudoVSOXSEG3EI64_V_M8_M1_MASK = 9477,
-  PseudoVSOXSEG3EI64_V_M8_M2 = 9478,
-  PseudoVSOXSEG3EI64_V_M8_M2_MASK = 9479,
-  PseudoVSOXSEG3EI8_V_M1_M1 = 9480,
-  PseudoVSOXSEG3EI8_V_M1_M1_MASK = 9481,
-  PseudoVSOXSEG3EI8_V_M1_M2 = 9482,
-  PseudoVSOXSEG3EI8_V_M1_M2_MASK = 9483,
-  PseudoVSOXSEG3EI8_V_M2_M2 = 9484,
-  PseudoVSOXSEG3EI8_V_M2_M2_MASK = 9485,
-  PseudoVSOXSEG3EI8_V_MF2_M1 = 9486,
-  PseudoVSOXSEG3EI8_V_MF2_M1_MASK = 9487,
-  PseudoVSOXSEG3EI8_V_MF2_M2 = 9488,
-  PseudoVSOXSEG3EI8_V_MF2_M2_MASK = 9489,
-  PseudoVSOXSEG3EI8_V_MF2_MF2 = 9490,
-  PseudoVSOXSEG3EI8_V_MF2_MF2_MASK = 9491,
-  PseudoVSOXSEG3EI8_V_MF4_M1 = 9492,
-  PseudoVSOXSEG3EI8_V_MF4_M1_MASK = 9493,
-  PseudoVSOXSEG3EI8_V_MF4_M2 = 9494,
-  PseudoVSOXSEG3EI8_V_MF4_M2_MASK = 9495,
-  PseudoVSOXSEG3EI8_V_MF4_MF2 = 9496,
-  PseudoVSOXSEG3EI8_V_MF4_MF2_MASK = 9497,
-  PseudoVSOXSEG3EI8_V_MF4_MF4 = 9498,
-  PseudoVSOXSEG3EI8_V_MF4_MF4_MASK = 9499,
-  PseudoVSOXSEG3EI8_V_MF8_M1 = 9500,
-  PseudoVSOXSEG3EI8_V_MF8_M1_MASK = 9501,
-  PseudoVSOXSEG3EI8_V_MF8_MF2 = 9502,
-  PseudoVSOXSEG3EI8_V_MF8_MF2_MASK = 9503,
-  PseudoVSOXSEG3EI8_V_MF8_MF4 = 9504,
-  PseudoVSOXSEG3EI8_V_MF8_MF4_MASK = 9505,
-  PseudoVSOXSEG3EI8_V_MF8_MF8 = 9506,
-  PseudoVSOXSEG3EI8_V_MF8_MF8_MASK = 9507,
-  PseudoVSOXSEG4EI16_V_M1_M1 = 9508,
-  PseudoVSOXSEG4EI16_V_M1_M1_MASK = 9509,
-  PseudoVSOXSEG4EI16_V_M1_M2 = 9510,
-  PseudoVSOXSEG4EI16_V_M1_M2_MASK = 9511,
-  PseudoVSOXSEG4EI16_V_M1_MF2 = 9512,
-  PseudoVSOXSEG4EI16_V_M1_MF2_MASK = 9513,
-  PseudoVSOXSEG4EI16_V_M2_M1 = 9514,
-  PseudoVSOXSEG4EI16_V_M2_M1_MASK = 9515,
-  PseudoVSOXSEG4EI16_V_M2_M2 = 9516,
-  PseudoVSOXSEG4EI16_V_M2_M2_MASK = 9517,
-  PseudoVSOXSEG4EI16_V_M4_M2 = 9518,
-  PseudoVSOXSEG4EI16_V_M4_M2_MASK = 9519,
-  PseudoVSOXSEG4EI16_V_MF2_M1 = 9520,
-  PseudoVSOXSEG4EI16_V_MF2_M1_MASK = 9521,
-  PseudoVSOXSEG4EI16_V_MF2_M2 = 9522,
-  PseudoVSOXSEG4EI16_V_MF2_M2_MASK = 9523,
-  PseudoVSOXSEG4EI16_V_MF2_MF2 = 9524,
-  PseudoVSOXSEG4EI16_V_MF2_MF2_MASK = 9525,
-  PseudoVSOXSEG4EI16_V_MF2_MF4 = 9526,
-  PseudoVSOXSEG4EI16_V_MF2_MF4_MASK = 9527,
-  PseudoVSOXSEG4EI16_V_MF4_M1 = 9528,
-  PseudoVSOXSEG4EI16_V_MF4_M1_MASK = 9529,
-  PseudoVSOXSEG4EI16_V_MF4_MF2 = 9530,
-  PseudoVSOXSEG4EI16_V_MF4_MF2_MASK = 9531,
-  PseudoVSOXSEG4EI16_V_MF4_MF4 = 9532,
-  PseudoVSOXSEG4EI16_V_MF4_MF4_MASK = 9533,
-  PseudoVSOXSEG4EI16_V_MF4_MF8 = 9534,
-  PseudoVSOXSEG4EI16_V_MF4_MF8_MASK = 9535,
-  PseudoVSOXSEG4EI32_V_M1_M1 = 9536,
-  PseudoVSOXSEG4EI32_V_M1_M1_MASK = 9537,
-  PseudoVSOXSEG4EI32_V_M1_M2 = 9538,
-  PseudoVSOXSEG4EI32_V_M1_M2_MASK = 9539,
-  PseudoVSOXSEG4EI32_V_M1_MF2 = 9540,
-  PseudoVSOXSEG4EI32_V_M1_MF2_MASK = 9541,
-  PseudoVSOXSEG4EI32_V_M1_MF4 = 9542,
-  PseudoVSOXSEG4EI32_V_M1_MF4_MASK = 9543,
-  PseudoVSOXSEG4EI32_V_M2_M1 = 9544,
-  PseudoVSOXSEG4EI32_V_M2_M1_MASK = 9545,
-  PseudoVSOXSEG4EI32_V_M2_M2 = 9546,
-  PseudoVSOXSEG4EI32_V_M2_M2_MASK = 9547,
-  PseudoVSOXSEG4EI32_V_M2_MF2 = 9548,
-  PseudoVSOXSEG4EI32_V_M2_MF2_MASK = 9549,
-  PseudoVSOXSEG4EI32_V_M4_M1 = 9550,
-  PseudoVSOXSEG4EI32_V_M4_M1_MASK = 9551,
-  PseudoVSOXSEG4EI32_V_M4_M2 = 9552,
-  PseudoVSOXSEG4EI32_V_M4_M2_MASK = 9553,
-  PseudoVSOXSEG4EI32_V_M8_M2 = 9554,
-  PseudoVSOXSEG4EI32_V_M8_M2_MASK = 9555,
-  PseudoVSOXSEG4EI32_V_MF2_M1 = 9556,
-  PseudoVSOXSEG4EI32_V_MF2_M1_MASK = 9557,
-  PseudoVSOXSEG4EI32_V_MF2_MF2 = 9558,
-  PseudoVSOXSEG4EI32_V_MF2_MF2_MASK = 9559,
-  PseudoVSOXSEG4EI32_V_MF2_MF4 = 9560,
-  PseudoVSOXSEG4EI32_V_MF2_MF4_MASK = 9561,
-  PseudoVSOXSEG4EI32_V_MF2_MF8 = 9562,
-  PseudoVSOXSEG4EI32_V_MF2_MF8_MASK = 9563,
-  PseudoVSOXSEG4EI64_V_M1_M1 = 9564,
-  PseudoVSOXSEG4EI64_V_M1_M1_MASK = 9565,
-  PseudoVSOXSEG4EI64_V_M1_MF2 = 9566,
-  PseudoVSOXSEG4EI64_V_M1_MF2_MASK = 9567,
-  PseudoVSOXSEG4EI64_V_M1_MF4 = 9568,
-  PseudoVSOXSEG4EI64_V_M1_MF4_MASK = 9569,
-  PseudoVSOXSEG4EI64_V_M1_MF8 = 9570,
-  PseudoVSOXSEG4EI64_V_M1_MF8_MASK = 9571,
-  PseudoVSOXSEG4EI64_V_M2_M1 = 9572,
-  PseudoVSOXSEG4EI64_V_M2_M1_MASK = 9573,
-  PseudoVSOXSEG4EI64_V_M2_M2 = 9574,
-  PseudoVSOXSEG4EI64_V_M2_M2_MASK = 9575,
-  PseudoVSOXSEG4EI64_V_M2_MF2 = 9576,
-  PseudoVSOXSEG4EI64_V_M2_MF2_MASK = 9577,
-  PseudoVSOXSEG4EI64_V_M2_MF4 = 9578,
-  PseudoVSOXSEG4EI64_V_M2_MF4_MASK = 9579,
-  PseudoVSOXSEG4EI64_V_M4_M1 = 9580,
-  PseudoVSOXSEG4EI64_V_M4_M1_MASK = 9581,
-  PseudoVSOXSEG4EI64_V_M4_M2 = 9582,
-  PseudoVSOXSEG4EI64_V_M4_M2_MASK = 9583,
-  PseudoVSOXSEG4EI64_V_M4_MF2 = 9584,
-  PseudoVSOXSEG4EI64_V_M4_MF2_MASK = 9585,
-  PseudoVSOXSEG4EI64_V_M8_M1 = 9586,
-  PseudoVSOXSEG4EI64_V_M8_M1_MASK = 9587,
-  PseudoVSOXSEG4EI64_V_M8_M2 = 9588,
-  PseudoVSOXSEG4EI64_V_M8_M2_MASK = 9589,
-  PseudoVSOXSEG4EI8_V_M1_M1 = 9590,
-  PseudoVSOXSEG4EI8_V_M1_M1_MASK = 9591,
-  PseudoVSOXSEG4EI8_V_M1_M2 = 9592,
-  PseudoVSOXSEG4EI8_V_M1_M2_MASK = 9593,
-  PseudoVSOXSEG4EI8_V_M2_M2 = 9594,
-  PseudoVSOXSEG4EI8_V_M2_M2_MASK = 9595,
-  PseudoVSOXSEG4EI8_V_MF2_M1 = 9596,
-  PseudoVSOXSEG4EI8_V_MF2_M1_MASK = 9597,
-  PseudoVSOXSEG4EI8_V_MF2_M2 = 9598,
-  PseudoVSOXSEG4EI8_V_MF2_M2_MASK = 9599,
-  PseudoVSOXSEG4EI8_V_MF2_MF2 = 9600,
-  PseudoVSOXSEG4EI8_V_MF2_MF2_MASK = 9601,
-  PseudoVSOXSEG4EI8_V_MF4_M1 = 9602,
-  PseudoVSOXSEG4EI8_V_MF4_M1_MASK = 9603,
-  PseudoVSOXSEG4EI8_V_MF4_M2 = 9604,
-  PseudoVSOXSEG4EI8_V_MF4_M2_MASK = 9605,
-  PseudoVSOXSEG4EI8_V_MF4_MF2 = 9606,
-  PseudoVSOXSEG4EI8_V_MF4_MF2_MASK = 9607,
-  PseudoVSOXSEG4EI8_V_MF4_MF4 = 9608,
-  PseudoVSOXSEG4EI8_V_MF4_MF4_MASK = 9609,
-  PseudoVSOXSEG4EI8_V_MF8_M1 = 9610,
-  PseudoVSOXSEG4EI8_V_MF8_M1_MASK = 9611,
-  PseudoVSOXSEG4EI8_V_MF8_MF2 = 9612,
-  PseudoVSOXSEG4EI8_V_MF8_MF2_MASK = 9613,
-  PseudoVSOXSEG4EI8_V_MF8_MF4 = 9614,
-  PseudoVSOXSEG4EI8_V_MF8_MF4_MASK = 9615,
-  PseudoVSOXSEG4EI8_V_MF8_MF8 = 9616,
-  PseudoVSOXSEG4EI8_V_MF8_MF8_MASK = 9617,
-  PseudoVSOXSEG5EI16_V_M1_M1 = 9618,
-  PseudoVSOXSEG5EI16_V_M1_M1_MASK = 9619,
-  PseudoVSOXSEG5EI16_V_M1_MF2 = 9620,
-  PseudoVSOXSEG5EI16_V_M1_MF2_MASK = 9621,
-  PseudoVSOXSEG5EI16_V_M2_M1 = 9622,
-  PseudoVSOXSEG5EI16_V_M2_M1_MASK = 9623,
-  PseudoVSOXSEG5EI16_V_MF2_M1 = 9624,
-  PseudoVSOXSEG5EI16_V_MF2_M1_MASK = 9625,
-  PseudoVSOXSEG5EI16_V_MF2_MF2 = 9626,
-  PseudoVSOXSEG5EI16_V_MF2_MF2_MASK = 9627,
-  PseudoVSOXSEG5EI16_V_MF2_MF4 = 9628,
-  PseudoVSOXSEG5EI16_V_MF2_MF4_MASK = 9629,
-  PseudoVSOXSEG5EI16_V_MF4_M1 = 9630,
-  PseudoVSOXSEG5EI16_V_MF4_M1_MASK = 9631,
-  PseudoVSOXSEG5EI16_V_MF4_MF2 = 9632,
-  PseudoVSOXSEG5EI16_V_MF4_MF2_MASK = 9633,
-  PseudoVSOXSEG5EI16_V_MF4_MF4 = 9634,
-  PseudoVSOXSEG5EI16_V_MF4_MF4_MASK = 9635,
-  PseudoVSOXSEG5EI16_V_MF4_MF8 = 9636,
-  PseudoVSOXSEG5EI16_V_MF4_MF8_MASK = 9637,
-  PseudoVSOXSEG5EI32_V_M1_M1 = 9638,
-  PseudoVSOXSEG5EI32_V_M1_M1_MASK = 9639,
-  PseudoVSOXSEG5EI32_V_M1_MF2 = 9640,
-  PseudoVSOXSEG5EI32_V_M1_MF2_MASK = 9641,
-  PseudoVSOXSEG5EI32_V_M1_MF4 = 9642,
-  PseudoVSOXSEG5EI32_V_M1_MF4_MASK = 9643,
-  PseudoVSOXSEG5EI32_V_M2_M1 = 9644,
-  PseudoVSOXSEG5EI32_V_M2_M1_MASK = 9645,
-  PseudoVSOXSEG5EI32_V_M2_MF2 = 9646,
-  PseudoVSOXSEG5EI32_V_M2_MF2_MASK = 9647,
-  PseudoVSOXSEG5EI32_V_M4_M1 = 9648,
-  PseudoVSOXSEG5EI32_V_M4_M1_MASK = 9649,
-  PseudoVSOXSEG5EI32_V_MF2_M1 = 9650,
-  PseudoVSOXSEG5EI32_V_MF2_M1_MASK = 9651,
-  PseudoVSOXSEG5EI32_V_MF2_MF2 = 9652,
-  PseudoVSOXSEG5EI32_V_MF2_MF2_MASK = 9653,
-  PseudoVSOXSEG5EI32_V_MF2_MF4 = 9654,
-  PseudoVSOXSEG5EI32_V_MF2_MF4_MASK = 9655,
-  PseudoVSOXSEG5EI32_V_MF2_MF8 = 9656,
-  PseudoVSOXSEG5EI32_V_MF2_MF8_MASK = 9657,
-  PseudoVSOXSEG5EI64_V_M1_M1 = 9658,
-  PseudoVSOXSEG5EI64_V_M1_M1_MASK = 9659,
-  PseudoVSOXSEG5EI64_V_M1_MF2 = 9660,
-  PseudoVSOXSEG5EI64_V_M1_MF2_MASK = 9661,
-  PseudoVSOXSEG5EI64_V_M1_MF4 = 9662,
-  PseudoVSOXSEG5EI64_V_M1_MF4_MASK = 9663,
-  PseudoVSOXSEG5EI64_V_M1_MF8 = 9664,
-  PseudoVSOXSEG5EI64_V_M1_MF8_MASK = 9665,
-  PseudoVSOXSEG5EI64_V_M2_M1 = 9666,
-  PseudoVSOXSEG5EI64_V_M2_M1_MASK = 9667,
-  PseudoVSOXSEG5EI64_V_M2_MF2 = 9668,
-  PseudoVSOXSEG5EI64_V_M2_MF2_MASK = 9669,
-  PseudoVSOXSEG5EI64_V_M2_MF4 = 9670,
-  PseudoVSOXSEG5EI64_V_M2_MF4_MASK = 9671,
-  PseudoVSOXSEG5EI64_V_M4_M1 = 9672,
-  PseudoVSOXSEG5EI64_V_M4_M1_MASK = 9673,
-  PseudoVSOXSEG5EI64_V_M4_MF2 = 9674,
-  PseudoVSOXSEG5EI64_V_M4_MF2_MASK = 9675,
-  PseudoVSOXSEG5EI64_V_M8_M1 = 9676,
-  PseudoVSOXSEG5EI64_V_M8_M1_MASK = 9677,
-  PseudoVSOXSEG5EI8_V_M1_M1 = 9678,
-  PseudoVSOXSEG5EI8_V_M1_M1_MASK = 9679,
-  PseudoVSOXSEG5EI8_V_MF2_M1 = 9680,
-  PseudoVSOXSEG5EI8_V_MF2_M1_MASK = 9681,
-  PseudoVSOXSEG5EI8_V_MF2_MF2 = 9682,
-  PseudoVSOXSEG5EI8_V_MF2_MF2_MASK = 9683,
-  PseudoVSOXSEG5EI8_V_MF4_M1 = 9684,
-  PseudoVSOXSEG5EI8_V_MF4_M1_MASK = 9685,
-  PseudoVSOXSEG5EI8_V_MF4_MF2 = 9686,
-  PseudoVSOXSEG5EI8_V_MF4_MF2_MASK = 9687,
-  PseudoVSOXSEG5EI8_V_MF4_MF4 = 9688,
-  PseudoVSOXSEG5EI8_V_MF4_MF4_MASK = 9689,
-  PseudoVSOXSEG5EI8_V_MF8_M1 = 9690,
-  PseudoVSOXSEG5EI8_V_MF8_M1_MASK = 9691,
-  PseudoVSOXSEG5EI8_V_MF8_MF2 = 9692,
-  PseudoVSOXSEG5EI8_V_MF8_MF2_MASK = 9693,
-  PseudoVSOXSEG5EI8_V_MF8_MF4 = 9694,
-  PseudoVSOXSEG5EI8_V_MF8_MF4_MASK = 9695,
-  PseudoVSOXSEG5EI8_V_MF8_MF8 = 9696,
-  PseudoVSOXSEG5EI8_V_MF8_MF8_MASK = 9697,
-  PseudoVSOXSEG6EI16_V_M1_M1 = 9698,
-  PseudoVSOXSEG6EI16_V_M1_M1_MASK = 9699,
-  PseudoVSOXSEG6EI16_V_M1_MF2 = 9700,
-  PseudoVSOXSEG6EI16_V_M1_MF2_MASK = 9701,
-  PseudoVSOXSEG6EI16_V_M2_M1 = 9702,
-  PseudoVSOXSEG6EI16_V_M2_M1_MASK = 9703,
-  PseudoVSOXSEG6EI16_V_MF2_M1 = 9704,
-  PseudoVSOXSEG6EI16_V_MF2_M1_MASK = 9705,
-  PseudoVSOXSEG6EI16_V_MF2_MF2 = 9706,
-  PseudoVSOXSEG6EI16_V_MF2_MF2_MASK = 9707,
-  PseudoVSOXSEG6EI16_V_MF2_MF4 = 9708,
-  PseudoVSOXSEG6EI16_V_MF2_MF4_MASK = 9709,
-  PseudoVSOXSEG6EI16_V_MF4_M1 = 9710,
-  PseudoVSOXSEG6EI16_V_MF4_M1_MASK = 9711,
-  PseudoVSOXSEG6EI16_V_MF4_MF2 = 9712,
-  PseudoVSOXSEG6EI16_V_MF4_MF2_MASK = 9713,
-  PseudoVSOXSEG6EI16_V_MF4_MF4 = 9714,
-  PseudoVSOXSEG6EI16_V_MF4_MF4_MASK = 9715,
-  PseudoVSOXSEG6EI16_V_MF4_MF8 = 9716,
-  PseudoVSOXSEG6EI16_V_MF4_MF8_MASK = 9717,
-  PseudoVSOXSEG6EI32_V_M1_M1 = 9718,
-  PseudoVSOXSEG6EI32_V_M1_M1_MASK = 9719,
-  PseudoVSOXSEG6EI32_V_M1_MF2 = 9720,
-  PseudoVSOXSEG6EI32_V_M1_MF2_MASK = 9721,
-  PseudoVSOXSEG6EI32_V_M1_MF4 = 9722,
-  PseudoVSOXSEG6EI32_V_M1_MF4_MASK = 9723,
-  PseudoVSOXSEG6EI32_V_M2_M1 = 9724,
-  PseudoVSOXSEG6EI32_V_M2_M1_MASK = 9725,
-  PseudoVSOXSEG6EI32_V_M2_MF2 = 9726,
-  PseudoVSOXSEG6EI32_V_M2_MF2_MASK = 9727,
-  PseudoVSOXSEG6EI32_V_M4_M1 = 9728,
-  PseudoVSOXSEG6EI32_V_M4_M1_MASK = 9729,
-  PseudoVSOXSEG6EI32_V_MF2_M1 = 9730,
-  PseudoVSOXSEG6EI32_V_MF2_M1_MASK = 9731,
-  PseudoVSOXSEG6EI32_V_MF2_MF2 = 9732,
-  PseudoVSOXSEG6EI32_V_MF2_MF2_MASK = 9733,
-  PseudoVSOXSEG6EI32_V_MF2_MF4 = 9734,
-  PseudoVSOXSEG6EI32_V_MF2_MF4_MASK = 9735,
-  PseudoVSOXSEG6EI32_V_MF2_MF8 = 9736,
-  PseudoVSOXSEG6EI32_V_MF2_MF8_MASK = 9737,
-  PseudoVSOXSEG6EI64_V_M1_M1 = 9738,
-  PseudoVSOXSEG6EI64_V_M1_M1_MASK = 9739,
-  PseudoVSOXSEG6EI64_V_M1_MF2 = 9740,
-  PseudoVSOXSEG6EI64_V_M1_MF2_MASK = 9741,
-  PseudoVSOXSEG6EI64_V_M1_MF4 = 9742,
-  PseudoVSOXSEG6EI64_V_M1_MF4_MASK = 9743,
-  PseudoVSOXSEG6EI64_V_M1_MF8 = 9744,
-  PseudoVSOXSEG6EI64_V_M1_MF8_MASK = 9745,
-  PseudoVSOXSEG6EI64_V_M2_M1 = 9746,
-  PseudoVSOXSEG6EI64_V_M2_M1_MASK = 9747,
-  PseudoVSOXSEG6EI64_V_M2_MF2 = 9748,
-  PseudoVSOXSEG6EI64_V_M2_MF2_MASK = 9749,
-  PseudoVSOXSEG6EI64_V_M2_MF4 = 9750,
-  PseudoVSOXSEG6EI64_V_M2_MF4_MASK = 9751,
-  PseudoVSOXSEG6EI64_V_M4_M1 = 9752,
-  PseudoVSOXSEG6EI64_V_M4_M1_MASK = 9753,
-  PseudoVSOXSEG6EI64_V_M4_MF2 = 9754,
-  PseudoVSOXSEG6EI64_V_M4_MF2_MASK = 9755,
-  PseudoVSOXSEG6EI64_V_M8_M1 = 9756,
-  PseudoVSOXSEG6EI64_V_M8_M1_MASK = 9757,
-  PseudoVSOXSEG6EI8_V_M1_M1 = 9758,
-  PseudoVSOXSEG6EI8_V_M1_M1_MASK = 9759,
-  PseudoVSOXSEG6EI8_V_MF2_M1 = 9760,
-  PseudoVSOXSEG6EI8_V_MF2_M1_MASK = 9761,
-  PseudoVSOXSEG6EI8_V_MF2_MF2 = 9762,
-  PseudoVSOXSEG6EI8_V_MF2_MF2_MASK = 9763,
-  PseudoVSOXSEG6EI8_V_MF4_M1 = 9764,
-  PseudoVSOXSEG6EI8_V_MF4_M1_MASK = 9765,
-  PseudoVSOXSEG6EI8_V_MF4_MF2 = 9766,
-  PseudoVSOXSEG6EI8_V_MF4_MF2_MASK = 9767,
-  PseudoVSOXSEG6EI8_V_MF4_MF4 = 9768,
-  PseudoVSOXSEG6EI8_V_MF4_MF4_MASK = 9769,
-  PseudoVSOXSEG6EI8_V_MF8_M1 = 9770,
-  PseudoVSOXSEG6EI8_V_MF8_M1_MASK = 9771,
-  PseudoVSOXSEG6EI8_V_MF8_MF2 = 9772,
-  PseudoVSOXSEG6EI8_V_MF8_MF2_MASK = 9773,
-  PseudoVSOXSEG6EI8_V_MF8_MF4 = 9774,
-  PseudoVSOXSEG6EI8_V_MF8_MF4_MASK = 9775,
-  PseudoVSOXSEG6EI8_V_MF8_MF8 = 9776,
-  PseudoVSOXSEG6EI8_V_MF8_MF8_MASK = 9777,
-  PseudoVSOXSEG7EI16_V_M1_M1 = 9778,
-  PseudoVSOXSEG7EI16_V_M1_M1_MASK = 9779,
-  PseudoVSOXSEG7EI16_V_M1_MF2 = 9780,
-  PseudoVSOXSEG7EI16_V_M1_MF2_MASK = 9781,
-  PseudoVSOXSEG7EI16_V_M2_M1 = 9782,
-  PseudoVSOXSEG7EI16_V_M2_M1_MASK = 9783,
-  PseudoVSOXSEG7EI16_V_MF2_M1 = 9784,
-  PseudoVSOXSEG7EI16_V_MF2_M1_MASK = 9785,
-  PseudoVSOXSEG7EI16_V_MF2_MF2 = 9786,
-  PseudoVSOXSEG7EI16_V_MF2_MF2_MASK = 9787,
-  PseudoVSOXSEG7EI16_V_MF2_MF4 = 9788,
-  PseudoVSOXSEG7EI16_V_MF2_MF4_MASK = 9789,
-  PseudoVSOXSEG7EI16_V_MF4_M1 = 9790,
-  PseudoVSOXSEG7EI16_V_MF4_M1_MASK = 9791,
-  PseudoVSOXSEG7EI16_V_MF4_MF2 = 9792,
-  PseudoVSOXSEG7EI16_V_MF4_MF2_MASK = 9793,
-  PseudoVSOXSEG7EI16_V_MF4_MF4 = 9794,
-  PseudoVSOXSEG7EI16_V_MF4_MF4_MASK = 9795,
-  PseudoVSOXSEG7EI16_V_MF4_MF8 = 9796,
-  PseudoVSOXSEG7EI16_V_MF4_MF8_MASK = 9797,
-  PseudoVSOXSEG7EI32_V_M1_M1 = 9798,
-  PseudoVSOXSEG7EI32_V_M1_M1_MASK = 9799,
-  PseudoVSOXSEG7EI32_V_M1_MF2 = 9800,
-  PseudoVSOXSEG7EI32_V_M1_MF2_MASK = 9801,
-  PseudoVSOXSEG7EI32_V_M1_MF4 = 9802,
-  PseudoVSOXSEG7EI32_V_M1_MF4_MASK = 9803,
-  PseudoVSOXSEG7EI32_V_M2_M1 = 9804,
-  PseudoVSOXSEG7EI32_V_M2_M1_MASK = 9805,
-  PseudoVSOXSEG7EI32_V_M2_MF2 = 9806,
-  PseudoVSOXSEG7EI32_V_M2_MF2_MASK = 9807,
-  PseudoVSOXSEG7EI32_V_M4_M1 = 9808,
-  PseudoVSOXSEG7EI32_V_M4_M1_MASK = 9809,
-  PseudoVSOXSEG7EI32_V_MF2_M1 = 9810,
-  PseudoVSOXSEG7EI32_V_MF2_M1_MASK = 9811,
-  PseudoVSOXSEG7EI32_V_MF2_MF2 = 9812,
-  PseudoVSOXSEG7EI32_V_MF2_MF2_MASK = 9813,
-  PseudoVSOXSEG7EI32_V_MF2_MF4 = 9814,
-  PseudoVSOXSEG7EI32_V_MF2_MF4_MASK = 9815,
-  PseudoVSOXSEG7EI32_V_MF2_MF8 = 9816,
-  PseudoVSOXSEG7EI32_V_MF2_MF8_MASK = 9817,
-  PseudoVSOXSEG7EI64_V_M1_M1 = 9818,
-  PseudoVSOXSEG7EI64_V_M1_M1_MASK = 9819,
-  PseudoVSOXSEG7EI64_V_M1_MF2 = 9820,
-  PseudoVSOXSEG7EI64_V_M1_MF2_MASK = 9821,
-  PseudoVSOXSEG7EI64_V_M1_MF4 = 9822,
-  PseudoVSOXSEG7EI64_V_M1_MF4_MASK = 9823,
-  PseudoVSOXSEG7EI64_V_M1_MF8 = 9824,
-  PseudoVSOXSEG7EI64_V_M1_MF8_MASK = 9825,
-  PseudoVSOXSEG7EI64_V_M2_M1 = 9826,
-  PseudoVSOXSEG7EI64_V_M2_M1_MASK = 9827,
-  PseudoVSOXSEG7EI64_V_M2_MF2 = 9828,
-  PseudoVSOXSEG7EI64_V_M2_MF2_MASK = 9829,
-  PseudoVSOXSEG7EI64_V_M2_MF4 = 9830,
-  PseudoVSOXSEG7EI64_V_M2_MF4_MASK = 9831,
-  PseudoVSOXSEG7EI64_V_M4_M1 = 9832,
-  PseudoVSOXSEG7EI64_V_M4_M1_MASK = 9833,
-  PseudoVSOXSEG7EI64_V_M4_MF2 = 9834,
-  PseudoVSOXSEG7EI64_V_M4_MF2_MASK = 9835,
-  PseudoVSOXSEG7EI64_V_M8_M1 = 9836,
-  PseudoVSOXSEG7EI64_V_M8_M1_MASK = 9837,
-  PseudoVSOXSEG7EI8_V_M1_M1 = 9838,
-  PseudoVSOXSEG7EI8_V_M1_M1_MASK = 9839,
-  PseudoVSOXSEG7EI8_V_MF2_M1 = 9840,
-  PseudoVSOXSEG7EI8_V_MF2_M1_MASK = 9841,
-  PseudoVSOXSEG7EI8_V_MF2_MF2 = 9842,
-  PseudoVSOXSEG7EI8_V_MF2_MF2_MASK = 9843,
-  PseudoVSOXSEG7EI8_V_MF4_M1 = 9844,
-  PseudoVSOXSEG7EI8_V_MF4_M1_MASK = 9845,
-  PseudoVSOXSEG7EI8_V_MF4_MF2 = 9846,
-  PseudoVSOXSEG7EI8_V_MF4_MF2_MASK = 9847,
-  PseudoVSOXSEG7EI8_V_MF4_MF4 = 9848,
-  PseudoVSOXSEG7EI8_V_MF4_MF4_MASK = 9849,
-  PseudoVSOXSEG7EI8_V_MF8_M1 = 9850,
-  PseudoVSOXSEG7EI8_V_MF8_M1_MASK = 9851,
-  PseudoVSOXSEG7EI8_V_MF8_MF2 = 9852,
-  PseudoVSOXSEG7EI8_V_MF8_MF2_MASK = 9853,
-  PseudoVSOXSEG7EI8_V_MF8_MF4 = 9854,
-  PseudoVSOXSEG7EI8_V_MF8_MF4_MASK = 9855,
-  PseudoVSOXSEG7EI8_V_MF8_MF8 = 9856,
-  PseudoVSOXSEG7EI8_V_MF8_MF8_MASK = 9857,
-  PseudoVSOXSEG8EI16_V_M1_M1 = 9858,
-  PseudoVSOXSEG8EI16_V_M1_M1_MASK = 9859,
-  PseudoVSOXSEG8EI16_V_M1_MF2 = 9860,
-  PseudoVSOXSEG8EI16_V_M1_MF2_MASK = 9861,
-  PseudoVSOXSEG8EI16_V_M2_M1 = 9862,
-  PseudoVSOXSEG8EI16_V_M2_M1_MASK = 9863,
-  PseudoVSOXSEG8EI16_V_MF2_M1 = 9864,
-  PseudoVSOXSEG8EI16_V_MF2_M1_MASK = 9865,
-  PseudoVSOXSEG8EI16_V_MF2_MF2 = 9866,
-  PseudoVSOXSEG8EI16_V_MF2_MF2_MASK = 9867,
-  PseudoVSOXSEG8EI16_V_MF2_MF4 = 9868,
-  PseudoVSOXSEG8EI16_V_MF2_MF4_MASK = 9869,
-  PseudoVSOXSEG8EI16_V_MF4_M1 = 9870,
-  PseudoVSOXSEG8EI16_V_MF4_M1_MASK = 9871,
-  PseudoVSOXSEG8EI16_V_MF4_MF2 = 9872,
-  PseudoVSOXSEG8EI16_V_MF4_MF2_MASK = 9873,
-  PseudoVSOXSEG8EI16_V_MF4_MF4 = 9874,
-  PseudoVSOXSEG8EI16_V_MF4_MF4_MASK = 9875,
-  PseudoVSOXSEG8EI16_V_MF4_MF8 = 9876,
-  PseudoVSOXSEG8EI16_V_MF4_MF8_MASK = 9877,
-  PseudoVSOXSEG8EI32_V_M1_M1 = 9878,
-  PseudoVSOXSEG8EI32_V_M1_M1_MASK = 9879,
-  PseudoVSOXSEG8EI32_V_M1_MF2 = 9880,
-  PseudoVSOXSEG8EI32_V_M1_MF2_MASK = 9881,
-  PseudoVSOXSEG8EI32_V_M1_MF4 = 9882,
-  PseudoVSOXSEG8EI32_V_M1_MF4_MASK = 9883,
-  PseudoVSOXSEG8EI32_V_M2_M1 = 9884,
-  PseudoVSOXSEG8EI32_V_M2_M1_MASK = 9885,
-  PseudoVSOXSEG8EI32_V_M2_MF2 = 9886,
-  PseudoVSOXSEG8EI32_V_M2_MF2_MASK = 9887,
-  PseudoVSOXSEG8EI32_V_M4_M1 = 9888,
-  PseudoVSOXSEG8EI32_V_M4_M1_MASK = 9889,
-  PseudoVSOXSEG8EI32_V_MF2_M1 = 9890,
-  PseudoVSOXSEG8EI32_V_MF2_M1_MASK = 9891,
-  PseudoVSOXSEG8EI32_V_MF2_MF2 = 9892,
-  PseudoVSOXSEG8EI32_V_MF2_MF2_MASK = 9893,
-  PseudoVSOXSEG8EI32_V_MF2_MF4 = 9894,
-  PseudoVSOXSEG8EI32_V_MF2_MF4_MASK = 9895,
-  PseudoVSOXSEG8EI32_V_MF2_MF8 = 9896,
-  PseudoVSOXSEG8EI32_V_MF2_MF8_MASK = 9897,
-  PseudoVSOXSEG8EI64_V_M1_M1 = 9898,
-  PseudoVSOXSEG8EI64_V_M1_M1_MASK = 9899,
-  PseudoVSOXSEG8EI64_V_M1_MF2 = 9900,
-  PseudoVSOXSEG8EI64_V_M1_MF2_MASK = 9901,
-  PseudoVSOXSEG8EI64_V_M1_MF4 = 9902,
-  PseudoVSOXSEG8EI64_V_M1_MF4_MASK = 9903,
-  PseudoVSOXSEG8EI64_V_M1_MF8 = 9904,
-  PseudoVSOXSEG8EI64_V_M1_MF8_MASK = 9905,
-  PseudoVSOXSEG8EI64_V_M2_M1 = 9906,
-  PseudoVSOXSEG8EI64_V_M2_M1_MASK = 9907,
-  PseudoVSOXSEG8EI64_V_M2_MF2 = 9908,
-  PseudoVSOXSEG8EI64_V_M2_MF2_MASK = 9909,
-  PseudoVSOXSEG8EI64_V_M2_MF4 = 9910,
-  PseudoVSOXSEG8EI64_V_M2_MF4_MASK = 9911,
-  PseudoVSOXSEG8EI64_V_M4_M1 = 9912,
-  PseudoVSOXSEG8EI64_V_M4_M1_MASK = 9913,
-  PseudoVSOXSEG8EI64_V_M4_MF2 = 9914,
-  PseudoVSOXSEG8EI64_V_M4_MF2_MASK = 9915,
-  PseudoVSOXSEG8EI64_V_M8_M1 = 9916,
-  PseudoVSOXSEG8EI64_V_M8_M1_MASK = 9917,
-  PseudoVSOXSEG8EI8_V_M1_M1 = 9918,
-  PseudoVSOXSEG8EI8_V_M1_M1_MASK = 9919,
-  PseudoVSOXSEG8EI8_V_MF2_M1 = 9920,
-  PseudoVSOXSEG8EI8_V_MF2_M1_MASK = 9921,
-  PseudoVSOXSEG8EI8_V_MF2_MF2 = 9922,
-  PseudoVSOXSEG8EI8_V_MF2_MF2_MASK = 9923,
-  PseudoVSOXSEG8EI8_V_MF4_M1 = 9924,
-  PseudoVSOXSEG8EI8_V_MF4_M1_MASK = 9925,
-  PseudoVSOXSEG8EI8_V_MF4_MF2 = 9926,
-  PseudoVSOXSEG8EI8_V_MF4_MF2_MASK = 9927,
-  PseudoVSOXSEG8EI8_V_MF4_MF4 = 9928,
-  PseudoVSOXSEG8EI8_V_MF4_MF4_MASK = 9929,
-  PseudoVSOXSEG8EI8_V_MF8_M1 = 9930,
-  PseudoVSOXSEG8EI8_V_MF8_M1_MASK = 9931,
-  PseudoVSOXSEG8EI8_V_MF8_MF2 = 9932,
-  PseudoVSOXSEG8EI8_V_MF8_MF2_MASK = 9933,
-  PseudoVSOXSEG8EI8_V_MF8_MF4 = 9934,
-  PseudoVSOXSEG8EI8_V_MF8_MF4_MASK = 9935,
-  PseudoVSOXSEG8EI8_V_MF8_MF8 = 9936,
-  PseudoVSOXSEG8EI8_V_MF8_MF8_MASK = 9937,
-  PseudoVSPILL2_M1 = 9938,
-  PseudoVSPILL2_M2 = 9939,
-  PseudoVSPILL2_M4 = 9940,
-  PseudoVSPILL2_MF2 = 9941,
-  PseudoVSPILL2_MF4 = 9942,
-  PseudoVSPILL2_MF8 = 9943,
-  PseudoVSPILL3_M1 = 9944,
-  PseudoVSPILL3_M2 = 9945,
-  PseudoVSPILL3_MF2 = 9946,
-  PseudoVSPILL3_MF4 = 9947,
-  PseudoVSPILL3_MF8 = 9948,
-  PseudoVSPILL4_M1 = 9949,
-  PseudoVSPILL4_M2 = 9950,
-  PseudoVSPILL4_MF2 = 9951,
-  PseudoVSPILL4_MF4 = 9952,
-  PseudoVSPILL4_MF8 = 9953,
-  PseudoVSPILL5_M1 = 9954,
-  PseudoVSPILL5_MF2 = 9955,
-  PseudoVSPILL5_MF4 = 9956,
-  PseudoVSPILL5_MF8 = 9957,
-  PseudoVSPILL6_M1 = 9958,
-  PseudoVSPILL6_MF2 = 9959,
-  PseudoVSPILL6_MF4 = 9960,
-  PseudoVSPILL6_MF8 = 9961,
-  PseudoVSPILL7_M1 = 9962,
-  PseudoVSPILL7_MF2 = 9963,
-  PseudoVSPILL7_MF4 = 9964,
-  PseudoVSPILL7_MF8 = 9965,
-  PseudoVSPILL8_M1 = 9966,
-  PseudoVSPILL8_MF2 = 9967,
-  PseudoVSPILL8_MF4 = 9968,
-  PseudoVSPILL8_MF8 = 9969,
-  PseudoVSRA_VI_M1 = 9970,
-  PseudoVSRA_VI_M1_MASK = 9971,
-  PseudoVSRA_VI_M2 = 9972,
-  PseudoVSRA_VI_M2_MASK = 9973,
-  PseudoVSRA_VI_M4 = 9974,
-  PseudoVSRA_VI_M4_MASK = 9975,
-  PseudoVSRA_VI_M8 = 9976,
-  PseudoVSRA_VI_M8_MASK = 9977,
-  PseudoVSRA_VI_MF2 = 9978,
-  PseudoVSRA_VI_MF2_MASK = 9979,
-  PseudoVSRA_VI_MF4 = 9980,
-  PseudoVSRA_VI_MF4_MASK = 9981,
-  PseudoVSRA_VI_MF8 = 9982,
-  PseudoVSRA_VI_MF8_MASK = 9983,
-  PseudoVSRA_VV_M1 = 9984,
-  PseudoVSRA_VV_M1_MASK = 9985,
-  PseudoVSRA_VV_M2 = 9986,
-  PseudoVSRA_VV_M2_MASK = 9987,
-  PseudoVSRA_VV_M4 = 9988,
-  PseudoVSRA_VV_M4_MASK = 9989,
-  PseudoVSRA_VV_M8 = 9990,
-  PseudoVSRA_VV_M8_MASK = 9991,
-  PseudoVSRA_VV_MF2 = 9992,
-  PseudoVSRA_VV_MF2_MASK = 9993,
-  PseudoVSRA_VV_MF4 = 9994,
-  PseudoVSRA_VV_MF4_MASK = 9995,
-  PseudoVSRA_VV_MF8 = 9996,
-  PseudoVSRA_VV_MF8_MASK = 9997,
-  PseudoVSRA_VX_M1 = 9998,
-  PseudoVSRA_VX_M1_MASK = 9999,
-  PseudoVSRA_VX_M2 = 10000,
-  PseudoVSRA_VX_M2_MASK = 10001,
-  PseudoVSRA_VX_M4 = 10002,
-  PseudoVSRA_VX_M4_MASK = 10003,
-  PseudoVSRA_VX_M8 = 10004,
-  PseudoVSRA_VX_M8_MASK = 10005,
-  PseudoVSRA_VX_MF2 = 10006,
-  PseudoVSRA_VX_MF2_MASK = 10007,
-  PseudoVSRA_VX_MF4 = 10008,
-  PseudoVSRA_VX_MF4_MASK = 10009,
-  PseudoVSRA_VX_MF8 = 10010,
-  PseudoVSRA_VX_MF8_MASK = 10011,
-  PseudoVSRL_VI_M1 = 10012,
-  PseudoVSRL_VI_M1_MASK = 10013,
-  PseudoVSRL_VI_M2 = 10014,
-  PseudoVSRL_VI_M2_MASK = 10015,
-  PseudoVSRL_VI_M4 = 10016,
-  PseudoVSRL_VI_M4_MASK = 10017,
-  PseudoVSRL_VI_M8 = 10018,
-  PseudoVSRL_VI_M8_MASK = 10019,
-  PseudoVSRL_VI_MF2 = 10020,
-  PseudoVSRL_VI_MF2_MASK = 10021,
-  PseudoVSRL_VI_MF4 = 10022,
-  PseudoVSRL_VI_MF4_MASK = 10023,
-  PseudoVSRL_VI_MF8 = 10024,
-  PseudoVSRL_VI_MF8_MASK = 10025,
-  PseudoVSRL_VV_M1 = 10026,
-  PseudoVSRL_VV_M1_MASK = 10027,
-  PseudoVSRL_VV_M2 = 10028,
-  PseudoVSRL_VV_M2_MASK = 10029,
-  PseudoVSRL_VV_M4 = 10030,
-  PseudoVSRL_VV_M4_MASK = 10031,
-  PseudoVSRL_VV_M8 = 10032,
-  PseudoVSRL_VV_M8_MASK = 10033,
-  PseudoVSRL_VV_MF2 = 10034,
-  PseudoVSRL_VV_MF2_MASK = 10035,
-  PseudoVSRL_VV_MF4 = 10036,
-  PseudoVSRL_VV_MF4_MASK = 10037,
-  PseudoVSRL_VV_MF8 = 10038,
-  PseudoVSRL_VV_MF8_MASK = 10039,
-  PseudoVSRL_VX_M1 = 10040,
-  PseudoVSRL_VX_M1_MASK = 10041,
-  PseudoVSRL_VX_M2 = 10042,
-  PseudoVSRL_VX_M2_MASK = 10043,
-  PseudoVSRL_VX_M4 = 10044,
-  PseudoVSRL_VX_M4_MASK = 10045,
-  PseudoVSRL_VX_M8 = 10046,
-  PseudoVSRL_VX_M8_MASK = 10047,
-  PseudoVSRL_VX_MF2 = 10048,
-  PseudoVSRL_VX_MF2_MASK = 10049,
-  PseudoVSRL_VX_MF4 = 10050,
-  PseudoVSRL_VX_MF4_MASK = 10051,
-  PseudoVSRL_VX_MF8 = 10052,
-  PseudoVSRL_VX_MF8_MASK = 10053,
-  PseudoVSSE16_V_M1 = 10054,
-  PseudoVSSE16_V_M1_MASK = 10055,
-  PseudoVSSE16_V_M2 = 10056,
-  PseudoVSSE16_V_M2_MASK = 10057,
-  PseudoVSSE16_V_M4 = 10058,
-  PseudoVSSE16_V_M4_MASK = 10059,
-  PseudoVSSE16_V_M8 = 10060,
-  PseudoVSSE16_V_M8_MASK = 10061,
-  PseudoVSSE16_V_MF2 = 10062,
-  PseudoVSSE16_V_MF2_MASK = 10063,
-  PseudoVSSE16_V_MF4 = 10064,
-  PseudoVSSE16_V_MF4_MASK = 10065,
-  PseudoVSSE32_V_M1 = 10066,
-  PseudoVSSE32_V_M1_MASK = 10067,
-  PseudoVSSE32_V_M2 = 10068,
-  PseudoVSSE32_V_M2_MASK = 10069,
-  PseudoVSSE32_V_M4 = 10070,
-  PseudoVSSE32_V_M4_MASK = 10071,
-  PseudoVSSE32_V_M8 = 10072,
-  PseudoVSSE32_V_M8_MASK = 10073,
-  PseudoVSSE32_V_MF2 = 10074,
-  PseudoVSSE32_V_MF2_MASK = 10075,
-  PseudoVSSE64_V_M1 = 10076,
-  PseudoVSSE64_V_M1_MASK = 10077,
-  PseudoVSSE64_V_M2 = 10078,
-  PseudoVSSE64_V_M2_MASK = 10079,
-  PseudoVSSE64_V_M4 = 10080,
-  PseudoVSSE64_V_M4_MASK = 10081,
-  PseudoVSSE64_V_M8 = 10082,
-  PseudoVSSE64_V_M8_MASK = 10083,
-  PseudoVSSE8_V_M1 = 10084,
-  PseudoVSSE8_V_M1_MASK = 10085,
-  PseudoVSSE8_V_M2 = 10086,
-  PseudoVSSE8_V_M2_MASK = 10087,
-  PseudoVSSE8_V_M4 = 10088,
-  PseudoVSSE8_V_M4_MASK = 10089,
-  PseudoVSSE8_V_M8 = 10090,
-  PseudoVSSE8_V_M8_MASK = 10091,
-  PseudoVSSE8_V_MF2 = 10092,
-  PseudoVSSE8_V_MF2_MASK = 10093,
-  PseudoVSSE8_V_MF4 = 10094,
-  PseudoVSSE8_V_MF4_MASK = 10095,
-  PseudoVSSE8_V_MF8 = 10096,
-  PseudoVSSE8_V_MF8_MASK = 10097,
-  PseudoVSSEG2E16_V_M1 = 10098,
-  PseudoVSSEG2E16_V_M1_MASK = 10099,
-  PseudoVSSEG2E16_V_M2 = 10100,
-  PseudoVSSEG2E16_V_M2_MASK = 10101,
-  PseudoVSSEG2E16_V_M4 = 10102,
-  PseudoVSSEG2E16_V_M4_MASK = 10103,
-  PseudoVSSEG2E16_V_MF2 = 10104,
-  PseudoVSSEG2E16_V_MF2_MASK = 10105,
-  PseudoVSSEG2E16_V_MF4 = 10106,
-  PseudoVSSEG2E16_V_MF4_MASK = 10107,
-  PseudoVSSEG2E32_V_M1 = 10108,
-  PseudoVSSEG2E32_V_M1_MASK = 10109,
-  PseudoVSSEG2E32_V_M2 = 10110,
-  PseudoVSSEG2E32_V_M2_MASK = 10111,
-  PseudoVSSEG2E32_V_M4 = 10112,
-  PseudoVSSEG2E32_V_M4_MASK = 10113,
-  PseudoVSSEG2E32_V_MF2 = 10114,
-  PseudoVSSEG2E32_V_MF2_MASK = 10115,
-  PseudoVSSEG2E64_V_M1 = 10116,
-  PseudoVSSEG2E64_V_M1_MASK = 10117,
-  PseudoVSSEG2E64_V_M2 = 10118,
-  PseudoVSSEG2E64_V_M2_MASK = 10119,
-  PseudoVSSEG2E64_V_M4 = 10120,
-  PseudoVSSEG2E64_V_M4_MASK = 10121,
-  PseudoVSSEG2E8_V_M1 = 10122,
-  PseudoVSSEG2E8_V_M1_MASK = 10123,
-  PseudoVSSEG2E8_V_M2 = 10124,
-  PseudoVSSEG2E8_V_M2_MASK = 10125,
-  PseudoVSSEG2E8_V_M4 = 10126,
-  PseudoVSSEG2E8_V_M4_MASK = 10127,
-  PseudoVSSEG2E8_V_MF2 = 10128,
-  PseudoVSSEG2E8_V_MF2_MASK = 10129,
-  PseudoVSSEG2E8_V_MF4 = 10130,
-  PseudoVSSEG2E8_V_MF4_MASK = 10131,
-  PseudoVSSEG2E8_V_MF8 = 10132,
-  PseudoVSSEG2E8_V_MF8_MASK = 10133,
-  PseudoVSSEG3E16_V_M1 = 10134,
-  PseudoVSSEG3E16_V_M1_MASK = 10135,
-  PseudoVSSEG3E16_V_M2 = 10136,
-  PseudoVSSEG3E16_V_M2_MASK = 10137,
-  PseudoVSSEG3E16_V_MF2 = 10138,
-  PseudoVSSEG3E16_V_MF2_MASK = 10139,
-  PseudoVSSEG3E16_V_MF4 = 10140,
-  PseudoVSSEG3E16_V_MF4_MASK = 10141,
-  PseudoVSSEG3E32_V_M1 = 10142,
-  PseudoVSSEG3E32_V_M1_MASK = 10143,
-  PseudoVSSEG3E32_V_M2 = 10144,
-  PseudoVSSEG3E32_V_M2_MASK = 10145,
-  PseudoVSSEG3E32_V_MF2 = 10146,
-  PseudoVSSEG3E32_V_MF2_MASK = 10147,
-  PseudoVSSEG3E64_V_M1 = 10148,
-  PseudoVSSEG3E64_V_M1_MASK = 10149,
-  PseudoVSSEG3E64_V_M2 = 10150,
-  PseudoVSSEG3E64_V_M2_MASK = 10151,
-  PseudoVSSEG3E8_V_M1 = 10152,
-  PseudoVSSEG3E8_V_M1_MASK = 10153,
-  PseudoVSSEG3E8_V_M2 = 10154,
-  PseudoVSSEG3E8_V_M2_MASK = 10155,
-  PseudoVSSEG3E8_V_MF2 = 10156,
-  PseudoVSSEG3E8_V_MF2_MASK = 10157,
-  PseudoVSSEG3E8_V_MF4 = 10158,
-  PseudoVSSEG3E8_V_MF4_MASK = 10159,
-  PseudoVSSEG3E8_V_MF8 = 10160,
-  PseudoVSSEG3E8_V_MF8_MASK = 10161,
-  PseudoVSSEG4E16_V_M1 = 10162,
-  PseudoVSSEG4E16_V_M1_MASK = 10163,
-  PseudoVSSEG4E16_V_M2 = 10164,
-  PseudoVSSEG4E16_V_M2_MASK = 10165,
-  PseudoVSSEG4E16_V_MF2 = 10166,
-  PseudoVSSEG4E16_V_MF2_MASK = 10167,
-  PseudoVSSEG4E16_V_MF4 = 10168,
-  PseudoVSSEG4E16_V_MF4_MASK = 10169,
-  PseudoVSSEG4E32_V_M1 = 10170,
-  PseudoVSSEG4E32_V_M1_MASK = 10171,
-  PseudoVSSEG4E32_V_M2 = 10172,
-  PseudoVSSEG4E32_V_M2_MASK = 10173,
-  PseudoVSSEG4E32_V_MF2 = 10174,
-  PseudoVSSEG4E32_V_MF2_MASK = 10175,
-  PseudoVSSEG4E64_V_M1 = 10176,
-  PseudoVSSEG4E64_V_M1_MASK = 10177,
-  PseudoVSSEG4E64_V_M2 = 10178,
-  PseudoVSSEG4E64_V_M2_MASK = 10179,
-  PseudoVSSEG4E8_V_M1 = 10180,
-  PseudoVSSEG4E8_V_M1_MASK = 10181,
-  PseudoVSSEG4E8_V_M2 = 10182,
-  PseudoVSSEG4E8_V_M2_MASK = 10183,
-  PseudoVSSEG4E8_V_MF2 = 10184,
-  PseudoVSSEG4E8_V_MF2_MASK = 10185,
-  PseudoVSSEG4E8_V_MF4 = 10186,
-  PseudoVSSEG4E8_V_MF4_MASK = 10187,
-  PseudoVSSEG4E8_V_MF8 = 10188,
-  PseudoVSSEG4E8_V_MF8_MASK = 10189,
-  PseudoVSSEG5E16_V_M1 = 10190,
-  PseudoVSSEG5E16_V_M1_MASK = 10191,
-  PseudoVSSEG5E16_V_MF2 = 10192,
-  PseudoVSSEG5E16_V_MF2_MASK = 10193,
-  PseudoVSSEG5E16_V_MF4 = 10194,
-  PseudoVSSEG5E16_V_MF4_MASK = 10195,
-  PseudoVSSEG5E32_V_M1 = 10196,
-  PseudoVSSEG5E32_V_M1_MASK = 10197,
-  PseudoVSSEG5E32_V_MF2 = 10198,
-  PseudoVSSEG5E32_V_MF2_MASK = 10199,
-  PseudoVSSEG5E64_V_M1 = 10200,
-  PseudoVSSEG5E64_V_M1_MASK = 10201,
-  PseudoVSSEG5E8_V_M1 = 10202,
-  PseudoVSSEG5E8_V_M1_MASK = 10203,
-  PseudoVSSEG5E8_V_MF2 = 10204,
-  PseudoVSSEG5E8_V_MF2_MASK = 10205,
-  PseudoVSSEG5E8_V_MF4 = 10206,
-  PseudoVSSEG5E8_V_MF4_MASK = 10207,
-  PseudoVSSEG5E8_V_MF8 = 10208,
-  PseudoVSSEG5E8_V_MF8_MASK = 10209,
-  PseudoVSSEG6E16_V_M1 = 10210,
-  PseudoVSSEG6E16_V_M1_MASK = 10211,
-  PseudoVSSEG6E16_V_MF2 = 10212,
-  PseudoVSSEG6E16_V_MF2_MASK = 10213,
-  PseudoVSSEG6E16_V_MF4 = 10214,
-  PseudoVSSEG6E16_V_MF4_MASK = 10215,
-  PseudoVSSEG6E32_V_M1 = 10216,
-  PseudoVSSEG6E32_V_M1_MASK = 10217,
-  PseudoVSSEG6E32_V_MF2 = 10218,
-  PseudoVSSEG6E32_V_MF2_MASK = 10219,
-  PseudoVSSEG6E64_V_M1 = 10220,
-  PseudoVSSEG6E64_V_M1_MASK = 10221,
-  PseudoVSSEG6E8_V_M1 = 10222,
-  PseudoVSSEG6E8_V_M1_MASK = 10223,
-  PseudoVSSEG6E8_V_MF2 = 10224,
-  PseudoVSSEG6E8_V_MF2_MASK = 10225,
-  PseudoVSSEG6E8_V_MF4 = 10226,
-  PseudoVSSEG6E8_V_MF4_MASK = 10227,
-  PseudoVSSEG6E8_V_MF8 = 10228,
-  PseudoVSSEG6E8_V_MF8_MASK = 10229,
-  PseudoVSSEG7E16_V_M1 = 10230,
-  PseudoVSSEG7E16_V_M1_MASK = 10231,
-  PseudoVSSEG7E16_V_MF2 = 10232,
-  PseudoVSSEG7E16_V_MF2_MASK = 10233,
-  PseudoVSSEG7E16_V_MF4 = 10234,
-  PseudoVSSEG7E16_V_MF4_MASK = 10235,
-  PseudoVSSEG7E32_V_M1 = 10236,
-  PseudoVSSEG7E32_V_M1_MASK = 10237,
-  PseudoVSSEG7E32_V_MF2 = 10238,
-  PseudoVSSEG7E32_V_MF2_MASK = 10239,
-  PseudoVSSEG7E64_V_M1 = 10240,
-  PseudoVSSEG7E64_V_M1_MASK = 10241,
-  PseudoVSSEG7E8_V_M1 = 10242,
-  PseudoVSSEG7E8_V_M1_MASK = 10243,
-  PseudoVSSEG7E8_V_MF2 = 10244,
-  PseudoVSSEG7E8_V_MF2_MASK = 10245,
-  PseudoVSSEG7E8_V_MF4 = 10246,
-  PseudoVSSEG7E8_V_MF4_MASK = 10247,
-  PseudoVSSEG7E8_V_MF8 = 10248,
-  PseudoVSSEG7E8_V_MF8_MASK = 10249,
-  PseudoVSSEG8E16_V_M1 = 10250,
-  PseudoVSSEG8E16_V_M1_MASK = 10251,
-  PseudoVSSEG8E16_V_MF2 = 10252,
-  PseudoVSSEG8E16_V_MF2_MASK = 10253,
-  PseudoVSSEG8E16_V_MF4 = 10254,
-  PseudoVSSEG8E16_V_MF4_MASK = 10255,
-  PseudoVSSEG8E32_V_M1 = 10256,
-  PseudoVSSEG8E32_V_M1_MASK = 10257,
-  PseudoVSSEG8E32_V_MF2 = 10258,
-  PseudoVSSEG8E32_V_MF2_MASK = 10259,
-  PseudoVSSEG8E64_V_M1 = 10260,
-  PseudoVSSEG8E64_V_M1_MASK = 10261,
-  PseudoVSSEG8E8_V_M1 = 10262,
-  PseudoVSSEG8E8_V_M1_MASK = 10263,
-  PseudoVSSEG8E8_V_MF2 = 10264,
-  PseudoVSSEG8E8_V_MF2_MASK = 10265,
-  PseudoVSSEG8E8_V_MF4 = 10266,
-  PseudoVSSEG8E8_V_MF4_MASK = 10267,
-  PseudoVSSEG8E8_V_MF8 = 10268,
-  PseudoVSSEG8E8_V_MF8_MASK = 10269,
-  PseudoVSSRA_VI_M1 = 10270,
-  PseudoVSSRA_VI_M1_MASK = 10271,
-  PseudoVSSRA_VI_M2 = 10272,
-  PseudoVSSRA_VI_M2_MASK = 10273,
-  PseudoVSSRA_VI_M4 = 10274,
-  PseudoVSSRA_VI_M4_MASK = 10275,
-  PseudoVSSRA_VI_M8 = 10276,
-  PseudoVSSRA_VI_M8_MASK = 10277,
-  PseudoVSSRA_VI_MF2 = 10278,
-  PseudoVSSRA_VI_MF2_MASK = 10279,
-  PseudoVSSRA_VI_MF4 = 10280,
-  PseudoVSSRA_VI_MF4_MASK = 10281,
-  PseudoVSSRA_VI_MF8 = 10282,
-  PseudoVSSRA_VI_MF8_MASK = 10283,
-  PseudoVSSRA_VV_M1 = 10284,
-  PseudoVSSRA_VV_M1_MASK = 10285,
-  PseudoVSSRA_VV_M2 = 10286,
-  PseudoVSSRA_VV_M2_MASK = 10287,
-  PseudoVSSRA_VV_M4 = 10288,
-  PseudoVSSRA_VV_M4_MASK = 10289,
-  PseudoVSSRA_VV_M8 = 10290,
-  PseudoVSSRA_VV_M8_MASK = 10291,
-  PseudoVSSRA_VV_MF2 = 10292,
-  PseudoVSSRA_VV_MF2_MASK = 10293,
-  PseudoVSSRA_VV_MF4 = 10294,
-  PseudoVSSRA_VV_MF4_MASK = 10295,
-  PseudoVSSRA_VV_MF8 = 10296,
-  PseudoVSSRA_VV_MF8_MASK = 10297,
-  PseudoVSSRA_VX_M1 = 10298,
-  PseudoVSSRA_VX_M1_MASK = 10299,
-  PseudoVSSRA_VX_M2 = 10300,
-  PseudoVSSRA_VX_M2_MASK = 10301,
-  PseudoVSSRA_VX_M4 = 10302,
-  PseudoVSSRA_VX_M4_MASK = 10303,
-  PseudoVSSRA_VX_M8 = 10304,
-  PseudoVSSRA_VX_M8_MASK = 10305,
-  PseudoVSSRA_VX_MF2 = 10306,
-  PseudoVSSRA_VX_MF2_MASK = 10307,
-  PseudoVSSRA_VX_MF4 = 10308,
-  PseudoVSSRA_VX_MF4_MASK = 10309,
-  PseudoVSSRA_VX_MF8 = 10310,
-  PseudoVSSRA_VX_MF8_MASK = 10311,
-  PseudoVSSRL_VI_M1 = 10312,
-  PseudoVSSRL_VI_M1_MASK = 10313,
-  PseudoVSSRL_VI_M2 = 10314,
-  PseudoVSSRL_VI_M2_MASK = 10315,
-  PseudoVSSRL_VI_M4 = 10316,
-  PseudoVSSRL_VI_M4_MASK = 10317,
-  PseudoVSSRL_VI_M8 = 10318,
-  PseudoVSSRL_VI_M8_MASK = 10319,
-  PseudoVSSRL_VI_MF2 = 10320,
-  PseudoVSSRL_VI_MF2_MASK = 10321,
-  PseudoVSSRL_VI_MF4 = 10322,
-  PseudoVSSRL_VI_MF4_MASK = 10323,
-  PseudoVSSRL_VI_MF8 = 10324,
-  PseudoVSSRL_VI_MF8_MASK = 10325,
-  PseudoVSSRL_VV_M1 = 10326,
-  PseudoVSSRL_VV_M1_MASK = 10327,
-  PseudoVSSRL_VV_M2 = 10328,
-  PseudoVSSRL_VV_M2_MASK = 10329,
-  PseudoVSSRL_VV_M4 = 10330,
-  PseudoVSSRL_VV_M4_MASK = 10331,
-  PseudoVSSRL_VV_M8 = 10332,
-  PseudoVSSRL_VV_M8_MASK = 10333,
-  PseudoVSSRL_VV_MF2 = 10334,
-  PseudoVSSRL_VV_MF2_MASK = 10335,
-  PseudoVSSRL_VV_MF4 = 10336,
-  PseudoVSSRL_VV_MF4_MASK = 10337,
-  PseudoVSSRL_VV_MF8 = 10338,
-  PseudoVSSRL_VV_MF8_MASK = 10339,
-  PseudoVSSRL_VX_M1 = 10340,
-  PseudoVSSRL_VX_M1_MASK = 10341,
-  PseudoVSSRL_VX_M2 = 10342,
-  PseudoVSSRL_VX_M2_MASK = 10343,
-  PseudoVSSRL_VX_M4 = 10344,
-  PseudoVSSRL_VX_M4_MASK = 10345,
-  PseudoVSSRL_VX_M8 = 10346,
-  PseudoVSSRL_VX_M8_MASK = 10347,
-  PseudoVSSRL_VX_MF2 = 10348,
-  PseudoVSSRL_VX_MF2_MASK = 10349,
-  PseudoVSSRL_VX_MF4 = 10350,
-  PseudoVSSRL_VX_MF4_MASK = 10351,
-  PseudoVSSRL_VX_MF8 = 10352,
-  PseudoVSSRL_VX_MF8_MASK = 10353,
-  PseudoVSSSEG2E16_V_M1 = 10354,
-  PseudoVSSSEG2E16_V_M1_MASK = 10355,
-  PseudoVSSSEG2E16_V_M2 = 10356,
-  PseudoVSSSEG2E16_V_M2_MASK = 10357,
-  PseudoVSSSEG2E16_V_M4 = 10358,
-  PseudoVSSSEG2E16_V_M4_MASK = 10359,
-  PseudoVSSSEG2E16_V_MF2 = 10360,
-  PseudoVSSSEG2E16_V_MF2_MASK = 10361,
-  PseudoVSSSEG2E16_V_MF4 = 10362,
-  PseudoVSSSEG2E16_V_MF4_MASK = 10363,
-  PseudoVSSSEG2E32_V_M1 = 10364,
-  PseudoVSSSEG2E32_V_M1_MASK = 10365,
-  PseudoVSSSEG2E32_V_M2 = 10366,
-  PseudoVSSSEG2E32_V_M2_MASK = 10367,
-  PseudoVSSSEG2E32_V_M4 = 10368,
-  PseudoVSSSEG2E32_V_M4_MASK = 10369,
-  PseudoVSSSEG2E32_V_MF2 = 10370,
-  PseudoVSSSEG2E32_V_MF2_MASK = 10371,
-  PseudoVSSSEG2E64_V_M1 = 10372,
-  PseudoVSSSEG2E64_V_M1_MASK = 10373,
-  PseudoVSSSEG2E64_V_M2 = 10374,
-  PseudoVSSSEG2E64_V_M2_MASK = 10375,
-  PseudoVSSSEG2E64_V_M4 = 10376,
-  PseudoVSSSEG2E64_V_M4_MASK = 10377,
-  PseudoVSSSEG2E8_V_M1 = 10378,
-  PseudoVSSSEG2E8_V_M1_MASK = 10379,
-  PseudoVSSSEG2E8_V_M2 = 10380,
-  PseudoVSSSEG2E8_V_M2_MASK = 10381,
-  PseudoVSSSEG2E8_V_M4 = 10382,
-  PseudoVSSSEG2E8_V_M4_MASK = 10383,
-  PseudoVSSSEG2E8_V_MF2 = 10384,
-  PseudoVSSSEG2E8_V_MF2_MASK = 10385,
-  PseudoVSSSEG2E8_V_MF4 = 10386,
-  PseudoVSSSEG2E8_V_MF4_MASK = 10387,
-  PseudoVSSSEG2E8_V_MF8 = 10388,
-  PseudoVSSSEG2E8_V_MF8_MASK = 10389,
-  PseudoVSSSEG3E16_V_M1 = 10390,
-  PseudoVSSSEG3E16_V_M1_MASK = 10391,
-  PseudoVSSSEG3E16_V_M2 = 10392,
-  PseudoVSSSEG3E16_V_M2_MASK = 10393,
-  PseudoVSSSEG3E16_V_MF2 = 10394,
-  PseudoVSSSEG3E16_V_MF2_MASK = 10395,
-  PseudoVSSSEG3E16_V_MF4 = 10396,
-  PseudoVSSSEG3E16_V_MF4_MASK = 10397,
-  PseudoVSSSEG3E32_V_M1 = 10398,
-  PseudoVSSSEG3E32_V_M1_MASK = 10399,
-  PseudoVSSSEG3E32_V_M2 = 10400,
-  PseudoVSSSEG3E32_V_M2_MASK = 10401,
-  PseudoVSSSEG3E32_V_MF2 = 10402,
-  PseudoVSSSEG3E32_V_MF2_MASK = 10403,
-  PseudoVSSSEG3E64_V_M1 = 10404,
-  PseudoVSSSEG3E64_V_M1_MASK = 10405,
-  PseudoVSSSEG3E64_V_M2 = 10406,
-  PseudoVSSSEG3E64_V_M2_MASK = 10407,
-  PseudoVSSSEG3E8_V_M1 = 10408,
-  PseudoVSSSEG3E8_V_M1_MASK = 10409,
-  PseudoVSSSEG3E8_V_M2 = 10410,
-  PseudoVSSSEG3E8_V_M2_MASK = 10411,
-  PseudoVSSSEG3E8_V_MF2 = 10412,
-  PseudoVSSSEG3E8_V_MF2_MASK = 10413,
-  PseudoVSSSEG3E8_V_MF4 = 10414,
-  PseudoVSSSEG3E8_V_MF4_MASK = 10415,
-  PseudoVSSSEG3E8_V_MF8 = 10416,
-  PseudoVSSSEG3E8_V_MF8_MASK = 10417,
-  PseudoVSSSEG4E16_V_M1 = 10418,
-  PseudoVSSSEG4E16_V_M1_MASK = 10419,
-  PseudoVSSSEG4E16_V_M2 = 10420,
-  PseudoVSSSEG4E16_V_M2_MASK = 10421,
-  PseudoVSSSEG4E16_V_MF2 = 10422,
-  PseudoVSSSEG4E16_V_MF2_MASK = 10423,
-  PseudoVSSSEG4E16_V_MF4 = 10424,
-  PseudoVSSSEG4E16_V_MF4_MASK = 10425,
-  PseudoVSSSEG4E32_V_M1 = 10426,
-  PseudoVSSSEG4E32_V_M1_MASK = 10427,
-  PseudoVSSSEG4E32_V_M2 = 10428,
-  PseudoVSSSEG4E32_V_M2_MASK = 10429,
-  PseudoVSSSEG4E32_V_MF2 = 10430,
-  PseudoVSSSEG4E32_V_MF2_MASK = 10431,
-  PseudoVSSSEG4E64_V_M1 = 10432,
-  PseudoVSSSEG4E64_V_M1_MASK = 10433,
-  PseudoVSSSEG4E64_V_M2 = 10434,
-  PseudoVSSSEG4E64_V_M2_MASK = 10435,
-  PseudoVSSSEG4E8_V_M1 = 10436,
-  PseudoVSSSEG4E8_V_M1_MASK = 10437,
-  PseudoVSSSEG4E8_V_M2 = 10438,
-  PseudoVSSSEG4E8_V_M2_MASK = 10439,
-  PseudoVSSSEG4E8_V_MF2 = 10440,
-  PseudoVSSSEG4E8_V_MF2_MASK = 10441,
-  PseudoVSSSEG4E8_V_MF4 = 10442,
-  PseudoVSSSEG4E8_V_MF4_MASK = 10443,
-  PseudoVSSSEG4E8_V_MF8 = 10444,
-  PseudoVSSSEG4E8_V_MF8_MASK = 10445,
-  PseudoVSSSEG5E16_V_M1 = 10446,
-  PseudoVSSSEG5E16_V_M1_MASK = 10447,
-  PseudoVSSSEG5E16_V_MF2 = 10448,
-  PseudoVSSSEG5E16_V_MF2_MASK = 10449,
-  PseudoVSSSEG5E16_V_MF4 = 10450,
-  PseudoVSSSEG5E16_V_MF4_MASK = 10451,
-  PseudoVSSSEG5E32_V_M1 = 10452,
-  PseudoVSSSEG5E32_V_M1_MASK = 10453,
-  PseudoVSSSEG5E32_V_MF2 = 10454,
-  PseudoVSSSEG5E32_V_MF2_MASK = 10455,
-  PseudoVSSSEG5E64_V_M1 = 10456,
-  PseudoVSSSEG5E64_V_M1_MASK = 10457,
-  PseudoVSSSEG5E8_V_M1 = 10458,
-  PseudoVSSSEG5E8_V_M1_MASK = 10459,
-  PseudoVSSSEG5E8_V_MF2 = 10460,
-  PseudoVSSSEG5E8_V_MF2_MASK = 10461,
-  PseudoVSSSEG5E8_V_MF4 = 10462,
-  PseudoVSSSEG5E8_V_MF4_MASK = 10463,
-  PseudoVSSSEG5E8_V_MF8 = 10464,
-  PseudoVSSSEG5E8_V_MF8_MASK = 10465,
-  PseudoVSSSEG6E16_V_M1 = 10466,
-  PseudoVSSSEG6E16_V_M1_MASK = 10467,
-  PseudoVSSSEG6E16_V_MF2 = 10468,
-  PseudoVSSSEG6E16_V_MF2_MASK = 10469,
-  PseudoVSSSEG6E16_V_MF4 = 10470,
-  PseudoVSSSEG6E16_V_MF4_MASK = 10471,
-  PseudoVSSSEG6E32_V_M1 = 10472,
-  PseudoVSSSEG6E32_V_M1_MASK = 10473,
-  PseudoVSSSEG6E32_V_MF2 = 10474,
-  PseudoVSSSEG6E32_V_MF2_MASK = 10475,
-  PseudoVSSSEG6E64_V_M1 = 10476,
-  PseudoVSSSEG6E64_V_M1_MASK = 10477,
-  PseudoVSSSEG6E8_V_M1 = 10478,
-  PseudoVSSSEG6E8_V_M1_MASK = 10479,
-  PseudoVSSSEG6E8_V_MF2 = 10480,
-  PseudoVSSSEG6E8_V_MF2_MASK = 10481,
-  PseudoVSSSEG6E8_V_MF4 = 10482,
-  PseudoVSSSEG6E8_V_MF4_MASK = 10483,
-  PseudoVSSSEG6E8_V_MF8 = 10484,
-  PseudoVSSSEG6E8_V_MF8_MASK = 10485,
-  PseudoVSSSEG7E16_V_M1 = 10486,
-  PseudoVSSSEG7E16_V_M1_MASK = 10487,
-  PseudoVSSSEG7E16_V_MF2 = 10488,
-  PseudoVSSSEG7E16_V_MF2_MASK = 10489,
-  PseudoVSSSEG7E16_V_MF4 = 10490,
-  PseudoVSSSEG7E16_V_MF4_MASK = 10491,
-  PseudoVSSSEG7E32_V_M1 = 10492,
-  PseudoVSSSEG7E32_V_M1_MASK = 10493,
-  PseudoVSSSEG7E32_V_MF2 = 10494,
-  PseudoVSSSEG7E32_V_MF2_MASK = 10495,
-  PseudoVSSSEG7E64_V_M1 = 10496,
-  PseudoVSSSEG7E64_V_M1_MASK = 10497,
-  PseudoVSSSEG7E8_V_M1 = 10498,
-  PseudoVSSSEG7E8_V_M1_MASK = 10499,
-  PseudoVSSSEG7E8_V_MF2 = 10500,
-  PseudoVSSSEG7E8_V_MF2_MASK = 10501,
-  PseudoVSSSEG7E8_V_MF4 = 10502,
-  PseudoVSSSEG7E8_V_MF4_MASK = 10503,
-  PseudoVSSSEG7E8_V_MF8 = 10504,
-  PseudoVSSSEG7E8_V_MF8_MASK = 10505,
-  PseudoVSSSEG8E16_V_M1 = 10506,
-  PseudoVSSSEG8E16_V_M1_MASK = 10507,
-  PseudoVSSSEG8E16_V_MF2 = 10508,
-  PseudoVSSSEG8E16_V_MF2_MASK = 10509,
-  PseudoVSSSEG8E16_V_MF4 = 10510,
-  PseudoVSSSEG8E16_V_MF4_MASK = 10511,
-  PseudoVSSSEG8E32_V_M1 = 10512,
-  PseudoVSSSEG8E32_V_M1_MASK = 10513,
-  PseudoVSSSEG8E32_V_MF2 = 10514,
-  PseudoVSSSEG8E32_V_MF2_MASK = 10515,
-  PseudoVSSSEG8E64_V_M1 = 10516,
-  PseudoVSSSEG8E64_V_M1_MASK = 10517,
-  PseudoVSSSEG8E8_V_M1 = 10518,
-  PseudoVSSSEG8E8_V_M1_MASK = 10519,
-  PseudoVSSSEG8E8_V_MF2 = 10520,
-  PseudoVSSSEG8E8_V_MF2_MASK = 10521,
-  PseudoVSSSEG8E8_V_MF4 = 10522,
-  PseudoVSSSEG8E8_V_MF4_MASK = 10523,
-  PseudoVSSSEG8E8_V_MF8 = 10524,
-  PseudoVSSSEG8E8_V_MF8_MASK = 10525,
-  PseudoVSSUBU_VV_M1 = 10526,
-  PseudoVSSUBU_VV_M1_MASK = 10527,
-  PseudoVSSUBU_VV_M2 = 10528,
-  PseudoVSSUBU_VV_M2_MASK = 10529,
-  PseudoVSSUBU_VV_M4 = 10530,
-  PseudoVSSUBU_VV_M4_MASK = 10531,
-  PseudoVSSUBU_VV_M8 = 10532,
-  PseudoVSSUBU_VV_M8_MASK = 10533,
-  PseudoVSSUBU_VV_MF2 = 10534,
-  PseudoVSSUBU_VV_MF2_MASK = 10535,
-  PseudoVSSUBU_VV_MF4 = 10536,
-  PseudoVSSUBU_VV_MF4_MASK = 10537,
-  PseudoVSSUBU_VV_MF8 = 10538,
-  PseudoVSSUBU_VV_MF8_MASK = 10539,
-  PseudoVSSUBU_VX_M1 = 10540,
-  PseudoVSSUBU_VX_M1_MASK = 10541,
-  PseudoVSSUBU_VX_M2 = 10542,
-  PseudoVSSUBU_VX_M2_MASK = 10543,
-  PseudoVSSUBU_VX_M4 = 10544,
-  PseudoVSSUBU_VX_M4_MASK = 10545,
-  PseudoVSSUBU_VX_M8 = 10546,
-  PseudoVSSUBU_VX_M8_MASK = 10547,
-  PseudoVSSUBU_VX_MF2 = 10548,
-  PseudoVSSUBU_VX_MF2_MASK = 10549,
-  PseudoVSSUBU_VX_MF4 = 10550,
-  PseudoVSSUBU_VX_MF4_MASK = 10551,
-  PseudoVSSUBU_VX_MF8 = 10552,
-  PseudoVSSUBU_VX_MF8_MASK = 10553,
-  PseudoVSSUB_VV_M1 = 10554,
-  PseudoVSSUB_VV_M1_MASK = 10555,
-  PseudoVSSUB_VV_M2 = 10556,
-  PseudoVSSUB_VV_M2_MASK = 10557,
-  PseudoVSSUB_VV_M4 = 10558,
-  PseudoVSSUB_VV_M4_MASK = 10559,
-  PseudoVSSUB_VV_M8 = 10560,
-  PseudoVSSUB_VV_M8_MASK = 10561,
-  PseudoVSSUB_VV_MF2 = 10562,
-  PseudoVSSUB_VV_MF2_MASK = 10563,
-  PseudoVSSUB_VV_MF4 = 10564,
-  PseudoVSSUB_VV_MF4_MASK = 10565,
-  PseudoVSSUB_VV_MF8 = 10566,
-  PseudoVSSUB_VV_MF8_MASK = 10567,
-  PseudoVSSUB_VX_M1 = 10568,
-  PseudoVSSUB_VX_M1_MASK = 10569,
-  PseudoVSSUB_VX_M2 = 10570,
-  PseudoVSSUB_VX_M2_MASK = 10571,
-  PseudoVSSUB_VX_M4 = 10572,
-  PseudoVSSUB_VX_M4_MASK = 10573,
-  PseudoVSSUB_VX_M8 = 10574,
-  PseudoVSSUB_VX_M8_MASK = 10575,
-  PseudoVSSUB_VX_MF2 = 10576,
-  PseudoVSSUB_VX_MF2_MASK = 10577,
-  PseudoVSSUB_VX_MF4 = 10578,
-  PseudoVSSUB_VX_MF4_MASK = 10579,
-  PseudoVSSUB_VX_MF8 = 10580,
-  PseudoVSSUB_VX_MF8_MASK = 10581,
-  PseudoVSUB_VV_M1 = 10582,
-  PseudoVSUB_VV_M1_MASK = 10583,
-  PseudoVSUB_VV_M2 = 10584,
-  PseudoVSUB_VV_M2_MASK = 10585,
-  PseudoVSUB_VV_M4 = 10586,
-  PseudoVSUB_VV_M4_MASK = 10587,
-  PseudoVSUB_VV_M8 = 10588,
-  PseudoVSUB_VV_M8_MASK = 10589,
-  PseudoVSUB_VV_MF2 = 10590,
-  PseudoVSUB_VV_MF2_MASK = 10591,
-  PseudoVSUB_VV_MF4 = 10592,
-  PseudoVSUB_VV_MF4_MASK = 10593,
-  PseudoVSUB_VV_MF8 = 10594,
-  PseudoVSUB_VV_MF8_MASK = 10595,
-  PseudoVSUB_VX_M1 = 10596,
-  PseudoVSUB_VX_M1_MASK = 10597,
-  PseudoVSUB_VX_M2 = 10598,
-  PseudoVSUB_VX_M2_MASK = 10599,
-  PseudoVSUB_VX_M4 = 10600,
-  PseudoVSUB_VX_M4_MASK = 10601,
-  PseudoVSUB_VX_M8 = 10602,
-  PseudoVSUB_VX_M8_MASK = 10603,
-  PseudoVSUB_VX_MF2 = 10604,
-  PseudoVSUB_VX_MF2_MASK = 10605,
-  PseudoVSUB_VX_MF4 = 10606,
-  PseudoVSUB_VX_MF4_MASK = 10607,
-  PseudoVSUB_VX_MF8 = 10608,
-  PseudoVSUB_VX_MF8_MASK = 10609,
-  PseudoVSUXEI16_V_M1_M1 = 10610,
-  PseudoVSUXEI16_V_M1_M1_MASK = 10611,
-  PseudoVSUXEI16_V_M1_M2 = 10612,
-  PseudoVSUXEI16_V_M1_M2_MASK = 10613,
-  PseudoVSUXEI16_V_M1_M4 = 10614,
-  PseudoVSUXEI16_V_M1_M4_MASK = 10615,
-  PseudoVSUXEI16_V_M1_MF2 = 10616,
-  PseudoVSUXEI16_V_M1_MF2_MASK = 10617,
-  PseudoVSUXEI16_V_M2_M1 = 10618,
-  PseudoVSUXEI16_V_M2_M1_MASK = 10619,
-  PseudoVSUXEI16_V_M2_M2 = 10620,
-  PseudoVSUXEI16_V_M2_M2_MASK = 10621,
-  PseudoVSUXEI16_V_M2_M4 = 10622,
-  PseudoVSUXEI16_V_M2_M4_MASK = 10623,
-  PseudoVSUXEI16_V_M2_M8 = 10624,
-  PseudoVSUXEI16_V_M2_M8_MASK = 10625,
-  PseudoVSUXEI16_V_M4_M2 = 10626,
-  PseudoVSUXEI16_V_M4_M2_MASK = 10627,
-  PseudoVSUXEI16_V_M4_M4 = 10628,
-  PseudoVSUXEI16_V_M4_M4_MASK = 10629,
-  PseudoVSUXEI16_V_M4_M8 = 10630,
-  PseudoVSUXEI16_V_M4_M8_MASK = 10631,
-  PseudoVSUXEI16_V_M8_M4 = 10632,
-  PseudoVSUXEI16_V_M8_M4_MASK = 10633,
-  PseudoVSUXEI16_V_M8_M8 = 10634,
-  PseudoVSUXEI16_V_M8_M8_MASK = 10635,
-  PseudoVSUXEI16_V_MF2_M1 = 10636,
-  PseudoVSUXEI16_V_MF2_M1_MASK = 10637,
-  PseudoVSUXEI16_V_MF2_M2 = 10638,
-  PseudoVSUXEI16_V_MF2_M2_MASK = 10639,
-  PseudoVSUXEI16_V_MF2_MF2 = 10640,
-  PseudoVSUXEI16_V_MF2_MF2_MASK = 10641,
-  PseudoVSUXEI16_V_MF2_MF4 = 10642,
-  PseudoVSUXEI16_V_MF2_MF4_MASK = 10643,
-  PseudoVSUXEI16_V_MF4_M1 = 10644,
-  PseudoVSUXEI16_V_MF4_M1_MASK = 10645,
-  PseudoVSUXEI16_V_MF4_MF2 = 10646,
-  PseudoVSUXEI16_V_MF4_MF2_MASK = 10647,
-  PseudoVSUXEI16_V_MF4_MF4 = 10648,
-  PseudoVSUXEI16_V_MF4_MF4_MASK = 10649,
-  PseudoVSUXEI16_V_MF4_MF8 = 10650,
-  PseudoVSUXEI16_V_MF4_MF8_MASK = 10651,
-  PseudoVSUXEI32_V_M1_M1 = 10652,
-  PseudoVSUXEI32_V_M1_M1_MASK = 10653,
-  PseudoVSUXEI32_V_M1_M2 = 10654,
-  PseudoVSUXEI32_V_M1_M2_MASK = 10655,
-  PseudoVSUXEI32_V_M1_MF2 = 10656,
-  PseudoVSUXEI32_V_M1_MF2_MASK = 10657,
-  PseudoVSUXEI32_V_M1_MF4 = 10658,
-  PseudoVSUXEI32_V_M1_MF4_MASK = 10659,
-  PseudoVSUXEI32_V_M2_M1 = 10660,
-  PseudoVSUXEI32_V_M2_M1_MASK = 10661,
-  PseudoVSUXEI32_V_M2_M2 = 10662,
-  PseudoVSUXEI32_V_M2_M2_MASK = 10663,
-  PseudoVSUXEI32_V_M2_M4 = 10664,
-  PseudoVSUXEI32_V_M2_M4_MASK = 10665,
-  PseudoVSUXEI32_V_M2_MF2 = 10666,
-  PseudoVSUXEI32_V_M2_MF2_MASK = 10667,
-  PseudoVSUXEI32_V_M4_M1 = 10668,
-  PseudoVSUXEI32_V_M4_M1_MASK = 10669,
-  PseudoVSUXEI32_V_M4_M2 = 10670,
-  PseudoVSUXEI32_V_M4_M2_MASK = 10671,
-  PseudoVSUXEI32_V_M4_M4 = 10672,
-  PseudoVSUXEI32_V_M4_M4_MASK = 10673,
-  PseudoVSUXEI32_V_M4_M8 = 10674,
-  PseudoVSUXEI32_V_M4_M8_MASK = 10675,
-  PseudoVSUXEI32_V_M8_M2 = 10676,
-  PseudoVSUXEI32_V_M8_M2_MASK = 10677,
-  PseudoVSUXEI32_V_M8_M4 = 10678,
-  PseudoVSUXEI32_V_M8_M4_MASK = 10679,
-  PseudoVSUXEI32_V_M8_M8 = 10680,
-  PseudoVSUXEI32_V_M8_M8_MASK = 10681,
-  PseudoVSUXEI32_V_MF2_M1 = 10682,
-  PseudoVSUXEI32_V_MF2_M1_MASK = 10683,
-  PseudoVSUXEI32_V_MF2_MF2 = 10684,
-  PseudoVSUXEI32_V_MF2_MF2_MASK = 10685,
-  PseudoVSUXEI32_V_MF2_MF4 = 10686,
-  PseudoVSUXEI32_V_MF2_MF4_MASK = 10687,
-  PseudoVSUXEI32_V_MF2_MF8 = 10688,
-  PseudoVSUXEI32_V_MF2_MF8_MASK = 10689,
-  PseudoVSUXEI64_V_M1_M1 = 10690,
-  PseudoVSUXEI64_V_M1_M1_MASK = 10691,
-  PseudoVSUXEI64_V_M1_MF2 = 10692,
-  PseudoVSUXEI64_V_M1_MF2_MASK = 10693,
-  PseudoVSUXEI64_V_M1_MF4 = 10694,
-  PseudoVSUXEI64_V_M1_MF4_MASK = 10695,
-  PseudoVSUXEI64_V_M1_MF8 = 10696,
-  PseudoVSUXEI64_V_M1_MF8_MASK = 10697,
-  PseudoVSUXEI64_V_M2_M1 = 10698,
-  PseudoVSUXEI64_V_M2_M1_MASK = 10699,
-  PseudoVSUXEI64_V_M2_M2 = 10700,
-  PseudoVSUXEI64_V_M2_M2_MASK = 10701,
-  PseudoVSUXEI64_V_M2_MF2 = 10702,
-  PseudoVSUXEI64_V_M2_MF2_MASK = 10703,
-  PseudoVSUXEI64_V_M2_MF4 = 10704,
-  PseudoVSUXEI64_V_M2_MF4_MASK = 10705,
-  PseudoVSUXEI64_V_M4_M1 = 10706,
-  PseudoVSUXEI64_V_M4_M1_MASK = 10707,
-  PseudoVSUXEI64_V_M4_M2 = 10708,
-  PseudoVSUXEI64_V_M4_M2_MASK = 10709,
-  PseudoVSUXEI64_V_M4_M4 = 10710,
-  PseudoVSUXEI64_V_M4_M4_MASK = 10711,
-  PseudoVSUXEI64_V_M4_MF2 = 10712,
-  PseudoVSUXEI64_V_M4_MF2_MASK = 10713,
-  PseudoVSUXEI64_V_M8_M1 = 10714,
-  PseudoVSUXEI64_V_M8_M1_MASK = 10715,
-  PseudoVSUXEI64_V_M8_M2 = 10716,
-  PseudoVSUXEI64_V_M8_M2_MASK = 10717,
-  PseudoVSUXEI64_V_M8_M4 = 10718,
-  PseudoVSUXEI64_V_M8_M4_MASK = 10719,
-  PseudoVSUXEI64_V_M8_M8 = 10720,
-  PseudoVSUXEI64_V_M8_M8_MASK = 10721,
-  PseudoVSUXEI8_V_M1_M1 = 10722,
-  PseudoVSUXEI8_V_M1_M1_MASK = 10723,
-  PseudoVSUXEI8_V_M1_M2 = 10724,
-  PseudoVSUXEI8_V_M1_M2_MASK = 10725,
-  PseudoVSUXEI8_V_M1_M4 = 10726,
-  PseudoVSUXEI8_V_M1_M4_MASK = 10727,
-  PseudoVSUXEI8_V_M1_M8 = 10728,
-  PseudoVSUXEI8_V_M1_M8_MASK = 10729,
-  PseudoVSUXEI8_V_M2_M2 = 10730,
-  PseudoVSUXEI8_V_M2_M2_MASK = 10731,
-  PseudoVSUXEI8_V_M2_M4 = 10732,
-  PseudoVSUXEI8_V_M2_M4_MASK = 10733,
-  PseudoVSUXEI8_V_M2_M8 = 10734,
-  PseudoVSUXEI8_V_M2_M8_MASK = 10735,
-  PseudoVSUXEI8_V_M4_M4 = 10736,
-  PseudoVSUXEI8_V_M4_M4_MASK = 10737,
-  PseudoVSUXEI8_V_M4_M8 = 10738,
-  PseudoVSUXEI8_V_M4_M8_MASK = 10739,
-  PseudoVSUXEI8_V_M8_M8 = 10740,
-  PseudoVSUXEI8_V_M8_M8_MASK = 10741,
-  PseudoVSUXEI8_V_MF2_M1 = 10742,
-  PseudoVSUXEI8_V_MF2_M1_MASK = 10743,
-  PseudoVSUXEI8_V_MF2_M2 = 10744,
-  PseudoVSUXEI8_V_MF2_M2_MASK = 10745,
-  PseudoVSUXEI8_V_MF2_M4 = 10746,
-  PseudoVSUXEI8_V_MF2_M4_MASK = 10747,
-  PseudoVSUXEI8_V_MF2_MF2 = 10748,
-  PseudoVSUXEI8_V_MF2_MF2_MASK = 10749,
-  PseudoVSUXEI8_V_MF4_M1 = 10750,
-  PseudoVSUXEI8_V_MF4_M1_MASK = 10751,
-  PseudoVSUXEI8_V_MF4_M2 = 10752,
-  PseudoVSUXEI8_V_MF4_M2_MASK = 10753,
-  PseudoVSUXEI8_V_MF4_MF2 = 10754,
-  PseudoVSUXEI8_V_MF4_MF2_MASK = 10755,
-  PseudoVSUXEI8_V_MF4_MF4 = 10756,
-  PseudoVSUXEI8_V_MF4_MF4_MASK = 10757,
-  PseudoVSUXEI8_V_MF8_M1 = 10758,
-  PseudoVSUXEI8_V_MF8_M1_MASK = 10759,
-  PseudoVSUXEI8_V_MF8_MF2 = 10760,
-  PseudoVSUXEI8_V_MF8_MF2_MASK = 10761,
-  PseudoVSUXEI8_V_MF8_MF4 = 10762,
-  PseudoVSUXEI8_V_MF8_MF4_MASK = 10763,
-  PseudoVSUXEI8_V_MF8_MF8 = 10764,
-  PseudoVSUXEI8_V_MF8_MF8_MASK = 10765,
-  PseudoVSUXSEG2EI16_V_M1_M1 = 10766,
-  PseudoVSUXSEG2EI16_V_M1_M1_MASK = 10767,
-  PseudoVSUXSEG2EI16_V_M1_M2 = 10768,
-  PseudoVSUXSEG2EI16_V_M1_M2_MASK = 10769,
-  PseudoVSUXSEG2EI16_V_M1_M4 = 10770,
-  PseudoVSUXSEG2EI16_V_M1_M4_MASK = 10771,
-  PseudoVSUXSEG2EI16_V_M1_MF2 = 10772,
-  PseudoVSUXSEG2EI16_V_M1_MF2_MASK = 10773,
-  PseudoVSUXSEG2EI16_V_M2_M1 = 10774,
-  PseudoVSUXSEG2EI16_V_M2_M1_MASK = 10775,
-  PseudoVSUXSEG2EI16_V_M2_M2 = 10776,
-  PseudoVSUXSEG2EI16_V_M2_M2_MASK = 10777,
-  PseudoVSUXSEG2EI16_V_M2_M4 = 10778,
-  PseudoVSUXSEG2EI16_V_M2_M4_MASK = 10779,
-  PseudoVSUXSEG2EI16_V_M4_M2 = 10780,
-  PseudoVSUXSEG2EI16_V_M4_M2_MASK = 10781,
-  PseudoVSUXSEG2EI16_V_M4_M4 = 10782,
-  PseudoVSUXSEG2EI16_V_M4_M4_MASK = 10783,
-  PseudoVSUXSEG2EI16_V_M8_M4 = 10784,
-  PseudoVSUXSEG2EI16_V_M8_M4_MASK = 10785,
-  PseudoVSUXSEG2EI16_V_MF2_M1 = 10786,
-  PseudoVSUXSEG2EI16_V_MF2_M1_MASK = 10787,
-  PseudoVSUXSEG2EI16_V_MF2_M2 = 10788,
-  PseudoVSUXSEG2EI16_V_MF2_M2_MASK = 10789,
-  PseudoVSUXSEG2EI16_V_MF2_MF2 = 10790,
-  PseudoVSUXSEG2EI16_V_MF2_MF2_MASK = 10791,
-  PseudoVSUXSEG2EI16_V_MF2_MF4 = 10792,
-  PseudoVSUXSEG2EI16_V_MF2_MF4_MASK = 10793,
-  PseudoVSUXSEG2EI16_V_MF4_M1 = 10794,
-  PseudoVSUXSEG2EI16_V_MF4_M1_MASK = 10795,
-  PseudoVSUXSEG2EI16_V_MF4_MF2 = 10796,
-  PseudoVSUXSEG2EI16_V_MF4_MF2_MASK = 10797,
-  PseudoVSUXSEG2EI16_V_MF4_MF4 = 10798,
-  PseudoVSUXSEG2EI16_V_MF4_MF4_MASK = 10799,
-  PseudoVSUXSEG2EI16_V_MF4_MF8 = 10800,
-  PseudoVSUXSEG2EI16_V_MF4_MF8_MASK = 10801,
-  PseudoVSUXSEG2EI32_V_M1_M1 = 10802,
-  PseudoVSUXSEG2EI32_V_M1_M1_MASK = 10803,
-  PseudoVSUXSEG2EI32_V_M1_M2 = 10804,
-  PseudoVSUXSEG2EI32_V_M1_M2_MASK = 10805,
-  PseudoVSUXSEG2EI32_V_M1_MF2 = 10806,
-  PseudoVSUXSEG2EI32_V_M1_MF2_MASK = 10807,
-  PseudoVSUXSEG2EI32_V_M1_MF4 = 10808,
-  PseudoVSUXSEG2EI32_V_M1_MF4_MASK = 10809,
-  PseudoVSUXSEG2EI32_V_M2_M1 = 10810,
-  PseudoVSUXSEG2EI32_V_M2_M1_MASK = 10811,
-  PseudoVSUXSEG2EI32_V_M2_M2 = 10812,
-  PseudoVSUXSEG2EI32_V_M2_M2_MASK = 10813,
-  PseudoVSUXSEG2EI32_V_M2_M4 = 10814,
-  PseudoVSUXSEG2EI32_V_M2_M4_MASK = 10815,
-  PseudoVSUXSEG2EI32_V_M2_MF2 = 10816,
-  PseudoVSUXSEG2EI32_V_M2_MF2_MASK = 10817,
-  PseudoVSUXSEG2EI32_V_M4_M1 = 10818,
-  PseudoVSUXSEG2EI32_V_M4_M1_MASK = 10819,
-  PseudoVSUXSEG2EI32_V_M4_M2 = 10820,
-  PseudoVSUXSEG2EI32_V_M4_M2_MASK = 10821,
-  PseudoVSUXSEG2EI32_V_M4_M4 = 10822,
-  PseudoVSUXSEG2EI32_V_M4_M4_MASK = 10823,
-  PseudoVSUXSEG2EI32_V_M8_M2 = 10824,
-  PseudoVSUXSEG2EI32_V_M8_M2_MASK = 10825,
-  PseudoVSUXSEG2EI32_V_M8_M4 = 10826,
-  PseudoVSUXSEG2EI32_V_M8_M4_MASK = 10827,
-  PseudoVSUXSEG2EI32_V_MF2_M1 = 10828,
-  PseudoVSUXSEG2EI32_V_MF2_M1_MASK = 10829,
-  PseudoVSUXSEG2EI32_V_MF2_MF2 = 10830,
-  PseudoVSUXSEG2EI32_V_MF2_MF2_MASK = 10831,
-  PseudoVSUXSEG2EI32_V_MF2_MF4 = 10832,
-  PseudoVSUXSEG2EI32_V_MF2_MF4_MASK = 10833,
-  PseudoVSUXSEG2EI32_V_MF2_MF8 = 10834,
-  PseudoVSUXSEG2EI32_V_MF2_MF8_MASK = 10835,
-  PseudoVSUXSEG2EI64_V_M1_M1 = 10836,
-  PseudoVSUXSEG2EI64_V_M1_M1_MASK = 10837,
-  PseudoVSUXSEG2EI64_V_M1_MF2 = 10838,
-  PseudoVSUXSEG2EI64_V_M1_MF2_MASK = 10839,
-  PseudoVSUXSEG2EI64_V_M1_MF4 = 10840,
-  PseudoVSUXSEG2EI64_V_M1_MF4_MASK = 10841,
-  PseudoVSUXSEG2EI64_V_M1_MF8 = 10842,
-  PseudoVSUXSEG2EI64_V_M1_MF8_MASK = 10843,
-  PseudoVSUXSEG2EI64_V_M2_M1 = 10844,
-  PseudoVSUXSEG2EI64_V_M2_M1_MASK = 10845,
-  PseudoVSUXSEG2EI64_V_M2_M2 = 10846,
-  PseudoVSUXSEG2EI64_V_M2_M2_MASK = 10847,
-  PseudoVSUXSEG2EI64_V_M2_MF2 = 10848,
-  PseudoVSUXSEG2EI64_V_M2_MF2_MASK = 10849,
-  PseudoVSUXSEG2EI64_V_M2_MF4 = 10850,
-  PseudoVSUXSEG2EI64_V_M2_MF4_MASK = 10851,
-  PseudoVSUXSEG2EI64_V_M4_M1 = 10852,
-  PseudoVSUXSEG2EI64_V_M4_M1_MASK = 10853,
-  PseudoVSUXSEG2EI64_V_M4_M2 = 10854,
-  PseudoVSUXSEG2EI64_V_M4_M2_MASK = 10855,
-  PseudoVSUXSEG2EI64_V_M4_M4 = 10856,
-  PseudoVSUXSEG2EI64_V_M4_M4_MASK = 10857,
-  PseudoVSUXSEG2EI64_V_M4_MF2 = 10858,
-  PseudoVSUXSEG2EI64_V_M4_MF2_MASK = 10859,
-  PseudoVSUXSEG2EI64_V_M8_M1 = 10860,
-  PseudoVSUXSEG2EI64_V_M8_M1_MASK = 10861,
-  PseudoVSUXSEG2EI64_V_M8_M2 = 10862,
-  PseudoVSUXSEG2EI64_V_M8_M2_MASK = 10863,
-  PseudoVSUXSEG2EI64_V_M8_M4 = 10864,
-  PseudoVSUXSEG2EI64_V_M8_M4_MASK = 10865,
-  PseudoVSUXSEG2EI8_V_M1_M1 = 10866,
-  PseudoVSUXSEG2EI8_V_M1_M1_MASK = 10867,
-  PseudoVSUXSEG2EI8_V_M1_M2 = 10868,
-  PseudoVSUXSEG2EI8_V_M1_M2_MASK = 10869,
-  PseudoVSUXSEG2EI8_V_M1_M4 = 10870,
-  PseudoVSUXSEG2EI8_V_M1_M4_MASK = 10871,
-  PseudoVSUXSEG2EI8_V_M2_M2 = 10872,
-  PseudoVSUXSEG2EI8_V_M2_M2_MASK = 10873,
-  PseudoVSUXSEG2EI8_V_M2_M4 = 10874,
-  PseudoVSUXSEG2EI8_V_M2_M4_MASK = 10875,
-  PseudoVSUXSEG2EI8_V_M4_M4 = 10876,
-  PseudoVSUXSEG2EI8_V_M4_M4_MASK = 10877,
-  PseudoVSUXSEG2EI8_V_MF2_M1 = 10878,
-  PseudoVSUXSEG2EI8_V_MF2_M1_MASK = 10879,
-  PseudoVSUXSEG2EI8_V_MF2_M2 = 10880,
-  PseudoVSUXSEG2EI8_V_MF2_M2_MASK = 10881,
-  PseudoVSUXSEG2EI8_V_MF2_M4 = 10882,
-  PseudoVSUXSEG2EI8_V_MF2_M4_MASK = 10883,
-  PseudoVSUXSEG2EI8_V_MF2_MF2 = 10884,
-  PseudoVSUXSEG2EI8_V_MF2_MF2_MASK = 10885,
-  PseudoVSUXSEG2EI8_V_MF4_M1 = 10886,
-  PseudoVSUXSEG2EI8_V_MF4_M1_MASK = 10887,
-  PseudoVSUXSEG2EI8_V_MF4_M2 = 10888,
-  PseudoVSUXSEG2EI8_V_MF4_M2_MASK = 10889,
-  PseudoVSUXSEG2EI8_V_MF4_MF2 = 10890,
-  PseudoVSUXSEG2EI8_V_MF4_MF2_MASK = 10891,
-  PseudoVSUXSEG2EI8_V_MF4_MF4 = 10892,
-  PseudoVSUXSEG2EI8_V_MF4_MF4_MASK = 10893,
-  PseudoVSUXSEG2EI8_V_MF8_M1 = 10894,
-  PseudoVSUXSEG2EI8_V_MF8_M1_MASK = 10895,
-  PseudoVSUXSEG2EI8_V_MF8_MF2 = 10896,
-  PseudoVSUXSEG2EI8_V_MF8_MF2_MASK = 10897,
-  PseudoVSUXSEG2EI8_V_MF8_MF4 = 10898,
-  PseudoVSUXSEG2EI8_V_MF8_MF4_MASK = 10899,
-  PseudoVSUXSEG2EI8_V_MF8_MF8 = 10900,
-  PseudoVSUXSEG2EI8_V_MF8_MF8_MASK = 10901,
-  PseudoVSUXSEG3EI16_V_M1_M1 = 10902,
-  PseudoVSUXSEG3EI16_V_M1_M1_MASK = 10903,
-  PseudoVSUXSEG3EI16_V_M1_M2 = 10904,
-  PseudoVSUXSEG3EI16_V_M1_M2_MASK = 10905,
-  PseudoVSUXSEG3EI16_V_M1_MF2 = 10906,
-  PseudoVSUXSEG3EI16_V_M1_MF2_MASK = 10907,
-  PseudoVSUXSEG3EI16_V_M2_M1 = 10908,
-  PseudoVSUXSEG3EI16_V_M2_M1_MASK = 10909,
-  PseudoVSUXSEG3EI16_V_M2_M2 = 10910,
-  PseudoVSUXSEG3EI16_V_M2_M2_MASK = 10911,
-  PseudoVSUXSEG3EI16_V_M4_M2 = 10912,
-  PseudoVSUXSEG3EI16_V_M4_M2_MASK = 10913,
-  PseudoVSUXSEG3EI16_V_MF2_M1 = 10914,
-  PseudoVSUXSEG3EI16_V_MF2_M1_MASK = 10915,
-  PseudoVSUXSEG3EI16_V_MF2_M2 = 10916,
-  PseudoVSUXSEG3EI16_V_MF2_M2_MASK = 10917,
-  PseudoVSUXSEG3EI16_V_MF2_MF2 = 10918,
-  PseudoVSUXSEG3EI16_V_MF2_MF2_MASK = 10919,
-  PseudoVSUXSEG3EI16_V_MF2_MF4 = 10920,
-  PseudoVSUXSEG3EI16_V_MF2_MF4_MASK = 10921,
-  PseudoVSUXSEG3EI16_V_MF4_M1 = 10922,
-  PseudoVSUXSEG3EI16_V_MF4_M1_MASK = 10923,
-  PseudoVSUXSEG3EI16_V_MF4_MF2 = 10924,
-  PseudoVSUXSEG3EI16_V_MF4_MF2_MASK = 10925,
-  PseudoVSUXSEG3EI16_V_MF4_MF4 = 10926,
-  PseudoVSUXSEG3EI16_V_MF4_MF4_MASK = 10927,
-  PseudoVSUXSEG3EI16_V_MF4_MF8 = 10928,
-  PseudoVSUXSEG3EI16_V_MF4_MF8_MASK = 10929,
-  PseudoVSUXSEG3EI32_V_M1_M1 = 10930,
-  PseudoVSUXSEG3EI32_V_M1_M1_MASK = 10931,
-  PseudoVSUXSEG3EI32_V_M1_M2 = 10932,
-  PseudoVSUXSEG3EI32_V_M1_M2_MASK = 10933,
-  PseudoVSUXSEG3EI32_V_M1_MF2 = 10934,
-  PseudoVSUXSEG3EI32_V_M1_MF2_MASK = 10935,
-  PseudoVSUXSEG3EI32_V_M1_MF4 = 10936,
-  PseudoVSUXSEG3EI32_V_M1_MF4_MASK = 10937,
-  PseudoVSUXSEG3EI32_V_M2_M1 = 10938,
-  PseudoVSUXSEG3EI32_V_M2_M1_MASK = 10939,
-  PseudoVSUXSEG3EI32_V_M2_M2 = 10940,
-  PseudoVSUXSEG3EI32_V_M2_M2_MASK = 10941,
-  PseudoVSUXSEG3EI32_V_M2_MF2 = 10942,
-  PseudoVSUXSEG3EI32_V_M2_MF2_MASK = 10943,
-  PseudoVSUXSEG3EI32_V_M4_M1 = 10944,
-  PseudoVSUXSEG3EI32_V_M4_M1_MASK = 10945,
-  PseudoVSUXSEG3EI32_V_M4_M2 = 10946,
-  PseudoVSUXSEG3EI32_V_M4_M2_MASK = 10947,
-  PseudoVSUXSEG3EI32_V_M8_M2 = 10948,
-  PseudoVSUXSEG3EI32_V_M8_M2_MASK = 10949,
-  PseudoVSUXSEG3EI32_V_MF2_M1 = 10950,
-  PseudoVSUXSEG3EI32_V_MF2_M1_MASK = 10951,
-  PseudoVSUXSEG3EI32_V_MF2_MF2 = 10952,
-  PseudoVSUXSEG3EI32_V_MF2_MF2_MASK = 10953,
-  PseudoVSUXSEG3EI32_V_MF2_MF4 = 10954,
-  PseudoVSUXSEG3EI32_V_MF2_MF4_MASK = 10955,
-  PseudoVSUXSEG3EI32_V_MF2_MF8 = 10956,
-  PseudoVSUXSEG3EI32_V_MF2_MF8_MASK = 10957,
-  PseudoVSUXSEG3EI64_V_M1_M1 = 10958,
-  PseudoVSUXSEG3EI64_V_M1_M1_MASK = 10959,
-  PseudoVSUXSEG3EI64_V_M1_MF2 = 10960,
-  PseudoVSUXSEG3EI64_V_M1_MF2_MASK = 10961,
-  PseudoVSUXSEG3EI64_V_M1_MF4 = 10962,
-  PseudoVSUXSEG3EI64_V_M1_MF4_MASK = 10963,
-  PseudoVSUXSEG3EI64_V_M1_MF8 = 10964,
-  PseudoVSUXSEG3EI64_V_M1_MF8_MASK = 10965,
-  PseudoVSUXSEG3EI64_V_M2_M1 = 10966,
-  PseudoVSUXSEG3EI64_V_M2_M1_MASK = 10967,
-  PseudoVSUXSEG3EI64_V_M2_M2 = 10968,
-  PseudoVSUXSEG3EI64_V_M2_M2_MASK = 10969,
-  PseudoVSUXSEG3EI64_V_M2_MF2 = 10970,
-  PseudoVSUXSEG3EI64_V_M2_MF2_MASK = 10971,
-  PseudoVSUXSEG3EI64_V_M2_MF4 = 10972,
-  PseudoVSUXSEG3EI64_V_M2_MF4_MASK = 10973,
-  PseudoVSUXSEG3EI64_V_M4_M1 = 10974,
-  PseudoVSUXSEG3EI64_V_M4_M1_MASK = 10975,
-  PseudoVSUXSEG3EI64_V_M4_M2 = 10976,
-  PseudoVSUXSEG3EI64_V_M4_M2_MASK = 10977,
-  PseudoVSUXSEG3EI64_V_M4_MF2 = 10978,
-  PseudoVSUXSEG3EI64_V_M4_MF2_MASK = 10979,
-  PseudoVSUXSEG3EI64_V_M8_M1 = 10980,
-  PseudoVSUXSEG3EI64_V_M8_M1_MASK = 10981,
-  PseudoVSUXSEG3EI64_V_M8_M2 = 10982,
-  PseudoVSUXSEG3EI64_V_M8_M2_MASK = 10983,
-  PseudoVSUXSEG3EI8_V_M1_M1 = 10984,
-  PseudoVSUXSEG3EI8_V_M1_M1_MASK = 10985,
-  PseudoVSUXSEG3EI8_V_M1_M2 = 10986,
-  PseudoVSUXSEG3EI8_V_M1_M2_MASK = 10987,
-  PseudoVSUXSEG3EI8_V_M2_M2 = 10988,
-  PseudoVSUXSEG3EI8_V_M2_M2_MASK = 10989,
-  PseudoVSUXSEG3EI8_V_MF2_M1 = 10990,
-  PseudoVSUXSEG3EI8_V_MF2_M1_MASK = 10991,
-  PseudoVSUXSEG3EI8_V_MF2_M2 = 10992,
-  PseudoVSUXSEG3EI8_V_MF2_M2_MASK = 10993,
-  PseudoVSUXSEG3EI8_V_MF2_MF2 = 10994,
-  PseudoVSUXSEG3EI8_V_MF2_MF2_MASK = 10995,
-  PseudoVSUXSEG3EI8_V_MF4_M1 = 10996,
-  PseudoVSUXSEG3EI8_V_MF4_M1_MASK = 10997,
-  PseudoVSUXSEG3EI8_V_MF4_M2 = 10998,
-  PseudoVSUXSEG3EI8_V_MF4_M2_MASK = 10999,
-  PseudoVSUXSEG3EI8_V_MF4_MF2 = 11000,
-  PseudoVSUXSEG3EI8_V_MF4_MF2_MASK = 11001,
-  PseudoVSUXSEG3EI8_V_MF4_MF4 = 11002,
-  PseudoVSUXSEG3EI8_V_MF4_MF4_MASK = 11003,
-  PseudoVSUXSEG3EI8_V_MF8_M1 = 11004,
-  PseudoVSUXSEG3EI8_V_MF8_M1_MASK = 11005,
-  PseudoVSUXSEG3EI8_V_MF8_MF2 = 11006,
-  PseudoVSUXSEG3EI8_V_MF8_MF2_MASK = 11007,
-  PseudoVSUXSEG3EI8_V_MF8_MF4 = 11008,
-  PseudoVSUXSEG3EI8_V_MF8_MF4_MASK = 11009,
-  PseudoVSUXSEG3EI8_V_MF8_MF8 = 11010,
-  PseudoVSUXSEG3EI8_V_MF8_MF8_MASK = 11011,
-  PseudoVSUXSEG4EI16_V_M1_M1 = 11012,
-  PseudoVSUXSEG4EI16_V_M1_M1_MASK = 11013,
-  PseudoVSUXSEG4EI16_V_M1_M2 = 11014,
-  PseudoVSUXSEG4EI16_V_M1_M2_MASK = 11015,
-  PseudoVSUXSEG4EI16_V_M1_MF2 = 11016,
-  PseudoVSUXSEG4EI16_V_M1_MF2_MASK = 11017,
-  PseudoVSUXSEG4EI16_V_M2_M1 = 11018,
-  PseudoVSUXSEG4EI16_V_M2_M1_MASK = 11019,
-  PseudoVSUXSEG4EI16_V_M2_M2 = 11020,
-  PseudoVSUXSEG4EI16_V_M2_M2_MASK = 11021,
-  PseudoVSUXSEG4EI16_V_M4_M2 = 11022,
-  PseudoVSUXSEG4EI16_V_M4_M2_MASK = 11023,
-  PseudoVSUXSEG4EI16_V_MF2_M1 = 11024,
-  PseudoVSUXSEG4EI16_V_MF2_M1_MASK = 11025,
-  PseudoVSUXSEG4EI16_V_MF2_M2 = 11026,
-  PseudoVSUXSEG4EI16_V_MF2_M2_MASK = 11027,
-  PseudoVSUXSEG4EI16_V_MF2_MF2 = 11028,
-  PseudoVSUXSEG4EI16_V_MF2_MF2_MASK = 11029,
-  PseudoVSUXSEG4EI16_V_MF2_MF4 = 11030,
-  PseudoVSUXSEG4EI16_V_MF2_MF4_MASK = 11031,
-  PseudoVSUXSEG4EI16_V_MF4_M1 = 11032,
-  PseudoVSUXSEG4EI16_V_MF4_M1_MASK = 11033,
-  PseudoVSUXSEG4EI16_V_MF4_MF2 = 11034,
-  PseudoVSUXSEG4EI16_V_MF4_MF2_MASK = 11035,
-  PseudoVSUXSEG4EI16_V_MF4_MF4 = 11036,
-  PseudoVSUXSEG4EI16_V_MF4_MF4_MASK = 11037,
-  PseudoVSUXSEG4EI16_V_MF4_MF8 = 11038,
-  PseudoVSUXSEG4EI16_V_MF4_MF8_MASK = 11039,
-  PseudoVSUXSEG4EI32_V_M1_M1 = 11040,
-  PseudoVSUXSEG4EI32_V_M1_M1_MASK = 11041,
-  PseudoVSUXSEG4EI32_V_M1_M2 = 11042,
-  PseudoVSUXSEG4EI32_V_M1_M2_MASK = 11043,
-  PseudoVSUXSEG4EI32_V_M1_MF2 = 11044,
-  PseudoVSUXSEG4EI32_V_M1_MF2_MASK = 11045,
-  PseudoVSUXSEG4EI32_V_M1_MF4 = 11046,
-  PseudoVSUXSEG4EI32_V_M1_MF4_MASK = 11047,
-  PseudoVSUXSEG4EI32_V_M2_M1 = 11048,
-  PseudoVSUXSEG4EI32_V_M2_M1_MASK = 11049,
-  PseudoVSUXSEG4EI32_V_M2_M2 = 11050,
-  PseudoVSUXSEG4EI32_V_M2_M2_MASK = 11051,
-  PseudoVSUXSEG4EI32_V_M2_MF2 = 11052,
-  PseudoVSUXSEG4EI32_V_M2_MF2_MASK = 11053,
-  PseudoVSUXSEG4EI32_V_M4_M1 = 11054,
-  PseudoVSUXSEG4EI32_V_M4_M1_MASK = 11055,
-  PseudoVSUXSEG4EI32_V_M4_M2 = 11056,
-  PseudoVSUXSEG4EI32_V_M4_M2_MASK = 11057,
-  PseudoVSUXSEG4EI32_V_M8_M2 = 11058,
-  PseudoVSUXSEG4EI32_V_M8_M2_MASK = 11059,
-  PseudoVSUXSEG4EI32_V_MF2_M1 = 11060,
-  PseudoVSUXSEG4EI32_V_MF2_M1_MASK = 11061,
-  PseudoVSUXSEG4EI32_V_MF2_MF2 = 11062,
-  PseudoVSUXSEG4EI32_V_MF2_MF2_MASK = 11063,
-  PseudoVSUXSEG4EI32_V_MF2_MF4 = 11064,
-  PseudoVSUXSEG4EI32_V_MF2_MF4_MASK = 11065,
-  PseudoVSUXSEG4EI32_V_MF2_MF8 = 11066,
-  PseudoVSUXSEG4EI32_V_MF2_MF8_MASK = 11067,
-  PseudoVSUXSEG4EI64_V_M1_M1 = 11068,
-  PseudoVSUXSEG4EI64_V_M1_M1_MASK = 11069,
-  PseudoVSUXSEG4EI64_V_M1_MF2 = 11070,
-  PseudoVSUXSEG4EI64_V_M1_MF2_MASK = 11071,
-  PseudoVSUXSEG4EI64_V_M1_MF4 = 11072,
-  PseudoVSUXSEG4EI64_V_M1_MF4_MASK = 11073,
-  PseudoVSUXSEG4EI64_V_M1_MF8 = 11074,
-  PseudoVSUXSEG4EI64_V_M1_MF8_MASK = 11075,
-  PseudoVSUXSEG4EI64_V_M2_M1 = 11076,
-  PseudoVSUXSEG4EI64_V_M2_M1_MASK = 11077,
-  PseudoVSUXSEG4EI64_V_M2_M2 = 11078,
-  PseudoVSUXSEG4EI64_V_M2_M2_MASK = 11079,
-  PseudoVSUXSEG4EI64_V_M2_MF2 = 11080,
-  PseudoVSUXSEG4EI64_V_M2_MF2_MASK = 11081,
-  PseudoVSUXSEG4EI64_V_M2_MF4 = 11082,
-  PseudoVSUXSEG4EI64_V_M2_MF4_MASK = 11083,
-  PseudoVSUXSEG4EI64_V_M4_M1 = 11084,
-  PseudoVSUXSEG4EI64_V_M4_M1_MASK = 11085,
-  PseudoVSUXSEG4EI64_V_M4_M2 = 11086,
-  PseudoVSUXSEG4EI64_V_M4_M2_MASK = 11087,
-  PseudoVSUXSEG4EI64_V_M4_MF2 = 11088,
-  PseudoVSUXSEG4EI64_V_M4_MF2_MASK = 11089,
-  PseudoVSUXSEG4EI64_V_M8_M1 = 11090,
-  PseudoVSUXSEG4EI64_V_M8_M1_MASK = 11091,
-  PseudoVSUXSEG4EI64_V_M8_M2 = 11092,
-  PseudoVSUXSEG4EI64_V_M8_M2_MASK = 11093,
-  PseudoVSUXSEG4EI8_V_M1_M1 = 11094,
-  PseudoVSUXSEG4EI8_V_M1_M1_MASK = 11095,
-  PseudoVSUXSEG4EI8_V_M1_M2 = 11096,
-  PseudoVSUXSEG4EI8_V_M1_M2_MASK = 11097,
-  PseudoVSUXSEG4EI8_V_M2_M2 = 11098,
-  PseudoVSUXSEG4EI8_V_M2_M2_MASK = 11099,
-  PseudoVSUXSEG4EI8_V_MF2_M1 = 11100,
-  PseudoVSUXSEG4EI8_V_MF2_M1_MASK = 11101,
-  PseudoVSUXSEG4EI8_V_MF2_M2 = 11102,
-  PseudoVSUXSEG4EI8_V_MF2_M2_MASK = 11103,
-  PseudoVSUXSEG4EI8_V_MF2_MF2 = 11104,
-  PseudoVSUXSEG4EI8_V_MF2_MF2_MASK = 11105,
-  PseudoVSUXSEG4EI8_V_MF4_M1 = 11106,
-  PseudoVSUXSEG4EI8_V_MF4_M1_MASK = 11107,
-  PseudoVSUXSEG4EI8_V_MF4_M2 = 11108,
-  PseudoVSUXSEG4EI8_V_MF4_M2_MASK = 11109,
-  PseudoVSUXSEG4EI8_V_MF4_MF2 = 11110,
-  PseudoVSUXSEG4EI8_V_MF4_MF2_MASK = 11111,
-  PseudoVSUXSEG4EI8_V_MF4_MF4 = 11112,
-  PseudoVSUXSEG4EI8_V_MF4_MF4_MASK = 11113,
-  PseudoVSUXSEG4EI8_V_MF8_M1 = 11114,
-  PseudoVSUXSEG4EI8_V_MF8_M1_MASK = 11115,
-  PseudoVSUXSEG4EI8_V_MF8_MF2 = 11116,
-  PseudoVSUXSEG4EI8_V_MF8_MF2_MASK = 11117,
-  PseudoVSUXSEG4EI8_V_MF8_MF4 = 11118,
-  PseudoVSUXSEG4EI8_V_MF8_MF4_MASK = 11119,
-  PseudoVSUXSEG4EI8_V_MF8_MF8 = 11120,
-  PseudoVSUXSEG4EI8_V_MF8_MF8_MASK = 11121,
-  PseudoVSUXSEG5EI16_V_M1_M1 = 11122,
-  PseudoVSUXSEG5EI16_V_M1_M1_MASK = 11123,
-  PseudoVSUXSEG5EI16_V_M1_MF2 = 11124,
-  PseudoVSUXSEG5EI16_V_M1_MF2_MASK = 11125,
-  PseudoVSUXSEG5EI16_V_M2_M1 = 11126,
-  PseudoVSUXSEG5EI16_V_M2_M1_MASK = 11127,
-  PseudoVSUXSEG5EI16_V_MF2_M1 = 11128,
-  PseudoVSUXSEG5EI16_V_MF2_M1_MASK = 11129,
-  PseudoVSUXSEG5EI16_V_MF2_MF2 = 11130,
-  PseudoVSUXSEG5EI16_V_MF2_MF2_MASK = 11131,
-  PseudoVSUXSEG5EI16_V_MF2_MF4 = 11132,
-  PseudoVSUXSEG5EI16_V_MF2_MF4_MASK = 11133,
-  PseudoVSUXSEG5EI16_V_MF4_M1 = 11134,
-  PseudoVSUXSEG5EI16_V_MF4_M1_MASK = 11135,
-  PseudoVSUXSEG5EI16_V_MF4_MF2 = 11136,
-  PseudoVSUXSEG5EI16_V_MF4_MF2_MASK = 11137,
-  PseudoVSUXSEG5EI16_V_MF4_MF4 = 11138,
-  PseudoVSUXSEG5EI16_V_MF4_MF4_MASK = 11139,
-  PseudoVSUXSEG5EI16_V_MF4_MF8 = 11140,
-  PseudoVSUXSEG5EI16_V_MF4_MF8_MASK = 11141,
-  PseudoVSUXSEG5EI32_V_M1_M1 = 11142,
-  PseudoVSUXSEG5EI32_V_M1_M1_MASK = 11143,
-  PseudoVSUXSEG5EI32_V_M1_MF2 = 11144,
-  PseudoVSUXSEG5EI32_V_M1_MF2_MASK = 11145,
-  PseudoVSUXSEG5EI32_V_M1_MF4 = 11146,
-  PseudoVSUXSEG5EI32_V_M1_MF4_MASK = 11147,
-  PseudoVSUXSEG5EI32_V_M2_M1 = 11148,
-  PseudoVSUXSEG5EI32_V_M2_M1_MASK = 11149,
-  PseudoVSUXSEG5EI32_V_M2_MF2 = 11150,
-  PseudoVSUXSEG5EI32_V_M2_MF2_MASK = 11151,
-  PseudoVSUXSEG5EI32_V_M4_M1 = 11152,
-  PseudoVSUXSEG5EI32_V_M4_M1_MASK = 11153,
-  PseudoVSUXSEG5EI32_V_MF2_M1 = 11154,
-  PseudoVSUXSEG5EI32_V_MF2_M1_MASK = 11155,
-  PseudoVSUXSEG5EI32_V_MF2_MF2 = 11156,
-  PseudoVSUXSEG5EI32_V_MF2_MF2_MASK = 11157,
-  PseudoVSUXSEG5EI32_V_MF2_MF4 = 11158,
-  PseudoVSUXSEG5EI32_V_MF2_MF4_MASK = 11159,
-  PseudoVSUXSEG5EI32_V_MF2_MF8 = 11160,
-  PseudoVSUXSEG5EI32_V_MF2_MF8_MASK = 11161,
-  PseudoVSUXSEG5EI64_V_M1_M1 = 11162,
-  PseudoVSUXSEG5EI64_V_M1_M1_MASK = 11163,
-  PseudoVSUXSEG5EI64_V_M1_MF2 = 11164,
-  PseudoVSUXSEG5EI64_V_M1_MF2_MASK = 11165,
-  PseudoVSUXSEG5EI64_V_M1_MF4 = 11166,
-  PseudoVSUXSEG5EI64_V_M1_MF4_MASK = 11167,
-  PseudoVSUXSEG5EI64_V_M1_MF8 = 11168,
-  PseudoVSUXSEG5EI64_V_M1_MF8_MASK = 11169,
-  PseudoVSUXSEG5EI64_V_M2_M1 = 11170,
-  PseudoVSUXSEG5EI64_V_M2_M1_MASK = 11171,
-  PseudoVSUXSEG5EI64_V_M2_MF2 = 11172,
-  PseudoVSUXSEG5EI64_V_M2_MF2_MASK = 11173,
-  PseudoVSUXSEG5EI64_V_M2_MF4 = 11174,
-  PseudoVSUXSEG5EI64_V_M2_MF4_MASK = 11175,
-  PseudoVSUXSEG5EI64_V_M4_M1 = 11176,
-  PseudoVSUXSEG5EI64_V_M4_M1_MASK = 11177,
-  PseudoVSUXSEG5EI64_V_M4_MF2 = 11178,
-  PseudoVSUXSEG5EI64_V_M4_MF2_MASK = 11179,
-  PseudoVSUXSEG5EI64_V_M8_M1 = 11180,
-  PseudoVSUXSEG5EI64_V_M8_M1_MASK = 11181,
-  PseudoVSUXSEG5EI8_V_M1_M1 = 11182,
-  PseudoVSUXSEG5EI8_V_M1_M1_MASK = 11183,
-  PseudoVSUXSEG5EI8_V_MF2_M1 = 11184,
-  PseudoVSUXSEG5EI8_V_MF2_M1_MASK = 11185,
-  PseudoVSUXSEG5EI8_V_MF2_MF2 = 11186,
-  PseudoVSUXSEG5EI8_V_MF2_MF2_MASK = 11187,
-  PseudoVSUXSEG5EI8_V_MF4_M1 = 11188,
-  PseudoVSUXSEG5EI8_V_MF4_M1_MASK = 11189,
-  PseudoVSUXSEG5EI8_V_MF4_MF2 = 11190,
-  PseudoVSUXSEG5EI8_V_MF4_MF2_MASK = 11191,
-  PseudoVSUXSEG5EI8_V_MF4_MF4 = 11192,
-  PseudoVSUXSEG5EI8_V_MF4_MF4_MASK = 11193,
-  PseudoVSUXSEG5EI8_V_MF8_M1 = 11194,
-  PseudoVSUXSEG5EI8_V_MF8_M1_MASK = 11195,
-  PseudoVSUXSEG5EI8_V_MF8_MF2 = 11196,
-  PseudoVSUXSEG5EI8_V_MF8_MF2_MASK = 11197,
-  PseudoVSUXSEG5EI8_V_MF8_MF4 = 11198,
-  PseudoVSUXSEG5EI8_V_MF8_MF4_MASK = 11199,
-  PseudoVSUXSEG5EI8_V_MF8_MF8 = 11200,
-  PseudoVSUXSEG5EI8_V_MF8_MF8_MASK = 11201,
-  PseudoVSUXSEG6EI16_V_M1_M1 = 11202,
-  PseudoVSUXSEG6EI16_V_M1_M1_MASK = 11203,
-  PseudoVSUXSEG6EI16_V_M1_MF2 = 11204,
-  PseudoVSUXSEG6EI16_V_M1_MF2_MASK = 11205,
-  PseudoVSUXSEG6EI16_V_M2_M1 = 11206,
-  PseudoVSUXSEG6EI16_V_M2_M1_MASK = 11207,
-  PseudoVSUXSEG6EI16_V_MF2_M1 = 11208,
-  PseudoVSUXSEG6EI16_V_MF2_M1_MASK = 11209,
-  PseudoVSUXSEG6EI16_V_MF2_MF2 = 11210,
-  PseudoVSUXSEG6EI16_V_MF2_MF2_MASK = 11211,
-  PseudoVSUXSEG6EI16_V_MF2_MF4 = 11212,
-  PseudoVSUXSEG6EI16_V_MF2_MF4_MASK = 11213,
-  PseudoVSUXSEG6EI16_V_MF4_M1 = 11214,
-  PseudoVSUXSEG6EI16_V_MF4_M1_MASK = 11215,
-  PseudoVSUXSEG6EI16_V_MF4_MF2 = 11216,
-  PseudoVSUXSEG6EI16_V_MF4_MF2_MASK = 11217,
-  PseudoVSUXSEG6EI16_V_MF4_MF4 = 11218,
-  PseudoVSUXSEG6EI16_V_MF4_MF4_MASK = 11219,
-  PseudoVSUXSEG6EI16_V_MF4_MF8 = 11220,
-  PseudoVSUXSEG6EI16_V_MF4_MF8_MASK = 11221,
-  PseudoVSUXSEG6EI32_V_M1_M1 = 11222,
-  PseudoVSUXSEG6EI32_V_M1_M1_MASK = 11223,
-  PseudoVSUXSEG6EI32_V_M1_MF2 = 11224,
-  PseudoVSUXSEG6EI32_V_M1_MF2_MASK = 11225,
-  PseudoVSUXSEG6EI32_V_M1_MF4 = 11226,
-  PseudoVSUXSEG6EI32_V_M1_MF4_MASK = 11227,
-  PseudoVSUXSEG6EI32_V_M2_M1 = 11228,
-  PseudoVSUXSEG6EI32_V_M2_M1_MASK = 11229,
-  PseudoVSUXSEG6EI32_V_M2_MF2 = 11230,
-  PseudoVSUXSEG6EI32_V_M2_MF2_MASK = 11231,
-  PseudoVSUXSEG6EI32_V_M4_M1 = 11232,
-  PseudoVSUXSEG6EI32_V_M4_M1_MASK = 11233,
-  PseudoVSUXSEG6EI32_V_MF2_M1 = 11234,
-  PseudoVSUXSEG6EI32_V_MF2_M1_MASK = 11235,
-  PseudoVSUXSEG6EI32_V_MF2_MF2 = 11236,
-  PseudoVSUXSEG6EI32_V_MF2_MF2_MASK = 11237,
-  PseudoVSUXSEG6EI32_V_MF2_MF4 = 11238,
-  PseudoVSUXSEG6EI32_V_MF2_MF4_MASK = 11239,
-  PseudoVSUXSEG6EI32_V_MF2_MF8 = 11240,
-  PseudoVSUXSEG6EI32_V_MF2_MF8_MASK = 11241,
-  PseudoVSUXSEG6EI64_V_M1_M1 = 11242,
-  PseudoVSUXSEG6EI64_V_M1_M1_MASK = 11243,
-  PseudoVSUXSEG6EI64_V_M1_MF2 = 11244,
-  PseudoVSUXSEG6EI64_V_M1_MF2_MASK = 11245,
-  PseudoVSUXSEG6EI64_V_M1_MF4 = 11246,
-  PseudoVSUXSEG6EI64_V_M1_MF4_MASK = 11247,
-  PseudoVSUXSEG6EI64_V_M1_MF8 = 11248,
-  PseudoVSUXSEG6EI64_V_M1_MF8_MASK = 11249,
-  PseudoVSUXSEG6EI64_V_M2_M1 = 11250,
-  PseudoVSUXSEG6EI64_V_M2_M1_MASK = 11251,
-  PseudoVSUXSEG6EI64_V_M2_MF2 = 11252,
-  PseudoVSUXSEG6EI64_V_M2_MF2_MASK = 11253,
-  PseudoVSUXSEG6EI64_V_M2_MF4 = 11254,
-  PseudoVSUXSEG6EI64_V_M2_MF4_MASK = 11255,
-  PseudoVSUXSEG6EI64_V_M4_M1 = 11256,
-  PseudoVSUXSEG6EI64_V_M4_M1_MASK = 11257,
-  PseudoVSUXSEG6EI64_V_M4_MF2 = 11258,
-  PseudoVSUXSEG6EI64_V_M4_MF2_MASK = 11259,
-  PseudoVSUXSEG6EI64_V_M8_M1 = 11260,
-  PseudoVSUXSEG6EI64_V_M8_M1_MASK = 11261,
-  PseudoVSUXSEG6EI8_V_M1_M1 = 11262,
-  PseudoVSUXSEG6EI8_V_M1_M1_MASK = 11263,
-  PseudoVSUXSEG6EI8_V_MF2_M1 = 11264,
-  PseudoVSUXSEG6EI8_V_MF2_M1_MASK = 11265,
-  PseudoVSUXSEG6EI8_V_MF2_MF2 = 11266,
-  PseudoVSUXSEG6EI8_V_MF2_MF2_MASK = 11267,
-  PseudoVSUXSEG6EI8_V_MF4_M1 = 11268,
-  PseudoVSUXSEG6EI8_V_MF4_M1_MASK = 11269,
-  PseudoVSUXSEG6EI8_V_MF4_MF2 = 11270,
-  PseudoVSUXSEG6EI8_V_MF4_MF2_MASK = 11271,
-  PseudoVSUXSEG6EI8_V_MF4_MF4 = 11272,
-  PseudoVSUXSEG6EI8_V_MF4_MF4_MASK = 11273,
-  PseudoVSUXSEG6EI8_V_MF8_M1 = 11274,
-  PseudoVSUXSEG6EI8_V_MF8_M1_MASK = 11275,
-  PseudoVSUXSEG6EI8_V_MF8_MF2 = 11276,
-  PseudoVSUXSEG6EI8_V_MF8_MF2_MASK = 11277,
-  PseudoVSUXSEG6EI8_V_MF8_MF4 = 11278,
-  PseudoVSUXSEG6EI8_V_MF8_MF4_MASK = 11279,
-  PseudoVSUXSEG6EI8_V_MF8_MF8 = 11280,
-  PseudoVSUXSEG6EI8_V_MF8_MF8_MASK = 11281,
-  PseudoVSUXSEG7EI16_V_M1_M1 = 11282,
-  PseudoVSUXSEG7EI16_V_M1_M1_MASK = 11283,
-  PseudoVSUXSEG7EI16_V_M1_MF2 = 11284,
-  PseudoVSUXSEG7EI16_V_M1_MF2_MASK = 11285,
-  PseudoVSUXSEG7EI16_V_M2_M1 = 11286,
-  PseudoVSUXSEG7EI16_V_M2_M1_MASK = 11287,
-  PseudoVSUXSEG7EI16_V_MF2_M1 = 11288,
-  PseudoVSUXSEG7EI16_V_MF2_M1_MASK = 11289,
-  PseudoVSUXSEG7EI16_V_MF2_MF2 = 11290,
-  PseudoVSUXSEG7EI16_V_MF2_MF2_MASK = 11291,
-  PseudoVSUXSEG7EI16_V_MF2_MF4 = 11292,
-  PseudoVSUXSEG7EI16_V_MF2_MF4_MASK = 11293,
-  PseudoVSUXSEG7EI16_V_MF4_M1 = 11294,
-  PseudoVSUXSEG7EI16_V_MF4_M1_MASK = 11295,
-  PseudoVSUXSEG7EI16_V_MF4_MF2 = 11296,
-  PseudoVSUXSEG7EI16_V_MF4_MF2_MASK = 11297,
-  PseudoVSUXSEG7EI16_V_MF4_MF4 = 11298,
-  PseudoVSUXSEG7EI16_V_MF4_MF4_MASK = 11299,
-  PseudoVSUXSEG7EI16_V_MF4_MF8 = 11300,
-  PseudoVSUXSEG7EI16_V_MF4_MF8_MASK = 11301,
-  PseudoVSUXSEG7EI32_V_M1_M1 = 11302,
-  PseudoVSUXSEG7EI32_V_M1_M1_MASK = 11303,
-  PseudoVSUXSEG7EI32_V_M1_MF2 = 11304,
-  PseudoVSUXSEG7EI32_V_M1_MF2_MASK = 11305,
-  PseudoVSUXSEG7EI32_V_M1_MF4 = 11306,
-  PseudoVSUXSEG7EI32_V_M1_MF4_MASK = 11307,
-  PseudoVSUXSEG7EI32_V_M2_M1 = 11308,
-  PseudoVSUXSEG7EI32_V_M2_M1_MASK = 11309,
-  PseudoVSUXSEG7EI32_V_M2_MF2 = 11310,
-  PseudoVSUXSEG7EI32_V_M2_MF2_MASK = 11311,
-  PseudoVSUXSEG7EI32_V_M4_M1 = 11312,
-  PseudoVSUXSEG7EI32_V_M4_M1_MASK = 11313,
-  PseudoVSUXSEG7EI32_V_MF2_M1 = 11314,
-  PseudoVSUXSEG7EI32_V_MF2_M1_MASK = 11315,
-  PseudoVSUXSEG7EI32_V_MF2_MF2 = 11316,
-  PseudoVSUXSEG7EI32_V_MF2_MF2_MASK = 11317,
-  PseudoVSUXSEG7EI32_V_MF2_MF4 = 11318,
-  PseudoVSUXSEG7EI32_V_MF2_MF4_MASK = 11319,
-  PseudoVSUXSEG7EI32_V_MF2_MF8 = 11320,
-  PseudoVSUXSEG7EI32_V_MF2_MF8_MASK = 11321,
-  PseudoVSUXSEG7EI64_V_M1_M1 = 11322,
-  PseudoVSUXSEG7EI64_V_M1_M1_MASK = 11323,
-  PseudoVSUXSEG7EI64_V_M1_MF2 = 11324,
-  PseudoVSUXSEG7EI64_V_M1_MF2_MASK = 11325,
-  PseudoVSUXSEG7EI64_V_M1_MF4 = 11326,
-  PseudoVSUXSEG7EI64_V_M1_MF4_MASK = 11327,
-  PseudoVSUXSEG7EI64_V_M1_MF8 = 11328,
-  PseudoVSUXSEG7EI64_V_M1_MF8_MASK = 11329,
-  PseudoVSUXSEG7EI64_V_M2_M1 = 11330,
-  PseudoVSUXSEG7EI64_V_M2_M1_MASK = 11331,
-  PseudoVSUXSEG7EI64_V_M2_MF2 = 11332,
-  PseudoVSUXSEG7EI64_V_M2_MF2_MASK = 11333,
-  PseudoVSUXSEG7EI64_V_M2_MF4 = 11334,
-  PseudoVSUXSEG7EI64_V_M2_MF4_MASK = 11335,
-  PseudoVSUXSEG7EI64_V_M4_M1 = 11336,
-  PseudoVSUXSEG7EI64_V_M4_M1_MASK = 11337,
-  PseudoVSUXSEG7EI64_V_M4_MF2 = 11338,
-  PseudoVSUXSEG7EI64_V_M4_MF2_MASK = 11339,
-  PseudoVSUXSEG7EI64_V_M8_M1 = 11340,
-  PseudoVSUXSEG7EI64_V_M8_M1_MASK = 11341,
-  PseudoVSUXSEG7EI8_V_M1_M1 = 11342,
-  PseudoVSUXSEG7EI8_V_M1_M1_MASK = 11343,
-  PseudoVSUXSEG7EI8_V_MF2_M1 = 11344,
-  PseudoVSUXSEG7EI8_V_MF2_M1_MASK = 11345,
-  PseudoVSUXSEG7EI8_V_MF2_MF2 = 11346,
-  PseudoVSUXSEG7EI8_V_MF2_MF2_MASK = 11347,
-  PseudoVSUXSEG7EI8_V_MF4_M1 = 11348,
-  PseudoVSUXSEG7EI8_V_MF4_M1_MASK = 11349,
-  PseudoVSUXSEG7EI8_V_MF4_MF2 = 11350,
-  PseudoVSUXSEG7EI8_V_MF4_MF2_MASK = 11351,
-  PseudoVSUXSEG7EI8_V_MF4_MF4 = 11352,
-  PseudoVSUXSEG7EI8_V_MF4_MF4_MASK = 11353,
-  PseudoVSUXSEG7EI8_V_MF8_M1 = 11354,
-  PseudoVSUXSEG7EI8_V_MF8_M1_MASK = 11355,
-  PseudoVSUXSEG7EI8_V_MF8_MF2 = 11356,
-  PseudoVSUXSEG7EI8_V_MF8_MF2_MASK = 11357,
-  PseudoVSUXSEG7EI8_V_MF8_MF4 = 11358,
-  PseudoVSUXSEG7EI8_V_MF8_MF4_MASK = 11359,
-  PseudoVSUXSEG7EI8_V_MF8_MF8 = 11360,
-  PseudoVSUXSEG7EI8_V_MF8_MF8_MASK = 11361,
-  PseudoVSUXSEG8EI16_V_M1_M1 = 11362,
-  PseudoVSUXSEG8EI16_V_M1_M1_MASK = 11363,
-  PseudoVSUXSEG8EI16_V_M1_MF2 = 11364,
-  PseudoVSUXSEG8EI16_V_M1_MF2_MASK = 11365,
-  PseudoVSUXSEG8EI16_V_M2_M1 = 11366,
-  PseudoVSUXSEG8EI16_V_M2_M1_MASK = 11367,
-  PseudoVSUXSEG8EI16_V_MF2_M1 = 11368,
-  PseudoVSUXSEG8EI16_V_MF2_M1_MASK = 11369,
-  PseudoVSUXSEG8EI16_V_MF2_MF2 = 11370,
-  PseudoVSUXSEG8EI16_V_MF2_MF2_MASK = 11371,
-  PseudoVSUXSEG8EI16_V_MF2_MF4 = 11372,
-  PseudoVSUXSEG8EI16_V_MF2_MF4_MASK = 11373,
-  PseudoVSUXSEG8EI16_V_MF4_M1 = 11374,
-  PseudoVSUXSEG8EI16_V_MF4_M1_MASK = 11375,
-  PseudoVSUXSEG8EI16_V_MF4_MF2 = 11376,
-  PseudoVSUXSEG8EI16_V_MF4_MF2_MASK = 11377,
-  PseudoVSUXSEG8EI16_V_MF4_MF4 = 11378,
-  PseudoVSUXSEG8EI16_V_MF4_MF4_MASK = 11379,
-  PseudoVSUXSEG8EI16_V_MF4_MF8 = 11380,
-  PseudoVSUXSEG8EI16_V_MF4_MF8_MASK = 11381,
-  PseudoVSUXSEG8EI32_V_M1_M1 = 11382,
-  PseudoVSUXSEG8EI32_V_M1_M1_MASK = 11383,
-  PseudoVSUXSEG8EI32_V_M1_MF2 = 11384,
-  PseudoVSUXSEG8EI32_V_M1_MF2_MASK = 11385,
-  PseudoVSUXSEG8EI32_V_M1_MF4 = 11386,
-  PseudoVSUXSEG8EI32_V_M1_MF4_MASK = 11387,
-  PseudoVSUXSEG8EI32_V_M2_M1 = 11388,
-  PseudoVSUXSEG8EI32_V_M2_M1_MASK = 11389,
-  PseudoVSUXSEG8EI32_V_M2_MF2 = 11390,
-  PseudoVSUXSEG8EI32_V_M2_MF2_MASK = 11391,
-  PseudoVSUXSEG8EI32_V_M4_M1 = 11392,
-  PseudoVSUXSEG8EI32_V_M4_M1_MASK = 11393,
-  PseudoVSUXSEG8EI32_V_MF2_M1 = 11394,
-  PseudoVSUXSEG8EI32_V_MF2_M1_MASK = 11395,
-  PseudoVSUXSEG8EI32_V_MF2_MF2 = 11396,
-  PseudoVSUXSEG8EI32_V_MF2_MF2_MASK = 11397,
-  PseudoVSUXSEG8EI32_V_MF2_MF4 = 11398,
-  PseudoVSUXSEG8EI32_V_MF2_MF4_MASK = 11399,
-  PseudoVSUXSEG8EI32_V_MF2_MF8 = 11400,
-  PseudoVSUXSEG8EI32_V_MF2_MF8_MASK = 11401,
-  PseudoVSUXSEG8EI64_V_M1_M1 = 11402,
-  PseudoVSUXSEG8EI64_V_M1_M1_MASK = 11403,
-  PseudoVSUXSEG8EI64_V_M1_MF2 = 11404,
-  PseudoVSUXSEG8EI64_V_M1_MF2_MASK = 11405,
-  PseudoVSUXSEG8EI64_V_M1_MF4 = 11406,
-  PseudoVSUXSEG8EI64_V_M1_MF4_MASK = 11407,
-  PseudoVSUXSEG8EI64_V_M1_MF8 = 11408,
-  PseudoVSUXSEG8EI64_V_M1_MF8_MASK = 11409,
-  PseudoVSUXSEG8EI64_V_M2_M1 = 11410,
-  PseudoVSUXSEG8EI64_V_M2_M1_MASK = 11411,
-  PseudoVSUXSEG8EI64_V_M2_MF2 = 11412,
-  PseudoVSUXSEG8EI64_V_M2_MF2_MASK = 11413,
-  PseudoVSUXSEG8EI64_V_M2_MF4 = 11414,
-  PseudoVSUXSEG8EI64_V_M2_MF4_MASK = 11415,
-  PseudoVSUXSEG8EI64_V_M4_M1 = 11416,
-  PseudoVSUXSEG8EI64_V_M4_M1_MASK = 11417,
-  PseudoVSUXSEG8EI64_V_M4_MF2 = 11418,
-  PseudoVSUXSEG8EI64_V_M4_MF2_MASK = 11419,
-  PseudoVSUXSEG8EI64_V_M8_M1 = 11420,
-  PseudoVSUXSEG8EI64_V_M8_M1_MASK = 11421,
-  PseudoVSUXSEG8EI8_V_M1_M1 = 11422,
-  PseudoVSUXSEG8EI8_V_M1_M1_MASK = 11423,
-  PseudoVSUXSEG8EI8_V_MF2_M1 = 11424,
-  PseudoVSUXSEG8EI8_V_MF2_M1_MASK = 11425,
-  PseudoVSUXSEG8EI8_V_MF2_MF2 = 11426,
-  PseudoVSUXSEG8EI8_V_MF2_MF2_MASK = 11427,
-  PseudoVSUXSEG8EI8_V_MF4_M1 = 11428,
-  PseudoVSUXSEG8EI8_V_MF4_M1_MASK = 11429,
-  PseudoVSUXSEG8EI8_V_MF4_MF2 = 11430,
-  PseudoVSUXSEG8EI8_V_MF4_MF2_MASK = 11431,
-  PseudoVSUXSEG8EI8_V_MF4_MF4 = 11432,
-  PseudoVSUXSEG8EI8_V_MF4_MF4_MASK = 11433,
-  PseudoVSUXSEG8EI8_V_MF8_M1 = 11434,
-  PseudoVSUXSEG8EI8_V_MF8_M1_MASK = 11435,
-  PseudoVSUXSEG8EI8_V_MF8_MF2 = 11436,
-  PseudoVSUXSEG8EI8_V_MF8_MF2_MASK = 11437,
-  PseudoVSUXSEG8EI8_V_MF8_MF4 = 11438,
-  PseudoVSUXSEG8EI8_V_MF8_MF4_MASK = 11439,
-  PseudoVSUXSEG8EI8_V_MF8_MF8 = 11440,
-  PseudoVSUXSEG8EI8_V_MF8_MF8_MASK = 11441,
-  PseudoVWADDU_VV_M1 = 11442,
-  PseudoVWADDU_VV_M1_MASK = 11443,
-  PseudoVWADDU_VV_M2 = 11444,
-  PseudoVWADDU_VV_M2_MASK = 11445,
-  PseudoVWADDU_VV_M4 = 11446,
-  PseudoVWADDU_VV_M4_MASK = 11447,
-  PseudoVWADDU_VV_MF2 = 11448,
-  PseudoVWADDU_VV_MF2_MASK = 11449,
-  PseudoVWADDU_VV_MF4 = 11450,
-  PseudoVWADDU_VV_MF4_MASK = 11451,
-  PseudoVWADDU_VV_MF8 = 11452,
-  PseudoVWADDU_VV_MF8_MASK = 11453,
-  PseudoVWADDU_VX_M1 = 11454,
-  PseudoVWADDU_VX_M1_MASK = 11455,
-  PseudoVWADDU_VX_M2 = 11456,
-  PseudoVWADDU_VX_M2_MASK = 11457,
-  PseudoVWADDU_VX_M4 = 11458,
-  PseudoVWADDU_VX_M4_MASK = 11459,
-  PseudoVWADDU_VX_MF2 = 11460,
-  PseudoVWADDU_VX_MF2_MASK = 11461,
-  PseudoVWADDU_VX_MF4 = 11462,
-  PseudoVWADDU_VX_MF4_MASK = 11463,
-  PseudoVWADDU_VX_MF8 = 11464,
-  PseudoVWADDU_VX_MF8_MASK = 11465,
-  PseudoVWADDU_WV_M1 = 11466,
-  PseudoVWADDU_WV_M1_MASK = 11467,
-  PseudoVWADDU_WV_M1_MASK_TIED = 11468,
-  PseudoVWADDU_WV_M1_TIED = 11469,
-  PseudoVWADDU_WV_M2 = 11470,
-  PseudoVWADDU_WV_M2_MASK = 11471,
-  PseudoVWADDU_WV_M2_MASK_TIED = 11472,
-  PseudoVWADDU_WV_M2_TIED = 11473,
-  PseudoVWADDU_WV_M4 = 11474,
-  PseudoVWADDU_WV_M4_MASK = 11475,
-  PseudoVWADDU_WV_M4_MASK_TIED = 11476,
-  PseudoVWADDU_WV_M4_TIED = 11477,
-  PseudoVWADDU_WV_MF2 = 11478,
-  PseudoVWADDU_WV_MF2_MASK = 11479,
-  PseudoVWADDU_WV_MF2_MASK_TIED = 11480,
-  PseudoVWADDU_WV_MF2_TIED = 11481,
-  PseudoVWADDU_WV_MF4 = 11482,
-  PseudoVWADDU_WV_MF4_MASK = 11483,
-  PseudoVWADDU_WV_MF4_MASK_TIED = 11484,
-  PseudoVWADDU_WV_MF4_TIED = 11485,
-  PseudoVWADDU_WV_MF8 = 11486,
-  PseudoVWADDU_WV_MF8_MASK = 11487,
-  PseudoVWADDU_WV_MF8_MASK_TIED = 11488,
-  PseudoVWADDU_WV_MF8_TIED = 11489,
-  PseudoVWADDU_WX_M1 = 11490,
-  PseudoVWADDU_WX_M1_MASK = 11491,
-  PseudoVWADDU_WX_M2 = 11492,
-  PseudoVWADDU_WX_M2_MASK = 11493,
-  PseudoVWADDU_WX_M4 = 11494,
-  PseudoVWADDU_WX_M4_MASK = 11495,
-  PseudoVWADDU_WX_MF2 = 11496,
-  PseudoVWADDU_WX_MF2_MASK = 11497,
-  PseudoVWADDU_WX_MF4 = 11498,
-  PseudoVWADDU_WX_MF4_MASK = 11499,
-  PseudoVWADDU_WX_MF8 = 11500,
-  PseudoVWADDU_WX_MF8_MASK = 11501,
-  PseudoVWADD_VV_M1 = 11502,
-  PseudoVWADD_VV_M1_MASK = 11503,
-  PseudoVWADD_VV_M2 = 11504,
-  PseudoVWADD_VV_M2_MASK = 11505,
-  PseudoVWADD_VV_M4 = 11506,
-  PseudoVWADD_VV_M4_MASK = 11507,
-  PseudoVWADD_VV_MF2 = 11508,
-  PseudoVWADD_VV_MF2_MASK = 11509,
-  PseudoVWADD_VV_MF4 = 11510,
-  PseudoVWADD_VV_MF4_MASK = 11511,
-  PseudoVWADD_VV_MF8 = 11512,
-  PseudoVWADD_VV_MF8_MASK = 11513,
-  PseudoVWADD_VX_M1 = 11514,
-  PseudoVWADD_VX_M1_MASK = 11515,
-  PseudoVWADD_VX_M2 = 11516,
-  PseudoVWADD_VX_M2_MASK = 11517,
-  PseudoVWADD_VX_M4 = 11518,
-  PseudoVWADD_VX_M4_MASK = 11519,
-  PseudoVWADD_VX_MF2 = 11520,
-  PseudoVWADD_VX_MF2_MASK = 11521,
-  PseudoVWADD_VX_MF4 = 11522,
-  PseudoVWADD_VX_MF4_MASK = 11523,
-  PseudoVWADD_VX_MF8 = 11524,
-  PseudoVWADD_VX_MF8_MASK = 11525,
-  PseudoVWADD_WV_M1 = 11526,
-  PseudoVWADD_WV_M1_MASK = 11527,
-  PseudoVWADD_WV_M1_MASK_TIED = 11528,
-  PseudoVWADD_WV_M1_TIED = 11529,
-  PseudoVWADD_WV_M2 = 11530,
-  PseudoVWADD_WV_M2_MASK = 11531,
-  PseudoVWADD_WV_M2_MASK_TIED = 11532,
-  PseudoVWADD_WV_M2_TIED = 11533,
-  PseudoVWADD_WV_M4 = 11534,
-  PseudoVWADD_WV_M4_MASK = 11535,
-  PseudoVWADD_WV_M4_MASK_TIED = 11536,
-  PseudoVWADD_WV_M4_TIED = 11537,
-  PseudoVWADD_WV_MF2 = 11538,
-  PseudoVWADD_WV_MF2_MASK = 11539,
-  PseudoVWADD_WV_MF2_MASK_TIED = 11540,
-  PseudoVWADD_WV_MF2_TIED = 11541,
-  PseudoVWADD_WV_MF4 = 11542,
-  PseudoVWADD_WV_MF4_MASK = 11543,
-  PseudoVWADD_WV_MF4_MASK_TIED = 11544,
-  PseudoVWADD_WV_MF4_TIED = 11545,
-  PseudoVWADD_WV_MF8 = 11546,
-  PseudoVWADD_WV_MF8_MASK = 11547,
-  PseudoVWADD_WV_MF8_MASK_TIED = 11548,
-  PseudoVWADD_WV_MF8_TIED = 11549,
-  PseudoVWADD_WX_M1 = 11550,
-  PseudoVWADD_WX_M1_MASK = 11551,
-  PseudoVWADD_WX_M2 = 11552,
-  PseudoVWADD_WX_M2_MASK = 11553,
-  PseudoVWADD_WX_M4 = 11554,
-  PseudoVWADD_WX_M4_MASK = 11555,
-  PseudoVWADD_WX_MF2 = 11556,
-  PseudoVWADD_WX_MF2_MASK = 11557,
-  PseudoVWADD_WX_MF4 = 11558,
-  PseudoVWADD_WX_MF4_MASK = 11559,
-  PseudoVWADD_WX_MF8 = 11560,
-  PseudoVWADD_WX_MF8_MASK = 11561,
-  PseudoVWMACCSU_VV_M1 = 11562,
-  PseudoVWMACCSU_VV_M1_MASK = 11563,
-  PseudoVWMACCSU_VV_M2 = 11564,
-  PseudoVWMACCSU_VV_M2_MASK = 11565,
-  PseudoVWMACCSU_VV_M4 = 11566,
-  PseudoVWMACCSU_VV_M4_MASK = 11567,
-  PseudoVWMACCSU_VV_MF2 = 11568,
-  PseudoVWMACCSU_VV_MF2_MASK = 11569,
-  PseudoVWMACCSU_VV_MF4 = 11570,
-  PseudoVWMACCSU_VV_MF4_MASK = 11571,
-  PseudoVWMACCSU_VV_MF8 = 11572,
-  PseudoVWMACCSU_VV_MF8_MASK = 11573,
-  PseudoVWMACCSU_VX_M1 = 11574,
-  PseudoVWMACCSU_VX_M1_MASK = 11575,
-  PseudoVWMACCSU_VX_M2 = 11576,
-  PseudoVWMACCSU_VX_M2_MASK = 11577,
-  PseudoVWMACCSU_VX_M4 = 11578,
-  PseudoVWMACCSU_VX_M4_MASK = 11579,
-  PseudoVWMACCSU_VX_MF2 = 11580,
-  PseudoVWMACCSU_VX_MF2_MASK = 11581,
-  PseudoVWMACCSU_VX_MF4 = 11582,
-  PseudoVWMACCSU_VX_MF4_MASK = 11583,
-  PseudoVWMACCSU_VX_MF8 = 11584,
-  PseudoVWMACCSU_VX_MF8_MASK = 11585,
-  PseudoVWMACCUS_VX_M1 = 11586,
-  PseudoVWMACCUS_VX_M1_MASK = 11587,
-  PseudoVWMACCUS_VX_M2 = 11588,
-  PseudoVWMACCUS_VX_M2_MASK = 11589,
-  PseudoVWMACCUS_VX_M4 = 11590,
-  PseudoVWMACCUS_VX_M4_MASK = 11591,
-  PseudoVWMACCUS_VX_MF2 = 11592,
-  PseudoVWMACCUS_VX_MF2_MASK = 11593,
-  PseudoVWMACCUS_VX_MF4 = 11594,
-  PseudoVWMACCUS_VX_MF4_MASK = 11595,
-  PseudoVWMACCUS_VX_MF8 = 11596,
-  PseudoVWMACCUS_VX_MF8_MASK = 11597,
-  PseudoVWMACCU_VV_M1 = 11598,
-  PseudoVWMACCU_VV_M1_MASK = 11599,
-  PseudoVWMACCU_VV_M2 = 11600,
-  PseudoVWMACCU_VV_M2_MASK = 11601,
-  PseudoVWMACCU_VV_M4 = 11602,
-  PseudoVWMACCU_VV_M4_MASK = 11603,
-  PseudoVWMACCU_VV_MF2 = 11604,
-  PseudoVWMACCU_VV_MF2_MASK = 11605,
-  PseudoVWMACCU_VV_MF4 = 11606,
-  PseudoVWMACCU_VV_MF4_MASK = 11607,
-  PseudoVWMACCU_VV_MF8 = 11608,
-  PseudoVWMACCU_VV_MF8_MASK = 11609,
-  PseudoVWMACCU_VX_M1 = 11610,
-  PseudoVWMACCU_VX_M1_MASK = 11611,
-  PseudoVWMACCU_VX_M2 = 11612,
-  PseudoVWMACCU_VX_M2_MASK = 11613,
-  PseudoVWMACCU_VX_M4 = 11614,
-  PseudoVWMACCU_VX_M4_MASK = 11615,
-  PseudoVWMACCU_VX_MF2 = 11616,
-  PseudoVWMACCU_VX_MF2_MASK = 11617,
-  PseudoVWMACCU_VX_MF4 = 11618,
-  PseudoVWMACCU_VX_MF4_MASK = 11619,
-  PseudoVWMACCU_VX_MF8 = 11620,
-  PseudoVWMACCU_VX_MF8_MASK = 11621,
-  PseudoVWMACC_VV_M1 = 11622,
-  PseudoVWMACC_VV_M1_MASK = 11623,
-  PseudoVWMACC_VV_M2 = 11624,
-  PseudoVWMACC_VV_M2_MASK = 11625,
-  PseudoVWMACC_VV_M4 = 11626,
-  PseudoVWMACC_VV_M4_MASK = 11627,
-  PseudoVWMACC_VV_MF2 = 11628,
-  PseudoVWMACC_VV_MF2_MASK = 11629,
-  PseudoVWMACC_VV_MF4 = 11630,
-  PseudoVWMACC_VV_MF4_MASK = 11631,
-  PseudoVWMACC_VV_MF8 = 11632,
-  PseudoVWMACC_VV_MF8_MASK = 11633,
-  PseudoVWMACC_VX_M1 = 11634,
-  PseudoVWMACC_VX_M1_MASK = 11635,
-  PseudoVWMACC_VX_M2 = 11636,
-  PseudoVWMACC_VX_M2_MASK = 11637,
-  PseudoVWMACC_VX_M4 = 11638,
-  PseudoVWMACC_VX_M4_MASK = 11639,
-  PseudoVWMACC_VX_MF2 = 11640,
-  PseudoVWMACC_VX_MF2_MASK = 11641,
-  PseudoVWMACC_VX_MF4 = 11642,
-  PseudoVWMACC_VX_MF4_MASK = 11643,
-  PseudoVWMACC_VX_MF8 = 11644,
-  PseudoVWMACC_VX_MF8_MASK = 11645,
-  PseudoVWMULSU_VV_M1 = 11646,
-  PseudoVWMULSU_VV_M1_MASK = 11647,
-  PseudoVWMULSU_VV_M2 = 11648,
-  PseudoVWMULSU_VV_M2_MASK = 11649,
-  PseudoVWMULSU_VV_M4 = 11650,
-  PseudoVWMULSU_VV_M4_MASK = 11651,
-  PseudoVWMULSU_VV_MF2 = 11652,
-  PseudoVWMULSU_VV_MF2_MASK = 11653,
-  PseudoVWMULSU_VV_MF4 = 11654,
-  PseudoVWMULSU_VV_MF4_MASK = 11655,
-  PseudoVWMULSU_VV_MF8 = 11656,
-  PseudoVWMULSU_VV_MF8_MASK = 11657,
-  PseudoVWMULSU_VX_M1 = 11658,
-  PseudoVWMULSU_VX_M1_MASK = 11659,
-  PseudoVWMULSU_VX_M2 = 11660,
-  PseudoVWMULSU_VX_M2_MASK = 11661,
-  PseudoVWMULSU_VX_M4 = 11662,
-  PseudoVWMULSU_VX_M4_MASK = 11663,
-  PseudoVWMULSU_VX_MF2 = 11664,
-  PseudoVWMULSU_VX_MF2_MASK = 11665,
-  PseudoVWMULSU_VX_MF4 = 11666,
-  PseudoVWMULSU_VX_MF4_MASK = 11667,
-  PseudoVWMULSU_VX_MF8 = 11668,
-  PseudoVWMULSU_VX_MF8_MASK = 11669,
-  PseudoVWMULU_VV_M1 = 11670,
-  PseudoVWMULU_VV_M1_MASK = 11671,
-  PseudoVWMULU_VV_M2 = 11672,
-  PseudoVWMULU_VV_M2_MASK = 11673,
-  PseudoVWMULU_VV_M4 = 11674,
-  PseudoVWMULU_VV_M4_MASK = 11675,
-  PseudoVWMULU_VV_MF2 = 11676,
-  PseudoVWMULU_VV_MF2_MASK = 11677,
-  PseudoVWMULU_VV_MF4 = 11678,
-  PseudoVWMULU_VV_MF4_MASK = 11679,
-  PseudoVWMULU_VV_MF8 = 11680,
-  PseudoVWMULU_VV_MF8_MASK = 11681,
-  PseudoVWMULU_VX_M1 = 11682,
-  PseudoVWMULU_VX_M1_MASK = 11683,
-  PseudoVWMULU_VX_M2 = 11684,
-  PseudoVWMULU_VX_M2_MASK = 11685,
-  PseudoVWMULU_VX_M4 = 11686,
-  PseudoVWMULU_VX_M4_MASK = 11687,
-  PseudoVWMULU_VX_MF2 = 11688,
-  PseudoVWMULU_VX_MF2_MASK = 11689,
-  PseudoVWMULU_VX_MF4 = 11690,
-  PseudoVWMULU_VX_MF4_MASK = 11691,
-  PseudoVWMULU_VX_MF8 = 11692,
-  PseudoVWMULU_VX_MF8_MASK = 11693,
-  PseudoVWMUL_VV_M1 = 11694,
-  PseudoVWMUL_VV_M1_MASK = 11695,
-  PseudoVWMUL_VV_M2 = 11696,
-  PseudoVWMUL_VV_M2_MASK = 11697,
-  PseudoVWMUL_VV_M4 = 11698,
-  PseudoVWMUL_VV_M4_MASK = 11699,
-  PseudoVWMUL_VV_MF2 = 11700,
-  PseudoVWMUL_VV_MF2_MASK = 11701,
-  PseudoVWMUL_VV_MF4 = 11702,
-  PseudoVWMUL_VV_MF4_MASK = 11703,
-  PseudoVWMUL_VV_MF8 = 11704,
-  PseudoVWMUL_VV_MF8_MASK = 11705,
-  PseudoVWMUL_VX_M1 = 11706,
-  PseudoVWMUL_VX_M1_MASK = 11707,
-  PseudoVWMUL_VX_M2 = 11708,
-  PseudoVWMUL_VX_M2_MASK = 11709,
-  PseudoVWMUL_VX_M4 = 11710,
-  PseudoVWMUL_VX_M4_MASK = 11711,
-  PseudoVWMUL_VX_MF2 = 11712,
-  PseudoVWMUL_VX_MF2_MASK = 11713,
-  PseudoVWMUL_VX_MF4 = 11714,
-  PseudoVWMUL_VX_MF4_MASK = 11715,
-  PseudoVWMUL_VX_MF8 = 11716,
-  PseudoVWMUL_VX_MF8_MASK = 11717,
-  PseudoVWREDSUMU_VS_M1_E16 = 11718,
-  PseudoVWREDSUMU_VS_M1_E16_MASK = 11719,
-  PseudoVWREDSUMU_VS_M1_E32 = 11720,
-  PseudoVWREDSUMU_VS_M1_E32_MASK = 11721,
-  PseudoVWREDSUMU_VS_M1_E8 = 11722,
-  PseudoVWREDSUMU_VS_M1_E8_MASK = 11723,
-  PseudoVWREDSUMU_VS_M2_E16 = 11724,
-  PseudoVWREDSUMU_VS_M2_E16_MASK = 11725,
-  PseudoVWREDSUMU_VS_M2_E32 = 11726,
-  PseudoVWREDSUMU_VS_M2_E32_MASK = 11727,
-  PseudoVWREDSUMU_VS_M2_E8 = 11728,
-  PseudoVWREDSUMU_VS_M2_E8_MASK = 11729,
-  PseudoVWREDSUMU_VS_M4_E16 = 11730,
-  PseudoVWREDSUMU_VS_M4_E16_MASK = 11731,
-  PseudoVWREDSUMU_VS_M4_E32 = 11732,
-  PseudoVWREDSUMU_VS_M4_E32_MASK = 11733,
-  PseudoVWREDSUMU_VS_M4_E8 = 11734,
-  PseudoVWREDSUMU_VS_M4_E8_MASK = 11735,
-  PseudoVWREDSUMU_VS_M8_E16 = 11736,
-  PseudoVWREDSUMU_VS_M8_E16_MASK = 11737,
-  PseudoVWREDSUMU_VS_M8_E32 = 11738,
-  PseudoVWREDSUMU_VS_M8_E32_MASK = 11739,
-  PseudoVWREDSUMU_VS_M8_E8 = 11740,
-  PseudoVWREDSUMU_VS_M8_E8_MASK = 11741,
-  PseudoVWREDSUMU_VS_MF2_E16 = 11742,
-  PseudoVWREDSUMU_VS_MF2_E16_MASK = 11743,
-  PseudoVWREDSUMU_VS_MF2_E32 = 11744,
-  PseudoVWREDSUMU_VS_MF2_E32_MASK = 11745,
-  PseudoVWREDSUMU_VS_MF2_E8 = 11746,
-  PseudoVWREDSUMU_VS_MF2_E8_MASK = 11747,
-  PseudoVWREDSUMU_VS_MF4_E16 = 11748,
-  PseudoVWREDSUMU_VS_MF4_E16_MASK = 11749,
-  PseudoVWREDSUMU_VS_MF4_E8 = 11750,
-  PseudoVWREDSUMU_VS_MF4_E8_MASK = 11751,
-  PseudoVWREDSUMU_VS_MF8_E8 = 11752,
-  PseudoVWREDSUMU_VS_MF8_E8_MASK = 11753,
-  PseudoVWREDSUM_VS_M1_E16 = 11754,
-  PseudoVWREDSUM_VS_M1_E16_MASK = 11755,
-  PseudoVWREDSUM_VS_M1_E32 = 11756,
-  PseudoVWREDSUM_VS_M1_E32_MASK = 11757,
-  PseudoVWREDSUM_VS_M1_E8 = 11758,
-  PseudoVWREDSUM_VS_M1_E8_MASK = 11759,
-  PseudoVWREDSUM_VS_M2_E16 = 11760,
-  PseudoVWREDSUM_VS_M2_E16_MASK = 11761,
-  PseudoVWREDSUM_VS_M2_E32 = 11762,
-  PseudoVWREDSUM_VS_M2_E32_MASK = 11763,
-  PseudoVWREDSUM_VS_M2_E8 = 11764,
-  PseudoVWREDSUM_VS_M2_E8_MASK = 11765,
-  PseudoVWREDSUM_VS_M4_E16 = 11766,
-  PseudoVWREDSUM_VS_M4_E16_MASK = 11767,
-  PseudoVWREDSUM_VS_M4_E32 = 11768,
-  PseudoVWREDSUM_VS_M4_E32_MASK = 11769,
-  PseudoVWREDSUM_VS_M4_E8 = 11770,
-  PseudoVWREDSUM_VS_M4_E8_MASK = 11771,
-  PseudoVWREDSUM_VS_M8_E16 = 11772,
-  PseudoVWREDSUM_VS_M8_E16_MASK = 11773,
-  PseudoVWREDSUM_VS_M8_E32 = 11774,
-  PseudoVWREDSUM_VS_M8_E32_MASK = 11775,
-  PseudoVWREDSUM_VS_M8_E8 = 11776,
-  PseudoVWREDSUM_VS_M8_E8_MASK = 11777,
-  PseudoVWREDSUM_VS_MF2_E16 = 11778,
-  PseudoVWREDSUM_VS_MF2_E16_MASK = 11779,
-  PseudoVWREDSUM_VS_MF2_E32 = 11780,
-  PseudoVWREDSUM_VS_MF2_E32_MASK = 11781,
-  PseudoVWREDSUM_VS_MF2_E8 = 11782,
-  PseudoVWREDSUM_VS_MF2_E8_MASK = 11783,
-  PseudoVWREDSUM_VS_MF4_E16 = 11784,
-  PseudoVWREDSUM_VS_MF4_E16_MASK = 11785,
-  PseudoVWREDSUM_VS_MF4_E8 = 11786,
-  PseudoVWREDSUM_VS_MF4_E8_MASK = 11787,
-  PseudoVWREDSUM_VS_MF8_E8 = 11788,
-  PseudoVWREDSUM_VS_MF8_E8_MASK = 11789,
-  PseudoVWSLL_VI_M1 = 11790,
-  PseudoVWSLL_VI_M1_MASK = 11791,
-  PseudoVWSLL_VI_M2 = 11792,
-  PseudoVWSLL_VI_M2_MASK = 11793,
-  PseudoVWSLL_VI_M4 = 11794,
-  PseudoVWSLL_VI_M4_MASK = 11795,
-  PseudoVWSLL_VI_MF2 = 11796,
-  PseudoVWSLL_VI_MF2_MASK = 11797,
-  PseudoVWSLL_VI_MF4 = 11798,
-  PseudoVWSLL_VI_MF4_MASK = 11799,
-  PseudoVWSLL_VI_MF8 = 11800,
-  PseudoVWSLL_VI_MF8_MASK = 11801,
-  PseudoVWSLL_VV_M1 = 11802,
-  PseudoVWSLL_VV_M1_MASK = 11803,
-  PseudoVWSLL_VV_M2 = 11804,
-  PseudoVWSLL_VV_M2_MASK = 11805,
-  PseudoVWSLL_VV_M4 = 11806,
-  PseudoVWSLL_VV_M4_MASK = 11807,
-  PseudoVWSLL_VV_MF2 = 11808,
-  PseudoVWSLL_VV_MF2_MASK = 11809,
-  PseudoVWSLL_VV_MF4 = 11810,
-  PseudoVWSLL_VV_MF4_MASK = 11811,
-  PseudoVWSLL_VV_MF8 = 11812,
-  PseudoVWSLL_VV_MF8_MASK = 11813,
-  PseudoVWSLL_VX_M1 = 11814,
-  PseudoVWSLL_VX_M1_MASK = 11815,
-  PseudoVWSLL_VX_M2 = 11816,
-  PseudoVWSLL_VX_M2_MASK = 11817,
-  PseudoVWSLL_VX_M4 = 11818,
-  PseudoVWSLL_VX_M4_MASK = 11819,
-  PseudoVWSLL_VX_MF2 = 11820,
-  PseudoVWSLL_VX_MF2_MASK = 11821,
-  PseudoVWSLL_VX_MF4 = 11822,
-  PseudoVWSLL_VX_MF4_MASK = 11823,
-  PseudoVWSLL_VX_MF8 = 11824,
-  PseudoVWSLL_VX_MF8_MASK = 11825,
-  PseudoVWSUBU_VV_M1 = 11826,
-  PseudoVWSUBU_VV_M1_MASK = 11827,
-  PseudoVWSUBU_VV_M2 = 11828,
-  PseudoVWSUBU_VV_M2_MASK = 11829,
-  PseudoVWSUBU_VV_M4 = 11830,
-  PseudoVWSUBU_VV_M4_MASK = 11831,
-  PseudoVWSUBU_VV_MF2 = 11832,
-  PseudoVWSUBU_VV_MF2_MASK = 11833,
-  PseudoVWSUBU_VV_MF4 = 11834,
-  PseudoVWSUBU_VV_MF4_MASK = 11835,
-  PseudoVWSUBU_VV_MF8 = 11836,
-  PseudoVWSUBU_VV_MF8_MASK = 11837,
-  PseudoVWSUBU_VX_M1 = 11838,
-  PseudoVWSUBU_VX_M1_MASK = 11839,
-  PseudoVWSUBU_VX_M2 = 11840,
-  PseudoVWSUBU_VX_M2_MASK = 11841,
-  PseudoVWSUBU_VX_M4 = 11842,
-  PseudoVWSUBU_VX_M4_MASK = 11843,
-  PseudoVWSUBU_VX_MF2 = 11844,
-  PseudoVWSUBU_VX_MF2_MASK = 11845,
-  PseudoVWSUBU_VX_MF4 = 11846,
-  PseudoVWSUBU_VX_MF4_MASK = 11847,
-  PseudoVWSUBU_VX_MF8 = 11848,
-  PseudoVWSUBU_VX_MF8_MASK = 11849,
-  PseudoVWSUBU_WV_M1 = 11850,
-  PseudoVWSUBU_WV_M1_MASK = 11851,
-  PseudoVWSUBU_WV_M1_MASK_TIED = 11852,
-  PseudoVWSUBU_WV_M1_TIED = 11853,
-  PseudoVWSUBU_WV_M2 = 11854,
-  PseudoVWSUBU_WV_M2_MASK = 11855,
-  PseudoVWSUBU_WV_M2_MASK_TIED = 11856,
-  PseudoVWSUBU_WV_M2_TIED = 11857,
-  PseudoVWSUBU_WV_M4 = 11858,
-  PseudoVWSUBU_WV_M4_MASK = 11859,
-  PseudoVWSUBU_WV_M4_MASK_TIED = 11860,
-  PseudoVWSUBU_WV_M4_TIED = 11861,
-  PseudoVWSUBU_WV_MF2 = 11862,
-  PseudoVWSUBU_WV_MF2_MASK = 11863,
-  PseudoVWSUBU_WV_MF2_MASK_TIED = 11864,
-  PseudoVWSUBU_WV_MF2_TIED = 11865,
-  PseudoVWSUBU_WV_MF4 = 11866,
-  PseudoVWSUBU_WV_MF4_MASK = 11867,
-  PseudoVWSUBU_WV_MF4_MASK_TIED = 11868,
-  PseudoVWSUBU_WV_MF4_TIED = 11869,
-  PseudoVWSUBU_WV_MF8 = 11870,
-  PseudoVWSUBU_WV_MF8_MASK = 11871,
-  PseudoVWSUBU_WV_MF8_MASK_TIED = 11872,
-  PseudoVWSUBU_WV_MF8_TIED = 11873,
-  PseudoVWSUBU_WX_M1 = 11874,
-  PseudoVWSUBU_WX_M1_MASK = 11875,
-  PseudoVWSUBU_WX_M2 = 11876,
-  PseudoVWSUBU_WX_M2_MASK = 11877,
-  PseudoVWSUBU_WX_M4 = 11878,
-  PseudoVWSUBU_WX_M4_MASK = 11879,
-  PseudoVWSUBU_WX_MF2 = 11880,
-  PseudoVWSUBU_WX_MF2_MASK = 11881,
-  PseudoVWSUBU_WX_MF4 = 11882,
-  PseudoVWSUBU_WX_MF4_MASK = 11883,
-  PseudoVWSUBU_WX_MF8 = 11884,
-  PseudoVWSUBU_WX_MF8_MASK = 11885,
-  PseudoVWSUB_VV_M1 = 11886,
-  PseudoVWSUB_VV_M1_MASK = 11887,
-  PseudoVWSUB_VV_M2 = 11888,
-  PseudoVWSUB_VV_M2_MASK = 11889,
-  PseudoVWSUB_VV_M4 = 11890,
-  PseudoVWSUB_VV_M4_MASK = 11891,
-  PseudoVWSUB_VV_MF2 = 11892,
-  PseudoVWSUB_VV_MF2_MASK = 11893,
-  PseudoVWSUB_VV_MF4 = 11894,
-  PseudoVWSUB_VV_MF4_MASK = 11895,
-  PseudoVWSUB_VV_MF8 = 11896,
-  PseudoVWSUB_VV_MF8_MASK = 11897,
-  PseudoVWSUB_VX_M1 = 11898,
-  PseudoVWSUB_VX_M1_MASK = 11899,
-  PseudoVWSUB_VX_M2 = 11900,
-  PseudoVWSUB_VX_M2_MASK = 11901,
-  PseudoVWSUB_VX_M4 = 11902,
-  PseudoVWSUB_VX_M4_MASK = 11903,
-  PseudoVWSUB_VX_MF2 = 11904,
-  PseudoVWSUB_VX_MF2_MASK = 11905,
-  PseudoVWSUB_VX_MF4 = 11906,
-  PseudoVWSUB_VX_MF4_MASK = 11907,
-  PseudoVWSUB_VX_MF8 = 11908,
-  PseudoVWSUB_VX_MF8_MASK = 11909,
-  PseudoVWSUB_WV_M1 = 11910,
-  PseudoVWSUB_WV_M1_MASK = 11911,
-  PseudoVWSUB_WV_M1_MASK_TIED = 11912,
-  PseudoVWSUB_WV_M1_TIED = 11913,
-  PseudoVWSUB_WV_M2 = 11914,
-  PseudoVWSUB_WV_M2_MASK = 11915,
-  PseudoVWSUB_WV_M2_MASK_TIED = 11916,
-  PseudoVWSUB_WV_M2_TIED = 11917,
-  PseudoVWSUB_WV_M4 = 11918,
-  PseudoVWSUB_WV_M4_MASK = 11919,
-  PseudoVWSUB_WV_M4_MASK_TIED = 11920,
-  PseudoVWSUB_WV_M4_TIED = 11921,
-  PseudoVWSUB_WV_MF2 = 11922,
-  PseudoVWSUB_WV_MF2_MASK = 11923,
-  PseudoVWSUB_WV_MF2_MASK_TIED = 11924,
-  PseudoVWSUB_WV_MF2_TIED = 11925,
-  PseudoVWSUB_WV_MF4 = 11926,
-  PseudoVWSUB_WV_MF4_MASK = 11927,
-  PseudoVWSUB_WV_MF4_MASK_TIED = 11928,
-  PseudoVWSUB_WV_MF4_TIED = 11929,
-  PseudoVWSUB_WV_MF8 = 11930,
-  PseudoVWSUB_WV_MF8_MASK = 11931,
-  PseudoVWSUB_WV_MF8_MASK_TIED = 11932,
-  PseudoVWSUB_WV_MF8_TIED = 11933,
-  PseudoVWSUB_WX_M1 = 11934,
-  PseudoVWSUB_WX_M1_MASK = 11935,
-  PseudoVWSUB_WX_M2 = 11936,
-  PseudoVWSUB_WX_M2_MASK = 11937,
-  PseudoVWSUB_WX_M4 = 11938,
-  PseudoVWSUB_WX_M4_MASK = 11939,
-  PseudoVWSUB_WX_MF2 = 11940,
-  PseudoVWSUB_WX_MF2_MASK = 11941,
-  PseudoVWSUB_WX_MF4 = 11942,
-  PseudoVWSUB_WX_MF4_MASK = 11943,
-  PseudoVWSUB_WX_MF8 = 11944,
-  PseudoVWSUB_WX_MF8_MASK = 11945,
-  PseudoVXOR_VI_M1 = 11946,
-  PseudoVXOR_VI_M1_MASK = 11947,
-  PseudoVXOR_VI_M2 = 11948,
-  PseudoVXOR_VI_M2_MASK = 11949,
-  PseudoVXOR_VI_M4 = 11950,
-  PseudoVXOR_VI_M4_MASK = 11951,
-  PseudoVXOR_VI_M8 = 11952,
-  PseudoVXOR_VI_M8_MASK = 11953,
-  PseudoVXOR_VI_MF2 = 11954,
-  PseudoVXOR_VI_MF2_MASK = 11955,
-  PseudoVXOR_VI_MF4 = 11956,
-  PseudoVXOR_VI_MF4_MASK = 11957,
-  PseudoVXOR_VI_MF8 = 11958,
-  PseudoVXOR_VI_MF8_MASK = 11959,
-  PseudoVXOR_VV_M1 = 11960,
-  PseudoVXOR_VV_M1_MASK = 11961,
-  PseudoVXOR_VV_M2 = 11962,
-  PseudoVXOR_VV_M2_MASK = 11963,
-  PseudoVXOR_VV_M4 = 11964,
-  PseudoVXOR_VV_M4_MASK = 11965,
-  PseudoVXOR_VV_M8 = 11966,
-  PseudoVXOR_VV_M8_MASK = 11967,
-  PseudoVXOR_VV_MF2 = 11968,
-  PseudoVXOR_VV_MF2_MASK = 11969,
-  PseudoVXOR_VV_MF4 = 11970,
-  PseudoVXOR_VV_MF4_MASK = 11971,
-  PseudoVXOR_VV_MF8 = 11972,
-  PseudoVXOR_VV_MF8_MASK = 11973,
-  PseudoVXOR_VX_M1 = 11974,
-  PseudoVXOR_VX_M1_MASK = 11975,
-  PseudoVXOR_VX_M2 = 11976,
-  PseudoVXOR_VX_M2_MASK = 11977,
-  PseudoVXOR_VX_M4 = 11978,
-  PseudoVXOR_VX_M4_MASK = 11979,
-  PseudoVXOR_VX_M8 = 11980,
-  PseudoVXOR_VX_M8_MASK = 11981,
-  PseudoVXOR_VX_MF2 = 11982,
-  PseudoVXOR_VX_MF2_MASK = 11983,
-  PseudoVXOR_VX_MF4 = 11984,
-  PseudoVXOR_VX_MF4_MASK = 11985,
-  PseudoVXOR_VX_MF8 = 11986,
-  PseudoVXOR_VX_MF8_MASK = 11987,
-  PseudoVZEXT_VF2_M1 = 11988,
-  PseudoVZEXT_VF2_M1_MASK = 11989,
-  PseudoVZEXT_VF2_M2 = 11990,
-  PseudoVZEXT_VF2_M2_MASK = 11991,
-  PseudoVZEXT_VF2_M4 = 11992,
-  PseudoVZEXT_VF2_M4_MASK = 11993,
-  PseudoVZEXT_VF2_M8 = 11994,
-  PseudoVZEXT_VF2_M8_MASK = 11995,
-  PseudoVZEXT_VF2_MF2 = 11996,
-  PseudoVZEXT_VF2_MF2_MASK = 11997,
-  PseudoVZEXT_VF2_MF4 = 11998,
-  PseudoVZEXT_VF2_MF4_MASK = 11999,
-  PseudoVZEXT_VF4_M1 = 12000,
-  PseudoVZEXT_VF4_M1_MASK = 12001,
-  PseudoVZEXT_VF4_M2 = 12002,
-  PseudoVZEXT_VF4_M2_MASK = 12003,
-  PseudoVZEXT_VF4_M4 = 12004,
-  PseudoVZEXT_VF4_M4_MASK = 12005,
-  PseudoVZEXT_VF4_M8 = 12006,
-  PseudoVZEXT_VF4_M8_MASK = 12007,
-  PseudoVZEXT_VF4_MF2 = 12008,
-  PseudoVZEXT_VF4_MF2_MASK = 12009,
-  PseudoVZEXT_VF8_M1 = 12010,
-  PseudoVZEXT_VF8_M1_MASK = 12011,
-  PseudoVZEXT_VF8_M2 = 12012,
-  PseudoVZEXT_VF8_M2_MASK = 12013,
-  PseudoVZEXT_VF8_M4 = 12014,
-  PseudoVZEXT_VF8_M4_MASK = 12015,
-  PseudoVZEXT_VF8_M8 = 12016,
-  PseudoVZEXT_VF8_M8_MASK = 12017,
-  PseudoZEXT_H = 12018,
-  PseudoZEXT_W = 12019,
-  ReadCounterWide = 12020,
-  ReadFCSR = 12021,
-  ReadFFLAGS = 12022,
-  ReadFRM = 12023,
-  Select_FPR16INX_Using_CC_GPR = 12024,
-  Select_FPR16_Using_CC_GPR = 12025,
-  Select_FPR32INX_Using_CC_GPR = 12026,
-  Select_FPR32_Using_CC_GPR = 12027,
-  Select_FPR64IN32X_Using_CC_GPR = 12028,
-  Select_FPR64INX_Using_CC_GPR = 12029,
-  Select_FPR64_Using_CC_GPR = 12030,
-  Select_GPRNoX0_Using_CC_SImm16NonZero_QC = 12031,
-  Select_GPRNoX0_Using_CC_SImm5NonZero_QC = 12032,
-  Select_GPRNoX0_Using_CC_UImm16NonZero_QC = 12033,
-  Select_GPRNoX0_Using_CC_UImm5NonZero_QC = 12034,
-  Select_GPR_Using_CC_GPR = 12035,
-  Select_GPR_Using_CC_SImm5_CV = 12036,
-  Select_GPR_Using_CC_UImm7_NDS = 12037,
-  Select_GPR_Using_CC_UImmLog2XLen_NDS = 12038,
-  SplitF64Pseudo = 12039,
-  SwapFRMImm = 12040,
-  WriteFCSR = 12041,
-  WriteFCSRImm = 12042,
-  WriteFFLAGS = 12043,
-  WriteFRM = 12044,
-  WriteFRMImm = 12045,
-  WriteVXRMImm = 12046,
-  ABS = 12047,
-  ABSW = 12048,
-  ADD = 12049,
-  ADDI = 12050,
-  ADDIW = 12051,
-  ADDW = 12052,
-  ADD_UW = 12053,
-  AES32DSI = 12054,
-  AES32DSMI = 12055,
-  AES32ESI = 12056,
-  AES32ESMI = 12057,
-  AES64DS = 12058,
-  AES64DSM = 12059,
-  AES64ES = 12060,
-  AES64ESM = 12061,
-  AES64IM = 12062,
-  AES64KS1I = 12063,
-  AES64KS2 = 12064,
-  AMOADD_B = 12065,
-  AMOADD_B_AQ = 12066,
-  AMOADD_B_AQ_RL = 12067,
-  AMOADD_B_RL = 12068,
-  AMOADD_D = 12069,
-  AMOADD_D_AQ = 12070,
-  AMOADD_D_AQ_RL = 12071,
-  AMOADD_D_RL = 12072,
-  AMOADD_H = 12073,
-  AMOADD_H_AQ = 12074,
-  AMOADD_H_AQ_RL = 12075,
-  AMOADD_H_RL = 12076,
-  AMOADD_W = 12077,
-  AMOADD_W_AQ = 12078,
-  AMOADD_W_AQ_RL = 12079,
-  AMOADD_W_RL = 12080,
-  AMOAND_B = 12081,
-  AMOAND_B_AQ = 12082,
-  AMOAND_B_AQ_RL = 12083,
-  AMOAND_B_RL = 12084,
-  AMOAND_D = 12085,
-  AMOAND_D_AQ = 12086,
-  AMOAND_D_AQ_RL = 12087,
-  AMOAND_D_RL = 12088,
-  AMOAND_H = 12089,
-  AMOAND_H_AQ = 12090,
-  AMOAND_H_AQ_RL = 12091,
-  AMOAND_H_RL = 12092,
-  AMOAND_W = 12093,
-  AMOAND_W_AQ = 12094,
-  AMOAND_W_AQ_RL = 12095,
-  AMOAND_W_RL = 12096,
-  AMOCAS_B = 12097,
-  AMOCAS_B_AQ = 12098,
-  AMOCAS_B_AQ_RL = 12099,
-  AMOCAS_B_RL = 12100,
-  AMOCAS_D_RV32 = 12101,
-  AMOCAS_D_RV32_AQ = 12102,
-  AMOCAS_D_RV32_AQ_RL = 12103,
-  AMOCAS_D_RV32_RL = 12104,
-  AMOCAS_D_RV64 = 12105,
-  AMOCAS_D_RV64_AQ = 12106,
-  AMOCAS_D_RV64_AQ_RL = 12107,
-  AMOCAS_D_RV64_RL = 12108,
-  AMOCAS_H = 12109,
-  AMOCAS_H_AQ = 12110,
-  AMOCAS_H_AQ_RL = 12111,
-  AMOCAS_H_RL = 12112,
-  AMOCAS_Q = 12113,
-  AMOCAS_Q_AQ = 12114,
-  AMOCAS_Q_AQ_RL = 12115,
-  AMOCAS_Q_RL = 12116,
-  AMOCAS_W = 12117,
-  AMOCAS_W_AQ = 12118,
-  AMOCAS_W_AQ_RL = 12119,
-  AMOCAS_W_RL = 12120,
-  AMOMAXU_B = 12121,
-  AMOMAXU_B_AQ = 12122,
-  AMOMAXU_B_AQ_RL = 12123,
-  AMOMAXU_B_RL = 12124,
-  AMOMAXU_D = 12125,
-  AMOMAXU_D_AQ = 12126,
-  AMOMAXU_D_AQ_RL = 12127,
-  AMOMAXU_D_RL = 12128,
-  AMOMAXU_H = 12129,
-  AMOMAXU_H_AQ = 12130,
-  AMOMAXU_H_AQ_RL = 12131,
-  AMOMAXU_H_RL = 12132,
-  AMOMAXU_W = 12133,
-  AMOMAXU_W_AQ = 12134,
-  AMOMAXU_W_AQ_RL = 12135,
-  AMOMAXU_W_RL = 12136,
-  AMOMAX_B = 12137,
-  AMOMAX_B_AQ = 12138,
-  AMOMAX_B_AQ_RL = 12139,
-  AMOMAX_B_RL = 12140,
-  AMOMAX_D = 12141,
-  AMOMAX_D_AQ = 12142,
-  AMOMAX_D_AQ_RL = 12143,
-  AMOMAX_D_RL = 12144,
-  AMOMAX_H = 12145,
-  AMOMAX_H_AQ = 12146,
-  AMOMAX_H_AQ_RL = 12147,
-  AMOMAX_H_RL = 12148,
-  AMOMAX_W = 12149,
-  AMOMAX_W_AQ = 12150,
-  AMOMAX_W_AQ_RL = 12151,
-  AMOMAX_W_RL = 12152,
-  AMOMINU_B = 12153,
-  AMOMINU_B_AQ = 12154,
-  AMOMINU_B_AQ_RL = 12155,
-  AMOMINU_B_RL = 12156,
-  AMOMINU_D = 12157,
-  AMOMINU_D_AQ = 12158,
-  AMOMINU_D_AQ_RL = 12159,
-  AMOMINU_D_RL = 12160,
-  AMOMINU_H = 12161,
-  AMOMINU_H_AQ = 12162,
-  AMOMINU_H_AQ_RL = 12163,
-  AMOMINU_H_RL = 12164,
-  AMOMINU_W = 12165,
-  AMOMINU_W_AQ = 12166,
-  AMOMINU_W_AQ_RL = 12167,
-  AMOMINU_W_RL = 12168,
-  AMOMIN_B = 12169,
-  AMOMIN_B_AQ = 12170,
-  AMOMIN_B_AQ_RL = 12171,
-  AMOMIN_B_RL = 12172,
-  AMOMIN_D = 12173,
-  AMOMIN_D_AQ = 12174,
-  AMOMIN_D_AQ_RL = 12175,
-  AMOMIN_D_RL = 12176,
-  AMOMIN_H = 12177,
-  AMOMIN_H_AQ = 12178,
-  AMOMIN_H_AQ_RL = 12179,
-  AMOMIN_H_RL = 12180,
-  AMOMIN_W = 12181,
-  AMOMIN_W_AQ = 12182,
-  AMOMIN_W_AQ_RL = 12183,
-  AMOMIN_W_RL = 12184,
-  AMOOR_B = 12185,
-  AMOOR_B_AQ = 12186,
-  AMOOR_B_AQ_RL = 12187,
-  AMOOR_B_RL = 12188,
-  AMOOR_D = 12189,
-  AMOOR_D_AQ = 12190,
-  AMOOR_D_AQ_RL = 12191,
-  AMOOR_D_RL = 12192,
-  AMOOR_H = 12193,
-  AMOOR_H_AQ = 12194,
-  AMOOR_H_AQ_RL = 12195,
-  AMOOR_H_RL = 12196,
-  AMOOR_W = 12197,
-  AMOOR_W_AQ = 12198,
-  AMOOR_W_AQ_RL = 12199,
-  AMOOR_W_RL = 12200,
-  AMOSWAP_B = 12201,
-  AMOSWAP_B_AQ = 12202,
-  AMOSWAP_B_AQ_RL = 12203,
-  AMOSWAP_B_RL = 12204,
-  AMOSWAP_D = 12205,
-  AMOSWAP_D_AQ = 12206,
-  AMOSWAP_D_AQ_RL = 12207,
-  AMOSWAP_D_RL = 12208,
-  AMOSWAP_H = 12209,
-  AMOSWAP_H_AQ = 12210,
-  AMOSWAP_H_AQ_RL = 12211,
-  AMOSWAP_H_RL = 12212,
-  AMOSWAP_W = 12213,
-  AMOSWAP_W_AQ = 12214,
-  AMOSWAP_W_AQ_RL = 12215,
-  AMOSWAP_W_RL = 12216,
-  AMOXOR_B = 12217,
-  AMOXOR_B_AQ = 12218,
-  AMOXOR_B_AQ_RL = 12219,
-  AMOXOR_B_RL = 12220,
-  AMOXOR_D = 12221,
-  AMOXOR_D_AQ = 12222,
-  AMOXOR_D_AQ_RL = 12223,
-  AMOXOR_D_RL = 12224,
-  AMOXOR_H = 12225,
-  AMOXOR_H_AQ = 12226,
-  AMOXOR_H_AQ_RL = 12227,
-  AMOXOR_H_RL = 12228,
-  AMOXOR_W = 12229,
-  AMOXOR_W_AQ = 12230,
-  AMOXOR_W_AQ_RL = 12231,
-  AMOXOR_W_RL = 12232,
-  AND = 12233,
-  ANDI = 12234,
-  ANDN = 12235,
-  AUIPC = 12236,
-  BCLR = 12237,
-  BCLRI = 12238,
-  BEQ = 12239,
-  BEXT = 12240,
-  BEXTI = 12241,
-  BGE = 12242,
-  BGEU = 12243,
-  BINV = 12244,
-  BINVI = 12245,
-  BLT = 12246,
-  BLTU = 12247,
-  BNE = 12248,
-  BREV8 = 12249,
-  BSET = 12250,
-  BSETI = 12251,
-  CBO_CLEAN = 12252,
-  CBO_FLUSH = 12253,
-  CBO_INVAL = 12254,
-  CBO_ZERO = 12255,
-  CLMUL = 12256,
-  CLMULH = 12257,
-  CLMULR = 12258,
-  CLS = 12259,
-  CLSW = 12260,
-  CLZ = 12261,
-  CLZW = 12262,
-  CM_JALT = 12263,
-  CM_JT = 12264,
-  CM_MVA01S = 12265,
-  CM_MVSA01 = 12266,
-  CM_POP = 12267,
-  CM_POPRET = 12268,
-  CM_POPRETZ = 12269,
-  CM_PUSH = 12270,
-  CPOP = 12271,
-  CPOPW = 12272,
-  CSRRC = 12273,
-  CSRRCI = 12274,
-  CSRRS = 12275,
-  CSRRSI = 12276,
-  CSRRW = 12277,
-  CSRRWI = 12278,
-  CTZ = 12279,
-  CTZW = 12280,
-  CV_ABS = 12281,
-  CV_ABS_B = 12282,
-  CV_ABS_H = 12283,
-  CV_ADDN = 12284,
-  CV_ADDNR = 12285,
-  CV_ADDRN = 12286,
-  CV_ADDRNR = 12287,
-  CV_ADDUN = 12288,
-  CV_ADDUNR = 12289,
-  CV_ADDURN = 12290,
-  CV_ADDURNR = 12291,
-  CV_ADD_B = 12292,
-  CV_ADD_DIV2 = 12293,
-  CV_ADD_DIV4 = 12294,
-  CV_ADD_DIV8 = 12295,
-  CV_ADD_H = 12296,
-  CV_ADD_SCI_B = 12297,
-  CV_ADD_SCI_H = 12298,
-  CV_ADD_SC_B = 12299,
-  CV_ADD_SC_H = 12300,
-  CV_AND_B = 12301,
-  CV_AND_H = 12302,
-  CV_AND_SCI_B = 12303,
-  CV_AND_SCI_H = 12304,
-  CV_AND_SC_B = 12305,
-  CV_AND_SC_H = 12306,
-  CV_AVGU_B = 12307,
-  CV_AVGU_H = 12308,
-  CV_AVGU_SCI_B = 12309,
-  CV_AVGU_SCI_H = 12310,
-  CV_AVGU_SC_B = 12311,
-  CV_AVGU_SC_H = 12312,
-  CV_AVG_B = 12313,
-  CV_AVG_H = 12314,
-  CV_AVG_SCI_B = 12315,
-  CV_AVG_SCI_H = 12316,
-  CV_AVG_SC_B = 12317,
-  CV_AVG_SC_H = 12318,
-  CV_BCLR = 12319,
-  CV_BCLRR = 12320,
-  CV_BEQIMM = 12321,
-  CV_BITREV = 12322,
-  CV_BNEIMM = 12323,
-  CV_BSET = 12324,
-  CV_BSETR = 12325,
-  CV_CLB = 12326,
-  CV_CLIP = 12327,
-  CV_CLIPR = 12328,
-  CV_CLIPU = 12329,
-  CV_CLIPUR = 12330,
-  CV_CMPEQ_B = 12331,
-  CV_CMPEQ_H = 12332,
-  CV_CMPEQ_SCI_B = 12333,
-  CV_CMPEQ_SCI_H = 12334,
-  CV_CMPEQ_SC_B = 12335,
-  CV_CMPEQ_SC_H = 12336,
-  CV_CMPGEU_B = 12337,
-  CV_CMPGEU_H = 12338,
-  CV_CMPGEU_SCI_B = 12339,
-  CV_CMPGEU_SCI_H = 12340,
-  CV_CMPGEU_SC_B = 12341,
-  CV_CMPGEU_SC_H = 12342,
-  CV_CMPGE_B = 12343,
-  CV_CMPGE_H = 12344,
-  CV_CMPGE_SCI_B = 12345,
-  CV_CMPGE_SCI_H = 12346,
-  CV_CMPGE_SC_B = 12347,
-  CV_CMPGE_SC_H = 12348,
-  CV_CMPGTU_B = 12349,
-  CV_CMPGTU_H = 12350,
-  CV_CMPGTU_SCI_B = 12351,
-  CV_CMPGTU_SCI_H = 12352,
-  CV_CMPGTU_SC_B = 12353,
-  CV_CMPGTU_SC_H = 12354,
-  CV_CMPGT_B = 12355,
-  CV_CMPGT_H = 12356,
-  CV_CMPGT_SCI_B = 12357,
-  CV_CMPGT_SCI_H = 12358,
-  CV_CMPGT_SC_B = 12359,
-  CV_CMPGT_SC_H = 12360,
-  CV_CMPLEU_B = 12361,
-  CV_CMPLEU_H = 12362,
-  CV_CMPLEU_SCI_B = 12363,
-  CV_CMPLEU_SCI_H = 12364,
-  CV_CMPLEU_SC_B = 12365,
-  CV_CMPLEU_SC_H = 12366,
-  CV_CMPLE_B = 12367,
-  CV_CMPLE_H = 12368,
-  CV_CMPLE_SCI_B = 12369,
-  CV_CMPLE_SCI_H = 12370,
-  CV_CMPLE_SC_B = 12371,
-  CV_CMPLE_SC_H = 12372,
-  CV_CMPLTU_B = 12373,
-  CV_CMPLTU_H = 12374,
-  CV_CMPLTU_SCI_B = 12375,
-  CV_CMPLTU_SCI_H = 12376,
-  CV_CMPLTU_SC_B = 12377,
-  CV_CMPLTU_SC_H = 12378,
-  CV_CMPLT_B = 12379,
-  CV_CMPLT_H = 12380,
-  CV_CMPLT_SCI_B = 12381,
-  CV_CMPLT_SCI_H = 12382,
-  CV_CMPLT_SC_B = 12383,
-  CV_CMPLT_SC_H = 12384,
-  CV_CMPNE_B = 12385,
-  CV_CMPNE_H = 12386,
-  CV_CMPNE_SCI_B = 12387,
-  CV_CMPNE_SCI_H = 12388,
-  CV_CMPNE_SC_B = 12389,
-  CV_CMPNE_SC_H = 12390,
-  CV_CNT = 12391,
-  CV_CPLXCONJ = 12392,
-  CV_CPLXMUL_I = 12393,
-  CV_CPLXMUL_I_DIV2 = 12394,
-  CV_CPLXMUL_I_DIV4 = 12395,
-  CV_CPLXMUL_I_DIV8 = 12396,
-  CV_CPLXMUL_R = 12397,
-  CV_CPLXMUL_R_DIV2 = 12398,
-  CV_CPLXMUL_R_DIV4 = 12399,
-  CV_CPLXMUL_R_DIV8 = 12400,
-  CV_DOTSP_B = 12401,
-  CV_DOTSP_H = 12402,
-  CV_DOTSP_SCI_B = 12403,
-  CV_DOTSP_SCI_H = 12404,
-  CV_DOTSP_SC_B = 12405,
-  CV_DOTSP_SC_H = 12406,
-  CV_DOTUP_B = 12407,
-  CV_DOTUP_H = 12408,
-  CV_DOTUP_SCI_B = 12409,
-  CV_DOTUP_SCI_H = 12410,
-  CV_DOTUP_SC_B = 12411,
-  CV_DOTUP_SC_H = 12412,
-  CV_DOTUSP_B = 12413,
-  CV_DOTUSP_H = 12414,
-  CV_DOTUSP_SCI_B = 12415,
-  CV_DOTUSP_SCI_H = 12416,
-  CV_DOTUSP_SC_B = 12417,
-  CV_DOTUSP_SC_H = 12418,
-  CV_ELW = 12419,
-  CV_EXTBS = 12420,
-  CV_EXTBZ = 12421,
-  CV_EXTHS = 12422,
-  CV_EXTHZ = 12423,
-  CV_EXTRACT = 12424,
-  CV_EXTRACTR = 12425,
-  CV_EXTRACTU = 12426,
-  CV_EXTRACTUR = 12427,
-  CV_EXTRACTU_B = 12428,
-  CV_EXTRACTU_H = 12429,
-  CV_EXTRACT_B = 12430,
-  CV_EXTRACT_H = 12431,
-  CV_FF1 = 12432,
-  CV_FL1 = 12433,
-  CV_INSERT = 12434,
-  CV_INSERTR = 12435,
-  CV_INSERT_B = 12436,
-  CV_INSERT_H = 12437,
-  CV_LBU_ri_inc = 12438,
-  CV_LBU_rr = 12439,
-  CV_LBU_rr_inc = 12440,
-  CV_LB_ri_inc = 12441,
-  CV_LB_rr = 12442,
-  CV_LB_rr_inc = 12443,
-  CV_LHU_ri_inc = 12444,
-  CV_LHU_rr = 12445,
-  CV_LHU_rr_inc = 12446,
-  CV_LH_ri_inc = 12447,
-  CV_LH_rr = 12448,
-  CV_LH_rr_inc = 12449,
-  CV_LW_ri_inc = 12450,
-  CV_LW_rr = 12451,
-  CV_LW_rr_inc = 12452,
-  CV_MAC = 12453,
-  CV_MACHHSN = 12454,
-  CV_MACHHSRN = 12455,
-  CV_MACHHUN = 12456,
-  CV_MACHHURN = 12457,
-  CV_MACSN = 12458,
-  CV_MACSRN = 12459,
-  CV_MACUN = 12460,
-  CV_MACURN = 12461,
-  CV_MAX = 12462,
-  CV_MAXU = 12463,
-  CV_MAXU_B = 12464,
-  CV_MAXU_H = 12465,
-  CV_MAXU_SCI_B = 12466,
-  CV_MAXU_SCI_H = 12467,
-  CV_MAXU_SC_B = 12468,
-  CV_MAXU_SC_H = 12469,
-  CV_MAX_B = 12470,
-  CV_MAX_H = 12471,
-  CV_MAX_SCI_B = 12472,
-  CV_MAX_SCI_H = 12473,
-  CV_MAX_SC_B = 12474,
-  CV_MAX_SC_H = 12475,
-  CV_MIN = 12476,
-  CV_MINU = 12477,
-  CV_MINU_B = 12478,
-  CV_MINU_H = 12479,
-  CV_MINU_SCI_B = 12480,
-  CV_MINU_SCI_H = 12481,
-  CV_MINU_SC_B = 12482,
-  CV_MINU_SC_H = 12483,
-  CV_MIN_B = 12484,
-  CV_MIN_H = 12485,
-  CV_MIN_SCI_B = 12486,
-  CV_MIN_SCI_H = 12487,
-  CV_MIN_SC_B = 12488,
-  CV_MIN_SC_H = 12489,
-  CV_MSU = 12490,
-  CV_MULHHSN = 12491,
-  CV_MULHHSRN = 12492,
-  CV_MULHHUN = 12493,
-  CV_MULHHURN = 12494,
-  CV_MULSN = 12495,
-  CV_MULSRN = 12496,
-  CV_MULUN = 12497,
-  CV_MULURN = 12498,
-  CV_OR_B = 12499,
-  CV_OR_H = 12500,
-  CV_OR_SCI_B = 12501,
-  CV_OR_SCI_H = 12502,
-  CV_OR_SC_B = 12503,
-  CV_OR_SC_H = 12504,
-  CV_PACK = 12505,
-  CV_PACKHI_B = 12506,
-  CV_PACKLO_B = 12507,
-  CV_PACK_H = 12508,
-  CV_ROR = 12509,
-  CV_SB_ri_inc = 12510,
-  CV_SB_rr = 12511,
-  CV_SB_rr_inc = 12512,
-  CV_SDOTSP_B = 12513,
-  CV_SDOTSP_H = 12514,
-  CV_SDOTSP_SCI_B = 12515,
-  CV_SDOTSP_SCI_H = 12516,
-  CV_SDOTSP_SC_B = 12517,
-  CV_SDOTSP_SC_H = 12518,
-  CV_SDOTUP_B = 12519,
-  CV_SDOTUP_H = 12520,
-  CV_SDOTUP_SCI_B = 12521,
-  CV_SDOTUP_SCI_H = 12522,
-  CV_SDOTUP_SC_B = 12523,
-  CV_SDOTUP_SC_H = 12524,
-  CV_SDOTUSP_B = 12525,
-  CV_SDOTUSP_H = 12526,
-  CV_SDOTUSP_SCI_B = 12527,
-  CV_SDOTUSP_SCI_H = 12528,
-  CV_SDOTUSP_SC_B = 12529,
-  CV_SDOTUSP_SC_H = 12530,
-  CV_SHUFFLE2_B = 12531,
-  CV_SHUFFLE2_H = 12532,
-  CV_SHUFFLEI0_SCI_B = 12533,
-  CV_SHUFFLEI1_SCI_B = 12534,
-  CV_SHUFFLEI2_SCI_B = 12535,
-  CV_SHUFFLEI3_SCI_B = 12536,
-  CV_SHUFFLE_B = 12537,
-  CV_SHUFFLE_H = 12538,
-  CV_SHUFFLE_SCI_H = 12539,
-  CV_SH_ri_inc = 12540,
-  CV_SH_rr = 12541,
-  CV_SH_rr_inc = 12542,
-  CV_SLE = 12543,
-  CV_SLEU = 12544,
-  CV_SLL_B = 12545,
-  CV_SLL_H = 12546,
-  CV_SLL_SCI_B = 12547,
-  CV_SLL_SCI_H = 12548,
-  CV_SLL_SC_B = 12549,
-  CV_SLL_SC_H = 12550,
-  CV_SRA_B = 12551,
-  CV_SRA_H = 12552,
-  CV_SRA_SCI_B = 12553,
-  CV_SRA_SCI_H = 12554,
-  CV_SRA_SC_B = 12555,
-  CV_SRA_SC_H = 12556,
-  CV_SRL_B = 12557,
-  CV_SRL_H = 12558,
-  CV_SRL_SCI_B = 12559,
-  CV_SRL_SCI_H = 12560,
-  CV_SRL_SC_B = 12561,
-  CV_SRL_SC_H = 12562,
-  CV_SUBN = 12563,
-  CV_SUBNR = 12564,
-  CV_SUBRN = 12565,
-  CV_SUBRNR = 12566,
-  CV_SUBROTMJ = 12567,
-  CV_SUBROTMJ_DIV2 = 12568,
-  CV_SUBROTMJ_DIV4 = 12569,
-  CV_SUBROTMJ_DIV8 = 12570,
-  CV_SUBUN = 12571,
-  CV_SUBUNR = 12572,
-  CV_SUBURN = 12573,
-  CV_SUBURNR = 12574,
-  CV_SUB_B = 12575,
-  CV_SUB_DIV2 = 12576,
-  CV_SUB_DIV4 = 12577,
-  CV_SUB_DIV8 = 12578,
-  CV_SUB_H = 12579,
-  CV_SUB_SCI_B = 12580,
-  CV_SUB_SCI_H = 12581,
-  CV_SUB_SC_B = 12582,
-  CV_SUB_SC_H = 12583,
-  CV_SW_ri_inc = 12584,
-  CV_SW_rr = 12585,
-  CV_SW_rr_inc = 12586,
-  CV_XOR_B = 12587,
-  CV_XOR_H = 12588,
-  CV_XOR_SCI_B = 12589,
-  CV_XOR_SCI_H = 12590,
-  CV_XOR_SC_B = 12591,
-  CV_XOR_SC_H = 12592,
-  CZERO_EQZ = 12593,
-  CZERO_NEZ = 12594,
-  C_ADD = 12595,
-  C_ADDI = 12596,
-  C_ADDI16SP = 12597,
-  C_ADDI4SPN = 12598,
-  C_ADDIW = 12599,
-  C_ADDI_HINT_IMM_ZERO = 12600,
-  C_ADDW = 12601,
-  C_ADD_HINT = 12602,
-  C_AND = 12603,
-  C_ANDI = 12604,
-  C_BEQZ = 12605,
-  C_BNEZ = 12606,
-  C_EBREAK = 12607,
-  C_FLD = 12608,
-  C_FLDSP = 12609,
-  C_FLW = 12610,
-  C_FLWSP = 12611,
-  C_FSD = 12612,
-  C_FSDSP = 12613,
-  C_FSW = 12614,
-  C_FSWSP = 12615,
-  C_J = 12616,
-  C_JAL = 12617,
-  C_JALR = 12618,
-  C_JR = 12619,
-  C_LBU = 12620,
-  C_LD = 12621,
-  C_LDSP = 12622,
-  C_LDSP_RV32 = 12623,
-  C_LD_RV32 = 12624,
-  C_LH = 12625,
-  C_LHU = 12626,
-  C_LH_INX = 12627,
-  C_LI = 12628,
-  C_LI_HINT = 12629,
-  C_LUI = 12630,
-  C_LUI_HINT = 12631,
-  C_LW = 12632,
-  C_LWSP = 12633,
-  C_LWSP_INX = 12634,
-  C_LW_INX = 12635,
-  C_MOP1 = 12636,
-  C_MOP11 = 12637,
-  C_MOP13 = 12638,
-  C_MOP15 = 12639,
-  C_MOP3 = 12640,
-  C_MOP5 = 12641,
-  C_MOP7 = 12642,
-  C_MOP9 = 12643,
-  C_MUL = 12644,
-  C_MV = 12645,
-  C_MV_HINT = 12646,
-  C_NOP = 12647,
-  C_NOP_HINT = 12648,
-  C_NOT = 12649,
-  C_OR = 12650,
-  C_SB = 12651,
-  C_SD = 12652,
-  C_SDSP = 12653,
-  C_SDSP_RV32 = 12654,
-  C_SD_RV32 = 12655,
-  C_SEXT_B = 12656,
-  C_SEXT_H = 12657,
-  C_SH = 12658,
-  C_SH_INX = 12659,
-  C_SLLI = 12660,
-  C_SLLI64_HINT = 12661,
-  C_SLLI_HINT = 12662,
-  C_SRAI = 12663,
-  C_SRAI64_HINT = 12664,
-  C_SRLI = 12665,
-  C_SRLI64_HINT = 12666,
-  C_SSPOPCHK = 12667,
-  C_SSPUSH = 12668,
-  C_SUB = 12669,
-  C_SUBW = 12670,
-  C_SW = 12671,
-  C_SWSP = 12672,
-  C_SWSP_INX = 12673,
-  C_SW_INX = 12674,
-  C_UNIMP = 12675,
-  C_XOR = 12676,
-  C_ZEXT_B = 12677,
-  C_ZEXT_H = 12678,
-  C_ZEXT_W = 12679,
-  DIV = 12680,
-  DIVU = 12681,
-  DIVUW = 12682,
-  DIVW = 12683,
-  DRET = 12684,
-  EBREAK = 12685,
-  ECALL = 12686,
-  FADD_D = 12687,
-  FADD_D_IN32X = 12688,
-  FADD_D_INX = 12689,
-  FADD_H = 12690,
-  FADD_H_INX = 12691,
-  FADD_Q = 12692,
-  FADD_S = 12693,
-  FADD_S_INX = 12694,
-  FCLASS_D = 12695,
-  FCLASS_D_IN32X = 12696,
-  FCLASS_D_INX = 12697,
-  FCLASS_H = 12698,
-  FCLASS_H_INX = 12699,
-  FCLASS_Q = 12700,
-  FCLASS_S = 12701,
-  FCLASS_S_INX = 12702,
-  FCVTMOD_W_D = 12703,
-  FCVT_BF16_S = 12704,
-  FCVT_D_H = 12705,
-  FCVT_D_H_IN32X = 12706,
-  FCVT_D_H_INX = 12707,
-  FCVT_D_L = 12708,
-  FCVT_D_LU = 12709,
-  FCVT_D_LU_INX = 12710,
-  FCVT_D_L_INX = 12711,
-  FCVT_D_Q = 12712,
-  FCVT_D_S = 12713,
-  FCVT_D_S_IN32X = 12714,
-  FCVT_D_S_INX = 12715,
-  FCVT_D_W = 12716,
-  FCVT_D_WU = 12717,
-  FCVT_D_WU_IN32X = 12718,
-  FCVT_D_WU_INX = 12719,
-  FCVT_D_W_IN32X = 12720,
-  FCVT_D_W_INX = 12721,
-  FCVT_H_D = 12722,
-  FCVT_H_D_IN32X = 12723,
-  FCVT_H_D_INX = 12724,
-  FCVT_H_L = 12725,
-  FCVT_H_LU = 12726,
-  FCVT_H_LU_INX = 12727,
-  FCVT_H_L_INX = 12728,
-  FCVT_H_S = 12729,
-  FCVT_H_S_INX = 12730,
-  FCVT_H_W = 12731,
-  FCVT_H_WU = 12732,
-  FCVT_H_WU_INX = 12733,
-  FCVT_H_W_INX = 12734,
-  FCVT_LU_D = 12735,
-  FCVT_LU_D_INX = 12736,
-  FCVT_LU_H = 12737,
-  FCVT_LU_H_INX = 12738,
-  FCVT_LU_Q = 12739,
-  FCVT_LU_S = 12740,
-  FCVT_LU_S_INX = 12741,
-  FCVT_L_D = 12742,
-  FCVT_L_D_INX = 12743,
-  FCVT_L_H = 12744,
-  FCVT_L_H_INX = 12745,
-  FCVT_L_Q = 12746,
-  FCVT_L_S = 12747,
-  FCVT_L_S_INX = 12748,
-  FCVT_Q_D = 12749,
-  FCVT_Q_L = 12750,
-  FCVT_Q_LU = 12751,
-  FCVT_Q_S = 12752,
-  FCVT_Q_W = 12753,
-  FCVT_Q_WU = 12754,
-  FCVT_S_BF16 = 12755,
-  FCVT_S_D = 12756,
-  FCVT_S_D_IN32X = 12757,
-  FCVT_S_D_INX = 12758,
-  FCVT_S_H = 12759,
-  FCVT_S_H_INX = 12760,
-  FCVT_S_L = 12761,
-  FCVT_S_LU = 12762,
-  FCVT_S_LU_INX = 12763,
-  FCVT_S_L_INX = 12764,
-  FCVT_S_Q = 12765,
-  FCVT_S_W = 12766,
-  FCVT_S_WU = 12767,
-  FCVT_S_WU_INX = 12768,
-  FCVT_S_W_INX = 12769,
-  FCVT_WU_D = 12770,
-  FCVT_WU_D_IN32X = 12771,
-  FCVT_WU_D_INX = 12772,
-  FCVT_WU_H = 12773,
-  FCVT_WU_H_INX = 12774,
-  FCVT_WU_Q = 12775,
-  FCVT_WU_S = 12776,
-  FCVT_WU_S_INX = 12777,
-  FCVT_W_D = 12778,
-  FCVT_W_D_IN32X = 12779,
-  FCVT_W_D_INX = 12780,
-  FCVT_W_H = 12781,
-  FCVT_W_H_INX = 12782,
-  FCVT_W_Q = 12783,
-  FCVT_W_S = 12784,
-  FCVT_W_S_INX = 12785,
-  FDIV_D = 12786,
-  FDIV_D_IN32X = 12787,
-  FDIV_D_INX = 12788,
-  FDIV_H = 12789,
-  FDIV_H_INX = 12790,
-  FDIV_Q = 12791,
-  FDIV_S = 12792,
-  FDIV_S_INX = 12793,
-  FENCE = 12794,
-  FENCE_I = 12795,
-  FENCE_TSO = 12796,
-  FEQ_D = 12797,
-  FEQ_D_IN32X = 12798,
-  FEQ_D_INX = 12799,
-  FEQ_H = 12800,
-  FEQ_H_INX = 12801,
-  FEQ_Q = 12802,
-  FEQ_S = 12803,
-  FEQ_S_INX = 12804,
-  FLD = 12805,
-  FLEQ_D = 12806,
-  FLEQ_H = 12807,
-  FLEQ_Q = 12808,
-  FLEQ_S = 12809,
-  FLE_D = 12810,
-  FLE_D_IN32X = 12811,
-  FLE_D_INX = 12812,
-  FLE_H = 12813,
-  FLE_H_INX = 12814,
-  FLE_Q = 12815,
-  FLE_S = 12816,
-  FLE_S_INX = 12817,
-  FLH = 12818,
-  FLI_D = 12819,
-  FLI_H = 12820,
-  FLI_Q = 12821,
-  FLI_S = 12822,
-  FLQ = 12823,
-  FLTQ_D = 12824,
-  FLTQ_H = 12825,
-  FLTQ_Q = 12826,
-  FLTQ_S = 12827,
-  FLT_D = 12828,
-  FLT_D_IN32X = 12829,
-  FLT_D_INX = 12830,
-  FLT_H = 12831,
-  FLT_H_INX = 12832,
-  FLT_Q = 12833,
-  FLT_S = 12834,
-  FLT_S_INX = 12835,
-  FLW = 12836,
-  FMADD_D = 12837,
-  FMADD_D_IN32X = 12838,
-  FMADD_D_INX = 12839,
-  FMADD_H = 12840,
-  FMADD_H_INX = 12841,
-  FMADD_Q = 12842,
-  FMADD_S = 12843,
-  FMADD_S_INX = 12844,
-  FMAXM_D = 12845,
-  FMAXM_H = 12846,
-  FMAXM_Q = 12847,
-  FMAXM_S = 12848,
-  FMAX_D = 12849,
-  FMAX_D_IN32X = 12850,
-  FMAX_D_INX = 12851,
-  FMAX_H = 12852,
-  FMAX_H_INX = 12853,
-  FMAX_Q = 12854,
-  FMAX_S = 12855,
-  FMAX_S_INX = 12856,
-  FMINM_D = 12857,
-  FMINM_H = 12858,
-  FMINM_Q = 12859,
-  FMINM_S = 12860,
-  FMIN_D = 12861,
-  FMIN_D_IN32X = 12862,
-  FMIN_D_INX = 12863,
-  FMIN_H = 12864,
-  FMIN_H_INX = 12865,
-  FMIN_Q = 12866,
-  FMIN_S = 12867,
-  FMIN_S_INX = 12868,
-  FMSUB_D = 12869,
-  FMSUB_D_IN32X = 12870,
-  FMSUB_D_INX = 12871,
-  FMSUB_H = 12872,
-  FMSUB_H_INX = 12873,
-  FMSUB_Q = 12874,
-  FMSUB_S = 12875,
-  FMSUB_S_INX = 12876,
-  FMUL_D = 12877,
-  FMUL_D_IN32X = 12878,
-  FMUL_D_INX = 12879,
-  FMUL_H = 12880,
-  FMUL_H_INX = 12881,
-  FMUL_Q = 12882,
-  FMUL_S = 12883,
-  FMUL_S_INX = 12884,
-  FMVH_X_D = 12885,
-  FMVH_X_Q = 12886,
-  FMVP_D_X = 12887,
-  FMVP_Q_X = 12888,
-  FMV_D_X = 12889,
-  FMV_H_X = 12890,
-  FMV_W_X = 12891,
-  FMV_X_D = 12892,
-  FMV_X_H = 12893,
-  FMV_X_W = 12894,
-  FMV_X_W_FPR64 = 12895,
-  FNMADD_D = 12896,
-  FNMADD_D_IN32X = 12897,
-  FNMADD_D_INX = 12898,
-  FNMADD_H = 12899,
-  FNMADD_H_INX = 12900,
-  FNMADD_Q = 12901,
-  FNMADD_S = 12902,
-  FNMADD_S_INX = 12903,
-  FNMSUB_D = 12904,
-  FNMSUB_D_IN32X = 12905,
-  FNMSUB_D_INX = 12906,
-  FNMSUB_H = 12907,
-  FNMSUB_H_INX = 12908,
-  FNMSUB_Q = 12909,
-  FNMSUB_S = 12910,
-  FNMSUB_S_INX = 12911,
-  FROUNDNX_D = 12912,
-  FROUNDNX_H = 12913,
-  FROUNDNX_Q = 12914,
-  FROUNDNX_S = 12915,
-  FROUND_D = 12916,
-  FROUND_H = 12917,
-  FROUND_Q = 12918,
-  FROUND_S = 12919,
-  FSD = 12920,
-  FSGNJN_D = 12921,
-  FSGNJN_D_IN32X = 12922,
-  FSGNJN_D_INX = 12923,
-  FSGNJN_H = 12924,
-  FSGNJN_H_INX = 12925,
-  FSGNJN_Q = 12926,
-  FSGNJN_S = 12927,
-  FSGNJN_S_INX = 12928,
-  FSGNJX_D = 12929,
-  FSGNJX_D_IN32X = 12930,
-  FSGNJX_D_INX = 12931,
-  FSGNJX_H = 12932,
-  FSGNJX_H_INX = 12933,
-  FSGNJX_Q = 12934,
-  FSGNJX_S = 12935,
-  FSGNJX_S_INX = 12936,
-  FSGNJ_D = 12937,
-  FSGNJ_D_IN32X = 12938,
-  FSGNJ_D_INX = 12939,
-  FSGNJ_H = 12940,
-  FSGNJ_H_INX = 12941,
-  FSGNJ_Q = 12942,
-  FSGNJ_S = 12943,
-  FSGNJ_S_INX = 12944,
-  FSH = 12945,
-  FSQ = 12946,
-  FSQRT_D = 12947,
-  FSQRT_D_IN32X = 12948,
-  FSQRT_D_INX = 12949,
-  FSQRT_H = 12950,
-  FSQRT_H_INX = 12951,
-  FSQRT_Q = 12952,
-  FSQRT_S = 12953,
-  FSQRT_S_INX = 12954,
-  FSUB_D = 12955,
-  FSUB_D_IN32X = 12956,
-  FSUB_D_INX = 12957,
-  FSUB_H = 12958,
-  FSUB_H_INX = 12959,
-  FSUB_Q = 12960,
-  FSUB_S = 12961,
-  FSUB_S_INX = 12962,
-  FSW = 12963,
-  HFENCE_GVMA = 12964,
-  HFENCE_VVMA = 12965,
-  HINVAL_GVMA = 12966,
-  HINVAL_VVMA = 12967,
-  HLVX_HU = 12968,
-  HLVX_WU = 12969,
-  HLV_B = 12970,
-  HLV_BU = 12971,
-  HLV_D = 12972,
-  HLV_H = 12973,
-  HLV_HU = 12974,
-  HLV_W = 12975,
-  HLV_WU = 12976,
-  HSV_B = 12977,
-  HSV_D = 12978,
-  HSV_H = 12979,
-  HSV_W = 12980,
-  Insn16 = 12981,
-  Insn32 = 12982,
-  Insn48 = 12983,
-  Insn64 = 12984,
-  InsnB = 12985,
-  InsnCA = 12986,
-  InsnCB = 12987,
-  InsnCI = 12988,
-  InsnCIW = 12989,
-  InsnCJ = 12990,
-  InsnCL = 12991,
-  InsnCR = 12992,
-  InsnCS = 12993,
-  InsnCSS = 12994,
-  InsnI = 12995,
-  InsnI_Mem = 12996,
-  InsnJ = 12997,
-  InsnQC_EAI = 12998,
-  InsnQC_EB = 12999,
-  InsnQC_EI = 13000,
-  InsnQC_EI_Mem = 13001,
-  InsnQC_EJ = 13002,
-  InsnQC_ES = 13003,
-  InsnR = 13004,
-  InsnR4 = 13005,
-  InsnS = 13006,
-  InsnU = 13007,
-  JAL = 13008,
-  JALR = 13009,
-  LB = 13010,
-  LBU = 13011,
-  LB_AQ = 13012,
-  LB_AQ_RL = 13013,
-  LD = 13014,
-  LD_AQ = 13015,
-  LD_AQ_RL = 13016,
-  LD_RV32 = 13017,
-  LH = 13018,
-  LHU = 13019,
-  LH_AQ = 13020,
-  LH_AQ_RL = 13021,
-  LH_INX = 13022,
-  LR_D = 13023,
-  LR_D_AQ = 13024,
-  LR_D_AQ_RL = 13025,
-  LR_D_RL = 13026,
-  LR_W = 13027,
-  LR_W_AQ = 13028,
-  LR_W_AQ_RL = 13029,
-  LR_W_RL = 13030,
-  LUI = 13031,
-  LW = 13032,
-  LWU = 13033,
-  LW_AQ = 13034,
-  LW_AQ_RL = 13035,
-  LW_INX = 13036,
-  MAX = 13037,
-  MAXU = 13038,
-  MIN = 13039,
-  MINU = 13040,
-  MIPS_CCMOV = 13041,
-  MIPS_LDP = 13042,
-  MIPS_LWP = 13043,
-  MIPS_PREFETCH = 13044,
-  MIPS_SDP = 13045,
-  MIPS_SWP = 13046,
-  MNRET = 13047,
-  MOPR0 = 13048,
-  MOPR1 = 13049,
-  MOPR10 = 13050,
-  MOPR11 = 13051,
-  MOPR12 = 13052,
-  MOPR13 = 13053,
-  MOPR14 = 13054,
-  MOPR15 = 13055,
-  MOPR16 = 13056,
-  MOPR17 = 13057,
-  MOPR18 = 13058,
-  MOPR19 = 13059,
-  MOPR2 = 13060,
-  MOPR20 = 13061,
-  MOPR21 = 13062,
-  MOPR22 = 13063,
-  MOPR23 = 13064,
-  MOPR24 = 13065,
-  MOPR25 = 13066,
-  MOPR26 = 13067,
-  MOPR27 = 13068,
-  MOPR28 = 13069,
-  MOPR29 = 13070,
-  MOPR3 = 13071,
-  MOPR30 = 13072,
-  MOPR31 = 13073,
-  MOPR4 = 13074,
-  MOPR5 = 13075,
-  MOPR6 = 13076,
-  MOPR7 = 13077,
-  MOPR8 = 13078,
-  MOPR9 = 13079,
-  MOPRR0 = 13080,
-  MOPRR1 = 13081,
-  MOPRR2 = 13082,
-  MOPRR3 = 13083,
-  MOPRR4 = 13084,
-  MOPRR5 = 13085,
-  MOPRR6 = 13086,
-  MOPRR7 = 13087,
-  MRET = 13088,
-  MUL = 13089,
-  MULH = 13090,
-  MULHSU = 13091,
-  MULHU = 13092,
-  MULW = 13093,
-  NDS_ADDIGP = 13094,
-  NDS_BBC = 13095,
-  NDS_BBS = 13096,
-  NDS_BEQC = 13097,
-  NDS_BFOS = 13098,
-  NDS_BFOZ = 13099,
-  NDS_BNEC = 13100,
-  NDS_FCVT_BF16_S = 13101,
-  NDS_FCVT_S_BF16 = 13102,
-  NDS_FFB = 13103,
-  NDS_FFMISM = 13104,
-  NDS_FFZMISM = 13105,
-  NDS_FLMISM = 13106,
-  NDS_LBGP = 13107,
-  NDS_LBUGP = 13108,
-  NDS_LDGP = 13109,
-  NDS_LEA_B_ZE = 13110,
-  NDS_LEA_D = 13111,
-  NDS_LEA_D_ZE = 13112,
-  NDS_LEA_H = 13113,
-  NDS_LEA_H_ZE = 13114,
-  NDS_LEA_W = 13115,
-  NDS_LEA_W_ZE = 13116,
-  NDS_LHGP = 13117,
-  NDS_LHUGP = 13118,
-  NDS_LWGP = 13119,
-  NDS_LWUGP = 13120,
-  NDS_SBGP = 13121,
-  NDS_SDGP = 13122,
-  NDS_SHGP = 13123,
-  NDS_SWGP = 13124,
-  NDS_VD4DOTSU_VV = 13125,
-  NDS_VD4DOTS_VV = 13126,
-  NDS_VD4DOTU_VV = 13127,
-  NDS_VFNCVT_BF16_S = 13128,
-  NDS_VFPMADB_VF = 13129,
-  NDS_VFPMADT_VF = 13130,
-  NDS_VFWCVT_S_BF16 = 13131,
-  NDS_VLN8_V = 13132,
-  NDS_VLNU8_V = 13133,
-  OR = 13134,
-  ORC_B = 13135,
-  ORI = 13136,
-  ORN = 13137,
-  PACK = 13138,
-  PACKH = 13139,
-  PACKW = 13140,
-  PLI_B = 13141,
-  PLI_H = 13142,
-  PLI_W = 13143,
-  PLUI_H = 13144,
-  PLUI_W = 13145,
-  PREFETCH_I = 13146,
-  PREFETCH_R = 13147,
-  PREFETCH_W = 13148,
-  PSABS_B = 13149,
-  PSABS_H = 13150,
-  PSEXT_H_B = 13151,
-  PSEXT_W_B = 13152,
-  PSEXT_W_H = 13153,
-  PSLLI_B = 13154,
-  PSLLI_H = 13155,
-  PSLLI_W = 13156,
-  PSSLAI_H = 13157,
-  PSSLAI_W = 13158,
-  QC_ADDSAT = 13159,
-  QC_ADDUSAT = 13160,
-  QC_BEQI = 13161,
-  QC_BGEI = 13162,
-  QC_BGEUI = 13163,
-  QC_BLTI = 13164,
-  QC_BLTUI = 13165,
-  QC_BNEI = 13166,
-  QC_BREV32 = 13167,
-  QC_CLO = 13168,
-  QC_CLRINTI = 13169,
-  QC_CM_MVA01S = 13170,
-  QC_CM_MVSA01 = 13171,
-  QC_CM_POP = 13172,
-  QC_CM_POPRET = 13173,
-  QC_CM_POPRETZ = 13174,
-  QC_CM_PUSH = 13175,
-  QC_CM_PUSHFP = 13176,
-  QC_COMPRESS2 = 13177,
-  QC_COMPRESS3 = 13178,
-  QC_CSRRWR = 13179,
-  QC_CSRRWRI = 13180,
-  QC_CTO = 13181,
-  QC_C_BEXTI = 13182,
-  QC_C_BSETI = 13183,
-  QC_C_CLRINT = 13184,
-  QC_C_DELAY = 13185,
-  QC_C_DI = 13186,
-  QC_C_DIR = 13187,
-  QC_C_EI = 13188,
-  QC_C_EIR = 13189,
-  QC_C_EXTU = 13190,
-  QC_C_MIENTER = 13191,
-  QC_C_MIENTER_NEST = 13192,
-  QC_C_MILEAVERET = 13193,
-  QC_C_MNRET = 13194,
-  QC_C_MRET = 13195,
-  QC_C_MULIADD = 13196,
-  QC_C_MVEQZ = 13197,
-  QC_C_PTRACE = 13198,
-  QC_C_SETINT = 13199,
-  QC_C_SYNC = 13200,
-  QC_C_SYNCR = 13201,
-  QC_C_SYNCWF = 13202,
-  QC_C_SYNCWL = 13203,
-  QC_EXPAND2 = 13204,
-  QC_EXPAND3 = 13205,
-  QC_EXT = 13206,
-  QC_EXTD = 13207,
-  QC_EXTDPR = 13208,
-  QC_EXTDPRH = 13209,
-  QC_EXTDR = 13210,
-  QC_EXTDU = 13211,
-  QC_EXTDUPR = 13212,
-  QC_EXTDUPRH = 13213,
-  QC_EXTDUR = 13214,
-  QC_EXTU = 13215,
-  QC_E_ADDAI = 13216,
-  QC_E_ADDI = 13217,
-  QC_E_ANDAI = 13218,
-  QC_E_ANDI = 13219,
-  QC_E_BEQI = 13220,
-  QC_E_BGEI = 13221,
-  QC_E_BGEUI = 13222,
-  QC_E_BLTI = 13223,
-  QC_E_BLTUI = 13224,
-  QC_E_BNEI = 13225,
-  QC_E_J = 13226,
-  QC_E_JAL = 13227,
-  QC_E_LB = 13228,
-  QC_E_LBU = 13229,
-  QC_E_LH = 13230,
-  QC_E_LHU = 13231,
-  QC_E_LI = 13232,
-  QC_E_LW = 13233,
-  QC_E_ORAI = 13234,
-  QC_E_ORI = 13235,
-  QC_E_SB = 13236,
-  QC_E_SH = 13237,
-  QC_E_SW = 13238,
-  QC_E_XORAI = 13239,
-  QC_E_XORI = 13240,
-  QC_INSB = 13241,
-  QC_INSBH = 13242,
-  QC_INSBHR = 13243,
-  QC_INSBI = 13244,
-  QC_INSBPR = 13245,
-  QC_INSBPRH = 13246,
-  QC_INSBR = 13247,
-  QC_INSBRI = 13248,
-  QC_INW = 13249,
-  QC_LI = 13250,
-  QC_LIEQ = 13251,
-  QC_LIEQI = 13252,
-  QC_LIGE = 13253,
-  QC_LIGEI = 13254,
-  QC_LIGEU = 13255,
-  QC_LIGEUI = 13256,
-  QC_LILT = 13257,
-  QC_LILTI = 13258,
-  QC_LILTU = 13259,
-  QC_LILTUI = 13260,
-  QC_LINE = 13261,
-  QC_LINEI = 13262,
-  QC_LRB = 13263,
-  QC_LRBU = 13264,
-  QC_LRH = 13265,
-  QC_LRHU = 13266,
-  QC_LRW = 13267,
-  QC_LWM = 13268,
-  QC_LWMI = 13269,
-  QC_MULIADD = 13270,
-  QC_MVEQ = 13271,
-  QC_MVEQI = 13272,
-  QC_MVGE = 13273,
-  QC_MVGEI = 13274,
-  QC_MVGEU = 13275,
-  QC_MVGEUI = 13276,
-  QC_MVLT = 13277,
-  QC_MVLTI = 13278,
-  QC_MVLTU = 13279,
-  QC_MVLTUI = 13280,
-  QC_MVNE = 13281,
-  QC_MVNEI = 13282,
-  QC_NORM = 13283,
-  QC_NORMEU = 13284,
-  QC_NORMU = 13285,
-  QC_OUTW = 13286,
-  QC_PCOREDUMP = 13287,
-  QC_PEXIT = 13288,
-  QC_PPREG = 13289,
-  QC_PPREGS = 13290,
-  QC_PPUTC = 13291,
-  QC_PPUTCI = 13292,
-  QC_PPUTS = 13293,
-  QC_PSYSCALL = 13294,
-  QC_PSYSCALLI = 13295,
-  QC_SELECTEQI = 13296,
-  QC_SELECTIEQ = 13297,
-  QC_SELECTIEQI = 13298,
-  QC_SELECTIIEQ = 13299,
-  QC_SELECTIINE = 13300,
-  QC_SELECTINE = 13301,
-  QC_SELECTINEI = 13302,
-  QC_SELECTNEI = 13303,
-  QC_SETINTI = 13304,
-  QC_SETWM = 13305,
-  QC_SETWMI = 13306,
-  QC_SHLADD = 13307,
-  QC_SHLSAT = 13308,
-  QC_SHLUSAT = 13309,
-  QC_SRB = 13310,
-  QC_SRH = 13311,
-  QC_SRW = 13312,
-  QC_SUBSAT = 13313,
-  QC_SUBUSAT = 13314,
-  QC_SWM = 13315,
-  QC_SWMI = 13316,
-  QC_SYNC = 13317,
-  QC_SYNCR = 13318,
-  QC_SYNCWF = 13319,
-  QC_SYNCWL = 13320,
-  QC_WRAP = 13321,
-  QC_WRAPI = 13322,
-  QK_C_LBU = 13323,
-  QK_C_LBUSP = 13324,
-  QK_C_LHU = 13325,
-  QK_C_LHUSP = 13326,
-  QK_C_SB = 13327,
-  QK_C_SBSP = 13328,
-  QK_C_SH = 13329,
-  QK_C_SHSP = 13330,
-  REM = 13331,
-  REMU = 13332,
-  REMUW = 13333,
-  REMW = 13334,
-  REV16 = 13335,
-  REV8_RV32 = 13336,
-  REV8_RV64 = 13337,
-  REV_RV32 = 13338,
-  REV_RV64 = 13339,
-  RI_VEXTRACT = 13340,
-  RI_VINSERT = 13341,
-  RI_VUNZIP2A_VV = 13342,
-  RI_VUNZIP2B_VV = 13343,
-  RI_VZERO = 13344,
-  RI_VZIP2A_VV = 13345,
-  RI_VZIP2B_VV = 13346,
-  RI_VZIPEVEN_VV = 13347,
-  RI_VZIPODD_VV = 13348,
-  ROL = 13349,
-  ROLW = 13350,
-  ROR = 13351,
-  RORI = 13352,
-  RORIW = 13353,
-  RORW = 13354,
-  SB = 13355,
-  SB_AQ_RL = 13356,
-  SB_RL = 13357,
-  SCTRCLR = 13358,
-  SC_D = 13359,
-  SC_D_AQ = 13360,
-  SC_D_AQ_RL = 13361,
-  SC_D_RL = 13362,
-  SC_W = 13363,
-  SC_W_AQ = 13364,
-  SC_W_AQ_RL = 13365,
-  SC_W_RL = 13366,
-  SD = 13367,
-  SD_AQ_RL = 13368,
-  SD_RL = 13369,
-  SD_RV32 = 13370,
-  SEXT_B = 13371,
-  SEXT_H = 13372,
-  SFENCE_INVAL_IR = 13373,
-  SFENCE_VMA = 13374,
-  SFENCE_W_INVAL = 13375,
-  SF_CDISCARD_D_L1 = 13376,
-  SF_CEASE = 13377,
-  SF_CFLUSH_D_L1 = 13378,
-  SF_MM_E4M3_E4M3 = 13379,
-  SF_MM_E4M3_E5M2 = 13380,
-  SF_MM_E5M2_E4M3 = 13381,
-  SF_MM_E5M2_E5M2 = 13382,
-  SF_MM_F_F = 13383,
-  SF_MM_S_S = 13384,
-  SF_MM_S_U = 13385,
-  SF_MM_U_S = 13386,
-  SF_MM_U_U = 13387,
-  SF_VC_FV = 13388,
-  SF_VC_FVV = 13389,
-  SF_VC_FVW = 13390,
-  SF_VC_I = 13391,
-  SF_VC_IV = 13392,
-  SF_VC_IVV = 13393,
-  SF_VC_IVW = 13394,
-  SF_VC_VV = 13395,
-  SF_VC_VVV = 13396,
-  SF_VC_VVW = 13397,
-  SF_VC_V_FV = 13398,
-  SF_VC_V_FVV = 13399,
-  SF_VC_V_FVW = 13400,
-  SF_VC_V_I = 13401,
-  SF_VC_V_IV = 13402,
-  SF_VC_V_IVV = 13403,
-  SF_VC_V_IVW = 13404,
-  SF_VC_V_VV = 13405,
-  SF_VC_V_VVV = 13406,
-  SF_VC_V_VVW = 13407,
-  SF_VC_V_X = 13408,
-  SF_VC_V_XV = 13409,
-  SF_VC_V_XVV = 13410,
-  SF_VC_V_XVW = 13411,
-  SF_VC_X = 13412,
-  SF_VC_XV = 13413,
-  SF_VC_XVV = 13414,
-  SF_VC_XVW = 13415,
-  SF_VFNRCLIP_XU_F_QF = 13416,
-  SF_VFNRCLIP_X_F_QF = 13417,
-  SF_VFWMACC_4x4x4 = 13418,
-  SF_VLTE16 = 13419,
-  SF_VLTE32 = 13420,
-  SF_VLTE64 = 13421,
-  SF_VLTE8 = 13422,
-  SF_VQMACCSU_2x8x2 = 13423,
-  SF_VQMACCSU_4x8x4 = 13424,
-  SF_VQMACCUS_2x8x2 = 13425,
-  SF_VQMACCUS_4x8x4 = 13426,
-  SF_VQMACCU_2x8x2 = 13427,
-  SF_VQMACCU_4x8x4 = 13428,
-  SF_VQMACC_2x8x2 = 13429,
-  SF_VQMACC_4x8x4 = 13430,
-  SF_VSETTK = 13431,
-  SF_VSETTM = 13432,
-  SF_VSETTN = 13433,
-  SF_VSTE16 = 13434,
-  SF_VSTE32 = 13435,
-  SF_VSTE64 = 13436,
-  SF_VSTE8 = 13437,
-  SF_VTDISCARD = 13438,
-  SF_VTMV_T_V = 13439,
-  SF_VTMV_V_T = 13440,
-  SF_VTZERO_T = 13441,
-  SH = 13442,
-  SH1ADD = 13443,
-  SH1ADD_UW = 13444,
-  SH2ADD = 13445,
-  SH2ADD_UW = 13446,
-  SH3ADD = 13447,
-  SH3ADD_UW = 13448,
-  SHA256SIG0 = 13449,
-  SHA256SIG1 = 13450,
-  SHA256SUM0 = 13451,
-  SHA256SUM1 = 13452,
-  SHA512SIG0 = 13453,
-  SHA512SIG0H = 13454,
-  SHA512SIG0L = 13455,
-  SHA512SIG1 = 13456,
-  SHA512SIG1H = 13457,
-  SHA512SIG1L = 13458,
-  SHA512SUM0 = 13459,
-  SHA512SUM0R = 13460,
-  SHA512SUM1 = 13461,
-  SHA512SUM1R = 13462,
-  SH_AQ_RL = 13463,
-  SH_INX = 13464,
-  SH_RL = 13465,
-  SINVAL_VMA = 13466,
-  SLL = 13467,
-  SLLI = 13468,
-  SLLIW = 13469,
-  SLLI_UW = 13470,
-  SLLW = 13471,
-  SLT = 13472,
-  SLTI = 13473,
-  SLTIU = 13474,
-  SLTU = 13475,
-  SM3P0 = 13476,
-  SM3P1 = 13477,
-  SM4ED = 13478,
-  SM4KS = 13479,
-  SRA = 13480,
-  SRAI = 13481,
-  SRAIW = 13482,
-  SRAW = 13483,
-  SRET = 13484,
-  SRL = 13485,
-  SRLI = 13486,
-  SRLIW = 13487,
-  SRLW = 13488,
-  SSAMOSWAP_D = 13489,
-  SSAMOSWAP_D_AQ = 13490,
-  SSAMOSWAP_D_AQ_RL = 13491,
-  SSAMOSWAP_D_RL = 13492,
-  SSAMOSWAP_W = 13493,
-  SSAMOSWAP_W_AQ = 13494,
-  SSAMOSWAP_W_AQ_RL = 13495,
-  SSAMOSWAP_W_RL = 13496,
-  SSLAI = 13497,
-  SSPOPCHK = 13498,
-  SSPUSH = 13499,
-  SSRDP = 13500,
-  SUB = 13501,
-  SUBW = 13502,
-  SW = 13503,
-  SW_AQ_RL = 13504,
-  SW_INX = 13505,
-  SW_RL = 13506,
-  TH_ADDSL = 13507,
-  TH_DCACHE_CALL = 13508,
-  TH_DCACHE_CIALL = 13509,
-  TH_DCACHE_CIPA = 13510,
-  TH_DCACHE_CISW = 13511,
-  TH_DCACHE_CIVA = 13512,
-  TH_DCACHE_CPA = 13513,
-  TH_DCACHE_CPAL1 = 13514,
-  TH_DCACHE_CSW = 13515,
-  TH_DCACHE_CVA = 13516,
-  TH_DCACHE_CVAL1 = 13517,
-  TH_DCACHE_IALL = 13518,
-  TH_DCACHE_IPA = 13519,
-  TH_DCACHE_ISW = 13520,
-  TH_DCACHE_IVA = 13521,
-  TH_EXT = 13522,
-  TH_EXTU = 13523,
-  TH_FF0 = 13524,
-  TH_FF1 = 13525,
-  TH_FLRD = 13526,
-  TH_FLRW = 13527,
-  TH_FLURD = 13528,
-  TH_FLURW = 13529,
-  TH_FSRD = 13530,
-  TH_FSRW = 13531,
-  TH_FSURD = 13532,
-  TH_FSURW = 13533,
-  TH_ICACHE_IALL = 13534,
-  TH_ICACHE_IALLS = 13535,
-  TH_ICACHE_IPA = 13536,
-  TH_ICACHE_IVA = 13537,
-  TH_L2CACHE_CALL = 13538,
-  TH_L2CACHE_CIALL = 13539,
-  TH_L2CACHE_IALL = 13540,
-  TH_LBIA = 13541,
-  TH_LBIB = 13542,
-  TH_LBUIA = 13543,
-  TH_LBUIB = 13544,
-  TH_LDD = 13545,
-  TH_LDIA = 13546,
-  TH_LDIB = 13547,
-  TH_LHIA = 13548,
-  TH_LHIB = 13549,
-  TH_LHUIA = 13550,
-  TH_LHUIB = 13551,
-  TH_LRB = 13552,
-  TH_LRBU = 13553,
-  TH_LRD = 13554,
-  TH_LRH = 13555,
-  TH_LRHU = 13556,
-  TH_LRW = 13557,
-  TH_LRWU = 13558,
-  TH_LURB = 13559,
-  TH_LURBU = 13560,
-  TH_LURD = 13561,
-  TH_LURH = 13562,
-  TH_LURHU = 13563,
-  TH_LURW = 13564,
-  TH_LURWU = 13565,
-  TH_LWD = 13566,
-  TH_LWIA = 13567,
-  TH_LWIB = 13568,
-  TH_LWUD = 13569,
-  TH_LWUIA = 13570,
-  TH_LWUIB = 13571,
-  TH_MULA = 13572,
-  TH_MULAH = 13573,
-  TH_MULAW = 13574,
-  TH_MULS = 13575,
-  TH_MULSH = 13576,
-  TH_MULSW = 13577,
-  TH_MVEQZ = 13578,
-  TH_MVNEZ = 13579,
-  TH_REV = 13580,
-  TH_REVW = 13581,
-  TH_SBIA = 13582,
-  TH_SBIB = 13583,
-  TH_SDD = 13584,
-  TH_SDIA = 13585,
-  TH_SDIB = 13586,
-  TH_SFENCE_VMAS = 13587,
-  TH_SHIA = 13588,
-  TH_SHIB = 13589,
-  TH_SRB = 13590,
-  TH_SRD = 13591,
-  TH_SRH = 13592,
-  TH_SRRI = 13593,
-  TH_SRRIW = 13594,
-  TH_SRW = 13595,
-  TH_SURB = 13596,
-  TH_SURD = 13597,
-  TH_SURH = 13598,
-  TH_SURW = 13599,
-  TH_SWD = 13600,
-  TH_SWIA = 13601,
-  TH_SWIB = 13602,
-  TH_SYNC = 13603,
-  TH_SYNC_I = 13604,
-  TH_SYNC_IS = 13605,
-  TH_SYNC_S = 13606,
-  TH_TST = 13607,
-  TH_TSTNBZ = 13608,
-  TH_VMAQASU_VV = 13609,
-  TH_VMAQASU_VX = 13610,
-  TH_VMAQAUS_VX = 13611,
-  TH_VMAQAU_VV = 13612,
-  TH_VMAQAU_VX = 13613,
-  TH_VMAQA_VV = 13614,
-  TH_VMAQA_VX = 13615,
-  UNIMP = 13616,
-  UNZIP_RV32 = 13617,
-  VAADDU_VV = 13618,
-  VAADDU_VX = 13619,
-  VAADD_VV = 13620,
-  VAADD_VX = 13621,
-  VADC_VIM = 13622,
-  VADC_VVM = 13623,
-  VADC_VXM = 13624,
-  VADD_VI = 13625,
-  VADD_VV = 13626,
-  VADD_VX = 13627,
-  VAESDF_VS = 13628,
-  VAESDF_VV = 13629,
-  VAESDM_VS = 13630,
-  VAESDM_VV = 13631,
-  VAESEF_VS = 13632,
-  VAESEF_VV = 13633,
-  VAESEM_VS = 13634,
-  VAESEM_VV = 13635,
-  VAESKF1_VI = 13636,
-  VAESKF2_VI = 13637,
-  VAESZ_VS = 13638,
-  VANDN_VV = 13639,
-  VANDN_VX = 13640,
-  VAND_VI = 13641,
-  VAND_VV = 13642,
-  VAND_VX = 13643,
-  VASUBU_VV = 13644,
-  VASUBU_VX = 13645,
-  VASUB_VV = 13646,
-  VASUB_VX = 13647,
-  VBREV8_V = 13648,
-  VBREV_V = 13649,
-  VCLMULH_VV = 13650,
-  VCLMULH_VX = 13651,
-  VCLMUL_VV = 13652,
-  VCLMUL_VX = 13653,
-  VCLZ_V = 13654,
-  VCOMPRESS_VM = 13655,
-  VCPOP_M = 13656,
-  VCPOP_V = 13657,
-  VCTZ_V = 13658,
-  VDIVU_VV = 13659,
-  VDIVU_VX = 13660,
-  VDIV_VV = 13661,
-  VDIV_VX = 13662,
-  VFADD_VF = 13663,
-  VFADD_VV = 13664,
-  VFCLASS_V = 13665,
-  VFCVT_F_XU_V = 13666,
-  VFCVT_F_X_V = 13667,
-  VFCVT_RTZ_XU_F_V = 13668,
-  VFCVT_RTZ_X_F_V = 13669,
-  VFCVT_XU_F_V = 13670,
-  VFCVT_X_F_V = 13671,
-  VFDIV_VF = 13672,
-  VFDIV_VV = 13673,
-  VFIRST_M = 13674,
-  VFMACC_VF = 13675,
-  VFMACC_VV = 13676,
-  VFMADD_VF = 13677,
-  VFMADD_VV = 13678,
-  VFMAX_VF = 13679,
-  VFMAX_VV = 13680,
-  VFMERGE_VFM = 13681,
-  VFMIN_VF = 13682,
-  VFMIN_VV = 13683,
-  VFMSAC_VF = 13684,
-  VFMSAC_VV = 13685,
-  VFMSUB_VF = 13686,
-  VFMSUB_VV = 13687,
-  VFMUL_VF = 13688,
-  VFMUL_VV = 13689,
-  VFMV_F_S = 13690,
-  VFMV_S_F = 13691,
-  VFMV_V_F = 13692,
-  VFNCVTBF16_F_F_W = 13693,
-  VFNCVT_F_F_W = 13694,
-  VFNCVT_F_XU_W = 13695,
-  VFNCVT_F_X_W = 13696,
-  VFNCVT_ROD_F_F_W = 13697,
-  VFNCVT_RTZ_XU_F_W = 13698,
-  VFNCVT_RTZ_X_F_W = 13699,
-  VFNCVT_XU_F_W = 13700,
-  VFNCVT_X_F_W = 13701,
-  VFNMACC_VF = 13702,
-  VFNMACC_VV = 13703,
-  VFNMADD_VF = 13704,
-  VFNMADD_VV = 13705,
-  VFNMSAC_VF = 13706,
-  VFNMSAC_VV = 13707,
-  VFNMSUB_VF = 13708,
-  VFNMSUB_VV = 13709,
-  VFRDIV_VF = 13710,
-  VFREC7_V = 13711,
-  VFREDMAX_VS = 13712,
-  VFREDMIN_VS = 13713,
-  VFREDOSUM_VS = 13714,
-  VFREDUSUM_VS = 13715,
-  VFRSQRT7_V = 13716,
-  VFRSUB_VF = 13717,
-  VFSGNJN_VF = 13718,
-  VFSGNJN_VV = 13719,
-  VFSGNJX_VF = 13720,
-  VFSGNJX_VV = 13721,
-  VFSGNJ_VF = 13722,
-  VFSGNJ_VV = 13723,
-  VFSLIDE1DOWN_VF = 13724,
-  VFSLIDE1UP_VF = 13725,
-  VFSQRT_V = 13726,
-  VFSUB_VF = 13727,
-  VFSUB_VV = 13728,
-  VFWADD_VF = 13729,
-  VFWADD_VV = 13730,
-  VFWADD_WF = 13731,
-  VFWADD_WV = 13732,
-  VFWCVTBF16_F_F_V = 13733,
-  VFWCVT_F_F_V = 13734,
-  VFWCVT_F_XU_V = 13735,
-  VFWCVT_F_X_V = 13736,
-  VFWCVT_RTZ_XU_F_V = 13737,
-  VFWCVT_RTZ_X_F_V = 13738,
-  VFWCVT_XU_F_V = 13739,
-  VFWCVT_X_F_V = 13740,
-  VFWMACCBF16_VF = 13741,
-  VFWMACCBF16_VV = 13742,
-  VFWMACC_VF = 13743,
-  VFWMACC_VV = 13744,
-  VFWMSAC_VF = 13745,
-  VFWMSAC_VV = 13746,
-  VFWMUL_VF = 13747,
-  VFWMUL_VV = 13748,
-  VFWNMACC_VF = 13749,
-  VFWNMACC_VV = 13750,
-  VFWNMSAC_VF = 13751,
-  VFWNMSAC_VV = 13752,
-  VFWREDOSUM_VS = 13753,
-  VFWREDUSUM_VS = 13754,
-  VFWSUB_VF = 13755,
-  VFWSUB_VV = 13756,
-  VFWSUB_WF = 13757,
-  VFWSUB_WV = 13758,
-  VGHSH_VS = 13759,
-  VGHSH_VV = 13760,
-  VGMUL_VS = 13761,
-  VGMUL_VV = 13762,
-  VID_V = 13763,
-  VIOTA_M = 13764,
-  VL1RE16_V = 13765,
-  VL1RE32_V = 13766,
-  VL1RE64_V = 13767,
-  VL1RE8_V = 13768,
-  VL2RE16_V = 13769,
-  VL2RE32_V = 13770,
-  VL2RE64_V = 13771,
-  VL2RE8_V = 13772,
-  VL4RE16_V = 13773,
-  VL4RE32_V = 13774,
-  VL4RE64_V = 13775,
-  VL4RE8_V = 13776,
-  VL8RE16_V = 13777,
-  VL8RE32_V = 13778,
-  VL8RE64_V = 13779,
-  VL8RE8_V = 13780,
-  VLE16FF_V = 13781,
-  VLE16_V = 13782,
-  VLE32FF_V = 13783,
-  VLE32_V = 13784,
-  VLE64FF_V = 13785,
-  VLE64_V = 13786,
-  VLE8FF_V = 13787,
-  VLE8_V = 13788,
-  VLM_V = 13789,
-  VLOXEI16_V = 13790,
-  VLOXEI32_V = 13791,
-  VLOXEI64_V = 13792,
-  VLOXEI8_V = 13793,
-  VLOXSEG2EI16_V = 13794,
-  VLOXSEG2EI32_V = 13795,
-  VLOXSEG2EI64_V = 13796,
-  VLOXSEG2EI8_V = 13797,
-  VLOXSEG3EI16_V = 13798,
-  VLOXSEG3EI32_V = 13799,
-  VLOXSEG3EI64_V = 13800,
-  VLOXSEG3EI8_V = 13801,
-  VLOXSEG4EI16_V = 13802,
-  VLOXSEG4EI32_V = 13803,
-  VLOXSEG4EI64_V = 13804,
-  VLOXSEG4EI8_V = 13805,
-  VLOXSEG5EI16_V = 13806,
-  VLOXSEG5EI32_V = 13807,
-  VLOXSEG5EI64_V = 13808,
-  VLOXSEG5EI8_V = 13809,
-  VLOXSEG6EI16_V = 13810,
-  VLOXSEG6EI32_V = 13811,
-  VLOXSEG6EI64_V = 13812,
-  VLOXSEG6EI8_V = 13813,
-  VLOXSEG7EI16_V = 13814,
-  VLOXSEG7EI32_V = 13815,
-  VLOXSEG7EI64_V = 13816,
-  VLOXSEG7EI8_V = 13817,
-  VLOXSEG8EI16_V = 13818,
-  VLOXSEG8EI32_V = 13819,
-  VLOXSEG8EI64_V = 13820,
-  VLOXSEG8EI8_V = 13821,
-  VLSE16_V = 13822,
-  VLSE32_V = 13823,
-  VLSE64_V = 13824,
-  VLSE8_V = 13825,
-  VLSEG2E16FF_V = 13826,
-  VLSEG2E16_V = 13827,
-  VLSEG2E32FF_V = 13828,
-  VLSEG2E32_V = 13829,
-  VLSEG2E64FF_V = 13830,
-  VLSEG2E64_V = 13831,
-  VLSEG2E8FF_V = 13832,
-  VLSEG2E8_V = 13833,
-  VLSEG3E16FF_V = 13834,
-  VLSEG3E16_V = 13835,
-  VLSEG3E32FF_V = 13836,
-  VLSEG3E32_V = 13837,
-  VLSEG3E64FF_V = 13838,
-  VLSEG3E64_V = 13839,
-  VLSEG3E8FF_V = 13840,
-  VLSEG3E8_V = 13841,
-  VLSEG4E16FF_V = 13842,
-  VLSEG4E16_V = 13843,
-  VLSEG4E32FF_V = 13844,
-  VLSEG4E32_V = 13845,
-  VLSEG4E64FF_V = 13846,
-  VLSEG4E64_V = 13847,
-  VLSEG4E8FF_V = 13848,
-  VLSEG4E8_V = 13849,
-  VLSEG5E16FF_V = 13850,
-  VLSEG5E16_V = 13851,
-  VLSEG5E32FF_V = 13852,
-  VLSEG5E32_V = 13853,
-  VLSEG5E64FF_V = 13854,
-  VLSEG5E64_V = 13855,
-  VLSEG5E8FF_V = 13856,
-  VLSEG5E8_V = 13857,
-  VLSEG6E16FF_V = 13858,
-  VLSEG6E16_V = 13859,
-  VLSEG6E32FF_V = 13860,
-  VLSEG6E32_V = 13861,
-  VLSEG6E64FF_V = 13862,
-  VLSEG6E64_V = 13863,
-  VLSEG6E8FF_V = 13864,
-  VLSEG6E8_V = 13865,
-  VLSEG7E16FF_V = 13866,
-  VLSEG7E16_V = 13867,
-  VLSEG7E32FF_V = 13868,
-  VLSEG7E32_V = 13869,
-  VLSEG7E64FF_V = 13870,
-  VLSEG7E64_V = 13871,
-  VLSEG7E8FF_V = 13872,
-  VLSEG7E8_V = 13873,
-  VLSEG8E16FF_V = 13874,
-  VLSEG8E16_V = 13875,
-  VLSEG8E32FF_V = 13876,
-  VLSEG8E32_V = 13877,
-  VLSEG8E64FF_V = 13878,
-  VLSEG8E64_V = 13879,
-  VLSEG8E8FF_V = 13880,
-  VLSEG8E8_V = 13881,
-  VLSSEG2E16_V = 13882,
-  VLSSEG2E32_V = 13883,
-  VLSSEG2E64_V = 13884,
-  VLSSEG2E8_V = 13885,
-  VLSSEG3E16_V = 13886,
-  VLSSEG3E32_V = 13887,
-  VLSSEG3E64_V = 13888,
-  VLSSEG3E8_V = 13889,
-  VLSSEG4E16_V = 13890,
-  VLSSEG4E32_V = 13891,
-  VLSSEG4E64_V = 13892,
-  VLSSEG4E8_V = 13893,
-  VLSSEG5E16_V = 13894,
-  VLSSEG5E32_V = 13895,
-  VLSSEG5E64_V = 13896,
-  VLSSEG5E8_V = 13897,
-  VLSSEG6E16_V = 13898,
-  VLSSEG6E32_V = 13899,
-  VLSSEG6E64_V = 13900,
-  VLSSEG6E8_V = 13901,
-  VLSSEG7E16_V = 13902,
-  VLSSEG7E32_V = 13903,
-  VLSSEG7E64_V = 13904,
-  VLSSEG7E8_V = 13905,
-  VLSSEG8E16_V = 13906,
-  VLSSEG8E32_V = 13907,
-  VLSSEG8E64_V = 13908,
-  VLSSEG8E8_V = 13909,
-  VLUXEI16_V = 13910,
-  VLUXEI32_V = 13911,
-  VLUXEI64_V = 13912,
-  VLUXEI8_V = 13913,
-  VLUXSEG2EI16_V = 13914,
-  VLUXSEG2EI32_V = 13915,
-  VLUXSEG2EI64_V = 13916,
-  VLUXSEG2EI8_V = 13917,
-  VLUXSEG3EI16_V = 13918,
-  VLUXSEG3EI32_V = 13919,
-  VLUXSEG3EI64_V = 13920,
-  VLUXSEG3EI8_V = 13921,
-  VLUXSEG4EI16_V = 13922,
-  VLUXSEG4EI32_V = 13923,
-  VLUXSEG4EI64_V = 13924,
-  VLUXSEG4EI8_V = 13925,
-  VLUXSEG5EI16_V = 13926,
-  VLUXSEG5EI32_V = 13927,
-  VLUXSEG5EI64_V = 13928,
-  VLUXSEG5EI8_V = 13929,
-  VLUXSEG6EI16_V = 13930,
-  VLUXSEG6EI32_V = 13931,
-  VLUXSEG6EI64_V = 13932,
-  VLUXSEG6EI8_V = 13933,
-  VLUXSEG7EI16_V = 13934,
-  VLUXSEG7EI32_V = 13935,
-  VLUXSEG7EI64_V = 13936,
-  VLUXSEG7EI8_V = 13937,
-  VLUXSEG8EI16_V = 13938,
-  VLUXSEG8EI32_V = 13939,
-  VLUXSEG8EI64_V = 13940,
-  VLUXSEG8EI8_V = 13941,
-  VMACC_VV = 13942,
-  VMACC_VX = 13943,
-  VMADC_VI = 13944,
-  VMADC_VIM = 13945,
-  VMADC_VV = 13946,
-  VMADC_VVM = 13947,
-  VMADC_VX = 13948,
-  VMADC_VXM = 13949,
-  VMADD_VV = 13950,
-  VMADD_VX = 13951,
-  VMANDN_MM = 13952,
-  VMAND_MM = 13953,
-  VMAXU_VV = 13954,
-  VMAXU_VX = 13955,
-  VMAX_VV = 13956,
-  VMAX_VX = 13957,
-  VMERGE_VIM = 13958,
-  VMERGE_VVM = 13959,
-  VMERGE_VXM = 13960,
-  VMFEQ_VF = 13961,
-  VMFEQ_VV = 13962,
-  VMFGE_VF = 13963,
-  VMFGT_VF = 13964,
-  VMFLE_VF = 13965,
-  VMFLE_VV = 13966,
-  VMFLT_VF = 13967,
-  VMFLT_VV = 13968,
-  VMFNE_VF = 13969,
-  VMFNE_VV = 13970,
-  VMINU_VV = 13971,
-  VMINU_VX = 13972,
-  VMIN_VV = 13973,
-  VMIN_VX = 13974,
-  VMNAND_MM = 13975,
-  VMNOR_MM = 13976,
-  VMORN_MM = 13977,
-  VMOR_MM = 13978,
-  VMSBC_VV = 13979,
-  VMSBC_VVM = 13980,
-  VMSBC_VX = 13981,
-  VMSBC_VXM = 13982,
-  VMSBF_M = 13983,
-  VMSEQ_VI = 13984,
-  VMSEQ_VV = 13985,
-  VMSEQ_VX = 13986,
-  VMSGTU_VI = 13987,
-  VMSGTU_VX = 13988,
-  VMSGT_VI = 13989,
-  VMSGT_VX = 13990,
-  VMSIF_M = 13991,
-  VMSLEU_VI = 13992,
-  VMSLEU_VV = 13993,
-  VMSLEU_VX = 13994,
-  VMSLE_VI = 13995,
-  VMSLE_VV = 13996,
-  VMSLE_VX = 13997,
-  VMSLTU_VV = 13998,
-  VMSLTU_VX = 13999,
-  VMSLT_VV = 14000,
-  VMSLT_VX = 14001,
-  VMSNE_VI = 14002,
-  VMSNE_VV = 14003,
-  VMSNE_VX = 14004,
-  VMSOF_M = 14005,
-  VMULHSU_VV = 14006,
-  VMULHSU_VX = 14007,
-  VMULHU_VV = 14008,
-  VMULHU_VX = 14009,
-  VMULH_VV = 14010,
-  VMULH_VX = 14011,
-  VMUL_VV = 14012,
-  VMUL_VX = 14013,
-  VMV1R_V = 14014,
-  VMV2R_V = 14015,
-  VMV4R_V = 14016,
-  VMV8R_V = 14017,
-  VMV_S_X = 14018,
-  VMV_V_I = 14019,
-  VMV_V_V = 14020,
-  VMV_V_X = 14021,
-  VMV_X_S = 14022,
-  VMXNOR_MM = 14023,
-  VMXOR_MM = 14024,
-  VNCLIPU_WI = 14025,
-  VNCLIPU_WV = 14026,
-  VNCLIPU_WX = 14027,
-  VNCLIP_WI = 14028,
-  VNCLIP_WV = 14029,
-  VNCLIP_WX = 14030,
-  VNMSAC_VV = 14031,
-  VNMSAC_VX = 14032,
-  VNMSUB_VV = 14033,
-  VNMSUB_VX = 14034,
-  VNSRA_WI = 14035,
-  VNSRA_WV = 14036,
-  VNSRA_WX = 14037,
-  VNSRL_WI = 14038,
-  VNSRL_WV = 14039,
-  VNSRL_WX = 14040,
-  VOR_VI = 14041,
-  VOR_VV = 14042,
-  VOR_VX = 14043,
-  VQDOTSU_VV = 14044,
-  VQDOTSU_VX = 14045,
-  VQDOTUS_VX = 14046,
-  VQDOTU_VV = 14047,
-  VQDOTU_VX = 14048,
-  VQDOT_VV = 14049,
-  VQDOT_VX = 14050,
-  VREDAND_VS = 14051,
-  VREDMAXU_VS = 14052,
-  VREDMAX_VS = 14053,
-  VREDMINU_VS = 14054,
-  VREDMIN_VS = 14055,
-  VREDOR_VS = 14056,
-  VREDSUM_VS = 14057,
-  VREDXOR_VS = 14058,
-  VREMU_VV = 14059,
-  VREMU_VX = 14060,
-  VREM_VV = 14061,
-  VREM_VX = 14062,
-  VREV8_V = 14063,
-  VRGATHEREI16_VV = 14064,
-  VRGATHER_VI = 14065,
-  VRGATHER_VV = 14066,
-  VRGATHER_VX = 14067,
-  VROL_VV = 14068,
-  VROL_VX = 14069,
-  VROR_VI = 14070,
-  VROR_VV = 14071,
-  VROR_VX = 14072,
-  VRSUB_VI = 14073,
-  VRSUB_VX = 14074,
-  VS1R_V = 14075,
-  VS2R_V = 14076,
-  VS4R_V = 14077,
-  VS8R_V = 14078,
-  VSADDU_VI = 14079,
-  VSADDU_VV = 14080,
-  VSADDU_VX = 14081,
-  VSADD_VI = 14082,
-  VSADD_VV = 14083,
-  VSADD_VX = 14084,
-  VSBC_VVM = 14085,
-  VSBC_VXM = 14086,
-  VSE16_V = 14087,
-  VSE32_V = 14088,
-  VSE64_V = 14089,
-  VSE8_V = 14090,
-  VSETIVLI = 14091,
-  VSETVL = 14092,
-  VSETVLI = 14093,
-  VSEXT_VF2 = 14094,
-  VSEXT_VF4 = 14095,
-  VSEXT_VF8 = 14096,
-  VSHA2CH_VV = 14097,
-  VSHA2CL_VV = 14098,
-  VSHA2MS_VV = 14099,
-  VSLIDE1DOWN_VX = 14100,
-  VSLIDE1UP_VX = 14101,
-  VSLIDEDOWN_VI = 14102,
-  VSLIDEDOWN_VX = 14103,
-  VSLIDEUP_VI = 14104,
-  VSLIDEUP_VX = 14105,
-  VSLL_VI = 14106,
-  VSLL_VV = 14107,
-  VSLL_VX = 14108,
-  VSM3C_VI = 14109,
-  VSM3ME_VV = 14110,
-  VSM4K_VI = 14111,
-  VSM4R_VS = 14112,
-  VSM4R_VV = 14113,
-  VSMUL_VV = 14114,
-  VSMUL_VX = 14115,
-  VSM_V = 14116,
-  VSOXEI16_V = 14117,
-  VSOXEI32_V = 14118,
-  VSOXEI64_V = 14119,
-  VSOXEI8_V = 14120,
-  VSOXSEG2EI16_V = 14121,
-  VSOXSEG2EI32_V = 14122,
-  VSOXSEG2EI64_V = 14123,
-  VSOXSEG2EI8_V = 14124,
-  VSOXSEG3EI16_V = 14125,
-  VSOXSEG3EI32_V = 14126,
-  VSOXSEG3EI64_V = 14127,
-  VSOXSEG3EI8_V = 14128,
-  VSOXSEG4EI16_V = 14129,
-  VSOXSEG4EI32_V = 14130,
-  VSOXSEG4EI64_V = 14131,
-  VSOXSEG4EI8_V = 14132,
-  VSOXSEG5EI16_V = 14133,
-  VSOXSEG5EI32_V = 14134,
-  VSOXSEG5EI64_V = 14135,
-  VSOXSEG5EI8_V = 14136,
-  VSOXSEG6EI16_V = 14137,
-  VSOXSEG6EI32_V = 14138,
-  VSOXSEG6EI64_V = 14139,
-  VSOXSEG6EI8_V = 14140,
-  VSOXSEG7EI16_V = 14141,
-  VSOXSEG7EI32_V = 14142,
-  VSOXSEG7EI64_V = 14143,
-  VSOXSEG7EI8_V = 14144,
-  VSOXSEG8EI16_V = 14145,
-  VSOXSEG8EI32_V = 14146,
-  VSOXSEG8EI64_V = 14147,
-  VSOXSEG8EI8_V = 14148,
-  VSRA_VI = 14149,
-  VSRA_VV = 14150,
-  VSRA_VX = 14151,
-  VSRL_VI = 14152,
-  VSRL_VV = 14153,
-  VSRL_VX = 14154,
-  VSSE16_V = 14155,
-  VSSE32_V = 14156,
-  VSSE64_V = 14157,
-  VSSE8_V = 14158,
-  VSSEG2E16_V = 14159,
-  VSSEG2E32_V = 14160,
-  VSSEG2E64_V = 14161,
-  VSSEG2E8_V = 14162,
-  VSSEG3E16_V = 14163,
-  VSSEG3E32_V = 14164,
-  VSSEG3E64_V = 14165,
-  VSSEG3E8_V = 14166,
-  VSSEG4E16_V = 14167,
-  VSSEG4E32_V = 14168,
-  VSSEG4E64_V = 14169,
-  VSSEG4E8_V = 14170,
-  VSSEG5E16_V = 14171,
-  VSSEG5E32_V = 14172,
-  VSSEG5E64_V = 14173,
-  VSSEG5E8_V = 14174,
-  VSSEG6E16_V = 14175,
-  VSSEG6E32_V = 14176,
-  VSSEG6E64_V = 14177,
-  VSSEG6E8_V = 14178,
-  VSSEG7E16_V = 14179,
-  VSSEG7E32_V = 14180,
-  VSSEG7E64_V = 14181,
-  VSSEG7E8_V = 14182,
-  VSSEG8E16_V = 14183,
-  VSSEG8E32_V = 14184,
-  VSSEG8E64_V = 14185,
-  VSSEG8E8_V = 14186,
-  VSSRA_VI = 14187,
-  VSSRA_VV = 14188,
-  VSSRA_VX = 14189,
-  VSSRL_VI = 14190,
-  VSSRL_VV = 14191,
-  VSSRL_VX = 14192,
-  VSSSEG2E16_V = 14193,
-  VSSSEG2E32_V = 14194,
-  VSSSEG2E64_V = 14195,
-  VSSSEG2E8_V = 14196,
-  VSSSEG3E16_V = 14197,
-  VSSSEG3E32_V = 14198,
-  VSSSEG3E64_V = 14199,
-  VSSSEG3E8_V = 14200,
-  VSSSEG4E16_V = 14201,
-  VSSSEG4E32_V = 14202,
-  VSSSEG4E64_V = 14203,
-  VSSSEG4E8_V = 14204,
-  VSSSEG5E16_V = 14205,
-  VSSSEG5E32_V = 14206,
-  VSSSEG5E64_V = 14207,
-  VSSSEG5E8_V = 14208,
-  VSSSEG6E16_V = 14209,
-  VSSSEG6E32_V = 14210,
-  VSSSEG6E64_V = 14211,
-  VSSSEG6E8_V = 14212,
-  VSSSEG7E16_V = 14213,
-  VSSSEG7E32_V = 14214,
-  VSSSEG7E64_V = 14215,
-  VSSSEG7E8_V = 14216,
-  VSSSEG8E16_V = 14217,
-  VSSSEG8E32_V = 14218,
-  VSSSEG8E64_V = 14219,
-  VSSSEG8E8_V = 14220,
-  VSSUBU_VV = 14221,
-  VSSUBU_VX = 14222,
-  VSSUB_VV = 14223,
-  VSSUB_VX = 14224,
-  VSUB_VV = 14225,
-  VSUB_VX = 14226,
-  VSUXEI16_V = 14227,
-  VSUXEI32_V = 14228,
-  VSUXEI64_V = 14229,
-  VSUXEI8_V = 14230,
-  VSUXSEG2EI16_V = 14231,
-  VSUXSEG2EI32_V = 14232,
-  VSUXSEG2EI64_V = 14233,
-  VSUXSEG2EI8_V = 14234,
-  VSUXSEG3EI16_V = 14235,
-  VSUXSEG3EI32_V = 14236,
-  VSUXSEG3EI64_V = 14237,
-  VSUXSEG3EI8_V = 14238,
-  VSUXSEG4EI16_V = 14239,
-  VSUXSEG4EI32_V = 14240,
-  VSUXSEG4EI64_V = 14241,
-  VSUXSEG4EI8_V = 14242,
-  VSUXSEG5EI16_V = 14243,
-  VSUXSEG5EI32_V = 14244,
-  VSUXSEG5EI64_V = 14245,
-  VSUXSEG5EI8_V = 14246,
-  VSUXSEG6EI16_V = 14247,
-  VSUXSEG6EI32_V = 14248,
-  VSUXSEG6EI64_V = 14249,
-  VSUXSEG6EI8_V = 14250,
-  VSUXSEG7EI16_V = 14251,
-  VSUXSEG7EI32_V = 14252,
-  VSUXSEG7EI64_V = 14253,
-  VSUXSEG7EI8_V = 14254,
-  VSUXSEG8EI16_V = 14255,
-  VSUXSEG8EI32_V = 14256,
-  VSUXSEG8EI64_V = 14257,
-  VSUXSEG8EI8_V = 14258,
-  VT_MASKC = 14259,
-  VT_MASKCN = 14260,
-  VWADDU_VV = 14261,
-  VWADDU_VX = 14262,
-  VWADDU_WV = 14263,
-  VWADDU_WX = 14264,
-  VWADD_VV = 14265,
-  VWADD_VX = 14266,
-  VWADD_WV = 14267,
-  VWADD_WX = 14268,
-  VWMACCSU_VV = 14269,
-  VWMACCSU_VX = 14270,
-  VWMACCUS_VX = 14271,
-  VWMACCU_VV = 14272,
-  VWMACCU_VX = 14273,
-  VWMACC_VV = 14274,
-  VWMACC_VX = 14275,
-  VWMULSU_VV = 14276,
-  VWMULSU_VX = 14277,
-  VWMULU_VV = 14278,
-  VWMULU_VX = 14279,
-  VWMUL_VV = 14280,
-  VWMUL_VX = 14281,
-  VWREDSUMU_VS = 14282,
-  VWREDSUM_VS = 14283,
-  VWSLL_VI = 14284,
-  VWSLL_VV = 14285,
-  VWSLL_VX = 14286,
-  VWSUBU_VV = 14287,
-  VWSUBU_VX = 14288,
-  VWSUBU_WV = 14289,
-  VWSUBU_WX = 14290,
-  VWSUB_VV = 14291,
-  VWSUB_VX = 14292,
-  VWSUB_WV = 14293,
-  VWSUB_WX = 14294,
-  VXOR_VI = 14295,
-  VXOR_VV = 14296,
-  VXOR_VX = 14297,
-  VZEXT_VF2 = 14298,
-  VZEXT_VF4 = 14299,
-  VZEXT_VF8 = 14300,
-  WFI = 14301,
-  WRS_NTO = 14302,
-  WRS_STO = 14303,
-  XNOR = 14304,
-  XOR = 14305,
-  XORI = 14306,
-  XPERM4 = 14307,
-  XPERM8 = 14308,
-  ZEXT_H_RV32 = 14309,
-  ZEXT_H_RV64 = 14310,
-  ZIP_RV32 = 14311,
-  INSTRUCTION_LIST_END = 14312,
+  COPY_LANEMASK = 21,
+  BUNDLE = 22,
+  LIFETIME_START = 23,
+  LIFETIME_END = 24,
+  PSEUDO_PROBE = 25,
+  ARITH_FENCE = 26,
+  STACKMAP = 27,
+  FENTRY_CALL = 28,
+  PATCHPOINT = 29,
+  LOAD_STACK_GUARD = 30,
+  PREALLOCATED_SETUP = 31,
+  PREALLOCATED_ARG = 32,
+  STATEPOINT = 33,
+  LOCAL_ESCAPE = 34,
+  FAULTING_OP = 35,
+  PATCHABLE_OP = 36,
+  PATCHABLE_FUNCTION_ENTER = 37,
+  PATCHABLE_RET = 38,
+  PATCHABLE_FUNCTION_EXIT = 39,
+  PATCHABLE_TAIL_CALL = 40,
+  PATCHABLE_EVENT_CALL = 41,
+  PATCHABLE_TYPED_EVENT_CALL = 42,
+  ICALL_BRANCH_FUNNEL = 43,
+  FAKE_USE = 44,
+  MEMBARRIER = 45,
+  JUMP_TABLE_DEBUG_INFO = 46,
+  RELOC_NONE = 47,
+  CONVERGENCECTRL_ENTRY = 48,
+  CONVERGENCECTRL_ANCHOR = 49,
+  CONVERGENCECTRL_LOOP = 50,
+  CONVERGENCECTRL_GLUE = 51,
+  G_ASSERT_SEXT = 52,
+  G_ASSERT_ZEXT = 53,
+  G_ASSERT_ALIGN = 54,
+  G_ADD = 55,
+  G_SUB = 56,
+  G_MUL = 57,
+  G_SDIV = 58,
+  G_UDIV = 59,
+  G_SREM = 60,
+  G_UREM = 61,
+  G_SDIVREM = 62,
+  G_UDIVREM = 63,
+  G_AND = 64,
+  G_OR = 65,
+  G_XOR = 66,
+  G_ABDS = 67,
+  G_ABDU = 68,
+  G_UAVGFLOOR = 69,
+  G_UAVGCEIL = 70,
+  G_SAVGFLOOR = 71,
+  G_SAVGCEIL = 72,
+  G_IMPLICIT_DEF = 73,
+  G_PHI = 74,
+  G_FRAME_INDEX = 75,
+  G_GLOBAL_VALUE = 76,
+  G_PTRAUTH_GLOBAL_VALUE = 77,
+  G_CONSTANT_POOL = 78,
+  G_EXTRACT = 79,
+  G_UNMERGE_VALUES = 80,
+  G_INSERT = 81,
+  G_MERGE_VALUES = 82,
+  G_BUILD_VECTOR = 83,
+  G_BUILD_VECTOR_TRUNC = 84,
+  G_CONCAT_VECTORS = 85,
+  G_PTRTOINT = 86,
+  G_INTTOPTR = 87,
+  G_BITCAST = 88,
+  G_FREEZE = 89,
+  G_CONSTANT_FOLD_BARRIER = 90,
+  G_INTRINSIC_FPTRUNC_ROUND = 91,
+  G_INTRINSIC_TRUNC = 92,
+  G_INTRINSIC_ROUND = 93,
+  G_INTRINSIC_LRINT = 94,
+  G_INTRINSIC_LLRINT = 95,
+  G_INTRINSIC_ROUNDEVEN = 96,
+  G_READCYCLECOUNTER = 97,
+  G_READSTEADYCOUNTER = 98,
+  G_LOAD = 99,
+  G_SEXTLOAD = 100,
+  G_ZEXTLOAD = 101,
+  G_INDEXED_LOAD = 102,
+  G_INDEXED_SEXTLOAD = 103,
+  G_INDEXED_ZEXTLOAD = 104,
+  G_STORE = 105,
+  G_INDEXED_STORE = 106,
+  G_ATOMIC_CMPXCHG_WITH_SUCCESS = 107,
+  G_ATOMIC_CMPXCHG = 108,
+  G_ATOMICRMW_XCHG = 109,
+  G_ATOMICRMW_ADD = 110,
+  G_ATOMICRMW_SUB = 111,
+  G_ATOMICRMW_AND = 112,
+  G_ATOMICRMW_NAND = 113,
+  G_ATOMICRMW_OR = 114,
+  G_ATOMICRMW_XOR = 115,
+  G_ATOMICRMW_MAX = 116,
+  G_ATOMICRMW_MIN = 117,
+  G_ATOMICRMW_UMAX = 118,
+  G_ATOMICRMW_UMIN = 119,
+  G_ATOMICRMW_FADD = 120,
+  G_ATOMICRMW_FSUB = 121,
+  G_ATOMICRMW_FMAX = 122,
+  G_ATOMICRMW_FMIN = 123,
+  G_ATOMICRMW_FMAXIMUM = 124,
+  G_ATOMICRMW_FMINIMUM = 125,
+  G_ATOMICRMW_UINC_WRAP = 126,
+  G_ATOMICRMW_UDEC_WRAP = 127,
+  G_ATOMICRMW_USUB_COND = 128,
+  G_ATOMICRMW_USUB_SAT = 129,
+  G_FENCE = 130,
+  G_PREFETCH = 131,
+  G_BRCOND = 132,
+  G_BRINDIRECT = 133,
+  G_INVOKE_REGION_START = 134,
+  G_INTRINSIC = 135,
+  G_INTRINSIC_W_SIDE_EFFECTS = 136,
+  G_INTRINSIC_CONVERGENT = 137,
+  G_INTRINSIC_CONVERGENT_W_SIDE_EFFECTS = 138,
+  G_ANYEXT = 139,
+  G_TRUNC = 140,
+  G_TRUNC_SSAT_S = 141,
+  G_TRUNC_SSAT_U = 142,
+  G_TRUNC_USAT_U = 143,
+  G_CONSTANT = 144,
+  G_FCONSTANT = 145,
+  G_VASTART = 146,
+  G_VAARG = 147,
+  G_SEXT = 148,
+  G_SEXT_INREG = 149,
+  G_ZEXT = 150,
+  G_SHL = 151,
+  G_LSHR = 152,
+  G_ASHR = 153,
+  G_FSHL = 154,
+  G_FSHR = 155,
+  G_ROTR = 156,
+  G_ROTL = 157,
+  G_ICMP = 158,
+  G_FCMP = 159,
+  G_SCMP = 160,
+  G_UCMP = 161,
+  G_SELECT = 162,
+  G_UADDO = 163,
+  G_UADDE = 164,
+  G_USUBO = 165,
+  G_USUBE = 166,
+  G_SADDO = 167,
+  G_SADDE = 168,
+  G_SSUBO = 169,
+  G_SSUBE = 170,
+  G_UMULO = 171,
+  G_SMULO = 172,
+  G_UMULH = 173,
+  G_SMULH = 174,
+  G_UADDSAT = 175,
+  G_SADDSAT = 176,
+  G_USUBSAT = 177,
+  G_SSUBSAT = 178,
+  G_USHLSAT = 179,
+  G_SSHLSAT = 180,
+  G_SMULFIX = 181,
+  G_UMULFIX = 182,
+  G_SMULFIXSAT = 183,
+  G_UMULFIXSAT = 184,
+  G_SDIVFIX = 185,
+  G_UDIVFIX = 186,
+  G_SDIVFIXSAT = 187,
+  G_UDIVFIXSAT = 188,
+  G_FADD = 189,
+  G_FSUB = 190,
+  G_FMUL = 191,
+  G_FMA = 192,
+  G_FMAD = 193,
+  G_FDIV = 194,
+  G_FREM = 195,
+  G_FMODF = 196,
+  G_FPOW = 197,
+  G_FPOWI = 198,
+  G_FEXP = 199,
+  G_FEXP2 = 200,
+  G_FEXP10 = 201,
+  G_FLOG = 202,
+  G_FLOG2 = 203,
+  G_FLOG10 = 204,
+  G_FLDEXP = 205,
+  G_FFREXP = 206,
+  G_FNEG = 207,
+  G_FPEXT = 208,
+  G_FPTRUNC = 209,
+  G_FPTOSI = 210,
+  G_FPTOUI = 211,
+  G_SITOFP = 212,
+  G_UITOFP = 213,
+  G_FPTOSI_SAT = 214,
+  G_FPTOUI_SAT = 215,
+  G_FABS = 216,
+  G_FCOPYSIGN = 217,
+  G_IS_FPCLASS = 218,
+  G_FCANONICALIZE = 219,
+  G_FMINNUM = 220,
+  G_FMAXNUM = 221,
+  G_FMINNUM_IEEE = 222,
+  G_FMAXNUM_IEEE = 223,
+  G_FMINIMUM = 224,
+  G_FMAXIMUM = 225,
+  G_FMINIMUMNUM = 226,
+  G_FMAXIMUMNUM = 227,
+  G_GET_FPENV = 228,
+  G_SET_FPENV = 229,
+  G_RESET_FPENV = 230,
+  G_GET_FPMODE = 231,
+  G_SET_FPMODE = 232,
+  G_RESET_FPMODE = 233,
+  G_GET_ROUNDING = 234,
+  G_SET_ROUNDING = 235,
+  G_PTR_ADD = 236,
+  G_PTRMASK = 237,
+  G_SMIN = 238,
+  G_SMAX = 239,
+  G_UMIN = 240,
+  G_UMAX = 241,
+  G_ABS = 242,
+  G_LROUND = 243,
+  G_LLROUND = 244,
+  G_BR = 245,
+  G_BRJT = 246,
+  G_VSCALE = 247,
+  G_INSERT_SUBVECTOR = 248,
+  G_EXTRACT_SUBVECTOR = 249,
+  G_INSERT_VECTOR_ELT = 250,
+  G_EXTRACT_VECTOR_ELT = 251,
+  G_SHUFFLE_VECTOR = 252,
+  G_SPLAT_VECTOR = 253,
+  G_STEP_VECTOR = 254,
+  G_VECTOR_COMPRESS = 255,
+  G_CTTZ = 256,
+  G_CTTZ_ZERO_UNDEF = 257,
+  G_CTLZ = 258,
+  G_CTLZ_ZERO_UNDEF = 259,
+  G_CTPOP = 260,
+  G_BSWAP = 261,
+  G_BITREVERSE = 262,
+  G_FCEIL = 263,
+  G_FCOS = 264,
+  G_FSIN = 265,
+  G_FSINCOS = 266,
+  G_FTAN = 267,
+  G_FACOS = 268,
+  G_FASIN = 269,
+  G_FATAN = 270,
+  G_FATAN2 = 271,
+  G_FCOSH = 272,
+  G_FSINH = 273,
+  G_FTANH = 274,
+  G_FSQRT = 275,
+  G_FFLOOR = 276,
+  G_FRINT = 277,
+  G_FNEARBYINT = 278,
+  G_ADDRSPACE_CAST = 279,
+  G_BLOCK_ADDR = 280,
+  G_JUMP_TABLE = 281,
+  G_DYN_STACKALLOC = 282,
+  G_STACKSAVE = 283,
+  G_STACKRESTORE = 284,
+  G_STRICT_FADD = 285,
+  G_STRICT_FSUB = 286,
+  G_STRICT_FMUL = 287,
+  G_STRICT_FDIV = 288,
+  G_STRICT_FREM = 289,
+  G_STRICT_FMA = 290,
+  G_STRICT_FSQRT = 291,
+  G_STRICT_FLDEXP = 292,
+  G_READ_REGISTER = 293,
+  G_WRITE_REGISTER = 294,
+  G_MEMCPY = 295,
+  G_MEMCPY_INLINE = 296,
+  G_MEMMOVE = 297,
+  G_MEMSET = 298,
+  G_BZERO = 299,
+  G_TRAP = 300,
+  G_DEBUGTRAP = 301,
+  G_UBSANTRAP = 302,
+  G_VECREDUCE_SEQ_FADD = 303,
+  G_VECREDUCE_SEQ_FMUL = 304,
+  G_VECREDUCE_FADD = 305,
+  G_VECREDUCE_FMUL = 306,
+  G_VECREDUCE_FMAX = 307,
+  G_VECREDUCE_FMIN = 308,
+  G_VECREDUCE_FMAXIMUM = 309,
+  G_VECREDUCE_FMINIMUM = 310,
+  G_VECREDUCE_ADD = 311,
+  G_VECREDUCE_MUL = 312,
+  G_VECREDUCE_AND = 313,
+  G_VECREDUCE_OR = 314,
+  G_VECREDUCE_XOR = 315,
+  G_VECREDUCE_SMAX = 316,
+  G_VECREDUCE_SMIN = 317,
+  G_VECREDUCE_UMAX = 318,
+  G_VECREDUCE_UMIN = 319,
+  G_SBFX = 320,
+  G_UBFX = 321,
+  ADJCALLSTACKDOWN = 322,
+  ADJCALLSTACKUP = 323,
+  BuildPairF64Pseudo = 324,
+  ClearFCSR = 325,
+  ClearFCSRImm = 326,
+  G_CLZW = 327,
+  G_CTZW = 328,
+  G_DIVUW = 329,
+  G_DIVW = 330,
+  G_FCLASS = 331,
+  G_FCVT_WU_RV64 = 332,
+  G_FCVT_W_RV64 = 333,
+  G_READ_VLENB = 334,
+  G_REMUW = 335,
+  G_ROLW = 336,
+  G_RORW = 337,
+  G_SLLW = 338,
+  G_SPLAT_VECTOR_SPLIT_I64_VL = 339,
+  G_SRAW = 340,
+  G_SRLW = 341,
+  G_VMCLR_VL = 342,
+  G_VMSET_VL = 343,
+  G_VMV_V_V_VL = 344,
+  G_VSLIDEDOWN_VL = 345,
+  G_VSLIDEUP_VL = 346,
+  HWASAN_CHECK_MEMACCESS_SHORTGRANULES = 347,
+  KCFI_CHECK = 348,
+  PROBED_STACKALLOC = 349,
+  PROBED_STACKALLOC_DYN = 350,
+  PROBED_STACKALLOC_RVV = 351,
+  PseudoAddTPRel = 352,
+  PseudoAtomicLoadAdd32 = 353,
+  PseudoAtomicLoadAdd64 = 354,
+  PseudoAtomicLoadAnd32 = 355,
+  PseudoAtomicLoadAnd64 = 356,
+  PseudoAtomicLoadMax32 = 357,
+  PseudoAtomicLoadMax64 = 358,
+  PseudoAtomicLoadMin32 = 359,
+  PseudoAtomicLoadMin64 = 360,
+  PseudoAtomicLoadNand32 = 361,
+  PseudoAtomicLoadNand64 = 362,
+  PseudoAtomicLoadOr32 = 363,
+  PseudoAtomicLoadOr64 = 364,
+  PseudoAtomicLoadSub32 = 365,
+  PseudoAtomicLoadSub64 = 366,
+  PseudoAtomicLoadUMax32 = 367,
+  PseudoAtomicLoadUMax64 = 368,
+  PseudoAtomicLoadUMin32 = 369,
+  PseudoAtomicLoadUMin64 = 370,
+  PseudoAtomicLoadXor32 = 371,
+  PseudoAtomicLoadXor64 = 372,
+  PseudoAtomicSwap32 = 373,
+  PseudoAtomicSwap64 = 374,
+  PseudoBR = 375,
+  PseudoBRIND = 376,
+  PseudoBRINDNonX7 = 377,
+  PseudoBRINDX7 = 378,
+  PseudoCALL = 379,
+  PseudoCALLIndirect = 380,
+  PseudoCALLIndirectNonX7 = 381,
+  PseudoCALLIndirectX7 = 382,
+  PseudoCALLReg = 383,
+  PseudoCCADD = 384,
+  PseudoCCADDI = 385,
+  PseudoCCADDIW = 386,
+  PseudoCCADDW = 387,
+  PseudoCCAND = 388,
+  PseudoCCANDI = 389,
+  PseudoCCANDN = 390,
+  PseudoCCLB = 391,
+  PseudoCCLBU = 392,
+  PseudoCCLD = 393,
+  PseudoCCLH = 394,
+  PseudoCCLHU = 395,
+  PseudoCCLUI = 396,
+  PseudoCCLW = 397,
+  PseudoCCLWU = 398,
+  PseudoCCMAX = 399,
+  PseudoCCMAXU = 400,
+  PseudoCCMIN = 401,
+  PseudoCCMINU = 402,
+  PseudoCCMOVGPR = 403,
+  PseudoCCMOVGPRNoX0 = 404,
+  PseudoCCMUL = 405,
+  PseudoCCNDS_BFOS = 406,
+  PseudoCCNDS_BFOZ = 407,
+  PseudoCCOR = 408,
+  PseudoCCORI = 409,
+  PseudoCCORN = 410,
+  PseudoCCQC_E_LB = 411,
+  PseudoCCQC_E_LBU = 412,
+  PseudoCCQC_E_LH = 413,
+  PseudoCCQC_E_LHU = 414,
+  PseudoCCQC_E_LI = 415,
+  PseudoCCQC_E_LW = 416,
+  PseudoCCQC_LI = 417,
+  PseudoCCSLL = 418,
+  PseudoCCSLLI = 419,
+  PseudoCCSLLIW = 420,
+  PseudoCCSLLW = 421,
+  PseudoCCSRA = 422,
+  PseudoCCSRAI = 423,
+  PseudoCCSRAIW = 424,
+  PseudoCCSRAW = 425,
+  PseudoCCSRL = 426,
+  PseudoCCSRLI = 427,
+  PseudoCCSRLIW = 428,
+  PseudoCCSRLW = 429,
+  PseudoCCSUB = 430,
+  PseudoCCSUBW = 431,
+  PseudoCCXNOR = 432,
+  PseudoCCXOR = 433,
+  PseudoCCXORI = 434,
+  PseudoCV_ELW = 435,
+  PseudoC_ADDI_NOP = 436,
+  PseudoCmpXchg32 = 437,
+  PseudoCmpXchg64 = 438,
+  PseudoFLD = 439,
+  PseudoFLH = 440,
+  PseudoFLQ = 441,
+  PseudoFLW = 442,
+  PseudoFROUND_D = 443,
+  PseudoFROUND_D_IN32X = 444,
+  PseudoFROUND_D_INX = 445,
+  PseudoFROUND_H = 446,
+  PseudoFROUND_H_INX = 447,
+  PseudoFROUND_S = 448,
+  PseudoFROUND_S_INX = 449,
+  PseudoFSD = 450,
+  PseudoFSH = 451,
+  PseudoFSQ = 452,
+  PseudoFSW = 453,
+  PseudoJump = 454,
+  PseudoLA = 455,
+  PseudoLAImm = 456,
+  PseudoLA_TLSDESC = 457,
+  PseudoLA_TLS_GD = 458,
+  PseudoLA_TLS_IE = 459,
+  PseudoLB = 460,
+  PseudoLBU = 461,
+  PseudoLD = 462,
+  PseudoLD_RV32 = 463,
+  PseudoLD_RV32_OPT = 464,
+  PseudoLGA = 465,
+  PseudoLH = 466,
+  PseudoLHU = 467,
+  PseudoLI = 468,
+  PseudoLLA = 469,
+  PseudoLLAImm = 470,
+  PseudoLW = 471,
+  PseudoLWU = 472,
+  PseudoLongBEQ = 473,
+  PseudoLongBEQI = 474,
+  PseudoLongBGE = 475,
+  PseudoLongBGEU = 476,
+  PseudoLongBLT = 477,
+  PseudoLongBLTU = 478,
+  PseudoLongBNE = 479,
+  PseudoLongBNEI = 480,
+  PseudoLongQC_BEQI = 481,
+  PseudoLongQC_BGEI = 482,
+  PseudoLongQC_BGEUI = 483,
+  PseudoLongQC_BLTI = 484,
+  PseudoLongQC_BLTUI = 485,
+  PseudoLongQC_BNEI = 486,
+  PseudoLongQC_E_BEQI = 487,
+  PseudoLongQC_E_BGEI = 488,
+  PseudoLongQC_E_BGEUI = 489,
+  PseudoLongQC_E_BLTI = 490,
+  PseudoLongQC_E_BLTUI = 491,
+  PseudoLongQC_E_BNEI = 492,
+  PseudoMOP_C_SSPUSH = 493,
+  PseudoMOP_SSPOPCHK = 494,
+  PseudoMOP_SSPUSH = 495,
+  PseudoMV_FPR16INX = 496,
+  PseudoMV_FPR32INX = 497,
+  PseudoMaskedAtomicLoadAdd32 = 498,
+  PseudoMaskedAtomicLoadMax32 = 499,
+  PseudoMaskedAtomicLoadMin32 = 500,
+  PseudoMaskedAtomicLoadNand32 = 501,
+  PseudoMaskedAtomicLoadSub32 = 502,
+  PseudoMaskedAtomicLoadUMax32 = 503,
+  PseudoMaskedAtomicLoadUMin32 = 504,
+  PseudoMaskedAtomicSwap32 = 505,
+  PseudoMaskedCmpXchg32 = 506,
+  PseudoMovAddr = 507,
+  PseudoMovImm = 508,
+  PseudoNDS_VD4DOTSU_VV_M1 = 509,
+  PseudoNDS_VD4DOTSU_VV_M1_MASK = 510,
+  PseudoNDS_VD4DOTSU_VV_M2 = 511,
+  PseudoNDS_VD4DOTSU_VV_M2_MASK = 512,
+  PseudoNDS_VD4DOTSU_VV_M4 = 513,
+  PseudoNDS_VD4DOTSU_VV_M4_MASK = 514,
+  PseudoNDS_VD4DOTSU_VV_M8 = 515,
+  PseudoNDS_VD4DOTSU_VV_M8_MASK = 516,
+  PseudoNDS_VD4DOTSU_VV_MF2 = 517,
+  PseudoNDS_VD4DOTSU_VV_MF2_MASK = 518,
+  PseudoNDS_VD4DOTS_VV_M1 = 519,
+  PseudoNDS_VD4DOTS_VV_M1_MASK = 520,
+  PseudoNDS_VD4DOTS_VV_M2 = 521,
+  PseudoNDS_VD4DOTS_VV_M2_MASK = 522,
+  PseudoNDS_VD4DOTS_VV_M4 = 523,
+  PseudoNDS_VD4DOTS_VV_M4_MASK = 524,
+  PseudoNDS_VD4DOTS_VV_M8 = 525,
+  PseudoNDS_VD4DOTS_VV_M8_MASK = 526,
+  PseudoNDS_VD4DOTS_VV_MF2 = 527,
+  PseudoNDS_VD4DOTS_VV_MF2_MASK = 528,
+  PseudoNDS_VD4DOTU_VV_M1 = 529,
+  PseudoNDS_VD4DOTU_VV_M1_MASK = 530,
+  PseudoNDS_VD4DOTU_VV_M2 = 531,
+  PseudoNDS_VD4DOTU_VV_M2_MASK = 532,
+  PseudoNDS_VD4DOTU_VV_M4 = 533,
+  PseudoNDS_VD4DOTU_VV_M4_MASK = 534,
+  PseudoNDS_VD4DOTU_VV_M8 = 535,
+  PseudoNDS_VD4DOTU_VV_M8_MASK = 536,
+  PseudoNDS_VD4DOTU_VV_MF2 = 537,
+  PseudoNDS_VD4DOTU_VV_MF2_MASK = 538,
+  PseudoNDS_VFNCVT_BF16_S_M1 = 539,
+  PseudoNDS_VFNCVT_BF16_S_M2 = 540,
+  PseudoNDS_VFNCVT_BF16_S_M4 = 541,
+  PseudoNDS_VFNCVT_BF16_S_MF2 = 542,
+  PseudoNDS_VFNCVT_BF16_S_MF4 = 543,
+  PseudoNDS_VFPMADB_VFPR16_M1 = 544,
+  PseudoNDS_VFPMADB_VFPR16_M1_MASK = 545,
+  PseudoNDS_VFPMADB_VFPR16_M2 = 546,
+  PseudoNDS_VFPMADB_VFPR16_M2_MASK = 547,
+  PseudoNDS_VFPMADB_VFPR16_M4 = 548,
+  PseudoNDS_VFPMADB_VFPR16_M4_MASK = 549,
+  PseudoNDS_VFPMADB_VFPR16_M8 = 550,
+  PseudoNDS_VFPMADB_VFPR16_M8_MASK = 551,
+  PseudoNDS_VFPMADB_VFPR16_MF2 = 552,
+  PseudoNDS_VFPMADB_VFPR16_MF2_MASK = 553,
+  PseudoNDS_VFPMADB_VFPR16_MF4 = 554,
+  PseudoNDS_VFPMADB_VFPR16_MF4_MASK = 555,
+  PseudoNDS_VFPMADT_VFPR16_M1 = 556,
+  PseudoNDS_VFPMADT_VFPR16_M1_MASK = 557,
+  PseudoNDS_VFPMADT_VFPR16_M2 = 558,
+  PseudoNDS_VFPMADT_VFPR16_M2_MASK = 559,
+  PseudoNDS_VFPMADT_VFPR16_M4 = 560,
+  PseudoNDS_VFPMADT_VFPR16_M4_MASK = 561,
+  PseudoNDS_VFPMADT_VFPR16_M8 = 562,
+  PseudoNDS_VFPMADT_VFPR16_M8_MASK = 563,
+  PseudoNDS_VFPMADT_VFPR16_MF2 = 564,
+  PseudoNDS_VFPMADT_VFPR16_MF2_MASK = 565,
+  PseudoNDS_VFPMADT_VFPR16_MF4 = 566,
+  PseudoNDS_VFPMADT_VFPR16_MF4_MASK = 567,
+  PseudoNDS_VFWCVT_S_BF16_M1 = 568,
+  PseudoNDS_VFWCVT_S_BF16_M2 = 569,
+  PseudoNDS_VFWCVT_S_BF16_M4 = 570,
+  PseudoNDS_VFWCVT_S_BF16_MF2 = 571,
+  PseudoNDS_VFWCVT_S_BF16_MF4 = 572,
+  PseudoNDS_VLN8_V_M1 = 573,
+  PseudoNDS_VLN8_V_M1_MASK = 574,
+  PseudoNDS_VLN8_V_M2 = 575,
+  PseudoNDS_VLN8_V_M2_MASK = 576,
+  PseudoNDS_VLN8_V_M4 = 577,
+  PseudoNDS_VLN8_V_M4_MASK = 578,
+  PseudoNDS_VLN8_V_M8 = 579,
+  PseudoNDS_VLN8_V_M8_MASK = 580,
+  PseudoNDS_VLN8_V_MF2 = 581,
+  PseudoNDS_VLN8_V_MF2_MASK = 582,
+  PseudoNDS_VLN8_V_MF4 = 583,
+  PseudoNDS_VLN8_V_MF4_MASK = 584,
+  PseudoNDS_VLN8_V_MF8 = 585,
+  PseudoNDS_VLN8_V_MF8_MASK = 586,
+  PseudoNDS_VLNU8_V_M1 = 587,
+  PseudoNDS_VLNU8_V_M1_MASK = 588,
+  PseudoNDS_VLNU8_V_M2 = 589,
+  PseudoNDS_VLNU8_V_M2_MASK = 590,
+  PseudoNDS_VLNU8_V_M4 = 591,
+  PseudoNDS_VLNU8_V_M4_MASK = 592,
+  PseudoNDS_VLNU8_V_M8 = 593,
+  PseudoNDS_VLNU8_V_M8_MASK = 594,
+  PseudoNDS_VLNU8_V_MF2 = 595,
+  PseudoNDS_VLNU8_V_MF2_MASK = 596,
+  PseudoNDS_VLNU8_V_MF4 = 597,
+  PseudoNDS_VLNU8_V_MF4_MASK = 598,
+  PseudoNDS_VLNU8_V_MF8 = 599,
+  PseudoNDS_VLNU8_V_MF8_MASK = 600,
+  PseudoQC_E_LB = 601,
+  PseudoQC_E_LBU = 602,
+  PseudoQC_E_LH = 603,
+  PseudoQC_E_LHU = 604,
+  PseudoQC_E_LW = 605,
+  PseudoQC_E_SB = 606,
+  PseudoQC_E_SH = 607,
+  PseudoQC_E_SW = 608,
+  PseudoQuietFLE_D = 609,
+  PseudoQuietFLE_D_IN32X = 610,
+  PseudoQuietFLE_D_INX = 611,
+  PseudoQuietFLE_H = 612,
+  PseudoQuietFLE_H_INX = 613,
+  PseudoQuietFLE_S = 614,
+  PseudoQuietFLE_S_INX = 615,
+  PseudoQuietFLT_D = 616,
+  PseudoQuietFLT_D_IN32X = 617,
+  PseudoQuietFLT_D_INX = 618,
+  PseudoQuietFLT_H = 619,
+  PseudoQuietFLT_H_INX = 620,
+  PseudoQuietFLT_S = 621,
+  PseudoQuietFLT_S_INX = 622,
+  PseudoRET = 623,
+  PseudoRI_VEXTRACT_M1 = 624,
+  PseudoRI_VEXTRACT_M2 = 625,
+  PseudoRI_VEXTRACT_M4 = 626,
+  PseudoRI_VEXTRACT_M8 = 627,
+  PseudoRI_VEXTRACT_MF2 = 628,
+  PseudoRI_VEXTRACT_MF4 = 629,
+  PseudoRI_VEXTRACT_MF8 = 630,
+  PseudoRI_VINSERT_M1 = 631,
+  PseudoRI_VINSERT_M2 = 632,
+  PseudoRI_VINSERT_M4 = 633,
+  PseudoRI_VINSERT_M8 = 634,
+  PseudoRI_VINSERT_MF2 = 635,
+  PseudoRI_VINSERT_MF4 = 636,
+  PseudoRI_VINSERT_MF8 = 637,
+  PseudoRI_VUNZIP2A_VV_M1 = 638,
+  PseudoRI_VUNZIP2A_VV_M1_MASK = 639,
+  PseudoRI_VUNZIP2A_VV_M2 = 640,
+  PseudoRI_VUNZIP2A_VV_M2_MASK = 641,
+  PseudoRI_VUNZIP2A_VV_M4 = 642,
+  PseudoRI_VUNZIP2A_VV_M4_MASK = 643,
+  PseudoRI_VUNZIP2A_VV_M8 = 644,
+  PseudoRI_VUNZIP2A_VV_M8_MASK = 645,
+  PseudoRI_VUNZIP2A_VV_MF2 = 646,
+  PseudoRI_VUNZIP2A_VV_MF2_MASK = 647,
+  PseudoRI_VUNZIP2A_VV_MF4 = 648,
+  PseudoRI_VUNZIP2A_VV_MF4_MASK = 649,
+  PseudoRI_VUNZIP2A_VV_MF8 = 650,
+  PseudoRI_VUNZIP2A_VV_MF8_MASK = 651,
+  PseudoRI_VUNZIP2B_VV_M1 = 652,
+  PseudoRI_VUNZIP2B_VV_M1_MASK = 653,
+  PseudoRI_VUNZIP2B_VV_M2 = 654,
+  PseudoRI_VUNZIP2B_VV_M2_MASK = 655,
+  PseudoRI_VUNZIP2B_VV_M4 = 656,
+  PseudoRI_VUNZIP2B_VV_M4_MASK = 657,
+  PseudoRI_VUNZIP2B_VV_M8 = 658,
+  PseudoRI_VUNZIP2B_VV_M8_MASK = 659,
+  PseudoRI_VUNZIP2B_VV_MF2 = 660,
+  PseudoRI_VUNZIP2B_VV_MF2_MASK = 661,
+  PseudoRI_VUNZIP2B_VV_MF4 = 662,
+  PseudoRI_VUNZIP2B_VV_MF4_MASK = 663,
+  PseudoRI_VUNZIP2B_VV_MF8 = 664,
+  PseudoRI_VUNZIP2B_VV_MF8_MASK = 665,
+  PseudoRI_VZIP2A_VV_M1 = 666,
+  PseudoRI_VZIP2A_VV_M1_MASK = 667,
+  PseudoRI_VZIP2A_VV_M2 = 668,
+  PseudoRI_VZIP2A_VV_M2_MASK = 669,
+  PseudoRI_VZIP2A_VV_M4 = 670,
+  PseudoRI_VZIP2A_VV_M4_MASK = 671,
+  PseudoRI_VZIP2A_VV_M8 = 672,
+  PseudoRI_VZIP2A_VV_M8_MASK = 673,
+  PseudoRI_VZIP2A_VV_MF2 = 674,
+  PseudoRI_VZIP2A_VV_MF2_MASK = 675,
+  PseudoRI_VZIP2A_VV_MF4 = 676,
+  PseudoRI_VZIP2A_VV_MF4_MASK = 677,
+  PseudoRI_VZIP2A_VV_MF8 = 678,
+  PseudoRI_VZIP2A_VV_MF8_MASK = 679,
+  PseudoRI_VZIP2B_VV_M1 = 680,
+  PseudoRI_VZIP2B_VV_M1_MASK = 681,
+  PseudoRI_VZIP2B_VV_M2 = 682,
+  PseudoRI_VZIP2B_VV_M2_MASK = 683,
+  PseudoRI_VZIP2B_VV_M4 = 684,
+  PseudoRI_VZIP2B_VV_M4_MASK = 685,
+  PseudoRI_VZIP2B_VV_M8 = 686,
+  PseudoRI_VZIP2B_VV_M8_MASK = 687,
+  PseudoRI_VZIP2B_VV_MF2 = 688,
+  PseudoRI_VZIP2B_VV_MF2_MASK = 689,
+  PseudoRI_VZIP2B_VV_MF4 = 690,
+  PseudoRI_VZIP2B_VV_MF4_MASK = 691,
+  PseudoRI_VZIP2B_VV_MF8 = 692,
+  PseudoRI_VZIP2B_VV_MF8_MASK = 693,
+  PseudoRI_VZIPEVEN_VV_M1 = 694,
+  PseudoRI_VZIPEVEN_VV_M1_MASK = 695,
+  PseudoRI_VZIPEVEN_VV_M2 = 696,
+  PseudoRI_VZIPEVEN_VV_M2_MASK = 697,
+  PseudoRI_VZIPEVEN_VV_M4 = 698,
+  PseudoRI_VZIPEVEN_VV_M4_MASK = 699,
+  PseudoRI_VZIPEVEN_VV_M8 = 700,
+  PseudoRI_VZIPEVEN_VV_M8_MASK = 701,
+  PseudoRI_VZIPEVEN_VV_MF2 = 702,
+  PseudoRI_VZIPEVEN_VV_MF2_MASK = 703,
+  PseudoRI_VZIPEVEN_VV_MF4 = 704,
+  PseudoRI_VZIPEVEN_VV_MF4_MASK = 705,
+  PseudoRI_VZIPEVEN_VV_MF8 = 706,
+  PseudoRI_VZIPEVEN_VV_MF8_MASK = 707,
+  PseudoRI_VZIPODD_VV_M1 = 708,
+  PseudoRI_VZIPODD_VV_M1_MASK = 709,
+  PseudoRI_VZIPODD_VV_M2 = 710,
+  PseudoRI_VZIPODD_VV_M2_MASK = 711,
+  PseudoRI_VZIPODD_VV_M4 = 712,
+  PseudoRI_VZIPODD_VV_M4_MASK = 713,
+  PseudoRI_VZIPODD_VV_M8 = 714,
+  PseudoRI_VZIPODD_VV_M8_MASK = 715,
+  PseudoRI_VZIPODD_VV_MF2 = 716,
+  PseudoRI_VZIPODD_VV_MF2_MASK = 717,
+  PseudoRI_VZIPODD_VV_MF4 = 718,
+  PseudoRI_VZIPODD_VV_MF4_MASK = 719,
+  PseudoRI_VZIPODD_VV_MF8 = 720,
+  PseudoRI_VZIPODD_VV_MF8_MASK = 721,
+  PseudoRV32ZdinxLD = 722,
+  PseudoRV32ZdinxSD = 723,
+  PseudoReadVL = 724,
+  PseudoReadVLENB = 725,
+  PseudoReadVLENBViaVSETVLIX0 = 726,
+  PseudoSB = 727,
+  PseudoSD = 728,
+  PseudoSD_RV32 = 729,
+  PseudoSD_RV32_OPT = 730,
+  PseudoSEXT_B = 731,
+  PseudoSEXT_H = 732,
+  PseudoSF_MM_E4M3_E4M3 = 733,
+  PseudoSF_MM_E4M3_E5M2 = 734,
+  PseudoSF_MM_E5M2_E4M3 = 735,
+  PseudoSF_MM_E5M2_E5M2 = 736,
+  PseudoSF_MM_F_F = 737,
+  PseudoSF_MM_F_F_ALT = 738,
+  PseudoSF_MM_S_S = 739,
+  PseudoSF_MM_S_U = 740,
+  PseudoSF_MM_U_S = 741,
+  PseudoSF_MM_U_U = 742,
+  PseudoSF_VC_FPR16VV_SE_M1 = 743,
+  PseudoSF_VC_FPR16VV_SE_M2 = 744,
+  PseudoSF_VC_FPR16VV_SE_M4 = 745,
+  PseudoSF_VC_FPR16VV_SE_M8 = 746,
+  PseudoSF_VC_FPR16VV_SE_MF2 = 747,
+  PseudoSF_VC_FPR16VV_SE_MF4 = 748,
+  PseudoSF_VC_FPR16VW_SE_M1 = 749,
+  PseudoSF_VC_FPR16VW_SE_M2 = 750,
+  PseudoSF_VC_FPR16VW_SE_M4 = 751,
+  PseudoSF_VC_FPR16VW_SE_M8 = 752,
+  PseudoSF_VC_FPR16VW_SE_MF2 = 753,
+  PseudoSF_VC_FPR16VW_SE_MF4 = 754,
+  PseudoSF_VC_FPR16V_SE_M1 = 755,
+  PseudoSF_VC_FPR16V_SE_M2 = 756,
+  PseudoSF_VC_FPR16V_SE_M4 = 757,
+  PseudoSF_VC_FPR16V_SE_M8 = 758,
+  PseudoSF_VC_FPR16V_SE_MF2 = 759,
+  PseudoSF_VC_FPR16V_SE_MF4 = 760,
+  PseudoSF_VC_FPR32VV_SE_M1 = 761,
+  PseudoSF_VC_FPR32VV_SE_M2 = 762,
+  PseudoSF_VC_FPR32VV_SE_M4 = 763,
+  PseudoSF_VC_FPR32VV_SE_M8 = 764,
+  PseudoSF_VC_FPR32VV_SE_MF2 = 765,
+  PseudoSF_VC_FPR32VW_SE_M1 = 766,
+  PseudoSF_VC_FPR32VW_SE_M2 = 767,
+  PseudoSF_VC_FPR32VW_SE_M4 = 768,
+  PseudoSF_VC_FPR32VW_SE_M8 = 769,
+  PseudoSF_VC_FPR32VW_SE_MF2 = 770,
+  PseudoSF_VC_FPR32V_SE_M1 = 771,
+  PseudoSF_VC_FPR32V_SE_M2 = 772,
+  PseudoSF_VC_FPR32V_SE_M4 = 773,
+  PseudoSF_VC_FPR32V_SE_M8 = 774,
+  PseudoSF_VC_FPR32V_SE_MF2 = 775,
+  PseudoSF_VC_FPR64VV_SE_M1 = 776,
+  PseudoSF_VC_FPR64VV_SE_M2 = 777,
+  PseudoSF_VC_FPR64VV_SE_M4 = 778,
+  PseudoSF_VC_FPR64VV_SE_M8 = 779,
+  PseudoSF_VC_FPR64V_SE_M1 = 780,
+  PseudoSF_VC_FPR64V_SE_M2 = 781,
+  PseudoSF_VC_FPR64V_SE_M4 = 782,
+  PseudoSF_VC_FPR64V_SE_M8 = 783,
+  PseudoSF_VC_IVV_SE_M1 = 784,
+  PseudoSF_VC_IVV_SE_M2 = 785,
+  PseudoSF_VC_IVV_SE_M4 = 786,
+  PseudoSF_VC_IVV_SE_M8 = 787,
+  PseudoSF_VC_IVV_SE_MF2 = 788,
+  PseudoSF_VC_IVV_SE_MF4 = 789,
+  PseudoSF_VC_IVV_SE_MF8 = 790,
+  PseudoSF_VC_IVW_SE_M1 = 791,
+  PseudoSF_VC_IVW_SE_M2 = 792,
+  PseudoSF_VC_IVW_SE_M4 = 793,
+  PseudoSF_VC_IVW_SE_MF2 = 794,
+  PseudoSF_VC_IVW_SE_MF4 = 795,
+  PseudoSF_VC_IVW_SE_MF8 = 796,
+  PseudoSF_VC_IV_SE_M1 = 797,
+  PseudoSF_VC_IV_SE_M2 = 798,
+  PseudoSF_VC_IV_SE_M4 = 799,
+  PseudoSF_VC_IV_SE_M8 = 800,
+  PseudoSF_VC_IV_SE_MF2 = 801,
+  PseudoSF_VC_IV_SE_MF4 = 802,
+  PseudoSF_VC_IV_SE_MF8 = 803,
+  PseudoSF_VC_I_SE_M1 = 804,
+  PseudoSF_VC_I_SE_M2 = 805,
+  PseudoSF_VC_I_SE_M4 = 806,
+  PseudoSF_VC_I_SE_M8 = 807,
+  PseudoSF_VC_I_SE_MF2 = 808,
+  PseudoSF_VC_I_SE_MF4 = 809,
+  PseudoSF_VC_I_SE_MF8 = 810,
+  PseudoSF_VC_VVV_SE_M1 = 811,
+  PseudoSF_VC_VVV_SE_M2 = 812,
+  PseudoSF_VC_VVV_SE_M4 = 813,
+  PseudoSF_VC_VVV_SE_M8 = 814,
+  PseudoSF_VC_VVV_SE_MF2 = 815,
+  PseudoSF_VC_VVV_SE_MF4 = 816,
+  PseudoSF_VC_VVV_SE_MF8 = 817,
+  PseudoSF_VC_VVW_SE_M1 = 818,
+  PseudoSF_VC_VVW_SE_M2 = 819,
+  PseudoSF_VC_VVW_SE_M4 = 820,
+  PseudoSF_VC_VVW_SE_MF2 = 821,
+  PseudoSF_VC_VVW_SE_MF4 = 822,
+  PseudoSF_VC_VVW_SE_MF8 = 823,
+  PseudoSF_VC_VV_SE_M1 = 824,
+  PseudoSF_VC_VV_SE_M2 = 825,
+  PseudoSF_VC_VV_SE_M4 = 826,
+  PseudoSF_VC_VV_SE_M8 = 827,
+  PseudoSF_VC_VV_SE_MF2 = 828,
+  PseudoSF_VC_VV_SE_MF4 = 829,
+  PseudoSF_VC_VV_SE_MF8 = 830,
+  PseudoSF_VC_V_FPR16VV_M1 = 831,
+  PseudoSF_VC_V_FPR16VV_M2 = 832,
+  PseudoSF_VC_V_FPR16VV_M4 = 833,
+  PseudoSF_VC_V_FPR16VV_M8 = 834,
+  PseudoSF_VC_V_FPR16VV_MF2 = 835,
+  PseudoSF_VC_V_FPR16VV_MF4 = 836,
+  PseudoSF_VC_V_FPR16VV_SE_M1 = 837,
+  PseudoSF_VC_V_FPR16VV_SE_M2 = 838,
+  PseudoSF_VC_V_FPR16VV_SE_M4 = 839,
+  PseudoSF_VC_V_FPR16VV_SE_M8 = 840,
+  PseudoSF_VC_V_FPR16VV_SE_MF2 = 841,
+  PseudoSF_VC_V_FPR16VV_SE_MF4 = 842,
+  PseudoSF_VC_V_FPR16VW_M1 = 843,
+  PseudoSF_VC_V_FPR16VW_M2 = 844,
+  PseudoSF_VC_V_FPR16VW_M4 = 845,
+  PseudoSF_VC_V_FPR16VW_M8 = 846,
+  PseudoSF_VC_V_FPR16VW_MF2 = 847,
+  PseudoSF_VC_V_FPR16VW_MF4 = 848,
+  PseudoSF_VC_V_FPR16VW_SE_M1 = 849,
+  PseudoSF_VC_V_FPR16VW_SE_M2 = 850,
+  PseudoSF_VC_V_FPR16VW_SE_M4 = 851,
+  PseudoSF_VC_V_FPR16VW_SE_M8 = 852,
+  PseudoSF_VC_V_FPR16VW_SE_MF2 = 853,
+  PseudoSF_VC_V_FPR16VW_SE_MF4 = 854,
+  PseudoSF_VC_V_FPR16V_M1 = 855,
+  PseudoSF_VC_V_FPR16V_M2 = 856,
+  PseudoSF_VC_V_FPR16V_M4 = 857,
+  PseudoSF_VC_V_FPR16V_M8 = 858,
+  PseudoSF_VC_V_FPR16V_MF2 = 859,
+  PseudoSF_VC_V_FPR16V_MF4 = 860,
+  PseudoSF_VC_V_FPR16V_SE_M1 = 861,
+  PseudoSF_VC_V_FPR16V_SE_M2 = 862,
+  PseudoSF_VC_V_FPR16V_SE_M4 = 863,
+  PseudoSF_VC_V_FPR16V_SE_M8 = 864,
+  PseudoSF_VC_V_FPR16V_SE_MF2 = 865,
+  PseudoSF_VC_V_FPR16V_SE_MF4 = 866,
+  PseudoSF_VC_V_FPR32VV_M1 = 867,
+  PseudoSF_VC_V_FPR32VV_M2 = 868,
+  PseudoSF_VC_V_FPR32VV_M4 = 869,
+  PseudoSF_VC_V_FPR32VV_M8 = 870,
+  PseudoSF_VC_V_FPR32VV_MF2 = 871,
+  PseudoSF_VC_V_FPR32VV_SE_M1 = 872,
+  PseudoSF_VC_V_FPR32VV_SE_M2 = 873,
+  PseudoSF_VC_V_FPR32VV_SE_M4 = 874,
+  PseudoSF_VC_V_FPR32VV_SE_M8 = 875,
+  PseudoSF_VC_V_FPR32VV_SE_MF2 = 876,
+  PseudoSF_VC_V_FPR32VW_M1 = 877,
+  PseudoSF_VC_V_FPR32VW_M2 = 878,
+  PseudoSF_VC_V_FPR32VW_M4 = 879,
+  PseudoSF_VC_V_FPR32VW_M8 = 880,
+  PseudoSF_VC_V_FPR32VW_MF2 = 881,
+  PseudoSF_VC_V_FPR32VW_SE_M1 = 882,
+  PseudoSF_VC_V_FPR32VW_SE_M2 = 883,
+  PseudoSF_VC_V_FPR32VW_SE_M4 = 884,
+  PseudoSF_VC_V_FPR32VW_SE_M8 = 885,
+  PseudoSF_VC_V_FPR32VW_SE_MF2 = 886,
+  PseudoSF_VC_V_FPR32V_M1 = 887,
+  PseudoSF_VC_V_FPR32V_M2 = 888,
+  PseudoSF_VC_V_FPR32V_M4 = 889,
+  PseudoSF_VC_V_FPR32V_M8 = 890,
+  PseudoSF_VC_V_FPR32V_MF2 = 891,
+  PseudoSF_VC_V_FPR32V_SE_M1 = 892,
+  PseudoSF_VC_V_FPR32V_SE_M2 = 893,
+  PseudoSF_VC_V_FPR32V_SE_M4 = 894,
+  PseudoSF_VC_V_FPR32V_SE_M8 = 895,
+  PseudoSF_VC_V_FPR32V_SE_MF2 = 896,
+  PseudoSF_VC_V_FPR64VV_M1 = 897,
+  PseudoSF_VC_V_FPR64VV_M2 = 898,
+  PseudoSF_VC_V_FPR64VV_M4 = 899,
+  PseudoSF_VC_V_FPR64VV_M8 = 900,
+  PseudoSF_VC_V_FPR64VV_SE_M1 = 901,
+  PseudoSF_VC_V_FPR64VV_SE_M2 = 902,
+  PseudoSF_VC_V_FPR64VV_SE_M4 = 903,
+  PseudoSF_VC_V_FPR64VV_SE_M8 = 904,
+  PseudoSF_VC_V_FPR64V_M1 = 905,
+  PseudoSF_VC_V_FPR64V_M2 = 906,
+  PseudoSF_VC_V_FPR64V_M4 = 907,
+  PseudoSF_VC_V_FPR64V_M8 = 908,
+  PseudoSF_VC_V_FPR64V_SE_M1 = 909,
+  PseudoSF_VC_V_FPR64V_SE_M2 = 910,
+  PseudoSF_VC_V_FPR64V_SE_M4 = 911,
+  PseudoSF_VC_V_FPR64V_SE_M8 = 912,
+  PseudoSF_VC_V_IVV_M1 = 913,
+  PseudoSF_VC_V_IVV_M2 = 914,
+  PseudoSF_VC_V_IVV_M4 = 915,
+  PseudoSF_VC_V_IVV_M8 = 916,
+  PseudoSF_VC_V_IVV_MF2 = 917,
+  PseudoSF_VC_V_IVV_MF4 = 918,
+  PseudoSF_VC_V_IVV_MF8 = 919,
+  PseudoSF_VC_V_IVV_SE_M1 = 920,
+  PseudoSF_VC_V_IVV_SE_M2 = 921,
+  PseudoSF_VC_V_IVV_SE_M4 = 922,
+  PseudoSF_VC_V_IVV_SE_M8 = 923,
+  PseudoSF_VC_V_IVV_SE_MF2 = 924,
+  PseudoSF_VC_V_IVV_SE_MF4 = 925,
+  PseudoSF_VC_V_IVV_SE_MF8 = 926,
+  PseudoSF_VC_V_IVW_M1 = 927,
+  PseudoSF_VC_V_IVW_M2 = 928,
+  PseudoSF_VC_V_IVW_M4 = 929,
+  PseudoSF_VC_V_IVW_MF2 = 930,
+  PseudoSF_VC_V_IVW_MF4 = 931,
+  PseudoSF_VC_V_IVW_MF8 = 932,
+  PseudoSF_VC_V_IVW_SE_M1 = 933,
+  PseudoSF_VC_V_IVW_SE_M2 = 934,
+  PseudoSF_VC_V_IVW_SE_M4 = 935,
+  PseudoSF_VC_V_IVW_SE_MF2 = 936,
+  PseudoSF_VC_V_IVW_SE_MF4 = 937,
+  PseudoSF_VC_V_IVW_SE_MF8 = 938,
+  PseudoSF_VC_V_IV_M1 = 939,
+  PseudoSF_VC_V_IV_M2 = 940,
+  PseudoSF_VC_V_IV_M4 = 941,
+  PseudoSF_VC_V_IV_M8 = 942,
+  PseudoSF_VC_V_IV_MF2 = 943,
+  PseudoSF_VC_V_IV_MF4 = 944,
+  PseudoSF_VC_V_IV_MF8 = 945,
+  PseudoSF_VC_V_IV_SE_M1 = 946,
+  PseudoSF_VC_V_IV_SE_M2 = 947,
+  PseudoSF_VC_V_IV_SE_M4 = 948,
+  PseudoSF_VC_V_IV_SE_M8 = 949,
+  PseudoSF_VC_V_IV_SE_MF2 = 950,
+  PseudoSF_VC_V_IV_SE_MF4 = 951,
+  PseudoSF_VC_V_IV_SE_MF8 = 952,
+  PseudoSF_VC_V_I_M1 = 953,
+  PseudoSF_VC_V_I_M2 = 954,
+  PseudoSF_VC_V_I_M4 = 955,
+  PseudoSF_VC_V_I_M8 = 956,
+  PseudoSF_VC_V_I_MF2 = 957,
+  PseudoSF_VC_V_I_MF4 = 958,
+  PseudoSF_VC_V_I_MF8 = 959,
+  PseudoSF_VC_V_I_SE_M1 = 960,
+  PseudoSF_VC_V_I_SE_M2 = 961,
+  PseudoSF_VC_V_I_SE_M4 = 962,
+  PseudoSF_VC_V_I_SE_M8 = 963,
+  PseudoSF_VC_V_I_SE_MF2 = 964,
+  PseudoSF_VC_V_I_SE_MF4 = 965,
+  PseudoSF_VC_V_I_SE_MF8 = 966,
+  PseudoSF_VC_V_VVV_M1 = 967,
+  PseudoSF_VC_V_VVV_M2 = 968,
+  PseudoSF_VC_V_VVV_M4 = 969,
+  PseudoSF_VC_V_VVV_M8 = 970,
+  PseudoSF_VC_V_VVV_MF2 = 971,
+  PseudoSF_VC_V_VVV_MF4 = 972,
+  PseudoSF_VC_V_VVV_MF8 = 973,
+  PseudoSF_VC_V_VVV_SE_M1 = 974,
+  PseudoSF_VC_V_VVV_SE_M2 = 975,
+  PseudoSF_VC_V_VVV_SE_M4 = 976,
+  PseudoSF_VC_V_VVV_SE_M8 = 977,
+  PseudoSF_VC_V_VVV_SE_MF2 = 978,
+  PseudoSF_VC_V_VVV_SE_MF4 = 979,
+  PseudoSF_VC_V_VVV_SE_MF8 = 980,
+  PseudoSF_VC_V_VVW_M1 = 981,
+  PseudoSF_VC_V_VVW_M2 = 982,
+  PseudoSF_VC_V_VVW_M4 = 983,
+  PseudoSF_VC_V_VVW_MF2 = 984,
+  PseudoSF_VC_V_VVW_MF4 = 985,
+  PseudoSF_VC_V_VVW_MF8 = 986,
+  PseudoSF_VC_V_VVW_SE_M1 = 987,
+  PseudoSF_VC_V_VVW_SE_M2 = 988,
+  PseudoSF_VC_V_VVW_SE_M4 = 989,
+  PseudoSF_VC_V_VVW_SE_MF2 = 990,
+  PseudoSF_VC_V_VVW_SE_MF4 = 991,
+  PseudoSF_VC_V_VVW_SE_MF8 = 992,
+  PseudoSF_VC_V_VV_M1 = 993,
+  PseudoSF_VC_V_VV_M2 = 994,
+  PseudoSF_VC_V_VV_M4 = 995,
+  PseudoSF_VC_V_VV_M8 = 996,
+  PseudoSF_VC_V_VV_MF2 = 997,
+  PseudoSF_VC_V_VV_MF4 = 998,
+  PseudoSF_VC_V_VV_MF8 = 999,
+  PseudoSF_VC_V_VV_SE_M1 = 1000,
+  PseudoSF_VC_V_VV_SE_M2 = 1001,
+  PseudoSF_VC_V_VV_SE_M4 = 1002,
+  PseudoSF_VC_V_VV_SE_M8 = 1003,
+  PseudoSF_VC_V_VV_SE_MF2 = 1004,
+  PseudoSF_VC_V_VV_SE_MF4 = 1005,
+  PseudoSF_VC_V_VV_SE_MF8 = 1006,
+  PseudoSF_VC_V_XVV_M1 = 1007,
+  PseudoSF_VC_V_XVV_M2 = 1008,
+  PseudoSF_VC_V_XVV_M4 = 1009,
+  PseudoSF_VC_V_XVV_M8 = 1010,
+  PseudoSF_VC_V_XVV_MF2 = 1011,
+  PseudoSF_VC_V_XVV_MF4 = 1012,
+  PseudoSF_VC_V_XVV_MF8 = 1013,
+  PseudoSF_VC_V_XVV_SE_M1 = 1014,
+  PseudoSF_VC_V_XVV_SE_M2 = 1015,
+  PseudoSF_VC_V_XVV_SE_M4 = 1016,
+  PseudoSF_VC_V_XVV_SE_M8 = 1017,
+  PseudoSF_VC_V_XVV_SE_MF2 = 1018,
+  PseudoSF_VC_V_XVV_SE_MF4 = 1019,
+  PseudoSF_VC_V_XVV_SE_MF8 = 1020,
+  PseudoSF_VC_V_XVW_M1 = 1021,
+  PseudoSF_VC_V_XVW_M2 = 1022,
+  PseudoSF_VC_V_XVW_M4 = 1023,
+  PseudoSF_VC_V_XVW_MF2 = 1024,
+  PseudoSF_VC_V_XVW_MF4 = 1025,
+  PseudoSF_VC_V_XVW_MF8 = 1026,
+  PseudoSF_VC_V_XVW_SE_M1 = 1027,
+  PseudoSF_VC_V_XVW_SE_M2 = 1028,
+  PseudoSF_VC_V_XVW_SE_M4 = 1029,
+  PseudoSF_VC_V_XVW_SE_MF2 = 1030,
+  PseudoSF_VC_V_XVW_SE_MF4 = 1031,
+  PseudoSF_VC_V_XVW_SE_MF8 = 1032,
+  PseudoSF_VC_V_XV_M1 = 1033,
+  PseudoSF_VC_V_XV_M2 = 1034,
+  PseudoSF_VC_V_XV_M4 = 1035,
+  PseudoSF_VC_V_XV_M8 = 1036,
+  PseudoSF_VC_V_XV_MF2 = 1037,
+  PseudoSF_VC_V_XV_MF4 = 1038,
+  PseudoSF_VC_V_XV_MF8 = 1039,
+  PseudoSF_VC_V_XV_SE_M1 = 1040,
+  PseudoSF_VC_V_XV_SE_M2 = 1041,
+  PseudoSF_VC_V_XV_SE_M4 = 1042,
+  PseudoSF_VC_V_XV_SE_M8 = 1043,
+  PseudoSF_VC_V_XV_SE_MF2 = 1044,
+  PseudoSF_VC_V_XV_SE_MF4 = 1045,
+  PseudoSF_VC_V_XV_SE_MF8 = 1046,
+  PseudoSF_VC_V_X_M1 = 1047,
+  PseudoSF_VC_V_X_M2 = 1048,
+  PseudoSF_VC_V_X_M4 = 1049,
+  PseudoSF_VC_V_X_M8 = 1050,
+  PseudoSF_VC_V_X_MF2 = 1051,
+  PseudoSF_VC_V_X_MF4 = 1052,
+  PseudoSF_VC_V_X_MF8 = 1053,
+  PseudoSF_VC_V_X_SE_M1 = 1054,
+  PseudoSF_VC_V_X_SE_M2 = 1055,
+  PseudoSF_VC_V_X_SE_M4 = 1056,
+  PseudoSF_VC_V_X_SE_M8 = 1057,
+  PseudoSF_VC_V_X_SE_MF2 = 1058,
+  PseudoSF_VC_V_X_SE_MF4 = 1059,
+  PseudoSF_VC_V_X_SE_MF8 = 1060,
+  PseudoSF_VC_XVV_SE_M1 = 1061,
+  PseudoSF_VC_XVV_SE_M2 = 1062,
+  PseudoSF_VC_XVV_SE_M4 = 1063,
+  PseudoSF_VC_XVV_SE_M8 = 1064,
+  PseudoSF_VC_XVV_SE_MF2 = 1065,
+  PseudoSF_VC_XVV_SE_MF4 = 1066,
+  PseudoSF_VC_XVV_SE_MF8 = 1067,
+  PseudoSF_VC_XVW_SE_M1 = 1068,
+  PseudoSF_VC_XVW_SE_M2 = 1069,
+  PseudoSF_VC_XVW_SE_M4 = 1070,
+  PseudoSF_VC_XVW_SE_MF2 = 1071,
+  PseudoSF_VC_XVW_SE_MF4 = 1072,
+  PseudoSF_VC_XVW_SE_MF8 = 1073,
+  PseudoSF_VC_XV_SE_M1 = 1074,
+  PseudoSF_VC_XV_SE_M2 = 1075,
+  PseudoSF_VC_XV_SE_M4 = 1076,
+  PseudoSF_VC_XV_SE_M8 = 1077,
+  PseudoSF_VC_XV_SE_MF2 = 1078,
+  PseudoSF_VC_XV_SE_MF4 = 1079,
+  PseudoSF_VC_XV_SE_MF8 = 1080,
+  PseudoSF_VC_X_SE_M1 = 1081,
+  PseudoSF_VC_X_SE_M2 = 1082,
+  PseudoSF_VC_X_SE_M4 = 1083,
+  PseudoSF_VC_X_SE_M8 = 1084,
+  PseudoSF_VC_X_SE_MF2 = 1085,
+  PseudoSF_VC_X_SE_MF4 = 1086,
+  PseudoSF_VC_X_SE_MF8 = 1087,
+  PseudoSF_VFEXPA_V_M1_E16 = 1088,
+  PseudoSF_VFEXPA_V_M1_E16_MASK = 1089,
+  PseudoSF_VFEXPA_V_M1_E32 = 1090,
+  PseudoSF_VFEXPA_V_M1_E32_MASK = 1091,
+  PseudoSF_VFEXPA_V_M1_E64 = 1092,
+  PseudoSF_VFEXPA_V_M1_E64_MASK = 1093,
+  PseudoSF_VFEXPA_V_M2_E16 = 1094,
+  PseudoSF_VFEXPA_V_M2_E16_MASK = 1095,
+  PseudoSF_VFEXPA_V_M2_E32 = 1096,
+  PseudoSF_VFEXPA_V_M2_E32_MASK = 1097,
+  PseudoSF_VFEXPA_V_M2_E64 = 1098,
+  PseudoSF_VFEXPA_V_M2_E64_MASK = 1099,
+  PseudoSF_VFEXPA_V_M4_E16 = 1100,
+  PseudoSF_VFEXPA_V_M4_E16_MASK = 1101,
+  PseudoSF_VFEXPA_V_M4_E32 = 1102,
+  PseudoSF_VFEXPA_V_M4_E32_MASK = 1103,
+  PseudoSF_VFEXPA_V_M4_E64 = 1104,
+  PseudoSF_VFEXPA_V_M4_E64_MASK = 1105,
+  PseudoSF_VFEXPA_V_M8_E16 = 1106,
+  PseudoSF_VFEXPA_V_M8_E16_MASK = 1107,
+  PseudoSF_VFEXPA_V_M8_E32 = 1108,
+  PseudoSF_VFEXPA_V_M8_E32_MASK = 1109,
+  PseudoSF_VFEXPA_V_M8_E64 = 1110,
+  PseudoSF_VFEXPA_V_M8_E64_MASK = 1111,
+  PseudoSF_VFEXPA_V_MF2_E16 = 1112,
+  PseudoSF_VFEXPA_V_MF2_E16_MASK = 1113,
+  PseudoSF_VFEXPA_V_MF2_E32 = 1114,
+  PseudoSF_VFEXPA_V_MF2_E32_MASK = 1115,
+  PseudoSF_VFEXPA_V_MF4_E16 = 1116,
+  PseudoSF_VFEXPA_V_MF4_E16_MASK = 1117,
+  PseudoSF_VFEXP_ALT_V_M1_E16 = 1118,
+  PseudoSF_VFEXP_ALT_V_M1_E16_MASK = 1119,
+  PseudoSF_VFEXP_ALT_V_M2_E16 = 1120,
+  PseudoSF_VFEXP_ALT_V_M2_E16_MASK = 1121,
+  PseudoSF_VFEXP_ALT_V_M4_E16 = 1122,
+  PseudoSF_VFEXP_ALT_V_M4_E16_MASK = 1123,
+  PseudoSF_VFEXP_ALT_V_M8_E16 = 1124,
+  PseudoSF_VFEXP_ALT_V_M8_E16_MASK = 1125,
+  PseudoSF_VFEXP_ALT_V_MF2_E16 = 1126,
+  PseudoSF_VFEXP_ALT_V_MF2_E16_MASK = 1127,
+  PseudoSF_VFEXP_ALT_V_MF4_E16 = 1128,
+  PseudoSF_VFEXP_ALT_V_MF4_E16_MASK = 1129,
+  PseudoSF_VFEXP_V_M1_E16 = 1130,
+  PseudoSF_VFEXP_V_M1_E16_MASK = 1131,
+  PseudoSF_VFEXP_V_M1_E32 = 1132,
+  PseudoSF_VFEXP_V_M1_E32_MASK = 1133,
+  PseudoSF_VFEXP_V_M2_E16 = 1134,
+  PseudoSF_VFEXP_V_M2_E16_MASK = 1135,
+  PseudoSF_VFEXP_V_M2_E32 = 1136,
+  PseudoSF_VFEXP_V_M2_E32_MASK = 1137,
+  PseudoSF_VFEXP_V_M4_E16 = 1138,
+  PseudoSF_VFEXP_V_M4_E16_MASK = 1139,
+  PseudoSF_VFEXP_V_M4_E32 = 1140,
+  PseudoSF_VFEXP_V_M4_E32_MASK = 1141,
+  PseudoSF_VFEXP_V_M8_E16 = 1142,
+  PseudoSF_VFEXP_V_M8_E16_MASK = 1143,
+  PseudoSF_VFEXP_V_M8_E32 = 1144,
+  PseudoSF_VFEXP_V_M8_E32_MASK = 1145,
+  PseudoSF_VFEXP_V_MF2_E16 = 1146,
+  PseudoSF_VFEXP_V_MF2_E16_MASK = 1147,
+  PseudoSF_VFEXP_V_MF2_E32 = 1148,
+  PseudoSF_VFEXP_V_MF2_E32_MASK = 1149,
+  PseudoSF_VFEXP_V_MF4_E16 = 1150,
+  PseudoSF_VFEXP_V_MF4_E16_MASK = 1151,
+  PseudoSF_VFNRCLIP_XU_F_QF_M1 = 1152,
+  PseudoSF_VFNRCLIP_XU_F_QF_M1_MASK = 1153,
+  PseudoSF_VFNRCLIP_XU_F_QF_M2 = 1154,
+  PseudoSF_VFNRCLIP_XU_F_QF_M2_MASK = 1155,
+  PseudoSF_VFNRCLIP_XU_F_QF_MF2 = 1156,
+  PseudoSF_VFNRCLIP_XU_F_QF_MF2_MASK = 1157,
+  PseudoSF_VFNRCLIP_XU_F_QF_MF4 = 1158,
+  PseudoSF_VFNRCLIP_XU_F_QF_MF4_MASK = 1159,
+  PseudoSF_VFNRCLIP_XU_F_QF_MF8 = 1160,
+  PseudoSF_VFNRCLIP_XU_F_QF_MF8_MASK = 1161,
+  PseudoSF_VFNRCLIP_X_F_QF_M1 = 1162,
+  PseudoSF_VFNRCLIP_X_F_QF_M1_MASK = 1163,
+  PseudoSF_VFNRCLIP_X_F_QF_M2 = 1164,
+  PseudoSF_VFNRCLIP_X_F_QF_M2_MASK = 1165,
+  PseudoSF_VFNRCLIP_X_F_QF_MF2 = 1166,
+  PseudoSF_VFNRCLIP_X_F_QF_MF2_MASK = 1167,
+  PseudoSF_VFNRCLIP_X_F_QF_MF4 = 1168,
+  PseudoSF_VFNRCLIP_X_F_QF_MF4_MASK = 1169,
+  PseudoSF_VFNRCLIP_X_F_QF_MF8 = 1170,
+  PseudoSF_VFNRCLIP_X_F_QF_MF8_MASK = 1171,
+  PseudoSF_VFWMACC_4x4x4_M1 = 1172,
+  PseudoSF_VFWMACC_4x4x4_M2 = 1173,
+  PseudoSF_VFWMACC_4x4x4_M4 = 1174,
+  PseudoSF_VFWMACC_4x4x4_MF2 = 1175,
+  PseudoSF_VFWMACC_4x4x4_MF4 = 1176,
+  PseudoSF_VLTE16 = 1177,
+  PseudoSF_VLTE32 = 1178,
+  PseudoSF_VLTE64 = 1179,
+  PseudoSF_VLTE8 = 1180,
+  PseudoSF_VQMACCSU_2x8x2_M1 = 1181,
+  PseudoSF_VQMACCSU_2x8x2_M2 = 1182,
+  PseudoSF_VQMACCSU_2x8x2_M4 = 1183,
+  PseudoSF_VQMACCSU_2x8x2_M8 = 1184,
+  PseudoSF_VQMACCSU_4x8x4_M1 = 1185,
+  PseudoSF_VQMACCSU_4x8x4_M2 = 1186,
+  PseudoSF_VQMACCSU_4x8x4_M4 = 1187,
+  PseudoSF_VQMACCSU_4x8x4_MF2 = 1188,
+  PseudoSF_VQMACCUS_2x8x2_M1 = 1189,
+  PseudoSF_VQMACCUS_2x8x2_M2 = 1190,
+  PseudoSF_VQMACCUS_2x8x2_M4 = 1191,
+  PseudoSF_VQMACCUS_2x8x2_M8 = 1192,
+  PseudoSF_VQMACCUS_4x8x4_M1 = 1193,
+  PseudoSF_VQMACCUS_4x8x4_M2 = 1194,
+  PseudoSF_VQMACCUS_4x8x4_M4 = 1195,
+  PseudoSF_VQMACCUS_4x8x4_MF2 = 1196,
+  PseudoSF_VQMACCU_2x8x2_M1 = 1197,
+  PseudoSF_VQMACCU_2x8x2_M2 = 1198,
+  PseudoSF_VQMACCU_2x8x2_M4 = 1199,
+  PseudoSF_VQMACCU_2x8x2_M8 = 1200,
+  PseudoSF_VQMACCU_4x8x4_M1 = 1201,
+  PseudoSF_VQMACCU_4x8x4_M2 = 1202,
+  PseudoSF_VQMACCU_4x8x4_M4 = 1203,
+  PseudoSF_VQMACCU_4x8x4_MF2 = 1204,
+  PseudoSF_VQMACC_2x8x2_M1 = 1205,
+  PseudoSF_VQMACC_2x8x2_M2 = 1206,
+  PseudoSF_VQMACC_2x8x2_M4 = 1207,
+  PseudoSF_VQMACC_2x8x2_M8 = 1208,
+  PseudoSF_VQMACC_4x8x4_M1 = 1209,
+  PseudoSF_VQMACC_4x8x4_M2 = 1210,
+  PseudoSF_VQMACC_4x8x4_M4 = 1211,
+  PseudoSF_VQMACC_4x8x4_MF2 = 1212,
+  PseudoSF_VSETTK = 1213,
+  PseudoSF_VSETTM = 1214,
+  PseudoSF_VSETTNT = 1215,
+  PseudoSF_VSETTNTX0 = 1216,
+  PseudoSF_VSETTNTX0X0 = 1217,
+  PseudoSF_VSTE16 = 1218,
+  PseudoSF_VSTE32 = 1219,
+  PseudoSF_VSTE64 = 1220,
+  PseudoSF_VSTE8 = 1221,
+  PseudoSF_VTDISCARD = 1222,
+  PseudoSF_VTMV_T_V = 1223,
+  PseudoSF_VTMV_V_T = 1224,
+  PseudoSF_VTZERO_T = 1225,
+  PseudoSH = 1226,
+  PseudoSW = 1227,
+  PseudoTAIL = 1228,
+  PseudoTAILIndirect = 1229,
+  PseudoTAILIndirectNonX7 = 1230,
+  PseudoTAILIndirectX7 = 1231,
+  PseudoTH_VMAQASU_VV_M1 = 1232,
+  PseudoTH_VMAQASU_VV_M1_MASK = 1233,
+  PseudoTH_VMAQASU_VV_M2 = 1234,
+  PseudoTH_VMAQASU_VV_M2_MASK = 1235,
+  PseudoTH_VMAQASU_VV_M4 = 1236,
+  PseudoTH_VMAQASU_VV_M4_MASK = 1237,
+  PseudoTH_VMAQASU_VV_M8 = 1238,
+  PseudoTH_VMAQASU_VV_M8_MASK = 1239,
+  PseudoTH_VMAQASU_VV_MF2 = 1240,
+  PseudoTH_VMAQASU_VV_MF2_MASK = 1241,
+  PseudoTH_VMAQASU_VX_M1 = 1242,
+  PseudoTH_VMAQASU_VX_M1_MASK = 1243,
+  PseudoTH_VMAQASU_VX_M2 = 1244,
+  PseudoTH_VMAQASU_VX_M2_MASK = 1245,
+  PseudoTH_VMAQASU_VX_M4 = 1246,
+  PseudoTH_VMAQASU_VX_M4_MASK = 1247,
+  PseudoTH_VMAQASU_VX_M8 = 1248,
+  PseudoTH_VMAQASU_VX_M8_MASK = 1249,
+  PseudoTH_VMAQASU_VX_MF2 = 1250,
+  PseudoTH_VMAQASU_VX_MF2_MASK = 1251,
+  PseudoTH_VMAQAUS_VX_M1 = 1252,
+  PseudoTH_VMAQAUS_VX_M1_MASK = 1253,
+  PseudoTH_VMAQAUS_VX_M2 = 1254,
+  PseudoTH_VMAQAUS_VX_M2_MASK = 1255,
+  PseudoTH_VMAQAUS_VX_M4 = 1256,
+  PseudoTH_VMAQAUS_VX_M4_MASK = 1257,
+  PseudoTH_VMAQAUS_VX_M8 = 1258,
+  PseudoTH_VMAQAUS_VX_M8_MASK = 1259,
+  PseudoTH_VMAQAUS_VX_MF2 = 1260,
+  PseudoTH_VMAQAUS_VX_MF2_MASK = 1261,
+  PseudoTH_VMAQAU_VV_M1 = 1262,
+  PseudoTH_VMAQAU_VV_M1_MASK = 1263,
+  PseudoTH_VMAQAU_VV_M2 = 1264,
+  PseudoTH_VMAQAU_VV_M2_MASK = 1265,
+  PseudoTH_VMAQAU_VV_M4 = 1266,
+  PseudoTH_VMAQAU_VV_M4_MASK = 1267,
+  PseudoTH_VMAQAU_VV_M8 = 1268,
+  PseudoTH_VMAQAU_VV_M8_MASK = 1269,
+  PseudoTH_VMAQAU_VV_MF2 = 1270,
+  PseudoTH_VMAQAU_VV_MF2_MASK = 1271,
+  PseudoTH_VMAQAU_VX_M1 = 1272,
+  PseudoTH_VMAQAU_VX_M1_MASK = 1273,
+  PseudoTH_VMAQAU_VX_M2 = 1274,
+  PseudoTH_VMAQAU_VX_M2_MASK = 1275,
+  PseudoTH_VMAQAU_VX_M4 = 1276,
+  PseudoTH_VMAQAU_VX_M4_MASK = 1277,
+  PseudoTH_VMAQAU_VX_M8 = 1278,
+  PseudoTH_VMAQAU_VX_M8_MASK = 1279,
+  PseudoTH_VMAQAU_VX_MF2 = 1280,
+  PseudoTH_VMAQAU_VX_MF2_MASK = 1281,
+  PseudoTH_VMAQA_VV_M1 = 1282,
+  PseudoTH_VMAQA_VV_M1_MASK = 1283,
+  PseudoTH_VMAQA_VV_M2 = 1284,
+  PseudoTH_VMAQA_VV_M2_MASK = 1285,
+  PseudoTH_VMAQA_VV_M4 = 1286,
+  PseudoTH_VMAQA_VV_M4_MASK = 1287,
+  PseudoTH_VMAQA_VV_M8 = 1288,
+  PseudoTH_VMAQA_VV_M8_MASK = 1289,
+  PseudoTH_VMAQA_VV_MF2 = 1290,
+  PseudoTH_VMAQA_VV_MF2_MASK = 1291,
+  PseudoTH_VMAQA_VX_M1 = 1292,
+  PseudoTH_VMAQA_VX_M1_MASK = 1293,
+  PseudoTH_VMAQA_VX_M2 = 1294,
+  PseudoTH_VMAQA_VX_M2_MASK = 1295,
+  PseudoTH_VMAQA_VX_M4 = 1296,
+  PseudoTH_VMAQA_VX_M4_MASK = 1297,
+  PseudoTH_VMAQA_VX_M8 = 1298,
+  PseudoTH_VMAQA_VX_M8_MASK = 1299,
+  PseudoTH_VMAQA_VX_MF2 = 1300,
+  PseudoTH_VMAQA_VX_MF2_MASK = 1301,
+  PseudoTLSDESCCall = 1302,
+  PseudoVAADDU_VV_M1 = 1303,
+  PseudoVAADDU_VV_M1_MASK = 1304,
+  PseudoVAADDU_VV_M2 = 1305,
+  PseudoVAADDU_VV_M2_MASK = 1306,
+  PseudoVAADDU_VV_M4 = 1307,
+  PseudoVAADDU_VV_M4_MASK = 1308,
+  PseudoVAADDU_VV_M8 = 1309,
+  PseudoVAADDU_VV_M8_MASK = 1310,
+  PseudoVAADDU_VV_MF2 = 1311,
+  PseudoVAADDU_VV_MF2_MASK = 1312,
+  PseudoVAADDU_VV_MF4 = 1313,
+  PseudoVAADDU_VV_MF4_MASK = 1314,
+  PseudoVAADDU_VV_MF8 = 1315,
+  PseudoVAADDU_VV_MF8_MASK = 1316,
+  PseudoVAADDU_VX_M1 = 1317,
+  PseudoVAADDU_VX_M1_MASK = 1318,
+  PseudoVAADDU_VX_M2 = 1319,
+  PseudoVAADDU_VX_M2_MASK = 1320,
+  PseudoVAADDU_VX_M4 = 1321,
+  PseudoVAADDU_VX_M4_MASK = 1322,
+  PseudoVAADDU_VX_M8 = 1323,
+  PseudoVAADDU_VX_M8_MASK = 1324,
+  PseudoVAADDU_VX_MF2 = 1325,
+  PseudoVAADDU_VX_MF2_MASK = 1326,
+  PseudoVAADDU_VX_MF4 = 1327,
+  PseudoVAADDU_VX_MF4_MASK = 1328,
+  PseudoVAADDU_VX_MF8 = 1329,
+  PseudoVAADDU_VX_MF8_MASK = 1330,
+  PseudoVAADD_VV_M1 = 1331,
+  PseudoVAADD_VV_M1_MASK = 1332,
+  PseudoVAADD_VV_M2 = 1333,
+  PseudoVAADD_VV_M2_MASK = 1334,
+  PseudoVAADD_VV_M4 = 1335,
+  PseudoVAADD_VV_M4_MASK = 1336,
+  PseudoVAADD_VV_M8 = 1337,
+  PseudoVAADD_VV_M8_MASK = 1338,
+  PseudoVAADD_VV_MF2 = 1339,
+  PseudoVAADD_VV_MF2_MASK = 1340,
+  PseudoVAADD_VV_MF4 = 1341,
+  PseudoVAADD_VV_MF4_MASK = 1342,
+  PseudoVAADD_VV_MF8 = 1343,
+  PseudoVAADD_VV_MF8_MASK = 1344,
+  PseudoVAADD_VX_M1 = 1345,
+  PseudoVAADD_VX_M1_MASK = 1346,
+  PseudoVAADD_VX_M2 = 1347,
+  PseudoVAADD_VX_M2_MASK = 1348,
+  PseudoVAADD_VX_M4 = 1349,
+  PseudoVAADD_VX_M4_MASK = 1350,
+  PseudoVAADD_VX_M8 = 1351,
+  PseudoVAADD_VX_M8_MASK = 1352,
+  PseudoVAADD_VX_MF2 = 1353,
+  PseudoVAADD_VX_MF2_MASK = 1354,
+  PseudoVAADD_VX_MF4 = 1355,
+  PseudoVAADD_VX_MF4_MASK = 1356,
+  PseudoVAADD_VX_MF8 = 1357,
+  PseudoVAADD_VX_MF8_MASK = 1358,
+  PseudoVADC_VIM_M1 = 1359,
+  PseudoVADC_VIM_M2 = 1360,
+  PseudoVADC_VIM_M4 = 1361,
+  PseudoVADC_VIM_M8 = 1362,
+  PseudoVADC_VIM_MF2 = 1363,
+  PseudoVADC_VIM_MF4 = 1364,
+  PseudoVADC_VIM_MF8 = 1365,
+  PseudoVADC_VVM_M1 = 1366,
+  PseudoVADC_VVM_M2 = 1367,
+  PseudoVADC_VVM_M4 = 1368,
+  PseudoVADC_VVM_M8 = 1369,
+  PseudoVADC_VVM_MF2 = 1370,
+  PseudoVADC_VVM_MF4 = 1371,
+  PseudoVADC_VVM_MF8 = 1372,
+  PseudoVADC_VXM_M1 = 1373,
+  PseudoVADC_VXM_M2 = 1374,
+  PseudoVADC_VXM_M4 = 1375,
+  PseudoVADC_VXM_M8 = 1376,
+  PseudoVADC_VXM_MF2 = 1377,
+  PseudoVADC_VXM_MF4 = 1378,
+  PseudoVADC_VXM_MF8 = 1379,
+  PseudoVADD_VI_M1 = 1380,
+  PseudoVADD_VI_M1_MASK = 1381,
+  PseudoVADD_VI_M2 = 1382,
+  PseudoVADD_VI_M2_MASK = 1383,
+  PseudoVADD_VI_M4 = 1384,
+  PseudoVADD_VI_M4_MASK = 1385,
+  PseudoVADD_VI_M8 = 1386,
+  PseudoVADD_VI_M8_MASK = 1387,
+  PseudoVADD_VI_MF2 = 1388,
+  PseudoVADD_VI_MF2_MASK = 1389,
+  PseudoVADD_VI_MF4 = 1390,
+  PseudoVADD_VI_MF4_MASK = 1391,
+  PseudoVADD_VI_MF8 = 1392,
+  PseudoVADD_VI_MF8_MASK = 1393,
+  PseudoVADD_VV_M1 = 1394,
+  PseudoVADD_VV_M1_MASK = 1395,
+  PseudoVADD_VV_M2 = 1396,
+  PseudoVADD_VV_M2_MASK = 1397,
+  PseudoVADD_VV_M4 = 1398,
+  PseudoVADD_VV_M4_MASK = 1399,
+  PseudoVADD_VV_M8 = 1400,
+  PseudoVADD_VV_M8_MASK = 1401,
+  PseudoVADD_VV_MF2 = 1402,
+  PseudoVADD_VV_MF2_MASK = 1403,
+  PseudoVADD_VV_MF4 = 1404,
+  PseudoVADD_VV_MF4_MASK = 1405,
+  PseudoVADD_VV_MF8 = 1406,
+  PseudoVADD_VV_MF8_MASK = 1407,
+  PseudoVADD_VX_M1 = 1408,
+  PseudoVADD_VX_M1_MASK = 1409,
+  PseudoVADD_VX_M2 = 1410,
+  PseudoVADD_VX_M2_MASK = 1411,
+  PseudoVADD_VX_M4 = 1412,
+  PseudoVADD_VX_M4_MASK = 1413,
+  PseudoVADD_VX_M8 = 1414,
+  PseudoVADD_VX_M8_MASK = 1415,
+  PseudoVADD_VX_MF2 = 1416,
+  PseudoVADD_VX_MF2_MASK = 1417,
+  PseudoVADD_VX_MF4 = 1418,
+  PseudoVADD_VX_MF4_MASK = 1419,
+  PseudoVADD_VX_MF8 = 1420,
+  PseudoVADD_VX_MF8_MASK = 1421,
+  PseudoVAESDF_VS_M1_M1 = 1422,
+  PseudoVAESDF_VS_M1_MF2 = 1423,
+  PseudoVAESDF_VS_M1_MF4 = 1424,
+  PseudoVAESDF_VS_M1_MF8 = 1425,
+  PseudoVAESDF_VS_M2_M1 = 1426,
+  PseudoVAESDF_VS_M2_M2 = 1427,
+  PseudoVAESDF_VS_M2_MF2 = 1428,
+  PseudoVAESDF_VS_M2_MF4 = 1429,
+  PseudoVAESDF_VS_M2_MF8 = 1430,
+  PseudoVAESDF_VS_M4_M1 = 1431,
+  PseudoVAESDF_VS_M4_M2 = 1432,
+  PseudoVAESDF_VS_M4_M4 = 1433,
+  PseudoVAESDF_VS_M4_MF2 = 1434,
+  PseudoVAESDF_VS_M4_MF4 = 1435,
+  PseudoVAESDF_VS_M4_MF8 = 1436,
+  PseudoVAESDF_VS_M8_M1 = 1437,
+  PseudoVAESDF_VS_M8_M2 = 1438,
+  PseudoVAESDF_VS_M8_M4 = 1439,
+  PseudoVAESDF_VS_M8_MF2 = 1440,
+  PseudoVAESDF_VS_M8_MF4 = 1441,
+  PseudoVAESDF_VS_M8_MF8 = 1442,
+  PseudoVAESDF_VS_MF2_MF2 = 1443,
+  PseudoVAESDF_VS_MF2_MF4 = 1444,
+  PseudoVAESDF_VS_MF2_MF8 = 1445,
+  PseudoVAESDF_VV_M1 = 1446,
+  PseudoVAESDF_VV_M2 = 1447,
+  PseudoVAESDF_VV_M4 = 1448,
+  PseudoVAESDF_VV_M8 = 1449,
+  PseudoVAESDF_VV_MF2 = 1450,
+  PseudoVAESDM_VS_M1_M1 = 1451,
+  PseudoVAESDM_VS_M1_MF2 = 1452,
+  PseudoVAESDM_VS_M1_MF4 = 1453,
+  PseudoVAESDM_VS_M1_MF8 = 1454,
+  PseudoVAESDM_VS_M2_M1 = 1455,
+  PseudoVAESDM_VS_M2_M2 = 1456,
+  PseudoVAESDM_VS_M2_MF2 = 1457,
+  PseudoVAESDM_VS_M2_MF4 = 1458,
+  PseudoVAESDM_VS_M2_MF8 = 1459,
+  PseudoVAESDM_VS_M4_M1 = 1460,
+  PseudoVAESDM_VS_M4_M2 = 1461,
+  PseudoVAESDM_VS_M4_M4 = 1462,
+  PseudoVAESDM_VS_M4_MF2 = 1463,
+  PseudoVAESDM_VS_M4_MF4 = 1464,
+  PseudoVAESDM_VS_M4_MF8 = 1465,
+  PseudoVAESDM_VS_M8_M1 = 1466,
+  PseudoVAESDM_VS_M8_M2 = 1467,
+  PseudoVAESDM_VS_M8_M4 = 1468,
+  PseudoVAESDM_VS_M8_MF2 = 1469,
+  PseudoVAESDM_VS_M8_MF4 = 1470,
+  PseudoVAESDM_VS_M8_MF8 = 1471,
+  PseudoVAESDM_VS_MF2_MF2 = 1472,
+  PseudoVAESDM_VS_MF2_MF4 = 1473,
+  PseudoVAESDM_VS_MF2_MF8 = 1474,
+  PseudoVAESDM_VV_M1 = 1475,
+  PseudoVAESDM_VV_M2 = 1476,
+  PseudoVAESDM_VV_M4 = 1477,
+  PseudoVAESDM_VV_M8 = 1478,
+  PseudoVAESDM_VV_MF2 = 1479,
+  PseudoVAESEF_VS_M1_M1 = 1480,
+  PseudoVAESEF_VS_M1_MF2 = 1481,
+  PseudoVAESEF_VS_M1_MF4 = 1482,
+  PseudoVAESEF_VS_M1_MF8 = 1483,
+  PseudoVAESEF_VS_M2_M1 = 1484,
+  PseudoVAESEF_VS_M2_M2 = 1485,
+  PseudoVAESEF_VS_M2_MF2 = 1486,
+  PseudoVAESEF_VS_M2_MF4 = 1487,
+  PseudoVAESEF_VS_M2_MF8 = 1488,
+  PseudoVAESEF_VS_M4_M1 = 1489,
+  PseudoVAESEF_VS_M4_M2 = 1490,
+  PseudoVAESEF_VS_M4_M4 = 1491,
+  PseudoVAESEF_VS_M4_MF2 = 1492,
+  PseudoVAESEF_VS_M4_MF4 = 1493,
+  PseudoVAESEF_VS_M4_MF8 = 1494,
+  PseudoVAESEF_VS_M8_M1 = 1495,
+  PseudoVAESEF_VS_M8_M2 = 1496,
+  PseudoVAESEF_VS_M8_M4 = 1497,
+  PseudoVAESEF_VS_M8_MF2 = 1498,
+  PseudoVAESEF_VS_M8_MF4 = 1499,
+  PseudoVAESEF_VS_M8_MF8 = 1500,
+  PseudoVAESEF_VS_MF2_MF2 = 1501,
+  PseudoVAESEF_VS_MF2_MF4 = 1502,
+  PseudoVAESEF_VS_MF2_MF8 = 1503,
+  PseudoVAESEF_VV_M1 = 1504,
+  PseudoVAESEF_VV_M2 = 1505,
+  PseudoVAESEF_VV_M4 = 1506,
+  PseudoVAESEF_VV_M8 = 1507,
+  PseudoVAESEF_VV_MF2 = 1508,
+  PseudoVAESEM_VS_M1_M1 = 1509,
+  PseudoVAESEM_VS_M1_MF2 = 1510,
+  PseudoVAESEM_VS_M1_MF4 = 1511,
+  PseudoVAESEM_VS_M1_MF8 = 1512,
+  PseudoVAESEM_VS_M2_M1 = 1513,
+  PseudoVAESEM_VS_M2_M2 = 1514,
+  PseudoVAESEM_VS_M2_MF2 = 1515,
+  PseudoVAESEM_VS_M2_MF4 = 1516,
+  PseudoVAESEM_VS_M2_MF8 = 1517,
+  PseudoVAESEM_VS_M4_M1 = 1518,
+  PseudoVAESEM_VS_M4_M2 = 1519,
+  PseudoVAESEM_VS_M4_M4 = 1520,
+  PseudoVAESEM_VS_M4_MF2 = 1521,
+  PseudoVAESEM_VS_M4_MF4 = 1522,
+  PseudoVAESEM_VS_M4_MF8 = 1523,
+  PseudoVAESEM_VS_M8_M1 = 1524,
+  PseudoVAESEM_VS_M8_M2 = 1525,
+  PseudoVAESEM_VS_M8_M4 = 1526,
+  PseudoVAESEM_VS_M8_MF2 = 1527,
+  PseudoVAESEM_VS_M8_MF4 = 1528,
+  PseudoVAESEM_VS_M8_MF8 = 1529,
+  PseudoVAESEM_VS_MF2_MF2 = 1530,
+  PseudoVAESEM_VS_MF2_MF4 = 1531,
+  PseudoVAESEM_VS_MF2_MF8 = 1532,
+  PseudoVAESEM_VV_M1 = 1533,
+  PseudoVAESEM_VV_M2 = 1534,
+  PseudoVAESEM_VV_M4 = 1535,
+  PseudoVAESEM_VV_M8 = 1536,
+  PseudoVAESEM_VV_MF2 = 1537,
+  PseudoVAESKF1_VI_M1 = 1538,
+  PseudoVAESKF1_VI_M2 = 1539,
+  PseudoVAESKF1_VI_M4 = 1540,
+  PseudoVAESKF1_VI_M8 = 1541,
+  PseudoVAESKF1_VI_MF2 = 1542,
+  PseudoVAESKF2_VI_M1 = 1543,
+  PseudoVAESKF2_VI_M2 = 1544,
+  PseudoVAESKF2_VI_M4 = 1545,
+  PseudoVAESKF2_VI_M8 = 1546,
+  PseudoVAESKF2_VI_MF2 = 1547,
+  PseudoVAESZ_VS_M1_M1 = 1548,
+  PseudoVAESZ_VS_M1_MF2 = 1549,
+  PseudoVAESZ_VS_M1_MF4 = 1550,
+  PseudoVAESZ_VS_M1_MF8 = 1551,
+  PseudoVAESZ_VS_M2_M1 = 1552,
+  PseudoVAESZ_VS_M2_M2 = 1553,
+  PseudoVAESZ_VS_M2_MF2 = 1554,
+  PseudoVAESZ_VS_M2_MF4 = 1555,
+  PseudoVAESZ_VS_M2_MF8 = 1556,
+  PseudoVAESZ_VS_M4_M1 = 1557,
+  PseudoVAESZ_VS_M4_M2 = 1558,
+  PseudoVAESZ_VS_M4_M4 = 1559,
+  PseudoVAESZ_VS_M4_MF2 = 1560,
+  PseudoVAESZ_VS_M4_MF4 = 1561,
+  PseudoVAESZ_VS_M4_MF8 = 1562,
+  PseudoVAESZ_VS_M8_M1 = 1563,
+  PseudoVAESZ_VS_M8_M2 = 1564,
+  PseudoVAESZ_VS_M8_M4 = 1565,
+  PseudoVAESZ_VS_M8_MF2 = 1566,
+  PseudoVAESZ_VS_M8_MF4 = 1567,
+  PseudoVAESZ_VS_M8_MF8 = 1568,
+  PseudoVAESZ_VS_MF2_MF2 = 1569,
+  PseudoVAESZ_VS_MF2_MF4 = 1570,
+  PseudoVAESZ_VS_MF2_MF8 = 1571,
+  PseudoVANDN_VV_M1 = 1572,
+  PseudoVANDN_VV_M1_MASK = 1573,
+  PseudoVANDN_VV_M2 = 1574,
+  PseudoVANDN_VV_M2_MASK = 1575,
+  PseudoVANDN_VV_M4 = 1576,
+  PseudoVANDN_VV_M4_MASK = 1577,
+  PseudoVANDN_VV_M8 = 1578,
+  PseudoVANDN_VV_M8_MASK = 1579,
+  PseudoVANDN_VV_MF2 = 1580,
+  PseudoVANDN_VV_MF2_MASK = 1581,
+  PseudoVANDN_VV_MF4 = 1582,
+  PseudoVANDN_VV_MF4_MASK = 1583,
+  PseudoVANDN_VV_MF8 = 1584,
+  PseudoVANDN_VV_MF8_MASK = 1585,
+  PseudoVANDN_VX_M1 = 1586,
+  PseudoVANDN_VX_M1_MASK = 1587,
+  PseudoVANDN_VX_M2 = 1588,
+  PseudoVANDN_VX_M2_MASK = 1589,
+  PseudoVANDN_VX_M4 = 1590,
+  PseudoVANDN_VX_M4_MASK = 1591,
+  PseudoVANDN_VX_M8 = 1592,
+  PseudoVANDN_VX_M8_MASK = 1593,
+  PseudoVANDN_VX_MF2 = 1594,
+  PseudoVANDN_VX_MF2_MASK = 1595,
+  PseudoVANDN_VX_MF4 = 1596,
+  PseudoVANDN_VX_MF4_MASK = 1597,
+  PseudoVANDN_VX_MF8 = 1598,
+  PseudoVANDN_VX_MF8_MASK = 1599,
+  PseudoVAND_VI_M1 = 1600,
+  PseudoVAND_VI_M1_MASK = 1601,
+  PseudoVAND_VI_M2 = 1602,
+  PseudoVAND_VI_M2_MASK = 1603,
+  PseudoVAND_VI_M4 = 1604,
+  PseudoVAND_VI_M4_MASK = 1605,
+  PseudoVAND_VI_M8 = 1606,
+  PseudoVAND_VI_M8_MASK = 1607,
+  PseudoVAND_VI_MF2 = 1608,
+  PseudoVAND_VI_MF2_MASK = 1609,
+  PseudoVAND_VI_MF4 = 1610,
+  PseudoVAND_VI_MF4_MASK = 1611,
+  PseudoVAND_VI_MF8 = 1612,
+  PseudoVAND_VI_MF8_MASK = 1613,
+  PseudoVAND_VV_M1 = 1614,
+  PseudoVAND_VV_M1_MASK = 1615,
+  PseudoVAND_VV_M2 = 1616,
+  PseudoVAND_VV_M2_MASK = 1617,
+  PseudoVAND_VV_M4 = 1618,
+  PseudoVAND_VV_M4_MASK = 1619,
+  PseudoVAND_VV_M8 = 1620,
+  PseudoVAND_VV_M8_MASK = 1621,
+  PseudoVAND_VV_MF2 = 1622,
+  PseudoVAND_VV_MF2_MASK = 1623,
+  PseudoVAND_VV_MF4 = 1624,
+  PseudoVAND_VV_MF4_MASK = 1625,
+  PseudoVAND_VV_MF8 = 1626,
+  PseudoVAND_VV_MF8_MASK = 1627,
+  PseudoVAND_VX_M1 = 1628,
+  PseudoVAND_VX_M1_MASK = 1629,
+  PseudoVAND_VX_M2 = 1630,
+  PseudoVAND_VX_M2_MASK = 1631,
+  PseudoVAND_VX_M4 = 1632,
+  PseudoVAND_VX_M4_MASK = 1633,
+  PseudoVAND_VX_M8 = 1634,
+  PseudoVAND_VX_M8_MASK = 1635,
+  PseudoVAND_VX_MF2 = 1636,
+  PseudoVAND_VX_MF2_MASK = 1637,
+  PseudoVAND_VX_MF4 = 1638,
+  PseudoVAND_VX_MF4_MASK = 1639,
+  PseudoVAND_VX_MF8 = 1640,
+  PseudoVAND_VX_MF8_MASK = 1641,
+  PseudoVASUBU_VV_M1 = 1642,
+  PseudoVASUBU_VV_M1_MASK = 1643,
+  PseudoVASUBU_VV_M2 = 1644,
+  PseudoVASUBU_VV_M2_MASK = 1645,
+  PseudoVASUBU_VV_M4 = 1646,
+  PseudoVASUBU_VV_M4_MASK = 1647,
+  PseudoVASUBU_VV_M8 = 1648,
+  PseudoVASUBU_VV_M8_MASK = 1649,
+  PseudoVASUBU_VV_MF2 = 1650,
+  PseudoVASUBU_VV_MF2_MASK = 1651,
+  PseudoVASUBU_VV_MF4 = 1652,
+  PseudoVASUBU_VV_MF4_MASK = 1653,
+  PseudoVASUBU_VV_MF8 = 1654,
+  PseudoVASUBU_VV_MF8_MASK = 1655,
+  PseudoVASUBU_VX_M1 = 1656,
+  PseudoVASUBU_VX_M1_MASK = 1657,
+  PseudoVASUBU_VX_M2 = 1658,
+  PseudoVASUBU_VX_M2_MASK = 1659,
+  PseudoVASUBU_VX_M4 = 1660,
+  PseudoVASUBU_VX_M4_MASK = 1661,
+  PseudoVASUBU_VX_M8 = 1662,
+  PseudoVASUBU_VX_M8_MASK = 1663,
+  PseudoVASUBU_VX_MF2 = 1664,
+  PseudoVASUBU_VX_MF2_MASK = 1665,
+  PseudoVASUBU_VX_MF4 = 1666,
+  PseudoVASUBU_VX_MF4_MASK = 1667,
+  PseudoVASUBU_VX_MF8 = 1668,
+  PseudoVASUBU_VX_MF8_MASK = 1669,
+  PseudoVASUB_VV_M1 = 1670,
+  PseudoVASUB_VV_M1_MASK = 1671,
+  PseudoVASUB_VV_M2 = 1672,
+  PseudoVASUB_VV_M2_MASK = 1673,
+  PseudoVASUB_VV_M4 = 1674,
+  PseudoVASUB_VV_M4_MASK = 1675,
+  PseudoVASUB_VV_M8 = 1676,
+  PseudoVASUB_VV_M8_MASK = 1677,
+  PseudoVASUB_VV_MF2 = 1678,
+  PseudoVASUB_VV_MF2_MASK = 1679,
+  PseudoVASUB_VV_MF4 = 1680,
+  PseudoVASUB_VV_MF4_MASK = 1681,
+  PseudoVASUB_VV_MF8 = 1682,
+  PseudoVASUB_VV_MF8_MASK = 1683,
+  PseudoVASUB_VX_M1 = 1684,
+  PseudoVASUB_VX_M1_MASK = 1685,
+  PseudoVASUB_VX_M2 = 1686,
+  PseudoVASUB_VX_M2_MASK = 1687,
+  PseudoVASUB_VX_M4 = 1688,
+  PseudoVASUB_VX_M4_MASK = 1689,
+  PseudoVASUB_VX_M8 = 1690,
+  PseudoVASUB_VX_M8_MASK = 1691,
+  PseudoVASUB_VX_MF2 = 1692,
+  PseudoVASUB_VX_MF2_MASK = 1693,
+  PseudoVASUB_VX_MF4 = 1694,
+  PseudoVASUB_VX_MF4_MASK = 1695,
+  PseudoVASUB_VX_MF8 = 1696,
+  PseudoVASUB_VX_MF8_MASK = 1697,
+  PseudoVBREV8_V_M1 = 1698,
+  PseudoVBREV8_V_M1_MASK = 1699,
+  PseudoVBREV8_V_M2 = 1700,
+  PseudoVBREV8_V_M2_MASK = 1701,
+  PseudoVBREV8_V_M4 = 1702,
+  PseudoVBREV8_V_M4_MASK = 1703,
+  PseudoVBREV8_V_M8 = 1704,
+  PseudoVBREV8_V_M8_MASK = 1705,
+  PseudoVBREV8_V_MF2 = 1706,
+  PseudoVBREV8_V_MF2_MASK = 1707,
+  PseudoVBREV8_V_MF4 = 1708,
+  PseudoVBREV8_V_MF4_MASK = 1709,
+  PseudoVBREV8_V_MF8 = 1710,
+  PseudoVBREV8_V_MF8_MASK = 1711,
+  PseudoVBREV_V_M1 = 1712,
+  PseudoVBREV_V_M1_MASK = 1713,
+  PseudoVBREV_V_M2 = 1714,
+  PseudoVBREV_V_M2_MASK = 1715,
+  PseudoVBREV_V_M4 = 1716,
+  PseudoVBREV_V_M4_MASK = 1717,
+  PseudoVBREV_V_M8 = 1718,
+  PseudoVBREV_V_M8_MASK = 1719,
+  PseudoVBREV_V_MF2 = 1720,
+  PseudoVBREV_V_MF2_MASK = 1721,
+  PseudoVBREV_V_MF4 = 1722,
+  PseudoVBREV_V_MF4_MASK = 1723,
+  PseudoVBREV_V_MF8 = 1724,
+  PseudoVBREV_V_MF8_MASK = 1725,
+  PseudoVCLMULH_VV_M1 = 1726,
+  PseudoVCLMULH_VV_M1_MASK = 1727,
+  PseudoVCLMULH_VV_M2 = 1728,
+  PseudoVCLMULH_VV_M2_MASK = 1729,
+  PseudoVCLMULH_VV_M4 = 1730,
+  PseudoVCLMULH_VV_M4_MASK = 1731,
+  PseudoVCLMULH_VV_M8 = 1732,
+  PseudoVCLMULH_VV_M8_MASK = 1733,
+  PseudoVCLMULH_VV_MF2 = 1734,
+  PseudoVCLMULH_VV_MF2_MASK = 1735,
+  PseudoVCLMULH_VV_MF4 = 1736,
+  PseudoVCLMULH_VV_MF4_MASK = 1737,
+  PseudoVCLMULH_VV_MF8 = 1738,
+  PseudoVCLMULH_VV_MF8_MASK = 1739,
+  PseudoVCLMULH_VX_M1 = 1740,
+  PseudoVCLMULH_VX_M1_MASK = 1741,
+  PseudoVCLMULH_VX_M2 = 1742,
+  PseudoVCLMULH_VX_M2_MASK = 1743,
+  PseudoVCLMULH_VX_M4 = 1744,
+  PseudoVCLMULH_VX_M4_MASK = 1745,
+  PseudoVCLMULH_VX_M8 = 1746,
+  PseudoVCLMULH_VX_M8_MASK = 1747,
+  PseudoVCLMULH_VX_MF2 = 1748,
+  PseudoVCLMULH_VX_MF2_MASK = 1749,
+  PseudoVCLMULH_VX_MF4 = 1750,
+  PseudoVCLMULH_VX_MF4_MASK = 1751,
+  PseudoVCLMULH_VX_MF8 = 1752,
+  PseudoVCLMULH_VX_MF8_MASK = 1753,
+  PseudoVCLMUL_VV_M1 = 1754,
+  PseudoVCLMUL_VV_M1_MASK = 1755,
+  PseudoVCLMUL_VV_M2 = 1756,
+  PseudoVCLMUL_VV_M2_MASK = 1757,
+  PseudoVCLMUL_VV_M4 = 1758,
+  PseudoVCLMUL_VV_M4_MASK = 1759,
+  PseudoVCLMUL_VV_M8 = 1760,
+  PseudoVCLMUL_VV_M8_MASK = 1761,
+  PseudoVCLMUL_VV_MF2 = 1762,
+  PseudoVCLMUL_VV_MF2_MASK = 1763,
+  PseudoVCLMUL_VV_MF4 = 1764,
+  PseudoVCLMUL_VV_MF4_MASK = 1765,
+  PseudoVCLMUL_VV_MF8 = 1766,
+  PseudoVCLMUL_VV_MF8_MASK = 1767,
+  PseudoVCLMUL_VX_M1 = 1768,
+  PseudoVCLMUL_VX_M1_MASK = 1769,
+  PseudoVCLMUL_VX_M2 = 1770,
+  PseudoVCLMUL_VX_M2_MASK = 1771,
+  PseudoVCLMUL_VX_M4 = 1772,
+  PseudoVCLMUL_VX_M4_MASK = 1773,
+  PseudoVCLMUL_VX_M8 = 1774,
+  PseudoVCLMUL_VX_M8_MASK = 1775,
+  PseudoVCLMUL_VX_MF2 = 1776,
+  PseudoVCLMUL_VX_MF2_MASK = 1777,
+  PseudoVCLMUL_VX_MF4 = 1778,
+  PseudoVCLMUL_VX_MF4_MASK = 1779,
+  PseudoVCLMUL_VX_MF8 = 1780,
+  PseudoVCLMUL_VX_MF8_MASK = 1781,
+  PseudoVCLZ_V_M1 = 1782,
+  PseudoVCLZ_V_M1_MASK = 1783,
+  PseudoVCLZ_V_M2 = 1784,
+  PseudoVCLZ_V_M2_MASK = 1785,
+  PseudoVCLZ_V_M4 = 1786,
+  PseudoVCLZ_V_M4_MASK = 1787,
+  PseudoVCLZ_V_M8 = 1788,
+  PseudoVCLZ_V_M8_MASK = 1789,
+  PseudoVCLZ_V_MF2 = 1790,
+  PseudoVCLZ_V_MF2_MASK = 1791,
+  PseudoVCLZ_V_MF4 = 1792,
+  PseudoVCLZ_V_MF4_MASK = 1793,
+  PseudoVCLZ_V_MF8 = 1794,
+  PseudoVCLZ_V_MF8_MASK = 1795,
+  PseudoVCOMPRESS_VM_M1_E16 = 1796,
+  PseudoVCOMPRESS_VM_M1_E32 = 1797,
+  PseudoVCOMPRESS_VM_M1_E64 = 1798,
+  PseudoVCOMPRESS_VM_M1_E8 = 1799,
+  PseudoVCOMPRESS_VM_M2_E16 = 1800,
+  PseudoVCOMPRESS_VM_M2_E32 = 1801,
+  PseudoVCOMPRESS_VM_M2_E64 = 1802,
+  PseudoVCOMPRESS_VM_M2_E8 = 1803,
+  PseudoVCOMPRESS_VM_M4_E16 = 1804,
+  PseudoVCOMPRESS_VM_M4_E32 = 1805,
+  PseudoVCOMPRESS_VM_M4_E64 = 1806,
+  PseudoVCOMPRESS_VM_M4_E8 = 1807,
+  PseudoVCOMPRESS_VM_M8_E16 = 1808,
+  PseudoVCOMPRESS_VM_M8_E32 = 1809,
+  PseudoVCOMPRESS_VM_M8_E64 = 1810,
+  PseudoVCOMPRESS_VM_M8_E8 = 1811,
+  PseudoVCOMPRESS_VM_MF2_E16 = 1812,
+  PseudoVCOMPRESS_VM_MF2_E32 = 1813,
+  PseudoVCOMPRESS_VM_MF2_E8 = 1814,
+  PseudoVCOMPRESS_VM_MF4_E16 = 1815,
+  PseudoVCOMPRESS_VM_MF4_E8 = 1816,
+  PseudoVCOMPRESS_VM_MF8_E8 = 1817,
+  PseudoVCPOP_M_B1 = 1818,
+  PseudoVCPOP_M_B16 = 1819,
+  PseudoVCPOP_M_B16_MASK = 1820,
+  PseudoVCPOP_M_B1_MASK = 1821,
+  PseudoVCPOP_M_B2 = 1822,
+  PseudoVCPOP_M_B2_MASK = 1823,
+  PseudoVCPOP_M_B32 = 1824,
+  PseudoVCPOP_M_B32_MASK = 1825,
+  PseudoVCPOP_M_B4 = 1826,
+  PseudoVCPOP_M_B4_MASK = 1827,
+  PseudoVCPOP_M_B64 = 1828,
+  PseudoVCPOP_M_B64_MASK = 1829,
+  PseudoVCPOP_M_B8 = 1830,
+  PseudoVCPOP_M_B8_MASK = 1831,
+  PseudoVCPOP_V_M1 = 1832,
+  PseudoVCPOP_V_M1_MASK = 1833,
+  PseudoVCPOP_V_M2 = 1834,
+  PseudoVCPOP_V_M2_MASK = 1835,
+  PseudoVCPOP_V_M4 = 1836,
+  PseudoVCPOP_V_M4_MASK = 1837,
+  PseudoVCPOP_V_M8 = 1838,
+  PseudoVCPOP_V_M8_MASK = 1839,
+  PseudoVCPOP_V_MF2 = 1840,
+  PseudoVCPOP_V_MF2_MASK = 1841,
+  PseudoVCPOP_V_MF4 = 1842,
+  PseudoVCPOP_V_MF4_MASK = 1843,
+  PseudoVCPOP_V_MF8 = 1844,
+  PseudoVCPOP_V_MF8_MASK = 1845,
+  PseudoVCTZ_V_M1 = 1846,
+  PseudoVCTZ_V_M1_MASK = 1847,
+  PseudoVCTZ_V_M2 = 1848,
+  PseudoVCTZ_V_M2_MASK = 1849,
+  PseudoVCTZ_V_M4 = 1850,
+  PseudoVCTZ_V_M4_MASK = 1851,
+  PseudoVCTZ_V_M8 = 1852,
+  PseudoVCTZ_V_M8_MASK = 1853,
+  PseudoVCTZ_V_MF2 = 1854,
+  PseudoVCTZ_V_MF2_MASK = 1855,
+  PseudoVCTZ_V_MF4 = 1856,
+  PseudoVCTZ_V_MF4_MASK = 1857,
+  PseudoVCTZ_V_MF8 = 1858,
+  PseudoVCTZ_V_MF8_MASK = 1859,
+  PseudoVDIVU_VV_M1_E16 = 1860,
+  PseudoVDIVU_VV_M1_E16_MASK = 1861,
+  PseudoVDIVU_VV_M1_E32 = 1862,
+  PseudoVDIVU_VV_M1_E32_MASK = 1863,
+  PseudoVDIVU_VV_M1_E64 = 1864,
+  PseudoVDIVU_VV_M1_E64_MASK = 1865,
+  PseudoVDIVU_VV_M1_E8 = 1866,
+  PseudoVDIVU_VV_M1_E8_MASK = 1867,
+  PseudoVDIVU_VV_M2_E16 = 1868,
+  PseudoVDIVU_VV_M2_E16_MASK = 1869,
+  PseudoVDIVU_VV_M2_E32 = 1870,
+  PseudoVDIVU_VV_M2_E32_MASK = 1871,
+  PseudoVDIVU_VV_M2_E64 = 1872,
+  PseudoVDIVU_VV_M2_E64_MASK = 1873,
+  PseudoVDIVU_VV_M2_E8 = 1874,
+  PseudoVDIVU_VV_M2_E8_MASK = 1875,
+  PseudoVDIVU_VV_M4_E16 = 1876,
+  PseudoVDIVU_VV_M4_E16_MASK = 1877,
+  PseudoVDIVU_VV_M4_E32 = 1878,
+  PseudoVDIVU_VV_M4_E32_MASK = 1879,
+  PseudoVDIVU_VV_M4_E64 = 1880,
+  PseudoVDIVU_VV_M4_E64_MASK = 1881,
+  PseudoVDIVU_VV_M4_E8 = 1882,
+  PseudoVDIVU_VV_M4_E8_MASK = 1883,
+  PseudoVDIVU_VV_M8_E16 = 1884,
+  PseudoVDIVU_VV_M8_E16_MASK = 1885,
+  PseudoVDIVU_VV_M8_E32 = 1886,
+  PseudoVDIVU_VV_M8_E32_MASK = 1887,
+  PseudoVDIVU_VV_M8_E64 = 1888,
+  PseudoVDIVU_VV_M8_E64_MASK = 1889,
+  PseudoVDIVU_VV_M8_E8 = 1890,
+  PseudoVDIVU_VV_M8_E8_MASK = 1891,
+  PseudoVDIVU_VV_MF2_E16 = 1892,
+  PseudoVDIVU_VV_MF2_E16_MASK = 1893,
+  PseudoVDIVU_VV_MF2_E32 = 1894,
+  PseudoVDIVU_VV_MF2_E32_MASK = 1895,
+  PseudoVDIVU_VV_MF2_E8 = 1896,
+  PseudoVDIVU_VV_MF2_E8_MASK = 1897,
+  PseudoVDIVU_VV_MF4_E16 = 1898,
+  PseudoVDIVU_VV_MF4_E16_MASK = 1899,
+  PseudoVDIVU_VV_MF4_E8 = 1900,
+  PseudoVDIVU_VV_MF4_E8_MASK = 1901,
+  PseudoVDIVU_VV_MF8_E8 = 1902,
+  PseudoVDIVU_VV_MF8_E8_MASK = 1903,
+  PseudoVDIVU_VX_M1_E16 = 1904,
+  PseudoVDIVU_VX_M1_E16_MASK = 1905,
+  PseudoVDIVU_VX_M1_E32 = 1906,
+  PseudoVDIVU_VX_M1_E32_MASK = 1907,
+  PseudoVDIVU_VX_M1_E64 = 1908,
+  PseudoVDIVU_VX_M1_E64_MASK = 1909,
+  PseudoVDIVU_VX_M1_E8 = 1910,
+  PseudoVDIVU_VX_M1_E8_MASK = 1911,
+  PseudoVDIVU_VX_M2_E16 = 1912,
+  PseudoVDIVU_VX_M2_E16_MASK = 1913,
+  PseudoVDIVU_VX_M2_E32 = 1914,
+  PseudoVDIVU_VX_M2_E32_MASK = 1915,
+  PseudoVDIVU_VX_M2_E64 = 1916,
+  PseudoVDIVU_VX_M2_E64_MASK = 1917,
+  PseudoVDIVU_VX_M2_E8 = 1918,
+  PseudoVDIVU_VX_M2_E8_MASK = 1919,
+  PseudoVDIVU_VX_M4_E16 = 1920,
+  PseudoVDIVU_VX_M4_E16_MASK = 1921,
+  PseudoVDIVU_VX_M4_E32 = 1922,
+  PseudoVDIVU_VX_M4_E32_MASK = 1923,
+  PseudoVDIVU_VX_M4_E64 = 1924,
+  PseudoVDIVU_VX_M4_E64_MASK = 1925,
+  PseudoVDIVU_VX_M4_E8 = 1926,
+  PseudoVDIVU_VX_M4_E8_MASK = 1927,
+  PseudoVDIVU_VX_M8_E16 = 1928,
+  PseudoVDIVU_VX_M8_E16_MASK = 1929,
+  PseudoVDIVU_VX_M8_E32 = 1930,
+  PseudoVDIVU_VX_M8_E32_MASK = 1931,
+  PseudoVDIVU_VX_M8_E64 = 1932,
+  PseudoVDIVU_VX_M8_E64_MASK = 1933,
+  PseudoVDIVU_VX_M8_E8 = 1934,
+  PseudoVDIVU_VX_M8_E8_MASK = 1935,
+  PseudoVDIVU_VX_MF2_E16 = 1936,
+  PseudoVDIVU_VX_MF2_E16_MASK = 1937,
+  PseudoVDIVU_VX_MF2_E32 = 1938,
+  PseudoVDIVU_VX_MF2_E32_MASK = 1939,
+  PseudoVDIVU_VX_MF2_E8 = 1940,
+  PseudoVDIVU_VX_MF2_E8_MASK = 1941,
+  PseudoVDIVU_VX_MF4_E16 = 1942,
+  PseudoVDIVU_VX_MF4_E16_MASK = 1943,
+  PseudoVDIVU_VX_MF4_E8 = 1944,
+  PseudoVDIVU_VX_MF4_E8_MASK = 1945,
+  PseudoVDIVU_VX_MF8_E8 = 1946,
+  PseudoVDIVU_VX_MF8_E8_MASK = 1947,
+  PseudoVDIV_VV_M1_E16 = 1948,
+  PseudoVDIV_VV_M1_E16_MASK = 1949,
+  PseudoVDIV_VV_M1_E32 = 1950,
+  PseudoVDIV_VV_M1_E32_MASK = 1951,
+  PseudoVDIV_VV_M1_E64 = 1952,
+  PseudoVDIV_VV_M1_E64_MASK = 1953,
+  PseudoVDIV_VV_M1_E8 = 1954,
+  PseudoVDIV_VV_M1_E8_MASK = 1955,
+  PseudoVDIV_VV_M2_E16 = 1956,
+  PseudoVDIV_VV_M2_E16_MASK = 1957,
+  PseudoVDIV_VV_M2_E32 = 1958,
+  PseudoVDIV_VV_M2_E32_MASK = 1959,
+  PseudoVDIV_VV_M2_E64 = 1960,
+  PseudoVDIV_VV_M2_E64_MASK = 1961,
+  PseudoVDIV_VV_M2_E8 = 1962,
+  PseudoVDIV_VV_M2_E8_MASK = 1963,
+  PseudoVDIV_VV_M4_E16 = 1964,
+  PseudoVDIV_VV_M4_E16_MASK = 1965,
+  PseudoVDIV_VV_M4_E32 = 1966,
+  PseudoVDIV_VV_M4_E32_MASK = 1967,
+  PseudoVDIV_VV_M4_E64 = 1968,
+  PseudoVDIV_VV_M4_E64_MASK = 1969,
+  PseudoVDIV_VV_M4_E8 = 1970,
+  PseudoVDIV_VV_M4_E8_MASK = 1971,
+  PseudoVDIV_VV_M8_E16 = 1972,
+  PseudoVDIV_VV_M8_E16_MASK = 1973,
+  PseudoVDIV_VV_M8_E32 = 1974,
+  PseudoVDIV_VV_M8_E32_MASK = 1975,
+  PseudoVDIV_VV_M8_E64 = 1976,
+  PseudoVDIV_VV_M8_E64_MASK = 1977,
+  PseudoVDIV_VV_M8_E8 = 1978,
+  PseudoVDIV_VV_M8_E8_MASK = 1979,
+  PseudoVDIV_VV_MF2_E16 = 1980,
+  PseudoVDIV_VV_MF2_E16_MASK = 1981,
+  PseudoVDIV_VV_MF2_E32 = 1982,
+  PseudoVDIV_VV_MF2_E32_MASK = 1983,
+  PseudoVDIV_VV_MF2_E8 = 1984,
+  PseudoVDIV_VV_MF2_E8_MASK = 1985,
+  PseudoVDIV_VV_MF4_E16 = 1986,
+  PseudoVDIV_VV_MF4_E16_MASK = 1987,
+  PseudoVDIV_VV_MF4_E8 = 1988,
+  PseudoVDIV_VV_MF4_E8_MASK = 1989,
+  PseudoVDIV_VV_MF8_E8 = 1990,
+  PseudoVDIV_VV_MF8_E8_MASK = 1991,
+  PseudoVDIV_VX_M1_E16 = 1992,
+  PseudoVDIV_VX_M1_E16_MASK = 1993,
+  PseudoVDIV_VX_M1_E32 = 1994,
+  PseudoVDIV_VX_M1_E32_MASK = 1995,
+  PseudoVDIV_VX_M1_E64 = 1996,
+  PseudoVDIV_VX_M1_E64_MASK = 1997,
+  PseudoVDIV_VX_M1_E8 = 1998,
+  PseudoVDIV_VX_M1_E8_MASK = 1999,
+  PseudoVDIV_VX_M2_E16 = 2000,
+  PseudoVDIV_VX_M2_E16_MASK = 2001,
+  PseudoVDIV_VX_M2_E32 = 2002,
+  PseudoVDIV_VX_M2_E32_MASK = 2003,
+  PseudoVDIV_VX_M2_E64 = 2004,
+  PseudoVDIV_VX_M2_E64_MASK = 2005,
+  PseudoVDIV_VX_M2_E8 = 2006,
+  PseudoVDIV_VX_M2_E8_MASK = 2007,
+  PseudoVDIV_VX_M4_E16 = 2008,
+  PseudoVDIV_VX_M4_E16_MASK = 2009,
+  PseudoVDIV_VX_M4_E32 = 2010,
+  PseudoVDIV_VX_M4_E32_MASK = 2011,
+  PseudoVDIV_VX_M4_E64 = 2012,
+  PseudoVDIV_VX_M4_E64_MASK = 2013,
+  PseudoVDIV_VX_M4_E8 = 2014,
+  PseudoVDIV_VX_M4_E8_MASK = 2015,
+  PseudoVDIV_VX_M8_E16 = 2016,
+  PseudoVDIV_VX_M8_E16_MASK = 2017,
+  PseudoVDIV_VX_M8_E32 = 2018,
+  PseudoVDIV_VX_M8_E32_MASK = 2019,
+  PseudoVDIV_VX_M8_E64 = 2020,
+  PseudoVDIV_VX_M8_E64_MASK = 2021,
+  PseudoVDIV_VX_M8_E8 = 2022,
+  PseudoVDIV_VX_M8_E8_MASK = 2023,
+  PseudoVDIV_VX_MF2_E16 = 2024,
+  PseudoVDIV_VX_MF2_E16_MASK = 2025,
+  PseudoVDIV_VX_MF2_E32 = 2026,
+  PseudoVDIV_VX_MF2_E32_MASK = 2027,
+  PseudoVDIV_VX_MF2_E8 = 2028,
+  PseudoVDIV_VX_MF2_E8_MASK = 2029,
+  PseudoVDIV_VX_MF4_E16 = 2030,
+  PseudoVDIV_VX_MF4_E16_MASK = 2031,
+  PseudoVDIV_VX_MF4_E8 = 2032,
+  PseudoVDIV_VX_MF4_E8_MASK = 2033,
+  PseudoVDIV_VX_MF8_E8 = 2034,
+  PseudoVDIV_VX_MF8_E8_MASK = 2035,
+  PseudoVFADD_ALT_VFPR16_M1_E16 = 2036,
+  PseudoVFADD_ALT_VFPR16_M1_E16_MASK = 2037,
+  PseudoVFADD_ALT_VFPR16_M2_E16 = 2038,
+  PseudoVFADD_ALT_VFPR16_M2_E16_MASK = 2039,
+  PseudoVFADD_ALT_VFPR16_M4_E16 = 2040,
+  PseudoVFADD_ALT_VFPR16_M4_E16_MASK = 2041,
+  PseudoVFADD_ALT_VFPR16_M8_E16 = 2042,
+  PseudoVFADD_ALT_VFPR16_M8_E16_MASK = 2043,
+  PseudoVFADD_ALT_VFPR16_MF2_E16 = 2044,
+  PseudoVFADD_ALT_VFPR16_MF2_E16_MASK = 2045,
+  PseudoVFADD_ALT_VFPR16_MF4_E16 = 2046,
+  PseudoVFADD_ALT_VFPR16_MF4_E16_MASK = 2047,
+  PseudoVFADD_ALT_VV_M1_E16 = 2048,
+  PseudoVFADD_ALT_VV_M1_E16_MASK = 2049,
+  PseudoVFADD_ALT_VV_M2_E16 = 2050,
+  PseudoVFADD_ALT_VV_M2_E16_MASK = 2051,
+  PseudoVFADD_ALT_VV_M4_E16 = 2052,
+  PseudoVFADD_ALT_VV_M4_E16_MASK = 2053,
+  PseudoVFADD_ALT_VV_M8_E16 = 2054,
+  PseudoVFADD_ALT_VV_M8_E16_MASK = 2055,
+  PseudoVFADD_ALT_VV_MF2_E16 = 2056,
+  PseudoVFADD_ALT_VV_MF2_E16_MASK = 2057,
+  PseudoVFADD_ALT_VV_MF4_E16 = 2058,
+  PseudoVFADD_ALT_VV_MF4_E16_MASK = 2059,
+  PseudoVFADD_VFPR16_M1_E16 = 2060,
+  PseudoVFADD_VFPR16_M1_E16_MASK = 2061,
+  PseudoVFADD_VFPR16_M2_E16 = 2062,
+  PseudoVFADD_VFPR16_M2_E16_MASK = 2063,
+  PseudoVFADD_VFPR16_M4_E16 = 2064,
+  PseudoVFADD_VFPR16_M4_E16_MASK = 2065,
+  PseudoVFADD_VFPR16_M8_E16 = 2066,
+  PseudoVFADD_VFPR16_M8_E16_MASK = 2067,
+  PseudoVFADD_VFPR16_MF2_E16 = 2068,
+  PseudoVFADD_VFPR16_MF2_E16_MASK = 2069,
+  PseudoVFADD_VFPR16_MF4_E16 = 2070,
+  PseudoVFADD_VFPR16_MF4_E16_MASK = 2071,
+  PseudoVFADD_VFPR32_M1_E32 = 2072,
+  PseudoVFADD_VFPR32_M1_E32_MASK = 2073,
+  PseudoVFADD_VFPR32_M2_E32 = 2074,
+  PseudoVFADD_VFPR32_M2_E32_MASK = 2075,
+  PseudoVFADD_VFPR32_M4_E32 = 2076,
+  PseudoVFADD_VFPR32_M4_E32_MASK = 2077,
+  PseudoVFADD_VFPR32_M8_E32 = 2078,
+  PseudoVFADD_VFPR32_M8_E32_MASK = 2079,
+  PseudoVFADD_VFPR32_MF2_E32 = 2080,
+  PseudoVFADD_VFPR32_MF2_E32_MASK = 2081,
+  PseudoVFADD_VFPR64_M1_E64 = 2082,
+  PseudoVFADD_VFPR64_M1_E64_MASK = 2083,
+  PseudoVFADD_VFPR64_M2_E64 = 2084,
+  PseudoVFADD_VFPR64_M2_E64_MASK = 2085,
+  PseudoVFADD_VFPR64_M4_E64 = 2086,
+  PseudoVFADD_VFPR64_M4_E64_MASK = 2087,
+  PseudoVFADD_VFPR64_M8_E64 = 2088,
+  PseudoVFADD_VFPR64_M8_E64_MASK = 2089,
+  PseudoVFADD_VV_M1_E16 = 2090,
+  PseudoVFADD_VV_M1_E16_MASK = 2091,
+  PseudoVFADD_VV_M1_E32 = 2092,
+  PseudoVFADD_VV_M1_E32_MASK = 2093,
+  PseudoVFADD_VV_M1_E64 = 2094,
+  PseudoVFADD_VV_M1_E64_MASK = 2095,
+  PseudoVFADD_VV_M2_E16 = 2096,
+  PseudoVFADD_VV_M2_E16_MASK = 2097,
+  PseudoVFADD_VV_M2_E32 = 2098,
+  PseudoVFADD_VV_M2_E32_MASK = 2099,
+  PseudoVFADD_VV_M2_E64 = 2100,
+  PseudoVFADD_VV_M2_E64_MASK = 2101,
+  PseudoVFADD_VV_M4_E16 = 2102,
+  PseudoVFADD_VV_M4_E16_MASK = 2103,
+  PseudoVFADD_VV_M4_E32 = 2104,
+  PseudoVFADD_VV_M4_E32_MASK = 2105,
+  PseudoVFADD_VV_M4_E64 = 2106,
+  PseudoVFADD_VV_M4_E64_MASK = 2107,
+  PseudoVFADD_VV_M8_E16 = 2108,
+  PseudoVFADD_VV_M8_E16_MASK = 2109,
+  PseudoVFADD_VV_M8_E32 = 2110,
+  PseudoVFADD_VV_M8_E32_MASK = 2111,
+  PseudoVFADD_VV_M8_E64 = 2112,
+  PseudoVFADD_VV_M8_E64_MASK = 2113,
+  PseudoVFADD_VV_MF2_E16 = 2114,
+  PseudoVFADD_VV_MF2_E16_MASK = 2115,
+  PseudoVFADD_VV_MF2_E32 = 2116,
+  PseudoVFADD_VV_MF2_E32_MASK = 2117,
+  PseudoVFADD_VV_MF4_E16 = 2118,
+  PseudoVFADD_VV_MF4_E16_MASK = 2119,
+  PseudoVFCLASS_ALT_V_M1 = 2120,
+  PseudoVFCLASS_ALT_V_M1_MASK = 2121,
+  PseudoVFCLASS_ALT_V_M2 = 2122,
+  PseudoVFCLASS_ALT_V_M2_MASK = 2123,
+  PseudoVFCLASS_ALT_V_M4 = 2124,
+  PseudoVFCLASS_ALT_V_M4_MASK = 2125,
+  PseudoVFCLASS_ALT_V_M8 = 2126,
+  PseudoVFCLASS_ALT_V_M8_MASK = 2127,
+  PseudoVFCLASS_ALT_V_MF2 = 2128,
+  PseudoVFCLASS_ALT_V_MF2_MASK = 2129,
+  PseudoVFCLASS_ALT_V_MF4 = 2130,
+  PseudoVFCLASS_ALT_V_MF4_MASK = 2131,
+  PseudoVFCLASS_V_M1 = 2132,
+  PseudoVFCLASS_V_M1_MASK = 2133,
+  PseudoVFCLASS_V_M2 = 2134,
+  PseudoVFCLASS_V_M2_MASK = 2135,
+  PseudoVFCLASS_V_M4 = 2136,
+  PseudoVFCLASS_V_M4_MASK = 2137,
+  PseudoVFCLASS_V_M8 = 2138,
+  PseudoVFCLASS_V_M8_MASK = 2139,
+  PseudoVFCLASS_V_MF2 = 2140,
+  PseudoVFCLASS_V_MF2_MASK = 2141,
+  PseudoVFCLASS_V_MF4 = 2142,
+  PseudoVFCLASS_V_MF4_MASK = 2143,
+  PseudoVFCVT_F_XU_V_M1_E16 = 2144,
+  PseudoVFCVT_F_XU_V_M1_E16_MASK = 2145,
+  PseudoVFCVT_F_XU_V_M1_E32 = 2146,
+  PseudoVFCVT_F_XU_V_M1_E32_MASK = 2147,
+  PseudoVFCVT_F_XU_V_M1_E64 = 2148,
+  PseudoVFCVT_F_XU_V_M1_E64_MASK = 2149,
+  PseudoVFCVT_F_XU_V_M2_E16 = 2150,
+  PseudoVFCVT_F_XU_V_M2_E16_MASK = 2151,
+  PseudoVFCVT_F_XU_V_M2_E32 = 2152,
+  PseudoVFCVT_F_XU_V_M2_E32_MASK = 2153,
+  PseudoVFCVT_F_XU_V_M2_E64 = 2154,
+  PseudoVFCVT_F_XU_V_M2_E64_MASK = 2155,
+  PseudoVFCVT_F_XU_V_M4_E16 = 2156,
+  PseudoVFCVT_F_XU_V_M4_E16_MASK = 2157,
+  PseudoVFCVT_F_XU_V_M4_E32 = 2158,
+  PseudoVFCVT_F_XU_V_M4_E32_MASK = 2159,
+  PseudoVFCVT_F_XU_V_M4_E64 = 2160,
+  PseudoVFCVT_F_XU_V_M4_E64_MASK = 2161,
+  PseudoVFCVT_F_XU_V_M8_E16 = 2162,
+  PseudoVFCVT_F_XU_V_M8_E16_MASK = 2163,
+  PseudoVFCVT_F_XU_V_M8_E32 = 2164,
+  PseudoVFCVT_F_XU_V_M8_E32_MASK = 2165,
+  PseudoVFCVT_F_XU_V_M8_E64 = 2166,
+  PseudoVFCVT_F_XU_V_M8_E64_MASK = 2167,
+  PseudoVFCVT_F_XU_V_MF2_E16 = 2168,
+  PseudoVFCVT_F_XU_V_MF2_E16_MASK = 2169,
+  PseudoVFCVT_F_XU_V_MF2_E32 = 2170,
+  PseudoVFCVT_F_XU_V_MF2_E32_MASK = 2171,
+  PseudoVFCVT_F_XU_V_MF4_E16 = 2172,
+  PseudoVFCVT_F_XU_V_MF4_E16_MASK = 2173,
+  PseudoVFCVT_F_X_V_M1_E16 = 2174,
+  PseudoVFCVT_F_X_V_M1_E16_MASK = 2175,
+  PseudoVFCVT_F_X_V_M1_E32 = 2176,
+  PseudoVFCVT_F_X_V_M1_E32_MASK = 2177,
+  PseudoVFCVT_F_X_V_M1_E64 = 2178,
+  PseudoVFCVT_F_X_V_M1_E64_MASK = 2179,
+  PseudoVFCVT_F_X_V_M2_E16 = 2180,
+  PseudoVFCVT_F_X_V_M2_E16_MASK = 2181,
+  PseudoVFCVT_F_X_V_M2_E32 = 2182,
+  PseudoVFCVT_F_X_V_M2_E32_MASK = 2183,
+  PseudoVFCVT_F_X_V_M2_E64 = 2184,
+  PseudoVFCVT_F_X_V_M2_E64_MASK = 2185,
+  PseudoVFCVT_F_X_V_M4_E16 = 2186,
+  PseudoVFCVT_F_X_V_M4_E16_MASK = 2187,
+  PseudoVFCVT_F_X_V_M4_E32 = 2188,
+  PseudoVFCVT_F_X_V_M4_E32_MASK = 2189,
+  PseudoVFCVT_F_X_V_M4_E64 = 2190,
+  PseudoVFCVT_F_X_V_M4_E64_MASK = 2191,
+  PseudoVFCVT_F_X_V_M8_E16 = 2192,
+  PseudoVFCVT_F_X_V_M8_E16_MASK = 2193,
+  PseudoVFCVT_F_X_V_M8_E32 = 2194,
+  PseudoVFCVT_F_X_V_M8_E32_MASK = 2195,
+  PseudoVFCVT_F_X_V_M8_E64 = 2196,
+  PseudoVFCVT_F_X_V_M8_E64_MASK = 2197,
+  PseudoVFCVT_F_X_V_MF2_E16 = 2198,
+  PseudoVFCVT_F_X_V_MF2_E16_MASK = 2199,
+  PseudoVFCVT_F_X_V_MF2_E32 = 2200,
+  PseudoVFCVT_F_X_V_MF2_E32_MASK = 2201,
+  PseudoVFCVT_F_X_V_MF4_E16 = 2202,
+  PseudoVFCVT_F_X_V_MF4_E16_MASK = 2203,
+  PseudoVFCVT_RTZ_XU_F_V_M1 = 2204,
+  PseudoVFCVT_RTZ_XU_F_V_M1_MASK = 2205,
+  PseudoVFCVT_RTZ_XU_F_V_M2 = 2206,
+  PseudoVFCVT_RTZ_XU_F_V_M2_MASK = 2207,
+  PseudoVFCVT_RTZ_XU_F_V_M4 = 2208,
+  PseudoVFCVT_RTZ_XU_F_V_M4_MASK = 2209,
+  PseudoVFCVT_RTZ_XU_F_V_M8 = 2210,
+  PseudoVFCVT_RTZ_XU_F_V_M8_MASK = 2211,
+  PseudoVFCVT_RTZ_XU_F_V_MF2 = 2212,
+  PseudoVFCVT_RTZ_XU_F_V_MF2_MASK = 2213,
+  PseudoVFCVT_RTZ_XU_F_V_MF4 = 2214,
+  PseudoVFCVT_RTZ_XU_F_V_MF4_MASK = 2215,
+  PseudoVFCVT_RTZ_X_F_V_M1 = 2216,
+  PseudoVFCVT_RTZ_X_F_V_M1_MASK = 2217,
+  PseudoVFCVT_RTZ_X_F_V_M2 = 2218,
+  PseudoVFCVT_RTZ_X_F_V_M2_MASK = 2219,
+  PseudoVFCVT_RTZ_X_F_V_M4 = 2220,
+  PseudoVFCVT_RTZ_X_F_V_M4_MASK = 2221,
+  PseudoVFCVT_RTZ_X_F_V_M8 = 2222,
+  PseudoVFCVT_RTZ_X_F_V_M8_MASK = 2223,
+  PseudoVFCVT_RTZ_X_F_V_MF2 = 2224,
+  PseudoVFCVT_RTZ_X_F_V_MF2_MASK = 2225,
+  PseudoVFCVT_RTZ_X_F_V_MF4 = 2226,
+  PseudoVFCVT_RTZ_X_F_V_MF4_MASK = 2227,
+  PseudoVFCVT_XU_F_V_M1 = 2228,
+  PseudoVFCVT_XU_F_V_M1_MASK = 2229,
+  PseudoVFCVT_XU_F_V_M2 = 2230,
+  PseudoVFCVT_XU_F_V_M2_MASK = 2231,
+  PseudoVFCVT_XU_F_V_M4 = 2232,
+  PseudoVFCVT_XU_F_V_M4_MASK = 2233,
+  PseudoVFCVT_XU_F_V_M8 = 2234,
+  PseudoVFCVT_XU_F_V_M8_MASK = 2235,
+  PseudoVFCVT_XU_F_V_MF2 = 2236,
+  PseudoVFCVT_XU_F_V_MF2_MASK = 2237,
+  PseudoVFCVT_XU_F_V_MF4 = 2238,
+  PseudoVFCVT_XU_F_V_MF4_MASK = 2239,
+  PseudoVFCVT_X_F_V_M1 = 2240,
+  PseudoVFCVT_X_F_V_M1_MASK = 2241,
+  PseudoVFCVT_X_F_V_M2 = 2242,
+  PseudoVFCVT_X_F_V_M2_MASK = 2243,
+  PseudoVFCVT_X_F_V_M4 = 2244,
+  PseudoVFCVT_X_F_V_M4_MASK = 2245,
+  PseudoVFCVT_X_F_V_M8 = 2246,
+  PseudoVFCVT_X_F_V_M8_MASK = 2247,
+  PseudoVFCVT_X_F_V_MF2 = 2248,
+  PseudoVFCVT_X_F_V_MF2_MASK = 2249,
+  PseudoVFCVT_X_F_V_MF4 = 2250,
+  PseudoVFCVT_X_F_V_MF4_MASK = 2251,
+  PseudoVFDIV_VFPR16_M1_E16 = 2252,
+  PseudoVFDIV_VFPR16_M1_E16_MASK = 2253,
+  PseudoVFDIV_VFPR16_M2_E16 = 2254,
+  PseudoVFDIV_VFPR16_M2_E16_MASK = 2255,
+  PseudoVFDIV_VFPR16_M4_E16 = 2256,
+  PseudoVFDIV_VFPR16_M4_E16_MASK = 2257,
+  PseudoVFDIV_VFPR16_M8_E16 = 2258,
+  PseudoVFDIV_VFPR16_M8_E16_MASK = 2259,
+  PseudoVFDIV_VFPR16_MF2_E16 = 2260,
+  PseudoVFDIV_VFPR16_MF2_E16_MASK = 2261,
+  PseudoVFDIV_VFPR16_MF4_E16 = 2262,
+  PseudoVFDIV_VFPR16_MF4_E16_MASK = 2263,
+  PseudoVFDIV_VFPR32_M1_E32 = 2264,
+  PseudoVFDIV_VFPR32_M1_E32_MASK = 2265,
+  PseudoVFDIV_VFPR32_M2_E32 = 2266,
+  PseudoVFDIV_VFPR32_M2_E32_MASK = 2267,
+  PseudoVFDIV_VFPR32_M4_E32 = 2268,
+  PseudoVFDIV_VFPR32_M4_E32_MASK = 2269,
+  PseudoVFDIV_VFPR32_M8_E32 = 2270,
+  PseudoVFDIV_VFPR32_M8_E32_MASK = 2271,
+  PseudoVFDIV_VFPR32_MF2_E32 = 2272,
+  PseudoVFDIV_VFPR32_MF2_E32_MASK = 2273,
+  PseudoVFDIV_VFPR64_M1_E64 = 2274,
+  PseudoVFDIV_VFPR64_M1_E64_MASK = 2275,
+  PseudoVFDIV_VFPR64_M2_E64 = 2276,
+  PseudoVFDIV_VFPR64_M2_E64_MASK = 2277,
+  PseudoVFDIV_VFPR64_M4_E64 = 2278,
+  PseudoVFDIV_VFPR64_M4_E64_MASK = 2279,
+  PseudoVFDIV_VFPR64_M8_E64 = 2280,
+  PseudoVFDIV_VFPR64_M8_E64_MASK = 2281,
+  PseudoVFDIV_VV_M1_E16 = 2282,
+  PseudoVFDIV_VV_M1_E16_MASK = 2283,
+  PseudoVFDIV_VV_M1_E32 = 2284,
+  PseudoVFDIV_VV_M1_E32_MASK = 2285,
+  PseudoVFDIV_VV_M1_E64 = 2286,
+  PseudoVFDIV_VV_M1_E64_MASK = 2287,
+  PseudoVFDIV_VV_M2_E16 = 2288,
+  PseudoVFDIV_VV_M2_E16_MASK = 2289,
+  PseudoVFDIV_VV_M2_E32 = 2290,
+  PseudoVFDIV_VV_M2_E32_MASK = 2291,
+  PseudoVFDIV_VV_M2_E64 = 2292,
+  PseudoVFDIV_VV_M2_E64_MASK = 2293,
+  PseudoVFDIV_VV_M4_E16 = 2294,
+  PseudoVFDIV_VV_M4_E16_MASK = 2295,
+  PseudoVFDIV_VV_M4_E32 = 2296,
+  PseudoVFDIV_VV_M4_E32_MASK = 2297,
+  PseudoVFDIV_VV_M4_E64 = 2298,
+  PseudoVFDIV_VV_M4_E64_MASK = 2299,
+  PseudoVFDIV_VV_M8_E16 = 2300,
+  PseudoVFDIV_VV_M8_E16_MASK = 2301,
+  PseudoVFDIV_VV_M8_E32 = 2302,
+  PseudoVFDIV_VV_M8_E32_MASK = 2303,
+  PseudoVFDIV_VV_M8_E64 = 2304,
+  PseudoVFDIV_VV_M8_E64_MASK = 2305,
+  PseudoVFDIV_VV_MF2_E16 = 2306,
+  PseudoVFDIV_VV_MF2_E16_MASK = 2307,
+  PseudoVFDIV_VV_MF2_E32 = 2308,
+  PseudoVFDIV_VV_MF2_E32_MASK = 2309,
+  PseudoVFDIV_VV_MF4_E16 = 2310,
+  PseudoVFDIV_VV_MF4_E16_MASK = 2311,
+  PseudoVFIRST_M_B1 = 2312,
+  PseudoVFIRST_M_B16 = 2313,
+  PseudoVFIRST_M_B16_MASK = 2314,
+  PseudoVFIRST_M_B1_MASK = 2315,
+  PseudoVFIRST_M_B2 = 2316,
+  PseudoVFIRST_M_B2_MASK = 2317,
+  PseudoVFIRST_M_B32 = 2318,
+  PseudoVFIRST_M_B32_MASK = 2319,
+  PseudoVFIRST_M_B4 = 2320,
+  PseudoVFIRST_M_B4_MASK = 2321,
+  PseudoVFIRST_M_B64 = 2322,
+  PseudoVFIRST_M_B64_MASK = 2323,
+  PseudoVFIRST_M_B8 = 2324,
+  PseudoVFIRST_M_B8_MASK = 2325,
+  PseudoVFMACC_ALT_VFPR16_M1_E16 = 2326,
+  PseudoVFMACC_ALT_VFPR16_M1_E16_MASK = 2327,
+  PseudoVFMACC_ALT_VFPR16_M2_E16 = 2328,
+  PseudoVFMACC_ALT_VFPR16_M2_E16_MASK = 2329,
+  PseudoVFMACC_ALT_VFPR16_M4_E16 = 2330,
+  PseudoVFMACC_ALT_VFPR16_M4_E16_MASK = 2331,
+  PseudoVFMACC_ALT_VFPR16_M8_E16 = 2332,
+  PseudoVFMACC_ALT_VFPR16_M8_E16_MASK = 2333,
+  PseudoVFMACC_ALT_VFPR16_MF2_E16 = 2334,
+  PseudoVFMACC_ALT_VFPR16_MF2_E16_MASK = 2335,
+  PseudoVFMACC_ALT_VFPR16_MF4_E16 = 2336,
+  PseudoVFMACC_ALT_VFPR16_MF4_E16_MASK = 2337,
+  PseudoVFMACC_ALT_VV_M1_E16 = 2338,
+  PseudoVFMACC_ALT_VV_M1_E16_MASK = 2339,
+  PseudoVFMACC_ALT_VV_M2_E16 = 2340,
+  PseudoVFMACC_ALT_VV_M2_E16_MASK = 2341,
+  PseudoVFMACC_ALT_VV_M4_E16 = 2342,
+  PseudoVFMACC_ALT_VV_M4_E16_MASK = 2343,
+  PseudoVFMACC_ALT_VV_M8_E16 = 2344,
+  PseudoVFMACC_ALT_VV_M8_E16_MASK = 2345,
+  PseudoVFMACC_ALT_VV_MF2_E16 = 2346,
+  PseudoVFMACC_ALT_VV_MF2_E16_MASK = 2347,
+  PseudoVFMACC_ALT_VV_MF4_E16 = 2348,
+  PseudoVFMACC_ALT_VV_MF4_E16_MASK = 2349,
+  PseudoVFMACC_VFPR16_M1_E16 = 2350,
+  PseudoVFMACC_VFPR16_M1_E16_MASK = 2351,
+  PseudoVFMACC_VFPR16_M2_E16 = 2352,
+  PseudoVFMACC_VFPR16_M2_E16_MASK = 2353,
+  PseudoVFMACC_VFPR16_M4_E16 = 2354,
+  PseudoVFMACC_VFPR16_M4_E16_MASK = 2355,
+  PseudoVFMACC_VFPR16_M8_E16 = 2356,
+  PseudoVFMACC_VFPR16_M8_E16_MASK = 2357,
+  PseudoVFMACC_VFPR16_MF2_E16 = 2358,
+  PseudoVFMACC_VFPR16_MF2_E16_MASK = 2359,
+  PseudoVFMACC_VFPR16_MF4_E16 = 2360,
+  PseudoVFMACC_VFPR16_MF4_E16_MASK = 2361,
+  PseudoVFMACC_VFPR32_M1_E32 = 2362,
+  PseudoVFMACC_VFPR32_M1_E32_MASK = 2363,
+  PseudoVFMACC_VFPR32_M2_E32 = 2364,
+  PseudoVFMACC_VFPR32_M2_E32_MASK = 2365,
+  PseudoVFMACC_VFPR32_M4_E32 = 2366,
+  PseudoVFMACC_VFPR32_M4_E32_MASK = 2367,
+  PseudoVFMACC_VFPR32_M8_E32 = 2368,
+  PseudoVFMACC_VFPR32_M8_E32_MASK = 2369,
+  PseudoVFMACC_VFPR32_MF2_E32 = 2370,
+  PseudoVFMACC_VFPR32_MF2_E32_MASK = 2371,
+  PseudoVFMACC_VFPR64_M1_E64 = 2372,
+  PseudoVFMACC_VFPR64_M1_E64_MASK = 2373,
+  PseudoVFMACC_VFPR64_M2_E64 = 2374,
+  PseudoVFMACC_VFPR64_M2_E64_MASK = 2375,
+  PseudoVFMACC_VFPR64_M4_E64 = 2376,
+  PseudoVFMACC_VFPR64_M4_E64_MASK = 2377,
+  PseudoVFMACC_VFPR64_M8_E64 = 2378,
+  PseudoVFMACC_VFPR64_M8_E64_MASK = 2379,
+  PseudoVFMACC_VV_M1_E16 = 2380,
+  PseudoVFMACC_VV_M1_E16_MASK = 2381,
+  PseudoVFMACC_VV_M1_E32 = 2382,
+  PseudoVFMACC_VV_M1_E32_MASK = 2383,
+  PseudoVFMACC_VV_M1_E64 = 2384,
+  PseudoVFMACC_VV_M1_E64_MASK = 2385,
+  PseudoVFMACC_VV_M2_E16 = 2386,
+  PseudoVFMACC_VV_M2_E16_MASK = 2387,
+  PseudoVFMACC_VV_M2_E32 = 2388,
+  PseudoVFMACC_VV_M2_E32_MASK = 2389,
+  PseudoVFMACC_VV_M2_E64 = 2390,
+  PseudoVFMACC_VV_M2_E64_MASK = 2391,
+  PseudoVFMACC_VV_M4_E16 = 2392,
+  PseudoVFMACC_VV_M4_E16_MASK = 2393,
+  PseudoVFMACC_VV_M4_E32 = 2394,
+  PseudoVFMACC_VV_M4_E32_MASK = 2395,
+  PseudoVFMACC_VV_M4_E64 = 2396,
+  PseudoVFMACC_VV_M4_E64_MASK = 2397,
+  PseudoVFMACC_VV_M8_E16 = 2398,
+  PseudoVFMACC_VV_M8_E16_MASK = 2399,
+  PseudoVFMACC_VV_M8_E32 = 2400,
+  PseudoVFMACC_VV_M8_E32_MASK = 2401,
+  PseudoVFMACC_VV_M8_E64 = 2402,
+  PseudoVFMACC_VV_M8_E64_MASK = 2403,
+  PseudoVFMACC_VV_MF2_E16 = 2404,
+  PseudoVFMACC_VV_MF2_E16_MASK = 2405,
+  PseudoVFMACC_VV_MF2_E32 = 2406,
+  PseudoVFMACC_VV_MF2_E32_MASK = 2407,
+  PseudoVFMACC_VV_MF4_E16 = 2408,
+  PseudoVFMACC_VV_MF4_E16_MASK = 2409,
+  PseudoVFMADD_ALT_VFPR16_M1_E16 = 2410,
+  PseudoVFMADD_ALT_VFPR16_M1_E16_MASK = 2411,
+  PseudoVFMADD_ALT_VFPR16_M2_E16 = 2412,
+  PseudoVFMADD_ALT_VFPR16_M2_E16_MASK = 2413,
+  PseudoVFMADD_ALT_VFPR16_M4_E16 = 2414,
+  PseudoVFMADD_ALT_VFPR16_M4_E16_MASK = 2415,
+  PseudoVFMADD_ALT_VFPR16_M8_E16 = 2416,
+  PseudoVFMADD_ALT_VFPR16_M8_E16_MASK = 2417,
+  PseudoVFMADD_ALT_VFPR16_MF2_E16 = 2418,
+  PseudoVFMADD_ALT_VFPR16_MF2_E16_MASK = 2419,
+  PseudoVFMADD_ALT_VFPR16_MF4_E16 = 2420,
+  PseudoVFMADD_ALT_VFPR16_MF4_E16_MASK = 2421,
+  PseudoVFMADD_ALT_VV_M1_E16 = 2422,
+  PseudoVFMADD_ALT_VV_M1_E16_MASK = 2423,
+  PseudoVFMADD_ALT_VV_M2_E16 = 2424,
+  PseudoVFMADD_ALT_VV_M2_E16_MASK = 2425,
+  PseudoVFMADD_ALT_VV_M4_E16 = 2426,
+  PseudoVFMADD_ALT_VV_M4_E16_MASK = 2427,
+  PseudoVFMADD_ALT_VV_M8_E16 = 2428,
+  PseudoVFMADD_ALT_VV_M8_E16_MASK = 2429,
+  PseudoVFMADD_ALT_VV_MF2_E16 = 2430,
+  PseudoVFMADD_ALT_VV_MF2_E16_MASK = 2431,
+  PseudoVFMADD_ALT_VV_MF4_E16 = 2432,
+  PseudoVFMADD_ALT_VV_MF4_E16_MASK = 2433,
+  PseudoVFMADD_VFPR16_M1_E16 = 2434,
+  PseudoVFMADD_VFPR16_M1_E16_MASK = 2435,
+  PseudoVFMADD_VFPR16_M2_E16 = 2436,
+  PseudoVFMADD_VFPR16_M2_E16_MASK = 2437,
+  PseudoVFMADD_VFPR16_M4_E16 = 2438,
+  PseudoVFMADD_VFPR16_M4_E16_MASK = 2439,
+  PseudoVFMADD_VFPR16_M8_E16 = 2440,
+  PseudoVFMADD_VFPR16_M8_E16_MASK = 2441,
+  PseudoVFMADD_VFPR16_MF2_E16 = 2442,
+  PseudoVFMADD_VFPR16_MF2_E16_MASK = 2443,
+  PseudoVFMADD_VFPR16_MF4_E16 = 2444,
+  PseudoVFMADD_VFPR16_MF4_E16_MASK = 2445,
+  PseudoVFMADD_VFPR32_M1_E32 = 2446,
+  PseudoVFMADD_VFPR32_M1_E32_MASK = 2447,
+  PseudoVFMADD_VFPR32_M2_E32 = 2448,
+  PseudoVFMADD_VFPR32_M2_E32_MASK = 2449,
+  PseudoVFMADD_VFPR32_M4_E32 = 2450,
+  PseudoVFMADD_VFPR32_M4_E32_MASK = 2451,
+  PseudoVFMADD_VFPR32_M8_E32 = 2452,
+  PseudoVFMADD_VFPR32_M8_E32_MASK = 2453,
+  PseudoVFMADD_VFPR32_MF2_E32 = 2454,
+  PseudoVFMADD_VFPR32_MF2_E32_MASK = 2455,
+  PseudoVFMADD_VFPR64_M1_E64 = 2456,
+  PseudoVFMADD_VFPR64_M1_E64_MASK = 2457,
+  PseudoVFMADD_VFPR64_M2_E64 = 2458,
+  PseudoVFMADD_VFPR64_M2_E64_MASK = 2459,
+  PseudoVFMADD_VFPR64_M4_E64 = 2460,
+  PseudoVFMADD_VFPR64_M4_E64_MASK = 2461,
+  PseudoVFMADD_VFPR64_M8_E64 = 2462,
+  PseudoVFMADD_VFPR64_M8_E64_MASK = 2463,
+  PseudoVFMADD_VV_M1_E16 = 2464,
+  PseudoVFMADD_VV_M1_E16_MASK = 2465,
+  PseudoVFMADD_VV_M1_E32 = 2466,
+  PseudoVFMADD_VV_M1_E32_MASK = 2467,
+  PseudoVFMADD_VV_M1_E64 = 2468,
+  PseudoVFMADD_VV_M1_E64_MASK = 2469,
+  PseudoVFMADD_VV_M2_E16 = 2470,
+  PseudoVFMADD_VV_M2_E16_MASK = 2471,
+  PseudoVFMADD_VV_M2_E32 = 2472,
+  PseudoVFMADD_VV_M2_E32_MASK = 2473,
+  PseudoVFMADD_VV_M2_E64 = 2474,
+  PseudoVFMADD_VV_M2_E64_MASK = 2475,
+  PseudoVFMADD_VV_M4_E16 = 2476,
+  PseudoVFMADD_VV_M4_E16_MASK = 2477,
+  PseudoVFMADD_VV_M4_E32 = 2478,
+  PseudoVFMADD_VV_M4_E32_MASK = 2479,
+  PseudoVFMADD_VV_M4_E64 = 2480,
+  PseudoVFMADD_VV_M4_E64_MASK = 2481,
+  PseudoVFMADD_VV_M8_E16 = 2482,
+  PseudoVFMADD_VV_M8_E16_MASK = 2483,
+  PseudoVFMADD_VV_M8_E32 = 2484,
+  PseudoVFMADD_VV_M8_E32_MASK = 2485,
+  PseudoVFMADD_VV_M8_E64 = 2486,
+  PseudoVFMADD_VV_M8_E64_MASK = 2487,
+  PseudoVFMADD_VV_MF2_E16 = 2488,
+  PseudoVFMADD_VV_MF2_E16_MASK = 2489,
+  PseudoVFMADD_VV_MF2_E32 = 2490,
+  PseudoVFMADD_VV_MF2_E32_MASK = 2491,
+  PseudoVFMADD_VV_MF4_E16 = 2492,
+  PseudoVFMADD_VV_MF4_E16_MASK = 2493,
+  PseudoVFMAX_ALT_VFPR16_M1_E16 = 2494,
+  PseudoVFMAX_ALT_VFPR16_M1_E16_MASK = 2495,
+  PseudoVFMAX_ALT_VFPR16_M2_E16 = 2496,
+  PseudoVFMAX_ALT_VFPR16_M2_E16_MASK = 2497,
+  PseudoVFMAX_ALT_VFPR16_M4_E16 = 2498,
+  PseudoVFMAX_ALT_VFPR16_M4_E16_MASK = 2499,
+  PseudoVFMAX_ALT_VFPR16_M8_E16 = 2500,
+  PseudoVFMAX_ALT_VFPR16_M8_E16_MASK = 2501,
+  PseudoVFMAX_ALT_VFPR16_MF2_E16 = 2502,
+  PseudoVFMAX_ALT_VFPR16_MF2_E16_MASK = 2503,
+  PseudoVFMAX_ALT_VFPR16_MF4_E16 = 2504,
+  PseudoVFMAX_ALT_VFPR16_MF4_E16_MASK = 2505,
+  PseudoVFMAX_ALT_VV_M1_E16 = 2506,
+  PseudoVFMAX_ALT_VV_M1_E16_MASK = 2507,
+  PseudoVFMAX_ALT_VV_M2_E16 = 2508,
+  PseudoVFMAX_ALT_VV_M2_E16_MASK = 2509,
+  PseudoVFMAX_ALT_VV_M4_E16 = 2510,
+  PseudoVFMAX_ALT_VV_M4_E16_MASK = 2511,
+  PseudoVFMAX_ALT_VV_M8_E16 = 2512,
+  PseudoVFMAX_ALT_VV_M8_E16_MASK = 2513,
+  PseudoVFMAX_ALT_VV_MF2_E16 = 2514,
+  PseudoVFMAX_ALT_VV_MF2_E16_MASK = 2515,
+  PseudoVFMAX_ALT_VV_MF4_E16 = 2516,
+  PseudoVFMAX_ALT_VV_MF4_E16_MASK = 2517,
+  PseudoVFMAX_VFPR16_M1_E16 = 2518,
+  PseudoVFMAX_VFPR16_M1_E16_MASK = 2519,
+  PseudoVFMAX_VFPR16_M2_E16 = 2520,
+  PseudoVFMAX_VFPR16_M2_E16_MASK = 2521,
+  PseudoVFMAX_VFPR16_M4_E16 = 2522,
+  PseudoVFMAX_VFPR16_M4_E16_MASK = 2523,
+  PseudoVFMAX_VFPR16_M8_E16 = 2524,
+  PseudoVFMAX_VFPR16_M8_E16_MASK = 2525,
+  PseudoVFMAX_VFPR16_MF2_E16 = 2526,
+  PseudoVFMAX_VFPR16_MF2_E16_MASK = 2527,
+  PseudoVFMAX_VFPR16_MF4_E16 = 2528,
+  PseudoVFMAX_VFPR16_MF4_E16_MASK = 2529,
+  PseudoVFMAX_VFPR32_M1_E32 = 2530,
+  PseudoVFMAX_VFPR32_M1_E32_MASK = 2531,
+  PseudoVFMAX_VFPR32_M2_E32 = 2532,
+  PseudoVFMAX_VFPR32_M2_E32_MASK = 2533,
+  PseudoVFMAX_VFPR32_M4_E32 = 2534,
+  PseudoVFMAX_VFPR32_M4_E32_MASK = 2535,
+  PseudoVFMAX_VFPR32_M8_E32 = 2536,
+  PseudoVFMAX_VFPR32_M8_E32_MASK = 2537,
+  PseudoVFMAX_VFPR32_MF2_E32 = 2538,
+  PseudoVFMAX_VFPR32_MF2_E32_MASK = 2539,
+  PseudoVFMAX_VFPR64_M1_E64 = 2540,
+  PseudoVFMAX_VFPR64_M1_E64_MASK = 2541,
+  PseudoVFMAX_VFPR64_M2_E64 = 2542,
+  PseudoVFMAX_VFPR64_M2_E64_MASK = 2543,
+  PseudoVFMAX_VFPR64_M4_E64 = 2544,
+  PseudoVFMAX_VFPR64_M4_E64_MASK = 2545,
+  PseudoVFMAX_VFPR64_M8_E64 = 2546,
+  PseudoVFMAX_VFPR64_M8_E64_MASK = 2547,
+  PseudoVFMAX_VV_M1_E16 = 2548,
+  PseudoVFMAX_VV_M1_E16_MASK = 2549,
+  PseudoVFMAX_VV_M1_E32 = 2550,
+  PseudoVFMAX_VV_M1_E32_MASK = 2551,
+  PseudoVFMAX_VV_M1_E64 = 2552,
+  PseudoVFMAX_VV_M1_E64_MASK = 2553,
+  PseudoVFMAX_VV_M2_E16 = 2554,
+  PseudoVFMAX_VV_M2_E16_MASK = 2555,
+  PseudoVFMAX_VV_M2_E32 = 2556,
+  PseudoVFMAX_VV_M2_E32_MASK = 2557,
+  PseudoVFMAX_VV_M2_E64 = 2558,
+  PseudoVFMAX_VV_M2_E64_MASK = 2559,
+  PseudoVFMAX_VV_M4_E16 = 2560,
+  PseudoVFMAX_VV_M4_E16_MASK = 2561,
+  PseudoVFMAX_VV_M4_E32 = 2562,
+  PseudoVFMAX_VV_M4_E32_MASK = 2563,
+  PseudoVFMAX_VV_M4_E64 = 2564,
+  PseudoVFMAX_VV_M4_E64_MASK = 2565,
+  PseudoVFMAX_VV_M8_E16 = 2566,
+  PseudoVFMAX_VV_M8_E16_MASK = 2567,
+  PseudoVFMAX_VV_M8_E32 = 2568,
+  PseudoVFMAX_VV_M8_E32_MASK = 2569,
+  PseudoVFMAX_VV_M8_E64 = 2570,
+  PseudoVFMAX_VV_M8_E64_MASK = 2571,
+  PseudoVFMAX_VV_MF2_E16 = 2572,
+  PseudoVFMAX_VV_MF2_E16_MASK = 2573,
+  PseudoVFMAX_VV_MF2_E32 = 2574,
+  PseudoVFMAX_VV_MF2_E32_MASK = 2575,
+  PseudoVFMAX_VV_MF4_E16 = 2576,
+  PseudoVFMAX_VV_MF4_E16_MASK = 2577,
+  PseudoVFMERGE_ALT_VFPR16M_M1 = 2578,
+  PseudoVFMERGE_ALT_VFPR16M_M2 = 2579,
+  PseudoVFMERGE_ALT_VFPR16M_M4 = 2580,
+  PseudoVFMERGE_ALT_VFPR16M_M8 = 2581,
+  PseudoVFMERGE_ALT_VFPR16M_MF2 = 2582,
+  PseudoVFMERGE_ALT_VFPR16M_MF4 = 2583,
+  PseudoVFMERGE_ALT_VFPR32M_M1 = 2584,
+  PseudoVFMERGE_ALT_VFPR32M_M2 = 2585,
+  PseudoVFMERGE_ALT_VFPR32M_M4 = 2586,
+  PseudoVFMERGE_ALT_VFPR32M_M8 = 2587,
+  PseudoVFMERGE_ALT_VFPR32M_MF2 = 2588,
+  PseudoVFMERGE_ALT_VFPR64M_M1 = 2589,
+  PseudoVFMERGE_ALT_VFPR64M_M2 = 2590,
+  PseudoVFMERGE_ALT_VFPR64M_M4 = 2591,
+  PseudoVFMERGE_ALT_VFPR64M_M8 = 2592,
+  PseudoVFMERGE_VFPR16M_M1 = 2593,
+  PseudoVFMERGE_VFPR16M_M2 = 2594,
+  PseudoVFMERGE_VFPR16M_M4 = 2595,
+  PseudoVFMERGE_VFPR16M_M8 = 2596,
+  PseudoVFMERGE_VFPR16M_MF2 = 2597,
+  PseudoVFMERGE_VFPR16M_MF4 = 2598,
+  PseudoVFMERGE_VFPR32M_M1 = 2599,
+  PseudoVFMERGE_VFPR32M_M2 = 2600,
+  PseudoVFMERGE_VFPR32M_M4 = 2601,
+  PseudoVFMERGE_VFPR32M_M8 = 2602,
+  PseudoVFMERGE_VFPR32M_MF2 = 2603,
+  PseudoVFMERGE_VFPR64M_M1 = 2604,
+  PseudoVFMERGE_VFPR64M_M2 = 2605,
+  PseudoVFMERGE_VFPR64M_M4 = 2606,
+  PseudoVFMERGE_VFPR64M_M8 = 2607,
+  PseudoVFMIN_ALT_VFPR16_M1_E16 = 2608,
+  PseudoVFMIN_ALT_VFPR16_M1_E16_MASK = 2609,
+  PseudoVFMIN_ALT_VFPR16_M2_E16 = 2610,
+  PseudoVFMIN_ALT_VFPR16_M2_E16_MASK = 2611,
+  PseudoVFMIN_ALT_VFPR16_M4_E16 = 2612,
+  PseudoVFMIN_ALT_VFPR16_M4_E16_MASK = 2613,
+  PseudoVFMIN_ALT_VFPR16_M8_E16 = 2614,
+  PseudoVFMIN_ALT_VFPR16_M8_E16_MASK = 2615,
+  PseudoVFMIN_ALT_VFPR16_MF2_E16 = 2616,
+  PseudoVFMIN_ALT_VFPR16_MF2_E16_MASK = 2617,
+  PseudoVFMIN_ALT_VFPR16_MF4_E16 = 2618,
+  PseudoVFMIN_ALT_VFPR16_MF4_E16_MASK = 2619,
+  PseudoVFMIN_ALT_VV_M1_E16 = 2620,
+  PseudoVFMIN_ALT_VV_M1_E16_MASK = 2621,
+  PseudoVFMIN_ALT_VV_M2_E16 = 2622,
+  PseudoVFMIN_ALT_VV_M2_E16_MASK = 2623,
+  PseudoVFMIN_ALT_VV_M4_E16 = 2624,
+  PseudoVFMIN_ALT_VV_M4_E16_MASK = 2625,
+  PseudoVFMIN_ALT_VV_M8_E16 = 2626,
+  PseudoVFMIN_ALT_VV_M8_E16_MASK = 2627,
+  PseudoVFMIN_ALT_VV_MF2_E16 = 2628,
+  PseudoVFMIN_ALT_VV_MF2_E16_MASK = 2629,
+  PseudoVFMIN_ALT_VV_MF4_E16 = 2630,
+  PseudoVFMIN_ALT_VV_MF4_E16_MASK = 2631,
+  PseudoVFMIN_VFPR16_M1_E16 = 2632,
+  PseudoVFMIN_VFPR16_M1_E16_MASK = 2633,
+  PseudoVFMIN_VFPR16_M2_E16 = 2634,
+  PseudoVFMIN_VFPR16_M2_E16_MASK = 2635,
+  PseudoVFMIN_VFPR16_M4_E16 = 2636,
+  PseudoVFMIN_VFPR16_M4_E16_MASK = 2637,
+  PseudoVFMIN_VFPR16_M8_E16 = 2638,
+  PseudoVFMIN_VFPR16_M8_E16_MASK = 2639,
+  PseudoVFMIN_VFPR16_MF2_E16 = 2640,
+  PseudoVFMIN_VFPR16_MF2_E16_MASK = 2641,
+  PseudoVFMIN_VFPR16_MF4_E16 = 2642,
+  PseudoVFMIN_VFPR16_MF4_E16_MASK = 2643,
+  PseudoVFMIN_VFPR32_M1_E32 = 2644,
+  PseudoVFMIN_VFPR32_M1_E32_MASK = 2645,
+  PseudoVFMIN_VFPR32_M2_E32 = 2646,
+  PseudoVFMIN_VFPR32_M2_E32_MASK = 2647,
+  PseudoVFMIN_VFPR32_M4_E32 = 2648,
+  PseudoVFMIN_VFPR32_M4_E32_MASK = 2649,
+  PseudoVFMIN_VFPR32_M8_E32 = 2650,
+  PseudoVFMIN_VFPR32_M8_E32_MASK = 2651,
+  PseudoVFMIN_VFPR32_MF2_E32 = 2652,
+  PseudoVFMIN_VFPR32_MF2_E32_MASK = 2653,
+  PseudoVFMIN_VFPR64_M1_E64 = 2654,
+  PseudoVFMIN_VFPR64_M1_E64_MASK = 2655,
+  PseudoVFMIN_VFPR64_M2_E64 = 2656,
+  PseudoVFMIN_VFPR64_M2_E64_MASK = 2657,
+  PseudoVFMIN_VFPR64_M4_E64 = 2658,
+  PseudoVFMIN_VFPR64_M4_E64_MASK = 2659,
+  PseudoVFMIN_VFPR64_M8_E64 = 2660,
+  PseudoVFMIN_VFPR64_M8_E64_MASK = 2661,
+  PseudoVFMIN_VV_M1_E16 = 2662,
+  PseudoVFMIN_VV_M1_E16_MASK = 2663,
+  PseudoVFMIN_VV_M1_E32 = 2664,
+  PseudoVFMIN_VV_M1_E32_MASK = 2665,
+  PseudoVFMIN_VV_M1_E64 = 2666,
+  PseudoVFMIN_VV_M1_E64_MASK = 2667,
+  PseudoVFMIN_VV_M2_E16 = 2668,
+  PseudoVFMIN_VV_M2_E16_MASK = 2669,
+  PseudoVFMIN_VV_M2_E32 = 2670,
+  PseudoVFMIN_VV_M2_E32_MASK = 2671,
+  PseudoVFMIN_VV_M2_E64 = 2672,
+  PseudoVFMIN_VV_M2_E64_MASK = 2673,
+  PseudoVFMIN_VV_M4_E16 = 2674,
+  PseudoVFMIN_VV_M4_E16_MASK = 2675,
+  PseudoVFMIN_VV_M4_E32 = 2676,
+  PseudoVFMIN_VV_M4_E32_MASK = 2677,
+  PseudoVFMIN_VV_M4_E64 = 2678,
+  PseudoVFMIN_VV_M4_E64_MASK = 2679,
+  PseudoVFMIN_VV_M8_E16 = 2680,
+  PseudoVFMIN_VV_M8_E16_MASK = 2681,
+  PseudoVFMIN_VV_M8_E32 = 2682,
+  PseudoVFMIN_VV_M8_E32_MASK = 2683,
+  PseudoVFMIN_VV_M8_E64 = 2684,
+  PseudoVFMIN_VV_M8_E64_MASK = 2685,
+  PseudoVFMIN_VV_MF2_E16 = 2686,
+  PseudoVFMIN_VV_MF2_E16_MASK = 2687,
+  PseudoVFMIN_VV_MF2_E32 = 2688,
+  PseudoVFMIN_VV_MF2_E32_MASK = 2689,
+  PseudoVFMIN_VV_MF4_E16 = 2690,
+  PseudoVFMIN_VV_MF4_E16_MASK = 2691,
+  PseudoVFMSAC_ALT_VFPR16_M1_E16 = 2692,
+  PseudoVFMSAC_ALT_VFPR16_M1_E16_MASK = 2693,
+  PseudoVFMSAC_ALT_VFPR16_M2_E16 = 2694,
+  PseudoVFMSAC_ALT_VFPR16_M2_E16_MASK = 2695,
+  PseudoVFMSAC_ALT_VFPR16_M4_E16 = 2696,
+  PseudoVFMSAC_ALT_VFPR16_M4_E16_MASK = 2697,
+  PseudoVFMSAC_ALT_VFPR16_M8_E16 = 2698,
+  PseudoVFMSAC_ALT_VFPR16_M8_E16_MASK = 2699,
+  PseudoVFMSAC_ALT_VFPR16_MF2_E16 = 2700,
+  PseudoVFMSAC_ALT_VFPR16_MF2_E16_MASK = 2701,
+  PseudoVFMSAC_ALT_VFPR16_MF4_E16 = 2702,
+  PseudoVFMSAC_ALT_VFPR16_MF4_E16_MASK = 2703,
+  PseudoVFMSAC_ALT_VV_M1_E16 = 2704,
+  PseudoVFMSAC_ALT_VV_M1_E16_MASK = 2705,
+  PseudoVFMSAC_ALT_VV_M2_E16 = 2706,
+  PseudoVFMSAC_ALT_VV_M2_E16_MASK = 2707,
+  PseudoVFMSAC_ALT_VV_M4_E16 = 2708,
+  PseudoVFMSAC_ALT_VV_M4_E16_MASK = 2709,
+  PseudoVFMSAC_ALT_VV_M8_E16 = 2710,
+  PseudoVFMSAC_ALT_VV_M8_E16_MASK = 2711,
+  PseudoVFMSAC_ALT_VV_MF2_E16 = 2712,
+  PseudoVFMSAC_ALT_VV_MF2_E16_MASK = 2713,
+  PseudoVFMSAC_ALT_VV_MF4_E16 = 2714,
+  PseudoVFMSAC_ALT_VV_MF4_E16_MASK = 2715,
+  PseudoVFMSAC_VFPR16_M1_E16 = 2716,
+  PseudoVFMSAC_VFPR16_M1_E16_MASK = 2717,
+  PseudoVFMSAC_VFPR16_M2_E16 = 2718,
+  PseudoVFMSAC_VFPR16_M2_E16_MASK = 2719,
+  PseudoVFMSAC_VFPR16_M4_E16 = 2720,
+  PseudoVFMSAC_VFPR16_M4_E16_MASK = 2721,
+  PseudoVFMSAC_VFPR16_M8_E16 = 2722,
+  PseudoVFMSAC_VFPR16_M8_E16_MASK = 2723,
+  PseudoVFMSAC_VFPR16_MF2_E16 = 2724,
+  PseudoVFMSAC_VFPR16_MF2_E16_MASK = 2725,
+  PseudoVFMSAC_VFPR16_MF4_E16 = 2726,
+  PseudoVFMSAC_VFPR16_MF4_E16_MASK = 2727,
+  PseudoVFMSAC_VFPR32_M1_E32 = 2728,
+  PseudoVFMSAC_VFPR32_M1_E32_MASK = 2729,
+  PseudoVFMSAC_VFPR32_M2_E32 = 2730,
+  PseudoVFMSAC_VFPR32_M2_E32_MASK = 2731,
+  PseudoVFMSAC_VFPR32_M4_E32 = 2732,
+  PseudoVFMSAC_VFPR32_M4_E32_MASK = 2733,
+  PseudoVFMSAC_VFPR32_M8_E32 = 2734,
+  PseudoVFMSAC_VFPR32_M8_E32_MASK = 2735,
+  PseudoVFMSAC_VFPR32_MF2_E32 = 2736,
+  PseudoVFMSAC_VFPR32_MF2_E32_MASK = 2737,
+  PseudoVFMSAC_VFPR64_M1_E64 = 2738,
+  PseudoVFMSAC_VFPR64_M1_E64_MASK = 2739,
+  PseudoVFMSAC_VFPR64_M2_E64 = 2740,
+  PseudoVFMSAC_VFPR64_M2_E64_MASK = 2741,
+  PseudoVFMSAC_VFPR64_M4_E64 = 2742,
+  PseudoVFMSAC_VFPR64_M4_E64_MASK = 2743,
+  PseudoVFMSAC_VFPR64_M8_E64 = 2744,
+  PseudoVFMSAC_VFPR64_M8_E64_MASK = 2745,
+  PseudoVFMSAC_VV_M1_E16 = 2746,
+  PseudoVFMSAC_VV_M1_E16_MASK = 2747,
+  PseudoVFMSAC_VV_M1_E32 = 2748,
+  PseudoVFMSAC_VV_M1_E32_MASK = 2749,
+  PseudoVFMSAC_VV_M1_E64 = 2750,
+  PseudoVFMSAC_VV_M1_E64_MASK = 2751,
+  PseudoVFMSAC_VV_M2_E16 = 2752,
+  PseudoVFMSAC_VV_M2_E16_MASK = 2753,
+  PseudoVFMSAC_VV_M2_E32 = 2754,
+  PseudoVFMSAC_VV_M2_E32_MASK = 2755,
+  PseudoVFMSAC_VV_M2_E64 = 2756,
+  PseudoVFMSAC_VV_M2_E64_MASK = 2757,
+  PseudoVFMSAC_VV_M4_E16 = 2758,
+  PseudoVFMSAC_VV_M4_E16_MASK = 2759,
+  PseudoVFMSAC_VV_M4_E32 = 2760,
+  PseudoVFMSAC_VV_M4_E32_MASK = 2761,
+  PseudoVFMSAC_VV_M4_E64 = 2762,
+  PseudoVFMSAC_VV_M4_E64_MASK = 2763,
+  PseudoVFMSAC_VV_M8_E16 = 2764,
+  PseudoVFMSAC_VV_M8_E16_MASK = 2765,
+  PseudoVFMSAC_VV_M8_E32 = 2766,
+  PseudoVFMSAC_VV_M8_E32_MASK = 2767,
+  PseudoVFMSAC_VV_M8_E64 = 2768,
+  PseudoVFMSAC_VV_M8_E64_MASK = 2769,
+  PseudoVFMSAC_VV_MF2_E16 = 2770,
+  PseudoVFMSAC_VV_MF2_E16_MASK = 2771,
+  PseudoVFMSAC_VV_MF2_E32 = 2772,
+  PseudoVFMSAC_VV_MF2_E32_MASK = 2773,
+  PseudoVFMSAC_VV_MF4_E16 = 2774,
+  PseudoVFMSAC_VV_MF4_E16_MASK = 2775,
+  PseudoVFMSUB_ALT_VFPR16_M1_E16 = 2776,
+  PseudoVFMSUB_ALT_VFPR16_M1_E16_MASK = 2777,
+  PseudoVFMSUB_ALT_VFPR16_M2_E16 = 2778,
+  PseudoVFMSUB_ALT_VFPR16_M2_E16_MASK = 2779,
+  PseudoVFMSUB_ALT_VFPR16_M4_E16 = 2780,
+  PseudoVFMSUB_ALT_VFPR16_M4_E16_MASK = 2781,
+  PseudoVFMSUB_ALT_VFPR16_M8_E16 = 2782,
+  PseudoVFMSUB_ALT_VFPR16_M8_E16_MASK = 2783,
+  PseudoVFMSUB_ALT_VFPR16_MF2_E16 = 2784,
+  PseudoVFMSUB_ALT_VFPR16_MF2_E16_MASK = 2785,
+  PseudoVFMSUB_ALT_VFPR16_MF4_E16 = 2786,
+  PseudoVFMSUB_ALT_VFPR16_MF4_E16_MASK = 2787,
+  PseudoVFMSUB_ALT_VV_M1_E16 = 2788,
+  PseudoVFMSUB_ALT_VV_M1_E16_MASK = 2789,
+  PseudoVFMSUB_ALT_VV_M2_E16 = 2790,
+  PseudoVFMSUB_ALT_VV_M2_E16_MASK = 2791,
+  PseudoVFMSUB_ALT_VV_M4_E16 = 2792,
+  PseudoVFMSUB_ALT_VV_M4_E16_MASK = 2793,
+  PseudoVFMSUB_ALT_VV_M8_E16 = 2794,
+  PseudoVFMSUB_ALT_VV_M8_E16_MASK = 2795,
+  PseudoVFMSUB_ALT_VV_MF2_E16 = 2796,
+  PseudoVFMSUB_ALT_VV_MF2_E16_MASK = 2797,
+  PseudoVFMSUB_ALT_VV_MF4_E16 = 2798,
+  PseudoVFMSUB_ALT_VV_MF4_E16_MASK = 2799,
+  PseudoVFMSUB_VFPR16_M1_E16 = 2800,
+  PseudoVFMSUB_VFPR16_M1_E16_MASK = 2801,
+  PseudoVFMSUB_VFPR16_M2_E16 = 2802,
+  PseudoVFMSUB_VFPR16_M2_E16_MASK = 2803,
+  PseudoVFMSUB_VFPR16_M4_E16 = 2804,
+  PseudoVFMSUB_VFPR16_M4_E16_MASK = 2805,
+  PseudoVFMSUB_VFPR16_M8_E16 = 2806,
+  PseudoVFMSUB_VFPR16_M8_E16_MASK = 2807,
+  PseudoVFMSUB_VFPR16_MF2_E16 = 2808,
+  PseudoVFMSUB_VFPR16_MF2_E16_MASK = 2809,
+  PseudoVFMSUB_VFPR16_MF4_E16 = 2810,
+  PseudoVFMSUB_VFPR16_MF4_E16_MASK = 2811,
+  PseudoVFMSUB_VFPR32_M1_E32 = 2812,
+  PseudoVFMSUB_VFPR32_M1_E32_MASK = 2813,
+  PseudoVFMSUB_VFPR32_M2_E32 = 2814,
+  PseudoVFMSUB_VFPR32_M2_E32_MASK = 2815,
+  PseudoVFMSUB_VFPR32_M4_E32 = 2816,
+  PseudoVFMSUB_VFPR32_M4_E32_MASK = 2817,
+  PseudoVFMSUB_VFPR32_M8_E32 = 2818,
+  PseudoVFMSUB_VFPR32_M8_E32_MASK = 2819,
+  PseudoVFMSUB_VFPR32_MF2_E32 = 2820,
+  PseudoVFMSUB_VFPR32_MF2_E32_MASK = 2821,
+  PseudoVFMSUB_VFPR64_M1_E64 = 2822,
+  PseudoVFMSUB_VFPR64_M1_E64_MASK = 2823,
+  PseudoVFMSUB_VFPR64_M2_E64 = 2824,
+  PseudoVFMSUB_VFPR64_M2_E64_MASK = 2825,
+  PseudoVFMSUB_VFPR64_M4_E64 = 2826,
+  PseudoVFMSUB_VFPR64_M4_E64_MASK = 2827,
+  PseudoVFMSUB_VFPR64_M8_E64 = 2828,
+  PseudoVFMSUB_VFPR64_M8_E64_MASK = 2829,
+  PseudoVFMSUB_VV_M1_E16 = 2830,
+  PseudoVFMSUB_VV_M1_E16_MASK = 2831,
+  PseudoVFMSUB_VV_M1_E32 = 2832,
+  PseudoVFMSUB_VV_M1_E32_MASK = 2833,
+  PseudoVFMSUB_VV_M1_E64 = 2834,
+  PseudoVFMSUB_VV_M1_E64_MASK = 2835,
+  PseudoVFMSUB_VV_M2_E16 = 2836,
+  PseudoVFMSUB_VV_M2_E16_MASK = 2837,
+  PseudoVFMSUB_VV_M2_E32 = 2838,
+  PseudoVFMSUB_VV_M2_E32_MASK = 2839,
+  PseudoVFMSUB_VV_M2_E64 = 2840,
+  PseudoVFMSUB_VV_M2_E64_MASK = 2841,
+  PseudoVFMSUB_VV_M4_E16 = 2842,
+  PseudoVFMSUB_VV_M4_E16_MASK = 2843,
+  PseudoVFMSUB_VV_M4_E32 = 2844,
+  PseudoVFMSUB_VV_M4_E32_MASK = 2845,
+  PseudoVFMSUB_VV_M4_E64 = 2846,
+  PseudoVFMSUB_VV_M4_E64_MASK = 2847,
+  PseudoVFMSUB_VV_M8_E16 = 2848,
+  PseudoVFMSUB_VV_M8_E16_MASK = 2849,
+  PseudoVFMSUB_VV_M8_E32 = 2850,
+  PseudoVFMSUB_VV_M8_E32_MASK = 2851,
+  PseudoVFMSUB_VV_M8_E64 = 2852,
+  PseudoVFMSUB_VV_M8_E64_MASK = 2853,
+  PseudoVFMSUB_VV_MF2_E16 = 2854,
+  PseudoVFMSUB_VV_MF2_E16_MASK = 2855,
+  PseudoVFMSUB_VV_MF2_E32 = 2856,
+  PseudoVFMSUB_VV_MF2_E32_MASK = 2857,
+  PseudoVFMSUB_VV_MF4_E16 = 2858,
+  PseudoVFMSUB_VV_MF4_E16_MASK = 2859,
+  PseudoVFMUL_ALT_VFPR16_M1_E16 = 2860,
+  PseudoVFMUL_ALT_VFPR16_M1_E16_MASK = 2861,
+  PseudoVFMUL_ALT_VFPR16_M2_E16 = 2862,
+  PseudoVFMUL_ALT_VFPR16_M2_E16_MASK = 2863,
+  PseudoVFMUL_ALT_VFPR16_M4_E16 = 2864,
+  PseudoVFMUL_ALT_VFPR16_M4_E16_MASK = 2865,
+  PseudoVFMUL_ALT_VFPR16_M8_E16 = 2866,
+  PseudoVFMUL_ALT_VFPR16_M8_E16_MASK = 2867,
+  PseudoVFMUL_ALT_VFPR16_MF2_E16 = 2868,
+  PseudoVFMUL_ALT_VFPR16_MF2_E16_MASK = 2869,
+  PseudoVFMUL_ALT_VFPR16_MF4_E16 = 2870,
+  PseudoVFMUL_ALT_VFPR16_MF4_E16_MASK = 2871,
+  PseudoVFMUL_ALT_VV_M1_E16 = 2872,
+  PseudoVFMUL_ALT_VV_M1_E16_MASK = 2873,
+  PseudoVFMUL_ALT_VV_M2_E16 = 2874,
+  PseudoVFMUL_ALT_VV_M2_E16_MASK = 2875,
+  PseudoVFMUL_ALT_VV_M4_E16 = 2876,
+  PseudoVFMUL_ALT_VV_M4_E16_MASK = 2877,
+  PseudoVFMUL_ALT_VV_M8_E16 = 2878,
+  PseudoVFMUL_ALT_VV_M8_E16_MASK = 2879,
+  PseudoVFMUL_ALT_VV_MF2_E16 = 2880,
+  PseudoVFMUL_ALT_VV_MF2_E16_MASK = 2881,
+  PseudoVFMUL_ALT_VV_MF4_E16 = 2882,
+  PseudoVFMUL_ALT_VV_MF4_E16_MASK = 2883,
+  PseudoVFMUL_VFPR16_M1_E16 = 2884,
+  PseudoVFMUL_VFPR16_M1_E16_MASK = 2885,
+  PseudoVFMUL_VFPR16_M2_E16 = 2886,
+  PseudoVFMUL_VFPR16_M2_E16_MASK = 2887,
+  PseudoVFMUL_VFPR16_M4_E16 = 2888,
+  PseudoVFMUL_VFPR16_M4_E16_MASK = 2889,
+  PseudoVFMUL_VFPR16_M8_E16 = 2890,
+  PseudoVFMUL_VFPR16_M8_E16_MASK = 2891,
+  PseudoVFMUL_VFPR16_MF2_E16 = 2892,
+  PseudoVFMUL_VFPR16_MF2_E16_MASK = 2893,
+  PseudoVFMUL_VFPR16_MF4_E16 = 2894,
+  PseudoVFMUL_VFPR16_MF4_E16_MASK = 2895,
+  PseudoVFMUL_VFPR32_M1_E32 = 2896,
+  PseudoVFMUL_VFPR32_M1_E32_MASK = 2897,
+  PseudoVFMUL_VFPR32_M2_E32 = 2898,
+  PseudoVFMUL_VFPR32_M2_E32_MASK = 2899,
+  PseudoVFMUL_VFPR32_M4_E32 = 2900,
+  PseudoVFMUL_VFPR32_M4_E32_MASK = 2901,
+  PseudoVFMUL_VFPR32_M8_E32 = 2902,
+  PseudoVFMUL_VFPR32_M8_E32_MASK = 2903,
+  PseudoVFMUL_VFPR32_MF2_E32 = 2904,
+  PseudoVFMUL_VFPR32_MF2_E32_MASK = 2905,
+  PseudoVFMUL_VFPR64_M1_E64 = 2906,
+  PseudoVFMUL_VFPR64_M1_E64_MASK = 2907,
+  PseudoVFMUL_VFPR64_M2_E64 = 2908,
+  PseudoVFMUL_VFPR64_M2_E64_MASK = 2909,
+  PseudoVFMUL_VFPR64_M4_E64 = 2910,
+  PseudoVFMUL_VFPR64_M4_E64_MASK = 2911,
+  PseudoVFMUL_VFPR64_M8_E64 = 2912,
+  PseudoVFMUL_VFPR64_M8_E64_MASK = 2913,
+  PseudoVFMUL_VV_M1_E16 = 2914,
+  PseudoVFMUL_VV_M1_E16_MASK = 2915,
+  PseudoVFMUL_VV_M1_E32 = 2916,
+  PseudoVFMUL_VV_M1_E32_MASK = 2917,
+  PseudoVFMUL_VV_M1_E64 = 2918,
+  PseudoVFMUL_VV_M1_E64_MASK = 2919,
+  PseudoVFMUL_VV_M2_E16 = 2920,
+  PseudoVFMUL_VV_M2_E16_MASK = 2921,
+  PseudoVFMUL_VV_M2_E32 = 2922,
+  PseudoVFMUL_VV_M2_E32_MASK = 2923,
+  PseudoVFMUL_VV_M2_E64 = 2924,
+  PseudoVFMUL_VV_M2_E64_MASK = 2925,
+  PseudoVFMUL_VV_M4_E16 = 2926,
+  PseudoVFMUL_VV_M4_E16_MASK = 2927,
+  PseudoVFMUL_VV_M4_E32 = 2928,
+  PseudoVFMUL_VV_M4_E32_MASK = 2929,
+  PseudoVFMUL_VV_M4_E64 = 2930,
+  PseudoVFMUL_VV_M4_E64_MASK = 2931,
+  PseudoVFMUL_VV_M8_E16 = 2932,
+  PseudoVFMUL_VV_M8_E16_MASK = 2933,
+  PseudoVFMUL_VV_M8_E32 = 2934,
+  PseudoVFMUL_VV_M8_E32_MASK = 2935,
+  PseudoVFMUL_VV_M8_E64 = 2936,
+  PseudoVFMUL_VV_M8_E64_MASK = 2937,
+  PseudoVFMUL_VV_MF2_E16 = 2938,
+  PseudoVFMUL_VV_MF2_E16_MASK = 2939,
+  PseudoVFMUL_VV_MF2_E32 = 2940,
+  PseudoVFMUL_VV_MF2_E32_MASK = 2941,
+  PseudoVFMUL_VV_MF4_E16 = 2942,
+  PseudoVFMUL_VV_MF4_E16_MASK = 2943,
+  PseudoVFMV_FPR16_S = 2944,
+  PseudoVFMV_FPR16_S_ALT = 2945,
+  PseudoVFMV_FPR32_S = 2946,
+  PseudoVFMV_FPR64_S = 2947,
+  PseudoVFMV_S_FPR16 = 2948,
+  PseudoVFMV_S_FPR16_ALT = 2949,
+  PseudoVFMV_S_FPR32 = 2950,
+  PseudoVFMV_S_FPR64 = 2951,
+  PseudoVFMV_V_ALT_FPR16_M1 = 2952,
+  PseudoVFMV_V_ALT_FPR16_M2 = 2953,
+  PseudoVFMV_V_ALT_FPR16_M4 = 2954,
+  PseudoVFMV_V_ALT_FPR16_M8 = 2955,
+  PseudoVFMV_V_ALT_FPR16_MF2 = 2956,
+  PseudoVFMV_V_ALT_FPR16_MF4 = 2957,
+  PseudoVFMV_V_ALT_FPR32_M1 = 2958,
+  PseudoVFMV_V_ALT_FPR32_M2 = 2959,
+  PseudoVFMV_V_ALT_FPR32_M4 = 2960,
+  PseudoVFMV_V_ALT_FPR32_M8 = 2961,
+  PseudoVFMV_V_ALT_FPR32_MF2 = 2962,
+  PseudoVFMV_V_ALT_FPR64_M1 = 2963,
+  PseudoVFMV_V_ALT_FPR64_M2 = 2964,
+  PseudoVFMV_V_ALT_FPR64_M4 = 2965,
+  PseudoVFMV_V_ALT_FPR64_M8 = 2966,
+  PseudoVFMV_V_FPR16_M1 = 2967,
+  PseudoVFMV_V_FPR16_M2 = 2968,
+  PseudoVFMV_V_FPR16_M4 = 2969,
+  PseudoVFMV_V_FPR16_M8 = 2970,
+  PseudoVFMV_V_FPR16_MF2 = 2971,
+  PseudoVFMV_V_FPR16_MF4 = 2972,
+  PseudoVFMV_V_FPR32_M1 = 2973,
+  PseudoVFMV_V_FPR32_M2 = 2974,
+  PseudoVFMV_V_FPR32_M4 = 2975,
+  PseudoVFMV_V_FPR32_M8 = 2976,
+  PseudoVFMV_V_FPR32_MF2 = 2977,
+  PseudoVFMV_V_FPR64_M1 = 2978,
+  PseudoVFMV_V_FPR64_M2 = 2979,
+  PseudoVFMV_V_FPR64_M4 = 2980,
+  PseudoVFMV_V_FPR64_M8 = 2981,
+  PseudoVFNCVTBF16_F_F_ALT_W_M1_E8 = 2982,
+  PseudoVFNCVTBF16_F_F_ALT_W_M1_E8_MASK = 2983,
+  PseudoVFNCVTBF16_F_F_ALT_W_M2_E8 = 2984,
+  PseudoVFNCVTBF16_F_F_ALT_W_M2_E8_MASK = 2985,
+  PseudoVFNCVTBF16_F_F_ALT_W_M4_E8 = 2986,
+  PseudoVFNCVTBF16_F_F_ALT_W_M4_E8_MASK = 2987,
+  PseudoVFNCVTBF16_F_F_ALT_W_MF2_E8 = 2988,
+  PseudoVFNCVTBF16_F_F_ALT_W_MF2_E8_MASK = 2989,
+  PseudoVFNCVTBF16_F_F_ALT_W_MF4_E8 = 2990,
+  PseudoVFNCVTBF16_F_F_ALT_W_MF4_E8_MASK = 2991,
+  PseudoVFNCVTBF16_F_F_ALT_W_MF8_E8 = 2992,
+  PseudoVFNCVTBF16_F_F_ALT_W_MF8_E8_MASK = 2993,
+  PseudoVFNCVTBF16_F_F_W_M1_E16 = 2994,
+  PseudoVFNCVTBF16_F_F_W_M1_E16_MASK = 2995,
+  PseudoVFNCVTBF16_F_F_W_M1_E32 = 2996,
+  PseudoVFNCVTBF16_F_F_W_M1_E32_MASK = 2997,
+  PseudoVFNCVTBF16_F_F_W_M1_E8 = 2998,
+  PseudoVFNCVTBF16_F_F_W_M1_E8_MASK = 2999,
+  PseudoVFNCVTBF16_F_F_W_M2_E16 = 3000,
+  PseudoVFNCVTBF16_F_F_W_M2_E16_MASK = 3001,
+  PseudoVFNCVTBF16_F_F_W_M2_E32 = 3002,
+  PseudoVFNCVTBF16_F_F_W_M2_E32_MASK = 3003,
+  PseudoVFNCVTBF16_F_F_W_M2_E8 = 3004,
+  PseudoVFNCVTBF16_F_F_W_M2_E8_MASK = 3005,
+  PseudoVFNCVTBF16_F_F_W_M4_E16 = 3006,
+  PseudoVFNCVTBF16_F_F_W_M4_E16_MASK = 3007,
+  PseudoVFNCVTBF16_F_F_W_M4_E32 = 3008,
+  PseudoVFNCVTBF16_F_F_W_M4_E32_MASK = 3009,
+  PseudoVFNCVTBF16_F_F_W_M4_E8 = 3010,
+  PseudoVFNCVTBF16_F_F_W_M4_E8_MASK = 3011,
+  PseudoVFNCVTBF16_F_F_W_MF2_E16 = 3012,
+  PseudoVFNCVTBF16_F_F_W_MF2_E16_MASK = 3013,
+  PseudoVFNCVTBF16_F_F_W_MF2_E32 = 3014,
+  PseudoVFNCVTBF16_F_F_W_MF2_E32_MASK = 3015,
+  PseudoVFNCVTBF16_F_F_W_MF2_E8 = 3016,
+  PseudoVFNCVTBF16_F_F_W_MF2_E8_MASK = 3017,
+  PseudoVFNCVTBF16_F_F_W_MF4_E16 = 3018,
+  PseudoVFNCVTBF16_F_F_W_MF4_E16_MASK = 3019,
+  PseudoVFNCVTBF16_F_F_W_MF4_E8 = 3020,
+  PseudoVFNCVTBF16_F_F_W_MF4_E8_MASK = 3021,
+  PseudoVFNCVTBF16_F_F_W_MF8_E8 = 3022,
+  PseudoVFNCVTBF16_F_F_W_MF8_E8_MASK = 3023,
+  PseudoVFNCVTBF16_SAT_F_F_ALT_W_M1_E8 = 3024,
+  PseudoVFNCVTBF16_SAT_F_F_ALT_W_M1_E8_MASK = 3025,
+  PseudoVFNCVTBF16_SAT_F_F_ALT_W_M2_E8 = 3026,
+  PseudoVFNCVTBF16_SAT_F_F_ALT_W_M2_E8_MASK = 3027,
+  PseudoVFNCVTBF16_SAT_F_F_ALT_W_M4_E8 = 3028,
+  PseudoVFNCVTBF16_SAT_F_F_ALT_W_M4_E8_MASK = 3029,
+  PseudoVFNCVTBF16_SAT_F_F_ALT_W_MF2_E8 = 3030,
+  PseudoVFNCVTBF16_SAT_F_F_ALT_W_MF2_E8_MASK = 3031,
+  PseudoVFNCVTBF16_SAT_F_F_ALT_W_MF4_E8 = 3032,
+  PseudoVFNCVTBF16_SAT_F_F_ALT_W_MF4_E8_MASK = 3033,
+  PseudoVFNCVTBF16_SAT_F_F_ALT_W_MF8_E8 = 3034,
+  PseudoVFNCVTBF16_SAT_F_F_ALT_W_MF8_E8_MASK = 3035,
+  PseudoVFNCVTBF16_SAT_F_F_W_M1_E8 = 3036,
+  PseudoVFNCVTBF16_SAT_F_F_W_M1_E8_MASK = 3037,
+  PseudoVFNCVTBF16_SAT_F_F_W_M2_E8 = 3038,
+  PseudoVFNCVTBF16_SAT_F_F_W_M2_E8_MASK = 3039,
+  PseudoVFNCVTBF16_SAT_F_F_W_M4_E8 = 3040,
+  PseudoVFNCVTBF16_SAT_F_F_W_M4_E8_MASK = 3041,
+  PseudoVFNCVTBF16_SAT_F_F_W_MF2_E8 = 3042,
+  PseudoVFNCVTBF16_SAT_F_F_W_MF2_E8_MASK = 3043,
+  PseudoVFNCVTBF16_SAT_F_F_W_MF4_E8 = 3044,
+  PseudoVFNCVTBF16_SAT_F_F_W_MF4_E8_MASK = 3045,
+  PseudoVFNCVTBF16_SAT_F_F_W_MF8_E8 = 3046,
+  PseudoVFNCVTBF16_SAT_F_F_W_MF8_E8_MASK = 3047,
+  PseudoVFNCVT_F_F_ALT_Q_M1_E8 = 3048,
+  PseudoVFNCVT_F_F_ALT_Q_M1_E8_MASK = 3049,
+  PseudoVFNCVT_F_F_ALT_Q_M2_E8 = 3050,
+  PseudoVFNCVT_F_F_ALT_Q_M2_E8_MASK = 3051,
+  PseudoVFNCVT_F_F_ALT_Q_MF2_E8 = 3052,
+  PseudoVFNCVT_F_F_ALT_Q_MF2_E8_MASK = 3053,
+  PseudoVFNCVT_F_F_ALT_Q_MF4_E8 = 3054,
+  PseudoVFNCVT_F_F_ALT_Q_MF4_E8_MASK = 3055,
+  PseudoVFNCVT_F_F_ALT_Q_MF8_E8 = 3056,
+  PseudoVFNCVT_F_F_ALT_Q_MF8_E8_MASK = 3057,
+  PseudoVFNCVT_F_F_ALT_W_M1_E16 = 3058,
+  PseudoVFNCVT_F_F_ALT_W_M1_E16_MASK = 3059,
+  PseudoVFNCVT_F_F_ALT_W_M2_E16 = 3060,
+  PseudoVFNCVT_F_F_ALT_W_M2_E16_MASK = 3061,
+  PseudoVFNCVT_F_F_ALT_W_M4_E16 = 3062,
+  PseudoVFNCVT_F_F_ALT_W_M4_E16_MASK = 3063,
+  PseudoVFNCVT_F_F_ALT_W_MF2_E16 = 3064,
+  PseudoVFNCVT_F_F_ALT_W_MF2_E16_MASK = 3065,
+  PseudoVFNCVT_F_F_ALT_W_MF4_E16 = 3066,
+  PseudoVFNCVT_F_F_ALT_W_MF4_E16_MASK = 3067,
+  PseudoVFNCVT_F_F_Q_M1_E8 = 3068,
+  PseudoVFNCVT_F_F_Q_M1_E8_MASK = 3069,
+  PseudoVFNCVT_F_F_Q_M2_E8 = 3070,
+  PseudoVFNCVT_F_F_Q_M2_E8_MASK = 3071,
+  PseudoVFNCVT_F_F_Q_MF2_E8 = 3072,
+  PseudoVFNCVT_F_F_Q_MF2_E8_MASK = 3073,
+  PseudoVFNCVT_F_F_Q_MF4_E8 = 3074,
+  PseudoVFNCVT_F_F_Q_MF4_E8_MASK = 3075,
+  PseudoVFNCVT_F_F_Q_MF8_E8 = 3076,
+  PseudoVFNCVT_F_F_Q_MF8_E8_MASK = 3077,
+  PseudoVFNCVT_F_F_W_M1_E16 = 3078,
+  PseudoVFNCVT_F_F_W_M1_E16_MASK = 3079,
+  PseudoVFNCVT_F_F_W_M1_E32 = 3080,
+  PseudoVFNCVT_F_F_W_M1_E32_MASK = 3081,
+  PseudoVFNCVT_F_F_W_M2_E16 = 3082,
+  PseudoVFNCVT_F_F_W_M2_E16_MASK = 3083,
+  PseudoVFNCVT_F_F_W_M2_E32 = 3084,
+  PseudoVFNCVT_F_F_W_M2_E32_MASK = 3085,
+  PseudoVFNCVT_F_F_W_M4_E16 = 3086,
+  PseudoVFNCVT_F_F_W_M4_E16_MASK = 3087,
+  PseudoVFNCVT_F_F_W_M4_E32 = 3088,
+  PseudoVFNCVT_F_F_W_M4_E32_MASK = 3089,
+  PseudoVFNCVT_F_F_W_MF2_E16 = 3090,
+  PseudoVFNCVT_F_F_W_MF2_E16_MASK = 3091,
+  PseudoVFNCVT_F_F_W_MF2_E32 = 3092,
+  PseudoVFNCVT_F_F_W_MF2_E32_MASK = 3093,
+  PseudoVFNCVT_F_F_W_MF4_E16 = 3094,
+  PseudoVFNCVT_F_F_W_MF4_E16_MASK = 3095,
+  PseudoVFNCVT_F_XU_W_M1_E16 = 3096,
+  PseudoVFNCVT_F_XU_W_M1_E16_MASK = 3097,
+  PseudoVFNCVT_F_XU_W_M1_E32 = 3098,
+  PseudoVFNCVT_F_XU_W_M1_E32_MASK = 3099,
+  PseudoVFNCVT_F_XU_W_M2_E16 = 3100,
+  PseudoVFNCVT_F_XU_W_M2_E16_MASK = 3101,
+  PseudoVFNCVT_F_XU_W_M2_E32 = 3102,
+  PseudoVFNCVT_F_XU_W_M2_E32_MASK = 3103,
+  PseudoVFNCVT_F_XU_W_M4_E16 = 3104,
+  PseudoVFNCVT_F_XU_W_M4_E16_MASK = 3105,
+  PseudoVFNCVT_F_XU_W_M4_E32 = 3106,
+  PseudoVFNCVT_F_XU_W_M4_E32_MASK = 3107,
+  PseudoVFNCVT_F_XU_W_MF2_E16 = 3108,
+  PseudoVFNCVT_F_XU_W_MF2_E16_MASK = 3109,
+  PseudoVFNCVT_F_XU_W_MF2_E32 = 3110,
+  PseudoVFNCVT_F_XU_W_MF2_E32_MASK = 3111,
+  PseudoVFNCVT_F_XU_W_MF4_E16 = 3112,
+  PseudoVFNCVT_F_XU_W_MF4_E16_MASK = 3113,
+  PseudoVFNCVT_F_X_W_M1_E16 = 3114,
+  PseudoVFNCVT_F_X_W_M1_E16_MASK = 3115,
+  PseudoVFNCVT_F_X_W_M1_E32 = 3116,
+  PseudoVFNCVT_F_X_W_M1_E32_MASK = 3117,
+  PseudoVFNCVT_F_X_W_M2_E16 = 3118,
+  PseudoVFNCVT_F_X_W_M2_E16_MASK = 3119,
+  PseudoVFNCVT_F_X_W_M2_E32 = 3120,
+  PseudoVFNCVT_F_X_W_M2_E32_MASK = 3121,
+  PseudoVFNCVT_F_X_W_M4_E16 = 3122,
+  PseudoVFNCVT_F_X_W_M4_E16_MASK = 3123,
+  PseudoVFNCVT_F_X_W_M4_E32 = 3124,
+  PseudoVFNCVT_F_X_W_M4_E32_MASK = 3125,
+  PseudoVFNCVT_F_X_W_MF2_E16 = 3126,
+  PseudoVFNCVT_F_X_W_MF2_E16_MASK = 3127,
+  PseudoVFNCVT_F_X_W_MF2_E32 = 3128,
+  PseudoVFNCVT_F_X_W_MF2_E32_MASK = 3129,
+  PseudoVFNCVT_F_X_W_MF4_E16 = 3130,
+  PseudoVFNCVT_F_X_W_MF4_E16_MASK = 3131,
+  PseudoVFNCVT_ROD_F_F_ALT_W_M1_E16 = 3132,
+  PseudoVFNCVT_ROD_F_F_ALT_W_M1_E16_MASK = 3133,
+  PseudoVFNCVT_ROD_F_F_ALT_W_M2_E16 = 3134,
+  PseudoVFNCVT_ROD_F_F_ALT_W_M2_E16_MASK = 3135,
+  PseudoVFNCVT_ROD_F_F_ALT_W_M4_E16 = 3136,
+  PseudoVFNCVT_ROD_F_F_ALT_W_M4_E16_MASK = 3137,
+  PseudoVFNCVT_ROD_F_F_ALT_W_MF2_E16 = 3138,
+  PseudoVFNCVT_ROD_F_F_ALT_W_MF2_E16_MASK = 3139,
+  PseudoVFNCVT_ROD_F_F_ALT_W_MF4_E16 = 3140,
+  PseudoVFNCVT_ROD_F_F_ALT_W_MF4_E16_MASK = 3141,
+  PseudoVFNCVT_ROD_F_F_W_M1_E16 = 3142,
+  PseudoVFNCVT_ROD_F_F_W_M1_E16_MASK = 3143,
+  PseudoVFNCVT_ROD_F_F_W_M1_E32 = 3144,
+  PseudoVFNCVT_ROD_F_F_W_M1_E32_MASK = 3145,
+  PseudoVFNCVT_ROD_F_F_W_M2_E16 = 3146,
+  PseudoVFNCVT_ROD_F_F_W_M2_E16_MASK = 3147,
+  PseudoVFNCVT_ROD_F_F_W_M2_E32 = 3148,
+  PseudoVFNCVT_ROD_F_F_W_M2_E32_MASK = 3149,
+  PseudoVFNCVT_ROD_F_F_W_M4_E16 = 3150,
+  PseudoVFNCVT_ROD_F_F_W_M4_E16_MASK = 3151,
+  PseudoVFNCVT_ROD_F_F_W_M4_E32 = 3152,
+  PseudoVFNCVT_ROD_F_F_W_M4_E32_MASK = 3153,
+  PseudoVFNCVT_ROD_F_F_W_MF2_E16 = 3154,
+  PseudoVFNCVT_ROD_F_F_W_MF2_E16_MASK = 3155,
+  PseudoVFNCVT_ROD_F_F_W_MF2_E32 = 3156,
+  PseudoVFNCVT_ROD_F_F_W_MF2_E32_MASK = 3157,
+  PseudoVFNCVT_ROD_F_F_W_MF4_E16 = 3158,
+  PseudoVFNCVT_ROD_F_F_W_MF4_E16_MASK = 3159,
+  PseudoVFNCVT_RTZ_XU_F_ALT_W_M1 = 3160,
+  PseudoVFNCVT_RTZ_XU_F_ALT_W_M1_MASK = 3161,
+  PseudoVFNCVT_RTZ_XU_F_ALT_W_M2 = 3162,
+  PseudoVFNCVT_RTZ_XU_F_ALT_W_M2_MASK = 3163,
+  PseudoVFNCVT_RTZ_XU_F_ALT_W_M4 = 3164,
+  PseudoVFNCVT_RTZ_XU_F_ALT_W_M4_MASK = 3165,
+  PseudoVFNCVT_RTZ_XU_F_ALT_W_MF2 = 3166,
+  PseudoVFNCVT_RTZ_XU_F_ALT_W_MF2_MASK = 3167,
+  PseudoVFNCVT_RTZ_XU_F_ALT_W_MF4 = 3168,
+  PseudoVFNCVT_RTZ_XU_F_ALT_W_MF4_MASK = 3169,
+  PseudoVFNCVT_RTZ_XU_F_ALT_W_MF8 = 3170,
+  PseudoVFNCVT_RTZ_XU_F_ALT_W_MF8_MASK = 3171,
+  PseudoVFNCVT_RTZ_XU_F_W_M1 = 3172,
+  PseudoVFNCVT_RTZ_XU_F_W_M1_MASK = 3173,
+  PseudoVFNCVT_RTZ_XU_F_W_M2 = 3174,
+  PseudoVFNCVT_RTZ_XU_F_W_M2_MASK = 3175,
+  PseudoVFNCVT_RTZ_XU_F_W_M4 = 3176,
+  PseudoVFNCVT_RTZ_XU_F_W_M4_MASK = 3177,
+  PseudoVFNCVT_RTZ_XU_F_W_MF2 = 3178,
+  PseudoVFNCVT_RTZ_XU_F_W_MF2_MASK = 3179,
+  PseudoVFNCVT_RTZ_XU_F_W_MF4 = 3180,
+  PseudoVFNCVT_RTZ_XU_F_W_MF4_MASK = 3181,
+  PseudoVFNCVT_RTZ_XU_F_W_MF8 = 3182,
+  PseudoVFNCVT_RTZ_XU_F_W_MF8_MASK = 3183,
+  PseudoVFNCVT_RTZ_X_F_ALT_W_M1 = 3184,
+  PseudoVFNCVT_RTZ_X_F_ALT_W_M1_MASK = 3185,
+  PseudoVFNCVT_RTZ_X_F_ALT_W_M2 = 3186,
+  PseudoVFNCVT_RTZ_X_F_ALT_W_M2_MASK = 3187,
+  PseudoVFNCVT_RTZ_X_F_ALT_W_M4 = 3188,
+  PseudoVFNCVT_RTZ_X_F_ALT_W_M4_MASK = 3189,
+  PseudoVFNCVT_RTZ_X_F_ALT_W_MF2 = 3190,
+  PseudoVFNCVT_RTZ_X_F_ALT_W_MF2_MASK = 3191,
+  PseudoVFNCVT_RTZ_X_F_ALT_W_MF4 = 3192,
+  PseudoVFNCVT_RTZ_X_F_ALT_W_MF4_MASK = 3193,
+  PseudoVFNCVT_RTZ_X_F_ALT_W_MF8 = 3194,
+  PseudoVFNCVT_RTZ_X_F_ALT_W_MF8_MASK = 3195,
+  PseudoVFNCVT_RTZ_X_F_W_M1 = 3196,
+  PseudoVFNCVT_RTZ_X_F_W_M1_MASK = 3197,
+  PseudoVFNCVT_RTZ_X_F_W_M2 = 3198,
+  PseudoVFNCVT_RTZ_X_F_W_M2_MASK = 3199,
+  PseudoVFNCVT_RTZ_X_F_W_M4 = 3200,
+  PseudoVFNCVT_RTZ_X_F_W_M4_MASK = 3201,
+  PseudoVFNCVT_RTZ_X_F_W_MF2 = 3202,
+  PseudoVFNCVT_RTZ_X_F_W_MF2_MASK = 3203,
+  PseudoVFNCVT_RTZ_X_F_W_MF4 = 3204,
+  PseudoVFNCVT_RTZ_X_F_W_MF4_MASK = 3205,
+  PseudoVFNCVT_RTZ_X_F_W_MF8 = 3206,
+  PseudoVFNCVT_RTZ_X_F_W_MF8_MASK = 3207,
+  PseudoVFNCVT_SAT_F_F_ALT_Q_M1_E8 = 3208,
+  PseudoVFNCVT_SAT_F_F_ALT_Q_M1_E8_MASK = 3209,
+  PseudoVFNCVT_SAT_F_F_ALT_Q_M2_E8 = 3210,
+  PseudoVFNCVT_SAT_F_F_ALT_Q_M2_E8_MASK = 3211,
+  PseudoVFNCVT_SAT_F_F_ALT_Q_MF2_E8 = 3212,
+  PseudoVFNCVT_SAT_F_F_ALT_Q_MF2_E8_MASK = 3213,
+  PseudoVFNCVT_SAT_F_F_ALT_Q_MF4_E8 = 3214,
+  PseudoVFNCVT_SAT_F_F_ALT_Q_MF4_E8_MASK = 3215,
+  PseudoVFNCVT_SAT_F_F_ALT_Q_MF8_E8 = 3216,
+  PseudoVFNCVT_SAT_F_F_ALT_Q_MF8_E8_MASK = 3217,
+  PseudoVFNCVT_SAT_F_F_Q_M1_E8 = 3218,
+  PseudoVFNCVT_SAT_F_F_Q_M1_E8_MASK = 3219,
+  PseudoVFNCVT_SAT_F_F_Q_M2_E8 = 3220,
+  PseudoVFNCVT_SAT_F_F_Q_M2_E8_MASK = 3221,
+  PseudoVFNCVT_SAT_F_F_Q_MF2_E8 = 3222,
+  PseudoVFNCVT_SAT_F_F_Q_MF2_E8_MASK = 3223,
+  PseudoVFNCVT_SAT_F_F_Q_MF4_E8 = 3224,
+  PseudoVFNCVT_SAT_F_F_Q_MF4_E8_MASK = 3225,
+  PseudoVFNCVT_SAT_F_F_Q_MF8_E8 = 3226,
+  PseudoVFNCVT_SAT_F_F_Q_MF8_E8_MASK = 3227,
+  PseudoVFNCVT_XU_F_ALT_W_M1 = 3228,
+  PseudoVFNCVT_XU_F_ALT_W_M1_MASK = 3229,
+  PseudoVFNCVT_XU_F_ALT_W_M2 = 3230,
+  PseudoVFNCVT_XU_F_ALT_W_M2_MASK = 3231,
+  PseudoVFNCVT_XU_F_ALT_W_M4 = 3232,
+  PseudoVFNCVT_XU_F_ALT_W_M4_MASK = 3233,
+  PseudoVFNCVT_XU_F_ALT_W_MF2 = 3234,
+  PseudoVFNCVT_XU_F_ALT_W_MF2_MASK = 3235,
+  PseudoVFNCVT_XU_F_ALT_W_MF4 = 3236,
+  PseudoVFNCVT_XU_F_ALT_W_MF4_MASK = 3237,
+  PseudoVFNCVT_XU_F_ALT_W_MF8 = 3238,
+  PseudoVFNCVT_XU_F_ALT_W_MF8_MASK = 3239,
+  PseudoVFNCVT_XU_F_W_M1 = 3240,
+  PseudoVFNCVT_XU_F_W_M1_MASK = 3241,
+  PseudoVFNCVT_XU_F_W_M2 = 3242,
+  PseudoVFNCVT_XU_F_W_M2_MASK = 3243,
+  PseudoVFNCVT_XU_F_W_M4 = 3244,
+  PseudoVFNCVT_XU_F_W_M4_MASK = 3245,
+  PseudoVFNCVT_XU_F_W_MF2 = 3246,
+  PseudoVFNCVT_XU_F_W_MF2_MASK = 3247,
+  PseudoVFNCVT_XU_F_W_MF4 = 3248,
+  PseudoVFNCVT_XU_F_W_MF4_MASK = 3249,
+  PseudoVFNCVT_XU_F_W_MF8 = 3250,
+  PseudoVFNCVT_XU_F_W_MF8_MASK = 3251,
+  PseudoVFNCVT_X_F_ALT_W_M1 = 3252,
+  PseudoVFNCVT_X_F_ALT_W_M1_MASK = 3253,
+  PseudoVFNCVT_X_F_ALT_W_M2 = 3254,
+  PseudoVFNCVT_X_F_ALT_W_M2_MASK = 3255,
+  PseudoVFNCVT_X_F_ALT_W_M4 = 3256,
+  PseudoVFNCVT_X_F_ALT_W_M4_MASK = 3257,
+  PseudoVFNCVT_X_F_ALT_W_MF2 = 3258,
+  PseudoVFNCVT_X_F_ALT_W_MF2_MASK = 3259,
+  PseudoVFNCVT_X_F_ALT_W_MF4 = 3260,
+  PseudoVFNCVT_X_F_ALT_W_MF4_MASK = 3261,
+  PseudoVFNCVT_X_F_ALT_W_MF8 = 3262,
+  PseudoVFNCVT_X_F_ALT_W_MF8_MASK = 3263,
+  PseudoVFNCVT_X_F_W_M1 = 3264,
+  PseudoVFNCVT_X_F_W_M1_MASK = 3265,
+  PseudoVFNCVT_X_F_W_M2 = 3266,
+  PseudoVFNCVT_X_F_W_M2_MASK = 3267,
+  PseudoVFNCVT_X_F_W_M4 = 3268,
+  PseudoVFNCVT_X_F_W_M4_MASK = 3269,
+  PseudoVFNCVT_X_F_W_MF2 = 3270,
+  PseudoVFNCVT_X_F_W_MF2_MASK = 3271,
+  PseudoVFNCVT_X_F_W_MF4 = 3272,
+  PseudoVFNCVT_X_F_W_MF4_MASK = 3273,
+  PseudoVFNCVT_X_F_W_MF8 = 3274,
+  PseudoVFNCVT_X_F_W_MF8_MASK = 3275,
+  PseudoVFNMACC_ALT_VFPR16_M1_E16 = 3276,
+  PseudoVFNMACC_ALT_VFPR16_M1_E16_MASK = 3277,
+  PseudoVFNMACC_ALT_VFPR16_M2_E16 = 3278,
+  PseudoVFNMACC_ALT_VFPR16_M2_E16_MASK = 3279,
+  PseudoVFNMACC_ALT_VFPR16_M4_E16 = 3280,
+  PseudoVFNMACC_ALT_VFPR16_M4_E16_MASK = 3281,
+  PseudoVFNMACC_ALT_VFPR16_M8_E16 = 3282,
+  PseudoVFNMACC_ALT_VFPR16_M8_E16_MASK = 3283,
+  PseudoVFNMACC_ALT_VFPR16_MF2_E16 = 3284,
+  PseudoVFNMACC_ALT_VFPR16_MF2_E16_MASK = 3285,
+  PseudoVFNMACC_ALT_VFPR16_MF4_E16 = 3286,
+  PseudoVFNMACC_ALT_VFPR16_MF4_E16_MASK = 3287,
+  PseudoVFNMACC_ALT_VV_M1_E16 = 3288,
+  PseudoVFNMACC_ALT_VV_M1_E16_MASK = 3289,
+  PseudoVFNMACC_ALT_VV_M2_E16 = 3290,
+  PseudoVFNMACC_ALT_VV_M2_E16_MASK = 3291,
+  PseudoVFNMACC_ALT_VV_M4_E16 = 3292,
+  PseudoVFNMACC_ALT_VV_M4_E16_MASK = 3293,
+  PseudoVFNMACC_ALT_VV_M8_E16 = 3294,
+  PseudoVFNMACC_ALT_VV_M8_E16_MASK = 3295,
+  PseudoVFNMACC_ALT_VV_MF2_E16 = 3296,
+  PseudoVFNMACC_ALT_VV_MF2_E16_MASK = 3297,
+  PseudoVFNMACC_ALT_VV_MF4_E16 = 3298,
+  PseudoVFNMACC_ALT_VV_MF4_E16_MASK = 3299,
+  PseudoVFNMACC_VFPR16_M1_E16 = 3300,
+  PseudoVFNMACC_VFPR16_M1_E16_MASK = 3301,
+  PseudoVFNMACC_VFPR16_M2_E16 = 3302,
+  PseudoVFNMACC_VFPR16_M2_E16_MASK = 3303,
+  PseudoVFNMACC_VFPR16_M4_E16 = 3304,
+  PseudoVFNMACC_VFPR16_M4_E16_MASK = 3305,
+  PseudoVFNMACC_VFPR16_M8_E16 = 3306,
+  PseudoVFNMACC_VFPR16_M8_E16_MASK = 3307,
+  PseudoVFNMACC_VFPR16_MF2_E16 = 3308,
+  PseudoVFNMACC_VFPR16_MF2_E16_MASK = 3309,
+  PseudoVFNMACC_VFPR16_MF4_E16 = 3310,
+  PseudoVFNMACC_VFPR16_MF4_E16_MASK = 3311,
+  PseudoVFNMACC_VFPR32_M1_E32 = 3312,
+  PseudoVFNMACC_VFPR32_M1_E32_MASK = 3313,
+  PseudoVFNMACC_VFPR32_M2_E32 = 3314,
+  PseudoVFNMACC_VFPR32_M2_E32_MASK = 3315,
+  PseudoVFNMACC_VFPR32_M4_E32 = 3316,
+  PseudoVFNMACC_VFPR32_M4_E32_MASK = 3317,
+  PseudoVFNMACC_VFPR32_M8_E32 = 3318,
+  PseudoVFNMACC_VFPR32_M8_E32_MASK = 3319,
+  PseudoVFNMACC_VFPR32_MF2_E32 = 3320,
+  PseudoVFNMACC_VFPR32_MF2_E32_MASK = 3321,
+  PseudoVFNMACC_VFPR64_M1_E64 = 3322,
+  PseudoVFNMACC_VFPR64_M1_E64_MASK = 3323,
+  PseudoVFNMACC_VFPR64_M2_E64 = 3324,
+  PseudoVFNMACC_VFPR64_M2_E64_MASK = 3325,
+  PseudoVFNMACC_VFPR64_M4_E64 = 3326,
+  PseudoVFNMACC_VFPR64_M4_E64_MASK = 3327,
+  PseudoVFNMACC_VFPR64_M8_E64 = 3328,
+  PseudoVFNMACC_VFPR64_M8_E64_MASK = 3329,
+  PseudoVFNMACC_VV_M1_E16 = 3330,
+  PseudoVFNMACC_VV_M1_E16_MASK = 3331,
+  PseudoVFNMACC_VV_M1_E32 = 3332,
+  PseudoVFNMACC_VV_M1_E32_MASK = 3333,
+  PseudoVFNMACC_VV_M1_E64 = 3334,
+  PseudoVFNMACC_VV_M1_E64_MASK = 3335,
+  PseudoVFNMACC_VV_M2_E16 = 3336,
+  PseudoVFNMACC_VV_M2_E16_MASK = 3337,
+  PseudoVFNMACC_VV_M2_E32 = 3338,
+  PseudoVFNMACC_VV_M2_E32_MASK = 3339,
+  PseudoVFNMACC_VV_M2_E64 = 3340,
+  PseudoVFNMACC_VV_M2_E64_MASK = 3341,
+  PseudoVFNMACC_VV_M4_E16 = 3342,
+  PseudoVFNMACC_VV_M4_E16_MASK = 3343,
+  PseudoVFNMACC_VV_M4_E32 = 3344,
+  PseudoVFNMACC_VV_M4_E32_MASK = 3345,
+  PseudoVFNMACC_VV_M4_E64 = 3346,
+  PseudoVFNMACC_VV_M4_E64_MASK = 3347,
+  PseudoVFNMACC_VV_M8_E16 = 3348,
+  PseudoVFNMACC_VV_M8_E16_MASK = 3349,
+  PseudoVFNMACC_VV_M8_E32 = 3350,
+  PseudoVFNMACC_VV_M8_E32_MASK = 3351,
+  PseudoVFNMACC_VV_M8_E64 = 3352,
+  PseudoVFNMACC_VV_M8_E64_MASK = 3353,
+  PseudoVFNMACC_VV_MF2_E16 = 3354,
+  PseudoVFNMACC_VV_MF2_E16_MASK = 3355,
+  PseudoVFNMACC_VV_MF2_E32 = 3356,
+  PseudoVFNMACC_VV_MF2_E32_MASK = 3357,
+  PseudoVFNMACC_VV_MF4_E16 = 3358,
+  PseudoVFNMACC_VV_MF4_E16_MASK = 3359,
+  PseudoVFNMADD_ALT_VFPR16_M1_E16 = 3360,
+  PseudoVFNMADD_ALT_VFPR16_M1_E16_MASK = 3361,
+  PseudoVFNMADD_ALT_VFPR16_M2_E16 = 3362,
+  PseudoVFNMADD_ALT_VFPR16_M2_E16_MASK = 3363,
+  PseudoVFNMADD_ALT_VFPR16_M4_E16 = 3364,
+  PseudoVFNMADD_ALT_VFPR16_M4_E16_MASK = 3365,
+  PseudoVFNMADD_ALT_VFPR16_M8_E16 = 3366,
+  PseudoVFNMADD_ALT_VFPR16_M8_E16_MASK = 3367,
+  PseudoVFNMADD_ALT_VFPR16_MF2_E16 = 3368,
+  PseudoVFNMADD_ALT_VFPR16_MF2_E16_MASK = 3369,
+  PseudoVFNMADD_ALT_VFPR16_MF4_E16 = 3370,
+  PseudoVFNMADD_ALT_VFPR16_MF4_E16_MASK = 3371,
+  PseudoVFNMADD_ALT_VV_M1_E16 = 3372,
+  PseudoVFNMADD_ALT_VV_M1_E16_MASK = 3373,
+  PseudoVFNMADD_ALT_VV_M2_E16 = 3374,
+  PseudoVFNMADD_ALT_VV_M2_E16_MASK = 3375,
+  PseudoVFNMADD_ALT_VV_M4_E16 = 3376,
+  PseudoVFNMADD_ALT_VV_M4_E16_MASK = 3377,
+  PseudoVFNMADD_ALT_VV_M8_E16 = 3378,
+  PseudoVFNMADD_ALT_VV_M8_E16_MASK = 3379,
+  PseudoVFNMADD_ALT_VV_MF2_E16 = 3380,
+  PseudoVFNMADD_ALT_VV_MF2_E16_MASK = 3381,
+  PseudoVFNMADD_ALT_VV_MF4_E16 = 3382,
+  PseudoVFNMADD_ALT_VV_MF4_E16_MASK = 3383,
+  PseudoVFNMADD_VFPR16_M1_E16 = 3384,
+  PseudoVFNMADD_VFPR16_M1_E16_MASK = 3385,
+  PseudoVFNMADD_VFPR16_M2_E16 = 3386,
+  PseudoVFNMADD_VFPR16_M2_E16_MASK = 3387,
+  PseudoVFNMADD_VFPR16_M4_E16 = 3388,
+  PseudoVFNMADD_VFPR16_M4_E16_MASK = 3389,
+  PseudoVFNMADD_VFPR16_M8_E16 = 3390,
+  PseudoVFNMADD_VFPR16_M8_E16_MASK = 3391,
+  PseudoVFNMADD_VFPR16_MF2_E16 = 3392,
+  PseudoVFNMADD_VFPR16_MF2_E16_MASK = 3393,
+  PseudoVFNMADD_VFPR16_MF4_E16 = 3394,
+  PseudoVFNMADD_VFPR16_MF4_E16_MASK = 3395,
+  PseudoVFNMADD_VFPR32_M1_E32 = 3396,
+  PseudoVFNMADD_VFPR32_M1_E32_MASK = 3397,
+  PseudoVFNMADD_VFPR32_M2_E32 = 3398,
+  PseudoVFNMADD_VFPR32_M2_E32_MASK = 3399,
+  PseudoVFNMADD_VFPR32_M4_E32 = 3400,
+  PseudoVFNMADD_VFPR32_M4_E32_MASK = 3401,
+  PseudoVFNMADD_VFPR32_M8_E32 = 3402,
+  PseudoVFNMADD_VFPR32_M8_E32_MASK = 3403,
+  PseudoVFNMADD_VFPR32_MF2_E32 = 3404,
+  PseudoVFNMADD_VFPR32_MF2_E32_MASK = 3405,
+  PseudoVFNMADD_VFPR64_M1_E64 = 3406,
+  PseudoVFNMADD_VFPR64_M1_E64_MASK = 3407,
+  PseudoVFNMADD_VFPR64_M2_E64 = 3408,
+  PseudoVFNMADD_VFPR64_M2_E64_MASK = 3409,
+  PseudoVFNMADD_VFPR64_M4_E64 = 3410,
+  PseudoVFNMADD_VFPR64_M4_E64_MASK = 3411,
+  PseudoVFNMADD_VFPR64_M8_E64 = 3412,
+  PseudoVFNMADD_VFPR64_M8_E64_MASK = 3413,
+  PseudoVFNMADD_VV_M1_E16 = 3414,
+  PseudoVFNMADD_VV_M1_E16_MASK = 3415,
+  PseudoVFNMADD_VV_M1_E32 = 3416,
+  PseudoVFNMADD_VV_M1_E32_MASK = 3417,
+  PseudoVFNMADD_VV_M1_E64 = 3418,
+  PseudoVFNMADD_VV_M1_E64_MASK = 3419,
+  PseudoVFNMADD_VV_M2_E16 = 3420,
+  PseudoVFNMADD_VV_M2_E16_MASK = 3421,
+  PseudoVFNMADD_VV_M2_E32 = 3422,
+  PseudoVFNMADD_VV_M2_E32_MASK = 3423,
+  PseudoVFNMADD_VV_M2_E64 = 3424,
+  PseudoVFNMADD_VV_M2_E64_MASK = 3425,
+  PseudoVFNMADD_VV_M4_E16 = 3426,
+  PseudoVFNMADD_VV_M4_E16_MASK = 3427,
+  PseudoVFNMADD_VV_M4_E32 = 3428,
+  PseudoVFNMADD_VV_M4_E32_MASK = 3429,
+  PseudoVFNMADD_VV_M4_E64 = 3430,
+  PseudoVFNMADD_VV_M4_E64_MASK = 3431,
+  PseudoVFNMADD_VV_M8_E16 = 3432,
+  PseudoVFNMADD_VV_M8_E16_MASK = 3433,
+  PseudoVFNMADD_VV_M8_E32 = 3434,
+  PseudoVFNMADD_VV_M8_E32_MASK = 3435,
+  PseudoVFNMADD_VV_M8_E64 = 3436,
+  PseudoVFNMADD_VV_M8_E64_MASK = 3437,
+  PseudoVFNMADD_VV_MF2_E16 = 3438,
+  PseudoVFNMADD_VV_MF2_E16_MASK = 3439,
+  PseudoVFNMADD_VV_MF2_E32 = 3440,
+  PseudoVFNMADD_VV_MF2_E32_MASK = 3441,
+  PseudoVFNMADD_VV_MF4_E16 = 3442,
+  PseudoVFNMADD_VV_MF4_E16_MASK = 3443,
+  PseudoVFNMSAC_ALT_VFPR16_M1_E16 = 3444,
+  PseudoVFNMSAC_ALT_VFPR16_M1_E16_MASK = 3445,
+  PseudoVFNMSAC_ALT_VFPR16_M2_E16 = 3446,
+  PseudoVFNMSAC_ALT_VFPR16_M2_E16_MASK = 3447,
+  PseudoVFNMSAC_ALT_VFPR16_M4_E16 = 3448,
+  PseudoVFNMSAC_ALT_VFPR16_M4_E16_MASK = 3449,
+  PseudoVFNMSAC_ALT_VFPR16_M8_E16 = 3450,
+  PseudoVFNMSAC_ALT_VFPR16_M8_E16_MASK = 3451,
+  PseudoVFNMSAC_ALT_VFPR16_MF2_E16 = 3452,
+  PseudoVFNMSAC_ALT_VFPR16_MF2_E16_MASK = 3453,
+  PseudoVFNMSAC_ALT_VFPR16_MF4_E16 = 3454,
+  PseudoVFNMSAC_ALT_VFPR16_MF4_E16_MASK = 3455,
+  PseudoVFNMSAC_ALT_VV_M1_E16 = 3456,
+  PseudoVFNMSAC_ALT_VV_M1_E16_MASK = 3457,
+  PseudoVFNMSAC_ALT_VV_M2_E16 = 3458,
+  PseudoVFNMSAC_ALT_VV_M2_E16_MASK = 3459,
+  PseudoVFNMSAC_ALT_VV_M4_E16 = 3460,
+  PseudoVFNMSAC_ALT_VV_M4_E16_MASK = 3461,
+  PseudoVFNMSAC_ALT_VV_M8_E16 = 3462,
+  PseudoVFNMSAC_ALT_VV_M8_E16_MASK = 3463,
+  PseudoVFNMSAC_ALT_VV_MF2_E16 = 3464,
+  PseudoVFNMSAC_ALT_VV_MF2_E16_MASK = 3465,
+  PseudoVFNMSAC_ALT_VV_MF4_E16 = 3466,
+  PseudoVFNMSAC_ALT_VV_MF4_E16_MASK = 3467,
+  PseudoVFNMSAC_VFPR16_M1_E16 = 3468,
+  PseudoVFNMSAC_VFPR16_M1_E16_MASK = 3469,
+  PseudoVFNMSAC_VFPR16_M2_E16 = 3470,
+  PseudoVFNMSAC_VFPR16_M2_E16_MASK = 3471,
+  PseudoVFNMSAC_VFPR16_M4_E16 = 3472,
+  PseudoVFNMSAC_VFPR16_M4_E16_MASK = 3473,
+  PseudoVFNMSAC_VFPR16_M8_E16 = 3474,
+  PseudoVFNMSAC_VFPR16_M8_E16_MASK = 3475,
+  PseudoVFNMSAC_VFPR16_MF2_E16 = 3476,
+  PseudoVFNMSAC_VFPR16_MF2_E16_MASK = 3477,
+  PseudoVFNMSAC_VFPR16_MF4_E16 = 3478,
+  PseudoVFNMSAC_VFPR16_MF4_E16_MASK = 3479,
+  PseudoVFNMSAC_VFPR32_M1_E32 = 3480,
+  PseudoVFNMSAC_VFPR32_M1_E32_MASK = 3481,
+  PseudoVFNMSAC_VFPR32_M2_E32 = 3482,
+  PseudoVFNMSAC_VFPR32_M2_E32_MASK = 3483,
+  PseudoVFNMSAC_VFPR32_M4_E32 = 3484,
+  PseudoVFNMSAC_VFPR32_M4_E32_MASK = 3485,
+  PseudoVFNMSAC_VFPR32_M8_E32 = 3486,
+  PseudoVFNMSAC_VFPR32_M8_E32_MASK = 3487,
+  PseudoVFNMSAC_VFPR32_MF2_E32 = 3488,
+  PseudoVFNMSAC_VFPR32_MF2_E32_MASK = 3489,
+  PseudoVFNMSAC_VFPR64_M1_E64 = 3490,
+  PseudoVFNMSAC_VFPR64_M1_E64_MASK = 3491,
+  PseudoVFNMSAC_VFPR64_M2_E64 = 3492,
+  PseudoVFNMSAC_VFPR64_M2_E64_MASK = 3493,
+  PseudoVFNMSAC_VFPR64_M4_E64 = 3494,
+  PseudoVFNMSAC_VFPR64_M4_E64_MASK = 3495,
+  PseudoVFNMSAC_VFPR64_M8_E64 = 3496,
+  PseudoVFNMSAC_VFPR64_M8_E64_MASK = 3497,
+  PseudoVFNMSAC_VV_M1_E16 = 3498,
+  PseudoVFNMSAC_VV_M1_E16_MASK = 3499,
+  PseudoVFNMSAC_VV_M1_E32 = 3500,
+  PseudoVFNMSAC_VV_M1_E32_MASK = 3501,
+  PseudoVFNMSAC_VV_M1_E64 = 3502,
+  PseudoVFNMSAC_VV_M1_E64_MASK = 3503,
+  PseudoVFNMSAC_VV_M2_E16 = 3504,
+  PseudoVFNMSAC_VV_M2_E16_MASK = 3505,
+  PseudoVFNMSAC_VV_M2_E32 = 3506,
+  PseudoVFNMSAC_VV_M2_E32_MASK = 3507,
+  PseudoVFNMSAC_VV_M2_E64 = 3508,
+  PseudoVFNMSAC_VV_M2_E64_MASK = 3509,
+  PseudoVFNMSAC_VV_M4_E16 = 3510,
+  PseudoVFNMSAC_VV_M4_E16_MASK = 3511,
+  PseudoVFNMSAC_VV_M4_E32 = 3512,
+  PseudoVFNMSAC_VV_M4_E32_MASK = 3513,
+  PseudoVFNMSAC_VV_M4_E64 = 3514,
+  PseudoVFNMSAC_VV_M4_E64_MASK = 3515,
+  PseudoVFNMSAC_VV_M8_E16 = 3516,
+  PseudoVFNMSAC_VV_M8_E16_MASK = 3517,
+  PseudoVFNMSAC_VV_M8_E32 = 3518,
+  PseudoVFNMSAC_VV_M8_E32_MASK = 3519,
+  PseudoVFNMSAC_VV_M8_E64 = 3520,
+  PseudoVFNMSAC_VV_M8_E64_MASK = 3521,
+  PseudoVFNMSAC_VV_MF2_E16 = 3522,
+  PseudoVFNMSAC_VV_MF2_E16_MASK = 3523,
+  PseudoVFNMSAC_VV_MF2_E32 = 3524,
+  PseudoVFNMSAC_VV_MF2_E32_MASK = 3525,
+  PseudoVFNMSAC_VV_MF4_E16 = 3526,
+  PseudoVFNMSAC_VV_MF4_E16_MASK = 3527,
+  PseudoVFNMSUB_ALT_VFPR16_M1_E16 = 3528,
+  PseudoVFNMSUB_ALT_VFPR16_M1_E16_MASK = 3529,
+  PseudoVFNMSUB_ALT_VFPR16_M2_E16 = 3530,
+  PseudoVFNMSUB_ALT_VFPR16_M2_E16_MASK = 3531,
+  PseudoVFNMSUB_ALT_VFPR16_M4_E16 = 3532,
+  PseudoVFNMSUB_ALT_VFPR16_M4_E16_MASK = 3533,
+  PseudoVFNMSUB_ALT_VFPR16_M8_E16 = 3534,
+  PseudoVFNMSUB_ALT_VFPR16_M8_E16_MASK = 3535,
+  PseudoVFNMSUB_ALT_VFPR16_MF2_E16 = 3536,
+  PseudoVFNMSUB_ALT_VFPR16_MF2_E16_MASK = 3537,
+  PseudoVFNMSUB_ALT_VFPR16_MF4_E16 = 3538,
+  PseudoVFNMSUB_ALT_VFPR16_MF4_E16_MASK = 3539,
+  PseudoVFNMSUB_ALT_VV_M1_E16 = 3540,
+  PseudoVFNMSUB_ALT_VV_M1_E16_MASK = 3541,
+  PseudoVFNMSUB_ALT_VV_M2_E16 = 3542,
+  PseudoVFNMSUB_ALT_VV_M2_E16_MASK = 3543,
+  PseudoVFNMSUB_ALT_VV_M4_E16 = 3544,
+  PseudoVFNMSUB_ALT_VV_M4_E16_MASK = 3545,
+  PseudoVFNMSUB_ALT_VV_M8_E16 = 3546,
+  PseudoVFNMSUB_ALT_VV_M8_E16_MASK = 3547,
+  PseudoVFNMSUB_ALT_VV_MF2_E16 = 3548,
+  PseudoVFNMSUB_ALT_VV_MF2_E16_MASK = 3549,
+  PseudoVFNMSUB_ALT_VV_MF4_E16 = 3550,
+  PseudoVFNMSUB_ALT_VV_MF4_E16_MASK = 3551,
+  PseudoVFNMSUB_VFPR16_M1_E16 = 3552,
+  PseudoVFNMSUB_VFPR16_M1_E16_MASK = 3553,
+  PseudoVFNMSUB_VFPR16_M2_E16 = 3554,
+  PseudoVFNMSUB_VFPR16_M2_E16_MASK = 3555,
+  PseudoVFNMSUB_VFPR16_M4_E16 = 3556,
+  PseudoVFNMSUB_VFPR16_M4_E16_MASK = 3557,
+  PseudoVFNMSUB_VFPR16_M8_E16 = 3558,
+  PseudoVFNMSUB_VFPR16_M8_E16_MASK = 3559,
+  PseudoVFNMSUB_VFPR16_MF2_E16 = 3560,
+  PseudoVFNMSUB_VFPR16_MF2_E16_MASK = 3561,
+  PseudoVFNMSUB_VFPR16_MF4_E16 = 3562,
+  PseudoVFNMSUB_VFPR16_MF4_E16_MASK = 3563,
+  PseudoVFNMSUB_VFPR32_M1_E32 = 3564,
+  PseudoVFNMSUB_VFPR32_M1_E32_MASK = 3565,
+  PseudoVFNMSUB_VFPR32_M2_E32 = 3566,
+  PseudoVFNMSUB_VFPR32_M2_E32_MASK = 3567,
+  PseudoVFNMSUB_VFPR32_M4_E32 = 3568,
+  PseudoVFNMSUB_VFPR32_M4_E32_MASK = 3569,
+  PseudoVFNMSUB_VFPR32_M8_E32 = 3570,
+  PseudoVFNMSUB_VFPR32_M8_E32_MASK = 3571,
+  PseudoVFNMSUB_VFPR32_MF2_E32 = 3572,
+  PseudoVFNMSUB_VFPR32_MF2_E32_MASK = 3573,
+  PseudoVFNMSUB_VFPR64_M1_E64 = 3574,
+  PseudoVFNMSUB_VFPR64_M1_E64_MASK = 3575,
+  PseudoVFNMSUB_VFPR64_M2_E64 = 3576,
+  PseudoVFNMSUB_VFPR64_M2_E64_MASK = 3577,
+  PseudoVFNMSUB_VFPR64_M4_E64 = 3578,
+  PseudoVFNMSUB_VFPR64_M4_E64_MASK = 3579,
+  PseudoVFNMSUB_VFPR64_M8_E64 = 3580,
+  PseudoVFNMSUB_VFPR64_M8_E64_MASK = 3581,
+  PseudoVFNMSUB_VV_M1_E16 = 3582,
+  PseudoVFNMSUB_VV_M1_E16_MASK = 3583,
+  PseudoVFNMSUB_VV_M1_E32 = 3584,
+  PseudoVFNMSUB_VV_M1_E32_MASK = 3585,
+  PseudoVFNMSUB_VV_M1_E64 = 3586,
+  PseudoVFNMSUB_VV_M1_E64_MASK = 3587,
+  PseudoVFNMSUB_VV_M2_E16 = 3588,
+  PseudoVFNMSUB_VV_M2_E16_MASK = 3589,
+  PseudoVFNMSUB_VV_M2_E32 = 3590,
+  PseudoVFNMSUB_VV_M2_E32_MASK = 3591,
+  PseudoVFNMSUB_VV_M2_E64 = 3592,
+  PseudoVFNMSUB_VV_M2_E64_MASK = 3593,
+  PseudoVFNMSUB_VV_M4_E16 = 3594,
+  PseudoVFNMSUB_VV_M4_E16_MASK = 3595,
+  PseudoVFNMSUB_VV_M4_E32 = 3596,
+  PseudoVFNMSUB_VV_M4_E32_MASK = 3597,
+  PseudoVFNMSUB_VV_M4_E64 = 3598,
+  PseudoVFNMSUB_VV_M4_E64_MASK = 3599,
+  PseudoVFNMSUB_VV_M8_E16 = 3600,
+  PseudoVFNMSUB_VV_M8_E16_MASK = 3601,
+  PseudoVFNMSUB_VV_M8_E32 = 3602,
+  PseudoVFNMSUB_VV_M8_E32_MASK = 3603,
+  PseudoVFNMSUB_VV_M8_E64 = 3604,
+  PseudoVFNMSUB_VV_M8_E64_MASK = 3605,
+  PseudoVFNMSUB_VV_MF2_E16 = 3606,
+  PseudoVFNMSUB_VV_MF2_E16_MASK = 3607,
+  PseudoVFNMSUB_VV_MF2_E32 = 3608,
+  PseudoVFNMSUB_VV_MF2_E32_MASK = 3609,
+  PseudoVFNMSUB_VV_MF4_E16 = 3610,
+  PseudoVFNMSUB_VV_MF4_E16_MASK = 3611,
+  PseudoVFRDIV_VFPR16_M1_E16 = 3612,
+  PseudoVFRDIV_VFPR16_M1_E16_MASK = 3613,
+  PseudoVFRDIV_VFPR16_M2_E16 = 3614,
+  PseudoVFRDIV_VFPR16_M2_E16_MASK = 3615,
+  PseudoVFRDIV_VFPR16_M4_E16 = 3616,
+  PseudoVFRDIV_VFPR16_M4_E16_MASK = 3617,
+  PseudoVFRDIV_VFPR16_M8_E16 = 3618,
+  PseudoVFRDIV_VFPR16_M8_E16_MASK = 3619,
+  PseudoVFRDIV_VFPR16_MF2_E16 = 3620,
+  PseudoVFRDIV_VFPR16_MF2_E16_MASK = 3621,
+  PseudoVFRDIV_VFPR16_MF4_E16 = 3622,
+  PseudoVFRDIV_VFPR16_MF4_E16_MASK = 3623,
+  PseudoVFRDIV_VFPR32_M1_E32 = 3624,
+  PseudoVFRDIV_VFPR32_M1_E32_MASK = 3625,
+  PseudoVFRDIV_VFPR32_M2_E32 = 3626,
+  PseudoVFRDIV_VFPR32_M2_E32_MASK = 3627,
+  PseudoVFRDIV_VFPR32_M4_E32 = 3628,
+  PseudoVFRDIV_VFPR32_M4_E32_MASK = 3629,
+  PseudoVFRDIV_VFPR32_M8_E32 = 3630,
+  PseudoVFRDIV_VFPR32_M8_E32_MASK = 3631,
+  PseudoVFRDIV_VFPR32_MF2_E32 = 3632,
+  PseudoVFRDIV_VFPR32_MF2_E32_MASK = 3633,
+  PseudoVFRDIV_VFPR64_M1_E64 = 3634,
+  PseudoVFRDIV_VFPR64_M1_E64_MASK = 3635,
+  PseudoVFRDIV_VFPR64_M2_E64 = 3636,
+  PseudoVFRDIV_VFPR64_M2_E64_MASK = 3637,
+  PseudoVFRDIV_VFPR64_M4_E64 = 3638,
+  PseudoVFRDIV_VFPR64_M4_E64_MASK = 3639,
+  PseudoVFRDIV_VFPR64_M8_E64 = 3640,
+  PseudoVFRDIV_VFPR64_M8_E64_MASK = 3641,
+  PseudoVFREC7_ALT_V_M1_E16 = 3642,
+  PseudoVFREC7_ALT_V_M1_E16_MASK = 3643,
+  PseudoVFREC7_ALT_V_M2_E16 = 3644,
+  PseudoVFREC7_ALT_V_M2_E16_MASK = 3645,
+  PseudoVFREC7_ALT_V_M4_E16 = 3646,
+  PseudoVFREC7_ALT_V_M4_E16_MASK = 3647,
+  PseudoVFREC7_ALT_V_M8_E16 = 3648,
+  PseudoVFREC7_ALT_V_M8_E16_MASK = 3649,
+  PseudoVFREC7_ALT_V_MF2_E16 = 3650,
+  PseudoVFREC7_ALT_V_MF2_E16_MASK = 3651,
+  PseudoVFREC7_ALT_V_MF4_E16 = 3652,
+  PseudoVFREC7_ALT_V_MF4_E16_MASK = 3653,
+  PseudoVFREC7_V_M1_E16 = 3654,
+  PseudoVFREC7_V_M1_E16_MASK = 3655,
+  PseudoVFREC7_V_M1_E32 = 3656,
+  PseudoVFREC7_V_M1_E32_MASK = 3657,
+  PseudoVFREC7_V_M1_E64 = 3658,
+  PseudoVFREC7_V_M1_E64_MASK = 3659,
+  PseudoVFREC7_V_M2_E16 = 3660,
+  PseudoVFREC7_V_M2_E16_MASK = 3661,
+  PseudoVFREC7_V_M2_E32 = 3662,
+  PseudoVFREC7_V_M2_E32_MASK = 3663,
+  PseudoVFREC7_V_M2_E64 = 3664,
+  PseudoVFREC7_V_M2_E64_MASK = 3665,
+  PseudoVFREC7_V_M4_E16 = 3666,
+  PseudoVFREC7_V_M4_E16_MASK = 3667,
+  PseudoVFREC7_V_M4_E32 = 3668,
+  PseudoVFREC7_V_M4_E32_MASK = 3669,
+  PseudoVFREC7_V_M4_E64 = 3670,
+  PseudoVFREC7_V_M4_E64_MASK = 3671,
+  PseudoVFREC7_V_M8_E16 = 3672,
+  PseudoVFREC7_V_M8_E16_MASK = 3673,
+  PseudoVFREC7_V_M8_E32 = 3674,
+  PseudoVFREC7_V_M8_E32_MASK = 3675,
+  PseudoVFREC7_V_M8_E64 = 3676,
+  PseudoVFREC7_V_M8_E64_MASK = 3677,
+  PseudoVFREC7_V_MF2_E16 = 3678,
+  PseudoVFREC7_V_MF2_E16_MASK = 3679,
+  PseudoVFREC7_V_MF2_E32 = 3680,
+  PseudoVFREC7_V_MF2_E32_MASK = 3681,
+  PseudoVFREC7_V_MF4_E16 = 3682,
+  PseudoVFREC7_V_MF4_E16_MASK = 3683,
+  PseudoVFREDMAX_VS_M1_E16 = 3684,
+  PseudoVFREDMAX_VS_M1_E16_MASK = 3685,
+  PseudoVFREDMAX_VS_M1_E32 = 3686,
+  PseudoVFREDMAX_VS_M1_E32_MASK = 3687,
+  PseudoVFREDMAX_VS_M1_E64 = 3688,
+  PseudoVFREDMAX_VS_M1_E64_MASK = 3689,
+  PseudoVFREDMAX_VS_M2_E16 = 3690,
+  PseudoVFREDMAX_VS_M2_E16_MASK = 3691,
+  PseudoVFREDMAX_VS_M2_E32 = 3692,
+  PseudoVFREDMAX_VS_M2_E32_MASK = 3693,
+  PseudoVFREDMAX_VS_M2_E64 = 3694,
+  PseudoVFREDMAX_VS_M2_E64_MASK = 3695,
+  PseudoVFREDMAX_VS_M4_E16 = 3696,
+  PseudoVFREDMAX_VS_M4_E16_MASK = 3697,
+  PseudoVFREDMAX_VS_M4_E32 = 3698,
+  PseudoVFREDMAX_VS_M4_E32_MASK = 3699,
+  PseudoVFREDMAX_VS_M4_E64 = 3700,
+  PseudoVFREDMAX_VS_M4_E64_MASK = 3701,
+  PseudoVFREDMAX_VS_M8_E16 = 3702,
+  PseudoVFREDMAX_VS_M8_E16_MASK = 3703,
+  PseudoVFREDMAX_VS_M8_E32 = 3704,
+  PseudoVFREDMAX_VS_M8_E32_MASK = 3705,
+  PseudoVFREDMAX_VS_M8_E64 = 3706,
+  PseudoVFREDMAX_VS_M8_E64_MASK = 3707,
+  PseudoVFREDMAX_VS_MF2_E16 = 3708,
+  PseudoVFREDMAX_VS_MF2_E16_MASK = 3709,
+  PseudoVFREDMAX_VS_MF2_E32 = 3710,
+  PseudoVFREDMAX_VS_MF2_E32_MASK = 3711,
+  PseudoVFREDMAX_VS_MF4_E16 = 3712,
+  PseudoVFREDMAX_VS_MF4_E16_MASK = 3713,
+  PseudoVFREDMIN_VS_M1_E16 = 3714,
+  PseudoVFREDMIN_VS_M1_E16_MASK = 3715,
+  PseudoVFREDMIN_VS_M1_E32 = 3716,
+  PseudoVFREDMIN_VS_M1_E32_MASK = 3717,
+  PseudoVFREDMIN_VS_M1_E64 = 3718,
+  PseudoVFREDMIN_VS_M1_E64_MASK = 3719,
+  PseudoVFREDMIN_VS_M2_E16 = 3720,
+  PseudoVFREDMIN_VS_M2_E16_MASK = 3721,
+  PseudoVFREDMIN_VS_M2_E32 = 3722,
+  PseudoVFREDMIN_VS_M2_E32_MASK = 3723,
+  PseudoVFREDMIN_VS_M2_E64 = 3724,
+  PseudoVFREDMIN_VS_M2_E64_MASK = 3725,
+  PseudoVFREDMIN_VS_M4_E16 = 3726,
+  PseudoVFREDMIN_VS_M4_E16_MASK = 3727,
+  PseudoVFREDMIN_VS_M4_E32 = 3728,
+  PseudoVFREDMIN_VS_M4_E32_MASK = 3729,
+  PseudoVFREDMIN_VS_M4_E64 = 3730,
+  PseudoVFREDMIN_VS_M4_E64_MASK = 3731,
+  PseudoVFREDMIN_VS_M8_E16 = 3732,
+  PseudoVFREDMIN_VS_M8_E16_MASK = 3733,
+  PseudoVFREDMIN_VS_M8_E32 = 3734,
+  PseudoVFREDMIN_VS_M8_E32_MASK = 3735,
+  PseudoVFREDMIN_VS_M8_E64 = 3736,
+  PseudoVFREDMIN_VS_M8_E64_MASK = 3737,
+  PseudoVFREDMIN_VS_MF2_E16 = 3738,
+  PseudoVFREDMIN_VS_MF2_E16_MASK = 3739,
+  PseudoVFREDMIN_VS_MF2_E32 = 3740,
+  PseudoVFREDMIN_VS_MF2_E32_MASK = 3741,
+  PseudoVFREDMIN_VS_MF4_E16 = 3742,
+  PseudoVFREDMIN_VS_MF4_E16_MASK = 3743,
+  PseudoVFREDOSUM_VS_M1_E16 = 3744,
+  PseudoVFREDOSUM_VS_M1_E16_MASK = 3745,
+  PseudoVFREDOSUM_VS_M1_E32 = 3746,
+  PseudoVFREDOSUM_VS_M1_E32_MASK = 3747,
+  PseudoVFREDOSUM_VS_M1_E64 = 3748,
+  PseudoVFREDOSUM_VS_M1_E64_MASK = 3749,
+  PseudoVFREDOSUM_VS_M2_E16 = 3750,
+  PseudoVFREDOSUM_VS_M2_E16_MASK = 3751,
+  PseudoVFREDOSUM_VS_M2_E32 = 3752,
+  PseudoVFREDOSUM_VS_M2_E32_MASK = 3753,
+  PseudoVFREDOSUM_VS_M2_E64 = 3754,
+  PseudoVFREDOSUM_VS_M2_E64_MASK = 3755,
+  PseudoVFREDOSUM_VS_M4_E16 = 3756,
+  PseudoVFREDOSUM_VS_M4_E16_MASK = 3757,
+  PseudoVFREDOSUM_VS_M4_E32 = 3758,
+  PseudoVFREDOSUM_VS_M4_E32_MASK = 3759,
+  PseudoVFREDOSUM_VS_M4_E64 = 3760,
+  PseudoVFREDOSUM_VS_M4_E64_MASK = 3761,
+  PseudoVFREDOSUM_VS_M8_E16 = 3762,
+  PseudoVFREDOSUM_VS_M8_E16_MASK = 3763,
+  PseudoVFREDOSUM_VS_M8_E32 = 3764,
+  PseudoVFREDOSUM_VS_M8_E32_MASK = 3765,
+  PseudoVFREDOSUM_VS_M8_E64 = 3766,
+  PseudoVFREDOSUM_VS_M8_E64_MASK = 3767,
+  PseudoVFREDOSUM_VS_MF2_E16 = 3768,
+  PseudoVFREDOSUM_VS_MF2_E16_MASK = 3769,
+  PseudoVFREDOSUM_VS_MF2_E32 = 3770,
+  PseudoVFREDOSUM_VS_MF2_E32_MASK = 3771,
+  PseudoVFREDOSUM_VS_MF4_E16 = 3772,
+  PseudoVFREDOSUM_VS_MF4_E16_MASK = 3773,
+  PseudoVFREDUSUM_VS_M1_E16 = 3774,
+  PseudoVFREDUSUM_VS_M1_E16_MASK = 3775,
+  PseudoVFREDUSUM_VS_M1_E32 = 3776,
+  PseudoVFREDUSUM_VS_M1_E32_MASK = 3777,
+  PseudoVFREDUSUM_VS_M1_E64 = 3778,
+  PseudoVFREDUSUM_VS_M1_E64_MASK = 3779,
+  PseudoVFREDUSUM_VS_M2_E16 = 3780,
+  PseudoVFREDUSUM_VS_M2_E16_MASK = 3781,
+  PseudoVFREDUSUM_VS_M2_E32 = 3782,
+  PseudoVFREDUSUM_VS_M2_E32_MASK = 3783,
+  PseudoVFREDUSUM_VS_M2_E64 = 3784,
+  PseudoVFREDUSUM_VS_M2_E64_MASK = 3785,
+  PseudoVFREDUSUM_VS_M4_E16 = 3786,
+  PseudoVFREDUSUM_VS_M4_E16_MASK = 3787,
+  PseudoVFREDUSUM_VS_M4_E32 = 3788,
+  PseudoVFREDUSUM_VS_M4_E32_MASK = 3789,
+  PseudoVFREDUSUM_VS_M4_E64 = 3790,
+  PseudoVFREDUSUM_VS_M4_E64_MASK = 3791,
+  PseudoVFREDUSUM_VS_M8_E16 = 3792,
+  PseudoVFREDUSUM_VS_M8_E16_MASK = 3793,
+  PseudoVFREDUSUM_VS_M8_E32 = 3794,
+  PseudoVFREDUSUM_VS_M8_E32_MASK = 3795,
+  PseudoVFREDUSUM_VS_M8_E64 = 3796,
+  PseudoVFREDUSUM_VS_M8_E64_MASK = 3797,
+  PseudoVFREDUSUM_VS_MF2_E16 = 3798,
+  PseudoVFREDUSUM_VS_MF2_E16_MASK = 3799,
+  PseudoVFREDUSUM_VS_MF2_E32 = 3800,
+  PseudoVFREDUSUM_VS_MF2_E32_MASK = 3801,
+  PseudoVFREDUSUM_VS_MF4_E16 = 3802,
+  PseudoVFREDUSUM_VS_MF4_E16_MASK = 3803,
+  PseudoVFROUND_NOEXCEPT_V_M1_MASK = 3804,
+  PseudoVFROUND_NOEXCEPT_V_M2_MASK = 3805,
+  PseudoVFROUND_NOEXCEPT_V_M4_MASK = 3806,
+  PseudoVFROUND_NOEXCEPT_V_M8_MASK = 3807,
+  PseudoVFROUND_NOEXCEPT_V_MF2_MASK = 3808,
+  PseudoVFROUND_NOEXCEPT_V_MF4_MASK = 3809,
+  PseudoVFRSQRT7_ALT_V_M1_E16 = 3810,
+  PseudoVFRSQRT7_ALT_V_M1_E16_MASK = 3811,
+  PseudoVFRSQRT7_ALT_V_M2_E16 = 3812,
+  PseudoVFRSQRT7_ALT_V_M2_E16_MASK = 3813,
+  PseudoVFRSQRT7_ALT_V_M4_E16 = 3814,
+  PseudoVFRSQRT7_ALT_V_M4_E16_MASK = 3815,
+  PseudoVFRSQRT7_ALT_V_M8_E16 = 3816,
+  PseudoVFRSQRT7_ALT_V_M8_E16_MASK = 3817,
+  PseudoVFRSQRT7_ALT_V_MF2_E16 = 3818,
+  PseudoVFRSQRT7_ALT_V_MF2_E16_MASK = 3819,
+  PseudoVFRSQRT7_ALT_V_MF4_E16 = 3820,
+  PseudoVFRSQRT7_ALT_V_MF4_E16_MASK = 3821,
+  PseudoVFRSQRT7_V_M1_E16 = 3822,
+  PseudoVFRSQRT7_V_M1_E16_MASK = 3823,
+  PseudoVFRSQRT7_V_M1_E32 = 3824,
+  PseudoVFRSQRT7_V_M1_E32_MASK = 3825,
+  PseudoVFRSQRT7_V_M1_E64 = 3826,
+  PseudoVFRSQRT7_V_M1_E64_MASK = 3827,
+  PseudoVFRSQRT7_V_M2_E16 = 3828,
+  PseudoVFRSQRT7_V_M2_E16_MASK = 3829,
+  PseudoVFRSQRT7_V_M2_E32 = 3830,
+  PseudoVFRSQRT7_V_M2_E32_MASK = 3831,
+  PseudoVFRSQRT7_V_M2_E64 = 3832,
+  PseudoVFRSQRT7_V_M2_E64_MASK = 3833,
+  PseudoVFRSQRT7_V_M4_E16 = 3834,
+  PseudoVFRSQRT7_V_M4_E16_MASK = 3835,
+  PseudoVFRSQRT7_V_M4_E32 = 3836,
+  PseudoVFRSQRT7_V_M4_E32_MASK = 3837,
+  PseudoVFRSQRT7_V_M4_E64 = 3838,
+  PseudoVFRSQRT7_V_M4_E64_MASK = 3839,
+  PseudoVFRSQRT7_V_M8_E16 = 3840,
+  PseudoVFRSQRT7_V_M8_E16_MASK = 3841,
+  PseudoVFRSQRT7_V_M8_E32 = 3842,
+  PseudoVFRSQRT7_V_M8_E32_MASK = 3843,
+  PseudoVFRSQRT7_V_M8_E64 = 3844,
+  PseudoVFRSQRT7_V_M8_E64_MASK = 3845,
+  PseudoVFRSQRT7_V_MF2_E16 = 3846,
+  PseudoVFRSQRT7_V_MF2_E16_MASK = 3847,
+  PseudoVFRSQRT7_V_MF2_E32 = 3848,
+  PseudoVFRSQRT7_V_MF2_E32_MASK = 3849,
+  PseudoVFRSQRT7_V_MF4_E16 = 3850,
+  PseudoVFRSQRT7_V_MF4_E16_MASK = 3851,
+  PseudoVFRSUB_ALT_VFPR16_M1_E16 = 3852,
+  PseudoVFRSUB_ALT_VFPR16_M1_E16_MASK = 3853,
+  PseudoVFRSUB_ALT_VFPR16_M2_E16 = 3854,
+  PseudoVFRSUB_ALT_VFPR16_M2_E16_MASK = 3855,
+  PseudoVFRSUB_ALT_VFPR16_M4_E16 = 3856,
+  PseudoVFRSUB_ALT_VFPR16_M4_E16_MASK = 3857,
+  PseudoVFRSUB_ALT_VFPR16_M8_E16 = 3858,
+  PseudoVFRSUB_ALT_VFPR16_M8_E16_MASK = 3859,
+  PseudoVFRSUB_ALT_VFPR16_MF2_E16 = 3860,
+  PseudoVFRSUB_ALT_VFPR16_MF2_E16_MASK = 3861,
+  PseudoVFRSUB_ALT_VFPR16_MF4_E16 = 3862,
+  PseudoVFRSUB_ALT_VFPR16_MF4_E16_MASK = 3863,
+  PseudoVFRSUB_VFPR16_M1_E16 = 3864,
+  PseudoVFRSUB_VFPR16_M1_E16_MASK = 3865,
+  PseudoVFRSUB_VFPR16_M2_E16 = 3866,
+  PseudoVFRSUB_VFPR16_M2_E16_MASK = 3867,
+  PseudoVFRSUB_VFPR16_M4_E16 = 3868,
+  PseudoVFRSUB_VFPR16_M4_E16_MASK = 3869,
+  PseudoVFRSUB_VFPR16_M8_E16 = 3870,
+  PseudoVFRSUB_VFPR16_M8_E16_MASK = 3871,
+  PseudoVFRSUB_VFPR16_MF2_E16 = 3872,
+  PseudoVFRSUB_VFPR16_MF2_E16_MASK = 3873,
+  PseudoVFRSUB_VFPR16_MF4_E16 = 3874,
+  PseudoVFRSUB_VFPR16_MF4_E16_MASK = 3875,
+  PseudoVFRSUB_VFPR32_M1_E32 = 3876,
+  PseudoVFRSUB_VFPR32_M1_E32_MASK = 3877,
+  PseudoVFRSUB_VFPR32_M2_E32 = 3878,
+  PseudoVFRSUB_VFPR32_M2_E32_MASK = 3879,
+  PseudoVFRSUB_VFPR32_M4_E32 = 3880,
+  PseudoVFRSUB_VFPR32_M4_E32_MASK = 3881,
+  PseudoVFRSUB_VFPR32_M8_E32 = 3882,
+  PseudoVFRSUB_VFPR32_M8_E32_MASK = 3883,
+  PseudoVFRSUB_VFPR32_MF2_E32 = 3884,
+  PseudoVFRSUB_VFPR32_MF2_E32_MASK = 3885,
+  PseudoVFRSUB_VFPR64_M1_E64 = 3886,
+  PseudoVFRSUB_VFPR64_M1_E64_MASK = 3887,
+  PseudoVFRSUB_VFPR64_M2_E64 = 3888,
+  PseudoVFRSUB_VFPR64_M2_E64_MASK = 3889,
+  PseudoVFRSUB_VFPR64_M4_E64 = 3890,
+  PseudoVFRSUB_VFPR64_M4_E64_MASK = 3891,
+  PseudoVFRSUB_VFPR64_M8_E64 = 3892,
+  PseudoVFRSUB_VFPR64_M8_E64_MASK = 3893,
+  PseudoVFSGNJN_ALT_VFPR16_M1_E16 = 3894,
+  PseudoVFSGNJN_ALT_VFPR16_M1_E16_MASK = 3895,
+  PseudoVFSGNJN_ALT_VFPR16_M2_E16 = 3896,
+  PseudoVFSGNJN_ALT_VFPR16_M2_E16_MASK = 3897,
+  PseudoVFSGNJN_ALT_VFPR16_M4_E16 = 3898,
+  PseudoVFSGNJN_ALT_VFPR16_M4_E16_MASK = 3899,
+  PseudoVFSGNJN_ALT_VFPR16_M8_E16 = 3900,
+  PseudoVFSGNJN_ALT_VFPR16_M8_E16_MASK = 3901,
+  PseudoVFSGNJN_ALT_VFPR16_MF2_E16 = 3902,
+  PseudoVFSGNJN_ALT_VFPR16_MF2_E16_MASK = 3903,
+  PseudoVFSGNJN_ALT_VFPR16_MF4_E16 = 3904,
+  PseudoVFSGNJN_ALT_VFPR16_MF4_E16_MASK = 3905,
+  PseudoVFSGNJN_ALT_VV_M1_E16 = 3906,
+  PseudoVFSGNJN_ALT_VV_M1_E16_MASK = 3907,
+  PseudoVFSGNJN_ALT_VV_M2_E16 = 3908,
+  PseudoVFSGNJN_ALT_VV_M2_E16_MASK = 3909,
+  PseudoVFSGNJN_ALT_VV_M4_E16 = 3910,
+  PseudoVFSGNJN_ALT_VV_M4_E16_MASK = 3911,
+  PseudoVFSGNJN_ALT_VV_M8_E16 = 3912,
+  PseudoVFSGNJN_ALT_VV_M8_E16_MASK = 3913,
+  PseudoVFSGNJN_ALT_VV_MF2_E16 = 3914,
+  PseudoVFSGNJN_ALT_VV_MF2_E16_MASK = 3915,
+  PseudoVFSGNJN_ALT_VV_MF4_E16 = 3916,
+  PseudoVFSGNJN_ALT_VV_MF4_E16_MASK = 3917,
+  PseudoVFSGNJN_VFPR16_M1_E16 = 3918,
+  PseudoVFSGNJN_VFPR16_M1_E16_MASK = 3919,
+  PseudoVFSGNJN_VFPR16_M2_E16 = 3920,
+  PseudoVFSGNJN_VFPR16_M2_E16_MASK = 3921,
+  PseudoVFSGNJN_VFPR16_M4_E16 = 3922,
+  PseudoVFSGNJN_VFPR16_M4_E16_MASK = 3923,
+  PseudoVFSGNJN_VFPR16_M8_E16 = 3924,
+  PseudoVFSGNJN_VFPR16_M8_E16_MASK = 3925,
+  PseudoVFSGNJN_VFPR16_MF2_E16 = 3926,
+  PseudoVFSGNJN_VFPR16_MF2_E16_MASK = 3927,
+  PseudoVFSGNJN_VFPR16_MF4_E16 = 3928,
+  PseudoVFSGNJN_VFPR16_MF4_E16_MASK = 3929,
+  PseudoVFSGNJN_VFPR32_M1_E32 = 3930,
+  PseudoVFSGNJN_VFPR32_M1_E32_MASK = 3931,
+  PseudoVFSGNJN_VFPR32_M2_E32 = 3932,
+  PseudoVFSGNJN_VFPR32_M2_E32_MASK = 3933,
+  PseudoVFSGNJN_VFPR32_M4_E32 = 3934,
+  PseudoVFSGNJN_VFPR32_M4_E32_MASK = 3935,
+  PseudoVFSGNJN_VFPR32_M8_E32 = 3936,
+  PseudoVFSGNJN_VFPR32_M8_E32_MASK = 3937,
+  PseudoVFSGNJN_VFPR32_MF2_E32 = 3938,
+  PseudoVFSGNJN_VFPR32_MF2_E32_MASK = 3939,
+  PseudoVFSGNJN_VFPR64_M1_E64 = 3940,
+  PseudoVFSGNJN_VFPR64_M1_E64_MASK = 3941,
+  PseudoVFSGNJN_VFPR64_M2_E64 = 3942,
+  PseudoVFSGNJN_VFPR64_M2_E64_MASK = 3943,
+  PseudoVFSGNJN_VFPR64_M4_E64 = 3944,
+  PseudoVFSGNJN_VFPR64_M4_E64_MASK = 3945,
+  PseudoVFSGNJN_VFPR64_M8_E64 = 3946,
+  PseudoVFSGNJN_VFPR64_M8_E64_MASK = 3947,
+  PseudoVFSGNJN_VV_M1_E16 = 3948,
+  PseudoVFSGNJN_VV_M1_E16_MASK = 3949,
+  PseudoVFSGNJN_VV_M1_E32 = 3950,
+  PseudoVFSGNJN_VV_M1_E32_MASK = 3951,
+  PseudoVFSGNJN_VV_M1_E64 = 3952,
+  PseudoVFSGNJN_VV_M1_E64_MASK = 3953,
+  PseudoVFSGNJN_VV_M2_E16 = 3954,
+  PseudoVFSGNJN_VV_M2_E16_MASK = 3955,
+  PseudoVFSGNJN_VV_M2_E32 = 3956,
+  PseudoVFSGNJN_VV_M2_E32_MASK = 3957,
+  PseudoVFSGNJN_VV_M2_E64 = 3958,
+  PseudoVFSGNJN_VV_M2_E64_MASK = 3959,
+  PseudoVFSGNJN_VV_M4_E16 = 3960,
+  PseudoVFSGNJN_VV_M4_E16_MASK = 3961,
+  PseudoVFSGNJN_VV_M4_E32 = 3962,
+  PseudoVFSGNJN_VV_M4_E32_MASK = 3963,
+  PseudoVFSGNJN_VV_M4_E64 = 3964,
+  PseudoVFSGNJN_VV_M4_E64_MASK = 3965,
+  PseudoVFSGNJN_VV_M8_E16 = 3966,
+  PseudoVFSGNJN_VV_M8_E16_MASK = 3967,
+  PseudoVFSGNJN_VV_M8_E32 = 3968,
+  PseudoVFSGNJN_VV_M8_E32_MASK = 3969,
+  PseudoVFSGNJN_VV_M8_E64 = 3970,
+  PseudoVFSGNJN_VV_M8_E64_MASK = 3971,
+  PseudoVFSGNJN_VV_MF2_E16 = 3972,
+  PseudoVFSGNJN_VV_MF2_E16_MASK = 3973,
+  PseudoVFSGNJN_VV_MF2_E32 = 3974,
+  PseudoVFSGNJN_VV_MF2_E32_MASK = 3975,
+  PseudoVFSGNJN_VV_MF4_E16 = 3976,
+  PseudoVFSGNJN_VV_MF4_E16_MASK = 3977,
+  PseudoVFSGNJX_ALT_VFPR16_M1_E16 = 3978,
+  PseudoVFSGNJX_ALT_VFPR16_M1_E16_MASK = 3979,
+  PseudoVFSGNJX_ALT_VFPR16_M2_E16 = 3980,
+  PseudoVFSGNJX_ALT_VFPR16_M2_E16_MASK = 3981,
+  PseudoVFSGNJX_ALT_VFPR16_M4_E16 = 3982,
+  PseudoVFSGNJX_ALT_VFPR16_M4_E16_MASK = 3983,
+  PseudoVFSGNJX_ALT_VFPR16_M8_E16 = 3984,
+  PseudoVFSGNJX_ALT_VFPR16_M8_E16_MASK = 3985,
+  PseudoVFSGNJX_ALT_VFPR16_MF2_E16 = 3986,
+  PseudoVFSGNJX_ALT_VFPR16_MF2_E16_MASK = 3987,
+  PseudoVFSGNJX_ALT_VFPR16_MF4_E16 = 3988,
+  PseudoVFSGNJX_ALT_VFPR16_MF4_E16_MASK = 3989,
+  PseudoVFSGNJX_ALT_VV_M1_E16 = 3990,
+  PseudoVFSGNJX_ALT_VV_M1_E16_MASK = 3991,
+  PseudoVFSGNJX_ALT_VV_M2_E16 = 3992,
+  PseudoVFSGNJX_ALT_VV_M2_E16_MASK = 3993,
+  PseudoVFSGNJX_ALT_VV_M4_E16 = 3994,
+  PseudoVFSGNJX_ALT_VV_M4_E16_MASK = 3995,
+  PseudoVFSGNJX_ALT_VV_M8_E16 = 3996,
+  PseudoVFSGNJX_ALT_VV_M8_E16_MASK = 3997,
+  PseudoVFSGNJX_ALT_VV_MF2_E16 = 3998,
+  PseudoVFSGNJX_ALT_VV_MF2_E16_MASK = 3999,
+  PseudoVFSGNJX_ALT_VV_MF4_E16 = 4000,
+  PseudoVFSGNJX_ALT_VV_MF4_E16_MASK = 4001,
+  PseudoVFSGNJX_VFPR16_M1_E16 = 4002,
+  PseudoVFSGNJX_VFPR16_M1_E16_MASK = 4003,
+  PseudoVFSGNJX_VFPR16_M2_E16 = 4004,
+  PseudoVFSGNJX_VFPR16_M2_E16_MASK = 4005,
+  PseudoVFSGNJX_VFPR16_M4_E16 = 4006,
+  PseudoVFSGNJX_VFPR16_M4_E16_MASK = 4007,
+  PseudoVFSGNJX_VFPR16_M8_E16 = 4008,
+  PseudoVFSGNJX_VFPR16_M8_E16_MASK = 4009,
+  PseudoVFSGNJX_VFPR16_MF2_E16 = 4010,
+  PseudoVFSGNJX_VFPR16_MF2_E16_MASK = 4011,
+  PseudoVFSGNJX_VFPR16_MF4_E16 = 4012,
+  PseudoVFSGNJX_VFPR16_MF4_E16_MASK = 4013,
+  PseudoVFSGNJX_VFPR32_M1_E32 = 4014,
+  PseudoVFSGNJX_VFPR32_M1_E32_MASK = 4015,
+  PseudoVFSGNJX_VFPR32_M2_E32 = 4016,
+  PseudoVFSGNJX_VFPR32_M2_E32_MASK = 4017,
+  PseudoVFSGNJX_VFPR32_M4_E32 = 4018,
+  PseudoVFSGNJX_VFPR32_M4_E32_MASK = 4019,
+  PseudoVFSGNJX_VFPR32_M8_E32 = 4020,
+  PseudoVFSGNJX_VFPR32_M8_E32_MASK = 4021,
+  PseudoVFSGNJX_VFPR32_MF2_E32 = 4022,
+  PseudoVFSGNJX_VFPR32_MF2_E32_MASK = 4023,
+  PseudoVFSGNJX_VFPR64_M1_E64 = 4024,
+  PseudoVFSGNJX_VFPR64_M1_E64_MASK = 4025,
+  PseudoVFSGNJX_VFPR64_M2_E64 = 4026,
+  PseudoVFSGNJX_VFPR64_M2_E64_MASK = 4027,
+  PseudoVFSGNJX_VFPR64_M4_E64 = 4028,
+  PseudoVFSGNJX_VFPR64_M4_E64_MASK = 4029,
+  PseudoVFSGNJX_VFPR64_M8_E64 = 4030,
+  PseudoVFSGNJX_VFPR64_M8_E64_MASK = 4031,
+  PseudoVFSGNJX_VV_M1_E16 = 4032,
+  PseudoVFSGNJX_VV_M1_E16_MASK = 4033,
+  PseudoVFSGNJX_VV_M1_E32 = 4034,
+  PseudoVFSGNJX_VV_M1_E32_MASK = 4035,
+  PseudoVFSGNJX_VV_M1_E64 = 4036,
+  PseudoVFSGNJX_VV_M1_E64_MASK = 4037,
+  PseudoVFSGNJX_VV_M2_E16 = 4038,
+  PseudoVFSGNJX_VV_M2_E16_MASK = 4039,
+  PseudoVFSGNJX_VV_M2_E32 = 4040,
+  PseudoVFSGNJX_VV_M2_E32_MASK = 4041,
+  PseudoVFSGNJX_VV_M2_E64 = 4042,
+  PseudoVFSGNJX_VV_M2_E64_MASK = 4043,
+  PseudoVFSGNJX_VV_M4_E16 = 4044,
+  PseudoVFSGNJX_VV_M4_E16_MASK = 4045,
+  PseudoVFSGNJX_VV_M4_E32 = 4046,
+  PseudoVFSGNJX_VV_M4_E32_MASK = 4047,
+  PseudoVFSGNJX_VV_M4_E64 = 4048,
+  PseudoVFSGNJX_VV_M4_E64_MASK = 4049,
+  PseudoVFSGNJX_VV_M8_E16 = 4050,
+  PseudoVFSGNJX_VV_M8_E16_MASK = 4051,
+  PseudoVFSGNJX_VV_M8_E32 = 4052,
+  PseudoVFSGNJX_VV_M8_E32_MASK = 4053,
+  PseudoVFSGNJX_VV_M8_E64 = 4054,
+  PseudoVFSGNJX_VV_M8_E64_MASK = 4055,
+  PseudoVFSGNJX_VV_MF2_E16 = 4056,
+  PseudoVFSGNJX_VV_MF2_E16_MASK = 4057,
+  PseudoVFSGNJX_VV_MF2_E32 = 4058,
+  PseudoVFSGNJX_VV_MF2_E32_MASK = 4059,
+  PseudoVFSGNJX_VV_MF4_E16 = 4060,
+  PseudoVFSGNJX_VV_MF4_E16_MASK = 4061,
+  PseudoVFSGNJ_ALT_VFPR16_M1_E16 = 4062,
+  PseudoVFSGNJ_ALT_VFPR16_M1_E16_MASK = 4063,
+  PseudoVFSGNJ_ALT_VFPR16_M2_E16 = 4064,
+  PseudoVFSGNJ_ALT_VFPR16_M2_E16_MASK = 4065,
+  PseudoVFSGNJ_ALT_VFPR16_M4_E16 = 4066,
+  PseudoVFSGNJ_ALT_VFPR16_M4_E16_MASK = 4067,
+  PseudoVFSGNJ_ALT_VFPR16_M8_E16 = 4068,
+  PseudoVFSGNJ_ALT_VFPR16_M8_E16_MASK = 4069,
+  PseudoVFSGNJ_ALT_VFPR16_MF2_E16 = 4070,
+  PseudoVFSGNJ_ALT_VFPR16_MF2_E16_MASK = 4071,
+  PseudoVFSGNJ_ALT_VFPR16_MF4_E16 = 4072,
+  PseudoVFSGNJ_ALT_VFPR16_MF4_E16_MASK = 4073,
+  PseudoVFSGNJ_ALT_VV_M1_E16 = 4074,
+  PseudoVFSGNJ_ALT_VV_M1_E16_MASK = 4075,
+  PseudoVFSGNJ_ALT_VV_M2_E16 = 4076,
+  PseudoVFSGNJ_ALT_VV_M2_E16_MASK = 4077,
+  PseudoVFSGNJ_ALT_VV_M4_E16 = 4078,
+  PseudoVFSGNJ_ALT_VV_M4_E16_MASK = 4079,
+  PseudoVFSGNJ_ALT_VV_M8_E16 = 4080,
+  PseudoVFSGNJ_ALT_VV_M8_E16_MASK = 4081,
+  PseudoVFSGNJ_ALT_VV_MF2_E16 = 4082,
+  PseudoVFSGNJ_ALT_VV_MF2_E16_MASK = 4083,
+  PseudoVFSGNJ_ALT_VV_MF4_E16 = 4084,
+  PseudoVFSGNJ_ALT_VV_MF4_E16_MASK = 4085,
+  PseudoVFSGNJ_VFPR16_M1_E16 = 4086,
+  PseudoVFSGNJ_VFPR16_M1_E16_MASK = 4087,
+  PseudoVFSGNJ_VFPR16_M2_E16 = 4088,
+  PseudoVFSGNJ_VFPR16_M2_E16_MASK = 4089,
+  PseudoVFSGNJ_VFPR16_M4_E16 = 4090,
+  PseudoVFSGNJ_VFPR16_M4_E16_MASK = 4091,
+  PseudoVFSGNJ_VFPR16_M8_E16 = 4092,
+  PseudoVFSGNJ_VFPR16_M8_E16_MASK = 4093,
+  PseudoVFSGNJ_VFPR16_MF2_E16 = 4094,
+  PseudoVFSGNJ_VFPR16_MF2_E16_MASK = 4095,
+  PseudoVFSGNJ_VFPR16_MF4_E16 = 4096,
+  PseudoVFSGNJ_VFPR16_MF4_E16_MASK = 4097,
+  PseudoVFSGNJ_VFPR32_M1_E32 = 4098,
+  PseudoVFSGNJ_VFPR32_M1_E32_MASK = 4099,
+  PseudoVFSGNJ_VFPR32_M2_E32 = 4100,
+  PseudoVFSGNJ_VFPR32_M2_E32_MASK = 4101,
+  PseudoVFSGNJ_VFPR32_M4_E32 = 4102,
+  PseudoVFSGNJ_VFPR32_M4_E32_MASK = 4103,
+  PseudoVFSGNJ_VFPR32_M8_E32 = 4104,
+  PseudoVFSGNJ_VFPR32_M8_E32_MASK = 4105,
+  PseudoVFSGNJ_VFPR32_MF2_E32 = 4106,
+  PseudoVFSGNJ_VFPR32_MF2_E32_MASK = 4107,
+  PseudoVFSGNJ_VFPR64_M1_E64 = 4108,
+  PseudoVFSGNJ_VFPR64_M1_E64_MASK = 4109,
+  PseudoVFSGNJ_VFPR64_M2_E64 = 4110,
+  PseudoVFSGNJ_VFPR64_M2_E64_MASK = 4111,
+  PseudoVFSGNJ_VFPR64_M4_E64 = 4112,
+  PseudoVFSGNJ_VFPR64_M4_E64_MASK = 4113,
+  PseudoVFSGNJ_VFPR64_M8_E64 = 4114,
+  PseudoVFSGNJ_VFPR64_M8_E64_MASK = 4115,
+  PseudoVFSGNJ_VV_M1_E16 = 4116,
+  PseudoVFSGNJ_VV_M1_E16_MASK = 4117,
+  PseudoVFSGNJ_VV_M1_E32 = 4118,
+  PseudoVFSGNJ_VV_M1_E32_MASK = 4119,
+  PseudoVFSGNJ_VV_M1_E64 = 4120,
+  PseudoVFSGNJ_VV_M1_E64_MASK = 4121,
+  PseudoVFSGNJ_VV_M2_E16 = 4122,
+  PseudoVFSGNJ_VV_M2_E16_MASK = 4123,
+  PseudoVFSGNJ_VV_M2_E32 = 4124,
+  PseudoVFSGNJ_VV_M2_E32_MASK = 4125,
+  PseudoVFSGNJ_VV_M2_E64 = 4126,
+  PseudoVFSGNJ_VV_M2_E64_MASK = 4127,
+  PseudoVFSGNJ_VV_M4_E16 = 4128,
+  PseudoVFSGNJ_VV_M4_E16_MASK = 4129,
+  PseudoVFSGNJ_VV_M4_E32 = 4130,
+  PseudoVFSGNJ_VV_M4_E32_MASK = 4131,
+  PseudoVFSGNJ_VV_M4_E64 = 4132,
+  PseudoVFSGNJ_VV_M4_E64_MASK = 4133,
+  PseudoVFSGNJ_VV_M8_E16 = 4134,
+  PseudoVFSGNJ_VV_M8_E16_MASK = 4135,
+  PseudoVFSGNJ_VV_M8_E32 = 4136,
+  PseudoVFSGNJ_VV_M8_E32_MASK = 4137,
+  PseudoVFSGNJ_VV_M8_E64 = 4138,
+  PseudoVFSGNJ_VV_M8_E64_MASK = 4139,
+  PseudoVFSGNJ_VV_MF2_E16 = 4140,
+  PseudoVFSGNJ_VV_MF2_E16_MASK = 4141,
+  PseudoVFSGNJ_VV_MF2_E32 = 4142,
+  PseudoVFSGNJ_VV_MF2_E32_MASK = 4143,
+  PseudoVFSGNJ_VV_MF4_E16 = 4144,
+  PseudoVFSGNJ_VV_MF4_E16_MASK = 4145,
+  PseudoVFSLIDE1DOWN_ALT_VFPR16_M1 = 4146,
+  PseudoVFSLIDE1DOWN_ALT_VFPR16_M1_MASK = 4147,
+  PseudoVFSLIDE1DOWN_ALT_VFPR16_M2 = 4148,
+  PseudoVFSLIDE1DOWN_ALT_VFPR16_M2_MASK = 4149,
+  PseudoVFSLIDE1DOWN_ALT_VFPR16_M4 = 4150,
+  PseudoVFSLIDE1DOWN_ALT_VFPR16_M4_MASK = 4151,
+  PseudoVFSLIDE1DOWN_ALT_VFPR16_M8 = 4152,
+  PseudoVFSLIDE1DOWN_ALT_VFPR16_M8_MASK = 4153,
+  PseudoVFSLIDE1DOWN_ALT_VFPR16_MF2 = 4154,
+  PseudoVFSLIDE1DOWN_ALT_VFPR16_MF2_MASK = 4155,
+  PseudoVFSLIDE1DOWN_ALT_VFPR16_MF4 = 4156,
+  PseudoVFSLIDE1DOWN_ALT_VFPR16_MF4_MASK = 4157,
+  PseudoVFSLIDE1DOWN_ALT_VFPR32_M1 = 4158,
+  PseudoVFSLIDE1DOWN_ALT_VFPR32_M1_MASK = 4159,
+  PseudoVFSLIDE1DOWN_ALT_VFPR32_M2 = 4160,
+  PseudoVFSLIDE1DOWN_ALT_VFPR32_M2_MASK = 4161,
+  PseudoVFSLIDE1DOWN_ALT_VFPR32_M4 = 4162,
+  PseudoVFSLIDE1DOWN_ALT_VFPR32_M4_MASK = 4163,
+  PseudoVFSLIDE1DOWN_ALT_VFPR32_M8 = 4164,
+  PseudoVFSLIDE1DOWN_ALT_VFPR32_M8_MASK = 4165,
+  PseudoVFSLIDE1DOWN_ALT_VFPR32_MF2 = 4166,
+  PseudoVFSLIDE1DOWN_ALT_VFPR32_MF2_MASK = 4167,
+  PseudoVFSLIDE1DOWN_ALT_VFPR64_M1 = 4168,
+  PseudoVFSLIDE1DOWN_ALT_VFPR64_M1_MASK = 4169,
+  PseudoVFSLIDE1DOWN_ALT_VFPR64_M2 = 4170,
+  PseudoVFSLIDE1DOWN_ALT_VFPR64_M2_MASK = 4171,
+  PseudoVFSLIDE1DOWN_ALT_VFPR64_M4 = 4172,
+  PseudoVFSLIDE1DOWN_ALT_VFPR64_M4_MASK = 4173,
+  PseudoVFSLIDE1DOWN_ALT_VFPR64_M8 = 4174,
+  PseudoVFSLIDE1DOWN_ALT_VFPR64_M8_MASK = 4175,
+  PseudoVFSLIDE1DOWN_VFPR16_M1 = 4176,
+  PseudoVFSLIDE1DOWN_VFPR16_M1_MASK = 4177,
+  PseudoVFSLIDE1DOWN_VFPR16_M2 = 4178,
+  PseudoVFSLIDE1DOWN_VFPR16_M2_MASK = 4179,
+  PseudoVFSLIDE1DOWN_VFPR16_M4 = 4180,
+  PseudoVFSLIDE1DOWN_VFPR16_M4_MASK = 4181,
+  PseudoVFSLIDE1DOWN_VFPR16_M8 = 4182,
+  PseudoVFSLIDE1DOWN_VFPR16_M8_MASK = 4183,
+  PseudoVFSLIDE1DOWN_VFPR16_MF2 = 4184,
+  PseudoVFSLIDE1DOWN_VFPR16_MF2_MASK = 4185,
+  PseudoVFSLIDE1DOWN_VFPR16_MF4 = 4186,
+  PseudoVFSLIDE1DOWN_VFPR16_MF4_MASK = 4187,
+  PseudoVFSLIDE1DOWN_VFPR32_M1 = 4188,
+  PseudoVFSLIDE1DOWN_VFPR32_M1_MASK = 4189,
+  PseudoVFSLIDE1DOWN_VFPR32_M2 = 4190,
+  PseudoVFSLIDE1DOWN_VFPR32_M2_MASK = 4191,
+  PseudoVFSLIDE1DOWN_VFPR32_M4 = 4192,
+  PseudoVFSLIDE1DOWN_VFPR32_M4_MASK = 4193,
+  PseudoVFSLIDE1DOWN_VFPR32_M8 = 4194,
+  PseudoVFSLIDE1DOWN_VFPR32_M8_MASK = 4195,
+  PseudoVFSLIDE1DOWN_VFPR32_MF2 = 4196,
+  PseudoVFSLIDE1DOWN_VFPR32_MF2_MASK = 4197,
+  PseudoVFSLIDE1DOWN_VFPR64_M1 = 4198,
+  PseudoVFSLIDE1DOWN_VFPR64_M1_MASK = 4199,
+  PseudoVFSLIDE1DOWN_VFPR64_M2 = 4200,
+  PseudoVFSLIDE1DOWN_VFPR64_M2_MASK = 4201,
+  PseudoVFSLIDE1DOWN_VFPR64_M4 = 4202,
+  PseudoVFSLIDE1DOWN_VFPR64_M4_MASK = 4203,
+  PseudoVFSLIDE1DOWN_VFPR64_M8 = 4204,
+  PseudoVFSLIDE1DOWN_VFPR64_M8_MASK = 4205,
+  PseudoVFSLIDE1UP_ALT_VFPR16_M1 = 4206,
+  PseudoVFSLIDE1UP_ALT_VFPR16_M1_MASK = 4207,
+  PseudoVFSLIDE1UP_ALT_VFPR16_M2 = 4208,
+  PseudoVFSLIDE1UP_ALT_VFPR16_M2_MASK = 4209,
+  PseudoVFSLIDE1UP_ALT_VFPR16_M4 = 4210,
+  PseudoVFSLIDE1UP_ALT_VFPR16_M4_MASK = 4211,
+  PseudoVFSLIDE1UP_ALT_VFPR16_M8 = 4212,
+  PseudoVFSLIDE1UP_ALT_VFPR16_M8_MASK = 4213,
+  PseudoVFSLIDE1UP_ALT_VFPR16_MF2 = 4214,
+  PseudoVFSLIDE1UP_ALT_VFPR16_MF2_MASK = 4215,
+  PseudoVFSLIDE1UP_ALT_VFPR16_MF4 = 4216,
+  PseudoVFSLIDE1UP_ALT_VFPR16_MF4_MASK = 4217,
+  PseudoVFSLIDE1UP_ALT_VFPR32_M1 = 4218,
+  PseudoVFSLIDE1UP_ALT_VFPR32_M1_MASK = 4219,
+  PseudoVFSLIDE1UP_ALT_VFPR32_M2 = 4220,
+  PseudoVFSLIDE1UP_ALT_VFPR32_M2_MASK = 4221,
+  PseudoVFSLIDE1UP_ALT_VFPR32_M4 = 4222,
+  PseudoVFSLIDE1UP_ALT_VFPR32_M4_MASK = 4223,
+  PseudoVFSLIDE1UP_ALT_VFPR32_M8 = 4224,
+  PseudoVFSLIDE1UP_ALT_VFPR32_M8_MASK = 4225,
+  PseudoVFSLIDE1UP_ALT_VFPR32_MF2 = 4226,
+  PseudoVFSLIDE1UP_ALT_VFPR32_MF2_MASK = 4227,
+  PseudoVFSLIDE1UP_ALT_VFPR64_M1 = 4228,
+  PseudoVFSLIDE1UP_ALT_VFPR64_M1_MASK = 4229,
+  PseudoVFSLIDE1UP_ALT_VFPR64_M2 = 4230,
+  PseudoVFSLIDE1UP_ALT_VFPR64_M2_MASK = 4231,
+  PseudoVFSLIDE1UP_ALT_VFPR64_M4 = 4232,
+  PseudoVFSLIDE1UP_ALT_VFPR64_M4_MASK = 4233,
+  PseudoVFSLIDE1UP_ALT_VFPR64_M8 = 4234,
+  PseudoVFSLIDE1UP_ALT_VFPR64_M8_MASK = 4235,
+  PseudoVFSLIDE1UP_VFPR16_M1 = 4236,
+  PseudoVFSLIDE1UP_VFPR16_M1_MASK = 4237,
+  PseudoVFSLIDE1UP_VFPR16_M2 = 4238,
+  PseudoVFSLIDE1UP_VFPR16_M2_MASK = 4239,
+  PseudoVFSLIDE1UP_VFPR16_M4 = 4240,
+  PseudoVFSLIDE1UP_VFPR16_M4_MASK = 4241,
+  PseudoVFSLIDE1UP_VFPR16_M8 = 4242,
+  PseudoVFSLIDE1UP_VFPR16_M8_MASK = 4243,
+  PseudoVFSLIDE1UP_VFPR16_MF2 = 4244,
+  PseudoVFSLIDE1UP_VFPR16_MF2_MASK = 4245,
+  PseudoVFSLIDE1UP_VFPR16_MF4 = 4246,
+  PseudoVFSLIDE1UP_VFPR16_MF4_MASK = 4247,
+  PseudoVFSLIDE1UP_VFPR32_M1 = 4248,
+  PseudoVFSLIDE1UP_VFPR32_M1_MASK = 4249,
+  PseudoVFSLIDE1UP_VFPR32_M2 = 4250,
+  PseudoVFSLIDE1UP_VFPR32_M2_MASK = 4251,
+  PseudoVFSLIDE1UP_VFPR32_M4 = 4252,
+  PseudoVFSLIDE1UP_VFPR32_M4_MASK = 4253,
+  PseudoVFSLIDE1UP_VFPR32_M8 = 4254,
+  PseudoVFSLIDE1UP_VFPR32_M8_MASK = 4255,
+  PseudoVFSLIDE1UP_VFPR32_MF2 = 4256,
+  PseudoVFSLIDE1UP_VFPR32_MF2_MASK = 4257,
+  PseudoVFSLIDE1UP_VFPR64_M1 = 4258,
+  PseudoVFSLIDE1UP_VFPR64_M1_MASK = 4259,
+  PseudoVFSLIDE1UP_VFPR64_M2 = 4260,
+  PseudoVFSLIDE1UP_VFPR64_M2_MASK = 4261,
+  PseudoVFSLIDE1UP_VFPR64_M4 = 4262,
+  PseudoVFSLIDE1UP_VFPR64_M4_MASK = 4263,
+  PseudoVFSLIDE1UP_VFPR64_M8 = 4264,
+  PseudoVFSLIDE1UP_VFPR64_M8_MASK = 4265,
+  PseudoVFSQRT_V_M1_E16 = 4266,
+  PseudoVFSQRT_V_M1_E16_MASK = 4267,
+  PseudoVFSQRT_V_M1_E32 = 4268,
+  PseudoVFSQRT_V_M1_E32_MASK = 4269,
+  PseudoVFSQRT_V_M1_E64 = 4270,
+  PseudoVFSQRT_V_M1_E64_MASK = 4271,
+  PseudoVFSQRT_V_M2_E16 = 4272,
+  PseudoVFSQRT_V_M2_E16_MASK = 4273,
+  PseudoVFSQRT_V_M2_E32 = 4274,
+  PseudoVFSQRT_V_M2_E32_MASK = 4275,
+  PseudoVFSQRT_V_M2_E64 = 4276,
+  PseudoVFSQRT_V_M2_E64_MASK = 4277,
+  PseudoVFSQRT_V_M4_E16 = 4278,
+  PseudoVFSQRT_V_M4_E16_MASK = 4279,
+  PseudoVFSQRT_V_M4_E32 = 4280,
+  PseudoVFSQRT_V_M4_E32_MASK = 4281,
+  PseudoVFSQRT_V_M4_E64 = 4282,
+  PseudoVFSQRT_V_M4_E64_MASK = 4283,
+  PseudoVFSQRT_V_M8_E16 = 4284,
+  PseudoVFSQRT_V_M8_E16_MASK = 4285,
+  PseudoVFSQRT_V_M8_E32 = 4286,
+  PseudoVFSQRT_V_M8_E32_MASK = 4287,
+  PseudoVFSQRT_V_M8_E64 = 4288,
+  PseudoVFSQRT_V_M8_E64_MASK = 4289,
+  PseudoVFSQRT_V_MF2_E16 = 4290,
+  PseudoVFSQRT_V_MF2_E16_MASK = 4291,
+  PseudoVFSQRT_V_MF2_E32 = 4292,
+  PseudoVFSQRT_V_MF2_E32_MASK = 4293,
+  PseudoVFSQRT_V_MF4_E16 = 4294,
+  PseudoVFSQRT_V_MF4_E16_MASK = 4295,
+  PseudoVFSUB_ALT_VFPR16_M1_E16 = 4296,
+  PseudoVFSUB_ALT_VFPR16_M1_E16_MASK = 4297,
+  PseudoVFSUB_ALT_VFPR16_M2_E16 = 4298,
+  PseudoVFSUB_ALT_VFPR16_M2_E16_MASK = 4299,
+  PseudoVFSUB_ALT_VFPR16_M4_E16 = 4300,
+  PseudoVFSUB_ALT_VFPR16_M4_E16_MASK = 4301,
+  PseudoVFSUB_ALT_VFPR16_M8_E16 = 4302,
+  PseudoVFSUB_ALT_VFPR16_M8_E16_MASK = 4303,
+  PseudoVFSUB_ALT_VFPR16_MF2_E16 = 4304,
+  PseudoVFSUB_ALT_VFPR16_MF2_E16_MASK = 4305,
+  PseudoVFSUB_ALT_VFPR16_MF4_E16 = 4306,
+  PseudoVFSUB_ALT_VFPR16_MF4_E16_MASK = 4307,
+  PseudoVFSUB_ALT_VV_M1_E16 = 4308,
+  PseudoVFSUB_ALT_VV_M1_E16_MASK = 4309,
+  PseudoVFSUB_ALT_VV_M2_E16 = 4310,
+  PseudoVFSUB_ALT_VV_M2_E16_MASK = 4311,
+  PseudoVFSUB_ALT_VV_M4_E16 = 4312,
+  PseudoVFSUB_ALT_VV_M4_E16_MASK = 4313,
+  PseudoVFSUB_ALT_VV_M8_E16 = 4314,
+  PseudoVFSUB_ALT_VV_M8_E16_MASK = 4315,
+  PseudoVFSUB_ALT_VV_MF2_E16 = 4316,
+  PseudoVFSUB_ALT_VV_MF2_E16_MASK = 4317,
+  PseudoVFSUB_ALT_VV_MF4_E16 = 4318,
+  PseudoVFSUB_ALT_VV_MF4_E16_MASK = 4319,
+  PseudoVFSUB_VFPR16_M1_E16 = 4320,
+  PseudoVFSUB_VFPR16_M1_E16_MASK = 4321,
+  PseudoVFSUB_VFPR16_M2_E16 = 4322,
+  PseudoVFSUB_VFPR16_M2_E16_MASK = 4323,
+  PseudoVFSUB_VFPR16_M4_E16 = 4324,
+  PseudoVFSUB_VFPR16_M4_E16_MASK = 4325,
+  PseudoVFSUB_VFPR16_M8_E16 = 4326,
+  PseudoVFSUB_VFPR16_M8_E16_MASK = 4327,
+  PseudoVFSUB_VFPR16_MF2_E16 = 4328,
+  PseudoVFSUB_VFPR16_MF2_E16_MASK = 4329,
+  PseudoVFSUB_VFPR16_MF4_E16 = 4330,
+  PseudoVFSUB_VFPR16_MF4_E16_MASK = 4331,
+  PseudoVFSUB_VFPR32_M1_E32 = 4332,
+  PseudoVFSUB_VFPR32_M1_E32_MASK = 4333,
+  PseudoVFSUB_VFPR32_M2_E32 = 4334,
+  PseudoVFSUB_VFPR32_M2_E32_MASK = 4335,
+  PseudoVFSUB_VFPR32_M4_E32 = 4336,
+  PseudoVFSUB_VFPR32_M4_E32_MASK = 4337,
+  PseudoVFSUB_VFPR32_M8_E32 = 4338,
+  PseudoVFSUB_VFPR32_M8_E32_MASK = 4339,
+  PseudoVFSUB_VFPR32_MF2_E32 = 4340,
+  PseudoVFSUB_VFPR32_MF2_E32_MASK = 4341,
+  PseudoVFSUB_VFPR64_M1_E64 = 4342,
+  PseudoVFSUB_VFPR64_M1_E64_MASK = 4343,
+  PseudoVFSUB_VFPR64_M2_E64 = 4344,
+  PseudoVFSUB_VFPR64_M2_E64_MASK = 4345,
+  PseudoVFSUB_VFPR64_M4_E64 = 4346,
+  PseudoVFSUB_VFPR64_M4_E64_MASK = 4347,
+  PseudoVFSUB_VFPR64_M8_E64 = 4348,
+  PseudoVFSUB_VFPR64_M8_E64_MASK = 4349,
+  PseudoVFSUB_VV_M1_E16 = 4350,
+  PseudoVFSUB_VV_M1_E16_MASK = 4351,
+  PseudoVFSUB_VV_M1_E32 = 4352,
+  PseudoVFSUB_VV_M1_E32_MASK = 4353,
+  PseudoVFSUB_VV_M1_E64 = 4354,
+  PseudoVFSUB_VV_M1_E64_MASK = 4355,
+  PseudoVFSUB_VV_M2_E16 = 4356,
+  PseudoVFSUB_VV_M2_E16_MASK = 4357,
+  PseudoVFSUB_VV_M2_E32 = 4358,
+  PseudoVFSUB_VV_M2_E32_MASK = 4359,
+  PseudoVFSUB_VV_M2_E64 = 4360,
+  PseudoVFSUB_VV_M2_E64_MASK = 4361,
+  PseudoVFSUB_VV_M4_E16 = 4362,
+  PseudoVFSUB_VV_M4_E16_MASK = 4363,
+  PseudoVFSUB_VV_M4_E32 = 4364,
+  PseudoVFSUB_VV_M4_E32_MASK = 4365,
+  PseudoVFSUB_VV_M4_E64 = 4366,
+  PseudoVFSUB_VV_M4_E64_MASK = 4367,
+  PseudoVFSUB_VV_M8_E16 = 4368,
+  PseudoVFSUB_VV_M8_E16_MASK = 4369,
+  PseudoVFSUB_VV_M8_E32 = 4370,
+  PseudoVFSUB_VV_M8_E32_MASK = 4371,
+  PseudoVFSUB_VV_M8_E64 = 4372,
+  PseudoVFSUB_VV_M8_E64_MASK = 4373,
+  PseudoVFSUB_VV_MF2_E16 = 4374,
+  PseudoVFSUB_VV_MF2_E16_MASK = 4375,
+  PseudoVFSUB_VV_MF2_E32 = 4376,
+  PseudoVFSUB_VV_MF2_E32_MASK = 4377,
+  PseudoVFSUB_VV_MF4_E16 = 4378,
+  PseudoVFSUB_VV_MF4_E16_MASK = 4379,
+  PseudoVFWADD_ALT_VFPR16_M1_E16 = 4380,
+  PseudoVFWADD_ALT_VFPR16_M1_E16_MASK = 4381,
+  PseudoVFWADD_ALT_VFPR16_M2_E16 = 4382,
+  PseudoVFWADD_ALT_VFPR16_M2_E16_MASK = 4383,
+  PseudoVFWADD_ALT_VFPR16_M4_E16 = 4384,
+  PseudoVFWADD_ALT_VFPR16_M4_E16_MASK = 4385,
+  PseudoVFWADD_ALT_VFPR16_MF2_E16 = 4386,
+  PseudoVFWADD_ALT_VFPR16_MF2_E16_MASK = 4387,
+  PseudoVFWADD_ALT_VFPR16_MF4_E16 = 4388,
+  PseudoVFWADD_ALT_VFPR16_MF4_E16_MASK = 4389,
+  PseudoVFWADD_ALT_VV_M1_E16 = 4390,
+  PseudoVFWADD_ALT_VV_M1_E16_MASK = 4391,
+  PseudoVFWADD_ALT_VV_M2_E16 = 4392,
+  PseudoVFWADD_ALT_VV_M2_E16_MASK = 4393,
+  PseudoVFWADD_ALT_VV_M4_E16 = 4394,
+  PseudoVFWADD_ALT_VV_M4_E16_MASK = 4395,
+  PseudoVFWADD_ALT_VV_MF2_E16 = 4396,
+  PseudoVFWADD_ALT_VV_MF2_E16_MASK = 4397,
+  PseudoVFWADD_ALT_VV_MF4_E16 = 4398,
+  PseudoVFWADD_ALT_VV_MF4_E16_MASK = 4399,
+  PseudoVFWADD_ALT_WFPR16_M1_E16 = 4400,
+  PseudoVFWADD_ALT_WFPR16_M1_E16_MASK = 4401,
+  PseudoVFWADD_ALT_WFPR16_M2_E16 = 4402,
+  PseudoVFWADD_ALT_WFPR16_M2_E16_MASK = 4403,
+  PseudoVFWADD_ALT_WFPR16_M4_E16 = 4404,
+  PseudoVFWADD_ALT_WFPR16_M4_E16_MASK = 4405,
+  PseudoVFWADD_ALT_WFPR16_MF2_E16 = 4406,
+  PseudoVFWADD_ALT_WFPR16_MF2_E16_MASK = 4407,
+  PseudoVFWADD_ALT_WFPR16_MF4_E16 = 4408,
+  PseudoVFWADD_ALT_WFPR16_MF4_E16_MASK = 4409,
+  PseudoVFWADD_ALT_WV_M1_E16 = 4410,
+  PseudoVFWADD_ALT_WV_M1_E16_MASK = 4411,
+  PseudoVFWADD_ALT_WV_M1_E16_MASK_TIED = 4412,
+  PseudoVFWADD_ALT_WV_M1_E16_TIED = 4413,
+  PseudoVFWADD_ALT_WV_M2_E16 = 4414,
+  PseudoVFWADD_ALT_WV_M2_E16_MASK = 4415,
+  PseudoVFWADD_ALT_WV_M2_E16_MASK_TIED = 4416,
+  PseudoVFWADD_ALT_WV_M2_E16_TIED = 4417,
+  PseudoVFWADD_ALT_WV_M4_E16 = 4418,
+  PseudoVFWADD_ALT_WV_M4_E16_MASK = 4419,
+  PseudoVFWADD_ALT_WV_M4_E16_MASK_TIED = 4420,
+  PseudoVFWADD_ALT_WV_M4_E16_TIED = 4421,
+  PseudoVFWADD_ALT_WV_MF2_E16 = 4422,
+  PseudoVFWADD_ALT_WV_MF2_E16_MASK = 4423,
+  PseudoVFWADD_ALT_WV_MF2_E16_MASK_TIED = 4424,
+  PseudoVFWADD_ALT_WV_MF2_E16_TIED = 4425,
+  PseudoVFWADD_ALT_WV_MF4_E16 = 4426,
+  PseudoVFWADD_ALT_WV_MF4_E16_MASK = 4427,
+  PseudoVFWADD_ALT_WV_MF4_E16_MASK_TIED = 4428,
+  PseudoVFWADD_ALT_WV_MF4_E16_TIED = 4429,
+  PseudoVFWADD_VFPR16_M1_E16 = 4430,
+  PseudoVFWADD_VFPR16_M1_E16_MASK = 4431,
+  PseudoVFWADD_VFPR16_M2_E16 = 4432,
+  PseudoVFWADD_VFPR16_M2_E16_MASK = 4433,
+  PseudoVFWADD_VFPR16_M4_E16 = 4434,
+  PseudoVFWADD_VFPR16_M4_E16_MASK = 4435,
+  PseudoVFWADD_VFPR16_MF2_E16 = 4436,
+  PseudoVFWADD_VFPR16_MF2_E16_MASK = 4437,
+  PseudoVFWADD_VFPR16_MF4_E16 = 4438,
+  PseudoVFWADD_VFPR16_MF4_E16_MASK = 4439,
+  PseudoVFWADD_VFPR32_M1_E32 = 4440,
+  PseudoVFWADD_VFPR32_M1_E32_MASK = 4441,
+  PseudoVFWADD_VFPR32_M2_E32 = 4442,
+  PseudoVFWADD_VFPR32_M2_E32_MASK = 4443,
+  PseudoVFWADD_VFPR32_M4_E32 = 4444,
+  PseudoVFWADD_VFPR32_M4_E32_MASK = 4445,
+  PseudoVFWADD_VFPR32_MF2_E32 = 4446,
+  PseudoVFWADD_VFPR32_MF2_E32_MASK = 4447,
+  PseudoVFWADD_VV_M1_E16 = 4448,
+  PseudoVFWADD_VV_M1_E16_MASK = 4449,
+  PseudoVFWADD_VV_M1_E32 = 4450,
+  PseudoVFWADD_VV_M1_E32_MASK = 4451,
+  PseudoVFWADD_VV_M2_E16 = 4452,
+  PseudoVFWADD_VV_M2_E16_MASK = 4453,
+  PseudoVFWADD_VV_M2_E32 = 4454,
+  PseudoVFWADD_VV_M2_E32_MASK = 4455,
+  PseudoVFWADD_VV_M4_E16 = 4456,
+  PseudoVFWADD_VV_M4_E16_MASK = 4457,
+  PseudoVFWADD_VV_M4_E32 = 4458,
+  PseudoVFWADD_VV_M4_E32_MASK = 4459,
+  PseudoVFWADD_VV_MF2_E16 = 4460,
+  PseudoVFWADD_VV_MF2_E16_MASK = 4461,
+  PseudoVFWADD_VV_MF2_E32 = 4462,
+  PseudoVFWADD_VV_MF2_E32_MASK = 4463,
+  PseudoVFWADD_VV_MF4_E16 = 4464,
+  PseudoVFWADD_VV_MF4_E16_MASK = 4465,
+  PseudoVFWADD_WFPR16_M1_E16 = 4466,
+  PseudoVFWADD_WFPR16_M1_E16_MASK = 4467,
+  PseudoVFWADD_WFPR16_M2_E16 = 4468,
+  PseudoVFWADD_WFPR16_M2_E16_MASK = 4469,
+  PseudoVFWADD_WFPR16_M4_E16 = 4470,
+  PseudoVFWADD_WFPR16_M4_E16_MASK = 4471,
+  PseudoVFWADD_WFPR16_MF2_E16 = 4472,
+  PseudoVFWADD_WFPR16_MF2_E16_MASK = 4473,
+  PseudoVFWADD_WFPR16_MF4_E16 = 4474,
+  PseudoVFWADD_WFPR16_MF4_E16_MASK = 4475,
+  PseudoVFWADD_WFPR32_M1_E32 = 4476,
+  PseudoVFWADD_WFPR32_M1_E32_MASK = 4477,
+  PseudoVFWADD_WFPR32_M2_E32 = 4478,
+  PseudoVFWADD_WFPR32_M2_E32_MASK = 4479,
+  PseudoVFWADD_WFPR32_M4_E32 = 4480,
+  PseudoVFWADD_WFPR32_M4_E32_MASK = 4481,
+  PseudoVFWADD_WFPR32_MF2_E32 = 4482,
+  PseudoVFWADD_WFPR32_MF2_E32_MASK = 4483,
+  PseudoVFWADD_WV_M1_E16 = 4484,
+  PseudoVFWADD_WV_M1_E16_MASK = 4485,
+  PseudoVFWADD_WV_M1_E16_MASK_TIED = 4486,
+  PseudoVFWADD_WV_M1_E16_TIED = 4487,
+  PseudoVFWADD_WV_M1_E32 = 4488,
+  PseudoVFWADD_WV_M1_E32_MASK = 4489,
+  PseudoVFWADD_WV_M1_E32_MASK_TIED = 4490,
+  PseudoVFWADD_WV_M1_E32_TIED = 4491,
+  PseudoVFWADD_WV_M2_E16 = 4492,
+  PseudoVFWADD_WV_M2_E16_MASK = 4493,
+  PseudoVFWADD_WV_M2_E16_MASK_TIED = 4494,
+  PseudoVFWADD_WV_M2_E16_TIED = 4495,
+  PseudoVFWADD_WV_M2_E32 = 4496,
+  PseudoVFWADD_WV_M2_E32_MASK = 4497,
+  PseudoVFWADD_WV_M2_E32_MASK_TIED = 4498,
+  PseudoVFWADD_WV_M2_E32_TIED = 4499,
+  PseudoVFWADD_WV_M4_E16 = 4500,
+  PseudoVFWADD_WV_M4_E16_MASK = 4501,
+  PseudoVFWADD_WV_M4_E16_MASK_TIED = 4502,
+  PseudoVFWADD_WV_M4_E16_TIED = 4503,
+  PseudoVFWADD_WV_M4_E32 = 4504,
+  PseudoVFWADD_WV_M4_E32_MASK = 4505,
+  PseudoVFWADD_WV_M4_E32_MASK_TIED = 4506,
+  PseudoVFWADD_WV_M4_E32_TIED = 4507,
+  PseudoVFWADD_WV_MF2_E16 = 4508,
+  PseudoVFWADD_WV_MF2_E16_MASK = 4509,
+  PseudoVFWADD_WV_MF2_E16_MASK_TIED = 4510,
+  PseudoVFWADD_WV_MF2_E16_TIED = 4511,
+  PseudoVFWADD_WV_MF2_E32 = 4512,
+  PseudoVFWADD_WV_MF2_E32_MASK = 4513,
+  PseudoVFWADD_WV_MF2_E32_MASK_TIED = 4514,
+  PseudoVFWADD_WV_MF2_E32_TIED = 4515,
+  PseudoVFWADD_WV_MF4_E16 = 4516,
+  PseudoVFWADD_WV_MF4_E16_MASK = 4517,
+  PseudoVFWADD_WV_MF4_E16_MASK_TIED = 4518,
+  PseudoVFWADD_WV_MF4_E16_TIED = 4519,
+  PseudoVFWCVTBF16_F_F_ALT_V_M1_E8 = 4520,
+  PseudoVFWCVTBF16_F_F_ALT_V_M1_E8_MASK = 4521,
+  PseudoVFWCVTBF16_F_F_ALT_V_M2_E8 = 4522,
+  PseudoVFWCVTBF16_F_F_ALT_V_M2_E8_MASK = 4523,
+  PseudoVFWCVTBF16_F_F_ALT_V_M4_E8 = 4524,
+  PseudoVFWCVTBF16_F_F_ALT_V_M4_E8_MASK = 4525,
+  PseudoVFWCVTBF16_F_F_ALT_V_MF2_E8 = 4526,
+  PseudoVFWCVTBF16_F_F_ALT_V_MF2_E8_MASK = 4527,
+  PseudoVFWCVTBF16_F_F_ALT_V_MF4_E8 = 4528,
+  PseudoVFWCVTBF16_F_F_ALT_V_MF4_E8_MASK = 4529,
+  PseudoVFWCVTBF16_F_F_ALT_V_MF8_E8 = 4530,
+  PseudoVFWCVTBF16_F_F_ALT_V_MF8_E8_MASK = 4531,
+  PseudoVFWCVTBF16_F_F_V_M1_E16 = 4532,
+  PseudoVFWCVTBF16_F_F_V_M1_E16_MASK = 4533,
+  PseudoVFWCVTBF16_F_F_V_M1_E32 = 4534,
+  PseudoVFWCVTBF16_F_F_V_M1_E32_MASK = 4535,
+  PseudoVFWCVTBF16_F_F_V_M1_E8 = 4536,
+  PseudoVFWCVTBF16_F_F_V_M1_E8_MASK = 4537,
+  PseudoVFWCVTBF16_F_F_V_M2_E16 = 4538,
+  PseudoVFWCVTBF16_F_F_V_M2_E16_MASK = 4539,
+  PseudoVFWCVTBF16_F_F_V_M2_E32 = 4540,
+  PseudoVFWCVTBF16_F_F_V_M2_E32_MASK = 4541,
+  PseudoVFWCVTBF16_F_F_V_M2_E8 = 4542,
+  PseudoVFWCVTBF16_F_F_V_M2_E8_MASK = 4543,
+  PseudoVFWCVTBF16_F_F_V_M4_E16 = 4544,
+  PseudoVFWCVTBF16_F_F_V_M4_E16_MASK = 4545,
+  PseudoVFWCVTBF16_F_F_V_M4_E32 = 4546,
+  PseudoVFWCVTBF16_F_F_V_M4_E32_MASK = 4547,
+  PseudoVFWCVTBF16_F_F_V_M4_E8 = 4548,
+  PseudoVFWCVTBF16_F_F_V_M4_E8_MASK = 4549,
+  PseudoVFWCVTBF16_F_F_V_MF2_E16 = 4550,
+  PseudoVFWCVTBF16_F_F_V_MF2_E16_MASK = 4551,
+  PseudoVFWCVTBF16_F_F_V_MF2_E32 = 4552,
+  PseudoVFWCVTBF16_F_F_V_MF2_E32_MASK = 4553,
+  PseudoVFWCVTBF16_F_F_V_MF2_E8 = 4554,
+  PseudoVFWCVTBF16_F_F_V_MF2_E8_MASK = 4555,
+  PseudoVFWCVTBF16_F_F_V_MF4_E16 = 4556,
+  PseudoVFWCVTBF16_F_F_V_MF4_E16_MASK = 4557,
+  PseudoVFWCVTBF16_F_F_V_MF4_E8 = 4558,
+  PseudoVFWCVTBF16_F_F_V_MF4_E8_MASK = 4559,
+  PseudoVFWCVTBF16_F_F_V_MF8_E8 = 4560,
+  PseudoVFWCVTBF16_F_F_V_MF8_E8_MASK = 4561,
+  PseudoVFWCVT_F_F_ALT_V_M1_E16 = 4562,
+  PseudoVFWCVT_F_F_ALT_V_M1_E16_MASK = 4563,
+  PseudoVFWCVT_F_F_ALT_V_M2_E16 = 4564,
+  PseudoVFWCVT_F_F_ALT_V_M2_E16_MASK = 4565,
+  PseudoVFWCVT_F_F_ALT_V_M4_E16 = 4566,
+  PseudoVFWCVT_F_F_ALT_V_M4_E16_MASK = 4567,
+  PseudoVFWCVT_F_F_ALT_V_MF2_E16 = 4568,
+  PseudoVFWCVT_F_F_ALT_V_MF2_E16_MASK = 4569,
+  PseudoVFWCVT_F_F_ALT_V_MF4_E16 = 4570,
+  PseudoVFWCVT_F_F_ALT_V_MF4_E16_MASK = 4571,
+  PseudoVFWCVT_F_F_V_M1_E16 = 4572,
+  PseudoVFWCVT_F_F_V_M1_E16_MASK = 4573,
+  PseudoVFWCVT_F_F_V_M1_E32 = 4574,
+  PseudoVFWCVT_F_F_V_M1_E32_MASK = 4575,
+  PseudoVFWCVT_F_F_V_M2_E16 = 4576,
+  PseudoVFWCVT_F_F_V_M2_E16_MASK = 4577,
+  PseudoVFWCVT_F_F_V_M2_E32 = 4578,
+  PseudoVFWCVT_F_F_V_M2_E32_MASK = 4579,
+  PseudoVFWCVT_F_F_V_M4_E16 = 4580,
+  PseudoVFWCVT_F_F_V_M4_E16_MASK = 4581,
+  PseudoVFWCVT_F_F_V_M4_E32 = 4582,
+  PseudoVFWCVT_F_F_V_M4_E32_MASK = 4583,
+  PseudoVFWCVT_F_F_V_MF2_E16 = 4584,
+  PseudoVFWCVT_F_F_V_MF2_E16_MASK = 4585,
+  PseudoVFWCVT_F_F_V_MF2_E32 = 4586,
+  PseudoVFWCVT_F_F_V_MF2_E32_MASK = 4587,
+  PseudoVFWCVT_F_F_V_MF4_E16 = 4588,
+  PseudoVFWCVT_F_F_V_MF4_E16_MASK = 4589,
+  PseudoVFWCVT_F_XU_ALT_V_M1_E8 = 4590,
+  PseudoVFWCVT_F_XU_ALT_V_M1_E8_MASK = 4591,
+  PseudoVFWCVT_F_XU_ALT_V_M2_E8 = 4592,
+  PseudoVFWCVT_F_XU_ALT_V_M2_E8_MASK = 4593,
+  PseudoVFWCVT_F_XU_ALT_V_M4_E8 = 4594,
+  PseudoVFWCVT_F_XU_ALT_V_M4_E8_MASK = 4595,
+  PseudoVFWCVT_F_XU_ALT_V_MF2_E8 = 4596,
+  PseudoVFWCVT_F_XU_ALT_V_MF2_E8_MASK = 4597,
+  PseudoVFWCVT_F_XU_ALT_V_MF4_E8 = 4598,
+  PseudoVFWCVT_F_XU_ALT_V_MF4_E8_MASK = 4599,
+  PseudoVFWCVT_F_XU_ALT_V_MF8_E8 = 4600,
+  PseudoVFWCVT_F_XU_ALT_V_MF8_E8_MASK = 4601,
+  PseudoVFWCVT_F_XU_V_M1_E16 = 4602,
+  PseudoVFWCVT_F_XU_V_M1_E16_MASK = 4603,
+  PseudoVFWCVT_F_XU_V_M1_E32 = 4604,
+  PseudoVFWCVT_F_XU_V_M1_E32_MASK = 4605,
+  PseudoVFWCVT_F_XU_V_M1_E8 = 4606,
+  PseudoVFWCVT_F_XU_V_M1_E8_MASK = 4607,
+  PseudoVFWCVT_F_XU_V_M2_E16 = 4608,
+  PseudoVFWCVT_F_XU_V_M2_E16_MASK = 4609,
+  PseudoVFWCVT_F_XU_V_M2_E32 = 4610,
+  PseudoVFWCVT_F_XU_V_M2_E32_MASK = 4611,
+  PseudoVFWCVT_F_XU_V_M2_E8 = 4612,
+  PseudoVFWCVT_F_XU_V_M2_E8_MASK = 4613,
+  PseudoVFWCVT_F_XU_V_M4_E16 = 4614,
+  PseudoVFWCVT_F_XU_V_M4_E16_MASK = 4615,
+  PseudoVFWCVT_F_XU_V_M4_E32 = 4616,
+  PseudoVFWCVT_F_XU_V_M4_E32_MASK = 4617,
+  PseudoVFWCVT_F_XU_V_M4_E8 = 4618,
+  PseudoVFWCVT_F_XU_V_M4_E8_MASK = 4619,
+  PseudoVFWCVT_F_XU_V_MF2_E16 = 4620,
+  PseudoVFWCVT_F_XU_V_MF2_E16_MASK = 4621,
+  PseudoVFWCVT_F_XU_V_MF2_E32 = 4622,
+  PseudoVFWCVT_F_XU_V_MF2_E32_MASK = 4623,
+  PseudoVFWCVT_F_XU_V_MF2_E8 = 4624,
+  PseudoVFWCVT_F_XU_V_MF2_E8_MASK = 4625,
+  PseudoVFWCVT_F_XU_V_MF4_E16 = 4626,
+  PseudoVFWCVT_F_XU_V_MF4_E16_MASK = 4627,
+  PseudoVFWCVT_F_XU_V_MF4_E8 = 4628,
+  PseudoVFWCVT_F_XU_V_MF4_E8_MASK = 4629,
+  PseudoVFWCVT_F_XU_V_MF8_E8 = 4630,
+  PseudoVFWCVT_F_XU_V_MF8_E8_MASK = 4631,
+  PseudoVFWCVT_F_X_ALT_V_M1_E8 = 4632,
+  PseudoVFWCVT_F_X_ALT_V_M1_E8_MASK = 4633,
+  PseudoVFWCVT_F_X_ALT_V_M2_E8 = 4634,
+  PseudoVFWCVT_F_X_ALT_V_M2_E8_MASK = 4635,
+  PseudoVFWCVT_F_X_ALT_V_M4_E8 = 4636,
+  PseudoVFWCVT_F_X_ALT_V_M4_E8_MASK = 4637,
+  PseudoVFWCVT_F_X_ALT_V_MF2_E8 = 4638,
+  PseudoVFWCVT_F_X_ALT_V_MF2_E8_MASK = 4639,
+  PseudoVFWCVT_F_X_ALT_V_MF4_E8 = 4640,
+  PseudoVFWCVT_F_X_ALT_V_MF4_E8_MASK = 4641,
+  PseudoVFWCVT_F_X_ALT_V_MF8_E8 = 4642,
+  PseudoVFWCVT_F_X_ALT_V_MF8_E8_MASK = 4643,
+  PseudoVFWCVT_F_X_V_M1_E16 = 4644,
+  PseudoVFWCVT_F_X_V_M1_E16_MASK = 4645,
+  PseudoVFWCVT_F_X_V_M1_E32 = 4646,
+  PseudoVFWCVT_F_X_V_M1_E32_MASK = 4647,
+  PseudoVFWCVT_F_X_V_M1_E8 = 4648,
+  PseudoVFWCVT_F_X_V_M1_E8_MASK = 4649,
+  PseudoVFWCVT_F_X_V_M2_E16 = 4650,
+  PseudoVFWCVT_F_X_V_M2_E16_MASK = 4651,
+  PseudoVFWCVT_F_X_V_M2_E32 = 4652,
+  PseudoVFWCVT_F_X_V_M2_E32_MASK = 4653,
+  PseudoVFWCVT_F_X_V_M2_E8 = 4654,
+  PseudoVFWCVT_F_X_V_M2_E8_MASK = 4655,
+  PseudoVFWCVT_F_X_V_M4_E16 = 4656,
+  PseudoVFWCVT_F_X_V_M4_E16_MASK = 4657,
+  PseudoVFWCVT_F_X_V_M4_E32 = 4658,
+  PseudoVFWCVT_F_X_V_M4_E32_MASK = 4659,
+  PseudoVFWCVT_F_X_V_M4_E8 = 4660,
+  PseudoVFWCVT_F_X_V_M4_E8_MASK = 4661,
+  PseudoVFWCVT_F_X_V_MF2_E16 = 4662,
+  PseudoVFWCVT_F_X_V_MF2_E16_MASK = 4663,
+  PseudoVFWCVT_F_X_V_MF2_E32 = 4664,
+  PseudoVFWCVT_F_X_V_MF2_E32_MASK = 4665,
+  PseudoVFWCVT_F_X_V_MF2_E8 = 4666,
+  PseudoVFWCVT_F_X_V_MF2_E8_MASK = 4667,
+  PseudoVFWCVT_F_X_V_MF4_E16 = 4668,
+  PseudoVFWCVT_F_X_V_MF4_E16_MASK = 4669,
+  PseudoVFWCVT_F_X_V_MF4_E8 = 4670,
+  PseudoVFWCVT_F_X_V_MF4_E8_MASK = 4671,
+  PseudoVFWCVT_F_X_V_MF8_E8 = 4672,
+  PseudoVFWCVT_F_X_V_MF8_E8_MASK = 4673,
+  PseudoVFWCVT_RTZ_XU_F_V_M1 = 4674,
+  PseudoVFWCVT_RTZ_XU_F_V_M1_MASK = 4675,
+  PseudoVFWCVT_RTZ_XU_F_V_M2 = 4676,
+  PseudoVFWCVT_RTZ_XU_F_V_M2_MASK = 4677,
+  PseudoVFWCVT_RTZ_XU_F_V_M4 = 4678,
+  PseudoVFWCVT_RTZ_XU_F_V_M4_MASK = 4679,
+  PseudoVFWCVT_RTZ_XU_F_V_MF2 = 4680,
+  PseudoVFWCVT_RTZ_XU_F_V_MF2_MASK = 4681,
+  PseudoVFWCVT_RTZ_XU_F_V_MF4 = 4682,
+  PseudoVFWCVT_RTZ_XU_F_V_MF4_MASK = 4683,
+  PseudoVFWCVT_RTZ_X_F_V_M1 = 4684,
+  PseudoVFWCVT_RTZ_X_F_V_M1_MASK = 4685,
+  PseudoVFWCVT_RTZ_X_F_V_M2 = 4686,
+  PseudoVFWCVT_RTZ_X_F_V_M2_MASK = 4687,
+  PseudoVFWCVT_RTZ_X_F_V_M4 = 4688,
+  PseudoVFWCVT_RTZ_X_F_V_M4_MASK = 4689,
+  PseudoVFWCVT_RTZ_X_F_V_MF2 = 4690,
+  PseudoVFWCVT_RTZ_X_F_V_MF2_MASK = 4691,
+  PseudoVFWCVT_RTZ_X_F_V_MF4 = 4692,
+  PseudoVFWCVT_RTZ_X_F_V_MF4_MASK = 4693,
+  PseudoVFWCVT_XU_F_V_M1 = 4694,
+  PseudoVFWCVT_XU_F_V_M1_MASK = 4695,
+  PseudoVFWCVT_XU_F_V_M2 = 4696,
+  PseudoVFWCVT_XU_F_V_M2_MASK = 4697,
+  PseudoVFWCVT_XU_F_V_M4 = 4698,
+  PseudoVFWCVT_XU_F_V_M4_MASK = 4699,
+  PseudoVFWCVT_XU_F_V_MF2 = 4700,
+  PseudoVFWCVT_XU_F_V_MF2_MASK = 4701,
+  PseudoVFWCVT_XU_F_V_MF4 = 4702,
+  PseudoVFWCVT_XU_F_V_MF4_MASK = 4703,
+  PseudoVFWCVT_X_F_V_M1 = 4704,
+  PseudoVFWCVT_X_F_V_M1_MASK = 4705,
+  PseudoVFWCVT_X_F_V_M2 = 4706,
+  PseudoVFWCVT_X_F_V_M2_MASK = 4707,
+  PseudoVFWCVT_X_F_V_M4 = 4708,
+  PseudoVFWCVT_X_F_V_M4_MASK = 4709,
+  PseudoVFWCVT_X_F_V_MF2 = 4710,
+  PseudoVFWCVT_X_F_V_MF2_MASK = 4711,
+  PseudoVFWCVT_X_F_V_MF4 = 4712,
+  PseudoVFWCVT_X_F_V_MF4_MASK = 4713,
+  PseudoVFWMACCBF16_VFPR16_M1_E16 = 4714,
+  PseudoVFWMACCBF16_VFPR16_M1_E16_MASK = 4715,
+  PseudoVFWMACCBF16_VFPR16_M2_E16 = 4716,
+  PseudoVFWMACCBF16_VFPR16_M2_E16_MASK = 4717,
+  PseudoVFWMACCBF16_VFPR16_M4_E16 = 4718,
+  PseudoVFWMACCBF16_VFPR16_M4_E16_MASK = 4719,
+  PseudoVFWMACCBF16_VFPR16_MF2_E16 = 4720,
+  PseudoVFWMACCBF16_VFPR16_MF2_E16_MASK = 4721,
+  PseudoVFWMACCBF16_VFPR16_MF4_E16 = 4722,
+  PseudoVFWMACCBF16_VFPR16_MF4_E16_MASK = 4723,
+  PseudoVFWMACCBF16_VV_M1_E16 = 4724,
+  PseudoVFWMACCBF16_VV_M1_E16_MASK = 4725,
+  PseudoVFWMACCBF16_VV_M1_E32 = 4726,
+  PseudoVFWMACCBF16_VV_M1_E32_MASK = 4727,
+  PseudoVFWMACCBF16_VV_M2_E16 = 4728,
+  PseudoVFWMACCBF16_VV_M2_E16_MASK = 4729,
+  PseudoVFWMACCBF16_VV_M2_E32 = 4730,
+  PseudoVFWMACCBF16_VV_M2_E32_MASK = 4731,
+  PseudoVFWMACCBF16_VV_M4_E16 = 4732,
+  PseudoVFWMACCBF16_VV_M4_E16_MASK = 4733,
+  PseudoVFWMACCBF16_VV_M4_E32 = 4734,
+  PseudoVFWMACCBF16_VV_M4_E32_MASK = 4735,
+  PseudoVFWMACCBF16_VV_MF2_E16 = 4736,
+  PseudoVFWMACCBF16_VV_MF2_E16_MASK = 4737,
+  PseudoVFWMACCBF16_VV_MF2_E32 = 4738,
+  PseudoVFWMACCBF16_VV_MF2_E32_MASK = 4739,
+  PseudoVFWMACCBF16_VV_MF4_E16 = 4740,
+  PseudoVFWMACCBF16_VV_MF4_E16_MASK = 4741,
+  PseudoVFWMACC_ALT_VFPR16_M1_E16 = 4742,
+  PseudoVFWMACC_ALT_VFPR16_M1_E16_MASK = 4743,
+  PseudoVFWMACC_ALT_VFPR16_M2_E16 = 4744,
+  PseudoVFWMACC_ALT_VFPR16_M2_E16_MASK = 4745,
+  PseudoVFWMACC_ALT_VFPR16_M4_E16 = 4746,
+  PseudoVFWMACC_ALT_VFPR16_M4_E16_MASK = 4747,
+  PseudoVFWMACC_ALT_VFPR16_MF2_E16 = 4748,
+  PseudoVFWMACC_ALT_VFPR16_MF2_E16_MASK = 4749,
+  PseudoVFWMACC_ALT_VFPR16_MF4_E16 = 4750,
+  PseudoVFWMACC_ALT_VFPR16_MF4_E16_MASK = 4751,
+  PseudoVFWMACC_ALT_VV_M1_E16 = 4752,
+  PseudoVFWMACC_ALT_VV_M1_E16_MASK = 4753,
+  PseudoVFWMACC_ALT_VV_M2_E16 = 4754,
+  PseudoVFWMACC_ALT_VV_M2_E16_MASK = 4755,
+  PseudoVFWMACC_ALT_VV_M4_E16 = 4756,
+  PseudoVFWMACC_ALT_VV_M4_E16_MASK = 4757,
+  PseudoVFWMACC_ALT_VV_MF2_E16 = 4758,
+  PseudoVFWMACC_ALT_VV_MF2_E16_MASK = 4759,
+  PseudoVFWMACC_ALT_VV_MF4_E16 = 4760,
+  PseudoVFWMACC_ALT_VV_MF4_E16_MASK = 4761,
+  PseudoVFWMACC_VFPR16_M1_E16 = 4762,
+  PseudoVFWMACC_VFPR16_M1_E16_MASK = 4763,
+  PseudoVFWMACC_VFPR16_M2_E16 = 4764,
+  PseudoVFWMACC_VFPR16_M2_E16_MASK = 4765,
+  PseudoVFWMACC_VFPR16_M4_E16 = 4766,
+  PseudoVFWMACC_VFPR16_M4_E16_MASK = 4767,
+  PseudoVFWMACC_VFPR16_MF2_E16 = 4768,
+  PseudoVFWMACC_VFPR16_MF2_E16_MASK = 4769,
+  PseudoVFWMACC_VFPR16_MF4_E16 = 4770,
+  PseudoVFWMACC_VFPR16_MF4_E16_MASK = 4771,
+  PseudoVFWMACC_VFPR32_M1_E32 = 4772,
+  PseudoVFWMACC_VFPR32_M1_E32_MASK = 4773,
+  PseudoVFWMACC_VFPR32_M2_E32 = 4774,
+  PseudoVFWMACC_VFPR32_M2_E32_MASK = 4775,
+  PseudoVFWMACC_VFPR32_M4_E32 = 4776,
+  PseudoVFWMACC_VFPR32_M4_E32_MASK = 4777,
+  PseudoVFWMACC_VFPR32_MF2_E32 = 4778,
+  PseudoVFWMACC_VFPR32_MF2_E32_MASK = 4779,
+  PseudoVFWMACC_VV_M1_E16 = 4780,
+  PseudoVFWMACC_VV_M1_E16_MASK = 4781,
+  PseudoVFWMACC_VV_M1_E32 = 4782,
+  PseudoVFWMACC_VV_M1_E32_MASK = 4783,
+  PseudoVFWMACC_VV_M2_E16 = 4784,
+  PseudoVFWMACC_VV_M2_E16_MASK = 4785,
+  PseudoVFWMACC_VV_M2_E32 = 4786,
+  PseudoVFWMACC_VV_M2_E32_MASK = 4787,
+  PseudoVFWMACC_VV_M4_E16 = 4788,
+  PseudoVFWMACC_VV_M4_E16_MASK = 4789,
+  PseudoVFWMACC_VV_M4_E32 = 4790,
+  PseudoVFWMACC_VV_M4_E32_MASK = 4791,
+  PseudoVFWMACC_VV_MF2_E16 = 4792,
+  PseudoVFWMACC_VV_MF2_E16_MASK = 4793,
+  PseudoVFWMACC_VV_MF2_E32 = 4794,
+  PseudoVFWMACC_VV_MF2_E32_MASK = 4795,
+  PseudoVFWMACC_VV_MF4_E16 = 4796,
+  PseudoVFWMACC_VV_MF4_E16_MASK = 4797,
+  PseudoVFWMSAC_ALT_VFPR16_M1_E16 = 4798,
+  PseudoVFWMSAC_ALT_VFPR16_M1_E16_MASK = 4799,
+  PseudoVFWMSAC_ALT_VFPR16_M2_E16 = 4800,
+  PseudoVFWMSAC_ALT_VFPR16_M2_E16_MASK = 4801,
+  PseudoVFWMSAC_ALT_VFPR16_M4_E16 = 4802,
+  PseudoVFWMSAC_ALT_VFPR16_M4_E16_MASK = 4803,
+  PseudoVFWMSAC_ALT_VFPR16_MF2_E16 = 4804,
+  PseudoVFWMSAC_ALT_VFPR16_MF2_E16_MASK = 4805,
+  PseudoVFWMSAC_ALT_VFPR16_MF4_E16 = 4806,
+  PseudoVFWMSAC_ALT_VFPR16_MF4_E16_MASK = 4807,
+  PseudoVFWMSAC_ALT_VV_M1_E16 = 4808,
+  PseudoVFWMSAC_ALT_VV_M1_E16_MASK = 4809,
+  PseudoVFWMSAC_ALT_VV_M2_E16 = 4810,
+  PseudoVFWMSAC_ALT_VV_M2_E16_MASK = 4811,
+  PseudoVFWMSAC_ALT_VV_M4_E16 = 4812,
+  PseudoVFWMSAC_ALT_VV_M4_E16_MASK = 4813,
+  PseudoVFWMSAC_ALT_VV_MF2_E16 = 4814,
+  PseudoVFWMSAC_ALT_VV_MF2_E16_MASK = 4815,
+  PseudoVFWMSAC_ALT_VV_MF4_E16 = 4816,
+  PseudoVFWMSAC_ALT_VV_MF4_E16_MASK = 4817,
+  PseudoVFWMSAC_VFPR16_M1_E16 = 4818,
+  PseudoVFWMSAC_VFPR16_M1_E16_MASK = 4819,
+  PseudoVFWMSAC_VFPR16_M2_E16 = 4820,
+  PseudoVFWMSAC_VFPR16_M2_E16_MASK = 4821,
+  PseudoVFWMSAC_VFPR16_M4_E16 = 4822,
+  PseudoVFWMSAC_VFPR16_M4_E16_MASK = 4823,
+  PseudoVFWMSAC_VFPR16_MF2_E16 = 4824,
+  PseudoVFWMSAC_VFPR16_MF2_E16_MASK = 4825,
+  PseudoVFWMSAC_VFPR16_MF4_E16 = 4826,
+  PseudoVFWMSAC_VFPR16_MF4_E16_MASK = 4827,
+  PseudoVFWMSAC_VFPR32_M1_E32 = 4828,
+  PseudoVFWMSAC_VFPR32_M1_E32_MASK = 4829,
+  PseudoVFWMSAC_VFPR32_M2_E32 = 4830,
+  PseudoVFWMSAC_VFPR32_M2_E32_MASK = 4831,
+  PseudoVFWMSAC_VFPR32_M4_E32 = 4832,
+  PseudoVFWMSAC_VFPR32_M4_E32_MASK = 4833,
+  PseudoVFWMSAC_VFPR32_MF2_E32 = 4834,
+  PseudoVFWMSAC_VFPR32_MF2_E32_MASK = 4835,
+  PseudoVFWMSAC_VV_M1_E16 = 4836,
+  PseudoVFWMSAC_VV_M1_E16_MASK = 4837,
+  PseudoVFWMSAC_VV_M1_E32 = 4838,
+  PseudoVFWMSAC_VV_M1_E32_MASK = 4839,
+  PseudoVFWMSAC_VV_M2_E16 = 4840,
+  PseudoVFWMSAC_VV_M2_E16_MASK = 4841,
+  PseudoVFWMSAC_VV_M2_E32 = 4842,
+  PseudoVFWMSAC_VV_M2_E32_MASK = 4843,
+  PseudoVFWMSAC_VV_M4_E16 = 4844,
+  PseudoVFWMSAC_VV_M4_E16_MASK = 4845,
+  PseudoVFWMSAC_VV_M4_E32 = 4846,
+  PseudoVFWMSAC_VV_M4_E32_MASK = 4847,
+  PseudoVFWMSAC_VV_MF2_E16 = 4848,
+  PseudoVFWMSAC_VV_MF2_E16_MASK = 4849,
+  PseudoVFWMSAC_VV_MF2_E32 = 4850,
+  PseudoVFWMSAC_VV_MF2_E32_MASK = 4851,
+  PseudoVFWMSAC_VV_MF4_E16 = 4852,
+  PseudoVFWMSAC_VV_MF4_E16_MASK = 4853,
+  PseudoVFWMUL_ALT_VFPR16_M1_E16 = 4854,
+  PseudoVFWMUL_ALT_VFPR16_M1_E16_MASK = 4855,
+  PseudoVFWMUL_ALT_VFPR16_M2_E16 = 4856,
+  PseudoVFWMUL_ALT_VFPR16_M2_E16_MASK = 4857,
+  PseudoVFWMUL_ALT_VFPR16_M4_E16 = 4858,
+  PseudoVFWMUL_ALT_VFPR16_M4_E16_MASK = 4859,
+  PseudoVFWMUL_ALT_VFPR16_MF2_E16 = 4860,
+  PseudoVFWMUL_ALT_VFPR16_MF2_E16_MASK = 4861,
+  PseudoVFWMUL_ALT_VFPR16_MF4_E16 = 4862,
+  PseudoVFWMUL_ALT_VFPR16_MF4_E16_MASK = 4863,
+  PseudoVFWMUL_ALT_VV_M1_E16 = 4864,
+  PseudoVFWMUL_ALT_VV_M1_E16_MASK = 4865,
+  PseudoVFWMUL_ALT_VV_M2_E16 = 4866,
+  PseudoVFWMUL_ALT_VV_M2_E16_MASK = 4867,
+  PseudoVFWMUL_ALT_VV_M4_E16 = 4868,
+  PseudoVFWMUL_ALT_VV_M4_E16_MASK = 4869,
+  PseudoVFWMUL_ALT_VV_MF2_E16 = 4870,
+  PseudoVFWMUL_ALT_VV_MF2_E16_MASK = 4871,
+  PseudoVFWMUL_ALT_VV_MF4_E16 = 4872,
+  PseudoVFWMUL_ALT_VV_MF4_E16_MASK = 4873,
+  PseudoVFWMUL_VFPR16_M1_E16 = 4874,
+  PseudoVFWMUL_VFPR16_M1_E16_MASK = 4875,
+  PseudoVFWMUL_VFPR16_M2_E16 = 4876,
+  PseudoVFWMUL_VFPR16_M2_E16_MASK = 4877,
+  PseudoVFWMUL_VFPR16_M4_E16 = 4878,
+  PseudoVFWMUL_VFPR16_M4_E16_MASK = 4879,
+  PseudoVFWMUL_VFPR16_MF2_E16 = 4880,
+  PseudoVFWMUL_VFPR16_MF2_E16_MASK = 4881,
+  PseudoVFWMUL_VFPR16_MF4_E16 = 4882,
+  PseudoVFWMUL_VFPR16_MF4_E16_MASK = 4883,
+  PseudoVFWMUL_VFPR32_M1_E32 = 4884,
+  PseudoVFWMUL_VFPR32_M1_E32_MASK = 4885,
+  PseudoVFWMUL_VFPR32_M2_E32 = 4886,
+  PseudoVFWMUL_VFPR32_M2_E32_MASK = 4887,
+  PseudoVFWMUL_VFPR32_M4_E32 = 4888,
+  PseudoVFWMUL_VFPR32_M4_E32_MASK = 4889,
+  PseudoVFWMUL_VFPR32_MF2_E32 = 4890,
+  PseudoVFWMUL_VFPR32_MF2_E32_MASK = 4891,
+  PseudoVFWMUL_VV_M1_E16 = 4892,
+  PseudoVFWMUL_VV_M1_E16_MASK = 4893,
+  PseudoVFWMUL_VV_M1_E32 = 4894,
+  PseudoVFWMUL_VV_M1_E32_MASK = 4895,
+  PseudoVFWMUL_VV_M2_E16 = 4896,
+  PseudoVFWMUL_VV_M2_E16_MASK = 4897,
+  PseudoVFWMUL_VV_M2_E32 = 4898,
+  PseudoVFWMUL_VV_M2_E32_MASK = 4899,
+  PseudoVFWMUL_VV_M4_E16 = 4900,
+  PseudoVFWMUL_VV_M4_E16_MASK = 4901,
+  PseudoVFWMUL_VV_M4_E32 = 4902,
+  PseudoVFWMUL_VV_M4_E32_MASK = 4903,
+  PseudoVFWMUL_VV_MF2_E16 = 4904,
+  PseudoVFWMUL_VV_MF2_E16_MASK = 4905,
+  PseudoVFWMUL_VV_MF2_E32 = 4906,
+  PseudoVFWMUL_VV_MF2_E32_MASK = 4907,
+  PseudoVFWMUL_VV_MF4_E16 = 4908,
+  PseudoVFWMUL_VV_MF4_E16_MASK = 4909,
+  PseudoVFWNMACC_ALT_VFPR16_M1_E16 = 4910,
+  PseudoVFWNMACC_ALT_VFPR16_M1_E16_MASK = 4911,
+  PseudoVFWNMACC_ALT_VFPR16_M2_E16 = 4912,
+  PseudoVFWNMACC_ALT_VFPR16_M2_E16_MASK = 4913,
+  PseudoVFWNMACC_ALT_VFPR16_M4_E16 = 4914,
+  PseudoVFWNMACC_ALT_VFPR16_M4_E16_MASK = 4915,
+  PseudoVFWNMACC_ALT_VFPR16_MF2_E16 = 4916,
+  PseudoVFWNMACC_ALT_VFPR16_MF2_E16_MASK = 4917,
+  PseudoVFWNMACC_ALT_VFPR16_MF4_E16 = 4918,
+  PseudoVFWNMACC_ALT_VFPR16_MF4_E16_MASK = 4919,
+  PseudoVFWNMACC_ALT_VV_M1_E16 = 4920,
+  PseudoVFWNMACC_ALT_VV_M1_E16_MASK = 4921,
+  PseudoVFWNMACC_ALT_VV_M2_E16 = 4922,
+  PseudoVFWNMACC_ALT_VV_M2_E16_MASK = 4923,
+  PseudoVFWNMACC_ALT_VV_M4_E16 = 4924,
+  PseudoVFWNMACC_ALT_VV_M4_E16_MASK = 4925,
+  PseudoVFWNMACC_ALT_VV_MF2_E16 = 4926,
+  PseudoVFWNMACC_ALT_VV_MF2_E16_MASK = 4927,
+  PseudoVFWNMACC_ALT_VV_MF4_E16 = 4928,
+  PseudoVFWNMACC_ALT_VV_MF4_E16_MASK = 4929,
+  PseudoVFWNMACC_VFPR16_M1_E16 = 4930,
+  PseudoVFWNMACC_VFPR16_M1_E16_MASK = 4931,
+  PseudoVFWNMACC_VFPR16_M2_E16 = 4932,
+  PseudoVFWNMACC_VFPR16_M2_E16_MASK = 4933,
+  PseudoVFWNMACC_VFPR16_M4_E16 = 4934,
+  PseudoVFWNMACC_VFPR16_M4_E16_MASK = 4935,
+  PseudoVFWNMACC_VFPR16_MF2_E16 = 4936,
+  PseudoVFWNMACC_VFPR16_MF2_E16_MASK = 4937,
+  PseudoVFWNMACC_VFPR16_MF4_E16 = 4938,
+  PseudoVFWNMACC_VFPR16_MF4_E16_MASK = 4939,
+  PseudoVFWNMACC_VFPR32_M1_E32 = 4940,
+  PseudoVFWNMACC_VFPR32_M1_E32_MASK = 4941,
+  PseudoVFWNMACC_VFPR32_M2_E32 = 4942,
+  PseudoVFWNMACC_VFPR32_M2_E32_MASK = 4943,
+  PseudoVFWNMACC_VFPR32_M4_E32 = 4944,
+  PseudoVFWNMACC_VFPR32_M4_E32_MASK = 4945,
+  PseudoVFWNMACC_VFPR32_MF2_E32 = 4946,
+  PseudoVFWNMACC_VFPR32_MF2_E32_MASK = 4947,
+  PseudoVFWNMACC_VV_M1_E16 = 4948,
+  PseudoVFWNMACC_VV_M1_E16_MASK = 4949,
+  PseudoVFWNMACC_VV_M1_E32 = 4950,
+  PseudoVFWNMACC_VV_M1_E32_MASK = 4951,
+  PseudoVFWNMACC_VV_M2_E16 = 4952,
+  PseudoVFWNMACC_VV_M2_E16_MASK = 4953,
+  PseudoVFWNMACC_VV_M2_E32 = 4954,
+  PseudoVFWNMACC_VV_M2_E32_MASK = 4955,
+  PseudoVFWNMACC_VV_M4_E16 = 4956,
+  PseudoVFWNMACC_VV_M4_E16_MASK = 4957,
+  PseudoVFWNMACC_VV_M4_E32 = 4958,
+  PseudoVFWNMACC_VV_M4_E32_MASK = 4959,
+  PseudoVFWNMACC_VV_MF2_E16 = 4960,
+  PseudoVFWNMACC_VV_MF2_E16_MASK = 4961,
+  PseudoVFWNMACC_VV_MF2_E32 = 4962,
+  PseudoVFWNMACC_VV_MF2_E32_MASK = 4963,
+  PseudoVFWNMACC_VV_MF4_E16 = 4964,
+  PseudoVFWNMACC_VV_MF4_E16_MASK = 4965,
+  PseudoVFWNMSAC_ALT_VFPR16_M1_E16 = 4966,
+  PseudoVFWNMSAC_ALT_VFPR16_M1_E16_MASK = 4967,
+  PseudoVFWNMSAC_ALT_VFPR16_M2_E16 = 4968,
+  PseudoVFWNMSAC_ALT_VFPR16_M2_E16_MASK = 4969,
+  PseudoVFWNMSAC_ALT_VFPR16_M4_E16 = 4970,
+  PseudoVFWNMSAC_ALT_VFPR16_M4_E16_MASK = 4971,
+  PseudoVFWNMSAC_ALT_VFPR16_MF2_E16 = 4972,
+  PseudoVFWNMSAC_ALT_VFPR16_MF2_E16_MASK = 4973,
+  PseudoVFWNMSAC_ALT_VFPR16_MF4_E16 = 4974,
+  PseudoVFWNMSAC_ALT_VFPR16_MF4_E16_MASK = 4975,
+  PseudoVFWNMSAC_ALT_VV_M1_E16 = 4976,
+  PseudoVFWNMSAC_ALT_VV_M1_E16_MASK = 4977,
+  PseudoVFWNMSAC_ALT_VV_M2_E16 = 4978,
+  PseudoVFWNMSAC_ALT_VV_M2_E16_MASK = 4979,
+  PseudoVFWNMSAC_ALT_VV_M4_E16 = 4980,
+  PseudoVFWNMSAC_ALT_VV_M4_E16_MASK = 4981,
+  PseudoVFWNMSAC_ALT_VV_MF2_E16 = 4982,
+  PseudoVFWNMSAC_ALT_VV_MF2_E16_MASK = 4983,
+  PseudoVFWNMSAC_ALT_VV_MF4_E16 = 4984,
+  PseudoVFWNMSAC_ALT_VV_MF4_E16_MASK = 4985,
+  PseudoVFWNMSAC_VFPR16_M1_E16 = 4986,
+  PseudoVFWNMSAC_VFPR16_M1_E16_MASK = 4987,
+  PseudoVFWNMSAC_VFPR16_M2_E16 = 4988,
+  PseudoVFWNMSAC_VFPR16_M2_E16_MASK = 4989,
+  PseudoVFWNMSAC_VFPR16_M4_E16 = 4990,
+  PseudoVFWNMSAC_VFPR16_M4_E16_MASK = 4991,
+  PseudoVFWNMSAC_VFPR16_MF2_E16 = 4992,
+  PseudoVFWNMSAC_VFPR16_MF2_E16_MASK = 4993,
+  PseudoVFWNMSAC_VFPR16_MF4_E16 = 4994,
+  PseudoVFWNMSAC_VFPR16_MF4_E16_MASK = 4995,
+  PseudoVFWNMSAC_VFPR32_M1_E32 = 4996,
+  PseudoVFWNMSAC_VFPR32_M1_E32_MASK = 4997,
+  PseudoVFWNMSAC_VFPR32_M2_E32 = 4998,
+  PseudoVFWNMSAC_VFPR32_M2_E32_MASK = 4999,
+  PseudoVFWNMSAC_VFPR32_M4_E32 = 5000,
+  PseudoVFWNMSAC_VFPR32_M4_E32_MASK = 5001,
+  PseudoVFWNMSAC_VFPR32_MF2_E32 = 5002,
+  PseudoVFWNMSAC_VFPR32_MF2_E32_MASK = 5003,
+  PseudoVFWNMSAC_VV_M1_E16 = 5004,
+  PseudoVFWNMSAC_VV_M1_E16_MASK = 5005,
+  PseudoVFWNMSAC_VV_M1_E32 = 5006,
+  PseudoVFWNMSAC_VV_M1_E32_MASK = 5007,
+  PseudoVFWNMSAC_VV_M2_E16 = 5008,
+  PseudoVFWNMSAC_VV_M2_E16_MASK = 5009,
+  PseudoVFWNMSAC_VV_M2_E32 = 5010,
+  PseudoVFWNMSAC_VV_M2_E32_MASK = 5011,
+  PseudoVFWNMSAC_VV_M4_E16 = 5012,
+  PseudoVFWNMSAC_VV_M4_E16_MASK = 5013,
+  PseudoVFWNMSAC_VV_M4_E32 = 5014,
+  PseudoVFWNMSAC_VV_M4_E32_MASK = 5015,
+  PseudoVFWNMSAC_VV_MF2_E16 = 5016,
+  PseudoVFWNMSAC_VV_MF2_E16_MASK = 5017,
+  PseudoVFWNMSAC_VV_MF2_E32 = 5018,
+  PseudoVFWNMSAC_VV_MF2_E32_MASK = 5019,
+  PseudoVFWNMSAC_VV_MF4_E16 = 5020,
+  PseudoVFWNMSAC_VV_MF4_E16_MASK = 5021,
+  PseudoVFWREDOSUM_VS_M1_E16 = 5022,
+  PseudoVFWREDOSUM_VS_M1_E16_MASK = 5023,
+  PseudoVFWREDOSUM_VS_M1_E32 = 5024,
+  PseudoVFWREDOSUM_VS_M1_E32_MASK = 5025,
+  PseudoVFWREDOSUM_VS_M2_E16 = 5026,
+  PseudoVFWREDOSUM_VS_M2_E16_MASK = 5027,
+  PseudoVFWREDOSUM_VS_M2_E32 = 5028,
+  PseudoVFWREDOSUM_VS_M2_E32_MASK = 5029,
+  PseudoVFWREDOSUM_VS_M4_E16 = 5030,
+  PseudoVFWREDOSUM_VS_M4_E16_MASK = 5031,
+  PseudoVFWREDOSUM_VS_M4_E32 = 5032,
+  PseudoVFWREDOSUM_VS_M4_E32_MASK = 5033,
+  PseudoVFWREDOSUM_VS_M8_E16 = 5034,
+  PseudoVFWREDOSUM_VS_M8_E16_MASK = 5035,
+  PseudoVFWREDOSUM_VS_M8_E32 = 5036,
+  PseudoVFWREDOSUM_VS_M8_E32_MASK = 5037,
+  PseudoVFWREDOSUM_VS_MF2_E16 = 5038,
+  PseudoVFWREDOSUM_VS_MF2_E16_MASK = 5039,
+  PseudoVFWREDOSUM_VS_MF2_E32 = 5040,
+  PseudoVFWREDOSUM_VS_MF2_E32_MASK = 5041,
+  PseudoVFWREDOSUM_VS_MF4_E16 = 5042,
+  PseudoVFWREDOSUM_VS_MF4_E16_MASK = 5043,
+  PseudoVFWREDUSUM_VS_M1_E16 = 5044,
+  PseudoVFWREDUSUM_VS_M1_E16_MASK = 5045,
+  PseudoVFWREDUSUM_VS_M1_E32 = 5046,
+  PseudoVFWREDUSUM_VS_M1_E32_MASK = 5047,
+  PseudoVFWREDUSUM_VS_M2_E16 = 5048,
+  PseudoVFWREDUSUM_VS_M2_E16_MASK = 5049,
+  PseudoVFWREDUSUM_VS_M2_E32 = 5050,
+  PseudoVFWREDUSUM_VS_M2_E32_MASK = 5051,
+  PseudoVFWREDUSUM_VS_M4_E16 = 5052,
+  PseudoVFWREDUSUM_VS_M4_E16_MASK = 5053,
+  PseudoVFWREDUSUM_VS_M4_E32 = 5054,
+  PseudoVFWREDUSUM_VS_M4_E32_MASK = 5055,
+  PseudoVFWREDUSUM_VS_M8_E16 = 5056,
+  PseudoVFWREDUSUM_VS_M8_E16_MASK = 5057,
+  PseudoVFWREDUSUM_VS_M8_E32 = 5058,
+  PseudoVFWREDUSUM_VS_M8_E32_MASK = 5059,
+  PseudoVFWREDUSUM_VS_MF2_E16 = 5060,
+  PseudoVFWREDUSUM_VS_MF2_E16_MASK = 5061,
+  PseudoVFWREDUSUM_VS_MF2_E32 = 5062,
+  PseudoVFWREDUSUM_VS_MF2_E32_MASK = 5063,
+  PseudoVFWREDUSUM_VS_MF4_E16 = 5064,
+  PseudoVFWREDUSUM_VS_MF4_E16_MASK = 5065,
+  PseudoVFWSUB_ALT_VFPR16_M1_E16 = 5066,
+  PseudoVFWSUB_ALT_VFPR16_M1_E16_MASK = 5067,
+  PseudoVFWSUB_ALT_VFPR16_M2_E16 = 5068,
+  PseudoVFWSUB_ALT_VFPR16_M2_E16_MASK = 5069,
+  PseudoVFWSUB_ALT_VFPR16_M4_E16 = 5070,
+  PseudoVFWSUB_ALT_VFPR16_M4_E16_MASK = 5071,
+  PseudoVFWSUB_ALT_VFPR16_MF2_E16 = 5072,
+  PseudoVFWSUB_ALT_VFPR16_MF2_E16_MASK = 5073,
+  PseudoVFWSUB_ALT_VFPR16_MF4_E16 = 5074,
+  PseudoVFWSUB_ALT_VFPR16_MF4_E16_MASK = 5075,
+  PseudoVFWSUB_ALT_VV_M1_E16 = 5076,
+  PseudoVFWSUB_ALT_VV_M1_E16_MASK = 5077,
+  PseudoVFWSUB_ALT_VV_M2_E16 = 5078,
+  PseudoVFWSUB_ALT_VV_M2_E16_MASK = 5079,
+  PseudoVFWSUB_ALT_VV_M4_E16 = 5080,
+  PseudoVFWSUB_ALT_VV_M4_E16_MASK = 5081,
+  PseudoVFWSUB_ALT_VV_MF2_E16 = 5082,
+  PseudoVFWSUB_ALT_VV_MF2_E16_MASK = 5083,
+  PseudoVFWSUB_ALT_VV_MF4_E16 = 5084,
+  PseudoVFWSUB_ALT_VV_MF4_E16_MASK = 5085,
+  PseudoVFWSUB_ALT_WFPR16_M1_E16 = 5086,
+  PseudoVFWSUB_ALT_WFPR16_M1_E16_MASK = 5087,
+  PseudoVFWSUB_ALT_WFPR16_M2_E16 = 5088,
+  PseudoVFWSUB_ALT_WFPR16_M2_E16_MASK = 5089,
+  PseudoVFWSUB_ALT_WFPR16_M4_E16 = 5090,
+  PseudoVFWSUB_ALT_WFPR16_M4_E16_MASK = 5091,
+  PseudoVFWSUB_ALT_WFPR16_MF2_E16 = 5092,
+  PseudoVFWSUB_ALT_WFPR16_MF2_E16_MASK = 5093,
+  PseudoVFWSUB_ALT_WFPR16_MF4_E16 = 5094,
+  PseudoVFWSUB_ALT_WFPR16_MF4_E16_MASK = 5095,
+  PseudoVFWSUB_ALT_WV_M1_E16 = 5096,
+  PseudoVFWSUB_ALT_WV_M1_E16_MASK = 5097,
+  PseudoVFWSUB_ALT_WV_M1_E16_MASK_TIED = 5098,
+  PseudoVFWSUB_ALT_WV_M1_E16_TIED = 5099,
+  PseudoVFWSUB_ALT_WV_M2_E16 = 5100,
+  PseudoVFWSUB_ALT_WV_M2_E16_MASK = 5101,
+  PseudoVFWSUB_ALT_WV_M2_E16_MASK_TIED = 5102,
+  PseudoVFWSUB_ALT_WV_M2_E16_TIED = 5103,
+  PseudoVFWSUB_ALT_WV_M4_E16 = 5104,
+  PseudoVFWSUB_ALT_WV_M4_E16_MASK = 5105,
+  PseudoVFWSUB_ALT_WV_M4_E16_MASK_TIED = 5106,
+  PseudoVFWSUB_ALT_WV_M4_E16_TIED = 5107,
+  PseudoVFWSUB_ALT_WV_MF2_E16 = 5108,
+  PseudoVFWSUB_ALT_WV_MF2_E16_MASK = 5109,
+  PseudoVFWSUB_ALT_WV_MF2_E16_MASK_TIED = 5110,
+  PseudoVFWSUB_ALT_WV_MF2_E16_TIED = 5111,
+  PseudoVFWSUB_ALT_WV_MF4_E16 = 5112,
+  PseudoVFWSUB_ALT_WV_MF4_E16_MASK = 5113,
+  PseudoVFWSUB_ALT_WV_MF4_E16_MASK_TIED = 5114,
+  PseudoVFWSUB_ALT_WV_MF4_E16_TIED = 5115,
+  PseudoVFWSUB_VFPR16_M1_E16 = 5116,
+  PseudoVFWSUB_VFPR16_M1_E16_MASK = 5117,
+  PseudoVFWSUB_VFPR16_M2_E16 = 5118,
+  PseudoVFWSUB_VFPR16_M2_E16_MASK = 5119,
+  PseudoVFWSUB_VFPR16_M4_E16 = 5120,
+  PseudoVFWSUB_VFPR16_M4_E16_MASK = 5121,
+  PseudoVFWSUB_VFPR16_MF2_E16 = 5122,
+  PseudoVFWSUB_VFPR16_MF2_E16_MASK = 5123,
+  PseudoVFWSUB_VFPR16_MF4_E16 = 5124,
+  PseudoVFWSUB_VFPR16_MF4_E16_MASK = 5125,
+  PseudoVFWSUB_VFPR32_M1_E32 = 5126,
+  PseudoVFWSUB_VFPR32_M1_E32_MASK = 5127,
+  PseudoVFWSUB_VFPR32_M2_E32 = 5128,
+  PseudoVFWSUB_VFPR32_M2_E32_MASK = 5129,
+  PseudoVFWSUB_VFPR32_M4_E32 = 5130,
+  PseudoVFWSUB_VFPR32_M4_E32_MASK = 5131,
+  PseudoVFWSUB_VFPR32_MF2_E32 = 5132,
+  PseudoVFWSUB_VFPR32_MF2_E32_MASK = 5133,
+  PseudoVFWSUB_VV_M1_E16 = 5134,
+  PseudoVFWSUB_VV_M1_E16_MASK = 5135,
+  PseudoVFWSUB_VV_M1_E32 = 5136,
+  PseudoVFWSUB_VV_M1_E32_MASK = 5137,
+  PseudoVFWSUB_VV_M2_E16 = 5138,
+  PseudoVFWSUB_VV_M2_E16_MASK = 5139,
+  PseudoVFWSUB_VV_M2_E32 = 5140,
+  PseudoVFWSUB_VV_M2_E32_MASK = 5141,
+  PseudoVFWSUB_VV_M4_E16 = 5142,
+  PseudoVFWSUB_VV_M4_E16_MASK = 5143,
+  PseudoVFWSUB_VV_M4_E32 = 5144,
+  PseudoVFWSUB_VV_M4_E32_MASK = 5145,
+  PseudoVFWSUB_VV_MF2_E16 = 5146,
+  PseudoVFWSUB_VV_MF2_E16_MASK = 5147,
+  PseudoVFWSUB_VV_MF2_E32 = 5148,
+  PseudoVFWSUB_VV_MF2_E32_MASK = 5149,
+  PseudoVFWSUB_VV_MF4_E16 = 5150,
+  PseudoVFWSUB_VV_MF4_E16_MASK = 5151,
+  PseudoVFWSUB_WFPR16_M1_E16 = 5152,
+  PseudoVFWSUB_WFPR16_M1_E16_MASK = 5153,
+  PseudoVFWSUB_WFPR16_M2_E16 = 5154,
+  PseudoVFWSUB_WFPR16_M2_E16_MASK = 5155,
+  PseudoVFWSUB_WFPR16_M4_E16 = 5156,
+  PseudoVFWSUB_WFPR16_M4_E16_MASK = 5157,
+  PseudoVFWSUB_WFPR16_MF2_E16 = 5158,
+  PseudoVFWSUB_WFPR16_MF2_E16_MASK = 5159,
+  PseudoVFWSUB_WFPR16_MF4_E16 = 5160,
+  PseudoVFWSUB_WFPR16_MF4_E16_MASK = 5161,
+  PseudoVFWSUB_WFPR32_M1_E32 = 5162,
+  PseudoVFWSUB_WFPR32_M1_E32_MASK = 5163,
+  PseudoVFWSUB_WFPR32_M2_E32 = 5164,
+  PseudoVFWSUB_WFPR32_M2_E32_MASK = 5165,
+  PseudoVFWSUB_WFPR32_M4_E32 = 5166,
+  PseudoVFWSUB_WFPR32_M4_E32_MASK = 5167,
+  PseudoVFWSUB_WFPR32_MF2_E32 = 5168,
+  PseudoVFWSUB_WFPR32_MF2_E32_MASK = 5169,
+  PseudoVFWSUB_WV_M1_E16 = 5170,
+  PseudoVFWSUB_WV_M1_E16_MASK = 5171,
+  PseudoVFWSUB_WV_M1_E16_MASK_TIED = 5172,
+  PseudoVFWSUB_WV_M1_E16_TIED = 5173,
+  PseudoVFWSUB_WV_M1_E32 = 5174,
+  PseudoVFWSUB_WV_M1_E32_MASK = 5175,
+  PseudoVFWSUB_WV_M1_E32_MASK_TIED = 5176,
+  PseudoVFWSUB_WV_M1_E32_TIED = 5177,
+  PseudoVFWSUB_WV_M2_E16 = 5178,
+  PseudoVFWSUB_WV_M2_E16_MASK = 5179,
+  PseudoVFWSUB_WV_M2_E16_MASK_TIED = 5180,
+  PseudoVFWSUB_WV_M2_E16_TIED = 5181,
+  PseudoVFWSUB_WV_M2_E32 = 5182,
+  PseudoVFWSUB_WV_M2_E32_MASK = 5183,
+  PseudoVFWSUB_WV_M2_E32_MASK_TIED = 5184,
+  PseudoVFWSUB_WV_M2_E32_TIED = 5185,
+  PseudoVFWSUB_WV_M4_E16 = 5186,
+  PseudoVFWSUB_WV_M4_E16_MASK = 5187,
+  PseudoVFWSUB_WV_M4_E16_MASK_TIED = 5188,
+  PseudoVFWSUB_WV_M4_E16_TIED = 5189,
+  PseudoVFWSUB_WV_M4_E32 = 5190,
+  PseudoVFWSUB_WV_M4_E32_MASK = 5191,
+  PseudoVFWSUB_WV_M4_E32_MASK_TIED = 5192,
+  PseudoVFWSUB_WV_M4_E32_TIED = 5193,
+  PseudoVFWSUB_WV_MF2_E16 = 5194,
+  PseudoVFWSUB_WV_MF2_E16_MASK = 5195,
+  PseudoVFWSUB_WV_MF2_E16_MASK_TIED = 5196,
+  PseudoVFWSUB_WV_MF2_E16_TIED = 5197,
+  PseudoVFWSUB_WV_MF2_E32 = 5198,
+  PseudoVFWSUB_WV_MF2_E32_MASK = 5199,
+  PseudoVFWSUB_WV_MF2_E32_MASK_TIED = 5200,
+  PseudoVFWSUB_WV_MF2_E32_TIED = 5201,
+  PseudoVFWSUB_WV_MF4_E16 = 5202,
+  PseudoVFWSUB_WV_MF4_E16_MASK = 5203,
+  PseudoVFWSUB_WV_MF4_E16_MASK_TIED = 5204,
+  PseudoVFWSUB_WV_MF4_E16_TIED = 5205,
+  PseudoVGHSH_VV_M1 = 5206,
+  PseudoVGHSH_VV_M2 = 5207,
+  PseudoVGHSH_VV_M4 = 5208,
+  PseudoVGHSH_VV_M8 = 5209,
+  PseudoVGHSH_VV_MF2 = 5210,
+  PseudoVGMUL_VV_M1 = 5211,
+  PseudoVGMUL_VV_M2 = 5212,
+  PseudoVGMUL_VV_M4 = 5213,
+  PseudoVGMUL_VV_M8 = 5214,
+  PseudoVGMUL_VV_MF2 = 5215,
+  PseudoVID_V_M1 = 5216,
+  PseudoVID_V_M1_MASK = 5217,
+  PseudoVID_V_M2 = 5218,
+  PseudoVID_V_M2_MASK = 5219,
+  PseudoVID_V_M4 = 5220,
+  PseudoVID_V_M4_MASK = 5221,
+  PseudoVID_V_M8 = 5222,
+  PseudoVID_V_M8_MASK = 5223,
+  PseudoVID_V_MF2 = 5224,
+  PseudoVID_V_MF2_MASK = 5225,
+  PseudoVID_V_MF4 = 5226,
+  PseudoVID_V_MF4_MASK = 5227,
+  PseudoVID_V_MF8 = 5228,
+  PseudoVID_V_MF8_MASK = 5229,
+  PseudoVIOTA_M_M1 = 5230,
+  PseudoVIOTA_M_M1_MASK = 5231,
+  PseudoVIOTA_M_M2 = 5232,
+  PseudoVIOTA_M_M2_MASK = 5233,
+  PseudoVIOTA_M_M4 = 5234,
+  PseudoVIOTA_M_M4_MASK = 5235,
+  PseudoVIOTA_M_M8 = 5236,
+  PseudoVIOTA_M_M8_MASK = 5237,
+  PseudoVIOTA_M_MF2 = 5238,
+  PseudoVIOTA_M_MF2_MASK = 5239,
+  PseudoVIOTA_M_MF4 = 5240,
+  PseudoVIOTA_M_MF4_MASK = 5241,
+  PseudoVIOTA_M_MF8 = 5242,
+  PseudoVIOTA_M_MF8_MASK = 5243,
+  PseudoVLE16FF_V_M1 = 5244,
+  PseudoVLE16FF_V_M1_MASK = 5245,
+  PseudoVLE16FF_V_M2 = 5246,
+  PseudoVLE16FF_V_M2_MASK = 5247,
+  PseudoVLE16FF_V_M4 = 5248,
+  PseudoVLE16FF_V_M4_MASK = 5249,
+  PseudoVLE16FF_V_M8 = 5250,
+  PseudoVLE16FF_V_M8_MASK = 5251,
+  PseudoVLE16FF_V_MF2 = 5252,
+  PseudoVLE16FF_V_MF2_MASK = 5253,
+  PseudoVLE16FF_V_MF4 = 5254,
+  PseudoVLE16FF_V_MF4_MASK = 5255,
+  PseudoVLE16_V_M1 = 5256,
+  PseudoVLE16_V_M1_MASK = 5257,
+  PseudoVLE16_V_M2 = 5258,
+  PseudoVLE16_V_M2_MASK = 5259,
+  PseudoVLE16_V_M4 = 5260,
+  PseudoVLE16_V_M4_MASK = 5261,
+  PseudoVLE16_V_M8 = 5262,
+  PseudoVLE16_V_M8_MASK = 5263,
+  PseudoVLE16_V_MF2 = 5264,
+  PseudoVLE16_V_MF2_MASK = 5265,
+  PseudoVLE16_V_MF4 = 5266,
+  PseudoVLE16_V_MF4_MASK = 5267,
+  PseudoVLE32FF_V_M1 = 5268,
+  PseudoVLE32FF_V_M1_MASK = 5269,
+  PseudoVLE32FF_V_M2 = 5270,
+  PseudoVLE32FF_V_M2_MASK = 5271,
+  PseudoVLE32FF_V_M4 = 5272,
+  PseudoVLE32FF_V_M4_MASK = 5273,
+  PseudoVLE32FF_V_M8 = 5274,
+  PseudoVLE32FF_V_M8_MASK = 5275,
+  PseudoVLE32FF_V_MF2 = 5276,
+  PseudoVLE32FF_V_MF2_MASK = 5277,
+  PseudoVLE32_V_M1 = 5278,
+  PseudoVLE32_V_M1_MASK = 5279,
+  PseudoVLE32_V_M2 = 5280,
+  PseudoVLE32_V_M2_MASK = 5281,
+  PseudoVLE32_V_M4 = 5282,
+  PseudoVLE32_V_M4_MASK = 5283,
+  PseudoVLE32_V_M8 = 5284,
+  PseudoVLE32_V_M8_MASK = 5285,
+  PseudoVLE32_V_MF2 = 5286,
+  PseudoVLE32_V_MF2_MASK = 5287,
+  PseudoVLE64FF_V_M1 = 5288,
+  PseudoVLE64FF_V_M1_MASK = 5289,
+  PseudoVLE64FF_V_M2 = 5290,
+  PseudoVLE64FF_V_M2_MASK = 5291,
+  PseudoVLE64FF_V_M4 = 5292,
+  PseudoVLE64FF_V_M4_MASK = 5293,
+  PseudoVLE64FF_V_M8 = 5294,
+  PseudoVLE64FF_V_M8_MASK = 5295,
+  PseudoVLE64_V_M1 = 5296,
+  PseudoVLE64_V_M1_MASK = 5297,
+  PseudoVLE64_V_M2 = 5298,
+  PseudoVLE64_V_M2_MASK = 5299,
+  PseudoVLE64_V_M4 = 5300,
+  PseudoVLE64_V_M4_MASK = 5301,
+  PseudoVLE64_V_M8 = 5302,
+  PseudoVLE64_V_M8_MASK = 5303,
+  PseudoVLE8FF_V_M1 = 5304,
+  PseudoVLE8FF_V_M1_MASK = 5305,
+  PseudoVLE8FF_V_M2 = 5306,
+  PseudoVLE8FF_V_M2_MASK = 5307,
+  PseudoVLE8FF_V_M4 = 5308,
+  PseudoVLE8FF_V_M4_MASK = 5309,
+  PseudoVLE8FF_V_M8 = 5310,
+  PseudoVLE8FF_V_M8_MASK = 5311,
+  PseudoVLE8FF_V_MF2 = 5312,
+  PseudoVLE8FF_V_MF2_MASK = 5313,
+  PseudoVLE8FF_V_MF4 = 5314,
+  PseudoVLE8FF_V_MF4_MASK = 5315,
+  PseudoVLE8FF_V_MF8 = 5316,
+  PseudoVLE8FF_V_MF8_MASK = 5317,
+  PseudoVLE8_V_M1 = 5318,
+  PseudoVLE8_V_M1_MASK = 5319,
+  PseudoVLE8_V_M2 = 5320,
+  PseudoVLE8_V_M2_MASK = 5321,
+  PseudoVLE8_V_M4 = 5322,
+  PseudoVLE8_V_M4_MASK = 5323,
+  PseudoVLE8_V_M8 = 5324,
+  PseudoVLE8_V_M8_MASK = 5325,
+  PseudoVLE8_V_MF2 = 5326,
+  PseudoVLE8_V_MF2_MASK = 5327,
+  PseudoVLE8_V_MF4 = 5328,
+  PseudoVLE8_V_MF4_MASK = 5329,
+  PseudoVLE8_V_MF8 = 5330,
+  PseudoVLE8_V_MF8_MASK = 5331,
+  PseudoVLM_V_B1 = 5332,
+  PseudoVLM_V_B16 = 5333,
+  PseudoVLM_V_B2 = 5334,
+  PseudoVLM_V_B32 = 5335,
+  PseudoVLM_V_B4 = 5336,
+  PseudoVLM_V_B64 = 5337,
+  PseudoVLM_V_B8 = 5338,
+  PseudoVLOXEI16_V_M1_M1 = 5339,
+  PseudoVLOXEI16_V_M1_M1_MASK = 5340,
+  PseudoVLOXEI16_V_M1_M2 = 5341,
+  PseudoVLOXEI16_V_M1_M2_MASK = 5342,
+  PseudoVLOXEI16_V_M1_M4 = 5343,
+  PseudoVLOXEI16_V_M1_M4_MASK = 5344,
+  PseudoVLOXEI16_V_M1_MF2 = 5345,
+  PseudoVLOXEI16_V_M1_MF2_MASK = 5346,
+  PseudoVLOXEI16_V_M2_M1 = 5347,
+  PseudoVLOXEI16_V_M2_M1_MASK = 5348,
+  PseudoVLOXEI16_V_M2_M2 = 5349,
+  PseudoVLOXEI16_V_M2_M2_MASK = 5350,
+  PseudoVLOXEI16_V_M2_M4 = 5351,
+  PseudoVLOXEI16_V_M2_M4_MASK = 5352,
+  PseudoVLOXEI16_V_M2_M8 = 5353,
+  PseudoVLOXEI16_V_M2_M8_MASK = 5354,
+  PseudoVLOXEI16_V_M4_M2 = 5355,
+  PseudoVLOXEI16_V_M4_M2_MASK = 5356,
+  PseudoVLOXEI16_V_M4_M4 = 5357,
+  PseudoVLOXEI16_V_M4_M4_MASK = 5358,
+  PseudoVLOXEI16_V_M4_M8 = 5359,
+  PseudoVLOXEI16_V_M4_M8_MASK = 5360,
+  PseudoVLOXEI16_V_M8_M4 = 5361,
+  PseudoVLOXEI16_V_M8_M4_MASK = 5362,
+  PseudoVLOXEI16_V_M8_M8 = 5363,
+  PseudoVLOXEI16_V_M8_M8_MASK = 5364,
+  PseudoVLOXEI16_V_MF2_M1 = 5365,
+  PseudoVLOXEI16_V_MF2_M1_MASK = 5366,
+  PseudoVLOXEI16_V_MF2_M2 = 5367,
+  PseudoVLOXEI16_V_MF2_M2_MASK = 5368,
+  PseudoVLOXEI16_V_MF2_MF2 = 5369,
+  PseudoVLOXEI16_V_MF2_MF2_MASK = 5370,
+  PseudoVLOXEI16_V_MF2_MF4 = 5371,
+  PseudoVLOXEI16_V_MF2_MF4_MASK = 5372,
+  PseudoVLOXEI16_V_MF4_M1 = 5373,
+  PseudoVLOXEI16_V_MF4_M1_MASK = 5374,
+  PseudoVLOXEI16_V_MF4_MF2 = 5375,
+  PseudoVLOXEI16_V_MF4_MF2_MASK = 5376,
+  PseudoVLOXEI16_V_MF4_MF4 = 5377,
+  PseudoVLOXEI16_V_MF4_MF4_MASK = 5378,
+  PseudoVLOXEI16_V_MF4_MF8 = 5379,
+  PseudoVLOXEI16_V_MF4_MF8_MASK = 5380,
+  PseudoVLOXEI32_V_M1_M1 = 5381,
+  PseudoVLOXEI32_V_M1_M1_MASK = 5382,
+  PseudoVLOXEI32_V_M1_M2 = 5383,
+  PseudoVLOXEI32_V_M1_M2_MASK = 5384,
+  PseudoVLOXEI32_V_M1_MF2 = 5385,
+  PseudoVLOXEI32_V_M1_MF2_MASK = 5386,
+  PseudoVLOXEI32_V_M1_MF4 = 5387,
+  PseudoVLOXEI32_V_M1_MF4_MASK = 5388,
+  PseudoVLOXEI32_V_M2_M1 = 5389,
+  PseudoVLOXEI32_V_M2_M1_MASK = 5390,
+  PseudoVLOXEI32_V_M2_M2 = 5391,
+  PseudoVLOXEI32_V_M2_M2_MASK = 5392,
+  PseudoVLOXEI32_V_M2_M4 = 5393,
+  PseudoVLOXEI32_V_M2_M4_MASK = 5394,
+  PseudoVLOXEI32_V_M2_MF2 = 5395,
+  PseudoVLOXEI32_V_M2_MF2_MASK = 5396,
+  PseudoVLOXEI32_V_M4_M1 = 5397,
+  PseudoVLOXEI32_V_M4_M1_MASK = 5398,
+  PseudoVLOXEI32_V_M4_M2 = 5399,
+  PseudoVLOXEI32_V_M4_M2_MASK = 5400,
+  PseudoVLOXEI32_V_M4_M4 = 5401,
+  PseudoVLOXEI32_V_M4_M4_MASK = 5402,
+  PseudoVLOXEI32_V_M4_M8 = 5403,
+  PseudoVLOXEI32_V_M4_M8_MASK = 5404,
+  PseudoVLOXEI32_V_M8_M2 = 5405,
+  PseudoVLOXEI32_V_M8_M2_MASK = 5406,
+  PseudoVLOXEI32_V_M8_M4 = 5407,
+  PseudoVLOXEI32_V_M8_M4_MASK = 5408,
+  PseudoVLOXEI32_V_M8_M8 = 5409,
+  PseudoVLOXEI32_V_M8_M8_MASK = 5410,
+  PseudoVLOXEI32_V_MF2_M1 = 5411,
+  PseudoVLOXEI32_V_MF2_M1_MASK = 5412,
+  PseudoVLOXEI32_V_MF2_MF2 = 5413,
+  PseudoVLOXEI32_V_MF2_MF2_MASK = 5414,
+  PseudoVLOXEI32_V_MF2_MF4 = 5415,
+  PseudoVLOXEI32_V_MF2_MF4_MASK = 5416,
+  PseudoVLOXEI32_V_MF2_MF8 = 5417,
+  PseudoVLOXEI32_V_MF2_MF8_MASK = 5418,
+  PseudoVLOXEI64_V_M1_M1 = 5419,
+  PseudoVLOXEI64_V_M1_M1_MASK = 5420,
+  PseudoVLOXEI64_V_M1_MF2 = 5421,
+  PseudoVLOXEI64_V_M1_MF2_MASK = 5422,
+  PseudoVLOXEI64_V_M1_MF4 = 5423,
+  PseudoVLOXEI64_V_M1_MF4_MASK = 5424,
+  PseudoVLOXEI64_V_M1_MF8 = 5425,
+  PseudoVLOXEI64_V_M1_MF8_MASK = 5426,
+  PseudoVLOXEI64_V_M2_M1 = 5427,
+  PseudoVLOXEI64_V_M2_M1_MASK = 5428,
+  PseudoVLOXEI64_V_M2_M2 = 5429,
+  PseudoVLOXEI64_V_M2_M2_MASK = 5430,
+  PseudoVLOXEI64_V_M2_MF2 = 5431,
+  PseudoVLOXEI64_V_M2_MF2_MASK = 5432,
+  PseudoVLOXEI64_V_M2_MF4 = 5433,
+  PseudoVLOXEI64_V_M2_MF4_MASK = 5434,
+  PseudoVLOXEI64_V_M4_M1 = 5435,
+  PseudoVLOXEI64_V_M4_M1_MASK = 5436,
+  PseudoVLOXEI64_V_M4_M2 = 5437,
+  PseudoVLOXEI64_V_M4_M2_MASK = 5438,
+  PseudoVLOXEI64_V_M4_M4 = 5439,
+  PseudoVLOXEI64_V_M4_M4_MASK = 5440,
+  PseudoVLOXEI64_V_M4_MF2 = 5441,
+  PseudoVLOXEI64_V_M4_MF2_MASK = 5442,
+  PseudoVLOXEI64_V_M8_M1 = 5443,
+  PseudoVLOXEI64_V_M8_M1_MASK = 5444,
+  PseudoVLOXEI64_V_M8_M2 = 5445,
+  PseudoVLOXEI64_V_M8_M2_MASK = 5446,
+  PseudoVLOXEI64_V_M8_M4 = 5447,
+  PseudoVLOXEI64_V_M8_M4_MASK = 5448,
+  PseudoVLOXEI64_V_M8_M8 = 5449,
+  PseudoVLOXEI64_V_M8_M8_MASK = 5450,
+  PseudoVLOXEI8_V_M1_M1 = 5451,
+  PseudoVLOXEI8_V_M1_M1_MASK = 5452,
+  PseudoVLOXEI8_V_M1_M2 = 5453,
+  PseudoVLOXEI8_V_M1_M2_MASK = 5454,
+  PseudoVLOXEI8_V_M1_M4 = 5455,
+  PseudoVLOXEI8_V_M1_M4_MASK = 5456,
+  PseudoVLOXEI8_V_M1_M8 = 5457,
+  PseudoVLOXEI8_V_M1_M8_MASK = 5458,
+  PseudoVLOXEI8_V_M2_M2 = 5459,
+  PseudoVLOXEI8_V_M2_M2_MASK = 5460,
+  PseudoVLOXEI8_V_M2_M4 = 5461,
+  PseudoVLOXEI8_V_M2_M4_MASK = 5462,
+  PseudoVLOXEI8_V_M2_M8 = 5463,
+  PseudoVLOXEI8_V_M2_M8_MASK = 5464,
+  PseudoVLOXEI8_V_M4_M4 = 5465,
+  PseudoVLOXEI8_V_M4_M4_MASK = 5466,
+  PseudoVLOXEI8_V_M4_M8 = 5467,
+  PseudoVLOXEI8_V_M4_M8_MASK = 5468,
+  PseudoVLOXEI8_V_M8_M8 = 5469,
+  PseudoVLOXEI8_V_M8_M8_MASK = 5470,
+  PseudoVLOXEI8_V_MF2_M1 = 5471,
+  PseudoVLOXEI8_V_MF2_M1_MASK = 5472,
+  PseudoVLOXEI8_V_MF2_M2 = 5473,
+  PseudoVLOXEI8_V_MF2_M2_MASK = 5474,
+  PseudoVLOXEI8_V_MF2_M4 = 5475,
+  PseudoVLOXEI8_V_MF2_M4_MASK = 5476,
+  PseudoVLOXEI8_V_MF2_MF2 = 5477,
+  PseudoVLOXEI8_V_MF2_MF2_MASK = 5478,
+  PseudoVLOXEI8_V_MF4_M1 = 5479,
+  PseudoVLOXEI8_V_MF4_M1_MASK = 5480,
+  PseudoVLOXEI8_V_MF4_M2 = 5481,
+  PseudoVLOXEI8_V_MF4_M2_MASK = 5482,
+  PseudoVLOXEI8_V_MF4_MF2 = 5483,
+  PseudoVLOXEI8_V_MF4_MF2_MASK = 5484,
+  PseudoVLOXEI8_V_MF4_MF4 = 5485,
+  PseudoVLOXEI8_V_MF4_MF4_MASK = 5486,
+  PseudoVLOXEI8_V_MF8_M1 = 5487,
+  PseudoVLOXEI8_V_MF8_M1_MASK = 5488,
+  PseudoVLOXEI8_V_MF8_MF2 = 5489,
+  PseudoVLOXEI8_V_MF8_MF2_MASK = 5490,
+  PseudoVLOXEI8_V_MF8_MF4 = 5491,
+  PseudoVLOXEI8_V_MF8_MF4_MASK = 5492,
+  PseudoVLOXEI8_V_MF8_MF8 = 5493,
+  PseudoVLOXEI8_V_MF8_MF8_MASK = 5494,
+  PseudoVLOXSEG2EI16_V_M1_M1 = 5495,
+  PseudoVLOXSEG2EI16_V_M1_M1_MASK = 5496,
+  PseudoVLOXSEG2EI16_V_M1_M2 = 5497,
+  PseudoVLOXSEG2EI16_V_M1_M2_MASK = 5498,
+  PseudoVLOXSEG2EI16_V_M1_M4 = 5499,
+  PseudoVLOXSEG2EI16_V_M1_M4_MASK = 5500,
+  PseudoVLOXSEG2EI16_V_M1_MF2 = 5501,
+  PseudoVLOXSEG2EI16_V_M1_MF2_MASK = 5502,
+  PseudoVLOXSEG2EI16_V_M2_M1 = 5503,
+  PseudoVLOXSEG2EI16_V_M2_M1_MASK = 5504,
+  PseudoVLOXSEG2EI16_V_M2_M2 = 5505,
+  PseudoVLOXSEG2EI16_V_M2_M2_MASK = 5506,
+  PseudoVLOXSEG2EI16_V_M2_M4 = 5507,
+  PseudoVLOXSEG2EI16_V_M2_M4_MASK = 5508,
+  PseudoVLOXSEG2EI16_V_M4_M2 = 5509,
+  PseudoVLOXSEG2EI16_V_M4_M2_MASK = 5510,
+  PseudoVLOXSEG2EI16_V_M4_M4 = 5511,
+  PseudoVLOXSEG2EI16_V_M4_M4_MASK = 5512,
+  PseudoVLOXSEG2EI16_V_M8_M4 = 5513,
+  PseudoVLOXSEG2EI16_V_M8_M4_MASK = 5514,
+  PseudoVLOXSEG2EI16_V_MF2_M1 = 5515,
+  PseudoVLOXSEG2EI16_V_MF2_M1_MASK = 5516,
+  PseudoVLOXSEG2EI16_V_MF2_M2 = 5517,
+  PseudoVLOXSEG2EI16_V_MF2_M2_MASK = 5518,
+  PseudoVLOXSEG2EI16_V_MF2_MF2 = 5519,
+  PseudoVLOXSEG2EI16_V_MF2_MF2_MASK = 5520,
+  PseudoVLOXSEG2EI16_V_MF2_MF4 = 5521,
+  PseudoVLOXSEG2EI16_V_MF2_MF4_MASK = 5522,
+  PseudoVLOXSEG2EI16_V_MF4_M1 = 5523,
+  PseudoVLOXSEG2EI16_V_MF4_M1_MASK = 5524,
+  PseudoVLOXSEG2EI16_V_MF4_MF2 = 5525,
+  PseudoVLOXSEG2EI16_V_MF4_MF2_MASK = 5526,
+  PseudoVLOXSEG2EI16_V_MF4_MF4 = 5527,
+  PseudoVLOXSEG2EI16_V_MF4_MF4_MASK = 5528,
+  PseudoVLOXSEG2EI16_V_MF4_MF8 = 5529,
+  PseudoVLOXSEG2EI16_V_MF4_MF8_MASK = 5530,
+  PseudoVLOXSEG2EI32_V_M1_M1 = 5531,
+  PseudoVLOXSEG2EI32_V_M1_M1_MASK = 5532,
+  PseudoVLOXSEG2EI32_V_M1_M2 = 5533,
+  PseudoVLOXSEG2EI32_V_M1_M2_MASK = 5534,
+  PseudoVLOXSEG2EI32_V_M1_MF2 = 5535,
+  PseudoVLOXSEG2EI32_V_M1_MF2_MASK = 5536,
+  PseudoVLOXSEG2EI32_V_M1_MF4 = 5537,
+  PseudoVLOXSEG2EI32_V_M1_MF4_MASK = 5538,
+  PseudoVLOXSEG2EI32_V_M2_M1 = 5539,
+  PseudoVLOXSEG2EI32_V_M2_M1_MASK = 5540,
+  PseudoVLOXSEG2EI32_V_M2_M2 = 5541,
+  PseudoVLOXSEG2EI32_V_M2_M2_MASK = 5542,
+  PseudoVLOXSEG2EI32_V_M2_M4 = 5543,
+  PseudoVLOXSEG2EI32_V_M2_M4_MASK = 5544,
+  PseudoVLOXSEG2EI32_V_M2_MF2 = 5545,
+  PseudoVLOXSEG2EI32_V_M2_MF2_MASK = 5546,
+  PseudoVLOXSEG2EI32_V_M4_M1 = 5547,
+  PseudoVLOXSEG2EI32_V_M4_M1_MASK = 5548,
+  PseudoVLOXSEG2EI32_V_M4_M2 = 5549,
+  PseudoVLOXSEG2EI32_V_M4_M2_MASK = 5550,
+  PseudoVLOXSEG2EI32_V_M4_M4 = 5551,
+  PseudoVLOXSEG2EI32_V_M4_M4_MASK = 5552,
+  PseudoVLOXSEG2EI32_V_M8_M2 = 5553,
+  PseudoVLOXSEG2EI32_V_M8_M2_MASK = 5554,
+  PseudoVLOXSEG2EI32_V_M8_M4 = 5555,
+  PseudoVLOXSEG2EI32_V_M8_M4_MASK = 5556,
+  PseudoVLOXSEG2EI32_V_MF2_M1 = 5557,
+  PseudoVLOXSEG2EI32_V_MF2_M1_MASK = 5558,
+  PseudoVLOXSEG2EI32_V_MF2_MF2 = 5559,
+  PseudoVLOXSEG2EI32_V_MF2_MF2_MASK = 5560,
+  PseudoVLOXSEG2EI32_V_MF2_MF4 = 5561,
+  PseudoVLOXSEG2EI32_V_MF2_MF4_MASK = 5562,
+  PseudoVLOXSEG2EI32_V_MF2_MF8 = 5563,
+  PseudoVLOXSEG2EI32_V_MF2_MF8_MASK = 5564,
+  PseudoVLOXSEG2EI64_V_M1_M1 = 5565,
+  PseudoVLOXSEG2EI64_V_M1_M1_MASK = 5566,
+  PseudoVLOXSEG2EI64_V_M1_MF2 = 5567,
+  PseudoVLOXSEG2EI64_V_M1_MF2_MASK = 5568,
+  PseudoVLOXSEG2EI64_V_M1_MF4 = 5569,
+  PseudoVLOXSEG2EI64_V_M1_MF4_MASK = 5570,
+  PseudoVLOXSEG2EI64_V_M1_MF8 = 5571,
+  PseudoVLOXSEG2EI64_V_M1_MF8_MASK = 5572,
+  PseudoVLOXSEG2EI64_V_M2_M1 = 5573,
+  PseudoVLOXSEG2EI64_V_M2_M1_MASK = 5574,
+  PseudoVLOXSEG2EI64_V_M2_M2 = 5575,
+  PseudoVLOXSEG2EI64_V_M2_M2_MASK = 5576,
+  PseudoVLOXSEG2EI64_V_M2_MF2 = 5577,
+  PseudoVLOXSEG2EI64_V_M2_MF2_MASK = 5578,
+  PseudoVLOXSEG2EI64_V_M2_MF4 = 5579,
+  PseudoVLOXSEG2EI64_V_M2_MF4_MASK = 5580,
+  PseudoVLOXSEG2EI64_V_M4_M1 = 5581,
+  PseudoVLOXSEG2EI64_V_M4_M1_MASK = 5582,
+  PseudoVLOXSEG2EI64_V_M4_M2 = 5583,
+  PseudoVLOXSEG2EI64_V_M4_M2_MASK = 5584,
+  PseudoVLOXSEG2EI64_V_M4_M4 = 5585,
+  PseudoVLOXSEG2EI64_V_M4_M4_MASK = 5586,
+  PseudoVLOXSEG2EI64_V_M4_MF2 = 5587,
+  PseudoVLOXSEG2EI64_V_M4_MF2_MASK = 5588,
+  PseudoVLOXSEG2EI64_V_M8_M1 = 5589,
+  PseudoVLOXSEG2EI64_V_M8_M1_MASK = 5590,
+  PseudoVLOXSEG2EI64_V_M8_M2 = 5591,
+  PseudoVLOXSEG2EI64_V_M8_M2_MASK = 5592,
+  PseudoVLOXSEG2EI64_V_M8_M4 = 5593,
+  PseudoVLOXSEG2EI64_V_M8_M4_MASK = 5594,
+  PseudoVLOXSEG2EI8_V_M1_M1 = 5595,
+  PseudoVLOXSEG2EI8_V_M1_M1_MASK = 5596,
+  PseudoVLOXSEG2EI8_V_M1_M2 = 5597,
+  PseudoVLOXSEG2EI8_V_M1_M2_MASK = 5598,
+  PseudoVLOXSEG2EI8_V_M1_M4 = 5599,
+  PseudoVLOXSEG2EI8_V_M1_M4_MASK = 5600,
+  PseudoVLOXSEG2EI8_V_M2_M2 = 5601,
+  PseudoVLOXSEG2EI8_V_M2_M2_MASK = 5602,
+  PseudoVLOXSEG2EI8_V_M2_M4 = 5603,
+  PseudoVLOXSEG2EI8_V_M2_M4_MASK = 5604,
+  PseudoVLOXSEG2EI8_V_M4_M4 = 5605,
+  PseudoVLOXSEG2EI8_V_M4_M4_MASK = 5606,
+  PseudoVLOXSEG2EI8_V_MF2_M1 = 5607,
+  PseudoVLOXSEG2EI8_V_MF2_M1_MASK = 5608,
+  PseudoVLOXSEG2EI8_V_MF2_M2 = 5609,
+  PseudoVLOXSEG2EI8_V_MF2_M2_MASK = 5610,
+  PseudoVLOXSEG2EI8_V_MF2_M4 = 5611,
+  PseudoVLOXSEG2EI8_V_MF2_M4_MASK = 5612,
+  PseudoVLOXSEG2EI8_V_MF2_MF2 = 5613,
+  PseudoVLOXSEG2EI8_V_MF2_MF2_MASK = 5614,
+  PseudoVLOXSEG2EI8_V_MF4_M1 = 5615,
+  PseudoVLOXSEG2EI8_V_MF4_M1_MASK = 5616,
+  PseudoVLOXSEG2EI8_V_MF4_M2 = 5617,
+  PseudoVLOXSEG2EI8_V_MF4_M2_MASK = 5618,
+  PseudoVLOXSEG2EI8_V_MF4_MF2 = 5619,
+  PseudoVLOXSEG2EI8_V_MF4_MF2_MASK = 5620,
+  PseudoVLOXSEG2EI8_V_MF4_MF4 = 5621,
+  PseudoVLOXSEG2EI8_V_MF4_MF4_MASK = 5622,
+  PseudoVLOXSEG2EI8_V_MF8_M1 = 5623,
+  PseudoVLOXSEG2EI8_V_MF8_M1_MASK = 5624,
+  PseudoVLOXSEG2EI8_V_MF8_MF2 = 5625,
+  PseudoVLOXSEG2EI8_V_MF8_MF2_MASK = 5626,
+  PseudoVLOXSEG2EI8_V_MF8_MF4 = 5627,
+  PseudoVLOXSEG2EI8_V_MF8_MF4_MASK = 5628,
+  PseudoVLOXSEG2EI8_V_MF8_MF8 = 5629,
+  PseudoVLOXSEG2EI8_V_MF8_MF8_MASK = 5630,
+  PseudoVLOXSEG3EI16_V_M1_M1 = 5631,
+  PseudoVLOXSEG3EI16_V_M1_M1_MASK = 5632,
+  PseudoVLOXSEG3EI16_V_M1_M2 = 5633,
+  PseudoVLOXSEG3EI16_V_M1_M2_MASK = 5634,
+  PseudoVLOXSEG3EI16_V_M1_MF2 = 5635,
+  PseudoVLOXSEG3EI16_V_M1_MF2_MASK = 5636,
+  PseudoVLOXSEG3EI16_V_M2_M1 = 5637,
+  PseudoVLOXSEG3EI16_V_M2_M1_MASK = 5638,
+  PseudoVLOXSEG3EI16_V_M2_M2 = 5639,
+  PseudoVLOXSEG3EI16_V_M2_M2_MASK = 5640,
+  PseudoVLOXSEG3EI16_V_M4_M2 = 5641,
+  PseudoVLOXSEG3EI16_V_M4_M2_MASK = 5642,
+  PseudoVLOXSEG3EI16_V_MF2_M1 = 5643,
+  PseudoVLOXSEG3EI16_V_MF2_M1_MASK = 5644,
+  PseudoVLOXSEG3EI16_V_MF2_M2 = 5645,
+  PseudoVLOXSEG3EI16_V_MF2_M2_MASK = 5646,
+  PseudoVLOXSEG3EI16_V_MF2_MF2 = 5647,
+  PseudoVLOXSEG3EI16_V_MF2_MF2_MASK = 5648,
+  PseudoVLOXSEG3EI16_V_MF2_MF4 = 5649,
+  PseudoVLOXSEG3EI16_V_MF2_MF4_MASK = 5650,
+  PseudoVLOXSEG3EI16_V_MF4_M1 = 5651,
+  PseudoVLOXSEG3EI16_V_MF4_M1_MASK = 5652,
+  PseudoVLOXSEG3EI16_V_MF4_MF2 = 5653,
+  PseudoVLOXSEG3EI16_V_MF4_MF2_MASK = 5654,
+  PseudoVLOXSEG3EI16_V_MF4_MF4 = 5655,
+  PseudoVLOXSEG3EI16_V_MF4_MF4_MASK = 5656,
+  PseudoVLOXSEG3EI16_V_MF4_MF8 = 5657,
+  PseudoVLOXSEG3EI16_V_MF4_MF8_MASK = 5658,
+  PseudoVLOXSEG3EI32_V_M1_M1 = 5659,
+  PseudoVLOXSEG3EI32_V_M1_M1_MASK = 5660,
+  PseudoVLOXSEG3EI32_V_M1_M2 = 5661,
+  PseudoVLOXSEG3EI32_V_M1_M2_MASK = 5662,
+  PseudoVLOXSEG3EI32_V_M1_MF2 = 5663,
+  PseudoVLOXSEG3EI32_V_M1_MF2_MASK = 5664,
+  PseudoVLOXSEG3EI32_V_M1_MF4 = 5665,
+  PseudoVLOXSEG3EI32_V_M1_MF4_MASK = 5666,
+  PseudoVLOXSEG3EI32_V_M2_M1 = 5667,
+  PseudoVLOXSEG3EI32_V_M2_M1_MASK = 5668,
+  PseudoVLOXSEG3EI32_V_M2_M2 = 5669,
+  PseudoVLOXSEG3EI32_V_M2_M2_MASK = 5670,
+  PseudoVLOXSEG3EI32_V_M2_MF2 = 5671,
+  PseudoVLOXSEG3EI32_V_M2_MF2_MASK = 5672,
+  PseudoVLOXSEG3EI32_V_M4_M1 = 5673,
+  PseudoVLOXSEG3EI32_V_M4_M1_MASK = 5674,
+  PseudoVLOXSEG3EI32_V_M4_M2 = 5675,
+  PseudoVLOXSEG3EI32_V_M4_M2_MASK = 5676,
+  PseudoVLOXSEG3EI32_V_M8_M2 = 5677,
+  PseudoVLOXSEG3EI32_V_M8_M2_MASK = 5678,
+  PseudoVLOXSEG3EI32_V_MF2_M1 = 5679,
+  PseudoVLOXSEG3EI32_V_MF2_M1_MASK = 5680,
+  PseudoVLOXSEG3EI32_V_MF2_MF2 = 5681,
+  PseudoVLOXSEG3EI32_V_MF2_MF2_MASK = 5682,
+  PseudoVLOXSEG3EI32_V_MF2_MF4 = 5683,
+  PseudoVLOXSEG3EI32_V_MF2_MF4_MASK = 5684,
+  PseudoVLOXSEG3EI32_V_MF2_MF8 = 5685,
+  PseudoVLOXSEG3EI32_V_MF2_MF8_MASK = 5686,
+  PseudoVLOXSEG3EI64_V_M1_M1 = 5687,
+  PseudoVLOXSEG3EI64_V_M1_M1_MASK = 5688,
+  PseudoVLOXSEG3EI64_V_M1_MF2 = 5689,
+  PseudoVLOXSEG3EI64_V_M1_MF2_MASK = 5690,
+  PseudoVLOXSEG3EI64_V_M1_MF4 = 5691,
+  PseudoVLOXSEG3EI64_V_M1_MF4_MASK = 5692,
+  PseudoVLOXSEG3EI64_V_M1_MF8 = 5693,
+  PseudoVLOXSEG3EI64_V_M1_MF8_MASK = 5694,
+  PseudoVLOXSEG3EI64_V_M2_M1 = 5695,
+  PseudoVLOXSEG3EI64_V_M2_M1_MASK = 5696,
+  PseudoVLOXSEG3EI64_V_M2_M2 = 5697,
+  PseudoVLOXSEG3EI64_V_M2_M2_MASK = 5698,
+  PseudoVLOXSEG3EI64_V_M2_MF2 = 5699,
+  PseudoVLOXSEG3EI64_V_M2_MF2_MASK = 5700,
+  PseudoVLOXSEG3EI64_V_M2_MF4 = 5701,
+  PseudoVLOXSEG3EI64_V_M2_MF4_MASK = 5702,
+  PseudoVLOXSEG3EI64_V_M4_M1 = 5703,
+  PseudoVLOXSEG3EI64_V_M4_M1_MASK = 5704,
+  PseudoVLOXSEG3EI64_V_M4_M2 = 5705,
+  PseudoVLOXSEG3EI64_V_M4_M2_MASK = 5706,
+  PseudoVLOXSEG3EI64_V_M4_MF2 = 5707,
+  PseudoVLOXSEG3EI64_V_M4_MF2_MASK = 5708,
+  PseudoVLOXSEG3EI64_V_M8_M1 = 5709,
+  PseudoVLOXSEG3EI64_V_M8_M1_MASK = 5710,
+  PseudoVLOXSEG3EI64_V_M8_M2 = 5711,
+  PseudoVLOXSEG3EI64_V_M8_M2_MASK = 5712,
+  PseudoVLOXSEG3EI8_V_M1_M1 = 5713,
+  PseudoVLOXSEG3EI8_V_M1_M1_MASK = 5714,
+  PseudoVLOXSEG3EI8_V_M1_M2 = 5715,
+  PseudoVLOXSEG3EI8_V_M1_M2_MASK = 5716,
+  PseudoVLOXSEG3EI8_V_M2_M2 = 5717,
+  PseudoVLOXSEG3EI8_V_M2_M2_MASK = 5718,
+  PseudoVLOXSEG3EI8_V_MF2_M1 = 5719,
+  PseudoVLOXSEG3EI8_V_MF2_M1_MASK = 5720,
+  PseudoVLOXSEG3EI8_V_MF2_M2 = 5721,
+  PseudoVLOXSEG3EI8_V_MF2_M2_MASK = 5722,
+  PseudoVLOXSEG3EI8_V_MF2_MF2 = 5723,
+  PseudoVLOXSEG3EI8_V_MF2_MF2_MASK = 5724,
+  PseudoVLOXSEG3EI8_V_MF4_M1 = 5725,
+  PseudoVLOXSEG3EI8_V_MF4_M1_MASK = 5726,
+  PseudoVLOXSEG3EI8_V_MF4_M2 = 5727,
+  PseudoVLOXSEG3EI8_V_MF4_M2_MASK = 5728,
+  PseudoVLOXSEG3EI8_V_MF4_MF2 = 5729,
+  PseudoVLOXSEG3EI8_V_MF4_MF2_MASK = 5730,
+  PseudoVLOXSEG3EI8_V_MF4_MF4 = 5731,
+  PseudoVLOXSEG3EI8_V_MF4_MF4_MASK = 5732,
+  PseudoVLOXSEG3EI8_V_MF8_M1 = 5733,
+  PseudoVLOXSEG3EI8_V_MF8_M1_MASK = 5734,
+  PseudoVLOXSEG3EI8_V_MF8_MF2 = 5735,
+  PseudoVLOXSEG3EI8_V_MF8_MF2_MASK = 5736,
+  PseudoVLOXSEG3EI8_V_MF8_MF4 = 5737,
+  PseudoVLOXSEG3EI8_V_MF8_MF4_MASK = 5738,
+  PseudoVLOXSEG3EI8_V_MF8_MF8 = 5739,
+  PseudoVLOXSEG3EI8_V_MF8_MF8_MASK = 5740,
+  PseudoVLOXSEG4EI16_V_M1_M1 = 5741,
+  PseudoVLOXSEG4EI16_V_M1_M1_MASK = 5742,
+  PseudoVLOXSEG4EI16_V_M1_M2 = 5743,
+  PseudoVLOXSEG4EI16_V_M1_M2_MASK = 5744,
+  PseudoVLOXSEG4EI16_V_M1_MF2 = 5745,
+  PseudoVLOXSEG4EI16_V_M1_MF2_MASK = 5746,
+  PseudoVLOXSEG4EI16_V_M2_M1 = 5747,
+  PseudoVLOXSEG4EI16_V_M2_M1_MASK = 5748,
+  PseudoVLOXSEG4EI16_V_M2_M2 = 5749,
+  PseudoVLOXSEG4EI16_V_M2_M2_MASK = 5750,
+  PseudoVLOXSEG4EI16_V_M4_M2 = 5751,
+  PseudoVLOXSEG4EI16_V_M4_M2_MASK = 5752,
+  PseudoVLOXSEG4EI16_V_MF2_M1 = 5753,
+  PseudoVLOXSEG4EI16_V_MF2_M1_MASK = 5754,
+  PseudoVLOXSEG4EI16_V_MF2_M2 = 5755,
+  PseudoVLOXSEG4EI16_V_MF2_M2_MASK = 5756,
+  PseudoVLOXSEG4EI16_V_MF2_MF2 = 5757,
+  PseudoVLOXSEG4EI16_V_MF2_MF2_MASK = 5758,
+  PseudoVLOXSEG4EI16_V_MF2_MF4 = 5759,
+  PseudoVLOXSEG4EI16_V_MF2_MF4_MASK = 5760,
+  PseudoVLOXSEG4EI16_V_MF4_M1 = 5761,
+  PseudoVLOXSEG4EI16_V_MF4_M1_MASK = 5762,
+  PseudoVLOXSEG4EI16_V_MF4_MF2 = 5763,
+  PseudoVLOXSEG4EI16_V_MF4_MF2_MASK = 5764,
+  PseudoVLOXSEG4EI16_V_MF4_MF4 = 5765,
+  PseudoVLOXSEG4EI16_V_MF4_MF4_MASK = 5766,
+  PseudoVLOXSEG4EI16_V_MF4_MF8 = 5767,
+  PseudoVLOXSEG4EI16_V_MF4_MF8_MASK = 5768,
+  PseudoVLOXSEG4EI32_V_M1_M1 = 5769,
+  PseudoVLOXSEG4EI32_V_M1_M1_MASK = 5770,
+  PseudoVLOXSEG4EI32_V_M1_M2 = 5771,
+  PseudoVLOXSEG4EI32_V_M1_M2_MASK = 5772,
+  PseudoVLOXSEG4EI32_V_M1_MF2 = 5773,
+  PseudoVLOXSEG4EI32_V_M1_MF2_MASK = 5774,
+  PseudoVLOXSEG4EI32_V_M1_MF4 = 5775,
+  PseudoVLOXSEG4EI32_V_M1_MF4_MASK = 5776,
+  PseudoVLOXSEG4EI32_V_M2_M1 = 5777,
+  PseudoVLOXSEG4EI32_V_M2_M1_MASK = 5778,
+  PseudoVLOXSEG4EI32_V_M2_M2 = 5779,
+  PseudoVLOXSEG4EI32_V_M2_M2_MASK = 5780,
+  PseudoVLOXSEG4EI32_V_M2_MF2 = 5781,
+  PseudoVLOXSEG4EI32_V_M2_MF2_MASK = 5782,
+  PseudoVLOXSEG4EI32_V_M4_M1 = 5783,
+  PseudoVLOXSEG4EI32_V_M4_M1_MASK = 5784,
+  PseudoVLOXSEG4EI32_V_M4_M2 = 5785,
+  PseudoVLOXSEG4EI32_V_M4_M2_MASK = 5786,
+  PseudoVLOXSEG4EI32_V_M8_M2 = 5787,
+  PseudoVLOXSEG4EI32_V_M8_M2_MASK = 5788,
+  PseudoVLOXSEG4EI32_V_MF2_M1 = 5789,
+  PseudoVLOXSEG4EI32_V_MF2_M1_MASK = 5790,
+  PseudoVLOXSEG4EI32_V_MF2_MF2 = 5791,
+  PseudoVLOXSEG4EI32_V_MF2_MF2_MASK = 5792,
+  PseudoVLOXSEG4EI32_V_MF2_MF4 = 5793,
+  PseudoVLOXSEG4EI32_V_MF2_MF4_MASK = 5794,
+  PseudoVLOXSEG4EI32_V_MF2_MF8 = 5795,
+  PseudoVLOXSEG4EI32_V_MF2_MF8_MASK = 5796,
+  PseudoVLOXSEG4EI64_V_M1_M1 = 5797,
+  PseudoVLOXSEG4EI64_V_M1_M1_MASK = 5798,
+  PseudoVLOXSEG4EI64_V_M1_MF2 = 5799,
+  PseudoVLOXSEG4EI64_V_M1_MF2_MASK = 5800,
+  PseudoVLOXSEG4EI64_V_M1_MF4 = 5801,
+  PseudoVLOXSEG4EI64_V_M1_MF4_MASK = 5802,
+  PseudoVLOXSEG4EI64_V_M1_MF8 = 5803,
+  PseudoVLOXSEG4EI64_V_M1_MF8_MASK = 5804,
+  PseudoVLOXSEG4EI64_V_M2_M1 = 5805,
+  PseudoVLOXSEG4EI64_V_M2_M1_MASK = 5806,
+  PseudoVLOXSEG4EI64_V_M2_M2 = 5807,
+  PseudoVLOXSEG4EI64_V_M2_M2_MASK = 5808,
+  PseudoVLOXSEG4EI64_V_M2_MF2 = 5809,
+  PseudoVLOXSEG4EI64_V_M2_MF2_MASK = 5810,
+  PseudoVLOXSEG4EI64_V_M2_MF4 = 5811,
+  PseudoVLOXSEG4EI64_V_M2_MF4_MASK = 5812,
+  PseudoVLOXSEG4EI64_V_M4_M1 = 5813,
+  PseudoVLOXSEG4EI64_V_M4_M1_MASK = 5814,
+  PseudoVLOXSEG4EI64_V_M4_M2 = 5815,
+  PseudoVLOXSEG4EI64_V_M4_M2_MASK = 5816,
+  PseudoVLOXSEG4EI64_V_M4_MF2 = 5817,
+  PseudoVLOXSEG4EI64_V_M4_MF2_MASK = 5818,
+  PseudoVLOXSEG4EI64_V_M8_M1 = 5819,
+  PseudoVLOXSEG4EI64_V_M8_M1_MASK = 5820,
+  PseudoVLOXSEG4EI64_V_M8_M2 = 5821,
+  PseudoVLOXSEG4EI64_V_M8_M2_MASK = 5822,
+  PseudoVLOXSEG4EI8_V_M1_M1 = 5823,
+  PseudoVLOXSEG4EI8_V_M1_M1_MASK = 5824,
+  PseudoVLOXSEG4EI8_V_M1_M2 = 5825,
+  PseudoVLOXSEG4EI8_V_M1_M2_MASK = 5826,
+  PseudoVLOXSEG4EI8_V_M2_M2 = 5827,
+  PseudoVLOXSEG4EI8_V_M2_M2_MASK = 5828,
+  PseudoVLOXSEG4EI8_V_MF2_M1 = 5829,
+  PseudoVLOXSEG4EI8_V_MF2_M1_MASK = 5830,
+  PseudoVLOXSEG4EI8_V_MF2_M2 = 5831,
+  PseudoVLOXSEG4EI8_V_MF2_M2_MASK = 5832,
+  PseudoVLOXSEG4EI8_V_MF2_MF2 = 5833,
+  PseudoVLOXSEG4EI8_V_MF2_MF2_MASK = 5834,
+  PseudoVLOXSEG4EI8_V_MF4_M1 = 5835,
+  PseudoVLOXSEG4EI8_V_MF4_M1_MASK = 5836,
+  PseudoVLOXSEG4EI8_V_MF4_M2 = 5837,
+  PseudoVLOXSEG4EI8_V_MF4_M2_MASK = 5838,
+  PseudoVLOXSEG4EI8_V_MF4_MF2 = 5839,
+  PseudoVLOXSEG4EI8_V_MF4_MF2_MASK = 5840,
+  PseudoVLOXSEG4EI8_V_MF4_MF4 = 5841,
+  PseudoVLOXSEG4EI8_V_MF4_MF4_MASK = 5842,
+  PseudoVLOXSEG4EI8_V_MF8_M1 = 5843,
+  PseudoVLOXSEG4EI8_V_MF8_M1_MASK = 5844,
+  PseudoVLOXSEG4EI8_V_MF8_MF2 = 5845,
+  PseudoVLOXSEG4EI8_V_MF8_MF2_MASK = 5846,
+  PseudoVLOXSEG4EI8_V_MF8_MF4 = 5847,
+  PseudoVLOXSEG4EI8_V_MF8_MF4_MASK = 5848,
+  PseudoVLOXSEG4EI8_V_MF8_MF8 = 5849,
+  PseudoVLOXSEG4EI8_V_MF8_MF8_MASK = 5850,
+  PseudoVLOXSEG5EI16_V_M1_M1 = 5851,
+  PseudoVLOXSEG5EI16_V_M1_M1_MASK = 5852,
+  PseudoVLOXSEG5EI16_V_M1_MF2 = 5853,
+  PseudoVLOXSEG5EI16_V_M1_MF2_MASK = 5854,
+  PseudoVLOXSEG5EI16_V_M2_M1 = 5855,
+  PseudoVLOXSEG5EI16_V_M2_M1_MASK = 5856,
+  PseudoVLOXSEG5EI16_V_MF2_M1 = 5857,
+  PseudoVLOXSEG5EI16_V_MF2_M1_MASK = 5858,
+  PseudoVLOXSEG5EI16_V_MF2_MF2 = 5859,
+  PseudoVLOXSEG5EI16_V_MF2_MF2_MASK = 5860,
+  PseudoVLOXSEG5EI16_V_MF2_MF4 = 5861,
+  PseudoVLOXSEG5EI16_V_MF2_MF4_MASK = 5862,
+  PseudoVLOXSEG5EI16_V_MF4_M1 = 5863,
+  PseudoVLOXSEG5EI16_V_MF4_M1_MASK = 5864,
+  PseudoVLOXSEG5EI16_V_MF4_MF2 = 5865,
+  PseudoVLOXSEG5EI16_V_MF4_MF2_MASK = 5866,
+  PseudoVLOXSEG5EI16_V_MF4_MF4 = 5867,
+  PseudoVLOXSEG5EI16_V_MF4_MF4_MASK = 5868,
+  PseudoVLOXSEG5EI16_V_MF4_MF8 = 5869,
+  PseudoVLOXSEG5EI16_V_MF4_MF8_MASK = 5870,
+  PseudoVLOXSEG5EI32_V_M1_M1 = 5871,
+  PseudoVLOXSEG5EI32_V_M1_M1_MASK = 5872,
+  PseudoVLOXSEG5EI32_V_M1_MF2 = 5873,
+  PseudoVLOXSEG5EI32_V_M1_MF2_MASK = 5874,
+  PseudoVLOXSEG5EI32_V_M1_MF4 = 5875,
+  PseudoVLOXSEG5EI32_V_M1_MF4_MASK = 5876,
+  PseudoVLOXSEG5EI32_V_M2_M1 = 5877,
+  PseudoVLOXSEG5EI32_V_M2_M1_MASK = 5878,
+  PseudoVLOXSEG5EI32_V_M2_MF2 = 5879,
+  PseudoVLOXSEG5EI32_V_M2_MF2_MASK = 5880,
+  PseudoVLOXSEG5EI32_V_M4_M1 = 5881,
+  PseudoVLOXSEG5EI32_V_M4_M1_MASK = 5882,
+  PseudoVLOXSEG5EI32_V_MF2_M1 = 5883,
+  PseudoVLOXSEG5EI32_V_MF2_M1_MASK = 5884,
+  PseudoVLOXSEG5EI32_V_MF2_MF2 = 5885,
+  PseudoVLOXSEG5EI32_V_MF2_MF2_MASK = 5886,
+  PseudoVLOXSEG5EI32_V_MF2_MF4 = 5887,
+  PseudoVLOXSEG5EI32_V_MF2_MF4_MASK = 5888,
+  PseudoVLOXSEG5EI32_V_MF2_MF8 = 5889,
+  PseudoVLOXSEG5EI32_V_MF2_MF8_MASK = 5890,
+  PseudoVLOXSEG5EI64_V_M1_M1 = 5891,
+  PseudoVLOXSEG5EI64_V_M1_M1_MASK = 5892,
+  PseudoVLOXSEG5EI64_V_M1_MF2 = 5893,
+  PseudoVLOXSEG5EI64_V_M1_MF2_MASK = 5894,
+  PseudoVLOXSEG5EI64_V_M1_MF4 = 5895,
+  PseudoVLOXSEG5EI64_V_M1_MF4_MASK = 5896,
+  PseudoVLOXSEG5EI64_V_M1_MF8 = 5897,
+  PseudoVLOXSEG5EI64_V_M1_MF8_MASK = 5898,
+  PseudoVLOXSEG5EI64_V_M2_M1 = 5899,
+  PseudoVLOXSEG5EI64_V_M2_M1_MASK = 5900,
+  PseudoVLOXSEG5EI64_V_M2_MF2 = 5901,
+  PseudoVLOXSEG5EI64_V_M2_MF2_MASK = 5902,
+  PseudoVLOXSEG5EI64_V_M2_MF4 = 5903,
+  PseudoVLOXSEG5EI64_V_M2_MF4_MASK = 5904,
+  PseudoVLOXSEG5EI64_V_M4_M1 = 5905,
+  PseudoVLOXSEG5EI64_V_M4_M1_MASK = 5906,
+  PseudoVLOXSEG5EI64_V_M4_MF2 = 5907,
+  PseudoVLOXSEG5EI64_V_M4_MF2_MASK = 5908,
+  PseudoVLOXSEG5EI64_V_M8_M1 = 5909,
+  PseudoVLOXSEG5EI64_V_M8_M1_MASK = 5910,
+  PseudoVLOXSEG5EI8_V_M1_M1 = 5911,
+  PseudoVLOXSEG5EI8_V_M1_M1_MASK = 5912,
+  PseudoVLOXSEG5EI8_V_MF2_M1 = 5913,
+  PseudoVLOXSEG5EI8_V_MF2_M1_MASK = 5914,
+  PseudoVLOXSEG5EI8_V_MF2_MF2 = 5915,
+  PseudoVLOXSEG5EI8_V_MF2_MF2_MASK = 5916,
+  PseudoVLOXSEG5EI8_V_MF4_M1 = 5917,
+  PseudoVLOXSEG5EI8_V_MF4_M1_MASK = 5918,
+  PseudoVLOXSEG5EI8_V_MF4_MF2 = 5919,
+  PseudoVLOXSEG5EI8_V_MF4_MF2_MASK = 5920,
+  PseudoVLOXSEG5EI8_V_MF4_MF4 = 5921,
+  PseudoVLOXSEG5EI8_V_MF4_MF4_MASK = 5922,
+  PseudoVLOXSEG5EI8_V_MF8_M1 = 5923,
+  PseudoVLOXSEG5EI8_V_MF8_M1_MASK = 5924,
+  PseudoVLOXSEG5EI8_V_MF8_MF2 = 5925,
+  PseudoVLOXSEG5EI8_V_MF8_MF2_MASK = 5926,
+  PseudoVLOXSEG5EI8_V_MF8_MF4 = 5927,
+  PseudoVLOXSEG5EI8_V_MF8_MF4_MASK = 5928,
+  PseudoVLOXSEG5EI8_V_MF8_MF8 = 5929,
+  PseudoVLOXSEG5EI8_V_MF8_MF8_MASK = 5930,
+  PseudoVLOXSEG6EI16_V_M1_M1 = 5931,
+  PseudoVLOXSEG6EI16_V_M1_M1_MASK = 5932,
+  PseudoVLOXSEG6EI16_V_M1_MF2 = 5933,
+  PseudoVLOXSEG6EI16_V_M1_MF2_MASK = 5934,
+  PseudoVLOXSEG6EI16_V_M2_M1 = 5935,
+  PseudoVLOXSEG6EI16_V_M2_M1_MASK = 5936,
+  PseudoVLOXSEG6EI16_V_MF2_M1 = 5937,
+  PseudoVLOXSEG6EI16_V_MF2_M1_MASK = 5938,
+  PseudoVLOXSEG6EI16_V_MF2_MF2 = 5939,
+  PseudoVLOXSEG6EI16_V_MF2_MF2_MASK = 5940,
+  PseudoVLOXSEG6EI16_V_MF2_MF4 = 5941,
+  PseudoVLOXSEG6EI16_V_MF2_MF4_MASK = 5942,
+  PseudoVLOXSEG6EI16_V_MF4_M1 = 5943,
+  PseudoVLOXSEG6EI16_V_MF4_M1_MASK = 5944,
+  PseudoVLOXSEG6EI16_V_MF4_MF2 = 5945,
+  PseudoVLOXSEG6EI16_V_MF4_MF2_MASK = 5946,
+  PseudoVLOXSEG6EI16_V_MF4_MF4 = 5947,
+  PseudoVLOXSEG6EI16_V_MF4_MF4_MASK = 5948,
+  PseudoVLOXSEG6EI16_V_MF4_MF8 = 5949,
+  PseudoVLOXSEG6EI16_V_MF4_MF8_MASK = 5950,
+  PseudoVLOXSEG6EI32_V_M1_M1 = 5951,
+  PseudoVLOXSEG6EI32_V_M1_M1_MASK = 5952,
+  PseudoVLOXSEG6EI32_V_M1_MF2 = 5953,
+  PseudoVLOXSEG6EI32_V_M1_MF2_MASK = 5954,
+  PseudoVLOXSEG6EI32_V_M1_MF4 = 5955,
+  PseudoVLOXSEG6EI32_V_M1_MF4_MASK = 5956,
+  PseudoVLOXSEG6EI32_V_M2_M1 = 5957,
+  PseudoVLOXSEG6EI32_V_M2_M1_MASK = 5958,
+  PseudoVLOXSEG6EI32_V_M2_MF2 = 5959,
+  PseudoVLOXSEG6EI32_V_M2_MF2_MASK = 5960,
+  PseudoVLOXSEG6EI32_V_M4_M1 = 5961,
+  PseudoVLOXSEG6EI32_V_M4_M1_MASK = 5962,
+  PseudoVLOXSEG6EI32_V_MF2_M1 = 5963,
+  PseudoVLOXSEG6EI32_V_MF2_M1_MASK = 5964,
+  PseudoVLOXSEG6EI32_V_MF2_MF2 = 5965,
+  PseudoVLOXSEG6EI32_V_MF2_MF2_MASK = 5966,
+  PseudoVLOXSEG6EI32_V_MF2_MF4 = 5967,
+  PseudoVLOXSEG6EI32_V_MF2_MF4_MASK = 5968,
+  PseudoVLOXSEG6EI32_V_MF2_MF8 = 5969,
+  PseudoVLOXSEG6EI32_V_MF2_MF8_MASK = 5970,
+  PseudoVLOXSEG6EI64_V_M1_M1 = 5971,
+  PseudoVLOXSEG6EI64_V_M1_M1_MASK = 5972,
+  PseudoVLOXSEG6EI64_V_M1_MF2 = 5973,
+  PseudoVLOXSEG6EI64_V_M1_MF2_MASK = 5974,
+  PseudoVLOXSEG6EI64_V_M1_MF4 = 5975,
+  PseudoVLOXSEG6EI64_V_M1_MF4_MASK = 5976,
+  PseudoVLOXSEG6EI64_V_M1_MF8 = 5977,
+  PseudoVLOXSEG6EI64_V_M1_MF8_MASK = 5978,
+  PseudoVLOXSEG6EI64_V_M2_M1 = 5979,
+  PseudoVLOXSEG6EI64_V_M2_M1_MASK = 5980,
+  PseudoVLOXSEG6EI64_V_M2_MF2 = 5981,
+  PseudoVLOXSEG6EI64_V_M2_MF2_MASK = 5982,
+  PseudoVLOXSEG6EI64_V_M2_MF4 = 5983,
+  PseudoVLOXSEG6EI64_V_M2_MF4_MASK = 5984,
+  PseudoVLOXSEG6EI64_V_M4_M1 = 5985,
+  PseudoVLOXSEG6EI64_V_M4_M1_MASK = 5986,
+  PseudoVLOXSEG6EI64_V_M4_MF2 = 5987,
+  PseudoVLOXSEG6EI64_V_M4_MF2_MASK = 5988,
+  PseudoVLOXSEG6EI64_V_M8_M1 = 5989,
+  PseudoVLOXSEG6EI64_V_M8_M1_MASK = 5990,
+  PseudoVLOXSEG6EI8_V_M1_M1 = 5991,
+  PseudoVLOXSEG6EI8_V_M1_M1_MASK = 5992,
+  PseudoVLOXSEG6EI8_V_MF2_M1 = 5993,
+  PseudoVLOXSEG6EI8_V_MF2_M1_MASK = 5994,
+  PseudoVLOXSEG6EI8_V_MF2_MF2 = 5995,
+  PseudoVLOXSEG6EI8_V_MF2_MF2_MASK = 5996,
+  PseudoVLOXSEG6EI8_V_MF4_M1 = 5997,
+  PseudoVLOXSEG6EI8_V_MF4_M1_MASK = 5998,
+  PseudoVLOXSEG6EI8_V_MF4_MF2 = 5999,
+  PseudoVLOXSEG6EI8_V_MF4_MF2_MASK = 6000,
+  PseudoVLOXSEG6EI8_V_MF4_MF4 = 6001,
+  PseudoVLOXSEG6EI8_V_MF4_MF4_MASK = 6002,
+  PseudoVLOXSEG6EI8_V_MF8_M1 = 6003,
+  PseudoVLOXSEG6EI8_V_MF8_M1_MASK = 6004,
+  PseudoVLOXSEG6EI8_V_MF8_MF2 = 6005,
+  PseudoVLOXSEG6EI8_V_MF8_MF2_MASK = 6006,
+  PseudoVLOXSEG6EI8_V_MF8_MF4 = 6007,
+  PseudoVLOXSEG6EI8_V_MF8_MF4_MASK = 6008,
+  PseudoVLOXSEG6EI8_V_MF8_MF8 = 6009,
+  PseudoVLOXSEG6EI8_V_MF8_MF8_MASK = 6010,
+  PseudoVLOXSEG7EI16_V_M1_M1 = 6011,
+  PseudoVLOXSEG7EI16_V_M1_M1_MASK = 6012,
+  PseudoVLOXSEG7EI16_V_M1_MF2 = 6013,
+  PseudoVLOXSEG7EI16_V_M1_MF2_MASK = 6014,
+  PseudoVLOXSEG7EI16_V_M2_M1 = 6015,
+  PseudoVLOXSEG7EI16_V_M2_M1_MASK = 6016,
+  PseudoVLOXSEG7EI16_V_MF2_M1 = 6017,
+  PseudoVLOXSEG7EI16_V_MF2_M1_MASK = 6018,
+  PseudoVLOXSEG7EI16_V_MF2_MF2 = 6019,
+  PseudoVLOXSEG7EI16_V_MF2_MF2_MASK = 6020,
+  PseudoVLOXSEG7EI16_V_MF2_MF4 = 6021,
+  PseudoVLOXSEG7EI16_V_MF2_MF4_MASK = 6022,
+  PseudoVLOXSEG7EI16_V_MF4_M1 = 6023,
+  PseudoVLOXSEG7EI16_V_MF4_M1_MASK = 6024,
+  PseudoVLOXSEG7EI16_V_MF4_MF2 = 6025,
+  PseudoVLOXSEG7EI16_V_MF4_MF2_MASK = 6026,
+  PseudoVLOXSEG7EI16_V_MF4_MF4 = 6027,
+  PseudoVLOXSEG7EI16_V_MF4_MF4_MASK = 6028,
+  PseudoVLOXSEG7EI16_V_MF4_MF8 = 6029,
+  PseudoVLOXSEG7EI16_V_MF4_MF8_MASK = 6030,
+  PseudoVLOXSEG7EI32_V_M1_M1 = 6031,
+  PseudoVLOXSEG7EI32_V_M1_M1_MASK = 6032,
+  PseudoVLOXSEG7EI32_V_M1_MF2 = 6033,
+  PseudoVLOXSEG7EI32_V_M1_MF2_MASK = 6034,
+  PseudoVLOXSEG7EI32_V_M1_MF4 = 6035,
+  PseudoVLOXSEG7EI32_V_M1_MF4_MASK = 6036,
+  PseudoVLOXSEG7EI32_V_M2_M1 = 6037,
+  PseudoVLOXSEG7EI32_V_M2_M1_MASK = 6038,
+  PseudoVLOXSEG7EI32_V_M2_MF2 = 6039,
+  PseudoVLOXSEG7EI32_V_M2_MF2_MASK = 6040,
+  PseudoVLOXSEG7EI32_V_M4_M1 = 6041,
+  PseudoVLOXSEG7EI32_V_M4_M1_MASK = 6042,
+  PseudoVLOXSEG7EI32_V_MF2_M1 = 6043,
+  PseudoVLOXSEG7EI32_V_MF2_M1_MASK = 6044,
+  PseudoVLOXSEG7EI32_V_MF2_MF2 = 6045,
+  PseudoVLOXSEG7EI32_V_MF2_MF2_MASK = 6046,
+  PseudoVLOXSEG7EI32_V_MF2_MF4 = 6047,
+  PseudoVLOXSEG7EI32_V_MF2_MF4_MASK = 6048,
+  PseudoVLOXSEG7EI32_V_MF2_MF8 = 6049,
+  PseudoVLOXSEG7EI32_V_MF2_MF8_MASK = 6050,
+  PseudoVLOXSEG7EI64_V_M1_M1 = 6051,
+  PseudoVLOXSEG7EI64_V_M1_M1_MASK = 6052,
+  PseudoVLOXSEG7EI64_V_M1_MF2 = 6053,
+  PseudoVLOXSEG7EI64_V_M1_MF2_MASK = 6054,
+  PseudoVLOXSEG7EI64_V_M1_MF4 = 6055,
+  PseudoVLOXSEG7EI64_V_M1_MF4_MASK = 6056,
+  PseudoVLOXSEG7EI64_V_M1_MF8 = 6057,
+  PseudoVLOXSEG7EI64_V_M1_MF8_MASK = 6058,
+  PseudoVLOXSEG7EI64_V_M2_M1 = 6059,
+  PseudoVLOXSEG7EI64_V_M2_M1_MASK = 6060,
+  PseudoVLOXSEG7EI64_V_M2_MF2 = 6061,
+  PseudoVLOXSEG7EI64_V_M2_MF2_MASK = 6062,
+  PseudoVLOXSEG7EI64_V_M2_MF4 = 6063,
+  PseudoVLOXSEG7EI64_V_M2_MF4_MASK = 6064,
+  PseudoVLOXSEG7EI64_V_M4_M1 = 6065,
+  PseudoVLOXSEG7EI64_V_M4_M1_MASK = 6066,
+  PseudoVLOXSEG7EI64_V_M4_MF2 = 6067,
+  PseudoVLOXSEG7EI64_V_M4_MF2_MASK = 6068,
+  PseudoVLOXSEG7EI64_V_M8_M1 = 6069,
+  PseudoVLOXSEG7EI64_V_M8_M1_MASK = 6070,
+  PseudoVLOXSEG7EI8_V_M1_M1 = 6071,
+  PseudoVLOXSEG7EI8_V_M1_M1_MASK = 6072,
+  PseudoVLOXSEG7EI8_V_MF2_M1 = 6073,
+  PseudoVLOXSEG7EI8_V_MF2_M1_MASK = 6074,
+  PseudoVLOXSEG7EI8_V_MF2_MF2 = 6075,
+  PseudoVLOXSEG7EI8_V_MF2_MF2_MASK = 6076,
+  PseudoVLOXSEG7EI8_V_MF4_M1 = 6077,
+  PseudoVLOXSEG7EI8_V_MF4_M1_MASK = 6078,
+  PseudoVLOXSEG7EI8_V_MF4_MF2 = 6079,
+  PseudoVLOXSEG7EI8_V_MF4_MF2_MASK = 6080,
+  PseudoVLOXSEG7EI8_V_MF4_MF4 = 6081,
+  PseudoVLOXSEG7EI8_V_MF4_MF4_MASK = 6082,
+  PseudoVLOXSEG7EI8_V_MF8_M1 = 6083,
+  PseudoVLOXSEG7EI8_V_MF8_M1_MASK = 6084,
+  PseudoVLOXSEG7EI8_V_MF8_MF2 = 6085,
+  PseudoVLOXSEG7EI8_V_MF8_MF2_MASK = 6086,
+  PseudoVLOXSEG7EI8_V_MF8_MF4 = 6087,
+  PseudoVLOXSEG7EI8_V_MF8_MF4_MASK = 6088,
+  PseudoVLOXSEG7EI8_V_MF8_MF8 = 6089,
+  PseudoVLOXSEG7EI8_V_MF8_MF8_MASK = 6090,
+  PseudoVLOXSEG8EI16_V_M1_M1 = 6091,
+  PseudoVLOXSEG8EI16_V_M1_M1_MASK = 6092,
+  PseudoVLOXSEG8EI16_V_M1_MF2 = 6093,
+  PseudoVLOXSEG8EI16_V_M1_MF2_MASK = 6094,
+  PseudoVLOXSEG8EI16_V_M2_M1 = 6095,
+  PseudoVLOXSEG8EI16_V_M2_M1_MASK = 6096,
+  PseudoVLOXSEG8EI16_V_MF2_M1 = 6097,
+  PseudoVLOXSEG8EI16_V_MF2_M1_MASK = 6098,
+  PseudoVLOXSEG8EI16_V_MF2_MF2 = 6099,
+  PseudoVLOXSEG8EI16_V_MF2_MF2_MASK = 6100,
+  PseudoVLOXSEG8EI16_V_MF2_MF4 = 6101,
+  PseudoVLOXSEG8EI16_V_MF2_MF4_MASK = 6102,
+  PseudoVLOXSEG8EI16_V_MF4_M1 = 6103,
+  PseudoVLOXSEG8EI16_V_MF4_M1_MASK = 6104,
+  PseudoVLOXSEG8EI16_V_MF4_MF2 = 6105,
+  PseudoVLOXSEG8EI16_V_MF4_MF2_MASK = 6106,
+  PseudoVLOXSEG8EI16_V_MF4_MF4 = 6107,
+  PseudoVLOXSEG8EI16_V_MF4_MF4_MASK = 6108,
+  PseudoVLOXSEG8EI16_V_MF4_MF8 = 6109,
+  PseudoVLOXSEG8EI16_V_MF4_MF8_MASK = 6110,
+  PseudoVLOXSEG8EI32_V_M1_M1 = 6111,
+  PseudoVLOXSEG8EI32_V_M1_M1_MASK = 6112,
+  PseudoVLOXSEG8EI32_V_M1_MF2 = 6113,
+  PseudoVLOXSEG8EI32_V_M1_MF2_MASK = 6114,
+  PseudoVLOXSEG8EI32_V_M1_MF4 = 6115,
+  PseudoVLOXSEG8EI32_V_M1_MF4_MASK = 6116,
+  PseudoVLOXSEG8EI32_V_M2_M1 = 6117,
+  PseudoVLOXSEG8EI32_V_M2_M1_MASK = 6118,
+  PseudoVLOXSEG8EI32_V_M2_MF2 = 6119,
+  PseudoVLOXSEG8EI32_V_M2_MF2_MASK = 6120,
+  PseudoVLOXSEG8EI32_V_M4_M1 = 6121,
+  PseudoVLOXSEG8EI32_V_M4_M1_MASK = 6122,
+  PseudoVLOXSEG8EI32_V_MF2_M1 = 6123,
+  PseudoVLOXSEG8EI32_V_MF2_M1_MASK = 6124,
+  PseudoVLOXSEG8EI32_V_MF2_MF2 = 6125,
+  PseudoVLOXSEG8EI32_V_MF2_MF2_MASK = 6126,
+  PseudoVLOXSEG8EI32_V_MF2_MF4 = 6127,
+  PseudoVLOXSEG8EI32_V_MF2_MF4_MASK = 6128,
+  PseudoVLOXSEG8EI32_V_MF2_MF8 = 6129,
+  PseudoVLOXSEG8EI32_V_MF2_MF8_MASK = 6130,
+  PseudoVLOXSEG8EI64_V_M1_M1 = 6131,
+  PseudoVLOXSEG8EI64_V_M1_M1_MASK = 6132,
+  PseudoVLOXSEG8EI64_V_M1_MF2 = 6133,
+  PseudoVLOXSEG8EI64_V_M1_MF2_MASK = 6134,
+  PseudoVLOXSEG8EI64_V_M1_MF4 = 6135,
+  PseudoVLOXSEG8EI64_V_M1_MF4_MASK = 6136,
+  PseudoVLOXSEG8EI64_V_M1_MF8 = 6137,
+  PseudoVLOXSEG8EI64_V_M1_MF8_MASK = 6138,
+  PseudoVLOXSEG8EI64_V_M2_M1 = 6139,
+  PseudoVLOXSEG8EI64_V_M2_M1_MASK = 6140,
+  PseudoVLOXSEG8EI64_V_M2_MF2 = 6141,
+  PseudoVLOXSEG8EI64_V_M2_MF2_MASK = 6142,
+  PseudoVLOXSEG8EI64_V_M2_MF4 = 6143,
+  PseudoVLOXSEG8EI64_V_M2_MF4_MASK = 6144,
+  PseudoVLOXSEG8EI64_V_M4_M1 = 6145,
+  PseudoVLOXSEG8EI64_V_M4_M1_MASK = 6146,
+  PseudoVLOXSEG8EI64_V_M4_MF2 = 6147,
+  PseudoVLOXSEG8EI64_V_M4_MF2_MASK = 6148,
+  PseudoVLOXSEG8EI64_V_M8_M1 = 6149,
+  PseudoVLOXSEG8EI64_V_M8_M1_MASK = 6150,
+  PseudoVLOXSEG8EI8_V_M1_M1 = 6151,
+  PseudoVLOXSEG8EI8_V_M1_M1_MASK = 6152,
+  PseudoVLOXSEG8EI8_V_MF2_M1 = 6153,
+  PseudoVLOXSEG8EI8_V_MF2_M1_MASK = 6154,
+  PseudoVLOXSEG8EI8_V_MF2_MF2 = 6155,
+  PseudoVLOXSEG8EI8_V_MF2_MF2_MASK = 6156,
+  PseudoVLOXSEG8EI8_V_MF4_M1 = 6157,
+  PseudoVLOXSEG8EI8_V_MF4_M1_MASK = 6158,
+  PseudoVLOXSEG8EI8_V_MF4_MF2 = 6159,
+  PseudoVLOXSEG8EI8_V_MF4_MF2_MASK = 6160,
+  PseudoVLOXSEG8EI8_V_MF4_MF4 = 6161,
+  PseudoVLOXSEG8EI8_V_MF4_MF4_MASK = 6162,
+  PseudoVLOXSEG8EI8_V_MF8_M1 = 6163,
+  PseudoVLOXSEG8EI8_V_MF8_M1_MASK = 6164,
+  PseudoVLOXSEG8EI8_V_MF8_MF2 = 6165,
+  PseudoVLOXSEG8EI8_V_MF8_MF2_MASK = 6166,
+  PseudoVLOXSEG8EI8_V_MF8_MF4 = 6167,
+  PseudoVLOXSEG8EI8_V_MF8_MF4_MASK = 6168,
+  PseudoVLOXSEG8EI8_V_MF8_MF8 = 6169,
+  PseudoVLOXSEG8EI8_V_MF8_MF8_MASK = 6170,
+  PseudoVLSE16_V_M1 = 6171,
+  PseudoVLSE16_V_M1_MASK = 6172,
+  PseudoVLSE16_V_M2 = 6173,
+  PseudoVLSE16_V_M2_MASK = 6174,
+  PseudoVLSE16_V_M4 = 6175,
+  PseudoVLSE16_V_M4_MASK = 6176,
+  PseudoVLSE16_V_M8 = 6177,
+  PseudoVLSE16_V_M8_MASK = 6178,
+  PseudoVLSE16_V_MF2 = 6179,
+  PseudoVLSE16_V_MF2_MASK = 6180,
+  PseudoVLSE16_V_MF4 = 6181,
+  PseudoVLSE16_V_MF4_MASK = 6182,
+  PseudoVLSE32_V_M1 = 6183,
+  PseudoVLSE32_V_M1_MASK = 6184,
+  PseudoVLSE32_V_M2 = 6185,
+  PseudoVLSE32_V_M2_MASK = 6186,
+  PseudoVLSE32_V_M4 = 6187,
+  PseudoVLSE32_V_M4_MASK = 6188,
+  PseudoVLSE32_V_M8 = 6189,
+  PseudoVLSE32_V_M8_MASK = 6190,
+  PseudoVLSE32_V_MF2 = 6191,
+  PseudoVLSE32_V_MF2_MASK = 6192,
+  PseudoVLSE64_V_M1 = 6193,
+  PseudoVLSE64_V_M1_MASK = 6194,
+  PseudoVLSE64_V_M2 = 6195,
+  PseudoVLSE64_V_M2_MASK = 6196,
+  PseudoVLSE64_V_M4 = 6197,
+  PseudoVLSE64_V_M4_MASK = 6198,
+  PseudoVLSE64_V_M8 = 6199,
+  PseudoVLSE64_V_M8_MASK = 6200,
+  PseudoVLSE8_V_M1 = 6201,
+  PseudoVLSE8_V_M1_MASK = 6202,
+  PseudoVLSE8_V_M2 = 6203,
+  PseudoVLSE8_V_M2_MASK = 6204,
+  PseudoVLSE8_V_M4 = 6205,
+  PseudoVLSE8_V_M4_MASK = 6206,
+  PseudoVLSE8_V_M8 = 6207,
+  PseudoVLSE8_V_M8_MASK = 6208,
+  PseudoVLSE8_V_MF2 = 6209,
+  PseudoVLSE8_V_MF2_MASK = 6210,
+  PseudoVLSE8_V_MF4 = 6211,
+  PseudoVLSE8_V_MF4_MASK = 6212,
+  PseudoVLSE8_V_MF8 = 6213,
+  PseudoVLSE8_V_MF8_MASK = 6214,
+  PseudoVLSEG2E16FF_V_M1 = 6215,
+  PseudoVLSEG2E16FF_V_M1_MASK = 6216,
+  PseudoVLSEG2E16FF_V_M2 = 6217,
+  PseudoVLSEG2E16FF_V_M2_MASK = 6218,
+  PseudoVLSEG2E16FF_V_M4 = 6219,
+  PseudoVLSEG2E16FF_V_M4_MASK = 6220,
+  PseudoVLSEG2E16FF_V_MF2 = 6221,
+  PseudoVLSEG2E16FF_V_MF2_MASK = 6222,
+  PseudoVLSEG2E16FF_V_MF4 = 6223,
+  PseudoVLSEG2E16FF_V_MF4_MASK = 6224,
+  PseudoVLSEG2E16_V_M1 = 6225,
+  PseudoVLSEG2E16_V_M1_MASK = 6226,
+  PseudoVLSEG2E16_V_M2 = 6227,
+  PseudoVLSEG2E16_V_M2_MASK = 6228,
+  PseudoVLSEG2E16_V_M4 = 6229,
+  PseudoVLSEG2E16_V_M4_MASK = 6230,
+  PseudoVLSEG2E16_V_MF2 = 6231,
+  PseudoVLSEG2E16_V_MF2_MASK = 6232,
+  PseudoVLSEG2E16_V_MF4 = 6233,
+  PseudoVLSEG2E16_V_MF4_MASK = 6234,
+  PseudoVLSEG2E32FF_V_M1 = 6235,
+  PseudoVLSEG2E32FF_V_M1_MASK = 6236,
+  PseudoVLSEG2E32FF_V_M2 = 6237,
+  PseudoVLSEG2E32FF_V_M2_MASK = 6238,
+  PseudoVLSEG2E32FF_V_M4 = 6239,
+  PseudoVLSEG2E32FF_V_M4_MASK = 6240,
+  PseudoVLSEG2E32FF_V_MF2 = 6241,
+  PseudoVLSEG2E32FF_V_MF2_MASK = 6242,
+  PseudoVLSEG2E32_V_M1 = 6243,
+  PseudoVLSEG2E32_V_M1_MASK = 6244,
+  PseudoVLSEG2E32_V_M2 = 6245,
+  PseudoVLSEG2E32_V_M2_MASK = 6246,
+  PseudoVLSEG2E32_V_M4 = 6247,
+  PseudoVLSEG2E32_V_M4_MASK = 6248,
+  PseudoVLSEG2E32_V_MF2 = 6249,
+  PseudoVLSEG2E32_V_MF2_MASK = 6250,
+  PseudoVLSEG2E64FF_V_M1 = 6251,
+  PseudoVLSEG2E64FF_V_M1_MASK = 6252,
+  PseudoVLSEG2E64FF_V_M2 = 6253,
+  PseudoVLSEG2E64FF_V_M2_MASK = 6254,
+  PseudoVLSEG2E64FF_V_M4 = 6255,
+  PseudoVLSEG2E64FF_V_M4_MASK = 6256,
+  PseudoVLSEG2E64_V_M1 = 6257,
+  PseudoVLSEG2E64_V_M1_MASK = 6258,
+  PseudoVLSEG2E64_V_M2 = 6259,
+  PseudoVLSEG2E64_V_M2_MASK = 6260,
+  PseudoVLSEG2E64_V_M4 = 6261,
+  PseudoVLSEG2E64_V_M4_MASK = 6262,
+  PseudoVLSEG2E8FF_V_M1 = 6263,
+  PseudoVLSEG2E8FF_V_M1_MASK = 6264,
+  PseudoVLSEG2E8FF_V_M2 = 6265,
+  PseudoVLSEG2E8FF_V_M2_MASK = 6266,
+  PseudoVLSEG2E8FF_V_M4 = 6267,
+  PseudoVLSEG2E8FF_V_M4_MASK = 6268,
+  PseudoVLSEG2E8FF_V_MF2 = 6269,
+  PseudoVLSEG2E8FF_V_MF2_MASK = 6270,
+  PseudoVLSEG2E8FF_V_MF4 = 6271,
+  PseudoVLSEG2E8FF_V_MF4_MASK = 6272,
+  PseudoVLSEG2E8FF_V_MF8 = 6273,
+  PseudoVLSEG2E8FF_V_MF8_MASK = 6274,
+  PseudoVLSEG2E8_V_M1 = 6275,
+  PseudoVLSEG2E8_V_M1_MASK = 6276,
+  PseudoVLSEG2E8_V_M2 = 6277,
+  PseudoVLSEG2E8_V_M2_MASK = 6278,
+  PseudoVLSEG2E8_V_M4 = 6279,
+  PseudoVLSEG2E8_V_M4_MASK = 6280,
+  PseudoVLSEG2E8_V_MF2 = 6281,
+  PseudoVLSEG2E8_V_MF2_MASK = 6282,
+  PseudoVLSEG2E8_V_MF4 = 6283,
+  PseudoVLSEG2E8_V_MF4_MASK = 6284,
+  PseudoVLSEG2E8_V_MF8 = 6285,
+  PseudoVLSEG2E8_V_MF8_MASK = 6286,
+  PseudoVLSEG3E16FF_V_M1 = 6287,
+  PseudoVLSEG3E16FF_V_M1_MASK = 6288,
+  PseudoVLSEG3E16FF_V_M2 = 6289,
+  PseudoVLSEG3E16FF_V_M2_MASK = 6290,
+  PseudoVLSEG3E16FF_V_MF2 = 6291,
+  PseudoVLSEG3E16FF_V_MF2_MASK = 6292,
+  PseudoVLSEG3E16FF_V_MF4 = 6293,
+  PseudoVLSEG3E16FF_V_MF4_MASK = 6294,
+  PseudoVLSEG3E16_V_M1 = 6295,
+  PseudoVLSEG3E16_V_M1_MASK = 6296,
+  PseudoVLSEG3E16_V_M2 = 6297,
+  PseudoVLSEG3E16_V_M2_MASK = 6298,
+  PseudoVLSEG3E16_V_MF2 = 6299,
+  PseudoVLSEG3E16_V_MF2_MASK = 6300,
+  PseudoVLSEG3E16_V_MF4 = 6301,
+  PseudoVLSEG3E16_V_MF4_MASK = 6302,
+  PseudoVLSEG3E32FF_V_M1 = 6303,
+  PseudoVLSEG3E32FF_V_M1_MASK = 6304,
+  PseudoVLSEG3E32FF_V_M2 = 6305,
+  PseudoVLSEG3E32FF_V_M2_MASK = 6306,
+  PseudoVLSEG3E32FF_V_MF2 = 6307,
+  PseudoVLSEG3E32FF_V_MF2_MASK = 6308,
+  PseudoVLSEG3E32_V_M1 = 6309,
+  PseudoVLSEG3E32_V_M1_MASK = 6310,
+  PseudoVLSEG3E32_V_M2 = 6311,
+  PseudoVLSEG3E32_V_M2_MASK = 6312,
+  PseudoVLSEG3E32_V_MF2 = 6313,
+  PseudoVLSEG3E32_V_MF2_MASK = 6314,
+  PseudoVLSEG3E64FF_V_M1 = 6315,
+  PseudoVLSEG3E64FF_V_M1_MASK = 6316,
+  PseudoVLSEG3E64FF_V_M2 = 6317,
+  PseudoVLSEG3E64FF_V_M2_MASK = 6318,
+  PseudoVLSEG3E64_V_M1 = 6319,
+  PseudoVLSEG3E64_V_M1_MASK = 6320,
+  PseudoVLSEG3E64_V_M2 = 6321,
+  PseudoVLSEG3E64_V_M2_MASK = 6322,
+  PseudoVLSEG3E8FF_V_M1 = 6323,
+  PseudoVLSEG3E8FF_V_M1_MASK = 6324,
+  PseudoVLSEG3E8FF_V_M2 = 6325,
+  PseudoVLSEG3E8FF_V_M2_MASK = 6326,
+  PseudoVLSEG3E8FF_V_MF2 = 6327,
+  PseudoVLSEG3E8FF_V_MF2_MASK = 6328,
+  PseudoVLSEG3E8FF_V_MF4 = 6329,
+  PseudoVLSEG3E8FF_V_MF4_MASK = 6330,
+  PseudoVLSEG3E8FF_V_MF8 = 6331,
+  PseudoVLSEG3E8FF_V_MF8_MASK = 6332,
+  PseudoVLSEG3E8_V_M1 = 6333,
+  PseudoVLSEG3E8_V_M1_MASK = 6334,
+  PseudoVLSEG3E8_V_M2 = 6335,
+  PseudoVLSEG3E8_V_M2_MASK = 6336,
+  PseudoVLSEG3E8_V_MF2 = 6337,
+  PseudoVLSEG3E8_V_MF2_MASK = 6338,
+  PseudoVLSEG3E8_V_MF4 = 6339,
+  PseudoVLSEG3E8_V_MF4_MASK = 6340,
+  PseudoVLSEG3E8_V_MF8 = 6341,
+  PseudoVLSEG3E8_V_MF8_MASK = 6342,
+  PseudoVLSEG4E16FF_V_M1 = 6343,
+  PseudoVLSEG4E16FF_V_M1_MASK = 6344,
+  PseudoVLSEG4E16FF_V_M2 = 6345,
+  PseudoVLSEG4E16FF_V_M2_MASK = 6346,
+  PseudoVLSEG4E16FF_V_MF2 = 6347,
+  PseudoVLSEG4E16FF_V_MF2_MASK = 6348,
+  PseudoVLSEG4E16FF_V_MF4 = 6349,
+  PseudoVLSEG4E16FF_V_MF4_MASK = 6350,
+  PseudoVLSEG4E16_V_M1 = 6351,
+  PseudoVLSEG4E16_V_M1_MASK = 6352,
+  PseudoVLSEG4E16_V_M2 = 6353,
+  PseudoVLSEG4E16_V_M2_MASK = 6354,
+  PseudoVLSEG4E16_V_MF2 = 6355,
+  PseudoVLSEG4E16_V_MF2_MASK = 6356,
+  PseudoVLSEG4E16_V_MF4 = 6357,
+  PseudoVLSEG4E16_V_MF4_MASK = 6358,
+  PseudoVLSEG4E32FF_V_M1 = 6359,
+  PseudoVLSEG4E32FF_V_M1_MASK = 6360,
+  PseudoVLSEG4E32FF_V_M2 = 6361,
+  PseudoVLSEG4E32FF_V_M2_MASK = 6362,
+  PseudoVLSEG4E32FF_V_MF2 = 6363,
+  PseudoVLSEG4E32FF_V_MF2_MASK = 6364,
+  PseudoVLSEG4E32_V_M1 = 6365,
+  PseudoVLSEG4E32_V_M1_MASK = 6366,
+  PseudoVLSEG4E32_V_M2 = 6367,
+  PseudoVLSEG4E32_V_M2_MASK = 6368,
+  PseudoVLSEG4E32_V_MF2 = 6369,
+  PseudoVLSEG4E32_V_MF2_MASK = 6370,
+  PseudoVLSEG4E64FF_V_M1 = 6371,
+  PseudoVLSEG4E64FF_V_M1_MASK = 6372,
+  PseudoVLSEG4E64FF_V_M2 = 6373,
+  PseudoVLSEG4E64FF_V_M2_MASK = 6374,
+  PseudoVLSEG4E64_V_M1 = 6375,
+  PseudoVLSEG4E64_V_M1_MASK = 6376,
+  PseudoVLSEG4E64_V_M2 = 6377,
+  PseudoVLSEG4E64_V_M2_MASK = 6378,
+  PseudoVLSEG4E8FF_V_M1 = 6379,
+  PseudoVLSEG4E8FF_V_M1_MASK = 6380,
+  PseudoVLSEG4E8FF_V_M2 = 6381,
+  PseudoVLSEG4E8FF_V_M2_MASK = 6382,
+  PseudoVLSEG4E8FF_V_MF2 = 6383,
+  PseudoVLSEG4E8FF_V_MF2_MASK = 6384,
+  PseudoVLSEG4E8FF_V_MF4 = 6385,
+  PseudoVLSEG4E8FF_V_MF4_MASK = 6386,
+  PseudoVLSEG4E8FF_V_MF8 = 6387,
+  PseudoVLSEG4E8FF_V_MF8_MASK = 6388,
+  PseudoVLSEG4E8_V_M1 = 6389,
+  PseudoVLSEG4E8_V_M1_MASK = 6390,
+  PseudoVLSEG4E8_V_M2 = 6391,
+  PseudoVLSEG4E8_V_M2_MASK = 6392,
+  PseudoVLSEG4E8_V_MF2 = 6393,
+  PseudoVLSEG4E8_V_MF2_MASK = 6394,
+  PseudoVLSEG4E8_V_MF4 = 6395,
+  PseudoVLSEG4E8_V_MF4_MASK = 6396,
+  PseudoVLSEG4E8_V_MF8 = 6397,
+  PseudoVLSEG4E8_V_MF8_MASK = 6398,
+  PseudoVLSEG5E16FF_V_M1 = 6399,
+  PseudoVLSEG5E16FF_V_M1_MASK = 6400,
+  PseudoVLSEG5E16FF_V_MF2 = 6401,
+  PseudoVLSEG5E16FF_V_MF2_MASK = 6402,
+  PseudoVLSEG5E16FF_V_MF4 = 6403,
+  PseudoVLSEG5E16FF_V_MF4_MASK = 6404,
+  PseudoVLSEG5E16_V_M1 = 6405,
+  PseudoVLSEG5E16_V_M1_MASK = 6406,
+  PseudoVLSEG5E16_V_MF2 = 6407,
+  PseudoVLSEG5E16_V_MF2_MASK = 6408,
+  PseudoVLSEG5E16_V_MF4 = 6409,
+  PseudoVLSEG5E16_V_MF4_MASK = 6410,
+  PseudoVLSEG5E32FF_V_M1 = 6411,
+  PseudoVLSEG5E32FF_V_M1_MASK = 6412,
+  PseudoVLSEG5E32FF_V_MF2 = 6413,
+  PseudoVLSEG5E32FF_V_MF2_MASK = 6414,
+  PseudoVLSEG5E32_V_M1 = 6415,
+  PseudoVLSEG5E32_V_M1_MASK = 6416,
+  PseudoVLSEG5E32_V_MF2 = 6417,
+  PseudoVLSEG5E32_V_MF2_MASK = 6418,
+  PseudoVLSEG5E64FF_V_M1 = 6419,
+  PseudoVLSEG5E64FF_V_M1_MASK = 6420,
+  PseudoVLSEG5E64_V_M1 = 6421,
+  PseudoVLSEG5E64_V_M1_MASK = 6422,
+  PseudoVLSEG5E8FF_V_M1 = 6423,
+  PseudoVLSEG5E8FF_V_M1_MASK = 6424,
+  PseudoVLSEG5E8FF_V_MF2 = 6425,
+  PseudoVLSEG5E8FF_V_MF2_MASK = 6426,
+  PseudoVLSEG5E8FF_V_MF4 = 6427,
+  PseudoVLSEG5E8FF_V_MF4_MASK = 6428,
+  PseudoVLSEG5E8FF_V_MF8 = 6429,
+  PseudoVLSEG5E8FF_V_MF8_MASK = 6430,
+  PseudoVLSEG5E8_V_M1 = 6431,
+  PseudoVLSEG5E8_V_M1_MASK = 6432,
+  PseudoVLSEG5E8_V_MF2 = 6433,
+  PseudoVLSEG5E8_V_MF2_MASK = 6434,
+  PseudoVLSEG5E8_V_MF4 = 6435,
+  PseudoVLSEG5E8_V_MF4_MASK = 6436,
+  PseudoVLSEG5E8_V_MF8 = 6437,
+  PseudoVLSEG5E8_V_MF8_MASK = 6438,
+  PseudoVLSEG6E16FF_V_M1 = 6439,
+  PseudoVLSEG6E16FF_V_M1_MASK = 6440,
+  PseudoVLSEG6E16FF_V_MF2 = 6441,
+  PseudoVLSEG6E16FF_V_MF2_MASK = 6442,
+  PseudoVLSEG6E16FF_V_MF4 = 6443,
+  PseudoVLSEG6E16FF_V_MF4_MASK = 6444,
+  PseudoVLSEG6E16_V_M1 = 6445,
+  PseudoVLSEG6E16_V_M1_MASK = 6446,
+  PseudoVLSEG6E16_V_MF2 = 6447,
+  PseudoVLSEG6E16_V_MF2_MASK = 6448,
+  PseudoVLSEG6E16_V_MF4 = 6449,
+  PseudoVLSEG6E16_V_MF4_MASK = 6450,
+  PseudoVLSEG6E32FF_V_M1 = 6451,
+  PseudoVLSEG6E32FF_V_M1_MASK = 6452,
+  PseudoVLSEG6E32FF_V_MF2 = 6453,
+  PseudoVLSEG6E32FF_V_MF2_MASK = 6454,
+  PseudoVLSEG6E32_V_M1 = 6455,
+  PseudoVLSEG6E32_V_M1_MASK = 6456,
+  PseudoVLSEG6E32_V_MF2 = 6457,
+  PseudoVLSEG6E32_V_MF2_MASK = 6458,
+  PseudoVLSEG6E64FF_V_M1 = 6459,
+  PseudoVLSEG6E64FF_V_M1_MASK = 6460,
+  PseudoVLSEG6E64_V_M1 = 6461,
+  PseudoVLSEG6E64_V_M1_MASK = 6462,
+  PseudoVLSEG6E8FF_V_M1 = 6463,
+  PseudoVLSEG6E8FF_V_M1_MASK = 6464,
+  PseudoVLSEG6E8FF_V_MF2 = 6465,
+  PseudoVLSEG6E8FF_V_MF2_MASK = 6466,
+  PseudoVLSEG6E8FF_V_MF4 = 6467,
+  PseudoVLSEG6E8FF_V_MF4_MASK = 6468,
+  PseudoVLSEG6E8FF_V_MF8 = 6469,
+  PseudoVLSEG6E8FF_V_MF8_MASK = 6470,
+  PseudoVLSEG6E8_V_M1 = 6471,
+  PseudoVLSEG6E8_V_M1_MASK = 6472,
+  PseudoVLSEG6E8_V_MF2 = 6473,
+  PseudoVLSEG6E8_V_MF2_MASK = 6474,
+  PseudoVLSEG6E8_V_MF4 = 6475,
+  PseudoVLSEG6E8_V_MF4_MASK = 6476,
+  PseudoVLSEG6E8_V_MF8 = 6477,
+  PseudoVLSEG6E8_V_MF8_MASK = 6478,
+  PseudoVLSEG7E16FF_V_M1 = 6479,
+  PseudoVLSEG7E16FF_V_M1_MASK = 6480,
+  PseudoVLSEG7E16FF_V_MF2 = 6481,
+  PseudoVLSEG7E16FF_V_MF2_MASK = 6482,
+  PseudoVLSEG7E16FF_V_MF4 = 6483,
+  PseudoVLSEG7E16FF_V_MF4_MASK = 6484,
+  PseudoVLSEG7E16_V_M1 = 6485,
+  PseudoVLSEG7E16_V_M1_MASK = 6486,
+  PseudoVLSEG7E16_V_MF2 = 6487,
+  PseudoVLSEG7E16_V_MF2_MASK = 6488,
+  PseudoVLSEG7E16_V_MF4 = 6489,
+  PseudoVLSEG7E16_V_MF4_MASK = 6490,
+  PseudoVLSEG7E32FF_V_M1 = 6491,
+  PseudoVLSEG7E32FF_V_M1_MASK = 6492,
+  PseudoVLSEG7E32FF_V_MF2 = 6493,
+  PseudoVLSEG7E32FF_V_MF2_MASK = 6494,
+  PseudoVLSEG7E32_V_M1 = 6495,
+  PseudoVLSEG7E32_V_M1_MASK = 6496,
+  PseudoVLSEG7E32_V_MF2 = 6497,
+  PseudoVLSEG7E32_V_MF2_MASK = 6498,
+  PseudoVLSEG7E64FF_V_M1 = 6499,
+  PseudoVLSEG7E64FF_V_M1_MASK = 6500,
+  PseudoVLSEG7E64_V_M1 = 6501,
+  PseudoVLSEG7E64_V_M1_MASK = 6502,
+  PseudoVLSEG7E8FF_V_M1 = 6503,
+  PseudoVLSEG7E8FF_V_M1_MASK = 6504,
+  PseudoVLSEG7E8FF_V_MF2 = 6505,
+  PseudoVLSEG7E8FF_V_MF2_MASK = 6506,
+  PseudoVLSEG7E8FF_V_MF4 = 6507,
+  PseudoVLSEG7E8FF_V_MF4_MASK = 6508,
+  PseudoVLSEG7E8FF_V_MF8 = 6509,
+  PseudoVLSEG7E8FF_V_MF8_MASK = 6510,
+  PseudoVLSEG7E8_V_M1 = 6511,
+  PseudoVLSEG7E8_V_M1_MASK = 6512,
+  PseudoVLSEG7E8_V_MF2 = 6513,
+  PseudoVLSEG7E8_V_MF2_MASK = 6514,
+  PseudoVLSEG7E8_V_MF4 = 6515,
+  PseudoVLSEG7E8_V_MF4_MASK = 6516,
+  PseudoVLSEG7E8_V_MF8 = 6517,
+  PseudoVLSEG7E8_V_MF8_MASK = 6518,
+  PseudoVLSEG8E16FF_V_M1 = 6519,
+  PseudoVLSEG8E16FF_V_M1_MASK = 6520,
+  PseudoVLSEG8E16FF_V_MF2 = 6521,
+  PseudoVLSEG8E16FF_V_MF2_MASK = 6522,
+  PseudoVLSEG8E16FF_V_MF4 = 6523,
+  PseudoVLSEG8E16FF_V_MF4_MASK = 6524,
+  PseudoVLSEG8E16_V_M1 = 6525,
+  PseudoVLSEG8E16_V_M1_MASK = 6526,
+  PseudoVLSEG8E16_V_MF2 = 6527,
+  PseudoVLSEG8E16_V_MF2_MASK = 6528,
+  PseudoVLSEG8E16_V_MF4 = 6529,
+  PseudoVLSEG8E16_V_MF4_MASK = 6530,
+  PseudoVLSEG8E32FF_V_M1 = 6531,
+  PseudoVLSEG8E32FF_V_M1_MASK = 6532,
+  PseudoVLSEG8E32FF_V_MF2 = 6533,
+  PseudoVLSEG8E32FF_V_MF2_MASK = 6534,
+  PseudoVLSEG8E32_V_M1 = 6535,
+  PseudoVLSEG8E32_V_M1_MASK = 6536,
+  PseudoVLSEG8E32_V_MF2 = 6537,
+  PseudoVLSEG8E32_V_MF2_MASK = 6538,
+  PseudoVLSEG8E64FF_V_M1 = 6539,
+  PseudoVLSEG8E64FF_V_M1_MASK = 6540,
+  PseudoVLSEG8E64_V_M1 = 6541,
+  PseudoVLSEG8E64_V_M1_MASK = 6542,
+  PseudoVLSEG8E8FF_V_M1 = 6543,
+  PseudoVLSEG8E8FF_V_M1_MASK = 6544,
+  PseudoVLSEG8E8FF_V_MF2 = 6545,
+  PseudoVLSEG8E8FF_V_MF2_MASK = 6546,
+  PseudoVLSEG8E8FF_V_MF4 = 6547,
+  PseudoVLSEG8E8FF_V_MF4_MASK = 6548,
+  PseudoVLSEG8E8FF_V_MF8 = 6549,
+  PseudoVLSEG8E8FF_V_MF8_MASK = 6550,
+  PseudoVLSEG8E8_V_M1 = 6551,
+  PseudoVLSEG8E8_V_M1_MASK = 6552,
+  PseudoVLSEG8E8_V_MF2 = 6553,
+  PseudoVLSEG8E8_V_MF2_MASK = 6554,
+  PseudoVLSEG8E8_V_MF4 = 6555,
+  PseudoVLSEG8E8_V_MF4_MASK = 6556,
+  PseudoVLSEG8E8_V_MF8 = 6557,
+  PseudoVLSEG8E8_V_MF8_MASK = 6558,
+  PseudoVLSSEG2E16_V_M1 = 6559,
+  PseudoVLSSEG2E16_V_M1_MASK = 6560,
+  PseudoVLSSEG2E16_V_M2 = 6561,
+  PseudoVLSSEG2E16_V_M2_MASK = 6562,
+  PseudoVLSSEG2E16_V_M4 = 6563,
+  PseudoVLSSEG2E16_V_M4_MASK = 6564,
+  PseudoVLSSEG2E16_V_MF2 = 6565,
+  PseudoVLSSEG2E16_V_MF2_MASK = 6566,
+  PseudoVLSSEG2E16_V_MF4 = 6567,
+  PseudoVLSSEG2E16_V_MF4_MASK = 6568,
+  PseudoVLSSEG2E32_V_M1 = 6569,
+  PseudoVLSSEG2E32_V_M1_MASK = 6570,
+  PseudoVLSSEG2E32_V_M2 = 6571,
+  PseudoVLSSEG2E32_V_M2_MASK = 6572,
+  PseudoVLSSEG2E32_V_M4 = 6573,
+  PseudoVLSSEG2E32_V_M4_MASK = 6574,
+  PseudoVLSSEG2E32_V_MF2 = 6575,
+  PseudoVLSSEG2E32_V_MF2_MASK = 6576,
+  PseudoVLSSEG2E64_V_M1 = 6577,
+  PseudoVLSSEG2E64_V_M1_MASK = 6578,
+  PseudoVLSSEG2E64_V_M2 = 6579,
+  PseudoVLSSEG2E64_V_M2_MASK = 6580,
+  PseudoVLSSEG2E64_V_M4 = 6581,
+  PseudoVLSSEG2E64_V_M4_MASK = 6582,
+  PseudoVLSSEG2E8_V_M1 = 6583,
+  PseudoVLSSEG2E8_V_M1_MASK = 6584,
+  PseudoVLSSEG2E8_V_M2 = 6585,
+  PseudoVLSSEG2E8_V_M2_MASK = 6586,
+  PseudoVLSSEG2E8_V_M4 = 6587,
+  PseudoVLSSEG2E8_V_M4_MASK = 6588,
+  PseudoVLSSEG2E8_V_MF2 = 6589,
+  PseudoVLSSEG2E8_V_MF2_MASK = 6590,
+  PseudoVLSSEG2E8_V_MF4 = 6591,
+  PseudoVLSSEG2E8_V_MF4_MASK = 6592,
+  PseudoVLSSEG2E8_V_MF8 = 6593,
+  PseudoVLSSEG2E8_V_MF8_MASK = 6594,
+  PseudoVLSSEG3E16_V_M1 = 6595,
+  PseudoVLSSEG3E16_V_M1_MASK = 6596,
+  PseudoVLSSEG3E16_V_M2 = 6597,
+  PseudoVLSSEG3E16_V_M2_MASK = 6598,
+  PseudoVLSSEG3E16_V_MF2 = 6599,
+  PseudoVLSSEG3E16_V_MF2_MASK = 6600,
+  PseudoVLSSEG3E16_V_MF4 = 6601,
+  PseudoVLSSEG3E16_V_MF4_MASK = 6602,
+  PseudoVLSSEG3E32_V_M1 = 6603,
+  PseudoVLSSEG3E32_V_M1_MASK = 6604,
+  PseudoVLSSEG3E32_V_M2 = 6605,
+  PseudoVLSSEG3E32_V_M2_MASK = 6606,
+  PseudoVLSSEG3E32_V_MF2 = 6607,
+  PseudoVLSSEG3E32_V_MF2_MASK = 6608,
+  PseudoVLSSEG3E64_V_M1 = 6609,
+  PseudoVLSSEG3E64_V_M1_MASK = 6610,
+  PseudoVLSSEG3E64_V_M2 = 6611,
+  PseudoVLSSEG3E64_V_M2_MASK = 6612,
+  PseudoVLSSEG3E8_V_M1 = 6613,
+  PseudoVLSSEG3E8_V_M1_MASK = 6614,
+  PseudoVLSSEG3E8_V_M2 = 6615,
+  PseudoVLSSEG3E8_V_M2_MASK = 6616,
+  PseudoVLSSEG3E8_V_MF2 = 6617,
+  PseudoVLSSEG3E8_V_MF2_MASK = 6618,
+  PseudoVLSSEG3E8_V_MF4 = 6619,
+  PseudoVLSSEG3E8_V_MF4_MASK = 6620,
+  PseudoVLSSEG3E8_V_MF8 = 6621,
+  PseudoVLSSEG3E8_V_MF8_MASK = 6622,
+  PseudoVLSSEG4E16_V_M1 = 6623,
+  PseudoVLSSEG4E16_V_M1_MASK = 6624,
+  PseudoVLSSEG4E16_V_M2 = 6625,
+  PseudoVLSSEG4E16_V_M2_MASK = 6626,
+  PseudoVLSSEG4E16_V_MF2 = 6627,
+  PseudoVLSSEG4E16_V_MF2_MASK = 6628,
+  PseudoVLSSEG4E16_V_MF4 = 6629,
+  PseudoVLSSEG4E16_V_MF4_MASK = 6630,
+  PseudoVLSSEG4E32_V_M1 = 6631,
+  PseudoVLSSEG4E32_V_M1_MASK = 6632,
+  PseudoVLSSEG4E32_V_M2 = 6633,
+  PseudoVLSSEG4E32_V_M2_MASK = 6634,
+  PseudoVLSSEG4E32_V_MF2 = 6635,
+  PseudoVLSSEG4E32_V_MF2_MASK = 6636,
+  PseudoVLSSEG4E64_V_M1 = 6637,
+  PseudoVLSSEG4E64_V_M1_MASK = 6638,
+  PseudoVLSSEG4E64_V_M2 = 6639,
+  PseudoVLSSEG4E64_V_M2_MASK = 6640,
+  PseudoVLSSEG4E8_V_M1 = 6641,
+  PseudoVLSSEG4E8_V_M1_MASK = 6642,
+  PseudoVLSSEG4E8_V_M2 = 6643,
+  PseudoVLSSEG4E8_V_M2_MASK = 6644,
+  PseudoVLSSEG4E8_V_MF2 = 6645,
+  PseudoVLSSEG4E8_V_MF2_MASK = 6646,
+  PseudoVLSSEG4E8_V_MF4 = 6647,
+  PseudoVLSSEG4E8_V_MF4_MASK = 6648,
+  PseudoVLSSEG4E8_V_MF8 = 6649,
+  PseudoVLSSEG4E8_V_MF8_MASK = 6650,
+  PseudoVLSSEG5E16_V_M1 = 6651,
+  PseudoVLSSEG5E16_V_M1_MASK = 6652,
+  PseudoVLSSEG5E16_V_MF2 = 6653,
+  PseudoVLSSEG5E16_V_MF2_MASK = 6654,
+  PseudoVLSSEG5E16_V_MF4 = 6655,
+  PseudoVLSSEG5E16_V_MF4_MASK = 6656,
+  PseudoVLSSEG5E32_V_M1 = 6657,
+  PseudoVLSSEG5E32_V_M1_MASK = 6658,
+  PseudoVLSSEG5E32_V_MF2 = 6659,
+  PseudoVLSSEG5E32_V_MF2_MASK = 6660,
+  PseudoVLSSEG5E64_V_M1 = 6661,
+  PseudoVLSSEG5E64_V_M1_MASK = 6662,
+  PseudoVLSSEG5E8_V_M1 = 6663,
+  PseudoVLSSEG5E8_V_M1_MASK = 6664,
+  PseudoVLSSEG5E8_V_MF2 = 6665,
+  PseudoVLSSEG5E8_V_MF2_MASK = 6666,
+  PseudoVLSSEG5E8_V_MF4 = 6667,
+  PseudoVLSSEG5E8_V_MF4_MASK = 6668,
+  PseudoVLSSEG5E8_V_MF8 = 6669,
+  PseudoVLSSEG5E8_V_MF8_MASK = 6670,
+  PseudoVLSSEG6E16_V_M1 = 6671,
+  PseudoVLSSEG6E16_V_M1_MASK = 6672,
+  PseudoVLSSEG6E16_V_MF2 = 6673,
+  PseudoVLSSEG6E16_V_MF2_MASK = 6674,
+  PseudoVLSSEG6E16_V_MF4 = 6675,
+  PseudoVLSSEG6E16_V_MF4_MASK = 6676,
+  PseudoVLSSEG6E32_V_M1 = 6677,
+  PseudoVLSSEG6E32_V_M1_MASK = 6678,
+  PseudoVLSSEG6E32_V_MF2 = 6679,
+  PseudoVLSSEG6E32_V_MF2_MASK = 6680,
+  PseudoVLSSEG6E64_V_M1 = 6681,
+  PseudoVLSSEG6E64_V_M1_MASK = 6682,
+  PseudoVLSSEG6E8_V_M1 = 6683,
+  PseudoVLSSEG6E8_V_M1_MASK = 6684,
+  PseudoVLSSEG6E8_V_MF2 = 6685,
+  PseudoVLSSEG6E8_V_MF2_MASK = 6686,
+  PseudoVLSSEG6E8_V_MF4 = 6687,
+  PseudoVLSSEG6E8_V_MF4_MASK = 6688,
+  PseudoVLSSEG6E8_V_MF8 = 6689,
+  PseudoVLSSEG6E8_V_MF8_MASK = 6690,
+  PseudoVLSSEG7E16_V_M1 = 6691,
+  PseudoVLSSEG7E16_V_M1_MASK = 6692,
+  PseudoVLSSEG7E16_V_MF2 = 6693,
+  PseudoVLSSEG7E16_V_MF2_MASK = 6694,
+  PseudoVLSSEG7E16_V_MF4 = 6695,
+  PseudoVLSSEG7E16_V_MF4_MASK = 6696,
+  PseudoVLSSEG7E32_V_M1 = 6697,
+  PseudoVLSSEG7E32_V_M1_MASK = 6698,
+  PseudoVLSSEG7E32_V_MF2 = 6699,
+  PseudoVLSSEG7E32_V_MF2_MASK = 6700,
+  PseudoVLSSEG7E64_V_M1 = 6701,
+  PseudoVLSSEG7E64_V_M1_MASK = 6702,
+  PseudoVLSSEG7E8_V_M1 = 6703,
+  PseudoVLSSEG7E8_V_M1_MASK = 6704,
+  PseudoVLSSEG7E8_V_MF2 = 6705,
+  PseudoVLSSEG7E8_V_MF2_MASK = 6706,
+  PseudoVLSSEG7E8_V_MF4 = 6707,
+  PseudoVLSSEG7E8_V_MF4_MASK = 6708,
+  PseudoVLSSEG7E8_V_MF8 = 6709,
+  PseudoVLSSEG7E8_V_MF8_MASK = 6710,
+  PseudoVLSSEG8E16_V_M1 = 6711,
+  PseudoVLSSEG8E16_V_M1_MASK = 6712,
+  PseudoVLSSEG8E16_V_MF2 = 6713,
+  PseudoVLSSEG8E16_V_MF2_MASK = 6714,
+  PseudoVLSSEG8E16_V_MF4 = 6715,
+  PseudoVLSSEG8E16_V_MF4_MASK = 6716,
+  PseudoVLSSEG8E32_V_M1 = 6717,
+  PseudoVLSSEG8E32_V_M1_MASK = 6718,
+  PseudoVLSSEG8E32_V_MF2 = 6719,
+  PseudoVLSSEG8E32_V_MF2_MASK = 6720,
+  PseudoVLSSEG8E64_V_M1 = 6721,
+  PseudoVLSSEG8E64_V_M1_MASK = 6722,
+  PseudoVLSSEG8E8_V_M1 = 6723,
+  PseudoVLSSEG8E8_V_M1_MASK = 6724,
+  PseudoVLSSEG8E8_V_MF2 = 6725,
+  PseudoVLSSEG8E8_V_MF2_MASK = 6726,
+  PseudoVLSSEG8E8_V_MF4 = 6727,
+  PseudoVLSSEG8E8_V_MF4_MASK = 6728,
+  PseudoVLSSEG8E8_V_MF8 = 6729,
+  PseudoVLSSEG8E8_V_MF8_MASK = 6730,
+  PseudoVLUXEI16_V_M1_M1 = 6731,
+  PseudoVLUXEI16_V_M1_M1_MASK = 6732,
+  PseudoVLUXEI16_V_M1_M2 = 6733,
+  PseudoVLUXEI16_V_M1_M2_MASK = 6734,
+  PseudoVLUXEI16_V_M1_M4 = 6735,
+  PseudoVLUXEI16_V_M1_M4_MASK = 6736,
+  PseudoVLUXEI16_V_M1_MF2 = 6737,
+  PseudoVLUXEI16_V_M1_MF2_MASK = 6738,
+  PseudoVLUXEI16_V_M2_M1 = 6739,
+  PseudoVLUXEI16_V_M2_M1_MASK = 6740,
+  PseudoVLUXEI16_V_M2_M2 = 6741,
+  PseudoVLUXEI16_V_M2_M2_MASK = 6742,
+  PseudoVLUXEI16_V_M2_M4 = 6743,
+  PseudoVLUXEI16_V_M2_M4_MASK = 6744,
+  PseudoVLUXEI16_V_M2_M8 = 6745,
+  PseudoVLUXEI16_V_M2_M8_MASK = 6746,
+  PseudoVLUXEI16_V_M4_M2 = 6747,
+  PseudoVLUXEI16_V_M4_M2_MASK = 6748,
+  PseudoVLUXEI16_V_M4_M4 = 6749,
+  PseudoVLUXEI16_V_M4_M4_MASK = 6750,
+  PseudoVLUXEI16_V_M4_M8 = 6751,
+  PseudoVLUXEI16_V_M4_M8_MASK = 6752,
+  PseudoVLUXEI16_V_M8_M4 = 6753,
+  PseudoVLUXEI16_V_M8_M4_MASK = 6754,
+  PseudoVLUXEI16_V_M8_M8 = 6755,
+  PseudoVLUXEI16_V_M8_M8_MASK = 6756,
+  PseudoVLUXEI16_V_MF2_M1 = 6757,
+  PseudoVLUXEI16_V_MF2_M1_MASK = 6758,
+  PseudoVLUXEI16_V_MF2_M2 = 6759,
+  PseudoVLUXEI16_V_MF2_M2_MASK = 6760,
+  PseudoVLUXEI16_V_MF2_MF2 = 6761,
+  PseudoVLUXEI16_V_MF2_MF2_MASK = 6762,
+  PseudoVLUXEI16_V_MF2_MF4 = 6763,
+  PseudoVLUXEI16_V_MF2_MF4_MASK = 6764,
+  PseudoVLUXEI16_V_MF4_M1 = 6765,
+  PseudoVLUXEI16_V_MF4_M1_MASK = 6766,
+  PseudoVLUXEI16_V_MF4_MF2 = 6767,
+  PseudoVLUXEI16_V_MF4_MF2_MASK = 6768,
+  PseudoVLUXEI16_V_MF4_MF4 = 6769,
+  PseudoVLUXEI16_V_MF4_MF4_MASK = 6770,
+  PseudoVLUXEI16_V_MF4_MF8 = 6771,
+  PseudoVLUXEI16_V_MF4_MF8_MASK = 6772,
+  PseudoVLUXEI32_V_M1_M1 = 6773,
+  PseudoVLUXEI32_V_M1_M1_MASK = 6774,
+  PseudoVLUXEI32_V_M1_M2 = 6775,
+  PseudoVLUXEI32_V_M1_M2_MASK = 6776,
+  PseudoVLUXEI32_V_M1_MF2 = 6777,
+  PseudoVLUXEI32_V_M1_MF2_MASK = 6778,
+  PseudoVLUXEI32_V_M1_MF4 = 6779,
+  PseudoVLUXEI32_V_M1_MF4_MASK = 6780,
+  PseudoVLUXEI32_V_M2_M1 = 6781,
+  PseudoVLUXEI32_V_M2_M1_MASK = 6782,
+  PseudoVLUXEI32_V_M2_M2 = 6783,
+  PseudoVLUXEI32_V_M2_M2_MASK = 6784,
+  PseudoVLUXEI32_V_M2_M4 = 6785,
+  PseudoVLUXEI32_V_M2_M4_MASK = 6786,
+  PseudoVLUXEI32_V_M2_MF2 = 6787,
+  PseudoVLUXEI32_V_M2_MF2_MASK = 6788,
+  PseudoVLUXEI32_V_M4_M1 = 6789,
+  PseudoVLUXEI32_V_M4_M1_MASK = 6790,
+  PseudoVLUXEI32_V_M4_M2 = 6791,
+  PseudoVLUXEI32_V_M4_M2_MASK = 6792,
+  PseudoVLUXEI32_V_M4_M4 = 6793,
+  PseudoVLUXEI32_V_M4_M4_MASK = 6794,
+  PseudoVLUXEI32_V_M4_M8 = 6795,
+  PseudoVLUXEI32_V_M4_M8_MASK = 6796,
+  PseudoVLUXEI32_V_M8_M2 = 6797,
+  PseudoVLUXEI32_V_M8_M2_MASK = 6798,
+  PseudoVLUXEI32_V_M8_M4 = 6799,
+  PseudoVLUXEI32_V_M8_M4_MASK = 6800,
+  PseudoVLUXEI32_V_M8_M8 = 6801,
+  PseudoVLUXEI32_V_M8_M8_MASK = 6802,
+  PseudoVLUXEI32_V_MF2_M1 = 6803,
+  PseudoVLUXEI32_V_MF2_M1_MASK = 6804,
+  PseudoVLUXEI32_V_MF2_MF2 = 6805,
+  PseudoVLUXEI32_V_MF2_MF2_MASK = 6806,
+  PseudoVLUXEI32_V_MF2_MF4 = 6807,
+  PseudoVLUXEI32_V_MF2_MF4_MASK = 6808,
+  PseudoVLUXEI32_V_MF2_MF8 = 6809,
+  PseudoVLUXEI32_V_MF2_MF8_MASK = 6810,
+  PseudoVLUXEI64_V_M1_M1 = 6811,
+  PseudoVLUXEI64_V_M1_M1_MASK = 6812,
+  PseudoVLUXEI64_V_M1_MF2 = 6813,
+  PseudoVLUXEI64_V_M1_MF2_MASK = 6814,
+  PseudoVLUXEI64_V_M1_MF4 = 6815,
+  PseudoVLUXEI64_V_M1_MF4_MASK = 6816,
+  PseudoVLUXEI64_V_M1_MF8 = 6817,
+  PseudoVLUXEI64_V_M1_MF8_MASK = 6818,
+  PseudoVLUXEI64_V_M2_M1 = 6819,
+  PseudoVLUXEI64_V_M2_M1_MASK = 6820,
+  PseudoVLUXEI64_V_M2_M2 = 6821,
+  PseudoVLUXEI64_V_M2_M2_MASK = 6822,
+  PseudoVLUXEI64_V_M2_MF2 = 6823,
+  PseudoVLUXEI64_V_M2_MF2_MASK = 6824,
+  PseudoVLUXEI64_V_M2_MF4 = 6825,
+  PseudoVLUXEI64_V_M2_MF4_MASK = 6826,
+  PseudoVLUXEI64_V_M4_M1 = 6827,
+  PseudoVLUXEI64_V_M4_M1_MASK = 6828,
+  PseudoVLUXEI64_V_M4_M2 = 6829,
+  PseudoVLUXEI64_V_M4_M2_MASK = 6830,
+  PseudoVLUXEI64_V_M4_M4 = 6831,
+  PseudoVLUXEI64_V_M4_M4_MASK = 6832,
+  PseudoVLUXEI64_V_M4_MF2 = 6833,
+  PseudoVLUXEI64_V_M4_MF2_MASK = 6834,
+  PseudoVLUXEI64_V_M8_M1 = 6835,
+  PseudoVLUXEI64_V_M8_M1_MASK = 6836,
+  PseudoVLUXEI64_V_M8_M2 = 6837,
+  PseudoVLUXEI64_V_M8_M2_MASK = 6838,
+  PseudoVLUXEI64_V_M8_M4 = 6839,
+  PseudoVLUXEI64_V_M8_M4_MASK = 6840,
+  PseudoVLUXEI64_V_M8_M8 = 6841,
+  PseudoVLUXEI64_V_M8_M8_MASK = 6842,
+  PseudoVLUXEI8_V_M1_M1 = 6843,
+  PseudoVLUXEI8_V_M1_M1_MASK = 6844,
+  PseudoVLUXEI8_V_M1_M2 = 6845,
+  PseudoVLUXEI8_V_M1_M2_MASK = 6846,
+  PseudoVLUXEI8_V_M1_M4 = 6847,
+  PseudoVLUXEI8_V_M1_M4_MASK = 6848,
+  PseudoVLUXEI8_V_M1_M8 = 6849,
+  PseudoVLUXEI8_V_M1_M8_MASK = 6850,
+  PseudoVLUXEI8_V_M2_M2 = 6851,
+  PseudoVLUXEI8_V_M2_M2_MASK = 6852,
+  PseudoVLUXEI8_V_M2_M4 = 6853,
+  PseudoVLUXEI8_V_M2_M4_MASK = 6854,
+  PseudoVLUXEI8_V_M2_M8 = 6855,
+  PseudoVLUXEI8_V_M2_M8_MASK = 6856,
+  PseudoVLUXEI8_V_M4_M4 = 6857,
+  PseudoVLUXEI8_V_M4_M4_MASK = 6858,
+  PseudoVLUXEI8_V_M4_M8 = 6859,
+  PseudoVLUXEI8_V_M4_M8_MASK = 6860,
+  PseudoVLUXEI8_V_M8_M8 = 6861,
+  PseudoVLUXEI8_V_M8_M8_MASK = 6862,
+  PseudoVLUXEI8_V_MF2_M1 = 6863,
+  PseudoVLUXEI8_V_MF2_M1_MASK = 6864,
+  PseudoVLUXEI8_V_MF2_M2 = 6865,
+  PseudoVLUXEI8_V_MF2_M2_MASK = 6866,
+  PseudoVLUXEI8_V_MF2_M4 = 6867,
+  PseudoVLUXEI8_V_MF2_M4_MASK = 6868,
+  PseudoVLUXEI8_V_MF2_MF2 = 6869,
+  PseudoVLUXEI8_V_MF2_MF2_MASK = 6870,
+  PseudoVLUXEI8_V_MF4_M1 = 6871,
+  PseudoVLUXEI8_V_MF4_M1_MASK = 6872,
+  PseudoVLUXEI8_V_MF4_M2 = 6873,
+  PseudoVLUXEI8_V_MF4_M2_MASK = 6874,
+  PseudoVLUXEI8_V_MF4_MF2 = 6875,
+  PseudoVLUXEI8_V_MF4_MF2_MASK = 6876,
+  PseudoVLUXEI8_V_MF4_MF4 = 6877,
+  PseudoVLUXEI8_V_MF4_MF4_MASK = 6878,
+  PseudoVLUXEI8_V_MF8_M1 = 6879,
+  PseudoVLUXEI8_V_MF8_M1_MASK = 6880,
+  PseudoVLUXEI8_V_MF8_MF2 = 6881,
+  PseudoVLUXEI8_V_MF8_MF2_MASK = 6882,
+  PseudoVLUXEI8_V_MF8_MF4 = 6883,
+  PseudoVLUXEI8_V_MF8_MF4_MASK = 6884,
+  PseudoVLUXEI8_V_MF8_MF8 = 6885,
+  PseudoVLUXEI8_V_MF8_MF8_MASK = 6886,
+  PseudoVLUXSEG2EI16_V_M1_M1 = 6887,
+  PseudoVLUXSEG2EI16_V_M1_M1_MASK = 6888,
+  PseudoVLUXSEG2EI16_V_M1_M2 = 6889,
+  PseudoVLUXSEG2EI16_V_M1_M2_MASK = 6890,
+  PseudoVLUXSEG2EI16_V_M1_M4 = 6891,
+  PseudoVLUXSEG2EI16_V_M1_M4_MASK = 6892,
+  PseudoVLUXSEG2EI16_V_M1_MF2 = 6893,
+  PseudoVLUXSEG2EI16_V_M1_MF2_MASK = 6894,
+  PseudoVLUXSEG2EI16_V_M2_M1 = 6895,
+  PseudoVLUXSEG2EI16_V_M2_M1_MASK = 6896,
+  PseudoVLUXSEG2EI16_V_M2_M2 = 6897,
+  PseudoVLUXSEG2EI16_V_M2_M2_MASK = 6898,
+  PseudoVLUXSEG2EI16_V_M2_M4 = 6899,
+  PseudoVLUXSEG2EI16_V_M2_M4_MASK = 6900,
+  PseudoVLUXSEG2EI16_V_M4_M2 = 6901,
+  PseudoVLUXSEG2EI16_V_M4_M2_MASK = 6902,
+  PseudoVLUXSEG2EI16_V_M4_M4 = 6903,
+  PseudoVLUXSEG2EI16_V_M4_M4_MASK = 6904,
+  PseudoVLUXSEG2EI16_V_M8_M4 = 6905,
+  PseudoVLUXSEG2EI16_V_M8_M4_MASK = 6906,
+  PseudoVLUXSEG2EI16_V_MF2_M1 = 6907,
+  PseudoVLUXSEG2EI16_V_MF2_M1_MASK = 6908,
+  PseudoVLUXSEG2EI16_V_MF2_M2 = 6909,
+  PseudoVLUXSEG2EI16_V_MF2_M2_MASK = 6910,
+  PseudoVLUXSEG2EI16_V_MF2_MF2 = 6911,
+  PseudoVLUXSEG2EI16_V_MF2_MF2_MASK = 6912,
+  PseudoVLUXSEG2EI16_V_MF2_MF4 = 6913,
+  PseudoVLUXSEG2EI16_V_MF2_MF4_MASK = 6914,
+  PseudoVLUXSEG2EI16_V_MF4_M1 = 6915,
+  PseudoVLUXSEG2EI16_V_MF4_M1_MASK = 6916,
+  PseudoVLUXSEG2EI16_V_MF4_MF2 = 6917,
+  PseudoVLUXSEG2EI16_V_MF4_MF2_MASK = 6918,
+  PseudoVLUXSEG2EI16_V_MF4_MF4 = 6919,
+  PseudoVLUXSEG2EI16_V_MF4_MF4_MASK = 6920,
+  PseudoVLUXSEG2EI16_V_MF4_MF8 = 6921,
+  PseudoVLUXSEG2EI16_V_MF4_MF8_MASK = 6922,
+  PseudoVLUXSEG2EI32_V_M1_M1 = 6923,
+  PseudoVLUXSEG2EI32_V_M1_M1_MASK = 6924,
+  PseudoVLUXSEG2EI32_V_M1_M2 = 6925,
+  PseudoVLUXSEG2EI32_V_M1_M2_MASK = 6926,
+  PseudoVLUXSEG2EI32_V_M1_MF2 = 6927,
+  PseudoVLUXSEG2EI32_V_M1_MF2_MASK = 6928,
+  PseudoVLUXSEG2EI32_V_M1_MF4 = 6929,
+  PseudoVLUXSEG2EI32_V_M1_MF4_MASK = 6930,
+  PseudoVLUXSEG2EI32_V_M2_M1 = 6931,
+  PseudoVLUXSEG2EI32_V_M2_M1_MASK = 6932,
+  PseudoVLUXSEG2EI32_V_M2_M2 = 6933,
+  PseudoVLUXSEG2EI32_V_M2_M2_MASK = 6934,
+  PseudoVLUXSEG2EI32_V_M2_M4 = 6935,
+  PseudoVLUXSEG2EI32_V_M2_M4_MASK = 6936,
+  PseudoVLUXSEG2EI32_V_M2_MF2 = 6937,
+  PseudoVLUXSEG2EI32_V_M2_MF2_MASK = 6938,
+  PseudoVLUXSEG2EI32_V_M4_M1 = 6939,
+  PseudoVLUXSEG2EI32_V_M4_M1_MASK = 6940,
+  PseudoVLUXSEG2EI32_V_M4_M2 = 6941,
+  PseudoVLUXSEG2EI32_V_M4_M2_MASK = 6942,
+  PseudoVLUXSEG2EI32_V_M4_M4 = 6943,
+  PseudoVLUXSEG2EI32_V_M4_M4_MASK = 6944,
+  PseudoVLUXSEG2EI32_V_M8_M2 = 6945,
+  PseudoVLUXSEG2EI32_V_M8_M2_MASK = 6946,
+  PseudoVLUXSEG2EI32_V_M8_M4 = 6947,
+  PseudoVLUXSEG2EI32_V_M8_M4_MASK = 6948,
+  PseudoVLUXSEG2EI32_V_MF2_M1 = 6949,
+  PseudoVLUXSEG2EI32_V_MF2_M1_MASK = 6950,
+  PseudoVLUXSEG2EI32_V_MF2_MF2 = 6951,
+  PseudoVLUXSEG2EI32_V_MF2_MF2_MASK = 6952,
+  PseudoVLUXSEG2EI32_V_MF2_MF4 = 6953,
+  PseudoVLUXSEG2EI32_V_MF2_MF4_MASK = 6954,
+  PseudoVLUXSEG2EI32_V_MF2_MF8 = 6955,
+  PseudoVLUXSEG2EI32_V_MF2_MF8_MASK = 6956,
+  PseudoVLUXSEG2EI64_V_M1_M1 = 6957,
+  PseudoVLUXSEG2EI64_V_M1_M1_MASK = 6958,
+  PseudoVLUXSEG2EI64_V_M1_MF2 = 6959,
+  PseudoVLUXSEG2EI64_V_M1_MF2_MASK = 6960,
+  PseudoVLUXSEG2EI64_V_M1_MF4 = 6961,
+  PseudoVLUXSEG2EI64_V_M1_MF4_MASK = 6962,
+  PseudoVLUXSEG2EI64_V_M1_MF8 = 6963,
+  PseudoVLUXSEG2EI64_V_M1_MF8_MASK = 6964,
+  PseudoVLUXSEG2EI64_V_M2_M1 = 6965,
+  PseudoVLUXSEG2EI64_V_M2_M1_MASK = 6966,
+  PseudoVLUXSEG2EI64_V_M2_M2 = 6967,
+  PseudoVLUXSEG2EI64_V_M2_M2_MASK = 6968,
+  PseudoVLUXSEG2EI64_V_M2_MF2 = 6969,
+  PseudoVLUXSEG2EI64_V_M2_MF2_MASK = 6970,
+  PseudoVLUXSEG2EI64_V_M2_MF4 = 6971,
+  PseudoVLUXSEG2EI64_V_M2_MF4_MASK = 6972,
+  PseudoVLUXSEG2EI64_V_M4_M1 = 6973,
+  PseudoVLUXSEG2EI64_V_M4_M1_MASK = 6974,
+  PseudoVLUXSEG2EI64_V_M4_M2 = 6975,
+  PseudoVLUXSEG2EI64_V_M4_M2_MASK = 6976,
+  PseudoVLUXSEG2EI64_V_M4_M4 = 6977,
+  PseudoVLUXSEG2EI64_V_M4_M4_MASK = 6978,
+  PseudoVLUXSEG2EI64_V_M4_MF2 = 6979,
+  PseudoVLUXSEG2EI64_V_M4_MF2_MASK = 6980,
+  PseudoVLUXSEG2EI64_V_M8_M1 = 6981,
+  PseudoVLUXSEG2EI64_V_M8_M1_MASK = 6982,
+  PseudoVLUXSEG2EI64_V_M8_M2 = 6983,
+  PseudoVLUXSEG2EI64_V_M8_M2_MASK = 6984,
+  PseudoVLUXSEG2EI64_V_M8_M4 = 6985,
+  PseudoVLUXSEG2EI64_V_M8_M4_MASK = 6986,
+  PseudoVLUXSEG2EI8_V_M1_M1 = 6987,
+  PseudoVLUXSEG2EI8_V_M1_M1_MASK = 6988,
+  PseudoVLUXSEG2EI8_V_M1_M2 = 6989,
+  PseudoVLUXSEG2EI8_V_M1_M2_MASK = 6990,
+  PseudoVLUXSEG2EI8_V_M1_M4 = 6991,
+  PseudoVLUXSEG2EI8_V_M1_M4_MASK = 6992,
+  PseudoVLUXSEG2EI8_V_M2_M2 = 6993,
+  PseudoVLUXSEG2EI8_V_M2_M2_MASK = 6994,
+  PseudoVLUXSEG2EI8_V_M2_M4 = 6995,
+  PseudoVLUXSEG2EI8_V_M2_M4_MASK = 6996,
+  PseudoVLUXSEG2EI8_V_M4_M4 = 6997,
+  PseudoVLUXSEG2EI8_V_M4_M4_MASK = 6998,
+  PseudoVLUXSEG2EI8_V_MF2_M1 = 6999,
+  PseudoVLUXSEG2EI8_V_MF2_M1_MASK = 7000,
+  PseudoVLUXSEG2EI8_V_MF2_M2 = 7001,
+  PseudoVLUXSEG2EI8_V_MF2_M2_MASK = 7002,
+  PseudoVLUXSEG2EI8_V_MF2_M4 = 7003,
+  PseudoVLUXSEG2EI8_V_MF2_M4_MASK = 7004,
+  PseudoVLUXSEG2EI8_V_MF2_MF2 = 7005,
+  PseudoVLUXSEG2EI8_V_MF2_MF2_MASK = 7006,
+  PseudoVLUXSEG2EI8_V_MF4_M1 = 7007,
+  PseudoVLUXSEG2EI8_V_MF4_M1_MASK = 7008,
+  PseudoVLUXSEG2EI8_V_MF4_M2 = 7009,
+  PseudoVLUXSEG2EI8_V_MF4_M2_MASK = 7010,
+  PseudoVLUXSEG2EI8_V_MF4_MF2 = 7011,
+  PseudoVLUXSEG2EI8_V_MF4_MF2_MASK = 7012,
+  PseudoVLUXSEG2EI8_V_MF4_MF4 = 7013,
+  PseudoVLUXSEG2EI8_V_MF4_MF4_MASK = 7014,
+  PseudoVLUXSEG2EI8_V_MF8_M1 = 7015,
+  PseudoVLUXSEG2EI8_V_MF8_M1_MASK = 7016,
+  PseudoVLUXSEG2EI8_V_MF8_MF2 = 7017,
+  PseudoVLUXSEG2EI8_V_MF8_MF2_MASK = 7018,
+  PseudoVLUXSEG2EI8_V_MF8_MF4 = 7019,
+  PseudoVLUXSEG2EI8_V_MF8_MF4_MASK = 7020,
+  PseudoVLUXSEG2EI8_V_MF8_MF8 = 7021,
+  PseudoVLUXSEG2EI8_V_MF8_MF8_MASK = 7022,
+  PseudoVLUXSEG3EI16_V_M1_M1 = 7023,
+  PseudoVLUXSEG3EI16_V_M1_M1_MASK = 7024,
+  PseudoVLUXSEG3EI16_V_M1_M2 = 7025,
+  PseudoVLUXSEG3EI16_V_M1_M2_MASK = 7026,
+  PseudoVLUXSEG3EI16_V_M1_MF2 = 7027,
+  PseudoVLUXSEG3EI16_V_M1_MF2_MASK = 7028,
+  PseudoVLUXSEG3EI16_V_M2_M1 = 7029,
+  PseudoVLUXSEG3EI16_V_M2_M1_MASK = 7030,
+  PseudoVLUXSEG3EI16_V_M2_M2 = 7031,
+  PseudoVLUXSEG3EI16_V_M2_M2_MASK = 7032,
+  PseudoVLUXSEG3EI16_V_M4_M2 = 7033,
+  PseudoVLUXSEG3EI16_V_M4_M2_MASK = 7034,
+  PseudoVLUXSEG3EI16_V_MF2_M1 = 7035,
+  PseudoVLUXSEG3EI16_V_MF2_M1_MASK = 7036,
+  PseudoVLUXSEG3EI16_V_MF2_M2 = 7037,
+  PseudoVLUXSEG3EI16_V_MF2_M2_MASK = 7038,
+  PseudoVLUXSEG3EI16_V_MF2_MF2 = 7039,
+  PseudoVLUXSEG3EI16_V_MF2_MF2_MASK = 7040,
+  PseudoVLUXSEG3EI16_V_MF2_MF4 = 7041,
+  PseudoVLUXSEG3EI16_V_MF2_MF4_MASK = 7042,
+  PseudoVLUXSEG3EI16_V_MF4_M1 = 7043,
+  PseudoVLUXSEG3EI16_V_MF4_M1_MASK = 7044,
+  PseudoVLUXSEG3EI16_V_MF4_MF2 = 7045,
+  PseudoVLUXSEG3EI16_V_MF4_MF2_MASK = 7046,
+  PseudoVLUXSEG3EI16_V_MF4_MF4 = 7047,
+  PseudoVLUXSEG3EI16_V_MF4_MF4_MASK = 7048,
+  PseudoVLUXSEG3EI16_V_MF4_MF8 = 7049,
+  PseudoVLUXSEG3EI16_V_MF4_MF8_MASK = 7050,
+  PseudoVLUXSEG3EI32_V_M1_M1 = 7051,
+  PseudoVLUXSEG3EI32_V_M1_M1_MASK = 7052,
+  PseudoVLUXSEG3EI32_V_M1_M2 = 7053,
+  PseudoVLUXSEG3EI32_V_M1_M2_MASK = 7054,
+  PseudoVLUXSEG3EI32_V_M1_MF2 = 7055,
+  PseudoVLUXSEG3EI32_V_M1_MF2_MASK = 7056,
+  PseudoVLUXSEG3EI32_V_M1_MF4 = 7057,
+  PseudoVLUXSEG3EI32_V_M1_MF4_MASK = 7058,
+  PseudoVLUXSEG3EI32_V_M2_M1 = 7059,
+  PseudoVLUXSEG3EI32_V_M2_M1_MASK = 7060,
+  PseudoVLUXSEG3EI32_V_M2_M2 = 7061,
+  PseudoVLUXSEG3EI32_V_M2_M2_MASK = 7062,
+  PseudoVLUXSEG3EI32_V_M2_MF2 = 7063,
+  PseudoVLUXSEG3EI32_V_M2_MF2_MASK = 7064,
+  PseudoVLUXSEG3EI32_V_M4_M1 = 7065,
+  PseudoVLUXSEG3EI32_V_M4_M1_MASK = 7066,
+  PseudoVLUXSEG3EI32_V_M4_M2 = 7067,
+  PseudoVLUXSEG3EI32_V_M4_M2_MASK = 7068,
+  PseudoVLUXSEG3EI32_V_M8_M2 = 7069,
+  PseudoVLUXSEG3EI32_V_M8_M2_MASK = 7070,
+  PseudoVLUXSEG3EI32_V_MF2_M1 = 7071,
+  PseudoVLUXSEG3EI32_V_MF2_M1_MASK = 7072,
+  PseudoVLUXSEG3EI32_V_MF2_MF2 = 7073,
+  PseudoVLUXSEG3EI32_V_MF2_MF2_MASK = 7074,
+  PseudoVLUXSEG3EI32_V_MF2_MF4 = 7075,
+  PseudoVLUXSEG3EI32_V_MF2_MF4_MASK = 7076,
+  PseudoVLUXSEG3EI32_V_MF2_MF8 = 7077,
+  PseudoVLUXSEG3EI32_V_MF2_MF8_MASK = 7078,
+  PseudoVLUXSEG3EI64_V_M1_M1 = 7079,
+  PseudoVLUXSEG3EI64_V_M1_M1_MASK = 7080,
+  PseudoVLUXSEG3EI64_V_M1_MF2 = 7081,
+  PseudoVLUXSEG3EI64_V_M1_MF2_MASK = 7082,
+  PseudoVLUXSEG3EI64_V_M1_MF4 = 7083,
+  PseudoVLUXSEG3EI64_V_M1_MF4_MASK = 7084,
+  PseudoVLUXSEG3EI64_V_M1_MF8 = 7085,
+  PseudoVLUXSEG3EI64_V_M1_MF8_MASK = 7086,
+  PseudoVLUXSEG3EI64_V_M2_M1 = 7087,
+  PseudoVLUXSEG3EI64_V_M2_M1_MASK = 7088,
+  PseudoVLUXSEG3EI64_V_M2_M2 = 7089,
+  PseudoVLUXSEG3EI64_V_M2_M2_MASK = 7090,
+  PseudoVLUXSEG3EI64_V_M2_MF2 = 7091,
+  PseudoVLUXSEG3EI64_V_M2_MF2_MASK = 7092,
+  PseudoVLUXSEG3EI64_V_M2_MF4 = 7093,
+  PseudoVLUXSEG3EI64_V_M2_MF4_MASK = 7094,
+  PseudoVLUXSEG3EI64_V_M4_M1 = 7095,
+  PseudoVLUXSEG3EI64_V_M4_M1_MASK = 7096,
+  PseudoVLUXSEG3EI64_V_M4_M2 = 7097,
+  PseudoVLUXSEG3EI64_V_M4_M2_MASK = 7098,
+  PseudoVLUXSEG3EI64_V_M4_MF2 = 7099,
+  PseudoVLUXSEG3EI64_V_M4_MF2_MASK = 7100,
+  PseudoVLUXSEG3EI64_V_M8_M1 = 7101,
+  PseudoVLUXSEG3EI64_V_M8_M1_MASK = 7102,
+  PseudoVLUXSEG3EI64_V_M8_M2 = 7103,
+  PseudoVLUXSEG3EI64_V_M8_M2_MASK = 7104,
+  PseudoVLUXSEG3EI8_V_M1_M1 = 7105,
+  PseudoVLUXSEG3EI8_V_M1_M1_MASK = 7106,
+  PseudoVLUXSEG3EI8_V_M1_M2 = 7107,
+  PseudoVLUXSEG3EI8_V_M1_M2_MASK = 7108,
+  PseudoVLUXSEG3EI8_V_M2_M2 = 7109,
+  PseudoVLUXSEG3EI8_V_M2_M2_MASK = 7110,
+  PseudoVLUXSEG3EI8_V_MF2_M1 = 7111,
+  PseudoVLUXSEG3EI8_V_MF2_M1_MASK = 7112,
+  PseudoVLUXSEG3EI8_V_MF2_M2 = 7113,
+  PseudoVLUXSEG3EI8_V_MF2_M2_MASK = 7114,
+  PseudoVLUXSEG3EI8_V_MF2_MF2 = 7115,
+  PseudoVLUXSEG3EI8_V_MF2_MF2_MASK = 7116,
+  PseudoVLUXSEG3EI8_V_MF4_M1 = 7117,
+  PseudoVLUXSEG3EI8_V_MF4_M1_MASK = 7118,
+  PseudoVLUXSEG3EI8_V_MF4_M2 = 7119,
+  PseudoVLUXSEG3EI8_V_MF4_M2_MASK = 7120,
+  PseudoVLUXSEG3EI8_V_MF4_MF2 = 7121,
+  PseudoVLUXSEG3EI8_V_MF4_MF2_MASK = 7122,
+  PseudoVLUXSEG3EI8_V_MF4_MF4 = 7123,
+  PseudoVLUXSEG3EI8_V_MF4_MF4_MASK = 7124,
+  PseudoVLUXSEG3EI8_V_MF8_M1 = 7125,
+  PseudoVLUXSEG3EI8_V_MF8_M1_MASK = 7126,
+  PseudoVLUXSEG3EI8_V_MF8_MF2 = 7127,
+  PseudoVLUXSEG3EI8_V_MF8_MF2_MASK = 7128,
+  PseudoVLUXSEG3EI8_V_MF8_MF4 = 7129,
+  PseudoVLUXSEG3EI8_V_MF8_MF4_MASK = 7130,
+  PseudoVLUXSEG3EI8_V_MF8_MF8 = 7131,
+  PseudoVLUXSEG3EI8_V_MF8_MF8_MASK = 7132,
+  PseudoVLUXSEG4EI16_V_M1_M1 = 7133,
+  PseudoVLUXSEG4EI16_V_M1_M1_MASK = 7134,
+  PseudoVLUXSEG4EI16_V_M1_M2 = 7135,
+  PseudoVLUXSEG4EI16_V_M1_M2_MASK = 7136,
+  PseudoVLUXSEG4EI16_V_M1_MF2 = 7137,
+  PseudoVLUXSEG4EI16_V_M1_MF2_MASK = 7138,
+  PseudoVLUXSEG4EI16_V_M2_M1 = 7139,
+  PseudoVLUXSEG4EI16_V_M2_M1_MASK = 7140,
+  PseudoVLUXSEG4EI16_V_M2_M2 = 7141,
+  PseudoVLUXSEG4EI16_V_M2_M2_MASK = 7142,
+  PseudoVLUXSEG4EI16_V_M4_M2 = 7143,
+  PseudoVLUXSEG4EI16_V_M4_M2_MASK = 7144,
+  PseudoVLUXSEG4EI16_V_MF2_M1 = 7145,
+  PseudoVLUXSEG4EI16_V_MF2_M1_MASK = 7146,
+  PseudoVLUXSEG4EI16_V_MF2_M2 = 7147,
+  PseudoVLUXSEG4EI16_V_MF2_M2_MASK = 7148,
+  PseudoVLUXSEG4EI16_V_MF2_MF2 = 7149,
+  PseudoVLUXSEG4EI16_V_MF2_MF2_MASK = 7150,
+  PseudoVLUXSEG4EI16_V_MF2_MF4 = 7151,
+  PseudoVLUXSEG4EI16_V_MF2_MF4_MASK = 7152,
+  PseudoVLUXSEG4EI16_V_MF4_M1 = 7153,
+  PseudoVLUXSEG4EI16_V_MF4_M1_MASK = 7154,
+  PseudoVLUXSEG4EI16_V_MF4_MF2 = 7155,
+  PseudoVLUXSEG4EI16_V_MF4_MF2_MASK = 7156,
+  PseudoVLUXSEG4EI16_V_MF4_MF4 = 7157,
+  PseudoVLUXSEG4EI16_V_MF4_MF4_MASK = 7158,
+  PseudoVLUXSEG4EI16_V_MF4_MF8 = 7159,
+  PseudoVLUXSEG4EI16_V_MF4_MF8_MASK = 7160,
+  PseudoVLUXSEG4EI32_V_M1_M1 = 7161,
+  PseudoVLUXSEG4EI32_V_M1_M1_MASK = 7162,
+  PseudoVLUXSEG4EI32_V_M1_M2 = 7163,
+  PseudoVLUXSEG4EI32_V_M1_M2_MASK = 7164,
+  PseudoVLUXSEG4EI32_V_M1_MF2 = 7165,
+  PseudoVLUXSEG4EI32_V_M1_MF2_MASK = 7166,
+  PseudoVLUXSEG4EI32_V_M1_MF4 = 7167,
+  PseudoVLUXSEG4EI32_V_M1_MF4_MASK = 7168,
+  PseudoVLUXSEG4EI32_V_M2_M1 = 7169,
+  PseudoVLUXSEG4EI32_V_M2_M1_MASK = 7170,
+  PseudoVLUXSEG4EI32_V_M2_M2 = 7171,
+  PseudoVLUXSEG4EI32_V_M2_M2_MASK = 7172,
+  PseudoVLUXSEG4EI32_V_M2_MF2 = 7173,
+  PseudoVLUXSEG4EI32_V_M2_MF2_MASK = 7174,
+  PseudoVLUXSEG4EI32_V_M4_M1 = 7175,
+  PseudoVLUXSEG4EI32_V_M4_M1_MASK = 7176,
+  PseudoVLUXSEG4EI32_V_M4_M2 = 7177,
+  PseudoVLUXSEG4EI32_V_M4_M2_MASK = 7178,
+  PseudoVLUXSEG4EI32_V_M8_M2 = 7179,
+  PseudoVLUXSEG4EI32_V_M8_M2_MASK = 7180,
+  PseudoVLUXSEG4EI32_V_MF2_M1 = 7181,
+  PseudoVLUXSEG4EI32_V_MF2_M1_MASK = 7182,
+  PseudoVLUXSEG4EI32_V_MF2_MF2 = 7183,
+  PseudoVLUXSEG4EI32_V_MF2_MF2_MASK = 7184,
+  PseudoVLUXSEG4EI32_V_MF2_MF4 = 7185,
+  PseudoVLUXSEG4EI32_V_MF2_MF4_MASK = 7186,
+  PseudoVLUXSEG4EI32_V_MF2_MF8 = 7187,
+  PseudoVLUXSEG4EI32_V_MF2_MF8_MASK = 7188,
+  PseudoVLUXSEG4EI64_V_M1_M1 = 7189,
+  PseudoVLUXSEG4EI64_V_M1_M1_MASK = 7190,
+  PseudoVLUXSEG4EI64_V_M1_MF2 = 7191,
+  PseudoVLUXSEG4EI64_V_M1_MF2_MASK = 7192,
+  PseudoVLUXSEG4EI64_V_M1_MF4 = 7193,
+  PseudoVLUXSEG4EI64_V_M1_MF4_MASK = 7194,
+  PseudoVLUXSEG4EI64_V_M1_MF8 = 7195,
+  PseudoVLUXSEG4EI64_V_M1_MF8_MASK = 7196,
+  PseudoVLUXSEG4EI64_V_M2_M1 = 7197,
+  PseudoVLUXSEG4EI64_V_M2_M1_MASK = 7198,
+  PseudoVLUXSEG4EI64_V_M2_M2 = 7199,
+  PseudoVLUXSEG4EI64_V_M2_M2_MASK = 7200,
+  PseudoVLUXSEG4EI64_V_M2_MF2 = 7201,
+  PseudoVLUXSEG4EI64_V_M2_MF2_MASK = 7202,
+  PseudoVLUXSEG4EI64_V_M2_MF4 = 7203,
+  PseudoVLUXSEG4EI64_V_M2_MF4_MASK = 7204,
+  PseudoVLUXSEG4EI64_V_M4_M1 = 7205,
+  PseudoVLUXSEG4EI64_V_M4_M1_MASK = 7206,
+  PseudoVLUXSEG4EI64_V_M4_M2 = 7207,
+  PseudoVLUXSEG4EI64_V_M4_M2_MASK = 7208,
+  PseudoVLUXSEG4EI64_V_M4_MF2 = 7209,
+  PseudoVLUXSEG4EI64_V_M4_MF2_MASK = 7210,
+  PseudoVLUXSEG4EI64_V_M8_M1 = 7211,
+  PseudoVLUXSEG4EI64_V_M8_M1_MASK = 7212,
+  PseudoVLUXSEG4EI64_V_M8_M2 = 7213,
+  PseudoVLUXSEG4EI64_V_M8_M2_MASK = 7214,
+  PseudoVLUXSEG4EI8_V_M1_M1 = 7215,
+  PseudoVLUXSEG4EI8_V_M1_M1_MASK = 7216,
+  PseudoVLUXSEG4EI8_V_M1_M2 = 7217,
+  PseudoVLUXSEG4EI8_V_M1_M2_MASK = 7218,
+  PseudoVLUXSEG4EI8_V_M2_M2 = 7219,
+  PseudoVLUXSEG4EI8_V_M2_M2_MASK = 7220,
+  PseudoVLUXSEG4EI8_V_MF2_M1 = 7221,
+  PseudoVLUXSEG4EI8_V_MF2_M1_MASK = 7222,
+  PseudoVLUXSEG4EI8_V_MF2_M2 = 7223,
+  PseudoVLUXSEG4EI8_V_MF2_M2_MASK = 7224,
+  PseudoVLUXSEG4EI8_V_MF2_MF2 = 7225,
+  PseudoVLUXSEG4EI8_V_MF2_MF2_MASK = 7226,
+  PseudoVLUXSEG4EI8_V_MF4_M1 = 7227,
+  PseudoVLUXSEG4EI8_V_MF4_M1_MASK = 7228,
+  PseudoVLUXSEG4EI8_V_MF4_M2 = 7229,
+  PseudoVLUXSEG4EI8_V_MF4_M2_MASK = 7230,
+  PseudoVLUXSEG4EI8_V_MF4_MF2 = 7231,
+  PseudoVLUXSEG4EI8_V_MF4_MF2_MASK = 7232,
+  PseudoVLUXSEG4EI8_V_MF4_MF4 = 7233,
+  PseudoVLUXSEG4EI8_V_MF4_MF4_MASK = 7234,
+  PseudoVLUXSEG4EI8_V_MF8_M1 = 7235,
+  PseudoVLUXSEG4EI8_V_MF8_M1_MASK = 7236,
+  PseudoVLUXSEG4EI8_V_MF8_MF2 = 7237,
+  PseudoVLUXSEG4EI8_V_MF8_MF2_MASK = 7238,
+  PseudoVLUXSEG4EI8_V_MF8_MF4 = 7239,
+  PseudoVLUXSEG4EI8_V_MF8_MF4_MASK = 7240,
+  PseudoVLUXSEG4EI8_V_MF8_MF8 = 7241,
+  PseudoVLUXSEG4EI8_V_MF8_MF8_MASK = 7242,
+  PseudoVLUXSEG5EI16_V_M1_M1 = 7243,
+  PseudoVLUXSEG5EI16_V_M1_M1_MASK = 7244,
+  PseudoVLUXSEG5EI16_V_M1_MF2 = 7245,
+  PseudoVLUXSEG5EI16_V_M1_MF2_MASK = 7246,
+  PseudoVLUXSEG5EI16_V_M2_M1 = 7247,
+  PseudoVLUXSEG5EI16_V_M2_M1_MASK = 7248,
+  PseudoVLUXSEG5EI16_V_MF2_M1 = 7249,
+  PseudoVLUXSEG5EI16_V_MF2_M1_MASK = 7250,
+  PseudoVLUXSEG5EI16_V_MF2_MF2 = 7251,
+  PseudoVLUXSEG5EI16_V_MF2_MF2_MASK = 7252,
+  PseudoVLUXSEG5EI16_V_MF2_MF4 = 7253,
+  PseudoVLUXSEG5EI16_V_MF2_MF4_MASK = 7254,
+  PseudoVLUXSEG5EI16_V_MF4_M1 = 7255,
+  PseudoVLUXSEG5EI16_V_MF4_M1_MASK = 7256,
+  PseudoVLUXSEG5EI16_V_MF4_MF2 = 7257,
+  PseudoVLUXSEG5EI16_V_MF4_MF2_MASK = 7258,
+  PseudoVLUXSEG5EI16_V_MF4_MF4 = 7259,
+  PseudoVLUXSEG5EI16_V_MF4_MF4_MASK = 7260,
+  PseudoVLUXSEG5EI16_V_MF4_MF8 = 7261,
+  PseudoVLUXSEG5EI16_V_MF4_MF8_MASK = 7262,
+  PseudoVLUXSEG5EI32_V_M1_M1 = 7263,
+  PseudoVLUXSEG5EI32_V_M1_M1_MASK = 7264,
+  PseudoVLUXSEG5EI32_V_M1_MF2 = 7265,
+  PseudoVLUXSEG5EI32_V_M1_MF2_MASK = 7266,
+  PseudoVLUXSEG5EI32_V_M1_MF4 = 7267,
+  PseudoVLUXSEG5EI32_V_M1_MF4_MASK = 7268,
+  PseudoVLUXSEG5EI32_V_M2_M1 = 7269,
+  PseudoVLUXSEG5EI32_V_M2_M1_MASK = 7270,
+  PseudoVLUXSEG5EI32_V_M2_MF2 = 7271,
+  PseudoVLUXSEG5EI32_V_M2_MF2_MASK = 7272,
+  PseudoVLUXSEG5EI32_V_M4_M1 = 7273,
+  PseudoVLUXSEG5EI32_V_M4_M1_MASK = 7274,
+  PseudoVLUXSEG5EI32_V_MF2_M1 = 7275,
+  PseudoVLUXSEG5EI32_V_MF2_M1_MASK = 7276,
+  PseudoVLUXSEG5EI32_V_MF2_MF2 = 7277,
+  PseudoVLUXSEG5EI32_V_MF2_MF2_MASK = 7278,
+  PseudoVLUXSEG5EI32_V_MF2_MF4 = 7279,
+  PseudoVLUXSEG5EI32_V_MF2_MF4_MASK = 7280,
+  PseudoVLUXSEG5EI32_V_MF2_MF8 = 7281,
+  PseudoVLUXSEG5EI32_V_MF2_MF8_MASK = 7282,
+  PseudoVLUXSEG5EI64_V_M1_M1 = 7283,
+  PseudoVLUXSEG5EI64_V_M1_M1_MASK = 7284,
+  PseudoVLUXSEG5EI64_V_M1_MF2 = 7285,
+  PseudoVLUXSEG5EI64_V_M1_MF2_MASK = 7286,
+  PseudoVLUXSEG5EI64_V_M1_MF4 = 7287,
+  PseudoVLUXSEG5EI64_V_M1_MF4_MASK = 7288,
+  PseudoVLUXSEG5EI64_V_M1_MF8 = 7289,
+  PseudoVLUXSEG5EI64_V_M1_MF8_MASK = 7290,
+  PseudoVLUXSEG5EI64_V_M2_M1 = 7291,
+  PseudoVLUXSEG5EI64_V_M2_M1_MASK = 7292,
+  PseudoVLUXSEG5EI64_V_M2_MF2 = 7293,
+  PseudoVLUXSEG5EI64_V_M2_MF2_MASK = 7294,
+  PseudoVLUXSEG5EI64_V_M2_MF4 = 7295,
+  PseudoVLUXSEG5EI64_V_M2_MF4_MASK = 7296,
+  PseudoVLUXSEG5EI64_V_M4_M1 = 7297,
+  PseudoVLUXSEG5EI64_V_M4_M1_MASK = 7298,
+  PseudoVLUXSEG5EI64_V_M4_MF2 = 7299,
+  PseudoVLUXSEG5EI64_V_M4_MF2_MASK = 7300,
+  PseudoVLUXSEG5EI64_V_M8_M1 = 7301,
+  PseudoVLUXSEG5EI64_V_M8_M1_MASK = 7302,
+  PseudoVLUXSEG5EI8_V_M1_M1 = 7303,
+  PseudoVLUXSEG5EI8_V_M1_M1_MASK = 7304,
+  PseudoVLUXSEG5EI8_V_MF2_M1 = 7305,
+  PseudoVLUXSEG5EI8_V_MF2_M1_MASK = 7306,
+  PseudoVLUXSEG5EI8_V_MF2_MF2 = 7307,
+  PseudoVLUXSEG5EI8_V_MF2_MF2_MASK = 7308,
+  PseudoVLUXSEG5EI8_V_MF4_M1 = 7309,
+  PseudoVLUXSEG5EI8_V_MF4_M1_MASK = 7310,
+  PseudoVLUXSEG5EI8_V_MF4_MF2 = 7311,
+  PseudoVLUXSEG5EI8_V_MF4_MF2_MASK = 7312,
+  PseudoVLUXSEG5EI8_V_MF4_MF4 = 7313,
+  PseudoVLUXSEG5EI8_V_MF4_MF4_MASK = 7314,
+  PseudoVLUXSEG5EI8_V_MF8_M1 = 7315,
+  PseudoVLUXSEG5EI8_V_MF8_M1_MASK = 7316,
+  PseudoVLUXSEG5EI8_V_MF8_MF2 = 7317,
+  PseudoVLUXSEG5EI8_V_MF8_MF2_MASK = 7318,
+  PseudoVLUXSEG5EI8_V_MF8_MF4 = 7319,
+  PseudoVLUXSEG5EI8_V_MF8_MF4_MASK = 7320,
+  PseudoVLUXSEG5EI8_V_MF8_MF8 = 7321,
+  PseudoVLUXSEG5EI8_V_MF8_MF8_MASK = 7322,
+  PseudoVLUXSEG6EI16_V_M1_M1 = 7323,
+  PseudoVLUXSEG6EI16_V_M1_M1_MASK = 7324,
+  PseudoVLUXSEG6EI16_V_M1_MF2 = 7325,
+  PseudoVLUXSEG6EI16_V_M1_MF2_MASK = 7326,
+  PseudoVLUXSEG6EI16_V_M2_M1 = 7327,
+  PseudoVLUXSEG6EI16_V_M2_M1_MASK = 7328,
+  PseudoVLUXSEG6EI16_V_MF2_M1 = 7329,
+  PseudoVLUXSEG6EI16_V_MF2_M1_MASK = 7330,
+  PseudoVLUXSEG6EI16_V_MF2_MF2 = 7331,
+  PseudoVLUXSEG6EI16_V_MF2_MF2_MASK = 7332,
+  PseudoVLUXSEG6EI16_V_MF2_MF4 = 7333,
+  PseudoVLUXSEG6EI16_V_MF2_MF4_MASK = 7334,
+  PseudoVLUXSEG6EI16_V_MF4_M1 = 7335,
+  PseudoVLUXSEG6EI16_V_MF4_M1_MASK = 7336,
+  PseudoVLUXSEG6EI16_V_MF4_MF2 = 7337,
+  PseudoVLUXSEG6EI16_V_MF4_MF2_MASK = 7338,
+  PseudoVLUXSEG6EI16_V_MF4_MF4 = 7339,
+  PseudoVLUXSEG6EI16_V_MF4_MF4_MASK = 7340,
+  PseudoVLUXSEG6EI16_V_MF4_MF8 = 7341,
+  PseudoVLUXSEG6EI16_V_MF4_MF8_MASK = 7342,
+  PseudoVLUXSEG6EI32_V_M1_M1 = 7343,
+  PseudoVLUXSEG6EI32_V_M1_M1_MASK = 7344,
+  PseudoVLUXSEG6EI32_V_M1_MF2 = 7345,
+  PseudoVLUXSEG6EI32_V_M1_MF2_MASK = 7346,
+  PseudoVLUXSEG6EI32_V_M1_MF4 = 7347,
+  PseudoVLUXSEG6EI32_V_M1_MF4_MASK = 7348,
+  PseudoVLUXSEG6EI32_V_M2_M1 = 7349,
+  PseudoVLUXSEG6EI32_V_M2_M1_MASK = 7350,
+  PseudoVLUXSEG6EI32_V_M2_MF2 = 7351,
+  PseudoVLUXSEG6EI32_V_M2_MF2_MASK = 7352,
+  PseudoVLUXSEG6EI32_V_M4_M1 = 7353,
+  PseudoVLUXSEG6EI32_V_M4_M1_MASK = 7354,
+  PseudoVLUXSEG6EI32_V_MF2_M1 = 7355,
+  PseudoVLUXSEG6EI32_V_MF2_M1_MASK = 7356,
+  PseudoVLUXSEG6EI32_V_MF2_MF2 = 7357,
+  PseudoVLUXSEG6EI32_V_MF2_MF2_MASK = 7358,
+  PseudoVLUXSEG6EI32_V_MF2_MF4 = 7359,
+  PseudoVLUXSEG6EI32_V_MF2_MF4_MASK = 7360,
+  PseudoVLUXSEG6EI32_V_MF2_MF8 = 7361,
+  PseudoVLUXSEG6EI32_V_MF2_MF8_MASK = 7362,
+  PseudoVLUXSEG6EI64_V_M1_M1 = 7363,
+  PseudoVLUXSEG6EI64_V_M1_M1_MASK = 7364,
+  PseudoVLUXSEG6EI64_V_M1_MF2 = 7365,
+  PseudoVLUXSEG6EI64_V_M1_MF2_MASK = 7366,
+  PseudoVLUXSEG6EI64_V_M1_MF4 = 7367,
+  PseudoVLUXSEG6EI64_V_M1_MF4_MASK = 7368,
+  PseudoVLUXSEG6EI64_V_M1_MF8 = 7369,
+  PseudoVLUXSEG6EI64_V_M1_MF8_MASK = 7370,
+  PseudoVLUXSEG6EI64_V_M2_M1 = 7371,
+  PseudoVLUXSEG6EI64_V_M2_M1_MASK = 7372,
+  PseudoVLUXSEG6EI64_V_M2_MF2 = 7373,
+  PseudoVLUXSEG6EI64_V_M2_MF2_MASK = 7374,
+  PseudoVLUXSEG6EI64_V_M2_MF4 = 7375,
+  PseudoVLUXSEG6EI64_V_M2_MF4_MASK = 7376,
+  PseudoVLUXSEG6EI64_V_M4_M1 = 7377,
+  PseudoVLUXSEG6EI64_V_M4_M1_MASK = 7378,
+  PseudoVLUXSEG6EI64_V_M4_MF2 = 7379,
+  PseudoVLUXSEG6EI64_V_M4_MF2_MASK = 7380,
+  PseudoVLUXSEG6EI64_V_M8_M1 = 7381,
+  PseudoVLUXSEG6EI64_V_M8_M1_MASK = 7382,
+  PseudoVLUXSEG6EI8_V_M1_M1 = 7383,
+  PseudoVLUXSEG6EI8_V_M1_M1_MASK = 7384,
+  PseudoVLUXSEG6EI8_V_MF2_M1 = 7385,
+  PseudoVLUXSEG6EI8_V_MF2_M1_MASK = 7386,
+  PseudoVLUXSEG6EI8_V_MF2_MF2 = 7387,
+  PseudoVLUXSEG6EI8_V_MF2_MF2_MASK = 7388,
+  PseudoVLUXSEG6EI8_V_MF4_M1 = 7389,
+  PseudoVLUXSEG6EI8_V_MF4_M1_MASK = 7390,
+  PseudoVLUXSEG6EI8_V_MF4_MF2 = 7391,
+  PseudoVLUXSEG6EI8_V_MF4_MF2_MASK = 7392,
+  PseudoVLUXSEG6EI8_V_MF4_MF4 = 7393,
+  PseudoVLUXSEG6EI8_V_MF4_MF4_MASK = 7394,
+  PseudoVLUXSEG6EI8_V_MF8_M1 = 7395,
+  PseudoVLUXSEG6EI8_V_MF8_M1_MASK = 7396,
+  PseudoVLUXSEG6EI8_V_MF8_MF2 = 7397,
+  PseudoVLUXSEG6EI8_V_MF8_MF2_MASK = 7398,
+  PseudoVLUXSEG6EI8_V_MF8_MF4 = 7399,
+  PseudoVLUXSEG6EI8_V_MF8_MF4_MASK = 7400,
+  PseudoVLUXSEG6EI8_V_MF8_MF8 = 7401,
+  PseudoVLUXSEG6EI8_V_MF8_MF8_MASK = 7402,
+  PseudoVLUXSEG7EI16_V_M1_M1 = 7403,
+  PseudoVLUXSEG7EI16_V_M1_M1_MASK = 7404,
+  PseudoVLUXSEG7EI16_V_M1_MF2 = 7405,
+  PseudoVLUXSEG7EI16_V_M1_MF2_MASK = 7406,
+  PseudoVLUXSEG7EI16_V_M2_M1 = 7407,
+  PseudoVLUXSEG7EI16_V_M2_M1_MASK = 7408,
+  PseudoVLUXSEG7EI16_V_MF2_M1 = 7409,
+  PseudoVLUXSEG7EI16_V_MF2_M1_MASK = 7410,
+  PseudoVLUXSEG7EI16_V_MF2_MF2 = 7411,
+  PseudoVLUXSEG7EI16_V_MF2_MF2_MASK = 7412,
+  PseudoVLUXSEG7EI16_V_MF2_MF4 = 7413,
+  PseudoVLUXSEG7EI16_V_MF2_MF4_MASK = 7414,
+  PseudoVLUXSEG7EI16_V_MF4_M1 = 7415,
+  PseudoVLUXSEG7EI16_V_MF4_M1_MASK = 7416,
+  PseudoVLUXSEG7EI16_V_MF4_MF2 = 7417,
+  PseudoVLUXSEG7EI16_V_MF4_MF2_MASK = 7418,
+  PseudoVLUXSEG7EI16_V_MF4_MF4 = 7419,
+  PseudoVLUXSEG7EI16_V_MF4_MF4_MASK = 7420,
+  PseudoVLUXSEG7EI16_V_MF4_MF8 = 7421,
+  PseudoVLUXSEG7EI16_V_MF4_MF8_MASK = 7422,
+  PseudoVLUXSEG7EI32_V_M1_M1 = 7423,
+  PseudoVLUXSEG7EI32_V_M1_M1_MASK = 7424,
+  PseudoVLUXSEG7EI32_V_M1_MF2 = 7425,
+  PseudoVLUXSEG7EI32_V_M1_MF2_MASK = 7426,
+  PseudoVLUXSEG7EI32_V_M1_MF4 = 7427,
+  PseudoVLUXSEG7EI32_V_M1_MF4_MASK = 7428,
+  PseudoVLUXSEG7EI32_V_M2_M1 = 7429,
+  PseudoVLUXSEG7EI32_V_M2_M1_MASK = 7430,
+  PseudoVLUXSEG7EI32_V_M2_MF2 = 7431,
+  PseudoVLUXSEG7EI32_V_M2_MF2_MASK = 7432,
+  PseudoVLUXSEG7EI32_V_M4_M1 = 7433,
+  PseudoVLUXSEG7EI32_V_M4_M1_MASK = 7434,
+  PseudoVLUXSEG7EI32_V_MF2_M1 = 7435,
+  PseudoVLUXSEG7EI32_V_MF2_M1_MASK = 7436,
+  PseudoVLUXSEG7EI32_V_MF2_MF2 = 7437,
+  PseudoVLUXSEG7EI32_V_MF2_MF2_MASK = 7438,
+  PseudoVLUXSEG7EI32_V_MF2_MF4 = 7439,
+  PseudoVLUXSEG7EI32_V_MF2_MF4_MASK = 7440,
+  PseudoVLUXSEG7EI32_V_MF2_MF8 = 7441,
+  PseudoVLUXSEG7EI32_V_MF2_MF8_MASK = 7442,
+  PseudoVLUXSEG7EI64_V_M1_M1 = 7443,
+  PseudoVLUXSEG7EI64_V_M1_M1_MASK = 7444,
+  PseudoVLUXSEG7EI64_V_M1_MF2 = 7445,
+  PseudoVLUXSEG7EI64_V_M1_MF2_MASK = 7446,
+  PseudoVLUXSEG7EI64_V_M1_MF4 = 7447,
+  PseudoVLUXSEG7EI64_V_M1_MF4_MASK = 7448,
+  PseudoVLUXSEG7EI64_V_M1_MF8 = 7449,
+  PseudoVLUXSEG7EI64_V_M1_MF8_MASK = 7450,
+  PseudoVLUXSEG7EI64_V_M2_M1 = 7451,
+  PseudoVLUXSEG7EI64_V_M2_M1_MASK = 7452,
+  PseudoVLUXSEG7EI64_V_M2_MF2 = 7453,
+  PseudoVLUXSEG7EI64_V_M2_MF2_MASK = 7454,
+  PseudoVLUXSEG7EI64_V_M2_MF4 = 7455,
+  PseudoVLUXSEG7EI64_V_M2_MF4_MASK = 7456,
+  PseudoVLUXSEG7EI64_V_M4_M1 = 7457,
+  PseudoVLUXSEG7EI64_V_M4_M1_MASK = 7458,
+  PseudoVLUXSEG7EI64_V_M4_MF2 = 7459,
+  PseudoVLUXSEG7EI64_V_M4_MF2_MASK = 7460,
+  PseudoVLUXSEG7EI64_V_M8_M1 = 7461,
+  PseudoVLUXSEG7EI64_V_M8_M1_MASK = 7462,
+  PseudoVLUXSEG7EI8_V_M1_M1 = 7463,
+  PseudoVLUXSEG7EI8_V_M1_M1_MASK = 7464,
+  PseudoVLUXSEG7EI8_V_MF2_M1 = 7465,
+  PseudoVLUXSEG7EI8_V_MF2_M1_MASK = 7466,
+  PseudoVLUXSEG7EI8_V_MF2_MF2 = 7467,
+  PseudoVLUXSEG7EI8_V_MF2_MF2_MASK = 7468,
+  PseudoVLUXSEG7EI8_V_MF4_M1 = 7469,
+  PseudoVLUXSEG7EI8_V_MF4_M1_MASK = 7470,
+  PseudoVLUXSEG7EI8_V_MF4_MF2 = 7471,
+  PseudoVLUXSEG7EI8_V_MF4_MF2_MASK = 7472,
+  PseudoVLUXSEG7EI8_V_MF4_MF4 = 7473,
+  PseudoVLUXSEG7EI8_V_MF4_MF4_MASK = 7474,
+  PseudoVLUXSEG7EI8_V_MF8_M1 = 7475,
+  PseudoVLUXSEG7EI8_V_MF8_M1_MASK = 7476,
+  PseudoVLUXSEG7EI8_V_MF8_MF2 = 7477,
+  PseudoVLUXSEG7EI8_V_MF8_MF2_MASK = 7478,
+  PseudoVLUXSEG7EI8_V_MF8_MF4 = 7479,
+  PseudoVLUXSEG7EI8_V_MF8_MF4_MASK = 7480,
+  PseudoVLUXSEG7EI8_V_MF8_MF8 = 7481,
+  PseudoVLUXSEG7EI8_V_MF8_MF8_MASK = 7482,
+  PseudoVLUXSEG8EI16_V_M1_M1 = 7483,
+  PseudoVLUXSEG8EI16_V_M1_M1_MASK = 7484,
+  PseudoVLUXSEG8EI16_V_M1_MF2 = 7485,
+  PseudoVLUXSEG8EI16_V_M1_MF2_MASK = 7486,
+  PseudoVLUXSEG8EI16_V_M2_M1 = 7487,
+  PseudoVLUXSEG8EI16_V_M2_M1_MASK = 7488,
+  PseudoVLUXSEG8EI16_V_MF2_M1 = 7489,
+  PseudoVLUXSEG8EI16_V_MF2_M1_MASK = 7490,
+  PseudoVLUXSEG8EI16_V_MF2_MF2 = 7491,
+  PseudoVLUXSEG8EI16_V_MF2_MF2_MASK = 7492,
+  PseudoVLUXSEG8EI16_V_MF2_MF4 = 7493,
+  PseudoVLUXSEG8EI16_V_MF2_MF4_MASK = 7494,
+  PseudoVLUXSEG8EI16_V_MF4_M1 = 7495,
+  PseudoVLUXSEG8EI16_V_MF4_M1_MASK = 7496,
+  PseudoVLUXSEG8EI16_V_MF4_MF2 = 7497,
+  PseudoVLUXSEG8EI16_V_MF4_MF2_MASK = 7498,
+  PseudoVLUXSEG8EI16_V_MF4_MF4 = 7499,
+  PseudoVLUXSEG8EI16_V_MF4_MF4_MASK = 7500,
+  PseudoVLUXSEG8EI16_V_MF4_MF8 = 7501,
+  PseudoVLUXSEG8EI16_V_MF4_MF8_MASK = 7502,
+  PseudoVLUXSEG8EI32_V_M1_M1 = 7503,
+  PseudoVLUXSEG8EI32_V_M1_M1_MASK = 7504,
+  PseudoVLUXSEG8EI32_V_M1_MF2 = 7505,
+  PseudoVLUXSEG8EI32_V_M1_MF2_MASK = 7506,
+  PseudoVLUXSEG8EI32_V_M1_MF4 = 7507,
+  PseudoVLUXSEG8EI32_V_M1_MF4_MASK = 7508,
+  PseudoVLUXSEG8EI32_V_M2_M1 = 7509,
+  PseudoVLUXSEG8EI32_V_M2_M1_MASK = 7510,
+  PseudoVLUXSEG8EI32_V_M2_MF2 = 7511,
+  PseudoVLUXSEG8EI32_V_M2_MF2_MASK = 7512,
+  PseudoVLUXSEG8EI32_V_M4_M1 = 7513,
+  PseudoVLUXSEG8EI32_V_M4_M1_MASK = 7514,
+  PseudoVLUXSEG8EI32_V_MF2_M1 = 7515,
+  PseudoVLUXSEG8EI32_V_MF2_M1_MASK = 7516,
+  PseudoVLUXSEG8EI32_V_MF2_MF2 = 7517,
+  PseudoVLUXSEG8EI32_V_MF2_MF2_MASK = 7518,
+  PseudoVLUXSEG8EI32_V_MF2_MF4 = 7519,
+  PseudoVLUXSEG8EI32_V_MF2_MF4_MASK = 7520,
+  PseudoVLUXSEG8EI32_V_MF2_MF8 = 7521,
+  PseudoVLUXSEG8EI32_V_MF2_MF8_MASK = 7522,
+  PseudoVLUXSEG8EI64_V_M1_M1 = 7523,
+  PseudoVLUXSEG8EI64_V_M1_M1_MASK = 7524,
+  PseudoVLUXSEG8EI64_V_M1_MF2 = 7525,
+  PseudoVLUXSEG8EI64_V_M1_MF2_MASK = 7526,
+  PseudoVLUXSEG8EI64_V_M1_MF4 = 7527,
+  PseudoVLUXSEG8EI64_V_M1_MF4_MASK = 7528,
+  PseudoVLUXSEG8EI64_V_M1_MF8 = 7529,
+  PseudoVLUXSEG8EI64_V_M1_MF8_MASK = 7530,
+  PseudoVLUXSEG8EI64_V_M2_M1 = 7531,
+  PseudoVLUXSEG8EI64_V_M2_M1_MASK = 7532,
+  PseudoVLUXSEG8EI64_V_M2_MF2 = 7533,
+  PseudoVLUXSEG8EI64_V_M2_MF2_MASK = 7534,
+  PseudoVLUXSEG8EI64_V_M2_MF4 = 7535,
+  PseudoVLUXSEG8EI64_V_M2_MF4_MASK = 7536,
+  PseudoVLUXSEG8EI64_V_M4_M1 = 7537,
+  PseudoVLUXSEG8EI64_V_M4_M1_MASK = 7538,
+  PseudoVLUXSEG8EI64_V_M4_MF2 = 7539,
+  PseudoVLUXSEG8EI64_V_M4_MF2_MASK = 7540,
+  PseudoVLUXSEG8EI64_V_M8_M1 = 7541,
+  PseudoVLUXSEG8EI64_V_M8_M1_MASK = 7542,
+  PseudoVLUXSEG8EI8_V_M1_M1 = 7543,
+  PseudoVLUXSEG8EI8_V_M1_M1_MASK = 7544,
+  PseudoVLUXSEG8EI8_V_MF2_M1 = 7545,
+  PseudoVLUXSEG8EI8_V_MF2_M1_MASK = 7546,
+  PseudoVLUXSEG8EI8_V_MF2_MF2 = 7547,
+  PseudoVLUXSEG8EI8_V_MF2_MF2_MASK = 7548,
+  PseudoVLUXSEG8EI8_V_MF4_M1 = 7549,
+  PseudoVLUXSEG8EI8_V_MF4_M1_MASK = 7550,
+  PseudoVLUXSEG8EI8_V_MF4_MF2 = 7551,
+  PseudoVLUXSEG8EI8_V_MF4_MF2_MASK = 7552,
+  PseudoVLUXSEG8EI8_V_MF4_MF4 = 7553,
+  PseudoVLUXSEG8EI8_V_MF4_MF4_MASK = 7554,
+  PseudoVLUXSEG8EI8_V_MF8_M1 = 7555,
+  PseudoVLUXSEG8EI8_V_MF8_M1_MASK = 7556,
+  PseudoVLUXSEG8EI8_V_MF8_MF2 = 7557,
+  PseudoVLUXSEG8EI8_V_MF8_MF2_MASK = 7558,
+  PseudoVLUXSEG8EI8_V_MF8_MF4 = 7559,
+  PseudoVLUXSEG8EI8_V_MF8_MF4_MASK = 7560,
+  PseudoVLUXSEG8EI8_V_MF8_MF8 = 7561,
+  PseudoVLUXSEG8EI8_V_MF8_MF8_MASK = 7562,
+  PseudoVMACC_VV_M1 = 7563,
+  PseudoVMACC_VV_M1_MASK = 7564,
+  PseudoVMACC_VV_M2 = 7565,
+  PseudoVMACC_VV_M2_MASK = 7566,
+  PseudoVMACC_VV_M4 = 7567,
+  PseudoVMACC_VV_M4_MASK = 7568,
+  PseudoVMACC_VV_M8 = 7569,
+  PseudoVMACC_VV_M8_MASK = 7570,
+  PseudoVMACC_VV_MF2 = 7571,
+  PseudoVMACC_VV_MF2_MASK = 7572,
+  PseudoVMACC_VV_MF4 = 7573,
+  PseudoVMACC_VV_MF4_MASK = 7574,
+  PseudoVMACC_VV_MF8 = 7575,
+  PseudoVMACC_VV_MF8_MASK = 7576,
+  PseudoVMACC_VX_M1 = 7577,
+  PseudoVMACC_VX_M1_MASK = 7578,
+  PseudoVMACC_VX_M2 = 7579,
+  PseudoVMACC_VX_M2_MASK = 7580,
+  PseudoVMACC_VX_M4 = 7581,
+  PseudoVMACC_VX_M4_MASK = 7582,
+  PseudoVMACC_VX_M8 = 7583,
+  PseudoVMACC_VX_M8_MASK = 7584,
+  PseudoVMACC_VX_MF2 = 7585,
+  PseudoVMACC_VX_MF2_MASK = 7586,
+  PseudoVMACC_VX_MF4 = 7587,
+  PseudoVMACC_VX_MF4_MASK = 7588,
+  PseudoVMACC_VX_MF8 = 7589,
+  PseudoVMACC_VX_MF8_MASK = 7590,
+  PseudoVMADC_VIM_M1 = 7591,
+  PseudoVMADC_VIM_M2 = 7592,
+  PseudoVMADC_VIM_M4 = 7593,
+  PseudoVMADC_VIM_M8 = 7594,
+  PseudoVMADC_VIM_MF2 = 7595,
+  PseudoVMADC_VIM_MF4 = 7596,
+  PseudoVMADC_VIM_MF8 = 7597,
+  PseudoVMADC_VI_M1 = 7598,
+  PseudoVMADC_VI_M2 = 7599,
+  PseudoVMADC_VI_M4 = 7600,
+  PseudoVMADC_VI_M8 = 7601,
+  PseudoVMADC_VI_MF2 = 7602,
+  PseudoVMADC_VI_MF4 = 7603,
+  PseudoVMADC_VI_MF8 = 7604,
+  PseudoVMADC_VVM_M1 = 7605,
+  PseudoVMADC_VVM_M2 = 7606,
+  PseudoVMADC_VVM_M4 = 7607,
+  PseudoVMADC_VVM_M8 = 7608,
+  PseudoVMADC_VVM_MF2 = 7609,
+  PseudoVMADC_VVM_MF4 = 7610,
+  PseudoVMADC_VVM_MF8 = 7611,
+  PseudoVMADC_VV_M1 = 7612,
+  PseudoVMADC_VV_M2 = 7613,
+  PseudoVMADC_VV_M4 = 7614,
+  PseudoVMADC_VV_M8 = 7615,
+  PseudoVMADC_VV_MF2 = 7616,
+  PseudoVMADC_VV_MF4 = 7617,
+  PseudoVMADC_VV_MF8 = 7618,
+  PseudoVMADC_VXM_M1 = 7619,
+  PseudoVMADC_VXM_M2 = 7620,
+  PseudoVMADC_VXM_M4 = 7621,
+  PseudoVMADC_VXM_M8 = 7622,
+  PseudoVMADC_VXM_MF2 = 7623,
+  PseudoVMADC_VXM_MF4 = 7624,
+  PseudoVMADC_VXM_MF8 = 7625,
+  PseudoVMADC_VX_M1 = 7626,
+  PseudoVMADC_VX_M2 = 7627,
+  PseudoVMADC_VX_M4 = 7628,
+  PseudoVMADC_VX_M8 = 7629,
+  PseudoVMADC_VX_MF2 = 7630,
+  PseudoVMADC_VX_MF4 = 7631,
+  PseudoVMADC_VX_MF8 = 7632,
+  PseudoVMADD_VV_M1 = 7633,
+  PseudoVMADD_VV_M1_MASK = 7634,
+  PseudoVMADD_VV_M2 = 7635,
+  PseudoVMADD_VV_M2_MASK = 7636,
+  PseudoVMADD_VV_M4 = 7637,
+  PseudoVMADD_VV_M4_MASK = 7638,
+  PseudoVMADD_VV_M8 = 7639,
+  PseudoVMADD_VV_M8_MASK = 7640,
+  PseudoVMADD_VV_MF2 = 7641,
+  PseudoVMADD_VV_MF2_MASK = 7642,
+  PseudoVMADD_VV_MF4 = 7643,
+  PseudoVMADD_VV_MF4_MASK = 7644,
+  PseudoVMADD_VV_MF8 = 7645,
+  PseudoVMADD_VV_MF8_MASK = 7646,
+  PseudoVMADD_VX_M1 = 7647,
+  PseudoVMADD_VX_M1_MASK = 7648,
+  PseudoVMADD_VX_M2 = 7649,
+  PseudoVMADD_VX_M2_MASK = 7650,
+  PseudoVMADD_VX_M4 = 7651,
+  PseudoVMADD_VX_M4_MASK = 7652,
+  PseudoVMADD_VX_M8 = 7653,
+  PseudoVMADD_VX_M8_MASK = 7654,
+  PseudoVMADD_VX_MF2 = 7655,
+  PseudoVMADD_VX_MF2_MASK = 7656,
+  PseudoVMADD_VX_MF4 = 7657,
+  PseudoVMADD_VX_MF4_MASK = 7658,
+  PseudoVMADD_VX_MF8 = 7659,
+  PseudoVMADD_VX_MF8_MASK = 7660,
+  PseudoVMANDN_MM_B1 = 7661,
+  PseudoVMANDN_MM_B16 = 7662,
+  PseudoVMANDN_MM_B2 = 7663,
+  PseudoVMANDN_MM_B32 = 7664,
+  PseudoVMANDN_MM_B4 = 7665,
+  PseudoVMANDN_MM_B64 = 7666,
+  PseudoVMANDN_MM_B8 = 7667,
+  PseudoVMAND_MM_B1 = 7668,
+  PseudoVMAND_MM_B16 = 7669,
+  PseudoVMAND_MM_B2 = 7670,
+  PseudoVMAND_MM_B32 = 7671,
+  PseudoVMAND_MM_B4 = 7672,
+  PseudoVMAND_MM_B64 = 7673,
+  PseudoVMAND_MM_B8 = 7674,
+  PseudoVMAXU_VV_M1 = 7675,
+  PseudoVMAXU_VV_M1_MASK = 7676,
+  PseudoVMAXU_VV_M2 = 7677,
+  PseudoVMAXU_VV_M2_MASK = 7678,
+  PseudoVMAXU_VV_M4 = 7679,
+  PseudoVMAXU_VV_M4_MASK = 7680,
+  PseudoVMAXU_VV_M8 = 7681,
+  PseudoVMAXU_VV_M8_MASK = 7682,
+  PseudoVMAXU_VV_MF2 = 7683,
+  PseudoVMAXU_VV_MF2_MASK = 7684,
+  PseudoVMAXU_VV_MF4 = 7685,
+  PseudoVMAXU_VV_MF4_MASK = 7686,
+  PseudoVMAXU_VV_MF8 = 7687,
+  PseudoVMAXU_VV_MF8_MASK = 7688,
+  PseudoVMAXU_VX_M1 = 7689,
+  PseudoVMAXU_VX_M1_MASK = 7690,
+  PseudoVMAXU_VX_M2 = 7691,
+  PseudoVMAXU_VX_M2_MASK = 7692,
+  PseudoVMAXU_VX_M4 = 7693,
+  PseudoVMAXU_VX_M4_MASK = 7694,
+  PseudoVMAXU_VX_M8 = 7695,
+  PseudoVMAXU_VX_M8_MASK = 7696,
+  PseudoVMAXU_VX_MF2 = 7697,
+  PseudoVMAXU_VX_MF2_MASK = 7698,
+  PseudoVMAXU_VX_MF4 = 7699,
+  PseudoVMAXU_VX_MF4_MASK = 7700,
+  PseudoVMAXU_VX_MF8 = 7701,
+  PseudoVMAXU_VX_MF8_MASK = 7702,
+  PseudoVMAX_VV_M1 = 7703,
+  PseudoVMAX_VV_M1_MASK = 7704,
+  PseudoVMAX_VV_M2 = 7705,
+  PseudoVMAX_VV_M2_MASK = 7706,
+  PseudoVMAX_VV_M4 = 7707,
+  PseudoVMAX_VV_M4_MASK = 7708,
+  PseudoVMAX_VV_M8 = 7709,
+  PseudoVMAX_VV_M8_MASK = 7710,
+  PseudoVMAX_VV_MF2 = 7711,
+  PseudoVMAX_VV_MF2_MASK = 7712,
+  PseudoVMAX_VV_MF4 = 7713,
+  PseudoVMAX_VV_MF4_MASK = 7714,
+  PseudoVMAX_VV_MF8 = 7715,
+  PseudoVMAX_VV_MF8_MASK = 7716,
+  PseudoVMAX_VX_M1 = 7717,
+  PseudoVMAX_VX_M1_MASK = 7718,
+  PseudoVMAX_VX_M2 = 7719,
+  PseudoVMAX_VX_M2_MASK = 7720,
+  PseudoVMAX_VX_M4 = 7721,
+  PseudoVMAX_VX_M4_MASK = 7722,
+  PseudoVMAX_VX_M8 = 7723,
+  PseudoVMAX_VX_M8_MASK = 7724,
+  PseudoVMAX_VX_MF2 = 7725,
+  PseudoVMAX_VX_MF2_MASK = 7726,
+  PseudoVMAX_VX_MF4 = 7727,
+  PseudoVMAX_VX_MF4_MASK = 7728,
+  PseudoVMAX_VX_MF8 = 7729,
+  PseudoVMAX_VX_MF8_MASK = 7730,
+  PseudoVMCLR_M_B1 = 7731,
+  PseudoVMCLR_M_B16 = 7732,
+  PseudoVMCLR_M_B2 = 7733,
+  PseudoVMCLR_M_B32 = 7734,
+  PseudoVMCLR_M_B4 = 7735,
+  PseudoVMCLR_M_B64 = 7736,
+  PseudoVMCLR_M_B8 = 7737,
+  PseudoVMERGE_VIM_M1 = 7738,
+  PseudoVMERGE_VIM_M2 = 7739,
+  PseudoVMERGE_VIM_M4 = 7740,
+  PseudoVMERGE_VIM_M8 = 7741,
+  PseudoVMERGE_VIM_MF2 = 7742,
+  PseudoVMERGE_VIM_MF4 = 7743,
+  PseudoVMERGE_VIM_MF8 = 7744,
+  PseudoVMERGE_VVM_M1 = 7745,
+  PseudoVMERGE_VVM_M2 = 7746,
+  PseudoVMERGE_VVM_M4 = 7747,
+  PseudoVMERGE_VVM_M8 = 7748,
+  PseudoVMERGE_VVM_MF2 = 7749,
+  PseudoVMERGE_VVM_MF4 = 7750,
+  PseudoVMERGE_VVM_MF8 = 7751,
+  PseudoVMERGE_VXM_M1 = 7752,
+  PseudoVMERGE_VXM_M2 = 7753,
+  PseudoVMERGE_VXM_M4 = 7754,
+  PseudoVMERGE_VXM_M8 = 7755,
+  PseudoVMERGE_VXM_MF2 = 7756,
+  PseudoVMERGE_VXM_MF4 = 7757,
+  PseudoVMERGE_VXM_MF8 = 7758,
+  PseudoVMFEQ_ALT_VFPR16_M1 = 7759,
+  PseudoVMFEQ_ALT_VFPR16_M1_MASK = 7760,
+  PseudoVMFEQ_ALT_VFPR16_M2 = 7761,
+  PseudoVMFEQ_ALT_VFPR16_M2_MASK = 7762,
+  PseudoVMFEQ_ALT_VFPR16_M4 = 7763,
+  PseudoVMFEQ_ALT_VFPR16_M4_MASK = 7764,
+  PseudoVMFEQ_ALT_VFPR16_M8 = 7765,
+  PseudoVMFEQ_ALT_VFPR16_M8_MASK = 7766,
+  PseudoVMFEQ_ALT_VFPR16_MF2 = 7767,
+  PseudoVMFEQ_ALT_VFPR16_MF2_MASK = 7768,
+  PseudoVMFEQ_ALT_VFPR16_MF4 = 7769,
+  PseudoVMFEQ_ALT_VFPR16_MF4_MASK = 7770,
+  PseudoVMFEQ_ALT_VFPR32_M1 = 7771,
+  PseudoVMFEQ_ALT_VFPR32_M1_MASK = 7772,
+  PseudoVMFEQ_ALT_VFPR32_M2 = 7773,
+  PseudoVMFEQ_ALT_VFPR32_M2_MASK = 7774,
+  PseudoVMFEQ_ALT_VFPR32_M4 = 7775,
+  PseudoVMFEQ_ALT_VFPR32_M4_MASK = 7776,
+  PseudoVMFEQ_ALT_VFPR32_M8 = 7777,
+  PseudoVMFEQ_ALT_VFPR32_M8_MASK = 7778,
+  PseudoVMFEQ_ALT_VFPR32_MF2 = 7779,
+  PseudoVMFEQ_ALT_VFPR32_MF2_MASK = 7780,
+  PseudoVMFEQ_ALT_VFPR64_M1 = 7781,
+  PseudoVMFEQ_ALT_VFPR64_M1_MASK = 7782,
+  PseudoVMFEQ_ALT_VFPR64_M2 = 7783,
+  PseudoVMFEQ_ALT_VFPR64_M2_MASK = 7784,
+  PseudoVMFEQ_ALT_VFPR64_M4 = 7785,
+  PseudoVMFEQ_ALT_VFPR64_M4_MASK = 7786,
+  PseudoVMFEQ_ALT_VFPR64_M8 = 7787,
+  PseudoVMFEQ_ALT_VFPR64_M8_MASK = 7788,
+  PseudoVMFEQ_ALT_VV_M1 = 7789,
+  PseudoVMFEQ_ALT_VV_M1_MASK = 7790,
+  PseudoVMFEQ_ALT_VV_M2 = 7791,
+  PseudoVMFEQ_ALT_VV_M2_MASK = 7792,
+  PseudoVMFEQ_ALT_VV_M4 = 7793,
+  PseudoVMFEQ_ALT_VV_M4_MASK = 7794,
+  PseudoVMFEQ_ALT_VV_M8 = 7795,
+  PseudoVMFEQ_ALT_VV_M8_MASK = 7796,
+  PseudoVMFEQ_ALT_VV_MF2 = 7797,
+  PseudoVMFEQ_ALT_VV_MF2_MASK = 7798,
+  PseudoVMFEQ_ALT_VV_MF4 = 7799,
+  PseudoVMFEQ_ALT_VV_MF4_MASK = 7800,
+  PseudoVMFEQ_VFPR16_M1 = 7801,
+  PseudoVMFEQ_VFPR16_M1_MASK = 7802,
+  PseudoVMFEQ_VFPR16_M2 = 7803,
+  PseudoVMFEQ_VFPR16_M2_MASK = 7804,
+  PseudoVMFEQ_VFPR16_M4 = 7805,
+  PseudoVMFEQ_VFPR16_M4_MASK = 7806,
+  PseudoVMFEQ_VFPR16_M8 = 7807,
+  PseudoVMFEQ_VFPR16_M8_MASK = 7808,
+  PseudoVMFEQ_VFPR16_MF2 = 7809,
+  PseudoVMFEQ_VFPR16_MF2_MASK = 7810,
+  PseudoVMFEQ_VFPR16_MF4 = 7811,
+  PseudoVMFEQ_VFPR16_MF4_MASK = 7812,
+  PseudoVMFEQ_VFPR32_M1 = 7813,
+  PseudoVMFEQ_VFPR32_M1_MASK = 7814,
+  PseudoVMFEQ_VFPR32_M2 = 7815,
+  PseudoVMFEQ_VFPR32_M2_MASK = 7816,
+  PseudoVMFEQ_VFPR32_M4 = 7817,
+  PseudoVMFEQ_VFPR32_M4_MASK = 7818,
+  PseudoVMFEQ_VFPR32_M8 = 7819,
+  PseudoVMFEQ_VFPR32_M8_MASK = 7820,
+  PseudoVMFEQ_VFPR32_MF2 = 7821,
+  PseudoVMFEQ_VFPR32_MF2_MASK = 7822,
+  PseudoVMFEQ_VFPR64_M1 = 7823,
+  PseudoVMFEQ_VFPR64_M1_MASK = 7824,
+  PseudoVMFEQ_VFPR64_M2 = 7825,
+  PseudoVMFEQ_VFPR64_M2_MASK = 7826,
+  PseudoVMFEQ_VFPR64_M4 = 7827,
+  PseudoVMFEQ_VFPR64_M4_MASK = 7828,
+  PseudoVMFEQ_VFPR64_M8 = 7829,
+  PseudoVMFEQ_VFPR64_M8_MASK = 7830,
+  PseudoVMFEQ_VV_M1 = 7831,
+  PseudoVMFEQ_VV_M1_MASK = 7832,
+  PseudoVMFEQ_VV_M2 = 7833,
+  PseudoVMFEQ_VV_M2_MASK = 7834,
+  PseudoVMFEQ_VV_M4 = 7835,
+  PseudoVMFEQ_VV_M4_MASK = 7836,
+  PseudoVMFEQ_VV_M8 = 7837,
+  PseudoVMFEQ_VV_M8_MASK = 7838,
+  PseudoVMFEQ_VV_MF2 = 7839,
+  PseudoVMFEQ_VV_MF2_MASK = 7840,
+  PseudoVMFEQ_VV_MF4 = 7841,
+  PseudoVMFEQ_VV_MF4_MASK = 7842,
+  PseudoVMFGE_ALT_VFPR16_M1 = 7843,
+  PseudoVMFGE_ALT_VFPR16_M1_MASK = 7844,
+  PseudoVMFGE_ALT_VFPR16_M2 = 7845,
+  PseudoVMFGE_ALT_VFPR16_M2_MASK = 7846,
+  PseudoVMFGE_ALT_VFPR16_M4 = 7847,
+  PseudoVMFGE_ALT_VFPR16_M4_MASK = 7848,
+  PseudoVMFGE_ALT_VFPR16_M8 = 7849,
+  PseudoVMFGE_ALT_VFPR16_M8_MASK = 7850,
+  PseudoVMFGE_ALT_VFPR16_MF2 = 7851,
+  PseudoVMFGE_ALT_VFPR16_MF2_MASK = 7852,
+  PseudoVMFGE_ALT_VFPR16_MF4 = 7853,
+  PseudoVMFGE_ALT_VFPR16_MF4_MASK = 7854,
+  PseudoVMFGE_ALT_VFPR32_M1 = 7855,
+  PseudoVMFGE_ALT_VFPR32_M1_MASK = 7856,
+  PseudoVMFGE_ALT_VFPR32_M2 = 7857,
+  PseudoVMFGE_ALT_VFPR32_M2_MASK = 7858,
+  PseudoVMFGE_ALT_VFPR32_M4 = 7859,
+  PseudoVMFGE_ALT_VFPR32_M4_MASK = 7860,
+  PseudoVMFGE_ALT_VFPR32_M8 = 7861,
+  PseudoVMFGE_ALT_VFPR32_M8_MASK = 7862,
+  PseudoVMFGE_ALT_VFPR32_MF2 = 7863,
+  PseudoVMFGE_ALT_VFPR32_MF2_MASK = 7864,
+  PseudoVMFGE_ALT_VFPR64_M1 = 7865,
+  PseudoVMFGE_ALT_VFPR64_M1_MASK = 7866,
+  PseudoVMFGE_ALT_VFPR64_M2 = 7867,
+  PseudoVMFGE_ALT_VFPR64_M2_MASK = 7868,
+  PseudoVMFGE_ALT_VFPR64_M4 = 7869,
+  PseudoVMFGE_ALT_VFPR64_M4_MASK = 7870,
+  PseudoVMFGE_ALT_VFPR64_M8 = 7871,
+  PseudoVMFGE_ALT_VFPR64_M8_MASK = 7872,
+  PseudoVMFGE_VFPR16_M1 = 7873,
+  PseudoVMFGE_VFPR16_M1_MASK = 7874,
+  PseudoVMFGE_VFPR16_M2 = 7875,
+  PseudoVMFGE_VFPR16_M2_MASK = 7876,
+  PseudoVMFGE_VFPR16_M4 = 7877,
+  PseudoVMFGE_VFPR16_M4_MASK = 7878,
+  PseudoVMFGE_VFPR16_M8 = 7879,
+  PseudoVMFGE_VFPR16_M8_MASK = 7880,
+  PseudoVMFGE_VFPR16_MF2 = 7881,
+  PseudoVMFGE_VFPR16_MF2_MASK = 7882,
+  PseudoVMFGE_VFPR16_MF4 = 7883,
+  PseudoVMFGE_VFPR16_MF4_MASK = 7884,
+  PseudoVMFGE_VFPR32_M1 = 7885,
+  PseudoVMFGE_VFPR32_M1_MASK = 7886,
+  PseudoVMFGE_VFPR32_M2 = 7887,
+  PseudoVMFGE_VFPR32_M2_MASK = 7888,
+  PseudoVMFGE_VFPR32_M4 = 7889,
+  PseudoVMFGE_VFPR32_M4_MASK = 7890,
+  PseudoVMFGE_VFPR32_M8 = 7891,
+  PseudoVMFGE_VFPR32_M8_MASK = 7892,
+  PseudoVMFGE_VFPR32_MF2 = 7893,
+  PseudoVMFGE_VFPR32_MF2_MASK = 7894,
+  PseudoVMFGE_VFPR64_M1 = 7895,
+  PseudoVMFGE_VFPR64_M1_MASK = 7896,
+  PseudoVMFGE_VFPR64_M2 = 7897,
+  PseudoVMFGE_VFPR64_M2_MASK = 7898,
+  PseudoVMFGE_VFPR64_M4 = 7899,
+  PseudoVMFGE_VFPR64_M4_MASK = 7900,
+  PseudoVMFGE_VFPR64_M8 = 7901,
+  PseudoVMFGE_VFPR64_M8_MASK = 7902,
+  PseudoVMFGT_ALT_VFPR16_M1 = 7903,
+  PseudoVMFGT_ALT_VFPR16_M1_MASK = 7904,
+  PseudoVMFGT_ALT_VFPR16_M2 = 7905,
+  PseudoVMFGT_ALT_VFPR16_M2_MASK = 7906,
+  PseudoVMFGT_ALT_VFPR16_M4 = 7907,
+  PseudoVMFGT_ALT_VFPR16_M4_MASK = 7908,
+  PseudoVMFGT_ALT_VFPR16_M8 = 7909,
+  PseudoVMFGT_ALT_VFPR16_M8_MASK = 7910,
+  PseudoVMFGT_ALT_VFPR16_MF2 = 7911,
+  PseudoVMFGT_ALT_VFPR16_MF2_MASK = 7912,
+  PseudoVMFGT_ALT_VFPR16_MF4 = 7913,
+  PseudoVMFGT_ALT_VFPR16_MF4_MASK = 7914,
+  PseudoVMFGT_ALT_VFPR32_M1 = 7915,
+  PseudoVMFGT_ALT_VFPR32_M1_MASK = 7916,
+  PseudoVMFGT_ALT_VFPR32_M2 = 7917,
+  PseudoVMFGT_ALT_VFPR32_M2_MASK = 7918,
+  PseudoVMFGT_ALT_VFPR32_M4 = 7919,
+  PseudoVMFGT_ALT_VFPR32_M4_MASK = 7920,
+  PseudoVMFGT_ALT_VFPR32_M8 = 7921,
+  PseudoVMFGT_ALT_VFPR32_M8_MASK = 7922,
+  PseudoVMFGT_ALT_VFPR32_MF2 = 7923,
+  PseudoVMFGT_ALT_VFPR32_MF2_MASK = 7924,
+  PseudoVMFGT_ALT_VFPR64_M1 = 7925,
+  PseudoVMFGT_ALT_VFPR64_M1_MASK = 7926,
+  PseudoVMFGT_ALT_VFPR64_M2 = 7927,
+  PseudoVMFGT_ALT_VFPR64_M2_MASK = 7928,
+  PseudoVMFGT_ALT_VFPR64_M4 = 7929,
+  PseudoVMFGT_ALT_VFPR64_M4_MASK = 7930,
+  PseudoVMFGT_ALT_VFPR64_M8 = 7931,
+  PseudoVMFGT_ALT_VFPR64_M8_MASK = 7932,
+  PseudoVMFGT_VFPR16_M1 = 7933,
+  PseudoVMFGT_VFPR16_M1_MASK = 7934,
+  PseudoVMFGT_VFPR16_M2 = 7935,
+  PseudoVMFGT_VFPR16_M2_MASK = 7936,
+  PseudoVMFGT_VFPR16_M4 = 7937,
+  PseudoVMFGT_VFPR16_M4_MASK = 7938,
+  PseudoVMFGT_VFPR16_M8 = 7939,
+  PseudoVMFGT_VFPR16_M8_MASK = 7940,
+  PseudoVMFGT_VFPR16_MF2 = 7941,
+  PseudoVMFGT_VFPR16_MF2_MASK = 7942,
+  PseudoVMFGT_VFPR16_MF4 = 7943,
+  PseudoVMFGT_VFPR16_MF4_MASK = 7944,
+  PseudoVMFGT_VFPR32_M1 = 7945,
+  PseudoVMFGT_VFPR32_M1_MASK = 7946,
+  PseudoVMFGT_VFPR32_M2 = 7947,
+  PseudoVMFGT_VFPR32_M2_MASK = 7948,
+  PseudoVMFGT_VFPR32_M4 = 7949,
+  PseudoVMFGT_VFPR32_M4_MASK = 7950,
+  PseudoVMFGT_VFPR32_M8 = 7951,
+  PseudoVMFGT_VFPR32_M8_MASK = 7952,
+  PseudoVMFGT_VFPR32_MF2 = 7953,
+  PseudoVMFGT_VFPR32_MF2_MASK = 7954,
+  PseudoVMFGT_VFPR64_M1 = 7955,
+  PseudoVMFGT_VFPR64_M1_MASK = 7956,
+  PseudoVMFGT_VFPR64_M2 = 7957,
+  PseudoVMFGT_VFPR64_M2_MASK = 7958,
+  PseudoVMFGT_VFPR64_M4 = 7959,
+  PseudoVMFGT_VFPR64_M4_MASK = 7960,
+  PseudoVMFGT_VFPR64_M8 = 7961,
+  PseudoVMFGT_VFPR64_M8_MASK = 7962,
+  PseudoVMFLE_ALT_VFPR16_M1 = 7963,
+  PseudoVMFLE_ALT_VFPR16_M1_MASK = 7964,
+  PseudoVMFLE_ALT_VFPR16_M2 = 7965,
+  PseudoVMFLE_ALT_VFPR16_M2_MASK = 7966,
+  PseudoVMFLE_ALT_VFPR16_M4 = 7967,
+  PseudoVMFLE_ALT_VFPR16_M4_MASK = 7968,
+  PseudoVMFLE_ALT_VFPR16_M8 = 7969,
+  PseudoVMFLE_ALT_VFPR16_M8_MASK = 7970,
+  PseudoVMFLE_ALT_VFPR16_MF2 = 7971,
+  PseudoVMFLE_ALT_VFPR16_MF2_MASK = 7972,
+  PseudoVMFLE_ALT_VFPR16_MF4 = 7973,
+  PseudoVMFLE_ALT_VFPR16_MF4_MASK = 7974,
+  PseudoVMFLE_ALT_VFPR32_M1 = 7975,
+  PseudoVMFLE_ALT_VFPR32_M1_MASK = 7976,
+  PseudoVMFLE_ALT_VFPR32_M2 = 7977,
+  PseudoVMFLE_ALT_VFPR32_M2_MASK = 7978,
+  PseudoVMFLE_ALT_VFPR32_M4 = 7979,
+  PseudoVMFLE_ALT_VFPR32_M4_MASK = 7980,
+  PseudoVMFLE_ALT_VFPR32_M8 = 7981,
+  PseudoVMFLE_ALT_VFPR32_M8_MASK = 7982,
+  PseudoVMFLE_ALT_VFPR32_MF2 = 7983,
+  PseudoVMFLE_ALT_VFPR32_MF2_MASK = 7984,
+  PseudoVMFLE_ALT_VFPR64_M1 = 7985,
+  PseudoVMFLE_ALT_VFPR64_M1_MASK = 7986,
+  PseudoVMFLE_ALT_VFPR64_M2 = 7987,
+  PseudoVMFLE_ALT_VFPR64_M2_MASK = 7988,
+  PseudoVMFLE_ALT_VFPR64_M4 = 7989,
+  PseudoVMFLE_ALT_VFPR64_M4_MASK = 7990,
+  PseudoVMFLE_ALT_VFPR64_M8 = 7991,
+  PseudoVMFLE_ALT_VFPR64_M8_MASK = 7992,
+  PseudoVMFLE_ALT_VV_M1 = 7993,
+  PseudoVMFLE_ALT_VV_M1_MASK = 7994,
+  PseudoVMFLE_ALT_VV_M2 = 7995,
+  PseudoVMFLE_ALT_VV_M2_MASK = 7996,
+  PseudoVMFLE_ALT_VV_M4 = 7997,
+  PseudoVMFLE_ALT_VV_M4_MASK = 7998,
+  PseudoVMFLE_ALT_VV_M8 = 7999,
+  PseudoVMFLE_ALT_VV_M8_MASK = 8000,
+  PseudoVMFLE_ALT_VV_MF2 = 8001,
+  PseudoVMFLE_ALT_VV_MF2_MASK = 8002,
+  PseudoVMFLE_ALT_VV_MF4 = 8003,
+  PseudoVMFLE_ALT_VV_MF4_MASK = 8004,
+  PseudoVMFLE_VFPR16_M1 = 8005,
+  PseudoVMFLE_VFPR16_M1_MASK = 8006,
+  PseudoVMFLE_VFPR16_M2 = 8007,
+  PseudoVMFLE_VFPR16_M2_MASK = 8008,
+  PseudoVMFLE_VFPR16_M4 = 8009,
+  PseudoVMFLE_VFPR16_M4_MASK = 8010,
+  PseudoVMFLE_VFPR16_M8 = 8011,
+  PseudoVMFLE_VFPR16_M8_MASK = 8012,
+  PseudoVMFLE_VFPR16_MF2 = 8013,
+  PseudoVMFLE_VFPR16_MF2_MASK = 8014,
+  PseudoVMFLE_VFPR16_MF4 = 8015,
+  PseudoVMFLE_VFPR16_MF4_MASK = 8016,
+  PseudoVMFLE_VFPR32_M1 = 8017,
+  PseudoVMFLE_VFPR32_M1_MASK = 8018,
+  PseudoVMFLE_VFPR32_M2 = 8019,
+  PseudoVMFLE_VFPR32_M2_MASK = 8020,
+  PseudoVMFLE_VFPR32_M4 = 8021,
+  PseudoVMFLE_VFPR32_M4_MASK = 8022,
+  PseudoVMFLE_VFPR32_M8 = 8023,
+  PseudoVMFLE_VFPR32_M8_MASK = 8024,
+  PseudoVMFLE_VFPR32_MF2 = 8025,
+  PseudoVMFLE_VFPR32_MF2_MASK = 8026,
+  PseudoVMFLE_VFPR64_M1 = 8027,
+  PseudoVMFLE_VFPR64_M1_MASK = 8028,
+  PseudoVMFLE_VFPR64_M2 = 8029,
+  PseudoVMFLE_VFPR64_M2_MASK = 8030,
+  PseudoVMFLE_VFPR64_M4 = 8031,
+  PseudoVMFLE_VFPR64_M4_MASK = 8032,
+  PseudoVMFLE_VFPR64_M8 = 8033,
+  PseudoVMFLE_VFPR64_M8_MASK = 8034,
+  PseudoVMFLE_VV_M1 = 8035,
+  PseudoVMFLE_VV_M1_MASK = 8036,
+  PseudoVMFLE_VV_M2 = 8037,
+  PseudoVMFLE_VV_M2_MASK = 8038,
+  PseudoVMFLE_VV_M4 = 8039,
+  PseudoVMFLE_VV_M4_MASK = 8040,
+  PseudoVMFLE_VV_M8 = 8041,
+  PseudoVMFLE_VV_M8_MASK = 8042,
+  PseudoVMFLE_VV_MF2 = 8043,
+  PseudoVMFLE_VV_MF2_MASK = 8044,
+  PseudoVMFLE_VV_MF4 = 8045,
+  PseudoVMFLE_VV_MF4_MASK = 8046,
+  PseudoVMFLT_ALT_VFPR16_M1 = 8047,
+  PseudoVMFLT_ALT_VFPR16_M1_MASK = 8048,
+  PseudoVMFLT_ALT_VFPR16_M2 = 8049,
+  PseudoVMFLT_ALT_VFPR16_M2_MASK = 8050,
+  PseudoVMFLT_ALT_VFPR16_M4 = 8051,
+  PseudoVMFLT_ALT_VFPR16_M4_MASK = 8052,
+  PseudoVMFLT_ALT_VFPR16_M8 = 8053,
+  PseudoVMFLT_ALT_VFPR16_M8_MASK = 8054,
+  PseudoVMFLT_ALT_VFPR16_MF2 = 8055,
+  PseudoVMFLT_ALT_VFPR16_MF2_MASK = 8056,
+  PseudoVMFLT_ALT_VFPR16_MF4 = 8057,
+  PseudoVMFLT_ALT_VFPR16_MF4_MASK = 8058,
+  PseudoVMFLT_ALT_VFPR32_M1 = 8059,
+  PseudoVMFLT_ALT_VFPR32_M1_MASK = 8060,
+  PseudoVMFLT_ALT_VFPR32_M2 = 8061,
+  PseudoVMFLT_ALT_VFPR32_M2_MASK = 8062,
+  PseudoVMFLT_ALT_VFPR32_M4 = 8063,
+  PseudoVMFLT_ALT_VFPR32_M4_MASK = 8064,
+  PseudoVMFLT_ALT_VFPR32_M8 = 8065,
+  PseudoVMFLT_ALT_VFPR32_M8_MASK = 8066,
+  PseudoVMFLT_ALT_VFPR32_MF2 = 8067,
+  PseudoVMFLT_ALT_VFPR32_MF2_MASK = 8068,
+  PseudoVMFLT_ALT_VFPR64_M1 = 8069,
+  PseudoVMFLT_ALT_VFPR64_M1_MASK = 8070,
+  PseudoVMFLT_ALT_VFPR64_M2 = 8071,
+  PseudoVMFLT_ALT_VFPR64_M2_MASK = 8072,
+  PseudoVMFLT_ALT_VFPR64_M4 = 8073,
+  PseudoVMFLT_ALT_VFPR64_M4_MASK = 8074,
+  PseudoVMFLT_ALT_VFPR64_M8 = 8075,
+  PseudoVMFLT_ALT_VFPR64_M8_MASK = 8076,
+  PseudoVMFLT_ALT_VV_M1 = 8077,
+  PseudoVMFLT_ALT_VV_M1_MASK = 8078,
+  PseudoVMFLT_ALT_VV_M2 = 8079,
+  PseudoVMFLT_ALT_VV_M2_MASK = 8080,
+  PseudoVMFLT_ALT_VV_M4 = 8081,
+  PseudoVMFLT_ALT_VV_M4_MASK = 8082,
+  PseudoVMFLT_ALT_VV_M8 = 8083,
+  PseudoVMFLT_ALT_VV_M8_MASK = 8084,
+  PseudoVMFLT_ALT_VV_MF2 = 8085,
+  PseudoVMFLT_ALT_VV_MF2_MASK = 8086,
+  PseudoVMFLT_ALT_VV_MF4 = 8087,
+  PseudoVMFLT_ALT_VV_MF4_MASK = 8088,
+  PseudoVMFLT_VFPR16_M1 = 8089,
+  PseudoVMFLT_VFPR16_M1_MASK = 8090,
+  PseudoVMFLT_VFPR16_M2 = 8091,
+  PseudoVMFLT_VFPR16_M2_MASK = 8092,
+  PseudoVMFLT_VFPR16_M4 = 8093,
+  PseudoVMFLT_VFPR16_M4_MASK = 8094,
+  PseudoVMFLT_VFPR16_M8 = 8095,
+  PseudoVMFLT_VFPR16_M8_MASK = 8096,
+  PseudoVMFLT_VFPR16_MF2 = 8097,
+  PseudoVMFLT_VFPR16_MF2_MASK = 8098,
+  PseudoVMFLT_VFPR16_MF4 = 8099,
+  PseudoVMFLT_VFPR16_MF4_MASK = 8100,
+  PseudoVMFLT_VFPR32_M1 = 8101,
+  PseudoVMFLT_VFPR32_M1_MASK = 8102,
+  PseudoVMFLT_VFPR32_M2 = 8103,
+  PseudoVMFLT_VFPR32_M2_MASK = 8104,
+  PseudoVMFLT_VFPR32_M4 = 8105,
+  PseudoVMFLT_VFPR32_M4_MASK = 8106,
+  PseudoVMFLT_VFPR32_M8 = 8107,
+  PseudoVMFLT_VFPR32_M8_MASK = 8108,
+  PseudoVMFLT_VFPR32_MF2 = 8109,
+  PseudoVMFLT_VFPR32_MF2_MASK = 8110,
+  PseudoVMFLT_VFPR64_M1 = 8111,
+  PseudoVMFLT_VFPR64_M1_MASK = 8112,
+  PseudoVMFLT_VFPR64_M2 = 8113,
+  PseudoVMFLT_VFPR64_M2_MASK = 8114,
+  PseudoVMFLT_VFPR64_M4 = 8115,
+  PseudoVMFLT_VFPR64_M4_MASK = 8116,
+  PseudoVMFLT_VFPR64_M8 = 8117,
+  PseudoVMFLT_VFPR64_M8_MASK = 8118,
+  PseudoVMFLT_VV_M1 = 8119,
+  PseudoVMFLT_VV_M1_MASK = 8120,
+  PseudoVMFLT_VV_M2 = 8121,
+  PseudoVMFLT_VV_M2_MASK = 8122,
+  PseudoVMFLT_VV_M4 = 8123,
+  PseudoVMFLT_VV_M4_MASK = 8124,
+  PseudoVMFLT_VV_M8 = 8125,
+  PseudoVMFLT_VV_M8_MASK = 8126,
+  PseudoVMFLT_VV_MF2 = 8127,
+  PseudoVMFLT_VV_MF2_MASK = 8128,
+  PseudoVMFLT_VV_MF4 = 8129,
+  PseudoVMFLT_VV_MF4_MASK = 8130,
+  PseudoVMFNE_ALT_VFPR16_M1 = 8131,
+  PseudoVMFNE_ALT_VFPR16_M1_MASK = 8132,
+  PseudoVMFNE_ALT_VFPR16_M2 = 8133,
+  PseudoVMFNE_ALT_VFPR16_M2_MASK = 8134,
+  PseudoVMFNE_ALT_VFPR16_M4 = 8135,
+  PseudoVMFNE_ALT_VFPR16_M4_MASK = 8136,
+  PseudoVMFNE_ALT_VFPR16_M8 = 8137,
+  PseudoVMFNE_ALT_VFPR16_M8_MASK = 8138,
+  PseudoVMFNE_ALT_VFPR16_MF2 = 8139,
+  PseudoVMFNE_ALT_VFPR16_MF2_MASK = 8140,
+  PseudoVMFNE_ALT_VFPR16_MF4 = 8141,
+  PseudoVMFNE_ALT_VFPR16_MF4_MASK = 8142,
+  PseudoVMFNE_ALT_VFPR32_M1 = 8143,
+  PseudoVMFNE_ALT_VFPR32_M1_MASK = 8144,
+  PseudoVMFNE_ALT_VFPR32_M2 = 8145,
+  PseudoVMFNE_ALT_VFPR32_M2_MASK = 8146,
+  PseudoVMFNE_ALT_VFPR32_M4 = 8147,
+  PseudoVMFNE_ALT_VFPR32_M4_MASK = 8148,
+  PseudoVMFNE_ALT_VFPR32_M8 = 8149,
+  PseudoVMFNE_ALT_VFPR32_M8_MASK = 8150,
+  PseudoVMFNE_ALT_VFPR32_MF2 = 8151,
+  PseudoVMFNE_ALT_VFPR32_MF2_MASK = 8152,
+  PseudoVMFNE_ALT_VFPR64_M1 = 8153,
+  PseudoVMFNE_ALT_VFPR64_M1_MASK = 8154,
+  PseudoVMFNE_ALT_VFPR64_M2 = 8155,
+  PseudoVMFNE_ALT_VFPR64_M2_MASK = 8156,
+  PseudoVMFNE_ALT_VFPR64_M4 = 8157,
+  PseudoVMFNE_ALT_VFPR64_M4_MASK = 8158,
+  PseudoVMFNE_ALT_VFPR64_M8 = 8159,
+  PseudoVMFNE_ALT_VFPR64_M8_MASK = 8160,
+  PseudoVMFNE_ALT_VV_M1 = 8161,
+  PseudoVMFNE_ALT_VV_M1_MASK = 8162,
+  PseudoVMFNE_ALT_VV_M2 = 8163,
+  PseudoVMFNE_ALT_VV_M2_MASK = 8164,
+  PseudoVMFNE_ALT_VV_M4 = 8165,
+  PseudoVMFNE_ALT_VV_M4_MASK = 8166,
+  PseudoVMFNE_ALT_VV_M8 = 8167,
+  PseudoVMFNE_ALT_VV_M8_MASK = 8168,
+  PseudoVMFNE_ALT_VV_MF2 = 8169,
+  PseudoVMFNE_ALT_VV_MF2_MASK = 8170,
+  PseudoVMFNE_ALT_VV_MF4 = 8171,
+  PseudoVMFNE_ALT_VV_MF4_MASK = 8172,
+  PseudoVMFNE_VFPR16_M1 = 8173,
+  PseudoVMFNE_VFPR16_M1_MASK = 8174,
+  PseudoVMFNE_VFPR16_M2 = 8175,
+  PseudoVMFNE_VFPR16_M2_MASK = 8176,
+  PseudoVMFNE_VFPR16_M4 = 8177,
+  PseudoVMFNE_VFPR16_M4_MASK = 8178,
+  PseudoVMFNE_VFPR16_M8 = 8179,
+  PseudoVMFNE_VFPR16_M8_MASK = 8180,
+  PseudoVMFNE_VFPR16_MF2 = 8181,
+  PseudoVMFNE_VFPR16_MF2_MASK = 8182,
+  PseudoVMFNE_VFPR16_MF4 = 8183,
+  PseudoVMFNE_VFPR16_MF4_MASK = 8184,
+  PseudoVMFNE_VFPR32_M1 = 8185,
+  PseudoVMFNE_VFPR32_M1_MASK = 8186,
+  PseudoVMFNE_VFPR32_M2 = 8187,
+  PseudoVMFNE_VFPR32_M2_MASK = 8188,
+  PseudoVMFNE_VFPR32_M4 = 8189,
+  PseudoVMFNE_VFPR32_M4_MASK = 8190,
+  PseudoVMFNE_VFPR32_M8 = 8191,
+  PseudoVMFNE_VFPR32_M8_MASK = 8192,
+  PseudoVMFNE_VFPR32_MF2 = 8193,
+  PseudoVMFNE_VFPR32_MF2_MASK = 8194,
+  PseudoVMFNE_VFPR64_M1 = 8195,
+  PseudoVMFNE_VFPR64_M1_MASK = 8196,
+  PseudoVMFNE_VFPR64_M2 = 8197,
+  PseudoVMFNE_VFPR64_M2_MASK = 8198,
+  PseudoVMFNE_VFPR64_M4 = 8199,
+  PseudoVMFNE_VFPR64_M4_MASK = 8200,
+  PseudoVMFNE_VFPR64_M8 = 8201,
+  PseudoVMFNE_VFPR64_M8_MASK = 8202,
+  PseudoVMFNE_VV_M1 = 8203,
+  PseudoVMFNE_VV_M1_MASK = 8204,
+  PseudoVMFNE_VV_M2 = 8205,
+  PseudoVMFNE_VV_M2_MASK = 8206,
+  PseudoVMFNE_VV_M4 = 8207,
+  PseudoVMFNE_VV_M4_MASK = 8208,
+  PseudoVMFNE_VV_M8 = 8209,
+  PseudoVMFNE_VV_M8_MASK = 8210,
+  PseudoVMFNE_VV_MF2 = 8211,
+  PseudoVMFNE_VV_MF2_MASK = 8212,
+  PseudoVMFNE_VV_MF4 = 8213,
+  PseudoVMFNE_VV_MF4_MASK = 8214,
+  PseudoVMINU_VV_M1 = 8215,
+  PseudoVMINU_VV_M1_MASK = 8216,
+  PseudoVMINU_VV_M2 = 8217,
+  PseudoVMINU_VV_M2_MASK = 8218,
+  PseudoVMINU_VV_M4 = 8219,
+  PseudoVMINU_VV_M4_MASK = 8220,
+  PseudoVMINU_VV_M8 = 8221,
+  PseudoVMINU_VV_M8_MASK = 8222,
+  PseudoVMINU_VV_MF2 = 8223,
+  PseudoVMINU_VV_MF2_MASK = 8224,
+  PseudoVMINU_VV_MF4 = 8225,
+  PseudoVMINU_VV_MF4_MASK = 8226,
+  PseudoVMINU_VV_MF8 = 8227,
+  PseudoVMINU_VV_MF8_MASK = 8228,
+  PseudoVMINU_VX_M1 = 8229,
+  PseudoVMINU_VX_M1_MASK = 8230,
+  PseudoVMINU_VX_M2 = 8231,
+  PseudoVMINU_VX_M2_MASK = 8232,
+  PseudoVMINU_VX_M4 = 8233,
+  PseudoVMINU_VX_M4_MASK = 8234,
+  PseudoVMINU_VX_M8 = 8235,
+  PseudoVMINU_VX_M8_MASK = 8236,
+  PseudoVMINU_VX_MF2 = 8237,
+  PseudoVMINU_VX_MF2_MASK = 8238,
+  PseudoVMINU_VX_MF4 = 8239,
+  PseudoVMINU_VX_MF4_MASK = 8240,
+  PseudoVMINU_VX_MF8 = 8241,
+  PseudoVMINU_VX_MF8_MASK = 8242,
+  PseudoVMIN_VV_M1 = 8243,
+  PseudoVMIN_VV_M1_MASK = 8244,
+  PseudoVMIN_VV_M2 = 8245,
+  PseudoVMIN_VV_M2_MASK = 8246,
+  PseudoVMIN_VV_M4 = 8247,
+  PseudoVMIN_VV_M4_MASK = 8248,
+  PseudoVMIN_VV_M8 = 8249,
+  PseudoVMIN_VV_M8_MASK = 8250,
+  PseudoVMIN_VV_MF2 = 8251,
+  PseudoVMIN_VV_MF2_MASK = 8252,
+  PseudoVMIN_VV_MF4 = 8253,
+  PseudoVMIN_VV_MF4_MASK = 8254,
+  PseudoVMIN_VV_MF8 = 8255,
+  PseudoVMIN_VV_MF8_MASK = 8256,
+  PseudoVMIN_VX_M1 = 8257,
+  PseudoVMIN_VX_M1_MASK = 8258,
+  PseudoVMIN_VX_M2 = 8259,
+  PseudoVMIN_VX_M2_MASK = 8260,
+  PseudoVMIN_VX_M4 = 8261,
+  PseudoVMIN_VX_M4_MASK = 8262,
+  PseudoVMIN_VX_M8 = 8263,
+  PseudoVMIN_VX_M8_MASK = 8264,
+  PseudoVMIN_VX_MF2 = 8265,
+  PseudoVMIN_VX_MF2_MASK = 8266,
+  PseudoVMIN_VX_MF4 = 8267,
+  PseudoVMIN_VX_MF4_MASK = 8268,
+  PseudoVMIN_VX_MF8 = 8269,
+  PseudoVMIN_VX_MF8_MASK = 8270,
+  PseudoVMNAND_MM_B1 = 8271,
+  PseudoVMNAND_MM_B16 = 8272,
+  PseudoVMNAND_MM_B2 = 8273,
+  PseudoVMNAND_MM_B32 = 8274,
+  PseudoVMNAND_MM_B4 = 8275,
+  PseudoVMNAND_MM_B64 = 8276,
+  PseudoVMNAND_MM_B8 = 8277,
+  PseudoVMNOR_MM_B1 = 8278,
+  PseudoVMNOR_MM_B16 = 8279,
+  PseudoVMNOR_MM_B2 = 8280,
+  PseudoVMNOR_MM_B32 = 8281,
+  PseudoVMNOR_MM_B4 = 8282,
+  PseudoVMNOR_MM_B64 = 8283,
+  PseudoVMNOR_MM_B8 = 8284,
+  PseudoVMORN_MM_B1 = 8285,
+  PseudoVMORN_MM_B16 = 8286,
+  PseudoVMORN_MM_B2 = 8287,
+  PseudoVMORN_MM_B32 = 8288,
+  PseudoVMORN_MM_B4 = 8289,
+  PseudoVMORN_MM_B64 = 8290,
+  PseudoVMORN_MM_B8 = 8291,
+  PseudoVMOR_MM_B1 = 8292,
+  PseudoVMOR_MM_B16 = 8293,
+  PseudoVMOR_MM_B2 = 8294,
+  PseudoVMOR_MM_B32 = 8295,
+  PseudoVMOR_MM_B4 = 8296,
+  PseudoVMOR_MM_B64 = 8297,
+  PseudoVMOR_MM_B8 = 8298,
+  PseudoVMSBC_VVM_M1 = 8299,
+  PseudoVMSBC_VVM_M2 = 8300,
+  PseudoVMSBC_VVM_M4 = 8301,
+  PseudoVMSBC_VVM_M8 = 8302,
+  PseudoVMSBC_VVM_MF2 = 8303,
+  PseudoVMSBC_VVM_MF4 = 8304,
+  PseudoVMSBC_VVM_MF8 = 8305,
+  PseudoVMSBC_VV_M1 = 8306,
+  PseudoVMSBC_VV_M2 = 8307,
+  PseudoVMSBC_VV_M4 = 8308,
+  PseudoVMSBC_VV_M8 = 8309,
+  PseudoVMSBC_VV_MF2 = 8310,
+  PseudoVMSBC_VV_MF4 = 8311,
+  PseudoVMSBC_VV_MF8 = 8312,
+  PseudoVMSBC_VXM_M1 = 8313,
+  PseudoVMSBC_VXM_M2 = 8314,
+  PseudoVMSBC_VXM_M4 = 8315,
+  PseudoVMSBC_VXM_M8 = 8316,
+  PseudoVMSBC_VXM_MF2 = 8317,
+  PseudoVMSBC_VXM_MF4 = 8318,
+  PseudoVMSBC_VXM_MF8 = 8319,
+  PseudoVMSBC_VX_M1 = 8320,
+  PseudoVMSBC_VX_M2 = 8321,
+  PseudoVMSBC_VX_M4 = 8322,
+  PseudoVMSBC_VX_M8 = 8323,
+  PseudoVMSBC_VX_MF2 = 8324,
+  PseudoVMSBC_VX_MF4 = 8325,
+  PseudoVMSBC_VX_MF8 = 8326,
+  PseudoVMSBF_M_B1 = 8327,
+  PseudoVMSBF_M_B16 = 8328,
+  PseudoVMSBF_M_B16_MASK = 8329,
+  PseudoVMSBF_M_B1_MASK = 8330,
+  PseudoVMSBF_M_B2 = 8331,
+  PseudoVMSBF_M_B2_MASK = 8332,
+  PseudoVMSBF_M_B32 = 8333,
+  PseudoVMSBF_M_B32_MASK = 8334,
+  PseudoVMSBF_M_B4 = 8335,
+  PseudoVMSBF_M_B4_MASK = 8336,
+  PseudoVMSBF_M_B64 = 8337,
+  PseudoVMSBF_M_B64_MASK = 8338,
+  PseudoVMSBF_M_B8 = 8339,
+  PseudoVMSBF_M_B8_MASK = 8340,
+  PseudoVMSEQ_VI_M1 = 8341,
+  PseudoVMSEQ_VI_M1_MASK = 8342,
+  PseudoVMSEQ_VI_M2 = 8343,
+  PseudoVMSEQ_VI_M2_MASK = 8344,
+  PseudoVMSEQ_VI_M4 = 8345,
+  PseudoVMSEQ_VI_M4_MASK = 8346,
+  PseudoVMSEQ_VI_M8 = 8347,
+  PseudoVMSEQ_VI_M8_MASK = 8348,
+  PseudoVMSEQ_VI_MF2 = 8349,
+  PseudoVMSEQ_VI_MF2_MASK = 8350,
+  PseudoVMSEQ_VI_MF4 = 8351,
+  PseudoVMSEQ_VI_MF4_MASK = 8352,
+  PseudoVMSEQ_VI_MF8 = 8353,
+  PseudoVMSEQ_VI_MF8_MASK = 8354,
+  PseudoVMSEQ_VV_M1 = 8355,
+  PseudoVMSEQ_VV_M1_MASK = 8356,
+  PseudoVMSEQ_VV_M2 = 8357,
+  PseudoVMSEQ_VV_M2_MASK = 8358,
+  PseudoVMSEQ_VV_M4 = 8359,
+  PseudoVMSEQ_VV_M4_MASK = 8360,
+  PseudoVMSEQ_VV_M8 = 8361,
+  PseudoVMSEQ_VV_M8_MASK = 8362,
+  PseudoVMSEQ_VV_MF2 = 8363,
+  PseudoVMSEQ_VV_MF2_MASK = 8364,
+  PseudoVMSEQ_VV_MF4 = 8365,
+  PseudoVMSEQ_VV_MF4_MASK = 8366,
+  PseudoVMSEQ_VV_MF8 = 8367,
+  PseudoVMSEQ_VV_MF8_MASK = 8368,
+  PseudoVMSEQ_VX_M1 = 8369,
+  PseudoVMSEQ_VX_M1_MASK = 8370,
+  PseudoVMSEQ_VX_M2 = 8371,
+  PseudoVMSEQ_VX_M2_MASK = 8372,
+  PseudoVMSEQ_VX_M4 = 8373,
+  PseudoVMSEQ_VX_M4_MASK = 8374,
+  PseudoVMSEQ_VX_M8 = 8375,
+  PseudoVMSEQ_VX_M8_MASK = 8376,
+  PseudoVMSEQ_VX_MF2 = 8377,
+  PseudoVMSEQ_VX_MF2_MASK = 8378,
+  PseudoVMSEQ_VX_MF4 = 8379,
+  PseudoVMSEQ_VX_MF4_MASK = 8380,
+  PseudoVMSEQ_VX_MF8 = 8381,
+  PseudoVMSEQ_VX_MF8_MASK = 8382,
+  PseudoVMSET_M_B1 = 8383,
+  PseudoVMSET_M_B16 = 8384,
+  PseudoVMSET_M_B2 = 8385,
+  PseudoVMSET_M_B32 = 8386,
+  PseudoVMSET_M_B4 = 8387,
+  PseudoVMSET_M_B64 = 8388,
+  PseudoVMSET_M_B8 = 8389,
+  PseudoVMSGEU_VI = 8390,
+  PseudoVMSGEU_VX = 8391,
+  PseudoVMSGEU_VX_M = 8392,
+  PseudoVMSGEU_VX_M_T = 8393,
+  PseudoVMSGE_VI = 8394,
+  PseudoVMSGE_VX = 8395,
+  PseudoVMSGE_VX_M = 8396,
+  PseudoVMSGE_VX_M_T = 8397,
+  PseudoVMSGTU_VI_M1 = 8398,
+  PseudoVMSGTU_VI_M1_MASK = 8399,
+  PseudoVMSGTU_VI_M2 = 8400,
+  PseudoVMSGTU_VI_M2_MASK = 8401,
+  PseudoVMSGTU_VI_M4 = 8402,
+  PseudoVMSGTU_VI_M4_MASK = 8403,
+  PseudoVMSGTU_VI_M8 = 8404,
+  PseudoVMSGTU_VI_M8_MASK = 8405,
+  PseudoVMSGTU_VI_MF2 = 8406,
+  PseudoVMSGTU_VI_MF2_MASK = 8407,
+  PseudoVMSGTU_VI_MF4 = 8408,
+  PseudoVMSGTU_VI_MF4_MASK = 8409,
+  PseudoVMSGTU_VI_MF8 = 8410,
+  PseudoVMSGTU_VI_MF8_MASK = 8411,
+  PseudoVMSGTU_VX_M1 = 8412,
+  PseudoVMSGTU_VX_M1_MASK = 8413,
+  PseudoVMSGTU_VX_M2 = 8414,
+  PseudoVMSGTU_VX_M2_MASK = 8415,
+  PseudoVMSGTU_VX_M4 = 8416,
+  PseudoVMSGTU_VX_M4_MASK = 8417,
+  PseudoVMSGTU_VX_M8 = 8418,
+  PseudoVMSGTU_VX_M8_MASK = 8419,
+  PseudoVMSGTU_VX_MF2 = 8420,
+  PseudoVMSGTU_VX_MF2_MASK = 8421,
+  PseudoVMSGTU_VX_MF4 = 8422,
+  PseudoVMSGTU_VX_MF4_MASK = 8423,
+  PseudoVMSGTU_VX_MF8 = 8424,
+  PseudoVMSGTU_VX_MF8_MASK = 8425,
+  PseudoVMSGT_VI_M1 = 8426,
+  PseudoVMSGT_VI_M1_MASK = 8427,
+  PseudoVMSGT_VI_M2 = 8428,
+  PseudoVMSGT_VI_M2_MASK = 8429,
+  PseudoVMSGT_VI_M4 = 8430,
+  PseudoVMSGT_VI_M4_MASK = 8431,
+  PseudoVMSGT_VI_M8 = 8432,
+  PseudoVMSGT_VI_M8_MASK = 8433,
+  PseudoVMSGT_VI_MF2 = 8434,
+  PseudoVMSGT_VI_MF2_MASK = 8435,
+  PseudoVMSGT_VI_MF4 = 8436,
+  PseudoVMSGT_VI_MF4_MASK = 8437,
+  PseudoVMSGT_VI_MF8 = 8438,
+  PseudoVMSGT_VI_MF8_MASK = 8439,
+  PseudoVMSGT_VX_M1 = 8440,
+  PseudoVMSGT_VX_M1_MASK = 8441,
+  PseudoVMSGT_VX_M2 = 8442,
+  PseudoVMSGT_VX_M2_MASK = 8443,
+  PseudoVMSGT_VX_M4 = 8444,
+  PseudoVMSGT_VX_M4_MASK = 8445,
+  PseudoVMSGT_VX_M8 = 8446,
+  PseudoVMSGT_VX_M8_MASK = 8447,
+  PseudoVMSGT_VX_MF2 = 8448,
+  PseudoVMSGT_VX_MF2_MASK = 8449,
+  PseudoVMSGT_VX_MF4 = 8450,
+  PseudoVMSGT_VX_MF4_MASK = 8451,
+  PseudoVMSGT_VX_MF8 = 8452,
+  PseudoVMSGT_VX_MF8_MASK = 8453,
+  PseudoVMSIF_M_B1 = 8454,
+  PseudoVMSIF_M_B16 = 8455,
+  PseudoVMSIF_M_B16_MASK = 8456,
+  PseudoVMSIF_M_B1_MASK = 8457,
+  PseudoVMSIF_M_B2 = 8458,
+  PseudoVMSIF_M_B2_MASK = 8459,
+  PseudoVMSIF_M_B32 = 8460,
+  PseudoVMSIF_M_B32_MASK = 8461,
+  PseudoVMSIF_M_B4 = 8462,
+  PseudoVMSIF_M_B4_MASK = 8463,
+  PseudoVMSIF_M_B64 = 8464,
+  PseudoVMSIF_M_B64_MASK = 8465,
+  PseudoVMSIF_M_B8 = 8466,
+  PseudoVMSIF_M_B8_MASK = 8467,
+  PseudoVMSLEU_VI_M1 = 8468,
+  PseudoVMSLEU_VI_M1_MASK = 8469,
+  PseudoVMSLEU_VI_M2 = 8470,
+  PseudoVMSLEU_VI_M2_MASK = 8471,
+  PseudoVMSLEU_VI_M4 = 8472,
+  PseudoVMSLEU_VI_M4_MASK = 8473,
+  PseudoVMSLEU_VI_M8 = 8474,
+  PseudoVMSLEU_VI_M8_MASK = 8475,
+  PseudoVMSLEU_VI_MF2 = 8476,
+  PseudoVMSLEU_VI_MF2_MASK = 8477,
+  PseudoVMSLEU_VI_MF4 = 8478,
+  PseudoVMSLEU_VI_MF4_MASK = 8479,
+  PseudoVMSLEU_VI_MF8 = 8480,
+  PseudoVMSLEU_VI_MF8_MASK = 8481,
+  PseudoVMSLEU_VV_M1 = 8482,
+  PseudoVMSLEU_VV_M1_MASK = 8483,
+  PseudoVMSLEU_VV_M2 = 8484,
+  PseudoVMSLEU_VV_M2_MASK = 8485,
+  PseudoVMSLEU_VV_M4 = 8486,
+  PseudoVMSLEU_VV_M4_MASK = 8487,
+  PseudoVMSLEU_VV_M8 = 8488,
+  PseudoVMSLEU_VV_M8_MASK = 8489,
+  PseudoVMSLEU_VV_MF2 = 8490,
+  PseudoVMSLEU_VV_MF2_MASK = 8491,
+  PseudoVMSLEU_VV_MF4 = 8492,
+  PseudoVMSLEU_VV_MF4_MASK = 8493,
+  PseudoVMSLEU_VV_MF8 = 8494,
+  PseudoVMSLEU_VV_MF8_MASK = 8495,
+  PseudoVMSLEU_VX_M1 = 8496,
+  PseudoVMSLEU_VX_M1_MASK = 8497,
+  PseudoVMSLEU_VX_M2 = 8498,
+  PseudoVMSLEU_VX_M2_MASK = 8499,
+  PseudoVMSLEU_VX_M4 = 8500,
+  PseudoVMSLEU_VX_M4_MASK = 8501,
+  PseudoVMSLEU_VX_M8 = 8502,
+  PseudoVMSLEU_VX_M8_MASK = 8503,
+  PseudoVMSLEU_VX_MF2 = 8504,
+  PseudoVMSLEU_VX_MF2_MASK = 8505,
+  PseudoVMSLEU_VX_MF4 = 8506,
+  PseudoVMSLEU_VX_MF4_MASK = 8507,
+  PseudoVMSLEU_VX_MF8 = 8508,
+  PseudoVMSLEU_VX_MF8_MASK = 8509,
+  PseudoVMSLE_VI_M1 = 8510,
+  PseudoVMSLE_VI_M1_MASK = 8511,
+  PseudoVMSLE_VI_M2 = 8512,
+  PseudoVMSLE_VI_M2_MASK = 8513,
+  PseudoVMSLE_VI_M4 = 8514,
+  PseudoVMSLE_VI_M4_MASK = 8515,
+  PseudoVMSLE_VI_M8 = 8516,
+  PseudoVMSLE_VI_M8_MASK = 8517,
+  PseudoVMSLE_VI_MF2 = 8518,
+  PseudoVMSLE_VI_MF2_MASK = 8519,
+  PseudoVMSLE_VI_MF4 = 8520,
+  PseudoVMSLE_VI_MF4_MASK = 8521,
+  PseudoVMSLE_VI_MF8 = 8522,
+  PseudoVMSLE_VI_MF8_MASK = 8523,
+  PseudoVMSLE_VV_M1 = 8524,
+  PseudoVMSLE_VV_M1_MASK = 8525,
+  PseudoVMSLE_VV_M2 = 8526,
+  PseudoVMSLE_VV_M2_MASK = 8527,
+  PseudoVMSLE_VV_M4 = 8528,
+  PseudoVMSLE_VV_M4_MASK = 8529,
+  PseudoVMSLE_VV_M8 = 8530,
+  PseudoVMSLE_VV_M8_MASK = 8531,
+  PseudoVMSLE_VV_MF2 = 8532,
+  PseudoVMSLE_VV_MF2_MASK = 8533,
+  PseudoVMSLE_VV_MF4 = 8534,
+  PseudoVMSLE_VV_MF4_MASK = 8535,
+  PseudoVMSLE_VV_MF8 = 8536,
+  PseudoVMSLE_VV_MF8_MASK = 8537,
+  PseudoVMSLE_VX_M1 = 8538,
+  PseudoVMSLE_VX_M1_MASK = 8539,
+  PseudoVMSLE_VX_M2 = 8540,
+  PseudoVMSLE_VX_M2_MASK = 8541,
+  PseudoVMSLE_VX_M4 = 8542,
+  PseudoVMSLE_VX_M4_MASK = 8543,
+  PseudoVMSLE_VX_M8 = 8544,
+  PseudoVMSLE_VX_M8_MASK = 8545,
+  PseudoVMSLE_VX_MF2 = 8546,
+  PseudoVMSLE_VX_MF2_MASK = 8547,
+  PseudoVMSLE_VX_MF4 = 8548,
+  PseudoVMSLE_VX_MF4_MASK = 8549,
+  PseudoVMSLE_VX_MF8 = 8550,
+  PseudoVMSLE_VX_MF8_MASK = 8551,
+  PseudoVMSLTU_VI = 8552,
+  PseudoVMSLTU_VV_M1 = 8553,
+  PseudoVMSLTU_VV_M1_MASK = 8554,
+  PseudoVMSLTU_VV_M2 = 8555,
+  PseudoVMSLTU_VV_M2_MASK = 8556,
+  PseudoVMSLTU_VV_M4 = 8557,
+  PseudoVMSLTU_VV_M4_MASK = 8558,
+  PseudoVMSLTU_VV_M8 = 8559,
+  PseudoVMSLTU_VV_M8_MASK = 8560,
+  PseudoVMSLTU_VV_MF2 = 8561,
+  PseudoVMSLTU_VV_MF2_MASK = 8562,
+  PseudoVMSLTU_VV_MF4 = 8563,
+  PseudoVMSLTU_VV_MF4_MASK = 8564,
+  PseudoVMSLTU_VV_MF8 = 8565,
+  PseudoVMSLTU_VV_MF8_MASK = 8566,
+  PseudoVMSLTU_VX_M1 = 8567,
+  PseudoVMSLTU_VX_M1_MASK = 8568,
+  PseudoVMSLTU_VX_M2 = 8569,
+  PseudoVMSLTU_VX_M2_MASK = 8570,
+  PseudoVMSLTU_VX_M4 = 8571,
+  PseudoVMSLTU_VX_M4_MASK = 8572,
+  PseudoVMSLTU_VX_M8 = 8573,
+  PseudoVMSLTU_VX_M8_MASK = 8574,
+  PseudoVMSLTU_VX_MF2 = 8575,
+  PseudoVMSLTU_VX_MF2_MASK = 8576,
+  PseudoVMSLTU_VX_MF4 = 8577,
+  PseudoVMSLTU_VX_MF4_MASK = 8578,
+  PseudoVMSLTU_VX_MF8 = 8579,
+  PseudoVMSLTU_VX_MF8_MASK = 8580,
+  PseudoVMSLT_VI = 8581,
+  PseudoVMSLT_VV_M1 = 8582,
+  PseudoVMSLT_VV_M1_MASK = 8583,
+  PseudoVMSLT_VV_M2 = 8584,
+  PseudoVMSLT_VV_M2_MASK = 8585,
+  PseudoVMSLT_VV_M4 = 8586,
+  PseudoVMSLT_VV_M4_MASK = 8587,
+  PseudoVMSLT_VV_M8 = 8588,
+  PseudoVMSLT_VV_M8_MASK = 8589,
+  PseudoVMSLT_VV_MF2 = 8590,
+  PseudoVMSLT_VV_MF2_MASK = 8591,
+  PseudoVMSLT_VV_MF4 = 8592,
+  PseudoVMSLT_VV_MF4_MASK = 8593,
+  PseudoVMSLT_VV_MF8 = 8594,
+  PseudoVMSLT_VV_MF8_MASK = 8595,
+  PseudoVMSLT_VX_M1 = 8596,
+  PseudoVMSLT_VX_M1_MASK = 8597,
+  PseudoVMSLT_VX_M2 = 8598,
+  PseudoVMSLT_VX_M2_MASK = 8599,
+  PseudoVMSLT_VX_M4 = 8600,
+  PseudoVMSLT_VX_M4_MASK = 8601,
+  PseudoVMSLT_VX_M8 = 8602,
+  PseudoVMSLT_VX_M8_MASK = 8603,
+  PseudoVMSLT_VX_MF2 = 8604,
+  PseudoVMSLT_VX_MF2_MASK = 8605,
+  PseudoVMSLT_VX_MF4 = 8606,
+  PseudoVMSLT_VX_MF4_MASK = 8607,
+  PseudoVMSLT_VX_MF8 = 8608,
+  PseudoVMSLT_VX_MF8_MASK = 8609,
+  PseudoVMSNE_VI_M1 = 8610,
+  PseudoVMSNE_VI_M1_MASK = 8611,
+  PseudoVMSNE_VI_M2 = 8612,
+  PseudoVMSNE_VI_M2_MASK = 8613,
+  PseudoVMSNE_VI_M4 = 8614,
+  PseudoVMSNE_VI_M4_MASK = 8615,
+  PseudoVMSNE_VI_M8 = 8616,
+  PseudoVMSNE_VI_M8_MASK = 8617,
+  PseudoVMSNE_VI_MF2 = 8618,
+  PseudoVMSNE_VI_MF2_MASK = 8619,
+  PseudoVMSNE_VI_MF4 = 8620,
+  PseudoVMSNE_VI_MF4_MASK = 8621,
+  PseudoVMSNE_VI_MF8 = 8622,
+  PseudoVMSNE_VI_MF8_MASK = 8623,
+  PseudoVMSNE_VV_M1 = 8624,
+  PseudoVMSNE_VV_M1_MASK = 8625,
+  PseudoVMSNE_VV_M2 = 8626,
+  PseudoVMSNE_VV_M2_MASK = 8627,
+  PseudoVMSNE_VV_M4 = 8628,
+  PseudoVMSNE_VV_M4_MASK = 8629,
+  PseudoVMSNE_VV_M8 = 8630,
+  PseudoVMSNE_VV_M8_MASK = 8631,
+  PseudoVMSNE_VV_MF2 = 8632,
+  PseudoVMSNE_VV_MF2_MASK = 8633,
+  PseudoVMSNE_VV_MF4 = 8634,
+  PseudoVMSNE_VV_MF4_MASK = 8635,
+  PseudoVMSNE_VV_MF8 = 8636,
+  PseudoVMSNE_VV_MF8_MASK = 8637,
+  PseudoVMSNE_VX_M1 = 8638,
+  PseudoVMSNE_VX_M1_MASK = 8639,
+  PseudoVMSNE_VX_M2 = 8640,
+  PseudoVMSNE_VX_M2_MASK = 8641,
+  PseudoVMSNE_VX_M4 = 8642,
+  PseudoVMSNE_VX_M4_MASK = 8643,
+  PseudoVMSNE_VX_M8 = 8644,
+  PseudoVMSNE_VX_M8_MASK = 8645,
+  PseudoVMSNE_VX_MF2 = 8646,
+  PseudoVMSNE_VX_MF2_MASK = 8647,
+  PseudoVMSNE_VX_MF4 = 8648,
+  PseudoVMSNE_VX_MF4_MASK = 8649,
+  PseudoVMSNE_VX_MF8 = 8650,
+  PseudoVMSNE_VX_MF8_MASK = 8651,
+  PseudoVMSOF_M_B1 = 8652,
+  PseudoVMSOF_M_B16 = 8653,
+  PseudoVMSOF_M_B16_MASK = 8654,
+  PseudoVMSOF_M_B1_MASK = 8655,
+  PseudoVMSOF_M_B2 = 8656,
+  PseudoVMSOF_M_B2_MASK = 8657,
+  PseudoVMSOF_M_B32 = 8658,
+  PseudoVMSOF_M_B32_MASK = 8659,
+  PseudoVMSOF_M_B4 = 8660,
+  PseudoVMSOF_M_B4_MASK = 8661,
+  PseudoVMSOF_M_B64 = 8662,
+  PseudoVMSOF_M_B64_MASK = 8663,
+  PseudoVMSOF_M_B8 = 8664,
+  PseudoVMSOF_M_B8_MASK = 8665,
+  PseudoVMULHSU_VV_M1 = 8666,
+  PseudoVMULHSU_VV_M1_MASK = 8667,
+  PseudoVMULHSU_VV_M2 = 8668,
+  PseudoVMULHSU_VV_M2_MASK = 8669,
+  PseudoVMULHSU_VV_M4 = 8670,
+  PseudoVMULHSU_VV_M4_MASK = 8671,
+  PseudoVMULHSU_VV_M8 = 8672,
+  PseudoVMULHSU_VV_M8_MASK = 8673,
+  PseudoVMULHSU_VV_MF2 = 8674,
+  PseudoVMULHSU_VV_MF2_MASK = 8675,
+  PseudoVMULHSU_VV_MF4 = 8676,
+  PseudoVMULHSU_VV_MF4_MASK = 8677,
+  PseudoVMULHSU_VV_MF8 = 8678,
+  PseudoVMULHSU_VV_MF8_MASK = 8679,
+  PseudoVMULHSU_VX_M1 = 8680,
+  PseudoVMULHSU_VX_M1_MASK = 8681,
+  PseudoVMULHSU_VX_M2 = 8682,
+  PseudoVMULHSU_VX_M2_MASK = 8683,
+  PseudoVMULHSU_VX_M4 = 8684,
+  PseudoVMULHSU_VX_M4_MASK = 8685,
+  PseudoVMULHSU_VX_M8 = 8686,
+  PseudoVMULHSU_VX_M8_MASK = 8687,
+  PseudoVMULHSU_VX_MF2 = 8688,
+  PseudoVMULHSU_VX_MF2_MASK = 8689,
+  PseudoVMULHSU_VX_MF4 = 8690,
+  PseudoVMULHSU_VX_MF4_MASK = 8691,
+  PseudoVMULHSU_VX_MF8 = 8692,
+  PseudoVMULHSU_VX_MF8_MASK = 8693,
+  PseudoVMULHU_VV_M1 = 8694,
+  PseudoVMULHU_VV_M1_MASK = 8695,
+  PseudoVMULHU_VV_M2 = 8696,
+  PseudoVMULHU_VV_M2_MASK = 8697,
+  PseudoVMULHU_VV_M4 = 8698,
+  PseudoVMULHU_VV_M4_MASK = 8699,
+  PseudoVMULHU_VV_M8 = 8700,
+  PseudoVMULHU_VV_M8_MASK = 8701,
+  PseudoVMULHU_VV_MF2 = 8702,
+  PseudoVMULHU_VV_MF2_MASK = 8703,
+  PseudoVMULHU_VV_MF4 = 8704,
+  PseudoVMULHU_VV_MF4_MASK = 8705,
+  PseudoVMULHU_VV_MF8 = 8706,
+  PseudoVMULHU_VV_MF8_MASK = 8707,
+  PseudoVMULHU_VX_M1 = 8708,
+  PseudoVMULHU_VX_M1_MASK = 8709,
+  PseudoVMULHU_VX_M2 = 8710,
+  PseudoVMULHU_VX_M2_MASK = 8711,
+  PseudoVMULHU_VX_M4 = 8712,
+  PseudoVMULHU_VX_M4_MASK = 8713,
+  PseudoVMULHU_VX_M8 = 8714,
+  PseudoVMULHU_VX_M8_MASK = 8715,
+  PseudoVMULHU_VX_MF2 = 8716,
+  PseudoVMULHU_VX_MF2_MASK = 8717,
+  PseudoVMULHU_VX_MF4 = 8718,
+  PseudoVMULHU_VX_MF4_MASK = 8719,
+  PseudoVMULHU_VX_MF8 = 8720,
+  PseudoVMULHU_VX_MF8_MASK = 8721,
+  PseudoVMULH_VV_M1 = 8722,
+  PseudoVMULH_VV_M1_MASK = 8723,
+  PseudoVMULH_VV_M2 = 8724,
+  PseudoVMULH_VV_M2_MASK = 8725,
+  PseudoVMULH_VV_M4 = 8726,
+  PseudoVMULH_VV_M4_MASK = 8727,
+  PseudoVMULH_VV_M8 = 8728,
+  PseudoVMULH_VV_M8_MASK = 8729,
+  PseudoVMULH_VV_MF2 = 8730,
+  PseudoVMULH_VV_MF2_MASK = 8731,
+  PseudoVMULH_VV_MF4 = 8732,
+  PseudoVMULH_VV_MF4_MASK = 8733,
+  PseudoVMULH_VV_MF8 = 8734,
+  PseudoVMULH_VV_MF8_MASK = 8735,
+  PseudoVMULH_VX_M1 = 8736,
+  PseudoVMULH_VX_M1_MASK = 8737,
+  PseudoVMULH_VX_M2 = 8738,
+  PseudoVMULH_VX_M2_MASK = 8739,
+  PseudoVMULH_VX_M4 = 8740,
+  PseudoVMULH_VX_M4_MASK = 8741,
+  PseudoVMULH_VX_M8 = 8742,
+  PseudoVMULH_VX_M8_MASK = 8743,
+  PseudoVMULH_VX_MF2 = 8744,
+  PseudoVMULH_VX_MF2_MASK = 8745,
+  PseudoVMULH_VX_MF4 = 8746,
+  PseudoVMULH_VX_MF4_MASK = 8747,
+  PseudoVMULH_VX_MF8 = 8748,
+  PseudoVMULH_VX_MF8_MASK = 8749,
+  PseudoVMUL_VV_M1 = 8750,
+  PseudoVMUL_VV_M1_MASK = 8751,
+  PseudoVMUL_VV_M2 = 8752,
+  PseudoVMUL_VV_M2_MASK = 8753,
+  PseudoVMUL_VV_M4 = 8754,
+  PseudoVMUL_VV_M4_MASK = 8755,
+  PseudoVMUL_VV_M8 = 8756,
+  PseudoVMUL_VV_M8_MASK = 8757,
+  PseudoVMUL_VV_MF2 = 8758,
+  PseudoVMUL_VV_MF2_MASK = 8759,
+  PseudoVMUL_VV_MF4 = 8760,
+  PseudoVMUL_VV_MF4_MASK = 8761,
+  PseudoVMUL_VV_MF8 = 8762,
+  PseudoVMUL_VV_MF8_MASK = 8763,
+  PseudoVMUL_VX_M1 = 8764,
+  PseudoVMUL_VX_M1_MASK = 8765,
+  PseudoVMUL_VX_M2 = 8766,
+  PseudoVMUL_VX_M2_MASK = 8767,
+  PseudoVMUL_VX_M4 = 8768,
+  PseudoVMUL_VX_M4_MASK = 8769,
+  PseudoVMUL_VX_M8 = 8770,
+  PseudoVMUL_VX_M8_MASK = 8771,
+  PseudoVMUL_VX_MF2 = 8772,
+  PseudoVMUL_VX_MF2_MASK = 8773,
+  PseudoVMUL_VX_MF4 = 8774,
+  PseudoVMUL_VX_MF4_MASK = 8775,
+  PseudoVMUL_VX_MF8 = 8776,
+  PseudoVMUL_VX_MF8_MASK = 8777,
+  PseudoVMV_S_X = 8778,
+  PseudoVMV_V_I_M1 = 8779,
+  PseudoVMV_V_I_M2 = 8780,
+  PseudoVMV_V_I_M4 = 8781,
+  PseudoVMV_V_I_M8 = 8782,
+  PseudoVMV_V_I_MF2 = 8783,
+  PseudoVMV_V_I_MF4 = 8784,
+  PseudoVMV_V_I_MF8 = 8785,
+  PseudoVMV_V_V_M1 = 8786,
+  PseudoVMV_V_V_M2 = 8787,
+  PseudoVMV_V_V_M4 = 8788,
+  PseudoVMV_V_V_M8 = 8789,
+  PseudoVMV_V_V_MF2 = 8790,
+  PseudoVMV_V_V_MF4 = 8791,
+  PseudoVMV_V_V_MF8 = 8792,
+  PseudoVMV_V_X_M1 = 8793,
+  PseudoVMV_V_X_M2 = 8794,
+  PseudoVMV_V_X_M4 = 8795,
+  PseudoVMV_V_X_M8 = 8796,
+  PseudoVMV_V_X_MF2 = 8797,
+  PseudoVMV_V_X_MF4 = 8798,
+  PseudoVMV_V_X_MF8 = 8799,
+  PseudoVMV_X_S = 8800,
+  PseudoVMXNOR_MM_B1 = 8801,
+  PseudoVMXNOR_MM_B16 = 8802,
+  PseudoVMXNOR_MM_B2 = 8803,
+  PseudoVMXNOR_MM_B32 = 8804,
+  PseudoVMXNOR_MM_B4 = 8805,
+  PseudoVMXNOR_MM_B64 = 8806,
+  PseudoVMXNOR_MM_B8 = 8807,
+  PseudoVMXOR_MM_B1 = 8808,
+  PseudoVMXOR_MM_B16 = 8809,
+  PseudoVMXOR_MM_B2 = 8810,
+  PseudoVMXOR_MM_B32 = 8811,
+  PseudoVMXOR_MM_B4 = 8812,
+  PseudoVMXOR_MM_B64 = 8813,
+  PseudoVMXOR_MM_B8 = 8814,
+  PseudoVNCLIPU_WI_M1 = 8815,
+  PseudoVNCLIPU_WI_M1_MASK = 8816,
+  PseudoVNCLIPU_WI_M2 = 8817,
+  PseudoVNCLIPU_WI_M2_MASK = 8818,
+  PseudoVNCLIPU_WI_M4 = 8819,
+  PseudoVNCLIPU_WI_M4_MASK = 8820,
+  PseudoVNCLIPU_WI_MF2 = 8821,
+  PseudoVNCLIPU_WI_MF2_MASK = 8822,
+  PseudoVNCLIPU_WI_MF4 = 8823,
+  PseudoVNCLIPU_WI_MF4_MASK = 8824,
+  PseudoVNCLIPU_WI_MF8 = 8825,
+  PseudoVNCLIPU_WI_MF8_MASK = 8826,
+  PseudoVNCLIPU_WV_M1 = 8827,
+  PseudoVNCLIPU_WV_M1_MASK = 8828,
+  PseudoVNCLIPU_WV_M2 = 8829,
+  PseudoVNCLIPU_WV_M2_MASK = 8830,
+  PseudoVNCLIPU_WV_M4 = 8831,
+  PseudoVNCLIPU_WV_M4_MASK = 8832,
+  PseudoVNCLIPU_WV_MF2 = 8833,
+  PseudoVNCLIPU_WV_MF2_MASK = 8834,
+  PseudoVNCLIPU_WV_MF4 = 8835,
+  PseudoVNCLIPU_WV_MF4_MASK = 8836,
+  PseudoVNCLIPU_WV_MF8 = 8837,
+  PseudoVNCLIPU_WV_MF8_MASK = 8838,
+  PseudoVNCLIPU_WX_M1 = 8839,
+  PseudoVNCLIPU_WX_M1_MASK = 8840,
+  PseudoVNCLIPU_WX_M2 = 8841,
+  PseudoVNCLIPU_WX_M2_MASK = 8842,
+  PseudoVNCLIPU_WX_M4 = 8843,
+  PseudoVNCLIPU_WX_M4_MASK = 8844,
+  PseudoVNCLIPU_WX_MF2 = 8845,
+  PseudoVNCLIPU_WX_MF2_MASK = 8846,
+  PseudoVNCLIPU_WX_MF4 = 8847,
+  PseudoVNCLIPU_WX_MF4_MASK = 8848,
+  PseudoVNCLIPU_WX_MF8 = 8849,
+  PseudoVNCLIPU_WX_MF8_MASK = 8850,
+  PseudoVNCLIP_WI_M1 = 8851,
+  PseudoVNCLIP_WI_M1_MASK = 8852,
+  PseudoVNCLIP_WI_M2 = 8853,
+  PseudoVNCLIP_WI_M2_MASK = 8854,
+  PseudoVNCLIP_WI_M4 = 8855,
+  PseudoVNCLIP_WI_M4_MASK = 8856,
+  PseudoVNCLIP_WI_MF2 = 8857,
+  PseudoVNCLIP_WI_MF2_MASK = 8858,
+  PseudoVNCLIP_WI_MF4 = 8859,
+  PseudoVNCLIP_WI_MF4_MASK = 8860,
+  PseudoVNCLIP_WI_MF8 = 8861,
+  PseudoVNCLIP_WI_MF8_MASK = 8862,
+  PseudoVNCLIP_WV_M1 = 8863,
+  PseudoVNCLIP_WV_M1_MASK = 8864,
+  PseudoVNCLIP_WV_M2 = 8865,
+  PseudoVNCLIP_WV_M2_MASK = 8866,
+  PseudoVNCLIP_WV_M4 = 8867,
+  PseudoVNCLIP_WV_M4_MASK = 8868,
+  PseudoVNCLIP_WV_MF2 = 8869,
+  PseudoVNCLIP_WV_MF2_MASK = 8870,
+  PseudoVNCLIP_WV_MF4 = 8871,
+  PseudoVNCLIP_WV_MF4_MASK = 8872,
+  PseudoVNCLIP_WV_MF8 = 8873,
+  PseudoVNCLIP_WV_MF8_MASK = 8874,
+  PseudoVNCLIP_WX_M1 = 8875,
+  PseudoVNCLIP_WX_M1_MASK = 8876,
+  PseudoVNCLIP_WX_M2 = 8877,
+  PseudoVNCLIP_WX_M2_MASK = 8878,
+  PseudoVNCLIP_WX_M4 = 8879,
+  PseudoVNCLIP_WX_M4_MASK = 8880,
+  PseudoVNCLIP_WX_MF2 = 8881,
+  PseudoVNCLIP_WX_MF2_MASK = 8882,
+  PseudoVNCLIP_WX_MF4 = 8883,
+  PseudoVNCLIP_WX_MF4_MASK = 8884,
+  PseudoVNCLIP_WX_MF8 = 8885,
+  PseudoVNCLIP_WX_MF8_MASK = 8886,
+  PseudoVNMSAC_VV_M1 = 8887,
+  PseudoVNMSAC_VV_M1_MASK = 8888,
+  PseudoVNMSAC_VV_M2 = 8889,
+  PseudoVNMSAC_VV_M2_MASK = 8890,
+  PseudoVNMSAC_VV_M4 = 8891,
+  PseudoVNMSAC_VV_M4_MASK = 8892,
+  PseudoVNMSAC_VV_M8 = 8893,
+  PseudoVNMSAC_VV_M8_MASK = 8894,
+  PseudoVNMSAC_VV_MF2 = 8895,
+  PseudoVNMSAC_VV_MF2_MASK = 8896,
+  PseudoVNMSAC_VV_MF4 = 8897,
+  PseudoVNMSAC_VV_MF4_MASK = 8898,
+  PseudoVNMSAC_VV_MF8 = 8899,
+  PseudoVNMSAC_VV_MF8_MASK = 8900,
+  PseudoVNMSAC_VX_M1 = 8901,
+  PseudoVNMSAC_VX_M1_MASK = 8902,
+  PseudoVNMSAC_VX_M2 = 8903,
+  PseudoVNMSAC_VX_M2_MASK = 8904,
+  PseudoVNMSAC_VX_M4 = 8905,
+  PseudoVNMSAC_VX_M4_MASK = 8906,
+  PseudoVNMSAC_VX_M8 = 8907,
+  PseudoVNMSAC_VX_M8_MASK = 8908,
+  PseudoVNMSAC_VX_MF2 = 8909,
+  PseudoVNMSAC_VX_MF2_MASK = 8910,
+  PseudoVNMSAC_VX_MF4 = 8911,
+  PseudoVNMSAC_VX_MF4_MASK = 8912,
+  PseudoVNMSAC_VX_MF8 = 8913,
+  PseudoVNMSAC_VX_MF8_MASK = 8914,
+  PseudoVNMSUB_VV_M1 = 8915,
+  PseudoVNMSUB_VV_M1_MASK = 8916,
+  PseudoVNMSUB_VV_M2 = 8917,
+  PseudoVNMSUB_VV_M2_MASK = 8918,
+  PseudoVNMSUB_VV_M4 = 8919,
+  PseudoVNMSUB_VV_M4_MASK = 8920,
+  PseudoVNMSUB_VV_M8 = 8921,
+  PseudoVNMSUB_VV_M8_MASK = 8922,
+  PseudoVNMSUB_VV_MF2 = 8923,
+  PseudoVNMSUB_VV_MF2_MASK = 8924,
+  PseudoVNMSUB_VV_MF4 = 8925,
+  PseudoVNMSUB_VV_MF4_MASK = 8926,
+  PseudoVNMSUB_VV_MF8 = 8927,
+  PseudoVNMSUB_VV_MF8_MASK = 8928,
+  PseudoVNMSUB_VX_M1 = 8929,
+  PseudoVNMSUB_VX_M1_MASK = 8930,
+  PseudoVNMSUB_VX_M2 = 8931,
+  PseudoVNMSUB_VX_M2_MASK = 8932,
+  PseudoVNMSUB_VX_M4 = 8933,
+  PseudoVNMSUB_VX_M4_MASK = 8934,
+  PseudoVNMSUB_VX_M8 = 8935,
+  PseudoVNMSUB_VX_M8_MASK = 8936,
+  PseudoVNMSUB_VX_MF2 = 8937,
+  PseudoVNMSUB_VX_MF2_MASK = 8938,
+  PseudoVNMSUB_VX_MF4 = 8939,
+  PseudoVNMSUB_VX_MF4_MASK = 8940,
+  PseudoVNMSUB_VX_MF8 = 8941,
+  PseudoVNMSUB_VX_MF8_MASK = 8942,
+  PseudoVNSRA_WI_M1 = 8943,
+  PseudoVNSRA_WI_M1_MASK = 8944,
+  PseudoVNSRA_WI_M2 = 8945,
+  PseudoVNSRA_WI_M2_MASK = 8946,
+  PseudoVNSRA_WI_M4 = 8947,
+  PseudoVNSRA_WI_M4_MASK = 8948,
+  PseudoVNSRA_WI_MF2 = 8949,
+  PseudoVNSRA_WI_MF2_MASK = 8950,
+  PseudoVNSRA_WI_MF4 = 8951,
+  PseudoVNSRA_WI_MF4_MASK = 8952,
+  PseudoVNSRA_WI_MF8 = 8953,
+  PseudoVNSRA_WI_MF8_MASK = 8954,
+  PseudoVNSRA_WV_M1 = 8955,
+  PseudoVNSRA_WV_M1_MASK = 8956,
+  PseudoVNSRA_WV_M2 = 8957,
+  PseudoVNSRA_WV_M2_MASK = 8958,
+  PseudoVNSRA_WV_M4 = 8959,
+  PseudoVNSRA_WV_M4_MASK = 8960,
+  PseudoVNSRA_WV_MF2 = 8961,
+  PseudoVNSRA_WV_MF2_MASK = 8962,
+  PseudoVNSRA_WV_MF4 = 8963,
+  PseudoVNSRA_WV_MF4_MASK = 8964,
+  PseudoVNSRA_WV_MF8 = 8965,
+  PseudoVNSRA_WV_MF8_MASK = 8966,
+  PseudoVNSRA_WX_M1 = 8967,
+  PseudoVNSRA_WX_M1_MASK = 8968,
+  PseudoVNSRA_WX_M2 = 8969,
+  PseudoVNSRA_WX_M2_MASK = 8970,
+  PseudoVNSRA_WX_M4 = 8971,
+  PseudoVNSRA_WX_M4_MASK = 8972,
+  PseudoVNSRA_WX_MF2 = 8973,
+  PseudoVNSRA_WX_MF2_MASK = 8974,
+  PseudoVNSRA_WX_MF4 = 8975,
+  PseudoVNSRA_WX_MF4_MASK = 8976,
+  PseudoVNSRA_WX_MF8 = 8977,
+  PseudoVNSRA_WX_MF8_MASK = 8978,
+  PseudoVNSRL_WI_M1 = 8979,
+  PseudoVNSRL_WI_M1_MASK = 8980,
+  PseudoVNSRL_WI_M2 = 8981,
+  PseudoVNSRL_WI_M2_MASK = 8982,
+  PseudoVNSRL_WI_M4 = 8983,
+  PseudoVNSRL_WI_M4_MASK = 8984,
+  PseudoVNSRL_WI_MF2 = 8985,
+  PseudoVNSRL_WI_MF2_MASK = 8986,
+  PseudoVNSRL_WI_MF4 = 8987,
+  PseudoVNSRL_WI_MF4_MASK = 8988,
+  PseudoVNSRL_WI_MF8 = 8989,
+  PseudoVNSRL_WI_MF8_MASK = 8990,
+  PseudoVNSRL_WV_M1 = 8991,
+  PseudoVNSRL_WV_M1_MASK = 8992,
+  PseudoVNSRL_WV_M2 = 8993,
+  PseudoVNSRL_WV_M2_MASK = 8994,
+  PseudoVNSRL_WV_M4 = 8995,
+  PseudoVNSRL_WV_M4_MASK = 8996,
+  PseudoVNSRL_WV_MF2 = 8997,
+  PseudoVNSRL_WV_MF2_MASK = 8998,
+  PseudoVNSRL_WV_MF4 = 8999,
+  PseudoVNSRL_WV_MF4_MASK = 9000,
+  PseudoVNSRL_WV_MF8 = 9001,
+  PseudoVNSRL_WV_MF8_MASK = 9002,
+  PseudoVNSRL_WX_M1 = 9003,
+  PseudoVNSRL_WX_M1_MASK = 9004,
+  PseudoVNSRL_WX_M2 = 9005,
+  PseudoVNSRL_WX_M2_MASK = 9006,
+  PseudoVNSRL_WX_M4 = 9007,
+  PseudoVNSRL_WX_M4_MASK = 9008,
+  PseudoVNSRL_WX_MF2 = 9009,
+  PseudoVNSRL_WX_MF2_MASK = 9010,
+  PseudoVNSRL_WX_MF4 = 9011,
+  PseudoVNSRL_WX_MF4_MASK = 9012,
+  PseudoVNSRL_WX_MF8 = 9013,
+  PseudoVNSRL_WX_MF8_MASK = 9014,
+  PseudoVOR_VI_M1 = 9015,
+  PseudoVOR_VI_M1_MASK = 9016,
+  PseudoVOR_VI_M2 = 9017,
+  PseudoVOR_VI_M2_MASK = 9018,
+  PseudoVOR_VI_M4 = 9019,
+  PseudoVOR_VI_M4_MASK = 9020,
+  PseudoVOR_VI_M8 = 9021,
+  PseudoVOR_VI_M8_MASK = 9022,
+  PseudoVOR_VI_MF2 = 9023,
+  PseudoVOR_VI_MF2_MASK = 9024,
+  PseudoVOR_VI_MF4 = 9025,
+  PseudoVOR_VI_MF4_MASK = 9026,
+  PseudoVOR_VI_MF8 = 9027,
+  PseudoVOR_VI_MF8_MASK = 9028,
+  PseudoVOR_VV_M1 = 9029,
+  PseudoVOR_VV_M1_MASK = 9030,
+  PseudoVOR_VV_M2 = 9031,
+  PseudoVOR_VV_M2_MASK = 9032,
+  PseudoVOR_VV_M4 = 9033,
+  PseudoVOR_VV_M4_MASK = 9034,
+  PseudoVOR_VV_M8 = 9035,
+  PseudoVOR_VV_M8_MASK = 9036,
+  PseudoVOR_VV_MF2 = 9037,
+  PseudoVOR_VV_MF2_MASK = 9038,
+  PseudoVOR_VV_MF4 = 9039,
+  PseudoVOR_VV_MF4_MASK = 9040,
+  PseudoVOR_VV_MF8 = 9041,
+  PseudoVOR_VV_MF8_MASK = 9042,
+  PseudoVOR_VX_M1 = 9043,
+  PseudoVOR_VX_M1_MASK = 9044,
+  PseudoVOR_VX_M2 = 9045,
+  PseudoVOR_VX_M2_MASK = 9046,
+  PseudoVOR_VX_M4 = 9047,
+  PseudoVOR_VX_M4_MASK = 9048,
+  PseudoVOR_VX_M8 = 9049,
+  PseudoVOR_VX_M8_MASK = 9050,
+  PseudoVOR_VX_MF2 = 9051,
+  PseudoVOR_VX_MF2_MASK = 9052,
+  PseudoVOR_VX_MF4 = 9053,
+  PseudoVOR_VX_MF4_MASK = 9054,
+  PseudoVOR_VX_MF8 = 9055,
+  PseudoVOR_VX_MF8_MASK = 9056,
+  PseudoVQDOTSU_VV_M1 = 9057,
+  PseudoVQDOTSU_VV_M1_MASK = 9058,
+  PseudoVQDOTSU_VV_M2 = 9059,
+  PseudoVQDOTSU_VV_M2_MASK = 9060,
+  PseudoVQDOTSU_VV_M4 = 9061,
+  PseudoVQDOTSU_VV_M4_MASK = 9062,
+  PseudoVQDOTSU_VV_M8 = 9063,
+  PseudoVQDOTSU_VV_M8_MASK = 9064,
+  PseudoVQDOTSU_VV_MF2 = 9065,
+  PseudoVQDOTSU_VV_MF2_MASK = 9066,
+  PseudoVQDOTSU_VX_M1 = 9067,
+  PseudoVQDOTSU_VX_M1_MASK = 9068,
+  PseudoVQDOTSU_VX_M2 = 9069,
+  PseudoVQDOTSU_VX_M2_MASK = 9070,
+  PseudoVQDOTSU_VX_M4 = 9071,
+  PseudoVQDOTSU_VX_M4_MASK = 9072,
+  PseudoVQDOTSU_VX_M8 = 9073,
+  PseudoVQDOTSU_VX_M8_MASK = 9074,
+  PseudoVQDOTSU_VX_MF2 = 9075,
+  PseudoVQDOTSU_VX_MF2_MASK = 9076,
+  PseudoVQDOTUS_VX_M1 = 9077,
+  PseudoVQDOTUS_VX_M1_MASK = 9078,
+  PseudoVQDOTUS_VX_M2 = 9079,
+  PseudoVQDOTUS_VX_M2_MASK = 9080,
+  PseudoVQDOTUS_VX_M4 = 9081,
+  PseudoVQDOTUS_VX_M4_MASK = 9082,
+  PseudoVQDOTUS_VX_M8 = 9083,
+  PseudoVQDOTUS_VX_M8_MASK = 9084,
+  PseudoVQDOTUS_VX_MF2 = 9085,
+  PseudoVQDOTUS_VX_MF2_MASK = 9086,
+  PseudoVQDOTU_VV_M1 = 9087,
+  PseudoVQDOTU_VV_M1_MASK = 9088,
+  PseudoVQDOTU_VV_M2 = 9089,
+  PseudoVQDOTU_VV_M2_MASK = 9090,
+  PseudoVQDOTU_VV_M4 = 9091,
+  PseudoVQDOTU_VV_M4_MASK = 9092,
+  PseudoVQDOTU_VV_M8 = 9093,
+  PseudoVQDOTU_VV_M8_MASK = 9094,
+  PseudoVQDOTU_VV_MF2 = 9095,
+  PseudoVQDOTU_VV_MF2_MASK = 9096,
+  PseudoVQDOTU_VX_M1 = 9097,
+  PseudoVQDOTU_VX_M1_MASK = 9098,
+  PseudoVQDOTU_VX_M2 = 9099,
+  PseudoVQDOTU_VX_M2_MASK = 9100,
+  PseudoVQDOTU_VX_M4 = 9101,
+  PseudoVQDOTU_VX_M4_MASK = 9102,
+  PseudoVQDOTU_VX_M8 = 9103,
+  PseudoVQDOTU_VX_M8_MASK = 9104,
+  PseudoVQDOTU_VX_MF2 = 9105,
+  PseudoVQDOTU_VX_MF2_MASK = 9106,
+  PseudoVQDOT_VV_M1 = 9107,
+  PseudoVQDOT_VV_M1_MASK = 9108,
+  PseudoVQDOT_VV_M2 = 9109,
+  PseudoVQDOT_VV_M2_MASK = 9110,
+  PseudoVQDOT_VV_M4 = 9111,
+  PseudoVQDOT_VV_M4_MASK = 9112,
+  PseudoVQDOT_VV_M8 = 9113,
+  PseudoVQDOT_VV_M8_MASK = 9114,
+  PseudoVQDOT_VV_MF2 = 9115,
+  PseudoVQDOT_VV_MF2_MASK = 9116,
+  PseudoVQDOT_VX_M1 = 9117,
+  PseudoVQDOT_VX_M1_MASK = 9118,
+  PseudoVQDOT_VX_M2 = 9119,
+  PseudoVQDOT_VX_M2_MASK = 9120,
+  PseudoVQDOT_VX_M4 = 9121,
+  PseudoVQDOT_VX_M4_MASK = 9122,
+  PseudoVQDOT_VX_M8 = 9123,
+  PseudoVQDOT_VX_M8_MASK = 9124,
+  PseudoVQDOT_VX_MF2 = 9125,
+  PseudoVQDOT_VX_MF2_MASK = 9126,
+  PseudoVREDAND_VS_M1_E16 = 9127,
+  PseudoVREDAND_VS_M1_E16_MASK = 9128,
+  PseudoVREDAND_VS_M1_E32 = 9129,
+  PseudoVREDAND_VS_M1_E32_MASK = 9130,
+  PseudoVREDAND_VS_M1_E64 = 9131,
+  PseudoVREDAND_VS_M1_E64_MASK = 9132,
+  PseudoVREDAND_VS_M1_E8 = 9133,
+  PseudoVREDAND_VS_M1_E8_MASK = 9134,
+  PseudoVREDAND_VS_M2_E16 = 9135,
+  PseudoVREDAND_VS_M2_E16_MASK = 9136,
+  PseudoVREDAND_VS_M2_E32 = 9137,
+  PseudoVREDAND_VS_M2_E32_MASK = 9138,
+  PseudoVREDAND_VS_M2_E64 = 9139,
+  PseudoVREDAND_VS_M2_E64_MASK = 9140,
+  PseudoVREDAND_VS_M2_E8 = 9141,
+  PseudoVREDAND_VS_M2_E8_MASK = 9142,
+  PseudoVREDAND_VS_M4_E16 = 9143,
+  PseudoVREDAND_VS_M4_E16_MASK = 9144,
+  PseudoVREDAND_VS_M4_E32 = 9145,
+  PseudoVREDAND_VS_M4_E32_MASK = 9146,
+  PseudoVREDAND_VS_M4_E64 = 9147,
+  PseudoVREDAND_VS_M4_E64_MASK = 9148,
+  PseudoVREDAND_VS_M4_E8 = 9149,
+  PseudoVREDAND_VS_M4_E8_MASK = 9150,
+  PseudoVREDAND_VS_M8_E16 = 9151,
+  PseudoVREDAND_VS_M8_E16_MASK = 9152,
+  PseudoVREDAND_VS_M8_E32 = 9153,
+  PseudoVREDAND_VS_M8_E32_MASK = 9154,
+  PseudoVREDAND_VS_M8_E64 = 9155,
+  PseudoVREDAND_VS_M8_E64_MASK = 9156,
+  PseudoVREDAND_VS_M8_E8 = 9157,
+  PseudoVREDAND_VS_M8_E8_MASK = 9158,
+  PseudoVREDAND_VS_MF2_E16 = 9159,
+  PseudoVREDAND_VS_MF2_E16_MASK = 9160,
+  PseudoVREDAND_VS_MF2_E32 = 9161,
+  PseudoVREDAND_VS_MF2_E32_MASK = 9162,
+  PseudoVREDAND_VS_MF2_E8 = 9163,
+  PseudoVREDAND_VS_MF2_E8_MASK = 9164,
+  PseudoVREDAND_VS_MF4_E16 = 9165,
+  PseudoVREDAND_VS_MF4_E16_MASK = 9166,
+  PseudoVREDAND_VS_MF4_E8 = 9167,
+  PseudoVREDAND_VS_MF4_E8_MASK = 9168,
+  PseudoVREDAND_VS_MF8_E8 = 9169,
+  PseudoVREDAND_VS_MF8_E8_MASK = 9170,
+  PseudoVREDMAXU_VS_M1_E16 = 9171,
+  PseudoVREDMAXU_VS_M1_E16_MASK = 9172,
+  PseudoVREDMAXU_VS_M1_E32 = 9173,
+  PseudoVREDMAXU_VS_M1_E32_MASK = 9174,
+  PseudoVREDMAXU_VS_M1_E64 = 9175,
+  PseudoVREDMAXU_VS_M1_E64_MASK = 9176,
+  PseudoVREDMAXU_VS_M1_E8 = 9177,
+  PseudoVREDMAXU_VS_M1_E8_MASK = 9178,
+  PseudoVREDMAXU_VS_M2_E16 = 9179,
+  PseudoVREDMAXU_VS_M2_E16_MASK = 9180,
+  PseudoVREDMAXU_VS_M2_E32 = 9181,
+  PseudoVREDMAXU_VS_M2_E32_MASK = 9182,
+  PseudoVREDMAXU_VS_M2_E64 = 9183,
+  PseudoVREDMAXU_VS_M2_E64_MASK = 9184,
+  PseudoVREDMAXU_VS_M2_E8 = 9185,
+  PseudoVREDMAXU_VS_M2_E8_MASK = 9186,
+  PseudoVREDMAXU_VS_M4_E16 = 9187,
+  PseudoVREDMAXU_VS_M4_E16_MASK = 9188,
+  PseudoVREDMAXU_VS_M4_E32 = 9189,
+  PseudoVREDMAXU_VS_M4_E32_MASK = 9190,
+  PseudoVREDMAXU_VS_M4_E64 = 9191,
+  PseudoVREDMAXU_VS_M4_E64_MASK = 9192,
+  PseudoVREDMAXU_VS_M4_E8 = 9193,
+  PseudoVREDMAXU_VS_M4_E8_MASK = 9194,
+  PseudoVREDMAXU_VS_M8_E16 = 9195,
+  PseudoVREDMAXU_VS_M8_E16_MASK = 9196,
+  PseudoVREDMAXU_VS_M8_E32 = 9197,
+  PseudoVREDMAXU_VS_M8_E32_MASK = 9198,
+  PseudoVREDMAXU_VS_M8_E64 = 9199,
+  PseudoVREDMAXU_VS_M8_E64_MASK = 9200,
+  PseudoVREDMAXU_VS_M8_E8 = 9201,
+  PseudoVREDMAXU_VS_M8_E8_MASK = 9202,
+  PseudoVREDMAXU_VS_MF2_E16 = 9203,
+  PseudoVREDMAXU_VS_MF2_E16_MASK = 9204,
+  PseudoVREDMAXU_VS_MF2_E32 = 9205,
+  PseudoVREDMAXU_VS_MF2_E32_MASK = 9206,
+  PseudoVREDMAXU_VS_MF2_E8 = 9207,
+  PseudoVREDMAXU_VS_MF2_E8_MASK = 9208,
+  PseudoVREDMAXU_VS_MF4_E16 = 9209,
+  PseudoVREDMAXU_VS_MF4_E16_MASK = 9210,
+  PseudoVREDMAXU_VS_MF4_E8 = 9211,
+  PseudoVREDMAXU_VS_MF4_E8_MASK = 9212,
+  PseudoVREDMAXU_VS_MF8_E8 = 9213,
+  PseudoVREDMAXU_VS_MF8_E8_MASK = 9214,
+  PseudoVREDMAX_VS_M1_E16 = 9215,
+  PseudoVREDMAX_VS_M1_E16_MASK = 9216,
+  PseudoVREDMAX_VS_M1_E32 = 9217,
+  PseudoVREDMAX_VS_M1_E32_MASK = 9218,
+  PseudoVREDMAX_VS_M1_E64 = 9219,
+  PseudoVREDMAX_VS_M1_E64_MASK = 9220,
+  PseudoVREDMAX_VS_M1_E8 = 9221,
+  PseudoVREDMAX_VS_M1_E8_MASK = 9222,
+  PseudoVREDMAX_VS_M2_E16 = 9223,
+  PseudoVREDMAX_VS_M2_E16_MASK = 9224,
+  PseudoVREDMAX_VS_M2_E32 = 9225,
+  PseudoVREDMAX_VS_M2_E32_MASK = 9226,
+  PseudoVREDMAX_VS_M2_E64 = 9227,
+  PseudoVREDMAX_VS_M2_E64_MASK = 9228,
+  PseudoVREDMAX_VS_M2_E8 = 9229,
+  PseudoVREDMAX_VS_M2_E8_MASK = 9230,
+  PseudoVREDMAX_VS_M4_E16 = 9231,
+  PseudoVREDMAX_VS_M4_E16_MASK = 9232,
+  PseudoVREDMAX_VS_M4_E32 = 9233,
+  PseudoVREDMAX_VS_M4_E32_MASK = 9234,
+  PseudoVREDMAX_VS_M4_E64 = 9235,
+  PseudoVREDMAX_VS_M4_E64_MASK = 9236,
+  PseudoVREDMAX_VS_M4_E8 = 9237,
+  PseudoVREDMAX_VS_M4_E8_MASK = 9238,
+  PseudoVREDMAX_VS_M8_E16 = 9239,
+  PseudoVREDMAX_VS_M8_E16_MASK = 9240,
+  PseudoVREDMAX_VS_M8_E32 = 9241,
+  PseudoVREDMAX_VS_M8_E32_MASK = 9242,
+  PseudoVREDMAX_VS_M8_E64 = 9243,
+  PseudoVREDMAX_VS_M8_E64_MASK = 9244,
+  PseudoVREDMAX_VS_M8_E8 = 9245,
+  PseudoVREDMAX_VS_M8_E8_MASK = 9246,
+  PseudoVREDMAX_VS_MF2_E16 = 9247,
+  PseudoVREDMAX_VS_MF2_E16_MASK = 9248,
+  PseudoVREDMAX_VS_MF2_E32 = 9249,
+  PseudoVREDMAX_VS_MF2_E32_MASK = 9250,
+  PseudoVREDMAX_VS_MF2_E8 = 9251,
+  PseudoVREDMAX_VS_MF2_E8_MASK = 9252,
+  PseudoVREDMAX_VS_MF4_E16 = 9253,
+  PseudoVREDMAX_VS_MF4_E16_MASK = 9254,
+  PseudoVREDMAX_VS_MF4_E8 = 9255,
+  PseudoVREDMAX_VS_MF4_E8_MASK = 9256,
+  PseudoVREDMAX_VS_MF8_E8 = 9257,
+  PseudoVREDMAX_VS_MF8_E8_MASK = 9258,
+  PseudoVREDMINU_VS_M1_E16 = 9259,
+  PseudoVREDMINU_VS_M1_E16_MASK = 9260,
+  PseudoVREDMINU_VS_M1_E32 = 9261,
+  PseudoVREDMINU_VS_M1_E32_MASK = 9262,
+  PseudoVREDMINU_VS_M1_E64 = 9263,
+  PseudoVREDMINU_VS_M1_E64_MASK = 9264,
+  PseudoVREDMINU_VS_M1_E8 = 9265,
+  PseudoVREDMINU_VS_M1_E8_MASK = 9266,
+  PseudoVREDMINU_VS_M2_E16 = 9267,
+  PseudoVREDMINU_VS_M2_E16_MASK = 9268,
+  PseudoVREDMINU_VS_M2_E32 = 9269,
+  PseudoVREDMINU_VS_M2_E32_MASK = 9270,
+  PseudoVREDMINU_VS_M2_E64 = 9271,
+  PseudoVREDMINU_VS_M2_E64_MASK = 9272,
+  PseudoVREDMINU_VS_M2_E8 = 9273,
+  PseudoVREDMINU_VS_M2_E8_MASK = 9274,
+  PseudoVREDMINU_VS_M4_E16 = 9275,
+  PseudoVREDMINU_VS_M4_E16_MASK = 9276,
+  PseudoVREDMINU_VS_M4_E32 = 9277,
+  PseudoVREDMINU_VS_M4_E32_MASK = 9278,
+  PseudoVREDMINU_VS_M4_E64 = 9279,
+  PseudoVREDMINU_VS_M4_E64_MASK = 9280,
+  PseudoVREDMINU_VS_M4_E8 = 9281,
+  PseudoVREDMINU_VS_M4_E8_MASK = 9282,
+  PseudoVREDMINU_VS_M8_E16 = 9283,
+  PseudoVREDMINU_VS_M8_E16_MASK = 9284,
+  PseudoVREDMINU_VS_M8_E32 = 9285,
+  PseudoVREDMINU_VS_M8_E32_MASK = 9286,
+  PseudoVREDMINU_VS_M8_E64 = 9287,
+  PseudoVREDMINU_VS_M8_E64_MASK = 9288,
+  PseudoVREDMINU_VS_M8_E8 = 9289,
+  PseudoVREDMINU_VS_M8_E8_MASK = 9290,
+  PseudoVREDMINU_VS_MF2_E16 = 9291,
+  PseudoVREDMINU_VS_MF2_E16_MASK = 9292,
+  PseudoVREDMINU_VS_MF2_E32 = 9293,
+  PseudoVREDMINU_VS_MF2_E32_MASK = 9294,
+  PseudoVREDMINU_VS_MF2_E8 = 9295,
+  PseudoVREDMINU_VS_MF2_E8_MASK = 9296,
+  PseudoVREDMINU_VS_MF4_E16 = 9297,
+  PseudoVREDMINU_VS_MF4_E16_MASK = 9298,
+  PseudoVREDMINU_VS_MF4_E8 = 9299,
+  PseudoVREDMINU_VS_MF4_E8_MASK = 9300,
+  PseudoVREDMINU_VS_MF8_E8 = 9301,
+  PseudoVREDMINU_VS_MF8_E8_MASK = 9302,
+  PseudoVREDMIN_VS_M1_E16 = 9303,
+  PseudoVREDMIN_VS_M1_E16_MASK = 9304,
+  PseudoVREDMIN_VS_M1_E32 = 9305,
+  PseudoVREDMIN_VS_M1_E32_MASK = 9306,
+  PseudoVREDMIN_VS_M1_E64 = 9307,
+  PseudoVREDMIN_VS_M1_E64_MASK = 9308,
+  PseudoVREDMIN_VS_M1_E8 = 9309,
+  PseudoVREDMIN_VS_M1_E8_MASK = 9310,
+  PseudoVREDMIN_VS_M2_E16 = 9311,
+  PseudoVREDMIN_VS_M2_E16_MASK = 9312,
+  PseudoVREDMIN_VS_M2_E32 = 9313,
+  PseudoVREDMIN_VS_M2_E32_MASK = 9314,
+  PseudoVREDMIN_VS_M2_E64 = 9315,
+  PseudoVREDMIN_VS_M2_E64_MASK = 9316,
+  PseudoVREDMIN_VS_M2_E8 = 9317,
+  PseudoVREDMIN_VS_M2_E8_MASK = 9318,
+  PseudoVREDMIN_VS_M4_E16 = 9319,
+  PseudoVREDMIN_VS_M4_E16_MASK = 9320,
+  PseudoVREDMIN_VS_M4_E32 = 9321,
+  PseudoVREDMIN_VS_M4_E32_MASK = 9322,
+  PseudoVREDMIN_VS_M4_E64 = 9323,
+  PseudoVREDMIN_VS_M4_E64_MASK = 9324,
+  PseudoVREDMIN_VS_M4_E8 = 9325,
+  PseudoVREDMIN_VS_M4_E8_MASK = 9326,
+  PseudoVREDMIN_VS_M8_E16 = 9327,
+  PseudoVREDMIN_VS_M8_E16_MASK = 9328,
+  PseudoVREDMIN_VS_M8_E32 = 9329,
+  PseudoVREDMIN_VS_M8_E32_MASK = 9330,
+  PseudoVREDMIN_VS_M8_E64 = 9331,
+  PseudoVREDMIN_VS_M8_E64_MASK = 9332,
+  PseudoVREDMIN_VS_M8_E8 = 9333,
+  PseudoVREDMIN_VS_M8_E8_MASK = 9334,
+  PseudoVREDMIN_VS_MF2_E16 = 9335,
+  PseudoVREDMIN_VS_MF2_E16_MASK = 9336,
+  PseudoVREDMIN_VS_MF2_E32 = 9337,
+  PseudoVREDMIN_VS_MF2_E32_MASK = 9338,
+  PseudoVREDMIN_VS_MF2_E8 = 9339,
+  PseudoVREDMIN_VS_MF2_E8_MASK = 9340,
+  PseudoVREDMIN_VS_MF4_E16 = 9341,
+  PseudoVREDMIN_VS_MF4_E16_MASK = 9342,
+  PseudoVREDMIN_VS_MF4_E8 = 9343,
+  PseudoVREDMIN_VS_MF4_E8_MASK = 9344,
+  PseudoVREDMIN_VS_MF8_E8 = 9345,
+  PseudoVREDMIN_VS_MF8_E8_MASK = 9346,
+  PseudoVREDOR_VS_M1_E16 = 9347,
+  PseudoVREDOR_VS_M1_E16_MASK = 9348,
+  PseudoVREDOR_VS_M1_E32 = 9349,
+  PseudoVREDOR_VS_M1_E32_MASK = 9350,
+  PseudoVREDOR_VS_M1_E64 = 9351,
+  PseudoVREDOR_VS_M1_E64_MASK = 9352,
+  PseudoVREDOR_VS_M1_E8 = 9353,
+  PseudoVREDOR_VS_M1_E8_MASK = 9354,
+  PseudoVREDOR_VS_M2_E16 = 9355,
+  PseudoVREDOR_VS_M2_E16_MASK = 9356,
+  PseudoVREDOR_VS_M2_E32 = 9357,
+  PseudoVREDOR_VS_M2_E32_MASK = 9358,
+  PseudoVREDOR_VS_M2_E64 = 9359,
+  PseudoVREDOR_VS_M2_E64_MASK = 9360,
+  PseudoVREDOR_VS_M2_E8 = 9361,
+  PseudoVREDOR_VS_M2_E8_MASK = 9362,
+  PseudoVREDOR_VS_M4_E16 = 9363,
+  PseudoVREDOR_VS_M4_E16_MASK = 9364,
+  PseudoVREDOR_VS_M4_E32 = 9365,
+  PseudoVREDOR_VS_M4_E32_MASK = 9366,
+  PseudoVREDOR_VS_M4_E64 = 9367,
+  PseudoVREDOR_VS_M4_E64_MASK = 9368,
+  PseudoVREDOR_VS_M4_E8 = 9369,
+  PseudoVREDOR_VS_M4_E8_MASK = 9370,
+  PseudoVREDOR_VS_M8_E16 = 9371,
+  PseudoVREDOR_VS_M8_E16_MASK = 9372,
+  PseudoVREDOR_VS_M8_E32 = 9373,
+  PseudoVREDOR_VS_M8_E32_MASK = 9374,
+  PseudoVREDOR_VS_M8_E64 = 9375,
+  PseudoVREDOR_VS_M8_E64_MASK = 9376,
+  PseudoVREDOR_VS_M8_E8 = 9377,
+  PseudoVREDOR_VS_M8_E8_MASK = 9378,
+  PseudoVREDOR_VS_MF2_E16 = 9379,
+  PseudoVREDOR_VS_MF2_E16_MASK = 9380,
+  PseudoVREDOR_VS_MF2_E32 = 9381,
+  PseudoVREDOR_VS_MF2_E32_MASK = 9382,
+  PseudoVREDOR_VS_MF2_E8 = 9383,
+  PseudoVREDOR_VS_MF2_E8_MASK = 9384,
+  PseudoVREDOR_VS_MF4_E16 = 9385,
+  PseudoVREDOR_VS_MF4_E16_MASK = 9386,
+  PseudoVREDOR_VS_MF4_E8 = 9387,
+  PseudoVREDOR_VS_MF4_E8_MASK = 9388,
+  PseudoVREDOR_VS_MF8_E8 = 9389,
+  PseudoVREDOR_VS_MF8_E8_MASK = 9390,
+  PseudoVREDSUM_VS_M1_E16 = 9391,
+  PseudoVREDSUM_VS_M1_E16_MASK = 9392,
+  PseudoVREDSUM_VS_M1_E32 = 9393,
+  PseudoVREDSUM_VS_M1_E32_MASK = 9394,
+  PseudoVREDSUM_VS_M1_E64 = 9395,
+  PseudoVREDSUM_VS_M1_E64_MASK = 9396,
+  PseudoVREDSUM_VS_M1_E8 = 9397,
+  PseudoVREDSUM_VS_M1_E8_MASK = 9398,
+  PseudoVREDSUM_VS_M2_E16 = 9399,
+  PseudoVREDSUM_VS_M2_E16_MASK = 9400,
+  PseudoVREDSUM_VS_M2_E32 = 9401,
+  PseudoVREDSUM_VS_M2_E32_MASK = 9402,
+  PseudoVREDSUM_VS_M2_E64 = 9403,
+  PseudoVREDSUM_VS_M2_E64_MASK = 9404,
+  PseudoVREDSUM_VS_M2_E8 = 9405,
+  PseudoVREDSUM_VS_M2_E8_MASK = 9406,
+  PseudoVREDSUM_VS_M4_E16 = 9407,
+  PseudoVREDSUM_VS_M4_E16_MASK = 9408,
+  PseudoVREDSUM_VS_M4_E32 = 9409,
+  PseudoVREDSUM_VS_M4_E32_MASK = 9410,
+  PseudoVREDSUM_VS_M4_E64 = 9411,
+  PseudoVREDSUM_VS_M4_E64_MASK = 9412,
+  PseudoVREDSUM_VS_M4_E8 = 9413,
+  PseudoVREDSUM_VS_M4_E8_MASK = 9414,
+  PseudoVREDSUM_VS_M8_E16 = 9415,
+  PseudoVREDSUM_VS_M8_E16_MASK = 9416,
+  PseudoVREDSUM_VS_M8_E32 = 9417,
+  PseudoVREDSUM_VS_M8_E32_MASK = 9418,
+  PseudoVREDSUM_VS_M8_E64 = 9419,
+  PseudoVREDSUM_VS_M8_E64_MASK = 9420,
+  PseudoVREDSUM_VS_M8_E8 = 9421,
+  PseudoVREDSUM_VS_M8_E8_MASK = 9422,
+  PseudoVREDSUM_VS_MF2_E16 = 9423,
+  PseudoVREDSUM_VS_MF2_E16_MASK = 9424,
+  PseudoVREDSUM_VS_MF2_E32 = 9425,
+  PseudoVREDSUM_VS_MF2_E32_MASK = 9426,
+  PseudoVREDSUM_VS_MF2_E8 = 9427,
+  PseudoVREDSUM_VS_MF2_E8_MASK = 9428,
+  PseudoVREDSUM_VS_MF4_E16 = 9429,
+  PseudoVREDSUM_VS_MF4_E16_MASK = 9430,
+  PseudoVREDSUM_VS_MF4_E8 = 9431,
+  PseudoVREDSUM_VS_MF4_E8_MASK = 9432,
+  PseudoVREDSUM_VS_MF8_E8 = 9433,
+  PseudoVREDSUM_VS_MF8_E8_MASK = 9434,
+  PseudoVREDXOR_VS_M1_E16 = 9435,
+  PseudoVREDXOR_VS_M1_E16_MASK = 9436,
+  PseudoVREDXOR_VS_M1_E32 = 9437,
+  PseudoVREDXOR_VS_M1_E32_MASK = 9438,
+  PseudoVREDXOR_VS_M1_E64 = 9439,
+  PseudoVREDXOR_VS_M1_E64_MASK = 9440,
+  PseudoVREDXOR_VS_M1_E8 = 9441,
+  PseudoVREDXOR_VS_M1_E8_MASK = 9442,
+  PseudoVREDXOR_VS_M2_E16 = 9443,
+  PseudoVREDXOR_VS_M2_E16_MASK = 9444,
+  PseudoVREDXOR_VS_M2_E32 = 9445,
+  PseudoVREDXOR_VS_M2_E32_MASK = 9446,
+  PseudoVREDXOR_VS_M2_E64 = 9447,
+  PseudoVREDXOR_VS_M2_E64_MASK = 9448,
+  PseudoVREDXOR_VS_M2_E8 = 9449,
+  PseudoVREDXOR_VS_M2_E8_MASK = 9450,
+  PseudoVREDXOR_VS_M4_E16 = 9451,
+  PseudoVREDXOR_VS_M4_E16_MASK = 9452,
+  PseudoVREDXOR_VS_M4_E32 = 9453,
+  PseudoVREDXOR_VS_M4_E32_MASK = 9454,
+  PseudoVREDXOR_VS_M4_E64 = 9455,
+  PseudoVREDXOR_VS_M4_E64_MASK = 9456,
+  PseudoVREDXOR_VS_M4_E8 = 9457,
+  PseudoVREDXOR_VS_M4_E8_MASK = 9458,
+  PseudoVREDXOR_VS_M8_E16 = 9459,
+  PseudoVREDXOR_VS_M8_E16_MASK = 9460,
+  PseudoVREDXOR_VS_M8_E32 = 9461,
+  PseudoVREDXOR_VS_M8_E32_MASK = 9462,
+  PseudoVREDXOR_VS_M8_E64 = 9463,
+  PseudoVREDXOR_VS_M8_E64_MASK = 9464,
+  PseudoVREDXOR_VS_M8_E8 = 9465,
+  PseudoVREDXOR_VS_M8_E8_MASK = 9466,
+  PseudoVREDXOR_VS_MF2_E16 = 9467,
+  PseudoVREDXOR_VS_MF2_E16_MASK = 9468,
+  PseudoVREDXOR_VS_MF2_E32 = 9469,
+  PseudoVREDXOR_VS_MF2_E32_MASK = 9470,
+  PseudoVREDXOR_VS_MF2_E8 = 9471,
+  PseudoVREDXOR_VS_MF2_E8_MASK = 9472,
+  PseudoVREDXOR_VS_MF4_E16 = 9473,
+  PseudoVREDXOR_VS_MF4_E16_MASK = 9474,
+  PseudoVREDXOR_VS_MF4_E8 = 9475,
+  PseudoVREDXOR_VS_MF4_E8_MASK = 9476,
+  PseudoVREDXOR_VS_MF8_E8 = 9477,
+  PseudoVREDXOR_VS_MF8_E8_MASK = 9478,
+  PseudoVRELOAD2_M1 = 9479,
+  PseudoVRELOAD2_M2 = 9480,
+  PseudoVRELOAD2_M4 = 9481,
+  PseudoVRELOAD2_MF2 = 9482,
+  PseudoVRELOAD2_MF4 = 9483,
+  PseudoVRELOAD2_MF8 = 9484,
+  PseudoVRELOAD3_M1 = 9485,
+  PseudoVRELOAD3_M2 = 9486,
+  PseudoVRELOAD3_MF2 = 9487,
+  PseudoVRELOAD3_MF4 = 9488,
+  PseudoVRELOAD3_MF8 = 9489,
+  PseudoVRELOAD4_M1 = 9490,
+  PseudoVRELOAD4_M2 = 9491,
+  PseudoVRELOAD4_MF2 = 9492,
+  PseudoVRELOAD4_MF4 = 9493,
+  PseudoVRELOAD4_MF8 = 9494,
+  PseudoVRELOAD5_M1 = 9495,
+  PseudoVRELOAD5_MF2 = 9496,
+  PseudoVRELOAD5_MF4 = 9497,
+  PseudoVRELOAD5_MF8 = 9498,
+  PseudoVRELOAD6_M1 = 9499,
+  PseudoVRELOAD6_MF2 = 9500,
+  PseudoVRELOAD6_MF4 = 9501,
+  PseudoVRELOAD6_MF8 = 9502,
+  PseudoVRELOAD7_M1 = 9503,
+  PseudoVRELOAD7_MF2 = 9504,
+  PseudoVRELOAD7_MF4 = 9505,
+  PseudoVRELOAD7_MF8 = 9506,
+  PseudoVRELOAD8_M1 = 9507,
+  PseudoVRELOAD8_MF2 = 9508,
+  PseudoVRELOAD8_MF4 = 9509,
+  PseudoVRELOAD8_MF8 = 9510,
+  PseudoVREMU_VV_M1_E16 = 9511,
+  PseudoVREMU_VV_M1_E16_MASK = 9512,
+  PseudoVREMU_VV_M1_E32 = 9513,
+  PseudoVREMU_VV_M1_E32_MASK = 9514,
+  PseudoVREMU_VV_M1_E64 = 9515,
+  PseudoVREMU_VV_M1_E64_MASK = 9516,
+  PseudoVREMU_VV_M1_E8 = 9517,
+  PseudoVREMU_VV_M1_E8_MASK = 9518,
+  PseudoVREMU_VV_M2_E16 = 9519,
+  PseudoVREMU_VV_M2_E16_MASK = 9520,
+  PseudoVREMU_VV_M2_E32 = 9521,
+  PseudoVREMU_VV_M2_E32_MASK = 9522,
+  PseudoVREMU_VV_M2_E64 = 9523,
+  PseudoVREMU_VV_M2_E64_MASK = 9524,
+  PseudoVREMU_VV_M2_E8 = 9525,
+  PseudoVREMU_VV_M2_E8_MASK = 9526,
+  PseudoVREMU_VV_M4_E16 = 9527,
+  PseudoVREMU_VV_M4_E16_MASK = 9528,
+  PseudoVREMU_VV_M4_E32 = 9529,
+  PseudoVREMU_VV_M4_E32_MASK = 9530,
+  PseudoVREMU_VV_M4_E64 = 9531,
+  PseudoVREMU_VV_M4_E64_MASK = 9532,
+  PseudoVREMU_VV_M4_E8 = 9533,
+  PseudoVREMU_VV_M4_E8_MASK = 9534,
+  PseudoVREMU_VV_M8_E16 = 9535,
+  PseudoVREMU_VV_M8_E16_MASK = 9536,
+  PseudoVREMU_VV_M8_E32 = 9537,
+  PseudoVREMU_VV_M8_E32_MASK = 9538,
+  PseudoVREMU_VV_M8_E64 = 9539,
+  PseudoVREMU_VV_M8_E64_MASK = 9540,
+  PseudoVREMU_VV_M8_E8 = 9541,
+  PseudoVREMU_VV_M8_E8_MASK = 9542,
+  PseudoVREMU_VV_MF2_E16 = 9543,
+  PseudoVREMU_VV_MF2_E16_MASK = 9544,
+  PseudoVREMU_VV_MF2_E32 = 9545,
+  PseudoVREMU_VV_MF2_E32_MASK = 9546,
+  PseudoVREMU_VV_MF2_E8 = 9547,
+  PseudoVREMU_VV_MF2_E8_MASK = 9548,
+  PseudoVREMU_VV_MF4_E16 = 9549,
+  PseudoVREMU_VV_MF4_E16_MASK = 9550,
+  PseudoVREMU_VV_MF4_E8 = 9551,
+  PseudoVREMU_VV_MF4_E8_MASK = 9552,
+  PseudoVREMU_VV_MF8_E8 = 9553,
+  PseudoVREMU_VV_MF8_E8_MASK = 9554,
+  PseudoVREMU_VX_M1_E16 = 9555,
+  PseudoVREMU_VX_M1_E16_MASK = 9556,
+  PseudoVREMU_VX_M1_E32 = 9557,
+  PseudoVREMU_VX_M1_E32_MASK = 9558,
+  PseudoVREMU_VX_M1_E64 = 9559,
+  PseudoVREMU_VX_M1_E64_MASK = 9560,
+  PseudoVREMU_VX_M1_E8 = 9561,
+  PseudoVREMU_VX_M1_E8_MASK = 9562,
+  PseudoVREMU_VX_M2_E16 = 9563,
+  PseudoVREMU_VX_M2_E16_MASK = 9564,
+  PseudoVREMU_VX_M2_E32 = 9565,
+  PseudoVREMU_VX_M2_E32_MASK = 9566,
+  PseudoVREMU_VX_M2_E64 = 9567,
+  PseudoVREMU_VX_M2_E64_MASK = 9568,
+  PseudoVREMU_VX_M2_E8 = 9569,
+  PseudoVREMU_VX_M2_E8_MASK = 9570,
+  PseudoVREMU_VX_M4_E16 = 9571,
+  PseudoVREMU_VX_M4_E16_MASK = 9572,
+  PseudoVREMU_VX_M4_E32 = 9573,
+  PseudoVREMU_VX_M4_E32_MASK = 9574,
+  PseudoVREMU_VX_M4_E64 = 9575,
+  PseudoVREMU_VX_M4_E64_MASK = 9576,
+  PseudoVREMU_VX_M4_E8 = 9577,
+  PseudoVREMU_VX_M4_E8_MASK = 9578,
+  PseudoVREMU_VX_M8_E16 = 9579,
+  PseudoVREMU_VX_M8_E16_MASK = 9580,
+  PseudoVREMU_VX_M8_E32 = 9581,
+  PseudoVREMU_VX_M8_E32_MASK = 9582,
+  PseudoVREMU_VX_M8_E64 = 9583,
+  PseudoVREMU_VX_M8_E64_MASK = 9584,
+  PseudoVREMU_VX_M8_E8 = 9585,
+  PseudoVREMU_VX_M8_E8_MASK = 9586,
+  PseudoVREMU_VX_MF2_E16 = 9587,
+  PseudoVREMU_VX_MF2_E16_MASK = 9588,
+  PseudoVREMU_VX_MF2_E32 = 9589,
+  PseudoVREMU_VX_MF2_E32_MASK = 9590,
+  PseudoVREMU_VX_MF2_E8 = 9591,
+  PseudoVREMU_VX_MF2_E8_MASK = 9592,
+  PseudoVREMU_VX_MF4_E16 = 9593,
+  PseudoVREMU_VX_MF4_E16_MASK = 9594,
+  PseudoVREMU_VX_MF4_E8 = 9595,
+  PseudoVREMU_VX_MF4_E8_MASK = 9596,
+  PseudoVREMU_VX_MF8_E8 = 9597,
+  PseudoVREMU_VX_MF8_E8_MASK = 9598,
+  PseudoVREM_VV_M1_E16 = 9599,
+  PseudoVREM_VV_M1_E16_MASK = 9600,
+  PseudoVREM_VV_M1_E32 = 9601,
+  PseudoVREM_VV_M1_E32_MASK = 9602,
+  PseudoVREM_VV_M1_E64 = 9603,
+  PseudoVREM_VV_M1_E64_MASK = 9604,
+  PseudoVREM_VV_M1_E8 = 9605,
+  PseudoVREM_VV_M1_E8_MASK = 9606,
+  PseudoVREM_VV_M2_E16 = 9607,
+  PseudoVREM_VV_M2_E16_MASK = 9608,
+  PseudoVREM_VV_M2_E32 = 9609,
+  PseudoVREM_VV_M2_E32_MASK = 9610,
+  PseudoVREM_VV_M2_E64 = 9611,
+  PseudoVREM_VV_M2_E64_MASK = 9612,
+  PseudoVREM_VV_M2_E8 = 9613,
+  PseudoVREM_VV_M2_E8_MASK = 9614,
+  PseudoVREM_VV_M4_E16 = 9615,
+  PseudoVREM_VV_M4_E16_MASK = 9616,
+  PseudoVREM_VV_M4_E32 = 9617,
+  PseudoVREM_VV_M4_E32_MASK = 9618,
+  PseudoVREM_VV_M4_E64 = 9619,
+  PseudoVREM_VV_M4_E64_MASK = 9620,
+  PseudoVREM_VV_M4_E8 = 9621,
+  PseudoVREM_VV_M4_E8_MASK = 9622,
+  PseudoVREM_VV_M8_E16 = 9623,
+  PseudoVREM_VV_M8_E16_MASK = 9624,
+  PseudoVREM_VV_M8_E32 = 9625,
+  PseudoVREM_VV_M8_E32_MASK = 9626,
+  PseudoVREM_VV_M8_E64 = 9627,
+  PseudoVREM_VV_M8_E64_MASK = 9628,
+  PseudoVREM_VV_M8_E8 = 9629,
+  PseudoVREM_VV_M8_E8_MASK = 9630,
+  PseudoVREM_VV_MF2_E16 = 9631,
+  PseudoVREM_VV_MF2_E16_MASK = 9632,
+  PseudoVREM_VV_MF2_E32 = 9633,
+  PseudoVREM_VV_MF2_E32_MASK = 9634,
+  PseudoVREM_VV_MF2_E8 = 9635,
+  PseudoVREM_VV_MF2_E8_MASK = 9636,
+  PseudoVREM_VV_MF4_E16 = 9637,
+  PseudoVREM_VV_MF4_E16_MASK = 9638,
+  PseudoVREM_VV_MF4_E8 = 9639,
+  PseudoVREM_VV_MF4_E8_MASK = 9640,
+  PseudoVREM_VV_MF8_E8 = 9641,
+  PseudoVREM_VV_MF8_E8_MASK = 9642,
+  PseudoVREM_VX_M1_E16 = 9643,
+  PseudoVREM_VX_M1_E16_MASK = 9644,
+  PseudoVREM_VX_M1_E32 = 9645,
+  PseudoVREM_VX_M1_E32_MASK = 9646,
+  PseudoVREM_VX_M1_E64 = 9647,
+  PseudoVREM_VX_M1_E64_MASK = 9648,
+  PseudoVREM_VX_M1_E8 = 9649,
+  PseudoVREM_VX_M1_E8_MASK = 9650,
+  PseudoVREM_VX_M2_E16 = 9651,
+  PseudoVREM_VX_M2_E16_MASK = 9652,
+  PseudoVREM_VX_M2_E32 = 9653,
+  PseudoVREM_VX_M2_E32_MASK = 9654,
+  PseudoVREM_VX_M2_E64 = 9655,
+  PseudoVREM_VX_M2_E64_MASK = 9656,
+  PseudoVREM_VX_M2_E8 = 9657,
+  PseudoVREM_VX_M2_E8_MASK = 9658,
+  PseudoVREM_VX_M4_E16 = 9659,
+  PseudoVREM_VX_M4_E16_MASK = 9660,
+  PseudoVREM_VX_M4_E32 = 9661,
+  PseudoVREM_VX_M4_E32_MASK = 9662,
+  PseudoVREM_VX_M4_E64 = 9663,
+  PseudoVREM_VX_M4_E64_MASK = 9664,
+  PseudoVREM_VX_M4_E8 = 9665,
+  PseudoVREM_VX_M4_E8_MASK = 9666,
+  PseudoVREM_VX_M8_E16 = 9667,
+  PseudoVREM_VX_M8_E16_MASK = 9668,
+  PseudoVREM_VX_M8_E32 = 9669,
+  PseudoVREM_VX_M8_E32_MASK = 9670,
+  PseudoVREM_VX_M8_E64 = 9671,
+  PseudoVREM_VX_M8_E64_MASK = 9672,
+  PseudoVREM_VX_M8_E8 = 9673,
+  PseudoVREM_VX_M8_E8_MASK = 9674,
+  PseudoVREM_VX_MF2_E16 = 9675,
+  PseudoVREM_VX_MF2_E16_MASK = 9676,
+  PseudoVREM_VX_MF2_E32 = 9677,
+  PseudoVREM_VX_MF2_E32_MASK = 9678,
+  PseudoVREM_VX_MF2_E8 = 9679,
+  PseudoVREM_VX_MF2_E8_MASK = 9680,
+  PseudoVREM_VX_MF4_E16 = 9681,
+  PseudoVREM_VX_MF4_E16_MASK = 9682,
+  PseudoVREM_VX_MF4_E8 = 9683,
+  PseudoVREM_VX_MF4_E8_MASK = 9684,
+  PseudoVREM_VX_MF8_E8 = 9685,
+  PseudoVREM_VX_MF8_E8_MASK = 9686,
+  PseudoVREV8_V_M1 = 9687,
+  PseudoVREV8_V_M1_MASK = 9688,
+  PseudoVREV8_V_M2 = 9689,
+  PseudoVREV8_V_M2_MASK = 9690,
+  PseudoVREV8_V_M4 = 9691,
+  PseudoVREV8_V_M4_MASK = 9692,
+  PseudoVREV8_V_M8 = 9693,
+  PseudoVREV8_V_M8_MASK = 9694,
+  PseudoVREV8_V_MF2 = 9695,
+  PseudoVREV8_V_MF2_MASK = 9696,
+  PseudoVREV8_V_MF4 = 9697,
+  PseudoVREV8_V_MF4_MASK = 9698,
+  PseudoVREV8_V_MF8 = 9699,
+  PseudoVREV8_V_MF8_MASK = 9700,
+  PseudoVRGATHEREI16_VV_M1_E16_M1 = 9701,
+  PseudoVRGATHEREI16_VV_M1_E16_M1_MASK = 9702,
+  PseudoVRGATHEREI16_VV_M1_E16_M2 = 9703,
+  PseudoVRGATHEREI16_VV_M1_E16_M2_MASK = 9704,
+  PseudoVRGATHEREI16_VV_M1_E16_MF2 = 9705,
+  PseudoVRGATHEREI16_VV_M1_E16_MF2_MASK = 9706,
+  PseudoVRGATHEREI16_VV_M1_E16_MF4 = 9707,
+  PseudoVRGATHEREI16_VV_M1_E16_MF4_MASK = 9708,
+  PseudoVRGATHEREI16_VV_M1_E32_M1 = 9709,
+  PseudoVRGATHEREI16_VV_M1_E32_M1_MASK = 9710,
+  PseudoVRGATHEREI16_VV_M1_E32_M2 = 9711,
+  PseudoVRGATHEREI16_VV_M1_E32_M2_MASK = 9712,
+  PseudoVRGATHEREI16_VV_M1_E32_MF2 = 9713,
+  PseudoVRGATHEREI16_VV_M1_E32_MF2_MASK = 9714,
+  PseudoVRGATHEREI16_VV_M1_E32_MF4 = 9715,
+  PseudoVRGATHEREI16_VV_M1_E32_MF4_MASK = 9716,
+  PseudoVRGATHEREI16_VV_M1_E64_M1 = 9717,
+  PseudoVRGATHEREI16_VV_M1_E64_M1_MASK = 9718,
+  PseudoVRGATHEREI16_VV_M1_E64_M2 = 9719,
+  PseudoVRGATHEREI16_VV_M1_E64_M2_MASK = 9720,
+  PseudoVRGATHEREI16_VV_M1_E64_MF2 = 9721,
+  PseudoVRGATHEREI16_VV_M1_E64_MF2_MASK = 9722,
+  PseudoVRGATHEREI16_VV_M1_E64_MF4 = 9723,
+  PseudoVRGATHEREI16_VV_M1_E64_MF4_MASK = 9724,
+  PseudoVRGATHEREI16_VV_M1_E8_M1 = 9725,
+  PseudoVRGATHEREI16_VV_M1_E8_M1_MASK = 9726,
+  PseudoVRGATHEREI16_VV_M1_E8_M2 = 9727,
+  PseudoVRGATHEREI16_VV_M1_E8_M2_MASK = 9728,
+  PseudoVRGATHEREI16_VV_M1_E8_MF2 = 9729,
+  PseudoVRGATHEREI16_VV_M1_E8_MF2_MASK = 9730,
+  PseudoVRGATHEREI16_VV_M1_E8_MF4 = 9731,
+  PseudoVRGATHEREI16_VV_M1_E8_MF4_MASK = 9732,
+  PseudoVRGATHEREI16_VV_M2_E16_M1 = 9733,
+  PseudoVRGATHEREI16_VV_M2_E16_M1_MASK = 9734,
+  PseudoVRGATHEREI16_VV_M2_E16_M2 = 9735,
+  PseudoVRGATHEREI16_VV_M2_E16_M2_MASK = 9736,
+  PseudoVRGATHEREI16_VV_M2_E16_M4 = 9737,
+  PseudoVRGATHEREI16_VV_M2_E16_M4_MASK = 9738,
+  PseudoVRGATHEREI16_VV_M2_E16_MF2 = 9739,
+  PseudoVRGATHEREI16_VV_M2_E16_MF2_MASK = 9740,
+  PseudoVRGATHEREI16_VV_M2_E32_M1 = 9741,
+  PseudoVRGATHEREI16_VV_M2_E32_M1_MASK = 9742,
+  PseudoVRGATHEREI16_VV_M2_E32_M2 = 9743,
+  PseudoVRGATHEREI16_VV_M2_E32_M2_MASK = 9744,
+  PseudoVRGATHEREI16_VV_M2_E32_M4 = 9745,
+  PseudoVRGATHEREI16_VV_M2_E32_M4_MASK = 9746,
+  PseudoVRGATHEREI16_VV_M2_E32_MF2 = 9747,
+  PseudoVRGATHEREI16_VV_M2_E32_MF2_MASK = 9748,
+  PseudoVRGATHEREI16_VV_M2_E64_M1 = 9749,
+  PseudoVRGATHEREI16_VV_M2_E64_M1_MASK = 9750,
+  PseudoVRGATHEREI16_VV_M2_E64_M2 = 9751,
+  PseudoVRGATHEREI16_VV_M2_E64_M2_MASK = 9752,
+  PseudoVRGATHEREI16_VV_M2_E64_M4 = 9753,
+  PseudoVRGATHEREI16_VV_M2_E64_M4_MASK = 9754,
+  PseudoVRGATHEREI16_VV_M2_E64_MF2 = 9755,
+  PseudoVRGATHEREI16_VV_M2_E64_MF2_MASK = 9756,
+  PseudoVRGATHEREI16_VV_M2_E8_M1 = 9757,
+  PseudoVRGATHEREI16_VV_M2_E8_M1_MASK = 9758,
+  PseudoVRGATHEREI16_VV_M2_E8_M2 = 9759,
+  PseudoVRGATHEREI16_VV_M2_E8_M2_MASK = 9760,
+  PseudoVRGATHEREI16_VV_M2_E8_M4 = 9761,
+  PseudoVRGATHEREI16_VV_M2_E8_M4_MASK = 9762,
+  PseudoVRGATHEREI16_VV_M2_E8_MF2 = 9763,
+  PseudoVRGATHEREI16_VV_M2_E8_MF2_MASK = 9764,
+  PseudoVRGATHEREI16_VV_M4_E16_M1 = 9765,
+  PseudoVRGATHEREI16_VV_M4_E16_M1_MASK = 9766,
+  PseudoVRGATHEREI16_VV_M4_E16_M2 = 9767,
+  PseudoVRGATHEREI16_VV_M4_E16_M2_MASK = 9768,
+  PseudoVRGATHEREI16_VV_M4_E16_M4 = 9769,
+  PseudoVRGATHEREI16_VV_M4_E16_M4_MASK = 9770,
+  PseudoVRGATHEREI16_VV_M4_E16_M8 = 9771,
+  PseudoVRGATHEREI16_VV_M4_E16_M8_MASK = 9772,
+  PseudoVRGATHEREI16_VV_M4_E32_M1 = 9773,
+  PseudoVRGATHEREI16_VV_M4_E32_M1_MASK = 9774,
+  PseudoVRGATHEREI16_VV_M4_E32_M2 = 9775,
+  PseudoVRGATHEREI16_VV_M4_E32_M2_MASK = 9776,
+  PseudoVRGATHEREI16_VV_M4_E32_M4 = 9777,
+  PseudoVRGATHEREI16_VV_M4_E32_M4_MASK = 9778,
+  PseudoVRGATHEREI16_VV_M4_E32_M8 = 9779,
+  PseudoVRGATHEREI16_VV_M4_E32_M8_MASK = 9780,
+  PseudoVRGATHEREI16_VV_M4_E64_M1 = 9781,
+  PseudoVRGATHEREI16_VV_M4_E64_M1_MASK = 9782,
+  PseudoVRGATHEREI16_VV_M4_E64_M2 = 9783,
+  PseudoVRGATHEREI16_VV_M4_E64_M2_MASK = 9784,
+  PseudoVRGATHEREI16_VV_M4_E64_M4 = 9785,
+  PseudoVRGATHEREI16_VV_M4_E64_M4_MASK = 9786,
+  PseudoVRGATHEREI16_VV_M4_E64_M8 = 9787,
+  PseudoVRGATHEREI16_VV_M4_E64_M8_MASK = 9788,
+  PseudoVRGATHEREI16_VV_M4_E8_M1 = 9789,
+  PseudoVRGATHEREI16_VV_M4_E8_M1_MASK = 9790,
+  PseudoVRGATHEREI16_VV_M4_E8_M2 = 9791,
+  PseudoVRGATHEREI16_VV_M4_E8_M2_MASK = 9792,
+  PseudoVRGATHEREI16_VV_M4_E8_M4 = 9793,
+  PseudoVRGATHEREI16_VV_M4_E8_M4_MASK = 9794,
+  PseudoVRGATHEREI16_VV_M4_E8_M8 = 9795,
+  PseudoVRGATHEREI16_VV_M4_E8_M8_MASK = 9796,
+  PseudoVRGATHEREI16_VV_M8_E16_M2 = 9797,
+  PseudoVRGATHEREI16_VV_M8_E16_M2_MASK = 9798,
+  PseudoVRGATHEREI16_VV_M8_E16_M4 = 9799,
+  PseudoVRGATHEREI16_VV_M8_E16_M4_MASK = 9800,
+  PseudoVRGATHEREI16_VV_M8_E16_M8 = 9801,
+  PseudoVRGATHEREI16_VV_M8_E16_M8_MASK = 9802,
+  PseudoVRGATHEREI16_VV_M8_E32_M2 = 9803,
+  PseudoVRGATHEREI16_VV_M8_E32_M2_MASK = 9804,
+  PseudoVRGATHEREI16_VV_M8_E32_M4 = 9805,
+  PseudoVRGATHEREI16_VV_M8_E32_M4_MASK = 9806,
+  PseudoVRGATHEREI16_VV_M8_E32_M8 = 9807,
+  PseudoVRGATHEREI16_VV_M8_E32_M8_MASK = 9808,
+  PseudoVRGATHEREI16_VV_M8_E64_M2 = 9809,
+  PseudoVRGATHEREI16_VV_M8_E64_M2_MASK = 9810,
+  PseudoVRGATHEREI16_VV_M8_E64_M4 = 9811,
+  PseudoVRGATHEREI16_VV_M8_E64_M4_MASK = 9812,
+  PseudoVRGATHEREI16_VV_M8_E64_M8 = 9813,
+  PseudoVRGATHEREI16_VV_M8_E64_M8_MASK = 9814,
+  PseudoVRGATHEREI16_VV_M8_E8_M2 = 9815,
+  PseudoVRGATHEREI16_VV_M8_E8_M2_MASK = 9816,
+  PseudoVRGATHEREI16_VV_M8_E8_M4 = 9817,
+  PseudoVRGATHEREI16_VV_M8_E8_M4_MASK = 9818,
+  PseudoVRGATHEREI16_VV_M8_E8_M8 = 9819,
+  PseudoVRGATHEREI16_VV_M8_E8_M8_MASK = 9820,
+  PseudoVRGATHEREI16_VV_MF2_E16_M1 = 9821,
+  PseudoVRGATHEREI16_VV_MF2_E16_M1_MASK = 9822,
+  PseudoVRGATHEREI16_VV_MF2_E16_MF2 = 9823,
+  PseudoVRGATHEREI16_VV_MF2_E16_MF2_MASK = 9824,
+  PseudoVRGATHEREI16_VV_MF2_E16_MF4 = 9825,
+  PseudoVRGATHEREI16_VV_MF2_E16_MF4_MASK = 9826,
+  PseudoVRGATHEREI16_VV_MF2_E16_MF8 = 9827,
+  PseudoVRGATHEREI16_VV_MF2_E16_MF8_MASK = 9828,
+  PseudoVRGATHEREI16_VV_MF2_E32_M1 = 9829,
+  PseudoVRGATHEREI16_VV_MF2_E32_M1_MASK = 9830,
+  PseudoVRGATHEREI16_VV_MF2_E32_MF2 = 9831,
+  PseudoVRGATHEREI16_VV_MF2_E32_MF2_MASK = 9832,
+  PseudoVRGATHEREI16_VV_MF2_E32_MF4 = 9833,
+  PseudoVRGATHEREI16_VV_MF2_E32_MF4_MASK = 9834,
+  PseudoVRGATHEREI16_VV_MF2_E32_MF8 = 9835,
+  PseudoVRGATHEREI16_VV_MF2_E32_MF8_MASK = 9836,
+  PseudoVRGATHEREI16_VV_MF2_E8_M1 = 9837,
+  PseudoVRGATHEREI16_VV_MF2_E8_M1_MASK = 9838,
+  PseudoVRGATHEREI16_VV_MF2_E8_MF2 = 9839,
+  PseudoVRGATHEREI16_VV_MF2_E8_MF2_MASK = 9840,
+  PseudoVRGATHEREI16_VV_MF2_E8_MF4 = 9841,
+  PseudoVRGATHEREI16_VV_MF2_E8_MF4_MASK = 9842,
+  PseudoVRGATHEREI16_VV_MF2_E8_MF8 = 9843,
+  PseudoVRGATHEREI16_VV_MF2_E8_MF8_MASK = 9844,
+  PseudoVRGATHEREI16_VV_MF4_E16_MF2 = 9845,
+  PseudoVRGATHEREI16_VV_MF4_E16_MF2_MASK = 9846,
+  PseudoVRGATHEREI16_VV_MF4_E16_MF4 = 9847,
+  PseudoVRGATHEREI16_VV_MF4_E16_MF4_MASK = 9848,
+  PseudoVRGATHEREI16_VV_MF4_E16_MF8 = 9849,
+  PseudoVRGATHEREI16_VV_MF4_E16_MF8_MASK = 9850,
+  PseudoVRGATHEREI16_VV_MF4_E8_MF2 = 9851,
+  PseudoVRGATHEREI16_VV_MF4_E8_MF2_MASK = 9852,
+  PseudoVRGATHEREI16_VV_MF4_E8_MF4 = 9853,
+  PseudoVRGATHEREI16_VV_MF4_E8_MF4_MASK = 9854,
+  PseudoVRGATHEREI16_VV_MF4_E8_MF8 = 9855,
+  PseudoVRGATHEREI16_VV_MF4_E8_MF8_MASK = 9856,
+  PseudoVRGATHEREI16_VV_MF8_E8_MF4 = 9857,
+  PseudoVRGATHEREI16_VV_MF8_E8_MF4_MASK = 9858,
+  PseudoVRGATHEREI16_VV_MF8_E8_MF8 = 9859,
+  PseudoVRGATHEREI16_VV_MF8_E8_MF8_MASK = 9860,
+  PseudoVRGATHER_VI_M1 = 9861,
+  PseudoVRGATHER_VI_M1_MASK = 9862,
+  PseudoVRGATHER_VI_M2 = 9863,
+  PseudoVRGATHER_VI_M2_MASK = 9864,
+  PseudoVRGATHER_VI_M4 = 9865,
+  PseudoVRGATHER_VI_M4_MASK = 9866,
+  PseudoVRGATHER_VI_M8 = 9867,
+  PseudoVRGATHER_VI_M8_MASK = 9868,
+  PseudoVRGATHER_VI_MF2 = 9869,
+  PseudoVRGATHER_VI_MF2_MASK = 9870,
+  PseudoVRGATHER_VI_MF4 = 9871,
+  PseudoVRGATHER_VI_MF4_MASK = 9872,
+  PseudoVRGATHER_VI_MF8 = 9873,
+  PseudoVRGATHER_VI_MF8_MASK = 9874,
+  PseudoVRGATHER_VV_M1_E16 = 9875,
+  PseudoVRGATHER_VV_M1_E16_MASK = 9876,
+  PseudoVRGATHER_VV_M1_E32 = 9877,
+  PseudoVRGATHER_VV_M1_E32_MASK = 9878,
+  PseudoVRGATHER_VV_M1_E64 = 9879,
+  PseudoVRGATHER_VV_M1_E64_MASK = 9880,
+  PseudoVRGATHER_VV_M1_E8 = 9881,
+  PseudoVRGATHER_VV_M1_E8_MASK = 9882,
+  PseudoVRGATHER_VV_M2_E16 = 9883,
+  PseudoVRGATHER_VV_M2_E16_MASK = 9884,
+  PseudoVRGATHER_VV_M2_E32 = 9885,
+  PseudoVRGATHER_VV_M2_E32_MASK = 9886,
+  PseudoVRGATHER_VV_M2_E64 = 9887,
+  PseudoVRGATHER_VV_M2_E64_MASK = 9888,
+  PseudoVRGATHER_VV_M2_E8 = 9889,
+  PseudoVRGATHER_VV_M2_E8_MASK = 9890,
+  PseudoVRGATHER_VV_M4_E16 = 9891,
+  PseudoVRGATHER_VV_M4_E16_MASK = 9892,
+  PseudoVRGATHER_VV_M4_E32 = 9893,
+  PseudoVRGATHER_VV_M4_E32_MASK = 9894,
+  PseudoVRGATHER_VV_M4_E64 = 9895,
+  PseudoVRGATHER_VV_M4_E64_MASK = 9896,
+  PseudoVRGATHER_VV_M4_E8 = 9897,
+  PseudoVRGATHER_VV_M4_E8_MASK = 9898,
+  PseudoVRGATHER_VV_M8_E16 = 9899,
+  PseudoVRGATHER_VV_M8_E16_MASK = 9900,
+  PseudoVRGATHER_VV_M8_E32 = 9901,
+  PseudoVRGATHER_VV_M8_E32_MASK = 9902,
+  PseudoVRGATHER_VV_M8_E64 = 9903,
+  PseudoVRGATHER_VV_M8_E64_MASK = 9904,
+  PseudoVRGATHER_VV_M8_E8 = 9905,
+  PseudoVRGATHER_VV_M8_E8_MASK = 9906,
+  PseudoVRGATHER_VV_MF2_E16 = 9907,
+  PseudoVRGATHER_VV_MF2_E16_MASK = 9908,
+  PseudoVRGATHER_VV_MF2_E32 = 9909,
+  PseudoVRGATHER_VV_MF2_E32_MASK = 9910,
+  PseudoVRGATHER_VV_MF2_E8 = 9911,
+  PseudoVRGATHER_VV_MF2_E8_MASK = 9912,
+  PseudoVRGATHER_VV_MF4_E16 = 9913,
+  PseudoVRGATHER_VV_MF4_E16_MASK = 9914,
+  PseudoVRGATHER_VV_MF4_E8 = 9915,
+  PseudoVRGATHER_VV_MF4_E8_MASK = 9916,
+  PseudoVRGATHER_VV_MF8_E8 = 9917,
+  PseudoVRGATHER_VV_MF8_E8_MASK = 9918,
+  PseudoVRGATHER_VX_M1 = 9919,
+  PseudoVRGATHER_VX_M1_MASK = 9920,
+  PseudoVRGATHER_VX_M2 = 9921,
+  PseudoVRGATHER_VX_M2_MASK = 9922,
+  PseudoVRGATHER_VX_M4 = 9923,
+  PseudoVRGATHER_VX_M4_MASK = 9924,
+  PseudoVRGATHER_VX_M8 = 9925,
+  PseudoVRGATHER_VX_M8_MASK = 9926,
+  PseudoVRGATHER_VX_MF2 = 9927,
+  PseudoVRGATHER_VX_MF2_MASK = 9928,
+  PseudoVRGATHER_VX_MF4 = 9929,
+  PseudoVRGATHER_VX_MF4_MASK = 9930,
+  PseudoVRGATHER_VX_MF8 = 9931,
+  PseudoVRGATHER_VX_MF8_MASK = 9932,
+  PseudoVROL_VV_M1 = 9933,
+  PseudoVROL_VV_M1_MASK = 9934,
+  PseudoVROL_VV_M2 = 9935,
+  PseudoVROL_VV_M2_MASK = 9936,
+  PseudoVROL_VV_M4 = 9937,
+  PseudoVROL_VV_M4_MASK = 9938,
+  PseudoVROL_VV_M8 = 9939,
+  PseudoVROL_VV_M8_MASK = 9940,
+  PseudoVROL_VV_MF2 = 9941,
+  PseudoVROL_VV_MF2_MASK = 9942,
+  PseudoVROL_VV_MF4 = 9943,
+  PseudoVROL_VV_MF4_MASK = 9944,
+  PseudoVROL_VV_MF8 = 9945,
+  PseudoVROL_VV_MF8_MASK = 9946,
+  PseudoVROL_VX_M1 = 9947,
+  PseudoVROL_VX_M1_MASK = 9948,
+  PseudoVROL_VX_M2 = 9949,
+  PseudoVROL_VX_M2_MASK = 9950,
+  PseudoVROL_VX_M4 = 9951,
+  PseudoVROL_VX_M4_MASK = 9952,
+  PseudoVROL_VX_M8 = 9953,
+  PseudoVROL_VX_M8_MASK = 9954,
+  PseudoVROL_VX_MF2 = 9955,
+  PseudoVROL_VX_MF2_MASK = 9956,
+  PseudoVROL_VX_MF4 = 9957,
+  PseudoVROL_VX_MF4_MASK = 9958,
+  PseudoVROL_VX_MF8 = 9959,
+  PseudoVROL_VX_MF8_MASK = 9960,
+  PseudoVROR_VI_M1 = 9961,
+  PseudoVROR_VI_M1_MASK = 9962,
+  PseudoVROR_VI_M2 = 9963,
+  PseudoVROR_VI_M2_MASK = 9964,
+  PseudoVROR_VI_M4 = 9965,
+  PseudoVROR_VI_M4_MASK = 9966,
+  PseudoVROR_VI_M8 = 9967,
+  PseudoVROR_VI_M8_MASK = 9968,
+  PseudoVROR_VI_MF2 = 9969,
+  PseudoVROR_VI_MF2_MASK = 9970,
+  PseudoVROR_VI_MF4 = 9971,
+  PseudoVROR_VI_MF4_MASK = 9972,
+  PseudoVROR_VI_MF8 = 9973,
+  PseudoVROR_VI_MF8_MASK = 9974,
+  PseudoVROR_VV_M1 = 9975,
+  PseudoVROR_VV_M1_MASK = 9976,
+  PseudoVROR_VV_M2 = 9977,
+  PseudoVROR_VV_M2_MASK = 9978,
+  PseudoVROR_VV_M4 = 9979,
+  PseudoVROR_VV_M4_MASK = 9980,
+  PseudoVROR_VV_M8 = 9981,
+  PseudoVROR_VV_M8_MASK = 9982,
+  PseudoVROR_VV_MF2 = 9983,
+  PseudoVROR_VV_MF2_MASK = 9984,
+  PseudoVROR_VV_MF4 = 9985,
+  PseudoVROR_VV_MF4_MASK = 9986,
+  PseudoVROR_VV_MF8 = 9987,
+  PseudoVROR_VV_MF8_MASK = 9988,
+  PseudoVROR_VX_M1 = 9989,
+  PseudoVROR_VX_M1_MASK = 9990,
+  PseudoVROR_VX_M2 = 9991,
+  PseudoVROR_VX_M2_MASK = 9992,
+  PseudoVROR_VX_M4 = 9993,
+  PseudoVROR_VX_M4_MASK = 9994,
+  PseudoVROR_VX_M8 = 9995,
+  PseudoVROR_VX_M8_MASK = 9996,
+  PseudoVROR_VX_MF2 = 9997,
+  PseudoVROR_VX_MF2_MASK = 9998,
+  PseudoVROR_VX_MF4 = 9999,
+  PseudoVROR_VX_MF4_MASK = 10000,
+  PseudoVROR_VX_MF8 = 10001,
+  PseudoVROR_VX_MF8_MASK = 10002,
+  PseudoVRSUB_VI_M1 = 10003,
+  PseudoVRSUB_VI_M1_MASK = 10004,
+  PseudoVRSUB_VI_M2 = 10005,
+  PseudoVRSUB_VI_M2_MASK = 10006,
+  PseudoVRSUB_VI_M4 = 10007,
+  PseudoVRSUB_VI_M4_MASK = 10008,
+  PseudoVRSUB_VI_M8 = 10009,
+  PseudoVRSUB_VI_M8_MASK = 10010,
+  PseudoVRSUB_VI_MF2 = 10011,
+  PseudoVRSUB_VI_MF2_MASK = 10012,
+  PseudoVRSUB_VI_MF4 = 10013,
+  PseudoVRSUB_VI_MF4_MASK = 10014,
+  PseudoVRSUB_VI_MF8 = 10015,
+  PseudoVRSUB_VI_MF8_MASK = 10016,
+  PseudoVRSUB_VX_M1 = 10017,
+  PseudoVRSUB_VX_M1_MASK = 10018,
+  PseudoVRSUB_VX_M2 = 10019,
+  PseudoVRSUB_VX_M2_MASK = 10020,
+  PseudoVRSUB_VX_M4 = 10021,
+  PseudoVRSUB_VX_M4_MASK = 10022,
+  PseudoVRSUB_VX_M8 = 10023,
+  PseudoVRSUB_VX_M8_MASK = 10024,
+  PseudoVRSUB_VX_MF2 = 10025,
+  PseudoVRSUB_VX_MF2_MASK = 10026,
+  PseudoVRSUB_VX_MF4 = 10027,
+  PseudoVRSUB_VX_MF4_MASK = 10028,
+  PseudoVRSUB_VX_MF8 = 10029,
+  PseudoVRSUB_VX_MF8_MASK = 10030,
+  PseudoVSADDU_VI_M1 = 10031,
+  PseudoVSADDU_VI_M1_MASK = 10032,
+  PseudoVSADDU_VI_M2 = 10033,
+  PseudoVSADDU_VI_M2_MASK = 10034,
+  PseudoVSADDU_VI_M4 = 10035,
+  PseudoVSADDU_VI_M4_MASK = 10036,
+  PseudoVSADDU_VI_M8 = 10037,
+  PseudoVSADDU_VI_M8_MASK = 10038,
+  PseudoVSADDU_VI_MF2 = 10039,
+  PseudoVSADDU_VI_MF2_MASK = 10040,
+  PseudoVSADDU_VI_MF4 = 10041,
+  PseudoVSADDU_VI_MF4_MASK = 10042,
+  PseudoVSADDU_VI_MF8 = 10043,
+  PseudoVSADDU_VI_MF8_MASK = 10044,
+  PseudoVSADDU_VV_M1 = 10045,
+  PseudoVSADDU_VV_M1_MASK = 10046,
+  PseudoVSADDU_VV_M2 = 10047,
+  PseudoVSADDU_VV_M2_MASK = 10048,
+  PseudoVSADDU_VV_M4 = 10049,
+  PseudoVSADDU_VV_M4_MASK = 10050,
+  PseudoVSADDU_VV_M8 = 10051,
+  PseudoVSADDU_VV_M8_MASK = 10052,
+  PseudoVSADDU_VV_MF2 = 10053,
+  PseudoVSADDU_VV_MF2_MASK = 10054,
+  PseudoVSADDU_VV_MF4 = 10055,
+  PseudoVSADDU_VV_MF4_MASK = 10056,
+  PseudoVSADDU_VV_MF8 = 10057,
+  PseudoVSADDU_VV_MF8_MASK = 10058,
+  PseudoVSADDU_VX_M1 = 10059,
+  PseudoVSADDU_VX_M1_MASK = 10060,
+  PseudoVSADDU_VX_M2 = 10061,
+  PseudoVSADDU_VX_M2_MASK = 10062,
+  PseudoVSADDU_VX_M4 = 10063,
+  PseudoVSADDU_VX_M4_MASK = 10064,
+  PseudoVSADDU_VX_M8 = 10065,
+  PseudoVSADDU_VX_M8_MASK = 10066,
+  PseudoVSADDU_VX_MF2 = 10067,
+  PseudoVSADDU_VX_MF2_MASK = 10068,
+  PseudoVSADDU_VX_MF4 = 10069,
+  PseudoVSADDU_VX_MF4_MASK = 10070,
+  PseudoVSADDU_VX_MF8 = 10071,
+  PseudoVSADDU_VX_MF8_MASK = 10072,
+  PseudoVSADD_VI_M1 = 10073,
+  PseudoVSADD_VI_M1_MASK = 10074,
+  PseudoVSADD_VI_M2 = 10075,
+  PseudoVSADD_VI_M2_MASK = 10076,
+  PseudoVSADD_VI_M4 = 10077,
+  PseudoVSADD_VI_M4_MASK = 10078,
+  PseudoVSADD_VI_M8 = 10079,
+  PseudoVSADD_VI_M8_MASK = 10080,
+  PseudoVSADD_VI_MF2 = 10081,
+  PseudoVSADD_VI_MF2_MASK = 10082,
+  PseudoVSADD_VI_MF4 = 10083,
+  PseudoVSADD_VI_MF4_MASK = 10084,
+  PseudoVSADD_VI_MF8 = 10085,
+  PseudoVSADD_VI_MF8_MASK = 10086,
+  PseudoVSADD_VV_M1 = 10087,
+  PseudoVSADD_VV_M1_MASK = 10088,
+  PseudoVSADD_VV_M2 = 10089,
+  PseudoVSADD_VV_M2_MASK = 10090,
+  PseudoVSADD_VV_M4 = 10091,
+  PseudoVSADD_VV_M4_MASK = 10092,
+  PseudoVSADD_VV_M8 = 10093,
+  PseudoVSADD_VV_M8_MASK = 10094,
+  PseudoVSADD_VV_MF2 = 10095,
+  PseudoVSADD_VV_MF2_MASK = 10096,
+  PseudoVSADD_VV_MF4 = 10097,
+  PseudoVSADD_VV_MF4_MASK = 10098,
+  PseudoVSADD_VV_MF8 = 10099,
+  PseudoVSADD_VV_MF8_MASK = 10100,
+  PseudoVSADD_VX_M1 = 10101,
+  PseudoVSADD_VX_M1_MASK = 10102,
+  PseudoVSADD_VX_M2 = 10103,
+  PseudoVSADD_VX_M2_MASK = 10104,
+  PseudoVSADD_VX_M4 = 10105,
+  PseudoVSADD_VX_M4_MASK = 10106,
+  PseudoVSADD_VX_M8 = 10107,
+  PseudoVSADD_VX_M8_MASK = 10108,
+  PseudoVSADD_VX_MF2 = 10109,
+  PseudoVSADD_VX_MF2_MASK = 10110,
+  PseudoVSADD_VX_MF4 = 10111,
+  PseudoVSADD_VX_MF4_MASK = 10112,
+  PseudoVSADD_VX_MF8 = 10113,
+  PseudoVSADD_VX_MF8_MASK = 10114,
+  PseudoVSBC_VVM_M1 = 10115,
+  PseudoVSBC_VVM_M2 = 10116,
+  PseudoVSBC_VVM_M4 = 10117,
+  PseudoVSBC_VVM_M8 = 10118,
+  PseudoVSBC_VVM_MF2 = 10119,
+  PseudoVSBC_VVM_MF4 = 10120,
+  PseudoVSBC_VVM_MF8 = 10121,
+  PseudoVSBC_VXM_M1 = 10122,
+  PseudoVSBC_VXM_M2 = 10123,
+  PseudoVSBC_VXM_M4 = 10124,
+  PseudoVSBC_VXM_M8 = 10125,
+  PseudoVSBC_VXM_MF2 = 10126,
+  PseudoVSBC_VXM_MF4 = 10127,
+  PseudoVSBC_VXM_MF8 = 10128,
+  PseudoVSE16_V_M1 = 10129,
+  PseudoVSE16_V_M1_MASK = 10130,
+  PseudoVSE16_V_M2 = 10131,
+  PseudoVSE16_V_M2_MASK = 10132,
+  PseudoVSE16_V_M4 = 10133,
+  PseudoVSE16_V_M4_MASK = 10134,
+  PseudoVSE16_V_M8 = 10135,
+  PseudoVSE16_V_M8_MASK = 10136,
+  PseudoVSE16_V_MF2 = 10137,
+  PseudoVSE16_V_MF2_MASK = 10138,
+  PseudoVSE16_V_MF4 = 10139,
+  PseudoVSE16_V_MF4_MASK = 10140,
+  PseudoVSE32_V_M1 = 10141,
+  PseudoVSE32_V_M1_MASK = 10142,
+  PseudoVSE32_V_M2 = 10143,
+  PseudoVSE32_V_M2_MASK = 10144,
+  PseudoVSE32_V_M4 = 10145,
+  PseudoVSE32_V_M4_MASK = 10146,
+  PseudoVSE32_V_M8 = 10147,
+  PseudoVSE32_V_M8_MASK = 10148,
+  PseudoVSE32_V_MF2 = 10149,
+  PseudoVSE32_V_MF2_MASK = 10150,
+  PseudoVSE64_V_M1 = 10151,
+  PseudoVSE64_V_M1_MASK = 10152,
+  PseudoVSE64_V_M2 = 10153,
+  PseudoVSE64_V_M2_MASK = 10154,
+  PseudoVSE64_V_M4 = 10155,
+  PseudoVSE64_V_M4_MASK = 10156,
+  PseudoVSE64_V_M8 = 10157,
+  PseudoVSE64_V_M8_MASK = 10158,
+  PseudoVSE8_V_M1 = 10159,
+  PseudoVSE8_V_M1_MASK = 10160,
+  PseudoVSE8_V_M2 = 10161,
+  PseudoVSE8_V_M2_MASK = 10162,
+  PseudoVSE8_V_M4 = 10163,
+  PseudoVSE8_V_M4_MASK = 10164,
+  PseudoVSE8_V_M8 = 10165,
+  PseudoVSE8_V_M8_MASK = 10166,
+  PseudoVSE8_V_MF2 = 10167,
+  PseudoVSE8_V_MF2_MASK = 10168,
+  PseudoVSE8_V_MF4 = 10169,
+  PseudoVSE8_V_MF4_MASK = 10170,
+  PseudoVSE8_V_MF8 = 10171,
+  PseudoVSE8_V_MF8_MASK = 10172,
+  PseudoVSETIVLI = 10173,
+  PseudoVSETVLI = 10174,
+  PseudoVSETVLIX0 = 10175,
+  PseudoVSETVLIX0X0 = 10176,
+  PseudoVSEXT_VF2_M1 = 10177,
+  PseudoVSEXT_VF2_M1_MASK = 10178,
+  PseudoVSEXT_VF2_M2 = 10179,
+  PseudoVSEXT_VF2_M2_MASK = 10180,
+  PseudoVSEXT_VF2_M4 = 10181,
+  PseudoVSEXT_VF2_M4_MASK = 10182,
+  PseudoVSEXT_VF2_M8 = 10183,
+  PseudoVSEXT_VF2_M8_MASK = 10184,
+  PseudoVSEXT_VF2_MF2 = 10185,
+  PseudoVSEXT_VF2_MF2_MASK = 10186,
+  PseudoVSEXT_VF2_MF4 = 10187,
+  PseudoVSEXT_VF2_MF4_MASK = 10188,
+  PseudoVSEXT_VF4_M1 = 10189,
+  PseudoVSEXT_VF4_M1_MASK = 10190,
+  PseudoVSEXT_VF4_M2 = 10191,
+  PseudoVSEXT_VF4_M2_MASK = 10192,
+  PseudoVSEXT_VF4_M4 = 10193,
+  PseudoVSEXT_VF4_M4_MASK = 10194,
+  PseudoVSEXT_VF4_M8 = 10195,
+  PseudoVSEXT_VF4_M8_MASK = 10196,
+  PseudoVSEXT_VF4_MF2 = 10197,
+  PseudoVSEXT_VF4_MF2_MASK = 10198,
+  PseudoVSEXT_VF8_M1 = 10199,
+  PseudoVSEXT_VF8_M1_MASK = 10200,
+  PseudoVSEXT_VF8_M2 = 10201,
+  PseudoVSEXT_VF8_M2_MASK = 10202,
+  PseudoVSEXT_VF8_M4 = 10203,
+  PseudoVSEXT_VF8_M4_MASK = 10204,
+  PseudoVSEXT_VF8_M8 = 10205,
+  PseudoVSEXT_VF8_M8_MASK = 10206,
+  PseudoVSHA2CH_VV_M1 = 10207,
+  PseudoVSHA2CH_VV_M2 = 10208,
+  PseudoVSHA2CH_VV_M4 = 10209,
+  PseudoVSHA2CH_VV_M8 = 10210,
+  PseudoVSHA2CH_VV_MF2 = 10211,
+  PseudoVSHA2CL_VV_M1 = 10212,
+  PseudoVSHA2CL_VV_M2 = 10213,
+  PseudoVSHA2CL_VV_M4 = 10214,
+  PseudoVSHA2CL_VV_M8 = 10215,
+  PseudoVSHA2CL_VV_MF2 = 10216,
+  PseudoVSHA2MS_VV_M1_E32 = 10217,
+  PseudoVSHA2MS_VV_M1_E64 = 10218,
+  PseudoVSHA2MS_VV_M2_E32 = 10219,
+  PseudoVSHA2MS_VV_M2_E64 = 10220,
+  PseudoVSHA2MS_VV_M4_E32 = 10221,
+  PseudoVSHA2MS_VV_M4_E64 = 10222,
+  PseudoVSHA2MS_VV_M8_E32 = 10223,
+  PseudoVSHA2MS_VV_M8_E64 = 10224,
+  PseudoVSHA2MS_VV_MF2_E32 = 10225,
+  PseudoVSLIDE1DOWN_VX_M1 = 10226,
+  PseudoVSLIDE1DOWN_VX_M1_MASK = 10227,
+  PseudoVSLIDE1DOWN_VX_M2 = 10228,
+  PseudoVSLIDE1DOWN_VX_M2_MASK = 10229,
+  PseudoVSLIDE1DOWN_VX_M4 = 10230,
+  PseudoVSLIDE1DOWN_VX_M4_MASK = 10231,
+  PseudoVSLIDE1DOWN_VX_M8 = 10232,
+  PseudoVSLIDE1DOWN_VX_M8_MASK = 10233,
+  PseudoVSLIDE1DOWN_VX_MF2 = 10234,
+  PseudoVSLIDE1DOWN_VX_MF2_MASK = 10235,
+  PseudoVSLIDE1DOWN_VX_MF4 = 10236,
+  PseudoVSLIDE1DOWN_VX_MF4_MASK = 10237,
+  PseudoVSLIDE1DOWN_VX_MF8 = 10238,
+  PseudoVSLIDE1DOWN_VX_MF8_MASK = 10239,
+  PseudoVSLIDE1UP_VX_M1 = 10240,
+  PseudoVSLIDE1UP_VX_M1_MASK = 10241,
+  PseudoVSLIDE1UP_VX_M2 = 10242,
+  PseudoVSLIDE1UP_VX_M2_MASK = 10243,
+  PseudoVSLIDE1UP_VX_M4 = 10244,
+  PseudoVSLIDE1UP_VX_M4_MASK = 10245,
+  PseudoVSLIDE1UP_VX_M8 = 10246,
+  PseudoVSLIDE1UP_VX_M8_MASK = 10247,
+  PseudoVSLIDE1UP_VX_MF2 = 10248,
+  PseudoVSLIDE1UP_VX_MF2_MASK = 10249,
+  PseudoVSLIDE1UP_VX_MF4 = 10250,
+  PseudoVSLIDE1UP_VX_MF4_MASK = 10251,
+  PseudoVSLIDE1UP_VX_MF8 = 10252,
+  PseudoVSLIDE1UP_VX_MF8_MASK = 10253,
+  PseudoVSLIDEDOWN_VI_M1 = 10254,
+  PseudoVSLIDEDOWN_VI_M1_MASK = 10255,
+  PseudoVSLIDEDOWN_VI_M2 = 10256,
+  PseudoVSLIDEDOWN_VI_M2_MASK = 10257,
+  PseudoVSLIDEDOWN_VI_M4 = 10258,
+  PseudoVSLIDEDOWN_VI_M4_MASK = 10259,
+  PseudoVSLIDEDOWN_VI_M8 = 10260,
+  PseudoVSLIDEDOWN_VI_M8_MASK = 10261,
+  PseudoVSLIDEDOWN_VI_MF2 = 10262,
+  PseudoVSLIDEDOWN_VI_MF2_MASK = 10263,
+  PseudoVSLIDEDOWN_VI_MF4 = 10264,
+  PseudoVSLIDEDOWN_VI_MF4_MASK = 10265,
+  PseudoVSLIDEDOWN_VI_MF8 = 10266,
+  PseudoVSLIDEDOWN_VI_MF8_MASK = 10267,
+  PseudoVSLIDEDOWN_VX_M1 = 10268,
+  PseudoVSLIDEDOWN_VX_M1_MASK = 10269,
+  PseudoVSLIDEDOWN_VX_M2 = 10270,
+  PseudoVSLIDEDOWN_VX_M2_MASK = 10271,
+  PseudoVSLIDEDOWN_VX_M4 = 10272,
+  PseudoVSLIDEDOWN_VX_M4_MASK = 10273,
+  PseudoVSLIDEDOWN_VX_M8 = 10274,
+  PseudoVSLIDEDOWN_VX_M8_MASK = 10275,
+  PseudoVSLIDEDOWN_VX_MF2 = 10276,
+  PseudoVSLIDEDOWN_VX_MF2_MASK = 10277,
+  PseudoVSLIDEDOWN_VX_MF4 = 10278,
+  PseudoVSLIDEDOWN_VX_MF4_MASK = 10279,
+  PseudoVSLIDEDOWN_VX_MF8 = 10280,
+  PseudoVSLIDEDOWN_VX_MF8_MASK = 10281,
+  PseudoVSLIDEUP_VI_M1 = 10282,
+  PseudoVSLIDEUP_VI_M1_MASK = 10283,
+  PseudoVSLIDEUP_VI_M2 = 10284,
+  PseudoVSLIDEUP_VI_M2_MASK = 10285,
+  PseudoVSLIDEUP_VI_M4 = 10286,
+  PseudoVSLIDEUP_VI_M4_MASK = 10287,
+  PseudoVSLIDEUP_VI_M8 = 10288,
+  PseudoVSLIDEUP_VI_M8_MASK = 10289,
+  PseudoVSLIDEUP_VI_MF2 = 10290,
+  PseudoVSLIDEUP_VI_MF2_MASK = 10291,
+  PseudoVSLIDEUP_VI_MF4 = 10292,
+  PseudoVSLIDEUP_VI_MF4_MASK = 10293,
+  PseudoVSLIDEUP_VI_MF8 = 10294,
+  PseudoVSLIDEUP_VI_MF8_MASK = 10295,
+  PseudoVSLIDEUP_VX_M1 = 10296,
+  PseudoVSLIDEUP_VX_M1_MASK = 10297,
+  PseudoVSLIDEUP_VX_M2 = 10298,
+  PseudoVSLIDEUP_VX_M2_MASK = 10299,
+  PseudoVSLIDEUP_VX_M4 = 10300,
+  PseudoVSLIDEUP_VX_M4_MASK = 10301,
+  PseudoVSLIDEUP_VX_M8 = 10302,
+  PseudoVSLIDEUP_VX_M8_MASK = 10303,
+  PseudoVSLIDEUP_VX_MF2 = 10304,
+  PseudoVSLIDEUP_VX_MF2_MASK = 10305,
+  PseudoVSLIDEUP_VX_MF4 = 10306,
+  PseudoVSLIDEUP_VX_MF4_MASK = 10307,
+  PseudoVSLIDEUP_VX_MF8 = 10308,
+  PseudoVSLIDEUP_VX_MF8_MASK = 10309,
+  PseudoVSLL_VI_M1 = 10310,
+  PseudoVSLL_VI_M1_MASK = 10311,
+  PseudoVSLL_VI_M2 = 10312,
+  PseudoVSLL_VI_M2_MASK = 10313,
+  PseudoVSLL_VI_M4 = 10314,
+  PseudoVSLL_VI_M4_MASK = 10315,
+  PseudoVSLL_VI_M8 = 10316,
+  PseudoVSLL_VI_M8_MASK = 10317,
+  PseudoVSLL_VI_MF2 = 10318,
+  PseudoVSLL_VI_MF2_MASK = 10319,
+  PseudoVSLL_VI_MF4 = 10320,
+  PseudoVSLL_VI_MF4_MASK = 10321,
+  PseudoVSLL_VI_MF8 = 10322,
+  PseudoVSLL_VI_MF8_MASK = 10323,
+  PseudoVSLL_VV_M1 = 10324,
+  PseudoVSLL_VV_M1_MASK = 10325,
+  PseudoVSLL_VV_M2 = 10326,
+  PseudoVSLL_VV_M2_MASK = 10327,
+  PseudoVSLL_VV_M4 = 10328,
+  PseudoVSLL_VV_M4_MASK = 10329,
+  PseudoVSLL_VV_M8 = 10330,
+  PseudoVSLL_VV_M8_MASK = 10331,
+  PseudoVSLL_VV_MF2 = 10332,
+  PseudoVSLL_VV_MF2_MASK = 10333,
+  PseudoVSLL_VV_MF4 = 10334,
+  PseudoVSLL_VV_MF4_MASK = 10335,
+  PseudoVSLL_VV_MF8 = 10336,
+  PseudoVSLL_VV_MF8_MASK = 10337,
+  PseudoVSLL_VX_M1 = 10338,
+  PseudoVSLL_VX_M1_MASK = 10339,
+  PseudoVSLL_VX_M2 = 10340,
+  PseudoVSLL_VX_M2_MASK = 10341,
+  PseudoVSLL_VX_M4 = 10342,
+  PseudoVSLL_VX_M4_MASK = 10343,
+  PseudoVSLL_VX_M8 = 10344,
+  PseudoVSLL_VX_M8_MASK = 10345,
+  PseudoVSLL_VX_MF2 = 10346,
+  PseudoVSLL_VX_MF2_MASK = 10347,
+  PseudoVSLL_VX_MF4 = 10348,
+  PseudoVSLL_VX_MF4_MASK = 10349,
+  PseudoVSLL_VX_MF8 = 10350,
+  PseudoVSLL_VX_MF8_MASK = 10351,
+  PseudoVSM3C_VI_M1 = 10352,
+  PseudoVSM3C_VI_M2 = 10353,
+  PseudoVSM3C_VI_M4 = 10354,
+  PseudoVSM3C_VI_M8 = 10355,
+  PseudoVSM3C_VI_MF2 = 10356,
+  PseudoVSM3ME_VV_M1 = 10357,
+  PseudoVSM3ME_VV_M2 = 10358,
+  PseudoVSM3ME_VV_M4 = 10359,
+  PseudoVSM3ME_VV_M8 = 10360,
+  PseudoVSM3ME_VV_MF2 = 10361,
+  PseudoVSM4K_VI_M1 = 10362,
+  PseudoVSM4K_VI_M2 = 10363,
+  PseudoVSM4K_VI_M4 = 10364,
+  PseudoVSM4K_VI_M8 = 10365,
+  PseudoVSM4K_VI_MF2 = 10366,
+  PseudoVSM4R_VS_M1_M1 = 10367,
+  PseudoVSM4R_VS_M1_MF2 = 10368,
+  PseudoVSM4R_VS_M1_MF4 = 10369,
+  PseudoVSM4R_VS_M1_MF8 = 10370,
+  PseudoVSM4R_VS_M2_M1 = 10371,
+  PseudoVSM4R_VS_M2_M2 = 10372,
+  PseudoVSM4R_VS_M2_MF2 = 10373,
+  PseudoVSM4R_VS_M2_MF4 = 10374,
+  PseudoVSM4R_VS_M2_MF8 = 10375,
+  PseudoVSM4R_VS_M4_M1 = 10376,
+  PseudoVSM4R_VS_M4_M2 = 10377,
+  PseudoVSM4R_VS_M4_M4 = 10378,
+  PseudoVSM4R_VS_M4_MF2 = 10379,
+  PseudoVSM4R_VS_M4_MF4 = 10380,
+  PseudoVSM4R_VS_M4_MF8 = 10381,
+  PseudoVSM4R_VS_M8_M1 = 10382,
+  PseudoVSM4R_VS_M8_M2 = 10383,
+  PseudoVSM4R_VS_M8_M4 = 10384,
+  PseudoVSM4R_VS_M8_MF2 = 10385,
+  PseudoVSM4R_VS_M8_MF4 = 10386,
+  PseudoVSM4R_VS_M8_MF8 = 10387,
+  PseudoVSM4R_VS_MF2_MF2 = 10388,
+  PseudoVSM4R_VS_MF2_MF4 = 10389,
+  PseudoVSM4R_VS_MF2_MF8 = 10390,
+  PseudoVSM4R_VV_M1 = 10391,
+  PseudoVSM4R_VV_M2 = 10392,
+  PseudoVSM4R_VV_M4 = 10393,
+  PseudoVSM4R_VV_M8 = 10394,
+  PseudoVSM4R_VV_MF2 = 10395,
+  PseudoVSMUL_VV_M1 = 10396,
+  PseudoVSMUL_VV_M1_MASK = 10397,
+  PseudoVSMUL_VV_M2 = 10398,
+  PseudoVSMUL_VV_M2_MASK = 10399,
+  PseudoVSMUL_VV_M4 = 10400,
+  PseudoVSMUL_VV_M4_MASK = 10401,
+  PseudoVSMUL_VV_M8 = 10402,
+  PseudoVSMUL_VV_M8_MASK = 10403,
+  PseudoVSMUL_VV_MF2 = 10404,
+  PseudoVSMUL_VV_MF2_MASK = 10405,
+  PseudoVSMUL_VV_MF4 = 10406,
+  PseudoVSMUL_VV_MF4_MASK = 10407,
+  PseudoVSMUL_VV_MF8 = 10408,
+  PseudoVSMUL_VV_MF8_MASK = 10409,
+  PseudoVSMUL_VX_M1 = 10410,
+  PseudoVSMUL_VX_M1_MASK = 10411,
+  PseudoVSMUL_VX_M2 = 10412,
+  PseudoVSMUL_VX_M2_MASK = 10413,
+  PseudoVSMUL_VX_M4 = 10414,
+  PseudoVSMUL_VX_M4_MASK = 10415,
+  PseudoVSMUL_VX_M8 = 10416,
+  PseudoVSMUL_VX_M8_MASK = 10417,
+  PseudoVSMUL_VX_MF2 = 10418,
+  PseudoVSMUL_VX_MF2_MASK = 10419,
+  PseudoVSMUL_VX_MF4 = 10420,
+  PseudoVSMUL_VX_MF4_MASK = 10421,
+  PseudoVSMUL_VX_MF8 = 10422,
+  PseudoVSMUL_VX_MF8_MASK = 10423,
+  PseudoVSM_V_B1 = 10424,
+  PseudoVSM_V_B16 = 10425,
+  PseudoVSM_V_B2 = 10426,
+  PseudoVSM_V_B32 = 10427,
+  PseudoVSM_V_B4 = 10428,
+  PseudoVSM_V_B64 = 10429,
+  PseudoVSM_V_B8 = 10430,
+  PseudoVSOXEI16_V_M1_M1 = 10431,
+  PseudoVSOXEI16_V_M1_M1_MASK = 10432,
+  PseudoVSOXEI16_V_M1_M2 = 10433,
+  PseudoVSOXEI16_V_M1_M2_MASK = 10434,
+  PseudoVSOXEI16_V_M1_M4 = 10435,
+  PseudoVSOXEI16_V_M1_M4_MASK = 10436,
+  PseudoVSOXEI16_V_M1_MF2 = 10437,
+  PseudoVSOXEI16_V_M1_MF2_MASK = 10438,
+  PseudoVSOXEI16_V_M2_M1 = 10439,
+  PseudoVSOXEI16_V_M2_M1_MASK = 10440,
+  PseudoVSOXEI16_V_M2_M2 = 10441,
+  PseudoVSOXEI16_V_M2_M2_MASK = 10442,
+  PseudoVSOXEI16_V_M2_M4 = 10443,
+  PseudoVSOXEI16_V_M2_M4_MASK = 10444,
+  PseudoVSOXEI16_V_M2_M8 = 10445,
+  PseudoVSOXEI16_V_M2_M8_MASK = 10446,
+  PseudoVSOXEI16_V_M4_M2 = 10447,
+  PseudoVSOXEI16_V_M4_M2_MASK = 10448,
+  PseudoVSOXEI16_V_M4_M4 = 10449,
+  PseudoVSOXEI16_V_M4_M4_MASK = 10450,
+  PseudoVSOXEI16_V_M4_M8 = 10451,
+  PseudoVSOXEI16_V_M4_M8_MASK = 10452,
+  PseudoVSOXEI16_V_M8_M4 = 10453,
+  PseudoVSOXEI16_V_M8_M4_MASK = 10454,
+  PseudoVSOXEI16_V_M8_M8 = 10455,
+  PseudoVSOXEI16_V_M8_M8_MASK = 10456,
+  PseudoVSOXEI16_V_MF2_M1 = 10457,
+  PseudoVSOXEI16_V_MF2_M1_MASK = 10458,
+  PseudoVSOXEI16_V_MF2_M2 = 10459,
+  PseudoVSOXEI16_V_MF2_M2_MASK = 10460,
+  PseudoVSOXEI16_V_MF2_MF2 = 10461,
+  PseudoVSOXEI16_V_MF2_MF2_MASK = 10462,
+  PseudoVSOXEI16_V_MF2_MF4 = 10463,
+  PseudoVSOXEI16_V_MF2_MF4_MASK = 10464,
+  PseudoVSOXEI16_V_MF4_M1 = 10465,
+  PseudoVSOXEI16_V_MF4_M1_MASK = 10466,
+  PseudoVSOXEI16_V_MF4_MF2 = 10467,
+  PseudoVSOXEI16_V_MF4_MF2_MASK = 10468,
+  PseudoVSOXEI16_V_MF4_MF4 = 10469,
+  PseudoVSOXEI16_V_MF4_MF4_MASK = 10470,
+  PseudoVSOXEI16_V_MF4_MF8 = 10471,
+  PseudoVSOXEI16_V_MF4_MF8_MASK = 10472,
+  PseudoVSOXEI32_V_M1_M1 = 10473,
+  PseudoVSOXEI32_V_M1_M1_MASK = 10474,
+  PseudoVSOXEI32_V_M1_M2 = 10475,
+  PseudoVSOXEI32_V_M1_M2_MASK = 10476,
+  PseudoVSOXEI32_V_M1_MF2 = 10477,
+  PseudoVSOXEI32_V_M1_MF2_MASK = 10478,
+  PseudoVSOXEI32_V_M1_MF4 = 10479,
+  PseudoVSOXEI32_V_M1_MF4_MASK = 10480,
+  PseudoVSOXEI32_V_M2_M1 = 10481,
+  PseudoVSOXEI32_V_M2_M1_MASK = 10482,
+  PseudoVSOXEI32_V_M2_M2 = 10483,
+  PseudoVSOXEI32_V_M2_M2_MASK = 10484,
+  PseudoVSOXEI32_V_M2_M4 = 10485,
+  PseudoVSOXEI32_V_M2_M4_MASK = 10486,
+  PseudoVSOXEI32_V_M2_MF2 = 10487,
+  PseudoVSOXEI32_V_M2_MF2_MASK = 10488,
+  PseudoVSOXEI32_V_M4_M1 = 10489,
+  PseudoVSOXEI32_V_M4_M1_MASK = 10490,
+  PseudoVSOXEI32_V_M4_M2 = 10491,
+  PseudoVSOXEI32_V_M4_M2_MASK = 10492,
+  PseudoVSOXEI32_V_M4_M4 = 10493,
+  PseudoVSOXEI32_V_M4_M4_MASK = 10494,
+  PseudoVSOXEI32_V_M4_M8 = 10495,
+  PseudoVSOXEI32_V_M4_M8_MASK = 10496,
+  PseudoVSOXEI32_V_M8_M2 = 10497,
+  PseudoVSOXEI32_V_M8_M2_MASK = 10498,
+  PseudoVSOXEI32_V_M8_M4 = 10499,
+  PseudoVSOXEI32_V_M8_M4_MASK = 10500,
+  PseudoVSOXEI32_V_M8_M8 = 10501,
+  PseudoVSOXEI32_V_M8_M8_MASK = 10502,
+  PseudoVSOXEI32_V_MF2_M1 = 10503,
+  PseudoVSOXEI32_V_MF2_M1_MASK = 10504,
+  PseudoVSOXEI32_V_MF2_MF2 = 10505,
+  PseudoVSOXEI32_V_MF2_MF2_MASK = 10506,
+  PseudoVSOXEI32_V_MF2_MF4 = 10507,
+  PseudoVSOXEI32_V_MF2_MF4_MASK = 10508,
+  PseudoVSOXEI32_V_MF2_MF8 = 10509,
+  PseudoVSOXEI32_V_MF2_MF8_MASK = 10510,
+  PseudoVSOXEI64_V_M1_M1 = 10511,
+  PseudoVSOXEI64_V_M1_M1_MASK = 10512,
+  PseudoVSOXEI64_V_M1_MF2 = 10513,
+  PseudoVSOXEI64_V_M1_MF2_MASK = 10514,
+  PseudoVSOXEI64_V_M1_MF4 = 10515,
+  PseudoVSOXEI64_V_M1_MF4_MASK = 10516,
+  PseudoVSOXEI64_V_M1_MF8 = 10517,
+  PseudoVSOXEI64_V_M1_MF8_MASK = 10518,
+  PseudoVSOXEI64_V_M2_M1 = 10519,
+  PseudoVSOXEI64_V_M2_M1_MASK = 10520,
+  PseudoVSOXEI64_V_M2_M2 = 10521,
+  PseudoVSOXEI64_V_M2_M2_MASK = 10522,
+  PseudoVSOXEI64_V_M2_MF2 = 10523,
+  PseudoVSOXEI64_V_M2_MF2_MASK = 10524,
+  PseudoVSOXEI64_V_M2_MF4 = 10525,
+  PseudoVSOXEI64_V_M2_MF4_MASK = 10526,
+  PseudoVSOXEI64_V_M4_M1 = 10527,
+  PseudoVSOXEI64_V_M4_M1_MASK = 10528,
+  PseudoVSOXEI64_V_M4_M2 = 10529,
+  PseudoVSOXEI64_V_M4_M2_MASK = 10530,
+  PseudoVSOXEI64_V_M4_M4 = 10531,
+  PseudoVSOXEI64_V_M4_M4_MASK = 10532,
+  PseudoVSOXEI64_V_M4_MF2 = 10533,
+  PseudoVSOXEI64_V_M4_MF2_MASK = 10534,
+  PseudoVSOXEI64_V_M8_M1 = 10535,
+  PseudoVSOXEI64_V_M8_M1_MASK = 10536,
+  PseudoVSOXEI64_V_M8_M2 = 10537,
+  PseudoVSOXEI64_V_M8_M2_MASK = 10538,
+  PseudoVSOXEI64_V_M8_M4 = 10539,
+  PseudoVSOXEI64_V_M8_M4_MASK = 10540,
+  PseudoVSOXEI64_V_M8_M8 = 10541,
+  PseudoVSOXEI64_V_M8_M8_MASK = 10542,
+  PseudoVSOXEI8_V_M1_M1 = 10543,
+  PseudoVSOXEI8_V_M1_M1_MASK = 10544,
+  PseudoVSOXEI8_V_M1_M2 = 10545,
+  PseudoVSOXEI8_V_M1_M2_MASK = 10546,
+  PseudoVSOXEI8_V_M1_M4 = 10547,
+  PseudoVSOXEI8_V_M1_M4_MASK = 10548,
+  PseudoVSOXEI8_V_M1_M8 = 10549,
+  PseudoVSOXEI8_V_M1_M8_MASK = 10550,
+  PseudoVSOXEI8_V_M2_M2 = 10551,
+  PseudoVSOXEI8_V_M2_M2_MASK = 10552,
+  PseudoVSOXEI8_V_M2_M4 = 10553,
+  PseudoVSOXEI8_V_M2_M4_MASK = 10554,
+  PseudoVSOXEI8_V_M2_M8 = 10555,
+  PseudoVSOXEI8_V_M2_M8_MASK = 10556,
+  PseudoVSOXEI8_V_M4_M4 = 10557,
+  PseudoVSOXEI8_V_M4_M4_MASK = 10558,
+  PseudoVSOXEI8_V_M4_M8 = 10559,
+  PseudoVSOXEI8_V_M4_M8_MASK = 10560,
+  PseudoVSOXEI8_V_M8_M8 = 10561,
+  PseudoVSOXEI8_V_M8_M8_MASK = 10562,
+  PseudoVSOXEI8_V_MF2_M1 = 10563,
+  PseudoVSOXEI8_V_MF2_M1_MASK = 10564,
+  PseudoVSOXEI8_V_MF2_M2 = 10565,
+  PseudoVSOXEI8_V_MF2_M2_MASK = 10566,
+  PseudoVSOXEI8_V_MF2_M4 = 10567,
+  PseudoVSOXEI8_V_MF2_M4_MASK = 10568,
+  PseudoVSOXEI8_V_MF2_MF2 = 10569,
+  PseudoVSOXEI8_V_MF2_MF2_MASK = 10570,
+  PseudoVSOXEI8_V_MF4_M1 = 10571,
+  PseudoVSOXEI8_V_MF4_M1_MASK = 10572,
+  PseudoVSOXEI8_V_MF4_M2 = 10573,
+  PseudoVSOXEI8_V_MF4_M2_MASK = 10574,
+  PseudoVSOXEI8_V_MF4_MF2 = 10575,
+  PseudoVSOXEI8_V_MF4_MF2_MASK = 10576,
+  PseudoVSOXEI8_V_MF4_MF4 = 10577,
+  PseudoVSOXEI8_V_MF4_MF4_MASK = 10578,
+  PseudoVSOXEI8_V_MF8_M1 = 10579,
+  PseudoVSOXEI8_V_MF8_M1_MASK = 10580,
+  PseudoVSOXEI8_V_MF8_MF2 = 10581,
+  PseudoVSOXEI8_V_MF8_MF2_MASK = 10582,
+  PseudoVSOXEI8_V_MF8_MF4 = 10583,
+  PseudoVSOXEI8_V_MF8_MF4_MASK = 10584,
+  PseudoVSOXEI8_V_MF8_MF8 = 10585,
+  PseudoVSOXEI8_V_MF8_MF8_MASK = 10586,
+  PseudoVSOXSEG2EI16_V_M1_M1 = 10587,
+  PseudoVSOXSEG2EI16_V_M1_M1_MASK = 10588,
+  PseudoVSOXSEG2EI16_V_M1_M2 = 10589,
+  PseudoVSOXSEG2EI16_V_M1_M2_MASK = 10590,
+  PseudoVSOXSEG2EI16_V_M1_M4 = 10591,
+  PseudoVSOXSEG2EI16_V_M1_M4_MASK = 10592,
+  PseudoVSOXSEG2EI16_V_M1_MF2 = 10593,
+  PseudoVSOXSEG2EI16_V_M1_MF2_MASK = 10594,
+  PseudoVSOXSEG2EI16_V_M2_M1 = 10595,
+  PseudoVSOXSEG2EI16_V_M2_M1_MASK = 10596,
+  PseudoVSOXSEG2EI16_V_M2_M2 = 10597,
+  PseudoVSOXSEG2EI16_V_M2_M2_MASK = 10598,
+  PseudoVSOXSEG2EI16_V_M2_M4 = 10599,
+  PseudoVSOXSEG2EI16_V_M2_M4_MASK = 10600,
+  PseudoVSOXSEG2EI16_V_M4_M2 = 10601,
+  PseudoVSOXSEG2EI16_V_M4_M2_MASK = 10602,
+  PseudoVSOXSEG2EI16_V_M4_M4 = 10603,
+  PseudoVSOXSEG2EI16_V_M4_M4_MASK = 10604,
+  PseudoVSOXSEG2EI16_V_M8_M4 = 10605,
+  PseudoVSOXSEG2EI16_V_M8_M4_MASK = 10606,
+  PseudoVSOXSEG2EI16_V_MF2_M1 = 10607,
+  PseudoVSOXSEG2EI16_V_MF2_M1_MASK = 10608,
+  PseudoVSOXSEG2EI16_V_MF2_M2 = 10609,
+  PseudoVSOXSEG2EI16_V_MF2_M2_MASK = 10610,
+  PseudoVSOXSEG2EI16_V_MF2_MF2 = 10611,
+  PseudoVSOXSEG2EI16_V_MF2_MF2_MASK = 10612,
+  PseudoVSOXSEG2EI16_V_MF2_MF4 = 10613,
+  PseudoVSOXSEG2EI16_V_MF2_MF4_MASK = 10614,
+  PseudoVSOXSEG2EI16_V_MF4_M1 = 10615,
+  PseudoVSOXSEG2EI16_V_MF4_M1_MASK = 10616,
+  PseudoVSOXSEG2EI16_V_MF4_MF2 = 10617,
+  PseudoVSOXSEG2EI16_V_MF4_MF2_MASK = 10618,
+  PseudoVSOXSEG2EI16_V_MF4_MF4 = 10619,
+  PseudoVSOXSEG2EI16_V_MF4_MF4_MASK = 10620,
+  PseudoVSOXSEG2EI16_V_MF4_MF8 = 10621,
+  PseudoVSOXSEG2EI16_V_MF4_MF8_MASK = 10622,
+  PseudoVSOXSEG2EI32_V_M1_M1 = 10623,
+  PseudoVSOXSEG2EI32_V_M1_M1_MASK = 10624,
+  PseudoVSOXSEG2EI32_V_M1_M2 = 10625,
+  PseudoVSOXSEG2EI32_V_M1_M2_MASK = 10626,
+  PseudoVSOXSEG2EI32_V_M1_MF2 = 10627,
+  PseudoVSOXSEG2EI32_V_M1_MF2_MASK = 10628,
+  PseudoVSOXSEG2EI32_V_M1_MF4 = 10629,
+  PseudoVSOXSEG2EI32_V_M1_MF4_MASK = 10630,
+  PseudoVSOXSEG2EI32_V_M2_M1 = 10631,
+  PseudoVSOXSEG2EI32_V_M2_M1_MASK = 10632,
+  PseudoVSOXSEG2EI32_V_M2_M2 = 10633,
+  PseudoVSOXSEG2EI32_V_M2_M2_MASK = 10634,
+  PseudoVSOXSEG2EI32_V_M2_M4 = 10635,
+  PseudoVSOXSEG2EI32_V_M2_M4_MASK = 10636,
+  PseudoVSOXSEG2EI32_V_M2_MF2 = 10637,
+  PseudoVSOXSEG2EI32_V_M2_MF2_MASK = 10638,
+  PseudoVSOXSEG2EI32_V_M4_M1 = 10639,
+  PseudoVSOXSEG2EI32_V_M4_M1_MASK = 10640,
+  PseudoVSOXSEG2EI32_V_M4_M2 = 10641,
+  PseudoVSOXSEG2EI32_V_M4_M2_MASK = 10642,
+  PseudoVSOXSEG2EI32_V_M4_M4 = 10643,
+  PseudoVSOXSEG2EI32_V_M4_M4_MASK = 10644,
+  PseudoVSOXSEG2EI32_V_M8_M2 = 10645,
+  PseudoVSOXSEG2EI32_V_M8_M2_MASK = 10646,
+  PseudoVSOXSEG2EI32_V_M8_M4 = 10647,
+  PseudoVSOXSEG2EI32_V_M8_M4_MASK = 10648,
+  PseudoVSOXSEG2EI32_V_MF2_M1 = 10649,
+  PseudoVSOXSEG2EI32_V_MF2_M1_MASK = 10650,
+  PseudoVSOXSEG2EI32_V_MF2_MF2 = 10651,
+  PseudoVSOXSEG2EI32_V_MF2_MF2_MASK = 10652,
+  PseudoVSOXSEG2EI32_V_MF2_MF4 = 10653,
+  PseudoVSOXSEG2EI32_V_MF2_MF4_MASK = 10654,
+  PseudoVSOXSEG2EI32_V_MF2_MF8 = 10655,
+  PseudoVSOXSEG2EI32_V_MF2_MF8_MASK = 10656,
+  PseudoVSOXSEG2EI64_V_M1_M1 = 10657,
+  PseudoVSOXSEG2EI64_V_M1_M1_MASK = 10658,
+  PseudoVSOXSEG2EI64_V_M1_MF2 = 10659,
+  PseudoVSOXSEG2EI64_V_M1_MF2_MASK = 10660,
+  PseudoVSOXSEG2EI64_V_M1_MF4 = 10661,
+  PseudoVSOXSEG2EI64_V_M1_MF4_MASK = 10662,
+  PseudoVSOXSEG2EI64_V_M1_MF8 = 10663,
+  PseudoVSOXSEG2EI64_V_M1_MF8_MASK = 10664,
+  PseudoVSOXSEG2EI64_V_M2_M1 = 10665,
+  PseudoVSOXSEG2EI64_V_M2_M1_MASK = 10666,
+  PseudoVSOXSEG2EI64_V_M2_M2 = 10667,
+  PseudoVSOXSEG2EI64_V_M2_M2_MASK = 10668,
+  PseudoVSOXSEG2EI64_V_M2_MF2 = 10669,
+  PseudoVSOXSEG2EI64_V_M2_MF2_MASK = 10670,
+  PseudoVSOXSEG2EI64_V_M2_MF4 = 10671,
+  PseudoVSOXSEG2EI64_V_M2_MF4_MASK = 10672,
+  PseudoVSOXSEG2EI64_V_M4_M1 = 10673,
+  PseudoVSOXSEG2EI64_V_M4_M1_MASK = 10674,
+  PseudoVSOXSEG2EI64_V_M4_M2 = 10675,
+  PseudoVSOXSEG2EI64_V_M4_M2_MASK = 10676,
+  PseudoVSOXSEG2EI64_V_M4_M4 = 10677,
+  PseudoVSOXSEG2EI64_V_M4_M4_MASK = 10678,
+  PseudoVSOXSEG2EI64_V_M4_MF2 = 10679,
+  PseudoVSOXSEG2EI64_V_M4_MF2_MASK = 10680,
+  PseudoVSOXSEG2EI64_V_M8_M1 = 10681,
+  PseudoVSOXSEG2EI64_V_M8_M1_MASK = 10682,
+  PseudoVSOXSEG2EI64_V_M8_M2 = 10683,
+  PseudoVSOXSEG2EI64_V_M8_M2_MASK = 10684,
+  PseudoVSOXSEG2EI64_V_M8_M4 = 10685,
+  PseudoVSOXSEG2EI64_V_M8_M4_MASK = 10686,
+  PseudoVSOXSEG2EI8_V_M1_M1 = 10687,
+  PseudoVSOXSEG2EI8_V_M1_M1_MASK = 10688,
+  PseudoVSOXSEG2EI8_V_M1_M2 = 10689,
+  PseudoVSOXSEG2EI8_V_M1_M2_MASK = 10690,
+  PseudoVSOXSEG2EI8_V_M1_M4 = 10691,
+  PseudoVSOXSEG2EI8_V_M1_M4_MASK = 10692,
+  PseudoVSOXSEG2EI8_V_M2_M2 = 10693,
+  PseudoVSOXSEG2EI8_V_M2_M2_MASK = 10694,
+  PseudoVSOXSEG2EI8_V_M2_M4 = 10695,
+  PseudoVSOXSEG2EI8_V_M2_M4_MASK = 10696,
+  PseudoVSOXSEG2EI8_V_M4_M4 = 10697,
+  PseudoVSOXSEG2EI8_V_M4_M4_MASK = 10698,
+  PseudoVSOXSEG2EI8_V_MF2_M1 = 10699,
+  PseudoVSOXSEG2EI8_V_MF2_M1_MASK = 10700,
+  PseudoVSOXSEG2EI8_V_MF2_M2 = 10701,
+  PseudoVSOXSEG2EI8_V_MF2_M2_MASK = 10702,
+  PseudoVSOXSEG2EI8_V_MF2_M4 = 10703,
+  PseudoVSOXSEG2EI8_V_MF2_M4_MASK = 10704,
+  PseudoVSOXSEG2EI8_V_MF2_MF2 = 10705,
+  PseudoVSOXSEG2EI8_V_MF2_MF2_MASK = 10706,
+  PseudoVSOXSEG2EI8_V_MF4_M1 = 10707,
+  PseudoVSOXSEG2EI8_V_MF4_M1_MASK = 10708,
+  PseudoVSOXSEG2EI8_V_MF4_M2 = 10709,
+  PseudoVSOXSEG2EI8_V_MF4_M2_MASK = 10710,
+  PseudoVSOXSEG2EI8_V_MF4_MF2 = 10711,
+  PseudoVSOXSEG2EI8_V_MF4_MF2_MASK = 10712,
+  PseudoVSOXSEG2EI8_V_MF4_MF4 = 10713,
+  PseudoVSOXSEG2EI8_V_MF4_MF4_MASK = 10714,
+  PseudoVSOXSEG2EI8_V_MF8_M1 = 10715,
+  PseudoVSOXSEG2EI8_V_MF8_M1_MASK = 10716,
+  PseudoVSOXSEG2EI8_V_MF8_MF2 = 10717,
+  PseudoVSOXSEG2EI8_V_MF8_MF2_MASK = 10718,
+  PseudoVSOXSEG2EI8_V_MF8_MF4 = 10719,
+  PseudoVSOXSEG2EI8_V_MF8_MF4_MASK = 10720,
+  PseudoVSOXSEG2EI8_V_MF8_MF8 = 10721,
+  PseudoVSOXSEG2EI8_V_MF8_MF8_MASK = 10722,
+  PseudoVSOXSEG3EI16_V_M1_M1 = 10723,
+  PseudoVSOXSEG3EI16_V_M1_M1_MASK = 10724,
+  PseudoVSOXSEG3EI16_V_M1_M2 = 10725,
+  PseudoVSOXSEG3EI16_V_M1_M2_MASK = 10726,
+  PseudoVSOXSEG3EI16_V_M1_MF2 = 10727,
+  PseudoVSOXSEG3EI16_V_M1_MF2_MASK = 10728,
+  PseudoVSOXSEG3EI16_V_M2_M1 = 10729,
+  PseudoVSOXSEG3EI16_V_M2_M1_MASK = 10730,
+  PseudoVSOXSEG3EI16_V_M2_M2 = 10731,
+  PseudoVSOXSEG3EI16_V_M2_M2_MASK = 10732,
+  PseudoVSOXSEG3EI16_V_M4_M2 = 10733,
+  PseudoVSOXSEG3EI16_V_M4_M2_MASK = 10734,
+  PseudoVSOXSEG3EI16_V_MF2_M1 = 10735,
+  PseudoVSOXSEG3EI16_V_MF2_M1_MASK = 10736,
+  PseudoVSOXSEG3EI16_V_MF2_M2 = 10737,
+  PseudoVSOXSEG3EI16_V_MF2_M2_MASK = 10738,
+  PseudoVSOXSEG3EI16_V_MF2_MF2 = 10739,
+  PseudoVSOXSEG3EI16_V_MF2_MF2_MASK = 10740,
+  PseudoVSOXSEG3EI16_V_MF2_MF4 = 10741,
+  PseudoVSOXSEG3EI16_V_MF2_MF4_MASK = 10742,
+  PseudoVSOXSEG3EI16_V_MF4_M1 = 10743,
+  PseudoVSOXSEG3EI16_V_MF4_M1_MASK = 10744,
+  PseudoVSOXSEG3EI16_V_MF4_MF2 = 10745,
+  PseudoVSOXSEG3EI16_V_MF4_MF2_MASK = 10746,
+  PseudoVSOXSEG3EI16_V_MF4_MF4 = 10747,
+  PseudoVSOXSEG3EI16_V_MF4_MF4_MASK = 10748,
+  PseudoVSOXSEG3EI16_V_MF4_MF8 = 10749,
+  PseudoVSOXSEG3EI16_V_MF4_MF8_MASK = 10750,
+  PseudoVSOXSEG3EI32_V_M1_M1 = 10751,
+  PseudoVSOXSEG3EI32_V_M1_M1_MASK = 10752,
+  PseudoVSOXSEG3EI32_V_M1_M2 = 10753,
+  PseudoVSOXSEG3EI32_V_M1_M2_MASK = 10754,
+  PseudoVSOXSEG3EI32_V_M1_MF2 = 10755,
+  PseudoVSOXSEG3EI32_V_M1_MF2_MASK = 10756,
+  PseudoVSOXSEG3EI32_V_M1_MF4 = 10757,
+  PseudoVSOXSEG3EI32_V_M1_MF4_MASK = 10758,
+  PseudoVSOXSEG3EI32_V_M2_M1 = 10759,
+  PseudoVSOXSEG3EI32_V_M2_M1_MASK = 10760,
+  PseudoVSOXSEG3EI32_V_M2_M2 = 10761,
+  PseudoVSOXSEG3EI32_V_M2_M2_MASK = 10762,
+  PseudoVSOXSEG3EI32_V_M2_MF2 = 10763,
+  PseudoVSOXSEG3EI32_V_M2_MF2_MASK = 10764,
+  PseudoVSOXSEG3EI32_V_M4_M1 = 10765,
+  PseudoVSOXSEG3EI32_V_M4_M1_MASK = 10766,
+  PseudoVSOXSEG3EI32_V_M4_M2 = 10767,
+  PseudoVSOXSEG3EI32_V_M4_M2_MASK = 10768,
+  PseudoVSOXSEG3EI32_V_M8_M2 = 10769,
+  PseudoVSOXSEG3EI32_V_M8_M2_MASK = 10770,
+  PseudoVSOXSEG3EI32_V_MF2_M1 = 10771,
+  PseudoVSOXSEG3EI32_V_MF2_M1_MASK = 10772,
+  PseudoVSOXSEG3EI32_V_MF2_MF2 = 10773,
+  PseudoVSOXSEG3EI32_V_MF2_MF2_MASK = 10774,
+  PseudoVSOXSEG3EI32_V_MF2_MF4 = 10775,
+  PseudoVSOXSEG3EI32_V_MF2_MF4_MASK = 10776,
+  PseudoVSOXSEG3EI32_V_MF2_MF8 = 10777,
+  PseudoVSOXSEG3EI32_V_MF2_MF8_MASK = 10778,
+  PseudoVSOXSEG3EI64_V_M1_M1 = 10779,
+  PseudoVSOXSEG3EI64_V_M1_M1_MASK = 10780,
+  PseudoVSOXSEG3EI64_V_M1_MF2 = 10781,
+  PseudoVSOXSEG3EI64_V_M1_MF2_MASK = 10782,
+  PseudoVSOXSEG3EI64_V_M1_MF4 = 10783,
+  PseudoVSOXSEG3EI64_V_M1_MF4_MASK = 10784,
+  PseudoVSOXSEG3EI64_V_M1_MF8 = 10785,
+  PseudoVSOXSEG3EI64_V_M1_MF8_MASK = 10786,
+  PseudoVSOXSEG3EI64_V_M2_M1 = 10787,
+  PseudoVSOXSEG3EI64_V_M2_M1_MASK = 10788,
+  PseudoVSOXSEG3EI64_V_M2_M2 = 10789,
+  PseudoVSOXSEG3EI64_V_M2_M2_MASK = 10790,
+  PseudoVSOXSEG3EI64_V_M2_MF2 = 10791,
+  PseudoVSOXSEG3EI64_V_M2_MF2_MASK = 10792,
+  PseudoVSOXSEG3EI64_V_M2_MF4 = 10793,
+  PseudoVSOXSEG3EI64_V_M2_MF4_MASK = 10794,
+  PseudoVSOXSEG3EI64_V_M4_M1 = 10795,
+  PseudoVSOXSEG3EI64_V_M4_M1_MASK = 10796,
+  PseudoVSOXSEG3EI64_V_M4_M2 = 10797,
+  PseudoVSOXSEG3EI64_V_M4_M2_MASK = 10798,
+  PseudoVSOXSEG3EI64_V_M4_MF2 = 10799,
+  PseudoVSOXSEG3EI64_V_M4_MF2_MASK = 10800,
+  PseudoVSOXSEG3EI64_V_M8_M1 = 10801,
+  PseudoVSOXSEG3EI64_V_M8_M1_MASK = 10802,
+  PseudoVSOXSEG3EI64_V_M8_M2 = 10803,
+  PseudoVSOXSEG3EI64_V_M8_M2_MASK = 10804,
+  PseudoVSOXSEG3EI8_V_M1_M1 = 10805,
+  PseudoVSOXSEG3EI8_V_M1_M1_MASK = 10806,
+  PseudoVSOXSEG3EI8_V_M1_M2 = 10807,
+  PseudoVSOXSEG3EI8_V_M1_M2_MASK = 10808,
+  PseudoVSOXSEG3EI8_V_M2_M2 = 10809,
+  PseudoVSOXSEG3EI8_V_M2_M2_MASK = 10810,
+  PseudoVSOXSEG3EI8_V_MF2_M1 = 10811,
+  PseudoVSOXSEG3EI8_V_MF2_M1_MASK = 10812,
+  PseudoVSOXSEG3EI8_V_MF2_M2 = 10813,
+  PseudoVSOXSEG3EI8_V_MF2_M2_MASK = 10814,
+  PseudoVSOXSEG3EI8_V_MF2_MF2 = 10815,
+  PseudoVSOXSEG3EI8_V_MF2_MF2_MASK = 10816,
+  PseudoVSOXSEG3EI8_V_MF4_M1 = 10817,
+  PseudoVSOXSEG3EI8_V_MF4_M1_MASK = 10818,
+  PseudoVSOXSEG3EI8_V_MF4_M2 = 10819,
+  PseudoVSOXSEG3EI8_V_MF4_M2_MASK = 10820,
+  PseudoVSOXSEG3EI8_V_MF4_MF2 = 10821,
+  PseudoVSOXSEG3EI8_V_MF4_MF2_MASK = 10822,
+  PseudoVSOXSEG3EI8_V_MF4_MF4 = 10823,
+  PseudoVSOXSEG3EI8_V_MF4_MF4_MASK = 10824,
+  PseudoVSOXSEG3EI8_V_MF8_M1 = 10825,
+  PseudoVSOXSEG3EI8_V_MF8_M1_MASK = 10826,
+  PseudoVSOXSEG3EI8_V_MF8_MF2 = 10827,
+  PseudoVSOXSEG3EI8_V_MF8_MF2_MASK = 10828,
+  PseudoVSOXSEG3EI8_V_MF8_MF4 = 10829,
+  PseudoVSOXSEG3EI8_V_MF8_MF4_MASK = 10830,
+  PseudoVSOXSEG3EI8_V_MF8_MF8 = 10831,
+  PseudoVSOXSEG3EI8_V_MF8_MF8_MASK = 10832,
+  PseudoVSOXSEG4EI16_V_M1_M1 = 10833,
+  PseudoVSOXSEG4EI16_V_M1_M1_MASK = 10834,
+  PseudoVSOXSEG4EI16_V_M1_M2 = 10835,
+  PseudoVSOXSEG4EI16_V_M1_M2_MASK = 10836,
+  PseudoVSOXSEG4EI16_V_M1_MF2 = 10837,
+  PseudoVSOXSEG4EI16_V_M1_MF2_MASK = 10838,
+  PseudoVSOXSEG4EI16_V_M2_M1 = 10839,
+  PseudoVSOXSEG4EI16_V_M2_M1_MASK = 10840,
+  PseudoVSOXSEG4EI16_V_M2_M2 = 10841,
+  PseudoVSOXSEG4EI16_V_M2_M2_MASK = 10842,
+  PseudoVSOXSEG4EI16_V_M4_M2 = 10843,
+  PseudoVSOXSEG4EI16_V_M4_M2_MASK = 10844,
+  PseudoVSOXSEG4EI16_V_MF2_M1 = 10845,
+  PseudoVSOXSEG4EI16_V_MF2_M1_MASK = 10846,
+  PseudoVSOXSEG4EI16_V_MF2_M2 = 10847,
+  PseudoVSOXSEG4EI16_V_MF2_M2_MASK = 10848,
+  PseudoVSOXSEG4EI16_V_MF2_MF2 = 10849,
+  PseudoVSOXSEG4EI16_V_MF2_MF2_MASK = 10850,
+  PseudoVSOXSEG4EI16_V_MF2_MF4 = 10851,
+  PseudoVSOXSEG4EI16_V_MF2_MF4_MASK = 10852,
+  PseudoVSOXSEG4EI16_V_MF4_M1 = 10853,
+  PseudoVSOXSEG4EI16_V_MF4_M1_MASK = 10854,
+  PseudoVSOXSEG4EI16_V_MF4_MF2 = 10855,
+  PseudoVSOXSEG4EI16_V_MF4_MF2_MASK = 10856,
+  PseudoVSOXSEG4EI16_V_MF4_MF4 = 10857,
+  PseudoVSOXSEG4EI16_V_MF4_MF4_MASK = 10858,
+  PseudoVSOXSEG4EI16_V_MF4_MF8 = 10859,
+  PseudoVSOXSEG4EI16_V_MF4_MF8_MASK = 10860,
+  PseudoVSOXSEG4EI32_V_M1_M1 = 10861,
+  PseudoVSOXSEG4EI32_V_M1_M1_MASK = 10862,
+  PseudoVSOXSEG4EI32_V_M1_M2 = 10863,
+  PseudoVSOXSEG4EI32_V_M1_M2_MASK = 10864,
+  PseudoVSOXSEG4EI32_V_M1_MF2 = 10865,
+  PseudoVSOXSEG4EI32_V_M1_MF2_MASK = 10866,
+  PseudoVSOXSEG4EI32_V_M1_MF4 = 10867,
+  PseudoVSOXSEG4EI32_V_M1_MF4_MASK = 10868,
+  PseudoVSOXSEG4EI32_V_M2_M1 = 10869,
+  PseudoVSOXSEG4EI32_V_M2_M1_MASK = 10870,
+  PseudoVSOXSEG4EI32_V_M2_M2 = 10871,
+  PseudoVSOXSEG4EI32_V_M2_M2_MASK = 10872,
+  PseudoVSOXSEG4EI32_V_M2_MF2 = 10873,
+  PseudoVSOXSEG4EI32_V_M2_MF2_MASK = 10874,
+  PseudoVSOXSEG4EI32_V_M4_M1 = 10875,
+  PseudoVSOXSEG4EI32_V_M4_M1_MASK = 10876,
+  PseudoVSOXSEG4EI32_V_M4_M2 = 10877,
+  PseudoVSOXSEG4EI32_V_M4_M2_MASK = 10878,
+  PseudoVSOXSEG4EI32_V_M8_M2 = 10879,
+  PseudoVSOXSEG4EI32_V_M8_M2_MASK = 10880,
+  PseudoVSOXSEG4EI32_V_MF2_M1 = 10881,
+  PseudoVSOXSEG4EI32_V_MF2_M1_MASK = 10882,
+  PseudoVSOXSEG4EI32_V_MF2_MF2 = 10883,
+  PseudoVSOXSEG4EI32_V_MF2_MF2_MASK = 10884,
+  PseudoVSOXSEG4EI32_V_MF2_MF4 = 10885,
+  PseudoVSOXSEG4EI32_V_MF2_MF4_MASK = 10886,
+  PseudoVSOXSEG4EI32_V_MF2_MF8 = 10887,
+  PseudoVSOXSEG4EI32_V_MF2_MF8_MASK = 10888,
+  PseudoVSOXSEG4EI64_V_M1_M1 = 10889,
+  PseudoVSOXSEG4EI64_V_M1_M1_MASK = 10890,
+  PseudoVSOXSEG4EI64_V_M1_MF2 = 10891,
+  PseudoVSOXSEG4EI64_V_M1_MF2_MASK = 10892,
+  PseudoVSOXSEG4EI64_V_M1_MF4 = 10893,
+  PseudoVSOXSEG4EI64_V_M1_MF4_MASK = 10894,
+  PseudoVSOXSEG4EI64_V_M1_MF8 = 10895,
+  PseudoVSOXSEG4EI64_V_M1_MF8_MASK = 10896,
+  PseudoVSOXSEG4EI64_V_M2_M1 = 10897,
+  PseudoVSOXSEG4EI64_V_M2_M1_MASK = 10898,
+  PseudoVSOXSEG4EI64_V_M2_M2 = 10899,
+  PseudoVSOXSEG4EI64_V_M2_M2_MASK = 10900,
+  PseudoVSOXSEG4EI64_V_M2_MF2 = 10901,
+  PseudoVSOXSEG4EI64_V_M2_MF2_MASK = 10902,
+  PseudoVSOXSEG4EI64_V_M2_MF4 = 10903,
+  PseudoVSOXSEG4EI64_V_M2_MF4_MASK = 10904,
+  PseudoVSOXSEG4EI64_V_M4_M1 = 10905,
+  PseudoVSOXSEG4EI64_V_M4_M1_MASK = 10906,
+  PseudoVSOXSEG4EI64_V_M4_M2 = 10907,
+  PseudoVSOXSEG4EI64_V_M4_M2_MASK = 10908,
+  PseudoVSOXSEG4EI64_V_M4_MF2 = 10909,
+  PseudoVSOXSEG4EI64_V_M4_MF2_MASK = 10910,
+  PseudoVSOXSEG4EI64_V_M8_M1 = 10911,
+  PseudoVSOXSEG4EI64_V_M8_M1_MASK = 10912,
+  PseudoVSOXSEG4EI64_V_M8_M2 = 10913,
+  PseudoVSOXSEG4EI64_V_M8_M2_MASK = 10914,
+  PseudoVSOXSEG4EI8_V_M1_M1 = 10915,
+  PseudoVSOXSEG4EI8_V_M1_M1_MASK = 10916,
+  PseudoVSOXSEG4EI8_V_M1_M2 = 10917,
+  PseudoVSOXSEG4EI8_V_M1_M2_MASK = 10918,
+  PseudoVSOXSEG4EI8_V_M2_M2 = 10919,
+  PseudoVSOXSEG4EI8_V_M2_M2_MASK = 10920,
+  PseudoVSOXSEG4EI8_V_MF2_M1 = 10921,
+  PseudoVSOXSEG4EI8_V_MF2_M1_MASK = 10922,
+  PseudoVSOXSEG4EI8_V_MF2_M2 = 10923,
+  PseudoVSOXSEG4EI8_V_MF2_M2_MASK = 10924,
+  PseudoVSOXSEG4EI8_V_MF2_MF2 = 10925,
+  PseudoVSOXSEG4EI8_V_MF2_MF2_MASK = 10926,
+  PseudoVSOXSEG4EI8_V_MF4_M1 = 10927,
+  PseudoVSOXSEG4EI8_V_MF4_M1_MASK = 10928,
+  PseudoVSOXSEG4EI8_V_MF4_M2 = 10929,
+  PseudoVSOXSEG4EI8_V_MF4_M2_MASK = 10930,
+  PseudoVSOXSEG4EI8_V_MF4_MF2 = 10931,
+  PseudoVSOXSEG4EI8_V_MF4_MF2_MASK = 10932,
+  PseudoVSOXSEG4EI8_V_MF4_MF4 = 10933,
+  PseudoVSOXSEG4EI8_V_MF4_MF4_MASK = 10934,
+  PseudoVSOXSEG4EI8_V_MF8_M1 = 10935,
+  PseudoVSOXSEG4EI8_V_MF8_M1_MASK = 10936,
+  PseudoVSOXSEG4EI8_V_MF8_MF2 = 10937,
+  PseudoVSOXSEG4EI8_V_MF8_MF2_MASK = 10938,
+  PseudoVSOXSEG4EI8_V_MF8_MF4 = 10939,
+  PseudoVSOXSEG4EI8_V_MF8_MF4_MASK = 10940,
+  PseudoVSOXSEG4EI8_V_MF8_MF8 = 10941,
+  PseudoVSOXSEG4EI8_V_MF8_MF8_MASK = 10942,
+  PseudoVSOXSEG5EI16_V_M1_M1 = 10943,
+  PseudoVSOXSEG5EI16_V_M1_M1_MASK = 10944,
+  PseudoVSOXSEG5EI16_V_M1_MF2 = 10945,
+  PseudoVSOXSEG5EI16_V_M1_MF2_MASK = 10946,
+  PseudoVSOXSEG5EI16_V_M2_M1 = 10947,
+  PseudoVSOXSEG5EI16_V_M2_M1_MASK = 10948,
+  PseudoVSOXSEG5EI16_V_MF2_M1 = 10949,
+  PseudoVSOXSEG5EI16_V_MF2_M1_MASK = 10950,
+  PseudoVSOXSEG5EI16_V_MF2_MF2 = 10951,
+  PseudoVSOXSEG5EI16_V_MF2_MF2_MASK = 10952,
+  PseudoVSOXSEG5EI16_V_MF2_MF4 = 10953,
+  PseudoVSOXSEG5EI16_V_MF2_MF4_MASK = 10954,
+  PseudoVSOXSEG5EI16_V_MF4_M1 = 10955,
+  PseudoVSOXSEG5EI16_V_MF4_M1_MASK = 10956,
+  PseudoVSOXSEG5EI16_V_MF4_MF2 = 10957,
+  PseudoVSOXSEG5EI16_V_MF4_MF2_MASK = 10958,
+  PseudoVSOXSEG5EI16_V_MF4_MF4 = 10959,
+  PseudoVSOXSEG5EI16_V_MF4_MF4_MASK = 10960,
+  PseudoVSOXSEG5EI16_V_MF4_MF8 = 10961,
+  PseudoVSOXSEG5EI16_V_MF4_MF8_MASK = 10962,
+  PseudoVSOXSEG5EI32_V_M1_M1 = 10963,
+  PseudoVSOXSEG5EI32_V_M1_M1_MASK = 10964,
+  PseudoVSOXSEG5EI32_V_M1_MF2 = 10965,
+  PseudoVSOXSEG5EI32_V_M1_MF2_MASK = 10966,
+  PseudoVSOXSEG5EI32_V_M1_MF4 = 10967,
+  PseudoVSOXSEG5EI32_V_M1_MF4_MASK = 10968,
+  PseudoVSOXSEG5EI32_V_M2_M1 = 10969,
+  PseudoVSOXSEG5EI32_V_M2_M1_MASK = 10970,
+  PseudoVSOXSEG5EI32_V_M2_MF2 = 10971,
+  PseudoVSOXSEG5EI32_V_M2_MF2_MASK = 10972,
+  PseudoVSOXSEG5EI32_V_M4_M1 = 10973,
+  PseudoVSOXSEG5EI32_V_M4_M1_MASK = 10974,
+  PseudoVSOXSEG5EI32_V_MF2_M1 = 10975,
+  PseudoVSOXSEG5EI32_V_MF2_M1_MASK = 10976,
+  PseudoVSOXSEG5EI32_V_MF2_MF2 = 10977,
+  PseudoVSOXSEG5EI32_V_MF2_MF2_MASK = 10978,
+  PseudoVSOXSEG5EI32_V_MF2_MF4 = 10979,
+  PseudoVSOXSEG5EI32_V_MF2_MF4_MASK = 10980,
+  PseudoVSOXSEG5EI32_V_MF2_MF8 = 10981,
+  PseudoVSOXSEG5EI32_V_MF2_MF8_MASK = 10982,
+  PseudoVSOXSEG5EI64_V_M1_M1 = 10983,
+  PseudoVSOXSEG5EI64_V_M1_M1_MASK = 10984,
+  PseudoVSOXSEG5EI64_V_M1_MF2 = 10985,
+  PseudoVSOXSEG5EI64_V_M1_MF2_MASK = 10986,
+  PseudoVSOXSEG5EI64_V_M1_MF4 = 10987,
+  PseudoVSOXSEG5EI64_V_M1_MF4_MASK = 10988,
+  PseudoVSOXSEG5EI64_V_M1_MF8 = 10989,
+  PseudoVSOXSEG5EI64_V_M1_MF8_MASK = 10990,
+  PseudoVSOXSEG5EI64_V_M2_M1 = 10991,
+  PseudoVSOXSEG5EI64_V_M2_M1_MASK = 10992,
+  PseudoVSOXSEG5EI64_V_M2_MF2 = 10993,
+  PseudoVSOXSEG5EI64_V_M2_MF2_MASK = 10994,
+  PseudoVSOXSEG5EI64_V_M2_MF4 = 10995,
+  PseudoVSOXSEG5EI64_V_M2_MF4_MASK = 10996,
+  PseudoVSOXSEG5EI64_V_M4_M1 = 10997,
+  PseudoVSOXSEG5EI64_V_M4_M1_MASK = 10998,
+  PseudoVSOXSEG5EI64_V_M4_MF2 = 10999,
+  PseudoVSOXSEG5EI64_V_M4_MF2_MASK = 11000,
+  PseudoVSOXSEG5EI64_V_M8_M1 = 11001,
+  PseudoVSOXSEG5EI64_V_M8_M1_MASK = 11002,
+  PseudoVSOXSEG5EI8_V_M1_M1 = 11003,
+  PseudoVSOXSEG5EI8_V_M1_M1_MASK = 11004,
+  PseudoVSOXSEG5EI8_V_MF2_M1 = 11005,
+  PseudoVSOXSEG5EI8_V_MF2_M1_MASK = 11006,
+  PseudoVSOXSEG5EI8_V_MF2_MF2 = 11007,
+  PseudoVSOXSEG5EI8_V_MF2_MF2_MASK = 11008,
+  PseudoVSOXSEG5EI8_V_MF4_M1 = 11009,
+  PseudoVSOXSEG5EI8_V_MF4_M1_MASK = 11010,
+  PseudoVSOXSEG5EI8_V_MF4_MF2 = 11011,
+  PseudoVSOXSEG5EI8_V_MF4_MF2_MASK = 11012,
+  PseudoVSOXSEG5EI8_V_MF4_MF4 = 11013,
+  PseudoVSOXSEG5EI8_V_MF4_MF4_MASK = 11014,
+  PseudoVSOXSEG5EI8_V_MF8_M1 = 11015,
+  PseudoVSOXSEG5EI8_V_MF8_M1_MASK = 11016,
+  PseudoVSOXSEG5EI8_V_MF8_MF2 = 11017,
+  PseudoVSOXSEG5EI8_V_MF8_MF2_MASK = 11018,
+  PseudoVSOXSEG5EI8_V_MF8_MF4 = 11019,
+  PseudoVSOXSEG5EI8_V_MF8_MF4_MASK = 11020,
+  PseudoVSOXSEG5EI8_V_MF8_MF8 = 11021,
+  PseudoVSOXSEG5EI8_V_MF8_MF8_MASK = 11022,
+  PseudoVSOXSEG6EI16_V_M1_M1 = 11023,
+  PseudoVSOXSEG6EI16_V_M1_M1_MASK = 11024,
+  PseudoVSOXSEG6EI16_V_M1_MF2 = 11025,
+  PseudoVSOXSEG6EI16_V_M1_MF2_MASK = 11026,
+  PseudoVSOXSEG6EI16_V_M2_M1 = 11027,
+  PseudoVSOXSEG6EI16_V_M2_M1_MASK = 11028,
+  PseudoVSOXSEG6EI16_V_MF2_M1 = 11029,
+  PseudoVSOXSEG6EI16_V_MF2_M1_MASK = 11030,
+  PseudoVSOXSEG6EI16_V_MF2_MF2 = 11031,
+  PseudoVSOXSEG6EI16_V_MF2_MF2_MASK = 11032,
+  PseudoVSOXSEG6EI16_V_MF2_MF4 = 11033,
+  PseudoVSOXSEG6EI16_V_MF2_MF4_MASK = 11034,
+  PseudoVSOXSEG6EI16_V_MF4_M1 = 11035,
+  PseudoVSOXSEG6EI16_V_MF4_M1_MASK = 11036,
+  PseudoVSOXSEG6EI16_V_MF4_MF2 = 11037,
+  PseudoVSOXSEG6EI16_V_MF4_MF2_MASK = 11038,
+  PseudoVSOXSEG6EI16_V_MF4_MF4 = 11039,
+  PseudoVSOXSEG6EI16_V_MF4_MF4_MASK = 11040,
+  PseudoVSOXSEG6EI16_V_MF4_MF8 = 11041,
+  PseudoVSOXSEG6EI16_V_MF4_MF8_MASK = 11042,
+  PseudoVSOXSEG6EI32_V_M1_M1 = 11043,
+  PseudoVSOXSEG6EI32_V_M1_M1_MASK = 11044,
+  PseudoVSOXSEG6EI32_V_M1_MF2 = 11045,
+  PseudoVSOXSEG6EI32_V_M1_MF2_MASK = 11046,
+  PseudoVSOXSEG6EI32_V_M1_MF4 = 11047,
+  PseudoVSOXSEG6EI32_V_M1_MF4_MASK = 11048,
+  PseudoVSOXSEG6EI32_V_M2_M1 = 11049,
+  PseudoVSOXSEG6EI32_V_M2_M1_MASK = 11050,
+  PseudoVSOXSEG6EI32_V_M2_MF2 = 11051,
+  PseudoVSOXSEG6EI32_V_M2_MF2_MASK = 11052,
+  PseudoVSOXSEG6EI32_V_M4_M1 = 11053,
+  PseudoVSOXSEG6EI32_V_M4_M1_MASK = 11054,
+  PseudoVSOXSEG6EI32_V_MF2_M1 = 11055,
+  PseudoVSOXSEG6EI32_V_MF2_M1_MASK = 11056,
+  PseudoVSOXSEG6EI32_V_MF2_MF2 = 11057,
+  PseudoVSOXSEG6EI32_V_MF2_MF2_MASK = 11058,
+  PseudoVSOXSEG6EI32_V_MF2_MF4 = 11059,
+  PseudoVSOXSEG6EI32_V_MF2_MF4_MASK = 11060,
+  PseudoVSOXSEG6EI32_V_MF2_MF8 = 11061,
+  PseudoVSOXSEG6EI32_V_MF2_MF8_MASK = 11062,
+  PseudoVSOXSEG6EI64_V_M1_M1 = 11063,
+  PseudoVSOXSEG6EI64_V_M1_M1_MASK = 11064,
+  PseudoVSOXSEG6EI64_V_M1_MF2 = 11065,
+  PseudoVSOXSEG6EI64_V_M1_MF2_MASK = 11066,
+  PseudoVSOXSEG6EI64_V_M1_MF4 = 11067,
+  PseudoVSOXSEG6EI64_V_M1_MF4_MASK = 11068,
+  PseudoVSOXSEG6EI64_V_M1_MF8 = 11069,
+  PseudoVSOXSEG6EI64_V_M1_MF8_MASK = 11070,
+  PseudoVSOXSEG6EI64_V_M2_M1 = 11071,
+  PseudoVSOXSEG6EI64_V_M2_M1_MASK = 11072,
+  PseudoVSOXSEG6EI64_V_M2_MF2 = 11073,
+  PseudoVSOXSEG6EI64_V_M2_MF2_MASK = 11074,
+  PseudoVSOXSEG6EI64_V_M2_MF4 = 11075,
+  PseudoVSOXSEG6EI64_V_M2_MF4_MASK = 11076,
+  PseudoVSOXSEG6EI64_V_M4_M1 = 11077,
+  PseudoVSOXSEG6EI64_V_M4_M1_MASK = 11078,
+  PseudoVSOXSEG6EI64_V_M4_MF2 = 11079,
+  PseudoVSOXSEG6EI64_V_M4_MF2_MASK = 11080,
+  PseudoVSOXSEG6EI64_V_M8_M1 = 11081,
+  PseudoVSOXSEG6EI64_V_M8_M1_MASK = 11082,
+  PseudoVSOXSEG6EI8_V_M1_M1 = 11083,
+  PseudoVSOXSEG6EI8_V_M1_M1_MASK = 11084,
+  PseudoVSOXSEG6EI8_V_MF2_M1 = 11085,
+  PseudoVSOXSEG6EI8_V_MF2_M1_MASK = 11086,
+  PseudoVSOXSEG6EI8_V_MF2_MF2 = 11087,
+  PseudoVSOXSEG6EI8_V_MF2_MF2_MASK = 11088,
+  PseudoVSOXSEG6EI8_V_MF4_M1 = 11089,
+  PseudoVSOXSEG6EI8_V_MF4_M1_MASK = 11090,
+  PseudoVSOXSEG6EI8_V_MF4_MF2 = 11091,
+  PseudoVSOXSEG6EI8_V_MF4_MF2_MASK = 11092,
+  PseudoVSOXSEG6EI8_V_MF4_MF4 = 11093,
+  PseudoVSOXSEG6EI8_V_MF4_MF4_MASK = 11094,
+  PseudoVSOXSEG6EI8_V_MF8_M1 = 11095,
+  PseudoVSOXSEG6EI8_V_MF8_M1_MASK = 11096,
+  PseudoVSOXSEG6EI8_V_MF8_MF2 = 11097,
+  PseudoVSOXSEG6EI8_V_MF8_MF2_MASK = 11098,
+  PseudoVSOXSEG6EI8_V_MF8_MF4 = 11099,
+  PseudoVSOXSEG6EI8_V_MF8_MF4_MASK = 11100,
+  PseudoVSOXSEG6EI8_V_MF8_MF8 = 11101,
+  PseudoVSOXSEG6EI8_V_MF8_MF8_MASK = 11102,
+  PseudoVSOXSEG7EI16_V_M1_M1 = 11103,
+  PseudoVSOXSEG7EI16_V_M1_M1_MASK = 11104,
+  PseudoVSOXSEG7EI16_V_M1_MF2 = 11105,
+  PseudoVSOXSEG7EI16_V_M1_MF2_MASK = 11106,
+  PseudoVSOXSEG7EI16_V_M2_M1 = 11107,
+  PseudoVSOXSEG7EI16_V_M2_M1_MASK = 11108,
+  PseudoVSOXSEG7EI16_V_MF2_M1 = 11109,
+  PseudoVSOXSEG7EI16_V_MF2_M1_MASK = 11110,
+  PseudoVSOXSEG7EI16_V_MF2_MF2 = 11111,
+  PseudoVSOXSEG7EI16_V_MF2_MF2_MASK = 11112,
+  PseudoVSOXSEG7EI16_V_MF2_MF4 = 11113,
+  PseudoVSOXSEG7EI16_V_MF2_MF4_MASK = 11114,
+  PseudoVSOXSEG7EI16_V_MF4_M1 = 11115,
+  PseudoVSOXSEG7EI16_V_MF4_M1_MASK = 11116,
+  PseudoVSOXSEG7EI16_V_MF4_MF2 = 11117,
+  PseudoVSOXSEG7EI16_V_MF4_MF2_MASK = 11118,
+  PseudoVSOXSEG7EI16_V_MF4_MF4 = 11119,
+  PseudoVSOXSEG7EI16_V_MF4_MF4_MASK = 11120,
+  PseudoVSOXSEG7EI16_V_MF4_MF8 = 11121,
+  PseudoVSOXSEG7EI16_V_MF4_MF8_MASK = 11122,
+  PseudoVSOXSEG7EI32_V_M1_M1 = 11123,
+  PseudoVSOXSEG7EI32_V_M1_M1_MASK = 11124,
+  PseudoVSOXSEG7EI32_V_M1_MF2 = 11125,
+  PseudoVSOXSEG7EI32_V_M1_MF2_MASK = 11126,
+  PseudoVSOXSEG7EI32_V_M1_MF4 = 11127,
+  PseudoVSOXSEG7EI32_V_M1_MF4_MASK = 11128,
+  PseudoVSOXSEG7EI32_V_M2_M1 = 11129,
+  PseudoVSOXSEG7EI32_V_M2_M1_MASK = 11130,
+  PseudoVSOXSEG7EI32_V_M2_MF2 = 11131,
+  PseudoVSOXSEG7EI32_V_M2_MF2_MASK = 11132,
+  PseudoVSOXSEG7EI32_V_M4_M1 = 11133,
+  PseudoVSOXSEG7EI32_V_M4_M1_MASK = 11134,
+  PseudoVSOXSEG7EI32_V_MF2_M1 = 11135,
+  PseudoVSOXSEG7EI32_V_MF2_M1_MASK = 11136,
+  PseudoVSOXSEG7EI32_V_MF2_MF2 = 11137,
+  PseudoVSOXSEG7EI32_V_MF2_MF2_MASK = 11138,
+  PseudoVSOXSEG7EI32_V_MF2_MF4 = 11139,
+  PseudoVSOXSEG7EI32_V_MF2_MF4_MASK = 11140,
+  PseudoVSOXSEG7EI32_V_MF2_MF8 = 11141,
+  PseudoVSOXSEG7EI32_V_MF2_MF8_MASK = 11142,
+  PseudoVSOXSEG7EI64_V_M1_M1 = 11143,
+  PseudoVSOXSEG7EI64_V_M1_M1_MASK = 11144,
+  PseudoVSOXSEG7EI64_V_M1_MF2 = 11145,
+  PseudoVSOXSEG7EI64_V_M1_MF2_MASK = 11146,
+  PseudoVSOXSEG7EI64_V_M1_MF4 = 11147,
+  PseudoVSOXSEG7EI64_V_M1_MF4_MASK = 11148,
+  PseudoVSOXSEG7EI64_V_M1_MF8 = 11149,
+  PseudoVSOXSEG7EI64_V_M1_MF8_MASK = 11150,
+  PseudoVSOXSEG7EI64_V_M2_M1 = 11151,
+  PseudoVSOXSEG7EI64_V_M2_M1_MASK = 11152,
+  PseudoVSOXSEG7EI64_V_M2_MF2 = 11153,
+  PseudoVSOXSEG7EI64_V_M2_MF2_MASK = 11154,
+  PseudoVSOXSEG7EI64_V_M2_MF4 = 11155,
+  PseudoVSOXSEG7EI64_V_M2_MF4_MASK = 11156,
+  PseudoVSOXSEG7EI64_V_M4_M1 = 11157,
+  PseudoVSOXSEG7EI64_V_M4_M1_MASK = 11158,
+  PseudoVSOXSEG7EI64_V_M4_MF2 = 11159,
+  PseudoVSOXSEG7EI64_V_M4_MF2_MASK = 11160,
+  PseudoVSOXSEG7EI64_V_M8_M1 = 11161,
+  PseudoVSOXSEG7EI64_V_M8_M1_MASK = 11162,
+  PseudoVSOXSEG7EI8_V_M1_M1 = 11163,
+  PseudoVSOXSEG7EI8_V_M1_M1_MASK = 11164,
+  PseudoVSOXSEG7EI8_V_MF2_M1 = 11165,
+  PseudoVSOXSEG7EI8_V_MF2_M1_MASK = 11166,
+  PseudoVSOXSEG7EI8_V_MF2_MF2 = 11167,
+  PseudoVSOXSEG7EI8_V_MF2_MF2_MASK = 11168,
+  PseudoVSOXSEG7EI8_V_MF4_M1 = 11169,
+  PseudoVSOXSEG7EI8_V_MF4_M1_MASK = 11170,
+  PseudoVSOXSEG7EI8_V_MF4_MF2 = 11171,
+  PseudoVSOXSEG7EI8_V_MF4_MF2_MASK = 11172,
+  PseudoVSOXSEG7EI8_V_MF4_MF4 = 11173,
+  PseudoVSOXSEG7EI8_V_MF4_MF4_MASK = 11174,
+  PseudoVSOXSEG7EI8_V_MF8_M1 = 11175,
+  PseudoVSOXSEG7EI8_V_MF8_M1_MASK = 11176,
+  PseudoVSOXSEG7EI8_V_MF8_MF2 = 11177,
+  PseudoVSOXSEG7EI8_V_MF8_MF2_MASK = 11178,
+  PseudoVSOXSEG7EI8_V_MF8_MF4 = 11179,
+  PseudoVSOXSEG7EI8_V_MF8_MF4_MASK = 11180,
+  PseudoVSOXSEG7EI8_V_MF8_MF8 = 11181,
+  PseudoVSOXSEG7EI8_V_MF8_MF8_MASK = 11182,
+  PseudoVSOXSEG8EI16_V_M1_M1 = 11183,
+  PseudoVSOXSEG8EI16_V_M1_M1_MASK = 11184,
+  PseudoVSOXSEG8EI16_V_M1_MF2 = 11185,
+  PseudoVSOXSEG8EI16_V_M1_MF2_MASK = 11186,
+  PseudoVSOXSEG8EI16_V_M2_M1 = 11187,
+  PseudoVSOXSEG8EI16_V_M2_M1_MASK = 11188,
+  PseudoVSOXSEG8EI16_V_MF2_M1 = 11189,
+  PseudoVSOXSEG8EI16_V_MF2_M1_MASK = 11190,
+  PseudoVSOXSEG8EI16_V_MF2_MF2 = 11191,
+  PseudoVSOXSEG8EI16_V_MF2_MF2_MASK = 11192,
+  PseudoVSOXSEG8EI16_V_MF2_MF4 = 11193,
+  PseudoVSOXSEG8EI16_V_MF2_MF4_MASK = 11194,
+  PseudoVSOXSEG8EI16_V_MF4_M1 = 11195,
+  PseudoVSOXSEG8EI16_V_MF4_M1_MASK = 11196,
+  PseudoVSOXSEG8EI16_V_MF4_MF2 = 11197,
+  PseudoVSOXSEG8EI16_V_MF4_MF2_MASK = 11198,
+  PseudoVSOXSEG8EI16_V_MF4_MF4 = 11199,
+  PseudoVSOXSEG8EI16_V_MF4_MF4_MASK = 11200,
+  PseudoVSOXSEG8EI16_V_MF4_MF8 = 11201,
+  PseudoVSOXSEG8EI16_V_MF4_MF8_MASK = 11202,
+  PseudoVSOXSEG8EI32_V_M1_M1 = 11203,
+  PseudoVSOXSEG8EI32_V_M1_M1_MASK = 11204,
+  PseudoVSOXSEG8EI32_V_M1_MF2 = 11205,
+  PseudoVSOXSEG8EI32_V_M1_MF2_MASK = 11206,
+  PseudoVSOXSEG8EI32_V_M1_MF4 = 11207,
+  PseudoVSOXSEG8EI32_V_M1_MF4_MASK = 11208,
+  PseudoVSOXSEG8EI32_V_M2_M1 = 11209,
+  PseudoVSOXSEG8EI32_V_M2_M1_MASK = 11210,
+  PseudoVSOXSEG8EI32_V_M2_MF2 = 11211,
+  PseudoVSOXSEG8EI32_V_M2_MF2_MASK = 11212,
+  PseudoVSOXSEG8EI32_V_M4_M1 = 11213,
+  PseudoVSOXSEG8EI32_V_M4_M1_MASK = 11214,
+  PseudoVSOXSEG8EI32_V_MF2_M1 = 11215,
+  PseudoVSOXSEG8EI32_V_MF2_M1_MASK = 11216,
+  PseudoVSOXSEG8EI32_V_MF2_MF2 = 11217,
+  PseudoVSOXSEG8EI32_V_MF2_MF2_MASK = 11218,
+  PseudoVSOXSEG8EI32_V_MF2_MF4 = 11219,
+  PseudoVSOXSEG8EI32_V_MF2_MF4_MASK = 11220,
+  PseudoVSOXSEG8EI32_V_MF2_MF8 = 11221,
+  PseudoVSOXSEG8EI32_V_MF2_MF8_MASK = 11222,
+  PseudoVSOXSEG8EI64_V_M1_M1 = 11223,
+  PseudoVSOXSEG8EI64_V_M1_M1_MASK = 11224,
+  PseudoVSOXSEG8EI64_V_M1_MF2 = 11225,
+  PseudoVSOXSEG8EI64_V_M1_MF2_MASK = 11226,
+  PseudoVSOXSEG8EI64_V_M1_MF4 = 11227,
+  PseudoVSOXSEG8EI64_V_M1_MF4_MASK = 11228,
+  PseudoVSOXSEG8EI64_V_M1_MF8 = 11229,
+  PseudoVSOXSEG8EI64_V_M1_MF8_MASK = 11230,
+  PseudoVSOXSEG8EI64_V_M2_M1 = 11231,
+  PseudoVSOXSEG8EI64_V_M2_M1_MASK = 11232,
+  PseudoVSOXSEG8EI64_V_M2_MF2 = 11233,
+  PseudoVSOXSEG8EI64_V_M2_MF2_MASK = 11234,
+  PseudoVSOXSEG8EI64_V_M2_MF4 = 11235,
+  PseudoVSOXSEG8EI64_V_M2_MF4_MASK = 11236,
+  PseudoVSOXSEG8EI64_V_M4_M1 = 11237,
+  PseudoVSOXSEG8EI64_V_M4_M1_MASK = 11238,
+  PseudoVSOXSEG8EI64_V_M4_MF2 = 11239,
+  PseudoVSOXSEG8EI64_V_M4_MF2_MASK = 11240,
+  PseudoVSOXSEG8EI64_V_M8_M1 = 11241,
+  PseudoVSOXSEG8EI64_V_M8_M1_MASK = 11242,
+  PseudoVSOXSEG8EI8_V_M1_M1 = 11243,
+  PseudoVSOXSEG8EI8_V_M1_M1_MASK = 11244,
+  PseudoVSOXSEG8EI8_V_MF2_M1 = 11245,
+  PseudoVSOXSEG8EI8_V_MF2_M1_MASK = 11246,
+  PseudoVSOXSEG8EI8_V_MF2_MF2 = 11247,
+  PseudoVSOXSEG8EI8_V_MF2_MF2_MASK = 11248,
+  PseudoVSOXSEG8EI8_V_MF4_M1 = 11249,
+  PseudoVSOXSEG8EI8_V_MF4_M1_MASK = 11250,
+  PseudoVSOXSEG8EI8_V_MF4_MF2 = 11251,
+  PseudoVSOXSEG8EI8_V_MF4_MF2_MASK = 11252,
+  PseudoVSOXSEG8EI8_V_MF4_MF4 = 11253,
+  PseudoVSOXSEG8EI8_V_MF4_MF4_MASK = 11254,
+  PseudoVSOXSEG8EI8_V_MF8_M1 = 11255,
+  PseudoVSOXSEG8EI8_V_MF8_M1_MASK = 11256,
+  PseudoVSOXSEG8EI8_V_MF8_MF2 = 11257,
+  PseudoVSOXSEG8EI8_V_MF8_MF2_MASK = 11258,
+  PseudoVSOXSEG8EI8_V_MF8_MF4 = 11259,
+  PseudoVSOXSEG8EI8_V_MF8_MF4_MASK = 11260,
+  PseudoVSOXSEG8EI8_V_MF8_MF8 = 11261,
+  PseudoVSOXSEG8EI8_V_MF8_MF8_MASK = 11262,
+  PseudoVSPILL2_M1 = 11263,
+  PseudoVSPILL2_M2 = 11264,
+  PseudoVSPILL2_M4 = 11265,
+  PseudoVSPILL2_MF2 = 11266,
+  PseudoVSPILL2_MF4 = 11267,
+  PseudoVSPILL2_MF8 = 11268,
+  PseudoVSPILL3_M1 = 11269,
+  PseudoVSPILL3_M2 = 11270,
+  PseudoVSPILL3_MF2 = 11271,
+  PseudoVSPILL3_MF4 = 11272,
+  PseudoVSPILL3_MF8 = 11273,
+  PseudoVSPILL4_M1 = 11274,
+  PseudoVSPILL4_M2 = 11275,
+  PseudoVSPILL4_MF2 = 11276,
+  PseudoVSPILL4_MF4 = 11277,
+  PseudoVSPILL4_MF8 = 11278,
+  PseudoVSPILL5_M1 = 11279,
+  PseudoVSPILL5_MF2 = 11280,
+  PseudoVSPILL5_MF4 = 11281,
+  PseudoVSPILL5_MF8 = 11282,
+  PseudoVSPILL6_M1 = 11283,
+  PseudoVSPILL6_MF2 = 11284,
+  PseudoVSPILL6_MF4 = 11285,
+  PseudoVSPILL6_MF8 = 11286,
+  PseudoVSPILL7_M1 = 11287,
+  PseudoVSPILL7_MF2 = 11288,
+  PseudoVSPILL7_MF4 = 11289,
+  PseudoVSPILL7_MF8 = 11290,
+  PseudoVSPILL8_M1 = 11291,
+  PseudoVSPILL8_MF2 = 11292,
+  PseudoVSPILL8_MF4 = 11293,
+  PseudoVSPILL8_MF8 = 11294,
+  PseudoVSRA_VI_M1 = 11295,
+  PseudoVSRA_VI_M1_MASK = 11296,
+  PseudoVSRA_VI_M2 = 11297,
+  PseudoVSRA_VI_M2_MASK = 11298,
+  PseudoVSRA_VI_M4 = 11299,
+  PseudoVSRA_VI_M4_MASK = 11300,
+  PseudoVSRA_VI_M8 = 11301,
+  PseudoVSRA_VI_M8_MASK = 11302,
+  PseudoVSRA_VI_MF2 = 11303,
+  PseudoVSRA_VI_MF2_MASK = 11304,
+  PseudoVSRA_VI_MF4 = 11305,
+  PseudoVSRA_VI_MF4_MASK = 11306,
+  PseudoVSRA_VI_MF8 = 11307,
+  PseudoVSRA_VI_MF8_MASK = 11308,
+  PseudoVSRA_VV_M1 = 11309,
+  PseudoVSRA_VV_M1_MASK = 11310,
+  PseudoVSRA_VV_M2 = 11311,
+  PseudoVSRA_VV_M2_MASK = 11312,
+  PseudoVSRA_VV_M4 = 11313,
+  PseudoVSRA_VV_M4_MASK = 11314,
+  PseudoVSRA_VV_M8 = 11315,
+  PseudoVSRA_VV_M8_MASK = 11316,
+  PseudoVSRA_VV_MF2 = 11317,
+  PseudoVSRA_VV_MF2_MASK = 11318,
+  PseudoVSRA_VV_MF4 = 11319,
+  PseudoVSRA_VV_MF4_MASK = 11320,
+  PseudoVSRA_VV_MF8 = 11321,
+  PseudoVSRA_VV_MF8_MASK = 11322,
+  PseudoVSRA_VX_M1 = 11323,
+  PseudoVSRA_VX_M1_MASK = 11324,
+  PseudoVSRA_VX_M2 = 11325,
+  PseudoVSRA_VX_M2_MASK = 11326,
+  PseudoVSRA_VX_M4 = 11327,
+  PseudoVSRA_VX_M4_MASK = 11328,
+  PseudoVSRA_VX_M8 = 11329,
+  PseudoVSRA_VX_M8_MASK = 11330,
+  PseudoVSRA_VX_MF2 = 11331,
+  PseudoVSRA_VX_MF2_MASK = 11332,
+  PseudoVSRA_VX_MF4 = 11333,
+  PseudoVSRA_VX_MF4_MASK = 11334,
+  PseudoVSRA_VX_MF8 = 11335,
+  PseudoVSRA_VX_MF8_MASK = 11336,
+  PseudoVSRL_VI_M1 = 11337,
+  PseudoVSRL_VI_M1_MASK = 11338,
+  PseudoVSRL_VI_M2 = 11339,
+  PseudoVSRL_VI_M2_MASK = 11340,
+  PseudoVSRL_VI_M4 = 11341,
+  PseudoVSRL_VI_M4_MASK = 11342,
+  PseudoVSRL_VI_M8 = 11343,
+  PseudoVSRL_VI_M8_MASK = 11344,
+  PseudoVSRL_VI_MF2 = 11345,
+  PseudoVSRL_VI_MF2_MASK = 11346,
+  PseudoVSRL_VI_MF4 = 11347,
+  PseudoVSRL_VI_MF4_MASK = 11348,
+  PseudoVSRL_VI_MF8 = 11349,
+  PseudoVSRL_VI_MF8_MASK = 11350,
+  PseudoVSRL_VV_M1 = 11351,
+  PseudoVSRL_VV_M1_MASK = 11352,
+  PseudoVSRL_VV_M2 = 11353,
+  PseudoVSRL_VV_M2_MASK = 11354,
+  PseudoVSRL_VV_M4 = 11355,
+  PseudoVSRL_VV_M4_MASK = 11356,
+  PseudoVSRL_VV_M8 = 11357,
+  PseudoVSRL_VV_M8_MASK = 11358,
+  PseudoVSRL_VV_MF2 = 11359,
+  PseudoVSRL_VV_MF2_MASK = 11360,
+  PseudoVSRL_VV_MF4 = 11361,
+  PseudoVSRL_VV_MF4_MASK = 11362,
+  PseudoVSRL_VV_MF8 = 11363,
+  PseudoVSRL_VV_MF8_MASK = 11364,
+  PseudoVSRL_VX_M1 = 11365,
+  PseudoVSRL_VX_M1_MASK = 11366,
+  PseudoVSRL_VX_M2 = 11367,
+  PseudoVSRL_VX_M2_MASK = 11368,
+  PseudoVSRL_VX_M4 = 11369,
+  PseudoVSRL_VX_M4_MASK = 11370,
+  PseudoVSRL_VX_M8 = 11371,
+  PseudoVSRL_VX_M8_MASK = 11372,
+  PseudoVSRL_VX_MF2 = 11373,
+  PseudoVSRL_VX_MF2_MASK = 11374,
+  PseudoVSRL_VX_MF4 = 11375,
+  PseudoVSRL_VX_MF4_MASK = 11376,
+  PseudoVSRL_VX_MF8 = 11377,
+  PseudoVSRL_VX_MF8_MASK = 11378,
+  PseudoVSSE16_V_M1 = 11379,
+  PseudoVSSE16_V_M1_MASK = 11380,
+  PseudoVSSE16_V_M2 = 11381,
+  PseudoVSSE16_V_M2_MASK = 11382,
+  PseudoVSSE16_V_M4 = 11383,
+  PseudoVSSE16_V_M4_MASK = 11384,
+  PseudoVSSE16_V_M8 = 11385,
+  PseudoVSSE16_V_M8_MASK = 11386,
+  PseudoVSSE16_V_MF2 = 11387,
+  PseudoVSSE16_V_MF2_MASK = 11388,
+  PseudoVSSE16_V_MF4 = 11389,
+  PseudoVSSE16_V_MF4_MASK = 11390,
+  PseudoVSSE32_V_M1 = 11391,
+  PseudoVSSE32_V_M1_MASK = 11392,
+  PseudoVSSE32_V_M2 = 11393,
+  PseudoVSSE32_V_M2_MASK = 11394,
+  PseudoVSSE32_V_M4 = 11395,
+  PseudoVSSE32_V_M4_MASK = 11396,
+  PseudoVSSE32_V_M8 = 11397,
+  PseudoVSSE32_V_M8_MASK = 11398,
+  PseudoVSSE32_V_MF2 = 11399,
+  PseudoVSSE32_V_MF2_MASK = 11400,
+  PseudoVSSE64_V_M1 = 11401,
+  PseudoVSSE64_V_M1_MASK = 11402,
+  PseudoVSSE64_V_M2 = 11403,
+  PseudoVSSE64_V_M2_MASK = 11404,
+  PseudoVSSE64_V_M4 = 11405,
+  PseudoVSSE64_V_M4_MASK = 11406,
+  PseudoVSSE64_V_M8 = 11407,
+  PseudoVSSE64_V_M8_MASK = 11408,
+  PseudoVSSE8_V_M1 = 11409,
+  PseudoVSSE8_V_M1_MASK = 11410,
+  PseudoVSSE8_V_M2 = 11411,
+  PseudoVSSE8_V_M2_MASK = 11412,
+  PseudoVSSE8_V_M4 = 11413,
+  PseudoVSSE8_V_M4_MASK = 11414,
+  PseudoVSSE8_V_M8 = 11415,
+  PseudoVSSE8_V_M8_MASK = 11416,
+  PseudoVSSE8_V_MF2 = 11417,
+  PseudoVSSE8_V_MF2_MASK = 11418,
+  PseudoVSSE8_V_MF4 = 11419,
+  PseudoVSSE8_V_MF4_MASK = 11420,
+  PseudoVSSE8_V_MF8 = 11421,
+  PseudoVSSE8_V_MF8_MASK = 11422,
+  PseudoVSSEG2E16_V_M1 = 11423,
+  PseudoVSSEG2E16_V_M1_MASK = 11424,
+  PseudoVSSEG2E16_V_M2 = 11425,
+  PseudoVSSEG2E16_V_M2_MASK = 11426,
+  PseudoVSSEG2E16_V_M4 = 11427,
+  PseudoVSSEG2E16_V_M4_MASK = 11428,
+  PseudoVSSEG2E16_V_MF2 = 11429,
+  PseudoVSSEG2E16_V_MF2_MASK = 11430,
+  PseudoVSSEG2E16_V_MF4 = 11431,
+  PseudoVSSEG2E16_V_MF4_MASK = 11432,
+  PseudoVSSEG2E32_V_M1 = 11433,
+  PseudoVSSEG2E32_V_M1_MASK = 11434,
+  PseudoVSSEG2E32_V_M2 = 11435,
+  PseudoVSSEG2E32_V_M2_MASK = 11436,
+  PseudoVSSEG2E32_V_M4 = 11437,
+  PseudoVSSEG2E32_V_M4_MASK = 11438,
+  PseudoVSSEG2E32_V_MF2 = 11439,
+  PseudoVSSEG2E32_V_MF2_MASK = 11440,
+  PseudoVSSEG2E64_V_M1 = 11441,
+  PseudoVSSEG2E64_V_M1_MASK = 11442,
+  PseudoVSSEG2E64_V_M2 = 11443,
+  PseudoVSSEG2E64_V_M2_MASK = 11444,
+  PseudoVSSEG2E64_V_M4 = 11445,
+  PseudoVSSEG2E64_V_M4_MASK = 11446,
+  PseudoVSSEG2E8_V_M1 = 11447,
+  PseudoVSSEG2E8_V_M1_MASK = 11448,
+  PseudoVSSEG2E8_V_M2 = 11449,
+  PseudoVSSEG2E8_V_M2_MASK = 11450,
+  PseudoVSSEG2E8_V_M4 = 11451,
+  PseudoVSSEG2E8_V_M4_MASK = 11452,
+  PseudoVSSEG2E8_V_MF2 = 11453,
+  PseudoVSSEG2E8_V_MF2_MASK = 11454,
+  PseudoVSSEG2E8_V_MF4 = 11455,
+  PseudoVSSEG2E8_V_MF4_MASK = 11456,
+  PseudoVSSEG2E8_V_MF8 = 11457,
+  PseudoVSSEG2E8_V_MF8_MASK = 11458,
+  PseudoVSSEG3E16_V_M1 = 11459,
+  PseudoVSSEG3E16_V_M1_MASK = 11460,
+  PseudoVSSEG3E16_V_M2 = 11461,
+  PseudoVSSEG3E16_V_M2_MASK = 11462,
+  PseudoVSSEG3E16_V_MF2 = 11463,
+  PseudoVSSEG3E16_V_MF2_MASK = 11464,
+  PseudoVSSEG3E16_V_MF4 = 11465,
+  PseudoVSSEG3E16_V_MF4_MASK = 11466,
+  PseudoVSSEG3E32_V_M1 = 11467,
+  PseudoVSSEG3E32_V_M1_MASK = 11468,
+  PseudoVSSEG3E32_V_M2 = 11469,
+  PseudoVSSEG3E32_V_M2_MASK = 11470,
+  PseudoVSSEG3E32_V_MF2 = 11471,
+  PseudoVSSEG3E32_V_MF2_MASK = 11472,
+  PseudoVSSEG3E64_V_M1 = 11473,
+  PseudoVSSEG3E64_V_M1_MASK = 11474,
+  PseudoVSSEG3E64_V_M2 = 11475,
+  PseudoVSSEG3E64_V_M2_MASK = 11476,
+  PseudoVSSEG3E8_V_M1 = 11477,
+  PseudoVSSEG3E8_V_M1_MASK = 11478,
+  PseudoVSSEG3E8_V_M2 = 11479,
+  PseudoVSSEG3E8_V_M2_MASK = 11480,
+  PseudoVSSEG3E8_V_MF2 = 11481,
+  PseudoVSSEG3E8_V_MF2_MASK = 11482,
+  PseudoVSSEG3E8_V_MF4 = 11483,
+  PseudoVSSEG3E8_V_MF4_MASK = 11484,
+  PseudoVSSEG3E8_V_MF8 = 11485,
+  PseudoVSSEG3E8_V_MF8_MASK = 11486,
+  PseudoVSSEG4E16_V_M1 = 11487,
+  PseudoVSSEG4E16_V_M1_MASK = 11488,
+  PseudoVSSEG4E16_V_M2 = 11489,
+  PseudoVSSEG4E16_V_M2_MASK = 11490,
+  PseudoVSSEG4E16_V_MF2 = 11491,
+  PseudoVSSEG4E16_V_MF2_MASK = 11492,
+  PseudoVSSEG4E16_V_MF4 = 11493,
+  PseudoVSSEG4E16_V_MF4_MASK = 11494,
+  PseudoVSSEG4E32_V_M1 = 11495,
+  PseudoVSSEG4E32_V_M1_MASK = 11496,
+  PseudoVSSEG4E32_V_M2 = 11497,
+  PseudoVSSEG4E32_V_M2_MASK = 11498,
+  PseudoVSSEG4E32_V_MF2 = 11499,
+  PseudoVSSEG4E32_V_MF2_MASK = 11500,
+  PseudoVSSEG4E64_V_M1 = 11501,
+  PseudoVSSEG4E64_V_M1_MASK = 11502,
+  PseudoVSSEG4E64_V_M2 = 11503,
+  PseudoVSSEG4E64_V_M2_MASK = 11504,
+  PseudoVSSEG4E8_V_M1 = 11505,
+  PseudoVSSEG4E8_V_M1_MASK = 11506,
+  PseudoVSSEG4E8_V_M2 = 11507,
+  PseudoVSSEG4E8_V_M2_MASK = 11508,
+  PseudoVSSEG4E8_V_MF2 = 11509,
+  PseudoVSSEG4E8_V_MF2_MASK = 11510,
+  PseudoVSSEG4E8_V_MF4 = 11511,
+  PseudoVSSEG4E8_V_MF4_MASK = 11512,
+  PseudoVSSEG4E8_V_MF8 = 11513,
+  PseudoVSSEG4E8_V_MF8_MASK = 11514,
+  PseudoVSSEG5E16_V_M1 = 11515,
+  PseudoVSSEG5E16_V_M1_MASK = 11516,
+  PseudoVSSEG5E16_V_MF2 = 11517,
+  PseudoVSSEG5E16_V_MF2_MASK = 11518,
+  PseudoVSSEG5E16_V_MF4 = 11519,
+  PseudoVSSEG5E16_V_MF4_MASK = 11520,
+  PseudoVSSEG5E32_V_M1 = 11521,
+  PseudoVSSEG5E32_V_M1_MASK = 11522,
+  PseudoVSSEG5E32_V_MF2 = 11523,
+  PseudoVSSEG5E32_V_MF2_MASK = 11524,
+  PseudoVSSEG5E64_V_M1 = 11525,
+  PseudoVSSEG5E64_V_M1_MASK = 11526,
+  PseudoVSSEG5E8_V_M1 = 11527,
+  PseudoVSSEG5E8_V_M1_MASK = 11528,
+  PseudoVSSEG5E8_V_MF2 = 11529,
+  PseudoVSSEG5E8_V_MF2_MASK = 11530,
+  PseudoVSSEG5E8_V_MF4 = 11531,
+  PseudoVSSEG5E8_V_MF4_MASK = 11532,
+  PseudoVSSEG5E8_V_MF8 = 11533,
+  PseudoVSSEG5E8_V_MF8_MASK = 11534,
+  PseudoVSSEG6E16_V_M1 = 11535,
+  PseudoVSSEG6E16_V_M1_MASK = 11536,
+  PseudoVSSEG6E16_V_MF2 = 11537,
+  PseudoVSSEG6E16_V_MF2_MASK = 11538,
+  PseudoVSSEG6E16_V_MF4 = 11539,
+  PseudoVSSEG6E16_V_MF4_MASK = 11540,
+  PseudoVSSEG6E32_V_M1 = 11541,
+  PseudoVSSEG6E32_V_M1_MASK = 11542,
+  PseudoVSSEG6E32_V_MF2 = 11543,
+  PseudoVSSEG6E32_V_MF2_MASK = 11544,
+  PseudoVSSEG6E64_V_M1 = 11545,
+  PseudoVSSEG6E64_V_M1_MASK = 11546,
+  PseudoVSSEG6E8_V_M1 = 11547,
+  PseudoVSSEG6E8_V_M1_MASK = 11548,
+  PseudoVSSEG6E8_V_MF2 = 11549,
+  PseudoVSSEG6E8_V_MF2_MASK = 11550,
+  PseudoVSSEG6E8_V_MF4 = 11551,
+  PseudoVSSEG6E8_V_MF4_MASK = 11552,
+  PseudoVSSEG6E8_V_MF8 = 11553,
+  PseudoVSSEG6E8_V_MF8_MASK = 11554,
+  PseudoVSSEG7E16_V_M1 = 11555,
+  PseudoVSSEG7E16_V_M1_MASK = 11556,
+  PseudoVSSEG7E16_V_MF2 = 11557,
+  PseudoVSSEG7E16_V_MF2_MASK = 11558,
+  PseudoVSSEG7E16_V_MF4 = 11559,
+  PseudoVSSEG7E16_V_MF4_MASK = 11560,
+  PseudoVSSEG7E32_V_M1 = 11561,
+  PseudoVSSEG7E32_V_M1_MASK = 11562,
+  PseudoVSSEG7E32_V_MF2 = 11563,
+  PseudoVSSEG7E32_V_MF2_MASK = 11564,
+  PseudoVSSEG7E64_V_M1 = 11565,
+  PseudoVSSEG7E64_V_M1_MASK = 11566,
+  PseudoVSSEG7E8_V_M1 = 11567,
+  PseudoVSSEG7E8_V_M1_MASK = 11568,
+  PseudoVSSEG7E8_V_MF2 = 11569,
+  PseudoVSSEG7E8_V_MF2_MASK = 11570,
+  PseudoVSSEG7E8_V_MF4 = 11571,
+  PseudoVSSEG7E8_V_MF4_MASK = 11572,
+  PseudoVSSEG7E8_V_MF8 = 11573,
+  PseudoVSSEG7E8_V_MF8_MASK = 11574,
+  PseudoVSSEG8E16_V_M1 = 11575,
+  PseudoVSSEG8E16_V_M1_MASK = 11576,
+  PseudoVSSEG8E16_V_MF2 = 11577,
+  PseudoVSSEG8E16_V_MF2_MASK = 11578,
+  PseudoVSSEG8E16_V_MF4 = 11579,
+  PseudoVSSEG8E16_V_MF4_MASK = 11580,
+  PseudoVSSEG8E32_V_M1 = 11581,
+  PseudoVSSEG8E32_V_M1_MASK = 11582,
+  PseudoVSSEG8E32_V_MF2 = 11583,
+  PseudoVSSEG8E32_V_MF2_MASK = 11584,
+  PseudoVSSEG8E64_V_M1 = 11585,
+  PseudoVSSEG8E64_V_M1_MASK = 11586,
+  PseudoVSSEG8E8_V_M1 = 11587,
+  PseudoVSSEG8E8_V_M1_MASK = 11588,
+  PseudoVSSEG8E8_V_MF2 = 11589,
+  PseudoVSSEG8E8_V_MF2_MASK = 11590,
+  PseudoVSSEG8E8_V_MF4 = 11591,
+  PseudoVSSEG8E8_V_MF4_MASK = 11592,
+  PseudoVSSEG8E8_V_MF8 = 11593,
+  PseudoVSSEG8E8_V_MF8_MASK = 11594,
+  PseudoVSSRA_VI_M1 = 11595,
+  PseudoVSSRA_VI_M1_MASK = 11596,
+  PseudoVSSRA_VI_M2 = 11597,
+  PseudoVSSRA_VI_M2_MASK = 11598,
+  PseudoVSSRA_VI_M4 = 11599,
+  PseudoVSSRA_VI_M4_MASK = 11600,
+  PseudoVSSRA_VI_M8 = 11601,
+  PseudoVSSRA_VI_M8_MASK = 11602,
+  PseudoVSSRA_VI_MF2 = 11603,
+  PseudoVSSRA_VI_MF2_MASK = 11604,
+  PseudoVSSRA_VI_MF4 = 11605,
+  PseudoVSSRA_VI_MF4_MASK = 11606,
+  PseudoVSSRA_VI_MF8 = 11607,
+  PseudoVSSRA_VI_MF8_MASK = 11608,
+  PseudoVSSRA_VV_M1 = 11609,
+  PseudoVSSRA_VV_M1_MASK = 11610,
+  PseudoVSSRA_VV_M2 = 11611,
+  PseudoVSSRA_VV_M2_MASK = 11612,
+  PseudoVSSRA_VV_M4 = 11613,
+  PseudoVSSRA_VV_M4_MASK = 11614,
+  PseudoVSSRA_VV_M8 = 11615,
+  PseudoVSSRA_VV_M8_MASK = 11616,
+  PseudoVSSRA_VV_MF2 = 11617,
+  PseudoVSSRA_VV_MF2_MASK = 11618,
+  PseudoVSSRA_VV_MF4 = 11619,
+  PseudoVSSRA_VV_MF4_MASK = 11620,
+  PseudoVSSRA_VV_MF8 = 11621,
+  PseudoVSSRA_VV_MF8_MASK = 11622,
+  PseudoVSSRA_VX_M1 = 11623,
+  PseudoVSSRA_VX_M1_MASK = 11624,
+  PseudoVSSRA_VX_M2 = 11625,
+  PseudoVSSRA_VX_M2_MASK = 11626,
+  PseudoVSSRA_VX_M4 = 11627,
+  PseudoVSSRA_VX_M4_MASK = 11628,
+  PseudoVSSRA_VX_M8 = 11629,
+  PseudoVSSRA_VX_M8_MASK = 11630,
+  PseudoVSSRA_VX_MF2 = 11631,
+  PseudoVSSRA_VX_MF2_MASK = 11632,
+  PseudoVSSRA_VX_MF4 = 11633,
+  PseudoVSSRA_VX_MF4_MASK = 11634,
+  PseudoVSSRA_VX_MF8 = 11635,
+  PseudoVSSRA_VX_MF8_MASK = 11636,
+  PseudoVSSRL_VI_M1 = 11637,
+  PseudoVSSRL_VI_M1_MASK = 11638,
+  PseudoVSSRL_VI_M2 = 11639,
+  PseudoVSSRL_VI_M2_MASK = 11640,
+  PseudoVSSRL_VI_M4 = 11641,
+  PseudoVSSRL_VI_M4_MASK = 11642,
+  PseudoVSSRL_VI_M8 = 11643,
+  PseudoVSSRL_VI_M8_MASK = 11644,
+  PseudoVSSRL_VI_MF2 = 11645,
+  PseudoVSSRL_VI_MF2_MASK = 11646,
+  PseudoVSSRL_VI_MF4 = 11647,
+  PseudoVSSRL_VI_MF4_MASK = 11648,
+  PseudoVSSRL_VI_MF8 = 11649,
+  PseudoVSSRL_VI_MF8_MASK = 11650,
+  PseudoVSSRL_VV_M1 = 11651,
+  PseudoVSSRL_VV_M1_MASK = 11652,
+  PseudoVSSRL_VV_M2 = 11653,
+  PseudoVSSRL_VV_M2_MASK = 11654,
+  PseudoVSSRL_VV_M4 = 11655,
+  PseudoVSSRL_VV_M4_MASK = 11656,
+  PseudoVSSRL_VV_M8 = 11657,
+  PseudoVSSRL_VV_M8_MASK = 11658,
+  PseudoVSSRL_VV_MF2 = 11659,
+  PseudoVSSRL_VV_MF2_MASK = 11660,
+  PseudoVSSRL_VV_MF4 = 11661,
+  PseudoVSSRL_VV_MF4_MASK = 11662,
+  PseudoVSSRL_VV_MF8 = 11663,
+  PseudoVSSRL_VV_MF8_MASK = 11664,
+  PseudoVSSRL_VX_M1 = 11665,
+  PseudoVSSRL_VX_M1_MASK = 11666,
+  PseudoVSSRL_VX_M2 = 11667,
+  PseudoVSSRL_VX_M2_MASK = 11668,
+  PseudoVSSRL_VX_M4 = 11669,
+  PseudoVSSRL_VX_M4_MASK = 11670,
+  PseudoVSSRL_VX_M8 = 11671,
+  PseudoVSSRL_VX_M8_MASK = 11672,
+  PseudoVSSRL_VX_MF2 = 11673,
+  PseudoVSSRL_VX_MF2_MASK = 11674,
+  PseudoVSSRL_VX_MF4 = 11675,
+  PseudoVSSRL_VX_MF4_MASK = 11676,
+  PseudoVSSRL_VX_MF8 = 11677,
+  PseudoVSSRL_VX_MF8_MASK = 11678,
+  PseudoVSSSEG2E16_V_M1 = 11679,
+  PseudoVSSSEG2E16_V_M1_MASK = 11680,
+  PseudoVSSSEG2E16_V_M2 = 11681,
+  PseudoVSSSEG2E16_V_M2_MASK = 11682,
+  PseudoVSSSEG2E16_V_M4 = 11683,
+  PseudoVSSSEG2E16_V_M4_MASK = 11684,
+  PseudoVSSSEG2E16_V_MF2 = 11685,
+  PseudoVSSSEG2E16_V_MF2_MASK = 11686,
+  PseudoVSSSEG2E16_V_MF4 = 11687,
+  PseudoVSSSEG2E16_V_MF4_MASK = 11688,
+  PseudoVSSSEG2E32_V_M1 = 11689,
+  PseudoVSSSEG2E32_V_M1_MASK = 11690,
+  PseudoVSSSEG2E32_V_M2 = 11691,
+  PseudoVSSSEG2E32_V_M2_MASK = 11692,
+  PseudoVSSSEG2E32_V_M4 = 11693,
+  PseudoVSSSEG2E32_V_M4_MASK = 11694,
+  PseudoVSSSEG2E32_V_MF2 = 11695,
+  PseudoVSSSEG2E32_V_MF2_MASK = 11696,
+  PseudoVSSSEG2E64_V_M1 = 11697,
+  PseudoVSSSEG2E64_V_M1_MASK = 11698,
+  PseudoVSSSEG2E64_V_M2 = 11699,
+  PseudoVSSSEG2E64_V_M2_MASK = 11700,
+  PseudoVSSSEG2E64_V_M4 = 11701,
+  PseudoVSSSEG2E64_V_M4_MASK = 11702,
+  PseudoVSSSEG2E8_V_M1 = 11703,
+  PseudoVSSSEG2E8_V_M1_MASK = 11704,
+  PseudoVSSSEG2E8_V_M2 = 11705,
+  PseudoVSSSEG2E8_V_M2_MASK = 11706,
+  PseudoVSSSEG2E8_V_M4 = 11707,
+  PseudoVSSSEG2E8_V_M4_MASK = 11708,
+  PseudoVSSSEG2E8_V_MF2 = 11709,
+  PseudoVSSSEG2E8_V_MF2_MASK = 11710,
+  PseudoVSSSEG2E8_V_MF4 = 11711,
+  PseudoVSSSEG2E8_V_MF4_MASK = 11712,
+  PseudoVSSSEG2E8_V_MF8 = 11713,
+  PseudoVSSSEG2E8_V_MF8_MASK = 11714,
+  PseudoVSSSEG3E16_V_M1 = 11715,
+  PseudoVSSSEG3E16_V_M1_MASK = 11716,
+  PseudoVSSSEG3E16_V_M2 = 11717,
+  PseudoVSSSEG3E16_V_M2_MASK = 11718,
+  PseudoVSSSEG3E16_V_MF2 = 11719,
+  PseudoVSSSEG3E16_V_MF2_MASK = 11720,
+  PseudoVSSSEG3E16_V_MF4 = 11721,
+  PseudoVSSSEG3E16_V_MF4_MASK = 11722,
+  PseudoVSSSEG3E32_V_M1 = 11723,
+  PseudoVSSSEG3E32_V_M1_MASK = 11724,
+  PseudoVSSSEG3E32_V_M2 = 11725,
+  PseudoVSSSEG3E32_V_M2_MASK = 11726,
+  PseudoVSSSEG3E32_V_MF2 = 11727,
+  PseudoVSSSEG3E32_V_MF2_MASK = 11728,
+  PseudoVSSSEG3E64_V_M1 = 11729,
+  PseudoVSSSEG3E64_V_M1_MASK = 11730,
+  PseudoVSSSEG3E64_V_M2 = 11731,
+  PseudoVSSSEG3E64_V_M2_MASK = 11732,
+  PseudoVSSSEG3E8_V_M1 = 11733,
+  PseudoVSSSEG3E8_V_M1_MASK = 11734,
+  PseudoVSSSEG3E8_V_M2 = 11735,
+  PseudoVSSSEG3E8_V_M2_MASK = 11736,
+  PseudoVSSSEG3E8_V_MF2 = 11737,
+  PseudoVSSSEG3E8_V_MF2_MASK = 11738,
+  PseudoVSSSEG3E8_V_MF4 = 11739,
+  PseudoVSSSEG3E8_V_MF4_MASK = 11740,
+  PseudoVSSSEG3E8_V_MF8 = 11741,
+  PseudoVSSSEG3E8_V_MF8_MASK = 11742,
+  PseudoVSSSEG4E16_V_M1 = 11743,
+  PseudoVSSSEG4E16_V_M1_MASK = 11744,
+  PseudoVSSSEG4E16_V_M2 = 11745,
+  PseudoVSSSEG4E16_V_M2_MASK = 11746,
+  PseudoVSSSEG4E16_V_MF2 = 11747,
+  PseudoVSSSEG4E16_V_MF2_MASK = 11748,
+  PseudoVSSSEG4E16_V_MF4 = 11749,
+  PseudoVSSSEG4E16_V_MF4_MASK = 11750,
+  PseudoVSSSEG4E32_V_M1 = 11751,
+  PseudoVSSSEG4E32_V_M1_MASK = 11752,
+  PseudoVSSSEG4E32_V_M2 = 11753,
+  PseudoVSSSEG4E32_V_M2_MASK = 11754,
+  PseudoVSSSEG4E32_V_MF2 = 11755,
+  PseudoVSSSEG4E32_V_MF2_MASK = 11756,
+  PseudoVSSSEG4E64_V_M1 = 11757,
+  PseudoVSSSEG4E64_V_M1_MASK = 11758,
+  PseudoVSSSEG4E64_V_M2 = 11759,
+  PseudoVSSSEG4E64_V_M2_MASK = 11760,
+  PseudoVSSSEG4E8_V_M1 = 11761,
+  PseudoVSSSEG4E8_V_M1_MASK = 11762,
+  PseudoVSSSEG4E8_V_M2 = 11763,
+  PseudoVSSSEG4E8_V_M2_MASK = 11764,
+  PseudoVSSSEG4E8_V_MF2 = 11765,
+  PseudoVSSSEG4E8_V_MF2_MASK = 11766,
+  PseudoVSSSEG4E8_V_MF4 = 11767,
+  PseudoVSSSEG4E8_V_MF4_MASK = 11768,
+  PseudoVSSSEG4E8_V_MF8 = 11769,
+  PseudoVSSSEG4E8_V_MF8_MASK = 11770,
+  PseudoVSSSEG5E16_V_M1 = 11771,
+  PseudoVSSSEG5E16_V_M1_MASK = 11772,
+  PseudoVSSSEG5E16_V_MF2 = 11773,
+  PseudoVSSSEG5E16_V_MF2_MASK = 11774,
+  PseudoVSSSEG5E16_V_MF4 = 11775,
+  PseudoVSSSEG5E16_V_MF4_MASK = 11776,
+  PseudoVSSSEG5E32_V_M1 = 11777,
+  PseudoVSSSEG5E32_V_M1_MASK = 11778,
+  PseudoVSSSEG5E32_V_MF2 = 11779,
+  PseudoVSSSEG5E32_V_MF2_MASK = 11780,
+  PseudoVSSSEG5E64_V_M1 = 11781,
+  PseudoVSSSEG5E64_V_M1_MASK = 11782,
+  PseudoVSSSEG5E8_V_M1 = 11783,
+  PseudoVSSSEG5E8_V_M1_MASK = 11784,
+  PseudoVSSSEG5E8_V_MF2 = 11785,
+  PseudoVSSSEG5E8_V_MF2_MASK = 11786,
+  PseudoVSSSEG5E8_V_MF4 = 11787,
+  PseudoVSSSEG5E8_V_MF4_MASK = 11788,
+  PseudoVSSSEG5E8_V_MF8 = 11789,
+  PseudoVSSSEG5E8_V_MF8_MASK = 11790,
+  PseudoVSSSEG6E16_V_M1 = 11791,
+  PseudoVSSSEG6E16_V_M1_MASK = 11792,
+  PseudoVSSSEG6E16_V_MF2 = 11793,
+  PseudoVSSSEG6E16_V_MF2_MASK = 11794,
+  PseudoVSSSEG6E16_V_MF4 = 11795,
+  PseudoVSSSEG6E16_V_MF4_MASK = 11796,
+  PseudoVSSSEG6E32_V_M1 = 11797,
+  PseudoVSSSEG6E32_V_M1_MASK = 11798,
+  PseudoVSSSEG6E32_V_MF2 = 11799,
+  PseudoVSSSEG6E32_V_MF2_MASK = 11800,
+  PseudoVSSSEG6E64_V_M1 = 11801,
+  PseudoVSSSEG6E64_V_M1_MASK = 11802,
+  PseudoVSSSEG6E8_V_M1 = 11803,
+  PseudoVSSSEG6E8_V_M1_MASK = 11804,
+  PseudoVSSSEG6E8_V_MF2 = 11805,
+  PseudoVSSSEG6E8_V_MF2_MASK = 11806,
+  PseudoVSSSEG6E8_V_MF4 = 11807,
+  PseudoVSSSEG6E8_V_MF4_MASK = 11808,
+  PseudoVSSSEG6E8_V_MF8 = 11809,
+  PseudoVSSSEG6E8_V_MF8_MASK = 11810,
+  PseudoVSSSEG7E16_V_M1 = 11811,
+  PseudoVSSSEG7E16_V_M1_MASK = 11812,
+  PseudoVSSSEG7E16_V_MF2 = 11813,
+  PseudoVSSSEG7E16_V_MF2_MASK = 11814,
+  PseudoVSSSEG7E16_V_MF4 = 11815,
+  PseudoVSSSEG7E16_V_MF4_MASK = 11816,
+  PseudoVSSSEG7E32_V_M1 = 11817,
+  PseudoVSSSEG7E32_V_M1_MASK = 11818,
+  PseudoVSSSEG7E32_V_MF2 = 11819,
+  PseudoVSSSEG7E32_V_MF2_MASK = 11820,
+  PseudoVSSSEG7E64_V_M1 = 11821,
+  PseudoVSSSEG7E64_V_M1_MASK = 11822,
+  PseudoVSSSEG7E8_V_M1 = 11823,
+  PseudoVSSSEG7E8_V_M1_MASK = 11824,
+  PseudoVSSSEG7E8_V_MF2 = 11825,
+  PseudoVSSSEG7E8_V_MF2_MASK = 11826,
+  PseudoVSSSEG7E8_V_MF4 = 11827,
+  PseudoVSSSEG7E8_V_MF4_MASK = 11828,
+  PseudoVSSSEG7E8_V_MF8 = 11829,
+  PseudoVSSSEG7E8_V_MF8_MASK = 11830,
+  PseudoVSSSEG8E16_V_M1 = 11831,
+  PseudoVSSSEG8E16_V_M1_MASK = 11832,
+  PseudoVSSSEG8E16_V_MF2 = 11833,
+  PseudoVSSSEG8E16_V_MF2_MASK = 11834,
+  PseudoVSSSEG8E16_V_MF4 = 11835,
+  PseudoVSSSEG8E16_V_MF4_MASK = 11836,
+  PseudoVSSSEG8E32_V_M1 = 11837,
+  PseudoVSSSEG8E32_V_M1_MASK = 11838,
+  PseudoVSSSEG8E32_V_MF2 = 11839,
+  PseudoVSSSEG8E32_V_MF2_MASK = 11840,
+  PseudoVSSSEG8E64_V_M1 = 11841,
+  PseudoVSSSEG8E64_V_M1_MASK = 11842,
+  PseudoVSSSEG8E8_V_M1 = 11843,
+  PseudoVSSSEG8E8_V_M1_MASK = 11844,
+  PseudoVSSSEG8E8_V_MF2 = 11845,
+  PseudoVSSSEG8E8_V_MF2_MASK = 11846,
+  PseudoVSSSEG8E8_V_MF4 = 11847,
+  PseudoVSSSEG8E8_V_MF4_MASK = 11848,
+  PseudoVSSSEG8E8_V_MF8 = 11849,
+  PseudoVSSSEG8E8_V_MF8_MASK = 11850,
+  PseudoVSSUBU_VV_M1 = 11851,
+  PseudoVSSUBU_VV_M1_MASK = 11852,
+  PseudoVSSUBU_VV_M2 = 11853,
+  PseudoVSSUBU_VV_M2_MASK = 11854,
+  PseudoVSSUBU_VV_M4 = 11855,
+  PseudoVSSUBU_VV_M4_MASK = 11856,
+  PseudoVSSUBU_VV_M8 = 11857,
+  PseudoVSSUBU_VV_M8_MASK = 11858,
+  PseudoVSSUBU_VV_MF2 = 11859,
+  PseudoVSSUBU_VV_MF2_MASK = 11860,
+  PseudoVSSUBU_VV_MF4 = 11861,
+  PseudoVSSUBU_VV_MF4_MASK = 11862,
+  PseudoVSSUBU_VV_MF8 = 11863,
+  PseudoVSSUBU_VV_MF8_MASK = 11864,
+  PseudoVSSUBU_VX_M1 = 11865,
+  PseudoVSSUBU_VX_M1_MASK = 11866,
+  PseudoVSSUBU_VX_M2 = 11867,
+  PseudoVSSUBU_VX_M2_MASK = 11868,
+  PseudoVSSUBU_VX_M4 = 11869,
+  PseudoVSSUBU_VX_M4_MASK = 11870,
+  PseudoVSSUBU_VX_M8 = 11871,
+  PseudoVSSUBU_VX_M8_MASK = 11872,
+  PseudoVSSUBU_VX_MF2 = 11873,
+  PseudoVSSUBU_VX_MF2_MASK = 11874,
+  PseudoVSSUBU_VX_MF4 = 11875,
+  PseudoVSSUBU_VX_MF4_MASK = 11876,
+  PseudoVSSUBU_VX_MF8 = 11877,
+  PseudoVSSUBU_VX_MF8_MASK = 11878,
+  PseudoVSSUB_VV_M1 = 11879,
+  PseudoVSSUB_VV_M1_MASK = 11880,
+  PseudoVSSUB_VV_M2 = 11881,
+  PseudoVSSUB_VV_M2_MASK = 11882,
+  PseudoVSSUB_VV_M4 = 11883,
+  PseudoVSSUB_VV_M4_MASK = 11884,
+  PseudoVSSUB_VV_M8 = 11885,
+  PseudoVSSUB_VV_M8_MASK = 11886,
+  PseudoVSSUB_VV_MF2 = 11887,
+  PseudoVSSUB_VV_MF2_MASK = 11888,
+  PseudoVSSUB_VV_MF4 = 11889,
+  PseudoVSSUB_VV_MF4_MASK = 11890,
+  PseudoVSSUB_VV_MF8 = 11891,
+  PseudoVSSUB_VV_MF8_MASK = 11892,
+  PseudoVSSUB_VX_M1 = 11893,
+  PseudoVSSUB_VX_M1_MASK = 11894,
+  PseudoVSSUB_VX_M2 = 11895,
+  PseudoVSSUB_VX_M2_MASK = 11896,
+  PseudoVSSUB_VX_M4 = 11897,
+  PseudoVSSUB_VX_M4_MASK = 11898,
+  PseudoVSSUB_VX_M8 = 11899,
+  PseudoVSSUB_VX_M8_MASK = 11900,
+  PseudoVSSUB_VX_MF2 = 11901,
+  PseudoVSSUB_VX_MF2_MASK = 11902,
+  PseudoVSSUB_VX_MF4 = 11903,
+  PseudoVSSUB_VX_MF4_MASK = 11904,
+  PseudoVSSUB_VX_MF8 = 11905,
+  PseudoVSSUB_VX_MF8_MASK = 11906,
+  PseudoVSUB_VV_M1 = 11907,
+  PseudoVSUB_VV_M1_MASK = 11908,
+  PseudoVSUB_VV_M2 = 11909,
+  PseudoVSUB_VV_M2_MASK = 11910,
+  PseudoVSUB_VV_M4 = 11911,
+  PseudoVSUB_VV_M4_MASK = 11912,
+  PseudoVSUB_VV_M8 = 11913,
+  PseudoVSUB_VV_M8_MASK = 11914,
+  PseudoVSUB_VV_MF2 = 11915,
+  PseudoVSUB_VV_MF2_MASK = 11916,
+  PseudoVSUB_VV_MF4 = 11917,
+  PseudoVSUB_VV_MF4_MASK = 11918,
+  PseudoVSUB_VV_MF8 = 11919,
+  PseudoVSUB_VV_MF8_MASK = 11920,
+  PseudoVSUB_VX_M1 = 11921,
+  PseudoVSUB_VX_M1_MASK = 11922,
+  PseudoVSUB_VX_M2 = 11923,
+  PseudoVSUB_VX_M2_MASK = 11924,
+  PseudoVSUB_VX_M4 = 11925,
+  PseudoVSUB_VX_M4_MASK = 11926,
+  PseudoVSUB_VX_M8 = 11927,
+  PseudoVSUB_VX_M8_MASK = 11928,
+  PseudoVSUB_VX_MF2 = 11929,
+  PseudoVSUB_VX_MF2_MASK = 11930,
+  PseudoVSUB_VX_MF4 = 11931,
+  PseudoVSUB_VX_MF4_MASK = 11932,
+  PseudoVSUB_VX_MF8 = 11933,
+  PseudoVSUB_VX_MF8_MASK = 11934,
+  PseudoVSUXEI16_V_M1_M1 = 11935,
+  PseudoVSUXEI16_V_M1_M1_MASK = 11936,
+  PseudoVSUXEI16_V_M1_M2 = 11937,
+  PseudoVSUXEI16_V_M1_M2_MASK = 11938,
+  PseudoVSUXEI16_V_M1_M4 = 11939,
+  PseudoVSUXEI16_V_M1_M4_MASK = 11940,
+  PseudoVSUXEI16_V_M1_MF2 = 11941,
+  PseudoVSUXEI16_V_M1_MF2_MASK = 11942,
+  PseudoVSUXEI16_V_M2_M1 = 11943,
+  PseudoVSUXEI16_V_M2_M1_MASK = 11944,
+  PseudoVSUXEI16_V_M2_M2 = 11945,
+  PseudoVSUXEI16_V_M2_M2_MASK = 11946,
+  PseudoVSUXEI16_V_M2_M4 = 11947,
+  PseudoVSUXEI16_V_M2_M4_MASK = 11948,
+  PseudoVSUXEI16_V_M2_M8 = 11949,
+  PseudoVSUXEI16_V_M2_M8_MASK = 11950,
+  PseudoVSUXEI16_V_M4_M2 = 11951,
+  PseudoVSUXEI16_V_M4_M2_MASK = 11952,
+  PseudoVSUXEI16_V_M4_M4 = 11953,
+  PseudoVSUXEI16_V_M4_M4_MASK = 11954,
+  PseudoVSUXEI16_V_M4_M8 = 11955,
+  PseudoVSUXEI16_V_M4_M8_MASK = 11956,
+  PseudoVSUXEI16_V_M8_M4 = 11957,
+  PseudoVSUXEI16_V_M8_M4_MASK = 11958,
+  PseudoVSUXEI16_V_M8_M8 = 11959,
+  PseudoVSUXEI16_V_M8_M8_MASK = 11960,
+  PseudoVSUXEI16_V_MF2_M1 = 11961,
+  PseudoVSUXEI16_V_MF2_M1_MASK = 11962,
+  PseudoVSUXEI16_V_MF2_M2 = 11963,
+  PseudoVSUXEI16_V_MF2_M2_MASK = 11964,
+  PseudoVSUXEI16_V_MF2_MF2 = 11965,
+  PseudoVSUXEI16_V_MF2_MF2_MASK = 11966,
+  PseudoVSUXEI16_V_MF2_MF4 = 11967,
+  PseudoVSUXEI16_V_MF2_MF4_MASK = 11968,
+  PseudoVSUXEI16_V_MF4_M1 = 11969,
+  PseudoVSUXEI16_V_MF4_M1_MASK = 11970,
+  PseudoVSUXEI16_V_MF4_MF2 = 11971,
+  PseudoVSUXEI16_V_MF4_MF2_MASK = 11972,
+  PseudoVSUXEI16_V_MF4_MF4 = 11973,
+  PseudoVSUXEI16_V_MF4_MF4_MASK = 11974,
+  PseudoVSUXEI16_V_MF4_MF8 = 11975,
+  PseudoVSUXEI16_V_MF4_MF8_MASK = 11976,
+  PseudoVSUXEI32_V_M1_M1 = 11977,
+  PseudoVSUXEI32_V_M1_M1_MASK = 11978,
+  PseudoVSUXEI32_V_M1_M2 = 11979,
+  PseudoVSUXEI32_V_M1_M2_MASK = 11980,
+  PseudoVSUXEI32_V_M1_MF2 = 11981,
+  PseudoVSUXEI32_V_M1_MF2_MASK = 11982,
+  PseudoVSUXEI32_V_M1_MF4 = 11983,
+  PseudoVSUXEI32_V_M1_MF4_MASK = 11984,
+  PseudoVSUXEI32_V_M2_M1 = 11985,
+  PseudoVSUXEI32_V_M2_M1_MASK = 11986,
+  PseudoVSUXEI32_V_M2_M2 = 11987,
+  PseudoVSUXEI32_V_M2_M2_MASK = 11988,
+  PseudoVSUXEI32_V_M2_M4 = 11989,
+  PseudoVSUXEI32_V_M2_M4_MASK = 11990,
+  PseudoVSUXEI32_V_M2_MF2 = 11991,
+  PseudoVSUXEI32_V_M2_MF2_MASK = 11992,
+  PseudoVSUXEI32_V_M4_M1 = 11993,
+  PseudoVSUXEI32_V_M4_M1_MASK = 11994,
+  PseudoVSUXEI32_V_M4_M2 = 11995,
+  PseudoVSUXEI32_V_M4_M2_MASK = 11996,
+  PseudoVSUXEI32_V_M4_M4 = 11997,
+  PseudoVSUXEI32_V_M4_M4_MASK = 11998,
+  PseudoVSUXEI32_V_M4_M8 = 11999,
+  PseudoVSUXEI32_V_M4_M8_MASK = 12000,
+  PseudoVSUXEI32_V_M8_M2 = 12001,
+  PseudoVSUXEI32_V_M8_M2_MASK = 12002,
+  PseudoVSUXEI32_V_M8_M4 = 12003,
+  PseudoVSUXEI32_V_M8_M4_MASK = 12004,
+  PseudoVSUXEI32_V_M8_M8 = 12005,
+  PseudoVSUXEI32_V_M8_M8_MASK = 12006,
+  PseudoVSUXEI32_V_MF2_M1 = 12007,
+  PseudoVSUXEI32_V_MF2_M1_MASK = 12008,
+  PseudoVSUXEI32_V_MF2_MF2 = 12009,
+  PseudoVSUXEI32_V_MF2_MF2_MASK = 12010,
+  PseudoVSUXEI32_V_MF2_MF4 = 12011,
+  PseudoVSUXEI32_V_MF2_MF4_MASK = 12012,
+  PseudoVSUXEI32_V_MF2_MF8 = 12013,
+  PseudoVSUXEI32_V_MF2_MF8_MASK = 12014,
+  PseudoVSUXEI64_V_M1_M1 = 12015,
+  PseudoVSUXEI64_V_M1_M1_MASK = 12016,
+  PseudoVSUXEI64_V_M1_MF2 = 12017,
+  PseudoVSUXEI64_V_M1_MF2_MASK = 12018,
+  PseudoVSUXEI64_V_M1_MF4 = 12019,
+  PseudoVSUXEI64_V_M1_MF4_MASK = 12020,
+  PseudoVSUXEI64_V_M1_MF8 = 12021,
+  PseudoVSUXEI64_V_M1_MF8_MASK = 12022,
+  PseudoVSUXEI64_V_M2_M1 = 12023,
+  PseudoVSUXEI64_V_M2_M1_MASK = 12024,
+  PseudoVSUXEI64_V_M2_M2 = 12025,
+  PseudoVSUXEI64_V_M2_M2_MASK = 12026,
+  PseudoVSUXEI64_V_M2_MF2 = 12027,
+  PseudoVSUXEI64_V_M2_MF2_MASK = 12028,
+  PseudoVSUXEI64_V_M2_MF4 = 12029,
+  PseudoVSUXEI64_V_M2_MF4_MASK = 12030,
+  PseudoVSUXEI64_V_M4_M1 = 12031,
+  PseudoVSUXEI64_V_M4_M1_MASK = 12032,
+  PseudoVSUXEI64_V_M4_M2 = 12033,
+  PseudoVSUXEI64_V_M4_M2_MASK = 12034,
+  PseudoVSUXEI64_V_M4_M4 = 12035,
+  PseudoVSUXEI64_V_M4_M4_MASK = 12036,
+  PseudoVSUXEI64_V_M4_MF2 = 12037,
+  PseudoVSUXEI64_V_M4_MF2_MASK = 12038,
+  PseudoVSUXEI64_V_M8_M1 = 12039,
+  PseudoVSUXEI64_V_M8_M1_MASK = 12040,
+  PseudoVSUXEI64_V_M8_M2 = 12041,
+  PseudoVSUXEI64_V_M8_M2_MASK = 12042,
+  PseudoVSUXEI64_V_M8_M4 = 12043,
+  PseudoVSUXEI64_V_M8_M4_MASK = 12044,
+  PseudoVSUXEI64_V_M8_M8 = 12045,
+  PseudoVSUXEI64_V_M8_M8_MASK = 12046,
+  PseudoVSUXEI8_V_M1_M1 = 12047,
+  PseudoVSUXEI8_V_M1_M1_MASK = 12048,
+  PseudoVSUXEI8_V_M1_M2 = 12049,
+  PseudoVSUXEI8_V_M1_M2_MASK = 12050,
+  PseudoVSUXEI8_V_M1_M4 = 12051,
+  PseudoVSUXEI8_V_M1_M4_MASK = 12052,
+  PseudoVSUXEI8_V_M1_M8 = 12053,
+  PseudoVSUXEI8_V_M1_M8_MASK = 12054,
+  PseudoVSUXEI8_V_M2_M2 = 12055,
+  PseudoVSUXEI8_V_M2_M2_MASK = 12056,
+  PseudoVSUXEI8_V_M2_M4 = 12057,
+  PseudoVSUXEI8_V_M2_M4_MASK = 12058,
+  PseudoVSUXEI8_V_M2_M8 = 12059,
+  PseudoVSUXEI8_V_M2_M8_MASK = 12060,
+  PseudoVSUXEI8_V_M4_M4 = 12061,
+  PseudoVSUXEI8_V_M4_M4_MASK = 12062,
+  PseudoVSUXEI8_V_M4_M8 = 12063,
+  PseudoVSUXEI8_V_M4_M8_MASK = 12064,
+  PseudoVSUXEI8_V_M8_M8 = 12065,
+  PseudoVSUXEI8_V_M8_M8_MASK = 12066,
+  PseudoVSUXEI8_V_MF2_M1 = 12067,
+  PseudoVSUXEI8_V_MF2_M1_MASK = 12068,
+  PseudoVSUXEI8_V_MF2_M2 = 12069,
+  PseudoVSUXEI8_V_MF2_M2_MASK = 12070,
+  PseudoVSUXEI8_V_MF2_M4 = 12071,
+  PseudoVSUXEI8_V_MF2_M4_MASK = 12072,
+  PseudoVSUXEI8_V_MF2_MF2 = 12073,
+  PseudoVSUXEI8_V_MF2_MF2_MASK = 12074,
+  PseudoVSUXEI8_V_MF4_M1 = 12075,
+  PseudoVSUXEI8_V_MF4_M1_MASK = 12076,
+  PseudoVSUXEI8_V_MF4_M2 = 12077,
+  PseudoVSUXEI8_V_MF4_M2_MASK = 12078,
+  PseudoVSUXEI8_V_MF4_MF2 = 12079,
+  PseudoVSUXEI8_V_MF4_MF2_MASK = 12080,
+  PseudoVSUXEI8_V_MF4_MF4 = 12081,
+  PseudoVSUXEI8_V_MF4_MF4_MASK = 12082,
+  PseudoVSUXEI8_V_MF8_M1 = 12083,
+  PseudoVSUXEI8_V_MF8_M1_MASK = 12084,
+  PseudoVSUXEI8_V_MF8_MF2 = 12085,
+  PseudoVSUXEI8_V_MF8_MF2_MASK = 12086,
+  PseudoVSUXEI8_V_MF8_MF4 = 12087,
+  PseudoVSUXEI8_V_MF8_MF4_MASK = 12088,
+  PseudoVSUXEI8_V_MF8_MF8 = 12089,
+  PseudoVSUXEI8_V_MF8_MF8_MASK = 12090,
+  PseudoVSUXSEG2EI16_V_M1_M1 = 12091,
+  PseudoVSUXSEG2EI16_V_M1_M1_MASK = 12092,
+  PseudoVSUXSEG2EI16_V_M1_M2 = 12093,
+  PseudoVSUXSEG2EI16_V_M1_M2_MASK = 12094,
+  PseudoVSUXSEG2EI16_V_M1_M4 = 12095,
+  PseudoVSUXSEG2EI16_V_M1_M4_MASK = 12096,
+  PseudoVSUXSEG2EI16_V_M1_MF2 = 12097,
+  PseudoVSUXSEG2EI16_V_M1_MF2_MASK = 12098,
+  PseudoVSUXSEG2EI16_V_M2_M1 = 12099,
+  PseudoVSUXSEG2EI16_V_M2_M1_MASK = 12100,
+  PseudoVSUXSEG2EI16_V_M2_M2 = 12101,
+  PseudoVSUXSEG2EI16_V_M2_M2_MASK = 12102,
+  PseudoVSUXSEG2EI16_V_M2_M4 = 12103,
+  PseudoVSUXSEG2EI16_V_M2_M4_MASK = 12104,
+  PseudoVSUXSEG2EI16_V_M4_M2 = 12105,
+  PseudoVSUXSEG2EI16_V_M4_M2_MASK = 12106,
+  PseudoVSUXSEG2EI16_V_M4_M4 = 12107,
+  PseudoVSUXSEG2EI16_V_M4_M4_MASK = 12108,
+  PseudoVSUXSEG2EI16_V_M8_M4 = 12109,
+  PseudoVSUXSEG2EI16_V_M8_M4_MASK = 12110,
+  PseudoVSUXSEG2EI16_V_MF2_M1 = 12111,
+  PseudoVSUXSEG2EI16_V_MF2_M1_MASK = 12112,
+  PseudoVSUXSEG2EI16_V_MF2_M2 = 12113,
+  PseudoVSUXSEG2EI16_V_MF2_M2_MASK = 12114,
+  PseudoVSUXSEG2EI16_V_MF2_MF2 = 12115,
+  PseudoVSUXSEG2EI16_V_MF2_MF2_MASK = 12116,
+  PseudoVSUXSEG2EI16_V_MF2_MF4 = 12117,
+  PseudoVSUXSEG2EI16_V_MF2_MF4_MASK = 12118,
+  PseudoVSUXSEG2EI16_V_MF4_M1 = 12119,
+  PseudoVSUXSEG2EI16_V_MF4_M1_MASK = 12120,
+  PseudoVSUXSEG2EI16_V_MF4_MF2 = 12121,
+  PseudoVSUXSEG2EI16_V_MF4_MF2_MASK = 12122,
+  PseudoVSUXSEG2EI16_V_MF4_MF4 = 12123,
+  PseudoVSUXSEG2EI16_V_MF4_MF4_MASK = 12124,
+  PseudoVSUXSEG2EI16_V_MF4_MF8 = 12125,
+  PseudoVSUXSEG2EI16_V_MF4_MF8_MASK = 12126,
+  PseudoVSUXSEG2EI32_V_M1_M1 = 12127,
+  PseudoVSUXSEG2EI32_V_M1_M1_MASK = 12128,
+  PseudoVSUXSEG2EI32_V_M1_M2 = 12129,
+  PseudoVSUXSEG2EI32_V_M1_M2_MASK = 12130,
+  PseudoVSUXSEG2EI32_V_M1_MF2 = 12131,
+  PseudoVSUXSEG2EI32_V_M1_MF2_MASK = 12132,
+  PseudoVSUXSEG2EI32_V_M1_MF4 = 12133,
+  PseudoVSUXSEG2EI32_V_M1_MF4_MASK = 12134,
+  PseudoVSUXSEG2EI32_V_M2_M1 = 12135,
+  PseudoVSUXSEG2EI32_V_M2_M1_MASK = 12136,
+  PseudoVSUXSEG2EI32_V_M2_M2 = 12137,
+  PseudoVSUXSEG2EI32_V_M2_M2_MASK = 12138,
+  PseudoVSUXSEG2EI32_V_M2_M4 = 12139,
+  PseudoVSUXSEG2EI32_V_M2_M4_MASK = 12140,
+  PseudoVSUXSEG2EI32_V_M2_MF2 = 12141,
+  PseudoVSUXSEG2EI32_V_M2_MF2_MASK = 12142,
+  PseudoVSUXSEG2EI32_V_M4_M1 = 12143,
+  PseudoVSUXSEG2EI32_V_M4_M1_MASK = 12144,
+  PseudoVSUXSEG2EI32_V_M4_M2 = 12145,
+  PseudoVSUXSEG2EI32_V_M4_M2_MASK = 12146,
+  PseudoVSUXSEG2EI32_V_M4_M4 = 12147,
+  PseudoVSUXSEG2EI32_V_M4_M4_MASK = 12148,
+  PseudoVSUXSEG2EI32_V_M8_M2 = 12149,
+  PseudoVSUXSEG2EI32_V_M8_M2_MASK = 12150,
+  PseudoVSUXSEG2EI32_V_M8_M4 = 12151,
+  PseudoVSUXSEG2EI32_V_M8_M4_MASK = 12152,
+  PseudoVSUXSEG2EI32_V_MF2_M1 = 12153,
+  PseudoVSUXSEG2EI32_V_MF2_M1_MASK = 12154,
+  PseudoVSUXSEG2EI32_V_MF2_MF2 = 12155,
+  PseudoVSUXSEG2EI32_V_MF2_MF2_MASK = 12156,
+  PseudoVSUXSEG2EI32_V_MF2_MF4 = 12157,
+  PseudoVSUXSEG2EI32_V_MF2_MF4_MASK = 12158,
+  PseudoVSUXSEG2EI32_V_MF2_MF8 = 12159,
+  PseudoVSUXSEG2EI32_V_MF2_MF8_MASK = 12160,
+  PseudoVSUXSEG2EI64_V_M1_M1 = 12161,
+  PseudoVSUXSEG2EI64_V_M1_M1_MASK = 12162,
+  PseudoVSUXSEG2EI64_V_M1_MF2 = 12163,
+  PseudoVSUXSEG2EI64_V_M1_MF2_MASK = 12164,
+  PseudoVSUXSEG2EI64_V_M1_MF4 = 12165,
+  PseudoVSUXSEG2EI64_V_M1_MF4_MASK = 12166,
+  PseudoVSUXSEG2EI64_V_M1_MF8 = 12167,
+  PseudoVSUXSEG2EI64_V_M1_MF8_MASK = 12168,
+  PseudoVSUXSEG2EI64_V_M2_M1 = 12169,
+  PseudoVSUXSEG2EI64_V_M2_M1_MASK = 12170,
+  PseudoVSUXSEG2EI64_V_M2_M2 = 12171,
+  PseudoVSUXSEG2EI64_V_M2_M2_MASK = 12172,
+  PseudoVSUXSEG2EI64_V_M2_MF2 = 12173,
+  PseudoVSUXSEG2EI64_V_M2_MF2_MASK = 12174,
+  PseudoVSUXSEG2EI64_V_M2_MF4 = 12175,
+  PseudoVSUXSEG2EI64_V_M2_MF4_MASK = 12176,
+  PseudoVSUXSEG2EI64_V_M4_M1 = 12177,
+  PseudoVSUXSEG2EI64_V_M4_M1_MASK = 12178,
+  PseudoVSUXSEG2EI64_V_M4_M2 = 12179,
+  PseudoVSUXSEG2EI64_V_M4_M2_MASK = 12180,
+  PseudoVSUXSEG2EI64_V_M4_M4 = 12181,
+  PseudoVSUXSEG2EI64_V_M4_M4_MASK = 12182,
+  PseudoVSUXSEG2EI64_V_M4_MF2 = 12183,
+  PseudoVSUXSEG2EI64_V_M4_MF2_MASK = 12184,
+  PseudoVSUXSEG2EI64_V_M8_M1 = 12185,
+  PseudoVSUXSEG2EI64_V_M8_M1_MASK = 12186,
+  PseudoVSUXSEG2EI64_V_M8_M2 = 12187,
+  PseudoVSUXSEG2EI64_V_M8_M2_MASK = 12188,
+  PseudoVSUXSEG2EI64_V_M8_M4 = 12189,
+  PseudoVSUXSEG2EI64_V_M8_M4_MASK = 12190,
+  PseudoVSUXSEG2EI8_V_M1_M1 = 12191,
+  PseudoVSUXSEG2EI8_V_M1_M1_MASK = 12192,
+  PseudoVSUXSEG2EI8_V_M1_M2 = 12193,
+  PseudoVSUXSEG2EI8_V_M1_M2_MASK = 12194,
+  PseudoVSUXSEG2EI8_V_M1_M4 = 12195,
+  PseudoVSUXSEG2EI8_V_M1_M4_MASK = 12196,
+  PseudoVSUXSEG2EI8_V_M2_M2 = 12197,
+  PseudoVSUXSEG2EI8_V_M2_M2_MASK = 12198,
+  PseudoVSUXSEG2EI8_V_M2_M4 = 12199,
+  PseudoVSUXSEG2EI8_V_M2_M4_MASK = 12200,
+  PseudoVSUXSEG2EI8_V_M4_M4 = 12201,
+  PseudoVSUXSEG2EI8_V_M4_M4_MASK = 12202,
+  PseudoVSUXSEG2EI8_V_MF2_M1 = 12203,
+  PseudoVSUXSEG2EI8_V_MF2_M1_MASK = 12204,
+  PseudoVSUXSEG2EI8_V_MF2_M2 = 12205,
+  PseudoVSUXSEG2EI8_V_MF2_M2_MASK = 12206,
+  PseudoVSUXSEG2EI8_V_MF2_M4 = 12207,
+  PseudoVSUXSEG2EI8_V_MF2_M4_MASK = 12208,
+  PseudoVSUXSEG2EI8_V_MF2_MF2 = 12209,
+  PseudoVSUXSEG2EI8_V_MF2_MF2_MASK = 12210,
+  PseudoVSUXSEG2EI8_V_MF4_M1 = 12211,
+  PseudoVSUXSEG2EI8_V_MF4_M1_MASK = 12212,
+  PseudoVSUXSEG2EI8_V_MF4_M2 = 12213,
+  PseudoVSUXSEG2EI8_V_MF4_M2_MASK = 12214,
+  PseudoVSUXSEG2EI8_V_MF4_MF2 = 12215,
+  PseudoVSUXSEG2EI8_V_MF4_MF2_MASK = 12216,
+  PseudoVSUXSEG2EI8_V_MF4_MF4 = 12217,
+  PseudoVSUXSEG2EI8_V_MF4_MF4_MASK = 12218,
+  PseudoVSUXSEG2EI8_V_MF8_M1 = 12219,
+  PseudoVSUXSEG2EI8_V_MF8_M1_MASK = 12220,
+  PseudoVSUXSEG2EI8_V_MF8_MF2 = 12221,
+  PseudoVSUXSEG2EI8_V_MF8_MF2_MASK = 12222,
+  PseudoVSUXSEG2EI8_V_MF8_MF4 = 12223,
+  PseudoVSUXSEG2EI8_V_MF8_MF4_MASK = 12224,
+  PseudoVSUXSEG2EI8_V_MF8_MF8 = 12225,
+  PseudoVSUXSEG2EI8_V_MF8_MF8_MASK = 12226,
+  PseudoVSUXSEG3EI16_V_M1_M1 = 12227,
+  PseudoVSUXSEG3EI16_V_M1_M1_MASK = 12228,
+  PseudoVSUXSEG3EI16_V_M1_M2 = 12229,
+  PseudoVSUXSEG3EI16_V_M1_M2_MASK = 12230,
+  PseudoVSUXSEG3EI16_V_M1_MF2 = 12231,
+  PseudoVSUXSEG3EI16_V_M1_MF2_MASK = 12232,
+  PseudoVSUXSEG3EI16_V_M2_M1 = 12233,
+  PseudoVSUXSEG3EI16_V_M2_M1_MASK = 12234,
+  PseudoVSUXSEG3EI16_V_M2_M2 = 12235,
+  PseudoVSUXSEG3EI16_V_M2_M2_MASK = 12236,
+  PseudoVSUXSEG3EI16_V_M4_M2 = 12237,
+  PseudoVSUXSEG3EI16_V_M4_M2_MASK = 12238,
+  PseudoVSUXSEG3EI16_V_MF2_M1 = 12239,
+  PseudoVSUXSEG3EI16_V_MF2_M1_MASK = 12240,
+  PseudoVSUXSEG3EI16_V_MF2_M2 = 12241,
+  PseudoVSUXSEG3EI16_V_MF2_M2_MASK = 12242,
+  PseudoVSUXSEG3EI16_V_MF2_MF2 = 12243,
+  PseudoVSUXSEG3EI16_V_MF2_MF2_MASK = 12244,
+  PseudoVSUXSEG3EI16_V_MF2_MF4 = 12245,
+  PseudoVSUXSEG3EI16_V_MF2_MF4_MASK = 12246,
+  PseudoVSUXSEG3EI16_V_MF4_M1 = 12247,
+  PseudoVSUXSEG3EI16_V_MF4_M1_MASK = 12248,
+  PseudoVSUXSEG3EI16_V_MF4_MF2 = 12249,
+  PseudoVSUXSEG3EI16_V_MF4_MF2_MASK = 12250,
+  PseudoVSUXSEG3EI16_V_MF4_MF4 = 12251,
+  PseudoVSUXSEG3EI16_V_MF4_MF4_MASK = 12252,
+  PseudoVSUXSEG3EI16_V_MF4_MF8 = 12253,
+  PseudoVSUXSEG3EI16_V_MF4_MF8_MASK = 12254,
+  PseudoVSUXSEG3EI32_V_M1_M1 = 12255,
+  PseudoVSUXSEG3EI32_V_M1_M1_MASK = 12256,
+  PseudoVSUXSEG3EI32_V_M1_M2 = 12257,
+  PseudoVSUXSEG3EI32_V_M1_M2_MASK = 12258,
+  PseudoVSUXSEG3EI32_V_M1_MF2 = 12259,
+  PseudoVSUXSEG3EI32_V_M1_MF2_MASK = 12260,
+  PseudoVSUXSEG3EI32_V_M1_MF4 = 12261,
+  PseudoVSUXSEG3EI32_V_M1_MF4_MASK = 12262,
+  PseudoVSUXSEG3EI32_V_M2_M1 = 12263,
+  PseudoVSUXSEG3EI32_V_M2_M1_MASK = 12264,
+  PseudoVSUXSEG3EI32_V_M2_M2 = 12265,
+  PseudoVSUXSEG3EI32_V_M2_M2_MASK = 12266,
+  PseudoVSUXSEG3EI32_V_M2_MF2 = 12267,
+  PseudoVSUXSEG3EI32_V_M2_MF2_MASK = 12268,
+  PseudoVSUXSEG3EI32_V_M4_M1 = 12269,
+  PseudoVSUXSEG3EI32_V_M4_M1_MASK = 12270,
+  PseudoVSUXSEG3EI32_V_M4_M2 = 12271,
+  PseudoVSUXSEG3EI32_V_M4_M2_MASK = 12272,
+  PseudoVSUXSEG3EI32_V_M8_M2 = 12273,
+  PseudoVSUXSEG3EI32_V_M8_M2_MASK = 12274,
+  PseudoVSUXSEG3EI32_V_MF2_M1 = 12275,
+  PseudoVSUXSEG3EI32_V_MF2_M1_MASK = 12276,
+  PseudoVSUXSEG3EI32_V_MF2_MF2 = 12277,
+  PseudoVSUXSEG3EI32_V_MF2_MF2_MASK = 12278,
+  PseudoVSUXSEG3EI32_V_MF2_MF4 = 12279,
+  PseudoVSUXSEG3EI32_V_MF2_MF4_MASK = 12280,
+  PseudoVSUXSEG3EI32_V_MF2_MF8 = 12281,
+  PseudoVSUXSEG3EI32_V_MF2_MF8_MASK = 12282,
+  PseudoVSUXSEG3EI64_V_M1_M1 = 12283,
+  PseudoVSUXSEG3EI64_V_M1_M1_MASK = 12284,
+  PseudoVSUXSEG3EI64_V_M1_MF2 = 12285,
+  PseudoVSUXSEG3EI64_V_M1_MF2_MASK = 12286,
+  PseudoVSUXSEG3EI64_V_M1_MF4 = 12287,
+  PseudoVSUXSEG3EI64_V_M1_MF4_MASK = 12288,
+  PseudoVSUXSEG3EI64_V_M1_MF8 = 12289,
+  PseudoVSUXSEG3EI64_V_M1_MF8_MASK = 12290,
+  PseudoVSUXSEG3EI64_V_M2_M1 = 12291,
+  PseudoVSUXSEG3EI64_V_M2_M1_MASK = 12292,
+  PseudoVSUXSEG3EI64_V_M2_M2 = 12293,
+  PseudoVSUXSEG3EI64_V_M2_M2_MASK = 12294,
+  PseudoVSUXSEG3EI64_V_M2_MF2 = 12295,
+  PseudoVSUXSEG3EI64_V_M2_MF2_MASK = 12296,
+  PseudoVSUXSEG3EI64_V_M2_MF4 = 12297,
+  PseudoVSUXSEG3EI64_V_M2_MF4_MASK = 12298,
+  PseudoVSUXSEG3EI64_V_M4_M1 = 12299,
+  PseudoVSUXSEG3EI64_V_M4_M1_MASK = 12300,
+  PseudoVSUXSEG3EI64_V_M4_M2 = 12301,
+  PseudoVSUXSEG3EI64_V_M4_M2_MASK = 12302,
+  PseudoVSUXSEG3EI64_V_M4_MF2 = 12303,
+  PseudoVSUXSEG3EI64_V_M4_MF2_MASK = 12304,
+  PseudoVSUXSEG3EI64_V_M8_M1 = 12305,
+  PseudoVSUXSEG3EI64_V_M8_M1_MASK = 12306,
+  PseudoVSUXSEG3EI64_V_M8_M2 = 12307,
+  PseudoVSUXSEG3EI64_V_M8_M2_MASK = 12308,
+  PseudoVSUXSEG3EI8_V_M1_M1 = 12309,
+  PseudoVSUXSEG3EI8_V_M1_M1_MASK = 12310,
+  PseudoVSUXSEG3EI8_V_M1_M2 = 12311,
+  PseudoVSUXSEG3EI8_V_M1_M2_MASK = 12312,
+  PseudoVSUXSEG3EI8_V_M2_M2 = 12313,
+  PseudoVSUXSEG3EI8_V_M2_M2_MASK = 12314,
+  PseudoVSUXSEG3EI8_V_MF2_M1 = 12315,
+  PseudoVSUXSEG3EI8_V_MF2_M1_MASK = 12316,
+  PseudoVSUXSEG3EI8_V_MF2_M2 = 12317,
+  PseudoVSUXSEG3EI8_V_MF2_M2_MASK = 12318,
+  PseudoVSUXSEG3EI8_V_MF2_MF2 = 12319,
+  PseudoVSUXSEG3EI8_V_MF2_MF2_MASK = 12320,
+  PseudoVSUXSEG3EI8_V_MF4_M1 = 12321,
+  PseudoVSUXSEG3EI8_V_MF4_M1_MASK = 12322,
+  PseudoVSUXSEG3EI8_V_MF4_M2 = 12323,
+  PseudoVSUXSEG3EI8_V_MF4_M2_MASK = 12324,
+  PseudoVSUXSEG3EI8_V_MF4_MF2 = 12325,
+  PseudoVSUXSEG3EI8_V_MF4_MF2_MASK = 12326,
+  PseudoVSUXSEG3EI8_V_MF4_MF4 = 12327,
+  PseudoVSUXSEG3EI8_V_MF4_MF4_MASK = 12328,
+  PseudoVSUXSEG3EI8_V_MF8_M1 = 12329,
+  PseudoVSUXSEG3EI8_V_MF8_M1_MASK = 12330,
+  PseudoVSUXSEG3EI8_V_MF8_MF2 = 12331,
+  PseudoVSUXSEG3EI8_V_MF8_MF2_MASK = 12332,
+  PseudoVSUXSEG3EI8_V_MF8_MF4 = 12333,
+  PseudoVSUXSEG3EI8_V_MF8_MF4_MASK = 12334,
+  PseudoVSUXSEG3EI8_V_MF8_MF8 = 12335,
+  PseudoVSUXSEG3EI8_V_MF8_MF8_MASK = 12336,
+  PseudoVSUXSEG4EI16_V_M1_M1 = 12337,
+  PseudoVSUXSEG4EI16_V_M1_M1_MASK = 12338,
+  PseudoVSUXSEG4EI16_V_M1_M2 = 12339,
+  PseudoVSUXSEG4EI16_V_M1_M2_MASK = 12340,
+  PseudoVSUXSEG4EI16_V_M1_MF2 = 12341,
+  PseudoVSUXSEG4EI16_V_M1_MF2_MASK = 12342,
+  PseudoVSUXSEG4EI16_V_M2_M1 = 12343,
+  PseudoVSUXSEG4EI16_V_M2_M1_MASK = 12344,
+  PseudoVSUXSEG4EI16_V_M2_M2 = 12345,
+  PseudoVSUXSEG4EI16_V_M2_M2_MASK = 12346,
+  PseudoVSUXSEG4EI16_V_M4_M2 = 12347,
+  PseudoVSUXSEG4EI16_V_M4_M2_MASK = 12348,
+  PseudoVSUXSEG4EI16_V_MF2_M1 = 12349,
+  PseudoVSUXSEG4EI16_V_MF2_M1_MASK = 12350,
+  PseudoVSUXSEG4EI16_V_MF2_M2 = 12351,
+  PseudoVSUXSEG4EI16_V_MF2_M2_MASK = 12352,
+  PseudoVSUXSEG4EI16_V_MF2_MF2 = 12353,
+  PseudoVSUXSEG4EI16_V_MF2_MF2_MASK = 12354,
+  PseudoVSUXSEG4EI16_V_MF2_MF4 = 12355,
+  PseudoVSUXSEG4EI16_V_MF2_MF4_MASK = 12356,
+  PseudoVSUXSEG4EI16_V_MF4_M1 = 12357,
+  PseudoVSUXSEG4EI16_V_MF4_M1_MASK = 12358,
+  PseudoVSUXSEG4EI16_V_MF4_MF2 = 12359,
+  PseudoVSUXSEG4EI16_V_MF4_MF2_MASK = 12360,
+  PseudoVSUXSEG4EI16_V_MF4_MF4 = 12361,
+  PseudoVSUXSEG4EI16_V_MF4_MF4_MASK = 12362,
+  PseudoVSUXSEG4EI16_V_MF4_MF8 = 12363,
+  PseudoVSUXSEG4EI16_V_MF4_MF8_MASK = 12364,
+  PseudoVSUXSEG4EI32_V_M1_M1 = 12365,
+  PseudoVSUXSEG4EI32_V_M1_M1_MASK = 12366,
+  PseudoVSUXSEG4EI32_V_M1_M2 = 12367,
+  PseudoVSUXSEG4EI32_V_M1_M2_MASK = 12368,
+  PseudoVSUXSEG4EI32_V_M1_MF2 = 12369,
+  PseudoVSUXSEG4EI32_V_M1_MF2_MASK = 12370,
+  PseudoVSUXSEG4EI32_V_M1_MF4 = 12371,
+  PseudoVSUXSEG4EI32_V_M1_MF4_MASK = 12372,
+  PseudoVSUXSEG4EI32_V_M2_M1 = 12373,
+  PseudoVSUXSEG4EI32_V_M2_M1_MASK = 12374,
+  PseudoVSUXSEG4EI32_V_M2_M2 = 12375,
+  PseudoVSUXSEG4EI32_V_M2_M2_MASK = 12376,
+  PseudoVSUXSEG4EI32_V_M2_MF2 = 12377,
+  PseudoVSUXSEG4EI32_V_M2_MF2_MASK = 12378,
+  PseudoVSUXSEG4EI32_V_M4_M1 = 12379,
+  PseudoVSUXSEG4EI32_V_M4_M1_MASK = 12380,
+  PseudoVSUXSEG4EI32_V_M4_M2 = 12381,
+  PseudoVSUXSEG4EI32_V_M4_M2_MASK = 12382,
+  PseudoVSUXSEG4EI32_V_M8_M2 = 12383,
+  PseudoVSUXSEG4EI32_V_M8_M2_MASK = 12384,
+  PseudoVSUXSEG4EI32_V_MF2_M1 = 12385,
+  PseudoVSUXSEG4EI32_V_MF2_M1_MASK = 12386,
+  PseudoVSUXSEG4EI32_V_MF2_MF2 = 12387,
+  PseudoVSUXSEG4EI32_V_MF2_MF2_MASK = 12388,
+  PseudoVSUXSEG4EI32_V_MF2_MF4 = 12389,
+  PseudoVSUXSEG4EI32_V_MF2_MF4_MASK = 12390,
+  PseudoVSUXSEG4EI32_V_MF2_MF8 = 12391,
+  PseudoVSUXSEG4EI32_V_MF2_MF8_MASK = 12392,
+  PseudoVSUXSEG4EI64_V_M1_M1 = 12393,
+  PseudoVSUXSEG4EI64_V_M1_M1_MASK = 12394,
+  PseudoVSUXSEG4EI64_V_M1_MF2 = 12395,
+  PseudoVSUXSEG4EI64_V_M1_MF2_MASK = 12396,
+  PseudoVSUXSEG4EI64_V_M1_MF4 = 12397,
+  PseudoVSUXSEG4EI64_V_M1_MF4_MASK = 12398,
+  PseudoVSUXSEG4EI64_V_M1_MF8 = 12399,
+  PseudoVSUXSEG4EI64_V_M1_MF8_MASK = 12400,
+  PseudoVSUXSEG4EI64_V_M2_M1 = 12401,
+  PseudoVSUXSEG4EI64_V_M2_M1_MASK = 12402,
+  PseudoVSUXSEG4EI64_V_M2_M2 = 12403,
+  PseudoVSUXSEG4EI64_V_M2_M2_MASK = 12404,
+  PseudoVSUXSEG4EI64_V_M2_MF2 = 12405,
+  PseudoVSUXSEG4EI64_V_M2_MF2_MASK = 12406,
+  PseudoVSUXSEG4EI64_V_M2_MF4 = 12407,
+  PseudoVSUXSEG4EI64_V_M2_MF4_MASK = 12408,
+  PseudoVSUXSEG4EI64_V_M4_M1 = 12409,
+  PseudoVSUXSEG4EI64_V_M4_M1_MASK = 12410,
+  PseudoVSUXSEG4EI64_V_M4_M2 = 12411,
+  PseudoVSUXSEG4EI64_V_M4_M2_MASK = 12412,
+  PseudoVSUXSEG4EI64_V_M4_MF2 = 12413,
+  PseudoVSUXSEG4EI64_V_M4_MF2_MASK = 12414,
+  PseudoVSUXSEG4EI64_V_M8_M1 = 12415,
+  PseudoVSUXSEG4EI64_V_M8_M1_MASK = 12416,
+  PseudoVSUXSEG4EI64_V_M8_M2 = 12417,
+  PseudoVSUXSEG4EI64_V_M8_M2_MASK = 12418,
+  PseudoVSUXSEG4EI8_V_M1_M1 = 12419,
+  PseudoVSUXSEG4EI8_V_M1_M1_MASK = 12420,
+  PseudoVSUXSEG4EI8_V_M1_M2 = 12421,
+  PseudoVSUXSEG4EI8_V_M1_M2_MASK = 12422,
+  PseudoVSUXSEG4EI8_V_M2_M2 = 12423,
+  PseudoVSUXSEG4EI8_V_M2_M2_MASK = 12424,
+  PseudoVSUXSEG4EI8_V_MF2_M1 = 12425,
+  PseudoVSUXSEG4EI8_V_MF2_M1_MASK = 12426,
+  PseudoVSUXSEG4EI8_V_MF2_M2 = 12427,
+  PseudoVSUXSEG4EI8_V_MF2_M2_MASK = 12428,
+  PseudoVSUXSEG4EI8_V_MF2_MF2 = 12429,
+  PseudoVSUXSEG4EI8_V_MF2_MF2_MASK = 12430,
+  PseudoVSUXSEG4EI8_V_MF4_M1 = 12431,
+  PseudoVSUXSEG4EI8_V_MF4_M1_MASK = 12432,
+  PseudoVSUXSEG4EI8_V_MF4_M2 = 12433,
+  PseudoVSUXSEG4EI8_V_MF4_M2_MASK = 12434,
+  PseudoVSUXSEG4EI8_V_MF4_MF2 = 12435,
+  PseudoVSUXSEG4EI8_V_MF4_MF2_MASK = 12436,
+  PseudoVSUXSEG4EI8_V_MF4_MF4 = 12437,
+  PseudoVSUXSEG4EI8_V_MF4_MF4_MASK = 12438,
+  PseudoVSUXSEG4EI8_V_MF8_M1 = 12439,
+  PseudoVSUXSEG4EI8_V_MF8_M1_MASK = 12440,
+  PseudoVSUXSEG4EI8_V_MF8_MF2 = 12441,
+  PseudoVSUXSEG4EI8_V_MF8_MF2_MASK = 12442,
+  PseudoVSUXSEG4EI8_V_MF8_MF4 = 12443,
+  PseudoVSUXSEG4EI8_V_MF8_MF4_MASK = 12444,
+  PseudoVSUXSEG4EI8_V_MF8_MF8 = 12445,
+  PseudoVSUXSEG4EI8_V_MF8_MF8_MASK = 12446,
+  PseudoVSUXSEG5EI16_V_M1_M1 = 12447,
+  PseudoVSUXSEG5EI16_V_M1_M1_MASK = 12448,
+  PseudoVSUXSEG5EI16_V_M1_MF2 = 12449,
+  PseudoVSUXSEG5EI16_V_M1_MF2_MASK = 12450,
+  PseudoVSUXSEG5EI16_V_M2_M1 = 12451,
+  PseudoVSUXSEG5EI16_V_M2_M1_MASK = 12452,
+  PseudoVSUXSEG5EI16_V_MF2_M1 = 12453,
+  PseudoVSUXSEG5EI16_V_MF2_M1_MASK = 12454,
+  PseudoVSUXSEG5EI16_V_MF2_MF2 = 12455,
+  PseudoVSUXSEG5EI16_V_MF2_MF2_MASK = 12456,
+  PseudoVSUXSEG5EI16_V_MF2_MF4 = 12457,
+  PseudoVSUXSEG5EI16_V_MF2_MF4_MASK = 12458,
+  PseudoVSUXSEG5EI16_V_MF4_M1 = 12459,
+  PseudoVSUXSEG5EI16_V_MF4_M1_MASK = 12460,
+  PseudoVSUXSEG5EI16_V_MF4_MF2 = 12461,
+  PseudoVSUXSEG5EI16_V_MF4_MF2_MASK = 12462,
+  PseudoVSUXSEG5EI16_V_MF4_MF4 = 12463,
+  PseudoVSUXSEG5EI16_V_MF4_MF4_MASK = 12464,
+  PseudoVSUXSEG5EI16_V_MF4_MF8 = 12465,
+  PseudoVSUXSEG5EI16_V_MF4_MF8_MASK = 12466,
+  PseudoVSUXSEG5EI32_V_M1_M1 = 12467,
+  PseudoVSUXSEG5EI32_V_M1_M1_MASK = 12468,
+  PseudoVSUXSEG5EI32_V_M1_MF2 = 12469,
+  PseudoVSUXSEG5EI32_V_M1_MF2_MASK = 12470,
+  PseudoVSUXSEG5EI32_V_M1_MF4 = 12471,
+  PseudoVSUXSEG5EI32_V_M1_MF4_MASK = 12472,
+  PseudoVSUXSEG5EI32_V_M2_M1 = 12473,
+  PseudoVSUXSEG5EI32_V_M2_M1_MASK = 12474,
+  PseudoVSUXSEG5EI32_V_M2_MF2 = 12475,
+  PseudoVSUXSEG5EI32_V_M2_MF2_MASK = 12476,
+  PseudoVSUXSEG5EI32_V_M4_M1 = 12477,
+  PseudoVSUXSEG5EI32_V_M4_M1_MASK = 12478,
+  PseudoVSUXSEG5EI32_V_MF2_M1 = 12479,
+  PseudoVSUXSEG5EI32_V_MF2_M1_MASK = 12480,
+  PseudoVSUXSEG5EI32_V_MF2_MF2 = 12481,
+  PseudoVSUXSEG5EI32_V_MF2_MF2_MASK = 12482,
+  PseudoVSUXSEG5EI32_V_MF2_MF4 = 12483,
+  PseudoVSUXSEG5EI32_V_MF2_MF4_MASK = 12484,
+  PseudoVSUXSEG5EI32_V_MF2_MF8 = 12485,
+  PseudoVSUXSEG5EI32_V_MF2_MF8_MASK = 12486,
+  PseudoVSUXSEG5EI64_V_M1_M1 = 12487,
+  PseudoVSUXSEG5EI64_V_M1_M1_MASK = 12488,
+  PseudoVSUXSEG5EI64_V_M1_MF2 = 12489,
+  PseudoVSUXSEG5EI64_V_M1_MF2_MASK = 12490,
+  PseudoVSUXSEG5EI64_V_M1_MF4 = 12491,
+  PseudoVSUXSEG5EI64_V_M1_MF4_MASK = 12492,
+  PseudoVSUXSEG5EI64_V_M1_MF8 = 12493,
+  PseudoVSUXSEG5EI64_V_M1_MF8_MASK = 12494,
+  PseudoVSUXSEG5EI64_V_M2_M1 = 12495,
+  PseudoVSUXSEG5EI64_V_M2_M1_MASK = 12496,
+  PseudoVSUXSEG5EI64_V_M2_MF2 = 12497,
+  PseudoVSUXSEG5EI64_V_M2_MF2_MASK = 12498,
+  PseudoVSUXSEG5EI64_V_M2_MF4 = 12499,
+  PseudoVSUXSEG5EI64_V_M2_MF4_MASK = 12500,
+  PseudoVSUXSEG5EI64_V_M4_M1 = 12501,
+  PseudoVSUXSEG5EI64_V_M4_M1_MASK = 12502,
+  PseudoVSUXSEG5EI64_V_M4_MF2 = 12503,
+  PseudoVSUXSEG5EI64_V_M4_MF2_MASK = 12504,
+  PseudoVSUXSEG5EI64_V_M8_M1 = 12505,
+  PseudoVSUXSEG5EI64_V_M8_M1_MASK = 12506,
+  PseudoVSUXSEG5EI8_V_M1_M1 = 12507,
+  PseudoVSUXSEG5EI8_V_M1_M1_MASK = 12508,
+  PseudoVSUXSEG5EI8_V_MF2_M1 = 12509,
+  PseudoVSUXSEG5EI8_V_MF2_M1_MASK = 12510,
+  PseudoVSUXSEG5EI8_V_MF2_MF2 = 12511,
+  PseudoVSUXSEG5EI8_V_MF2_MF2_MASK = 12512,
+  PseudoVSUXSEG5EI8_V_MF4_M1 = 12513,
+  PseudoVSUXSEG5EI8_V_MF4_M1_MASK = 12514,
+  PseudoVSUXSEG5EI8_V_MF4_MF2 = 12515,
+  PseudoVSUXSEG5EI8_V_MF4_MF2_MASK = 12516,
+  PseudoVSUXSEG5EI8_V_MF4_MF4 = 12517,
+  PseudoVSUXSEG5EI8_V_MF4_MF4_MASK = 12518,
+  PseudoVSUXSEG5EI8_V_MF8_M1 = 12519,
+  PseudoVSUXSEG5EI8_V_MF8_M1_MASK = 12520,
+  PseudoVSUXSEG5EI8_V_MF8_MF2 = 12521,
+  PseudoVSUXSEG5EI8_V_MF8_MF2_MASK = 12522,
+  PseudoVSUXSEG5EI8_V_MF8_MF4 = 12523,
+  PseudoVSUXSEG5EI8_V_MF8_MF4_MASK = 12524,
+  PseudoVSUXSEG5EI8_V_MF8_MF8 = 12525,
+  PseudoVSUXSEG5EI8_V_MF8_MF8_MASK = 12526,
+  PseudoVSUXSEG6EI16_V_M1_M1 = 12527,
+  PseudoVSUXSEG6EI16_V_M1_M1_MASK = 12528,
+  PseudoVSUXSEG6EI16_V_M1_MF2 = 12529,
+  PseudoVSUXSEG6EI16_V_M1_MF2_MASK = 12530,
+  PseudoVSUXSEG6EI16_V_M2_M1 = 12531,
+  PseudoVSUXSEG6EI16_V_M2_M1_MASK = 12532,
+  PseudoVSUXSEG6EI16_V_MF2_M1 = 12533,
+  PseudoVSUXSEG6EI16_V_MF2_M1_MASK = 12534,
+  PseudoVSUXSEG6EI16_V_MF2_MF2 = 12535,
+  PseudoVSUXSEG6EI16_V_MF2_MF2_MASK = 12536,
+  PseudoVSUXSEG6EI16_V_MF2_MF4 = 12537,
+  PseudoVSUXSEG6EI16_V_MF2_MF4_MASK = 12538,
+  PseudoVSUXSEG6EI16_V_MF4_M1 = 12539,
+  PseudoVSUXSEG6EI16_V_MF4_M1_MASK = 12540,
+  PseudoVSUXSEG6EI16_V_MF4_MF2 = 12541,
+  PseudoVSUXSEG6EI16_V_MF4_MF2_MASK = 12542,
+  PseudoVSUXSEG6EI16_V_MF4_MF4 = 12543,
+  PseudoVSUXSEG6EI16_V_MF4_MF4_MASK = 12544,
+  PseudoVSUXSEG6EI16_V_MF4_MF8 = 12545,
+  PseudoVSUXSEG6EI16_V_MF4_MF8_MASK = 12546,
+  PseudoVSUXSEG6EI32_V_M1_M1 = 12547,
+  PseudoVSUXSEG6EI32_V_M1_M1_MASK = 12548,
+  PseudoVSUXSEG6EI32_V_M1_MF2 = 12549,
+  PseudoVSUXSEG6EI32_V_M1_MF2_MASK = 12550,
+  PseudoVSUXSEG6EI32_V_M1_MF4 = 12551,
+  PseudoVSUXSEG6EI32_V_M1_MF4_MASK = 12552,
+  PseudoVSUXSEG6EI32_V_M2_M1 = 12553,
+  PseudoVSUXSEG6EI32_V_M2_M1_MASK = 12554,
+  PseudoVSUXSEG6EI32_V_M2_MF2 = 12555,
+  PseudoVSUXSEG6EI32_V_M2_MF2_MASK = 12556,
+  PseudoVSUXSEG6EI32_V_M4_M1 = 12557,
+  PseudoVSUXSEG6EI32_V_M4_M1_MASK = 12558,
+  PseudoVSUXSEG6EI32_V_MF2_M1 = 12559,
+  PseudoVSUXSEG6EI32_V_MF2_M1_MASK = 12560,
+  PseudoVSUXSEG6EI32_V_MF2_MF2 = 12561,
+  PseudoVSUXSEG6EI32_V_MF2_MF2_MASK = 12562,
+  PseudoVSUXSEG6EI32_V_MF2_MF4 = 12563,
+  PseudoVSUXSEG6EI32_V_MF2_MF4_MASK = 12564,
+  PseudoVSUXSEG6EI32_V_MF2_MF8 = 12565,
+  PseudoVSUXSEG6EI32_V_MF2_MF8_MASK = 12566,
+  PseudoVSUXSEG6EI64_V_M1_M1 = 12567,
+  PseudoVSUXSEG6EI64_V_M1_M1_MASK = 12568,
+  PseudoVSUXSEG6EI64_V_M1_MF2 = 12569,
+  PseudoVSUXSEG6EI64_V_M1_MF2_MASK = 12570,
+  PseudoVSUXSEG6EI64_V_M1_MF4 = 12571,
+  PseudoVSUXSEG6EI64_V_M1_MF4_MASK = 12572,
+  PseudoVSUXSEG6EI64_V_M1_MF8 = 12573,
+  PseudoVSUXSEG6EI64_V_M1_MF8_MASK = 12574,
+  PseudoVSUXSEG6EI64_V_M2_M1 = 12575,
+  PseudoVSUXSEG6EI64_V_M2_M1_MASK = 12576,
+  PseudoVSUXSEG6EI64_V_M2_MF2 = 12577,
+  PseudoVSUXSEG6EI64_V_M2_MF2_MASK = 12578,
+  PseudoVSUXSEG6EI64_V_M2_MF4 = 12579,
+  PseudoVSUXSEG6EI64_V_M2_MF4_MASK = 12580,
+  PseudoVSUXSEG6EI64_V_M4_M1 = 12581,
+  PseudoVSUXSEG6EI64_V_M4_M1_MASK = 12582,
+  PseudoVSUXSEG6EI64_V_M4_MF2 = 12583,
+  PseudoVSUXSEG6EI64_V_M4_MF2_MASK = 12584,
+  PseudoVSUXSEG6EI64_V_M8_M1 = 12585,
+  PseudoVSUXSEG6EI64_V_M8_M1_MASK = 12586,
+  PseudoVSUXSEG6EI8_V_M1_M1 = 12587,
+  PseudoVSUXSEG6EI8_V_M1_M1_MASK = 12588,
+  PseudoVSUXSEG6EI8_V_MF2_M1 = 12589,
+  PseudoVSUXSEG6EI8_V_MF2_M1_MASK = 12590,
+  PseudoVSUXSEG6EI8_V_MF2_MF2 = 12591,
+  PseudoVSUXSEG6EI8_V_MF2_MF2_MASK = 12592,
+  PseudoVSUXSEG6EI8_V_MF4_M1 = 12593,
+  PseudoVSUXSEG6EI8_V_MF4_M1_MASK = 12594,
+  PseudoVSUXSEG6EI8_V_MF4_MF2 = 12595,
+  PseudoVSUXSEG6EI8_V_MF4_MF2_MASK = 12596,
+  PseudoVSUXSEG6EI8_V_MF4_MF4 = 12597,
+  PseudoVSUXSEG6EI8_V_MF4_MF4_MASK = 12598,
+  PseudoVSUXSEG6EI8_V_MF8_M1 = 12599,
+  PseudoVSUXSEG6EI8_V_MF8_M1_MASK = 12600,
+  PseudoVSUXSEG6EI8_V_MF8_MF2 = 12601,
+  PseudoVSUXSEG6EI8_V_MF8_MF2_MASK = 12602,
+  PseudoVSUXSEG6EI8_V_MF8_MF4 = 12603,
+  PseudoVSUXSEG6EI8_V_MF8_MF4_MASK = 12604,
+  PseudoVSUXSEG6EI8_V_MF8_MF8 = 12605,
+  PseudoVSUXSEG6EI8_V_MF8_MF8_MASK = 12606,
+  PseudoVSUXSEG7EI16_V_M1_M1 = 12607,
+  PseudoVSUXSEG7EI16_V_M1_M1_MASK = 12608,
+  PseudoVSUXSEG7EI16_V_M1_MF2 = 12609,
+  PseudoVSUXSEG7EI16_V_M1_MF2_MASK = 12610,
+  PseudoVSUXSEG7EI16_V_M2_M1 = 12611,
+  PseudoVSUXSEG7EI16_V_M2_M1_MASK = 12612,
+  PseudoVSUXSEG7EI16_V_MF2_M1 = 12613,
+  PseudoVSUXSEG7EI16_V_MF2_M1_MASK = 12614,
+  PseudoVSUXSEG7EI16_V_MF2_MF2 = 12615,
+  PseudoVSUXSEG7EI16_V_MF2_MF2_MASK = 12616,
+  PseudoVSUXSEG7EI16_V_MF2_MF4 = 12617,
+  PseudoVSUXSEG7EI16_V_MF2_MF4_MASK = 12618,
+  PseudoVSUXSEG7EI16_V_MF4_M1 = 12619,
+  PseudoVSUXSEG7EI16_V_MF4_M1_MASK = 12620,
+  PseudoVSUXSEG7EI16_V_MF4_MF2 = 12621,
+  PseudoVSUXSEG7EI16_V_MF4_MF2_MASK = 12622,
+  PseudoVSUXSEG7EI16_V_MF4_MF4 = 12623,
+  PseudoVSUXSEG7EI16_V_MF4_MF4_MASK = 12624,
+  PseudoVSUXSEG7EI16_V_MF4_MF8 = 12625,
+  PseudoVSUXSEG7EI16_V_MF4_MF8_MASK = 12626,
+  PseudoVSUXSEG7EI32_V_M1_M1 = 12627,
+  PseudoVSUXSEG7EI32_V_M1_M1_MASK = 12628,
+  PseudoVSUXSEG7EI32_V_M1_MF2 = 12629,
+  PseudoVSUXSEG7EI32_V_M1_MF2_MASK = 12630,
+  PseudoVSUXSEG7EI32_V_M1_MF4 = 12631,
+  PseudoVSUXSEG7EI32_V_M1_MF4_MASK = 12632,
+  PseudoVSUXSEG7EI32_V_M2_M1 = 12633,
+  PseudoVSUXSEG7EI32_V_M2_M1_MASK = 12634,
+  PseudoVSUXSEG7EI32_V_M2_MF2 = 12635,
+  PseudoVSUXSEG7EI32_V_M2_MF2_MASK = 12636,
+  PseudoVSUXSEG7EI32_V_M4_M1 = 12637,
+  PseudoVSUXSEG7EI32_V_M4_M1_MASK = 12638,
+  PseudoVSUXSEG7EI32_V_MF2_M1 = 12639,
+  PseudoVSUXSEG7EI32_V_MF2_M1_MASK = 12640,
+  PseudoVSUXSEG7EI32_V_MF2_MF2 = 12641,
+  PseudoVSUXSEG7EI32_V_MF2_MF2_MASK = 12642,
+  PseudoVSUXSEG7EI32_V_MF2_MF4 = 12643,
+  PseudoVSUXSEG7EI32_V_MF2_MF4_MASK = 12644,
+  PseudoVSUXSEG7EI32_V_MF2_MF8 = 12645,
+  PseudoVSUXSEG7EI32_V_MF2_MF8_MASK = 12646,
+  PseudoVSUXSEG7EI64_V_M1_M1 = 12647,
+  PseudoVSUXSEG7EI64_V_M1_M1_MASK = 12648,
+  PseudoVSUXSEG7EI64_V_M1_MF2 = 12649,
+  PseudoVSUXSEG7EI64_V_M1_MF2_MASK = 12650,
+  PseudoVSUXSEG7EI64_V_M1_MF4 = 12651,
+  PseudoVSUXSEG7EI64_V_M1_MF4_MASK = 12652,
+  PseudoVSUXSEG7EI64_V_M1_MF8 = 12653,
+  PseudoVSUXSEG7EI64_V_M1_MF8_MASK = 12654,
+  PseudoVSUXSEG7EI64_V_M2_M1 = 12655,
+  PseudoVSUXSEG7EI64_V_M2_M1_MASK = 12656,
+  PseudoVSUXSEG7EI64_V_M2_MF2 = 12657,
+  PseudoVSUXSEG7EI64_V_M2_MF2_MASK = 12658,
+  PseudoVSUXSEG7EI64_V_M2_MF4 = 12659,
+  PseudoVSUXSEG7EI64_V_M2_MF4_MASK = 12660,
+  PseudoVSUXSEG7EI64_V_M4_M1 = 12661,
+  PseudoVSUXSEG7EI64_V_M4_M1_MASK = 12662,
+  PseudoVSUXSEG7EI64_V_M4_MF2 = 12663,
+  PseudoVSUXSEG7EI64_V_M4_MF2_MASK = 12664,
+  PseudoVSUXSEG7EI64_V_M8_M1 = 12665,
+  PseudoVSUXSEG7EI64_V_M8_M1_MASK = 12666,
+  PseudoVSUXSEG7EI8_V_M1_M1 = 12667,
+  PseudoVSUXSEG7EI8_V_M1_M1_MASK = 12668,
+  PseudoVSUXSEG7EI8_V_MF2_M1 = 12669,
+  PseudoVSUXSEG7EI8_V_MF2_M1_MASK = 12670,
+  PseudoVSUXSEG7EI8_V_MF2_MF2 = 12671,
+  PseudoVSUXSEG7EI8_V_MF2_MF2_MASK = 12672,
+  PseudoVSUXSEG7EI8_V_MF4_M1 = 12673,
+  PseudoVSUXSEG7EI8_V_MF4_M1_MASK = 12674,
+  PseudoVSUXSEG7EI8_V_MF4_MF2 = 12675,
+  PseudoVSUXSEG7EI8_V_MF4_MF2_MASK = 12676,
+  PseudoVSUXSEG7EI8_V_MF4_MF4 = 12677,
+  PseudoVSUXSEG7EI8_V_MF4_MF4_MASK = 12678,
+  PseudoVSUXSEG7EI8_V_MF8_M1 = 12679,
+  PseudoVSUXSEG7EI8_V_MF8_M1_MASK = 12680,
+  PseudoVSUXSEG7EI8_V_MF8_MF2 = 12681,
+  PseudoVSUXSEG7EI8_V_MF8_MF2_MASK = 12682,
+  PseudoVSUXSEG7EI8_V_MF8_MF4 = 12683,
+  PseudoVSUXSEG7EI8_V_MF8_MF4_MASK = 12684,
+  PseudoVSUXSEG7EI8_V_MF8_MF8 = 12685,
+  PseudoVSUXSEG7EI8_V_MF8_MF8_MASK = 12686,
+  PseudoVSUXSEG8EI16_V_M1_M1 = 12687,
+  PseudoVSUXSEG8EI16_V_M1_M1_MASK = 12688,
+  PseudoVSUXSEG8EI16_V_M1_MF2 = 12689,
+  PseudoVSUXSEG8EI16_V_M1_MF2_MASK = 12690,
+  PseudoVSUXSEG8EI16_V_M2_M1 = 12691,
+  PseudoVSUXSEG8EI16_V_M2_M1_MASK = 12692,
+  PseudoVSUXSEG8EI16_V_MF2_M1 = 12693,
+  PseudoVSUXSEG8EI16_V_MF2_M1_MASK = 12694,
+  PseudoVSUXSEG8EI16_V_MF2_MF2 = 12695,
+  PseudoVSUXSEG8EI16_V_MF2_MF2_MASK = 12696,
+  PseudoVSUXSEG8EI16_V_MF2_MF4 = 12697,
+  PseudoVSUXSEG8EI16_V_MF2_MF4_MASK = 12698,
+  PseudoVSUXSEG8EI16_V_MF4_M1 = 12699,
+  PseudoVSUXSEG8EI16_V_MF4_M1_MASK = 12700,
+  PseudoVSUXSEG8EI16_V_MF4_MF2 = 12701,
+  PseudoVSUXSEG8EI16_V_MF4_MF2_MASK = 12702,
+  PseudoVSUXSEG8EI16_V_MF4_MF4 = 12703,
+  PseudoVSUXSEG8EI16_V_MF4_MF4_MASK = 12704,
+  PseudoVSUXSEG8EI16_V_MF4_MF8 = 12705,
+  PseudoVSUXSEG8EI16_V_MF4_MF8_MASK = 12706,
+  PseudoVSUXSEG8EI32_V_M1_M1 = 12707,
+  PseudoVSUXSEG8EI32_V_M1_M1_MASK = 12708,
+  PseudoVSUXSEG8EI32_V_M1_MF2 = 12709,
+  PseudoVSUXSEG8EI32_V_M1_MF2_MASK = 12710,
+  PseudoVSUXSEG8EI32_V_M1_MF4 = 12711,
+  PseudoVSUXSEG8EI32_V_M1_MF4_MASK = 12712,
+  PseudoVSUXSEG8EI32_V_M2_M1 = 12713,
+  PseudoVSUXSEG8EI32_V_M2_M1_MASK = 12714,
+  PseudoVSUXSEG8EI32_V_M2_MF2 = 12715,
+  PseudoVSUXSEG8EI32_V_M2_MF2_MASK = 12716,
+  PseudoVSUXSEG8EI32_V_M4_M1 = 12717,
+  PseudoVSUXSEG8EI32_V_M4_M1_MASK = 12718,
+  PseudoVSUXSEG8EI32_V_MF2_M1 = 12719,
+  PseudoVSUXSEG8EI32_V_MF2_M1_MASK = 12720,
+  PseudoVSUXSEG8EI32_V_MF2_MF2 = 12721,
+  PseudoVSUXSEG8EI32_V_MF2_MF2_MASK = 12722,
+  PseudoVSUXSEG8EI32_V_MF2_MF4 = 12723,
+  PseudoVSUXSEG8EI32_V_MF2_MF4_MASK = 12724,
+  PseudoVSUXSEG8EI32_V_MF2_MF8 = 12725,
+  PseudoVSUXSEG8EI32_V_MF2_MF8_MASK = 12726,
+  PseudoVSUXSEG8EI64_V_M1_M1 = 12727,
+  PseudoVSUXSEG8EI64_V_M1_M1_MASK = 12728,
+  PseudoVSUXSEG8EI64_V_M1_MF2 = 12729,
+  PseudoVSUXSEG8EI64_V_M1_MF2_MASK = 12730,
+  PseudoVSUXSEG8EI64_V_M1_MF4 = 12731,
+  PseudoVSUXSEG8EI64_V_M1_MF4_MASK = 12732,
+  PseudoVSUXSEG8EI64_V_M1_MF8 = 12733,
+  PseudoVSUXSEG8EI64_V_M1_MF8_MASK = 12734,
+  PseudoVSUXSEG8EI64_V_M2_M1 = 12735,
+  PseudoVSUXSEG8EI64_V_M2_M1_MASK = 12736,
+  PseudoVSUXSEG8EI64_V_M2_MF2 = 12737,
+  PseudoVSUXSEG8EI64_V_M2_MF2_MASK = 12738,
+  PseudoVSUXSEG8EI64_V_M2_MF4 = 12739,
+  PseudoVSUXSEG8EI64_V_M2_MF4_MASK = 12740,
+  PseudoVSUXSEG8EI64_V_M4_M1 = 12741,
+  PseudoVSUXSEG8EI64_V_M4_M1_MASK = 12742,
+  PseudoVSUXSEG8EI64_V_M4_MF2 = 12743,
+  PseudoVSUXSEG8EI64_V_M4_MF2_MASK = 12744,
+  PseudoVSUXSEG8EI64_V_M8_M1 = 12745,
+  PseudoVSUXSEG8EI64_V_M8_M1_MASK = 12746,
+  PseudoVSUXSEG8EI8_V_M1_M1 = 12747,
+  PseudoVSUXSEG8EI8_V_M1_M1_MASK = 12748,
+  PseudoVSUXSEG8EI8_V_MF2_M1 = 12749,
+  PseudoVSUXSEG8EI8_V_MF2_M1_MASK = 12750,
+  PseudoVSUXSEG8EI8_V_MF2_MF2 = 12751,
+  PseudoVSUXSEG8EI8_V_MF2_MF2_MASK = 12752,
+  PseudoVSUXSEG8EI8_V_MF4_M1 = 12753,
+  PseudoVSUXSEG8EI8_V_MF4_M1_MASK = 12754,
+  PseudoVSUXSEG8EI8_V_MF4_MF2 = 12755,
+  PseudoVSUXSEG8EI8_V_MF4_MF2_MASK = 12756,
+  PseudoVSUXSEG8EI8_V_MF4_MF4 = 12757,
+  PseudoVSUXSEG8EI8_V_MF4_MF4_MASK = 12758,
+  PseudoVSUXSEG8EI8_V_MF8_M1 = 12759,
+  PseudoVSUXSEG8EI8_V_MF8_M1_MASK = 12760,
+  PseudoVSUXSEG8EI8_V_MF8_MF2 = 12761,
+  PseudoVSUXSEG8EI8_V_MF8_MF2_MASK = 12762,
+  PseudoVSUXSEG8EI8_V_MF8_MF4 = 12763,
+  PseudoVSUXSEG8EI8_V_MF8_MF4_MASK = 12764,
+  PseudoVSUXSEG8EI8_V_MF8_MF8 = 12765,
+  PseudoVSUXSEG8EI8_V_MF8_MF8_MASK = 12766,
+  PseudoVWADDU_VV_M1 = 12767,
+  PseudoVWADDU_VV_M1_MASK = 12768,
+  PseudoVWADDU_VV_M2 = 12769,
+  PseudoVWADDU_VV_M2_MASK = 12770,
+  PseudoVWADDU_VV_M4 = 12771,
+  PseudoVWADDU_VV_M4_MASK = 12772,
+  PseudoVWADDU_VV_MF2 = 12773,
+  PseudoVWADDU_VV_MF2_MASK = 12774,
+  PseudoVWADDU_VV_MF4 = 12775,
+  PseudoVWADDU_VV_MF4_MASK = 12776,
+  PseudoVWADDU_VV_MF8 = 12777,
+  PseudoVWADDU_VV_MF8_MASK = 12778,
+  PseudoVWADDU_VX_M1 = 12779,
+  PseudoVWADDU_VX_M1_MASK = 12780,
+  PseudoVWADDU_VX_M2 = 12781,
+  PseudoVWADDU_VX_M2_MASK = 12782,
+  PseudoVWADDU_VX_M4 = 12783,
+  PseudoVWADDU_VX_M4_MASK = 12784,
+  PseudoVWADDU_VX_MF2 = 12785,
+  PseudoVWADDU_VX_MF2_MASK = 12786,
+  PseudoVWADDU_VX_MF4 = 12787,
+  PseudoVWADDU_VX_MF4_MASK = 12788,
+  PseudoVWADDU_VX_MF8 = 12789,
+  PseudoVWADDU_VX_MF8_MASK = 12790,
+  PseudoVWADDU_WV_M1 = 12791,
+  PseudoVWADDU_WV_M1_MASK = 12792,
+  PseudoVWADDU_WV_M1_MASK_TIED = 12793,
+  PseudoVWADDU_WV_M1_TIED = 12794,
+  PseudoVWADDU_WV_M2 = 12795,
+  PseudoVWADDU_WV_M2_MASK = 12796,
+  PseudoVWADDU_WV_M2_MASK_TIED = 12797,
+  PseudoVWADDU_WV_M2_TIED = 12798,
+  PseudoVWADDU_WV_M4 = 12799,
+  PseudoVWADDU_WV_M4_MASK = 12800,
+  PseudoVWADDU_WV_M4_MASK_TIED = 12801,
+  PseudoVWADDU_WV_M4_TIED = 12802,
+  PseudoVWADDU_WV_MF2 = 12803,
+  PseudoVWADDU_WV_MF2_MASK = 12804,
+  PseudoVWADDU_WV_MF2_MASK_TIED = 12805,
+  PseudoVWADDU_WV_MF2_TIED = 12806,
+  PseudoVWADDU_WV_MF4 = 12807,
+  PseudoVWADDU_WV_MF4_MASK = 12808,
+  PseudoVWADDU_WV_MF4_MASK_TIED = 12809,
+  PseudoVWADDU_WV_MF4_TIED = 12810,
+  PseudoVWADDU_WV_MF8 = 12811,
+  PseudoVWADDU_WV_MF8_MASK = 12812,
+  PseudoVWADDU_WV_MF8_MASK_TIED = 12813,
+  PseudoVWADDU_WV_MF8_TIED = 12814,
+  PseudoVWADDU_WX_M1 = 12815,
+  PseudoVWADDU_WX_M1_MASK = 12816,
+  PseudoVWADDU_WX_M2 = 12817,
+  PseudoVWADDU_WX_M2_MASK = 12818,
+  PseudoVWADDU_WX_M4 = 12819,
+  PseudoVWADDU_WX_M4_MASK = 12820,
+  PseudoVWADDU_WX_MF2 = 12821,
+  PseudoVWADDU_WX_MF2_MASK = 12822,
+  PseudoVWADDU_WX_MF4 = 12823,
+  PseudoVWADDU_WX_MF4_MASK = 12824,
+  PseudoVWADDU_WX_MF8 = 12825,
+  PseudoVWADDU_WX_MF8_MASK = 12826,
+  PseudoVWADD_VV_M1 = 12827,
+  PseudoVWADD_VV_M1_MASK = 12828,
+  PseudoVWADD_VV_M2 = 12829,
+  PseudoVWADD_VV_M2_MASK = 12830,
+  PseudoVWADD_VV_M4 = 12831,
+  PseudoVWADD_VV_M4_MASK = 12832,
+  PseudoVWADD_VV_MF2 = 12833,
+  PseudoVWADD_VV_MF2_MASK = 12834,
+  PseudoVWADD_VV_MF4 = 12835,
+  PseudoVWADD_VV_MF4_MASK = 12836,
+  PseudoVWADD_VV_MF8 = 12837,
+  PseudoVWADD_VV_MF8_MASK = 12838,
+  PseudoVWADD_VX_M1 = 12839,
+  PseudoVWADD_VX_M1_MASK = 12840,
+  PseudoVWADD_VX_M2 = 12841,
+  PseudoVWADD_VX_M2_MASK = 12842,
+  PseudoVWADD_VX_M4 = 12843,
+  PseudoVWADD_VX_M4_MASK = 12844,
+  PseudoVWADD_VX_MF2 = 12845,
+  PseudoVWADD_VX_MF2_MASK = 12846,
+  PseudoVWADD_VX_MF4 = 12847,
+  PseudoVWADD_VX_MF4_MASK = 12848,
+  PseudoVWADD_VX_MF8 = 12849,
+  PseudoVWADD_VX_MF8_MASK = 12850,
+  PseudoVWADD_WV_M1 = 12851,
+  PseudoVWADD_WV_M1_MASK = 12852,
+  PseudoVWADD_WV_M1_MASK_TIED = 12853,
+  PseudoVWADD_WV_M1_TIED = 12854,
+  PseudoVWADD_WV_M2 = 12855,
+  PseudoVWADD_WV_M2_MASK = 12856,
+  PseudoVWADD_WV_M2_MASK_TIED = 12857,
+  PseudoVWADD_WV_M2_TIED = 12858,
+  PseudoVWADD_WV_M4 = 12859,
+  PseudoVWADD_WV_M4_MASK = 12860,
+  PseudoVWADD_WV_M4_MASK_TIED = 12861,
+  PseudoVWADD_WV_M4_TIED = 12862,
+  PseudoVWADD_WV_MF2 = 12863,
+  PseudoVWADD_WV_MF2_MASK = 12864,
+  PseudoVWADD_WV_MF2_MASK_TIED = 12865,
+  PseudoVWADD_WV_MF2_TIED = 12866,
+  PseudoVWADD_WV_MF4 = 12867,
+  PseudoVWADD_WV_MF4_MASK = 12868,
+  PseudoVWADD_WV_MF4_MASK_TIED = 12869,
+  PseudoVWADD_WV_MF4_TIED = 12870,
+  PseudoVWADD_WV_MF8 = 12871,
+  PseudoVWADD_WV_MF8_MASK = 12872,
+  PseudoVWADD_WV_MF8_MASK_TIED = 12873,
+  PseudoVWADD_WV_MF8_TIED = 12874,
+  PseudoVWADD_WX_M1 = 12875,
+  PseudoVWADD_WX_M1_MASK = 12876,
+  PseudoVWADD_WX_M2 = 12877,
+  PseudoVWADD_WX_M2_MASK = 12878,
+  PseudoVWADD_WX_M4 = 12879,
+  PseudoVWADD_WX_M4_MASK = 12880,
+  PseudoVWADD_WX_MF2 = 12881,
+  PseudoVWADD_WX_MF2_MASK = 12882,
+  PseudoVWADD_WX_MF4 = 12883,
+  PseudoVWADD_WX_MF4_MASK = 12884,
+  PseudoVWADD_WX_MF8 = 12885,
+  PseudoVWADD_WX_MF8_MASK = 12886,
+  PseudoVWMACCSU_VV_M1 = 12887,
+  PseudoVWMACCSU_VV_M1_MASK = 12888,
+  PseudoVWMACCSU_VV_M2 = 12889,
+  PseudoVWMACCSU_VV_M2_MASK = 12890,
+  PseudoVWMACCSU_VV_M4 = 12891,
+  PseudoVWMACCSU_VV_M4_MASK = 12892,
+  PseudoVWMACCSU_VV_MF2 = 12893,
+  PseudoVWMACCSU_VV_MF2_MASK = 12894,
+  PseudoVWMACCSU_VV_MF4 = 12895,
+  PseudoVWMACCSU_VV_MF4_MASK = 12896,
+  PseudoVWMACCSU_VV_MF8 = 12897,
+  PseudoVWMACCSU_VV_MF8_MASK = 12898,
+  PseudoVWMACCSU_VX_M1 = 12899,
+  PseudoVWMACCSU_VX_M1_MASK = 12900,
+  PseudoVWMACCSU_VX_M2 = 12901,
+  PseudoVWMACCSU_VX_M2_MASK = 12902,
+  PseudoVWMACCSU_VX_M4 = 12903,
+  PseudoVWMACCSU_VX_M4_MASK = 12904,
+  PseudoVWMACCSU_VX_MF2 = 12905,
+  PseudoVWMACCSU_VX_MF2_MASK = 12906,
+  PseudoVWMACCSU_VX_MF4 = 12907,
+  PseudoVWMACCSU_VX_MF4_MASK = 12908,
+  PseudoVWMACCSU_VX_MF8 = 12909,
+  PseudoVWMACCSU_VX_MF8_MASK = 12910,
+  PseudoVWMACCUS_VX_M1 = 12911,
+  PseudoVWMACCUS_VX_M1_MASK = 12912,
+  PseudoVWMACCUS_VX_M2 = 12913,
+  PseudoVWMACCUS_VX_M2_MASK = 12914,
+  PseudoVWMACCUS_VX_M4 = 12915,
+  PseudoVWMACCUS_VX_M4_MASK = 12916,
+  PseudoVWMACCUS_VX_MF2 = 12917,
+  PseudoVWMACCUS_VX_MF2_MASK = 12918,
+  PseudoVWMACCUS_VX_MF4 = 12919,
+  PseudoVWMACCUS_VX_MF4_MASK = 12920,
+  PseudoVWMACCUS_VX_MF8 = 12921,
+  PseudoVWMACCUS_VX_MF8_MASK = 12922,
+  PseudoVWMACCU_VV_M1 = 12923,
+  PseudoVWMACCU_VV_M1_MASK = 12924,
+  PseudoVWMACCU_VV_M2 = 12925,
+  PseudoVWMACCU_VV_M2_MASK = 12926,
+  PseudoVWMACCU_VV_M4 = 12927,
+  PseudoVWMACCU_VV_M4_MASK = 12928,
+  PseudoVWMACCU_VV_MF2 = 12929,
+  PseudoVWMACCU_VV_MF2_MASK = 12930,
+  PseudoVWMACCU_VV_MF4 = 12931,
+  PseudoVWMACCU_VV_MF4_MASK = 12932,
+  PseudoVWMACCU_VV_MF8 = 12933,
+  PseudoVWMACCU_VV_MF8_MASK = 12934,
+  PseudoVWMACCU_VX_M1 = 12935,
+  PseudoVWMACCU_VX_M1_MASK = 12936,
+  PseudoVWMACCU_VX_M2 = 12937,
+  PseudoVWMACCU_VX_M2_MASK = 12938,
+  PseudoVWMACCU_VX_M4 = 12939,
+  PseudoVWMACCU_VX_M4_MASK = 12940,
+  PseudoVWMACCU_VX_MF2 = 12941,
+  PseudoVWMACCU_VX_MF2_MASK = 12942,
+  PseudoVWMACCU_VX_MF4 = 12943,
+  PseudoVWMACCU_VX_MF4_MASK = 12944,
+  PseudoVWMACCU_VX_MF8 = 12945,
+  PseudoVWMACCU_VX_MF8_MASK = 12946,
+  PseudoVWMACC_VV_M1 = 12947,
+  PseudoVWMACC_VV_M1_MASK = 12948,
+  PseudoVWMACC_VV_M2 = 12949,
+  PseudoVWMACC_VV_M2_MASK = 12950,
+  PseudoVWMACC_VV_M4 = 12951,
+  PseudoVWMACC_VV_M4_MASK = 12952,
+  PseudoVWMACC_VV_MF2 = 12953,
+  PseudoVWMACC_VV_MF2_MASK = 12954,
+  PseudoVWMACC_VV_MF4 = 12955,
+  PseudoVWMACC_VV_MF4_MASK = 12956,
+  PseudoVWMACC_VV_MF8 = 12957,
+  PseudoVWMACC_VV_MF8_MASK = 12958,
+  PseudoVWMACC_VX_M1 = 12959,
+  PseudoVWMACC_VX_M1_MASK = 12960,
+  PseudoVWMACC_VX_M2 = 12961,
+  PseudoVWMACC_VX_M2_MASK = 12962,
+  PseudoVWMACC_VX_M4 = 12963,
+  PseudoVWMACC_VX_M4_MASK = 12964,
+  PseudoVWMACC_VX_MF2 = 12965,
+  PseudoVWMACC_VX_MF2_MASK = 12966,
+  PseudoVWMACC_VX_MF4 = 12967,
+  PseudoVWMACC_VX_MF4_MASK = 12968,
+  PseudoVWMACC_VX_MF8 = 12969,
+  PseudoVWMACC_VX_MF8_MASK = 12970,
+  PseudoVWMULSU_VV_M1 = 12971,
+  PseudoVWMULSU_VV_M1_MASK = 12972,
+  PseudoVWMULSU_VV_M2 = 12973,
+  PseudoVWMULSU_VV_M2_MASK = 12974,
+  PseudoVWMULSU_VV_M4 = 12975,
+  PseudoVWMULSU_VV_M4_MASK = 12976,
+  PseudoVWMULSU_VV_MF2 = 12977,
+  PseudoVWMULSU_VV_MF2_MASK = 12978,
+  PseudoVWMULSU_VV_MF4 = 12979,
+  PseudoVWMULSU_VV_MF4_MASK = 12980,
+  PseudoVWMULSU_VV_MF8 = 12981,
+  PseudoVWMULSU_VV_MF8_MASK = 12982,
+  PseudoVWMULSU_VX_M1 = 12983,
+  PseudoVWMULSU_VX_M1_MASK = 12984,
+  PseudoVWMULSU_VX_M2 = 12985,
+  PseudoVWMULSU_VX_M2_MASK = 12986,
+  PseudoVWMULSU_VX_M4 = 12987,
+  PseudoVWMULSU_VX_M4_MASK = 12988,
+  PseudoVWMULSU_VX_MF2 = 12989,
+  PseudoVWMULSU_VX_MF2_MASK = 12990,
+  PseudoVWMULSU_VX_MF4 = 12991,
+  PseudoVWMULSU_VX_MF4_MASK = 12992,
+  PseudoVWMULSU_VX_MF8 = 12993,
+  PseudoVWMULSU_VX_MF8_MASK = 12994,
+  PseudoVWMULU_VV_M1 = 12995,
+  PseudoVWMULU_VV_M1_MASK = 12996,
+  PseudoVWMULU_VV_M2 = 12997,
+  PseudoVWMULU_VV_M2_MASK = 12998,
+  PseudoVWMULU_VV_M4 = 12999,
+  PseudoVWMULU_VV_M4_MASK = 13000,
+  PseudoVWMULU_VV_MF2 = 13001,
+  PseudoVWMULU_VV_MF2_MASK = 13002,
+  PseudoVWMULU_VV_MF4 = 13003,
+  PseudoVWMULU_VV_MF4_MASK = 13004,
+  PseudoVWMULU_VV_MF8 = 13005,
+  PseudoVWMULU_VV_MF8_MASK = 13006,
+  PseudoVWMULU_VX_M1 = 13007,
+  PseudoVWMULU_VX_M1_MASK = 13008,
+  PseudoVWMULU_VX_M2 = 13009,
+  PseudoVWMULU_VX_M2_MASK = 13010,
+  PseudoVWMULU_VX_M4 = 13011,
+  PseudoVWMULU_VX_M4_MASK = 13012,
+  PseudoVWMULU_VX_MF2 = 13013,
+  PseudoVWMULU_VX_MF2_MASK = 13014,
+  PseudoVWMULU_VX_MF4 = 13015,
+  PseudoVWMULU_VX_MF4_MASK = 13016,
+  PseudoVWMULU_VX_MF8 = 13017,
+  PseudoVWMULU_VX_MF8_MASK = 13018,
+  PseudoVWMUL_VV_M1 = 13019,
+  PseudoVWMUL_VV_M1_MASK = 13020,
+  PseudoVWMUL_VV_M2 = 13021,
+  PseudoVWMUL_VV_M2_MASK = 13022,
+  PseudoVWMUL_VV_M4 = 13023,
+  PseudoVWMUL_VV_M4_MASK = 13024,
+  PseudoVWMUL_VV_MF2 = 13025,
+  PseudoVWMUL_VV_MF2_MASK = 13026,
+  PseudoVWMUL_VV_MF4 = 13027,
+  PseudoVWMUL_VV_MF4_MASK = 13028,
+  PseudoVWMUL_VV_MF8 = 13029,
+  PseudoVWMUL_VV_MF8_MASK = 13030,
+  PseudoVWMUL_VX_M1 = 13031,
+  PseudoVWMUL_VX_M1_MASK = 13032,
+  PseudoVWMUL_VX_M2 = 13033,
+  PseudoVWMUL_VX_M2_MASK = 13034,
+  PseudoVWMUL_VX_M4 = 13035,
+  PseudoVWMUL_VX_M4_MASK = 13036,
+  PseudoVWMUL_VX_MF2 = 13037,
+  PseudoVWMUL_VX_MF2_MASK = 13038,
+  PseudoVWMUL_VX_MF4 = 13039,
+  PseudoVWMUL_VX_MF4_MASK = 13040,
+  PseudoVWMUL_VX_MF8 = 13041,
+  PseudoVWMUL_VX_MF8_MASK = 13042,
+  PseudoVWREDSUMU_VS_M1_E16 = 13043,
+  PseudoVWREDSUMU_VS_M1_E16_MASK = 13044,
+  PseudoVWREDSUMU_VS_M1_E32 = 13045,
+  PseudoVWREDSUMU_VS_M1_E32_MASK = 13046,
+  PseudoVWREDSUMU_VS_M1_E8 = 13047,
+  PseudoVWREDSUMU_VS_M1_E8_MASK = 13048,
+  PseudoVWREDSUMU_VS_M2_E16 = 13049,
+  PseudoVWREDSUMU_VS_M2_E16_MASK = 13050,
+  PseudoVWREDSUMU_VS_M2_E32 = 13051,
+  PseudoVWREDSUMU_VS_M2_E32_MASK = 13052,
+  PseudoVWREDSUMU_VS_M2_E8 = 13053,
+  PseudoVWREDSUMU_VS_M2_E8_MASK = 13054,
+  PseudoVWREDSUMU_VS_M4_E16 = 13055,
+  PseudoVWREDSUMU_VS_M4_E16_MASK = 13056,
+  PseudoVWREDSUMU_VS_M4_E32 = 13057,
+  PseudoVWREDSUMU_VS_M4_E32_MASK = 13058,
+  PseudoVWREDSUMU_VS_M4_E8 = 13059,
+  PseudoVWREDSUMU_VS_M4_E8_MASK = 13060,
+  PseudoVWREDSUMU_VS_M8_E16 = 13061,
+  PseudoVWREDSUMU_VS_M8_E16_MASK = 13062,
+  PseudoVWREDSUMU_VS_M8_E32 = 13063,
+  PseudoVWREDSUMU_VS_M8_E32_MASK = 13064,
+  PseudoVWREDSUMU_VS_M8_E8 = 13065,
+  PseudoVWREDSUMU_VS_M8_E8_MASK = 13066,
+  PseudoVWREDSUMU_VS_MF2_E16 = 13067,
+  PseudoVWREDSUMU_VS_MF2_E16_MASK = 13068,
+  PseudoVWREDSUMU_VS_MF2_E32 = 13069,
+  PseudoVWREDSUMU_VS_MF2_E32_MASK = 13070,
+  PseudoVWREDSUMU_VS_MF2_E8 = 13071,
+  PseudoVWREDSUMU_VS_MF2_E8_MASK = 13072,
+  PseudoVWREDSUMU_VS_MF4_E16 = 13073,
+  PseudoVWREDSUMU_VS_MF4_E16_MASK = 13074,
+  PseudoVWREDSUMU_VS_MF4_E8 = 13075,
+  PseudoVWREDSUMU_VS_MF4_E8_MASK = 13076,
+  PseudoVWREDSUMU_VS_MF8_E8 = 13077,
+  PseudoVWREDSUMU_VS_MF8_E8_MASK = 13078,
+  PseudoVWREDSUM_VS_M1_E16 = 13079,
+  PseudoVWREDSUM_VS_M1_E16_MASK = 13080,
+  PseudoVWREDSUM_VS_M1_E32 = 13081,
+  PseudoVWREDSUM_VS_M1_E32_MASK = 13082,
+  PseudoVWREDSUM_VS_M1_E8 = 13083,
+  PseudoVWREDSUM_VS_M1_E8_MASK = 13084,
+  PseudoVWREDSUM_VS_M2_E16 = 13085,
+  PseudoVWREDSUM_VS_M2_E16_MASK = 13086,
+  PseudoVWREDSUM_VS_M2_E32 = 13087,
+  PseudoVWREDSUM_VS_M2_E32_MASK = 13088,
+  PseudoVWREDSUM_VS_M2_E8 = 13089,
+  PseudoVWREDSUM_VS_M2_E8_MASK = 13090,
+  PseudoVWREDSUM_VS_M4_E16 = 13091,
+  PseudoVWREDSUM_VS_M4_E16_MASK = 13092,
+  PseudoVWREDSUM_VS_M4_E32 = 13093,
+  PseudoVWREDSUM_VS_M4_E32_MASK = 13094,
+  PseudoVWREDSUM_VS_M4_E8 = 13095,
+  PseudoVWREDSUM_VS_M4_E8_MASK = 13096,
+  PseudoVWREDSUM_VS_M8_E16 = 13097,
+  PseudoVWREDSUM_VS_M8_E16_MASK = 13098,
+  PseudoVWREDSUM_VS_M8_E32 = 13099,
+  PseudoVWREDSUM_VS_M8_E32_MASK = 13100,
+  PseudoVWREDSUM_VS_M8_E8 = 13101,
+  PseudoVWREDSUM_VS_M8_E8_MASK = 13102,
+  PseudoVWREDSUM_VS_MF2_E16 = 13103,
+  PseudoVWREDSUM_VS_MF2_E16_MASK = 13104,
+  PseudoVWREDSUM_VS_MF2_E32 = 13105,
+  PseudoVWREDSUM_VS_MF2_E32_MASK = 13106,
+  PseudoVWREDSUM_VS_MF2_E8 = 13107,
+  PseudoVWREDSUM_VS_MF2_E8_MASK = 13108,
+  PseudoVWREDSUM_VS_MF4_E16 = 13109,
+  PseudoVWREDSUM_VS_MF4_E16_MASK = 13110,
+  PseudoVWREDSUM_VS_MF4_E8 = 13111,
+  PseudoVWREDSUM_VS_MF4_E8_MASK = 13112,
+  PseudoVWREDSUM_VS_MF8_E8 = 13113,
+  PseudoVWREDSUM_VS_MF8_E8_MASK = 13114,
+  PseudoVWSLL_VI_M1 = 13115,
+  PseudoVWSLL_VI_M1_MASK = 13116,
+  PseudoVWSLL_VI_M2 = 13117,
+  PseudoVWSLL_VI_M2_MASK = 13118,
+  PseudoVWSLL_VI_M4 = 13119,
+  PseudoVWSLL_VI_M4_MASK = 13120,
+  PseudoVWSLL_VI_MF2 = 13121,
+  PseudoVWSLL_VI_MF2_MASK = 13122,
+  PseudoVWSLL_VI_MF4 = 13123,
+  PseudoVWSLL_VI_MF4_MASK = 13124,
+  PseudoVWSLL_VI_MF8 = 13125,
+  PseudoVWSLL_VI_MF8_MASK = 13126,
+  PseudoVWSLL_VV_M1 = 13127,
+  PseudoVWSLL_VV_M1_MASK = 13128,
+  PseudoVWSLL_VV_M2 = 13129,
+  PseudoVWSLL_VV_M2_MASK = 13130,
+  PseudoVWSLL_VV_M4 = 13131,
+  PseudoVWSLL_VV_M4_MASK = 13132,
+  PseudoVWSLL_VV_MF2 = 13133,
+  PseudoVWSLL_VV_MF2_MASK = 13134,
+  PseudoVWSLL_VV_MF4 = 13135,
+  PseudoVWSLL_VV_MF4_MASK = 13136,
+  PseudoVWSLL_VV_MF8 = 13137,
+  PseudoVWSLL_VV_MF8_MASK = 13138,
+  PseudoVWSLL_VX_M1 = 13139,
+  PseudoVWSLL_VX_M1_MASK = 13140,
+  PseudoVWSLL_VX_M2 = 13141,
+  PseudoVWSLL_VX_M2_MASK = 13142,
+  PseudoVWSLL_VX_M4 = 13143,
+  PseudoVWSLL_VX_M4_MASK = 13144,
+  PseudoVWSLL_VX_MF2 = 13145,
+  PseudoVWSLL_VX_MF2_MASK = 13146,
+  PseudoVWSLL_VX_MF4 = 13147,
+  PseudoVWSLL_VX_MF4_MASK = 13148,
+  PseudoVWSLL_VX_MF8 = 13149,
+  PseudoVWSLL_VX_MF8_MASK = 13150,
+  PseudoVWSUBU_VV_M1 = 13151,
+  PseudoVWSUBU_VV_M1_MASK = 13152,
+  PseudoVWSUBU_VV_M2 = 13153,
+  PseudoVWSUBU_VV_M2_MASK = 13154,
+  PseudoVWSUBU_VV_M4 = 13155,
+  PseudoVWSUBU_VV_M4_MASK = 13156,
+  PseudoVWSUBU_VV_MF2 = 13157,
+  PseudoVWSUBU_VV_MF2_MASK = 13158,
+  PseudoVWSUBU_VV_MF4 = 13159,
+  PseudoVWSUBU_VV_MF4_MASK = 13160,
+  PseudoVWSUBU_VV_MF8 = 13161,
+  PseudoVWSUBU_VV_MF8_MASK = 13162,
+  PseudoVWSUBU_VX_M1 = 13163,
+  PseudoVWSUBU_VX_M1_MASK = 13164,
+  PseudoVWSUBU_VX_M2 = 13165,
+  PseudoVWSUBU_VX_M2_MASK = 13166,
+  PseudoVWSUBU_VX_M4 = 13167,
+  PseudoVWSUBU_VX_M4_MASK = 13168,
+  PseudoVWSUBU_VX_MF2 = 13169,
+  PseudoVWSUBU_VX_MF2_MASK = 13170,
+  PseudoVWSUBU_VX_MF4 = 13171,
+  PseudoVWSUBU_VX_MF4_MASK = 13172,
+  PseudoVWSUBU_VX_MF8 = 13173,
+  PseudoVWSUBU_VX_MF8_MASK = 13174,
+  PseudoVWSUBU_WV_M1 = 13175,
+  PseudoVWSUBU_WV_M1_MASK = 13176,
+  PseudoVWSUBU_WV_M1_MASK_TIED = 13177,
+  PseudoVWSUBU_WV_M1_TIED = 13178,
+  PseudoVWSUBU_WV_M2 = 13179,
+  PseudoVWSUBU_WV_M2_MASK = 13180,
+  PseudoVWSUBU_WV_M2_MASK_TIED = 13181,
+  PseudoVWSUBU_WV_M2_TIED = 13182,
+  PseudoVWSUBU_WV_M4 = 13183,
+  PseudoVWSUBU_WV_M4_MASK = 13184,
+  PseudoVWSUBU_WV_M4_MASK_TIED = 13185,
+  PseudoVWSUBU_WV_M4_TIED = 13186,
+  PseudoVWSUBU_WV_MF2 = 13187,
+  PseudoVWSUBU_WV_MF2_MASK = 13188,
+  PseudoVWSUBU_WV_MF2_MASK_TIED = 13189,
+  PseudoVWSUBU_WV_MF2_TIED = 13190,
+  PseudoVWSUBU_WV_MF4 = 13191,
+  PseudoVWSUBU_WV_MF4_MASK = 13192,
+  PseudoVWSUBU_WV_MF4_MASK_TIED = 13193,
+  PseudoVWSUBU_WV_MF4_TIED = 13194,
+  PseudoVWSUBU_WV_MF8 = 13195,
+  PseudoVWSUBU_WV_MF8_MASK = 13196,
+  PseudoVWSUBU_WV_MF8_MASK_TIED = 13197,
+  PseudoVWSUBU_WV_MF8_TIED = 13198,
+  PseudoVWSUBU_WX_M1 = 13199,
+  PseudoVWSUBU_WX_M1_MASK = 13200,
+  PseudoVWSUBU_WX_M2 = 13201,
+  PseudoVWSUBU_WX_M2_MASK = 13202,
+  PseudoVWSUBU_WX_M4 = 13203,
+  PseudoVWSUBU_WX_M4_MASK = 13204,
+  PseudoVWSUBU_WX_MF2 = 13205,
+  PseudoVWSUBU_WX_MF2_MASK = 13206,
+  PseudoVWSUBU_WX_MF4 = 13207,
+  PseudoVWSUBU_WX_MF4_MASK = 13208,
+  PseudoVWSUBU_WX_MF8 = 13209,
+  PseudoVWSUBU_WX_MF8_MASK = 13210,
+  PseudoVWSUB_VV_M1 = 13211,
+  PseudoVWSUB_VV_M1_MASK = 13212,
+  PseudoVWSUB_VV_M2 = 13213,
+  PseudoVWSUB_VV_M2_MASK = 13214,
+  PseudoVWSUB_VV_M4 = 13215,
+  PseudoVWSUB_VV_M4_MASK = 13216,
+  PseudoVWSUB_VV_MF2 = 13217,
+  PseudoVWSUB_VV_MF2_MASK = 13218,
+  PseudoVWSUB_VV_MF4 = 13219,
+  PseudoVWSUB_VV_MF4_MASK = 13220,
+  PseudoVWSUB_VV_MF8 = 13221,
+  PseudoVWSUB_VV_MF8_MASK = 13222,
+  PseudoVWSUB_VX_M1 = 13223,
+  PseudoVWSUB_VX_M1_MASK = 13224,
+  PseudoVWSUB_VX_M2 = 13225,
+  PseudoVWSUB_VX_M2_MASK = 13226,
+  PseudoVWSUB_VX_M4 = 13227,
+  PseudoVWSUB_VX_M4_MASK = 13228,
+  PseudoVWSUB_VX_MF2 = 13229,
+  PseudoVWSUB_VX_MF2_MASK = 13230,
+  PseudoVWSUB_VX_MF4 = 13231,
+  PseudoVWSUB_VX_MF4_MASK = 13232,
+  PseudoVWSUB_VX_MF8 = 13233,
+  PseudoVWSUB_VX_MF8_MASK = 13234,
+  PseudoVWSUB_WV_M1 = 13235,
+  PseudoVWSUB_WV_M1_MASK = 13236,
+  PseudoVWSUB_WV_M1_MASK_TIED = 13237,
+  PseudoVWSUB_WV_M1_TIED = 13238,
+  PseudoVWSUB_WV_M2 = 13239,
+  PseudoVWSUB_WV_M2_MASK = 13240,
+  PseudoVWSUB_WV_M2_MASK_TIED = 13241,
+  PseudoVWSUB_WV_M2_TIED = 13242,
+  PseudoVWSUB_WV_M4 = 13243,
+  PseudoVWSUB_WV_M4_MASK = 13244,
+  PseudoVWSUB_WV_M4_MASK_TIED = 13245,
+  PseudoVWSUB_WV_M4_TIED = 13246,
+  PseudoVWSUB_WV_MF2 = 13247,
+  PseudoVWSUB_WV_MF2_MASK = 13248,
+  PseudoVWSUB_WV_MF2_MASK_TIED = 13249,
+  PseudoVWSUB_WV_MF2_TIED = 13250,
+  PseudoVWSUB_WV_MF4 = 13251,
+  PseudoVWSUB_WV_MF4_MASK = 13252,
+  PseudoVWSUB_WV_MF4_MASK_TIED = 13253,
+  PseudoVWSUB_WV_MF4_TIED = 13254,
+  PseudoVWSUB_WV_MF8 = 13255,
+  PseudoVWSUB_WV_MF8_MASK = 13256,
+  PseudoVWSUB_WV_MF8_MASK_TIED = 13257,
+  PseudoVWSUB_WV_MF8_TIED = 13258,
+  PseudoVWSUB_WX_M1 = 13259,
+  PseudoVWSUB_WX_M1_MASK = 13260,
+  PseudoVWSUB_WX_M2 = 13261,
+  PseudoVWSUB_WX_M2_MASK = 13262,
+  PseudoVWSUB_WX_M4 = 13263,
+  PseudoVWSUB_WX_M4_MASK = 13264,
+  PseudoVWSUB_WX_MF2 = 13265,
+  PseudoVWSUB_WX_MF2_MASK = 13266,
+  PseudoVWSUB_WX_MF4 = 13267,
+  PseudoVWSUB_WX_MF4_MASK = 13268,
+  PseudoVWSUB_WX_MF8 = 13269,
+  PseudoVWSUB_WX_MF8_MASK = 13270,
+  PseudoVXOR_VI_M1 = 13271,
+  PseudoVXOR_VI_M1_MASK = 13272,
+  PseudoVXOR_VI_M2 = 13273,
+  PseudoVXOR_VI_M2_MASK = 13274,
+  PseudoVXOR_VI_M4 = 13275,
+  PseudoVXOR_VI_M4_MASK = 13276,
+  PseudoVXOR_VI_M8 = 13277,
+  PseudoVXOR_VI_M8_MASK = 13278,
+  PseudoVXOR_VI_MF2 = 13279,
+  PseudoVXOR_VI_MF2_MASK = 13280,
+  PseudoVXOR_VI_MF4 = 13281,
+  PseudoVXOR_VI_MF4_MASK = 13282,
+  PseudoVXOR_VI_MF8 = 13283,
+  PseudoVXOR_VI_MF8_MASK = 13284,
+  PseudoVXOR_VV_M1 = 13285,
+  PseudoVXOR_VV_M1_MASK = 13286,
+  PseudoVXOR_VV_M2 = 13287,
+  PseudoVXOR_VV_M2_MASK = 13288,
+  PseudoVXOR_VV_M4 = 13289,
+  PseudoVXOR_VV_M4_MASK = 13290,
+  PseudoVXOR_VV_M8 = 13291,
+  PseudoVXOR_VV_M8_MASK = 13292,
+  PseudoVXOR_VV_MF2 = 13293,
+  PseudoVXOR_VV_MF2_MASK = 13294,
+  PseudoVXOR_VV_MF4 = 13295,
+  PseudoVXOR_VV_MF4_MASK = 13296,
+  PseudoVXOR_VV_MF8 = 13297,
+  PseudoVXOR_VV_MF8_MASK = 13298,
+  PseudoVXOR_VX_M1 = 13299,
+  PseudoVXOR_VX_M1_MASK = 13300,
+  PseudoVXOR_VX_M2 = 13301,
+  PseudoVXOR_VX_M2_MASK = 13302,
+  PseudoVXOR_VX_M4 = 13303,
+  PseudoVXOR_VX_M4_MASK = 13304,
+  PseudoVXOR_VX_M8 = 13305,
+  PseudoVXOR_VX_M8_MASK = 13306,
+  PseudoVXOR_VX_MF2 = 13307,
+  PseudoVXOR_VX_MF2_MASK = 13308,
+  PseudoVXOR_VX_MF4 = 13309,
+  PseudoVXOR_VX_MF4_MASK = 13310,
+  PseudoVXOR_VX_MF8 = 13311,
+  PseudoVXOR_VX_MF8_MASK = 13312,
+  PseudoVZEXT_VF2_M1 = 13313,
+  PseudoVZEXT_VF2_M1_MASK = 13314,
+  PseudoVZEXT_VF2_M2 = 13315,
+  PseudoVZEXT_VF2_M2_MASK = 13316,
+  PseudoVZEXT_VF2_M4 = 13317,
+  PseudoVZEXT_VF2_M4_MASK = 13318,
+  PseudoVZEXT_VF2_M8 = 13319,
+  PseudoVZEXT_VF2_M8_MASK = 13320,
+  PseudoVZEXT_VF2_MF2 = 13321,
+  PseudoVZEXT_VF2_MF2_MASK = 13322,
+  PseudoVZEXT_VF2_MF4 = 13323,
+  PseudoVZEXT_VF2_MF4_MASK = 13324,
+  PseudoVZEXT_VF4_M1 = 13325,
+  PseudoVZEXT_VF4_M1_MASK = 13326,
+  PseudoVZEXT_VF4_M2 = 13327,
+  PseudoVZEXT_VF4_M2_MASK = 13328,
+  PseudoVZEXT_VF4_M4 = 13329,
+  PseudoVZEXT_VF4_M4_MASK = 13330,
+  PseudoVZEXT_VF4_M8 = 13331,
+  PseudoVZEXT_VF4_M8_MASK = 13332,
+  PseudoVZEXT_VF4_MF2 = 13333,
+  PseudoVZEXT_VF4_MF2_MASK = 13334,
+  PseudoVZEXT_VF8_M1 = 13335,
+  PseudoVZEXT_VF8_M1_MASK = 13336,
+  PseudoVZEXT_VF8_M2 = 13337,
+  PseudoVZEXT_VF8_M2_MASK = 13338,
+  PseudoVZEXT_VF8_M4 = 13339,
+  PseudoVZEXT_VF8_M4_MASK = 13340,
+  PseudoVZEXT_VF8_M8 = 13341,
+  PseudoVZEXT_VF8_M8_MASK = 13342,
+  PseudoZEXT_H = 13343,
+  PseudoZEXT_W = 13344,
+  ReadCounterWide = 13345,
+  ReadFCSR = 13346,
+  ReadFFLAGS = 13347,
+  ReadFRM = 13348,
+  Select_FPR16INX_Using_CC_GPR = 13349,
+  Select_FPR16_Using_CC_GPR = 13350,
+  Select_FPR32INX_Using_CC_GPR = 13351,
+  Select_FPR32_Using_CC_GPR = 13352,
+  Select_FPR64IN32X_Using_CC_GPR = 13353,
+  Select_FPR64INX_Using_CC_GPR = 13354,
+  Select_FPR64_Using_CC_GPR = 13355,
+  Select_GPRNoX0_Using_CC_SImm16NonZero_QC = 13356,
+  Select_GPRNoX0_Using_CC_SImm5NonZero_QC = 13357,
+  Select_GPRNoX0_Using_CC_UImm16NonZero_QC = 13358,
+  Select_GPRNoX0_Using_CC_UImm5NonZero_QC = 13359,
+  Select_GPR_Using_CC_GPR = 13360,
+  Select_GPR_Using_CC_Imm5_Zibi = 13361,
+  Select_GPR_Using_CC_SImm5_CV = 13362,
+  Select_GPR_Using_CC_UImm7_NDS = 13363,
+  Select_GPR_Using_CC_UImmLog2XLen_NDS = 13364,
+  SetFCSR = 13365,
+  SetFCSRImm = 13366,
+  SplitF64Pseudo = 13367,
+  SwapFRMImm = 13368,
+  WriteFCSR = 13369,
+  WriteFCSRImm = 13370,
+  WriteFFLAGS = 13371,
+  WriteFRM = 13372,
+  WriteFRMImm = 13373,
+  WriteVXRMImm = 13374,
+  AADD = 13375,
+  AADDU = 13376,
+  ABS = 13377,
+  ABSW = 13378,
+  ADD = 13379,
+  ADDD = 13380,
+  ADDI = 13381,
+  ADDIW = 13382,
+  ADDW = 13383,
+  ADD_UW = 13384,
+  AES32DSI = 13385,
+  AES32DSMI = 13386,
+  AES32ESI = 13387,
+  AES32ESMI = 13388,
+  AES64DS = 13389,
+  AES64DSM = 13390,
+  AES64ES = 13391,
+  AES64ESM = 13392,
+  AES64IM = 13393,
+  AES64KS1I = 13394,
+  AES64KS2 = 13395,
+  AMOADD_B = 13396,
+  AMOADD_B_AQ = 13397,
+  AMOADD_B_AQRL = 13398,
+  AMOADD_B_RL = 13399,
+  AMOADD_D = 13400,
+  AMOADD_D_AQ = 13401,
+  AMOADD_D_AQRL = 13402,
+  AMOADD_D_RL = 13403,
+  AMOADD_H = 13404,
+  AMOADD_H_AQ = 13405,
+  AMOADD_H_AQRL = 13406,
+  AMOADD_H_RL = 13407,
+  AMOADD_W = 13408,
+  AMOADD_W_AQ = 13409,
+  AMOADD_W_AQRL = 13410,
+  AMOADD_W_RL = 13411,
+  AMOAND_B = 13412,
+  AMOAND_B_AQ = 13413,
+  AMOAND_B_AQRL = 13414,
+  AMOAND_B_RL = 13415,
+  AMOAND_D = 13416,
+  AMOAND_D_AQ = 13417,
+  AMOAND_D_AQRL = 13418,
+  AMOAND_D_RL = 13419,
+  AMOAND_H = 13420,
+  AMOAND_H_AQ = 13421,
+  AMOAND_H_AQRL = 13422,
+  AMOAND_H_RL = 13423,
+  AMOAND_W = 13424,
+  AMOAND_W_AQ = 13425,
+  AMOAND_W_AQRL = 13426,
+  AMOAND_W_RL = 13427,
+  AMOCAS_B = 13428,
+  AMOCAS_B_AQ = 13429,
+  AMOCAS_B_AQRL = 13430,
+  AMOCAS_B_RL = 13431,
+  AMOCAS_D_RV32 = 13432,
+  AMOCAS_D_RV32_AQ = 13433,
+  AMOCAS_D_RV32_AQRL = 13434,
+  AMOCAS_D_RV32_RL = 13435,
+  AMOCAS_D_RV64 = 13436,
+  AMOCAS_D_RV64_AQ = 13437,
+  AMOCAS_D_RV64_AQRL = 13438,
+  AMOCAS_D_RV64_RL = 13439,
+  AMOCAS_H = 13440,
+  AMOCAS_H_AQ = 13441,
+  AMOCAS_H_AQRL = 13442,
+  AMOCAS_H_RL = 13443,
+  AMOCAS_Q = 13444,
+  AMOCAS_Q_AQ = 13445,
+  AMOCAS_Q_AQRL = 13446,
+  AMOCAS_Q_RL = 13447,
+  AMOCAS_W = 13448,
+  AMOCAS_W_AQ = 13449,
+  AMOCAS_W_AQRL = 13450,
+  AMOCAS_W_RL = 13451,
+  AMOMAXU_B = 13452,
+  AMOMAXU_B_AQ = 13453,
+  AMOMAXU_B_AQRL = 13454,
+  AMOMAXU_B_RL = 13455,
+  AMOMAXU_D = 13456,
+  AMOMAXU_D_AQ = 13457,
+  AMOMAXU_D_AQRL = 13458,
+  AMOMAXU_D_RL = 13459,
+  AMOMAXU_H = 13460,
+  AMOMAXU_H_AQ = 13461,
+  AMOMAXU_H_AQRL = 13462,
+  AMOMAXU_H_RL = 13463,
+  AMOMAXU_W = 13464,
+  AMOMAXU_W_AQ = 13465,
+  AMOMAXU_W_AQRL = 13466,
+  AMOMAXU_W_RL = 13467,
+  AMOMAX_B = 13468,
+  AMOMAX_B_AQ = 13469,
+  AMOMAX_B_AQRL = 13470,
+  AMOMAX_B_RL = 13471,
+  AMOMAX_D = 13472,
+  AMOMAX_D_AQ = 13473,
+  AMOMAX_D_AQRL = 13474,
+  AMOMAX_D_RL = 13475,
+  AMOMAX_H = 13476,
+  AMOMAX_H_AQ = 13477,
+  AMOMAX_H_AQRL = 13478,
+  AMOMAX_H_RL = 13479,
+  AMOMAX_W = 13480,
+  AMOMAX_W_AQ = 13481,
+  AMOMAX_W_AQRL = 13482,
+  AMOMAX_W_RL = 13483,
+  AMOMINU_B = 13484,
+  AMOMINU_B_AQ = 13485,
+  AMOMINU_B_AQRL = 13486,
+  AMOMINU_B_RL = 13487,
+  AMOMINU_D = 13488,
+  AMOMINU_D_AQ = 13489,
+  AMOMINU_D_AQRL = 13490,
+  AMOMINU_D_RL = 13491,
+  AMOMINU_H = 13492,
+  AMOMINU_H_AQ = 13493,
+  AMOMINU_H_AQRL = 13494,
+  AMOMINU_H_RL = 13495,
+  AMOMINU_W = 13496,
+  AMOMINU_W_AQ = 13497,
+  AMOMINU_W_AQRL = 13498,
+  AMOMINU_W_RL = 13499,
+  AMOMIN_B = 13500,
+  AMOMIN_B_AQ = 13501,
+  AMOMIN_B_AQRL = 13502,
+  AMOMIN_B_RL = 13503,
+  AMOMIN_D = 13504,
+  AMOMIN_D_AQ = 13505,
+  AMOMIN_D_AQRL = 13506,
+  AMOMIN_D_RL = 13507,
+  AMOMIN_H = 13508,
+  AMOMIN_H_AQ = 13509,
+  AMOMIN_H_AQRL = 13510,
+  AMOMIN_H_RL = 13511,
+  AMOMIN_W = 13512,
+  AMOMIN_W_AQ = 13513,
+  AMOMIN_W_AQRL = 13514,
+  AMOMIN_W_RL = 13515,
+  AMOOR_B = 13516,
+  AMOOR_B_AQ = 13517,
+  AMOOR_B_AQRL = 13518,
+  AMOOR_B_RL = 13519,
+  AMOOR_D = 13520,
+  AMOOR_D_AQ = 13521,
+  AMOOR_D_AQRL = 13522,
+  AMOOR_D_RL = 13523,
+  AMOOR_H = 13524,
+  AMOOR_H_AQ = 13525,
+  AMOOR_H_AQRL = 13526,
+  AMOOR_H_RL = 13527,
+  AMOOR_W = 13528,
+  AMOOR_W_AQ = 13529,
+  AMOOR_W_AQRL = 13530,
+  AMOOR_W_RL = 13531,
+  AMOSWAP_B = 13532,
+  AMOSWAP_B_AQ = 13533,
+  AMOSWAP_B_AQRL = 13534,
+  AMOSWAP_B_RL = 13535,
+  AMOSWAP_D = 13536,
+  AMOSWAP_D_AQ = 13537,
+  AMOSWAP_D_AQRL = 13538,
+  AMOSWAP_D_RL = 13539,
+  AMOSWAP_H = 13540,
+  AMOSWAP_H_AQ = 13541,
+  AMOSWAP_H_AQRL = 13542,
+  AMOSWAP_H_RL = 13543,
+  AMOSWAP_W = 13544,
+  AMOSWAP_W_AQ = 13545,
+  AMOSWAP_W_AQRL = 13546,
+  AMOSWAP_W_RL = 13547,
+  AMOXOR_B = 13548,
+  AMOXOR_B_AQ = 13549,
+  AMOXOR_B_AQRL = 13550,
+  AMOXOR_B_RL = 13551,
+  AMOXOR_D = 13552,
+  AMOXOR_D_AQ = 13553,
+  AMOXOR_D_AQRL = 13554,
+  AMOXOR_D_RL = 13555,
+  AMOXOR_H = 13556,
+  AMOXOR_H_AQ = 13557,
+  AMOXOR_H_AQRL = 13558,
+  AMOXOR_H_RL = 13559,
+  AMOXOR_W = 13560,
+  AMOXOR_W_AQ = 13561,
+  AMOXOR_W_AQRL = 13562,
+  AMOXOR_W_RL = 13563,
+  AND = 13564,
+  ANDI = 13565,
+  ANDN = 13566,
+  ASUB = 13567,
+  ASUBU = 13568,
+  AUIPC = 13569,
+  BCLR = 13570,
+  BCLRI = 13571,
+  BEQ = 13572,
+  BEQI = 13573,
+  BEXT = 13574,
+  BEXTI = 13575,
+  BGE = 13576,
+  BGEU = 13577,
+  BINV = 13578,
+  BINVI = 13579,
+  BLT = 13580,
+  BLTU = 13581,
+  BNE = 13582,
+  BNEI = 13583,
+  BREV8 = 13584,
+  BSET = 13585,
+  BSETI = 13586,
+  CBO_CLEAN = 13587,
+  CBO_FLUSH = 13588,
+  CBO_INVAL = 13589,
+  CBO_ZERO = 13590,
+  CLMUL = 13591,
+  CLMULH = 13592,
+  CLMULR = 13593,
+  CLS = 13594,
+  CLSW = 13595,
+  CLZ = 13596,
+  CLZW = 13597,
+  CM_JALT = 13598,
+  CM_JT = 13599,
+  CM_MVA01S = 13600,
+  CM_MVSA01 = 13601,
+  CM_POP = 13602,
+  CM_POPRET = 13603,
+  CM_POPRETZ = 13604,
+  CM_PUSH = 13605,
+  CPOP = 13606,
+  CPOPW = 13607,
+  CSRRC = 13608,
+  CSRRCI = 13609,
+  CSRRS = 13610,
+  CSRRSI = 13611,
+  CSRRW = 13612,
+  CSRRWI = 13613,
+  CTZ = 13614,
+  CTZW = 13615,
+  CV_ABS = 13616,
+  CV_ABS_B = 13617,
+  CV_ABS_H = 13618,
+  CV_ADDN = 13619,
+  CV_ADDNR = 13620,
+  CV_ADDRN = 13621,
+  CV_ADDRNR = 13622,
+  CV_ADDUN = 13623,
+  CV_ADDUNR = 13624,
+  CV_ADDURN = 13625,
+  CV_ADDURNR = 13626,
+  CV_ADD_B = 13627,
+  CV_ADD_DIV2 = 13628,
+  CV_ADD_DIV4 = 13629,
+  CV_ADD_DIV8 = 13630,
+  CV_ADD_H = 13631,
+  CV_ADD_SCI_B = 13632,
+  CV_ADD_SCI_H = 13633,
+  CV_ADD_SC_B = 13634,
+  CV_ADD_SC_H = 13635,
+  CV_AND_B = 13636,
+  CV_AND_H = 13637,
+  CV_AND_SCI_B = 13638,
+  CV_AND_SCI_H = 13639,
+  CV_AND_SC_B = 13640,
+  CV_AND_SC_H = 13641,
+  CV_AVGU_B = 13642,
+  CV_AVGU_H = 13643,
+  CV_AVGU_SCI_B = 13644,
+  CV_AVGU_SCI_H = 13645,
+  CV_AVGU_SC_B = 13646,
+  CV_AVGU_SC_H = 13647,
+  CV_AVG_B = 13648,
+  CV_AVG_H = 13649,
+  CV_AVG_SCI_B = 13650,
+  CV_AVG_SCI_H = 13651,
+  CV_AVG_SC_B = 13652,
+  CV_AVG_SC_H = 13653,
+  CV_BCLR = 13654,
+  CV_BCLRR = 13655,
+  CV_BEQIMM = 13656,
+  CV_BITREV = 13657,
+  CV_BNEIMM = 13658,
+  CV_BSET = 13659,
+  CV_BSETR = 13660,
+  CV_CLB = 13661,
+  CV_CLIP = 13662,
+  CV_CLIPR = 13663,
+  CV_CLIPU = 13664,
+  CV_CLIPUR = 13665,
+  CV_CMPEQ_B = 13666,
+  CV_CMPEQ_H = 13667,
+  CV_CMPEQ_SCI_B = 13668,
+  CV_CMPEQ_SCI_H = 13669,
+  CV_CMPEQ_SC_B = 13670,
+  CV_CMPEQ_SC_H = 13671,
+  CV_CMPGEU_B = 13672,
+  CV_CMPGEU_H = 13673,
+  CV_CMPGEU_SCI_B = 13674,
+  CV_CMPGEU_SCI_H = 13675,
+  CV_CMPGEU_SC_B = 13676,
+  CV_CMPGEU_SC_H = 13677,
+  CV_CMPGE_B = 13678,
+  CV_CMPGE_H = 13679,
+  CV_CMPGE_SCI_B = 13680,
+  CV_CMPGE_SCI_H = 13681,
+  CV_CMPGE_SC_B = 13682,
+  CV_CMPGE_SC_H = 13683,
+  CV_CMPGTU_B = 13684,
+  CV_CMPGTU_H = 13685,
+  CV_CMPGTU_SCI_B = 13686,
+  CV_CMPGTU_SCI_H = 13687,
+  CV_CMPGTU_SC_B = 13688,
+  CV_CMPGTU_SC_H = 13689,
+  CV_CMPGT_B = 13690,
+  CV_CMPGT_H = 13691,
+  CV_CMPGT_SCI_B = 13692,
+  CV_CMPGT_SCI_H = 13693,
+  CV_CMPGT_SC_B = 13694,
+  CV_CMPGT_SC_H = 13695,
+  CV_CMPLEU_B = 13696,
+  CV_CMPLEU_H = 13697,
+  CV_CMPLEU_SCI_B = 13698,
+  CV_CMPLEU_SCI_H = 13699,
+  CV_CMPLEU_SC_B = 13700,
+  CV_CMPLEU_SC_H = 13701,
+  CV_CMPLE_B = 13702,
+  CV_CMPLE_H = 13703,
+  CV_CMPLE_SCI_B = 13704,
+  CV_CMPLE_SCI_H = 13705,
+  CV_CMPLE_SC_B = 13706,
+  CV_CMPLE_SC_H = 13707,
+  CV_CMPLTU_B = 13708,
+  CV_CMPLTU_H = 13709,
+  CV_CMPLTU_SCI_B = 13710,
+  CV_CMPLTU_SCI_H = 13711,
+  CV_CMPLTU_SC_B = 13712,
+  CV_CMPLTU_SC_H = 13713,
+  CV_CMPLT_B = 13714,
+  CV_CMPLT_H = 13715,
+  CV_CMPLT_SCI_B = 13716,
+  CV_CMPLT_SCI_H = 13717,
+  CV_CMPLT_SC_B = 13718,
+  CV_CMPLT_SC_H = 13719,
+  CV_CMPNE_B = 13720,
+  CV_CMPNE_H = 13721,
+  CV_CMPNE_SCI_B = 13722,
+  CV_CMPNE_SCI_H = 13723,
+  CV_CMPNE_SC_B = 13724,
+  CV_CMPNE_SC_H = 13725,
+  CV_CNT = 13726,
+  CV_CPLXCONJ = 13727,
+  CV_CPLXMUL_I = 13728,
+  CV_CPLXMUL_I_DIV2 = 13729,
+  CV_CPLXMUL_I_DIV4 = 13730,
+  CV_CPLXMUL_I_DIV8 = 13731,
+  CV_CPLXMUL_R = 13732,
+  CV_CPLXMUL_R_DIV2 = 13733,
+  CV_CPLXMUL_R_DIV4 = 13734,
+  CV_CPLXMUL_R_DIV8 = 13735,
+  CV_DOTSP_B = 13736,
+  CV_DOTSP_H = 13737,
+  CV_DOTSP_SCI_B = 13738,
+  CV_DOTSP_SCI_H = 13739,
+  CV_DOTSP_SC_B = 13740,
+  CV_DOTSP_SC_H = 13741,
+  CV_DOTUP_B = 13742,
+  CV_DOTUP_H = 13743,
+  CV_DOTUP_SCI_B = 13744,
+  CV_DOTUP_SCI_H = 13745,
+  CV_DOTUP_SC_B = 13746,
+  CV_DOTUP_SC_H = 13747,
+  CV_DOTUSP_B = 13748,
+  CV_DOTUSP_H = 13749,
+  CV_DOTUSP_SCI_B = 13750,
+  CV_DOTUSP_SCI_H = 13751,
+  CV_DOTUSP_SC_B = 13752,
+  CV_DOTUSP_SC_H = 13753,
+  CV_ELW = 13754,
+  CV_EXTBS = 13755,
+  CV_EXTBZ = 13756,
+  CV_EXTHS = 13757,
+  CV_EXTHZ = 13758,
+  CV_EXTRACT = 13759,
+  CV_EXTRACTR = 13760,
+  CV_EXTRACTU = 13761,
+  CV_EXTRACTUR = 13762,
+  CV_EXTRACTU_B = 13763,
+  CV_EXTRACTU_H = 13764,
+  CV_EXTRACT_B = 13765,
+  CV_EXTRACT_H = 13766,
+  CV_FF1 = 13767,
+  CV_FL1 = 13768,
+  CV_INSERT = 13769,
+  CV_INSERTR = 13770,
+  CV_INSERT_B = 13771,
+  CV_INSERT_H = 13772,
+  CV_LBU_ri_inc = 13773,
+  CV_LBU_rr = 13774,
+  CV_LBU_rr_inc = 13775,
+  CV_LB_ri_inc = 13776,
+  CV_LB_rr = 13777,
+  CV_LB_rr_inc = 13778,
+  CV_LHU_ri_inc = 13779,
+  CV_LHU_rr = 13780,
+  CV_LHU_rr_inc = 13781,
+  CV_LH_ri_inc = 13782,
+  CV_LH_rr = 13783,
+  CV_LH_rr_inc = 13784,
+  CV_LW_ri_inc = 13785,
+  CV_LW_rr = 13786,
+  CV_LW_rr_inc = 13787,
+  CV_MAC = 13788,
+  CV_MACHHSN = 13789,
+  CV_MACHHSRN = 13790,
+  CV_MACHHUN = 13791,
+  CV_MACHHURN = 13792,
+  CV_MACSN = 13793,
+  CV_MACSRN = 13794,
+  CV_MACUN = 13795,
+  CV_MACURN = 13796,
+  CV_MAX = 13797,
+  CV_MAXU = 13798,
+  CV_MAXU_B = 13799,
+  CV_MAXU_H = 13800,
+  CV_MAXU_SCI_B = 13801,
+  CV_MAXU_SCI_H = 13802,
+  CV_MAXU_SC_B = 13803,
+  CV_MAXU_SC_H = 13804,
+  CV_MAX_B = 13805,
+  CV_MAX_H = 13806,
+  CV_MAX_SCI_B = 13807,
+  CV_MAX_SCI_H = 13808,
+  CV_MAX_SC_B = 13809,
+  CV_MAX_SC_H = 13810,
+  CV_MIN = 13811,
+  CV_MINU = 13812,
+  CV_MINU_B = 13813,
+  CV_MINU_H = 13814,
+  CV_MINU_SCI_B = 13815,
+  CV_MINU_SCI_H = 13816,
+  CV_MINU_SC_B = 13817,
+  CV_MINU_SC_H = 13818,
+  CV_MIN_B = 13819,
+  CV_MIN_H = 13820,
+  CV_MIN_SCI_B = 13821,
+  CV_MIN_SCI_H = 13822,
+  CV_MIN_SC_B = 13823,
+  CV_MIN_SC_H = 13824,
+  CV_MSU = 13825,
+  CV_MULHHSN = 13826,
+  CV_MULHHSRN = 13827,
+  CV_MULHHUN = 13828,
+  CV_MULHHURN = 13829,
+  CV_MULSN = 13830,
+  CV_MULSRN = 13831,
+  CV_MULUN = 13832,
+  CV_MULURN = 13833,
+  CV_OR_B = 13834,
+  CV_OR_H = 13835,
+  CV_OR_SCI_B = 13836,
+  CV_OR_SCI_H = 13837,
+  CV_OR_SC_B = 13838,
+  CV_OR_SC_H = 13839,
+  CV_PACK = 13840,
+  CV_PACKHI_B = 13841,
+  CV_PACKLO_B = 13842,
+  CV_PACK_H = 13843,
+  CV_ROR = 13844,
+  CV_SB_ri_inc = 13845,
+  CV_SB_rr = 13846,
+  CV_SB_rr_inc = 13847,
+  CV_SDOTSP_B = 13848,
+  CV_SDOTSP_H = 13849,
+  CV_SDOTSP_SCI_B = 13850,
+  CV_SDOTSP_SCI_H = 13851,
+  CV_SDOTSP_SC_B = 13852,
+  CV_SDOTSP_SC_H = 13853,
+  CV_SDOTUP_B = 13854,
+  CV_SDOTUP_H = 13855,
+  CV_SDOTUP_SCI_B = 13856,
+  CV_SDOTUP_SCI_H = 13857,
+  CV_SDOTUP_SC_B = 13858,
+  CV_SDOTUP_SC_H = 13859,
+  CV_SDOTUSP_B = 13860,
+  CV_SDOTUSP_H = 13861,
+  CV_SDOTUSP_SCI_B = 13862,
+  CV_SDOTUSP_SCI_H = 13863,
+  CV_SDOTUSP_SC_B = 13864,
+  CV_SDOTUSP_SC_H = 13865,
+  CV_SHUFFLE2_B = 13866,
+  CV_SHUFFLE2_H = 13867,
+  CV_SHUFFLEI0_SCI_B = 13868,
+  CV_SHUFFLEI1_SCI_B = 13869,
+  CV_SHUFFLEI2_SCI_B = 13870,
+  CV_SHUFFLEI3_SCI_B = 13871,
+  CV_SHUFFLE_B = 13872,
+  CV_SHUFFLE_H = 13873,
+  CV_SHUFFLE_SCI_H = 13874,
+  CV_SH_ri_inc = 13875,
+  CV_SH_rr = 13876,
+  CV_SH_rr_inc = 13877,
+  CV_SLE = 13878,
+  CV_SLEU = 13879,
+  CV_SLL_B = 13880,
+  CV_SLL_H = 13881,
+  CV_SLL_SCI_B = 13882,
+  CV_SLL_SCI_H = 13883,
+  CV_SLL_SC_B = 13884,
+  CV_SLL_SC_H = 13885,
+  CV_SRA_B = 13886,
+  CV_SRA_H = 13887,
+  CV_SRA_SCI_B = 13888,
+  CV_SRA_SCI_H = 13889,
+  CV_SRA_SC_B = 13890,
+  CV_SRA_SC_H = 13891,
+  CV_SRL_B = 13892,
+  CV_SRL_H = 13893,
+  CV_SRL_SCI_B = 13894,
+  CV_SRL_SCI_H = 13895,
+  CV_SRL_SC_B = 13896,
+  CV_SRL_SC_H = 13897,
+  CV_SUBN = 13898,
+  CV_SUBNR = 13899,
+  CV_SUBRN = 13900,
+  CV_SUBRNR = 13901,
+  CV_SUBROTMJ = 13902,
+  CV_SUBROTMJ_DIV2 = 13903,
+  CV_SUBROTMJ_DIV4 = 13904,
+  CV_SUBROTMJ_DIV8 = 13905,
+  CV_SUBUN = 13906,
+  CV_SUBUNR = 13907,
+  CV_SUBURN = 13908,
+  CV_SUBURNR = 13909,
+  CV_SUB_B = 13910,
+  CV_SUB_DIV2 = 13911,
+  CV_SUB_DIV4 = 13912,
+  CV_SUB_DIV8 = 13913,
+  CV_SUB_H = 13914,
+  CV_SUB_SCI_B = 13915,
+  CV_SUB_SCI_H = 13916,
+  CV_SUB_SC_B = 13917,
+  CV_SUB_SC_H = 13918,
+  CV_SW_ri_inc = 13919,
+  CV_SW_rr = 13920,
+  CV_SW_rr_inc = 13921,
+  CV_XOR_B = 13922,
+  CV_XOR_H = 13923,
+  CV_XOR_SCI_B = 13924,
+  CV_XOR_SCI_H = 13925,
+  CV_XOR_SC_B = 13926,
+  CV_XOR_SC_H = 13927,
+  CZERO_EQZ = 13928,
+  CZERO_NEZ = 13929,
+  C_ADD = 13930,
+  C_ADDI = 13931,
+  C_ADDI16SP = 13932,
+  C_ADDI4SPN = 13933,
+  C_ADDIW = 13934,
+  C_ADDW = 13935,
+  C_AND = 13936,
+  C_ANDI = 13937,
+  C_BEQZ = 13938,
+  C_BNEZ = 13939,
+  C_EBREAK = 13940,
+  C_FLD = 13941,
+  C_FLDSP = 13942,
+  C_FLW = 13943,
+  C_FLWSP = 13944,
+  C_FSD = 13945,
+  C_FSDSP = 13946,
+  C_FSW = 13947,
+  C_FSWSP = 13948,
+  C_J = 13949,
+  C_JAL = 13950,
+  C_JALR = 13951,
+  C_JR = 13952,
+  C_LBU = 13953,
+  C_LD = 13954,
+  C_LDSP = 13955,
+  C_LDSP_RV32 = 13956,
+  C_LD_RV32 = 13957,
+  C_LH = 13958,
+  C_LHU = 13959,
+  C_LH_INX = 13960,
+  C_LI = 13961,
+  C_LUI = 13962,
+  C_LW = 13963,
+  C_LWSP = 13964,
+  C_LWSP_INX = 13965,
+  C_LW_INX = 13966,
+  C_MOP_1 = 13967,
+  C_MOP_11 = 13968,
+  C_MOP_13 = 13969,
+  C_MOP_15 = 13970,
+  C_MOP_3 = 13971,
+  C_MOP_5 = 13972,
+  C_MOP_7 = 13973,
+  C_MOP_9 = 13974,
+  C_MUL = 13975,
+  C_MV = 13976,
+  C_NOP = 13977,
+  C_NOP_HINT = 13978,
+  C_NOT = 13979,
+  C_OR = 13980,
+  C_SB = 13981,
+  C_SD = 13982,
+  C_SDSP = 13983,
+  C_SDSP_RV32 = 13984,
+  C_SD_RV32 = 13985,
+  C_SEXT_B = 13986,
+  C_SEXT_H = 13987,
+  C_SH = 13988,
+  C_SH_INX = 13989,
+  C_SLLI = 13990,
+  C_SRAI = 13991,
+  C_SRLI = 13992,
+  C_SSPOPCHK = 13993,
+  C_SSPUSH = 13994,
+  C_SUB = 13995,
+  C_SUBW = 13996,
+  C_SW = 13997,
+  C_SWSP = 13998,
+  C_SWSP_INX = 13999,
+  C_SW_INX = 14000,
+  C_UNIMP = 14001,
+  C_XOR = 14002,
+  C_ZEXT_B = 14003,
+  C_ZEXT_H = 14004,
+  C_ZEXT_W = 14005,
+  DIV = 14006,
+  DIVU = 14007,
+  DIVUW = 14008,
+  DIVW = 14009,
+  DRET = 14010,
+  EBREAK = 14011,
+  ECALL = 14012,
+  FADD_D = 14013,
+  FADD_D_IN32X = 14014,
+  FADD_D_INX = 14015,
+  FADD_H = 14016,
+  FADD_H_INX = 14017,
+  FADD_Q = 14018,
+  FADD_S = 14019,
+  FADD_S_INX = 14020,
+  FCLASS_D = 14021,
+  FCLASS_D_IN32X = 14022,
+  FCLASS_D_INX = 14023,
+  FCLASS_H = 14024,
+  FCLASS_H_INX = 14025,
+  FCLASS_Q = 14026,
+  FCLASS_S = 14027,
+  FCLASS_S_INX = 14028,
+  FCVTMOD_W_D = 14029,
+  FCVT_BF16_S = 14030,
+  FCVT_D_H = 14031,
+  FCVT_D_H_IN32X = 14032,
+  FCVT_D_H_INX = 14033,
+  FCVT_D_L = 14034,
+  FCVT_D_LU = 14035,
+  FCVT_D_LU_INX = 14036,
+  FCVT_D_L_INX = 14037,
+  FCVT_D_Q = 14038,
+  FCVT_D_S = 14039,
+  FCVT_D_S_IN32X = 14040,
+  FCVT_D_S_INX = 14041,
+  FCVT_D_W = 14042,
+  FCVT_D_WU = 14043,
+  FCVT_D_WU_IN32X = 14044,
+  FCVT_D_WU_INX = 14045,
+  FCVT_D_W_IN32X = 14046,
+  FCVT_D_W_INX = 14047,
+  FCVT_H_D = 14048,
+  FCVT_H_D_IN32X = 14049,
+  FCVT_H_D_INX = 14050,
+  FCVT_H_L = 14051,
+  FCVT_H_LU = 14052,
+  FCVT_H_LU_INX = 14053,
+  FCVT_H_L_INX = 14054,
+  FCVT_H_S = 14055,
+  FCVT_H_S_INX = 14056,
+  FCVT_H_W = 14057,
+  FCVT_H_WU = 14058,
+  FCVT_H_WU_INX = 14059,
+  FCVT_H_W_INX = 14060,
+  FCVT_LU_D = 14061,
+  FCVT_LU_D_INX = 14062,
+  FCVT_LU_H = 14063,
+  FCVT_LU_H_INX = 14064,
+  FCVT_LU_Q = 14065,
+  FCVT_LU_S = 14066,
+  FCVT_LU_S_INX = 14067,
+  FCVT_L_D = 14068,
+  FCVT_L_D_INX = 14069,
+  FCVT_L_H = 14070,
+  FCVT_L_H_INX = 14071,
+  FCVT_L_Q = 14072,
+  FCVT_L_S = 14073,
+  FCVT_L_S_INX = 14074,
+  FCVT_Q_D = 14075,
+  FCVT_Q_L = 14076,
+  FCVT_Q_LU = 14077,
+  FCVT_Q_S = 14078,
+  FCVT_Q_W = 14079,
+  FCVT_Q_WU = 14080,
+  FCVT_S_BF16 = 14081,
+  FCVT_S_D = 14082,
+  FCVT_S_D_IN32X = 14083,
+  FCVT_S_D_INX = 14084,
+  FCVT_S_H = 14085,
+  FCVT_S_H_INX = 14086,
+  FCVT_S_L = 14087,
+  FCVT_S_LU = 14088,
+  FCVT_S_LU_INX = 14089,
+  FCVT_S_L_INX = 14090,
+  FCVT_S_Q = 14091,
+  FCVT_S_W = 14092,
+  FCVT_S_WU = 14093,
+  FCVT_S_WU_INX = 14094,
+  FCVT_S_W_INX = 14095,
+  FCVT_WU_D = 14096,
+  FCVT_WU_D_IN32X = 14097,
+  FCVT_WU_D_INX = 14098,
+  FCVT_WU_H = 14099,
+  FCVT_WU_H_INX = 14100,
+  FCVT_WU_Q = 14101,
+  FCVT_WU_S = 14102,
+  FCVT_WU_S_INX = 14103,
+  FCVT_W_D = 14104,
+  FCVT_W_D_IN32X = 14105,
+  FCVT_W_D_INX = 14106,
+  FCVT_W_H = 14107,
+  FCVT_W_H_INX = 14108,
+  FCVT_W_Q = 14109,
+  FCVT_W_S = 14110,
+  FCVT_W_S_INX = 14111,
+  FDIV_D = 14112,
+  FDIV_D_IN32X = 14113,
+  FDIV_D_INX = 14114,
+  FDIV_H = 14115,
+  FDIV_H_INX = 14116,
+  FDIV_Q = 14117,
+  FDIV_S = 14118,
+  FDIV_S_INX = 14119,
+  FENCE = 14120,
+  FENCE_I = 14121,
+  FENCE_TSO = 14122,
+  FEQ_D = 14123,
+  FEQ_D_IN32X = 14124,
+  FEQ_D_INX = 14125,
+  FEQ_H = 14126,
+  FEQ_H_INX = 14127,
+  FEQ_Q = 14128,
+  FEQ_S = 14129,
+  FEQ_S_INX = 14130,
+  FLD = 14131,
+  FLEQ_D = 14132,
+  FLEQ_H = 14133,
+  FLEQ_Q = 14134,
+  FLEQ_S = 14135,
+  FLE_D = 14136,
+  FLE_D_IN32X = 14137,
+  FLE_D_INX = 14138,
+  FLE_H = 14139,
+  FLE_H_INX = 14140,
+  FLE_Q = 14141,
+  FLE_S = 14142,
+  FLE_S_INX = 14143,
+  FLH = 14144,
+  FLI_D = 14145,
+  FLI_H = 14146,
+  FLI_Q = 14147,
+  FLI_S = 14148,
+  FLQ = 14149,
+  FLTQ_D = 14150,
+  FLTQ_H = 14151,
+  FLTQ_Q = 14152,
+  FLTQ_S = 14153,
+  FLT_D = 14154,
+  FLT_D_IN32X = 14155,
+  FLT_D_INX = 14156,
+  FLT_H = 14157,
+  FLT_H_INX = 14158,
+  FLT_Q = 14159,
+  FLT_S = 14160,
+  FLT_S_INX = 14161,
+  FLW = 14162,
+  FMADD_D = 14163,
+  FMADD_D_IN32X = 14164,
+  FMADD_D_INX = 14165,
+  FMADD_H = 14166,
+  FMADD_H_INX = 14167,
+  FMADD_Q = 14168,
+  FMADD_S = 14169,
+  FMADD_S_INX = 14170,
+  FMAXM_D = 14171,
+  FMAXM_H = 14172,
+  FMAXM_Q = 14173,
+  FMAXM_S = 14174,
+  FMAX_D = 14175,
+  FMAX_D_IN32X = 14176,
+  FMAX_D_INX = 14177,
+  FMAX_H = 14178,
+  FMAX_H_INX = 14179,
+  FMAX_Q = 14180,
+  FMAX_S = 14181,
+  FMAX_S_INX = 14182,
+  FMINM_D = 14183,
+  FMINM_H = 14184,
+  FMINM_Q = 14185,
+  FMINM_S = 14186,
+  FMIN_D = 14187,
+  FMIN_D_IN32X = 14188,
+  FMIN_D_INX = 14189,
+  FMIN_H = 14190,
+  FMIN_H_INX = 14191,
+  FMIN_Q = 14192,
+  FMIN_S = 14193,
+  FMIN_S_INX = 14194,
+  FMSUB_D = 14195,
+  FMSUB_D_IN32X = 14196,
+  FMSUB_D_INX = 14197,
+  FMSUB_H = 14198,
+  FMSUB_H_INX = 14199,
+  FMSUB_Q = 14200,
+  FMSUB_S = 14201,
+  FMSUB_S_INX = 14202,
+  FMUL_D = 14203,
+  FMUL_D_IN32X = 14204,
+  FMUL_D_INX = 14205,
+  FMUL_H = 14206,
+  FMUL_H_INX = 14207,
+  FMUL_Q = 14208,
+  FMUL_S = 14209,
+  FMUL_S_INX = 14210,
+  FMVH_X_D = 14211,
+  FMVH_X_Q = 14212,
+  FMVP_D_X = 14213,
+  FMVP_Q_X = 14214,
+  FMV_D_X = 14215,
+  FMV_H_X = 14216,
+  FMV_W_X = 14217,
+  FMV_X_D = 14218,
+  FMV_X_H = 14219,
+  FMV_X_W = 14220,
+  FMV_X_W_FPR64 = 14221,
+  FNMADD_D = 14222,
+  FNMADD_D_IN32X = 14223,
+  FNMADD_D_INX = 14224,
+  FNMADD_H = 14225,
+  FNMADD_H_INX = 14226,
+  FNMADD_Q = 14227,
+  FNMADD_S = 14228,
+  FNMADD_S_INX = 14229,
+  FNMSUB_D = 14230,
+  FNMSUB_D_IN32X = 14231,
+  FNMSUB_D_INX = 14232,
+  FNMSUB_H = 14233,
+  FNMSUB_H_INX = 14234,
+  FNMSUB_Q = 14235,
+  FNMSUB_S = 14236,
+  FNMSUB_S_INX = 14237,
+  FROUNDNX_D = 14238,
+  FROUNDNX_H = 14239,
+  FROUNDNX_Q = 14240,
+  FROUNDNX_S = 14241,
+  FROUND_D = 14242,
+  FROUND_H = 14243,
+  FROUND_Q = 14244,
+  FROUND_S = 14245,
+  FSD = 14246,
+  FSGNJN_D = 14247,
+  FSGNJN_D_IN32X = 14248,
+  FSGNJN_D_INX = 14249,
+  FSGNJN_H = 14250,
+  FSGNJN_H_INX = 14251,
+  FSGNJN_Q = 14252,
+  FSGNJN_S = 14253,
+  FSGNJN_S_INX = 14254,
+  FSGNJX_D = 14255,
+  FSGNJX_D_IN32X = 14256,
+  FSGNJX_D_INX = 14257,
+  FSGNJX_H = 14258,
+  FSGNJX_H_INX = 14259,
+  FSGNJX_Q = 14260,
+  FSGNJX_S = 14261,
+  FSGNJX_S_INX = 14262,
+  FSGNJ_D = 14263,
+  FSGNJ_D_IN32X = 14264,
+  FSGNJ_D_INX = 14265,
+  FSGNJ_H = 14266,
+  FSGNJ_H_INX = 14267,
+  FSGNJ_Q = 14268,
+  FSGNJ_S = 14269,
+  FSGNJ_S_INX = 14270,
+  FSH = 14271,
+  FSQ = 14272,
+  FSQRT_D = 14273,
+  FSQRT_D_IN32X = 14274,
+  FSQRT_D_INX = 14275,
+  FSQRT_H = 14276,
+  FSQRT_H_INX = 14277,
+  FSQRT_Q = 14278,
+  FSQRT_S = 14279,
+  FSQRT_S_INX = 14280,
+  FSUB_D = 14281,
+  FSUB_D_IN32X = 14282,
+  FSUB_D_INX = 14283,
+  FSUB_H = 14284,
+  FSUB_H_INX = 14285,
+  FSUB_Q = 14286,
+  FSUB_S = 14287,
+  FSUB_S_INX = 14288,
+  FSW = 14289,
+  HFENCE_GVMA = 14290,
+  HFENCE_VVMA = 14291,
+  HINVAL_GVMA = 14292,
+  HINVAL_VVMA = 14293,
+  HLVX_HU = 14294,
+  HLVX_WU = 14295,
+  HLV_B = 14296,
+  HLV_BU = 14297,
+  HLV_D = 14298,
+  HLV_H = 14299,
+  HLV_HU = 14300,
+  HLV_W = 14301,
+  HLV_WU = 14302,
+  HSV_B = 14303,
+  HSV_D = 14304,
+  HSV_H = 14305,
+  HSV_W = 14306,
+  Insn16 = 14307,
+  Insn32 = 14308,
+  Insn48 = 14309,
+  Insn64 = 14310,
+  InsnB = 14311,
+  InsnCA = 14312,
+  InsnCB = 14313,
+  InsnCI = 14314,
+  InsnCIW = 14315,
+  InsnCJ = 14316,
+  InsnCL = 14317,
+  InsnCR = 14318,
+  InsnCS = 14319,
+  InsnCSS = 14320,
+  InsnI = 14321,
+  InsnI_Mem = 14322,
+  InsnJ = 14323,
+  InsnQC_EAI = 14324,
+  InsnQC_EB = 14325,
+  InsnQC_EI = 14326,
+  InsnQC_EI_Mem = 14327,
+  InsnQC_EJ = 14328,
+  InsnQC_ES = 14329,
+  InsnR = 14330,
+  InsnR4 = 14331,
+  InsnS = 14332,
+  InsnU = 14333,
+  JAL = 14334,
+  JALR = 14335,
+  LB = 14336,
+  LBU = 14337,
+  LB_AQ = 14338,
+  LB_AQRL = 14339,
+  LD = 14340,
+  LD_AQ = 14341,
+  LD_AQRL = 14342,
+  LD_RV32 = 14343,
+  LH = 14344,
+  LHU = 14345,
+  LH_AQ = 14346,
+  LH_AQRL = 14347,
+  LH_INX = 14348,
+  LR_D = 14349,
+  LR_D_AQ = 14350,
+  LR_D_AQRL = 14351,
+  LR_D_RL = 14352,
+  LR_W = 14353,
+  LR_W_AQ = 14354,
+  LR_W_AQRL = 14355,
+  LR_W_RL = 14356,
+  LUI = 14357,
+  LW = 14358,
+  LWU = 14359,
+  LW_AQ = 14360,
+  LW_AQRL = 14361,
+  LW_INX = 14362,
+  MACCSU_H00 = 14363,
+  MACCSU_H11 = 14364,
+  MACCSU_W00 = 14365,
+  MACCSU_W11 = 14366,
+  MACCU_H00 = 14367,
+  MACCU_H01 = 14368,
+  MACCU_H11 = 14369,
+  MACCU_W00 = 14370,
+  MACCU_W01 = 14371,
+  MACCU_W11 = 14372,
+  MACC_H00 = 14373,
+  MACC_H01 = 14374,
+  MACC_H11 = 14375,
+  MACC_W00 = 14376,
+  MACC_W01 = 14377,
+  MACC_W11 = 14378,
+  MAX = 14379,
+  MAXU = 14380,
+  MERGE = 14381,
+  MHACC = 14382,
+  MHACCSU = 14383,
+  MHACCSU_H0 = 14384,
+  MHACCSU_H1 = 14385,
+  MHACCU = 14386,
+  MHACC_H0 = 14387,
+  MHACC_H1 = 14388,
+  MHRACC = 14389,
+  MHRACCSU = 14390,
+  MHRACCU = 14391,
+  MIN = 14392,
+  MINU = 14393,
+  MIPS_CCMOV = 14394,
+  MIPS_EHB = 14395,
+  MIPS_IHB = 14396,
+  MIPS_LDP = 14397,
+  MIPS_LWP = 14398,
+  MIPS_PAUSE = 14399,
+  MIPS_PREF = 14400,
+  MIPS_SDP = 14401,
+  MIPS_SWP = 14402,
+  MNRET = 14403,
+  MOP_RR_0 = 14404,
+  MOP_RR_1 = 14405,
+  MOP_RR_2 = 14406,
+  MOP_RR_3 = 14407,
+  MOP_RR_4 = 14408,
+  MOP_RR_5 = 14409,
+  MOP_RR_6 = 14410,
+  MOP_RR_7 = 14411,
+  MOP_R_0 = 14412,
+  MOP_R_1 = 14413,
+  MOP_R_10 = 14414,
+  MOP_R_11 = 14415,
+  MOP_R_12 = 14416,
+  MOP_R_13 = 14417,
+  MOP_R_14 = 14418,
+  MOP_R_15 = 14419,
+  MOP_R_16 = 14420,
+  MOP_R_17 = 14421,
+  MOP_R_18 = 14422,
+  MOP_R_19 = 14423,
+  MOP_R_2 = 14424,
+  MOP_R_20 = 14425,
+  MOP_R_21 = 14426,
+  MOP_R_22 = 14427,
+  MOP_R_23 = 14428,
+  MOP_R_24 = 14429,
+  MOP_R_25 = 14430,
+  MOP_R_26 = 14431,
+  MOP_R_27 = 14432,
+  MOP_R_28 = 14433,
+  MOP_R_29 = 14434,
+  MOP_R_3 = 14435,
+  MOP_R_30 = 14436,
+  MOP_R_31 = 14437,
+  MOP_R_4 = 14438,
+  MOP_R_5 = 14439,
+  MOP_R_6 = 14440,
+  MOP_R_7 = 14441,
+  MOP_R_8 = 14442,
+  MOP_R_9 = 14443,
+  MQACC_H00 = 14444,
+  MQACC_H01 = 14445,
+  MQACC_H11 = 14446,
+  MQACC_W00 = 14447,
+  MQACC_W01 = 14448,
+  MQACC_W11 = 14449,
+  MQRACC_H00 = 14450,
+  MQRACC_H01 = 14451,
+  MQRACC_H11 = 14452,
+  MQRACC_W00 = 14453,
+  MQRACC_W01 = 14454,
+  MQRACC_W11 = 14455,
+  MRET = 14456,
+  MSEQ = 14457,
+  MSLT = 14458,
+  MSLTU = 14459,
+  MUL = 14460,
+  MULH = 14461,
+  MULHR = 14462,
+  MULHRSU = 14463,
+  MULHRU = 14464,
+  MULHSU = 14465,
+  MULHSU_H0 = 14466,
+  MULHSU_H1 = 14467,
+  MULHU = 14468,
+  MULH_H0 = 14469,
+  MULH_H1 = 14470,
+  MULQ = 14471,
+  MULQR = 14472,
+  MULSU_H00 = 14473,
+  MULSU_H11 = 14474,
+  MULSU_W00 = 14475,
+  MULSU_W11 = 14476,
+  MULU_H00 = 14477,
+  MULU_H01 = 14478,
+  MULU_H11 = 14479,
+  MULU_W00 = 14480,
+  MULU_W01 = 14481,
+  MULU_W11 = 14482,
+  MULW = 14483,
+  MUL_H00 = 14484,
+  MUL_H01 = 14485,
+  MUL_H11 = 14486,
+  MUL_W00 = 14487,
+  MUL_W01 = 14488,
+  MUL_W11 = 14489,
+  MVM = 14490,
+  MVMN = 14491,
+  NCLIP = 14492,
+  NCLIPI = 14493,
+  NCLIPIU = 14494,
+  NCLIPR = 14495,
+  NCLIPRI = 14496,
+  NCLIPRIU = 14497,
+  NCLIPRU = 14498,
+  NCLIPU = 14499,
+  NDS_ADDIGP = 14500,
+  NDS_BBC = 14501,
+  NDS_BBS = 14502,
+  NDS_BEQC = 14503,
+  NDS_BFOS = 14504,
+  NDS_BFOZ = 14505,
+  NDS_BNEC = 14506,
+  NDS_FCVT_BF16_S = 14507,
+  NDS_FCVT_S_BF16 = 14508,
+  NDS_FFB = 14509,
+  NDS_FFMISM = 14510,
+  NDS_FFZMISM = 14511,
+  NDS_FLMISM = 14512,
+  NDS_FMV_BF16_X = 14513,
+  NDS_FMV_X_BF16 = 14514,
+  NDS_LBGP = 14515,
+  NDS_LBUGP = 14516,
+  NDS_LDGP = 14517,
+  NDS_LEA_B_ZE = 14518,
+  NDS_LEA_D = 14519,
+  NDS_LEA_D_ZE = 14520,
+  NDS_LEA_H = 14521,
+  NDS_LEA_H_ZE = 14522,
+  NDS_LEA_W = 14523,
+  NDS_LEA_W_ZE = 14524,
+  NDS_LHGP = 14525,
+  NDS_LHUGP = 14526,
+  NDS_LWGP = 14527,
+  NDS_LWUGP = 14528,
+  NDS_SBGP = 14529,
+  NDS_SDGP = 14530,
+  NDS_SHGP = 14531,
+  NDS_SWGP = 14532,
+  NDS_VD4DOTSU_VV = 14533,
+  NDS_VD4DOTS_VV = 14534,
+  NDS_VD4DOTU_VV = 14535,
+  NDS_VFNCVT_BF16_S = 14536,
+  NDS_VFPMADB_VF = 14537,
+  NDS_VFPMADT_VF = 14538,
+  NDS_VFWCVT_F_B = 14539,
+  NDS_VFWCVT_F_BU = 14540,
+  NDS_VFWCVT_F_N = 14541,
+  NDS_VFWCVT_F_NU = 14542,
+  NDS_VFWCVT_S_BF16 = 14543,
+  NDS_VLE4_V = 14544,
+  NDS_VLN8_V = 14545,
+  NDS_VLNU8_V = 14546,
+  NSARI = 14547,
+  NSRA = 14548,
+  NSRAI = 14549,
+  NSRAR = 14550,
+  NSRL = 14551,
+  NSRLI = 14552,
+  OR = 14553,
+  ORC_B = 14554,
+  ORI = 14555,
+  ORN = 14556,
+  PAADDU_B = 14557,
+  PAADDU_DB = 14558,
+  PAADDU_DH = 14559,
+  PAADDU_DW = 14560,
+  PAADDU_H = 14561,
+  PAADDU_W = 14562,
+  PAADD_B = 14563,
+  PAADD_DB = 14564,
+  PAADD_DH = 14565,
+  PAADD_DW = 14566,
+  PAADD_H = 14567,
+  PAADD_W = 14568,
+  PAAS_HX = 14569,
+  PAAS_WX = 14570,
+  PAAX_DHX = 14571,
+  PABDSUMAU_B = 14572,
+  PABDSUMU_B = 14573,
+  PABDU_B = 14574,
+  PABDU_DB = 14575,
+  PABDU_DH = 14576,
+  PABDU_H = 14577,
+  PABD_B = 14578,
+  PABD_DB = 14579,
+  PABD_DH = 14580,
+  PABD_H = 14581,
+  PACK = 14582,
+  PACKH = 14583,
+  PACKW = 14584,
+  PADD_B = 14585,
+  PADD_BS = 14586,
+  PADD_DB = 14587,
+  PADD_DBS = 14588,
+  PADD_DH = 14589,
+  PADD_DHS = 14590,
+  PADD_DW = 14591,
+  PADD_DWS = 14592,
+  PADD_H = 14593,
+  PADD_HS = 14594,
+  PADD_W = 14595,
+  PADD_WS = 14596,
+  PASA_DHX = 14597,
+  PASA_HX = 14598,
+  PASA_WX = 14599,
+  PASUBU_B = 14600,
+  PASUBU_DB = 14601,
+  PASUBU_DH = 14602,
+  PASUBU_DW = 14603,
+  PASUBU_H = 14604,
+  PASUBU_W = 14605,
+  PASUB_B = 14606,
+  PASUB_DB = 14607,
+  PASUB_DH = 14608,
+  PASUB_DW = 14609,
+  PASUB_H = 14610,
+  PASUB_W = 14611,
+  PAS_DHX = 14612,
+  PAS_HX = 14613,
+  PAS_WX = 14614,
+  PLI_B = 14615,
+  PLI_DB = 14616,
+  PLI_DH = 14617,
+  PLI_H = 14618,
+  PLI_W = 14619,
+  PLUI_DH = 14620,
+  PLUI_H = 14621,
+  PLUI_W = 14622,
+  PM2ADDASU_H = 14623,
+  PM2ADDASU_W = 14624,
+  PM2ADDAU_H = 14625,
+  PM2ADDAU_W = 14626,
+  PM2ADDA_H = 14627,
+  PM2ADDA_HX = 14628,
+  PM2ADDA_W = 14629,
+  PM2ADDA_WX = 14630,
+  PM2ADDSU_H = 14631,
+  PM2ADDSU_W = 14632,
+  PM2ADDU_H = 14633,
+  PM2ADDU_W = 14634,
+  PM2ADD_H = 14635,
+  PM2ADD_HX = 14636,
+  PM2ADD_W = 14637,
+  PM2ADD_WX = 14638,
+  PM2SADD_H = 14639,
+  PM2SADD_HX = 14640,
+  PM2SUBA_H = 14641,
+  PM2SUBA_HX = 14642,
+  PM2SUBA_W = 14643,
+  PM2SUBA_WX = 14644,
+  PM2SUB_H = 14645,
+  PM2SUB_HX = 14646,
+  PM2SUB_W = 14647,
+  PM2SUB_WX = 14648,
+  PM2WADDASU_H = 14649,
+  PM2WADDAU_H = 14650,
+  PM2WADDA_H = 14651,
+  PM2WADDA_HX = 14652,
+  PM2WADDSU_H = 14653,
+  PM2WADDU_H = 14654,
+  PM2WADD_H = 14655,
+  PM2WADD_HX = 14656,
+  PM2WSUBA_H = 14657,
+  PM2WSUBA_HX = 14658,
+  PM2WSUB_H = 14659,
+  PM2WSUB_HX = 14660,
+  PM4ADDASU_B = 14661,
+  PM4ADDASU_H = 14662,
+  PM4ADDAU_B = 14663,
+  PM4ADDAU_H = 14664,
+  PM4ADDA_B = 14665,
+  PM4ADDA_H = 14666,
+  PM4ADDSU_B = 14667,
+  PM4ADDSU_H = 14668,
+  PM4ADDU_B = 14669,
+  PM4ADDU_H = 14670,
+  PM4ADD_B = 14671,
+  PM4ADD_H = 14672,
+  PMACCSU_W_H00 = 14673,
+  PMACCSU_W_H11 = 14674,
+  PMACCU_W_H00 = 14675,
+  PMACCU_W_H01 = 14676,
+  PMACCU_W_H11 = 14677,
+  PMACC_W_H00 = 14678,
+  PMACC_W_H01 = 14679,
+  PMACC_W_H11 = 14680,
+  PMAXU_B = 14681,
+  PMAXU_DB = 14682,
+  PMAXU_DH = 14683,
+  PMAXU_DW = 14684,
+  PMAXU_H = 14685,
+  PMAXU_W = 14686,
+  PMAX_B = 14687,
+  PMAX_DB = 14688,
+  PMAX_DH = 14689,
+  PMAX_DW = 14690,
+  PMAX_H = 14691,
+  PMAX_W = 14692,
+  PMHACCSU_H = 14693,
+  PMHACCSU_H_B0 = 14694,
+  PMHACCSU_H_B1 = 14695,
+  PMHACCSU_W = 14696,
+  PMHACCSU_W_H0 = 14697,
+  PMHACCSU_W_H1 = 14698,
+  PMHACCU_H = 14699,
+  PMHACCU_W = 14700,
+  PMHACC_H = 14701,
+  PMHACC_H_B0 = 14702,
+  PMHACC_H_B1 = 14703,
+  PMHACC_W = 14704,
+  PMHACC_W_H0 = 14705,
+  PMHACC_W_H1 = 14706,
+  PMHRACCSU_H = 14707,
+  PMHRACCSU_W = 14708,
+  PMHRACCU_H = 14709,
+  PMHRACCU_W = 14710,
+  PMHRACC_H = 14711,
+  PMHRACC_W = 14712,
+  PMINU_B = 14713,
+  PMINU_DB = 14714,
+  PMINU_DH = 14715,
+  PMINU_DW = 14716,
+  PMINU_H = 14717,
+  PMINU_W = 14718,
+  PMIN_B = 14719,
+  PMIN_DB = 14720,
+  PMIN_DH = 14721,
+  PMIN_DW = 14722,
+  PMIN_H = 14723,
+  PMIN_W = 14724,
+  PMQ2ADDA_H = 14725,
+  PMQ2ADDA_W = 14726,
+  PMQ2ADD_H = 14727,
+  PMQ2ADD_W = 14728,
+  PMQACC_W_H00 = 14729,
+  PMQACC_W_H01 = 14730,
+  PMQACC_W_H11 = 14731,
+  PMQR2ADDA_H = 14732,
+  PMQR2ADDA_W = 14733,
+  PMQR2ADD_H = 14734,
+  PMQR2ADD_W = 14735,
+  PMQRACC_W_H00 = 14736,
+  PMQRACC_W_H01 = 14737,
+  PMQRACC_W_H11 = 14738,
+  PMQRWACC = 14739,
+  PMQRWACC_H = 14740,
+  PMQWACC = 14741,
+  PMQWACC_H = 14742,
+  PMSEQ_B = 14743,
+  PMSEQ_DB = 14744,
+  PMSEQ_DH = 14745,
+  PMSEQ_DW = 14746,
+  PMSEQ_H = 14747,
+  PMSEQ_W = 14748,
+  PMSLTU_B = 14749,
+  PMSLTU_DB = 14750,
+  PMSLTU_DH = 14751,
+  PMSLTU_DW = 14752,
+  PMSLTU_H = 14753,
+  PMSLTU_W = 14754,
+  PMSLT_B = 14755,
+  PMSLT_DB = 14756,
+  PMSLT_DH = 14757,
+  PMSLT_DW = 14758,
+  PMSLT_H = 14759,
+  PMSLT_W = 14760,
+  PMULHRSU_H = 14761,
+  PMULHRSU_W = 14762,
+  PMULHRU_H = 14763,
+  PMULHRU_W = 14764,
+  PMULHR_H = 14765,
+  PMULHR_W = 14766,
+  PMULHSU_H = 14767,
+  PMULHSU_H_B0 = 14768,
+  PMULHSU_H_B1 = 14769,
+  PMULHSU_W = 14770,
+  PMULHSU_W_H0 = 14771,
+  PMULHSU_W_H1 = 14772,
+  PMULHU_H = 14773,
+  PMULHU_W = 14774,
+  PMULH_H = 14775,
+  PMULH_H_B0 = 14776,
+  PMULH_H_B1 = 14777,
+  PMULH_W = 14778,
+  PMULH_W_H0 = 14779,
+  PMULH_W_H1 = 14780,
+  PMULQR_H = 14781,
+  PMULQR_W = 14782,
+  PMULQ_H = 14783,
+  PMULQ_W = 14784,
+  PMULSU_H_B00 = 14785,
+  PMULSU_H_B11 = 14786,
+  PMULSU_W_H00 = 14787,
+  PMULSU_W_H11 = 14788,
+  PMULU_H_B00 = 14789,
+  PMULU_H_B01 = 14790,
+  PMULU_H_B11 = 14791,
+  PMULU_W_H00 = 14792,
+  PMULU_W_H01 = 14793,
+  PMULU_W_H11 = 14794,
+  PMUL_H_B00 = 14795,
+  PMUL_H_B01 = 14796,
+  PMUL_H_B11 = 14797,
+  PMUL_W_H00 = 14798,
+  PMUL_W_H01 = 14799,
+  PMUL_W_H11 = 14800,
+  PNCLIPIU_B = 14801,
+  PNCLIPIU_H = 14802,
+  PNCLIPI_B = 14803,
+  PNCLIPI_H = 14804,
+  PNCLIPRIU_B = 14805,
+  PNCLIPRIU_H = 14806,
+  PNCLIPRI_B = 14807,
+  PNCLIPRI_H = 14808,
+  PNCLIPRU_BS = 14809,
+  PNCLIPRU_HS = 14810,
+  PNCLIPR_BS = 14811,
+  PNCLIPR_HS = 14812,
+  PNCLIPU_BS = 14813,
+  PNCLIPU_HS = 14814,
+  PNCLIP_BS = 14815,
+  PNCLIP_HS = 14816,
+  PNSARI_B = 14817,
+  PNSARI_H = 14818,
+  PNSRAI_B = 14819,
+  PNSRAI_H = 14820,
+  PNSRAR_BS = 14821,
+  PNSRAR_HS = 14822,
+  PNSRA_BS = 14823,
+  PNSRA_HS = 14824,
+  PNSRLI_B = 14825,
+  PNSRLI_H = 14826,
+  PNSRL_BS = 14827,
+  PNSRL_HS = 14828,
+  PPAIREO_B = 14829,
+  PPAIREO_DB = 14830,
+  PPAIREO_DH = 14831,
+  PPAIREO_H = 14832,
+  PPAIREO_W = 14833,
+  PPAIRE_B = 14834,
+  PPAIRE_DB = 14835,
+  PPAIRE_DH = 14836,
+  PPAIRE_H = 14837,
+  PPAIROE_B = 14838,
+  PPAIROE_DB = 14839,
+  PPAIROE_DH = 14840,
+  PPAIROE_H = 14841,
+  PPAIROE_W = 14842,
+  PPAIRO_B = 14843,
+  PPAIRO_DB = 14844,
+  PPAIRO_DH = 14845,
+  PPAIRO_H = 14846,
+  PPAIRO_W = 14847,
+  PREDSUMU_BS = 14848,
+  PREDSUMU_DBS = 14849,
+  PREDSUMU_DHS = 14850,
+  PREDSUMU_HS = 14851,
+  PREDSUMU_WS = 14852,
+  PREDSUM_BS = 14853,
+  PREDSUM_DBS = 14854,
+  PREDSUM_DHS = 14855,
+  PREDSUM_HS = 14856,
+  PREDSUM_WS = 14857,
+  PREFETCH_I = 14858,
+  PREFETCH_R = 14859,
+  PREFETCH_W = 14860,
+  PSABS_B = 14861,
+  PSABS_DB = 14862,
+  PSABS_DH = 14863,
+  PSABS_H = 14864,
+  PSADDU_B = 14865,
+  PSADDU_DB = 14866,
+  PSADDU_DH = 14867,
+  PSADDU_DW = 14868,
+  PSADDU_H = 14869,
+  PSADDU_W = 14870,
+  PSADD_B = 14871,
+  PSADD_DB = 14872,
+  PSADD_DH = 14873,
+  PSADD_DW = 14874,
+  PSADD_H = 14875,
+  PSADD_W = 14876,
+  PSAS_DHX = 14877,
+  PSAS_HX = 14878,
+  PSAS_WX = 14879,
+  PSATI_DH = 14880,
+  PSATI_DW = 14881,
+  PSATI_H = 14882,
+  PSATI_W = 14883,
+  PSA_DHX = 14884,
+  PSA_HX = 14885,
+  PSA_WX = 14886,
+  PSEXT_DH_B = 14887,
+  PSEXT_DW_B = 14888,
+  PSEXT_DW_H = 14889,
+  PSEXT_H_B = 14890,
+  PSEXT_W_B = 14891,
+  PSEXT_W_H = 14892,
+  PSH1ADD_DH = 14893,
+  PSH1ADD_DW = 14894,
+  PSH1ADD_H = 14895,
+  PSH1ADD_W = 14896,
+  PSLLI_B = 14897,
+  PSLLI_DB = 14898,
+  PSLLI_DH = 14899,
+  PSLLI_DW = 14900,
+  PSLLI_H = 14901,
+  PSLLI_W = 14902,
+  PSLL_BS = 14903,
+  PSLL_DBS = 14904,
+  PSLL_DHS = 14905,
+  PSLL_DWS = 14906,
+  PSLL_HS = 14907,
+  PSLL_WS = 14908,
+  PSRAI_B = 14909,
+  PSRAI_DB = 14910,
+  PSRAI_DH = 14911,
+  PSRAI_DW = 14912,
+  PSRAI_H = 14913,
+  PSRAI_W = 14914,
+  PSRARI_DH = 14915,
+  PSRARI_DW = 14916,
+  PSRARI_H = 14917,
+  PSRARI_W = 14918,
+  PSRA_BS = 14919,
+  PSRA_DBS = 14920,
+  PSRA_DHS = 14921,
+  PSRA_DWS = 14922,
+  PSRA_HS = 14923,
+  PSRA_WS = 14924,
+  PSRLI_B = 14925,
+  PSRLI_DB = 14926,
+  PSRLI_DH = 14927,
+  PSRLI_DW = 14928,
+  PSRLI_H = 14929,
+  PSRLI_W = 14930,
+  PSRL_BS = 14931,
+  PSRL_DBS = 14932,
+  PSRL_DHS = 14933,
+  PSRL_DWS = 14934,
+  PSRL_HS = 14935,
+  PSRL_WS = 14936,
+  PSSA_DHX = 14937,
+  PSSA_HX = 14938,
+  PSSA_WX = 14939,
+  PSSH1SADD_DH = 14940,
+  PSSH1SADD_DW = 14941,
+  PSSH1SADD_H = 14942,
+  PSSH1SADD_W = 14943,
+  PSSHAR_DHS = 14944,
+  PSSHAR_DWS = 14945,
+  PSSHAR_HS = 14946,
+  PSSHAR_WS = 14947,
+  PSSHA_DHS = 14948,
+  PSSHA_DWS = 14949,
+  PSSHA_HS = 14950,
+  PSSHA_WS = 14951,
+  PSSLAI_DH = 14952,
+  PSSLAI_DW = 14953,
+  PSSLAI_H = 14954,
+  PSSLAI_W = 14955,
+  PSSUBU_B = 14956,
+  PSSUBU_DB = 14957,
+  PSSUBU_DH = 14958,
+  PSSUBU_DW = 14959,
+  PSSUBU_H = 14960,
+  PSSUBU_W = 14961,
+  PSSUB_B = 14962,
+  PSSUB_DB = 14963,
+  PSSUB_DH = 14964,
+  PSSUB_DW = 14965,
+  PSSUB_H = 14966,
+  PSSUB_W = 14967,
+  PSUB_B = 14968,
+  PSUB_DB = 14969,
+  PSUB_DH = 14970,
+  PSUB_DW = 14971,
+  PSUB_H = 14972,
+  PSUB_W = 14973,
+  PUSATI_DH = 14974,
+  PUSATI_DW = 14975,
+  PUSATI_H = 14976,
+  PUSATI_W = 14977,
+  PWADDAU_B = 14978,
+  PWADDAU_H = 14979,
+  PWADDA_B = 14980,
+  PWADDA_H = 14981,
+  PWADDU_B = 14982,
+  PWADDU_H = 14983,
+  PWADD_B = 14984,
+  PWADD_H = 14985,
+  PWMACCSU_H = 14986,
+  PWMACCU_H = 14987,
+  PWMACC_H = 14988,
+  PWMULSU_B = 14989,
+  PWMULSU_H = 14990,
+  PWMULU_B = 14991,
+  PWMULU_H = 14992,
+  PWMUL_B = 14993,
+  PWMUL_H = 14994,
+  PWSLAI_B = 14995,
+  PWSLAI_H = 14996,
+  PWSLA_BS = 14997,
+  PWSLA_HS = 14998,
+  PWSLLI_B = 14999,
+  PWSLLI_H = 15000,
+  PWSLL_BS = 15001,
+  PWSLL_HS = 15002,
+  PWSUBAU_B = 15003,
+  PWSUBAU_H = 15004,
+  PWSUBA_B = 15005,
+  PWSUBA_H = 15006,
+  PWSUBU_B = 15007,
+  PWSUBU_H = 15008,
+  PWSUB_B = 15009,
+  PWSUB_H = 15010,
+  QC_ADDSAT = 15011,
+  QC_ADDUSAT = 15012,
+  QC_BEQI = 15013,
+  QC_BGEI = 15014,
+  QC_BGEUI = 15015,
+  QC_BLTI = 15016,
+  QC_BLTUI = 15017,
+  QC_BNEI = 15018,
+  QC_BREV32 = 15019,
+  QC_CLO = 15020,
+  QC_CLRINTI = 15021,
+  QC_CM_MVA01S = 15022,
+  QC_CM_MVSA01 = 15023,
+  QC_CM_POP = 15024,
+  QC_CM_POPRET = 15025,
+  QC_CM_POPRETZ = 15026,
+  QC_CM_PUSH = 15027,
+  QC_CM_PUSHFP = 15028,
+  QC_COMPRESS2 = 15029,
+  QC_COMPRESS3 = 15030,
+  QC_CSRRWR = 15031,
+  QC_CSRRWRI = 15032,
+  QC_CTO = 15033,
+  QC_C_BEXTI = 15034,
+  QC_C_BSETI = 15035,
+  QC_C_CLRINT = 15036,
+  QC_C_DI = 15037,
+  QC_C_DIR = 15038,
+  QC_C_EI = 15039,
+  QC_C_EIR = 15040,
+  QC_C_EXTU = 15041,
+  QC_C_MIENTER = 15042,
+  QC_C_MIENTER_NEST = 15043,
+  QC_C_MILEAVERET = 15044,
+  QC_C_MNRET = 15045,
+  QC_C_MRET = 15046,
+  QC_C_MULIADD = 15047,
+  QC_C_MVEQZ = 15048,
+  QC_C_SETINT = 15049,
+  QC_C_SYNC = 15050,
+  QC_C_SYNCR = 15051,
+  QC_C_SYNCWF = 15052,
+  QC_C_SYNCWL = 15053,
+  QC_EXPAND2 = 15054,
+  QC_EXPAND3 = 15055,
+  QC_EXT = 15056,
+  QC_EXTD = 15057,
+  QC_EXTDPR = 15058,
+  QC_EXTDPRH = 15059,
+  QC_EXTDR = 15060,
+  QC_EXTDU = 15061,
+  QC_EXTDUPR = 15062,
+  QC_EXTDUPRH = 15063,
+  QC_EXTDUR = 15064,
+  QC_EXTU = 15065,
+  QC_E_ADDAI = 15066,
+  QC_E_ADDI = 15067,
+  QC_E_ANDAI = 15068,
+  QC_E_ANDI = 15069,
+  QC_E_BEQI = 15070,
+  QC_E_BGEI = 15071,
+  QC_E_BGEUI = 15072,
+  QC_E_BLTI = 15073,
+  QC_E_BLTUI = 15074,
+  QC_E_BNEI = 15075,
+  QC_E_J = 15076,
+  QC_E_JAL = 15077,
+  QC_E_LB = 15078,
+  QC_E_LBU = 15079,
+  QC_E_LH = 15080,
+  QC_E_LHU = 15081,
+  QC_E_LI = 15082,
+  QC_E_LW = 15083,
+  QC_E_ORAI = 15084,
+  QC_E_ORI = 15085,
+  QC_E_SB = 15086,
+  QC_E_SH = 15087,
+  QC_E_SW = 15088,
+  QC_E_XORAI = 15089,
+  QC_E_XORI = 15090,
+  QC_INSB = 15091,
+  QC_INSBH = 15092,
+  QC_INSBHR = 15093,
+  QC_INSBI = 15094,
+  QC_INSBPR = 15095,
+  QC_INSBPRH = 15096,
+  QC_INSBR = 15097,
+  QC_INSBRI = 15098,
+  QC_INW = 15099,
+  QC_LI = 15100,
+  QC_LIEQ = 15101,
+  QC_LIEQI = 15102,
+  QC_LIGE = 15103,
+  QC_LIGEI = 15104,
+  QC_LIGEU = 15105,
+  QC_LIGEUI = 15106,
+  QC_LILT = 15107,
+  QC_LILTI = 15108,
+  QC_LILTU = 15109,
+  QC_LILTUI = 15110,
+  QC_LINE = 15111,
+  QC_LINEI = 15112,
+  QC_LRB = 15113,
+  QC_LRBU = 15114,
+  QC_LRH = 15115,
+  QC_LRHU = 15116,
+  QC_LRW = 15117,
+  QC_LWM = 15118,
+  QC_LWMI = 15119,
+  QC_MULIADD = 15120,
+  QC_MVEQ = 15121,
+  QC_MVEQI = 15122,
+  QC_MVGE = 15123,
+  QC_MVGEI = 15124,
+  QC_MVGEU = 15125,
+  QC_MVGEUI = 15126,
+  QC_MVLT = 15127,
+  QC_MVLTI = 15128,
+  QC_MVLTU = 15129,
+  QC_MVLTUI = 15130,
+  QC_MVNE = 15131,
+  QC_MVNEI = 15132,
+  QC_NORM = 15133,
+  QC_NORMEU = 15134,
+  QC_NORMU = 15135,
+  QC_OUTW = 15136,
+  QC_PPUTCI = 15137,
+  QC_SELECTEQI = 15138,
+  QC_SELECTIEQ = 15139,
+  QC_SELECTIEQI = 15140,
+  QC_SELECTIIEQ = 15141,
+  QC_SELECTIINE = 15142,
+  QC_SELECTINE = 15143,
+  QC_SELECTINEI = 15144,
+  QC_SELECTNEI = 15145,
+  QC_SETINTI = 15146,
+  QC_SETWM = 15147,
+  QC_SETWMI = 15148,
+  QC_SHLADD = 15149,
+  QC_SHLSAT = 15150,
+  QC_SHLUSAT = 15151,
+  QC_SRB = 15152,
+  QC_SRH = 15153,
+  QC_SRW = 15154,
+  QC_SUBSAT = 15155,
+  QC_SUBUSAT = 15156,
+  QC_SWM = 15157,
+  QC_SWMI = 15158,
+  QC_SYNC = 15159,
+  QC_SYNCR = 15160,
+  QC_SYNCWF = 15161,
+  QC_SYNCWL = 15162,
+  QC_WRAP = 15163,
+  QC_WRAPI = 15164,
+  QK_C_LBU = 15165,
+  QK_C_LBUSP = 15166,
+  QK_C_LHU = 15167,
+  QK_C_LHUSP = 15168,
+  QK_C_SB = 15169,
+  QK_C_SBSP = 15170,
+  QK_C_SH = 15171,
+  QK_C_SHSP = 15172,
+  REM = 15173,
+  REMU = 15174,
+  REMUW = 15175,
+  REMW = 15176,
+  REV16 = 15177,
+  REV8_RV32 = 15178,
+  REV8_RV64 = 15179,
+  REV_RV32 = 15180,
+  REV_RV64 = 15181,
+  RI_VEXTRACT = 15182,
+  RI_VINSERT = 15183,
+  RI_VUNZIP2A_VV = 15184,
+  RI_VUNZIP2B_VV = 15185,
+  RI_VZERO = 15186,
+  RI_VZIP2A_VV = 15187,
+  RI_VZIP2B_VV = 15188,
+  RI_VZIPEVEN_VV = 15189,
+  RI_VZIPODD_VV = 15190,
+  ROL = 15191,
+  ROLW = 15192,
+  ROR = 15193,
+  RORI = 15194,
+  RORIW = 15195,
+  RORW = 15196,
+  SADD = 15197,
+  SADDU = 15198,
+  SATI_RV32 = 15199,
+  SATI_RV64 = 15200,
+  SB = 15201,
+  SB_AQRL = 15202,
+  SB_RL = 15203,
+  SCTRCLR = 15204,
+  SC_D = 15205,
+  SC_D_AQ = 15206,
+  SC_D_AQRL = 15207,
+  SC_D_RL = 15208,
+  SC_W = 15209,
+  SC_W_AQ = 15210,
+  SC_W_AQRL = 15211,
+  SC_W_RL = 15212,
+  SD = 15213,
+  SD_AQRL = 15214,
+  SD_RL = 15215,
+  SD_RV32 = 15216,
+  SEXT_B = 15217,
+  SEXT_H = 15218,
+  SFENCE_INVAL_IR = 15219,
+  SFENCE_VMA = 15220,
+  SFENCE_W_INVAL = 15221,
+  SF_CDISCARD_D_L1 = 15222,
+  SF_CEASE = 15223,
+  SF_CFLUSH_D_L1 = 15224,
+  SF_MM_E4M3_E4M3 = 15225,
+  SF_MM_E4M3_E5M2 = 15226,
+  SF_MM_E5M2_E4M3 = 15227,
+  SF_MM_E5M2_E5M2 = 15228,
+  SF_MM_F_F = 15229,
+  SF_MM_S_S = 15230,
+  SF_MM_S_U = 15231,
+  SF_MM_U_S = 15232,
+  SF_MM_U_U = 15233,
+  SF_VC_FV = 15234,
+  SF_VC_FVV = 15235,
+  SF_VC_FVW = 15236,
+  SF_VC_I = 15237,
+  SF_VC_IV = 15238,
+  SF_VC_IVV = 15239,
+  SF_VC_IVW = 15240,
+  SF_VC_VV = 15241,
+  SF_VC_VVV = 15242,
+  SF_VC_VVW = 15243,
+  SF_VC_V_FV = 15244,
+  SF_VC_V_FVV = 15245,
+  SF_VC_V_FVW = 15246,
+  SF_VC_V_I = 15247,
+  SF_VC_V_IV = 15248,
+  SF_VC_V_IVV = 15249,
+  SF_VC_V_IVW = 15250,
+  SF_VC_V_VV = 15251,
+  SF_VC_V_VVV = 15252,
+  SF_VC_V_VVW = 15253,
+  SF_VC_V_X = 15254,
+  SF_VC_V_XV = 15255,
+  SF_VC_V_XVV = 15256,
+  SF_VC_V_XVW = 15257,
+  SF_VC_X = 15258,
+  SF_VC_XV = 15259,
+  SF_VC_XVV = 15260,
+  SF_VC_XVW = 15261,
+  SF_VFEXPA_V = 15262,
+  SF_VFEXP_V = 15263,
+  SF_VFNRCLIP_XU_F_QF = 15264,
+  SF_VFNRCLIP_X_F_QF = 15265,
+  SF_VFWMACC_4x4x4 = 15266,
+  SF_VLTE16 = 15267,
+  SF_VLTE32 = 15268,
+  SF_VLTE64 = 15269,
+  SF_VLTE8 = 15270,
+  SF_VQMACCSU_2x8x2 = 15271,
+  SF_VQMACCSU_4x8x4 = 15272,
+  SF_VQMACCUS_2x8x2 = 15273,
+  SF_VQMACCUS_4x8x4 = 15274,
+  SF_VQMACCU_2x8x2 = 15275,
+  SF_VQMACCU_4x8x4 = 15276,
+  SF_VQMACC_2x8x2 = 15277,
+  SF_VQMACC_4x8x4 = 15278,
+  SF_VSETTK = 15279,
+  SF_VSETTM = 15280,
+  SF_VSETTN = 15281,
+  SF_VSTE16 = 15282,
+  SF_VSTE32 = 15283,
+  SF_VSTE64 = 15284,
+  SF_VSTE8 = 15285,
+  SF_VTDISCARD = 15286,
+  SF_VTMV_T_V = 15287,
+  SF_VTMV_V_T = 15288,
+  SF_VTZERO_T = 15289,
+  SH = 15290,
+  SH1ADD = 15291,
+  SH1ADD_UW = 15292,
+  SH2ADD = 15293,
+  SH2ADD_UW = 15294,
+  SH3ADD = 15295,
+  SH3ADD_UW = 15296,
+  SHA = 15297,
+  SHA256SIG0 = 15298,
+  SHA256SIG1 = 15299,
+  SHA256SUM0 = 15300,
+  SHA256SUM1 = 15301,
+  SHA512SIG0 = 15302,
+  SHA512SIG0H = 15303,
+  SHA512SIG0L = 15304,
+  SHA512SIG1 = 15305,
+  SHA512SIG1H = 15306,
+  SHA512SIG1L = 15307,
+  SHA512SUM0 = 15308,
+  SHA512SUM0R = 15309,
+  SHA512SUM1 = 15310,
+  SHA512SUM1R = 15311,
+  SHAR = 15312,
+  SH_AQRL = 15313,
+  SH_INX = 15314,
+  SH_RL = 15315,
+  SINVAL_VMA = 15316,
+  SLL = 15317,
+  SLLI = 15318,
+  SLLIW = 15319,
+  SLLI_UW = 15320,
+  SLLW = 15321,
+  SLT = 15322,
+  SLTI = 15323,
+  SLTIU = 15324,
+  SLTU = 15325,
+  SLX = 15326,
+  SM3P0 = 15327,
+  SM3P1 = 15328,
+  SM4ED = 15329,
+  SM4KS = 15330,
+  SMT_VMADOT = 15331,
+  SMT_VMADOT1 = 15332,
+  SMT_VMADOT1SU = 15333,
+  SMT_VMADOT1U = 15334,
+  SMT_VMADOT1US = 15335,
+  SMT_VMADOT2 = 15336,
+  SMT_VMADOT2SU = 15337,
+  SMT_VMADOT2U = 15338,
+  SMT_VMADOT2US = 15339,
+  SMT_VMADOT3 = 15340,
+  SMT_VMADOT3SU = 15341,
+  SMT_VMADOT3U = 15342,
+  SMT_VMADOT3US = 15343,
+  SMT_VMADOTSU = 15344,
+  SMT_VMADOTU = 15345,
+  SMT_VMADOTUS = 15346,
+  SRA = 15347,
+  SRAI = 15348,
+  SRAIW = 15349,
+  SRARI_RV32 = 15350,
+  SRARI_RV64 = 15351,
+  SRAW = 15352,
+  SRET = 15353,
+  SRL = 15354,
+  SRLI = 15355,
+  SRLIW = 15356,
+  SRLW = 15357,
+  SRX = 15358,
+  SSAMOSWAP_D = 15359,
+  SSAMOSWAP_D_AQ = 15360,
+  SSAMOSWAP_D_AQRL = 15361,
+  SSAMOSWAP_D_RL = 15362,
+  SSAMOSWAP_W = 15363,
+  SSAMOSWAP_W_AQ = 15364,
+  SSAMOSWAP_W_AQRL = 15365,
+  SSAMOSWAP_W_RL = 15366,
+  SSH1SADD = 15367,
+  SSHA = 15368,
+  SSHAR = 15369,
+  SSLAI = 15370,
+  SSPOPCHK = 15371,
+  SSPUSH = 15372,
+  SSRDP = 15373,
+  SSUB = 15374,
+  SSUBU = 15375,
+  SUB = 15376,
+  SUBD = 15377,
+  SUBW = 15378,
+  SW = 15379,
+  SW_AQRL = 15380,
+  SW_INX = 15381,
+  SW_RL = 15382,
+  TH_ADDSL = 15383,
+  TH_DCACHE_CALL = 15384,
+  TH_DCACHE_CIALL = 15385,
+  TH_DCACHE_CIPA = 15386,
+  TH_DCACHE_CISW = 15387,
+  TH_DCACHE_CIVA = 15388,
+  TH_DCACHE_CPA = 15389,
+  TH_DCACHE_CPAL1 = 15390,
+  TH_DCACHE_CSW = 15391,
+  TH_DCACHE_CVA = 15392,
+  TH_DCACHE_CVAL1 = 15393,
+  TH_DCACHE_IALL = 15394,
+  TH_DCACHE_IPA = 15395,
+  TH_DCACHE_ISW = 15396,
+  TH_DCACHE_IVA = 15397,
+  TH_EXT = 15398,
+  TH_EXTU = 15399,
+  TH_FF0 = 15400,
+  TH_FF1 = 15401,
+  TH_FLRD = 15402,
+  TH_FLRW = 15403,
+  TH_FLURD = 15404,
+  TH_FLURW = 15405,
+  TH_FSRD = 15406,
+  TH_FSRW = 15407,
+  TH_FSURD = 15408,
+  TH_FSURW = 15409,
+  TH_ICACHE_IALL = 15410,
+  TH_ICACHE_IALLS = 15411,
+  TH_ICACHE_IPA = 15412,
+  TH_ICACHE_IVA = 15413,
+  TH_L2CACHE_CALL = 15414,
+  TH_L2CACHE_CIALL = 15415,
+  TH_L2CACHE_IALL = 15416,
+  TH_LBIA = 15417,
+  TH_LBIB = 15418,
+  TH_LBUIA = 15419,
+  TH_LBUIB = 15420,
+  TH_LDD = 15421,
+  TH_LDIA = 15422,
+  TH_LDIB = 15423,
+  TH_LHIA = 15424,
+  TH_LHIB = 15425,
+  TH_LHUIA = 15426,
+  TH_LHUIB = 15427,
+  TH_LRB = 15428,
+  TH_LRBU = 15429,
+  TH_LRD = 15430,
+  TH_LRH = 15431,
+  TH_LRHU = 15432,
+  TH_LRW = 15433,
+  TH_LRWU = 15434,
+  TH_LURB = 15435,
+  TH_LURBU = 15436,
+  TH_LURD = 15437,
+  TH_LURH = 15438,
+  TH_LURHU = 15439,
+  TH_LURW = 15440,
+  TH_LURWU = 15441,
+  TH_LWD = 15442,
+  TH_LWIA = 15443,
+  TH_LWIB = 15444,
+  TH_LWUD = 15445,
+  TH_LWUIA = 15446,
+  TH_LWUIB = 15447,
+  TH_MULA = 15448,
+  TH_MULAH = 15449,
+  TH_MULAW = 15450,
+  TH_MULS = 15451,
+  TH_MULSH = 15452,
+  TH_MULSW = 15453,
+  TH_MVEQZ = 15454,
+  TH_MVNEZ = 15455,
+  TH_REV = 15456,
+  TH_REVW = 15457,
+  TH_SBIA = 15458,
+  TH_SBIB = 15459,
+  TH_SDD = 15460,
+  TH_SDIA = 15461,
+  TH_SDIB = 15462,
+  TH_SFENCE_VMAS = 15463,
+  TH_SHIA = 15464,
+  TH_SHIB = 15465,
+  TH_SRB = 15466,
+  TH_SRD = 15467,
+  TH_SRH = 15468,
+  TH_SRRI = 15469,
+  TH_SRRIW = 15470,
+  TH_SRW = 15471,
+  TH_SURB = 15472,
+  TH_SURD = 15473,
+  TH_SURH = 15474,
+  TH_SURW = 15475,
+  TH_SWD = 15476,
+  TH_SWIA = 15477,
+  TH_SWIB = 15478,
+  TH_SYNC = 15479,
+  TH_SYNC_I = 15480,
+  TH_SYNC_IS = 15481,
+  TH_SYNC_S = 15482,
+  TH_TST = 15483,
+  TH_TSTNBZ = 15484,
+  TH_VMAQASU_VV = 15485,
+  TH_VMAQASU_VX = 15486,
+  TH_VMAQAUS_VX = 15487,
+  TH_VMAQAU_VV = 15488,
+  TH_VMAQAU_VX = 15489,
+  TH_VMAQA_VV = 15490,
+  TH_VMAQA_VX = 15491,
+  UNIMP = 15492,
+  UNZIP16HP = 15493,
+  UNZIP16P = 15494,
+  UNZIP8HP = 15495,
+  UNZIP8P = 15496,
+  UNZIP_RV32 = 15497,
+  USATI_RV32 = 15498,
+  USATI_RV64 = 15499,
+  VAADDU_VV = 15500,
+  VAADDU_VX = 15501,
+  VAADD_VV = 15502,
+  VAADD_VX = 15503,
+  VADC_VIM = 15504,
+  VADC_VVM = 15505,
+  VADC_VXM = 15506,
+  VADD_VI = 15507,
+  VADD_VV = 15508,
+  VADD_VX = 15509,
+  VAESDF_VS = 15510,
+  VAESDF_VV = 15511,
+  VAESDM_VS = 15512,
+  VAESDM_VV = 15513,
+  VAESEF_VS = 15514,
+  VAESEF_VV = 15515,
+  VAESEM_VS = 15516,
+  VAESEM_VV = 15517,
+  VAESKF1_VI = 15518,
+  VAESKF2_VI = 15519,
+  VAESZ_VS = 15520,
+  VANDN_VV = 15521,
+  VANDN_VX = 15522,
+  VAND_VI = 15523,
+  VAND_VV = 15524,
+  VAND_VX = 15525,
+  VASUBU_VV = 15526,
+  VASUBU_VX = 15527,
+  VASUB_VV = 15528,
+  VASUB_VX = 15529,
+  VBREV8_V = 15530,
+  VBREV_V = 15531,
+  VCLMULH_VV = 15532,
+  VCLMULH_VX = 15533,
+  VCLMUL_VV = 15534,
+  VCLMUL_VX = 15535,
+  VCLZ_V = 15536,
+  VCOMPRESS_VM = 15537,
+  VCPOP_M = 15538,
+  VCPOP_V = 15539,
+  VCTZ_V = 15540,
+  VDIVU_VV = 15541,
+  VDIVU_VX = 15542,
+  VDIV_VV = 15543,
+  VDIV_VX = 15544,
+  VFADD_VF = 15545,
+  VFADD_VV = 15546,
+  VFCLASS_V = 15547,
+  VFCVT_F_XU_V = 15548,
+  VFCVT_F_X_V = 15549,
+  VFCVT_RTZ_XU_F_V = 15550,
+  VFCVT_RTZ_X_F_V = 15551,
+  VFCVT_XU_F_V = 15552,
+  VFCVT_X_F_V = 15553,
+  VFDIV_VF = 15554,
+  VFDIV_VV = 15555,
+  VFIRST_M = 15556,
+  VFMACC_VF = 15557,
+  VFMACC_VV = 15558,
+  VFMADD_VF = 15559,
+  VFMADD_VV = 15560,
+  VFMAX_VF = 15561,
+  VFMAX_VV = 15562,
+  VFMERGE_VFM = 15563,
+  VFMIN_VF = 15564,
+  VFMIN_VV = 15565,
+  VFMSAC_VF = 15566,
+  VFMSAC_VV = 15567,
+  VFMSUB_VF = 15568,
+  VFMSUB_VV = 15569,
+  VFMUL_VF = 15570,
+  VFMUL_VV = 15571,
+  VFMV_F_S = 15572,
+  VFMV_S_F = 15573,
+  VFMV_V_F = 15574,
+  VFNCVTBF16_F_F_W = 15575,
+  VFNCVTBF16_SAT_F_F_W = 15576,
+  VFNCVT_F_F_Q = 15577,
+  VFNCVT_F_F_W = 15578,
+  VFNCVT_F_XU_W = 15579,
+  VFNCVT_F_X_W = 15580,
+  VFNCVT_ROD_F_F_W = 15581,
+  VFNCVT_RTZ_XU_F_W = 15582,
+  VFNCVT_RTZ_X_F_W = 15583,
+  VFNCVT_SAT_F_F_Q = 15584,
+  VFNCVT_XU_F_W = 15585,
+  VFNCVT_X_F_W = 15586,
+  VFNMACC_VF = 15587,
+  VFNMACC_VV = 15588,
+  VFNMADD_VF = 15589,
+  VFNMADD_VV = 15590,
+  VFNMSAC_VF = 15591,
+  VFNMSAC_VV = 15592,
+  VFNMSUB_VF = 15593,
+  VFNMSUB_VV = 15594,
+  VFRDIV_VF = 15595,
+  VFREC7_V = 15596,
+  VFREDMAX_VS = 15597,
+  VFREDMIN_VS = 15598,
+  VFREDOSUM_VS = 15599,
+  VFREDUSUM_VS = 15600,
+  VFRSQRT7_V = 15601,
+  VFRSUB_VF = 15602,
+  VFSGNJN_VF = 15603,
+  VFSGNJN_VV = 15604,
+  VFSGNJX_VF = 15605,
+  VFSGNJX_VV = 15606,
+  VFSGNJ_VF = 15607,
+  VFSGNJ_VV = 15608,
+  VFSLIDE1DOWN_VF = 15609,
+  VFSLIDE1UP_VF = 15610,
+  VFSQRT_V = 15611,
+  VFSUB_VF = 15612,
+  VFSUB_VV = 15613,
+  VFWADD_VF = 15614,
+  VFWADD_VV = 15615,
+  VFWADD_WF = 15616,
+  VFWADD_WV = 15617,
+  VFWCVTBF16_F_F_V = 15618,
+  VFWCVT_F_F_V = 15619,
+  VFWCVT_F_XU_V = 15620,
+  VFWCVT_F_X_V = 15621,
+  VFWCVT_RTZ_XU_F_V = 15622,
+  VFWCVT_RTZ_X_F_V = 15623,
+  VFWCVT_XU_F_V = 15624,
+  VFWCVT_X_F_V = 15625,
+  VFWMACCBF16_VF = 15626,
+  VFWMACCBF16_VV = 15627,
+  VFWMACC_VF = 15628,
+  VFWMACC_VV = 15629,
+  VFWMSAC_VF = 15630,
+  VFWMSAC_VV = 15631,
+  VFWMUL_VF = 15632,
+  VFWMUL_VV = 15633,
+  VFWNMACC_VF = 15634,
+  VFWNMACC_VV = 15635,
+  VFWNMSAC_VF = 15636,
+  VFWNMSAC_VV = 15637,
+  VFWREDOSUM_VS = 15638,
+  VFWREDUSUM_VS = 15639,
+  VFWSUB_VF = 15640,
+  VFWSUB_VV = 15641,
+  VFWSUB_WF = 15642,
+  VFWSUB_WV = 15643,
+  VGHSH_VS = 15644,
+  VGHSH_VV = 15645,
+  VGMUL_VS = 15646,
+  VGMUL_VV = 15647,
+  VID_V = 15648,
+  VIOTA_M = 15649,
+  VL1RE16_V = 15650,
+  VL1RE32_V = 15651,
+  VL1RE64_V = 15652,
+  VL1RE8_V = 15653,
+  VL2RE16_V = 15654,
+  VL2RE32_V = 15655,
+  VL2RE64_V = 15656,
+  VL2RE8_V = 15657,
+  VL4RE16_V = 15658,
+  VL4RE32_V = 15659,
+  VL4RE64_V = 15660,
+  VL4RE8_V = 15661,
+  VL8RE16_V = 15662,
+  VL8RE32_V = 15663,
+  VL8RE64_V = 15664,
+  VL8RE8_V = 15665,
+  VLE16FF_V = 15666,
+  VLE16_V = 15667,
+  VLE32FF_V = 15668,
+  VLE32_V = 15669,
+  VLE64FF_V = 15670,
+  VLE64_V = 15671,
+  VLE8FF_V = 15672,
+  VLE8_V = 15673,
+  VLM_V = 15674,
+  VLOXEI16_V = 15675,
+  VLOXEI32_V = 15676,
+  VLOXEI64_V = 15677,
+  VLOXEI8_V = 15678,
+  VLOXSEG2EI16_V = 15679,
+  VLOXSEG2EI32_V = 15680,
+  VLOXSEG2EI64_V = 15681,
+  VLOXSEG2EI8_V = 15682,
+  VLOXSEG3EI16_V = 15683,
+  VLOXSEG3EI32_V = 15684,
+  VLOXSEG3EI64_V = 15685,
+  VLOXSEG3EI8_V = 15686,
+  VLOXSEG4EI16_V = 15687,
+  VLOXSEG4EI32_V = 15688,
+  VLOXSEG4EI64_V = 15689,
+  VLOXSEG4EI8_V = 15690,
+  VLOXSEG5EI16_V = 15691,
+  VLOXSEG5EI32_V = 15692,
+  VLOXSEG5EI64_V = 15693,
+  VLOXSEG5EI8_V = 15694,
+  VLOXSEG6EI16_V = 15695,
+  VLOXSEG6EI32_V = 15696,
+  VLOXSEG6EI64_V = 15697,
+  VLOXSEG6EI8_V = 15698,
+  VLOXSEG7EI16_V = 15699,
+  VLOXSEG7EI32_V = 15700,
+  VLOXSEG7EI64_V = 15701,
+  VLOXSEG7EI8_V = 15702,
+  VLOXSEG8EI16_V = 15703,
+  VLOXSEG8EI32_V = 15704,
+  VLOXSEG8EI64_V = 15705,
+  VLOXSEG8EI8_V = 15706,
+  VLSE16_V = 15707,
+  VLSE32_V = 15708,
+  VLSE64_V = 15709,
+  VLSE8_V = 15710,
+  VLSEG2E16FF_V = 15711,
+  VLSEG2E16_V = 15712,
+  VLSEG2E32FF_V = 15713,
+  VLSEG2E32_V = 15714,
+  VLSEG2E64FF_V = 15715,
+  VLSEG2E64_V = 15716,
+  VLSEG2E8FF_V = 15717,
+  VLSEG2E8_V = 15718,
+  VLSEG3E16FF_V = 15719,
+  VLSEG3E16_V = 15720,
+  VLSEG3E32FF_V = 15721,
+  VLSEG3E32_V = 15722,
+  VLSEG3E64FF_V = 15723,
+  VLSEG3E64_V = 15724,
+  VLSEG3E8FF_V = 15725,
+  VLSEG3E8_V = 15726,
+  VLSEG4E16FF_V = 15727,
+  VLSEG4E16_V = 15728,
+  VLSEG4E32FF_V = 15729,
+  VLSEG4E32_V = 15730,
+  VLSEG4E64FF_V = 15731,
+  VLSEG4E64_V = 15732,
+  VLSEG4E8FF_V = 15733,
+  VLSEG4E8_V = 15734,
+  VLSEG5E16FF_V = 15735,
+  VLSEG5E16_V = 15736,
+  VLSEG5E32FF_V = 15737,
+  VLSEG5E32_V = 15738,
+  VLSEG5E64FF_V = 15739,
+  VLSEG5E64_V = 15740,
+  VLSEG5E8FF_V = 15741,
+  VLSEG5E8_V = 15742,
+  VLSEG6E16FF_V = 15743,
+  VLSEG6E16_V = 15744,
+  VLSEG6E32FF_V = 15745,
+  VLSEG6E32_V = 15746,
+  VLSEG6E64FF_V = 15747,
+  VLSEG6E64_V = 15748,
+  VLSEG6E8FF_V = 15749,
+  VLSEG6E8_V = 15750,
+  VLSEG7E16FF_V = 15751,
+  VLSEG7E16_V = 15752,
+  VLSEG7E32FF_V = 15753,
+  VLSEG7E32_V = 15754,
+  VLSEG7E64FF_V = 15755,
+  VLSEG7E64_V = 15756,
+  VLSEG7E8FF_V = 15757,
+  VLSEG7E8_V = 15758,
+  VLSEG8E16FF_V = 15759,
+  VLSEG8E16_V = 15760,
+  VLSEG8E32FF_V = 15761,
+  VLSEG8E32_V = 15762,
+  VLSEG8E64FF_V = 15763,
+  VLSEG8E64_V = 15764,
+  VLSEG8E8FF_V = 15765,
+  VLSEG8E8_V = 15766,
+  VLSSEG2E16_V = 15767,
+  VLSSEG2E32_V = 15768,
+  VLSSEG2E64_V = 15769,
+  VLSSEG2E8_V = 15770,
+  VLSSEG3E16_V = 15771,
+  VLSSEG3E32_V = 15772,
+  VLSSEG3E64_V = 15773,
+  VLSSEG3E8_V = 15774,
+  VLSSEG4E16_V = 15775,
+  VLSSEG4E32_V = 15776,
+  VLSSEG4E64_V = 15777,
+  VLSSEG4E8_V = 15778,
+  VLSSEG5E16_V = 15779,
+  VLSSEG5E32_V = 15780,
+  VLSSEG5E64_V = 15781,
+  VLSSEG5E8_V = 15782,
+  VLSSEG6E16_V = 15783,
+  VLSSEG6E32_V = 15784,
+  VLSSEG6E64_V = 15785,
+  VLSSEG6E8_V = 15786,
+  VLSSEG7E16_V = 15787,
+  VLSSEG7E32_V = 15788,
+  VLSSEG7E64_V = 15789,
+  VLSSEG7E8_V = 15790,
+  VLSSEG8E16_V = 15791,
+  VLSSEG8E32_V = 15792,
+  VLSSEG8E64_V = 15793,
+  VLSSEG8E8_V = 15794,
+  VLUXEI16_V = 15795,
+  VLUXEI32_V = 15796,
+  VLUXEI64_V = 15797,
+  VLUXEI8_V = 15798,
+  VLUXSEG2EI16_V = 15799,
+  VLUXSEG2EI32_V = 15800,
+  VLUXSEG2EI64_V = 15801,
+  VLUXSEG2EI8_V = 15802,
+  VLUXSEG3EI16_V = 15803,
+  VLUXSEG3EI32_V = 15804,
+  VLUXSEG3EI64_V = 15805,
+  VLUXSEG3EI8_V = 15806,
+  VLUXSEG4EI16_V = 15807,
+  VLUXSEG4EI32_V = 15808,
+  VLUXSEG4EI64_V = 15809,
+  VLUXSEG4EI8_V = 15810,
+  VLUXSEG5EI16_V = 15811,
+  VLUXSEG5EI32_V = 15812,
+  VLUXSEG5EI64_V = 15813,
+  VLUXSEG5EI8_V = 15814,
+  VLUXSEG6EI16_V = 15815,
+  VLUXSEG6EI32_V = 15816,
+  VLUXSEG6EI64_V = 15817,
+  VLUXSEG6EI8_V = 15818,
+  VLUXSEG7EI16_V = 15819,
+  VLUXSEG7EI32_V = 15820,
+  VLUXSEG7EI64_V = 15821,
+  VLUXSEG7EI8_V = 15822,
+  VLUXSEG8EI16_V = 15823,
+  VLUXSEG8EI32_V = 15824,
+  VLUXSEG8EI64_V = 15825,
+  VLUXSEG8EI8_V = 15826,
+  VMACC_VV = 15827,
+  VMACC_VX = 15828,
+  VMADC_VI = 15829,
+  VMADC_VIM = 15830,
+  VMADC_VV = 15831,
+  VMADC_VVM = 15832,
+  VMADC_VX = 15833,
+  VMADC_VXM = 15834,
+  VMADD_VV = 15835,
+  VMADD_VX = 15836,
+  VMANDN_MM = 15837,
+  VMAND_MM = 15838,
+  VMAXU_VV = 15839,
+  VMAXU_VX = 15840,
+  VMAX_VV = 15841,
+  VMAX_VX = 15842,
+  VMERGE_VIM = 15843,
+  VMERGE_VVM = 15844,
+  VMERGE_VXM = 15845,
+  VMFEQ_VF = 15846,
+  VMFEQ_VV = 15847,
+  VMFGE_VF = 15848,
+  VMFGT_VF = 15849,
+  VMFLE_VF = 15850,
+  VMFLE_VV = 15851,
+  VMFLT_VF = 15852,
+  VMFLT_VV = 15853,
+  VMFNE_VF = 15854,
+  VMFNE_VV = 15855,
+  VMINU_VV = 15856,
+  VMINU_VX = 15857,
+  VMIN_VV = 15858,
+  VMIN_VX = 15859,
+  VMNAND_MM = 15860,
+  VMNOR_MM = 15861,
+  VMORN_MM = 15862,
+  VMOR_MM = 15863,
+  VMSBC_VV = 15864,
+  VMSBC_VVM = 15865,
+  VMSBC_VX = 15866,
+  VMSBC_VXM = 15867,
+  VMSBF_M = 15868,
+  VMSEQ_VI = 15869,
+  VMSEQ_VV = 15870,
+  VMSEQ_VX = 15871,
+  VMSGTU_VI = 15872,
+  VMSGTU_VX = 15873,
+  VMSGT_VI = 15874,
+  VMSGT_VX = 15875,
+  VMSIF_M = 15876,
+  VMSLEU_VI = 15877,
+  VMSLEU_VV = 15878,
+  VMSLEU_VX = 15879,
+  VMSLE_VI = 15880,
+  VMSLE_VV = 15881,
+  VMSLE_VX = 15882,
+  VMSLTU_VV = 15883,
+  VMSLTU_VX = 15884,
+  VMSLT_VV = 15885,
+  VMSLT_VX = 15886,
+  VMSNE_VI = 15887,
+  VMSNE_VV = 15888,
+  VMSNE_VX = 15889,
+  VMSOF_M = 15890,
+  VMULHSU_VV = 15891,
+  VMULHSU_VX = 15892,
+  VMULHU_VV = 15893,
+  VMULHU_VX = 15894,
+  VMULH_VV = 15895,
+  VMULH_VX = 15896,
+  VMUL_VV = 15897,
+  VMUL_VX = 15898,
+  VMV1R_V = 15899,
+  VMV2R_V = 15900,
+  VMV4R_V = 15901,
+  VMV8R_V = 15902,
+  VMV_S_X = 15903,
+  VMV_V_I = 15904,
+  VMV_V_V = 15905,
+  VMV_V_X = 15906,
+  VMV_X_S = 15907,
+  VMXNOR_MM = 15908,
+  VMXOR_MM = 15909,
+  VNCLIPU_WI = 15910,
+  VNCLIPU_WV = 15911,
+  VNCLIPU_WX = 15912,
+  VNCLIP_WI = 15913,
+  VNCLIP_WV = 15914,
+  VNCLIP_WX = 15915,
+  VNMSAC_VV = 15916,
+  VNMSAC_VX = 15917,
+  VNMSUB_VV = 15918,
+  VNMSUB_VX = 15919,
+  VNSRA_WI = 15920,
+  VNSRA_WV = 15921,
+  VNSRA_WX = 15922,
+  VNSRL_WI = 15923,
+  VNSRL_WV = 15924,
+  VNSRL_WX = 15925,
+  VOR_VI = 15926,
+  VOR_VV = 15927,
+  VOR_VX = 15928,
+  VQDOTSU_VV = 15929,
+  VQDOTSU_VX = 15930,
+  VQDOTUS_VX = 15931,
+  VQDOTU_VV = 15932,
+  VQDOTU_VX = 15933,
+  VQDOT_VV = 15934,
+  VQDOT_VX = 15935,
+  VREDAND_VS = 15936,
+  VREDMAXU_VS = 15937,
+  VREDMAX_VS = 15938,
+  VREDMINU_VS = 15939,
+  VREDMIN_VS = 15940,
+  VREDOR_VS = 15941,
+  VREDSUM_VS = 15942,
+  VREDXOR_VS = 15943,
+  VREMU_VV = 15944,
+  VREMU_VX = 15945,
+  VREM_VV = 15946,
+  VREM_VX = 15947,
+  VREV8_V = 15948,
+  VRGATHEREI16_VV = 15949,
+  VRGATHER_VI = 15950,
+  VRGATHER_VV = 15951,
+  VRGATHER_VX = 15952,
+  VROL_VV = 15953,
+  VROL_VX = 15954,
+  VROR_VI = 15955,
+  VROR_VV = 15956,
+  VROR_VX = 15957,
+  VRSUB_VI = 15958,
+  VRSUB_VX = 15959,
+  VS1R_V = 15960,
+  VS2R_V = 15961,
+  VS4R_V = 15962,
+  VS8R_V = 15963,
+  VSADDU_VI = 15964,
+  VSADDU_VV = 15965,
+  VSADDU_VX = 15966,
+  VSADD_VI = 15967,
+  VSADD_VV = 15968,
+  VSADD_VX = 15969,
+  VSBC_VVM = 15970,
+  VSBC_VXM = 15971,
+  VSE16_V = 15972,
+  VSE32_V = 15973,
+  VSE64_V = 15974,
+  VSE8_V = 15975,
+  VSETIVLI = 15976,
+  VSETVL = 15977,
+  VSETVLI = 15978,
+  VSEXT_VF2 = 15979,
+  VSEXT_VF4 = 15980,
+  VSEXT_VF8 = 15981,
+  VSHA2CH_VV = 15982,
+  VSHA2CL_VV = 15983,
+  VSHA2MS_VV = 15984,
+  VSLIDE1DOWN_VX = 15985,
+  VSLIDE1UP_VX = 15986,
+  VSLIDEDOWN_VI = 15987,
+  VSLIDEDOWN_VX = 15988,
+  VSLIDEUP_VI = 15989,
+  VSLIDEUP_VX = 15990,
+  VSLL_VI = 15991,
+  VSLL_VV = 15992,
+  VSLL_VX = 15993,
+  VSM3C_VI = 15994,
+  VSM3ME_VV = 15995,
+  VSM4K_VI = 15996,
+  VSM4R_VS = 15997,
+  VSM4R_VV = 15998,
+  VSMUL_VV = 15999,
+  VSMUL_VX = 16000,
+  VSM_V = 16001,
+  VSOXEI16_V = 16002,
+  VSOXEI32_V = 16003,
+  VSOXEI64_V = 16004,
+  VSOXEI8_V = 16005,
+  VSOXSEG2EI16_V = 16006,
+  VSOXSEG2EI32_V = 16007,
+  VSOXSEG2EI64_V = 16008,
+  VSOXSEG2EI8_V = 16009,
+  VSOXSEG3EI16_V = 16010,
+  VSOXSEG3EI32_V = 16011,
+  VSOXSEG3EI64_V = 16012,
+  VSOXSEG3EI8_V = 16013,
+  VSOXSEG4EI16_V = 16014,
+  VSOXSEG4EI32_V = 16015,
+  VSOXSEG4EI64_V = 16016,
+  VSOXSEG4EI8_V = 16017,
+  VSOXSEG5EI16_V = 16018,
+  VSOXSEG5EI32_V = 16019,
+  VSOXSEG5EI64_V = 16020,
+  VSOXSEG5EI8_V = 16021,
+  VSOXSEG6EI16_V = 16022,
+  VSOXSEG6EI32_V = 16023,
+  VSOXSEG6EI64_V = 16024,
+  VSOXSEG6EI8_V = 16025,
+  VSOXSEG7EI16_V = 16026,
+  VSOXSEG7EI32_V = 16027,
+  VSOXSEG7EI64_V = 16028,
+  VSOXSEG7EI8_V = 16029,
+  VSOXSEG8EI16_V = 16030,
+  VSOXSEG8EI32_V = 16031,
+  VSOXSEG8EI64_V = 16032,
+  VSOXSEG8EI8_V = 16033,
+  VSRA_VI = 16034,
+  VSRA_VV = 16035,
+  VSRA_VX = 16036,
+  VSRL_VI = 16037,
+  VSRL_VV = 16038,
+  VSRL_VX = 16039,
+  VSSE16_V = 16040,
+  VSSE32_V = 16041,
+  VSSE64_V = 16042,
+  VSSE8_V = 16043,
+  VSSEG2E16_V = 16044,
+  VSSEG2E32_V = 16045,
+  VSSEG2E64_V = 16046,
+  VSSEG2E8_V = 16047,
+  VSSEG3E16_V = 16048,
+  VSSEG3E32_V = 16049,
+  VSSEG3E64_V = 16050,
+  VSSEG3E8_V = 16051,
+  VSSEG4E16_V = 16052,
+  VSSEG4E32_V = 16053,
+  VSSEG4E64_V = 16054,
+  VSSEG4E8_V = 16055,
+  VSSEG5E16_V = 16056,
+  VSSEG5E32_V = 16057,
+  VSSEG5E64_V = 16058,
+  VSSEG5E8_V = 16059,
+  VSSEG6E16_V = 16060,
+  VSSEG6E32_V = 16061,
+  VSSEG6E64_V = 16062,
+  VSSEG6E8_V = 16063,
+  VSSEG7E16_V = 16064,
+  VSSEG7E32_V = 16065,
+  VSSEG7E64_V = 16066,
+  VSSEG7E8_V = 16067,
+  VSSEG8E16_V = 16068,
+  VSSEG8E32_V = 16069,
+  VSSEG8E64_V = 16070,
+  VSSEG8E8_V = 16071,
+  VSSRA_VI = 16072,
+  VSSRA_VV = 16073,
+  VSSRA_VX = 16074,
+  VSSRL_VI = 16075,
+  VSSRL_VV = 16076,
+  VSSRL_VX = 16077,
+  VSSSEG2E16_V = 16078,
+  VSSSEG2E32_V = 16079,
+  VSSSEG2E64_V = 16080,
+  VSSSEG2E8_V = 16081,
+  VSSSEG3E16_V = 16082,
+  VSSSEG3E32_V = 16083,
+  VSSSEG3E64_V = 16084,
+  VSSSEG3E8_V = 16085,
+  VSSSEG4E16_V = 16086,
+  VSSSEG4E32_V = 16087,
+  VSSSEG4E64_V = 16088,
+  VSSSEG4E8_V = 16089,
+  VSSSEG5E16_V = 16090,
+  VSSSEG5E32_V = 16091,
+  VSSSEG5E64_V = 16092,
+  VSSSEG5E8_V = 16093,
+  VSSSEG6E16_V = 16094,
+  VSSSEG6E32_V = 16095,
+  VSSSEG6E64_V = 16096,
+  VSSSEG6E8_V = 16097,
+  VSSSEG7E16_V = 16098,
+  VSSSEG7E32_V = 16099,
+  VSSSEG7E64_V = 16100,
+  VSSSEG7E8_V = 16101,
+  VSSSEG8E16_V = 16102,
+  VSSSEG8E32_V = 16103,
+  VSSSEG8E64_V = 16104,
+  VSSSEG8E8_V = 16105,
+  VSSUBU_VV = 16106,
+  VSSUBU_VX = 16107,
+  VSSUB_VV = 16108,
+  VSSUB_VX = 16109,
+  VSUB_VV = 16110,
+  VSUB_VX = 16111,
+  VSUXEI16_V = 16112,
+  VSUXEI32_V = 16113,
+  VSUXEI64_V = 16114,
+  VSUXEI8_V = 16115,
+  VSUXSEG2EI16_V = 16116,
+  VSUXSEG2EI32_V = 16117,
+  VSUXSEG2EI64_V = 16118,
+  VSUXSEG2EI8_V = 16119,
+  VSUXSEG3EI16_V = 16120,
+  VSUXSEG3EI32_V = 16121,
+  VSUXSEG3EI64_V = 16122,
+  VSUXSEG3EI8_V = 16123,
+  VSUXSEG4EI16_V = 16124,
+  VSUXSEG4EI32_V = 16125,
+  VSUXSEG4EI64_V = 16126,
+  VSUXSEG4EI8_V = 16127,
+  VSUXSEG5EI16_V = 16128,
+  VSUXSEG5EI32_V = 16129,
+  VSUXSEG5EI64_V = 16130,
+  VSUXSEG5EI8_V = 16131,
+  VSUXSEG6EI16_V = 16132,
+  VSUXSEG6EI32_V = 16133,
+  VSUXSEG6EI64_V = 16134,
+  VSUXSEG6EI8_V = 16135,
+  VSUXSEG7EI16_V = 16136,
+  VSUXSEG7EI32_V = 16137,
+  VSUXSEG7EI64_V = 16138,
+  VSUXSEG7EI8_V = 16139,
+  VSUXSEG8EI16_V = 16140,
+  VSUXSEG8EI32_V = 16141,
+  VSUXSEG8EI64_V = 16142,
+  VSUXSEG8EI8_V = 16143,
+  VT_MASKC = 16144,
+  VT_MASKCN = 16145,
+  VWADDU_VV = 16146,
+  VWADDU_VX = 16147,
+  VWADDU_WV = 16148,
+  VWADDU_WX = 16149,
+  VWADD_VV = 16150,
+  VWADD_VX = 16151,
+  VWADD_WV = 16152,
+  VWADD_WX = 16153,
+  VWMACCSU_VV = 16154,
+  VWMACCSU_VX = 16155,
+  VWMACCUS_VX = 16156,
+  VWMACCU_VV = 16157,
+  VWMACCU_VX = 16158,
+  VWMACC_VV = 16159,
+  VWMACC_VX = 16160,
+  VWMULSU_VV = 16161,
+  VWMULSU_VX = 16162,
+  VWMULU_VV = 16163,
+  VWMULU_VX = 16164,
+  VWMUL_VV = 16165,
+  VWMUL_VX = 16166,
+  VWREDSUMU_VS = 16167,
+  VWREDSUM_VS = 16168,
+  VWSLL_VI = 16169,
+  VWSLL_VV = 16170,
+  VWSLL_VX = 16171,
+  VWSUBU_VV = 16172,
+  VWSUBU_VX = 16173,
+  VWSUBU_WV = 16174,
+  VWSUBU_WX = 16175,
+  VWSUB_VV = 16176,
+  VWSUB_VX = 16177,
+  VWSUB_WV = 16178,
+  VWSUB_WX = 16179,
+  VXOR_VI = 16180,
+  VXOR_VV = 16181,
+  VXOR_VX = 16182,
+  VZEXT_VF2 = 16183,
+  VZEXT_VF4 = 16184,
+  VZEXT_VF8 = 16185,
+  WADD = 16186,
+  WADDA = 16187,
+  WADDAU = 16188,
+  WADDU = 16189,
+  WFI = 16190,
+  WMACC = 16191,
+  WMACCSU = 16192,
+  WMACCU = 16193,
+  WMUL = 16194,
+  WMULSU = 16195,
+  WMULU = 16196,
+  WRS_NTO = 16197,
+  WRS_STO = 16198,
+  WSLA = 16199,
+  WSLAI = 16200,
+  WSLL = 16201,
+  WSLLI = 16202,
+  WSUB = 16203,
+  WSUBA = 16204,
+  WSUBAU = 16205,
+  WSUBU = 16206,
+  WZIP16P = 16207,
+  WZIP8P = 16208,
+  XNOR = 16209,
+  XOR = 16210,
+  XORI = 16211,
+  XPERM4 = 16212,
+  XPERM8 = 16213,
+  ZEXT_H_RV32 = 16214,
+  ZEXT_H_RV64 = 16215,
+  ZIP16HP = 16216,
+  ZIP16P = 16217,
+  ZIP8HP = 16218,
+  ZIP8P = 16219,
+  ZIP_RV32 = 16220,
+  INSTRUCTION_LIST_END = 16221,
 };
 }
 }
diff --git a/deps/LIEF/include/LIEF/asm/riscv/operands.hpp b/deps/LIEF/include/LIEF/asm/riscv/operands.hpp
new file mode 100644
index 00000000000..9b47b0ee044
--- /dev/null
+++ b/deps/LIEF/include/LIEF/asm/riscv/operands.hpp
@@ -0,0 +1,22 @@
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
+ *
+ * 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.
+ */
+#ifndef LIEF_ASM_RISCV_OPERANDS_H
+#define LIEF_ASM_RISCV_OPERANDS_H
+#include <LIEF/asm/riscv/operands/Register.hpp>
+#include <LIEF/asm/riscv/operands/Immediate.hpp>
+#include <LIEF/asm/riscv/operands/PCRelative.hpp>
+#include <LIEF/asm/riscv/operands/Memory.hpp>
+#endif
diff --git a/deps/LIEF/include/LIEF/asm/riscv/operands/Immediate.hpp b/deps/LIEF/include/LIEF/asm/riscv/operands/Immediate.hpp
new file mode 100644
index 00000000000..2ebb3b08bbf
--- /dev/null
+++ b/deps/LIEF/include/LIEF/asm/riscv/operands/Immediate.hpp
@@ -0,0 +1,49 @@
+/* Copyright 2022 - 2026 R. Thomas
+ *
+ * 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.
+ */
+#ifndef LIEF_ASM_RISCV_OPERAND_IMM_H
+#define LIEF_ASM_RISCV_OPERAND_IMM_H
+#include "LIEF/asm/riscv/Operand.hpp"
+
+namespace LIEF {
+namespace assembly {
+namespace riscv {
+/// Namespace that wraps the different RISC-V operands
+namespace operands {
+
+
+/// This class represents an immediate operand (i.e. a constant)
+///
+/// For instance:
+///
+/// ```text
+/// addi a0, a1, 8
+///              |
+///              +---> Immediate(8)
+/// ```
+class LIEF_API Immediate : public Operand {
+  public:
+  using Operand::Operand;
+
+  /// The constant value wrapped by this operand
+  int64_t value() const;
+
+  static bool classof(const Operand* op);
+  ~Immediate() override = default;
+};
+}
+}
+}
+}
+#endif
diff --git a/deps/LIEF/include/LIEF/asm/riscv/operands/Memory.hpp b/deps/LIEF/include/LIEF/asm/riscv/operands/Memory.hpp
new file mode 100644
index 00000000000..fed67c19950
--- /dev/null
+++ b/deps/LIEF/include/LIEF/asm/riscv/operands/Memory.hpp
@@ -0,0 +1,57 @@
+/* Copyright 2022 - 2026 R. Thomas
+ *
+ * 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.
+ */
+#ifndef LIEF_ASM_RISCV_OPERAND_MEMORY_H
+#define LIEF_ASM_RISCV_OPERAND_MEMORY_H
+#include <cstdint>
+
+#include "LIEF/asm/riscv/Operand.hpp"
+#include "LIEF/asm/riscv/registers.hpp"
+
+namespace LIEF {
+namespace assembly {
+namespace riscv {
+namespace operands {
+
+/// This class represents a memory operand.
+///
+/// ```text
+/// lw   a0, 8(sp)
+///          |  |
+///          |  +----> Base: sp
+///          |
+///          +-------> Displacement: 8
+/// ```
+class LIEF_API Memory : public Operand {
+  public:
+  using Operand::Operand;
+
+  /// The base register.
+  ///
+  /// For `lw a0, 8(sp)` it would return `sp`.
+  REG base() const;
+
+  /// The displacement value.
+  ///
+  /// For `lw a0, 8(sp)` it would return `8`.
+  int64_t displacement() const;
+
+  static bool classof(const Operand* op);
+  ~Memory() override = default;
+};
+}
+}
+}
+}
+#endif
diff --git a/deps/LIEF/include/LIEF/asm/riscv/operands/PCRelative.hpp b/deps/LIEF/include/LIEF/asm/riscv/operands/PCRelative.hpp
new file mode 100644
index 00000000000..4241beea419
--- /dev/null
+++ b/deps/LIEF/include/LIEF/asm/riscv/operands/PCRelative.hpp
@@ -0,0 +1,47 @@
+/* Copyright 2022 - 2026 R. Thomas
+ *
+ * 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.
+ */
+#ifndef LIEF_ASM_RISCV_OPERAND_PCREL_H
+#define LIEF_ASM_RISCV_OPERAND_PCREL_H
+#include "LIEF/asm/riscv/Operand.hpp"
+
+namespace LIEF {
+namespace assembly {
+namespace riscv {
+namespace operands {
+
+/// This class represents a PC-relative operand.
+///
+/// ```text
+/// auipc a0, 0x1
+///           |
+///           v
+///        PC Relative operand
+/// ```
+class LIEF_API PCRelative : public Operand {
+  public:
+  using Operand::Operand;
+
+  /// The effective value that is relative to the current `pc` register
+  int64_t value() const;
+
+  static bool classof(const Operand* op);
+
+  ~PCRelative() override = default;
+};
+}
+}
+}
+}
+#endif
diff --git a/deps/LIEF/include/LIEF/asm/riscv/operands/Register.hpp b/deps/LIEF/include/LIEF/asm/riscv/operands/Register.hpp
new file mode 100644
index 00000000000..3120af575a2
--- /dev/null
+++ b/deps/LIEF/include/LIEF/asm/riscv/operands/Register.hpp
@@ -0,0 +1,70 @@
+/* Copyright 2022 - 2026 R. Thomas
+ *
+ * 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.
+ */
+#ifndef LIEF_ASM_RISCV_OPERAND_REG_H
+#define LIEF_ASM_RISCV_OPERAND_REG_H
+
+#include "LIEF/asm/riscv/Operand.hpp"
+#include "LIEF/asm/riscv/registers.hpp"
+
+namespace LIEF {
+namespace assembly {
+namespace riscv {
+namespace operands {
+
+/// This class represents a register operand.
+///
+/// RISC-V exposes two kinds of registers: regular registers (GPR, FPR,
+/// vector, ...) and control and status registers (CSR / system registers).
+///
+/// ```text
+/// csrr    a0, mstatus
+///         |   |
+///  +------+   +-------+
+///  |                  |
+///  v                  v
+///  REG              SYSREG
+/// ```
+class LIEF_API Register : public Operand {
+  public:
+  using Operand::Operand;
+
+  struct reg_t {
+    /// Enum type used to discriminate the anonymous union
+    enum class TYPE {
+      NONE = 0,
+      /// The union holds a sysreg attribute
+      SYSREG,
+      /// The union holds the reg attribute
+      REG,
+    };
+
+    union {
+      REG reg = REG::NoRegister;
+      SYSREG sysreg;
+    };
+    TYPE type = TYPE::NONE;
+  };
+
+  /// The effective register as either: a REG or a SYSREG
+  reg_t value() const;
+
+  static bool classof(const Operand* op);
+  ~Register() override = default;
+};
+}
+}
+}
+}
+#endif
diff --git a/deps/LIEF/include/LIEF/asm/riscv/registers.hpp b/deps/LIEF/include/LIEF/asm/riscv/registers.hpp
index fa9df4e811f..377b74fdf0e 100644
--- a/deps/LIEF/include/LIEF/asm/riscv/registers.hpp
+++ b/deps/LIEF/include/LIEF/asm/riscv/registers.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -18,7 +18,9 @@ namespace LIEF {
 namespace assembly {
 namespace riscv {
 enum class REG;
+enum class SYSREG;
 const char* get_register_name(REG r);
+const char* get_register_name(SYSREG r);

 enum class REG {
   NoRegister = 0,
@@ -597,6 +599,522 @@ enum class REG {
   NUM_TARGET_REGS = 573,
 };

+enum class SYSREG {
+  fflags = 1,
+  frm = 2,
+  fcsr = 3,
+  vstart = 8,
+  vxsat = 9,
+  vxrm = 10,
+  vcsr = 15,
+  ssp = 17,
+  seed = 21,
+  jvt = 23,
+  sstatus = 256,
+  sie = 260,
+  stvec = 261,
+  scounteren = 262,
+  sf_stvt = 263,
+  senvcfg = 266,
+  sstateen0 = 268,
+  sstateen1 = 269,
+  sstateen2 = 270,
+  sstateen3 = 271,
+  sieh = 276,
+  scountinhibit = 288,
+  sscratch = 320,
+  sepc = 321,
+  scause = 322,
+  sbadaddr = 323,
+  sip = 324,
+  sf_snxti = 325,
+  sf_sintstatus = 326,
+  sf_sscratchcsw = 328,
+  sf_sscratchcswl = 329,
+  stimecmp = 333,
+  sctrctl = 334,
+  sctrstatus = 335,
+  siselect = 336,
+  sireg = 337,
+  sireg2 = 338,
+  sireg3 = 339,
+  siph = 340,
+  sireg4 = 341,
+  sireg5 = 342,
+  sireg6 = 343,
+  stopei = 348,
+  stimecmph = 349,
+  sctrdepth = 351,
+  satp = 384,
+  srmcfg = 385,
+  vsstatus = 512,
+  vsie = 516,
+  vstvec = 517,
+  vsieh = 532,
+  vsscratch = 576,
+  vsepc = 577,
+  vscause = 578,
+  vstval = 579,
+  vsip = 580,
+  vstimecmp = 589,
+  vsctrctl = 590,
+  vsiselect = 592,
+  vsireg = 593,
+  vsireg2 = 594,
+  vsireg3 = 595,
+  vsiph = 596,
+  vsireg4 = 597,
+  vsireg5 = 598,
+  vsireg6 = 599,
+  vstopei = 604,
+  vstimecmph = 605,
+  vsatp = 640,
+  mstatus = 768,
+  misa = 769,
+  medeleg = 770,
+  mideleg = 771,
+  mie = 772,
+  mtvec = 773,
+  mcounteren = 774,
+  sf_mtvt = 775,
+  mvien = 776,
+  mvip = 777,
+  menvcfg = 778,
+  mstateen0 = 780,
+  mstateen1 = 781,
+  mstateen2 = 782,
+  mstateen3 = 783,
+  mstatush = 784,
+  medelegh = 786,
+  midelegh = 787,
+  mieh = 788,
+  mvienh = 792,
+  mviph = 793,
+  menvcfgh = 794,
+  mstateen0h = 796,
+  mstateen1h = 797,
+  mstateen2h = 798,
+  mstateen3h = 799,
+  mcountinhibit = 800,
+  mcyclecfg = 801,
+  minstretcfg = 802,
+  mhpmevent3 = 803,
+  mhpmevent4 = 804,
+  mhpmevent5 = 805,
+  mhpmevent6 = 806,
+  mhpmevent7 = 807,
+  mhpmevent8 = 808,
+  mhpmevent9 = 809,
+  mhpmevent10 = 810,
+  mhpmevent11 = 811,
+  mhpmevent12 = 812,
+  mhpmevent13 = 813,
+  mhpmevent14 = 814,
+  mhpmevent15 = 815,
+  mhpmevent16 = 816,
+  mhpmevent17 = 817,
+  mhpmevent18 = 818,
+  mhpmevent19 = 819,
+  mhpmevent20 = 820,
+  mhpmevent21 = 821,
+  mhpmevent22 = 822,
+  mhpmevent23 = 823,
+  mhpmevent24 = 824,
+  mhpmevent25 = 825,
+  mhpmevent26 = 826,
+  mhpmevent27 = 827,
+  mhpmevent28 = 828,
+  mhpmevent29 = 829,
+  mhpmevent30 = 830,
+  mhpmevent31 = 831,
+  mscratch = 832,
+  mepc = 833,
+  mcause = 834,
+  mbadaddr = 835,
+  mip = 836,
+  sf_mnxti = 837,
+  sf_mintstatus = 838,
+  sf_mscratchcsw = 840,
+  sf_mscratchcswl = 841,
+  mtinst = 842,
+  mtval2 = 843,
+  mctrctl = 846,
+  miselect = 848,
+  mireg = 849,
+  mireg2 = 850,
+  mireg3 = 851,
+  miph = 852,
+  mireg4 = 853,
+  mireg5 = 854,
+  mireg6 = 855,
+  mtopei = 860,
+  pmpcfg0 = 928,
+  pmpcfg1 = 929,
+  pmpcfg2 = 930,
+  pmpcfg3 = 931,
+  pmpcfg4 = 932,
+  pmpcfg5 = 933,
+  pmpcfg6 = 934,
+  pmpcfg7 = 935,
+  pmpcfg8 = 936,
+  pmpcfg9 = 937,
+  pmpcfg10 = 938,
+  pmpcfg11 = 939,
+  pmpcfg12 = 940,
+  pmpcfg13 = 941,
+  pmpcfg14 = 942,
+  pmpcfg15 = 943,
+  pmpaddr0 = 944,
+  pmpaddr1 = 945,
+  pmpaddr2 = 946,
+  pmpaddr3 = 947,
+  pmpaddr4 = 948,
+  pmpaddr5 = 949,
+  pmpaddr6 = 950,
+  pmpaddr7 = 951,
+  pmpaddr8 = 952,
+  pmpaddr9 = 953,
+  pmpaddr10 = 954,
+  pmpaddr11 = 955,
+  pmpaddr12 = 956,
+  pmpaddr13 = 957,
+  pmpaddr14 = 958,
+  pmpaddr15 = 959,
+  pmpaddr16 = 960,
+  pmpaddr17 = 961,
+  pmpaddr18 = 962,
+  pmpaddr19 = 963,
+  pmpaddr20 = 964,
+  pmpaddr21 = 965,
+  pmpaddr22 = 966,
+  pmpaddr23 = 967,
+  pmpaddr24 = 968,
+  pmpaddr25 = 969,
+  pmpaddr26 = 970,
+  pmpaddr27 = 971,
+  pmpaddr28 = 972,
+  pmpaddr29 = 973,
+  pmpaddr30 = 974,
+  pmpaddr31 = 975,
+  pmpaddr32 = 976,
+  pmpaddr33 = 977,
+  pmpaddr34 = 978,
+  pmpaddr35 = 979,
+  pmpaddr36 = 980,
+  pmpaddr37 = 981,
+  pmpaddr38 = 982,
+  pmpaddr39 = 983,
+  pmpaddr40 = 984,
+  pmpaddr41 = 985,
+  pmpaddr42 = 986,
+  pmpaddr43 = 987,
+  pmpaddr44 = 988,
+  pmpaddr45 = 989,
+  pmpaddr46 = 990,
+  pmpaddr47 = 991,
+  pmpaddr48 = 992,
+  pmpaddr49 = 993,
+  pmpaddr50 = 994,
+  pmpaddr51 = 995,
+  pmpaddr52 = 996,
+  pmpaddr53 = 997,
+  pmpaddr54 = 998,
+  pmpaddr55 = 999,
+  pmpaddr56 = 1000,
+  pmpaddr57 = 1001,
+  pmpaddr58 = 1002,
+  pmpaddr59 = 1003,
+  pmpaddr60 = 1004,
+  pmpaddr61 = 1005,
+  pmpaddr62 = 1006,
+  pmpaddr63 = 1007,
+  scontext = 1448,
+  hstatus = 1536,
+  hedeleg = 1538,
+  hideleg = 1539,
+  hie = 1540,
+  htimedelta = 1541,
+  hcounteren = 1542,
+  hgeie = 1543,
+  hvien = 1544,
+  hvictl = 1545,
+  henvcfg = 1546,
+  hstateen0 = 1548,
+  hstateen1 = 1549,
+  hstateen2 = 1550,
+  hstateen3 = 1551,
+  hedelegh = 1554,
+  hidelegh = 1555,
+  htimedeltah = 1557,
+  hvienh = 1560,
+  henvcfgh = 1562,
+  hstateen0h = 1564,
+  hstateen1h = 1565,
+  hstateen2h = 1566,
+  hstateen3h = 1567,
+  htval = 1603,
+  hip = 1604,
+  hvip = 1605,
+  hviprio1 = 1606,
+  hviprio2 = 1607,
+  htinst = 1610,
+  hviph = 1621,
+  hviprio1h = 1622,
+  hviprio2h = 1623,
+  hgatp = 1664,
+  hcontext = 1704,
+  mcyclecfgh = 1825,
+  minstretcfgh = 1826,
+  mhpmevent3h = 1827,
+  mhpmevent4h = 1828,
+  mhpmevent5h = 1829,
+  mhpmevent6h = 1830,
+  mhpmevent7h = 1831,
+  mhpmevent8h = 1832,
+  mhpmevent9h = 1833,
+  mhpmevent10h = 1834,
+  mhpmevent11h = 1835,
+  mhpmevent12h = 1836,
+  mhpmevent13h = 1837,
+  mhpmevent14h = 1838,
+  mhpmevent15h = 1839,
+  mhpmevent16h = 1840,
+  mhpmevent17h = 1841,
+  mhpmevent18h = 1842,
+  mhpmevent19h = 1843,
+  mhpmevent20h = 1844,
+  mhpmevent21h = 1845,
+  mhpmevent22h = 1846,
+  mhpmevent23h = 1847,
+  mhpmevent24h = 1848,
+  mhpmevent25h = 1849,
+  mhpmevent26h = 1850,
+  mhpmevent27h = 1851,
+  mhpmevent28h = 1852,
+  mhpmevent29h = 1853,
+  mhpmevent30h = 1854,
+  mhpmevent31h = 1855,
+  mnscratch = 1856,
+  mnepc = 1857,
+  mncause = 1858,
+  mnstatus = 1860,
+  mseccfg = 1863,
+  mseccfgh = 1879,
+  tselect = 1952,
+  etrigger = 1953,
+  tdata2 = 1954,
+  tdata3 = 1955,
+  tinfo = 1956,
+  tcontrol = 1957,
+  mcontext = 1960,
+  mscontext = 1962,
+  dcsr = 1968,
+  dpc = 1969,
+  dscratch = 1970,
+  dscratch1 = 1971,
+  qc_mmcr = 1984,
+  qc_mntvec = 1987,
+  qc_mstktopaddr = 1988,
+  qc_mstkbottomaddr = 1989,
+  qc_mthreadptr = 1992,
+  qc_mcause = 1993,
+  qc_mwpstartaddr0 = 2000,
+  qc_mwpstartaddr1 = 2001,
+  qc_mwpstartaddr2 = 2002,
+  qc_mwpstartaddr3 = 2003,
+  qc_mwpendaddr0 = 2004,
+  qc_mwpendaddr1 = 2005,
+  qc_mwpendaddr2 = 2006,
+  qc_mwpendaddr3 = 2007,
+  qc_mclicip0 = 2032,
+  qc_mclicip1 = 2033,
+  qc_mclicip2 = 2034,
+  qc_mclicip3 = 2035,
+  qc_mclicip4 = 2036,
+  qc_mclicip5 = 2037,
+  qc_mclicip6 = 2038,
+  qc_mclicip7 = 2039,
+  qc_mclicie0 = 2040,
+  qc_mclicie1 = 2041,
+  qc_mclicie2 = 2042,
+  qc_mclicie3 = 2043,
+  qc_mclicie4 = 2044,
+  qc_mclicie5 = 2045,
+  qc_mclicie6 = 2046,
+  qc_mclicie7 = 2047,
+  mcycle = 2816,
+  minstret = 2818,
+  mhpmcounter3 = 2819,
+  mhpmcounter4 = 2820,
+  mhpmcounter5 = 2821,
+  mhpmcounter6 = 2822,
+  mhpmcounter7 = 2823,
+  mhpmcounter8 = 2824,
+  mhpmcounter9 = 2825,
+  mhpmcounter10 = 2826,
+  mhpmcounter11 = 2827,
+  mhpmcounter12 = 2828,
+  mhpmcounter13 = 2829,
+  mhpmcounter14 = 2830,
+  mhpmcounter15 = 2831,
+  mhpmcounter16 = 2832,
+  mhpmcounter17 = 2833,
+  mhpmcounter18 = 2834,
+  mhpmcounter19 = 2835,
+  mhpmcounter20 = 2836,
+  mhpmcounter21 = 2837,
+  mhpmcounter22 = 2838,
+  mhpmcounter23 = 2839,
+  mhpmcounter24 = 2840,
+  mhpmcounter25 = 2841,
+  mhpmcounter26 = 2842,
+  mhpmcounter27 = 2843,
+  mhpmcounter28 = 2844,
+  mhpmcounter29 = 2845,
+  mhpmcounter30 = 2846,
+  mhpmcounter31 = 2847,
+  mcycleh = 2944,
+  minstreth = 2946,
+  mhpmcounter3h = 2947,
+  mhpmcounter4h = 2948,
+  mhpmcounter5h = 2949,
+  mhpmcounter6h = 2950,
+  mhpmcounter7h = 2951,
+  mhpmcounter8h = 2952,
+  mhpmcounter9h = 2953,
+  mhpmcounter10h = 2954,
+  mhpmcounter11h = 2955,
+  mhpmcounter12h = 2956,
+  mhpmcounter13h = 2957,
+  mhpmcounter14h = 2958,
+  mhpmcounter15h = 2959,
+  mhpmcounter16h = 2960,
+  mhpmcounter17h = 2961,
+  mhpmcounter18h = 2962,
+  mhpmcounter19h = 2963,
+  mhpmcounter20h = 2964,
+  mhpmcounter21h = 2965,
+  mhpmcounter22h = 2966,
+  mhpmcounter23h = 2967,
+  mhpmcounter24h = 2968,
+  mhpmcounter25h = 2969,
+  mhpmcounter26h = 2970,
+  mhpmcounter27h = 2971,
+  mhpmcounter28h = 2972,
+  mhpmcounter29h = 2973,
+  mhpmcounter30h = 2974,
+  mhpmcounter31h = 2975,
+  qc_mclicilvl00 = 3008,
+  qc_mclicilvl01 = 3009,
+  qc_mclicilvl02 = 3010,
+  qc_mclicilvl03 = 3011,
+  qc_mclicilvl04 = 3012,
+  qc_mclicilvl05 = 3013,
+  qc_mclicilvl06 = 3014,
+  qc_mclicilvl07 = 3015,
+  qc_mclicilvl08 = 3016,
+  qc_mclicilvl09 = 3017,
+  qc_mclicilvl10 = 3018,
+  qc_mclicilvl11 = 3019,
+  qc_mclicilvl12 = 3020,
+  qc_mclicilvl13 = 3021,
+  qc_mclicilvl14 = 3022,
+  qc_mclicilvl15 = 3023,
+  qc_mclicilvl16 = 3024,
+  qc_mclicilvl17 = 3025,
+  qc_mclicilvl18 = 3026,
+  qc_mclicilvl19 = 3027,
+  qc_mclicilvl20 = 3028,
+  qc_mclicilvl21 = 3029,
+  qc_mclicilvl22 = 3030,
+  qc_mclicilvl23 = 3031,
+  qc_mclicilvl24 = 3032,
+  qc_mclicilvl25 = 3033,
+  qc_mclicilvl26 = 3034,
+  qc_mclicilvl27 = 3035,
+  qc_mclicilvl28 = 3036,
+  qc_mclicilvl29 = 3037,
+  qc_mclicilvl30 = 3038,
+  qc_mclicilvl31 = 3039,
+  cycle = 3072,
+  time = 3073,
+  instret = 3074,
+  hpmcounter3 = 3075,
+  hpmcounter4 = 3076,
+  hpmcounter5 = 3077,
+  hpmcounter6 = 3078,
+  hpmcounter7 = 3079,
+  hpmcounter8 = 3080,
+  hpmcounter9 = 3081,
+  hpmcounter10 = 3082,
+  hpmcounter11 = 3083,
+  hpmcounter12 = 3084,
+  hpmcounter13 = 3085,
+  hpmcounter14 = 3086,
+  hpmcounter15 = 3087,
+  hpmcounter16 = 3088,
+  hpmcounter17 = 3089,
+  hpmcounter18 = 3090,
+  hpmcounter19 = 3091,
+  hpmcounter20 = 3092,
+  hpmcounter21 = 3093,
+  hpmcounter22 = 3094,
+  hpmcounter23 = 3095,
+  hpmcounter24 = 3096,
+  hpmcounter25 = 3097,
+  hpmcounter26 = 3098,
+  hpmcounter27 = 3099,
+  hpmcounter28 = 3100,
+  hpmcounter29 = 3101,
+  hpmcounter30 = 3102,
+  hpmcounter31 = 3103,
+  vl = 3104,
+  vtype = 3105,
+  vlenb = 3106,
+  cycleh = 3200,
+  timeh = 3201,
+  instreth = 3202,
+  hpmcounter3h = 3203,
+  hpmcounter4h = 3204,
+  hpmcounter5h = 3205,
+  hpmcounter6h = 3206,
+  hpmcounter7h = 3207,
+  hpmcounter8h = 3208,
+  hpmcounter9h = 3209,
+  hpmcounter10h = 3210,
+  hpmcounter11h = 3211,
+  hpmcounter12h = 3212,
+  hpmcounter13h = 3213,
+  hpmcounter14h = 3214,
+  hpmcounter15h = 3215,
+  hpmcounter16h = 3216,
+  hpmcounter17h = 3217,
+  hpmcounter18h = 3218,
+  hpmcounter19h = 3219,
+  hpmcounter20h = 3220,
+  hpmcounter21h = 3221,
+  hpmcounter22h = 3222,
+  hpmcounter23h = 3223,
+  hpmcounter24h = 3224,
+  hpmcounter25h = 3225,
+  hpmcounter26h = 3226,
+  hpmcounter27h = 3227,
+  hpmcounter28h = 3228,
+  hpmcounter29h = 3229,
+  hpmcounter30h = 3230,
+  hpmcounter31h = 3231,
+  scountovf = 3488,
+  stopi = 3504,
+  hgeip = 3602,
+  vstopi = 3760,
+  mvendorid = 3857,
+  marchid = 3858,
+  mimpid = 3859,
+  mhartid = 3860,
+  mconfigptr = 3861,
+  mtopi = 4016,
+  NUM_TARGET_SYSREGS = 513,
+};
 }
 }
 }
diff --git a/deps/LIEF/include/LIEF/asm/x86.hpp b/deps/LIEF/include/LIEF/asm/x86.hpp
index 66ee6ad862f..f08ac5b17eb 100644
--- a/deps/LIEF/include/LIEF/asm/x86.hpp
+++ b/deps/LIEF/include/LIEF/asm/x86.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/deps/LIEF/include/LIEF/asm/x86/Instruction.hpp b/deps/LIEF/include/LIEF/asm/x86/Instruction.hpp
index ee61b9d4369..7eb8532fe73 100644
--- a/deps/LIEF/include/LIEF/asm/x86/Instruction.hpp
+++ b/deps/LIEF/include/LIEF/asm/x86/Instruction.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -15,6 +15,7 @@
 #ifndef LIEF_ASM_X86_INST_H
 #define LIEF_ASM_X86_INST_H
 #include "LIEF/visibility.h"
+#include "LIEF/compiler_attributes.hpp"

 #include "LIEF/asm/Instruction.hpp"
 #include "LIEF/asm/x86/opcodes.hpp"
@@ -37,7 +38,7 @@ class LIEF_API Instruction : public assembly::Instruction {
   OPCODE opcode() const;

   /// Iterator over the operands of the current instruction
-  operands_it operands() const;
+  operands_it operands() const LIEF_LIFETIMEBOUND;

   /// True if `inst` is an **effective** instance of x86::Instruction
   static bool classof(const assembly::Instruction* inst);
diff --git a/deps/LIEF/include/LIEF/asm/x86/Operand.hpp b/deps/LIEF/include/LIEF/asm/x86/Operand.hpp
index e7d73c16f2f..d07015e472a 100644
--- a/deps/LIEF/include/LIEF/asm/x86/Operand.hpp
+++ b/deps/LIEF/include/LIEF/asm/x86/Operand.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -16,6 +16,7 @@
 #define LIEF_ASM_X86_OPERAND_H
 #include "LIEF/visibility.h"
 #include "LIEF/iterators.hpp"
+#include "LIEF/compiler_attributes.hpp"

 #include <memory>
 #include <string>
@@ -35,14 +36,13 @@ class OperandIt;
 /// This class represents an operand for an x86/x86-64 instruction
 class LIEF_API Operand {
   public:
-
-  /// **Forward** iterator that outputs x86 Operand as `std::unique_ptr`
-  class Iterator final :
-    public iterator_facade_base<Iterator, std::forward_iterator_tag, std::unique_ptr<Operand>,
-                                std::ptrdiff_t, Operand*, std::unique_ptr<Operand>>
-  {
+  /// **Forward** iterator that lazily disassembles x86 Operand.
+  class Iterator final
+    : public iterator_facade_base<Iterator, std::forward_iterator_tag, Operand,
+                                  std::ptrdiff_t, const Operand*, const Operand&> {
     public:
     using implementation = details::OperandIt;
+    using iterator_facade_base::operator++;

     LIEF_API Iterator();

@@ -55,7 +55,8 @@ class LIEF_API Operand {

     LIEF_API ~Iterator();

-    LIEF_API Iterator& operator++();
+    // NOLINTNEXTLINE(bugprone-derived-method-shadowing-base-method)
+    LIEF_API Iterator& operator++() LIEF_LIFETIMEBOUND;

     friend LIEF_API bool operator==(const Iterator& LHS, const Iterator& RHS);

@@ -63,10 +64,20 @@ class LIEF_API Operand {
       return !(LHS == RHS);
     }

-    LIEF_API std::unique_ptr<Operand> operator*() const;
+    LIEF_API const Operand& operator*() const LIEF_LIFETIMEBOUND;
+
+    // NOLINTNEXTLINE(bugprone-derived-method-shadowing-base-method)
+    LIEF_API const Operand* operator->() const LIEF_LIFETIMEBOUND;
+
+    /// Transfer ownership of the operand at the current position to the
+    /// caller. Returns `nullptr` if the iterator is past-the-end.
+    LIEF_API std::unique_ptr<Operand> yield();

     private:
+    void load() const;
+
     std::unique_ptr<details::OperandIt> impl_;
+    mutable std::unique_ptr<Operand> cached_;
   };

   /// Pretty representation of the operand
@@ -81,7 +92,7 @@ class LIEF_API Operand {
   /// }
   /// ```
   template<class T>
-  const T* as() const {
+  const T* as() const LIEF_LIFETIMEBOUND {
     static_assert(std::is_base_of<Operand, T>::value,
                   "Require Operand inheritance");
     if (T::classof(this)) {
@@ -92,18 +103,18 @@ class LIEF_API Operand {

   virtual ~Operand();

-  /// \private
+  /// @private
   static LIEF_LOCAL std::unique_ptr<Operand>
-    create(std::unique_ptr<details::Operand> impl);
+      create(std::unique_ptr<details::Operand> impl);

-  /// \private
-  LIEF_LOCAL const details::Operand& impl() const {
+  /// @private
+  LIEF_LOCAL const details::Operand& impl() const LIEF_LIFETIMEBOUND {
     assert(impl_ != nullptr);
     return *impl_;
   }

-  /// \private
-  LIEF_LOCAL details::Operand& impl() {
+  /// @private
+  LIEF_LOCAL details::Operand& impl() LIEF_LIFETIMEBOUND {
     assert(impl_ != nullptr);
     return *impl_;
   }
diff --git a/deps/LIEF/include/LIEF/asm/x86/opcodes.hpp b/deps/LIEF/include/LIEF/asm/x86/opcodes.hpp
index 361ec8c0cf4..d801c684d63 100644
--- a/deps/LIEF/include/LIEF/asm/x86/opcodes.hpp
+++ b/deps/LIEF/include/LIEF/asm/x86/opcodes.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -15,7 +15,7 @@
 #ifndef LIEF_ASM_X86_OPCODE_H
 #define LIEF_ASM_X86_OPCODE_H

-/* Generated from LLVM: 21.1.0 */
+/* Generated from LLVM: 22.1.8 */

 namespace LIEF {
 namespace assembly {
@@ -42,22321 +42,22281 @@ enum class OPCODE {
   DBG_LABEL = 18,
   REG_SEQUENCE = 19,
   COPY = 20,
-  BUNDLE = 21,
-  LIFETIME_START = 22,
-  LIFETIME_END = 23,
-  PSEUDO_PROBE = 24,
-  ARITH_FENCE = 25,
-  STACKMAP = 26,
-  FENTRY_CALL = 27,
-  PATCHPOINT = 28,
-  LOAD_STACK_GUARD = 29,
-  PREALLOCATED_SETUP = 30,
-  PREALLOCATED_ARG = 31,
-  STATEPOINT = 32,
-  LOCAL_ESCAPE = 33,
-  FAULTING_OP = 34,
-  PATCHABLE_OP = 35,
-  PATCHABLE_FUNCTION_ENTER = 36,
-  PATCHABLE_RET = 37,
-  PATCHABLE_FUNCTION_EXIT = 38,
-  PATCHABLE_TAIL_CALL = 39,
-  PATCHABLE_EVENT_CALL = 40,
-  PATCHABLE_TYPED_EVENT_CALL = 41,
-  ICALL_BRANCH_FUNNEL = 42,
-  FAKE_USE = 43,
-  MEMBARRIER = 44,
-  JUMP_TABLE_DEBUG_INFO = 45,
-  CONVERGENCECTRL_ENTRY = 46,
-  CONVERGENCECTRL_ANCHOR = 47,
-  CONVERGENCECTRL_LOOP = 48,
-  CONVERGENCECTRL_GLUE = 49,
-  G_ASSERT_SEXT = 50,
-  G_ASSERT_ZEXT = 51,
-  G_ASSERT_ALIGN = 52,
-  G_ADD = 53,
-  G_SUB = 54,
-  G_MUL = 55,
-  G_SDIV = 56,
-  G_UDIV = 57,
-  G_SREM = 58,
-  G_UREM = 59,
-  G_SDIVREM = 60,
-  G_UDIVREM = 61,
-  G_AND = 62,
-  G_OR = 63,
-  G_XOR = 64,
-  G_ABDS = 65,
-  G_ABDU = 66,
-  G_IMPLICIT_DEF = 67,
-  G_PHI = 68,
-  G_FRAME_INDEX = 69,
-  G_GLOBAL_VALUE = 70,
-  G_PTRAUTH_GLOBAL_VALUE = 71,
-  G_CONSTANT_POOL = 72,
-  G_EXTRACT = 73,
-  G_UNMERGE_VALUES = 74,
-  G_INSERT = 75,
-  G_MERGE_VALUES = 76,
-  G_BUILD_VECTOR = 77,
-  G_BUILD_VECTOR_TRUNC = 78,
-  G_CONCAT_VECTORS = 79,
-  G_PTRTOINT = 80,
-  G_INTTOPTR = 81,
-  G_BITCAST = 82,
-  G_FREEZE = 83,
-  G_CONSTANT_FOLD_BARRIER = 84,
-  G_INTRINSIC_FPTRUNC_ROUND = 85,
-  G_INTRINSIC_TRUNC = 86,
-  G_INTRINSIC_ROUND = 87,
-  G_INTRINSIC_LRINT = 88,
-  G_INTRINSIC_LLRINT = 89,
-  G_INTRINSIC_ROUNDEVEN = 90,
-  G_READCYCLECOUNTER = 91,
-  G_READSTEADYCOUNTER = 92,
-  G_LOAD = 93,
-  G_SEXTLOAD = 94,
-  G_ZEXTLOAD = 95,
-  G_INDEXED_LOAD = 96,
-  G_INDEXED_SEXTLOAD = 97,
-  G_INDEXED_ZEXTLOAD = 98,
-  G_STORE = 99,
-  G_INDEXED_STORE = 100,
-  G_ATOMIC_CMPXCHG_WITH_SUCCESS = 101,
-  G_ATOMIC_CMPXCHG = 102,
-  G_ATOMICRMW_XCHG = 103,
-  G_ATOMICRMW_ADD = 104,
-  G_ATOMICRMW_SUB = 105,
-  G_ATOMICRMW_AND = 106,
-  G_ATOMICRMW_NAND = 107,
-  G_ATOMICRMW_OR = 108,
-  G_ATOMICRMW_XOR = 109,
-  G_ATOMICRMW_MAX = 110,
-  G_ATOMICRMW_MIN = 111,
-  G_ATOMICRMW_UMAX = 112,
-  G_ATOMICRMW_UMIN = 113,
-  G_ATOMICRMW_FADD = 114,
-  G_ATOMICRMW_FSUB = 115,
-  G_ATOMICRMW_FMAX = 116,
-  G_ATOMICRMW_FMIN = 117,
-  G_ATOMICRMW_FMAXIMUM = 118,
-  G_ATOMICRMW_FMINIMUM = 119,
-  G_ATOMICRMW_UINC_WRAP = 120,
-  G_ATOMICRMW_UDEC_WRAP = 121,
-  G_ATOMICRMW_USUB_COND = 122,
-  G_ATOMICRMW_USUB_SAT = 123,
-  G_FENCE = 124,
-  G_PREFETCH = 125,
-  G_BRCOND = 126,
-  G_BRINDIRECT = 127,
-  G_INVOKE_REGION_START = 128,
-  G_INTRINSIC = 129,
-  G_INTRINSIC_W_SIDE_EFFECTS = 130,
-  G_INTRINSIC_CONVERGENT = 131,
-  G_INTRINSIC_CONVERGENT_W_SIDE_EFFECTS = 132,
-  G_ANYEXT = 133,
-  G_TRUNC = 134,
-  G_TRUNC_SSAT_S = 135,
-  G_TRUNC_SSAT_U = 136,
-  G_TRUNC_USAT_U = 137,
-  G_CONSTANT = 138,
-  G_FCONSTANT = 139,
-  G_VASTART = 140,
-  G_VAARG = 141,
-  G_SEXT = 142,
-  G_SEXT_INREG = 143,
-  G_ZEXT = 144,
-  G_SHL = 145,
-  G_LSHR = 146,
-  G_ASHR = 147,
-  G_FSHL = 148,
-  G_FSHR = 149,
-  G_ROTR = 150,
-  G_ROTL = 151,
-  G_ICMP = 152,
-  G_FCMP = 153,
-  G_SCMP = 154,
-  G_UCMP = 155,
-  G_SELECT = 156,
-  G_UADDO = 157,
-  G_UADDE = 158,
-  G_USUBO = 159,
-  G_USUBE = 160,
-  G_SADDO = 161,
-  G_SADDE = 162,
-  G_SSUBO = 163,
-  G_SSUBE = 164,
-  G_UMULO = 165,
-  G_SMULO = 166,
-  G_UMULH = 167,
-  G_SMULH = 168,
-  G_UADDSAT = 169,
-  G_SADDSAT = 170,
-  G_USUBSAT = 171,
-  G_SSUBSAT = 172,
-  G_USHLSAT = 173,
-  G_SSHLSAT = 174,
-  G_SMULFIX = 175,
-  G_UMULFIX = 176,
-  G_SMULFIXSAT = 177,
-  G_UMULFIXSAT = 178,
-  G_SDIVFIX = 179,
-  G_UDIVFIX = 180,
-  G_SDIVFIXSAT = 181,
-  G_UDIVFIXSAT = 182,
-  G_FADD = 183,
-  G_FSUB = 184,
-  G_FMUL = 185,
-  G_FMA = 186,
-  G_FMAD = 187,
-  G_FDIV = 188,
-  G_FREM = 189,
-  G_FPOW = 190,
-  G_FPOWI = 191,
-  G_FEXP = 192,
-  G_FEXP2 = 193,
-  G_FEXP10 = 194,
-  G_FLOG = 195,
-  G_FLOG2 = 196,
-  G_FLOG10 = 197,
-  G_FLDEXP = 198,
-  G_FFREXP = 199,
-  G_FNEG = 200,
-  G_FPEXT = 201,
-  G_FPTRUNC = 202,
-  G_FPTOSI = 203,
-  G_FPTOUI = 204,
-  G_SITOFP = 205,
-  G_UITOFP = 206,
-  G_FPTOSI_SAT = 207,
-  G_FPTOUI_SAT = 208,
-  G_FABS = 209,
-  G_FCOPYSIGN = 210,
-  G_IS_FPCLASS = 211,
-  G_FCANONICALIZE = 212,
-  G_FMINNUM = 213,
-  G_FMAXNUM = 214,
-  G_FMINNUM_IEEE = 215,
-  G_FMAXNUM_IEEE = 216,
-  G_FMINIMUM = 217,
-  G_FMAXIMUM = 218,
-  G_FMINIMUMNUM = 219,
-  G_FMAXIMUMNUM = 220,
-  G_GET_FPENV = 221,
-  G_SET_FPENV = 222,
-  G_RESET_FPENV = 223,
-  G_GET_FPMODE = 224,
-  G_SET_FPMODE = 225,
-  G_RESET_FPMODE = 226,
-  G_GET_ROUNDING = 227,
-  G_PTR_ADD = 228,
-  G_PTRMASK = 229,
-  G_SMIN = 230,
-  G_SMAX = 231,
-  G_UMIN = 232,
-  G_UMAX = 233,
-  G_ABS = 234,
-  G_LROUND = 235,
-  G_LLROUND = 236,
-  G_BR = 237,
-  G_BRJT = 238,
-  G_VSCALE = 239,
-  G_INSERT_SUBVECTOR = 240,
-  G_EXTRACT_SUBVECTOR = 241,
-  G_INSERT_VECTOR_ELT = 242,
-  G_EXTRACT_VECTOR_ELT = 243,
-  G_SHUFFLE_VECTOR = 244,
-  G_SPLAT_VECTOR = 245,
-  G_STEP_VECTOR = 246,
-  G_VECTOR_COMPRESS = 247,
-  G_CTTZ = 248,
-  G_CTTZ_ZERO_UNDEF = 249,
-  G_CTLZ = 250,
-  G_CTLZ_ZERO_UNDEF = 251,
-  G_CTPOP = 252,
-  G_BSWAP = 253,
-  G_BITREVERSE = 254,
-  G_FCEIL = 255,
-  G_FCOS = 256,
-  G_FSIN = 257,
-  G_FSINCOS = 258,
-  G_FTAN = 259,
-  G_FACOS = 260,
-  G_FASIN = 261,
-  G_FATAN = 262,
-  G_FATAN2 = 263,
-  G_FCOSH = 264,
-  G_FSINH = 265,
-  G_FTANH = 266,
-  G_FSQRT = 267,
-  G_FFLOOR = 268,
-  G_FRINT = 269,
-  G_FNEARBYINT = 270,
-  G_ADDRSPACE_CAST = 271,
-  G_BLOCK_ADDR = 272,
-  G_JUMP_TABLE = 273,
-  G_DYN_STACKALLOC = 274,
-  G_STACKSAVE = 275,
-  G_STACKRESTORE = 276,
-  G_STRICT_FADD = 277,
-  G_STRICT_FSUB = 278,
-  G_STRICT_FMUL = 279,
-  G_STRICT_FDIV = 280,
-  G_STRICT_FREM = 281,
-  G_STRICT_FMA = 282,
-  G_STRICT_FSQRT = 283,
-  G_STRICT_FLDEXP = 284,
-  G_READ_REGISTER = 285,
-  G_WRITE_REGISTER = 286,
-  G_MEMCPY = 287,
-  G_MEMCPY_INLINE = 288,
-  G_MEMMOVE = 289,
-  G_MEMSET = 290,
-  G_BZERO = 291,
-  G_TRAP = 292,
-  G_DEBUGTRAP = 293,
-  G_UBSANTRAP = 294,
-  G_VECREDUCE_SEQ_FADD = 295,
-  G_VECREDUCE_SEQ_FMUL = 296,
-  G_VECREDUCE_FADD = 297,
-  G_VECREDUCE_FMUL = 298,
-  G_VECREDUCE_FMAX = 299,
-  G_VECREDUCE_FMIN = 300,
-  G_VECREDUCE_FMAXIMUM = 301,
-  G_VECREDUCE_FMINIMUM = 302,
-  G_VECREDUCE_ADD = 303,
-  G_VECREDUCE_MUL = 304,
-  G_VECREDUCE_AND = 305,
-  G_VECREDUCE_OR = 306,
-  G_VECREDUCE_XOR = 307,
-  G_VECREDUCE_SMAX = 308,
-  G_VECREDUCE_SMIN = 309,
-  G_VECREDUCE_UMAX = 310,
-  G_VECREDUCE_UMIN = 311,
-  G_SBFX = 312,
-  G_UBFX = 313,
-  ADD16ri_DB = 314,
-  ADD16rr_DB = 315,
-  ADD32ri_DB = 316,
-  ADD32rr_DB = 317,
-  ADD64ri32_DB = 318,
-  ADD64rr_DB = 319,
-  ADD8ri_DB = 320,
-  ADD8rr_DB = 321,
-  AVX1_SETALLONES = 322,
-  AVX2_SETALLONES = 323,
-  AVX512_128_SET0 = 324,
-  AVX512_256_SET0 = 325,
-  AVX512_512_SET0 = 326,
-  AVX512_512_SETALLONES = 327,
-  AVX512_512_SEXT_MASK_32 = 328,
-  AVX512_512_SEXT_MASK_64 = 329,
-  AVX512_FsFLD0F128 = 330,
-  AVX512_FsFLD0SD = 331,
-  AVX512_FsFLD0SH = 332,
-  AVX512_FsFLD0SS = 333,
-  AVX_SET0 = 334,
-  CALL64m_RVMARKER = 335,
-  CALL64pcrel32_RVMARKER = 336,
-  CALL64r_ImpCall = 337,
-  CALL64r_RVMARKER = 338,
-  FsFLD0F128 = 339,
-  FsFLD0SD = 340,
-  FsFLD0SH = 341,
-  FsFLD0SS = 342,
-  G_FILD = 343,
-  G_FIST = 344,
-  G_FNSTCW16 = 345,
-  INDIRECT_THUNK_CALL32 = 346,
-  INDIRECT_THUNK_CALL64 = 347,
-  INDIRECT_THUNK_TCRETURN32 = 348,
-  INDIRECT_THUNK_TCRETURN64 = 349,
-  KSET0D = 350,
-  KSET0Q = 351,
-  KSET0W = 352,
-  KSET1D = 353,
-  KSET1Q = 354,
-  KSET1W = 355,
-  LCMPXCHG16B_NO_RBX = 356,
-  LCMPXCHG16B_SAVE_RBX = 357,
-  MMX_SET0 = 358,
-  MORESTACK_RET = 359,
-  MORESTACK_RET_RESTORE_R10 = 360,
-  MOV32ImmSExti8 = 361,
-  MOV32r0 = 362,
-  MOV32r1 = 363,
-  MOV32r_1 = 364,
-  MOV32ri64 = 365,
-  MOV64ImmSExti8 = 366,
-  MWAITX = 367,
-  MWAITX_SAVE_RBX = 368,
-  PLDTILECFGV = 369,
-  PLEA32r = 370,
-  PLEA64r = 371,
-  PT2RPNTLVWZ0RST1V = 372,
-  PT2RPNTLVWZ0RSV = 373,
-  PT2RPNTLVWZ0T1V = 374,
-  PT2RPNTLVWZ0V = 375,
-  PT2RPNTLVWZ1RST1V = 376,
-  PT2RPNTLVWZ1RSV = 377,
-  PT2RPNTLVWZ1T1V = 378,
-  PT2RPNTLVWZ1V = 379,
-  PTDPBF16PSV = 380,
-  PTDPBSSDV = 381,
-  PTDPBSUDV = 382,
-  PTDPBUSDV = 383,
-  PTDPBUUDV = 384,
-  PTDPFP16PSV = 385,
-  PTILELOADDRST1V = 386,
-  PTILELOADDRSV = 387,
-  PTILELOADDT1V = 388,
-  PTILELOADDV = 389,
-  PTILEPAIRLOAD = 390,
-  PTILEPAIRSTORE = 391,
-  PTILESTOREDV = 392,
-  PTILEZEROV = 393,
-  RDFLAGS32 = 394,
-  RDFLAGS64 = 395,
-  SEH_BeginEpilogue = 396,
-  SEH_EndEpilogue = 397,
-  SEH_EndPrologue = 398,
-  SEH_PushFrame = 399,
-  SEH_PushReg = 400,
-  SEH_SaveReg = 401,
-  SEH_SaveXMM = 402,
-  SEH_SetFrame = 403,
-  SEH_StackAlign = 404,
-  SEH_StackAlloc = 405,
-  SEH_UnwindV2Start = 406,
-  SEH_UnwindVersion = 407,
-  SETB_C32r = 408,
-  SETB_C64r = 409,
-  SHLDROT32ri = 410,
-  SHLDROT64ri = 411,
-  SHRDROT32ri = 412,
-  SHRDROT64ri = 413,
-  VMOVAPSZ128mr_NOVLX = 414,
-  VMOVAPSZ128rm_NOVLX = 415,
-  VMOVAPSZ256mr_NOVLX = 416,
-  VMOVAPSZ256rm_NOVLX = 417,
-  VMOVUPSZ128mr_NOVLX = 418,
-  VMOVUPSZ128rm_NOVLX = 419,
-  VMOVUPSZ256mr_NOVLX = 420,
-  VMOVUPSZ256rm_NOVLX = 421,
-  V_SET0 = 422,
-  V_SETALLONES = 423,
-  WRFLAGS32 = 424,
-  WRFLAGS64 = 425,
-  XABORT_DEF = 426,
-  XOR32_FP = 427,
-  XOR64_FP = 428,
-  AAA = 429,
-  AAD8i8 = 430,
-  AADD32mr = 431,
-  AADD32mr_EVEX = 432,
-  AADD64mr = 433,
-  AADD64mr_EVEX = 434,
-  AAM8i8 = 435,
-  AAND32mr = 436,
-  AAND32mr_EVEX = 437,
-  AAND64mr = 438,
-  AAND64mr_EVEX = 439,
-  AAS = 440,
-  ABS_F = 441,
-  ABS_Fp32 = 442,
-  ABS_Fp64 = 443,
-  ABS_Fp80 = 444,
-  ADC16i16 = 445,
-  ADC16mi = 446,
-  ADC16mi8 = 447,
-  ADC16mi8_EVEX = 448,
-  ADC16mi8_ND = 449,
-  ADC16mi_EVEX = 450,
-  ADC16mi_ND = 451,
-  ADC16mr = 452,
-  ADC16mr_EVEX = 453,
-  ADC16mr_ND = 454,
-  ADC16ri = 455,
-  ADC16ri8 = 456,
-  ADC16ri8_EVEX = 457,
-  ADC16ri8_ND = 458,
-  ADC16ri_EVEX = 459,
-  ADC16ri_ND = 460,
-  ADC16rm = 461,
-  ADC16rm_EVEX = 462,
-  ADC16rm_ND = 463,
-  ADC16rr = 464,
-  ADC16rr_EVEX = 465,
-  ADC16rr_EVEX_REV = 466,
-  ADC16rr_ND = 467,
-  ADC16rr_ND_REV = 468,
-  ADC16rr_REV = 469,
-  ADC32i32 = 470,
-  ADC32mi = 471,
-  ADC32mi8 = 472,
-  ADC32mi8_EVEX = 473,
-  ADC32mi8_ND = 474,
-  ADC32mi_EVEX = 475,
-  ADC32mi_ND = 476,
-  ADC32mr = 477,
-  ADC32mr_EVEX = 478,
-  ADC32mr_ND = 479,
-  ADC32ri = 480,
-  ADC32ri8 = 481,
-  ADC32ri8_EVEX = 482,
-  ADC32ri8_ND = 483,
-  ADC32ri_EVEX = 484,
-  ADC32ri_ND = 485,
-  ADC32rm = 486,
-  ADC32rm_EVEX = 487,
-  ADC32rm_ND = 488,
-  ADC32rr = 489,
-  ADC32rr_EVEX = 490,
-  ADC32rr_EVEX_REV = 491,
-  ADC32rr_ND = 492,
-  ADC32rr_ND_REV = 493,
-  ADC32rr_REV = 494,
-  ADC64i32 = 495,
-  ADC64mi32 = 496,
-  ADC64mi32_EVEX = 497,
-  ADC64mi32_ND = 498,
-  ADC64mi8 = 499,
-  ADC64mi8_EVEX = 500,
-  ADC64mi8_ND = 501,
-  ADC64mr = 502,
-  ADC64mr_EVEX = 503,
-  ADC64mr_ND = 504,
-  ADC64ri32 = 505,
-  ADC64ri32_EVEX = 506,
-  ADC64ri32_ND = 507,
-  ADC64ri8 = 508,
-  ADC64ri8_EVEX = 509,
-  ADC64ri8_ND = 510,
-  ADC64rm = 511,
-  ADC64rm_EVEX = 512,
-  ADC64rm_ND = 513,
-  ADC64rr = 514,
-  ADC64rr_EVEX = 515,
-  ADC64rr_EVEX_REV = 516,
-  ADC64rr_ND = 517,
-  ADC64rr_ND_REV = 518,
-  ADC64rr_REV = 519,
-  ADC8i8 = 520,
-  ADC8mi = 521,
-  ADC8mi8 = 522,
-  ADC8mi_EVEX = 523,
-  ADC8mi_ND = 524,
-  ADC8mr = 525,
-  ADC8mr_EVEX = 526,
-  ADC8mr_ND = 527,
-  ADC8ri = 528,
-  ADC8ri8 = 529,
-  ADC8ri_EVEX = 530,
-  ADC8ri_ND = 531,
-  ADC8rm = 532,
-  ADC8rm_EVEX = 533,
-  ADC8rm_ND = 534,
-  ADC8rr = 535,
-  ADC8rr_EVEX = 536,
-  ADC8rr_EVEX_REV = 537,
-  ADC8rr_ND = 538,
-  ADC8rr_ND_REV = 539,
-  ADC8rr_REV = 540,
-  ADCX32rm = 541,
-  ADCX32rm_EVEX = 542,
-  ADCX32rm_ND = 543,
-  ADCX32rr = 544,
-  ADCX32rr_EVEX = 545,
-  ADCX32rr_ND = 546,
-  ADCX64rm = 547,
-  ADCX64rm_EVEX = 548,
-  ADCX64rm_ND = 549,
-  ADCX64rr = 550,
-  ADCX64rr_EVEX = 551,
-  ADCX64rr_ND = 552,
-  ADD16i16 = 553,
-  ADD16mi = 554,
-  ADD16mi8 = 555,
-  ADD16mi8_EVEX = 556,
-  ADD16mi8_ND = 557,
-  ADD16mi8_NF = 558,
-  ADD16mi8_NF_ND = 559,
-  ADD16mi_EVEX = 560,
-  ADD16mi_ND = 561,
-  ADD16mi_NF = 562,
-  ADD16mi_NF_ND = 563,
-  ADD16mr = 564,
-  ADD16mr_EVEX = 565,
-  ADD16mr_ND = 566,
-  ADD16mr_NF = 567,
-  ADD16mr_NF_ND = 568,
-  ADD16ri = 569,
-  ADD16ri8 = 570,
-  ADD16ri8_EVEX = 571,
-  ADD16ri8_ND = 572,
-  ADD16ri8_NF = 573,
-  ADD16ri8_NF_ND = 574,
-  ADD16ri_EVEX = 575,
-  ADD16ri_ND = 576,
-  ADD16ri_NF = 577,
-  ADD16ri_NF_ND = 578,
-  ADD16rm = 579,
-  ADD16rm_EVEX = 580,
-  ADD16rm_ND = 581,
-  ADD16rm_NF = 582,
-  ADD16rm_NF_ND = 583,
-  ADD16rr = 584,
-  ADD16rr_EVEX = 585,
-  ADD16rr_EVEX_REV = 586,
-  ADD16rr_ND = 587,
-  ADD16rr_ND_REV = 588,
-  ADD16rr_NF = 589,
-  ADD16rr_NF_ND = 590,
-  ADD16rr_NF_ND_REV = 591,
-  ADD16rr_NF_REV = 592,
-  ADD16rr_REV = 593,
-  ADD32i32 = 594,
-  ADD32mi = 595,
-  ADD32mi8 = 596,
-  ADD32mi8_EVEX = 597,
-  ADD32mi8_ND = 598,
-  ADD32mi8_NF = 599,
-  ADD32mi8_NF_ND = 600,
-  ADD32mi_EVEX = 601,
-  ADD32mi_ND = 602,
-  ADD32mi_NF = 603,
-  ADD32mi_NF_ND = 604,
-  ADD32mr = 605,
-  ADD32mr_EVEX = 606,
-  ADD32mr_ND = 607,
-  ADD32mr_NF = 608,
-  ADD32mr_NF_ND = 609,
-  ADD32ri = 610,
-  ADD32ri8 = 611,
-  ADD32ri8_EVEX = 612,
-  ADD32ri8_ND = 613,
-  ADD32ri8_NF = 614,
-  ADD32ri8_NF_ND = 615,
-  ADD32ri_EVEX = 616,
-  ADD32ri_ND = 617,
-  ADD32ri_NF = 618,
-  ADD32ri_NF_ND = 619,
-  ADD32rm = 620,
-  ADD32rm_EVEX = 621,
-  ADD32rm_ND = 622,
-  ADD32rm_NF = 623,
-  ADD32rm_NF_ND = 624,
-  ADD32rr = 625,
-  ADD32rr_EVEX = 626,
-  ADD32rr_EVEX_REV = 627,
-  ADD32rr_ND = 628,
-  ADD32rr_ND_REV = 629,
-  ADD32rr_NF = 630,
-  ADD32rr_NF_ND = 631,
-  ADD32rr_NF_ND_REV = 632,
-  ADD32rr_NF_REV = 633,
-  ADD32rr_REV = 634,
-  ADD64i32 = 635,
-  ADD64mi32 = 636,
-  ADD64mi32_EVEX = 637,
-  ADD64mi32_ND = 638,
-  ADD64mi32_NF = 639,
-  ADD64mi32_NF_ND = 640,
-  ADD64mi8 = 641,
-  ADD64mi8_EVEX = 642,
-  ADD64mi8_ND = 643,
-  ADD64mi8_NF = 644,
-  ADD64mi8_NF_ND = 645,
-  ADD64mr = 646,
-  ADD64mr_EVEX = 647,
-  ADD64mr_ND = 648,
-  ADD64mr_NF = 649,
-  ADD64mr_NF_ND = 650,
-  ADD64ri32 = 651,
-  ADD64ri32_EVEX = 652,
-  ADD64ri32_ND = 653,
-  ADD64ri32_NF = 654,
-  ADD64ri32_NF_ND = 655,
-  ADD64ri8 = 656,
-  ADD64ri8_EVEX = 657,
-  ADD64ri8_ND = 658,
-  ADD64ri8_NF = 659,
-  ADD64ri8_NF_ND = 660,
-  ADD64rm = 661,
-  ADD64rm_EVEX = 662,
-  ADD64rm_ND = 663,
-  ADD64rm_NF = 664,
-  ADD64rm_NF_ND = 665,
-  ADD64rr = 666,
-  ADD64rr_EVEX = 667,
-  ADD64rr_EVEX_REV = 668,
-  ADD64rr_ND = 669,
-  ADD64rr_ND_REV = 670,
-  ADD64rr_NF = 671,
-  ADD64rr_NF_ND = 672,
-  ADD64rr_NF_ND_REV = 673,
-  ADD64rr_NF_REV = 674,
-  ADD64rr_REV = 675,
-  ADD8i8 = 676,
-  ADD8mi = 677,
-  ADD8mi8 = 678,
-  ADD8mi_EVEX = 679,
-  ADD8mi_ND = 680,
-  ADD8mi_NF = 681,
-  ADD8mi_NF_ND = 682,
-  ADD8mr = 683,
-  ADD8mr_EVEX = 684,
-  ADD8mr_ND = 685,
-  ADD8mr_NF = 686,
-  ADD8mr_NF_ND = 687,
-  ADD8ri = 688,
-  ADD8ri8 = 689,
-  ADD8ri_EVEX = 690,
-  ADD8ri_ND = 691,
-  ADD8ri_NF = 692,
-  ADD8ri_NF_ND = 693,
-  ADD8rm = 694,
-  ADD8rm_EVEX = 695,
-  ADD8rm_ND = 696,
-  ADD8rm_NF = 697,
-  ADD8rm_NF_ND = 698,
-  ADD8rr = 699,
-  ADD8rr_EVEX = 700,
-  ADD8rr_EVEX_REV = 701,
-  ADD8rr_ND = 702,
-  ADD8rr_ND_REV = 703,
-  ADD8rr_NF = 704,
-  ADD8rr_NF_ND = 705,
-  ADD8rr_NF_ND_REV = 706,
-  ADD8rr_NF_REV = 707,
-  ADD8rr_REV = 708,
-  ADDPDrm = 709,
-  ADDPDrr = 710,
-  ADDPSrm = 711,
-  ADDPSrr = 712,
-  ADDR16_PREFIX = 713,
-  ADDR32_PREFIX = 714,
-  ADDSDrm = 715,
-  ADDSDrm_Int = 716,
-  ADDSDrr = 717,
-  ADDSDrr_Int = 718,
-  ADDSSrm = 719,
-  ADDSSrm_Int = 720,
-  ADDSSrr = 721,
-  ADDSSrr_Int = 722,
-  ADDSUBPDrm = 723,
-  ADDSUBPDrr = 724,
-  ADDSUBPSrm = 725,
-  ADDSUBPSrr = 726,
-  ADD_F32m = 727,
-  ADD_F64m = 728,
-  ADD_FI16m = 729,
-  ADD_FI32m = 730,
-  ADD_FPrST0 = 731,
-  ADD_FST0r = 732,
-  ADD_Fp32 = 733,
-  ADD_Fp32m = 734,
-  ADD_Fp64 = 735,
-  ADD_Fp64m = 736,
-  ADD_Fp64m32 = 737,
-  ADD_Fp80 = 738,
-  ADD_Fp80m32 = 739,
-  ADD_Fp80m64 = 740,
-  ADD_FpI16m32 = 741,
-  ADD_FpI16m64 = 742,
-  ADD_FpI16m80 = 743,
-  ADD_FpI32m32 = 744,
-  ADD_FpI32m64 = 745,
-  ADD_FpI32m80 = 746,
-  ADD_FrST0 = 747,
-  ADJCALLSTACKDOWN32 = 748,
-  ADJCALLSTACKDOWN64 = 749,
-  ADJCALLSTACKUP32 = 750,
-  ADJCALLSTACKUP64 = 751,
-  ADOX32rm = 752,
-  ADOX32rm_EVEX = 753,
-  ADOX32rm_ND = 754,
-  ADOX32rr = 755,
-  ADOX32rr_EVEX = 756,
-  ADOX32rr_ND = 757,
-  ADOX64rm = 758,
-  ADOX64rm_EVEX = 759,
-  ADOX64rm_ND = 760,
-  ADOX64rr = 761,
-  ADOX64rr_EVEX = 762,
-  ADOX64rr_ND = 763,
-  AESDEC128KL = 764,
-  AESDEC256KL = 765,
-  AESDECLASTrm = 766,
-  AESDECLASTrr = 767,
-  AESDECWIDE128KL = 768,
-  AESDECWIDE256KL = 769,
-  AESDECrm = 770,
-  AESDECrr = 771,
-  AESENC128KL = 772,
-  AESENC256KL = 773,
-  AESENCLASTrm = 774,
-  AESENCLASTrr = 775,
-  AESENCWIDE128KL = 776,
-  AESENCWIDE256KL = 777,
-  AESENCrm = 778,
-  AESENCrr = 779,
-  AESIMCrm = 780,
-  AESIMCrr = 781,
-  AESKEYGENASSIST128rm = 782,
-  AESKEYGENASSIST128rr = 783,
-  AND16i16 = 784,
-  AND16mi = 785,
-  AND16mi8 = 786,
-  AND16mi8_EVEX = 787,
-  AND16mi8_ND = 788,
-  AND16mi8_NF = 789,
-  AND16mi8_NF_ND = 790,
-  AND16mi_EVEX = 791,
-  AND16mi_ND = 792,
-  AND16mi_NF = 793,
-  AND16mi_NF_ND = 794,
-  AND16mr = 795,
-  AND16mr_EVEX = 796,
-  AND16mr_ND = 797,
-  AND16mr_NF = 798,
-  AND16mr_NF_ND = 799,
-  AND16ri = 800,
-  AND16ri8 = 801,
-  AND16ri8_EVEX = 802,
-  AND16ri8_ND = 803,
-  AND16ri8_NF = 804,
-  AND16ri8_NF_ND = 805,
-  AND16ri_EVEX = 806,
-  AND16ri_ND = 807,
-  AND16ri_NF = 808,
-  AND16ri_NF_ND = 809,
-  AND16rm = 810,
-  AND16rm_EVEX = 811,
-  AND16rm_ND = 812,
-  AND16rm_NF = 813,
-  AND16rm_NF_ND = 814,
-  AND16rr = 815,
-  AND16rr_EVEX = 816,
-  AND16rr_EVEX_REV = 817,
-  AND16rr_ND = 818,
-  AND16rr_ND_REV = 819,
-  AND16rr_NF = 820,
-  AND16rr_NF_ND = 821,
-  AND16rr_NF_ND_REV = 822,
-  AND16rr_NF_REV = 823,
-  AND16rr_REV = 824,
-  AND32i32 = 825,
-  AND32mi = 826,
-  AND32mi8 = 827,
-  AND32mi8_EVEX = 828,
-  AND32mi8_ND = 829,
-  AND32mi8_NF = 830,
-  AND32mi8_NF_ND = 831,
-  AND32mi_EVEX = 832,
-  AND32mi_ND = 833,
-  AND32mi_NF = 834,
-  AND32mi_NF_ND = 835,
-  AND32mr = 836,
-  AND32mr_EVEX = 837,
-  AND32mr_ND = 838,
-  AND32mr_NF = 839,
-  AND32mr_NF_ND = 840,
-  AND32ri = 841,
-  AND32ri8 = 842,
-  AND32ri8_EVEX = 843,
-  AND32ri8_ND = 844,
-  AND32ri8_NF = 845,
-  AND32ri8_NF_ND = 846,
-  AND32ri_EVEX = 847,
-  AND32ri_ND = 848,
-  AND32ri_NF = 849,
-  AND32ri_NF_ND = 850,
-  AND32rm = 851,
-  AND32rm_EVEX = 852,
-  AND32rm_ND = 853,
-  AND32rm_NF = 854,
-  AND32rm_NF_ND = 855,
-  AND32rr = 856,
-  AND32rr_EVEX = 857,
-  AND32rr_EVEX_REV = 858,
-  AND32rr_ND = 859,
-  AND32rr_ND_REV = 860,
-  AND32rr_NF = 861,
-  AND32rr_NF_ND = 862,
-  AND32rr_NF_ND_REV = 863,
-  AND32rr_NF_REV = 864,
-  AND32rr_REV = 865,
-  AND64i32 = 866,
-  AND64mi32 = 867,
-  AND64mi32_EVEX = 868,
-  AND64mi32_ND = 869,
-  AND64mi32_NF = 870,
-  AND64mi32_NF_ND = 871,
-  AND64mi8 = 872,
-  AND64mi8_EVEX = 873,
-  AND64mi8_ND = 874,
-  AND64mi8_NF = 875,
-  AND64mi8_NF_ND = 876,
-  AND64mr = 877,
-  AND64mr_EVEX = 878,
-  AND64mr_ND = 879,
-  AND64mr_NF = 880,
-  AND64mr_NF_ND = 881,
-  AND64ri32 = 882,
-  AND64ri32_EVEX = 883,
-  AND64ri32_ND = 884,
-  AND64ri32_NF = 885,
-  AND64ri32_NF_ND = 886,
-  AND64ri8 = 887,
-  AND64ri8_EVEX = 888,
-  AND64ri8_ND = 889,
-  AND64ri8_NF = 890,
-  AND64ri8_NF_ND = 891,
-  AND64rm = 892,
-  AND64rm_EVEX = 893,
-  AND64rm_ND = 894,
-  AND64rm_NF = 895,
-  AND64rm_NF_ND = 896,
-  AND64rr = 897,
-  AND64rr_EVEX = 898,
-  AND64rr_EVEX_REV = 899,
-  AND64rr_ND = 900,
-  AND64rr_ND_REV = 901,
-  AND64rr_NF = 902,
-  AND64rr_NF_ND = 903,
-  AND64rr_NF_ND_REV = 904,
-  AND64rr_NF_REV = 905,
-  AND64rr_REV = 906,
-  AND8i8 = 907,
-  AND8mi = 908,
-  AND8mi8 = 909,
-  AND8mi_EVEX = 910,
-  AND8mi_ND = 911,
-  AND8mi_NF = 912,
-  AND8mi_NF_ND = 913,
-  AND8mr = 914,
-  AND8mr_EVEX = 915,
-  AND8mr_ND = 916,
-  AND8mr_NF = 917,
-  AND8mr_NF_ND = 918,
-  AND8ri = 919,
-  AND8ri8 = 920,
-  AND8ri_EVEX = 921,
-  AND8ri_ND = 922,
-  AND8ri_NF = 923,
-  AND8ri_NF_ND = 924,
-  AND8rm = 925,
-  AND8rm_EVEX = 926,
-  AND8rm_ND = 927,
-  AND8rm_NF = 928,
-  AND8rm_NF_ND = 929,
-  AND8rr = 930,
-  AND8rr_EVEX = 931,
-  AND8rr_EVEX_REV = 932,
-  AND8rr_ND = 933,
-  AND8rr_ND_REV = 934,
-  AND8rr_NF = 935,
-  AND8rr_NF_ND = 936,
-  AND8rr_NF_ND_REV = 937,
-  AND8rr_NF_REV = 938,
-  AND8rr_REV = 939,
-  ANDN32rm = 940,
-  ANDN32rm_EVEX = 941,
-  ANDN32rm_NF = 942,
-  ANDN32rr = 943,
-  ANDN32rr_EVEX = 944,
-  ANDN32rr_NF = 945,
-  ANDN64rm = 946,
-  ANDN64rm_EVEX = 947,
-  ANDN64rm_NF = 948,
-  ANDN64rr = 949,
-  ANDN64rr_EVEX = 950,
-  ANDN64rr_NF = 951,
-  ANDNPDrm = 952,
-  ANDNPDrr = 953,
-  ANDNPSrm = 954,
-  ANDNPSrr = 955,
-  ANDPDrm = 956,
-  ANDPDrr = 957,
-  ANDPSrm = 958,
-  ANDPSrr = 959,
-  AOR32mr = 960,
-  AOR32mr_EVEX = 961,
-  AOR64mr = 962,
-  AOR64mr_EVEX = 963,
-  ARPL16mr = 964,
-  ARPL16rr = 965,
-  ASAN_CHECK_MEMACCESS = 966,
-  AXOR32mr = 967,
-  AXOR32mr_EVEX = 968,
-  AXOR64mr = 969,
-  AXOR64mr_EVEX = 970,
-  BEXTR32rm = 971,
-  BEXTR32rm_EVEX = 972,
-  BEXTR32rm_NF = 973,
-  BEXTR32rr = 974,
-  BEXTR32rr_EVEX = 975,
-  BEXTR32rr_NF = 976,
-  BEXTR64rm = 977,
-  BEXTR64rm_EVEX = 978,
-  BEXTR64rm_NF = 979,
-  BEXTR64rr = 980,
-  BEXTR64rr_EVEX = 981,
-  BEXTR64rr_NF = 982,
-  BEXTRI32mi = 983,
-  BEXTRI32ri = 984,
-  BEXTRI64mi = 985,
-  BEXTRI64ri = 986,
-  BLCFILL32rm = 987,
-  BLCFILL32rr = 988,
-  BLCFILL64rm = 989,
-  BLCFILL64rr = 990,
-  BLCI32rm = 991,
-  BLCI32rr = 992,
-  BLCI64rm = 993,
-  BLCI64rr = 994,
-  BLCIC32rm = 995,
-  BLCIC32rr = 996,
-  BLCIC64rm = 997,
-  BLCIC64rr = 998,
-  BLCMSK32rm = 999,
-  BLCMSK32rr = 1000,
-  BLCMSK64rm = 1001,
-  BLCMSK64rr = 1002,
-  BLCS32rm = 1003,
-  BLCS32rr = 1004,
-  BLCS64rm = 1005,
-  BLCS64rr = 1006,
-  BLENDPDrmi = 1007,
-  BLENDPDrri = 1008,
-  BLENDPSrmi = 1009,
-  BLENDPSrri = 1010,
-  BLENDVPDrm0 = 1011,
-  BLENDVPDrr0 = 1012,
-  BLENDVPSrm0 = 1013,
-  BLENDVPSrr0 = 1014,
-  BLSFILL32rm = 1015,
-  BLSFILL32rr = 1016,
-  BLSFILL64rm = 1017,
-  BLSFILL64rr = 1018,
-  BLSI32rm = 1019,
-  BLSI32rm_EVEX = 1020,
-  BLSI32rm_NF = 1021,
-  BLSI32rr = 1022,
-  BLSI32rr_EVEX = 1023,
-  BLSI32rr_NF = 1024,
-  BLSI64rm = 1025,
-  BLSI64rm_EVEX = 1026,
-  BLSI64rm_NF = 1027,
-  BLSI64rr = 1028,
-  BLSI64rr_EVEX = 1029,
-  BLSI64rr_NF = 1030,
-  BLSIC32rm = 1031,
-  BLSIC32rr = 1032,
-  BLSIC64rm = 1033,
-  BLSIC64rr = 1034,
-  BLSMSK32rm = 1035,
-  BLSMSK32rm_EVEX = 1036,
-  BLSMSK32rm_NF = 1037,
-  BLSMSK32rr = 1038,
-  BLSMSK32rr_EVEX = 1039,
-  BLSMSK32rr_NF = 1040,
-  BLSMSK64rm = 1041,
-  BLSMSK64rm_EVEX = 1042,
-  BLSMSK64rm_NF = 1043,
-  BLSMSK64rr = 1044,
-  BLSMSK64rr_EVEX = 1045,
-  BLSMSK64rr_NF = 1046,
-  BLSR32rm = 1047,
-  BLSR32rm_EVEX = 1048,
-  BLSR32rm_NF = 1049,
-  BLSR32rr = 1050,
-  BLSR32rr_EVEX = 1051,
-  BLSR32rr_NF = 1052,
-  BLSR64rm = 1053,
-  BLSR64rm_EVEX = 1054,
-  BLSR64rm_NF = 1055,
-  BLSR64rr = 1056,
-  BLSR64rr_EVEX = 1057,
-  BLSR64rr_NF = 1058,
-  BOUNDS16rm = 1059,
-  BOUNDS32rm = 1060,
-  BSF16rm = 1061,
-  BSF16rr = 1062,
-  BSF32rm = 1063,
-  BSF32rr = 1064,
-  BSF64rm = 1065,
-  BSF64rr = 1066,
-  BSR16rm = 1067,
-  BSR16rr = 1068,
-  BSR32rm = 1069,
-  BSR32rr = 1070,
-  BSR64rm = 1071,
-  BSR64rr = 1072,
-  BSWAP16r_BAD = 1073,
-  BSWAP32r = 1074,
-  BSWAP64r = 1075,
-  BT16mi8 = 1076,
-  BT16mr = 1077,
-  BT16ri8 = 1078,
-  BT16rr = 1079,
-  BT32mi8 = 1080,
-  BT32mr = 1081,
-  BT32ri8 = 1082,
-  BT32rr = 1083,
-  BT64mi8 = 1084,
-  BT64mr = 1085,
-  BT64ri8 = 1086,
-  BT64rr = 1087,
-  BTC16mi8 = 1088,
-  BTC16mr = 1089,
-  BTC16ri8 = 1090,
-  BTC16rr = 1091,
-  BTC32mi8 = 1092,
-  BTC32mr = 1093,
-  BTC32ri8 = 1094,
-  BTC32rr = 1095,
-  BTC64mi8 = 1096,
-  BTC64mr = 1097,
-  BTC64ri8 = 1098,
-  BTC64rr = 1099,
-  BTR16mi8 = 1100,
-  BTR16mr = 1101,
-  BTR16ri8 = 1102,
-  BTR16rr = 1103,
-  BTR32mi8 = 1104,
-  BTR32mr = 1105,
-  BTR32ri8 = 1106,
-  BTR32rr = 1107,
-  BTR64mi8 = 1108,
-  BTR64mr = 1109,
-  BTR64ri8 = 1110,
-  BTR64rr = 1111,
-  BTS16mi8 = 1112,
-  BTS16mr = 1113,
-  BTS16ri8 = 1114,
-  BTS16rr = 1115,
-  BTS32mi8 = 1116,
-  BTS32mr = 1117,
-  BTS32ri8 = 1118,
-  BTS32rr = 1119,
-  BTS64mi8 = 1120,
-  BTS64mr = 1121,
-  BTS64ri8 = 1122,
-  BTS64rr = 1123,
-  BZHI32rm = 1124,
-  BZHI32rm_EVEX = 1125,
-  BZHI32rm_NF = 1126,
-  BZHI32rr = 1127,
-  BZHI32rr_EVEX = 1128,
-  BZHI32rr_NF = 1129,
-  BZHI64rm = 1130,
-  BZHI64rm_EVEX = 1131,
-  BZHI64rm_NF = 1132,
-  BZHI64rr = 1133,
-  BZHI64rr_EVEX = 1134,
-  BZHI64rr_NF = 1135,
-  CALL16m = 1136,
-  CALL16m_NT = 1137,
-  CALL16r = 1138,
-  CALL16r_NT = 1139,
-  CALL32m = 1140,
-  CALL32m_NT = 1141,
-  CALL32r = 1142,
-  CALL32r_NT = 1143,
-  CALL64m = 1144,
-  CALL64m_NT = 1145,
-  CALL64pcrel32 = 1146,
-  CALL64r = 1147,
-  CALL64r_NT = 1148,
-  CALLpcrel16 = 1149,
-  CALLpcrel32 = 1150,
-  CATCHRET = 1151,
-  CBW = 1152,
-  CCMP16mi = 1153,
-  CCMP16mi8 = 1154,
-  CCMP16mr = 1155,
-  CCMP16ri = 1156,
-  CCMP16ri8 = 1157,
-  CCMP16rm = 1158,
-  CCMP16rr = 1159,
-  CCMP16rr_REV = 1160,
-  CCMP32mi = 1161,
-  CCMP32mi8 = 1162,
-  CCMP32mr = 1163,
-  CCMP32ri = 1164,
-  CCMP32ri8 = 1165,
-  CCMP32rm = 1166,
-  CCMP32rr = 1167,
-  CCMP32rr_REV = 1168,
-  CCMP64mi32 = 1169,
-  CCMP64mi8 = 1170,
-  CCMP64mr = 1171,
-  CCMP64ri32 = 1172,
-  CCMP64ri8 = 1173,
-  CCMP64rm = 1174,
-  CCMP64rr = 1175,
-  CCMP64rr_REV = 1176,
-  CCMP8mi = 1177,
-  CCMP8mr = 1178,
-  CCMP8ri = 1179,
-  CCMP8rm = 1180,
-  CCMP8rr = 1181,
-  CCMP8rr_REV = 1182,
-  CDQ = 1183,
-  CDQE = 1184,
-  CFCMOV16mr = 1185,
-  CFCMOV16rm = 1186,
-  CFCMOV16rm_ND = 1187,
-  CFCMOV16rr = 1188,
-  CFCMOV16rr_ND = 1189,
-  CFCMOV16rr_REV = 1190,
-  CFCMOV32mr = 1191,
-  CFCMOV32rm = 1192,
-  CFCMOV32rm_ND = 1193,
-  CFCMOV32rr = 1194,
-  CFCMOV32rr_ND = 1195,
-  CFCMOV32rr_REV = 1196,
-  CFCMOV64mr = 1197,
-  CFCMOV64rm = 1198,
-  CFCMOV64rm_ND = 1199,
-  CFCMOV64rr = 1200,
-  CFCMOV64rr_ND = 1201,
-  CFCMOV64rr_REV = 1202,
-  CHS_F = 1203,
-  CHS_Fp32 = 1204,
-  CHS_Fp64 = 1205,
-  CHS_Fp80 = 1206,
-  CLAC = 1207,
-  CLC = 1208,
-  CLD = 1209,
-  CLDEMOTE = 1210,
-  CLEANUPRET = 1211,
-  CLFLUSH = 1212,
-  CLFLUSHOPT = 1213,
-  CLGI = 1214,
-  CLI = 1215,
-  CLRSSBSY = 1216,
-  CLTS = 1217,
-  CLUI = 1218,
-  CLWB = 1219,
-  CLZERO32r = 1220,
-  CLZERO64r = 1221,
-  CMC = 1222,
-  CMOV16rm = 1223,
-  CMOV16rm_ND = 1224,
-  CMOV16rr = 1225,
-  CMOV16rr_ND = 1226,
-  CMOV32rm = 1227,
-  CMOV32rm_ND = 1228,
-  CMOV32rr = 1229,
-  CMOV32rr_ND = 1230,
-  CMOV64rm = 1231,
-  CMOV64rm_ND = 1232,
-  CMOV64rr = 1233,
-  CMOV64rr_ND = 1234,
-  CMOVBE_F = 1235,
-  CMOVBE_Fp32 = 1236,
-  CMOVBE_Fp64 = 1237,
-  CMOVBE_Fp80 = 1238,
-  CMOVB_F = 1239,
-  CMOVB_Fp32 = 1240,
-  CMOVB_Fp64 = 1241,
-  CMOVB_Fp80 = 1242,
-  CMOVE_F = 1243,
-  CMOVE_Fp32 = 1244,
-  CMOVE_Fp64 = 1245,
-  CMOVE_Fp80 = 1246,
-  CMOVNBE_F = 1247,
-  CMOVNBE_Fp32 = 1248,
-  CMOVNBE_Fp64 = 1249,
-  CMOVNBE_Fp80 = 1250,
-  CMOVNB_F = 1251,
-  CMOVNB_Fp32 = 1252,
-  CMOVNB_Fp64 = 1253,
-  CMOVNB_Fp80 = 1254,
-  CMOVNE_F = 1255,
-  CMOVNE_Fp32 = 1256,
-  CMOVNE_Fp64 = 1257,
-  CMOVNE_Fp80 = 1258,
-  CMOVNP_F = 1259,
-  CMOVNP_Fp32 = 1260,
-  CMOVNP_Fp64 = 1261,
-  CMOVNP_Fp80 = 1262,
-  CMOVP_F = 1263,
-  CMOVP_Fp32 = 1264,
-  CMOVP_Fp64 = 1265,
-  CMOVP_Fp80 = 1266,
-  CMOV_FR16 = 1267,
-  CMOV_FR16X = 1268,
-  CMOV_FR32 = 1269,
-  CMOV_FR32X = 1270,
-  CMOV_FR64 = 1271,
-  CMOV_FR64X = 1272,
-  CMOV_GR16 = 1273,
-  CMOV_GR32 = 1274,
-  CMOV_GR8 = 1275,
-  CMOV_RFP32 = 1276,
-  CMOV_RFP64 = 1277,
-  CMOV_RFP80 = 1278,
-  CMOV_VK1 = 1279,
-  CMOV_VK16 = 1280,
-  CMOV_VK2 = 1281,
-  CMOV_VK32 = 1282,
-  CMOV_VK4 = 1283,
-  CMOV_VK64 = 1284,
-  CMOV_VK8 = 1285,
-  CMOV_VR128 = 1286,
-  CMOV_VR128X = 1287,
-  CMOV_VR256 = 1288,
-  CMOV_VR256X = 1289,
-  CMOV_VR512 = 1290,
-  CMOV_VR64 = 1291,
-  CMP16i16 = 1292,
-  CMP16mi = 1293,
-  CMP16mi8 = 1294,
-  CMP16mr = 1295,
-  CMP16ri = 1296,
-  CMP16ri8 = 1297,
-  CMP16rm = 1298,
-  CMP16rr = 1299,
-  CMP16rr_REV = 1300,
-  CMP32i32 = 1301,
-  CMP32mi = 1302,
-  CMP32mi8 = 1303,
-  CMP32mr = 1304,
-  CMP32ri = 1305,
-  CMP32ri8 = 1306,
-  CMP32rm = 1307,
-  CMP32rr = 1308,
-  CMP32rr_REV = 1309,
-  CMP64i32 = 1310,
-  CMP64mi32 = 1311,
-  CMP64mi8 = 1312,
-  CMP64mr = 1313,
-  CMP64ri32 = 1314,
-  CMP64ri8 = 1315,
-  CMP64rm = 1316,
-  CMP64rr = 1317,
-  CMP64rr_REV = 1318,
-  CMP8i8 = 1319,
-  CMP8mi = 1320,
-  CMP8mi8 = 1321,
-  CMP8mr = 1322,
-  CMP8ri = 1323,
-  CMP8ri8 = 1324,
-  CMP8rm = 1325,
-  CMP8rr = 1326,
-  CMP8rr_REV = 1327,
-  CMPCCXADDmr32 = 1328,
-  CMPCCXADDmr32_EVEX = 1329,
-  CMPCCXADDmr64 = 1330,
-  CMPCCXADDmr64_EVEX = 1331,
-  CMPPDrmi = 1332,
-  CMPPDrri = 1333,
-  CMPPSrmi = 1334,
-  CMPPSrri = 1335,
-  CMPSB = 1336,
-  CMPSDrmi = 1337,
-  CMPSDrmi_Int = 1338,
-  CMPSDrri = 1339,
-  CMPSDrri_Int = 1340,
-  CMPSL = 1341,
-  CMPSQ = 1342,
-  CMPSSrmi = 1343,
-  CMPSSrmi_Int = 1344,
-  CMPSSrri = 1345,
-  CMPSSrri_Int = 1346,
-  CMPSW = 1347,
-  CMPXCHG16B = 1348,
-  CMPXCHG16rm = 1349,
-  CMPXCHG16rr = 1350,
-  CMPXCHG32rm = 1351,
-  CMPXCHG32rr = 1352,
-  CMPXCHG64rm = 1353,
-  CMPXCHG64rr = 1354,
-  CMPXCHG8B = 1355,
-  CMPXCHG8rm = 1356,
-  CMPXCHG8rr = 1357,
-  COMISDrm = 1358,
-  COMISDrm_Int = 1359,
-  COMISDrr = 1360,
-  COMISDrr_Int = 1361,
-  COMISSrm = 1362,
-  COMISSrm_Int = 1363,
-  COMISSrr = 1364,
-  COMISSrr_Int = 1365,
-  COMP_FST0r = 1366,
-  COM_FIPr = 1367,
-  COM_FIr = 1368,
-  COM_FST0r = 1369,
-  COM_FpIr32 = 1370,
-  COM_FpIr64 = 1371,
-  COM_FpIr80 = 1372,
-  COM_Fpr32 = 1373,
-  COM_Fpr64 = 1374,
-  COM_Fpr80 = 1375,
-  CPUID = 1376,
-  CQO = 1377,
-  CRC32r32m16 = 1378,
-  CRC32r32m16_EVEX = 1379,
-  CRC32r32m32 = 1380,
-  CRC32r32m32_EVEX = 1381,
-  CRC32r32m8 = 1382,
-  CRC32r32m8_EVEX = 1383,
-  CRC32r32r16 = 1384,
-  CRC32r32r16_EVEX = 1385,
-  CRC32r32r32 = 1386,
-  CRC32r32r32_EVEX = 1387,
-  CRC32r32r8 = 1388,
-  CRC32r32r8_EVEX = 1389,
-  CRC32r64m64 = 1390,
-  CRC32r64m64_EVEX = 1391,
-  CRC32r64m8 = 1392,
-  CRC32r64m8_EVEX = 1393,
-  CRC32r64r64 = 1394,
-  CRC32r64r64_EVEX = 1395,
-  CRC32r64r8 = 1396,
-  CRC32r64r8_EVEX = 1397,
-  CS_PREFIX = 1398,
-  CTEST16mi = 1399,
-  CTEST16mr = 1400,
-  CTEST16ri = 1401,
-  CTEST16rr = 1402,
-  CTEST32mi = 1403,
-  CTEST32mr = 1404,
-  CTEST32ri = 1405,
-  CTEST32rr = 1406,
-  CTEST64mi32 = 1407,
-  CTEST64mr = 1408,
-  CTEST64ri32 = 1409,
-  CTEST64rr = 1410,
-  CTEST8mi = 1411,
-  CTEST8mr = 1412,
-  CTEST8ri = 1413,
-  CTEST8rr = 1414,
-  CVTDQ2PDrm = 1415,
-  CVTDQ2PDrr = 1416,
-  CVTDQ2PSrm = 1417,
-  CVTDQ2PSrr = 1418,
-  CVTPD2DQrm = 1419,
-  CVTPD2DQrr = 1420,
-  CVTPD2PSrm = 1421,
-  CVTPD2PSrr = 1422,
-  CVTPS2DQrm = 1423,
-  CVTPS2DQrr = 1424,
-  CVTPS2PDrm = 1425,
-  CVTPS2PDrr = 1426,
-  CVTSD2SI64rm = 1427,
-  CVTSD2SI64rm_Int = 1428,
-  CVTSD2SI64rr = 1429,
-  CVTSD2SI64rr_Int = 1430,
-  CVTSD2SIrm = 1431,
-  CVTSD2SIrm_Int = 1432,
-  CVTSD2SIrr = 1433,
-  CVTSD2SIrr_Int = 1434,
-  CVTSD2SSrm = 1435,
-  CVTSD2SSrm_Int = 1436,
-  CVTSD2SSrr = 1437,
-  CVTSD2SSrr_Int = 1438,
-  CVTSI2SDrm = 1439,
-  CVTSI2SDrm_Int = 1440,
-  CVTSI2SDrr = 1441,
-  CVTSI2SDrr_Int = 1442,
-  CVTSI2SSrm = 1443,
-  CVTSI2SSrm_Int = 1444,
-  CVTSI2SSrr = 1445,
-  CVTSI2SSrr_Int = 1446,
-  CVTSI642SDrm = 1447,
-  CVTSI642SDrm_Int = 1448,
-  CVTSI642SDrr = 1449,
-  CVTSI642SDrr_Int = 1450,
-  CVTSI642SSrm = 1451,
-  CVTSI642SSrm_Int = 1452,
-  CVTSI642SSrr = 1453,
-  CVTSI642SSrr_Int = 1454,
-  CVTSS2SDrm = 1455,
-  CVTSS2SDrm_Int = 1456,
-  CVTSS2SDrr = 1457,
-  CVTSS2SDrr_Int = 1458,
-  CVTSS2SI64rm = 1459,
-  CVTSS2SI64rm_Int = 1460,
-  CVTSS2SI64rr = 1461,
-  CVTSS2SI64rr_Int = 1462,
-  CVTSS2SIrm = 1463,
-  CVTSS2SIrm_Int = 1464,
-  CVTSS2SIrr = 1465,
-  CVTSS2SIrr_Int = 1466,
-  CVTTPD2DQrm = 1467,
-  CVTTPD2DQrr = 1468,
-  CVTTPS2DQrm = 1469,
-  CVTTPS2DQrr = 1470,
-  CVTTSD2SI64rm = 1471,
-  CVTTSD2SI64rm_Int = 1472,
-  CVTTSD2SI64rr = 1473,
-  CVTTSD2SI64rr_Int = 1474,
-  CVTTSD2SIrm = 1475,
-  CVTTSD2SIrm_Int = 1476,
-  CVTTSD2SIrr = 1477,
-  CVTTSD2SIrr_Int = 1478,
-  CVTTSS2SI64rm = 1479,
-  CVTTSS2SI64rm_Int = 1480,
-  CVTTSS2SI64rr = 1481,
-  CVTTSS2SI64rr_Int = 1482,
-  CVTTSS2SIrm = 1483,
-  CVTTSS2SIrm_Int = 1484,
-  CVTTSS2SIrr = 1485,
-  CVTTSS2SIrr_Int = 1486,
-  CWD = 1487,
-  CWDE = 1488,
-  DAA = 1489,
-  DAS = 1490,
-  DATA16_PREFIX = 1491,
-  DEC16m = 1492,
-  DEC16m_EVEX = 1493,
-  DEC16m_ND = 1494,
-  DEC16m_NF = 1495,
-  DEC16m_NF_ND = 1496,
-  DEC16r = 1497,
-  DEC16r_EVEX = 1498,
-  DEC16r_ND = 1499,
-  DEC16r_NF = 1500,
-  DEC16r_NF_ND = 1501,
-  DEC16r_alt = 1502,
-  DEC32m = 1503,
-  DEC32m_EVEX = 1504,
-  DEC32m_ND = 1505,
-  DEC32m_NF = 1506,
-  DEC32m_NF_ND = 1507,
-  DEC32r = 1508,
-  DEC32r_EVEX = 1509,
-  DEC32r_ND = 1510,
-  DEC32r_NF = 1511,
-  DEC32r_NF_ND = 1512,
-  DEC32r_alt = 1513,
-  DEC64m = 1514,
-  DEC64m_EVEX = 1515,
-  DEC64m_ND = 1516,
-  DEC64m_NF = 1517,
-  DEC64m_NF_ND = 1518,
-  DEC64r = 1519,
-  DEC64r_EVEX = 1520,
-  DEC64r_ND = 1521,
-  DEC64r_NF = 1522,
-  DEC64r_NF_ND = 1523,
-  DEC8m = 1524,
-  DEC8m_EVEX = 1525,
-  DEC8m_ND = 1526,
-  DEC8m_NF = 1527,
-  DEC8m_NF_ND = 1528,
-  DEC8r = 1529,
-  DEC8r_EVEX = 1530,
-  DEC8r_ND = 1531,
-  DEC8r_NF = 1532,
-  DEC8r_NF_ND = 1533,
-  DIV16m = 1534,
-  DIV16m_EVEX = 1535,
-  DIV16m_NF = 1536,
-  DIV16r = 1537,
-  DIV16r_EVEX = 1538,
-  DIV16r_NF = 1539,
-  DIV32m = 1540,
-  DIV32m_EVEX = 1541,
-  DIV32m_NF = 1542,
-  DIV32r = 1543,
-  DIV32r_EVEX = 1544,
-  DIV32r_NF = 1545,
-  DIV64m = 1546,
-  DIV64m_EVEX = 1547,
-  DIV64m_NF = 1548,
-  DIV64r = 1549,
-  DIV64r_EVEX = 1550,
-  DIV64r_NF = 1551,
-  DIV8m = 1552,
-  DIV8m_EVEX = 1553,
-  DIV8m_NF = 1554,
-  DIV8r = 1555,
-  DIV8r_EVEX = 1556,
-  DIV8r_NF = 1557,
-  DIVPDrm = 1558,
-  DIVPDrr = 1559,
-  DIVPSrm = 1560,
-  DIVPSrr = 1561,
-  DIVR_F32m = 1562,
-  DIVR_F64m = 1563,
-  DIVR_FI16m = 1564,
-  DIVR_FI32m = 1565,
-  DIVR_FPrST0 = 1566,
-  DIVR_FST0r = 1567,
-  DIVR_Fp32m = 1568,
-  DIVR_Fp64m = 1569,
-  DIVR_Fp64m32 = 1570,
-  DIVR_Fp80m32 = 1571,
-  DIVR_Fp80m64 = 1572,
-  DIVR_FpI16m32 = 1573,
-  DIVR_FpI16m64 = 1574,
-  DIVR_FpI16m80 = 1575,
-  DIVR_FpI32m32 = 1576,
-  DIVR_FpI32m64 = 1577,
-  DIVR_FpI32m80 = 1578,
-  DIVR_FrST0 = 1579,
-  DIVSDrm = 1580,
-  DIVSDrm_Int = 1581,
-  DIVSDrr = 1582,
-  DIVSDrr_Int = 1583,
-  DIVSSrm = 1584,
-  DIVSSrm_Int = 1585,
-  DIVSSrr = 1586,
-  DIVSSrr_Int = 1587,
-  DIV_F32m = 1588,
-  DIV_F64m = 1589,
-  DIV_FI16m = 1590,
-  DIV_FI32m = 1591,
-  DIV_FPrST0 = 1592,
-  DIV_FST0r = 1593,
-  DIV_Fp32 = 1594,
-  DIV_Fp32m = 1595,
-  DIV_Fp64 = 1596,
-  DIV_Fp64m = 1597,
-  DIV_Fp64m32 = 1598,
-  DIV_Fp80 = 1599,
-  DIV_Fp80m32 = 1600,
-  DIV_Fp80m64 = 1601,
-  DIV_FpI16m32 = 1602,
-  DIV_FpI16m64 = 1603,
-  DIV_FpI16m80 = 1604,
-  DIV_FpI32m32 = 1605,
-  DIV_FpI32m64 = 1606,
-  DIV_FpI32m80 = 1607,
-  DIV_FrST0 = 1608,
-  DPPDrmi = 1609,
-  DPPDrri = 1610,
-  DPPSrmi = 1611,
-  DPPSrri = 1612,
-  DS_PREFIX = 1613,
-  DYN_ALLOCA_32 = 1614,
-  DYN_ALLOCA_64 = 1615,
-  EH_RETURN = 1616,
-  EH_RETURN64 = 1617,
-  EH_SjLj_LongJmp32 = 1618,
-  EH_SjLj_LongJmp64 = 1619,
-  EH_SjLj_SetJmp32 = 1620,
-  EH_SjLj_SetJmp64 = 1621,
-  EH_SjLj_Setup = 1622,
-  ENCLS = 1623,
-  ENCLU = 1624,
-  ENCLV = 1625,
-  ENCODEKEY128 = 1626,
-  ENCODEKEY256 = 1627,
-  ENDBR32 = 1628,
-  ENDBR64 = 1629,
-  ENQCMD16 = 1630,
-  ENQCMD32 = 1631,
-  ENQCMD32_EVEX = 1632,
-  ENQCMD64 = 1633,
-  ENQCMD64_EVEX = 1634,
-  ENQCMDS16 = 1635,
-  ENQCMDS32 = 1636,
-  ENQCMDS32_EVEX = 1637,
-  ENQCMDS64 = 1638,
-  ENQCMDS64_EVEX = 1639,
-  ENTER = 1640,
-  ERETS = 1641,
-  ERETU = 1642,
-  ES_PREFIX = 1643,
-  EXTRACTPSmri = 1644,
-  EXTRACTPSrri = 1645,
-  EXTRQ = 1646,
-  EXTRQI = 1647,
-  F2XM1 = 1648,
-  FARCALL16i = 1649,
-  FARCALL16m = 1650,
-  FARCALL32i = 1651,
-  FARCALL32m = 1652,
-  FARCALL64m = 1653,
-  FARJMP16i = 1654,
-  FARJMP16m = 1655,
-  FARJMP32i = 1656,
-  FARJMP32m = 1657,
-  FARJMP64m = 1658,
-  FBLDm = 1659,
-  FBSTPm = 1660,
-  FCOM32m = 1661,
-  FCOM64m = 1662,
-  FCOMP32m = 1663,
-  FCOMP64m = 1664,
-  FCOMPP = 1665,
-  FCOS = 1666,
-  FDECSTP = 1667,
-  FEMMS = 1668,
-  FFREE = 1669,
-  FFREEP = 1670,
-  FICOM16m = 1671,
-  FICOM32m = 1672,
-  FICOMP16m = 1673,
-  FICOMP32m = 1674,
-  FINCSTP = 1675,
-  FLDCW16m = 1676,
-  FLDENVm = 1677,
-  FLDL2E = 1678,
-  FLDL2T = 1679,
-  FLDLG2 = 1680,
-  FLDLN2 = 1681,
-  FLDPI = 1682,
-  FNCLEX = 1683,
-  FNINIT = 1684,
-  FNOP = 1685,
-  FNSTCW16m = 1686,
-  FNSTSW16r = 1687,
-  FNSTSWm = 1688,
-  FP32_TO_INT16_IN_MEM = 1689,
-  FP32_TO_INT32_IN_MEM = 1690,
-  FP32_TO_INT64_IN_MEM = 1691,
-  FP64_TO_INT16_IN_MEM = 1692,
-  FP64_TO_INT32_IN_MEM = 1693,
-  FP64_TO_INT64_IN_MEM = 1694,
-  FP80_ADDm32 = 1695,
-  FP80_ADDr = 1696,
-  FP80_TO_INT16_IN_MEM = 1697,
-  FP80_TO_INT32_IN_MEM = 1698,
-  FP80_TO_INT64_IN_MEM = 1699,
-  FPATAN = 1700,
-  FPREM = 1701,
-  FPREM1 = 1702,
-  FPTAN = 1703,
-  FRNDINT = 1704,
-  FRSTORm = 1705,
-  FSAVEm = 1706,
-  FSCALE = 1707,
-  FSIN = 1708,
-  FSINCOS = 1709,
-  FSTENVm = 1710,
-  FS_PREFIX = 1711,
-  FXRSTOR = 1712,
-  FXRSTOR64 = 1713,
-  FXSAVE = 1714,
-  FXSAVE64 = 1715,
-  FXTRACT = 1716,
-  FYL2X = 1717,
-  FYL2XP1 = 1718,
-  GETSEC = 1719,
-  GF2P8AFFINEINVQBrmi = 1720,
-  GF2P8AFFINEINVQBrri = 1721,
-  GF2P8AFFINEQBrmi = 1722,
-  GF2P8AFFINEQBrri = 1723,
-  GF2P8MULBrm = 1724,
-  GF2P8MULBrr = 1725,
-  GS_PREFIX = 1726,
-  HADDPDrm = 1727,
-  HADDPDrr = 1728,
-  HADDPSrm = 1729,
-  HADDPSrr = 1730,
-  HLT = 1731,
-  HRESET = 1732,
-  HSUBPDrm = 1733,
-  HSUBPDrr = 1734,
-  HSUBPSrm = 1735,
-  HSUBPSrr = 1736,
-  IDIV16m = 1737,
-  IDIV16m_EVEX = 1738,
-  IDIV16m_NF = 1739,
-  IDIV16r = 1740,
-  IDIV16r_EVEX = 1741,
-  IDIV16r_NF = 1742,
-  IDIV32m = 1743,
-  IDIV32m_EVEX = 1744,
-  IDIV32m_NF = 1745,
-  IDIV32r = 1746,
-  IDIV32r_EVEX = 1747,
-  IDIV32r_NF = 1748,
-  IDIV64m = 1749,
-  IDIV64m_EVEX = 1750,
-  IDIV64m_NF = 1751,
-  IDIV64r = 1752,
-  IDIV64r_EVEX = 1753,
-  IDIV64r_NF = 1754,
-  IDIV8m = 1755,
-  IDIV8m_EVEX = 1756,
-  IDIV8m_NF = 1757,
-  IDIV8r = 1758,
-  IDIV8r_EVEX = 1759,
-  IDIV8r_NF = 1760,
-  ILD_F16m = 1761,
-  ILD_F32m = 1762,
-  ILD_F64m = 1763,
-  ILD_Fp16m32 = 1764,
-  ILD_Fp16m64 = 1765,
-  ILD_Fp16m80 = 1766,
-  ILD_Fp32m32 = 1767,
-  ILD_Fp32m64 = 1768,
-  ILD_Fp32m80 = 1769,
-  ILD_Fp64m32 = 1770,
-  ILD_Fp64m64 = 1771,
-  ILD_Fp64m80 = 1772,
-  IMUL16m = 1773,
-  IMUL16m_EVEX = 1774,
-  IMUL16m_NF = 1775,
-  IMUL16r = 1776,
-  IMUL16r_EVEX = 1777,
-  IMUL16r_NF = 1778,
-  IMUL16rm = 1779,
-  IMUL16rm_EVEX = 1780,
-  IMUL16rm_ND = 1781,
-  IMUL16rm_NF = 1782,
-  IMUL16rm_NF_ND = 1783,
-  IMUL16rmi = 1784,
-  IMUL16rmi8 = 1785,
-  IMUL16rmi8_EVEX = 1786,
-  IMUL16rmi8_NF = 1787,
-  IMUL16rmi_EVEX = 1788,
-  IMUL16rmi_NF = 1789,
-  IMUL16rr = 1790,
-  IMUL16rr_EVEX = 1791,
-  IMUL16rr_ND = 1792,
-  IMUL16rr_NF = 1793,
-  IMUL16rr_NF_ND = 1794,
-  IMUL16rri = 1795,
-  IMUL16rri8 = 1796,
-  IMUL16rri8_EVEX = 1797,
-  IMUL16rri8_NF = 1798,
-  IMUL16rri_EVEX = 1799,
-  IMUL16rri_NF = 1800,
-  IMUL32m = 1801,
-  IMUL32m_EVEX = 1802,
-  IMUL32m_NF = 1803,
-  IMUL32r = 1804,
-  IMUL32r_EVEX = 1805,
-  IMUL32r_NF = 1806,
-  IMUL32rm = 1807,
-  IMUL32rm_EVEX = 1808,
-  IMUL32rm_ND = 1809,
-  IMUL32rm_NF = 1810,
-  IMUL32rm_NF_ND = 1811,
-  IMUL32rmi = 1812,
-  IMUL32rmi8 = 1813,
-  IMUL32rmi8_EVEX = 1814,
-  IMUL32rmi8_NF = 1815,
-  IMUL32rmi_EVEX = 1816,
-  IMUL32rmi_NF = 1817,
-  IMUL32rr = 1818,
-  IMUL32rr_EVEX = 1819,
-  IMUL32rr_ND = 1820,
-  IMUL32rr_NF = 1821,
-  IMUL32rr_NF_ND = 1822,
-  IMUL32rri = 1823,
-  IMUL32rri8 = 1824,
-  IMUL32rri8_EVEX = 1825,
-  IMUL32rri8_NF = 1826,
-  IMUL32rri_EVEX = 1827,
-  IMUL32rri_NF = 1828,
-  IMUL64m = 1829,
-  IMUL64m_EVEX = 1830,
-  IMUL64m_NF = 1831,
-  IMUL64r = 1832,
-  IMUL64r_EVEX = 1833,
-  IMUL64r_NF = 1834,
-  IMUL64rm = 1835,
-  IMUL64rm_EVEX = 1836,
-  IMUL64rm_ND = 1837,
-  IMUL64rm_NF = 1838,
-  IMUL64rm_NF_ND = 1839,
-  IMUL64rmi32 = 1840,
-  IMUL64rmi32_EVEX = 1841,
-  IMUL64rmi32_NF = 1842,
-  IMUL64rmi8 = 1843,
-  IMUL64rmi8_EVEX = 1844,
-  IMUL64rmi8_NF = 1845,
-  IMUL64rr = 1846,
-  IMUL64rr_EVEX = 1847,
-  IMUL64rr_ND = 1848,
-  IMUL64rr_NF = 1849,
-  IMUL64rr_NF_ND = 1850,
-  IMUL64rri32 = 1851,
-  IMUL64rri32_EVEX = 1852,
-  IMUL64rri32_NF = 1853,
-  IMUL64rri8 = 1854,
-  IMUL64rri8_EVEX = 1855,
-  IMUL64rri8_NF = 1856,
-  IMUL8m = 1857,
-  IMUL8m_EVEX = 1858,
-  IMUL8m_NF = 1859,
-  IMUL8r = 1860,
-  IMUL8r_EVEX = 1861,
-  IMUL8r_NF = 1862,
-  IMULZU16rmi = 1863,
-  IMULZU16rmi8 = 1864,
-  IMULZU16rri = 1865,
-  IMULZU16rri8 = 1866,
-  IMULZU32rmi = 1867,
-  IMULZU32rmi8 = 1868,
-  IMULZU32rri = 1869,
-  IMULZU32rri8 = 1870,
-  IMULZU64rmi32 = 1871,
-  IMULZU64rmi8 = 1872,
-  IMULZU64rri32 = 1873,
-  IMULZU64rri8 = 1874,
-  IN16ri = 1875,
-  IN16rr = 1876,
-  IN32ri = 1877,
-  IN32rr = 1878,
-  IN8ri = 1879,
-  IN8rr = 1880,
-  INC16m = 1881,
-  INC16m_EVEX = 1882,
-  INC16m_ND = 1883,
-  INC16m_NF = 1884,
-  INC16m_NF_ND = 1885,
-  INC16r = 1886,
-  INC16r_EVEX = 1887,
-  INC16r_ND = 1888,
-  INC16r_NF = 1889,
-  INC16r_NF_ND = 1890,
-  INC16r_alt = 1891,
-  INC32m = 1892,
-  INC32m_EVEX = 1893,
-  INC32m_ND = 1894,
-  INC32m_NF = 1895,
-  INC32m_NF_ND = 1896,
-  INC32r = 1897,
-  INC32r_EVEX = 1898,
-  INC32r_ND = 1899,
-  INC32r_NF = 1900,
-  INC32r_NF_ND = 1901,
-  INC32r_alt = 1902,
-  INC64m = 1903,
-  INC64m_EVEX = 1904,
-  INC64m_ND = 1905,
-  INC64m_NF = 1906,
-  INC64m_NF_ND = 1907,
-  INC64r = 1908,
-  INC64r_EVEX = 1909,
-  INC64r_ND = 1910,
-  INC64r_NF = 1911,
-  INC64r_NF_ND = 1912,
-  INC8m = 1913,
-  INC8m_EVEX = 1914,
-  INC8m_ND = 1915,
-  INC8m_NF = 1916,
-  INC8m_NF_ND = 1917,
-  INC8r = 1918,
-  INC8r_EVEX = 1919,
-  INC8r_ND = 1920,
-  INC8r_NF = 1921,
-  INC8r_NF_ND = 1922,
-  INCSSPD = 1923,
-  INCSSPQ = 1924,
-  INSB = 1925,
-  INSERTPSrmi = 1926,
-  INSERTPSrri = 1927,
-  INSERTQ = 1928,
-  INSERTQI = 1929,
-  INSL = 1930,
-  INSW = 1931,
-  INT = 1932,
-  INT3 = 1933,
-  INTO = 1934,
-  INVD = 1935,
-  INVEPT32 = 1936,
-  INVEPT64 = 1937,
-  INVEPT64_EVEX = 1938,
-  INVLPG = 1939,
-  INVLPGA32 = 1940,
-  INVLPGA64 = 1941,
-  INVLPGB32 = 1942,
-  INVLPGB64 = 1943,
-  INVPCID32 = 1944,
-  INVPCID64 = 1945,
-  INVPCID64_EVEX = 1946,
-  INVVPID32 = 1947,
-  INVVPID64 = 1948,
-  INVVPID64_EVEX = 1949,
-  IRET = 1950,
-  IRET16 = 1951,
-  IRET32 = 1952,
-  IRET64 = 1953,
-  ISTT_FP16m = 1954,
-  ISTT_FP32m = 1955,
-  ISTT_FP64m = 1956,
-  ISTT_Fp16m32 = 1957,
-  ISTT_Fp16m64 = 1958,
-  ISTT_Fp16m80 = 1959,
-  ISTT_Fp32m32 = 1960,
-  ISTT_Fp32m64 = 1961,
-  ISTT_Fp32m80 = 1962,
-  ISTT_Fp64m32 = 1963,
-  ISTT_Fp64m64 = 1964,
-  ISTT_Fp64m80 = 1965,
-  IST_F16m = 1966,
-  IST_F32m = 1967,
-  IST_FP16m = 1968,
-  IST_FP32m = 1969,
-  IST_FP64m = 1970,
-  IST_Fp16m32 = 1971,
-  IST_Fp16m64 = 1972,
-  IST_Fp16m80 = 1973,
-  IST_Fp32m32 = 1974,
-  IST_Fp32m64 = 1975,
-  IST_Fp32m80 = 1976,
-  IST_Fp64m32 = 1977,
-  IST_Fp64m64 = 1978,
-  IST_Fp64m80 = 1979,
-  Int_eh_sjlj_setup_dispatch = 1980,
-  JCC_1 = 1981,
-  JCC_2 = 1982,
-  JCC_4 = 1983,
-  JCXZ = 1984,
-  JECXZ = 1985,
-  JMP16m = 1986,
-  JMP16m_NT = 1987,
-  JMP16r = 1988,
-  JMP16r_NT = 1989,
-  JMP32m = 1990,
-  JMP32m_NT = 1991,
-  JMP32r = 1992,
-  JMP32r_NT = 1993,
-  JMP64m = 1994,
-  JMP64m_NT = 1995,
-  JMP64m_REX = 1996,
-  JMP64r = 1997,
-  JMP64r_NT = 1998,
-  JMP64r_REX = 1999,
-  JMPABS64i = 2000,
-  JMP_1 = 2001,
-  JMP_2 = 2002,
-  JMP_4 = 2003,
-  JRCXZ = 2004,
-  KADDBkk = 2005,
-  KADDDkk = 2006,
-  KADDQkk = 2007,
-  KADDWkk = 2008,
-  KANDBkk = 2009,
-  KANDDkk = 2010,
-  KANDNBkk = 2011,
-  KANDNDkk = 2012,
-  KANDNQkk = 2013,
-  KANDNWkk = 2014,
-  KANDQkk = 2015,
-  KANDWkk = 2016,
-  KCFI_CHECK = 2017,
-  KMOVBkk = 2018,
-  KMOVBkk_EVEX = 2019,
-  KMOVBkm = 2020,
-  KMOVBkm_EVEX = 2021,
-  KMOVBkr = 2022,
-  KMOVBkr_EVEX = 2023,
-  KMOVBmk = 2024,
-  KMOVBmk_EVEX = 2025,
-  KMOVBrk = 2026,
-  KMOVBrk_EVEX = 2027,
-  KMOVDkk = 2028,
-  KMOVDkk_EVEX = 2029,
-  KMOVDkm = 2030,
-  KMOVDkm_EVEX = 2031,
-  KMOVDkr = 2032,
-  KMOVDkr_EVEX = 2033,
-  KMOVDmk = 2034,
-  KMOVDmk_EVEX = 2035,
-  KMOVDrk = 2036,
-  KMOVDrk_EVEX = 2037,
-  KMOVQkk = 2038,
-  KMOVQkk_EVEX = 2039,
-  KMOVQkm = 2040,
-  KMOVQkm_EVEX = 2041,
-  KMOVQkr = 2042,
-  KMOVQkr_EVEX = 2043,
-  KMOVQmk = 2044,
-  KMOVQmk_EVEX = 2045,
-  KMOVQrk = 2046,
-  KMOVQrk_EVEX = 2047,
-  KMOVWkk = 2048,
-  KMOVWkk_EVEX = 2049,
-  KMOVWkm = 2050,
-  KMOVWkm_EVEX = 2051,
-  KMOVWkr = 2052,
-  KMOVWkr_EVEX = 2053,
-  KMOVWmk = 2054,
-  KMOVWmk_EVEX = 2055,
-  KMOVWrk = 2056,
-  KMOVWrk_EVEX = 2057,
-  KNOTBkk = 2058,
-  KNOTDkk = 2059,
-  KNOTQkk = 2060,
-  KNOTWkk = 2061,
-  KORBkk = 2062,
-  KORDkk = 2063,
-  KORQkk = 2064,
-  KORTESTBkk = 2065,
-  KORTESTDkk = 2066,
-  KORTESTQkk = 2067,
-  KORTESTWkk = 2068,
-  KORWkk = 2069,
-  KSHIFTLBki = 2070,
-  KSHIFTLDki = 2071,
-  KSHIFTLQki = 2072,
-  KSHIFTLWki = 2073,
-  KSHIFTRBki = 2074,
-  KSHIFTRDki = 2075,
-  KSHIFTRQki = 2076,
-  KSHIFTRWki = 2077,
-  KTESTBkk = 2078,
-  KTESTDkk = 2079,
-  KTESTQkk = 2080,
-  KTESTWkk = 2081,
-  KUNPCKBWkk = 2082,
-  KUNPCKDQkk = 2083,
-  KUNPCKWDkk = 2084,
-  KXNORBkk = 2085,
-  KXNORDkk = 2086,
-  KXNORQkk = 2087,
-  KXNORWkk = 2088,
-  KXORBkk = 2089,
-  KXORDkk = 2090,
-  KXORQkk = 2091,
-  KXORWkk = 2092,
-  LAHF = 2093,
-  LAR16rm = 2094,
-  LAR16rr = 2095,
-  LAR32rm = 2096,
-  LAR32rr = 2097,
-  LAR64rm = 2098,
-  LAR64rr = 2099,
-  LCMPXCHG16 = 2100,
-  LCMPXCHG16B = 2101,
-  LCMPXCHG32 = 2102,
-  LCMPXCHG64 = 2103,
-  LCMPXCHG8 = 2104,
-  LCMPXCHG8B = 2105,
-  LDDQUrm = 2106,
-  LDMXCSR = 2107,
-  LDS16rm = 2108,
-  LDS32rm = 2109,
-  LDTILECFG = 2110,
-  LDTILECFG_EVEX = 2111,
-  LD_F0 = 2112,
-  LD_F1 = 2113,
-  LD_F32m = 2114,
-  LD_F64m = 2115,
-  LD_F80m = 2116,
-  LD_Fp032 = 2117,
-  LD_Fp064 = 2118,
-  LD_Fp080 = 2119,
-  LD_Fp132 = 2120,
-  LD_Fp164 = 2121,
-  LD_Fp180 = 2122,
-  LD_Fp32m = 2123,
-  LD_Fp32m64 = 2124,
-  LD_Fp32m80 = 2125,
-  LD_Fp64m = 2126,
-  LD_Fp64m80 = 2127,
-  LD_Fp80m = 2128,
-  LD_Frr = 2129,
-  LEA16r = 2130,
-  LEA32r = 2131,
-  LEA64_16r = 2132,
-  LEA64_32r = 2133,
-  LEA64_8r = 2134,
-  LEA64r = 2135,
-  LEAVE = 2136,
-  LEAVE64 = 2137,
-  LES16rm = 2138,
-  LES32rm = 2139,
-  LFENCE = 2140,
-  LFS16rm = 2141,
-  LFS32rm = 2142,
-  LFS64rm = 2143,
-  LGDT16m = 2144,
-  LGDT32m = 2145,
-  LGDT64m = 2146,
-  LGS16rm = 2147,
-  LGS32rm = 2148,
-  LGS64rm = 2149,
-  LIDT16m = 2150,
-  LIDT32m = 2151,
-  LIDT64m = 2152,
-  LKGS16m = 2153,
-  LKGS16r = 2154,
-  LLDT16m = 2155,
-  LLDT16r = 2156,
-  LLWPCB = 2157,
-  LLWPCB64 = 2158,
-  LMSW16m = 2159,
-  LMSW16r = 2160,
-  LOADIWKEY = 2161,
-  LOCK_ADD16mi = 2162,
-  LOCK_ADD16mi8 = 2163,
-  LOCK_ADD16mr = 2164,
-  LOCK_ADD32mi = 2165,
-  LOCK_ADD32mi8 = 2166,
-  LOCK_ADD32mr = 2167,
-  LOCK_ADD64mi32 = 2168,
-  LOCK_ADD64mi8 = 2169,
-  LOCK_ADD64mr = 2170,
-  LOCK_ADD8mi = 2171,
-  LOCK_ADD8mr = 2172,
-  LOCK_AND16mi = 2173,
-  LOCK_AND16mi8 = 2174,
-  LOCK_AND16mr = 2175,
-  LOCK_AND32mi = 2176,
-  LOCK_AND32mi8 = 2177,
-  LOCK_AND32mr = 2178,
-  LOCK_AND64mi32 = 2179,
-  LOCK_AND64mi8 = 2180,
-  LOCK_AND64mr = 2181,
-  LOCK_AND8mi = 2182,
-  LOCK_AND8mr = 2183,
-  LOCK_BTC16m = 2184,
-  LOCK_BTC32m = 2185,
-  LOCK_BTC64m = 2186,
-  LOCK_BTC_RM16rm = 2187,
-  LOCK_BTC_RM32rm = 2188,
-  LOCK_BTC_RM64rm = 2189,
-  LOCK_BTR16m = 2190,
-  LOCK_BTR32m = 2191,
-  LOCK_BTR64m = 2192,
-  LOCK_BTR_RM16rm = 2193,
-  LOCK_BTR_RM32rm = 2194,
-  LOCK_BTR_RM64rm = 2195,
-  LOCK_BTS16m = 2196,
-  LOCK_BTS32m = 2197,
-  LOCK_BTS64m = 2198,
-  LOCK_BTS_RM16rm = 2199,
-  LOCK_BTS_RM32rm = 2200,
-  LOCK_BTS_RM64rm = 2201,
-  LOCK_DEC16m = 2202,
-  LOCK_DEC32m = 2203,
-  LOCK_DEC64m = 2204,
-  LOCK_DEC8m = 2205,
-  LOCK_INC16m = 2206,
-  LOCK_INC32m = 2207,
-  LOCK_INC64m = 2208,
-  LOCK_INC8m = 2209,
-  LOCK_OR16mi = 2210,
-  LOCK_OR16mi8 = 2211,
-  LOCK_OR16mr = 2212,
-  LOCK_OR32mi = 2213,
-  LOCK_OR32mi8 = 2214,
-  LOCK_OR32mr = 2215,
-  LOCK_OR64mi32 = 2216,
-  LOCK_OR64mi8 = 2217,
-  LOCK_OR64mr = 2218,
-  LOCK_OR8mi = 2219,
-  LOCK_OR8mr = 2220,
-  LOCK_PREFIX = 2221,
-  LOCK_SUB16mi = 2222,
-  LOCK_SUB16mi8 = 2223,
-  LOCK_SUB16mr = 2224,
-  LOCK_SUB32mi = 2225,
-  LOCK_SUB32mi8 = 2226,
-  LOCK_SUB32mr = 2227,
-  LOCK_SUB64mi32 = 2228,
-  LOCK_SUB64mi8 = 2229,
-  LOCK_SUB64mr = 2230,
-  LOCK_SUB8mi = 2231,
-  LOCK_SUB8mr = 2232,
-  LOCK_XOR16mi = 2233,
-  LOCK_XOR16mi8 = 2234,
-  LOCK_XOR16mr = 2235,
-  LOCK_XOR32mi = 2236,
-  LOCK_XOR32mi8 = 2237,
-  LOCK_XOR32mr = 2238,
-  LOCK_XOR64mi32 = 2239,
-  LOCK_XOR64mi8 = 2240,
-  LOCK_XOR64mr = 2241,
-  LOCK_XOR8mi = 2242,
-  LOCK_XOR8mr = 2243,
-  LODSB = 2244,
-  LODSL = 2245,
-  LODSQ = 2246,
-  LODSW = 2247,
-  LOOP = 2248,
-  LOOPE = 2249,
-  LOOPNE = 2250,
-  LRET16 = 2251,
-  LRET32 = 2252,
-  LRET64 = 2253,
-  LRETI16 = 2254,
-  LRETI32 = 2255,
-  LRETI64 = 2256,
-  LSL16rm = 2257,
-  LSL16rr = 2258,
-  LSL32rm = 2259,
-  LSL32rr = 2260,
-  LSL64rm = 2261,
-  LSL64rr = 2262,
-  LSS16rm = 2263,
-  LSS32rm = 2264,
-  LSS64rm = 2265,
-  LTRm = 2266,
-  LTRr = 2267,
-  LWPINS32rmi = 2268,
-  LWPINS32rri = 2269,
-  LWPINS64rmi = 2270,
-  LWPINS64rri = 2271,
-  LWPVAL32rmi = 2272,
-  LWPVAL32rri = 2273,
-  LWPVAL64rmi = 2274,
-  LWPVAL64rri = 2275,
-  LXADD16 = 2276,
-  LXADD32 = 2277,
-  LXADD64 = 2278,
-  LXADD8 = 2279,
-  LZCNT16rm = 2280,
-  LZCNT16rm_EVEX = 2281,
-  LZCNT16rm_NF = 2282,
-  LZCNT16rr = 2283,
-  LZCNT16rr_EVEX = 2284,
-  LZCNT16rr_NF = 2285,
-  LZCNT32rm = 2286,
-  LZCNT32rm_EVEX = 2287,
-  LZCNT32rm_NF = 2288,
-  LZCNT32rr = 2289,
-  LZCNT32rr_EVEX = 2290,
-  LZCNT32rr_NF = 2291,
-  LZCNT64rm = 2292,
-  LZCNT64rm_EVEX = 2293,
-  LZCNT64rm_NF = 2294,
-  LZCNT64rr = 2295,
-  LZCNT64rr_EVEX = 2296,
-  LZCNT64rr_NF = 2297,
-  MASKMOVDQU = 2298,
-  MASKMOVDQU64 = 2299,
-  MASKPAIR16LOAD = 2300,
-  MASKPAIR16STORE = 2301,
-  MAXCPDrm = 2302,
-  MAXCPDrr = 2303,
-  MAXCPSrm = 2304,
-  MAXCPSrr = 2305,
-  MAXCSDrm = 2306,
-  MAXCSDrr = 2307,
-  MAXCSSrm = 2308,
-  MAXCSSrr = 2309,
-  MAXPDrm = 2310,
-  MAXPDrr = 2311,
-  MAXPSrm = 2312,
-  MAXPSrr = 2313,
-  MAXSDrm = 2314,
-  MAXSDrm_Int = 2315,
-  MAXSDrr = 2316,
-  MAXSDrr_Int = 2317,
-  MAXSSrm = 2318,
-  MAXSSrm_Int = 2319,
-  MAXSSrr = 2320,
-  MAXSSrr_Int = 2321,
-  MFENCE = 2322,
-  MINCPDrm = 2323,
-  MINCPDrr = 2324,
-  MINCPSrm = 2325,
-  MINCPSrr = 2326,
-  MINCSDrm = 2327,
-  MINCSDrr = 2328,
-  MINCSSrm = 2329,
-  MINCSSrr = 2330,
-  MINPDrm = 2331,
-  MINPDrr = 2332,
-  MINPSrm = 2333,
-  MINPSrr = 2334,
-  MINSDrm = 2335,
-  MINSDrm_Int = 2336,
-  MINSDrr = 2337,
-  MINSDrr_Int = 2338,
-  MINSSrm = 2339,
-  MINSSrm_Int = 2340,
-  MINSSrr = 2341,
-  MINSSrr_Int = 2342,
-  MMX_CVTPD2PIrm = 2343,
-  MMX_CVTPD2PIrr = 2344,
-  MMX_CVTPI2PDrm = 2345,
-  MMX_CVTPI2PDrr = 2346,
-  MMX_CVTPI2PSrm = 2347,
-  MMX_CVTPI2PSrr = 2348,
-  MMX_CVTPS2PIrm = 2349,
-  MMX_CVTPS2PIrr = 2350,
-  MMX_CVTTPD2PIrm = 2351,
-  MMX_CVTTPD2PIrr = 2352,
-  MMX_CVTTPS2PIrm = 2353,
-  MMX_CVTTPS2PIrr = 2354,
-  MMX_EMMS = 2355,
-  MMX_MASKMOVQ = 2356,
-  MMX_MASKMOVQ64 = 2357,
-  MMX_MOVD64from64mr = 2358,
-  MMX_MOVD64from64rr = 2359,
-  MMX_MOVD64grr = 2360,
-  MMX_MOVD64mr = 2361,
-  MMX_MOVD64rm = 2362,
-  MMX_MOVD64rr = 2363,
-  MMX_MOVD64to64rm = 2364,
-  MMX_MOVD64to64rr = 2365,
-  MMX_MOVDQ2Qrr = 2366,
-  MMX_MOVFR642Qrr = 2367,
-  MMX_MOVNTQmr = 2368,
-  MMX_MOVQ2DQrr = 2369,
-  MMX_MOVQ2FR64rr = 2370,
-  MMX_MOVQ64mr = 2371,
-  MMX_MOVQ64rm = 2372,
-  MMX_MOVQ64rr = 2373,
-  MMX_MOVQ64rr_REV = 2374,
-  MMX_PABSBrm = 2375,
-  MMX_PABSBrr = 2376,
-  MMX_PABSDrm = 2377,
-  MMX_PABSDrr = 2378,
-  MMX_PABSWrm = 2379,
-  MMX_PABSWrr = 2380,
-  MMX_PACKSSDWrm = 2381,
-  MMX_PACKSSDWrr = 2382,
-  MMX_PACKSSWBrm = 2383,
-  MMX_PACKSSWBrr = 2384,
-  MMX_PACKUSWBrm = 2385,
-  MMX_PACKUSWBrr = 2386,
-  MMX_PADDBrm = 2387,
-  MMX_PADDBrr = 2388,
-  MMX_PADDDrm = 2389,
-  MMX_PADDDrr = 2390,
-  MMX_PADDQrm = 2391,
-  MMX_PADDQrr = 2392,
-  MMX_PADDSBrm = 2393,
-  MMX_PADDSBrr = 2394,
-  MMX_PADDSWrm = 2395,
-  MMX_PADDSWrr = 2396,
-  MMX_PADDUSBrm = 2397,
-  MMX_PADDUSBrr = 2398,
-  MMX_PADDUSWrm = 2399,
-  MMX_PADDUSWrr = 2400,
-  MMX_PADDWrm = 2401,
-  MMX_PADDWrr = 2402,
-  MMX_PALIGNRrmi = 2403,
-  MMX_PALIGNRrri = 2404,
-  MMX_PANDNrm = 2405,
-  MMX_PANDNrr = 2406,
-  MMX_PANDrm = 2407,
-  MMX_PANDrr = 2408,
-  MMX_PAVGBrm = 2409,
-  MMX_PAVGBrr = 2410,
-  MMX_PAVGWrm = 2411,
-  MMX_PAVGWrr = 2412,
-  MMX_PCMPEQBrm = 2413,
-  MMX_PCMPEQBrr = 2414,
-  MMX_PCMPEQDrm = 2415,
-  MMX_PCMPEQDrr = 2416,
-  MMX_PCMPEQWrm = 2417,
-  MMX_PCMPEQWrr = 2418,
-  MMX_PCMPGTBrm = 2419,
-  MMX_PCMPGTBrr = 2420,
-  MMX_PCMPGTDrm = 2421,
-  MMX_PCMPGTDrr = 2422,
-  MMX_PCMPGTWrm = 2423,
-  MMX_PCMPGTWrr = 2424,
-  MMX_PEXTRWrri = 2425,
-  MMX_PHADDDrm = 2426,
-  MMX_PHADDDrr = 2427,
-  MMX_PHADDSWrm = 2428,
-  MMX_PHADDSWrr = 2429,
-  MMX_PHADDWrm = 2430,
-  MMX_PHADDWrr = 2431,
-  MMX_PHSUBDrm = 2432,
-  MMX_PHSUBDrr = 2433,
-  MMX_PHSUBSWrm = 2434,
-  MMX_PHSUBSWrr = 2435,
-  MMX_PHSUBWrm = 2436,
-  MMX_PHSUBWrr = 2437,
-  MMX_PINSRWrmi = 2438,
-  MMX_PINSRWrri = 2439,
-  MMX_PMADDUBSWrm = 2440,
-  MMX_PMADDUBSWrr = 2441,
-  MMX_PMADDWDrm = 2442,
-  MMX_PMADDWDrr = 2443,
-  MMX_PMAXSWrm = 2444,
-  MMX_PMAXSWrr = 2445,
-  MMX_PMAXUBrm = 2446,
-  MMX_PMAXUBrr = 2447,
-  MMX_PMINSWrm = 2448,
-  MMX_PMINSWrr = 2449,
-  MMX_PMINUBrm = 2450,
-  MMX_PMINUBrr = 2451,
-  MMX_PMOVMSKBrr = 2452,
-  MMX_PMULHRSWrm = 2453,
-  MMX_PMULHRSWrr = 2454,
-  MMX_PMULHUWrm = 2455,
-  MMX_PMULHUWrr = 2456,
-  MMX_PMULHWrm = 2457,
-  MMX_PMULHWrr = 2458,
-  MMX_PMULLWrm = 2459,
-  MMX_PMULLWrr = 2460,
-  MMX_PMULUDQrm = 2461,
-  MMX_PMULUDQrr = 2462,
-  MMX_PORrm = 2463,
-  MMX_PORrr = 2464,
-  MMX_PSADBWrm = 2465,
-  MMX_PSADBWrr = 2466,
-  MMX_PSHUFBrm = 2467,
-  MMX_PSHUFBrr = 2468,
-  MMX_PSHUFWmi = 2469,
-  MMX_PSHUFWri = 2470,
-  MMX_PSIGNBrm = 2471,
-  MMX_PSIGNBrr = 2472,
-  MMX_PSIGNDrm = 2473,
-  MMX_PSIGNDrr = 2474,
-  MMX_PSIGNWrm = 2475,
-  MMX_PSIGNWrr = 2476,
-  MMX_PSLLDri = 2477,
-  MMX_PSLLDrm = 2478,
-  MMX_PSLLDrr = 2479,
-  MMX_PSLLQri = 2480,
-  MMX_PSLLQrm = 2481,
-  MMX_PSLLQrr = 2482,
-  MMX_PSLLWri = 2483,
-  MMX_PSLLWrm = 2484,
-  MMX_PSLLWrr = 2485,
-  MMX_PSRADri = 2486,
-  MMX_PSRADrm = 2487,
-  MMX_PSRADrr = 2488,
-  MMX_PSRAWri = 2489,
-  MMX_PSRAWrm = 2490,
-  MMX_PSRAWrr = 2491,
-  MMX_PSRLDri = 2492,
-  MMX_PSRLDrm = 2493,
-  MMX_PSRLDrr = 2494,
-  MMX_PSRLQri = 2495,
-  MMX_PSRLQrm = 2496,
-  MMX_PSRLQrr = 2497,
-  MMX_PSRLWri = 2498,
-  MMX_PSRLWrm = 2499,
-  MMX_PSRLWrr = 2500,
-  MMX_PSUBBrm = 2501,
-  MMX_PSUBBrr = 2502,
-  MMX_PSUBDrm = 2503,
-  MMX_PSUBDrr = 2504,
-  MMX_PSUBQrm = 2505,
-  MMX_PSUBQrr = 2506,
-  MMX_PSUBSBrm = 2507,
-  MMX_PSUBSBrr = 2508,
-  MMX_PSUBSWrm = 2509,
-  MMX_PSUBSWrr = 2510,
-  MMX_PSUBUSBrm = 2511,
-  MMX_PSUBUSBrr = 2512,
-  MMX_PSUBUSWrm = 2513,
-  MMX_PSUBUSWrr = 2514,
-  MMX_PSUBWrm = 2515,
-  MMX_PSUBWrr = 2516,
-  MMX_PUNPCKHBWrm = 2517,
-  MMX_PUNPCKHBWrr = 2518,
-  MMX_PUNPCKHDQrm = 2519,
-  MMX_PUNPCKHDQrr = 2520,
-  MMX_PUNPCKHWDrm = 2521,
-  MMX_PUNPCKHWDrr = 2522,
-  MMX_PUNPCKLBWrm = 2523,
-  MMX_PUNPCKLBWrr = 2524,
-  MMX_PUNPCKLDQrm = 2525,
-  MMX_PUNPCKLDQrr = 2526,
-  MMX_PUNPCKLWDrm = 2527,
-  MMX_PUNPCKLWDrr = 2528,
-  MMX_PXORrm = 2529,
-  MMX_PXORrr = 2530,
-  MONITOR32rrr = 2531,
-  MONITOR64rrr = 2532,
-  MONITORX32rrr = 2533,
-  MONITORX64rrr = 2534,
-  MONTMUL = 2535,
-  MOV16ao16 = 2536,
-  MOV16ao32 = 2537,
-  MOV16ao64 = 2538,
-  MOV16mi = 2539,
-  MOV16mr = 2540,
-  MOV16ms = 2541,
-  MOV16o16a = 2542,
-  MOV16o32a = 2543,
-  MOV16o64a = 2544,
-  MOV16ri = 2545,
-  MOV16ri_alt = 2546,
-  MOV16rm = 2547,
-  MOV16rr = 2548,
-  MOV16rr_REV = 2549,
-  MOV16rs = 2550,
-  MOV16sm = 2551,
-  MOV16sr = 2552,
-  MOV32ao16 = 2553,
-  MOV32ao32 = 2554,
-  MOV32ao64 = 2555,
-  MOV32cr = 2556,
-  MOV32dr = 2557,
-  MOV32mi = 2558,
-  MOV32mr = 2559,
-  MOV32o16a = 2560,
-  MOV32o32a = 2561,
-  MOV32o64a = 2562,
-  MOV32rc = 2563,
-  MOV32rd = 2564,
-  MOV32ri = 2565,
-  MOV32ri_alt = 2566,
-  MOV32rm = 2567,
-  MOV32rr = 2568,
-  MOV32rr_REV = 2569,
-  MOV32rs = 2570,
-  MOV32sr = 2571,
-  MOV64ao32 = 2572,
-  MOV64ao64 = 2573,
-  MOV64cr = 2574,
-  MOV64dr = 2575,
-  MOV64mi32 = 2576,
-  MOV64mr = 2577,
-  MOV64o32a = 2578,
-  MOV64o64a = 2579,
-  MOV64rc = 2580,
-  MOV64rd = 2581,
-  MOV64ri = 2582,
-  MOV64ri32 = 2583,
-  MOV64rm = 2584,
-  MOV64rr = 2585,
-  MOV64rr_REV = 2586,
-  MOV64rs = 2587,
-  MOV64sr = 2588,
-  MOV64toPQIrm = 2589,
-  MOV64toPQIrr = 2590,
-  MOV64toSDrr = 2591,
-  MOV8ao16 = 2592,
-  MOV8ao32 = 2593,
-  MOV8ao64 = 2594,
-  MOV8mi = 2595,
-  MOV8mr = 2596,
-  MOV8mr_NOREX = 2597,
-  MOV8o16a = 2598,
-  MOV8o32a = 2599,
-  MOV8o64a = 2600,
-  MOV8ri = 2601,
-  MOV8ri_alt = 2602,
-  MOV8rm = 2603,
-  MOV8rm_NOREX = 2604,
-  MOV8rr = 2605,
-  MOV8rr_NOREX = 2606,
-  MOV8rr_REV = 2607,
-  MOVAPDmr = 2608,
-  MOVAPDrm = 2609,
-  MOVAPDrr = 2610,
-  MOVAPDrr_REV = 2611,
-  MOVAPSmr = 2612,
-  MOVAPSrm = 2613,
-  MOVAPSrr = 2614,
-  MOVAPSrr_REV = 2615,
-  MOVBE16mr = 2616,
-  MOVBE16mr_EVEX = 2617,
-  MOVBE16rm = 2618,
-  MOVBE16rm_EVEX = 2619,
-  MOVBE16rr = 2620,
-  MOVBE16rr_REV = 2621,
-  MOVBE32mr = 2622,
-  MOVBE32mr_EVEX = 2623,
-  MOVBE32rm = 2624,
-  MOVBE32rm_EVEX = 2625,
-  MOVBE32rr = 2626,
-  MOVBE32rr_REV = 2627,
-  MOVBE64mr = 2628,
-  MOVBE64mr_EVEX = 2629,
-  MOVBE64rm = 2630,
-  MOVBE64rm_EVEX = 2631,
-  MOVBE64rr = 2632,
-  MOVBE64rr_REV = 2633,
-  MOVDDUPrm = 2634,
-  MOVDDUPrr = 2635,
-  MOVDI2PDIrm = 2636,
-  MOVDI2PDIrr = 2637,
-  MOVDI2SSrr = 2638,
-  MOVDIR64B16 = 2639,
-  MOVDIR64B32 = 2640,
-  MOVDIR64B32_EVEX = 2641,
-  MOVDIR64B64 = 2642,
-  MOVDIR64B64_EVEX = 2643,
-  MOVDIRI32 = 2644,
-  MOVDIRI32_EVEX = 2645,
-  MOVDIRI64 = 2646,
-  MOVDIRI64_EVEX = 2647,
-  MOVDQAmr = 2648,
-  MOVDQArm = 2649,
-  MOVDQArr = 2650,
-  MOVDQArr_REV = 2651,
-  MOVDQUmr = 2652,
-  MOVDQUrm = 2653,
-  MOVDQUrr = 2654,
-  MOVDQUrr_REV = 2655,
-  MOVHLPSrr = 2656,
-  MOVHPDmr = 2657,
-  MOVHPDrm = 2658,
-  MOVHPSmr = 2659,
-  MOVHPSrm = 2660,
-  MOVLHPSrr = 2661,
-  MOVLPDmr = 2662,
-  MOVLPDrm = 2663,
-  MOVLPSmr = 2664,
-  MOVLPSrm = 2665,
-  MOVMSKPDrr = 2666,
-  MOVMSKPSrr = 2667,
-  MOVNTDQArm = 2668,
-  MOVNTDQmr = 2669,
-  MOVNTI_64mr = 2670,
-  MOVNTImr = 2671,
-  MOVNTPDmr = 2672,
-  MOVNTPSmr = 2673,
-  MOVNTSD = 2674,
-  MOVNTSS = 2675,
-  MOVPC32r = 2676,
-  MOVPDI2DImr = 2677,
-  MOVPDI2DIrr = 2678,
-  MOVPQI2QImr = 2679,
-  MOVPQI2QIrr = 2680,
-  MOVPQIto64mr = 2681,
-  MOVPQIto64rr = 2682,
-  MOVQI2PQIrm = 2683,
-  MOVRS16rm = 2684,
-  MOVRS16rm_EVEX = 2685,
-  MOVRS32rm = 2686,
-  MOVRS32rm_EVEX = 2687,
-  MOVRS64rm = 2688,
-  MOVRS64rm_EVEX = 2689,
-  MOVRS8rm = 2690,
-  MOVRS8rm_EVEX = 2691,
-  MOVSB = 2692,
-  MOVSDmr = 2693,
-  MOVSDrm = 2694,
-  MOVSDrm_alt = 2695,
-  MOVSDrr = 2696,
-  MOVSDrr_REV = 2697,
-  MOVSDto64rr = 2698,
-  MOVSHDUPrm = 2699,
-  MOVSHDUPrr = 2700,
-  MOVSL = 2701,
-  MOVSLDUPrm = 2702,
-  MOVSLDUPrr = 2703,
-  MOVSQ = 2704,
-  MOVSS2DIrr = 2705,
-  MOVSSmr = 2706,
-  MOVSSrm = 2707,
-  MOVSSrm_alt = 2708,
-  MOVSSrr = 2709,
-  MOVSSrr_REV = 2710,
-  MOVSW = 2711,
-  MOVSX16rm16 = 2712,
-  MOVSX16rm32 = 2713,
-  MOVSX16rm8 = 2714,
-  MOVSX16rr16 = 2715,
-  MOVSX16rr32 = 2716,
-  MOVSX16rr8 = 2717,
-  MOVSX32rm16 = 2718,
-  MOVSX32rm32 = 2719,
-  MOVSX32rm8 = 2720,
-  MOVSX32rm8_NOREX = 2721,
-  MOVSX32rr16 = 2722,
-  MOVSX32rr32 = 2723,
-  MOVSX32rr8 = 2724,
-  MOVSX32rr8_NOREX = 2725,
-  MOVSX64rm16 = 2726,
-  MOVSX64rm32 = 2727,
-  MOVSX64rm8 = 2728,
-  MOVSX64rr16 = 2729,
-  MOVSX64rr32 = 2730,
-  MOVSX64rr8 = 2731,
-  MOVUPDmr = 2732,
-  MOVUPDrm = 2733,
-  MOVUPDrr = 2734,
-  MOVUPDrr_REV = 2735,
-  MOVUPSmr = 2736,
-  MOVUPSrm = 2737,
-  MOVUPSrr = 2738,
-  MOVUPSrr_REV = 2739,
-  MOVZPQILo2PQIrr = 2740,
-  MOVZX16rm16 = 2741,
-  MOVZX16rm8 = 2742,
-  MOVZX16rr16 = 2743,
-  MOVZX16rr8 = 2744,
-  MOVZX32rm16 = 2745,
-  MOVZX32rm8 = 2746,
-  MOVZX32rm8_NOREX = 2747,
-  MOVZX32rr16 = 2748,
-  MOVZX32rr8 = 2749,
-  MOVZX32rr8_NOREX = 2750,
-  MOVZX64rm16 = 2751,
-  MOVZX64rm8 = 2752,
-  MOVZX64rr16 = 2753,
-  MOVZX64rr8 = 2754,
-  MPSADBWrmi = 2755,
-  MPSADBWrri = 2756,
-  MUL16m = 2757,
-  MUL16m_EVEX = 2758,
-  MUL16m_NF = 2759,
-  MUL16r = 2760,
-  MUL16r_EVEX = 2761,
-  MUL16r_NF = 2762,
-  MUL32m = 2763,
-  MUL32m_EVEX = 2764,
-  MUL32m_NF = 2765,
-  MUL32r = 2766,
-  MUL32r_EVEX = 2767,
-  MUL32r_NF = 2768,
-  MUL64m = 2769,
-  MUL64m_EVEX = 2770,
-  MUL64m_NF = 2771,
-  MUL64r = 2772,
-  MUL64r_EVEX = 2773,
-  MUL64r_NF = 2774,
-  MUL8m = 2775,
-  MUL8m_EVEX = 2776,
-  MUL8m_NF = 2777,
-  MUL8r = 2778,
-  MUL8r_EVEX = 2779,
-  MUL8r_NF = 2780,
-  MULPDrm = 2781,
-  MULPDrr = 2782,
-  MULPSrm = 2783,
-  MULPSrr = 2784,
-  MULSDrm = 2785,
-  MULSDrm_Int = 2786,
-  MULSDrr = 2787,
-  MULSDrr_Int = 2788,
-  MULSSrm = 2789,
-  MULSSrm_Int = 2790,
-  MULSSrr = 2791,
-  MULSSrr_Int = 2792,
-  MULX32Hrm = 2793,
-  MULX32Hrr = 2794,
-  MULX32rm = 2795,
-  MULX32rm_EVEX = 2796,
-  MULX32rr = 2797,
-  MULX32rr_EVEX = 2798,
-  MULX64Hrm = 2799,
-  MULX64Hrr = 2800,
-  MULX64rm = 2801,
-  MULX64rm_EVEX = 2802,
-  MULX64rr = 2803,
-  MULX64rr_EVEX = 2804,
-  MUL_F32m = 2805,
-  MUL_F64m = 2806,
-  MUL_FI16m = 2807,
-  MUL_FI32m = 2808,
-  MUL_FPrST0 = 2809,
-  MUL_FST0r = 2810,
-  MUL_Fp32 = 2811,
-  MUL_Fp32m = 2812,
-  MUL_Fp64 = 2813,
-  MUL_Fp64m = 2814,
-  MUL_Fp64m32 = 2815,
-  MUL_Fp80 = 2816,
-  MUL_Fp80m32 = 2817,
-  MUL_Fp80m64 = 2818,
-  MUL_FpI16m32 = 2819,
-  MUL_FpI16m64 = 2820,
-  MUL_FpI16m80 = 2821,
-  MUL_FpI32m32 = 2822,
-  MUL_FpI32m64 = 2823,
-  MUL_FpI32m80 = 2824,
-  MUL_FrST0 = 2825,
-  MWAITXrrr = 2826,
-  MWAITrr = 2827,
-  NEG16m = 2828,
-  NEG16m_EVEX = 2829,
-  NEG16m_ND = 2830,
-  NEG16m_NF = 2831,
-  NEG16m_NF_ND = 2832,
-  NEG16r = 2833,
-  NEG16r_EVEX = 2834,
-  NEG16r_ND = 2835,
-  NEG16r_NF = 2836,
-  NEG16r_NF_ND = 2837,
-  NEG32m = 2838,
-  NEG32m_EVEX = 2839,
-  NEG32m_ND = 2840,
-  NEG32m_NF = 2841,
-  NEG32m_NF_ND = 2842,
-  NEG32r = 2843,
-  NEG32r_EVEX = 2844,
-  NEG32r_ND = 2845,
-  NEG32r_NF = 2846,
-  NEG32r_NF_ND = 2847,
-  NEG64m = 2848,
-  NEG64m_EVEX = 2849,
-  NEG64m_ND = 2850,
-  NEG64m_NF = 2851,
-  NEG64m_NF_ND = 2852,
-  NEG64r = 2853,
-  NEG64r_EVEX = 2854,
-  NEG64r_ND = 2855,
-  NEG64r_NF = 2856,
-  NEG64r_NF_ND = 2857,
-  NEG8m = 2858,
-  NEG8m_EVEX = 2859,
-  NEG8m_ND = 2860,
-  NEG8m_NF = 2861,
-  NEG8m_NF_ND = 2862,
-  NEG8r = 2863,
-  NEG8r_EVEX = 2864,
-  NEG8r_ND = 2865,
-  NEG8r_NF = 2866,
-  NEG8r_NF_ND = 2867,
-  NOOP = 2868,
-  NOOPL = 2869,
-  NOOPLr = 2870,
-  NOOPQ = 2871,
-  NOOPQr = 2872,
-  NOOPW = 2873,
-  NOOPWr = 2874,
-  NOT16m = 2875,
-  NOT16m_EVEX = 2876,
-  NOT16m_ND = 2877,
-  NOT16r = 2878,
-  NOT16r_EVEX = 2879,
-  NOT16r_ND = 2880,
-  NOT32m = 2881,
-  NOT32m_EVEX = 2882,
-  NOT32m_ND = 2883,
-  NOT32r = 2884,
-  NOT32r_EVEX = 2885,
-  NOT32r_ND = 2886,
-  NOT64m = 2887,
-  NOT64m_EVEX = 2888,
-  NOT64m_ND = 2889,
-  NOT64r = 2890,
-  NOT64r_EVEX = 2891,
-  NOT64r_ND = 2892,
-  NOT8m = 2893,
-  NOT8m_EVEX = 2894,
-  NOT8m_ND = 2895,
-  NOT8r = 2896,
-  NOT8r_EVEX = 2897,
-  NOT8r_ND = 2898,
-  OR16i16 = 2899,
-  OR16mi = 2900,
-  OR16mi8 = 2901,
-  OR16mi8_EVEX = 2902,
-  OR16mi8_ND = 2903,
-  OR16mi8_NF = 2904,
-  OR16mi8_NF_ND = 2905,
-  OR16mi_EVEX = 2906,
-  OR16mi_ND = 2907,
-  OR16mi_NF = 2908,
-  OR16mi_NF_ND = 2909,
-  OR16mr = 2910,
-  OR16mr_EVEX = 2911,
-  OR16mr_ND = 2912,
-  OR16mr_NF = 2913,
-  OR16mr_NF_ND = 2914,
-  OR16ri = 2915,
-  OR16ri8 = 2916,
-  OR16ri8_EVEX = 2917,
-  OR16ri8_ND = 2918,
-  OR16ri8_NF = 2919,
-  OR16ri8_NF_ND = 2920,
-  OR16ri_EVEX = 2921,
-  OR16ri_ND = 2922,
-  OR16ri_NF = 2923,
-  OR16ri_NF_ND = 2924,
-  OR16rm = 2925,
-  OR16rm_EVEX = 2926,
-  OR16rm_ND = 2927,
-  OR16rm_NF = 2928,
-  OR16rm_NF_ND = 2929,
-  OR16rr = 2930,
-  OR16rr_EVEX = 2931,
-  OR16rr_EVEX_REV = 2932,
-  OR16rr_ND = 2933,
-  OR16rr_ND_REV = 2934,
-  OR16rr_NF = 2935,
-  OR16rr_NF_ND = 2936,
-  OR16rr_NF_ND_REV = 2937,
-  OR16rr_NF_REV = 2938,
-  OR16rr_REV = 2939,
-  OR32i32 = 2940,
-  OR32mi = 2941,
-  OR32mi8 = 2942,
-  OR32mi8Locked = 2943,
-  OR32mi8_EVEX = 2944,
-  OR32mi8_ND = 2945,
-  OR32mi8_NF = 2946,
-  OR32mi8_NF_ND = 2947,
-  OR32mi_EVEX = 2948,
-  OR32mi_ND = 2949,
-  OR32mi_NF = 2950,
-  OR32mi_NF_ND = 2951,
-  OR32mr = 2952,
-  OR32mr_EVEX = 2953,
-  OR32mr_ND = 2954,
-  OR32mr_NF = 2955,
-  OR32mr_NF_ND = 2956,
-  OR32ri = 2957,
-  OR32ri8 = 2958,
-  OR32ri8_EVEX = 2959,
-  OR32ri8_ND = 2960,
-  OR32ri8_NF = 2961,
-  OR32ri8_NF_ND = 2962,
-  OR32ri_EVEX = 2963,
-  OR32ri_ND = 2964,
-  OR32ri_NF = 2965,
-  OR32ri_NF_ND = 2966,
-  OR32rm = 2967,
-  OR32rm_EVEX = 2968,
-  OR32rm_ND = 2969,
-  OR32rm_NF = 2970,
-  OR32rm_NF_ND = 2971,
-  OR32rr = 2972,
-  OR32rr_EVEX = 2973,
-  OR32rr_EVEX_REV = 2974,
-  OR32rr_ND = 2975,
-  OR32rr_ND_REV = 2976,
-  OR32rr_NF = 2977,
-  OR32rr_NF_ND = 2978,
-  OR32rr_NF_ND_REV = 2979,
-  OR32rr_NF_REV = 2980,
-  OR32rr_REV = 2981,
-  OR64i32 = 2982,
-  OR64mi32 = 2983,
-  OR64mi32_EVEX = 2984,
-  OR64mi32_ND = 2985,
-  OR64mi32_NF = 2986,
-  OR64mi32_NF_ND = 2987,
-  OR64mi8 = 2988,
-  OR64mi8_EVEX = 2989,
-  OR64mi8_ND = 2990,
-  OR64mi8_NF = 2991,
-  OR64mi8_NF_ND = 2992,
-  OR64mr = 2993,
-  OR64mr_EVEX = 2994,
-  OR64mr_ND = 2995,
-  OR64mr_NF = 2996,
-  OR64mr_NF_ND = 2997,
-  OR64ri32 = 2998,
-  OR64ri32_EVEX = 2999,
-  OR64ri32_ND = 3000,
-  OR64ri32_NF = 3001,
-  OR64ri32_NF_ND = 3002,
-  OR64ri8 = 3003,
-  OR64ri8_EVEX = 3004,
-  OR64ri8_ND = 3005,
-  OR64ri8_NF = 3006,
-  OR64ri8_NF_ND = 3007,
-  OR64rm = 3008,
-  OR64rm_EVEX = 3009,
-  OR64rm_ND = 3010,
-  OR64rm_NF = 3011,
-  OR64rm_NF_ND = 3012,
-  OR64rr = 3013,
-  OR64rr_EVEX = 3014,
-  OR64rr_EVEX_REV = 3015,
-  OR64rr_ND = 3016,
-  OR64rr_ND_REV = 3017,
-  OR64rr_NF = 3018,
-  OR64rr_NF_ND = 3019,
-  OR64rr_NF_ND_REV = 3020,
-  OR64rr_NF_REV = 3021,
-  OR64rr_REV = 3022,
-  OR8i8 = 3023,
-  OR8mi = 3024,
-  OR8mi8 = 3025,
-  OR8mi_EVEX = 3026,
-  OR8mi_ND = 3027,
-  OR8mi_NF = 3028,
-  OR8mi_NF_ND = 3029,
-  OR8mr = 3030,
-  OR8mr_EVEX = 3031,
-  OR8mr_ND = 3032,
-  OR8mr_NF = 3033,
-  OR8mr_NF_ND = 3034,
-  OR8ri = 3035,
-  OR8ri8 = 3036,
-  OR8ri_EVEX = 3037,
-  OR8ri_ND = 3038,
-  OR8ri_NF = 3039,
-  OR8ri_NF_ND = 3040,
-  OR8rm = 3041,
-  OR8rm_EVEX = 3042,
-  OR8rm_ND = 3043,
-  OR8rm_NF = 3044,
-  OR8rm_NF_ND = 3045,
-  OR8rr = 3046,
-  OR8rr_EVEX = 3047,
-  OR8rr_EVEX_REV = 3048,
-  OR8rr_ND = 3049,
-  OR8rr_ND_REV = 3050,
-  OR8rr_NF = 3051,
-  OR8rr_NF_ND = 3052,
-  OR8rr_NF_ND_REV = 3053,
-  OR8rr_NF_REV = 3054,
-  OR8rr_REV = 3055,
-  ORPDrm = 3056,
-  ORPDrr = 3057,
-  ORPSrm = 3058,
-  ORPSrr = 3059,
-  OUT16ir = 3060,
-  OUT16rr = 3061,
-  OUT32ir = 3062,
-  OUT32rr = 3063,
-  OUT8ir = 3064,
-  OUT8rr = 3065,
-  OUTSB = 3066,
-  OUTSL = 3067,
-  OUTSW = 3068,
-  PABSBrm = 3069,
-  PABSBrr = 3070,
-  PABSDrm = 3071,
-  PABSDrr = 3072,
-  PABSWrm = 3073,
-  PABSWrr = 3074,
-  PACKSSDWrm = 3075,
-  PACKSSDWrr = 3076,
-  PACKSSWBrm = 3077,
-  PACKSSWBrr = 3078,
-  PACKUSDWrm = 3079,
-  PACKUSDWrr = 3080,
-  PACKUSWBrm = 3081,
-  PACKUSWBrr = 3082,
-  PADDBrm = 3083,
-  PADDBrr = 3084,
-  PADDDrm = 3085,
-  PADDDrr = 3086,
-  PADDQrm = 3087,
-  PADDQrr = 3088,
-  PADDSBrm = 3089,
-  PADDSBrr = 3090,
-  PADDSWrm = 3091,
-  PADDSWrr = 3092,
-  PADDUSBrm = 3093,
-  PADDUSBrr = 3094,
-  PADDUSWrm = 3095,
-  PADDUSWrr = 3096,
-  PADDWrm = 3097,
-  PADDWrr = 3098,
-  PALIGNRrmi = 3099,
-  PALIGNRrri = 3100,
-  PANDNrm = 3101,
-  PANDNrr = 3102,
-  PANDrm = 3103,
-  PANDrr = 3104,
-  PAUSE = 3105,
-  PAVGBrm = 3106,
-  PAVGBrr = 3107,
-  PAVGUSBrm = 3108,
-  PAVGUSBrr = 3109,
-  PAVGWrm = 3110,
-  PAVGWrr = 3111,
-  PBLENDVBrm0 = 3112,
-  PBLENDVBrr0 = 3113,
-  PBLENDWrmi = 3114,
-  PBLENDWrri = 3115,
-  PBNDKB = 3116,
-  PCLMULQDQrmi = 3117,
-  PCLMULQDQrri = 3118,
-  PCMPEQBrm = 3119,
-  PCMPEQBrr = 3120,
-  PCMPEQDrm = 3121,
-  PCMPEQDrr = 3122,
-  PCMPEQQrm = 3123,
-  PCMPEQQrr = 3124,
-  PCMPEQWrm = 3125,
-  PCMPEQWrr = 3126,
-  PCMPESTRIrmi = 3127,
-  PCMPESTRIrri = 3128,
-  PCMPESTRMrmi = 3129,
-  PCMPESTRMrri = 3130,
-  PCMPGTBrm = 3131,
-  PCMPGTBrr = 3132,
-  PCMPGTDrm = 3133,
-  PCMPGTDrr = 3134,
-  PCMPGTQrm = 3135,
-  PCMPGTQrr = 3136,
-  PCMPGTWrm = 3137,
-  PCMPGTWrr = 3138,
-  PCMPISTRIrmi = 3139,
-  PCMPISTRIrri = 3140,
-  PCMPISTRMrmi = 3141,
-  PCMPISTRMrri = 3142,
-  PCONFIG = 3143,
-  PDEP32rm = 3144,
-  PDEP32rm_EVEX = 3145,
-  PDEP32rr = 3146,
-  PDEP32rr_EVEX = 3147,
-  PDEP64rm = 3148,
-  PDEP64rm_EVEX = 3149,
-  PDEP64rr = 3150,
-  PDEP64rr_EVEX = 3151,
-  PEXT32rm = 3152,
-  PEXT32rm_EVEX = 3153,
-  PEXT32rr = 3154,
-  PEXT32rr_EVEX = 3155,
-  PEXT64rm = 3156,
-  PEXT64rm_EVEX = 3157,
-  PEXT64rr = 3158,
-  PEXT64rr_EVEX = 3159,
-  PEXTRBmri = 3160,
-  PEXTRBrri = 3161,
-  PEXTRDmri = 3162,
-  PEXTRDrri = 3163,
-  PEXTRQmri = 3164,
-  PEXTRQrri = 3165,
-  PEXTRWmri = 3166,
-  PEXTRWrri = 3167,
-  PEXTRWrri_REV = 3168,
-  PF2IDrm = 3169,
-  PF2IDrr = 3170,
-  PF2IWrm = 3171,
-  PF2IWrr = 3172,
-  PFACCrm = 3173,
-  PFACCrr = 3174,
-  PFADDrm = 3175,
-  PFADDrr = 3176,
-  PFCMPEQrm = 3177,
-  PFCMPEQrr = 3178,
-  PFCMPGErm = 3179,
-  PFCMPGErr = 3180,
-  PFCMPGTrm = 3181,
-  PFCMPGTrr = 3182,
-  PFMAXrm = 3183,
-  PFMAXrr = 3184,
-  PFMINrm = 3185,
-  PFMINrr = 3186,
-  PFMULrm = 3187,
-  PFMULrr = 3188,
-  PFNACCrm = 3189,
-  PFNACCrr = 3190,
-  PFPNACCrm = 3191,
-  PFPNACCrr = 3192,
-  PFRCPIT1rm = 3193,
-  PFRCPIT1rr = 3194,
-  PFRCPIT2rm = 3195,
-  PFRCPIT2rr = 3196,
-  PFRCPrm = 3197,
-  PFRCPrr = 3198,
-  PFRSQIT1rm = 3199,
-  PFRSQIT1rr = 3200,
-  PFRSQRTrm = 3201,
-  PFRSQRTrr = 3202,
-  PFSUBRrm = 3203,
-  PFSUBRrr = 3204,
-  PFSUBrm = 3205,
-  PFSUBrr = 3206,
-  PHADDDrm = 3207,
-  PHADDDrr = 3208,
-  PHADDSWrm = 3209,
-  PHADDSWrr = 3210,
-  PHADDWrm = 3211,
-  PHADDWrr = 3212,
-  PHMINPOSUWrm = 3213,
-  PHMINPOSUWrr = 3214,
-  PHSUBDrm = 3215,
-  PHSUBDrr = 3216,
-  PHSUBSWrm = 3217,
-  PHSUBSWrr = 3218,
-  PHSUBWrm = 3219,
-  PHSUBWrr = 3220,
-  PI2FDrm = 3221,
-  PI2FDrr = 3222,
-  PI2FWrm = 3223,
-  PI2FWrr = 3224,
-  PINSRBrmi = 3225,
-  PINSRBrri = 3226,
-  PINSRDrmi = 3227,
-  PINSRDrri = 3228,
-  PINSRQrmi = 3229,
-  PINSRQrri = 3230,
-  PINSRWrmi = 3231,
-  PINSRWrri = 3232,
-  PMADDUBSWrm = 3233,
-  PMADDUBSWrr = 3234,
-  PMADDWDrm = 3235,
-  PMADDWDrr = 3236,
-  PMAXSBrm = 3237,
-  PMAXSBrr = 3238,
-  PMAXSDrm = 3239,
-  PMAXSDrr = 3240,
-  PMAXSWrm = 3241,
-  PMAXSWrr = 3242,
-  PMAXUBrm = 3243,
-  PMAXUBrr = 3244,
-  PMAXUDrm = 3245,
-  PMAXUDrr = 3246,
-  PMAXUWrm = 3247,
-  PMAXUWrr = 3248,
-  PMINSBrm = 3249,
-  PMINSBrr = 3250,
-  PMINSDrm = 3251,
-  PMINSDrr = 3252,
-  PMINSWrm = 3253,
-  PMINSWrr = 3254,
-  PMINUBrm = 3255,
-  PMINUBrr = 3256,
-  PMINUDrm = 3257,
-  PMINUDrr = 3258,
-  PMINUWrm = 3259,
-  PMINUWrr = 3260,
-  PMOVMSKBrr = 3261,
-  PMOVSXBDrm = 3262,
-  PMOVSXBDrr = 3263,
-  PMOVSXBQrm = 3264,
-  PMOVSXBQrr = 3265,
-  PMOVSXBWrm = 3266,
-  PMOVSXBWrr = 3267,
-  PMOVSXDQrm = 3268,
-  PMOVSXDQrr = 3269,
-  PMOVSXWDrm = 3270,
-  PMOVSXWDrr = 3271,
-  PMOVSXWQrm = 3272,
-  PMOVSXWQrr = 3273,
-  PMOVZXBDrm = 3274,
-  PMOVZXBDrr = 3275,
-  PMOVZXBQrm = 3276,
-  PMOVZXBQrr = 3277,
-  PMOVZXBWrm = 3278,
-  PMOVZXBWrr = 3279,
-  PMOVZXDQrm = 3280,
-  PMOVZXDQrr = 3281,
-  PMOVZXWDrm = 3282,
-  PMOVZXWDrr = 3283,
-  PMOVZXWQrm = 3284,
-  PMOVZXWQrr = 3285,
-  PMULDQrm = 3286,
-  PMULDQrr = 3287,
-  PMULHRSWrm = 3288,
-  PMULHRSWrr = 3289,
-  PMULHRWrm = 3290,
-  PMULHRWrr = 3291,
-  PMULHUWrm = 3292,
-  PMULHUWrr = 3293,
-  PMULHWrm = 3294,
-  PMULHWrr = 3295,
-  PMULLDrm = 3296,
-  PMULLDrr = 3297,
-  PMULLWrm = 3298,
-  PMULLWrr = 3299,
-  PMULUDQrm = 3300,
-  PMULUDQrr = 3301,
-  POP16r = 3302,
-  POP16rmm = 3303,
-  POP16rmr = 3304,
-  POP2 = 3305,
-  POP2P = 3306,
-  POP32r = 3307,
-  POP32rmm = 3308,
-  POP32rmr = 3309,
-  POP64r = 3310,
-  POP64rmm = 3311,
-  POP64rmr = 3312,
-  POPA16 = 3313,
-  POPA32 = 3314,
-  POPCNT16rm = 3315,
-  POPCNT16rm_EVEX = 3316,
-  POPCNT16rm_NF = 3317,
-  POPCNT16rr = 3318,
-  POPCNT16rr_EVEX = 3319,
-  POPCNT16rr_NF = 3320,
-  POPCNT32rm = 3321,
-  POPCNT32rm_EVEX = 3322,
-  POPCNT32rm_NF = 3323,
-  POPCNT32rr = 3324,
-  POPCNT32rr_EVEX = 3325,
-  POPCNT32rr_NF = 3326,
-  POPCNT64rm = 3327,
-  POPCNT64rm_EVEX = 3328,
-  POPCNT64rm_NF = 3329,
-  POPCNT64rr = 3330,
-  POPCNT64rr_EVEX = 3331,
-  POPCNT64rr_NF = 3332,
-  POPDS16 = 3333,
-  POPDS32 = 3334,
-  POPES16 = 3335,
-  POPES32 = 3336,
-  POPF16 = 3337,
-  POPF32 = 3338,
-  POPF64 = 3339,
-  POPFS16 = 3340,
-  POPFS32 = 3341,
-  POPFS64 = 3342,
-  POPGS16 = 3343,
-  POPGS32 = 3344,
-  POPGS64 = 3345,
-  POPP64r = 3346,
-  POPSS16 = 3347,
-  POPSS32 = 3348,
-  PORrm = 3349,
-  PORrr = 3350,
-  PREFETCH = 3351,
-  PREFETCHIT0 = 3352,
-  PREFETCHIT1 = 3353,
-  PREFETCHNTA = 3354,
-  PREFETCHRST2 = 3355,
-  PREFETCHT0 = 3356,
-  PREFETCHT1 = 3357,
-  PREFETCHT2 = 3358,
-  PREFETCHW = 3359,
-  PREFETCHWT1 = 3360,
-  PROBED_ALLOCA_32 = 3361,
-  PROBED_ALLOCA_64 = 3362,
-  PSADBWrm = 3363,
-  PSADBWrr = 3364,
-  PSHUFBrm = 3365,
-  PSHUFBrr = 3366,
-  PSHUFDmi = 3367,
-  PSHUFDri = 3368,
-  PSHUFHWmi = 3369,
-  PSHUFHWri = 3370,
-  PSHUFLWmi = 3371,
-  PSHUFLWri = 3372,
-  PSIGNBrm = 3373,
-  PSIGNBrr = 3374,
-  PSIGNDrm = 3375,
-  PSIGNDrr = 3376,
-  PSIGNWrm = 3377,
-  PSIGNWrr = 3378,
-  PSLLDQri = 3379,
-  PSLLDri = 3380,
-  PSLLDrm = 3381,
-  PSLLDrr = 3382,
-  PSLLQri = 3383,
-  PSLLQrm = 3384,
-  PSLLQrr = 3385,
-  PSLLWri = 3386,
-  PSLLWrm = 3387,
-  PSLLWrr = 3388,
-  PSMASH = 3389,
-  PSRADri = 3390,
-  PSRADrm = 3391,
-  PSRADrr = 3392,
-  PSRAWri = 3393,
-  PSRAWrm = 3394,
-  PSRAWrr = 3395,
-  PSRLDQri = 3396,
-  PSRLDri = 3397,
-  PSRLDrm = 3398,
-  PSRLDrr = 3399,
-  PSRLQri = 3400,
-  PSRLQrm = 3401,
-  PSRLQrr = 3402,
-  PSRLWri = 3403,
-  PSRLWrm = 3404,
-  PSRLWrr = 3405,
-  PSUBBrm = 3406,
-  PSUBBrr = 3407,
-  PSUBDrm = 3408,
-  PSUBDrr = 3409,
-  PSUBQrm = 3410,
-  PSUBQrr = 3411,
-  PSUBSBrm = 3412,
-  PSUBSBrr = 3413,
-  PSUBSWrm = 3414,
-  PSUBSWrr = 3415,
-  PSUBUSBrm = 3416,
-  PSUBUSBrr = 3417,
-  PSUBUSWrm = 3418,
-  PSUBUSWrr = 3419,
-  PSUBWrm = 3420,
-  PSUBWrr = 3421,
-  PSWAPDrm = 3422,
-  PSWAPDrr = 3423,
-  PT2RPNTLVWZ0 = 3424,
-  PT2RPNTLVWZ0RS = 3425,
-  PT2RPNTLVWZ0RST1 = 3426,
-  PT2RPNTLVWZ0T1 = 3427,
-  PT2RPNTLVWZ1 = 3428,
-  PT2RPNTLVWZ1RS = 3429,
-  PT2RPNTLVWZ1RST1 = 3430,
-  PT2RPNTLVWZ1T1 = 3431,
-  PTCMMIMFP16PS = 3432,
-  PTCMMIMFP16PSV = 3433,
-  PTCMMRLFP16PS = 3434,
-  PTCMMRLFP16PSV = 3435,
-  PTCONJTCMMIMFP16PS = 3436,
-  PTCONJTCMMIMFP16PSV = 3437,
-  PTCONJTFP16 = 3438,
-  PTCONJTFP16V = 3439,
-  PTCVTROWD2PSrre = 3440,
-  PTCVTROWD2PSrreV = 3441,
-  PTCVTROWD2PSrri = 3442,
-  PTCVTROWD2PSrriV = 3443,
-  PTCVTROWPS2BF16Hrre = 3444,
-  PTCVTROWPS2BF16HrreV = 3445,
-  PTCVTROWPS2BF16Hrri = 3446,
-  PTCVTROWPS2BF16HrriV = 3447,
-  PTCVTROWPS2BF16Lrre = 3448,
-  PTCVTROWPS2BF16LrreV = 3449,
-  PTCVTROWPS2BF16Lrri = 3450,
-  PTCVTROWPS2BF16LrriV = 3451,
-  PTCVTROWPS2PHHrre = 3452,
-  PTCVTROWPS2PHHrreV = 3453,
-  PTCVTROWPS2PHHrri = 3454,
-  PTCVTROWPS2PHHrriV = 3455,
-  PTCVTROWPS2PHLrre = 3456,
-  PTCVTROWPS2PHLrreV = 3457,
-  PTCVTROWPS2PHLrri = 3458,
-  PTCVTROWPS2PHLrriV = 3459,
-  PTDPBF16PS = 3460,
-  PTDPBF8PS = 3461,
-  PTDPBF8PSV = 3462,
-  PTDPBHF8PS = 3463,
-  PTDPBHF8PSV = 3464,
-  PTDPBSSD = 3465,
-  PTDPBSUD = 3466,
-  PTDPBUSD = 3467,
-  PTDPBUUD = 3468,
-  PTDPFP16PS = 3469,
-  PTDPHBF8PS = 3470,
-  PTDPHBF8PSV = 3471,
-  PTDPHF8PS = 3472,
-  PTDPHF8PSV = 3473,
-  PTESTrm = 3474,
-  PTESTrr = 3475,
-  PTILELOADD = 3476,
-  PTILELOADDRS = 3477,
-  PTILELOADDRST1 = 3478,
-  PTILELOADDT1 = 3479,
-  PTILEMOVROWrre = 3480,
-  PTILEMOVROWrreV = 3481,
-  PTILEMOVROWrri = 3482,
-  PTILEMOVROWrriV = 3483,
-  PTILESTORED = 3484,
-  PTILEZERO = 3485,
-  PTMMULTF32PS = 3486,
-  PTMMULTF32PSV = 3487,
-  PTTCMMIMFP16PS = 3488,
-  PTTCMMIMFP16PSV = 3489,
-  PTTCMMRLFP16PS = 3490,
-  PTTCMMRLFP16PSV = 3491,
-  PTTDPBF16PS = 3492,
-  PTTDPBF16PSV = 3493,
-  PTTDPFP16PS = 3494,
-  PTTDPFP16PSV = 3495,
-  PTTMMULTF32PS = 3496,
-  PTTMMULTF32PSV = 3497,
-  PTTRANSPOSED = 3498,
-  PTTRANSPOSEDV = 3499,
-  PTWRITE64m = 3500,
-  PTWRITE64r = 3501,
-  PTWRITEm = 3502,
-  PTWRITEr = 3503,
-  PUNPCKHBWrm = 3504,
-  PUNPCKHBWrr = 3505,
-  PUNPCKHDQrm = 3506,
-  PUNPCKHDQrr = 3507,
-  PUNPCKHQDQrm = 3508,
-  PUNPCKHQDQrr = 3509,
-  PUNPCKHWDrm = 3510,
-  PUNPCKHWDrr = 3511,
-  PUNPCKLBWrm = 3512,
-  PUNPCKLBWrr = 3513,
-  PUNPCKLDQrm = 3514,
-  PUNPCKLDQrr = 3515,
-  PUNPCKLQDQrm = 3516,
-  PUNPCKLQDQrr = 3517,
-  PUNPCKLWDrm = 3518,
-  PUNPCKLWDrr = 3519,
-  PUSH16i = 3520,
-  PUSH16i8 = 3521,
-  PUSH16r = 3522,
-  PUSH16rmm = 3523,
-  PUSH16rmr = 3524,
-  PUSH2 = 3525,
-  PUSH2P = 3526,
-  PUSH32i = 3527,
-  PUSH32i8 = 3528,
-  PUSH32r = 3529,
-  PUSH32rmm = 3530,
-  PUSH32rmr = 3531,
-  PUSH64i32 = 3532,
-  PUSH64i8 = 3533,
-  PUSH64r = 3534,
-  PUSH64rmm = 3535,
-  PUSH64rmr = 3536,
-  PUSHA16 = 3537,
-  PUSHA32 = 3538,
-  PUSHCS16 = 3539,
-  PUSHCS32 = 3540,
-  PUSHDS16 = 3541,
-  PUSHDS32 = 3542,
-  PUSHES16 = 3543,
-  PUSHES32 = 3544,
-  PUSHF16 = 3545,
-  PUSHF32 = 3546,
-  PUSHF64 = 3547,
-  PUSHFS16 = 3548,
-  PUSHFS32 = 3549,
-  PUSHFS64 = 3550,
-  PUSHGS16 = 3551,
-  PUSHGS32 = 3552,
-  PUSHGS64 = 3553,
-  PUSHP64r = 3554,
-  PUSHSS16 = 3555,
-  PUSHSS32 = 3556,
-  PVALIDATE32 = 3557,
-  PVALIDATE64 = 3558,
-  PXORrm = 3559,
-  PXORrr = 3560,
-  RCL16m1 = 3561,
-  RCL16m1_EVEX = 3562,
-  RCL16m1_ND = 3563,
-  RCL16mCL = 3564,
-  RCL16mCL_EVEX = 3565,
-  RCL16mCL_ND = 3566,
-  RCL16mi = 3567,
-  RCL16mi_EVEX = 3568,
-  RCL16mi_ND = 3569,
-  RCL16r1 = 3570,
-  RCL16r1_EVEX = 3571,
-  RCL16r1_ND = 3572,
-  RCL16rCL = 3573,
-  RCL16rCL_EVEX = 3574,
-  RCL16rCL_ND = 3575,
-  RCL16ri = 3576,
-  RCL16ri_EVEX = 3577,
-  RCL16ri_ND = 3578,
-  RCL32m1 = 3579,
-  RCL32m1_EVEX = 3580,
-  RCL32m1_ND = 3581,
-  RCL32mCL = 3582,
-  RCL32mCL_EVEX = 3583,
-  RCL32mCL_ND = 3584,
-  RCL32mi = 3585,
-  RCL32mi_EVEX = 3586,
-  RCL32mi_ND = 3587,
-  RCL32r1 = 3588,
-  RCL32r1_EVEX = 3589,
-  RCL32r1_ND = 3590,
-  RCL32rCL = 3591,
-  RCL32rCL_EVEX = 3592,
-  RCL32rCL_ND = 3593,
-  RCL32ri = 3594,
-  RCL32ri_EVEX = 3595,
-  RCL32ri_ND = 3596,
-  RCL64m1 = 3597,
-  RCL64m1_EVEX = 3598,
-  RCL64m1_ND = 3599,
-  RCL64mCL = 3600,
-  RCL64mCL_EVEX = 3601,
-  RCL64mCL_ND = 3602,
-  RCL64mi = 3603,
-  RCL64mi_EVEX = 3604,
-  RCL64mi_ND = 3605,
-  RCL64r1 = 3606,
-  RCL64r1_EVEX = 3607,
-  RCL64r1_ND = 3608,
-  RCL64rCL = 3609,
-  RCL64rCL_EVEX = 3610,
-  RCL64rCL_ND = 3611,
-  RCL64ri = 3612,
-  RCL64ri_EVEX = 3613,
-  RCL64ri_ND = 3614,
-  RCL8m1 = 3615,
-  RCL8m1_EVEX = 3616,
-  RCL8m1_ND = 3617,
-  RCL8mCL = 3618,
-  RCL8mCL_EVEX = 3619,
-  RCL8mCL_ND = 3620,
-  RCL8mi = 3621,
-  RCL8mi_EVEX = 3622,
-  RCL8mi_ND = 3623,
-  RCL8r1 = 3624,
-  RCL8r1_EVEX = 3625,
-  RCL8r1_ND = 3626,
-  RCL8rCL = 3627,
-  RCL8rCL_EVEX = 3628,
-  RCL8rCL_ND = 3629,
-  RCL8ri = 3630,
-  RCL8ri_EVEX = 3631,
-  RCL8ri_ND = 3632,
-  RCPPSm = 3633,
-  RCPPSr = 3634,
-  RCPSSm = 3635,
-  RCPSSm_Int = 3636,
-  RCPSSr = 3637,
-  RCPSSr_Int = 3638,
-  RCR16m1 = 3639,
-  RCR16m1_EVEX = 3640,
-  RCR16m1_ND = 3641,
-  RCR16mCL = 3642,
-  RCR16mCL_EVEX = 3643,
-  RCR16mCL_ND = 3644,
-  RCR16mi = 3645,
-  RCR16mi_EVEX = 3646,
-  RCR16mi_ND = 3647,
-  RCR16r1 = 3648,
-  RCR16r1_EVEX = 3649,
-  RCR16r1_ND = 3650,
-  RCR16rCL = 3651,
-  RCR16rCL_EVEX = 3652,
-  RCR16rCL_ND = 3653,
-  RCR16ri = 3654,
-  RCR16ri_EVEX = 3655,
-  RCR16ri_ND = 3656,
-  RCR32m1 = 3657,
-  RCR32m1_EVEX = 3658,
-  RCR32m1_ND = 3659,
-  RCR32mCL = 3660,
-  RCR32mCL_EVEX = 3661,
-  RCR32mCL_ND = 3662,
-  RCR32mi = 3663,
-  RCR32mi_EVEX = 3664,
-  RCR32mi_ND = 3665,
-  RCR32r1 = 3666,
-  RCR32r1_EVEX = 3667,
-  RCR32r1_ND = 3668,
-  RCR32rCL = 3669,
-  RCR32rCL_EVEX = 3670,
-  RCR32rCL_ND = 3671,
-  RCR32ri = 3672,
-  RCR32ri_EVEX = 3673,
-  RCR32ri_ND = 3674,
-  RCR64m1 = 3675,
-  RCR64m1_EVEX = 3676,
-  RCR64m1_ND = 3677,
-  RCR64mCL = 3678,
-  RCR64mCL_EVEX = 3679,
-  RCR64mCL_ND = 3680,
-  RCR64mi = 3681,
-  RCR64mi_EVEX = 3682,
-  RCR64mi_ND = 3683,
-  RCR64r1 = 3684,
-  RCR64r1_EVEX = 3685,
-  RCR64r1_ND = 3686,
-  RCR64rCL = 3687,
-  RCR64rCL_EVEX = 3688,
-  RCR64rCL_ND = 3689,
-  RCR64ri = 3690,
-  RCR64ri_EVEX = 3691,
-  RCR64ri_ND = 3692,
-  RCR8m1 = 3693,
-  RCR8m1_EVEX = 3694,
-  RCR8m1_ND = 3695,
-  RCR8mCL = 3696,
-  RCR8mCL_EVEX = 3697,
-  RCR8mCL_ND = 3698,
-  RCR8mi = 3699,
-  RCR8mi_EVEX = 3700,
-  RCR8mi_ND = 3701,
-  RCR8r1 = 3702,
-  RCR8r1_EVEX = 3703,
-  RCR8r1_ND = 3704,
-  RCR8rCL = 3705,
-  RCR8rCL_EVEX = 3706,
-  RCR8rCL_ND = 3707,
-  RCR8ri = 3708,
-  RCR8ri_EVEX = 3709,
-  RCR8ri_ND = 3710,
-  RDFSBASE = 3711,
-  RDFSBASE64 = 3712,
-  RDGSBASE = 3713,
-  RDGSBASE64 = 3714,
-  RDMSR = 3715,
-  RDMSRLIST = 3716,
-  RDMSRri = 3717,
-  RDMSRri_EVEX = 3718,
-  RDPID32 = 3719,
-  RDPID64 = 3720,
-  RDPKRUr = 3721,
-  RDPMC = 3722,
-  RDPRU = 3723,
-  RDRAND16r = 3724,
-  RDRAND32r = 3725,
-  RDRAND64r = 3726,
-  RDSEED16r = 3727,
-  RDSEED32r = 3728,
-  RDSEED64r = 3729,
-  RDSSPD = 3730,
-  RDSSPQ = 3731,
-  RDTSC = 3732,
-  RDTSCP = 3733,
-  REPNE_PREFIX = 3734,
-  REP_MOVSB_32 = 3735,
-  REP_MOVSB_64 = 3736,
-  REP_MOVSD_32 = 3737,
-  REP_MOVSD_64 = 3738,
-  REP_MOVSQ_32 = 3739,
-  REP_MOVSQ_64 = 3740,
-  REP_MOVSW_32 = 3741,
-  REP_MOVSW_64 = 3742,
-  REP_PREFIX = 3743,
-  REP_STOSB_32 = 3744,
-  REP_STOSB_64 = 3745,
-  REP_STOSD_32 = 3746,
-  REP_STOSD_64 = 3747,
-  REP_STOSQ_32 = 3748,
-  REP_STOSQ_64 = 3749,
-  REP_STOSW_32 = 3750,
-  REP_STOSW_64 = 3751,
-  RET = 3752,
-  RET16 = 3753,
-  RET32 = 3754,
-  RET64 = 3755,
-  RETI16 = 3756,
-  RETI32 = 3757,
-  RETI64 = 3758,
-  REX64_PREFIX = 3759,
-  RMPADJUST = 3760,
-  RMPQUERY = 3761,
-  RMPUPDATE = 3762,
-  ROL16m1 = 3763,
-  ROL16m1_EVEX = 3764,
-  ROL16m1_ND = 3765,
-  ROL16m1_NF = 3766,
-  ROL16m1_NF_ND = 3767,
-  ROL16mCL = 3768,
-  ROL16mCL_EVEX = 3769,
-  ROL16mCL_ND = 3770,
-  ROL16mCL_NF = 3771,
-  ROL16mCL_NF_ND = 3772,
-  ROL16mi = 3773,
-  ROL16mi_EVEX = 3774,
-  ROL16mi_ND = 3775,
-  ROL16mi_NF = 3776,
-  ROL16mi_NF_ND = 3777,
-  ROL16r1 = 3778,
-  ROL16r1_EVEX = 3779,
-  ROL16r1_ND = 3780,
-  ROL16r1_NF = 3781,
-  ROL16r1_NF_ND = 3782,
-  ROL16rCL = 3783,
-  ROL16rCL_EVEX = 3784,
-  ROL16rCL_ND = 3785,
-  ROL16rCL_NF = 3786,
-  ROL16rCL_NF_ND = 3787,
-  ROL16ri = 3788,
-  ROL16ri_EVEX = 3789,
-  ROL16ri_ND = 3790,
-  ROL16ri_NF = 3791,
-  ROL16ri_NF_ND = 3792,
-  ROL32m1 = 3793,
-  ROL32m1_EVEX = 3794,
-  ROL32m1_ND = 3795,
-  ROL32m1_NF = 3796,
-  ROL32m1_NF_ND = 3797,
-  ROL32mCL = 3798,
-  ROL32mCL_EVEX = 3799,
-  ROL32mCL_ND = 3800,
-  ROL32mCL_NF = 3801,
-  ROL32mCL_NF_ND = 3802,
-  ROL32mi = 3803,
-  ROL32mi_EVEX = 3804,
-  ROL32mi_ND = 3805,
-  ROL32mi_NF = 3806,
-  ROL32mi_NF_ND = 3807,
-  ROL32r1 = 3808,
-  ROL32r1_EVEX = 3809,
-  ROL32r1_ND = 3810,
-  ROL32r1_NF = 3811,
-  ROL32r1_NF_ND = 3812,
-  ROL32rCL = 3813,
-  ROL32rCL_EVEX = 3814,
-  ROL32rCL_ND = 3815,
-  ROL32rCL_NF = 3816,
-  ROL32rCL_NF_ND = 3817,
-  ROL32ri = 3818,
-  ROL32ri_EVEX = 3819,
-  ROL32ri_ND = 3820,
-  ROL32ri_NF = 3821,
-  ROL32ri_NF_ND = 3822,
-  ROL64m1 = 3823,
-  ROL64m1_EVEX = 3824,
-  ROL64m1_ND = 3825,
-  ROL64m1_NF = 3826,
-  ROL64m1_NF_ND = 3827,
-  ROL64mCL = 3828,
-  ROL64mCL_EVEX = 3829,
-  ROL64mCL_ND = 3830,
-  ROL64mCL_NF = 3831,
-  ROL64mCL_NF_ND = 3832,
-  ROL64mi = 3833,
-  ROL64mi_EVEX = 3834,
-  ROL64mi_ND = 3835,
-  ROL64mi_NF = 3836,
-  ROL64mi_NF_ND = 3837,
-  ROL64r1 = 3838,
-  ROL64r1_EVEX = 3839,
-  ROL64r1_ND = 3840,
-  ROL64r1_NF = 3841,
-  ROL64r1_NF_ND = 3842,
-  ROL64rCL = 3843,
-  ROL64rCL_EVEX = 3844,
-  ROL64rCL_ND = 3845,
-  ROL64rCL_NF = 3846,
-  ROL64rCL_NF_ND = 3847,
-  ROL64ri = 3848,
-  ROL64ri_EVEX = 3849,
-  ROL64ri_ND = 3850,
-  ROL64ri_NF = 3851,
-  ROL64ri_NF_ND = 3852,
-  ROL8m1 = 3853,
-  ROL8m1_EVEX = 3854,
-  ROL8m1_ND = 3855,
-  ROL8m1_NF = 3856,
-  ROL8m1_NF_ND = 3857,
-  ROL8mCL = 3858,
-  ROL8mCL_EVEX = 3859,
-  ROL8mCL_ND = 3860,
-  ROL8mCL_NF = 3861,
-  ROL8mCL_NF_ND = 3862,
-  ROL8mi = 3863,
-  ROL8mi_EVEX = 3864,
-  ROL8mi_ND = 3865,
-  ROL8mi_NF = 3866,
-  ROL8mi_NF_ND = 3867,
-  ROL8r1 = 3868,
-  ROL8r1_EVEX = 3869,
-  ROL8r1_ND = 3870,
-  ROL8r1_NF = 3871,
-  ROL8r1_NF_ND = 3872,
-  ROL8rCL = 3873,
-  ROL8rCL_EVEX = 3874,
-  ROL8rCL_ND = 3875,
-  ROL8rCL_NF = 3876,
-  ROL8rCL_NF_ND = 3877,
-  ROL8ri = 3878,
-  ROL8ri_EVEX = 3879,
-  ROL8ri_ND = 3880,
-  ROL8ri_NF = 3881,
-  ROL8ri_NF_ND = 3882,
-  ROR16m1 = 3883,
-  ROR16m1_EVEX = 3884,
-  ROR16m1_ND = 3885,
-  ROR16m1_NF = 3886,
-  ROR16m1_NF_ND = 3887,
-  ROR16mCL = 3888,
-  ROR16mCL_EVEX = 3889,
-  ROR16mCL_ND = 3890,
-  ROR16mCL_NF = 3891,
-  ROR16mCL_NF_ND = 3892,
-  ROR16mi = 3893,
-  ROR16mi_EVEX = 3894,
-  ROR16mi_ND = 3895,
-  ROR16mi_NF = 3896,
-  ROR16mi_NF_ND = 3897,
-  ROR16r1 = 3898,
-  ROR16r1_EVEX = 3899,
-  ROR16r1_ND = 3900,
-  ROR16r1_NF = 3901,
-  ROR16r1_NF_ND = 3902,
-  ROR16rCL = 3903,
-  ROR16rCL_EVEX = 3904,
-  ROR16rCL_ND = 3905,
-  ROR16rCL_NF = 3906,
-  ROR16rCL_NF_ND = 3907,
-  ROR16ri = 3908,
-  ROR16ri_EVEX = 3909,
-  ROR16ri_ND = 3910,
-  ROR16ri_NF = 3911,
-  ROR16ri_NF_ND = 3912,
-  ROR32m1 = 3913,
-  ROR32m1_EVEX = 3914,
-  ROR32m1_ND = 3915,
-  ROR32m1_NF = 3916,
-  ROR32m1_NF_ND = 3917,
-  ROR32mCL = 3918,
-  ROR32mCL_EVEX = 3919,
-  ROR32mCL_ND = 3920,
-  ROR32mCL_NF = 3921,
-  ROR32mCL_NF_ND = 3922,
-  ROR32mi = 3923,
-  ROR32mi_EVEX = 3924,
-  ROR32mi_ND = 3925,
-  ROR32mi_NF = 3926,
-  ROR32mi_NF_ND = 3927,
-  ROR32r1 = 3928,
-  ROR32r1_EVEX = 3929,
-  ROR32r1_ND = 3930,
-  ROR32r1_NF = 3931,
-  ROR32r1_NF_ND = 3932,
-  ROR32rCL = 3933,
-  ROR32rCL_EVEX = 3934,
-  ROR32rCL_ND = 3935,
-  ROR32rCL_NF = 3936,
-  ROR32rCL_NF_ND = 3937,
-  ROR32ri = 3938,
-  ROR32ri_EVEX = 3939,
-  ROR32ri_ND = 3940,
-  ROR32ri_NF = 3941,
-  ROR32ri_NF_ND = 3942,
-  ROR64m1 = 3943,
-  ROR64m1_EVEX = 3944,
-  ROR64m1_ND = 3945,
-  ROR64m1_NF = 3946,
-  ROR64m1_NF_ND = 3947,
-  ROR64mCL = 3948,
-  ROR64mCL_EVEX = 3949,
-  ROR64mCL_ND = 3950,
-  ROR64mCL_NF = 3951,
-  ROR64mCL_NF_ND = 3952,
-  ROR64mi = 3953,
-  ROR64mi_EVEX = 3954,
-  ROR64mi_ND = 3955,
-  ROR64mi_NF = 3956,
-  ROR64mi_NF_ND = 3957,
-  ROR64r1 = 3958,
-  ROR64r1_EVEX = 3959,
-  ROR64r1_ND = 3960,
-  ROR64r1_NF = 3961,
-  ROR64r1_NF_ND = 3962,
-  ROR64rCL = 3963,
-  ROR64rCL_EVEX = 3964,
-  ROR64rCL_ND = 3965,
-  ROR64rCL_NF = 3966,
-  ROR64rCL_NF_ND = 3967,
-  ROR64ri = 3968,
-  ROR64ri_EVEX = 3969,
-  ROR64ri_ND = 3970,
-  ROR64ri_NF = 3971,
-  ROR64ri_NF_ND = 3972,
-  ROR8m1 = 3973,
-  ROR8m1_EVEX = 3974,
-  ROR8m1_ND = 3975,
-  ROR8m1_NF = 3976,
-  ROR8m1_NF_ND = 3977,
-  ROR8mCL = 3978,
-  ROR8mCL_EVEX = 3979,
-  ROR8mCL_ND = 3980,
-  ROR8mCL_NF = 3981,
-  ROR8mCL_NF_ND = 3982,
-  ROR8mi = 3983,
-  ROR8mi_EVEX = 3984,
-  ROR8mi_ND = 3985,
-  ROR8mi_NF = 3986,
-  ROR8mi_NF_ND = 3987,
-  ROR8r1 = 3988,
-  ROR8r1_EVEX = 3989,
-  ROR8r1_ND = 3990,
-  ROR8r1_NF = 3991,
-  ROR8r1_NF_ND = 3992,
-  ROR8rCL = 3993,
-  ROR8rCL_EVEX = 3994,
-  ROR8rCL_ND = 3995,
-  ROR8rCL_NF = 3996,
-  ROR8rCL_NF_ND = 3997,
-  ROR8ri = 3998,
-  ROR8ri_EVEX = 3999,
-  ROR8ri_ND = 4000,
-  ROR8ri_NF = 4001,
-  ROR8ri_NF_ND = 4002,
-  RORX32mi = 4003,
-  RORX32mi_EVEX = 4004,
-  RORX32ri = 4005,
-  RORX32ri_EVEX = 4006,
-  RORX64mi = 4007,
-  RORX64mi_EVEX = 4008,
-  RORX64ri = 4009,
-  RORX64ri_EVEX = 4010,
-  ROUNDPDmi = 4011,
-  ROUNDPDri = 4012,
-  ROUNDPSmi = 4013,
-  ROUNDPSri = 4014,
-  ROUNDSDmi = 4015,
-  ROUNDSDmi_Int = 4016,
-  ROUNDSDri = 4017,
-  ROUNDSDri_Int = 4018,
-  ROUNDSSmi = 4019,
-  ROUNDSSmi_Int = 4020,
-  ROUNDSSri = 4021,
-  ROUNDSSri_Int = 4022,
-  RSM = 4023,
-  RSQRTPSm = 4024,
-  RSQRTPSr = 4025,
-  RSQRTSSm = 4026,
-  RSQRTSSm_Int = 4027,
-  RSQRTSSr = 4028,
-  RSQRTSSr_Int = 4029,
-  RSTORSSP = 4030,
-  SAHF = 4031,
-  SALC = 4032,
-  SAR16m1 = 4033,
-  SAR16m1_EVEX = 4034,
-  SAR16m1_ND = 4035,
-  SAR16m1_NF = 4036,
-  SAR16m1_NF_ND = 4037,
-  SAR16mCL = 4038,
-  SAR16mCL_EVEX = 4039,
-  SAR16mCL_ND = 4040,
-  SAR16mCL_NF = 4041,
-  SAR16mCL_NF_ND = 4042,
-  SAR16mi = 4043,
-  SAR16mi_EVEX = 4044,
-  SAR16mi_ND = 4045,
-  SAR16mi_NF = 4046,
-  SAR16mi_NF_ND = 4047,
-  SAR16r1 = 4048,
-  SAR16r1_EVEX = 4049,
-  SAR16r1_ND = 4050,
-  SAR16r1_NF = 4051,
-  SAR16r1_NF_ND = 4052,
-  SAR16rCL = 4053,
-  SAR16rCL_EVEX = 4054,
-  SAR16rCL_ND = 4055,
-  SAR16rCL_NF = 4056,
-  SAR16rCL_NF_ND = 4057,
-  SAR16ri = 4058,
-  SAR16ri_EVEX = 4059,
-  SAR16ri_ND = 4060,
-  SAR16ri_NF = 4061,
-  SAR16ri_NF_ND = 4062,
-  SAR32m1 = 4063,
-  SAR32m1_EVEX = 4064,
-  SAR32m1_ND = 4065,
-  SAR32m1_NF = 4066,
-  SAR32m1_NF_ND = 4067,
-  SAR32mCL = 4068,
-  SAR32mCL_EVEX = 4069,
-  SAR32mCL_ND = 4070,
-  SAR32mCL_NF = 4071,
-  SAR32mCL_NF_ND = 4072,
-  SAR32mi = 4073,
-  SAR32mi_EVEX = 4074,
-  SAR32mi_ND = 4075,
-  SAR32mi_NF = 4076,
-  SAR32mi_NF_ND = 4077,
-  SAR32r1 = 4078,
-  SAR32r1_EVEX = 4079,
-  SAR32r1_ND = 4080,
-  SAR32r1_NF = 4081,
-  SAR32r1_NF_ND = 4082,
-  SAR32rCL = 4083,
-  SAR32rCL_EVEX = 4084,
-  SAR32rCL_ND = 4085,
-  SAR32rCL_NF = 4086,
-  SAR32rCL_NF_ND = 4087,
-  SAR32ri = 4088,
-  SAR32ri_EVEX = 4089,
-  SAR32ri_ND = 4090,
-  SAR32ri_NF = 4091,
-  SAR32ri_NF_ND = 4092,
-  SAR64m1 = 4093,
-  SAR64m1_EVEX = 4094,
-  SAR64m1_ND = 4095,
-  SAR64m1_NF = 4096,
-  SAR64m1_NF_ND = 4097,
-  SAR64mCL = 4098,
-  SAR64mCL_EVEX = 4099,
-  SAR64mCL_ND = 4100,
-  SAR64mCL_NF = 4101,
-  SAR64mCL_NF_ND = 4102,
-  SAR64mi = 4103,
-  SAR64mi_EVEX = 4104,
-  SAR64mi_ND = 4105,
-  SAR64mi_NF = 4106,
-  SAR64mi_NF_ND = 4107,
-  SAR64r1 = 4108,
-  SAR64r1_EVEX = 4109,
-  SAR64r1_ND = 4110,
-  SAR64r1_NF = 4111,
-  SAR64r1_NF_ND = 4112,
-  SAR64rCL = 4113,
-  SAR64rCL_EVEX = 4114,
-  SAR64rCL_ND = 4115,
-  SAR64rCL_NF = 4116,
-  SAR64rCL_NF_ND = 4117,
-  SAR64ri = 4118,
-  SAR64ri_EVEX = 4119,
-  SAR64ri_ND = 4120,
-  SAR64ri_NF = 4121,
-  SAR64ri_NF_ND = 4122,
-  SAR8m1 = 4123,
-  SAR8m1_EVEX = 4124,
-  SAR8m1_ND = 4125,
-  SAR8m1_NF = 4126,
-  SAR8m1_NF_ND = 4127,
-  SAR8mCL = 4128,
-  SAR8mCL_EVEX = 4129,
-  SAR8mCL_ND = 4130,
-  SAR8mCL_NF = 4131,
-  SAR8mCL_NF_ND = 4132,
-  SAR8mi = 4133,
-  SAR8mi_EVEX = 4134,
-  SAR8mi_ND = 4135,
-  SAR8mi_NF = 4136,
-  SAR8mi_NF_ND = 4137,
-  SAR8r1 = 4138,
-  SAR8r1_EVEX = 4139,
-  SAR8r1_ND = 4140,
-  SAR8r1_NF = 4141,
-  SAR8r1_NF_ND = 4142,
-  SAR8rCL = 4143,
-  SAR8rCL_EVEX = 4144,
-  SAR8rCL_ND = 4145,
-  SAR8rCL_NF = 4146,
-  SAR8rCL_NF_ND = 4147,
-  SAR8ri = 4148,
-  SAR8ri_EVEX = 4149,
-  SAR8ri_ND = 4150,
-  SAR8ri_NF = 4151,
-  SAR8ri_NF_ND = 4152,
-  SARX32rm = 4153,
-  SARX32rm_EVEX = 4154,
-  SARX32rr = 4155,
-  SARX32rr_EVEX = 4156,
-  SARX64rm = 4157,
-  SARX64rm_EVEX = 4158,
-  SARX64rr = 4159,
-  SARX64rr_EVEX = 4160,
-  SAVEPREVSSP = 4161,
-  SBB16i16 = 4162,
-  SBB16mi = 4163,
-  SBB16mi8 = 4164,
-  SBB16mi8_EVEX = 4165,
-  SBB16mi8_ND = 4166,
-  SBB16mi_EVEX = 4167,
-  SBB16mi_ND = 4168,
-  SBB16mr = 4169,
-  SBB16mr_EVEX = 4170,
-  SBB16mr_ND = 4171,
-  SBB16ri = 4172,
-  SBB16ri8 = 4173,
-  SBB16ri8_EVEX = 4174,
-  SBB16ri8_ND = 4175,
-  SBB16ri_EVEX = 4176,
-  SBB16ri_ND = 4177,
-  SBB16rm = 4178,
-  SBB16rm_EVEX = 4179,
-  SBB16rm_ND = 4180,
-  SBB16rr = 4181,
-  SBB16rr_EVEX = 4182,
-  SBB16rr_EVEX_REV = 4183,
-  SBB16rr_ND = 4184,
-  SBB16rr_ND_REV = 4185,
-  SBB16rr_REV = 4186,
-  SBB32i32 = 4187,
-  SBB32mi = 4188,
-  SBB32mi8 = 4189,
-  SBB32mi8_EVEX = 4190,
-  SBB32mi8_ND = 4191,
-  SBB32mi_EVEX = 4192,
-  SBB32mi_ND = 4193,
-  SBB32mr = 4194,
-  SBB32mr_EVEX = 4195,
-  SBB32mr_ND = 4196,
-  SBB32ri = 4197,
-  SBB32ri8 = 4198,
-  SBB32ri8_EVEX = 4199,
-  SBB32ri8_ND = 4200,
-  SBB32ri_EVEX = 4201,
-  SBB32ri_ND = 4202,
-  SBB32rm = 4203,
-  SBB32rm_EVEX = 4204,
-  SBB32rm_ND = 4205,
-  SBB32rr = 4206,
-  SBB32rr_EVEX = 4207,
-  SBB32rr_EVEX_REV = 4208,
-  SBB32rr_ND = 4209,
-  SBB32rr_ND_REV = 4210,
-  SBB32rr_REV = 4211,
-  SBB64i32 = 4212,
-  SBB64mi32 = 4213,
-  SBB64mi32_EVEX = 4214,
-  SBB64mi32_ND = 4215,
-  SBB64mi8 = 4216,
-  SBB64mi8_EVEX = 4217,
-  SBB64mi8_ND = 4218,
-  SBB64mr = 4219,
-  SBB64mr_EVEX = 4220,
-  SBB64mr_ND = 4221,
-  SBB64ri32 = 4222,
-  SBB64ri32_EVEX = 4223,
-  SBB64ri32_ND = 4224,
-  SBB64ri8 = 4225,
-  SBB64ri8_EVEX = 4226,
-  SBB64ri8_ND = 4227,
-  SBB64rm = 4228,
-  SBB64rm_EVEX = 4229,
-  SBB64rm_ND = 4230,
-  SBB64rr = 4231,
-  SBB64rr_EVEX = 4232,
-  SBB64rr_EVEX_REV = 4233,
-  SBB64rr_ND = 4234,
-  SBB64rr_ND_REV = 4235,
-  SBB64rr_REV = 4236,
-  SBB8i8 = 4237,
-  SBB8mi = 4238,
-  SBB8mi8 = 4239,
-  SBB8mi_EVEX = 4240,
-  SBB8mi_ND = 4241,
-  SBB8mr = 4242,
-  SBB8mr_EVEX = 4243,
-  SBB8mr_ND = 4244,
-  SBB8ri = 4245,
-  SBB8ri8 = 4246,
-  SBB8ri_EVEX = 4247,
-  SBB8ri_ND = 4248,
-  SBB8rm = 4249,
-  SBB8rm_EVEX = 4250,
-  SBB8rm_ND = 4251,
-  SBB8rr = 4252,
-  SBB8rr_EVEX = 4253,
-  SBB8rr_EVEX_REV = 4254,
-  SBB8rr_ND = 4255,
-  SBB8rr_ND_REV = 4256,
-  SBB8rr_REV = 4257,
-  SCASB = 4258,
-  SCASL = 4259,
-  SCASQ = 4260,
-  SCASW = 4261,
-  SEAMCALL = 4262,
-  SEAMOPS = 4263,
-  SEAMRET = 4264,
-  SEG_ALLOCA_32 = 4265,
-  SEG_ALLOCA_64 = 4266,
-  SENDUIPI = 4267,
-  SERIALIZE = 4268,
-  SETCCm = 4269,
-  SETCCm_EVEX = 4270,
-  SETCCr = 4271,
-  SETCCr_EVEX = 4272,
-  SETSSBSY = 4273,
-  SETZUCCm = 4274,
-  SETZUCCr = 4275,
-  SFENCE = 4276,
-  SGDT16m = 4277,
-  SGDT32m = 4278,
-  SGDT64m = 4279,
-  SHA1MSG1rm = 4280,
-  SHA1MSG1rr = 4281,
-  SHA1MSG2rm = 4282,
-  SHA1MSG2rr = 4283,
-  SHA1NEXTErm = 4284,
-  SHA1NEXTErr = 4285,
-  SHA1RNDS4rmi = 4286,
-  SHA1RNDS4rri = 4287,
-  SHA256MSG1rm = 4288,
-  SHA256MSG1rr = 4289,
-  SHA256MSG2rm = 4290,
-  SHA256MSG2rr = 4291,
-  SHA256RNDS2rm = 4292,
-  SHA256RNDS2rr = 4293,
-  SHL16m1 = 4294,
-  SHL16m1_EVEX = 4295,
-  SHL16m1_ND = 4296,
-  SHL16m1_NF = 4297,
-  SHL16m1_NF_ND = 4298,
-  SHL16mCL = 4299,
-  SHL16mCL_EVEX = 4300,
-  SHL16mCL_ND = 4301,
-  SHL16mCL_NF = 4302,
-  SHL16mCL_NF_ND = 4303,
-  SHL16mi = 4304,
-  SHL16mi_EVEX = 4305,
-  SHL16mi_ND = 4306,
-  SHL16mi_NF = 4307,
-  SHL16mi_NF_ND = 4308,
-  SHL16r1 = 4309,
-  SHL16r1_EVEX = 4310,
-  SHL16r1_ND = 4311,
-  SHL16r1_NF = 4312,
-  SHL16r1_NF_ND = 4313,
-  SHL16rCL = 4314,
-  SHL16rCL_EVEX = 4315,
-  SHL16rCL_ND = 4316,
-  SHL16rCL_NF = 4317,
-  SHL16rCL_NF_ND = 4318,
-  SHL16ri = 4319,
-  SHL16ri_EVEX = 4320,
-  SHL16ri_ND = 4321,
-  SHL16ri_NF = 4322,
-  SHL16ri_NF_ND = 4323,
-  SHL32m1 = 4324,
-  SHL32m1_EVEX = 4325,
-  SHL32m1_ND = 4326,
-  SHL32m1_NF = 4327,
-  SHL32m1_NF_ND = 4328,
-  SHL32mCL = 4329,
-  SHL32mCL_EVEX = 4330,
-  SHL32mCL_ND = 4331,
-  SHL32mCL_NF = 4332,
-  SHL32mCL_NF_ND = 4333,
-  SHL32mi = 4334,
-  SHL32mi_EVEX = 4335,
-  SHL32mi_ND = 4336,
-  SHL32mi_NF = 4337,
-  SHL32mi_NF_ND = 4338,
-  SHL32r1 = 4339,
-  SHL32r1_EVEX = 4340,
-  SHL32r1_ND = 4341,
-  SHL32r1_NF = 4342,
-  SHL32r1_NF_ND = 4343,
-  SHL32rCL = 4344,
-  SHL32rCL_EVEX = 4345,
-  SHL32rCL_ND = 4346,
-  SHL32rCL_NF = 4347,
-  SHL32rCL_NF_ND = 4348,
-  SHL32ri = 4349,
-  SHL32ri_EVEX = 4350,
-  SHL32ri_ND = 4351,
-  SHL32ri_NF = 4352,
-  SHL32ri_NF_ND = 4353,
-  SHL64m1 = 4354,
-  SHL64m1_EVEX = 4355,
-  SHL64m1_ND = 4356,
-  SHL64m1_NF = 4357,
-  SHL64m1_NF_ND = 4358,
-  SHL64mCL = 4359,
-  SHL64mCL_EVEX = 4360,
-  SHL64mCL_ND = 4361,
-  SHL64mCL_NF = 4362,
-  SHL64mCL_NF_ND = 4363,
-  SHL64mi = 4364,
-  SHL64mi_EVEX = 4365,
-  SHL64mi_ND = 4366,
-  SHL64mi_NF = 4367,
-  SHL64mi_NF_ND = 4368,
-  SHL64r1 = 4369,
-  SHL64r1_EVEX = 4370,
-  SHL64r1_ND = 4371,
-  SHL64r1_NF = 4372,
-  SHL64r1_NF_ND = 4373,
-  SHL64rCL = 4374,
-  SHL64rCL_EVEX = 4375,
-  SHL64rCL_ND = 4376,
-  SHL64rCL_NF = 4377,
-  SHL64rCL_NF_ND = 4378,
-  SHL64ri = 4379,
-  SHL64ri_EVEX = 4380,
-  SHL64ri_ND = 4381,
-  SHL64ri_NF = 4382,
-  SHL64ri_NF_ND = 4383,
-  SHL8m1 = 4384,
-  SHL8m1_EVEX = 4385,
-  SHL8m1_ND = 4386,
-  SHL8m1_NF = 4387,
-  SHL8m1_NF_ND = 4388,
-  SHL8mCL = 4389,
-  SHL8mCL_EVEX = 4390,
-  SHL8mCL_ND = 4391,
-  SHL8mCL_NF = 4392,
-  SHL8mCL_NF_ND = 4393,
-  SHL8mi = 4394,
-  SHL8mi_EVEX = 4395,
-  SHL8mi_ND = 4396,
-  SHL8mi_NF = 4397,
-  SHL8mi_NF_ND = 4398,
-  SHL8r1 = 4399,
-  SHL8r1_EVEX = 4400,
-  SHL8r1_ND = 4401,
-  SHL8r1_NF = 4402,
-  SHL8r1_NF_ND = 4403,
-  SHL8rCL = 4404,
-  SHL8rCL_EVEX = 4405,
-  SHL8rCL_ND = 4406,
-  SHL8rCL_NF = 4407,
-  SHL8rCL_NF_ND = 4408,
-  SHL8ri = 4409,
-  SHL8ri_EVEX = 4410,
-  SHL8ri_ND = 4411,
-  SHL8ri_NF = 4412,
-  SHL8ri_NF_ND = 4413,
-  SHLD16mrCL = 4414,
-  SHLD16mrCL_EVEX = 4415,
-  SHLD16mrCL_ND = 4416,
-  SHLD16mrCL_NF = 4417,
-  SHLD16mrCL_NF_ND = 4418,
-  SHLD16mri8 = 4419,
-  SHLD16mri8_EVEX = 4420,
-  SHLD16mri8_ND = 4421,
-  SHLD16mri8_NF = 4422,
-  SHLD16mri8_NF_ND = 4423,
-  SHLD16rrCL = 4424,
-  SHLD16rrCL_EVEX = 4425,
-  SHLD16rrCL_ND = 4426,
-  SHLD16rrCL_NF = 4427,
-  SHLD16rrCL_NF_ND = 4428,
-  SHLD16rri8 = 4429,
-  SHLD16rri8_EVEX = 4430,
-  SHLD16rri8_ND = 4431,
-  SHLD16rri8_NF = 4432,
-  SHLD16rri8_NF_ND = 4433,
-  SHLD32mrCL = 4434,
-  SHLD32mrCL_EVEX = 4435,
-  SHLD32mrCL_ND = 4436,
-  SHLD32mrCL_NF = 4437,
-  SHLD32mrCL_NF_ND = 4438,
-  SHLD32mri8 = 4439,
-  SHLD32mri8_EVEX = 4440,
-  SHLD32mri8_ND = 4441,
-  SHLD32mri8_NF = 4442,
-  SHLD32mri8_NF_ND = 4443,
-  SHLD32rrCL = 4444,
-  SHLD32rrCL_EVEX = 4445,
-  SHLD32rrCL_ND = 4446,
-  SHLD32rrCL_NF = 4447,
-  SHLD32rrCL_NF_ND = 4448,
-  SHLD32rri8 = 4449,
-  SHLD32rri8_EVEX = 4450,
-  SHLD32rri8_ND = 4451,
-  SHLD32rri8_NF = 4452,
-  SHLD32rri8_NF_ND = 4453,
-  SHLD64mrCL = 4454,
-  SHLD64mrCL_EVEX = 4455,
-  SHLD64mrCL_ND = 4456,
-  SHLD64mrCL_NF = 4457,
-  SHLD64mrCL_NF_ND = 4458,
-  SHLD64mri8 = 4459,
-  SHLD64mri8_EVEX = 4460,
-  SHLD64mri8_ND = 4461,
-  SHLD64mri8_NF = 4462,
-  SHLD64mri8_NF_ND = 4463,
-  SHLD64rrCL = 4464,
-  SHLD64rrCL_EVEX = 4465,
-  SHLD64rrCL_ND = 4466,
-  SHLD64rrCL_NF = 4467,
-  SHLD64rrCL_NF_ND = 4468,
-  SHLD64rri8 = 4469,
-  SHLD64rri8_EVEX = 4470,
-  SHLD64rri8_ND = 4471,
-  SHLD64rri8_NF = 4472,
-  SHLD64rri8_NF_ND = 4473,
-  SHLX32rm = 4474,
-  SHLX32rm_EVEX = 4475,
-  SHLX32rr = 4476,
-  SHLX32rr_EVEX = 4477,
-  SHLX64rm = 4478,
-  SHLX64rm_EVEX = 4479,
-  SHLX64rr = 4480,
-  SHLX64rr_EVEX = 4481,
-  SHR16m1 = 4482,
-  SHR16m1_EVEX = 4483,
-  SHR16m1_ND = 4484,
-  SHR16m1_NF = 4485,
-  SHR16m1_NF_ND = 4486,
-  SHR16mCL = 4487,
-  SHR16mCL_EVEX = 4488,
-  SHR16mCL_ND = 4489,
-  SHR16mCL_NF = 4490,
-  SHR16mCL_NF_ND = 4491,
-  SHR16mi = 4492,
-  SHR16mi_EVEX = 4493,
-  SHR16mi_ND = 4494,
-  SHR16mi_NF = 4495,
-  SHR16mi_NF_ND = 4496,
-  SHR16r1 = 4497,
-  SHR16r1_EVEX = 4498,
-  SHR16r1_ND = 4499,
-  SHR16r1_NF = 4500,
-  SHR16r1_NF_ND = 4501,
-  SHR16rCL = 4502,
-  SHR16rCL_EVEX = 4503,
-  SHR16rCL_ND = 4504,
-  SHR16rCL_NF = 4505,
-  SHR16rCL_NF_ND = 4506,
-  SHR16ri = 4507,
-  SHR16ri_EVEX = 4508,
-  SHR16ri_ND = 4509,
-  SHR16ri_NF = 4510,
-  SHR16ri_NF_ND = 4511,
-  SHR32m1 = 4512,
-  SHR32m1_EVEX = 4513,
-  SHR32m1_ND = 4514,
-  SHR32m1_NF = 4515,
-  SHR32m1_NF_ND = 4516,
-  SHR32mCL = 4517,
-  SHR32mCL_EVEX = 4518,
-  SHR32mCL_ND = 4519,
-  SHR32mCL_NF = 4520,
-  SHR32mCL_NF_ND = 4521,
-  SHR32mi = 4522,
-  SHR32mi_EVEX = 4523,
-  SHR32mi_ND = 4524,
-  SHR32mi_NF = 4525,
-  SHR32mi_NF_ND = 4526,
-  SHR32r1 = 4527,
-  SHR32r1_EVEX = 4528,
-  SHR32r1_ND = 4529,
-  SHR32r1_NF = 4530,
-  SHR32r1_NF_ND = 4531,
-  SHR32rCL = 4532,
-  SHR32rCL_EVEX = 4533,
-  SHR32rCL_ND = 4534,
-  SHR32rCL_NF = 4535,
-  SHR32rCL_NF_ND = 4536,
-  SHR32ri = 4537,
-  SHR32ri_EVEX = 4538,
-  SHR32ri_ND = 4539,
-  SHR32ri_NF = 4540,
-  SHR32ri_NF_ND = 4541,
-  SHR64m1 = 4542,
-  SHR64m1_EVEX = 4543,
-  SHR64m1_ND = 4544,
-  SHR64m1_NF = 4545,
-  SHR64m1_NF_ND = 4546,
-  SHR64mCL = 4547,
-  SHR64mCL_EVEX = 4548,
-  SHR64mCL_ND = 4549,
-  SHR64mCL_NF = 4550,
-  SHR64mCL_NF_ND = 4551,
-  SHR64mi = 4552,
-  SHR64mi_EVEX = 4553,
-  SHR64mi_ND = 4554,
-  SHR64mi_NF = 4555,
-  SHR64mi_NF_ND = 4556,
-  SHR64r1 = 4557,
-  SHR64r1_EVEX = 4558,
-  SHR64r1_ND = 4559,
-  SHR64r1_NF = 4560,
-  SHR64r1_NF_ND = 4561,
-  SHR64rCL = 4562,
-  SHR64rCL_EVEX = 4563,
-  SHR64rCL_ND = 4564,
-  SHR64rCL_NF = 4565,
-  SHR64rCL_NF_ND = 4566,
-  SHR64ri = 4567,
-  SHR64ri_EVEX = 4568,
-  SHR64ri_ND = 4569,
-  SHR64ri_NF = 4570,
-  SHR64ri_NF_ND = 4571,
-  SHR8m1 = 4572,
-  SHR8m1_EVEX = 4573,
-  SHR8m1_ND = 4574,
-  SHR8m1_NF = 4575,
-  SHR8m1_NF_ND = 4576,
-  SHR8mCL = 4577,
-  SHR8mCL_EVEX = 4578,
-  SHR8mCL_ND = 4579,
-  SHR8mCL_NF = 4580,
-  SHR8mCL_NF_ND = 4581,
-  SHR8mi = 4582,
-  SHR8mi_EVEX = 4583,
-  SHR8mi_ND = 4584,
-  SHR8mi_NF = 4585,
-  SHR8mi_NF_ND = 4586,
-  SHR8r1 = 4587,
-  SHR8r1_EVEX = 4588,
-  SHR8r1_ND = 4589,
-  SHR8r1_NF = 4590,
-  SHR8r1_NF_ND = 4591,
-  SHR8rCL = 4592,
-  SHR8rCL_EVEX = 4593,
-  SHR8rCL_ND = 4594,
-  SHR8rCL_NF = 4595,
-  SHR8rCL_NF_ND = 4596,
-  SHR8ri = 4597,
-  SHR8ri_EVEX = 4598,
-  SHR8ri_ND = 4599,
-  SHR8ri_NF = 4600,
-  SHR8ri_NF_ND = 4601,
-  SHRD16mrCL = 4602,
-  SHRD16mrCL_EVEX = 4603,
-  SHRD16mrCL_ND = 4604,
-  SHRD16mrCL_NF = 4605,
-  SHRD16mrCL_NF_ND = 4606,
-  SHRD16mri8 = 4607,
-  SHRD16mri8_EVEX = 4608,
-  SHRD16mri8_ND = 4609,
-  SHRD16mri8_NF = 4610,
-  SHRD16mri8_NF_ND = 4611,
-  SHRD16rrCL = 4612,
-  SHRD16rrCL_EVEX = 4613,
-  SHRD16rrCL_ND = 4614,
-  SHRD16rrCL_NF = 4615,
-  SHRD16rrCL_NF_ND = 4616,
-  SHRD16rri8 = 4617,
-  SHRD16rri8_EVEX = 4618,
-  SHRD16rri8_ND = 4619,
-  SHRD16rri8_NF = 4620,
-  SHRD16rri8_NF_ND = 4621,
-  SHRD32mrCL = 4622,
-  SHRD32mrCL_EVEX = 4623,
-  SHRD32mrCL_ND = 4624,
-  SHRD32mrCL_NF = 4625,
-  SHRD32mrCL_NF_ND = 4626,
-  SHRD32mri8 = 4627,
-  SHRD32mri8_EVEX = 4628,
-  SHRD32mri8_ND = 4629,
-  SHRD32mri8_NF = 4630,
-  SHRD32mri8_NF_ND = 4631,
-  SHRD32rrCL = 4632,
-  SHRD32rrCL_EVEX = 4633,
-  SHRD32rrCL_ND = 4634,
-  SHRD32rrCL_NF = 4635,
-  SHRD32rrCL_NF_ND = 4636,
-  SHRD32rri8 = 4637,
-  SHRD32rri8_EVEX = 4638,
-  SHRD32rri8_ND = 4639,
-  SHRD32rri8_NF = 4640,
-  SHRD32rri8_NF_ND = 4641,
-  SHRD64mrCL = 4642,
-  SHRD64mrCL_EVEX = 4643,
-  SHRD64mrCL_ND = 4644,
-  SHRD64mrCL_NF = 4645,
-  SHRD64mrCL_NF_ND = 4646,
-  SHRD64mri8 = 4647,
-  SHRD64mri8_EVEX = 4648,
-  SHRD64mri8_ND = 4649,
-  SHRD64mri8_NF = 4650,
-  SHRD64mri8_NF_ND = 4651,
-  SHRD64rrCL = 4652,
-  SHRD64rrCL_EVEX = 4653,
-  SHRD64rrCL_ND = 4654,
-  SHRD64rrCL_NF = 4655,
-  SHRD64rrCL_NF_ND = 4656,
-  SHRD64rri8 = 4657,
-  SHRD64rri8_EVEX = 4658,
-  SHRD64rri8_ND = 4659,
-  SHRD64rri8_NF = 4660,
-  SHRD64rri8_NF_ND = 4661,
-  SHRX32rm = 4662,
-  SHRX32rm_EVEX = 4663,
-  SHRX32rr = 4664,
-  SHRX32rr_EVEX = 4665,
-  SHRX64rm = 4666,
-  SHRX64rm_EVEX = 4667,
-  SHRX64rr = 4668,
-  SHRX64rr_EVEX = 4669,
-  SHUFPDrmi = 4670,
-  SHUFPDrri = 4671,
-  SHUFPSrmi = 4672,
-  SHUFPSrri = 4673,
-  SIDT16m = 4674,
-  SIDT32m = 4675,
-  SIDT64m = 4676,
-  SKINIT = 4677,
-  SLDT16m = 4678,
-  SLDT16r = 4679,
-  SLDT32r = 4680,
-  SLDT64r = 4681,
-  SLWPCB = 4682,
-  SLWPCB64 = 4683,
-  SMSW16m = 4684,
-  SMSW16r = 4685,
-  SMSW32r = 4686,
-  SMSW64r = 4687,
-  SQRTPDm = 4688,
-  SQRTPDr = 4689,
-  SQRTPSm = 4690,
-  SQRTPSr = 4691,
-  SQRTSDm = 4692,
-  SQRTSDm_Int = 4693,
-  SQRTSDr = 4694,
-  SQRTSDr_Int = 4695,
-  SQRTSSm = 4696,
-  SQRTSSm_Int = 4697,
-  SQRTSSr = 4698,
-  SQRTSSr_Int = 4699,
-  SQRT_F = 4700,
-  SQRT_Fp32 = 4701,
-  SQRT_Fp64 = 4702,
-  SQRT_Fp80 = 4703,
-  SS_PREFIX = 4704,
-  STAC = 4705,
-  STACKALLOC_W_PROBING = 4706,
-  STC = 4707,
-  STD = 4708,
-  STGI = 4709,
-  STI = 4710,
-  STMXCSR = 4711,
-  STOSB = 4712,
-  STOSL = 4713,
-  STOSQ = 4714,
-  STOSW = 4715,
-  STR16r = 4716,
-  STR32r = 4717,
-  STR64r = 4718,
-  STRm = 4719,
-  STTILECFG = 4720,
-  STTILECFG_EVEX = 4721,
-  STUI = 4722,
-  ST_F32m = 4723,
-  ST_F64m = 4724,
-  ST_FP32m = 4725,
-  ST_FP64m = 4726,
-  ST_FP80m = 4727,
-  ST_FPrr = 4728,
-  ST_Fp32m = 4729,
-  ST_Fp64m = 4730,
-  ST_Fp64m32 = 4731,
-  ST_Fp80m32 = 4732,
-  ST_Fp80m64 = 4733,
-  ST_FpP32m = 4734,
-  ST_FpP64m = 4735,
-  ST_FpP64m32 = 4736,
-  ST_FpP80m = 4737,
-  ST_FpP80m32 = 4738,
-  ST_FpP80m64 = 4739,
-  ST_Frr = 4740,
-  SUB16i16 = 4741,
-  SUB16mi = 4742,
-  SUB16mi8 = 4743,
-  SUB16mi8_EVEX = 4744,
-  SUB16mi8_ND = 4745,
-  SUB16mi8_NF = 4746,
-  SUB16mi8_NF_ND = 4747,
-  SUB16mi_EVEX = 4748,
-  SUB16mi_ND = 4749,
-  SUB16mi_NF = 4750,
-  SUB16mi_NF_ND = 4751,
-  SUB16mr = 4752,
-  SUB16mr_EVEX = 4753,
-  SUB16mr_ND = 4754,
-  SUB16mr_NF = 4755,
-  SUB16mr_NF_ND = 4756,
-  SUB16ri = 4757,
-  SUB16ri8 = 4758,
-  SUB16ri8_EVEX = 4759,
-  SUB16ri8_ND = 4760,
-  SUB16ri8_NF = 4761,
-  SUB16ri8_NF_ND = 4762,
-  SUB16ri_EVEX = 4763,
-  SUB16ri_ND = 4764,
-  SUB16ri_NF = 4765,
-  SUB16ri_NF_ND = 4766,
-  SUB16rm = 4767,
-  SUB16rm_EVEX = 4768,
-  SUB16rm_ND = 4769,
-  SUB16rm_NF = 4770,
-  SUB16rm_NF_ND = 4771,
-  SUB16rr = 4772,
-  SUB16rr_EVEX = 4773,
-  SUB16rr_EVEX_REV = 4774,
-  SUB16rr_ND = 4775,
-  SUB16rr_ND_REV = 4776,
-  SUB16rr_NF = 4777,
-  SUB16rr_NF_ND = 4778,
-  SUB16rr_NF_ND_REV = 4779,
-  SUB16rr_NF_REV = 4780,
-  SUB16rr_REV = 4781,
-  SUB32i32 = 4782,
-  SUB32mi = 4783,
-  SUB32mi8 = 4784,
-  SUB32mi8_EVEX = 4785,
-  SUB32mi8_ND = 4786,
-  SUB32mi8_NF = 4787,
-  SUB32mi8_NF_ND = 4788,
-  SUB32mi_EVEX = 4789,
-  SUB32mi_ND = 4790,
-  SUB32mi_NF = 4791,
-  SUB32mi_NF_ND = 4792,
-  SUB32mr = 4793,
-  SUB32mr_EVEX = 4794,
-  SUB32mr_ND = 4795,
-  SUB32mr_NF = 4796,
-  SUB32mr_NF_ND = 4797,
-  SUB32ri = 4798,
-  SUB32ri8 = 4799,
-  SUB32ri8_EVEX = 4800,
-  SUB32ri8_ND = 4801,
-  SUB32ri8_NF = 4802,
-  SUB32ri8_NF_ND = 4803,
-  SUB32ri_EVEX = 4804,
-  SUB32ri_ND = 4805,
-  SUB32ri_NF = 4806,
-  SUB32ri_NF_ND = 4807,
-  SUB32rm = 4808,
-  SUB32rm_EVEX = 4809,
-  SUB32rm_ND = 4810,
-  SUB32rm_NF = 4811,
-  SUB32rm_NF_ND = 4812,
-  SUB32rr = 4813,
-  SUB32rr_EVEX = 4814,
-  SUB32rr_EVEX_REV = 4815,
-  SUB32rr_ND = 4816,
-  SUB32rr_ND_REV = 4817,
-  SUB32rr_NF = 4818,
-  SUB32rr_NF_ND = 4819,
-  SUB32rr_NF_ND_REV = 4820,
-  SUB32rr_NF_REV = 4821,
-  SUB32rr_REV = 4822,
-  SUB64i32 = 4823,
-  SUB64mi32 = 4824,
-  SUB64mi32_EVEX = 4825,
-  SUB64mi32_ND = 4826,
-  SUB64mi32_NF = 4827,
-  SUB64mi32_NF_ND = 4828,
-  SUB64mi8 = 4829,
-  SUB64mi8_EVEX = 4830,
-  SUB64mi8_ND = 4831,
-  SUB64mi8_NF = 4832,
-  SUB64mi8_NF_ND = 4833,
-  SUB64mr = 4834,
-  SUB64mr_EVEX = 4835,
-  SUB64mr_ND = 4836,
-  SUB64mr_NF = 4837,
-  SUB64mr_NF_ND = 4838,
-  SUB64ri32 = 4839,
-  SUB64ri32_EVEX = 4840,
-  SUB64ri32_ND = 4841,
-  SUB64ri32_NF = 4842,
-  SUB64ri32_NF_ND = 4843,
-  SUB64ri8 = 4844,
-  SUB64ri8_EVEX = 4845,
-  SUB64ri8_ND = 4846,
-  SUB64ri8_NF = 4847,
-  SUB64ri8_NF_ND = 4848,
-  SUB64rm = 4849,
-  SUB64rm_EVEX = 4850,
-  SUB64rm_ND = 4851,
-  SUB64rm_NF = 4852,
-  SUB64rm_NF_ND = 4853,
-  SUB64rr = 4854,
-  SUB64rr_EVEX = 4855,
-  SUB64rr_EVEX_REV = 4856,
-  SUB64rr_ND = 4857,
-  SUB64rr_ND_REV = 4858,
-  SUB64rr_NF = 4859,
-  SUB64rr_NF_ND = 4860,
-  SUB64rr_NF_ND_REV = 4861,
-  SUB64rr_NF_REV = 4862,
-  SUB64rr_REV = 4863,
-  SUB8i8 = 4864,
-  SUB8mi = 4865,
-  SUB8mi8 = 4866,
-  SUB8mi_EVEX = 4867,
-  SUB8mi_ND = 4868,
-  SUB8mi_NF = 4869,
-  SUB8mi_NF_ND = 4870,
-  SUB8mr = 4871,
-  SUB8mr_EVEX = 4872,
-  SUB8mr_ND = 4873,
-  SUB8mr_NF = 4874,
-  SUB8mr_NF_ND = 4875,
-  SUB8ri = 4876,
-  SUB8ri8 = 4877,
-  SUB8ri_EVEX = 4878,
-  SUB8ri_ND = 4879,
-  SUB8ri_NF = 4880,
-  SUB8ri_NF_ND = 4881,
-  SUB8rm = 4882,
-  SUB8rm_EVEX = 4883,
-  SUB8rm_ND = 4884,
-  SUB8rm_NF = 4885,
-  SUB8rm_NF_ND = 4886,
-  SUB8rr = 4887,
-  SUB8rr_EVEX = 4888,
-  SUB8rr_EVEX_REV = 4889,
-  SUB8rr_ND = 4890,
-  SUB8rr_ND_REV = 4891,
-  SUB8rr_NF = 4892,
-  SUB8rr_NF_ND = 4893,
-  SUB8rr_NF_ND_REV = 4894,
-  SUB8rr_NF_REV = 4895,
-  SUB8rr_REV = 4896,
-  SUBPDrm = 4897,
-  SUBPDrr = 4898,
-  SUBPSrm = 4899,
-  SUBPSrr = 4900,
-  SUBR_F32m = 4901,
-  SUBR_F64m = 4902,
-  SUBR_FI16m = 4903,
-  SUBR_FI32m = 4904,
-  SUBR_FPrST0 = 4905,
-  SUBR_FST0r = 4906,
-  SUBR_Fp32m = 4907,
-  SUBR_Fp64m = 4908,
-  SUBR_Fp64m32 = 4909,
-  SUBR_Fp80m32 = 4910,
-  SUBR_Fp80m64 = 4911,
-  SUBR_FpI16m32 = 4912,
-  SUBR_FpI16m64 = 4913,
-  SUBR_FpI16m80 = 4914,
-  SUBR_FpI32m32 = 4915,
-  SUBR_FpI32m64 = 4916,
-  SUBR_FpI32m80 = 4917,
-  SUBR_FrST0 = 4918,
-  SUBSDrm = 4919,
-  SUBSDrm_Int = 4920,
-  SUBSDrr = 4921,
-  SUBSDrr_Int = 4922,
-  SUBSSrm = 4923,
-  SUBSSrm_Int = 4924,
-  SUBSSrr = 4925,
-  SUBSSrr_Int = 4926,
-  SUB_F32m = 4927,
-  SUB_F64m = 4928,
-  SUB_FI16m = 4929,
-  SUB_FI32m = 4930,
-  SUB_FPrST0 = 4931,
-  SUB_FST0r = 4932,
-  SUB_Fp32 = 4933,
-  SUB_Fp32m = 4934,
-  SUB_Fp64 = 4935,
-  SUB_Fp64m = 4936,
-  SUB_Fp64m32 = 4937,
-  SUB_Fp80 = 4938,
-  SUB_Fp80m32 = 4939,
-  SUB_Fp80m64 = 4940,
-  SUB_FpI16m32 = 4941,
-  SUB_FpI16m64 = 4942,
-  SUB_FpI16m80 = 4943,
-  SUB_FpI32m32 = 4944,
-  SUB_FpI32m64 = 4945,
-  SUB_FpI32m80 = 4946,
-  SUB_FrST0 = 4947,
-  SWAPGS = 4948,
-  SYSCALL = 4949,
-  SYSENTER = 4950,
-  SYSEXIT = 4951,
-  SYSEXIT64 = 4952,
-  SYSRET = 4953,
-  SYSRET64 = 4954,
-  T1MSKC32rm = 4955,
-  T1MSKC32rr = 4956,
-  T1MSKC64rm = 4957,
-  T1MSKC64rr = 4958,
-  T2RPNTLVWZ0 = 4959,
-  T2RPNTLVWZ0RS = 4960,
-  T2RPNTLVWZ0RST1 = 4961,
-  T2RPNTLVWZ0RST1_EVEX = 4962,
-  T2RPNTLVWZ0RS_EVEX = 4963,
-  T2RPNTLVWZ0T1 = 4964,
-  T2RPNTLVWZ0T1_EVEX = 4965,
-  T2RPNTLVWZ0_EVEX = 4966,
-  T2RPNTLVWZ1 = 4967,
-  T2RPNTLVWZ1RS = 4968,
-  T2RPNTLVWZ1RST1 = 4969,
-  T2RPNTLVWZ1RST1_EVEX = 4970,
-  T2RPNTLVWZ1RS_EVEX = 4971,
-  T2RPNTLVWZ1T1 = 4972,
-  T2RPNTLVWZ1T1_EVEX = 4973,
-  T2RPNTLVWZ1_EVEX = 4974,
-  TAILJMPd = 4975,
-  TAILJMPd64 = 4976,
-  TAILJMPd64_CC = 4977,
-  TAILJMPd_CC = 4978,
-  TAILJMPm = 4979,
-  TAILJMPm64 = 4980,
-  TAILJMPm64_REX = 4981,
-  TAILJMPr = 4982,
-  TAILJMPr64 = 4983,
-  TAILJMPr64_REX = 4984,
-  TCMMIMFP16PS = 4985,
-  TCMMRLFP16PS = 4986,
-  TCONJTCMMIMFP16PS = 4987,
-  TCONJTFP16 = 4988,
-  TCRETURNdi = 4989,
-  TCRETURNdi64 = 4990,
-  TCRETURNdi64cc = 4991,
-  TCRETURNdicc = 4992,
-  TCRETURNmi = 4993,
-  TCRETURNmi64 = 4994,
-  TCRETURNri = 4995,
-  TCRETURNri64 = 4996,
-  TCRETURNri64_ImpCall = 4997,
-  TCVTROWD2PSrre = 4998,
-  TCVTROWD2PSrri = 4999,
-  TCVTROWPS2BF16Hrre = 5000,
-  TCVTROWPS2BF16Hrri = 5001,
-  TCVTROWPS2BF16Lrre = 5002,
-  TCVTROWPS2BF16Lrri = 5003,
-  TCVTROWPS2PHHrre = 5004,
-  TCVTROWPS2PHHrri = 5005,
-  TCVTROWPS2PHLrre = 5006,
-  TCVTROWPS2PHLrri = 5007,
-  TDCALL = 5008,
-  TDPBF16PS = 5009,
-  TDPBF8PS = 5010,
-  TDPBHF8PS = 5011,
-  TDPBSSD = 5012,
-  TDPBSUD = 5013,
-  TDPBUSD = 5014,
-  TDPBUUD = 5015,
-  TDPFP16PS = 5016,
-  TDPHBF8PS = 5017,
-  TDPHF8PS = 5018,
-  TEST16i16 = 5019,
-  TEST16mi = 5020,
-  TEST16mr = 5021,
-  TEST16ri = 5022,
-  TEST16rr = 5023,
-  TEST32i32 = 5024,
-  TEST32mi = 5025,
-  TEST32mr = 5026,
-  TEST32ri = 5027,
-  TEST32rr = 5028,
-  TEST64i32 = 5029,
-  TEST64mi32 = 5030,
-  TEST64mr = 5031,
-  TEST64ri32 = 5032,
-  TEST64rr = 5033,
-  TEST8i8 = 5034,
-  TEST8mi = 5035,
-  TEST8mr = 5036,
-  TEST8ri = 5037,
-  TEST8rr = 5038,
-  TESTUI = 5039,
-  TILELOADD = 5040,
-  TILELOADDRS = 5041,
-  TILELOADDRST1 = 5042,
-  TILELOADDRST1_EVEX = 5043,
-  TILELOADDRS_EVEX = 5044,
-  TILELOADDT1 = 5045,
-  TILELOADDT1_EVEX = 5046,
-  TILELOADD_EVEX = 5047,
-  TILEMOVROWrre = 5048,
-  TILEMOVROWrri = 5049,
-  TILERELEASE = 5050,
-  TILESTORED = 5051,
-  TILESTORED_EVEX = 5052,
-  TILEZERO = 5053,
-  TLBSYNC = 5054,
-  TLSCall_32 = 5055,
-  TLSCall_64 = 5056,
-  TLS_addr32 = 5057,
-  TLS_addr64 = 5058,
-  TLS_addrX32 = 5059,
-  TLS_base_addr32 = 5060,
-  TLS_base_addr64 = 5061,
-  TLS_base_addrX32 = 5062,
-  TLS_desc32 = 5063,
-  TLS_desc64 = 5064,
-  TMMULTF32PS = 5065,
-  TPAUSE = 5066,
-  TRAP = 5067,
-  TST_F = 5068,
-  TST_Fp32 = 5069,
-  TST_Fp64 = 5070,
-  TST_Fp80 = 5071,
-  TTCMMIMFP16PS = 5072,
-  TTCMMRLFP16PS = 5073,
-  TTDPBF16PS = 5074,
-  TTDPFP16PS = 5075,
-  TTMMULTF32PS = 5076,
-  TTRANSPOSED = 5077,
-  TZCNT16rm = 5078,
-  TZCNT16rm_EVEX = 5079,
-  TZCNT16rm_NF = 5080,
-  TZCNT16rr = 5081,
-  TZCNT16rr_EVEX = 5082,
-  TZCNT16rr_NF = 5083,
-  TZCNT32rm = 5084,
-  TZCNT32rm_EVEX = 5085,
-  TZCNT32rm_NF = 5086,
-  TZCNT32rr = 5087,
-  TZCNT32rr_EVEX = 5088,
-  TZCNT32rr_NF = 5089,
-  TZCNT64rm = 5090,
-  TZCNT64rm_EVEX = 5091,
-  TZCNT64rm_NF = 5092,
-  TZCNT64rr = 5093,
-  TZCNT64rr_EVEX = 5094,
-  TZCNT64rr_NF = 5095,
-  TZMSK32rm = 5096,
-  TZMSK32rr = 5097,
-  TZMSK64rm = 5098,
-  TZMSK64rr = 5099,
-  UBSAN_UD1 = 5100,
-  UCOMISDrm = 5101,
-  UCOMISDrm_Int = 5102,
-  UCOMISDrr = 5103,
-  UCOMISDrr_Int = 5104,
-  UCOMISSrm = 5105,
-  UCOMISSrm_Int = 5106,
-  UCOMISSrr = 5107,
-  UCOMISSrr_Int = 5108,
-  UCOM_FIPr = 5109,
-  UCOM_FIr = 5110,
-  UCOM_FPPr = 5111,
-  UCOM_FPr = 5112,
-  UCOM_FpIr32 = 5113,
-  UCOM_FpIr64 = 5114,
-  UCOM_FpIr80 = 5115,
-  UCOM_Fpr32 = 5116,
-  UCOM_Fpr64 = 5117,
-  UCOM_Fpr80 = 5118,
-  UCOM_Fr = 5119,
-  UD1Lm = 5120,
-  UD1Lr = 5121,
-  UD1Qm = 5122,
-  UD1Qr = 5123,
-  UD1Wm = 5124,
-  UD1Wr = 5125,
-  UIRET = 5126,
-  UMONITOR16 = 5127,
-  UMONITOR32 = 5128,
-  UMONITOR64 = 5129,
-  UMWAIT = 5130,
-  UNPCKHPDrm = 5131,
-  UNPCKHPDrr = 5132,
-  UNPCKHPSrm = 5133,
-  UNPCKHPSrr = 5134,
-  UNPCKLPDrm = 5135,
-  UNPCKLPDrr = 5136,
-  UNPCKLPSrm = 5137,
-  UNPCKLPSrr = 5138,
-  URDMSRri = 5139,
-  URDMSRri_EVEX = 5140,
-  URDMSRrr = 5141,
-  URDMSRrr_EVEX = 5142,
-  UWRMSRir = 5143,
-  UWRMSRir_EVEX = 5144,
-  UWRMSRrr = 5145,
-  UWRMSRrr_EVEX = 5146,
-  V4FMADDPSrm = 5147,
-  V4FMADDPSrmk = 5148,
-  V4FMADDPSrmkz = 5149,
-  V4FMADDSSrm = 5150,
-  V4FMADDSSrmk = 5151,
-  V4FMADDSSrmkz = 5152,
-  V4FNMADDPSrm = 5153,
-  V4FNMADDPSrmk = 5154,
-  V4FNMADDPSrmkz = 5155,
-  V4FNMADDSSrm = 5156,
-  V4FNMADDSSrmk = 5157,
-  V4FNMADDSSrmkz = 5158,
-  VAARG_64 = 5159,
-  VAARG_X32 = 5160,
-  VADDBF16Z128rm = 5161,
-  VADDBF16Z128rmb = 5162,
-  VADDBF16Z128rmbk = 5163,
-  VADDBF16Z128rmbkz = 5164,
-  VADDBF16Z128rmk = 5165,
-  VADDBF16Z128rmkz = 5166,
-  VADDBF16Z128rr = 5167,
-  VADDBF16Z128rrk = 5168,
-  VADDBF16Z128rrkz = 5169,
-  VADDBF16Z256rm = 5170,
-  VADDBF16Z256rmb = 5171,
-  VADDBF16Z256rmbk = 5172,
-  VADDBF16Z256rmbkz = 5173,
-  VADDBF16Z256rmk = 5174,
-  VADDBF16Z256rmkz = 5175,
-  VADDBF16Z256rr = 5176,
-  VADDBF16Z256rrk = 5177,
-  VADDBF16Z256rrkz = 5178,
-  VADDBF16Zrm = 5179,
-  VADDBF16Zrmb = 5180,
-  VADDBF16Zrmbk = 5181,
-  VADDBF16Zrmbkz = 5182,
-  VADDBF16Zrmk = 5183,
-  VADDBF16Zrmkz = 5184,
-  VADDBF16Zrr = 5185,
-  VADDBF16Zrrk = 5186,
-  VADDBF16Zrrkz = 5187,
-  VADDPDYrm = 5188,
-  VADDPDYrr = 5189,
-  VADDPDZ128rm = 5190,
-  VADDPDZ128rmb = 5191,
-  VADDPDZ128rmbk = 5192,
-  VADDPDZ128rmbkz = 5193,
-  VADDPDZ128rmk = 5194,
-  VADDPDZ128rmkz = 5195,
-  VADDPDZ128rr = 5196,
-  VADDPDZ128rrk = 5197,
-  VADDPDZ128rrkz = 5198,
-  VADDPDZ256rm = 5199,
-  VADDPDZ256rmb = 5200,
-  VADDPDZ256rmbk = 5201,
-  VADDPDZ256rmbkz = 5202,
-  VADDPDZ256rmk = 5203,
-  VADDPDZ256rmkz = 5204,
-  VADDPDZ256rr = 5205,
-  VADDPDZ256rrk = 5206,
-  VADDPDZ256rrkz = 5207,
-  VADDPDZrm = 5208,
-  VADDPDZrmb = 5209,
-  VADDPDZrmbk = 5210,
-  VADDPDZrmbkz = 5211,
-  VADDPDZrmk = 5212,
-  VADDPDZrmkz = 5213,
-  VADDPDZrr = 5214,
-  VADDPDZrrb = 5215,
-  VADDPDZrrbk = 5216,
-  VADDPDZrrbkz = 5217,
-  VADDPDZrrk = 5218,
-  VADDPDZrrkz = 5219,
-  VADDPDrm = 5220,
-  VADDPDrr = 5221,
-  VADDPHZ128rm = 5222,
-  VADDPHZ128rmb = 5223,
-  VADDPHZ128rmbk = 5224,
-  VADDPHZ128rmbkz = 5225,
-  VADDPHZ128rmk = 5226,
-  VADDPHZ128rmkz = 5227,
-  VADDPHZ128rr = 5228,
-  VADDPHZ128rrk = 5229,
-  VADDPHZ128rrkz = 5230,
-  VADDPHZ256rm = 5231,
-  VADDPHZ256rmb = 5232,
-  VADDPHZ256rmbk = 5233,
-  VADDPHZ256rmbkz = 5234,
-  VADDPHZ256rmk = 5235,
-  VADDPHZ256rmkz = 5236,
-  VADDPHZ256rr = 5237,
-  VADDPHZ256rrk = 5238,
-  VADDPHZ256rrkz = 5239,
-  VADDPHZrm = 5240,
-  VADDPHZrmb = 5241,
-  VADDPHZrmbk = 5242,
-  VADDPHZrmbkz = 5243,
-  VADDPHZrmk = 5244,
-  VADDPHZrmkz = 5245,
-  VADDPHZrr = 5246,
-  VADDPHZrrb = 5247,
-  VADDPHZrrbk = 5248,
-  VADDPHZrrbkz = 5249,
-  VADDPHZrrk = 5250,
-  VADDPHZrrkz = 5251,
-  VADDPSYrm = 5252,
-  VADDPSYrr = 5253,
-  VADDPSZ128rm = 5254,
-  VADDPSZ128rmb = 5255,
-  VADDPSZ128rmbk = 5256,
-  VADDPSZ128rmbkz = 5257,
-  VADDPSZ128rmk = 5258,
-  VADDPSZ128rmkz = 5259,
-  VADDPSZ128rr = 5260,
-  VADDPSZ128rrk = 5261,
-  VADDPSZ128rrkz = 5262,
-  VADDPSZ256rm = 5263,
-  VADDPSZ256rmb = 5264,
-  VADDPSZ256rmbk = 5265,
-  VADDPSZ256rmbkz = 5266,
-  VADDPSZ256rmk = 5267,
-  VADDPSZ256rmkz = 5268,
-  VADDPSZ256rr = 5269,
-  VADDPSZ256rrk = 5270,
-  VADDPSZ256rrkz = 5271,
-  VADDPSZrm = 5272,
-  VADDPSZrmb = 5273,
-  VADDPSZrmbk = 5274,
-  VADDPSZrmbkz = 5275,
-  VADDPSZrmk = 5276,
-  VADDPSZrmkz = 5277,
-  VADDPSZrr = 5278,
-  VADDPSZrrb = 5279,
-  VADDPSZrrbk = 5280,
-  VADDPSZrrbkz = 5281,
-  VADDPSZrrk = 5282,
-  VADDPSZrrkz = 5283,
-  VADDPSrm = 5284,
-  VADDPSrr = 5285,
-  VADDSDZrm = 5286,
-  VADDSDZrm_Int = 5287,
-  VADDSDZrmk_Int = 5288,
-  VADDSDZrmkz_Int = 5289,
-  VADDSDZrr = 5290,
-  VADDSDZrr_Int = 5291,
-  VADDSDZrrb_Int = 5292,
-  VADDSDZrrbk_Int = 5293,
-  VADDSDZrrbkz_Int = 5294,
-  VADDSDZrrk_Int = 5295,
-  VADDSDZrrkz_Int = 5296,
-  VADDSDrm = 5297,
-  VADDSDrm_Int = 5298,
-  VADDSDrr = 5299,
-  VADDSDrr_Int = 5300,
-  VADDSHZrm = 5301,
-  VADDSHZrm_Int = 5302,
-  VADDSHZrmk_Int = 5303,
-  VADDSHZrmkz_Int = 5304,
-  VADDSHZrr = 5305,
-  VADDSHZrr_Int = 5306,
-  VADDSHZrrb_Int = 5307,
-  VADDSHZrrbk_Int = 5308,
-  VADDSHZrrbkz_Int = 5309,
-  VADDSHZrrk_Int = 5310,
-  VADDSHZrrkz_Int = 5311,
-  VADDSSZrm = 5312,
-  VADDSSZrm_Int = 5313,
-  VADDSSZrmk_Int = 5314,
-  VADDSSZrmkz_Int = 5315,
-  VADDSSZrr = 5316,
-  VADDSSZrr_Int = 5317,
-  VADDSSZrrb_Int = 5318,
-  VADDSSZrrbk_Int = 5319,
-  VADDSSZrrbkz_Int = 5320,
-  VADDSSZrrk_Int = 5321,
-  VADDSSZrrkz_Int = 5322,
-  VADDSSrm = 5323,
-  VADDSSrm_Int = 5324,
-  VADDSSrr = 5325,
-  VADDSSrr_Int = 5326,
-  VADDSUBPDYrm = 5327,
-  VADDSUBPDYrr = 5328,
-  VADDSUBPDrm = 5329,
-  VADDSUBPDrr = 5330,
-  VADDSUBPSYrm = 5331,
-  VADDSUBPSYrr = 5332,
-  VADDSUBPSrm = 5333,
-  VADDSUBPSrr = 5334,
-  VAESDECLASTYrm = 5335,
-  VAESDECLASTYrr = 5336,
-  VAESDECLASTZ128rm = 5337,
-  VAESDECLASTZ128rr = 5338,
-  VAESDECLASTZ256rm = 5339,
-  VAESDECLASTZ256rr = 5340,
-  VAESDECLASTZrm = 5341,
-  VAESDECLASTZrr = 5342,
-  VAESDECLASTrm = 5343,
-  VAESDECLASTrr = 5344,
-  VAESDECYrm = 5345,
-  VAESDECYrr = 5346,
-  VAESDECZ128rm = 5347,
-  VAESDECZ128rr = 5348,
-  VAESDECZ256rm = 5349,
-  VAESDECZ256rr = 5350,
-  VAESDECZrm = 5351,
-  VAESDECZrr = 5352,
-  VAESDECrm = 5353,
-  VAESDECrr = 5354,
-  VAESENCLASTYrm = 5355,
-  VAESENCLASTYrr = 5356,
-  VAESENCLASTZ128rm = 5357,
-  VAESENCLASTZ128rr = 5358,
-  VAESENCLASTZ256rm = 5359,
-  VAESENCLASTZ256rr = 5360,
-  VAESENCLASTZrm = 5361,
-  VAESENCLASTZrr = 5362,
-  VAESENCLASTrm = 5363,
-  VAESENCLASTrr = 5364,
-  VAESENCYrm = 5365,
-  VAESENCYrr = 5366,
-  VAESENCZ128rm = 5367,
-  VAESENCZ128rr = 5368,
-  VAESENCZ256rm = 5369,
-  VAESENCZ256rr = 5370,
-  VAESENCZrm = 5371,
-  VAESENCZrr = 5372,
-  VAESENCrm = 5373,
-  VAESENCrr = 5374,
-  VAESIMCrm = 5375,
-  VAESIMCrr = 5376,
-  VAESKEYGENASSIST128rm = 5377,
-  VAESKEYGENASSIST128rr = 5378,
-  VALIGNDZ128rmbi = 5379,
-  VALIGNDZ128rmbik = 5380,
-  VALIGNDZ128rmbikz = 5381,
-  VALIGNDZ128rmi = 5382,
-  VALIGNDZ128rmik = 5383,
-  VALIGNDZ128rmikz = 5384,
-  VALIGNDZ128rri = 5385,
-  VALIGNDZ128rrik = 5386,
-  VALIGNDZ128rrikz = 5387,
-  VALIGNDZ256rmbi = 5388,
-  VALIGNDZ256rmbik = 5389,
-  VALIGNDZ256rmbikz = 5390,
-  VALIGNDZ256rmi = 5391,
-  VALIGNDZ256rmik = 5392,
-  VALIGNDZ256rmikz = 5393,
-  VALIGNDZ256rri = 5394,
-  VALIGNDZ256rrik = 5395,
-  VALIGNDZ256rrikz = 5396,
-  VALIGNDZrmbi = 5397,
-  VALIGNDZrmbik = 5398,
-  VALIGNDZrmbikz = 5399,
-  VALIGNDZrmi = 5400,
-  VALIGNDZrmik = 5401,
-  VALIGNDZrmikz = 5402,
-  VALIGNDZrri = 5403,
-  VALIGNDZrrik = 5404,
-  VALIGNDZrrikz = 5405,
-  VALIGNQZ128rmbi = 5406,
-  VALIGNQZ128rmbik = 5407,
-  VALIGNQZ128rmbikz = 5408,
-  VALIGNQZ128rmi = 5409,
-  VALIGNQZ128rmik = 5410,
-  VALIGNQZ128rmikz = 5411,
-  VALIGNQZ128rri = 5412,
-  VALIGNQZ128rrik = 5413,
-  VALIGNQZ128rrikz = 5414,
-  VALIGNQZ256rmbi = 5415,
-  VALIGNQZ256rmbik = 5416,
-  VALIGNQZ256rmbikz = 5417,
-  VALIGNQZ256rmi = 5418,
-  VALIGNQZ256rmik = 5419,
-  VALIGNQZ256rmikz = 5420,
-  VALIGNQZ256rri = 5421,
-  VALIGNQZ256rrik = 5422,
-  VALIGNQZ256rrikz = 5423,
-  VALIGNQZrmbi = 5424,
-  VALIGNQZrmbik = 5425,
-  VALIGNQZrmbikz = 5426,
-  VALIGNQZrmi = 5427,
-  VALIGNQZrmik = 5428,
-  VALIGNQZrmikz = 5429,
-  VALIGNQZrri = 5430,
-  VALIGNQZrrik = 5431,
-  VALIGNQZrrikz = 5432,
-  VANDNPDYrm = 5433,
-  VANDNPDYrr = 5434,
-  VANDNPDZ128rm = 5435,
-  VANDNPDZ128rmb = 5436,
-  VANDNPDZ128rmbk = 5437,
-  VANDNPDZ128rmbkz = 5438,
-  VANDNPDZ128rmk = 5439,
-  VANDNPDZ128rmkz = 5440,
-  VANDNPDZ128rr = 5441,
-  VANDNPDZ128rrk = 5442,
-  VANDNPDZ128rrkz = 5443,
-  VANDNPDZ256rm = 5444,
-  VANDNPDZ256rmb = 5445,
-  VANDNPDZ256rmbk = 5446,
-  VANDNPDZ256rmbkz = 5447,
-  VANDNPDZ256rmk = 5448,
-  VANDNPDZ256rmkz = 5449,
-  VANDNPDZ256rr = 5450,
-  VANDNPDZ256rrk = 5451,
-  VANDNPDZ256rrkz = 5452,
-  VANDNPDZrm = 5453,
-  VANDNPDZrmb = 5454,
-  VANDNPDZrmbk = 5455,
-  VANDNPDZrmbkz = 5456,
-  VANDNPDZrmk = 5457,
-  VANDNPDZrmkz = 5458,
-  VANDNPDZrr = 5459,
-  VANDNPDZrrk = 5460,
-  VANDNPDZrrkz = 5461,
-  VANDNPDrm = 5462,
-  VANDNPDrr = 5463,
-  VANDNPSYrm = 5464,
-  VANDNPSYrr = 5465,
-  VANDNPSZ128rm = 5466,
-  VANDNPSZ128rmb = 5467,
-  VANDNPSZ128rmbk = 5468,
-  VANDNPSZ128rmbkz = 5469,
-  VANDNPSZ128rmk = 5470,
-  VANDNPSZ128rmkz = 5471,
-  VANDNPSZ128rr = 5472,
-  VANDNPSZ128rrk = 5473,
-  VANDNPSZ128rrkz = 5474,
-  VANDNPSZ256rm = 5475,
-  VANDNPSZ256rmb = 5476,
-  VANDNPSZ256rmbk = 5477,
-  VANDNPSZ256rmbkz = 5478,
-  VANDNPSZ256rmk = 5479,
-  VANDNPSZ256rmkz = 5480,
-  VANDNPSZ256rr = 5481,
-  VANDNPSZ256rrk = 5482,
-  VANDNPSZ256rrkz = 5483,
-  VANDNPSZrm = 5484,
-  VANDNPSZrmb = 5485,
-  VANDNPSZrmbk = 5486,
-  VANDNPSZrmbkz = 5487,
-  VANDNPSZrmk = 5488,
-  VANDNPSZrmkz = 5489,
-  VANDNPSZrr = 5490,
-  VANDNPSZrrk = 5491,
-  VANDNPSZrrkz = 5492,
-  VANDNPSrm = 5493,
-  VANDNPSrr = 5494,
-  VANDPDYrm = 5495,
-  VANDPDYrr = 5496,
-  VANDPDZ128rm = 5497,
-  VANDPDZ128rmb = 5498,
-  VANDPDZ128rmbk = 5499,
-  VANDPDZ128rmbkz = 5500,
-  VANDPDZ128rmk = 5501,
-  VANDPDZ128rmkz = 5502,
-  VANDPDZ128rr = 5503,
-  VANDPDZ128rrk = 5504,
-  VANDPDZ128rrkz = 5505,
-  VANDPDZ256rm = 5506,
-  VANDPDZ256rmb = 5507,
-  VANDPDZ256rmbk = 5508,
-  VANDPDZ256rmbkz = 5509,
-  VANDPDZ256rmk = 5510,
-  VANDPDZ256rmkz = 5511,
-  VANDPDZ256rr = 5512,
-  VANDPDZ256rrk = 5513,
-  VANDPDZ256rrkz = 5514,
-  VANDPDZrm = 5515,
-  VANDPDZrmb = 5516,
-  VANDPDZrmbk = 5517,
-  VANDPDZrmbkz = 5518,
-  VANDPDZrmk = 5519,
-  VANDPDZrmkz = 5520,
-  VANDPDZrr = 5521,
-  VANDPDZrrk = 5522,
-  VANDPDZrrkz = 5523,
-  VANDPDrm = 5524,
-  VANDPDrr = 5525,
-  VANDPSYrm = 5526,
-  VANDPSYrr = 5527,
-  VANDPSZ128rm = 5528,
-  VANDPSZ128rmb = 5529,
-  VANDPSZ128rmbk = 5530,
-  VANDPSZ128rmbkz = 5531,
-  VANDPSZ128rmk = 5532,
-  VANDPSZ128rmkz = 5533,
-  VANDPSZ128rr = 5534,
-  VANDPSZ128rrk = 5535,
-  VANDPSZ128rrkz = 5536,
-  VANDPSZ256rm = 5537,
-  VANDPSZ256rmb = 5538,
-  VANDPSZ256rmbk = 5539,
-  VANDPSZ256rmbkz = 5540,
-  VANDPSZ256rmk = 5541,
-  VANDPSZ256rmkz = 5542,
-  VANDPSZ256rr = 5543,
-  VANDPSZ256rrk = 5544,
-  VANDPSZ256rrkz = 5545,
-  VANDPSZrm = 5546,
-  VANDPSZrmb = 5547,
-  VANDPSZrmbk = 5548,
-  VANDPSZrmbkz = 5549,
-  VANDPSZrmk = 5550,
-  VANDPSZrmkz = 5551,
-  VANDPSZrr = 5552,
-  VANDPSZrrk = 5553,
-  VANDPSZrrkz = 5554,
-  VANDPSrm = 5555,
-  VANDPSrr = 5556,
-  VASTART_SAVE_XMM_REGS = 5557,
-  VBCSTNEBF162PSYrm = 5558,
-  VBCSTNEBF162PSrm = 5559,
-  VBCSTNESH2PSYrm = 5560,
-  VBCSTNESH2PSrm = 5561,
-  VBLENDMPDZ128rm = 5562,
-  VBLENDMPDZ128rmb = 5563,
-  VBLENDMPDZ128rmbk = 5564,
-  VBLENDMPDZ128rmbkz = 5565,
-  VBLENDMPDZ128rmk = 5566,
-  VBLENDMPDZ128rmkz = 5567,
-  VBLENDMPDZ128rr = 5568,
-  VBLENDMPDZ128rrk = 5569,
-  VBLENDMPDZ128rrkz = 5570,
-  VBLENDMPDZ256rm = 5571,
-  VBLENDMPDZ256rmb = 5572,
-  VBLENDMPDZ256rmbk = 5573,
-  VBLENDMPDZ256rmbkz = 5574,
-  VBLENDMPDZ256rmk = 5575,
-  VBLENDMPDZ256rmkz = 5576,
-  VBLENDMPDZ256rr = 5577,
-  VBLENDMPDZ256rrk = 5578,
-  VBLENDMPDZ256rrkz = 5579,
-  VBLENDMPDZrm = 5580,
-  VBLENDMPDZrmb = 5581,
-  VBLENDMPDZrmbk = 5582,
-  VBLENDMPDZrmbkz = 5583,
-  VBLENDMPDZrmk = 5584,
-  VBLENDMPDZrmkz = 5585,
-  VBLENDMPDZrr = 5586,
-  VBLENDMPDZrrk = 5587,
-  VBLENDMPDZrrkz = 5588,
-  VBLENDMPSZ128rm = 5589,
-  VBLENDMPSZ128rmb = 5590,
-  VBLENDMPSZ128rmbk = 5591,
-  VBLENDMPSZ128rmbkz = 5592,
-  VBLENDMPSZ128rmk = 5593,
-  VBLENDMPSZ128rmkz = 5594,
-  VBLENDMPSZ128rr = 5595,
-  VBLENDMPSZ128rrk = 5596,
-  VBLENDMPSZ128rrkz = 5597,
-  VBLENDMPSZ256rm = 5598,
-  VBLENDMPSZ256rmb = 5599,
-  VBLENDMPSZ256rmbk = 5600,
-  VBLENDMPSZ256rmbkz = 5601,
-  VBLENDMPSZ256rmk = 5602,
-  VBLENDMPSZ256rmkz = 5603,
-  VBLENDMPSZ256rr = 5604,
-  VBLENDMPSZ256rrk = 5605,
-  VBLENDMPSZ256rrkz = 5606,
-  VBLENDMPSZrm = 5607,
-  VBLENDMPSZrmb = 5608,
-  VBLENDMPSZrmbk = 5609,
-  VBLENDMPSZrmbkz = 5610,
-  VBLENDMPSZrmk = 5611,
-  VBLENDMPSZrmkz = 5612,
-  VBLENDMPSZrr = 5613,
-  VBLENDMPSZrrk = 5614,
-  VBLENDMPSZrrkz = 5615,
-  VBLENDPDYrmi = 5616,
-  VBLENDPDYrri = 5617,
-  VBLENDPDrmi = 5618,
-  VBLENDPDrri = 5619,
-  VBLENDPSYrmi = 5620,
-  VBLENDPSYrri = 5621,
-  VBLENDPSrmi = 5622,
-  VBLENDPSrri = 5623,
-  VBLENDVPDYrmr = 5624,
-  VBLENDVPDYrrr = 5625,
-  VBLENDVPDrmr = 5626,
-  VBLENDVPDrrr = 5627,
-  VBLENDVPSYrmr = 5628,
-  VBLENDVPSYrrr = 5629,
-  VBLENDVPSrmr = 5630,
-  VBLENDVPSrrr = 5631,
-  VBROADCASTF128rm = 5632,
-  VBROADCASTF32X2Z256rm = 5633,
-  VBROADCASTF32X2Z256rmk = 5634,
-  VBROADCASTF32X2Z256rmkz = 5635,
-  VBROADCASTF32X2Z256rr = 5636,
-  VBROADCASTF32X2Z256rrk = 5637,
-  VBROADCASTF32X2Z256rrkz = 5638,
-  VBROADCASTF32X2Zrm = 5639,
-  VBROADCASTF32X2Zrmk = 5640,
-  VBROADCASTF32X2Zrmkz = 5641,
-  VBROADCASTF32X2Zrr = 5642,
-  VBROADCASTF32X2Zrrk = 5643,
-  VBROADCASTF32X2Zrrkz = 5644,
-  VBROADCASTF32X4Z256rm = 5645,
-  VBROADCASTF32X4Z256rmk = 5646,
-  VBROADCASTF32X4Z256rmkz = 5647,
-  VBROADCASTF32X4Zrm = 5648,
-  VBROADCASTF32X4Zrmk = 5649,
-  VBROADCASTF32X4Zrmkz = 5650,
-  VBROADCASTF32X8Zrm = 5651,
-  VBROADCASTF32X8Zrmk = 5652,
-  VBROADCASTF32X8Zrmkz = 5653,
-  VBROADCASTF64X2Z256rm = 5654,
-  VBROADCASTF64X2Z256rmk = 5655,
-  VBROADCASTF64X2Z256rmkz = 5656,
-  VBROADCASTF64X2Zrm = 5657,
-  VBROADCASTF64X2Zrmk = 5658,
-  VBROADCASTF64X2Zrmkz = 5659,
-  VBROADCASTF64X4Zrm = 5660,
-  VBROADCASTF64X4Zrmk = 5661,
-  VBROADCASTF64X4Zrmkz = 5662,
-  VBROADCASTI128rm = 5663,
-  VBROADCASTI32X2Z128rm = 5664,
-  VBROADCASTI32X2Z128rmk = 5665,
-  VBROADCASTI32X2Z128rmkz = 5666,
-  VBROADCASTI32X2Z128rr = 5667,
-  VBROADCASTI32X2Z128rrk = 5668,
-  VBROADCASTI32X2Z128rrkz = 5669,
-  VBROADCASTI32X2Z256rm = 5670,
-  VBROADCASTI32X2Z256rmk = 5671,
-  VBROADCASTI32X2Z256rmkz = 5672,
-  VBROADCASTI32X2Z256rr = 5673,
-  VBROADCASTI32X2Z256rrk = 5674,
-  VBROADCASTI32X2Z256rrkz = 5675,
-  VBROADCASTI32X2Zrm = 5676,
-  VBROADCASTI32X2Zrmk = 5677,
-  VBROADCASTI32X2Zrmkz = 5678,
-  VBROADCASTI32X2Zrr = 5679,
-  VBROADCASTI32X2Zrrk = 5680,
-  VBROADCASTI32X2Zrrkz = 5681,
-  VBROADCASTI32X4Z256rm = 5682,
-  VBROADCASTI32X4Z256rmk = 5683,
-  VBROADCASTI32X4Z256rmkz = 5684,
-  VBROADCASTI32X4Zrm = 5685,
-  VBROADCASTI32X4Zrmk = 5686,
-  VBROADCASTI32X4Zrmkz = 5687,
-  VBROADCASTI32X8Zrm = 5688,
-  VBROADCASTI32X8Zrmk = 5689,
-  VBROADCASTI32X8Zrmkz = 5690,
-  VBROADCASTI64X2Z256rm = 5691,
-  VBROADCASTI64X2Z256rmk = 5692,
-  VBROADCASTI64X2Z256rmkz = 5693,
-  VBROADCASTI64X2Zrm = 5694,
-  VBROADCASTI64X2Zrmk = 5695,
-  VBROADCASTI64X2Zrmkz = 5696,
-  VBROADCASTI64X4Zrm = 5697,
-  VBROADCASTI64X4Zrmk = 5698,
-  VBROADCASTI64X4Zrmkz = 5699,
-  VBROADCASTSDYrm = 5700,
-  VBROADCASTSDYrr = 5701,
-  VBROADCASTSDZ256rm = 5702,
-  VBROADCASTSDZ256rmk = 5703,
-  VBROADCASTSDZ256rmkz = 5704,
-  VBROADCASTSDZ256rr = 5705,
-  VBROADCASTSDZ256rrk = 5706,
-  VBROADCASTSDZ256rrkz = 5707,
-  VBROADCASTSDZrm = 5708,
-  VBROADCASTSDZrmk = 5709,
-  VBROADCASTSDZrmkz = 5710,
-  VBROADCASTSDZrr = 5711,
-  VBROADCASTSDZrrk = 5712,
-  VBROADCASTSDZrrkz = 5713,
-  VBROADCASTSSYrm = 5714,
-  VBROADCASTSSYrr = 5715,
-  VBROADCASTSSZ128rm = 5716,
-  VBROADCASTSSZ128rmk = 5717,
-  VBROADCASTSSZ128rmkz = 5718,
-  VBROADCASTSSZ128rr = 5719,
-  VBROADCASTSSZ128rrk = 5720,
-  VBROADCASTSSZ128rrkz = 5721,
-  VBROADCASTSSZ256rm = 5722,
-  VBROADCASTSSZ256rmk = 5723,
-  VBROADCASTSSZ256rmkz = 5724,
-  VBROADCASTSSZ256rr = 5725,
-  VBROADCASTSSZ256rrk = 5726,
-  VBROADCASTSSZ256rrkz = 5727,
-  VBROADCASTSSZrm = 5728,
-  VBROADCASTSSZrmk = 5729,
-  VBROADCASTSSZrmkz = 5730,
-  VBROADCASTSSZrr = 5731,
-  VBROADCASTSSZrrk = 5732,
-  VBROADCASTSSZrrkz = 5733,
-  VBROADCASTSSrm = 5734,
-  VBROADCASTSSrr = 5735,
-  VCMPBF16Z128rmbi = 5736,
-  VCMPBF16Z128rmbik = 5737,
-  VCMPBF16Z128rmi = 5738,
-  VCMPBF16Z128rmik = 5739,
-  VCMPBF16Z128rri = 5740,
-  VCMPBF16Z128rrik = 5741,
-  VCMPBF16Z256rmbi = 5742,
-  VCMPBF16Z256rmbik = 5743,
-  VCMPBF16Z256rmi = 5744,
-  VCMPBF16Z256rmik = 5745,
-  VCMPBF16Z256rri = 5746,
-  VCMPBF16Z256rrik = 5747,
-  VCMPBF16Zrmbi = 5748,
-  VCMPBF16Zrmbik = 5749,
-  VCMPBF16Zrmi = 5750,
-  VCMPBF16Zrmik = 5751,
-  VCMPBF16Zrri = 5752,
-  VCMPBF16Zrrik = 5753,
-  VCMPPDYrmi = 5754,
-  VCMPPDYrri = 5755,
-  VCMPPDZ128rmbi = 5756,
-  VCMPPDZ128rmbik = 5757,
-  VCMPPDZ128rmi = 5758,
-  VCMPPDZ128rmik = 5759,
-  VCMPPDZ128rri = 5760,
-  VCMPPDZ128rrik = 5761,
-  VCMPPDZ256rmbi = 5762,
-  VCMPPDZ256rmbik = 5763,
-  VCMPPDZ256rmi = 5764,
-  VCMPPDZ256rmik = 5765,
-  VCMPPDZ256rri = 5766,
-  VCMPPDZ256rrik = 5767,
-  VCMPPDZrmbi = 5768,
-  VCMPPDZrmbik = 5769,
-  VCMPPDZrmi = 5770,
-  VCMPPDZrmik = 5771,
-  VCMPPDZrri = 5772,
-  VCMPPDZrrib = 5773,
-  VCMPPDZrribk = 5774,
-  VCMPPDZrrik = 5775,
-  VCMPPDrmi = 5776,
-  VCMPPDrri = 5777,
-  VCMPPHZ128rmbi = 5778,
-  VCMPPHZ128rmbik = 5779,
-  VCMPPHZ128rmi = 5780,
-  VCMPPHZ128rmik = 5781,
-  VCMPPHZ128rri = 5782,
-  VCMPPHZ128rrik = 5783,
-  VCMPPHZ256rmbi = 5784,
-  VCMPPHZ256rmbik = 5785,
-  VCMPPHZ256rmi = 5786,
-  VCMPPHZ256rmik = 5787,
-  VCMPPHZ256rri = 5788,
-  VCMPPHZ256rrik = 5789,
-  VCMPPHZrmbi = 5790,
-  VCMPPHZrmbik = 5791,
-  VCMPPHZrmi = 5792,
-  VCMPPHZrmik = 5793,
-  VCMPPHZrri = 5794,
-  VCMPPHZrrib = 5795,
-  VCMPPHZrribk = 5796,
-  VCMPPHZrrik = 5797,
-  VCMPPSYrmi = 5798,
-  VCMPPSYrri = 5799,
-  VCMPPSZ128rmbi = 5800,
-  VCMPPSZ128rmbik = 5801,
-  VCMPPSZ128rmi = 5802,
-  VCMPPSZ128rmik = 5803,
-  VCMPPSZ128rri = 5804,
-  VCMPPSZ128rrik = 5805,
-  VCMPPSZ256rmbi = 5806,
-  VCMPPSZ256rmbik = 5807,
-  VCMPPSZ256rmi = 5808,
-  VCMPPSZ256rmik = 5809,
-  VCMPPSZ256rri = 5810,
-  VCMPPSZ256rrik = 5811,
-  VCMPPSZrmbi = 5812,
-  VCMPPSZrmbik = 5813,
-  VCMPPSZrmi = 5814,
-  VCMPPSZrmik = 5815,
-  VCMPPSZrri = 5816,
-  VCMPPSZrrib = 5817,
-  VCMPPSZrribk = 5818,
-  VCMPPSZrrik = 5819,
-  VCMPPSrmi = 5820,
-  VCMPPSrri = 5821,
-  VCMPSDZrmi = 5822,
-  VCMPSDZrmi_Int = 5823,
-  VCMPSDZrmik_Int = 5824,
-  VCMPSDZrri = 5825,
-  VCMPSDZrri_Int = 5826,
-  VCMPSDZrrib_Int = 5827,
-  VCMPSDZrribk_Int = 5828,
-  VCMPSDZrrik_Int = 5829,
-  VCMPSDrmi = 5830,
-  VCMPSDrmi_Int = 5831,
-  VCMPSDrri = 5832,
-  VCMPSDrri_Int = 5833,
-  VCMPSHZrmi = 5834,
-  VCMPSHZrmi_Int = 5835,
-  VCMPSHZrmik_Int = 5836,
-  VCMPSHZrri = 5837,
-  VCMPSHZrri_Int = 5838,
-  VCMPSHZrrib_Int = 5839,
-  VCMPSHZrribk_Int = 5840,
-  VCMPSHZrrik_Int = 5841,
-  VCMPSSZrmi = 5842,
-  VCMPSSZrmi_Int = 5843,
-  VCMPSSZrmik_Int = 5844,
-  VCMPSSZrri = 5845,
-  VCMPSSZrri_Int = 5846,
-  VCMPSSZrrib_Int = 5847,
-  VCMPSSZrribk_Int = 5848,
-  VCMPSSZrrik_Int = 5849,
-  VCMPSSrmi = 5850,
-  VCMPSSrmi_Int = 5851,
-  VCMPSSrri = 5852,
-  VCMPSSrri_Int = 5853,
-  VCOMISBF16Zrm = 5854,
-  VCOMISBF16Zrm_Int = 5855,
-  VCOMISBF16Zrr = 5856,
-  VCOMISBF16Zrr_Int = 5857,
-  VCOMISDZrm = 5858,
-  VCOMISDZrm_Int = 5859,
-  VCOMISDZrr = 5860,
-  VCOMISDZrr_Int = 5861,
-  VCOMISDZrrb = 5862,
-  VCOMISDrm = 5863,
-  VCOMISDrm_Int = 5864,
-  VCOMISDrr = 5865,
-  VCOMISDrr_Int = 5866,
-  VCOMISHZrm = 5867,
-  VCOMISHZrm_Int = 5868,
-  VCOMISHZrr = 5869,
-  VCOMISHZrr_Int = 5870,
-  VCOMISHZrrb = 5871,
-  VCOMISSZrm = 5872,
-  VCOMISSZrm_Int = 5873,
-  VCOMISSZrr = 5874,
-  VCOMISSZrr_Int = 5875,
-  VCOMISSZrrb = 5876,
-  VCOMISSrm = 5877,
-  VCOMISSrm_Int = 5878,
-  VCOMISSrr = 5879,
-  VCOMISSrr_Int = 5880,
-  VCOMPRESSPDZ128mr = 5881,
-  VCOMPRESSPDZ128mrk = 5882,
-  VCOMPRESSPDZ128rr = 5883,
-  VCOMPRESSPDZ128rrk = 5884,
-  VCOMPRESSPDZ128rrkz = 5885,
-  VCOMPRESSPDZ256mr = 5886,
-  VCOMPRESSPDZ256mrk = 5887,
-  VCOMPRESSPDZ256rr = 5888,
-  VCOMPRESSPDZ256rrk = 5889,
-  VCOMPRESSPDZ256rrkz = 5890,
-  VCOMPRESSPDZmr = 5891,
-  VCOMPRESSPDZmrk = 5892,
-  VCOMPRESSPDZrr = 5893,
-  VCOMPRESSPDZrrk = 5894,
-  VCOMPRESSPDZrrkz = 5895,
-  VCOMPRESSPSZ128mr = 5896,
-  VCOMPRESSPSZ128mrk = 5897,
-  VCOMPRESSPSZ128rr = 5898,
-  VCOMPRESSPSZ128rrk = 5899,
-  VCOMPRESSPSZ128rrkz = 5900,
-  VCOMPRESSPSZ256mr = 5901,
-  VCOMPRESSPSZ256mrk = 5902,
-  VCOMPRESSPSZ256rr = 5903,
-  VCOMPRESSPSZ256rrk = 5904,
-  VCOMPRESSPSZ256rrkz = 5905,
-  VCOMPRESSPSZmr = 5906,
-  VCOMPRESSPSZmrk = 5907,
-  VCOMPRESSPSZrr = 5908,
-  VCOMPRESSPSZrrk = 5909,
-  VCOMPRESSPSZrrkz = 5910,
-  VCOMXSDZrm_Int = 5911,
-  VCOMXSDZrr_Int = 5912,
-  VCOMXSDZrrb_Int = 5913,
-  VCOMXSHZrm_Int = 5914,
-  VCOMXSHZrr_Int = 5915,
-  VCOMXSHZrrb_Int = 5916,
-  VCOMXSSZrm_Int = 5917,
-  VCOMXSSZrr_Int = 5918,
-  VCOMXSSZrrb_Int = 5919,
-  VCVT2PH2BF8SZ128rm = 5920,
-  VCVT2PH2BF8SZ128rmb = 5921,
-  VCVT2PH2BF8SZ128rmbk = 5922,
-  VCVT2PH2BF8SZ128rmbkz = 5923,
-  VCVT2PH2BF8SZ128rmk = 5924,
-  VCVT2PH2BF8SZ128rmkz = 5925,
-  VCVT2PH2BF8SZ128rr = 5926,
-  VCVT2PH2BF8SZ128rrk = 5927,
-  VCVT2PH2BF8SZ128rrkz = 5928,
-  VCVT2PH2BF8SZ256rm = 5929,
-  VCVT2PH2BF8SZ256rmb = 5930,
-  VCVT2PH2BF8SZ256rmbk = 5931,
-  VCVT2PH2BF8SZ256rmbkz = 5932,
-  VCVT2PH2BF8SZ256rmk = 5933,
-  VCVT2PH2BF8SZ256rmkz = 5934,
-  VCVT2PH2BF8SZ256rr = 5935,
-  VCVT2PH2BF8SZ256rrk = 5936,
-  VCVT2PH2BF8SZ256rrkz = 5937,
-  VCVT2PH2BF8SZrm = 5938,
-  VCVT2PH2BF8SZrmb = 5939,
-  VCVT2PH2BF8SZrmbk = 5940,
-  VCVT2PH2BF8SZrmbkz = 5941,
-  VCVT2PH2BF8SZrmk = 5942,
-  VCVT2PH2BF8SZrmkz = 5943,
-  VCVT2PH2BF8SZrr = 5944,
-  VCVT2PH2BF8SZrrk = 5945,
-  VCVT2PH2BF8SZrrkz = 5946,
-  VCVT2PH2BF8Z128rm = 5947,
-  VCVT2PH2BF8Z128rmb = 5948,
-  VCVT2PH2BF8Z128rmbk = 5949,
-  VCVT2PH2BF8Z128rmbkz = 5950,
-  VCVT2PH2BF8Z128rmk = 5951,
-  VCVT2PH2BF8Z128rmkz = 5952,
-  VCVT2PH2BF8Z128rr = 5953,
-  VCVT2PH2BF8Z128rrk = 5954,
-  VCVT2PH2BF8Z128rrkz = 5955,
-  VCVT2PH2BF8Z256rm = 5956,
-  VCVT2PH2BF8Z256rmb = 5957,
-  VCVT2PH2BF8Z256rmbk = 5958,
-  VCVT2PH2BF8Z256rmbkz = 5959,
-  VCVT2PH2BF8Z256rmk = 5960,
-  VCVT2PH2BF8Z256rmkz = 5961,
-  VCVT2PH2BF8Z256rr = 5962,
-  VCVT2PH2BF8Z256rrk = 5963,
-  VCVT2PH2BF8Z256rrkz = 5964,
-  VCVT2PH2BF8Zrm = 5965,
-  VCVT2PH2BF8Zrmb = 5966,
-  VCVT2PH2BF8Zrmbk = 5967,
-  VCVT2PH2BF8Zrmbkz = 5968,
-  VCVT2PH2BF8Zrmk = 5969,
-  VCVT2PH2BF8Zrmkz = 5970,
-  VCVT2PH2BF8Zrr = 5971,
-  VCVT2PH2BF8Zrrk = 5972,
-  VCVT2PH2BF8Zrrkz = 5973,
-  VCVT2PH2HF8SZ128rm = 5974,
-  VCVT2PH2HF8SZ128rmb = 5975,
-  VCVT2PH2HF8SZ128rmbk = 5976,
-  VCVT2PH2HF8SZ128rmbkz = 5977,
-  VCVT2PH2HF8SZ128rmk = 5978,
-  VCVT2PH2HF8SZ128rmkz = 5979,
-  VCVT2PH2HF8SZ128rr = 5980,
-  VCVT2PH2HF8SZ128rrk = 5981,
-  VCVT2PH2HF8SZ128rrkz = 5982,
-  VCVT2PH2HF8SZ256rm = 5983,
-  VCVT2PH2HF8SZ256rmb = 5984,
-  VCVT2PH2HF8SZ256rmbk = 5985,
-  VCVT2PH2HF8SZ256rmbkz = 5986,
-  VCVT2PH2HF8SZ256rmk = 5987,
-  VCVT2PH2HF8SZ256rmkz = 5988,
-  VCVT2PH2HF8SZ256rr = 5989,
-  VCVT2PH2HF8SZ256rrk = 5990,
-  VCVT2PH2HF8SZ256rrkz = 5991,
-  VCVT2PH2HF8SZrm = 5992,
-  VCVT2PH2HF8SZrmb = 5993,
-  VCVT2PH2HF8SZrmbk = 5994,
-  VCVT2PH2HF8SZrmbkz = 5995,
-  VCVT2PH2HF8SZrmk = 5996,
-  VCVT2PH2HF8SZrmkz = 5997,
-  VCVT2PH2HF8SZrr = 5998,
-  VCVT2PH2HF8SZrrk = 5999,
-  VCVT2PH2HF8SZrrkz = 6000,
-  VCVT2PH2HF8Z128rm = 6001,
-  VCVT2PH2HF8Z128rmb = 6002,
-  VCVT2PH2HF8Z128rmbk = 6003,
-  VCVT2PH2HF8Z128rmbkz = 6004,
-  VCVT2PH2HF8Z128rmk = 6005,
-  VCVT2PH2HF8Z128rmkz = 6006,
-  VCVT2PH2HF8Z128rr = 6007,
-  VCVT2PH2HF8Z128rrk = 6008,
-  VCVT2PH2HF8Z128rrkz = 6009,
-  VCVT2PH2HF8Z256rm = 6010,
-  VCVT2PH2HF8Z256rmb = 6011,
-  VCVT2PH2HF8Z256rmbk = 6012,
-  VCVT2PH2HF8Z256rmbkz = 6013,
-  VCVT2PH2HF8Z256rmk = 6014,
-  VCVT2PH2HF8Z256rmkz = 6015,
-  VCVT2PH2HF8Z256rr = 6016,
-  VCVT2PH2HF8Z256rrk = 6017,
-  VCVT2PH2HF8Z256rrkz = 6018,
-  VCVT2PH2HF8Zrm = 6019,
-  VCVT2PH2HF8Zrmb = 6020,
-  VCVT2PH2HF8Zrmbk = 6021,
-  VCVT2PH2HF8Zrmbkz = 6022,
-  VCVT2PH2HF8Zrmk = 6023,
-  VCVT2PH2HF8Zrmkz = 6024,
-  VCVT2PH2HF8Zrr = 6025,
-  VCVT2PH2HF8Zrrk = 6026,
-  VCVT2PH2HF8Zrrkz = 6027,
-  VCVT2PS2PHXZ128rm = 6028,
-  VCVT2PS2PHXZ128rmb = 6029,
-  VCVT2PS2PHXZ128rmbk = 6030,
-  VCVT2PS2PHXZ128rmbkz = 6031,
-  VCVT2PS2PHXZ128rmk = 6032,
-  VCVT2PS2PHXZ128rmkz = 6033,
-  VCVT2PS2PHXZ128rr = 6034,
-  VCVT2PS2PHXZ128rrk = 6035,
-  VCVT2PS2PHXZ128rrkz = 6036,
-  VCVT2PS2PHXZ256rm = 6037,
-  VCVT2PS2PHXZ256rmb = 6038,
-  VCVT2PS2PHXZ256rmbk = 6039,
-  VCVT2PS2PHXZ256rmbkz = 6040,
-  VCVT2PS2PHXZ256rmk = 6041,
-  VCVT2PS2PHXZ256rmkz = 6042,
-  VCVT2PS2PHXZ256rr = 6043,
-  VCVT2PS2PHXZ256rrk = 6044,
-  VCVT2PS2PHXZ256rrkz = 6045,
-  VCVT2PS2PHXZrm = 6046,
-  VCVT2PS2PHXZrmb = 6047,
-  VCVT2PS2PHXZrmbk = 6048,
-  VCVT2PS2PHXZrmbkz = 6049,
-  VCVT2PS2PHXZrmk = 6050,
-  VCVT2PS2PHXZrmkz = 6051,
-  VCVT2PS2PHXZrr = 6052,
-  VCVT2PS2PHXZrrb = 6053,
-  VCVT2PS2PHXZrrbk = 6054,
-  VCVT2PS2PHXZrrbkz = 6055,
-  VCVT2PS2PHXZrrk = 6056,
-  VCVT2PS2PHXZrrkz = 6057,
-  VCVTBF162IBSZ128rm = 6058,
-  VCVTBF162IBSZ128rmb = 6059,
-  VCVTBF162IBSZ128rmbk = 6060,
-  VCVTBF162IBSZ128rmbkz = 6061,
-  VCVTBF162IBSZ128rmk = 6062,
-  VCVTBF162IBSZ128rmkz = 6063,
-  VCVTBF162IBSZ128rr = 6064,
-  VCVTBF162IBSZ128rrk = 6065,
-  VCVTBF162IBSZ128rrkz = 6066,
-  VCVTBF162IBSZ256rm = 6067,
-  VCVTBF162IBSZ256rmb = 6068,
-  VCVTBF162IBSZ256rmbk = 6069,
-  VCVTBF162IBSZ256rmbkz = 6070,
-  VCVTBF162IBSZ256rmk = 6071,
-  VCVTBF162IBSZ256rmkz = 6072,
-  VCVTBF162IBSZ256rr = 6073,
-  VCVTBF162IBSZ256rrk = 6074,
-  VCVTBF162IBSZ256rrkz = 6075,
-  VCVTBF162IBSZrm = 6076,
-  VCVTBF162IBSZrmb = 6077,
-  VCVTBF162IBSZrmbk = 6078,
-  VCVTBF162IBSZrmbkz = 6079,
-  VCVTBF162IBSZrmk = 6080,
-  VCVTBF162IBSZrmkz = 6081,
-  VCVTBF162IBSZrr = 6082,
-  VCVTBF162IBSZrrk = 6083,
-  VCVTBF162IBSZrrkz = 6084,
-  VCVTBF162IUBSZ128rm = 6085,
-  VCVTBF162IUBSZ128rmb = 6086,
-  VCVTBF162IUBSZ128rmbk = 6087,
-  VCVTBF162IUBSZ128rmbkz = 6088,
-  VCVTBF162IUBSZ128rmk = 6089,
-  VCVTBF162IUBSZ128rmkz = 6090,
-  VCVTBF162IUBSZ128rr = 6091,
-  VCVTBF162IUBSZ128rrk = 6092,
-  VCVTBF162IUBSZ128rrkz = 6093,
-  VCVTBF162IUBSZ256rm = 6094,
-  VCVTBF162IUBSZ256rmb = 6095,
-  VCVTBF162IUBSZ256rmbk = 6096,
-  VCVTBF162IUBSZ256rmbkz = 6097,
-  VCVTBF162IUBSZ256rmk = 6098,
-  VCVTBF162IUBSZ256rmkz = 6099,
-  VCVTBF162IUBSZ256rr = 6100,
-  VCVTBF162IUBSZ256rrk = 6101,
-  VCVTBF162IUBSZ256rrkz = 6102,
-  VCVTBF162IUBSZrm = 6103,
-  VCVTBF162IUBSZrmb = 6104,
-  VCVTBF162IUBSZrmbk = 6105,
-  VCVTBF162IUBSZrmbkz = 6106,
-  VCVTBF162IUBSZrmk = 6107,
-  VCVTBF162IUBSZrmkz = 6108,
-  VCVTBF162IUBSZrr = 6109,
-  VCVTBF162IUBSZrrk = 6110,
-  VCVTBF162IUBSZrrkz = 6111,
-  VCVTBIASPH2BF8SZ128rm = 6112,
-  VCVTBIASPH2BF8SZ128rmb = 6113,
-  VCVTBIASPH2BF8SZ128rmbk = 6114,
-  VCVTBIASPH2BF8SZ128rmbkz = 6115,
-  VCVTBIASPH2BF8SZ128rmk = 6116,
-  VCVTBIASPH2BF8SZ128rmkz = 6117,
-  VCVTBIASPH2BF8SZ128rr = 6118,
-  VCVTBIASPH2BF8SZ128rrk = 6119,
-  VCVTBIASPH2BF8SZ128rrkz = 6120,
-  VCVTBIASPH2BF8SZ256rm = 6121,
-  VCVTBIASPH2BF8SZ256rmb = 6122,
-  VCVTBIASPH2BF8SZ256rmbk = 6123,
-  VCVTBIASPH2BF8SZ256rmbkz = 6124,
-  VCVTBIASPH2BF8SZ256rmk = 6125,
-  VCVTBIASPH2BF8SZ256rmkz = 6126,
-  VCVTBIASPH2BF8SZ256rr = 6127,
-  VCVTBIASPH2BF8SZ256rrk = 6128,
-  VCVTBIASPH2BF8SZ256rrkz = 6129,
-  VCVTBIASPH2BF8SZrm = 6130,
-  VCVTBIASPH2BF8SZrmb = 6131,
-  VCVTBIASPH2BF8SZrmbk = 6132,
-  VCVTBIASPH2BF8SZrmbkz = 6133,
-  VCVTBIASPH2BF8SZrmk = 6134,
-  VCVTBIASPH2BF8SZrmkz = 6135,
-  VCVTBIASPH2BF8SZrr = 6136,
-  VCVTBIASPH2BF8SZrrk = 6137,
-  VCVTBIASPH2BF8SZrrkz = 6138,
-  VCVTBIASPH2BF8Z128rm = 6139,
-  VCVTBIASPH2BF8Z128rmb = 6140,
-  VCVTBIASPH2BF8Z128rmbk = 6141,
-  VCVTBIASPH2BF8Z128rmbkz = 6142,
-  VCVTBIASPH2BF8Z128rmk = 6143,
-  VCVTBIASPH2BF8Z128rmkz = 6144,
-  VCVTBIASPH2BF8Z128rr = 6145,
-  VCVTBIASPH2BF8Z128rrk = 6146,
-  VCVTBIASPH2BF8Z128rrkz = 6147,
-  VCVTBIASPH2BF8Z256rm = 6148,
-  VCVTBIASPH2BF8Z256rmb = 6149,
-  VCVTBIASPH2BF8Z256rmbk = 6150,
-  VCVTBIASPH2BF8Z256rmbkz = 6151,
-  VCVTBIASPH2BF8Z256rmk = 6152,
-  VCVTBIASPH2BF8Z256rmkz = 6153,
-  VCVTBIASPH2BF8Z256rr = 6154,
-  VCVTBIASPH2BF8Z256rrk = 6155,
-  VCVTBIASPH2BF8Z256rrkz = 6156,
-  VCVTBIASPH2BF8Zrm = 6157,
-  VCVTBIASPH2BF8Zrmb = 6158,
-  VCVTBIASPH2BF8Zrmbk = 6159,
-  VCVTBIASPH2BF8Zrmbkz = 6160,
-  VCVTBIASPH2BF8Zrmk = 6161,
-  VCVTBIASPH2BF8Zrmkz = 6162,
-  VCVTBIASPH2BF8Zrr = 6163,
-  VCVTBIASPH2BF8Zrrk = 6164,
-  VCVTBIASPH2BF8Zrrkz = 6165,
-  VCVTBIASPH2HF8SZ128rm = 6166,
-  VCVTBIASPH2HF8SZ128rmb = 6167,
-  VCVTBIASPH2HF8SZ128rmbk = 6168,
-  VCVTBIASPH2HF8SZ128rmbkz = 6169,
-  VCVTBIASPH2HF8SZ128rmk = 6170,
-  VCVTBIASPH2HF8SZ128rmkz = 6171,
-  VCVTBIASPH2HF8SZ128rr = 6172,
-  VCVTBIASPH2HF8SZ128rrk = 6173,
-  VCVTBIASPH2HF8SZ128rrkz = 6174,
-  VCVTBIASPH2HF8SZ256rm = 6175,
-  VCVTBIASPH2HF8SZ256rmb = 6176,
-  VCVTBIASPH2HF8SZ256rmbk = 6177,
-  VCVTBIASPH2HF8SZ256rmbkz = 6178,
-  VCVTBIASPH2HF8SZ256rmk = 6179,
-  VCVTBIASPH2HF8SZ256rmkz = 6180,
-  VCVTBIASPH2HF8SZ256rr = 6181,
-  VCVTBIASPH2HF8SZ256rrk = 6182,
-  VCVTBIASPH2HF8SZ256rrkz = 6183,
-  VCVTBIASPH2HF8SZrm = 6184,
-  VCVTBIASPH2HF8SZrmb = 6185,
-  VCVTBIASPH2HF8SZrmbk = 6186,
-  VCVTBIASPH2HF8SZrmbkz = 6187,
-  VCVTBIASPH2HF8SZrmk = 6188,
-  VCVTBIASPH2HF8SZrmkz = 6189,
-  VCVTBIASPH2HF8SZrr = 6190,
-  VCVTBIASPH2HF8SZrrk = 6191,
-  VCVTBIASPH2HF8SZrrkz = 6192,
-  VCVTBIASPH2HF8Z128rm = 6193,
-  VCVTBIASPH2HF8Z128rmb = 6194,
-  VCVTBIASPH2HF8Z128rmbk = 6195,
-  VCVTBIASPH2HF8Z128rmbkz = 6196,
-  VCVTBIASPH2HF8Z128rmk = 6197,
-  VCVTBIASPH2HF8Z128rmkz = 6198,
-  VCVTBIASPH2HF8Z128rr = 6199,
-  VCVTBIASPH2HF8Z128rrk = 6200,
-  VCVTBIASPH2HF8Z128rrkz = 6201,
-  VCVTBIASPH2HF8Z256rm = 6202,
-  VCVTBIASPH2HF8Z256rmb = 6203,
-  VCVTBIASPH2HF8Z256rmbk = 6204,
-  VCVTBIASPH2HF8Z256rmbkz = 6205,
-  VCVTBIASPH2HF8Z256rmk = 6206,
-  VCVTBIASPH2HF8Z256rmkz = 6207,
-  VCVTBIASPH2HF8Z256rr = 6208,
-  VCVTBIASPH2HF8Z256rrk = 6209,
-  VCVTBIASPH2HF8Z256rrkz = 6210,
-  VCVTBIASPH2HF8Zrm = 6211,
-  VCVTBIASPH2HF8Zrmb = 6212,
-  VCVTBIASPH2HF8Zrmbk = 6213,
-  VCVTBIASPH2HF8Zrmbkz = 6214,
-  VCVTBIASPH2HF8Zrmk = 6215,
-  VCVTBIASPH2HF8Zrmkz = 6216,
-  VCVTBIASPH2HF8Zrr = 6217,
-  VCVTBIASPH2HF8Zrrk = 6218,
-  VCVTBIASPH2HF8Zrrkz = 6219,
-  VCVTDQ2PDYrm = 6220,
-  VCVTDQ2PDYrr = 6221,
-  VCVTDQ2PDZ128rm = 6222,
-  VCVTDQ2PDZ128rmb = 6223,
-  VCVTDQ2PDZ128rmbk = 6224,
-  VCVTDQ2PDZ128rmbkz = 6225,
-  VCVTDQ2PDZ128rmk = 6226,
-  VCVTDQ2PDZ128rmkz = 6227,
-  VCVTDQ2PDZ128rr = 6228,
-  VCVTDQ2PDZ128rrk = 6229,
-  VCVTDQ2PDZ128rrkz = 6230,
-  VCVTDQ2PDZ256rm = 6231,
-  VCVTDQ2PDZ256rmb = 6232,
-  VCVTDQ2PDZ256rmbk = 6233,
-  VCVTDQ2PDZ256rmbkz = 6234,
-  VCVTDQ2PDZ256rmk = 6235,
-  VCVTDQ2PDZ256rmkz = 6236,
-  VCVTDQ2PDZ256rr = 6237,
-  VCVTDQ2PDZ256rrk = 6238,
-  VCVTDQ2PDZ256rrkz = 6239,
-  VCVTDQ2PDZrm = 6240,
-  VCVTDQ2PDZrmb = 6241,
-  VCVTDQ2PDZrmbk = 6242,
-  VCVTDQ2PDZrmbkz = 6243,
-  VCVTDQ2PDZrmk = 6244,
-  VCVTDQ2PDZrmkz = 6245,
-  VCVTDQ2PDZrr = 6246,
-  VCVTDQ2PDZrrk = 6247,
-  VCVTDQ2PDZrrkz = 6248,
-  VCVTDQ2PDrm = 6249,
-  VCVTDQ2PDrr = 6250,
-  VCVTDQ2PHZ128rm = 6251,
-  VCVTDQ2PHZ128rmb = 6252,
-  VCVTDQ2PHZ128rmbk = 6253,
-  VCVTDQ2PHZ128rmbkz = 6254,
-  VCVTDQ2PHZ128rmk = 6255,
-  VCVTDQ2PHZ128rmkz = 6256,
-  VCVTDQ2PHZ128rr = 6257,
-  VCVTDQ2PHZ128rrk = 6258,
-  VCVTDQ2PHZ128rrkz = 6259,
-  VCVTDQ2PHZ256rm = 6260,
-  VCVTDQ2PHZ256rmb = 6261,
-  VCVTDQ2PHZ256rmbk = 6262,
-  VCVTDQ2PHZ256rmbkz = 6263,
-  VCVTDQ2PHZ256rmk = 6264,
-  VCVTDQ2PHZ256rmkz = 6265,
-  VCVTDQ2PHZ256rr = 6266,
-  VCVTDQ2PHZ256rrk = 6267,
-  VCVTDQ2PHZ256rrkz = 6268,
-  VCVTDQ2PHZrm = 6269,
-  VCVTDQ2PHZrmb = 6270,
-  VCVTDQ2PHZrmbk = 6271,
-  VCVTDQ2PHZrmbkz = 6272,
-  VCVTDQ2PHZrmk = 6273,
-  VCVTDQ2PHZrmkz = 6274,
-  VCVTDQ2PHZrr = 6275,
-  VCVTDQ2PHZrrb = 6276,
-  VCVTDQ2PHZrrbk = 6277,
-  VCVTDQ2PHZrrbkz = 6278,
-  VCVTDQ2PHZrrk = 6279,
-  VCVTDQ2PHZrrkz = 6280,
-  VCVTDQ2PSYrm = 6281,
-  VCVTDQ2PSYrr = 6282,
-  VCVTDQ2PSZ128rm = 6283,
-  VCVTDQ2PSZ128rmb = 6284,
-  VCVTDQ2PSZ128rmbk = 6285,
-  VCVTDQ2PSZ128rmbkz = 6286,
-  VCVTDQ2PSZ128rmk = 6287,
-  VCVTDQ2PSZ128rmkz = 6288,
-  VCVTDQ2PSZ128rr = 6289,
-  VCVTDQ2PSZ128rrk = 6290,
-  VCVTDQ2PSZ128rrkz = 6291,
-  VCVTDQ2PSZ256rm = 6292,
-  VCVTDQ2PSZ256rmb = 6293,
-  VCVTDQ2PSZ256rmbk = 6294,
-  VCVTDQ2PSZ256rmbkz = 6295,
-  VCVTDQ2PSZ256rmk = 6296,
-  VCVTDQ2PSZ256rmkz = 6297,
-  VCVTDQ2PSZ256rr = 6298,
-  VCVTDQ2PSZ256rrk = 6299,
-  VCVTDQ2PSZ256rrkz = 6300,
-  VCVTDQ2PSZrm = 6301,
-  VCVTDQ2PSZrmb = 6302,
-  VCVTDQ2PSZrmbk = 6303,
-  VCVTDQ2PSZrmbkz = 6304,
-  VCVTDQ2PSZrmk = 6305,
-  VCVTDQ2PSZrmkz = 6306,
-  VCVTDQ2PSZrr = 6307,
-  VCVTDQ2PSZrrb = 6308,
-  VCVTDQ2PSZrrbk = 6309,
-  VCVTDQ2PSZrrbkz = 6310,
-  VCVTDQ2PSZrrk = 6311,
-  VCVTDQ2PSZrrkz = 6312,
-  VCVTDQ2PSrm = 6313,
-  VCVTDQ2PSrr = 6314,
-  VCVTHF82PHZ128rm = 6315,
-  VCVTHF82PHZ128rmk = 6316,
-  VCVTHF82PHZ128rmkz = 6317,
-  VCVTHF82PHZ128rr = 6318,
-  VCVTHF82PHZ128rrk = 6319,
-  VCVTHF82PHZ128rrkz = 6320,
-  VCVTHF82PHZ256rm = 6321,
-  VCVTHF82PHZ256rmk = 6322,
-  VCVTHF82PHZ256rmkz = 6323,
-  VCVTHF82PHZ256rr = 6324,
-  VCVTHF82PHZ256rrk = 6325,
-  VCVTHF82PHZ256rrkz = 6326,
-  VCVTHF82PHZrm = 6327,
-  VCVTHF82PHZrmk = 6328,
-  VCVTHF82PHZrmkz = 6329,
-  VCVTHF82PHZrr = 6330,
-  VCVTHF82PHZrrk = 6331,
-  VCVTHF82PHZrrkz = 6332,
-  VCVTNE2PS2BF16Z128rm = 6333,
-  VCVTNE2PS2BF16Z128rmb = 6334,
-  VCVTNE2PS2BF16Z128rmbk = 6335,
-  VCVTNE2PS2BF16Z128rmbkz = 6336,
-  VCVTNE2PS2BF16Z128rmk = 6337,
-  VCVTNE2PS2BF16Z128rmkz = 6338,
-  VCVTNE2PS2BF16Z128rr = 6339,
-  VCVTNE2PS2BF16Z128rrk = 6340,
-  VCVTNE2PS2BF16Z128rrkz = 6341,
-  VCVTNE2PS2BF16Z256rm = 6342,
-  VCVTNE2PS2BF16Z256rmb = 6343,
-  VCVTNE2PS2BF16Z256rmbk = 6344,
-  VCVTNE2PS2BF16Z256rmbkz = 6345,
-  VCVTNE2PS2BF16Z256rmk = 6346,
-  VCVTNE2PS2BF16Z256rmkz = 6347,
-  VCVTNE2PS2BF16Z256rr = 6348,
-  VCVTNE2PS2BF16Z256rrk = 6349,
-  VCVTNE2PS2BF16Z256rrkz = 6350,
-  VCVTNE2PS2BF16Zrm = 6351,
-  VCVTNE2PS2BF16Zrmb = 6352,
-  VCVTNE2PS2BF16Zrmbk = 6353,
-  VCVTNE2PS2BF16Zrmbkz = 6354,
-  VCVTNE2PS2BF16Zrmk = 6355,
-  VCVTNE2PS2BF16Zrmkz = 6356,
-  VCVTNE2PS2BF16Zrr = 6357,
-  VCVTNE2PS2BF16Zrrk = 6358,
-  VCVTNE2PS2BF16Zrrkz = 6359,
-  VCVTNEEBF162PSYrm = 6360,
-  VCVTNEEBF162PSrm = 6361,
-  VCVTNEEPH2PSYrm = 6362,
-  VCVTNEEPH2PSrm = 6363,
-  VCVTNEOBF162PSYrm = 6364,
-  VCVTNEOBF162PSrm = 6365,
-  VCVTNEOPH2PSYrm = 6366,
-  VCVTNEOPH2PSrm = 6367,
-  VCVTNEPS2BF16Yrm = 6368,
-  VCVTNEPS2BF16Yrr = 6369,
-  VCVTNEPS2BF16Z128rm = 6370,
-  VCVTNEPS2BF16Z128rmb = 6371,
-  VCVTNEPS2BF16Z128rmbk = 6372,
-  VCVTNEPS2BF16Z128rmbkz = 6373,
-  VCVTNEPS2BF16Z128rmk = 6374,
-  VCVTNEPS2BF16Z128rmkz = 6375,
-  VCVTNEPS2BF16Z128rr = 6376,
-  VCVTNEPS2BF16Z128rrk = 6377,
-  VCVTNEPS2BF16Z128rrkz = 6378,
-  VCVTNEPS2BF16Z256rm = 6379,
-  VCVTNEPS2BF16Z256rmb = 6380,
-  VCVTNEPS2BF16Z256rmbk = 6381,
-  VCVTNEPS2BF16Z256rmbkz = 6382,
-  VCVTNEPS2BF16Z256rmk = 6383,
-  VCVTNEPS2BF16Z256rmkz = 6384,
-  VCVTNEPS2BF16Z256rr = 6385,
-  VCVTNEPS2BF16Z256rrk = 6386,
-  VCVTNEPS2BF16Z256rrkz = 6387,
-  VCVTNEPS2BF16Zrm = 6388,
-  VCVTNEPS2BF16Zrmb = 6389,
-  VCVTNEPS2BF16Zrmbk = 6390,
-  VCVTNEPS2BF16Zrmbkz = 6391,
-  VCVTNEPS2BF16Zrmk = 6392,
-  VCVTNEPS2BF16Zrmkz = 6393,
-  VCVTNEPS2BF16Zrr = 6394,
-  VCVTNEPS2BF16Zrrk = 6395,
-  VCVTNEPS2BF16Zrrkz = 6396,
-  VCVTNEPS2BF16rm = 6397,
-  VCVTNEPS2BF16rr = 6398,
-  VCVTPD2DQYrm = 6399,
-  VCVTPD2DQYrr = 6400,
-  VCVTPD2DQZ128rm = 6401,
-  VCVTPD2DQZ128rmb = 6402,
-  VCVTPD2DQZ128rmbk = 6403,
-  VCVTPD2DQZ128rmbkz = 6404,
-  VCVTPD2DQZ128rmk = 6405,
-  VCVTPD2DQZ128rmkz = 6406,
-  VCVTPD2DQZ128rr = 6407,
-  VCVTPD2DQZ128rrk = 6408,
-  VCVTPD2DQZ128rrkz = 6409,
-  VCVTPD2DQZ256rm = 6410,
-  VCVTPD2DQZ256rmb = 6411,
-  VCVTPD2DQZ256rmbk = 6412,
-  VCVTPD2DQZ256rmbkz = 6413,
-  VCVTPD2DQZ256rmk = 6414,
-  VCVTPD2DQZ256rmkz = 6415,
-  VCVTPD2DQZ256rr = 6416,
-  VCVTPD2DQZ256rrk = 6417,
-  VCVTPD2DQZ256rrkz = 6418,
-  VCVTPD2DQZrm = 6419,
-  VCVTPD2DQZrmb = 6420,
-  VCVTPD2DQZrmbk = 6421,
-  VCVTPD2DQZrmbkz = 6422,
-  VCVTPD2DQZrmk = 6423,
-  VCVTPD2DQZrmkz = 6424,
-  VCVTPD2DQZrr = 6425,
-  VCVTPD2DQZrrb = 6426,
-  VCVTPD2DQZrrbk = 6427,
-  VCVTPD2DQZrrbkz = 6428,
-  VCVTPD2DQZrrk = 6429,
-  VCVTPD2DQZrrkz = 6430,
-  VCVTPD2DQrm = 6431,
-  VCVTPD2DQrr = 6432,
-  VCVTPD2PHZ128rm = 6433,
-  VCVTPD2PHZ128rmb = 6434,
-  VCVTPD2PHZ128rmbk = 6435,
-  VCVTPD2PHZ128rmbkz = 6436,
-  VCVTPD2PHZ128rmk = 6437,
-  VCVTPD2PHZ128rmkz = 6438,
-  VCVTPD2PHZ128rr = 6439,
-  VCVTPD2PHZ128rrk = 6440,
-  VCVTPD2PHZ128rrkz = 6441,
-  VCVTPD2PHZ256rm = 6442,
-  VCVTPD2PHZ256rmb = 6443,
-  VCVTPD2PHZ256rmbk = 6444,
-  VCVTPD2PHZ256rmbkz = 6445,
-  VCVTPD2PHZ256rmk = 6446,
-  VCVTPD2PHZ256rmkz = 6447,
-  VCVTPD2PHZ256rr = 6448,
-  VCVTPD2PHZ256rrk = 6449,
-  VCVTPD2PHZ256rrkz = 6450,
-  VCVTPD2PHZrm = 6451,
-  VCVTPD2PHZrmb = 6452,
-  VCVTPD2PHZrmbk = 6453,
-  VCVTPD2PHZrmbkz = 6454,
-  VCVTPD2PHZrmk = 6455,
-  VCVTPD2PHZrmkz = 6456,
-  VCVTPD2PHZrr = 6457,
-  VCVTPD2PHZrrb = 6458,
-  VCVTPD2PHZrrbk = 6459,
-  VCVTPD2PHZrrbkz = 6460,
-  VCVTPD2PHZrrk = 6461,
-  VCVTPD2PHZrrkz = 6462,
-  VCVTPD2PSYrm = 6463,
-  VCVTPD2PSYrr = 6464,
-  VCVTPD2PSZ128rm = 6465,
-  VCVTPD2PSZ128rmb = 6466,
-  VCVTPD2PSZ128rmbk = 6467,
-  VCVTPD2PSZ128rmbkz = 6468,
-  VCVTPD2PSZ128rmk = 6469,
-  VCVTPD2PSZ128rmkz = 6470,
-  VCVTPD2PSZ128rr = 6471,
-  VCVTPD2PSZ128rrk = 6472,
-  VCVTPD2PSZ128rrkz = 6473,
-  VCVTPD2PSZ256rm = 6474,
-  VCVTPD2PSZ256rmb = 6475,
-  VCVTPD2PSZ256rmbk = 6476,
-  VCVTPD2PSZ256rmbkz = 6477,
-  VCVTPD2PSZ256rmk = 6478,
-  VCVTPD2PSZ256rmkz = 6479,
-  VCVTPD2PSZ256rr = 6480,
-  VCVTPD2PSZ256rrk = 6481,
-  VCVTPD2PSZ256rrkz = 6482,
-  VCVTPD2PSZrm = 6483,
-  VCVTPD2PSZrmb = 6484,
-  VCVTPD2PSZrmbk = 6485,
-  VCVTPD2PSZrmbkz = 6486,
-  VCVTPD2PSZrmk = 6487,
-  VCVTPD2PSZrmkz = 6488,
-  VCVTPD2PSZrr = 6489,
-  VCVTPD2PSZrrb = 6490,
-  VCVTPD2PSZrrbk = 6491,
-  VCVTPD2PSZrrbkz = 6492,
-  VCVTPD2PSZrrk = 6493,
-  VCVTPD2PSZrrkz = 6494,
-  VCVTPD2PSrm = 6495,
-  VCVTPD2PSrr = 6496,
-  VCVTPD2QQZ128rm = 6497,
-  VCVTPD2QQZ128rmb = 6498,
-  VCVTPD2QQZ128rmbk = 6499,
-  VCVTPD2QQZ128rmbkz = 6500,
-  VCVTPD2QQZ128rmk = 6501,
-  VCVTPD2QQZ128rmkz = 6502,
-  VCVTPD2QQZ128rr = 6503,
-  VCVTPD2QQZ128rrk = 6504,
-  VCVTPD2QQZ128rrkz = 6505,
-  VCVTPD2QQZ256rm = 6506,
-  VCVTPD2QQZ256rmb = 6507,
-  VCVTPD2QQZ256rmbk = 6508,
-  VCVTPD2QQZ256rmbkz = 6509,
-  VCVTPD2QQZ256rmk = 6510,
-  VCVTPD2QQZ256rmkz = 6511,
-  VCVTPD2QQZ256rr = 6512,
-  VCVTPD2QQZ256rrk = 6513,
-  VCVTPD2QQZ256rrkz = 6514,
-  VCVTPD2QQZrm = 6515,
-  VCVTPD2QQZrmb = 6516,
-  VCVTPD2QQZrmbk = 6517,
-  VCVTPD2QQZrmbkz = 6518,
-  VCVTPD2QQZrmk = 6519,
-  VCVTPD2QQZrmkz = 6520,
-  VCVTPD2QQZrr = 6521,
-  VCVTPD2QQZrrb = 6522,
-  VCVTPD2QQZrrbk = 6523,
-  VCVTPD2QQZrrbkz = 6524,
-  VCVTPD2QQZrrk = 6525,
-  VCVTPD2QQZrrkz = 6526,
-  VCVTPD2UDQZ128rm = 6527,
-  VCVTPD2UDQZ128rmb = 6528,
-  VCVTPD2UDQZ128rmbk = 6529,
-  VCVTPD2UDQZ128rmbkz = 6530,
-  VCVTPD2UDQZ128rmk = 6531,
-  VCVTPD2UDQZ128rmkz = 6532,
-  VCVTPD2UDQZ128rr = 6533,
-  VCVTPD2UDQZ128rrk = 6534,
-  VCVTPD2UDQZ128rrkz = 6535,
-  VCVTPD2UDQZ256rm = 6536,
-  VCVTPD2UDQZ256rmb = 6537,
-  VCVTPD2UDQZ256rmbk = 6538,
-  VCVTPD2UDQZ256rmbkz = 6539,
-  VCVTPD2UDQZ256rmk = 6540,
-  VCVTPD2UDQZ256rmkz = 6541,
-  VCVTPD2UDQZ256rr = 6542,
-  VCVTPD2UDQZ256rrk = 6543,
-  VCVTPD2UDQZ256rrkz = 6544,
-  VCVTPD2UDQZrm = 6545,
-  VCVTPD2UDQZrmb = 6546,
-  VCVTPD2UDQZrmbk = 6547,
-  VCVTPD2UDQZrmbkz = 6548,
-  VCVTPD2UDQZrmk = 6549,
-  VCVTPD2UDQZrmkz = 6550,
-  VCVTPD2UDQZrr = 6551,
-  VCVTPD2UDQZrrb = 6552,
-  VCVTPD2UDQZrrbk = 6553,
-  VCVTPD2UDQZrrbkz = 6554,
-  VCVTPD2UDQZrrk = 6555,
-  VCVTPD2UDQZrrkz = 6556,
-  VCVTPD2UQQZ128rm = 6557,
-  VCVTPD2UQQZ128rmb = 6558,
-  VCVTPD2UQQZ128rmbk = 6559,
-  VCVTPD2UQQZ128rmbkz = 6560,
-  VCVTPD2UQQZ128rmk = 6561,
-  VCVTPD2UQQZ128rmkz = 6562,
-  VCVTPD2UQQZ128rr = 6563,
-  VCVTPD2UQQZ128rrk = 6564,
-  VCVTPD2UQQZ128rrkz = 6565,
-  VCVTPD2UQQZ256rm = 6566,
-  VCVTPD2UQQZ256rmb = 6567,
-  VCVTPD2UQQZ256rmbk = 6568,
-  VCVTPD2UQQZ256rmbkz = 6569,
-  VCVTPD2UQQZ256rmk = 6570,
-  VCVTPD2UQQZ256rmkz = 6571,
-  VCVTPD2UQQZ256rr = 6572,
-  VCVTPD2UQQZ256rrk = 6573,
-  VCVTPD2UQQZ256rrkz = 6574,
-  VCVTPD2UQQZrm = 6575,
-  VCVTPD2UQQZrmb = 6576,
-  VCVTPD2UQQZrmbk = 6577,
-  VCVTPD2UQQZrmbkz = 6578,
-  VCVTPD2UQQZrmk = 6579,
-  VCVTPD2UQQZrmkz = 6580,
-  VCVTPD2UQQZrr = 6581,
-  VCVTPD2UQQZrrb = 6582,
-  VCVTPD2UQQZrrbk = 6583,
-  VCVTPD2UQQZrrbkz = 6584,
-  VCVTPD2UQQZrrk = 6585,
-  VCVTPD2UQQZrrkz = 6586,
-  VCVTPH2BF8SZ128rm = 6587,
-  VCVTPH2BF8SZ128rmb = 6588,
-  VCVTPH2BF8SZ128rmbk = 6589,
-  VCVTPH2BF8SZ128rmbkz = 6590,
-  VCVTPH2BF8SZ128rmk = 6591,
-  VCVTPH2BF8SZ128rmkz = 6592,
-  VCVTPH2BF8SZ128rr = 6593,
-  VCVTPH2BF8SZ128rrk = 6594,
-  VCVTPH2BF8SZ128rrkz = 6595,
-  VCVTPH2BF8SZ256rm = 6596,
-  VCVTPH2BF8SZ256rmb = 6597,
-  VCVTPH2BF8SZ256rmbk = 6598,
-  VCVTPH2BF8SZ256rmbkz = 6599,
-  VCVTPH2BF8SZ256rmk = 6600,
-  VCVTPH2BF8SZ256rmkz = 6601,
-  VCVTPH2BF8SZ256rr = 6602,
-  VCVTPH2BF8SZ256rrk = 6603,
-  VCVTPH2BF8SZ256rrkz = 6604,
-  VCVTPH2BF8SZrm = 6605,
-  VCVTPH2BF8SZrmb = 6606,
-  VCVTPH2BF8SZrmbk = 6607,
-  VCVTPH2BF8SZrmbkz = 6608,
-  VCVTPH2BF8SZrmk = 6609,
-  VCVTPH2BF8SZrmkz = 6610,
-  VCVTPH2BF8SZrr = 6611,
-  VCVTPH2BF8SZrrk = 6612,
-  VCVTPH2BF8SZrrkz = 6613,
-  VCVTPH2BF8Z128rm = 6614,
-  VCVTPH2BF8Z128rmb = 6615,
-  VCVTPH2BF8Z128rmbk = 6616,
-  VCVTPH2BF8Z128rmbkz = 6617,
-  VCVTPH2BF8Z128rmk = 6618,
-  VCVTPH2BF8Z128rmkz = 6619,
-  VCVTPH2BF8Z128rr = 6620,
-  VCVTPH2BF8Z128rrk = 6621,
-  VCVTPH2BF8Z128rrkz = 6622,
-  VCVTPH2BF8Z256rm = 6623,
-  VCVTPH2BF8Z256rmb = 6624,
-  VCVTPH2BF8Z256rmbk = 6625,
-  VCVTPH2BF8Z256rmbkz = 6626,
-  VCVTPH2BF8Z256rmk = 6627,
-  VCVTPH2BF8Z256rmkz = 6628,
-  VCVTPH2BF8Z256rr = 6629,
-  VCVTPH2BF8Z256rrk = 6630,
-  VCVTPH2BF8Z256rrkz = 6631,
-  VCVTPH2BF8Zrm = 6632,
-  VCVTPH2BF8Zrmb = 6633,
-  VCVTPH2BF8Zrmbk = 6634,
-  VCVTPH2BF8Zrmbkz = 6635,
-  VCVTPH2BF8Zrmk = 6636,
-  VCVTPH2BF8Zrmkz = 6637,
-  VCVTPH2BF8Zrr = 6638,
-  VCVTPH2BF8Zrrk = 6639,
-  VCVTPH2BF8Zrrkz = 6640,
-  VCVTPH2DQZ128rm = 6641,
-  VCVTPH2DQZ128rmb = 6642,
-  VCVTPH2DQZ128rmbk = 6643,
-  VCVTPH2DQZ128rmbkz = 6644,
-  VCVTPH2DQZ128rmk = 6645,
-  VCVTPH2DQZ128rmkz = 6646,
-  VCVTPH2DQZ128rr = 6647,
-  VCVTPH2DQZ128rrk = 6648,
-  VCVTPH2DQZ128rrkz = 6649,
-  VCVTPH2DQZ256rm = 6650,
-  VCVTPH2DQZ256rmb = 6651,
-  VCVTPH2DQZ256rmbk = 6652,
-  VCVTPH2DQZ256rmbkz = 6653,
-  VCVTPH2DQZ256rmk = 6654,
-  VCVTPH2DQZ256rmkz = 6655,
-  VCVTPH2DQZ256rr = 6656,
-  VCVTPH2DQZ256rrk = 6657,
-  VCVTPH2DQZ256rrkz = 6658,
-  VCVTPH2DQZrm = 6659,
-  VCVTPH2DQZrmb = 6660,
-  VCVTPH2DQZrmbk = 6661,
-  VCVTPH2DQZrmbkz = 6662,
-  VCVTPH2DQZrmk = 6663,
-  VCVTPH2DQZrmkz = 6664,
-  VCVTPH2DQZrr = 6665,
-  VCVTPH2DQZrrb = 6666,
-  VCVTPH2DQZrrbk = 6667,
-  VCVTPH2DQZrrbkz = 6668,
-  VCVTPH2DQZrrk = 6669,
-  VCVTPH2DQZrrkz = 6670,
-  VCVTPH2HF8SZ128rm = 6671,
-  VCVTPH2HF8SZ128rmb = 6672,
-  VCVTPH2HF8SZ128rmbk = 6673,
-  VCVTPH2HF8SZ128rmbkz = 6674,
-  VCVTPH2HF8SZ128rmk = 6675,
-  VCVTPH2HF8SZ128rmkz = 6676,
-  VCVTPH2HF8SZ128rr = 6677,
-  VCVTPH2HF8SZ128rrk = 6678,
-  VCVTPH2HF8SZ128rrkz = 6679,
-  VCVTPH2HF8SZ256rm = 6680,
-  VCVTPH2HF8SZ256rmb = 6681,
-  VCVTPH2HF8SZ256rmbk = 6682,
-  VCVTPH2HF8SZ256rmbkz = 6683,
-  VCVTPH2HF8SZ256rmk = 6684,
-  VCVTPH2HF8SZ256rmkz = 6685,
-  VCVTPH2HF8SZ256rr = 6686,
-  VCVTPH2HF8SZ256rrk = 6687,
-  VCVTPH2HF8SZ256rrkz = 6688,
-  VCVTPH2HF8SZrm = 6689,
-  VCVTPH2HF8SZrmb = 6690,
-  VCVTPH2HF8SZrmbk = 6691,
-  VCVTPH2HF8SZrmbkz = 6692,
-  VCVTPH2HF8SZrmk = 6693,
-  VCVTPH2HF8SZrmkz = 6694,
-  VCVTPH2HF8SZrr = 6695,
-  VCVTPH2HF8SZrrk = 6696,
-  VCVTPH2HF8SZrrkz = 6697,
-  VCVTPH2HF8Z128rm = 6698,
-  VCVTPH2HF8Z128rmb = 6699,
-  VCVTPH2HF8Z128rmbk = 6700,
-  VCVTPH2HF8Z128rmbkz = 6701,
-  VCVTPH2HF8Z128rmk = 6702,
-  VCVTPH2HF8Z128rmkz = 6703,
-  VCVTPH2HF8Z128rr = 6704,
-  VCVTPH2HF8Z128rrk = 6705,
-  VCVTPH2HF8Z128rrkz = 6706,
-  VCVTPH2HF8Z256rm = 6707,
-  VCVTPH2HF8Z256rmb = 6708,
-  VCVTPH2HF8Z256rmbk = 6709,
-  VCVTPH2HF8Z256rmbkz = 6710,
-  VCVTPH2HF8Z256rmk = 6711,
-  VCVTPH2HF8Z256rmkz = 6712,
-  VCVTPH2HF8Z256rr = 6713,
-  VCVTPH2HF8Z256rrk = 6714,
-  VCVTPH2HF8Z256rrkz = 6715,
-  VCVTPH2HF8Zrm = 6716,
-  VCVTPH2HF8Zrmb = 6717,
-  VCVTPH2HF8Zrmbk = 6718,
-  VCVTPH2HF8Zrmbkz = 6719,
-  VCVTPH2HF8Zrmk = 6720,
-  VCVTPH2HF8Zrmkz = 6721,
-  VCVTPH2HF8Zrr = 6722,
-  VCVTPH2HF8Zrrk = 6723,
-  VCVTPH2HF8Zrrkz = 6724,
-  VCVTPH2IBSZ128rm = 6725,
-  VCVTPH2IBSZ128rmb = 6726,
-  VCVTPH2IBSZ128rmbk = 6727,
-  VCVTPH2IBSZ128rmbkz = 6728,
-  VCVTPH2IBSZ128rmk = 6729,
-  VCVTPH2IBSZ128rmkz = 6730,
-  VCVTPH2IBSZ128rr = 6731,
-  VCVTPH2IBSZ128rrk = 6732,
-  VCVTPH2IBSZ128rrkz = 6733,
-  VCVTPH2IBSZ256rm = 6734,
-  VCVTPH2IBSZ256rmb = 6735,
-  VCVTPH2IBSZ256rmbk = 6736,
-  VCVTPH2IBSZ256rmbkz = 6737,
-  VCVTPH2IBSZ256rmk = 6738,
-  VCVTPH2IBSZ256rmkz = 6739,
-  VCVTPH2IBSZ256rr = 6740,
-  VCVTPH2IBSZ256rrk = 6741,
-  VCVTPH2IBSZ256rrkz = 6742,
-  VCVTPH2IBSZrm = 6743,
-  VCVTPH2IBSZrmb = 6744,
-  VCVTPH2IBSZrmbk = 6745,
-  VCVTPH2IBSZrmbkz = 6746,
-  VCVTPH2IBSZrmk = 6747,
-  VCVTPH2IBSZrmkz = 6748,
-  VCVTPH2IBSZrr = 6749,
-  VCVTPH2IBSZrrb = 6750,
-  VCVTPH2IBSZrrbk = 6751,
-  VCVTPH2IBSZrrbkz = 6752,
-  VCVTPH2IBSZrrk = 6753,
-  VCVTPH2IBSZrrkz = 6754,
-  VCVTPH2IUBSZ128rm = 6755,
-  VCVTPH2IUBSZ128rmb = 6756,
-  VCVTPH2IUBSZ128rmbk = 6757,
-  VCVTPH2IUBSZ128rmbkz = 6758,
-  VCVTPH2IUBSZ128rmk = 6759,
-  VCVTPH2IUBSZ128rmkz = 6760,
-  VCVTPH2IUBSZ128rr = 6761,
-  VCVTPH2IUBSZ128rrk = 6762,
-  VCVTPH2IUBSZ128rrkz = 6763,
-  VCVTPH2IUBSZ256rm = 6764,
-  VCVTPH2IUBSZ256rmb = 6765,
-  VCVTPH2IUBSZ256rmbk = 6766,
-  VCVTPH2IUBSZ256rmbkz = 6767,
-  VCVTPH2IUBSZ256rmk = 6768,
-  VCVTPH2IUBSZ256rmkz = 6769,
-  VCVTPH2IUBSZ256rr = 6770,
-  VCVTPH2IUBSZ256rrk = 6771,
-  VCVTPH2IUBSZ256rrkz = 6772,
-  VCVTPH2IUBSZrm = 6773,
-  VCVTPH2IUBSZrmb = 6774,
-  VCVTPH2IUBSZrmbk = 6775,
-  VCVTPH2IUBSZrmbkz = 6776,
-  VCVTPH2IUBSZrmk = 6777,
-  VCVTPH2IUBSZrmkz = 6778,
-  VCVTPH2IUBSZrr = 6779,
-  VCVTPH2IUBSZrrb = 6780,
-  VCVTPH2IUBSZrrbk = 6781,
-  VCVTPH2IUBSZrrbkz = 6782,
-  VCVTPH2IUBSZrrk = 6783,
-  VCVTPH2IUBSZrrkz = 6784,
-  VCVTPH2PDZ128rm = 6785,
-  VCVTPH2PDZ128rmb = 6786,
-  VCVTPH2PDZ128rmbk = 6787,
-  VCVTPH2PDZ128rmbkz = 6788,
-  VCVTPH2PDZ128rmk = 6789,
-  VCVTPH2PDZ128rmkz = 6790,
-  VCVTPH2PDZ128rr = 6791,
-  VCVTPH2PDZ128rrk = 6792,
-  VCVTPH2PDZ128rrkz = 6793,
-  VCVTPH2PDZ256rm = 6794,
-  VCVTPH2PDZ256rmb = 6795,
-  VCVTPH2PDZ256rmbk = 6796,
-  VCVTPH2PDZ256rmbkz = 6797,
-  VCVTPH2PDZ256rmk = 6798,
-  VCVTPH2PDZ256rmkz = 6799,
-  VCVTPH2PDZ256rr = 6800,
-  VCVTPH2PDZ256rrk = 6801,
-  VCVTPH2PDZ256rrkz = 6802,
-  VCVTPH2PDZrm = 6803,
-  VCVTPH2PDZrmb = 6804,
-  VCVTPH2PDZrmbk = 6805,
-  VCVTPH2PDZrmbkz = 6806,
-  VCVTPH2PDZrmk = 6807,
-  VCVTPH2PDZrmkz = 6808,
-  VCVTPH2PDZrr = 6809,
-  VCVTPH2PDZrrb = 6810,
-  VCVTPH2PDZrrbk = 6811,
-  VCVTPH2PDZrrbkz = 6812,
-  VCVTPH2PDZrrk = 6813,
-  VCVTPH2PDZrrkz = 6814,
-  VCVTPH2PSXZ128rm = 6815,
-  VCVTPH2PSXZ128rmb = 6816,
-  VCVTPH2PSXZ128rmbk = 6817,
-  VCVTPH2PSXZ128rmbkz = 6818,
-  VCVTPH2PSXZ128rmk = 6819,
-  VCVTPH2PSXZ128rmkz = 6820,
-  VCVTPH2PSXZ128rr = 6821,
-  VCVTPH2PSXZ128rrk = 6822,
-  VCVTPH2PSXZ128rrkz = 6823,
-  VCVTPH2PSXZ256rm = 6824,
-  VCVTPH2PSXZ256rmb = 6825,
-  VCVTPH2PSXZ256rmbk = 6826,
-  VCVTPH2PSXZ256rmbkz = 6827,
-  VCVTPH2PSXZ256rmk = 6828,
-  VCVTPH2PSXZ256rmkz = 6829,
-  VCVTPH2PSXZ256rr = 6830,
-  VCVTPH2PSXZ256rrk = 6831,
-  VCVTPH2PSXZ256rrkz = 6832,
-  VCVTPH2PSXZrm = 6833,
-  VCVTPH2PSXZrmb = 6834,
-  VCVTPH2PSXZrmbk = 6835,
-  VCVTPH2PSXZrmbkz = 6836,
-  VCVTPH2PSXZrmk = 6837,
-  VCVTPH2PSXZrmkz = 6838,
-  VCVTPH2PSXZrr = 6839,
-  VCVTPH2PSXZrrb = 6840,
-  VCVTPH2PSXZrrbk = 6841,
-  VCVTPH2PSXZrrbkz = 6842,
-  VCVTPH2PSXZrrk = 6843,
-  VCVTPH2PSXZrrkz = 6844,
-  VCVTPH2PSYrm = 6845,
-  VCVTPH2PSYrr = 6846,
-  VCVTPH2PSZ128rm = 6847,
-  VCVTPH2PSZ128rmk = 6848,
-  VCVTPH2PSZ128rmkz = 6849,
-  VCVTPH2PSZ128rr = 6850,
-  VCVTPH2PSZ128rrk = 6851,
-  VCVTPH2PSZ128rrkz = 6852,
-  VCVTPH2PSZ256rm = 6853,
-  VCVTPH2PSZ256rmk = 6854,
-  VCVTPH2PSZ256rmkz = 6855,
-  VCVTPH2PSZ256rr = 6856,
-  VCVTPH2PSZ256rrk = 6857,
-  VCVTPH2PSZ256rrkz = 6858,
-  VCVTPH2PSZrm = 6859,
-  VCVTPH2PSZrmk = 6860,
-  VCVTPH2PSZrmkz = 6861,
-  VCVTPH2PSZrr = 6862,
-  VCVTPH2PSZrrb = 6863,
-  VCVTPH2PSZrrbk = 6864,
-  VCVTPH2PSZrrbkz = 6865,
-  VCVTPH2PSZrrk = 6866,
-  VCVTPH2PSZrrkz = 6867,
-  VCVTPH2PSrm = 6868,
-  VCVTPH2PSrr = 6869,
-  VCVTPH2QQZ128rm = 6870,
-  VCVTPH2QQZ128rmb = 6871,
-  VCVTPH2QQZ128rmbk = 6872,
-  VCVTPH2QQZ128rmbkz = 6873,
-  VCVTPH2QQZ128rmk = 6874,
-  VCVTPH2QQZ128rmkz = 6875,
-  VCVTPH2QQZ128rr = 6876,
-  VCVTPH2QQZ128rrk = 6877,
-  VCVTPH2QQZ128rrkz = 6878,
-  VCVTPH2QQZ256rm = 6879,
-  VCVTPH2QQZ256rmb = 6880,
-  VCVTPH2QQZ256rmbk = 6881,
-  VCVTPH2QQZ256rmbkz = 6882,
-  VCVTPH2QQZ256rmk = 6883,
-  VCVTPH2QQZ256rmkz = 6884,
-  VCVTPH2QQZ256rr = 6885,
-  VCVTPH2QQZ256rrk = 6886,
-  VCVTPH2QQZ256rrkz = 6887,
-  VCVTPH2QQZrm = 6888,
-  VCVTPH2QQZrmb = 6889,
-  VCVTPH2QQZrmbk = 6890,
-  VCVTPH2QQZrmbkz = 6891,
-  VCVTPH2QQZrmk = 6892,
-  VCVTPH2QQZrmkz = 6893,
-  VCVTPH2QQZrr = 6894,
-  VCVTPH2QQZrrb = 6895,
-  VCVTPH2QQZrrbk = 6896,
-  VCVTPH2QQZrrbkz = 6897,
-  VCVTPH2QQZrrk = 6898,
-  VCVTPH2QQZrrkz = 6899,
-  VCVTPH2UDQZ128rm = 6900,
-  VCVTPH2UDQZ128rmb = 6901,
-  VCVTPH2UDQZ128rmbk = 6902,
-  VCVTPH2UDQZ128rmbkz = 6903,
-  VCVTPH2UDQZ128rmk = 6904,
-  VCVTPH2UDQZ128rmkz = 6905,
-  VCVTPH2UDQZ128rr = 6906,
-  VCVTPH2UDQZ128rrk = 6907,
-  VCVTPH2UDQZ128rrkz = 6908,
-  VCVTPH2UDQZ256rm = 6909,
-  VCVTPH2UDQZ256rmb = 6910,
-  VCVTPH2UDQZ256rmbk = 6911,
-  VCVTPH2UDQZ256rmbkz = 6912,
-  VCVTPH2UDQZ256rmk = 6913,
-  VCVTPH2UDQZ256rmkz = 6914,
-  VCVTPH2UDQZ256rr = 6915,
-  VCVTPH2UDQZ256rrk = 6916,
-  VCVTPH2UDQZ256rrkz = 6917,
-  VCVTPH2UDQZrm = 6918,
-  VCVTPH2UDQZrmb = 6919,
-  VCVTPH2UDQZrmbk = 6920,
-  VCVTPH2UDQZrmbkz = 6921,
-  VCVTPH2UDQZrmk = 6922,
-  VCVTPH2UDQZrmkz = 6923,
-  VCVTPH2UDQZrr = 6924,
-  VCVTPH2UDQZrrb = 6925,
-  VCVTPH2UDQZrrbk = 6926,
-  VCVTPH2UDQZrrbkz = 6927,
-  VCVTPH2UDQZrrk = 6928,
-  VCVTPH2UDQZrrkz = 6929,
-  VCVTPH2UQQZ128rm = 6930,
-  VCVTPH2UQQZ128rmb = 6931,
-  VCVTPH2UQQZ128rmbk = 6932,
-  VCVTPH2UQQZ128rmbkz = 6933,
-  VCVTPH2UQQZ128rmk = 6934,
-  VCVTPH2UQQZ128rmkz = 6935,
-  VCVTPH2UQQZ128rr = 6936,
-  VCVTPH2UQQZ128rrk = 6937,
-  VCVTPH2UQQZ128rrkz = 6938,
-  VCVTPH2UQQZ256rm = 6939,
-  VCVTPH2UQQZ256rmb = 6940,
-  VCVTPH2UQQZ256rmbk = 6941,
-  VCVTPH2UQQZ256rmbkz = 6942,
-  VCVTPH2UQQZ256rmk = 6943,
-  VCVTPH2UQQZ256rmkz = 6944,
-  VCVTPH2UQQZ256rr = 6945,
-  VCVTPH2UQQZ256rrk = 6946,
-  VCVTPH2UQQZ256rrkz = 6947,
-  VCVTPH2UQQZrm = 6948,
-  VCVTPH2UQQZrmb = 6949,
-  VCVTPH2UQQZrmbk = 6950,
-  VCVTPH2UQQZrmbkz = 6951,
-  VCVTPH2UQQZrmk = 6952,
-  VCVTPH2UQQZrmkz = 6953,
-  VCVTPH2UQQZrr = 6954,
-  VCVTPH2UQQZrrb = 6955,
-  VCVTPH2UQQZrrbk = 6956,
-  VCVTPH2UQQZrrbkz = 6957,
-  VCVTPH2UQQZrrk = 6958,
-  VCVTPH2UQQZrrkz = 6959,
-  VCVTPH2UWZ128rm = 6960,
-  VCVTPH2UWZ128rmb = 6961,
-  VCVTPH2UWZ128rmbk = 6962,
-  VCVTPH2UWZ128rmbkz = 6963,
-  VCVTPH2UWZ128rmk = 6964,
-  VCVTPH2UWZ128rmkz = 6965,
-  VCVTPH2UWZ128rr = 6966,
-  VCVTPH2UWZ128rrk = 6967,
-  VCVTPH2UWZ128rrkz = 6968,
-  VCVTPH2UWZ256rm = 6969,
-  VCVTPH2UWZ256rmb = 6970,
-  VCVTPH2UWZ256rmbk = 6971,
-  VCVTPH2UWZ256rmbkz = 6972,
-  VCVTPH2UWZ256rmk = 6973,
-  VCVTPH2UWZ256rmkz = 6974,
-  VCVTPH2UWZ256rr = 6975,
-  VCVTPH2UWZ256rrk = 6976,
-  VCVTPH2UWZ256rrkz = 6977,
-  VCVTPH2UWZrm = 6978,
-  VCVTPH2UWZrmb = 6979,
-  VCVTPH2UWZrmbk = 6980,
-  VCVTPH2UWZrmbkz = 6981,
-  VCVTPH2UWZrmk = 6982,
-  VCVTPH2UWZrmkz = 6983,
-  VCVTPH2UWZrr = 6984,
-  VCVTPH2UWZrrb = 6985,
-  VCVTPH2UWZrrbk = 6986,
-  VCVTPH2UWZrrbkz = 6987,
-  VCVTPH2UWZrrk = 6988,
-  VCVTPH2UWZrrkz = 6989,
-  VCVTPH2WZ128rm = 6990,
-  VCVTPH2WZ128rmb = 6991,
-  VCVTPH2WZ128rmbk = 6992,
-  VCVTPH2WZ128rmbkz = 6993,
-  VCVTPH2WZ128rmk = 6994,
-  VCVTPH2WZ128rmkz = 6995,
-  VCVTPH2WZ128rr = 6996,
-  VCVTPH2WZ128rrk = 6997,
-  VCVTPH2WZ128rrkz = 6998,
-  VCVTPH2WZ256rm = 6999,
-  VCVTPH2WZ256rmb = 7000,
-  VCVTPH2WZ256rmbk = 7001,
-  VCVTPH2WZ256rmbkz = 7002,
-  VCVTPH2WZ256rmk = 7003,
-  VCVTPH2WZ256rmkz = 7004,
-  VCVTPH2WZ256rr = 7005,
-  VCVTPH2WZ256rrk = 7006,
-  VCVTPH2WZ256rrkz = 7007,
-  VCVTPH2WZrm = 7008,
-  VCVTPH2WZrmb = 7009,
-  VCVTPH2WZrmbk = 7010,
-  VCVTPH2WZrmbkz = 7011,
-  VCVTPH2WZrmk = 7012,
-  VCVTPH2WZrmkz = 7013,
-  VCVTPH2WZrr = 7014,
-  VCVTPH2WZrrb = 7015,
-  VCVTPH2WZrrbk = 7016,
-  VCVTPH2WZrrbkz = 7017,
-  VCVTPH2WZrrk = 7018,
-  VCVTPH2WZrrkz = 7019,
-  VCVTPS2DQYrm = 7020,
-  VCVTPS2DQYrr = 7021,
-  VCVTPS2DQZ128rm = 7022,
-  VCVTPS2DQZ128rmb = 7023,
-  VCVTPS2DQZ128rmbk = 7024,
-  VCVTPS2DQZ128rmbkz = 7025,
-  VCVTPS2DQZ128rmk = 7026,
-  VCVTPS2DQZ128rmkz = 7027,
-  VCVTPS2DQZ128rr = 7028,
-  VCVTPS2DQZ128rrk = 7029,
-  VCVTPS2DQZ128rrkz = 7030,
-  VCVTPS2DQZ256rm = 7031,
-  VCVTPS2DQZ256rmb = 7032,
-  VCVTPS2DQZ256rmbk = 7033,
-  VCVTPS2DQZ256rmbkz = 7034,
-  VCVTPS2DQZ256rmk = 7035,
-  VCVTPS2DQZ256rmkz = 7036,
-  VCVTPS2DQZ256rr = 7037,
-  VCVTPS2DQZ256rrk = 7038,
-  VCVTPS2DQZ256rrkz = 7039,
-  VCVTPS2DQZrm = 7040,
-  VCVTPS2DQZrmb = 7041,
-  VCVTPS2DQZrmbk = 7042,
-  VCVTPS2DQZrmbkz = 7043,
-  VCVTPS2DQZrmk = 7044,
-  VCVTPS2DQZrmkz = 7045,
-  VCVTPS2DQZrr = 7046,
-  VCVTPS2DQZrrb = 7047,
-  VCVTPS2DQZrrbk = 7048,
-  VCVTPS2DQZrrbkz = 7049,
-  VCVTPS2DQZrrk = 7050,
-  VCVTPS2DQZrrkz = 7051,
-  VCVTPS2DQrm = 7052,
-  VCVTPS2DQrr = 7053,
-  VCVTPS2IBSZ128rm = 7054,
-  VCVTPS2IBSZ128rmb = 7055,
-  VCVTPS2IBSZ128rmbk = 7056,
-  VCVTPS2IBSZ128rmbkz = 7057,
-  VCVTPS2IBSZ128rmk = 7058,
-  VCVTPS2IBSZ128rmkz = 7059,
-  VCVTPS2IBSZ128rr = 7060,
-  VCVTPS2IBSZ128rrk = 7061,
-  VCVTPS2IBSZ128rrkz = 7062,
-  VCVTPS2IBSZ256rm = 7063,
-  VCVTPS2IBSZ256rmb = 7064,
-  VCVTPS2IBSZ256rmbk = 7065,
-  VCVTPS2IBSZ256rmbkz = 7066,
-  VCVTPS2IBSZ256rmk = 7067,
-  VCVTPS2IBSZ256rmkz = 7068,
-  VCVTPS2IBSZ256rr = 7069,
-  VCVTPS2IBSZ256rrk = 7070,
-  VCVTPS2IBSZ256rrkz = 7071,
-  VCVTPS2IBSZrm = 7072,
-  VCVTPS2IBSZrmb = 7073,
-  VCVTPS2IBSZrmbk = 7074,
-  VCVTPS2IBSZrmbkz = 7075,
-  VCVTPS2IBSZrmk = 7076,
-  VCVTPS2IBSZrmkz = 7077,
-  VCVTPS2IBSZrr = 7078,
-  VCVTPS2IBSZrrb = 7079,
-  VCVTPS2IBSZrrbk = 7080,
-  VCVTPS2IBSZrrbkz = 7081,
-  VCVTPS2IBSZrrk = 7082,
-  VCVTPS2IBSZrrkz = 7083,
-  VCVTPS2IUBSZ128rm = 7084,
-  VCVTPS2IUBSZ128rmb = 7085,
-  VCVTPS2IUBSZ128rmbk = 7086,
-  VCVTPS2IUBSZ128rmbkz = 7087,
-  VCVTPS2IUBSZ128rmk = 7088,
-  VCVTPS2IUBSZ128rmkz = 7089,
-  VCVTPS2IUBSZ128rr = 7090,
-  VCVTPS2IUBSZ128rrk = 7091,
-  VCVTPS2IUBSZ128rrkz = 7092,
-  VCVTPS2IUBSZ256rm = 7093,
-  VCVTPS2IUBSZ256rmb = 7094,
-  VCVTPS2IUBSZ256rmbk = 7095,
-  VCVTPS2IUBSZ256rmbkz = 7096,
-  VCVTPS2IUBSZ256rmk = 7097,
-  VCVTPS2IUBSZ256rmkz = 7098,
-  VCVTPS2IUBSZ256rr = 7099,
-  VCVTPS2IUBSZ256rrk = 7100,
-  VCVTPS2IUBSZ256rrkz = 7101,
-  VCVTPS2IUBSZrm = 7102,
-  VCVTPS2IUBSZrmb = 7103,
-  VCVTPS2IUBSZrmbk = 7104,
-  VCVTPS2IUBSZrmbkz = 7105,
-  VCVTPS2IUBSZrmk = 7106,
-  VCVTPS2IUBSZrmkz = 7107,
-  VCVTPS2IUBSZrr = 7108,
-  VCVTPS2IUBSZrrb = 7109,
-  VCVTPS2IUBSZrrbk = 7110,
-  VCVTPS2IUBSZrrbkz = 7111,
-  VCVTPS2IUBSZrrk = 7112,
-  VCVTPS2IUBSZrrkz = 7113,
-  VCVTPS2PDYrm = 7114,
-  VCVTPS2PDYrr = 7115,
-  VCVTPS2PDZ128rm = 7116,
-  VCVTPS2PDZ128rmb = 7117,
-  VCVTPS2PDZ128rmbk = 7118,
-  VCVTPS2PDZ128rmbkz = 7119,
-  VCVTPS2PDZ128rmk = 7120,
-  VCVTPS2PDZ128rmkz = 7121,
-  VCVTPS2PDZ128rr = 7122,
-  VCVTPS2PDZ128rrk = 7123,
-  VCVTPS2PDZ128rrkz = 7124,
-  VCVTPS2PDZ256rm = 7125,
-  VCVTPS2PDZ256rmb = 7126,
-  VCVTPS2PDZ256rmbk = 7127,
-  VCVTPS2PDZ256rmbkz = 7128,
-  VCVTPS2PDZ256rmk = 7129,
-  VCVTPS2PDZ256rmkz = 7130,
-  VCVTPS2PDZ256rr = 7131,
-  VCVTPS2PDZ256rrk = 7132,
-  VCVTPS2PDZ256rrkz = 7133,
-  VCVTPS2PDZrm = 7134,
-  VCVTPS2PDZrmb = 7135,
-  VCVTPS2PDZrmbk = 7136,
-  VCVTPS2PDZrmbkz = 7137,
-  VCVTPS2PDZrmk = 7138,
-  VCVTPS2PDZrmkz = 7139,
-  VCVTPS2PDZrr = 7140,
-  VCVTPS2PDZrrb = 7141,
-  VCVTPS2PDZrrbk = 7142,
-  VCVTPS2PDZrrbkz = 7143,
-  VCVTPS2PDZrrk = 7144,
-  VCVTPS2PDZrrkz = 7145,
-  VCVTPS2PDrm = 7146,
-  VCVTPS2PDrr = 7147,
-  VCVTPS2PHXZ128rm = 7148,
-  VCVTPS2PHXZ128rmb = 7149,
-  VCVTPS2PHXZ128rmbk = 7150,
-  VCVTPS2PHXZ128rmbkz = 7151,
-  VCVTPS2PHXZ128rmk = 7152,
-  VCVTPS2PHXZ128rmkz = 7153,
-  VCVTPS2PHXZ128rr = 7154,
-  VCVTPS2PHXZ128rrk = 7155,
-  VCVTPS2PHXZ128rrkz = 7156,
-  VCVTPS2PHXZ256rm = 7157,
-  VCVTPS2PHXZ256rmb = 7158,
-  VCVTPS2PHXZ256rmbk = 7159,
-  VCVTPS2PHXZ256rmbkz = 7160,
-  VCVTPS2PHXZ256rmk = 7161,
-  VCVTPS2PHXZ256rmkz = 7162,
-  VCVTPS2PHXZ256rr = 7163,
-  VCVTPS2PHXZ256rrk = 7164,
-  VCVTPS2PHXZ256rrkz = 7165,
-  VCVTPS2PHXZrm = 7166,
-  VCVTPS2PHXZrmb = 7167,
-  VCVTPS2PHXZrmbk = 7168,
-  VCVTPS2PHXZrmbkz = 7169,
-  VCVTPS2PHXZrmk = 7170,
-  VCVTPS2PHXZrmkz = 7171,
-  VCVTPS2PHXZrr = 7172,
-  VCVTPS2PHXZrrb = 7173,
-  VCVTPS2PHXZrrbk = 7174,
-  VCVTPS2PHXZrrbkz = 7175,
-  VCVTPS2PHXZrrk = 7176,
-  VCVTPS2PHXZrrkz = 7177,
-  VCVTPS2PHYmr = 7178,
-  VCVTPS2PHYrr = 7179,
-  VCVTPS2PHZ128mr = 7180,
-  VCVTPS2PHZ128mrk = 7181,
-  VCVTPS2PHZ128rr = 7182,
-  VCVTPS2PHZ128rrk = 7183,
-  VCVTPS2PHZ128rrkz = 7184,
-  VCVTPS2PHZ256mr = 7185,
-  VCVTPS2PHZ256mrk = 7186,
-  VCVTPS2PHZ256rr = 7187,
-  VCVTPS2PHZ256rrk = 7188,
-  VCVTPS2PHZ256rrkz = 7189,
-  VCVTPS2PHZmr = 7190,
-  VCVTPS2PHZmrk = 7191,
-  VCVTPS2PHZrr = 7192,
-  VCVTPS2PHZrrb = 7193,
-  VCVTPS2PHZrrbk = 7194,
-  VCVTPS2PHZrrbkz = 7195,
-  VCVTPS2PHZrrk = 7196,
-  VCVTPS2PHZrrkz = 7197,
-  VCVTPS2PHmr = 7198,
-  VCVTPS2PHrr = 7199,
-  VCVTPS2QQZ128rm = 7200,
-  VCVTPS2QQZ128rmb = 7201,
-  VCVTPS2QQZ128rmbk = 7202,
-  VCVTPS2QQZ128rmbkz = 7203,
-  VCVTPS2QQZ128rmk = 7204,
-  VCVTPS2QQZ128rmkz = 7205,
-  VCVTPS2QQZ128rr = 7206,
-  VCVTPS2QQZ128rrk = 7207,
-  VCVTPS2QQZ128rrkz = 7208,
-  VCVTPS2QQZ256rm = 7209,
-  VCVTPS2QQZ256rmb = 7210,
-  VCVTPS2QQZ256rmbk = 7211,
-  VCVTPS2QQZ256rmbkz = 7212,
-  VCVTPS2QQZ256rmk = 7213,
-  VCVTPS2QQZ256rmkz = 7214,
-  VCVTPS2QQZ256rr = 7215,
-  VCVTPS2QQZ256rrk = 7216,
-  VCVTPS2QQZ256rrkz = 7217,
-  VCVTPS2QQZrm = 7218,
-  VCVTPS2QQZrmb = 7219,
-  VCVTPS2QQZrmbk = 7220,
-  VCVTPS2QQZrmbkz = 7221,
-  VCVTPS2QQZrmk = 7222,
-  VCVTPS2QQZrmkz = 7223,
-  VCVTPS2QQZrr = 7224,
-  VCVTPS2QQZrrb = 7225,
-  VCVTPS2QQZrrbk = 7226,
-  VCVTPS2QQZrrbkz = 7227,
-  VCVTPS2QQZrrk = 7228,
-  VCVTPS2QQZrrkz = 7229,
-  VCVTPS2UDQZ128rm = 7230,
-  VCVTPS2UDQZ128rmb = 7231,
-  VCVTPS2UDQZ128rmbk = 7232,
-  VCVTPS2UDQZ128rmbkz = 7233,
-  VCVTPS2UDQZ128rmk = 7234,
-  VCVTPS2UDQZ128rmkz = 7235,
-  VCVTPS2UDQZ128rr = 7236,
-  VCVTPS2UDQZ128rrk = 7237,
-  VCVTPS2UDQZ128rrkz = 7238,
-  VCVTPS2UDQZ256rm = 7239,
-  VCVTPS2UDQZ256rmb = 7240,
-  VCVTPS2UDQZ256rmbk = 7241,
-  VCVTPS2UDQZ256rmbkz = 7242,
-  VCVTPS2UDQZ256rmk = 7243,
-  VCVTPS2UDQZ256rmkz = 7244,
-  VCVTPS2UDQZ256rr = 7245,
-  VCVTPS2UDQZ256rrk = 7246,
-  VCVTPS2UDQZ256rrkz = 7247,
-  VCVTPS2UDQZrm = 7248,
-  VCVTPS2UDQZrmb = 7249,
-  VCVTPS2UDQZrmbk = 7250,
-  VCVTPS2UDQZrmbkz = 7251,
-  VCVTPS2UDQZrmk = 7252,
-  VCVTPS2UDQZrmkz = 7253,
-  VCVTPS2UDQZrr = 7254,
-  VCVTPS2UDQZrrb = 7255,
-  VCVTPS2UDQZrrbk = 7256,
-  VCVTPS2UDQZrrbkz = 7257,
-  VCVTPS2UDQZrrk = 7258,
-  VCVTPS2UDQZrrkz = 7259,
-  VCVTPS2UQQZ128rm = 7260,
-  VCVTPS2UQQZ128rmb = 7261,
-  VCVTPS2UQQZ128rmbk = 7262,
-  VCVTPS2UQQZ128rmbkz = 7263,
-  VCVTPS2UQQZ128rmk = 7264,
-  VCVTPS2UQQZ128rmkz = 7265,
-  VCVTPS2UQQZ128rr = 7266,
-  VCVTPS2UQQZ128rrk = 7267,
-  VCVTPS2UQQZ128rrkz = 7268,
-  VCVTPS2UQQZ256rm = 7269,
-  VCVTPS2UQQZ256rmb = 7270,
-  VCVTPS2UQQZ256rmbk = 7271,
-  VCVTPS2UQQZ256rmbkz = 7272,
-  VCVTPS2UQQZ256rmk = 7273,
-  VCVTPS2UQQZ256rmkz = 7274,
-  VCVTPS2UQQZ256rr = 7275,
-  VCVTPS2UQQZ256rrk = 7276,
-  VCVTPS2UQQZ256rrkz = 7277,
-  VCVTPS2UQQZrm = 7278,
-  VCVTPS2UQQZrmb = 7279,
-  VCVTPS2UQQZrmbk = 7280,
-  VCVTPS2UQQZrmbkz = 7281,
-  VCVTPS2UQQZrmk = 7282,
-  VCVTPS2UQQZrmkz = 7283,
-  VCVTPS2UQQZrr = 7284,
-  VCVTPS2UQQZrrb = 7285,
-  VCVTPS2UQQZrrbk = 7286,
-  VCVTPS2UQQZrrbkz = 7287,
-  VCVTPS2UQQZrrk = 7288,
-  VCVTPS2UQQZrrkz = 7289,
-  VCVTQQ2PDZ128rm = 7290,
-  VCVTQQ2PDZ128rmb = 7291,
-  VCVTQQ2PDZ128rmbk = 7292,
-  VCVTQQ2PDZ128rmbkz = 7293,
-  VCVTQQ2PDZ128rmk = 7294,
-  VCVTQQ2PDZ128rmkz = 7295,
-  VCVTQQ2PDZ128rr = 7296,
-  VCVTQQ2PDZ128rrk = 7297,
-  VCVTQQ2PDZ128rrkz = 7298,
-  VCVTQQ2PDZ256rm = 7299,
-  VCVTQQ2PDZ256rmb = 7300,
-  VCVTQQ2PDZ256rmbk = 7301,
-  VCVTQQ2PDZ256rmbkz = 7302,
-  VCVTQQ2PDZ256rmk = 7303,
-  VCVTQQ2PDZ256rmkz = 7304,
-  VCVTQQ2PDZ256rr = 7305,
-  VCVTQQ2PDZ256rrk = 7306,
-  VCVTQQ2PDZ256rrkz = 7307,
-  VCVTQQ2PDZrm = 7308,
-  VCVTQQ2PDZrmb = 7309,
-  VCVTQQ2PDZrmbk = 7310,
-  VCVTQQ2PDZrmbkz = 7311,
-  VCVTQQ2PDZrmk = 7312,
-  VCVTQQ2PDZrmkz = 7313,
-  VCVTQQ2PDZrr = 7314,
-  VCVTQQ2PDZrrb = 7315,
-  VCVTQQ2PDZrrbk = 7316,
-  VCVTQQ2PDZrrbkz = 7317,
-  VCVTQQ2PDZrrk = 7318,
-  VCVTQQ2PDZrrkz = 7319,
-  VCVTQQ2PHZ128rm = 7320,
-  VCVTQQ2PHZ128rmb = 7321,
-  VCVTQQ2PHZ128rmbk = 7322,
-  VCVTQQ2PHZ128rmbkz = 7323,
-  VCVTQQ2PHZ128rmk = 7324,
-  VCVTQQ2PHZ128rmkz = 7325,
-  VCVTQQ2PHZ128rr = 7326,
-  VCVTQQ2PHZ128rrk = 7327,
-  VCVTQQ2PHZ128rrkz = 7328,
-  VCVTQQ2PHZ256rm = 7329,
-  VCVTQQ2PHZ256rmb = 7330,
-  VCVTQQ2PHZ256rmbk = 7331,
-  VCVTQQ2PHZ256rmbkz = 7332,
-  VCVTQQ2PHZ256rmk = 7333,
-  VCVTQQ2PHZ256rmkz = 7334,
-  VCVTQQ2PHZ256rr = 7335,
-  VCVTQQ2PHZ256rrk = 7336,
-  VCVTQQ2PHZ256rrkz = 7337,
-  VCVTQQ2PHZrm = 7338,
-  VCVTQQ2PHZrmb = 7339,
-  VCVTQQ2PHZrmbk = 7340,
-  VCVTQQ2PHZrmbkz = 7341,
-  VCVTQQ2PHZrmk = 7342,
-  VCVTQQ2PHZrmkz = 7343,
-  VCVTQQ2PHZrr = 7344,
-  VCVTQQ2PHZrrb = 7345,
-  VCVTQQ2PHZrrbk = 7346,
-  VCVTQQ2PHZrrbkz = 7347,
-  VCVTQQ2PHZrrk = 7348,
-  VCVTQQ2PHZrrkz = 7349,
-  VCVTQQ2PSZ128rm = 7350,
-  VCVTQQ2PSZ128rmb = 7351,
-  VCVTQQ2PSZ128rmbk = 7352,
-  VCVTQQ2PSZ128rmbkz = 7353,
-  VCVTQQ2PSZ128rmk = 7354,
-  VCVTQQ2PSZ128rmkz = 7355,
-  VCVTQQ2PSZ128rr = 7356,
-  VCVTQQ2PSZ128rrk = 7357,
-  VCVTQQ2PSZ128rrkz = 7358,
-  VCVTQQ2PSZ256rm = 7359,
-  VCVTQQ2PSZ256rmb = 7360,
-  VCVTQQ2PSZ256rmbk = 7361,
-  VCVTQQ2PSZ256rmbkz = 7362,
-  VCVTQQ2PSZ256rmk = 7363,
-  VCVTQQ2PSZ256rmkz = 7364,
-  VCVTQQ2PSZ256rr = 7365,
-  VCVTQQ2PSZ256rrk = 7366,
-  VCVTQQ2PSZ256rrkz = 7367,
-  VCVTQQ2PSZrm = 7368,
-  VCVTQQ2PSZrmb = 7369,
-  VCVTQQ2PSZrmbk = 7370,
-  VCVTQQ2PSZrmbkz = 7371,
-  VCVTQQ2PSZrmk = 7372,
-  VCVTQQ2PSZrmkz = 7373,
-  VCVTQQ2PSZrr = 7374,
-  VCVTQQ2PSZrrb = 7375,
-  VCVTQQ2PSZrrbk = 7376,
-  VCVTQQ2PSZrrbkz = 7377,
-  VCVTQQ2PSZrrk = 7378,
-  VCVTQQ2PSZrrkz = 7379,
-  VCVTSD2SHZrm = 7380,
-  VCVTSD2SHZrm_Int = 7381,
-  VCVTSD2SHZrmk_Int = 7382,
-  VCVTSD2SHZrmkz_Int = 7383,
-  VCVTSD2SHZrr = 7384,
-  VCVTSD2SHZrr_Int = 7385,
-  VCVTSD2SHZrrb_Int = 7386,
-  VCVTSD2SHZrrbk_Int = 7387,
-  VCVTSD2SHZrrbkz_Int = 7388,
-  VCVTSD2SHZrrk_Int = 7389,
-  VCVTSD2SHZrrkz_Int = 7390,
-  VCVTSD2SI64Zrm = 7391,
-  VCVTSD2SI64Zrm_Int = 7392,
-  VCVTSD2SI64Zrr = 7393,
-  VCVTSD2SI64Zrr_Int = 7394,
-  VCVTSD2SI64Zrrb_Int = 7395,
-  VCVTSD2SI64rm = 7396,
-  VCVTSD2SI64rm_Int = 7397,
-  VCVTSD2SI64rr = 7398,
-  VCVTSD2SI64rr_Int = 7399,
-  VCVTSD2SIZrm = 7400,
-  VCVTSD2SIZrm_Int = 7401,
-  VCVTSD2SIZrr = 7402,
-  VCVTSD2SIZrr_Int = 7403,
-  VCVTSD2SIZrrb_Int = 7404,
-  VCVTSD2SIrm = 7405,
-  VCVTSD2SIrm_Int = 7406,
-  VCVTSD2SIrr = 7407,
-  VCVTSD2SIrr_Int = 7408,
-  VCVTSD2SSZrm = 7409,
-  VCVTSD2SSZrm_Int = 7410,
-  VCVTSD2SSZrmk_Int = 7411,
-  VCVTSD2SSZrmkz_Int = 7412,
-  VCVTSD2SSZrr = 7413,
-  VCVTSD2SSZrr_Int = 7414,
-  VCVTSD2SSZrrb_Int = 7415,
-  VCVTSD2SSZrrbk_Int = 7416,
-  VCVTSD2SSZrrbkz_Int = 7417,
-  VCVTSD2SSZrrk_Int = 7418,
-  VCVTSD2SSZrrkz_Int = 7419,
-  VCVTSD2SSrm = 7420,
-  VCVTSD2SSrm_Int = 7421,
-  VCVTSD2SSrr = 7422,
-  VCVTSD2SSrr_Int = 7423,
-  VCVTSD2USI64Zrm_Int = 7424,
-  VCVTSD2USI64Zrr_Int = 7425,
-  VCVTSD2USI64Zrrb_Int = 7426,
-  VCVTSD2USIZrm_Int = 7427,
-  VCVTSD2USIZrr_Int = 7428,
-  VCVTSD2USIZrrb_Int = 7429,
-  VCVTSH2SDZrm = 7430,
-  VCVTSH2SDZrm_Int = 7431,
-  VCVTSH2SDZrmk_Int = 7432,
-  VCVTSH2SDZrmkz_Int = 7433,
-  VCVTSH2SDZrr = 7434,
-  VCVTSH2SDZrr_Int = 7435,
-  VCVTSH2SDZrrb_Int = 7436,
-  VCVTSH2SDZrrbk_Int = 7437,
-  VCVTSH2SDZrrbkz_Int = 7438,
-  VCVTSH2SDZrrk_Int = 7439,
-  VCVTSH2SDZrrkz_Int = 7440,
-  VCVTSH2SI64Zrm_Int = 7441,
-  VCVTSH2SI64Zrr_Int = 7442,
-  VCVTSH2SI64Zrrb_Int = 7443,
-  VCVTSH2SIZrm_Int = 7444,
-  VCVTSH2SIZrr_Int = 7445,
-  VCVTSH2SIZrrb_Int = 7446,
-  VCVTSH2SSZrm = 7447,
-  VCVTSH2SSZrm_Int = 7448,
-  VCVTSH2SSZrmk_Int = 7449,
-  VCVTSH2SSZrmkz_Int = 7450,
-  VCVTSH2SSZrr = 7451,
-  VCVTSH2SSZrr_Int = 7452,
-  VCVTSH2SSZrrb_Int = 7453,
-  VCVTSH2SSZrrbk_Int = 7454,
-  VCVTSH2SSZrrbkz_Int = 7455,
-  VCVTSH2SSZrrk_Int = 7456,
-  VCVTSH2SSZrrkz_Int = 7457,
-  VCVTSH2USI64Zrm_Int = 7458,
-  VCVTSH2USI64Zrr_Int = 7459,
-  VCVTSH2USI64Zrrb_Int = 7460,
-  VCVTSH2USIZrm_Int = 7461,
-  VCVTSH2USIZrr_Int = 7462,
-  VCVTSH2USIZrrb_Int = 7463,
-  VCVTSI2SDZrm = 7464,
-  VCVTSI2SDZrm_Int = 7465,
-  VCVTSI2SDZrr = 7466,
-  VCVTSI2SDZrr_Int = 7467,
-  VCVTSI2SDrm = 7468,
-  VCVTSI2SDrm_Int = 7469,
-  VCVTSI2SDrr = 7470,
-  VCVTSI2SDrr_Int = 7471,
-  VCVTSI2SHZrm = 7472,
-  VCVTSI2SHZrm_Int = 7473,
-  VCVTSI2SHZrr = 7474,
-  VCVTSI2SHZrr_Int = 7475,
-  VCVTSI2SHZrrb_Int = 7476,
-  VCVTSI2SSZrm = 7477,
-  VCVTSI2SSZrm_Int = 7478,
-  VCVTSI2SSZrr = 7479,
-  VCVTSI2SSZrr_Int = 7480,
-  VCVTSI2SSZrrb_Int = 7481,
-  VCVTSI2SSrm = 7482,
-  VCVTSI2SSrm_Int = 7483,
-  VCVTSI2SSrr = 7484,
-  VCVTSI2SSrr_Int = 7485,
-  VCVTSI642SDZrm = 7486,
-  VCVTSI642SDZrm_Int = 7487,
-  VCVTSI642SDZrr = 7488,
-  VCVTSI642SDZrr_Int = 7489,
-  VCVTSI642SDZrrb_Int = 7490,
-  VCVTSI642SDrm = 7491,
-  VCVTSI642SDrm_Int = 7492,
-  VCVTSI642SDrr = 7493,
-  VCVTSI642SDrr_Int = 7494,
-  VCVTSI642SHZrm = 7495,
-  VCVTSI642SHZrm_Int = 7496,
-  VCVTSI642SHZrr = 7497,
-  VCVTSI642SHZrr_Int = 7498,
-  VCVTSI642SHZrrb_Int = 7499,
-  VCVTSI642SSZrm = 7500,
-  VCVTSI642SSZrm_Int = 7501,
-  VCVTSI642SSZrr = 7502,
-  VCVTSI642SSZrr_Int = 7503,
-  VCVTSI642SSZrrb_Int = 7504,
-  VCVTSI642SSrm = 7505,
-  VCVTSI642SSrm_Int = 7506,
-  VCVTSI642SSrr = 7507,
-  VCVTSI642SSrr_Int = 7508,
-  VCVTSS2SDZrm = 7509,
-  VCVTSS2SDZrm_Int = 7510,
-  VCVTSS2SDZrmk_Int = 7511,
-  VCVTSS2SDZrmkz_Int = 7512,
-  VCVTSS2SDZrr = 7513,
-  VCVTSS2SDZrr_Int = 7514,
-  VCVTSS2SDZrrb_Int = 7515,
-  VCVTSS2SDZrrbk_Int = 7516,
-  VCVTSS2SDZrrbkz_Int = 7517,
-  VCVTSS2SDZrrk_Int = 7518,
-  VCVTSS2SDZrrkz_Int = 7519,
-  VCVTSS2SDrm = 7520,
-  VCVTSS2SDrm_Int = 7521,
-  VCVTSS2SDrr = 7522,
-  VCVTSS2SDrr_Int = 7523,
-  VCVTSS2SHZrm = 7524,
-  VCVTSS2SHZrm_Int = 7525,
-  VCVTSS2SHZrmk_Int = 7526,
-  VCVTSS2SHZrmkz_Int = 7527,
-  VCVTSS2SHZrr = 7528,
-  VCVTSS2SHZrr_Int = 7529,
-  VCVTSS2SHZrrb_Int = 7530,
-  VCVTSS2SHZrrbk_Int = 7531,
-  VCVTSS2SHZrrbkz_Int = 7532,
-  VCVTSS2SHZrrk_Int = 7533,
-  VCVTSS2SHZrrkz_Int = 7534,
-  VCVTSS2SI64Zrm = 7535,
-  VCVTSS2SI64Zrm_Int = 7536,
-  VCVTSS2SI64Zrr = 7537,
-  VCVTSS2SI64Zrr_Int = 7538,
-  VCVTSS2SI64Zrrb_Int = 7539,
-  VCVTSS2SI64rm = 7540,
-  VCVTSS2SI64rm_Int = 7541,
-  VCVTSS2SI64rr = 7542,
-  VCVTSS2SI64rr_Int = 7543,
-  VCVTSS2SIZrm = 7544,
-  VCVTSS2SIZrm_Int = 7545,
-  VCVTSS2SIZrr = 7546,
-  VCVTSS2SIZrr_Int = 7547,
-  VCVTSS2SIZrrb_Int = 7548,
-  VCVTSS2SIrm = 7549,
-  VCVTSS2SIrm_Int = 7550,
-  VCVTSS2SIrr = 7551,
-  VCVTSS2SIrr_Int = 7552,
-  VCVTSS2USI64Zrm_Int = 7553,
-  VCVTSS2USI64Zrr_Int = 7554,
-  VCVTSS2USI64Zrrb_Int = 7555,
-  VCVTSS2USIZrm_Int = 7556,
-  VCVTSS2USIZrr_Int = 7557,
-  VCVTSS2USIZrrb_Int = 7558,
-  VCVTTBF162IBSZ128rm = 7559,
-  VCVTTBF162IBSZ128rmb = 7560,
-  VCVTTBF162IBSZ128rmbk = 7561,
-  VCVTTBF162IBSZ128rmbkz = 7562,
-  VCVTTBF162IBSZ128rmk = 7563,
-  VCVTTBF162IBSZ128rmkz = 7564,
-  VCVTTBF162IBSZ128rr = 7565,
-  VCVTTBF162IBSZ128rrk = 7566,
-  VCVTTBF162IBSZ128rrkz = 7567,
-  VCVTTBF162IBSZ256rm = 7568,
-  VCVTTBF162IBSZ256rmb = 7569,
-  VCVTTBF162IBSZ256rmbk = 7570,
-  VCVTTBF162IBSZ256rmbkz = 7571,
-  VCVTTBF162IBSZ256rmk = 7572,
-  VCVTTBF162IBSZ256rmkz = 7573,
-  VCVTTBF162IBSZ256rr = 7574,
-  VCVTTBF162IBSZ256rrk = 7575,
-  VCVTTBF162IBSZ256rrkz = 7576,
-  VCVTTBF162IBSZrm = 7577,
-  VCVTTBF162IBSZrmb = 7578,
-  VCVTTBF162IBSZrmbk = 7579,
-  VCVTTBF162IBSZrmbkz = 7580,
-  VCVTTBF162IBSZrmk = 7581,
-  VCVTTBF162IBSZrmkz = 7582,
-  VCVTTBF162IBSZrr = 7583,
-  VCVTTBF162IBSZrrk = 7584,
-  VCVTTBF162IBSZrrkz = 7585,
-  VCVTTBF162IUBSZ128rm = 7586,
-  VCVTTBF162IUBSZ128rmb = 7587,
-  VCVTTBF162IUBSZ128rmbk = 7588,
-  VCVTTBF162IUBSZ128rmbkz = 7589,
-  VCVTTBF162IUBSZ128rmk = 7590,
-  VCVTTBF162IUBSZ128rmkz = 7591,
-  VCVTTBF162IUBSZ128rr = 7592,
-  VCVTTBF162IUBSZ128rrk = 7593,
-  VCVTTBF162IUBSZ128rrkz = 7594,
-  VCVTTBF162IUBSZ256rm = 7595,
-  VCVTTBF162IUBSZ256rmb = 7596,
-  VCVTTBF162IUBSZ256rmbk = 7597,
-  VCVTTBF162IUBSZ256rmbkz = 7598,
-  VCVTTBF162IUBSZ256rmk = 7599,
-  VCVTTBF162IUBSZ256rmkz = 7600,
-  VCVTTBF162IUBSZ256rr = 7601,
-  VCVTTBF162IUBSZ256rrk = 7602,
-  VCVTTBF162IUBSZ256rrkz = 7603,
-  VCVTTBF162IUBSZrm = 7604,
-  VCVTTBF162IUBSZrmb = 7605,
-  VCVTTBF162IUBSZrmbk = 7606,
-  VCVTTBF162IUBSZrmbkz = 7607,
-  VCVTTBF162IUBSZrmk = 7608,
-  VCVTTBF162IUBSZrmkz = 7609,
-  VCVTTBF162IUBSZrr = 7610,
-  VCVTTBF162IUBSZrrk = 7611,
-  VCVTTBF162IUBSZrrkz = 7612,
-  VCVTTPD2DQSZ128rm = 7613,
-  VCVTTPD2DQSZ128rmb = 7614,
-  VCVTTPD2DQSZ128rmbk = 7615,
-  VCVTTPD2DQSZ128rmbkz = 7616,
-  VCVTTPD2DQSZ128rmk = 7617,
-  VCVTTPD2DQSZ128rmkz = 7618,
-  VCVTTPD2DQSZ128rr = 7619,
-  VCVTTPD2DQSZ128rrk = 7620,
-  VCVTTPD2DQSZ128rrkz = 7621,
-  VCVTTPD2DQSZ256rm = 7622,
-  VCVTTPD2DQSZ256rmb = 7623,
-  VCVTTPD2DQSZ256rmbk = 7624,
-  VCVTTPD2DQSZ256rmbkz = 7625,
-  VCVTTPD2DQSZ256rmk = 7626,
-  VCVTTPD2DQSZ256rmkz = 7627,
-  VCVTTPD2DQSZ256rr = 7628,
-  VCVTTPD2DQSZ256rrb = 7629,
-  VCVTTPD2DQSZ256rrbk = 7630,
-  VCVTTPD2DQSZ256rrbkz = 7631,
-  VCVTTPD2DQSZ256rrk = 7632,
-  VCVTTPD2DQSZ256rrkz = 7633,
-  VCVTTPD2DQSZrm = 7634,
-  VCVTTPD2DQSZrmb = 7635,
-  VCVTTPD2DQSZrmbk = 7636,
-  VCVTTPD2DQSZrmbkz = 7637,
-  VCVTTPD2DQSZrmk = 7638,
-  VCVTTPD2DQSZrmkz = 7639,
-  VCVTTPD2DQSZrr = 7640,
-  VCVTTPD2DQSZrrb = 7641,
-  VCVTTPD2DQSZrrbk = 7642,
-  VCVTTPD2DQSZrrbkz = 7643,
-  VCVTTPD2DQSZrrk = 7644,
-  VCVTTPD2DQSZrrkz = 7645,
-  VCVTTPD2DQYrm = 7646,
-  VCVTTPD2DQYrr = 7647,
-  VCVTTPD2DQZ128rm = 7648,
-  VCVTTPD2DQZ128rmb = 7649,
-  VCVTTPD2DQZ128rmbk = 7650,
-  VCVTTPD2DQZ128rmbkz = 7651,
-  VCVTTPD2DQZ128rmk = 7652,
-  VCVTTPD2DQZ128rmkz = 7653,
-  VCVTTPD2DQZ128rr = 7654,
-  VCVTTPD2DQZ128rrk = 7655,
-  VCVTTPD2DQZ128rrkz = 7656,
-  VCVTTPD2DQZ256rm = 7657,
-  VCVTTPD2DQZ256rmb = 7658,
-  VCVTTPD2DQZ256rmbk = 7659,
-  VCVTTPD2DQZ256rmbkz = 7660,
-  VCVTTPD2DQZ256rmk = 7661,
-  VCVTTPD2DQZ256rmkz = 7662,
-  VCVTTPD2DQZ256rr = 7663,
-  VCVTTPD2DQZ256rrk = 7664,
-  VCVTTPD2DQZ256rrkz = 7665,
-  VCVTTPD2DQZrm = 7666,
-  VCVTTPD2DQZrmb = 7667,
-  VCVTTPD2DQZrmbk = 7668,
-  VCVTTPD2DQZrmbkz = 7669,
-  VCVTTPD2DQZrmk = 7670,
-  VCVTTPD2DQZrmkz = 7671,
-  VCVTTPD2DQZrr = 7672,
-  VCVTTPD2DQZrrb = 7673,
-  VCVTTPD2DQZrrbk = 7674,
-  VCVTTPD2DQZrrbkz = 7675,
-  VCVTTPD2DQZrrk = 7676,
-  VCVTTPD2DQZrrkz = 7677,
-  VCVTTPD2DQrm = 7678,
-  VCVTTPD2DQrr = 7679,
-  VCVTTPD2QQSZ128rm = 7680,
-  VCVTTPD2QQSZ128rmb = 7681,
-  VCVTTPD2QQSZ128rmbk = 7682,
-  VCVTTPD2QQSZ128rmbkz = 7683,
-  VCVTTPD2QQSZ128rmk = 7684,
-  VCVTTPD2QQSZ128rmkz = 7685,
-  VCVTTPD2QQSZ128rr = 7686,
-  VCVTTPD2QQSZ128rrk = 7687,
-  VCVTTPD2QQSZ128rrkz = 7688,
-  VCVTTPD2QQSZ256rm = 7689,
-  VCVTTPD2QQSZ256rmb = 7690,
-  VCVTTPD2QQSZ256rmbk = 7691,
-  VCVTTPD2QQSZ256rmbkz = 7692,
-  VCVTTPD2QQSZ256rmk = 7693,
-  VCVTTPD2QQSZ256rmkz = 7694,
-  VCVTTPD2QQSZ256rr = 7695,
-  VCVTTPD2QQSZ256rrb = 7696,
-  VCVTTPD2QQSZ256rrbk = 7697,
-  VCVTTPD2QQSZ256rrbkz = 7698,
-  VCVTTPD2QQSZ256rrk = 7699,
-  VCVTTPD2QQSZ256rrkz = 7700,
-  VCVTTPD2QQSZrm = 7701,
-  VCVTTPD2QQSZrmb = 7702,
-  VCVTTPD2QQSZrmbk = 7703,
-  VCVTTPD2QQSZrmbkz = 7704,
-  VCVTTPD2QQSZrmk = 7705,
-  VCVTTPD2QQSZrmkz = 7706,
-  VCVTTPD2QQSZrr = 7707,
-  VCVTTPD2QQSZrrb = 7708,
-  VCVTTPD2QQSZrrbk = 7709,
-  VCVTTPD2QQSZrrbkz = 7710,
-  VCVTTPD2QQSZrrk = 7711,
-  VCVTTPD2QQSZrrkz = 7712,
-  VCVTTPD2QQZ128rm = 7713,
-  VCVTTPD2QQZ128rmb = 7714,
-  VCVTTPD2QQZ128rmbk = 7715,
-  VCVTTPD2QQZ128rmbkz = 7716,
-  VCVTTPD2QQZ128rmk = 7717,
-  VCVTTPD2QQZ128rmkz = 7718,
-  VCVTTPD2QQZ128rr = 7719,
-  VCVTTPD2QQZ128rrk = 7720,
-  VCVTTPD2QQZ128rrkz = 7721,
-  VCVTTPD2QQZ256rm = 7722,
-  VCVTTPD2QQZ256rmb = 7723,
-  VCVTTPD2QQZ256rmbk = 7724,
-  VCVTTPD2QQZ256rmbkz = 7725,
-  VCVTTPD2QQZ256rmk = 7726,
-  VCVTTPD2QQZ256rmkz = 7727,
-  VCVTTPD2QQZ256rr = 7728,
-  VCVTTPD2QQZ256rrk = 7729,
-  VCVTTPD2QQZ256rrkz = 7730,
-  VCVTTPD2QQZrm = 7731,
-  VCVTTPD2QQZrmb = 7732,
-  VCVTTPD2QQZrmbk = 7733,
-  VCVTTPD2QQZrmbkz = 7734,
-  VCVTTPD2QQZrmk = 7735,
-  VCVTTPD2QQZrmkz = 7736,
-  VCVTTPD2QQZrr = 7737,
-  VCVTTPD2QQZrrb = 7738,
-  VCVTTPD2QQZrrbk = 7739,
-  VCVTTPD2QQZrrbkz = 7740,
-  VCVTTPD2QQZrrk = 7741,
-  VCVTTPD2QQZrrkz = 7742,
-  VCVTTPD2UDQSZ128rm = 7743,
-  VCVTTPD2UDQSZ128rmb = 7744,
-  VCVTTPD2UDQSZ128rmbk = 7745,
-  VCVTTPD2UDQSZ128rmbkz = 7746,
-  VCVTTPD2UDQSZ128rmk = 7747,
-  VCVTTPD2UDQSZ128rmkz = 7748,
-  VCVTTPD2UDQSZ128rr = 7749,
-  VCVTTPD2UDQSZ128rrk = 7750,
-  VCVTTPD2UDQSZ128rrkz = 7751,
-  VCVTTPD2UDQSZ256rm = 7752,
-  VCVTTPD2UDQSZ256rmb = 7753,
-  VCVTTPD2UDQSZ256rmbk = 7754,
-  VCVTTPD2UDQSZ256rmbkz = 7755,
-  VCVTTPD2UDQSZ256rmk = 7756,
-  VCVTTPD2UDQSZ256rmkz = 7757,
-  VCVTTPD2UDQSZ256rr = 7758,
-  VCVTTPD2UDQSZ256rrb = 7759,
-  VCVTTPD2UDQSZ256rrbk = 7760,
-  VCVTTPD2UDQSZ256rrbkz = 7761,
-  VCVTTPD2UDQSZ256rrk = 7762,
-  VCVTTPD2UDQSZ256rrkz = 7763,
-  VCVTTPD2UDQSZrm = 7764,
-  VCVTTPD2UDQSZrmb = 7765,
-  VCVTTPD2UDQSZrmbk = 7766,
-  VCVTTPD2UDQSZrmbkz = 7767,
-  VCVTTPD2UDQSZrmk = 7768,
-  VCVTTPD2UDQSZrmkz = 7769,
-  VCVTTPD2UDQSZrr = 7770,
-  VCVTTPD2UDQSZrrb = 7771,
-  VCVTTPD2UDQSZrrbk = 7772,
-  VCVTTPD2UDQSZrrbkz = 7773,
-  VCVTTPD2UDQSZrrk = 7774,
-  VCVTTPD2UDQSZrrkz = 7775,
-  VCVTTPD2UDQZ128rm = 7776,
-  VCVTTPD2UDQZ128rmb = 7777,
-  VCVTTPD2UDQZ128rmbk = 7778,
-  VCVTTPD2UDQZ128rmbkz = 7779,
-  VCVTTPD2UDQZ128rmk = 7780,
-  VCVTTPD2UDQZ128rmkz = 7781,
-  VCVTTPD2UDQZ128rr = 7782,
-  VCVTTPD2UDQZ128rrk = 7783,
-  VCVTTPD2UDQZ128rrkz = 7784,
-  VCVTTPD2UDQZ256rm = 7785,
-  VCVTTPD2UDQZ256rmb = 7786,
-  VCVTTPD2UDQZ256rmbk = 7787,
-  VCVTTPD2UDQZ256rmbkz = 7788,
-  VCVTTPD2UDQZ256rmk = 7789,
-  VCVTTPD2UDQZ256rmkz = 7790,
-  VCVTTPD2UDQZ256rr = 7791,
-  VCVTTPD2UDQZ256rrk = 7792,
-  VCVTTPD2UDQZ256rrkz = 7793,
-  VCVTTPD2UDQZrm = 7794,
-  VCVTTPD2UDQZrmb = 7795,
-  VCVTTPD2UDQZrmbk = 7796,
-  VCVTTPD2UDQZrmbkz = 7797,
-  VCVTTPD2UDQZrmk = 7798,
-  VCVTTPD2UDQZrmkz = 7799,
-  VCVTTPD2UDQZrr = 7800,
-  VCVTTPD2UDQZrrb = 7801,
-  VCVTTPD2UDQZrrbk = 7802,
-  VCVTTPD2UDQZrrbkz = 7803,
-  VCVTTPD2UDQZrrk = 7804,
-  VCVTTPD2UDQZrrkz = 7805,
-  VCVTTPD2UQQSZ128rm = 7806,
-  VCVTTPD2UQQSZ128rmb = 7807,
-  VCVTTPD2UQQSZ128rmbk = 7808,
-  VCVTTPD2UQQSZ128rmbkz = 7809,
-  VCVTTPD2UQQSZ128rmk = 7810,
-  VCVTTPD2UQQSZ128rmkz = 7811,
-  VCVTTPD2UQQSZ128rr = 7812,
-  VCVTTPD2UQQSZ128rrk = 7813,
-  VCVTTPD2UQQSZ128rrkz = 7814,
-  VCVTTPD2UQQSZ256rm = 7815,
-  VCVTTPD2UQQSZ256rmb = 7816,
-  VCVTTPD2UQQSZ256rmbk = 7817,
-  VCVTTPD2UQQSZ256rmbkz = 7818,
-  VCVTTPD2UQQSZ256rmk = 7819,
-  VCVTTPD2UQQSZ256rmkz = 7820,
-  VCVTTPD2UQQSZ256rr = 7821,
-  VCVTTPD2UQQSZ256rrb = 7822,
-  VCVTTPD2UQQSZ256rrbk = 7823,
-  VCVTTPD2UQQSZ256rrbkz = 7824,
-  VCVTTPD2UQQSZ256rrk = 7825,
-  VCVTTPD2UQQSZ256rrkz = 7826,
-  VCVTTPD2UQQSZrm = 7827,
-  VCVTTPD2UQQSZrmb = 7828,
-  VCVTTPD2UQQSZrmbk = 7829,
-  VCVTTPD2UQQSZrmbkz = 7830,
-  VCVTTPD2UQQSZrmk = 7831,
-  VCVTTPD2UQQSZrmkz = 7832,
-  VCVTTPD2UQQSZrr = 7833,
-  VCVTTPD2UQQSZrrb = 7834,
-  VCVTTPD2UQQSZrrbk = 7835,
-  VCVTTPD2UQQSZrrbkz = 7836,
-  VCVTTPD2UQQSZrrk = 7837,
-  VCVTTPD2UQQSZrrkz = 7838,
-  VCVTTPD2UQQZ128rm = 7839,
-  VCVTTPD2UQQZ128rmb = 7840,
-  VCVTTPD2UQQZ128rmbk = 7841,
-  VCVTTPD2UQQZ128rmbkz = 7842,
-  VCVTTPD2UQQZ128rmk = 7843,
-  VCVTTPD2UQQZ128rmkz = 7844,
-  VCVTTPD2UQQZ128rr = 7845,
-  VCVTTPD2UQQZ128rrk = 7846,
-  VCVTTPD2UQQZ128rrkz = 7847,
-  VCVTTPD2UQQZ256rm = 7848,
-  VCVTTPD2UQQZ256rmb = 7849,
-  VCVTTPD2UQQZ256rmbk = 7850,
-  VCVTTPD2UQQZ256rmbkz = 7851,
-  VCVTTPD2UQQZ256rmk = 7852,
-  VCVTTPD2UQQZ256rmkz = 7853,
-  VCVTTPD2UQQZ256rr = 7854,
-  VCVTTPD2UQQZ256rrk = 7855,
-  VCVTTPD2UQQZ256rrkz = 7856,
-  VCVTTPD2UQQZrm = 7857,
-  VCVTTPD2UQQZrmb = 7858,
-  VCVTTPD2UQQZrmbk = 7859,
-  VCVTTPD2UQQZrmbkz = 7860,
-  VCVTTPD2UQQZrmk = 7861,
-  VCVTTPD2UQQZrmkz = 7862,
-  VCVTTPD2UQQZrr = 7863,
-  VCVTTPD2UQQZrrb = 7864,
-  VCVTTPD2UQQZrrbk = 7865,
-  VCVTTPD2UQQZrrbkz = 7866,
-  VCVTTPD2UQQZrrk = 7867,
-  VCVTTPD2UQQZrrkz = 7868,
-  VCVTTPH2DQZ128rm = 7869,
-  VCVTTPH2DQZ128rmb = 7870,
-  VCVTTPH2DQZ128rmbk = 7871,
-  VCVTTPH2DQZ128rmbkz = 7872,
-  VCVTTPH2DQZ128rmk = 7873,
-  VCVTTPH2DQZ128rmkz = 7874,
-  VCVTTPH2DQZ128rr = 7875,
-  VCVTTPH2DQZ128rrk = 7876,
-  VCVTTPH2DQZ128rrkz = 7877,
-  VCVTTPH2DQZ256rm = 7878,
-  VCVTTPH2DQZ256rmb = 7879,
-  VCVTTPH2DQZ256rmbk = 7880,
-  VCVTTPH2DQZ256rmbkz = 7881,
-  VCVTTPH2DQZ256rmk = 7882,
-  VCVTTPH2DQZ256rmkz = 7883,
-  VCVTTPH2DQZ256rr = 7884,
-  VCVTTPH2DQZ256rrk = 7885,
-  VCVTTPH2DQZ256rrkz = 7886,
-  VCVTTPH2DQZrm = 7887,
-  VCVTTPH2DQZrmb = 7888,
-  VCVTTPH2DQZrmbk = 7889,
-  VCVTTPH2DQZrmbkz = 7890,
-  VCVTTPH2DQZrmk = 7891,
-  VCVTTPH2DQZrmkz = 7892,
-  VCVTTPH2DQZrr = 7893,
-  VCVTTPH2DQZrrb = 7894,
-  VCVTTPH2DQZrrbk = 7895,
-  VCVTTPH2DQZrrbkz = 7896,
-  VCVTTPH2DQZrrk = 7897,
-  VCVTTPH2DQZrrkz = 7898,
-  VCVTTPH2IBSZ128rm = 7899,
-  VCVTTPH2IBSZ128rmb = 7900,
-  VCVTTPH2IBSZ128rmbk = 7901,
-  VCVTTPH2IBSZ128rmbkz = 7902,
-  VCVTTPH2IBSZ128rmk = 7903,
-  VCVTTPH2IBSZ128rmkz = 7904,
-  VCVTTPH2IBSZ128rr = 7905,
-  VCVTTPH2IBSZ128rrk = 7906,
-  VCVTTPH2IBSZ128rrkz = 7907,
-  VCVTTPH2IBSZ256rm = 7908,
-  VCVTTPH2IBSZ256rmb = 7909,
-  VCVTTPH2IBSZ256rmbk = 7910,
-  VCVTTPH2IBSZ256rmbkz = 7911,
-  VCVTTPH2IBSZ256rmk = 7912,
-  VCVTTPH2IBSZ256rmkz = 7913,
-  VCVTTPH2IBSZ256rr = 7914,
-  VCVTTPH2IBSZ256rrk = 7915,
-  VCVTTPH2IBSZ256rrkz = 7916,
-  VCVTTPH2IBSZrm = 7917,
-  VCVTTPH2IBSZrmb = 7918,
-  VCVTTPH2IBSZrmbk = 7919,
-  VCVTTPH2IBSZrmbkz = 7920,
-  VCVTTPH2IBSZrmk = 7921,
-  VCVTTPH2IBSZrmkz = 7922,
-  VCVTTPH2IBSZrr = 7923,
-  VCVTTPH2IBSZrrb = 7924,
-  VCVTTPH2IBSZrrbk = 7925,
-  VCVTTPH2IBSZrrbkz = 7926,
-  VCVTTPH2IBSZrrk = 7927,
-  VCVTTPH2IBSZrrkz = 7928,
-  VCVTTPH2IUBSZ128rm = 7929,
-  VCVTTPH2IUBSZ128rmb = 7930,
-  VCVTTPH2IUBSZ128rmbk = 7931,
-  VCVTTPH2IUBSZ128rmbkz = 7932,
-  VCVTTPH2IUBSZ128rmk = 7933,
-  VCVTTPH2IUBSZ128rmkz = 7934,
-  VCVTTPH2IUBSZ128rr = 7935,
-  VCVTTPH2IUBSZ128rrk = 7936,
-  VCVTTPH2IUBSZ128rrkz = 7937,
-  VCVTTPH2IUBSZ256rm = 7938,
-  VCVTTPH2IUBSZ256rmb = 7939,
-  VCVTTPH2IUBSZ256rmbk = 7940,
-  VCVTTPH2IUBSZ256rmbkz = 7941,
-  VCVTTPH2IUBSZ256rmk = 7942,
-  VCVTTPH2IUBSZ256rmkz = 7943,
-  VCVTTPH2IUBSZ256rr = 7944,
-  VCVTTPH2IUBSZ256rrk = 7945,
-  VCVTTPH2IUBSZ256rrkz = 7946,
-  VCVTTPH2IUBSZrm = 7947,
-  VCVTTPH2IUBSZrmb = 7948,
-  VCVTTPH2IUBSZrmbk = 7949,
-  VCVTTPH2IUBSZrmbkz = 7950,
-  VCVTTPH2IUBSZrmk = 7951,
-  VCVTTPH2IUBSZrmkz = 7952,
-  VCVTTPH2IUBSZrr = 7953,
-  VCVTTPH2IUBSZrrb = 7954,
-  VCVTTPH2IUBSZrrbk = 7955,
-  VCVTTPH2IUBSZrrbkz = 7956,
-  VCVTTPH2IUBSZrrk = 7957,
-  VCVTTPH2IUBSZrrkz = 7958,
-  VCVTTPH2QQZ128rm = 7959,
-  VCVTTPH2QQZ128rmb = 7960,
-  VCVTTPH2QQZ128rmbk = 7961,
-  VCVTTPH2QQZ128rmbkz = 7962,
-  VCVTTPH2QQZ128rmk = 7963,
-  VCVTTPH2QQZ128rmkz = 7964,
-  VCVTTPH2QQZ128rr = 7965,
-  VCVTTPH2QQZ128rrk = 7966,
-  VCVTTPH2QQZ128rrkz = 7967,
-  VCVTTPH2QQZ256rm = 7968,
-  VCVTTPH2QQZ256rmb = 7969,
-  VCVTTPH2QQZ256rmbk = 7970,
-  VCVTTPH2QQZ256rmbkz = 7971,
-  VCVTTPH2QQZ256rmk = 7972,
-  VCVTTPH2QQZ256rmkz = 7973,
-  VCVTTPH2QQZ256rr = 7974,
-  VCVTTPH2QQZ256rrk = 7975,
-  VCVTTPH2QQZ256rrkz = 7976,
-  VCVTTPH2QQZrm = 7977,
-  VCVTTPH2QQZrmb = 7978,
-  VCVTTPH2QQZrmbk = 7979,
-  VCVTTPH2QQZrmbkz = 7980,
-  VCVTTPH2QQZrmk = 7981,
-  VCVTTPH2QQZrmkz = 7982,
-  VCVTTPH2QQZrr = 7983,
-  VCVTTPH2QQZrrb = 7984,
-  VCVTTPH2QQZrrbk = 7985,
-  VCVTTPH2QQZrrbkz = 7986,
-  VCVTTPH2QQZrrk = 7987,
-  VCVTTPH2QQZrrkz = 7988,
-  VCVTTPH2UDQZ128rm = 7989,
-  VCVTTPH2UDQZ128rmb = 7990,
-  VCVTTPH2UDQZ128rmbk = 7991,
-  VCVTTPH2UDQZ128rmbkz = 7992,
-  VCVTTPH2UDQZ128rmk = 7993,
-  VCVTTPH2UDQZ128rmkz = 7994,
-  VCVTTPH2UDQZ128rr = 7995,
-  VCVTTPH2UDQZ128rrk = 7996,
-  VCVTTPH2UDQZ128rrkz = 7997,
-  VCVTTPH2UDQZ256rm = 7998,
-  VCVTTPH2UDQZ256rmb = 7999,
-  VCVTTPH2UDQZ256rmbk = 8000,
-  VCVTTPH2UDQZ256rmbkz = 8001,
-  VCVTTPH2UDQZ256rmk = 8002,
-  VCVTTPH2UDQZ256rmkz = 8003,
-  VCVTTPH2UDQZ256rr = 8004,
-  VCVTTPH2UDQZ256rrk = 8005,
-  VCVTTPH2UDQZ256rrkz = 8006,
-  VCVTTPH2UDQZrm = 8007,
-  VCVTTPH2UDQZrmb = 8008,
-  VCVTTPH2UDQZrmbk = 8009,
-  VCVTTPH2UDQZrmbkz = 8010,
-  VCVTTPH2UDQZrmk = 8011,
-  VCVTTPH2UDQZrmkz = 8012,
-  VCVTTPH2UDQZrr = 8013,
-  VCVTTPH2UDQZrrb = 8014,
-  VCVTTPH2UDQZrrbk = 8015,
-  VCVTTPH2UDQZrrbkz = 8016,
-  VCVTTPH2UDQZrrk = 8017,
-  VCVTTPH2UDQZrrkz = 8018,
-  VCVTTPH2UQQZ128rm = 8019,
-  VCVTTPH2UQQZ128rmb = 8020,
-  VCVTTPH2UQQZ128rmbk = 8021,
-  VCVTTPH2UQQZ128rmbkz = 8022,
-  VCVTTPH2UQQZ128rmk = 8023,
-  VCVTTPH2UQQZ128rmkz = 8024,
-  VCVTTPH2UQQZ128rr = 8025,
-  VCVTTPH2UQQZ128rrk = 8026,
-  VCVTTPH2UQQZ128rrkz = 8027,
-  VCVTTPH2UQQZ256rm = 8028,
-  VCVTTPH2UQQZ256rmb = 8029,
-  VCVTTPH2UQQZ256rmbk = 8030,
-  VCVTTPH2UQQZ256rmbkz = 8031,
-  VCVTTPH2UQQZ256rmk = 8032,
-  VCVTTPH2UQQZ256rmkz = 8033,
-  VCVTTPH2UQQZ256rr = 8034,
-  VCVTTPH2UQQZ256rrk = 8035,
-  VCVTTPH2UQQZ256rrkz = 8036,
-  VCVTTPH2UQQZrm = 8037,
-  VCVTTPH2UQQZrmb = 8038,
-  VCVTTPH2UQQZrmbk = 8039,
-  VCVTTPH2UQQZrmbkz = 8040,
-  VCVTTPH2UQQZrmk = 8041,
-  VCVTTPH2UQQZrmkz = 8042,
-  VCVTTPH2UQQZrr = 8043,
-  VCVTTPH2UQQZrrb = 8044,
-  VCVTTPH2UQQZrrbk = 8045,
-  VCVTTPH2UQQZrrbkz = 8046,
-  VCVTTPH2UQQZrrk = 8047,
-  VCVTTPH2UQQZrrkz = 8048,
-  VCVTTPH2UWZ128rm = 8049,
-  VCVTTPH2UWZ128rmb = 8050,
-  VCVTTPH2UWZ128rmbk = 8051,
-  VCVTTPH2UWZ128rmbkz = 8052,
-  VCVTTPH2UWZ128rmk = 8053,
-  VCVTTPH2UWZ128rmkz = 8054,
-  VCVTTPH2UWZ128rr = 8055,
-  VCVTTPH2UWZ128rrk = 8056,
-  VCVTTPH2UWZ128rrkz = 8057,
-  VCVTTPH2UWZ256rm = 8058,
-  VCVTTPH2UWZ256rmb = 8059,
-  VCVTTPH2UWZ256rmbk = 8060,
-  VCVTTPH2UWZ256rmbkz = 8061,
-  VCVTTPH2UWZ256rmk = 8062,
-  VCVTTPH2UWZ256rmkz = 8063,
-  VCVTTPH2UWZ256rr = 8064,
-  VCVTTPH2UWZ256rrk = 8065,
-  VCVTTPH2UWZ256rrkz = 8066,
-  VCVTTPH2UWZrm = 8067,
-  VCVTTPH2UWZrmb = 8068,
-  VCVTTPH2UWZrmbk = 8069,
-  VCVTTPH2UWZrmbkz = 8070,
-  VCVTTPH2UWZrmk = 8071,
-  VCVTTPH2UWZrmkz = 8072,
-  VCVTTPH2UWZrr = 8073,
-  VCVTTPH2UWZrrb = 8074,
-  VCVTTPH2UWZrrbk = 8075,
-  VCVTTPH2UWZrrbkz = 8076,
-  VCVTTPH2UWZrrk = 8077,
-  VCVTTPH2UWZrrkz = 8078,
-  VCVTTPH2WZ128rm = 8079,
-  VCVTTPH2WZ128rmb = 8080,
-  VCVTTPH2WZ128rmbk = 8081,
-  VCVTTPH2WZ128rmbkz = 8082,
-  VCVTTPH2WZ128rmk = 8083,
-  VCVTTPH2WZ128rmkz = 8084,
-  VCVTTPH2WZ128rr = 8085,
-  VCVTTPH2WZ128rrk = 8086,
-  VCVTTPH2WZ128rrkz = 8087,
-  VCVTTPH2WZ256rm = 8088,
-  VCVTTPH2WZ256rmb = 8089,
-  VCVTTPH2WZ256rmbk = 8090,
-  VCVTTPH2WZ256rmbkz = 8091,
-  VCVTTPH2WZ256rmk = 8092,
-  VCVTTPH2WZ256rmkz = 8093,
-  VCVTTPH2WZ256rr = 8094,
-  VCVTTPH2WZ256rrk = 8095,
-  VCVTTPH2WZ256rrkz = 8096,
-  VCVTTPH2WZrm = 8097,
-  VCVTTPH2WZrmb = 8098,
-  VCVTTPH2WZrmbk = 8099,
-  VCVTTPH2WZrmbkz = 8100,
-  VCVTTPH2WZrmk = 8101,
-  VCVTTPH2WZrmkz = 8102,
-  VCVTTPH2WZrr = 8103,
-  VCVTTPH2WZrrb = 8104,
-  VCVTTPH2WZrrbk = 8105,
-  VCVTTPH2WZrrbkz = 8106,
-  VCVTTPH2WZrrk = 8107,
-  VCVTTPH2WZrrkz = 8108,
-  VCVTTPS2DQSZ128rm = 8109,
-  VCVTTPS2DQSZ128rmb = 8110,
-  VCVTTPS2DQSZ128rmbk = 8111,
-  VCVTTPS2DQSZ128rmbkz = 8112,
-  VCVTTPS2DQSZ128rmk = 8113,
-  VCVTTPS2DQSZ128rmkz = 8114,
-  VCVTTPS2DQSZ128rr = 8115,
-  VCVTTPS2DQSZ128rrk = 8116,
-  VCVTTPS2DQSZ128rrkz = 8117,
-  VCVTTPS2DQSZ256rm = 8118,
-  VCVTTPS2DQSZ256rmb = 8119,
-  VCVTTPS2DQSZ256rmbk = 8120,
-  VCVTTPS2DQSZ256rmbkz = 8121,
-  VCVTTPS2DQSZ256rmk = 8122,
-  VCVTTPS2DQSZ256rmkz = 8123,
-  VCVTTPS2DQSZ256rr = 8124,
-  VCVTTPS2DQSZ256rrk = 8125,
-  VCVTTPS2DQSZ256rrkz = 8126,
-  VCVTTPS2DQSZrm = 8127,
-  VCVTTPS2DQSZrmb = 8128,
-  VCVTTPS2DQSZrmbk = 8129,
-  VCVTTPS2DQSZrmbkz = 8130,
-  VCVTTPS2DQSZrmk = 8131,
-  VCVTTPS2DQSZrmkz = 8132,
-  VCVTTPS2DQSZrr = 8133,
-  VCVTTPS2DQSZrrb = 8134,
-  VCVTTPS2DQSZrrbk = 8135,
-  VCVTTPS2DQSZrrbkz = 8136,
-  VCVTTPS2DQSZrrk = 8137,
-  VCVTTPS2DQSZrrkz = 8138,
-  VCVTTPS2DQYrm = 8139,
-  VCVTTPS2DQYrr = 8140,
-  VCVTTPS2DQZ128rm = 8141,
-  VCVTTPS2DQZ128rmb = 8142,
-  VCVTTPS2DQZ128rmbk = 8143,
-  VCVTTPS2DQZ128rmbkz = 8144,
-  VCVTTPS2DQZ128rmk = 8145,
-  VCVTTPS2DQZ128rmkz = 8146,
-  VCVTTPS2DQZ128rr = 8147,
-  VCVTTPS2DQZ128rrk = 8148,
-  VCVTTPS2DQZ128rrkz = 8149,
-  VCVTTPS2DQZ256rm = 8150,
-  VCVTTPS2DQZ256rmb = 8151,
-  VCVTTPS2DQZ256rmbk = 8152,
-  VCVTTPS2DQZ256rmbkz = 8153,
-  VCVTTPS2DQZ256rmk = 8154,
-  VCVTTPS2DQZ256rmkz = 8155,
-  VCVTTPS2DQZ256rr = 8156,
-  VCVTTPS2DQZ256rrk = 8157,
-  VCVTTPS2DQZ256rrkz = 8158,
-  VCVTTPS2DQZrm = 8159,
-  VCVTTPS2DQZrmb = 8160,
-  VCVTTPS2DQZrmbk = 8161,
-  VCVTTPS2DQZrmbkz = 8162,
-  VCVTTPS2DQZrmk = 8163,
-  VCVTTPS2DQZrmkz = 8164,
-  VCVTTPS2DQZrr = 8165,
-  VCVTTPS2DQZrrb = 8166,
-  VCVTTPS2DQZrrbk = 8167,
-  VCVTTPS2DQZrrbkz = 8168,
-  VCVTTPS2DQZrrk = 8169,
-  VCVTTPS2DQZrrkz = 8170,
-  VCVTTPS2DQrm = 8171,
-  VCVTTPS2DQrr = 8172,
-  VCVTTPS2IBSZ128rm = 8173,
-  VCVTTPS2IBSZ128rmb = 8174,
-  VCVTTPS2IBSZ128rmbk = 8175,
-  VCVTTPS2IBSZ128rmbkz = 8176,
-  VCVTTPS2IBSZ128rmk = 8177,
-  VCVTTPS2IBSZ128rmkz = 8178,
-  VCVTTPS2IBSZ128rr = 8179,
-  VCVTTPS2IBSZ128rrk = 8180,
-  VCVTTPS2IBSZ128rrkz = 8181,
-  VCVTTPS2IBSZ256rm = 8182,
-  VCVTTPS2IBSZ256rmb = 8183,
-  VCVTTPS2IBSZ256rmbk = 8184,
-  VCVTTPS2IBSZ256rmbkz = 8185,
-  VCVTTPS2IBSZ256rmk = 8186,
-  VCVTTPS2IBSZ256rmkz = 8187,
-  VCVTTPS2IBSZ256rr = 8188,
-  VCVTTPS2IBSZ256rrk = 8189,
-  VCVTTPS2IBSZ256rrkz = 8190,
-  VCVTTPS2IBSZrm = 8191,
-  VCVTTPS2IBSZrmb = 8192,
-  VCVTTPS2IBSZrmbk = 8193,
-  VCVTTPS2IBSZrmbkz = 8194,
-  VCVTTPS2IBSZrmk = 8195,
-  VCVTTPS2IBSZrmkz = 8196,
-  VCVTTPS2IBSZrr = 8197,
-  VCVTTPS2IBSZrrb = 8198,
-  VCVTTPS2IBSZrrbk = 8199,
-  VCVTTPS2IBSZrrbkz = 8200,
-  VCVTTPS2IBSZrrk = 8201,
-  VCVTTPS2IBSZrrkz = 8202,
-  VCVTTPS2IUBSZ128rm = 8203,
-  VCVTTPS2IUBSZ128rmb = 8204,
-  VCVTTPS2IUBSZ128rmbk = 8205,
-  VCVTTPS2IUBSZ128rmbkz = 8206,
-  VCVTTPS2IUBSZ128rmk = 8207,
-  VCVTTPS2IUBSZ128rmkz = 8208,
-  VCVTTPS2IUBSZ128rr = 8209,
-  VCVTTPS2IUBSZ128rrk = 8210,
-  VCVTTPS2IUBSZ128rrkz = 8211,
-  VCVTTPS2IUBSZ256rm = 8212,
-  VCVTTPS2IUBSZ256rmb = 8213,
-  VCVTTPS2IUBSZ256rmbk = 8214,
-  VCVTTPS2IUBSZ256rmbkz = 8215,
-  VCVTTPS2IUBSZ256rmk = 8216,
-  VCVTTPS2IUBSZ256rmkz = 8217,
-  VCVTTPS2IUBSZ256rr = 8218,
-  VCVTTPS2IUBSZ256rrk = 8219,
-  VCVTTPS2IUBSZ256rrkz = 8220,
-  VCVTTPS2IUBSZrm = 8221,
-  VCVTTPS2IUBSZrmb = 8222,
-  VCVTTPS2IUBSZrmbk = 8223,
-  VCVTTPS2IUBSZrmbkz = 8224,
-  VCVTTPS2IUBSZrmk = 8225,
-  VCVTTPS2IUBSZrmkz = 8226,
-  VCVTTPS2IUBSZrr = 8227,
-  VCVTTPS2IUBSZrrb = 8228,
-  VCVTTPS2IUBSZrrbk = 8229,
-  VCVTTPS2IUBSZrrbkz = 8230,
-  VCVTTPS2IUBSZrrk = 8231,
-  VCVTTPS2IUBSZrrkz = 8232,
-  VCVTTPS2QQSZ128rm = 8233,
-  VCVTTPS2QQSZ128rmb = 8234,
-  VCVTTPS2QQSZ128rmbk = 8235,
-  VCVTTPS2QQSZ128rmbkz = 8236,
-  VCVTTPS2QQSZ128rmk = 8237,
-  VCVTTPS2QQSZ128rmkz = 8238,
-  VCVTTPS2QQSZ128rr = 8239,
-  VCVTTPS2QQSZ128rrk = 8240,
-  VCVTTPS2QQSZ128rrkz = 8241,
-  VCVTTPS2QQSZ256rm = 8242,
-  VCVTTPS2QQSZ256rmb = 8243,
-  VCVTTPS2QQSZ256rmbk = 8244,
-  VCVTTPS2QQSZ256rmbkz = 8245,
-  VCVTTPS2QQSZ256rmk = 8246,
-  VCVTTPS2QQSZ256rmkz = 8247,
-  VCVTTPS2QQSZ256rr = 8248,
-  VCVTTPS2QQSZ256rrb = 8249,
-  VCVTTPS2QQSZ256rrbk = 8250,
-  VCVTTPS2QQSZ256rrbkz = 8251,
-  VCVTTPS2QQSZ256rrk = 8252,
-  VCVTTPS2QQSZ256rrkz = 8253,
-  VCVTTPS2QQSZrm = 8254,
-  VCVTTPS2QQSZrmb = 8255,
-  VCVTTPS2QQSZrmbk = 8256,
-  VCVTTPS2QQSZrmbkz = 8257,
-  VCVTTPS2QQSZrmk = 8258,
-  VCVTTPS2QQSZrmkz = 8259,
-  VCVTTPS2QQSZrr = 8260,
-  VCVTTPS2QQSZrrb = 8261,
-  VCVTTPS2QQSZrrbk = 8262,
-  VCVTTPS2QQSZrrbkz = 8263,
-  VCVTTPS2QQSZrrk = 8264,
-  VCVTTPS2QQSZrrkz = 8265,
-  VCVTTPS2QQZ128rm = 8266,
-  VCVTTPS2QQZ128rmb = 8267,
-  VCVTTPS2QQZ128rmbk = 8268,
-  VCVTTPS2QQZ128rmbkz = 8269,
-  VCVTTPS2QQZ128rmk = 8270,
-  VCVTTPS2QQZ128rmkz = 8271,
-  VCVTTPS2QQZ128rr = 8272,
-  VCVTTPS2QQZ128rrk = 8273,
-  VCVTTPS2QQZ128rrkz = 8274,
-  VCVTTPS2QQZ256rm = 8275,
-  VCVTTPS2QQZ256rmb = 8276,
-  VCVTTPS2QQZ256rmbk = 8277,
-  VCVTTPS2QQZ256rmbkz = 8278,
-  VCVTTPS2QQZ256rmk = 8279,
-  VCVTTPS2QQZ256rmkz = 8280,
-  VCVTTPS2QQZ256rr = 8281,
-  VCVTTPS2QQZ256rrk = 8282,
-  VCVTTPS2QQZ256rrkz = 8283,
-  VCVTTPS2QQZrm = 8284,
-  VCVTTPS2QQZrmb = 8285,
-  VCVTTPS2QQZrmbk = 8286,
-  VCVTTPS2QQZrmbkz = 8287,
-  VCVTTPS2QQZrmk = 8288,
-  VCVTTPS2QQZrmkz = 8289,
-  VCVTTPS2QQZrr = 8290,
-  VCVTTPS2QQZrrb = 8291,
-  VCVTTPS2QQZrrbk = 8292,
-  VCVTTPS2QQZrrbkz = 8293,
-  VCVTTPS2QQZrrk = 8294,
-  VCVTTPS2QQZrrkz = 8295,
-  VCVTTPS2UDQSZ128rm = 8296,
-  VCVTTPS2UDQSZ128rmb = 8297,
-  VCVTTPS2UDQSZ128rmbk = 8298,
-  VCVTTPS2UDQSZ128rmbkz = 8299,
-  VCVTTPS2UDQSZ128rmk = 8300,
-  VCVTTPS2UDQSZ128rmkz = 8301,
-  VCVTTPS2UDQSZ128rr = 8302,
-  VCVTTPS2UDQSZ128rrk = 8303,
-  VCVTTPS2UDQSZ128rrkz = 8304,
-  VCVTTPS2UDQSZ256rm = 8305,
-  VCVTTPS2UDQSZ256rmb = 8306,
-  VCVTTPS2UDQSZ256rmbk = 8307,
-  VCVTTPS2UDQSZ256rmbkz = 8308,
-  VCVTTPS2UDQSZ256rmk = 8309,
-  VCVTTPS2UDQSZ256rmkz = 8310,
-  VCVTTPS2UDQSZ256rr = 8311,
-  VCVTTPS2UDQSZ256rrk = 8312,
-  VCVTTPS2UDQSZ256rrkz = 8313,
-  VCVTTPS2UDQSZrm = 8314,
-  VCVTTPS2UDQSZrmb = 8315,
-  VCVTTPS2UDQSZrmbk = 8316,
-  VCVTTPS2UDQSZrmbkz = 8317,
-  VCVTTPS2UDQSZrmk = 8318,
-  VCVTTPS2UDQSZrmkz = 8319,
-  VCVTTPS2UDQSZrr = 8320,
-  VCVTTPS2UDQSZrrb = 8321,
-  VCVTTPS2UDQSZrrbk = 8322,
-  VCVTTPS2UDQSZrrbkz = 8323,
-  VCVTTPS2UDQSZrrk = 8324,
-  VCVTTPS2UDQSZrrkz = 8325,
-  VCVTTPS2UDQZ128rm = 8326,
-  VCVTTPS2UDQZ128rmb = 8327,
-  VCVTTPS2UDQZ128rmbk = 8328,
-  VCVTTPS2UDQZ128rmbkz = 8329,
-  VCVTTPS2UDQZ128rmk = 8330,
-  VCVTTPS2UDQZ128rmkz = 8331,
-  VCVTTPS2UDQZ128rr = 8332,
-  VCVTTPS2UDQZ128rrk = 8333,
-  VCVTTPS2UDQZ128rrkz = 8334,
-  VCVTTPS2UDQZ256rm = 8335,
-  VCVTTPS2UDQZ256rmb = 8336,
-  VCVTTPS2UDQZ256rmbk = 8337,
-  VCVTTPS2UDQZ256rmbkz = 8338,
-  VCVTTPS2UDQZ256rmk = 8339,
-  VCVTTPS2UDQZ256rmkz = 8340,
-  VCVTTPS2UDQZ256rr = 8341,
-  VCVTTPS2UDQZ256rrk = 8342,
-  VCVTTPS2UDQZ256rrkz = 8343,
-  VCVTTPS2UDQZrm = 8344,
-  VCVTTPS2UDQZrmb = 8345,
-  VCVTTPS2UDQZrmbk = 8346,
-  VCVTTPS2UDQZrmbkz = 8347,
-  VCVTTPS2UDQZrmk = 8348,
-  VCVTTPS2UDQZrmkz = 8349,
-  VCVTTPS2UDQZrr = 8350,
-  VCVTTPS2UDQZrrb = 8351,
-  VCVTTPS2UDQZrrbk = 8352,
-  VCVTTPS2UDQZrrbkz = 8353,
-  VCVTTPS2UDQZrrk = 8354,
-  VCVTTPS2UDQZrrkz = 8355,
-  VCVTTPS2UQQSZ128rm = 8356,
-  VCVTTPS2UQQSZ128rmb = 8357,
-  VCVTTPS2UQQSZ128rmbk = 8358,
-  VCVTTPS2UQQSZ128rmbkz = 8359,
-  VCVTTPS2UQQSZ128rmk = 8360,
-  VCVTTPS2UQQSZ128rmkz = 8361,
-  VCVTTPS2UQQSZ128rr = 8362,
-  VCVTTPS2UQQSZ128rrk = 8363,
-  VCVTTPS2UQQSZ128rrkz = 8364,
-  VCVTTPS2UQQSZ256rm = 8365,
-  VCVTTPS2UQQSZ256rmb = 8366,
-  VCVTTPS2UQQSZ256rmbk = 8367,
-  VCVTTPS2UQQSZ256rmbkz = 8368,
-  VCVTTPS2UQQSZ256rmk = 8369,
-  VCVTTPS2UQQSZ256rmkz = 8370,
-  VCVTTPS2UQQSZ256rr = 8371,
-  VCVTTPS2UQQSZ256rrb = 8372,
-  VCVTTPS2UQQSZ256rrbk = 8373,
-  VCVTTPS2UQQSZ256rrbkz = 8374,
-  VCVTTPS2UQQSZ256rrk = 8375,
-  VCVTTPS2UQQSZ256rrkz = 8376,
-  VCVTTPS2UQQSZrm = 8377,
-  VCVTTPS2UQQSZrmb = 8378,
-  VCVTTPS2UQQSZrmbk = 8379,
-  VCVTTPS2UQQSZrmbkz = 8380,
-  VCVTTPS2UQQSZrmk = 8381,
-  VCVTTPS2UQQSZrmkz = 8382,
-  VCVTTPS2UQQSZrr = 8383,
-  VCVTTPS2UQQSZrrb = 8384,
-  VCVTTPS2UQQSZrrbk = 8385,
-  VCVTTPS2UQQSZrrbkz = 8386,
-  VCVTTPS2UQQSZrrk = 8387,
-  VCVTTPS2UQQSZrrkz = 8388,
-  VCVTTPS2UQQZ128rm = 8389,
-  VCVTTPS2UQQZ128rmb = 8390,
-  VCVTTPS2UQQZ128rmbk = 8391,
-  VCVTTPS2UQQZ128rmbkz = 8392,
-  VCVTTPS2UQQZ128rmk = 8393,
-  VCVTTPS2UQQZ128rmkz = 8394,
-  VCVTTPS2UQQZ128rr = 8395,
-  VCVTTPS2UQQZ128rrk = 8396,
-  VCVTTPS2UQQZ128rrkz = 8397,
-  VCVTTPS2UQQZ256rm = 8398,
-  VCVTTPS2UQQZ256rmb = 8399,
-  VCVTTPS2UQQZ256rmbk = 8400,
-  VCVTTPS2UQQZ256rmbkz = 8401,
-  VCVTTPS2UQQZ256rmk = 8402,
-  VCVTTPS2UQQZ256rmkz = 8403,
-  VCVTTPS2UQQZ256rr = 8404,
-  VCVTTPS2UQQZ256rrk = 8405,
-  VCVTTPS2UQQZ256rrkz = 8406,
-  VCVTTPS2UQQZrm = 8407,
-  VCVTTPS2UQQZrmb = 8408,
-  VCVTTPS2UQQZrmbk = 8409,
-  VCVTTPS2UQQZrmbkz = 8410,
-  VCVTTPS2UQQZrmk = 8411,
-  VCVTTPS2UQQZrmkz = 8412,
-  VCVTTPS2UQQZrr = 8413,
-  VCVTTPS2UQQZrrb = 8414,
-  VCVTTPS2UQQZrrbk = 8415,
-  VCVTTPS2UQQZrrbkz = 8416,
-  VCVTTPS2UQQZrrk = 8417,
-  VCVTTPS2UQQZrrkz = 8418,
-  VCVTTSD2SI64Srm = 8419,
-  VCVTTSD2SI64Srm_Int = 8420,
-  VCVTTSD2SI64Srr = 8421,
-  VCVTTSD2SI64Srr_Int = 8422,
-  VCVTTSD2SI64Srrb_Int = 8423,
-  VCVTTSD2SI64Zrm = 8424,
-  VCVTTSD2SI64Zrm_Int = 8425,
-  VCVTTSD2SI64Zrr = 8426,
-  VCVTTSD2SI64Zrr_Int = 8427,
-  VCVTTSD2SI64Zrrb_Int = 8428,
-  VCVTTSD2SI64rm = 8429,
-  VCVTTSD2SI64rm_Int = 8430,
-  VCVTTSD2SI64rr = 8431,
-  VCVTTSD2SI64rr_Int = 8432,
-  VCVTTSD2SISrm = 8433,
-  VCVTTSD2SISrm_Int = 8434,
-  VCVTTSD2SISrr = 8435,
-  VCVTTSD2SISrr_Int = 8436,
-  VCVTTSD2SISrrb_Int = 8437,
-  VCVTTSD2SIZrm = 8438,
-  VCVTTSD2SIZrm_Int = 8439,
-  VCVTTSD2SIZrr = 8440,
-  VCVTTSD2SIZrr_Int = 8441,
-  VCVTTSD2SIZrrb_Int = 8442,
-  VCVTTSD2SIrm = 8443,
-  VCVTTSD2SIrm_Int = 8444,
-  VCVTTSD2SIrr = 8445,
-  VCVTTSD2SIrr_Int = 8446,
-  VCVTTSD2USI64Srm = 8447,
-  VCVTTSD2USI64Srm_Int = 8448,
-  VCVTTSD2USI64Srr = 8449,
-  VCVTTSD2USI64Srr_Int = 8450,
-  VCVTTSD2USI64Srrb_Int = 8451,
-  VCVTTSD2USI64Zrm = 8452,
-  VCVTTSD2USI64Zrm_Int = 8453,
-  VCVTTSD2USI64Zrr = 8454,
-  VCVTTSD2USI64Zrr_Int = 8455,
-  VCVTTSD2USI64Zrrb_Int = 8456,
-  VCVTTSD2USISrm = 8457,
-  VCVTTSD2USISrm_Int = 8458,
-  VCVTTSD2USISrr = 8459,
-  VCVTTSD2USISrr_Int = 8460,
-  VCVTTSD2USISrrb_Int = 8461,
-  VCVTTSD2USIZrm = 8462,
-  VCVTTSD2USIZrm_Int = 8463,
-  VCVTTSD2USIZrr = 8464,
-  VCVTTSD2USIZrr_Int = 8465,
-  VCVTTSD2USIZrrb_Int = 8466,
-  VCVTTSH2SI64Zrm = 8467,
-  VCVTTSH2SI64Zrm_Int = 8468,
-  VCVTTSH2SI64Zrr = 8469,
-  VCVTTSH2SI64Zrr_Int = 8470,
-  VCVTTSH2SI64Zrrb_Int = 8471,
-  VCVTTSH2SIZrm = 8472,
-  VCVTTSH2SIZrm_Int = 8473,
-  VCVTTSH2SIZrr = 8474,
-  VCVTTSH2SIZrr_Int = 8475,
-  VCVTTSH2SIZrrb_Int = 8476,
-  VCVTTSH2USI64Zrm = 8477,
-  VCVTTSH2USI64Zrm_Int = 8478,
-  VCVTTSH2USI64Zrr = 8479,
-  VCVTTSH2USI64Zrr_Int = 8480,
-  VCVTTSH2USI64Zrrb_Int = 8481,
-  VCVTTSH2USIZrm = 8482,
-  VCVTTSH2USIZrm_Int = 8483,
-  VCVTTSH2USIZrr = 8484,
-  VCVTTSH2USIZrr_Int = 8485,
-  VCVTTSH2USIZrrb_Int = 8486,
-  VCVTTSS2SI64Srm = 8487,
-  VCVTTSS2SI64Srm_Int = 8488,
-  VCVTTSS2SI64Srr = 8489,
-  VCVTTSS2SI64Srr_Int = 8490,
-  VCVTTSS2SI64Srrb_Int = 8491,
-  VCVTTSS2SI64Zrm = 8492,
-  VCVTTSS2SI64Zrm_Int = 8493,
-  VCVTTSS2SI64Zrr = 8494,
-  VCVTTSS2SI64Zrr_Int = 8495,
-  VCVTTSS2SI64Zrrb_Int = 8496,
-  VCVTTSS2SI64rm = 8497,
-  VCVTTSS2SI64rm_Int = 8498,
-  VCVTTSS2SI64rr = 8499,
-  VCVTTSS2SI64rr_Int = 8500,
-  VCVTTSS2SISrm = 8501,
-  VCVTTSS2SISrm_Int = 8502,
-  VCVTTSS2SISrr = 8503,
-  VCVTTSS2SISrr_Int = 8504,
-  VCVTTSS2SISrrb_Int = 8505,
-  VCVTTSS2SIZrm = 8506,
-  VCVTTSS2SIZrm_Int = 8507,
-  VCVTTSS2SIZrr = 8508,
-  VCVTTSS2SIZrr_Int = 8509,
-  VCVTTSS2SIZrrb_Int = 8510,
-  VCVTTSS2SIrm = 8511,
-  VCVTTSS2SIrm_Int = 8512,
-  VCVTTSS2SIrr = 8513,
-  VCVTTSS2SIrr_Int = 8514,
-  VCVTTSS2USI64Srm = 8515,
-  VCVTTSS2USI64Srm_Int = 8516,
-  VCVTTSS2USI64Srr = 8517,
-  VCVTTSS2USI64Srr_Int = 8518,
-  VCVTTSS2USI64Srrb_Int = 8519,
-  VCVTTSS2USI64Zrm = 8520,
-  VCVTTSS2USI64Zrm_Int = 8521,
-  VCVTTSS2USI64Zrr = 8522,
-  VCVTTSS2USI64Zrr_Int = 8523,
-  VCVTTSS2USI64Zrrb_Int = 8524,
-  VCVTTSS2USISrm = 8525,
-  VCVTTSS2USISrm_Int = 8526,
-  VCVTTSS2USISrr = 8527,
-  VCVTTSS2USISrr_Int = 8528,
-  VCVTTSS2USISrrb_Int = 8529,
-  VCVTTSS2USIZrm = 8530,
-  VCVTTSS2USIZrm_Int = 8531,
-  VCVTTSS2USIZrr = 8532,
-  VCVTTSS2USIZrr_Int = 8533,
-  VCVTTSS2USIZrrb_Int = 8534,
-  VCVTUDQ2PDZ128rm = 8535,
-  VCVTUDQ2PDZ128rmb = 8536,
-  VCVTUDQ2PDZ128rmbk = 8537,
-  VCVTUDQ2PDZ128rmbkz = 8538,
-  VCVTUDQ2PDZ128rmk = 8539,
-  VCVTUDQ2PDZ128rmkz = 8540,
-  VCVTUDQ2PDZ128rr = 8541,
-  VCVTUDQ2PDZ128rrk = 8542,
-  VCVTUDQ2PDZ128rrkz = 8543,
-  VCVTUDQ2PDZ256rm = 8544,
-  VCVTUDQ2PDZ256rmb = 8545,
-  VCVTUDQ2PDZ256rmbk = 8546,
-  VCVTUDQ2PDZ256rmbkz = 8547,
-  VCVTUDQ2PDZ256rmk = 8548,
-  VCVTUDQ2PDZ256rmkz = 8549,
-  VCVTUDQ2PDZ256rr = 8550,
-  VCVTUDQ2PDZ256rrk = 8551,
-  VCVTUDQ2PDZ256rrkz = 8552,
-  VCVTUDQ2PDZrm = 8553,
-  VCVTUDQ2PDZrmb = 8554,
-  VCVTUDQ2PDZrmbk = 8555,
-  VCVTUDQ2PDZrmbkz = 8556,
-  VCVTUDQ2PDZrmk = 8557,
-  VCVTUDQ2PDZrmkz = 8558,
-  VCVTUDQ2PDZrr = 8559,
-  VCVTUDQ2PDZrrk = 8560,
-  VCVTUDQ2PDZrrkz = 8561,
-  VCVTUDQ2PHZ128rm = 8562,
-  VCVTUDQ2PHZ128rmb = 8563,
-  VCVTUDQ2PHZ128rmbk = 8564,
-  VCVTUDQ2PHZ128rmbkz = 8565,
-  VCVTUDQ2PHZ128rmk = 8566,
-  VCVTUDQ2PHZ128rmkz = 8567,
-  VCVTUDQ2PHZ128rr = 8568,
-  VCVTUDQ2PHZ128rrk = 8569,
-  VCVTUDQ2PHZ128rrkz = 8570,
-  VCVTUDQ2PHZ256rm = 8571,
-  VCVTUDQ2PHZ256rmb = 8572,
-  VCVTUDQ2PHZ256rmbk = 8573,
-  VCVTUDQ2PHZ256rmbkz = 8574,
-  VCVTUDQ2PHZ256rmk = 8575,
-  VCVTUDQ2PHZ256rmkz = 8576,
-  VCVTUDQ2PHZ256rr = 8577,
-  VCVTUDQ2PHZ256rrk = 8578,
-  VCVTUDQ2PHZ256rrkz = 8579,
-  VCVTUDQ2PHZrm = 8580,
-  VCVTUDQ2PHZrmb = 8581,
-  VCVTUDQ2PHZrmbk = 8582,
-  VCVTUDQ2PHZrmbkz = 8583,
-  VCVTUDQ2PHZrmk = 8584,
-  VCVTUDQ2PHZrmkz = 8585,
-  VCVTUDQ2PHZrr = 8586,
-  VCVTUDQ2PHZrrb = 8587,
-  VCVTUDQ2PHZrrbk = 8588,
-  VCVTUDQ2PHZrrbkz = 8589,
-  VCVTUDQ2PHZrrk = 8590,
-  VCVTUDQ2PHZrrkz = 8591,
-  VCVTUDQ2PSZ128rm = 8592,
-  VCVTUDQ2PSZ128rmb = 8593,
-  VCVTUDQ2PSZ128rmbk = 8594,
-  VCVTUDQ2PSZ128rmbkz = 8595,
-  VCVTUDQ2PSZ128rmk = 8596,
-  VCVTUDQ2PSZ128rmkz = 8597,
-  VCVTUDQ2PSZ128rr = 8598,
-  VCVTUDQ2PSZ128rrk = 8599,
-  VCVTUDQ2PSZ128rrkz = 8600,
-  VCVTUDQ2PSZ256rm = 8601,
-  VCVTUDQ2PSZ256rmb = 8602,
-  VCVTUDQ2PSZ256rmbk = 8603,
-  VCVTUDQ2PSZ256rmbkz = 8604,
-  VCVTUDQ2PSZ256rmk = 8605,
-  VCVTUDQ2PSZ256rmkz = 8606,
-  VCVTUDQ2PSZ256rr = 8607,
-  VCVTUDQ2PSZ256rrk = 8608,
-  VCVTUDQ2PSZ256rrkz = 8609,
-  VCVTUDQ2PSZrm = 8610,
-  VCVTUDQ2PSZrmb = 8611,
-  VCVTUDQ2PSZrmbk = 8612,
-  VCVTUDQ2PSZrmbkz = 8613,
-  VCVTUDQ2PSZrmk = 8614,
-  VCVTUDQ2PSZrmkz = 8615,
-  VCVTUDQ2PSZrr = 8616,
-  VCVTUDQ2PSZrrb = 8617,
-  VCVTUDQ2PSZrrbk = 8618,
-  VCVTUDQ2PSZrrbkz = 8619,
-  VCVTUDQ2PSZrrk = 8620,
-  VCVTUDQ2PSZrrkz = 8621,
-  VCVTUQQ2PDZ128rm = 8622,
-  VCVTUQQ2PDZ128rmb = 8623,
-  VCVTUQQ2PDZ128rmbk = 8624,
-  VCVTUQQ2PDZ128rmbkz = 8625,
-  VCVTUQQ2PDZ128rmk = 8626,
-  VCVTUQQ2PDZ128rmkz = 8627,
-  VCVTUQQ2PDZ128rr = 8628,
-  VCVTUQQ2PDZ128rrk = 8629,
-  VCVTUQQ2PDZ128rrkz = 8630,
-  VCVTUQQ2PDZ256rm = 8631,
-  VCVTUQQ2PDZ256rmb = 8632,
-  VCVTUQQ2PDZ256rmbk = 8633,
-  VCVTUQQ2PDZ256rmbkz = 8634,
-  VCVTUQQ2PDZ256rmk = 8635,
-  VCVTUQQ2PDZ256rmkz = 8636,
-  VCVTUQQ2PDZ256rr = 8637,
-  VCVTUQQ2PDZ256rrk = 8638,
-  VCVTUQQ2PDZ256rrkz = 8639,
-  VCVTUQQ2PDZrm = 8640,
-  VCVTUQQ2PDZrmb = 8641,
-  VCVTUQQ2PDZrmbk = 8642,
-  VCVTUQQ2PDZrmbkz = 8643,
-  VCVTUQQ2PDZrmk = 8644,
-  VCVTUQQ2PDZrmkz = 8645,
-  VCVTUQQ2PDZrr = 8646,
-  VCVTUQQ2PDZrrb = 8647,
-  VCVTUQQ2PDZrrbk = 8648,
-  VCVTUQQ2PDZrrbkz = 8649,
-  VCVTUQQ2PDZrrk = 8650,
-  VCVTUQQ2PDZrrkz = 8651,
-  VCVTUQQ2PHZ128rm = 8652,
-  VCVTUQQ2PHZ128rmb = 8653,
-  VCVTUQQ2PHZ128rmbk = 8654,
-  VCVTUQQ2PHZ128rmbkz = 8655,
-  VCVTUQQ2PHZ128rmk = 8656,
-  VCVTUQQ2PHZ128rmkz = 8657,
-  VCVTUQQ2PHZ128rr = 8658,
-  VCVTUQQ2PHZ128rrk = 8659,
-  VCVTUQQ2PHZ128rrkz = 8660,
-  VCVTUQQ2PHZ256rm = 8661,
-  VCVTUQQ2PHZ256rmb = 8662,
-  VCVTUQQ2PHZ256rmbk = 8663,
-  VCVTUQQ2PHZ256rmbkz = 8664,
-  VCVTUQQ2PHZ256rmk = 8665,
-  VCVTUQQ2PHZ256rmkz = 8666,
-  VCVTUQQ2PHZ256rr = 8667,
-  VCVTUQQ2PHZ256rrk = 8668,
-  VCVTUQQ2PHZ256rrkz = 8669,
-  VCVTUQQ2PHZrm = 8670,
-  VCVTUQQ2PHZrmb = 8671,
-  VCVTUQQ2PHZrmbk = 8672,
-  VCVTUQQ2PHZrmbkz = 8673,
-  VCVTUQQ2PHZrmk = 8674,
-  VCVTUQQ2PHZrmkz = 8675,
-  VCVTUQQ2PHZrr = 8676,
-  VCVTUQQ2PHZrrb = 8677,
-  VCVTUQQ2PHZrrbk = 8678,
-  VCVTUQQ2PHZrrbkz = 8679,
-  VCVTUQQ2PHZrrk = 8680,
-  VCVTUQQ2PHZrrkz = 8681,
-  VCVTUQQ2PSZ128rm = 8682,
-  VCVTUQQ2PSZ128rmb = 8683,
-  VCVTUQQ2PSZ128rmbk = 8684,
-  VCVTUQQ2PSZ128rmbkz = 8685,
-  VCVTUQQ2PSZ128rmk = 8686,
-  VCVTUQQ2PSZ128rmkz = 8687,
-  VCVTUQQ2PSZ128rr = 8688,
-  VCVTUQQ2PSZ128rrk = 8689,
-  VCVTUQQ2PSZ128rrkz = 8690,
-  VCVTUQQ2PSZ256rm = 8691,
-  VCVTUQQ2PSZ256rmb = 8692,
-  VCVTUQQ2PSZ256rmbk = 8693,
-  VCVTUQQ2PSZ256rmbkz = 8694,
-  VCVTUQQ2PSZ256rmk = 8695,
-  VCVTUQQ2PSZ256rmkz = 8696,
-  VCVTUQQ2PSZ256rr = 8697,
-  VCVTUQQ2PSZ256rrk = 8698,
-  VCVTUQQ2PSZ256rrkz = 8699,
-  VCVTUQQ2PSZrm = 8700,
-  VCVTUQQ2PSZrmb = 8701,
-  VCVTUQQ2PSZrmbk = 8702,
-  VCVTUQQ2PSZrmbkz = 8703,
-  VCVTUQQ2PSZrmk = 8704,
-  VCVTUQQ2PSZrmkz = 8705,
-  VCVTUQQ2PSZrr = 8706,
-  VCVTUQQ2PSZrrb = 8707,
-  VCVTUQQ2PSZrrbk = 8708,
-  VCVTUQQ2PSZrrbkz = 8709,
-  VCVTUQQ2PSZrrk = 8710,
-  VCVTUQQ2PSZrrkz = 8711,
-  VCVTUSI2SDZrm = 8712,
-  VCVTUSI2SDZrm_Int = 8713,
-  VCVTUSI2SDZrr = 8714,
-  VCVTUSI2SDZrr_Int = 8715,
-  VCVTUSI2SHZrm = 8716,
-  VCVTUSI2SHZrm_Int = 8717,
-  VCVTUSI2SHZrr = 8718,
-  VCVTUSI2SHZrr_Int = 8719,
-  VCVTUSI2SHZrrb_Int = 8720,
-  VCVTUSI2SSZrm = 8721,
-  VCVTUSI2SSZrm_Int = 8722,
-  VCVTUSI2SSZrr = 8723,
-  VCVTUSI2SSZrr_Int = 8724,
-  VCVTUSI2SSZrrb_Int = 8725,
-  VCVTUSI642SDZrm = 8726,
-  VCVTUSI642SDZrm_Int = 8727,
-  VCVTUSI642SDZrr = 8728,
-  VCVTUSI642SDZrr_Int = 8729,
-  VCVTUSI642SDZrrb_Int = 8730,
-  VCVTUSI642SHZrm = 8731,
-  VCVTUSI642SHZrm_Int = 8732,
-  VCVTUSI642SHZrr = 8733,
-  VCVTUSI642SHZrr_Int = 8734,
-  VCVTUSI642SHZrrb_Int = 8735,
-  VCVTUSI642SSZrm = 8736,
-  VCVTUSI642SSZrm_Int = 8737,
-  VCVTUSI642SSZrr = 8738,
-  VCVTUSI642SSZrr_Int = 8739,
-  VCVTUSI642SSZrrb_Int = 8740,
-  VCVTUW2PHZ128rm = 8741,
-  VCVTUW2PHZ128rmb = 8742,
-  VCVTUW2PHZ128rmbk = 8743,
-  VCVTUW2PHZ128rmbkz = 8744,
-  VCVTUW2PHZ128rmk = 8745,
-  VCVTUW2PHZ128rmkz = 8746,
-  VCVTUW2PHZ128rr = 8747,
-  VCVTUW2PHZ128rrk = 8748,
-  VCVTUW2PHZ128rrkz = 8749,
-  VCVTUW2PHZ256rm = 8750,
-  VCVTUW2PHZ256rmb = 8751,
-  VCVTUW2PHZ256rmbk = 8752,
-  VCVTUW2PHZ256rmbkz = 8753,
-  VCVTUW2PHZ256rmk = 8754,
-  VCVTUW2PHZ256rmkz = 8755,
-  VCVTUW2PHZ256rr = 8756,
-  VCVTUW2PHZ256rrk = 8757,
-  VCVTUW2PHZ256rrkz = 8758,
-  VCVTUW2PHZrm = 8759,
-  VCVTUW2PHZrmb = 8760,
-  VCVTUW2PHZrmbk = 8761,
-  VCVTUW2PHZrmbkz = 8762,
-  VCVTUW2PHZrmk = 8763,
-  VCVTUW2PHZrmkz = 8764,
-  VCVTUW2PHZrr = 8765,
-  VCVTUW2PHZrrb = 8766,
-  VCVTUW2PHZrrbk = 8767,
-  VCVTUW2PHZrrbkz = 8768,
-  VCVTUW2PHZrrk = 8769,
-  VCVTUW2PHZrrkz = 8770,
-  VCVTW2PHZ128rm = 8771,
-  VCVTW2PHZ128rmb = 8772,
-  VCVTW2PHZ128rmbk = 8773,
-  VCVTW2PHZ128rmbkz = 8774,
-  VCVTW2PHZ128rmk = 8775,
-  VCVTW2PHZ128rmkz = 8776,
-  VCVTW2PHZ128rr = 8777,
-  VCVTW2PHZ128rrk = 8778,
-  VCVTW2PHZ128rrkz = 8779,
-  VCVTW2PHZ256rm = 8780,
-  VCVTW2PHZ256rmb = 8781,
-  VCVTW2PHZ256rmbk = 8782,
-  VCVTW2PHZ256rmbkz = 8783,
-  VCVTW2PHZ256rmk = 8784,
-  VCVTW2PHZ256rmkz = 8785,
-  VCVTW2PHZ256rr = 8786,
-  VCVTW2PHZ256rrk = 8787,
-  VCVTW2PHZ256rrkz = 8788,
-  VCVTW2PHZrm = 8789,
-  VCVTW2PHZrmb = 8790,
-  VCVTW2PHZrmbk = 8791,
-  VCVTW2PHZrmbkz = 8792,
-  VCVTW2PHZrmk = 8793,
-  VCVTW2PHZrmkz = 8794,
-  VCVTW2PHZrr = 8795,
-  VCVTW2PHZrrb = 8796,
-  VCVTW2PHZrrbk = 8797,
-  VCVTW2PHZrrbkz = 8798,
-  VCVTW2PHZrrk = 8799,
-  VCVTW2PHZrrkz = 8800,
-  VDBPSADBWZ128rmi = 8801,
-  VDBPSADBWZ128rmik = 8802,
-  VDBPSADBWZ128rmikz = 8803,
-  VDBPSADBWZ128rri = 8804,
-  VDBPSADBWZ128rrik = 8805,
-  VDBPSADBWZ128rrikz = 8806,
-  VDBPSADBWZ256rmi = 8807,
-  VDBPSADBWZ256rmik = 8808,
-  VDBPSADBWZ256rmikz = 8809,
-  VDBPSADBWZ256rri = 8810,
-  VDBPSADBWZ256rrik = 8811,
-  VDBPSADBWZ256rrikz = 8812,
-  VDBPSADBWZrmi = 8813,
-  VDBPSADBWZrmik = 8814,
-  VDBPSADBWZrmikz = 8815,
-  VDBPSADBWZrri = 8816,
-  VDBPSADBWZrrik = 8817,
-  VDBPSADBWZrrikz = 8818,
-  VDIVBF16Z128rm = 8819,
-  VDIVBF16Z128rmb = 8820,
-  VDIVBF16Z128rmbk = 8821,
-  VDIVBF16Z128rmbkz = 8822,
-  VDIVBF16Z128rmk = 8823,
-  VDIVBF16Z128rmkz = 8824,
-  VDIVBF16Z128rr = 8825,
-  VDIVBF16Z128rrk = 8826,
-  VDIVBF16Z128rrkz = 8827,
-  VDIVBF16Z256rm = 8828,
-  VDIVBF16Z256rmb = 8829,
-  VDIVBF16Z256rmbk = 8830,
-  VDIVBF16Z256rmbkz = 8831,
-  VDIVBF16Z256rmk = 8832,
-  VDIVBF16Z256rmkz = 8833,
-  VDIVBF16Z256rr = 8834,
-  VDIVBF16Z256rrk = 8835,
-  VDIVBF16Z256rrkz = 8836,
-  VDIVBF16Zrm = 8837,
-  VDIVBF16Zrmb = 8838,
-  VDIVBF16Zrmbk = 8839,
-  VDIVBF16Zrmbkz = 8840,
-  VDIVBF16Zrmk = 8841,
-  VDIVBF16Zrmkz = 8842,
-  VDIVBF16Zrr = 8843,
-  VDIVBF16Zrrk = 8844,
-  VDIVBF16Zrrkz = 8845,
-  VDIVPDYrm = 8846,
-  VDIVPDYrr = 8847,
-  VDIVPDZ128rm = 8848,
-  VDIVPDZ128rmb = 8849,
-  VDIVPDZ128rmbk = 8850,
-  VDIVPDZ128rmbkz = 8851,
-  VDIVPDZ128rmk = 8852,
-  VDIVPDZ128rmkz = 8853,
-  VDIVPDZ128rr = 8854,
-  VDIVPDZ128rrk = 8855,
-  VDIVPDZ128rrkz = 8856,
-  VDIVPDZ256rm = 8857,
-  VDIVPDZ256rmb = 8858,
-  VDIVPDZ256rmbk = 8859,
-  VDIVPDZ256rmbkz = 8860,
-  VDIVPDZ256rmk = 8861,
-  VDIVPDZ256rmkz = 8862,
-  VDIVPDZ256rr = 8863,
-  VDIVPDZ256rrk = 8864,
-  VDIVPDZ256rrkz = 8865,
-  VDIVPDZrm = 8866,
-  VDIVPDZrmb = 8867,
-  VDIVPDZrmbk = 8868,
-  VDIVPDZrmbkz = 8869,
-  VDIVPDZrmk = 8870,
-  VDIVPDZrmkz = 8871,
-  VDIVPDZrr = 8872,
-  VDIVPDZrrb = 8873,
-  VDIVPDZrrbk = 8874,
-  VDIVPDZrrbkz = 8875,
-  VDIVPDZrrk = 8876,
-  VDIVPDZrrkz = 8877,
-  VDIVPDrm = 8878,
-  VDIVPDrr = 8879,
-  VDIVPHZ128rm = 8880,
-  VDIVPHZ128rmb = 8881,
-  VDIVPHZ128rmbk = 8882,
-  VDIVPHZ128rmbkz = 8883,
-  VDIVPHZ128rmk = 8884,
-  VDIVPHZ128rmkz = 8885,
-  VDIVPHZ128rr = 8886,
-  VDIVPHZ128rrk = 8887,
-  VDIVPHZ128rrkz = 8888,
-  VDIVPHZ256rm = 8889,
-  VDIVPHZ256rmb = 8890,
-  VDIVPHZ256rmbk = 8891,
-  VDIVPHZ256rmbkz = 8892,
-  VDIVPHZ256rmk = 8893,
-  VDIVPHZ256rmkz = 8894,
-  VDIVPHZ256rr = 8895,
-  VDIVPHZ256rrk = 8896,
-  VDIVPHZ256rrkz = 8897,
-  VDIVPHZrm = 8898,
-  VDIVPHZrmb = 8899,
-  VDIVPHZrmbk = 8900,
-  VDIVPHZrmbkz = 8901,
-  VDIVPHZrmk = 8902,
-  VDIVPHZrmkz = 8903,
-  VDIVPHZrr = 8904,
-  VDIVPHZrrb = 8905,
-  VDIVPHZrrbk = 8906,
-  VDIVPHZrrbkz = 8907,
-  VDIVPHZrrk = 8908,
-  VDIVPHZrrkz = 8909,
-  VDIVPSYrm = 8910,
-  VDIVPSYrr = 8911,
-  VDIVPSZ128rm = 8912,
-  VDIVPSZ128rmb = 8913,
-  VDIVPSZ128rmbk = 8914,
-  VDIVPSZ128rmbkz = 8915,
-  VDIVPSZ128rmk = 8916,
-  VDIVPSZ128rmkz = 8917,
-  VDIVPSZ128rr = 8918,
-  VDIVPSZ128rrk = 8919,
-  VDIVPSZ128rrkz = 8920,
-  VDIVPSZ256rm = 8921,
-  VDIVPSZ256rmb = 8922,
-  VDIVPSZ256rmbk = 8923,
-  VDIVPSZ256rmbkz = 8924,
-  VDIVPSZ256rmk = 8925,
-  VDIVPSZ256rmkz = 8926,
-  VDIVPSZ256rr = 8927,
-  VDIVPSZ256rrk = 8928,
-  VDIVPSZ256rrkz = 8929,
-  VDIVPSZrm = 8930,
-  VDIVPSZrmb = 8931,
-  VDIVPSZrmbk = 8932,
-  VDIVPSZrmbkz = 8933,
-  VDIVPSZrmk = 8934,
-  VDIVPSZrmkz = 8935,
-  VDIVPSZrr = 8936,
-  VDIVPSZrrb = 8937,
-  VDIVPSZrrbk = 8938,
-  VDIVPSZrrbkz = 8939,
-  VDIVPSZrrk = 8940,
-  VDIVPSZrrkz = 8941,
-  VDIVPSrm = 8942,
-  VDIVPSrr = 8943,
-  VDIVSDZrm = 8944,
-  VDIVSDZrm_Int = 8945,
-  VDIVSDZrmk_Int = 8946,
-  VDIVSDZrmkz_Int = 8947,
-  VDIVSDZrr = 8948,
-  VDIVSDZrr_Int = 8949,
-  VDIVSDZrrb_Int = 8950,
-  VDIVSDZrrbk_Int = 8951,
-  VDIVSDZrrbkz_Int = 8952,
-  VDIVSDZrrk_Int = 8953,
-  VDIVSDZrrkz_Int = 8954,
-  VDIVSDrm = 8955,
-  VDIVSDrm_Int = 8956,
-  VDIVSDrr = 8957,
-  VDIVSDrr_Int = 8958,
-  VDIVSHZrm = 8959,
-  VDIVSHZrm_Int = 8960,
-  VDIVSHZrmk_Int = 8961,
-  VDIVSHZrmkz_Int = 8962,
-  VDIVSHZrr = 8963,
-  VDIVSHZrr_Int = 8964,
-  VDIVSHZrrb_Int = 8965,
-  VDIVSHZrrbk_Int = 8966,
-  VDIVSHZrrbkz_Int = 8967,
-  VDIVSHZrrk_Int = 8968,
-  VDIVSHZrrkz_Int = 8969,
-  VDIVSSZrm = 8970,
-  VDIVSSZrm_Int = 8971,
-  VDIVSSZrmk_Int = 8972,
-  VDIVSSZrmkz_Int = 8973,
-  VDIVSSZrr = 8974,
-  VDIVSSZrr_Int = 8975,
-  VDIVSSZrrb_Int = 8976,
-  VDIVSSZrrbk_Int = 8977,
-  VDIVSSZrrbkz_Int = 8978,
-  VDIVSSZrrk_Int = 8979,
-  VDIVSSZrrkz_Int = 8980,
-  VDIVSSrm = 8981,
-  VDIVSSrm_Int = 8982,
-  VDIVSSrr = 8983,
-  VDIVSSrr_Int = 8984,
-  VDPBF16PSZ128m = 8985,
-  VDPBF16PSZ128mb = 8986,
-  VDPBF16PSZ128mbk = 8987,
-  VDPBF16PSZ128mbkz = 8988,
-  VDPBF16PSZ128mk = 8989,
-  VDPBF16PSZ128mkz = 8990,
-  VDPBF16PSZ128r = 8991,
-  VDPBF16PSZ128rk = 8992,
-  VDPBF16PSZ128rkz = 8993,
-  VDPBF16PSZ256m = 8994,
-  VDPBF16PSZ256mb = 8995,
-  VDPBF16PSZ256mbk = 8996,
-  VDPBF16PSZ256mbkz = 8997,
-  VDPBF16PSZ256mk = 8998,
-  VDPBF16PSZ256mkz = 8999,
-  VDPBF16PSZ256r = 9000,
-  VDPBF16PSZ256rk = 9001,
-  VDPBF16PSZ256rkz = 9002,
-  VDPBF16PSZm = 9003,
-  VDPBF16PSZmb = 9004,
-  VDPBF16PSZmbk = 9005,
-  VDPBF16PSZmbkz = 9006,
-  VDPBF16PSZmk = 9007,
-  VDPBF16PSZmkz = 9008,
-  VDPBF16PSZr = 9009,
-  VDPBF16PSZrk = 9010,
-  VDPBF16PSZrkz = 9011,
-  VDPPDrmi = 9012,
-  VDPPDrri = 9013,
-  VDPPHPSZ128m = 9014,
-  VDPPHPSZ128mb = 9015,
-  VDPPHPSZ128mbk = 9016,
-  VDPPHPSZ128mbkz = 9017,
-  VDPPHPSZ128mk = 9018,
-  VDPPHPSZ128mkz = 9019,
-  VDPPHPSZ128r = 9020,
-  VDPPHPSZ128rk = 9021,
-  VDPPHPSZ128rkz = 9022,
-  VDPPHPSZ256m = 9023,
-  VDPPHPSZ256mb = 9024,
-  VDPPHPSZ256mbk = 9025,
-  VDPPHPSZ256mbkz = 9026,
-  VDPPHPSZ256mk = 9027,
-  VDPPHPSZ256mkz = 9028,
-  VDPPHPSZ256r = 9029,
-  VDPPHPSZ256rk = 9030,
-  VDPPHPSZ256rkz = 9031,
-  VDPPHPSZm = 9032,
-  VDPPHPSZmb = 9033,
-  VDPPHPSZmbk = 9034,
-  VDPPHPSZmbkz = 9035,
-  VDPPHPSZmk = 9036,
-  VDPPHPSZmkz = 9037,
-  VDPPHPSZr = 9038,
-  VDPPHPSZrk = 9039,
-  VDPPHPSZrkz = 9040,
-  VDPPSYrmi = 9041,
-  VDPPSYrri = 9042,
-  VDPPSrmi = 9043,
-  VDPPSrri = 9044,
-  VERRm = 9045,
-  VERRr = 9046,
-  VERWm = 9047,
-  VERWr = 9048,
-  VEXP2PDZm = 9049,
-  VEXP2PDZmb = 9050,
-  VEXP2PDZmbk = 9051,
-  VEXP2PDZmbkz = 9052,
-  VEXP2PDZmk = 9053,
-  VEXP2PDZmkz = 9054,
-  VEXP2PDZr = 9055,
-  VEXP2PDZrb = 9056,
-  VEXP2PDZrbk = 9057,
-  VEXP2PDZrbkz = 9058,
-  VEXP2PDZrk = 9059,
-  VEXP2PDZrkz = 9060,
-  VEXP2PSZm = 9061,
-  VEXP2PSZmb = 9062,
-  VEXP2PSZmbk = 9063,
-  VEXP2PSZmbkz = 9064,
-  VEXP2PSZmk = 9065,
-  VEXP2PSZmkz = 9066,
-  VEXP2PSZr = 9067,
-  VEXP2PSZrb = 9068,
-  VEXP2PSZrbk = 9069,
-  VEXP2PSZrbkz = 9070,
-  VEXP2PSZrk = 9071,
-  VEXP2PSZrkz = 9072,
-  VEXPANDPDZ128rm = 9073,
-  VEXPANDPDZ128rmk = 9074,
-  VEXPANDPDZ128rmkz = 9075,
-  VEXPANDPDZ128rr = 9076,
-  VEXPANDPDZ128rrk = 9077,
-  VEXPANDPDZ128rrkz = 9078,
-  VEXPANDPDZ256rm = 9079,
-  VEXPANDPDZ256rmk = 9080,
-  VEXPANDPDZ256rmkz = 9081,
-  VEXPANDPDZ256rr = 9082,
-  VEXPANDPDZ256rrk = 9083,
-  VEXPANDPDZ256rrkz = 9084,
-  VEXPANDPDZrm = 9085,
-  VEXPANDPDZrmk = 9086,
-  VEXPANDPDZrmkz = 9087,
-  VEXPANDPDZrr = 9088,
-  VEXPANDPDZrrk = 9089,
-  VEXPANDPDZrrkz = 9090,
-  VEXPANDPSZ128rm = 9091,
-  VEXPANDPSZ128rmk = 9092,
-  VEXPANDPSZ128rmkz = 9093,
-  VEXPANDPSZ128rr = 9094,
-  VEXPANDPSZ128rrk = 9095,
-  VEXPANDPSZ128rrkz = 9096,
-  VEXPANDPSZ256rm = 9097,
-  VEXPANDPSZ256rmk = 9098,
-  VEXPANDPSZ256rmkz = 9099,
-  VEXPANDPSZ256rr = 9100,
-  VEXPANDPSZ256rrk = 9101,
-  VEXPANDPSZ256rrkz = 9102,
-  VEXPANDPSZrm = 9103,
-  VEXPANDPSZrmk = 9104,
-  VEXPANDPSZrmkz = 9105,
-  VEXPANDPSZrr = 9106,
-  VEXPANDPSZrrk = 9107,
-  VEXPANDPSZrrkz = 9108,
-  VEXTRACTF128mri = 9109,
-  VEXTRACTF128rri = 9110,
-  VEXTRACTF32X4Z256mri = 9111,
-  VEXTRACTF32X4Z256mrik = 9112,
-  VEXTRACTF32X4Z256rri = 9113,
-  VEXTRACTF32X4Z256rrik = 9114,
-  VEXTRACTF32X4Z256rrikz = 9115,
-  VEXTRACTF32X4Zmri = 9116,
-  VEXTRACTF32X4Zmrik = 9117,
-  VEXTRACTF32X4Zrri = 9118,
-  VEXTRACTF32X4Zrrik = 9119,
-  VEXTRACTF32X4Zrrikz = 9120,
-  VEXTRACTF32X8Zmri = 9121,
-  VEXTRACTF32X8Zmrik = 9122,
-  VEXTRACTF32X8Zrri = 9123,
-  VEXTRACTF32X8Zrrik = 9124,
-  VEXTRACTF32X8Zrrikz = 9125,
-  VEXTRACTF64X2Z256mri = 9126,
-  VEXTRACTF64X2Z256mrik = 9127,
-  VEXTRACTF64X2Z256rri = 9128,
-  VEXTRACTF64X2Z256rrik = 9129,
-  VEXTRACTF64X2Z256rrikz = 9130,
-  VEXTRACTF64X2Zmri = 9131,
-  VEXTRACTF64X2Zmrik = 9132,
-  VEXTRACTF64X2Zrri = 9133,
-  VEXTRACTF64X2Zrrik = 9134,
-  VEXTRACTF64X2Zrrikz = 9135,
-  VEXTRACTF64X4Zmri = 9136,
-  VEXTRACTF64X4Zmrik = 9137,
-  VEXTRACTF64X4Zrri = 9138,
-  VEXTRACTF64X4Zrrik = 9139,
-  VEXTRACTF64X4Zrrikz = 9140,
-  VEXTRACTI128mri = 9141,
-  VEXTRACTI128rri = 9142,
-  VEXTRACTI32X4Z256mri = 9143,
-  VEXTRACTI32X4Z256mrik = 9144,
-  VEXTRACTI32X4Z256rri = 9145,
-  VEXTRACTI32X4Z256rrik = 9146,
-  VEXTRACTI32X4Z256rrikz = 9147,
-  VEXTRACTI32X4Zmri = 9148,
-  VEXTRACTI32X4Zmrik = 9149,
-  VEXTRACTI32X4Zrri = 9150,
-  VEXTRACTI32X4Zrrik = 9151,
-  VEXTRACTI32X4Zrrikz = 9152,
-  VEXTRACTI32X8Zmri = 9153,
-  VEXTRACTI32X8Zmrik = 9154,
-  VEXTRACTI32X8Zrri = 9155,
-  VEXTRACTI32X8Zrrik = 9156,
-  VEXTRACTI32X8Zrrikz = 9157,
-  VEXTRACTI64X2Z256mri = 9158,
-  VEXTRACTI64X2Z256mrik = 9159,
-  VEXTRACTI64X2Z256rri = 9160,
-  VEXTRACTI64X2Z256rrik = 9161,
-  VEXTRACTI64X2Z256rrikz = 9162,
-  VEXTRACTI64X2Zmri = 9163,
-  VEXTRACTI64X2Zmrik = 9164,
-  VEXTRACTI64X2Zrri = 9165,
-  VEXTRACTI64X2Zrrik = 9166,
-  VEXTRACTI64X2Zrrikz = 9167,
-  VEXTRACTI64X4Zmri = 9168,
-  VEXTRACTI64X4Zmrik = 9169,
-  VEXTRACTI64X4Zrri = 9170,
-  VEXTRACTI64X4Zrrik = 9171,
-  VEXTRACTI64X4Zrrikz = 9172,
-  VEXTRACTPSZmri = 9173,
-  VEXTRACTPSZrri = 9174,
-  VEXTRACTPSmri = 9175,
-  VEXTRACTPSrri = 9176,
-  VFCMADDCPHZ128m = 9177,
-  VFCMADDCPHZ128mb = 9178,
-  VFCMADDCPHZ128mbk = 9179,
-  VFCMADDCPHZ128mbkz = 9180,
-  VFCMADDCPHZ128mk = 9181,
-  VFCMADDCPHZ128mkz = 9182,
-  VFCMADDCPHZ128r = 9183,
-  VFCMADDCPHZ128rk = 9184,
-  VFCMADDCPHZ128rkz = 9185,
-  VFCMADDCPHZ256m = 9186,
-  VFCMADDCPHZ256mb = 9187,
-  VFCMADDCPHZ256mbk = 9188,
-  VFCMADDCPHZ256mbkz = 9189,
-  VFCMADDCPHZ256mk = 9190,
-  VFCMADDCPHZ256mkz = 9191,
-  VFCMADDCPHZ256r = 9192,
-  VFCMADDCPHZ256rk = 9193,
-  VFCMADDCPHZ256rkz = 9194,
-  VFCMADDCPHZm = 9195,
-  VFCMADDCPHZmb = 9196,
-  VFCMADDCPHZmbk = 9197,
-  VFCMADDCPHZmbkz = 9198,
-  VFCMADDCPHZmk = 9199,
-  VFCMADDCPHZmkz = 9200,
-  VFCMADDCPHZr = 9201,
-  VFCMADDCPHZrb = 9202,
-  VFCMADDCPHZrbk = 9203,
-  VFCMADDCPHZrbkz = 9204,
-  VFCMADDCPHZrk = 9205,
-  VFCMADDCPHZrkz = 9206,
-  VFCMADDCSHZm = 9207,
-  VFCMADDCSHZmk = 9208,
-  VFCMADDCSHZmkz = 9209,
-  VFCMADDCSHZr = 9210,
-  VFCMADDCSHZrb = 9211,
-  VFCMADDCSHZrbk = 9212,
-  VFCMADDCSHZrbkz = 9213,
-  VFCMADDCSHZrk = 9214,
-  VFCMADDCSHZrkz = 9215,
-  VFCMULCPHZ128rm = 9216,
-  VFCMULCPHZ128rmb = 9217,
-  VFCMULCPHZ128rmbk = 9218,
-  VFCMULCPHZ128rmbkz = 9219,
-  VFCMULCPHZ128rmk = 9220,
-  VFCMULCPHZ128rmkz = 9221,
-  VFCMULCPHZ128rr = 9222,
-  VFCMULCPHZ128rrk = 9223,
-  VFCMULCPHZ128rrkz = 9224,
-  VFCMULCPHZ256rm = 9225,
-  VFCMULCPHZ256rmb = 9226,
-  VFCMULCPHZ256rmbk = 9227,
-  VFCMULCPHZ256rmbkz = 9228,
-  VFCMULCPHZ256rmk = 9229,
-  VFCMULCPHZ256rmkz = 9230,
-  VFCMULCPHZ256rr = 9231,
-  VFCMULCPHZ256rrk = 9232,
-  VFCMULCPHZ256rrkz = 9233,
-  VFCMULCPHZrm = 9234,
-  VFCMULCPHZrmb = 9235,
-  VFCMULCPHZrmbk = 9236,
-  VFCMULCPHZrmbkz = 9237,
-  VFCMULCPHZrmk = 9238,
-  VFCMULCPHZrmkz = 9239,
-  VFCMULCPHZrr = 9240,
-  VFCMULCPHZrrb = 9241,
-  VFCMULCPHZrrbk = 9242,
-  VFCMULCPHZrrbkz = 9243,
-  VFCMULCPHZrrk = 9244,
-  VFCMULCPHZrrkz = 9245,
-  VFCMULCSHZrm = 9246,
-  VFCMULCSHZrmk = 9247,
-  VFCMULCSHZrmkz = 9248,
-  VFCMULCSHZrr = 9249,
-  VFCMULCSHZrrb = 9250,
-  VFCMULCSHZrrbk = 9251,
-  VFCMULCSHZrrbkz = 9252,
-  VFCMULCSHZrrk = 9253,
-  VFCMULCSHZrrkz = 9254,
-  VFIXUPIMMPDZ128rmbi = 9255,
-  VFIXUPIMMPDZ128rmbik = 9256,
-  VFIXUPIMMPDZ128rmbikz = 9257,
-  VFIXUPIMMPDZ128rmi = 9258,
-  VFIXUPIMMPDZ128rmik = 9259,
-  VFIXUPIMMPDZ128rmikz = 9260,
-  VFIXUPIMMPDZ128rri = 9261,
-  VFIXUPIMMPDZ128rrik = 9262,
-  VFIXUPIMMPDZ128rrikz = 9263,
-  VFIXUPIMMPDZ256rmbi = 9264,
-  VFIXUPIMMPDZ256rmbik = 9265,
-  VFIXUPIMMPDZ256rmbikz = 9266,
-  VFIXUPIMMPDZ256rmi = 9267,
-  VFIXUPIMMPDZ256rmik = 9268,
-  VFIXUPIMMPDZ256rmikz = 9269,
-  VFIXUPIMMPDZ256rri = 9270,
-  VFIXUPIMMPDZ256rrik = 9271,
-  VFIXUPIMMPDZ256rrikz = 9272,
-  VFIXUPIMMPDZrmbi = 9273,
-  VFIXUPIMMPDZrmbik = 9274,
-  VFIXUPIMMPDZrmbikz = 9275,
-  VFIXUPIMMPDZrmi = 9276,
-  VFIXUPIMMPDZrmik = 9277,
-  VFIXUPIMMPDZrmikz = 9278,
-  VFIXUPIMMPDZrri = 9279,
-  VFIXUPIMMPDZrrib = 9280,
-  VFIXUPIMMPDZrribk = 9281,
-  VFIXUPIMMPDZrribkz = 9282,
-  VFIXUPIMMPDZrrik = 9283,
-  VFIXUPIMMPDZrrikz = 9284,
-  VFIXUPIMMPSZ128rmbi = 9285,
-  VFIXUPIMMPSZ128rmbik = 9286,
-  VFIXUPIMMPSZ128rmbikz = 9287,
-  VFIXUPIMMPSZ128rmi = 9288,
-  VFIXUPIMMPSZ128rmik = 9289,
-  VFIXUPIMMPSZ128rmikz = 9290,
-  VFIXUPIMMPSZ128rri = 9291,
-  VFIXUPIMMPSZ128rrik = 9292,
-  VFIXUPIMMPSZ128rrikz = 9293,
-  VFIXUPIMMPSZ256rmbi = 9294,
-  VFIXUPIMMPSZ256rmbik = 9295,
-  VFIXUPIMMPSZ256rmbikz = 9296,
-  VFIXUPIMMPSZ256rmi = 9297,
-  VFIXUPIMMPSZ256rmik = 9298,
-  VFIXUPIMMPSZ256rmikz = 9299,
-  VFIXUPIMMPSZ256rri = 9300,
-  VFIXUPIMMPSZ256rrik = 9301,
-  VFIXUPIMMPSZ256rrikz = 9302,
-  VFIXUPIMMPSZrmbi = 9303,
-  VFIXUPIMMPSZrmbik = 9304,
-  VFIXUPIMMPSZrmbikz = 9305,
-  VFIXUPIMMPSZrmi = 9306,
-  VFIXUPIMMPSZrmik = 9307,
-  VFIXUPIMMPSZrmikz = 9308,
-  VFIXUPIMMPSZrri = 9309,
-  VFIXUPIMMPSZrrib = 9310,
-  VFIXUPIMMPSZrribk = 9311,
-  VFIXUPIMMPSZrribkz = 9312,
-  VFIXUPIMMPSZrrik = 9313,
-  VFIXUPIMMPSZrrikz = 9314,
-  VFIXUPIMMSDZrmi = 9315,
-  VFIXUPIMMSDZrmik = 9316,
-  VFIXUPIMMSDZrmikz = 9317,
-  VFIXUPIMMSDZrri = 9318,
-  VFIXUPIMMSDZrrib = 9319,
-  VFIXUPIMMSDZrribk = 9320,
-  VFIXUPIMMSDZrribkz = 9321,
-  VFIXUPIMMSDZrrik = 9322,
-  VFIXUPIMMSDZrrikz = 9323,
-  VFIXUPIMMSSZrmi = 9324,
-  VFIXUPIMMSSZrmik = 9325,
-  VFIXUPIMMSSZrmikz = 9326,
-  VFIXUPIMMSSZrri = 9327,
-  VFIXUPIMMSSZrrib = 9328,
-  VFIXUPIMMSSZrribk = 9329,
-  VFIXUPIMMSSZrribkz = 9330,
-  VFIXUPIMMSSZrrik = 9331,
-  VFIXUPIMMSSZrrikz = 9332,
-  VFMADD132BF16Z128m = 9333,
-  VFMADD132BF16Z128mb = 9334,
-  VFMADD132BF16Z128mbk = 9335,
-  VFMADD132BF16Z128mbkz = 9336,
-  VFMADD132BF16Z128mk = 9337,
-  VFMADD132BF16Z128mkz = 9338,
-  VFMADD132BF16Z128r = 9339,
-  VFMADD132BF16Z128rk = 9340,
-  VFMADD132BF16Z128rkz = 9341,
-  VFMADD132BF16Z256m = 9342,
-  VFMADD132BF16Z256mb = 9343,
-  VFMADD132BF16Z256mbk = 9344,
-  VFMADD132BF16Z256mbkz = 9345,
-  VFMADD132BF16Z256mk = 9346,
-  VFMADD132BF16Z256mkz = 9347,
-  VFMADD132BF16Z256r = 9348,
-  VFMADD132BF16Z256rk = 9349,
-  VFMADD132BF16Z256rkz = 9350,
-  VFMADD132BF16Zm = 9351,
-  VFMADD132BF16Zmb = 9352,
-  VFMADD132BF16Zmbk = 9353,
-  VFMADD132BF16Zmbkz = 9354,
-  VFMADD132BF16Zmk = 9355,
-  VFMADD132BF16Zmkz = 9356,
-  VFMADD132BF16Zr = 9357,
-  VFMADD132BF16Zrk = 9358,
-  VFMADD132BF16Zrkz = 9359,
-  VFMADD132PDYm = 9360,
-  VFMADD132PDYr = 9361,
-  VFMADD132PDZ128m = 9362,
-  VFMADD132PDZ128mb = 9363,
-  VFMADD132PDZ128mbk = 9364,
-  VFMADD132PDZ128mbkz = 9365,
-  VFMADD132PDZ128mk = 9366,
-  VFMADD132PDZ128mkz = 9367,
-  VFMADD132PDZ128r = 9368,
-  VFMADD132PDZ128rk = 9369,
-  VFMADD132PDZ128rkz = 9370,
-  VFMADD132PDZ256m = 9371,
-  VFMADD132PDZ256mb = 9372,
-  VFMADD132PDZ256mbk = 9373,
-  VFMADD132PDZ256mbkz = 9374,
-  VFMADD132PDZ256mk = 9375,
-  VFMADD132PDZ256mkz = 9376,
-  VFMADD132PDZ256r = 9377,
-  VFMADD132PDZ256rk = 9378,
-  VFMADD132PDZ256rkz = 9379,
-  VFMADD132PDZm = 9380,
-  VFMADD132PDZmb = 9381,
-  VFMADD132PDZmbk = 9382,
-  VFMADD132PDZmbkz = 9383,
-  VFMADD132PDZmk = 9384,
-  VFMADD132PDZmkz = 9385,
-  VFMADD132PDZr = 9386,
-  VFMADD132PDZrb = 9387,
-  VFMADD132PDZrbk = 9388,
-  VFMADD132PDZrbkz = 9389,
-  VFMADD132PDZrk = 9390,
-  VFMADD132PDZrkz = 9391,
-  VFMADD132PDm = 9392,
-  VFMADD132PDr = 9393,
-  VFMADD132PHZ128m = 9394,
-  VFMADD132PHZ128mb = 9395,
-  VFMADD132PHZ128mbk = 9396,
-  VFMADD132PHZ128mbkz = 9397,
-  VFMADD132PHZ128mk = 9398,
-  VFMADD132PHZ128mkz = 9399,
-  VFMADD132PHZ128r = 9400,
-  VFMADD132PHZ128rk = 9401,
-  VFMADD132PHZ128rkz = 9402,
-  VFMADD132PHZ256m = 9403,
-  VFMADD132PHZ256mb = 9404,
-  VFMADD132PHZ256mbk = 9405,
-  VFMADD132PHZ256mbkz = 9406,
-  VFMADD132PHZ256mk = 9407,
-  VFMADD132PHZ256mkz = 9408,
-  VFMADD132PHZ256r = 9409,
-  VFMADD132PHZ256rk = 9410,
-  VFMADD132PHZ256rkz = 9411,
-  VFMADD132PHZm = 9412,
-  VFMADD132PHZmb = 9413,
-  VFMADD132PHZmbk = 9414,
-  VFMADD132PHZmbkz = 9415,
-  VFMADD132PHZmk = 9416,
-  VFMADD132PHZmkz = 9417,
-  VFMADD132PHZr = 9418,
-  VFMADD132PHZrb = 9419,
-  VFMADD132PHZrbk = 9420,
-  VFMADD132PHZrbkz = 9421,
-  VFMADD132PHZrk = 9422,
-  VFMADD132PHZrkz = 9423,
-  VFMADD132PSYm = 9424,
-  VFMADD132PSYr = 9425,
-  VFMADD132PSZ128m = 9426,
-  VFMADD132PSZ128mb = 9427,
-  VFMADD132PSZ128mbk = 9428,
-  VFMADD132PSZ128mbkz = 9429,
-  VFMADD132PSZ128mk = 9430,
-  VFMADD132PSZ128mkz = 9431,
-  VFMADD132PSZ128r = 9432,
-  VFMADD132PSZ128rk = 9433,
-  VFMADD132PSZ128rkz = 9434,
-  VFMADD132PSZ256m = 9435,
-  VFMADD132PSZ256mb = 9436,
-  VFMADD132PSZ256mbk = 9437,
-  VFMADD132PSZ256mbkz = 9438,
-  VFMADD132PSZ256mk = 9439,
-  VFMADD132PSZ256mkz = 9440,
-  VFMADD132PSZ256r = 9441,
-  VFMADD132PSZ256rk = 9442,
-  VFMADD132PSZ256rkz = 9443,
-  VFMADD132PSZm = 9444,
-  VFMADD132PSZmb = 9445,
-  VFMADD132PSZmbk = 9446,
-  VFMADD132PSZmbkz = 9447,
-  VFMADD132PSZmk = 9448,
-  VFMADD132PSZmkz = 9449,
-  VFMADD132PSZr = 9450,
-  VFMADD132PSZrb = 9451,
-  VFMADD132PSZrbk = 9452,
-  VFMADD132PSZrbkz = 9453,
-  VFMADD132PSZrk = 9454,
-  VFMADD132PSZrkz = 9455,
-  VFMADD132PSm = 9456,
-  VFMADD132PSr = 9457,
-  VFMADD132SDZm = 9458,
-  VFMADD132SDZm_Int = 9459,
-  VFMADD132SDZmk_Int = 9460,
-  VFMADD132SDZmkz_Int = 9461,
-  VFMADD132SDZr = 9462,
-  VFMADD132SDZr_Int = 9463,
-  VFMADD132SDZrb = 9464,
-  VFMADD132SDZrb_Int = 9465,
-  VFMADD132SDZrbk_Int = 9466,
-  VFMADD132SDZrbkz_Int = 9467,
-  VFMADD132SDZrk_Int = 9468,
-  VFMADD132SDZrkz_Int = 9469,
-  VFMADD132SDm = 9470,
-  VFMADD132SDm_Int = 9471,
-  VFMADD132SDr = 9472,
-  VFMADD132SDr_Int = 9473,
-  VFMADD132SHZm = 9474,
-  VFMADD132SHZm_Int = 9475,
-  VFMADD132SHZmk_Int = 9476,
-  VFMADD132SHZmkz_Int = 9477,
-  VFMADD132SHZr = 9478,
-  VFMADD132SHZr_Int = 9479,
-  VFMADD132SHZrb = 9480,
-  VFMADD132SHZrb_Int = 9481,
-  VFMADD132SHZrbk_Int = 9482,
-  VFMADD132SHZrbkz_Int = 9483,
-  VFMADD132SHZrk_Int = 9484,
-  VFMADD132SHZrkz_Int = 9485,
-  VFMADD132SSZm = 9486,
-  VFMADD132SSZm_Int = 9487,
-  VFMADD132SSZmk_Int = 9488,
-  VFMADD132SSZmkz_Int = 9489,
-  VFMADD132SSZr = 9490,
-  VFMADD132SSZr_Int = 9491,
-  VFMADD132SSZrb = 9492,
-  VFMADD132SSZrb_Int = 9493,
-  VFMADD132SSZrbk_Int = 9494,
-  VFMADD132SSZrbkz_Int = 9495,
-  VFMADD132SSZrk_Int = 9496,
-  VFMADD132SSZrkz_Int = 9497,
-  VFMADD132SSm = 9498,
-  VFMADD132SSm_Int = 9499,
-  VFMADD132SSr = 9500,
-  VFMADD132SSr_Int = 9501,
-  VFMADD213BF16Z128m = 9502,
-  VFMADD213BF16Z128mb = 9503,
-  VFMADD213BF16Z128mbk = 9504,
-  VFMADD213BF16Z128mbkz = 9505,
-  VFMADD213BF16Z128mk = 9506,
-  VFMADD213BF16Z128mkz = 9507,
-  VFMADD213BF16Z128r = 9508,
-  VFMADD213BF16Z128rk = 9509,
-  VFMADD213BF16Z128rkz = 9510,
-  VFMADD213BF16Z256m = 9511,
-  VFMADD213BF16Z256mb = 9512,
-  VFMADD213BF16Z256mbk = 9513,
-  VFMADD213BF16Z256mbkz = 9514,
-  VFMADD213BF16Z256mk = 9515,
-  VFMADD213BF16Z256mkz = 9516,
-  VFMADD213BF16Z256r = 9517,
-  VFMADD213BF16Z256rk = 9518,
-  VFMADD213BF16Z256rkz = 9519,
-  VFMADD213BF16Zm = 9520,
-  VFMADD213BF16Zmb = 9521,
-  VFMADD213BF16Zmbk = 9522,
-  VFMADD213BF16Zmbkz = 9523,
-  VFMADD213BF16Zmk = 9524,
-  VFMADD213BF16Zmkz = 9525,
-  VFMADD213BF16Zr = 9526,
-  VFMADD213BF16Zrk = 9527,
-  VFMADD213BF16Zrkz = 9528,
-  VFMADD213PDYm = 9529,
-  VFMADD213PDYr = 9530,
-  VFMADD213PDZ128m = 9531,
-  VFMADD213PDZ128mb = 9532,
-  VFMADD213PDZ128mbk = 9533,
-  VFMADD213PDZ128mbkz = 9534,
-  VFMADD213PDZ128mk = 9535,
-  VFMADD213PDZ128mkz = 9536,
-  VFMADD213PDZ128r = 9537,
-  VFMADD213PDZ128rk = 9538,
-  VFMADD213PDZ128rkz = 9539,
-  VFMADD213PDZ256m = 9540,
-  VFMADD213PDZ256mb = 9541,
-  VFMADD213PDZ256mbk = 9542,
-  VFMADD213PDZ256mbkz = 9543,
-  VFMADD213PDZ256mk = 9544,
-  VFMADD213PDZ256mkz = 9545,
-  VFMADD213PDZ256r = 9546,
-  VFMADD213PDZ256rk = 9547,
-  VFMADD213PDZ256rkz = 9548,
-  VFMADD213PDZm = 9549,
-  VFMADD213PDZmb = 9550,
-  VFMADD213PDZmbk = 9551,
-  VFMADD213PDZmbkz = 9552,
-  VFMADD213PDZmk = 9553,
-  VFMADD213PDZmkz = 9554,
-  VFMADD213PDZr = 9555,
-  VFMADD213PDZrb = 9556,
-  VFMADD213PDZrbk = 9557,
-  VFMADD213PDZrbkz = 9558,
-  VFMADD213PDZrk = 9559,
-  VFMADD213PDZrkz = 9560,
-  VFMADD213PDm = 9561,
-  VFMADD213PDr = 9562,
-  VFMADD213PHZ128m = 9563,
-  VFMADD213PHZ128mb = 9564,
-  VFMADD213PHZ128mbk = 9565,
-  VFMADD213PHZ128mbkz = 9566,
-  VFMADD213PHZ128mk = 9567,
-  VFMADD213PHZ128mkz = 9568,
-  VFMADD213PHZ128r = 9569,
-  VFMADD213PHZ128rk = 9570,
-  VFMADD213PHZ128rkz = 9571,
-  VFMADD213PHZ256m = 9572,
-  VFMADD213PHZ256mb = 9573,
-  VFMADD213PHZ256mbk = 9574,
-  VFMADD213PHZ256mbkz = 9575,
-  VFMADD213PHZ256mk = 9576,
-  VFMADD213PHZ256mkz = 9577,
-  VFMADD213PHZ256r = 9578,
-  VFMADD213PHZ256rk = 9579,
-  VFMADD213PHZ256rkz = 9580,
-  VFMADD213PHZm = 9581,
-  VFMADD213PHZmb = 9582,
-  VFMADD213PHZmbk = 9583,
-  VFMADD213PHZmbkz = 9584,
-  VFMADD213PHZmk = 9585,
-  VFMADD213PHZmkz = 9586,
-  VFMADD213PHZr = 9587,
-  VFMADD213PHZrb = 9588,
-  VFMADD213PHZrbk = 9589,
-  VFMADD213PHZrbkz = 9590,
-  VFMADD213PHZrk = 9591,
-  VFMADD213PHZrkz = 9592,
-  VFMADD213PSYm = 9593,
-  VFMADD213PSYr = 9594,
-  VFMADD213PSZ128m = 9595,
-  VFMADD213PSZ128mb = 9596,
-  VFMADD213PSZ128mbk = 9597,
-  VFMADD213PSZ128mbkz = 9598,
-  VFMADD213PSZ128mk = 9599,
-  VFMADD213PSZ128mkz = 9600,
-  VFMADD213PSZ128r = 9601,
-  VFMADD213PSZ128rk = 9602,
-  VFMADD213PSZ128rkz = 9603,
-  VFMADD213PSZ256m = 9604,
-  VFMADD213PSZ256mb = 9605,
-  VFMADD213PSZ256mbk = 9606,
-  VFMADD213PSZ256mbkz = 9607,
-  VFMADD213PSZ256mk = 9608,
-  VFMADD213PSZ256mkz = 9609,
-  VFMADD213PSZ256r = 9610,
-  VFMADD213PSZ256rk = 9611,
-  VFMADD213PSZ256rkz = 9612,
-  VFMADD213PSZm = 9613,
-  VFMADD213PSZmb = 9614,
-  VFMADD213PSZmbk = 9615,
-  VFMADD213PSZmbkz = 9616,
-  VFMADD213PSZmk = 9617,
-  VFMADD213PSZmkz = 9618,
-  VFMADD213PSZr = 9619,
-  VFMADD213PSZrb = 9620,
-  VFMADD213PSZrbk = 9621,
-  VFMADD213PSZrbkz = 9622,
-  VFMADD213PSZrk = 9623,
-  VFMADD213PSZrkz = 9624,
-  VFMADD213PSm = 9625,
-  VFMADD213PSr = 9626,
-  VFMADD213SDZm = 9627,
-  VFMADD213SDZm_Int = 9628,
-  VFMADD213SDZmk_Int = 9629,
-  VFMADD213SDZmkz_Int = 9630,
-  VFMADD213SDZr = 9631,
-  VFMADD213SDZr_Int = 9632,
-  VFMADD213SDZrb = 9633,
-  VFMADD213SDZrb_Int = 9634,
-  VFMADD213SDZrbk_Int = 9635,
-  VFMADD213SDZrbkz_Int = 9636,
-  VFMADD213SDZrk_Int = 9637,
-  VFMADD213SDZrkz_Int = 9638,
-  VFMADD213SDm = 9639,
-  VFMADD213SDm_Int = 9640,
-  VFMADD213SDr = 9641,
-  VFMADD213SDr_Int = 9642,
-  VFMADD213SHZm = 9643,
-  VFMADD213SHZm_Int = 9644,
-  VFMADD213SHZmk_Int = 9645,
-  VFMADD213SHZmkz_Int = 9646,
-  VFMADD213SHZr = 9647,
-  VFMADD213SHZr_Int = 9648,
-  VFMADD213SHZrb = 9649,
-  VFMADD213SHZrb_Int = 9650,
-  VFMADD213SHZrbk_Int = 9651,
-  VFMADD213SHZrbkz_Int = 9652,
-  VFMADD213SHZrk_Int = 9653,
-  VFMADD213SHZrkz_Int = 9654,
-  VFMADD213SSZm = 9655,
-  VFMADD213SSZm_Int = 9656,
-  VFMADD213SSZmk_Int = 9657,
-  VFMADD213SSZmkz_Int = 9658,
-  VFMADD213SSZr = 9659,
-  VFMADD213SSZr_Int = 9660,
-  VFMADD213SSZrb = 9661,
-  VFMADD213SSZrb_Int = 9662,
-  VFMADD213SSZrbk_Int = 9663,
-  VFMADD213SSZrbkz_Int = 9664,
-  VFMADD213SSZrk_Int = 9665,
-  VFMADD213SSZrkz_Int = 9666,
-  VFMADD213SSm = 9667,
-  VFMADD213SSm_Int = 9668,
-  VFMADD213SSr = 9669,
-  VFMADD213SSr_Int = 9670,
-  VFMADD231BF16Z128m = 9671,
-  VFMADD231BF16Z128mb = 9672,
-  VFMADD231BF16Z128mbk = 9673,
-  VFMADD231BF16Z128mbkz = 9674,
-  VFMADD231BF16Z128mk = 9675,
-  VFMADD231BF16Z128mkz = 9676,
-  VFMADD231BF16Z128r = 9677,
-  VFMADD231BF16Z128rk = 9678,
-  VFMADD231BF16Z128rkz = 9679,
-  VFMADD231BF16Z256m = 9680,
-  VFMADD231BF16Z256mb = 9681,
-  VFMADD231BF16Z256mbk = 9682,
-  VFMADD231BF16Z256mbkz = 9683,
-  VFMADD231BF16Z256mk = 9684,
-  VFMADD231BF16Z256mkz = 9685,
-  VFMADD231BF16Z256r = 9686,
-  VFMADD231BF16Z256rk = 9687,
-  VFMADD231BF16Z256rkz = 9688,
-  VFMADD231BF16Zm = 9689,
-  VFMADD231BF16Zmb = 9690,
-  VFMADD231BF16Zmbk = 9691,
-  VFMADD231BF16Zmbkz = 9692,
-  VFMADD231BF16Zmk = 9693,
-  VFMADD231BF16Zmkz = 9694,
-  VFMADD231BF16Zr = 9695,
-  VFMADD231BF16Zrk = 9696,
-  VFMADD231BF16Zrkz = 9697,
-  VFMADD231PDYm = 9698,
-  VFMADD231PDYr = 9699,
-  VFMADD231PDZ128m = 9700,
-  VFMADD231PDZ128mb = 9701,
-  VFMADD231PDZ128mbk = 9702,
-  VFMADD231PDZ128mbkz = 9703,
-  VFMADD231PDZ128mk = 9704,
-  VFMADD231PDZ128mkz = 9705,
-  VFMADD231PDZ128r = 9706,
-  VFMADD231PDZ128rk = 9707,
-  VFMADD231PDZ128rkz = 9708,
-  VFMADD231PDZ256m = 9709,
-  VFMADD231PDZ256mb = 9710,
-  VFMADD231PDZ256mbk = 9711,
-  VFMADD231PDZ256mbkz = 9712,
-  VFMADD231PDZ256mk = 9713,
-  VFMADD231PDZ256mkz = 9714,
-  VFMADD231PDZ256r = 9715,
-  VFMADD231PDZ256rk = 9716,
-  VFMADD231PDZ256rkz = 9717,
-  VFMADD231PDZm = 9718,
-  VFMADD231PDZmb = 9719,
-  VFMADD231PDZmbk = 9720,
-  VFMADD231PDZmbkz = 9721,
-  VFMADD231PDZmk = 9722,
-  VFMADD231PDZmkz = 9723,
-  VFMADD231PDZr = 9724,
-  VFMADD231PDZrb = 9725,
-  VFMADD231PDZrbk = 9726,
-  VFMADD231PDZrbkz = 9727,
-  VFMADD231PDZrk = 9728,
-  VFMADD231PDZrkz = 9729,
-  VFMADD231PDm = 9730,
-  VFMADD231PDr = 9731,
-  VFMADD231PHZ128m = 9732,
-  VFMADD231PHZ128mb = 9733,
-  VFMADD231PHZ128mbk = 9734,
-  VFMADD231PHZ128mbkz = 9735,
-  VFMADD231PHZ128mk = 9736,
-  VFMADD231PHZ128mkz = 9737,
-  VFMADD231PHZ128r = 9738,
-  VFMADD231PHZ128rk = 9739,
-  VFMADD231PHZ128rkz = 9740,
-  VFMADD231PHZ256m = 9741,
-  VFMADD231PHZ256mb = 9742,
-  VFMADD231PHZ256mbk = 9743,
-  VFMADD231PHZ256mbkz = 9744,
-  VFMADD231PHZ256mk = 9745,
-  VFMADD231PHZ256mkz = 9746,
-  VFMADD231PHZ256r = 9747,
-  VFMADD231PHZ256rk = 9748,
-  VFMADD231PHZ256rkz = 9749,
-  VFMADD231PHZm = 9750,
-  VFMADD231PHZmb = 9751,
-  VFMADD231PHZmbk = 9752,
-  VFMADD231PHZmbkz = 9753,
-  VFMADD231PHZmk = 9754,
-  VFMADD231PHZmkz = 9755,
-  VFMADD231PHZr = 9756,
-  VFMADD231PHZrb = 9757,
-  VFMADD231PHZrbk = 9758,
-  VFMADD231PHZrbkz = 9759,
-  VFMADD231PHZrk = 9760,
-  VFMADD231PHZrkz = 9761,
-  VFMADD231PSYm = 9762,
-  VFMADD231PSYr = 9763,
-  VFMADD231PSZ128m = 9764,
-  VFMADD231PSZ128mb = 9765,
-  VFMADD231PSZ128mbk = 9766,
-  VFMADD231PSZ128mbkz = 9767,
-  VFMADD231PSZ128mk = 9768,
-  VFMADD231PSZ128mkz = 9769,
-  VFMADD231PSZ128r = 9770,
-  VFMADD231PSZ128rk = 9771,
-  VFMADD231PSZ128rkz = 9772,
-  VFMADD231PSZ256m = 9773,
-  VFMADD231PSZ256mb = 9774,
-  VFMADD231PSZ256mbk = 9775,
-  VFMADD231PSZ256mbkz = 9776,
-  VFMADD231PSZ256mk = 9777,
-  VFMADD231PSZ256mkz = 9778,
-  VFMADD231PSZ256r = 9779,
-  VFMADD231PSZ256rk = 9780,
-  VFMADD231PSZ256rkz = 9781,
-  VFMADD231PSZm = 9782,
-  VFMADD231PSZmb = 9783,
-  VFMADD231PSZmbk = 9784,
-  VFMADD231PSZmbkz = 9785,
-  VFMADD231PSZmk = 9786,
-  VFMADD231PSZmkz = 9787,
-  VFMADD231PSZr = 9788,
-  VFMADD231PSZrb = 9789,
-  VFMADD231PSZrbk = 9790,
-  VFMADD231PSZrbkz = 9791,
-  VFMADD231PSZrk = 9792,
-  VFMADD231PSZrkz = 9793,
-  VFMADD231PSm = 9794,
-  VFMADD231PSr = 9795,
-  VFMADD231SDZm = 9796,
-  VFMADD231SDZm_Int = 9797,
-  VFMADD231SDZmk_Int = 9798,
-  VFMADD231SDZmkz_Int = 9799,
-  VFMADD231SDZr = 9800,
-  VFMADD231SDZr_Int = 9801,
-  VFMADD231SDZrb = 9802,
-  VFMADD231SDZrb_Int = 9803,
-  VFMADD231SDZrbk_Int = 9804,
-  VFMADD231SDZrbkz_Int = 9805,
-  VFMADD231SDZrk_Int = 9806,
-  VFMADD231SDZrkz_Int = 9807,
-  VFMADD231SDm = 9808,
-  VFMADD231SDm_Int = 9809,
-  VFMADD231SDr = 9810,
-  VFMADD231SDr_Int = 9811,
-  VFMADD231SHZm = 9812,
-  VFMADD231SHZm_Int = 9813,
-  VFMADD231SHZmk_Int = 9814,
-  VFMADD231SHZmkz_Int = 9815,
-  VFMADD231SHZr = 9816,
-  VFMADD231SHZr_Int = 9817,
-  VFMADD231SHZrb = 9818,
-  VFMADD231SHZrb_Int = 9819,
-  VFMADD231SHZrbk_Int = 9820,
-  VFMADD231SHZrbkz_Int = 9821,
-  VFMADD231SHZrk_Int = 9822,
-  VFMADD231SHZrkz_Int = 9823,
-  VFMADD231SSZm = 9824,
-  VFMADD231SSZm_Int = 9825,
-  VFMADD231SSZmk_Int = 9826,
-  VFMADD231SSZmkz_Int = 9827,
-  VFMADD231SSZr = 9828,
-  VFMADD231SSZr_Int = 9829,
-  VFMADD231SSZrb = 9830,
-  VFMADD231SSZrb_Int = 9831,
-  VFMADD231SSZrbk_Int = 9832,
-  VFMADD231SSZrbkz_Int = 9833,
-  VFMADD231SSZrk_Int = 9834,
-  VFMADD231SSZrkz_Int = 9835,
-  VFMADD231SSm = 9836,
-  VFMADD231SSm_Int = 9837,
-  VFMADD231SSr = 9838,
-  VFMADD231SSr_Int = 9839,
-  VFMADDCPHZ128m = 9840,
-  VFMADDCPHZ128mb = 9841,
-  VFMADDCPHZ128mbk = 9842,
-  VFMADDCPHZ128mbkz = 9843,
-  VFMADDCPHZ128mk = 9844,
-  VFMADDCPHZ128mkz = 9845,
-  VFMADDCPHZ128r = 9846,
-  VFMADDCPHZ128rk = 9847,
-  VFMADDCPHZ128rkz = 9848,
-  VFMADDCPHZ256m = 9849,
-  VFMADDCPHZ256mb = 9850,
-  VFMADDCPHZ256mbk = 9851,
-  VFMADDCPHZ256mbkz = 9852,
-  VFMADDCPHZ256mk = 9853,
-  VFMADDCPHZ256mkz = 9854,
-  VFMADDCPHZ256r = 9855,
-  VFMADDCPHZ256rk = 9856,
-  VFMADDCPHZ256rkz = 9857,
-  VFMADDCPHZm = 9858,
-  VFMADDCPHZmb = 9859,
-  VFMADDCPHZmbk = 9860,
-  VFMADDCPHZmbkz = 9861,
-  VFMADDCPHZmk = 9862,
-  VFMADDCPHZmkz = 9863,
-  VFMADDCPHZr = 9864,
-  VFMADDCPHZrb = 9865,
-  VFMADDCPHZrbk = 9866,
-  VFMADDCPHZrbkz = 9867,
-  VFMADDCPHZrk = 9868,
-  VFMADDCPHZrkz = 9869,
-  VFMADDCSHZm = 9870,
-  VFMADDCSHZmk = 9871,
-  VFMADDCSHZmkz = 9872,
-  VFMADDCSHZr = 9873,
-  VFMADDCSHZrb = 9874,
-  VFMADDCSHZrbk = 9875,
-  VFMADDCSHZrbkz = 9876,
-  VFMADDCSHZrk = 9877,
-  VFMADDCSHZrkz = 9878,
-  VFMADDPD4Ymr = 9879,
-  VFMADDPD4Yrm = 9880,
-  VFMADDPD4Yrr = 9881,
-  VFMADDPD4Yrr_REV = 9882,
-  VFMADDPD4mr = 9883,
-  VFMADDPD4rm = 9884,
-  VFMADDPD4rr = 9885,
-  VFMADDPD4rr_REV = 9886,
-  VFMADDPS4Ymr = 9887,
-  VFMADDPS4Yrm = 9888,
-  VFMADDPS4Yrr = 9889,
-  VFMADDPS4Yrr_REV = 9890,
-  VFMADDPS4mr = 9891,
-  VFMADDPS4rm = 9892,
-  VFMADDPS4rr = 9893,
-  VFMADDPS4rr_REV = 9894,
-  VFMADDSD4mr = 9895,
-  VFMADDSD4mr_Int = 9896,
-  VFMADDSD4rm = 9897,
-  VFMADDSD4rm_Int = 9898,
-  VFMADDSD4rr = 9899,
-  VFMADDSD4rr_Int = 9900,
-  VFMADDSD4rr_Int_REV = 9901,
-  VFMADDSD4rr_REV = 9902,
-  VFMADDSS4mr = 9903,
-  VFMADDSS4mr_Int = 9904,
-  VFMADDSS4rm = 9905,
-  VFMADDSS4rm_Int = 9906,
-  VFMADDSS4rr = 9907,
-  VFMADDSS4rr_Int = 9908,
-  VFMADDSS4rr_Int_REV = 9909,
-  VFMADDSS4rr_REV = 9910,
-  VFMADDSUB132PDYm = 9911,
-  VFMADDSUB132PDYr = 9912,
-  VFMADDSUB132PDZ128m = 9913,
-  VFMADDSUB132PDZ128mb = 9914,
-  VFMADDSUB132PDZ128mbk = 9915,
-  VFMADDSUB132PDZ128mbkz = 9916,
-  VFMADDSUB132PDZ128mk = 9917,
-  VFMADDSUB132PDZ128mkz = 9918,
-  VFMADDSUB132PDZ128r = 9919,
-  VFMADDSUB132PDZ128rk = 9920,
-  VFMADDSUB132PDZ128rkz = 9921,
-  VFMADDSUB132PDZ256m = 9922,
-  VFMADDSUB132PDZ256mb = 9923,
-  VFMADDSUB132PDZ256mbk = 9924,
-  VFMADDSUB132PDZ256mbkz = 9925,
-  VFMADDSUB132PDZ256mk = 9926,
-  VFMADDSUB132PDZ256mkz = 9927,
-  VFMADDSUB132PDZ256r = 9928,
-  VFMADDSUB132PDZ256rk = 9929,
-  VFMADDSUB132PDZ256rkz = 9930,
-  VFMADDSUB132PDZm = 9931,
-  VFMADDSUB132PDZmb = 9932,
-  VFMADDSUB132PDZmbk = 9933,
-  VFMADDSUB132PDZmbkz = 9934,
-  VFMADDSUB132PDZmk = 9935,
-  VFMADDSUB132PDZmkz = 9936,
-  VFMADDSUB132PDZr = 9937,
-  VFMADDSUB132PDZrb = 9938,
-  VFMADDSUB132PDZrbk = 9939,
-  VFMADDSUB132PDZrbkz = 9940,
-  VFMADDSUB132PDZrk = 9941,
-  VFMADDSUB132PDZrkz = 9942,
-  VFMADDSUB132PDm = 9943,
-  VFMADDSUB132PDr = 9944,
-  VFMADDSUB132PHZ128m = 9945,
-  VFMADDSUB132PHZ128mb = 9946,
-  VFMADDSUB132PHZ128mbk = 9947,
-  VFMADDSUB132PHZ128mbkz = 9948,
-  VFMADDSUB132PHZ128mk = 9949,
-  VFMADDSUB132PHZ128mkz = 9950,
-  VFMADDSUB132PHZ128r = 9951,
-  VFMADDSUB132PHZ128rk = 9952,
-  VFMADDSUB132PHZ128rkz = 9953,
-  VFMADDSUB132PHZ256m = 9954,
-  VFMADDSUB132PHZ256mb = 9955,
-  VFMADDSUB132PHZ256mbk = 9956,
-  VFMADDSUB132PHZ256mbkz = 9957,
-  VFMADDSUB132PHZ256mk = 9958,
-  VFMADDSUB132PHZ256mkz = 9959,
-  VFMADDSUB132PHZ256r = 9960,
-  VFMADDSUB132PHZ256rk = 9961,
-  VFMADDSUB132PHZ256rkz = 9962,
-  VFMADDSUB132PHZm = 9963,
-  VFMADDSUB132PHZmb = 9964,
-  VFMADDSUB132PHZmbk = 9965,
-  VFMADDSUB132PHZmbkz = 9966,
-  VFMADDSUB132PHZmk = 9967,
-  VFMADDSUB132PHZmkz = 9968,
-  VFMADDSUB132PHZr = 9969,
-  VFMADDSUB132PHZrb = 9970,
-  VFMADDSUB132PHZrbk = 9971,
-  VFMADDSUB132PHZrbkz = 9972,
-  VFMADDSUB132PHZrk = 9973,
-  VFMADDSUB132PHZrkz = 9974,
-  VFMADDSUB132PSYm = 9975,
-  VFMADDSUB132PSYr = 9976,
-  VFMADDSUB132PSZ128m = 9977,
-  VFMADDSUB132PSZ128mb = 9978,
-  VFMADDSUB132PSZ128mbk = 9979,
-  VFMADDSUB132PSZ128mbkz = 9980,
-  VFMADDSUB132PSZ128mk = 9981,
-  VFMADDSUB132PSZ128mkz = 9982,
-  VFMADDSUB132PSZ128r = 9983,
-  VFMADDSUB132PSZ128rk = 9984,
-  VFMADDSUB132PSZ128rkz = 9985,
-  VFMADDSUB132PSZ256m = 9986,
-  VFMADDSUB132PSZ256mb = 9987,
-  VFMADDSUB132PSZ256mbk = 9988,
-  VFMADDSUB132PSZ256mbkz = 9989,
-  VFMADDSUB132PSZ256mk = 9990,
-  VFMADDSUB132PSZ256mkz = 9991,
-  VFMADDSUB132PSZ256r = 9992,
-  VFMADDSUB132PSZ256rk = 9993,
-  VFMADDSUB132PSZ256rkz = 9994,
-  VFMADDSUB132PSZm = 9995,
-  VFMADDSUB132PSZmb = 9996,
-  VFMADDSUB132PSZmbk = 9997,
-  VFMADDSUB132PSZmbkz = 9998,
-  VFMADDSUB132PSZmk = 9999,
-  VFMADDSUB132PSZmkz = 10000,
-  VFMADDSUB132PSZr = 10001,
-  VFMADDSUB132PSZrb = 10002,
-  VFMADDSUB132PSZrbk = 10003,
-  VFMADDSUB132PSZrbkz = 10004,
-  VFMADDSUB132PSZrk = 10005,
-  VFMADDSUB132PSZrkz = 10006,
-  VFMADDSUB132PSm = 10007,
-  VFMADDSUB132PSr = 10008,
-  VFMADDSUB213PDYm = 10009,
-  VFMADDSUB213PDYr = 10010,
-  VFMADDSUB213PDZ128m = 10011,
-  VFMADDSUB213PDZ128mb = 10012,
-  VFMADDSUB213PDZ128mbk = 10013,
-  VFMADDSUB213PDZ128mbkz = 10014,
-  VFMADDSUB213PDZ128mk = 10015,
-  VFMADDSUB213PDZ128mkz = 10016,
-  VFMADDSUB213PDZ128r = 10017,
-  VFMADDSUB213PDZ128rk = 10018,
-  VFMADDSUB213PDZ128rkz = 10019,
-  VFMADDSUB213PDZ256m = 10020,
-  VFMADDSUB213PDZ256mb = 10021,
-  VFMADDSUB213PDZ256mbk = 10022,
-  VFMADDSUB213PDZ256mbkz = 10023,
-  VFMADDSUB213PDZ256mk = 10024,
-  VFMADDSUB213PDZ256mkz = 10025,
-  VFMADDSUB213PDZ256r = 10026,
-  VFMADDSUB213PDZ256rk = 10027,
-  VFMADDSUB213PDZ256rkz = 10028,
-  VFMADDSUB213PDZm = 10029,
-  VFMADDSUB213PDZmb = 10030,
-  VFMADDSUB213PDZmbk = 10031,
-  VFMADDSUB213PDZmbkz = 10032,
-  VFMADDSUB213PDZmk = 10033,
-  VFMADDSUB213PDZmkz = 10034,
-  VFMADDSUB213PDZr = 10035,
-  VFMADDSUB213PDZrb = 10036,
-  VFMADDSUB213PDZrbk = 10037,
-  VFMADDSUB213PDZrbkz = 10038,
-  VFMADDSUB213PDZrk = 10039,
-  VFMADDSUB213PDZrkz = 10040,
-  VFMADDSUB213PDm = 10041,
-  VFMADDSUB213PDr = 10042,
-  VFMADDSUB213PHZ128m = 10043,
-  VFMADDSUB213PHZ128mb = 10044,
-  VFMADDSUB213PHZ128mbk = 10045,
-  VFMADDSUB213PHZ128mbkz = 10046,
-  VFMADDSUB213PHZ128mk = 10047,
-  VFMADDSUB213PHZ128mkz = 10048,
-  VFMADDSUB213PHZ128r = 10049,
-  VFMADDSUB213PHZ128rk = 10050,
-  VFMADDSUB213PHZ128rkz = 10051,
-  VFMADDSUB213PHZ256m = 10052,
-  VFMADDSUB213PHZ256mb = 10053,
-  VFMADDSUB213PHZ256mbk = 10054,
-  VFMADDSUB213PHZ256mbkz = 10055,
-  VFMADDSUB213PHZ256mk = 10056,
-  VFMADDSUB213PHZ256mkz = 10057,
-  VFMADDSUB213PHZ256r = 10058,
-  VFMADDSUB213PHZ256rk = 10059,
-  VFMADDSUB213PHZ256rkz = 10060,
-  VFMADDSUB213PHZm = 10061,
-  VFMADDSUB213PHZmb = 10062,
-  VFMADDSUB213PHZmbk = 10063,
-  VFMADDSUB213PHZmbkz = 10064,
-  VFMADDSUB213PHZmk = 10065,
-  VFMADDSUB213PHZmkz = 10066,
-  VFMADDSUB213PHZr = 10067,
-  VFMADDSUB213PHZrb = 10068,
-  VFMADDSUB213PHZrbk = 10069,
-  VFMADDSUB213PHZrbkz = 10070,
-  VFMADDSUB213PHZrk = 10071,
-  VFMADDSUB213PHZrkz = 10072,
-  VFMADDSUB213PSYm = 10073,
-  VFMADDSUB213PSYr = 10074,
-  VFMADDSUB213PSZ128m = 10075,
-  VFMADDSUB213PSZ128mb = 10076,
-  VFMADDSUB213PSZ128mbk = 10077,
-  VFMADDSUB213PSZ128mbkz = 10078,
-  VFMADDSUB213PSZ128mk = 10079,
-  VFMADDSUB213PSZ128mkz = 10080,
-  VFMADDSUB213PSZ128r = 10081,
-  VFMADDSUB213PSZ128rk = 10082,
-  VFMADDSUB213PSZ128rkz = 10083,
-  VFMADDSUB213PSZ256m = 10084,
-  VFMADDSUB213PSZ256mb = 10085,
-  VFMADDSUB213PSZ256mbk = 10086,
-  VFMADDSUB213PSZ256mbkz = 10087,
-  VFMADDSUB213PSZ256mk = 10088,
-  VFMADDSUB213PSZ256mkz = 10089,
-  VFMADDSUB213PSZ256r = 10090,
-  VFMADDSUB213PSZ256rk = 10091,
-  VFMADDSUB213PSZ256rkz = 10092,
-  VFMADDSUB213PSZm = 10093,
-  VFMADDSUB213PSZmb = 10094,
-  VFMADDSUB213PSZmbk = 10095,
-  VFMADDSUB213PSZmbkz = 10096,
-  VFMADDSUB213PSZmk = 10097,
-  VFMADDSUB213PSZmkz = 10098,
-  VFMADDSUB213PSZr = 10099,
-  VFMADDSUB213PSZrb = 10100,
-  VFMADDSUB213PSZrbk = 10101,
-  VFMADDSUB213PSZrbkz = 10102,
-  VFMADDSUB213PSZrk = 10103,
-  VFMADDSUB213PSZrkz = 10104,
-  VFMADDSUB213PSm = 10105,
-  VFMADDSUB213PSr = 10106,
-  VFMADDSUB231PDYm = 10107,
-  VFMADDSUB231PDYr = 10108,
-  VFMADDSUB231PDZ128m = 10109,
-  VFMADDSUB231PDZ128mb = 10110,
-  VFMADDSUB231PDZ128mbk = 10111,
-  VFMADDSUB231PDZ128mbkz = 10112,
-  VFMADDSUB231PDZ128mk = 10113,
-  VFMADDSUB231PDZ128mkz = 10114,
-  VFMADDSUB231PDZ128r = 10115,
-  VFMADDSUB231PDZ128rk = 10116,
-  VFMADDSUB231PDZ128rkz = 10117,
-  VFMADDSUB231PDZ256m = 10118,
-  VFMADDSUB231PDZ256mb = 10119,
-  VFMADDSUB231PDZ256mbk = 10120,
-  VFMADDSUB231PDZ256mbkz = 10121,
-  VFMADDSUB231PDZ256mk = 10122,
-  VFMADDSUB231PDZ256mkz = 10123,
-  VFMADDSUB231PDZ256r = 10124,
-  VFMADDSUB231PDZ256rk = 10125,
-  VFMADDSUB231PDZ256rkz = 10126,
-  VFMADDSUB231PDZm = 10127,
-  VFMADDSUB231PDZmb = 10128,
-  VFMADDSUB231PDZmbk = 10129,
-  VFMADDSUB231PDZmbkz = 10130,
-  VFMADDSUB231PDZmk = 10131,
-  VFMADDSUB231PDZmkz = 10132,
-  VFMADDSUB231PDZr = 10133,
-  VFMADDSUB231PDZrb = 10134,
-  VFMADDSUB231PDZrbk = 10135,
-  VFMADDSUB231PDZrbkz = 10136,
-  VFMADDSUB231PDZrk = 10137,
-  VFMADDSUB231PDZrkz = 10138,
-  VFMADDSUB231PDm = 10139,
-  VFMADDSUB231PDr = 10140,
-  VFMADDSUB231PHZ128m = 10141,
-  VFMADDSUB231PHZ128mb = 10142,
-  VFMADDSUB231PHZ128mbk = 10143,
-  VFMADDSUB231PHZ128mbkz = 10144,
-  VFMADDSUB231PHZ128mk = 10145,
-  VFMADDSUB231PHZ128mkz = 10146,
-  VFMADDSUB231PHZ128r = 10147,
-  VFMADDSUB231PHZ128rk = 10148,
-  VFMADDSUB231PHZ128rkz = 10149,
-  VFMADDSUB231PHZ256m = 10150,
-  VFMADDSUB231PHZ256mb = 10151,
-  VFMADDSUB231PHZ256mbk = 10152,
-  VFMADDSUB231PHZ256mbkz = 10153,
-  VFMADDSUB231PHZ256mk = 10154,
-  VFMADDSUB231PHZ256mkz = 10155,
-  VFMADDSUB231PHZ256r = 10156,
-  VFMADDSUB231PHZ256rk = 10157,
-  VFMADDSUB231PHZ256rkz = 10158,
-  VFMADDSUB231PHZm = 10159,
-  VFMADDSUB231PHZmb = 10160,
-  VFMADDSUB231PHZmbk = 10161,
-  VFMADDSUB231PHZmbkz = 10162,
-  VFMADDSUB231PHZmk = 10163,
-  VFMADDSUB231PHZmkz = 10164,
-  VFMADDSUB231PHZr = 10165,
-  VFMADDSUB231PHZrb = 10166,
-  VFMADDSUB231PHZrbk = 10167,
-  VFMADDSUB231PHZrbkz = 10168,
-  VFMADDSUB231PHZrk = 10169,
-  VFMADDSUB231PHZrkz = 10170,
-  VFMADDSUB231PSYm = 10171,
-  VFMADDSUB231PSYr = 10172,
-  VFMADDSUB231PSZ128m = 10173,
-  VFMADDSUB231PSZ128mb = 10174,
-  VFMADDSUB231PSZ128mbk = 10175,
-  VFMADDSUB231PSZ128mbkz = 10176,
-  VFMADDSUB231PSZ128mk = 10177,
-  VFMADDSUB231PSZ128mkz = 10178,
-  VFMADDSUB231PSZ128r = 10179,
-  VFMADDSUB231PSZ128rk = 10180,
-  VFMADDSUB231PSZ128rkz = 10181,
-  VFMADDSUB231PSZ256m = 10182,
-  VFMADDSUB231PSZ256mb = 10183,
-  VFMADDSUB231PSZ256mbk = 10184,
-  VFMADDSUB231PSZ256mbkz = 10185,
-  VFMADDSUB231PSZ256mk = 10186,
-  VFMADDSUB231PSZ256mkz = 10187,
-  VFMADDSUB231PSZ256r = 10188,
-  VFMADDSUB231PSZ256rk = 10189,
-  VFMADDSUB231PSZ256rkz = 10190,
-  VFMADDSUB231PSZm = 10191,
-  VFMADDSUB231PSZmb = 10192,
-  VFMADDSUB231PSZmbk = 10193,
-  VFMADDSUB231PSZmbkz = 10194,
-  VFMADDSUB231PSZmk = 10195,
-  VFMADDSUB231PSZmkz = 10196,
-  VFMADDSUB231PSZr = 10197,
-  VFMADDSUB231PSZrb = 10198,
-  VFMADDSUB231PSZrbk = 10199,
-  VFMADDSUB231PSZrbkz = 10200,
-  VFMADDSUB231PSZrk = 10201,
-  VFMADDSUB231PSZrkz = 10202,
-  VFMADDSUB231PSm = 10203,
-  VFMADDSUB231PSr = 10204,
-  VFMADDSUBPD4Ymr = 10205,
-  VFMADDSUBPD4Yrm = 10206,
-  VFMADDSUBPD4Yrr = 10207,
-  VFMADDSUBPD4Yrr_REV = 10208,
-  VFMADDSUBPD4mr = 10209,
-  VFMADDSUBPD4rm = 10210,
-  VFMADDSUBPD4rr = 10211,
-  VFMADDSUBPD4rr_REV = 10212,
-  VFMADDSUBPS4Ymr = 10213,
-  VFMADDSUBPS4Yrm = 10214,
-  VFMADDSUBPS4Yrr = 10215,
-  VFMADDSUBPS4Yrr_REV = 10216,
-  VFMADDSUBPS4mr = 10217,
-  VFMADDSUBPS4rm = 10218,
-  VFMADDSUBPS4rr = 10219,
-  VFMADDSUBPS4rr_REV = 10220,
-  VFMSUB132BF16Z128m = 10221,
-  VFMSUB132BF16Z128mb = 10222,
-  VFMSUB132BF16Z128mbk = 10223,
-  VFMSUB132BF16Z128mbkz = 10224,
-  VFMSUB132BF16Z128mk = 10225,
-  VFMSUB132BF16Z128mkz = 10226,
-  VFMSUB132BF16Z128r = 10227,
-  VFMSUB132BF16Z128rk = 10228,
-  VFMSUB132BF16Z128rkz = 10229,
-  VFMSUB132BF16Z256m = 10230,
-  VFMSUB132BF16Z256mb = 10231,
-  VFMSUB132BF16Z256mbk = 10232,
-  VFMSUB132BF16Z256mbkz = 10233,
-  VFMSUB132BF16Z256mk = 10234,
-  VFMSUB132BF16Z256mkz = 10235,
-  VFMSUB132BF16Z256r = 10236,
-  VFMSUB132BF16Z256rk = 10237,
-  VFMSUB132BF16Z256rkz = 10238,
-  VFMSUB132BF16Zm = 10239,
-  VFMSUB132BF16Zmb = 10240,
-  VFMSUB132BF16Zmbk = 10241,
-  VFMSUB132BF16Zmbkz = 10242,
-  VFMSUB132BF16Zmk = 10243,
-  VFMSUB132BF16Zmkz = 10244,
-  VFMSUB132BF16Zr = 10245,
-  VFMSUB132BF16Zrk = 10246,
-  VFMSUB132BF16Zrkz = 10247,
-  VFMSUB132PDYm = 10248,
-  VFMSUB132PDYr = 10249,
-  VFMSUB132PDZ128m = 10250,
-  VFMSUB132PDZ128mb = 10251,
-  VFMSUB132PDZ128mbk = 10252,
-  VFMSUB132PDZ128mbkz = 10253,
-  VFMSUB132PDZ128mk = 10254,
-  VFMSUB132PDZ128mkz = 10255,
-  VFMSUB132PDZ128r = 10256,
-  VFMSUB132PDZ128rk = 10257,
-  VFMSUB132PDZ128rkz = 10258,
-  VFMSUB132PDZ256m = 10259,
-  VFMSUB132PDZ256mb = 10260,
-  VFMSUB132PDZ256mbk = 10261,
-  VFMSUB132PDZ256mbkz = 10262,
-  VFMSUB132PDZ256mk = 10263,
-  VFMSUB132PDZ256mkz = 10264,
-  VFMSUB132PDZ256r = 10265,
-  VFMSUB132PDZ256rk = 10266,
-  VFMSUB132PDZ256rkz = 10267,
-  VFMSUB132PDZm = 10268,
-  VFMSUB132PDZmb = 10269,
-  VFMSUB132PDZmbk = 10270,
-  VFMSUB132PDZmbkz = 10271,
-  VFMSUB132PDZmk = 10272,
-  VFMSUB132PDZmkz = 10273,
-  VFMSUB132PDZr = 10274,
-  VFMSUB132PDZrb = 10275,
-  VFMSUB132PDZrbk = 10276,
-  VFMSUB132PDZrbkz = 10277,
-  VFMSUB132PDZrk = 10278,
-  VFMSUB132PDZrkz = 10279,
-  VFMSUB132PDm = 10280,
-  VFMSUB132PDr = 10281,
-  VFMSUB132PHZ128m = 10282,
-  VFMSUB132PHZ128mb = 10283,
-  VFMSUB132PHZ128mbk = 10284,
-  VFMSUB132PHZ128mbkz = 10285,
-  VFMSUB132PHZ128mk = 10286,
-  VFMSUB132PHZ128mkz = 10287,
-  VFMSUB132PHZ128r = 10288,
-  VFMSUB132PHZ128rk = 10289,
-  VFMSUB132PHZ128rkz = 10290,
-  VFMSUB132PHZ256m = 10291,
-  VFMSUB132PHZ256mb = 10292,
-  VFMSUB132PHZ256mbk = 10293,
-  VFMSUB132PHZ256mbkz = 10294,
-  VFMSUB132PHZ256mk = 10295,
-  VFMSUB132PHZ256mkz = 10296,
-  VFMSUB132PHZ256r = 10297,
-  VFMSUB132PHZ256rk = 10298,
-  VFMSUB132PHZ256rkz = 10299,
-  VFMSUB132PHZm = 10300,
-  VFMSUB132PHZmb = 10301,
-  VFMSUB132PHZmbk = 10302,
-  VFMSUB132PHZmbkz = 10303,
-  VFMSUB132PHZmk = 10304,
-  VFMSUB132PHZmkz = 10305,
-  VFMSUB132PHZr = 10306,
-  VFMSUB132PHZrb = 10307,
-  VFMSUB132PHZrbk = 10308,
-  VFMSUB132PHZrbkz = 10309,
-  VFMSUB132PHZrk = 10310,
-  VFMSUB132PHZrkz = 10311,
-  VFMSUB132PSYm = 10312,
-  VFMSUB132PSYr = 10313,
-  VFMSUB132PSZ128m = 10314,
-  VFMSUB132PSZ128mb = 10315,
-  VFMSUB132PSZ128mbk = 10316,
-  VFMSUB132PSZ128mbkz = 10317,
-  VFMSUB132PSZ128mk = 10318,
-  VFMSUB132PSZ128mkz = 10319,
-  VFMSUB132PSZ128r = 10320,
-  VFMSUB132PSZ128rk = 10321,
-  VFMSUB132PSZ128rkz = 10322,
-  VFMSUB132PSZ256m = 10323,
-  VFMSUB132PSZ256mb = 10324,
-  VFMSUB132PSZ256mbk = 10325,
-  VFMSUB132PSZ256mbkz = 10326,
-  VFMSUB132PSZ256mk = 10327,
-  VFMSUB132PSZ256mkz = 10328,
-  VFMSUB132PSZ256r = 10329,
-  VFMSUB132PSZ256rk = 10330,
-  VFMSUB132PSZ256rkz = 10331,
-  VFMSUB132PSZm = 10332,
-  VFMSUB132PSZmb = 10333,
-  VFMSUB132PSZmbk = 10334,
-  VFMSUB132PSZmbkz = 10335,
-  VFMSUB132PSZmk = 10336,
-  VFMSUB132PSZmkz = 10337,
-  VFMSUB132PSZr = 10338,
-  VFMSUB132PSZrb = 10339,
-  VFMSUB132PSZrbk = 10340,
-  VFMSUB132PSZrbkz = 10341,
-  VFMSUB132PSZrk = 10342,
-  VFMSUB132PSZrkz = 10343,
-  VFMSUB132PSm = 10344,
-  VFMSUB132PSr = 10345,
-  VFMSUB132SDZm = 10346,
-  VFMSUB132SDZm_Int = 10347,
-  VFMSUB132SDZmk_Int = 10348,
-  VFMSUB132SDZmkz_Int = 10349,
-  VFMSUB132SDZr = 10350,
-  VFMSUB132SDZr_Int = 10351,
-  VFMSUB132SDZrb = 10352,
-  VFMSUB132SDZrb_Int = 10353,
-  VFMSUB132SDZrbk_Int = 10354,
-  VFMSUB132SDZrbkz_Int = 10355,
-  VFMSUB132SDZrk_Int = 10356,
-  VFMSUB132SDZrkz_Int = 10357,
-  VFMSUB132SDm = 10358,
-  VFMSUB132SDm_Int = 10359,
-  VFMSUB132SDr = 10360,
-  VFMSUB132SDr_Int = 10361,
-  VFMSUB132SHZm = 10362,
-  VFMSUB132SHZm_Int = 10363,
-  VFMSUB132SHZmk_Int = 10364,
-  VFMSUB132SHZmkz_Int = 10365,
-  VFMSUB132SHZr = 10366,
-  VFMSUB132SHZr_Int = 10367,
-  VFMSUB132SHZrb = 10368,
-  VFMSUB132SHZrb_Int = 10369,
-  VFMSUB132SHZrbk_Int = 10370,
-  VFMSUB132SHZrbkz_Int = 10371,
-  VFMSUB132SHZrk_Int = 10372,
-  VFMSUB132SHZrkz_Int = 10373,
-  VFMSUB132SSZm = 10374,
-  VFMSUB132SSZm_Int = 10375,
-  VFMSUB132SSZmk_Int = 10376,
-  VFMSUB132SSZmkz_Int = 10377,
-  VFMSUB132SSZr = 10378,
-  VFMSUB132SSZr_Int = 10379,
-  VFMSUB132SSZrb = 10380,
-  VFMSUB132SSZrb_Int = 10381,
-  VFMSUB132SSZrbk_Int = 10382,
-  VFMSUB132SSZrbkz_Int = 10383,
-  VFMSUB132SSZrk_Int = 10384,
-  VFMSUB132SSZrkz_Int = 10385,
-  VFMSUB132SSm = 10386,
-  VFMSUB132SSm_Int = 10387,
-  VFMSUB132SSr = 10388,
-  VFMSUB132SSr_Int = 10389,
-  VFMSUB213BF16Z128m = 10390,
-  VFMSUB213BF16Z128mb = 10391,
-  VFMSUB213BF16Z128mbk = 10392,
-  VFMSUB213BF16Z128mbkz = 10393,
-  VFMSUB213BF16Z128mk = 10394,
-  VFMSUB213BF16Z128mkz = 10395,
-  VFMSUB213BF16Z128r = 10396,
-  VFMSUB213BF16Z128rk = 10397,
-  VFMSUB213BF16Z128rkz = 10398,
-  VFMSUB213BF16Z256m = 10399,
-  VFMSUB213BF16Z256mb = 10400,
-  VFMSUB213BF16Z256mbk = 10401,
-  VFMSUB213BF16Z256mbkz = 10402,
-  VFMSUB213BF16Z256mk = 10403,
-  VFMSUB213BF16Z256mkz = 10404,
-  VFMSUB213BF16Z256r = 10405,
-  VFMSUB213BF16Z256rk = 10406,
-  VFMSUB213BF16Z256rkz = 10407,
-  VFMSUB213BF16Zm = 10408,
-  VFMSUB213BF16Zmb = 10409,
-  VFMSUB213BF16Zmbk = 10410,
-  VFMSUB213BF16Zmbkz = 10411,
-  VFMSUB213BF16Zmk = 10412,
-  VFMSUB213BF16Zmkz = 10413,
-  VFMSUB213BF16Zr = 10414,
-  VFMSUB213BF16Zrk = 10415,
-  VFMSUB213BF16Zrkz = 10416,
-  VFMSUB213PDYm = 10417,
-  VFMSUB213PDYr = 10418,
-  VFMSUB213PDZ128m = 10419,
-  VFMSUB213PDZ128mb = 10420,
-  VFMSUB213PDZ128mbk = 10421,
-  VFMSUB213PDZ128mbkz = 10422,
-  VFMSUB213PDZ128mk = 10423,
-  VFMSUB213PDZ128mkz = 10424,
-  VFMSUB213PDZ128r = 10425,
-  VFMSUB213PDZ128rk = 10426,
-  VFMSUB213PDZ128rkz = 10427,
-  VFMSUB213PDZ256m = 10428,
-  VFMSUB213PDZ256mb = 10429,
-  VFMSUB213PDZ256mbk = 10430,
-  VFMSUB213PDZ256mbkz = 10431,
-  VFMSUB213PDZ256mk = 10432,
-  VFMSUB213PDZ256mkz = 10433,
-  VFMSUB213PDZ256r = 10434,
-  VFMSUB213PDZ256rk = 10435,
-  VFMSUB213PDZ256rkz = 10436,
-  VFMSUB213PDZm = 10437,
-  VFMSUB213PDZmb = 10438,
-  VFMSUB213PDZmbk = 10439,
-  VFMSUB213PDZmbkz = 10440,
-  VFMSUB213PDZmk = 10441,
-  VFMSUB213PDZmkz = 10442,
-  VFMSUB213PDZr = 10443,
-  VFMSUB213PDZrb = 10444,
-  VFMSUB213PDZrbk = 10445,
-  VFMSUB213PDZrbkz = 10446,
-  VFMSUB213PDZrk = 10447,
-  VFMSUB213PDZrkz = 10448,
-  VFMSUB213PDm = 10449,
-  VFMSUB213PDr = 10450,
-  VFMSUB213PHZ128m = 10451,
-  VFMSUB213PHZ128mb = 10452,
-  VFMSUB213PHZ128mbk = 10453,
-  VFMSUB213PHZ128mbkz = 10454,
-  VFMSUB213PHZ128mk = 10455,
-  VFMSUB213PHZ128mkz = 10456,
-  VFMSUB213PHZ128r = 10457,
-  VFMSUB213PHZ128rk = 10458,
-  VFMSUB213PHZ128rkz = 10459,
-  VFMSUB213PHZ256m = 10460,
-  VFMSUB213PHZ256mb = 10461,
-  VFMSUB213PHZ256mbk = 10462,
-  VFMSUB213PHZ256mbkz = 10463,
-  VFMSUB213PHZ256mk = 10464,
-  VFMSUB213PHZ256mkz = 10465,
-  VFMSUB213PHZ256r = 10466,
-  VFMSUB213PHZ256rk = 10467,
-  VFMSUB213PHZ256rkz = 10468,
-  VFMSUB213PHZm = 10469,
-  VFMSUB213PHZmb = 10470,
-  VFMSUB213PHZmbk = 10471,
-  VFMSUB213PHZmbkz = 10472,
-  VFMSUB213PHZmk = 10473,
-  VFMSUB213PHZmkz = 10474,
-  VFMSUB213PHZr = 10475,
-  VFMSUB213PHZrb = 10476,
-  VFMSUB213PHZrbk = 10477,
-  VFMSUB213PHZrbkz = 10478,
-  VFMSUB213PHZrk = 10479,
-  VFMSUB213PHZrkz = 10480,
-  VFMSUB213PSYm = 10481,
-  VFMSUB213PSYr = 10482,
-  VFMSUB213PSZ128m = 10483,
-  VFMSUB213PSZ128mb = 10484,
-  VFMSUB213PSZ128mbk = 10485,
-  VFMSUB213PSZ128mbkz = 10486,
-  VFMSUB213PSZ128mk = 10487,
-  VFMSUB213PSZ128mkz = 10488,
-  VFMSUB213PSZ128r = 10489,
-  VFMSUB213PSZ128rk = 10490,
-  VFMSUB213PSZ128rkz = 10491,
-  VFMSUB213PSZ256m = 10492,
-  VFMSUB213PSZ256mb = 10493,
-  VFMSUB213PSZ256mbk = 10494,
-  VFMSUB213PSZ256mbkz = 10495,
-  VFMSUB213PSZ256mk = 10496,
-  VFMSUB213PSZ256mkz = 10497,
-  VFMSUB213PSZ256r = 10498,
-  VFMSUB213PSZ256rk = 10499,
-  VFMSUB213PSZ256rkz = 10500,
-  VFMSUB213PSZm = 10501,
-  VFMSUB213PSZmb = 10502,
-  VFMSUB213PSZmbk = 10503,
-  VFMSUB213PSZmbkz = 10504,
-  VFMSUB213PSZmk = 10505,
-  VFMSUB213PSZmkz = 10506,
-  VFMSUB213PSZr = 10507,
-  VFMSUB213PSZrb = 10508,
-  VFMSUB213PSZrbk = 10509,
-  VFMSUB213PSZrbkz = 10510,
-  VFMSUB213PSZrk = 10511,
-  VFMSUB213PSZrkz = 10512,
-  VFMSUB213PSm = 10513,
-  VFMSUB213PSr = 10514,
-  VFMSUB213SDZm = 10515,
-  VFMSUB213SDZm_Int = 10516,
-  VFMSUB213SDZmk_Int = 10517,
-  VFMSUB213SDZmkz_Int = 10518,
-  VFMSUB213SDZr = 10519,
-  VFMSUB213SDZr_Int = 10520,
-  VFMSUB213SDZrb = 10521,
-  VFMSUB213SDZrb_Int = 10522,
-  VFMSUB213SDZrbk_Int = 10523,
-  VFMSUB213SDZrbkz_Int = 10524,
-  VFMSUB213SDZrk_Int = 10525,
-  VFMSUB213SDZrkz_Int = 10526,
-  VFMSUB213SDm = 10527,
-  VFMSUB213SDm_Int = 10528,
-  VFMSUB213SDr = 10529,
-  VFMSUB213SDr_Int = 10530,
-  VFMSUB213SHZm = 10531,
-  VFMSUB213SHZm_Int = 10532,
-  VFMSUB213SHZmk_Int = 10533,
-  VFMSUB213SHZmkz_Int = 10534,
-  VFMSUB213SHZr = 10535,
-  VFMSUB213SHZr_Int = 10536,
-  VFMSUB213SHZrb = 10537,
-  VFMSUB213SHZrb_Int = 10538,
-  VFMSUB213SHZrbk_Int = 10539,
-  VFMSUB213SHZrbkz_Int = 10540,
-  VFMSUB213SHZrk_Int = 10541,
-  VFMSUB213SHZrkz_Int = 10542,
-  VFMSUB213SSZm = 10543,
-  VFMSUB213SSZm_Int = 10544,
-  VFMSUB213SSZmk_Int = 10545,
-  VFMSUB213SSZmkz_Int = 10546,
-  VFMSUB213SSZr = 10547,
-  VFMSUB213SSZr_Int = 10548,
-  VFMSUB213SSZrb = 10549,
-  VFMSUB213SSZrb_Int = 10550,
-  VFMSUB213SSZrbk_Int = 10551,
-  VFMSUB213SSZrbkz_Int = 10552,
-  VFMSUB213SSZrk_Int = 10553,
-  VFMSUB213SSZrkz_Int = 10554,
-  VFMSUB213SSm = 10555,
-  VFMSUB213SSm_Int = 10556,
-  VFMSUB213SSr = 10557,
-  VFMSUB213SSr_Int = 10558,
-  VFMSUB231BF16Z128m = 10559,
-  VFMSUB231BF16Z128mb = 10560,
-  VFMSUB231BF16Z128mbk = 10561,
-  VFMSUB231BF16Z128mbkz = 10562,
-  VFMSUB231BF16Z128mk = 10563,
-  VFMSUB231BF16Z128mkz = 10564,
-  VFMSUB231BF16Z128r = 10565,
-  VFMSUB231BF16Z128rk = 10566,
-  VFMSUB231BF16Z128rkz = 10567,
-  VFMSUB231BF16Z256m = 10568,
-  VFMSUB231BF16Z256mb = 10569,
-  VFMSUB231BF16Z256mbk = 10570,
-  VFMSUB231BF16Z256mbkz = 10571,
-  VFMSUB231BF16Z256mk = 10572,
-  VFMSUB231BF16Z256mkz = 10573,
-  VFMSUB231BF16Z256r = 10574,
-  VFMSUB231BF16Z256rk = 10575,
-  VFMSUB231BF16Z256rkz = 10576,
-  VFMSUB231BF16Zm = 10577,
-  VFMSUB231BF16Zmb = 10578,
-  VFMSUB231BF16Zmbk = 10579,
-  VFMSUB231BF16Zmbkz = 10580,
-  VFMSUB231BF16Zmk = 10581,
-  VFMSUB231BF16Zmkz = 10582,
-  VFMSUB231BF16Zr = 10583,
-  VFMSUB231BF16Zrk = 10584,
-  VFMSUB231BF16Zrkz = 10585,
-  VFMSUB231PDYm = 10586,
-  VFMSUB231PDYr = 10587,
-  VFMSUB231PDZ128m = 10588,
-  VFMSUB231PDZ128mb = 10589,
-  VFMSUB231PDZ128mbk = 10590,
-  VFMSUB231PDZ128mbkz = 10591,
-  VFMSUB231PDZ128mk = 10592,
-  VFMSUB231PDZ128mkz = 10593,
-  VFMSUB231PDZ128r = 10594,
-  VFMSUB231PDZ128rk = 10595,
-  VFMSUB231PDZ128rkz = 10596,
-  VFMSUB231PDZ256m = 10597,
-  VFMSUB231PDZ256mb = 10598,
-  VFMSUB231PDZ256mbk = 10599,
-  VFMSUB231PDZ256mbkz = 10600,
-  VFMSUB231PDZ256mk = 10601,
-  VFMSUB231PDZ256mkz = 10602,
-  VFMSUB231PDZ256r = 10603,
-  VFMSUB231PDZ256rk = 10604,
-  VFMSUB231PDZ256rkz = 10605,
-  VFMSUB231PDZm = 10606,
-  VFMSUB231PDZmb = 10607,
-  VFMSUB231PDZmbk = 10608,
-  VFMSUB231PDZmbkz = 10609,
-  VFMSUB231PDZmk = 10610,
-  VFMSUB231PDZmkz = 10611,
-  VFMSUB231PDZr = 10612,
-  VFMSUB231PDZrb = 10613,
-  VFMSUB231PDZrbk = 10614,
-  VFMSUB231PDZrbkz = 10615,
-  VFMSUB231PDZrk = 10616,
-  VFMSUB231PDZrkz = 10617,
-  VFMSUB231PDm = 10618,
-  VFMSUB231PDr = 10619,
-  VFMSUB231PHZ128m = 10620,
-  VFMSUB231PHZ128mb = 10621,
-  VFMSUB231PHZ128mbk = 10622,
-  VFMSUB231PHZ128mbkz = 10623,
-  VFMSUB231PHZ128mk = 10624,
-  VFMSUB231PHZ128mkz = 10625,
-  VFMSUB231PHZ128r = 10626,
-  VFMSUB231PHZ128rk = 10627,
-  VFMSUB231PHZ128rkz = 10628,
-  VFMSUB231PHZ256m = 10629,
-  VFMSUB231PHZ256mb = 10630,
-  VFMSUB231PHZ256mbk = 10631,
-  VFMSUB231PHZ256mbkz = 10632,
-  VFMSUB231PHZ256mk = 10633,
-  VFMSUB231PHZ256mkz = 10634,
-  VFMSUB231PHZ256r = 10635,
-  VFMSUB231PHZ256rk = 10636,
-  VFMSUB231PHZ256rkz = 10637,
-  VFMSUB231PHZm = 10638,
-  VFMSUB231PHZmb = 10639,
-  VFMSUB231PHZmbk = 10640,
-  VFMSUB231PHZmbkz = 10641,
-  VFMSUB231PHZmk = 10642,
-  VFMSUB231PHZmkz = 10643,
-  VFMSUB231PHZr = 10644,
-  VFMSUB231PHZrb = 10645,
-  VFMSUB231PHZrbk = 10646,
-  VFMSUB231PHZrbkz = 10647,
-  VFMSUB231PHZrk = 10648,
-  VFMSUB231PHZrkz = 10649,
-  VFMSUB231PSYm = 10650,
-  VFMSUB231PSYr = 10651,
-  VFMSUB231PSZ128m = 10652,
-  VFMSUB231PSZ128mb = 10653,
-  VFMSUB231PSZ128mbk = 10654,
-  VFMSUB231PSZ128mbkz = 10655,
-  VFMSUB231PSZ128mk = 10656,
-  VFMSUB231PSZ128mkz = 10657,
-  VFMSUB231PSZ128r = 10658,
-  VFMSUB231PSZ128rk = 10659,
-  VFMSUB231PSZ128rkz = 10660,
-  VFMSUB231PSZ256m = 10661,
-  VFMSUB231PSZ256mb = 10662,
-  VFMSUB231PSZ256mbk = 10663,
-  VFMSUB231PSZ256mbkz = 10664,
-  VFMSUB231PSZ256mk = 10665,
-  VFMSUB231PSZ256mkz = 10666,
-  VFMSUB231PSZ256r = 10667,
-  VFMSUB231PSZ256rk = 10668,
-  VFMSUB231PSZ256rkz = 10669,
-  VFMSUB231PSZm = 10670,
-  VFMSUB231PSZmb = 10671,
-  VFMSUB231PSZmbk = 10672,
-  VFMSUB231PSZmbkz = 10673,
-  VFMSUB231PSZmk = 10674,
-  VFMSUB231PSZmkz = 10675,
-  VFMSUB231PSZr = 10676,
-  VFMSUB231PSZrb = 10677,
-  VFMSUB231PSZrbk = 10678,
-  VFMSUB231PSZrbkz = 10679,
-  VFMSUB231PSZrk = 10680,
-  VFMSUB231PSZrkz = 10681,
-  VFMSUB231PSm = 10682,
-  VFMSUB231PSr = 10683,
-  VFMSUB231SDZm = 10684,
-  VFMSUB231SDZm_Int = 10685,
-  VFMSUB231SDZmk_Int = 10686,
-  VFMSUB231SDZmkz_Int = 10687,
-  VFMSUB231SDZr = 10688,
-  VFMSUB231SDZr_Int = 10689,
-  VFMSUB231SDZrb = 10690,
-  VFMSUB231SDZrb_Int = 10691,
-  VFMSUB231SDZrbk_Int = 10692,
-  VFMSUB231SDZrbkz_Int = 10693,
-  VFMSUB231SDZrk_Int = 10694,
-  VFMSUB231SDZrkz_Int = 10695,
-  VFMSUB231SDm = 10696,
-  VFMSUB231SDm_Int = 10697,
-  VFMSUB231SDr = 10698,
-  VFMSUB231SDr_Int = 10699,
-  VFMSUB231SHZm = 10700,
-  VFMSUB231SHZm_Int = 10701,
-  VFMSUB231SHZmk_Int = 10702,
-  VFMSUB231SHZmkz_Int = 10703,
-  VFMSUB231SHZr = 10704,
-  VFMSUB231SHZr_Int = 10705,
-  VFMSUB231SHZrb = 10706,
-  VFMSUB231SHZrb_Int = 10707,
-  VFMSUB231SHZrbk_Int = 10708,
-  VFMSUB231SHZrbkz_Int = 10709,
-  VFMSUB231SHZrk_Int = 10710,
-  VFMSUB231SHZrkz_Int = 10711,
-  VFMSUB231SSZm = 10712,
-  VFMSUB231SSZm_Int = 10713,
-  VFMSUB231SSZmk_Int = 10714,
-  VFMSUB231SSZmkz_Int = 10715,
-  VFMSUB231SSZr = 10716,
-  VFMSUB231SSZr_Int = 10717,
-  VFMSUB231SSZrb = 10718,
-  VFMSUB231SSZrb_Int = 10719,
-  VFMSUB231SSZrbk_Int = 10720,
-  VFMSUB231SSZrbkz_Int = 10721,
-  VFMSUB231SSZrk_Int = 10722,
-  VFMSUB231SSZrkz_Int = 10723,
-  VFMSUB231SSm = 10724,
-  VFMSUB231SSm_Int = 10725,
-  VFMSUB231SSr = 10726,
-  VFMSUB231SSr_Int = 10727,
-  VFMSUBADD132PDYm = 10728,
-  VFMSUBADD132PDYr = 10729,
-  VFMSUBADD132PDZ128m = 10730,
-  VFMSUBADD132PDZ128mb = 10731,
-  VFMSUBADD132PDZ128mbk = 10732,
-  VFMSUBADD132PDZ128mbkz = 10733,
-  VFMSUBADD132PDZ128mk = 10734,
-  VFMSUBADD132PDZ128mkz = 10735,
-  VFMSUBADD132PDZ128r = 10736,
-  VFMSUBADD132PDZ128rk = 10737,
-  VFMSUBADD132PDZ128rkz = 10738,
-  VFMSUBADD132PDZ256m = 10739,
-  VFMSUBADD132PDZ256mb = 10740,
-  VFMSUBADD132PDZ256mbk = 10741,
-  VFMSUBADD132PDZ256mbkz = 10742,
-  VFMSUBADD132PDZ256mk = 10743,
-  VFMSUBADD132PDZ256mkz = 10744,
-  VFMSUBADD132PDZ256r = 10745,
-  VFMSUBADD132PDZ256rk = 10746,
-  VFMSUBADD132PDZ256rkz = 10747,
-  VFMSUBADD132PDZm = 10748,
-  VFMSUBADD132PDZmb = 10749,
-  VFMSUBADD132PDZmbk = 10750,
-  VFMSUBADD132PDZmbkz = 10751,
-  VFMSUBADD132PDZmk = 10752,
-  VFMSUBADD132PDZmkz = 10753,
-  VFMSUBADD132PDZr = 10754,
-  VFMSUBADD132PDZrb = 10755,
-  VFMSUBADD132PDZrbk = 10756,
-  VFMSUBADD132PDZrbkz = 10757,
-  VFMSUBADD132PDZrk = 10758,
-  VFMSUBADD132PDZrkz = 10759,
-  VFMSUBADD132PDm = 10760,
-  VFMSUBADD132PDr = 10761,
-  VFMSUBADD132PHZ128m = 10762,
-  VFMSUBADD132PHZ128mb = 10763,
-  VFMSUBADD132PHZ128mbk = 10764,
-  VFMSUBADD132PHZ128mbkz = 10765,
-  VFMSUBADD132PHZ128mk = 10766,
-  VFMSUBADD132PHZ128mkz = 10767,
-  VFMSUBADD132PHZ128r = 10768,
-  VFMSUBADD132PHZ128rk = 10769,
-  VFMSUBADD132PHZ128rkz = 10770,
-  VFMSUBADD132PHZ256m = 10771,
-  VFMSUBADD132PHZ256mb = 10772,
-  VFMSUBADD132PHZ256mbk = 10773,
-  VFMSUBADD132PHZ256mbkz = 10774,
-  VFMSUBADD132PHZ256mk = 10775,
-  VFMSUBADD132PHZ256mkz = 10776,
-  VFMSUBADD132PHZ256r = 10777,
-  VFMSUBADD132PHZ256rk = 10778,
-  VFMSUBADD132PHZ256rkz = 10779,
-  VFMSUBADD132PHZm = 10780,
-  VFMSUBADD132PHZmb = 10781,
-  VFMSUBADD132PHZmbk = 10782,
-  VFMSUBADD132PHZmbkz = 10783,
-  VFMSUBADD132PHZmk = 10784,
-  VFMSUBADD132PHZmkz = 10785,
-  VFMSUBADD132PHZr = 10786,
-  VFMSUBADD132PHZrb = 10787,
-  VFMSUBADD132PHZrbk = 10788,
-  VFMSUBADD132PHZrbkz = 10789,
-  VFMSUBADD132PHZrk = 10790,
-  VFMSUBADD132PHZrkz = 10791,
-  VFMSUBADD132PSYm = 10792,
-  VFMSUBADD132PSYr = 10793,
-  VFMSUBADD132PSZ128m = 10794,
-  VFMSUBADD132PSZ128mb = 10795,
-  VFMSUBADD132PSZ128mbk = 10796,
-  VFMSUBADD132PSZ128mbkz = 10797,
-  VFMSUBADD132PSZ128mk = 10798,
-  VFMSUBADD132PSZ128mkz = 10799,
-  VFMSUBADD132PSZ128r = 10800,
-  VFMSUBADD132PSZ128rk = 10801,
-  VFMSUBADD132PSZ128rkz = 10802,
-  VFMSUBADD132PSZ256m = 10803,
-  VFMSUBADD132PSZ256mb = 10804,
-  VFMSUBADD132PSZ256mbk = 10805,
-  VFMSUBADD132PSZ256mbkz = 10806,
-  VFMSUBADD132PSZ256mk = 10807,
-  VFMSUBADD132PSZ256mkz = 10808,
-  VFMSUBADD132PSZ256r = 10809,
-  VFMSUBADD132PSZ256rk = 10810,
-  VFMSUBADD132PSZ256rkz = 10811,
-  VFMSUBADD132PSZm = 10812,
-  VFMSUBADD132PSZmb = 10813,
-  VFMSUBADD132PSZmbk = 10814,
-  VFMSUBADD132PSZmbkz = 10815,
-  VFMSUBADD132PSZmk = 10816,
-  VFMSUBADD132PSZmkz = 10817,
-  VFMSUBADD132PSZr = 10818,
-  VFMSUBADD132PSZrb = 10819,
-  VFMSUBADD132PSZrbk = 10820,
-  VFMSUBADD132PSZrbkz = 10821,
-  VFMSUBADD132PSZrk = 10822,
-  VFMSUBADD132PSZrkz = 10823,
-  VFMSUBADD132PSm = 10824,
-  VFMSUBADD132PSr = 10825,
-  VFMSUBADD213PDYm = 10826,
-  VFMSUBADD213PDYr = 10827,
-  VFMSUBADD213PDZ128m = 10828,
-  VFMSUBADD213PDZ128mb = 10829,
-  VFMSUBADD213PDZ128mbk = 10830,
-  VFMSUBADD213PDZ128mbkz = 10831,
-  VFMSUBADD213PDZ128mk = 10832,
-  VFMSUBADD213PDZ128mkz = 10833,
-  VFMSUBADD213PDZ128r = 10834,
-  VFMSUBADD213PDZ128rk = 10835,
-  VFMSUBADD213PDZ128rkz = 10836,
-  VFMSUBADD213PDZ256m = 10837,
-  VFMSUBADD213PDZ256mb = 10838,
-  VFMSUBADD213PDZ256mbk = 10839,
-  VFMSUBADD213PDZ256mbkz = 10840,
-  VFMSUBADD213PDZ256mk = 10841,
-  VFMSUBADD213PDZ256mkz = 10842,
-  VFMSUBADD213PDZ256r = 10843,
-  VFMSUBADD213PDZ256rk = 10844,
-  VFMSUBADD213PDZ256rkz = 10845,
-  VFMSUBADD213PDZm = 10846,
-  VFMSUBADD213PDZmb = 10847,
-  VFMSUBADD213PDZmbk = 10848,
-  VFMSUBADD213PDZmbkz = 10849,
-  VFMSUBADD213PDZmk = 10850,
-  VFMSUBADD213PDZmkz = 10851,
-  VFMSUBADD213PDZr = 10852,
-  VFMSUBADD213PDZrb = 10853,
-  VFMSUBADD213PDZrbk = 10854,
-  VFMSUBADD213PDZrbkz = 10855,
-  VFMSUBADD213PDZrk = 10856,
-  VFMSUBADD213PDZrkz = 10857,
-  VFMSUBADD213PDm = 10858,
-  VFMSUBADD213PDr = 10859,
-  VFMSUBADD213PHZ128m = 10860,
-  VFMSUBADD213PHZ128mb = 10861,
-  VFMSUBADD213PHZ128mbk = 10862,
-  VFMSUBADD213PHZ128mbkz = 10863,
-  VFMSUBADD213PHZ128mk = 10864,
-  VFMSUBADD213PHZ128mkz = 10865,
-  VFMSUBADD213PHZ128r = 10866,
-  VFMSUBADD213PHZ128rk = 10867,
-  VFMSUBADD213PHZ128rkz = 10868,
-  VFMSUBADD213PHZ256m = 10869,
-  VFMSUBADD213PHZ256mb = 10870,
-  VFMSUBADD213PHZ256mbk = 10871,
-  VFMSUBADD213PHZ256mbkz = 10872,
-  VFMSUBADD213PHZ256mk = 10873,
-  VFMSUBADD213PHZ256mkz = 10874,
-  VFMSUBADD213PHZ256r = 10875,
-  VFMSUBADD213PHZ256rk = 10876,
-  VFMSUBADD213PHZ256rkz = 10877,
-  VFMSUBADD213PHZm = 10878,
-  VFMSUBADD213PHZmb = 10879,
-  VFMSUBADD213PHZmbk = 10880,
-  VFMSUBADD213PHZmbkz = 10881,
-  VFMSUBADD213PHZmk = 10882,
-  VFMSUBADD213PHZmkz = 10883,
-  VFMSUBADD213PHZr = 10884,
-  VFMSUBADD213PHZrb = 10885,
-  VFMSUBADD213PHZrbk = 10886,
-  VFMSUBADD213PHZrbkz = 10887,
-  VFMSUBADD213PHZrk = 10888,
-  VFMSUBADD213PHZrkz = 10889,
-  VFMSUBADD213PSYm = 10890,
-  VFMSUBADD213PSYr = 10891,
-  VFMSUBADD213PSZ128m = 10892,
-  VFMSUBADD213PSZ128mb = 10893,
-  VFMSUBADD213PSZ128mbk = 10894,
-  VFMSUBADD213PSZ128mbkz = 10895,
-  VFMSUBADD213PSZ128mk = 10896,
-  VFMSUBADD213PSZ128mkz = 10897,
-  VFMSUBADD213PSZ128r = 10898,
-  VFMSUBADD213PSZ128rk = 10899,
-  VFMSUBADD213PSZ128rkz = 10900,
-  VFMSUBADD213PSZ256m = 10901,
-  VFMSUBADD213PSZ256mb = 10902,
-  VFMSUBADD213PSZ256mbk = 10903,
-  VFMSUBADD213PSZ256mbkz = 10904,
-  VFMSUBADD213PSZ256mk = 10905,
-  VFMSUBADD213PSZ256mkz = 10906,
-  VFMSUBADD213PSZ256r = 10907,
-  VFMSUBADD213PSZ256rk = 10908,
-  VFMSUBADD213PSZ256rkz = 10909,
-  VFMSUBADD213PSZm = 10910,
-  VFMSUBADD213PSZmb = 10911,
-  VFMSUBADD213PSZmbk = 10912,
-  VFMSUBADD213PSZmbkz = 10913,
-  VFMSUBADD213PSZmk = 10914,
-  VFMSUBADD213PSZmkz = 10915,
-  VFMSUBADD213PSZr = 10916,
-  VFMSUBADD213PSZrb = 10917,
-  VFMSUBADD213PSZrbk = 10918,
-  VFMSUBADD213PSZrbkz = 10919,
-  VFMSUBADD213PSZrk = 10920,
-  VFMSUBADD213PSZrkz = 10921,
-  VFMSUBADD213PSm = 10922,
-  VFMSUBADD213PSr = 10923,
-  VFMSUBADD231PDYm = 10924,
-  VFMSUBADD231PDYr = 10925,
-  VFMSUBADD231PDZ128m = 10926,
-  VFMSUBADD231PDZ128mb = 10927,
-  VFMSUBADD231PDZ128mbk = 10928,
-  VFMSUBADD231PDZ128mbkz = 10929,
-  VFMSUBADD231PDZ128mk = 10930,
-  VFMSUBADD231PDZ128mkz = 10931,
-  VFMSUBADD231PDZ128r = 10932,
-  VFMSUBADD231PDZ128rk = 10933,
-  VFMSUBADD231PDZ128rkz = 10934,
-  VFMSUBADD231PDZ256m = 10935,
-  VFMSUBADD231PDZ256mb = 10936,
-  VFMSUBADD231PDZ256mbk = 10937,
-  VFMSUBADD231PDZ256mbkz = 10938,
-  VFMSUBADD231PDZ256mk = 10939,
-  VFMSUBADD231PDZ256mkz = 10940,
-  VFMSUBADD231PDZ256r = 10941,
-  VFMSUBADD231PDZ256rk = 10942,
-  VFMSUBADD231PDZ256rkz = 10943,
-  VFMSUBADD231PDZm = 10944,
-  VFMSUBADD231PDZmb = 10945,
-  VFMSUBADD231PDZmbk = 10946,
-  VFMSUBADD231PDZmbkz = 10947,
-  VFMSUBADD231PDZmk = 10948,
-  VFMSUBADD231PDZmkz = 10949,
-  VFMSUBADD231PDZr = 10950,
-  VFMSUBADD231PDZrb = 10951,
-  VFMSUBADD231PDZrbk = 10952,
-  VFMSUBADD231PDZrbkz = 10953,
-  VFMSUBADD231PDZrk = 10954,
-  VFMSUBADD231PDZrkz = 10955,
-  VFMSUBADD231PDm = 10956,
-  VFMSUBADD231PDr = 10957,
-  VFMSUBADD231PHZ128m = 10958,
-  VFMSUBADD231PHZ128mb = 10959,
-  VFMSUBADD231PHZ128mbk = 10960,
-  VFMSUBADD231PHZ128mbkz = 10961,
-  VFMSUBADD231PHZ128mk = 10962,
-  VFMSUBADD231PHZ128mkz = 10963,
-  VFMSUBADD231PHZ128r = 10964,
-  VFMSUBADD231PHZ128rk = 10965,
-  VFMSUBADD231PHZ128rkz = 10966,
-  VFMSUBADD231PHZ256m = 10967,
-  VFMSUBADD231PHZ256mb = 10968,
-  VFMSUBADD231PHZ256mbk = 10969,
-  VFMSUBADD231PHZ256mbkz = 10970,
-  VFMSUBADD231PHZ256mk = 10971,
-  VFMSUBADD231PHZ256mkz = 10972,
-  VFMSUBADD231PHZ256r = 10973,
-  VFMSUBADD231PHZ256rk = 10974,
-  VFMSUBADD231PHZ256rkz = 10975,
-  VFMSUBADD231PHZm = 10976,
-  VFMSUBADD231PHZmb = 10977,
-  VFMSUBADD231PHZmbk = 10978,
-  VFMSUBADD231PHZmbkz = 10979,
-  VFMSUBADD231PHZmk = 10980,
-  VFMSUBADD231PHZmkz = 10981,
-  VFMSUBADD231PHZr = 10982,
-  VFMSUBADD231PHZrb = 10983,
-  VFMSUBADD231PHZrbk = 10984,
-  VFMSUBADD231PHZrbkz = 10985,
-  VFMSUBADD231PHZrk = 10986,
-  VFMSUBADD231PHZrkz = 10987,
-  VFMSUBADD231PSYm = 10988,
-  VFMSUBADD231PSYr = 10989,
-  VFMSUBADD231PSZ128m = 10990,
-  VFMSUBADD231PSZ128mb = 10991,
-  VFMSUBADD231PSZ128mbk = 10992,
-  VFMSUBADD231PSZ128mbkz = 10993,
-  VFMSUBADD231PSZ128mk = 10994,
-  VFMSUBADD231PSZ128mkz = 10995,
-  VFMSUBADD231PSZ128r = 10996,
-  VFMSUBADD231PSZ128rk = 10997,
-  VFMSUBADD231PSZ128rkz = 10998,
-  VFMSUBADD231PSZ256m = 10999,
-  VFMSUBADD231PSZ256mb = 11000,
-  VFMSUBADD231PSZ256mbk = 11001,
-  VFMSUBADD231PSZ256mbkz = 11002,
-  VFMSUBADD231PSZ256mk = 11003,
-  VFMSUBADD231PSZ256mkz = 11004,
-  VFMSUBADD231PSZ256r = 11005,
-  VFMSUBADD231PSZ256rk = 11006,
-  VFMSUBADD231PSZ256rkz = 11007,
-  VFMSUBADD231PSZm = 11008,
-  VFMSUBADD231PSZmb = 11009,
-  VFMSUBADD231PSZmbk = 11010,
-  VFMSUBADD231PSZmbkz = 11011,
-  VFMSUBADD231PSZmk = 11012,
-  VFMSUBADD231PSZmkz = 11013,
-  VFMSUBADD231PSZr = 11014,
-  VFMSUBADD231PSZrb = 11015,
-  VFMSUBADD231PSZrbk = 11016,
-  VFMSUBADD231PSZrbkz = 11017,
-  VFMSUBADD231PSZrk = 11018,
-  VFMSUBADD231PSZrkz = 11019,
-  VFMSUBADD231PSm = 11020,
-  VFMSUBADD231PSr = 11021,
-  VFMSUBADDPD4Ymr = 11022,
-  VFMSUBADDPD4Yrm = 11023,
-  VFMSUBADDPD4Yrr = 11024,
-  VFMSUBADDPD4Yrr_REV = 11025,
-  VFMSUBADDPD4mr = 11026,
-  VFMSUBADDPD4rm = 11027,
-  VFMSUBADDPD4rr = 11028,
-  VFMSUBADDPD4rr_REV = 11029,
-  VFMSUBADDPS4Ymr = 11030,
-  VFMSUBADDPS4Yrm = 11031,
-  VFMSUBADDPS4Yrr = 11032,
-  VFMSUBADDPS4Yrr_REV = 11033,
-  VFMSUBADDPS4mr = 11034,
-  VFMSUBADDPS4rm = 11035,
-  VFMSUBADDPS4rr = 11036,
-  VFMSUBADDPS4rr_REV = 11037,
-  VFMSUBPD4Ymr = 11038,
-  VFMSUBPD4Yrm = 11039,
-  VFMSUBPD4Yrr = 11040,
-  VFMSUBPD4Yrr_REV = 11041,
-  VFMSUBPD4mr = 11042,
-  VFMSUBPD4rm = 11043,
-  VFMSUBPD4rr = 11044,
-  VFMSUBPD4rr_REV = 11045,
-  VFMSUBPS4Ymr = 11046,
-  VFMSUBPS4Yrm = 11047,
-  VFMSUBPS4Yrr = 11048,
-  VFMSUBPS4Yrr_REV = 11049,
-  VFMSUBPS4mr = 11050,
-  VFMSUBPS4rm = 11051,
-  VFMSUBPS4rr = 11052,
-  VFMSUBPS4rr_REV = 11053,
-  VFMSUBSD4mr = 11054,
-  VFMSUBSD4mr_Int = 11055,
-  VFMSUBSD4rm = 11056,
-  VFMSUBSD4rm_Int = 11057,
-  VFMSUBSD4rr = 11058,
-  VFMSUBSD4rr_Int = 11059,
-  VFMSUBSD4rr_Int_REV = 11060,
-  VFMSUBSD4rr_REV = 11061,
-  VFMSUBSS4mr = 11062,
-  VFMSUBSS4mr_Int = 11063,
-  VFMSUBSS4rm = 11064,
-  VFMSUBSS4rm_Int = 11065,
-  VFMSUBSS4rr = 11066,
-  VFMSUBSS4rr_Int = 11067,
-  VFMSUBSS4rr_Int_REV = 11068,
-  VFMSUBSS4rr_REV = 11069,
-  VFMULCPHZ128rm = 11070,
-  VFMULCPHZ128rmb = 11071,
-  VFMULCPHZ128rmbk = 11072,
-  VFMULCPHZ128rmbkz = 11073,
-  VFMULCPHZ128rmk = 11074,
-  VFMULCPHZ128rmkz = 11075,
-  VFMULCPHZ128rr = 11076,
-  VFMULCPHZ128rrk = 11077,
-  VFMULCPHZ128rrkz = 11078,
-  VFMULCPHZ256rm = 11079,
-  VFMULCPHZ256rmb = 11080,
-  VFMULCPHZ256rmbk = 11081,
-  VFMULCPHZ256rmbkz = 11082,
-  VFMULCPHZ256rmk = 11083,
-  VFMULCPHZ256rmkz = 11084,
-  VFMULCPHZ256rr = 11085,
-  VFMULCPHZ256rrk = 11086,
-  VFMULCPHZ256rrkz = 11087,
-  VFMULCPHZrm = 11088,
-  VFMULCPHZrmb = 11089,
-  VFMULCPHZrmbk = 11090,
-  VFMULCPHZrmbkz = 11091,
-  VFMULCPHZrmk = 11092,
-  VFMULCPHZrmkz = 11093,
-  VFMULCPHZrr = 11094,
-  VFMULCPHZrrb = 11095,
-  VFMULCPHZrrbk = 11096,
-  VFMULCPHZrrbkz = 11097,
-  VFMULCPHZrrk = 11098,
-  VFMULCPHZrrkz = 11099,
-  VFMULCSHZrm = 11100,
-  VFMULCSHZrmk = 11101,
-  VFMULCSHZrmkz = 11102,
-  VFMULCSHZrr = 11103,
-  VFMULCSHZrrb = 11104,
-  VFMULCSHZrrbk = 11105,
-  VFMULCSHZrrbkz = 11106,
-  VFMULCSHZrrk = 11107,
-  VFMULCSHZrrkz = 11108,
-  VFNMADD132BF16Z128m = 11109,
-  VFNMADD132BF16Z128mb = 11110,
-  VFNMADD132BF16Z128mbk = 11111,
-  VFNMADD132BF16Z128mbkz = 11112,
-  VFNMADD132BF16Z128mk = 11113,
-  VFNMADD132BF16Z128mkz = 11114,
-  VFNMADD132BF16Z128r = 11115,
-  VFNMADD132BF16Z128rk = 11116,
-  VFNMADD132BF16Z128rkz = 11117,
-  VFNMADD132BF16Z256m = 11118,
-  VFNMADD132BF16Z256mb = 11119,
-  VFNMADD132BF16Z256mbk = 11120,
-  VFNMADD132BF16Z256mbkz = 11121,
-  VFNMADD132BF16Z256mk = 11122,
-  VFNMADD132BF16Z256mkz = 11123,
-  VFNMADD132BF16Z256r = 11124,
-  VFNMADD132BF16Z256rk = 11125,
-  VFNMADD132BF16Z256rkz = 11126,
-  VFNMADD132BF16Zm = 11127,
-  VFNMADD132BF16Zmb = 11128,
-  VFNMADD132BF16Zmbk = 11129,
-  VFNMADD132BF16Zmbkz = 11130,
-  VFNMADD132BF16Zmk = 11131,
-  VFNMADD132BF16Zmkz = 11132,
-  VFNMADD132BF16Zr = 11133,
-  VFNMADD132BF16Zrk = 11134,
-  VFNMADD132BF16Zrkz = 11135,
-  VFNMADD132PDYm = 11136,
-  VFNMADD132PDYr = 11137,
-  VFNMADD132PDZ128m = 11138,
-  VFNMADD132PDZ128mb = 11139,
-  VFNMADD132PDZ128mbk = 11140,
-  VFNMADD132PDZ128mbkz = 11141,
-  VFNMADD132PDZ128mk = 11142,
-  VFNMADD132PDZ128mkz = 11143,
-  VFNMADD132PDZ128r = 11144,
-  VFNMADD132PDZ128rk = 11145,
-  VFNMADD132PDZ128rkz = 11146,
-  VFNMADD132PDZ256m = 11147,
-  VFNMADD132PDZ256mb = 11148,
-  VFNMADD132PDZ256mbk = 11149,
-  VFNMADD132PDZ256mbkz = 11150,
-  VFNMADD132PDZ256mk = 11151,
-  VFNMADD132PDZ256mkz = 11152,
-  VFNMADD132PDZ256r = 11153,
-  VFNMADD132PDZ256rk = 11154,
-  VFNMADD132PDZ256rkz = 11155,
-  VFNMADD132PDZm = 11156,
-  VFNMADD132PDZmb = 11157,
-  VFNMADD132PDZmbk = 11158,
-  VFNMADD132PDZmbkz = 11159,
-  VFNMADD132PDZmk = 11160,
-  VFNMADD132PDZmkz = 11161,
-  VFNMADD132PDZr = 11162,
-  VFNMADD132PDZrb = 11163,
-  VFNMADD132PDZrbk = 11164,
-  VFNMADD132PDZrbkz = 11165,
-  VFNMADD132PDZrk = 11166,
-  VFNMADD132PDZrkz = 11167,
-  VFNMADD132PDm = 11168,
-  VFNMADD132PDr = 11169,
-  VFNMADD132PHZ128m = 11170,
-  VFNMADD132PHZ128mb = 11171,
-  VFNMADD132PHZ128mbk = 11172,
-  VFNMADD132PHZ128mbkz = 11173,
-  VFNMADD132PHZ128mk = 11174,
-  VFNMADD132PHZ128mkz = 11175,
-  VFNMADD132PHZ128r = 11176,
-  VFNMADD132PHZ128rk = 11177,
-  VFNMADD132PHZ128rkz = 11178,
-  VFNMADD132PHZ256m = 11179,
-  VFNMADD132PHZ256mb = 11180,
-  VFNMADD132PHZ256mbk = 11181,
-  VFNMADD132PHZ256mbkz = 11182,
-  VFNMADD132PHZ256mk = 11183,
-  VFNMADD132PHZ256mkz = 11184,
-  VFNMADD132PHZ256r = 11185,
-  VFNMADD132PHZ256rk = 11186,
-  VFNMADD132PHZ256rkz = 11187,
-  VFNMADD132PHZm = 11188,
-  VFNMADD132PHZmb = 11189,
-  VFNMADD132PHZmbk = 11190,
-  VFNMADD132PHZmbkz = 11191,
-  VFNMADD132PHZmk = 11192,
-  VFNMADD132PHZmkz = 11193,
-  VFNMADD132PHZr = 11194,
-  VFNMADD132PHZrb = 11195,
-  VFNMADD132PHZrbk = 11196,
-  VFNMADD132PHZrbkz = 11197,
-  VFNMADD132PHZrk = 11198,
-  VFNMADD132PHZrkz = 11199,
-  VFNMADD132PSYm = 11200,
-  VFNMADD132PSYr = 11201,
-  VFNMADD132PSZ128m = 11202,
-  VFNMADD132PSZ128mb = 11203,
-  VFNMADD132PSZ128mbk = 11204,
-  VFNMADD132PSZ128mbkz = 11205,
-  VFNMADD132PSZ128mk = 11206,
-  VFNMADD132PSZ128mkz = 11207,
-  VFNMADD132PSZ128r = 11208,
-  VFNMADD132PSZ128rk = 11209,
-  VFNMADD132PSZ128rkz = 11210,
-  VFNMADD132PSZ256m = 11211,
-  VFNMADD132PSZ256mb = 11212,
-  VFNMADD132PSZ256mbk = 11213,
-  VFNMADD132PSZ256mbkz = 11214,
-  VFNMADD132PSZ256mk = 11215,
-  VFNMADD132PSZ256mkz = 11216,
-  VFNMADD132PSZ256r = 11217,
-  VFNMADD132PSZ256rk = 11218,
-  VFNMADD132PSZ256rkz = 11219,
-  VFNMADD132PSZm = 11220,
-  VFNMADD132PSZmb = 11221,
-  VFNMADD132PSZmbk = 11222,
-  VFNMADD132PSZmbkz = 11223,
-  VFNMADD132PSZmk = 11224,
-  VFNMADD132PSZmkz = 11225,
-  VFNMADD132PSZr = 11226,
-  VFNMADD132PSZrb = 11227,
-  VFNMADD132PSZrbk = 11228,
-  VFNMADD132PSZrbkz = 11229,
-  VFNMADD132PSZrk = 11230,
-  VFNMADD132PSZrkz = 11231,
-  VFNMADD132PSm = 11232,
-  VFNMADD132PSr = 11233,
-  VFNMADD132SDZm = 11234,
-  VFNMADD132SDZm_Int = 11235,
-  VFNMADD132SDZmk_Int = 11236,
-  VFNMADD132SDZmkz_Int = 11237,
-  VFNMADD132SDZr = 11238,
-  VFNMADD132SDZr_Int = 11239,
-  VFNMADD132SDZrb = 11240,
-  VFNMADD132SDZrb_Int = 11241,
-  VFNMADD132SDZrbk_Int = 11242,
-  VFNMADD132SDZrbkz_Int = 11243,
-  VFNMADD132SDZrk_Int = 11244,
-  VFNMADD132SDZrkz_Int = 11245,
-  VFNMADD132SDm = 11246,
-  VFNMADD132SDm_Int = 11247,
-  VFNMADD132SDr = 11248,
-  VFNMADD132SDr_Int = 11249,
-  VFNMADD132SHZm = 11250,
-  VFNMADD132SHZm_Int = 11251,
-  VFNMADD132SHZmk_Int = 11252,
-  VFNMADD132SHZmkz_Int = 11253,
-  VFNMADD132SHZr = 11254,
-  VFNMADD132SHZr_Int = 11255,
-  VFNMADD132SHZrb = 11256,
-  VFNMADD132SHZrb_Int = 11257,
-  VFNMADD132SHZrbk_Int = 11258,
-  VFNMADD132SHZrbkz_Int = 11259,
-  VFNMADD132SHZrk_Int = 11260,
-  VFNMADD132SHZrkz_Int = 11261,
-  VFNMADD132SSZm = 11262,
-  VFNMADD132SSZm_Int = 11263,
-  VFNMADD132SSZmk_Int = 11264,
-  VFNMADD132SSZmkz_Int = 11265,
-  VFNMADD132SSZr = 11266,
-  VFNMADD132SSZr_Int = 11267,
-  VFNMADD132SSZrb = 11268,
-  VFNMADD132SSZrb_Int = 11269,
-  VFNMADD132SSZrbk_Int = 11270,
-  VFNMADD132SSZrbkz_Int = 11271,
-  VFNMADD132SSZrk_Int = 11272,
-  VFNMADD132SSZrkz_Int = 11273,
-  VFNMADD132SSm = 11274,
-  VFNMADD132SSm_Int = 11275,
-  VFNMADD132SSr = 11276,
-  VFNMADD132SSr_Int = 11277,
-  VFNMADD213BF16Z128m = 11278,
-  VFNMADD213BF16Z128mb = 11279,
-  VFNMADD213BF16Z128mbk = 11280,
-  VFNMADD213BF16Z128mbkz = 11281,
-  VFNMADD213BF16Z128mk = 11282,
-  VFNMADD213BF16Z128mkz = 11283,
-  VFNMADD213BF16Z128r = 11284,
-  VFNMADD213BF16Z128rk = 11285,
-  VFNMADD213BF16Z128rkz = 11286,
-  VFNMADD213BF16Z256m = 11287,
-  VFNMADD213BF16Z256mb = 11288,
-  VFNMADD213BF16Z256mbk = 11289,
-  VFNMADD213BF16Z256mbkz = 11290,
-  VFNMADD213BF16Z256mk = 11291,
-  VFNMADD213BF16Z256mkz = 11292,
-  VFNMADD213BF16Z256r = 11293,
-  VFNMADD213BF16Z256rk = 11294,
-  VFNMADD213BF16Z256rkz = 11295,
-  VFNMADD213BF16Zm = 11296,
-  VFNMADD213BF16Zmb = 11297,
-  VFNMADD213BF16Zmbk = 11298,
-  VFNMADD213BF16Zmbkz = 11299,
-  VFNMADD213BF16Zmk = 11300,
-  VFNMADD213BF16Zmkz = 11301,
-  VFNMADD213BF16Zr = 11302,
-  VFNMADD213BF16Zrk = 11303,
-  VFNMADD213BF16Zrkz = 11304,
-  VFNMADD213PDYm = 11305,
-  VFNMADD213PDYr = 11306,
-  VFNMADD213PDZ128m = 11307,
-  VFNMADD213PDZ128mb = 11308,
-  VFNMADD213PDZ128mbk = 11309,
-  VFNMADD213PDZ128mbkz = 11310,
-  VFNMADD213PDZ128mk = 11311,
-  VFNMADD213PDZ128mkz = 11312,
-  VFNMADD213PDZ128r = 11313,
-  VFNMADD213PDZ128rk = 11314,
-  VFNMADD213PDZ128rkz = 11315,
-  VFNMADD213PDZ256m = 11316,
-  VFNMADD213PDZ256mb = 11317,
-  VFNMADD213PDZ256mbk = 11318,
-  VFNMADD213PDZ256mbkz = 11319,
-  VFNMADD213PDZ256mk = 11320,
-  VFNMADD213PDZ256mkz = 11321,
-  VFNMADD213PDZ256r = 11322,
-  VFNMADD213PDZ256rk = 11323,
-  VFNMADD213PDZ256rkz = 11324,
-  VFNMADD213PDZm = 11325,
-  VFNMADD213PDZmb = 11326,
-  VFNMADD213PDZmbk = 11327,
-  VFNMADD213PDZmbkz = 11328,
-  VFNMADD213PDZmk = 11329,
-  VFNMADD213PDZmkz = 11330,
-  VFNMADD213PDZr = 11331,
-  VFNMADD213PDZrb = 11332,
-  VFNMADD213PDZrbk = 11333,
-  VFNMADD213PDZrbkz = 11334,
-  VFNMADD213PDZrk = 11335,
-  VFNMADD213PDZrkz = 11336,
-  VFNMADD213PDm = 11337,
-  VFNMADD213PDr = 11338,
-  VFNMADD213PHZ128m = 11339,
-  VFNMADD213PHZ128mb = 11340,
-  VFNMADD213PHZ128mbk = 11341,
-  VFNMADD213PHZ128mbkz = 11342,
-  VFNMADD213PHZ128mk = 11343,
-  VFNMADD213PHZ128mkz = 11344,
-  VFNMADD213PHZ128r = 11345,
-  VFNMADD213PHZ128rk = 11346,
-  VFNMADD213PHZ128rkz = 11347,
-  VFNMADD213PHZ256m = 11348,
-  VFNMADD213PHZ256mb = 11349,
-  VFNMADD213PHZ256mbk = 11350,
-  VFNMADD213PHZ256mbkz = 11351,
-  VFNMADD213PHZ256mk = 11352,
-  VFNMADD213PHZ256mkz = 11353,
-  VFNMADD213PHZ256r = 11354,
-  VFNMADD213PHZ256rk = 11355,
-  VFNMADD213PHZ256rkz = 11356,
-  VFNMADD213PHZm = 11357,
-  VFNMADD213PHZmb = 11358,
-  VFNMADD213PHZmbk = 11359,
-  VFNMADD213PHZmbkz = 11360,
-  VFNMADD213PHZmk = 11361,
-  VFNMADD213PHZmkz = 11362,
-  VFNMADD213PHZr = 11363,
-  VFNMADD213PHZrb = 11364,
-  VFNMADD213PHZrbk = 11365,
-  VFNMADD213PHZrbkz = 11366,
-  VFNMADD213PHZrk = 11367,
-  VFNMADD213PHZrkz = 11368,
-  VFNMADD213PSYm = 11369,
-  VFNMADD213PSYr = 11370,
-  VFNMADD213PSZ128m = 11371,
-  VFNMADD213PSZ128mb = 11372,
-  VFNMADD213PSZ128mbk = 11373,
-  VFNMADD213PSZ128mbkz = 11374,
-  VFNMADD213PSZ128mk = 11375,
-  VFNMADD213PSZ128mkz = 11376,
-  VFNMADD213PSZ128r = 11377,
-  VFNMADD213PSZ128rk = 11378,
-  VFNMADD213PSZ128rkz = 11379,
-  VFNMADD213PSZ256m = 11380,
-  VFNMADD213PSZ256mb = 11381,
-  VFNMADD213PSZ256mbk = 11382,
-  VFNMADD213PSZ256mbkz = 11383,
-  VFNMADD213PSZ256mk = 11384,
-  VFNMADD213PSZ256mkz = 11385,
-  VFNMADD213PSZ256r = 11386,
-  VFNMADD213PSZ256rk = 11387,
-  VFNMADD213PSZ256rkz = 11388,
-  VFNMADD213PSZm = 11389,
-  VFNMADD213PSZmb = 11390,
-  VFNMADD213PSZmbk = 11391,
-  VFNMADD213PSZmbkz = 11392,
-  VFNMADD213PSZmk = 11393,
-  VFNMADD213PSZmkz = 11394,
-  VFNMADD213PSZr = 11395,
-  VFNMADD213PSZrb = 11396,
-  VFNMADD213PSZrbk = 11397,
-  VFNMADD213PSZrbkz = 11398,
-  VFNMADD213PSZrk = 11399,
-  VFNMADD213PSZrkz = 11400,
-  VFNMADD213PSm = 11401,
-  VFNMADD213PSr = 11402,
-  VFNMADD213SDZm = 11403,
-  VFNMADD213SDZm_Int = 11404,
-  VFNMADD213SDZmk_Int = 11405,
-  VFNMADD213SDZmkz_Int = 11406,
-  VFNMADD213SDZr = 11407,
-  VFNMADD213SDZr_Int = 11408,
-  VFNMADD213SDZrb = 11409,
-  VFNMADD213SDZrb_Int = 11410,
-  VFNMADD213SDZrbk_Int = 11411,
-  VFNMADD213SDZrbkz_Int = 11412,
-  VFNMADD213SDZrk_Int = 11413,
-  VFNMADD213SDZrkz_Int = 11414,
-  VFNMADD213SDm = 11415,
-  VFNMADD213SDm_Int = 11416,
-  VFNMADD213SDr = 11417,
-  VFNMADD213SDr_Int = 11418,
-  VFNMADD213SHZm = 11419,
-  VFNMADD213SHZm_Int = 11420,
-  VFNMADD213SHZmk_Int = 11421,
-  VFNMADD213SHZmkz_Int = 11422,
-  VFNMADD213SHZr = 11423,
-  VFNMADD213SHZr_Int = 11424,
-  VFNMADD213SHZrb = 11425,
-  VFNMADD213SHZrb_Int = 11426,
-  VFNMADD213SHZrbk_Int = 11427,
-  VFNMADD213SHZrbkz_Int = 11428,
-  VFNMADD213SHZrk_Int = 11429,
-  VFNMADD213SHZrkz_Int = 11430,
-  VFNMADD213SSZm = 11431,
-  VFNMADD213SSZm_Int = 11432,
-  VFNMADD213SSZmk_Int = 11433,
-  VFNMADD213SSZmkz_Int = 11434,
-  VFNMADD213SSZr = 11435,
-  VFNMADD213SSZr_Int = 11436,
-  VFNMADD213SSZrb = 11437,
-  VFNMADD213SSZrb_Int = 11438,
-  VFNMADD213SSZrbk_Int = 11439,
-  VFNMADD213SSZrbkz_Int = 11440,
-  VFNMADD213SSZrk_Int = 11441,
-  VFNMADD213SSZrkz_Int = 11442,
-  VFNMADD213SSm = 11443,
-  VFNMADD213SSm_Int = 11444,
-  VFNMADD213SSr = 11445,
-  VFNMADD213SSr_Int = 11446,
-  VFNMADD231BF16Z128m = 11447,
-  VFNMADD231BF16Z128mb = 11448,
-  VFNMADD231BF16Z128mbk = 11449,
-  VFNMADD231BF16Z128mbkz = 11450,
-  VFNMADD231BF16Z128mk = 11451,
-  VFNMADD231BF16Z128mkz = 11452,
-  VFNMADD231BF16Z128r = 11453,
-  VFNMADD231BF16Z128rk = 11454,
-  VFNMADD231BF16Z128rkz = 11455,
-  VFNMADD231BF16Z256m = 11456,
-  VFNMADD231BF16Z256mb = 11457,
-  VFNMADD231BF16Z256mbk = 11458,
-  VFNMADD231BF16Z256mbkz = 11459,
-  VFNMADD231BF16Z256mk = 11460,
-  VFNMADD231BF16Z256mkz = 11461,
-  VFNMADD231BF16Z256r = 11462,
-  VFNMADD231BF16Z256rk = 11463,
-  VFNMADD231BF16Z256rkz = 11464,
-  VFNMADD231BF16Zm = 11465,
-  VFNMADD231BF16Zmb = 11466,
-  VFNMADD231BF16Zmbk = 11467,
-  VFNMADD231BF16Zmbkz = 11468,
-  VFNMADD231BF16Zmk = 11469,
-  VFNMADD231BF16Zmkz = 11470,
-  VFNMADD231BF16Zr = 11471,
-  VFNMADD231BF16Zrk = 11472,
-  VFNMADD231BF16Zrkz = 11473,
-  VFNMADD231PDYm = 11474,
-  VFNMADD231PDYr = 11475,
-  VFNMADD231PDZ128m = 11476,
-  VFNMADD231PDZ128mb = 11477,
-  VFNMADD231PDZ128mbk = 11478,
-  VFNMADD231PDZ128mbkz = 11479,
-  VFNMADD231PDZ128mk = 11480,
-  VFNMADD231PDZ128mkz = 11481,
-  VFNMADD231PDZ128r = 11482,
-  VFNMADD231PDZ128rk = 11483,
-  VFNMADD231PDZ128rkz = 11484,
-  VFNMADD231PDZ256m = 11485,
-  VFNMADD231PDZ256mb = 11486,
-  VFNMADD231PDZ256mbk = 11487,
-  VFNMADD231PDZ256mbkz = 11488,
-  VFNMADD231PDZ256mk = 11489,
-  VFNMADD231PDZ256mkz = 11490,
-  VFNMADD231PDZ256r = 11491,
-  VFNMADD231PDZ256rk = 11492,
-  VFNMADD231PDZ256rkz = 11493,
-  VFNMADD231PDZm = 11494,
-  VFNMADD231PDZmb = 11495,
-  VFNMADD231PDZmbk = 11496,
-  VFNMADD231PDZmbkz = 11497,
-  VFNMADD231PDZmk = 11498,
-  VFNMADD231PDZmkz = 11499,
-  VFNMADD231PDZr = 11500,
-  VFNMADD231PDZrb = 11501,
-  VFNMADD231PDZrbk = 11502,
-  VFNMADD231PDZrbkz = 11503,
-  VFNMADD231PDZrk = 11504,
-  VFNMADD231PDZrkz = 11505,
-  VFNMADD231PDm = 11506,
-  VFNMADD231PDr = 11507,
-  VFNMADD231PHZ128m = 11508,
-  VFNMADD231PHZ128mb = 11509,
-  VFNMADD231PHZ128mbk = 11510,
-  VFNMADD231PHZ128mbkz = 11511,
-  VFNMADD231PHZ128mk = 11512,
-  VFNMADD231PHZ128mkz = 11513,
-  VFNMADD231PHZ128r = 11514,
-  VFNMADD231PHZ128rk = 11515,
-  VFNMADD231PHZ128rkz = 11516,
-  VFNMADD231PHZ256m = 11517,
-  VFNMADD231PHZ256mb = 11518,
-  VFNMADD231PHZ256mbk = 11519,
-  VFNMADD231PHZ256mbkz = 11520,
-  VFNMADD231PHZ256mk = 11521,
-  VFNMADD231PHZ256mkz = 11522,
-  VFNMADD231PHZ256r = 11523,
-  VFNMADD231PHZ256rk = 11524,
-  VFNMADD231PHZ256rkz = 11525,
-  VFNMADD231PHZm = 11526,
-  VFNMADD231PHZmb = 11527,
-  VFNMADD231PHZmbk = 11528,
-  VFNMADD231PHZmbkz = 11529,
-  VFNMADD231PHZmk = 11530,
-  VFNMADD231PHZmkz = 11531,
-  VFNMADD231PHZr = 11532,
-  VFNMADD231PHZrb = 11533,
-  VFNMADD231PHZrbk = 11534,
-  VFNMADD231PHZrbkz = 11535,
-  VFNMADD231PHZrk = 11536,
-  VFNMADD231PHZrkz = 11537,
-  VFNMADD231PSYm = 11538,
-  VFNMADD231PSYr = 11539,
-  VFNMADD231PSZ128m = 11540,
-  VFNMADD231PSZ128mb = 11541,
-  VFNMADD231PSZ128mbk = 11542,
-  VFNMADD231PSZ128mbkz = 11543,
-  VFNMADD231PSZ128mk = 11544,
-  VFNMADD231PSZ128mkz = 11545,
-  VFNMADD231PSZ128r = 11546,
-  VFNMADD231PSZ128rk = 11547,
-  VFNMADD231PSZ128rkz = 11548,
-  VFNMADD231PSZ256m = 11549,
-  VFNMADD231PSZ256mb = 11550,
-  VFNMADD231PSZ256mbk = 11551,
-  VFNMADD231PSZ256mbkz = 11552,
-  VFNMADD231PSZ256mk = 11553,
-  VFNMADD231PSZ256mkz = 11554,
-  VFNMADD231PSZ256r = 11555,
-  VFNMADD231PSZ256rk = 11556,
-  VFNMADD231PSZ256rkz = 11557,
-  VFNMADD231PSZm = 11558,
-  VFNMADD231PSZmb = 11559,
-  VFNMADD231PSZmbk = 11560,
-  VFNMADD231PSZmbkz = 11561,
-  VFNMADD231PSZmk = 11562,
-  VFNMADD231PSZmkz = 11563,
-  VFNMADD231PSZr = 11564,
-  VFNMADD231PSZrb = 11565,
-  VFNMADD231PSZrbk = 11566,
-  VFNMADD231PSZrbkz = 11567,
-  VFNMADD231PSZrk = 11568,
-  VFNMADD231PSZrkz = 11569,
-  VFNMADD231PSm = 11570,
-  VFNMADD231PSr = 11571,
-  VFNMADD231SDZm = 11572,
-  VFNMADD231SDZm_Int = 11573,
-  VFNMADD231SDZmk_Int = 11574,
-  VFNMADD231SDZmkz_Int = 11575,
-  VFNMADD231SDZr = 11576,
-  VFNMADD231SDZr_Int = 11577,
-  VFNMADD231SDZrb = 11578,
-  VFNMADD231SDZrb_Int = 11579,
-  VFNMADD231SDZrbk_Int = 11580,
-  VFNMADD231SDZrbkz_Int = 11581,
-  VFNMADD231SDZrk_Int = 11582,
-  VFNMADD231SDZrkz_Int = 11583,
-  VFNMADD231SDm = 11584,
-  VFNMADD231SDm_Int = 11585,
-  VFNMADD231SDr = 11586,
-  VFNMADD231SDr_Int = 11587,
-  VFNMADD231SHZm = 11588,
-  VFNMADD231SHZm_Int = 11589,
-  VFNMADD231SHZmk_Int = 11590,
-  VFNMADD231SHZmkz_Int = 11591,
-  VFNMADD231SHZr = 11592,
-  VFNMADD231SHZr_Int = 11593,
-  VFNMADD231SHZrb = 11594,
-  VFNMADD231SHZrb_Int = 11595,
-  VFNMADD231SHZrbk_Int = 11596,
-  VFNMADD231SHZrbkz_Int = 11597,
-  VFNMADD231SHZrk_Int = 11598,
-  VFNMADD231SHZrkz_Int = 11599,
-  VFNMADD231SSZm = 11600,
-  VFNMADD231SSZm_Int = 11601,
-  VFNMADD231SSZmk_Int = 11602,
-  VFNMADD231SSZmkz_Int = 11603,
-  VFNMADD231SSZr = 11604,
-  VFNMADD231SSZr_Int = 11605,
-  VFNMADD231SSZrb = 11606,
-  VFNMADD231SSZrb_Int = 11607,
-  VFNMADD231SSZrbk_Int = 11608,
-  VFNMADD231SSZrbkz_Int = 11609,
-  VFNMADD231SSZrk_Int = 11610,
-  VFNMADD231SSZrkz_Int = 11611,
-  VFNMADD231SSm = 11612,
-  VFNMADD231SSm_Int = 11613,
-  VFNMADD231SSr = 11614,
-  VFNMADD231SSr_Int = 11615,
-  VFNMADDPD4Ymr = 11616,
-  VFNMADDPD4Yrm = 11617,
-  VFNMADDPD4Yrr = 11618,
-  VFNMADDPD4Yrr_REV = 11619,
-  VFNMADDPD4mr = 11620,
-  VFNMADDPD4rm = 11621,
-  VFNMADDPD4rr = 11622,
-  VFNMADDPD4rr_REV = 11623,
-  VFNMADDPS4Ymr = 11624,
-  VFNMADDPS4Yrm = 11625,
-  VFNMADDPS4Yrr = 11626,
-  VFNMADDPS4Yrr_REV = 11627,
-  VFNMADDPS4mr = 11628,
-  VFNMADDPS4rm = 11629,
-  VFNMADDPS4rr = 11630,
-  VFNMADDPS4rr_REV = 11631,
-  VFNMADDSD4mr = 11632,
-  VFNMADDSD4mr_Int = 11633,
-  VFNMADDSD4rm = 11634,
-  VFNMADDSD4rm_Int = 11635,
-  VFNMADDSD4rr = 11636,
-  VFNMADDSD4rr_Int = 11637,
-  VFNMADDSD4rr_Int_REV = 11638,
-  VFNMADDSD4rr_REV = 11639,
-  VFNMADDSS4mr = 11640,
-  VFNMADDSS4mr_Int = 11641,
-  VFNMADDSS4rm = 11642,
-  VFNMADDSS4rm_Int = 11643,
-  VFNMADDSS4rr = 11644,
-  VFNMADDSS4rr_Int = 11645,
-  VFNMADDSS4rr_Int_REV = 11646,
-  VFNMADDSS4rr_REV = 11647,
-  VFNMSUB132BF16Z128m = 11648,
-  VFNMSUB132BF16Z128mb = 11649,
-  VFNMSUB132BF16Z128mbk = 11650,
-  VFNMSUB132BF16Z128mbkz = 11651,
-  VFNMSUB132BF16Z128mk = 11652,
-  VFNMSUB132BF16Z128mkz = 11653,
-  VFNMSUB132BF16Z128r = 11654,
-  VFNMSUB132BF16Z128rk = 11655,
-  VFNMSUB132BF16Z128rkz = 11656,
-  VFNMSUB132BF16Z256m = 11657,
-  VFNMSUB132BF16Z256mb = 11658,
-  VFNMSUB132BF16Z256mbk = 11659,
-  VFNMSUB132BF16Z256mbkz = 11660,
-  VFNMSUB132BF16Z256mk = 11661,
-  VFNMSUB132BF16Z256mkz = 11662,
-  VFNMSUB132BF16Z256r = 11663,
-  VFNMSUB132BF16Z256rk = 11664,
-  VFNMSUB132BF16Z256rkz = 11665,
-  VFNMSUB132BF16Zm = 11666,
-  VFNMSUB132BF16Zmb = 11667,
-  VFNMSUB132BF16Zmbk = 11668,
-  VFNMSUB132BF16Zmbkz = 11669,
-  VFNMSUB132BF16Zmk = 11670,
-  VFNMSUB132BF16Zmkz = 11671,
-  VFNMSUB132BF16Zr = 11672,
-  VFNMSUB132BF16Zrk = 11673,
-  VFNMSUB132BF16Zrkz = 11674,
-  VFNMSUB132PDYm = 11675,
-  VFNMSUB132PDYr = 11676,
-  VFNMSUB132PDZ128m = 11677,
-  VFNMSUB132PDZ128mb = 11678,
-  VFNMSUB132PDZ128mbk = 11679,
-  VFNMSUB132PDZ128mbkz = 11680,
-  VFNMSUB132PDZ128mk = 11681,
-  VFNMSUB132PDZ128mkz = 11682,
-  VFNMSUB132PDZ128r = 11683,
-  VFNMSUB132PDZ128rk = 11684,
-  VFNMSUB132PDZ128rkz = 11685,
-  VFNMSUB132PDZ256m = 11686,
-  VFNMSUB132PDZ256mb = 11687,
-  VFNMSUB132PDZ256mbk = 11688,
-  VFNMSUB132PDZ256mbkz = 11689,
-  VFNMSUB132PDZ256mk = 11690,
-  VFNMSUB132PDZ256mkz = 11691,
-  VFNMSUB132PDZ256r = 11692,
-  VFNMSUB132PDZ256rk = 11693,
-  VFNMSUB132PDZ256rkz = 11694,
-  VFNMSUB132PDZm = 11695,
-  VFNMSUB132PDZmb = 11696,
-  VFNMSUB132PDZmbk = 11697,
-  VFNMSUB132PDZmbkz = 11698,
-  VFNMSUB132PDZmk = 11699,
-  VFNMSUB132PDZmkz = 11700,
-  VFNMSUB132PDZr = 11701,
-  VFNMSUB132PDZrb = 11702,
-  VFNMSUB132PDZrbk = 11703,
-  VFNMSUB132PDZrbkz = 11704,
-  VFNMSUB132PDZrk = 11705,
-  VFNMSUB132PDZrkz = 11706,
-  VFNMSUB132PDm = 11707,
-  VFNMSUB132PDr = 11708,
-  VFNMSUB132PHZ128m = 11709,
-  VFNMSUB132PHZ128mb = 11710,
-  VFNMSUB132PHZ128mbk = 11711,
-  VFNMSUB132PHZ128mbkz = 11712,
-  VFNMSUB132PHZ128mk = 11713,
-  VFNMSUB132PHZ128mkz = 11714,
-  VFNMSUB132PHZ128r = 11715,
-  VFNMSUB132PHZ128rk = 11716,
-  VFNMSUB132PHZ128rkz = 11717,
-  VFNMSUB132PHZ256m = 11718,
-  VFNMSUB132PHZ256mb = 11719,
-  VFNMSUB132PHZ256mbk = 11720,
-  VFNMSUB132PHZ256mbkz = 11721,
-  VFNMSUB132PHZ256mk = 11722,
-  VFNMSUB132PHZ256mkz = 11723,
-  VFNMSUB132PHZ256r = 11724,
-  VFNMSUB132PHZ256rk = 11725,
-  VFNMSUB132PHZ256rkz = 11726,
-  VFNMSUB132PHZm = 11727,
-  VFNMSUB132PHZmb = 11728,
-  VFNMSUB132PHZmbk = 11729,
-  VFNMSUB132PHZmbkz = 11730,
-  VFNMSUB132PHZmk = 11731,
-  VFNMSUB132PHZmkz = 11732,
-  VFNMSUB132PHZr = 11733,
-  VFNMSUB132PHZrb = 11734,
-  VFNMSUB132PHZrbk = 11735,
-  VFNMSUB132PHZrbkz = 11736,
-  VFNMSUB132PHZrk = 11737,
-  VFNMSUB132PHZrkz = 11738,
-  VFNMSUB132PSYm = 11739,
-  VFNMSUB132PSYr = 11740,
-  VFNMSUB132PSZ128m = 11741,
-  VFNMSUB132PSZ128mb = 11742,
-  VFNMSUB132PSZ128mbk = 11743,
-  VFNMSUB132PSZ128mbkz = 11744,
-  VFNMSUB132PSZ128mk = 11745,
-  VFNMSUB132PSZ128mkz = 11746,
-  VFNMSUB132PSZ128r = 11747,
-  VFNMSUB132PSZ128rk = 11748,
-  VFNMSUB132PSZ128rkz = 11749,
-  VFNMSUB132PSZ256m = 11750,
-  VFNMSUB132PSZ256mb = 11751,
-  VFNMSUB132PSZ256mbk = 11752,
-  VFNMSUB132PSZ256mbkz = 11753,
-  VFNMSUB132PSZ256mk = 11754,
-  VFNMSUB132PSZ256mkz = 11755,
-  VFNMSUB132PSZ256r = 11756,
-  VFNMSUB132PSZ256rk = 11757,
-  VFNMSUB132PSZ256rkz = 11758,
-  VFNMSUB132PSZm = 11759,
-  VFNMSUB132PSZmb = 11760,
-  VFNMSUB132PSZmbk = 11761,
-  VFNMSUB132PSZmbkz = 11762,
-  VFNMSUB132PSZmk = 11763,
-  VFNMSUB132PSZmkz = 11764,
-  VFNMSUB132PSZr = 11765,
-  VFNMSUB132PSZrb = 11766,
-  VFNMSUB132PSZrbk = 11767,
-  VFNMSUB132PSZrbkz = 11768,
-  VFNMSUB132PSZrk = 11769,
-  VFNMSUB132PSZrkz = 11770,
-  VFNMSUB132PSm = 11771,
-  VFNMSUB132PSr = 11772,
-  VFNMSUB132SDZm = 11773,
-  VFNMSUB132SDZm_Int = 11774,
-  VFNMSUB132SDZmk_Int = 11775,
-  VFNMSUB132SDZmkz_Int = 11776,
-  VFNMSUB132SDZr = 11777,
-  VFNMSUB132SDZr_Int = 11778,
-  VFNMSUB132SDZrb = 11779,
-  VFNMSUB132SDZrb_Int = 11780,
-  VFNMSUB132SDZrbk_Int = 11781,
-  VFNMSUB132SDZrbkz_Int = 11782,
-  VFNMSUB132SDZrk_Int = 11783,
-  VFNMSUB132SDZrkz_Int = 11784,
-  VFNMSUB132SDm = 11785,
-  VFNMSUB132SDm_Int = 11786,
-  VFNMSUB132SDr = 11787,
-  VFNMSUB132SDr_Int = 11788,
-  VFNMSUB132SHZm = 11789,
-  VFNMSUB132SHZm_Int = 11790,
-  VFNMSUB132SHZmk_Int = 11791,
-  VFNMSUB132SHZmkz_Int = 11792,
-  VFNMSUB132SHZr = 11793,
-  VFNMSUB132SHZr_Int = 11794,
-  VFNMSUB132SHZrb = 11795,
-  VFNMSUB132SHZrb_Int = 11796,
-  VFNMSUB132SHZrbk_Int = 11797,
-  VFNMSUB132SHZrbkz_Int = 11798,
-  VFNMSUB132SHZrk_Int = 11799,
-  VFNMSUB132SHZrkz_Int = 11800,
-  VFNMSUB132SSZm = 11801,
-  VFNMSUB132SSZm_Int = 11802,
-  VFNMSUB132SSZmk_Int = 11803,
-  VFNMSUB132SSZmkz_Int = 11804,
-  VFNMSUB132SSZr = 11805,
-  VFNMSUB132SSZr_Int = 11806,
-  VFNMSUB132SSZrb = 11807,
-  VFNMSUB132SSZrb_Int = 11808,
-  VFNMSUB132SSZrbk_Int = 11809,
-  VFNMSUB132SSZrbkz_Int = 11810,
-  VFNMSUB132SSZrk_Int = 11811,
-  VFNMSUB132SSZrkz_Int = 11812,
-  VFNMSUB132SSm = 11813,
-  VFNMSUB132SSm_Int = 11814,
-  VFNMSUB132SSr = 11815,
-  VFNMSUB132SSr_Int = 11816,
-  VFNMSUB213BF16Z128m = 11817,
-  VFNMSUB213BF16Z128mb = 11818,
-  VFNMSUB213BF16Z128mbk = 11819,
-  VFNMSUB213BF16Z128mbkz = 11820,
-  VFNMSUB213BF16Z128mk = 11821,
-  VFNMSUB213BF16Z128mkz = 11822,
-  VFNMSUB213BF16Z128r = 11823,
-  VFNMSUB213BF16Z128rk = 11824,
-  VFNMSUB213BF16Z128rkz = 11825,
-  VFNMSUB213BF16Z256m = 11826,
-  VFNMSUB213BF16Z256mb = 11827,
-  VFNMSUB213BF16Z256mbk = 11828,
-  VFNMSUB213BF16Z256mbkz = 11829,
-  VFNMSUB213BF16Z256mk = 11830,
-  VFNMSUB213BF16Z256mkz = 11831,
-  VFNMSUB213BF16Z256r = 11832,
-  VFNMSUB213BF16Z256rk = 11833,
-  VFNMSUB213BF16Z256rkz = 11834,
-  VFNMSUB213BF16Zm = 11835,
-  VFNMSUB213BF16Zmb = 11836,
-  VFNMSUB213BF16Zmbk = 11837,
-  VFNMSUB213BF16Zmbkz = 11838,
-  VFNMSUB213BF16Zmk = 11839,
-  VFNMSUB213BF16Zmkz = 11840,
-  VFNMSUB213BF16Zr = 11841,
-  VFNMSUB213BF16Zrk = 11842,
-  VFNMSUB213BF16Zrkz = 11843,
-  VFNMSUB213PDYm = 11844,
-  VFNMSUB213PDYr = 11845,
-  VFNMSUB213PDZ128m = 11846,
-  VFNMSUB213PDZ128mb = 11847,
-  VFNMSUB213PDZ128mbk = 11848,
-  VFNMSUB213PDZ128mbkz = 11849,
-  VFNMSUB213PDZ128mk = 11850,
-  VFNMSUB213PDZ128mkz = 11851,
-  VFNMSUB213PDZ128r = 11852,
-  VFNMSUB213PDZ128rk = 11853,
-  VFNMSUB213PDZ128rkz = 11854,
-  VFNMSUB213PDZ256m = 11855,
-  VFNMSUB213PDZ256mb = 11856,
-  VFNMSUB213PDZ256mbk = 11857,
-  VFNMSUB213PDZ256mbkz = 11858,
-  VFNMSUB213PDZ256mk = 11859,
-  VFNMSUB213PDZ256mkz = 11860,
-  VFNMSUB213PDZ256r = 11861,
-  VFNMSUB213PDZ256rk = 11862,
-  VFNMSUB213PDZ256rkz = 11863,
-  VFNMSUB213PDZm = 11864,
-  VFNMSUB213PDZmb = 11865,
-  VFNMSUB213PDZmbk = 11866,
-  VFNMSUB213PDZmbkz = 11867,
-  VFNMSUB213PDZmk = 11868,
-  VFNMSUB213PDZmkz = 11869,
-  VFNMSUB213PDZr = 11870,
-  VFNMSUB213PDZrb = 11871,
-  VFNMSUB213PDZrbk = 11872,
-  VFNMSUB213PDZrbkz = 11873,
-  VFNMSUB213PDZrk = 11874,
-  VFNMSUB213PDZrkz = 11875,
-  VFNMSUB213PDm = 11876,
-  VFNMSUB213PDr = 11877,
-  VFNMSUB213PHZ128m = 11878,
-  VFNMSUB213PHZ128mb = 11879,
-  VFNMSUB213PHZ128mbk = 11880,
-  VFNMSUB213PHZ128mbkz = 11881,
-  VFNMSUB213PHZ128mk = 11882,
-  VFNMSUB213PHZ128mkz = 11883,
-  VFNMSUB213PHZ128r = 11884,
-  VFNMSUB213PHZ128rk = 11885,
-  VFNMSUB213PHZ128rkz = 11886,
-  VFNMSUB213PHZ256m = 11887,
-  VFNMSUB213PHZ256mb = 11888,
-  VFNMSUB213PHZ256mbk = 11889,
-  VFNMSUB213PHZ256mbkz = 11890,
-  VFNMSUB213PHZ256mk = 11891,
-  VFNMSUB213PHZ256mkz = 11892,
-  VFNMSUB213PHZ256r = 11893,
-  VFNMSUB213PHZ256rk = 11894,
-  VFNMSUB213PHZ256rkz = 11895,
-  VFNMSUB213PHZm = 11896,
-  VFNMSUB213PHZmb = 11897,
-  VFNMSUB213PHZmbk = 11898,
-  VFNMSUB213PHZmbkz = 11899,
-  VFNMSUB213PHZmk = 11900,
-  VFNMSUB213PHZmkz = 11901,
-  VFNMSUB213PHZr = 11902,
-  VFNMSUB213PHZrb = 11903,
-  VFNMSUB213PHZrbk = 11904,
-  VFNMSUB213PHZrbkz = 11905,
-  VFNMSUB213PHZrk = 11906,
-  VFNMSUB213PHZrkz = 11907,
-  VFNMSUB213PSYm = 11908,
-  VFNMSUB213PSYr = 11909,
-  VFNMSUB213PSZ128m = 11910,
-  VFNMSUB213PSZ128mb = 11911,
-  VFNMSUB213PSZ128mbk = 11912,
-  VFNMSUB213PSZ128mbkz = 11913,
-  VFNMSUB213PSZ128mk = 11914,
-  VFNMSUB213PSZ128mkz = 11915,
-  VFNMSUB213PSZ128r = 11916,
-  VFNMSUB213PSZ128rk = 11917,
-  VFNMSUB213PSZ128rkz = 11918,
-  VFNMSUB213PSZ256m = 11919,
-  VFNMSUB213PSZ256mb = 11920,
-  VFNMSUB213PSZ256mbk = 11921,
-  VFNMSUB213PSZ256mbkz = 11922,
-  VFNMSUB213PSZ256mk = 11923,
-  VFNMSUB213PSZ256mkz = 11924,
-  VFNMSUB213PSZ256r = 11925,
-  VFNMSUB213PSZ256rk = 11926,
-  VFNMSUB213PSZ256rkz = 11927,
-  VFNMSUB213PSZm = 11928,
-  VFNMSUB213PSZmb = 11929,
-  VFNMSUB213PSZmbk = 11930,
-  VFNMSUB213PSZmbkz = 11931,
-  VFNMSUB213PSZmk = 11932,
-  VFNMSUB213PSZmkz = 11933,
-  VFNMSUB213PSZr = 11934,
-  VFNMSUB213PSZrb = 11935,
-  VFNMSUB213PSZrbk = 11936,
-  VFNMSUB213PSZrbkz = 11937,
-  VFNMSUB213PSZrk = 11938,
-  VFNMSUB213PSZrkz = 11939,
-  VFNMSUB213PSm = 11940,
-  VFNMSUB213PSr = 11941,
-  VFNMSUB213SDZm = 11942,
-  VFNMSUB213SDZm_Int = 11943,
-  VFNMSUB213SDZmk_Int = 11944,
-  VFNMSUB213SDZmkz_Int = 11945,
-  VFNMSUB213SDZr = 11946,
-  VFNMSUB213SDZr_Int = 11947,
-  VFNMSUB213SDZrb = 11948,
-  VFNMSUB213SDZrb_Int = 11949,
-  VFNMSUB213SDZrbk_Int = 11950,
-  VFNMSUB213SDZrbkz_Int = 11951,
-  VFNMSUB213SDZrk_Int = 11952,
-  VFNMSUB213SDZrkz_Int = 11953,
-  VFNMSUB213SDm = 11954,
-  VFNMSUB213SDm_Int = 11955,
-  VFNMSUB213SDr = 11956,
-  VFNMSUB213SDr_Int = 11957,
-  VFNMSUB213SHZm = 11958,
-  VFNMSUB213SHZm_Int = 11959,
-  VFNMSUB213SHZmk_Int = 11960,
-  VFNMSUB213SHZmkz_Int = 11961,
-  VFNMSUB213SHZr = 11962,
-  VFNMSUB213SHZr_Int = 11963,
-  VFNMSUB213SHZrb = 11964,
-  VFNMSUB213SHZrb_Int = 11965,
-  VFNMSUB213SHZrbk_Int = 11966,
-  VFNMSUB213SHZrbkz_Int = 11967,
-  VFNMSUB213SHZrk_Int = 11968,
-  VFNMSUB213SHZrkz_Int = 11969,
-  VFNMSUB213SSZm = 11970,
-  VFNMSUB213SSZm_Int = 11971,
-  VFNMSUB213SSZmk_Int = 11972,
-  VFNMSUB213SSZmkz_Int = 11973,
-  VFNMSUB213SSZr = 11974,
-  VFNMSUB213SSZr_Int = 11975,
-  VFNMSUB213SSZrb = 11976,
-  VFNMSUB213SSZrb_Int = 11977,
-  VFNMSUB213SSZrbk_Int = 11978,
-  VFNMSUB213SSZrbkz_Int = 11979,
-  VFNMSUB213SSZrk_Int = 11980,
-  VFNMSUB213SSZrkz_Int = 11981,
-  VFNMSUB213SSm = 11982,
-  VFNMSUB213SSm_Int = 11983,
-  VFNMSUB213SSr = 11984,
-  VFNMSUB213SSr_Int = 11985,
-  VFNMSUB231BF16Z128m = 11986,
-  VFNMSUB231BF16Z128mb = 11987,
-  VFNMSUB231BF16Z128mbk = 11988,
-  VFNMSUB231BF16Z128mbkz = 11989,
-  VFNMSUB231BF16Z128mk = 11990,
-  VFNMSUB231BF16Z128mkz = 11991,
-  VFNMSUB231BF16Z128r = 11992,
-  VFNMSUB231BF16Z128rk = 11993,
-  VFNMSUB231BF16Z128rkz = 11994,
-  VFNMSUB231BF16Z256m = 11995,
-  VFNMSUB231BF16Z256mb = 11996,
-  VFNMSUB231BF16Z256mbk = 11997,
-  VFNMSUB231BF16Z256mbkz = 11998,
-  VFNMSUB231BF16Z256mk = 11999,
-  VFNMSUB231BF16Z256mkz = 12000,
-  VFNMSUB231BF16Z256r = 12001,
-  VFNMSUB231BF16Z256rk = 12002,
-  VFNMSUB231BF16Z256rkz = 12003,
-  VFNMSUB231BF16Zm = 12004,
-  VFNMSUB231BF16Zmb = 12005,
-  VFNMSUB231BF16Zmbk = 12006,
-  VFNMSUB231BF16Zmbkz = 12007,
-  VFNMSUB231BF16Zmk = 12008,
-  VFNMSUB231BF16Zmkz = 12009,
-  VFNMSUB231BF16Zr = 12010,
-  VFNMSUB231BF16Zrk = 12011,
-  VFNMSUB231BF16Zrkz = 12012,
-  VFNMSUB231PDYm = 12013,
-  VFNMSUB231PDYr = 12014,
-  VFNMSUB231PDZ128m = 12015,
-  VFNMSUB231PDZ128mb = 12016,
-  VFNMSUB231PDZ128mbk = 12017,
-  VFNMSUB231PDZ128mbkz = 12018,
-  VFNMSUB231PDZ128mk = 12019,
-  VFNMSUB231PDZ128mkz = 12020,
-  VFNMSUB231PDZ128r = 12021,
-  VFNMSUB231PDZ128rk = 12022,
-  VFNMSUB231PDZ128rkz = 12023,
-  VFNMSUB231PDZ256m = 12024,
-  VFNMSUB231PDZ256mb = 12025,
-  VFNMSUB231PDZ256mbk = 12026,
-  VFNMSUB231PDZ256mbkz = 12027,
-  VFNMSUB231PDZ256mk = 12028,
-  VFNMSUB231PDZ256mkz = 12029,
-  VFNMSUB231PDZ256r = 12030,
-  VFNMSUB231PDZ256rk = 12031,
-  VFNMSUB231PDZ256rkz = 12032,
-  VFNMSUB231PDZm = 12033,
-  VFNMSUB231PDZmb = 12034,
-  VFNMSUB231PDZmbk = 12035,
-  VFNMSUB231PDZmbkz = 12036,
-  VFNMSUB231PDZmk = 12037,
-  VFNMSUB231PDZmkz = 12038,
-  VFNMSUB231PDZr = 12039,
-  VFNMSUB231PDZrb = 12040,
-  VFNMSUB231PDZrbk = 12041,
-  VFNMSUB231PDZrbkz = 12042,
-  VFNMSUB231PDZrk = 12043,
-  VFNMSUB231PDZrkz = 12044,
-  VFNMSUB231PDm = 12045,
-  VFNMSUB231PDr = 12046,
-  VFNMSUB231PHZ128m = 12047,
-  VFNMSUB231PHZ128mb = 12048,
-  VFNMSUB231PHZ128mbk = 12049,
-  VFNMSUB231PHZ128mbkz = 12050,
-  VFNMSUB231PHZ128mk = 12051,
-  VFNMSUB231PHZ128mkz = 12052,
-  VFNMSUB231PHZ128r = 12053,
-  VFNMSUB231PHZ128rk = 12054,
-  VFNMSUB231PHZ128rkz = 12055,
-  VFNMSUB231PHZ256m = 12056,
-  VFNMSUB231PHZ256mb = 12057,
-  VFNMSUB231PHZ256mbk = 12058,
-  VFNMSUB231PHZ256mbkz = 12059,
-  VFNMSUB231PHZ256mk = 12060,
-  VFNMSUB231PHZ256mkz = 12061,
-  VFNMSUB231PHZ256r = 12062,
-  VFNMSUB231PHZ256rk = 12063,
-  VFNMSUB231PHZ256rkz = 12064,
-  VFNMSUB231PHZm = 12065,
-  VFNMSUB231PHZmb = 12066,
-  VFNMSUB231PHZmbk = 12067,
-  VFNMSUB231PHZmbkz = 12068,
-  VFNMSUB231PHZmk = 12069,
-  VFNMSUB231PHZmkz = 12070,
-  VFNMSUB231PHZr = 12071,
-  VFNMSUB231PHZrb = 12072,
-  VFNMSUB231PHZrbk = 12073,
-  VFNMSUB231PHZrbkz = 12074,
-  VFNMSUB231PHZrk = 12075,
-  VFNMSUB231PHZrkz = 12076,
-  VFNMSUB231PSYm = 12077,
-  VFNMSUB231PSYr = 12078,
-  VFNMSUB231PSZ128m = 12079,
-  VFNMSUB231PSZ128mb = 12080,
-  VFNMSUB231PSZ128mbk = 12081,
-  VFNMSUB231PSZ128mbkz = 12082,
-  VFNMSUB231PSZ128mk = 12083,
-  VFNMSUB231PSZ128mkz = 12084,
-  VFNMSUB231PSZ128r = 12085,
-  VFNMSUB231PSZ128rk = 12086,
-  VFNMSUB231PSZ128rkz = 12087,
-  VFNMSUB231PSZ256m = 12088,
-  VFNMSUB231PSZ256mb = 12089,
-  VFNMSUB231PSZ256mbk = 12090,
-  VFNMSUB231PSZ256mbkz = 12091,
-  VFNMSUB231PSZ256mk = 12092,
-  VFNMSUB231PSZ256mkz = 12093,
-  VFNMSUB231PSZ256r = 12094,
-  VFNMSUB231PSZ256rk = 12095,
-  VFNMSUB231PSZ256rkz = 12096,
-  VFNMSUB231PSZm = 12097,
-  VFNMSUB231PSZmb = 12098,
-  VFNMSUB231PSZmbk = 12099,
-  VFNMSUB231PSZmbkz = 12100,
-  VFNMSUB231PSZmk = 12101,
-  VFNMSUB231PSZmkz = 12102,
-  VFNMSUB231PSZr = 12103,
-  VFNMSUB231PSZrb = 12104,
-  VFNMSUB231PSZrbk = 12105,
-  VFNMSUB231PSZrbkz = 12106,
-  VFNMSUB231PSZrk = 12107,
-  VFNMSUB231PSZrkz = 12108,
-  VFNMSUB231PSm = 12109,
-  VFNMSUB231PSr = 12110,
-  VFNMSUB231SDZm = 12111,
-  VFNMSUB231SDZm_Int = 12112,
-  VFNMSUB231SDZmk_Int = 12113,
-  VFNMSUB231SDZmkz_Int = 12114,
-  VFNMSUB231SDZr = 12115,
-  VFNMSUB231SDZr_Int = 12116,
-  VFNMSUB231SDZrb = 12117,
-  VFNMSUB231SDZrb_Int = 12118,
-  VFNMSUB231SDZrbk_Int = 12119,
-  VFNMSUB231SDZrbkz_Int = 12120,
-  VFNMSUB231SDZrk_Int = 12121,
-  VFNMSUB231SDZrkz_Int = 12122,
-  VFNMSUB231SDm = 12123,
-  VFNMSUB231SDm_Int = 12124,
-  VFNMSUB231SDr = 12125,
-  VFNMSUB231SDr_Int = 12126,
-  VFNMSUB231SHZm = 12127,
-  VFNMSUB231SHZm_Int = 12128,
-  VFNMSUB231SHZmk_Int = 12129,
-  VFNMSUB231SHZmkz_Int = 12130,
-  VFNMSUB231SHZr = 12131,
-  VFNMSUB231SHZr_Int = 12132,
-  VFNMSUB231SHZrb = 12133,
-  VFNMSUB231SHZrb_Int = 12134,
-  VFNMSUB231SHZrbk_Int = 12135,
-  VFNMSUB231SHZrbkz_Int = 12136,
-  VFNMSUB231SHZrk_Int = 12137,
-  VFNMSUB231SHZrkz_Int = 12138,
-  VFNMSUB231SSZm = 12139,
-  VFNMSUB231SSZm_Int = 12140,
-  VFNMSUB231SSZmk_Int = 12141,
-  VFNMSUB231SSZmkz_Int = 12142,
-  VFNMSUB231SSZr = 12143,
-  VFNMSUB231SSZr_Int = 12144,
-  VFNMSUB231SSZrb = 12145,
-  VFNMSUB231SSZrb_Int = 12146,
-  VFNMSUB231SSZrbk_Int = 12147,
-  VFNMSUB231SSZrbkz_Int = 12148,
-  VFNMSUB231SSZrk_Int = 12149,
-  VFNMSUB231SSZrkz_Int = 12150,
-  VFNMSUB231SSm = 12151,
-  VFNMSUB231SSm_Int = 12152,
-  VFNMSUB231SSr = 12153,
-  VFNMSUB231SSr_Int = 12154,
-  VFNMSUBPD4Ymr = 12155,
-  VFNMSUBPD4Yrm = 12156,
-  VFNMSUBPD4Yrr = 12157,
-  VFNMSUBPD4Yrr_REV = 12158,
-  VFNMSUBPD4mr = 12159,
-  VFNMSUBPD4rm = 12160,
-  VFNMSUBPD4rr = 12161,
-  VFNMSUBPD4rr_REV = 12162,
-  VFNMSUBPS4Ymr = 12163,
-  VFNMSUBPS4Yrm = 12164,
-  VFNMSUBPS4Yrr = 12165,
-  VFNMSUBPS4Yrr_REV = 12166,
-  VFNMSUBPS4mr = 12167,
-  VFNMSUBPS4rm = 12168,
-  VFNMSUBPS4rr = 12169,
-  VFNMSUBPS4rr_REV = 12170,
-  VFNMSUBSD4mr = 12171,
-  VFNMSUBSD4mr_Int = 12172,
-  VFNMSUBSD4rm = 12173,
-  VFNMSUBSD4rm_Int = 12174,
-  VFNMSUBSD4rr = 12175,
-  VFNMSUBSD4rr_Int = 12176,
-  VFNMSUBSD4rr_Int_REV = 12177,
-  VFNMSUBSD4rr_REV = 12178,
-  VFNMSUBSS4mr = 12179,
-  VFNMSUBSS4mr_Int = 12180,
-  VFNMSUBSS4rm = 12181,
-  VFNMSUBSS4rm_Int = 12182,
-  VFNMSUBSS4rr = 12183,
-  VFNMSUBSS4rr_Int = 12184,
-  VFNMSUBSS4rr_Int_REV = 12185,
-  VFNMSUBSS4rr_REV = 12186,
-  VFPCLASSBF16Z128mbi = 12187,
-  VFPCLASSBF16Z128mbik = 12188,
-  VFPCLASSBF16Z128mi = 12189,
-  VFPCLASSBF16Z128mik = 12190,
-  VFPCLASSBF16Z128ri = 12191,
-  VFPCLASSBF16Z128rik = 12192,
-  VFPCLASSBF16Z256mbi = 12193,
-  VFPCLASSBF16Z256mbik = 12194,
-  VFPCLASSBF16Z256mi = 12195,
-  VFPCLASSBF16Z256mik = 12196,
-  VFPCLASSBF16Z256ri = 12197,
-  VFPCLASSBF16Z256rik = 12198,
-  VFPCLASSBF16Zmbi = 12199,
-  VFPCLASSBF16Zmbik = 12200,
-  VFPCLASSBF16Zmi = 12201,
-  VFPCLASSBF16Zmik = 12202,
-  VFPCLASSBF16Zri = 12203,
-  VFPCLASSBF16Zrik = 12204,
-  VFPCLASSPDZ128mbi = 12205,
-  VFPCLASSPDZ128mbik = 12206,
-  VFPCLASSPDZ128mi = 12207,
-  VFPCLASSPDZ128mik = 12208,
-  VFPCLASSPDZ128ri = 12209,
-  VFPCLASSPDZ128rik = 12210,
-  VFPCLASSPDZ256mbi = 12211,
-  VFPCLASSPDZ256mbik = 12212,
-  VFPCLASSPDZ256mi = 12213,
-  VFPCLASSPDZ256mik = 12214,
-  VFPCLASSPDZ256ri = 12215,
-  VFPCLASSPDZ256rik = 12216,
-  VFPCLASSPDZmbi = 12217,
-  VFPCLASSPDZmbik = 12218,
-  VFPCLASSPDZmi = 12219,
-  VFPCLASSPDZmik = 12220,
-  VFPCLASSPDZri = 12221,
-  VFPCLASSPDZrik = 12222,
-  VFPCLASSPHZ128mbi = 12223,
-  VFPCLASSPHZ128mbik = 12224,
-  VFPCLASSPHZ128mi = 12225,
-  VFPCLASSPHZ128mik = 12226,
-  VFPCLASSPHZ128ri = 12227,
-  VFPCLASSPHZ128rik = 12228,
-  VFPCLASSPHZ256mbi = 12229,
-  VFPCLASSPHZ256mbik = 12230,
-  VFPCLASSPHZ256mi = 12231,
-  VFPCLASSPHZ256mik = 12232,
-  VFPCLASSPHZ256ri = 12233,
-  VFPCLASSPHZ256rik = 12234,
-  VFPCLASSPHZmbi = 12235,
-  VFPCLASSPHZmbik = 12236,
-  VFPCLASSPHZmi = 12237,
-  VFPCLASSPHZmik = 12238,
-  VFPCLASSPHZri = 12239,
-  VFPCLASSPHZrik = 12240,
-  VFPCLASSPSZ128mbi = 12241,
-  VFPCLASSPSZ128mbik = 12242,
-  VFPCLASSPSZ128mi = 12243,
-  VFPCLASSPSZ128mik = 12244,
-  VFPCLASSPSZ128ri = 12245,
-  VFPCLASSPSZ128rik = 12246,
-  VFPCLASSPSZ256mbi = 12247,
-  VFPCLASSPSZ256mbik = 12248,
-  VFPCLASSPSZ256mi = 12249,
-  VFPCLASSPSZ256mik = 12250,
-  VFPCLASSPSZ256ri = 12251,
-  VFPCLASSPSZ256rik = 12252,
-  VFPCLASSPSZmbi = 12253,
-  VFPCLASSPSZmbik = 12254,
-  VFPCLASSPSZmi = 12255,
-  VFPCLASSPSZmik = 12256,
-  VFPCLASSPSZri = 12257,
-  VFPCLASSPSZrik = 12258,
-  VFPCLASSSDZmi = 12259,
-  VFPCLASSSDZmik = 12260,
-  VFPCLASSSDZri = 12261,
-  VFPCLASSSDZrik = 12262,
-  VFPCLASSSHZmi = 12263,
-  VFPCLASSSHZmik = 12264,
-  VFPCLASSSHZri = 12265,
-  VFPCLASSSHZrik = 12266,
-  VFPCLASSSSZmi = 12267,
-  VFPCLASSSSZmik = 12268,
-  VFPCLASSSSZri = 12269,
-  VFPCLASSSSZrik = 12270,
-  VFRCZPDYrm = 12271,
-  VFRCZPDYrr = 12272,
-  VFRCZPDrm = 12273,
-  VFRCZPDrr = 12274,
-  VFRCZPSYrm = 12275,
-  VFRCZPSYrr = 12276,
-  VFRCZPSrm = 12277,
-  VFRCZPSrr = 12278,
-  VFRCZSDrm = 12279,
-  VFRCZSDrr = 12280,
-  VFRCZSSrm = 12281,
-  VFRCZSSrr = 12282,
-  VGATHERDPDYrm = 12283,
-  VGATHERDPDZ128rm = 12284,
-  VGATHERDPDZ256rm = 12285,
-  VGATHERDPDZrm = 12286,
-  VGATHERDPDrm = 12287,
-  VGATHERDPSYrm = 12288,
-  VGATHERDPSZ128rm = 12289,
-  VGATHERDPSZ256rm = 12290,
-  VGATHERDPSZrm = 12291,
-  VGATHERDPSrm = 12292,
-  VGATHERPF0DPDm = 12293,
-  VGATHERPF0DPSm = 12294,
-  VGATHERPF0QPDm = 12295,
-  VGATHERPF0QPSm = 12296,
-  VGATHERPF1DPDm = 12297,
-  VGATHERPF1DPSm = 12298,
-  VGATHERPF1QPDm = 12299,
-  VGATHERPF1QPSm = 12300,
-  VGATHERQPDYrm = 12301,
-  VGATHERQPDZ128rm = 12302,
-  VGATHERQPDZ256rm = 12303,
-  VGATHERQPDZrm = 12304,
-  VGATHERQPDrm = 12305,
-  VGATHERQPSYrm = 12306,
-  VGATHERQPSZ128rm = 12307,
-  VGATHERQPSZ256rm = 12308,
-  VGATHERQPSZrm = 12309,
-  VGATHERQPSrm = 12310,
-  VGETEXPBF16Z128m = 12311,
-  VGETEXPBF16Z128mb = 12312,
-  VGETEXPBF16Z128mbk = 12313,
-  VGETEXPBF16Z128mbkz = 12314,
-  VGETEXPBF16Z128mk = 12315,
-  VGETEXPBF16Z128mkz = 12316,
-  VGETEXPBF16Z128r = 12317,
-  VGETEXPBF16Z128rk = 12318,
-  VGETEXPBF16Z128rkz = 12319,
-  VGETEXPBF16Z256m = 12320,
-  VGETEXPBF16Z256mb = 12321,
-  VGETEXPBF16Z256mbk = 12322,
-  VGETEXPBF16Z256mbkz = 12323,
-  VGETEXPBF16Z256mk = 12324,
-  VGETEXPBF16Z256mkz = 12325,
-  VGETEXPBF16Z256r = 12326,
-  VGETEXPBF16Z256rk = 12327,
-  VGETEXPBF16Z256rkz = 12328,
-  VGETEXPBF16Zm = 12329,
-  VGETEXPBF16Zmb = 12330,
-  VGETEXPBF16Zmbk = 12331,
-  VGETEXPBF16Zmbkz = 12332,
-  VGETEXPBF16Zmk = 12333,
-  VGETEXPBF16Zmkz = 12334,
-  VGETEXPBF16Zr = 12335,
-  VGETEXPBF16Zrk = 12336,
-  VGETEXPBF16Zrkz = 12337,
-  VGETEXPPDZ128m = 12338,
-  VGETEXPPDZ128mb = 12339,
-  VGETEXPPDZ128mbk = 12340,
-  VGETEXPPDZ128mbkz = 12341,
-  VGETEXPPDZ128mk = 12342,
-  VGETEXPPDZ128mkz = 12343,
-  VGETEXPPDZ128r = 12344,
-  VGETEXPPDZ128rk = 12345,
-  VGETEXPPDZ128rkz = 12346,
-  VGETEXPPDZ256m = 12347,
-  VGETEXPPDZ256mb = 12348,
-  VGETEXPPDZ256mbk = 12349,
-  VGETEXPPDZ256mbkz = 12350,
-  VGETEXPPDZ256mk = 12351,
-  VGETEXPPDZ256mkz = 12352,
-  VGETEXPPDZ256r = 12353,
-  VGETEXPPDZ256rk = 12354,
-  VGETEXPPDZ256rkz = 12355,
-  VGETEXPPDZm = 12356,
-  VGETEXPPDZmb = 12357,
-  VGETEXPPDZmbk = 12358,
-  VGETEXPPDZmbkz = 12359,
-  VGETEXPPDZmk = 12360,
-  VGETEXPPDZmkz = 12361,
-  VGETEXPPDZr = 12362,
-  VGETEXPPDZrb = 12363,
-  VGETEXPPDZrbk = 12364,
-  VGETEXPPDZrbkz = 12365,
-  VGETEXPPDZrk = 12366,
-  VGETEXPPDZrkz = 12367,
-  VGETEXPPHZ128m = 12368,
-  VGETEXPPHZ128mb = 12369,
-  VGETEXPPHZ128mbk = 12370,
-  VGETEXPPHZ128mbkz = 12371,
-  VGETEXPPHZ128mk = 12372,
-  VGETEXPPHZ128mkz = 12373,
-  VGETEXPPHZ128r = 12374,
-  VGETEXPPHZ128rk = 12375,
-  VGETEXPPHZ128rkz = 12376,
-  VGETEXPPHZ256m = 12377,
-  VGETEXPPHZ256mb = 12378,
-  VGETEXPPHZ256mbk = 12379,
-  VGETEXPPHZ256mbkz = 12380,
-  VGETEXPPHZ256mk = 12381,
-  VGETEXPPHZ256mkz = 12382,
-  VGETEXPPHZ256r = 12383,
-  VGETEXPPHZ256rk = 12384,
-  VGETEXPPHZ256rkz = 12385,
-  VGETEXPPHZm = 12386,
-  VGETEXPPHZmb = 12387,
-  VGETEXPPHZmbk = 12388,
-  VGETEXPPHZmbkz = 12389,
-  VGETEXPPHZmk = 12390,
-  VGETEXPPHZmkz = 12391,
-  VGETEXPPHZr = 12392,
-  VGETEXPPHZrb = 12393,
-  VGETEXPPHZrbk = 12394,
-  VGETEXPPHZrbkz = 12395,
-  VGETEXPPHZrk = 12396,
-  VGETEXPPHZrkz = 12397,
-  VGETEXPPSZ128m = 12398,
-  VGETEXPPSZ128mb = 12399,
-  VGETEXPPSZ128mbk = 12400,
-  VGETEXPPSZ128mbkz = 12401,
-  VGETEXPPSZ128mk = 12402,
-  VGETEXPPSZ128mkz = 12403,
-  VGETEXPPSZ128r = 12404,
-  VGETEXPPSZ128rk = 12405,
-  VGETEXPPSZ128rkz = 12406,
-  VGETEXPPSZ256m = 12407,
-  VGETEXPPSZ256mb = 12408,
-  VGETEXPPSZ256mbk = 12409,
-  VGETEXPPSZ256mbkz = 12410,
-  VGETEXPPSZ256mk = 12411,
-  VGETEXPPSZ256mkz = 12412,
-  VGETEXPPSZ256r = 12413,
-  VGETEXPPSZ256rk = 12414,
-  VGETEXPPSZ256rkz = 12415,
-  VGETEXPPSZm = 12416,
-  VGETEXPPSZmb = 12417,
-  VGETEXPPSZmbk = 12418,
-  VGETEXPPSZmbkz = 12419,
-  VGETEXPPSZmk = 12420,
-  VGETEXPPSZmkz = 12421,
-  VGETEXPPSZr = 12422,
-  VGETEXPPSZrb = 12423,
-  VGETEXPPSZrbk = 12424,
-  VGETEXPPSZrbkz = 12425,
-  VGETEXPPSZrk = 12426,
-  VGETEXPPSZrkz = 12427,
-  VGETEXPSDZm = 12428,
-  VGETEXPSDZmk = 12429,
-  VGETEXPSDZmkz = 12430,
-  VGETEXPSDZr = 12431,
-  VGETEXPSDZrb = 12432,
-  VGETEXPSDZrbk = 12433,
-  VGETEXPSDZrbkz = 12434,
-  VGETEXPSDZrk = 12435,
-  VGETEXPSDZrkz = 12436,
-  VGETEXPSHZm = 12437,
-  VGETEXPSHZmk = 12438,
-  VGETEXPSHZmkz = 12439,
-  VGETEXPSHZr = 12440,
-  VGETEXPSHZrb = 12441,
-  VGETEXPSHZrbk = 12442,
-  VGETEXPSHZrbkz = 12443,
-  VGETEXPSHZrk = 12444,
-  VGETEXPSHZrkz = 12445,
-  VGETEXPSSZm = 12446,
-  VGETEXPSSZmk = 12447,
-  VGETEXPSSZmkz = 12448,
-  VGETEXPSSZr = 12449,
-  VGETEXPSSZrb = 12450,
-  VGETEXPSSZrbk = 12451,
-  VGETEXPSSZrbkz = 12452,
-  VGETEXPSSZrk = 12453,
-  VGETEXPSSZrkz = 12454,
-  VGETMANTBF16Z128rmbi = 12455,
-  VGETMANTBF16Z128rmbik = 12456,
-  VGETMANTBF16Z128rmbikz = 12457,
-  VGETMANTBF16Z128rmi = 12458,
-  VGETMANTBF16Z128rmik = 12459,
-  VGETMANTBF16Z128rmikz = 12460,
-  VGETMANTBF16Z128rri = 12461,
-  VGETMANTBF16Z128rrik = 12462,
-  VGETMANTBF16Z128rrikz = 12463,
-  VGETMANTBF16Z256rmbi = 12464,
-  VGETMANTBF16Z256rmbik = 12465,
-  VGETMANTBF16Z256rmbikz = 12466,
-  VGETMANTBF16Z256rmi = 12467,
-  VGETMANTBF16Z256rmik = 12468,
-  VGETMANTBF16Z256rmikz = 12469,
-  VGETMANTBF16Z256rri = 12470,
-  VGETMANTBF16Z256rrik = 12471,
-  VGETMANTBF16Z256rrikz = 12472,
-  VGETMANTBF16Zrmbi = 12473,
-  VGETMANTBF16Zrmbik = 12474,
-  VGETMANTBF16Zrmbikz = 12475,
-  VGETMANTBF16Zrmi = 12476,
-  VGETMANTBF16Zrmik = 12477,
-  VGETMANTBF16Zrmikz = 12478,
-  VGETMANTBF16Zrri = 12479,
-  VGETMANTBF16Zrrik = 12480,
-  VGETMANTBF16Zrrikz = 12481,
-  VGETMANTPDZ128rmbi = 12482,
-  VGETMANTPDZ128rmbik = 12483,
-  VGETMANTPDZ128rmbikz = 12484,
-  VGETMANTPDZ128rmi = 12485,
-  VGETMANTPDZ128rmik = 12486,
-  VGETMANTPDZ128rmikz = 12487,
-  VGETMANTPDZ128rri = 12488,
-  VGETMANTPDZ128rrik = 12489,
-  VGETMANTPDZ128rrikz = 12490,
-  VGETMANTPDZ256rmbi = 12491,
-  VGETMANTPDZ256rmbik = 12492,
-  VGETMANTPDZ256rmbikz = 12493,
-  VGETMANTPDZ256rmi = 12494,
-  VGETMANTPDZ256rmik = 12495,
-  VGETMANTPDZ256rmikz = 12496,
-  VGETMANTPDZ256rri = 12497,
-  VGETMANTPDZ256rrik = 12498,
-  VGETMANTPDZ256rrikz = 12499,
-  VGETMANTPDZrmbi = 12500,
-  VGETMANTPDZrmbik = 12501,
-  VGETMANTPDZrmbikz = 12502,
-  VGETMANTPDZrmi = 12503,
-  VGETMANTPDZrmik = 12504,
-  VGETMANTPDZrmikz = 12505,
-  VGETMANTPDZrri = 12506,
-  VGETMANTPDZrrib = 12507,
-  VGETMANTPDZrribk = 12508,
-  VGETMANTPDZrribkz = 12509,
-  VGETMANTPDZrrik = 12510,
-  VGETMANTPDZrrikz = 12511,
-  VGETMANTPHZ128rmbi = 12512,
-  VGETMANTPHZ128rmbik = 12513,
-  VGETMANTPHZ128rmbikz = 12514,
-  VGETMANTPHZ128rmi = 12515,
-  VGETMANTPHZ128rmik = 12516,
-  VGETMANTPHZ128rmikz = 12517,
-  VGETMANTPHZ128rri = 12518,
-  VGETMANTPHZ128rrik = 12519,
-  VGETMANTPHZ128rrikz = 12520,
-  VGETMANTPHZ256rmbi = 12521,
-  VGETMANTPHZ256rmbik = 12522,
-  VGETMANTPHZ256rmbikz = 12523,
-  VGETMANTPHZ256rmi = 12524,
-  VGETMANTPHZ256rmik = 12525,
-  VGETMANTPHZ256rmikz = 12526,
-  VGETMANTPHZ256rri = 12527,
-  VGETMANTPHZ256rrik = 12528,
-  VGETMANTPHZ256rrikz = 12529,
-  VGETMANTPHZrmbi = 12530,
-  VGETMANTPHZrmbik = 12531,
-  VGETMANTPHZrmbikz = 12532,
-  VGETMANTPHZrmi = 12533,
-  VGETMANTPHZrmik = 12534,
-  VGETMANTPHZrmikz = 12535,
-  VGETMANTPHZrri = 12536,
-  VGETMANTPHZrrib = 12537,
-  VGETMANTPHZrribk = 12538,
-  VGETMANTPHZrribkz = 12539,
-  VGETMANTPHZrrik = 12540,
-  VGETMANTPHZrrikz = 12541,
-  VGETMANTPSZ128rmbi = 12542,
-  VGETMANTPSZ128rmbik = 12543,
-  VGETMANTPSZ128rmbikz = 12544,
-  VGETMANTPSZ128rmi = 12545,
-  VGETMANTPSZ128rmik = 12546,
-  VGETMANTPSZ128rmikz = 12547,
-  VGETMANTPSZ128rri = 12548,
-  VGETMANTPSZ128rrik = 12549,
-  VGETMANTPSZ128rrikz = 12550,
-  VGETMANTPSZ256rmbi = 12551,
-  VGETMANTPSZ256rmbik = 12552,
-  VGETMANTPSZ256rmbikz = 12553,
-  VGETMANTPSZ256rmi = 12554,
-  VGETMANTPSZ256rmik = 12555,
-  VGETMANTPSZ256rmikz = 12556,
-  VGETMANTPSZ256rri = 12557,
-  VGETMANTPSZ256rrik = 12558,
-  VGETMANTPSZ256rrikz = 12559,
-  VGETMANTPSZrmbi = 12560,
-  VGETMANTPSZrmbik = 12561,
-  VGETMANTPSZrmbikz = 12562,
-  VGETMANTPSZrmi = 12563,
-  VGETMANTPSZrmik = 12564,
-  VGETMANTPSZrmikz = 12565,
-  VGETMANTPSZrri = 12566,
-  VGETMANTPSZrrib = 12567,
-  VGETMANTPSZrribk = 12568,
-  VGETMANTPSZrribkz = 12569,
-  VGETMANTPSZrrik = 12570,
-  VGETMANTPSZrrikz = 12571,
-  VGETMANTSDZrmi = 12572,
-  VGETMANTSDZrmik = 12573,
-  VGETMANTSDZrmikz = 12574,
-  VGETMANTSDZrri = 12575,
-  VGETMANTSDZrrib = 12576,
-  VGETMANTSDZrribk = 12577,
-  VGETMANTSDZrribkz = 12578,
-  VGETMANTSDZrrik = 12579,
-  VGETMANTSDZrrikz = 12580,
-  VGETMANTSHZrmi = 12581,
-  VGETMANTSHZrmik = 12582,
-  VGETMANTSHZrmikz = 12583,
-  VGETMANTSHZrri = 12584,
-  VGETMANTSHZrrib = 12585,
-  VGETMANTSHZrribk = 12586,
-  VGETMANTSHZrribkz = 12587,
-  VGETMANTSHZrrik = 12588,
-  VGETMANTSHZrrikz = 12589,
-  VGETMANTSSZrmi = 12590,
-  VGETMANTSSZrmik = 12591,
-  VGETMANTSSZrmikz = 12592,
-  VGETMANTSSZrri = 12593,
-  VGETMANTSSZrrib = 12594,
-  VGETMANTSSZrribk = 12595,
-  VGETMANTSSZrribkz = 12596,
-  VGETMANTSSZrrik = 12597,
-  VGETMANTSSZrrikz = 12598,
-  VGF2P8AFFINEINVQBYrmi = 12599,
-  VGF2P8AFFINEINVQBYrri = 12600,
-  VGF2P8AFFINEINVQBZ128rmbi = 12601,
-  VGF2P8AFFINEINVQBZ128rmbik = 12602,
-  VGF2P8AFFINEINVQBZ128rmbikz = 12603,
-  VGF2P8AFFINEINVQBZ128rmi = 12604,
-  VGF2P8AFFINEINVQBZ128rmik = 12605,
-  VGF2P8AFFINEINVQBZ128rmikz = 12606,
-  VGF2P8AFFINEINVQBZ128rri = 12607,
-  VGF2P8AFFINEINVQBZ128rrik = 12608,
-  VGF2P8AFFINEINVQBZ128rrikz = 12609,
-  VGF2P8AFFINEINVQBZ256rmbi = 12610,
-  VGF2P8AFFINEINVQBZ256rmbik = 12611,
-  VGF2P8AFFINEINVQBZ256rmbikz = 12612,
-  VGF2P8AFFINEINVQBZ256rmi = 12613,
-  VGF2P8AFFINEINVQBZ256rmik = 12614,
-  VGF2P8AFFINEINVQBZ256rmikz = 12615,
-  VGF2P8AFFINEINVQBZ256rri = 12616,
-  VGF2P8AFFINEINVQBZ256rrik = 12617,
-  VGF2P8AFFINEINVQBZ256rrikz = 12618,
-  VGF2P8AFFINEINVQBZrmbi = 12619,
-  VGF2P8AFFINEINVQBZrmbik = 12620,
-  VGF2P8AFFINEINVQBZrmbikz = 12621,
-  VGF2P8AFFINEINVQBZrmi = 12622,
-  VGF2P8AFFINEINVQBZrmik = 12623,
-  VGF2P8AFFINEINVQBZrmikz = 12624,
-  VGF2P8AFFINEINVQBZrri = 12625,
-  VGF2P8AFFINEINVQBZrrik = 12626,
-  VGF2P8AFFINEINVQBZrrikz = 12627,
-  VGF2P8AFFINEINVQBrmi = 12628,
-  VGF2P8AFFINEINVQBrri = 12629,
-  VGF2P8AFFINEQBYrmi = 12630,
-  VGF2P8AFFINEQBYrri = 12631,
-  VGF2P8AFFINEQBZ128rmbi = 12632,
-  VGF2P8AFFINEQBZ128rmbik = 12633,
-  VGF2P8AFFINEQBZ128rmbikz = 12634,
-  VGF2P8AFFINEQBZ128rmi = 12635,
-  VGF2P8AFFINEQBZ128rmik = 12636,
-  VGF2P8AFFINEQBZ128rmikz = 12637,
-  VGF2P8AFFINEQBZ128rri = 12638,
-  VGF2P8AFFINEQBZ128rrik = 12639,
-  VGF2P8AFFINEQBZ128rrikz = 12640,
-  VGF2P8AFFINEQBZ256rmbi = 12641,
-  VGF2P8AFFINEQBZ256rmbik = 12642,
-  VGF2P8AFFINEQBZ256rmbikz = 12643,
-  VGF2P8AFFINEQBZ256rmi = 12644,
-  VGF2P8AFFINEQBZ256rmik = 12645,
-  VGF2P8AFFINEQBZ256rmikz = 12646,
-  VGF2P8AFFINEQBZ256rri = 12647,
-  VGF2P8AFFINEQBZ256rrik = 12648,
-  VGF2P8AFFINEQBZ256rrikz = 12649,
-  VGF2P8AFFINEQBZrmbi = 12650,
-  VGF2P8AFFINEQBZrmbik = 12651,
-  VGF2P8AFFINEQBZrmbikz = 12652,
-  VGF2P8AFFINEQBZrmi = 12653,
-  VGF2P8AFFINEQBZrmik = 12654,
-  VGF2P8AFFINEQBZrmikz = 12655,
-  VGF2P8AFFINEQBZrri = 12656,
-  VGF2P8AFFINEQBZrrik = 12657,
-  VGF2P8AFFINEQBZrrikz = 12658,
-  VGF2P8AFFINEQBrmi = 12659,
-  VGF2P8AFFINEQBrri = 12660,
-  VGF2P8MULBYrm = 12661,
-  VGF2P8MULBYrr = 12662,
-  VGF2P8MULBZ128rm = 12663,
-  VGF2P8MULBZ128rmk = 12664,
-  VGF2P8MULBZ128rmkz = 12665,
-  VGF2P8MULBZ128rr = 12666,
-  VGF2P8MULBZ128rrk = 12667,
-  VGF2P8MULBZ128rrkz = 12668,
-  VGF2P8MULBZ256rm = 12669,
-  VGF2P8MULBZ256rmk = 12670,
-  VGF2P8MULBZ256rmkz = 12671,
-  VGF2P8MULBZ256rr = 12672,
-  VGF2P8MULBZ256rrk = 12673,
-  VGF2P8MULBZ256rrkz = 12674,
-  VGF2P8MULBZrm = 12675,
-  VGF2P8MULBZrmk = 12676,
-  VGF2P8MULBZrmkz = 12677,
-  VGF2P8MULBZrr = 12678,
-  VGF2P8MULBZrrk = 12679,
-  VGF2P8MULBZrrkz = 12680,
-  VGF2P8MULBrm = 12681,
-  VGF2P8MULBrr = 12682,
-  VHADDPDYrm = 12683,
-  VHADDPDYrr = 12684,
-  VHADDPDrm = 12685,
-  VHADDPDrr = 12686,
-  VHADDPSYrm = 12687,
-  VHADDPSYrr = 12688,
-  VHADDPSrm = 12689,
-  VHADDPSrr = 12690,
-  VHSUBPDYrm = 12691,
-  VHSUBPDYrr = 12692,
-  VHSUBPDrm = 12693,
-  VHSUBPDrr = 12694,
-  VHSUBPSYrm = 12695,
-  VHSUBPSYrr = 12696,
-  VHSUBPSrm = 12697,
-  VHSUBPSrr = 12698,
-  VINSERTF128rmi = 12699,
-  VINSERTF128rri = 12700,
-  VINSERTF32X4Z256rmi = 12701,
-  VINSERTF32X4Z256rmik = 12702,
-  VINSERTF32X4Z256rmikz = 12703,
-  VINSERTF32X4Z256rri = 12704,
-  VINSERTF32X4Z256rrik = 12705,
-  VINSERTF32X4Z256rrikz = 12706,
-  VINSERTF32X4Zrmi = 12707,
-  VINSERTF32X4Zrmik = 12708,
-  VINSERTF32X4Zrmikz = 12709,
-  VINSERTF32X4Zrri = 12710,
-  VINSERTF32X4Zrrik = 12711,
-  VINSERTF32X4Zrrikz = 12712,
-  VINSERTF32X8Zrmi = 12713,
-  VINSERTF32X8Zrmik = 12714,
-  VINSERTF32X8Zrmikz = 12715,
-  VINSERTF32X8Zrri = 12716,
-  VINSERTF32X8Zrrik = 12717,
-  VINSERTF32X8Zrrikz = 12718,
-  VINSERTF64X2Z256rmi = 12719,
-  VINSERTF64X2Z256rmik = 12720,
-  VINSERTF64X2Z256rmikz = 12721,
-  VINSERTF64X2Z256rri = 12722,
-  VINSERTF64X2Z256rrik = 12723,
-  VINSERTF64X2Z256rrikz = 12724,
-  VINSERTF64X2Zrmi = 12725,
-  VINSERTF64X2Zrmik = 12726,
-  VINSERTF64X2Zrmikz = 12727,
-  VINSERTF64X2Zrri = 12728,
-  VINSERTF64X2Zrrik = 12729,
-  VINSERTF64X2Zrrikz = 12730,
-  VINSERTF64X4Zrmi = 12731,
-  VINSERTF64X4Zrmik = 12732,
-  VINSERTF64X4Zrmikz = 12733,
-  VINSERTF64X4Zrri = 12734,
-  VINSERTF64X4Zrrik = 12735,
-  VINSERTF64X4Zrrikz = 12736,
-  VINSERTI128rmi = 12737,
-  VINSERTI128rri = 12738,
-  VINSERTI32X4Z256rmi = 12739,
-  VINSERTI32X4Z256rmik = 12740,
-  VINSERTI32X4Z256rmikz = 12741,
-  VINSERTI32X4Z256rri = 12742,
-  VINSERTI32X4Z256rrik = 12743,
-  VINSERTI32X4Z256rrikz = 12744,
-  VINSERTI32X4Zrmi = 12745,
-  VINSERTI32X4Zrmik = 12746,
-  VINSERTI32X4Zrmikz = 12747,
-  VINSERTI32X4Zrri = 12748,
-  VINSERTI32X4Zrrik = 12749,
-  VINSERTI32X4Zrrikz = 12750,
-  VINSERTI32X8Zrmi = 12751,
-  VINSERTI32X8Zrmik = 12752,
-  VINSERTI32X8Zrmikz = 12753,
-  VINSERTI32X8Zrri = 12754,
-  VINSERTI32X8Zrrik = 12755,
-  VINSERTI32X8Zrrikz = 12756,
-  VINSERTI64X2Z256rmi = 12757,
-  VINSERTI64X2Z256rmik = 12758,
-  VINSERTI64X2Z256rmikz = 12759,
-  VINSERTI64X2Z256rri = 12760,
-  VINSERTI64X2Z256rrik = 12761,
-  VINSERTI64X2Z256rrikz = 12762,
-  VINSERTI64X2Zrmi = 12763,
-  VINSERTI64X2Zrmik = 12764,
-  VINSERTI64X2Zrmikz = 12765,
-  VINSERTI64X2Zrri = 12766,
-  VINSERTI64X2Zrrik = 12767,
-  VINSERTI64X2Zrrikz = 12768,
-  VINSERTI64X4Zrmi = 12769,
-  VINSERTI64X4Zrmik = 12770,
-  VINSERTI64X4Zrmikz = 12771,
-  VINSERTI64X4Zrri = 12772,
-  VINSERTI64X4Zrrik = 12773,
-  VINSERTI64X4Zrrikz = 12774,
-  VINSERTPSZrmi = 12775,
-  VINSERTPSZrri = 12776,
-  VINSERTPSrmi = 12777,
-  VINSERTPSrri = 12778,
-  VLDDQUYrm = 12779,
-  VLDDQUrm = 12780,
-  VLDMXCSR = 12781,
-  VMASKMOVDQU = 12782,
-  VMASKMOVDQU64 = 12783,
-  VMASKMOVPDYmr = 12784,
-  VMASKMOVPDYrm = 12785,
-  VMASKMOVPDmr = 12786,
-  VMASKMOVPDrm = 12787,
-  VMASKMOVPSYmr = 12788,
-  VMASKMOVPSYrm = 12789,
-  VMASKMOVPSmr = 12790,
-  VMASKMOVPSrm = 12791,
-  VMAXBF16Z128rm = 12792,
-  VMAXBF16Z128rmb = 12793,
-  VMAXBF16Z128rmbk = 12794,
-  VMAXBF16Z128rmbkz = 12795,
-  VMAXBF16Z128rmk = 12796,
-  VMAXBF16Z128rmkz = 12797,
-  VMAXBF16Z128rr = 12798,
-  VMAXBF16Z128rrk = 12799,
-  VMAXBF16Z128rrkz = 12800,
-  VMAXBF16Z256rm = 12801,
-  VMAXBF16Z256rmb = 12802,
-  VMAXBF16Z256rmbk = 12803,
-  VMAXBF16Z256rmbkz = 12804,
-  VMAXBF16Z256rmk = 12805,
-  VMAXBF16Z256rmkz = 12806,
-  VMAXBF16Z256rr = 12807,
-  VMAXBF16Z256rrk = 12808,
-  VMAXBF16Z256rrkz = 12809,
-  VMAXBF16Zrm = 12810,
-  VMAXBF16Zrmb = 12811,
-  VMAXBF16Zrmbk = 12812,
-  VMAXBF16Zrmbkz = 12813,
-  VMAXBF16Zrmk = 12814,
-  VMAXBF16Zrmkz = 12815,
-  VMAXBF16Zrr = 12816,
-  VMAXBF16Zrrk = 12817,
-  VMAXBF16Zrrkz = 12818,
-  VMAXCPDYrm = 12819,
-  VMAXCPDYrr = 12820,
-  VMAXCPDZ128rm = 12821,
-  VMAXCPDZ128rmb = 12822,
-  VMAXCPDZ128rmbk = 12823,
-  VMAXCPDZ128rmbkz = 12824,
-  VMAXCPDZ128rmk = 12825,
-  VMAXCPDZ128rmkz = 12826,
-  VMAXCPDZ128rr = 12827,
-  VMAXCPDZ128rrk = 12828,
-  VMAXCPDZ128rrkz = 12829,
-  VMAXCPDZ256rm = 12830,
-  VMAXCPDZ256rmb = 12831,
-  VMAXCPDZ256rmbk = 12832,
-  VMAXCPDZ256rmbkz = 12833,
-  VMAXCPDZ256rmk = 12834,
-  VMAXCPDZ256rmkz = 12835,
-  VMAXCPDZ256rr = 12836,
-  VMAXCPDZ256rrk = 12837,
-  VMAXCPDZ256rrkz = 12838,
-  VMAXCPDZrm = 12839,
-  VMAXCPDZrmb = 12840,
-  VMAXCPDZrmbk = 12841,
-  VMAXCPDZrmbkz = 12842,
-  VMAXCPDZrmk = 12843,
-  VMAXCPDZrmkz = 12844,
-  VMAXCPDZrr = 12845,
-  VMAXCPDZrrk = 12846,
-  VMAXCPDZrrkz = 12847,
-  VMAXCPDrm = 12848,
-  VMAXCPDrr = 12849,
-  VMAXCPHZ128rm = 12850,
-  VMAXCPHZ128rmb = 12851,
-  VMAXCPHZ128rmbk = 12852,
-  VMAXCPHZ128rmbkz = 12853,
-  VMAXCPHZ128rmk = 12854,
-  VMAXCPHZ128rmkz = 12855,
-  VMAXCPHZ128rr = 12856,
-  VMAXCPHZ128rrk = 12857,
-  VMAXCPHZ128rrkz = 12858,
-  VMAXCPHZ256rm = 12859,
-  VMAXCPHZ256rmb = 12860,
-  VMAXCPHZ256rmbk = 12861,
-  VMAXCPHZ256rmbkz = 12862,
-  VMAXCPHZ256rmk = 12863,
-  VMAXCPHZ256rmkz = 12864,
-  VMAXCPHZ256rr = 12865,
-  VMAXCPHZ256rrk = 12866,
-  VMAXCPHZ256rrkz = 12867,
-  VMAXCPHZrm = 12868,
-  VMAXCPHZrmb = 12869,
-  VMAXCPHZrmbk = 12870,
-  VMAXCPHZrmbkz = 12871,
-  VMAXCPHZrmk = 12872,
-  VMAXCPHZrmkz = 12873,
-  VMAXCPHZrr = 12874,
-  VMAXCPHZrrk = 12875,
-  VMAXCPHZrrkz = 12876,
-  VMAXCPSYrm = 12877,
-  VMAXCPSYrr = 12878,
-  VMAXCPSZ128rm = 12879,
-  VMAXCPSZ128rmb = 12880,
-  VMAXCPSZ128rmbk = 12881,
-  VMAXCPSZ128rmbkz = 12882,
-  VMAXCPSZ128rmk = 12883,
-  VMAXCPSZ128rmkz = 12884,
-  VMAXCPSZ128rr = 12885,
-  VMAXCPSZ128rrk = 12886,
-  VMAXCPSZ128rrkz = 12887,
-  VMAXCPSZ256rm = 12888,
-  VMAXCPSZ256rmb = 12889,
-  VMAXCPSZ256rmbk = 12890,
-  VMAXCPSZ256rmbkz = 12891,
-  VMAXCPSZ256rmk = 12892,
-  VMAXCPSZ256rmkz = 12893,
-  VMAXCPSZ256rr = 12894,
-  VMAXCPSZ256rrk = 12895,
-  VMAXCPSZ256rrkz = 12896,
-  VMAXCPSZrm = 12897,
-  VMAXCPSZrmb = 12898,
-  VMAXCPSZrmbk = 12899,
-  VMAXCPSZrmbkz = 12900,
-  VMAXCPSZrmk = 12901,
-  VMAXCPSZrmkz = 12902,
-  VMAXCPSZrr = 12903,
-  VMAXCPSZrrk = 12904,
-  VMAXCPSZrrkz = 12905,
-  VMAXCPSrm = 12906,
-  VMAXCPSrr = 12907,
-  VMAXCSDZrm = 12908,
-  VMAXCSDZrr = 12909,
-  VMAXCSDrm = 12910,
-  VMAXCSDrr = 12911,
-  VMAXCSHZrm = 12912,
-  VMAXCSHZrr = 12913,
-  VMAXCSSZrm = 12914,
-  VMAXCSSZrr = 12915,
-  VMAXCSSrm = 12916,
-  VMAXCSSrr = 12917,
-  VMAXPDYrm = 12918,
-  VMAXPDYrr = 12919,
-  VMAXPDZ128rm = 12920,
-  VMAXPDZ128rmb = 12921,
-  VMAXPDZ128rmbk = 12922,
-  VMAXPDZ128rmbkz = 12923,
-  VMAXPDZ128rmk = 12924,
-  VMAXPDZ128rmkz = 12925,
-  VMAXPDZ128rr = 12926,
-  VMAXPDZ128rrk = 12927,
-  VMAXPDZ128rrkz = 12928,
-  VMAXPDZ256rm = 12929,
-  VMAXPDZ256rmb = 12930,
-  VMAXPDZ256rmbk = 12931,
-  VMAXPDZ256rmbkz = 12932,
-  VMAXPDZ256rmk = 12933,
-  VMAXPDZ256rmkz = 12934,
-  VMAXPDZ256rr = 12935,
-  VMAXPDZ256rrk = 12936,
-  VMAXPDZ256rrkz = 12937,
-  VMAXPDZrm = 12938,
-  VMAXPDZrmb = 12939,
-  VMAXPDZrmbk = 12940,
-  VMAXPDZrmbkz = 12941,
-  VMAXPDZrmk = 12942,
-  VMAXPDZrmkz = 12943,
-  VMAXPDZrr = 12944,
-  VMAXPDZrrb = 12945,
-  VMAXPDZrrbk = 12946,
-  VMAXPDZrrbkz = 12947,
-  VMAXPDZrrk = 12948,
-  VMAXPDZrrkz = 12949,
-  VMAXPDrm = 12950,
-  VMAXPDrr = 12951,
-  VMAXPHZ128rm = 12952,
-  VMAXPHZ128rmb = 12953,
-  VMAXPHZ128rmbk = 12954,
-  VMAXPHZ128rmbkz = 12955,
-  VMAXPHZ128rmk = 12956,
-  VMAXPHZ128rmkz = 12957,
-  VMAXPHZ128rr = 12958,
-  VMAXPHZ128rrk = 12959,
-  VMAXPHZ128rrkz = 12960,
-  VMAXPHZ256rm = 12961,
-  VMAXPHZ256rmb = 12962,
-  VMAXPHZ256rmbk = 12963,
-  VMAXPHZ256rmbkz = 12964,
-  VMAXPHZ256rmk = 12965,
-  VMAXPHZ256rmkz = 12966,
-  VMAXPHZ256rr = 12967,
-  VMAXPHZ256rrk = 12968,
-  VMAXPHZ256rrkz = 12969,
-  VMAXPHZrm = 12970,
-  VMAXPHZrmb = 12971,
-  VMAXPHZrmbk = 12972,
-  VMAXPHZrmbkz = 12973,
-  VMAXPHZrmk = 12974,
-  VMAXPHZrmkz = 12975,
-  VMAXPHZrr = 12976,
-  VMAXPHZrrb = 12977,
-  VMAXPHZrrbk = 12978,
-  VMAXPHZrrbkz = 12979,
-  VMAXPHZrrk = 12980,
-  VMAXPHZrrkz = 12981,
-  VMAXPSYrm = 12982,
-  VMAXPSYrr = 12983,
-  VMAXPSZ128rm = 12984,
-  VMAXPSZ128rmb = 12985,
-  VMAXPSZ128rmbk = 12986,
-  VMAXPSZ128rmbkz = 12987,
-  VMAXPSZ128rmk = 12988,
-  VMAXPSZ128rmkz = 12989,
-  VMAXPSZ128rr = 12990,
-  VMAXPSZ128rrk = 12991,
-  VMAXPSZ128rrkz = 12992,
-  VMAXPSZ256rm = 12993,
-  VMAXPSZ256rmb = 12994,
-  VMAXPSZ256rmbk = 12995,
-  VMAXPSZ256rmbkz = 12996,
-  VMAXPSZ256rmk = 12997,
-  VMAXPSZ256rmkz = 12998,
-  VMAXPSZ256rr = 12999,
-  VMAXPSZ256rrk = 13000,
-  VMAXPSZ256rrkz = 13001,
-  VMAXPSZrm = 13002,
-  VMAXPSZrmb = 13003,
-  VMAXPSZrmbk = 13004,
-  VMAXPSZrmbkz = 13005,
-  VMAXPSZrmk = 13006,
-  VMAXPSZrmkz = 13007,
-  VMAXPSZrr = 13008,
-  VMAXPSZrrb = 13009,
-  VMAXPSZrrbk = 13010,
-  VMAXPSZrrbkz = 13011,
-  VMAXPSZrrk = 13012,
-  VMAXPSZrrkz = 13013,
-  VMAXPSrm = 13014,
-  VMAXPSrr = 13015,
-  VMAXSDZrm = 13016,
-  VMAXSDZrm_Int = 13017,
-  VMAXSDZrmk_Int = 13018,
-  VMAXSDZrmkz_Int = 13019,
-  VMAXSDZrr = 13020,
-  VMAXSDZrr_Int = 13021,
-  VMAXSDZrrb_Int = 13022,
-  VMAXSDZrrbk_Int = 13023,
-  VMAXSDZrrbkz_Int = 13024,
-  VMAXSDZrrk_Int = 13025,
-  VMAXSDZrrkz_Int = 13026,
-  VMAXSDrm = 13027,
-  VMAXSDrm_Int = 13028,
-  VMAXSDrr = 13029,
-  VMAXSDrr_Int = 13030,
-  VMAXSHZrm = 13031,
-  VMAXSHZrm_Int = 13032,
-  VMAXSHZrmk_Int = 13033,
-  VMAXSHZrmkz_Int = 13034,
-  VMAXSHZrr = 13035,
-  VMAXSHZrr_Int = 13036,
-  VMAXSHZrrb_Int = 13037,
-  VMAXSHZrrbk_Int = 13038,
-  VMAXSHZrrbkz_Int = 13039,
-  VMAXSHZrrk_Int = 13040,
-  VMAXSHZrrkz_Int = 13041,
-  VMAXSSZrm = 13042,
-  VMAXSSZrm_Int = 13043,
-  VMAXSSZrmk_Int = 13044,
-  VMAXSSZrmkz_Int = 13045,
-  VMAXSSZrr = 13046,
-  VMAXSSZrr_Int = 13047,
-  VMAXSSZrrb_Int = 13048,
-  VMAXSSZrrbk_Int = 13049,
-  VMAXSSZrrbkz_Int = 13050,
-  VMAXSSZrrk_Int = 13051,
-  VMAXSSZrrkz_Int = 13052,
-  VMAXSSrm = 13053,
-  VMAXSSrm_Int = 13054,
-  VMAXSSrr = 13055,
-  VMAXSSrr_Int = 13056,
-  VMCALL = 13057,
-  VMCLEARm = 13058,
-  VMFUNC = 13059,
-  VMINBF16Z128rm = 13060,
-  VMINBF16Z128rmb = 13061,
-  VMINBF16Z128rmbk = 13062,
-  VMINBF16Z128rmbkz = 13063,
-  VMINBF16Z128rmk = 13064,
-  VMINBF16Z128rmkz = 13065,
-  VMINBF16Z128rr = 13066,
-  VMINBF16Z128rrk = 13067,
-  VMINBF16Z128rrkz = 13068,
-  VMINBF16Z256rm = 13069,
-  VMINBF16Z256rmb = 13070,
-  VMINBF16Z256rmbk = 13071,
-  VMINBF16Z256rmbkz = 13072,
-  VMINBF16Z256rmk = 13073,
-  VMINBF16Z256rmkz = 13074,
-  VMINBF16Z256rr = 13075,
-  VMINBF16Z256rrk = 13076,
-  VMINBF16Z256rrkz = 13077,
-  VMINBF16Zrm = 13078,
-  VMINBF16Zrmb = 13079,
-  VMINBF16Zrmbk = 13080,
-  VMINBF16Zrmbkz = 13081,
-  VMINBF16Zrmk = 13082,
-  VMINBF16Zrmkz = 13083,
-  VMINBF16Zrr = 13084,
-  VMINBF16Zrrk = 13085,
-  VMINBF16Zrrkz = 13086,
-  VMINCPDYrm = 13087,
-  VMINCPDYrr = 13088,
-  VMINCPDZ128rm = 13089,
-  VMINCPDZ128rmb = 13090,
-  VMINCPDZ128rmbk = 13091,
-  VMINCPDZ128rmbkz = 13092,
-  VMINCPDZ128rmk = 13093,
-  VMINCPDZ128rmkz = 13094,
-  VMINCPDZ128rr = 13095,
-  VMINCPDZ128rrk = 13096,
-  VMINCPDZ128rrkz = 13097,
-  VMINCPDZ256rm = 13098,
-  VMINCPDZ256rmb = 13099,
-  VMINCPDZ256rmbk = 13100,
-  VMINCPDZ256rmbkz = 13101,
-  VMINCPDZ256rmk = 13102,
-  VMINCPDZ256rmkz = 13103,
-  VMINCPDZ256rr = 13104,
-  VMINCPDZ256rrk = 13105,
-  VMINCPDZ256rrkz = 13106,
-  VMINCPDZrm = 13107,
-  VMINCPDZrmb = 13108,
-  VMINCPDZrmbk = 13109,
-  VMINCPDZrmbkz = 13110,
-  VMINCPDZrmk = 13111,
-  VMINCPDZrmkz = 13112,
-  VMINCPDZrr = 13113,
-  VMINCPDZrrk = 13114,
-  VMINCPDZrrkz = 13115,
-  VMINCPDrm = 13116,
-  VMINCPDrr = 13117,
-  VMINCPHZ128rm = 13118,
-  VMINCPHZ128rmb = 13119,
-  VMINCPHZ128rmbk = 13120,
-  VMINCPHZ128rmbkz = 13121,
-  VMINCPHZ128rmk = 13122,
-  VMINCPHZ128rmkz = 13123,
-  VMINCPHZ128rr = 13124,
-  VMINCPHZ128rrk = 13125,
-  VMINCPHZ128rrkz = 13126,
-  VMINCPHZ256rm = 13127,
-  VMINCPHZ256rmb = 13128,
-  VMINCPHZ256rmbk = 13129,
-  VMINCPHZ256rmbkz = 13130,
-  VMINCPHZ256rmk = 13131,
-  VMINCPHZ256rmkz = 13132,
-  VMINCPHZ256rr = 13133,
-  VMINCPHZ256rrk = 13134,
-  VMINCPHZ256rrkz = 13135,
-  VMINCPHZrm = 13136,
-  VMINCPHZrmb = 13137,
-  VMINCPHZrmbk = 13138,
-  VMINCPHZrmbkz = 13139,
-  VMINCPHZrmk = 13140,
-  VMINCPHZrmkz = 13141,
-  VMINCPHZrr = 13142,
-  VMINCPHZrrk = 13143,
-  VMINCPHZrrkz = 13144,
-  VMINCPSYrm = 13145,
-  VMINCPSYrr = 13146,
-  VMINCPSZ128rm = 13147,
-  VMINCPSZ128rmb = 13148,
-  VMINCPSZ128rmbk = 13149,
-  VMINCPSZ128rmbkz = 13150,
-  VMINCPSZ128rmk = 13151,
-  VMINCPSZ128rmkz = 13152,
-  VMINCPSZ128rr = 13153,
-  VMINCPSZ128rrk = 13154,
-  VMINCPSZ128rrkz = 13155,
-  VMINCPSZ256rm = 13156,
-  VMINCPSZ256rmb = 13157,
-  VMINCPSZ256rmbk = 13158,
-  VMINCPSZ256rmbkz = 13159,
-  VMINCPSZ256rmk = 13160,
-  VMINCPSZ256rmkz = 13161,
-  VMINCPSZ256rr = 13162,
-  VMINCPSZ256rrk = 13163,
-  VMINCPSZ256rrkz = 13164,
-  VMINCPSZrm = 13165,
-  VMINCPSZrmb = 13166,
-  VMINCPSZrmbk = 13167,
-  VMINCPSZrmbkz = 13168,
-  VMINCPSZrmk = 13169,
-  VMINCPSZrmkz = 13170,
-  VMINCPSZrr = 13171,
-  VMINCPSZrrk = 13172,
-  VMINCPSZrrkz = 13173,
-  VMINCPSrm = 13174,
-  VMINCPSrr = 13175,
-  VMINCSDZrm = 13176,
-  VMINCSDZrr = 13177,
-  VMINCSDrm = 13178,
-  VMINCSDrr = 13179,
-  VMINCSHZrm = 13180,
-  VMINCSHZrr = 13181,
-  VMINCSSZrm = 13182,
-  VMINCSSZrr = 13183,
-  VMINCSSrm = 13184,
-  VMINCSSrr = 13185,
-  VMINMAXBF16Z128rmbi = 13186,
-  VMINMAXBF16Z128rmbik = 13187,
-  VMINMAXBF16Z128rmbikz = 13188,
-  VMINMAXBF16Z128rmi = 13189,
-  VMINMAXBF16Z128rmik = 13190,
-  VMINMAXBF16Z128rmikz = 13191,
-  VMINMAXBF16Z128rri = 13192,
-  VMINMAXBF16Z128rrik = 13193,
-  VMINMAXBF16Z128rrikz = 13194,
-  VMINMAXBF16Z256rmbi = 13195,
-  VMINMAXBF16Z256rmbik = 13196,
-  VMINMAXBF16Z256rmbikz = 13197,
-  VMINMAXBF16Z256rmi = 13198,
-  VMINMAXBF16Z256rmik = 13199,
-  VMINMAXBF16Z256rmikz = 13200,
-  VMINMAXBF16Z256rri = 13201,
-  VMINMAXBF16Z256rrik = 13202,
-  VMINMAXBF16Z256rrikz = 13203,
-  VMINMAXBF16Zrmbi = 13204,
-  VMINMAXBF16Zrmbik = 13205,
-  VMINMAXBF16Zrmbikz = 13206,
-  VMINMAXBF16Zrmi = 13207,
-  VMINMAXBF16Zrmik = 13208,
-  VMINMAXBF16Zrmikz = 13209,
-  VMINMAXBF16Zrri = 13210,
-  VMINMAXBF16Zrrik = 13211,
-  VMINMAXBF16Zrrikz = 13212,
-  VMINMAXPDZ128rmbi = 13213,
-  VMINMAXPDZ128rmbik = 13214,
-  VMINMAXPDZ128rmbikz = 13215,
-  VMINMAXPDZ128rmi = 13216,
-  VMINMAXPDZ128rmik = 13217,
-  VMINMAXPDZ128rmikz = 13218,
-  VMINMAXPDZ128rri = 13219,
-  VMINMAXPDZ128rrik = 13220,
-  VMINMAXPDZ128rrikz = 13221,
-  VMINMAXPDZ256rmbi = 13222,
-  VMINMAXPDZ256rmbik = 13223,
-  VMINMAXPDZ256rmbikz = 13224,
-  VMINMAXPDZ256rmi = 13225,
-  VMINMAXPDZ256rmik = 13226,
-  VMINMAXPDZ256rmikz = 13227,
-  VMINMAXPDZ256rri = 13228,
-  VMINMAXPDZ256rrik = 13229,
-  VMINMAXPDZ256rrikz = 13230,
-  VMINMAXPDZrmbi = 13231,
-  VMINMAXPDZrmbik = 13232,
-  VMINMAXPDZrmbikz = 13233,
-  VMINMAXPDZrmi = 13234,
-  VMINMAXPDZrmik = 13235,
-  VMINMAXPDZrmikz = 13236,
-  VMINMAXPDZrri = 13237,
-  VMINMAXPDZrrib = 13238,
-  VMINMAXPDZrribk = 13239,
-  VMINMAXPDZrribkz = 13240,
-  VMINMAXPDZrrik = 13241,
-  VMINMAXPDZrrikz = 13242,
-  VMINMAXPHZ128rmbi = 13243,
-  VMINMAXPHZ128rmbik = 13244,
-  VMINMAXPHZ128rmbikz = 13245,
-  VMINMAXPHZ128rmi = 13246,
-  VMINMAXPHZ128rmik = 13247,
-  VMINMAXPHZ128rmikz = 13248,
-  VMINMAXPHZ128rri = 13249,
-  VMINMAXPHZ128rrik = 13250,
-  VMINMAXPHZ128rrikz = 13251,
-  VMINMAXPHZ256rmbi = 13252,
-  VMINMAXPHZ256rmbik = 13253,
-  VMINMAXPHZ256rmbikz = 13254,
-  VMINMAXPHZ256rmi = 13255,
-  VMINMAXPHZ256rmik = 13256,
-  VMINMAXPHZ256rmikz = 13257,
-  VMINMAXPHZ256rri = 13258,
-  VMINMAXPHZ256rrik = 13259,
-  VMINMAXPHZ256rrikz = 13260,
-  VMINMAXPHZrmbi = 13261,
-  VMINMAXPHZrmbik = 13262,
-  VMINMAXPHZrmbikz = 13263,
-  VMINMAXPHZrmi = 13264,
-  VMINMAXPHZrmik = 13265,
-  VMINMAXPHZrmikz = 13266,
-  VMINMAXPHZrri = 13267,
-  VMINMAXPHZrrib = 13268,
-  VMINMAXPHZrribk = 13269,
-  VMINMAXPHZrribkz = 13270,
-  VMINMAXPHZrrik = 13271,
-  VMINMAXPHZrrikz = 13272,
-  VMINMAXPSZ128rmbi = 13273,
-  VMINMAXPSZ128rmbik = 13274,
-  VMINMAXPSZ128rmbikz = 13275,
-  VMINMAXPSZ128rmi = 13276,
-  VMINMAXPSZ128rmik = 13277,
-  VMINMAXPSZ128rmikz = 13278,
-  VMINMAXPSZ128rri = 13279,
-  VMINMAXPSZ128rrik = 13280,
-  VMINMAXPSZ128rrikz = 13281,
-  VMINMAXPSZ256rmbi = 13282,
-  VMINMAXPSZ256rmbik = 13283,
-  VMINMAXPSZ256rmbikz = 13284,
-  VMINMAXPSZ256rmi = 13285,
-  VMINMAXPSZ256rmik = 13286,
-  VMINMAXPSZ256rmikz = 13287,
-  VMINMAXPSZ256rri = 13288,
-  VMINMAXPSZ256rrik = 13289,
-  VMINMAXPSZ256rrikz = 13290,
-  VMINMAXPSZrmbi = 13291,
-  VMINMAXPSZrmbik = 13292,
-  VMINMAXPSZrmbikz = 13293,
-  VMINMAXPSZrmi = 13294,
-  VMINMAXPSZrmik = 13295,
-  VMINMAXPSZrmikz = 13296,
-  VMINMAXPSZrri = 13297,
-  VMINMAXPSZrrib = 13298,
-  VMINMAXPSZrribk = 13299,
-  VMINMAXPSZrribkz = 13300,
-  VMINMAXPSZrrik = 13301,
-  VMINMAXPSZrrikz = 13302,
-  VMINMAXSDrmi = 13303,
-  VMINMAXSDrmi_Int = 13304,
-  VMINMAXSDrmik_Int = 13305,
-  VMINMAXSDrmikz_Int = 13306,
-  VMINMAXSDrri = 13307,
-  VMINMAXSDrri_Int = 13308,
-  VMINMAXSDrrib_Int = 13309,
-  VMINMAXSDrribk_Int = 13310,
-  VMINMAXSDrribkz_Int = 13311,
-  VMINMAXSDrrik_Int = 13312,
-  VMINMAXSDrrikz_Int = 13313,
-  VMINMAXSHrmi = 13314,
-  VMINMAXSHrmi_Int = 13315,
-  VMINMAXSHrmik_Int = 13316,
-  VMINMAXSHrmikz_Int = 13317,
-  VMINMAXSHrri = 13318,
-  VMINMAXSHrri_Int = 13319,
-  VMINMAXSHrrib_Int = 13320,
-  VMINMAXSHrribk_Int = 13321,
-  VMINMAXSHrribkz_Int = 13322,
-  VMINMAXSHrrik_Int = 13323,
-  VMINMAXSHrrikz_Int = 13324,
-  VMINMAXSSrmi = 13325,
-  VMINMAXSSrmi_Int = 13326,
-  VMINMAXSSrmik_Int = 13327,
-  VMINMAXSSrmikz_Int = 13328,
-  VMINMAXSSrri = 13329,
-  VMINMAXSSrri_Int = 13330,
-  VMINMAXSSrrib_Int = 13331,
-  VMINMAXSSrribk_Int = 13332,
-  VMINMAXSSrribkz_Int = 13333,
-  VMINMAXSSrrik_Int = 13334,
-  VMINMAXSSrrikz_Int = 13335,
-  VMINPDYrm = 13336,
-  VMINPDYrr = 13337,
-  VMINPDZ128rm = 13338,
-  VMINPDZ128rmb = 13339,
-  VMINPDZ128rmbk = 13340,
-  VMINPDZ128rmbkz = 13341,
-  VMINPDZ128rmk = 13342,
-  VMINPDZ128rmkz = 13343,
-  VMINPDZ128rr = 13344,
-  VMINPDZ128rrk = 13345,
-  VMINPDZ128rrkz = 13346,
-  VMINPDZ256rm = 13347,
-  VMINPDZ256rmb = 13348,
-  VMINPDZ256rmbk = 13349,
-  VMINPDZ256rmbkz = 13350,
-  VMINPDZ256rmk = 13351,
-  VMINPDZ256rmkz = 13352,
-  VMINPDZ256rr = 13353,
-  VMINPDZ256rrk = 13354,
-  VMINPDZ256rrkz = 13355,
-  VMINPDZrm = 13356,
-  VMINPDZrmb = 13357,
-  VMINPDZrmbk = 13358,
-  VMINPDZrmbkz = 13359,
-  VMINPDZrmk = 13360,
-  VMINPDZrmkz = 13361,
-  VMINPDZrr = 13362,
-  VMINPDZrrb = 13363,
-  VMINPDZrrbk = 13364,
-  VMINPDZrrbkz = 13365,
-  VMINPDZrrk = 13366,
-  VMINPDZrrkz = 13367,
-  VMINPDrm = 13368,
-  VMINPDrr = 13369,
-  VMINPHZ128rm = 13370,
-  VMINPHZ128rmb = 13371,
-  VMINPHZ128rmbk = 13372,
-  VMINPHZ128rmbkz = 13373,
-  VMINPHZ128rmk = 13374,
-  VMINPHZ128rmkz = 13375,
-  VMINPHZ128rr = 13376,
-  VMINPHZ128rrk = 13377,
-  VMINPHZ128rrkz = 13378,
-  VMINPHZ256rm = 13379,
-  VMINPHZ256rmb = 13380,
-  VMINPHZ256rmbk = 13381,
-  VMINPHZ256rmbkz = 13382,
-  VMINPHZ256rmk = 13383,
-  VMINPHZ256rmkz = 13384,
-  VMINPHZ256rr = 13385,
-  VMINPHZ256rrk = 13386,
-  VMINPHZ256rrkz = 13387,
-  VMINPHZrm = 13388,
-  VMINPHZrmb = 13389,
-  VMINPHZrmbk = 13390,
-  VMINPHZrmbkz = 13391,
-  VMINPHZrmk = 13392,
-  VMINPHZrmkz = 13393,
-  VMINPHZrr = 13394,
-  VMINPHZrrb = 13395,
-  VMINPHZrrbk = 13396,
-  VMINPHZrrbkz = 13397,
-  VMINPHZrrk = 13398,
-  VMINPHZrrkz = 13399,
-  VMINPSYrm = 13400,
-  VMINPSYrr = 13401,
-  VMINPSZ128rm = 13402,
-  VMINPSZ128rmb = 13403,
-  VMINPSZ128rmbk = 13404,
-  VMINPSZ128rmbkz = 13405,
-  VMINPSZ128rmk = 13406,
-  VMINPSZ128rmkz = 13407,
-  VMINPSZ128rr = 13408,
-  VMINPSZ128rrk = 13409,
-  VMINPSZ128rrkz = 13410,
-  VMINPSZ256rm = 13411,
-  VMINPSZ256rmb = 13412,
-  VMINPSZ256rmbk = 13413,
-  VMINPSZ256rmbkz = 13414,
-  VMINPSZ256rmk = 13415,
-  VMINPSZ256rmkz = 13416,
-  VMINPSZ256rr = 13417,
-  VMINPSZ256rrk = 13418,
-  VMINPSZ256rrkz = 13419,
-  VMINPSZrm = 13420,
-  VMINPSZrmb = 13421,
-  VMINPSZrmbk = 13422,
-  VMINPSZrmbkz = 13423,
-  VMINPSZrmk = 13424,
-  VMINPSZrmkz = 13425,
-  VMINPSZrr = 13426,
-  VMINPSZrrb = 13427,
-  VMINPSZrrbk = 13428,
-  VMINPSZrrbkz = 13429,
-  VMINPSZrrk = 13430,
-  VMINPSZrrkz = 13431,
-  VMINPSrm = 13432,
-  VMINPSrr = 13433,
-  VMINSDZrm = 13434,
-  VMINSDZrm_Int = 13435,
-  VMINSDZrmk_Int = 13436,
-  VMINSDZrmkz_Int = 13437,
-  VMINSDZrr = 13438,
-  VMINSDZrr_Int = 13439,
-  VMINSDZrrb_Int = 13440,
-  VMINSDZrrbk_Int = 13441,
-  VMINSDZrrbkz_Int = 13442,
-  VMINSDZrrk_Int = 13443,
-  VMINSDZrrkz_Int = 13444,
-  VMINSDrm = 13445,
-  VMINSDrm_Int = 13446,
-  VMINSDrr = 13447,
-  VMINSDrr_Int = 13448,
-  VMINSHZrm = 13449,
-  VMINSHZrm_Int = 13450,
-  VMINSHZrmk_Int = 13451,
-  VMINSHZrmkz_Int = 13452,
-  VMINSHZrr = 13453,
-  VMINSHZrr_Int = 13454,
-  VMINSHZrrb_Int = 13455,
-  VMINSHZrrbk_Int = 13456,
-  VMINSHZrrbkz_Int = 13457,
-  VMINSHZrrk_Int = 13458,
-  VMINSHZrrkz_Int = 13459,
-  VMINSSZrm = 13460,
-  VMINSSZrm_Int = 13461,
-  VMINSSZrmk_Int = 13462,
-  VMINSSZrmkz_Int = 13463,
-  VMINSSZrr = 13464,
-  VMINSSZrr_Int = 13465,
-  VMINSSZrrb_Int = 13466,
-  VMINSSZrrbk_Int = 13467,
-  VMINSSZrrbkz_Int = 13468,
-  VMINSSZrrk_Int = 13469,
-  VMINSSZrrkz_Int = 13470,
-  VMINSSrm = 13471,
-  VMINSSrm_Int = 13472,
-  VMINSSrr = 13473,
-  VMINSSrr_Int = 13474,
-  VMLAUNCH = 13475,
-  VMLOAD32 = 13476,
-  VMLOAD64 = 13477,
-  VMMCALL = 13478,
-  VMOV64toPQIZrm = 13479,
-  VMOV64toPQIZrr = 13480,
-  VMOV64toPQIrm = 13481,
-  VMOV64toPQIrr = 13482,
-  VMOV64toSDZrr = 13483,
-  VMOV64toSDrr = 13484,
-  VMOVAPDYmr = 13485,
-  VMOVAPDYrm = 13486,
-  VMOVAPDYrr = 13487,
-  VMOVAPDYrr_REV = 13488,
-  VMOVAPDZ128mr = 13489,
-  VMOVAPDZ128mrk = 13490,
-  VMOVAPDZ128rm = 13491,
-  VMOVAPDZ128rmk = 13492,
-  VMOVAPDZ128rmkz = 13493,
-  VMOVAPDZ128rr = 13494,
-  VMOVAPDZ128rr_REV = 13495,
-  VMOVAPDZ128rrk = 13496,
-  VMOVAPDZ128rrk_REV = 13497,
-  VMOVAPDZ128rrkz = 13498,
-  VMOVAPDZ128rrkz_REV = 13499,
-  VMOVAPDZ256mr = 13500,
-  VMOVAPDZ256mrk = 13501,
-  VMOVAPDZ256rm = 13502,
-  VMOVAPDZ256rmk = 13503,
-  VMOVAPDZ256rmkz = 13504,
-  VMOVAPDZ256rr = 13505,
-  VMOVAPDZ256rr_REV = 13506,
-  VMOVAPDZ256rrk = 13507,
-  VMOVAPDZ256rrk_REV = 13508,
-  VMOVAPDZ256rrkz = 13509,
-  VMOVAPDZ256rrkz_REV = 13510,
-  VMOVAPDZmr = 13511,
-  VMOVAPDZmrk = 13512,
-  VMOVAPDZrm = 13513,
-  VMOVAPDZrmk = 13514,
-  VMOVAPDZrmkz = 13515,
-  VMOVAPDZrr = 13516,
-  VMOVAPDZrr_REV = 13517,
-  VMOVAPDZrrk = 13518,
-  VMOVAPDZrrk_REV = 13519,
-  VMOVAPDZrrkz = 13520,
-  VMOVAPDZrrkz_REV = 13521,
-  VMOVAPDmr = 13522,
-  VMOVAPDrm = 13523,
-  VMOVAPDrr = 13524,
-  VMOVAPDrr_REV = 13525,
-  VMOVAPSYmr = 13526,
-  VMOVAPSYrm = 13527,
-  VMOVAPSYrr = 13528,
-  VMOVAPSYrr_REV = 13529,
-  VMOVAPSZ128mr = 13530,
-  VMOVAPSZ128mrk = 13531,
-  VMOVAPSZ128rm = 13532,
-  VMOVAPSZ128rmk = 13533,
-  VMOVAPSZ128rmkz = 13534,
-  VMOVAPSZ128rr = 13535,
-  VMOVAPSZ128rr_REV = 13536,
-  VMOVAPSZ128rrk = 13537,
-  VMOVAPSZ128rrk_REV = 13538,
-  VMOVAPSZ128rrkz = 13539,
-  VMOVAPSZ128rrkz_REV = 13540,
-  VMOVAPSZ256mr = 13541,
-  VMOVAPSZ256mrk = 13542,
-  VMOVAPSZ256rm = 13543,
-  VMOVAPSZ256rmk = 13544,
-  VMOVAPSZ256rmkz = 13545,
-  VMOVAPSZ256rr = 13546,
-  VMOVAPSZ256rr_REV = 13547,
-  VMOVAPSZ256rrk = 13548,
-  VMOVAPSZ256rrk_REV = 13549,
-  VMOVAPSZ256rrkz = 13550,
-  VMOVAPSZ256rrkz_REV = 13551,
-  VMOVAPSZmr = 13552,
-  VMOVAPSZmrk = 13553,
-  VMOVAPSZrm = 13554,
-  VMOVAPSZrmk = 13555,
-  VMOVAPSZrmkz = 13556,
-  VMOVAPSZrr = 13557,
-  VMOVAPSZrr_REV = 13558,
-  VMOVAPSZrrk = 13559,
-  VMOVAPSZrrk_REV = 13560,
-  VMOVAPSZrrkz = 13561,
-  VMOVAPSZrrkz_REV = 13562,
-  VMOVAPSmr = 13563,
-  VMOVAPSrm = 13564,
-  VMOVAPSrr = 13565,
-  VMOVAPSrr_REV = 13566,
-  VMOVDDUPYrm = 13567,
-  VMOVDDUPYrr = 13568,
-  VMOVDDUPZ128rm = 13569,
-  VMOVDDUPZ128rmk = 13570,
-  VMOVDDUPZ128rmkz = 13571,
-  VMOVDDUPZ128rr = 13572,
-  VMOVDDUPZ128rrk = 13573,
-  VMOVDDUPZ128rrkz = 13574,
-  VMOVDDUPZ256rm = 13575,
-  VMOVDDUPZ256rmk = 13576,
-  VMOVDDUPZ256rmkz = 13577,
-  VMOVDDUPZ256rr = 13578,
-  VMOVDDUPZ256rrk = 13579,
-  VMOVDDUPZ256rrkz = 13580,
-  VMOVDDUPZrm = 13581,
-  VMOVDDUPZrmk = 13582,
-  VMOVDDUPZrmkz = 13583,
-  VMOVDDUPZrr = 13584,
-  VMOVDDUPZrrk = 13585,
-  VMOVDDUPZrrkz = 13586,
-  VMOVDDUPrm = 13587,
-  VMOVDDUPrr = 13588,
-  VMOVDI2PDIZrm = 13589,
-  VMOVDI2PDIZrr = 13590,
-  VMOVDI2PDIrm = 13591,
-  VMOVDI2PDIrr = 13592,
-  VMOVDI2SSZrr = 13593,
-  VMOVDI2SSrr = 13594,
-  VMOVDQA32Z128mr = 13595,
-  VMOVDQA32Z128mrk = 13596,
-  VMOVDQA32Z128rm = 13597,
-  VMOVDQA32Z128rmk = 13598,
-  VMOVDQA32Z128rmkz = 13599,
-  VMOVDQA32Z128rr = 13600,
-  VMOVDQA32Z128rr_REV = 13601,
-  VMOVDQA32Z128rrk = 13602,
-  VMOVDQA32Z128rrk_REV = 13603,
-  VMOVDQA32Z128rrkz = 13604,
-  VMOVDQA32Z128rrkz_REV = 13605,
-  VMOVDQA32Z256mr = 13606,
-  VMOVDQA32Z256mrk = 13607,
-  VMOVDQA32Z256rm = 13608,
-  VMOVDQA32Z256rmk = 13609,
-  VMOVDQA32Z256rmkz = 13610,
-  VMOVDQA32Z256rr = 13611,
-  VMOVDQA32Z256rr_REV = 13612,
-  VMOVDQA32Z256rrk = 13613,
-  VMOVDQA32Z256rrk_REV = 13614,
-  VMOVDQA32Z256rrkz = 13615,
-  VMOVDQA32Z256rrkz_REV = 13616,
-  VMOVDQA32Zmr = 13617,
-  VMOVDQA32Zmrk = 13618,
-  VMOVDQA32Zrm = 13619,
-  VMOVDQA32Zrmk = 13620,
-  VMOVDQA32Zrmkz = 13621,
-  VMOVDQA32Zrr = 13622,
-  VMOVDQA32Zrr_REV = 13623,
-  VMOVDQA32Zrrk = 13624,
-  VMOVDQA32Zrrk_REV = 13625,
-  VMOVDQA32Zrrkz = 13626,
-  VMOVDQA32Zrrkz_REV = 13627,
-  VMOVDQA64Z128mr = 13628,
-  VMOVDQA64Z128mrk = 13629,
-  VMOVDQA64Z128rm = 13630,
-  VMOVDQA64Z128rmk = 13631,
-  VMOVDQA64Z128rmkz = 13632,
-  VMOVDQA64Z128rr = 13633,
-  VMOVDQA64Z128rr_REV = 13634,
-  VMOVDQA64Z128rrk = 13635,
-  VMOVDQA64Z128rrk_REV = 13636,
-  VMOVDQA64Z128rrkz = 13637,
-  VMOVDQA64Z128rrkz_REV = 13638,
-  VMOVDQA64Z256mr = 13639,
-  VMOVDQA64Z256mrk = 13640,
-  VMOVDQA64Z256rm = 13641,
-  VMOVDQA64Z256rmk = 13642,
-  VMOVDQA64Z256rmkz = 13643,
-  VMOVDQA64Z256rr = 13644,
-  VMOVDQA64Z256rr_REV = 13645,
-  VMOVDQA64Z256rrk = 13646,
-  VMOVDQA64Z256rrk_REV = 13647,
-  VMOVDQA64Z256rrkz = 13648,
-  VMOVDQA64Z256rrkz_REV = 13649,
-  VMOVDQA64Zmr = 13650,
-  VMOVDQA64Zmrk = 13651,
-  VMOVDQA64Zrm = 13652,
-  VMOVDQA64Zrmk = 13653,
-  VMOVDQA64Zrmkz = 13654,
-  VMOVDQA64Zrr = 13655,
-  VMOVDQA64Zrr_REV = 13656,
-  VMOVDQA64Zrrk = 13657,
-  VMOVDQA64Zrrk_REV = 13658,
-  VMOVDQA64Zrrkz = 13659,
-  VMOVDQA64Zrrkz_REV = 13660,
-  VMOVDQAYmr = 13661,
-  VMOVDQAYrm = 13662,
-  VMOVDQAYrr = 13663,
-  VMOVDQAYrr_REV = 13664,
-  VMOVDQAmr = 13665,
-  VMOVDQArm = 13666,
-  VMOVDQArr = 13667,
-  VMOVDQArr_REV = 13668,
-  VMOVDQU16Z128mr = 13669,
-  VMOVDQU16Z128mrk = 13670,
-  VMOVDQU16Z128rm = 13671,
-  VMOVDQU16Z128rmk = 13672,
-  VMOVDQU16Z128rmkz = 13673,
-  VMOVDQU16Z128rr = 13674,
-  VMOVDQU16Z128rr_REV = 13675,
-  VMOVDQU16Z128rrk = 13676,
-  VMOVDQU16Z128rrk_REV = 13677,
-  VMOVDQU16Z128rrkz = 13678,
-  VMOVDQU16Z128rrkz_REV = 13679,
-  VMOVDQU16Z256mr = 13680,
-  VMOVDQU16Z256mrk = 13681,
-  VMOVDQU16Z256rm = 13682,
-  VMOVDQU16Z256rmk = 13683,
-  VMOVDQU16Z256rmkz = 13684,
-  VMOVDQU16Z256rr = 13685,
-  VMOVDQU16Z256rr_REV = 13686,
-  VMOVDQU16Z256rrk = 13687,
-  VMOVDQU16Z256rrk_REV = 13688,
-  VMOVDQU16Z256rrkz = 13689,
-  VMOVDQU16Z256rrkz_REV = 13690,
-  VMOVDQU16Zmr = 13691,
-  VMOVDQU16Zmrk = 13692,
-  VMOVDQU16Zrm = 13693,
-  VMOVDQU16Zrmk = 13694,
-  VMOVDQU16Zrmkz = 13695,
-  VMOVDQU16Zrr = 13696,
-  VMOVDQU16Zrr_REV = 13697,
-  VMOVDQU16Zrrk = 13698,
-  VMOVDQU16Zrrk_REV = 13699,
-  VMOVDQU16Zrrkz = 13700,
-  VMOVDQU16Zrrkz_REV = 13701,
-  VMOVDQU32Z128mr = 13702,
-  VMOVDQU32Z128mrk = 13703,
-  VMOVDQU32Z128rm = 13704,
-  VMOVDQU32Z128rmk = 13705,
-  VMOVDQU32Z128rmkz = 13706,
-  VMOVDQU32Z128rr = 13707,
-  VMOVDQU32Z128rr_REV = 13708,
-  VMOVDQU32Z128rrk = 13709,
-  VMOVDQU32Z128rrk_REV = 13710,
-  VMOVDQU32Z128rrkz = 13711,
-  VMOVDQU32Z128rrkz_REV = 13712,
-  VMOVDQU32Z256mr = 13713,
-  VMOVDQU32Z256mrk = 13714,
-  VMOVDQU32Z256rm = 13715,
-  VMOVDQU32Z256rmk = 13716,
-  VMOVDQU32Z256rmkz = 13717,
-  VMOVDQU32Z256rr = 13718,
-  VMOVDQU32Z256rr_REV = 13719,
-  VMOVDQU32Z256rrk = 13720,
-  VMOVDQU32Z256rrk_REV = 13721,
-  VMOVDQU32Z256rrkz = 13722,
-  VMOVDQU32Z256rrkz_REV = 13723,
-  VMOVDQU32Zmr = 13724,
-  VMOVDQU32Zmrk = 13725,
-  VMOVDQU32Zrm = 13726,
-  VMOVDQU32Zrmk = 13727,
-  VMOVDQU32Zrmkz = 13728,
-  VMOVDQU32Zrr = 13729,
-  VMOVDQU32Zrr_REV = 13730,
-  VMOVDQU32Zrrk = 13731,
-  VMOVDQU32Zrrk_REV = 13732,
-  VMOVDQU32Zrrkz = 13733,
-  VMOVDQU32Zrrkz_REV = 13734,
-  VMOVDQU64Z128mr = 13735,
-  VMOVDQU64Z128mrk = 13736,
-  VMOVDQU64Z128rm = 13737,
-  VMOVDQU64Z128rmk = 13738,
-  VMOVDQU64Z128rmkz = 13739,
-  VMOVDQU64Z128rr = 13740,
-  VMOVDQU64Z128rr_REV = 13741,
-  VMOVDQU64Z128rrk = 13742,
-  VMOVDQU64Z128rrk_REV = 13743,
-  VMOVDQU64Z128rrkz = 13744,
-  VMOVDQU64Z128rrkz_REV = 13745,
-  VMOVDQU64Z256mr = 13746,
-  VMOVDQU64Z256mrk = 13747,
-  VMOVDQU64Z256rm = 13748,
-  VMOVDQU64Z256rmk = 13749,
-  VMOVDQU64Z256rmkz = 13750,
-  VMOVDQU64Z256rr = 13751,
-  VMOVDQU64Z256rr_REV = 13752,
-  VMOVDQU64Z256rrk = 13753,
-  VMOVDQU64Z256rrk_REV = 13754,
-  VMOVDQU64Z256rrkz = 13755,
-  VMOVDQU64Z256rrkz_REV = 13756,
-  VMOVDQU64Zmr = 13757,
-  VMOVDQU64Zmrk = 13758,
-  VMOVDQU64Zrm = 13759,
-  VMOVDQU64Zrmk = 13760,
-  VMOVDQU64Zrmkz = 13761,
-  VMOVDQU64Zrr = 13762,
-  VMOVDQU64Zrr_REV = 13763,
-  VMOVDQU64Zrrk = 13764,
-  VMOVDQU64Zrrk_REV = 13765,
-  VMOVDQU64Zrrkz = 13766,
-  VMOVDQU64Zrrkz_REV = 13767,
-  VMOVDQU8Z128mr = 13768,
-  VMOVDQU8Z128mrk = 13769,
-  VMOVDQU8Z128rm = 13770,
-  VMOVDQU8Z128rmk = 13771,
-  VMOVDQU8Z128rmkz = 13772,
-  VMOVDQU8Z128rr = 13773,
-  VMOVDQU8Z128rr_REV = 13774,
-  VMOVDQU8Z128rrk = 13775,
-  VMOVDQU8Z128rrk_REV = 13776,
-  VMOVDQU8Z128rrkz = 13777,
-  VMOVDQU8Z128rrkz_REV = 13778,
-  VMOVDQU8Z256mr = 13779,
-  VMOVDQU8Z256mrk = 13780,
-  VMOVDQU8Z256rm = 13781,
-  VMOVDQU8Z256rmk = 13782,
-  VMOVDQU8Z256rmkz = 13783,
-  VMOVDQU8Z256rr = 13784,
-  VMOVDQU8Z256rr_REV = 13785,
-  VMOVDQU8Z256rrk = 13786,
-  VMOVDQU8Z256rrk_REV = 13787,
-  VMOVDQU8Z256rrkz = 13788,
-  VMOVDQU8Z256rrkz_REV = 13789,
-  VMOVDQU8Zmr = 13790,
-  VMOVDQU8Zmrk = 13791,
-  VMOVDQU8Zrm = 13792,
-  VMOVDQU8Zrmk = 13793,
-  VMOVDQU8Zrmkz = 13794,
-  VMOVDQU8Zrr = 13795,
-  VMOVDQU8Zrr_REV = 13796,
-  VMOVDQU8Zrrk = 13797,
-  VMOVDQU8Zrrk_REV = 13798,
-  VMOVDQU8Zrrkz = 13799,
-  VMOVDQU8Zrrkz_REV = 13800,
-  VMOVDQUYmr = 13801,
-  VMOVDQUYrm = 13802,
-  VMOVDQUYrr = 13803,
-  VMOVDQUYrr_REV = 13804,
-  VMOVDQUmr = 13805,
-  VMOVDQUrm = 13806,
-  VMOVDQUrr = 13807,
-  VMOVDQUrr_REV = 13808,
-  VMOVHLPSZrr = 13809,
-  VMOVHLPSrr = 13810,
-  VMOVHPDZ128mr = 13811,
-  VMOVHPDZ128rm = 13812,
-  VMOVHPDmr = 13813,
-  VMOVHPDrm = 13814,
-  VMOVHPSZ128mr = 13815,
-  VMOVHPSZ128rm = 13816,
-  VMOVHPSmr = 13817,
-  VMOVHPSrm = 13818,
-  VMOVLHPSZrr = 13819,
-  VMOVLHPSrr = 13820,
-  VMOVLPDZ128mr = 13821,
-  VMOVLPDZ128rm = 13822,
-  VMOVLPDmr = 13823,
-  VMOVLPDrm = 13824,
-  VMOVLPSZ128mr = 13825,
-  VMOVLPSZ128rm = 13826,
-  VMOVLPSmr = 13827,
-  VMOVLPSrm = 13828,
-  VMOVMSKPDYrr = 13829,
-  VMOVMSKPDrr = 13830,
-  VMOVMSKPSYrr = 13831,
-  VMOVMSKPSrr = 13832,
-  VMOVNTDQAYrm = 13833,
-  VMOVNTDQAZ128rm = 13834,
-  VMOVNTDQAZ256rm = 13835,
-  VMOVNTDQAZrm = 13836,
-  VMOVNTDQArm = 13837,
-  VMOVNTDQYmr = 13838,
-  VMOVNTDQZ128mr = 13839,
-  VMOVNTDQZ256mr = 13840,
-  VMOVNTDQZmr = 13841,
-  VMOVNTDQmr = 13842,
-  VMOVNTPDYmr = 13843,
-  VMOVNTPDZ128mr = 13844,
-  VMOVNTPDZ256mr = 13845,
-  VMOVNTPDZmr = 13846,
-  VMOVNTPDmr = 13847,
-  VMOVNTPSYmr = 13848,
-  VMOVNTPSZ128mr = 13849,
-  VMOVNTPSZ256mr = 13850,
-  VMOVNTPSZmr = 13851,
-  VMOVNTPSmr = 13852,
-  VMOVPDI2DIZmr = 13853,
-  VMOVPDI2DIZrr = 13854,
-  VMOVPDI2DImr = 13855,
-  VMOVPDI2DIrr = 13856,
-  VMOVPQI2QIZmr = 13857,
-  VMOVPQI2QIZrr = 13858,
-  VMOVPQI2QImr = 13859,
-  VMOVPQI2QIrr = 13860,
-  VMOVPQIto64Zmr = 13861,
-  VMOVPQIto64Zrr = 13862,
-  VMOVPQIto64mr = 13863,
-  VMOVPQIto64rr = 13864,
-  VMOVQI2PQIZrm = 13865,
-  VMOVQI2PQIrm = 13866,
-  VMOVRSBZ128m = 13867,
-  VMOVRSBZ128mk = 13868,
-  VMOVRSBZ128mkz = 13869,
-  VMOVRSBZ256m = 13870,
-  VMOVRSBZ256mk = 13871,
-  VMOVRSBZ256mkz = 13872,
-  VMOVRSBZm = 13873,
-  VMOVRSBZmk = 13874,
-  VMOVRSBZmkz = 13875,
-  VMOVRSDZ128m = 13876,
-  VMOVRSDZ128mk = 13877,
-  VMOVRSDZ128mkz = 13878,
-  VMOVRSDZ256m = 13879,
-  VMOVRSDZ256mk = 13880,
-  VMOVRSDZ256mkz = 13881,
-  VMOVRSDZm = 13882,
-  VMOVRSDZmk = 13883,
-  VMOVRSDZmkz = 13884,
-  VMOVRSQZ128m = 13885,
-  VMOVRSQZ128mk = 13886,
-  VMOVRSQZ128mkz = 13887,
-  VMOVRSQZ256m = 13888,
-  VMOVRSQZ256mk = 13889,
-  VMOVRSQZ256mkz = 13890,
-  VMOVRSQZm = 13891,
-  VMOVRSQZmk = 13892,
-  VMOVRSQZmkz = 13893,
-  VMOVRSWZ128m = 13894,
-  VMOVRSWZ128mk = 13895,
-  VMOVRSWZ128mkz = 13896,
-  VMOVRSWZ256m = 13897,
-  VMOVRSWZ256mk = 13898,
-  VMOVRSWZ256mkz = 13899,
-  VMOVRSWZm = 13900,
-  VMOVRSWZmk = 13901,
-  VMOVRSWZmkz = 13902,
-  VMOVSDZmr = 13903,
-  VMOVSDZmrk = 13904,
-  VMOVSDZrm = 13905,
-  VMOVSDZrm_alt = 13906,
-  VMOVSDZrmk = 13907,
-  VMOVSDZrmkz = 13908,
-  VMOVSDZrr = 13909,
-  VMOVSDZrr_REV = 13910,
-  VMOVSDZrrk = 13911,
-  VMOVSDZrrk_REV = 13912,
-  VMOVSDZrrkz = 13913,
-  VMOVSDZrrkz_REV = 13914,
-  VMOVSDmr = 13915,
-  VMOVSDrm = 13916,
-  VMOVSDrm_alt = 13917,
-  VMOVSDrr = 13918,
-  VMOVSDrr_REV = 13919,
-  VMOVSDto64Zrr = 13920,
-  VMOVSDto64rr = 13921,
-  VMOVSH2Wrr = 13922,
-  VMOVSHDUPYrm = 13923,
-  VMOVSHDUPYrr = 13924,
-  VMOVSHDUPZ128rm = 13925,
-  VMOVSHDUPZ128rmk = 13926,
-  VMOVSHDUPZ128rmkz = 13927,
-  VMOVSHDUPZ128rr = 13928,
-  VMOVSHDUPZ128rrk = 13929,
-  VMOVSHDUPZ128rrkz = 13930,
-  VMOVSHDUPZ256rm = 13931,
-  VMOVSHDUPZ256rmk = 13932,
-  VMOVSHDUPZ256rmkz = 13933,
-  VMOVSHDUPZ256rr = 13934,
-  VMOVSHDUPZ256rrk = 13935,
-  VMOVSHDUPZ256rrkz = 13936,
-  VMOVSHDUPZrm = 13937,
-  VMOVSHDUPZrmk = 13938,
-  VMOVSHDUPZrmkz = 13939,
-  VMOVSHDUPZrr = 13940,
-  VMOVSHDUPZrrk = 13941,
-  VMOVSHDUPZrrkz = 13942,
-  VMOVSHDUPrm = 13943,
-  VMOVSHDUPrr = 13944,
-  VMOVSHZmr = 13945,
-  VMOVSHZmrk = 13946,
-  VMOVSHZrm = 13947,
-  VMOVSHZrm_alt = 13948,
-  VMOVSHZrmk = 13949,
-  VMOVSHZrmkz = 13950,
-  VMOVSHZrr = 13951,
-  VMOVSHZrr_REV = 13952,
-  VMOVSHZrrk = 13953,
-  VMOVSHZrrk_REV = 13954,
-  VMOVSHZrrkz = 13955,
-  VMOVSHZrrkz_REV = 13956,
-  VMOVSHtoW64rr = 13957,
-  VMOVSLDUPYrm = 13958,
-  VMOVSLDUPYrr = 13959,
-  VMOVSLDUPZ128rm = 13960,
-  VMOVSLDUPZ128rmk = 13961,
-  VMOVSLDUPZ128rmkz = 13962,
-  VMOVSLDUPZ128rr = 13963,
-  VMOVSLDUPZ128rrk = 13964,
-  VMOVSLDUPZ128rrkz = 13965,
-  VMOVSLDUPZ256rm = 13966,
-  VMOVSLDUPZ256rmk = 13967,
-  VMOVSLDUPZ256rmkz = 13968,
-  VMOVSLDUPZ256rr = 13969,
-  VMOVSLDUPZ256rrk = 13970,
-  VMOVSLDUPZ256rrkz = 13971,
-  VMOVSLDUPZrm = 13972,
-  VMOVSLDUPZrmk = 13973,
-  VMOVSLDUPZrmkz = 13974,
-  VMOVSLDUPZrr = 13975,
-  VMOVSLDUPZrrk = 13976,
-  VMOVSLDUPZrrkz = 13977,
-  VMOVSLDUPrm = 13978,
-  VMOVSLDUPrr = 13979,
-  VMOVSS2DIZrr = 13980,
-  VMOVSS2DIrr = 13981,
-  VMOVSSZmr = 13982,
-  VMOVSSZmrk = 13983,
-  VMOVSSZrm = 13984,
-  VMOVSSZrm_alt = 13985,
-  VMOVSSZrmk = 13986,
-  VMOVSSZrmkz = 13987,
-  VMOVSSZrr = 13988,
-  VMOVSSZrr_REV = 13989,
-  VMOVSSZrrk = 13990,
-  VMOVSSZrrk_REV = 13991,
-  VMOVSSZrrkz = 13992,
-  VMOVSSZrrkz_REV = 13993,
-  VMOVSSmr = 13994,
-  VMOVSSrm = 13995,
-  VMOVSSrm_alt = 13996,
-  VMOVSSrr = 13997,
-  VMOVSSrr_REV = 13998,
-  VMOVUPDYmr = 13999,
-  VMOVUPDYrm = 14000,
-  VMOVUPDYrr = 14001,
-  VMOVUPDYrr_REV = 14002,
-  VMOVUPDZ128mr = 14003,
-  VMOVUPDZ128mrk = 14004,
-  VMOVUPDZ128rm = 14005,
-  VMOVUPDZ128rmk = 14006,
-  VMOVUPDZ128rmkz = 14007,
-  VMOVUPDZ128rr = 14008,
-  VMOVUPDZ128rr_REV = 14009,
-  VMOVUPDZ128rrk = 14010,
-  VMOVUPDZ128rrk_REV = 14011,
-  VMOVUPDZ128rrkz = 14012,
-  VMOVUPDZ128rrkz_REV = 14013,
-  VMOVUPDZ256mr = 14014,
-  VMOVUPDZ256mrk = 14015,
-  VMOVUPDZ256rm = 14016,
-  VMOVUPDZ256rmk = 14017,
-  VMOVUPDZ256rmkz = 14018,
-  VMOVUPDZ256rr = 14019,
-  VMOVUPDZ256rr_REV = 14020,
-  VMOVUPDZ256rrk = 14021,
-  VMOVUPDZ256rrk_REV = 14022,
-  VMOVUPDZ256rrkz = 14023,
-  VMOVUPDZ256rrkz_REV = 14024,
-  VMOVUPDZmr = 14025,
-  VMOVUPDZmrk = 14026,
-  VMOVUPDZrm = 14027,
-  VMOVUPDZrmk = 14028,
-  VMOVUPDZrmkz = 14029,
-  VMOVUPDZrr = 14030,
-  VMOVUPDZrr_REV = 14031,
-  VMOVUPDZrrk = 14032,
-  VMOVUPDZrrk_REV = 14033,
-  VMOVUPDZrrkz = 14034,
-  VMOVUPDZrrkz_REV = 14035,
-  VMOVUPDmr = 14036,
-  VMOVUPDrm = 14037,
-  VMOVUPDrr = 14038,
-  VMOVUPDrr_REV = 14039,
-  VMOVUPSYmr = 14040,
-  VMOVUPSYrm = 14041,
-  VMOVUPSYrr = 14042,
-  VMOVUPSYrr_REV = 14043,
-  VMOVUPSZ128mr = 14044,
-  VMOVUPSZ128mrk = 14045,
-  VMOVUPSZ128rm = 14046,
-  VMOVUPSZ128rmk = 14047,
-  VMOVUPSZ128rmkz = 14048,
-  VMOVUPSZ128rr = 14049,
-  VMOVUPSZ128rr_REV = 14050,
-  VMOVUPSZ128rrk = 14051,
-  VMOVUPSZ128rrk_REV = 14052,
-  VMOVUPSZ128rrkz = 14053,
-  VMOVUPSZ128rrkz_REV = 14054,
-  VMOVUPSZ256mr = 14055,
-  VMOVUPSZ256mrk = 14056,
-  VMOVUPSZ256rm = 14057,
-  VMOVUPSZ256rmk = 14058,
-  VMOVUPSZ256rmkz = 14059,
-  VMOVUPSZ256rr = 14060,
-  VMOVUPSZ256rr_REV = 14061,
-  VMOVUPSZ256rrk = 14062,
-  VMOVUPSZ256rrk_REV = 14063,
-  VMOVUPSZ256rrkz = 14064,
-  VMOVUPSZ256rrkz_REV = 14065,
-  VMOVUPSZmr = 14066,
-  VMOVUPSZmrk = 14067,
-  VMOVUPSZrm = 14068,
-  VMOVUPSZrmk = 14069,
-  VMOVUPSZrmkz = 14070,
-  VMOVUPSZrr = 14071,
-  VMOVUPSZrr_REV = 14072,
-  VMOVUPSZrrk = 14073,
-  VMOVUPSZrrk_REV = 14074,
-  VMOVUPSZrrkz = 14075,
-  VMOVUPSZrrkz_REV = 14076,
-  VMOVUPSmr = 14077,
-  VMOVUPSrm = 14078,
-  VMOVUPSrr = 14079,
-  VMOVUPSrr_REV = 14080,
-  VMOVW2SHrr = 14081,
-  VMOVW64toSHrr = 14082,
-  VMOVWmr = 14083,
-  VMOVWrm = 14084,
-  VMOVZPDILo2PDIZmr = 14085,
-  VMOVZPDILo2PDIZrm = 14086,
-  VMOVZPDILo2PDIZrr = 14087,
-  VMOVZPDILo2PDIZrr2 = 14088,
-  VMOVZPQILo2PQIZrr = 14089,
-  VMOVZPQILo2PQIrr = 14090,
-  VMOVZPWILo2PWIZmr = 14091,
-  VMOVZPWILo2PWIZrm = 14092,
-  VMOVZPWILo2PWIZrr = 14093,
-  VMOVZPWILo2PWIZrr2 = 14094,
-  VMPSADBWYrmi = 14095,
-  VMPSADBWYrri = 14096,
-  VMPSADBWZ128rmi = 14097,
-  VMPSADBWZ128rmik = 14098,
-  VMPSADBWZ128rmikz = 14099,
-  VMPSADBWZ128rri = 14100,
-  VMPSADBWZ128rrik = 14101,
-  VMPSADBWZ128rrikz = 14102,
-  VMPSADBWZ256rmi = 14103,
-  VMPSADBWZ256rmik = 14104,
-  VMPSADBWZ256rmikz = 14105,
-  VMPSADBWZ256rri = 14106,
-  VMPSADBWZ256rrik = 14107,
-  VMPSADBWZ256rrikz = 14108,
-  VMPSADBWZrmi = 14109,
-  VMPSADBWZrmik = 14110,
-  VMPSADBWZrmikz = 14111,
-  VMPSADBWZrri = 14112,
-  VMPSADBWZrrik = 14113,
-  VMPSADBWZrrikz = 14114,
-  VMPSADBWrmi = 14115,
-  VMPSADBWrri = 14116,
-  VMPTRLDm = 14117,
-  VMPTRSTm = 14118,
-  VMREAD32mr = 14119,
-  VMREAD32rr = 14120,
-  VMREAD64mr = 14121,
-  VMREAD64rr = 14122,
-  VMRESUME = 14123,
-  VMRUN32 = 14124,
-  VMRUN64 = 14125,
-  VMSAVE32 = 14126,
-  VMSAVE64 = 14127,
-  VMULBF16Z128rm = 14128,
-  VMULBF16Z128rmb = 14129,
-  VMULBF16Z128rmbk = 14130,
-  VMULBF16Z128rmbkz = 14131,
-  VMULBF16Z128rmk = 14132,
-  VMULBF16Z128rmkz = 14133,
-  VMULBF16Z128rr = 14134,
-  VMULBF16Z128rrk = 14135,
-  VMULBF16Z128rrkz = 14136,
-  VMULBF16Z256rm = 14137,
-  VMULBF16Z256rmb = 14138,
-  VMULBF16Z256rmbk = 14139,
-  VMULBF16Z256rmbkz = 14140,
-  VMULBF16Z256rmk = 14141,
-  VMULBF16Z256rmkz = 14142,
-  VMULBF16Z256rr = 14143,
-  VMULBF16Z256rrk = 14144,
-  VMULBF16Z256rrkz = 14145,
-  VMULBF16Zrm = 14146,
-  VMULBF16Zrmb = 14147,
-  VMULBF16Zrmbk = 14148,
-  VMULBF16Zrmbkz = 14149,
-  VMULBF16Zrmk = 14150,
-  VMULBF16Zrmkz = 14151,
-  VMULBF16Zrr = 14152,
-  VMULBF16Zrrk = 14153,
-  VMULBF16Zrrkz = 14154,
-  VMULPDYrm = 14155,
-  VMULPDYrr = 14156,
-  VMULPDZ128rm = 14157,
-  VMULPDZ128rmb = 14158,
-  VMULPDZ128rmbk = 14159,
-  VMULPDZ128rmbkz = 14160,
-  VMULPDZ128rmk = 14161,
-  VMULPDZ128rmkz = 14162,
-  VMULPDZ128rr = 14163,
-  VMULPDZ128rrk = 14164,
-  VMULPDZ128rrkz = 14165,
-  VMULPDZ256rm = 14166,
-  VMULPDZ256rmb = 14167,
-  VMULPDZ256rmbk = 14168,
-  VMULPDZ256rmbkz = 14169,
-  VMULPDZ256rmk = 14170,
-  VMULPDZ256rmkz = 14171,
-  VMULPDZ256rr = 14172,
-  VMULPDZ256rrk = 14173,
-  VMULPDZ256rrkz = 14174,
-  VMULPDZrm = 14175,
-  VMULPDZrmb = 14176,
-  VMULPDZrmbk = 14177,
-  VMULPDZrmbkz = 14178,
-  VMULPDZrmk = 14179,
-  VMULPDZrmkz = 14180,
-  VMULPDZrr = 14181,
-  VMULPDZrrb = 14182,
-  VMULPDZrrbk = 14183,
-  VMULPDZrrbkz = 14184,
-  VMULPDZrrk = 14185,
-  VMULPDZrrkz = 14186,
-  VMULPDrm = 14187,
-  VMULPDrr = 14188,
-  VMULPHZ128rm = 14189,
-  VMULPHZ128rmb = 14190,
-  VMULPHZ128rmbk = 14191,
-  VMULPHZ128rmbkz = 14192,
-  VMULPHZ128rmk = 14193,
-  VMULPHZ128rmkz = 14194,
-  VMULPHZ128rr = 14195,
-  VMULPHZ128rrk = 14196,
-  VMULPHZ128rrkz = 14197,
-  VMULPHZ256rm = 14198,
-  VMULPHZ256rmb = 14199,
-  VMULPHZ256rmbk = 14200,
-  VMULPHZ256rmbkz = 14201,
-  VMULPHZ256rmk = 14202,
-  VMULPHZ256rmkz = 14203,
-  VMULPHZ256rr = 14204,
-  VMULPHZ256rrk = 14205,
-  VMULPHZ256rrkz = 14206,
-  VMULPHZrm = 14207,
-  VMULPHZrmb = 14208,
-  VMULPHZrmbk = 14209,
-  VMULPHZrmbkz = 14210,
-  VMULPHZrmk = 14211,
-  VMULPHZrmkz = 14212,
-  VMULPHZrr = 14213,
-  VMULPHZrrb = 14214,
-  VMULPHZrrbk = 14215,
-  VMULPHZrrbkz = 14216,
-  VMULPHZrrk = 14217,
-  VMULPHZrrkz = 14218,
-  VMULPSYrm = 14219,
-  VMULPSYrr = 14220,
-  VMULPSZ128rm = 14221,
-  VMULPSZ128rmb = 14222,
-  VMULPSZ128rmbk = 14223,
-  VMULPSZ128rmbkz = 14224,
-  VMULPSZ128rmk = 14225,
-  VMULPSZ128rmkz = 14226,
-  VMULPSZ128rr = 14227,
-  VMULPSZ128rrk = 14228,
-  VMULPSZ128rrkz = 14229,
-  VMULPSZ256rm = 14230,
-  VMULPSZ256rmb = 14231,
-  VMULPSZ256rmbk = 14232,
-  VMULPSZ256rmbkz = 14233,
-  VMULPSZ256rmk = 14234,
-  VMULPSZ256rmkz = 14235,
-  VMULPSZ256rr = 14236,
-  VMULPSZ256rrk = 14237,
-  VMULPSZ256rrkz = 14238,
-  VMULPSZrm = 14239,
-  VMULPSZrmb = 14240,
-  VMULPSZrmbk = 14241,
-  VMULPSZrmbkz = 14242,
-  VMULPSZrmk = 14243,
-  VMULPSZrmkz = 14244,
-  VMULPSZrr = 14245,
-  VMULPSZrrb = 14246,
-  VMULPSZrrbk = 14247,
-  VMULPSZrrbkz = 14248,
-  VMULPSZrrk = 14249,
-  VMULPSZrrkz = 14250,
-  VMULPSrm = 14251,
-  VMULPSrr = 14252,
-  VMULSDZrm = 14253,
-  VMULSDZrm_Int = 14254,
-  VMULSDZrmk_Int = 14255,
-  VMULSDZrmkz_Int = 14256,
-  VMULSDZrr = 14257,
-  VMULSDZrr_Int = 14258,
-  VMULSDZrrb_Int = 14259,
-  VMULSDZrrbk_Int = 14260,
-  VMULSDZrrbkz_Int = 14261,
-  VMULSDZrrk_Int = 14262,
-  VMULSDZrrkz_Int = 14263,
-  VMULSDrm = 14264,
-  VMULSDrm_Int = 14265,
-  VMULSDrr = 14266,
-  VMULSDrr_Int = 14267,
-  VMULSHZrm = 14268,
-  VMULSHZrm_Int = 14269,
-  VMULSHZrmk_Int = 14270,
-  VMULSHZrmkz_Int = 14271,
-  VMULSHZrr = 14272,
-  VMULSHZrr_Int = 14273,
-  VMULSHZrrb_Int = 14274,
-  VMULSHZrrbk_Int = 14275,
-  VMULSHZrrbkz_Int = 14276,
-  VMULSHZrrk_Int = 14277,
-  VMULSHZrrkz_Int = 14278,
-  VMULSSZrm = 14279,
-  VMULSSZrm_Int = 14280,
-  VMULSSZrmk_Int = 14281,
-  VMULSSZrmkz_Int = 14282,
-  VMULSSZrr = 14283,
-  VMULSSZrr_Int = 14284,
-  VMULSSZrrb_Int = 14285,
-  VMULSSZrrbk_Int = 14286,
-  VMULSSZrrbkz_Int = 14287,
-  VMULSSZrrk_Int = 14288,
-  VMULSSZrrkz_Int = 14289,
-  VMULSSrm = 14290,
-  VMULSSrm_Int = 14291,
-  VMULSSrr = 14292,
-  VMULSSrr_Int = 14293,
-  VMWRITE32rm = 14294,
-  VMWRITE32rr = 14295,
-  VMWRITE64rm = 14296,
-  VMWRITE64rr = 14297,
-  VMXOFF = 14298,
-  VMXON = 14299,
-  VORPDYrm = 14300,
-  VORPDYrr = 14301,
-  VORPDZ128rm = 14302,
-  VORPDZ128rmb = 14303,
-  VORPDZ128rmbk = 14304,
-  VORPDZ128rmbkz = 14305,
-  VORPDZ128rmk = 14306,
-  VORPDZ128rmkz = 14307,
-  VORPDZ128rr = 14308,
-  VORPDZ128rrk = 14309,
-  VORPDZ128rrkz = 14310,
-  VORPDZ256rm = 14311,
-  VORPDZ256rmb = 14312,
-  VORPDZ256rmbk = 14313,
-  VORPDZ256rmbkz = 14314,
-  VORPDZ256rmk = 14315,
-  VORPDZ256rmkz = 14316,
-  VORPDZ256rr = 14317,
-  VORPDZ256rrk = 14318,
-  VORPDZ256rrkz = 14319,
-  VORPDZrm = 14320,
-  VORPDZrmb = 14321,
-  VORPDZrmbk = 14322,
-  VORPDZrmbkz = 14323,
-  VORPDZrmk = 14324,
-  VORPDZrmkz = 14325,
-  VORPDZrr = 14326,
-  VORPDZrrk = 14327,
-  VORPDZrrkz = 14328,
-  VORPDrm = 14329,
-  VORPDrr = 14330,
-  VORPSYrm = 14331,
-  VORPSYrr = 14332,
-  VORPSZ128rm = 14333,
-  VORPSZ128rmb = 14334,
-  VORPSZ128rmbk = 14335,
-  VORPSZ128rmbkz = 14336,
-  VORPSZ128rmk = 14337,
-  VORPSZ128rmkz = 14338,
-  VORPSZ128rr = 14339,
-  VORPSZ128rrk = 14340,
-  VORPSZ128rrkz = 14341,
-  VORPSZ256rm = 14342,
-  VORPSZ256rmb = 14343,
-  VORPSZ256rmbk = 14344,
-  VORPSZ256rmbkz = 14345,
-  VORPSZ256rmk = 14346,
-  VORPSZ256rmkz = 14347,
-  VORPSZ256rr = 14348,
-  VORPSZ256rrk = 14349,
-  VORPSZ256rrkz = 14350,
-  VORPSZrm = 14351,
-  VORPSZrmb = 14352,
-  VORPSZrmbk = 14353,
-  VORPSZrmbkz = 14354,
-  VORPSZrmk = 14355,
-  VORPSZrmkz = 14356,
-  VORPSZrr = 14357,
-  VORPSZrrk = 14358,
-  VORPSZrrkz = 14359,
-  VORPSrm = 14360,
-  VORPSrr = 14361,
-  VP2INTERSECTDZ128rm = 14362,
-  VP2INTERSECTDZ128rmb = 14363,
-  VP2INTERSECTDZ128rr = 14364,
-  VP2INTERSECTDZ256rm = 14365,
-  VP2INTERSECTDZ256rmb = 14366,
-  VP2INTERSECTDZ256rr = 14367,
-  VP2INTERSECTDZrm = 14368,
-  VP2INTERSECTDZrmb = 14369,
-  VP2INTERSECTDZrr = 14370,
-  VP2INTERSECTQZ128rm = 14371,
-  VP2INTERSECTQZ128rmb = 14372,
-  VP2INTERSECTQZ128rr = 14373,
-  VP2INTERSECTQZ256rm = 14374,
-  VP2INTERSECTQZ256rmb = 14375,
-  VP2INTERSECTQZ256rr = 14376,
-  VP2INTERSECTQZrm = 14377,
-  VP2INTERSECTQZrmb = 14378,
-  VP2INTERSECTQZrr = 14379,
-  VP4DPWSSDSrm = 14380,
-  VP4DPWSSDSrmk = 14381,
-  VP4DPWSSDSrmkz = 14382,
-  VP4DPWSSDrm = 14383,
-  VP4DPWSSDrmk = 14384,
-  VP4DPWSSDrmkz = 14385,
-  VPABSBYrm = 14386,
-  VPABSBYrr = 14387,
-  VPABSBZ128rm = 14388,
-  VPABSBZ128rmk = 14389,
-  VPABSBZ128rmkz = 14390,
-  VPABSBZ128rr = 14391,
-  VPABSBZ128rrk = 14392,
-  VPABSBZ128rrkz = 14393,
-  VPABSBZ256rm = 14394,
-  VPABSBZ256rmk = 14395,
-  VPABSBZ256rmkz = 14396,
-  VPABSBZ256rr = 14397,
-  VPABSBZ256rrk = 14398,
-  VPABSBZ256rrkz = 14399,
-  VPABSBZrm = 14400,
-  VPABSBZrmk = 14401,
-  VPABSBZrmkz = 14402,
-  VPABSBZrr = 14403,
-  VPABSBZrrk = 14404,
-  VPABSBZrrkz = 14405,
-  VPABSBrm = 14406,
-  VPABSBrr = 14407,
-  VPABSDYrm = 14408,
-  VPABSDYrr = 14409,
-  VPABSDZ128rm = 14410,
-  VPABSDZ128rmb = 14411,
-  VPABSDZ128rmbk = 14412,
-  VPABSDZ128rmbkz = 14413,
-  VPABSDZ128rmk = 14414,
-  VPABSDZ128rmkz = 14415,
-  VPABSDZ128rr = 14416,
-  VPABSDZ128rrk = 14417,
-  VPABSDZ128rrkz = 14418,
-  VPABSDZ256rm = 14419,
-  VPABSDZ256rmb = 14420,
-  VPABSDZ256rmbk = 14421,
-  VPABSDZ256rmbkz = 14422,
-  VPABSDZ256rmk = 14423,
-  VPABSDZ256rmkz = 14424,
-  VPABSDZ256rr = 14425,
-  VPABSDZ256rrk = 14426,
-  VPABSDZ256rrkz = 14427,
-  VPABSDZrm = 14428,
-  VPABSDZrmb = 14429,
-  VPABSDZrmbk = 14430,
-  VPABSDZrmbkz = 14431,
-  VPABSDZrmk = 14432,
-  VPABSDZrmkz = 14433,
-  VPABSDZrr = 14434,
-  VPABSDZrrk = 14435,
-  VPABSDZrrkz = 14436,
-  VPABSDrm = 14437,
-  VPABSDrr = 14438,
-  VPABSQZ128rm = 14439,
-  VPABSQZ128rmb = 14440,
-  VPABSQZ128rmbk = 14441,
-  VPABSQZ128rmbkz = 14442,
-  VPABSQZ128rmk = 14443,
-  VPABSQZ128rmkz = 14444,
-  VPABSQZ128rr = 14445,
-  VPABSQZ128rrk = 14446,
-  VPABSQZ128rrkz = 14447,
-  VPABSQZ256rm = 14448,
-  VPABSQZ256rmb = 14449,
-  VPABSQZ256rmbk = 14450,
-  VPABSQZ256rmbkz = 14451,
-  VPABSQZ256rmk = 14452,
-  VPABSQZ256rmkz = 14453,
-  VPABSQZ256rr = 14454,
-  VPABSQZ256rrk = 14455,
-  VPABSQZ256rrkz = 14456,
-  VPABSQZrm = 14457,
-  VPABSQZrmb = 14458,
-  VPABSQZrmbk = 14459,
-  VPABSQZrmbkz = 14460,
-  VPABSQZrmk = 14461,
-  VPABSQZrmkz = 14462,
-  VPABSQZrr = 14463,
-  VPABSQZrrk = 14464,
-  VPABSQZrrkz = 14465,
-  VPABSWYrm = 14466,
-  VPABSWYrr = 14467,
-  VPABSWZ128rm = 14468,
-  VPABSWZ128rmk = 14469,
-  VPABSWZ128rmkz = 14470,
-  VPABSWZ128rr = 14471,
-  VPABSWZ128rrk = 14472,
-  VPABSWZ128rrkz = 14473,
-  VPABSWZ256rm = 14474,
-  VPABSWZ256rmk = 14475,
-  VPABSWZ256rmkz = 14476,
-  VPABSWZ256rr = 14477,
-  VPABSWZ256rrk = 14478,
-  VPABSWZ256rrkz = 14479,
-  VPABSWZrm = 14480,
-  VPABSWZrmk = 14481,
-  VPABSWZrmkz = 14482,
-  VPABSWZrr = 14483,
-  VPABSWZrrk = 14484,
-  VPABSWZrrkz = 14485,
-  VPABSWrm = 14486,
-  VPABSWrr = 14487,
-  VPACKSSDWYrm = 14488,
-  VPACKSSDWYrr = 14489,
-  VPACKSSDWZ128rm = 14490,
-  VPACKSSDWZ128rmb = 14491,
-  VPACKSSDWZ128rmbk = 14492,
-  VPACKSSDWZ128rmbkz = 14493,
-  VPACKSSDWZ128rmk = 14494,
-  VPACKSSDWZ128rmkz = 14495,
-  VPACKSSDWZ128rr = 14496,
-  VPACKSSDWZ128rrk = 14497,
-  VPACKSSDWZ128rrkz = 14498,
-  VPACKSSDWZ256rm = 14499,
-  VPACKSSDWZ256rmb = 14500,
-  VPACKSSDWZ256rmbk = 14501,
-  VPACKSSDWZ256rmbkz = 14502,
-  VPACKSSDWZ256rmk = 14503,
-  VPACKSSDWZ256rmkz = 14504,
-  VPACKSSDWZ256rr = 14505,
-  VPACKSSDWZ256rrk = 14506,
-  VPACKSSDWZ256rrkz = 14507,
-  VPACKSSDWZrm = 14508,
-  VPACKSSDWZrmb = 14509,
-  VPACKSSDWZrmbk = 14510,
-  VPACKSSDWZrmbkz = 14511,
-  VPACKSSDWZrmk = 14512,
-  VPACKSSDWZrmkz = 14513,
-  VPACKSSDWZrr = 14514,
-  VPACKSSDWZrrk = 14515,
-  VPACKSSDWZrrkz = 14516,
-  VPACKSSDWrm = 14517,
-  VPACKSSDWrr = 14518,
-  VPACKSSWBYrm = 14519,
-  VPACKSSWBYrr = 14520,
-  VPACKSSWBZ128rm = 14521,
-  VPACKSSWBZ128rmk = 14522,
-  VPACKSSWBZ128rmkz = 14523,
-  VPACKSSWBZ128rr = 14524,
-  VPACKSSWBZ128rrk = 14525,
-  VPACKSSWBZ128rrkz = 14526,
-  VPACKSSWBZ256rm = 14527,
-  VPACKSSWBZ256rmk = 14528,
-  VPACKSSWBZ256rmkz = 14529,
-  VPACKSSWBZ256rr = 14530,
-  VPACKSSWBZ256rrk = 14531,
-  VPACKSSWBZ256rrkz = 14532,
-  VPACKSSWBZrm = 14533,
-  VPACKSSWBZrmk = 14534,
-  VPACKSSWBZrmkz = 14535,
-  VPACKSSWBZrr = 14536,
-  VPACKSSWBZrrk = 14537,
-  VPACKSSWBZrrkz = 14538,
-  VPACKSSWBrm = 14539,
-  VPACKSSWBrr = 14540,
-  VPACKUSDWYrm = 14541,
-  VPACKUSDWYrr = 14542,
-  VPACKUSDWZ128rm = 14543,
-  VPACKUSDWZ128rmb = 14544,
-  VPACKUSDWZ128rmbk = 14545,
-  VPACKUSDWZ128rmbkz = 14546,
-  VPACKUSDWZ128rmk = 14547,
-  VPACKUSDWZ128rmkz = 14548,
-  VPACKUSDWZ128rr = 14549,
-  VPACKUSDWZ128rrk = 14550,
-  VPACKUSDWZ128rrkz = 14551,
-  VPACKUSDWZ256rm = 14552,
-  VPACKUSDWZ256rmb = 14553,
-  VPACKUSDWZ256rmbk = 14554,
-  VPACKUSDWZ256rmbkz = 14555,
-  VPACKUSDWZ256rmk = 14556,
-  VPACKUSDWZ256rmkz = 14557,
-  VPACKUSDWZ256rr = 14558,
-  VPACKUSDWZ256rrk = 14559,
-  VPACKUSDWZ256rrkz = 14560,
-  VPACKUSDWZrm = 14561,
-  VPACKUSDWZrmb = 14562,
-  VPACKUSDWZrmbk = 14563,
-  VPACKUSDWZrmbkz = 14564,
-  VPACKUSDWZrmk = 14565,
-  VPACKUSDWZrmkz = 14566,
-  VPACKUSDWZrr = 14567,
-  VPACKUSDWZrrk = 14568,
-  VPACKUSDWZrrkz = 14569,
-  VPACKUSDWrm = 14570,
-  VPACKUSDWrr = 14571,
-  VPACKUSWBYrm = 14572,
-  VPACKUSWBYrr = 14573,
-  VPACKUSWBZ128rm = 14574,
-  VPACKUSWBZ128rmk = 14575,
-  VPACKUSWBZ128rmkz = 14576,
-  VPACKUSWBZ128rr = 14577,
-  VPACKUSWBZ128rrk = 14578,
-  VPACKUSWBZ128rrkz = 14579,
-  VPACKUSWBZ256rm = 14580,
-  VPACKUSWBZ256rmk = 14581,
-  VPACKUSWBZ256rmkz = 14582,
-  VPACKUSWBZ256rr = 14583,
-  VPACKUSWBZ256rrk = 14584,
-  VPACKUSWBZ256rrkz = 14585,
-  VPACKUSWBZrm = 14586,
-  VPACKUSWBZrmk = 14587,
-  VPACKUSWBZrmkz = 14588,
-  VPACKUSWBZrr = 14589,
-  VPACKUSWBZrrk = 14590,
-  VPACKUSWBZrrkz = 14591,
-  VPACKUSWBrm = 14592,
-  VPACKUSWBrr = 14593,
-  VPADDBYrm = 14594,
-  VPADDBYrr = 14595,
-  VPADDBZ128rm = 14596,
-  VPADDBZ128rmk = 14597,
-  VPADDBZ128rmkz = 14598,
-  VPADDBZ128rr = 14599,
-  VPADDBZ128rrk = 14600,
-  VPADDBZ128rrkz = 14601,
-  VPADDBZ256rm = 14602,
-  VPADDBZ256rmk = 14603,
-  VPADDBZ256rmkz = 14604,
-  VPADDBZ256rr = 14605,
-  VPADDBZ256rrk = 14606,
-  VPADDBZ256rrkz = 14607,
-  VPADDBZrm = 14608,
-  VPADDBZrmk = 14609,
-  VPADDBZrmkz = 14610,
-  VPADDBZrr = 14611,
-  VPADDBZrrk = 14612,
-  VPADDBZrrkz = 14613,
-  VPADDBrm = 14614,
-  VPADDBrr = 14615,
-  VPADDDYrm = 14616,
-  VPADDDYrr = 14617,
-  VPADDDZ128rm = 14618,
-  VPADDDZ128rmb = 14619,
-  VPADDDZ128rmbk = 14620,
-  VPADDDZ128rmbkz = 14621,
-  VPADDDZ128rmk = 14622,
-  VPADDDZ128rmkz = 14623,
-  VPADDDZ128rr = 14624,
-  VPADDDZ128rrk = 14625,
-  VPADDDZ128rrkz = 14626,
-  VPADDDZ256rm = 14627,
-  VPADDDZ256rmb = 14628,
-  VPADDDZ256rmbk = 14629,
-  VPADDDZ256rmbkz = 14630,
-  VPADDDZ256rmk = 14631,
-  VPADDDZ256rmkz = 14632,
-  VPADDDZ256rr = 14633,
-  VPADDDZ256rrk = 14634,
-  VPADDDZ256rrkz = 14635,
-  VPADDDZrm = 14636,
-  VPADDDZrmb = 14637,
-  VPADDDZrmbk = 14638,
-  VPADDDZrmbkz = 14639,
-  VPADDDZrmk = 14640,
-  VPADDDZrmkz = 14641,
-  VPADDDZrr = 14642,
-  VPADDDZrrk = 14643,
-  VPADDDZrrkz = 14644,
-  VPADDDrm = 14645,
-  VPADDDrr = 14646,
-  VPADDQYrm = 14647,
-  VPADDQYrr = 14648,
-  VPADDQZ128rm = 14649,
-  VPADDQZ128rmb = 14650,
-  VPADDQZ128rmbk = 14651,
-  VPADDQZ128rmbkz = 14652,
-  VPADDQZ128rmk = 14653,
-  VPADDQZ128rmkz = 14654,
-  VPADDQZ128rr = 14655,
-  VPADDQZ128rrk = 14656,
-  VPADDQZ128rrkz = 14657,
-  VPADDQZ256rm = 14658,
-  VPADDQZ256rmb = 14659,
-  VPADDQZ256rmbk = 14660,
-  VPADDQZ256rmbkz = 14661,
-  VPADDQZ256rmk = 14662,
-  VPADDQZ256rmkz = 14663,
-  VPADDQZ256rr = 14664,
-  VPADDQZ256rrk = 14665,
-  VPADDQZ256rrkz = 14666,
-  VPADDQZrm = 14667,
-  VPADDQZrmb = 14668,
-  VPADDQZrmbk = 14669,
-  VPADDQZrmbkz = 14670,
-  VPADDQZrmk = 14671,
-  VPADDQZrmkz = 14672,
-  VPADDQZrr = 14673,
-  VPADDQZrrk = 14674,
-  VPADDQZrrkz = 14675,
-  VPADDQrm = 14676,
-  VPADDQrr = 14677,
-  VPADDSBYrm = 14678,
-  VPADDSBYrr = 14679,
-  VPADDSBZ128rm = 14680,
-  VPADDSBZ128rmk = 14681,
-  VPADDSBZ128rmkz = 14682,
-  VPADDSBZ128rr = 14683,
-  VPADDSBZ128rrk = 14684,
-  VPADDSBZ128rrkz = 14685,
-  VPADDSBZ256rm = 14686,
-  VPADDSBZ256rmk = 14687,
-  VPADDSBZ256rmkz = 14688,
-  VPADDSBZ256rr = 14689,
-  VPADDSBZ256rrk = 14690,
-  VPADDSBZ256rrkz = 14691,
-  VPADDSBZrm = 14692,
-  VPADDSBZrmk = 14693,
-  VPADDSBZrmkz = 14694,
-  VPADDSBZrr = 14695,
-  VPADDSBZrrk = 14696,
-  VPADDSBZrrkz = 14697,
-  VPADDSBrm = 14698,
-  VPADDSBrr = 14699,
-  VPADDSWYrm = 14700,
-  VPADDSWYrr = 14701,
-  VPADDSWZ128rm = 14702,
-  VPADDSWZ128rmk = 14703,
-  VPADDSWZ128rmkz = 14704,
-  VPADDSWZ128rr = 14705,
-  VPADDSWZ128rrk = 14706,
-  VPADDSWZ128rrkz = 14707,
-  VPADDSWZ256rm = 14708,
-  VPADDSWZ256rmk = 14709,
-  VPADDSWZ256rmkz = 14710,
-  VPADDSWZ256rr = 14711,
-  VPADDSWZ256rrk = 14712,
-  VPADDSWZ256rrkz = 14713,
-  VPADDSWZrm = 14714,
-  VPADDSWZrmk = 14715,
-  VPADDSWZrmkz = 14716,
-  VPADDSWZrr = 14717,
-  VPADDSWZrrk = 14718,
-  VPADDSWZrrkz = 14719,
-  VPADDSWrm = 14720,
-  VPADDSWrr = 14721,
-  VPADDUSBYrm = 14722,
-  VPADDUSBYrr = 14723,
-  VPADDUSBZ128rm = 14724,
-  VPADDUSBZ128rmk = 14725,
-  VPADDUSBZ128rmkz = 14726,
-  VPADDUSBZ128rr = 14727,
-  VPADDUSBZ128rrk = 14728,
-  VPADDUSBZ128rrkz = 14729,
-  VPADDUSBZ256rm = 14730,
-  VPADDUSBZ256rmk = 14731,
-  VPADDUSBZ256rmkz = 14732,
-  VPADDUSBZ256rr = 14733,
-  VPADDUSBZ256rrk = 14734,
-  VPADDUSBZ256rrkz = 14735,
-  VPADDUSBZrm = 14736,
-  VPADDUSBZrmk = 14737,
-  VPADDUSBZrmkz = 14738,
-  VPADDUSBZrr = 14739,
-  VPADDUSBZrrk = 14740,
-  VPADDUSBZrrkz = 14741,
-  VPADDUSBrm = 14742,
-  VPADDUSBrr = 14743,
-  VPADDUSWYrm = 14744,
-  VPADDUSWYrr = 14745,
-  VPADDUSWZ128rm = 14746,
-  VPADDUSWZ128rmk = 14747,
-  VPADDUSWZ128rmkz = 14748,
-  VPADDUSWZ128rr = 14749,
-  VPADDUSWZ128rrk = 14750,
-  VPADDUSWZ128rrkz = 14751,
-  VPADDUSWZ256rm = 14752,
-  VPADDUSWZ256rmk = 14753,
-  VPADDUSWZ256rmkz = 14754,
-  VPADDUSWZ256rr = 14755,
-  VPADDUSWZ256rrk = 14756,
-  VPADDUSWZ256rrkz = 14757,
-  VPADDUSWZrm = 14758,
-  VPADDUSWZrmk = 14759,
-  VPADDUSWZrmkz = 14760,
-  VPADDUSWZrr = 14761,
-  VPADDUSWZrrk = 14762,
-  VPADDUSWZrrkz = 14763,
-  VPADDUSWrm = 14764,
-  VPADDUSWrr = 14765,
-  VPADDWYrm = 14766,
-  VPADDWYrr = 14767,
-  VPADDWZ128rm = 14768,
-  VPADDWZ128rmk = 14769,
-  VPADDWZ128rmkz = 14770,
-  VPADDWZ128rr = 14771,
-  VPADDWZ128rrk = 14772,
-  VPADDWZ128rrkz = 14773,
-  VPADDWZ256rm = 14774,
-  VPADDWZ256rmk = 14775,
-  VPADDWZ256rmkz = 14776,
-  VPADDWZ256rr = 14777,
-  VPADDWZ256rrk = 14778,
-  VPADDWZ256rrkz = 14779,
-  VPADDWZrm = 14780,
-  VPADDWZrmk = 14781,
-  VPADDWZrmkz = 14782,
-  VPADDWZrr = 14783,
-  VPADDWZrrk = 14784,
-  VPADDWZrrkz = 14785,
-  VPADDWrm = 14786,
-  VPADDWrr = 14787,
-  VPALIGNRYrmi = 14788,
-  VPALIGNRYrri = 14789,
-  VPALIGNRZ128rmi = 14790,
-  VPALIGNRZ128rmik = 14791,
-  VPALIGNRZ128rmikz = 14792,
-  VPALIGNRZ128rri = 14793,
-  VPALIGNRZ128rrik = 14794,
-  VPALIGNRZ128rrikz = 14795,
-  VPALIGNRZ256rmi = 14796,
-  VPALIGNRZ256rmik = 14797,
-  VPALIGNRZ256rmikz = 14798,
-  VPALIGNRZ256rri = 14799,
-  VPALIGNRZ256rrik = 14800,
-  VPALIGNRZ256rrikz = 14801,
-  VPALIGNRZrmi = 14802,
-  VPALIGNRZrmik = 14803,
-  VPALIGNRZrmikz = 14804,
-  VPALIGNRZrri = 14805,
-  VPALIGNRZrrik = 14806,
-  VPALIGNRZrrikz = 14807,
-  VPALIGNRrmi = 14808,
-  VPALIGNRrri = 14809,
-  VPANDDZ128rm = 14810,
-  VPANDDZ128rmb = 14811,
-  VPANDDZ128rmbk = 14812,
-  VPANDDZ128rmbkz = 14813,
-  VPANDDZ128rmk = 14814,
-  VPANDDZ128rmkz = 14815,
-  VPANDDZ128rr = 14816,
-  VPANDDZ128rrk = 14817,
-  VPANDDZ128rrkz = 14818,
-  VPANDDZ256rm = 14819,
-  VPANDDZ256rmb = 14820,
-  VPANDDZ256rmbk = 14821,
-  VPANDDZ256rmbkz = 14822,
-  VPANDDZ256rmk = 14823,
-  VPANDDZ256rmkz = 14824,
-  VPANDDZ256rr = 14825,
-  VPANDDZ256rrk = 14826,
-  VPANDDZ256rrkz = 14827,
-  VPANDDZrm = 14828,
-  VPANDDZrmb = 14829,
-  VPANDDZrmbk = 14830,
-  VPANDDZrmbkz = 14831,
-  VPANDDZrmk = 14832,
-  VPANDDZrmkz = 14833,
-  VPANDDZrr = 14834,
-  VPANDDZrrk = 14835,
-  VPANDDZrrkz = 14836,
-  VPANDNDZ128rm = 14837,
-  VPANDNDZ128rmb = 14838,
-  VPANDNDZ128rmbk = 14839,
-  VPANDNDZ128rmbkz = 14840,
-  VPANDNDZ128rmk = 14841,
-  VPANDNDZ128rmkz = 14842,
-  VPANDNDZ128rr = 14843,
-  VPANDNDZ128rrk = 14844,
-  VPANDNDZ128rrkz = 14845,
-  VPANDNDZ256rm = 14846,
-  VPANDNDZ256rmb = 14847,
-  VPANDNDZ256rmbk = 14848,
-  VPANDNDZ256rmbkz = 14849,
-  VPANDNDZ256rmk = 14850,
-  VPANDNDZ256rmkz = 14851,
-  VPANDNDZ256rr = 14852,
-  VPANDNDZ256rrk = 14853,
-  VPANDNDZ256rrkz = 14854,
-  VPANDNDZrm = 14855,
-  VPANDNDZrmb = 14856,
-  VPANDNDZrmbk = 14857,
-  VPANDNDZrmbkz = 14858,
-  VPANDNDZrmk = 14859,
-  VPANDNDZrmkz = 14860,
-  VPANDNDZrr = 14861,
-  VPANDNDZrrk = 14862,
-  VPANDNDZrrkz = 14863,
-  VPANDNQZ128rm = 14864,
-  VPANDNQZ128rmb = 14865,
-  VPANDNQZ128rmbk = 14866,
-  VPANDNQZ128rmbkz = 14867,
-  VPANDNQZ128rmk = 14868,
-  VPANDNQZ128rmkz = 14869,
-  VPANDNQZ128rr = 14870,
-  VPANDNQZ128rrk = 14871,
-  VPANDNQZ128rrkz = 14872,
-  VPANDNQZ256rm = 14873,
-  VPANDNQZ256rmb = 14874,
-  VPANDNQZ256rmbk = 14875,
-  VPANDNQZ256rmbkz = 14876,
-  VPANDNQZ256rmk = 14877,
-  VPANDNQZ256rmkz = 14878,
-  VPANDNQZ256rr = 14879,
-  VPANDNQZ256rrk = 14880,
-  VPANDNQZ256rrkz = 14881,
-  VPANDNQZrm = 14882,
-  VPANDNQZrmb = 14883,
-  VPANDNQZrmbk = 14884,
-  VPANDNQZrmbkz = 14885,
-  VPANDNQZrmk = 14886,
-  VPANDNQZrmkz = 14887,
-  VPANDNQZrr = 14888,
-  VPANDNQZrrk = 14889,
-  VPANDNQZrrkz = 14890,
-  VPANDNYrm = 14891,
-  VPANDNYrr = 14892,
-  VPANDNrm = 14893,
-  VPANDNrr = 14894,
-  VPANDQZ128rm = 14895,
-  VPANDQZ128rmb = 14896,
-  VPANDQZ128rmbk = 14897,
-  VPANDQZ128rmbkz = 14898,
-  VPANDQZ128rmk = 14899,
-  VPANDQZ128rmkz = 14900,
-  VPANDQZ128rr = 14901,
-  VPANDQZ128rrk = 14902,
-  VPANDQZ128rrkz = 14903,
-  VPANDQZ256rm = 14904,
-  VPANDQZ256rmb = 14905,
-  VPANDQZ256rmbk = 14906,
-  VPANDQZ256rmbkz = 14907,
-  VPANDQZ256rmk = 14908,
-  VPANDQZ256rmkz = 14909,
-  VPANDQZ256rr = 14910,
-  VPANDQZ256rrk = 14911,
-  VPANDQZ256rrkz = 14912,
-  VPANDQZrm = 14913,
-  VPANDQZrmb = 14914,
-  VPANDQZrmbk = 14915,
-  VPANDQZrmbkz = 14916,
-  VPANDQZrmk = 14917,
-  VPANDQZrmkz = 14918,
-  VPANDQZrr = 14919,
-  VPANDQZrrk = 14920,
-  VPANDQZrrkz = 14921,
-  VPANDYrm = 14922,
-  VPANDYrr = 14923,
-  VPANDrm = 14924,
-  VPANDrr = 14925,
-  VPAVGBYrm = 14926,
-  VPAVGBYrr = 14927,
-  VPAVGBZ128rm = 14928,
-  VPAVGBZ128rmk = 14929,
-  VPAVGBZ128rmkz = 14930,
-  VPAVGBZ128rr = 14931,
-  VPAVGBZ128rrk = 14932,
-  VPAVGBZ128rrkz = 14933,
-  VPAVGBZ256rm = 14934,
-  VPAVGBZ256rmk = 14935,
-  VPAVGBZ256rmkz = 14936,
-  VPAVGBZ256rr = 14937,
-  VPAVGBZ256rrk = 14938,
-  VPAVGBZ256rrkz = 14939,
-  VPAVGBZrm = 14940,
-  VPAVGBZrmk = 14941,
-  VPAVGBZrmkz = 14942,
-  VPAVGBZrr = 14943,
-  VPAVGBZrrk = 14944,
-  VPAVGBZrrkz = 14945,
-  VPAVGBrm = 14946,
-  VPAVGBrr = 14947,
-  VPAVGWYrm = 14948,
-  VPAVGWYrr = 14949,
-  VPAVGWZ128rm = 14950,
-  VPAVGWZ128rmk = 14951,
-  VPAVGWZ128rmkz = 14952,
-  VPAVGWZ128rr = 14953,
-  VPAVGWZ128rrk = 14954,
-  VPAVGWZ128rrkz = 14955,
-  VPAVGWZ256rm = 14956,
-  VPAVGWZ256rmk = 14957,
-  VPAVGWZ256rmkz = 14958,
-  VPAVGWZ256rr = 14959,
-  VPAVGWZ256rrk = 14960,
-  VPAVGWZ256rrkz = 14961,
-  VPAVGWZrm = 14962,
-  VPAVGWZrmk = 14963,
-  VPAVGWZrmkz = 14964,
-  VPAVGWZrr = 14965,
-  VPAVGWZrrk = 14966,
-  VPAVGWZrrkz = 14967,
-  VPAVGWrm = 14968,
-  VPAVGWrr = 14969,
-  VPBLENDDYrmi = 14970,
-  VPBLENDDYrri = 14971,
-  VPBLENDDrmi = 14972,
-  VPBLENDDrri = 14973,
-  VPBLENDMBZ128rm = 14974,
-  VPBLENDMBZ128rmk = 14975,
-  VPBLENDMBZ128rmkz = 14976,
-  VPBLENDMBZ128rr = 14977,
-  VPBLENDMBZ128rrk = 14978,
-  VPBLENDMBZ128rrkz = 14979,
-  VPBLENDMBZ256rm = 14980,
-  VPBLENDMBZ256rmk = 14981,
-  VPBLENDMBZ256rmkz = 14982,
-  VPBLENDMBZ256rr = 14983,
-  VPBLENDMBZ256rrk = 14984,
-  VPBLENDMBZ256rrkz = 14985,
-  VPBLENDMBZrm = 14986,
-  VPBLENDMBZrmk = 14987,
-  VPBLENDMBZrmkz = 14988,
-  VPBLENDMBZrr = 14989,
-  VPBLENDMBZrrk = 14990,
-  VPBLENDMBZrrkz = 14991,
-  VPBLENDMDZ128rm = 14992,
-  VPBLENDMDZ128rmb = 14993,
-  VPBLENDMDZ128rmbk = 14994,
-  VPBLENDMDZ128rmbkz = 14995,
-  VPBLENDMDZ128rmk = 14996,
-  VPBLENDMDZ128rmkz = 14997,
-  VPBLENDMDZ128rr = 14998,
-  VPBLENDMDZ128rrk = 14999,
-  VPBLENDMDZ128rrkz = 15000,
-  VPBLENDMDZ256rm = 15001,
-  VPBLENDMDZ256rmb = 15002,
-  VPBLENDMDZ256rmbk = 15003,
-  VPBLENDMDZ256rmbkz = 15004,
-  VPBLENDMDZ256rmk = 15005,
-  VPBLENDMDZ256rmkz = 15006,
-  VPBLENDMDZ256rr = 15007,
-  VPBLENDMDZ256rrk = 15008,
-  VPBLENDMDZ256rrkz = 15009,
-  VPBLENDMDZrm = 15010,
-  VPBLENDMDZrmb = 15011,
-  VPBLENDMDZrmbk = 15012,
-  VPBLENDMDZrmbkz = 15013,
-  VPBLENDMDZrmk = 15014,
-  VPBLENDMDZrmkz = 15015,
-  VPBLENDMDZrr = 15016,
-  VPBLENDMDZrrk = 15017,
-  VPBLENDMDZrrkz = 15018,
-  VPBLENDMQZ128rm = 15019,
-  VPBLENDMQZ128rmb = 15020,
-  VPBLENDMQZ128rmbk = 15021,
-  VPBLENDMQZ128rmbkz = 15022,
-  VPBLENDMQZ128rmk = 15023,
-  VPBLENDMQZ128rmkz = 15024,
-  VPBLENDMQZ128rr = 15025,
-  VPBLENDMQZ128rrk = 15026,
-  VPBLENDMQZ128rrkz = 15027,
-  VPBLENDMQZ256rm = 15028,
-  VPBLENDMQZ256rmb = 15029,
-  VPBLENDMQZ256rmbk = 15030,
-  VPBLENDMQZ256rmbkz = 15031,
-  VPBLENDMQZ256rmk = 15032,
-  VPBLENDMQZ256rmkz = 15033,
-  VPBLENDMQZ256rr = 15034,
-  VPBLENDMQZ256rrk = 15035,
-  VPBLENDMQZ256rrkz = 15036,
-  VPBLENDMQZrm = 15037,
-  VPBLENDMQZrmb = 15038,
-  VPBLENDMQZrmbk = 15039,
-  VPBLENDMQZrmbkz = 15040,
-  VPBLENDMQZrmk = 15041,
-  VPBLENDMQZrmkz = 15042,
-  VPBLENDMQZrr = 15043,
-  VPBLENDMQZrrk = 15044,
-  VPBLENDMQZrrkz = 15045,
-  VPBLENDMWZ128rm = 15046,
-  VPBLENDMWZ128rmk = 15047,
-  VPBLENDMWZ128rmkz = 15048,
-  VPBLENDMWZ128rr = 15049,
-  VPBLENDMWZ128rrk = 15050,
-  VPBLENDMWZ128rrkz = 15051,
-  VPBLENDMWZ256rm = 15052,
-  VPBLENDMWZ256rmk = 15053,
-  VPBLENDMWZ256rmkz = 15054,
-  VPBLENDMWZ256rr = 15055,
-  VPBLENDMWZ256rrk = 15056,
-  VPBLENDMWZ256rrkz = 15057,
-  VPBLENDMWZrm = 15058,
-  VPBLENDMWZrmk = 15059,
-  VPBLENDMWZrmkz = 15060,
-  VPBLENDMWZrr = 15061,
-  VPBLENDMWZrrk = 15062,
-  VPBLENDMWZrrkz = 15063,
-  VPBLENDVBYrmr = 15064,
-  VPBLENDVBYrrr = 15065,
-  VPBLENDVBrmr = 15066,
-  VPBLENDVBrrr = 15067,
-  VPBLENDWYrmi = 15068,
-  VPBLENDWYrri = 15069,
-  VPBLENDWrmi = 15070,
-  VPBLENDWrri = 15071,
-  VPBROADCASTBYrm = 15072,
-  VPBROADCASTBYrr = 15073,
-  VPBROADCASTBZ128rm = 15074,
-  VPBROADCASTBZ128rmk = 15075,
-  VPBROADCASTBZ128rmkz = 15076,
-  VPBROADCASTBZ128rr = 15077,
-  VPBROADCASTBZ128rrk = 15078,
-  VPBROADCASTBZ128rrkz = 15079,
-  VPBROADCASTBZ256rm = 15080,
-  VPBROADCASTBZ256rmk = 15081,
-  VPBROADCASTBZ256rmkz = 15082,
-  VPBROADCASTBZ256rr = 15083,
-  VPBROADCASTBZ256rrk = 15084,
-  VPBROADCASTBZ256rrkz = 15085,
-  VPBROADCASTBZrm = 15086,
-  VPBROADCASTBZrmk = 15087,
-  VPBROADCASTBZrmkz = 15088,
-  VPBROADCASTBZrr = 15089,
-  VPBROADCASTBZrrk = 15090,
-  VPBROADCASTBZrrkz = 15091,
-  VPBROADCASTBrZ128rr = 15092,
-  VPBROADCASTBrZ128rrk = 15093,
-  VPBROADCASTBrZ128rrkz = 15094,
-  VPBROADCASTBrZ256rr = 15095,
-  VPBROADCASTBrZ256rrk = 15096,
-  VPBROADCASTBrZ256rrkz = 15097,
-  VPBROADCASTBrZrr = 15098,
-  VPBROADCASTBrZrrk = 15099,
-  VPBROADCASTBrZrrkz = 15100,
-  VPBROADCASTBrm = 15101,
-  VPBROADCASTBrr = 15102,
-  VPBROADCASTDYrm = 15103,
-  VPBROADCASTDYrr = 15104,
-  VPBROADCASTDZ128rm = 15105,
-  VPBROADCASTDZ128rmk = 15106,
-  VPBROADCASTDZ128rmkz = 15107,
-  VPBROADCASTDZ128rr = 15108,
-  VPBROADCASTDZ128rrk = 15109,
-  VPBROADCASTDZ128rrkz = 15110,
-  VPBROADCASTDZ256rm = 15111,
-  VPBROADCASTDZ256rmk = 15112,
-  VPBROADCASTDZ256rmkz = 15113,
-  VPBROADCASTDZ256rr = 15114,
-  VPBROADCASTDZ256rrk = 15115,
-  VPBROADCASTDZ256rrkz = 15116,
-  VPBROADCASTDZrm = 15117,
-  VPBROADCASTDZrmk = 15118,
-  VPBROADCASTDZrmkz = 15119,
-  VPBROADCASTDZrr = 15120,
-  VPBROADCASTDZrrk = 15121,
-  VPBROADCASTDZrrkz = 15122,
-  VPBROADCASTDrZ128rr = 15123,
-  VPBROADCASTDrZ128rrk = 15124,
-  VPBROADCASTDrZ128rrkz = 15125,
-  VPBROADCASTDrZ256rr = 15126,
-  VPBROADCASTDrZ256rrk = 15127,
-  VPBROADCASTDrZ256rrkz = 15128,
-  VPBROADCASTDrZrr = 15129,
-  VPBROADCASTDrZrrk = 15130,
-  VPBROADCASTDrZrrkz = 15131,
-  VPBROADCASTDrm = 15132,
-  VPBROADCASTDrr = 15133,
-  VPBROADCASTMB2QZ128rr = 15134,
-  VPBROADCASTMB2QZ256rr = 15135,
-  VPBROADCASTMB2QZrr = 15136,
-  VPBROADCASTMW2DZ128rr = 15137,
-  VPBROADCASTMW2DZ256rr = 15138,
-  VPBROADCASTMW2DZrr = 15139,
-  VPBROADCASTQYrm = 15140,
-  VPBROADCASTQYrr = 15141,
-  VPBROADCASTQZ128rm = 15142,
-  VPBROADCASTQZ128rmk = 15143,
-  VPBROADCASTQZ128rmkz = 15144,
-  VPBROADCASTQZ128rr = 15145,
-  VPBROADCASTQZ128rrk = 15146,
-  VPBROADCASTQZ128rrkz = 15147,
-  VPBROADCASTQZ256rm = 15148,
-  VPBROADCASTQZ256rmk = 15149,
-  VPBROADCASTQZ256rmkz = 15150,
-  VPBROADCASTQZ256rr = 15151,
-  VPBROADCASTQZ256rrk = 15152,
-  VPBROADCASTQZ256rrkz = 15153,
-  VPBROADCASTQZrm = 15154,
-  VPBROADCASTQZrmk = 15155,
-  VPBROADCASTQZrmkz = 15156,
-  VPBROADCASTQZrr = 15157,
-  VPBROADCASTQZrrk = 15158,
-  VPBROADCASTQZrrkz = 15159,
-  VPBROADCASTQrZ128rr = 15160,
-  VPBROADCASTQrZ128rrk = 15161,
-  VPBROADCASTQrZ128rrkz = 15162,
-  VPBROADCASTQrZ256rr = 15163,
-  VPBROADCASTQrZ256rrk = 15164,
-  VPBROADCASTQrZ256rrkz = 15165,
-  VPBROADCASTQrZrr = 15166,
-  VPBROADCASTQrZrrk = 15167,
-  VPBROADCASTQrZrrkz = 15168,
-  VPBROADCASTQrm = 15169,
-  VPBROADCASTQrr = 15170,
-  VPBROADCASTWYrm = 15171,
-  VPBROADCASTWYrr = 15172,
-  VPBROADCASTWZ128rm = 15173,
-  VPBROADCASTWZ128rmk = 15174,
-  VPBROADCASTWZ128rmkz = 15175,
-  VPBROADCASTWZ128rr = 15176,
-  VPBROADCASTWZ128rrk = 15177,
-  VPBROADCASTWZ128rrkz = 15178,
-  VPBROADCASTWZ256rm = 15179,
-  VPBROADCASTWZ256rmk = 15180,
-  VPBROADCASTWZ256rmkz = 15181,
-  VPBROADCASTWZ256rr = 15182,
-  VPBROADCASTWZ256rrk = 15183,
-  VPBROADCASTWZ256rrkz = 15184,
-  VPBROADCASTWZrm = 15185,
-  VPBROADCASTWZrmk = 15186,
-  VPBROADCASTWZrmkz = 15187,
-  VPBROADCASTWZrr = 15188,
-  VPBROADCASTWZrrk = 15189,
-  VPBROADCASTWZrrkz = 15190,
-  VPBROADCASTWrZ128rr = 15191,
-  VPBROADCASTWrZ128rrk = 15192,
-  VPBROADCASTWrZ128rrkz = 15193,
-  VPBROADCASTWrZ256rr = 15194,
-  VPBROADCASTWrZ256rrk = 15195,
-  VPBROADCASTWrZ256rrkz = 15196,
-  VPBROADCASTWrZrr = 15197,
-  VPBROADCASTWrZrrk = 15198,
-  VPBROADCASTWrZrrkz = 15199,
-  VPBROADCASTWrm = 15200,
-  VPBROADCASTWrr = 15201,
-  VPCLMULQDQYrmi = 15202,
-  VPCLMULQDQYrri = 15203,
-  VPCLMULQDQZ128rmi = 15204,
-  VPCLMULQDQZ128rri = 15205,
-  VPCLMULQDQZ256rmi = 15206,
-  VPCLMULQDQZ256rri = 15207,
-  VPCLMULQDQZrmi = 15208,
-  VPCLMULQDQZrri = 15209,
-  VPCLMULQDQrmi = 15210,
-  VPCLMULQDQrri = 15211,
-  VPCMOVYrmr = 15212,
-  VPCMOVYrrm = 15213,
-  VPCMOVYrrr = 15214,
-  VPCMOVYrrr_REV = 15215,
-  VPCMOVrmr = 15216,
-  VPCMOVrrm = 15217,
-  VPCMOVrrr = 15218,
-  VPCMOVrrr_REV = 15219,
-  VPCMPBZ128rmi = 15220,
-  VPCMPBZ128rmik = 15221,
-  VPCMPBZ128rri = 15222,
-  VPCMPBZ128rrik = 15223,
-  VPCMPBZ256rmi = 15224,
-  VPCMPBZ256rmik = 15225,
-  VPCMPBZ256rri = 15226,
-  VPCMPBZ256rrik = 15227,
-  VPCMPBZrmi = 15228,
-  VPCMPBZrmik = 15229,
-  VPCMPBZrri = 15230,
-  VPCMPBZrrik = 15231,
-  VPCMPDZ128rmbi = 15232,
-  VPCMPDZ128rmbik = 15233,
-  VPCMPDZ128rmi = 15234,
-  VPCMPDZ128rmik = 15235,
-  VPCMPDZ128rri = 15236,
-  VPCMPDZ128rrik = 15237,
-  VPCMPDZ256rmbi = 15238,
-  VPCMPDZ256rmbik = 15239,
-  VPCMPDZ256rmi = 15240,
-  VPCMPDZ256rmik = 15241,
-  VPCMPDZ256rri = 15242,
-  VPCMPDZ256rrik = 15243,
-  VPCMPDZrmbi = 15244,
-  VPCMPDZrmbik = 15245,
-  VPCMPDZrmi = 15246,
-  VPCMPDZrmik = 15247,
-  VPCMPDZrri = 15248,
-  VPCMPDZrrik = 15249,
-  VPCMPEQBYrm = 15250,
-  VPCMPEQBYrr = 15251,
-  VPCMPEQBZ128rm = 15252,
-  VPCMPEQBZ128rmk = 15253,
-  VPCMPEQBZ128rr = 15254,
-  VPCMPEQBZ128rrk = 15255,
-  VPCMPEQBZ256rm = 15256,
-  VPCMPEQBZ256rmk = 15257,
-  VPCMPEQBZ256rr = 15258,
-  VPCMPEQBZ256rrk = 15259,
-  VPCMPEQBZrm = 15260,
-  VPCMPEQBZrmk = 15261,
-  VPCMPEQBZrr = 15262,
-  VPCMPEQBZrrk = 15263,
-  VPCMPEQBrm = 15264,
-  VPCMPEQBrr = 15265,
-  VPCMPEQDYrm = 15266,
-  VPCMPEQDYrr = 15267,
-  VPCMPEQDZ128rm = 15268,
-  VPCMPEQDZ128rmb = 15269,
-  VPCMPEQDZ128rmbk = 15270,
-  VPCMPEQDZ128rmk = 15271,
-  VPCMPEQDZ128rr = 15272,
-  VPCMPEQDZ128rrk = 15273,
-  VPCMPEQDZ256rm = 15274,
-  VPCMPEQDZ256rmb = 15275,
-  VPCMPEQDZ256rmbk = 15276,
-  VPCMPEQDZ256rmk = 15277,
-  VPCMPEQDZ256rr = 15278,
-  VPCMPEQDZ256rrk = 15279,
-  VPCMPEQDZrm = 15280,
-  VPCMPEQDZrmb = 15281,
-  VPCMPEQDZrmbk = 15282,
-  VPCMPEQDZrmk = 15283,
-  VPCMPEQDZrr = 15284,
-  VPCMPEQDZrrk = 15285,
-  VPCMPEQDrm = 15286,
-  VPCMPEQDrr = 15287,
-  VPCMPEQQYrm = 15288,
-  VPCMPEQQYrr = 15289,
-  VPCMPEQQZ128rm = 15290,
-  VPCMPEQQZ128rmb = 15291,
-  VPCMPEQQZ128rmbk = 15292,
-  VPCMPEQQZ128rmk = 15293,
-  VPCMPEQQZ128rr = 15294,
-  VPCMPEQQZ128rrk = 15295,
-  VPCMPEQQZ256rm = 15296,
-  VPCMPEQQZ256rmb = 15297,
-  VPCMPEQQZ256rmbk = 15298,
-  VPCMPEQQZ256rmk = 15299,
-  VPCMPEQQZ256rr = 15300,
-  VPCMPEQQZ256rrk = 15301,
-  VPCMPEQQZrm = 15302,
-  VPCMPEQQZrmb = 15303,
-  VPCMPEQQZrmbk = 15304,
-  VPCMPEQQZrmk = 15305,
-  VPCMPEQQZrr = 15306,
-  VPCMPEQQZrrk = 15307,
-  VPCMPEQQrm = 15308,
-  VPCMPEQQrr = 15309,
-  VPCMPEQWYrm = 15310,
-  VPCMPEQWYrr = 15311,
-  VPCMPEQWZ128rm = 15312,
-  VPCMPEQWZ128rmk = 15313,
-  VPCMPEQWZ128rr = 15314,
-  VPCMPEQWZ128rrk = 15315,
-  VPCMPEQWZ256rm = 15316,
-  VPCMPEQWZ256rmk = 15317,
-  VPCMPEQWZ256rr = 15318,
-  VPCMPEQWZ256rrk = 15319,
-  VPCMPEQWZrm = 15320,
-  VPCMPEQWZrmk = 15321,
-  VPCMPEQWZrr = 15322,
-  VPCMPEQWZrrk = 15323,
-  VPCMPEQWrm = 15324,
-  VPCMPEQWrr = 15325,
-  VPCMPESTRIrmi = 15326,
-  VPCMPESTRIrri = 15327,
-  VPCMPESTRMrmi = 15328,
-  VPCMPESTRMrri = 15329,
-  VPCMPGTBYrm = 15330,
-  VPCMPGTBYrr = 15331,
-  VPCMPGTBZ128rm = 15332,
-  VPCMPGTBZ128rmk = 15333,
-  VPCMPGTBZ128rr = 15334,
-  VPCMPGTBZ128rrk = 15335,
-  VPCMPGTBZ256rm = 15336,
-  VPCMPGTBZ256rmk = 15337,
-  VPCMPGTBZ256rr = 15338,
-  VPCMPGTBZ256rrk = 15339,
-  VPCMPGTBZrm = 15340,
-  VPCMPGTBZrmk = 15341,
-  VPCMPGTBZrr = 15342,
-  VPCMPGTBZrrk = 15343,
-  VPCMPGTBrm = 15344,
-  VPCMPGTBrr = 15345,
-  VPCMPGTDYrm = 15346,
-  VPCMPGTDYrr = 15347,
-  VPCMPGTDZ128rm = 15348,
-  VPCMPGTDZ128rmb = 15349,
-  VPCMPGTDZ128rmbk = 15350,
-  VPCMPGTDZ128rmk = 15351,
-  VPCMPGTDZ128rr = 15352,
-  VPCMPGTDZ128rrk = 15353,
-  VPCMPGTDZ256rm = 15354,
-  VPCMPGTDZ256rmb = 15355,
-  VPCMPGTDZ256rmbk = 15356,
-  VPCMPGTDZ256rmk = 15357,
-  VPCMPGTDZ256rr = 15358,
-  VPCMPGTDZ256rrk = 15359,
-  VPCMPGTDZrm = 15360,
-  VPCMPGTDZrmb = 15361,
-  VPCMPGTDZrmbk = 15362,
-  VPCMPGTDZrmk = 15363,
-  VPCMPGTDZrr = 15364,
-  VPCMPGTDZrrk = 15365,
-  VPCMPGTDrm = 15366,
-  VPCMPGTDrr = 15367,
-  VPCMPGTQYrm = 15368,
-  VPCMPGTQYrr = 15369,
-  VPCMPGTQZ128rm = 15370,
-  VPCMPGTQZ128rmb = 15371,
-  VPCMPGTQZ128rmbk = 15372,
-  VPCMPGTQZ128rmk = 15373,
-  VPCMPGTQZ128rr = 15374,
-  VPCMPGTQZ128rrk = 15375,
-  VPCMPGTQZ256rm = 15376,
-  VPCMPGTQZ256rmb = 15377,
-  VPCMPGTQZ256rmbk = 15378,
-  VPCMPGTQZ256rmk = 15379,
-  VPCMPGTQZ256rr = 15380,
-  VPCMPGTQZ256rrk = 15381,
-  VPCMPGTQZrm = 15382,
-  VPCMPGTQZrmb = 15383,
-  VPCMPGTQZrmbk = 15384,
-  VPCMPGTQZrmk = 15385,
-  VPCMPGTQZrr = 15386,
-  VPCMPGTQZrrk = 15387,
-  VPCMPGTQrm = 15388,
-  VPCMPGTQrr = 15389,
-  VPCMPGTWYrm = 15390,
-  VPCMPGTWYrr = 15391,
-  VPCMPGTWZ128rm = 15392,
-  VPCMPGTWZ128rmk = 15393,
-  VPCMPGTWZ128rr = 15394,
-  VPCMPGTWZ128rrk = 15395,
-  VPCMPGTWZ256rm = 15396,
-  VPCMPGTWZ256rmk = 15397,
-  VPCMPGTWZ256rr = 15398,
-  VPCMPGTWZ256rrk = 15399,
-  VPCMPGTWZrm = 15400,
-  VPCMPGTWZrmk = 15401,
-  VPCMPGTWZrr = 15402,
-  VPCMPGTWZrrk = 15403,
-  VPCMPGTWrm = 15404,
-  VPCMPGTWrr = 15405,
-  VPCMPISTRIrmi = 15406,
-  VPCMPISTRIrri = 15407,
-  VPCMPISTRMrmi = 15408,
-  VPCMPISTRMrri = 15409,
-  VPCMPQZ128rmbi = 15410,
-  VPCMPQZ128rmbik = 15411,
-  VPCMPQZ128rmi = 15412,
-  VPCMPQZ128rmik = 15413,
-  VPCMPQZ128rri = 15414,
-  VPCMPQZ128rrik = 15415,
-  VPCMPQZ256rmbi = 15416,
-  VPCMPQZ256rmbik = 15417,
-  VPCMPQZ256rmi = 15418,
-  VPCMPQZ256rmik = 15419,
-  VPCMPQZ256rri = 15420,
-  VPCMPQZ256rrik = 15421,
-  VPCMPQZrmbi = 15422,
-  VPCMPQZrmbik = 15423,
-  VPCMPQZrmi = 15424,
-  VPCMPQZrmik = 15425,
-  VPCMPQZrri = 15426,
-  VPCMPQZrrik = 15427,
-  VPCMPUBZ128rmi = 15428,
-  VPCMPUBZ128rmik = 15429,
-  VPCMPUBZ128rri = 15430,
-  VPCMPUBZ128rrik = 15431,
-  VPCMPUBZ256rmi = 15432,
-  VPCMPUBZ256rmik = 15433,
-  VPCMPUBZ256rri = 15434,
-  VPCMPUBZ256rrik = 15435,
-  VPCMPUBZrmi = 15436,
-  VPCMPUBZrmik = 15437,
-  VPCMPUBZrri = 15438,
-  VPCMPUBZrrik = 15439,
-  VPCMPUDZ128rmbi = 15440,
-  VPCMPUDZ128rmbik = 15441,
-  VPCMPUDZ128rmi = 15442,
-  VPCMPUDZ128rmik = 15443,
-  VPCMPUDZ128rri = 15444,
-  VPCMPUDZ128rrik = 15445,
-  VPCMPUDZ256rmbi = 15446,
-  VPCMPUDZ256rmbik = 15447,
-  VPCMPUDZ256rmi = 15448,
-  VPCMPUDZ256rmik = 15449,
-  VPCMPUDZ256rri = 15450,
-  VPCMPUDZ256rrik = 15451,
-  VPCMPUDZrmbi = 15452,
-  VPCMPUDZrmbik = 15453,
-  VPCMPUDZrmi = 15454,
-  VPCMPUDZrmik = 15455,
-  VPCMPUDZrri = 15456,
-  VPCMPUDZrrik = 15457,
-  VPCMPUQZ128rmbi = 15458,
-  VPCMPUQZ128rmbik = 15459,
-  VPCMPUQZ128rmi = 15460,
-  VPCMPUQZ128rmik = 15461,
-  VPCMPUQZ128rri = 15462,
-  VPCMPUQZ128rrik = 15463,
-  VPCMPUQZ256rmbi = 15464,
-  VPCMPUQZ256rmbik = 15465,
-  VPCMPUQZ256rmi = 15466,
-  VPCMPUQZ256rmik = 15467,
-  VPCMPUQZ256rri = 15468,
-  VPCMPUQZ256rrik = 15469,
-  VPCMPUQZrmbi = 15470,
-  VPCMPUQZrmbik = 15471,
-  VPCMPUQZrmi = 15472,
-  VPCMPUQZrmik = 15473,
-  VPCMPUQZrri = 15474,
-  VPCMPUQZrrik = 15475,
-  VPCMPUWZ128rmi = 15476,
-  VPCMPUWZ128rmik = 15477,
-  VPCMPUWZ128rri = 15478,
-  VPCMPUWZ128rrik = 15479,
-  VPCMPUWZ256rmi = 15480,
-  VPCMPUWZ256rmik = 15481,
-  VPCMPUWZ256rri = 15482,
-  VPCMPUWZ256rrik = 15483,
-  VPCMPUWZrmi = 15484,
-  VPCMPUWZrmik = 15485,
-  VPCMPUWZrri = 15486,
-  VPCMPUWZrrik = 15487,
-  VPCMPWZ128rmi = 15488,
-  VPCMPWZ128rmik = 15489,
-  VPCMPWZ128rri = 15490,
-  VPCMPWZ128rrik = 15491,
-  VPCMPWZ256rmi = 15492,
-  VPCMPWZ256rmik = 15493,
-  VPCMPWZ256rri = 15494,
-  VPCMPWZ256rrik = 15495,
-  VPCMPWZrmi = 15496,
-  VPCMPWZrmik = 15497,
-  VPCMPWZrri = 15498,
-  VPCMPWZrrik = 15499,
-  VPCOMBmi = 15500,
-  VPCOMBri = 15501,
-  VPCOMDmi = 15502,
-  VPCOMDri = 15503,
-  VPCOMPRESSBZ128mr = 15504,
-  VPCOMPRESSBZ128mrk = 15505,
-  VPCOMPRESSBZ128rr = 15506,
-  VPCOMPRESSBZ128rrk = 15507,
-  VPCOMPRESSBZ128rrkz = 15508,
-  VPCOMPRESSBZ256mr = 15509,
-  VPCOMPRESSBZ256mrk = 15510,
-  VPCOMPRESSBZ256rr = 15511,
-  VPCOMPRESSBZ256rrk = 15512,
-  VPCOMPRESSBZ256rrkz = 15513,
-  VPCOMPRESSBZmr = 15514,
-  VPCOMPRESSBZmrk = 15515,
-  VPCOMPRESSBZrr = 15516,
-  VPCOMPRESSBZrrk = 15517,
-  VPCOMPRESSBZrrkz = 15518,
-  VPCOMPRESSDZ128mr = 15519,
-  VPCOMPRESSDZ128mrk = 15520,
-  VPCOMPRESSDZ128rr = 15521,
-  VPCOMPRESSDZ128rrk = 15522,
-  VPCOMPRESSDZ128rrkz = 15523,
-  VPCOMPRESSDZ256mr = 15524,
-  VPCOMPRESSDZ256mrk = 15525,
-  VPCOMPRESSDZ256rr = 15526,
-  VPCOMPRESSDZ256rrk = 15527,
-  VPCOMPRESSDZ256rrkz = 15528,
-  VPCOMPRESSDZmr = 15529,
-  VPCOMPRESSDZmrk = 15530,
-  VPCOMPRESSDZrr = 15531,
-  VPCOMPRESSDZrrk = 15532,
-  VPCOMPRESSDZrrkz = 15533,
-  VPCOMPRESSQZ128mr = 15534,
-  VPCOMPRESSQZ128mrk = 15535,
-  VPCOMPRESSQZ128rr = 15536,
-  VPCOMPRESSQZ128rrk = 15537,
-  VPCOMPRESSQZ128rrkz = 15538,
-  VPCOMPRESSQZ256mr = 15539,
-  VPCOMPRESSQZ256mrk = 15540,
-  VPCOMPRESSQZ256rr = 15541,
-  VPCOMPRESSQZ256rrk = 15542,
-  VPCOMPRESSQZ256rrkz = 15543,
-  VPCOMPRESSQZmr = 15544,
-  VPCOMPRESSQZmrk = 15545,
-  VPCOMPRESSQZrr = 15546,
-  VPCOMPRESSQZrrk = 15547,
-  VPCOMPRESSQZrrkz = 15548,
-  VPCOMPRESSWZ128mr = 15549,
-  VPCOMPRESSWZ128mrk = 15550,
-  VPCOMPRESSWZ128rr = 15551,
-  VPCOMPRESSWZ128rrk = 15552,
-  VPCOMPRESSWZ128rrkz = 15553,
-  VPCOMPRESSWZ256mr = 15554,
-  VPCOMPRESSWZ256mrk = 15555,
-  VPCOMPRESSWZ256rr = 15556,
-  VPCOMPRESSWZ256rrk = 15557,
-  VPCOMPRESSWZ256rrkz = 15558,
-  VPCOMPRESSWZmr = 15559,
-  VPCOMPRESSWZmrk = 15560,
-  VPCOMPRESSWZrr = 15561,
-  VPCOMPRESSWZrrk = 15562,
-  VPCOMPRESSWZrrkz = 15563,
-  VPCOMQmi = 15564,
-  VPCOMQri = 15565,
-  VPCOMUBmi = 15566,
-  VPCOMUBri = 15567,
-  VPCOMUDmi = 15568,
-  VPCOMUDri = 15569,
-  VPCOMUQmi = 15570,
-  VPCOMUQri = 15571,
-  VPCOMUWmi = 15572,
-  VPCOMUWri = 15573,
-  VPCOMWmi = 15574,
-  VPCOMWri = 15575,
-  VPCONFLICTDZ128rm = 15576,
-  VPCONFLICTDZ128rmb = 15577,
-  VPCONFLICTDZ128rmbk = 15578,
-  VPCONFLICTDZ128rmbkz = 15579,
-  VPCONFLICTDZ128rmk = 15580,
-  VPCONFLICTDZ128rmkz = 15581,
-  VPCONFLICTDZ128rr = 15582,
-  VPCONFLICTDZ128rrk = 15583,
-  VPCONFLICTDZ128rrkz = 15584,
-  VPCONFLICTDZ256rm = 15585,
-  VPCONFLICTDZ256rmb = 15586,
-  VPCONFLICTDZ256rmbk = 15587,
-  VPCONFLICTDZ256rmbkz = 15588,
-  VPCONFLICTDZ256rmk = 15589,
-  VPCONFLICTDZ256rmkz = 15590,
-  VPCONFLICTDZ256rr = 15591,
-  VPCONFLICTDZ256rrk = 15592,
-  VPCONFLICTDZ256rrkz = 15593,
-  VPCONFLICTDZrm = 15594,
-  VPCONFLICTDZrmb = 15595,
-  VPCONFLICTDZrmbk = 15596,
-  VPCONFLICTDZrmbkz = 15597,
-  VPCONFLICTDZrmk = 15598,
-  VPCONFLICTDZrmkz = 15599,
-  VPCONFLICTDZrr = 15600,
-  VPCONFLICTDZrrk = 15601,
-  VPCONFLICTDZrrkz = 15602,
-  VPCONFLICTQZ128rm = 15603,
-  VPCONFLICTQZ128rmb = 15604,
-  VPCONFLICTQZ128rmbk = 15605,
-  VPCONFLICTQZ128rmbkz = 15606,
-  VPCONFLICTQZ128rmk = 15607,
-  VPCONFLICTQZ128rmkz = 15608,
-  VPCONFLICTQZ128rr = 15609,
-  VPCONFLICTQZ128rrk = 15610,
-  VPCONFLICTQZ128rrkz = 15611,
-  VPCONFLICTQZ256rm = 15612,
-  VPCONFLICTQZ256rmb = 15613,
-  VPCONFLICTQZ256rmbk = 15614,
-  VPCONFLICTQZ256rmbkz = 15615,
-  VPCONFLICTQZ256rmk = 15616,
-  VPCONFLICTQZ256rmkz = 15617,
-  VPCONFLICTQZ256rr = 15618,
-  VPCONFLICTQZ256rrk = 15619,
-  VPCONFLICTQZ256rrkz = 15620,
-  VPCONFLICTQZrm = 15621,
-  VPCONFLICTQZrmb = 15622,
-  VPCONFLICTQZrmbk = 15623,
-  VPCONFLICTQZrmbkz = 15624,
-  VPCONFLICTQZrmk = 15625,
-  VPCONFLICTQZrmkz = 15626,
-  VPCONFLICTQZrr = 15627,
-  VPCONFLICTQZrrk = 15628,
-  VPCONFLICTQZrrkz = 15629,
-  VPDPBSSDSYrm = 15630,
-  VPDPBSSDSYrr = 15631,
-  VPDPBSSDSZ128m = 15632,
-  VPDPBSSDSZ128mb = 15633,
-  VPDPBSSDSZ128mbk = 15634,
-  VPDPBSSDSZ128mbkz = 15635,
-  VPDPBSSDSZ128mk = 15636,
-  VPDPBSSDSZ128mkz = 15637,
-  VPDPBSSDSZ128r = 15638,
-  VPDPBSSDSZ128rk = 15639,
-  VPDPBSSDSZ128rkz = 15640,
-  VPDPBSSDSZ256m = 15641,
-  VPDPBSSDSZ256mb = 15642,
-  VPDPBSSDSZ256mbk = 15643,
-  VPDPBSSDSZ256mbkz = 15644,
-  VPDPBSSDSZ256mk = 15645,
-  VPDPBSSDSZ256mkz = 15646,
-  VPDPBSSDSZ256r = 15647,
-  VPDPBSSDSZ256rk = 15648,
-  VPDPBSSDSZ256rkz = 15649,
-  VPDPBSSDSZm = 15650,
-  VPDPBSSDSZmb = 15651,
-  VPDPBSSDSZmbk = 15652,
-  VPDPBSSDSZmbkz = 15653,
-  VPDPBSSDSZmk = 15654,
-  VPDPBSSDSZmkz = 15655,
-  VPDPBSSDSZr = 15656,
-  VPDPBSSDSZrk = 15657,
-  VPDPBSSDSZrkz = 15658,
-  VPDPBSSDSrm = 15659,
-  VPDPBSSDSrr = 15660,
-  VPDPBSSDYrm = 15661,
-  VPDPBSSDYrr = 15662,
-  VPDPBSSDZ128m = 15663,
-  VPDPBSSDZ128mb = 15664,
-  VPDPBSSDZ128mbk = 15665,
-  VPDPBSSDZ128mbkz = 15666,
-  VPDPBSSDZ128mk = 15667,
-  VPDPBSSDZ128mkz = 15668,
-  VPDPBSSDZ128r = 15669,
-  VPDPBSSDZ128rk = 15670,
-  VPDPBSSDZ128rkz = 15671,
-  VPDPBSSDZ256m = 15672,
-  VPDPBSSDZ256mb = 15673,
-  VPDPBSSDZ256mbk = 15674,
-  VPDPBSSDZ256mbkz = 15675,
-  VPDPBSSDZ256mk = 15676,
-  VPDPBSSDZ256mkz = 15677,
-  VPDPBSSDZ256r = 15678,
-  VPDPBSSDZ256rk = 15679,
-  VPDPBSSDZ256rkz = 15680,
-  VPDPBSSDZm = 15681,
-  VPDPBSSDZmb = 15682,
-  VPDPBSSDZmbk = 15683,
-  VPDPBSSDZmbkz = 15684,
-  VPDPBSSDZmk = 15685,
-  VPDPBSSDZmkz = 15686,
-  VPDPBSSDZr = 15687,
-  VPDPBSSDZrk = 15688,
-  VPDPBSSDZrkz = 15689,
-  VPDPBSSDrm = 15690,
-  VPDPBSSDrr = 15691,
-  VPDPBSUDSYrm = 15692,
-  VPDPBSUDSYrr = 15693,
-  VPDPBSUDSZ128m = 15694,
-  VPDPBSUDSZ128mb = 15695,
-  VPDPBSUDSZ128mbk = 15696,
-  VPDPBSUDSZ128mbkz = 15697,
-  VPDPBSUDSZ128mk = 15698,
-  VPDPBSUDSZ128mkz = 15699,
-  VPDPBSUDSZ128r = 15700,
-  VPDPBSUDSZ128rk = 15701,
-  VPDPBSUDSZ128rkz = 15702,
-  VPDPBSUDSZ256m = 15703,
-  VPDPBSUDSZ256mb = 15704,
-  VPDPBSUDSZ256mbk = 15705,
-  VPDPBSUDSZ256mbkz = 15706,
-  VPDPBSUDSZ256mk = 15707,
-  VPDPBSUDSZ256mkz = 15708,
-  VPDPBSUDSZ256r = 15709,
-  VPDPBSUDSZ256rk = 15710,
-  VPDPBSUDSZ256rkz = 15711,
-  VPDPBSUDSZm = 15712,
-  VPDPBSUDSZmb = 15713,
-  VPDPBSUDSZmbk = 15714,
-  VPDPBSUDSZmbkz = 15715,
-  VPDPBSUDSZmk = 15716,
-  VPDPBSUDSZmkz = 15717,
-  VPDPBSUDSZr = 15718,
-  VPDPBSUDSZrk = 15719,
-  VPDPBSUDSZrkz = 15720,
-  VPDPBSUDSrm = 15721,
-  VPDPBSUDSrr = 15722,
-  VPDPBSUDYrm = 15723,
-  VPDPBSUDYrr = 15724,
-  VPDPBSUDZ128m = 15725,
-  VPDPBSUDZ128mb = 15726,
-  VPDPBSUDZ128mbk = 15727,
-  VPDPBSUDZ128mbkz = 15728,
-  VPDPBSUDZ128mk = 15729,
-  VPDPBSUDZ128mkz = 15730,
-  VPDPBSUDZ128r = 15731,
-  VPDPBSUDZ128rk = 15732,
-  VPDPBSUDZ128rkz = 15733,
-  VPDPBSUDZ256m = 15734,
-  VPDPBSUDZ256mb = 15735,
-  VPDPBSUDZ256mbk = 15736,
-  VPDPBSUDZ256mbkz = 15737,
-  VPDPBSUDZ256mk = 15738,
-  VPDPBSUDZ256mkz = 15739,
-  VPDPBSUDZ256r = 15740,
-  VPDPBSUDZ256rk = 15741,
-  VPDPBSUDZ256rkz = 15742,
-  VPDPBSUDZm = 15743,
-  VPDPBSUDZmb = 15744,
-  VPDPBSUDZmbk = 15745,
-  VPDPBSUDZmbkz = 15746,
-  VPDPBSUDZmk = 15747,
-  VPDPBSUDZmkz = 15748,
-  VPDPBSUDZr = 15749,
-  VPDPBSUDZrk = 15750,
-  VPDPBSUDZrkz = 15751,
-  VPDPBSUDrm = 15752,
-  VPDPBSUDrr = 15753,
-  VPDPBUSDSYrm = 15754,
-  VPDPBUSDSYrr = 15755,
-  VPDPBUSDSZ128m = 15756,
-  VPDPBUSDSZ128mb = 15757,
-  VPDPBUSDSZ128mbk = 15758,
-  VPDPBUSDSZ128mbkz = 15759,
-  VPDPBUSDSZ128mk = 15760,
-  VPDPBUSDSZ128mkz = 15761,
-  VPDPBUSDSZ128r = 15762,
-  VPDPBUSDSZ128rk = 15763,
-  VPDPBUSDSZ128rkz = 15764,
-  VPDPBUSDSZ256m = 15765,
-  VPDPBUSDSZ256mb = 15766,
-  VPDPBUSDSZ256mbk = 15767,
-  VPDPBUSDSZ256mbkz = 15768,
-  VPDPBUSDSZ256mk = 15769,
-  VPDPBUSDSZ256mkz = 15770,
-  VPDPBUSDSZ256r = 15771,
-  VPDPBUSDSZ256rk = 15772,
-  VPDPBUSDSZ256rkz = 15773,
-  VPDPBUSDSZm = 15774,
-  VPDPBUSDSZmb = 15775,
-  VPDPBUSDSZmbk = 15776,
-  VPDPBUSDSZmbkz = 15777,
-  VPDPBUSDSZmk = 15778,
-  VPDPBUSDSZmkz = 15779,
-  VPDPBUSDSZr = 15780,
-  VPDPBUSDSZrk = 15781,
-  VPDPBUSDSZrkz = 15782,
-  VPDPBUSDSrm = 15783,
-  VPDPBUSDSrr = 15784,
-  VPDPBUSDYrm = 15785,
-  VPDPBUSDYrr = 15786,
-  VPDPBUSDZ128m = 15787,
-  VPDPBUSDZ128mb = 15788,
-  VPDPBUSDZ128mbk = 15789,
-  VPDPBUSDZ128mbkz = 15790,
-  VPDPBUSDZ128mk = 15791,
-  VPDPBUSDZ128mkz = 15792,
-  VPDPBUSDZ128r = 15793,
-  VPDPBUSDZ128rk = 15794,
-  VPDPBUSDZ128rkz = 15795,
-  VPDPBUSDZ256m = 15796,
-  VPDPBUSDZ256mb = 15797,
-  VPDPBUSDZ256mbk = 15798,
-  VPDPBUSDZ256mbkz = 15799,
-  VPDPBUSDZ256mk = 15800,
-  VPDPBUSDZ256mkz = 15801,
-  VPDPBUSDZ256r = 15802,
-  VPDPBUSDZ256rk = 15803,
-  VPDPBUSDZ256rkz = 15804,
-  VPDPBUSDZm = 15805,
-  VPDPBUSDZmb = 15806,
-  VPDPBUSDZmbk = 15807,
-  VPDPBUSDZmbkz = 15808,
-  VPDPBUSDZmk = 15809,
-  VPDPBUSDZmkz = 15810,
-  VPDPBUSDZr = 15811,
-  VPDPBUSDZrk = 15812,
-  VPDPBUSDZrkz = 15813,
-  VPDPBUSDrm = 15814,
-  VPDPBUSDrr = 15815,
-  VPDPBUUDSYrm = 15816,
-  VPDPBUUDSYrr = 15817,
-  VPDPBUUDSZ128m = 15818,
-  VPDPBUUDSZ128mb = 15819,
-  VPDPBUUDSZ128mbk = 15820,
-  VPDPBUUDSZ128mbkz = 15821,
-  VPDPBUUDSZ128mk = 15822,
-  VPDPBUUDSZ128mkz = 15823,
-  VPDPBUUDSZ128r = 15824,
-  VPDPBUUDSZ128rk = 15825,
-  VPDPBUUDSZ128rkz = 15826,
-  VPDPBUUDSZ256m = 15827,
-  VPDPBUUDSZ256mb = 15828,
-  VPDPBUUDSZ256mbk = 15829,
-  VPDPBUUDSZ256mbkz = 15830,
-  VPDPBUUDSZ256mk = 15831,
-  VPDPBUUDSZ256mkz = 15832,
-  VPDPBUUDSZ256r = 15833,
-  VPDPBUUDSZ256rk = 15834,
-  VPDPBUUDSZ256rkz = 15835,
-  VPDPBUUDSZm = 15836,
-  VPDPBUUDSZmb = 15837,
-  VPDPBUUDSZmbk = 15838,
-  VPDPBUUDSZmbkz = 15839,
-  VPDPBUUDSZmk = 15840,
-  VPDPBUUDSZmkz = 15841,
-  VPDPBUUDSZr = 15842,
-  VPDPBUUDSZrk = 15843,
-  VPDPBUUDSZrkz = 15844,
-  VPDPBUUDSrm = 15845,
-  VPDPBUUDSrr = 15846,
-  VPDPBUUDYrm = 15847,
-  VPDPBUUDYrr = 15848,
-  VPDPBUUDZ128m = 15849,
-  VPDPBUUDZ128mb = 15850,
-  VPDPBUUDZ128mbk = 15851,
-  VPDPBUUDZ128mbkz = 15852,
-  VPDPBUUDZ128mk = 15853,
-  VPDPBUUDZ128mkz = 15854,
-  VPDPBUUDZ128r = 15855,
-  VPDPBUUDZ128rk = 15856,
-  VPDPBUUDZ128rkz = 15857,
-  VPDPBUUDZ256m = 15858,
-  VPDPBUUDZ256mb = 15859,
-  VPDPBUUDZ256mbk = 15860,
-  VPDPBUUDZ256mbkz = 15861,
-  VPDPBUUDZ256mk = 15862,
-  VPDPBUUDZ256mkz = 15863,
-  VPDPBUUDZ256r = 15864,
-  VPDPBUUDZ256rk = 15865,
-  VPDPBUUDZ256rkz = 15866,
-  VPDPBUUDZm = 15867,
-  VPDPBUUDZmb = 15868,
-  VPDPBUUDZmbk = 15869,
-  VPDPBUUDZmbkz = 15870,
-  VPDPBUUDZmk = 15871,
-  VPDPBUUDZmkz = 15872,
-  VPDPBUUDZr = 15873,
-  VPDPBUUDZrk = 15874,
-  VPDPBUUDZrkz = 15875,
-  VPDPBUUDrm = 15876,
-  VPDPBUUDrr = 15877,
-  VPDPWSSDSYrm = 15878,
-  VPDPWSSDSYrr = 15879,
-  VPDPWSSDSZ128m = 15880,
-  VPDPWSSDSZ128mb = 15881,
-  VPDPWSSDSZ128mbk = 15882,
-  VPDPWSSDSZ128mbkz = 15883,
-  VPDPWSSDSZ128mk = 15884,
-  VPDPWSSDSZ128mkz = 15885,
-  VPDPWSSDSZ128r = 15886,
-  VPDPWSSDSZ128rk = 15887,
-  VPDPWSSDSZ128rkz = 15888,
-  VPDPWSSDSZ256m = 15889,
-  VPDPWSSDSZ256mb = 15890,
-  VPDPWSSDSZ256mbk = 15891,
-  VPDPWSSDSZ256mbkz = 15892,
-  VPDPWSSDSZ256mk = 15893,
-  VPDPWSSDSZ256mkz = 15894,
-  VPDPWSSDSZ256r = 15895,
-  VPDPWSSDSZ256rk = 15896,
-  VPDPWSSDSZ256rkz = 15897,
-  VPDPWSSDSZm = 15898,
-  VPDPWSSDSZmb = 15899,
-  VPDPWSSDSZmbk = 15900,
-  VPDPWSSDSZmbkz = 15901,
-  VPDPWSSDSZmk = 15902,
-  VPDPWSSDSZmkz = 15903,
-  VPDPWSSDSZr = 15904,
-  VPDPWSSDSZrk = 15905,
-  VPDPWSSDSZrkz = 15906,
-  VPDPWSSDSrm = 15907,
-  VPDPWSSDSrr = 15908,
-  VPDPWSSDYrm = 15909,
-  VPDPWSSDYrr = 15910,
-  VPDPWSSDZ128m = 15911,
-  VPDPWSSDZ128mb = 15912,
-  VPDPWSSDZ128mbk = 15913,
-  VPDPWSSDZ128mbkz = 15914,
-  VPDPWSSDZ128mk = 15915,
-  VPDPWSSDZ128mkz = 15916,
-  VPDPWSSDZ128r = 15917,
-  VPDPWSSDZ128rk = 15918,
-  VPDPWSSDZ128rkz = 15919,
-  VPDPWSSDZ256m = 15920,
-  VPDPWSSDZ256mb = 15921,
-  VPDPWSSDZ256mbk = 15922,
-  VPDPWSSDZ256mbkz = 15923,
-  VPDPWSSDZ256mk = 15924,
-  VPDPWSSDZ256mkz = 15925,
-  VPDPWSSDZ256r = 15926,
-  VPDPWSSDZ256rk = 15927,
-  VPDPWSSDZ256rkz = 15928,
-  VPDPWSSDZm = 15929,
-  VPDPWSSDZmb = 15930,
-  VPDPWSSDZmbk = 15931,
-  VPDPWSSDZmbkz = 15932,
-  VPDPWSSDZmk = 15933,
-  VPDPWSSDZmkz = 15934,
-  VPDPWSSDZr = 15935,
-  VPDPWSSDZrk = 15936,
-  VPDPWSSDZrkz = 15937,
-  VPDPWSSDrm = 15938,
-  VPDPWSSDrr = 15939,
-  VPDPWSUDSYrm = 15940,
-  VPDPWSUDSYrr = 15941,
-  VPDPWSUDSZ128m = 15942,
-  VPDPWSUDSZ128mb = 15943,
-  VPDPWSUDSZ128mbk = 15944,
-  VPDPWSUDSZ128mbkz = 15945,
-  VPDPWSUDSZ128mk = 15946,
-  VPDPWSUDSZ128mkz = 15947,
-  VPDPWSUDSZ128r = 15948,
-  VPDPWSUDSZ128rk = 15949,
-  VPDPWSUDSZ128rkz = 15950,
-  VPDPWSUDSZ256m = 15951,
-  VPDPWSUDSZ256mb = 15952,
-  VPDPWSUDSZ256mbk = 15953,
-  VPDPWSUDSZ256mbkz = 15954,
-  VPDPWSUDSZ256mk = 15955,
-  VPDPWSUDSZ256mkz = 15956,
-  VPDPWSUDSZ256r = 15957,
-  VPDPWSUDSZ256rk = 15958,
-  VPDPWSUDSZ256rkz = 15959,
-  VPDPWSUDSZm = 15960,
-  VPDPWSUDSZmb = 15961,
-  VPDPWSUDSZmbk = 15962,
-  VPDPWSUDSZmbkz = 15963,
-  VPDPWSUDSZmk = 15964,
-  VPDPWSUDSZmkz = 15965,
-  VPDPWSUDSZr = 15966,
-  VPDPWSUDSZrk = 15967,
-  VPDPWSUDSZrkz = 15968,
-  VPDPWSUDSrm = 15969,
-  VPDPWSUDSrr = 15970,
-  VPDPWSUDYrm = 15971,
-  VPDPWSUDYrr = 15972,
-  VPDPWSUDZ128m = 15973,
-  VPDPWSUDZ128mb = 15974,
-  VPDPWSUDZ128mbk = 15975,
-  VPDPWSUDZ128mbkz = 15976,
-  VPDPWSUDZ128mk = 15977,
-  VPDPWSUDZ128mkz = 15978,
-  VPDPWSUDZ128r = 15979,
-  VPDPWSUDZ128rk = 15980,
-  VPDPWSUDZ128rkz = 15981,
-  VPDPWSUDZ256m = 15982,
-  VPDPWSUDZ256mb = 15983,
-  VPDPWSUDZ256mbk = 15984,
-  VPDPWSUDZ256mbkz = 15985,
-  VPDPWSUDZ256mk = 15986,
-  VPDPWSUDZ256mkz = 15987,
-  VPDPWSUDZ256r = 15988,
-  VPDPWSUDZ256rk = 15989,
-  VPDPWSUDZ256rkz = 15990,
-  VPDPWSUDZm = 15991,
-  VPDPWSUDZmb = 15992,
-  VPDPWSUDZmbk = 15993,
-  VPDPWSUDZmbkz = 15994,
-  VPDPWSUDZmk = 15995,
-  VPDPWSUDZmkz = 15996,
-  VPDPWSUDZr = 15997,
-  VPDPWSUDZrk = 15998,
-  VPDPWSUDZrkz = 15999,
-  VPDPWSUDrm = 16000,
-  VPDPWSUDrr = 16001,
-  VPDPWUSDSYrm = 16002,
-  VPDPWUSDSYrr = 16003,
-  VPDPWUSDSZ128m = 16004,
-  VPDPWUSDSZ128mb = 16005,
-  VPDPWUSDSZ128mbk = 16006,
-  VPDPWUSDSZ128mbkz = 16007,
-  VPDPWUSDSZ128mk = 16008,
-  VPDPWUSDSZ128mkz = 16009,
-  VPDPWUSDSZ128r = 16010,
-  VPDPWUSDSZ128rk = 16011,
-  VPDPWUSDSZ128rkz = 16012,
-  VPDPWUSDSZ256m = 16013,
-  VPDPWUSDSZ256mb = 16014,
-  VPDPWUSDSZ256mbk = 16015,
-  VPDPWUSDSZ256mbkz = 16016,
-  VPDPWUSDSZ256mk = 16017,
-  VPDPWUSDSZ256mkz = 16018,
-  VPDPWUSDSZ256r = 16019,
-  VPDPWUSDSZ256rk = 16020,
-  VPDPWUSDSZ256rkz = 16021,
-  VPDPWUSDSZm = 16022,
-  VPDPWUSDSZmb = 16023,
-  VPDPWUSDSZmbk = 16024,
-  VPDPWUSDSZmbkz = 16025,
-  VPDPWUSDSZmk = 16026,
-  VPDPWUSDSZmkz = 16027,
-  VPDPWUSDSZr = 16028,
-  VPDPWUSDSZrk = 16029,
-  VPDPWUSDSZrkz = 16030,
-  VPDPWUSDSrm = 16031,
-  VPDPWUSDSrr = 16032,
-  VPDPWUSDYrm = 16033,
-  VPDPWUSDYrr = 16034,
-  VPDPWUSDZ128m = 16035,
-  VPDPWUSDZ128mb = 16036,
-  VPDPWUSDZ128mbk = 16037,
-  VPDPWUSDZ128mbkz = 16038,
-  VPDPWUSDZ128mk = 16039,
-  VPDPWUSDZ128mkz = 16040,
-  VPDPWUSDZ128r = 16041,
-  VPDPWUSDZ128rk = 16042,
-  VPDPWUSDZ128rkz = 16043,
-  VPDPWUSDZ256m = 16044,
-  VPDPWUSDZ256mb = 16045,
-  VPDPWUSDZ256mbk = 16046,
-  VPDPWUSDZ256mbkz = 16047,
-  VPDPWUSDZ256mk = 16048,
-  VPDPWUSDZ256mkz = 16049,
-  VPDPWUSDZ256r = 16050,
-  VPDPWUSDZ256rk = 16051,
-  VPDPWUSDZ256rkz = 16052,
-  VPDPWUSDZm = 16053,
-  VPDPWUSDZmb = 16054,
-  VPDPWUSDZmbk = 16055,
-  VPDPWUSDZmbkz = 16056,
-  VPDPWUSDZmk = 16057,
-  VPDPWUSDZmkz = 16058,
-  VPDPWUSDZr = 16059,
-  VPDPWUSDZrk = 16060,
-  VPDPWUSDZrkz = 16061,
-  VPDPWUSDrm = 16062,
-  VPDPWUSDrr = 16063,
-  VPDPWUUDSYrm = 16064,
-  VPDPWUUDSYrr = 16065,
-  VPDPWUUDSZ128m = 16066,
-  VPDPWUUDSZ128mb = 16067,
-  VPDPWUUDSZ128mbk = 16068,
-  VPDPWUUDSZ128mbkz = 16069,
-  VPDPWUUDSZ128mk = 16070,
-  VPDPWUUDSZ128mkz = 16071,
-  VPDPWUUDSZ128r = 16072,
-  VPDPWUUDSZ128rk = 16073,
-  VPDPWUUDSZ128rkz = 16074,
-  VPDPWUUDSZ256m = 16075,
-  VPDPWUUDSZ256mb = 16076,
-  VPDPWUUDSZ256mbk = 16077,
-  VPDPWUUDSZ256mbkz = 16078,
-  VPDPWUUDSZ256mk = 16079,
-  VPDPWUUDSZ256mkz = 16080,
-  VPDPWUUDSZ256r = 16081,
-  VPDPWUUDSZ256rk = 16082,
-  VPDPWUUDSZ256rkz = 16083,
-  VPDPWUUDSZm = 16084,
-  VPDPWUUDSZmb = 16085,
-  VPDPWUUDSZmbk = 16086,
-  VPDPWUUDSZmbkz = 16087,
-  VPDPWUUDSZmk = 16088,
-  VPDPWUUDSZmkz = 16089,
-  VPDPWUUDSZr = 16090,
-  VPDPWUUDSZrk = 16091,
-  VPDPWUUDSZrkz = 16092,
-  VPDPWUUDSrm = 16093,
-  VPDPWUUDSrr = 16094,
-  VPDPWUUDYrm = 16095,
-  VPDPWUUDYrr = 16096,
-  VPDPWUUDZ128m = 16097,
-  VPDPWUUDZ128mb = 16098,
-  VPDPWUUDZ128mbk = 16099,
-  VPDPWUUDZ128mbkz = 16100,
-  VPDPWUUDZ128mk = 16101,
-  VPDPWUUDZ128mkz = 16102,
-  VPDPWUUDZ128r = 16103,
-  VPDPWUUDZ128rk = 16104,
-  VPDPWUUDZ128rkz = 16105,
-  VPDPWUUDZ256m = 16106,
-  VPDPWUUDZ256mb = 16107,
-  VPDPWUUDZ256mbk = 16108,
-  VPDPWUUDZ256mbkz = 16109,
-  VPDPWUUDZ256mk = 16110,
-  VPDPWUUDZ256mkz = 16111,
-  VPDPWUUDZ256r = 16112,
-  VPDPWUUDZ256rk = 16113,
-  VPDPWUUDZ256rkz = 16114,
-  VPDPWUUDZm = 16115,
-  VPDPWUUDZmb = 16116,
-  VPDPWUUDZmbk = 16117,
-  VPDPWUUDZmbkz = 16118,
-  VPDPWUUDZmk = 16119,
-  VPDPWUUDZmkz = 16120,
-  VPDPWUUDZr = 16121,
-  VPDPWUUDZrk = 16122,
-  VPDPWUUDZrkz = 16123,
-  VPDPWUUDrm = 16124,
-  VPDPWUUDrr = 16125,
-  VPERM2F128rmi = 16126,
-  VPERM2F128rri = 16127,
-  VPERM2I128rmi = 16128,
-  VPERM2I128rri = 16129,
-  VPERMBZ128rm = 16130,
-  VPERMBZ128rmk = 16131,
-  VPERMBZ128rmkz = 16132,
-  VPERMBZ128rr = 16133,
-  VPERMBZ128rrk = 16134,
-  VPERMBZ128rrkz = 16135,
-  VPERMBZ256rm = 16136,
-  VPERMBZ256rmk = 16137,
-  VPERMBZ256rmkz = 16138,
-  VPERMBZ256rr = 16139,
-  VPERMBZ256rrk = 16140,
-  VPERMBZ256rrkz = 16141,
-  VPERMBZrm = 16142,
-  VPERMBZrmk = 16143,
-  VPERMBZrmkz = 16144,
-  VPERMBZrr = 16145,
-  VPERMBZrrk = 16146,
-  VPERMBZrrkz = 16147,
-  VPERMDYrm = 16148,
-  VPERMDYrr = 16149,
-  VPERMDZ256rm = 16150,
-  VPERMDZ256rmb = 16151,
-  VPERMDZ256rmbk = 16152,
-  VPERMDZ256rmbkz = 16153,
-  VPERMDZ256rmk = 16154,
-  VPERMDZ256rmkz = 16155,
-  VPERMDZ256rr = 16156,
-  VPERMDZ256rrk = 16157,
-  VPERMDZ256rrkz = 16158,
-  VPERMDZrm = 16159,
-  VPERMDZrmb = 16160,
-  VPERMDZrmbk = 16161,
-  VPERMDZrmbkz = 16162,
-  VPERMDZrmk = 16163,
-  VPERMDZrmkz = 16164,
-  VPERMDZrr = 16165,
-  VPERMDZrrk = 16166,
-  VPERMDZrrkz = 16167,
-  VPERMI2BZ128rm = 16168,
-  VPERMI2BZ128rmk = 16169,
-  VPERMI2BZ128rmkz = 16170,
-  VPERMI2BZ128rr = 16171,
-  VPERMI2BZ128rrk = 16172,
-  VPERMI2BZ128rrkz = 16173,
-  VPERMI2BZ256rm = 16174,
-  VPERMI2BZ256rmk = 16175,
-  VPERMI2BZ256rmkz = 16176,
-  VPERMI2BZ256rr = 16177,
-  VPERMI2BZ256rrk = 16178,
-  VPERMI2BZ256rrkz = 16179,
-  VPERMI2BZrm = 16180,
-  VPERMI2BZrmk = 16181,
-  VPERMI2BZrmkz = 16182,
-  VPERMI2BZrr = 16183,
-  VPERMI2BZrrk = 16184,
-  VPERMI2BZrrkz = 16185,
-  VPERMI2DZ128rm = 16186,
-  VPERMI2DZ128rmb = 16187,
-  VPERMI2DZ128rmbk = 16188,
-  VPERMI2DZ128rmbkz = 16189,
-  VPERMI2DZ128rmk = 16190,
-  VPERMI2DZ128rmkz = 16191,
-  VPERMI2DZ128rr = 16192,
-  VPERMI2DZ128rrk = 16193,
-  VPERMI2DZ128rrkz = 16194,
-  VPERMI2DZ256rm = 16195,
-  VPERMI2DZ256rmb = 16196,
-  VPERMI2DZ256rmbk = 16197,
-  VPERMI2DZ256rmbkz = 16198,
-  VPERMI2DZ256rmk = 16199,
-  VPERMI2DZ256rmkz = 16200,
-  VPERMI2DZ256rr = 16201,
-  VPERMI2DZ256rrk = 16202,
-  VPERMI2DZ256rrkz = 16203,
-  VPERMI2DZrm = 16204,
-  VPERMI2DZrmb = 16205,
-  VPERMI2DZrmbk = 16206,
-  VPERMI2DZrmbkz = 16207,
-  VPERMI2DZrmk = 16208,
-  VPERMI2DZrmkz = 16209,
-  VPERMI2DZrr = 16210,
-  VPERMI2DZrrk = 16211,
-  VPERMI2DZrrkz = 16212,
-  VPERMI2PDZ128rm = 16213,
-  VPERMI2PDZ128rmb = 16214,
-  VPERMI2PDZ128rmbk = 16215,
-  VPERMI2PDZ128rmbkz = 16216,
-  VPERMI2PDZ128rmk = 16217,
-  VPERMI2PDZ128rmkz = 16218,
-  VPERMI2PDZ128rr = 16219,
-  VPERMI2PDZ128rrk = 16220,
-  VPERMI2PDZ128rrkz = 16221,
-  VPERMI2PDZ256rm = 16222,
-  VPERMI2PDZ256rmb = 16223,
-  VPERMI2PDZ256rmbk = 16224,
-  VPERMI2PDZ256rmbkz = 16225,
-  VPERMI2PDZ256rmk = 16226,
-  VPERMI2PDZ256rmkz = 16227,
-  VPERMI2PDZ256rr = 16228,
-  VPERMI2PDZ256rrk = 16229,
-  VPERMI2PDZ256rrkz = 16230,
-  VPERMI2PDZrm = 16231,
-  VPERMI2PDZrmb = 16232,
-  VPERMI2PDZrmbk = 16233,
-  VPERMI2PDZrmbkz = 16234,
-  VPERMI2PDZrmk = 16235,
-  VPERMI2PDZrmkz = 16236,
-  VPERMI2PDZrr = 16237,
-  VPERMI2PDZrrk = 16238,
-  VPERMI2PDZrrkz = 16239,
-  VPERMI2PSZ128rm = 16240,
-  VPERMI2PSZ128rmb = 16241,
-  VPERMI2PSZ128rmbk = 16242,
-  VPERMI2PSZ128rmbkz = 16243,
-  VPERMI2PSZ128rmk = 16244,
-  VPERMI2PSZ128rmkz = 16245,
-  VPERMI2PSZ128rr = 16246,
-  VPERMI2PSZ128rrk = 16247,
-  VPERMI2PSZ128rrkz = 16248,
-  VPERMI2PSZ256rm = 16249,
-  VPERMI2PSZ256rmb = 16250,
-  VPERMI2PSZ256rmbk = 16251,
-  VPERMI2PSZ256rmbkz = 16252,
-  VPERMI2PSZ256rmk = 16253,
-  VPERMI2PSZ256rmkz = 16254,
-  VPERMI2PSZ256rr = 16255,
-  VPERMI2PSZ256rrk = 16256,
-  VPERMI2PSZ256rrkz = 16257,
-  VPERMI2PSZrm = 16258,
-  VPERMI2PSZrmb = 16259,
-  VPERMI2PSZrmbk = 16260,
-  VPERMI2PSZrmbkz = 16261,
-  VPERMI2PSZrmk = 16262,
-  VPERMI2PSZrmkz = 16263,
-  VPERMI2PSZrr = 16264,
-  VPERMI2PSZrrk = 16265,
-  VPERMI2PSZrrkz = 16266,
-  VPERMI2QZ128rm = 16267,
-  VPERMI2QZ128rmb = 16268,
-  VPERMI2QZ128rmbk = 16269,
-  VPERMI2QZ128rmbkz = 16270,
-  VPERMI2QZ128rmk = 16271,
-  VPERMI2QZ128rmkz = 16272,
-  VPERMI2QZ128rr = 16273,
-  VPERMI2QZ128rrk = 16274,
-  VPERMI2QZ128rrkz = 16275,
-  VPERMI2QZ256rm = 16276,
-  VPERMI2QZ256rmb = 16277,
-  VPERMI2QZ256rmbk = 16278,
-  VPERMI2QZ256rmbkz = 16279,
-  VPERMI2QZ256rmk = 16280,
-  VPERMI2QZ256rmkz = 16281,
-  VPERMI2QZ256rr = 16282,
-  VPERMI2QZ256rrk = 16283,
-  VPERMI2QZ256rrkz = 16284,
-  VPERMI2QZrm = 16285,
-  VPERMI2QZrmb = 16286,
-  VPERMI2QZrmbk = 16287,
-  VPERMI2QZrmbkz = 16288,
-  VPERMI2QZrmk = 16289,
-  VPERMI2QZrmkz = 16290,
-  VPERMI2QZrr = 16291,
-  VPERMI2QZrrk = 16292,
-  VPERMI2QZrrkz = 16293,
-  VPERMI2WZ128rm = 16294,
-  VPERMI2WZ128rmk = 16295,
-  VPERMI2WZ128rmkz = 16296,
-  VPERMI2WZ128rr = 16297,
-  VPERMI2WZ128rrk = 16298,
-  VPERMI2WZ128rrkz = 16299,
-  VPERMI2WZ256rm = 16300,
-  VPERMI2WZ256rmk = 16301,
-  VPERMI2WZ256rmkz = 16302,
-  VPERMI2WZ256rr = 16303,
-  VPERMI2WZ256rrk = 16304,
-  VPERMI2WZ256rrkz = 16305,
-  VPERMI2WZrm = 16306,
-  VPERMI2WZrmk = 16307,
-  VPERMI2WZrmkz = 16308,
-  VPERMI2WZrr = 16309,
-  VPERMI2WZrrk = 16310,
-  VPERMI2WZrrkz = 16311,
-  VPERMIL2PDYmr = 16312,
-  VPERMIL2PDYrm = 16313,
-  VPERMIL2PDYrr = 16314,
-  VPERMIL2PDYrr_REV = 16315,
-  VPERMIL2PDmr = 16316,
-  VPERMIL2PDrm = 16317,
-  VPERMIL2PDrr = 16318,
-  VPERMIL2PDrr_REV = 16319,
-  VPERMIL2PSYmr = 16320,
-  VPERMIL2PSYrm = 16321,
-  VPERMIL2PSYrr = 16322,
-  VPERMIL2PSYrr_REV = 16323,
-  VPERMIL2PSmr = 16324,
-  VPERMIL2PSrm = 16325,
-  VPERMIL2PSrr = 16326,
-  VPERMIL2PSrr_REV = 16327,
-  VPERMILPDYmi = 16328,
-  VPERMILPDYri = 16329,
-  VPERMILPDYrm = 16330,
-  VPERMILPDYrr = 16331,
-  VPERMILPDZ128mbi = 16332,
-  VPERMILPDZ128mbik = 16333,
-  VPERMILPDZ128mbikz = 16334,
-  VPERMILPDZ128mi = 16335,
-  VPERMILPDZ128mik = 16336,
-  VPERMILPDZ128mikz = 16337,
-  VPERMILPDZ128ri = 16338,
-  VPERMILPDZ128rik = 16339,
-  VPERMILPDZ128rikz = 16340,
-  VPERMILPDZ128rm = 16341,
-  VPERMILPDZ128rmb = 16342,
-  VPERMILPDZ128rmbk = 16343,
-  VPERMILPDZ128rmbkz = 16344,
-  VPERMILPDZ128rmk = 16345,
-  VPERMILPDZ128rmkz = 16346,
-  VPERMILPDZ128rr = 16347,
-  VPERMILPDZ128rrk = 16348,
-  VPERMILPDZ128rrkz = 16349,
-  VPERMILPDZ256mbi = 16350,
-  VPERMILPDZ256mbik = 16351,
-  VPERMILPDZ256mbikz = 16352,
-  VPERMILPDZ256mi = 16353,
-  VPERMILPDZ256mik = 16354,
-  VPERMILPDZ256mikz = 16355,
-  VPERMILPDZ256ri = 16356,
-  VPERMILPDZ256rik = 16357,
-  VPERMILPDZ256rikz = 16358,
-  VPERMILPDZ256rm = 16359,
-  VPERMILPDZ256rmb = 16360,
-  VPERMILPDZ256rmbk = 16361,
-  VPERMILPDZ256rmbkz = 16362,
-  VPERMILPDZ256rmk = 16363,
-  VPERMILPDZ256rmkz = 16364,
-  VPERMILPDZ256rr = 16365,
-  VPERMILPDZ256rrk = 16366,
-  VPERMILPDZ256rrkz = 16367,
-  VPERMILPDZmbi = 16368,
-  VPERMILPDZmbik = 16369,
-  VPERMILPDZmbikz = 16370,
-  VPERMILPDZmi = 16371,
-  VPERMILPDZmik = 16372,
-  VPERMILPDZmikz = 16373,
-  VPERMILPDZri = 16374,
-  VPERMILPDZrik = 16375,
-  VPERMILPDZrikz = 16376,
-  VPERMILPDZrm = 16377,
-  VPERMILPDZrmb = 16378,
-  VPERMILPDZrmbk = 16379,
-  VPERMILPDZrmbkz = 16380,
-  VPERMILPDZrmk = 16381,
-  VPERMILPDZrmkz = 16382,
-  VPERMILPDZrr = 16383,
-  VPERMILPDZrrk = 16384,
-  VPERMILPDZrrkz = 16385,
-  VPERMILPDmi = 16386,
-  VPERMILPDri = 16387,
-  VPERMILPDrm = 16388,
-  VPERMILPDrr = 16389,
-  VPERMILPSYmi = 16390,
-  VPERMILPSYri = 16391,
-  VPERMILPSYrm = 16392,
-  VPERMILPSYrr = 16393,
-  VPERMILPSZ128mbi = 16394,
-  VPERMILPSZ128mbik = 16395,
-  VPERMILPSZ128mbikz = 16396,
-  VPERMILPSZ128mi = 16397,
-  VPERMILPSZ128mik = 16398,
-  VPERMILPSZ128mikz = 16399,
-  VPERMILPSZ128ri = 16400,
-  VPERMILPSZ128rik = 16401,
-  VPERMILPSZ128rikz = 16402,
-  VPERMILPSZ128rm = 16403,
-  VPERMILPSZ128rmb = 16404,
-  VPERMILPSZ128rmbk = 16405,
-  VPERMILPSZ128rmbkz = 16406,
-  VPERMILPSZ128rmk = 16407,
-  VPERMILPSZ128rmkz = 16408,
-  VPERMILPSZ128rr = 16409,
-  VPERMILPSZ128rrk = 16410,
-  VPERMILPSZ128rrkz = 16411,
-  VPERMILPSZ256mbi = 16412,
-  VPERMILPSZ256mbik = 16413,
-  VPERMILPSZ256mbikz = 16414,
-  VPERMILPSZ256mi = 16415,
-  VPERMILPSZ256mik = 16416,
-  VPERMILPSZ256mikz = 16417,
-  VPERMILPSZ256ri = 16418,
-  VPERMILPSZ256rik = 16419,
-  VPERMILPSZ256rikz = 16420,
-  VPERMILPSZ256rm = 16421,
-  VPERMILPSZ256rmb = 16422,
-  VPERMILPSZ256rmbk = 16423,
-  VPERMILPSZ256rmbkz = 16424,
-  VPERMILPSZ256rmk = 16425,
-  VPERMILPSZ256rmkz = 16426,
-  VPERMILPSZ256rr = 16427,
-  VPERMILPSZ256rrk = 16428,
-  VPERMILPSZ256rrkz = 16429,
-  VPERMILPSZmbi = 16430,
-  VPERMILPSZmbik = 16431,
-  VPERMILPSZmbikz = 16432,
-  VPERMILPSZmi = 16433,
-  VPERMILPSZmik = 16434,
-  VPERMILPSZmikz = 16435,
-  VPERMILPSZri = 16436,
-  VPERMILPSZrik = 16437,
-  VPERMILPSZrikz = 16438,
-  VPERMILPSZrm = 16439,
-  VPERMILPSZrmb = 16440,
-  VPERMILPSZrmbk = 16441,
-  VPERMILPSZrmbkz = 16442,
-  VPERMILPSZrmk = 16443,
-  VPERMILPSZrmkz = 16444,
-  VPERMILPSZrr = 16445,
-  VPERMILPSZrrk = 16446,
-  VPERMILPSZrrkz = 16447,
-  VPERMILPSmi = 16448,
-  VPERMILPSri = 16449,
-  VPERMILPSrm = 16450,
-  VPERMILPSrr = 16451,
-  VPERMPDYmi = 16452,
-  VPERMPDYri = 16453,
-  VPERMPDZ256mbi = 16454,
-  VPERMPDZ256mbik = 16455,
-  VPERMPDZ256mbikz = 16456,
-  VPERMPDZ256mi = 16457,
-  VPERMPDZ256mik = 16458,
-  VPERMPDZ256mikz = 16459,
-  VPERMPDZ256ri = 16460,
-  VPERMPDZ256rik = 16461,
-  VPERMPDZ256rikz = 16462,
-  VPERMPDZ256rm = 16463,
-  VPERMPDZ256rmb = 16464,
-  VPERMPDZ256rmbk = 16465,
-  VPERMPDZ256rmbkz = 16466,
-  VPERMPDZ256rmk = 16467,
-  VPERMPDZ256rmkz = 16468,
-  VPERMPDZ256rr = 16469,
-  VPERMPDZ256rrk = 16470,
-  VPERMPDZ256rrkz = 16471,
-  VPERMPDZmbi = 16472,
-  VPERMPDZmbik = 16473,
-  VPERMPDZmbikz = 16474,
-  VPERMPDZmi = 16475,
-  VPERMPDZmik = 16476,
-  VPERMPDZmikz = 16477,
-  VPERMPDZri = 16478,
-  VPERMPDZrik = 16479,
-  VPERMPDZrikz = 16480,
-  VPERMPDZrm = 16481,
-  VPERMPDZrmb = 16482,
-  VPERMPDZrmbk = 16483,
-  VPERMPDZrmbkz = 16484,
-  VPERMPDZrmk = 16485,
-  VPERMPDZrmkz = 16486,
-  VPERMPDZrr = 16487,
-  VPERMPDZrrk = 16488,
-  VPERMPDZrrkz = 16489,
-  VPERMPSYrm = 16490,
-  VPERMPSYrr = 16491,
-  VPERMPSZ256rm = 16492,
-  VPERMPSZ256rmb = 16493,
-  VPERMPSZ256rmbk = 16494,
-  VPERMPSZ256rmbkz = 16495,
-  VPERMPSZ256rmk = 16496,
-  VPERMPSZ256rmkz = 16497,
-  VPERMPSZ256rr = 16498,
-  VPERMPSZ256rrk = 16499,
-  VPERMPSZ256rrkz = 16500,
-  VPERMPSZrm = 16501,
-  VPERMPSZrmb = 16502,
-  VPERMPSZrmbk = 16503,
-  VPERMPSZrmbkz = 16504,
-  VPERMPSZrmk = 16505,
-  VPERMPSZrmkz = 16506,
-  VPERMPSZrr = 16507,
-  VPERMPSZrrk = 16508,
-  VPERMPSZrrkz = 16509,
-  VPERMQYmi = 16510,
-  VPERMQYri = 16511,
-  VPERMQZ256mbi = 16512,
-  VPERMQZ256mbik = 16513,
-  VPERMQZ256mbikz = 16514,
-  VPERMQZ256mi = 16515,
-  VPERMQZ256mik = 16516,
-  VPERMQZ256mikz = 16517,
-  VPERMQZ256ri = 16518,
-  VPERMQZ256rik = 16519,
-  VPERMQZ256rikz = 16520,
-  VPERMQZ256rm = 16521,
-  VPERMQZ256rmb = 16522,
-  VPERMQZ256rmbk = 16523,
-  VPERMQZ256rmbkz = 16524,
-  VPERMQZ256rmk = 16525,
-  VPERMQZ256rmkz = 16526,
-  VPERMQZ256rr = 16527,
-  VPERMQZ256rrk = 16528,
-  VPERMQZ256rrkz = 16529,
-  VPERMQZmbi = 16530,
-  VPERMQZmbik = 16531,
-  VPERMQZmbikz = 16532,
-  VPERMQZmi = 16533,
-  VPERMQZmik = 16534,
-  VPERMQZmikz = 16535,
-  VPERMQZri = 16536,
-  VPERMQZrik = 16537,
-  VPERMQZrikz = 16538,
-  VPERMQZrm = 16539,
-  VPERMQZrmb = 16540,
-  VPERMQZrmbk = 16541,
-  VPERMQZrmbkz = 16542,
-  VPERMQZrmk = 16543,
-  VPERMQZrmkz = 16544,
-  VPERMQZrr = 16545,
-  VPERMQZrrk = 16546,
-  VPERMQZrrkz = 16547,
-  VPERMT2BZ128rm = 16548,
-  VPERMT2BZ128rmk = 16549,
-  VPERMT2BZ128rmkz = 16550,
-  VPERMT2BZ128rr = 16551,
-  VPERMT2BZ128rrk = 16552,
-  VPERMT2BZ128rrkz = 16553,
-  VPERMT2BZ256rm = 16554,
-  VPERMT2BZ256rmk = 16555,
-  VPERMT2BZ256rmkz = 16556,
-  VPERMT2BZ256rr = 16557,
-  VPERMT2BZ256rrk = 16558,
-  VPERMT2BZ256rrkz = 16559,
-  VPERMT2BZrm = 16560,
-  VPERMT2BZrmk = 16561,
-  VPERMT2BZrmkz = 16562,
-  VPERMT2BZrr = 16563,
-  VPERMT2BZrrk = 16564,
-  VPERMT2BZrrkz = 16565,
-  VPERMT2DZ128rm = 16566,
-  VPERMT2DZ128rmb = 16567,
-  VPERMT2DZ128rmbk = 16568,
-  VPERMT2DZ128rmbkz = 16569,
-  VPERMT2DZ128rmk = 16570,
-  VPERMT2DZ128rmkz = 16571,
-  VPERMT2DZ128rr = 16572,
-  VPERMT2DZ128rrk = 16573,
-  VPERMT2DZ128rrkz = 16574,
-  VPERMT2DZ256rm = 16575,
-  VPERMT2DZ256rmb = 16576,
-  VPERMT2DZ256rmbk = 16577,
-  VPERMT2DZ256rmbkz = 16578,
-  VPERMT2DZ256rmk = 16579,
-  VPERMT2DZ256rmkz = 16580,
-  VPERMT2DZ256rr = 16581,
-  VPERMT2DZ256rrk = 16582,
-  VPERMT2DZ256rrkz = 16583,
-  VPERMT2DZrm = 16584,
-  VPERMT2DZrmb = 16585,
-  VPERMT2DZrmbk = 16586,
-  VPERMT2DZrmbkz = 16587,
-  VPERMT2DZrmk = 16588,
-  VPERMT2DZrmkz = 16589,
-  VPERMT2DZrr = 16590,
-  VPERMT2DZrrk = 16591,
-  VPERMT2DZrrkz = 16592,
-  VPERMT2PDZ128rm = 16593,
-  VPERMT2PDZ128rmb = 16594,
-  VPERMT2PDZ128rmbk = 16595,
-  VPERMT2PDZ128rmbkz = 16596,
-  VPERMT2PDZ128rmk = 16597,
-  VPERMT2PDZ128rmkz = 16598,
-  VPERMT2PDZ128rr = 16599,
-  VPERMT2PDZ128rrk = 16600,
-  VPERMT2PDZ128rrkz = 16601,
-  VPERMT2PDZ256rm = 16602,
-  VPERMT2PDZ256rmb = 16603,
-  VPERMT2PDZ256rmbk = 16604,
-  VPERMT2PDZ256rmbkz = 16605,
-  VPERMT2PDZ256rmk = 16606,
-  VPERMT2PDZ256rmkz = 16607,
-  VPERMT2PDZ256rr = 16608,
-  VPERMT2PDZ256rrk = 16609,
-  VPERMT2PDZ256rrkz = 16610,
-  VPERMT2PDZrm = 16611,
-  VPERMT2PDZrmb = 16612,
-  VPERMT2PDZrmbk = 16613,
-  VPERMT2PDZrmbkz = 16614,
-  VPERMT2PDZrmk = 16615,
-  VPERMT2PDZrmkz = 16616,
-  VPERMT2PDZrr = 16617,
-  VPERMT2PDZrrk = 16618,
-  VPERMT2PDZrrkz = 16619,
-  VPERMT2PSZ128rm = 16620,
-  VPERMT2PSZ128rmb = 16621,
-  VPERMT2PSZ128rmbk = 16622,
-  VPERMT2PSZ128rmbkz = 16623,
-  VPERMT2PSZ128rmk = 16624,
-  VPERMT2PSZ128rmkz = 16625,
-  VPERMT2PSZ128rr = 16626,
-  VPERMT2PSZ128rrk = 16627,
-  VPERMT2PSZ128rrkz = 16628,
-  VPERMT2PSZ256rm = 16629,
-  VPERMT2PSZ256rmb = 16630,
-  VPERMT2PSZ256rmbk = 16631,
-  VPERMT2PSZ256rmbkz = 16632,
-  VPERMT2PSZ256rmk = 16633,
-  VPERMT2PSZ256rmkz = 16634,
-  VPERMT2PSZ256rr = 16635,
-  VPERMT2PSZ256rrk = 16636,
-  VPERMT2PSZ256rrkz = 16637,
-  VPERMT2PSZrm = 16638,
-  VPERMT2PSZrmb = 16639,
-  VPERMT2PSZrmbk = 16640,
-  VPERMT2PSZrmbkz = 16641,
-  VPERMT2PSZrmk = 16642,
-  VPERMT2PSZrmkz = 16643,
-  VPERMT2PSZrr = 16644,
-  VPERMT2PSZrrk = 16645,
-  VPERMT2PSZrrkz = 16646,
-  VPERMT2QZ128rm = 16647,
-  VPERMT2QZ128rmb = 16648,
-  VPERMT2QZ128rmbk = 16649,
-  VPERMT2QZ128rmbkz = 16650,
-  VPERMT2QZ128rmk = 16651,
-  VPERMT2QZ128rmkz = 16652,
-  VPERMT2QZ128rr = 16653,
-  VPERMT2QZ128rrk = 16654,
-  VPERMT2QZ128rrkz = 16655,
-  VPERMT2QZ256rm = 16656,
-  VPERMT2QZ256rmb = 16657,
-  VPERMT2QZ256rmbk = 16658,
-  VPERMT2QZ256rmbkz = 16659,
-  VPERMT2QZ256rmk = 16660,
-  VPERMT2QZ256rmkz = 16661,
-  VPERMT2QZ256rr = 16662,
-  VPERMT2QZ256rrk = 16663,
-  VPERMT2QZ256rrkz = 16664,
-  VPERMT2QZrm = 16665,
-  VPERMT2QZrmb = 16666,
-  VPERMT2QZrmbk = 16667,
-  VPERMT2QZrmbkz = 16668,
-  VPERMT2QZrmk = 16669,
-  VPERMT2QZrmkz = 16670,
-  VPERMT2QZrr = 16671,
-  VPERMT2QZrrk = 16672,
-  VPERMT2QZrrkz = 16673,
-  VPERMT2WZ128rm = 16674,
-  VPERMT2WZ128rmk = 16675,
-  VPERMT2WZ128rmkz = 16676,
-  VPERMT2WZ128rr = 16677,
-  VPERMT2WZ128rrk = 16678,
-  VPERMT2WZ128rrkz = 16679,
-  VPERMT2WZ256rm = 16680,
-  VPERMT2WZ256rmk = 16681,
-  VPERMT2WZ256rmkz = 16682,
-  VPERMT2WZ256rr = 16683,
-  VPERMT2WZ256rrk = 16684,
-  VPERMT2WZ256rrkz = 16685,
-  VPERMT2WZrm = 16686,
-  VPERMT2WZrmk = 16687,
-  VPERMT2WZrmkz = 16688,
-  VPERMT2WZrr = 16689,
-  VPERMT2WZrrk = 16690,
-  VPERMT2WZrrkz = 16691,
-  VPERMWZ128rm = 16692,
-  VPERMWZ128rmk = 16693,
-  VPERMWZ128rmkz = 16694,
-  VPERMWZ128rr = 16695,
-  VPERMWZ128rrk = 16696,
-  VPERMWZ128rrkz = 16697,
-  VPERMWZ256rm = 16698,
-  VPERMWZ256rmk = 16699,
-  VPERMWZ256rmkz = 16700,
-  VPERMWZ256rr = 16701,
-  VPERMWZ256rrk = 16702,
-  VPERMWZ256rrkz = 16703,
-  VPERMWZrm = 16704,
-  VPERMWZrmk = 16705,
-  VPERMWZrmkz = 16706,
-  VPERMWZrr = 16707,
-  VPERMWZrrk = 16708,
-  VPERMWZrrkz = 16709,
-  VPEXPANDBZ128rm = 16710,
-  VPEXPANDBZ128rmk = 16711,
-  VPEXPANDBZ128rmkz = 16712,
-  VPEXPANDBZ128rr = 16713,
-  VPEXPANDBZ128rrk = 16714,
-  VPEXPANDBZ128rrkz = 16715,
-  VPEXPANDBZ256rm = 16716,
-  VPEXPANDBZ256rmk = 16717,
-  VPEXPANDBZ256rmkz = 16718,
-  VPEXPANDBZ256rr = 16719,
-  VPEXPANDBZ256rrk = 16720,
-  VPEXPANDBZ256rrkz = 16721,
-  VPEXPANDBZrm = 16722,
-  VPEXPANDBZrmk = 16723,
-  VPEXPANDBZrmkz = 16724,
-  VPEXPANDBZrr = 16725,
-  VPEXPANDBZrrk = 16726,
-  VPEXPANDBZrrkz = 16727,
-  VPEXPANDDZ128rm = 16728,
-  VPEXPANDDZ128rmk = 16729,
-  VPEXPANDDZ128rmkz = 16730,
-  VPEXPANDDZ128rr = 16731,
-  VPEXPANDDZ128rrk = 16732,
-  VPEXPANDDZ128rrkz = 16733,
-  VPEXPANDDZ256rm = 16734,
-  VPEXPANDDZ256rmk = 16735,
-  VPEXPANDDZ256rmkz = 16736,
-  VPEXPANDDZ256rr = 16737,
-  VPEXPANDDZ256rrk = 16738,
-  VPEXPANDDZ256rrkz = 16739,
-  VPEXPANDDZrm = 16740,
-  VPEXPANDDZrmk = 16741,
-  VPEXPANDDZrmkz = 16742,
-  VPEXPANDDZrr = 16743,
-  VPEXPANDDZrrk = 16744,
-  VPEXPANDDZrrkz = 16745,
-  VPEXPANDQZ128rm = 16746,
-  VPEXPANDQZ128rmk = 16747,
-  VPEXPANDQZ128rmkz = 16748,
-  VPEXPANDQZ128rr = 16749,
-  VPEXPANDQZ128rrk = 16750,
-  VPEXPANDQZ128rrkz = 16751,
-  VPEXPANDQZ256rm = 16752,
-  VPEXPANDQZ256rmk = 16753,
-  VPEXPANDQZ256rmkz = 16754,
-  VPEXPANDQZ256rr = 16755,
-  VPEXPANDQZ256rrk = 16756,
-  VPEXPANDQZ256rrkz = 16757,
-  VPEXPANDQZrm = 16758,
-  VPEXPANDQZrmk = 16759,
-  VPEXPANDQZrmkz = 16760,
-  VPEXPANDQZrr = 16761,
-  VPEXPANDQZrrk = 16762,
-  VPEXPANDQZrrkz = 16763,
-  VPEXPANDWZ128rm = 16764,
-  VPEXPANDWZ128rmk = 16765,
-  VPEXPANDWZ128rmkz = 16766,
-  VPEXPANDWZ128rr = 16767,
-  VPEXPANDWZ128rrk = 16768,
-  VPEXPANDWZ128rrkz = 16769,
-  VPEXPANDWZ256rm = 16770,
-  VPEXPANDWZ256rmk = 16771,
-  VPEXPANDWZ256rmkz = 16772,
-  VPEXPANDWZ256rr = 16773,
-  VPEXPANDWZ256rrk = 16774,
-  VPEXPANDWZ256rrkz = 16775,
-  VPEXPANDWZrm = 16776,
-  VPEXPANDWZrmk = 16777,
-  VPEXPANDWZrmkz = 16778,
-  VPEXPANDWZrr = 16779,
-  VPEXPANDWZrrk = 16780,
-  VPEXPANDWZrrkz = 16781,
-  VPEXTRBZmri = 16782,
-  VPEXTRBZrri = 16783,
-  VPEXTRBmri = 16784,
-  VPEXTRBrri = 16785,
-  VPEXTRDZmri = 16786,
-  VPEXTRDZrri = 16787,
-  VPEXTRDmri = 16788,
-  VPEXTRDrri = 16789,
-  VPEXTRQZmri = 16790,
-  VPEXTRQZrri = 16791,
-  VPEXTRQmri = 16792,
-  VPEXTRQrri = 16793,
-  VPEXTRWZmri = 16794,
-  VPEXTRWZrri = 16795,
-  VPEXTRWZrri_REV = 16796,
-  VPEXTRWmri = 16797,
-  VPEXTRWrri = 16798,
-  VPEXTRWrri_REV = 16799,
-  VPGATHERDDYrm = 16800,
-  VPGATHERDDZ128rm = 16801,
-  VPGATHERDDZ256rm = 16802,
-  VPGATHERDDZrm = 16803,
-  VPGATHERDDrm = 16804,
-  VPGATHERDQYrm = 16805,
-  VPGATHERDQZ128rm = 16806,
-  VPGATHERDQZ256rm = 16807,
-  VPGATHERDQZrm = 16808,
-  VPGATHERDQrm = 16809,
-  VPGATHERQDYrm = 16810,
-  VPGATHERQDZ128rm = 16811,
-  VPGATHERQDZ256rm = 16812,
-  VPGATHERQDZrm = 16813,
-  VPGATHERQDrm = 16814,
-  VPGATHERQQYrm = 16815,
-  VPGATHERQQZ128rm = 16816,
-  VPGATHERQQZ256rm = 16817,
-  VPGATHERQQZrm = 16818,
-  VPGATHERQQrm = 16819,
-  VPHADDBDrm = 16820,
-  VPHADDBDrr = 16821,
-  VPHADDBQrm = 16822,
-  VPHADDBQrr = 16823,
-  VPHADDBWrm = 16824,
-  VPHADDBWrr = 16825,
-  VPHADDDQrm = 16826,
-  VPHADDDQrr = 16827,
-  VPHADDDYrm = 16828,
-  VPHADDDYrr = 16829,
-  VPHADDDrm = 16830,
-  VPHADDDrr = 16831,
-  VPHADDSWYrm = 16832,
-  VPHADDSWYrr = 16833,
-  VPHADDSWrm = 16834,
-  VPHADDSWrr = 16835,
-  VPHADDUBDrm = 16836,
-  VPHADDUBDrr = 16837,
-  VPHADDUBQrm = 16838,
-  VPHADDUBQrr = 16839,
-  VPHADDUBWrm = 16840,
-  VPHADDUBWrr = 16841,
-  VPHADDUDQrm = 16842,
-  VPHADDUDQrr = 16843,
-  VPHADDUWDrm = 16844,
-  VPHADDUWDrr = 16845,
-  VPHADDUWQrm = 16846,
-  VPHADDUWQrr = 16847,
-  VPHADDWDrm = 16848,
-  VPHADDWDrr = 16849,
-  VPHADDWQrm = 16850,
-  VPHADDWQrr = 16851,
-  VPHADDWYrm = 16852,
-  VPHADDWYrr = 16853,
-  VPHADDWrm = 16854,
-  VPHADDWrr = 16855,
-  VPHMINPOSUWrm = 16856,
-  VPHMINPOSUWrr = 16857,
-  VPHSUBBWrm = 16858,
-  VPHSUBBWrr = 16859,
-  VPHSUBDQrm = 16860,
-  VPHSUBDQrr = 16861,
-  VPHSUBDYrm = 16862,
-  VPHSUBDYrr = 16863,
-  VPHSUBDrm = 16864,
-  VPHSUBDrr = 16865,
-  VPHSUBSWYrm = 16866,
-  VPHSUBSWYrr = 16867,
-  VPHSUBSWrm = 16868,
-  VPHSUBSWrr = 16869,
-  VPHSUBWDrm = 16870,
-  VPHSUBWDrr = 16871,
-  VPHSUBWYrm = 16872,
-  VPHSUBWYrr = 16873,
-  VPHSUBWrm = 16874,
-  VPHSUBWrr = 16875,
-  VPINSRBZrmi = 16876,
-  VPINSRBZrri = 16877,
-  VPINSRBrmi = 16878,
-  VPINSRBrri = 16879,
-  VPINSRDZrmi = 16880,
-  VPINSRDZrri = 16881,
-  VPINSRDrmi = 16882,
-  VPINSRDrri = 16883,
-  VPINSRQZrmi = 16884,
-  VPINSRQZrri = 16885,
-  VPINSRQrmi = 16886,
-  VPINSRQrri = 16887,
-  VPINSRWZrmi = 16888,
-  VPINSRWZrri = 16889,
-  VPINSRWrmi = 16890,
-  VPINSRWrri = 16891,
-  VPLZCNTDZ128rm = 16892,
-  VPLZCNTDZ128rmb = 16893,
-  VPLZCNTDZ128rmbk = 16894,
-  VPLZCNTDZ128rmbkz = 16895,
-  VPLZCNTDZ128rmk = 16896,
-  VPLZCNTDZ128rmkz = 16897,
-  VPLZCNTDZ128rr = 16898,
-  VPLZCNTDZ128rrk = 16899,
-  VPLZCNTDZ128rrkz = 16900,
-  VPLZCNTDZ256rm = 16901,
-  VPLZCNTDZ256rmb = 16902,
-  VPLZCNTDZ256rmbk = 16903,
-  VPLZCNTDZ256rmbkz = 16904,
-  VPLZCNTDZ256rmk = 16905,
-  VPLZCNTDZ256rmkz = 16906,
-  VPLZCNTDZ256rr = 16907,
-  VPLZCNTDZ256rrk = 16908,
-  VPLZCNTDZ256rrkz = 16909,
-  VPLZCNTDZrm = 16910,
-  VPLZCNTDZrmb = 16911,
-  VPLZCNTDZrmbk = 16912,
-  VPLZCNTDZrmbkz = 16913,
-  VPLZCNTDZrmk = 16914,
-  VPLZCNTDZrmkz = 16915,
-  VPLZCNTDZrr = 16916,
-  VPLZCNTDZrrk = 16917,
-  VPLZCNTDZrrkz = 16918,
-  VPLZCNTQZ128rm = 16919,
-  VPLZCNTQZ128rmb = 16920,
-  VPLZCNTQZ128rmbk = 16921,
-  VPLZCNTQZ128rmbkz = 16922,
-  VPLZCNTQZ128rmk = 16923,
-  VPLZCNTQZ128rmkz = 16924,
-  VPLZCNTQZ128rr = 16925,
-  VPLZCNTQZ128rrk = 16926,
-  VPLZCNTQZ128rrkz = 16927,
-  VPLZCNTQZ256rm = 16928,
-  VPLZCNTQZ256rmb = 16929,
-  VPLZCNTQZ256rmbk = 16930,
-  VPLZCNTQZ256rmbkz = 16931,
-  VPLZCNTQZ256rmk = 16932,
-  VPLZCNTQZ256rmkz = 16933,
-  VPLZCNTQZ256rr = 16934,
-  VPLZCNTQZ256rrk = 16935,
-  VPLZCNTQZ256rrkz = 16936,
-  VPLZCNTQZrm = 16937,
-  VPLZCNTQZrmb = 16938,
-  VPLZCNTQZrmbk = 16939,
-  VPLZCNTQZrmbkz = 16940,
-  VPLZCNTQZrmk = 16941,
-  VPLZCNTQZrmkz = 16942,
-  VPLZCNTQZrr = 16943,
-  VPLZCNTQZrrk = 16944,
-  VPLZCNTQZrrkz = 16945,
-  VPMACSDDrm = 16946,
-  VPMACSDDrr = 16947,
-  VPMACSDQHrm = 16948,
-  VPMACSDQHrr = 16949,
-  VPMACSDQLrm = 16950,
-  VPMACSDQLrr = 16951,
-  VPMACSSDDrm = 16952,
-  VPMACSSDDrr = 16953,
-  VPMACSSDQHrm = 16954,
-  VPMACSSDQHrr = 16955,
-  VPMACSSDQLrm = 16956,
-  VPMACSSDQLrr = 16957,
-  VPMACSSWDrm = 16958,
-  VPMACSSWDrr = 16959,
-  VPMACSSWWrm = 16960,
-  VPMACSSWWrr = 16961,
-  VPMACSWDrm = 16962,
-  VPMACSWDrr = 16963,
-  VPMACSWWrm = 16964,
-  VPMACSWWrr = 16965,
-  VPMADCSSWDrm = 16966,
-  VPMADCSSWDrr = 16967,
-  VPMADCSWDrm = 16968,
-  VPMADCSWDrr = 16969,
-  VPMADD52HUQYrm = 16970,
-  VPMADD52HUQYrr = 16971,
-  VPMADD52HUQZ128m = 16972,
-  VPMADD52HUQZ128mb = 16973,
-  VPMADD52HUQZ128mbk = 16974,
-  VPMADD52HUQZ128mbkz = 16975,
-  VPMADD52HUQZ128mk = 16976,
-  VPMADD52HUQZ128mkz = 16977,
-  VPMADD52HUQZ128r = 16978,
-  VPMADD52HUQZ128rk = 16979,
-  VPMADD52HUQZ128rkz = 16980,
-  VPMADD52HUQZ256m = 16981,
-  VPMADD52HUQZ256mb = 16982,
-  VPMADD52HUQZ256mbk = 16983,
-  VPMADD52HUQZ256mbkz = 16984,
-  VPMADD52HUQZ256mk = 16985,
-  VPMADD52HUQZ256mkz = 16986,
-  VPMADD52HUQZ256r = 16987,
-  VPMADD52HUQZ256rk = 16988,
-  VPMADD52HUQZ256rkz = 16989,
-  VPMADD52HUQZm = 16990,
-  VPMADD52HUQZmb = 16991,
-  VPMADD52HUQZmbk = 16992,
-  VPMADD52HUQZmbkz = 16993,
-  VPMADD52HUQZmk = 16994,
-  VPMADD52HUQZmkz = 16995,
-  VPMADD52HUQZr = 16996,
-  VPMADD52HUQZrk = 16997,
-  VPMADD52HUQZrkz = 16998,
-  VPMADD52HUQrm = 16999,
-  VPMADD52HUQrr = 17000,
-  VPMADD52LUQYrm = 17001,
-  VPMADD52LUQYrr = 17002,
-  VPMADD52LUQZ128m = 17003,
-  VPMADD52LUQZ128mb = 17004,
-  VPMADD52LUQZ128mbk = 17005,
-  VPMADD52LUQZ128mbkz = 17006,
-  VPMADD52LUQZ128mk = 17007,
-  VPMADD52LUQZ128mkz = 17008,
-  VPMADD52LUQZ128r = 17009,
-  VPMADD52LUQZ128rk = 17010,
-  VPMADD52LUQZ128rkz = 17011,
-  VPMADD52LUQZ256m = 17012,
-  VPMADD52LUQZ256mb = 17013,
-  VPMADD52LUQZ256mbk = 17014,
-  VPMADD52LUQZ256mbkz = 17015,
-  VPMADD52LUQZ256mk = 17016,
-  VPMADD52LUQZ256mkz = 17017,
-  VPMADD52LUQZ256r = 17018,
-  VPMADD52LUQZ256rk = 17019,
-  VPMADD52LUQZ256rkz = 17020,
-  VPMADD52LUQZm = 17021,
-  VPMADD52LUQZmb = 17022,
-  VPMADD52LUQZmbk = 17023,
-  VPMADD52LUQZmbkz = 17024,
-  VPMADD52LUQZmk = 17025,
-  VPMADD52LUQZmkz = 17026,
-  VPMADD52LUQZr = 17027,
-  VPMADD52LUQZrk = 17028,
-  VPMADD52LUQZrkz = 17029,
-  VPMADD52LUQrm = 17030,
-  VPMADD52LUQrr = 17031,
-  VPMADDUBSWYrm = 17032,
-  VPMADDUBSWYrr = 17033,
-  VPMADDUBSWZ128rm = 17034,
-  VPMADDUBSWZ128rmk = 17035,
-  VPMADDUBSWZ128rmkz = 17036,
-  VPMADDUBSWZ128rr = 17037,
-  VPMADDUBSWZ128rrk = 17038,
-  VPMADDUBSWZ128rrkz = 17039,
-  VPMADDUBSWZ256rm = 17040,
-  VPMADDUBSWZ256rmk = 17041,
-  VPMADDUBSWZ256rmkz = 17042,
-  VPMADDUBSWZ256rr = 17043,
-  VPMADDUBSWZ256rrk = 17044,
-  VPMADDUBSWZ256rrkz = 17045,
-  VPMADDUBSWZrm = 17046,
-  VPMADDUBSWZrmk = 17047,
-  VPMADDUBSWZrmkz = 17048,
-  VPMADDUBSWZrr = 17049,
-  VPMADDUBSWZrrk = 17050,
-  VPMADDUBSWZrrkz = 17051,
-  VPMADDUBSWrm = 17052,
-  VPMADDUBSWrr = 17053,
-  VPMADDWDYrm = 17054,
-  VPMADDWDYrr = 17055,
-  VPMADDWDZ128rm = 17056,
-  VPMADDWDZ128rmk = 17057,
-  VPMADDWDZ128rmkz = 17058,
-  VPMADDWDZ128rr = 17059,
-  VPMADDWDZ128rrk = 17060,
-  VPMADDWDZ128rrkz = 17061,
-  VPMADDWDZ256rm = 17062,
-  VPMADDWDZ256rmk = 17063,
-  VPMADDWDZ256rmkz = 17064,
-  VPMADDWDZ256rr = 17065,
-  VPMADDWDZ256rrk = 17066,
-  VPMADDWDZ256rrkz = 17067,
-  VPMADDWDZrm = 17068,
-  VPMADDWDZrmk = 17069,
-  VPMADDWDZrmkz = 17070,
-  VPMADDWDZrr = 17071,
-  VPMADDWDZrrk = 17072,
-  VPMADDWDZrrkz = 17073,
-  VPMADDWDrm = 17074,
-  VPMADDWDrr = 17075,
-  VPMASKMOVDYmr = 17076,
-  VPMASKMOVDYrm = 17077,
-  VPMASKMOVDmr = 17078,
-  VPMASKMOVDrm = 17079,
-  VPMASKMOVQYmr = 17080,
-  VPMASKMOVQYrm = 17081,
-  VPMASKMOVQmr = 17082,
-  VPMASKMOVQrm = 17083,
-  VPMAXSBYrm = 17084,
-  VPMAXSBYrr = 17085,
-  VPMAXSBZ128rm = 17086,
-  VPMAXSBZ128rmk = 17087,
-  VPMAXSBZ128rmkz = 17088,
-  VPMAXSBZ128rr = 17089,
-  VPMAXSBZ128rrk = 17090,
-  VPMAXSBZ128rrkz = 17091,
-  VPMAXSBZ256rm = 17092,
-  VPMAXSBZ256rmk = 17093,
-  VPMAXSBZ256rmkz = 17094,
-  VPMAXSBZ256rr = 17095,
-  VPMAXSBZ256rrk = 17096,
-  VPMAXSBZ256rrkz = 17097,
-  VPMAXSBZrm = 17098,
-  VPMAXSBZrmk = 17099,
-  VPMAXSBZrmkz = 17100,
-  VPMAXSBZrr = 17101,
-  VPMAXSBZrrk = 17102,
-  VPMAXSBZrrkz = 17103,
-  VPMAXSBrm = 17104,
-  VPMAXSBrr = 17105,
-  VPMAXSDYrm = 17106,
-  VPMAXSDYrr = 17107,
-  VPMAXSDZ128rm = 17108,
-  VPMAXSDZ128rmb = 17109,
-  VPMAXSDZ128rmbk = 17110,
-  VPMAXSDZ128rmbkz = 17111,
-  VPMAXSDZ128rmk = 17112,
-  VPMAXSDZ128rmkz = 17113,
-  VPMAXSDZ128rr = 17114,
-  VPMAXSDZ128rrk = 17115,
-  VPMAXSDZ128rrkz = 17116,
-  VPMAXSDZ256rm = 17117,
-  VPMAXSDZ256rmb = 17118,
-  VPMAXSDZ256rmbk = 17119,
-  VPMAXSDZ256rmbkz = 17120,
-  VPMAXSDZ256rmk = 17121,
-  VPMAXSDZ256rmkz = 17122,
-  VPMAXSDZ256rr = 17123,
-  VPMAXSDZ256rrk = 17124,
-  VPMAXSDZ256rrkz = 17125,
-  VPMAXSDZrm = 17126,
-  VPMAXSDZrmb = 17127,
-  VPMAXSDZrmbk = 17128,
-  VPMAXSDZrmbkz = 17129,
-  VPMAXSDZrmk = 17130,
-  VPMAXSDZrmkz = 17131,
-  VPMAXSDZrr = 17132,
-  VPMAXSDZrrk = 17133,
-  VPMAXSDZrrkz = 17134,
-  VPMAXSDrm = 17135,
-  VPMAXSDrr = 17136,
-  VPMAXSQZ128rm = 17137,
-  VPMAXSQZ128rmb = 17138,
-  VPMAXSQZ128rmbk = 17139,
-  VPMAXSQZ128rmbkz = 17140,
-  VPMAXSQZ128rmk = 17141,
-  VPMAXSQZ128rmkz = 17142,
-  VPMAXSQZ128rr = 17143,
-  VPMAXSQZ128rrk = 17144,
-  VPMAXSQZ128rrkz = 17145,
-  VPMAXSQZ256rm = 17146,
-  VPMAXSQZ256rmb = 17147,
-  VPMAXSQZ256rmbk = 17148,
-  VPMAXSQZ256rmbkz = 17149,
-  VPMAXSQZ256rmk = 17150,
-  VPMAXSQZ256rmkz = 17151,
-  VPMAXSQZ256rr = 17152,
-  VPMAXSQZ256rrk = 17153,
-  VPMAXSQZ256rrkz = 17154,
-  VPMAXSQZrm = 17155,
-  VPMAXSQZrmb = 17156,
-  VPMAXSQZrmbk = 17157,
-  VPMAXSQZrmbkz = 17158,
-  VPMAXSQZrmk = 17159,
-  VPMAXSQZrmkz = 17160,
-  VPMAXSQZrr = 17161,
-  VPMAXSQZrrk = 17162,
-  VPMAXSQZrrkz = 17163,
-  VPMAXSWYrm = 17164,
-  VPMAXSWYrr = 17165,
-  VPMAXSWZ128rm = 17166,
-  VPMAXSWZ128rmk = 17167,
-  VPMAXSWZ128rmkz = 17168,
-  VPMAXSWZ128rr = 17169,
-  VPMAXSWZ128rrk = 17170,
-  VPMAXSWZ128rrkz = 17171,
-  VPMAXSWZ256rm = 17172,
-  VPMAXSWZ256rmk = 17173,
-  VPMAXSWZ256rmkz = 17174,
-  VPMAXSWZ256rr = 17175,
-  VPMAXSWZ256rrk = 17176,
-  VPMAXSWZ256rrkz = 17177,
-  VPMAXSWZrm = 17178,
-  VPMAXSWZrmk = 17179,
-  VPMAXSWZrmkz = 17180,
-  VPMAXSWZrr = 17181,
-  VPMAXSWZrrk = 17182,
-  VPMAXSWZrrkz = 17183,
-  VPMAXSWrm = 17184,
-  VPMAXSWrr = 17185,
-  VPMAXUBYrm = 17186,
-  VPMAXUBYrr = 17187,
-  VPMAXUBZ128rm = 17188,
-  VPMAXUBZ128rmk = 17189,
-  VPMAXUBZ128rmkz = 17190,
-  VPMAXUBZ128rr = 17191,
-  VPMAXUBZ128rrk = 17192,
-  VPMAXUBZ128rrkz = 17193,
-  VPMAXUBZ256rm = 17194,
-  VPMAXUBZ256rmk = 17195,
-  VPMAXUBZ256rmkz = 17196,
-  VPMAXUBZ256rr = 17197,
-  VPMAXUBZ256rrk = 17198,
-  VPMAXUBZ256rrkz = 17199,
-  VPMAXUBZrm = 17200,
-  VPMAXUBZrmk = 17201,
-  VPMAXUBZrmkz = 17202,
-  VPMAXUBZrr = 17203,
-  VPMAXUBZrrk = 17204,
-  VPMAXUBZrrkz = 17205,
-  VPMAXUBrm = 17206,
-  VPMAXUBrr = 17207,
-  VPMAXUDYrm = 17208,
-  VPMAXUDYrr = 17209,
-  VPMAXUDZ128rm = 17210,
-  VPMAXUDZ128rmb = 17211,
-  VPMAXUDZ128rmbk = 17212,
-  VPMAXUDZ128rmbkz = 17213,
-  VPMAXUDZ128rmk = 17214,
-  VPMAXUDZ128rmkz = 17215,
-  VPMAXUDZ128rr = 17216,
-  VPMAXUDZ128rrk = 17217,
-  VPMAXUDZ128rrkz = 17218,
-  VPMAXUDZ256rm = 17219,
-  VPMAXUDZ256rmb = 17220,
-  VPMAXUDZ256rmbk = 17221,
-  VPMAXUDZ256rmbkz = 17222,
-  VPMAXUDZ256rmk = 17223,
-  VPMAXUDZ256rmkz = 17224,
-  VPMAXUDZ256rr = 17225,
-  VPMAXUDZ256rrk = 17226,
-  VPMAXUDZ256rrkz = 17227,
-  VPMAXUDZrm = 17228,
-  VPMAXUDZrmb = 17229,
-  VPMAXUDZrmbk = 17230,
-  VPMAXUDZrmbkz = 17231,
-  VPMAXUDZrmk = 17232,
-  VPMAXUDZrmkz = 17233,
-  VPMAXUDZrr = 17234,
-  VPMAXUDZrrk = 17235,
-  VPMAXUDZrrkz = 17236,
-  VPMAXUDrm = 17237,
-  VPMAXUDrr = 17238,
-  VPMAXUQZ128rm = 17239,
-  VPMAXUQZ128rmb = 17240,
-  VPMAXUQZ128rmbk = 17241,
-  VPMAXUQZ128rmbkz = 17242,
-  VPMAXUQZ128rmk = 17243,
-  VPMAXUQZ128rmkz = 17244,
-  VPMAXUQZ128rr = 17245,
-  VPMAXUQZ128rrk = 17246,
-  VPMAXUQZ128rrkz = 17247,
-  VPMAXUQZ256rm = 17248,
-  VPMAXUQZ256rmb = 17249,
-  VPMAXUQZ256rmbk = 17250,
-  VPMAXUQZ256rmbkz = 17251,
-  VPMAXUQZ256rmk = 17252,
-  VPMAXUQZ256rmkz = 17253,
-  VPMAXUQZ256rr = 17254,
-  VPMAXUQZ256rrk = 17255,
-  VPMAXUQZ256rrkz = 17256,
-  VPMAXUQZrm = 17257,
-  VPMAXUQZrmb = 17258,
-  VPMAXUQZrmbk = 17259,
-  VPMAXUQZrmbkz = 17260,
-  VPMAXUQZrmk = 17261,
-  VPMAXUQZrmkz = 17262,
-  VPMAXUQZrr = 17263,
-  VPMAXUQZrrk = 17264,
-  VPMAXUQZrrkz = 17265,
-  VPMAXUWYrm = 17266,
-  VPMAXUWYrr = 17267,
-  VPMAXUWZ128rm = 17268,
-  VPMAXUWZ128rmk = 17269,
-  VPMAXUWZ128rmkz = 17270,
-  VPMAXUWZ128rr = 17271,
-  VPMAXUWZ128rrk = 17272,
-  VPMAXUWZ128rrkz = 17273,
-  VPMAXUWZ256rm = 17274,
-  VPMAXUWZ256rmk = 17275,
-  VPMAXUWZ256rmkz = 17276,
-  VPMAXUWZ256rr = 17277,
-  VPMAXUWZ256rrk = 17278,
-  VPMAXUWZ256rrkz = 17279,
-  VPMAXUWZrm = 17280,
-  VPMAXUWZrmk = 17281,
-  VPMAXUWZrmkz = 17282,
-  VPMAXUWZrr = 17283,
-  VPMAXUWZrrk = 17284,
-  VPMAXUWZrrkz = 17285,
-  VPMAXUWrm = 17286,
-  VPMAXUWrr = 17287,
-  VPMINSBYrm = 17288,
-  VPMINSBYrr = 17289,
-  VPMINSBZ128rm = 17290,
-  VPMINSBZ128rmk = 17291,
-  VPMINSBZ128rmkz = 17292,
-  VPMINSBZ128rr = 17293,
-  VPMINSBZ128rrk = 17294,
-  VPMINSBZ128rrkz = 17295,
-  VPMINSBZ256rm = 17296,
-  VPMINSBZ256rmk = 17297,
-  VPMINSBZ256rmkz = 17298,
-  VPMINSBZ256rr = 17299,
-  VPMINSBZ256rrk = 17300,
-  VPMINSBZ256rrkz = 17301,
-  VPMINSBZrm = 17302,
-  VPMINSBZrmk = 17303,
-  VPMINSBZrmkz = 17304,
-  VPMINSBZrr = 17305,
-  VPMINSBZrrk = 17306,
-  VPMINSBZrrkz = 17307,
-  VPMINSBrm = 17308,
-  VPMINSBrr = 17309,
-  VPMINSDYrm = 17310,
-  VPMINSDYrr = 17311,
-  VPMINSDZ128rm = 17312,
-  VPMINSDZ128rmb = 17313,
-  VPMINSDZ128rmbk = 17314,
-  VPMINSDZ128rmbkz = 17315,
-  VPMINSDZ128rmk = 17316,
-  VPMINSDZ128rmkz = 17317,
-  VPMINSDZ128rr = 17318,
-  VPMINSDZ128rrk = 17319,
-  VPMINSDZ128rrkz = 17320,
-  VPMINSDZ256rm = 17321,
-  VPMINSDZ256rmb = 17322,
-  VPMINSDZ256rmbk = 17323,
-  VPMINSDZ256rmbkz = 17324,
-  VPMINSDZ256rmk = 17325,
-  VPMINSDZ256rmkz = 17326,
-  VPMINSDZ256rr = 17327,
-  VPMINSDZ256rrk = 17328,
-  VPMINSDZ256rrkz = 17329,
-  VPMINSDZrm = 17330,
-  VPMINSDZrmb = 17331,
-  VPMINSDZrmbk = 17332,
-  VPMINSDZrmbkz = 17333,
-  VPMINSDZrmk = 17334,
-  VPMINSDZrmkz = 17335,
-  VPMINSDZrr = 17336,
-  VPMINSDZrrk = 17337,
-  VPMINSDZrrkz = 17338,
-  VPMINSDrm = 17339,
-  VPMINSDrr = 17340,
-  VPMINSQZ128rm = 17341,
-  VPMINSQZ128rmb = 17342,
-  VPMINSQZ128rmbk = 17343,
-  VPMINSQZ128rmbkz = 17344,
-  VPMINSQZ128rmk = 17345,
-  VPMINSQZ128rmkz = 17346,
-  VPMINSQZ128rr = 17347,
-  VPMINSQZ128rrk = 17348,
-  VPMINSQZ128rrkz = 17349,
-  VPMINSQZ256rm = 17350,
-  VPMINSQZ256rmb = 17351,
-  VPMINSQZ256rmbk = 17352,
-  VPMINSQZ256rmbkz = 17353,
-  VPMINSQZ256rmk = 17354,
-  VPMINSQZ256rmkz = 17355,
-  VPMINSQZ256rr = 17356,
-  VPMINSQZ256rrk = 17357,
-  VPMINSQZ256rrkz = 17358,
-  VPMINSQZrm = 17359,
-  VPMINSQZrmb = 17360,
-  VPMINSQZrmbk = 17361,
-  VPMINSQZrmbkz = 17362,
-  VPMINSQZrmk = 17363,
-  VPMINSQZrmkz = 17364,
-  VPMINSQZrr = 17365,
-  VPMINSQZrrk = 17366,
-  VPMINSQZrrkz = 17367,
-  VPMINSWYrm = 17368,
-  VPMINSWYrr = 17369,
-  VPMINSWZ128rm = 17370,
-  VPMINSWZ128rmk = 17371,
-  VPMINSWZ128rmkz = 17372,
-  VPMINSWZ128rr = 17373,
-  VPMINSWZ128rrk = 17374,
-  VPMINSWZ128rrkz = 17375,
-  VPMINSWZ256rm = 17376,
-  VPMINSWZ256rmk = 17377,
-  VPMINSWZ256rmkz = 17378,
-  VPMINSWZ256rr = 17379,
-  VPMINSWZ256rrk = 17380,
-  VPMINSWZ256rrkz = 17381,
-  VPMINSWZrm = 17382,
-  VPMINSWZrmk = 17383,
-  VPMINSWZrmkz = 17384,
-  VPMINSWZrr = 17385,
-  VPMINSWZrrk = 17386,
-  VPMINSWZrrkz = 17387,
-  VPMINSWrm = 17388,
-  VPMINSWrr = 17389,
-  VPMINUBYrm = 17390,
-  VPMINUBYrr = 17391,
-  VPMINUBZ128rm = 17392,
-  VPMINUBZ128rmk = 17393,
-  VPMINUBZ128rmkz = 17394,
-  VPMINUBZ128rr = 17395,
-  VPMINUBZ128rrk = 17396,
-  VPMINUBZ128rrkz = 17397,
-  VPMINUBZ256rm = 17398,
-  VPMINUBZ256rmk = 17399,
-  VPMINUBZ256rmkz = 17400,
-  VPMINUBZ256rr = 17401,
-  VPMINUBZ256rrk = 17402,
-  VPMINUBZ256rrkz = 17403,
-  VPMINUBZrm = 17404,
-  VPMINUBZrmk = 17405,
-  VPMINUBZrmkz = 17406,
-  VPMINUBZrr = 17407,
-  VPMINUBZrrk = 17408,
-  VPMINUBZrrkz = 17409,
-  VPMINUBrm = 17410,
-  VPMINUBrr = 17411,
-  VPMINUDYrm = 17412,
-  VPMINUDYrr = 17413,
-  VPMINUDZ128rm = 17414,
-  VPMINUDZ128rmb = 17415,
-  VPMINUDZ128rmbk = 17416,
-  VPMINUDZ128rmbkz = 17417,
-  VPMINUDZ128rmk = 17418,
-  VPMINUDZ128rmkz = 17419,
-  VPMINUDZ128rr = 17420,
-  VPMINUDZ128rrk = 17421,
-  VPMINUDZ128rrkz = 17422,
-  VPMINUDZ256rm = 17423,
-  VPMINUDZ256rmb = 17424,
-  VPMINUDZ256rmbk = 17425,
-  VPMINUDZ256rmbkz = 17426,
-  VPMINUDZ256rmk = 17427,
-  VPMINUDZ256rmkz = 17428,
-  VPMINUDZ256rr = 17429,
-  VPMINUDZ256rrk = 17430,
-  VPMINUDZ256rrkz = 17431,
-  VPMINUDZrm = 17432,
-  VPMINUDZrmb = 17433,
-  VPMINUDZrmbk = 17434,
-  VPMINUDZrmbkz = 17435,
-  VPMINUDZrmk = 17436,
-  VPMINUDZrmkz = 17437,
-  VPMINUDZrr = 17438,
-  VPMINUDZrrk = 17439,
-  VPMINUDZrrkz = 17440,
-  VPMINUDrm = 17441,
-  VPMINUDrr = 17442,
-  VPMINUQZ128rm = 17443,
-  VPMINUQZ128rmb = 17444,
-  VPMINUQZ128rmbk = 17445,
-  VPMINUQZ128rmbkz = 17446,
-  VPMINUQZ128rmk = 17447,
-  VPMINUQZ128rmkz = 17448,
-  VPMINUQZ128rr = 17449,
-  VPMINUQZ128rrk = 17450,
-  VPMINUQZ128rrkz = 17451,
-  VPMINUQZ256rm = 17452,
-  VPMINUQZ256rmb = 17453,
-  VPMINUQZ256rmbk = 17454,
-  VPMINUQZ256rmbkz = 17455,
-  VPMINUQZ256rmk = 17456,
-  VPMINUQZ256rmkz = 17457,
-  VPMINUQZ256rr = 17458,
-  VPMINUQZ256rrk = 17459,
-  VPMINUQZ256rrkz = 17460,
-  VPMINUQZrm = 17461,
-  VPMINUQZrmb = 17462,
-  VPMINUQZrmbk = 17463,
-  VPMINUQZrmbkz = 17464,
-  VPMINUQZrmk = 17465,
-  VPMINUQZrmkz = 17466,
-  VPMINUQZrr = 17467,
-  VPMINUQZrrk = 17468,
-  VPMINUQZrrkz = 17469,
-  VPMINUWYrm = 17470,
-  VPMINUWYrr = 17471,
-  VPMINUWZ128rm = 17472,
-  VPMINUWZ128rmk = 17473,
-  VPMINUWZ128rmkz = 17474,
-  VPMINUWZ128rr = 17475,
-  VPMINUWZ128rrk = 17476,
-  VPMINUWZ128rrkz = 17477,
-  VPMINUWZ256rm = 17478,
-  VPMINUWZ256rmk = 17479,
-  VPMINUWZ256rmkz = 17480,
-  VPMINUWZ256rr = 17481,
-  VPMINUWZ256rrk = 17482,
-  VPMINUWZ256rrkz = 17483,
-  VPMINUWZrm = 17484,
-  VPMINUWZrmk = 17485,
-  VPMINUWZrmkz = 17486,
-  VPMINUWZrr = 17487,
-  VPMINUWZrrk = 17488,
-  VPMINUWZrrkz = 17489,
-  VPMINUWrm = 17490,
-  VPMINUWrr = 17491,
-  VPMOVB2MZ128kr = 17492,
-  VPMOVB2MZ256kr = 17493,
-  VPMOVB2MZkr = 17494,
-  VPMOVD2MZ128kr = 17495,
-  VPMOVD2MZ256kr = 17496,
-  VPMOVD2MZkr = 17497,
-  VPMOVDBZ128mr = 17498,
-  VPMOVDBZ128mrk = 17499,
-  VPMOVDBZ128rr = 17500,
-  VPMOVDBZ128rrk = 17501,
-  VPMOVDBZ128rrkz = 17502,
-  VPMOVDBZ256mr = 17503,
-  VPMOVDBZ256mrk = 17504,
-  VPMOVDBZ256rr = 17505,
-  VPMOVDBZ256rrk = 17506,
-  VPMOVDBZ256rrkz = 17507,
-  VPMOVDBZmr = 17508,
-  VPMOVDBZmrk = 17509,
-  VPMOVDBZrr = 17510,
-  VPMOVDBZrrk = 17511,
-  VPMOVDBZrrkz = 17512,
-  VPMOVDWZ128mr = 17513,
-  VPMOVDWZ128mrk = 17514,
-  VPMOVDWZ128rr = 17515,
-  VPMOVDWZ128rrk = 17516,
-  VPMOVDWZ128rrkz = 17517,
-  VPMOVDWZ256mr = 17518,
-  VPMOVDWZ256mrk = 17519,
-  VPMOVDWZ256rr = 17520,
-  VPMOVDWZ256rrk = 17521,
-  VPMOVDWZ256rrkz = 17522,
-  VPMOVDWZmr = 17523,
-  VPMOVDWZmrk = 17524,
-  VPMOVDWZrr = 17525,
-  VPMOVDWZrrk = 17526,
-  VPMOVDWZrrkz = 17527,
-  VPMOVM2BZ128rk = 17528,
-  VPMOVM2BZ256rk = 17529,
-  VPMOVM2BZrk = 17530,
-  VPMOVM2DZ128rk = 17531,
-  VPMOVM2DZ256rk = 17532,
-  VPMOVM2DZrk = 17533,
-  VPMOVM2QZ128rk = 17534,
-  VPMOVM2QZ256rk = 17535,
-  VPMOVM2QZrk = 17536,
-  VPMOVM2WZ128rk = 17537,
-  VPMOVM2WZ256rk = 17538,
-  VPMOVM2WZrk = 17539,
-  VPMOVMSKBYrr = 17540,
-  VPMOVMSKBrr = 17541,
-  VPMOVQ2MZ128kr = 17542,
-  VPMOVQ2MZ256kr = 17543,
-  VPMOVQ2MZkr = 17544,
-  VPMOVQBZ128mr = 17545,
-  VPMOVQBZ128mrk = 17546,
-  VPMOVQBZ128rr = 17547,
-  VPMOVQBZ128rrk = 17548,
-  VPMOVQBZ128rrkz = 17549,
-  VPMOVQBZ256mr = 17550,
-  VPMOVQBZ256mrk = 17551,
-  VPMOVQBZ256rr = 17552,
-  VPMOVQBZ256rrk = 17553,
-  VPMOVQBZ256rrkz = 17554,
-  VPMOVQBZmr = 17555,
-  VPMOVQBZmrk = 17556,
-  VPMOVQBZrr = 17557,
-  VPMOVQBZrrk = 17558,
-  VPMOVQBZrrkz = 17559,
-  VPMOVQDZ128mr = 17560,
-  VPMOVQDZ128mrk = 17561,
-  VPMOVQDZ128rr = 17562,
-  VPMOVQDZ128rrk = 17563,
-  VPMOVQDZ128rrkz = 17564,
-  VPMOVQDZ256mr = 17565,
-  VPMOVQDZ256mrk = 17566,
-  VPMOVQDZ256rr = 17567,
-  VPMOVQDZ256rrk = 17568,
-  VPMOVQDZ256rrkz = 17569,
-  VPMOVQDZmr = 17570,
-  VPMOVQDZmrk = 17571,
-  VPMOVQDZrr = 17572,
-  VPMOVQDZrrk = 17573,
-  VPMOVQDZrrkz = 17574,
-  VPMOVQWZ128mr = 17575,
-  VPMOVQWZ128mrk = 17576,
-  VPMOVQWZ128rr = 17577,
-  VPMOVQWZ128rrk = 17578,
-  VPMOVQWZ128rrkz = 17579,
-  VPMOVQWZ256mr = 17580,
-  VPMOVQWZ256mrk = 17581,
-  VPMOVQWZ256rr = 17582,
-  VPMOVQWZ256rrk = 17583,
-  VPMOVQWZ256rrkz = 17584,
-  VPMOVQWZmr = 17585,
-  VPMOVQWZmrk = 17586,
-  VPMOVQWZrr = 17587,
-  VPMOVQWZrrk = 17588,
-  VPMOVQWZrrkz = 17589,
-  VPMOVSDBZ128mr = 17590,
-  VPMOVSDBZ128mrk = 17591,
-  VPMOVSDBZ128rr = 17592,
-  VPMOVSDBZ128rrk = 17593,
-  VPMOVSDBZ128rrkz = 17594,
-  VPMOVSDBZ256mr = 17595,
-  VPMOVSDBZ256mrk = 17596,
-  VPMOVSDBZ256rr = 17597,
-  VPMOVSDBZ256rrk = 17598,
-  VPMOVSDBZ256rrkz = 17599,
-  VPMOVSDBZmr = 17600,
-  VPMOVSDBZmrk = 17601,
-  VPMOVSDBZrr = 17602,
-  VPMOVSDBZrrk = 17603,
-  VPMOVSDBZrrkz = 17604,
-  VPMOVSDWZ128mr = 17605,
-  VPMOVSDWZ128mrk = 17606,
-  VPMOVSDWZ128rr = 17607,
-  VPMOVSDWZ128rrk = 17608,
-  VPMOVSDWZ128rrkz = 17609,
-  VPMOVSDWZ256mr = 17610,
-  VPMOVSDWZ256mrk = 17611,
-  VPMOVSDWZ256rr = 17612,
-  VPMOVSDWZ256rrk = 17613,
-  VPMOVSDWZ256rrkz = 17614,
-  VPMOVSDWZmr = 17615,
-  VPMOVSDWZmrk = 17616,
-  VPMOVSDWZrr = 17617,
-  VPMOVSDWZrrk = 17618,
-  VPMOVSDWZrrkz = 17619,
-  VPMOVSQBZ128mr = 17620,
-  VPMOVSQBZ128mrk = 17621,
-  VPMOVSQBZ128rr = 17622,
-  VPMOVSQBZ128rrk = 17623,
-  VPMOVSQBZ128rrkz = 17624,
-  VPMOVSQBZ256mr = 17625,
-  VPMOVSQBZ256mrk = 17626,
-  VPMOVSQBZ256rr = 17627,
-  VPMOVSQBZ256rrk = 17628,
-  VPMOVSQBZ256rrkz = 17629,
-  VPMOVSQBZmr = 17630,
-  VPMOVSQBZmrk = 17631,
-  VPMOVSQBZrr = 17632,
-  VPMOVSQBZrrk = 17633,
-  VPMOVSQBZrrkz = 17634,
-  VPMOVSQDZ128mr = 17635,
-  VPMOVSQDZ128mrk = 17636,
-  VPMOVSQDZ128rr = 17637,
-  VPMOVSQDZ128rrk = 17638,
-  VPMOVSQDZ128rrkz = 17639,
-  VPMOVSQDZ256mr = 17640,
-  VPMOVSQDZ256mrk = 17641,
-  VPMOVSQDZ256rr = 17642,
-  VPMOVSQDZ256rrk = 17643,
-  VPMOVSQDZ256rrkz = 17644,
-  VPMOVSQDZmr = 17645,
-  VPMOVSQDZmrk = 17646,
-  VPMOVSQDZrr = 17647,
-  VPMOVSQDZrrk = 17648,
-  VPMOVSQDZrrkz = 17649,
-  VPMOVSQWZ128mr = 17650,
-  VPMOVSQWZ128mrk = 17651,
-  VPMOVSQWZ128rr = 17652,
-  VPMOVSQWZ128rrk = 17653,
-  VPMOVSQWZ128rrkz = 17654,
-  VPMOVSQWZ256mr = 17655,
-  VPMOVSQWZ256mrk = 17656,
-  VPMOVSQWZ256rr = 17657,
-  VPMOVSQWZ256rrk = 17658,
-  VPMOVSQWZ256rrkz = 17659,
-  VPMOVSQWZmr = 17660,
-  VPMOVSQWZmrk = 17661,
-  VPMOVSQWZrr = 17662,
-  VPMOVSQWZrrk = 17663,
-  VPMOVSQWZrrkz = 17664,
-  VPMOVSWBZ128mr = 17665,
-  VPMOVSWBZ128mrk = 17666,
-  VPMOVSWBZ128rr = 17667,
-  VPMOVSWBZ128rrk = 17668,
-  VPMOVSWBZ128rrkz = 17669,
-  VPMOVSWBZ256mr = 17670,
-  VPMOVSWBZ256mrk = 17671,
-  VPMOVSWBZ256rr = 17672,
-  VPMOVSWBZ256rrk = 17673,
-  VPMOVSWBZ256rrkz = 17674,
-  VPMOVSWBZmr = 17675,
-  VPMOVSWBZmrk = 17676,
-  VPMOVSWBZrr = 17677,
-  VPMOVSWBZrrk = 17678,
-  VPMOVSWBZrrkz = 17679,
-  VPMOVSXBDYrm = 17680,
-  VPMOVSXBDYrr = 17681,
-  VPMOVSXBDZ128rm = 17682,
-  VPMOVSXBDZ128rmk = 17683,
-  VPMOVSXBDZ128rmkz = 17684,
-  VPMOVSXBDZ128rr = 17685,
-  VPMOVSXBDZ128rrk = 17686,
-  VPMOVSXBDZ128rrkz = 17687,
-  VPMOVSXBDZ256rm = 17688,
-  VPMOVSXBDZ256rmk = 17689,
-  VPMOVSXBDZ256rmkz = 17690,
-  VPMOVSXBDZ256rr = 17691,
-  VPMOVSXBDZ256rrk = 17692,
-  VPMOVSXBDZ256rrkz = 17693,
-  VPMOVSXBDZrm = 17694,
-  VPMOVSXBDZrmk = 17695,
-  VPMOVSXBDZrmkz = 17696,
-  VPMOVSXBDZrr = 17697,
-  VPMOVSXBDZrrk = 17698,
-  VPMOVSXBDZrrkz = 17699,
-  VPMOVSXBDrm = 17700,
-  VPMOVSXBDrr = 17701,
-  VPMOVSXBQYrm = 17702,
-  VPMOVSXBQYrr = 17703,
-  VPMOVSXBQZ128rm = 17704,
-  VPMOVSXBQZ128rmk = 17705,
-  VPMOVSXBQZ128rmkz = 17706,
-  VPMOVSXBQZ128rr = 17707,
-  VPMOVSXBQZ128rrk = 17708,
-  VPMOVSXBQZ128rrkz = 17709,
-  VPMOVSXBQZ256rm = 17710,
-  VPMOVSXBQZ256rmk = 17711,
-  VPMOVSXBQZ256rmkz = 17712,
-  VPMOVSXBQZ256rr = 17713,
-  VPMOVSXBQZ256rrk = 17714,
-  VPMOVSXBQZ256rrkz = 17715,
-  VPMOVSXBQZrm = 17716,
-  VPMOVSXBQZrmk = 17717,
-  VPMOVSXBQZrmkz = 17718,
-  VPMOVSXBQZrr = 17719,
-  VPMOVSXBQZrrk = 17720,
-  VPMOVSXBQZrrkz = 17721,
-  VPMOVSXBQrm = 17722,
-  VPMOVSXBQrr = 17723,
-  VPMOVSXBWYrm = 17724,
-  VPMOVSXBWYrr = 17725,
-  VPMOVSXBWZ128rm = 17726,
-  VPMOVSXBWZ128rmk = 17727,
-  VPMOVSXBWZ128rmkz = 17728,
-  VPMOVSXBWZ128rr = 17729,
-  VPMOVSXBWZ128rrk = 17730,
-  VPMOVSXBWZ128rrkz = 17731,
-  VPMOVSXBWZ256rm = 17732,
-  VPMOVSXBWZ256rmk = 17733,
-  VPMOVSXBWZ256rmkz = 17734,
-  VPMOVSXBWZ256rr = 17735,
-  VPMOVSXBWZ256rrk = 17736,
-  VPMOVSXBWZ256rrkz = 17737,
-  VPMOVSXBWZrm = 17738,
-  VPMOVSXBWZrmk = 17739,
-  VPMOVSXBWZrmkz = 17740,
-  VPMOVSXBWZrr = 17741,
-  VPMOVSXBWZrrk = 17742,
-  VPMOVSXBWZrrkz = 17743,
-  VPMOVSXBWrm = 17744,
-  VPMOVSXBWrr = 17745,
-  VPMOVSXDQYrm = 17746,
-  VPMOVSXDQYrr = 17747,
-  VPMOVSXDQZ128rm = 17748,
-  VPMOVSXDQZ128rmk = 17749,
-  VPMOVSXDQZ128rmkz = 17750,
-  VPMOVSXDQZ128rr = 17751,
-  VPMOVSXDQZ128rrk = 17752,
-  VPMOVSXDQZ128rrkz = 17753,
-  VPMOVSXDQZ256rm = 17754,
-  VPMOVSXDQZ256rmk = 17755,
-  VPMOVSXDQZ256rmkz = 17756,
-  VPMOVSXDQZ256rr = 17757,
-  VPMOVSXDQZ256rrk = 17758,
-  VPMOVSXDQZ256rrkz = 17759,
-  VPMOVSXDQZrm = 17760,
-  VPMOVSXDQZrmk = 17761,
-  VPMOVSXDQZrmkz = 17762,
-  VPMOVSXDQZrr = 17763,
-  VPMOVSXDQZrrk = 17764,
-  VPMOVSXDQZrrkz = 17765,
-  VPMOVSXDQrm = 17766,
-  VPMOVSXDQrr = 17767,
-  VPMOVSXWDYrm = 17768,
-  VPMOVSXWDYrr = 17769,
-  VPMOVSXWDZ128rm = 17770,
-  VPMOVSXWDZ128rmk = 17771,
-  VPMOVSXWDZ128rmkz = 17772,
-  VPMOVSXWDZ128rr = 17773,
-  VPMOVSXWDZ128rrk = 17774,
-  VPMOVSXWDZ128rrkz = 17775,
-  VPMOVSXWDZ256rm = 17776,
-  VPMOVSXWDZ256rmk = 17777,
-  VPMOVSXWDZ256rmkz = 17778,
-  VPMOVSXWDZ256rr = 17779,
-  VPMOVSXWDZ256rrk = 17780,
-  VPMOVSXWDZ256rrkz = 17781,
-  VPMOVSXWDZrm = 17782,
-  VPMOVSXWDZrmk = 17783,
-  VPMOVSXWDZrmkz = 17784,
-  VPMOVSXWDZrr = 17785,
-  VPMOVSXWDZrrk = 17786,
-  VPMOVSXWDZrrkz = 17787,
-  VPMOVSXWDrm = 17788,
-  VPMOVSXWDrr = 17789,
-  VPMOVSXWQYrm = 17790,
-  VPMOVSXWQYrr = 17791,
-  VPMOVSXWQZ128rm = 17792,
-  VPMOVSXWQZ128rmk = 17793,
-  VPMOVSXWQZ128rmkz = 17794,
-  VPMOVSXWQZ128rr = 17795,
-  VPMOVSXWQZ128rrk = 17796,
-  VPMOVSXWQZ128rrkz = 17797,
-  VPMOVSXWQZ256rm = 17798,
-  VPMOVSXWQZ256rmk = 17799,
-  VPMOVSXWQZ256rmkz = 17800,
-  VPMOVSXWQZ256rr = 17801,
-  VPMOVSXWQZ256rrk = 17802,
-  VPMOVSXWQZ256rrkz = 17803,
-  VPMOVSXWQZrm = 17804,
-  VPMOVSXWQZrmk = 17805,
-  VPMOVSXWQZrmkz = 17806,
-  VPMOVSXWQZrr = 17807,
-  VPMOVSXWQZrrk = 17808,
-  VPMOVSXWQZrrkz = 17809,
-  VPMOVSXWQrm = 17810,
-  VPMOVSXWQrr = 17811,
-  VPMOVUSDBZ128mr = 17812,
-  VPMOVUSDBZ128mrk = 17813,
-  VPMOVUSDBZ128rr = 17814,
-  VPMOVUSDBZ128rrk = 17815,
-  VPMOVUSDBZ128rrkz = 17816,
-  VPMOVUSDBZ256mr = 17817,
-  VPMOVUSDBZ256mrk = 17818,
-  VPMOVUSDBZ256rr = 17819,
-  VPMOVUSDBZ256rrk = 17820,
-  VPMOVUSDBZ256rrkz = 17821,
-  VPMOVUSDBZmr = 17822,
-  VPMOVUSDBZmrk = 17823,
-  VPMOVUSDBZrr = 17824,
-  VPMOVUSDBZrrk = 17825,
-  VPMOVUSDBZrrkz = 17826,
-  VPMOVUSDWZ128mr = 17827,
-  VPMOVUSDWZ128mrk = 17828,
-  VPMOVUSDWZ128rr = 17829,
-  VPMOVUSDWZ128rrk = 17830,
-  VPMOVUSDWZ128rrkz = 17831,
-  VPMOVUSDWZ256mr = 17832,
-  VPMOVUSDWZ256mrk = 17833,
-  VPMOVUSDWZ256rr = 17834,
-  VPMOVUSDWZ256rrk = 17835,
-  VPMOVUSDWZ256rrkz = 17836,
-  VPMOVUSDWZmr = 17837,
-  VPMOVUSDWZmrk = 17838,
-  VPMOVUSDWZrr = 17839,
-  VPMOVUSDWZrrk = 17840,
-  VPMOVUSDWZrrkz = 17841,
-  VPMOVUSQBZ128mr = 17842,
-  VPMOVUSQBZ128mrk = 17843,
-  VPMOVUSQBZ128rr = 17844,
-  VPMOVUSQBZ128rrk = 17845,
-  VPMOVUSQBZ128rrkz = 17846,
-  VPMOVUSQBZ256mr = 17847,
-  VPMOVUSQBZ256mrk = 17848,
-  VPMOVUSQBZ256rr = 17849,
-  VPMOVUSQBZ256rrk = 17850,
-  VPMOVUSQBZ256rrkz = 17851,
-  VPMOVUSQBZmr = 17852,
-  VPMOVUSQBZmrk = 17853,
-  VPMOVUSQBZrr = 17854,
-  VPMOVUSQBZrrk = 17855,
-  VPMOVUSQBZrrkz = 17856,
-  VPMOVUSQDZ128mr = 17857,
-  VPMOVUSQDZ128mrk = 17858,
-  VPMOVUSQDZ128rr = 17859,
-  VPMOVUSQDZ128rrk = 17860,
-  VPMOVUSQDZ128rrkz = 17861,
-  VPMOVUSQDZ256mr = 17862,
-  VPMOVUSQDZ256mrk = 17863,
-  VPMOVUSQDZ256rr = 17864,
-  VPMOVUSQDZ256rrk = 17865,
-  VPMOVUSQDZ256rrkz = 17866,
-  VPMOVUSQDZmr = 17867,
-  VPMOVUSQDZmrk = 17868,
-  VPMOVUSQDZrr = 17869,
-  VPMOVUSQDZrrk = 17870,
-  VPMOVUSQDZrrkz = 17871,
-  VPMOVUSQWZ128mr = 17872,
-  VPMOVUSQWZ128mrk = 17873,
-  VPMOVUSQWZ128rr = 17874,
-  VPMOVUSQWZ128rrk = 17875,
-  VPMOVUSQWZ128rrkz = 17876,
-  VPMOVUSQWZ256mr = 17877,
-  VPMOVUSQWZ256mrk = 17878,
-  VPMOVUSQWZ256rr = 17879,
-  VPMOVUSQWZ256rrk = 17880,
-  VPMOVUSQWZ256rrkz = 17881,
-  VPMOVUSQWZmr = 17882,
-  VPMOVUSQWZmrk = 17883,
-  VPMOVUSQWZrr = 17884,
-  VPMOVUSQWZrrk = 17885,
-  VPMOVUSQWZrrkz = 17886,
-  VPMOVUSWBZ128mr = 17887,
-  VPMOVUSWBZ128mrk = 17888,
-  VPMOVUSWBZ128rr = 17889,
-  VPMOVUSWBZ128rrk = 17890,
-  VPMOVUSWBZ128rrkz = 17891,
-  VPMOVUSWBZ256mr = 17892,
-  VPMOVUSWBZ256mrk = 17893,
-  VPMOVUSWBZ256rr = 17894,
-  VPMOVUSWBZ256rrk = 17895,
-  VPMOVUSWBZ256rrkz = 17896,
-  VPMOVUSWBZmr = 17897,
-  VPMOVUSWBZmrk = 17898,
-  VPMOVUSWBZrr = 17899,
-  VPMOVUSWBZrrk = 17900,
-  VPMOVUSWBZrrkz = 17901,
-  VPMOVW2MZ128kr = 17902,
-  VPMOVW2MZ256kr = 17903,
-  VPMOVW2MZkr = 17904,
-  VPMOVWBZ128mr = 17905,
-  VPMOVWBZ128mrk = 17906,
-  VPMOVWBZ128rr = 17907,
-  VPMOVWBZ128rrk = 17908,
-  VPMOVWBZ128rrkz = 17909,
-  VPMOVWBZ256mr = 17910,
-  VPMOVWBZ256mrk = 17911,
-  VPMOVWBZ256rr = 17912,
-  VPMOVWBZ256rrk = 17913,
-  VPMOVWBZ256rrkz = 17914,
-  VPMOVWBZmr = 17915,
-  VPMOVWBZmrk = 17916,
-  VPMOVWBZrr = 17917,
-  VPMOVWBZrrk = 17918,
-  VPMOVWBZrrkz = 17919,
-  VPMOVZXBDYrm = 17920,
-  VPMOVZXBDYrr = 17921,
-  VPMOVZXBDZ128rm = 17922,
-  VPMOVZXBDZ128rmk = 17923,
-  VPMOVZXBDZ128rmkz = 17924,
-  VPMOVZXBDZ128rr = 17925,
-  VPMOVZXBDZ128rrk = 17926,
-  VPMOVZXBDZ128rrkz = 17927,
-  VPMOVZXBDZ256rm = 17928,
-  VPMOVZXBDZ256rmk = 17929,
-  VPMOVZXBDZ256rmkz = 17930,
-  VPMOVZXBDZ256rr = 17931,
-  VPMOVZXBDZ256rrk = 17932,
-  VPMOVZXBDZ256rrkz = 17933,
-  VPMOVZXBDZrm = 17934,
-  VPMOVZXBDZrmk = 17935,
-  VPMOVZXBDZrmkz = 17936,
-  VPMOVZXBDZrr = 17937,
-  VPMOVZXBDZrrk = 17938,
-  VPMOVZXBDZrrkz = 17939,
-  VPMOVZXBDrm = 17940,
-  VPMOVZXBDrr = 17941,
-  VPMOVZXBQYrm = 17942,
-  VPMOVZXBQYrr = 17943,
-  VPMOVZXBQZ128rm = 17944,
-  VPMOVZXBQZ128rmk = 17945,
-  VPMOVZXBQZ128rmkz = 17946,
-  VPMOVZXBQZ128rr = 17947,
-  VPMOVZXBQZ128rrk = 17948,
-  VPMOVZXBQZ128rrkz = 17949,
-  VPMOVZXBQZ256rm = 17950,
-  VPMOVZXBQZ256rmk = 17951,
-  VPMOVZXBQZ256rmkz = 17952,
-  VPMOVZXBQZ256rr = 17953,
-  VPMOVZXBQZ256rrk = 17954,
-  VPMOVZXBQZ256rrkz = 17955,
-  VPMOVZXBQZrm = 17956,
-  VPMOVZXBQZrmk = 17957,
-  VPMOVZXBQZrmkz = 17958,
-  VPMOVZXBQZrr = 17959,
-  VPMOVZXBQZrrk = 17960,
-  VPMOVZXBQZrrkz = 17961,
-  VPMOVZXBQrm = 17962,
-  VPMOVZXBQrr = 17963,
-  VPMOVZXBWYrm = 17964,
-  VPMOVZXBWYrr = 17965,
-  VPMOVZXBWZ128rm = 17966,
-  VPMOVZXBWZ128rmk = 17967,
-  VPMOVZXBWZ128rmkz = 17968,
-  VPMOVZXBWZ128rr = 17969,
-  VPMOVZXBWZ128rrk = 17970,
-  VPMOVZXBWZ128rrkz = 17971,
-  VPMOVZXBWZ256rm = 17972,
-  VPMOVZXBWZ256rmk = 17973,
-  VPMOVZXBWZ256rmkz = 17974,
-  VPMOVZXBWZ256rr = 17975,
-  VPMOVZXBWZ256rrk = 17976,
-  VPMOVZXBWZ256rrkz = 17977,
-  VPMOVZXBWZrm = 17978,
-  VPMOVZXBWZrmk = 17979,
-  VPMOVZXBWZrmkz = 17980,
-  VPMOVZXBWZrr = 17981,
-  VPMOVZXBWZrrk = 17982,
-  VPMOVZXBWZrrkz = 17983,
-  VPMOVZXBWrm = 17984,
-  VPMOVZXBWrr = 17985,
-  VPMOVZXDQYrm = 17986,
-  VPMOVZXDQYrr = 17987,
-  VPMOVZXDQZ128rm = 17988,
-  VPMOVZXDQZ128rmk = 17989,
-  VPMOVZXDQZ128rmkz = 17990,
-  VPMOVZXDQZ128rr = 17991,
-  VPMOVZXDQZ128rrk = 17992,
-  VPMOVZXDQZ128rrkz = 17993,
-  VPMOVZXDQZ256rm = 17994,
-  VPMOVZXDQZ256rmk = 17995,
-  VPMOVZXDQZ256rmkz = 17996,
-  VPMOVZXDQZ256rr = 17997,
-  VPMOVZXDQZ256rrk = 17998,
-  VPMOVZXDQZ256rrkz = 17999,
-  VPMOVZXDQZrm = 18000,
-  VPMOVZXDQZrmk = 18001,
-  VPMOVZXDQZrmkz = 18002,
-  VPMOVZXDQZrr = 18003,
-  VPMOVZXDQZrrk = 18004,
-  VPMOVZXDQZrrkz = 18005,
-  VPMOVZXDQrm = 18006,
-  VPMOVZXDQrr = 18007,
-  VPMOVZXWDYrm = 18008,
-  VPMOVZXWDYrr = 18009,
-  VPMOVZXWDZ128rm = 18010,
-  VPMOVZXWDZ128rmk = 18011,
-  VPMOVZXWDZ128rmkz = 18012,
-  VPMOVZXWDZ128rr = 18013,
-  VPMOVZXWDZ128rrk = 18014,
-  VPMOVZXWDZ128rrkz = 18015,
-  VPMOVZXWDZ256rm = 18016,
-  VPMOVZXWDZ256rmk = 18017,
-  VPMOVZXWDZ256rmkz = 18018,
-  VPMOVZXWDZ256rr = 18019,
-  VPMOVZXWDZ256rrk = 18020,
-  VPMOVZXWDZ256rrkz = 18021,
-  VPMOVZXWDZrm = 18022,
-  VPMOVZXWDZrmk = 18023,
-  VPMOVZXWDZrmkz = 18024,
-  VPMOVZXWDZrr = 18025,
-  VPMOVZXWDZrrk = 18026,
-  VPMOVZXWDZrrkz = 18027,
-  VPMOVZXWDrm = 18028,
-  VPMOVZXWDrr = 18029,
-  VPMOVZXWQYrm = 18030,
-  VPMOVZXWQYrr = 18031,
-  VPMOVZXWQZ128rm = 18032,
-  VPMOVZXWQZ128rmk = 18033,
-  VPMOVZXWQZ128rmkz = 18034,
-  VPMOVZXWQZ128rr = 18035,
-  VPMOVZXWQZ128rrk = 18036,
-  VPMOVZXWQZ128rrkz = 18037,
-  VPMOVZXWQZ256rm = 18038,
-  VPMOVZXWQZ256rmk = 18039,
-  VPMOVZXWQZ256rmkz = 18040,
-  VPMOVZXWQZ256rr = 18041,
-  VPMOVZXWQZ256rrk = 18042,
-  VPMOVZXWQZ256rrkz = 18043,
-  VPMOVZXWQZrm = 18044,
-  VPMOVZXWQZrmk = 18045,
-  VPMOVZXWQZrmkz = 18046,
-  VPMOVZXWQZrr = 18047,
-  VPMOVZXWQZrrk = 18048,
-  VPMOVZXWQZrrkz = 18049,
-  VPMOVZXWQrm = 18050,
-  VPMOVZXWQrr = 18051,
-  VPMULDQYrm = 18052,
-  VPMULDQYrr = 18053,
-  VPMULDQZ128rm = 18054,
-  VPMULDQZ128rmb = 18055,
-  VPMULDQZ128rmbk = 18056,
-  VPMULDQZ128rmbkz = 18057,
-  VPMULDQZ128rmk = 18058,
-  VPMULDQZ128rmkz = 18059,
-  VPMULDQZ128rr = 18060,
-  VPMULDQZ128rrk = 18061,
-  VPMULDQZ128rrkz = 18062,
-  VPMULDQZ256rm = 18063,
-  VPMULDQZ256rmb = 18064,
-  VPMULDQZ256rmbk = 18065,
-  VPMULDQZ256rmbkz = 18066,
-  VPMULDQZ256rmk = 18067,
-  VPMULDQZ256rmkz = 18068,
-  VPMULDQZ256rr = 18069,
-  VPMULDQZ256rrk = 18070,
-  VPMULDQZ256rrkz = 18071,
-  VPMULDQZrm = 18072,
-  VPMULDQZrmb = 18073,
-  VPMULDQZrmbk = 18074,
-  VPMULDQZrmbkz = 18075,
-  VPMULDQZrmk = 18076,
-  VPMULDQZrmkz = 18077,
-  VPMULDQZrr = 18078,
-  VPMULDQZrrk = 18079,
-  VPMULDQZrrkz = 18080,
-  VPMULDQrm = 18081,
-  VPMULDQrr = 18082,
-  VPMULHRSWYrm = 18083,
-  VPMULHRSWYrr = 18084,
-  VPMULHRSWZ128rm = 18085,
-  VPMULHRSWZ128rmk = 18086,
-  VPMULHRSWZ128rmkz = 18087,
-  VPMULHRSWZ128rr = 18088,
-  VPMULHRSWZ128rrk = 18089,
-  VPMULHRSWZ128rrkz = 18090,
-  VPMULHRSWZ256rm = 18091,
-  VPMULHRSWZ256rmk = 18092,
-  VPMULHRSWZ256rmkz = 18093,
-  VPMULHRSWZ256rr = 18094,
-  VPMULHRSWZ256rrk = 18095,
-  VPMULHRSWZ256rrkz = 18096,
-  VPMULHRSWZrm = 18097,
-  VPMULHRSWZrmk = 18098,
-  VPMULHRSWZrmkz = 18099,
-  VPMULHRSWZrr = 18100,
-  VPMULHRSWZrrk = 18101,
-  VPMULHRSWZrrkz = 18102,
-  VPMULHRSWrm = 18103,
-  VPMULHRSWrr = 18104,
-  VPMULHUWYrm = 18105,
-  VPMULHUWYrr = 18106,
-  VPMULHUWZ128rm = 18107,
-  VPMULHUWZ128rmk = 18108,
-  VPMULHUWZ128rmkz = 18109,
-  VPMULHUWZ128rr = 18110,
-  VPMULHUWZ128rrk = 18111,
-  VPMULHUWZ128rrkz = 18112,
-  VPMULHUWZ256rm = 18113,
-  VPMULHUWZ256rmk = 18114,
-  VPMULHUWZ256rmkz = 18115,
-  VPMULHUWZ256rr = 18116,
-  VPMULHUWZ256rrk = 18117,
-  VPMULHUWZ256rrkz = 18118,
-  VPMULHUWZrm = 18119,
-  VPMULHUWZrmk = 18120,
-  VPMULHUWZrmkz = 18121,
-  VPMULHUWZrr = 18122,
-  VPMULHUWZrrk = 18123,
-  VPMULHUWZrrkz = 18124,
-  VPMULHUWrm = 18125,
-  VPMULHUWrr = 18126,
-  VPMULHWYrm = 18127,
-  VPMULHWYrr = 18128,
-  VPMULHWZ128rm = 18129,
-  VPMULHWZ128rmk = 18130,
-  VPMULHWZ128rmkz = 18131,
-  VPMULHWZ128rr = 18132,
-  VPMULHWZ128rrk = 18133,
-  VPMULHWZ128rrkz = 18134,
-  VPMULHWZ256rm = 18135,
-  VPMULHWZ256rmk = 18136,
-  VPMULHWZ256rmkz = 18137,
-  VPMULHWZ256rr = 18138,
-  VPMULHWZ256rrk = 18139,
-  VPMULHWZ256rrkz = 18140,
-  VPMULHWZrm = 18141,
-  VPMULHWZrmk = 18142,
-  VPMULHWZrmkz = 18143,
-  VPMULHWZrr = 18144,
-  VPMULHWZrrk = 18145,
-  VPMULHWZrrkz = 18146,
-  VPMULHWrm = 18147,
-  VPMULHWrr = 18148,
-  VPMULLDYrm = 18149,
-  VPMULLDYrr = 18150,
-  VPMULLDZ128rm = 18151,
-  VPMULLDZ128rmb = 18152,
-  VPMULLDZ128rmbk = 18153,
-  VPMULLDZ128rmbkz = 18154,
-  VPMULLDZ128rmk = 18155,
-  VPMULLDZ128rmkz = 18156,
-  VPMULLDZ128rr = 18157,
-  VPMULLDZ128rrk = 18158,
-  VPMULLDZ128rrkz = 18159,
-  VPMULLDZ256rm = 18160,
-  VPMULLDZ256rmb = 18161,
-  VPMULLDZ256rmbk = 18162,
-  VPMULLDZ256rmbkz = 18163,
-  VPMULLDZ256rmk = 18164,
-  VPMULLDZ256rmkz = 18165,
-  VPMULLDZ256rr = 18166,
-  VPMULLDZ256rrk = 18167,
-  VPMULLDZ256rrkz = 18168,
-  VPMULLDZrm = 18169,
-  VPMULLDZrmb = 18170,
-  VPMULLDZrmbk = 18171,
-  VPMULLDZrmbkz = 18172,
-  VPMULLDZrmk = 18173,
-  VPMULLDZrmkz = 18174,
-  VPMULLDZrr = 18175,
-  VPMULLDZrrk = 18176,
-  VPMULLDZrrkz = 18177,
-  VPMULLDrm = 18178,
-  VPMULLDrr = 18179,
-  VPMULLQZ128rm = 18180,
-  VPMULLQZ128rmb = 18181,
-  VPMULLQZ128rmbk = 18182,
-  VPMULLQZ128rmbkz = 18183,
-  VPMULLQZ128rmk = 18184,
-  VPMULLQZ128rmkz = 18185,
-  VPMULLQZ128rr = 18186,
-  VPMULLQZ128rrk = 18187,
-  VPMULLQZ128rrkz = 18188,
-  VPMULLQZ256rm = 18189,
-  VPMULLQZ256rmb = 18190,
-  VPMULLQZ256rmbk = 18191,
-  VPMULLQZ256rmbkz = 18192,
-  VPMULLQZ256rmk = 18193,
-  VPMULLQZ256rmkz = 18194,
-  VPMULLQZ256rr = 18195,
-  VPMULLQZ256rrk = 18196,
-  VPMULLQZ256rrkz = 18197,
-  VPMULLQZrm = 18198,
-  VPMULLQZrmb = 18199,
-  VPMULLQZrmbk = 18200,
-  VPMULLQZrmbkz = 18201,
-  VPMULLQZrmk = 18202,
-  VPMULLQZrmkz = 18203,
-  VPMULLQZrr = 18204,
-  VPMULLQZrrk = 18205,
-  VPMULLQZrrkz = 18206,
-  VPMULLWYrm = 18207,
-  VPMULLWYrr = 18208,
-  VPMULLWZ128rm = 18209,
-  VPMULLWZ128rmk = 18210,
-  VPMULLWZ128rmkz = 18211,
-  VPMULLWZ128rr = 18212,
-  VPMULLWZ128rrk = 18213,
-  VPMULLWZ128rrkz = 18214,
-  VPMULLWZ256rm = 18215,
-  VPMULLWZ256rmk = 18216,
-  VPMULLWZ256rmkz = 18217,
-  VPMULLWZ256rr = 18218,
-  VPMULLWZ256rrk = 18219,
-  VPMULLWZ256rrkz = 18220,
-  VPMULLWZrm = 18221,
-  VPMULLWZrmk = 18222,
-  VPMULLWZrmkz = 18223,
-  VPMULLWZrr = 18224,
-  VPMULLWZrrk = 18225,
-  VPMULLWZrrkz = 18226,
-  VPMULLWrm = 18227,
-  VPMULLWrr = 18228,
-  VPMULTISHIFTQBZ128rm = 18229,
-  VPMULTISHIFTQBZ128rmb = 18230,
-  VPMULTISHIFTQBZ128rmbk = 18231,
-  VPMULTISHIFTQBZ128rmbkz = 18232,
-  VPMULTISHIFTQBZ128rmk = 18233,
-  VPMULTISHIFTQBZ128rmkz = 18234,
-  VPMULTISHIFTQBZ128rr = 18235,
-  VPMULTISHIFTQBZ128rrk = 18236,
-  VPMULTISHIFTQBZ128rrkz = 18237,
-  VPMULTISHIFTQBZ256rm = 18238,
-  VPMULTISHIFTQBZ256rmb = 18239,
-  VPMULTISHIFTQBZ256rmbk = 18240,
-  VPMULTISHIFTQBZ256rmbkz = 18241,
-  VPMULTISHIFTQBZ256rmk = 18242,
-  VPMULTISHIFTQBZ256rmkz = 18243,
-  VPMULTISHIFTQBZ256rr = 18244,
-  VPMULTISHIFTQBZ256rrk = 18245,
-  VPMULTISHIFTQBZ256rrkz = 18246,
-  VPMULTISHIFTQBZrm = 18247,
-  VPMULTISHIFTQBZrmb = 18248,
-  VPMULTISHIFTQBZrmbk = 18249,
-  VPMULTISHIFTQBZrmbkz = 18250,
-  VPMULTISHIFTQBZrmk = 18251,
-  VPMULTISHIFTQBZrmkz = 18252,
-  VPMULTISHIFTQBZrr = 18253,
-  VPMULTISHIFTQBZrrk = 18254,
-  VPMULTISHIFTQBZrrkz = 18255,
-  VPMULUDQYrm = 18256,
-  VPMULUDQYrr = 18257,
-  VPMULUDQZ128rm = 18258,
-  VPMULUDQZ128rmb = 18259,
-  VPMULUDQZ128rmbk = 18260,
-  VPMULUDQZ128rmbkz = 18261,
-  VPMULUDQZ128rmk = 18262,
-  VPMULUDQZ128rmkz = 18263,
-  VPMULUDQZ128rr = 18264,
-  VPMULUDQZ128rrk = 18265,
-  VPMULUDQZ128rrkz = 18266,
-  VPMULUDQZ256rm = 18267,
-  VPMULUDQZ256rmb = 18268,
-  VPMULUDQZ256rmbk = 18269,
-  VPMULUDQZ256rmbkz = 18270,
-  VPMULUDQZ256rmk = 18271,
-  VPMULUDQZ256rmkz = 18272,
-  VPMULUDQZ256rr = 18273,
-  VPMULUDQZ256rrk = 18274,
-  VPMULUDQZ256rrkz = 18275,
-  VPMULUDQZrm = 18276,
-  VPMULUDQZrmb = 18277,
-  VPMULUDQZrmbk = 18278,
-  VPMULUDQZrmbkz = 18279,
-  VPMULUDQZrmk = 18280,
-  VPMULUDQZrmkz = 18281,
-  VPMULUDQZrr = 18282,
-  VPMULUDQZrrk = 18283,
-  VPMULUDQZrrkz = 18284,
-  VPMULUDQrm = 18285,
-  VPMULUDQrr = 18286,
-  VPOPCNTBZ128rm = 18287,
-  VPOPCNTBZ128rmk = 18288,
-  VPOPCNTBZ128rmkz = 18289,
-  VPOPCNTBZ128rr = 18290,
-  VPOPCNTBZ128rrk = 18291,
-  VPOPCNTBZ128rrkz = 18292,
-  VPOPCNTBZ256rm = 18293,
-  VPOPCNTBZ256rmk = 18294,
-  VPOPCNTBZ256rmkz = 18295,
-  VPOPCNTBZ256rr = 18296,
-  VPOPCNTBZ256rrk = 18297,
-  VPOPCNTBZ256rrkz = 18298,
-  VPOPCNTBZrm = 18299,
-  VPOPCNTBZrmk = 18300,
-  VPOPCNTBZrmkz = 18301,
-  VPOPCNTBZrr = 18302,
-  VPOPCNTBZrrk = 18303,
-  VPOPCNTBZrrkz = 18304,
-  VPOPCNTDZ128rm = 18305,
-  VPOPCNTDZ128rmb = 18306,
-  VPOPCNTDZ128rmbk = 18307,
-  VPOPCNTDZ128rmbkz = 18308,
-  VPOPCNTDZ128rmk = 18309,
-  VPOPCNTDZ128rmkz = 18310,
-  VPOPCNTDZ128rr = 18311,
-  VPOPCNTDZ128rrk = 18312,
-  VPOPCNTDZ128rrkz = 18313,
-  VPOPCNTDZ256rm = 18314,
-  VPOPCNTDZ256rmb = 18315,
-  VPOPCNTDZ256rmbk = 18316,
-  VPOPCNTDZ256rmbkz = 18317,
-  VPOPCNTDZ256rmk = 18318,
-  VPOPCNTDZ256rmkz = 18319,
-  VPOPCNTDZ256rr = 18320,
-  VPOPCNTDZ256rrk = 18321,
-  VPOPCNTDZ256rrkz = 18322,
-  VPOPCNTDZrm = 18323,
-  VPOPCNTDZrmb = 18324,
-  VPOPCNTDZrmbk = 18325,
-  VPOPCNTDZrmbkz = 18326,
-  VPOPCNTDZrmk = 18327,
-  VPOPCNTDZrmkz = 18328,
-  VPOPCNTDZrr = 18329,
-  VPOPCNTDZrrk = 18330,
-  VPOPCNTDZrrkz = 18331,
-  VPOPCNTQZ128rm = 18332,
-  VPOPCNTQZ128rmb = 18333,
-  VPOPCNTQZ128rmbk = 18334,
-  VPOPCNTQZ128rmbkz = 18335,
-  VPOPCNTQZ128rmk = 18336,
-  VPOPCNTQZ128rmkz = 18337,
-  VPOPCNTQZ128rr = 18338,
-  VPOPCNTQZ128rrk = 18339,
-  VPOPCNTQZ128rrkz = 18340,
-  VPOPCNTQZ256rm = 18341,
-  VPOPCNTQZ256rmb = 18342,
-  VPOPCNTQZ256rmbk = 18343,
-  VPOPCNTQZ256rmbkz = 18344,
-  VPOPCNTQZ256rmk = 18345,
-  VPOPCNTQZ256rmkz = 18346,
-  VPOPCNTQZ256rr = 18347,
-  VPOPCNTQZ256rrk = 18348,
-  VPOPCNTQZ256rrkz = 18349,
-  VPOPCNTQZrm = 18350,
-  VPOPCNTQZrmb = 18351,
-  VPOPCNTQZrmbk = 18352,
-  VPOPCNTQZrmbkz = 18353,
-  VPOPCNTQZrmk = 18354,
-  VPOPCNTQZrmkz = 18355,
-  VPOPCNTQZrr = 18356,
-  VPOPCNTQZrrk = 18357,
-  VPOPCNTQZrrkz = 18358,
-  VPOPCNTWZ128rm = 18359,
-  VPOPCNTWZ128rmk = 18360,
-  VPOPCNTWZ128rmkz = 18361,
-  VPOPCNTWZ128rr = 18362,
-  VPOPCNTWZ128rrk = 18363,
-  VPOPCNTWZ128rrkz = 18364,
-  VPOPCNTWZ256rm = 18365,
-  VPOPCNTWZ256rmk = 18366,
-  VPOPCNTWZ256rmkz = 18367,
-  VPOPCNTWZ256rr = 18368,
-  VPOPCNTWZ256rrk = 18369,
-  VPOPCNTWZ256rrkz = 18370,
-  VPOPCNTWZrm = 18371,
-  VPOPCNTWZrmk = 18372,
-  VPOPCNTWZrmkz = 18373,
-  VPOPCNTWZrr = 18374,
-  VPOPCNTWZrrk = 18375,
-  VPOPCNTWZrrkz = 18376,
-  VPORDZ128rm = 18377,
-  VPORDZ128rmb = 18378,
-  VPORDZ128rmbk = 18379,
-  VPORDZ128rmbkz = 18380,
-  VPORDZ128rmk = 18381,
-  VPORDZ128rmkz = 18382,
-  VPORDZ128rr = 18383,
-  VPORDZ128rrk = 18384,
-  VPORDZ128rrkz = 18385,
-  VPORDZ256rm = 18386,
-  VPORDZ256rmb = 18387,
-  VPORDZ256rmbk = 18388,
-  VPORDZ256rmbkz = 18389,
-  VPORDZ256rmk = 18390,
-  VPORDZ256rmkz = 18391,
-  VPORDZ256rr = 18392,
-  VPORDZ256rrk = 18393,
-  VPORDZ256rrkz = 18394,
-  VPORDZrm = 18395,
-  VPORDZrmb = 18396,
-  VPORDZrmbk = 18397,
-  VPORDZrmbkz = 18398,
-  VPORDZrmk = 18399,
-  VPORDZrmkz = 18400,
-  VPORDZrr = 18401,
-  VPORDZrrk = 18402,
-  VPORDZrrkz = 18403,
-  VPORQZ128rm = 18404,
-  VPORQZ128rmb = 18405,
-  VPORQZ128rmbk = 18406,
-  VPORQZ128rmbkz = 18407,
-  VPORQZ128rmk = 18408,
-  VPORQZ128rmkz = 18409,
-  VPORQZ128rr = 18410,
-  VPORQZ128rrk = 18411,
-  VPORQZ128rrkz = 18412,
-  VPORQZ256rm = 18413,
-  VPORQZ256rmb = 18414,
-  VPORQZ256rmbk = 18415,
-  VPORQZ256rmbkz = 18416,
-  VPORQZ256rmk = 18417,
-  VPORQZ256rmkz = 18418,
-  VPORQZ256rr = 18419,
-  VPORQZ256rrk = 18420,
-  VPORQZ256rrkz = 18421,
-  VPORQZrm = 18422,
-  VPORQZrmb = 18423,
-  VPORQZrmbk = 18424,
-  VPORQZrmbkz = 18425,
-  VPORQZrmk = 18426,
-  VPORQZrmkz = 18427,
-  VPORQZrr = 18428,
-  VPORQZrrk = 18429,
-  VPORQZrrkz = 18430,
-  VPORYrm = 18431,
-  VPORYrr = 18432,
-  VPORrm = 18433,
-  VPORrr = 18434,
-  VPPERMrmr = 18435,
-  VPPERMrrm = 18436,
-  VPPERMrrr = 18437,
-  VPPERMrrr_REV = 18438,
-  VPROLDZ128mbi = 18439,
-  VPROLDZ128mbik = 18440,
-  VPROLDZ128mbikz = 18441,
-  VPROLDZ128mi = 18442,
-  VPROLDZ128mik = 18443,
-  VPROLDZ128mikz = 18444,
-  VPROLDZ128ri = 18445,
-  VPROLDZ128rik = 18446,
-  VPROLDZ128rikz = 18447,
-  VPROLDZ256mbi = 18448,
-  VPROLDZ256mbik = 18449,
-  VPROLDZ256mbikz = 18450,
-  VPROLDZ256mi = 18451,
-  VPROLDZ256mik = 18452,
-  VPROLDZ256mikz = 18453,
-  VPROLDZ256ri = 18454,
-  VPROLDZ256rik = 18455,
-  VPROLDZ256rikz = 18456,
-  VPROLDZmbi = 18457,
-  VPROLDZmbik = 18458,
-  VPROLDZmbikz = 18459,
-  VPROLDZmi = 18460,
-  VPROLDZmik = 18461,
-  VPROLDZmikz = 18462,
-  VPROLDZri = 18463,
-  VPROLDZrik = 18464,
-  VPROLDZrikz = 18465,
-  VPROLQZ128mbi = 18466,
-  VPROLQZ128mbik = 18467,
-  VPROLQZ128mbikz = 18468,
-  VPROLQZ128mi = 18469,
-  VPROLQZ128mik = 18470,
-  VPROLQZ128mikz = 18471,
-  VPROLQZ128ri = 18472,
-  VPROLQZ128rik = 18473,
-  VPROLQZ128rikz = 18474,
-  VPROLQZ256mbi = 18475,
-  VPROLQZ256mbik = 18476,
-  VPROLQZ256mbikz = 18477,
-  VPROLQZ256mi = 18478,
-  VPROLQZ256mik = 18479,
-  VPROLQZ256mikz = 18480,
-  VPROLQZ256ri = 18481,
-  VPROLQZ256rik = 18482,
-  VPROLQZ256rikz = 18483,
-  VPROLQZmbi = 18484,
-  VPROLQZmbik = 18485,
-  VPROLQZmbikz = 18486,
-  VPROLQZmi = 18487,
-  VPROLQZmik = 18488,
-  VPROLQZmikz = 18489,
-  VPROLQZri = 18490,
-  VPROLQZrik = 18491,
-  VPROLQZrikz = 18492,
-  VPROLVDZ128rm = 18493,
-  VPROLVDZ128rmb = 18494,
-  VPROLVDZ128rmbk = 18495,
-  VPROLVDZ128rmbkz = 18496,
-  VPROLVDZ128rmk = 18497,
-  VPROLVDZ128rmkz = 18498,
-  VPROLVDZ128rr = 18499,
-  VPROLVDZ128rrk = 18500,
-  VPROLVDZ128rrkz = 18501,
-  VPROLVDZ256rm = 18502,
-  VPROLVDZ256rmb = 18503,
-  VPROLVDZ256rmbk = 18504,
-  VPROLVDZ256rmbkz = 18505,
-  VPROLVDZ256rmk = 18506,
-  VPROLVDZ256rmkz = 18507,
-  VPROLVDZ256rr = 18508,
-  VPROLVDZ256rrk = 18509,
-  VPROLVDZ256rrkz = 18510,
-  VPROLVDZrm = 18511,
-  VPROLVDZrmb = 18512,
-  VPROLVDZrmbk = 18513,
-  VPROLVDZrmbkz = 18514,
-  VPROLVDZrmk = 18515,
-  VPROLVDZrmkz = 18516,
-  VPROLVDZrr = 18517,
-  VPROLVDZrrk = 18518,
-  VPROLVDZrrkz = 18519,
-  VPROLVQZ128rm = 18520,
-  VPROLVQZ128rmb = 18521,
-  VPROLVQZ128rmbk = 18522,
-  VPROLVQZ128rmbkz = 18523,
-  VPROLVQZ128rmk = 18524,
-  VPROLVQZ128rmkz = 18525,
-  VPROLVQZ128rr = 18526,
-  VPROLVQZ128rrk = 18527,
-  VPROLVQZ128rrkz = 18528,
-  VPROLVQZ256rm = 18529,
-  VPROLVQZ256rmb = 18530,
-  VPROLVQZ256rmbk = 18531,
-  VPROLVQZ256rmbkz = 18532,
-  VPROLVQZ256rmk = 18533,
-  VPROLVQZ256rmkz = 18534,
-  VPROLVQZ256rr = 18535,
-  VPROLVQZ256rrk = 18536,
-  VPROLVQZ256rrkz = 18537,
-  VPROLVQZrm = 18538,
-  VPROLVQZrmb = 18539,
-  VPROLVQZrmbk = 18540,
-  VPROLVQZrmbkz = 18541,
-  VPROLVQZrmk = 18542,
-  VPROLVQZrmkz = 18543,
-  VPROLVQZrr = 18544,
-  VPROLVQZrrk = 18545,
-  VPROLVQZrrkz = 18546,
-  VPRORDZ128mbi = 18547,
-  VPRORDZ128mbik = 18548,
-  VPRORDZ128mbikz = 18549,
-  VPRORDZ128mi = 18550,
-  VPRORDZ128mik = 18551,
-  VPRORDZ128mikz = 18552,
-  VPRORDZ128ri = 18553,
-  VPRORDZ128rik = 18554,
-  VPRORDZ128rikz = 18555,
-  VPRORDZ256mbi = 18556,
-  VPRORDZ256mbik = 18557,
-  VPRORDZ256mbikz = 18558,
-  VPRORDZ256mi = 18559,
-  VPRORDZ256mik = 18560,
-  VPRORDZ256mikz = 18561,
-  VPRORDZ256ri = 18562,
-  VPRORDZ256rik = 18563,
-  VPRORDZ256rikz = 18564,
-  VPRORDZmbi = 18565,
-  VPRORDZmbik = 18566,
-  VPRORDZmbikz = 18567,
-  VPRORDZmi = 18568,
-  VPRORDZmik = 18569,
-  VPRORDZmikz = 18570,
-  VPRORDZri = 18571,
-  VPRORDZrik = 18572,
-  VPRORDZrikz = 18573,
-  VPRORQZ128mbi = 18574,
-  VPRORQZ128mbik = 18575,
-  VPRORQZ128mbikz = 18576,
-  VPRORQZ128mi = 18577,
-  VPRORQZ128mik = 18578,
-  VPRORQZ128mikz = 18579,
-  VPRORQZ128ri = 18580,
-  VPRORQZ128rik = 18581,
-  VPRORQZ128rikz = 18582,
-  VPRORQZ256mbi = 18583,
-  VPRORQZ256mbik = 18584,
-  VPRORQZ256mbikz = 18585,
-  VPRORQZ256mi = 18586,
-  VPRORQZ256mik = 18587,
-  VPRORQZ256mikz = 18588,
-  VPRORQZ256ri = 18589,
-  VPRORQZ256rik = 18590,
-  VPRORQZ256rikz = 18591,
-  VPRORQZmbi = 18592,
-  VPRORQZmbik = 18593,
-  VPRORQZmbikz = 18594,
-  VPRORQZmi = 18595,
-  VPRORQZmik = 18596,
-  VPRORQZmikz = 18597,
-  VPRORQZri = 18598,
-  VPRORQZrik = 18599,
-  VPRORQZrikz = 18600,
-  VPRORVDZ128rm = 18601,
-  VPRORVDZ128rmb = 18602,
-  VPRORVDZ128rmbk = 18603,
-  VPRORVDZ128rmbkz = 18604,
-  VPRORVDZ128rmk = 18605,
-  VPRORVDZ128rmkz = 18606,
-  VPRORVDZ128rr = 18607,
-  VPRORVDZ128rrk = 18608,
-  VPRORVDZ128rrkz = 18609,
-  VPRORVDZ256rm = 18610,
-  VPRORVDZ256rmb = 18611,
-  VPRORVDZ256rmbk = 18612,
-  VPRORVDZ256rmbkz = 18613,
-  VPRORVDZ256rmk = 18614,
-  VPRORVDZ256rmkz = 18615,
-  VPRORVDZ256rr = 18616,
-  VPRORVDZ256rrk = 18617,
-  VPRORVDZ256rrkz = 18618,
-  VPRORVDZrm = 18619,
-  VPRORVDZrmb = 18620,
-  VPRORVDZrmbk = 18621,
-  VPRORVDZrmbkz = 18622,
-  VPRORVDZrmk = 18623,
-  VPRORVDZrmkz = 18624,
-  VPRORVDZrr = 18625,
-  VPRORVDZrrk = 18626,
-  VPRORVDZrrkz = 18627,
-  VPRORVQZ128rm = 18628,
-  VPRORVQZ128rmb = 18629,
-  VPRORVQZ128rmbk = 18630,
-  VPRORVQZ128rmbkz = 18631,
-  VPRORVQZ128rmk = 18632,
-  VPRORVQZ128rmkz = 18633,
-  VPRORVQZ128rr = 18634,
-  VPRORVQZ128rrk = 18635,
-  VPRORVQZ128rrkz = 18636,
-  VPRORVQZ256rm = 18637,
-  VPRORVQZ256rmb = 18638,
-  VPRORVQZ256rmbk = 18639,
-  VPRORVQZ256rmbkz = 18640,
-  VPRORVQZ256rmk = 18641,
-  VPRORVQZ256rmkz = 18642,
-  VPRORVQZ256rr = 18643,
-  VPRORVQZ256rrk = 18644,
-  VPRORVQZ256rrkz = 18645,
-  VPRORVQZrm = 18646,
-  VPRORVQZrmb = 18647,
-  VPRORVQZrmbk = 18648,
-  VPRORVQZrmbkz = 18649,
-  VPRORVQZrmk = 18650,
-  VPRORVQZrmkz = 18651,
-  VPRORVQZrr = 18652,
-  VPRORVQZrrk = 18653,
-  VPRORVQZrrkz = 18654,
-  VPROTBmi = 18655,
-  VPROTBmr = 18656,
-  VPROTBri = 18657,
-  VPROTBrm = 18658,
-  VPROTBrr = 18659,
-  VPROTBrr_REV = 18660,
-  VPROTDmi = 18661,
-  VPROTDmr = 18662,
-  VPROTDri = 18663,
-  VPROTDrm = 18664,
-  VPROTDrr = 18665,
-  VPROTDrr_REV = 18666,
-  VPROTQmi = 18667,
-  VPROTQmr = 18668,
-  VPROTQri = 18669,
-  VPROTQrm = 18670,
-  VPROTQrr = 18671,
-  VPROTQrr_REV = 18672,
-  VPROTWmi = 18673,
-  VPROTWmr = 18674,
-  VPROTWri = 18675,
-  VPROTWrm = 18676,
-  VPROTWrr = 18677,
-  VPROTWrr_REV = 18678,
-  VPSADBWYrm = 18679,
-  VPSADBWYrr = 18680,
-  VPSADBWZ128rm = 18681,
-  VPSADBWZ128rr = 18682,
-  VPSADBWZ256rm = 18683,
-  VPSADBWZ256rr = 18684,
-  VPSADBWZrm = 18685,
-  VPSADBWZrr = 18686,
-  VPSADBWrm = 18687,
-  VPSADBWrr = 18688,
-  VPSCATTERDDZ128mr = 18689,
-  VPSCATTERDDZ256mr = 18690,
-  VPSCATTERDDZmr = 18691,
-  VPSCATTERDQZ128mr = 18692,
-  VPSCATTERDQZ256mr = 18693,
-  VPSCATTERDQZmr = 18694,
-  VPSCATTERQDZ128mr = 18695,
-  VPSCATTERQDZ256mr = 18696,
-  VPSCATTERQDZmr = 18697,
-  VPSCATTERQQZ128mr = 18698,
-  VPSCATTERQQZ256mr = 18699,
-  VPSCATTERQQZmr = 18700,
-  VPSHABmr = 18701,
-  VPSHABrm = 18702,
-  VPSHABrr = 18703,
-  VPSHABrr_REV = 18704,
-  VPSHADmr = 18705,
-  VPSHADrm = 18706,
-  VPSHADrr = 18707,
-  VPSHADrr_REV = 18708,
-  VPSHAQmr = 18709,
-  VPSHAQrm = 18710,
-  VPSHAQrr = 18711,
-  VPSHAQrr_REV = 18712,
-  VPSHAWmr = 18713,
-  VPSHAWrm = 18714,
-  VPSHAWrr = 18715,
-  VPSHAWrr_REV = 18716,
-  VPSHLBmr = 18717,
-  VPSHLBrm = 18718,
-  VPSHLBrr = 18719,
-  VPSHLBrr_REV = 18720,
-  VPSHLDDZ128rmbi = 18721,
-  VPSHLDDZ128rmbik = 18722,
-  VPSHLDDZ128rmbikz = 18723,
-  VPSHLDDZ128rmi = 18724,
-  VPSHLDDZ128rmik = 18725,
-  VPSHLDDZ128rmikz = 18726,
-  VPSHLDDZ128rri = 18727,
-  VPSHLDDZ128rrik = 18728,
-  VPSHLDDZ128rrikz = 18729,
-  VPSHLDDZ256rmbi = 18730,
-  VPSHLDDZ256rmbik = 18731,
-  VPSHLDDZ256rmbikz = 18732,
-  VPSHLDDZ256rmi = 18733,
-  VPSHLDDZ256rmik = 18734,
-  VPSHLDDZ256rmikz = 18735,
-  VPSHLDDZ256rri = 18736,
-  VPSHLDDZ256rrik = 18737,
-  VPSHLDDZ256rrikz = 18738,
-  VPSHLDDZrmbi = 18739,
-  VPSHLDDZrmbik = 18740,
-  VPSHLDDZrmbikz = 18741,
-  VPSHLDDZrmi = 18742,
-  VPSHLDDZrmik = 18743,
-  VPSHLDDZrmikz = 18744,
-  VPSHLDDZrri = 18745,
-  VPSHLDDZrrik = 18746,
-  VPSHLDDZrrikz = 18747,
-  VPSHLDQZ128rmbi = 18748,
-  VPSHLDQZ128rmbik = 18749,
-  VPSHLDQZ128rmbikz = 18750,
-  VPSHLDQZ128rmi = 18751,
-  VPSHLDQZ128rmik = 18752,
-  VPSHLDQZ128rmikz = 18753,
-  VPSHLDQZ128rri = 18754,
-  VPSHLDQZ128rrik = 18755,
-  VPSHLDQZ128rrikz = 18756,
-  VPSHLDQZ256rmbi = 18757,
-  VPSHLDQZ256rmbik = 18758,
-  VPSHLDQZ256rmbikz = 18759,
-  VPSHLDQZ256rmi = 18760,
-  VPSHLDQZ256rmik = 18761,
-  VPSHLDQZ256rmikz = 18762,
-  VPSHLDQZ256rri = 18763,
-  VPSHLDQZ256rrik = 18764,
-  VPSHLDQZ256rrikz = 18765,
-  VPSHLDQZrmbi = 18766,
-  VPSHLDQZrmbik = 18767,
-  VPSHLDQZrmbikz = 18768,
-  VPSHLDQZrmi = 18769,
-  VPSHLDQZrmik = 18770,
-  VPSHLDQZrmikz = 18771,
-  VPSHLDQZrri = 18772,
-  VPSHLDQZrrik = 18773,
-  VPSHLDQZrrikz = 18774,
-  VPSHLDVDZ128m = 18775,
-  VPSHLDVDZ128mb = 18776,
-  VPSHLDVDZ128mbk = 18777,
-  VPSHLDVDZ128mbkz = 18778,
-  VPSHLDVDZ128mk = 18779,
-  VPSHLDVDZ128mkz = 18780,
-  VPSHLDVDZ128r = 18781,
-  VPSHLDVDZ128rk = 18782,
-  VPSHLDVDZ128rkz = 18783,
-  VPSHLDVDZ256m = 18784,
-  VPSHLDVDZ256mb = 18785,
-  VPSHLDVDZ256mbk = 18786,
-  VPSHLDVDZ256mbkz = 18787,
-  VPSHLDVDZ256mk = 18788,
-  VPSHLDVDZ256mkz = 18789,
-  VPSHLDVDZ256r = 18790,
-  VPSHLDVDZ256rk = 18791,
-  VPSHLDVDZ256rkz = 18792,
-  VPSHLDVDZm = 18793,
-  VPSHLDVDZmb = 18794,
-  VPSHLDVDZmbk = 18795,
-  VPSHLDVDZmbkz = 18796,
-  VPSHLDVDZmk = 18797,
-  VPSHLDVDZmkz = 18798,
-  VPSHLDVDZr = 18799,
-  VPSHLDVDZrk = 18800,
-  VPSHLDVDZrkz = 18801,
-  VPSHLDVQZ128m = 18802,
-  VPSHLDVQZ128mb = 18803,
-  VPSHLDVQZ128mbk = 18804,
-  VPSHLDVQZ128mbkz = 18805,
-  VPSHLDVQZ128mk = 18806,
-  VPSHLDVQZ128mkz = 18807,
-  VPSHLDVQZ128r = 18808,
-  VPSHLDVQZ128rk = 18809,
-  VPSHLDVQZ128rkz = 18810,
-  VPSHLDVQZ256m = 18811,
-  VPSHLDVQZ256mb = 18812,
-  VPSHLDVQZ256mbk = 18813,
-  VPSHLDVQZ256mbkz = 18814,
-  VPSHLDVQZ256mk = 18815,
-  VPSHLDVQZ256mkz = 18816,
-  VPSHLDVQZ256r = 18817,
-  VPSHLDVQZ256rk = 18818,
-  VPSHLDVQZ256rkz = 18819,
-  VPSHLDVQZm = 18820,
-  VPSHLDVQZmb = 18821,
-  VPSHLDVQZmbk = 18822,
-  VPSHLDVQZmbkz = 18823,
-  VPSHLDVQZmk = 18824,
-  VPSHLDVQZmkz = 18825,
-  VPSHLDVQZr = 18826,
-  VPSHLDVQZrk = 18827,
-  VPSHLDVQZrkz = 18828,
-  VPSHLDVWZ128m = 18829,
-  VPSHLDVWZ128mk = 18830,
-  VPSHLDVWZ128mkz = 18831,
-  VPSHLDVWZ128r = 18832,
-  VPSHLDVWZ128rk = 18833,
-  VPSHLDVWZ128rkz = 18834,
-  VPSHLDVWZ256m = 18835,
-  VPSHLDVWZ256mk = 18836,
-  VPSHLDVWZ256mkz = 18837,
-  VPSHLDVWZ256r = 18838,
-  VPSHLDVWZ256rk = 18839,
-  VPSHLDVWZ256rkz = 18840,
-  VPSHLDVWZm = 18841,
-  VPSHLDVWZmk = 18842,
-  VPSHLDVWZmkz = 18843,
-  VPSHLDVWZr = 18844,
-  VPSHLDVWZrk = 18845,
-  VPSHLDVWZrkz = 18846,
-  VPSHLDWZ128rmi = 18847,
-  VPSHLDWZ128rmik = 18848,
-  VPSHLDWZ128rmikz = 18849,
-  VPSHLDWZ128rri = 18850,
-  VPSHLDWZ128rrik = 18851,
-  VPSHLDWZ128rrikz = 18852,
-  VPSHLDWZ256rmi = 18853,
-  VPSHLDWZ256rmik = 18854,
-  VPSHLDWZ256rmikz = 18855,
-  VPSHLDWZ256rri = 18856,
-  VPSHLDWZ256rrik = 18857,
-  VPSHLDWZ256rrikz = 18858,
-  VPSHLDWZrmi = 18859,
-  VPSHLDWZrmik = 18860,
-  VPSHLDWZrmikz = 18861,
-  VPSHLDWZrri = 18862,
-  VPSHLDWZrrik = 18863,
-  VPSHLDWZrrikz = 18864,
-  VPSHLDmr = 18865,
-  VPSHLDrm = 18866,
-  VPSHLDrr = 18867,
-  VPSHLDrr_REV = 18868,
-  VPSHLQmr = 18869,
-  VPSHLQrm = 18870,
-  VPSHLQrr = 18871,
-  VPSHLQrr_REV = 18872,
-  VPSHLWmr = 18873,
-  VPSHLWrm = 18874,
-  VPSHLWrr = 18875,
-  VPSHLWrr_REV = 18876,
-  VPSHRDDZ128rmbi = 18877,
-  VPSHRDDZ128rmbik = 18878,
-  VPSHRDDZ128rmbikz = 18879,
-  VPSHRDDZ128rmi = 18880,
-  VPSHRDDZ128rmik = 18881,
-  VPSHRDDZ128rmikz = 18882,
-  VPSHRDDZ128rri = 18883,
-  VPSHRDDZ128rrik = 18884,
-  VPSHRDDZ128rrikz = 18885,
-  VPSHRDDZ256rmbi = 18886,
-  VPSHRDDZ256rmbik = 18887,
-  VPSHRDDZ256rmbikz = 18888,
-  VPSHRDDZ256rmi = 18889,
-  VPSHRDDZ256rmik = 18890,
-  VPSHRDDZ256rmikz = 18891,
-  VPSHRDDZ256rri = 18892,
-  VPSHRDDZ256rrik = 18893,
-  VPSHRDDZ256rrikz = 18894,
-  VPSHRDDZrmbi = 18895,
-  VPSHRDDZrmbik = 18896,
-  VPSHRDDZrmbikz = 18897,
-  VPSHRDDZrmi = 18898,
-  VPSHRDDZrmik = 18899,
-  VPSHRDDZrmikz = 18900,
-  VPSHRDDZrri = 18901,
-  VPSHRDDZrrik = 18902,
-  VPSHRDDZrrikz = 18903,
-  VPSHRDQZ128rmbi = 18904,
-  VPSHRDQZ128rmbik = 18905,
-  VPSHRDQZ128rmbikz = 18906,
-  VPSHRDQZ128rmi = 18907,
-  VPSHRDQZ128rmik = 18908,
-  VPSHRDQZ128rmikz = 18909,
-  VPSHRDQZ128rri = 18910,
-  VPSHRDQZ128rrik = 18911,
-  VPSHRDQZ128rrikz = 18912,
-  VPSHRDQZ256rmbi = 18913,
-  VPSHRDQZ256rmbik = 18914,
-  VPSHRDQZ256rmbikz = 18915,
-  VPSHRDQZ256rmi = 18916,
-  VPSHRDQZ256rmik = 18917,
-  VPSHRDQZ256rmikz = 18918,
-  VPSHRDQZ256rri = 18919,
-  VPSHRDQZ256rrik = 18920,
-  VPSHRDQZ256rrikz = 18921,
-  VPSHRDQZrmbi = 18922,
-  VPSHRDQZrmbik = 18923,
-  VPSHRDQZrmbikz = 18924,
-  VPSHRDQZrmi = 18925,
-  VPSHRDQZrmik = 18926,
-  VPSHRDQZrmikz = 18927,
-  VPSHRDQZrri = 18928,
-  VPSHRDQZrrik = 18929,
-  VPSHRDQZrrikz = 18930,
-  VPSHRDVDZ128m = 18931,
-  VPSHRDVDZ128mb = 18932,
-  VPSHRDVDZ128mbk = 18933,
-  VPSHRDVDZ128mbkz = 18934,
-  VPSHRDVDZ128mk = 18935,
-  VPSHRDVDZ128mkz = 18936,
-  VPSHRDVDZ128r = 18937,
-  VPSHRDVDZ128rk = 18938,
-  VPSHRDVDZ128rkz = 18939,
-  VPSHRDVDZ256m = 18940,
-  VPSHRDVDZ256mb = 18941,
-  VPSHRDVDZ256mbk = 18942,
-  VPSHRDVDZ256mbkz = 18943,
-  VPSHRDVDZ256mk = 18944,
-  VPSHRDVDZ256mkz = 18945,
-  VPSHRDVDZ256r = 18946,
-  VPSHRDVDZ256rk = 18947,
-  VPSHRDVDZ256rkz = 18948,
-  VPSHRDVDZm = 18949,
-  VPSHRDVDZmb = 18950,
-  VPSHRDVDZmbk = 18951,
-  VPSHRDVDZmbkz = 18952,
-  VPSHRDVDZmk = 18953,
-  VPSHRDVDZmkz = 18954,
-  VPSHRDVDZr = 18955,
-  VPSHRDVDZrk = 18956,
-  VPSHRDVDZrkz = 18957,
-  VPSHRDVQZ128m = 18958,
-  VPSHRDVQZ128mb = 18959,
-  VPSHRDVQZ128mbk = 18960,
-  VPSHRDVQZ128mbkz = 18961,
-  VPSHRDVQZ128mk = 18962,
-  VPSHRDVQZ128mkz = 18963,
-  VPSHRDVQZ128r = 18964,
-  VPSHRDVQZ128rk = 18965,
-  VPSHRDVQZ128rkz = 18966,
-  VPSHRDVQZ256m = 18967,
-  VPSHRDVQZ256mb = 18968,
-  VPSHRDVQZ256mbk = 18969,
-  VPSHRDVQZ256mbkz = 18970,
-  VPSHRDVQZ256mk = 18971,
-  VPSHRDVQZ256mkz = 18972,
-  VPSHRDVQZ256r = 18973,
-  VPSHRDVQZ256rk = 18974,
-  VPSHRDVQZ256rkz = 18975,
-  VPSHRDVQZm = 18976,
-  VPSHRDVQZmb = 18977,
-  VPSHRDVQZmbk = 18978,
-  VPSHRDVQZmbkz = 18979,
-  VPSHRDVQZmk = 18980,
-  VPSHRDVQZmkz = 18981,
-  VPSHRDVQZr = 18982,
-  VPSHRDVQZrk = 18983,
-  VPSHRDVQZrkz = 18984,
-  VPSHRDVWZ128m = 18985,
-  VPSHRDVWZ128mk = 18986,
-  VPSHRDVWZ128mkz = 18987,
-  VPSHRDVWZ128r = 18988,
-  VPSHRDVWZ128rk = 18989,
-  VPSHRDVWZ128rkz = 18990,
-  VPSHRDVWZ256m = 18991,
-  VPSHRDVWZ256mk = 18992,
-  VPSHRDVWZ256mkz = 18993,
-  VPSHRDVWZ256r = 18994,
-  VPSHRDVWZ256rk = 18995,
-  VPSHRDVWZ256rkz = 18996,
-  VPSHRDVWZm = 18997,
-  VPSHRDVWZmk = 18998,
-  VPSHRDVWZmkz = 18999,
-  VPSHRDVWZr = 19000,
-  VPSHRDVWZrk = 19001,
-  VPSHRDVWZrkz = 19002,
-  VPSHRDWZ128rmi = 19003,
-  VPSHRDWZ128rmik = 19004,
-  VPSHRDWZ128rmikz = 19005,
-  VPSHRDWZ128rri = 19006,
-  VPSHRDWZ128rrik = 19007,
-  VPSHRDWZ128rrikz = 19008,
-  VPSHRDWZ256rmi = 19009,
-  VPSHRDWZ256rmik = 19010,
-  VPSHRDWZ256rmikz = 19011,
-  VPSHRDWZ256rri = 19012,
-  VPSHRDWZ256rrik = 19013,
-  VPSHRDWZ256rrikz = 19014,
-  VPSHRDWZrmi = 19015,
-  VPSHRDWZrmik = 19016,
-  VPSHRDWZrmikz = 19017,
-  VPSHRDWZrri = 19018,
-  VPSHRDWZrrik = 19019,
-  VPSHRDWZrrikz = 19020,
-  VPSHUFBITQMBZ128rm = 19021,
-  VPSHUFBITQMBZ128rmk = 19022,
-  VPSHUFBITQMBZ128rr = 19023,
-  VPSHUFBITQMBZ128rrk = 19024,
-  VPSHUFBITQMBZ256rm = 19025,
-  VPSHUFBITQMBZ256rmk = 19026,
-  VPSHUFBITQMBZ256rr = 19027,
-  VPSHUFBITQMBZ256rrk = 19028,
-  VPSHUFBITQMBZrm = 19029,
-  VPSHUFBITQMBZrmk = 19030,
-  VPSHUFBITQMBZrr = 19031,
-  VPSHUFBITQMBZrrk = 19032,
-  VPSHUFBYrm = 19033,
-  VPSHUFBYrr = 19034,
-  VPSHUFBZ128rm = 19035,
-  VPSHUFBZ128rmk = 19036,
-  VPSHUFBZ128rmkz = 19037,
-  VPSHUFBZ128rr = 19038,
-  VPSHUFBZ128rrk = 19039,
-  VPSHUFBZ128rrkz = 19040,
-  VPSHUFBZ256rm = 19041,
-  VPSHUFBZ256rmk = 19042,
-  VPSHUFBZ256rmkz = 19043,
-  VPSHUFBZ256rr = 19044,
-  VPSHUFBZ256rrk = 19045,
-  VPSHUFBZ256rrkz = 19046,
-  VPSHUFBZrm = 19047,
-  VPSHUFBZrmk = 19048,
-  VPSHUFBZrmkz = 19049,
-  VPSHUFBZrr = 19050,
-  VPSHUFBZrrk = 19051,
-  VPSHUFBZrrkz = 19052,
-  VPSHUFBrm = 19053,
-  VPSHUFBrr = 19054,
-  VPSHUFDYmi = 19055,
-  VPSHUFDYri = 19056,
-  VPSHUFDZ128mbi = 19057,
-  VPSHUFDZ128mbik = 19058,
-  VPSHUFDZ128mbikz = 19059,
-  VPSHUFDZ128mi = 19060,
-  VPSHUFDZ128mik = 19061,
-  VPSHUFDZ128mikz = 19062,
-  VPSHUFDZ128ri = 19063,
-  VPSHUFDZ128rik = 19064,
-  VPSHUFDZ128rikz = 19065,
-  VPSHUFDZ256mbi = 19066,
-  VPSHUFDZ256mbik = 19067,
-  VPSHUFDZ256mbikz = 19068,
-  VPSHUFDZ256mi = 19069,
-  VPSHUFDZ256mik = 19070,
-  VPSHUFDZ256mikz = 19071,
-  VPSHUFDZ256ri = 19072,
-  VPSHUFDZ256rik = 19073,
-  VPSHUFDZ256rikz = 19074,
-  VPSHUFDZmbi = 19075,
-  VPSHUFDZmbik = 19076,
-  VPSHUFDZmbikz = 19077,
-  VPSHUFDZmi = 19078,
-  VPSHUFDZmik = 19079,
-  VPSHUFDZmikz = 19080,
-  VPSHUFDZri = 19081,
-  VPSHUFDZrik = 19082,
-  VPSHUFDZrikz = 19083,
-  VPSHUFDmi = 19084,
-  VPSHUFDri = 19085,
-  VPSHUFHWYmi = 19086,
-  VPSHUFHWYri = 19087,
-  VPSHUFHWZ128mi = 19088,
-  VPSHUFHWZ128mik = 19089,
-  VPSHUFHWZ128mikz = 19090,
-  VPSHUFHWZ128ri = 19091,
-  VPSHUFHWZ128rik = 19092,
-  VPSHUFHWZ128rikz = 19093,
-  VPSHUFHWZ256mi = 19094,
-  VPSHUFHWZ256mik = 19095,
-  VPSHUFHWZ256mikz = 19096,
-  VPSHUFHWZ256ri = 19097,
-  VPSHUFHWZ256rik = 19098,
-  VPSHUFHWZ256rikz = 19099,
-  VPSHUFHWZmi = 19100,
-  VPSHUFHWZmik = 19101,
-  VPSHUFHWZmikz = 19102,
-  VPSHUFHWZri = 19103,
-  VPSHUFHWZrik = 19104,
-  VPSHUFHWZrikz = 19105,
-  VPSHUFHWmi = 19106,
-  VPSHUFHWri = 19107,
-  VPSHUFLWYmi = 19108,
-  VPSHUFLWYri = 19109,
-  VPSHUFLWZ128mi = 19110,
-  VPSHUFLWZ128mik = 19111,
-  VPSHUFLWZ128mikz = 19112,
-  VPSHUFLWZ128ri = 19113,
-  VPSHUFLWZ128rik = 19114,
-  VPSHUFLWZ128rikz = 19115,
-  VPSHUFLWZ256mi = 19116,
-  VPSHUFLWZ256mik = 19117,
-  VPSHUFLWZ256mikz = 19118,
-  VPSHUFLWZ256ri = 19119,
-  VPSHUFLWZ256rik = 19120,
-  VPSHUFLWZ256rikz = 19121,
-  VPSHUFLWZmi = 19122,
-  VPSHUFLWZmik = 19123,
-  VPSHUFLWZmikz = 19124,
-  VPSHUFLWZri = 19125,
-  VPSHUFLWZrik = 19126,
-  VPSHUFLWZrikz = 19127,
-  VPSHUFLWmi = 19128,
-  VPSHUFLWri = 19129,
-  VPSIGNBYrm = 19130,
-  VPSIGNBYrr = 19131,
-  VPSIGNBrm = 19132,
-  VPSIGNBrr = 19133,
-  VPSIGNDYrm = 19134,
-  VPSIGNDYrr = 19135,
-  VPSIGNDrm = 19136,
-  VPSIGNDrr = 19137,
-  VPSIGNWYrm = 19138,
-  VPSIGNWYrr = 19139,
-  VPSIGNWrm = 19140,
-  VPSIGNWrr = 19141,
-  VPSLLDQYri = 19142,
-  VPSLLDQZ128mi = 19143,
-  VPSLLDQZ128ri = 19144,
-  VPSLLDQZ256mi = 19145,
-  VPSLLDQZ256ri = 19146,
-  VPSLLDQZmi = 19147,
-  VPSLLDQZri = 19148,
-  VPSLLDQri = 19149,
-  VPSLLDYri = 19150,
-  VPSLLDYrm = 19151,
-  VPSLLDYrr = 19152,
-  VPSLLDZ128mbi = 19153,
-  VPSLLDZ128mbik = 19154,
-  VPSLLDZ128mbikz = 19155,
-  VPSLLDZ128mi = 19156,
-  VPSLLDZ128mik = 19157,
-  VPSLLDZ128mikz = 19158,
-  VPSLLDZ128ri = 19159,
-  VPSLLDZ128rik = 19160,
-  VPSLLDZ128rikz = 19161,
-  VPSLLDZ128rm = 19162,
-  VPSLLDZ128rmk = 19163,
-  VPSLLDZ128rmkz = 19164,
-  VPSLLDZ128rr = 19165,
-  VPSLLDZ128rrk = 19166,
-  VPSLLDZ128rrkz = 19167,
-  VPSLLDZ256mbi = 19168,
-  VPSLLDZ256mbik = 19169,
-  VPSLLDZ256mbikz = 19170,
-  VPSLLDZ256mi = 19171,
-  VPSLLDZ256mik = 19172,
-  VPSLLDZ256mikz = 19173,
-  VPSLLDZ256ri = 19174,
-  VPSLLDZ256rik = 19175,
-  VPSLLDZ256rikz = 19176,
-  VPSLLDZ256rm = 19177,
-  VPSLLDZ256rmk = 19178,
-  VPSLLDZ256rmkz = 19179,
-  VPSLLDZ256rr = 19180,
-  VPSLLDZ256rrk = 19181,
-  VPSLLDZ256rrkz = 19182,
-  VPSLLDZmbi = 19183,
-  VPSLLDZmbik = 19184,
-  VPSLLDZmbikz = 19185,
-  VPSLLDZmi = 19186,
-  VPSLLDZmik = 19187,
-  VPSLLDZmikz = 19188,
-  VPSLLDZri = 19189,
-  VPSLLDZrik = 19190,
-  VPSLLDZrikz = 19191,
-  VPSLLDZrm = 19192,
-  VPSLLDZrmk = 19193,
-  VPSLLDZrmkz = 19194,
-  VPSLLDZrr = 19195,
-  VPSLLDZrrk = 19196,
-  VPSLLDZrrkz = 19197,
-  VPSLLDri = 19198,
-  VPSLLDrm = 19199,
-  VPSLLDrr = 19200,
-  VPSLLQYri = 19201,
-  VPSLLQYrm = 19202,
-  VPSLLQYrr = 19203,
-  VPSLLQZ128mbi = 19204,
-  VPSLLQZ128mbik = 19205,
-  VPSLLQZ128mbikz = 19206,
-  VPSLLQZ128mi = 19207,
-  VPSLLQZ128mik = 19208,
-  VPSLLQZ128mikz = 19209,
-  VPSLLQZ128ri = 19210,
-  VPSLLQZ128rik = 19211,
-  VPSLLQZ128rikz = 19212,
-  VPSLLQZ128rm = 19213,
-  VPSLLQZ128rmk = 19214,
-  VPSLLQZ128rmkz = 19215,
-  VPSLLQZ128rr = 19216,
-  VPSLLQZ128rrk = 19217,
-  VPSLLQZ128rrkz = 19218,
-  VPSLLQZ256mbi = 19219,
-  VPSLLQZ256mbik = 19220,
-  VPSLLQZ256mbikz = 19221,
-  VPSLLQZ256mi = 19222,
-  VPSLLQZ256mik = 19223,
-  VPSLLQZ256mikz = 19224,
-  VPSLLQZ256ri = 19225,
-  VPSLLQZ256rik = 19226,
-  VPSLLQZ256rikz = 19227,
-  VPSLLQZ256rm = 19228,
-  VPSLLQZ256rmk = 19229,
-  VPSLLQZ256rmkz = 19230,
-  VPSLLQZ256rr = 19231,
-  VPSLLQZ256rrk = 19232,
-  VPSLLQZ256rrkz = 19233,
-  VPSLLQZmbi = 19234,
-  VPSLLQZmbik = 19235,
-  VPSLLQZmbikz = 19236,
-  VPSLLQZmi = 19237,
-  VPSLLQZmik = 19238,
-  VPSLLQZmikz = 19239,
-  VPSLLQZri = 19240,
-  VPSLLQZrik = 19241,
-  VPSLLQZrikz = 19242,
-  VPSLLQZrm = 19243,
-  VPSLLQZrmk = 19244,
-  VPSLLQZrmkz = 19245,
-  VPSLLQZrr = 19246,
-  VPSLLQZrrk = 19247,
-  VPSLLQZrrkz = 19248,
-  VPSLLQri = 19249,
-  VPSLLQrm = 19250,
-  VPSLLQrr = 19251,
-  VPSLLVDYrm = 19252,
-  VPSLLVDYrr = 19253,
-  VPSLLVDZ128rm = 19254,
-  VPSLLVDZ128rmb = 19255,
-  VPSLLVDZ128rmbk = 19256,
-  VPSLLVDZ128rmbkz = 19257,
-  VPSLLVDZ128rmk = 19258,
-  VPSLLVDZ128rmkz = 19259,
-  VPSLLVDZ128rr = 19260,
-  VPSLLVDZ128rrk = 19261,
-  VPSLLVDZ128rrkz = 19262,
-  VPSLLVDZ256rm = 19263,
-  VPSLLVDZ256rmb = 19264,
-  VPSLLVDZ256rmbk = 19265,
-  VPSLLVDZ256rmbkz = 19266,
-  VPSLLVDZ256rmk = 19267,
-  VPSLLVDZ256rmkz = 19268,
-  VPSLLVDZ256rr = 19269,
-  VPSLLVDZ256rrk = 19270,
-  VPSLLVDZ256rrkz = 19271,
-  VPSLLVDZrm = 19272,
-  VPSLLVDZrmb = 19273,
-  VPSLLVDZrmbk = 19274,
-  VPSLLVDZrmbkz = 19275,
-  VPSLLVDZrmk = 19276,
-  VPSLLVDZrmkz = 19277,
-  VPSLLVDZrr = 19278,
-  VPSLLVDZrrk = 19279,
-  VPSLLVDZrrkz = 19280,
-  VPSLLVDrm = 19281,
-  VPSLLVDrr = 19282,
-  VPSLLVQYrm = 19283,
-  VPSLLVQYrr = 19284,
-  VPSLLVQZ128rm = 19285,
-  VPSLLVQZ128rmb = 19286,
-  VPSLLVQZ128rmbk = 19287,
-  VPSLLVQZ128rmbkz = 19288,
-  VPSLLVQZ128rmk = 19289,
-  VPSLLVQZ128rmkz = 19290,
-  VPSLLVQZ128rr = 19291,
-  VPSLLVQZ128rrk = 19292,
-  VPSLLVQZ128rrkz = 19293,
-  VPSLLVQZ256rm = 19294,
-  VPSLLVQZ256rmb = 19295,
-  VPSLLVQZ256rmbk = 19296,
-  VPSLLVQZ256rmbkz = 19297,
-  VPSLLVQZ256rmk = 19298,
-  VPSLLVQZ256rmkz = 19299,
-  VPSLLVQZ256rr = 19300,
-  VPSLLVQZ256rrk = 19301,
-  VPSLLVQZ256rrkz = 19302,
-  VPSLLVQZrm = 19303,
-  VPSLLVQZrmb = 19304,
-  VPSLLVQZrmbk = 19305,
-  VPSLLVQZrmbkz = 19306,
-  VPSLLVQZrmk = 19307,
-  VPSLLVQZrmkz = 19308,
-  VPSLLVQZrr = 19309,
-  VPSLLVQZrrk = 19310,
-  VPSLLVQZrrkz = 19311,
-  VPSLLVQrm = 19312,
-  VPSLLVQrr = 19313,
-  VPSLLVWZ128rm = 19314,
-  VPSLLVWZ128rmk = 19315,
-  VPSLLVWZ128rmkz = 19316,
-  VPSLLVWZ128rr = 19317,
-  VPSLLVWZ128rrk = 19318,
-  VPSLLVWZ128rrkz = 19319,
-  VPSLLVWZ256rm = 19320,
-  VPSLLVWZ256rmk = 19321,
-  VPSLLVWZ256rmkz = 19322,
-  VPSLLVWZ256rr = 19323,
-  VPSLLVWZ256rrk = 19324,
-  VPSLLVWZ256rrkz = 19325,
-  VPSLLVWZrm = 19326,
-  VPSLLVWZrmk = 19327,
-  VPSLLVWZrmkz = 19328,
-  VPSLLVWZrr = 19329,
-  VPSLLVWZrrk = 19330,
-  VPSLLVWZrrkz = 19331,
-  VPSLLWYri = 19332,
-  VPSLLWYrm = 19333,
-  VPSLLWYrr = 19334,
-  VPSLLWZ128mi = 19335,
-  VPSLLWZ128mik = 19336,
-  VPSLLWZ128mikz = 19337,
-  VPSLLWZ128ri = 19338,
-  VPSLLWZ128rik = 19339,
-  VPSLLWZ128rikz = 19340,
-  VPSLLWZ128rm = 19341,
-  VPSLLWZ128rmk = 19342,
-  VPSLLWZ128rmkz = 19343,
-  VPSLLWZ128rr = 19344,
-  VPSLLWZ128rrk = 19345,
-  VPSLLWZ128rrkz = 19346,
-  VPSLLWZ256mi = 19347,
-  VPSLLWZ256mik = 19348,
-  VPSLLWZ256mikz = 19349,
-  VPSLLWZ256ri = 19350,
-  VPSLLWZ256rik = 19351,
-  VPSLLWZ256rikz = 19352,
-  VPSLLWZ256rm = 19353,
-  VPSLLWZ256rmk = 19354,
-  VPSLLWZ256rmkz = 19355,
-  VPSLLWZ256rr = 19356,
-  VPSLLWZ256rrk = 19357,
-  VPSLLWZ256rrkz = 19358,
-  VPSLLWZmi = 19359,
-  VPSLLWZmik = 19360,
-  VPSLLWZmikz = 19361,
-  VPSLLWZri = 19362,
-  VPSLLWZrik = 19363,
-  VPSLLWZrikz = 19364,
-  VPSLLWZrm = 19365,
-  VPSLLWZrmk = 19366,
-  VPSLLWZrmkz = 19367,
-  VPSLLWZrr = 19368,
-  VPSLLWZrrk = 19369,
-  VPSLLWZrrkz = 19370,
-  VPSLLWri = 19371,
-  VPSLLWrm = 19372,
-  VPSLLWrr = 19373,
-  VPSRADYri = 19374,
-  VPSRADYrm = 19375,
-  VPSRADYrr = 19376,
-  VPSRADZ128mbi = 19377,
-  VPSRADZ128mbik = 19378,
-  VPSRADZ128mbikz = 19379,
-  VPSRADZ128mi = 19380,
-  VPSRADZ128mik = 19381,
-  VPSRADZ128mikz = 19382,
-  VPSRADZ128ri = 19383,
-  VPSRADZ128rik = 19384,
-  VPSRADZ128rikz = 19385,
-  VPSRADZ128rm = 19386,
-  VPSRADZ128rmk = 19387,
-  VPSRADZ128rmkz = 19388,
-  VPSRADZ128rr = 19389,
-  VPSRADZ128rrk = 19390,
-  VPSRADZ128rrkz = 19391,
-  VPSRADZ256mbi = 19392,
-  VPSRADZ256mbik = 19393,
-  VPSRADZ256mbikz = 19394,
-  VPSRADZ256mi = 19395,
-  VPSRADZ256mik = 19396,
-  VPSRADZ256mikz = 19397,
-  VPSRADZ256ri = 19398,
-  VPSRADZ256rik = 19399,
-  VPSRADZ256rikz = 19400,
-  VPSRADZ256rm = 19401,
-  VPSRADZ256rmk = 19402,
-  VPSRADZ256rmkz = 19403,
-  VPSRADZ256rr = 19404,
-  VPSRADZ256rrk = 19405,
-  VPSRADZ256rrkz = 19406,
-  VPSRADZmbi = 19407,
-  VPSRADZmbik = 19408,
-  VPSRADZmbikz = 19409,
-  VPSRADZmi = 19410,
-  VPSRADZmik = 19411,
-  VPSRADZmikz = 19412,
-  VPSRADZri = 19413,
-  VPSRADZrik = 19414,
-  VPSRADZrikz = 19415,
-  VPSRADZrm = 19416,
-  VPSRADZrmk = 19417,
-  VPSRADZrmkz = 19418,
-  VPSRADZrr = 19419,
-  VPSRADZrrk = 19420,
-  VPSRADZrrkz = 19421,
-  VPSRADri = 19422,
-  VPSRADrm = 19423,
-  VPSRADrr = 19424,
-  VPSRAQZ128mbi = 19425,
-  VPSRAQZ128mbik = 19426,
-  VPSRAQZ128mbikz = 19427,
-  VPSRAQZ128mi = 19428,
-  VPSRAQZ128mik = 19429,
-  VPSRAQZ128mikz = 19430,
-  VPSRAQZ128ri = 19431,
-  VPSRAQZ128rik = 19432,
-  VPSRAQZ128rikz = 19433,
-  VPSRAQZ128rm = 19434,
-  VPSRAQZ128rmk = 19435,
-  VPSRAQZ128rmkz = 19436,
-  VPSRAQZ128rr = 19437,
-  VPSRAQZ128rrk = 19438,
-  VPSRAQZ128rrkz = 19439,
-  VPSRAQZ256mbi = 19440,
-  VPSRAQZ256mbik = 19441,
-  VPSRAQZ256mbikz = 19442,
-  VPSRAQZ256mi = 19443,
-  VPSRAQZ256mik = 19444,
-  VPSRAQZ256mikz = 19445,
-  VPSRAQZ256ri = 19446,
-  VPSRAQZ256rik = 19447,
-  VPSRAQZ256rikz = 19448,
-  VPSRAQZ256rm = 19449,
-  VPSRAQZ256rmk = 19450,
-  VPSRAQZ256rmkz = 19451,
-  VPSRAQZ256rr = 19452,
-  VPSRAQZ256rrk = 19453,
-  VPSRAQZ256rrkz = 19454,
-  VPSRAQZmbi = 19455,
-  VPSRAQZmbik = 19456,
-  VPSRAQZmbikz = 19457,
-  VPSRAQZmi = 19458,
-  VPSRAQZmik = 19459,
-  VPSRAQZmikz = 19460,
-  VPSRAQZri = 19461,
-  VPSRAQZrik = 19462,
-  VPSRAQZrikz = 19463,
-  VPSRAQZrm = 19464,
-  VPSRAQZrmk = 19465,
-  VPSRAQZrmkz = 19466,
-  VPSRAQZrr = 19467,
-  VPSRAQZrrk = 19468,
-  VPSRAQZrrkz = 19469,
-  VPSRAVDYrm = 19470,
-  VPSRAVDYrr = 19471,
-  VPSRAVDZ128rm = 19472,
-  VPSRAVDZ128rmb = 19473,
-  VPSRAVDZ128rmbk = 19474,
-  VPSRAVDZ128rmbkz = 19475,
-  VPSRAVDZ128rmk = 19476,
-  VPSRAVDZ128rmkz = 19477,
-  VPSRAVDZ128rr = 19478,
-  VPSRAVDZ128rrk = 19479,
-  VPSRAVDZ128rrkz = 19480,
-  VPSRAVDZ256rm = 19481,
-  VPSRAVDZ256rmb = 19482,
-  VPSRAVDZ256rmbk = 19483,
-  VPSRAVDZ256rmbkz = 19484,
-  VPSRAVDZ256rmk = 19485,
-  VPSRAVDZ256rmkz = 19486,
-  VPSRAVDZ256rr = 19487,
-  VPSRAVDZ256rrk = 19488,
-  VPSRAVDZ256rrkz = 19489,
-  VPSRAVDZrm = 19490,
-  VPSRAVDZrmb = 19491,
-  VPSRAVDZrmbk = 19492,
-  VPSRAVDZrmbkz = 19493,
-  VPSRAVDZrmk = 19494,
-  VPSRAVDZrmkz = 19495,
-  VPSRAVDZrr = 19496,
-  VPSRAVDZrrk = 19497,
-  VPSRAVDZrrkz = 19498,
-  VPSRAVDrm = 19499,
-  VPSRAVDrr = 19500,
-  VPSRAVQZ128rm = 19501,
-  VPSRAVQZ128rmb = 19502,
-  VPSRAVQZ128rmbk = 19503,
-  VPSRAVQZ128rmbkz = 19504,
-  VPSRAVQZ128rmk = 19505,
-  VPSRAVQZ128rmkz = 19506,
-  VPSRAVQZ128rr = 19507,
-  VPSRAVQZ128rrk = 19508,
-  VPSRAVQZ128rrkz = 19509,
-  VPSRAVQZ256rm = 19510,
-  VPSRAVQZ256rmb = 19511,
-  VPSRAVQZ256rmbk = 19512,
-  VPSRAVQZ256rmbkz = 19513,
-  VPSRAVQZ256rmk = 19514,
-  VPSRAVQZ256rmkz = 19515,
-  VPSRAVQZ256rr = 19516,
-  VPSRAVQZ256rrk = 19517,
-  VPSRAVQZ256rrkz = 19518,
-  VPSRAVQZrm = 19519,
-  VPSRAVQZrmb = 19520,
-  VPSRAVQZrmbk = 19521,
-  VPSRAVQZrmbkz = 19522,
-  VPSRAVQZrmk = 19523,
-  VPSRAVQZrmkz = 19524,
-  VPSRAVQZrr = 19525,
-  VPSRAVQZrrk = 19526,
-  VPSRAVQZrrkz = 19527,
-  VPSRAVWZ128rm = 19528,
-  VPSRAVWZ128rmk = 19529,
-  VPSRAVWZ128rmkz = 19530,
-  VPSRAVWZ128rr = 19531,
-  VPSRAVWZ128rrk = 19532,
-  VPSRAVWZ128rrkz = 19533,
-  VPSRAVWZ256rm = 19534,
-  VPSRAVWZ256rmk = 19535,
-  VPSRAVWZ256rmkz = 19536,
-  VPSRAVWZ256rr = 19537,
-  VPSRAVWZ256rrk = 19538,
-  VPSRAVWZ256rrkz = 19539,
-  VPSRAVWZrm = 19540,
-  VPSRAVWZrmk = 19541,
-  VPSRAVWZrmkz = 19542,
-  VPSRAVWZrr = 19543,
-  VPSRAVWZrrk = 19544,
-  VPSRAVWZrrkz = 19545,
-  VPSRAWYri = 19546,
-  VPSRAWYrm = 19547,
-  VPSRAWYrr = 19548,
-  VPSRAWZ128mi = 19549,
-  VPSRAWZ128mik = 19550,
-  VPSRAWZ128mikz = 19551,
-  VPSRAWZ128ri = 19552,
-  VPSRAWZ128rik = 19553,
-  VPSRAWZ128rikz = 19554,
-  VPSRAWZ128rm = 19555,
-  VPSRAWZ128rmk = 19556,
-  VPSRAWZ128rmkz = 19557,
-  VPSRAWZ128rr = 19558,
-  VPSRAWZ128rrk = 19559,
-  VPSRAWZ128rrkz = 19560,
-  VPSRAWZ256mi = 19561,
-  VPSRAWZ256mik = 19562,
-  VPSRAWZ256mikz = 19563,
-  VPSRAWZ256ri = 19564,
-  VPSRAWZ256rik = 19565,
-  VPSRAWZ256rikz = 19566,
-  VPSRAWZ256rm = 19567,
-  VPSRAWZ256rmk = 19568,
-  VPSRAWZ256rmkz = 19569,
-  VPSRAWZ256rr = 19570,
-  VPSRAWZ256rrk = 19571,
-  VPSRAWZ256rrkz = 19572,
-  VPSRAWZmi = 19573,
-  VPSRAWZmik = 19574,
-  VPSRAWZmikz = 19575,
-  VPSRAWZri = 19576,
-  VPSRAWZrik = 19577,
-  VPSRAWZrikz = 19578,
-  VPSRAWZrm = 19579,
-  VPSRAWZrmk = 19580,
-  VPSRAWZrmkz = 19581,
-  VPSRAWZrr = 19582,
-  VPSRAWZrrk = 19583,
-  VPSRAWZrrkz = 19584,
-  VPSRAWri = 19585,
-  VPSRAWrm = 19586,
-  VPSRAWrr = 19587,
-  VPSRLDQYri = 19588,
-  VPSRLDQZ128mi = 19589,
-  VPSRLDQZ128ri = 19590,
-  VPSRLDQZ256mi = 19591,
-  VPSRLDQZ256ri = 19592,
-  VPSRLDQZmi = 19593,
-  VPSRLDQZri = 19594,
-  VPSRLDQri = 19595,
-  VPSRLDYri = 19596,
-  VPSRLDYrm = 19597,
-  VPSRLDYrr = 19598,
-  VPSRLDZ128mbi = 19599,
-  VPSRLDZ128mbik = 19600,
-  VPSRLDZ128mbikz = 19601,
-  VPSRLDZ128mi = 19602,
-  VPSRLDZ128mik = 19603,
-  VPSRLDZ128mikz = 19604,
-  VPSRLDZ128ri = 19605,
-  VPSRLDZ128rik = 19606,
-  VPSRLDZ128rikz = 19607,
-  VPSRLDZ128rm = 19608,
-  VPSRLDZ128rmk = 19609,
-  VPSRLDZ128rmkz = 19610,
-  VPSRLDZ128rr = 19611,
-  VPSRLDZ128rrk = 19612,
-  VPSRLDZ128rrkz = 19613,
-  VPSRLDZ256mbi = 19614,
-  VPSRLDZ256mbik = 19615,
-  VPSRLDZ256mbikz = 19616,
-  VPSRLDZ256mi = 19617,
-  VPSRLDZ256mik = 19618,
-  VPSRLDZ256mikz = 19619,
-  VPSRLDZ256ri = 19620,
-  VPSRLDZ256rik = 19621,
-  VPSRLDZ256rikz = 19622,
-  VPSRLDZ256rm = 19623,
-  VPSRLDZ256rmk = 19624,
-  VPSRLDZ256rmkz = 19625,
-  VPSRLDZ256rr = 19626,
-  VPSRLDZ256rrk = 19627,
-  VPSRLDZ256rrkz = 19628,
-  VPSRLDZmbi = 19629,
-  VPSRLDZmbik = 19630,
-  VPSRLDZmbikz = 19631,
-  VPSRLDZmi = 19632,
-  VPSRLDZmik = 19633,
-  VPSRLDZmikz = 19634,
-  VPSRLDZri = 19635,
-  VPSRLDZrik = 19636,
-  VPSRLDZrikz = 19637,
-  VPSRLDZrm = 19638,
-  VPSRLDZrmk = 19639,
-  VPSRLDZrmkz = 19640,
-  VPSRLDZrr = 19641,
-  VPSRLDZrrk = 19642,
-  VPSRLDZrrkz = 19643,
-  VPSRLDri = 19644,
-  VPSRLDrm = 19645,
-  VPSRLDrr = 19646,
-  VPSRLQYri = 19647,
-  VPSRLQYrm = 19648,
-  VPSRLQYrr = 19649,
-  VPSRLQZ128mbi = 19650,
-  VPSRLQZ128mbik = 19651,
-  VPSRLQZ128mbikz = 19652,
-  VPSRLQZ128mi = 19653,
-  VPSRLQZ128mik = 19654,
-  VPSRLQZ128mikz = 19655,
-  VPSRLQZ128ri = 19656,
-  VPSRLQZ128rik = 19657,
-  VPSRLQZ128rikz = 19658,
-  VPSRLQZ128rm = 19659,
-  VPSRLQZ128rmk = 19660,
-  VPSRLQZ128rmkz = 19661,
-  VPSRLQZ128rr = 19662,
-  VPSRLQZ128rrk = 19663,
-  VPSRLQZ128rrkz = 19664,
-  VPSRLQZ256mbi = 19665,
-  VPSRLQZ256mbik = 19666,
-  VPSRLQZ256mbikz = 19667,
-  VPSRLQZ256mi = 19668,
-  VPSRLQZ256mik = 19669,
-  VPSRLQZ256mikz = 19670,
-  VPSRLQZ256ri = 19671,
-  VPSRLQZ256rik = 19672,
-  VPSRLQZ256rikz = 19673,
-  VPSRLQZ256rm = 19674,
-  VPSRLQZ256rmk = 19675,
-  VPSRLQZ256rmkz = 19676,
-  VPSRLQZ256rr = 19677,
-  VPSRLQZ256rrk = 19678,
-  VPSRLQZ256rrkz = 19679,
-  VPSRLQZmbi = 19680,
-  VPSRLQZmbik = 19681,
-  VPSRLQZmbikz = 19682,
-  VPSRLQZmi = 19683,
-  VPSRLQZmik = 19684,
-  VPSRLQZmikz = 19685,
-  VPSRLQZri = 19686,
-  VPSRLQZrik = 19687,
-  VPSRLQZrikz = 19688,
-  VPSRLQZrm = 19689,
-  VPSRLQZrmk = 19690,
-  VPSRLQZrmkz = 19691,
-  VPSRLQZrr = 19692,
-  VPSRLQZrrk = 19693,
-  VPSRLQZrrkz = 19694,
-  VPSRLQri = 19695,
-  VPSRLQrm = 19696,
-  VPSRLQrr = 19697,
-  VPSRLVDYrm = 19698,
-  VPSRLVDYrr = 19699,
-  VPSRLVDZ128rm = 19700,
-  VPSRLVDZ128rmb = 19701,
-  VPSRLVDZ128rmbk = 19702,
-  VPSRLVDZ128rmbkz = 19703,
-  VPSRLVDZ128rmk = 19704,
-  VPSRLVDZ128rmkz = 19705,
-  VPSRLVDZ128rr = 19706,
-  VPSRLVDZ128rrk = 19707,
-  VPSRLVDZ128rrkz = 19708,
-  VPSRLVDZ256rm = 19709,
-  VPSRLVDZ256rmb = 19710,
-  VPSRLVDZ256rmbk = 19711,
-  VPSRLVDZ256rmbkz = 19712,
-  VPSRLVDZ256rmk = 19713,
-  VPSRLVDZ256rmkz = 19714,
-  VPSRLVDZ256rr = 19715,
-  VPSRLVDZ256rrk = 19716,
-  VPSRLVDZ256rrkz = 19717,
-  VPSRLVDZrm = 19718,
-  VPSRLVDZrmb = 19719,
-  VPSRLVDZrmbk = 19720,
-  VPSRLVDZrmbkz = 19721,
-  VPSRLVDZrmk = 19722,
-  VPSRLVDZrmkz = 19723,
-  VPSRLVDZrr = 19724,
-  VPSRLVDZrrk = 19725,
-  VPSRLVDZrrkz = 19726,
-  VPSRLVDrm = 19727,
-  VPSRLVDrr = 19728,
-  VPSRLVQYrm = 19729,
-  VPSRLVQYrr = 19730,
-  VPSRLVQZ128rm = 19731,
-  VPSRLVQZ128rmb = 19732,
-  VPSRLVQZ128rmbk = 19733,
-  VPSRLVQZ128rmbkz = 19734,
-  VPSRLVQZ128rmk = 19735,
-  VPSRLVQZ128rmkz = 19736,
-  VPSRLVQZ128rr = 19737,
-  VPSRLVQZ128rrk = 19738,
-  VPSRLVQZ128rrkz = 19739,
-  VPSRLVQZ256rm = 19740,
-  VPSRLVQZ256rmb = 19741,
-  VPSRLVQZ256rmbk = 19742,
-  VPSRLVQZ256rmbkz = 19743,
-  VPSRLVQZ256rmk = 19744,
-  VPSRLVQZ256rmkz = 19745,
-  VPSRLVQZ256rr = 19746,
-  VPSRLVQZ256rrk = 19747,
-  VPSRLVQZ256rrkz = 19748,
-  VPSRLVQZrm = 19749,
-  VPSRLVQZrmb = 19750,
-  VPSRLVQZrmbk = 19751,
-  VPSRLVQZrmbkz = 19752,
-  VPSRLVQZrmk = 19753,
-  VPSRLVQZrmkz = 19754,
-  VPSRLVQZrr = 19755,
-  VPSRLVQZrrk = 19756,
-  VPSRLVQZrrkz = 19757,
-  VPSRLVQrm = 19758,
-  VPSRLVQrr = 19759,
-  VPSRLVWZ128rm = 19760,
-  VPSRLVWZ128rmk = 19761,
-  VPSRLVWZ128rmkz = 19762,
-  VPSRLVWZ128rr = 19763,
-  VPSRLVWZ128rrk = 19764,
-  VPSRLVWZ128rrkz = 19765,
-  VPSRLVWZ256rm = 19766,
-  VPSRLVWZ256rmk = 19767,
-  VPSRLVWZ256rmkz = 19768,
-  VPSRLVWZ256rr = 19769,
-  VPSRLVWZ256rrk = 19770,
-  VPSRLVWZ256rrkz = 19771,
-  VPSRLVWZrm = 19772,
-  VPSRLVWZrmk = 19773,
-  VPSRLVWZrmkz = 19774,
-  VPSRLVWZrr = 19775,
-  VPSRLVWZrrk = 19776,
-  VPSRLVWZrrkz = 19777,
-  VPSRLWYri = 19778,
-  VPSRLWYrm = 19779,
-  VPSRLWYrr = 19780,
-  VPSRLWZ128mi = 19781,
-  VPSRLWZ128mik = 19782,
-  VPSRLWZ128mikz = 19783,
-  VPSRLWZ128ri = 19784,
-  VPSRLWZ128rik = 19785,
-  VPSRLWZ128rikz = 19786,
-  VPSRLWZ128rm = 19787,
-  VPSRLWZ128rmk = 19788,
-  VPSRLWZ128rmkz = 19789,
-  VPSRLWZ128rr = 19790,
-  VPSRLWZ128rrk = 19791,
-  VPSRLWZ128rrkz = 19792,
-  VPSRLWZ256mi = 19793,
-  VPSRLWZ256mik = 19794,
-  VPSRLWZ256mikz = 19795,
-  VPSRLWZ256ri = 19796,
-  VPSRLWZ256rik = 19797,
-  VPSRLWZ256rikz = 19798,
-  VPSRLWZ256rm = 19799,
-  VPSRLWZ256rmk = 19800,
-  VPSRLWZ256rmkz = 19801,
-  VPSRLWZ256rr = 19802,
-  VPSRLWZ256rrk = 19803,
-  VPSRLWZ256rrkz = 19804,
-  VPSRLWZmi = 19805,
-  VPSRLWZmik = 19806,
-  VPSRLWZmikz = 19807,
-  VPSRLWZri = 19808,
-  VPSRLWZrik = 19809,
-  VPSRLWZrikz = 19810,
-  VPSRLWZrm = 19811,
-  VPSRLWZrmk = 19812,
-  VPSRLWZrmkz = 19813,
-  VPSRLWZrr = 19814,
-  VPSRLWZrrk = 19815,
-  VPSRLWZrrkz = 19816,
-  VPSRLWri = 19817,
-  VPSRLWrm = 19818,
-  VPSRLWrr = 19819,
-  VPSUBBYrm = 19820,
-  VPSUBBYrr = 19821,
-  VPSUBBZ128rm = 19822,
-  VPSUBBZ128rmk = 19823,
-  VPSUBBZ128rmkz = 19824,
-  VPSUBBZ128rr = 19825,
-  VPSUBBZ128rrk = 19826,
-  VPSUBBZ128rrkz = 19827,
-  VPSUBBZ256rm = 19828,
-  VPSUBBZ256rmk = 19829,
-  VPSUBBZ256rmkz = 19830,
-  VPSUBBZ256rr = 19831,
-  VPSUBBZ256rrk = 19832,
-  VPSUBBZ256rrkz = 19833,
-  VPSUBBZrm = 19834,
-  VPSUBBZrmk = 19835,
-  VPSUBBZrmkz = 19836,
-  VPSUBBZrr = 19837,
-  VPSUBBZrrk = 19838,
-  VPSUBBZrrkz = 19839,
-  VPSUBBrm = 19840,
-  VPSUBBrr = 19841,
-  VPSUBDYrm = 19842,
-  VPSUBDYrr = 19843,
-  VPSUBDZ128rm = 19844,
-  VPSUBDZ128rmb = 19845,
-  VPSUBDZ128rmbk = 19846,
-  VPSUBDZ128rmbkz = 19847,
-  VPSUBDZ128rmk = 19848,
-  VPSUBDZ128rmkz = 19849,
-  VPSUBDZ128rr = 19850,
-  VPSUBDZ128rrk = 19851,
-  VPSUBDZ128rrkz = 19852,
-  VPSUBDZ256rm = 19853,
-  VPSUBDZ256rmb = 19854,
-  VPSUBDZ256rmbk = 19855,
-  VPSUBDZ256rmbkz = 19856,
-  VPSUBDZ256rmk = 19857,
-  VPSUBDZ256rmkz = 19858,
-  VPSUBDZ256rr = 19859,
-  VPSUBDZ256rrk = 19860,
-  VPSUBDZ256rrkz = 19861,
-  VPSUBDZrm = 19862,
-  VPSUBDZrmb = 19863,
-  VPSUBDZrmbk = 19864,
-  VPSUBDZrmbkz = 19865,
-  VPSUBDZrmk = 19866,
-  VPSUBDZrmkz = 19867,
-  VPSUBDZrr = 19868,
-  VPSUBDZrrk = 19869,
-  VPSUBDZrrkz = 19870,
-  VPSUBDrm = 19871,
-  VPSUBDrr = 19872,
-  VPSUBQYrm = 19873,
-  VPSUBQYrr = 19874,
-  VPSUBQZ128rm = 19875,
-  VPSUBQZ128rmb = 19876,
-  VPSUBQZ128rmbk = 19877,
-  VPSUBQZ128rmbkz = 19878,
-  VPSUBQZ128rmk = 19879,
-  VPSUBQZ128rmkz = 19880,
-  VPSUBQZ128rr = 19881,
-  VPSUBQZ128rrk = 19882,
-  VPSUBQZ128rrkz = 19883,
-  VPSUBQZ256rm = 19884,
-  VPSUBQZ256rmb = 19885,
-  VPSUBQZ256rmbk = 19886,
-  VPSUBQZ256rmbkz = 19887,
-  VPSUBQZ256rmk = 19888,
-  VPSUBQZ256rmkz = 19889,
-  VPSUBQZ256rr = 19890,
-  VPSUBQZ256rrk = 19891,
-  VPSUBQZ256rrkz = 19892,
-  VPSUBQZrm = 19893,
-  VPSUBQZrmb = 19894,
-  VPSUBQZrmbk = 19895,
-  VPSUBQZrmbkz = 19896,
-  VPSUBQZrmk = 19897,
-  VPSUBQZrmkz = 19898,
-  VPSUBQZrr = 19899,
-  VPSUBQZrrk = 19900,
-  VPSUBQZrrkz = 19901,
-  VPSUBQrm = 19902,
-  VPSUBQrr = 19903,
-  VPSUBSBYrm = 19904,
-  VPSUBSBYrr = 19905,
-  VPSUBSBZ128rm = 19906,
-  VPSUBSBZ128rmk = 19907,
-  VPSUBSBZ128rmkz = 19908,
-  VPSUBSBZ128rr = 19909,
-  VPSUBSBZ128rrk = 19910,
-  VPSUBSBZ128rrkz = 19911,
-  VPSUBSBZ256rm = 19912,
-  VPSUBSBZ256rmk = 19913,
-  VPSUBSBZ256rmkz = 19914,
-  VPSUBSBZ256rr = 19915,
-  VPSUBSBZ256rrk = 19916,
-  VPSUBSBZ256rrkz = 19917,
-  VPSUBSBZrm = 19918,
-  VPSUBSBZrmk = 19919,
-  VPSUBSBZrmkz = 19920,
-  VPSUBSBZrr = 19921,
-  VPSUBSBZrrk = 19922,
-  VPSUBSBZrrkz = 19923,
-  VPSUBSBrm = 19924,
-  VPSUBSBrr = 19925,
-  VPSUBSWYrm = 19926,
-  VPSUBSWYrr = 19927,
-  VPSUBSWZ128rm = 19928,
-  VPSUBSWZ128rmk = 19929,
-  VPSUBSWZ128rmkz = 19930,
-  VPSUBSWZ128rr = 19931,
-  VPSUBSWZ128rrk = 19932,
-  VPSUBSWZ128rrkz = 19933,
-  VPSUBSWZ256rm = 19934,
-  VPSUBSWZ256rmk = 19935,
-  VPSUBSWZ256rmkz = 19936,
-  VPSUBSWZ256rr = 19937,
-  VPSUBSWZ256rrk = 19938,
-  VPSUBSWZ256rrkz = 19939,
-  VPSUBSWZrm = 19940,
-  VPSUBSWZrmk = 19941,
-  VPSUBSWZrmkz = 19942,
-  VPSUBSWZrr = 19943,
-  VPSUBSWZrrk = 19944,
-  VPSUBSWZrrkz = 19945,
-  VPSUBSWrm = 19946,
-  VPSUBSWrr = 19947,
-  VPSUBUSBYrm = 19948,
-  VPSUBUSBYrr = 19949,
-  VPSUBUSBZ128rm = 19950,
-  VPSUBUSBZ128rmk = 19951,
-  VPSUBUSBZ128rmkz = 19952,
-  VPSUBUSBZ128rr = 19953,
-  VPSUBUSBZ128rrk = 19954,
-  VPSUBUSBZ128rrkz = 19955,
-  VPSUBUSBZ256rm = 19956,
-  VPSUBUSBZ256rmk = 19957,
-  VPSUBUSBZ256rmkz = 19958,
-  VPSUBUSBZ256rr = 19959,
-  VPSUBUSBZ256rrk = 19960,
-  VPSUBUSBZ256rrkz = 19961,
-  VPSUBUSBZrm = 19962,
-  VPSUBUSBZrmk = 19963,
-  VPSUBUSBZrmkz = 19964,
-  VPSUBUSBZrr = 19965,
-  VPSUBUSBZrrk = 19966,
-  VPSUBUSBZrrkz = 19967,
-  VPSUBUSBrm = 19968,
-  VPSUBUSBrr = 19969,
-  VPSUBUSWYrm = 19970,
-  VPSUBUSWYrr = 19971,
-  VPSUBUSWZ128rm = 19972,
-  VPSUBUSWZ128rmk = 19973,
-  VPSUBUSWZ128rmkz = 19974,
-  VPSUBUSWZ128rr = 19975,
-  VPSUBUSWZ128rrk = 19976,
-  VPSUBUSWZ128rrkz = 19977,
-  VPSUBUSWZ256rm = 19978,
-  VPSUBUSWZ256rmk = 19979,
-  VPSUBUSWZ256rmkz = 19980,
-  VPSUBUSWZ256rr = 19981,
-  VPSUBUSWZ256rrk = 19982,
-  VPSUBUSWZ256rrkz = 19983,
-  VPSUBUSWZrm = 19984,
-  VPSUBUSWZrmk = 19985,
-  VPSUBUSWZrmkz = 19986,
-  VPSUBUSWZrr = 19987,
-  VPSUBUSWZrrk = 19988,
-  VPSUBUSWZrrkz = 19989,
-  VPSUBUSWrm = 19990,
-  VPSUBUSWrr = 19991,
-  VPSUBWYrm = 19992,
-  VPSUBWYrr = 19993,
-  VPSUBWZ128rm = 19994,
-  VPSUBWZ128rmk = 19995,
-  VPSUBWZ128rmkz = 19996,
-  VPSUBWZ128rr = 19997,
-  VPSUBWZ128rrk = 19998,
-  VPSUBWZ128rrkz = 19999,
-  VPSUBWZ256rm = 20000,
-  VPSUBWZ256rmk = 20001,
-  VPSUBWZ256rmkz = 20002,
-  VPSUBWZ256rr = 20003,
-  VPSUBWZ256rrk = 20004,
-  VPSUBWZ256rrkz = 20005,
-  VPSUBWZrm = 20006,
-  VPSUBWZrmk = 20007,
-  VPSUBWZrmkz = 20008,
-  VPSUBWZrr = 20009,
-  VPSUBWZrrk = 20010,
-  VPSUBWZrrkz = 20011,
-  VPSUBWrm = 20012,
-  VPSUBWrr = 20013,
-  VPTERNLOGDZ128rmbi = 20014,
-  VPTERNLOGDZ128rmbik = 20015,
-  VPTERNLOGDZ128rmbikz = 20016,
-  VPTERNLOGDZ128rmi = 20017,
-  VPTERNLOGDZ128rmik = 20018,
-  VPTERNLOGDZ128rmikz = 20019,
-  VPTERNLOGDZ128rri = 20020,
-  VPTERNLOGDZ128rrik = 20021,
-  VPTERNLOGDZ128rrikz = 20022,
-  VPTERNLOGDZ256rmbi = 20023,
-  VPTERNLOGDZ256rmbik = 20024,
-  VPTERNLOGDZ256rmbikz = 20025,
-  VPTERNLOGDZ256rmi = 20026,
-  VPTERNLOGDZ256rmik = 20027,
-  VPTERNLOGDZ256rmikz = 20028,
-  VPTERNLOGDZ256rri = 20029,
-  VPTERNLOGDZ256rrik = 20030,
-  VPTERNLOGDZ256rrikz = 20031,
-  VPTERNLOGDZrmbi = 20032,
-  VPTERNLOGDZrmbik = 20033,
-  VPTERNLOGDZrmbikz = 20034,
-  VPTERNLOGDZrmi = 20035,
-  VPTERNLOGDZrmik = 20036,
-  VPTERNLOGDZrmikz = 20037,
-  VPTERNLOGDZrri = 20038,
-  VPTERNLOGDZrrik = 20039,
-  VPTERNLOGDZrrikz = 20040,
-  VPTERNLOGQZ128rmbi = 20041,
-  VPTERNLOGQZ128rmbik = 20042,
-  VPTERNLOGQZ128rmbikz = 20043,
-  VPTERNLOGQZ128rmi = 20044,
-  VPTERNLOGQZ128rmik = 20045,
-  VPTERNLOGQZ128rmikz = 20046,
-  VPTERNLOGQZ128rri = 20047,
-  VPTERNLOGQZ128rrik = 20048,
-  VPTERNLOGQZ128rrikz = 20049,
-  VPTERNLOGQZ256rmbi = 20050,
-  VPTERNLOGQZ256rmbik = 20051,
-  VPTERNLOGQZ256rmbikz = 20052,
-  VPTERNLOGQZ256rmi = 20053,
-  VPTERNLOGQZ256rmik = 20054,
-  VPTERNLOGQZ256rmikz = 20055,
-  VPTERNLOGQZ256rri = 20056,
-  VPTERNLOGQZ256rrik = 20057,
-  VPTERNLOGQZ256rrikz = 20058,
-  VPTERNLOGQZrmbi = 20059,
-  VPTERNLOGQZrmbik = 20060,
-  VPTERNLOGQZrmbikz = 20061,
-  VPTERNLOGQZrmi = 20062,
-  VPTERNLOGQZrmik = 20063,
-  VPTERNLOGQZrmikz = 20064,
-  VPTERNLOGQZrri = 20065,
-  VPTERNLOGQZrrik = 20066,
-  VPTERNLOGQZrrikz = 20067,
-  VPTESTMBZ128rm = 20068,
-  VPTESTMBZ128rmk = 20069,
-  VPTESTMBZ128rr = 20070,
-  VPTESTMBZ128rrk = 20071,
-  VPTESTMBZ256rm = 20072,
-  VPTESTMBZ256rmk = 20073,
-  VPTESTMBZ256rr = 20074,
-  VPTESTMBZ256rrk = 20075,
-  VPTESTMBZrm = 20076,
-  VPTESTMBZrmk = 20077,
-  VPTESTMBZrr = 20078,
-  VPTESTMBZrrk = 20079,
-  VPTESTMDZ128rm = 20080,
-  VPTESTMDZ128rmb = 20081,
-  VPTESTMDZ128rmbk = 20082,
-  VPTESTMDZ128rmk = 20083,
-  VPTESTMDZ128rr = 20084,
-  VPTESTMDZ128rrk = 20085,
-  VPTESTMDZ256rm = 20086,
-  VPTESTMDZ256rmb = 20087,
-  VPTESTMDZ256rmbk = 20088,
-  VPTESTMDZ256rmk = 20089,
-  VPTESTMDZ256rr = 20090,
-  VPTESTMDZ256rrk = 20091,
-  VPTESTMDZrm = 20092,
-  VPTESTMDZrmb = 20093,
-  VPTESTMDZrmbk = 20094,
-  VPTESTMDZrmk = 20095,
-  VPTESTMDZrr = 20096,
-  VPTESTMDZrrk = 20097,
-  VPTESTMQZ128rm = 20098,
-  VPTESTMQZ128rmb = 20099,
-  VPTESTMQZ128rmbk = 20100,
-  VPTESTMQZ128rmk = 20101,
-  VPTESTMQZ128rr = 20102,
-  VPTESTMQZ128rrk = 20103,
-  VPTESTMQZ256rm = 20104,
-  VPTESTMQZ256rmb = 20105,
-  VPTESTMQZ256rmbk = 20106,
-  VPTESTMQZ256rmk = 20107,
-  VPTESTMQZ256rr = 20108,
-  VPTESTMQZ256rrk = 20109,
-  VPTESTMQZrm = 20110,
-  VPTESTMQZrmb = 20111,
-  VPTESTMQZrmbk = 20112,
-  VPTESTMQZrmk = 20113,
-  VPTESTMQZrr = 20114,
-  VPTESTMQZrrk = 20115,
-  VPTESTMWZ128rm = 20116,
-  VPTESTMWZ128rmk = 20117,
-  VPTESTMWZ128rr = 20118,
-  VPTESTMWZ128rrk = 20119,
-  VPTESTMWZ256rm = 20120,
-  VPTESTMWZ256rmk = 20121,
-  VPTESTMWZ256rr = 20122,
-  VPTESTMWZ256rrk = 20123,
-  VPTESTMWZrm = 20124,
-  VPTESTMWZrmk = 20125,
-  VPTESTMWZrr = 20126,
-  VPTESTMWZrrk = 20127,
-  VPTESTNMBZ128rm = 20128,
-  VPTESTNMBZ128rmk = 20129,
-  VPTESTNMBZ128rr = 20130,
-  VPTESTNMBZ128rrk = 20131,
-  VPTESTNMBZ256rm = 20132,
-  VPTESTNMBZ256rmk = 20133,
-  VPTESTNMBZ256rr = 20134,
-  VPTESTNMBZ256rrk = 20135,
-  VPTESTNMBZrm = 20136,
-  VPTESTNMBZrmk = 20137,
-  VPTESTNMBZrr = 20138,
-  VPTESTNMBZrrk = 20139,
-  VPTESTNMDZ128rm = 20140,
-  VPTESTNMDZ128rmb = 20141,
-  VPTESTNMDZ128rmbk = 20142,
-  VPTESTNMDZ128rmk = 20143,
-  VPTESTNMDZ128rr = 20144,
-  VPTESTNMDZ128rrk = 20145,
-  VPTESTNMDZ256rm = 20146,
-  VPTESTNMDZ256rmb = 20147,
-  VPTESTNMDZ256rmbk = 20148,
-  VPTESTNMDZ256rmk = 20149,
-  VPTESTNMDZ256rr = 20150,
-  VPTESTNMDZ256rrk = 20151,
-  VPTESTNMDZrm = 20152,
-  VPTESTNMDZrmb = 20153,
-  VPTESTNMDZrmbk = 20154,
-  VPTESTNMDZrmk = 20155,
-  VPTESTNMDZrr = 20156,
-  VPTESTNMDZrrk = 20157,
-  VPTESTNMQZ128rm = 20158,
-  VPTESTNMQZ128rmb = 20159,
-  VPTESTNMQZ128rmbk = 20160,
-  VPTESTNMQZ128rmk = 20161,
-  VPTESTNMQZ128rr = 20162,
-  VPTESTNMQZ128rrk = 20163,
-  VPTESTNMQZ256rm = 20164,
-  VPTESTNMQZ256rmb = 20165,
-  VPTESTNMQZ256rmbk = 20166,
-  VPTESTNMQZ256rmk = 20167,
-  VPTESTNMQZ256rr = 20168,
-  VPTESTNMQZ256rrk = 20169,
-  VPTESTNMQZrm = 20170,
-  VPTESTNMQZrmb = 20171,
-  VPTESTNMQZrmbk = 20172,
-  VPTESTNMQZrmk = 20173,
-  VPTESTNMQZrr = 20174,
-  VPTESTNMQZrrk = 20175,
-  VPTESTNMWZ128rm = 20176,
-  VPTESTNMWZ128rmk = 20177,
-  VPTESTNMWZ128rr = 20178,
-  VPTESTNMWZ128rrk = 20179,
-  VPTESTNMWZ256rm = 20180,
-  VPTESTNMWZ256rmk = 20181,
-  VPTESTNMWZ256rr = 20182,
-  VPTESTNMWZ256rrk = 20183,
-  VPTESTNMWZrm = 20184,
-  VPTESTNMWZrmk = 20185,
-  VPTESTNMWZrr = 20186,
-  VPTESTNMWZrrk = 20187,
-  VPTESTYrm = 20188,
-  VPTESTYrr = 20189,
-  VPTESTrm = 20190,
-  VPTESTrr = 20191,
-  VPUNPCKHBWYrm = 20192,
-  VPUNPCKHBWYrr = 20193,
-  VPUNPCKHBWZ128rm = 20194,
-  VPUNPCKHBWZ128rmk = 20195,
-  VPUNPCKHBWZ128rmkz = 20196,
-  VPUNPCKHBWZ128rr = 20197,
-  VPUNPCKHBWZ128rrk = 20198,
-  VPUNPCKHBWZ128rrkz = 20199,
-  VPUNPCKHBWZ256rm = 20200,
-  VPUNPCKHBWZ256rmk = 20201,
-  VPUNPCKHBWZ256rmkz = 20202,
-  VPUNPCKHBWZ256rr = 20203,
-  VPUNPCKHBWZ256rrk = 20204,
-  VPUNPCKHBWZ256rrkz = 20205,
-  VPUNPCKHBWZrm = 20206,
-  VPUNPCKHBWZrmk = 20207,
-  VPUNPCKHBWZrmkz = 20208,
-  VPUNPCKHBWZrr = 20209,
-  VPUNPCKHBWZrrk = 20210,
-  VPUNPCKHBWZrrkz = 20211,
-  VPUNPCKHBWrm = 20212,
-  VPUNPCKHBWrr = 20213,
-  VPUNPCKHDQYrm = 20214,
-  VPUNPCKHDQYrr = 20215,
-  VPUNPCKHDQZ128rm = 20216,
-  VPUNPCKHDQZ128rmb = 20217,
-  VPUNPCKHDQZ128rmbk = 20218,
-  VPUNPCKHDQZ128rmbkz = 20219,
-  VPUNPCKHDQZ128rmk = 20220,
-  VPUNPCKHDQZ128rmkz = 20221,
-  VPUNPCKHDQZ128rr = 20222,
-  VPUNPCKHDQZ128rrk = 20223,
-  VPUNPCKHDQZ128rrkz = 20224,
-  VPUNPCKHDQZ256rm = 20225,
-  VPUNPCKHDQZ256rmb = 20226,
-  VPUNPCKHDQZ256rmbk = 20227,
-  VPUNPCKHDQZ256rmbkz = 20228,
-  VPUNPCKHDQZ256rmk = 20229,
-  VPUNPCKHDQZ256rmkz = 20230,
-  VPUNPCKHDQZ256rr = 20231,
-  VPUNPCKHDQZ256rrk = 20232,
-  VPUNPCKHDQZ256rrkz = 20233,
-  VPUNPCKHDQZrm = 20234,
-  VPUNPCKHDQZrmb = 20235,
-  VPUNPCKHDQZrmbk = 20236,
-  VPUNPCKHDQZrmbkz = 20237,
-  VPUNPCKHDQZrmk = 20238,
-  VPUNPCKHDQZrmkz = 20239,
-  VPUNPCKHDQZrr = 20240,
-  VPUNPCKHDQZrrk = 20241,
-  VPUNPCKHDQZrrkz = 20242,
-  VPUNPCKHDQrm = 20243,
-  VPUNPCKHDQrr = 20244,
-  VPUNPCKHQDQYrm = 20245,
-  VPUNPCKHQDQYrr = 20246,
-  VPUNPCKHQDQZ128rm = 20247,
-  VPUNPCKHQDQZ128rmb = 20248,
-  VPUNPCKHQDQZ128rmbk = 20249,
-  VPUNPCKHQDQZ128rmbkz = 20250,
-  VPUNPCKHQDQZ128rmk = 20251,
-  VPUNPCKHQDQZ128rmkz = 20252,
-  VPUNPCKHQDQZ128rr = 20253,
-  VPUNPCKHQDQZ128rrk = 20254,
-  VPUNPCKHQDQZ128rrkz = 20255,
-  VPUNPCKHQDQZ256rm = 20256,
-  VPUNPCKHQDQZ256rmb = 20257,
-  VPUNPCKHQDQZ256rmbk = 20258,
-  VPUNPCKHQDQZ256rmbkz = 20259,
-  VPUNPCKHQDQZ256rmk = 20260,
-  VPUNPCKHQDQZ256rmkz = 20261,
-  VPUNPCKHQDQZ256rr = 20262,
-  VPUNPCKHQDQZ256rrk = 20263,
-  VPUNPCKHQDQZ256rrkz = 20264,
-  VPUNPCKHQDQZrm = 20265,
-  VPUNPCKHQDQZrmb = 20266,
-  VPUNPCKHQDQZrmbk = 20267,
-  VPUNPCKHQDQZrmbkz = 20268,
-  VPUNPCKHQDQZrmk = 20269,
-  VPUNPCKHQDQZrmkz = 20270,
-  VPUNPCKHQDQZrr = 20271,
-  VPUNPCKHQDQZrrk = 20272,
-  VPUNPCKHQDQZrrkz = 20273,
-  VPUNPCKHQDQrm = 20274,
-  VPUNPCKHQDQrr = 20275,
-  VPUNPCKHWDYrm = 20276,
-  VPUNPCKHWDYrr = 20277,
-  VPUNPCKHWDZ128rm = 20278,
-  VPUNPCKHWDZ128rmk = 20279,
-  VPUNPCKHWDZ128rmkz = 20280,
-  VPUNPCKHWDZ128rr = 20281,
-  VPUNPCKHWDZ128rrk = 20282,
-  VPUNPCKHWDZ128rrkz = 20283,
-  VPUNPCKHWDZ256rm = 20284,
-  VPUNPCKHWDZ256rmk = 20285,
-  VPUNPCKHWDZ256rmkz = 20286,
-  VPUNPCKHWDZ256rr = 20287,
-  VPUNPCKHWDZ256rrk = 20288,
-  VPUNPCKHWDZ256rrkz = 20289,
-  VPUNPCKHWDZrm = 20290,
-  VPUNPCKHWDZrmk = 20291,
-  VPUNPCKHWDZrmkz = 20292,
-  VPUNPCKHWDZrr = 20293,
-  VPUNPCKHWDZrrk = 20294,
-  VPUNPCKHWDZrrkz = 20295,
-  VPUNPCKHWDrm = 20296,
-  VPUNPCKHWDrr = 20297,
-  VPUNPCKLBWYrm = 20298,
-  VPUNPCKLBWYrr = 20299,
-  VPUNPCKLBWZ128rm = 20300,
-  VPUNPCKLBWZ128rmk = 20301,
-  VPUNPCKLBWZ128rmkz = 20302,
-  VPUNPCKLBWZ128rr = 20303,
-  VPUNPCKLBWZ128rrk = 20304,
-  VPUNPCKLBWZ128rrkz = 20305,
-  VPUNPCKLBWZ256rm = 20306,
-  VPUNPCKLBWZ256rmk = 20307,
-  VPUNPCKLBWZ256rmkz = 20308,
-  VPUNPCKLBWZ256rr = 20309,
-  VPUNPCKLBWZ256rrk = 20310,
-  VPUNPCKLBWZ256rrkz = 20311,
-  VPUNPCKLBWZrm = 20312,
-  VPUNPCKLBWZrmk = 20313,
-  VPUNPCKLBWZrmkz = 20314,
-  VPUNPCKLBWZrr = 20315,
-  VPUNPCKLBWZrrk = 20316,
-  VPUNPCKLBWZrrkz = 20317,
-  VPUNPCKLBWrm = 20318,
-  VPUNPCKLBWrr = 20319,
-  VPUNPCKLDQYrm = 20320,
-  VPUNPCKLDQYrr = 20321,
-  VPUNPCKLDQZ128rm = 20322,
-  VPUNPCKLDQZ128rmb = 20323,
-  VPUNPCKLDQZ128rmbk = 20324,
-  VPUNPCKLDQZ128rmbkz = 20325,
-  VPUNPCKLDQZ128rmk = 20326,
-  VPUNPCKLDQZ128rmkz = 20327,
-  VPUNPCKLDQZ128rr = 20328,
-  VPUNPCKLDQZ128rrk = 20329,
-  VPUNPCKLDQZ128rrkz = 20330,
-  VPUNPCKLDQZ256rm = 20331,
-  VPUNPCKLDQZ256rmb = 20332,
-  VPUNPCKLDQZ256rmbk = 20333,
-  VPUNPCKLDQZ256rmbkz = 20334,
-  VPUNPCKLDQZ256rmk = 20335,
-  VPUNPCKLDQZ256rmkz = 20336,
-  VPUNPCKLDQZ256rr = 20337,
-  VPUNPCKLDQZ256rrk = 20338,
-  VPUNPCKLDQZ256rrkz = 20339,
-  VPUNPCKLDQZrm = 20340,
-  VPUNPCKLDQZrmb = 20341,
-  VPUNPCKLDQZrmbk = 20342,
-  VPUNPCKLDQZrmbkz = 20343,
-  VPUNPCKLDQZrmk = 20344,
-  VPUNPCKLDQZrmkz = 20345,
-  VPUNPCKLDQZrr = 20346,
-  VPUNPCKLDQZrrk = 20347,
-  VPUNPCKLDQZrrkz = 20348,
-  VPUNPCKLDQrm = 20349,
-  VPUNPCKLDQrr = 20350,
-  VPUNPCKLQDQYrm = 20351,
-  VPUNPCKLQDQYrr = 20352,
-  VPUNPCKLQDQZ128rm = 20353,
-  VPUNPCKLQDQZ128rmb = 20354,
-  VPUNPCKLQDQZ128rmbk = 20355,
-  VPUNPCKLQDQZ128rmbkz = 20356,
-  VPUNPCKLQDQZ128rmk = 20357,
-  VPUNPCKLQDQZ128rmkz = 20358,
-  VPUNPCKLQDQZ128rr = 20359,
-  VPUNPCKLQDQZ128rrk = 20360,
-  VPUNPCKLQDQZ128rrkz = 20361,
-  VPUNPCKLQDQZ256rm = 20362,
-  VPUNPCKLQDQZ256rmb = 20363,
-  VPUNPCKLQDQZ256rmbk = 20364,
-  VPUNPCKLQDQZ256rmbkz = 20365,
-  VPUNPCKLQDQZ256rmk = 20366,
-  VPUNPCKLQDQZ256rmkz = 20367,
-  VPUNPCKLQDQZ256rr = 20368,
-  VPUNPCKLQDQZ256rrk = 20369,
-  VPUNPCKLQDQZ256rrkz = 20370,
-  VPUNPCKLQDQZrm = 20371,
-  VPUNPCKLQDQZrmb = 20372,
-  VPUNPCKLQDQZrmbk = 20373,
-  VPUNPCKLQDQZrmbkz = 20374,
-  VPUNPCKLQDQZrmk = 20375,
-  VPUNPCKLQDQZrmkz = 20376,
-  VPUNPCKLQDQZrr = 20377,
-  VPUNPCKLQDQZrrk = 20378,
-  VPUNPCKLQDQZrrkz = 20379,
-  VPUNPCKLQDQrm = 20380,
-  VPUNPCKLQDQrr = 20381,
-  VPUNPCKLWDYrm = 20382,
-  VPUNPCKLWDYrr = 20383,
-  VPUNPCKLWDZ128rm = 20384,
-  VPUNPCKLWDZ128rmk = 20385,
-  VPUNPCKLWDZ128rmkz = 20386,
-  VPUNPCKLWDZ128rr = 20387,
-  VPUNPCKLWDZ128rrk = 20388,
-  VPUNPCKLWDZ128rrkz = 20389,
-  VPUNPCKLWDZ256rm = 20390,
-  VPUNPCKLWDZ256rmk = 20391,
-  VPUNPCKLWDZ256rmkz = 20392,
-  VPUNPCKLWDZ256rr = 20393,
-  VPUNPCKLWDZ256rrk = 20394,
-  VPUNPCKLWDZ256rrkz = 20395,
-  VPUNPCKLWDZrm = 20396,
-  VPUNPCKLWDZrmk = 20397,
-  VPUNPCKLWDZrmkz = 20398,
-  VPUNPCKLWDZrr = 20399,
-  VPUNPCKLWDZrrk = 20400,
-  VPUNPCKLWDZrrkz = 20401,
-  VPUNPCKLWDrm = 20402,
-  VPUNPCKLWDrr = 20403,
-  VPXORDZ128rm = 20404,
-  VPXORDZ128rmb = 20405,
-  VPXORDZ128rmbk = 20406,
-  VPXORDZ128rmbkz = 20407,
-  VPXORDZ128rmk = 20408,
-  VPXORDZ128rmkz = 20409,
-  VPXORDZ128rr = 20410,
-  VPXORDZ128rrk = 20411,
-  VPXORDZ128rrkz = 20412,
-  VPXORDZ256rm = 20413,
-  VPXORDZ256rmb = 20414,
-  VPXORDZ256rmbk = 20415,
-  VPXORDZ256rmbkz = 20416,
-  VPXORDZ256rmk = 20417,
-  VPXORDZ256rmkz = 20418,
-  VPXORDZ256rr = 20419,
-  VPXORDZ256rrk = 20420,
-  VPXORDZ256rrkz = 20421,
-  VPXORDZrm = 20422,
-  VPXORDZrmb = 20423,
-  VPXORDZrmbk = 20424,
-  VPXORDZrmbkz = 20425,
-  VPXORDZrmk = 20426,
-  VPXORDZrmkz = 20427,
-  VPXORDZrr = 20428,
-  VPXORDZrrk = 20429,
-  VPXORDZrrkz = 20430,
-  VPXORQZ128rm = 20431,
-  VPXORQZ128rmb = 20432,
-  VPXORQZ128rmbk = 20433,
-  VPXORQZ128rmbkz = 20434,
-  VPXORQZ128rmk = 20435,
-  VPXORQZ128rmkz = 20436,
-  VPXORQZ128rr = 20437,
-  VPXORQZ128rrk = 20438,
-  VPXORQZ128rrkz = 20439,
-  VPXORQZ256rm = 20440,
-  VPXORQZ256rmb = 20441,
-  VPXORQZ256rmbk = 20442,
-  VPXORQZ256rmbkz = 20443,
-  VPXORQZ256rmk = 20444,
-  VPXORQZ256rmkz = 20445,
-  VPXORQZ256rr = 20446,
-  VPXORQZ256rrk = 20447,
-  VPXORQZ256rrkz = 20448,
-  VPXORQZrm = 20449,
-  VPXORQZrmb = 20450,
-  VPXORQZrmbk = 20451,
-  VPXORQZrmbkz = 20452,
-  VPXORQZrmk = 20453,
-  VPXORQZrmkz = 20454,
-  VPXORQZrr = 20455,
-  VPXORQZrrk = 20456,
-  VPXORQZrrkz = 20457,
-  VPXORYrm = 20458,
-  VPXORYrr = 20459,
-  VPXORrm = 20460,
-  VPXORrr = 20461,
-  VRANGEPDZ128rmbi = 20462,
-  VRANGEPDZ128rmbik = 20463,
-  VRANGEPDZ128rmbikz = 20464,
-  VRANGEPDZ128rmi = 20465,
-  VRANGEPDZ128rmik = 20466,
-  VRANGEPDZ128rmikz = 20467,
-  VRANGEPDZ128rri = 20468,
-  VRANGEPDZ128rrik = 20469,
-  VRANGEPDZ128rrikz = 20470,
-  VRANGEPDZ256rmbi = 20471,
-  VRANGEPDZ256rmbik = 20472,
-  VRANGEPDZ256rmbikz = 20473,
-  VRANGEPDZ256rmi = 20474,
-  VRANGEPDZ256rmik = 20475,
-  VRANGEPDZ256rmikz = 20476,
-  VRANGEPDZ256rri = 20477,
-  VRANGEPDZ256rrik = 20478,
-  VRANGEPDZ256rrikz = 20479,
-  VRANGEPDZrmbi = 20480,
-  VRANGEPDZrmbik = 20481,
-  VRANGEPDZrmbikz = 20482,
-  VRANGEPDZrmi = 20483,
-  VRANGEPDZrmik = 20484,
-  VRANGEPDZrmikz = 20485,
-  VRANGEPDZrri = 20486,
-  VRANGEPDZrrib = 20487,
-  VRANGEPDZrribk = 20488,
-  VRANGEPDZrribkz = 20489,
-  VRANGEPDZrrik = 20490,
-  VRANGEPDZrrikz = 20491,
-  VRANGEPSZ128rmbi = 20492,
-  VRANGEPSZ128rmbik = 20493,
-  VRANGEPSZ128rmbikz = 20494,
-  VRANGEPSZ128rmi = 20495,
-  VRANGEPSZ128rmik = 20496,
-  VRANGEPSZ128rmikz = 20497,
-  VRANGEPSZ128rri = 20498,
-  VRANGEPSZ128rrik = 20499,
-  VRANGEPSZ128rrikz = 20500,
-  VRANGEPSZ256rmbi = 20501,
-  VRANGEPSZ256rmbik = 20502,
-  VRANGEPSZ256rmbikz = 20503,
-  VRANGEPSZ256rmi = 20504,
-  VRANGEPSZ256rmik = 20505,
-  VRANGEPSZ256rmikz = 20506,
-  VRANGEPSZ256rri = 20507,
-  VRANGEPSZ256rrik = 20508,
-  VRANGEPSZ256rrikz = 20509,
-  VRANGEPSZrmbi = 20510,
-  VRANGEPSZrmbik = 20511,
-  VRANGEPSZrmbikz = 20512,
-  VRANGEPSZrmi = 20513,
-  VRANGEPSZrmik = 20514,
-  VRANGEPSZrmikz = 20515,
-  VRANGEPSZrri = 20516,
-  VRANGEPSZrrib = 20517,
-  VRANGEPSZrribk = 20518,
-  VRANGEPSZrribkz = 20519,
-  VRANGEPSZrrik = 20520,
-  VRANGEPSZrrikz = 20521,
-  VRANGESDZrmi = 20522,
-  VRANGESDZrmik = 20523,
-  VRANGESDZrmikz = 20524,
-  VRANGESDZrri = 20525,
-  VRANGESDZrrib = 20526,
-  VRANGESDZrribk = 20527,
-  VRANGESDZrribkz = 20528,
-  VRANGESDZrrik = 20529,
-  VRANGESDZrrikz = 20530,
-  VRANGESSZrmi = 20531,
-  VRANGESSZrmik = 20532,
-  VRANGESSZrmikz = 20533,
-  VRANGESSZrri = 20534,
-  VRANGESSZrrib = 20535,
-  VRANGESSZrribk = 20536,
-  VRANGESSZrribkz = 20537,
-  VRANGESSZrrik = 20538,
-  VRANGESSZrrikz = 20539,
-  VRCP14PDZ128m = 20540,
-  VRCP14PDZ128mb = 20541,
-  VRCP14PDZ128mbk = 20542,
-  VRCP14PDZ128mbkz = 20543,
-  VRCP14PDZ128mk = 20544,
-  VRCP14PDZ128mkz = 20545,
-  VRCP14PDZ128r = 20546,
-  VRCP14PDZ128rk = 20547,
-  VRCP14PDZ128rkz = 20548,
-  VRCP14PDZ256m = 20549,
-  VRCP14PDZ256mb = 20550,
-  VRCP14PDZ256mbk = 20551,
-  VRCP14PDZ256mbkz = 20552,
-  VRCP14PDZ256mk = 20553,
-  VRCP14PDZ256mkz = 20554,
-  VRCP14PDZ256r = 20555,
-  VRCP14PDZ256rk = 20556,
-  VRCP14PDZ256rkz = 20557,
-  VRCP14PDZm = 20558,
-  VRCP14PDZmb = 20559,
-  VRCP14PDZmbk = 20560,
-  VRCP14PDZmbkz = 20561,
-  VRCP14PDZmk = 20562,
-  VRCP14PDZmkz = 20563,
-  VRCP14PDZr = 20564,
-  VRCP14PDZrk = 20565,
-  VRCP14PDZrkz = 20566,
-  VRCP14PSZ128m = 20567,
-  VRCP14PSZ128mb = 20568,
-  VRCP14PSZ128mbk = 20569,
-  VRCP14PSZ128mbkz = 20570,
-  VRCP14PSZ128mk = 20571,
-  VRCP14PSZ128mkz = 20572,
-  VRCP14PSZ128r = 20573,
-  VRCP14PSZ128rk = 20574,
-  VRCP14PSZ128rkz = 20575,
-  VRCP14PSZ256m = 20576,
-  VRCP14PSZ256mb = 20577,
-  VRCP14PSZ256mbk = 20578,
-  VRCP14PSZ256mbkz = 20579,
-  VRCP14PSZ256mk = 20580,
-  VRCP14PSZ256mkz = 20581,
-  VRCP14PSZ256r = 20582,
-  VRCP14PSZ256rk = 20583,
-  VRCP14PSZ256rkz = 20584,
-  VRCP14PSZm = 20585,
-  VRCP14PSZmb = 20586,
-  VRCP14PSZmbk = 20587,
-  VRCP14PSZmbkz = 20588,
-  VRCP14PSZmk = 20589,
-  VRCP14PSZmkz = 20590,
-  VRCP14PSZr = 20591,
-  VRCP14PSZrk = 20592,
-  VRCP14PSZrkz = 20593,
-  VRCP14SDZrm = 20594,
-  VRCP14SDZrmk = 20595,
-  VRCP14SDZrmkz = 20596,
-  VRCP14SDZrr = 20597,
-  VRCP14SDZrrk = 20598,
-  VRCP14SDZrrkz = 20599,
-  VRCP14SSZrm = 20600,
-  VRCP14SSZrmk = 20601,
-  VRCP14SSZrmkz = 20602,
-  VRCP14SSZrr = 20603,
-  VRCP14SSZrrk = 20604,
-  VRCP14SSZrrkz = 20605,
-  VRCP28PDZm = 20606,
-  VRCP28PDZmb = 20607,
-  VRCP28PDZmbk = 20608,
-  VRCP28PDZmbkz = 20609,
-  VRCP28PDZmk = 20610,
-  VRCP28PDZmkz = 20611,
-  VRCP28PDZr = 20612,
-  VRCP28PDZrb = 20613,
-  VRCP28PDZrbk = 20614,
-  VRCP28PDZrbkz = 20615,
-  VRCP28PDZrk = 20616,
-  VRCP28PDZrkz = 20617,
-  VRCP28PSZm = 20618,
-  VRCP28PSZmb = 20619,
-  VRCP28PSZmbk = 20620,
-  VRCP28PSZmbkz = 20621,
-  VRCP28PSZmk = 20622,
-  VRCP28PSZmkz = 20623,
-  VRCP28PSZr = 20624,
-  VRCP28PSZrb = 20625,
-  VRCP28PSZrbk = 20626,
-  VRCP28PSZrbkz = 20627,
-  VRCP28PSZrk = 20628,
-  VRCP28PSZrkz = 20629,
-  VRCP28SDZm = 20630,
-  VRCP28SDZmk = 20631,
-  VRCP28SDZmkz = 20632,
-  VRCP28SDZr = 20633,
-  VRCP28SDZrb = 20634,
-  VRCP28SDZrbk = 20635,
-  VRCP28SDZrbkz = 20636,
-  VRCP28SDZrk = 20637,
-  VRCP28SDZrkz = 20638,
-  VRCP28SSZm = 20639,
-  VRCP28SSZmk = 20640,
-  VRCP28SSZmkz = 20641,
-  VRCP28SSZr = 20642,
-  VRCP28SSZrb = 20643,
-  VRCP28SSZrbk = 20644,
-  VRCP28SSZrbkz = 20645,
-  VRCP28SSZrk = 20646,
-  VRCP28SSZrkz = 20647,
-  VRCPBF16Z128m = 20648,
-  VRCPBF16Z128mb = 20649,
-  VRCPBF16Z128mbk = 20650,
-  VRCPBF16Z128mbkz = 20651,
-  VRCPBF16Z128mk = 20652,
-  VRCPBF16Z128mkz = 20653,
-  VRCPBF16Z128r = 20654,
-  VRCPBF16Z128rk = 20655,
-  VRCPBF16Z128rkz = 20656,
-  VRCPBF16Z256m = 20657,
-  VRCPBF16Z256mb = 20658,
-  VRCPBF16Z256mbk = 20659,
-  VRCPBF16Z256mbkz = 20660,
-  VRCPBF16Z256mk = 20661,
-  VRCPBF16Z256mkz = 20662,
-  VRCPBF16Z256r = 20663,
-  VRCPBF16Z256rk = 20664,
-  VRCPBF16Z256rkz = 20665,
-  VRCPBF16Zm = 20666,
-  VRCPBF16Zmb = 20667,
-  VRCPBF16Zmbk = 20668,
-  VRCPBF16Zmbkz = 20669,
-  VRCPBF16Zmk = 20670,
-  VRCPBF16Zmkz = 20671,
-  VRCPBF16Zr = 20672,
-  VRCPBF16Zrk = 20673,
-  VRCPBF16Zrkz = 20674,
-  VRCPPHZ128m = 20675,
-  VRCPPHZ128mb = 20676,
-  VRCPPHZ128mbk = 20677,
-  VRCPPHZ128mbkz = 20678,
-  VRCPPHZ128mk = 20679,
-  VRCPPHZ128mkz = 20680,
-  VRCPPHZ128r = 20681,
-  VRCPPHZ128rk = 20682,
-  VRCPPHZ128rkz = 20683,
-  VRCPPHZ256m = 20684,
-  VRCPPHZ256mb = 20685,
-  VRCPPHZ256mbk = 20686,
-  VRCPPHZ256mbkz = 20687,
-  VRCPPHZ256mk = 20688,
-  VRCPPHZ256mkz = 20689,
-  VRCPPHZ256r = 20690,
-  VRCPPHZ256rk = 20691,
-  VRCPPHZ256rkz = 20692,
-  VRCPPHZm = 20693,
-  VRCPPHZmb = 20694,
-  VRCPPHZmbk = 20695,
-  VRCPPHZmbkz = 20696,
-  VRCPPHZmk = 20697,
-  VRCPPHZmkz = 20698,
-  VRCPPHZr = 20699,
-  VRCPPHZrk = 20700,
-  VRCPPHZrkz = 20701,
-  VRCPPSYm = 20702,
-  VRCPPSYr = 20703,
-  VRCPPSm = 20704,
-  VRCPPSr = 20705,
-  VRCPSHZrm = 20706,
-  VRCPSHZrmk = 20707,
-  VRCPSHZrmkz = 20708,
-  VRCPSHZrr = 20709,
-  VRCPSHZrrk = 20710,
-  VRCPSHZrrkz = 20711,
-  VRCPSSm = 20712,
-  VRCPSSm_Int = 20713,
-  VRCPSSr = 20714,
-  VRCPSSr_Int = 20715,
-  VREDUCEBF16Z128rmbi = 20716,
-  VREDUCEBF16Z128rmbik = 20717,
-  VREDUCEBF16Z128rmbikz = 20718,
-  VREDUCEBF16Z128rmi = 20719,
-  VREDUCEBF16Z128rmik = 20720,
-  VREDUCEBF16Z128rmikz = 20721,
-  VREDUCEBF16Z128rri = 20722,
-  VREDUCEBF16Z128rrik = 20723,
-  VREDUCEBF16Z128rrikz = 20724,
-  VREDUCEBF16Z256rmbi = 20725,
-  VREDUCEBF16Z256rmbik = 20726,
-  VREDUCEBF16Z256rmbikz = 20727,
-  VREDUCEBF16Z256rmi = 20728,
-  VREDUCEBF16Z256rmik = 20729,
-  VREDUCEBF16Z256rmikz = 20730,
-  VREDUCEBF16Z256rri = 20731,
-  VREDUCEBF16Z256rrik = 20732,
-  VREDUCEBF16Z256rrikz = 20733,
-  VREDUCEBF16Zrmbi = 20734,
-  VREDUCEBF16Zrmbik = 20735,
-  VREDUCEBF16Zrmbikz = 20736,
-  VREDUCEBF16Zrmi = 20737,
-  VREDUCEBF16Zrmik = 20738,
-  VREDUCEBF16Zrmikz = 20739,
-  VREDUCEBF16Zrri = 20740,
-  VREDUCEBF16Zrrik = 20741,
-  VREDUCEBF16Zrrikz = 20742,
-  VREDUCEPDZ128rmbi = 20743,
-  VREDUCEPDZ128rmbik = 20744,
-  VREDUCEPDZ128rmbikz = 20745,
-  VREDUCEPDZ128rmi = 20746,
-  VREDUCEPDZ128rmik = 20747,
-  VREDUCEPDZ128rmikz = 20748,
-  VREDUCEPDZ128rri = 20749,
-  VREDUCEPDZ128rrik = 20750,
-  VREDUCEPDZ128rrikz = 20751,
-  VREDUCEPDZ256rmbi = 20752,
-  VREDUCEPDZ256rmbik = 20753,
-  VREDUCEPDZ256rmbikz = 20754,
-  VREDUCEPDZ256rmi = 20755,
-  VREDUCEPDZ256rmik = 20756,
-  VREDUCEPDZ256rmikz = 20757,
-  VREDUCEPDZ256rri = 20758,
-  VREDUCEPDZ256rrik = 20759,
-  VREDUCEPDZ256rrikz = 20760,
-  VREDUCEPDZrmbi = 20761,
-  VREDUCEPDZrmbik = 20762,
-  VREDUCEPDZrmbikz = 20763,
-  VREDUCEPDZrmi = 20764,
-  VREDUCEPDZrmik = 20765,
-  VREDUCEPDZrmikz = 20766,
-  VREDUCEPDZrri = 20767,
-  VREDUCEPDZrrib = 20768,
-  VREDUCEPDZrribk = 20769,
-  VREDUCEPDZrribkz = 20770,
-  VREDUCEPDZrrik = 20771,
-  VREDUCEPDZrrikz = 20772,
-  VREDUCEPHZ128rmbi = 20773,
-  VREDUCEPHZ128rmbik = 20774,
-  VREDUCEPHZ128rmbikz = 20775,
-  VREDUCEPHZ128rmi = 20776,
-  VREDUCEPHZ128rmik = 20777,
-  VREDUCEPHZ128rmikz = 20778,
-  VREDUCEPHZ128rri = 20779,
-  VREDUCEPHZ128rrik = 20780,
-  VREDUCEPHZ128rrikz = 20781,
-  VREDUCEPHZ256rmbi = 20782,
-  VREDUCEPHZ256rmbik = 20783,
-  VREDUCEPHZ256rmbikz = 20784,
-  VREDUCEPHZ256rmi = 20785,
-  VREDUCEPHZ256rmik = 20786,
-  VREDUCEPHZ256rmikz = 20787,
-  VREDUCEPHZ256rri = 20788,
-  VREDUCEPHZ256rrik = 20789,
-  VREDUCEPHZ256rrikz = 20790,
-  VREDUCEPHZrmbi = 20791,
-  VREDUCEPHZrmbik = 20792,
-  VREDUCEPHZrmbikz = 20793,
-  VREDUCEPHZrmi = 20794,
-  VREDUCEPHZrmik = 20795,
-  VREDUCEPHZrmikz = 20796,
-  VREDUCEPHZrri = 20797,
-  VREDUCEPHZrrib = 20798,
-  VREDUCEPHZrribk = 20799,
-  VREDUCEPHZrribkz = 20800,
-  VREDUCEPHZrrik = 20801,
-  VREDUCEPHZrrikz = 20802,
-  VREDUCEPSZ128rmbi = 20803,
-  VREDUCEPSZ128rmbik = 20804,
-  VREDUCEPSZ128rmbikz = 20805,
-  VREDUCEPSZ128rmi = 20806,
-  VREDUCEPSZ128rmik = 20807,
-  VREDUCEPSZ128rmikz = 20808,
-  VREDUCEPSZ128rri = 20809,
-  VREDUCEPSZ128rrik = 20810,
-  VREDUCEPSZ128rrikz = 20811,
-  VREDUCEPSZ256rmbi = 20812,
-  VREDUCEPSZ256rmbik = 20813,
-  VREDUCEPSZ256rmbikz = 20814,
-  VREDUCEPSZ256rmi = 20815,
-  VREDUCEPSZ256rmik = 20816,
-  VREDUCEPSZ256rmikz = 20817,
-  VREDUCEPSZ256rri = 20818,
-  VREDUCEPSZ256rrik = 20819,
-  VREDUCEPSZ256rrikz = 20820,
-  VREDUCEPSZrmbi = 20821,
-  VREDUCEPSZrmbik = 20822,
-  VREDUCEPSZrmbikz = 20823,
-  VREDUCEPSZrmi = 20824,
-  VREDUCEPSZrmik = 20825,
-  VREDUCEPSZrmikz = 20826,
-  VREDUCEPSZrri = 20827,
-  VREDUCEPSZrrib = 20828,
-  VREDUCEPSZrribk = 20829,
-  VREDUCEPSZrribkz = 20830,
-  VREDUCEPSZrrik = 20831,
-  VREDUCEPSZrrikz = 20832,
-  VREDUCESDZrmi = 20833,
-  VREDUCESDZrmik = 20834,
-  VREDUCESDZrmikz = 20835,
-  VREDUCESDZrri = 20836,
-  VREDUCESDZrrib = 20837,
-  VREDUCESDZrribk = 20838,
-  VREDUCESDZrribkz = 20839,
-  VREDUCESDZrrik = 20840,
-  VREDUCESDZrrikz = 20841,
-  VREDUCESHZrmi = 20842,
-  VREDUCESHZrmik = 20843,
-  VREDUCESHZrmikz = 20844,
-  VREDUCESHZrri = 20845,
-  VREDUCESHZrrib = 20846,
-  VREDUCESHZrribk = 20847,
-  VREDUCESHZrribkz = 20848,
-  VREDUCESHZrrik = 20849,
-  VREDUCESHZrrikz = 20850,
-  VREDUCESSZrmi = 20851,
-  VREDUCESSZrmik = 20852,
-  VREDUCESSZrmikz = 20853,
-  VREDUCESSZrri = 20854,
-  VREDUCESSZrrib = 20855,
-  VREDUCESSZrribk = 20856,
-  VREDUCESSZrribkz = 20857,
-  VREDUCESSZrrik = 20858,
-  VREDUCESSZrrikz = 20859,
-  VRNDSCALEBF16Z128rmbi = 20860,
-  VRNDSCALEBF16Z128rmbik = 20861,
-  VRNDSCALEBF16Z128rmbikz = 20862,
-  VRNDSCALEBF16Z128rmi = 20863,
-  VRNDSCALEBF16Z128rmik = 20864,
-  VRNDSCALEBF16Z128rmikz = 20865,
-  VRNDSCALEBF16Z128rri = 20866,
-  VRNDSCALEBF16Z128rrik = 20867,
-  VRNDSCALEBF16Z128rrikz = 20868,
-  VRNDSCALEBF16Z256rmbi = 20869,
-  VRNDSCALEBF16Z256rmbik = 20870,
-  VRNDSCALEBF16Z256rmbikz = 20871,
-  VRNDSCALEBF16Z256rmi = 20872,
-  VRNDSCALEBF16Z256rmik = 20873,
-  VRNDSCALEBF16Z256rmikz = 20874,
-  VRNDSCALEBF16Z256rri = 20875,
-  VRNDSCALEBF16Z256rrik = 20876,
-  VRNDSCALEBF16Z256rrikz = 20877,
-  VRNDSCALEBF16Zrmbi = 20878,
-  VRNDSCALEBF16Zrmbik = 20879,
-  VRNDSCALEBF16Zrmbikz = 20880,
-  VRNDSCALEBF16Zrmi = 20881,
-  VRNDSCALEBF16Zrmik = 20882,
-  VRNDSCALEBF16Zrmikz = 20883,
-  VRNDSCALEBF16Zrri = 20884,
-  VRNDSCALEBF16Zrrik = 20885,
-  VRNDSCALEBF16Zrrikz = 20886,
-  VRNDSCALEPDZ128rmbi = 20887,
-  VRNDSCALEPDZ128rmbik = 20888,
-  VRNDSCALEPDZ128rmbikz = 20889,
-  VRNDSCALEPDZ128rmi = 20890,
-  VRNDSCALEPDZ128rmik = 20891,
-  VRNDSCALEPDZ128rmikz = 20892,
-  VRNDSCALEPDZ128rri = 20893,
-  VRNDSCALEPDZ128rrik = 20894,
-  VRNDSCALEPDZ128rrikz = 20895,
-  VRNDSCALEPDZ256rmbi = 20896,
-  VRNDSCALEPDZ256rmbik = 20897,
-  VRNDSCALEPDZ256rmbikz = 20898,
-  VRNDSCALEPDZ256rmi = 20899,
-  VRNDSCALEPDZ256rmik = 20900,
-  VRNDSCALEPDZ256rmikz = 20901,
-  VRNDSCALEPDZ256rri = 20902,
-  VRNDSCALEPDZ256rrik = 20903,
-  VRNDSCALEPDZ256rrikz = 20904,
-  VRNDSCALEPDZrmbi = 20905,
-  VRNDSCALEPDZrmbik = 20906,
-  VRNDSCALEPDZrmbikz = 20907,
-  VRNDSCALEPDZrmi = 20908,
-  VRNDSCALEPDZrmik = 20909,
-  VRNDSCALEPDZrmikz = 20910,
-  VRNDSCALEPDZrri = 20911,
-  VRNDSCALEPDZrrib = 20912,
-  VRNDSCALEPDZrribk = 20913,
-  VRNDSCALEPDZrribkz = 20914,
-  VRNDSCALEPDZrrik = 20915,
-  VRNDSCALEPDZrrikz = 20916,
-  VRNDSCALEPHZ128rmbi = 20917,
-  VRNDSCALEPHZ128rmbik = 20918,
-  VRNDSCALEPHZ128rmbikz = 20919,
-  VRNDSCALEPHZ128rmi = 20920,
-  VRNDSCALEPHZ128rmik = 20921,
-  VRNDSCALEPHZ128rmikz = 20922,
-  VRNDSCALEPHZ128rri = 20923,
-  VRNDSCALEPHZ128rrik = 20924,
-  VRNDSCALEPHZ128rrikz = 20925,
-  VRNDSCALEPHZ256rmbi = 20926,
-  VRNDSCALEPHZ256rmbik = 20927,
-  VRNDSCALEPHZ256rmbikz = 20928,
-  VRNDSCALEPHZ256rmi = 20929,
-  VRNDSCALEPHZ256rmik = 20930,
-  VRNDSCALEPHZ256rmikz = 20931,
-  VRNDSCALEPHZ256rri = 20932,
-  VRNDSCALEPHZ256rrik = 20933,
-  VRNDSCALEPHZ256rrikz = 20934,
-  VRNDSCALEPHZrmbi = 20935,
-  VRNDSCALEPHZrmbik = 20936,
-  VRNDSCALEPHZrmbikz = 20937,
-  VRNDSCALEPHZrmi = 20938,
-  VRNDSCALEPHZrmik = 20939,
-  VRNDSCALEPHZrmikz = 20940,
-  VRNDSCALEPHZrri = 20941,
-  VRNDSCALEPHZrrib = 20942,
-  VRNDSCALEPHZrribk = 20943,
-  VRNDSCALEPHZrribkz = 20944,
-  VRNDSCALEPHZrrik = 20945,
-  VRNDSCALEPHZrrikz = 20946,
-  VRNDSCALEPSZ128rmbi = 20947,
-  VRNDSCALEPSZ128rmbik = 20948,
-  VRNDSCALEPSZ128rmbikz = 20949,
-  VRNDSCALEPSZ128rmi = 20950,
-  VRNDSCALEPSZ128rmik = 20951,
-  VRNDSCALEPSZ128rmikz = 20952,
-  VRNDSCALEPSZ128rri = 20953,
-  VRNDSCALEPSZ128rrik = 20954,
-  VRNDSCALEPSZ128rrikz = 20955,
-  VRNDSCALEPSZ256rmbi = 20956,
-  VRNDSCALEPSZ256rmbik = 20957,
-  VRNDSCALEPSZ256rmbikz = 20958,
-  VRNDSCALEPSZ256rmi = 20959,
-  VRNDSCALEPSZ256rmik = 20960,
-  VRNDSCALEPSZ256rmikz = 20961,
-  VRNDSCALEPSZ256rri = 20962,
-  VRNDSCALEPSZ256rrik = 20963,
-  VRNDSCALEPSZ256rrikz = 20964,
-  VRNDSCALEPSZrmbi = 20965,
-  VRNDSCALEPSZrmbik = 20966,
-  VRNDSCALEPSZrmbikz = 20967,
-  VRNDSCALEPSZrmi = 20968,
-  VRNDSCALEPSZrmik = 20969,
-  VRNDSCALEPSZrmikz = 20970,
-  VRNDSCALEPSZrri = 20971,
-  VRNDSCALEPSZrrib = 20972,
-  VRNDSCALEPSZrribk = 20973,
-  VRNDSCALEPSZrribkz = 20974,
-  VRNDSCALEPSZrrik = 20975,
-  VRNDSCALEPSZrrikz = 20976,
-  VRNDSCALESDZrmi = 20977,
-  VRNDSCALESDZrmi_Int = 20978,
-  VRNDSCALESDZrmik_Int = 20979,
-  VRNDSCALESDZrmikz_Int = 20980,
-  VRNDSCALESDZrri = 20981,
-  VRNDSCALESDZrri_Int = 20982,
-  VRNDSCALESDZrrib_Int = 20983,
-  VRNDSCALESDZrribk_Int = 20984,
-  VRNDSCALESDZrribkz_Int = 20985,
-  VRNDSCALESDZrrik_Int = 20986,
-  VRNDSCALESDZrrikz_Int = 20987,
-  VRNDSCALESHZrmi = 20988,
-  VRNDSCALESHZrmi_Int = 20989,
-  VRNDSCALESHZrmik_Int = 20990,
-  VRNDSCALESHZrmikz_Int = 20991,
-  VRNDSCALESHZrri = 20992,
-  VRNDSCALESHZrri_Int = 20993,
-  VRNDSCALESHZrrib_Int = 20994,
-  VRNDSCALESHZrribk_Int = 20995,
-  VRNDSCALESHZrribkz_Int = 20996,
-  VRNDSCALESHZrrik_Int = 20997,
-  VRNDSCALESHZrrikz_Int = 20998,
-  VRNDSCALESSZrmi = 20999,
-  VRNDSCALESSZrmi_Int = 21000,
-  VRNDSCALESSZrmik_Int = 21001,
-  VRNDSCALESSZrmikz_Int = 21002,
-  VRNDSCALESSZrri = 21003,
-  VRNDSCALESSZrri_Int = 21004,
-  VRNDSCALESSZrrib_Int = 21005,
-  VRNDSCALESSZrribk_Int = 21006,
-  VRNDSCALESSZrribkz_Int = 21007,
-  VRNDSCALESSZrrik_Int = 21008,
-  VRNDSCALESSZrrikz_Int = 21009,
-  VROUNDPDYmi = 21010,
-  VROUNDPDYri = 21011,
-  VROUNDPDmi = 21012,
-  VROUNDPDri = 21013,
-  VROUNDPSYmi = 21014,
-  VROUNDPSYri = 21015,
-  VROUNDPSmi = 21016,
-  VROUNDPSri = 21017,
-  VROUNDSDmi = 21018,
-  VROUNDSDmi_Int = 21019,
-  VROUNDSDri = 21020,
-  VROUNDSDri_Int = 21021,
-  VROUNDSSmi = 21022,
-  VROUNDSSmi_Int = 21023,
-  VROUNDSSri = 21024,
-  VROUNDSSri_Int = 21025,
-  VRSQRT14PDZ128m = 21026,
-  VRSQRT14PDZ128mb = 21027,
-  VRSQRT14PDZ128mbk = 21028,
-  VRSQRT14PDZ128mbkz = 21029,
-  VRSQRT14PDZ128mk = 21030,
-  VRSQRT14PDZ128mkz = 21031,
-  VRSQRT14PDZ128r = 21032,
-  VRSQRT14PDZ128rk = 21033,
-  VRSQRT14PDZ128rkz = 21034,
-  VRSQRT14PDZ256m = 21035,
-  VRSQRT14PDZ256mb = 21036,
-  VRSQRT14PDZ256mbk = 21037,
-  VRSQRT14PDZ256mbkz = 21038,
-  VRSQRT14PDZ256mk = 21039,
-  VRSQRT14PDZ256mkz = 21040,
-  VRSQRT14PDZ256r = 21041,
-  VRSQRT14PDZ256rk = 21042,
-  VRSQRT14PDZ256rkz = 21043,
-  VRSQRT14PDZm = 21044,
-  VRSQRT14PDZmb = 21045,
-  VRSQRT14PDZmbk = 21046,
-  VRSQRT14PDZmbkz = 21047,
-  VRSQRT14PDZmk = 21048,
-  VRSQRT14PDZmkz = 21049,
-  VRSQRT14PDZr = 21050,
-  VRSQRT14PDZrk = 21051,
-  VRSQRT14PDZrkz = 21052,
-  VRSQRT14PSZ128m = 21053,
-  VRSQRT14PSZ128mb = 21054,
-  VRSQRT14PSZ128mbk = 21055,
-  VRSQRT14PSZ128mbkz = 21056,
-  VRSQRT14PSZ128mk = 21057,
-  VRSQRT14PSZ128mkz = 21058,
-  VRSQRT14PSZ128r = 21059,
-  VRSQRT14PSZ128rk = 21060,
-  VRSQRT14PSZ128rkz = 21061,
-  VRSQRT14PSZ256m = 21062,
-  VRSQRT14PSZ256mb = 21063,
-  VRSQRT14PSZ256mbk = 21064,
-  VRSQRT14PSZ256mbkz = 21065,
-  VRSQRT14PSZ256mk = 21066,
-  VRSQRT14PSZ256mkz = 21067,
-  VRSQRT14PSZ256r = 21068,
-  VRSQRT14PSZ256rk = 21069,
-  VRSQRT14PSZ256rkz = 21070,
-  VRSQRT14PSZm = 21071,
-  VRSQRT14PSZmb = 21072,
-  VRSQRT14PSZmbk = 21073,
-  VRSQRT14PSZmbkz = 21074,
-  VRSQRT14PSZmk = 21075,
-  VRSQRT14PSZmkz = 21076,
-  VRSQRT14PSZr = 21077,
-  VRSQRT14PSZrk = 21078,
-  VRSQRT14PSZrkz = 21079,
-  VRSQRT14SDZrm = 21080,
-  VRSQRT14SDZrmk = 21081,
-  VRSQRT14SDZrmkz = 21082,
-  VRSQRT14SDZrr = 21083,
-  VRSQRT14SDZrrk = 21084,
-  VRSQRT14SDZrrkz = 21085,
-  VRSQRT14SSZrm = 21086,
-  VRSQRT14SSZrmk = 21087,
-  VRSQRT14SSZrmkz = 21088,
-  VRSQRT14SSZrr = 21089,
-  VRSQRT14SSZrrk = 21090,
-  VRSQRT14SSZrrkz = 21091,
-  VRSQRT28PDZm = 21092,
-  VRSQRT28PDZmb = 21093,
-  VRSQRT28PDZmbk = 21094,
-  VRSQRT28PDZmbkz = 21095,
-  VRSQRT28PDZmk = 21096,
-  VRSQRT28PDZmkz = 21097,
-  VRSQRT28PDZr = 21098,
-  VRSQRT28PDZrb = 21099,
-  VRSQRT28PDZrbk = 21100,
-  VRSQRT28PDZrbkz = 21101,
-  VRSQRT28PDZrk = 21102,
-  VRSQRT28PDZrkz = 21103,
-  VRSQRT28PSZm = 21104,
-  VRSQRT28PSZmb = 21105,
-  VRSQRT28PSZmbk = 21106,
-  VRSQRT28PSZmbkz = 21107,
-  VRSQRT28PSZmk = 21108,
-  VRSQRT28PSZmkz = 21109,
-  VRSQRT28PSZr = 21110,
-  VRSQRT28PSZrb = 21111,
-  VRSQRT28PSZrbk = 21112,
-  VRSQRT28PSZrbkz = 21113,
-  VRSQRT28PSZrk = 21114,
-  VRSQRT28PSZrkz = 21115,
-  VRSQRT28SDZm = 21116,
-  VRSQRT28SDZmk = 21117,
-  VRSQRT28SDZmkz = 21118,
-  VRSQRT28SDZr = 21119,
-  VRSQRT28SDZrb = 21120,
-  VRSQRT28SDZrbk = 21121,
-  VRSQRT28SDZrbkz = 21122,
-  VRSQRT28SDZrk = 21123,
-  VRSQRT28SDZrkz = 21124,
-  VRSQRT28SSZm = 21125,
-  VRSQRT28SSZmk = 21126,
-  VRSQRT28SSZmkz = 21127,
-  VRSQRT28SSZr = 21128,
-  VRSQRT28SSZrb = 21129,
-  VRSQRT28SSZrbk = 21130,
-  VRSQRT28SSZrbkz = 21131,
-  VRSQRT28SSZrk = 21132,
-  VRSQRT28SSZrkz = 21133,
-  VRSQRTBF16Z128m = 21134,
-  VRSQRTBF16Z128mb = 21135,
-  VRSQRTBF16Z128mbk = 21136,
-  VRSQRTBF16Z128mbkz = 21137,
-  VRSQRTBF16Z128mk = 21138,
-  VRSQRTBF16Z128mkz = 21139,
-  VRSQRTBF16Z128r = 21140,
-  VRSQRTBF16Z128rk = 21141,
-  VRSQRTBF16Z128rkz = 21142,
-  VRSQRTBF16Z256m = 21143,
-  VRSQRTBF16Z256mb = 21144,
-  VRSQRTBF16Z256mbk = 21145,
-  VRSQRTBF16Z256mbkz = 21146,
-  VRSQRTBF16Z256mk = 21147,
-  VRSQRTBF16Z256mkz = 21148,
-  VRSQRTBF16Z256r = 21149,
-  VRSQRTBF16Z256rk = 21150,
-  VRSQRTBF16Z256rkz = 21151,
-  VRSQRTBF16Zm = 21152,
-  VRSQRTBF16Zmb = 21153,
-  VRSQRTBF16Zmbk = 21154,
-  VRSQRTBF16Zmbkz = 21155,
-  VRSQRTBF16Zmk = 21156,
-  VRSQRTBF16Zmkz = 21157,
-  VRSQRTBF16Zr = 21158,
-  VRSQRTBF16Zrk = 21159,
-  VRSQRTBF16Zrkz = 21160,
-  VRSQRTPHZ128m = 21161,
-  VRSQRTPHZ128mb = 21162,
-  VRSQRTPHZ128mbk = 21163,
-  VRSQRTPHZ128mbkz = 21164,
-  VRSQRTPHZ128mk = 21165,
-  VRSQRTPHZ128mkz = 21166,
-  VRSQRTPHZ128r = 21167,
-  VRSQRTPHZ128rk = 21168,
-  VRSQRTPHZ128rkz = 21169,
-  VRSQRTPHZ256m = 21170,
-  VRSQRTPHZ256mb = 21171,
-  VRSQRTPHZ256mbk = 21172,
-  VRSQRTPHZ256mbkz = 21173,
-  VRSQRTPHZ256mk = 21174,
-  VRSQRTPHZ256mkz = 21175,
-  VRSQRTPHZ256r = 21176,
-  VRSQRTPHZ256rk = 21177,
-  VRSQRTPHZ256rkz = 21178,
-  VRSQRTPHZm = 21179,
-  VRSQRTPHZmb = 21180,
-  VRSQRTPHZmbk = 21181,
-  VRSQRTPHZmbkz = 21182,
-  VRSQRTPHZmk = 21183,
-  VRSQRTPHZmkz = 21184,
-  VRSQRTPHZr = 21185,
-  VRSQRTPHZrk = 21186,
-  VRSQRTPHZrkz = 21187,
-  VRSQRTPSYm = 21188,
-  VRSQRTPSYr = 21189,
-  VRSQRTPSm = 21190,
-  VRSQRTPSr = 21191,
-  VRSQRTSHZrm = 21192,
-  VRSQRTSHZrmk = 21193,
-  VRSQRTSHZrmkz = 21194,
-  VRSQRTSHZrr = 21195,
-  VRSQRTSHZrrk = 21196,
-  VRSQRTSHZrrkz = 21197,
-  VRSQRTSSm = 21198,
-  VRSQRTSSm_Int = 21199,
-  VRSQRTSSr = 21200,
-  VRSQRTSSr_Int = 21201,
-  VSCALEFBF16Z128rm = 21202,
-  VSCALEFBF16Z128rmb = 21203,
-  VSCALEFBF16Z128rmbk = 21204,
-  VSCALEFBF16Z128rmbkz = 21205,
-  VSCALEFBF16Z128rmk = 21206,
-  VSCALEFBF16Z128rmkz = 21207,
-  VSCALEFBF16Z128rr = 21208,
-  VSCALEFBF16Z128rrk = 21209,
-  VSCALEFBF16Z128rrkz = 21210,
-  VSCALEFBF16Z256rm = 21211,
-  VSCALEFBF16Z256rmb = 21212,
-  VSCALEFBF16Z256rmbk = 21213,
-  VSCALEFBF16Z256rmbkz = 21214,
-  VSCALEFBF16Z256rmk = 21215,
-  VSCALEFBF16Z256rmkz = 21216,
-  VSCALEFBF16Z256rr = 21217,
-  VSCALEFBF16Z256rrk = 21218,
-  VSCALEFBF16Z256rrkz = 21219,
-  VSCALEFBF16Zrm = 21220,
-  VSCALEFBF16Zrmb = 21221,
-  VSCALEFBF16Zrmbk = 21222,
-  VSCALEFBF16Zrmbkz = 21223,
-  VSCALEFBF16Zrmk = 21224,
-  VSCALEFBF16Zrmkz = 21225,
-  VSCALEFBF16Zrr = 21226,
-  VSCALEFBF16Zrrk = 21227,
-  VSCALEFBF16Zrrkz = 21228,
-  VSCALEFPDZ128rm = 21229,
-  VSCALEFPDZ128rmb = 21230,
-  VSCALEFPDZ128rmbk = 21231,
-  VSCALEFPDZ128rmbkz = 21232,
-  VSCALEFPDZ128rmk = 21233,
-  VSCALEFPDZ128rmkz = 21234,
-  VSCALEFPDZ128rr = 21235,
-  VSCALEFPDZ128rrk = 21236,
-  VSCALEFPDZ128rrkz = 21237,
-  VSCALEFPDZ256rm = 21238,
-  VSCALEFPDZ256rmb = 21239,
-  VSCALEFPDZ256rmbk = 21240,
-  VSCALEFPDZ256rmbkz = 21241,
-  VSCALEFPDZ256rmk = 21242,
-  VSCALEFPDZ256rmkz = 21243,
-  VSCALEFPDZ256rr = 21244,
-  VSCALEFPDZ256rrk = 21245,
-  VSCALEFPDZ256rrkz = 21246,
-  VSCALEFPDZrm = 21247,
-  VSCALEFPDZrmb = 21248,
-  VSCALEFPDZrmbk = 21249,
-  VSCALEFPDZrmbkz = 21250,
-  VSCALEFPDZrmk = 21251,
-  VSCALEFPDZrmkz = 21252,
-  VSCALEFPDZrr = 21253,
-  VSCALEFPDZrrb = 21254,
-  VSCALEFPDZrrbk = 21255,
-  VSCALEFPDZrrbkz = 21256,
-  VSCALEFPDZrrk = 21257,
-  VSCALEFPDZrrkz = 21258,
-  VSCALEFPHZ128rm = 21259,
-  VSCALEFPHZ128rmb = 21260,
-  VSCALEFPHZ128rmbk = 21261,
-  VSCALEFPHZ128rmbkz = 21262,
-  VSCALEFPHZ128rmk = 21263,
-  VSCALEFPHZ128rmkz = 21264,
-  VSCALEFPHZ128rr = 21265,
-  VSCALEFPHZ128rrk = 21266,
-  VSCALEFPHZ128rrkz = 21267,
-  VSCALEFPHZ256rm = 21268,
-  VSCALEFPHZ256rmb = 21269,
-  VSCALEFPHZ256rmbk = 21270,
-  VSCALEFPHZ256rmbkz = 21271,
-  VSCALEFPHZ256rmk = 21272,
-  VSCALEFPHZ256rmkz = 21273,
-  VSCALEFPHZ256rr = 21274,
-  VSCALEFPHZ256rrk = 21275,
-  VSCALEFPHZ256rrkz = 21276,
-  VSCALEFPHZrm = 21277,
-  VSCALEFPHZrmb = 21278,
-  VSCALEFPHZrmbk = 21279,
-  VSCALEFPHZrmbkz = 21280,
-  VSCALEFPHZrmk = 21281,
-  VSCALEFPHZrmkz = 21282,
-  VSCALEFPHZrr = 21283,
-  VSCALEFPHZrrb = 21284,
-  VSCALEFPHZrrbk = 21285,
-  VSCALEFPHZrrbkz = 21286,
-  VSCALEFPHZrrk = 21287,
-  VSCALEFPHZrrkz = 21288,
-  VSCALEFPSZ128rm = 21289,
-  VSCALEFPSZ128rmb = 21290,
-  VSCALEFPSZ128rmbk = 21291,
-  VSCALEFPSZ128rmbkz = 21292,
-  VSCALEFPSZ128rmk = 21293,
-  VSCALEFPSZ128rmkz = 21294,
-  VSCALEFPSZ128rr = 21295,
-  VSCALEFPSZ128rrk = 21296,
-  VSCALEFPSZ128rrkz = 21297,
-  VSCALEFPSZ256rm = 21298,
-  VSCALEFPSZ256rmb = 21299,
-  VSCALEFPSZ256rmbk = 21300,
-  VSCALEFPSZ256rmbkz = 21301,
-  VSCALEFPSZ256rmk = 21302,
-  VSCALEFPSZ256rmkz = 21303,
-  VSCALEFPSZ256rr = 21304,
-  VSCALEFPSZ256rrk = 21305,
-  VSCALEFPSZ256rrkz = 21306,
-  VSCALEFPSZrm = 21307,
-  VSCALEFPSZrmb = 21308,
-  VSCALEFPSZrmbk = 21309,
-  VSCALEFPSZrmbkz = 21310,
-  VSCALEFPSZrmk = 21311,
-  VSCALEFPSZrmkz = 21312,
-  VSCALEFPSZrr = 21313,
-  VSCALEFPSZrrb = 21314,
-  VSCALEFPSZrrbk = 21315,
-  VSCALEFPSZrrbkz = 21316,
-  VSCALEFPSZrrk = 21317,
-  VSCALEFPSZrrkz = 21318,
-  VSCALEFSDZrm = 21319,
-  VSCALEFSDZrmk = 21320,
-  VSCALEFSDZrmkz = 21321,
-  VSCALEFSDZrr = 21322,
-  VSCALEFSDZrrb_Int = 21323,
-  VSCALEFSDZrrbk_Int = 21324,
-  VSCALEFSDZrrbkz_Int = 21325,
-  VSCALEFSDZrrk = 21326,
-  VSCALEFSDZrrkz = 21327,
-  VSCALEFSHZrm = 21328,
-  VSCALEFSHZrmk = 21329,
-  VSCALEFSHZrmkz = 21330,
-  VSCALEFSHZrr = 21331,
-  VSCALEFSHZrrb_Int = 21332,
-  VSCALEFSHZrrbk_Int = 21333,
-  VSCALEFSHZrrbkz_Int = 21334,
-  VSCALEFSHZrrk = 21335,
-  VSCALEFSHZrrkz = 21336,
-  VSCALEFSSZrm = 21337,
-  VSCALEFSSZrmk = 21338,
-  VSCALEFSSZrmkz = 21339,
-  VSCALEFSSZrr = 21340,
-  VSCALEFSSZrrb_Int = 21341,
-  VSCALEFSSZrrbk_Int = 21342,
-  VSCALEFSSZrrbkz_Int = 21343,
-  VSCALEFSSZrrk = 21344,
-  VSCALEFSSZrrkz = 21345,
-  VSCATTERDPDZ128mr = 21346,
-  VSCATTERDPDZ256mr = 21347,
-  VSCATTERDPDZmr = 21348,
-  VSCATTERDPSZ128mr = 21349,
-  VSCATTERDPSZ256mr = 21350,
-  VSCATTERDPSZmr = 21351,
-  VSCATTERPF0DPDm = 21352,
-  VSCATTERPF0DPSm = 21353,
-  VSCATTERPF0QPDm = 21354,
-  VSCATTERPF0QPSm = 21355,
-  VSCATTERPF1DPDm = 21356,
-  VSCATTERPF1DPSm = 21357,
-  VSCATTERPF1QPDm = 21358,
-  VSCATTERPF1QPSm = 21359,
-  VSCATTERQPDZ128mr = 21360,
-  VSCATTERQPDZ256mr = 21361,
-  VSCATTERQPDZmr = 21362,
-  VSCATTERQPSZ128mr = 21363,
-  VSCATTERQPSZ256mr = 21364,
-  VSCATTERQPSZmr = 21365,
-  VSHA512MSG1rr = 21366,
-  VSHA512MSG2rr = 21367,
-  VSHA512RNDS2rr = 21368,
-  VSHUFF32X4Z256rmbi = 21369,
-  VSHUFF32X4Z256rmbik = 21370,
-  VSHUFF32X4Z256rmbikz = 21371,
-  VSHUFF32X4Z256rmi = 21372,
-  VSHUFF32X4Z256rmik = 21373,
-  VSHUFF32X4Z256rmikz = 21374,
-  VSHUFF32X4Z256rri = 21375,
-  VSHUFF32X4Z256rrik = 21376,
-  VSHUFF32X4Z256rrikz = 21377,
-  VSHUFF32X4Zrmbi = 21378,
-  VSHUFF32X4Zrmbik = 21379,
-  VSHUFF32X4Zrmbikz = 21380,
-  VSHUFF32X4Zrmi = 21381,
-  VSHUFF32X4Zrmik = 21382,
-  VSHUFF32X4Zrmikz = 21383,
-  VSHUFF32X4Zrri = 21384,
-  VSHUFF32X4Zrrik = 21385,
-  VSHUFF32X4Zrrikz = 21386,
-  VSHUFF64X2Z256rmbi = 21387,
-  VSHUFF64X2Z256rmbik = 21388,
-  VSHUFF64X2Z256rmbikz = 21389,
-  VSHUFF64X2Z256rmi = 21390,
-  VSHUFF64X2Z256rmik = 21391,
-  VSHUFF64X2Z256rmikz = 21392,
-  VSHUFF64X2Z256rri = 21393,
-  VSHUFF64X2Z256rrik = 21394,
-  VSHUFF64X2Z256rrikz = 21395,
-  VSHUFF64X2Zrmbi = 21396,
-  VSHUFF64X2Zrmbik = 21397,
-  VSHUFF64X2Zrmbikz = 21398,
-  VSHUFF64X2Zrmi = 21399,
-  VSHUFF64X2Zrmik = 21400,
-  VSHUFF64X2Zrmikz = 21401,
-  VSHUFF64X2Zrri = 21402,
-  VSHUFF64X2Zrrik = 21403,
-  VSHUFF64X2Zrrikz = 21404,
-  VSHUFI32X4Z256rmbi = 21405,
-  VSHUFI32X4Z256rmbik = 21406,
-  VSHUFI32X4Z256rmbikz = 21407,
-  VSHUFI32X4Z256rmi = 21408,
-  VSHUFI32X4Z256rmik = 21409,
-  VSHUFI32X4Z256rmikz = 21410,
-  VSHUFI32X4Z256rri = 21411,
-  VSHUFI32X4Z256rrik = 21412,
-  VSHUFI32X4Z256rrikz = 21413,
-  VSHUFI32X4Zrmbi = 21414,
-  VSHUFI32X4Zrmbik = 21415,
-  VSHUFI32X4Zrmbikz = 21416,
-  VSHUFI32X4Zrmi = 21417,
-  VSHUFI32X4Zrmik = 21418,
-  VSHUFI32X4Zrmikz = 21419,
-  VSHUFI32X4Zrri = 21420,
-  VSHUFI32X4Zrrik = 21421,
-  VSHUFI32X4Zrrikz = 21422,
-  VSHUFI64X2Z256rmbi = 21423,
-  VSHUFI64X2Z256rmbik = 21424,
-  VSHUFI64X2Z256rmbikz = 21425,
-  VSHUFI64X2Z256rmi = 21426,
-  VSHUFI64X2Z256rmik = 21427,
-  VSHUFI64X2Z256rmikz = 21428,
-  VSHUFI64X2Z256rri = 21429,
-  VSHUFI64X2Z256rrik = 21430,
-  VSHUFI64X2Z256rrikz = 21431,
-  VSHUFI64X2Zrmbi = 21432,
-  VSHUFI64X2Zrmbik = 21433,
-  VSHUFI64X2Zrmbikz = 21434,
-  VSHUFI64X2Zrmi = 21435,
-  VSHUFI64X2Zrmik = 21436,
-  VSHUFI64X2Zrmikz = 21437,
-  VSHUFI64X2Zrri = 21438,
-  VSHUFI64X2Zrrik = 21439,
-  VSHUFI64X2Zrrikz = 21440,
-  VSHUFPDYrmi = 21441,
-  VSHUFPDYrri = 21442,
-  VSHUFPDZ128rmbi = 21443,
-  VSHUFPDZ128rmbik = 21444,
-  VSHUFPDZ128rmbikz = 21445,
-  VSHUFPDZ128rmi = 21446,
-  VSHUFPDZ128rmik = 21447,
-  VSHUFPDZ128rmikz = 21448,
-  VSHUFPDZ128rri = 21449,
-  VSHUFPDZ128rrik = 21450,
-  VSHUFPDZ128rrikz = 21451,
-  VSHUFPDZ256rmbi = 21452,
-  VSHUFPDZ256rmbik = 21453,
-  VSHUFPDZ256rmbikz = 21454,
-  VSHUFPDZ256rmi = 21455,
-  VSHUFPDZ256rmik = 21456,
-  VSHUFPDZ256rmikz = 21457,
-  VSHUFPDZ256rri = 21458,
-  VSHUFPDZ256rrik = 21459,
-  VSHUFPDZ256rrikz = 21460,
-  VSHUFPDZrmbi = 21461,
-  VSHUFPDZrmbik = 21462,
-  VSHUFPDZrmbikz = 21463,
-  VSHUFPDZrmi = 21464,
-  VSHUFPDZrmik = 21465,
-  VSHUFPDZrmikz = 21466,
-  VSHUFPDZrri = 21467,
-  VSHUFPDZrrik = 21468,
-  VSHUFPDZrrikz = 21469,
-  VSHUFPDrmi = 21470,
-  VSHUFPDrri = 21471,
-  VSHUFPSYrmi = 21472,
-  VSHUFPSYrri = 21473,
-  VSHUFPSZ128rmbi = 21474,
-  VSHUFPSZ128rmbik = 21475,
-  VSHUFPSZ128rmbikz = 21476,
-  VSHUFPSZ128rmi = 21477,
-  VSHUFPSZ128rmik = 21478,
-  VSHUFPSZ128rmikz = 21479,
-  VSHUFPSZ128rri = 21480,
-  VSHUFPSZ128rrik = 21481,
-  VSHUFPSZ128rrikz = 21482,
-  VSHUFPSZ256rmbi = 21483,
-  VSHUFPSZ256rmbik = 21484,
-  VSHUFPSZ256rmbikz = 21485,
-  VSHUFPSZ256rmi = 21486,
-  VSHUFPSZ256rmik = 21487,
-  VSHUFPSZ256rmikz = 21488,
-  VSHUFPSZ256rri = 21489,
-  VSHUFPSZ256rrik = 21490,
-  VSHUFPSZ256rrikz = 21491,
-  VSHUFPSZrmbi = 21492,
-  VSHUFPSZrmbik = 21493,
-  VSHUFPSZrmbikz = 21494,
-  VSHUFPSZrmi = 21495,
-  VSHUFPSZrmik = 21496,
-  VSHUFPSZrmikz = 21497,
-  VSHUFPSZrri = 21498,
-  VSHUFPSZrrik = 21499,
-  VSHUFPSZrrikz = 21500,
-  VSHUFPSrmi = 21501,
-  VSHUFPSrri = 21502,
-  VSM3MSG1rm = 21503,
-  VSM3MSG1rr = 21504,
-  VSM3MSG2rm = 21505,
-  VSM3MSG2rr = 21506,
-  VSM3RNDS2rmi = 21507,
-  VSM3RNDS2rri = 21508,
-  VSM4KEY4Yrm = 21509,
-  VSM4KEY4Yrr = 21510,
-  VSM4KEY4Z128rm = 21511,
-  VSM4KEY4Z128rr = 21512,
-  VSM4KEY4Z256rm = 21513,
-  VSM4KEY4Z256rr = 21514,
-  VSM4KEY4Zrm = 21515,
-  VSM4KEY4Zrr = 21516,
-  VSM4KEY4rm = 21517,
-  VSM4KEY4rr = 21518,
-  VSM4RNDS4Yrm = 21519,
-  VSM4RNDS4Yrr = 21520,
-  VSM4RNDS4Z128rm = 21521,
-  VSM4RNDS4Z128rr = 21522,
-  VSM4RNDS4Z256rm = 21523,
-  VSM4RNDS4Z256rr = 21524,
-  VSM4RNDS4Zrm = 21525,
-  VSM4RNDS4Zrr = 21526,
-  VSM4RNDS4rm = 21527,
-  VSM4RNDS4rr = 21528,
-  VSQRTBF16Z128m = 21529,
-  VSQRTBF16Z128mb = 21530,
-  VSQRTBF16Z128mbk = 21531,
-  VSQRTBF16Z128mbkz = 21532,
-  VSQRTBF16Z128mk = 21533,
-  VSQRTBF16Z128mkz = 21534,
-  VSQRTBF16Z128r = 21535,
-  VSQRTBF16Z128rk = 21536,
-  VSQRTBF16Z128rkz = 21537,
-  VSQRTBF16Z256m = 21538,
-  VSQRTBF16Z256mb = 21539,
-  VSQRTBF16Z256mbk = 21540,
-  VSQRTBF16Z256mbkz = 21541,
-  VSQRTBF16Z256mk = 21542,
-  VSQRTBF16Z256mkz = 21543,
-  VSQRTBF16Z256r = 21544,
-  VSQRTBF16Z256rk = 21545,
-  VSQRTBF16Z256rkz = 21546,
-  VSQRTBF16Zm = 21547,
-  VSQRTBF16Zmb = 21548,
-  VSQRTBF16Zmbk = 21549,
-  VSQRTBF16Zmbkz = 21550,
-  VSQRTBF16Zmk = 21551,
-  VSQRTBF16Zmkz = 21552,
-  VSQRTBF16Zr = 21553,
-  VSQRTBF16Zrk = 21554,
-  VSQRTBF16Zrkz = 21555,
-  VSQRTPDYm = 21556,
-  VSQRTPDYr = 21557,
-  VSQRTPDZ128m = 21558,
-  VSQRTPDZ128mb = 21559,
-  VSQRTPDZ128mbk = 21560,
-  VSQRTPDZ128mbkz = 21561,
-  VSQRTPDZ128mk = 21562,
-  VSQRTPDZ128mkz = 21563,
-  VSQRTPDZ128r = 21564,
-  VSQRTPDZ128rk = 21565,
-  VSQRTPDZ128rkz = 21566,
-  VSQRTPDZ256m = 21567,
-  VSQRTPDZ256mb = 21568,
-  VSQRTPDZ256mbk = 21569,
-  VSQRTPDZ256mbkz = 21570,
-  VSQRTPDZ256mk = 21571,
-  VSQRTPDZ256mkz = 21572,
-  VSQRTPDZ256r = 21573,
-  VSQRTPDZ256rk = 21574,
-  VSQRTPDZ256rkz = 21575,
-  VSQRTPDZm = 21576,
-  VSQRTPDZmb = 21577,
-  VSQRTPDZmbk = 21578,
-  VSQRTPDZmbkz = 21579,
-  VSQRTPDZmk = 21580,
-  VSQRTPDZmkz = 21581,
-  VSQRTPDZr = 21582,
-  VSQRTPDZrb = 21583,
-  VSQRTPDZrbk = 21584,
-  VSQRTPDZrbkz = 21585,
-  VSQRTPDZrk = 21586,
-  VSQRTPDZrkz = 21587,
-  VSQRTPDm = 21588,
-  VSQRTPDr = 21589,
-  VSQRTPHZ128m = 21590,
-  VSQRTPHZ128mb = 21591,
-  VSQRTPHZ128mbk = 21592,
-  VSQRTPHZ128mbkz = 21593,
-  VSQRTPHZ128mk = 21594,
-  VSQRTPHZ128mkz = 21595,
-  VSQRTPHZ128r = 21596,
-  VSQRTPHZ128rk = 21597,
-  VSQRTPHZ128rkz = 21598,
-  VSQRTPHZ256m = 21599,
-  VSQRTPHZ256mb = 21600,
-  VSQRTPHZ256mbk = 21601,
-  VSQRTPHZ256mbkz = 21602,
-  VSQRTPHZ256mk = 21603,
-  VSQRTPHZ256mkz = 21604,
-  VSQRTPHZ256r = 21605,
-  VSQRTPHZ256rk = 21606,
-  VSQRTPHZ256rkz = 21607,
-  VSQRTPHZm = 21608,
-  VSQRTPHZmb = 21609,
-  VSQRTPHZmbk = 21610,
-  VSQRTPHZmbkz = 21611,
-  VSQRTPHZmk = 21612,
-  VSQRTPHZmkz = 21613,
-  VSQRTPHZr = 21614,
-  VSQRTPHZrb = 21615,
-  VSQRTPHZrbk = 21616,
-  VSQRTPHZrbkz = 21617,
-  VSQRTPHZrk = 21618,
-  VSQRTPHZrkz = 21619,
-  VSQRTPSYm = 21620,
-  VSQRTPSYr = 21621,
-  VSQRTPSZ128m = 21622,
-  VSQRTPSZ128mb = 21623,
-  VSQRTPSZ128mbk = 21624,
-  VSQRTPSZ128mbkz = 21625,
-  VSQRTPSZ128mk = 21626,
-  VSQRTPSZ128mkz = 21627,
-  VSQRTPSZ128r = 21628,
-  VSQRTPSZ128rk = 21629,
-  VSQRTPSZ128rkz = 21630,
-  VSQRTPSZ256m = 21631,
-  VSQRTPSZ256mb = 21632,
-  VSQRTPSZ256mbk = 21633,
-  VSQRTPSZ256mbkz = 21634,
-  VSQRTPSZ256mk = 21635,
-  VSQRTPSZ256mkz = 21636,
-  VSQRTPSZ256r = 21637,
-  VSQRTPSZ256rk = 21638,
-  VSQRTPSZ256rkz = 21639,
-  VSQRTPSZm = 21640,
-  VSQRTPSZmb = 21641,
-  VSQRTPSZmbk = 21642,
-  VSQRTPSZmbkz = 21643,
-  VSQRTPSZmk = 21644,
-  VSQRTPSZmkz = 21645,
-  VSQRTPSZr = 21646,
-  VSQRTPSZrb = 21647,
-  VSQRTPSZrbk = 21648,
-  VSQRTPSZrbkz = 21649,
-  VSQRTPSZrk = 21650,
-  VSQRTPSZrkz = 21651,
-  VSQRTPSm = 21652,
-  VSQRTPSr = 21653,
-  VSQRTSDZm = 21654,
-  VSQRTSDZm_Int = 21655,
-  VSQRTSDZmk_Int = 21656,
-  VSQRTSDZmkz_Int = 21657,
-  VSQRTSDZr = 21658,
-  VSQRTSDZr_Int = 21659,
-  VSQRTSDZrb_Int = 21660,
-  VSQRTSDZrbk_Int = 21661,
-  VSQRTSDZrbkz_Int = 21662,
-  VSQRTSDZrk_Int = 21663,
-  VSQRTSDZrkz_Int = 21664,
-  VSQRTSDm = 21665,
-  VSQRTSDm_Int = 21666,
-  VSQRTSDr = 21667,
-  VSQRTSDr_Int = 21668,
-  VSQRTSHZm = 21669,
-  VSQRTSHZm_Int = 21670,
-  VSQRTSHZmk_Int = 21671,
-  VSQRTSHZmkz_Int = 21672,
-  VSQRTSHZr = 21673,
-  VSQRTSHZr_Int = 21674,
-  VSQRTSHZrb_Int = 21675,
-  VSQRTSHZrbk_Int = 21676,
-  VSQRTSHZrbkz_Int = 21677,
-  VSQRTSHZrk_Int = 21678,
-  VSQRTSHZrkz_Int = 21679,
-  VSQRTSSZm = 21680,
-  VSQRTSSZm_Int = 21681,
-  VSQRTSSZmk_Int = 21682,
-  VSQRTSSZmkz_Int = 21683,
-  VSQRTSSZr = 21684,
-  VSQRTSSZr_Int = 21685,
-  VSQRTSSZrb_Int = 21686,
-  VSQRTSSZrbk_Int = 21687,
-  VSQRTSSZrbkz_Int = 21688,
-  VSQRTSSZrk_Int = 21689,
-  VSQRTSSZrkz_Int = 21690,
-  VSQRTSSm = 21691,
-  VSQRTSSm_Int = 21692,
-  VSQRTSSr = 21693,
-  VSQRTSSr_Int = 21694,
-  VSTMXCSR = 21695,
-  VSUBBF16Z128rm = 21696,
-  VSUBBF16Z128rmb = 21697,
-  VSUBBF16Z128rmbk = 21698,
-  VSUBBF16Z128rmbkz = 21699,
-  VSUBBF16Z128rmk = 21700,
-  VSUBBF16Z128rmkz = 21701,
-  VSUBBF16Z128rr = 21702,
-  VSUBBF16Z128rrk = 21703,
-  VSUBBF16Z128rrkz = 21704,
-  VSUBBF16Z256rm = 21705,
-  VSUBBF16Z256rmb = 21706,
-  VSUBBF16Z256rmbk = 21707,
-  VSUBBF16Z256rmbkz = 21708,
-  VSUBBF16Z256rmk = 21709,
-  VSUBBF16Z256rmkz = 21710,
-  VSUBBF16Z256rr = 21711,
-  VSUBBF16Z256rrk = 21712,
-  VSUBBF16Z256rrkz = 21713,
-  VSUBBF16Zrm = 21714,
-  VSUBBF16Zrmb = 21715,
-  VSUBBF16Zrmbk = 21716,
-  VSUBBF16Zrmbkz = 21717,
-  VSUBBF16Zrmk = 21718,
-  VSUBBF16Zrmkz = 21719,
-  VSUBBF16Zrr = 21720,
-  VSUBBF16Zrrk = 21721,
-  VSUBBF16Zrrkz = 21722,
-  VSUBPDYrm = 21723,
-  VSUBPDYrr = 21724,
-  VSUBPDZ128rm = 21725,
-  VSUBPDZ128rmb = 21726,
-  VSUBPDZ128rmbk = 21727,
-  VSUBPDZ128rmbkz = 21728,
-  VSUBPDZ128rmk = 21729,
-  VSUBPDZ128rmkz = 21730,
-  VSUBPDZ128rr = 21731,
-  VSUBPDZ128rrk = 21732,
-  VSUBPDZ128rrkz = 21733,
-  VSUBPDZ256rm = 21734,
-  VSUBPDZ256rmb = 21735,
-  VSUBPDZ256rmbk = 21736,
-  VSUBPDZ256rmbkz = 21737,
-  VSUBPDZ256rmk = 21738,
-  VSUBPDZ256rmkz = 21739,
-  VSUBPDZ256rr = 21740,
-  VSUBPDZ256rrk = 21741,
-  VSUBPDZ256rrkz = 21742,
-  VSUBPDZrm = 21743,
-  VSUBPDZrmb = 21744,
-  VSUBPDZrmbk = 21745,
-  VSUBPDZrmbkz = 21746,
-  VSUBPDZrmk = 21747,
-  VSUBPDZrmkz = 21748,
-  VSUBPDZrr = 21749,
-  VSUBPDZrrb = 21750,
-  VSUBPDZrrbk = 21751,
-  VSUBPDZrrbkz = 21752,
-  VSUBPDZrrk = 21753,
-  VSUBPDZrrkz = 21754,
-  VSUBPDrm = 21755,
-  VSUBPDrr = 21756,
-  VSUBPHZ128rm = 21757,
-  VSUBPHZ128rmb = 21758,
-  VSUBPHZ128rmbk = 21759,
-  VSUBPHZ128rmbkz = 21760,
-  VSUBPHZ128rmk = 21761,
-  VSUBPHZ128rmkz = 21762,
-  VSUBPHZ128rr = 21763,
-  VSUBPHZ128rrk = 21764,
-  VSUBPHZ128rrkz = 21765,
-  VSUBPHZ256rm = 21766,
-  VSUBPHZ256rmb = 21767,
-  VSUBPHZ256rmbk = 21768,
-  VSUBPHZ256rmbkz = 21769,
-  VSUBPHZ256rmk = 21770,
-  VSUBPHZ256rmkz = 21771,
-  VSUBPHZ256rr = 21772,
-  VSUBPHZ256rrk = 21773,
-  VSUBPHZ256rrkz = 21774,
-  VSUBPHZrm = 21775,
-  VSUBPHZrmb = 21776,
-  VSUBPHZrmbk = 21777,
-  VSUBPHZrmbkz = 21778,
-  VSUBPHZrmk = 21779,
-  VSUBPHZrmkz = 21780,
-  VSUBPHZrr = 21781,
-  VSUBPHZrrb = 21782,
-  VSUBPHZrrbk = 21783,
-  VSUBPHZrrbkz = 21784,
-  VSUBPHZrrk = 21785,
-  VSUBPHZrrkz = 21786,
-  VSUBPSYrm = 21787,
-  VSUBPSYrr = 21788,
-  VSUBPSZ128rm = 21789,
-  VSUBPSZ128rmb = 21790,
-  VSUBPSZ128rmbk = 21791,
-  VSUBPSZ128rmbkz = 21792,
-  VSUBPSZ128rmk = 21793,
-  VSUBPSZ128rmkz = 21794,
-  VSUBPSZ128rr = 21795,
-  VSUBPSZ128rrk = 21796,
-  VSUBPSZ128rrkz = 21797,
-  VSUBPSZ256rm = 21798,
-  VSUBPSZ256rmb = 21799,
-  VSUBPSZ256rmbk = 21800,
-  VSUBPSZ256rmbkz = 21801,
-  VSUBPSZ256rmk = 21802,
-  VSUBPSZ256rmkz = 21803,
-  VSUBPSZ256rr = 21804,
-  VSUBPSZ256rrk = 21805,
-  VSUBPSZ256rrkz = 21806,
-  VSUBPSZrm = 21807,
-  VSUBPSZrmb = 21808,
-  VSUBPSZrmbk = 21809,
-  VSUBPSZrmbkz = 21810,
-  VSUBPSZrmk = 21811,
-  VSUBPSZrmkz = 21812,
-  VSUBPSZrr = 21813,
-  VSUBPSZrrb = 21814,
-  VSUBPSZrrbk = 21815,
-  VSUBPSZrrbkz = 21816,
-  VSUBPSZrrk = 21817,
-  VSUBPSZrrkz = 21818,
-  VSUBPSrm = 21819,
-  VSUBPSrr = 21820,
-  VSUBSDZrm = 21821,
-  VSUBSDZrm_Int = 21822,
-  VSUBSDZrmk_Int = 21823,
-  VSUBSDZrmkz_Int = 21824,
-  VSUBSDZrr = 21825,
-  VSUBSDZrr_Int = 21826,
-  VSUBSDZrrb_Int = 21827,
-  VSUBSDZrrbk_Int = 21828,
-  VSUBSDZrrbkz_Int = 21829,
-  VSUBSDZrrk_Int = 21830,
-  VSUBSDZrrkz_Int = 21831,
-  VSUBSDrm = 21832,
-  VSUBSDrm_Int = 21833,
-  VSUBSDrr = 21834,
-  VSUBSDrr_Int = 21835,
-  VSUBSHZrm = 21836,
-  VSUBSHZrm_Int = 21837,
-  VSUBSHZrmk_Int = 21838,
-  VSUBSHZrmkz_Int = 21839,
-  VSUBSHZrr = 21840,
-  VSUBSHZrr_Int = 21841,
-  VSUBSHZrrb_Int = 21842,
-  VSUBSHZrrbk_Int = 21843,
-  VSUBSHZrrbkz_Int = 21844,
-  VSUBSHZrrk_Int = 21845,
-  VSUBSHZrrkz_Int = 21846,
-  VSUBSSZrm = 21847,
-  VSUBSSZrm_Int = 21848,
-  VSUBSSZrmk_Int = 21849,
-  VSUBSSZrmkz_Int = 21850,
-  VSUBSSZrr = 21851,
-  VSUBSSZrr_Int = 21852,
-  VSUBSSZrrb_Int = 21853,
-  VSUBSSZrrbk_Int = 21854,
-  VSUBSSZrrbkz_Int = 21855,
-  VSUBSSZrrk_Int = 21856,
-  VSUBSSZrrkz_Int = 21857,
-  VSUBSSrm = 21858,
-  VSUBSSrm_Int = 21859,
-  VSUBSSrr = 21860,
-  VSUBSSrr_Int = 21861,
-  VTESTPDYrm = 21862,
-  VTESTPDYrr = 21863,
-  VTESTPDrm = 21864,
-  VTESTPDrr = 21865,
-  VTESTPSYrm = 21866,
-  VTESTPSYrr = 21867,
-  VTESTPSrm = 21868,
-  VTESTPSrr = 21869,
-  VUCOMISDZrm = 21870,
-  VUCOMISDZrm_Int = 21871,
-  VUCOMISDZrr = 21872,
-  VUCOMISDZrr_Int = 21873,
-  VUCOMISDZrrb = 21874,
-  VUCOMISDrm = 21875,
-  VUCOMISDrm_Int = 21876,
-  VUCOMISDrr = 21877,
-  VUCOMISDrr_Int = 21878,
-  VUCOMISHZrm = 21879,
-  VUCOMISHZrm_Int = 21880,
-  VUCOMISHZrr = 21881,
-  VUCOMISHZrr_Int = 21882,
-  VUCOMISHZrrb = 21883,
-  VUCOMISSZrm = 21884,
-  VUCOMISSZrm_Int = 21885,
-  VUCOMISSZrr = 21886,
-  VUCOMISSZrr_Int = 21887,
-  VUCOMISSZrrb = 21888,
-  VUCOMISSrm = 21889,
-  VUCOMISSrm_Int = 21890,
-  VUCOMISSrr = 21891,
-  VUCOMISSrr_Int = 21892,
-  VUCOMXSDZrm = 21893,
-  VUCOMXSDZrm_Int = 21894,
-  VUCOMXSDZrr = 21895,
-  VUCOMXSDZrr_Int = 21896,
-  VUCOMXSDZrrb_Int = 21897,
-  VUCOMXSHZrm = 21898,
-  VUCOMXSHZrm_Int = 21899,
-  VUCOMXSHZrr = 21900,
-  VUCOMXSHZrr_Int = 21901,
-  VUCOMXSHZrrb_Int = 21902,
-  VUCOMXSSZrm = 21903,
-  VUCOMXSSZrm_Int = 21904,
-  VUCOMXSSZrr = 21905,
-  VUCOMXSSZrr_Int = 21906,
-  VUCOMXSSZrrb_Int = 21907,
-  VUNPCKHPDYrm = 21908,
-  VUNPCKHPDYrr = 21909,
-  VUNPCKHPDZ128rm = 21910,
-  VUNPCKHPDZ128rmb = 21911,
-  VUNPCKHPDZ128rmbk = 21912,
-  VUNPCKHPDZ128rmbkz = 21913,
-  VUNPCKHPDZ128rmk = 21914,
-  VUNPCKHPDZ128rmkz = 21915,
-  VUNPCKHPDZ128rr = 21916,
-  VUNPCKHPDZ128rrk = 21917,
-  VUNPCKHPDZ128rrkz = 21918,
-  VUNPCKHPDZ256rm = 21919,
-  VUNPCKHPDZ256rmb = 21920,
-  VUNPCKHPDZ256rmbk = 21921,
-  VUNPCKHPDZ256rmbkz = 21922,
-  VUNPCKHPDZ256rmk = 21923,
-  VUNPCKHPDZ256rmkz = 21924,
-  VUNPCKHPDZ256rr = 21925,
-  VUNPCKHPDZ256rrk = 21926,
-  VUNPCKHPDZ256rrkz = 21927,
-  VUNPCKHPDZrm = 21928,
-  VUNPCKHPDZrmb = 21929,
-  VUNPCKHPDZrmbk = 21930,
-  VUNPCKHPDZrmbkz = 21931,
-  VUNPCKHPDZrmk = 21932,
-  VUNPCKHPDZrmkz = 21933,
-  VUNPCKHPDZrr = 21934,
-  VUNPCKHPDZrrk = 21935,
-  VUNPCKHPDZrrkz = 21936,
-  VUNPCKHPDrm = 21937,
-  VUNPCKHPDrr = 21938,
-  VUNPCKHPSYrm = 21939,
-  VUNPCKHPSYrr = 21940,
-  VUNPCKHPSZ128rm = 21941,
-  VUNPCKHPSZ128rmb = 21942,
-  VUNPCKHPSZ128rmbk = 21943,
-  VUNPCKHPSZ128rmbkz = 21944,
-  VUNPCKHPSZ128rmk = 21945,
-  VUNPCKHPSZ128rmkz = 21946,
-  VUNPCKHPSZ128rr = 21947,
-  VUNPCKHPSZ128rrk = 21948,
-  VUNPCKHPSZ128rrkz = 21949,
-  VUNPCKHPSZ256rm = 21950,
-  VUNPCKHPSZ256rmb = 21951,
-  VUNPCKHPSZ256rmbk = 21952,
-  VUNPCKHPSZ256rmbkz = 21953,
-  VUNPCKHPSZ256rmk = 21954,
-  VUNPCKHPSZ256rmkz = 21955,
-  VUNPCKHPSZ256rr = 21956,
-  VUNPCKHPSZ256rrk = 21957,
-  VUNPCKHPSZ256rrkz = 21958,
-  VUNPCKHPSZrm = 21959,
-  VUNPCKHPSZrmb = 21960,
-  VUNPCKHPSZrmbk = 21961,
-  VUNPCKHPSZrmbkz = 21962,
-  VUNPCKHPSZrmk = 21963,
-  VUNPCKHPSZrmkz = 21964,
-  VUNPCKHPSZrr = 21965,
-  VUNPCKHPSZrrk = 21966,
-  VUNPCKHPSZrrkz = 21967,
-  VUNPCKHPSrm = 21968,
-  VUNPCKHPSrr = 21969,
-  VUNPCKLPDYrm = 21970,
-  VUNPCKLPDYrr = 21971,
-  VUNPCKLPDZ128rm = 21972,
-  VUNPCKLPDZ128rmb = 21973,
-  VUNPCKLPDZ128rmbk = 21974,
-  VUNPCKLPDZ128rmbkz = 21975,
-  VUNPCKLPDZ128rmk = 21976,
-  VUNPCKLPDZ128rmkz = 21977,
-  VUNPCKLPDZ128rr = 21978,
-  VUNPCKLPDZ128rrk = 21979,
-  VUNPCKLPDZ128rrkz = 21980,
-  VUNPCKLPDZ256rm = 21981,
-  VUNPCKLPDZ256rmb = 21982,
-  VUNPCKLPDZ256rmbk = 21983,
-  VUNPCKLPDZ256rmbkz = 21984,
-  VUNPCKLPDZ256rmk = 21985,
-  VUNPCKLPDZ256rmkz = 21986,
-  VUNPCKLPDZ256rr = 21987,
-  VUNPCKLPDZ256rrk = 21988,
-  VUNPCKLPDZ256rrkz = 21989,
-  VUNPCKLPDZrm = 21990,
-  VUNPCKLPDZrmb = 21991,
-  VUNPCKLPDZrmbk = 21992,
-  VUNPCKLPDZrmbkz = 21993,
-  VUNPCKLPDZrmk = 21994,
-  VUNPCKLPDZrmkz = 21995,
-  VUNPCKLPDZrr = 21996,
-  VUNPCKLPDZrrk = 21997,
-  VUNPCKLPDZrrkz = 21998,
-  VUNPCKLPDrm = 21999,
-  VUNPCKLPDrr = 22000,
-  VUNPCKLPSYrm = 22001,
-  VUNPCKLPSYrr = 22002,
-  VUNPCKLPSZ128rm = 22003,
-  VUNPCKLPSZ128rmb = 22004,
-  VUNPCKLPSZ128rmbk = 22005,
-  VUNPCKLPSZ128rmbkz = 22006,
-  VUNPCKLPSZ128rmk = 22007,
-  VUNPCKLPSZ128rmkz = 22008,
-  VUNPCKLPSZ128rr = 22009,
-  VUNPCKLPSZ128rrk = 22010,
-  VUNPCKLPSZ128rrkz = 22011,
-  VUNPCKLPSZ256rm = 22012,
-  VUNPCKLPSZ256rmb = 22013,
-  VUNPCKLPSZ256rmbk = 22014,
-  VUNPCKLPSZ256rmbkz = 22015,
-  VUNPCKLPSZ256rmk = 22016,
-  VUNPCKLPSZ256rmkz = 22017,
-  VUNPCKLPSZ256rr = 22018,
-  VUNPCKLPSZ256rrk = 22019,
-  VUNPCKLPSZ256rrkz = 22020,
-  VUNPCKLPSZrm = 22021,
-  VUNPCKLPSZrmb = 22022,
-  VUNPCKLPSZrmbk = 22023,
-  VUNPCKLPSZrmbkz = 22024,
-  VUNPCKLPSZrmk = 22025,
-  VUNPCKLPSZrmkz = 22026,
-  VUNPCKLPSZrr = 22027,
-  VUNPCKLPSZrrk = 22028,
-  VUNPCKLPSZrrkz = 22029,
-  VUNPCKLPSrm = 22030,
-  VUNPCKLPSrr = 22031,
-  VXORPDYrm = 22032,
-  VXORPDYrr = 22033,
-  VXORPDZ128rm = 22034,
-  VXORPDZ128rmb = 22035,
-  VXORPDZ128rmbk = 22036,
-  VXORPDZ128rmbkz = 22037,
-  VXORPDZ128rmk = 22038,
-  VXORPDZ128rmkz = 22039,
-  VXORPDZ128rr = 22040,
-  VXORPDZ128rrk = 22041,
-  VXORPDZ128rrkz = 22042,
-  VXORPDZ256rm = 22043,
-  VXORPDZ256rmb = 22044,
-  VXORPDZ256rmbk = 22045,
-  VXORPDZ256rmbkz = 22046,
-  VXORPDZ256rmk = 22047,
-  VXORPDZ256rmkz = 22048,
-  VXORPDZ256rr = 22049,
-  VXORPDZ256rrk = 22050,
-  VXORPDZ256rrkz = 22051,
-  VXORPDZrm = 22052,
-  VXORPDZrmb = 22053,
-  VXORPDZrmbk = 22054,
-  VXORPDZrmbkz = 22055,
-  VXORPDZrmk = 22056,
-  VXORPDZrmkz = 22057,
-  VXORPDZrr = 22058,
-  VXORPDZrrk = 22059,
-  VXORPDZrrkz = 22060,
-  VXORPDrm = 22061,
-  VXORPDrr = 22062,
-  VXORPSYrm = 22063,
-  VXORPSYrr = 22064,
-  VXORPSZ128rm = 22065,
-  VXORPSZ128rmb = 22066,
-  VXORPSZ128rmbk = 22067,
-  VXORPSZ128rmbkz = 22068,
-  VXORPSZ128rmk = 22069,
-  VXORPSZ128rmkz = 22070,
-  VXORPSZ128rr = 22071,
-  VXORPSZ128rrk = 22072,
-  VXORPSZ128rrkz = 22073,
-  VXORPSZ256rm = 22074,
-  VXORPSZ256rmb = 22075,
-  VXORPSZ256rmbk = 22076,
-  VXORPSZ256rmbkz = 22077,
-  VXORPSZ256rmk = 22078,
-  VXORPSZ256rmkz = 22079,
-  VXORPSZ256rr = 22080,
-  VXORPSZ256rrk = 22081,
-  VXORPSZ256rrkz = 22082,
-  VXORPSZrm = 22083,
-  VXORPSZrmb = 22084,
-  VXORPSZrmbk = 22085,
-  VXORPSZrmbkz = 22086,
-  VXORPSZrmk = 22087,
-  VXORPSZrmkz = 22088,
-  VXORPSZrr = 22089,
-  VXORPSZrrk = 22090,
-  VXORPSZrrkz = 22091,
-  VXORPSrm = 22092,
-  VXORPSrr = 22093,
-  VZEROALL = 22094,
-  VZEROUPPER = 22095,
-  WAIT = 22096,
-  WBINVD = 22097,
-  WBNOINVD = 22098,
-  WRFSBASE = 22099,
-  WRFSBASE64 = 22100,
-  WRGSBASE = 22101,
-  WRGSBASE64 = 22102,
-  WRMSR = 22103,
-  WRMSRLIST = 22104,
-  WRMSRNS = 22105,
-  WRMSRNSir = 22106,
-  WRMSRNSir_EVEX = 22107,
-  WRPKRUr = 22108,
-  WRSSD = 22109,
-  WRSSD_EVEX = 22110,
-  WRSSQ = 22111,
-  WRSSQ_EVEX = 22112,
-  WRUSSD = 22113,
-  WRUSSD_EVEX = 22114,
-  WRUSSQ = 22115,
-  WRUSSQ_EVEX = 22116,
-  XABORT = 22117,
-  XACQUIRE_PREFIX = 22118,
-  XADD16rm = 22119,
-  XADD16rr = 22120,
-  XADD32rm = 22121,
-  XADD32rr = 22122,
-  XADD64rm = 22123,
-  XADD64rr = 22124,
-  XADD8rm = 22125,
-  XADD8rr = 22126,
-  XAM_F = 22127,
-  XAM_Fp32 = 22128,
-  XAM_Fp64 = 22129,
-  XAM_Fp80 = 22130,
-  XBEGIN = 22131,
-  XBEGIN_2 = 22132,
-  XBEGIN_4 = 22133,
-  XCHG16ar = 22134,
-  XCHG16rm = 22135,
-  XCHG16rr = 22136,
-  XCHG32ar = 22137,
-  XCHG32rm = 22138,
-  XCHG32rr = 22139,
-  XCHG64ar = 22140,
-  XCHG64rm = 22141,
-  XCHG64rr = 22142,
-  XCHG8rm = 22143,
-  XCHG8rr = 22144,
-  XCH_F = 22145,
-  XCRYPTCBC = 22146,
-  XCRYPTCFB = 22147,
-  XCRYPTCTR = 22148,
-  XCRYPTECB = 22149,
-  XCRYPTOFB = 22150,
-  XEND = 22151,
-  XGETBV = 22152,
-  XLAT = 22153,
-  XOR16i16 = 22154,
-  XOR16mi = 22155,
-  XOR16mi8 = 22156,
-  XOR16mi8_EVEX = 22157,
-  XOR16mi8_ND = 22158,
-  XOR16mi8_NF = 22159,
-  XOR16mi8_NF_ND = 22160,
-  XOR16mi_EVEX = 22161,
-  XOR16mi_ND = 22162,
-  XOR16mi_NF = 22163,
-  XOR16mi_NF_ND = 22164,
-  XOR16mr = 22165,
-  XOR16mr_EVEX = 22166,
-  XOR16mr_ND = 22167,
-  XOR16mr_NF = 22168,
-  XOR16mr_NF_ND = 22169,
-  XOR16ri = 22170,
-  XOR16ri8 = 22171,
-  XOR16ri8_EVEX = 22172,
-  XOR16ri8_ND = 22173,
-  XOR16ri8_NF = 22174,
-  XOR16ri8_NF_ND = 22175,
-  XOR16ri_EVEX = 22176,
-  XOR16ri_ND = 22177,
-  XOR16ri_NF = 22178,
-  XOR16ri_NF_ND = 22179,
-  XOR16rm = 22180,
-  XOR16rm_EVEX = 22181,
-  XOR16rm_ND = 22182,
-  XOR16rm_NF = 22183,
-  XOR16rm_NF_ND = 22184,
-  XOR16rr = 22185,
-  XOR16rr_EVEX = 22186,
-  XOR16rr_EVEX_REV = 22187,
-  XOR16rr_ND = 22188,
-  XOR16rr_ND_REV = 22189,
-  XOR16rr_NF = 22190,
-  XOR16rr_NF_ND = 22191,
-  XOR16rr_NF_ND_REV = 22192,
-  XOR16rr_NF_REV = 22193,
-  XOR16rr_REV = 22194,
-  XOR32i32 = 22195,
-  XOR32mi = 22196,
-  XOR32mi8 = 22197,
-  XOR32mi8_EVEX = 22198,
-  XOR32mi8_ND = 22199,
-  XOR32mi8_NF = 22200,
-  XOR32mi8_NF_ND = 22201,
-  XOR32mi_EVEX = 22202,
-  XOR32mi_ND = 22203,
-  XOR32mi_NF = 22204,
-  XOR32mi_NF_ND = 22205,
-  XOR32mr = 22206,
-  XOR32mr_EVEX = 22207,
-  XOR32mr_ND = 22208,
-  XOR32mr_NF = 22209,
-  XOR32mr_NF_ND = 22210,
-  XOR32ri = 22211,
-  XOR32ri8 = 22212,
-  XOR32ri8_EVEX = 22213,
-  XOR32ri8_ND = 22214,
-  XOR32ri8_NF = 22215,
-  XOR32ri8_NF_ND = 22216,
-  XOR32ri_EVEX = 22217,
-  XOR32ri_ND = 22218,
-  XOR32ri_NF = 22219,
-  XOR32ri_NF_ND = 22220,
-  XOR32rm = 22221,
-  XOR32rm_EVEX = 22222,
-  XOR32rm_ND = 22223,
-  XOR32rm_NF = 22224,
-  XOR32rm_NF_ND = 22225,
-  XOR32rr = 22226,
-  XOR32rr_EVEX = 22227,
-  XOR32rr_EVEX_REV = 22228,
-  XOR32rr_ND = 22229,
-  XOR32rr_ND_REV = 22230,
-  XOR32rr_NF = 22231,
-  XOR32rr_NF_ND = 22232,
-  XOR32rr_NF_ND_REV = 22233,
-  XOR32rr_NF_REV = 22234,
-  XOR32rr_REV = 22235,
-  XOR64i32 = 22236,
-  XOR64mi32 = 22237,
-  XOR64mi32_EVEX = 22238,
-  XOR64mi32_ND = 22239,
-  XOR64mi32_NF = 22240,
-  XOR64mi32_NF_ND = 22241,
-  XOR64mi8 = 22242,
-  XOR64mi8_EVEX = 22243,
-  XOR64mi8_ND = 22244,
-  XOR64mi8_NF = 22245,
-  XOR64mi8_NF_ND = 22246,
-  XOR64mr = 22247,
-  XOR64mr_EVEX = 22248,
-  XOR64mr_ND = 22249,
-  XOR64mr_NF = 22250,
-  XOR64mr_NF_ND = 22251,
-  XOR64ri32 = 22252,
-  XOR64ri32_EVEX = 22253,
-  XOR64ri32_ND = 22254,
-  XOR64ri32_NF = 22255,
-  XOR64ri32_NF_ND = 22256,
-  XOR64ri8 = 22257,
-  XOR64ri8_EVEX = 22258,
-  XOR64ri8_ND = 22259,
-  XOR64ri8_NF = 22260,
-  XOR64ri8_NF_ND = 22261,
-  XOR64rm = 22262,
-  XOR64rm_EVEX = 22263,
-  XOR64rm_ND = 22264,
-  XOR64rm_NF = 22265,
-  XOR64rm_NF_ND = 22266,
-  XOR64rr = 22267,
-  XOR64rr_EVEX = 22268,
-  XOR64rr_EVEX_REV = 22269,
-  XOR64rr_ND = 22270,
-  XOR64rr_ND_REV = 22271,
-  XOR64rr_NF = 22272,
-  XOR64rr_NF_ND = 22273,
-  XOR64rr_NF_ND_REV = 22274,
-  XOR64rr_NF_REV = 22275,
-  XOR64rr_REV = 22276,
-  XOR8i8 = 22277,
-  XOR8mi = 22278,
-  XOR8mi8 = 22279,
-  XOR8mi_EVEX = 22280,
-  XOR8mi_ND = 22281,
-  XOR8mi_NF = 22282,
-  XOR8mi_NF_ND = 22283,
-  XOR8mr = 22284,
-  XOR8mr_EVEX = 22285,
-  XOR8mr_ND = 22286,
-  XOR8mr_NF = 22287,
-  XOR8mr_NF_ND = 22288,
-  XOR8ri = 22289,
-  XOR8ri8 = 22290,
-  XOR8ri_EVEX = 22291,
-  XOR8ri_ND = 22292,
-  XOR8ri_NF = 22293,
-  XOR8ri_NF_ND = 22294,
-  XOR8rm = 22295,
-  XOR8rm_EVEX = 22296,
-  XOR8rm_ND = 22297,
-  XOR8rm_NF = 22298,
-  XOR8rm_NF_ND = 22299,
-  XOR8rr = 22300,
-  XOR8rr_EVEX = 22301,
-  XOR8rr_EVEX_REV = 22302,
-  XOR8rr_ND = 22303,
-  XOR8rr_ND_REV = 22304,
-  XOR8rr_NF = 22305,
-  XOR8rr_NF_ND = 22306,
-  XOR8rr_NF_ND_REV = 22307,
-  XOR8rr_NF_REV = 22308,
-  XOR8rr_NOREX = 22309,
-  XOR8rr_REV = 22310,
-  XORPDrm = 22311,
-  XORPDrr = 22312,
-  XORPSrm = 22313,
-  XORPSrr = 22314,
-  XRELEASE_PREFIX = 22315,
-  XRESLDTRK = 22316,
-  XRSTOR = 22317,
-  XRSTOR64 = 22318,
-  XRSTORS = 22319,
-  XRSTORS64 = 22320,
-  XSAVE = 22321,
-  XSAVE64 = 22322,
-  XSAVEC = 22323,
-  XSAVEC64 = 22324,
-  XSAVEOPT = 22325,
-  XSAVEOPT64 = 22326,
-  XSAVES = 22327,
-  XSAVES64 = 22328,
-  XSETBV = 22329,
-  XSHA1 = 22330,
-  XSHA256 = 22331,
-  XSTORE = 22332,
-  XSUSLDTRK = 22333,
-  XTEST = 22334,
-  INSTRUCTION_LIST_END = 22335,
+  COPY_LANEMASK = 21,
+  BUNDLE = 22,
+  LIFETIME_START = 23,
+  LIFETIME_END = 24,
+  PSEUDO_PROBE = 25,
+  ARITH_FENCE = 26,
+  STACKMAP = 27,
+  FENTRY_CALL = 28,
+  PATCHPOINT = 29,
+  LOAD_STACK_GUARD = 30,
+  PREALLOCATED_SETUP = 31,
+  PREALLOCATED_ARG = 32,
+  STATEPOINT = 33,
+  LOCAL_ESCAPE = 34,
+  FAULTING_OP = 35,
+  PATCHABLE_OP = 36,
+  PATCHABLE_FUNCTION_ENTER = 37,
+  PATCHABLE_RET = 38,
+  PATCHABLE_FUNCTION_EXIT = 39,
+  PATCHABLE_TAIL_CALL = 40,
+  PATCHABLE_EVENT_CALL = 41,
+  PATCHABLE_TYPED_EVENT_CALL = 42,
+  ICALL_BRANCH_FUNNEL = 43,
+  FAKE_USE = 44,
+  MEMBARRIER = 45,
+  JUMP_TABLE_DEBUG_INFO = 46,
+  RELOC_NONE = 47,
+  CONVERGENCECTRL_ENTRY = 48,
+  CONVERGENCECTRL_ANCHOR = 49,
+  CONVERGENCECTRL_LOOP = 50,
+  CONVERGENCECTRL_GLUE = 51,
+  G_ASSERT_SEXT = 52,
+  G_ASSERT_ZEXT = 53,
+  G_ASSERT_ALIGN = 54,
+  G_ADD = 55,
+  G_SUB = 56,
+  G_MUL = 57,
+  G_SDIV = 58,
+  G_UDIV = 59,
+  G_SREM = 60,
+  G_UREM = 61,
+  G_SDIVREM = 62,
+  G_UDIVREM = 63,
+  G_AND = 64,
+  G_OR = 65,
+  G_XOR = 66,
+  G_ABDS = 67,
+  G_ABDU = 68,
+  G_UAVGFLOOR = 69,
+  G_UAVGCEIL = 70,
+  G_SAVGFLOOR = 71,
+  G_SAVGCEIL = 72,
+  G_IMPLICIT_DEF = 73,
+  G_PHI = 74,
+  G_FRAME_INDEX = 75,
+  G_GLOBAL_VALUE = 76,
+  G_PTRAUTH_GLOBAL_VALUE = 77,
+  G_CONSTANT_POOL = 78,
+  G_EXTRACT = 79,
+  G_UNMERGE_VALUES = 80,
+  G_INSERT = 81,
+  G_MERGE_VALUES = 82,
+  G_BUILD_VECTOR = 83,
+  G_BUILD_VECTOR_TRUNC = 84,
+  G_CONCAT_VECTORS = 85,
+  G_PTRTOINT = 86,
+  G_INTTOPTR = 87,
+  G_BITCAST = 88,
+  G_FREEZE = 89,
+  G_CONSTANT_FOLD_BARRIER = 90,
+  G_INTRINSIC_FPTRUNC_ROUND = 91,
+  G_INTRINSIC_TRUNC = 92,
+  G_INTRINSIC_ROUND = 93,
+  G_INTRINSIC_LRINT = 94,
+  G_INTRINSIC_LLRINT = 95,
+  G_INTRINSIC_ROUNDEVEN = 96,
+  G_READCYCLECOUNTER = 97,
+  G_READSTEADYCOUNTER = 98,
+  G_LOAD = 99,
+  G_SEXTLOAD = 100,
+  G_ZEXTLOAD = 101,
+  G_INDEXED_LOAD = 102,
+  G_INDEXED_SEXTLOAD = 103,
+  G_INDEXED_ZEXTLOAD = 104,
+  G_STORE = 105,
+  G_INDEXED_STORE = 106,
+  G_ATOMIC_CMPXCHG_WITH_SUCCESS = 107,
+  G_ATOMIC_CMPXCHG = 108,
+  G_ATOMICRMW_XCHG = 109,
+  G_ATOMICRMW_ADD = 110,
+  G_ATOMICRMW_SUB = 111,
+  G_ATOMICRMW_AND = 112,
+  G_ATOMICRMW_NAND = 113,
+  G_ATOMICRMW_OR = 114,
+  G_ATOMICRMW_XOR = 115,
+  G_ATOMICRMW_MAX = 116,
+  G_ATOMICRMW_MIN = 117,
+  G_ATOMICRMW_UMAX = 118,
+  G_ATOMICRMW_UMIN = 119,
+  G_ATOMICRMW_FADD = 120,
+  G_ATOMICRMW_FSUB = 121,
+  G_ATOMICRMW_FMAX = 122,
+  G_ATOMICRMW_FMIN = 123,
+  G_ATOMICRMW_FMAXIMUM = 124,
+  G_ATOMICRMW_FMINIMUM = 125,
+  G_ATOMICRMW_UINC_WRAP = 126,
+  G_ATOMICRMW_UDEC_WRAP = 127,
+  G_ATOMICRMW_USUB_COND = 128,
+  G_ATOMICRMW_USUB_SAT = 129,
+  G_FENCE = 130,
+  G_PREFETCH = 131,
+  G_BRCOND = 132,
+  G_BRINDIRECT = 133,
+  G_INVOKE_REGION_START = 134,
+  G_INTRINSIC = 135,
+  G_INTRINSIC_W_SIDE_EFFECTS = 136,
+  G_INTRINSIC_CONVERGENT = 137,
+  G_INTRINSIC_CONVERGENT_W_SIDE_EFFECTS = 138,
+  G_ANYEXT = 139,
+  G_TRUNC = 140,
+  G_TRUNC_SSAT_S = 141,
+  G_TRUNC_SSAT_U = 142,
+  G_TRUNC_USAT_U = 143,
+  G_CONSTANT = 144,
+  G_FCONSTANT = 145,
+  G_VASTART = 146,
+  G_VAARG = 147,
+  G_SEXT = 148,
+  G_SEXT_INREG = 149,
+  G_ZEXT = 150,
+  G_SHL = 151,
+  G_LSHR = 152,
+  G_ASHR = 153,
+  G_FSHL = 154,
+  G_FSHR = 155,
+  G_ROTR = 156,
+  G_ROTL = 157,
+  G_ICMP = 158,
+  G_FCMP = 159,
+  G_SCMP = 160,
+  G_UCMP = 161,
+  G_SELECT = 162,
+  G_UADDO = 163,
+  G_UADDE = 164,
+  G_USUBO = 165,
+  G_USUBE = 166,
+  G_SADDO = 167,
+  G_SADDE = 168,
+  G_SSUBO = 169,
+  G_SSUBE = 170,
+  G_UMULO = 171,
+  G_SMULO = 172,
+  G_UMULH = 173,
+  G_SMULH = 174,
+  G_UADDSAT = 175,
+  G_SADDSAT = 176,
+  G_USUBSAT = 177,
+  G_SSUBSAT = 178,
+  G_USHLSAT = 179,
+  G_SSHLSAT = 180,
+  G_SMULFIX = 181,
+  G_UMULFIX = 182,
+  G_SMULFIXSAT = 183,
+  G_UMULFIXSAT = 184,
+  G_SDIVFIX = 185,
+  G_UDIVFIX = 186,
+  G_SDIVFIXSAT = 187,
+  G_UDIVFIXSAT = 188,
+  G_FADD = 189,
+  G_FSUB = 190,
+  G_FMUL = 191,
+  G_FMA = 192,
+  G_FMAD = 193,
+  G_FDIV = 194,
+  G_FREM = 195,
+  G_FMODF = 196,
+  G_FPOW = 197,
+  G_FPOWI = 198,
+  G_FEXP = 199,
+  G_FEXP2 = 200,
+  G_FEXP10 = 201,
+  G_FLOG = 202,
+  G_FLOG2 = 203,
+  G_FLOG10 = 204,
+  G_FLDEXP = 205,
+  G_FFREXP = 206,
+  G_FNEG = 207,
+  G_FPEXT = 208,
+  G_FPTRUNC = 209,
+  G_FPTOSI = 210,
+  G_FPTOUI = 211,
+  G_SITOFP = 212,
+  G_UITOFP = 213,
+  G_FPTOSI_SAT = 214,
+  G_FPTOUI_SAT = 215,
+  G_FABS = 216,
+  G_FCOPYSIGN = 217,
+  G_IS_FPCLASS = 218,
+  G_FCANONICALIZE = 219,
+  G_FMINNUM = 220,
+  G_FMAXNUM = 221,
+  G_FMINNUM_IEEE = 222,
+  G_FMAXNUM_IEEE = 223,
+  G_FMINIMUM = 224,
+  G_FMAXIMUM = 225,
+  G_FMINIMUMNUM = 226,
+  G_FMAXIMUMNUM = 227,
+  G_GET_FPENV = 228,
+  G_SET_FPENV = 229,
+  G_RESET_FPENV = 230,
+  G_GET_FPMODE = 231,
+  G_SET_FPMODE = 232,
+  G_RESET_FPMODE = 233,
+  G_GET_ROUNDING = 234,
+  G_SET_ROUNDING = 235,
+  G_PTR_ADD = 236,
+  G_PTRMASK = 237,
+  G_SMIN = 238,
+  G_SMAX = 239,
+  G_UMIN = 240,
+  G_UMAX = 241,
+  G_ABS = 242,
+  G_LROUND = 243,
+  G_LLROUND = 244,
+  G_BR = 245,
+  G_BRJT = 246,
+  G_VSCALE = 247,
+  G_INSERT_SUBVECTOR = 248,
+  G_EXTRACT_SUBVECTOR = 249,
+  G_INSERT_VECTOR_ELT = 250,
+  G_EXTRACT_VECTOR_ELT = 251,
+  G_SHUFFLE_VECTOR = 252,
+  G_SPLAT_VECTOR = 253,
+  G_STEP_VECTOR = 254,
+  G_VECTOR_COMPRESS = 255,
+  G_CTTZ = 256,
+  G_CTTZ_ZERO_UNDEF = 257,
+  G_CTLZ = 258,
+  G_CTLZ_ZERO_UNDEF = 259,
+  G_CTPOP = 260,
+  G_BSWAP = 261,
+  G_BITREVERSE = 262,
+  G_FCEIL = 263,
+  G_FCOS = 264,
+  G_FSIN = 265,
+  G_FSINCOS = 266,
+  G_FTAN = 267,
+  G_FACOS = 268,
+  G_FASIN = 269,
+  G_FATAN = 270,
+  G_FATAN2 = 271,
+  G_FCOSH = 272,
+  G_FSINH = 273,
+  G_FTANH = 274,
+  G_FSQRT = 275,
+  G_FFLOOR = 276,
+  G_FRINT = 277,
+  G_FNEARBYINT = 278,
+  G_ADDRSPACE_CAST = 279,
+  G_BLOCK_ADDR = 280,
+  G_JUMP_TABLE = 281,
+  G_DYN_STACKALLOC = 282,
+  G_STACKSAVE = 283,
+  G_STACKRESTORE = 284,
+  G_STRICT_FADD = 285,
+  G_STRICT_FSUB = 286,
+  G_STRICT_FMUL = 287,
+  G_STRICT_FDIV = 288,
+  G_STRICT_FREM = 289,
+  G_STRICT_FMA = 290,
+  G_STRICT_FSQRT = 291,
+  G_STRICT_FLDEXP = 292,
+  G_READ_REGISTER = 293,
+  G_WRITE_REGISTER = 294,
+  G_MEMCPY = 295,
+  G_MEMCPY_INLINE = 296,
+  G_MEMMOVE = 297,
+  G_MEMSET = 298,
+  G_BZERO = 299,
+  G_TRAP = 300,
+  G_DEBUGTRAP = 301,
+  G_UBSANTRAP = 302,
+  G_VECREDUCE_SEQ_FADD = 303,
+  G_VECREDUCE_SEQ_FMUL = 304,
+  G_VECREDUCE_FADD = 305,
+  G_VECREDUCE_FMUL = 306,
+  G_VECREDUCE_FMAX = 307,
+  G_VECREDUCE_FMIN = 308,
+  G_VECREDUCE_FMAXIMUM = 309,
+  G_VECREDUCE_FMINIMUM = 310,
+  G_VECREDUCE_ADD = 311,
+  G_VECREDUCE_MUL = 312,
+  G_VECREDUCE_AND = 313,
+  G_VECREDUCE_OR = 314,
+  G_VECREDUCE_XOR = 315,
+  G_VECREDUCE_SMAX = 316,
+  G_VECREDUCE_SMIN = 317,
+  G_VECREDUCE_UMAX = 318,
+  G_VECREDUCE_UMIN = 319,
+  G_SBFX = 320,
+  G_UBFX = 321,
+  ADD16ri_DB = 322,
+  ADD16rr_DB = 323,
+  ADD32ri_DB = 324,
+  ADD32rr_DB = 325,
+  ADD64ri32_DB = 326,
+  ADD64rr_DB = 327,
+  ADD8ri_DB = 328,
+  ADD8rr_DB = 329,
+  AVX1_SETALLONES = 330,
+  AVX2_SETALLONES = 331,
+  AVX512_128_SET0 = 332,
+  AVX512_128_SETALLONES = 333,
+  AVX512_256_SET0 = 334,
+  AVX512_256_SETALLONES = 335,
+  AVX512_512_SET0 = 336,
+  AVX512_512_SETALLONES = 337,
+  AVX512_512_SEXT_MASK_32 = 338,
+  AVX512_512_SEXT_MASK_64 = 339,
+  AVX512_FsFLD0F128 = 340,
+  AVX512_FsFLD0SD = 341,
+  AVX512_FsFLD0SH = 342,
+  AVX512_FsFLD0SS = 343,
+  AVX_SET0 = 344,
+  CALL64m_RVMARKER = 345,
+  CALL64pcrel32_RVMARKER = 346,
+  CALL64r_ImpCall = 347,
+  CALL64r_RVMARKER = 348,
+  FsFLD0F128 = 349,
+  FsFLD0SD = 350,
+  FsFLD0SH = 351,
+  FsFLD0SS = 352,
+  G_FILD = 353,
+  G_FIST = 354,
+  G_FLDCW16 = 355,
+  G_FNSTCW16 = 356,
+  INDIRECT_THUNK_CALL32 = 357,
+  INDIRECT_THUNK_CALL64 = 358,
+  INDIRECT_THUNK_TCRETURN32 = 359,
+  INDIRECT_THUNK_TCRETURN64 = 360,
+  KSET0B = 361,
+  KSET0D = 362,
+  KSET0Q = 363,
+  KSET0W = 364,
+  KSET1B = 365,
+  KSET1D = 366,
+  KSET1Q = 367,
+  KSET1W = 368,
+  LCMPXCHG16B_NO_RBX = 369,
+  LCMPXCHG16B_SAVE_RBX = 370,
+  MMX_SET0 = 371,
+  MORESTACK_RET = 372,
+  MORESTACK_RET_RESTORE_R10 = 373,
+  MOV32ImmSExti8 = 374,
+  MOV32r0 = 375,
+  MOV32r1 = 376,
+  MOV32r_1 = 377,
+  MOV32ri64 = 378,
+  MOV64ImmSExti8 = 379,
+  MOVSHPmr = 380,
+  MOVSHPrm = 381,
+  MWAITX = 382,
+  MWAITX_SAVE_RBX = 383,
+  PLDTILECFGV = 384,
+  PLEA32r = 385,
+  PLEA64r = 386,
+  PTDPBF16PSV = 387,
+  PTDPBSSDV = 388,
+  PTDPBSUDV = 389,
+  PTDPBUSDV = 390,
+  PTDPBUUDV = 391,
+  PTDPFP16PSV = 392,
+  PTILELOADDRST1V = 393,
+  PTILELOADDRSV = 394,
+  PTILELOADDT1V = 395,
+  PTILELOADDV = 396,
+  PTILESTOREDV = 397,
+  PTILEZEROV = 398,
+  RDFLAGS32 = 399,
+  RDFLAGS64 = 400,
+  SEH_BeginEpilogue = 401,
+  SEH_EndEpilogue = 402,
+  SEH_EndPrologue = 403,
+  SEH_PushFrame = 404,
+  SEH_PushReg = 405,
+  SEH_SaveReg = 406,
+  SEH_SaveXMM = 407,
+  SEH_SetFrame = 408,
+  SEH_StackAlign = 409,
+  SEH_StackAlloc = 410,
+  SEH_UnwindV2Start = 411,
+  SEH_UnwindVersion = 412,
+  SETB_C32r = 413,
+  SETB_C64r = 414,
+  SHLDROT32ri = 415,
+  SHLDROT64ri = 416,
+  SHRDROT32ri = 417,
+  SHRDROT64ri = 418,
+  VMOVAPSZ128mr_NOVLX = 419,
+  VMOVAPSZ128rm_NOVLX = 420,
+  VMOVAPSZ256mr_NOVLX = 421,
+  VMOVAPSZ256rm_NOVLX = 422,
+  VMOVUPSZ128mr_NOVLX = 423,
+  VMOVUPSZ128rm_NOVLX = 424,
+  VMOVUPSZ256mr_NOVLX = 425,
+  VMOVUPSZ256rm_NOVLX = 426,
+  V_SET0 = 427,
+  V_SETALLONES = 428,
+  WRFLAGS32 = 429,
+  WRFLAGS64 = 430,
+  XABORT_DEF = 431,
+  XOR32_FP = 432,
+  XOR64_FP = 433,
+  AAA = 434,
+  AAD8i8 = 435,
+  AADD32mr = 436,
+  AADD32mr_EVEX = 437,
+  AADD64mr = 438,
+  AADD64mr_EVEX = 439,
+  AAM8i8 = 440,
+  AAND32mr = 441,
+  AAND32mr_EVEX = 442,
+  AAND64mr = 443,
+  AAND64mr_EVEX = 444,
+  AAS = 445,
+  ABS_F = 446,
+  ABS_Fp32 = 447,
+  ABS_Fp64 = 448,
+  ABS_Fp80 = 449,
+  ADC16i16 = 450,
+  ADC16mi = 451,
+  ADC16mi8 = 452,
+  ADC16mi8_EVEX = 453,
+  ADC16mi8_ND = 454,
+  ADC16mi_EVEX = 455,
+  ADC16mi_ND = 456,
+  ADC16mr = 457,
+  ADC16mr_EVEX = 458,
+  ADC16mr_ND = 459,
+  ADC16ri = 460,
+  ADC16ri8 = 461,
+  ADC16ri8_EVEX = 462,
+  ADC16ri8_ND = 463,
+  ADC16ri_EVEX = 464,
+  ADC16ri_ND = 465,
+  ADC16rm = 466,
+  ADC16rm_EVEX = 467,
+  ADC16rm_ND = 468,
+  ADC16rr = 469,
+  ADC16rr_EVEX = 470,
+  ADC16rr_EVEX_REV = 471,
+  ADC16rr_ND = 472,
+  ADC16rr_ND_REV = 473,
+  ADC16rr_REV = 474,
+  ADC32i32 = 475,
+  ADC32mi = 476,
+  ADC32mi8 = 477,
+  ADC32mi8_EVEX = 478,
+  ADC32mi8_ND = 479,
+  ADC32mi_EVEX = 480,
+  ADC32mi_ND = 481,
+  ADC32mr = 482,
+  ADC32mr_EVEX = 483,
+  ADC32mr_ND = 484,
+  ADC32ri = 485,
+  ADC32ri8 = 486,
+  ADC32ri8_EVEX = 487,
+  ADC32ri8_ND = 488,
+  ADC32ri_EVEX = 489,
+  ADC32ri_ND = 490,
+  ADC32rm = 491,
+  ADC32rm_EVEX = 492,
+  ADC32rm_ND = 493,
+  ADC32rr = 494,
+  ADC32rr_EVEX = 495,
+  ADC32rr_EVEX_REV = 496,
+  ADC32rr_ND = 497,
+  ADC32rr_ND_REV = 498,
+  ADC32rr_REV = 499,
+  ADC64i32 = 500,
+  ADC64mi32 = 501,
+  ADC64mi32_EVEX = 502,
+  ADC64mi32_ND = 503,
+  ADC64mi8 = 504,
+  ADC64mi8_EVEX = 505,
+  ADC64mi8_ND = 506,
+  ADC64mr = 507,
+  ADC64mr_EVEX = 508,
+  ADC64mr_ND = 509,
+  ADC64ri32 = 510,
+  ADC64ri32_EVEX = 511,
+  ADC64ri32_ND = 512,
+  ADC64ri8 = 513,
+  ADC64ri8_EVEX = 514,
+  ADC64ri8_ND = 515,
+  ADC64rm = 516,
+  ADC64rm_EVEX = 517,
+  ADC64rm_ND = 518,
+  ADC64rr = 519,
+  ADC64rr_EVEX = 520,
+  ADC64rr_EVEX_REV = 521,
+  ADC64rr_ND = 522,
+  ADC64rr_ND_REV = 523,
+  ADC64rr_REV = 524,
+  ADC8i8 = 525,
+  ADC8mi = 526,
+  ADC8mi8 = 527,
+  ADC8mi_EVEX = 528,
+  ADC8mi_ND = 529,
+  ADC8mr = 530,
+  ADC8mr_EVEX = 531,
+  ADC8mr_ND = 532,
+  ADC8ri = 533,
+  ADC8ri8 = 534,
+  ADC8ri_EVEX = 535,
+  ADC8ri_ND = 536,
+  ADC8rm = 537,
+  ADC8rm_EVEX = 538,
+  ADC8rm_ND = 539,
+  ADC8rr = 540,
+  ADC8rr_EVEX = 541,
+  ADC8rr_EVEX_REV = 542,
+  ADC8rr_ND = 543,
+  ADC8rr_ND_REV = 544,
+  ADC8rr_REV = 545,
+  ADCX32rm = 546,
+  ADCX32rm_EVEX = 547,
+  ADCX32rm_ND = 548,
+  ADCX32rr = 549,
+  ADCX32rr_EVEX = 550,
+  ADCX32rr_ND = 551,
+  ADCX64rm = 552,
+  ADCX64rm_EVEX = 553,
+  ADCX64rm_ND = 554,
+  ADCX64rr = 555,
+  ADCX64rr_EVEX = 556,
+  ADCX64rr_ND = 557,
+  ADD16i16 = 558,
+  ADD16mi = 559,
+  ADD16mi8 = 560,
+  ADD16mi8_EVEX = 561,
+  ADD16mi8_ND = 562,
+  ADD16mi8_NF = 563,
+  ADD16mi8_NF_ND = 564,
+  ADD16mi_EVEX = 565,
+  ADD16mi_ND = 566,
+  ADD16mi_NF = 567,
+  ADD16mi_NF_ND = 568,
+  ADD16mr = 569,
+  ADD16mr_EVEX = 570,
+  ADD16mr_ND = 571,
+  ADD16mr_NF = 572,
+  ADD16mr_NF_ND = 573,
+  ADD16ri = 574,
+  ADD16ri8 = 575,
+  ADD16ri8_EVEX = 576,
+  ADD16ri8_ND = 577,
+  ADD16ri8_NF = 578,
+  ADD16ri8_NF_ND = 579,
+  ADD16ri_EVEX = 580,
+  ADD16ri_ND = 581,
+  ADD16ri_NF = 582,
+  ADD16ri_NF_ND = 583,
+  ADD16rm = 584,
+  ADD16rm_EVEX = 585,
+  ADD16rm_ND = 586,
+  ADD16rm_NF = 587,
+  ADD16rm_NF_ND = 588,
+  ADD16rr = 589,
+  ADD16rr_EVEX = 590,
+  ADD16rr_EVEX_REV = 591,
+  ADD16rr_ND = 592,
+  ADD16rr_ND_REV = 593,
+  ADD16rr_NF = 594,
+  ADD16rr_NF_ND = 595,
+  ADD16rr_NF_ND_REV = 596,
+  ADD16rr_NF_REV = 597,
+  ADD16rr_REV = 598,
+  ADD32i32 = 599,
+  ADD32mi = 600,
+  ADD32mi8 = 601,
+  ADD32mi8_EVEX = 602,
+  ADD32mi8_ND = 603,
+  ADD32mi8_NF = 604,
+  ADD32mi8_NF_ND = 605,
+  ADD32mi_EVEX = 606,
+  ADD32mi_ND = 607,
+  ADD32mi_NF = 608,
+  ADD32mi_NF_ND = 609,
+  ADD32mr = 610,
+  ADD32mr_EVEX = 611,
+  ADD32mr_ND = 612,
+  ADD32mr_NF = 613,
+  ADD32mr_NF_ND = 614,
+  ADD32ri = 615,
+  ADD32ri8 = 616,
+  ADD32ri8_EVEX = 617,
+  ADD32ri8_ND = 618,
+  ADD32ri8_NF = 619,
+  ADD32ri8_NF_ND = 620,
+  ADD32ri_EVEX = 621,
+  ADD32ri_ND = 622,
+  ADD32ri_NF = 623,
+  ADD32ri_NF_ND = 624,
+  ADD32rm = 625,
+  ADD32rm_EVEX = 626,
+  ADD32rm_ND = 627,
+  ADD32rm_NF = 628,
+  ADD32rm_NF_ND = 629,
+  ADD32rr = 630,
+  ADD32rr_EVEX = 631,
+  ADD32rr_EVEX_REV = 632,
+  ADD32rr_ND = 633,
+  ADD32rr_ND_REV = 634,
+  ADD32rr_NF = 635,
+  ADD32rr_NF_ND = 636,
+  ADD32rr_NF_ND_REV = 637,
+  ADD32rr_NF_REV = 638,
+  ADD32rr_REV = 639,
+  ADD64i32 = 640,
+  ADD64mi32 = 641,
+  ADD64mi32_EVEX = 642,
+  ADD64mi32_ND = 643,
+  ADD64mi32_NF = 644,
+  ADD64mi32_NF_ND = 645,
+  ADD64mi8 = 646,
+  ADD64mi8_EVEX = 647,
+  ADD64mi8_ND = 648,
+  ADD64mi8_NF = 649,
+  ADD64mi8_NF_ND = 650,
+  ADD64mr = 651,
+  ADD64mr_EVEX = 652,
+  ADD64mr_ND = 653,
+  ADD64mr_NF = 654,
+  ADD64mr_NF_ND = 655,
+  ADD64ri32 = 656,
+  ADD64ri32_EVEX = 657,
+  ADD64ri32_ND = 658,
+  ADD64ri32_NF = 659,
+  ADD64ri32_NF_ND = 660,
+  ADD64ri8 = 661,
+  ADD64ri8_EVEX = 662,
+  ADD64ri8_ND = 663,
+  ADD64ri8_NF = 664,
+  ADD64ri8_NF_ND = 665,
+  ADD64rm = 666,
+  ADD64rm_EVEX = 667,
+  ADD64rm_ND = 668,
+  ADD64rm_NF = 669,
+  ADD64rm_NF_ND = 670,
+  ADD64rr = 671,
+  ADD64rr_EVEX = 672,
+  ADD64rr_EVEX_REV = 673,
+  ADD64rr_ND = 674,
+  ADD64rr_ND_REV = 675,
+  ADD64rr_NF = 676,
+  ADD64rr_NF_ND = 677,
+  ADD64rr_NF_ND_REV = 678,
+  ADD64rr_NF_REV = 679,
+  ADD64rr_REV = 680,
+  ADD8i8 = 681,
+  ADD8mi = 682,
+  ADD8mi8 = 683,
+  ADD8mi_EVEX = 684,
+  ADD8mi_ND = 685,
+  ADD8mi_NF = 686,
+  ADD8mi_NF_ND = 687,
+  ADD8mr = 688,
+  ADD8mr_EVEX = 689,
+  ADD8mr_ND = 690,
+  ADD8mr_NF = 691,
+  ADD8mr_NF_ND = 692,
+  ADD8ri = 693,
+  ADD8ri8 = 694,
+  ADD8ri_EVEX = 695,
+  ADD8ri_ND = 696,
+  ADD8ri_NF = 697,
+  ADD8ri_NF_ND = 698,
+  ADD8rm = 699,
+  ADD8rm_EVEX = 700,
+  ADD8rm_ND = 701,
+  ADD8rm_NF = 702,
+  ADD8rm_NF_ND = 703,
+  ADD8rr = 704,
+  ADD8rr_EVEX = 705,
+  ADD8rr_EVEX_REV = 706,
+  ADD8rr_ND = 707,
+  ADD8rr_ND_REV = 708,
+  ADD8rr_NF = 709,
+  ADD8rr_NF_ND = 710,
+  ADD8rr_NF_ND_REV = 711,
+  ADD8rr_NF_REV = 712,
+  ADD8rr_REV = 713,
+  ADDPDrm = 714,
+  ADDPDrr = 715,
+  ADDPSrm = 716,
+  ADDPSrr = 717,
+  ADDR16_PREFIX = 718,
+  ADDR32_PREFIX = 719,
+  ADDSDrm = 720,
+  ADDSDrm_Int = 721,
+  ADDSDrr = 722,
+  ADDSDrr_Int = 723,
+  ADDSSrm = 724,
+  ADDSSrm_Int = 725,
+  ADDSSrr = 726,
+  ADDSSrr_Int = 727,
+  ADDSUBPDrm = 728,
+  ADDSUBPDrr = 729,
+  ADDSUBPSrm = 730,
+  ADDSUBPSrr = 731,
+  ADD_F32m = 732,
+  ADD_F64m = 733,
+  ADD_FI16m = 734,
+  ADD_FI32m = 735,
+  ADD_FPrST0 = 736,
+  ADD_FST0r = 737,
+  ADD_Fp32 = 738,
+  ADD_Fp32m = 739,
+  ADD_Fp64 = 740,
+  ADD_Fp64m = 741,
+  ADD_Fp64m32 = 742,
+  ADD_Fp80 = 743,
+  ADD_Fp80m32 = 744,
+  ADD_Fp80m64 = 745,
+  ADD_FpI16m32 = 746,
+  ADD_FpI16m64 = 747,
+  ADD_FpI16m80 = 748,
+  ADD_FpI32m32 = 749,
+  ADD_FpI32m64 = 750,
+  ADD_FpI32m80 = 751,
+  ADD_FrST0 = 752,
+  ADJCALLSTACKDOWN32 = 753,
+  ADJCALLSTACKDOWN64 = 754,
+  ADJCALLSTACKUP32 = 755,
+  ADJCALLSTACKUP64 = 756,
+  ADOX32rm = 757,
+  ADOX32rm_EVEX = 758,
+  ADOX32rm_ND = 759,
+  ADOX32rr = 760,
+  ADOX32rr_EVEX = 761,
+  ADOX32rr_ND = 762,
+  ADOX64rm = 763,
+  ADOX64rm_EVEX = 764,
+  ADOX64rm_ND = 765,
+  ADOX64rr = 766,
+  ADOX64rr_EVEX = 767,
+  ADOX64rr_ND = 768,
+  AESDEC128KL = 769,
+  AESDEC256KL = 770,
+  AESDECLASTrm = 771,
+  AESDECLASTrr = 772,
+  AESDECWIDE128KL = 773,
+  AESDECWIDE256KL = 774,
+  AESDECrm = 775,
+  AESDECrr = 776,
+  AESENC128KL = 777,
+  AESENC256KL = 778,
+  AESENCLASTrm = 779,
+  AESENCLASTrr = 780,
+  AESENCWIDE128KL = 781,
+  AESENCWIDE256KL = 782,
+  AESENCrm = 783,
+  AESENCrr = 784,
+  AESIMCrm = 785,
+  AESIMCrr = 786,
+  AESKEYGENASSISTrmi = 787,
+  AESKEYGENASSISTrri = 788,
+  AND16i16 = 789,
+  AND16mi = 790,
+  AND16mi8 = 791,
+  AND16mi8_EVEX = 792,
+  AND16mi8_ND = 793,
+  AND16mi8_NF = 794,
+  AND16mi8_NF_ND = 795,
+  AND16mi_EVEX = 796,
+  AND16mi_ND = 797,
+  AND16mi_NF = 798,
+  AND16mi_NF_ND = 799,
+  AND16mr = 800,
+  AND16mr_EVEX = 801,
+  AND16mr_ND = 802,
+  AND16mr_NF = 803,
+  AND16mr_NF_ND = 804,
+  AND16ri = 805,
+  AND16ri8 = 806,
+  AND16ri8_EVEX = 807,
+  AND16ri8_ND = 808,
+  AND16ri8_NF = 809,
+  AND16ri8_NF_ND = 810,
+  AND16ri_EVEX = 811,
+  AND16ri_ND = 812,
+  AND16ri_NF = 813,
+  AND16ri_NF_ND = 814,
+  AND16rm = 815,
+  AND16rm_EVEX = 816,
+  AND16rm_ND = 817,
+  AND16rm_NF = 818,
+  AND16rm_NF_ND = 819,
+  AND16rr = 820,
+  AND16rr_EVEX = 821,
+  AND16rr_EVEX_REV = 822,
+  AND16rr_ND = 823,
+  AND16rr_ND_REV = 824,
+  AND16rr_NF = 825,
+  AND16rr_NF_ND = 826,
+  AND16rr_NF_ND_REV = 827,
+  AND16rr_NF_REV = 828,
+  AND16rr_REV = 829,
+  AND32i32 = 830,
+  AND32mi = 831,
+  AND32mi8 = 832,
+  AND32mi8_EVEX = 833,
+  AND32mi8_ND = 834,
+  AND32mi8_NF = 835,
+  AND32mi8_NF_ND = 836,
+  AND32mi_EVEX = 837,
+  AND32mi_ND = 838,
+  AND32mi_NF = 839,
+  AND32mi_NF_ND = 840,
+  AND32mr = 841,
+  AND32mr_EVEX = 842,
+  AND32mr_ND = 843,
+  AND32mr_NF = 844,
+  AND32mr_NF_ND = 845,
+  AND32ri = 846,
+  AND32ri8 = 847,
+  AND32ri8_EVEX = 848,
+  AND32ri8_ND = 849,
+  AND32ri8_NF = 850,
+  AND32ri8_NF_ND = 851,
+  AND32ri_EVEX = 852,
+  AND32ri_ND = 853,
+  AND32ri_NF = 854,
+  AND32ri_NF_ND = 855,
+  AND32rm = 856,
+  AND32rm_EVEX = 857,
+  AND32rm_ND = 858,
+  AND32rm_NF = 859,
+  AND32rm_NF_ND = 860,
+  AND32rr = 861,
+  AND32rr_EVEX = 862,
+  AND32rr_EVEX_REV = 863,
+  AND32rr_ND = 864,
+  AND32rr_ND_REV = 865,
+  AND32rr_NF = 866,
+  AND32rr_NF_ND = 867,
+  AND32rr_NF_ND_REV = 868,
+  AND32rr_NF_REV = 869,
+  AND32rr_REV = 870,
+  AND64i32 = 871,
+  AND64mi32 = 872,
+  AND64mi32_EVEX = 873,
+  AND64mi32_ND = 874,
+  AND64mi32_NF = 875,
+  AND64mi32_NF_ND = 876,
+  AND64mi8 = 877,
+  AND64mi8_EVEX = 878,
+  AND64mi8_ND = 879,
+  AND64mi8_NF = 880,
+  AND64mi8_NF_ND = 881,
+  AND64mr = 882,
+  AND64mr_EVEX = 883,
+  AND64mr_ND = 884,
+  AND64mr_NF = 885,
+  AND64mr_NF_ND = 886,
+  AND64ri32 = 887,
+  AND64ri32_EVEX = 888,
+  AND64ri32_ND = 889,
+  AND64ri32_NF = 890,
+  AND64ri32_NF_ND = 891,
+  AND64ri8 = 892,
+  AND64ri8_EVEX = 893,
+  AND64ri8_ND = 894,
+  AND64ri8_NF = 895,
+  AND64ri8_NF_ND = 896,
+  AND64rm = 897,
+  AND64rm_EVEX = 898,
+  AND64rm_ND = 899,
+  AND64rm_NF = 900,
+  AND64rm_NF_ND = 901,
+  AND64rr = 902,
+  AND64rr_EVEX = 903,
+  AND64rr_EVEX_REV = 904,
+  AND64rr_ND = 905,
+  AND64rr_ND_REV = 906,
+  AND64rr_NF = 907,
+  AND64rr_NF_ND = 908,
+  AND64rr_NF_ND_REV = 909,
+  AND64rr_NF_REV = 910,
+  AND64rr_REV = 911,
+  AND8i8 = 912,
+  AND8mi = 913,
+  AND8mi8 = 914,
+  AND8mi_EVEX = 915,
+  AND8mi_ND = 916,
+  AND8mi_NF = 917,
+  AND8mi_NF_ND = 918,
+  AND8mr = 919,
+  AND8mr_EVEX = 920,
+  AND8mr_ND = 921,
+  AND8mr_NF = 922,
+  AND8mr_NF_ND = 923,
+  AND8ri = 924,
+  AND8ri8 = 925,
+  AND8ri_EVEX = 926,
+  AND8ri_ND = 927,
+  AND8ri_NF = 928,
+  AND8ri_NF_ND = 929,
+  AND8rm = 930,
+  AND8rm_EVEX = 931,
+  AND8rm_ND = 932,
+  AND8rm_NF = 933,
+  AND8rm_NF_ND = 934,
+  AND8rr = 935,
+  AND8rr_EVEX = 936,
+  AND8rr_EVEX_REV = 937,
+  AND8rr_ND = 938,
+  AND8rr_ND_REV = 939,
+  AND8rr_NF = 940,
+  AND8rr_NF_ND = 941,
+  AND8rr_NF_ND_REV = 942,
+  AND8rr_NF_REV = 943,
+  AND8rr_REV = 944,
+  ANDN32rm = 945,
+  ANDN32rm_EVEX = 946,
+  ANDN32rm_NF = 947,
+  ANDN32rr = 948,
+  ANDN32rr_EVEX = 949,
+  ANDN32rr_NF = 950,
+  ANDN64rm = 951,
+  ANDN64rm_EVEX = 952,
+  ANDN64rm_NF = 953,
+  ANDN64rr = 954,
+  ANDN64rr_EVEX = 955,
+  ANDN64rr_NF = 956,
+  ANDNPDrm = 957,
+  ANDNPDrr = 958,
+  ANDNPSrm = 959,
+  ANDNPSrr = 960,
+  ANDPDrm = 961,
+  ANDPDrr = 962,
+  ANDPSrm = 963,
+  ANDPSrr = 964,
+  AOR32mr = 965,
+  AOR32mr_EVEX = 966,
+  AOR64mr = 967,
+  AOR64mr_EVEX = 968,
+  ARPL16mr = 969,
+  ARPL16rr = 970,
+  ASAN_CHECK_MEMACCESS = 971,
+  AXOR32mr = 972,
+  AXOR32mr_EVEX = 973,
+  AXOR64mr = 974,
+  AXOR64mr_EVEX = 975,
+  BEXTR32rm = 976,
+  BEXTR32rm_EVEX = 977,
+  BEXTR32rm_NF = 978,
+  BEXTR32rr = 979,
+  BEXTR32rr_EVEX = 980,
+  BEXTR32rr_NF = 981,
+  BEXTR64rm = 982,
+  BEXTR64rm_EVEX = 983,
+  BEXTR64rm_NF = 984,
+  BEXTR64rr = 985,
+  BEXTR64rr_EVEX = 986,
+  BEXTR64rr_NF = 987,
+  BEXTRI32mi = 988,
+  BEXTRI32ri = 989,
+  BEXTRI64mi = 990,
+  BEXTRI64ri = 991,
+  BLCFILL32rm = 992,
+  BLCFILL32rr = 993,
+  BLCFILL64rm = 994,
+  BLCFILL64rr = 995,
+  BLCI32rm = 996,
+  BLCI32rr = 997,
+  BLCI64rm = 998,
+  BLCI64rr = 999,
+  BLCIC32rm = 1000,
+  BLCIC32rr = 1001,
+  BLCIC64rm = 1002,
+  BLCIC64rr = 1003,
+  BLCMSK32rm = 1004,
+  BLCMSK32rr = 1005,
+  BLCMSK64rm = 1006,
+  BLCMSK64rr = 1007,
+  BLCS32rm = 1008,
+  BLCS32rr = 1009,
+  BLCS64rm = 1010,
+  BLCS64rr = 1011,
+  BLENDPDrmi = 1012,
+  BLENDPDrri = 1013,
+  BLENDPSrmi = 1014,
+  BLENDPSrri = 1015,
+  BLENDVPDrm0 = 1016,
+  BLENDVPDrr0 = 1017,
+  BLENDVPSrm0 = 1018,
+  BLENDVPSrr0 = 1019,
+  BLSFILL32rm = 1020,
+  BLSFILL32rr = 1021,
+  BLSFILL64rm = 1022,
+  BLSFILL64rr = 1023,
+  BLSI32rm = 1024,
+  BLSI32rm_EVEX = 1025,
+  BLSI32rm_NF = 1026,
+  BLSI32rr = 1027,
+  BLSI32rr_EVEX = 1028,
+  BLSI32rr_NF = 1029,
+  BLSI64rm = 1030,
+  BLSI64rm_EVEX = 1031,
+  BLSI64rm_NF = 1032,
+  BLSI64rr = 1033,
+  BLSI64rr_EVEX = 1034,
+  BLSI64rr_NF = 1035,
+  BLSIC32rm = 1036,
+  BLSIC32rr = 1037,
+  BLSIC64rm = 1038,
+  BLSIC64rr = 1039,
+  BLSMSK32rm = 1040,
+  BLSMSK32rm_EVEX = 1041,
+  BLSMSK32rm_NF = 1042,
+  BLSMSK32rr = 1043,
+  BLSMSK32rr_EVEX = 1044,
+  BLSMSK32rr_NF = 1045,
+  BLSMSK64rm = 1046,
+  BLSMSK64rm_EVEX = 1047,
+  BLSMSK64rm_NF = 1048,
+  BLSMSK64rr = 1049,
+  BLSMSK64rr_EVEX = 1050,
+  BLSMSK64rr_NF = 1051,
+  BLSR32rm = 1052,
+  BLSR32rm_EVEX = 1053,
+  BLSR32rm_NF = 1054,
+  BLSR32rr = 1055,
+  BLSR32rr_EVEX = 1056,
+  BLSR32rr_NF = 1057,
+  BLSR64rm = 1058,
+  BLSR64rm_EVEX = 1059,
+  BLSR64rm_NF = 1060,
+  BLSR64rr = 1061,
+  BLSR64rr_EVEX = 1062,
+  BLSR64rr_NF = 1063,
+  BOUNDS16rm = 1064,
+  BOUNDS32rm = 1065,
+  BSF16rm = 1066,
+  BSF16rr = 1067,
+  BSF32rm = 1068,
+  BSF32rr = 1069,
+  BSF64rm = 1070,
+  BSF64rr = 1071,
+  BSR16rm = 1072,
+  BSR16rr = 1073,
+  BSR32rm = 1074,
+  BSR32rr = 1075,
+  BSR64rm = 1076,
+  BSR64rr = 1077,
+  BSWAP16r_BAD = 1078,
+  BSWAP32r = 1079,
+  BSWAP64r = 1080,
+  BT16mi8 = 1081,
+  BT16mr = 1082,
+  BT16ri8 = 1083,
+  BT16rr = 1084,
+  BT32mi8 = 1085,
+  BT32mr = 1086,
+  BT32ri8 = 1087,
+  BT32rr = 1088,
+  BT64mi8 = 1089,
+  BT64mr = 1090,
+  BT64ri8 = 1091,
+  BT64rr = 1092,
+  BTC16mi8 = 1093,
+  BTC16mr = 1094,
+  BTC16ri8 = 1095,
+  BTC16rr = 1096,
+  BTC32mi8 = 1097,
+  BTC32mr = 1098,
+  BTC32ri8 = 1099,
+  BTC32rr = 1100,
+  BTC64mi8 = 1101,
+  BTC64mr = 1102,
+  BTC64ri8 = 1103,
+  BTC64rr = 1104,
+  BTR16mi8 = 1105,
+  BTR16mr = 1106,
+  BTR16ri8 = 1107,
+  BTR16rr = 1108,
+  BTR32mi8 = 1109,
+  BTR32mr = 1110,
+  BTR32ri8 = 1111,
+  BTR32rr = 1112,
+  BTR64mi8 = 1113,
+  BTR64mr = 1114,
+  BTR64ri8 = 1115,
+  BTR64rr = 1116,
+  BTS16mi8 = 1117,
+  BTS16mr = 1118,
+  BTS16ri8 = 1119,
+  BTS16rr = 1120,
+  BTS32mi8 = 1121,
+  BTS32mr = 1122,
+  BTS32ri8 = 1123,
+  BTS32rr = 1124,
+  BTS64mi8 = 1125,
+  BTS64mr = 1126,
+  BTS64ri8 = 1127,
+  BTS64rr = 1128,
+  BZHI32rm = 1129,
+  BZHI32rm_EVEX = 1130,
+  BZHI32rm_NF = 1131,
+  BZHI32rr = 1132,
+  BZHI32rr_EVEX = 1133,
+  BZHI32rr_NF = 1134,
+  BZHI64rm = 1135,
+  BZHI64rm_EVEX = 1136,
+  BZHI64rm_NF = 1137,
+  BZHI64rr = 1138,
+  BZHI64rr_EVEX = 1139,
+  BZHI64rr_NF = 1140,
+  CALL16m = 1141,
+  CALL16m_NT = 1142,
+  CALL16r = 1143,
+  CALL16r_NT = 1144,
+  CALL32m = 1145,
+  CALL32m_NT = 1146,
+  CALL32r = 1147,
+  CALL32r_NT = 1148,
+  CALL64m = 1149,
+  CALL64m_NT = 1150,
+  CALL64pcrel32 = 1151,
+  CALL64r = 1152,
+  CALL64r_NT = 1153,
+  CALLpcrel16 = 1154,
+  CALLpcrel32 = 1155,
+  CATCHRET = 1156,
+  CBW = 1157,
+  CCMP16mi = 1158,
+  CCMP16mi8 = 1159,
+  CCMP16mr = 1160,
+  CCMP16ri = 1161,
+  CCMP16ri8 = 1162,
+  CCMP16rm = 1163,
+  CCMP16rr = 1164,
+  CCMP16rr_REV = 1165,
+  CCMP32mi = 1166,
+  CCMP32mi8 = 1167,
+  CCMP32mr = 1168,
+  CCMP32ri = 1169,
+  CCMP32ri8 = 1170,
+  CCMP32rm = 1171,
+  CCMP32rr = 1172,
+  CCMP32rr_REV = 1173,
+  CCMP64mi32 = 1174,
+  CCMP64mi8 = 1175,
+  CCMP64mr = 1176,
+  CCMP64ri32 = 1177,
+  CCMP64ri8 = 1178,
+  CCMP64rm = 1179,
+  CCMP64rr = 1180,
+  CCMP64rr_REV = 1181,
+  CCMP8mi = 1182,
+  CCMP8mr = 1183,
+  CCMP8ri = 1184,
+  CCMP8rm = 1185,
+  CCMP8rr = 1186,
+  CCMP8rr_REV = 1187,
+  CDQ = 1188,
+  CDQE = 1189,
+  CFCMOV16mr = 1190,
+  CFCMOV16rm = 1191,
+  CFCMOV16rm_ND = 1192,
+  CFCMOV16rr = 1193,
+  CFCMOV16rr_ND = 1194,
+  CFCMOV16rr_REV = 1195,
+  CFCMOV32mr = 1196,
+  CFCMOV32rm = 1197,
+  CFCMOV32rm_ND = 1198,
+  CFCMOV32rr = 1199,
+  CFCMOV32rr_ND = 1200,
+  CFCMOV32rr_REV = 1201,
+  CFCMOV64mr = 1202,
+  CFCMOV64rm = 1203,
+  CFCMOV64rm_ND = 1204,
+  CFCMOV64rr = 1205,
+  CFCMOV64rr_ND = 1206,
+  CFCMOV64rr_REV = 1207,
+  CHS_F = 1208,
+  CHS_Fp32 = 1209,
+  CHS_Fp64 = 1210,
+  CHS_Fp80 = 1211,
+  CLAC = 1212,
+  CLC = 1213,
+  CLD = 1214,
+  CLDEMOTE = 1215,
+  CLEANUPRET = 1216,
+  CLFLUSH = 1217,
+  CLFLUSHOPT = 1218,
+  CLGI = 1219,
+  CLI = 1220,
+  CLRSSBSY = 1221,
+  CLTS = 1222,
+  CLUI = 1223,
+  CLWB = 1224,
+  CLZERO32r = 1225,
+  CLZERO64r = 1226,
+  CMC = 1227,
+  CMOV16rm = 1228,
+  CMOV16rm_ND = 1229,
+  CMOV16rr = 1230,
+  CMOV16rr_ND = 1231,
+  CMOV32rm = 1232,
+  CMOV32rm_ND = 1233,
+  CMOV32rr = 1234,
+  CMOV32rr_ND = 1235,
+  CMOV64rm = 1236,
+  CMOV64rm_ND = 1237,
+  CMOV64rr = 1238,
+  CMOV64rr_ND = 1239,
+  CMOVBE_F = 1240,
+  CMOVBE_Fp32 = 1241,
+  CMOVBE_Fp64 = 1242,
+  CMOVBE_Fp80 = 1243,
+  CMOVB_F = 1244,
+  CMOVB_Fp32 = 1245,
+  CMOVB_Fp64 = 1246,
+  CMOVB_Fp80 = 1247,
+  CMOVE_F = 1248,
+  CMOVE_Fp32 = 1249,
+  CMOVE_Fp64 = 1250,
+  CMOVE_Fp80 = 1251,
+  CMOVNBE_F = 1252,
+  CMOVNBE_Fp32 = 1253,
+  CMOVNBE_Fp64 = 1254,
+  CMOVNBE_Fp80 = 1255,
+  CMOVNB_F = 1256,
+  CMOVNB_Fp32 = 1257,
+  CMOVNB_Fp64 = 1258,
+  CMOVNB_Fp80 = 1259,
+  CMOVNE_F = 1260,
+  CMOVNE_Fp32 = 1261,
+  CMOVNE_Fp64 = 1262,
+  CMOVNE_Fp80 = 1263,
+  CMOVNP_F = 1264,
+  CMOVNP_Fp32 = 1265,
+  CMOVNP_Fp64 = 1266,
+  CMOVNP_Fp80 = 1267,
+  CMOVP_F = 1268,
+  CMOVP_Fp32 = 1269,
+  CMOVP_Fp64 = 1270,
+  CMOVP_Fp80 = 1271,
+  CMOV_FR16 = 1272,
+  CMOV_FR16X = 1273,
+  CMOV_FR32 = 1274,
+  CMOV_FR32X = 1275,
+  CMOV_FR64 = 1276,
+  CMOV_FR64X = 1277,
+  CMOV_GR16 = 1278,
+  CMOV_GR32 = 1279,
+  CMOV_GR8 = 1280,
+  CMOV_RFP32 = 1281,
+  CMOV_RFP64 = 1282,
+  CMOV_RFP80 = 1283,
+  CMOV_VK1 = 1284,
+  CMOV_VK16 = 1285,
+  CMOV_VK2 = 1286,
+  CMOV_VK32 = 1287,
+  CMOV_VK4 = 1288,
+  CMOV_VK64 = 1289,
+  CMOV_VK8 = 1290,
+  CMOV_VR128 = 1291,
+  CMOV_VR128X = 1292,
+  CMOV_VR256 = 1293,
+  CMOV_VR256X = 1294,
+  CMOV_VR512 = 1295,
+  CMOV_VR64 = 1296,
+  CMP16i16 = 1297,
+  CMP16mi = 1298,
+  CMP16mi8 = 1299,
+  CMP16mr = 1300,
+  CMP16ri = 1301,
+  CMP16ri8 = 1302,
+  CMP16rm = 1303,
+  CMP16rr = 1304,
+  CMP16rr_REV = 1305,
+  CMP32i32 = 1306,
+  CMP32mi = 1307,
+  CMP32mi8 = 1308,
+  CMP32mr = 1309,
+  CMP32ri = 1310,
+  CMP32ri8 = 1311,
+  CMP32rm = 1312,
+  CMP32rr = 1313,
+  CMP32rr_REV = 1314,
+  CMP64i32 = 1315,
+  CMP64mi32 = 1316,
+  CMP64mi8 = 1317,
+  CMP64mr = 1318,
+  CMP64ri32 = 1319,
+  CMP64ri8 = 1320,
+  CMP64rm = 1321,
+  CMP64rr = 1322,
+  CMP64rr_REV = 1323,
+  CMP8i8 = 1324,
+  CMP8mi = 1325,
+  CMP8mi8 = 1326,
+  CMP8mr = 1327,
+  CMP8ri = 1328,
+  CMP8ri8 = 1329,
+  CMP8rm = 1330,
+  CMP8rr = 1331,
+  CMP8rr_REV = 1332,
+  CMPCCXADDmr32 = 1333,
+  CMPCCXADDmr32_EVEX = 1334,
+  CMPCCXADDmr64 = 1335,
+  CMPCCXADDmr64_EVEX = 1336,
+  CMPPDrmi = 1337,
+  CMPPDrri = 1338,
+  CMPPSrmi = 1339,
+  CMPPSrri = 1340,
+  CMPSB = 1341,
+  CMPSDrmi = 1342,
+  CMPSDrmi_Int = 1343,
+  CMPSDrri = 1344,
+  CMPSDrri_Int = 1345,
+  CMPSL = 1346,
+  CMPSQ = 1347,
+  CMPSSrmi = 1348,
+  CMPSSrmi_Int = 1349,
+  CMPSSrri = 1350,
+  CMPSSrri_Int = 1351,
+  CMPSW = 1352,
+  CMPXCHG16B = 1353,
+  CMPXCHG16rm = 1354,
+  CMPXCHG16rr = 1355,
+  CMPXCHG32rm = 1356,
+  CMPXCHG32rr = 1357,
+  CMPXCHG64rm = 1358,
+  CMPXCHG64rr = 1359,
+  CMPXCHG8B = 1360,
+  CMPXCHG8rm = 1361,
+  CMPXCHG8rr = 1362,
+  COMISDrm = 1363,
+  COMISDrm_Int = 1364,
+  COMISDrr = 1365,
+  COMISDrr_Int = 1366,
+  COMISSrm = 1367,
+  COMISSrm_Int = 1368,
+  COMISSrr = 1369,
+  COMISSrr_Int = 1370,
+  COMP_FST0r = 1371,
+  COM_FIPr = 1372,
+  COM_FIr = 1373,
+  COM_FST0r = 1374,
+  COM_FpIr32 = 1375,
+  COM_FpIr64 = 1376,
+  COM_FpIr80 = 1377,
+  COM_Fpr32 = 1378,
+  COM_Fpr64 = 1379,
+  COM_Fpr80 = 1380,
+  CPUID = 1381,
+  CQO = 1382,
+  CRC32r32m16 = 1383,
+  CRC32r32m16_EVEX = 1384,
+  CRC32r32m32 = 1385,
+  CRC32r32m32_EVEX = 1386,
+  CRC32r32m8 = 1387,
+  CRC32r32m8_EVEX = 1388,
+  CRC32r32r16 = 1389,
+  CRC32r32r16_EVEX = 1390,
+  CRC32r32r32 = 1391,
+  CRC32r32r32_EVEX = 1392,
+  CRC32r32r8 = 1393,
+  CRC32r32r8_EVEX = 1394,
+  CRC32r64m64 = 1395,
+  CRC32r64m64_EVEX = 1396,
+  CRC32r64m8 = 1397,
+  CRC32r64m8_EVEX = 1398,
+  CRC32r64r64 = 1399,
+  CRC32r64r64_EVEX = 1400,
+  CRC32r64r8 = 1401,
+  CRC32r64r8_EVEX = 1402,
+  CS_PREFIX = 1403,
+  CTEST16mi = 1404,
+  CTEST16mr = 1405,
+  CTEST16ri = 1406,
+  CTEST16rr = 1407,
+  CTEST32mi = 1408,
+  CTEST32mr = 1409,
+  CTEST32ri = 1410,
+  CTEST32rr = 1411,
+  CTEST64mi32 = 1412,
+  CTEST64mr = 1413,
+  CTEST64ri32 = 1414,
+  CTEST64rr = 1415,
+  CTEST8mi = 1416,
+  CTEST8mr = 1417,
+  CTEST8ri = 1418,
+  CTEST8rr = 1419,
+  CVTDQ2PDrm = 1420,
+  CVTDQ2PDrr = 1421,
+  CVTDQ2PSrm = 1422,
+  CVTDQ2PSrr = 1423,
+  CVTPD2DQrm = 1424,
+  CVTPD2DQrr = 1425,
+  CVTPD2PSrm = 1426,
+  CVTPD2PSrr = 1427,
+  CVTPS2DQrm = 1428,
+  CVTPS2DQrr = 1429,
+  CVTPS2PDrm = 1430,
+  CVTPS2PDrr = 1431,
+  CVTSD2SI64rm = 1432,
+  CVTSD2SI64rm_Int = 1433,
+  CVTSD2SI64rr = 1434,
+  CVTSD2SI64rr_Int = 1435,
+  CVTSD2SIrm = 1436,
+  CVTSD2SIrm_Int = 1437,
+  CVTSD2SIrr = 1438,
+  CVTSD2SIrr_Int = 1439,
+  CVTSD2SSrm = 1440,
+  CVTSD2SSrm_Int = 1441,
+  CVTSD2SSrr = 1442,
+  CVTSD2SSrr_Int = 1443,
+  CVTSI2SDrm = 1444,
+  CVTSI2SDrm_Int = 1445,
+  CVTSI2SDrr = 1446,
+  CVTSI2SDrr_Int = 1447,
+  CVTSI2SSrm = 1448,
+  CVTSI2SSrm_Int = 1449,
+  CVTSI2SSrr = 1450,
+  CVTSI2SSrr_Int = 1451,
+  CVTSI642SDrm = 1452,
+  CVTSI642SDrm_Int = 1453,
+  CVTSI642SDrr = 1454,
+  CVTSI642SDrr_Int = 1455,
+  CVTSI642SSrm = 1456,
+  CVTSI642SSrm_Int = 1457,
+  CVTSI642SSrr = 1458,
+  CVTSI642SSrr_Int = 1459,
+  CVTSS2SDrm = 1460,
+  CVTSS2SDrm_Int = 1461,
+  CVTSS2SDrr = 1462,
+  CVTSS2SDrr_Int = 1463,
+  CVTSS2SI64rm = 1464,
+  CVTSS2SI64rm_Int = 1465,
+  CVTSS2SI64rr = 1466,
+  CVTSS2SI64rr_Int = 1467,
+  CVTSS2SIrm = 1468,
+  CVTSS2SIrm_Int = 1469,
+  CVTSS2SIrr = 1470,
+  CVTSS2SIrr_Int = 1471,
+  CVTTPD2DQrm = 1472,
+  CVTTPD2DQrr = 1473,
+  CVTTPS2DQrm = 1474,
+  CVTTPS2DQrr = 1475,
+  CVTTSD2SI64rm = 1476,
+  CVTTSD2SI64rm_Int = 1477,
+  CVTTSD2SI64rr = 1478,
+  CVTTSD2SI64rr_Int = 1479,
+  CVTTSD2SIrm = 1480,
+  CVTTSD2SIrm_Int = 1481,
+  CVTTSD2SIrr = 1482,
+  CVTTSD2SIrr_Int = 1483,
+  CVTTSS2SI64rm = 1484,
+  CVTTSS2SI64rm_Int = 1485,
+  CVTTSS2SI64rr = 1486,
+  CVTTSS2SI64rr_Int = 1487,
+  CVTTSS2SIrm = 1488,
+  CVTTSS2SIrm_Int = 1489,
+  CVTTSS2SIrr = 1490,
+  CVTTSS2SIrr_Int = 1491,
+  CWD = 1492,
+  CWDE = 1493,
+  DAA = 1494,
+  DAS = 1495,
+  DATA16_PREFIX = 1496,
+  DEC16m = 1497,
+  DEC16m_EVEX = 1498,
+  DEC16m_ND = 1499,
+  DEC16m_NF = 1500,
+  DEC16m_NF_ND = 1501,
+  DEC16r = 1502,
+  DEC16r_EVEX = 1503,
+  DEC16r_ND = 1504,
+  DEC16r_NF = 1505,
+  DEC16r_NF_ND = 1506,
+  DEC16r_alt = 1507,
+  DEC32m = 1508,
+  DEC32m_EVEX = 1509,
+  DEC32m_ND = 1510,
+  DEC32m_NF = 1511,
+  DEC32m_NF_ND = 1512,
+  DEC32r = 1513,
+  DEC32r_EVEX = 1514,
+  DEC32r_ND = 1515,
+  DEC32r_NF = 1516,
+  DEC32r_NF_ND = 1517,
+  DEC32r_alt = 1518,
+  DEC64m = 1519,
+  DEC64m_EVEX = 1520,
+  DEC64m_ND = 1521,
+  DEC64m_NF = 1522,
+  DEC64m_NF_ND = 1523,
+  DEC64r = 1524,
+  DEC64r_EVEX = 1525,
+  DEC64r_ND = 1526,
+  DEC64r_NF = 1527,
+  DEC64r_NF_ND = 1528,
+  DEC8m = 1529,
+  DEC8m_EVEX = 1530,
+  DEC8m_ND = 1531,
+  DEC8m_NF = 1532,
+  DEC8m_NF_ND = 1533,
+  DEC8r = 1534,
+  DEC8r_EVEX = 1535,
+  DEC8r_ND = 1536,
+  DEC8r_NF = 1537,
+  DEC8r_NF_ND = 1538,
+  DIV16m = 1539,
+  DIV16m_EVEX = 1540,
+  DIV16m_NF = 1541,
+  DIV16r = 1542,
+  DIV16r_EVEX = 1543,
+  DIV16r_NF = 1544,
+  DIV32m = 1545,
+  DIV32m_EVEX = 1546,
+  DIV32m_NF = 1547,
+  DIV32r = 1548,
+  DIV32r_EVEX = 1549,
+  DIV32r_NF = 1550,
+  DIV64m = 1551,
+  DIV64m_EVEX = 1552,
+  DIV64m_NF = 1553,
+  DIV64r = 1554,
+  DIV64r_EVEX = 1555,
+  DIV64r_NF = 1556,
+  DIV8m = 1557,
+  DIV8m_EVEX = 1558,
+  DIV8m_NF = 1559,
+  DIV8r = 1560,
+  DIV8r_EVEX = 1561,
+  DIV8r_NF = 1562,
+  DIVPDrm = 1563,
+  DIVPDrr = 1564,
+  DIVPSrm = 1565,
+  DIVPSrr = 1566,
+  DIVR_F32m = 1567,
+  DIVR_F64m = 1568,
+  DIVR_FI16m = 1569,
+  DIVR_FI32m = 1570,
+  DIVR_FPrST0 = 1571,
+  DIVR_FST0r = 1572,
+  DIVR_Fp32m = 1573,
+  DIVR_Fp64m = 1574,
+  DIVR_Fp64m32 = 1575,
+  DIVR_Fp80m32 = 1576,
+  DIVR_Fp80m64 = 1577,
+  DIVR_FpI16m32 = 1578,
+  DIVR_FpI16m64 = 1579,
+  DIVR_FpI16m80 = 1580,
+  DIVR_FpI32m32 = 1581,
+  DIVR_FpI32m64 = 1582,
+  DIVR_FpI32m80 = 1583,
+  DIVR_FrST0 = 1584,
+  DIVSDrm = 1585,
+  DIVSDrm_Int = 1586,
+  DIVSDrr = 1587,
+  DIVSDrr_Int = 1588,
+  DIVSSrm = 1589,
+  DIVSSrm_Int = 1590,
+  DIVSSrr = 1591,
+  DIVSSrr_Int = 1592,
+  DIV_F32m = 1593,
+  DIV_F64m = 1594,
+  DIV_FI16m = 1595,
+  DIV_FI32m = 1596,
+  DIV_FPrST0 = 1597,
+  DIV_FST0r = 1598,
+  DIV_Fp32 = 1599,
+  DIV_Fp32m = 1600,
+  DIV_Fp64 = 1601,
+  DIV_Fp64m = 1602,
+  DIV_Fp64m32 = 1603,
+  DIV_Fp80 = 1604,
+  DIV_Fp80m32 = 1605,
+  DIV_Fp80m64 = 1606,
+  DIV_FpI16m32 = 1607,
+  DIV_FpI16m64 = 1608,
+  DIV_FpI16m80 = 1609,
+  DIV_FpI32m32 = 1610,
+  DIV_FpI32m64 = 1611,
+  DIV_FpI32m80 = 1612,
+  DIV_FrST0 = 1613,
+  DPPDrmi = 1614,
+  DPPDrri = 1615,
+  DPPSrmi = 1616,
+  DPPSrri = 1617,
+  DS_PREFIX = 1618,
+  DYN_ALLOCA_32 = 1619,
+  DYN_ALLOCA_64 = 1620,
+  EH_RETURN = 1621,
+  EH_RETURN64 = 1622,
+  EH_SjLj_LongJmp32 = 1623,
+  EH_SjLj_LongJmp64 = 1624,
+  EH_SjLj_SetJmp32 = 1625,
+  EH_SjLj_SetJmp64 = 1626,
+  EH_SjLj_Setup = 1627,
+  ENCLS = 1628,
+  ENCLU = 1629,
+  ENCLV = 1630,
+  ENCODEKEY128 = 1631,
+  ENCODEKEY256 = 1632,
+  ENDBR32 = 1633,
+  ENDBR64 = 1634,
+  ENQCMD16 = 1635,
+  ENQCMD32 = 1636,
+  ENQCMD32_EVEX = 1637,
+  ENQCMD64 = 1638,
+  ENQCMD64_EVEX = 1639,
+  ENQCMDS16 = 1640,
+  ENQCMDS32 = 1641,
+  ENQCMDS32_EVEX = 1642,
+  ENQCMDS64 = 1643,
+  ENQCMDS64_EVEX = 1644,
+  ENTER = 1645,
+  ERETS = 1646,
+  ERETU = 1647,
+  ES_PREFIX = 1648,
+  EXTRACTPSmri = 1649,
+  EXTRACTPSrri = 1650,
+  EXTRQ = 1651,
+  EXTRQI = 1652,
+  F2XM1 = 1653,
+  FARCALL16i = 1654,
+  FARCALL16m = 1655,
+  FARCALL32i = 1656,
+  FARCALL32m = 1657,
+  FARCALL64m = 1658,
+  FARJMP16i = 1659,
+  FARJMP16m = 1660,
+  FARJMP32i = 1661,
+  FARJMP32m = 1662,
+  FARJMP64m = 1663,
+  FBLDm = 1664,
+  FBSTPm = 1665,
+  FCOM32m = 1666,
+  FCOM64m = 1667,
+  FCOMP32m = 1668,
+  FCOMP64m = 1669,
+  FCOMPP = 1670,
+  FCOS = 1671,
+  FDECSTP = 1672,
+  FEMMS = 1673,
+  FFREE = 1674,
+  FFREEP = 1675,
+  FICOM16m = 1676,
+  FICOM32m = 1677,
+  FICOMP16m = 1678,
+  FICOMP32m = 1679,
+  FINCSTP = 1680,
+  FLDCW16m = 1681,
+  FLDENVm = 1682,
+  FLDL2E = 1683,
+  FLDL2T = 1684,
+  FLDLG2 = 1685,
+  FLDLN2 = 1686,
+  FLDPI = 1687,
+  FNCLEX = 1688,
+  FNINIT = 1689,
+  FNOP = 1690,
+  FNSTCW16m = 1691,
+  FNSTSW16r = 1692,
+  FNSTSWm = 1693,
+  FP32_TO_INT16_IN_MEM = 1694,
+  FP32_TO_INT32_IN_MEM = 1695,
+  FP32_TO_INT64_IN_MEM = 1696,
+  FP64_TO_INT16_IN_MEM = 1697,
+  FP64_TO_INT32_IN_MEM = 1698,
+  FP64_TO_INT64_IN_MEM = 1699,
+  FP80_ADDm32 = 1700,
+  FP80_ADDr = 1701,
+  FP80_TO_INT16_IN_MEM = 1702,
+  FP80_TO_INT32_IN_MEM = 1703,
+  FP80_TO_INT64_IN_MEM = 1704,
+  FPATAN = 1705,
+  FPREM = 1706,
+  FPREM1 = 1707,
+  FPTAN = 1708,
+  FRNDINT = 1709,
+  FRSTORm = 1710,
+  FSAVEm = 1711,
+  FSCALE_ = 1712,
+  FSIN = 1713,
+  FSINCOS = 1714,
+  FSTENVm = 1715,
+  FS_PREFIX = 1716,
+  FXRSTOR = 1717,
+  FXRSTOR64 = 1718,
+  FXSAVE = 1719,
+  FXSAVE64 = 1720,
+  FXTRACT = 1721,
+  FYL2X = 1722,
+  FYL2XP1 = 1723,
+  GETSEC = 1724,
+  GF2P8AFFINEINVQBrmi = 1725,
+  GF2P8AFFINEINVQBrri = 1726,
+  GF2P8AFFINEQBrmi = 1727,
+  GF2P8AFFINEQBrri = 1728,
+  GF2P8MULBrm = 1729,
+  GF2P8MULBrr = 1730,
+  GS_PREFIX = 1731,
+  HADDPDrm = 1732,
+  HADDPDrr = 1733,
+  HADDPSrm = 1734,
+  HADDPSrr = 1735,
+  HLT = 1736,
+  HRESET = 1737,
+  HSUBPDrm = 1738,
+  HSUBPDrr = 1739,
+  HSUBPSrm = 1740,
+  HSUBPSrr = 1741,
+  IDIV16m = 1742,
+  IDIV16m_EVEX = 1743,
+  IDIV16m_NF = 1744,
+  IDIV16r = 1745,
+  IDIV16r_EVEX = 1746,
+  IDIV16r_NF = 1747,
+  IDIV32m = 1748,
+  IDIV32m_EVEX = 1749,
+  IDIV32m_NF = 1750,
+  IDIV32r = 1751,
+  IDIV32r_EVEX = 1752,
+  IDIV32r_NF = 1753,
+  IDIV64m = 1754,
+  IDIV64m_EVEX = 1755,
+  IDIV64m_NF = 1756,
+  IDIV64r = 1757,
+  IDIV64r_EVEX = 1758,
+  IDIV64r_NF = 1759,
+  IDIV8m = 1760,
+  IDIV8m_EVEX = 1761,
+  IDIV8m_NF = 1762,
+  IDIV8r = 1763,
+  IDIV8r_EVEX = 1764,
+  IDIV8r_NF = 1765,
+  ILD_F16m = 1766,
+  ILD_F32m = 1767,
+  ILD_F64m = 1768,
+  ILD_Fp16m32 = 1769,
+  ILD_Fp16m64 = 1770,
+  ILD_Fp16m80 = 1771,
+  ILD_Fp32m32 = 1772,
+  ILD_Fp32m64 = 1773,
+  ILD_Fp32m80 = 1774,
+  ILD_Fp64m32 = 1775,
+  ILD_Fp64m64 = 1776,
+  ILD_Fp64m80 = 1777,
+  IMUL16m = 1778,
+  IMUL16m_EVEX = 1779,
+  IMUL16m_NF = 1780,
+  IMUL16r = 1781,
+  IMUL16r_EVEX = 1782,
+  IMUL16r_NF = 1783,
+  IMUL16rm = 1784,
+  IMUL16rm_EVEX = 1785,
+  IMUL16rm_ND = 1786,
+  IMUL16rm_NF = 1787,
+  IMUL16rm_NF_ND = 1788,
+  IMUL16rmi = 1789,
+  IMUL16rmi8 = 1790,
+  IMUL16rmi8_EVEX = 1791,
+  IMUL16rmi8_NF = 1792,
+  IMUL16rmi_EVEX = 1793,
+  IMUL16rmi_NF = 1794,
+  IMUL16rr = 1795,
+  IMUL16rr_EVEX = 1796,
+  IMUL16rr_ND = 1797,
+  IMUL16rr_NF = 1798,
+  IMUL16rr_NF_ND = 1799,
+  IMUL16rri = 1800,
+  IMUL16rri8 = 1801,
+  IMUL16rri8_EVEX = 1802,
+  IMUL16rri8_NF = 1803,
+  IMUL16rri_EVEX = 1804,
+  IMUL16rri_NF = 1805,
+  IMUL32m = 1806,
+  IMUL32m_EVEX = 1807,
+  IMUL32m_NF = 1808,
+  IMUL32r = 1809,
+  IMUL32r_EVEX = 1810,
+  IMUL32r_NF = 1811,
+  IMUL32rm = 1812,
+  IMUL32rm_EVEX = 1813,
+  IMUL32rm_ND = 1814,
+  IMUL32rm_NF = 1815,
+  IMUL32rm_NF_ND = 1816,
+  IMUL32rmi = 1817,
+  IMUL32rmi8 = 1818,
+  IMUL32rmi8_EVEX = 1819,
+  IMUL32rmi8_NF = 1820,
+  IMUL32rmi_EVEX = 1821,
+  IMUL32rmi_NF = 1822,
+  IMUL32rr = 1823,
+  IMUL32rr_EVEX = 1824,
+  IMUL32rr_ND = 1825,
+  IMUL32rr_NF = 1826,
+  IMUL32rr_NF_ND = 1827,
+  IMUL32rri = 1828,
+  IMUL32rri8 = 1829,
+  IMUL32rri8_EVEX = 1830,
+  IMUL32rri8_NF = 1831,
+  IMUL32rri_EVEX = 1832,
+  IMUL32rri_NF = 1833,
+  IMUL64m = 1834,
+  IMUL64m_EVEX = 1835,
+  IMUL64m_NF = 1836,
+  IMUL64r = 1837,
+  IMUL64r_EVEX = 1838,
+  IMUL64r_NF = 1839,
+  IMUL64rm = 1840,
+  IMUL64rm_EVEX = 1841,
+  IMUL64rm_ND = 1842,
+  IMUL64rm_NF = 1843,
+  IMUL64rm_NF_ND = 1844,
+  IMUL64rmi32 = 1845,
+  IMUL64rmi32_EVEX = 1846,
+  IMUL64rmi32_NF = 1847,
+  IMUL64rmi8 = 1848,
+  IMUL64rmi8_EVEX = 1849,
+  IMUL64rmi8_NF = 1850,
+  IMUL64rr = 1851,
+  IMUL64rr_EVEX = 1852,
+  IMUL64rr_ND = 1853,
+  IMUL64rr_NF = 1854,
+  IMUL64rr_NF_ND = 1855,
+  IMUL64rri32 = 1856,
+  IMUL64rri32_EVEX = 1857,
+  IMUL64rri32_NF = 1858,
+  IMUL64rri8 = 1859,
+  IMUL64rri8_EVEX = 1860,
+  IMUL64rri8_NF = 1861,
+  IMUL8m = 1862,
+  IMUL8m_EVEX = 1863,
+  IMUL8m_NF = 1864,
+  IMUL8r = 1865,
+  IMUL8r_EVEX = 1866,
+  IMUL8r_NF = 1867,
+  IMULZU16rmi = 1868,
+  IMULZU16rmi8 = 1869,
+  IMULZU16rri = 1870,
+  IMULZU16rri8 = 1871,
+  IMULZU32rmi = 1872,
+  IMULZU32rmi8 = 1873,
+  IMULZU32rri = 1874,
+  IMULZU32rri8 = 1875,
+  IMULZU64rmi32 = 1876,
+  IMULZU64rmi8 = 1877,
+  IMULZU64rri32 = 1878,
+  IMULZU64rri8 = 1879,
+  IN16ri = 1880,
+  IN16rr = 1881,
+  IN32ri = 1882,
+  IN32rr = 1883,
+  IN8ri = 1884,
+  IN8rr = 1885,
+  INC16m = 1886,
+  INC16m_EVEX = 1887,
+  INC16m_ND = 1888,
+  INC16m_NF = 1889,
+  INC16m_NF_ND = 1890,
+  INC16r = 1891,
+  INC16r_EVEX = 1892,
+  INC16r_ND = 1893,
+  INC16r_NF = 1894,
+  INC16r_NF_ND = 1895,
+  INC16r_alt = 1896,
+  INC32m = 1897,
+  INC32m_EVEX = 1898,
+  INC32m_ND = 1899,
+  INC32m_NF = 1900,
+  INC32m_NF_ND = 1901,
+  INC32r = 1902,
+  INC32r_EVEX = 1903,
+  INC32r_ND = 1904,
+  INC32r_NF = 1905,
+  INC32r_NF_ND = 1906,
+  INC32r_alt = 1907,
+  INC64m = 1908,
+  INC64m_EVEX = 1909,
+  INC64m_ND = 1910,
+  INC64m_NF = 1911,
+  INC64m_NF_ND = 1912,
+  INC64r = 1913,
+  INC64r_EVEX = 1914,
+  INC64r_ND = 1915,
+  INC64r_NF = 1916,
+  INC64r_NF_ND = 1917,
+  INC8m = 1918,
+  INC8m_EVEX = 1919,
+  INC8m_ND = 1920,
+  INC8m_NF = 1921,
+  INC8m_NF_ND = 1922,
+  INC8r = 1923,
+  INC8r_EVEX = 1924,
+  INC8r_ND = 1925,
+  INC8r_NF = 1926,
+  INC8r_NF_ND = 1927,
+  INCSSPD = 1928,
+  INCSSPQ = 1929,
+  INSB = 1930,
+  INSERTPSrmi = 1931,
+  INSERTPSrri = 1932,
+  INSERTQ = 1933,
+  INSERTQI = 1934,
+  INSL = 1935,
+  INSW = 1936,
+  INT = 1937,
+  INT3 = 1938,
+  INTO = 1939,
+  INVD = 1940,
+  INVEPT32 = 1941,
+  INVEPT64 = 1942,
+  INVEPT64_EVEX = 1943,
+  INVLPG = 1944,
+  INVLPGA32 = 1945,
+  INVLPGA64 = 1946,
+  INVLPGB32 = 1947,
+  INVLPGB64 = 1948,
+  INVPCID32 = 1949,
+  INVPCID64 = 1950,
+  INVPCID64_EVEX = 1951,
+  INVVPID32 = 1952,
+  INVVPID64 = 1953,
+  INVVPID64_EVEX = 1954,
+  IRET = 1955,
+  IRET16 = 1956,
+  IRET32 = 1957,
+  IRET64 = 1958,
+  ISTT_FP16m = 1959,
+  ISTT_FP32m = 1960,
+  ISTT_FP64m = 1961,
+  ISTT_Fp16m32 = 1962,
+  ISTT_Fp16m64 = 1963,
+  ISTT_Fp16m80 = 1964,
+  ISTT_Fp32m32 = 1965,
+  ISTT_Fp32m64 = 1966,
+  ISTT_Fp32m80 = 1967,
+  ISTT_Fp64m32 = 1968,
+  ISTT_Fp64m64 = 1969,
+  ISTT_Fp64m80 = 1970,
+  IST_F16m = 1971,
+  IST_F32m = 1972,
+  IST_FP16m = 1973,
+  IST_FP32m = 1974,
+  IST_FP64m = 1975,
+  IST_Fp16m32 = 1976,
+  IST_Fp16m64 = 1977,
+  IST_Fp16m80 = 1978,
+  IST_Fp32m32 = 1979,
+  IST_Fp32m64 = 1980,
+  IST_Fp32m80 = 1981,
+  IST_Fp64m32 = 1982,
+  IST_Fp64m64 = 1983,
+  IST_Fp64m80 = 1984,
+  Int_eh_sjlj_setup_dispatch = 1985,
+  JCC_1 = 1986,
+  JCC_2 = 1987,
+  JCC_4 = 1988,
+  JCXZ = 1989,
+  JECXZ = 1990,
+  JMP16m = 1991,
+  JMP16m_NT = 1992,
+  JMP16r = 1993,
+  JMP16r_NT = 1994,
+  JMP32m = 1995,
+  JMP32m_NT = 1996,
+  JMP32r = 1997,
+  JMP32r_NT = 1998,
+  JMP64m = 1999,
+  JMP64m_NT = 2000,
+  JMP64m_REX = 2001,
+  JMP64r = 2002,
+  JMP64r_NT = 2003,
+  JMP64r_REX = 2004,
+  JMPABS64i = 2005,
+  JMP_1 = 2006,
+  JMP_2 = 2007,
+  JMP_4 = 2008,
+  JRCXZ = 2009,
+  KADDBkk = 2010,
+  KADDDkk = 2011,
+  KADDQkk = 2012,
+  KADDWkk = 2013,
+  KANDBkk = 2014,
+  KANDDkk = 2015,
+  KANDNBkk = 2016,
+  KANDNDkk = 2017,
+  KANDNQkk = 2018,
+  KANDNWkk = 2019,
+  KANDQkk = 2020,
+  KANDWkk = 2021,
+  KCFI_CHECK = 2022,
+  KMOVBkk = 2023,
+  KMOVBkk_EVEX = 2024,
+  KMOVBkm = 2025,
+  KMOVBkm_EVEX = 2026,
+  KMOVBkr = 2027,
+  KMOVBkr_EVEX = 2028,
+  KMOVBmk = 2029,
+  KMOVBmk_EVEX = 2030,
+  KMOVBrk = 2031,
+  KMOVBrk_EVEX = 2032,
+  KMOVDkk = 2033,
+  KMOVDkk_EVEX = 2034,
+  KMOVDkm = 2035,
+  KMOVDkm_EVEX = 2036,
+  KMOVDkr = 2037,
+  KMOVDkr_EVEX = 2038,
+  KMOVDmk = 2039,
+  KMOVDmk_EVEX = 2040,
+  KMOVDrk = 2041,
+  KMOVDrk_EVEX = 2042,
+  KMOVQkk = 2043,
+  KMOVQkk_EVEX = 2044,
+  KMOVQkm = 2045,
+  KMOVQkm_EVEX = 2046,
+  KMOVQkr = 2047,
+  KMOVQkr_EVEX = 2048,
+  KMOVQmk = 2049,
+  KMOVQmk_EVEX = 2050,
+  KMOVQrk = 2051,
+  KMOVQrk_EVEX = 2052,
+  KMOVWkk = 2053,
+  KMOVWkk_EVEX = 2054,
+  KMOVWkm = 2055,
+  KMOVWkm_EVEX = 2056,
+  KMOVWkr = 2057,
+  KMOVWkr_EVEX = 2058,
+  KMOVWmk = 2059,
+  KMOVWmk_EVEX = 2060,
+  KMOVWrk = 2061,
+  KMOVWrk_EVEX = 2062,
+  KNOTBkk = 2063,
+  KNOTDkk = 2064,
+  KNOTQkk = 2065,
+  KNOTWkk = 2066,
+  KORBkk = 2067,
+  KORDkk = 2068,
+  KORQkk = 2069,
+  KORTESTBkk = 2070,
+  KORTESTDkk = 2071,
+  KORTESTQkk = 2072,
+  KORTESTWkk = 2073,
+  KORWkk = 2074,
+  KSHIFTLBki = 2075,
+  KSHIFTLDki = 2076,
+  KSHIFTLQki = 2077,
+  KSHIFTLWki = 2078,
+  KSHIFTRBki = 2079,
+  KSHIFTRDki = 2080,
+  KSHIFTRQki = 2081,
+  KSHIFTRWki = 2082,
+  KTESTBkk = 2083,
+  KTESTDkk = 2084,
+  KTESTQkk = 2085,
+  KTESTWkk = 2086,
+  KUNPCKBWkk = 2087,
+  KUNPCKDQkk = 2088,
+  KUNPCKWDkk = 2089,
+  KXNORBkk = 2090,
+  KXNORDkk = 2091,
+  KXNORQkk = 2092,
+  KXNORWkk = 2093,
+  KXORBkk = 2094,
+  KXORDkk = 2095,
+  KXORQkk = 2096,
+  KXORWkk = 2097,
+  LAHF = 2098,
+  LAR16rm = 2099,
+  LAR16rr = 2100,
+  LAR32rm = 2101,
+  LAR32rr = 2102,
+  LAR64rm = 2103,
+  LAR64rr = 2104,
+  LCMPXCHG16 = 2105,
+  LCMPXCHG16B = 2106,
+  LCMPXCHG32 = 2107,
+  LCMPXCHG64 = 2108,
+  LCMPXCHG8 = 2109,
+  LCMPXCHG8B = 2110,
+  LDDQUrm = 2111,
+  LDMXCSR = 2112,
+  LDS16rm = 2113,
+  LDS32rm = 2114,
+  LDTILECFG = 2115,
+  LDTILECFG_EVEX = 2116,
+  LD_F0 = 2117,
+  LD_F1 = 2118,
+  LD_F32m = 2119,
+  LD_F64m = 2120,
+  LD_F80m = 2121,
+  LD_Fp032 = 2122,
+  LD_Fp064 = 2123,
+  LD_Fp080 = 2124,
+  LD_Fp132 = 2125,
+  LD_Fp164 = 2126,
+  LD_Fp180 = 2127,
+  LD_Fp32m = 2128,
+  LD_Fp32m64 = 2129,
+  LD_Fp32m80 = 2130,
+  LD_Fp64m = 2131,
+  LD_Fp64m80 = 2132,
+  LD_Fp80m = 2133,
+  LD_Frr = 2134,
+  LEA16r = 2135,
+  LEA32r = 2136,
+  LEA64_16r = 2137,
+  LEA64_32r = 2138,
+  LEA64_8r = 2139,
+  LEA64r = 2140,
+  LEAVE = 2141,
+  LEAVE64 = 2142,
+  LES16rm = 2143,
+  LES32rm = 2144,
+  LFENCE = 2145,
+  LFS16rm = 2146,
+  LFS32rm = 2147,
+  LFS64rm = 2148,
+  LGDT16m = 2149,
+  LGDT32m = 2150,
+  LGDT64m = 2151,
+  LGS16rm = 2152,
+  LGS32rm = 2153,
+  LGS64rm = 2154,
+  LIDT16m = 2155,
+  LIDT32m = 2156,
+  LIDT64m = 2157,
+  LKGS16m = 2158,
+  LKGS16r = 2159,
+  LLDT16m = 2160,
+  LLDT16r = 2161,
+  LLWPCB = 2162,
+  LLWPCB64 = 2163,
+  LMSW16m = 2164,
+  LMSW16r = 2165,
+  LOADIWKEY = 2166,
+  LOCK_ADD16mi = 2167,
+  LOCK_ADD16mi8 = 2168,
+  LOCK_ADD16mr = 2169,
+  LOCK_ADD32mi = 2170,
+  LOCK_ADD32mi8 = 2171,
+  LOCK_ADD32mr = 2172,
+  LOCK_ADD64mi32 = 2173,
+  LOCK_ADD64mi8 = 2174,
+  LOCK_ADD64mr = 2175,
+  LOCK_ADD8mi = 2176,
+  LOCK_ADD8mr = 2177,
+  LOCK_AND16mi = 2178,
+  LOCK_AND16mi8 = 2179,
+  LOCK_AND16mr = 2180,
+  LOCK_AND32mi = 2181,
+  LOCK_AND32mi8 = 2182,
+  LOCK_AND32mr = 2183,
+  LOCK_AND64mi32 = 2184,
+  LOCK_AND64mi8 = 2185,
+  LOCK_AND64mr = 2186,
+  LOCK_AND8mi = 2187,
+  LOCK_AND8mr = 2188,
+  LOCK_BTC16m = 2189,
+  LOCK_BTC32m = 2190,
+  LOCK_BTC64m = 2191,
+  LOCK_BTC_RM16rm = 2192,
+  LOCK_BTC_RM32rm = 2193,
+  LOCK_BTC_RM64rm = 2194,
+  LOCK_BTR16m = 2195,
+  LOCK_BTR32m = 2196,
+  LOCK_BTR64m = 2197,
+  LOCK_BTR_RM16rm = 2198,
+  LOCK_BTR_RM32rm = 2199,
+  LOCK_BTR_RM64rm = 2200,
+  LOCK_BTS16m = 2201,
+  LOCK_BTS32m = 2202,
+  LOCK_BTS64m = 2203,
+  LOCK_BTS_RM16rm = 2204,
+  LOCK_BTS_RM32rm = 2205,
+  LOCK_BTS_RM64rm = 2206,
+  LOCK_DEC16m = 2207,
+  LOCK_DEC32m = 2208,
+  LOCK_DEC64m = 2209,
+  LOCK_DEC8m = 2210,
+  LOCK_INC16m = 2211,
+  LOCK_INC32m = 2212,
+  LOCK_INC64m = 2213,
+  LOCK_INC8m = 2214,
+  LOCK_OR16mi = 2215,
+  LOCK_OR16mi8 = 2216,
+  LOCK_OR16mr = 2217,
+  LOCK_OR32mi = 2218,
+  LOCK_OR32mi8 = 2219,
+  LOCK_OR32mr = 2220,
+  LOCK_OR64mi32 = 2221,
+  LOCK_OR64mi8 = 2222,
+  LOCK_OR64mr = 2223,
+  LOCK_OR8mi = 2224,
+  LOCK_OR8mr = 2225,
+  LOCK_PREFIX = 2226,
+  LOCK_SUB16mi = 2227,
+  LOCK_SUB16mi8 = 2228,
+  LOCK_SUB16mr = 2229,
+  LOCK_SUB32mi = 2230,
+  LOCK_SUB32mi8 = 2231,
+  LOCK_SUB32mr = 2232,
+  LOCK_SUB64mi32 = 2233,
+  LOCK_SUB64mi8 = 2234,
+  LOCK_SUB64mr = 2235,
+  LOCK_SUB8mi = 2236,
+  LOCK_SUB8mr = 2237,
+  LOCK_XOR16mi = 2238,
+  LOCK_XOR16mi8 = 2239,
+  LOCK_XOR16mr = 2240,
+  LOCK_XOR32mi = 2241,
+  LOCK_XOR32mi8 = 2242,
+  LOCK_XOR32mr = 2243,
+  LOCK_XOR64mi32 = 2244,
+  LOCK_XOR64mi8 = 2245,
+  LOCK_XOR64mr = 2246,
+  LOCK_XOR8mi = 2247,
+  LOCK_XOR8mr = 2248,
+  LODSB = 2249,
+  LODSL = 2250,
+  LODSQ = 2251,
+  LODSW = 2252,
+  LOOP = 2253,
+  LOOPE = 2254,
+  LOOPNE = 2255,
+  LRET16 = 2256,
+  LRET32 = 2257,
+  LRET64 = 2258,
+  LRETI16 = 2259,
+  LRETI32 = 2260,
+  LRETI64 = 2261,
+  LSL16rm = 2262,
+  LSL16rr = 2263,
+  LSL32rm = 2264,
+  LSL32rr = 2265,
+  LSL64rm = 2266,
+  LSL64rr = 2267,
+  LSS16rm = 2268,
+  LSS32rm = 2269,
+  LSS64rm = 2270,
+  LTRm = 2271,
+  LTRr = 2272,
+  LWPINS32rmi = 2273,
+  LWPINS32rri = 2274,
+  LWPINS64rmi = 2275,
+  LWPINS64rri = 2276,
+  LWPVAL32rmi = 2277,
+  LWPVAL32rri = 2278,
+  LWPVAL64rmi = 2279,
+  LWPVAL64rri = 2280,
+  LXADD16 = 2281,
+  LXADD32 = 2282,
+  LXADD64 = 2283,
+  LXADD8 = 2284,
+  LZCNT16rm = 2285,
+  LZCNT16rm_EVEX = 2286,
+  LZCNT16rm_NF = 2287,
+  LZCNT16rr = 2288,
+  LZCNT16rr_EVEX = 2289,
+  LZCNT16rr_NF = 2290,
+  LZCNT32rm = 2291,
+  LZCNT32rm_EVEX = 2292,
+  LZCNT32rm_NF = 2293,
+  LZCNT32rr = 2294,
+  LZCNT32rr_EVEX = 2295,
+  LZCNT32rr_NF = 2296,
+  LZCNT64rm = 2297,
+  LZCNT64rm_EVEX = 2298,
+  LZCNT64rm_NF = 2299,
+  LZCNT64rr = 2300,
+  LZCNT64rr_EVEX = 2301,
+  LZCNT64rr_NF = 2302,
+  MASKMOVDQU = 2303,
+  MASKMOVDQU64 = 2304,
+  MASKPAIR16LOAD = 2305,
+  MASKPAIR16STORE = 2306,
+  MAXCPDrm = 2307,
+  MAXCPDrr = 2308,
+  MAXCPSrm = 2309,
+  MAXCPSrr = 2310,
+  MAXCSDrm = 2311,
+  MAXCSDrr = 2312,
+  MAXCSSrm = 2313,
+  MAXCSSrr = 2314,
+  MAXPDrm = 2315,
+  MAXPDrr = 2316,
+  MAXPSrm = 2317,
+  MAXPSrr = 2318,
+  MAXSDrm = 2319,
+  MAXSDrm_Int = 2320,
+  MAXSDrr = 2321,
+  MAXSDrr_Int = 2322,
+  MAXSSrm = 2323,
+  MAXSSrm_Int = 2324,
+  MAXSSrr = 2325,
+  MAXSSrr_Int = 2326,
+  MFENCE = 2327,
+  MINCPDrm = 2328,
+  MINCPDrr = 2329,
+  MINCPSrm = 2330,
+  MINCPSrr = 2331,
+  MINCSDrm = 2332,
+  MINCSDrr = 2333,
+  MINCSSrm = 2334,
+  MINCSSrr = 2335,
+  MINPDrm = 2336,
+  MINPDrr = 2337,
+  MINPSrm = 2338,
+  MINPSrr = 2339,
+  MINSDrm = 2340,
+  MINSDrm_Int = 2341,
+  MINSDrr = 2342,
+  MINSDrr_Int = 2343,
+  MINSSrm = 2344,
+  MINSSrm_Int = 2345,
+  MINSSrr = 2346,
+  MINSSrr_Int = 2347,
+  MMX_CVTPD2PIrm = 2348,
+  MMX_CVTPD2PIrr = 2349,
+  MMX_CVTPI2PDrm = 2350,
+  MMX_CVTPI2PDrr = 2351,
+  MMX_CVTPI2PSrm = 2352,
+  MMX_CVTPI2PSrr = 2353,
+  MMX_CVTPS2PIrm = 2354,
+  MMX_CVTPS2PIrr = 2355,
+  MMX_CVTTPD2PIrm = 2356,
+  MMX_CVTTPD2PIrr = 2357,
+  MMX_CVTTPS2PIrm = 2358,
+  MMX_CVTTPS2PIrr = 2359,
+  MMX_EMMS = 2360,
+  MMX_MASKMOVQ = 2361,
+  MMX_MASKMOVQ64 = 2362,
+  MMX_MOVD64from64mr = 2363,
+  MMX_MOVD64from64rr = 2364,
+  MMX_MOVD64grr = 2365,
+  MMX_MOVD64mr = 2366,
+  MMX_MOVD64rm = 2367,
+  MMX_MOVD64rr = 2368,
+  MMX_MOVD64to64rm = 2369,
+  MMX_MOVD64to64rr = 2370,
+  MMX_MOVDQ2Qrr = 2371,
+  MMX_MOVFR642Qrr = 2372,
+  MMX_MOVNTQmr = 2373,
+  MMX_MOVQ2DQrr = 2374,
+  MMX_MOVQ2FR64rr = 2375,
+  MMX_MOVQ64mr = 2376,
+  MMX_MOVQ64rm = 2377,
+  MMX_MOVQ64rr = 2378,
+  MMX_MOVQ64rr_REV = 2379,
+  MMX_PABSBrm = 2380,
+  MMX_PABSBrr = 2381,
+  MMX_PABSDrm = 2382,
+  MMX_PABSDrr = 2383,
+  MMX_PABSWrm = 2384,
+  MMX_PABSWrr = 2385,
+  MMX_PACKSSDWrm = 2386,
+  MMX_PACKSSDWrr = 2387,
+  MMX_PACKSSWBrm = 2388,
+  MMX_PACKSSWBrr = 2389,
+  MMX_PACKUSWBrm = 2390,
+  MMX_PACKUSWBrr = 2391,
+  MMX_PADDBrm = 2392,
+  MMX_PADDBrr = 2393,
+  MMX_PADDDrm = 2394,
+  MMX_PADDDrr = 2395,
+  MMX_PADDQrm = 2396,
+  MMX_PADDQrr = 2397,
+  MMX_PADDSBrm = 2398,
+  MMX_PADDSBrr = 2399,
+  MMX_PADDSWrm = 2400,
+  MMX_PADDSWrr = 2401,
+  MMX_PADDUSBrm = 2402,
+  MMX_PADDUSBrr = 2403,
+  MMX_PADDUSWrm = 2404,
+  MMX_PADDUSWrr = 2405,
+  MMX_PADDWrm = 2406,
+  MMX_PADDWrr = 2407,
+  MMX_PALIGNRrmi = 2408,
+  MMX_PALIGNRrri = 2409,
+  MMX_PANDNrm = 2410,
+  MMX_PANDNrr = 2411,
+  MMX_PANDrm = 2412,
+  MMX_PANDrr = 2413,
+  MMX_PAVGBrm = 2414,
+  MMX_PAVGBrr = 2415,
+  MMX_PAVGWrm = 2416,
+  MMX_PAVGWrr = 2417,
+  MMX_PCMPEQBrm = 2418,
+  MMX_PCMPEQBrr = 2419,
+  MMX_PCMPEQDrm = 2420,
+  MMX_PCMPEQDrr = 2421,
+  MMX_PCMPEQWrm = 2422,
+  MMX_PCMPEQWrr = 2423,
+  MMX_PCMPGTBrm = 2424,
+  MMX_PCMPGTBrr = 2425,
+  MMX_PCMPGTDrm = 2426,
+  MMX_PCMPGTDrr = 2427,
+  MMX_PCMPGTWrm = 2428,
+  MMX_PCMPGTWrr = 2429,
+  MMX_PEXTRWrri = 2430,
+  MMX_PHADDDrm = 2431,
+  MMX_PHADDDrr = 2432,
+  MMX_PHADDSWrm = 2433,
+  MMX_PHADDSWrr = 2434,
+  MMX_PHADDWrm = 2435,
+  MMX_PHADDWrr = 2436,
+  MMX_PHSUBDrm = 2437,
+  MMX_PHSUBDrr = 2438,
+  MMX_PHSUBSWrm = 2439,
+  MMX_PHSUBSWrr = 2440,
+  MMX_PHSUBWrm = 2441,
+  MMX_PHSUBWrr = 2442,
+  MMX_PINSRWrmi = 2443,
+  MMX_PINSRWrri = 2444,
+  MMX_PMADDUBSWrm = 2445,
+  MMX_PMADDUBSWrr = 2446,
+  MMX_PMADDWDrm = 2447,
+  MMX_PMADDWDrr = 2448,
+  MMX_PMAXSWrm = 2449,
+  MMX_PMAXSWrr = 2450,
+  MMX_PMAXUBrm = 2451,
+  MMX_PMAXUBrr = 2452,
+  MMX_PMINSWrm = 2453,
+  MMX_PMINSWrr = 2454,
+  MMX_PMINUBrm = 2455,
+  MMX_PMINUBrr = 2456,
+  MMX_PMOVMSKBrr = 2457,
+  MMX_PMULHRSWrm = 2458,
+  MMX_PMULHRSWrr = 2459,
+  MMX_PMULHUWrm = 2460,
+  MMX_PMULHUWrr = 2461,
+  MMX_PMULHWrm = 2462,
+  MMX_PMULHWrr = 2463,
+  MMX_PMULLWrm = 2464,
+  MMX_PMULLWrr = 2465,
+  MMX_PMULUDQrm = 2466,
+  MMX_PMULUDQrr = 2467,
+  MMX_PORrm = 2468,
+  MMX_PORrr = 2469,
+  MMX_PSADBWrm = 2470,
+  MMX_PSADBWrr = 2471,
+  MMX_PSHUFBrm = 2472,
+  MMX_PSHUFBrr = 2473,
+  MMX_PSHUFWmi = 2474,
+  MMX_PSHUFWri = 2475,
+  MMX_PSIGNBrm = 2476,
+  MMX_PSIGNBrr = 2477,
+  MMX_PSIGNDrm = 2478,
+  MMX_PSIGNDrr = 2479,
+  MMX_PSIGNWrm = 2480,
+  MMX_PSIGNWrr = 2481,
+  MMX_PSLLDri = 2482,
+  MMX_PSLLDrm = 2483,
+  MMX_PSLLDrr = 2484,
+  MMX_PSLLQri = 2485,
+  MMX_PSLLQrm = 2486,
+  MMX_PSLLQrr = 2487,
+  MMX_PSLLWri = 2488,
+  MMX_PSLLWrm = 2489,
+  MMX_PSLLWrr = 2490,
+  MMX_PSRADri = 2491,
+  MMX_PSRADrm = 2492,
+  MMX_PSRADrr = 2493,
+  MMX_PSRAWri = 2494,
+  MMX_PSRAWrm = 2495,
+  MMX_PSRAWrr = 2496,
+  MMX_PSRLDri = 2497,
+  MMX_PSRLDrm = 2498,
+  MMX_PSRLDrr = 2499,
+  MMX_PSRLQri = 2500,
+  MMX_PSRLQrm = 2501,
+  MMX_PSRLQrr = 2502,
+  MMX_PSRLWri = 2503,
+  MMX_PSRLWrm = 2504,
+  MMX_PSRLWrr = 2505,
+  MMX_PSUBBrm = 2506,
+  MMX_PSUBBrr = 2507,
+  MMX_PSUBDrm = 2508,
+  MMX_PSUBDrr = 2509,
+  MMX_PSUBQrm = 2510,
+  MMX_PSUBQrr = 2511,
+  MMX_PSUBSBrm = 2512,
+  MMX_PSUBSBrr = 2513,
+  MMX_PSUBSWrm = 2514,
+  MMX_PSUBSWrr = 2515,
+  MMX_PSUBUSBrm = 2516,
+  MMX_PSUBUSBrr = 2517,
+  MMX_PSUBUSWrm = 2518,
+  MMX_PSUBUSWrr = 2519,
+  MMX_PSUBWrm = 2520,
+  MMX_PSUBWrr = 2521,
+  MMX_PUNPCKHBWrm = 2522,
+  MMX_PUNPCKHBWrr = 2523,
+  MMX_PUNPCKHDQrm = 2524,
+  MMX_PUNPCKHDQrr = 2525,
+  MMX_PUNPCKHWDrm = 2526,
+  MMX_PUNPCKHWDrr = 2527,
+  MMX_PUNPCKLBWrm = 2528,
+  MMX_PUNPCKLBWrr = 2529,
+  MMX_PUNPCKLDQrm = 2530,
+  MMX_PUNPCKLDQrr = 2531,
+  MMX_PUNPCKLWDrm = 2532,
+  MMX_PUNPCKLWDrr = 2533,
+  MMX_PXORrm = 2534,
+  MMX_PXORrr = 2535,
+  MONITOR32rrr = 2536,
+  MONITOR64rrr = 2537,
+  MONITORX32rrr = 2538,
+  MONITORX64rrr = 2539,
+  MONTMUL = 2540,
+  MOV16ao16 = 2541,
+  MOV16ao32 = 2542,
+  MOV16ao64 = 2543,
+  MOV16mi = 2544,
+  MOV16mr = 2545,
+  MOV16ms = 2546,
+  MOV16o16a = 2547,
+  MOV16o32a = 2548,
+  MOV16o64a = 2549,
+  MOV16ri = 2550,
+  MOV16ri_alt = 2551,
+  MOV16rm = 2552,
+  MOV16rr = 2553,
+  MOV16rr_REV = 2554,
+  MOV16rs = 2555,
+  MOV16sm = 2556,
+  MOV16sr = 2557,
+  MOV32ao16 = 2558,
+  MOV32ao32 = 2559,
+  MOV32ao64 = 2560,
+  MOV32cr = 2561,
+  MOV32dr = 2562,
+  MOV32mi = 2563,
+  MOV32mr = 2564,
+  MOV32o16a = 2565,
+  MOV32o32a = 2566,
+  MOV32o64a = 2567,
+  MOV32rc = 2568,
+  MOV32rd = 2569,
+  MOV32ri = 2570,
+  MOV32ri_alt = 2571,
+  MOV32rm = 2572,
+  MOV32rr = 2573,
+  MOV32rr_REV = 2574,
+  MOV32rs = 2575,
+  MOV32sr = 2576,
+  MOV64ao32 = 2577,
+  MOV64ao64 = 2578,
+  MOV64cr = 2579,
+  MOV64dr = 2580,
+  MOV64mi32 = 2581,
+  MOV64mr = 2582,
+  MOV64o32a = 2583,
+  MOV64o64a = 2584,
+  MOV64rc = 2585,
+  MOV64rd = 2586,
+  MOV64ri = 2587,
+  MOV64ri32 = 2588,
+  MOV64rm = 2589,
+  MOV64rr = 2590,
+  MOV64rr_REV = 2591,
+  MOV64rs = 2592,
+  MOV64sr = 2593,
+  MOV64toPQIrm = 2594,
+  MOV64toPQIrr = 2595,
+  MOV64toSDrr = 2596,
+  MOV8ao16 = 2597,
+  MOV8ao32 = 2598,
+  MOV8ao64 = 2599,
+  MOV8mi = 2600,
+  MOV8mr = 2601,
+  MOV8mr_NOREX = 2602,
+  MOV8o16a = 2603,
+  MOV8o32a = 2604,
+  MOV8o64a = 2605,
+  MOV8ri = 2606,
+  MOV8ri_alt = 2607,
+  MOV8rm = 2608,
+  MOV8rm_NOREX = 2609,
+  MOV8rr = 2610,
+  MOV8rr_NOREX = 2611,
+  MOV8rr_REV = 2612,
+  MOVAPDmr = 2613,
+  MOVAPDrm = 2614,
+  MOVAPDrr = 2615,
+  MOVAPDrr_REV = 2616,
+  MOVAPSmr = 2617,
+  MOVAPSrm = 2618,
+  MOVAPSrr = 2619,
+  MOVAPSrr_REV = 2620,
+  MOVBE16mr = 2621,
+  MOVBE16mr_EVEX = 2622,
+  MOVBE16rm = 2623,
+  MOVBE16rm_EVEX = 2624,
+  MOVBE16rr = 2625,
+  MOVBE16rr_REV = 2626,
+  MOVBE32mr = 2627,
+  MOVBE32mr_EVEX = 2628,
+  MOVBE32rm = 2629,
+  MOVBE32rm_EVEX = 2630,
+  MOVBE32rr = 2631,
+  MOVBE32rr_REV = 2632,
+  MOVBE64mr = 2633,
+  MOVBE64mr_EVEX = 2634,
+  MOVBE64rm = 2635,
+  MOVBE64rm_EVEX = 2636,
+  MOVBE64rr = 2637,
+  MOVBE64rr_REV = 2638,
+  MOVDDUPrm = 2639,
+  MOVDDUPrr = 2640,
+  MOVDI2PDIrm = 2641,
+  MOVDI2PDIrr = 2642,
+  MOVDI2SSrr = 2643,
+  MOVDIR64B16 = 2644,
+  MOVDIR64B32 = 2645,
+  MOVDIR64B32_EVEX = 2646,
+  MOVDIR64B64 = 2647,
+  MOVDIR64B64_EVEX = 2648,
+  MOVDIRI32 = 2649,
+  MOVDIRI32_EVEX = 2650,
+  MOVDIRI64 = 2651,
+  MOVDIRI64_EVEX = 2652,
+  MOVDQAmr = 2653,
+  MOVDQArm = 2654,
+  MOVDQArr = 2655,
+  MOVDQArr_REV = 2656,
+  MOVDQUmr = 2657,
+  MOVDQUrm = 2658,
+  MOVDQUrr = 2659,
+  MOVDQUrr_REV = 2660,
+  MOVHLPSrr = 2661,
+  MOVHPDmr = 2662,
+  MOVHPDrm = 2663,
+  MOVHPSmr = 2664,
+  MOVHPSrm = 2665,
+  MOVLHPSrr = 2666,
+  MOVLPDmr = 2667,
+  MOVLPDrm = 2668,
+  MOVLPSmr = 2669,
+  MOVLPSrm = 2670,
+  MOVMSKPDrr = 2671,
+  MOVMSKPSrr = 2672,
+  MOVNTDQArm = 2673,
+  MOVNTDQmr = 2674,
+  MOVNTI_64mr = 2675,
+  MOVNTImr = 2676,
+  MOVNTPDmr = 2677,
+  MOVNTPSmr = 2678,
+  MOVNTSD = 2679,
+  MOVNTSS = 2680,
+  MOVPC32r = 2681,
+  MOVPDI2DImr = 2682,
+  MOVPDI2DIrr = 2683,
+  MOVPQI2QImr = 2684,
+  MOVPQI2QIrr = 2685,
+  MOVPQIto64mr = 2686,
+  MOVPQIto64rr = 2687,
+  MOVQI2PQIrm = 2688,
+  MOVRS16rm = 2689,
+  MOVRS16rm_EVEX = 2690,
+  MOVRS32rm = 2691,
+  MOVRS32rm_EVEX = 2692,
+  MOVRS64rm = 2693,
+  MOVRS64rm_EVEX = 2694,
+  MOVRS8rm = 2695,
+  MOVRS8rm_EVEX = 2696,
+  MOVSB = 2697,
+  MOVSDmr = 2698,
+  MOVSDrm = 2699,
+  MOVSDrm_alt = 2700,
+  MOVSDrr = 2701,
+  MOVSDrr_REV = 2702,
+  MOVSDto64rr = 2703,
+  MOVSHDUPrm = 2704,
+  MOVSHDUPrr = 2705,
+  MOVSL = 2706,
+  MOVSLDUPrm = 2707,
+  MOVSLDUPrr = 2708,
+  MOVSQ = 2709,
+  MOVSS2DIrr = 2710,
+  MOVSSmr = 2711,
+  MOVSSrm = 2712,
+  MOVSSrm_alt = 2713,
+  MOVSSrr = 2714,
+  MOVSSrr_REV = 2715,
+  MOVSW = 2716,
+  MOVSX16rm16 = 2717,
+  MOVSX16rm32 = 2718,
+  MOVSX16rm8 = 2719,
+  MOVSX16rr16 = 2720,
+  MOVSX16rr32 = 2721,
+  MOVSX16rr8 = 2722,
+  MOVSX32rm16 = 2723,
+  MOVSX32rm32 = 2724,
+  MOVSX32rm8 = 2725,
+  MOVSX32rm8_NOREX = 2726,
+  MOVSX32rr16 = 2727,
+  MOVSX32rr32 = 2728,
+  MOVSX32rr8 = 2729,
+  MOVSX32rr8_NOREX = 2730,
+  MOVSX64rm16 = 2731,
+  MOVSX64rm32 = 2732,
+  MOVSX64rm8 = 2733,
+  MOVSX64rr16 = 2734,
+  MOVSX64rr32 = 2735,
+  MOVSX64rr8 = 2736,
+  MOVUPDmr = 2737,
+  MOVUPDrm = 2738,
+  MOVUPDrr = 2739,
+  MOVUPDrr_REV = 2740,
+  MOVUPSmr = 2741,
+  MOVUPSrm = 2742,
+  MOVUPSrr = 2743,
+  MOVUPSrr_REV = 2744,
+  MOVZPQILo2PQIrr = 2745,
+  MOVZX16rm16 = 2746,
+  MOVZX16rm8 = 2747,
+  MOVZX16rr16 = 2748,
+  MOVZX16rr8 = 2749,
+  MOVZX32rm16 = 2750,
+  MOVZX32rm8 = 2751,
+  MOVZX32rm8_NOREX = 2752,
+  MOVZX32rr16 = 2753,
+  MOVZX32rr8 = 2754,
+  MOVZX32rr8_NOREX = 2755,
+  MOVZX64rm16 = 2756,
+  MOVZX64rm8 = 2757,
+  MOVZX64rr16 = 2758,
+  MOVZX64rr8 = 2759,
+  MPSADBWrmi = 2760,
+  MPSADBWrri = 2761,
+  MUL16m = 2762,
+  MUL16m_EVEX = 2763,
+  MUL16m_NF = 2764,
+  MUL16r = 2765,
+  MUL16r_EVEX = 2766,
+  MUL16r_NF = 2767,
+  MUL32m = 2768,
+  MUL32m_EVEX = 2769,
+  MUL32m_NF = 2770,
+  MUL32r = 2771,
+  MUL32r_EVEX = 2772,
+  MUL32r_NF = 2773,
+  MUL64m = 2774,
+  MUL64m_EVEX = 2775,
+  MUL64m_NF = 2776,
+  MUL64r = 2777,
+  MUL64r_EVEX = 2778,
+  MUL64r_NF = 2779,
+  MUL8m = 2780,
+  MUL8m_EVEX = 2781,
+  MUL8m_NF = 2782,
+  MUL8r = 2783,
+  MUL8r_EVEX = 2784,
+  MUL8r_NF = 2785,
+  MULPDrm = 2786,
+  MULPDrr = 2787,
+  MULPSrm = 2788,
+  MULPSrr = 2789,
+  MULSDrm = 2790,
+  MULSDrm_Int = 2791,
+  MULSDrr = 2792,
+  MULSDrr_Int = 2793,
+  MULSSrm = 2794,
+  MULSSrm_Int = 2795,
+  MULSSrr = 2796,
+  MULSSrr_Int = 2797,
+  MULX32Hrm = 2798,
+  MULX32Hrr = 2799,
+  MULX32rm = 2800,
+  MULX32rm_EVEX = 2801,
+  MULX32rr = 2802,
+  MULX32rr_EVEX = 2803,
+  MULX64Hrm = 2804,
+  MULX64Hrr = 2805,
+  MULX64rm = 2806,
+  MULX64rm_EVEX = 2807,
+  MULX64rr = 2808,
+  MULX64rr_EVEX = 2809,
+  MUL_F32m = 2810,
+  MUL_F64m = 2811,
+  MUL_FI16m = 2812,
+  MUL_FI32m = 2813,
+  MUL_FPrST0 = 2814,
+  MUL_FST0r = 2815,
+  MUL_Fp32 = 2816,
+  MUL_Fp32m = 2817,
+  MUL_Fp64 = 2818,
+  MUL_Fp64m = 2819,
+  MUL_Fp64m32 = 2820,
+  MUL_Fp80 = 2821,
+  MUL_Fp80m32 = 2822,
+  MUL_Fp80m64 = 2823,
+  MUL_FpI16m32 = 2824,
+  MUL_FpI16m64 = 2825,
+  MUL_FpI16m80 = 2826,
+  MUL_FpI32m32 = 2827,
+  MUL_FpI32m64 = 2828,
+  MUL_FpI32m80 = 2829,
+  MUL_FrST0 = 2830,
+  MWAITXrrr = 2831,
+  MWAITrr = 2832,
+  NEG16m = 2833,
+  NEG16m_EVEX = 2834,
+  NEG16m_ND = 2835,
+  NEG16m_NF = 2836,
+  NEG16m_NF_ND = 2837,
+  NEG16r = 2838,
+  NEG16r_EVEX = 2839,
+  NEG16r_ND = 2840,
+  NEG16r_NF = 2841,
+  NEG16r_NF_ND = 2842,
+  NEG32m = 2843,
+  NEG32m_EVEX = 2844,
+  NEG32m_ND = 2845,
+  NEG32m_NF = 2846,
+  NEG32m_NF_ND = 2847,
+  NEG32r = 2848,
+  NEG32r_EVEX = 2849,
+  NEG32r_ND = 2850,
+  NEG32r_NF = 2851,
+  NEG32r_NF_ND = 2852,
+  NEG64m = 2853,
+  NEG64m_EVEX = 2854,
+  NEG64m_ND = 2855,
+  NEG64m_NF = 2856,
+  NEG64m_NF_ND = 2857,
+  NEG64r = 2858,
+  NEG64r_EVEX = 2859,
+  NEG64r_ND = 2860,
+  NEG64r_NF = 2861,
+  NEG64r_NF_ND = 2862,
+  NEG8m = 2863,
+  NEG8m_EVEX = 2864,
+  NEG8m_ND = 2865,
+  NEG8m_NF = 2866,
+  NEG8m_NF_ND = 2867,
+  NEG8r = 2868,
+  NEG8r_EVEX = 2869,
+  NEG8r_ND = 2870,
+  NEG8r_NF = 2871,
+  NEG8r_NF_ND = 2872,
+  NOOP = 2873,
+  NOOPL = 2874,
+  NOOPLr = 2875,
+  NOOPQ = 2876,
+  NOOPQr = 2877,
+  NOOPW = 2878,
+  NOOPWr = 2879,
+  NOT16m = 2880,
+  NOT16m_EVEX = 2881,
+  NOT16m_ND = 2882,
+  NOT16r = 2883,
+  NOT16r_EVEX = 2884,
+  NOT16r_ND = 2885,
+  NOT32m = 2886,
+  NOT32m_EVEX = 2887,
+  NOT32m_ND = 2888,
+  NOT32r = 2889,
+  NOT32r_EVEX = 2890,
+  NOT32r_ND = 2891,
+  NOT64m = 2892,
+  NOT64m_EVEX = 2893,
+  NOT64m_ND = 2894,
+  NOT64r = 2895,
+  NOT64r_EVEX = 2896,
+  NOT64r_ND = 2897,
+  NOT8m = 2898,
+  NOT8m_EVEX = 2899,
+  NOT8m_ND = 2900,
+  NOT8r = 2901,
+  NOT8r_EVEX = 2902,
+  NOT8r_ND = 2903,
+  OR16i16 = 2904,
+  OR16mi = 2905,
+  OR16mi8 = 2906,
+  OR16mi8_EVEX = 2907,
+  OR16mi8_ND = 2908,
+  OR16mi8_NF = 2909,
+  OR16mi8_NF_ND = 2910,
+  OR16mi_EVEX = 2911,
+  OR16mi_ND = 2912,
+  OR16mi_NF = 2913,
+  OR16mi_NF_ND = 2914,
+  OR16mr = 2915,
+  OR16mr_EVEX = 2916,
+  OR16mr_ND = 2917,
+  OR16mr_NF = 2918,
+  OR16mr_NF_ND = 2919,
+  OR16ri = 2920,
+  OR16ri8 = 2921,
+  OR16ri8_EVEX = 2922,
+  OR16ri8_ND = 2923,
+  OR16ri8_NF = 2924,
+  OR16ri8_NF_ND = 2925,
+  OR16ri_EVEX = 2926,
+  OR16ri_ND = 2927,
+  OR16ri_NF = 2928,
+  OR16ri_NF_ND = 2929,
+  OR16rm = 2930,
+  OR16rm_EVEX = 2931,
+  OR16rm_ND = 2932,
+  OR16rm_NF = 2933,
+  OR16rm_NF_ND = 2934,
+  OR16rr = 2935,
+  OR16rr_EVEX = 2936,
+  OR16rr_EVEX_REV = 2937,
+  OR16rr_ND = 2938,
+  OR16rr_ND_REV = 2939,
+  OR16rr_NF = 2940,
+  OR16rr_NF_ND = 2941,
+  OR16rr_NF_ND_REV = 2942,
+  OR16rr_NF_REV = 2943,
+  OR16rr_REV = 2944,
+  OR32i32 = 2945,
+  OR32mi = 2946,
+  OR32mi8 = 2947,
+  OR32mi8Locked = 2948,
+  OR32mi8_EVEX = 2949,
+  OR32mi8_ND = 2950,
+  OR32mi8_NF = 2951,
+  OR32mi8_NF_ND = 2952,
+  OR32mi_EVEX = 2953,
+  OR32mi_ND = 2954,
+  OR32mi_NF = 2955,
+  OR32mi_NF_ND = 2956,
+  OR32mr = 2957,
+  OR32mr_EVEX = 2958,
+  OR32mr_ND = 2959,
+  OR32mr_NF = 2960,
+  OR32mr_NF_ND = 2961,
+  OR32ri = 2962,
+  OR32ri8 = 2963,
+  OR32ri8_EVEX = 2964,
+  OR32ri8_ND = 2965,
+  OR32ri8_NF = 2966,
+  OR32ri8_NF_ND = 2967,
+  OR32ri_EVEX = 2968,
+  OR32ri_ND = 2969,
+  OR32ri_NF = 2970,
+  OR32ri_NF_ND = 2971,
+  OR32rm = 2972,
+  OR32rm_EVEX = 2973,
+  OR32rm_ND = 2974,
+  OR32rm_NF = 2975,
+  OR32rm_NF_ND = 2976,
+  OR32rr = 2977,
+  OR32rr_EVEX = 2978,
+  OR32rr_EVEX_REV = 2979,
+  OR32rr_ND = 2980,
+  OR32rr_ND_REV = 2981,
+  OR32rr_NF = 2982,
+  OR32rr_NF_ND = 2983,
+  OR32rr_NF_ND_REV = 2984,
+  OR32rr_NF_REV = 2985,
+  OR32rr_REV = 2986,
+  OR64i32 = 2987,
+  OR64mi32 = 2988,
+  OR64mi32_EVEX = 2989,
+  OR64mi32_ND = 2990,
+  OR64mi32_NF = 2991,
+  OR64mi32_NF_ND = 2992,
+  OR64mi8 = 2993,
+  OR64mi8_EVEX = 2994,
+  OR64mi8_ND = 2995,
+  OR64mi8_NF = 2996,
+  OR64mi8_NF_ND = 2997,
+  OR64mr = 2998,
+  OR64mr_EVEX = 2999,
+  OR64mr_ND = 3000,
+  OR64mr_NF = 3001,
+  OR64mr_NF_ND = 3002,
+  OR64ri32 = 3003,
+  OR64ri32_EVEX = 3004,
+  OR64ri32_ND = 3005,
+  OR64ri32_NF = 3006,
+  OR64ri32_NF_ND = 3007,
+  OR64ri8 = 3008,
+  OR64ri8_EVEX = 3009,
+  OR64ri8_ND = 3010,
+  OR64ri8_NF = 3011,
+  OR64ri8_NF_ND = 3012,
+  OR64rm = 3013,
+  OR64rm_EVEX = 3014,
+  OR64rm_ND = 3015,
+  OR64rm_NF = 3016,
+  OR64rm_NF_ND = 3017,
+  OR64rr = 3018,
+  OR64rr_EVEX = 3019,
+  OR64rr_EVEX_REV = 3020,
+  OR64rr_ND = 3021,
+  OR64rr_ND_REV = 3022,
+  OR64rr_NF = 3023,
+  OR64rr_NF_ND = 3024,
+  OR64rr_NF_ND_REV = 3025,
+  OR64rr_NF_REV = 3026,
+  OR64rr_REV = 3027,
+  OR8i8 = 3028,
+  OR8mi = 3029,
+  OR8mi8 = 3030,
+  OR8mi_EVEX = 3031,
+  OR8mi_ND = 3032,
+  OR8mi_NF = 3033,
+  OR8mi_NF_ND = 3034,
+  OR8mr = 3035,
+  OR8mr_EVEX = 3036,
+  OR8mr_ND = 3037,
+  OR8mr_NF = 3038,
+  OR8mr_NF_ND = 3039,
+  OR8ri = 3040,
+  OR8ri8 = 3041,
+  OR8ri_EVEX = 3042,
+  OR8ri_ND = 3043,
+  OR8ri_NF = 3044,
+  OR8ri_NF_ND = 3045,
+  OR8rm = 3046,
+  OR8rm_EVEX = 3047,
+  OR8rm_ND = 3048,
+  OR8rm_NF = 3049,
+  OR8rm_NF_ND = 3050,
+  OR8rr = 3051,
+  OR8rr_EVEX = 3052,
+  OR8rr_EVEX_REV = 3053,
+  OR8rr_ND = 3054,
+  OR8rr_ND_REV = 3055,
+  OR8rr_NF = 3056,
+  OR8rr_NF_ND = 3057,
+  OR8rr_NF_ND_REV = 3058,
+  OR8rr_NF_REV = 3059,
+  OR8rr_REV = 3060,
+  ORPDrm = 3061,
+  ORPDrr = 3062,
+  ORPSrm = 3063,
+  ORPSrr = 3064,
+  OUT16ir = 3065,
+  OUT16rr = 3066,
+  OUT32ir = 3067,
+  OUT32rr = 3068,
+  OUT8ir = 3069,
+  OUT8rr = 3070,
+  OUTSB = 3071,
+  OUTSL = 3072,
+  OUTSW = 3073,
+  PABSBrm = 3074,
+  PABSBrr = 3075,
+  PABSDrm = 3076,
+  PABSDrr = 3077,
+  PABSWrm = 3078,
+  PABSWrr = 3079,
+  PACKSSDWrm = 3080,
+  PACKSSDWrr = 3081,
+  PACKSSWBrm = 3082,
+  PACKSSWBrr = 3083,
+  PACKUSDWrm = 3084,
+  PACKUSDWrr = 3085,
+  PACKUSWBrm = 3086,
+  PACKUSWBrr = 3087,
+  PADDBrm = 3088,
+  PADDBrr = 3089,
+  PADDDrm = 3090,
+  PADDDrr = 3091,
+  PADDQrm = 3092,
+  PADDQrr = 3093,
+  PADDSBrm = 3094,
+  PADDSBrr = 3095,
+  PADDSWrm = 3096,
+  PADDSWrr = 3097,
+  PADDUSBrm = 3098,
+  PADDUSBrr = 3099,
+  PADDUSWrm = 3100,
+  PADDUSWrr = 3101,
+  PADDWrm = 3102,
+  PADDWrr = 3103,
+  PALIGNRrmi = 3104,
+  PALIGNRrri = 3105,
+  PANDNrm = 3106,
+  PANDNrr = 3107,
+  PANDrm = 3108,
+  PANDrr = 3109,
+  PAUSE = 3110,
+  PAVGBrm = 3111,
+  PAVGBrr = 3112,
+  PAVGUSBrm = 3113,
+  PAVGUSBrr = 3114,
+  PAVGWrm = 3115,
+  PAVGWrr = 3116,
+  PBLENDVBrm0 = 3117,
+  PBLENDVBrr0 = 3118,
+  PBLENDWrmi = 3119,
+  PBLENDWrri = 3120,
+  PBNDKB = 3121,
+  PCLMULQDQrmi = 3122,
+  PCLMULQDQrri = 3123,
+  PCMPEQBrm = 3124,
+  PCMPEQBrr = 3125,
+  PCMPEQDrm = 3126,
+  PCMPEQDrr = 3127,
+  PCMPEQQrm = 3128,
+  PCMPEQQrr = 3129,
+  PCMPEQWrm = 3130,
+  PCMPEQWrr = 3131,
+  PCMPESTRIrmi = 3132,
+  PCMPESTRIrri = 3133,
+  PCMPESTRMrmi = 3134,
+  PCMPESTRMrri = 3135,
+  PCMPGTBrm = 3136,
+  PCMPGTBrr = 3137,
+  PCMPGTDrm = 3138,
+  PCMPGTDrr = 3139,
+  PCMPGTQrm = 3140,
+  PCMPGTQrr = 3141,
+  PCMPGTWrm = 3142,
+  PCMPGTWrr = 3143,
+  PCMPISTRIrmi = 3144,
+  PCMPISTRIrri = 3145,
+  PCMPISTRMrmi = 3146,
+  PCMPISTRMrri = 3147,
+  PCONFIG = 3148,
+  PDEP32rm = 3149,
+  PDEP32rm_EVEX = 3150,
+  PDEP32rr = 3151,
+  PDEP32rr_EVEX = 3152,
+  PDEP64rm = 3153,
+  PDEP64rm_EVEX = 3154,
+  PDEP64rr = 3155,
+  PDEP64rr_EVEX = 3156,
+  PEXT32rm = 3157,
+  PEXT32rm_EVEX = 3158,
+  PEXT32rr = 3159,
+  PEXT32rr_EVEX = 3160,
+  PEXT64rm = 3161,
+  PEXT64rm_EVEX = 3162,
+  PEXT64rr = 3163,
+  PEXT64rr_EVEX = 3164,
+  PEXTRBmri = 3165,
+  PEXTRBrri = 3166,
+  PEXTRDmri = 3167,
+  PEXTRDrri = 3168,
+  PEXTRQmri = 3169,
+  PEXTRQrri = 3170,
+  PEXTRWmri = 3171,
+  PEXTRWrri = 3172,
+  PEXTRWrri_REV = 3173,
+  PF2IDrm = 3174,
+  PF2IDrr = 3175,
+  PF2IWrm = 3176,
+  PF2IWrr = 3177,
+  PFACCrm = 3178,
+  PFACCrr = 3179,
+  PFADDrm = 3180,
+  PFADDrr = 3181,
+  PFCMPEQrm = 3182,
+  PFCMPEQrr = 3183,
+  PFCMPGErm = 3184,
+  PFCMPGErr = 3185,
+  PFCMPGTrm = 3186,
+  PFCMPGTrr = 3187,
+  PFMAXrm = 3188,
+  PFMAXrr = 3189,
+  PFMINrm = 3190,
+  PFMINrr = 3191,
+  PFMULrm = 3192,
+  PFMULrr = 3193,
+  PFNACCrm = 3194,
+  PFNACCrr = 3195,
+  PFPNACCrm = 3196,
+  PFPNACCrr = 3197,
+  PFRCPIT1rm = 3198,
+  PFRCPIT1rr = 3199,
+  PFRCPIT2rm = 3200,
+  PFRCPIT2rr = 3201,
+  PFRCPrm = 3202,
+  PFRCPrr = 3203,
+  PFRSQIT1rm = 3204,
+  PFRSQIT1rr = 3205,
+  PFRSQRTrm = 3206,
+  PFRSQRTrr = 3207,
+  PFSUBRrm = 3208,
+  PFSUBRrr = 3209,
+  PFSUBrm = 3210,
+  PFSUBrr = 3211,
+  PHADDDrm = 3212,
+  PHADDDrr = 3213,
+  PHADDSWrm = 3214,
+  PHADDSWrr = 3215,
+  PHADDWrm = 3216,
+  PHADDWrr = 3217,
+  PHMINPOSUWrm = 3218,
+  PHMINPOSUWrr = 3219,
+  PHSUBDrm = 3220,
+  PHSUBDrr = 3221,
+  PHSUBSWrm = 3222,
+  PHSUBSWrr = 3223,
+  PHSUBWrm = 3224,
+  PHSUBWrr = 3225,
+  PI2FDrm = 3226,
+  PI2FDrr = 3227,
+  PI2FWrm = 3228,
+  PI2FWrr = 3229,
+  PINSRBrmi = 3230,
+  PINSRBrri = 3231,
+  PINSRDrmi = 3232,
+  PINSRDrri = 3233,
+  PINSRQrmi = 3234,
+  PINSRQrri = 3235,
+  PINSRWrmi = 3236,
+  PINSRWrri = 3237,
+  PMADDUBSWrm = 3238,
+  PMADDUBSWrr = 3239,
+  PMADDWDrm = 3240,
+  PMADDWDrr = 3241,
+  PMAXSBrm = 3242,
+  PMAXSBrr = 3243,
+  PMAXSDrm = 3244,
+  PMAXSDrr = 3245,
+  PMAXSWrm = 3246,
+  PMAXSWrr = 3247,
+  PMAXUBrm = 3248,
+  PMAXUBrr = 3249,
+  PMAXUDrm = 3250,
+  PMAXUDrr = 3251,
+  PMAXUWrm = 3252,
+  PMAXUWrr = 3253,
+  PMINSBrm = 3254,
+  PMINSBrr = 3255,
+  PMINSDrm = 3256,
+  PMINSDrr = 3257,
+  PMINSWrm = 3258,
+  PMINSWrr = 3259,
+  PMINUBrm = 3260,
+  PMINUBrr = 3261,
+  PMINUDrm = 3262,
+  PMINUDrr = 3263,
+  PMINUWrm = 3264,
+  PMINUWrr = 3265,
+  PMOVMSKBrr = 3266,
+  PMOVSXBDrm = 3267,
+  PMOVSXBDrr = 3268,
+  PMOVSXBQrm = 3269,
+  PMOVSXBQrr = 3270,
+  PMOVSXBWrm = 3271,
+  PMOVSXBWrr = 3272,
+  PMOVSXDQrm = 3273,
+  PMOVSXDQrr = 3274,
+  PMOVSXWDrm = 3275,
+  PMOVSXWDrr = 3276,
+  PMOVSXWQrm = 3277,
+  PMOVSXWQrr = 3278,
+  PMOVZXBDrm = 3279,
+  PMOVZXBDrr = 3280,
+  PMOVZXBQrm = 3281,
+  PMOVZXBQrr = 3282,
+  PMOVZXBWrm = 3283,
+  PMOVZXBWrr = 3284,
+  PMOVZXDQrm = 3285,
+  PMOVZXDQrr = 3286,
+  PMOVZXWDrm = 3287,
+  PMOVZXWDrr = 3288,
+  PMOVZXWQrm = 3289,
+  PMOVZXWQrr = 3290,
+  PMULDQrm = 3291,
+  PMULDQrr = 3292,
+  PMULHRSWrm = 3293,
+  PMULHRSWrr = 3294,
+  PMULHRWrm = 3295,
+  PMULHRWrr = 3296,
+  PMULHUWrm = 3297,
+  PMULHUWrr = 3298,
+  PMULHWrm = 3299,
+  PMULHWrr = 3300,
+  PMULLDrm = 3301,
+  PMULLDrr = 3302,
+  PMULLWrm = 3303,
+  PMULLWrr = 3304,
+  PMULUDQrm = 3305,
+  PMULUDQrr = 3306,
+  POP16r = 3307,
+  POP16rmm = 3308,
+  POP16rmr = 3309,
+  POP2 = 3310,
+  POP2P = 3311,
+  POP32r = 3312,
+  POP32rmm = 3313,
+  POP32rmr = 3314,
+  POP64r = 3315,
+  POP64rmm = 3316,
+  POP64rmr = 3317,
+  POPA16 = 3318,
+  POPA32 = 3319,
+  POPCNT16rm = 3320,
+  POPCNT16rm_EVEX = 3321,
+  POPCNT16rm_NF = 3322,
+  POPCNT16rr = 3323,
+  POPCNT16rr_EVEX = 3324,
+  POPCNT16rr_NF = 3325,
+  POPCNT32rm = 3326,
+  POPCNT32rm_EVEX = 3327,
+  POPCNT32rm_NF = 3328,
+  POPCNT32rr = 3329,
+  POPCNT32rr_EVEX = 3330,
+  POPCNT32rr_NF = 3331,
+  POPCNT64rm = 3332,
+  POPCNT64rm_EVEX = 3333,
+  POPCNT64rm_NF = 3334,
+  POPCNT64rr = 3335,
+  POPCNT64rr_EVEX = 3336,
+  POPCNT64rr_NF = 3337,
+  POPDS16 = 3338,
+  POPDS32 = 3339,
+  POPES16 = 3340,
+  POPES32 = 3341,
+  POPF16 = 3342,
+  POPF32 = 3343,
+  POPF64 = 3344,
+  POPFS16 = 3345,
+  POPFS32 = 3346,
+  POPFS64 = 3347,
+  POPGS16 = 3348,
+  POPGS32 = 3349,
+  POPGS64 = 3350,
+  POPP64r = 3351,
+  POPSS16 = 3352,
+  POPSS32 = 3353,
+  PORrm = 3354,
+  PORrr = 3355,
+  PREFETCH = 3356,
+  PREFETCHIT0 = 3357,
+  PREFETCHIT1 = 3358,
+  PREFETCHNTA = 3359,
+  PREFETCHRST2 = 3360,
+  PREFETCHT0 = 3361,
+  PREFETCHT1 = 3362,
+  PREFETCHT2 = 3363,
+  PREFETCHW = 3364,
+  PREFETCHWT1 = 3365,
+  PROBED_ALLOCA_32 = 3366,
+  PROBED_ALLOCA_64 = 3367,
+  PSADBWrm = 3368,
+  PSADBWrr = 3369,
+  PSHUFBrm = 3370,
+  PSHUFBrr = 3371,
+  PSHUFDmi = 3372,
+  PSHUFDri = 3373,
+  PSHUFHWmi = 3374,
+  PSHUFHWri = 3375,
+  PSHUFLWmi = 3376,
+  PSHUFLWri = 3377,
+  PSIGNBrm = 3378,
+  PSIGNBrr = 3379,
+  PSIGNDrm = 3380,
+  PSIGNDrr = 3381,
+  PSIGNWrm = 3382,
+  PSIGNWrr = 3383,
+  PSLLDQri = 3384,
+  PSLLDri = 3385,
+  PSLLDrm = 3386,
+  PSLLDrr = 3387,
+  PSLLQri = 3388,
+  PSLLQrm = 3389,
+  PSLLQrr = 3390,
+  PSLLWri = 3391,
+  PSLLWrm = 3392,
+  PSLLWrr = 3393,
+  PSMASH = 3394,
+  PSRADri = 3395,
+  PSRADrm = 3396,
+  PSRADrr = 3397,
+  PSRAWri = 3398,
+  PSRAWrm = 3399,
+  PSRAWrr = 3400,
+  PSRLDQri = 3401,
+  PSRLDri = 3402,
+  PSRLDrm = 3403,
+  PSRLDrr = 3404,
+  PSRLQri = 3405,
+  PSRLQrm = 3406,
+  PSRLQrr = 3407,
+  PSRLWri = 3408,
+  PSRLWrm = 3409,
+  PSRLWrr = 3410,
+  PSUBBrm = 3411,
+  PSUBBrr = 3412,
+  PSUBDrm = 3413,
+  PSUBDrr = 3414,
+  PSUBQrm = 3415,
+  PSUBQrr = 3416,
+  PSUBSBrm = 3417,
+  PSUBSBrr = 3418,
+  PSUBSWrm = 3419,
+  PSUBSWrr = 3420,
+  PSUBUSBrm = 3421,
+  PSUBUSBrr = 3422,
+  PSUBUSWrm = 3423,
+  PSUBUSWrr = 3424,
+  PSUBWrm = 3425,
+  PSUBWrr = 3426,
+  PSWAPDrm = 3427,
+  PSWAPDrr = 3428,
+  PTCMMIMFP16PS = 3429,
+  PTCMMIMFP16PSV = 3430,
+  PTCMMRLFP16PS = 3431,
+  PTCMMRLFP16PSV = 3432,
+  PTCVTROWD2PSrre = 3433,
+  PTCVTROWD2PSrreV = 3434,
+  PTCVTROWD2PSrri = 3435,
+  PTCVTROWD2PSrriV = 3436,
+  PTCVTROWPS2BF16Hrre = 3437,
+  PTCVTROWPS2BF16HrreV = 3438,
+  PTCVTROWPS2BF16Hrri = 3439,
+  PTCVTROWPS2BF16HrriV = 3440,
+  PTCVTROWPS2BF16Lrre = 3441,
+  PTCVTROWPS2BF16LrreV = 3442,
+  PTCVTROWPS2BF16Lrri = 3443,
+  PTCVTROWPS2BF16LrriV = 3444,
+  PTCVTROWPS2PHHrre = 3445,
+  PTCVTROWPS2PHHrreV = 3446,
+  PTCVTROWPS2PHHrri = 3447,
+  PTCVTROWPS2PHHrriV = 3448,
+  PTCVTROWPS2PHLrre = 3449,
+  PTCVTROWPS2PHLrreV = 3450,
+  PTCVTROWPS2PHLrri = 3451,
+  PTCVTROWPS2PHLrriV = 3452,
+  PTDPBF16PS = 3453,
+  PTDPBF8PS = 3454,
+  PTDPBF8PSV = 3455,
+  PTDPBHF8PS = 3456,
+  PTDPBHF8PSV = 3457,
+  PTDPBSSD = 3458,
+  PTDPBSUD = 3459,
+  PTDPBUSD = 3460,
+  PTDPBUUD = 3461,
+  PTDPFP16PS = 3462,
+  PTDPHBF8PS = 3463,
+  PTDPHBF8PSV = 3464,
+  PTDPHF8PS = 3465,
+  PTDPHF8PSV = 3466,
+  PTESTrm = 3467,
+  PTESTrr = 3468,
+  PTILELOADD = 3469,
+  PTILELOADDRS = 3470,
+  PTILELOADDRST1 = 3471,
+  PTILELOADDT1 = 3472,
+  PTILEMOVROWrre = 3473,
+  PTILEMOVROWrreV = 3474,
+  PTILEMOVROWrri = 3475,
+  PTILEMOVROWrriV = 3476,
+  PTILESTORED = 3477,
+  PTILEZERO = 3478,
+  PTMMULTF32PS = 3479,
+  PTMMULTF32PSV = 3480,
+  PTWRITE64m = 3481,
+  PTWRITE64r = 3482,
+  PTWRITEm = 3483,
+  PTWRITEr = 3484,
+  PUNPCKHBWrm = 3485,
+  PUNPCKHBWrr = 3486,
+  PUNPCKHDQrm = 3487,
+  PUNPCKHDQrr = 3488,
+  PUNPCKHQDQrm = 3489,
+  PUNPCKHQDQrr = 3490,
+  PUNPCKHWDrm = 3491,
+  PUNPCKHWDrr = 3492,
+  PUNPCKLBWrm = 3493,
+  PUNPCKLBWrr = 3494,
+  PUNPCKLDQrm = 3495,
+  PUNPCKLDQrr = 3496,
+  PUNPCKLQDQrm = 3497,
+  PUNPCKLQDQrr = 3498,
+  PUNPCKLWDrm = 3499,
+  PUNPCKLWDrr = 3500,
+  PUSH16i = 3501,
+  PUSH16i8 = 3502,
+  PUSH16r = 3503,
+  PUSH16rmm = 3504,
+  PUSH16rmr = 3505,
+  PUSH2 = 3506,
+  PUSH2P = 3507,
+  PUSH32i = 3508,
+  PUSH32i8 = 3509,
+  PUSH32r = 3510,
+  PUSH32rmm = 3511,
+  PUSH32rmr = 3512,
+  PUSH64i32 = 3513,
+  PUSH64i8 = 3514,
+  PUSH64r = 3515,
+  PUSH64rmm = 3516,
+  PUSH64rmr = 3517,
+  PUSHA16 = 3518,
+  PUSHA32 = 3519,
+  PUSHCS16 = 3520,
+  PUSHCS32 = 3521,
+  PUSHDS16 = 3522,
+  PUSHDS32 = 3523,
+  PUSHES16 = 3524,
+  PUSHES32 = 3525,
+  PUSHF16 = 3526,
+  PUSHF32 = 3527,
+  PUSHF64 = 3528,
+  PUSHFS16 = 3529,
+  PUSHFS32 = 3530,
+  PUSHFS64 = 3531,
+  PUSHGS16 = 3532,
+  PUSHGS32 = 3533,
+  PUSHGS64 = 3534,
+  PUSHP64r = 3535,
+  PUSHSS16 = 3536,
+  PUSHSS32 = 3537,
+  PVALIDATE32 = 3538,
+  PVALIDATE64 = 3539,
+  PXORrm = 3540,
+  PXORrr = 3541,
+  RCL16m1 = 3542,
+  RCL16m1_EVEX = 3543,
+  RCL16m1_ND = 3544,
+  RCL16mCL = 3545,
+  RCL16mCL_EVEX = 3546,
+  RCL16mCL_ND = 3547,
+  RCL16mi = 3548,
+  RCL16mi_EVEX = 3549,
+  RCL16mi_ND = 3550,
+  RCL16r1 = 3551,
+  RCL16r1_EVEX = 3552,
+  RCL16r1_ND = 3553,
+  RCL16rCL = 3554,
+  RCL16rCL_EVEX = 3555,
+  RCL16rCL_ND = 3556,
+  RCL16ri = 3557,
+  RCL16ri_EVEX = 3558,
+  RCL16ri_ND = 3559,
+  RCL32m1 = 3560,
+  RCL32m1_EVEX = 3561,
+  RCL32m1_ND = 3562,
+  RCL32mCL = 3563,
+  RCL32mCL_EVEX = 3564,
+  RCL32mCL_ND = 3565,
+  RCL32mi = 3566,
+  RCL32mi_EVEX = 3567,
+  RCL32mi_ND = 3568,
+  RCL32r1 = 3569,
+  RCL32r1_EVEX = 3570,
+  RCL32r1_ND = 3571,
+  RCL32rCL = 3572,
+  RCL32rCL_EVEX = 3573,
+  RCL32rCL_ND = 3574,
+  RCL32ri = 3575,
+  RCL32ri_EVEX = 3576,
+  RCL32ri_ND = 3577,
+  RCL64m1 = 3578,
+  RCL64m1_EVEX = 3579,
+  RCL64m1_ND = 3580,
+  RCL64mCL = 3581,
+  RCL64mCL_EVEX = 3582,
+  RCL64mCL_ND = 3583,
+  RCL64mi = 3584,
+  RCL64mi_EVEX = 3585,
+  RCL64mi_ND = 3586,
+  RCL64r1 = 3587,
+  RCL64r1_EVEX = 3588,
+  RCL64r1_ND = 3589,
+  RCL64rCL = 3590,
+  RCL64rCL_EVEX = 3591,
+  RCL64rCL_ND = 3592,
+  RCL64ri = 3593,
+  RCL64ri_EVEX = 3594,
+  RCL64ri_ND = 3595,
+  RCL8m1 = 3596,
+  RCL8m1_EVEX = 3597,
+  RCL8m1_ND = 3598,
+  RCL8mCL = 3599,
+  RCL8mCL_EVEX = 3600,
+  RCL8mCL_ND = 3601,
+  RCL8mi = 3602,
+  RCL8mi_EVEX = 3603,
+  RCL8mi_ND = 3604,
+  RCL8r1 = 3605,
+  RCL8r1_EVEX = 3606,
+  RCL8r1_ND = 3607,
+  RCL8rCL = 3608,
+  RCL8rCL_EVEX = 3609,
+  RCL8rCL_ND = 3610,
+  RCL8ri = 3611,
+  RCL8ri_EVEX = 3612,
+  RCL8ri_ND = 3613,
+  RCPPSm = 3614,
+  RCPPSr = 3615,
+  RCPSSm = 3616,
+  RCPSSm_Int = 3617,
+  RCPSSr = 3618,
+  RCPSSr_Int = 3619,
+  RCR16m1 = 3620,
+  RCR16m1_EVEX = 3621,
+  RCR16m1_ND = 3622,
+  RCR16mCL = 3623,
+  RCR16mCL_EVEX = 3624,
+  RCR16mCL_ND = 3625,
+  RCR16mi = 3626,
+  RCR16mi_EVEX = 3627,
+  RCR16mi_ND = 3628,
+  RCR16r1 = 3629,
+  RCR16r1_EVEX = 3630,
+  RCR16r1_ND = 3631,
+  RCR16rCL = 3632,
+  RCR16rCL_EVEX = 3633,
+  RCR16rCL_ND = 3634,
+  RCR16ri = 3635,
+  RCR16ri_EVEX = 3636,
+  RCR16ri_ND = 3637,
+  RCR32m1 = 3638,
+  RCR32m1_EVEX = 3639,
+  RCR32m1_ND = 3640,
+  RCR32mCL = 3641,
+  RCR32mCL_EVEX = 3642,
+  RCR32mCL_ND = 3643,
+  RCR32mi = 3644,
+  RCR32mi_EVEX = 3645,
+  RCR32mi_ND = 3646,
+  RCR32r1 = 3647,
+  RCR32r1_EVEX = 3648,
+  RCR32r1_ND = 3649,
+  RCR32rCL = 3650,
+  RCR32rCL_EVEX = 3651,
+  RCR32rCL_ND = 3652,
+  RCR32ri = 3653,
+  RCR32ri_EVEX = 3654,
+  RCR32ri_ND = 3655,
+  RCR64m1 = 3656,
+  RCR64m1_EVEX = 3657,
+  RCR64m1_ND = 3658,
+  RCR64mCL = 3659,
+  RCR64mCL_EVEX = 3660,
+  RCR64mCL_ND = 3661,
+  RCR64mi = 3662,
+  RCR64mi_EVEX = 3663,
+  RCR64mi_ND = 3664,
+  RCR64r1 = 3665,
+  RCR64r1_EVEX = 3666,
+  RCR64r1_ND = 3667,
+  RCR64rCL = 3668,
+  RCR64rCL_EVEX = 3669,
+  RCR64rCL_ND = 3670,
+  RCR64ri = 3671,
+  RCR64ri_EVEX = 3672,
+  RCR64ri_ND = 3673,
+  RCR8m1 = 3674,
+  RCR8m1_EVEX = 3675,
+  RCR8m1_ND = 3676,
+  RCR8mCL = 3677,
+  RCR8mCL_EVEX = 3678,
+  RCR8mCL_ND = 3679,
+  RCR8mi = 3680,
+  RCR8mi_EVEX = 3681,
+  RCR8mi_ND = 3682,
+  RCR8r1 = 3683,
+  RCR8r1_EVEX = 3684,
+  RCR8r1_ND = 3685,
+  RCR8rCL = 3686,
+  RCR8rCL_EVEX = 3687,
+  RCR8rCL_ND = 3688,
+  RCR8ri = 3689,
+  RCR8ri_EVEX = 3690,
+  RCR8ri_ND = 3691,
+  RDFSBASE = 3692,
+  RDFSBASE64 = 3693,
+  RDGSBASE = 3694,
+  RDGSBASE64 = 3695,
+  RDMSR = 3696,
+  RDMSRLIST = 3697,
+  RDMSRri = 3698,
+  RDMSRri_EVEX = 3699,
+  RDPID32 = 3700,
+  RDPID64 = 3701,
+  RDPKRUr = 3702,
+  RDPMC = 3703,
+  RDPRU = 3704,
+  RDRAND16r = 3705,
+  RDRAND32r = 3706,
+  RDRAND64r = 3707,
+  RDSEED16r = 3708,
+  RDSEED32r = 3709,
+  RDSEED64r = 3710,
+  RDSSPD = 3711,
+  RDSSPQ = 3712,
+  RDTSC = 3713,
+  RDTSCP = 3714,
+  REPNE_PREFIX = 3715,
+  REP_MOVSB_32 = 3716,
+  REP_MOVSB_64 = 3717,
+  REP_MOVSD_32 = 3718,
+  REP_MOVSD_64 = 3719,
+  REP_MOVSQ_32 = 3720,
+  REP_MOVSQ_64 = 3721,
+  REP_MOVSW_32 = 3722,
+  REP_MOVSW_64 = 3723,
+  REP_PREFIX = 3724,
+  REP_STOSB_32 = 3725,
+  REP_STOSB_64 = 3726,
+  REP_STOSD_32 = 3727,
+  REP_STOSD_64 = 3728,
+  REP_STOSQ_32 = 3729,
+  REP_STOSQ_64 = 3730,
+  REP_STOSW_32 = 3731,
+  REP_STOSW_64 = 3732,
+  RET = 3733,
+  RET16 = 3734,
+  RET32 = 3735,
+  RET64 = 3736,
+  RETI16 = 3737,
+  RETI32 = 3738,
+  RETI64 = 3739,
+  REX64_PREFIX = 3740,
+  RMPADJUST = 3741,
+  RMPQUERY = 3742,
+  RMPUPDATE = 3743,
+  ROL16m1 = 3744,
+  ROL16m1_EVEX = 3745,
+  ROL16m1_ND = 3746,
+  ROL16m1_NF = 3747,
+  ROL16m1_NF_ND = 3748,
+  ROL16mCL = 3749,
+  ROL16mCL_EVEX = 3750,
+  ROL16mCL_ND = 3751,
+  ROL16mCL_NF = 3752,
+  ROL16mCL_NF_ND = 3753,
+  ROL16mi = 3754,
+  ROL16mi_EVEX = 3755,
+  ROL16mi_ND = 3756,
+  ROL16mi_NF = 3757,
+  ROL16mi_NF_ND = 3758,
+  ROL16r1 = 3759,
+  ROL16r1_EVEX = 3760,
+  ROL16r1_ND = 3761,
+  ROL16r1_NF = 3762,
+  ROL16r1_NF_ND = 3763,
+  ROL16rCL = 3764,
+  ROL16rCL_EVEX = 3765,
+  ROL16rCL_ND = 3766,
+  ROL16rCL_NF = 3767,
+  ROL16rCL_NF_ND = 3768,
+  ROL16ri = 3769,
+  ROL16ri_EVEX = 3770,
+  ROL16ri_ND = 3771,
+  ROL16ri_NF = 3772,
+  ROL16ri_NF_ND = 3773,
+  ROL32m1 = 3774,
+  ROL32m1_EVEX = 3775,
+  ROL32m1_ND = 3776,
+  ROL32m1_NF = 3777,
+  ROL32m1_NF_ND = 3778,
+  ROL32mCL = 3779,
+  ROL32mCL_EVEX = 3780,
+  ROL32mCL_ND = 3781,
+  ROL32mCL_NF = 3782,
+  ROL32mCL_NF_ND = 3783,
+  ROL32mi = 3784,
+  ROL32mi_EVEX = 3785,
+  ROL32mi_ND = 3786,
+  ROL32mi_NF = 3787,
+  ROL32mi_NF_ND = 3788,
+  ROL32r1 = 3789,
+  ROL32r1_EVEX = 3790,
+  ROL32r1_ND = 3791,
+  ROL32r1_NF = 3792,
+  ROL32r1_NF_ND = 3793,
+  ROL32rCL = 3794,
+  ROL32rCL_EVEX = 3795,
+  ROL32rCL_ND = 3796,
+  ROL32rCL_NF = 3797,
+  ROL32rCL_NF_ND = 3798,
+  ROL32ri = 3799,
+  ROL32ri_EVEX = 3800,
+  ROL32ri_ND = 3801,
+  ROL32ri_NF = 3802,
+  ROL32ri_NF_ND = 3803,
+  ROL64m1 = 3804,
+  ROL64m1_EVEX = 3805,
+  ROL64m1_ND = 3806,
+  ROL64m1_NF = 3807,
+  ROL64m1_NF_ND = 3808,
+  ROL64mCL = 3809,
+  ROL64mCL_EVEX = 3810,
+  ROL64mCL_ND = 3811,
+  ROL64mCL_NF = 3812,
+  ROL64mCL_NF_ND = 3813,
+  ROL64mi = 3814,
+  ROL64mi_EVEX = 3815,
+  ROL64mi_ND = 3816,
+  ROL64mi_NF = 3817,
+  ROL64mi_NF_ND = 3818,
+  ROL64r1 = 3819,
+  ROL64r1_EVEX = 3820,
+  ROL64r1_ND = 3821,
+  ROL64r1_NF = 3822,
+  ROL64r1_NF_ND = 3823,
+  ROL64rCL = 3824,
+  ROL64rCL_EVEX = 3825,
+  ROL64rCL_ND = 3826,
+  ROL64rCL_NF = 3827,
+  ROL64rCL_NF_ND = 3828,
+  ROL64ri = 3829,
+  ROL64ri_EVEX = 3830,
+  ROL64ri_ND = 3831,
+  ROL64ri_NF = 3832,
+  ROL64ri_NF_ND = 3833,
+  ROL8m1 = 3834,
+  ROL8m1_EVEX = 3835,
+  ROL8m1_ND = 3836,
+  ROL8m1_NF = 3837,
+  ROL8m1_NF_ND = 3838,
+  ROL8mCL = 3839,
+  ROL8mCL_EVEX = 3840,
+  ROL8mCL_ND = 3841,
+  ROL8mCL_NF = 3842,
+  ROL8mCL_NF_ND = 3843,
+  ROL8mi = 3844,
+  ROL8mi_EVEX = 3845,
+  ROL8mi_ND = 3846,
+  ROL8mi_NF = 3847,
+  ROL8mi_NF_ND = 3848,
+  ROL8r1 = 3849,
+  ROL8r1_EVEX = 3850,
+  ROL8r1_ND = 3851,
+  ROL8r1_NF = 3852,
+  ROL8r1_NF_ND = 3853,
+  ROL8rCL = 3854,
+  ROL8rCL_EVEX = 3855,
+  ROL8rCL_ND = 3856,
+  ROL8rCL_NF = 3857,
+  ROL8rCL_NF_ND = 3858,
+  ROL8ri = 3859,
+  ROL8ri_EVEX = 3860,
+  ROL8ri_ND = 3861,
+  ROL8ri_NF = 3862,
+  ROL8ri_NF_ND = 3863,
+  ROR16m1 = 3864,
+  ROR16m1_EVEX = 3865,
+  ROR16m1_ND = 3866,
+  ROR16m1_NF = 3867,
+  ROR16m1_NF_ND = 3868,
+  ROR16mCL = 3869,
+  ROR16mCL_EVEX = 3870,
+  ROR16mCL_ND = 3871,
+  ROR16mCL_NF = 3872,
+  ROR16mCL_NF_ND = 3873,
+  ROR16mi = 3874,
+  ROR16mi_EVEX = 3875,
+  ROR16mi_ND = 3876,
+  ROR16mi_NF = 3877,
+  ROR16mi_NF_ND = 3878,
+  ROR16r1 = 3879,
+  ROR16r1_EVEX = 3880,
+  ROR16r1_ND = 3881,
+  ROR16r1_NF = 3882,
+  ROR16r1_NF_ND = 3883,
+  ROR16rCL = 3884,
+  ROR16rCL_EVEX = 3885,
+  ROR16rCL_ND = 3886,
+  ROR16rCL_NF = 3887,
+  ROR16rCL_NF_ND = 3888,
+  ROR16ri = 3889,
+  ROR16ri_EVEX = 3890,
+  ROR16ri_ND = 3891,
+  ROR16ri_NF = 3892,
+  ROR16ri_NF_ND = 3893,
+  ROR32m1 = 3894,
+  ROR32m1_EVEX = 3895,
+  ROR32m1_ND = 3896,
+  ROR32m1_NF = 3897,
+  ROR32m1_NF_ND = 3898,
+  ROR32mCL = 3899,
+  ROR32mCL_EVEX = 3900,
+  ROR32mCL_ND = 3901,
+  ROR32mCL_NF = 3902,
+  ROR32mCL_NF_ND = 3903,
+  ROR32mi = 3904,
+  ROR32mi_EVEX = 3905,
+  ROR32mi_ND = 3906,
+  ROR32mi_NF = 3907,
+  ROR32mi_NF_ND = 3908,
+  ROR32r1 = 3909,
+  ROR32r1_EVEX = 3910,
+  ROR32r1_ND = 3911,
+  ROR32r1_NF = 3912,
+  ROR32r1_NF_ND = 3913,
+  ROR32rCL = 3914,
+  ROR32rCL_EVEX = 3915,
+  ROR32rCL_ND = 3916,
+  ROR32rCL_NF = 3917,
+  ROR32rCL_NF_ND = 3918,
+  ROR32ri = 3919,
+  ROR32ri_EVEX = 3920,
+  ROR32ri_ND = 3921,
+  ROR32ri_NF = 3922,
+  ROR32ri_NF_ND = 3923,
+  ROR64m1 = 3924,
+  ROR64m1_EVEX = 3925,
+  ROR64m1_ND = 3926,
+  ROR64m1_NF = 3927,
+  ROR64m1_NF_ND = 3928,
+  ROR64mCL = 3929,
+  ROR64mCL_EVEX = 3930,
+  ROR64mCL_ND = 3931,
+  ROR64mCL_NF = 3932,
+  ROR64mCL_NF_ND = 3933,
+  ROR64mi = 3934,
+  ROR64mi_EVEX = 3935,
+  ROR64mi_ND = 3936,
+  ROR64mi_NF = 3937,
+  ROR64mi_NF_ND = 3938,
+  ROR64r1 = 3939,
+  ROR64r1_EVEX = 3940,
+  ROR64r1_ND = 3941,
+  ROR64r1_NF = 3942,
+  ROR64r1_NF_ND = 3943,
+  ROR64rCL = 3944,
+  ROR64rCL_EVEX = 3945,
+  ROR64rCL_ND = 3946,
+  ROR64rCL_NF = 3947,
+  ROR64rCL_NF_ND = 3948,
+  ROR64ri = 3949,
+  ROR64ri_EVEX = 3950,
+  ROR64ri_ND = 3951,
+  ROR64ri_NF = 3952,
+  ROR64ri_NF_ND = 3953,
+  ROR8m1 = 3954,
+  ROR8m1_EVEX = 3955,
+  ROR8m1_ND = 3956,
+  ROR8m1_NF = 3957,
+  ROR8m1_NF_ND = 3958,
+  ROR8mCL = 3959,
+  ROR8mCL_EVEX = 3960,
+  ROR8mCL_ND = 3961,
+  ROR8mCL_NF = 3962,
+  ROR8mCL_NF_ND = 3963,
+  ROR8mi = 3964,
+  ROR8mi_EVEX = 3965,
+  ROR8mi_ND = 3966,
+  ROR8mi_NF = 3967,
+  ROR8mi_NF_ND = 3968,
+  ROR8r1 = 3969,
+  ROR8r1_EVEX = 3970,
+  ROR8r1_ND = 3971,
+  ROR8r1_NF = 3972,
+  ROR8r1_NF_ND = 3973,
+  ROR8rCL = 3974,
+  ROR8rCL_EVEX = 3975,
+  ROR8rCL_ND = 3976,
+  ROR8rCL_NF = 3977,
+  ROR8rCL_NF_ND = 3978,
+  ROR8ri = 3979,
+  ROR8ri_EVEX = 3980,
+  ROR8ri_ND = 3981,
+  ROR8ri_NF = 3982,
+  ROR8ri_NF_ND = 3983,
+  RORX32mi = 3984,
+  RORX32mi_EVEX = 3985,
+  RORX32ri = 3986,
+  RORX32ri_EVEX = 3987,
+  RORX64mi = 3988,
+  RORX64mi_EVEX = 3989,
+  RORX64ri = 3990,
+  RORX64ri_EVEX = 3991,
+  ROUNDPDmi = 3992,
+  ROUNDPDri = 3993,
+  ROUNDPSmi = 3994,
+  ROUNDPSri = 3995,
+  ROUNDSDmi = 3996,
+  ROUNDSDmi_Int = 3997,
+  ROUNDSDri = 3998,
+  ROUNDSDri_Int = 3999,
+  ROUNDSSmi = 4000,
+  ROUNDSSmi_Int = 4001,
+  ROUNDSSri = 4002,
+  ROUNDSSri_Int = 4003,
+  RSM = 4004,
+  RSQRTPSm = 4005,
+  RSQRTPSr = 4006,
+  RSQRTSSm = 4007,
+  RSQRTSSm_Int = 4008,
+  RSQRTSSr = 4009,
+  RSQRTSSr_Int = 4010,
+  RSTORSSP = 4011,
+  SAHF = 4012,
+  SALC = 4013,
+  SAR16m1 = 4014,
+  SAR16m1_EVEX = 4015,
+  SAR16m1_ND = 4016,
+  SAR16m1_NF = 4017,
+  SAR16m1_NF_ND = 4018,
+  SAR16mCL = 4019,
+  SAR16mCL_EVEX = 4020,
+  SAR16mCL_ND = 4021,
+  SAR16mCL_NF = 4022,
+  SAR16mCL_NF_ND = 4023,
+  SAR16mi = 4024,
+  SAR16mi_EVEX = 4025,
+  SAR16mi_ND = 4026,
+  SAR16mi_NF = 4027,
+  SAR16mi_NF_ND = 4028,
+  SAR16r1 = 4029,
+  SAR16r1_EVEX = 4030,
+  SAR16r1_ND = 4031,
+  SAR16r1_NF = 4032,
+  SAR16r1_NF_ND = 4033,
+  SAR16rCL = 4034,
+  SAR16rCL_EVEX = 4035,
+  SAR16rCL_ND = 4036,
+  SAR16rCL_NF = 4037,
+  SAR16rCL_NF_ND = 4038,
+  SAR16ri = 4039,
+  SAR16ri_EVEX = 4040,
+  SAR16ri_ND = 4041,
+  SAR16ri_NF = 4042,
+  SAR16ri_NF_ND = 4043,
+  SAR32m1 = 4044,
+  SAR32m1_EVEX = 4045,
+  SAR32m1_ND = 4046,
+  SAR32m1_NF = 4047,
+  SAR32m1_NF_ND = 4048,
+  SAR32mCL = 4049,
+  SAR32mCL_EVEX = 4050,
+  SAR32mCL_ND = 4051,
+  SAR32mCL_NF = 4052,
+  SAR32mCL_NF_ND = 4053,
+  SAR32mi = 4054,
+  SAR32mi_EVEX = 4055,
+  SAR32mi_ND = 4056,
+  SAR32mi_NF = 4057,
+  SAR32mi_NF_ND = 4058,
+  SAR32r1 = 4059,
+  SAR32r1_EVEX = 4060,
+  SAR32r1_ND = 4061,
+  SAR32r1_NF = 4062,
+  SAR32r1_NF_ND = 4063,
+  SAR32rCL = 4064,
+  SAR32rCL_EVEX = 4065,
+  SAR32rCL_ND = 4066,
+  SAR32rCL_NF = 4067,
+  SAR32rCL_NF_ND = 4068,
+  SAR32ri = 4069,
+  SAR32ri_EVEX = 4070,
+  SAR32ri_ND = 4071,
+  SAR32ri_NF = 4072,
+  SAR32ri_NF_ND = 4073,
+  SAR64m1 = 4074,
+  SAR64m1_EVEX = 4075,
+  SAR64m1_ND = 4076,
+  SAR64m1_NF = 4077,
+  SAR64m1_NF_ND = 4078,
+  SAR64mCL = 4079,
+  SAR64mCL_EVEX = 4080,
+  SAR64mCL_ND = 4081,
+  SAR64mCL_NF = 4082,
+  SAR64mCL_NF_ND = 4083,
+  SAR64mi = 4084,
+  SAR64mi_EVEX = 4085,
+  SAR64mi_ND = 4086,
+  SAR64mi_NF = 4087,
+  SAR64mi_NF_ND = 4088,
+  SAR64r1 = 4089,
+  SAR64r1_EVEX = 4090,
+  SAR64r1_ND = 4091,
+  SAR64r1_NF = 4092,
+  SAR64r1_NF_ND = 4093,
+  SAR64rCL = 4094,
+  SAR64rCL_EVEX = 4095,
+  SAR64rCL_ND = 4096,
+  SAR64rCL_NF = 4097,
+  SAR64rCL_NF_ND = 4098,
+  SAR64ri = 4099,
+  SAR64ri_EVEX = 4100,
+  SAR64ri_ND = 4101,
+  SAR64ri_NF = 4102,
+  SAR64ri_NF_ND = 4103,
+  SAR8m1 = 4104,
+  SAR8m1_EVEX = 4105,
+  SAR8m1_ND = 4106,
+  SAR8m1_NF = 4107,
+  SAR8m1_NF_ND = 4108,
+  SAR8mCL = 4109,
+  SAR8mCL_EVEX = 4110,
+  SAR8mCL_ND = 4111,
+  SAR8mCL_NF = 4112,
+  SAR8mCL_NF_ND = 4113,
+  SAR8mi = 4114,
+  SAR8mi_EVEX = 4115,
+  SAR8mi_ND = 4116,
+  SAR8mi_NF = 4117,
+  SAR8mi_NF_ND = 4118,
+  SAR8r1 = 4119,
+  SAR8r1_EVEX = 4120,
+  SAR8r1_ND = 4121,
+  SAR8r1_NF = 4122,
+  SAR8r1_NF_ND = 4123,
+  SAR8rCL = 4124,
+  SAR8rCL_EVEX = 4125,
+  SAR8rCL_ND = 4126,
+  SAR8rCL_NF = 4127,
+  SAR8rCL_NF_ND = 4128,
+  SAR8ri = 4129,
+  SAR8ri_EVEX = 4130,
+  SAR8ri_ND = 4131,
+  SAR8ri_NF = 4132,
+  SAR8ri_NF_ND = 4133,
+  SARX32rm = 4134,
+  SARX32rm_EVEX = 4135,
+  SARX32rr = 4136,
+  SARX32rr_EVEX = 4137,
+  SARX64rm = 4138,
+  SARX64rm_EVEX = 4139,
+  SARX64rr = 4140,
+  SARX64rr_EVEX = 4141,
+  SAVEPREVSSP = 4142,
+  SBB16i16 = 4143,
+  SBB16mi = 4144,
+  SBB16mi8 = 4145,
+  SBB16mi8_EVEX = 4146,
+  SBB16mi8_ND = 4147,
+  SBB16mi_EVEX = 4148,
+  SBB16mi_ND = 4149,
+  SBB16mr = 4150,
+  SBB16mr_EVEX = 4151,
+  SBB16mr_ND = 4152,
+  SBB16ri = 4153,
+  SBB16ri8 = 4154,
+  SBB16ri8_EVEX = 4155,
+  SBB16ri8_ND = 4156,
+  SBB16ri_EVEX = 4157,
+  SBB16ri_ND = 4158,
+  SBB16rm = 4159,
+  SBB16rm_EVEX = 4160,
+  SBB16rm_ND = 4161,
+  SBB16rr = 4162,
+  SBB16rr_EVEX = 4163,
+  SBB16rr_EVEX_REV = 4164,
+  SBB16rr_ND = 4165,
+  SBB16rr_ND_REV = 4166,
+  SBB16rr_REV = 4167,
+  SBB32i32 = 4168,
+  SBB32mi = 4169,
+  SBB32mi8 = 4170,
+  SBB32mi8_EVEX = 4171,
+  SBB32mi8_ND = 4172,
+  SBB32mi_EVEX = 4173,
+  SBB32mi_ND = 4174,
+  SBB32mr = 4175,
+  SBB32mr_EVEX = 4176,
+  SBB32mr_ND = 4177,
+  SBB32ri = 4178,
+  SBB32ri8 = 4179,
+  SBB32ri8_EVEX = 4180,
+  SBB32ri8_ND = 4181,
+  SBB32ri_EVEX = 4182,
+  SBB32ri_ND = 4183,
+  SBB32rm = 4184,
+  SBB32rm_EVEX = 4185,
+  SBB32rm_ND = 4186,
+  SBB32rr = 4187,
+  SBB32rr_EVEX = 4188,
+  SBB32rr_EVEX_REV = 4189,
+  SBB32rr_ND = 4190,
+  SBB32rr_ND_REV = 4191,
+  SBB32rr_REV = 4192,
+  SBB64i32 = 4193,
+  SBB64mi32 = 4194,
+  SBB64mi32_EVEX = 4195,
+  SBB64mi32_ND = 4196,
+  SBB64mi8 = 4197,
+  SBB64mi8_EVEX = 4198,
+  SBB64mi8_ND = 4199,
+  SBB64mr = 4200,
+  SBB64mr_EVEX = 4201,
+  SBB64mr_ND = 4202,
+  SBB64ri32 = 4203,
+  SBB64ri32_EVEX = 4204,
+  SBB64ri32_ND = 4205,
+  SBB64ri8 = 4206,
+  SBB64ri8_EVEX = 4207,
+  SBB64ri8_ND = 4208,
+  SBB64rm = 4209,
+  SBB64rm_EVEX = 4210,
+  SBB64rm_ND = 4211,
+  SBB64rr = 4212,
+  SBB64rr_EVEX = 4213,
+  SBB64rr_EVEX_REV = 4214,
+  SBB64rr_ND = 4215,
+  SBB64rr_ND_REV = 4216,
+  SBB64rr_REV = 4217,
+  SBB8i8 = 4218,
+  SBB8mi = 4219,
+  SBB8mi8 = 4220,
+  SBB8mi_EVEX = 4221,
+  SBB8mi_ND = 4222,
+  SBB8mr = 4223,
+  SBB8mr_EVEX = 4224,
+  SBB8mr_ND = 4225,
+  SBB8ri = 4226,
+  SBB8ri8 = 4227,
+  SBB8ri_EVEX = 4228,
+  SBB8ri_ND = 4229,
+  SBB8rm = 4230,
+  SBB8rm_EVEX = 4231,
+  SBB8rm_ND = 4232,
+  SBB8rr = 4233,
+  SBB8rr_EVEX = 4234,
+  SBB8rr_EVEX_REV = 4235,
+  SBB8rr_ND = 4236,
+  SBB8rr_ND_REV = 4237,
+  SBB8rr_REV = 4238,
+  SCASB = 4239,
+  SCASL = 4240,
+  SCASQ = 4241,
+  SCASW = 4242,
+  SEAMCALL = 4243,
+  SEAMOPS = 4244,
+  SEAMRET = 4245,
+  SEG_ALLOCA_32 = 4246,
+  SEG_ALLOCA_64 = 4247,
+  SENDUIPI = 4248,
+  SERIALIZE = 4249,
+  SETCCm = 4250,
+  SETCCm_EVEX = 4251,
+  SETCCr = 4252,
+  SETCCr_EVEX = 4253,
+  SETSSBSY = 4254,
+  SETZUCCm = 4255,
+  SETZUCCr = 4256,
+  SFENCE = 4257,
+  SGDT16m = 4258,
+  SGDT32m = 4259,
+  SGDT64m = 4260,
+  SHA1MSG1rm = 4261,
+  SHA1MSG1rr = 4262,
+  SHA1MSG2rm = 4263,
+  SHA1MSG2rr = 4264,
+  SHA1NEXTErm = 4265,
+  SHA1NEXTErr = 4266,
+  SHA1RNDS4rmi = 4267,
+  SHA1RNDS4rri = 4268,
+  SHA256MSG1rm = 4269,
+  SHA256MSG1rr = 4270,
+  SHA256MSG2rm = 4271,
+  SHA256MSG2rr = 4272,
+  SHA256RNDS2rm = 4273,
+  SHA256RNDS2rr = 4274,
+  SHL16m1 = 4275,
+  SHL16m1_EVEX = 4276,
+  SHL16m1_ND = 4277,
+  SHL16m1_NF = 4278,
+  SHL16m1_NF_ND = 4279,
+  SHL16mCL = 4280,
+  SHL16mCL_EVEX = 4281,
+  SHL16mCL_ND = 4282,
+  SHL16mCL_NF = 4283,
+  SHL16mCL_NF_ND = 4284,
+  SHL16mi = 4285,
+  SHL16mi_EVEX = 4286,
+  SHL16mi_ND = 4287,
+  SHL16mi_NF = 4288,
+  SHL16mi_NF_ND = 4289,
+  SHL16r1 = 4290,
+  SHL16r1_EVEX = 4291,
+  SHL16r1_ND = 4292,
+  SHL16r1_NF = 4293,
+  SHL16r1_NF_ND = 4294,
+  SHL16rCL = 4295,
+  SHL16rCL_EVEX = 4296,
+  SHL16rCL_ND = 4297,
+  SHL16rCL_NF = 4298,
+  SHL16rCL_NF_ND = 4299,
+  SHL16ri = 4300,
+  SHL16ri_EVEX = 4301,
+  SHL16ri_ND = 4302,
+  SHL16ri_NF = 4303,
+  SHL16ri_NF_ND = 4304,
+  SHL32m1 = 4305,
+  SHL32m1_EVEX = 4306,
+  SHL32m1_ND = 4307,
+  SHL32m1_NF = 4308,
+  SHL32m1_NF_ND = 4309,
+  SHL32mCL = 4310,
+  SHL32mCL_EVEX = 4311,
+  SHL32mCL_ND = 4312,
+  SHL32mCL_NF = 4313,
+  SHL32mCL_NF_ND = 4314,
+  SHL32mi = 4315,
+  SHL32mi_EVEX = 4316,
+  SHL32mi_ND = 4317,
+  SHL32mi_NF = 4318,
+  SHL32mi_NF_ND = 4319,
+  SHL32r1 = 4320,
+  SHL32r1_EVEX = 4321,
+  SHL32r1_ND = 4322,
+  SHL32r1_NF = 4323,
+  SHL32r1_NF_ND = 4324,
+  SHL32rCL = 4325,
+  SHL32rCL_EVEX = 4326,
+  SHL32rCL_ND = 4327,
+  SHL32rCL_NF = 4328,
+  SHL32rCL_NF_ND = 4329,
+  SHL32ri = 4330,
+  SHL32ri_EVEX = 4331,
+  SHL32ri_ND = 4332,
+  SHL32ri_NF = 4333,
+  SHL32ri_NF_ND = 4334,
+  SHL64m1 = 4335,
+  SHL64m1_EVEX = 4336,
+  SHL64m1_ND = 4337,
+  SHL64m1_NF = 4338,
+  SHL64m1_NF_ND = 4339,
+  SHL64mCL = 4340,
+  SHL64mCL_EVEX = 4341,
+  SHL64mCL_ND = 4342,
+  SHL64mCL_NF = 4343,
+  SHL64mCL_NF_ND = 4344,
+  SHL64mi = 4345,
+  SHL64mi_EVEX = 4346,
+  SHL64mi_ND = 4347,
+  SHL64mi_NF = 4348,
+  SHL64mi_NF_ND = 4349,
+  SHL64r1 = 4350,
+  SHL64r1_EVEX = 4351,
+  SHL64r1_ND = 4352,
+  SHL64r1_NF = 4353,
+  SHL64r1_NF_ND = 4354,
+  SHL64rCL = 4355,
+  SHL64rCL_EVEX = 4356,
+  SHL64rCL_ND = 4357,
+  SHL64rCL_NF = 4358,
+  SHL64rCL_NF_ND = 4359,
+  SHL64ri = 4360,
+  SHL64ri_EVEX = 4361,
+  SHL64ri_ND = 4362,
+  SHL64ri_NF = 4363,
+  SHL64ri_NF_ND = 4364,
+  SHL8m1 = 4365,
+  SHL8m1_EVEX = 4366,
+  SHL8m1_ND = 4367,
+  SHL8m1_NF = 4368,
+  SHL8m1_NF_ND = 4369,
+  SHL8mCL = 4370,
+  SHL8mCL_EVEX = 4371,
+  SHL8mCL_ND = 4372,
+  SHL8mCL_NF = 4373,
+  SHL8mCL_NF_ND = 4374,
+  SHL8mi = 4375,
+  SHL8mi_EVEX = 4376,
+  SHL8mi_ND = 4377,
+  SHL8mi_NF = 4378,
+  SHL8mi_NF_ND = 4379,
+  SHL8r1 = 4380,
+  SHL8r1_EVEX = 4381,
+  SHL8r1_ND = 4382,
+  SHL8r1_NF = 4383,
+  SHL8r1_NF_ND = 4384,
+  SHL8rCL = 4385,
+  SHL8rCL_EVEX = 4386,
+  SHL8rCL_ND = 4387,
+  SHL8rCL_NF = 4388,
+  SHL8rCL_NF_ND = 4389,
+  SHL8ri = 4390,
+  SHL8ri_EVEX = 4391,
+  SHL8ri_ND = 4392,
+  SHL8ri_NF = 4393,
+  SHL8ri_NF_ND = 4394,
+  SHLD16mrCL = 4395,
+  SHLD16mrCL_EVEX = 4396,
+  SHLD16mrCL_ND = 4397,
+  SHLD16mrCL_NF = 4398,
+  SHLD16mrCL_NF_ND = 4399,
+  SHLD16mri8 = 4400,
+  SHLD16mri8_EVEX = 4401,
+  SHLD16mri8_ND = 4402,
+  SHLD16mri8_NF = 4403,
+  SHLD16mri8_NF_ND = 4404,
+  SHLD16rrCL = 4405,
+  SHLD16rrCL_EVEX = 4406,
+  SHLD16rrCL_ND = 4407,
+  SHLD16rrCL_NF = 4408,
+  SHLD16rrCL_NF_ND = 4409,
+  SHLD16rri8 = 4410,
+  SHLD16rri8_EVEX = 4411,
+  SHLD16rri8_ND = 4412,
+  SHLD16rri8_NF = 4413,
+  SHLD16rri8_NF_ND = 4414,
+  SHLD32mrCL = 4415,
+  SHLD32mrCL_EVEX = 4416,
+  SHLD32mrCL_ND = 4417,
+  SHLD32mrCL_NF = 4418,
+  SHLD32mrCL_NF_ND = 4419,
+  SHLD32mri8 = 4420,
+  SHLD32mri8_EVEX = 4421,
+  SHLD32mri8_ND = 4422,
+  SHLD32mri8_NF = 4423,
+  SHLD32mri8_NF_ND = 4424,
+  SHLD32rrCL = 4425,
+  SHLD32rrCL_EVEX = 4426,
+  SHLD32rrCL_ND = 4427,
+  SHLD32rrCL_NF = 4428,
+  SHLD32rrCL_NF_ND = 4429,
+  SHLD32rri8 = 4430,
+  SHLD32rri8_EVEX = 4431,
+  SHLD32rri8_ND = 4432,
+  SHLD32rri8_NF = 4433,
+  SHLD32rri8_NF_ND = 4434,
+  SHLD64mrCL = 4435,
+  SHLD64mrCL_EVEX = 4436,
+  SHLD64mrCL_ND = 4437,
+  SHLD64mrCL_NF = 4438,
+  SHLD64mrCL_NF_ND = 4439,
+  SHLD64mri8 = 4440,
+  SHLD64mri8_EVEX = 4441,
+  SHLD64mri8_ND = 4442,
+  SHLD64mri8_NF = 4443,
+  SHLD64mri8_NF_ND = 4444,
+  SHLD64rrCL = 4445,
+  SHLD64rrCL_EVEX = 4446,
+  SHLD64rrCL_ND = 4447,
+  SHLD64rrCL_NF = 4448,
+  SHLD64rrCL_NF_ND = 4449,
+  SHLD64rri8 = 4450,
+  SHLD64rri8_EVEX = 4451,
+  SHLD64rri8_ND = 4452,
+  SHLD64rri8_NF = 4453,
+  SHLD64rri8_NF_ND = 4454,
+  SHLX32rm = 4455,
+  SHLX32rm_EVEX = 4456,
+  SHLX32rr = 4457,
+  SHLX32rr_EVEX = 4458,
+  SHLX64rm = 4459,
+  SHLX64rm_EVEX = 4460,
+  SHLX64rr = 4461,
+  SHLX64rr_EVEX = 4462,
+  SHR16m1 = 4463,
+  SHR16m1_EVEX = 4464,
+  SHR16m1_ND = 4465,
+  SHR16m1_NF = 4466,
+  SHR16m1_NF_ND = 4467,
+  SHR16mCL = 4468,
+  SHR16mCL_EVEX = 4469,
+  SHR16mCL_ND = 4470,
+  SHR16mCL_NF = 4471,
+  SHR16mCL_NF_ND = 4472,
+  SHR16mi = 4473,
+  SHR16mi_EVEX = 4474,
+  SHR16mi_ND = 4475,
+  SHR16mi_NF = 4476,
+  SHR16mi_NF_ND = 4477,
+  SHR16r1 = 4478,
+  SHR16r1_EVEX = 4479,
+  SHR16r1_ND = 4480,
+  SHR16r1_NF = 4481,
+  SHR16r1_NF_ND = 4482,
+  SHR16rCL = 4483,
+  SHR16rCL_EVEX = 4484,
+  SHR16rCL_ND = 4485,
+  SHR16rCL_NF = 4486,
+  SHR16rCL_NF_ND = 4487,
+  SHR16ri = 4488,
+  SHR16ri_EVEX = 4489,
+  SHR16ri_ND = 4490,
+  SHR16ri_NF = 4491,
+  SHR16ri_NF_ND = 4492,
+  SHR32m1 = 4493,
+  SHR32m1_EVEX = 4494,
+  SHR32m1_ND = 4495,
+  SHR32m1_NF = 4496,
+  SHR32m1_NF_ND = 4497,
+  SHR32mCL = 4498,
+  SHR32mCL_EVEX = 4499,
+  SHR32mCL_ND = 4500,
+  SHR32mCL_NF = 4501,
+  SHR32mCL_NF_ND = 4502,
+  SHR32mi = 4503,
+  SHR32mi_EVEX = 4504,
+  SHR32mi_ND = 4505,
+  SHR32mi_NF = 4506,
+  SHR32mi_NF_ND = 4507,
+  SHR32r1 = 4508,
+  SHR32r1_EVEX = 4509,
+  SHR32r1_ND = 4510,
+  SHR32r1_NF = 4511,
+  SHR32r1_NF_ND = 4512,
+  SHR32rCL = 4513,
+  SHR32rCL_EVEX = 4514,
+  SHR32rCL_ND = 4515,
+  SHR32rCL_NF = 4516,
+  SHR32rCL_NF_ND = 4517,
+  SHR32ri = 4518,
+  SHR32ri_EVEX = 4519,
+  SHR32ri_ND = 4520,
+  SHR32ri_NF = 4521,
+  SHR32ri_NF_ND = 4522,
+  SHR64m1 = 4523,
+  SHR64m1_EVEX = 4524,
+  SHR64m1_ND = 4525,
+  SHR64m1_NF = 4526,
+  SHR64m1_NF_ND = 4527,
+  SHR64mCL = 4528,
+  SHR64mCL_EVEX = 4529,
+  SHR64mCL_ND = 4530,
+  SHR64mCL_NF = 4531,
+  SHR64mCL_NF_ND = 4532,
+  SHR64mi = 4533,
+  SHR64mi_EVEX = 4534,
+  SHR64mi_ND = 4535,
+  SHR64mi_NF = 4536,
+  SHR64mi_NF_ND = 4537,
+  SHR64r1 = 4538,
+  SHR64r1_EVEX = 4539,
+  SHR64r1_ND = 4540,
+  SHR64r1_NF = 4541,
+  SHR64r1_NF_ND = 4542,
+  SHR64rCL = 4543,
+  SHR64rCL_EVEX = 4544,
+  SHR64rCL_ND = 4545,
+  SHR64rCL_NF = 4546,
+  SHR64rCL_NF_ND = 4547,
+  SHR64ri = 4548,
+  SHR64ri_EVEX = 4549,
+  SHR64ri_ND = 4550,
+  SHR64ri_NF = 4551,
+  SHR64ri_NF_ND = 4552,
+  SHR8m1 = 4553,
+  SHR8m1_EVEX = 4554,
+  SHR8m1_ND = 4555,
+  SHR8m1_NF = 4556,
+  SHR8m1_NF_ND = 4557,
+  SHR8mCL = 4558,
+  SHR8mCL_EVEX = 4559,
+  SHR8mCL_ND = 4560,
+  SHR8mCL_NF = 4561,
+  SHR8mCL_NF_ND = 4562,
+  SHR8mi = 4563,
+  SHR8mi_EVEX = 4564,
+  SHR8mi_ND = 4565,
+  SHR8mi_NF = 4566,
+  SHR8mi_NF_ND = 4567,
+  SHR8r1 = 4568,
+  SHR8r1_EVEX = 4569,
+  SHR8r1_ND = 4570,
+  SHR8r1_NF = 4571,
+  SHR8r1_NF_ND = 4572,
+  SHR8rCL = 4573,
+  SHR8rCL_EVEX = 4574,
+  SHR8rCL_ND = 4575,
+  SHR8rCL_NF = 4576,
+  SHR8rCL_NF_ND = 4577,
+  SHR8ri = 4578,
+  SHR8ri_EVEX = 4579,
+  SHR8ri_ND = 4580,
+  SHR8ri_NF = 4581,
+  SHR8ri_NF_ND = 4582,
+  SHRD16mrCL = 4583,
+  SHRD16mrCL_EVEX = 4584,
+  SHRD16mrCL_ND = 4585,
+  SHRD16mrCL_NF = 4586,
+  SHRD16mrCL_NF_ND = 4587,
+  SHRD16mri8 = 4588,
+  SHRD16mri8_EVEX = 4589,
+  SHRD16mri8_ND = 4590,
+  SHRD16mri8_NF = 4591,
+  SHRD16mri8_NF_ND = 4592,
+  SHRD16rrCL = 4593,
+  SHRD16rrCL_EVEX = 4594,
+  SHRD16rrCL_ND = 4595,
+  SHRD16rrCL_NF = 4596,
+  SHRD16rrCL_NF_ND = 4597,
+  SHRD16rri8 = 4598,
+  SHRD16rri8_EVEX = 4599,
+  SHRD16rri8_ND = 4600,
+  SHRD16rri8_NF = 4601,
+  SHRD16rri8_NF_ND = 4602,
+  SHRD32mrCL = 4603,
+  SHRD32mrCL_EVEX = 4604,
+  SHRD32mrCL_ND = 4605,
+  SHRD32mrCL_NF = 4606,
+  SHRD32mrCL_NF_ND = 4607,
+  SHRD32mri8 = 4608,
+  SHRD32mri8_EVEX = 4609,
+  SHRD32mri8_ND = 4610,
+  SHRD32mri8_NF = 4611,
+  SHRD32mri8_NF_ND = 4612,
+  SHRD32rrCL = 4613,
+  SHRD32rrCL_EVEX = 4614,
+  SHRD32rrCL_ND = 4615,
+  SHRD32rrCL_NF = 4616,
+  SHRD32rrCL_NF_ND = 4617,
+  SHRD32rri8 = 4618,
+  SHRD32rri8_EVEX = 4619,
+  SHRD32rri8_ND = 4620,
+  SHRD32rri8_NF = 4621,
+  SHRD32rri8_NF_ND = 4622,
+  SHRD64mrCL = 4623,
+  SHRD64mrCL_EVEX = 4624,
+  SHRD64mrCL_ND = 4625,
+  SHRD64mrCL_NF = 4626,
+  SHRD64mrCL_NF_ND = 4627,
+  SHRD64mri8 = 4628,
+  SHRD64mri8_EVEX = 4629,
+  SHRD64mri8_ND = 4630,
+  SHRD64mri8_NF = 4631,
+  SHRD64mri8_NF_ND = 4632,
+  SHRD64rrCL = 4633,
+  SHRD64rrCL_EVEX = 4634,
+  SHRD64rrCL_ND = 4635,
+  SHRD64rrCL_NF = 4636,
+  SHRD64rrCL_NF_ND = 4637,
+  SHRD64rri8 = 4638,
+  SHRD64rri8_EVEX = 4639,
+  SHRD64rri8_ND = 4640,
+  SHRD64rri8_NF = 4641,
+  SHRD64rri8_NF_ND = 4642,
+  SHRX32rm = 4643,
+  SHRX32rm_EVEX = 4644,
+  SHRX32rr = 4645,
+  SHRX32rr_EVEX = 4646,
+  SHRX64rm = 4647,
+  SHRX64rm_EVEX = 4648,
+  SHRX64rr = 4649,
+  SHRX64rr_EVEX = 4650,
+  SHUFPDrmi = 4651,
+  SHUFPDrri = 4652,
+  SHUFPSrmi = 4653,
+  SHUFPSrri = 4654,
+  SIDT16m = 4655,
+  SIDT32m = 4656,
+  SIDT64m = 4657,
+  SKINIT = 4658,
+  SLDT16m = 4659,
+  SLDT16r = 4660,
+  SLDT32r = 4661,
+  SLDT64r = 4662,
+  SLWPCB = 4663,
+  SLWPCB64 = 4664,
+  SMSW16m = 4665,
+  SMSW16r = 4666,
+  SMSW32r = 4667,
+  SMSW64r = 4668,
+  SQRTPDm = 4669,
+  SQRTPDr = 4670,
+  SQRTPSm = 4671,
+  SQRTPSr = 4672,
+  SQRTSDm = 4673,
+  SQRTSDm_Int = 4674,
+  SQRTSDr = 4675,
+  SQRTSDr_Int = 4676,
+  SQRTSSm = 4677,
+  SQRTSSm_Int = 4678,
+  SQRTSSr = 4679,
+  SQRTSSr_Int = 4680,
+  SQRT_F = 4681,
+  SQRT_Fp32 = 4682,
+  SQRT_Fp64 = 4683,
+  SQRT_Fp80 = 4684,
+  SS_PREFIX = 4685,
+  STAC = 4686,
+  STACKALLOC_W_PROBING = 4687,
+  STC = 4688,
+  STD = 4689,
+  STGI = 4690,
+  STI = 4691,
+  STMXCSR = 4692,
+  STOSB = 4693,
+  STOSL = 4694,
+  STOSQ = 4695,
+  STOSW = 4696,
+  STR16r = 4697,
+  STR32r = 4698,
+  STR64r = 4699,
+  STRm = 4700,
+  STTILECFG = 4701,
+  STTILECFG_EVEX = 4702,
+  STUI = 4703,
+  ST_F32m = 4704,
+  ST_F64m = 4705,
+  ST_FP32m = 4706,
+  ST_FP64m = 4707,
+  ST_FP80m = 4708,
+  ST_FPrr = 4709,
+  ST_Fp32m = 4710,
+  ST_Fp64m = 4711,
+  ST_Fp64m32 = 4712,
+  ST_Fp80m32 = 4713,
+  ST_Fp80m64 = 4714,
+  ST_FpP32m = 4715,
+  ST_FpP64m = 4716,
+  ST_FpP64m32 = 4717,
+  ST_FpP80m = 4718,
+  ST_FpP80m32 = 4719,
+  ST_FpP80m64 = 4720,
+  ST_Frr = 4721,
+  SUB16i16 = 4722,
+  SUB16mi = 4723,
+  SUB16mi8 = 4724,
+  SUB16mi8_EVEX = 4725,
+  SUB16mi8_ND = 4726,
+  SUB16mi8_NF = 4727,
+  SUB16mi8_NF_ND = 4728,
+  SUB16mi_EVEX = 4729,
+  SUB16mi_ND = 4730,
+  SUB16mi_NF = 4731,
+  SUB16mi_NF_ND = 4732,
+  SUB16mr = 4733,
+  SUB16mr_EVEX = 4734,
+  SUB16mr_ND = 4735,
+  SUB16mr_NF = 4736,
+  SUB16mr_NF_ND = 4737,
+  SUB16ri = 4738,
+  SUB16ri8 = 4739,
+  SUB16ri8_EVEX = 4740,
+  SUB16ri8_ND = 4741,
+  SUB16ri8_NF = 4742,
+  SUB16ri8_NF_ND = 4743,
+  SUB16ri_EVEX = 4744,
+  SUB16ri_ND = 4745,
+  SUB16ri_NF = 4746,
+  SUB16ri_NF_ND = 4747,
+  SUB16rm = 4748,
+  SUB16rm_EVEX = 4749,
+  SUB16rm_ND = 4750,
+  SUB16rm_NF = 4751,
+  SUB16rm_NF_ND = 4752,
+  SUB16rr = 4753,
+  SUB16rr_EVEX = 4754,
+  SUB16rr_EVEX_REV = 4755,
+  SUB16rr_ND = 4756,
+  SUB16rr_ND_REV = 4757,
+  SUB16rr_NF = 4758,
+  SUB16rr_NF_ND = 4759,
+  SUB16rr_NF_ND_REV = 4760,
+  SUB16rr_NF_REV = 4761,
+  SUB16rr_REV = 4762,
+  SUB32i32 = 4763,
+  SUB32mi = 4764,
+  SUB32mi8 = 4765,
+  SUB32mi8_EVEX = 4766,
+  SUB32mi8_ND = 4767,
+  SUB32mi8_NF = 4768,
+  SUB32mi8_NF_ND = 4769,
+  SUB32mi_EVEX = 4770,
+  SUB32mi_ND = 4771,
+  SUB32mi_NF = 4772,
+  SUB32mi_NF_ND = 4773,
+  SUB32mr = 4774,
+  SUB32mr_EVEX = 4775,
+  SUB32mr_ND = 4776,
+  SUB32mr_NF = 4777,
+  SUB32mr_NF_ND = 4778,
+  SUB32ri = 4779,
+  SUB32ri8 = 4780,
+  SUB32ri8_EVEX = 4781,
+  SUB32ri8_ND = 4782,
+  SUB32ri8_NF = 4783,
+  SUB32ri8_NF_ND = 4784,
+  SUB32ri_EVEX = 4785,
+  SUB32ri_ND = 4786,
+  SUB32ri_NF = 4787,
+  SUB32ri_NF_ND = 4788,
+  SUB32rm = 4789,
+  SUB32rm_EVEX = 4790,
+  SUB32rm_ND = 4791,
+  SUB32rm_NF = 4792,
+  SUB32rm_NF_ND = 4793,
+  SUB32rr = 4794,
+  SUB32rr_EVEX = 4795,
+  SUB32rr_EVEX_REV = 4796,
+  SUB32rr_ND = 4797,
+  SUB32rr_ND_REV = 4798,
+  SUB32rr_NF = 4799,
+  SUB32rr_NF_ND = 4800,
+  SUB32rr_NF_ND_REV = 4801,
+  SUB32rr_NF_REV = 4802,
+  SUB32rr_REV = 4803,
+  SUB64i32 = 4804,
+  SUB64mi32 = 4805,
+  SUB64mi32_EVEX = 4806,
+  SUB64mi32_ND = 4807,
+  SUB64mi32_NF = 4808,
+  SUB64mi32_NF_ND = 4809,
+  SUB64mi8 = 4810,
+  SUB64mi8_EVEX = 4811,
+  SUB64mi8_ND = 4812,
+  SUB64mi8_NF = 4813,
+  SUB64mi8_NF_ND = 4814,
+  SUB64mr = 4815,
+  SUB64mr_EVEX = 4816,
+  SUB64mr_ND = 4817,
+  SUB64mr_NF = 4818,
+  SUB64mr_NF_ND = 4819,
+  SUB64ri32 = 4820,
+  SUB64ri32_EVEX = 4821,
+  SUB64ri32_ND = 4822,
+  SUB64ri32_NF = 4823,
+  SUB64ri32_NF_ND = 4824,
+  SUB64ri8 = 4825,
+  SUB64ri8_EVEX = 4826,
+  SUB64ri8_ND = 4827,
+  SUB64ri8_NF = 4828,
+  SUB64ri8_NF_ND = 4829,
+  SUB64rm = 4830,
+  SUB64rm_EVEX = 4831,
+  SUB64rm_ND = 4832,
+  SUB64rm_NF = 4833,
+  SUB64rm_NF_ND = 4834,
+  SUB64rr = 4835,
+  SUB64rr_EVEX = 4836,
+  SUB64rr_EVEX_REV = 4837,
+  SUB64rr_ND = 4838,
+  SUB64rr_ND_REV = 4839,
+  SUB64rr_NF = 4840,
+  SUB64rr_NF_ND = 4841,
+  SUB64rr_NF_ND_REV = 4842,
+  SUB64rr_NF_REV = 4843,
+  SUB64rr_REV = 4844,
+  SUB8i8 = 4845,
+  SUB8mi = 4846,
+  SUB8mi8 = 4847,
+  SUB8mi_EVEX = 4848,
+  SUB8mi_ND = 4849,
+  SUB8mi_NF = 4850,
+  SUB8mi_NF_ND = 4851,
+  SUB8mr = 4852,
+  SUB8mr_EVEX = 4853,
+  SUB8mr_ND = 4854,
+  SUB8mr_NF = 4855,
+  SUB8mr_NF_ND = 4856,
+  SUB8ri = 4857,
+  SUB8ri8 = 4858,
+  SUB8ri_EVEX = 4859,
+  SUB8ri_ND = 4860,
+  SUB8ri_NF = 4861,
+  SUB8ri_NF_ND = 4862,
+  SUB8rm = 4863,
+  SUB8rm_EVEX = 4864,
+  SUB8rm_ND = 4865,
+  SUB8rm_NF = 4866,
+  SUB8rm_NF_ND = 4867,
+  SUB8rr = 4868,
+  SUB8rr_EVEX = 4869,
+  SUB8rr_EVEX_REV = 4870,
+  SUB8rr_ND = 4871,
+  SUB8rr_ND_REV = 4872,
+  SUB8rr_NF = 4873,
+  SUB8rr_NF_ND = 4874,
+  SUB8rr_NF_ND_REV = 4875,
+  SUB8rr_NF_REV = 4876,
+  SUB8rr_REV = 4877,
+  SUBPDrm = 4878,
+  SUBPDrr = 4879,
+  SUBPSrm = 4880,
+  SUBPSrr = 4881,
+  SUBR_F32m = 4882,
+  SUBR_F64m = 4883,
+  SUBR_FI16m = 4884,
+  SUBR_FI32m = 4885,
+  SUBR_FPrST0 = 4886,
+  SUBR_FST0r = 4887,
+  SUBR_Fp32m = 4888,
+  SUBR_Fp64m = 4889,
+  SUBR_Fp64m32 = 4890,
+  SUBR_Fp80m32 = 4891,
+  SUBR_Fp80m64 = 4892,
+  SUBR_FpI16m32 = 4893,
+  SUBR_FpI16m64 = 4894,
+  SUBR_FpI16m80 = 4895,
+  SUBR_FpI32m32 = 4896,
+  SUBR_FpI32m64 = 4897,
+  SUBR_FpI32m80 = 4898,
+  SUBR_FrST0 = 4899,
+  SUBSDrm = 4900,
+  SUBSDrm_Int = 4901,
+  SUBSDrr = 4902,
+  SUBSDrr_Int = 4903,
+  SUBSSrm = 4904,
+  SUBSSrm_Int = 4905,
+  SUBSSrr = 4906,
+  SUBSSrr_Int = 4907,
+  SUB_F32m = 4908,
+  SUB_F64m = 4909,
+  SUB_FI16m = 4910,
+  SUB_FI32m = 4911,
+  SUB_FPrST0 = 4912,
+  SUB_FST0r = 4913,
+  SUB_Fp32 = 4914,
+  SUB_Fp32m = 4915,
+  SUB_Fp64 = 4916,
+  SUB_Fp64m = 4917,
+  SUB_Fp64m32 = 4918,
+  SUB_Fp80 = 4919,
+  SUB_Fp80m32 = 4920,
+  SUB_Fp80m64 = 4921,
+  SUB_FpI16m32 = 4922,
+  SUB_FpI16m64 = 4923,
+  SUB_FpI16m80 = 4924,
+  SUB_FpI32m32 = 4925,
+  SUB_FpI32m64 = 4926,
+  SUB_FpI32m80 = 4927,
+  SUB_FrST0 = 4928,
+  SWAPGS = 4929,
+  SYSCALL = 4930,
+  SYSENTER = 4931,
+  SYSEXIT = 4932,
+  SYSEXIT64 = 4933,
+  SYSRET = 4934,
+  SYSRET64 = 4935,
+  T1MSKC32rm = 4936,
+  T1MSKC32rr = 4937,
+  T1MSKC64rm = 4938,
+  T1MSKC64rr = 4939,
+  TAILJMPd = 4940,
+  TAILJMPd64 = 4941,
+  TAILJMPd64_CC = 4942,
+  TAILJMPd_CC = 4943,
+  TAILJMPm = 4944,
+  TAILJMPm64 = 4945,
+  TAILJMPm64_REX = 4946,
+  TAILJMPr = 4947,
+  TAILJMPr64 = 4948,
+  TAILJMPr64_REX = 4949,
+  TCMMIMFP16PS = 4950,
+  TCMMRLFP16PS = 4951,
+  TCRETURN_HIPE32ri = 4952,
+  TCRETURN_WIN64ri = 4953,
+  TCRETURN_WINmi64 = 4954,
+  TCRETURNdi = 4955,
+  TCRETURNdi64 = 4956,
+  TCRETURNdi64cc = 4957,
+  TCRETURNdicc = 4958,
+  TCRETURNmi = 4959,
+  TCRETURNmi64 = 4960,
+  TCRETURNri = 4961,
+  TCRETURNri64 = 4962,
+  TCRETURNri64_ImpCall = 4963,
+  TCVTROWD2PSrte = 4964,
+  TCVTROWD2PSrti = 4965,
+  TCVTROWPS2BF16Hrte = 4966,
+  TCVTROWPS2BF16Hrti = 4967,
+  TCVTROWPS2BF16Lrte = 4968,
+  TCVTROWPS2BF16Lrti = 4969,
+  TCVTROWPS2PHHrte = 4970,
+  TCVTROWPS2PHHrti = 4971,
+  TCVTROWPS2PHLrte = 4972,
+  TCVTROWPS2PHLrti = 4973,
+  TDCALL = 4974,
+  TDPBF16PS = 4975,
+  TDPBF8PS = 4976,
+  TDPBHF8PS = 4977,
+  TDPBSSD = 4978,
+  TDPBSUD = 4979,
+  TDPBUSD = 4980,
+  TDPBUUD = 4981,
+  TDPFP16PS = 4982,
+  TDPHBF8PS = 4983,
+  TDPHF8PS = 4984,
+  TEST16i16 = 4985,
+  TEST16mi = 4986,
+  TEST16mr = 4987,
+  TEST16ri = 4988,
+  TEST16rr = 4989,
+  TEST32i32 = 4990,
+  TEST32mi = 4991,
+  TEST32mr = 4992,
+  TEST32ri = 4993,
+  TEST32rr = 4994,
+  TEST64i32 = 4995,
+  TEST64mi32 = 4996,
+  TEST64mr = 4997,
+  TEST64ri32 = 4998,
+  TEST64rr = 4999,
+  TEST8i8 = 5000,
+  TEST8mi = 5001,
+  TEST8mr = 5002,
+  TEST8ri = 5003,
+  TEST8rr = 5004,
+  TESTUI = 5005,
+  TILELOADD = 5006,
+  TILELOADDRS = 5007,
+  TILELOADDRST1 = 5008,
+  TILELOADDRST1_EVEX = 5009,
+  TILELOADDRS_EVEX = 5010,
+  TILELOADDT1 = 5011,
+  TILELOADDT1_EVEX = 5012,
+  TILELOADD_EVEX = 5013,
+  TILEMOVROWrte = 5014,
+  TILEMOVROWrti = 5015,
+  TILERELEASE = 5016,
+  TILESTORED = 5017,
+  TILESTORED_EVEX = 5018,
+  TILEZERO = 5019,
+  TLBSYNC = 5020,
+  TLSCall_32 = 5021,
+  TLSCall_64 = 5022,
+  TLS_addr32 = 5023,
+  TLS_addr64 = 5024,
+  TLS_addrX32 = 5025,
+  TLS_base_addr32 = 5026,
+  TLS_base_addr64 = 5027,
+  TLS_base_addrX32 = 5028,
+  TLS_desc32 = 5029,
+  TLS_desc64 = 5030,
+  TMMULTF32PS = 5031,
+  TPAUSE = 5032,
+  TRAP = 5033,
+  TST_F = 5034,
+  TST_Fp32 = 5035,
+  TST_Fp64 = 5036,
+  TST_Fp80 = 5037,
+  TZCNT16rm = 5038,
+  TZCNT16rm_EVEX = 5039,
+  TZCNT16rm_NF = 5040,
+  TZCNT16rr = 5041,
+  TZCNT16rr_EVEX = 5042,
+  TZCNT16rr_NF = 5043,
+  TZCNT32rm = 5044,
+  TZCNT32rm_EVEX = 5045,
+  TZCNT32rm_NF = 5046,
+  TZCNT32rr = 5047,
+  TZCNT32rr_EVEX = 5048,
+  TZCNT32rr_NF = 5049,
+  TZCNT64rm = 5050,
+  TZCNT64rm_EVEX = 5051,
+  TZCNT64rm_NF = 5052,
+  TZCNT64rr = 5053,
+  TZCNT64rr_EVEX = 5054,
+  TZCNT64rr_NF = 5055,
+  TZMSK32rm = 5056,
+  TZMSK32rr = 5057,
+  TZMSK64rm = 5058,
+  TZMSK64rr = 5059,
+  UBSAN_UD1 = 5060,
+  UCOMISDrm = 5061,
+  UCOMISDrm_Int = 5062,
+  UCOMISDrr = 5063,
+  UCOMISDrr_Int = 5064,
+  UCOMISSrm = 5065,
+  UCOMISSrm_Int = 5066,
+  UCOMISSrr = 5067,
+  UCOMISSrr_Int = 5068,
+  UCOM_FIPr = 5069,
+  UCOM_FIr = 5070,
+  UCOM_FPPr = 5071,
+  UCOM_FPr = 5072,
+  UCOM_FpIr32 = 5073,
+  UCOM_FpIr64 = 5074,
+  UCOM_FpIr80 = 5075,
+  UCOM_Fpr32 = 5076,
+  UCOM_Fpr64 = 5077,
+  UCOM_Fpr80 = 5078,
+  UCOM_Fr = 5079,
+  UD1Lm = 5080,
+  UD1Lr = 5081,
+  UD1Qm = 5082,
+  UD1Qr = 5083,
+  UD1Wm = 5084,
+  UD1Wr = 5085,
+  UIRET = 5086,
+  UMONITOR16 = 5087,
+  UMONITOR32 = 5088,
+  UMONITOR64 = 5089,
+  UMWAIT = 5090,
+  UNPCKHPDrm = 5091,
+  UNPCKHPDrr = 5092,
+  UNPCKHPSrm = 5093,
+  UNPCKHPSrr = 5094,
+  UNPCKLPDrm = 5095,
+  UNPCKLPDrr = 5096,
+  UNPCKLPSrm = 5097,
+  UNPCKLPSrr = 5098,
+  URDMSRri = 5099,
+  URDMSRri_EVEX = 5100,
+  URDMSRrr = 5101,
+  URDMSRrr_EVEX = 5102,
+  UWRMSRir = 5103,
+  UWRMSRir_EVEX = 5104,
+  UWRMSRrr = 5105,
+  UWRMSRrr_EVEX = 5106,
+  V4FMADDPSrm = 5107,
+  V4FMADDPSrmk = 5108,
+  V4FMADDPSrmkz = 5109,
+  V4FMADDSSrm = 5110,
+  V4FMADDSSrmk = 5111,
+  V4FMADDSSrmkz = 5112,
+  V4FNMADDPSrm = 5113,
+  V4FNMADDPSrmk = 5114,
+  V4FNMADDPSrmkz = 5115,
+  V4FNMADDSSrm = 5116,
+  V4FNMADDSSrmk = 5117,
+  V4FNMADDSSrmkz = 5118,
+  VAARG_64 = 5119,
+  VAARG_X32 = 5120,
+  VADDBF16Z128rm = 5121,
+  VADDBF16Z128rmb = 5122,
+  VADDBF16Z128rmbk = 5123,
+  VADDBF16Z128rmbkz = 5124,
+  VADDBF16Z128rmk = 5125,
+  VADDBF16Z128rmkz = 5126,
+  VADDBF16Z128rr = 5127,
+  VADDBF16Z128rrk = 5128,
+  VADDBF16Z128rrkz = 5129,
+  VADDBF16Z256rm = 5130,
+  VADDBF16Z256rmb = 5131,
+  VADDBF16Z256rmbk = 5132,
+  VADDBF16Z256rmbkz = 5133,
+  VADDBF16Z256rmk = 5134,
+  VADDBF16Z256rmkz = 5135,
+  VADDBF16Z256rr = 5136,
+  VADDBF16Z256rrk = 5137,
+  VADDBF16Z256rrkz = 5138,
+  VADDBF16Zrm = 5139,
+  VADDBF16Zrmb = 5140,
+  VADDBF16Zrmbk = 5141,
+  VADDBF16Zrmbkz = 5142,
+  VADDBF16Zrmk = 5143,
+  VADDBF16Zrmkz = 5144,
+  VADDBF16Zrr = 5145,
+  VADDBF16Zrrk = 5146,
+  VADDBF16Zrrkz = 5147,
+  VADDPDYrm = 5148,
+  VADDPDYrr = 5149,
+  VADDPDZ128rm = 5150,
+  VADDPDZ128rmb = 5151,
+  VADDPDZ128rmbk = 5152,
+  VADDPDZ128rmbkz = 5153,
+  VADDPDZ128rmk = 5154,
+  VADDPDZ128rmkz = 5155,
+  VADDPDZ128rr = 5156,
+  VADDPDZ128rrk = 5157,
+  VADDPDZ128rrkz = 5158,
+  VADDPDZ256rm = 5159,
+  VADDPDZ256rmb = 5160,
+  VADDPDZ256rmbk = 5161,
+  VADDPDZ256rmbkz = 5162,
+  VADDPDZ256rmk = 5163,
+  VADDPDZ256rmkz = 5164,
+  VADDPDZ256rr = 5165,
+  VADDPDZ256rrk = 5166,
+  VADDPDZ256rrkz = 5167,
+  VADDPDZrm = 5168,
+  VADDPDZrmb = 5169,
+  VADDPDZrmbk = 5170,
+  VADDPDZrmbkz = 5171,
+  VADDPDZrmk = 5172,
+  VADDPDZrmkz = 5173,
+  VADDPDZrr = 5174,
+  VADDPDZrrb = 5175,
+  VADDPDZrrbk = 5176,
+  VADDPDZrrbkz = 5177,
+  VADDPDZrrk = 5178,
+  VADDPDZrrkz = 5179,
+  VADDPDrm = 5180,
+  VADDPDrr = 5181,
+  VADDPHZ128rm = 5182,
+  VADDPHZ128rmb = 5183,
+  VADDPHZ128rmbk = 5184,
+  VADDPHZ128rmbkz = 5185,
+  VADDPHZ128rmk = 5186,
+  VADDPHZ128rmkz = 5187,
+  VADDPHZ128rr = 5188,
+  VADDPHZ128rrk = 5189,
+  VADDPHZ128rrkz = 5190,
+  VADDPHZ256rm = 5191,
+  VADDPHZ256rmb = 5192,
+  VADDPHZ256rmbk = 5193,
+  VADDPHZ256rmbkz = 5194,
+  VADDPHZ256rmk = 5195,
+  VADDPHZ256rmkz = 5196,
+  VADDPHZ256rr = 5197,
+  VADDPHZ256rrk = 5198,
+  VADDPHZ256rrkz = 5199,
+  VADDPHZrm = 5200,
+  VADDPHZrmb = 5201,
+  VADDPHZrmbk = 5202,
+  VADDPHZrmbkz = 5203,
+  VADDPHZrmk = 5204,
+  VADDPHZrmkz = 5205,
+  VADDPHZrr = 5206,
+  VADDPHZrrb = 5207,
+  VADDPHZrrbk = 5208,
+  VADDPHZrrbkz = 5209,
+  VADDPHZrrk = 5210,
+  VADDPHZrrkz = 5211,
+  VADDPSYrm = 5212,
+  VADDPSYrr = 5213,
+  VADDPSZ128rm = 5214,
+  VADDPSZ128rmb = 5215,
+  VADDPSZ128rmbk = 5216,
+  VADDPSZ128rmbkz = 5217,
+  VADDPSZ128rmk = 5218,
+  VADDPSZ128rmkz = 5219,
+  VADDPSZ128rr = 5220,
+  VADDPSZ128rrk = 5221,
+  VADDPSZ128rrkz = 5222,
+  VADDPSZ256rm = 5223,
+  VADDPSZ256rmb = 5224,
+  VADDPSZ256rmbk = 5225,
+  VADDPSZ256rmbkz = 5226,
+  VADDPSZ256rmk = 5227,
+  VADDPSZ256rmkz = 5228,
+  VADDPSZ256rr = 5229,
+  VADDPSZ256rrk = 5230,
+  VADDPSZ256rrkz = 5231,
+  VADDPSZrm = 5232,
+  VADDPSZrmb = 5233,
+  VADDPSZrmbk = 5234,
+  VADDPSZrmbkz = 5235,
+  VADDPSZrmk = 5236,
+  VADDPSZrmkz = 5237,
+  VADDPSZrr = 5238,
+  VADDPSZrrb = 5239,
+  VADDPSZrrbk = 5240,
+  VADDPSZrrbkz = 5241,
+  VADDPSZrrk = 5242,
+  VADDPSZrrkz = 5243,
+  VADDPSrm = 5244,
+  VADDPSrr = 5245,
+  VADDSDZrm = 5246,
+  VADDSDZrm_Int = 5247,
+  VADDSDZrmk_Int = 5248,
+  VADDSDZrmkz_Int = 5249,
+  VADDSDZrr = 5250,
+  VADDSDZrr_Int = 5251,
+  VADDSDZrrb_Int = 5252,
+  VADDSDZrrbk_Int = 5253,
+  VADDSDZrrbkz_Int = 5254,
+  VADDSDZrrk_Int = 5255,
+  VADDSDZrrkz_Int = 5256,
+  VADDSDrm = 5257,
+  VADDSDrm_Int = 5258,
+  VADDSDrr = 5259,
+  VADDSDrr_Int = 5260,
+  VADDSHZrm = 5261,
+  VADDSHZrm_Int = 5262,
+  VADDSHZrmk_Int = 5263,
+  VADDSHZrmkz_Int = 5264,
+  VADDSHZrr = 5265,
+  VADDSHZrr_Int = 5266,
+  VADDSHZrrb_Int = 5267,
+  VADDSHZrrbk_Int = 5268,
+  VADDSHZrrbkz_Int = 5269,
+  VADDSHZrrk_Int = 5270,
+  VADDSHZrrkz_Int = 5271,
+  VADDSSZrm = 5272,
+  VADDSSZrm_Int = 5273,
+  VADDSSZrmk_Int = 5274,
+  VADDSSZrmkz_Int = 5275,
+  VADDSSZrr = 5276,
+  VADDSSZrr_Int = 5277,
+  VADDSSZrrb_Int = 5278,
+  VADDSSZrrbk_Int = 5279,
+  VADDSSZrrbkz_Int = 5280,
+  VADDSSZrrk_Int = 5281,
+  VADDSSZrrkz_Int = 5282,
+  VADDSSrm = 5283,
+  VADDSSrm_Int = 5284,
+  VADDSSrr = 5285,
+  VADDSSrr_Int = 5286,
+  VADDSUBPDYrm = 5287,
+  VADDSUBPDYrr = 5288,
+  VADDSUBPDrm = 5289,
+  VADDSUBPDrr = 5290,
+  VADDSUBPSYrm = 5291,
+  VADDSUBPSYrr = 5292,
+  VADDSUBPSrm = 5293,
+  VADDSUBPSrr = 5294,
+  VAESDECLASTYrm = 5295,
+  VAESDECLASTYrr = 5296,
+  VAESDECLASTZ128rm = 5297,
+  VAESDECLASTZ128rr = 5298,
+  VAESDECLASTZ256rm = 5299,
+  VAESDECLASTZ256rr = 5300,
+  VAESDECLASTZrm = 5301,
+  VAESDECLASTZrr = 5302,
+  VAESDECLASTrm = 5303,
+  VAESDECLASTrr = 5304,
+  VAESDECYrm = 5305,
+  VAESDECYrr = 5306,
+  VAESDECZ128rm = 5307,
+  VAESDECZ128rr = 5308,
+  VAESDECZ256rm = 5309,
+  VAESDECZ256rr = 5310,
+  VAESDECZrm = 5311,
+  VAESDECZrr = 5312,
+  VAESDECrm = 5313,
+  VAESDECrr = 5314,
+  VAESENCLASTYrm = 5315,
+  VAESENCLASTYrr = 5316,
+  VAESENCLASTZ128rm = 5317,
+  VAESENCLASTZ128rr = 5318,
+  VAESENCLASTZ256rm = 5319,
+  VAESENCLASTZ256rr = 5320,
+  VAESENCLASTZrm = 5321,
+  VAESENCLASTZrr = 5322,
+  VAESENCLASTrm = 5323,
+  VAESENCLASTrr = 5324,
+  VAESENCYrm = 5325,
+  VAESENCYrr = 5326,
+  VAESENCZ128rm = 5327,
+  VAESENCZ128rr = 5328,
+  VAESENCZ256rm = 5329,
+  VAESENCZ256rr = 5330,
+  VAESENCZrm = 5331,
+  VAESENCZrr = 5332,
+  VAESENCrm = 5333,
+  VAESENCrr = 5334,
+  VAESIMCrm = 5335,
+  VAESIMCrr = 5336,
+  VAESKEYGENASSISTrmi = 5337,
+  VAESKEYGENASSISTrri = 5338,
+  VALIGNDZ128rmbi = 5339,
+  VALIGNDZ128rmbik = 5340,
+  VALIGNDZ128rmbikz = 5341,
+  VALIGNDZ128rmi = 5342,
+  VALIGNDZ128rmik = 5343,
+  VALIGNDZ128rmikz = 5344,
+  VALIGNDZ128rri = 5345,
+  VALIGNDZ128rrik = 5346,
+  VALIGNDZ128rrikz = 5347,
+  VALIGNDZ256rmbi = 5348,
+  VALIGNDZ256rmbik = 5349,
+  VALIGNDZ256rmbikz = 5350,
+  VALIGNDZ256rmi = 5351,
+  VALIGNDZ256rmik = 5352,
+  VALIGNDZ256rmikz = 5353,
+  VALIGNDZ256rri = 5354,
+  VALIGNDZ256rrik = 5355,
+  VALIGNDZ256rrikz = 5356,
+  VALIGNDZrmbi = 5357,
+  VALIGNDZrmbik = 5358,
+  VALIGNDZrmbikz = 5359,
+  VALIGNDZrmi = 5360,
+  VALIGNDZrmik = 5361,
+  VALIGNDZrmikz = 5362,
+  VALIGNDZrri = 5363,
+  VALIGNDZrrik = 5364,
+  VALIGNDZrrikz = 5365,
+  VALIGNQZ128rmbi = 5366,
+  VALIGNQZ128rmbik = 5367,
+  VALIGNQZ128rmbikz = 5368,
+  VALIGNQZ128rmi = 5369,
+  VALIGNQZ128rmik = 5370,
+  VALIGNQZ128rmikz = 5371,
+  VALIGNQZ128rri = 5372,
+  VALIGNQZ128rrik = 5373,
+  VALIGNQZ128rrikz = 5374,
+  VALIGNQZ256rmbi = 5375,
+  VALIGNQZ256rmbik = 5376,
+  VALIGNQZ256rmbikz = 5377,
+  VALIGNQZ256rmi = 5378,
+  VALIGNQZ256rmik = 5379,
+  VALIGNQZ256rmikz = 5380,
+  VALIGNQZ256rri = 5381,
+  VALIGNQZ256rrik = 5382,
+  VALIGNQZ256rrikz = 5383,
+  VALIGNQZrmbi = 5384,
+  VALIGNQZrmbik = 5385,
+  VALIGNQZrmbikz = 5386,
+  VALIGNQZrmi = 5387,
+  VALIGNQZrmik = 5388,
+  VALIGNQZrmikz = 5389,
+  VALIGNQZrri = 5390,
+  VALIGNQZrrik = 5391,
+  VALIGNQZrrikz = 5392,
+  VANDNPDYrm = 5393,
+  VANDNPDYrr = 5394,
+  VANDNPDZ128rm = 5395,
+  VANDNPDZ128rmb = 5396,
+  VANDNPDZ128rmbk = 5397,
+  VANDNPDZ128rmbkz = 5398,
+  VANDNPDZ128rmk = 5399,
+  VANDNPDZ128rmkz = 5400,
+  VANDNPDZ128rr = 5401,
+  VANDNPDZ128rrk = 5402,
+  VANDNPDZ128rrkz = 5403,
+  VANDNPDZ256rm = 5404,
+  VANDNPDZ256rmb = 5405,
+  VANDNPDZ256rmbk = 5406,
+  VANDNPDZ256rmbkz = 5407,
+  VANDNPDZ256rmk = 5408,
+  VANDNPDZ256rmkz = 5409,
+  VANDNPDZ256rr = 5410,
+  VANDNPDZ256rrk = 5411,
+  VANDNPDZ256rrkz = 5412,
+  VANDNPDZrm = 5413,
+  VANDNPDZrmb = 5414,
+  VANDNPDZrmbk = 5415,
+  VANDNPDZrmbkz = 5416,
+  VANDNPDZrmk = 5417,
+  VANDNPDZrmkz = 5418,
+  VANDNPDZrr = 5419,
+  VANDNPDZrrk = 5420,
+  VANDNPDZrrkz = 5421,
+  VANDNPDrm = 5422,
+  VANDNPDrr = 5423,
+  VANDNPSYrm = 5424,
+  VANDNPSYrr = 5425,
+  VANDNPSZ128rm = 5426,
+  VANDNPSZ128rmb = 5427,
+  VANDNPSZ128rmbk = 5428,
+  VANDNPSZ128rmbkz = 5429,
+  VANDNPSZ128rmk = 5430,
+  VANDNPSZ128rmkz = 5431,
+  VANDNPSZ128rr = 5432,
+  VANDNPSZ128rrk = 5433,
+  VANDNPSZ128rrkz = 5434,
+  VANDNPSZ256rm = 5435,
+  VANDNPSZ256rmb = 5436,
+  VANDNPSZ256rmbk = 5437,
+  VANDNPSZ256rmbkz = 5438,
+  VANDNPSZ256rmk = 5439,
+  VANDNPSZ256rmkz = 5440,
+  VANDNPSZ256rr = 5441,
+  VANDNPSZ256rrk = 5442,
+  VANDNPSZ256rrkz = 5443,
+  VANDNPSZrm = 5444,
+  VANDNPSZrmb = 5445,
+  VANDNPSZrmbk = 5446,
+  VANDNPSZrmbkz = 5447,
+  VANDNPSZrmk = 5448,
+  VANDNPSZrmkz = 5449,
+  VANDNPSZrr = 5450,
+  VANDNPSZrrk = 5451,
+  VANDNPSZrrkz = 5452,
+  VANDNPSrm = 5453,
+  VANDNPSrr = 5454,
+  VANDPDYrm = 5455,
+  VANDPDYrr = 5456,
+  VANDPDZ128rm = 5457,
+  VANDPDZ128rmb = 5458,
+  VANDPDZ128rmbk = 5459,
+  VANDPDZ128rmbkz = 5460,
+  VANDPDZ128rmk = 5461,
+  VANDPDZ128rmkz = 5462,
+  VANDPDZ128rr = 5463,
+  VANDPDZ128rrk = 5464,
+  VANDPDZ128rrkz = 5465,
+  VANDPDZ256rm = 5466,
+  VANDPDZ256rmb = 5467,
+  VANDPDZ256rmbk = 5468,
+  VANDPDZ256rmbkz = 5469,
+  VANDPDZ256rmk = 5470,
+  VANDPDZ256rmkz = 5471,
+  VANDPDZ256rr = 5472,
+  VANDPDZ256rrk = 5473,
+  VANDPDZ256rrkz = 5474,
+  VANDPDZrm = 5475,
+  VANDPDZrmb = 5476,
+  VANDPDZrmbk = 5477,
+  VANDPDZrmbkz = 5478,
+  VANDPDZrmk = 5479,
+  VANDPDZrmkz = 5480,
+  VANDPDZrr = 5481,
+  VANDPDZrrk = 5482,
+  VANDPDZrrkz = 5483,
+  VANDPDrm = 5484,
+  VANDPDrr = 5485,
+  VANDPSYrm = 5486,
+  VANDPSYrr = 5487,
+  VANDPSZ128rm = 5488,
+  VANDPSZ128rmb = 5489,
+  VANDPSZ128rmbk = 5490,
+  VANDPSZ128rmbkz = 5491,
+  VANDPSZ128rmk = 5492,
+  VANDPSZ128rmkz = 5493,
+  VANDPSZ128rr = 5494,
+  VANDPSZ128rrk = 5495,
+  VANDPSZ128rrkz = 5496,
+  VANDPSZ256rm = 5497,
+  VANDPSZ256rmb = 5498,
+  VANDPSZ256rmbk = 5499,
+  VANDPSZ256rmbkz = 5500,
+  VANDPSZ256rmk = 5501,
+  VANDPSZ256rmkz = 5502,
+  VANDPSZ256rr = 5503,
+  VANDPSZ256rrk = 5504,
+  VANDPSZ256rrkz = 5505,
+  VANDPSZrm = 5506,
+  VANDPSZrmb = 5507,
+  VANDPSZrmbk = 5508,
+  VANDPSZrmbkz = 5509,
+  VANDPSZrmk = 5510,
+  VANDPSZrmkz = 5511,
+  VANDPSZrr = 5512,
+  VANDPSZrrk = 5513,
+  VANDPSZrrkz = 5514,
+  VANDPSrm = 5515,
+  VANDPSrr = 5516,
+  VASTART_SAVE_XMM_REGS = 5517,
+  VBCSTNEBF162PSYrm = 5518,
+  VBCSTNEBF162PSrm = 5519,
+  VBCSTNESH2PSYrm = 5520,
+  VBCSTNESH2PSrm = 5521,
+  VBLENDMPDZ128rm = 5522,
+  VBLENDMPDZ128rmb = 5523,
+  VBLENDMPDZ128rmbk = 5524,
+  VBLENDMPDZ128rmbkz = 5525,
+  VBLENDMPDZ128rmk = 5526,
+  VBLENDMPDZ128rmkz = 5527,
+  VBLENDMPDZ128rr = 5528,
+  VBLENDMPDZ128rrk = 5529,
+  VBLENDMPDZ128rrkz = 5530,
+  VBLENDMPDZ256rm = 5531,
+  VBLENDMPDZ256rmb = 5532,
+  VBLENDMPDZ256rmbk = 5533,
+  VBLENDMPDZ256rmbkz = 5534,
+  VBLENDMPDZ256rmk = 5535,
+  VBLENDMPDZ256rmkz = 5536,
+  VBLENDMPDZ256rr = 5537,
+  VBLENDMPDZ256rrk = 5538,
+  VBLENDMPDZ256rrkz = 5539,
+  VBLENDMPDZrm = 5540,
+  VBLENDMPDZrmb = 5541,
+  VBLENDMPDZrmbk = 5542,
+  VBLENDMPDZrmbkz = 5543,
+  VBLENDMPDZrmk = 5544,
+  VBLENDMPDZrmkz = 5545,
+  VBLENDMPDZrr = 5546,
+  VBLENDMPDZrrk = 5547,
+  VBLENDMPDZrrkz = 5548,
+  VBLENDMPSZ128rm = 5549,
+  VBLENDMPSZ128rmb = 5550,
+  VBLENDMPSZ128rmbk = 5551,
+  VBLENDMPSZ128rmbkz = 5552,
+  VBLENDMPSZ128rmk = 5553,
+  VBLENDMPSZ128rmkz = 5554,
+  VBLENDMPSZ128rr = 5555,
+  VBLENDMPSZ128rrk = 5556,
+  VBLENDMPSZ128rrkz = 5557,
+  VBLENDMPSZ256rm = 5558,
+  VBLENDMPSZ256rmb = 5559,
+  VBLENDMPSZ256rmbk = 5560,
+  VBLENDMPSZ256rmbkz = 5561,
+  VBLENDMPSZ256rmk = 5562,
+  VBLENDMPSZ256rmkz = 5563,
+  VBLENDMPSZ256rr = 5564,
+  VBLENDMPSZ256rrk = 5565,
+  VBLENDMPSZ256rrkz = 5566,
+  VBLENDMPSZrm = 5567,
+  VBLENDMPSZrmb = 5568,
+  VBLENDMPSZrmbk = 5569,
+  VBLENDMPSZrmbkz = 5570,
+  VBLENDMPSZrmk = 5571,
+  VBLENDMPSZrmkz = 5572,
+  VBLENDMPSZrr = 5573,
+  VBLENDMPSZrrk = 5574,
+  VBLENDMPSZrrkz = 5575,
+  VBLENDPDYrmi = 5576,
+  VBLENDPDYrri = 5577,
+  VBLENDPDrmi = 5578,
+  VBLENDPDrri = 5579,
+  VBLENDPSYrmi = 5580,
+  VBLENDPSYrri = 5581,
+  VBLENDPSrmi = 5582,
+  VBLENDPSrri = 5583,
+  VBLENDVPDYrmr = 5584,
+  VBLENDVPDYrrr = 5585,
+  VBLENDVPDrmr = 5586,
+  VBLENDVPDrrr = 5587,
+  VBLENDVPSYrmr = 5588,
+  VBLENDVPSYrrr = 5589,
+  VBLENDVPSrmr = 5590,
+  VBLENDVPSrrr = 5591,
+  VBROADCASTF128rm = 5592,
+  VBROADCASTF32X2Z256rm = 5593,
+  VBROADCASTF32X2Z256rmk = 5594,
+  VBROADCASTF32X2Z256rmkz = 5595,
+  VBROADCASTF32X2Z256rr = 5596,
+  VBROADCASTF32X2Z256rrk = 5597,
+  VBROADCASTF32X2Z256rrkz = 5598,
+  VBROADCASTF32X2Zrm = 5599,
+  VBROADCASTF32X2Zrmk = 5600,
+  VBROADCASTF32X2Zrmkz = 5601,
+  VBROADCASTF32X2Zrr = 5602,
+  VBROADCASTF32X2Zrrk = 5603,
+  VBROADCASTF32X2Zrrkz = 5604,
+  VBROADCASTF32X4Z256rm = 5605,
+  VBROADCASTF32X4Z256rmk = 5606,
+  VBROADCASTF32X4Z256rmkz = 5607,
+  VBROADCASTF32X4Zrm = 5608,
+  VBROADCASTF32X4Zrmk = 5609,
+  VBROADCASTF32X4Zrmkz = 5610,
+  VBROADCASTF32X8Zrm = 5611,
+  VBROADCASTF32X8Zrmk = 5612,
+  VBROADCASTF32X8Zrmkz = 5613,
+  VBROADCASTF64X2Z256rm = 5614,
+  VBROADCASTF64X2Z256rmk = 5615,
+  VBROADCASTF64X2Z256rmkz = 5616,
+  VBROADCASTF64X2Zrm = 5617,
+  VBROADCASTF64X2Zrmk = 5618,
+  VBROADCASTF64X2Zrmkz = 5619,
+  VBROADCASTF64X4Zrm = 5620,
+  VBROADCASTF64X4Zrmk = 5621,
+  VBROADCASTF64X4Zrmkz = 5622,
+  VBROADCASTI128rm = 5623,
+  VBROADCASTI32X2Z128rm = 5624,
+  VBROADCASTI32X2Z128rmk = 5625,
+  VBROADCASTI32X2Z128rmkz = 5626,
+  VBROADCASTI32X2Z128rr = 5627,
+  VBROADCASTI32X2Z128rrk = 5628,
+  VBROADCASTI32X2Z128rrkz = 5629,
+  VBROADCASTI32X2Z256rm = 5630,
+  VBROADCASTI32X2Z256rmk = 5631,
+  VBROADCASTI32X2Z256rmkz = 5632,
+  VBROADCASTI32X2Z256rr = 5633,
+  VBROADCASTI32X2Z256rrk = 5634,
+  VBROADCASTI32X2Z256rrkz = 5635,
+  VBROADCASTI32X2Zrm = 5636,
+  VBROADCASTI32X2Zrmk = 5637,
+  VBROADCASTI32X2Zrmkz = 5638,
+  VBROADCASTI32X2Zrr = 5639,
+  VBROADCASTI32X2Zrrk = 5640,
+  VBROADCASTI32X2Zrrkz = 5641,
+  VBROADCASTI32X4Z256rm = 5642,
+  VBROADCASTI32X4Z256rmk = 5643,
+  VBROADCASTI32X4Z256rmkz = 5644,
+  VBROADCASTI32X4Zrm = 5645,
+  VBROADCASTI32X4Zrmk = 5646,
+  VBROADCASTI32X4Zrmkz = 5647,
+  VBROADCASTI32X8Zrm = 5648,
+  VBROADCASTI32X8Zrmk = 5649,
+  VBROADCASTI32X8Zrmkz = 5650,
+  VBROADCASTI64X2Z256rm = 5651,
+  VBROADCASTI64X2Z256rmk = 5652,
+  VBROADCASTI64X2Z256rmkz = 5653,
+  VBROADCASTI64X2Zrm = 5654,
+  VBROADCASTI64X2Zrmk = 5655,
+  VBROADCASTI64X2Zrmkz = 5656,
+  VBROADCASTI64X4Zrm = 5657,
+  VBROADCASTI64X4Zrmk = 5658,
+  VBROADCASTI64X4Zrmkz = 5659,
+  VBROADCASTSDYrm = 5660,
+  VBROADCASTSDYrr = 5661,
+  VBROADCASTSDZ256rm = 5662,
+  VBROADCASTSDZ256rmk = 5663,
+  VBROADCASTSDZ256rmkz = 5664,
+  VBROADCASTSDZ256rr = 5665,
+  VBROADCASTSDZ256rrk = 5666,
+  VBROADCASTSDZ256rrkz = 5667,
+  VBROADCASTSDZrm = 5668,
+  VBROADCASTSDZrmk = 5669,
+  VBROADCASTSDZrmkz = 5670,
+  VBROADCASTSDZrr = 5671,
+  VBROADCASTSDZrrk = 5672,
+  VBROADCASTSDZrrkz = 5673,
+  VBROADCASTSSYrm = 5674,
+  VBROADCASTSSYrr = 5675,
+  VBROADCASTSSZ128rm = 5676,
+  VBROADCASTSSZ128rmk = 5677,
+  VBROADCASTSSZ128rmkz = 5678,
+  VBROADCASTSSZ128rr = 5679,
+  VBROADCASTSSZ128rrk = 5680,
+  VBROADCASTSSZ128rrkz = 5681,
+  VBROADCASTSSZ256rm = 5682,
+  VBROADCASTSSZ256rmk = 5683,
+  VBROADCASTSSZ256rmkz = 5684,
+  VBROADCASTSSZ256rr = 5685,
+  VBROADCASTSSZ256rrk = 5686,
+  VBROADCASTSSZ256rrkz = 5687,
+  VBROADCASTSSZrm = 5688,
+  VBROADCASTSSZrmk = 5689,
+  VBROADCASTSSZrmkz = 5690,
+  VBROADCASTSSZrr = 5691,
+  VBROADCASTSSZrrk = 5692,
+  VBROADCASTSSZrrkz = 5693,
+  VBROADCASTSSrm = 5694,
+  VBROADCASTSSrr = 5695,
+  VCMPBF16Z128rmbi = 5696,
+  VCMPBF16Z128rmbik = 5697,
+  VCMPBF16Z128rmi = 5698,
+  VCMPBF16Z128rmik = 5699,
+  VCMPBF16Z128rri = 5700,
+  VCMPBF16Z128rrik = 5701,
+  VCMPBF16Z256rmbi = 5702,
+  VCMPBF16Z256rmbik = 5703,
+  VCMPBF16Z256rmi = 5704,
+  VCMPBF16Z256rmik = 5705,
+  VCMPBF16Z256rri = 5706,
+  VCMPBF16Z256rrik = 5707,
+  VCMPBF16Zrmbi = 5708,
+  VCMPBF16Zrmbik = 5709,
+  VCMPBF16Zrmi = 5710,
+  VCMPBF16Zrmik = 5711,
+  VCMPBF16Zrri = 5712,
+  VCMPBF16Zrrik = 5713,
+  VCMPPDYrmi = 5714,
+  VCMPPDYrri = 5715,
+  VCMPPDZ128rmbi = 5716,
+  VCMPPDZ128rmbik = 5717,
+  VCMPPDZ128rmi = 5718,
+  VCMPPDZ128rmik = 5719,
+  VCMPPDZ128rri = 5720,
+  VCMPPDZ128rrik = 5721,
+  VCMPPDZ256rmbi = 5722,
+  VCMPPDZ256rmbik = 5723,
+  VCMPPDZ256rmi = 5724,
+  VCMPPDZ256rmik = 5725,
+  VCMPPDZ256rri = 5726,
+  VCMPPDZ256rrik = 5727,
+  VCMPPDZrmbi = 5728,
+  VCMPPDZrmbik = 5729,
+  VCMPPDZrmi = 5730,
+  VCMPPDZrmik = 5731,
+  VCMPPDZrri = 5732,
+  VCMPPDZrrib = 5733,
+  VCMPPDZrribk = 5734,
+  VCMPPDZrrik = 5735,
+  VCMPPDrmi = 5736,
+  VCMPPDrri = 5737,
+  VCMPPHZ128rmbi = 5738,
+  VCMPPHZ128rmbik = 5739,
+  VCMPPHZ128rmi = 5740,
+  VCMPPHZ128rmik = 5741,
+  VCMPPHZ128rri = 5742,
+  VCMPPHZ128rrik = 5743,
+  VCMPPHZ256rmbi = 5744,
+  VCMPPHZ256rmbik = 5745,
+  VCMPPHZ256rmi = 5746,
+  VCMPPHZ256rmik = 5747,
+  VCMPPHZ256rri = 5748,
+  VCMPPHZ256rrik = 5749,
+  VCMPPHZrmbi = 5750,
+  VCMPPHZrmbik = 5751,
+  VCMPPHZrmi = 5752,
+  VCMPPHZrmik = 5753,
+  VCMPPHZrri = 5754,
+  VCMPPHZrrib = 5755,
+  VCMPPHZrribk = 5756,
+  VCMPPHZrrik = 5757,
+  VCMPPSYrmi = 5758,
+  VCMPPSYrri = 5759,
+  VCMPPSZ128rmbi = 5760,
+  VCMPPSZ128rmbik = 5761,
+  VCMPPSZ128rmi = 5762,
+  VCMPPSZ128rmik = 5763,
+  VCMPPSZ128rri = 5764,
+  VCMPPSZ128rrik = 5765,
+  VCMPPSZ256rmbi = 5766,
+  VCMPPSZ256rmbik = 5767,
+  VCMPPSZ256rmi = 5768,
+  VCMPPSZ256rmik = 5769,
+  VCMPPSZ256rri = 5770,
+  VCMPPSZ256rrik = 5771,
+  VCMPPSZrmbi = 5772,
+  VCMPPSZrmbik = 5773,
+  VCMPPSZrmi = 5774,
+  VCMPPSZrmik = 5775,
+  VCMPPSZrri = 5776,
+  VCMPPSZrrib = 5777,
+  VCMPPSZrribk = 5778,
+  VCMPPSZrrik = 5779,
+  VCMPPSrmi = 5780,
+  VCMPPSrri = 5781,
+  VCMPSDZrmi = 5782,
+  VCMPSDZrmi_Int = 5783,
+  VCMPSDZrmik_Int = 5784,
+  VCMPSDZrri = 5785,
+  VCMPSDZrri_Int = 5786,
+  VCMPSDZrrib_Int = 5787,
+  VCMPSDZrribk_Int = 5788,
+  VCMPSDZrrik_Int = 5789,
+  VCMPSDrmi = 5790,
+  VCMPSDrmi_Int = 5791,
+  VCMPSDrri = 5792,
+  VCMPSDrri_Int = 5793,
+  VCMPSHZrmi = 5794,
+  VCMPSHZrmi_Int = 5795,
+  VCMPSHZrmik_Int = 5796,
+  VCMPSHZrri = 5797,
+  VCMPSHZrri_Int = 5798,
+  VCMPSHZrrib_Int = 5799,
+  VCMPSHZrribk_Int = 5800,
+  VCMPSHZrrik_Int = 5801,
+  VCMPSSZrmi = 5802,
+  VCMPSSZrmi_Int = 5803,
+  VCMPSSZrmik_Int = 5804,
+  VCMPSSZrri = 5805,
+  VCMPSSZrri_Int = 5806,
+  VCMPSSZrrib_Int = 5807,
+  VCMPSSZrribk_Int = 5808,
+  VCMPSSZrrik_Int = 5809,
+  VCMPSSrmi = 5810,
+  VCMPSSrmi_Int = 5811,
+  VCMPSSrri = 5812,
+  VCMPSSrri_Int = 5813,
+  VCOMISBF16Zrm = 5814,
+  VCOMISBF16Zrm_Int = 5815,
+  VCOMISBF16Zrr = 5816,
+  VCOMISBF16Zrr_Int = 5817,
+  VCOMISDZrm = 5818,
+  VCOMISDZrm_Int = 5819,
+  VCOMISDZrr = 5820,
+  VCOMISDZrr_Int = 5821,
+  VCOMISDZrrb = 5822,
+  VCOMISDrm = 5823,
+  VCOMISDrm_Int = 5824,
+  VCOMISDrr = 5825,
+  VCOMISDrr_Int = 5826,
+  VCOMISHZrm = 5827,
+  VCOMISHZrm_Int = 5828,
+  VCOMISHZrr = 5829,
+  VCOMISHZrr_Int = 5830,
+  VCOMISHZrrb = 5831,
+  VCOMISSZrm = 5832,
+  VCOMISSZrm_Int = 5833,
+  VCOMISSZrr = 5834,
+  VCOMISSZrr_Int = 5835,
+  VCOMISSZrrb = 5836,
+  VCOMISSrm = 5837,
+  VCOMISSrm_Int = 5838,
+  VCOMISSrr = 5839,
+  VCOMISSrr_Int = 5840,
+  VCOMPRESSPDZ128mr = 5841,
+  VCOMPRESSPDZ128mrk = 5842,
+  VCOMPRESSPDZ128rr = 5843,
+  VCOMPRESSPDZ128rrk = 5844,
+  VCOMPRESSPDZ128rrkz = 5845,
+  VCOMPRESSPDZ256mr = 5846,
+  VCOMPRESSPDZ256mrk = 5847,
+  VCOMPRESSPDZ256rr = 5848,
+  VCOMPRESSPDZ256rrk = 5849,
+  VCOMPRESSPDZ256rrkz = 5850,
+  VCOMPRESSPDZmr = 5851,
+  VCOMPRESSPDZmrk = 5852,
+  VCOMPRESSPDZrr = 5853,
+  VCOMPRESSPDZrrk = 5854,
+  VCOMPRESSPDZrrkz = 5855,
+  VCOMPRESSPSZ128mr = 5856,
+  VCOMPRESSPSZ128mrk = 5857,
+  VCOMPRESSPSZ128rr = 5858,
+  VCOMPRESSPSZ128rrk = 5859,
+  VCOMPRESSPSZ128rrkz = 5860,
+  VCOMPRESSPSZ256mr = 5861,
+  VCOMPRESSPSZ256mrk = 5862,
+  VCOMPRESSPSZ256rr = 5863,
+  VCOMPRESSPSZ256rrk = 5864,
+  VCOMPRESSPSZ256rrkz = 5865,
+  VCOMPRESSPSZmr = 5866,
+  VCOMPRESSPSZmrk = 5867,
+  VCOMPRESSPSZrr = 5868,
+  VCOMPRESSPSZrrk = 5869,
+  VCOMPRESSPSZrrkz = 5870,
+  VCOMXSDZrm_Int = 5871,
+  VCOMXSDZrr_Int = 5872,
+  VCOMXSDZrrb_Int = 5873,
+  VCOMXSHZrm_Int = 5874,
+  VCOMXSHZrr_Int = 5875,
+  VCOMXSHZrrb_Int = 5876,
+  VCOMXSSZrm_Int = 5877,
+  VCOMXSSZrr_Int = 5878,
+  VCOMXSSZrrb_Int = 5879,
+  VCVT2PH2BF8SZ128rm = 5880,
+  VCVT2PH2BF8SZ128rmb = 5881,
+  VCVT2PH2BF8SZ128rmbk = 5882,
+  VCVT2PH2BF8SZ128rmbkz = 5883,
+  VCVT2PH2BF8SZ128rmk = 5884,
+  VCVT2PH2BF8SZ128rmkz = 5885,
+  VCVT2PH2BF8SZ128rr = 5886,
+  VCVT2PH2BF8SZ128rrk = 5887,
+  VCVT2PH2BF8SZ128rrkz = 5888,
+  VCVT2PH2BF8SZ256rm = 5889,
+  VCVT2PH2BF8SZ256rmb = 5890,
+  VCVT2PH2BF8SZ256rmbk = 5891,
+  VCVT2PH2BF8SZ256rmbkz = 5892,
+  VCVT2PH2BF8SZ256rmk = 5893,
+  VCVT2PH2BF8SZ256rmkz = 5894,
+  VCVT2PH2BF8SZ256rr = 5895,
+  VCVT2PH2BF8SZ256rrk = 5896,
+  VCVT2PH2BF8SZ256rrkz = 5897,
+  VCVT2PH2BF8SZrm = 5898,
+  VCVT2PH2BF8SZrmb = 5899,
+  VCVT2PH2BF8SZrmbk = 5900,
+  VCVT2PH2BF8SZrmbkz = 5901,
+  VCVT2PH2BF8SZrmk = 5902,
+  VCVT2PH2BF8SZrmkz = 5903,
+  VCVT2PH2BF8SZrr = 5904,
+  VCVT2PH2BF8SZrrk = 5905,
+  VCVT2PH2BF8SZrrkz = 5906,
+  VCVT2PH2BF8Z128rm = 5907,
+  VCVT2PH2BF8Z128rmb = 5908,
+  VCVT2PH2BF8Z128rmbk = 5909,
+  VCVT2PH2BF8Z128rmbkz = 5910,
+  VCVT2PH2BF8Z128rmk = 5911,
+  VCVT2PH2BF8Z128rmkz = 5912,
+  VCVT2PH2BF8Z128rr = 5913,
+  VCVT2PH2BF8Z128rrk = 5914,
+  VCVT2PH2BF8Z128rrkz = 5915,
+  VCVT2PH2BF8Z256rm = 5916,
+  VCVT2PH2BF8Z256rmb = 5917,
+  VCVT2PH2BF8Z256rmbk = 5918,
+  VCVT2PH2BF8Z256rmbkz = 5919,
+  VCVT2PH2BF8Z256rmk = 5920,
+  VCVT2PH2BF8Z256rmkz = 5921,
+  VCVT2PH2BF8Z256rr = 5922,
+  VCVT2PH2BF8Z256rrk = 5923,
+  VCVT2PH2BF8Z256rrkz = 5924,
+  VCVT2PH2BF8Zrm = 5925,
+  VCVT2PH2BF8Zrmb = 5926,
+  VCVT2PH2BF8Zrmbk = 5927,
+  VCVT2PH2BF8Zrmbkz = 5928,
+  VCVT2PH2BF8Zrmk = 5929,
+  VCVT2PH2BF8Zrmkz = 5930,
+  VCVT2PH2BF8Zrr = 5931,
+  VCVT2PH2BF8Zrrk = 5932,
+  VCVT2PH2BF8Zrrkz = 5933,
+  VCVT2PH2HF8SZ128rm = 5934,
+  VCVT2PH2HF8SZ128rmb = 5935,
+  VCVT2PH2HF8SZ128rmbk = 5936,
+  VCVT2PH2HF8SZ128rmbkz = 5937,
+  VCVT2PH2HF8SZ128rmk = 5938,
+  VCVT2PH2HF8SZ128rmkz = 5939,
+  VCVT2PH2HF8SZ128rr = 5940,
+  VCVT2PH2HF8SZ128rrk = 5941,
+  VCVT2PH2HF8SZ128rrkz = 5942,
+  VCVT2PH2HF8SZ256rm = 5943,
+  VCVT2PH2HF8SZ256rmb = 5944,
+  VCVT2PH2HF8SZ256rmbk = 5945,
+  VCVT2PH2HF8SZ256rmbkz = 5946,
+  VCVT2PH2HF8SZ256rmk = 5947,
+  VCVT2PH2HF8SZ256rmkz = 5948,
+  VCVT2PH2HF8SZ256rr = 5949,
+  VCVT2PH2HF8SZ256rrk = 5950,
+  VCVT2PH2HF8SZ256rrkz = 5951,
+  VCVT2PH2HF8SZrm = 5952,
+  VCVT2PH2HF8SZrmb = 5953,
+  VCVT2PH2HF8SZrmbk = 5954,
+  VCVT2PH2HF8SZrmbkz = 5955,
+  VCVT2PH2HF8SZrmk = 5956,
+  VCVT2PH2HF8SZrmkz = 5957,
+  VCVT2PH2HF8SZrr = 5958,
+  VCVT2PH2HF8SZrrk = 5959,
+  VCVT2PH2HF8SZrrkz = 5960,
+  VCVT2PH2HF8Z128rm = 5961,
+  VCVT2PH2HF8Z128rmb = 5962,
+  VCVT2PH2HF8Z128rmbk = 5963,
+  VCVT2PH2HF8Z128rmbkz = 5964,
+  VCVT2PH2HF8Z128rmk = 5965,
+  VCVT2PH2HF8Z128rmkz = 5966,
+  VCVT2PH2HF8Z128rr = 5967,
+  VCVT2PH2HF8Z128rrk = 5968,
+  VCVT2PH2HF8Z128rrkz = 5969,
+  VCVT2PH2HF8Z256rm = 5970,
+  VCVT2PH2HF8Z256rmb = 5971,
+  VCVT2PH2HF8Z256rmbk = 5972,
+  VCVT2PH2HF8Z256rmbkz = 5973,
+  VCVT2PH2HF8Z256rmk = 5974,
+  VCVT2PH2HF8Z256rmkz = 5975,
+  VCVT2PH2HF8Z256rr = 5976,
+  VCVT2PH2HF8Z256rrk = 5977,
+  VCVT2PH2HF8Z256rrkz = 5978,
+  VCVT2PH2HF8Zrm = 5979,
+  VCVT2PH2HF8Zrmb = 5980,
+  VCVT2PH2HF8Zrmbk = 5981,
+  VCVT2PH2HF8Zrmbkz = 5982,
+  VCVT2PH2HF8Zrmk = 5983,
+  VCVT2PH2HF8Zrmkz = 5984,
+  VCVT2PH2HF8Zrr = 5985,
+  VCVT2PH2HF8Zrrk = 5986,
+  VCVT2PH2HF8Zrrkz = 5987,
+  VCVT2PS2PHXZ128rm = 5988,
+  VCVT2PS2PHXZ128rmb = 5989,
+  VCVT2PS2PHXZ128rmbk = 5990,
+  VCVT2PS2PHXZ128rmbkz = 5991,
+  VCVT2PS2PHXZ128rmk = 5992,
+  VCVT2PS2PHXZ128rmkz = 5993,
+  VCVT2PS2PHXZ128rr = 5994,
+  VCVT2PS2PHXZ128rrk = 5995,
+  VCVT2PS2PHXZ128rrkz = 5996,
+  VCVT2PS2PHXZ256rm = 5997,
+  VCVT2PS2PHXZ256rmb = 5998,
+  VCVT2PS2PHXZ256rmbk = 5999,
+  VCVT2PS2PHXZ256rmbkz = 6000,
+  VCVT2PS2PHXZ256rmk = 6001,
+  VCVT2PS2PHXZ256rmkz = 6002,
+  VCVT2PS2PHXZ256rr = 6003,
+  VCVT2PS2PHXZ256rrk = 6004,
+  VCVT2PS2PHXZ256rrkz = 6005,
+  VCVT2PS2PHXZrm = 6006,
+  VCVT2PS2PHXZrmb = 6007,
+  VCVT2PS2PHXZrmbk = 6008,
+  VCVT2PS2PHXZrmbkz = 6009,
+  VCVT2PS2PHXZrmk = 6010,
+  VCVT2PS2PHXZrmkz = 6011,
+  VCVT2PS2PHXZrr = 6012,
+  VCVT2PS2PHXZrrb = 6013,
+  VCVT2PS2PHXZrrbk = 6014,
+  VCVT2PS2PHXZrrbkz = 6015,
+  VCVT2PS2PHXZrrk = 6016,
+  VCVT2PS2PHXZrrkz = 6017,
+  VCVTBF162IBSZ128rm = 6018,
+  VCVTBF162IBSZ128rmb = 6019,
+  VCVTBF162IBSZ128rmbk = 6020,
+  VCVTBF162IBSZ128rmbkz = 6021,
+  VCVTBF162IBSZ128rmk = 6022,
+  VCVTBF162IBSZ128rmkz = 6023,
+  VCVTBF162IBSZ128rr = 6024,
+  VCVTBF162IBSZ128rrk = 6025,
+  VCVTBF162IBSZ128rrkz = 6026,
+  VCVTBF162IBSZ256rm = 6027,
+  VCVTBF162IBSZ256rmb = 6028,
+  VCVTBF162IBSZ256rmbk = 6029,
+  VCVTBF162IBSZ256rmbkz = 6030,
+  VCVTBF162IBSZ256rmk = 6031,
+  VCVTBF162IBSZ256rmkz = 6032,
+  VCVTBF162IBSZ256rr = 6033,
+  VCVTBF162IBSZ256rrk = 6034,
+  VCVTBF162IBSZ256rrkz = 6035,
+  VCVTBF162IBSZrm = 6036,
+  VCVTBF162IBSZrmb = 6037,
+  VCVTBF162IBSZrmbk = 6038,
+  VCVTBF162IBSZrmbkz = 6039,
+  VCVTBF162IBSZrmk = 6040,
+  VCVTBF162IBSZrmkz = 6041,
+  VCVTBF162IBSZrr = 6042,
+  VCVTBF162IBSZrrk = 6043,
+  VCVTBF162IBSZrrkz = 6044,
+  VCVTBF162IUBSZ128rm = 6045,
+  VCVTBF162IUBSZ128rmb = 6046,
+  VCVTBF162IUBSZ128rmbk = 6047,
+  VCVTBF162IUBSZ128rmbkz = 6048,
+  VCVTBF162IUBSZ128rmk = 6049,
+  VCVTBF162IUBSZ128rmkz = 6050,
+  VCVTBF162IUBSZ128rr = 6051,
+  VCVTBF162IUBSZ128rrk = 6052,
+  VCVTBF162IUBSZ128rrkz = 6053,
+  VCVTBF162IUBSZ256rm = 6054,
+  VCVTBF162IUBSZ256rmb = 6055,
+  VCVTBF162IUBSZ256rmbk = 6056,
+  VCVTBF162IUBSZ256rmbkz = 6057,
+  VCVTBF162IUBSZ256rmk = 6058,
+  VCVTBF162IUBSZ256rmkz = 6059,
+  VCVTBF162IUBSZ256rr = 6060,
+  VCVTBF162IUBSZ256rrk = 6061,
+  VCVTBF162IUBSZ256rrkz = 6062,
+  VCVTBF162IUBSZrm = 6063,
+  VCVTBF162IUBSZrmb = 6064,
+  VCVTBF162IUBSZrmbk = 6065,
+  VCVTBF162IUBSZrmbkz = 6066,
+  VCVTBF162IUBSZrmk = 6067,
+  VCVTBF162IUBSZrmkz = 6068,
+  VCVTBF162IUBSZrr = 6069,
+  VCVTBF162IUBSZrrk = 6070,
+  VCVTBF162IUBSZrrkz = 6071,
+  VCVTBIASPH2BF8SZ128rm = 6072,
+  VCVTBIASPH2BF8SZ128rmb = 6073,
+  VCVTBIASPH2BF8SZ128rmbk = 6074,
+  VCVTBIASPH2BF8SZ128rmbkz = 6075,
+  VCVTBIASPH2BF8SZ128rmk = 6076,
+  VCVTBIASPH2BF8SZ128rmkz = 6077,
+  VCVTBIASPH2BF8SZ128rr = 6078,
+  VCVTBIASPH2BF8SZ128rrk = 6079,
+  VCVTBIASPH2BF8SZ128rrkz = 6080,
+  VCVTBIASPH2BF8SZ256rm = 6081,
+  VCVTBIASPH2BF8SZ256rmb = 6082,
+  VCVTBIASPH2BF8SZ256rmbk = 6083,
+  VCVTBIASPH2BF8SZ256rmbkz = 6084,
+  VCVTBIASPH2BF8SZ256rmk = 6085,
+  VCVTBIASPH2BF8SZ256rmkz = 6086,
+  VCVTBIASPH2BF8SZ256rr = 6087,
+  VCVTBIASPH2BF8SZ256rrk = 6088,
+  VCVTBIASPH2BF8SZ256rrkz = 6089,
+  VCVTBIASPH2BF8SZrm = 6090,
+  VCVTBIASPH2BF8SZrmb = 6091,
+  VCVTBIASPH2BF8SZrmbk = 6092,
+  VCVTBIASPH2BF8SZrmbkz = 6093,
+  VCVTBIASPH2BF8SZrmk = 6094,
+  VCVTBIASPH2BF8SZrmkz = 6095,
+  VCVTBIASPH2BF8SZrr = 6096,
+  VCVTBIASPH2BF8SZrrk = 6097,
+  VCVTBIASPH2BF8SZrrkz = 6098,
+  VCVTBIASPH2BF8Z128rm = 6099,
+  VCVTBIASPH2BF8Z128rmb = 6100,
+  VCVTBIASPH2BF8Z128rmbk = 6101,
+  VCVTBIASPH2BF8Z128rmbkz = 6102,
+  VCVTBIASPH2BF8Z128rmk = 6103,
+  VCVTBIASPH2BF8Z128rmkz = 6104,
+  VCVTBIASPH2BF8Z128rr = 6105,
+  VCVTBIASPH2BF8Z128rrk = 6106,
+  VCVTBIASPH2BF8Z128rrkz = 6107,
+  VCVTBIASPH2BF8Z256rm = 6108,
+  VCVTBIASPH2BF8Z256rmb = 6109,
+  VCVTBIASPH2BF8Z256rmbk = 6110,
+  VCVTBIASPH2BF8Z256rmbkz = 6111,
+  VCVTBIASPH2BF8Z256rmk = 6112,
+  VCVTBIASPH2BF8Z256rmkz = 6113,
+  VCVTBIASPH2BF8Z256rr = 6114,
+  VCVTBIASPH2BF8Z256rrk = 6115,
+  VCVTBIASPH2BF8Z256rrkz = 6116,
+  VCVTBIASPH2BF8Zrm = 6117,
+  VCVTBIASPH2BF8Zrmb = 6118,
+  VCVTBIASPH2BF8Zrmbk = 6119,
+  VCVTBIASPH2BF8Zrmbkz = 6120,
+  VCVTBIASPH2BF8Zrmk = 6121,
+  VCVTBIASPH2BF8Zrmkz = 6122,
+  VCVTBIASPH2BF8Zrr = 6123,
+  VCVTBIASPH2BF8Zrrk = 6124,
+  VCVTBIASPH2BF8Zrrkz = 6125,
+  VCVTBIASPH2HF8SZ128rm = 6126,
+  VCVTBIASPH2HF8SZ128rmb = 6127,
+  VCVTBIASPH2HF8SZ128rmbk = 6128,
+  VCVTBIASPH2HF8SZ128rmbkz = 6129,
+  VCVTBIASPH2HF8SZ128rmk = 6130,
+  VCVTBIASPH2HF8SZ128rmkz = 6131,
+  VCVTBIASPH2HF8SZ128rr = 6132,
+  VCVTBIASPH2HF8SZ128rrk = 6133,
+  VCVTBIASPH2HF8SZ128rrkz = 6134,
+  VCVTBIASPH2HF8SZ256rm = 6135,
+  VCVTBIASPH2HF8SZ256rmb = 6136,
+  VCVTBIASPH2HF8SZ256rmbk = 6137,
+  VCVTBIASPH2HF8SZ256rmbkz = 6138,
+  VCVTBIASPH2HF8SZ256rmk = 6139,
+  VCVTBIASPH2HF8SZ256rmkz = 6140,
+  VCVTBIASPH2HF8SZ256rr = 6141,
+  VCVTBIASPH2HF8SZ256rrk = 6142,
+  VCVTBIASPH2HF8SZ256rrkz = 6143,
+  VCVTBIASPH2HF8SZrm = 6144,
+  VCVTBIASPH2HF8SZrmb = 6145,
+  VCVTBIASPH2HF8SZrmbk = 6146,
+  VCVTBIASPH2HF8SZrmbkz = 6147,
+  VCVTBIASPH2HF8SZrmk = 6148,
+  VCVTBIASPH2HF8SZrmkz = 6149,
+  VCVTBIASPH2HF8SZrr = 6150,
+  VCVTBIASPH2HF8SZrrk = 6151,
+  VCVTBIASPH2HF8SZrrkz = 6152,
+  VCVTBIASPH2HF8Z128rm = 6153,
+  VCVTBIASPH2HF8Z128rmb = 6154,
+  VCVTBIASPH2HF8Z128rmbk = 6155,
+  VCVTBIASPH2HF8Z128rmbkz = 6156,
+  VCVTBIASPH2HF8Z128rmk = 6157,
+  VCVTBIASPH2HF8Z128rmkz = 6158,
+  VCVTBIASPH2HF8Z128rr = 6159,
+  VCVTBIASPH2HF8Z128rrk = 6160,
+  VCVTBIASPH2HF8Z128rrkz = 6161,
+  VCVTBIASPH2HF8Z256rm = 6162,
+  VCVTBIASPH2HF8Z256rmb = 6163,
+  VCVTBIASPH2HF8Z256rmbk = 6164,
+  VCVTBIASPH2HF8Z256rmbkz = 6165,
+  VCVTBIASPH2HF8Z256rmk = 6166,
+  VCVTBIASPH2HF8Z256rmkz = 6167,
+  VCVTBIASPH2HF8Z256rr = 6168,
+  VCVTBIASPH2HF8Z256rrk = 6169,
+  VCVTBIASPH2HF8Z256rrkz = 6170,
+  VCVTBIASPH2HF8Zrm = 6171,
+  VCVTBIASPH2HF8Zrmb = 6172,
+  VCVTBIASPH2HF8Zrmbk = 6173,
+  VCVTBIASPH2HF8Zrmbkz = 6174,
+  VCVTBIASPH2HF8Zrmk = 6175,
+  VCVTBIASPH2HF8Zrmkz = 6176,
+  VCVTBIASPH2HF8Zrr = 6177,
+  VCVTBIASPH2HF8Zrrk = 6178,
+  VCVTBIASPH2HF8Zrrkz = 6179,
+  VCVTDQ2PDYrm = 6180,
+  VCVTDQ2PDYrr = 6181,
+  VCVTDQ2PDZ128rm = 6182,
+  VCVTDQ2PDZ128rmb = 6183,
+  VCVTDQ2PDZ128rmbk = 6184,
+  VCVTDQ2PDZ128rmbkz = 6185,
+  VCVTDQ2PDZ128rmk = 6186,
+  VCVTDQ2PDZ128rmkz = 6187,
+  VCVTDQ2PDZ128rr = 6188,
+  VCVTDQ2PDZ128rrk = 6189,
+  VCVTDQ2PDZ128rrkz = 6190,
+  VCVTDQ2PDZ256rm = 6191,
+  VCVTDQ2PDZ256rmb = 6192,
+  VCVTDQ2PDZ256rmbk = 6193,
+  VCVTDQ2PDZ256rmbkz = 6194,
+  VCVTDQ2PDZ256rmk = 6195,
+  VCVTDQ2PDZ256rmkz = 6196,
+  VCVTDQ2PDZ256rr = 6197,
+  VCVTDQ2PDZ256rrk = 6198,
+  VCVTDQ2PDZ256rrkz = 6199,
+  VCVTDQ2PDZrm = 6200,
+  VCVTDQ2PDZrmb = 6201,
+  VCVTDQ2PDZrmbk = 6202,
+  VCVTDQ2PDZrmbkz = 6203,
+  VCVTDQ2PDZrmk = 6204,
+  VCVTDQ2PDZrmkz = 6205,
+  VCVTDQ2PDZrr = 6206,
+  VCVTDQ2PDZrrk = 6207,
+  VCVTDQ2PDZrrkz = 6208,
+  VCVTDQ2PDrm = 6209,
+  VCVTDQ2PDrr = 6210,
+  VCVTDQ2PHZ128rm = 6211,
+  VCVTDQ2PHZ128rmb = 6212,
+  VCVTDQ2PHZ128rmbk = 6213,
+  VCVTDQ2PHZ128rmbkz = 6214,
+  VCVTDQ2PHZ128rmk = 6215,
+  VCVTDQ2PHZ128rmkz = 6216,
+  VCVTDQ2PHZ128rr = 6217,
+  VCVTDQ2PHZ128rrk = 6218,
+  VCVTDQ2PHZ128rrkz = 6219,
+  VCVTDQ2PHZ256rm = 6220,
+  VCVTDQ2PHZ256rmb = 6221,
+  VCVTDQ2PHZ256rmbk = 6222,
+  VCVTDQ2PHZ256rmbkz = 6223,
+  VCVTDQ2PHZ256rmk = 6224,
+  VCVTDQ2PHZ256rmkz = 6225,
+  VCVTDQ2PHZ256rr = 6226,
+  VCVTDQ2PHZ256rrk = 6227,
+  VCVTDQ2PHZ256rrkz = 6228,
+  VCVTDQ2PHZrm = 6229,
+  VCVTDQ2PHZrmb = 6230,
+  VCVTDQ2PHZrmbk = 6231,
+  VCVTDQ2PHZrmbkz = 6232,
+  VCVTDQ2PHZrmk = 6233,
+  VCVTDQ2PHZrmkz = 6234,
+  VCVTDQ2PHZrr = 6235,
+  VCVTDQ2PHZrrb = 6236,
+  VCVTDQ2PHZrrbk = 6237,
+  VCVTDQ2PHZrrbkz = 6238,
+  VCVTDQ2PHZrrk = 6239,
+  VCVTDQ2PHZrrkz = 6240,
+  VCVTDQ2PSYrm = 6241,
+  VCVTDQ2PSYrr = 6242,
+  VCVTDQ2PSZ128rm = 6243,
+  VCVTDQ2PSZ128rmb = 6244,
+  VCVTDQ2PSZ128rmbk = 6245,
+  VCVTDQ2PSZ128rmbkz = 6246,
+  VCVTDQ2PSZ128rmk = 6247,
+  VCVTDQ2PSZ128rmkz = 6248,
+  VCVTDQ2PSZ128rr = 6249,
+  VCVTDQ2PSZ128rrk = 6250,
+  VCVTDQ2PSZ128rrkz = 6251,
+  VCVTDQ2PSZ256rm = 6252,
+  VCVTDQ2PSZ256rmb = 6253,
+  VCVTDQ2PSZ256rmbk = 6254,
+  VCVTDQ2PSZ256rmbkz = 6255,
+  VCVTDQ2PSZ256rmk = 6256,
+  VCVTDQ2PSZ256rmkz = 6257,
+  VCVTDQ2PSZ256rr = 6258,
+  VCVTDQ2PSZ256rrk = 6259,
+  VCVTDQ2PSZ256rrkz = 6260,
+  VCVTDQ2PSZrm = 6261,
+  VCVTDQ2PSZrmb = 6262,
+  VCVTDQ2PSZrmbk = 6263,
+  VCVTDQ2PSZrmbkz = 6264,
+  VCVTDQ2PSZrmk = 6265,
+  VCVTDQ2PSZrmkz = 6266,
+  VCVTDQ2PSZrr = 6267,
+  VCVTDQ2PSZrrb = 6268,
+  VCVTDQ2PSZrrbk = 6269,
+  VCVTDQ2PSZrrbkz = 6270,
+  VCVTDQ2PSZrrk = 6271,
+  VCVTDQ2PSZrrkz = 6272,
+  VCVTDQ2PSrm = 6273,
+  VCVTDQ2PSrr = 6274,
+  VCVTHF82PHZ128rm = 6275,
+  VCVTHF82PHZ128rmk = 6276,
+  VCVTHF82PHZ128rmkz = 6277,
+  VCVTHF82PHZ128rr = 6278,
+  VCVTHF82PHZ128rrk = 6279,
+  VCVTHF82PHZ128rrkz = 6280,
+  VCVTHF82PHZ256rm = 6281,
+  VCVTHF82PHZ256rmk = 6282,
+  VCVTHF82PHZ256rmkz = 6283,
+  VCVTHF82PHZ256rr = 6284,
+  VCVTHF82PHZ256rrk = 6285,
+  VCVTHF82PHZ256rrkz = 6286,
+  VCVTHF82PHZrm = 6287,
+  VCVTHF82PHZrmk = 6288,
+  VCVTHF82PHZrmkz = 6289,
+  VCVTHF82PHZrr = 6290,
+  VCVTHF82PHZrrk = 6291,
+  VCVTHF82PHZrrkz = 6292,
+  VCVTNE2PS2BF16Z128rm = 6293,
+  VCVTNE2PS2BF16Z128rmb = 6294,
+  VCVTNE2PS2BF16Z128rmbk = 6295,
+  VCVTNE2PS2BF16Z128rmbkz = 6296,
+  VCVTNE2PS2BF16Z128rmk = 6297,
+  VCVTNE2PS2BF16Z128rmkz = 6298,
+  VCVTNE2PS2BF16Z128rr = 6299,
+  VCVTNE2PS2BF16Z128rrk = 6300,
+  VCVTNE2PS2BF16Z128rrkz = 6301,
+  VCVTNE2PS2BF16Z256rm = 6302,
+  VCVTNE2PS2BF16Z256rmb = 6303,
+  VCVTNE2PS2BF16Z256rmbk = 6304,
+  VCVTNE2PS2BF16Z256rmbkz = 6305,
+  VCVTNE2PS2BF16Z256rmk = 6306,
+  VCVTNE2PS2BF16Z256rmkz = 6307,
+  VCVTNE2PS2BF16Z256rr = 6308,
+  VCVTNE2PS2BF16Z256rrk = 6309,
+  VCVTNE2PS2BF16Z256rrkz = 6310,
+  VCVTNE2PS2BF16Zrm = 6311,
+  VCVTNE2PS2BF16Zrmb = 6312,
+  VCVTNE2PS2BF16Zrmbk = 6313,
+  VCVTNE2PS2BF16Zrmbkz = 6314,
+  VCVTNE2PS2BF16Zrmk = 6315,
+  VCVTNE2PS2BF16Zrmkz = 6316,
+  VCVTNE2PS2BF16Zrr = 6317,
+  VCVTNE2PS2BF16Zrrk = 6318,
+  VCVTNE2PS2BF16Zrrkz = 6319,
+  VCVTNEEBF162PSYrm = 6320,
+  VCVTNEEBF162PSrm = 6321,
+  VCVTNEEPH2PSYrm = 6322,
+  VCVTNEEPH2PSrm = 6323,
+  VCVTNEOBF162PSYrm = 6324,
+  VCVTNEOBF162PSrm = 6325,
+  VCVTNEOPH2PSYrm = 6326,
+  VCVTNEOPH2PSrm = 6327,
+  VCVTNEPS2BF16Yrm = 6328,
+  VCVTNEPS2BF16Yrr = 6329,
+  VCVTNEPS2BF16Z128rm = 6330,
+  VCVTNEPS2BF16Z128rmb = 6331,
+  VCVTNEPS2BF16Z128rmbk = 6332,
+  VCVTNEPS2BF16Z128rmbkz = 6333,
+  VCVTNEPS2BF16Z128rmk = 6334,
+  VCVTNEPS2BF16Z128rmkz = 6335,
+  VCVTNEPS2BF16Z128rr = 6336,
+  VCVTNEPS2BF16Z128rrk = 6337,
+  VCVTNEPS2BF16Z128rrkz = 6338,
+  VCVTNEPS2BF16Z256rm = 6339,
+  VCVTNEPS2BF16Z256rmb = 6340,
+  VCVTNEPS2BF16Z256rmbk = 6341,
+  VCVTNEPS2BF16Z256rmbkz = 6342,
+  VCVTNEPS2BF16Z256rmk = 6343,
+  VCVTNEPS2BF16Z256rmkz = 6344,
+  VCVTNEPS2BF16Z256rr = 6345,
+  VCVTNEPS2BF16Z256rrk = 6346,
+  VCVTNEPS2BF16Z256rrkz = 6347,
+  VCVTNEPS2BF16Zrm = 6348,
+  VCVTNEPS2BF16Zrmb = 6349,
+  VCVTNEPS2BF16Zrmbk = 6350,
+  VCVTNEPS2BF16Zrmbkz = 6351,
+  VCVTNEPS2BF16Zrmk = 6352,
+  VCVTNEPS2BF16Zrmkz = 6353,
+  VCVTNEPS2BF16Zrr = 6354,
+  VCVTNEPS2BF16Zrrk = 6355,
+  VCVTNEPS2BF16Zrrkz = 6356,
+  VCVTNEPS2BF16rm = 6357,
+  VCVTNEPS2BF16rr = 6358,
+  VCVTPD2DQYrm = 6359,
+  VCVTPD2DQYrr = 6360,
+  VCVTPD2DQZ128rm = 6361,
+  VCVTPD2DQZ128rmb = 6362,
+  VCVTPD2DQZ128rmbk = 6363,
+  VCVTPD2DQZ128rmbkz = 6364,
+  VCVTPD2DQZ128rmk = 6365,
+  VCVTPD2DQZ128rmkz = 6366,
+  VCVTPD2DQZ128rr = 6367,
+  VCVTPD2DQZ128rrk = 6368,
+  VCVTPD2DQZ128rrkz = 6369,
+  VCVTPD2DQZ256rm = 6370,
+  VCVTPD2DQZ256rmb = 6371,
+  VCVTPD2DQZ256rmbk = 6372,
+  VCVTPD2DQZ256rmbkz = 6373,
+  VCVTPD2DQZ256rmk = 6374,
+  VCVTPD2DQZ256rmkz = 6375,
+  VCVTPD2DQZ256rr = 6376,
+  VCVTPD2DQZ256rrk = 6377,
+  VCVTPD2DQZ256rrkz = 6378,
+  VCVTPD2DQZrm = 6379,
+  VCVTPD2DQZrmb = 6380,
+  VCVTPD2DQZrmbk = 6381,
+  VCVTPD2DQZrmbkz = 6382,
+  VCVTPD2DQZrmk = 6383,
+  VCVTPD2DQZrmkz = 6384,
+  VCVTPD2DQZrr = 6385,
+  VCVTPD2DQZrrb = 6386,
+  VCVTPD2DQZrrbk = 6387,
+  VCVTPD2DQZrrbkz = 6388,
+  VCVTPD2DQZrrk = 6389,
+  VCVTPD2DQZrrkz = 6390,
+  VCVTPD2DQrm = 6391,
+  VCVTPD2DQrr = 6392,
+  VCVTPD2PHZ128rm = 6393,
+  VCVTPD2PHZ128rmb = 6394,
+  VCVTPD2PHZ128rmbk = 6395,
+  VCVTPD2PHZ128rmbkz = 6396,
+  VCVTPD2PHZ128rmk = 6397,
+  VCVTPD2PHZ128rmkz = 6398,
+  VCVTPD2PHZ128rr = 6399,
+  VCVTPD2PHZ128rrk = 6400,
+  VCVTPD2PHZ128rrkz = 6401,
+  VCVTPD2PHZ256rm = 6402,
+  VCVTPD2PHZ256rmb = 6403,
+  VCVTPD2PHZ256rmbk = 6404,
+  VCVTPD2PHZ256rmbkz = 6405,
+  VCVTPD2PHZ256rmk = 6406,
+  VCVTPD2PHZ256rmkz = 6407,
+  VCVTPD2PHZ256rr = 6408,
+  VCVTPD2PHZ256rrk = 6409,
+  VCVTPD2PHZ256rrkz = 6410,
+  VCVTPD2PHZrm = 6411,
+  VCVTPD2PHZrmb = 6412,
+  VCVTPD2PHZrmbk = 6413,
+  VCVTPD2PHZrmbkz = 6414,
+  VCVTPD2PHZrmk = 6415,
+  VCVTPD2PHZrmkz = 6416,
+  VCVTPD2PHZrr = 6417,
+  VCVTPD2PHZrrb = 6418,
+  VCVTPD2PHZrrbk = 6419,
+  VCVTPD2PHZrrbkz = 6420,
+  VCVTPD2PHZrrk = 6421,
+  VCVTPD2PHZrrkz = 6422,
+  VCVTPD2PSYrm = 6423,
+  VCVTPD2PSYrr = 6424,
+  VCVTPD2PSZ128rm = 6425,
+  VCVTPD2PSZ128rmb = 6426,
+  VCVTPD2PSZ128rmbk = 6427,
+  VCVTPD2PSZ128rmbkz = 6428,
+  VCVTPD2PSZ128rmk = 6429,
+  VCVTPD2PSZ128rmkz = 6430,
+  VCVTPD2PSZ128rr = 6431,
+  VCVTPD2PSZ128rrk = 6432,
+  VCVTPD2PSZ128rrkz = 6433,
+  VCVTPD2PSZ256rm = 6434,
+  VCVTPD2PSZ256rmb = 6435,
+  VCVTPD2PSZ256rmbk = 6436,
+  VCVTPD2PSZ256rmbkz = 6437,
+  VCVTPD2PSZ256rmk = 6438,
+  VCVTPD2PSZ256rmkz = 6439,
+  VCVTPD2PSZ256rr = 6440,
+  VCVTPD2PSZ256rrk = 6441,
+  VCVTPD2PSZ256rrkz = 6442,
+  VCVTPD2PSZrm = 6443,
+  VCVTPD2PSZrmb = 6444,
+  VCVTPD2PSZrmbk = 6445,
+  VCVTPD2PSZrmbkz = 6446,
+  VCVTPD2PSZrmk = 6447,
+  VCVTPD2PSZrmkz = 6448,
+  VCVTPD2PSZrr = 6449,
+  VCVTPD2PSZrrb = 6450,
+  VCVTPD2PSZrrbk = 6451,
+  VCVTPD2PSZrrbkz = 6452,
+  VCVTPD2PSZrrk = 6453,
+  VCVTPD2PSZrrkz = 6454,
+  VCVTPD2PSrm = 6455,
+  VCVTPD2PSrr = 6456,
+  VCVTPD2QQZ128rm = 6457,
+  VCVTPD2QQZ128rmb = 6458,
+  VCVTPD2QQZ128rmbk = 6459,
+  VCVTPD2QQZ128rmbkz = 6460,
+  VCVTPD2QQZ128rmk = 6461,
+  VCVTPD2QQZ128rmkz = 6462,
+  VCVTPD2QQZ128rr = 6463,
+  VCVTPD2QQZ128rrk = 6464,
+  VCVTPD2QQZ128rrkz = 6465,
+  VCVTPD2QQZ256rm = 6466,
+  VCVTPD2QQZ256rmb = 6467,
+  VCVTPD2QQZ256rmbk = 6468,
+  VCVTPD2QQZ256rmbkz = 6469,
+  VCVTPD2QQZ256rmk = 6470,
+  VCVTPD2QQZ256rmkz = 6471,
+  VCVTPD2QQZ256rr = 6472,
+  VCVTPD2QQZ256rrk = 6473,
+  VCVTPD2QQZ256rrkz = 6474,
+  VCVTPD2QQZrm = 6475,
+  VCVTPD2QQZrmb = 6476,
+  VCVTPD2QQZrmbk = 6477,
+  VCVTPD2QQZrmbkz = 6478,
+  VCVTPD2QQZrmk = 6479,
+  VCVTPD2QQZrmkz = 6480,
+  VCVTPD2QQZrr = 6481,
+  VCVTPD2QQZrrb = 6482,
+  VCVTPD2QQZrrbk = 6483,
+  VCVTPD2QQZrrbkz = 6484,
+  VCVTPD2QQZrrk = 6485,
+  VCVTPD2QQZrrkz = 6486,
+  VCVTPD2UDQZ128rm = 6487,
+  VCVTPD2UDQZ128rmb = 6488,
+  VCVTPD2UDQZ128rmbk = 6489,
+  VCVTPD2UDQZ128rmbkz = 6490,
+  VCVTPD2UDQZ128rmk = 6491,
+  VCVTPD2UDQZ128rmkz = 6492,
+  VCVTPD2UDQZ128rr = 6493,
+  VCVTPD2UDQZ128rrk = 6494,
+  VCVTPD2UDQZ128rrkz = 6495,
+  VCVTPD2UDQZ256rm = 6496,
+  VCVTPD2UDQZ256rmb = 6497,
+  VCVTPD2UDQZ256rmbk = 6498,
+  VCVTPD2UDQZ256rmbkz = 6499,
+  VCVTPD2UDQZ256rmk = 6500,
+  VCVTPD2UDQZ256rmkz = 6501,
+  VCVTPD2UDQZ256rr = 6502,
+  VCVTPD2UDQZ256rrk = 6503,
+  VCVTPD2UDQZ256rrkz = 6504,
+  VCVTPD2UDQZrm = 6505,
+  VCVTPD2UDQZrmb = 6506,
+  VCVTPD2UDQZrmbk = 6507,
+  VCVTPD2UDQZrmbkz = 6508,
+  VCVTPD2UDQZrmk = 6509,
+  VCVTPD2UDQZrmkz = 6510,
+  VCVTPD2UDQZrr = 6511,
+  VCVTPD2UDQZrrb = 6512,
+  VCVTPD2UDQZrrbk = 6513,
+  VCVTPD2UDQZrrbkz = 6514,
+  VCVTPD2UDQZrrk = 6515,
+  VCVTPD2UDQZrrkz = 6516,
+  VCVTPD2UQQZ128rm = 6517,
+  VCVTPD2UQQZ128rmb = 6518,
+  VCVTPD2UQQZ128rmbk = 6519,
+  VCVTPD2UQQZ128rmbkz = 6520,
+  VCVTPD2UQQZ128rmk = 6521,
+  VCVTPD2UQQZ128rmkz = 6522,
+  VCVTPD2UQQZ128rr = 6523,
+  VCVTPD2UQQZ128rrk = 6524,
+  VCVTPD2UQQZ128rrkz = 6525,
+  VCVTPD2UQQZ256rm = 6526,
+  VCVTPD2UQQZ256rmb = 6527,
+  VCVTPD2UQQZ256rmbk = 6528,
+  VCVTPD2UQQZ256rmbkz = 6529,
+  VCVTPD2UQQZ256rmk = 6530,
+  VCVTPD2UQQZ256rmkz = 6531,
+  VCVTPD2UQQZ256rr = 6532,
+  VCVTPD2UQQZ256rrk = 6533,
+  VCVTPD2UQQZ256rrkz = 6534,
+  VCVTPD2UQQZrm = 6535,
+  VCVTPD2UQQZrmb = 6536,
+  VCVTPD2UQQZrmbk = 6537,
+  VCVTPD2UQQZrmbkz = 6538,
+  VCVTPD2UQQZrmk = 6539,
+  VCVTPD2UQQZrmkz = 6540,
+  VCVTPD2UQQZrr = 6541,
+  VCVTPD2UQQZrrb = 6542,
+  VCVTPD2UQQZrrbk = 6543,
+  VCVTPD2UQQZrrbkz = 6544,
+  VCVTPD2UQQZrrk = 6545,
+  VCVTPD2UQQZrrkz = 6546,
+  VCVTPH2BF8SZ128rm = 6547,
+  VCVTPH2BF8SZ128rmb = 6548,
+  VCVTPH2BF8SZ128rmbk = 6549,
+  VCVTPH2BF8SZ128rmbkz = 6550,
+  VCVTPH2BF8SZ128rmk = 6551,
+  VCVTPH2BF8SZ128rmkz = 6552,
+  VCVTPH2BF8SZ128rr = 6553,
+  VCVTPH2BF8SZ128rrk = 6554,
+  VCVTPH2BF8SZ128rrkz = 6555,
+  VCVTPH2BF8SZ256rm = 6556,
+  VCVTPH2BF8SZ256rmb = 6557,
+  VCVTPH2BF8SZ256rmbk = 6558,
+  VCVTPH2BF8SZ256rmbkz = 6559,
+  VCVTPH2BF8SZ256rmk = 6560,
+  VCVTPH2BF8SZ256rmkz = 6561,
+  VCVTPH2BF8SZ256rr = 6562,
+  VCVTPH2BF8SZ256rrk = 6563,
+  VCVTPH2BF8SZ256rrkz = 6564,
+  VCVTPH2BF8SZrm = 6565,
+  VCVTPH2BF8SZrmb = 6566,
+  VCVTPH2BF8SZrmbk = 6567,
+  VCVTPH2BF8SZrmbkz = 6568,
+  VCVTPH2BF8SZrmk = 6569,
+  VCVTPH2BF8SZrmkz = 6570,
+  VCVTPH2BF8SZrr = 6571,
+  VCVTPH2BF8SZrrk = 6572,
+  VCVTPH2BF8SZrrkz = 6573,
+  VCVTPH2BF8Z128rm = 6574,
+  VCVTPH2BF8Z128rmb = 6575,
+  VCVTPH2BF8Z128rmbk = 6576,
+  VCVTPH2BF8Z128rmbkz = 6577,
+  VCVTPH2BF8Z128rmk = 6578,
+  VCVTPH2BF8Z128rmkz = 6579,
+  VCVTPH2BF8Z128rr = 6580,
+  VCVTPH2BF8Z128rrk = 6581,
+  VCVTPH2BF8Z128rrkz = 6582,
+  VCVTPH2BF8Z256rm = 6583,
+  VCVTPH2BF8Z256rmb = 6584,
+  VCVTPH2BF8Z256rmbk = 6585,
+  VCVTPH2BF8Z256rmbkz = 6586,
+  VCVTPH2BF8Z256rmk = 6587,
+  VCVTPH2BF8Z256rmkz = 6588,
+  VCVTPH2BF8Z256rr = 6589,
+  VCVTPH2BF8Z256rrk = 6590,
+  VCVTPH2BF8Z256rrkz = 6591,
+  VCVTPH2BF8Zrm = 6592,
+  VCVTPH2BF8Zrmb = 6593,
+  VCVTPH2BF8Zrmbk = 6594,
+  VCVTPH2BF8Zrmbkz = 6595,
+  VCVTPH2BF8Zrmk = 6596,
+  VCVTPH2BF8Zrmkz = 6597,
+  VCVTPH2BF8Zrr = 6598,
+  VCVTPH2BF8Zrrk = 6599,
+  VCVTPH2BF8Zrrkz = 6600,
+  VCVTPH2DQZ128rm = 6601,
+  VCVTPH2DQZ128rmb = 6602,
+  VCVTPH2DQZ128rmbk = 6603,
+  VCVTPH2DQZ128rmbkz = 6604,
+  VCVTPH2DQZ128rmk = 6605,
+  VCVTPH2DQZ128rmkz = 6606,
+  VCVTPH2DQZ128rr = 6607,
+  VCVTPH2DQZ128rrk = 6608,
+  VCVTPH2DQZ128rrkz = 6609,
+  VCVTPH2DQZ256rm = 6610,
+  VCVTPH2DQZ256rmb = 6611,
+  VCVTPH2DQZ256rmbk = 6612,
+  VCVTPH2DQZ256rmbkz = 6613,
+  VCVTPH2DQZ256rmk = 6614,
+  VCVTPH2DQZ256rmkz = 6615,
+  VCVTPH2DQZ256rr = 6616,
+  VCVTPH2DQZ256rrk = 6617,
+  VCVTPH2DQZ256rrkz = 6618,
+  VCVTPH2DQZrm = 6619,
+  VCVTPH2DQZrmb = 6620,
+  VCVTPH2DQZrmbk = 6621,
+  VCVTPH2DQZrmbkz = 6622,
+  VCVTPH2DQZrmk = 6623,
+  VCVTPH2DQZrmkz = 6624,
+  VCVTPH2DQZrr = 6625,
+  VCVTPH2DQZrrb = 6626,
+  VCVTPH2DQZrrbk = 6627,
+  VCVTPH2DQZrrbkz = 6628,
+  VCVTPH2DQZrrk = 6629,
+  VCVTPH2DQZrrkz = 6630,
+  VCVTPH2HF8SZ128rm = 6631,
+  VCVTPH2HF8SZ128rmb = 6632,
+  VCVTPH2HF8SZ128rmbk = 6633,
+  VCVTPH2HF8SZ128rmbkz = 6634,
+  VCVTPH2HF8SZ128rmk = 6635,
+  VCVTPH2HF8SZ128rmkz = 6636,
+  VCVTPH2HF8SZ128rr = 6637,
+  VCVTPH2HF8SZ128rrk = 6638,
+  VCVTPH2HF8SZ128rrkz = 6639,
+  VCVTPH2HF8SZ256rm = 6640,
+  VCVTPH2HF8SZ256rmb = 6641,
+  VCVTPH2HF8SZ256rmbk = 6642,
+  VCVTPH2HF8SZ256rmbkz = 6643,
+  VCVTPH2HF8SZ256rmk = 6644,
+  VCVTPH2HF8SZ256rmkz = 6645,
+  VCVTPH2HF8SZ256rr = 6646,
+  VCVTPH2HF8SZ256rrk = 6647,
+  VCVTPH2HF8SZ256rrkz = 6648,
+  VCVTPH2HF8SZrm = 6649,
+  VCVTPH2HF8SZrmb = 6650,
+  VCVTPH2HF8SZrmbk = 6651,
+  VCVTPH2HF8SZrmbkz = 6652,
+  VCVTPH2HF8SZrmk = 6653,
+  VCVTPH2HF8SZrmkz = 6654,
+  VCVTPH2HF8SZrr = 6655,
+  VCVTPH2HF8SZrrk = 6656,
+  VCVTPH2HF8SZrrkz = 6657,
+  VCVTPH2HF8Z128rm = 6658,
+  VCVTPH2HF8Z128rmb = 6659,
+  VCVTPH2HF8Z128rmbk = 6660,
+  VCVTPH2HF8Z128rmbkz = 6661,
+  VCVTPH2HF8Z128rmk = 6662,
+  VCVTPH2HF8Z128rmkz = 6663,
+  VCVTPH2HF8Z128rr = 6664,
+  VCVTPH2HF8Z128rrk = 6665,
+  VCVTPH2HF8Z128rrkz = 6666,
+  VCVTPH2HF8Z256rm = 6667,
+  VCVTPH2HF8Z256rmb = 6668,
+  VCVTPH2HF8Z256rmbk = 6669,
+  VCVTPH2HF8Z256rmbkz = 6670,
+  VCVTPH2HF8Z256rmk = 6671,
+  VCVTPH2HF8Z256rmkz = 6672,
+  VCVTPH2HF8Z256rr = 6673,
+  VCVTPH2HF8Z256rrk = 6674,
+  VCVTPH2HF8Z256rrkz = 6675,
+  VCVTPH2HF8Zrm = 6676,
+  VCVTPH2HF8Zrmb = 6677,
+  VCVTPH2HF8Zrmbk = 6678,
+  VCVTPH2HF8Zrmbkz = 6679,
+  VCVTPH2HF8Zrmk = 6680,
+  VCVTPH2HF8Zrmkz = 6681,
+  VCVTPH2HF8Zrr = 6682,
+  VCVTPH2HF8Zrrk = 6683,
+  VCVTPH2HF8Zrrkz = 6684,
+  VCVTPH2IBSZ128rm = 6685,
+  VCVTPH2IBSZ128rmb = 6686,
+  VCVTPH2IBSZ128rmbk = 6687,
+  VCVTPH2IBSZ128rmbkz = 6688,
+  VCVTPH2IBSZ128rmk = 6689,
+  VCVTPH2IBSZ128rmkz = 6690,
+  VCVTPH2IBSZ128rr = 6691,
+  VCVTPH2IBSZ128rrk = 6692,
+  VCVTPH2IBSZ128rrkz = 6693,
+  VCVTPH2IBSZ256rm = 6694,
+  VCVTPH2IBSZ256rmb = 6695,
+  VCVTPH2IBSZ256rmbk = 6696,
+  VCVTPH2IBSZ256rmbkz = 6697,
+  VCVTPH2IBSZ256rmk = 6698,
+  VCVTPH2IBSZ256rmkz = 6699,
+  VCVTPH2IBSZ256rr = 6700,
+  VCVTPH2IBSZ256rrk = 6701,
+  VCVTPH2IBSZ256rrkz = 6702,
+  VCVTPH2IBSZrm = 6703,
+  VCVTPH2IBSZrmb = 6704,
+  VCVTPH2IBSZrmbk = 6705,
+  VCVTPH2IBSZrmbkz = 6706,
+  VCVTPH2IBSZrmk = 6707,
+  VCVTPH2IBSZrmkz = 6708,
+  VCVTPH2IBSZrr = 6709,
+  VCVTPH2IBSZrrb = 6710,
+  VCVTPH2IBSZrrbk = 6711,
+  VCVTPH2IBSZrrbkz = 6712,
+  VCVTPH2IBSZrrk = 6713,
+  VCVTPH2IBSZrrkz = 6714,
+  VCVTPH2IUBSZ128rm = 6715,
+  VCVTPH2IUBSZ128rmb = 6716,
+  VCVTPH2IUBSZ128rmbk = 6717,
+  VCVTPH2IUBSZ128rmbkz = 6718,
+  VCVTPH2IUBSZ128rmk = 6719,
+  VCVTPH2IUBSZ128rmkz = 6720,
+  VCVTPH2IUBSZ128rr = 6721,
+  VCVTPH2IUBSZ128rrk = 6722,
+  VCVTPH2IUBSZ128rrkz = 6723,
+  VCVTPH2IUBSZ256rm = 6724,
+  VCVTPH2IUBSZ256rmb = 6725,
+  VCVTPH2IUBSZ256rmbk = 6726,
+  VCVTPH2IUBSZ256rmbkz = 6727,
+  VCVTPH2IUBSZ256rmk = 6728,
+  VCVTPH2IUBSZ256rmkz = 6729,
+  VCVTPH2IUBSZ256rr = 6730,
+  VCVTPH2IUBSZ256rrk = 6731,
+  VCVTPH2IUBSZ256rrkz = 6732,
+  VCVTPH2IUBSZrm = 6733,
+  VCVTPH2IUBSZrmb = 6734,
+  VCVTPH2IUBSZrmbk = 6735,
+  VCVTPH2IUBSZrmbkz = 6736,
+  VCVTPH2IUBSZrmk = 6737,
+  VCVTPH2IUBSZrmkz = 6738,
+  VCVTPH2IUBSZrr = 6739,
+  VCVTPH2IUBSZrrb = 6740,
+  VCVTPH2IUBSZrrbk = 6741,
+  VCVTPH2IUBSZrrbkz = 6742,
+  VCVTPH2IUBSZrrk = 6743,
+  VCVTPH2IUBSZrrkz = 6744,
+  VCVTPH2PDZ128rm = 6745,
+  VCVTPH2PDZ128rmb = 6746,
+  VCVTPH2PDZ128rmbk = 6747,
+  VCVTPH2PDZ128rmbkz = 6748,
+  VCVTPH2PDZ128rmk = 6749,
+  VCVTPH2PDZ128rmkz = 6750,
+  VCVTPH2PDZ128rr = 6751,
+  VCVTPH2PDZ128rrk = 6752,
+  VCVTPH2PDZ128rrkz = 6753,
+  VCVTPH2PDZ256rm = 6754,
+  VCVTPH2PDZ256rmb = 6755,
+  VCVTPH2PDZ256rmbk = 6756,
+  VCVTPH2PDZ256rmbkz = 6757,
+  VCVTPH2PDZ256rmk = 6758,
+  VCVTPH2PDZ256rmkz = 6759,
+  VCVTPH2PDZ256rr = 6760,
+  VCVTPH2PDZ256rrk = 6761,
+  VCVTPH2PDZ256rrkz = 6762,
+  VCVTPH2PDZrm = 6763,
+  VCVTPH2PDZrmb = 6764,
+  VCVTPH2PDZrmbk = 6765,
+  VCVTPH2PDZrmbkz = 6766,
+  VCVTPH2PDZrmk = 6767,
+  VCVTPH2PDZrmkz = 6768,
+  VCVTPH2PDZrr = 6769,
+  VCVTPH2PDZrrb = 6770,
+  VCVTPH2PDZrrbk = 6771,
+  VCVTPH2PDZrrbkz = 6772,
+  VCVTPH2PDZrrk = 6773,
+  VCVTPH2PDZrrkz = 6774,
+  VCVTPH2PSXZ128rm = 6775,
+  VCVTPH2PSXZ128rmb = 6776,
+  VCVTPH2PSXZ128rmbk = 6777,
+  VCVTPH2PSXZ128rmbkz = 6778,
+  VCVTPH2PSXZ128rmk = 6779,
+  VCVTPH2PSXZ128rmkz = 6780,
+  VCVTPH2PSXZ128rr = 6781,
+  VCVTPH2PSXZ128rrk = 6782,
+  VCVTPH2PSXZ128rrkz = 6783,
+  VCVTPH2PSXZ256rm = 6784,
+  VCVTPH2PSXZ256rmb = 6785,
+  VCVTPH2PSXZ256rmbk = 6786,
+  VCVTPH2PSXZ256rmbkz = 6787,
+  VCVTPH2PSXZ256rmk = 6788,
+  VCVTPH2PSXZ256rmkz = 6789,
+  VCVTPH2PSXZ256rr = 6790,
+  VCVTPH2PSXZ256rrk = 6791,
+  VCVTPH2PSXZ256rrkz = 6792,
+  VCVTPH2PSXZrm = 6793,
+  VCVTPH2PSXZrmb = 6794,
+  VCVTPH2PSXZrmbk = 6795,
+  VCVTPH2PSXZrmbkz = 6796,
+  VCVTPH2PSXZrmk = 6797,
+  VCVTPH2PSXZrmkz = 6798,
+  VCVTPH2PSXZrr = 6799,
+  VCVTPH2PSXZrrb = 6800,
+  VCVTPH2PSXZrrbk = 6801,
+  VCVTPH2PSXZrrbkz = 6802,
+  VCVTPH2PSXZrrk = 6803,
+  VCVTPH2PSXZrrkz = 6804,
+  VCVTPH2PSYrm = 6805,
+  VCVTPH2PSYrr = 6806,
+  VCVTPH2PSZ128rm = 6807,
+  VCVTPH2PSZ128rmk = 6808,
+  VCVTPH2PSZ128rmkz = 6809,
+  VCVTPH2PSZ128rr = 6810,
+  VCVTPH2PSZ128rrk = 6811,
+  VCVTPH2PSZ128rrkz = 6812,
+  VCVTPH2PSZ256rm = 6813,
+  VCVTPH2PSZ256rmk = 6814,
+  VCVTPH2PSZ256rmkz = 6815,
+  VCVTPH2PSZ256rr = 6816,
+  VCVTPH2PSZ256rrk = 6817,
+  VCVTPH2PSZ256rrkz = 6818,
+  VCVTPH2PSZrm = 6819,
+  VCVTPH2PSZrmk = 6820,
+  VCVTPH2PSZrmkz = 6821,
+  VCVTPH2PSZrr = 6822,
+  VCVTPH2PSZrrb = 6823,
+  VCVTPH2PSZrrbk = 6824,
+  VCVTPH2PSZrrbkz = 6825,
+  VCVTPH2PSZrrk = 6826,
+  VCVTPH2PSZrrkz = 6827,
+  VCVTPH2PSrm = 6828,
+  VCVTPH2PSrr = 6829,
+  VCVTPH2QQZ128rm = 6830,
+  VCVTPH2QQZ128rmb = 6831,
+  VCVTPH2QQZ128rmbk = 6832,
+  VCVTPH2QQZ128rmbkz = 6833,
+  VCVTPH2QQZ128rmk = 6834,
+  VCVTPH2QQZ128rmkz = 6835,
+  VCVTPH2QQZ128rr = 6836,
+  VCVTPH2QQZ128rrk = 6837,
+  VCVTPH2QQZ128rrkz = 6838,
+  VCVTPH2QQZ256rm = 6839,
+  VCVTPH2QQZ256rmb = 6840,
+  VCVTPH2QQZ256rmbk = 6841,
+  VCVTPH2QQZ256rmbkz = 6842,
+  VCVTPH2QQZ256rmk = 6843,
+  VCVTPH2QQZ256rmkz = 6844,
+  VCVTPH2QQZ256rr = 6845,
+  VCVTPH2QQZ256rrk = 6846,
+  VCVTPH2QQZ256rrkz = 6847,
+  VCVTPH2QQZrm = 6848,
+  VCVTPH2QQZrmb = 6849,
+  VCVTPH2QQZrmbk = 6850,
+  VCVTPH2QQZrmbkz = 6851,
+  VCVTPH2QQZrmk = 6852,
+  VCVTPH2QQZrmkz = 6853,
+  VCVTPH2QQZrr = 6854,
+  VCVTPH2QQZrrb = 6855,
+  VCVTPH2QQZrrbk = 6856,
+  VCVTPH2QQZrrbkz = 6857,
+  VCVTPH2QQZrrk = 6858,
+  VCVTPH2QQZrrkz = 6859,
+  VCVTPH2UDQZ128rm = 6860,
+  VCVTPH2UDQZ128rmb = 6861,
+  VCVTPH2UDQZ128rmbk = 6862,
+  VCVTPH2UDQZ128rmbkz = 6863,
+  VCVTPH2UDQZ128rmk = 6864,
+  VCVTPH2UDQZ128rmkz = 6865,
+  VCVTPH2UDQZ128rr = 6866,
+  VCVTPH2UDQZ128rrk = 6867,
+  VCVTPH2UDQZ128rrkz = 6868,
+  VCVTPH2UDQZ256rm = 6869,
+  VCVTPH2UDQZ256rmb = 6870,
+  VCVTPH2UDQZ256rmbk = 6871,
+  VCVTPH2UDQZ256rmbkz = 6872,
+  VCVTPH2UDQZ256rmk = 6873,
+  VCVTPH2UDQZ256rmkz = 6874,
+  VCVTPH2UDQZ256rr = 6875,
+  VCVTPH2UDQZ256rrk = 6876,
+  VCVTPH2UDQZ256rrkz = 6877,
+  VCVTPH2UDQZrm = 6878,
+  VCVTPH2UDQZrmb = 6879,
+  VCVTPH2UDQZrmbk = 6880,
+  VCVTPH2UDQZrmbkz = 6881,
+  VCVTPH2UDQZrmk = 6882,
+  VCVTPH2UDQZrmkz = 6883,
+  VCVTPH2UDQZrr = 6884,
+  VCVTPH2UDQZrrb = 6885,
+  VCVTPH2UDQZrrbk = 6886,
+  VCVTPH2UDQZrrbkz = 6887,
+  VCVTPH2UDQZrrk = 6888,
+  VCVTPH2UDQZrrkz = 6889,
+  VCVTPH2UQQZ128rm = 6890,
+  VCVTPH2UQQZ128rmb = 6891,
+  VCVTPH2UQQZ128rmbk = 6892,
+  VCVTPH2UQQZ128rmbkz = 6893,
+  VCVTPH2UQQZ128rmk = 6894,
+  VCVTPH2UQQZ128rmkz = 6895,
+  VCVTPH2UQQZ128rr = 6896,
+  VCVTPH2UQQZ128rrk = 6897,
+  VCVTPH2UQQZ128rrkz = 6898,
+  VCVTPH2UQQZ256rm = 6899,
+  VCVTPH2UQQZ256rmb = 6900,
+  VCVTPH2UQQZ256rmbk = 6901,
+  VCVTPH2UQQZ256rmbkz = 6902,
+  VCVTPH2UQQZ256rmk = 6903,
+  VCVTPH2UQQZ256rmkz = 6904,
+  VCVTPH2UQQZ256rr = 6905,
+  VCVTPH2UQQZ256rrk = 6906,
+  VCVTPH2UQQZ256rrkz = 6907,
+  VCVTPH2UQQZrm = 6908,
+  VCVTPH2UQQZrmb = 6909,
+  VCVTPH2UQQZrmbk = 6910,
+  VCVTPH2UQQZrmbkz = 6911,
+  VCVTPH2UQQZrmk = 6912,
+  VCVTPH2UQQZrmkz = 6913,
+  VCVTPH2UQQZrr = 6914,
+  VCVTPH2UQQZrrb = 6915,
+  VCVTPH2UQQZrrbk = 6916,
+  VCVTPH2UQQZrrbkz = 6917,
+  VCVTPH2UQQZrrk = 6918,
+  VCVTPH2UQQZrrkz = 6919,
+  VCVTPH2UWZ128rm = 6920,
+  VCVTPH2UWZ128rmb = 6921,
+  VCVTPH2UWZ128rmbk = 6922,
+  VCVTPH2UWZ128rmbkz = 6923,
+  VCVTPH2UWZ128rmk = 6924,
+  VCVTPH2UWZ128rmkz = 6925,
+  VCVTPH2UWZ128rr = 6926,
+  VCVTPH2UWZ128rrk = 6927,
+  VCVTPH2UWZ128rrkz = 6928,
+  VCVTPH2UWZ256rm = 6929,
+  VCVTPH2UWZ256rmb = 6930,
+  VCVTPH2UWZ256rmbk = 6931,
+  VCVTPH2UWZ256rmbkz = 6932,
+  VCVTPH2UWZ256rmk = 6933,
+  VCVTPH2UWZ256rmkz = 6934,
+  VCVTPH2UWZ256rr = 6935,
+  VCVTPH2UWZ256rrk = 6936,
+  VCVTPH2UWZ256rrkz = 6937,
+  VCVTPH2UWZrm = 6938,
+  VCVTPH2UWZrmb = 6939,
+  VCVTPH2UWZrmbk = 6940,
+  VCVTPH2UWZrmbkz = 6941,
+  VCVTPH2UWZrmk = 6942,
+  VCVTPH2UWZrmkz = 6943,
+  VCVTPH2UWZrr = 6944,
+  VCVTPH2UWZrrb = 6945,
+  VCVTPH2UWZrrbk = 6946,
+  VCVTPH2UWZrrbkz = 6947,
+  VCVTPH2UWZrrk = 6948,
+  VCVTPH2UWZrrkz = 6949,
+  VCVTPH2WZ128rm = 6950,
+  VCVTPH2WZ128rmb = 6951,
+  VCVTPH2WZ128rmbk = 6952,
+  VCVTPH2WZ128rmbkz = 6953,
+  VCVTPH2WZ128rmk = 6954,
+  VCVTPH2WZ128rmkz = 6955,
+  VCVTPH2WZ128rr = 6956,
+  VCVTPH2WZ128rrk = 6957,
+  VCVTPH2WZ128rrkz = 6958,
+  VCVTPH2WZ256rm = 6959,
+  VCVTPH2WZ256rmb = 6960,
+  VCVTPH2WZ256rmbk = 6961,
+  VCVTPH2WZ256rmbkz = 6962,
+  VCVTPH2WZ256rmk = 6963,
+  VCVTPH2WZ256rmkz = 6964,
+  VCVTPH2WZ256rr = 6965,
+  VCVTPH2WZ256rrk = 6966,
+  VCVTPH2WZ256rrkz = 6967,
+  VCVTPH2WZrm = 6968,
+  VCVTPH2WZrmb = 6969,
+  VCVTPH2WZrmbk = 6970,
+  VCVTPH2WZrmbkz = 6971,
+  VCVTPH2WZrmk = 6972,
+  VCVTPH2WZrmkz = 6973,
+  VCVTPH2WZrr = 6974,
+  VCVTPH2WZrrb = 6975,
+  VCVTPH2WZrrbk = 6976,
+  VCVTPH2WZrrbkz = 6977,
+  VCVTPH2WZrrk = 6978,
+  VCVTPH2WZrrkz = 6979,
+  VCVTPS2DQYrm = 6980,
+  VCVTPS2DQYrr = 6981,
+  VCVTPS2DQZ128rm = 6982,
+  VCVTPS2DQZ128rmb = 6983,
+  VCVTPS2DQZ128rmbk = 6984,
+  VCVTPS2DQZ128rmbkz = 6985,
+  VCVTPS2DQZ128rmk = 6986,
+  VCVTPS2DQZ128rmkz = 6987,
+  VCVTPS2DQZ128rr = 6988,
+  VCVTPS2DQZ128rrk = 6989,
+  VCVTPS2DQZ128rrkz = 6990,
+  VCVTPS2DQZ256rm = 6991,
+  VCVTPS2DQZ256rmb = 6992,
+  VCVTPS2DQZ256rmbk = 6993,
+  VCVTPS2DQZ256rmbkz = 6994,
+  VCVTPS2DQZ256rmk = 6995,
+  VCVTPS2DQZ256rmkz = 6996,
+  VCVTPS2DQZ256rr = 6997,
+  VCVTPS2DQZ256rrk = 6998,
+  VCVTPS2DQZ256rrkz = 6999,
+  VCVTPS2DQZrm = 7000,
+  VCVTPS2DQZrmb = 7001,
+  VCVTPS2DQZrmbk = 7002,
+  VCVTPS2DQZrmbkz = 7003,
+  VCVTPS2DQZrmk = 7004,
+  VCVTPS2DQZrmkz = 7005,
+  VCVTPS2DQZrr = 7006,
+  VCVTPS2DQZrrb = 7007,
+  VCVTPS2DQZrrbk = 7008,
+  VCVTPS2DQZrrbkz = 7009,
+  VCVTPS2DQZrrk = 7010,
+  VCVTPS2DQZrrkz = 7011,
+  VCVTPS2DQrm = 7012,
+  VCVTPS2DQrr = 7013,
+  VCVTPS2IBSZ128rm = 7014,
+  VCVTPS2IBSZ128rmb = 7015,
+  VCVTPS2IBSZ128rmbk = 7016,
+  VCVTPS2IBSZ128rmbkz = 7017,
+  VCVTPS2IBSZ128rmk = 7018,
+  VCVTPS2IBSZ128rmkz = 7019,
+  VCVTPS2IBSZ128rr = 7020,
+  VCVTPS2IBSZ128rrk = 7021,
+  VCVTPS2IBSZ128rrkz = 7022,
+  VCVTPS2IBSZ256rm = 7023,
+  VCVTPS2IBSZ256rmb = 7024,
+  VCVTPS2IBSZ256rmbk = 7025,
+  VCVTPS2IBSZ256rmbkz = 7026,
+  VCVTPS2IBSZ256rmk = 7027,
+  VCVTPS2IBSZ256rmkz = 7028,
+  VCVTPS2IBSZ256rr = 7029,
+  VCVTPS2IBSZ256rrk = 7030,
+  VCVTPS2IBSZ256rrkz = 7031,
+  VCVTPS2IBSZrm = 7032,
+  VCVTPS2IBSZrmb = 7033,
+  VCVTPS2IBSZrmbk = 7034,
+  VCVTPS2IBSZrmbkz = 7035,
+  VCVTPS2IBSZrmk = 7036,
+  VCVTPS2IBSZrmkz = 7037,
+  VCVTPS2IBSZrr = 7038,
+  VCVTPS2IBSZrrb = 7039,
+  VCVTPS2IBSZrrbk = 7040,
+  VCVTPS2IBSZrrbkz = 7041,
+  VCVTPS2IBSZrrk = 7042,
+  VCVTPS2IBSZrrkz = 7043,
+  VCVTPS2IUBSZ128rm = 7044,
+  VCVTPS2IUBSZ128rmb = 7045,
+  VCVTPS2IUBSZ128rmbk = 7046,
+  VCVTPS2IUBSZ128rmbkz = 7047,
+  VCVTPS2IUBSZ128rmk = 7048,
+  VCVTPS2IUBSZ128rmkz = 7049,
+  VCVTPS2IUBSZ128rr = 7050,
+  VCVTPS2IUBSZ128rrk = 7051,
+  VCVTPS2IUBSZ128rrkz = 7052,
+  VCVTPS2IUBSZ256rm = 7053,
+  VCVTPS2IUBSZ256rmb = 7054,
+  VCVTPS2IUBSZ256rmbk = 7055,
+  VCVTPS2IUBSZ256rmbkz = 7056,
+  VCVTPS2IUBSZ256rmk = 7057,
+  VCVTPS2IUBSZ256rmkz = 7058,
+  VCVTPS2IUBSZ256rr = 7059,
+  VCVTPS2IUBSZ256rrk = 7060,
+  VCVTPS2IUBSZ256rrkz = 7061,
+  VCVTPS2IUBSZrm = 7062,
+  VCVTPS2IUBSZrmb = 7063,
+  VCVTPS2IUBSZrmbk = 7064,
+  VCVTPS2IUBSZrmbkz = 7065,
+  VCVTPS2IUBSZrmk = 7066,
+  VCVTPS2IUBSZrmkz = 7067,
+  VCVTPS2IUBSZrr = 7068,
+  VCVTPS2IUBSZrrb = 7069,
+  VCVTPS2IUBSZrrbk = 7070,
+  VCVTPS2IUBSZrrbkz = 7071,
+  VCVTPS2IUBSZrrk = 7072,
+  VCVTPS2IUBSZrrkz = 7073,
+  VCVTPS2PDYrm = 7074,
+  VCVTPS2PDYrr = 7075,
+  VCVTPS2PDZ128rm = 7076,
+  VCVTPS2PDZ128rmb = 7077,
+  VCVTPS2PDZ128rmbk = 7078,
+  VCVTPS2PDZ128rmbkz = 7079,
+  VCVTPS2PDZ128rmk = 7080,
+  VCVTPS2PDZ128rmkz = 7081,
+  VCVTPS2PDZ128rr = 7082,
+  VCVTPS2PDZ128rrk = 7083,
+  VCVTPS2PDZ128rrkz = 7084,
+  VCVTPS2PDZ256rm = 7085,
+  VCVTPS2PDZ256rmb = 7086,
+  VCVTPS2PDZ256rmbk = 7087,
+  VCVTPS2PDZ256rmbkz = 7088,
+  VCVTPS2PDZ256rmk = 7089,
+  VCVTPS2PDZ256rmkz = 7090,
+  VCVTPS2PDZ256rr = 7091,
+  VCVTPS2PDZ256rrk = 7092,
+  VCVTPS2PDZ256rrkz = 7093,
+  VCVTPS2PDZrm = 7094,
+  VCVTPS2PDZrmb = 7095,
+  VCVTPS2PDZrmbk = 7096,
+  VCVTPS2PDZrmbkz = 7097,
+  VCVTPS2PDZrmk = 7098,
+  VCVTPS2PDZrmkz = 7099,
+  VCVTPS2PDZrr = 7100,
+  VCVTPS2PDZrrb = 7101,
+  VCVTPS2PDZrrbk = 7102,
+  VCVTPS2PDZrrbkz = 7103,
+  VCVTPS2PDZrrk = 7104,
+  VCVTPS2PDZrrkz = 7105,
+  VCVTPS2PDrm = 7106,
+  VCVTPS2PDrr = 7107,
+  VCVTPS2PHXZ128rm = 7108,
+  VCVTPS2PHXZ128rmb = 7109,
+  VCVTPS2PHXZ128rmbk = 7110,
+  VCVTPS2PHXZ128rmbkz = 7111,
+  VCVTPS2PHXZ128rmk = 7112,
+  VCVTPS2PHXZ128rmkz = 7113,
+  VCVTPS2PHXZ128rr = 7114,
+  VCVTPS2PHXZ128rrk = 7115,
+  VCVTPS2PHXZ128rrkz = 7116,
+  VCVTPS2PHXZ256rm = 7117,
+  VCVTPS2PHXZ256rmb = 7118,
+  VCVTPS2PHXZ256rmbk = 7119,
+  VCVTPS2PHXZ256rmbkz = 7120,
+  VCVTPS2PHXZ256rmk = 7121,
+  VCVTPS2PHXZ256rmkz = 7122,
+  VCVTPS2PHXZ256rr = 7123,
+  VCVTPS2PHXZ256rrk = 7124,
+  VCVTPS2PHXZ256rrkz = 7125,
+  VCVTPS2PHXZrm = 7126,
+  VCVTPS2PHXZrmb = 7127,
+  VCVTPS2PHXZrmbk = 7128,
+  VCVTPS2PHXZrmbkz = 7129,
+  VCVTPS2PHXZrmk = 7130,
+  VCVTPS2PHXZrmkz = 7131,
+  VCVTPS2PHXZrr = 7132,
+  VCVTPS2PHXZrrb = 7133,
+  VCVTPS2PHXZrrbk = 7134,
+  VCVTPS2PHXZrrbkz = 7135,
+  VCVTPS2PHXZrrk = 7136,
+  VCVTPS2PHXZrrkz = 7137,
+  VCVTPS2PHYmr = 7138,
+  VCVTPS2PHYrr = 7139,
+  VCVTPS2PHZ128mr = 7140,
+  VCVTPS2PHZ128mrk = 7141,
+  VCVTPS2PHZ128rr = 7142,
+  VCVTPS2PHZ128rrk = 7143,
+  VCVTPS2PHZ128rrkz = 7144,
+  VCVTPS2PHZ256mr = 7145,
+  VCVTPS2PHZ256mrk = 7146,
+  VCVTPS2PHZ256rr = 7147,
+  VCVTPS2PHZ256rrk = 7148,
+  VCVTPS2PHZ256rrkz = 7149,
+  VCVTPS2PHZmr = 7150,
+  VCVTPS2PHZmrk = 7151,
+  VCVTPS2PHZrr = 7152,
+  VCVTPS2PHZrrb = 7153,
+  VCVTPS2PHZrrbk = 7154,
+  VCVTPS2PHZrrbkz = 7155,
+  VCVTPS2PHZrrk = 7156,
+  VCVTPS2PHZrrkz = 7157,
+  VCVTPS2PHmr = 7158,
+  VCVTPS2PHrr = 7159,
+  VCVTPS2QQZ128rm = 7160,
+  VCVTPS2QQZ128rmb = 7161,
+  VCVTPS2QQZ128rmbk = 7162,
+  VCVTPS2QQZ128rmbkz = 7163,
+  VCVTPS2QQZ128rmk = 7164,
+  VCVTPS2QQZ128rmkz = 7165,
+  VCVTPS2QQZ128rr = 7166,
+  VCVTPS2QQZ128rrk = 7167,
+  VCVTPS2QQZ128rrkz = 7168,
+  VCVTPS2QQZ256rm = 7169,
+  VCVTPS2QQZ256rmb = 7170,
+  VCVTPS2QQZ256rmbk = 7171,
+  VCVTPS2QQZ256rmbkz = 7172,
+  VCVTPS2QQZ256rmk = 7173,
+  VCVTPS2QQZ256rmkz = 7174,
+  VCVTPS2QQZ256rr = 7175,
+  VCVTPS2QQZ256rrk = 7176,
+  VCVTPS2QQZ256rrkz = 7177,
+  VCVTPS2QQZrm = 7178,
+  VCVTPS2QQZrmb = 7179,
+  VCVTPS2QQZrmbk = 7180,
+  VCVTPS2QQZrmbkz = 7181,
+  VCVTPS2QQZrmk = 7182,
+  VCVTPS2QQZrmkz = 7183,
+  VCVTPS2QQZrr = 7184,
+  VCVTPS2QQZrrb = 7185,
+  VCVTPS2QQZrrbk = 7186,
+  VCVTPS2QQZrrbkz = 7187,
+  VCVTPS2QQZrrk = 7188,
+  VCVTPS2QQZrrkz = 7189,
+  VCVTPS2UDQZ128rm = 7190,
+  VCVTPS2UDQZ128rmb = 7191,
+  VCVTPS2UDQZ128rmbk = 7192,
+  VCVTPS2UDQZ128rmbkz = 7193,
+  VCVTPS2UDQZ128rmk = 7194,
+  VCVTPS2UDQZ128rmkz = 7195,
+  VCVTPS2UDQZ128rr = 7196,
+  VCVTPS2UDQZ128rrk = 7197,
+  VCVTPS2UDQZ128rrkz = 7198,
+  VCVTPS2UDQZ256rm = 7199,
+  VCVTPS2UDQZ256rmb = 7200,
+  VCVTPS2UDQZ256rmbk = 7201,
+  VCVTPS2UDQZ256rmbkz = 7202,
+  VCVTPS2UDQZ256rmk = 7203,
+  VCVTPS2UDQZ256rmkz = 7204,
+  VCVTPS2UDQZ256rr = 7205,
+  VCVTPS2UDQZ256rrk = 7206,
+  VCVTPS2UDQZ256rrkz = 7207,
+  VCVTPS2UDQZrm = 7208,
+  VCVTPS2UDQZrmb = 7209,
+  VCVTPS2UDQZrmbk = 7210,
+  VCVTPS2UDQZrmbkz = 7211,
+  VCVTPS2UDQZrmk = 7212,
+  VCVTPS2UDQZrmkz = 7213,
+  VCVTPS2UDQZrr = 7214,
+  VCVTPS2UDQZrrb = 7215,
+  VCVTPS2UDQZrrbk = 7216,
+  VCVTPS2UDQZrrbkz = 7217,
+  VCVTPS2UDQZrrk = 7218,
+  VCVTPS2UDQZrrkz = 7219,
+  VCVTPS2UQQZ128rm = 7220,
+  VCVTPS2UQQZ128rmb = 7221,
+  VCVTPS2UQQZ128rmbk = 7222,
+  VCVTPS2UQQZ128rmbkz = 7223,
+  VCVTPS2UQQZ128rmk = 7224,
+  VCVTPS2UQQZ128rmkz = 7225,
+  VCVTPS2UQQZ128rr = 7226,
+  VCVTPS2UQQZ128rrk = 7227,
+  VCVTPS2UQQZ128rrkz = 7228,
+  VCVTPS2UQQZ256rm = 7229,
+  VCVTPS2UQQZ256rmb = 7230,
+  VCVTPS2UQQZ256rmbk = 7231,
+  VCVTPS2UQQZ256rmbkz = 7232,
+  VCVTPS2UQQZ256rmk = 7233,
+  VCVTPS2UQQZ256rmkz = 7234,
+  VCVTPS2UQQZ256rr = 7235,
+  VCVTPS2UQQZ256rrk = 7236,
+  VCVTPS2UQQZ256rrkz = 7237,
+  VCVTPS2UQQZrm = 7238,
+  VCVTPS2UQQZrmb = 7239,
+  VCVTPS2UQQZrmbk = 7240,
+  VCVTPS2UQQZrmbkz = 7241,
+  VCVTPS2UQQZrmk = 7242,
+  VCVTPS2UQQZrmkz = 7243,
+  VCVTPS2UQQZrr = 7244,
+  VCVTPS2UQQZrrb = 7245,
+  VCVTPS2UQQZrrbk = 7246,
+  VCVTPS2UQQZrrbkz = 7247,
+  VCVTPS2UQQZrrk = 7248,
+  VCVTPS2UQQZrrkz = 7249,
+  VCVTQQ2PDZ128rm = 7250,
+  VCVTQQ2PDZ128rmb = 7251,
+  VCVTQQ2PDZ128rmbk = 7252,
+  VCVTQQ2PDZ128rmbkz = 7253,
+  VCVTQQ2PDZ128rmk = 7254,
+  VCVTQQ2PDZ128rmkz = 7255,
+  VCVTQQ2PDZ128rr = 7256,
+  VCVTQQ2PDZ128rrk = 7257,
+  VCVTQQ2PDZ128rrkz = 7258,
+  VCVTQQ2PDZ256rm = 7259,
+  VCVTQQ2PDZ256rmb = 7260,
+  VCVTQQ2PDZ256rmbk = 7261,
+  VCVTQQ2PDZ256rmbkz = 7262,
+  VCVTQQ2PDZ256rmk = 7263,
+  VCVTQQ2PDZ256rmkz = 7264,
+  VCVTQQ2PDZ256rr = 7265,
+  VCVTQQ2PDZ256rrk = 7266,
+  VCVTQQ2PDZ256rrkz = 7267,
+  VCVTQQ2PDZrm = 7268,
+  VCVTQQ2PDZrmb = 7269,
+  VCVTQQ2PDZrmbk = 7270,
+  VCVTQQ2PDZrmbkz = 7271,
+  VCVTQQ2PDZrmk = 7272,
+  VCVTQQ2PDZrmkz = 7273,
+  VCVTQQ2PDZrr = 7274,
+  VCVTQQ2PDZrrb = 7275,
+  VCVTQQ2PDZrrbk = 7276,
+  VCVTQQ2PDZrrbkz = 7277,
+  VCVTQQ2PDZrrk = 7278,
+  VCVTQQ2PDZrrkz = 7279,
+  VCVTQQ2PHZ128rm = 7280,
+  VCVTQQ2PHZ128rmb = 7281,
+  VCVTQQ2PHZ128rmbk = 7282,
+  VCVTQQ2PHZ128rmbkz = 7283,
+  VCVTQQ2PHZ128rmk = 7284,
+  VCVTQQ2PHZ128rmkz = 7285,
+  VCVTQQ2PHZ128rr = 7286,
+  VCVTQQ2PHZ128rrk = 7287,
+  VCVTQQ2PHZ128rrkz = 7288,
+  VCVTQQ2PHZ256rm = 7289,
+  VCVTQQ2PHZ256rmb = 7290,
+  VCVTQQ2PHZ256rmbk = 7291,
+  VCVTQQ2PHZ256rmbkz = 7292,
+  VCVTQQ2PHZ256rmk = 7293,
+  VCVTQQ2PHZ256rmkz = 7294,
+  VCVTQQ2PHZ256rr = 7295,
+  VCVTQQ2PHZ256rrk = 7296,
+  VCVTQQ2PHZ256rrkz = 7297,
+  VCVTQQ2PHZrm = 7298,
+  VCVTQQ2PHZrmb = 7299,
+  VCVTQQ2PHZrmbk = 7300,
+  VCVTQQ2PHZrmbkz = 7301,
+  VCVTQQ2PHZrmk = 7302,
+  VCVTQQ2PHZrmkz = 7303,
+  VCVTQQ2PHZrr = 7304,
+  VCVTQQ2PHZrrb = 7305,
+  VCVTQQ2PHZrrbk = 7306,
+  VCVTQQ2PHZrrbkz = 7307,
+  VCVTQQ2PHZrrk = 7308,
+  VCVTQQ2PHZrrkz = 7309,
+  VCVTQQ2PSZ128rm = 7310,
+  VCVTQQ2PSZ128rmb = 7311,
+  VCVTQQ2PSZ128rmbk = 7312,
+  VCVTQQ2PSZ128rmbkz = 7313,
+  VCVTQQ2PSZ128rmk = 7314,
+  VCVTQQ2PSZ128rmkz = 7315,
+  VCVTQQ2PSZ128rr = 7316,
+  VCVTQQ2PSZ128rrk = 7317,
+  VCVTQQ2PSZ128rrkz = 7318,
+  VCVTQQ2PSZ256rm = 7319,
+  VCVTQQ2PSZ256rmb = 7320,
+  VCVTQQ2PSZ256rmbk = 7321,
+  VCVTQQ2PSZ256rmbkz = 7322,
+  VCVTQQ2PSZ256rmk = 7323,
+  VCVTQQ2PSZ256rmkz = 7324,
+  VCVTQQ2PSZ256rr = 7325,
+  VCVTQQ2PSZ256rrk = 7326,
+  VCVTQQ2PSZ256rrkz = 7327,
+  VCVTQQ2PSZrm = 7328,
+  VCVTQQ2PSZrmb = 7329,
+  VCVTQQ2PSZrmbk = 7330,
+  VCVTQQ2PSZrmbkz = 7331,
+  VCVTQQ2PSZrmk = 7332,
+  VCVTQQ2PSZrmkz = 7333,
+  VCVTQQ2PSZrr = 7334,
+  VCVTQQ2PSZrrb = 7335,
+  VCVTQQ2PSZrrbk = 7336,
+  VCVTQQ2PSZrrbkz = 7337,
+  VCVTQQ2PSZrrk = 7338,
+  VCVTQQ2PSZrrkz = 7339,
+  VCVTSD2SHZrm = 7340,
+  VCVTSD2SHZrm_Int = 7341,
+  VCVTSD2SHZrmk_Int = 7342,
+  VCVTSD2SHZrmkz_Int = 7343,
+  VCVTSD2SHZrr = 7344,
+  VCVTSD2SHZrr_Int = 7345,
+  VCVTSD2SHZrrb_Int = 7346,
+  VCVTSD2SHZrrbk_Int = 7347,
+  VCVTSD2SHZrrbkz_Int = 7348,
+  VCVTSD2SHZrrk_Int = 7349,
+  VCVTSD2SHZrrkz_Int = 7350,
+  VCVTSD2SI64Zrm = 7351,
+  VCVTSD2SI64Zrm_Int = 7352,
+  VCVTSD2SI64Zrr = 7353,
+  VCVTSD2SI64Zrr_Int = 7354,
+  VCVTSD2SI64Zrrb_Int = 7355,
+  VCVTSD2SI64rm = 7356,
+  VCVTSD2SI64rm_Int = 7357,
+  VCVTSD2SI64rr = 7358,
+  VCVTSD2SI64rr_Int = 7359,
+  VCVTSD2SIZrm = 7360,
+  VCVTSD2SIZrm_Int = 7361,
+  VCVTSD2SIZrr = 7362,
+  VCVTSD2SIZrr_Int = 7363,
+  VCVTSD2SIZrrb_Int = 7364,
+  VCVTSD2SIrm = 7365,
+  VCVTSD2SIrm_Int = 7366,
+  VCVTSD2SIrr = 7367,
+  VCVTSD2SIrr_Int = 7368,
+  VCVTSD2SSZrm = 7369,
+  VCVTSD2SSZrm_Int = 7370,
+  VCVTSD2SSZrmk_Int = 7371,
+  VCVTSD2SSZrmkz_Int = 7372,
+  VCVTSD2SSZrr = 7373,
+  VCVTSD2SSZrr_Int = 7374,
+  VCVTSD2SSZrrb_Int = 7375,
+  VCVTSD2SSZrrbk_Int = 7376,
+  VCVTSD2SSZrrbkz_Int = 7377,
+  VCVTSD2SSZrrk_Int = 7378,
+  VCVTSD2SSZrrkz_Int = 7379,
+  VCVTSD2SSrm = 7380,
+  VCVTSD2SSrm_Int = 7381,
+  VCVTSD2SSrr = 7382,
+  VCVTSD2SSrr_Int = 7383,
+  VCVTSD2USI64Zrm_Int = 7384,
+  VCVTSD2USI64Zrr_Int = 7385,
+  VCVTSD2USI64Zrrb_Int = 7386,
+  VCVTSD2USIZrm_Int = 7387,
+  VCVTSD2USIZrr_Int = 7388,
+  VCVTSD2USIZrrb_Int = 7389,
+  VCVTSH2SDZrm = 7390,
+  VCVTSH2SDZrm_Int = 7391,
+  VCVTSH2SDZrmk_Int = 7392,
+  VCVTSH2SDZrmkz_Int = 7393,
+  VCVTSH2SDZrr = 7394,
+  VCVTSH2SDZrr_Int = 7395,
+  VCVTSH2SDZrrb_Int = 7396,
+  VCVTSH2SDZrrbk_Int = 7397,
+  VCVTSH2SDZrrbkz_Int = 7398,
+  VCVTSH2SDZrrk_Int = 7399,
+  VCVTSH2SDZrrkz_Int = 7400,
+  VCVTSH2SI64Zrm_Int = 7401,
+  VCVTSH2SI64Zrr_Int = 7402,
+  VCVTSH2SI64Zrrb_Int = 7403,
+  VCVTSH2SIZrm_Int = 7404,
+  VCVTSH2SIZrr_Int = 7405,
+  VCVTSH2SIZrrb_Int = 7406,
+  VCVTSH2SSZrm = 7407,
+  VCVTSH2SSZrm_Int = 7408,
+  VCVTSH2SSZrmk_Int = 7409,
+  VCVTSH2SSZrmkz_Int = 7410,
+  VCVTSH2SSZrr = 7411,
+  VCVTSH2SSZrr_Int = 7412,
+  VCVTSH2SSZrrb_Int = 7413,
+  VCVTSH2SSZrrbk_Int = 7414,
+  VCVTSH2SSZrrbkz_Int = 7415,
+  VCVTSH2SSZrrk_Int = 7416,
+  VCVTSH2SSZrrkz_Int = 7417,
+  VCVTSH2USI64Zrm_Int = 7418,
+  VCVTSH2USI64Zrr_Int = 7419,
+  VCVTSH2USI64Zrrb_Int = 7420,
+  VCVTSH2USIZrm_Int = 7421,
+  VCVTSH2USIZrr_Int = 7422,
+  VCVTSH2USIZrrb_Int = 7423,
+  VCVTSI2SDZrm = 7424,
+  VCVTSI2SDZrm_Int = 7425,
+  VCVTSI2SDZrr = 7426,
+  VCVTSI2SDZrr_Int = 7427,
+  VCVTSI2SDrm = 7428,
+  VCVTSI2SDrm_Int = 7429,
+  VCVTSI2SDrr = 7430,
+  VCVTSI2SDrr_Int = 7431,
+  VCVTSI2SHZrm = 7432,
+  VCVTSI2SHZrm_Int = 7433,
+  VCVTSI2SHZrr = 7434,
+  VCVTSI2SHZrr_Int = 7435,
+  VCVTSI2SHZrrb_Int = 7436,
+  VCVTSI2SSZrm = 7437,
+  VCVTSI2SSZrm_Int = 7438,
+  VCVTSI2SSZrr = 7439,
+  VCVTSI2SSZrr_Int = 7440,
+  VCVTSI2SSZrrb_Int = 7441,
+  VCVTSI2SSrm = 7442,
+  VCVTSI2SSrm_Int = 7443,
+  VCVTSI2SSrr = 7444,
+  VCVTSI2SSrr_Int = 7445,
+  VCVTSI642SDZrm = 7446,
+  VCVTSI642SDZrm_Int = 7447,
+  VCVTSI642SDZrr = 7448,
+  VCVTSI642SDZrr_Int = 7449,
+  VCVTSI642SDZrrb_Int = 7450,
+  VCVTSI642SDrm = 7451,
+  VCVTSI642SDrm_Int = 7452,
+  VCVTSI642SDrr = 7453,
+  VCVTSI642SDrr_Int = 7454,
+  VCVTSI642SHZrm = 7455,
+  VCVTSI642SHZrm_Int = 7456,
+  VCVTSI642SHZrr = 7457,
+  VCVTSI642SHZrr_Int = 7458,
+  VCVTSI642SHZrrb_Int = 7459,
+  VCVTSI642SSZrm = 7460,
+  VCVTSI642SSZrm_Int = 7461,
+  VCVTSI642SSZrr = 7462,
+  VCVTSI642SSZrr_Int = 7463,
+  VCVTSI642SSZrrb_Int = 7464,
+  VCVTSI642SSrm = 7465,
+  VCVTSI642SSrm_Int = 7466,
+  VCVTSI642SSrr = 7467,
+  VCVTSI642SSrr_Int = 7468,
+  VCVTSS2SDZrm = 7469,
+  VCVTSS2SDZrm_Int = 7470,
+  VCVTSS2SDZrmk_Int = 7471,
+  VCVTSS2SDZrmkz_Int = 7472,
+  VCVTSS2SDZrr = 7473,
+  VCVTSS2SDZrr_Int = 7474,
+  VCVTSS2SDZrrb_Int = 7475,
+  VCVTSS2SDZrrbk_Int = 7476,
+  VCVTSS2SDZrrbkz_Int = 7477,
+  VCVTSS2SDZrrk_Int = 7478,
+  VCVTSS2SDZrrkz_Int = 7479,
+  VCVTSS2SDrm = 7480,
+  VCVTSS2SDrm_Int = 7481,
+  VCVTSS2SDrr = 7482,
+  VCVTSS2SDrr_Int = 7483,
+  VCVTSS2SHZrm = 7484,
+  VCVTSS2SHZrm_Int = 7485,
+  VCVTSS2SHZrmk_Int = 7486,
+  VCVTSS2SHZrmkz_Int = 7487,
+  VCVTSS2SHZrr = 7488,
+  VCVTSS2SHZrr_Int = 7489,
+  VCVTSS2SHZrrb_Int = 7490,
+  VCVTSS2SHZrrbk_Int = 7491,
+  VCVTSS2SHZrrbkz_Int = 7492,
+  VCVTSS2SHZrrk_Int = 7493,
+  VCVTSS2SHZrrkz_Int = 7494,
+  VCVTSS2SI64Zrm = 7495,
+  VCVTSS2SI64Zrm_Int = 7496,
+  VCVTSS2SI64Zrr = 7497,
+  VCVTSS2SI64Zrr_Int = 7498,
+  VCVTSS2SI64Zrrb_Int = 7499,
+  VCVTSS2SI64rm = 7500,
+  VCVTSS2SI64rm_Int = 7501,
+  VCVTSS2SI64rr = 7502,
+  VCVTSS2SI64rr_Int = 7503,
+  VCVTSS2SIZrm = 7504,
+  VCVTSS2SIZrm_Int = 7505,
+  VCVTSS2SIZrr = 7506,
+  VCVTSS2SIZrr_Int = 7507,
+  VCVTSS2SIZrrb_Int = 7508,
+  VCVTSS2SIrm = 7509,
+  VCVTSS2SIrm_Int = 7510,
+  VCVTSS2SIrr = 7511,
+  VCVTSS2SIrr_Int = 7512,
+  VCVTSS2USI64Zrm_Int = 7513,
+  VCVTSS2USI64Zrr_Int = 7514,
+  VCVTSS2USI64Zrrb_Int = 7515,
+  VCVTSS2USIZrm_Int = 7516,
+  VCVTSS2USIZrr_Int = 7517,
+  VCVTSS2USIZrrb_Int = 7518,
+  VCVTTBF162IBSZ128rm = 7519,
+  VCVTTBF162IBSZ128rmb = 7520,
+  VCVTTBF162IBSZ128rmbk = 7521,
+  VCVTTBF162IBSZ128rmbkz = 7522,
+  VCVTTBF162IBSZ128rmk = 7523,
+  VCVTTBF162IBSZ128rmkz = 7524,
+  VCVTTBF162IBSZ128rr = 7525,
+  VCVTTBF162IBSZ128rrk = 7526,
+  VCVTTBF162IBSZ128rrkz = 7527,
+  VCVTTBF162IBSZ256rm = 7528,
+  VCVTTBF162IBSZ256rmb = 7529,
+  VCVTTBF162IBSZ256rmbk = 7530,
+  VCVTTBF162IBSZ256rmbkz = 7531,
+  VCVTTBF162IBSZ256rmk = 7532,
+  VCVTTBF162IBSZ256rmkz = 7533,
+  VCVTTBF162IBSZ256rr = 7534,
+  VCVTTBF162IBSZ256rrk = 7535,
+  VCVTTBF162IBSZ256rrkz = 7536,
+  VCVTTBF162IBSZrm = 7537,
+  VCVTTBF162IBSZrmb = 7538,
+  VCVTTBF162IBSZrmbk = 7539,
+  VCVTTBF162IBSZrmbkz = 7540,
+  VCVTTBF162IBSZrmk = 7541,
+  VCVTTBF162IBSZrmkz = 7542,
+  VCVTTBF162IBSZrr = 7543,
+  VCVTTBF162IBSZrrk = 7544,
+  VCVTTBF162IBSZrrkz = 7545,
+  VCVTTBF162IUBSZ128rm = 7546,
+  VCVTTBF162IUBSZ128rmb = 7547,
+  VCVTTBF162IUBSZ128rmbk = 7548,
+  VCVTTBF162IUBSZ128rmbkz = 7549,
+  VCVTTBF162IUBSZ128rmk = 7550,
+  VCVTTBF162IUBSZ128rmkz = 7551,
+  VCVTTBF162IUBSZ128rr = 7552,
+  VCVTTBF162IUBSZ128rrk = 7553,
+  VCVTTBF162IUBSZ128rrkz = 7554,
+  VCVTTBF162IUBSZ256rm = 7555,
+  VCVTTBF162IUBSZ256rmb = 7556,
+  VCVTTBF162IUBSZ256rmbk = 7557,
+  VCVTTBF162IUBSZ256rmbkz = 7558,
+  VCVTTBF162IUBSZ256rmk = 7559,
+  VCVTTBF162IUBSZ256rmkz = 7560,
+  VCVTTBF162IUBSZ256rr = 7561,
+  VCVTTBF162IUBSZ256rrk = 7562,
+  VCVTTBF162IUBSZ256rrkz = 7563,
+  VCVTTBF162IUBSZrm = 7564,
+  VCVTTBF162IUBSZrmb = 7565,
+  VCVTTBF162IUBSZrmbk = 7566,
+  VCVTTBF162IUBSZrmbkz = 7567,
+  VCVTTBF162IUBSZrmk = 7568,
+  VCVTTBF162IUBSZrmkz = 7569,
+  VCVTTBF162IUBSZrr = 7570,
+  VCVTTBF162IUBSZrrk = 7571,
+  VCVTTBF162IUBSZrrkz = 7572,
+  VCVTTPD2DQSZ128rm = 7573,
+  VCVTTPD2DQSZ128rmb = 7574,
+  VCVTTPD2DQSZ128rmbk = 7575,
+  VCVTTPD2DQSZ128rmbkz = 7576,
+  VCVTTPD2DQSZ128rmk = 7577,
+  VCVTTPD2DQSZ128rmkz = 7578,
+  VCVTTPD2DQSZ128rr = 7579,
+  VCVTTPD2DQSZ128rrk = 7580,
+  VCVTTPD2DQSZ128rrkz = 7581,
+  VCVTTPD2DQSZ256rm = 7582,
+  VCVTTPD2DQSZ256rmb = 7583,
+  VCVTTPD2DQSZ256rmbk = 7584,
+  VCVTTPD2DQSZ256rmbkz = 7585,
+  VCVTTPD2DQSZ256rmk = 7586,
+  VCVTTPD2DQSZ256rmkz = 7587,
+  VCVTTPD2DQSZ256rr = 7588,
+  VCVTTPD2DQSZ256rrb = 7589,
+  VCVTTPD2DQSZ256rrbk = 7590,
+  VCVTTPD2DQSZ256rrbkz = 7591,
+  VCVTTPD2DQSZ256rrk = 7592,
+  VCVTTPD2DQSZ256rrkz = 7593,
+  VCVTTPD2DQSZrm = 7594,
+  VCVTTPD2DQSZrmb = 7595,
+  VCVTTPD2DQSZrmbk = 7596,
+  VCVTTPD2DQSZrmbkz = 7597,
+  VCVTTPD2DQSZrmk = 7598,
+  VCVTTPD2DQSZrmkz = 7599,
+  VCVTTPD2DQSZrr = 7600,
+  VCVTTPD2DQSZrrb = 7601,
+  VCVTTPD2DQSZrrbk = 7602,
+  VCVTTPD2DQSZrrbkz = 7603,
+  VCVTTPD2DQSZrrk = 7604,
+  VCVTTPD2DQSZrrkz = 7605,
+  VCVTTPD2DQYrm = 7606,
+  VCVTTPD2DQYrr = 7607,
+  VCVTTPD2DQZ128rm = 7608,
+  VCVTTPD2DQZ128rmb = 7609,
+  VCVTTPD2DQZ128rmbk = 7610,
+  VCVTTPD2DQZ128rmbkz = 7611,
+  VCVTTPD2DQZ128rmk = 7612,
+  VCVTTPD2DQZ128rmkz = 7613,
+  VCVTTPD2DQZ128rr = 7614,
+  VCVTTPD2DQZ128rrk = 7615,
+  VCVTTPD2DQZ128rrkz = 7616,
+  VCVTTPD2DQZ256rm = 7617,
+  VCVTTPD2DQZ256rmb = 7618,
+  VCVTTPD2DQZ256rmbk = 7619,
+  VCVTTPD2DQZ256rmbkz = 7620,
+  VCVTTPD2DQZ256rmk = 7621,
+  VCVTTPD2DQZ256rmkz = 7622,
+  VCVTTPD2DQZ256rr = 7623,
+  VCVTTPD2DQZ256rrk = 7624,
+  VCVTTPD2DQZ256rrkz = 7625,
+  VCVTTPD2DQZrm = 7626,
+  VCVTTPD2DQZrmb = 7627,
+  VCVTTPD2DQZrmbk = 7628,
+  VCVTTPD2DQZrmbkz = 7629,
+  VCVTTPD2DQZrmk = 7630,
+  VCVTTPD2DQZrmkz = 7631,
+  VCVTTPD2DQZrr = 7632,
+  VCVTTPD2DQZrrb = 7633,
+  VCVTTPD2DQZrrbk = 7634,
+  VCVTTPD2DQZrrbkz = 7635,
+  VCVTTPD2DQZrrk = 7636,
+  VCVTTPD2DQZrrkz = 7637,
+  VCVTTPD2DQrm = 7638,
+  VCVTTPD2DQrr = 7639,
+  VCVTTPD2QQSZ128rm = 7640,
+  VCVTTPD2QQSZ128rmb = 7641,
+  VCVTTPD2QQSZ128rmbk = 7642,
+  VCVTTPD2QQSZ128rmbkz = 7643,
+  VCVTTPD2QQSZ128rmk = 7644,
+  VCVTTPD2QQSZ128rmkz = 7645,
+  VCVTTPD2QQSZ128rr = 7646,
+  VCVTTPD2QQSZ128rrk = 7647,
+  VCVTTPD2QQSZ128rrkz = 7648,
+  VCVTTPD2QQSZ256rm = 7649,
+  VCVTTPD2QQSZ256rmb = 7650,
+  VCVTTPD2QQSZ256rmbk = 7651,
+  VCVTTPD2QQSZ256rmbkz = 7652,
+  VCVTTPD2QQSZ256rmk = 7653,
+  VCVTTPD2QQSZ256rmkz = 7654,
+  VCVTTPD2QQSZ256rr = 7655,
+  VCVTTPD2QQSZ256rrb = 7656,
+  VCVTTPD2QQSZ256rrbk = 7657,
+  VCVTTPD2QQSZ256rrbkz = 7658,
+  VCVTTPD2QQSZ256rrk = 7659,
+  VCVTTPD2QQSZ256rrkz = 7660,
+  VCVTTPD2QQSZrm = 7661,
+  VCVTTPD2QQSZrmb = 7662,
+  VCVTTPD2QQSZrmbk = 7663,
+  VCVTTPD2QQSZrmbkz = 7664,
+  VCVTTPD2QQSZrmk = 7665,
+  VCVTTPD2QQSZrmkz = 7666,
+  VCVTTPD2QQSZrr = 7667,
+  VCVTTPD2QQSZrrb = 7668,
+  VCVTTPD2QQSZrrbk = 7669,
+  VCVTTPD2QQSZrrbkz = 7670,
+  VCVTTPD2QQSZrrk = 7671,
+  VCVTTPD2QQSZrrkz = 7672,
+  VCVTTPD2QQZ128rm = 7673,
+  VCVTTPD2QQZ128rmb = 7674,
+  VCVTTPD2QQZ128rmbk = 7675,
+  VCVTTPD2QQZ128rmbkz = 7676,
+  VCVTTPD2QQZ128rmk = 7677,
+  VCVTTPD2QQZ128rmkz = 7678,
+  VCVTTPD2QQZ128rr = 7679,
+  VCVTTPD2QQZ128rrk = 7680,
+  VCVTTPD2QQZ128rrkz = 7681,
+  VCVTTPD2QQZ256rm = 7682,
+  VCVTTPD2QQZ256rmb = 7683,
+  VCVTTPD2QQZ256rmbk = 7684,
+  VCVTTPD2QQZ256rmbkz = 7685,
+  VCVTTPD2QQZ256rmk = 7686,
+  VCVTTPD2QQZ256rmkz = 7687,
+  VCVTTPD2QQZ256rr = 7688,
+  VCVTTPD2QQZ256rrk = 7689,
+  VCVTTPD2QQZ256rrkz = 7690,
+  VCVTTPD2QQZrm = 7691,
+  VCVTTPD2QQZrmb = 7692,
+  VCVTTPD2QQZrmbk = 7693,
+  VCVTTPD2QQZrmbkz = 7694,
+  VCVTTPD2QQZrmk = 7695,
+  VCVTTPD2QQZrmkz = 7696,
+  VCVTTPD2QQZrr = 7697,
+  VCVTTPD2QQZrrb = 7698,
+  VCVTTPD2QQZrrbk = 7699,
+  VCVTTPD2QQZrrbkz = 7700,
+  VCVTTPD2QQZrrk = 7701,
+  VCVTTPD2QQZrrkz = 7702,
+  VCVTTPD2UDQSZ128rm = 7703,
+  VCVTTPD2UDQSZ128rmb = 7704,
+  VCVTTPD2UDQSZ128rmbk = 7705,
+  VCVTTPD2UDQSZ128rmbkz = 7706,
+  VCVTTPD2UDQSZ128rmk = 7707,
+  VCVTTPD2UDQSZ128rmkz = 7708,
+  VCVTTPD2UDQSZ128rr = 7709,
+  VCVTTPD2UDQSZ128rrk = 7710,
+  VCVTTPD2UDQSZ128rrkz = 7711,
+  VCVTTPD2UDQSZ256rm = 7712,
+  VCVTTPD2UDQSZ256rmb = 7713,
+  VCVTTPD2UDQSZ256rmbk = 7714,
+  VCVTTPD2UDQSZ256rmbkz = 7715,
+  VCVTTPD2UDQSZ256rmk = 7716,
+  VCVTTPD2UDQSZ256rmkz = 7717,
+  VCVTTPD2UDQSZ256rr = 7718,
+  VCVTTPD2UDQSZ256rrb = 7719,
+  VCVTTPD2UDQSZ256rrbk = 7720,
+  VCVTTPD2UDQSZ256rrbkz = 7721,
+  VCVTTPD2UDQSZ256rrk = 7722,
+  VCVTTPD2UDQSZ256rrkz = 7723,
+  VCVTTPD2UDQSZrm = 7724,
+  VCVTTPD2UDQSZrmb = 7725,
+  VCVTTPD2UDQSZrmbk = 7726,
+  VCVTTPD2UDQSZrmbkz = 7727,
+  VCVTTPD2UDQSZrmk = 7728,
+  VCVTTPD2UDQSZrmkz = 7729,
+  VCVTTPD2UDQSZrr = 7730,
+  VCVTTPD2UDQSZrrb = 7731,
+  VCVTTPD2UDQSZrrbk = 7732,
+  VCVTTPD2UDQSZrrbkz = 7733,
+  VCVTTPD2UDQSZrrk = 7734,
+  VCVTTPD2UDQSZrrkz = 7735,
+  VCVTTPD2UDQZ128rm = 7736,
+  VCVTTPD2UDQZ128rmb = 7737,
+  VCVTTPD2UDQZ128rmbk = 7738,
+  VCVTTPD2UDQZ128rmbkz = 7739,
+  VCVTTPD2UDQZ128rmk = 7740,
+  VCVTTPD2UDQZ128rmkz = 7741,
+  VCVTTPD2UDQZ128rr = 7742,
+  VCVTTPD2UDQZ128rrk = 7743,
+  VCVTTPD2UDQZ128rrkz = 7744,
+  VCVTTPD2UDQZ256rm = 7745,
+  VCVTTPD2UDQZ256rmb = 7746,
+  VCVTTPD2UDQZ256rmbk = 7747,
+  VCVTTPD2UDQZ256rmbkz = 7748,
+  VCVTTPD2UDQZ256rmk = 7749,
+  VCVTTPD2UDQZ256rmkz = 7750,
+  VCVTTPD2UDQZ256rr = 7751,
+  VCVTTPD2UDQZ256rrk = 7752,
+  VCVTTPD2UDQZ256rrkz = 7753,
+  VCVTTPD2UDQZrm = 7754,
+  VCVTTPD2UDQZrmb = 7755,
+  VCVTTPD2UDQZrmbk = 7756,
+  VCVTTPD2UDQZrmbkz = 7757,
+  VCVTTPD2UDQZrmk = 7758,
+  VCVTTPD2UDQZrmkz = 7759,
+  VCVTTPD2UDQZrr = 7760,
+  VCVTTPD2UDQZrrb = 7761,
+  VCVTTPD2UDQZrrbk = 7762,
+  VCVTTPD2UDQZrrbkz = 7763,
+  VCVTTPD2UDQZrrk = 7764,
+  VCVTTPD2UDQZrrkz = 7765,
+  VCVTTPD2UQQSZ128rm = 7766,
+  VCVTTPD2UQQSZ128rmb = 7767,
+  VCVTTPD2UQQSZ128rmbk = 7768,
+  VCVTTPD2UQQSZ128rmbkz = 7769,
+  VCVTTPD2UQQSZ128rmk = 7770,
+  VCVTTPD2UQQSZ128rmkz = 7771,
+  VCVTTPD2UQQSZ128rr = 7772,
+  VCVTTPD2UQQSZ128rrk = 7773,
+  VCVTTPD2UQQSZ128rrkz = 7774,
+  VCVTTPD2UQQSZ256rm = 7775,
+  VCVTTPD2UQQSZ256rmb = 7776,
+  VCVTTPD2UQQSZ256rmbk = 7777,
+  VCVTTPD2UQQSZ256rmbkz = 7778,
+  VCVTTPD2UQQSZ256rmk = 7779,
+  VCVTTPD2UQQSZ256rmkz = 7780,
+  VCVTTPD2UQQSZ256rr = 7781,
+  VCVTTPD2UQQSZ256rrb = 7782,
+  VCVTTPD2UQQSZ256rrbk = 7783,
+  VCVTTPD2UQQSZ256rrbkz = 7784,
+  VCVTTPD2UQQSZ256rrk = 7785,
+  VCVTTPD2UQQSZ256rrkz = 7786,
+  VCVTTPD2UQQSZrm = 7787,
+  VCVTTPD2UQQSZrmb = 7788,
+  VCVTTPD2UQQSZrmbk = 7789,
+  VCVTTPD2UQQSZrmbkz = 7790,
+  VCVTTPD2UQQSZrmk = 7791,
+  VCVTTPD2UQQSZrmkz = 7792,
+  VCVTTPD2UQQSZrr = 7793,
+  VCVTTPD2UQQSZrrb = 7794,
+  VCVTTPD2UQQSZrrbk = 7795,
+  VCVTTPD2UQQSZrrbkz = 7796,
+  VCVTTPD2UQQSZrrk = 7797,
+  VCVTTPD2UQQSZrrkz = 7798,
+  VCVTTPD2UQQZ128rm = 7799,
+  VCVTTPD2UQQZ128rmb = 7800,
+  VCVTTPD2UQQZ128rmbk = 7801,
+  VCVTTPD2UQQZ128rmbkz = 7802,
+  VCVTTPD2UQQZ128rmk = 7803,
+  VCVTTPD2UQQZ128rmkz = 7804,
+  VCVTTPD2UQQZ128rr = 7805,
+  VCVTTPD2UQQZ128rrk = 7806,
+  VCVTTPD2UQQZ128rrkz = 7807,
+  VCVTTPD2UQQZ256rm = 7808,
+  VCVTTPD2UQQZ256rmb = 7809,
+  VCVTTPD2UQQZ256rmbk = 7810,
+  VCVTTPD2UQQZ256rmbkz = 7811,
+  VCVTTPD2UQQZ256rmk = 7812,
+  VCVTTPD2UQQZ256rmkz = 7813,
+  VCVTTPD2UQQZ256rr = 7814,
+  VCVTTPD2UQQZ256rrk = 7815,
+  VCVTTPD2UQQZ256rrkz = 7816,
+  VCVTTPD2UQQZrm = 7817,
+  VCVTTPD2UQQZrmb = 7818,
+  VCVTTPD2UQQZrmbk = 7819,
+  VCVTTPD2UQQZrmbkz = 7820,
+  VCVTTPD2UQQZrmk = 7821,
+  VCVTTPD2UQQZrmkz = 7822,
+  VCVTTPD2UQQZrr = 7823,
+  VCVTTPD2UQQZrrb = 7824,
+  VCVTTPD2UQQZrrbk = 7825,
+  VCVTTPD2UQQZrrbkz = 7826,
+  VCVTTPD2UQQZrrk = 7827,
+  VCVTTPD2UQQZrrkz = 7828,
+  VCVTTPH2DQZ128rm = 7829,
+  VCVTTPH2DQZ128rmb = 7830,
+  VCVTTPH2DQZ128rmbk = 7831,
+  VCVTTPH2DQZ128rmbkz = 7832,
+  VCVTTPH2DQZ128rmk = 7833,
+  VCVTTPH2DQZ128rmkz = 7834,
+  VCVTTPH2DQZ128rr = 7835,
+  VCVTTPH2DQZ128rrk = 7836,
+  VCVTTPH2DQZ128rrkz = 7837,
+  VCVTTPH2DQZ256rm = 7838,
+  VCVTTPH2DQZ256rmb = 7839,
+  VCVTTPH2DQZ256rmbk = 7840,
+  VCVTTPH2DQZ256rmbkz = 7841,
+  VCVTTPH2DQZ256rmk = 7842,
+  VCVTTPH2DQZ256rmkz = 7843,
+  VCVTTPH2DQZ256rr = 7844,
+  VCVTTPH2DQZ256rrk = 7845,
+  VCVTTPH2DQZ256rrkz = 7846,
+  VCVTTPH2DQZrm = 7847,
+  VCVTTPH2DQZrmb = 7848,
+  VCVTTPH2DQZrmbk = 7849,
+  VCVTTPH2DQZrmbkz = 7850,
+  VCVTTPH2DQZrmk = 7851,
+  VCVTTPH2DQZrmkz = 7852,
+  VCVTTPH2DQZrr = 7853,
+  VCVTTPH2DQZrrb = 7854,
+  VCVTTPH2DQZrrbk = 7855,
+  VCVTTPH2DQZrrbkz = 7856,
+  VCVTTPH2DQZrrk = 7857,
+  VCVTTPH2DQZrrkz = 7858,
+  VCVTTPH2IBSZ128rm = 7859,
+  VCVTTPH2IBSZ128rmb = 7860,
+  VCVTTPH2IBSZ128rmbk = 7861,
+  VCVTTPH2IBSZ128rmbkz = 7862,
+  VCVTTPH2IBSZ128rmk = 7863,
+  VCVTTPH2IBSZ128rmkz = 7864,
+  VCVTTPH2IBSZ128rr = 7865,
+  VCVTTPH2IBSZ128rrk = 7866,
+  VCVTTPH2IBSZ128rrkz = 7867,
+  VCVTTPH2IBSZ256rm = 7868,
+  VCVTTPH2IBSZ256rmb = 7869,
+  VCVTTPH2IBSZ256rmbk = 7870,
+  VCVTTPH2IBSZ256rmbkz = 7871,
+  VCVTTPH2IBSZ256rmk = 7872,
+  VCVTTPH2IBSZ256rmkz = 7873,
+  VCVTTPH2IBSZ256rr = 7874,
+  VCVTTPH2IBSZ256rrk = 7875,
+  VCVTTPH2IBSZ256rrkz = 7876,
+  VCVTTPH2IBSZrm = 7877,
+  VCVTTPH2IBSZrmb = 7878,
+  VCVTTPH2IBSZrmbk = 7879,
+  VCVTTPH2IBSZrmbkz = 7880,
+  VCVTTPH2IBSZrmk = 7881,
+  VCVTTPH2IBSZrmkz = 7882,
+  VCVTTPH2IBSZrr = 7883,
+  VCVTTPH2IBSZrrb = 7884,
+  VCVTTPH2IBSZrrbk = 7885,
+  VCVTTPH2IBSZrrbkz = 7886,
+  VCVTTPH2IBSZrrk = 7887,
+  VCVTTPH2IBSZrrkz = 7888,
+  VCVTTPH2IUBSZ128rm = 7889,
+  VCVTTPH2IUBSZ128rmb = 7890,
+  VCVTTPH2IUBSZ128rmbk = 7891,
+  VCVTTPH2IUBSZ128rmbkz = 7892,
+  VCVTTPH2IUBSZ128rmk = 7893,
+  VCVTTPH2IUBSZ128rmkz = 7894,
+  VCVTTPH2IUBSZ128rr = 7895,
+  VCVTTPH2IUBSZ128rrk = 7896,
+  VCVTTPH2IUBSZ128rrkz = 7897,
+  VCVTTPH2IUBSZ256rm = 7898,
+  VCVTTPH2IUBSZ256rmb = 7899,
+  VCVTTPH2IUBSZ256rmbk = 7900,
+  VCVTTPH2IUBSZ256rmbkz = 7901,
+  VCVTTPH2IUBSZ256rmk = 7902,
+  VCVTTPH2IUBSZ256rmkz = 7903,
+  VCVTTPH2IUBSZ256rr = 7904,
+  VCVTTPH2IUBSZ256rrk = 7905,
+  VCVTTPH2IUBSZ256rrkz = 7906,
+  VCVTTPH2IUBSZrm = 7907,
+  VCVTTPH2IUBSZrmb = 7908,
+  VCVTTPH2IUBSZrmbk = 7909,
+  VCVTTPH2IUBSZrmbkz = 7910,
+  VCVTTPH2IUBSZrmk = 7911,
+  VCVTTPH2IUBSZrmkz = 7912,
+  VCVTTPH2IUBSZrr = 7913,
+  VCVTTPH2IUBSZrrb = 7914,
+  VCVTTPH2IUBSZrrbk = 7915,
+  VCVTTPH2IUBSZrrbkz = 7916,
+  VCVTTPH2IUBSZrrk = 7917,
+  VCVTTPH2IUBSZrrkz = 7918,
+  VCVTTPH2QQZ128rm = 7919,
+  VCVTTPH2QQZ128rmb = 7920,
+  VCVTTPH2QQZ128rmbk = 7921,
+  VCVTTPH2QQZ128rmbkz = 7922,
+  VCVTTPH2QQZ128rmk = 7923,
+  VCVTTPH2QQZ128rmkz = 7924,
+  VCVTTPH2QQZ128rr = 7925,
+  VCVTTPH2QQZ128rrk = 7926,
+  VCVTTPH2QQZ128rrkz = 7927,
+  VCVTTPH2QQZ256rm = 7928,
+  VCVTTPH2QQZ256rmb = 7929,
+  VCVTTPH2QQZ256rmbk = 7930,
+  VCVTTPH2QQZ256rmbkz = 7931,
+  VCVTTPH2QQZ256rmk = 7932,
+  VCVTTPH2QQZ256rmkz = 7933,
+  VCVTTPH2QQZ256rr = 7934,
+  VCVTTPH2QQZ256rrk = 7935,
+  VCVTTPH2QQZ256rrkz = 7936,
+  VCVTTPH2QQZrm = 7937,
+  VCVTTPH2QQZrmb = 7938,
+  VCVTTPH2QQZrmbk = 7939,
+  VCVTTPH2QQZrmbkz = 7940,
+  VCVTTPH2QQZrmk = 7941,
+  VCVTTPH2QQZrmkz = 7942,
+  VCVTTPH2QQZrr = 7943,
+  VCVTTPH2QQZrrb = 7944,
+  VCVTTPH2QQZrrbk = 7945,
+  VCVTTPH2QQZrrbkz = 7946,
+  VCVTTPH2QQZrrk = 7947,
+  VCVTTPH2QQZrrkz = 7948,
+  VCVTTPH2UDQZ128rm = 7949,
+  VCVTTPH2UDQZ128rmb = 7950,
+  VCVTTPH2UDQZ128rmbk = 7951,
+  VCVTTPH2UDQZ128rmbkz = 7952,
+  VCVTTPH2UDQZ128rmk = 7953,
+  VCVTTPH2UDQZ128rmkz = 7954,
+  VCVTTPH2UDQZ128rr = 7955,
+  VCVTTPH2UDQZ128rrk = 7956,
+  VCVTTPH2UDQZ128rrkz = 7957,
+  VCVTTPH2UDQZ256rm = 7958,
+  VCVTTPH2UDQZ256rmb = 7959,
+  VCVTTPH2UDQZ256rmbk = 7960,
+  VCVTTPH2UDQZ256rmbkz = 7961,
+  VCVTTPH2UDQZ256rmk = 7962,
+  VCVTTPH2UDQZ256rmkz = 7963,
+  VCVTTPH2UDQZ256rr = 7964,
+  VCVTTPH2UDQZ256rrk = 7965,
+  VCVTTPH2UDQZ256rrkz = 7966,
+  VCVTTPH2UDQZrm = 7967,
+  VCVTTPH2UDQZrmb = 7968,
+  VCVTTPH2UDQZrmbk = 7969,
+  VCVTTPH2UDQZrmbkz = 7970,
+  VCVTTPH2UDQZrmk = 7971,
+  VCVTTPH2UDQZrmkz = 7972,
+  VCVTTPH2UDQZrr = 7973,
+  VCVTTPH2UDQZrrb = 7974,
+  VCVTTPH2UDQZrrbk = 7975,
+  VCVTTPH2UDQZrrbkz = 7976,
+  VCVTTPH2UDQZrrk = 7977,
+  VCVTTPH2UDQZrrkz = 7978,
+  VCVTTPH2UQQZ128rm = 7979,
+  VCVTTPH2UQQZ128rmb = 7980,
+  VCVTTPH2UQQZ128rmbk = 7981,
+  VCVTTPH2UQQZ128rmbkz = 7982,
+  VCVTTPH2UQQZ128rmk = 7983,
+  VCVTTPH2UQQZ128rmkz = 7984,
+  VCVTTPH2UQQZ128rr = 7985,
+  VCVTTPH2UQQZ128rrk = 7986,
+  VCVTTPH2UQQZ128rrkz = 7987,
+  VCVTTPH2UQQZ256rm = 7988,
+  VCVTTPH2UQQZ256rmb = 7989,
+  VCVTTPH2UQQZ256rmbk = 7990,
+  VCVTTPH2UQQZ256rmbkz = 7991,
+  VCVTTPH2UQQZ256rmk = 7992,
+  VCVTTPH2UQQZ256rmkz = 7993,
+  VCVTTPH2UQQZ256rr = 7994,
+  VCVTTPH2UQQZ256rrk = 7995,
+  VCVTTPH2UQQZ256rrkz = 7996,
+  VCVTTPH2UQQZrm = 7997,
+  VCVTTPH2UQQZrmb = 7998,
+  VCVTTPH2UQQZrmbk = 7999,
+  VCVTTPH2UQQZrmbkz = 8000,
+  VCVTTPH2UQQZrmk = 8001,
+  VCVTTPH2UQQZrmkz = 8002,
+  VCVTTPH2UQQZrr = 8003,
+  VCVTTPH2UQQZrrb = 8004,
+  VCVTTPH2UQQZrrbk = 8005,
+  VCVTTPH2UQQZrrbkz = 8006,
+  VCVTTPH2UQQZrrk = 8007,
+  VCVTTPH2UQQZrrkz = 8008,
+  VCVTTPH2UWZ128rm = 8009,
+  VCVTTPH2UWZ128rmb = 8010,
+  VCVTTPH2UWZ128rmbk = 8011,
+  VCVTTPH2UWZ128rmbkz = 8012,
+  VCVTTPH2UWZ128rmk = 8013,
+  VCVTTPH2UWZ128rmkz = 8014,
+  VCVTTPH2UWZ128rr = 8015,
+  VCVTTPH2UWZ128rrk = 8016,
+  VCVTTPH2UWZ128rrkz = 8017,
+  VCVTTPH2UWZ256rm = 8018,
+  VCVTTPH2UWZ256rmb = 8019,
+  VCVTTPH2UWZ256rmbk = 8020,
+  VCVTTPH2UWZ256rmbkz = 8021,
+  VCVTTPH2UWZ256rmk = 8022,
+  VCVTTPH2UWZ256rmkz = 8023,
+  VCVTTPH2UWZ256rr = 8024,
+  VCVTTPH2UWZ256rrk = 8025,
+  VCVTTPH2UWZ256rrkz = 8026,
+  VCVTTPH2UWZrm = 8027,
+  VCVTTPH2UWZrmb = 8028,
+  VCVTTPH2UWZrmbk = 8029,
+  VCVTTPH2UWZrmbkz = 8030,
+  VCVTTPH2UWZrmk = 8031,
+  VCVTTPH2UWZrmkz = 8032,
+  VCVTTPH2UWZrr = 8033,
+  VCVTTPH2UWZrrb = 8034,
+  VCVTTPH2UWZrrbk = 8035,
+  VCVTTPH2UWZrrbkz = 8036,
+  VCVTTPH2UWZrrk = 8037,
+  VCVTTPH2UWZrrkz = 8038,
+  VCVTTPH2WZ128rm = 8039,
+  VCVTTPH2WZ128rmb = 8040,
+  VCVTTPH2WZ128rmbk = 8041,
+  VCVTTPH2WZ128rmbkz = 8042,
+  VCVTTPH2WZ128rmk = 8043,
+  VCVTTPH2WZ128rmkz = 8044,
+  VCVTTPH2WZ128rr = 8045,
+  VCVTTPH2WZ128rrk = 8046,
+  VCVTTPH2WZ128rrkz = 8047,
+  VCVTTPH2WZ256rm = 8048,
+  VCVTTPH2WZ256rmb = 8049,
+  VCVTTPH2WZ256rmbk = 8050,
+  VCVTTPH2WZ256rmbkz = 8051,
+  VCVTTPH2WZ256rmk = 8052,
+  VCVTTPH2WZ256rmkz = 8053,
+  VCVTTPH2WZ256rr = 8054,
+  VCVTTPH2WZ256rrk = 8055,
+  VCVTTPH2WZ256rrkz = 8056,
+  VCVTTPH2WZrm = 8057,
+  VCVTTPH2WZrmb = 8058,
+  VCVTTPH2WZrmbk = 8059,
+  VCVTTPH2WZrmbkz = 8060,
+  VCVTTPH2WZrmk = 8061,
+  VCVTTPH2WZrmkz = 8062,
+  VCVTTPH2WZrr = 8063,
+  VCVTTPH2WZrrb = 8064,
+  VCVTTPH2WZrrbk = 8065,
+  VCVTTPH2WZrrbkz = 8066,
+  VCVTTPH2WZrrk = 8067,
+  VCVTTPH2WZrrkz = 8068,
+  VCVTTPS2DQSZ128rm = 8069,
+  VCVTTPS2DQSZ128rmb = 8070,
+  VCVTTPS2DQSZ128rmbk = 8071,
+  VCVTTPS2DQSZ128rmbkz = 8072,
+  VCVTTPS2DQSZ128rmk = 8073,
+  VCVTTPS2DQSZ128rmkz = 8074,
+  VCVTTPS2DQSZ128rr = 8075,
+  VCVTTPS2DQSZ128rrk = 8076,
+  VCVTTPS2DQSZ128rrkz = 8077,
+  VCVTTPS2DQSZ256rm = 8078,
+  VCVTTPS2DQSZ256rmb = 8079,
+  VCVTTPS2DQSZ256rmbk = 8080,
+  VCVTTPS2DQSZ256rmbkz = 8081,
+  VCVTTPS2DQSZ256rmk = 8082,
+  VCVTTPS2DQSZ256rmkz = 8083,
+  VCVTTPS2DQSZ256rr = 8084,
+  VCVTTPS2DQSZ256rrk = 8085,
+  VCVTTPS2DQSZ256rrkz = 8086,
+  VCVTTPS2DQSZrm = 8087,
+  VCVTTPS2DQSZrmb = 8088,
+  VCVTTPS2DQSZrmbk = 8089,
+  VCVTTPS2DQSZrmbkz = 8090,
+  VCVTTPS2DQSZrmk = 8091,
+  VCVTTPS2DQSZrmkz = 8092,
+  VCVTTPS2DQSZrr = 8093,
+  VCVTTPS2DQSZrrb = 8094,
+  VCVTTPS2DQSZrrbk = 8095,
+  VCVTTPS2DQSZrrbkz = 8096,
+  VCVTTPS2DQSZrrk = 8097,
+  VCVTTPS2DQSZrrkz = 8098,
+  VCVTTPS2DQYrm = 8099,
+  VCVTTPS2DQYrr = 8100,
+  VCVTTPS2DQZ128rm = 8101,
+  VCVTTPS2DQZ128rmb = 8102,
+  VCVTTPS2DQZ128rmbk = 8103,
+  VCVTTPS2DQZ128rmbkz = 8104,
+  VCVTTPS2DQZ128rmk = 8105,
+  VCVTTPS2DQZ128rmkz = 8106,
+  VCVTTPS2DQZ128rr = 8107,
+  VCVTTPS2DQZ128rrk = 8108,
+  VCVTTPS2DQZ128rrkz = 8109,
+  VCVTTPS2DQZ256rm = 8110,
+  VCVTTPS2DQZ256rmb = 8111,
+  VCVTTPS2DQZ256rmbk = 8112,
+  VCVTTPS2DQZ256rmbkz = 8113,
+  VCVTTPS2DQZ256rmk = 8114,
+  VCVTTPS2DQZ256rmkz = 8115,
+  VCVTTPS2DQZ256rr = 8116,
+  VCVTTPS2DQZ256rrk = 8117,
+  VCVTTPS2DQZ256rrkz = 8118,
+  VCVTTPS2DQZrm = 8119,
+  VCVTTPS2DQZrmb = 8120,
+  VCVTTPS2DQZrmbk = 8121,
+  VCVTTPS2DQZrmbkz = 8122,
+  VCVTTPS2DQZrmk = 8123,
+  VCVTTPS2DQZrmkz = 8124,
+  VCVTTPS2DQZrr = 8125,
+  VCVTTPS2DQZrrb = 8126,
+  VCVTTPS2DQZrrbk = 8127,
+  VCVTTPS2DQZrrbkz = 8128,
+  VCVTTPS2DQZrrk = 8129,
+  VCVTTPS2DQZrrkz = 8130,
+  VCVTTPS2DQrm = 8131,
+  VCVTTPS2DQrr = 8132,
+  VCVTTPS2IBSZ128rm = 8133,
+  VCVTTPS2IBSZ128rmb = 8134,
+  VCVTTPS2IBSZ128rmbk = 8135,
+  VCVTTPS2IBSZ128rmbkz = 8136,
+  VCVTTPS2IBSZ128rmk = 8137,
+  VCVTTPS2IBSZ128rmkz = 8138,
+  VCVTTPS2IBSZ128rr = 8139,
+  VCVTTPS2IBSZ128rrk = 8140,
+  VCVTTPS2IBSZ128rrkz = 8141,
+  VCVTTPS2IBSZ256rm = 8142,
+  VCVTTPS2IBSZ256rmb = 8143,
+  VCVTTPS2IBSZ256rmbk = 8144,
+  VCVTTPS2IBSZ256rmbkz = 8145,
+  VCVTTPS2IBSZ256rmk = 8146,
+  VCVTTPS2IBSZ256rmkz = 8147,
+  VCVTTPS2IBSZ256rr = 8148,
+  VCVTTPS2IBSZ256rrk = 8149,
+  VCVTTPS2IBSZ256rrkz = 8150,
+  VCVTTPS2IBSZrm = 8151,
+  VCVTTPS2IBSZrmb = 8152,
+  VCVTTPS2IBSZrmbk = 8153,
+  VCVTTPS2IBSZrmbkz = 8154,
+  VCVTTPS2IBSZrmk = 8155,
+  VCVTTPS2IBSZrmkz = 8156,
+  VCVTTPS2IBSZrr = 8157,
+  VCVTTPS2IBSZrrb = 8158,
+  VCVTTPS2IBSZrrbk = 8159,
+  VCVTTPS2IBSZrrbkz = 8160,
+  VCVTTPS2IBSZrrk = 8161,
+  VCVTTPS2IBSZrrkz = 8162,
+  VCVTTPS2IUBSZ128rm = 8163,
+  VCVTTPS2IUBSZ128rmb = 8164,
+  VCVTTPS2IUBSZ128rmbk = 8165,
+  VCVTTPS2IUBSZ128rmbkz = 8166,
+  VCVTTPS2IUBSZ128rmk = 8167,
+  VCVTTPS2IUBSZ128rmkz = 8168,
+  VCVTTPS2IUBSZ128rr = 8169,
+  VCVTTPS2IUBSZ128rrk = 8170,
+  VCVTTPS2IUBSZ128rrkz = 8171,
+  VCVTTPS2IUBSZ256rm = 8172,
+  VCVTTPS2IUBSZ256rmb = 8173,
+  VCVTTPS2IUBSZ256rmbk = 8174,
+  VCVTTPS2IUBSZ256rmbkz = 8175,
+  VCVTTPS2IUBSZ256rmk = 8176,
+  VCVTTPS2IUBSZ256rmkz = 8177,
+  VCVTTPS2IUBSZ256rr = 8178,
+  VCVTTPS2IUBSZ256rrk = 8179,
+  VCVTTPS2IUBSZ256rrkz = 8180,
+  VCVTTPS2IUBSZrm = 8181,
+  VCVTTPS2IUBSZrmb = 8182,
+  VCVTTPS2IUBSZrmbk = 8183,
+  VCVTTPS2IUBSZrmbkz = 8184,
+  VCVTTPS2IUBSZrmk = 8185,
+  VCVTTPS2IUBSZrmkz = 8186,
+  VCVTTPS2IUBSZrr = 8187,
+  VCVTTPS2IUBSZrrb = 8188,
+  VCVTTPS2IUBSZrrbk = 8189,
+  VCVTTPS2IUBSZrrbkz = 8190,
+  VCVTTPS2IUBSZrrk = 8191,
+  VCVTTPS2IUBSZrrkz = 8192,
+  VCVTTPS2QQSZ128rm = 8193,
+  VCVTTPS2QQSZ128rmb = 8194,
+  VCVTTPS2QQSZ128rmbk = 8195,
+  VCVTTPS2QQSZ128rmbkz = 8196,
+  VCVTTPS2QQSZ128rmk = 8197,
+  VCVTTPS2QQSZ128rmkz = 8198,
+  VCVTTPS2QQSZ128rr = 8199,
+  VCVTTPS2QQSZ128rrk = 8200,
+  VCVTTPS2QQSZ128rrkz = 8201,
+  VCVTTPS2QQSZ256rm = 8202,
+  VCVTTPS2QQSZ256rmb = 8203,
+  VCVTTPS2QQSZ256rmbk = 8204,
+  VCVTTPS2QQSZ256rmbkz = 8205,
+  VCVTTPS2QQSZ256rmk = 8206,
+  VCVTTPS2QQSZ256rmkz = 8207,
+  VCVTTPS2QQSZ256rr = 8208,
+  VCVTTPS2QQSZ256rrb = 8209,
+  VCVTTPS2QQSZ256rrbk = 8210,
+  VCVTTPS2QQSZ256rrbkz = 8211,
+  VCVTTPS2QQSZ256rrk = 8212,
+  VCVTTPS2QQSZ256rrkz = 8213,
+  VCVTTPS2QQSZrm = 8214,
+  VCVTTPS2QQSZrmb = 8215,
+  VCVTTPS2QQSZrmbk = 8216,
+  VCVTTPS2QQSZrmbkz = 8217,
+  VCVTTPS2QQSZrmk = 8218,
+  VCVTTPS2QQSZrmkz = 8219,
+  VCVTTPS2QQSZrr = 8220,
+  VCVTTPS2QQSZrrb = 8221,
+  VCVTTPS2QQSZrrbk = 8222,
+  VCVTTPS2QQSZrrbkz = 8223,
+  VCVTTPS2QQSZrrk = 8224,
+  VCVTTPS2QQSZrrkz = 8225,
+  VCVTTPS2QQZ128rm = 8226,
+  VCVTTPS2QQZ128rmb = 8227,
+  VCVTTPS2QQZ128rmbk = 8228,
+  VCVTTPS2QQZ128rmbkz = 8229,
+  VCVTTPS2QQZ128rmk = 8230,
+  VCVTTPS2QQZ128rmkz = 8231,
+  VCVTTPS2QQZ128rr = 8232,
+  VCVTTPS2QQZ128rrk = 8233,
+  VCVTTPS2QQZ128rrkz = 8234,
+  VCVTTPS2QQZ256rm = 8235,
+  VCVTTPS2QQZ256rmb = 8236,
+  VCVTTPS2QQZ256rmbk = 8237,
+  VCVTTPS2QQZ256rmbkz = 8238,
+  VCVTTPS2QQZ256rmk = 8239,
+  VCVTTPS2QQZ256rmkz = 8240,
+  VCVTTPS2QQZ256rr = 8241,
+  VCVTTPS2QQZ256rrk = 8242,
+  VCVTTPS2QQZ256rrkz = 8243,
+  VCVTTPS2QQZrm = 8244,
+  VCVTTPS2QQZrmb = 8245,
+  VCVTTPS2QQZrmbk = 8246,
+  VCVTTPS2QQZrmbkz = 8247,
+  VCVTTPS2QQZrmk = 8248,
+  VCVTTPS2QQZrmkz = 8249,
+  VCVTTPS2QQZrr = 8250,
+  VCVTTPS2QQZrrb = 8251,
+  VCVTTPS2QQZrrbk = 8252,
+  VCVTTPS2QQZrrbkz = 8253,
+  VCVTTPS2QQZrrk = 8254,
+  VCVTTPS2QQZrrkz = 8255,
+  VCVTTPS2UDQSZ128rm = 8256,
+  VCVTTPS2UDQSZ128rmb = 8257,
+  VCVTTPS2UDQSZ128rmbk = 8258,
+  VCVTTPS2UDQSZ128rmbkz = 8259,
+  VCVTTPS2UDQSZ128rmk = 8260,
+  VCVTTPS2UDQSZ128rmkz = 8261,
+  VCVTTPS2UDQSZ128rr = 8262,
+  VCVTTPS2UDQSZ128rrk = 8263,
+  VCVTTPS2UDQSZ128rrkz = 8264,
+  VCVTTPS2UDQSZ256rm = 8265,
+  VCVTTPS2UDQSZ256rmb = 8266,
+  VCVTTPS2UDQSZ256rmbk = 8267,
+  VCVTTPS2UDQSZ256rmbkz = 8268,
+  VCVTTPS2UDQSZ256rmk = 8269,
+  VCVTTPS2UDQSZ256rmkz = 8270,
+  VCVTTPS2UDQSZ256rr = 8271,
+  VCVTTPS2UDQSZ256rrk = 8272,
+  VCVTTPS2UDQSZ256rrkz = 8273,
+  VCVTTPS2UDQSZrm = 8274,
+  VCVTTPS2UDQSZrmb = 8275,
+  VCVTTPS2UDQSZrmbk = 8276,
+  VCVTTPS2UDQSZrmbkz = 8277,
+  VCVTTPS2UDQSZrmk = 8278,
+  VCVTTPS2UDQSZrmkz = 8279,
+  VCVTTPS2UDQSZrr = 8280,
+  VCVTTPS2UDQSZrrb = 8281,
+  VCVTTPS2UDQSZrrbk = 8282,
+  VCVTTPS2UDQSZrrbkz = 8283,
+  VCVTTPS2UDQSZrrk = 8284,
+  VCVTTPS2UDQSZrrkz = 8285,
+  VCVTTPS2UDQZ128rm = 8286,
+  VCVTTPS2UDQZ128rmb = 8287,
+  VCVTTPS2UDQZ128rmbk = 8288,
+  VCVTTPS2UDQZ128rmbkz = 8289,
+  VCVTTPS2UDQZ128rmk = 8290,
+  VCVTTPS2UDQZ128rmkz = 8291,
+  VCVTTPS2UDQZ128rr = 8292,
+  VCVTTPS2UDQZ128rrk = 8293,
+  VCVTTPS2UDQZ128rrkz = 8294,
+  VCVTTPS2UDQZ256rm = 8295,
+  VCVTTPS2UDQZ256rmb = 8296,
+  VCVTTPS2UDQZ256rmbk = 8297,
+  VCVTTPS2UDQZ256rmbkz = 8298,
+  VCVTTPS2UDQZ256rmk = 8299,
+  VCVTTPS2UDQZ256rmkz = 8300,
+  VCVTTPS2UDQZ256rr = 8301,
+  VCVTTPS2UDQZ256rrk = 8302,
+  VCVTTPS2UDQZ256rrkz = 8303,
+  VCVTTPS2UDQZrm = 8304,
+  VCVTTPS2UDQZrmb = 8305,
+  VCVTTPS2UDQZrmbk = 8306,
+  VCVTTPS2UDQZrmbkz = 8307,
+  VCVTTPS2UDQZrmk = 8308,
+  VCVTTPS2UDQZrmkz = 8309,
+  VCVTTPS2UDQZrr = 8310,
+  VCVTTPS2UDQZrrb = 8311,
+  VCVTTPS2UDQZrrbk = 8312,
+  VCVTTPS2UDQZrrbkz = 8313,
+  VCVTTPS2UDQZrrk = 8314,
+  VCVTTPS2UDQZrrkz = 8315,
+  VCVTTPS2UQQSZ128rm = 8316,
+  VCVTTPS2UQQSZ128rmb = 8317,
+  VCVTTPS2UQQSZ128rmbk = 8318,
+  VCVTTPS2UQQSZ128rmbkz = 8319,
+  VCVTTPS2UQQSZ128rmk = 8320,
+  VCVTTPS2UQQSZ128rmkz = 8321,
+  VCVTTPS2UQQSZ128rr = 8322,
+  VCVTTPS2UQQSZ128rrk = 8323,
+  VCVTTPS2UQQSZ128rrkz = 8324,
+  VCVTTPS2UQQSZ256rm = 8325,
+  VCVTTPS2UQQSZ256rmb = 8326,
+  VCVTTPS2UQQSZ256rmbk = 8327,
+  VCVTTPS2UQQSZ256rmbkz = 8328,
+  VCVTTPS2UQQSZ256rmk = 8329,
+  VCVTTPS2UQQSZ256rmkz = 8330,
+  VCVTTPS2UQQSZ256rr = 8331,
+  VCVTTPS2UQQSZ256rrb = 8332,
+  VCVTTPS2UQQSZ256rrbk = 8333,
+  VCVTTPS2UQQSZ256rrbkz = 8334,
+  VCVTTPS2UQQSZ256rrk = 8335,
+  VCVTTPS2UQQSZ256rrkz = 8336,
+  VCVTTPS2UQQSZrm = 8337,
+  VCVTTPS2UQQSZrmb = 8338,
+  VCVTTPS2UQQSZrmbk = 8339,
+  VCVTTPS2UQQSZrmbkz = 8340,
+  VCVTTPS2UQQSZrmk = 8341,
+  VCVTTPS2UQQSZrmkz = 8342,
+  VCVTTPS2UQQSZrr = 8343,
+  VCVTTPS2UQQSZrrb = 8344,
+  VCVTTPS2UQQSZrrbk = 8345,
+  VCVTTPS2UQQSZrrbkz = 8346,
+  VCVTTPS2UQQSZrrk = 8347,
+  VCVTTPS2UQQSZrrkz = 8348,
+  VCVTTPS2UQQZ128rm = 8349,
+  VCVTTPS2UQQZ128rmb = 8350,
+  VCVTTPS2UQQZ128rmbk = 8351,
+  VCVTTPS2UQQZ128rmbkz = 8352,
+  VCVTTPS2UQQZ128rmk = 8353,
+  VCVTTPS2UQQZ128rmkz = 8354,
+  VCVTTPS2UQQZ128rr = 8355,
+  VCVTTPS2UQQZ128rrk = 8356,
+  VCVTTPS2UQQZ128rrkz = 8357,
+  VCVTTPS2UQQZ256rm = 8358,
+  VCVTTPS2UQQZ256rmb = 8359,
+  VCVTTPS2UQQZ256rmbk = 8360,
+  VCVTTPS2UQQZ256rmbkz = 8361,
+  VCVTTPS2UQQZ256rmk = 8362,
+  VCVTTPS2UQQZ256rmkz = 8363,
+  VCVTTPS2UQQZ256rr = 8364,
+  VCVTTPS2UQQZ256rrk = 8365,
+  VCVTTPS2UQQZ256rrkz = 8366,
+  VCVTTPS2UQQZrm = 8367,
+  VCVTTPS2UQQZrmb = 8368,
+  VCVTTPS2UQQZrmbk = 8369,
+  VCVTTPS2UQQZrmbkz = 8370,
+  VCVTTPS2UQQZrmk = 8371,
+  VCVTTPS2UQQZrmkz = 8372,
+  VCVTTPS2UQQZrr = 8373,
+  VCVTTPS2UQQZrrb = 8374,
+  VCVTTPS2UQQZrrbk = 8375,
+  VCVTTPS2UQQZrrbkz = 8376,
+  VCVTTPS2UQQZrrk = 8377,
+  VCVTTPS2UQQZrrkz = 8378,
+  VCVTTSD2SI64Srm = 8379,
+  VCVTTSD2SI64Srm_Int = 8380,
+  VCVTTSD2SI64Srr = 8381,
+  VCVTTSD2SI64Srr_Int = 8382,
+  VCVTTSD2SI64Srrb_Int = 8383,
+  VCVTTSD2SI64Zrm = 8384,
+  VCVTTSD2SI64Zrm_Int = 8385,
+  VCVTTSD2SI64Zrr = 8386,
+  VCVTTSD2SI64Zrr_Int = 8387,
+  VCVTTSD2SI64Zrrb_Int = 8388,
+  VCVTTSD2SI64rm = 8389,
+  VCVTTSD2SI64rm_Int = 8390,
+  VCVTTSD2SI64rr = 8391,
+  VCVTTSD2SI64rr_Int = 8392,
+  VCVTTSD2SISrm = 8393,
+  VCVTTSD2SISrm_Int = 8394,
+  VCVTTSD2SISrr = 8395,
+  VCVTTSD2SISrr_Int = 8396,
+  VCVTTSD2SISrrb_Int = 8397,
+  VCVTTSD2SIZrm = 8398,
+  VCVTTSD2SIZrm_Int = 8399,
+  VCVTTSD2SIZrr = 8400,
+  VCVTTSD2SIZrr_Int = 8401,
+  VCVTTSD2SIZrrb_Int = 8402,
+  VCVTTSD2SIrm = 8403,
+  VCVTTSD2SIrm_Int = 8404,
+  VCVTTSD2SIrr = 8405,
+  VCVTTSD2SIrr_Int = 8406,
+  VCVTTSD2USI64Srm = 8407,
+  VCVTTSD2USI64Srm_Int = 8408,
+  VCVTTSD2USI64Srr = 8409,
+  VCVTTSD2USI64Srr_Int = 8410,
+  VCVTTSD2USI64Srrb_Int = 8411,
+  VCVTTSD2USI64Zrm = 8412,
+  VCVTTSD2USI64Zrm_Int = 8413,
+  VCVTTSD2USI64Zrr = 8414,
+  VCVTTSD2USI64Zrr_Int = 8415,
+  VCVTTSD2USI64Zrrb_Int = 8416,
+  VCVTTSD2USISrm = 8417,
+  VCVTTSD2USISrm_Int = 8418,
+  VCVTTSD2USISrr = 8419,
+  VCVTTSD2USISrr_Int = 8420,
+  VCVTTSD2USISrrb_Int = 8421,
+  VCVTTSD2USIZrm = 8422,
+  VCVTTSD2USIZrm_Int = 8423,
+  VCVTTSD2USIZrr = 8424,
+  VCVTTSD2USIZrr_Int = 8425,
+  VCVTTSD2USIZrrb_Int = 8426,
+  VCVTTSH2SI64Zrm = 8427,
+  VCVTTSH2SI64Zrm_Int = 8428,
+  VCVTTSH2SI64Zrr = 8429,
+  VCVTTSH2SI64Zrr_Int = 8430,
+  VCVTTSH2SI64Zrrb_Int = 8431,
+  VCVTTSH2SIZrm = 8432,
+  VCVTTSH2SIZrm_Int = 8433,
+  VCVTTSH2SIZrr = 8434,
+  VCVTTSH2SIZrr_Int = 8435,
+  VCVTTSH2SIZrrb_Int = 8436,
+  VCVTTSH2USI64Zrm = 8437,
+  VCVTTSH2USI64Zrm_Int = 8438,
+  VCVTTSH2USI64Zrr = 8439,
+  VCVTTSH2USI64Zrr_Int = 8440,
+  VCVTTSH2USI64Zrrb_Int = 8441,
+  VCVTTSH2USIZrm = 8442,
+  VCVTTSH2USIZrm_Int = 8443,
+  VCVTTSH2USIZrr = 8444,
+  VCVTTSH2USIZrr_Int = 8445,
+  VCVTTSH2USIZrrb_Int = 8446,
+  VCVTTSS2SI64Srm = 8447,
+  VCVTTSS2SI64Srm_Int = 8448,
+  VCVTTSS2SI64Srr = 8449,
+  VCVTTSS2SI64Srr_Int = 8450,
+  VCVTTSS2SI64Srrb_Int = 8451,
+  VCVTTSS2SI64Zrm = 8452,
+  VCVTTSS2SI64Zrm_Int = 8453,
+  VCVTTSS2SI64Zrr = 8454,
+  VCVTTSS2SI64Zrr_Int = 8455,
+  VCVTTSS2SI64Zrrb_Int = 8456,
+  VCVTTSS2SI64rm = 8457,
+  VCVTTSS2SI64rm_Int = 8458,
+  VCVTTSS2SI64rr = 8459,
+  VCVTTSS2SI64rr_Int = 8460,
+  VCVTTSS2SISrm = 8461,
+  VCVTTSS2SISrm_Int = 8462,
+  VCVTTSS2SISrr = 8463,
+  VCVTTSS2SISrr_Int = 8464,
+  VCVTTSS2SISrrb_Int = 8465,
+  VCVTTSS2SIZrm = 8466,
+  VCVTTSS2SIZrm_Int = 8467,
+  VCVTTSS2SIZrr = 8468,
+  VCVTTSS2SIZrr_Int = 8469,
+  VCVTTSS2SIZrrb_Int = 8470,
+  VCVTTSS2SIrm = 8471,
+  VCVTTSS2SIrm_Int = 8472,
+  VCVTTSS2SIrr = 8473,
+  VCVTTSS2SIrr_Int = 8474,
+  VCVTTSS2USI64Srm = 8475,
+  VCVTTSS2USI64Srm_Int = 8476,
+  VCVTTSS2USI64Srr = 8477,
+  VCVTTSS2USI64Srr_Int = 8478,
+  VCVTTSS2USI64Srrb_Int = 8479,
+  VCVTTSS2USI64Zrm = 8480,
+  VCVTTSS2USI64Zrm_Int = 8481,
+  VCVTTSS2USI64Zrr = 8482,
+  VCVTTSS2USI64Zrr_Int = 8483,
+  VCVTTSS2USI64Zrrb_Int = 8484,
+  VCVTTSS2USISrm = 8485,
+  VCVTTSS2USISrm_Int = 8486,
+  VCVTTSS2USISrr = 8487,
+  VCVTTSS2USISrr_Int = 8488,
+  VCVTTSS2USISrrb_Int = 8489,
+  VCVTTSS2USIZrm = 8490,
+  VCVTTSS2USIZrm_Int = 8491,
+  VCVTTSS2USIZrr = 8492,
+  VCVTTSS2USIZrr_Int = 8493,
+  VCVTTSS2USIZrrb_Int = 8494,
+  VCVTUDQ2PDZ128rm = 8495,
+  VCVTUDQ2PDZ128rmb = 8496,
+  VCVTUDQ2PDZ128rmbk = 8497,
+  VCVTUDQ2PDZ128rmbkz = 8498,
+  VCVTUDQ2PDZ128rmk = 8499,
+  VCVTUDQ2PDZ128rmkz = 8500,
+  VCVTUDQ2PDZ128rr = 8501,
+  VCVTUDQ2PDZ128rrk = 8502,
+  VCVTUDQ2PDZ128rrkz = 8503,
+  VCVTUDQ2PDZ256rm = 8504,
+  VCVTUDQ2PDZ256rmb = 8505,
+  VCVTUDQ2PDZ256rmbk = 8506,
+  VCVTUDQ2PDZ256rmbkz = 8507,
+  VCVTUDQ2PDZ256rmk = 8508,
+  VCVTUDQ2PDZ256rmkz = 8509,
+  VCVTUDQ2PDZ256rr = 8510,
+  VCVTUDQ2PDZ256rrk = 8511,
+  VCVTUDQ2PDZ256rrkz = 8512,
+  VCVTUDQ2PDZrm = 8513,
+  VCVTUDQ2PDZrmb = 8514,
+  VCVTUDQ2PDZrmbk = 8515,
+  VCVTUDQ2PDZrmbkz = 8516,
+  VCVTUDQ2PDZrmk = 8517,
+  VCVTUDQ2PDZrmkz = 8518,
+  VCVTUDQ2PDZrr = 8519,
+  VCVTUDQ2PDZrrk = 8520,
+  VCVTUDQ2PDZrrkz = 8521,
+  VCVTUDQ2PHZ128rm = 8522,
+  VCVTUDQ2PHZ128rmb = 8523,
+  VCVTUDQ2PHZ128rmbk = 8524,
+  VCVTUDQ2PHZ128rmbkz = 8525,
+  VCVTUDQ2PHZ128rmk = 8526,
+  VCVTUDQ2PHZ128rmkz = 8527,
+  VCVTUDQ2PHZ128rr = 8528,
+  VCVTUDQ2PHZ128rrk = 8529,
+  VCVTUDQ2PHZ128rrkz = 8530,
+  VCVTUDQ2PHZ256rm = 8531,
+  VCVTUDQ2PHZ256rmb = 8532,
+  VCVTUDQ2PHZ256rmbk = 8533,
+  VCVTUDQ2PHZ256rmbkz = 8534,
+  VCVTUDQ2PHZ256rmk = 8535,
+  VCVTUDQ2PHZ256rmkz = 8536,
+  VCVTUDQ2PHZ256rr = 8537,
+  VCVTUDQ2PHZ256rrk = 8538,
+  VCVTUDQ2PHZ256rrkz = 8539,
+  VCVTUDQ2PHZrm = 8540,
+  VCVTUDQ2PHZrmb = 8541,
+  VCVTUDQ2PHZrmbk = 8542,
+  VCVTUDQ2PHZrmbkz = 8543,
+  VCVTUDQ2PHZrmk = 8544,
+  VCVTUDQ2PHZrmkz = 8545,
+  VCVTUDQ2PHZrr = 8546,
+  VCVTUDQ2PHZrrb = 8547,
+  VCVTUDQ2PHZrrbk = 8548,
+  VCVTUDQ2PHZrrbkz = 8549,
+  VCVTUDQ2PHZrrk = 8550,
+  VCVTUDQ2PHZrrkz = 8551,
+  VCVTUDQ2PSZ128rm = 8552,
+  VCVTUDQ2PSZ128rmb = 8553,
+  VCVTUDQ2PSZ128rmbk = 8554,
+  VCVTUDQ2PSZ128rmbkz = 8555,
+  VCVTUDQ2PSZ128rmk = 8556,
+  VCVTUDQ2PSZ128rmkz = 8557,
+  VCVTUDQ2PSZ128rr = 8558,
+  VCVTUDQ2PSZ128rrk = 8559,
+  VCVTUDQ2PSZ128rrkz = 8560,
+  VCVTUDQ2PSZ256rm = 8561,
+  VCVTUDQ2PSZ256rmb = 8562,
+  VCVTUDQ2PSZ256rmbk = 8563,
+  VCVTUDQ2PSZ256rmbkz = 8564,
+  VCVTUDQ2PSZ256rmk = 8565,
+  VCVTUDQ2PSZ256rmkz = 8566,
+  VCVTUDQ2PSZ256rr = 8567,
+  VCVTUDQ2PSZ256rrk = 8568,
+  VCVTUDQ2PSZ256rrkz = 8569,
+  VCVTUDQ2PSZrm = 8570,
+  VCVTUDQ2PSZrmb = 8571,
+  VCVTUDQ2PSZrmbk = 8572,
+  VCVTUDQ2PSZrmbkz = 8573,
+  VCVTUDQ2PSZrmk = 8574,
+  VCVTUDQ2PSZrmkz = 8575,
+  VCVTUDQ2PSZrr = 8576,
+  VCVTUDQ2PSZrrb = 8577,
+  VCVTUDQ2PSZrrbk = 8578,
+  VCVTUDQ2PSZrrbkz = 8579,
+  VCVTUDQ2PSZrrk = 8580,
+  VCVTUDQ2PSZrrkz = 8581,
+  VCVTUQQ2PDZ128rm = 8582,
+  VCVTUQQ2PDZ128rmb = 8583,
+  VCVTUQQ2PDZ128rmbk = 8584,
+  VCVTUQQ2PDZ128rmbkz = 8585,
+  VCVTUQQ2PDZ128rmk = 8586,
+  VCVTUQQ2PDZ128rmkz = 8587,
+  VCVTUQQ2PDZ128rr = 8588,
+  VCVTUQQ2PDZ128rrk = 8589,
+  VCVTUQQ2PDZ128rrkz = 8590,
+  VCVTUQQ2PDZ256rm = 8591,
+  VCVTUQQ2PDZ256rmb = 8592,
+  VCVTUQQ2PDZ256rmbk = 8593,
+  VCVTUQQ2PDZ256rmbkz = 8594,
+  VCVTUQQ2PDZ256rmk = 8595,
+  VCVTUQQ2PDZ256rmkz = 8596,
+  VCVTUQQ2PDZ256rr = 8597,
+  VCVTUQQ2PDZ256rrk = 8598,
+  VCVTUQQ2PDZ256rrkz = 8599,
+  VCVTUQQ2PDZrm = 8600,
+  VCVTUQQ2PDZrmb = 8601,
+  VCVTUQQ2PDZrmbk = 8602,
+  VCVTUQQ2PDZrmbkz = 8603,
+  VCVTUQQ2PDZrmk = 8604,
+  VCVTUQQ2PDZrmkz = 8605,
+  VCVTUQQ2PDZrr = 8606,
+  VCVTUQQ2PDZrrb = 8607,
+  VCVTUQQ2PDZrrbk = 8608,
+  VCVTUQQ2PDZrrbkz = 8609,
+  VCVTUQQ2PDZrrk = 8610,
+  VCVTUQQ2PDZrrkz = 8611,
+  VCVTUQQ2PHZ128rm = 8612,
+  VCVTUQQ2PHZ128rmb = 8613,
+  VCVTUQQ2PHZ128rmbk = 8614,
+  VCVTUQQ2PHZ128rmbkz = 8615,
+  VCVTUQQ2PHZ128rmk = 8616,
+  VCVTUQQ2PHZ128rmkz = 8617,
+  VCVTUQQ2PHZ128rr = 8618,
+  VCVTUQQ2PHZ128rrk = 8619,
+  VCVTUQQ2PHZ128rrkz = 8620,
+  VCVTUQQ2PHZ256rm = 8621,
+  VCVTUQQ2PHZ256rmb = 8622,
+  VCVTUQQ2PHZ256rmbk = 8623,
+  VCVTUQQ2PHZ256rmbkz = 8624,
+  VCVTUQQ2PHZ256rmk = 8625,
+  VCVTUQQ2PHZ256rmkz = 8626,
+  VCVTUQQ2PHZ256rr = 8627,
+  VCVTUQQ2PHZ256rrk = 8628,
+  VCVTUQQ2PHZ256rrkz = 8629,
+  VCVTUQQ2PHZrm = 8630,
+  VCVTUQQ2PHZrmb = 8631,
+  VCVTUQQ2PHZrmbk = 8632,
+  VCVTUQQ2PHZrmbkz = 8633,
+  VCVTUQQ2PHZrmk = 8634,
+  VCVTUQQ2PHZrmkz = 8635,
+  VCVTUQQ2PHZrr = 8636,
+  VCVTUQQ2PHZrrb = 8637,
+  VCVTUQQ2PHZrrbk = 8638,
+  VCVTUQQ2PHZrrbkz = 8639,
+  VCVTUQQ2PHZrrk = 8640,
+  VCVTUQQ2PHZrrkz = 8641,
+  VCVTUQQ2PSZ128rm = 8642,
+  VCVTUQQ2PSZ128rmb = 8643,
+  VCVTUQQ2PSZ128rmbk = 8644,
+  VCVTUQQ2PSZ128rmbkz = 8645,
+  VCVTUQQ2PSZ128rmk = 8646,
+  VCVTUQQ2PSZ128rmkz = 8647,
+  VCVTUQQ2PSZ128rr = 8648,
+  VCVTUQQ2PSZ128rrk = 8649,
+  VCVTUQQ2PSZ128rrkz = 8650,
+  VCVTUQQ2PSZ256rm = 8651,
+  VCVTUQQ2PSZ256rmb = 8652,
+  VCVTUQQ2PSZ256rmbk = 8653,
+  VCVTUQQ2PSZ256rmbkz = 8654,
+  VCVTUQQ2PSZ256rmk = 8655,
+  VCVTUQQ2PSZ256rmkz = 8656,
+  VCVTUQQ2PSZ256rr = 8657,
+  VCVTUQQ2PSZ256rrk = 8658,
+  VCVTUQQ2PSZ256rrkz = 8659,
+  VCVTUQQ2PSZrm = 8660,
+  VCVTUQQ2PSZrmb = 8661,
+  VCVTUQQ2PSZrmbk = 8662,
+  VCVTUQQ2PSZrmbkz = 8663,
+  VCVTUQQ2PSZrmk = 8664,
+  VCVTUQQ2PSZrmkz = 8665,
+  VCVTUQQ2PSZrr = 8666,
+  VCVTUQQ2PSZrrb = 8667,
+  VCVTUQQ2PSZrrbk = 8668,
+  VCVTUQQ2PSZrrbkz = 8669,
+  VCVTUQQ2PSZrrk = 8670,
+  VCVTUQQ2PSZrrkz = 8671,
+  VCVTUSI2SDZrm = 8672,
+  VCVTUSI2SDZrm_Int = 8673,
+  VCVTUSI2SDZrr = 8674,
+  VCVTUSI2SDZrr_Int = 8675,
+  VCVTUSI2SHZrm = 8676,
+  VCVTUSI2SHZrm_Int = 8677,
+  VCVTUSI2SHZrr = 8678,
+  VCVTUSI2SHZrr_Int = 8679,
+  VCVTUSI2SHZrrb_Int = 8680,
+  VCVTUSI2SSZrm = 8681,
+  VCVTUSI2SSZrm_Int = 8682,
+  VCVTUSI2SSZrr = 8683,
+  VCVTUSI2SSZrr_Int = 8684,
+  VCVTUSI2SSZrrb_Int = 8685,
+  VCVTUSI642SDZrm = 8686,
+  VCVTUSI642SDZrm_Int = 8687,
+  VCVTUSI642SDZrr = 8688,
+  VCVTUSI642SDZrr_Int = 8689,
+  VCVTUSI642SDZrrb_Int = 8690,
+  VCVTUSI642SHZrm = 8691,
+  VCVTUSI642SHZrm_Int = 8692,
+  VCVTUSI642SHZrr = 8693,
+  VCVTUSI642SHZrr_Int = 8694,
+  VCVTUSI642SHZrrb_Int = 8695,
+  VCVTUSI642SSZrm = 8696,
+  VCVTUSI642SSZrm_Int = 8697,
+  VCVTUSI642SSZrr = 8698,
+  VCVTUSI642SSZrr_Int = 8699,
+  VCVTUSI642SSZrrb_Int = 8700,
+  VCVTUW2PHZ128rm = 8701,
+  VCVTUW2PHZ128rmb = 8702,
+  VCVTUW2PHZ128rmbk = 8703,
+  VCVTUW2PHZ128rmbkz = 8704,
+  VCVTUW2PHZ128rmk = 8705,
+  VCVTUW2PHZ128rmkz = 8706,
+  VCVTUW2PHZ128rr = 8707,
+  VCVTUW2PHZ128rrk = 8708,
+  VCVTUW2PHZ128rrkz = 8709,
+  VCVTUW2PHZ256rm = 8710,
+  VCVTUW2PHZ256rmb = 8711,
+  VCVTUW2PHZ256rmbk = 8712,
+  VCVTUW2PHZ256rmbkz = 8713,
+  VCVTUW2PHZ256rmk = 8714,
+  VCVTUW2PHZ256rmkz = 8715,
+  VCVTUW2PHZ256rr = 8716,
+  VCVTUW2PHZ256rrk = 8717,
+  VCVTUW2PHZ256rrkz = 8718,
+  VCVTUW2PHZrm = 8719,
+  VCVTUW2PHZrmb = 8720,
+  VCVTUW2PHZrmbk = 8721,
+  VCVTUW2PHZrmbkz = 8722,
+  VCVTUW2PHZrmk = 8723,
+  VCVTUW2PHZrmkz = 8724,
+  VCVTUW2PHZrr = 8725,
+  VCVTUW2PHZrrb = 8726,
+  VCVTUW2PHZrrbk = 8727,
+  VCVTUW2PHZrrbkz = 8728,
+  VCVTUW2PHZrrk = 8729,
+  VCVTUW2PHZrrkz = 8730,
+  VCVTW2PHZ128rm = 8731,
+  VCVTW2PHZ128rmb = 8732,
+  VCVTW2PHZ128rmbk = 8733,
+  VCVTW2PHZ128rmbkz = 8734,
+  VCVTW2PHZ128rmk = 8735,
+  VCVTW2PHZ128rmkz = 8736,
+  VCVTW2PHZ128rr = 8737,
+  VCVTW2PHZ128rrk = 8738,
+  VCVTW2PHZ128rrkz = 8739,
+  VCVTW2PHZ256rm = 8740,
+  VCVTW2PHZ256rmb = 8741,
+  VCVTW2PHZ256rmbk = 8742,
+  VCVTW2PHZ256rmbkz = 8743,
+  VCVTW2PHZ256rmk = 8744,
+  VCVTW2PHZ256rmkz = 8745,
+  VCVTW2PHZ256rr = 8746,
+  VCVTW2PHZ256rrk = 8747,
+  VCVTW2PHZ256rrkz = 8748,
+  VCVTW2PHZrm = 8749,
+  VCVTW2PHZrmb = 8750,
+  VCVTW2PHZrmbk = 8751,
+  VCVTW2PHZrmbkz = 8752,
+  VCVTW2PHZrmk = 8753,
+  VCVTW2PHZrmkz = 8754,
+  VCVTW2PHZrr = 8755,
+  VCVTW2PHZrrb = 8756,
+  VCVTW2PHZrrbk = 8757,
+  VCVTW2PHZrrbkz = 8758,
+  VCVTW2PHZrrk = 8759,
+  VCVTW2PHZrrkz = 8760,
+  VDBPSADBWZ128rmi = 8761,
+  VDBPSADBWZ128rmik = 8762,
+  VDBPSADBWZ128rmikz = 8763,
+  VDBPSADBWZ128rri = 8764,
+  VDBPSADBWZ128rrik = 8765,
+  VDBPSADBWZ128rrikz = 8766,
+  VDBPSADBWZ256rmi = 8767,
+  VDBPSADBWZ256rmik = 8768,
+  VDBPSADBWZ256rmikz = 8769,
+  VDBPSADBWZ256rri = 8770,
+  VDBPSADBWZ256rrik = 8771,
+  VDBPSADBWZ256rrikz = 8772,
+  VDBPSADBWZrmi = 8773,
+  VDBPSADBWZrmik = 8774,
+  VDBPSADBWZrmikz = 8775,
+  VDBPSADBWZrri = 8776,
+  VDBPSADBWZrrik = 8777,
+  VDBPSADBWZrrikz = 8778,
+  VDIVBF16Z128rm = 8779,
+  VDIVBF16Z128rmb = 8780,
+  VDIVBF16Z128rmbk = 8781,
+  VDIVBF16Z128rmbkz = 8782,
+  VDIVBF16Z128rmk = 8783,
+  VDIVBF16Z128rmkz = 8784,
+  VDIVBF16Z128rr = 8785,
+  VDIVBF16Z128rrk = 8786,
+  VDIVBF16Z128rrkz = 8787,
+  VDIVBF16Z256rm = 8788,
+  VDIVBF16Z256rmb = 8789,
+  VDIVBF16Z256rmbk = 8790,
+  VDIVBF16Z256rmbkz = 8791,
+  VDIVBF16Z256rmk = 8792,
+  VDIVBF16Z256rmkz = 8793,
+  VDIVBF16Z256rr = 8794,
+  VDIVBF16Z256rrk = 8795,
+  VDIVBF16Z256rrkz = 8796,
+  VDIVBF16Zrm = 8797,
+  VDIVBF16Zrmb = 8798,
+  VDIVBF16Zrmbk = 8799,
+  VDIVBF16Zrmbkz = 8800,
+  VDIVBF16Zrmk = 8801,
+  VDIVBF16Zrmkz = 8802,
+  VDIVBF16Zrr = 8803,
+  VDIVBF16Zrrk = 8804,
+  VDIVBF16Zrrkz = 8805,
+  VDIVPDYrm = 8806,
+  VDIVPDYrr = 8807,
+  VDIVPDZ128rm = 8808,
+  VDIVPDZ128rmb = 8809,
+  VDIVPDZ128rmbk = 8810,
+  VDIVPDZ128rmbkz = 8811,
+  VDIVPDZ128rmk = 8812,
+  VDIVPDZ128rmkz = 8813,
+  VDIVPDZ128rr = 8814,
+  VDIVPDZ128rrk = 8815,
+  VDIVPDZ128rrkz = 8816,
+  VDIVPDZ256rm = 8817,
+  VDIVPDZ256rmb = 8818,
+  VDIVPDZ256rmbk = 8819,
+  VDIVPDZ256rmbkz = 8820,
+  VDIVPDZ256rmk = 8821,
+  VDIVPDZ256rmkz = 8822,
+  VDIVPDZ256rr = 8823,
+  VDIVPDZ256rrk = 8824,
+  VDIVPDZ256rrkz = 8825,
+  VDIVPDZrm = 8826,
+  VDIVPDZrmb = 8827,
+  VDIVPDZrmbk = 8828,
+  VDIVPDZrmbkz = 8829,
+  VDIVPDZrmk = 8830,
+  VDIVPDZrmkz = 8831,
+  VDIVPDZrr = 8832,
+  VDIVPDZrrb = 8833,
+  VDIVPDZrrbk = 8834,
+  VDIVPDZrrbkz = 8835,
+  VDIVPDZrrk = 8836,
+  VDIVPDZrrkz = 8837,
+  VDIVPDrm = 8838,
+  VDIVPDrr = 8839,
+  VDIVPHZ128rm = 8840,
+  VDIVPHZ128rmb = 8841,
+  VDIVPHZ128rmbk = 8842,
+  VDIVPHZ128rmbkz = 8843,
+  VDIVPHZ128rmk = 8844,
+  VDIVPHZ128rmkz = 8845,
+  VDIVPHZ128rr = 8846,
+  VDIVPHZ128rrk = 8847,
+  VDIVPHZ128rrkz = 8848,
+  VDIVPHZ256rm = 8849,
+  VDIVPHZ256rmb = 8850,
+  VDIVPHZ256rmbk = 8851,
+  VDIVPHZ256rmbkz = 8852,
+  VDIVPHZ256rmk = 8853,
+  VDIVPHZ256rmkz = 8854,
+  VDIVPHZ256rr = 8855,
+  VDIVPHZ256rrk = 8856,
+  VDIVPHZ256rrkz = 8857,
+  VDIVPHZrm = 8858,
+  VDIVPHZrmb = 8859,
+  VDIVPHZrmbk = 8860,
+  VDIVPHZrmbkz = 8861,
+  VDIVPHZrmk = 8862,
+  VDIVPHZrmkz = 8863,
+  VDIVPHZrr = 8864,
+  VDIVPHZrrb = 8865,
+  VDIVPHZrrbk = 8866,
+  VDIVPHZrrbkz = 8867,
+  VDIVPHZrrk = 8868,
+  VDIVPHZrrkz = 8869,
+  VDIVPSYrm = 8870,
+  VDIVPSYrr = 8871,
+  VDIVPSZ128rm = 8872,
+  VDIVPSZ128rmb = 8873,
+  VDIVPSZ128rmbk = 8874,
+  VDIVPSZ128rmbkz = 8875,
+  VDIVPSZ128rmk = 8876,
+  VDIVPSZ128rmkz = 8877,
+  VDIVPSZ128rr = 8878,
+  VDIVPSZ128rrk = 8879,
+  VDIVPSZ128rrkz = 8880,
+  VDIVPSZ256rm = 8881,
+  VDIVPSZ256rmb = 8882,
+  VDIVPSZ256rmbk = 8883,
+  VDIVPSZ256rmbkz = 8884,
+  VDIVPSZ256rmk = 8885,
+  VDIVPSZ256rmkz = 8886,
+  VDIVPSZ256rr = 8887,
+  VDIVPSZ256rrk = 8888,
+  VDIVPSZ256rrkz = 8889,
+  VDIVPSZrm = 8890,
+  VDIVPSZrmb = 8891,
+  VDIVPSZrmbk = 8892,
+  VDIVPSZrmbkz = 8893,
+  VDIVPSZrmk = 8894,
+  VDIVPSZrmkz = 8895,
+  VDIVPSZrr = 8896,
+  VDIVPSZrrb = 8897,
+  VDIVPSZrrbk = 8898,
+  VDIVPSZrrbkz = 8899,
+  VDIVPSZrrk = 8900,
+  VDIVPSZrrkz = 8901,
+  VDIVPSrm = 8902,
+  VDIVPSrr = 8903,
+  VDIVSDZrm = 8904,
+  VDIVSDZrm_Int = 8905,
+  VDIVSDZrmk_Int = 8906,
+  VDIVSDZrmkz_Int = 8907,
+  VDIVSDZrr = 8908,
+  VDIVSDZrr_Int = 8909,
+  VDIVSDZrrb_Int = 8910,
+  VDIVSDZrrbk_Int = 8911,
+  VDIVSDZrrbkz_Int = 8912,
+  VDIVSDZrrk_Int = 8913,
+  VDIVSDZrrkz_Int = 8914,
+  VDIVSDrm = 8915,
+  VDIVSDrm_Int = 8916,
+  VDIVSDrr = 8917,
+  VDIVSDrr_Int = 8918,
+  VDIVSHZrm = 8919,
+  VDIVSHZrm_Int = 8920,
+  VDIVSHZrmk_Int = 8921,
+  VDIVSHZrmkz_Int = 8922,
+  VDIVSHZrr = 8923,
+  VDIVSHZrr_Int = 8924,
+  VDIVSHZrrb_Int = 8925,
+  VDIVSHZrrbk_Int = 8926,
+  VDIVSHZrrbkz_Int = 8927,
+  VDIVSHZrrk_Int = 8928,
+  VDIVSHZrrkz_Int = 8929,
+  VDIVSSZrm = 8930,
+  VDIVSSZrm_Int = 8931,
+  VDIVSSZrmk_Int = 8932,
+  VDIVSSZrmkz_Int = 8933,
+  VDIVSSZrr = 8934,
+  VDIVSSZrr_Int = 8935,
+  VDIVSSZrrb_Int = 8936,
+  VDIVSSZrrbk_Int = 8937,
+  VDIVSSZrrbkz_Int = 8938,
+  VDIVSSZrrk_Int = 8939,
+  VDIVSSZrrkz_Int = 8940,
+  VDIVSSrm = 8941,
+  VDIVSSrm_Int = 8942,
+  VDIVSSrr = 8943,
+  VDIVSSrr_Int = 8944,
+  VDPBF16PSZ128m = 8945,
+  VDPBF16PSZ128mb = 8946,
+  VDPBF16PSZ128mbk = 8947,
+  VDPBF16PSZ128mbkz = 8948,
+  VDPBF16PSZ128mk = 8949,
+  VDPBF16PSZ128mkz = 8950,
+  VDPBF16PSZ128r = 8951,
+  VDPBF16PSZ128rk = 8952,
+  VDPBF16PSZ128rkz = 8953,
+  VDPBF16PSZ256m = 8954,
+  VDPBF16PSZ256mb = 8955,
+  VDPBF16PSZ256mbk = 8956,
+  VDPBF16PSZ256mbkz = 8957,
+  VDPBF16PSZ256mk = 8958,
+  VDPBF16PSZ256mkz = 8959,
+  VDPBF16PSZ256r = 8960,
+  VDPBF16PSZ256rk = 8961,
+  VDPBF16PSZ256rkz = 8962,
+  VDPBF16PSZm = 8963,
+  VDPBF16PSZmb = 8964,
+  VDPBF16PSZmbk = 8965,
+  VDPBF16PSZmbkz = 8966,
+  VDPBF16PSZmk = 8967,
+  VDPBF16PSZmkz = 8968,
+  VDPBF16PSZr = 8969,
+  VDPBF16PSZrk = 8970,
+  VDPBF16PSZrkz = 8971,
+  VDPPDrmi = 8972,
+  VDPPDrri = 8973,
+  VDPPHPSZ128m = 8974,
+  VDPPHPSZ128mb = 8975,
+  VDPPHPSZ128mbk = 8976,
+  VDPPHPSZ128mbkz = 8977,
+  VDPPHPSZ128mk = 8978,
+  VDPPHPSZ128mkz = 8979,
+  VDPPHPSZ128r = 8980,
+  VDPPHPSZ128rk = 8981,
+  VDPPHPSZ128rkz = 8982,
+  VDPPHPSZ256m = 8983,
+  VDPPHPSZ256mb = 8984,
+  VDPPHPSZ256mbk = 8985,
+  VDPPHPSZ256mbkz = 8986,
+  VDPPHPSZ256mk = 8987,
+  VDPPHPSZ256mkz = 8988,
+  VDPPHPSZ256r = 8989,
+  VDPPHPSZ256rk = 8990,
+  VDPPHPSZ256rkz = 8991,
+  VDPPHPSZm = 8992,
+  VDPPHPSZmb = 8993,
+  VDPPHPSZmbk = 8994,
+  VDPPHPSZmbkz = 8995,
+  VDPPHPSZmk = 8996,
+  VDPPHPSZmkz = 8997,
+  VDPPHPSZr = 8998,
+  VDPPHPSZrk = 8999,
+  VDPPHPSZrkz = 9000,
+  VDPPSYrmi = 9001,
+  VDPPSYrri = 9002,
+  VDPPSrmi = 9003,
+  VDPPSrri = 9004,
+  VERRm = 9005,
+  VERRr = 9006,
+  VERWm = 9007,
+  VERWr = 9008,
+  VEXP2PDZm = 9009,
+  VEXP2PDZmb = 9010,
+  VEXP2PDZmbk = 9011,
+  VEXP2PDZmbkz = 9012,
+  VEXP2PDZmk = 9013,
+  VEXP2PDZmkz = 9014,
+  VEXP2PDZr = 9015,
+  VEXP2PDZrb = 9016,
+  VEXP2PDZrbk = 9017,
+  VEXP2PDZrbkz = 9018,
+  VEXP2PDZrk = 9019,
+  VEXP2PDZrkz = 9020,
+  VEXP2PSZm = 9021,
+  VEXP2PSZmb = 9022,
+  VEXP2PSZmbk = 9023,
+  VEXP2PSZmbkz = 9024,
+  VEXP2PSZmk = 9025,
+  VEXP2PSZmkz = 9026,
+  VEXP2PSZr = 9027,
+  VEXP2PSZrb = 9028,
+  VEXP2PSZrbk = 9029,
+  VEXP2PSZrbkz = 9030,
+  VEXP2PSZrk = 9031,
+  VEXP2PSZrkz = 9032,
+  VEXPANDPDZ128rm = 9033,
+  VEXPANDPDZ128rmk = 9034,
+  VEXPANDPDZ128rmkz = 9035,
+  VEXPANDPDZ128rr = 9036,
+  VEXPANDPDZ128rrk = 9037,
+  VEXPANDPDZ128rrkz = 9038,
+  VEXPANDPDZ256rm = 9039,
+  VEXPANDPDZ256rmk = 9040,
+  VEXPANDPDZ256rmkz = 9041,
+  VEXPANDPDZ256rr = 9042,
+  VEXPANDPDZ256rrk = 9043,
+  VEXPANDPDZ256rrkz = 9044,
+  VEXPANDPDZrm = 9045,
+  VEXPANDPDZrmk = 9046,
+  VEXPANDPDZrmkz = 9047,
+  VEXPANDPDZrr = 9048,
+  VEXPANDPDZrrk = 9049,
+  VEXPANDPDZrrkz = 9050,
+  VEXPANDPSZ128rm = 9051,
+  VEXPANDPSZ128rmk = 9052,
+  VEXPANDPSZ128rmkz = 9053,
+  VEXPANDPSZ128rr = 9054,
+  VEXPANDPSZ128rrk = 9055,
+  VEXPANDPSZ128rrkz = 9056,
+  VEXPANDPSZ256rm = 9057,
+  VEXPANDPSZ256rmk = 9058,
+  VEXPANDPSZ256rmkz = 9059,
+  VEXPANDPSZ256rr = 9060,
+  VEXPANDPSZ256rrk = 9061,
+  VEXPANDPSZ256rrkz = 9062,
+  VEXPANDPSZrm = 9063,
+  VEXPANDPSZrmk = 9064,
+  VEXPANDPSZrmkz = 9065,
+  VEXPANDPSZrr = 9066,
+  VEXPANDPSZrrk = 9067,
+  VEXPANDPSZrrkz = 9068,
+  VEXTRACTF128mri = 9069,
+  VEXTRACTF128rri = 9070,
+  VEXTRACTF32X4Z256mri = 9071,
+  VEXTRACTF32X4Z256mrik = 9072,
+  VEXTRACTF32X4Z256rri = 9073,
+  VEXTRACTF32X4Z256rrik = 9074,
+  VEXTRACTF32X4Z256rrikz = 9075,
+  VEXTRACTF32X4Zmri = 9076,
+  VEXTRACTF32X4Zmrik = 9077,
+  VEXTRACTF32X4Zrri = 9078,
+  VEXTRACTF32X4Zrrik = 9079,
+  VEXTRACTF32X4Zrrikz = 9080,
+  VEXTRACTF32X8Zmri = 9081,
+  VEXTRACTF32X8Zmrik = 9082,
+  VEXTRACTF32X8Zrri = 9083,
+  VEXTRACTF32X8Zrrik = 9084,
+  VEXTRACTF32X8Zrrikz = 9085,
+  VEXTRACTF64X2Z256mri = 9086,
+  VEXTRACTF64X2Z256mrik = 9087,
+  VEXTRACTF64X2Z256rri = 9088,
+  VEXTRACTF64X2Z256rrik = 9089,
+  VEXTRACTF64X2Z256rrikz = 9090,
+  VEXTRACTF64X2Zmri = 9091,
+  VEXTRACTF64X2Zmrik = 9092,
+  VEXTRACTF64X2Zrri = 9093,
+  VEXTRACTF64X2Zrrik = 9094,
+  VEXTRACTF64X2Zrrikz = 9095,
+  VEXTRACTF64X4Zmri = 9096,
+  VEXTRACTF64X4Zmrik = 9097,
+  VEXTRACTF64X4Zrri = 9098,
+  VEXTRACTF64X4Zrrik = 9099,
+  VEXTRACTF64X4Zrrikz = 9100,
+  VEXTRACTI128mri = 9101,
+  VEXTRACTI128rri = 9102,
+  VEXTRACTI32X4Z256mri = 9103,
+  VEXTRACTI32X4Z256mrik = 9104,
+  VEXTRACTI32X4Z256rri = 9105,
+  VEXTRACTI32X4Z256rrik = 9106,
+  VEXTRACTI32X4Z256rrikz = 9107,
+  VEXTRACTI32X4Zmri = 9108,
+  VEXTRACTI32X4Zmrik = 9109,
+  VEXTRACTI32X4Zrri = 9110,
+  VEXTRACTI32X4Zrrik = 9111,
+  VEXTRACTI32X4Zrrikz = 9112,
+  VEXTRACTI32X8Zmri = 9113,
+  VEXTRACTI32X8Zmrik = 9114,
+  VEXTRACTI32X8Zrri = 9115,
+  VEXTRACTI32X8Zrrik = 9116,
+  VEXTRACTI32X8Zrrikz = 9117,
+  VEXTRACTI64X2Z256mri = 9118,
+  VEXTRACTI64X2Z256mrik = 9119,
+  VEXTRACTI64X2Z256rri = 9120,
+  VEXTRACTI64X2Z256rrik = 9121,
+  VEXTRACTI64X2Z256rrikz = 9122,
+  VEXTRACTI64X2Zmri = 9123,
+  VEXTRACTI64X2Zmrik = 9124,
+  VEXTRACTI64X2Zrri = 9125,
+  VEXTRACTI64X2Zrrik = 9126,
+  VEXTRACTI64X2Zrrikz = 9127,
+  VEXTRACTI64X4Zmri = 9128,
+  VEXTRACTI64X4Zmrik = 9129,
+  VEXTRACTI64X4Zrri = 9130,
+  VEXTRACTI64X4Zrrik = 9131,
+  VEXTRACTI64X4Zrrikz = 9132,
+  VEXTRACTPSZmri = 9133,
+  VEXTRACTPSZrri = 9134,
+  VEXTRACTPSmri = 9135,
+  VEXTRACTPSrri = 9136,
+  VFCMADDCPHZ128m = 9137,
+  VFCMADDCPHZ128mb = 9138,
+  VFCMADDCPHZ128mbk = 9139,
+  VFCMADDCPHZ128mbkz = 9140,
+  VFCMADDCPHZ128mk = 9141,
+  VFCMADDCPHZ128mkz = 9142,
+  VFCMADDCPHZ128r = 9143,
+  VFCMADDCPHZ128rk = 9144,
+  VFCMADDCPHZ128rkz = 9145,
+  VFCMADDCPHZ256m = 9146,
+  VFCMADDCPHZ256mb = 9147,
+  VFCMADDCPHZ256mbk = 9148,
+  VFCMADDCPHZ256mbkz = 9149,
+  VFCMADDCPHZ256mk = 9150,
+  VFCMADDCPHZ256mkz = 9151,
+  VFCMADDCPHZ256r = 9152,
+  VFCMADDCPHZ256rk = 9153,
+  VFCMADDCPHZ256rkz = 9154,
+  VFCMADDCPHZm = 9155,
+  VFCMADDCPHZmb = 9156,
+  VFCMADDCPHZmbk = 9157,
+  VFCMADDCPHZmbkz = 9158,
+  VFCMADDCPHZmk = 9159,
+  VFCMADDCPHZmkz = 9160,
+  VFCMADDCPHZr = 9161,
+  VFCMADDCPHZrb = 9162,
+  VFCMADDCPHZrbk = 9163,
+  VFCMADDCPHZrbkz = 9164,
+  VFCMADDCPHZrk = 9165,
+  VFCMADDCPHZrkz = 9166,
+  VFCMADDCSHZm = 9167,
+  VFCMADDCSHZmk = 9168,
+  VFCMADDCSHZmkz = 9169,
+  VFCMADDCSHZr = 9170,
+  VFCMADDCSHZrb = 9171,
+  VFCMADDCSHZrbk = 9172,
+  VFCMADDCSHZrbkz = 9173,
+  VFCMADDCSHZrk = 9174,
+  VFCMADDCSHZrkz = 9175,
+  VFCMULCPHZ128rm = 9176,
+  VFCMULCPHZ128rmb = 9177,
+  VFCMULCPHZ128rmbk = 9178,
+  VFCMULCPHZ128rmbkz = 9179,
+  VFCMULCPHZ128rmk = 9180,
+  VFCMULCPHZ128rmkz = 9181,
+  VFCMULCPHZ128rr = 9182,
+  VFCMULCPHZ128rrk = 9183,
+  VFCMULCPHZ128rrkz = 9184,
+  VFCMULCPHZ256rm = 9185,
+  VFCMULCPHZ256rmb = 9186,
+  VFCMULCPHZ256rmbk = 9187,
+  VFCMULCPHZ256rmbkz = 9188,
+  VFCMULCPHZ256rmk = 9189,
+  VFCMULCPHZ256rmkz = 9190,
+  VFCMULCPHZ256rr = 9191,
+  VFCMULCPHZ256rrk = 9192,
+  VFCMULCPHZ256rrkz = 9193,
+  VFCMULCPHZrm = 9194,
+  VFCMULCPHZrmb = 9195,
+  VFCMULCPHZrmbk = 9196,
+  VFCMULCPHZrmbkz = 9197,
+  VFCMULCPHZrmk = 9198,
+  VFCMULCPHZrmkz = 9199,
+  VFCMULCPHZrr = 9200,
+  VFCMULCPHZrrb = 9201,
+  VFCMULCPHZrrbk = 9202,
+  VFCMULCPHZrrbkz = 9203,
+  VFCMULCPHZrrk = 9204,
+  VFCMULCPHZrrkz = 9205,
+  VFCMULCSHZrm = 9206,
+  VFCMULCSHZrmk = 9207,
+  VFCMULCSHZrmkz = 9208,
+  VFCMULCSHZrr = 9209,
+  VFCMULCSHZrrb = 9210,
+  VFCMULCSHZrrbk = 9211,
+  VFCMULCSHZrrbkz = 9212,
+  VFCMULCSHZrrk = 9213,
+  VFCMULCSHZrrkz = 9214,
+  VFIXUPIMMPDZ128rmbi = 9215,
+  VFIXUPIMMPDZ128rmbik = 9216,
+  VFIXUPIMMPDZ128rmbikz = 9217,
+  VFIXUPIMMPDZ128rmi = 9218,
+  VFIXUPIMMPDZ128rmik = 9219,
+  VFIXUPIMMPDZ128rmikz = 9220,
+  VFIXUPIMMPDZ128rri = 9221,
+  VFIXUPIMMPDZ128rrik = 9222,
+  VFIXUPIMMPDZ128rrikz = 9223,
+  VFIXUPIMMPDZ256rmbi = 9224,
+  VFIXUPIMMPDZ256rmbik = 9225,
+  VFIXUPIMMPDZ256rmbikz = 9226,
+  VFIXUPIMMPDZ256rmi = 9227,
+  VFIXUPIMMPDZ256rmik = 9228,
+  VFIXUPIMMPDZ256rmikz = 9229,
+  VFIXUPIMMPDZ256rri = 9230,
+  VFIXUPIMMPDZ256rrik = 9231,
+  VFIXUPIMMPDZ256rrikz = 9232,
+  VFIXUPIMMPDZrmbi = 9233,
+  VFIXUPIMMPDZrmbik = 9234,
+  VFIXUPIMMPDZrmbikz = 9235,
+  VFIXUPIMMPDZrmi = 9236,
+  VFIXUPIMMPDZrmik = 9237,
+  VFIXUPIMMPDZrmikz = 9238,
+  VFIXUPIMMPDZrri = 9239,
+  VFIXUPIMMPDZrrib = 9240,
+  VFIXUPIMMPDZrribk = 9241,
+  VFIXUPIMMPDZrribkz = 9242,
+  VFIXUPIMMPDZrrik = 9243,
+  VFIXUPIMMPDZrrikz = 9244,
+  VFIXUPIMMPSZ128rmbi = 9245,
+  VFIXUPIMMPSZ128rmbik = 9246,
+  VFIXUPIMMPSZ128rmbikz = 9247,
+  VFIXUPIMMPSZ128rmi = 9248,
+  VFIXUPIMMPSZ128rmik = 9249,
+  VFIXUPIMMPSZ128rmikz = 9250,
+  VFIXUPIMMPSZ128rri = 9251,
+  VFIXUPIMMPSZ128rrik = 9252,
+  VFIXUPIMMPSZ128rrikz = 9253,
+  VFIXUPIMMPSZ256rmbi = 9254,
+  VFIXUPIMMPSZ256rmbik = 9255,
+  VFIXUPIMMPSZ256rmbikz = 9256,
+  VFIXUPIMMPSZ256rmi = 9257,
+  VFIXUPIMMPSZ256rmik = 9258,
+  VFIXUPIMMPSZ256rmikz = 9259,
+  VFIXUPIMMPSZ256rri = 9260,
+  VFIXUPIMMPSZ256rrik = 9261,
+  VFIXUPIMMPSZ256rrikz = 9262,
+  VFIXUPIMMPSZrmbi = 9263,
+  VFIXUPIMMPSZrmbik = 9264,
+  VFIXUPIMMPSZrmbikz = 9265,
+  VFIXUPIMMPSZrmi = 9266,
+  VFIXUPIMMPSZrmik = 9267,
+  VFIXUPIMMPSZrmikz = 9268,
+  VFIXUPIMMPSZrri = 9269,
+  VFIXUPIMMPSZrrib = 9270,
+  VFIXUPIMMPSZrribk = 9271,
+  VFIXUPIMMPSZrribkz = 9272,
+  VFIXUPIMMPSZrrik = 9273,
+  VFIXUPIMMPSZrrikz = 9274,
+  VFIXUPIMMSDZrmi = 9275,
+  VFIXUPIMMSDZrmik = 9276,
+  VFIXUPIMMSDZrmikz = 9277,
+  VFIXUPIMMSDZrri = 9278,
+  VFIXUPIMMSDZrrib = 9279,
+  VFIXUPIMMSDZrribk = 9280,
+  VFIXUPIMMSDZrribkz = 9281,
+  VFIXUPIMMSDZrrik = 9282,
+  VFIXUPIMMSDZrrikz = 9283,
+  VFIXUPIMMSSZrmi = 9284,
+  VFIXUPIMMSSZrmik = 9285,
+  VFIXUPIMMSSZrmikz = 9286,
+  VFIXUPIMMSSZrri = 9287,
+  VFIXUPIMMSSZrrib = 9288,
+  VFIXUPIMMSSZrribk = 9289,
+  VFIXUPIMMSSZrribkz = 9290,
+  VFIXUPIMMSSZrrik = 9291,
+  VFIXUPIMMSSZrrikz = 9292,
+  VFMADD132BF16Z128m = 9293,
+  VFMADD132BF16Z128mb = 9294,
+  VFMADD132BF16Z128mbk = 9295,
+  VFMADD132BF16Z128mbkz = 9296,
+  VFMADD132BF16Z128mk = 9297,
+  VFMADD132BF16Z128mkz = 9298,
+  VFMADD132BF16Z128r = 9299,
+  VFMADD132BF16Z128rk = 9300,
+  VFMADD132BF16Z128rkz = 9301,
+  VFMADD132BF16Z256m = 9302,
+  VFMADD132BF16Z256mb = 9303,
+  VFMADD132BF16Z256mbk = 9304,
+  VFMADD132BF16Z256mbkz = 9305,
+  VFMADD132BF16Z256mk = 9306,
+  VFMADD132BF16Z256mkz = 9307,
+  VFMADD132BF16Z256r = 9308,
+  VFMADD132BF16Z256rk = 9309,
+  VFMADD132BF16Z256rkz = 9310,
+  VFMADD132BF16Zm = 9311,
+  VFMADD132BF16Zmb = 9312,
+  VFMADD132BF16Zmbk = 9313,
+  VFMADD132BF16Zmbkz = 9314,
+  VFMADD132BF16Zmk = 9315,
+  VFMADD132BF16Zmkz = 9316,
+  VFMADD132BF16Zr = 9317,
+  VFMADD132BF16Zrk = 9318,
+  VFMADD132BF16Zrkz = 9319,
+  VFMADD132PDYm = 9320,
+  VFMADD132PDYr = 9321,
+  VFMADD132PDZ128m = 9322,
+  VFMADD132PDZ128mb = 9323,
+  VFMADD132PDZ128mbk = 9324,
+  VFMADD132PDZ128mbkz = 9325,
+  VFMADD132PDZ128mk = 9326,
+  VFMADD132PDZ128mkz = 9327,
+  VFMADD132PDZ128r = 9328,
+  VFMADD132PDZ128rk = 9329,
+  VFMADD132PDZ128rkz = 9330,
+  VFMADD132PDZ256m = 9331,
+  VFMADD132PDZ256mb = 9332,
+  VFMADD132PDZ256mbk = 9333,
+  VFMADD132PDZ256mbkz = 9334,
+  VFMADD132PDZ256mk = 9335,
+  VFMADD132PDZ256mkz = 9336,
+  VFMADD132PDZ256r = 9337,
+  VFMADD132PDZ256rk = 9338,
+  VFMADD132PDZ256rkz = 9339,
+  VFMADD132PDZm = 9340,
+  VFMADD132PDZmb = 9341,
+  VFMADD132PDZmbk = 9342,
+  VFMADD132PDZmbkz = 9343,
+  VFMADD132PDZmk = 9344,
+  VFMADD132PDZmkz = 9345,
+  VFMADD132PDZr = 9346,
+  VFMADD132PDZrb = 9347,
+  VFMADD132PDZrbk = 9348,
+  VFMADD132PDZrbkz = 9349,
+  VFMADD132PDZrk = 9350,
+  VFMADD132PDZrkz = 9351,
+  VFMADD132PDm = 9352,
+  VFMADD132PDr = 9353,
+  VFMADD132PHZ128m = 9354,
+  VFMADD132PHZ128mb = 9355,
+  VFMADD132PHZ128mbk = 9356,
+  VFMADD132PHZ128mbkz = 9357,
+  VFMADD132PHZ128mk = 9358,
+  VFMADD132PHZ128mkz = 9359,
+  VFMADD132PHZ128r = 9360,
+  VFMADD132PHZ128rk = 9361,
+  VFMADD132PHZ128rkz = 9362,
+  VFMADD132PHZ256m = 9363,
+  VFMADD132PHZ256mb = 9364,
+  VFMADD132PHZ256mbk = 9365,
+  VFMADD132PHZ256mbkz = 9366,
+  VFMADD132PHZ256mk = 9367,
+  VFMADD132PHZ256mkz = 9368,
+  VFMADD132PHZ256r = 9369,
+  VFMADD132PHZ256rk = 9370,
+  VFMADD132PHZ256rkz = 9371,
+  VFMADD132PHZm = 9372,
+  VFMADD132PHZmb = 9373,
+  VFMADD132PHZmbk = 9374,
+  VFMADD132PHZmbkz = 9375,
+  VFMADD132PHZmk = 9376,
+  VFMADD132PHZmkz = 9377,
+  VFMADD132PHZr = 9378,
+  VFMADD132PHZrb = 9379,
+  VFMADD132PHZrbk = 9380,
+  VFMADD132PHZrbkz = 9381,
+  VFMADD132PHZrk = 9382,
+  VFMADD132PHZrkz = 9383,
+  VFMADD132PSYm = 9384,
+  VFMADD132PSYr = 9385,
+  VFMADD132PSZ128m = 9386,
+  VFMADD132PSZ128mb = 9387,
+  VFMADD132PSZ128mbk = 9388,
+  VFMADD132PSZ128mbkz = 9389,
+  VFMADD132PSZ128mk = 9390,
+  VFMADD132PSZ128mkz = 9391,
+  VFMADD132PSZ128r = 9392,
+  VFMADD132PSZ128rk = 9393,
+  VFMADD132PSZ128rkz = 9394,
+  VFMADD132PSZ256m = 9395,
+  VFMADD132PSZ256mb = 9396,
+  VFMADD132PSZ256mbk = 9397,
+  VFMADD132PSZ256mbkz = 9398,
+  VFMADD132PSZ256mk = 9399,
+  VFMADD132PSZ256mkz = 9400,
+  VFMADD132PSZ256r = 9401,
+  VFMADD132PSZ256rk = 9402,
+  VFMADD132PSZ256rkz = 9403,
+  VFMADD132PSZm = 9404,
+  VFMADD132PSZmb = 9405,
+  VFMADD132PSZmbk = 9406,
+  VFMADD132PSZmbkz = 9407,
+  VFMADD132PSZmk = 9408,
+  VFMADD132PSZmkz = 9409,
+  VFMADD132PSZr = 9410,
+  VFMADD132PSZrb = 9411,
+  VFMADD132PSZrbk = 9412,
+  VFMADD132PSZrbkz = 9413,
+  VFMADD132PSZrk = 9414,
+  VFMADD132PSZrkz = 9415,
+  VFMADD132PSm = 9416,
+  VFMADD132PSr = 9417,
+  VFMADD132SDZm = 9418,
+  VFMADD132SDZm_Int = 9419,
+  VFMADD132SDZmk_Int = 9420,
+  VFMADD132SDZmkz_Int = 9421,
+  VFMADD132SDZr = 9422,
+  VFMADD132SDZr_Int = 9423,
+  VFMADD132SDZrb = 9424,
+  VFMADD132SDZrb_Int = 9425,
+  VFMADD132SDZrbk_Int = 9426,
+  VFMADD132SDZrbkz_Int = 9427,
+  VFMADD132SDZrk_Int = 9428,
+  VFMADD132SDZrkz_Int = 9429,
+  VFMADD132SDm = 9430,
+  VFMADD132SDm_Int = 9431,
+  VFMADD132SDr = 9432,
+  VFMADD132SDr_Int = 9433,
+  VFMADD132SHZm = 9434,
+  VFMADD132SHZm_Int = 9435,
+  VFMADD132SHZmk_Int = 9436,
+  VFMADD132SHZmkz_Int = 9437,
+  VFMADD132SHZr = 9438,
+  VFMADD132SHZr_Int = 9439,
+  VFMADD132SHZrb = 9440,
+  VFMADD132SHZrb_Int = 9441,
+  VFMADD132SHZrbk_Int = 9442,
+  VFMADD132SHZrbkz_Int = 9443,
+  VFMADD132SHZrk_Int = 9444,
+  VFMADD132SHZrkz_Int = 9445,
+  VFMADD132SSZm = 9446,
+  VFMADD132SSZm_Int = 9447,
+  VFMADD132SSZmk_Int = 9448,
+  VFMADD132SSZmkz_Int = 9449,
+  VFMADD132SSZr = 9450,
+  VFMADD132SSZr_Int = 9451,
+  VFMADD132SSZrb = 9452,
+  VFMADD132SSZrb_Int = 9453,
+  VFMADD132SSZrbk_Int = 9454,
+  VFMADD132SSZrbkz_Int = 9455,
+  VFMADD132SSZrk_Int = 9456,
+  VFMADD132SSZrkz_Int = 9457,
+  VFMADD132SSm = 9458,
+  VFMADD132SSm_Int = 9459,
+  VFMADD132SSr = 9460,
+  VFMADD132SSr_Int = 9461,
+  VFMADD213BF16Z128m = 9462,
+  VFMADD213BF16Z128mb = 9463,
+  VFMADD213BF16Z128mbk = 9464,
+  VFMADD213BF16Z128mbkz = 9465,
+  VFMADD213BF16Z128mk = 9466,
+  VFMADD213BF16Z128mkz = 9467,
+  VFMADD213BF16Z128r = 9468,
+  VFMADD213BF16Z128rk = 9469,
+  VFMADD213BF16Z128rkz = 9470,
+  VFMADD213BF16Z256m = 9471,
+  VFMADD213BF16Z256mb = 9472,
+  VFMADD213BF16Z256mbk = 9473,
+  VFMADD213BF16Z256mbkz = 9474,
+  VFMADD213BF16Z256mk = 9475,
+  VFMADD213BF16Z256mkz = 9476,
+  VFMADD213BF16Z256r = 9477,
+  VFMADD213BF16Z256rk = 9478,
+  VFMADD213BF16Z256rkz = 9479,
+  VFMADD213BF16Zm = 9480,
+  VFMADD213BF16Zmb = 9481,
+  VFMADD213BF16Zmbk = 9482,
+  VFMADD213BF16Zmbkz = 9483,
+  VFMADD213BF16Zmk = 9484,
+  VFMADD213BF16Zmkz = 9485,
+  VFMADD213BF16Zr = 9486,
+  VFMADD213BF16Zrk = 9487,
+  VFMADD213BF16Zrkz = 9488,
+  VFMADD213PDYm = 9489,
+  VFMADD213PDYr = 9490,
+  VFMADD213PDZ128m = 9491,
+  VFMADD213PDZ128mb = 9492,
+  VFMADD213PDZ128mbk = 9493,
+  VFMADD213PDZ128mbkz = 9494,
+  VFMADD213PDZ128mk = 9495,
+  VFMADD213PDZ128mkz = 9496,
+  VFMADD213PDZ128r = 9497,
+  VFMADD213PDZ128rk = 9498,
+  VFMADD213PDZ128rkz = 9499,
+  VFMADD213PDZ256m = 9500,
+  VFMADD213PDZ256mb = 9501,
+  VFMADD213PDZ256mbk = 9502,
+  VFMADD213PDZ256mbkz = 9503,
+  VFMADD213PDZ256mk = 9504,
+  VFMADD213PDZ256mkz = 9505,
+  VFMADD213PDZ256r = 9506,
+  VFMADD213PDZ256rk = 9507,
+  VFMADD213PDZ256rkz = 9508,
+  VFMADD213PDZm = 9509,
+  VFMADD213PDZmb = 9510,
+  VFMADD213PDZmbk = 9511,
+  VFMADD213PDZmbkz = 9512,
+  VFMADD213PDZmk = 9513,
+  VFMADD213PDZmkz = 9514,
+  VFMADD213PDZr = 9515,
+  VFMADD213PDZrb = 9516,
+  VFMADD213PDZrbk = 9517,
+  VFMADD213PDZrbkz = 9518,
+  VFMADD213PDZrk = 9519,
+  VFMADD213PDZrkz = 9520,
+  VFMADD213PDm = 9521,
+  VFMADD213PDr = 9522,
+  VFMADD213PHZ128m = 9523,
+  VFMADD213PHZ128mb = 9524,
+  VFMADD213PHZ128mbk = 9525,
+  VFMADD213PHZ128mbkz = 9526,
+  VFMADD213PHZ128mk = 9527,
+  VFMADD213PHZ128mkz = 9528,
+  VFMADD213PHZ128r = 9529,
+  VFMADD213PHZ128rk = 9530,
+  VFMADD213PHZ128rkz = 9531,
+  VFMADD213PHZ256m = 9532,
+  VFMADD213PHZ256mb = 9533,
+  VFMADD213PHZ256mbk = 9534,
+  VFMADD213PHZ256mbkz = 9535,
+  VFMADD213PHZ256mk = 9536,
+  VFMADD213PHZ256mkz = 9537,
+  VFMADD213PHZ256r = 9538,
+  VFMADD213PHZ256rk = 9539,
+  VFMADD213PHZ256rkz = 9540,
+  VFMADD213PHZm = 9541,
+  VFMADD213PHZmb = 9542,
+  VFMADD213PHZmbk = 9543,
+  VFMADD213PHZmbkz = 9544,
+  VFMADD213PHZmk = 9545,
+  VFMADD213PHZmkz = 9546,
+  VFMADD213PHZr = 9547,
+  VFMADD213PHZrb = 9548,
+  VFMADD213PHZrbk = 9549,
+  VFMADD213PHZrbkz = 9550,
+  VFMADD213PHZrk = 9551,
+  VFMADD213PHZrkz = 9552,
+  VFMADD213PSYm = 9553,
+  VFMADD213PSYr = 9554,
+  VFMADD213PSZ128m = 9555,
+  VFMADD213PSZ128mb = 9556,
+  VFMADD213PSZ128mbk = 9557,
+  VFMADD213PSZ128mbkz = 9558,
+  VFMADD213PSZ128mk = 9559,
+  VFMADD213PSZ128mkz = 9560,
+  VFMADD213PSZ128r = 9561,
+  VFMADD213PSZ128rk = 9562,
+  VFMADD213PSZ128rkz = 9563,
+  VFMADD213PSZ256m = 9564,
+  VFMADD213PSZ256mb = 9565,
+  VFMADD213PSZ256mbk = 9566,
+  VFMADD213PSZ256mbkz = 9567,
+  VFMADD213PSZ256mk = 9568,
+  VFMADD213PSZ256mkz = 9569,
+  VFMADD213PSZ256r = 9570,
+  VFMADD213PSZ256rk = 9571,
+  VFMADD213PSZ256rkz = 9572,
+  VFMADD213PSZm = 9573,
+  VFMADD213PSZmb = 9574,
+  VFMADD213PSZmbk = 9575,
+  VFMADD213PSZmbkz = 9576,
+  VFMADD213PSZmk = 9577,
+  VFMADD213PSZmkz = 9578,
+  VFMADD213PSZr = 9579,
+  VFMADD213PSZrb = 9580,
+  VFMADD213PSZrbk = 9581,
+  VFMADD213PSZrbkz = 9582,
+  VFMADD213PSZrk = 9583,
+  VFMADD213PSZrkz = 9584,
+  VFMADD213PSm = 9585,
+  VFMADD213PSr = 9586,
+  VFMADD213SDZm = 9587,
+  VFMADD213SDZm_Int = 9588,
+  VFMADD213SDZmk_Int = 9589,
+  VFMADD213SDZmkz_Int = 9590,
+  VFMADD213SDZr = 9591,
+  VFMADD213SDZr_Int = 9592,
+  VFMADD213SDZrb = 9593,
+  VFMADD213SDZrb_Int = 9594,
+  VFMADD213SDZrbk_Int = 9595,
+  VFMADD213SDZrbkz_Int = 9596,
+  VFMADD213SDZrk_Int = 9597,
+  VFMADD213SDZrkz_Int = 9598,
+  VFMADD213SDm = 9599,
+  VFMADD213SDm_Int = 9600,
+  VFMADD213SDr = 9601,
+  VFMADD213SDr_Int = 9602,
+  VFMADD213SHZm = 9603,
+  VFMADD213SHZm_Int = 9604,
+  VFMADD213SHZmk_Int = 9605,
+  VFMADD213SHZmkz_Int = 9606,
+  VFMADD213SHZr = 9607,
+  VFMADD213SHZr_Int = 9608,
+  VFMADD213SHZrb = 9609,
+  VFMADD213SHZrb_Int = 9610,
+  VFMADD213SHZrbk_Int = 9611,
+  VFMADD213SHZrbkz_Int = 9612,
+  VFMADD213SHZrk_Int = 9613,
+  VFMADD213SHZrkz_Int = 9614,
+  VFMADD213SSZm = 9615,
+  VFMADD213SSZm_Int = 9616,
+  VFMADD213SSZmk_Int = 9617,
+  VFMADD213SSZmkz_Int = 9618,
+  VFMADD213SSZr = 9619,
+  VFMADD213SSZr_Int = 9620,
+  VFMADD213SSZrb = 9621,
+  VFMADD213SSZrb_Int = 9622,
+  VFMADD213SSZrbk_Int = 9623,
+  VFMADD213SSZrbkz_Int = 9624,
+  VFMADD213SSZrk_Int = 9625,
+  VFMADD213SSZrkz_Int = 9626,
+  VFMADD213SSm = 9627,
+  VFMADD213SSm_Int = 9628,
+  VFMADD213SSr = 9629,
+  VFMADD213SSr_Int = 9630,
+  VFMADD231BF16Z128m = 9631,
+  VFMADD231BF16Z128mb = 9632,
+  VFMADD231BF16Z128mbk = 9633,
+  VFMADD231BF16Z128mbkz = 9634,
+  VFMADD231BF16Z128mk = 9635,
+  VFMADD231BF16Z128mkz = 9636,
+  VFMADD231BF16Z128r = 9637,
+  VFMADD231BF16Z128rk = 9638,
+  VFMADD231BF16Z128rkz = 9639,
+  VFMADD231BF16Z256m = 9640,
+  VFMADD231BF16Z256mb = 9641,
+  VFMADD231BF16Z256mbk = 9642,
+  VFMADD231BF16Z256mbkz = 9643,
+  VFMADD231BF16Z256mk = 9644,
+  VFMADD231BF16Z256mkz = 9645,
+  VFMADD231BF16Z256r = 9646,
+  VFMADD231BF16Z256rk = 9647,
+  VFMADD231BF16Z256rkz = 9648,
+  VFMADD231BF16Zm = 9649,
+  VFMADD231BF16Zmb = 9650,
+  VFMADD231BF16Zmbk = 9651,
+  VFMADD231BF16Zmbkz = 9652,
+  VFMADD231BF16Zmk = 9653,
+  VFMADD231BF16Zmkz = 9654,
+  VFMADD231BF16Zr = 9655,
+  VFMADD231BF16Zrk = 9656,
+  VFMADD231BF16Zrkz = 9657,
+  VFMADD231PDYm = 9658,
+  VFMADD231PDYr = 9659,
+  VFMADD231PDZ128m = 9660,
+  VFMADD231PDZ128mb = 9661,
+  VFMADD231PDZ128mbk = 9662,
+  VFMADD231PDZ128mbkz = 9663,
+  VFMADD231PDZ128mk = 9664,
+  VFMADD231PDZ128mkz = 9665,
+  VFMADD231PDZ128r = 9666,
+  VFMADD231PDZ128rk = 9667,
+  VFMADD231PDZ128rkz = 9668,
+  VFMADD231PDZ256m = 9669,
+  VFMADD231PDZ256mb = 9670,
+  VFMADD231PDZ256mbk = 9671,
+  VFMADD231PDZ256mbkz = 9672,
+  VFMADD231PDZ256mk = 9673,
+  VFMADD231PDZ256mkz = 9674,
+  VFMADD231PDZ256r = 9675,
+  VFMADD231PDZ256rk = 9676,
+  VFMADD231PDZ256rkz = 9677,
+  VFMADD231PDZm = 9678,
+  VFMADD231PDZmb = 9679,
+  VFMADD231PDZmbk = 9680,
+  VFMADD231PDZmbkz = 9681,
+  VFMADD231PDZmk = 9682,
+  VFMADD231PDZmkz = 9683,
+  VFMADD231PDZr = 9684,
+  VFMADD231PDZrb = 9685,
+  VFMADD231PDZrbk = 9686,
+  VFMADD231PDZrbkz = 9687,
+  VFMADD231PDZrk = 9688,
+  VFMADD231PDZrkz = 9689,
+  VFMADD231PDm = 9690,
+  VFMADD231PDr = 9691,
+  VFMADD231PHZ128m = 9692,
+  VFMADD231PHZ128mb = 9693,
+  VFMADD231PHZ128mbk = 9694,
+  VFMADD231PHZ128mbkz = 9695,
+  VFMADD231PHZ128mk = 9696,
+  VFMADD231PHZ128mkz = 9697,
+  VFMADD231PHZ128r = 9698,
+  VFMADD231PHZ128rk = 9699,
+  VFMADD231PHZ128rkz = 9700,
+  VFMADD231PHZ256m = 9701,
+  VFMADD231PHZ256mb = 9702,
+  VFMADD231PHZ256mbk = 9703,
+  VFMADD231PHZ256mbkz = 9704,
+  VFMADD231PHZ256mk = 9705,
+  VFMADD231PHZ256mkz = 9706,
+  VFMADD231PHZ256r = 9707,
+  VFMADD231PHZ256rk = 9708,
+  VFMADD231PHZ256rkz = 9709,
+  VFMADD231PHZm = 9710,
+  VFMADD231PHZmb = 9711,
+  VFMADD231PHZmbk = 9712,
+  VFMADD231PHZmbkz = 9713,
+  VFMADD231PHZmk = 9714,
+  VFMADD231PHZmkz = 9715,
+  VFMADD231PHZr = 9716,
+  VFMADD231PHZrb = 9717,
+  VFMADD231PHZrbk = 9718,
+  VFMADD231PHZrbkz = 9719,
+  VFMADD231PHZrk = 9720,
+  VFMADD231PHZrkz = 9721,
+  VFMADD231PSYm = 9722,
+  VFMADD231PSYr = 9723,
+  VFMADD231PSZ128m = 9724,
+  VFMADD231PSZ128mb = 9725,
+  VFMADD231PSZ128mbk = 9726,
+  VFMADD231PSZ128mbkz = 9727,
+  VFMADD231PSZ128mk = 9728,
+  VFMADD231PSZ128mkz = 9729,
+  VFMADD231PSZ128r = 9730,
+  VFMADD231PSZ128rk = 9731,
+  VFMADD231PSZ128rkz = 9732,
+  VFMADD231PSZ256m = 9733,
+  VFMADD231PSZ256mb = 9734,
+  VFMADD231PSZ256mbk = 9735,
+  VFMADD231PSZ256mbkz = 9736,
+  VFMADD231PSZ256mk = 9737,
+  VFMADD231PSZ256mkz = 9738,
+  VFMADD231PSZ256r = 9739,
+  VFMADD231PSZ256rk = 9740,
+  VFMADD231PSZ256rkz = 9741,
+  VFMADD231PSZm = 9742,
+  VFMADD231PSZmb = 9743,
+  VFMADD231PSZmbk = 9744,
+  VFMADD231PSZmbkz = 9745,
+  VFMADD231PSZmk = 9746,
+  VFMADD231PSZmkz = 9747,
+  VFMADD231PSZr = 9748,
+  VFMADD231PSZrb = 9749,
+  VFMADD231PSZrbk = 9750,
+  VFMADD231PSZrbkz = 9751,
+  VFMADD231PSZrk = 9752,
+  VFMADD231PSZrkz = 9753,
+  VFMADD231PSm = 9754,
+  VFMADD231PSr = 9755,
+  VFMADD231SDZm = 9756,
+  VFMADD231SDZm_Int = 9757,
+  VFMADD231SDZmk_Int = 9758,
+  VFMADD231SDZmkz_Int = 9759,
+  VFMADD231SDZr = 9760,
+  VFMADD231SDZr_Int = 9761,
+  VFMADD231SDZrb = 9762,
+  VFMADD231SDZrb_Int = 9763,
+  VFMADD231SDZrbk_Int = 9764,
+  VFMADD231SDZrbkz_Int = 9765,
+  VFMADD231SDZrk_Int = 9766,
+  VFMADD231SDZrkz_Int = 9767,
+  VFMADD231SDm = 9768,
+  VFMADD231SDm_Int = 9769,
+  VFMADD231SDr = 9770,
+  VFMADD231SDr_Int = 9771,
+  VFMADD231SHZm = 9772,
+  VFMADD231SHZm_Int = 9773,
+  VFMADD231SHZmk_Int = 9774,
+  VFMADD231SHZmkz_Int = 9775,
+  VFMADD231SHZr = 9776,
+  VFMADD231SHZr_Int = 9777,
+  VFMADD231SHZrb = 9778,
+  VFMADD231SHZrb_Int = 9779,
+  VFMADD231SHZrbk_Int = 9780,
+  VFMADD231SHZrbkz_Int = 9781,
+  VFMADD231SHZrk_Int = 9782,
+  VFMADD231SHZrkz_Int = 9783,
+  VFMADD231SSZm = 9784,
+  VFMADD231SSZm_Int = 9785,
+  VFMADD231SSZmk_Int = 9786,
+  VFMADD231SSZmkz_Int = 9787,
+  VFMADD231SSZr = 9788,
+  VFMADD231SSZr_Int = 9789,
+  VFMADD231SSZrb = 9790,
+  VFMADD231SSZrb_Int = 9791,
+  VFMADD231SSZrbk_Int = 9792,
+  VFMADD231SSZrbkz_Int = 9793,
+  VFMADD231SSZrk_Int = 9794,
+  VFMADD231SSZrkz_Int = 9795,
+  VFMADD231SSm = 9796,
+  VFMADD231SSm_Int = 9797,
+  VFMADD231SSr = 9798,
+  VFMADD231SSr_Int = 9799,
+  VFMADDCPHZ128m = 9800,
+  VFMADDCPHZ128mb = 9801,
+  VFMADDCPHZ128mbk = 9802,
+  VFMADDCPHZ128mbkz = 9803,
+  VFMADDCPHZ128mk = 9804,
+  VFMADDCPHZ128mkz = 9805,
+  VFMADDCPHZ128r = 9806,
+  VFMADDCPHZ128rk = 9807,
+  VFMADDCPHZ128rkz = 9808,
+  VFMADDCPHZ256m = 9809,
+  VFMADDCPHZ256mb = 9810,
+  VFMADDCPHZ256mbk = 9811,
+  VFMADDCPHZ256mbkz = 9812,
+  VFMADDCPHZ256mk = 9813,
+  VFMADDCPHZ256mkz = 9814,
+  VFMADDCPHZ256r = 9815,
+  VFMADDCPHZ256rk = 9816,
+  VFMADDCPHZ256rkz = 9817,
+  VFMADDCPHZm = 9818,
+  VFMADDCPHZmb = 9819,
+  VFMADDCPHZmbk = 9820,
+  VFMADDCPHZmbkz = 9821,
+  VFMADDCPHZmk = 9822,
+  VFMADDCPHZmkz = 9823,
+  VFMADDCPHZr = 9824,
+  VFMADDCPHZrb = 9825,
+  VFMADDCPHZrbk = 9826,
+  VFMADDCPHZrbkz = 9827,
+  VFMADDCPHZrk = 9828,
+  VFMADDCPHZrkz = 9829,
+  VFMADDCSHZm = 9830,
+  VFMADDCSHZmk = 9831,
+  VFMADDCSHZmkz = 9832,
+  VFMADDCSHZr = 9833,
+  VFMADDCSHZrb = 9834,
+  VFMADDCSHZrbk = 9835,
+  VFMADDCSHZrbkz = 9836,
+  VFMADDCSHZrk = 9837,
+  VFMADDCSHZrkz = 9838,
+  VFMADDPD4Ymr = 9839,
+  VFMADDPD4Yrm = 9840,
+  VFMADDPD4Yrr = 9841,
+  VFMADDPD4Yrr_REV = 9842,
+  VFMADDPD4mr = 9843,
+  VFMADDPD4rm = 9844,
+  VFMADDPD4rr = 9845,
+  VFMADDPD4rr_REV = 9846,
+  VFMADDPS4Ymr = 9847,
+  VFMADDPS4Yrm = 9848,
+  VFMADDPS4Yrr = 9849,
+  VFMADDPS4Yrr_REV = 9850,
+  VFMADDPS4mr = 9851,
+  VFMADDPS4rm = 9852,
+  VFMADDPS4rr = 9853,
+  VFMADDPS4rr_REV = 9854,
+  VFMADDSD4mr = 9855,
+  VFMADDSD4mr_Int = 9856,
+  VFMADDSD4rm = 9857,
+  VFMADDSD4rm_Int = 9858,
+  VFMADDSD4rr = 9859,
+  VFMADDSD4rr_Int = 9860,
+  VFMADDSD4rr_Int_REV = 9861,
+  VFMADDSD4rr_REV = 9862,
+  VFMADDSS4mr = 9863,
+  VFMADDSS4mr_Int = 9864,
+  VFMADDSS4rm = 9865,
+  VFMADDSS4rm_Int = 9866,
+  VFMADDSS4rr = 9867,
+  VFMADDSS4rr_Int = 9868,
+  VFMADDSS4rr_Int_REV = 9869,
+  VFMADDSS4rr_REV = 9870,
+  VFMADDSUB132PDYm = 9871,
+  VFMADDSUB132PDYr = 9872,
+  VFMADDSUB132PDZ128m = 9873,
+  VFMADDSUB132PDZ128mb = 9874,
+  VFMADDSUB132PDZ128mbk = 9875,
+  VFMADDSUB132PDZ128mbkz = 9876,
+  VFMADDSUB132PDZ128mk = 9877,
+  VFMADDSUB132PDZ128mkz = 9878,
+  VFMADDSUB132PDZ128r = 9879,
+  VFMADDSUB132PDZ128rk = 9880,
+  VFMADDSUB132PDZ128rkz = 9881,
+  VFMADDSUB132PDZ256m = 9882,
+  VFMADDSUB132PDZ256mb = 9883,
+  VFMADDSUB132PDZ256mbk = 9884,
+  VFMADDSUB132PDZ256mbkz = 9885,
+  VFMADDSUB132PDZ256mk = 9886,
+  VFMADDSUB132PDZ256mkz = 9887,
+  VFMADDSUB132PDZ256r = 9888,
+  VFMADDSUB132PDZ256rk = 9889,
+  VFMADDSUB132PDZ256rkz = 9890,
+  VFMADDSUB132PDZm = 9891,
+  VFMADDSUB132PDZmb = 9892,
+  VFMADDSUB132PDZmbk = 9893,
+  VFMADDSUB132PDZmbkz = 9894,
+  VFMADDSUB132PDZmk = 9895,
+  VFMADDSUB132PDZmkz = 9896,
+  VFMADDSUB132PDZr = 9897,
+  VFMADDSUB132PDZrb = 9898,
+  VFMADDSUB132PDZrbk = 9899,
+  VFMADDSUB132PDZrbkz = 9900,
+  VFMADDSUB132PDZrk = 9901,
+  VFMADDSUB132PDZrkz = 9902,
+  VFMADDSUB132PDm = 9903,
+  VFMADDSUB132PDr = 9904,
+  VFMADDSUB132PHZ128m = 9905,
+  VFMADDSUB132PHZ128mb = 9906,
+  VFMADDSUB132PHZ128mbk = 9907,
+  VFMADDSUB132PHZ128mbkz = 9908,
+  VFMADDSUB132PHZ128mk = 9909,
+  VFMADDSUB132PHZ128mkz = 9910,
+  VFMADDSUB132PHZ128r = 9911,
+  VFMADDSUB132PHZ128rk = 9912,
+  VFMADDSUB132PHZ128rkz = 9913,
+  VFMADDSUB132PHZ256m = 9914,
+  VFMADDSUB132PHZ256mb = 9915,
+  VFMADDSUB132PHZ256mbk = 9916,
+  VFMADDSUB132PHZ256mbkz = 9917,
+  VFMADDSUB132PHZ256mk = 9918,
+  VFMADDSUB132PHZ256mkz = 9919,
+  VFMADDSUB132PHZ256r = 9920,
+  VFMADDSUB132PHZ256rk = 9921,
+  VFMADDSUB132PHZ256rkz = 9922,
+  VFMADDSUB132PHZm = 9923,
+  VFMADDSUB132PHZmb = 9924,
+  VFMADDSUB132PHZmbk = 9925,
+  VFMADDSUB132PHZmbkz = 9926,
+  VFMADDSUB132PHZmk = 9927,
+  VFMADDSUB132PHZmkz = 9928,
+  VFMADDSUB132PHZr = 9929,
+  VFMADDSUB132PHZrb = 9930,
+  VFMADDSUB132PHZrbk = 9931,
+  VFMADDSUB132PHZrbkz = 9932,
+  VFMADDSUB132PHZrk = 9933,
+  VFMADDSUB132PHZrkz = 9934,
+  VFMADDSUB132PSYm = 9935,
+  VFMADDSUB132PSYr = 9936,
+  VFMADDSUB132PSZ128m = 9937,
+  VFMADDSUB132PSZ128mb = 9938,
+  VFMADDSUB132PSZ128mbk = 9939,
+  VFMADDSUB132PSZ128mbkz = 9940,
+  VFMADDSUB132PSZ128mk = 9941,
+  VFMADDSUB132PSZ128mkz = 9942,
+  VFMADDSUB132PSZ128r = 9943,
+  VFMADDSUB132PSZ128rk = 9944,
+  VFMADDSUB132PSZ128rkz = 9945,
+  VFMADDSUB132PSZ256m = 9946,
+  VFMADDSUB132PSZ256mb = 9947,
+  VFMADDSUB132PSZ256mbk = 9948,
+  VFMADDSUB132PSZ256mbkz = 9949,
+  VFMADDSUB132PSZ256mk = 9950,
+  VFMADDSUB132PSZ256mkz = 9951,
+  VFMADDSUB132PSZ256r = 9952,
+  VFMADDSUB132PSZ256rk = 9953,
+  VFMADDSUB132PSZ256rkz = 9954,
+  VFMADDSUB132PSZm = 9955,
+  VFMADDSUB132PSZmb = 9956,
+  VFMADDSUB132PSZmbk = 9957,
+  VFMADDSUB132PSZmbkz = 9958,
+  VFMADDSUB132PSZmk = 9959,
+  VFMADDSUB132PSZmkz = 9960,
+  VFMADDSUB132PSZr = 9961,
+  VFMADDSUB132PSZrb = 9962,
+  VFMADDSUB132PSZrbk = 9963,
+  VFMADDSUB132PSZrbkz = 9964,
+  VFMADDSUB132PSZrk = 9965,
+  VFMADDSUB132PSZrkz = 9966,
+  VFMADDSUB132PSm = 9967,
+  VFMADDSUB132PSr = 9968,
+  VFMADDSUB213PDYm = 9969,
+  VFMADDSUB213PDYr = 9970,
+  VFMADDSUB213PDZ128m = 9971,
+  VFMADDSUB213PDZ128mb = 9972,
+  VFMADDSUB213PDZ128mbk = 9973,
+  VFMADDSUB213PDZ128mbkz = 9974,
+  VFMADDSUB213PDZ128mk = 9975,
+  VFMADDSUB213PDZ128mkz = 9976,
+  VFMADDSUB213PDZ128r = 9977,
+  VFMADDSUB213PDZ128rk = 9978,
+  VFMADDSUB213PDZ128rkz = 9979,
+  VFMADDSUB213PDZ256m = 9980,
+  VFMADDSUB213PDZ256mb = 9981,
+  VFMADDSUB213PDZ256mbk = 9982,
+  VFMADDSUB213PDZ256mbkz = 9983,
+  VFMADDSUB213PDZ256mk = 9984,
+  VFMADDSUB213PDZ256mkz = 9985,
+  VFMADDSUB213PDZ256r = 9986,
+  VFMADDSUB213PDZ256rk = 9987,
+  VFMADDSUB213PDZ256rkz = 9988,
+  VFMADDSUB213PDZm = 9989,
+  VFMADDSUB213PDZmb = 9990,
+  VFMADDSUB213PDZmbk = 9991,
+  VFMADDSUB213PDZmbkz = 9992,
+  VFMADDSUB213PDZmk = 9993,
+  VFMADDSUB213PDZmkz = 9994,
+  VFMADDSUB213PDZr = 9995,
+  VFMADDSUB213PDZrb = 9996,
+  VFMADDSUB213PDZrbk = 9997,
+  VFMADDSUB213PDZrbkz = 9998,
+  VFMADDSUB213PDZrk = 9999,
+  VFMADDSUB213PDZrkz = 10000,
+  VFMADDSUB213PDm = 10001,
+  VFMADDSUB213PDr = 10002,
+  VFMADDSUB213PHZ128m = 10003,
+  VFMADDSUB213PHZ128mb = 10004,
+  VFMADDSUB213PHZ128mbk = 10005,
+  VFMADDSUB213PHZ128mbkz = 10006,
+  VFMADDSUB213PHZ128mk = 10007,
+  VFMADDSUB213PHZ128mkz = 10008,
+  VFMADDSUB213PHZ128r = 10009,
+  VFMADDSUB213PHZ128rk = 10010,
+  VFMADDSUB213PHZ128rkz = 10011,
+  VFMADDSUB213PHZ256m = 10012,
+  VFMADDSUB213PHZ256mb = 10013,
+  VFMADDSUB213PHZ256mbk = 10014,
+  VFMADDSUB213PHZ256mbkz = 10015,
+  VFMADDSUB213PHZ256mk = 10016,
+  VFMADDSUB213PHZ256mkz = 10017,
+  VFMADDSUB213PHZ256r = 10018,
+  VFMADDSUB213PHZ256rk = 10019,
+  VFMADDSUB213PHZ256rkz = 10020,
+  VFMADDSUB213PHZm = 10021,
+  VFMADDSUB213PHZmb = 10022,
+  VFMADDSUB213PHZmbk = 10023,
+  VFMADDSUB213PHZmbkz = 10024,
+  VFMADDSUB213PHZmk = 10025,
+  VFMADDSUB213PHZmkz = 10026,
+  VFMADDSUB213PHZr = 10027,
+  VFMADDSUB213PHZrb = 10028,
+  VFMADDSUB213PHZrbk = 10029,
+  VFMADDSUB213PHZrbkz = 10030,
+  VFMADDSUB213PHZrk = 10031,
+  VFMADDSUB213PHZrkz = 10032,
+  VFMADDSUB213PSYm = 10033,
+  VFMADDSUB213PSYr = 10034,
+  VFMADDSUB213PSZ128m = 10035,
+  VFMADDSUB213PSZ128mb = 10036,
+  VFMADDSUB213PSZ128mbk = 10037,
+  VFMADDSUB213PSZ128mbkz = 10038,
+  VFMADDSUB213PSZ128mk = 10039,
+  VFMADDSUB213PSZ128mkz = 10040,
+  VFMADDSUB213PSZ128r = 10041,
+  VFMADDSUB213PSZ128rk = 10042,
+  VFMADDSUB213PSZ128rkz = 10043,
+  VFMADDSUB213PSZ256m = 10044,
+  VFMADDSUB213PSZ256mb = 10045,
+  VFMADDSUB213PSZ256mbk = 10046,
+  VFMADDSUB213PSZ256mbkz = 10047,
+  VFMADDSUB213PSZ256mk = 10048,
+  VFMADDSUB213PSZ256mkz = 10049,
+  VFMADDSUB213PSZ256r = 10050,
+  VFMADDSUB213PSZ256rk = 10051,
+  VFMADDSUB213PSZ256rkz = 10052,
+  VFMADDSUB213PSZm = 10053,
+  VFMADDSUB213PSZmb = 10054,
+  VFMADDSUB213PSZmbk = 10055,
+  VFMADDSUB213PSZmbkz = 10056,
+  VFMADDSUB213PSZmk = 10057,
+  VFMADDSUB213PSZmkz = 10058,
+  VFMADDSUB213PSZr = 10059,
+  VFMADDSUB213PSZrb = 10060,
+  VFMADDSUB213PSZrbk = 10061,
+  VFMADDSUB213PSZrbkz = 10062,
+  VFMADDSUB213PSZrk = 10063,
+  VFMADDSUB213PSZrkz = 10064,
+  VFMADDSUB213PSm = 10065,
+  VFMADDSUB213PSr = 10066,
+  VFMADDSUB231PDYm = 10067,
+  VFMADDSUB231PDYr = 10068,
+  VFMADDSUB231PDZ128m = 10069,
+  VFMADDSUB231PDZ128mb = 10070,
+  VFMADDSUB231PDZ128mbk = 10071,
+  VFMADDSUB231PDZ128mbkz = 10072,
+  VFMADDSUB231PDZ128mk = 10073,
+  VFMADDSUB231PDZ128mkz = 10074,
+  VFMADDSUB231PDZ128r = 10075,
+  VFMADDSUB231PDZ128rk = 10076,
+  VFMADDSUB231PDZ128rkz = 10077,
+  VFMADDSUB231PDZ256m = 10078,
+  VFMADDSUB231PDZ256mb = 10079,
+  VFMADDSUB231PDZ256mbk = 10080,
+  VFMADDSUB231PDZ256mbkz = 10081,
+  VFMADDSUB231PDZ256mk = 10082,
+  VFMADDSUB231PDZ256mkz = 10083,
+  VFMADDSUB231PDZ256r = 10084,
+  VFMADDSUB231PDZ256rk = 10085,
+  VFMADDSUB231PDZ256rkz = 10086,
+  VFMADDSUB231PDZm = 10087,
+  VFMADDSUB231PDZmb = 10088,
+  VFMADDSUB231PDZmbk = 10089,
+  VFMADDSUB231PDZmbkz = 10090,
+  VFMADDSUB231PDZmk = 10091,
+  VFMADDSUB231PDZmkz = 10092,
+  VFMADDSUB231PDZr = 10093,
+  VFMADDSUB231PDZrb = 10094,
+  VFMADDSUB231PDZrbk = 10095,
+  VFMADDSUB231PDZrbkz = 10096,
+  VFMADDSUB231PDZrk = 10097,
+  VFMADDSUB231PDZrkz = 10098,
+  VFMADDSUB231PDm = 10099,
+  VFMADDSUB231PDr = 10100,
+  VFMADDSUB231PHZ128m = 10101,
+  VFMADDSUB231PHZ128mb = 10102,
+  VFMADDSUB231PHZ128mbk = 10103,
+  VFMADDSUB231PHZ128mbkz = 10104,
+  VFMADDSUB231PHZ128mk = 10105,
+  VFMADDSUB231PHZ128mkz = 10106,
+  VFMADDSUB231PHZ128r = 10107,
+  VFMADDSUB231PHZ128rk = 10108,
+  VFMADDSUB231PHZ128rkz = 10109,
+  VFMADDSUB231PHZ256m = 10110,
+  VFMADDSUB231PHZ256mb = 10111,
+  VFMADDSUB231PHZ256mbk = 10112,
+  VFMADDSUB231PHZ256mbkz = 10113,
+  VFMADDSUB231PHZ256mk = 10114,
+  VFMADDSUB231PHZ256mkz = 10115,
+  VFMADDSUB231PHZ256r = 10116,
+  VFMADDSUB231PHZ256rk = 10117,
+  VFMADDSUB231PHZ256rkz = 10118,
+  VFMADDSUB231PHZm = 10119,
+  VFMADDSUB231PHZmb = 10120,
+  VFMADDSUB231PHZmbk = 10121,
+  VFMADDSUB231PHZmbkz = 10122,
+  VFMADDSUB231PHZmk = 10123,
+  VFMADDSUB231PHZmkz = 10124,
+  VFMADDSUB231PHZr = 10125,
+  VFMADDSUB231PHZrb = 10126,
+  VFMADDSUB231PHZrbk = 10127,
+  VFMADDSUB231PHZrbkz = 10128,
+  VFMADDSUB231PHZrk = 10129,
+  VFMADDSUB231PHZrkz = 10130,
+  VFMADDSUB231PSYm = 10131,
+  VFMADDSUB231PSYr = 10132,
+  VFMADDSUB231PSZ128m = 10133,
+  VFMADDSUB231PSZ128mb = 10134,
+  VFMADDSUB231PSZ128mbk = 10135,
+  VFMADDSUB231PSZ128mbkz = 10136,
+  VFMADDSUB231PSZ128mk = 10137,
+  VFMADDSUB231PSZ128mkz = 10138,
+  VFMADDSUB231PSZ128r = 10139,
+  VFMADDSUB231PSZ128rk = 10140,
+  VFMADDSUB231PSZ128rkz = 10141,
+  VFMADDSUB231PSZ256m = 10142,
+  VFMADDSUB231PSZ256mb = 10143,
+  VFMADDSUB231PSZ256mbk = 10144,
+  VFMADDSUB231PSZ256mbkz = 10145,
+  VFMADDSUB231PSZ256mk = 10146,
+  VFMADDSUB231PSZ256mkz = 10147,
+  VFMADDSUB231PSZ256r = 10148,
+  VFMADDSUB231PSZ256rk = 10149,
+  VFMADDSUB231PSZ256rkz = 10150,
+  VFMADDSUB231PSZm = 10151,
+  VFMADDSUB231PSZmb = 10152,
+  VFMADDSUB231PSZmbk = 10153,
+  VFMADDSUB231PSZmbkz = 10154,
+  VFMADDSUB231PSZmk = 10155,
+  VFMADDSUB231PSZmkz = 10156,
+  VFMADDSUB231PSZr = 10157,
+  VFMADDSUB231PSZrb = 10158,
+  VFMADDSUB231PSZrbk = 10159,
+  VFMADDSUB231PSZrbkz = 10160,
+  VFMADDSUB231PSZrk = 10161,
+  VFMADDSUB231PSZrkz = 10162,
+  VFMADDSUB231PSm = 10163,
+  VFMADDSUB231PSr = 10164,
+  VFMADDSUBPD4Ymr = 10165,
+  VFMADDSUBPD4Yrm = 10166,
+  VFMADDSUBPD4Yrr = 10167,
+  VFMADDSUBPD4Yrr_REV = 10168,
+  VFMADDSUBPD4mr = 10169,
+  VFMADDSUBPD4rm = 10170,
+  VFMADDSUBPD4rr = 10171,
+  VFMADDSUBPD4rr_REV = 10172,
+  VFMADDSUBPS4Ymr = 10173,
+  VFMADDSUBPS4Yrm = 10174,
+  VFMADDSUBPS4Yrr = 10175,
+  VFMADDSUBPS4Yrr_REV = 10176,
+  VFMADDSUBPS4mr = 10177,
+  VFMADDSUBPS4rm = 10178,
+  VFMADDSUBPS4rr = 10179,
+  VFMADDSUBPS4rr_REV = 10180,
+  VFMSUB132BF16Z128m = 10181,
+  VFMSUB132BF16Z128mb = 10182,
+  VFMSUB132BF16Z128mbk = 10183,
+  VFMSUB132BF16Z128mbkz = 10184,
+  VFMSUB132BF16Z128mk = 10185,
+  VFMSUB132BF16Z128mkz = 10186,
+  VFMSUB132BF16Z128r = 10187,
+  VFMSUB132BF16Z128rk = 10188,
+  VFMSUB132BF16Z128rkz = 10189,
+  VFMSUB132BF16Z256m = 10190,
+  VFMSUB132BF16Z256mb = 10191,
+  VFMSUB132BF16Z256mbk = 10192,
+  VFMSUB132BF16Z256mbkz = 10193,
+  VFMSUB132BF16Z256mk = 10194,
+  VFMSUB132BF16Z256mkz = 10195,
+  VFMSUB132BF16Z256r = 10196,
+  VFMSUB132BF16Z256rk = 10197,
+  VFMSUB132BF16Z256rkz = 10198,
+  VFMSUB132BF16Zm = 10199,
+  VFMSUB132BF16Zmb = 10200,
+  VFMSUB132BF16Zmbk = 10201,
+  VFMSUB132BF16Zmbkz = 10202,
+  VFMSUB132BF16Zmk = 10203,
+  VFMSUB132BF16Zmkz = 10204,
+  VFMSUB132BF16Zr = 10205,
+  VFMSUB132BF16Zrk = 10206,
+  VFMSUB132BF16Zrkz = 10207,
+  VFMSUB132PDYm = 10208,
+  VFMSUB132PDYr = 10209,
+  VFMSUB132PDZ128m = 10210,
+  VFMSUB132PDZ128mb = 10211,
+  VFMSUB132PDZ128mbk = 10212,
+  VFMSUB132PDZ128mbkz = 10213,
+  VFMSUB132PDZ128mk = 10214,
+  VFMSUB132PDZ128mkz = 10215,
+  VFMSUB132PDZ128r = 10216,
+  VFMSUB132PDZ128rk = 10217,
+  VFMSUB132PDZ128rkz = 10218,
+  VFMSUB132PDZ256m = 10219,
+  VFMSUB132PDZ256mb = 10220,
+  VFMSUB132PDZ256mbk = 10221,
+  VFMSUB132PDZ256mbkz = 10222,
+  VFMSUB132PDZ256mk = 10223,
+  VFMSUB132PDZ256mkz = 10224,
+  VFMSUB132PDZ256r = 10225,
+  VFMSUB132PDZ256rk = 10226,
+  VFMSUB132PDZ256rkz = 10227,
+  VFMSUB132PDZm = 10228,
+  VFMSUB132PDZmb = 10229,
+  VFMSUB132PDZmbk = 10230,
+  VFMSUB132PDZmbkz = 10231,
+  VFMSUB132PDZmk = 10232,
+  VFMSUB132PDZmkz = 10233,
+  VFMSUB132PDZr = 10234,
+  VFMSUB132PDZrb = 10235,
+  VFMSUB132PDZrbk = 10236,
+  VFMSUB132PDZrbkz = 10237,
+  VFMSUB132PDZrk = 10238,
+  VFMSUB132PDZrkz = 10239,
+  VFMSUB132PDm = 10240,
+  VFMSUB132PDr = 10241,
+  VFMSUB132PHZ128m = 10242,
+  VFMSUB132PHZ128mb = 10243,
+  VFMSUB132PHZ128mbk = 10244,
+  VFMSUB132PHZ128mbkz = 10245,
+  VFMSUB132PHZ128mk = 10246,
+  VFMSUB132PHZ128mkz = 10247,
+  VFMSUB132PHZ128r = 10248,
+  VFMSUB132PHZ128rk = 10249,
+  VFMSUB132PHZ128rkz = 10250,
+  VFMSUB132PHZ256m = 10251,
+  VFMSUB132PHZ256mb = 10252,
+  VFMSUB132PHZ256mbk = 10253,
+  VFMSUB132PHZ256mbkz = 10254,
+  VFMSUB132PHZ256mk = 10255,
+  VFMSUB132PHZ256mkz = 10256,
+  VFMSUB132PHZ256r = 10257,
+  VFMSUB132PHZ256rk = 10258,
+  VFMSUB132PHZ256rkz = 10259,
+  VFMSUB132PHZm = 10260,
+  VFMSUB132PHZmb = 10261,
+  VFMSUB132PHZmbk = 10262,
+  VFMSUB132PHZmbkz = 10263,
+  VFMSUB132PHZmk = 10264,
+  VFMSUB132PHZmkz = 10265,
+  VFMSUB132PHZr = 10266,
+  VFMSUB132PHZrb = 10267,
+  VFMSUB132PHZrbk = 10268,
+  VFMSUB132PHZrbkz = 10269,
+  VFMSUB132PHZrk = 10270,
+  VFMSUB132PHZrkz = 10271,
+  VFMSUB132PSYm = 10272,
+  VFMSUB132PSYr = 10273,
+  VFMSUB132PSZ128m = 10274,
+  VFMSUB132PSZ128mb = 10275,
+  VFMSUB132PSZ128mbk = 10276,
+  VFMSUB132PSZ128mbkz = 10277,
+  VFMSUB132PSZ128mk = 10278,
+  VFMSUB132PSZ128mkz = 10279,
+  VFMSUB132PSZ128r = 10280,
+  VFMSUB132PSZ128rk = 10281,
+  VFMSUB132PSZ128rkz = 10282,
+  VFMSUB132PSZ256m = 10283,
+  VFMSUB132PSZ256mb = 10284,
+  VFMSUB132PSZ256mbk = 10285,
+  VFMSUB132PSZ256mbkz = 10286,
+  VFMSUB132PSZ256mk = 10287,
+  VFMSUB132PSZ256mkz = 10288,
+  VFMSUB132PSZ256r = 10289,
+  VFMSUB132PSZ256rk = 10290,
+  VFMSUB132PSZ256rkz = 10291,
+  VFMSUB132PSZm = 10292,
+  VFMSUB132PSZmb = 10293,
+  VFMSUB132PSZmbk = 10294,
+  VFMSUB132PSZmbkz = 10295,
+  VFMSUB132PSZmk = 10296,
+  VFMSUB132PSZmkz = 10297,
+  VFMSUB132PSZr = 10298,
+  VFMSUB132PSZrb = 10299,
+  VFMSUB132PSZrbk = 10300,
+  VFMSUB132PSZrbkz = 10301,
+  VFMSUB132PSZrk = 10302,
+  VFMSUB132PSZrkz = 10303,
+  VFMSUB132PSm = 10304,
+  VFMSUB132PSr = 10305,
+  VFMSUB132SDZm = 10306,
+  VFMSUB132SDZm_Int = 10307,
+  VFMSUB132SDZmk_Int = 10308,
+  VFMSUB132SDZmkz_Int = 10309,
+  VFMSUB132SDZr = 10310,
+  VFMSUB132SDZr_Int = 10311,
+  VFMSUB132SDZrb = 10312,
+  VFMSUB132SDZrb_Int = 10313,
+  VFMSUB132SDZrbk_Int = 10314,
+  VFMSUB132SDZrbkz_Int = 10315,
+  VFMSUB132SDZrk_Int = 10316,
+  VFMSUB132SDZrkz_Int = 10317,
+  VFMSUB132SDm = 10318,
+  VFMSUB132SDm_Int = 10319,
+  VFMSUB132SDr = 10320,
+  VFMSUB132SDr_Int = 10321,
+  VFMSUB132SHZm = 10322,
+  VFMSUB132SHZm_Int = 10323,
+  VFMSUB132SHZmk_Int = 10324,
+  VFMSUB132SHZmkz_Int = 10325,
+  VFMSUB132SHZr = 10326,
+  VFMSUB132SHZr_Int = 10327,
+  VFMSUB132SHZrb = 10328,
+  VFMSUB132SHZrb_Int = 10329,
+  VFMSUB132SHZrbk_Int = 10330,
+  VFMSUB132SHZrbkz_Int = 10331,
+  VFMSUB132SHZrk_Int = 10332,
+  VFMSUB132SHZrkz_Int = 10333,
+  VFMSUB132SSZm = 10334,
+  VFMSUB132SSZm_Int = 10335,
+  VFMSUB132SSZmk_Int = 10336,
+  VFMSUB132SSZmkz_Int = 10337,
+  VFMSUB132SSZr = 10338,
+  VFMSUB132SSZr_Int = 10339,
+  VFMSUB132SSZrb = 10340,
+  VFMSUB132SSZrb_Int = 10341,
+  VFMSUB132SSZrbk_Int = 10342,
+  VFMSUB132SSZrbkz_Int = 10343,
+  VFMSUB132SSZrk_Int = 10344,
+  VFMSUB132SSZrkz_Int = 10345,
+  VFMSUB132SSm = 10346,
+  VFMSUB132SSm_Int = 10347,
+  VFMSUB132SSr = 10348,
+  VFMSUB132SSr_Int = 10349,
+  VFMSUB213BF16Z128m = 10350,
+  VFMSUB213BF16Z128mb = 10351,
+  VFMSUB213BF16Z128mbk = 10352,
+  VFMSUB213BF16Z128mbkz = 10353,
+  VFMSUB213BF16Z128mk = 10354,
+  VFMSUB213BF16Z128mkz = 10355,
+  VFMSUB213BF16Z128r = 10356,
+  VFMSUB213BF16Z128rk = 10357,
+  VFMSUB213BF16Z128rkz = 10358,
+  VFMSUB213BF16Z256m = 10359,
+  VFMSUB213BF16Z256mb = 10360,
+  VFMSUB213BF16Z256mbk = 10361,
+  VFMSUB213BF16Z256mbkz = 10362,
+  VFMSUB213BF16Z256mk = 10363,
+  VFMSUB213BF16Z256mkz = 10364,
+  VFMSUB213BF16Z256r = 10365,
+  VFMSUB213BF16Z256rk = 10366,
+  VFMSUB213BF16Z256rkz = 10367,
+  VFMSUB213BF16Zm = 10368,
+  VFMSUB213BF16Zmb = 10369,
+  VFMSUB213BF16Zmbk = 10370,
+  VFMSUB213BF16Zmbkz = 10371,
+  VFMSUB213BF16Zmk = 10372,
+  VFMSUB213BF16Zmkz = 10373,
+  VFMSUB213BF16Zr = 10374,
+  VFMSUB213BF16Zrk = 10375,
+  VFMSUB213BF16Zrkz = 10376,
+  VFMSUB213PDYm = 10377,
+  VFMSUB213PDYr = 10378,
+  VFMSUB213PDZ128m = 10379,
+  VFMSUB213PDZ128mb = 10380,
+  VFMSUB213PDZ128mbk = 10381,
+  VFMSUB213PDZ128mbkz = 10382,
+  VFMSUB213PDZ128mk = 10383,
+  VFMSUB213PDZ128mkz = 10384,
+  VFMSUB213PDZ128r = 10385,
+  VFMSUB213PDZ128rk = 10386,
+  VFMSUB213PDZ128rkz = 10387,
+  VFMSUB213PDZ256m = 10388,
+  VFMSUB213PDZ256mb = 10389,
+  VFMSUB213PDZ256mbk = 10390,
+  VFMSUB213PDZ256mbkz = 10391,
+  VFMSUB213PDZ256mk = 10392,
+  VFMSUB213PDZ256mkz = 10393,
+  VFMSUB213PDZ256r = 10394,
+  VFMSUB213PDZ256rk = 10395,
+  VFMSUB213PDZ256rkz = 10396,
+  VFMSUB213PDZm = 10397,
+  VFMSUB213PDZmb = 10398,
+  VFMSUB213PDZmbk = 10399,
+  VFMSUB213PDZmbkz = 10400,
+  VFMSUB213PDZmk = 10401,
+  VFMSUB213PDZmkz = 10402,
+  VFMSUB213PDZr = 10403,
+  VFMSUB213PDZrb = 10404,
+  VFMSUB213PDZrbk = 10405,
+  VFMSUB213PDZrbkz = 10406,
+  VFMSUB213PDZrk = 10407,
+  VFMSUB213PDZrkz = 10408,
+  VFMSUB213PDm = 10409,
+  VFMSUB213PDr = 10410,
+  VFMSUB213PHZ128m = 10411,
+  VFMSUB213PHZ128mb = 10412,
+  VFMSUB213PHZ128mbk = 10413,
+  VFMSUB213PHZ128mbkz = 10414,
+  VFMSUB213PHZ128mk = 10415,
+  VFMSUB213PHZ128mkz = 10416,
+  VFMSUB213PHZ128r = 10417,
+  VFMSUB213PHZ128rk = 10418,
+  VFMSUB213PHZ128rkz = 10419,
+  VFMSUB213PHZ256m = 10420,
+  VFMSUB213PHZ256mb = 10421,
+  VFMSUB213PHZ256mbk = 10422,
+  VFMSUB213PHZ256mbkz = 10423,
+  VFMSUB213PHZ256mk = 10424,
+  VFMSUB213PHZ256mkz = 10425,
+  VFMSUB213PHZ256r = 10426,
+  VFMSUB213PHZ256rk = 10427,
+  VFMSUB213PHZ256rkz = 10428,
+  VFMSUB213PHZm = 10429,
+  VFMSUB213PHZmb = 10430,
+  VFMSUB213PHZmbk = 10431,
+  VFMSUB213PHZmbkz = 10432,
+  VFMSUB213PHZmk = 10433,
+  VFMSUB213PHZmkz = 10434,
+  VFMSUB213PHZr = 10435,
+  VFMSUB213PHZrb = 10436,
+  VFMSUB213PHZrbk = 10437,
+  VFMSUB213PHZrbkz = 10438,
+  VFMSUB213PHZrk = 10439,
+  VFMSUB213PHZrkz = 10440,
+  VFMSUB213PSYm = 10441,
+  VFMSUB213PSYr = 10442,
+  VFMSUB213PSZ128m = 10443,
+  VFMSUB213PSZ128mb = 10444,
+  VFMSUB213PSZ128mbk = 10445,
+  VFMSUB213PSZ128mbkz = 10446,
+  VFMSUB213PSZ128mk = 10447,
+  VFMSUB213PSZ128mkz = 10448,
+  VFMSUB213PSZ128r = 10449,
+  VFMSUB213PSZ128rk = 10450,
+  VFMSUB213PSZ128rkz = 10451,
+  VFMSUB213PSZ256m = 10452,
+  VFMSUB213PSZ256mb = 10453,
+  VFMSUB213PSZ256mbk = 10454,
+  VFMSUB213PSZ256mbkz = 10455,
+  VFMSUB213PSZ256mk = 10456,
+  VFMSUB213PSZ256mkz = 10457,
+  VFMSUB213PSZ256r = 10458,
+  VFMSUB213PSZ256rk = 10459,
+  VFMSUB213PSZ256rkz = 10460,
+  VFMSUB213PSZm = 10461,
+  VFMSUB213PSZmb = 10462,
+  VFMSUB213PSZmbk = 10463,
+  VFMSUB213PSZmbkz = 10464,
+  VFMSUB213PSZmk = 10465,
+  VFMSUB213PSZmkz = 10466,
+  VFMSUB213PSZr = 10467,
+  VFMSUB213PSZrb = 10468,
+  VFMSUB213PSZrbk = 10469,
+  VFMSUB213PSZrbkz = 10470,
+  VFMSUB213PSZrk = 10471,
+  VFMSUB213PSZrkz = 10472,
+  VFMSUB213PSm = 10473,
+  VFMSUB213PSr = 10474,
+  VFMSUB213SDZm = 10475,
+  VFMSUB213SDZm_Int = 10476,
+  VFMSUB213SDZmk_Int = 10477,
+  VFMSUB213SDZmkz_Int = 10478,
+  VFMSUB213SDZr = 10479,
+  VFMSUB213SDZr_Int = 10480,
+  VFMSUB213SDZrb = 10481,
+  VFMSUB213SDZrb_Int = 10482,
+  VFMSUB213SDZrbk_Int = 10483,
+  VFMSUB213SDZrbkz_Int = 10484,
+  VFMSUB213SDZrk_Int = 10485,
+  VFMSUB213SDZrkz_Int = 10486,
+  VFMSUB213SDm = 10487,
+  VFMSUB213SDm_Int = 10488,
+  VFMSUB213SDr = 10489,
+  VFMSUB213SDr_Int = 10490,
+  VFMSUB213SHZm = 10491,
+  VFMSUB213SHZm_Int = 10492,
+  VFMSUB213SHZmk_Int = 10493,
+  VFMSUB213SHZmkz_Int = 10494,
+  VFMSUB213SHZr = 10495,
+  VFMSUB213SHZr_Int = 10496,
+  VFMSUB213SHZrb = 10497,
+  VFMSUB213SHZrb_Int = 10498,
+  VFMSUB213SHZrbk_Int = 10499,
+  VFMSUB213SHZrbkz_Int = 10500,
+  VFMSUB213SHZrk_Int = 10501,
+  VFMSUB213SHZrkz_Int = 10502,
+  VFMSUB213SSZm = 10503,
+  VFMSUB213SSZm_Int = 10504,
+  VFMSUB213SSZmk_Int = 10505,
+  VFMSUB213SSZmkz_Int = 10506,
+  VFMSUB213SSZr = 10507,
+  VFMSUB213SSZr_Int = 10508,
+  VFMSUB213SSZrb = 10509,
+  VFMSUB213SSZrb_Int = 10510,
+  VFMSUB213SSZrbk_Int = 10511,
+  VFMSUB213SSZrbkz_Int = 10512,
+  VFMSUB213SSZrk_Int = 10513,
+  VFMSUB213SSZrkz_Int = 10514,
+  VFMSUB213SSm = 10515,
+  VFMSUB213SSm_Int = 10516,
+  VFMSUB213SSr = 10517,
+  VFMSUB213SSr_Int = 10518,
+  VFMSUB231BF16Z128m = 10519,
+  VFMSUB231BF16Z128mb = 10520,
+  VFMSUB231BF16Z128mbk = 10521,
+  VFMSUB231BF16Z128mbkz = 10522,
+  VFMSUB231BF16Z128mk = 10523,
+  VFMSUB231BF16Z128mkz = 10524,
+  VFMSUB231BF16Z128r = 10525,
+  VFMSUB231BF16Z128rk = 10526,
+  VFMSUB231BF16Z128rkz = 10527,
+  VFMSUB231BF16Z256m = 10528,
+  VFMSUB231BF16Z256mb = 10529,
+  VFMSUB231BF16Z256mbk = 10530,
+  VFMSUB231BF16Z256mbkz = 10531,
+  VFMSUB231BF16Z256mk = 10532,
+  VFMSUB231BF16Z256mkz = 10533,
+  VFMSUB231BF16Z256r = 10534,
+  VFMSUB231BF16Z256rk = 10535,
+  VFMSUB231BF16Z256rkz = 10536,
+  VFMSUB231BF16Zm = 10537,
+  VFMSUB231BF16Zmb = 10538,
+  VFMSUB231BF16Zmbk = 10539,
+  VFMSUB231BF16Zmbkz = 10540,
+  VFMSUB231BF16Zmk = 10541,
+  VFMSUB231BF16Zmkz = 10542,
+  VFMSUB231BF16Zr = 10543,
+  VFMSUB231BF16Zrk = 10544,
+  VFMSUB231BF16Zrkz = 10545,
+  VFMSUB231PDYm = 10546,
+  VFMSUB231PDYr = 10547,
+  VFMSUB231PDZ128m = 10548,
+  VFMSUB231PDZ128mb = 10549,
+  VFMSUB231PDZ128mbk = 10550,
+  VFMSUB231PDZ128mbkz = 10551,
+  VFMSUB231PDZ128mk = 10552,
+  VFMSUB231PDZ128mkz = 10553,
+  VFMSUB231PDZ128r = 10554,
+  VFMSUB231PDZ128rk = 10555,
+  VFMSUB231PDZ128rkz = 10556,
+  VFMSUB231PDZ256m = 10557,
+  VFMSUB231PDZ256mb = 10558,
+  VFMSUB231PDZ256mbk = 10559,
+  VFMSUB231PDZ256mbkz = 10560,
+  VFMSUB231PDZ256mk = 10561,
+  VFMSUB231PDZ256mkz = 10562,
+  VFMSUB231PDZ256r = 10563,
+  VFMSUB231PDZ256rk = 10564,
+  VFMSUB231PDZ256rkz = 10565,
+  VFMSUB231PDZm = 10566,
+  VFMSUB231PDZmb = 10567,
+  VFMSUB231PDZmbk = 10568,
+  VFMSUB231PDZmbkz = 10569,
+  VFMSUB231PDZmk = 10570,
+  VFMSUB231PDZmkz = 10571,
+  VFMSUB231PDZr = 10572,
+  VFMSUB231PDZrb = 10573,
+  VFMSUB231PDZrbk = 10574,
+  VFMSUB231PDZrbkz = 10575,
+  VFMSUB231PDZrk = 10576,
+  VFMSUB231PDZrkz = 10577,
+  VFMSUB231PDm = 10578,
+  VFMSUB231PDr = 10579,
+  VFMSUB231PHZ128m = 10580,
+  VFMSUB231PHZ128mb = 10581,
+  VFMSUB231PHZ128mbk = 10582,
+  VFMSUB231PHZ128mbkz = 10583,
+  VFMSUB231PHZ128mk = 10584,
+  VFMSUB231PHZ128mkz = 10585,
+  VFMSUB231PHZ128r = 10586,
+  VFMSUB231PHZ128rk = 10587,
+  VFMSUB231PHZ128rkz = 10588,
+  VFMSUB231PHZ256m = 10589,
+  VFMSUB231PHZ256mb = 10590,
+  VFMSUB231PHZ256mbk = 10591,
+  VFMSUB231PHZ256mbkz = 10592,
+  VFMSUB231PHZ256mk = 10593,
+  VFMSUB231PHZ256mkz = 10594,
+  VFMSUB231PHZ256r = 10595,
+  VFMSUB231PHZ256rk = 10596,
+  VFMSUB231PHZ256rkz = 10597,
+  VFMSUB231PHZm = 10598,
+  VFMSUB231PHZmb = 10599,
+  VFMSUB231PHZmbk = 10600,
+  VFMSUB231PHZmbkz = 10601,
+  VFMSUB231PHZmk = 10602,
+  VFMSUB231PHZmkz = 10603,
+  VFMSUB231PHZr = 10604,
+  VFMSUB231PHZrb = 10605,
+  VFMSUB231PHZrbk = 10606,
+  VFMSUB231PHZrbkz = 10607,
+  VFMSUB231PHZrk = 10608,
+  VFMSUB231PHZrkz = 10609,
+  VFMSUB231PSYm = 10610,
+  VFMSUB231PSYr = 10611,
+  VFMSUB231PSZ128m = 10612,
+  VFMSUB231PSZ128mb = 10613,
+  VFMSUB231PSZ128mbk = 10614,
+  VFMSUB231PSZ128mbkz = 10615,
+  VFMSUB231PSZ128mk = 10616,
+  VFMSUB231PSZ128mkz = 10617,
+  VFMSUB231PSZ128r = 10618,
+  VFMSUB231PSZ128rk = 10619,
+  VFMSUB231PSZ128rkz = 10620,
+  VFMSUB231PSZ256m = 10621,
+  VFMSUB231PSZ256mb = 10622,
+  VFMSUB231PSZ256mbk = 10623,
+  VFMSUB231PSZ256mbkz = 10624,
+  VFMSUB231PSZ256mk = 10625,
+  VFMSUB231PSZ256mkz = 10626,
+  VFMSUB231PSZ256r = 10627,
+  VFMSUB231PSZ256rk = 10628,
+  VFMSUB231PSZ256rkz = 10629,
+  VFMSUB231PSZm = 10630,
+  VFMSUB231PSZmb = 10631,
+  VFMSUB231PSZmbk = 10632,
+  VFMSUB231PSZmbkz = 10633,
+  VFMSUB231PSZmk = 10634,
+  VFMSUB231PSZmkz = 10635,
+  VFMSUB231PSZr = 10636,
+  VFMSUB231PSZrb = 10637,
+  VFMSUB231PSZrbk = 10638,
+  VFMSUB231PSZrbkz = 10639,
+  VFMSUB231PSZrk = 10640,
+  VFMSUB231PSZrkz = 10641,
+  VFMSUB231PSm = 10642,
+  VFMSUB231PSr = 10643,
+  VFMSUB231SDZm = 10644,
+  VFMSUB231SDZm_Int = 10645,
+  VFMSUB231SDZmk_Int = 10646,
+  VFMSUB231SDZmkz_Int = 10647,
+  VFMSUB231SDZr = 10648,
+  VFMSUB231SDZr_Int = 10649,
+  VFMSUB231SDZrb = 10650,
+  VFMSUB231SDZrb_Int = 10651,
+  VFMSUB231SDZrbk_Int = 10652,
+  VFMSUB231SDZrbkz_Int = 10653,
+  VFMSUB231SDZrk_Int = 10654,
+  VFMSUB231SDZrkz_Int = 10655,
+  VFMSUB231SDm = 10656,
+  VFMSUB231SDm_Int = 10657,
+  VFMSUB231SDr = 10658,
+  VFMSUB231SDr_Int = 10659,
+  VFMSUB231SHZm = 10660,
+  VFMSUB231SHZm_Int = 10661,
+  VFMSUB231SHZmk_Int = 10662,
+  VFMSUB231SHZmkz_Int = 10663,
+  VFMSUB231SHZr = 10664,
+  VFMSUB231SHZr_Int = 10665,
+  VFMSUB231SHZrb = 10666,
+  VFMSUB231SHZrb_Int = 10667,
+  VFMSUB231SHZrbk_Int = 10668,
+  VFMSUB231SHZrbkz_Int = 10669,
+  VFMSUB231SHZrk_Int = 10670,
+  VFMSUB231SHZrkz_Int = 10671,
+  VFMSUB231SSZm = 10672,
+  VFMSUB231SSZm_Int = 10673,
+  VFMSUB231SSZmk_Int = 10674,
+  VFMSUB231SSZmkz_Int = 10675,
+  VFMSUB231SSZr = 10676,
+  VFMSUB231SSZr_Int = 10677,
+  VFMSUB231SSZrb = 10678,
+  VFMSUB231SSZrb_Int = 10679,
+  VFMSUB231SSZrbk_Int = 10680,
+  VFMSUB231SSZrbkz_Int = 10681,
+  VFMSUB231SSZrk_Int = 10682,
+  VFMSUB231SSZrkz_Int = 10683,
+  VFMSUB231SSm = 10684,
+  VFMSUB231SSm_Int = 10685,
+  VFMSUB231SSr = 10686,
+  VFMSUB231SSr_Int = 10687,
+  VFMSUBADD132PDYm = 10688,
+  VFMSUBADD132PDYr = 10689,
+  VFMSUBADD132PDZ128m = 10690,
+  VFMSUBADD132PDZ128mb = 10691,
+  VFMSUBADD132PDZ128mbk = 10692,
+  VFMSUBADD132PDZ128mbkz = 10693,
+  VFMSUBADD132PDZ128mk = 10694,
+  VFMSUBADD132PDZ128mkz = 10695,
+  VFMSUBADD132PDZ128r = 10696,
+  VFMSUBADD132PDZ128rk = 10697,
+  VFMSUBADD132PDZ128rkz = 10698,
+  VFMSUBADD132PDZ256m = 10699,
+  VFMSUBADD132PDZ256mb = 10700,
+  VFMSUBADD132PDZ256mbk = 10701,
+  VFMSUBADD132PDZ256mbkz = 10702,
+  VFMSUBADD132PDZ256mk = 10703,
+  VFMSUBADD132PDZ256mkz = 10704,
+  VFMSUBADD132PDZ256r = 10705,
+  VFMSUBADD132PDZ256rk = 10706,
+  VFMSUBADD132PDZ256rkz = 10707,
+  VFMSUBADD132PDZm = 10708,
+  VFMSUBADD132PDZmb = 10709,
+  VFMSUBADD132PDZmbk = 10710,
+  VFMSUBADD132PDZmbkz = 10711,
+  VFMSUBADD132PDZmk = 10712,
+  VFMSUBADD132PDZmkz = 10713,
+  VFMSUBADD132PDZr = 10714,
+  VFMSUBADD132PDZrb = 10715,
+  VFMSUBADD132PDZrbk = 10716,
+  VFMSUBADD132PDZrbkz = 10717,
+  VFMSUBADD132PDZrk = 10718,
+  VFMSUBADD132PDZrkz = 10719,
+  VFMSUBADD132PDm = 10720,
+  VFMSUBADD132PDr = 10721,
+  VFMSUBADD132PHZ128m = 10722,
+  VFMSUBADD132PHZ128mb = 10723,
+  VFMSUBADD132PHZ128mbk = 10724,
+  VFMSUBADD132PHZ128mbkz = 10725,
+  VFMSUBADD132PHZ128mk = 10726,
+  VFMSUBADD132PHZ128mkz = 10727,
+  VFMSUBADD132PHZ128r = 10728,
+  VFMSUBADD132PHZ128rk = 10729,
+  VFMSUBADD132PHZ128rkz = 10730,
+  VFMSUBADD132PHZ256m = 10731,
+  VFMSUBADD132PHZ256mb = 10732,
+  VFMSUBADD132PHZ256mbk = 10733,
+  VFMSUBADD132PHZ256mbkz = 10734,
+  VFMSUBADD132PHZ256mk = 10735,
+  VFMSUBADD132PHZ256mkz = 10736,
+  VFMSUBADD132PHZ256r = 10737,
+  VFMSUBADD132PHZ256rk = 10738,
+  VFMSUBADD132PHZ256rkz = 10739,
+  VFMSUBADD132PHZm = 10740,
+  VFMSUBADD132PHZmb = 10741,
+  VFMSUBADD132PHZmbk = 10742,
+  VFMSUBADD132PHZmbkz = 10743,
+  VFMSUBADD132PHZmk = 10744,
+  VFMSUBADD132PHZmkz = 10745,
+  VFMSUBADD132PHZr = 10746,
+  VFMSUBADD132PHZrb = 10747,
+  VFMSUBADD132PHZrbk = 10748,
+  VFMSUBADD132PHZrbkz = 10749,
+  VFMSUBADD132PHZrk = 10750,
+  VFMSUBADD132PHZrkz = 10751,
+  VFMSUBADD132PSYm = 10752,
+  VFMSUBADD132PSYr = 10753,
+  VFMSUBADD132PSZ128m = 10754,
+  VFMSUBADD132PSZ128mb = 10755,
+  VFMSUBADD132PSZ128mbk = 10756,
+  VFMSUBADD132PSZ128mbkz = 10757,
+  VFMSUBADD132PSZ128mk = 10758,
+  VFMSUBADD132PSZ128mkz = 10759,
+  VFMSUBADD132PSZ128r = 10760,
+  VFMSUBADD132PSZ128rk = 10761,
+  VFMSUBADD132PSZ128rkz = 10762,
+  VFMSUBADD132PSZ256m = 10763,
+  VFMSUBADD132PSZ256mb = 10764,
+  VFMSUBADD132PSZ256mbk = 10765,
+  VFMSUBADD132PSZ256mbkz = 10766,
+  VFMSUBADD132PSZ256mk = 10767,
+  VFMSUBADD132PSZ256mkz = 10768,
+  VFMSUBADD132PSZ256r = 10769,
+  VFMSUBADD132PSZ256rk = 10770,
+  VFMSUBADD132PSZ256rkz = 10771,
+  VFMSUBADD132PSZm = 10772,
+  VFMSUBADD132PSZmb = 10773,
+  VFMSUBADD132PSZmbk = 10774,
+  VFMSUBADD132PSZmbkz = 10775,
+  VFMSUBADD132PSZmk = 10776,
+  VFMSUBADD132PSZmkz = 10777,
+  VFMSUBADD132PSZr = 10778,
+  VFMSUBADD132PSZrb = 10779,
+  VFMSUBADD132PSZrbk = 10780,
+  VFMSUBADD132PSZrbkz = 10781,
+  VFMSUBADD132PSZrk = 10782,
+  VFMSUBADD132PSZrkz = 10783,
+  VFMSUBADD132PSm = 10784,
+  VFMSUBADD132PSr = 10785,
+  VFMSUBADD213PDYm = 10786,
+  VFMSUBADD213PDYr = 10787,
+  VFMSUBADD213PDZ128m = 10788,
+  VFMSUBADD213PDZ128mb = 10789,
+  VFMSUBADD213PDZ128mbk = 10790,
+  VFMSUBADD213PDZ128mbkz = 10791,
+  VFMSUBADD213PDZ128mk = 10792,
+  VFMSUBADD213PDZ128mkz = 10793,
+  VFMSUBADD213PDZ128r = 10794,
+  VFMSUBADD213PDZ128rk = 10795,
+  VFMSUBADD213PDZ128rkz = 10796,
+  VFMSUBADD213PDZ256m = 10797,
+  VFMSUBADD213PDZ256mb = 10798,
+  VFMSUBADD213PDZ256mbk = 10799,
+  VFMSUBADD213PDZ256mbkz = 10800,
+  VFMSUBADD213PDZ256mk = 10801,
+  VFMSUBADD213PDZ256mkz = 10802,
+  VFMSUBADD213PDZ256r = 10803,
+  VFMSUBADD213PDZ256rk = 10804,
+  VFMSUBADD213PDZ256rkz = 10805,
+  VFMSUBADD213PDZm = 10806,
+  VFMSUBADD213PDZmb = 10807,
+  VFMSUBADD213PDZmbk = 10808,
+  VFMSUBADD213PDZmbkz = 10809,
+  VFMSUBADD213PDZmk = 10810,
+  VFMSUBADD213PDZmkz = 10811,
+  VFMSUBADD213PDZr = 10812,
+  VFMSUBADD213PDZrb = 10813,
+  VFMSUBADD213PDZrbk = 10814,
+  VFMSUBADD213PDZrbkz = 10815,
+  VFMSUBADD213PDZrk = 10816,
+  VFMSUBADD213PDZrkz = 10817,
+  VFMSUBADD213PDm = 10818,
+  VFMSUBADD213PDr = 10819,
+  VFMSUBADD213PHZ128m = 10820,
+  VFMSUBADD213PHZ128mb = 10821,
+  VFMSUBADD213PHZ128mbk = 10822,
+  VFMSUBADD213PHZ128mbkz = 10823,
+  VFMSUBADD213PHZ128mk = 10824,
+  VFMSUBADD213PHZ128mkz = 10825,
+  VFMSUBADD213PHZ128r = 10826,
+  VFMSUBADD213PHZ128rk = 10827,
+  VFMSUBADD213PHZ128rkz = 10828,
+  VFMSUBADD213PHZ256m = 10829,
+  VFMSUBADD213PHZ256mb = 10830,
+  VFMSUBADD213PHZ256mbk = 10831,
+  VFMSUBADD213PHZ256mbkz = 10832,
+  VFMSUBADD213PHZ256mk = 10833,
+  VFMSUBADD213PHZ256mkz = 10834,
+  VFMSUBADD213PHZ256r = 10835,
+  VFMSUBADD213PHZ256rk = 10836,
+  VFMSUBADD213PHZ256rkz = 10837,
+  VFMSUBADD213PHZm = 10838,
+  VFMSUBADD213PHZmb = 10839,
+  VFMSUBADD213PHZmbk = 10840,
+  VFMSUBADD213PHZmbkz = 10841,
+  VFMSUBADD213PHZmk = 10842,
+  VFMSUBADD213PHZmkz = 10843,
+  VFMSUBADD213PHZr = 10844,
+  VFMSUBADD213PHZrb = 10845,
+  VFMSUBADD213PHZrbk = 10846,
+  VFMSUBADD213PHZrbkz = 10847,
+  VFMSUBADD213PHZrk = 10848,
+  VFMSUBADD213PHZrkz = 10849,
+  VFMSUBADD213PSYm = 10850,
+  VFMSUBADD213PSYr = 10851,
+  VFMSUBADD213PSZ128m = 10852,
+  VFMSUBADD213PSZ128mb = 10853,
+  VFMSUBADD213PSZ128mbk = 10854,
+  VFMSUBADD213PSZ128mbkz = 10855,
+  VFMSUBADD213PSZ128mk = 10856,
+  VFMSUBADD213PSZ128mkz = 10857,
+  VFMSUBADD213PSZ128r = 10858,
+  VFMSUBADD213PSZ128rk = 10859,
+  VFMSUBADD213PSZ128rkz = 10860,
+  VFMSUBADD213PSZ256m = 10861,
+  VFMSUBADD213PSZ256mb = 10862,
+  VFMSUBADD213PSZ256mbk = 10863,
+  VFMSUBADD213PSZ256mbkz = 10864,
+  VFMSUBADD213PSZ256mk = 10865,
+  VFMSUBADD213PSZ256mkz = 10866,
+  VFMSUBADD213PSZ256r = 10867,
+  VFMSUBADD213PSZ256rk = 10868,
+  VFMSUBADD213PSZ256rkz = 10869,
+  VFMSUBADD213PSZm = 10870,
+  VFMSUBADD213PSZmb = 10871,
+  VFMSUBADD213PSZmbk = 10872,
+  VFMSUBADD213PSZmbkz = 10873,
+  VFMSUBADD213PSZmk = 10874,
+  VFMSUBADD213PSZmkz = 10875,
+  VFMSUBADD213PSZr = 10876,
+  VFMSUBADD213PSZrb = 10877,
+  VFMSUBADD213PSZrbk = 10878,
+  VFMSUBADD213PSZrbkz = 10879,
+  VFMSUBADD213PSZrk = 10880,
+  VFMSUBADD213PSZrkz = 10881,
+  VFMSUBADD213PSm = 10882,
+  VFMSUBADD213PSr = 10883,
+  VFMSUBADD231PDYm = 10884,
+  VFMSUBADD231PDYr = 10885,
+  VFMSUBADD231PDZ128m = 10886,
+  VFMSUBADD231PDZ128mb = 10887,
+  VFMSUBADD231PDZ128mbk = 10888,
+  VFMSUBADD231PDZ128mbkz = 10889,
+  VFMSUBADD231PDZ128mk = 10890,
+  VFMSUBADD231PDZ128mkz = 10891,
+  VFMSUBADD231PDZ128r = 10892,
+  VFMSUBADD231PDZ128rk = 10893,
+  VFMSUBADD231PDZ128rkz = 10894,
+  VFMSUBADD231PDZ256m = 10895,
+  VFMSUBADD231PDZ256mb = 10896,
+  VFMSUBADD231PDZ256mbk = 10897,
+  VFMSUBADD231PDZ256mbkz = 10898,
+  VFMSUBADD231PDZ256mk = 10899,
+  VFMSUBADD231PDZ256mkz = 10900,
+  VFMSUBADD231PDZ256r = 10901,
+  VFMSUBADD231PDZ256rk = 10902,
+  VFMSUBADD231PDZ256rkz = 10903,
+  VFMSUBADD231PDZm = 10904,
+  VFMSUBADD231PDZmb = 10905,
+  VFMSUBADD231PDZmbk = 10906,
+  VFMSUBADD231PDZmbkz = 10907,
+  VFMSUBADD231PDZmk = 10908,
+  VFMSUBADD231PDZmkz = 10909,
+  VFMSUBADD231PDZr = 10910,
+  VFMSUBADD231PDZrb = 10911,
+  VFMSUBADD231PDZrbk = 10912,
+  VFMSUBADD231PDZrbkz = 10913,
+  VFMSUBADD231PDZrk = 10914,
+  VFMSUBADD231PDZrkz = 10915,
+  VFMSUBADD231PDm = 10916,
+  VFMSUBADD231PDr = 10917,
+  VFMSUBADD231PHZ128m = 10918,
+  VFMSUBADD231PHZ128mb = 10919,
+  VFMSUBADD231PHZ128mbk = 10920,
+  VFMSUBADD231PHZ128mbkz = 10921,
+  VFMSUBADD231PHZ128mk = 10922,
+  VFMSUBADD231PHZ128mkz = 10923,
+  VFMSUBADD231PHZ128r = 10924,
+  VFMSUBADD231PHZ128rk = 10925,
+  VFMSUBADD231PHZ128rkz = 10926,
+  VFMSUBADD231PHZ256m = 10927,
+  VFMSUBADD231PHZ256mb = 10928,
+  VFMSUBADD231PHZ256mbk = 10929,
+  VFMSUBADD231PHZ256mbkz = 10930,
+  VFMSUBADD231PHZ256mk = 10931,
+  VFMSUBADD231PHZ256mkz = 10932,
+  VFMSUBADD231PHZ256r = 10933,
+  VFMSUBADD231PHZ256rk = 10934,
+  VFMSUBADD231PHZ256rkz = 10935,
+  VFMSUBADD231PHZm = 10936,
+  VFMSUBADD231PHZmb = 10937,
+  VFMSUBADD231PHZmbk = 10938,
+  VFMSUBADD231PHZmbkz = 10939,
+  VFMSUBADD231PHZmk = 10940,
+  VFMSUBADD231PHZmkz = 10941,
+  VFMSUBADD231PHZr = 10942,
+  VFMSUBADD231PHZrb = 10943,
+  VFMSUBADD231PHZrbk = 10944,
+  VFMSUBADD231PHZrbkz = 10945,
+  VFMSUBADD231PHZrk = 10946,
+  VFMSUBADD231PHZrkz = 10947,
+  VFMSUBADD231PSYm = 10948,
+  VFMSUBADD231PSYr = 10949,
+  VFMSUBADD231PSZ128m = 10950,
+  VFMSUBADD231PSZ128mb = 10951,
+  VFMSUBADD231PSZ128mbk = 10952,
+  VFMSUBADD231PSZ128mbkz = 10953,
+  VFMSUBADD231PSZ128mk = 10954,
+  VFMSUBADD231PSZ128mkz = 10955,
+  VFMSUBADD231PSZ128r = 10956,
+  VFMSUBADD231PSZ128rk = 10957,
+  VFMSUBADD231PSZ128rkz = 10958,
+  VFMSUBADD231PSZ256m = 10959,
+  VFMSUBADD231PSZ256mb = 10960,
+  VFMSUBADD231PSZ256mbk = 10961,
+  VFMSUBADD231PSZ256mbkz = 10962,
+  VFMSUBADD231PSZ256mk = 10963,
+  VFMSUBADD231PSZ256mkz = 10964,
+  VFMSUBADD231PSZ256r = 10965,
+  VFMSUBADD231PSZ256rk = 10966,
+  VFMSUBADD231PSZ256rkz = 10967,
+  VFMSUBADD231PSZm = 10968,
+  VFMSUBADD231PSZmb = 10969,
+  VFMSUBADD231PSZmbk = 10970,
+  VFMSUBADD231PSZmbkz = 10971,
+  VFMSUBADD231PSZmk = 10972,
+  VFMSUBADD231PSZmkz = 10973,
+  VFMSUBADD231PSZr = 10974,
+  VFMSUBADD231PSZrb = 10975,
+  VFMSUBADD231PSZrbk = 10976,
+  VFMSUBADD231PSZrbkz = 10977,
+  VFMSUBADD231PSZrk = 10978,
+  VFMSUBADD231PSZrkz = 10979,
+  VFMSUBADD231PSm = 10980,
+  VFMSUBADD231PSr = 10981,
+  VFMSUBADDPD4Ymr = 10982,
+  VFMSUBADDPD4Yrm = 10983,
+  VFMSUBADDPD4Yrr = 10984,
+  VFMSUBADDPD4Yrr_REV = 10985,
+  VFMSUBADDPD4mr = 10986,
+  VFMSUBADDPD4rm = 10987,
+  VFMSUBADDPD4rr = 10988,
+  VFMSUBADDPD4rr_REV = 10989,
+  VFMSUBADDPS4Ymr = 10990,
+  VFMSUBADDPS4Yrm = 10991,
+  VFMSUBADDPS4Yrr = 10992,
+  VFMSUBADDPS4Yrr_REV = 10993,
+  VFMSUBADDPS4mr = 10994,
+  VFMSUBADDPS4rm = 10995,
+  VFMSUBADDPS4rr = 10996,
+  VFMSUBADDPS4rr_REV = 10997,
+  VFMSUBPD4Ymr = 10998,
+  VFMSUBPD4Yrm = 10999,
+  VFMSUBPD4Yrr = 11000,
+  VFMSUBPD4Yrr_REV = 11001,
+  VFMSUBPD4mr = 11002,
+  VFMSUBPD4rm = 11003,
+  VFMSUBPD4rr = 11004,
+  VFMSUBPD4rr_REV = 11005,
+  VFMSUBPS4Ymr = 11006,
+  VFMSUBPS4Yrm = 11007,
+  VFMSUBPS4Yrr = 11008,
+  VFMSUBPS4Yrr_REV = 11009,
+  VFMSUBPS4mr = 11010,
+  VFMSUBPS4rm = 11011,
+  VFMSUBPS4rr = 11012,
+  VFMSUBPS4rr_REV = 11013,
+  VFMSUBSD4mr = 11014,
+  VFMSUBSD4mr_Int = 11015,
+  VFMSUBSD4rm = 11016,
+  VFMSUBSD4rm_Int = 11017,
+  VFMSUBSD4rr = 11018,
+  VFMSUBSD4rr_Int = 11019,
+  VFMSUBSD4rr_Int_REV = 11020,
+  VFMSUBSD4rr_REV = 11021,
+  VFMSUBSS4mr = 11022,
+  VFMSUBSS4mr_Int = 11023,
+  VFMSUBSS4rm = 11024,
+  VFMSUBSS4rm_Int = 11025,
+  VFMSUBSS4rr = 11026,
+  VFMSUBSS4rr_Int = 11027,
+  VFMSUBSS4rr_Int_REV = 11028,
+  VFMSUBSS4rr_REV = 11029,
+  VFMULCPHZ128rm = 11030,
+  VFMULCPHZ128rmb = 11031,
+  VFMULCPHZ128rmbk = 11032,
+  VFMULCPHZ128rmbkz = 11033,
+  VFMULCPHZ128rmk = 11034,
+  VFMULCPHZ128rmkz = 11035,
+  VFMULCPHZ128rr = 11036,
+  VFMULCPHZ128rrk = 11037,
+  VFMULCPHZ128rrkz = 11038,
+  VFMULCPHZ256rm = 11039,
+  VFMULCPHZ256rmb = 11040,
+  VFMULCPHZ256rmbk = 11041,
+  VFMULCPHZ256rmbkz = 11042,
+  VFMULCPHZ256rmk = 11043,
+  VFMULCPHZ256rmkz = 11044,
+  VFMULCPHZ256rr = 11045,
+  VFMULCPHZ256rrk = 11046,
+  VFMULCPHZ256rrkz = 11047,
+  VFMULCPHZrm = 11048,
+  VFMULCPHZrmb = 11049,
+  VFMULCPHZrmbk = 11050,
+  VFMULCPHZrmbkz = 11051,
+  VFMULCPHZrmk = 11052,
+  VFMULCPHZrmkz = 11053,
+  VFMULCPHZrr = 11054,
+  VFMULCPHZrrb = 11055,
+  VFMULCPHZrrbk = 11056,
+  VFMULCPHZrrbkz = 11057,
+  VFMULCPHZrrk = 11058,
+  VFMULCPHZrrkz = 11059,
+  VFMULCSHZrm = 11060,
+  VFMULCSHZrmk = 11061,
+  VFMULCSHZrmkz = 11062,
+  VFMULCSHZrr = 11063,
+  VFMULCSHZrrb = 11064,
+  VFMULCSHZrrbk = 11065,
+  VFMULCSHZrrbkz = 11066,
+  VFMULCSHZrrk = 11067,
+  VFMULCSHZrrkz = 11068,
+  VFNMADD132BF16Z128m = 11069,
+  VFNMADD132BF16Z128mb = 11070,
+  VFNMADD132BF16Z128mbk = 11071,
+  VFNMADD132BF16Z128mbkz = 11072,
+  VFNMADD132BF16Z128mk = 11073,
+  VFNMADD132BF16Z128mkz = 11074,
+  VFNMADD132BF16Z128r = 11075,
+  VFNMADD132BF16Z128rk = 11076,
+  VFNMADD132BF16Z128rkz = 11077,
+  VFNMADD132BF16Z256m = 11078,
+  VFNMADD132BF16Z256mb = 11079,
+  VFNMADD132BF16Z256mbk = 11080,
+  VFNMADD132BF16Z256mbkz = 11081,
+  VFNMADD132BF16Z256mk = 11082,
+  VFNMADD132BF16Z256mkz = 11083,
+  VFNMADD132BF16Z256r = 11084,
+  VFNMADD132BF16Z256rk = 11085,
+  VFNMADD132BF16Z256rkz = 11086,
+  VFNMADD132BF16Zm = 11087,
+  VFNMADD132BF16Zmb = 11088,
+  VFNMADD132BF16Zmbk = 11089,
+  VFNMADD132BF16Zmbkz = 11090,
+  VFNMADD132BF16Zmk = 11091,
+  VFNMADD132BF16Zmkz = 11092,
+  VFNMADD132BF16Zr = 11093,
+  VFNMADD132BF16Zrk = 11094,
+  VFNMADD132BF16Zrkz = 11095,
+  VFNMADD132PDYm = 11096,
+  VFNMADD132PDYr = 11097,
+  VFNMADD132PDZ128m = 11098,
+  VFNMADD132PDZ128mb = 11099,
+  VFNMADD132PDZ128mbk = 11100,
+  VFNMADD132PDZ128mbkz = 11101,
+  VFNMADD132PDZ128mk = 11102,
+  VFNMADD132PDZ128mkz = 11103,
+  VFNMADD132PDZ128r = 11104,
+  VFNMADD132PDZ128rk = 11105,
+  VFNMADD132PDZ128rkz = 11106,
+  VFNMADD132PDZ256m = 11107,
+  VFNMADD132PDZ256mb = 11108,
+  VFNMADD132PDZ256mbk = 11109,
+  VFNMADD132PDZ256mbkz = 11110,
+  VFNMADD132PDZ256mk = 11111,
+  VFNMADD132PDZ256mkz = 11112,
+  VFNMADD132PDZ256r = 11113,
+  VFNMADD132PDZ256rk = 11114,
+  VFNMADD132PDZ256rkz = 11115,
+  VFNMADD132PDZm = 11116,
+  VFNMADD132PDZmb = 11117,
+  VFNMADD132PDZmbk = 11118,
+  VFNMADD132PDZmbkz = 11119,
+  VFNMADD132PDZmk = 11120,
+  VFNMADD132PDZmkz = 11121,
+  VFNMADD132PDZr = 11122,
+  VFNMADD132PDZrb = 11123,
+  VFNMADD132PDZrbk = 11124,
+  VFNMADD132PDZrbkz = 11125,
+  VFNMADD132PDZrk = 11126,
+  VFNMADD132PDZrkz = 11127,
+  VFNMADD132PDm = 11128,
+  VFNMADD132PDr = 11129,
+  VFNMADD132PHZ128m = 11130,
+  VFNMADD132PHZ128mb = 11131,
+  VFNMADD132PHZ128mbk = 11132,
+  VFNMADD132PHZ128mbkz = 11133,
+  VFNMADD132PHZ128mk = 11134,
+  VFNMADD132PHZ128mkz = 11135,
+  VFNMADD132PHZ128r = 11136,
+  VFNMADD132PHZ128rk = 11137,
+  VFNMADD132PHZ128rkz = 11138,
+  VFNMADD132PHZ256m = 11139,
+  VFNMADD132PHZ256mb = 11140,
+  VFNMADD132PHZ256mbk = 11141,
+  VFNMADD132PHZ256mbkz = 11142,
+  VFNMADD132PHZ256mk = 11143,
+  VFNMADD132PHZ256mkz = 11144,
+  VFNMADD132PHZ256r = 11145,
+  VFNMADD132PHZ256rk = 11146,
+  VFNMADD132PHZ256rkz = 11147,
+  VFNMADD132PHZm = 11148,
+  VFNMADD132PHZmb = 11149,
+  VFNMADD132PHZmbk = 11150,
+  VFNMADD132PHZmbkz = 11151,
+  VFNMADD132PHZmk = 11152,
+  VFNMADD132PHZmkz = 11153,
+  VFNMADD132PHZr = 11154,
+  VFNMADD132PHZrb = 11155,
+  VFNMADD132PHZrbk = 11156,
+  VFNMADD132PHZrbkz = 11157,
+  VFNMADD132PHZrk = 11158,
+  VFNMADD132PHZrkz = 11159,
+  VFNMADD132PSYm = 11160,
+  VFNMADD132PSYr = 11161,
+  VFNMADD132PSZ128m = 11162,
+  VFNMADD132PSZ128mb = 11163,
+  VFNMADD132PSZ128mbk = 11164,
+  VFNMADD132PSZ128mbkz = 11165,
+  VFNMADD132PSZ128mk = 11166,
+  VFNMADD132PSZ128mkz = 11167,
+  VFNMADD132PSZ128r = 11168,
+  VFNMADD132PSZ128rk = 11169,
+  VFNMADD132PSZ128rkz = 11170,
+  VFNMADD132PSZ256m = 11171,
+  VFNMADD132PSZ256mb = 11172,
+  VFNMADD132PSZ256mbk = 11173,
+  VFNMADD132PSZ256mbkz = 11174,
+  VFNMADD132PSZ256mk = 11175,
+  VFNMADD132PSZ256mkz = 11176,
+  VFNMADD132PSZ256r = 11177,
+  VFNMADD132PSZ256rk = 11178,
+  VFNMADD132PSZ256rkz = 11179,
+  VFNMADD132PSZm = 11180,
+  VFNMADD132PSZmb = 11181,
+  VFNMADD132PSZmbk = 11182,
+  VFNMADD132PSZmbkz = 11183,
+  VFNMADD132PSZmk = 11184,
+  VFNMADD132PSZmkz = 11185,
+  VFNMADD132PSZr = 11186,
+  VFNMADD132PSZrb = 11187,
+  VFNMADD132PSZrbk = 11188,
+  VFNMADD132PSZrbkz = 11189,
+  VFNMADD132PSZrk = 11190,
+  VFNMADD132PSZrkz = 11191,
+  VFNMADD132PSm = 11192,
+  VFNMADD132PSr = 11193,
+  VFNMADD132SDZm = 11194,
+  VFNMADD132SDZm_Int = 11195,
+  VFNMADD132SDZmk_Int = 11196,
+  VFNMADD132SDZmkz_Int = 11197,
+  VFNMADD132SDZr = 11198,
+  VFNMADD132SDZr_Int = 11199,
+  VFNMADD132SDZrb = 11200,
+  VFNMADD132SDZrb_Int = 11201,
+  VFNMADD132SDZrbk_Int = 11202,
+  VFNMADD132SDZrbkz_Int = 11203,
+  VFNMADD132SDZrk_Int = 11204,
+  VFNMADD132SDZrkz_Int = 11205,
+  VFNMADD132SDm = 11206,
+  VFNMADD132SDm_Int = 11207,
+  VFNMADD132SDr = 11208,
+  VFNMADD132SDr_Int = 11209,
+  VFNMADD132SHZm = 11210,
+  VFNMADD132SHZm_Int = 11211,
+  VFNMADD132SHZmk_Int = 11212,
+  VFNMADD132SHZmkz_Int = 11213,
+  VFNMADD132SHZr = 11214,
+  VFNMADD132SHZr_Int = 11215,
+  VFNMADD132SHZrb = 11216,
+  VFNMADD132SHZrb_Int = 11217,
+  VFNMADD132SHZrbk_Int = 11218,
+  VFNMADD132SHZrbkz_Int = 11219,
+  VFNMADD132SHZrk_Int = 11220,
+  VFNMADD132SHZrkz_Int = 11221,
+  VFNMADD132SSZm = 11222,
+  VFNMADD132SSZm_Int = 11223,
+  VFNMADD132SSZmk_Int = 11224,
+  VFNMADD132SSZmkz_Int = 11225,
+  VFNMADD132SSZr = 11226,
+  VFNMADD132SSZr_Int = 11227,
+  VFNMADD132SSZrb = 11228,
+  VFNMADD132SSZrb_Int = 11229,
+  VFNMADD132SSZrbk_Int = 11230,
+  VFNMADD132SSZrbkz_Int = 11231,
+  VFNMADD132SSZrk_Int = 11232,
+  VFNMADD132SSZrkz_Int = 11233,
+  VFNMADD132SSm = 11234,
+  VFNMADD132SSm_Int = 11235,
+  VFNMADD132SSr = 11236,
+  VFNMADD132SSr_Int = 11237,
+  VFNMADD213BF16Z128m = 11238,
+  VFNMADD213BF16Z128mb = 11239,
+  VFNMADD213BF16Z128mbk = 11240,
+  VFNMADD213BF16Z128mbkz = 11241,
+  VFNMADD213BF16Z128mk = 11242,
+  VFNMADD213BF16Z128mkz = 11243,
+  VFNMADD213BF16Z128r = 11244,
+  VFNMADD213BF16Z128rk = 11245,
+  VFNMADD213BF16Z128rkz = 11246,
+  VFNMADD213BF16Z256m = 11247,
+  VFNMADD213BF16Z256mb = 11248,
+  VFNMADD213BF16Z256mbk = 11249,
+  VFNMADD213BF16Z256mbkz = 11250,
+  VFNMADD213BF16Z256mk = 11251,
+  VFNMADD213BF16Z256mkz = 11252,
+  VFNMADD213BF16Z256r = 11253,
+  VFNMADD213BF16Z256rk = 11254,
+  VFNMADD213BF16Z256rkz = 11255,
+  VFNMADD213BF16Zm = 11256,
+  VFNMADD213BF16Zmb = 11257,
+  VFNMADD213BF16Zmbk = 11258,
+  VFNMADD213BF16Zmbkz = 11259,
+  VFNMADD213BF16Zmk = 11260,
+  VFNMADD213BF16Zmkz = 11261,
+  VFNMADD213BF16Zr = 11262,
+  VFNMADD213BF16Zrk = 11263,
+  VFNMADD213BF16Zrkz = 11264,
+  VFNMADD213PDYm = 11265,
+  VFNMADD213PDYr = 11266,
+  VFNMADD213PDZ128m = 11267,
+  VFNMADD213PDZ128mb = 11268,
+  VFNMADD213PDZ128mbk = 11269,
+  VFNMADD213PDZ128mbkz = 11270,
+  VFNMADD213PDZ128mk = 11271,
+  VFNMADD213PDZ128mkz = 11272,
+  VFNMADD213PDZ128r = 11273,
+  VFNMADD213PDZ128rk = 11274,
+  VFNMADD213PDZ128rkz = 11275,
+  VFNMADD213PDZ256m = 11276,
+  VFNMADD213PDZ256mb = 11277,
+  VFNMADD213PDZ256mbk = 11278,
+  VFNMADD213PDZ256mbkz = 11279,
+  VFNMADD213PDZ256mk = 11280,
+  VFNMADD213PDZ256mkz = 11281,
+  VFNMADD213PDZ256r = 11282,
+  VFNMADD213PDZ256rk = 11283,
+  VFNMADD213PDZ256rkz = 11284,
+  VFNMADD213PDZm = 11285,
+  VFNMADD213PDZmb = 11286,
+  VFNMADD213PDZmbk = 11287,
+  VFNMADD213PDZmbkz = 11288,
+  VFNMADD213PDZmk = 11289,
+  VFNMADD213PDZmkz = 11290,
+  VFNMADD213PDZr = 11291,
+  VFNMADD213PDZrb = 11292,
+  VFNMADD213PDZrbk = 11293,
+  VFNMADD213PDZrbkz = 11294,
+  VFNMADD213PDZrk = 11295,
+  VFNMADD213PDZrkz = 11296,
+  VFNMADD213PDm = 11297,
+  VFNMADD213PDr = 11298,
+  VFNMADD213PHZ128m = 11299,
+  VFNMADD213PHZ128mb = 11300,
+  VFNMADD213PHZ128mbk = 11301,
+  VFNMADD213PHZ128mbkz = 11302,
+  VFNMADD213PHZ128mk = 11303,
+  VFNMADD213PHZ128mkz = 11304,
+  VFNMADD213PHZ128r = 11305,
+  VFNMADD213PHZ128rk = 11306,
+  VFNMADD213PHZ128rkz = 11307,
+  VFNMADD213PHZ256m = 11308,
+  VFNMADD213PHZ256mb = 11309,
+  VFNMADD213PHZ256mbk = 11310,
+  VFNMADD213PHZ256mbkz = 11311,
+  VFNMADD213PHZ256mk = 11312,
+  VFNMADD213PHZ256mkz = 11313,
+  VFNMADD213PHZ256r = 11314,
+  VFNMADD213PHZ256rk = 11315,
+  VFNMADD213PHZ256rkz = 11316,
+  VFNMADD213PHZm = 11317,
+  VFNMADD213PHZmb = 11318,
+  VFNMADD213PHZmbk = 11319,
+  VFNMADD213PHZmbkz = 11320,
+  VFNMADD213PHZmk = 11321,
+  VFNMADD213PHZmkz = 11322,
+  VFNMADD213PHZr = 11323,
+  VFNMADD213PHZrb = 11324,
+  VFNMADD213PHZrbk = 11325,
+  VFNMADD213PHZrbkz = 11326,
+  VFNMADD213PHZrk = 11327,
+  VFNMADD213PHZrkz = 11328,
+  VFNMADD213PSYm = 11329,
+  VFNMADD213PSYr = 11330,
+  VFNMADD213PSZ128m = 11331,
+  VFNMADD213PSZ128mb = 11332,
+  VFNMADD213PSZ128mbk = 11333,
+  VFNMADD213PSZ128mbkz = 11334,
+  VFNMADD213PSZ128mk = 11335,
+  VFNMADD213PSZ128mkz = 11336,
+  VFNMADD213PSZ128r = 11337,
+  VFNMADD213PSZ128rk = 11338,
+  VFNMADD213PSZ128rkz = 11339,
+  VFNMADD213PSZ256m = 11340,
+  VFNMADD213PSZ256mb = 11341,
+  VFNMADD213PSZ256mbk = 11342,
+  VFNMADD213PSZ256mbkz = 11343,
+  VFNMADD213PSZ256mk = 11344,
+  VFNMADD213PSZ256mkz = 11345,
+  VFNMADD213PSZ256r = 11346,
+  VFNMADD213PSZ256rk = 11347,
+  VFNMADD213PSZ256rkz = 11348,
+  VFNMADD213PSZm = 11349,
+  VFNMADD213PSZmb = 11350,
+  VFNMADD213PSZmbk = 11351,
+  VFNMADD213PSZmbkz = 11352,
+  VFNMADD213PSZmk = 11353,
+  VFNMADD213PSZmkz = 11354,
+  VFNMADD213PSZr = 11355,
+  VFNMADD213PSZrb = 11356,
+  VFNMADD213PSZrbk = 11357,
+  VFNMADD213PSZrbkz = 11358,
+  VFNMADD213PSZrk = 11359,
+  VFNMADD213PSZrkz = 11360,
+  VFNMADD213PSm = 11361,
+  VFNMADD213PSr = 11362,
+  VFNMADD213SDZm = 11363,
+  VFNMADD213SDZm_Int = 11364,
+  VFNMADD213SDZmk_Int = 11365,
+  VFNMADD213SDZmkz_Int = 11366,
+  VFNMADD213SDZr = 11367,
+  VFNMADD213SDZr_Int = 11368,
+  VFNMADD213SDZrb = 11369,
+  VFNMADD213SDZrb_Int = 11370,
+  VFNMADD213SDZrbk_Int = 11371,
+  VFNMADD213SDZrbkz_Int = 11372,
+  VFNMADD213SDZrk_Int = 11373,
+  VFNMADD213SDZrkz_Int = 11374,
+  VFNMADD213SDm = 11375,
+  VFNMADD213SDm_Int = 11376,
+  VFNMADD213SDr = 11377,
+  VFNMADD213SDr_Int = 11378,
+  VFNMADD213SHZm = 11379,
+  VFNMADD213SHZm_Int = 11380,
+  VFNMADD213SHZmk_Int = 11381,
+  VFNMADD213SHZmkz_Int = 11382,
+  VFNMADD213SHZr = 11383,
+  VFNMADD213SHZr_Int = 11384,
+  VFNMADD213SHZrb = 11385,
+  VFNMADD213SHZrb_Int = 11386,
+  VFNMADD213SHZrbk_Int = 11387,
+  VFNMADD213SHZrbkz_Int = 11388,
+  VFNMADD213SHZrk_Int = 11389,
+  VFNMADD213SHZrkz_Int = 11390,
+  VFNMADD213SSZm = 11391,
+  VFNMADD213SSZm_Int = 11392,
+  VFNMADD213SSZmk_Int = 11393,
+  VFNMADD213SSZmkz_Int = 11394,
+  VFNMADD213SSZr = 11395,
+  VFNMADD213SSZr_Int = 11396,
+  VFNMADD213SSZrb = 11397,
+  VFNMADD213SSZrb_Int = 11398,
+  VFNMADD213SSZrbk_Int = 11399,
+  VFNMADD213SSZrbkz_Int = 11400,
+  VFNMADD213SSZrk_Int = 11401,
+  VFNMADD213SSZrkz_Int = 11402,
+  VFNMADD213SSm = 11403,
+  VFNMADD213SSm_Int = 11404,
+  VFNMADD213SSr = 11405,
+  VFNMADD213SSr_Int = 11406,
+  VFNMADD231BF16Z128m = 11407,
+  VFNMADD231BF16Z128mb = 11408,
+  VFNMADD231BF16Z128mbk = 11409,
+  VFNMADD231BF16Z128mbkz = 11410,
+  VFNMADD231BF16Z128mk = 11411,
+  VFNMADD231BF16Z128mkz = 11412,
+  VFNMADD231BF16Z128r = 11413,
+  VFNMADD231BF16Z128rk = 11414,
+  VFNMADD231BF16Z128rkz = 11415,
+  VFNMADD231BF16Z256m = 11416,
+  VFNMADD231BF16Z256mb = 11417,
+  VFNMADD231BF16Z256mbk = 11418,
+  VFNMADD231BF16Z256mbkz = 11419,
+  VFNMADD231BF16Z256mk = 11420,
+  VFNMADD231BF16Z256mkz = 11421,
+  VFNMADD231BF16Z256r = 11422,
+  VFNMADD231BF16Z256rk = 11423,
+  VFNMADD231BF16Z256rkz = 11424,
+  VFNMADD231BF16Zm = 11425,
+  VFNMADD231BF16Zmb = 11426,
+  VFNMADD231BF16Zmbk = 11427,
+  VFNMADD231BF16Zmbkz = 11428,
+  VFNMADD231BF16Zmk = 11429,
+  VFNMADD231BF16Zmkz = 11430,
+  VFNMADD231BF16Zr = 11431,
+  VFNMADD231BF16Zrk = 11432,
+  VFNMADD231BF16Zrkz = 11433,
+  VFNMADD231PDYm = 11434,
+  VFNMADD231PDYr = 11435,
+  VFNMADD231PDZ128m = 11436,
+  VFNMADD231PDZ128mb = 11437,
+  VFNMADD231PDZ128mbk = 11438,
+  VFNMADD231PDZ128mbkz = 11439,
+  VFNMADD231PDZ128mk = 11440,
+  VFNMADD231PDZ128mkz = 11441,
+  VFNMADD231PDZ128r = 11442,
+  VFNMADD231PDZ128rk = 11443,
+  VFNMADD231PDZ128rkz = 11444,
+  VFNMADD231PDZ256m = 11445,
+  VFNMADD231PDZ256mb = 11446,
+  VFNMADD231PDZ256mbk = 11447,
+  VFNMADD231PDZ256mbkz = 11448,
+  VFNMADD231PDZ256mk = 11449,
+  VFNMADD231PDZ256mkz = 11450,
+  VFNMADD231PDZ256r = 11451,
+  VFNMADD231PDZ256rk = 11452,
+  VFNMADD231PDZ256rkz = 11453,
+  VFNMADD231PDZm = 11454,
+  VFNMADD231PDZmb = 11455,
+  VFNMADD231PDZmbk = 11456,
+  VFNMADD231PDZmbkz = 11457,
+  VFNMADD231PDZmk = 11458,
+  VFNMADD231PDZmkz = 11459,
+  VFNMADD231PDZr = 11460,
+  VFNMADD231PDZrb = 11461,
+  VFNMADD231PDZrbk = 11462,
+  VFNMADD231PDZrbkz = 11463,
+  VFNMADD231PDZrk = 11464,
+  VFNMADD231PDZrkz = 11465,
+  VFNMADD231PDm = 11466,
+  VFNMADD231PDr = 11467,
+  VFNMADD231PHZ128m = 11468,
+  VFNMADD231PHZ128mb = 11469,
+  VFNMADD231PHZ128mbk = 11470,
+  VFNMADD231PHZ128mbkz = 11471,
+  VFNMADD231PHZ128mk = 11472,
+  VFNMADD231PHZ128mkz = 11473,
+  VFNMADD231PHZ128r = 11474,
+  VFNMADD231PHZ128rk = 11475,
+  VFNMADD231PHZ128rkz = 11476,
+  VFNMADD231PHZ256m = 11477,
+  VFNMADD231PHZ256mb = 11478,
+  VFNMADD231PHZ256mbk = 11479,
+  VFNMADD231PHZ256mbkz = 11480,
+  VFNMADD231PHZ256mk = 11481,
+  VFNMADD231PHZ256mkz = 11482,
+  VFNMADD231PHZ256r = 11483,
+  VFNMADD231PHZ256rk = 11484,
+  VFNMADD231PHZ256rkz = 11485,
+  VFNMADD231PHZm = 11486,
+  VFNMADD231PHZmb = 11487,
+  VFNMADD231PHZmbk = 11488,
+  VFNMADD231PHZmbkz = 11489,
+  VFNMADD231PHZmk = 11490,
+  VFNMADD231PHZmkz = 11491,
+  VFNMADD231PHZr = 11492,
+  VFNMADD231PHZrb = 11493,
+  VFNMADD231PHZrbk = 11494,
+  VFNMADD231PHZrbkz = 11495,
+  VFNMADD231PHZrk = 11496,
+  VFNMADD231PHZrkz = 11497,
+  VFNMADD231PSYm = 11498,
+  VFNMADD231PSYr = 11499,
+  VFNMADD231PSZ128m = 11500,
+  VFNMADD231PSZ128mb = 11501,
+  VFNMADD231PSZ128mbk = 11502,
+  VFNMADD231PSZ128mbkz = 11503,
+  VFNMADD231PSZ128mk = 11504,
+  VFNMADD231PSZ128mkz = 11505,
+  VFNMADD231PSZ128r = 11506,
+  VFNMADD231PSZ128rk = 11507,
+  VFNMADD231PSZ128rkz = 11508,
+  VFNMADD231PSZ256m = 11509,
+  VFNMADD231PSZ256mb = 11510,
+  VFNMADD231PSZ256mbk = 11511,
+  VFNMADD231PSZ256mbkz = 11512,
+  VFNMADD231PSZ256mk = 11513,
+  VFNMADD231PSZ256mkz = 11514,
+  VFNMADD231PSZ256r = 11515,
+  VFNMADD231PSZ256rk = 11516,
+  VFNMADD231PSZ256rkz = 11517,
+  VFNMADD231PSZm = 11518,
+  VFNMADD231PSZmb = 11519,
+  VFNMADD231PSZmbk = 11520,
+  VFNMADD231PSZmbkz = 11521,
+  VFNMADD231PSZmk = 11522,
+  VFNMADD231PSZmkz = 11523,
+  VFNMADD231PSZr = 11524,
+  VFNMADD231PSZrb = 11525,
+  VFNMADD231PSZrbk = 11526,
+  VFNMADD231PSZrbkz = 11527,
+  VFNMADD231PSZrk = 11528,
+  VFNMADD231PSZrkz = 11529,
+  VFNMADD231PSm = 11530,
+  VFNMADD231PSr = 11531,
+  VFNMADD231SDZm = 11532,
+  VFNMADD231SDZm_Int = 11533,
+  VFNMADD231SDZmk_Int = 11534,
+  VFNMADD231SDZmkz_Int = 11535,
+  VFNMADD231SDZr = 11536,
+  VFNMADD231SDZr_Int = 11537,
+  VFNMADD231SDZrb = 11538,
+  VFNMADD231SDZrb_Int = 11539,
+  VFNMADD231SDZrbk_Int = 11540,
+  VFNMADD231SDZrbkz_Int = 11541,
+  VFNMADD231SDZrk_Int = 11542,
+  VFNMADD231SDZrkz_Int = 11543,
+  VFNMADD231SDm = 11544,
+  VFNMADD231SDm_Int = 11545,
+  VFNMADD231SDr = 11546,
+  VFNMADD231SDr_Int = 11547,
+  VFNMADD231SHZm = 11548,
+  VFNMADD231SHZm_Int = 11549,
+  VFNMADD231SHZmk_Int = 11550,
+  VFNMADD231SHZmkz_Int = 11551,
+  VFNMADD231SHZr = 11552,
+  VFNMADD231SHZr_Int = 11553,
+  VFNMADD231SHZrb = 11554,
+  VFNMADD231SHZrb_Int = 11555,
+  VFNMADD231SHZrbk_Int = 11556,
+  VFNMADD231SHZrbkz_Int = 11557,
+  VFNMADD231SHZrk_Int = 11558,
+  VFNMADD231SHZrkz_Int = 11559,
+  VFNMADD231SSZm = 11560,
+  VFNMADD231SSZm_Int = 11561,
+  VFNMADD231SSZmk_Int = 11562,
+  VFNMADD231SSZmkz_Int = 11563,
+  VFNMADD231SSZr = 11564,
+  VFNMADD231SSZr_Int = 11565,
+  VFNMADD231SSZrb = 11566,
+  VFNMADD231SSZrb_Int = 11567,
+  VFNMADD231SSZrbk_Int = 11568,
+  VFNMADD231SSZrbkz_Int = 11569,
+  VFNMADD231SSZrk_Int = 11570,
+  VFNMADD231SSZrkz_Int = 11571,
+  VFNMADD231SSm = 11572,
+  VFNMADD231SSm_Int = 11573,
+  VFNMADD231SSr = 11574,
+  VFNMADD231SSr_Int = 11575,
+  VFNMADDPD4Ymr = 11576,
+  VFNMADDPD4Yrm = 11577,
+  VFNMADDPD4Yrr = 11578,
+  VFNMADDPD4Yrr_REV = 11579,
+  VFNMADDPD4mr = 11580,
+  VFNMADDPD4rm = 11581,
+  VFNMADDPD4rr = 11582,
+  VFNMADDPD4rr_REV = 11583,
+  VFNMADDPS4Ymr = 11584,
+  VFNMADDPS4Yrm = 11585,
+  VFNMADDPS4Yrr = 11586,
+  VFNMADDPS4Yrr_REV = 11587,
+  VFNMADDPS4mr = 11588,
+  VFNMADDPS4rm = 11589,
+  VFNMADDPS4rr = 11590,
+  VFNMADDPS4rr_REV = 11591,
+  VFNMADDSD4mr = 11592,
+  VFNMADDSD4mr_Int = 11593,
+  VFNMADDSD4rm = 11594,
+  VFNMADDSD4rm_Int = 11595,
+  VFNMADDSD4rr = 11596,
+  VFNMADDSD4rr_Int = 11597,
+  VFNMADDSD4rr_Int_REV = 11598,
+  VFNMADDSD4rr_REV = 11599,
+  VFNMADDSS4mr = 11600,
+  VFNMADDSS4mr_Int = 11601,
+  VFNMADDSS4rm = 11602,
+  VFNMADDSS4rm_Int = 11603,
+  VFNMADDSS4rr = 11604,
+  VFNMADDSS4rr_Int = 11605,
+  VFNMADDSS4rr_Int_REV = 11606,
+  VFNMADDSS4rr_REV = 11607,
+  VFNMSUB132BF16Z128m = 11608,
+  VFNMSUB132BF16Z128mb = 11609,
+  VFNMSUB132BF16Z128mbk = 11610,
+  VFNMSUB132BF16Z128mbkz = 11611,
+  VFNMSUB132BF16Z128mk = 11612,
+  VFNMSUB132BF16Z128mkz = 11613,
+  VFNMSUB132BF16Z128r = 11614,
+  VFNMSUB132BF16Z128rk = 11615,
+  VFNMSUB132BF16Z128rkz = 11616,
+  VFNMSUB132BF16Z256m = 11617,
+  VFNMSUB132BF16Z256mb = 11618,
+  VFNMSUB132BF16Z256mbk = 11619,
+  VFNMSUB132BF16Z256mbkz = 11620,
+  VFNMSUB132BF16Z256mk = 11621,
+  VFNMSUB132BF16Z256mkz = 11622,
+  VFNMSUB132BF16Z256r = 11623,
+  VFNMSUB132BF16Z256rk = 11624,
+  VFNMSUB132BF16Z256rkz = 11625,
+  VFNMSUB132BF16Zm = 11626,
+  VFNMSUB132BF16Zmb = 11627,
+  VFNMSUB132BF16Zmbk = 11628,
+  VFNMSUB132BF16Zmbkz = 11629,
+  VFNMSUB132BF16Zmk = 11630,
+  VFNMSUB132BF16Zmkz = 11631,
+  VFNMSUB132BF16Zr = 11632,
+  VFNMSUB132BF16Zrk = 11633,
+  VFNMSUB132BF16Zrkz = 11634,
+  VFNMSUB132PDYm = 11635,
+  VFNMSUB132PDYr = 11636,
+  VFNMSUB132PDZ128m = 11637,
+  VFNMSUB132PDZ128mb = 11638,
+  VFNMSUB132PDZ128mbk = 11639,
+  VFNMSUB132PDZ128mbkz = 11640,
+  VFNMSUB132PDZ128mk = 11641,
+  VFNMSUB132PDZ128mkz = 11642,
+  VFNMSUB132PDZ128r = 11643,
+  VFNMSUB132PDZ128rk = 11644,
+  VFNMSUB132PDZ128rkz = 11645,
+  VFNMSUB132PDZ256m = 11646,
+  VFNMSUB132PDZ256mb = 11647,
+  VFNMSUB132PDZ256mbk = 11648,
+  VFNMSUB132PDZ256mbkz = 11649,
+  VFNMSUB132PDZ256mk = 11650,
+  VFNMSUB132PDZ256mkz = 11651,
+  VFNMSUB132PDZ256r = 11652,
+  VFNMSUB132PDZ256rk = 11653,
+  VFNMSUB132PDZ256rkz = 11654,
+  VFNMSUB132PDZm = 11655,
+  VFNMSUB132PDZmb = 11656,
+  VFNMSUB132PDZmbk = 11657,
+  VFNMSUB132PDZmbkz = 11658,
+  VFNMSUB132PDZmk = 11659,
+  VFNMSUB132PDZmkz = 11660,
+  VFNMSUB132PDZr = 11661,
+  VFNMSUB132PDZrb = 11662,
+  VFNMSUB132PDZrbk = 11663,
+  VFNMSUB132PDZrbkz = 11664,
+  VFNMSUB132PDZrk = 11665,
+  VFNMSUB132PDZrkz = 11666,
+  VFNMSUB132PDm = 11667,
+  VFNMSUB132PDr = 11668,
+  VFNMSUB132PHZ128m = 11669,
+  VFNMSUB132PHZ128mb = 11670,
+  VFNMSUB132PHZ128mbk = 11671,
+  VFNMSUB132PHZ128mbkz = 11672,
+  VFNMSUB132PHZ128mk = 11673,
+  VFNMSUB132PHZ128mkz = 11674,
+  VFNMSUB132PHZ128r = 11675,
+  VFNMSUB132PHZ128rk = 11676,
+  VFNMSUB132PHZ128rkz = 11677,
+  VFNMSUB132PHZ256m = 11678,
+  VFNMSUB132PHZ256mb = 11679,
+  VFNMSUB132PHZ256mbk = 11680,
+  VFNMSUB132PHZ256mbkz = 11681,
+  VFNMSUB132PHZ256mk = 11682,
+  VFNMSUB132PHZ256mkz = 11683,
+  VFNMSUB132PHZ256r = 11684,
+  VFNMSUB132PHZ256rk = 11685,
+  VFNMSUB132PHZ256rkz = 11686,
+  VFNMSUB132PHZm = 11687,
+  VFNMSUB132PHZmb = 11688,
+  VFNMSUB132PHZmbk = 11689,
+  VFNMSUB132PHZmbkz = 11690,
+  VFNMSUB132PHZmk = 11691,
+  VFNMSUB132PHZmkz = 11692,
+  VFNMSUB132PHZr = 11693,
+  VFNMSUB132PHZrb = 11694,
+  VFNMSUB132PHZrbk = 11695,
+  VFNMSUB132PHZrbkz = 11696,
+  VFNMSUB132PHZrk = 11697,
+  VFNMSUB132PHZrkz = 11698,
+  VFNMSUB132PSYm = 11699,
+  VFNMSUB132PSYr = 11700,
+  VFNMSUB132PSZ128m = 11701,
+  VFNMSUB132PSZ128mb = 11702,
+  VFNMSUB132PSZ128mbk = 11703,
+  VFNMSUB132PSZ128mbkz = 11704,
+  VFNMSUB132PSZ128mk = 11705,
+  VFNMSUB132PSZ128mkz = 11706,
+  VFNMSUB132PSZ128r = 11707,
+  VFNMSUB132PSZ128rk = 11708,
+  VFNMSUB132PSZ128rkz = 11709,
+  VFNMSUB132PSZ256m = 11710,
+  VFNMSUB132PSZ256mb = 11711,
+  VFNMSUB132PSZ256mbk = 11712,
+  VFNMSUB132PSZ256mbkz = 11713,
+  VFNMSUB132PSZ256mk = 11714,
+  VFNMSUB132PSZ256mkz = 11715,
+  VFNMSUB132PSZ256r = 11716,
+  VFNMSUB132PSZ256rk = 11717,
+  VFNMSUB132PSZ256rkz = 11718,
+  VFNMSUB132PSZm = 11719,
+  VFNMSUB132PSZmb = 11720,
+  VFNMSUB132PSZmbk = 11721,
+  VFNMSUB132PSZmbkz = 11722,
+  VFNMSUB132PSZmk = 11723,
+  VFNMSUB132PSZmkz = 11724,
+  VFNMSUB132PSZr = 11725,
+  VFNMSUB132PSZrb = 11726,
+  VFNMSUB132PSZrbk = 11727,
+  VFNMSUB132PSZrbkz = 11728,
+  VFNMSUB132PSZrk = 11729,
+  VFNMSUB132PSZrkz = 11730,
+  VFNMSUB132PSm = 11731,
+  VFNMSUB132PSr = 11732,
+  VFNMSUB132SDZm = 11733,
+  VFNMSUB132SDZm_Int = 11734,
+  VFNMSUB132SDZmk_Int = 11735,
+  VFNMSUB132SDZmkz_Int = 11736,
+  VFNMSUB132SDZr = 11737,
+  VFNMSUB132SDZr_Int = 11738,
+  VFNMSUB132SDZrb = 11739,
+  VFNMSUB132SDZrb_Int = 11740,
+  VFNMSUB132SDZrbk_Int = 11741,
+  VFNMSUB132SDZrbkz_Int = 11742,
+  VFNMSUB132SDZrk_Int = 11743,
+  VFNMSUB132SDZrkz_Int = 11744,
+  VFNMSUB132SDm = 11745,
+  VFNMSUB132SDm_Int = 11746,
+  VFNMSUB132SDr = 11747,
+  VFNMSUB132SDr_Int = 11748,
+  VFNMSUB132SHZm = 11749,
+  VFNMSUB132SHZm_Int = 11750,
+  VFNMSUB132SHZmk_Int = 11751,
+  VFNMSUB132SHZmkz_Int = 11752,
+  VFNMSUB132SHZr = 11753,
+  VFNMSUB132SHZr_Int = 11754,
+  VFNMSUB132SHZrb = 11755,
+  VFNMSUB132SHZrb_Int = 11756,
+  VFNMSUB132SHZrbk_Int = 11757,
+  VFNMSUB132SHZrbkz_Int = 11758,
+  VFNMSUB132SHZrk_Int = 11759,
+  VFNMSUB132SHZrkz_Int = 11760,
+  VFNMSUB132SSZm = 11761,
+  VFNMSUB132SSZm_Int = 11762,
+  VFNMSUB132SSZmk_Int = 11763,
+  VFNMSUB132SSZmkz_Int = 11764,
+  VFNMSUB132SSZr = 11765,
+  VFNMSUB132SSZr_Int = 11766,
+  VFNMSUB132SSZrb = 11767,
+  VFNMSUB132SSZrb_Int = 11768,
+  VFNMSUB132SSZrbk_Int = 11769,
+  VFNMSUB132SSZrbkz_Int = 11770,
+  VFNMSUB132SSZrk_Int = 11771,
+  VFNMSUB132SSZrkz_Int = 11772,
+  VFNMSUB132SSm = 11773,
+  VFNMSUB132SSm_Int = 11774,
+  VFNMSUB132SSr = 11775,
+  VFNMSUB132SSr_Int = 11776,
+  VFNMSUB213BF16Z128m = 11777,
+  VFNMSUB213BF16Z128mb = 11778,
+  VFNMSUB213BF16Z128mbk = 11779,
+  VFNMSUB213BF16Z128mbkz = 11780,
+  VFNMSUB213BF16Z128mk = 11781,
+  VFNMSUB213BF16Z128mkz = 11782,
+  VFNMSUB213BF16Z128r = 11783,
+  VFNMSUB213BF16Z128rk = 11784,
+  VFNMSUB213BF16Z128rkz = 11785,
+  VFNMSUB213BF16Z256m = 11786,
+  VFNMSUB213BF16Z256mb = 11787,
+  VFNMSUB213BF16Z256mbk = 11788,
+  VFNMSUB213BF16Z256mbkz = 11789,
+  VFNMSUB213BF16Z256mk = 11790,
+  VFNMSUB213BF16Z256mkz = 11791,
+  VFNMSUB213BF16Z256r = 11792,
+  VFNMSUB213BF16Z256rk = 11793,
+  VFNMSUB213BF16Z256rkz = 11794,
+  VFNMSUB213BF16Zm = 11795,
+  VFNMSUB213BF16Zmb = 11796,
+  VFNMSUB213BF16Zmbk = 11797,
+  VFNMSUB213BF16Zmbkz = 11798,
+  VFNMSUB213BF16Zmk = 11799,
+  VFNMSUB213BF16Zmkz = 11800,
+  VFNMSUB213BF16Zr = 11801,
+  VFNMSUB213BF16Zrk = 11802,
+  VFNMSUB213BF16Zrkz = 11803,
+  VFNMSUB213PDYm = 11804,
+  VFNMSUB213PDYr = 11805,
+  VFNMSUB213PDZ128m = 11806,
+  VFNMSUB213PDZ128mb = 11807,
+  VFNMSUB213PDZ128mbk = 11808,
+  VFNMSUB213PDZ128mbkz = 11809,
+  VFNMSUB213PDZ128mk = 11810,
+  VFNMSUB213PDZ128mkz = 11811,
+  VFNMSUB213PDZ128r = 11812,
+  VFNMSUB213PDZ128rk = 11813,
+  VFNMSUB213PDZ128rkz = 11814,
+  VFNMSUB213PDZ256m = 11815,
+  VFNMSUB213PDZ256mb = 11816,
+  VFNMSUB213PDZ256mbk = 11817,
+  VFNMSUB213PDZ256mbkz = 11818,
+  VFNMSUB213PDZ256mk = 11819,
+  VFNMSUB213PDZ256mkz = 11820,
+  VFNMSUB213PDZ256r = 11821,
+  VFNMSUB213PDZ256rk = 11822,
+  VFNMSUB213PDZ256rkz = 11823,
+  VFNMSUB213PDZm = 11824,
+  VFNMSUB213PDZmb = 11825,
+  VFNMSUB213PDZmbk = 11826,
+  VFNMSUB213PDZmbkz = 11827,
+  VFNMSUB213PDZmk = 11828,
+  VFNMSUB213PDZmkz = 11829,
+  VFNMSUB213PDZr = 11830,
+  VFNMSUB213PDZrb = 11831,
+  VFNMSUB213PDZrbk = 11832,
+  VFNMSUB213PDZrbkz = 11833,
+  VFNMSUB213PDZrk = 11834,
+  VFNMSUB213PDZrkz = 11835,
+  VFNMSUB213PDm = 11836,
+  VFNMSUB213PDr = 11837,
+  VFNMSUB213PHZ128m = 11838,
+  VFNMSUB213PHZ128mb = 11839,
+  VFNMSUB213PHZ128mbk = 11840,
+  VFNMSUB213PHZ128mbkz = 11841,
+  VFNMSUB213PHZ128mk = 11842,
+  VFNMSUB213PHZ128mkz = 11843,
+  VFNMSUB213PHZ128r = 11844,
+  VFNMSUB213PHZ128rk = 11845,
+  VFNMSUB213PHZ128rkz = 11846,
+  VFNMSUB213PHZ256m = 11847,
+  VFNMSUB213PHZ256mb = 11848,
+  VFNMSUB213PHZ256mbk = 11849,
+  VFNMSUB213PHZ256mbkz = 11850,
+  VFNMSUB213PHZ256mk = 11851,
+  VFNMSUB213PHZ256mkz = 11852,
+  VFNMSUB213PHZ256r = 11853,
+  VFNMSUB213PHZ256rk = 11854,
+  VFNMSUB213PHZ256rkz = 11855,
+  VFNMSUB213PHZm = 11856,
+  VFNMSUB213PHZmb = 11857,
+  VFNMSUB213PHZmbk = 11858,
+  VFNMSUB213PHZmbkz = 11859,
+  VFNMSUB213PHZmk = 11860,
+  VFNMSUB213PHZmkz = 11861,
+  VFNMSUB213PHZr = 11862,
+  VFNMSUB213PHZrb = 11863,
+  VFNMSUB213PHZrbk = 11864,
+  VFNMSUB213PHZrbkz = 11865,
+  VFNMSUB213PHZrk = 11866,
+  VFNMSUB213PHZrkz = 11867,
+  VFNMSUB213PSYm = 11868,
+  VFNMSUB213PSYr = 11869,
+  VFNMSUB213PSZ128m = 11870,
+  VFNMSUB213PSZ128mb = 11871,
+  VFNMSUB213PSZ128mbk = 11872,
+  VFNMSUB213PSZ128mbkz = 11873,
+  VFNMSUB213PSZ128mk = 11874,
+  VFNMSUB213PSZ128mkz = 11875,
+  VFNMSUB213PSZ128r = 11876,
+  VFNMSUB213PSZ128rk = 11877,
+  VFNMSUB213PSZ128rkz = 11878,
+  VFNMSUB213PSZ256m = 11879,
+  VFNMSUB213PSZ256mb = 11880,
+  VFNMSUB213PSZ256mbk = 11881,
+  VFNMSUB213PSZ256mbkz = 11882,
+  VFNMSUB213PSZ256mk = 11883,
+  VFNMSUB213PSZ256mkz = 11884,
+  VFNMSUB213PSZ256r = 11885,
+  VFNMSUB213PSZ256rk = 11886,
+  VFNMSUB213PSZ256rkz = 11887,
+  VFNMSUB213PSZm = 11888,
+  VFNMSUB213PSZmb = 11889,
+  VFNMSUB213PSZmbk = 11890,
+  VFNMSUB213PSZmbkz = 11891,
+  VFNMSUB213PSZmk = 11892,
+  VFNMSUB213PSZmkz = 11893,
+  VFNMSUB213PSZr = 11894,
+  VFNMSUB213PSZrb = 11895,
+  VFNMSUB213PSZrbk = 11896,
+  VFNMSUB213PSZrbkz = 11897,
+  VFNMSUB213PSZrk = 11898,
+  VFNMSUB213PSZrkz = 11899,
+  VFNMSUB213PSm = 11900,
+  VFNMSUB213PSr = 11901,
+  VFNMSUB213SDZm = 11902,
+  VFNMSUB213SDZm_Int = 11903,
+  VFNMSUB213SDZmk_Int = 11904,
+  VFNMSUB213SDZmkz_Int = 11905,
+  VFNMSUB213SDZr = 11906,
+  VFNMSUB213SDZr_Int = 11907,
+  VFNMSUB213SDZrb = 11908,
+  VFNMSUB213SDZrb_Int = 11909,
+  VFNMSUB213SDZrbk_Int = 11910,
+  VFNMSUB213SDZrbkz_Int = 11911,
+  VFNMSUB213SDZrk_Int = 11912,
+  VFNMSUB213SDZrkz_Int = 11913,
+  VFNMSUB213SDm = 11914,
+  VFNMSUB213SDm_Int = 11915,
+  VFNMSUB213SDr = 11916,
+  VFNMSUB213SDr_Int = 11917,
+  VFNMSUB213SHZm = 11918,
+  VFNMSUB213SHZm_Int = 11919,
+  VFNMSUB213SHZmk_Int = 11920,
+  VFNMSUB213SHZmkz_Int = 11921,
+  VFNMSUB213SHZr = 11922,
+  VFNMSUB213SHZr_Int = 11923,
+  VFNMSUB213SHZrb = 11924,
+  VFNMSUB213SHZrb_Int = 11925,
+  VFNMSUB213SHZrbk_Int = 11926,
+  VFNMSUB213SHZrbkz_Int = 11927,
+  VFNMSUB213SHZrk_Int = 11928,
+  VFNMSUB213SHZrkz_Int = 11929,
+  VFNMSUB213SSZm = 11930,
+  VFNMSUB213SSZm_Int = 11931,
+  VFNMSUB213SSZmk_Int = 11932,
+  VFNMSUB213SSZmkz_Int = 11933,
+  VFNMSUB213SSZr = 11934,
+  VFNMSUB213SSZr_Int = 11935,
+  VFNMSUB213SSZrb = 11936,
+  VFNMSUB213SSZrb_Int = 11937,
+  VFNMSUB213SSZrbk_Int = 11938,
+  VFNMSUB213SSZrbkz_Int = 11939,
+  VFNMSUB213SSZrk_Int = 11940,
+  VFNMSUB213SSZrkz_Int = 11941,
+  VFNMSUB213SSm = 11942,
+  VFNMSUB213SSm_Int = 11943,
+  VFNMSUB213SSr = 11944,
+  VFNMSUB213SSr_Int = 11945,
+  VFNMSUB231BF16Z128m = 11946,
+  VFNMSUB231BF16Z128mb = 11947,
+  VFNMSUB231BF16Z128mbk = 11948,
+  VFNMSUB231BF16Z128mbkz = 11949,
+  VFNMSUB231BF16Z128mk = 11950,
+  VFNMSUB231BF16Z128mkz = 11951,
+  VFNMSUB231BF16Z128r = 11952,
+  VFNMSUB231BF16Z128rk = 11953,
+  VFNMSUB231BF16Z128rkz = 11954,
+  VFNMSUB231BF16Z256m = 11955,
+  VFNMSUB231BF16Z256mb = 11956,
+  VFNMSUB231BF16Z256mbk = 11957,
+  VFNMSUB231BF16Z256mbkz = 11958,
+  VFNMSUB231BF16Z256mk = 11959,
+  VFNMSUB231BF16Z256mkz = 11960,
+  VFNMSUB231BF16Z256r = 11961,
+  VFNMSUB231BF16Z256rk = 11962,
+  VFNMSUB231BF16Z256rkz = 11963,
+  VFNMSUB231BF16Zm = 11964,
+  VFNMSUB231BF16Zmb = 11965,
+  VFNMSUB231BF16Zmbk = 11966,
+  VFNMSUB231BF16Zmbkz = 11967,
+  VFNMSUB231BF16Zmk = 11968,
+  VFNMSUB231BF16Zmkz = 11969,
+  VFNMSUB231BF16Zr = 11970,
+  VFNMSUB231BF16Zrk = 11971,
+  VFNMSUB231BF16Zrkz = 11972,
+  VFNMSUB231PDYm = 11973,
+  VFNMSUB231PDYr = 11974,
+  VFNMSUB231PDZ128m = 11975,
+  VFNMSUB231PDZ128mb = 11976,
+  VFNMSUB231PDZ128mbk = 11977,
+  VFNMSUB231PDZ128mbkz = 11978,
+  VFNMSUB231PDZ128mk = 11979,
+  VFNMSUB231PDZ128mkz = 11980,
+  VFNMSUB231PDZ128r = 11981,
+  VFNMSUB231PDZ128rk = 11982,
+  VFNMSUB231PDZ128rkz = 11983,
+  VFNMSUB231PDZ256m = 11984,
+  VFNMSUB231PDZ256mb = 11985,
+  VFNMSUB231PDZ256mbk = 11986,
+  VFNMSUB231PDZ256mbkz = 11987,
+  VFNMSUB231PDZ256mk = 11988,
+  VFNMSUB231PDZ256mkz = 11989,
+  VFNMSUB231PDZ256r = 11990,
+  VFNMSUB231PDZ256rk = 11991,
+  VFNMSUB231PDZ256rkz = 11992,
+  VFNMSUB231PDZm = 11993,
+  VFNMSUB231PDZmb = 11994,
+  VFNMSUB231PDZmbk = 11995,
+  VFNMSUB231PDZmbkz = 11996,
+  VFNMSUB231PDZmk = 11997,
+  VFNMSUB231PDZmkz = 11998,
+  VFNMSUB231PDZr = 11999,
+  VFNMSUB231PDZrb = 12000,
+  VFNMSUB231PDZrbk = 12001,
+  VFNMSUB231PDZrbkz = 12002,
+  VFNMSUB231PDZrk = 12003,
+  VFNMSUB231PDZrkz = 12004,
+  VFNMSUB231PDm = 12005,
+  VFNMSUB231PDr = 12006,
+  VFNMSUB231PHZ128m = 12007,
+  VFNMSUB231PHZ128mb = 12008,
+  VFNMSUB231PHZ128mbk = 12009,
+  VFNMSUB231PHZ128mbkz = 12010,
+  VFNMSUB231PHZ128mk = 12011,
+  VFNMSUB231PHZ128mkz = 12012,
+  VFNMSUB231PHZ128r = 12013,
+  VFNMSUB231PHZ128rk = 12014,
+  VFNMSUB231PHZ128rkz = 12015,
+  VFNMSUB231PHZ256m = 12016,
+  VFNMSUB231PHZ256mb = 12017,
+  VFNMSUB231PHZ256mbk = 12018,
+  VFNMSUB231PHZ256mbkz = 12019,
+  VFNMSUB231PHZ256mk = 12020,
+  VFNMSUB231PHZ256mkz = 12021,
+  VFNMSUB231PHZ256r = 12022,
+  VFNMSUB231PHZ256rk = 12023,
+  VFNMSUB231PHZ256rkz = 12024,
+  VFNMSUB231PHZm = 12025,
+  VFNMSUB231PHZmb = 12026,
+  VFNMSUB231PHZmbk = 12027,
+  VFNMSUB231PHZmbkz = 12028,
+  VFNMSUB231PHZmk = 12029,
+  VFNMSUB231PHZmkz = 12030,
+  VFNMSUB231PHZr = 12031,
+  VFNMSUB231PHZrb = 12032,
+  VFNMSUB231PHZrbk = 12033,
+  VFNMSUB231PHZrbkz = 12034,
+  VFNMSUB231PHZrk = 12035,
+  VFNMSUB231PHZrkz = 12036,
+  VFNMSUB231PSYm = 12037,
+  VFNMSUB231PSYr = 12038,
+  VFNMSUB231PSZ128m = 12039,
+  VFNMSUB231PSZ128mb = 12040,
+  VFNMSUB231PSZ128mbk = 12041,
+  VFNMSUB231PSZ128mbkz = 12042,
+  VFNMSUB231PSZ128mk = 12043,
+  VFNMSUB231PSZ128mkz = 12044,
+  VFNMSUB231PSZ128r = 12045,
+  VFNMSUB231PSZ128rk = 12046,
+  VFNMSUB231PSZ128rkz = 12047,
+  VFNMSUB231PSZ256m = 12048,
+  VFNMSUB231PSZ256mb = 12049,
+  VFNMSUB231PSZ256mbk = 12050,
+  VFNMSUB231PSZ256mbkz = 12051,
+  VFNMSUB231PSZ256mk = 12052,
+  VFNMSUB231PSZ256mkz = 12053,
+  VFNMSUB231PSZ256r = 12054,
+  VFNMSUB231PSZ256rk = 12055,
+  VFNMSUB231PSZ256rkz = 12056,
+  VFNMSUB231PSZm = 12057,
+  VFNMSUB231PSZmb = 12058,
+  VFNMSUB231PSZmbk = 12059,
+  VFNMSUB231PSZmbkz = 12060,
+  VFNMSUB231PSZmk = 12061,
+  VFNMSUB231PSZmkz = 12062,
+  VFNMSUB231PSZr = 12063,
+  VFNMSUB231PSZrb = 12064,
+  VFNMSUB231PSZrbk = 12065,
+  VFNMSUB231PSZrbkz = 12066,
+  VFNMSUB231PSZrk = 12067,
+  VFNMSUB231PSZrkz = 12068,
+  VFNMSUB231PSm = 12069,
+  VFNMSUB231PSr = 12070,
+  VFNMSUB231SDZm = 12071,
+  VFNMSUB231SDZm_Int = 12072,
+  VFNMSUB231SDZmk_Int = 12073,
+  VFNMSUB231SDZmkz_Int = 12074,
+  VFNMSUB231SDZr = 12075,
+  VFNMSUB231SDZr_Int = 12076,
+  VFNMSUB231SDZrb = 12077,
+  VFNMSUB231SDZrb_Int = 12078,
+  VFNMSUB231SDZrbk_Int = 12079,
+  VFNMSUB231SDZrbkz_Int = 12080,
+  VFNMSUB231SDZrk_Int = 12081,
+  VFNMSUB231SDZrkz_Int = 12082,
+  VFNMSUB231SDm = 12083,
+  VFNMSUB231SDm_Int = 12084,
+  VFNMSUB231SDr = 12085,
+  VFNMSUB231SDr_Int = 12086,
+  VFNMSUB231SHZm = 12087,
+  VFNMSUB231SHZm_Int = 12088,
+  VFNMSUB231SHZmk_Int = 12089,
+  VFNMSUB231SHZmkz_Int = 12090,
+  VFNMSUB231SHZr = 12091,
+  VFNMSUB231SHZr_Int = 12092,
+  VFNMSUB231SHZrb = 12093,
+  VFNMSUB231SHZrb_Int = 12094,
+  VFNMSUB231SHZrbk_Int = 12095,
+  VFNMSUB231SHZrbkz_Int = 12096,
+  VFNMSUB231SHZrk_Int = 12097,
+  VFNMSUB231SHZrkz_Int = 12098,
+  VFNMSUB231SSZm = 12099,
+  VFNMSUB231SSZm_Int = 12100,
+  VFNMSUB231SSZmk_Int = 12101,
+  VFNMSUB231SSZmkz_Int = 12102,
+  VFNMSUB231SSZr = 12103,
+  VFNMSUB231SSZr_Int = 12104,
+  VFNMSUB231SSZrb = 12105,
+  VFNMSUB231SSZrb_Int = 12106,
+  VFNMSUB231SSZrbk_Int = 12107,
+  VFNMSUB231SSZrbkz_Int = 12108,
+  VFNMSUB231SSZrk_Int = 12109,
+  VFNMSUB231SSZrkz_Int = 12110,
+  VFNMSUB231SSm = 12111,
+  VFNMSUB231SSm_Int = 12112,
+  VFNMSUB231SSr = 12113,
+  VFNMSUB231SSr_Int = 12114,
+  VFNMSUBPD4Ymr = 12115,
+  VFNMSUBPD4Yrm = 12116,
+  VFNMSUBPD4Yrr = 12117,
+  VFNMSUBPD4Yrr_REV = 12118,
+  VFNMSUBPD4mr = 12119,
+  VFNMSUBPD4rm = 12120,
+  VFNMSUBPD4rr = 12121,
+  VFNMSUBPD4rr_REV = 12122,
+  VFNMSUBPS4Ymr = 12123,
+  VFNMSUBPS4Yrm = 12124,
+  VFNMSUBPS4Yrr = 12125,
+  VFNMSUBPS4Yrr_REV = 12126,
+  VFNMSUBPS4mr = 12127,
+  VFNMSUBPS4rm = 12128,
+  VFNMSUBPS4rr = 12129,
+  VFNMSUBPS4rr_REV = 12130,
+  VFNMSUBSD4mr = 12131,
+  VFNMSUBSD4mr_Int = 12132,
+  VFNMSUBSD4rm = 12133,
+  VFNMSUBSD4rm_Int = 12134,
+  VFNMSUBSD4rr = 12135,
+  VFNMSUBSD4rr_Int = 12136,
+  VFNMSUBSD4rr_Int_REV = 12137,
+  VFNMSUBSD4rr_REV = 12138,
+  VFNMSUBSS4mr = 12139,
+  VFNMSUBSS4mr_Int = 12140,
+  VFNMSUBSS4rm = 12141,
+  VFNMSUBSS4rm_Int = 12142,
+  VFNMSUBSS4rr = 12143,
+  VFNMSUBSS4rr_Int = 12144,
+  VFNMSUBSS4rr_Int_REV = 12145,
+  VFNMSUBSS4rr_REV = 12146,
+  VFPCLASSBF16Z128mbi = 12147,
+  VFPCLASSBF16Z128mbik = 12148,
+  VFPCLASSBF16Z128mi = 12149,
+  VFPCLASSBF16Z128mik = 12150,
+  VFPCLASSBF16Z128ri = 12151,
+  VFPCLASSBF16Z128rik = 12152,
+  VFPCLASSBF16Z256mbi = 12153,
+  VFPCLASSBF16Z256mbik = 12154,
+  VFPCLASSBF16Z256mi = 12155,
+  VFPCLASSBF16Z256mik = 12156,
+  VFPCLASSBF16Z256ri = 12157,
+  VFPCLASSBF16Z256rik = 12158,
+  VFPCLASSBF16Zmbi = 12159,
+  VFPCLASSBF16Zmbik = 12160,
+  VFPCLASSBF16Zmi = 12161,
+  VFPCLASSBF16Zmik = 12162,
+  VFPCLASSBF16Zri = 12163,
+  VFPCLASSBF16Zrik = 12164,
+  VFPCLASSPDZ128mbi = 12165,
+  VFPCLASSPDZ128mbik = 12166,
+  VFPCLASSPDZ128mi = 12167,
+  VFPCLASSPDZ128mik = 12168,
+  VFPCLASSPDZ128ri = 12169,
+  VFPCLASSPDZ128rik = 12170,
+  VFPCLASSPDZ256mbi = 12171,
+  VFPCLASSPDZ256mbik = 12172,
+  VFPCLASSPDZ256mi = 12173,
+  VFPCLASSPDZ256mik = 12174,
+  VFPCLASSPDZ256ri = 12175,
+  VFPCLASSPDZ256rik = 12176,
+  VFPCLASSPDZmbi = 12177,
+  VFPCLASSPDZmbik = 12178,
+  VFPCLASSPDZmi = 12179,
+  VFPCLASSPDZmik = 12180,
+  VFPCLASSPDZri = 12181,
+  VFPCLASSPDZrik = 12182,
+  VFPCLASSPHZ128mbi = 12183,
+  VFPCLASSPHZ128mbik = 12184,
+  VFPCLASSPHZ128mi = 12185,
+  VFPCLASSPHZ128mik = 12186,
+  VFPCLASSPHZ128ri = 12187,
+  VFPCLASSPHZ128rik = 12188,
+  VFPCLASSPHZ256mbi = 12189,
+  VFPCLASSPHZ256mbik = 12190,
+  VFPCLASSPHZ256mi = 12191,
+  VFPCLASSPHZ256mik = 12192,
+  VFPCLASSPHZ256ri = 12193,
+  VFPCLASSPHZ256rik = 12194,
+  VFPCLASSPHZmbi = 12195,
+  VFPCLASSPHZmbik = 12196,
+  VFPCLASSPHZmi = 12197,
+  VFPCLASSPHZmik = 12198,
+  VFPCLASSPHZri = 12199,
+  VFPCLASSPHZrik = 12200,
+  VFPCLASSPSZ128mbi = 12201,
+  VFPCLASSPSZ128mbik = 12202,
+  VFPCLASSPSZ128mi = 12203,
+  VFPCLASSPSZ128mik = 12204,
+  VFPCLASSPSZ128ri = 12205,
+  VFPCLASSPSZ128rik = 12206,
+  VFPCLASSPSZ256mbi = 12207,
+  VFPCLASSPSZ256mbik = 12208,
+  VFPCLASSPSZ256mi = 12209,
+  VFPCLASSPSZ256mik = 12210,
+  VFPCLASSPSZ256ri = 12211,
+  VFPCLASSPSZ256rik = 12212,
+  VFPCLASSPSZmbi = 12213,
+  VFPCLASSPSZmbik = 12214,
+  VFPCLASSPSZmi = 12215,
+  VFPCLASSPSZmik = 12216,
+  VFPCLASSPSZri = 12217,
+  VFPCLASSPSZrik = 12218,
+  VFPCLASSSDZmi = 12219,
+  VFPCLASSSDZmik = 12220,
+  VFPCLASSSDZri = 12221,
+  VFPCLASSSDZrik = 12222,
+  VFPCLASSSHZmi = 12223,
+  VFPCLASSSHZmik = 12224,
+  VFPCLASSSHZri = 12225,
+  VFPCLASSSHZrik = 12226,
+  VFPCLASSSSZmi = 12227,
+  VFPCLASSSSZmik = 12228,
+  VFPCLASSSSZri = 12229,
+  VFPCLASSSSZrik = 12230,
+  VFRCZPDYrm = 12231,
+  VFRCZPDYrr = 12232,
+  VFRCZPDrm = 12233,
+  VFRCZPDrr = 12234,
+  VFRCZPSYrm = 12235,
+  VFRCZPSYrr = 12236,
+  VFRCZPSrm = 12237,
+  VFRCZPSrr = 12238,
+  VFRCZSDrm = 12239,
+  VFRCZSDrr = 12240,
+  VFRCZSSrm = 12241,
+  VFRCZSSrr = 12242,
+  VGATHERDPDYrm = 12243,
+  VGATHERDPDZ128rm = 12244,
+  VGATHERDPDZ256rm = 12245,
+  VGATHERDPDZrm = 12246,
+  VGATHERDPDrm = 12247,
+  VGATHERDPSYrm = 12248,
+  VGATHERDPSZ128rm = 12249,
+  VGATHERDPSZ256rm = 12250,
+  VGATHERDPSZrm = 12251,
+  VGATHERDPSrm = 12252,
+  VGATHERPF0DPDm = 12253,
+  VGATHERPF0DPSm = 12254,
+  VGATHERPF0QPDm = 12255,
+  VGATHERPF0QPSm = 12256,
+  VGATHERPF1DPDm = 12257,
+  VGATHERPF1DPSm = 12258,
+  VGATHERPF1QPDm = 12259,
+  VGATHERPF1QPSm = 12260,
+  VGATHERQPDYrm = 12261,
+  VGATHERQPDZ128rm = 12262,
+  VGATHERQPDZ256rm = 12263,
+  VGATHERQPDZrm = 12264,
+  VGATHERQPDrm = 12265,
+  VGATHERQPSYrm = 12266,
+  VGATHERQPSZ128rm = 12267,
+  VGATHERQPSZ256rm = 12268,
+  VGATHERQPSZrm = 12269,
+  VGATHERQPSrm = 12270,
+  VGETEXPBF16Z128m = 12271,
+  VGETEXPBF16Z128mb = 12272,
+  VGETEXPBF16Z128mbk = 12273,
+  VGETEXPBF16Z128mbkz = 12274,
+  VGETEXPBF16Z128mk = 12275,
+  VGETEXPBF16Z128mkz = 12276,
+  VGETEXPBF16Z128r = 12277,
+  VGETEXPBF16Z128rk = 12278,
+  VGETEXPBF16Z128rkz = 12279,
+  VGETEXPBF16Z256m = 12280,
+  VGETEXPBF16Z256mb = 12281,
+  VGETEXPBF16Z256mbk = 12282,
+  VGETEXPBF16Z256mbkz = 12283,
+  VGETEXPBF16Z256mk = 12284,
+  VGETEXPBF16Z256mkz = 12285,
+  VGETEXPBF16Z256r = 12286,
+  VGETEXPBF16Z256rk = 12287,
+  VGETEXPBF16Z256rkz = 12288,
+  VGETEXPBF16Zm = 12289,
+  VGETEXPBF16Zmb = 12290,
+  VGETEXPBF16Zmbk = 12291,
+  VGETEXPBF16Zmbkz = 12292,
+  VGETEXPBF16Zmk = 12293,
+  VGETEXPBF16Zmkz = 12294,
+  VGETEXPBF16Zr = 12295,
+  VGETEXPBF16Zrk = 12296,
+  VGETEXPBF16Zrkz = 12297,
+  VGETEXPPDZ128m = 12298,
+  VGETEXPPDZ128mb = 12299,
+  VGETEXPPDZ128mbk = 12300,
+  VGETEXPPDZ128mbkz = 12301,
+  VGETEXPPDZ128mk = 12302,
+  VGETEXPPDZ128mkz = 12303,
+  VGETEXPPDZ128r = 12304,
+  VGETEXPPDZ128rk = 12305,
+  VGETEXPPDZ128rkz = 12306,
+  VGETEXPPDZ256m = 12307,
+  VGETEXPPDZ256mb = 12308,
+  VGETEXPPDZ256mbk = 12309,
+  VGETEXPPDZ256mbkz = 12310,
+  VGETEXPPDZ256mk = 12311,
+  VGETEXPPDZ256mkz = 12312,
+  VGETEXPPDZ256r = 12313,
+  VGETEXPPDZ256rk = 12314,
+  VGETEXPPDZ256rkz = 12315,
+  VGETEXPPDZm = 12316,
+  VGETEXPPDZmb = 12317,
+  VGETEXPPDZmbk = 12318,
+  VGETEXPPDZmbkz = 12319,
+  VGETEXPPDZmk = 12320,
+  VGETEXPPDZmkz = 12321,
+  VGETEXPPDZr = 12322,
+  VGETEXPPDZrb = 12323,
+  VGETEXPPDZrbk = 12324,
+  VGETEXPPDZrbkz = 12325,
+  VGETEXPPDZrk = 12326,
+  VGETEXPPDZrkz = 12327,
+  VGETEXPPHZ128m = 12328,
+  VGETEXPPHZ128mb = 12329,
+  VGETEXPPHZ128mbk = 12330,
+  VGETEXPPHZ128mbkz = 12331,
+  VGETEXPPHZ128mk = 12332,
+  VGETEXPPHZ128mkz = 12333,
+  VGETEXPPHZ128r = 12334,
+  VGETEXPPHZ128rk = 12335,
+  VGETEXPPHZ128rkz = 12336,
+  VGETEXPPHZ256m = 12337,
+  VGETEXPPHZ256mb = 12338,
+  VGETEXPPHZ256mbk = 12339,
+  VGETEXPPHZ256mbkz = 12340,
+  VGETEXPPHZ256mk = 12341,
+  VGETEXPPHZ256mkz = 12342,
+  VGETEXPPHZ256r = 12343,
+  VGETEXPPHZ256rk = 12344,
+  VGETEXPPHZ256rkz = 12345,
+  VGETEXPPHZm = 12346,
+  VGETEXPPHZmb = 12347,
+  VGETEXPPHZmbk = 12348,
+  VGETEXPPHZmbkz = 12349,
+  VGETEXPPHZmk = 12350,
+  VGETEXPPHZmkz = 12351,
+  VGETEXPPHZr = 12352,
+  VGETEXPPHZrb = 12353,
+  VGETEXPPHZrbk = 12354,
+  VGETEXPPHZrbkz = 12355,
+  VGETEXPPHZrk = 12356,
+  VGETEXPPHZrkz = 12357,
+  VGETEXPPSZ128m = 12358,
+  VGETEXPPSZ128mb = 12359,
+  VGETEXPPSZ128mbk = 12360,
+  VGETEXPPSZ128mbkz = 12361,
+  VGETEXPPSZ128mk = 12362,
+  VGETEXPPSZ128mkz = 12363,
+  VGETEXPPSZ128r = 12364,
+  VGETEXPPSZ128rk = 12365,
+  VGETEXPPSZ128rkz = 12366,
+  VGETEXPPSZ256m = 12367,
+  VGETEXPPSZ256mb = 12368,
+  VGETEXPPSZ256mbk = 12369,
+  VGETEXPPSZ256mbkz = 12370,
+  VGETEXPPSZ256mk = 12371,
+  VGETEXPPSZ256mkz = 12372,
+  VGETEXPPSZ256r = 12373,
+  VGETEXPPSZ256rk = 12374,
+  VGETEXPPSZ256rkz = 12375,
+  VGETEXPPSZm = 12376,
+  VGETEXPPSZmb = 12377,
+  VGETEXPPSZmbk = 12378,
+  VGETEXPPSZmbkz = 12379,
+  VGETEXPPSZmk = 12380,
+  VGETEXPPSZmkz = 12381,
+  VGETEXPPSZr = 12382,
+  VGETEXPPSZrb = 12383,
+  VGETEXPPSZrbk = 12384,
+  VGETEXPPSZrbkz = 12385,
+  VGETEXPPSZrk = 12386,
+  VGETEXPPSZrkz = 12387,
+  VGETEXPSDZm = 12388,
+  VGETEXPSDZmk = 12389,
+  VGETEXPSDZmkz = 12390,
+  VGETEXPSDZr = 12391,
+  VGETEXPSDZrb = 12392,
+  VGETEXPSDZrbk = 12393,
+  VGETEXPSDZrbkz = 12394,
+  VGETEXPSDZrk = 12395,
+  VGETEXPSDZrkz = 12396,
+  VGETEXPSHZm = 12397,
+  VGETEXPSHZmk = 12398,
+  VGETEXPSHZmkz = 12399,
+  VGETEXPSHZr = 12400,
+  VGETEXPSHZrb = 12401,
+  VGETEXPSHZrbk = 12402,
+  VGETEXPSHZrbkz = 12403,
+  VGETEXPSHZrk = 12404,
+  VGETEXPSHZrkz = 12405,
+  VGETEXPSSZm = 12406,
+  VGETEXPSSZmk = 12407,
+  VGETEXPSSZmkz = 12408,
+  VGETEXPSSZr = 12409,
+  VGETEXPSSZrb = 12410,
+  VGETEXPSSZrbk = 12411,
+  VGETEXPSSZrbkz = 12412,
+  VGETEXPSSZrk = 12413,
+  VGETEXPSSZrkz = 12414,
+  VGETMANTBF16Z128rmbi = 12415,
+  VGETMANTBF16Z128rmbik = 12416,
+  VGETMANTBF16Z128rmbikz = 12417,
+  VGETMANTBF16Z128rmi = 12418,
+  VGETMANTBF16Z128rmik = 12419,
+  VGETMANTBF16Z128rmikz = 12420,
+  VGETMANTBF16Z128rri = 12421,
+  VGETMANTBF16Z128rrik = 12422,
+  VGETMANTBF16Z128rrikz = 12423,
+  VGETMANTBF16Z256rmbi = 12424,
+  VGETMANTBF16Z256rmbik = 12425,
+  VGETMANTBF16Z256rmbikz = 12426,
+  VGETMANTBF16Z256rmi = 12427,
+  VGETMANTBF16Z256rmik = 12428,
+  VGETMANTBF16Z256rmikz = 12429,
+  VGETMANTBF16Z256rri = 12430,
+  VGETMANTBF16Z256rrik = 12431,
+  VGETMANTBF16Z256rrikz = 12432,
+  VGETMANTBF16Zrmbi = 12433,
+  VGETMANTBF16Zrmbik = 12434,
+  VGETMANTBF16Zrmbikz = 12435,
+  VGETMANTBF16Zrmi = 12436,
+  VGETMANTBF16Zrmik = 12437,
+  VGETMANTBF16Zrmikz = 12438,
+  VGETMANTBF16Zrri = 12439,
+  VGETMANTBF16Zrrik = 12440,
+  VGETMANTBF16Zrrikz = 12441,
+  VGETMANTPDZ128rmbi = 12442,
+  VGETMANTPDZ128rmbik = 12443,
+  VGETMANTPDZ128rmbikz = 12444,
+  VGETMANTPDZ128rmi = 12445,
+  VGETMANTPDZ128rmik = 12446,
+  VGETMANTPDZ128rmikz = 12447,
+  VGETMANTPDZ128rri = 12448,
+  VGETMANTPDZ128rrik = 12449,
+  VGETMANTPDZ128rrikz = 12450,
+  VGETMANTPDZ256rmbi = 12451,
+  VGETMANTPDZ256rmbik = 12452,
+  VGETMANTPDZ256rmbikz = 12453,
+  VGETMANTPDZ256rmi = 12454,
+  VGETMANTPDZ256rmik = 12455,
+  VGETMANTPDZ256rmikz = 12456,
+  VGETMANTPDZ256rri = 12457,
+  VGETMANTPDZ256rrik = 12458,
+  VGETMANTPDZ256rrikz = 12459,
+  VGETMANTPDZrmbi = 12460,
+  VGETMANTPDZrmbik = 12461,
+  VGETMANTPDZrmbikz = 12462,
+  VGETMANTPDZrmi = 12463,
+  VGETMANTPDZrmik = 12464,
+  VGETMANTPDZrmikz = 12465,
+  VGETMANTPDZrri = 12466,
+  VGETMANTPDZrrib = 12467,
+  VGETMANTPDZrribk = 12468,
+  VGETMANTPDZrribkz = 12469,
+  VGETMANTPDZrrik = 12470,
+  VGETMANTPDZrrikz = 12471,
+  VGETMANTPHZ128rmbi = 12472,
+  VGETMANTPHZ128rmbik = 12473,
+  VGETMANTPHZ128rmbikz = 12474,
+  VGETMANTPHZ128rmi = 12475,
+  VGETMANTPHZ128rmik = 12476,
+  VGETMANTPHZ128rmikz = 12477,
+  VGETMANTPHZ128rri = 12478,
+  VGETMANTPHZ128rrik = 12479,
+  VGETMANTPHZ128rrikz = 12480,
+  VGETMANTPHZ256rmbi = 12481,
+  VGETMANTPHZ256rmbik = 12482,
+  VGETMANTPHZ256rmbikz = 12483,
+  VGETMANTPHZ256rmi = 12484,
+  VGETMANTPHZ256rmik = 12485,
+  VGETMANTPHZ256rmikz = 12486,
+  VGETMANTPHZ256rri = 12487,
+  VGETMANTPHZ256rrik = 12488,
+  VGETMANTPHZ256rrikz = 12489,
+  VGETMANTPHZrmbi = 12490,
+  VGETMANTPHZrmbik = 12491,
+  VGETMANTPHZrmbikz = 12492,
+  VGETMANTPHZrmi = 12493,
+  VGETMANTPHZrmik = 12494,
+  VGETMANTPHZrmikz = 12495,
+  VGETMANTPHZrri = 12496,
+  VGETMANTPHZrrib = 12497,
+  VGETMANTPHZrribk = 12498,
+  VGETMANTPHZrribkz = 12499,
+  VGETMANTPHZrrik = 12500,
+  VGETMANTPHZrrikz = 12501,
+  VGETMANTPSZ128rmbi = 12502,
+  VGETMANTPSZ128rmbik = 12503,
+  VGETMANTPSZ128rmbikz = 12504,
+  VGETMANTPSZ128rmi = 12505,
+  VGETMANTPSZ128rmik = 12506,
+  VGETMANTPSZ128rmikz = 12507,
+  VGETMANTPSZ128rri = 12508,
+  VGETMANTPSZ128rrik = 12509,
+  VGETMANTPSZ128rrikz = 12510,
+  VGETMANTPSZ256rmbi = 12511,
+  VGETMANTPSZ256rmbik = 12512,
+  VGETMANTPSZ256rmbikz = 12513,
+  VGETMANTPSZ256rmi = 12514,
+  VGETMANTPSZ256rmik = 12515,
+  VGETMANTPSZ256rmikz = 12516,
+  VGETMANTPSZ256rri = 12517,
+  VGETMANTPSZ256rrik = 12518,
+  VGETMANTPSZ256rrikz = 12519,
+  VGETMANTPSZrmbi = 12520,
+  VGETMANTPSZrmbik = 12521,
+  VGETMANTPSZrmbikz = 12522,
+  VGETMANTPSZrmi = 12523,
+  VGETMANTPSZrmik = 12524,
+  VGETMANTPSZrmikz = 12525,
+  VGETMANTPSZrri = 12526,
+  VGETMANTPSZrrib = 12527,
+  VGETMANTPSZrribk = 12528,
+  VGETMANTPSZrribkz = 12529,
+  VGETMANTPSZrrik = 12530,
+  VGETMANTPSZrrikz = 12531,
+  VGETMANTSDZrmi = 12532,
+  VGETMANTSDZrmik = 12533,
+  VGETMANTSDZrmikz = 12534,
+  VGETMANTSDZrri = 12535,
+  VGETMANTSDZrrib = 12536,
+  VGETMANTSDZrribk = 12537,
+  VGETMANTSDZrribkz = 12538,
+  VGETMANTSDZrrik = 12539,
+  VGETMANTSDZrrikz = 12540,
+  VGETMANTSHZrmi = 12541,
+  VGETMANTSHZrmik = 12542,
+  VGETMANTSHZrmikz = 12543,
+  VGETMANTSHZrri = 12544,
+  VGETMANTSHZrrib = 12545,
+  VGETMANTSHZrribk = 12546,
+  VGETMANTSHZrribkz = 12547,
+  VGETMANTSHZrrik = 12548,
+  VGETMANTSHZrrikz = 12549,
+  VGETMANTSSZrmi = 12550,
+  VGETMANTSSZrmik = 12551,
+  VGETMANTSSZrmikz = 12552,
+  VGETMANTSSZrri = 12553,
+  VGETMANTSSZrrib = 12554,
+  VGETMANTSSZrribk = 12555,
+  VGETMANTSSZrribkz = 12556,
+  VGETMANTSSZrrik = 12557,
+  VGETMANTSSZrrikz = 12558,
+  VGF2P8AFFINEINVQBYrmi = 12559,
+  VGF2P8AFFINEINVQBYrri = 12560,
+  VGF2P8AFFINEINVQBZ128rmbi = 12561,
+  VGF2P8AFFINEINVQBZ128rmbik = 12562,
+  VGF2P8AFFINEINVQBZ128rmbikz = 12563,
+  VGF2P8AFFINEINVQBZ128rmi = 12564,
+  VGF2P8AFFINEINVQBZ128rmik = 12565,
+  VGF2P8AFFINEINVQBZ128rmikz = 12566,
+  VGF2P8AFFINEINVQBZ128rri = 12567,
+  VGF2P8AFFINEINVQBZ128rrik = 12568,
+  VGF2P8AFFINEINVQBZ128rrikz = 12569,
+  VGF2P8AFFINEINVQBZ256rmbi = 12570,
+  VGF2P8AFFINEINVQBZ256rmbik = 12571,
+  VGF2P8AFFINEINVQBZ256rmbikz = 12572,
+  VGF2P8AFFINEINVQBZ256rmi = 12573,
+  VGF2P8AFFINEINVQBZ256rmik = 12574,
+  VGF2P8AFFINEINVQBZ256rmikz = 12575,
+  VGF2P8AFFINEINVQBZ256rri = 12576,
+  VGF2P8AFFINEINVQBZ256rrik = 12577,
+  VGF2P8AFFINEINVQBZ256rrikz = 12578,
+  VGF2P8AFFINEINVQBZrmbi = 12579,
+  VGF2P8AFFINEINVQBZrmbik = 12580,
+  VGF2P8AFFINEINVQBZrmbikz = 12581,
+  VGF2P8AFFINEINVQBZrmi = 12582,
+  VGF2P8AFFINEINVQBZrmik = 12583,
+  VGF2P8AFFINEINVQBZrmikz = 12584,
+  VGF2P8AFFINEINVQBZrri = 12585,
+  VGF2P8AFFINEINVQBZrrik = 12586,
+  VGF2P8AFFINEINVQBZrrikz = 12587,
+  VGF2P8AFFINEINVQBrmi = 12588,
+  VGF2P8AFFINEINVQBrri = 12589,
+  VGF2P8AFFINEQBYrmi = 12590,
+  VGF2P8AFFINEQBYrri = 12591,
+  VGF2P8AFFINEQBZ128rmbi = 12592,
+  VGF2P8AFFINEQBZ128rmbik = 12593,
+  VGF2P8AFFINEQBZ128rmbikz = 12594,
+  VGF2P8AFFINEQBZ128rmi = 12595,
+  VGF2P8AFFINEQBZ128rmik = 12596,
+  VGF2P8AFFINEQBZ128rmikz = 12597,
+  VGF2P8AFFINEQBZ128rri = 12598,
+  VGF2P8AFFINEQBZ128rrik = 12599,
+  VGF2P8AFFINEQBZ128rrikz = 12600,
+  VGF2P8AFFINEQBZ256rmbi = 12601,
+  VGF2P8AFFINEQBZ256rmbik = 12602,
+  VGF2P8AFFINEQBZ256rmbikz = 12603,
+  VGF2P8AFFINEQBZ256rmi = 12604,
+  VGF2P8AFFINEQBZ256rmik = 12605,
+  VGF2P8AFFINEQBZ256rmikz = 12606,
+  VGF2P8AFFINEQBZ256rri = 12607,
+  VGF2P8AFFINEQBZ256rrik = 12608,
+  VGF2P8AFFINEQBZ256rrikz = 12609,
+  VGF2P8AFFINEQBZrmbi = 12610,
+  VGF2P8AFFINEQBZrmbik = 12611,
+  VGF2P8AFFINEQBZrmbikz = 12612,
+  VGF2P8AFFINEQBZrmi = 12613,
+  VGF2P8AFFINEQBZrmik = 12614,
+  VGF2P8AFFINEQBZrmikz = 12615,
+  VGF2P8AFFINEQBZrri = 12616,
+  VGF2P8AFFINEQBZrrik = 12617,
+  VGF2P8AFFINEQBZrrikz = 12618,
+  VGF2P8AFFINEQBrmi = 12619,
+  VGF2P8AFFINEQBrri = 12620,
+  VGF2P8MULBYrm = 12621,
+  VGF2P8MULBYrr = 12622,
+  VGF2P8MULBZ128rm = 12623,
+  VGF2P8MULBZ128rmk = 12624,
+  VGF2P8MULBZ128rmkz = 12625,
+  VGF2P8MULBZ128rr = 12626,
+  VGF2P8MULBZ128rrk = 12627,
+  VGF2P8MULBZ128rrkz = 12628,
+  VGF2P8MULBZ256rm = 12629,
+  VGF2P8MULBZ256rmk = 12630,
+  VGF2P8MULBZ256rmkz = 12631,
+  VGF2P8MULBZ256rr = 12632,
+  VGF2P8MULBZ256rrk = 12633,
+  VGF2P8MULBZ256rrkz = 12634,
+  VGF2P8MULBZrm = 12635,
+  VGF2P8MULBZrmk = 12636,
+  VGF2P8MULBZrmkz = 12637,
+  VGF2P8MULBZrr = 12638,
+  VGF2P8MULBZrrk = 12639,
+  VGF2P8MULBZrrkz = 12640,
+  VGF2P8MULBrm = 12641,
+  VGF2P8MULBrr = 12642,
+  VHADDPDYrm = 12643,
+  VHADDPDYrr = 12644,
+  VHADDPDrm = 12645,
+  VHADDPDrr = 12646,
+  VHADDPSYrm = 12647,
+  VHADDPSYrr = 12648,
+  VHADDPSrm = 12649,
+  VHADDPSrr = 12650,
+  VHSUBPDYrm = 12651,
+  VHSUBPDYrr = 12652,
+  VHSUBPDrm = 12653,
+  VHSUBPDrr = 12654,
+  VHSUBPSYrm = 12655,
+  VHSUBPSYrr = 12656,
+  VHSUBPSrm = 12657,
+  VHSUBPSrr = 12658,
+  VINSERTF128rmi = 12659,
+  VINSERTF128rri = 12660,
+  VINSERTF32X4Z256rmi = 12661,
+  VINSERTF32X4Z256rmik = 12662,
+  VINSERTF32X4Z256rmikz = 12663,
+  VINSERTF32X4Z256rri = 12664,
+  VINSERTF32X4Z256rrik = 12665,
+  VINSERTF32X4Z256rrikz = 12666,
+  VINSERTF32X4Zrmi = 12667,
+  VINSERTF32X4Zrmik = 12668,
+  VINSERTF32X4Zrmikz = 12669,
+  VINSERTF32X4Zrri = 12670,
+  VINSERTF32X4Zrrik = 12671,
+  VINSERTF32X4Zrrikz = 12672,
+  VINSERTF32X8Zrmi = 12673,
+  VINSERTF32X8Zrmik = 12674,
+  VINSERTF32X8Zrmikz = 12675,
+  VINSERTF32X8Zrri = 12676,
+  VINSERTF32X8Zrrik = 12677,
+  VINSERTF32X8Zrrikz = 12678,
+  VINSERTF64X2Z256rmi = 12679,
+  VINSERTF64X2Z256rmik = 12680,
+  VINSERTF64X2Z256rmikz = 12681,
+  VINSERTF64X2Z256rri = 12682,
+  VINSERTF64X2Z256rrik = 12683,
+  VINSERTF64X2Z256rrikz = 12684,
+  VINSERTF64X2Zrmi = 12685,
+  VINSERTF64X2Zrmik = 12686,
+  VINSERTF64X2Zrmikz = 12687,
+  VINSERTF64X2Zrri = 12688,
+  VINSERTF64X2Zrrik = 12689,
+  VINSERTF64X2Zrrikz = 12690,
+  VINSERTF64X4Zrmi = 12691,
+  VINSERTF64X4Zrmik = 12692,
+  VINSERTF64X4Zrmikz = 12693,
+  VINSERTF64X4Zrri = 12694,
+  VINSERTF64X4Zrrik = 12695,
+  VINSERTF64X4Zrrikz = 12696,
+  VINSERTI128rmi = 12697,
+  VINSERTI128rri = 12698,
+  VINSERTI32X4Z256rmi = 12699,
+  VINSERTI32X4Z256rmik = 12700,
+  VINSERTI32X4Z256rmikz = 12701,
+  VINSERTI32X4Z256rri = 12702,
+  VINSERTI32X4Z256rrik = 12703,
+  VINSERTI32X4Z256rrikz = 12704,
+  VINSERTI32X4Zrmi = 12705,
+  VINSERTI32X4Zrmik = 12706,
+  VINSERTI32X4Zrmikz = 12707,
+  VINSERTI32X4Zrri = 12708,
+  VINSERTI32X4Zrrik = 12709,
+  VINSERTI32X4Zrrikz = 12710,
+  VINSERTI32X8Zrmi = 12711,
+  VINSERTI32X8Zrmik = 12712,
+  VINSERTI32X8Zrmikz = 12713,
+  VINSERTI32X8Zrri = 12714,
+  VINSERTI32X8Zrrik = 12715,
+  VINSERTI32X8Zrrikz = 12716,
+  VINSERTI64X2Z256rmi = 12717,
+  VINSERTI64X2Z256rmik = 12718,
+  VINSERTI64X2Z256rmikz = 12719,
+  VINSERTI64X2Z256rri = 12720,
+  VINSERTI64X2Z256rrik = 12721,
+  VINSERTI64X2Z256rrikz = 12722,
+  VINSERTI64X2Zrmi = 12723,
+  VINSERTI64X2Zrmik = 12724,
+  VINSERTI64X2Zrmikz = 12725,
+  VINSERTI64X2Zrri = 12726,
+  VINSERTI64X2Zrrik = 12727,
+  VINSERTI64X2Zrrikz = 12728,
+  VINSERTI64X4Zrmi = 12729,
+  VINSERTI64X4Zrmik = 12730,
+  VINSERTI64X4Zrmikz = 12731,
+  VINSERTI64X4Zrri = 12732,
+  VINSERTI64X4Zrrik = 12733,
+  VINSERTI64X4Zrrikz = 12734,
+  VINSERTPSZrmi = 12735,
+  VINSERTPSZrri = 12736,
+  VINSERTPSrmi = 12737,
+  VINSERTPSrri = 12738,
+  VLDDQUYrm = 12739,
+  VLDDQUrm = 12740,
+  VLDMXCSR = 12741,
+  VMASKMOVDQU = 12742,
+  VMASKMOVDQU64 = 12743,
+  VMASKMOVPDYmr = 12744,
+  VMASKMOVPDYrm = 12745,
+  VMASKMOVPDmr = 12746,
+  VMASKMOVPDrm = 12747,
+  VMASKMOVPSYmr = 12748,
+  VMASKMOVPSYrm = 12749,
+  VMASKMOVPSmr = 12750,
+  VMASKMOVPSrm = 12751,
+  VMAXBF16Z128rm = 12752,
+  VMAXBF16Z128rmb = 12753,
+  VMAXBF16Z128rmbk = 12754,
+  VMAXBF16Z128rmbkz = 12755,
+  VMAXBF16Z128rmk = 12756,
+  VMAXBF16Z128rmkz = 12757,
+  VMAXBF16Z128rr = 12758,
+  VMAXBF16Z128rrk = 12759,
+  VMAXBF16Z128rrkz = 12760,
+  VMAXBF16Z256rm = 12761,
+  VMAXBF16Z256rmb = 12762,
+  VMAXBF16Z256rmbk = 12763,
+  VMAXBF16Z256rmbkz = 12764,
+  VMAXBF16Z256rmk = 12765,
+  VMAXBF16Z256rmkz = 12766,
+  VMAXBF16Z256rr = 12767,
+  VMAXBF16Z256rrk = 12768,
+  VMAXBF16Z256rrkz = 12769,
+  VMAXBF16Zrm = 12770,
+  VMAXBF16Zrmb = 12771,
+  VMAXBF16Zrmbk = 12772,
+  VMAXBF16Zrmbkz = 12773,
+  VMAXBF16Zrmk = 12774,
+  VMAXBF16Zrmkz = 12775,
+  VMAXBF16Zrr = 12776,
+  VMAXBF16Zrrk = 12777,
+  VMAXBF16Zrrkz = 12778,
+  VMAXCPDYrm = 12779,
+  VMAXCPDYrr = 12780,
+  VMAXCPDZ128rm = 12781,
+  VMAXCPDZ128rmb = 12782,
+  VMAXCPDZ128rmbk = 12783,
+  VMAXCPDZ128rmbkz = 12784,
+  VMAXCPDZ128rmk = 12785,
+  VMAXCPDZ128rmkz = 12786,
+  VMAXCPDZ128rr = 12787,
+  VMAXCPDZ128rrk = 12788,
+  VMAXCPDZ128rrkz = 12789,
+  VMAXCPDZ256rm = 12790,
+  VMAXCPDZ256rmb = 12791,
+  VMAXCPDZ256rmbk = 12792,
+  VMAXCPDZ256rmbkz = 12793,
+  VMAXCPDZ256rmk = 12794,
+  VMAXCPDZ256rmkz = 12795,
+  VMAXCPDZ256rr = 12796,
+  VMAXCPDZ256rrk = 12797,
+  VMAXCPDZ256rrkz = 12798,
+  VMAXCPDZrm = 12799,
+  VMAXCPDZrmb = 12800,
+  VMAXCPDZrmbk = 12801,
+  VMAXCPDZrmbkz = 12802,
+  VMAXCPDZrmk = 12803,
+  VMAXCPDZrmkz = 12804,
+  VMAXCPDZrr = 12805,
+  VMAXCPDZrrk = 12806,
+  VMAXCPDZrrkz = 12807,
+  VMAXCPDrm = 12808,
+  VMAXCPDrr = 12809,
+  VMAXCPHZ128rm = 12810,
+  VMAXCPHZ128rmb = 12811,
+  VMAXCPHZ128rmbk = 12812,
+  VMAXCPHZ128rmbkz = 12813,
+  VMAXCPHZ128rmk = 12814,
+  VMAXCPHZ128rmkz = 12815,
+  VMAXCPHZ128rr = 12816,
+  VMAXCPHZ128rrk = 12817,
+  VMAXCPHZ128rrkz = 12818,
+  VMAXCPHZ256rm = 12819,
+  VMAXCPHZ256rmb = 12820,
+  VMAXCPHZ256rmbk = 12821,
+  VMAXCPHZ256rmbkz = 12822,
+  VMAXCPHZ256rmk = 12823,
+  VMAXCPHZ256rmkz = 12824,
+  VMAXCPHZ256rr = 12825,
+  VMAXCPHZ256rrk = 12826,
+  VMAXCPHZ256rrkz = 12827,
+  VMAXCPHZrm = 12828,
+  VMAXCPHZrmb = 12829,
+  VMAXCPHZrmbk = 12830,
+  VMAXCPHZrmbkz = 12831,
+  VMAXCPHZrmk = 12832,
+  VMAXCPHZrmkz = 12833,
+  VMAXCPHZrr = 12834,
+  VMAXCPHZrrk = 12835,
+  VMAXCPHZrrkz = 12836,
+  VMAXCPSYrm = 12837,
+  VMAXCPSYrr = 12838,
+  VMAXCPSZ128rm = 12839,
+  VMAXCPSZ128rmb = 12840,
+  VMAXCPSZ128rmbk = 12841,
+  VMAXCPSZ128rmbkz = 12842,
+  VMAXCPSZ128rmk = 12843,
+  VMAXCPSZ128rmkz = 12844,
+  VMAXCPSZ128rr = 12845,
+  VMAXCPSZ128rrk = 12846,
+  VMAXCPSZ128rrkz = 12847,
+  VMAXCPSZ256rm = 12848,
+  VMAXCPSZ256rmb = 12849,
+  VMAXCPSZ256rmbk = 12850,
+  VMAXCPSZ256rmbkz = 12851,
+  VMAXCPSZ256rmk = 12852,
+  VMAXCPSZ256rmkz = 12853,
+  VMAXCPSZ256rr = 12854,
+  VMAXCPSZ256rrk = 12855,
+  VMAXCPSZ256rrkz = 12856,
+  VMAXCPSZrm = 12857,
+  VMAXCPSZrmb = 12858,
+  VMAXCPSZrmbk = 12859,
+  VMAXCPSZrmbkz = 12860,
+  VMAXCPSZrmk = 12861,
+  VMAXCPSZrmkz = 12862,
+  VMAXCPSZrr = 12863,
+  VMAXCPSZrrk = 12864,
+  VMAXCPSZrrkz = 12865,
+  VMAXCPSrm = 12866,
+  VMAXCPSrr = 12867,
+  VMAXCSDZrm = 12868,
+  VMAXCSDZrr = 12869,
+  VMAXCSDrm = 12870,
+  VMAXCSDrr = 12871,
+  VMAXCSHZrm = 12872,
+  VMAXCSHZrr = 12873,
+  VMAXCSSZrm = 12874,
+  VMAXCSSZrr = 12875,
+  VMAXCSSrm = 12876,
+  VMAXCSSrr = 12877,
+  VMAXPDYrm = 12878,
+  VMAXPDYrr = 12879,
+  VMAXPDZ128rm = 12880,
+  VMAXPDZ128rmb = 12881,
+  VMAXPDZ128rmbk = 12882,
+  VMAXPDZ128rmbkz = 12883,
+  VMAXPDZ128rmk = 12884,
+  VMAXPDZ128rmkz = 12885,
+  VMAXPDZ128rr = 12886,
+  VMAXPDZ128rrk = 12887,
+  VMAXPDZ128rrkz = 12888,
+  VMAXPDZ256rm = 12889,
+  VMAXPDZ256rmb = 12890,
+  VMAXPDZ256rmbk = 12891,
+  VMAXPDZ256rmbkz = 12892,
+  VMAXPDZ256rmk = 12893,
+  VMAXPDZ256rmkz = 12894,
+  VMAXPDZ256rr = 12895,
+  VMAXPDZ256rrk = 12896,
+  VMAXPDZ256rrkz = 12897,
+  VMAXPDZrm = 12898,
+  VMAXPDZrmb = 12899,
+  VMAXPDZrmbk = 12900,
+  VMAXPDZrmbkz = 12901,
+  VMAXPDZrmk = 12902,
+  VMAXPDZrmkz = 12903,
+  VMAXPDZrr = 12904,
+  VMAXPDZrrb = 12905,
+  VMAXPDZrrbk = 12906,
+  VMAXPDZrrbkz = 12907,
+  VMAXPDZrrk = 12908,
+  VMAXPDZrrkz = 12909,
+  VMAXPDrm = 12910,
+  VMAXPDrr = 12911,
+  VMAXPHZ128rm = 12912,
+  VMAXPHZ128rmb = 12913,
+  VMAXPHZ128rmbk = 12914,
+  VMAXPHZ128rmbkz = 12915,
+  VMAXPHZ128rmk = 12916,
+  VMAXPHZ128rmkz = 12917,
+  VMAXPHZ128rr = 12918,
+  VMAXPHZ128rrk = 12919,
+  VMAXPHZ128rrkz = 12920,
+  VMAXPHZ256rm = 12921,
+  VMAXPHZ256rmb = 12922,
+  VMAXPHZ256rmbk = 12923,
+  VMAXPHZ256rmbkz = 12924,
+  VMAXPHZ256rmk = 12925,
+  VMAXPHZ256rmkz = 12926,
+  VMAXPHZ256rr = 12927,
+  VMAXPHZ256rrk = 12928,
+  VMAXPHZ256rrkz = 12929,
+  VMAXPHZrm = 12930,
+  VMAXPHZrmb = 12931,
+  VMAXPHZrmbk = 12932,
+  VMAXPHZrmbkz = 12933,
+  VMAXPHZrmk = 12934,
+  VMAXPHZrmkz = 12935,
+  VMAXPHZrr = 12936,
+  VMAXPHZrrb = 12937,
+  VMAXPHZrrbk = 12938,
+  VMAXPHZrrbkz = 12939,
+  VMAXPHZrrk = 12940,
+  VMAXPHZrrkz = 12941,
+  VMAXPSYrm = 12942,
+  VMAXPSYrr = 12943,
+  VMAXPSZ128rm = 12944,
+  VMAXPSZ128rmb = 12945,
+  VMAXPSZ128rmbk = 12946,
+  VMAXPSZ128rmbkz = 12947,
+  VMAXPSZ128rmk = 12948,
+  VMAXPSZ128rmkz = 12949,
+  VMAXPSZ128rr = 12950,
+  VMAXPSZ128rrk = 12951,
+  VMAXPSZ128rrkz = 12952,
+  VMAXPSZ256rm = 12953,
+  VMAXPSZ256rmb = 12954,
+  VMAXPSZ256rmbk = 12955,
+  VMAXPSZ256rmbkz = 12956,
+  VMAXPSZ256rmk = 12957,
+  VMAXPSZ256rmkz = 12958,
+  VMAXPSZ256rr = 12959,
+  VMAXPSZ256rrk = 12960,
+  VMAXPSZ256rrkz = 12961,
+  VMAXPSZrm = 12962,
+  VMAXPSZrmb = 12963,
+  VMAXPSZrmbk = 12964,
+  VMAXPSZrmbkz = 12965,
+  VMAXPSZrmk = 12966,
+  VMAXPSZrmkz = 12967,
+  VMAXPSZrr = 12968,
+  VMAXPSZrrb = 12969,
+  VMAXPSZrrbk = 12970,
+  VMAXPSZrrbkz = 12971,
+  VMAXPSZrrk = 12972,
+  VMAXPSZrrkz = 12973,
+  VMAXPSrm = 12974,
+  VMAXPSrr = 12975,
+  VMAXSDZrm = 12976,
+  VMAXSDZrm_Int = 12977,
+  VMAXSDZrmk_Int = 12978,
+  VMAXSDZrmkz_Int = 12979,
+  VMAXSDZrr = 12980,
+  VMAXSDZrr_Int = 12981,
+  VMAXSDZrrb_Int = 12982,
+  VMAXSDZrrbk_Int = 12983,
+  VMAXSDZrrbkz_Int = 12984,
+  VMAXSDZrrk_Int = 12985,
+  VMAXSDZrrkz_Int = 12986,
+  VMAXSDrm = 12987,
+  VMAXSDrm_Int = 12988,
+  VMAXSDrr = 12989,
+  VMAXSDrr_Int = 12990,
+  VMAXSHZrm = 12991,
+  VMAXSHZrm_Int = 12992,
+  VMAXSHZrmk_Int = 12993,
+  VMAXSHZrmkz_Int = 12994,
+  VMAXSHZrr = 12995,
+  VMAXSHZrr_Int = 12996,
+  VMAXSHZrrb_Int = 12997,
+  VMAXSHZrrbk_Int = 12998,
+  VMAXSHZrrbkz_Int = 12999,
+  VMAXSHZrrk_Int = 13000,
+  VMAXSHZrrkz_Int = 13001,
+  VMAXSSZrm = 13002,
+  VMAXSSZrm_Int = 13003,
+  VMAXSSZrmk_Int = 13004,
+  VMAXSSZrmkz_Int = 13005,
+  VMAXSSZrr = 13006,
+  VMAXSSZrr_Int = 13007,
+  VMAXSSZrrb_Int = 13008,
+  VMAXSSZrrbk_Int = 13009,
+  VMAXSSZrrbkz_Int = 13010,
+  VMAXSSZrrk_Int = 13011,
+  VMAXSSZrrkz_Int = 13012,
+  VMAXSSrm = 13013,
+  VMAXSSrm_Int = 13014,
+  VMAXSSrr = 13015,
+  VMAXSSrr_Int = 13016,
+  VMCALL = 13017,
+  VMCLEARm = 13018,
+  VMFUNC = 13019,
+  VMINBF16Z128rm = 13020,
+  VMINBF16Z128rmb = 13021,
+  VMINBF16Z128rmbk = 13022,
+  VMINBF16Z128rmbkz = 13023,
+  VMINBF16Z128rmk = 13024,
+  VMINBF16Z128rmkz = 13025,
+  VMINBF16Z128rr = 13026,
+  VMINBF16Z128rrk = 13027,
+  VMINBF16Z128rrkz = 13028,
+  VMINBF16Z256rm = 13029,
+  VMINBF16Z256rmb = 13030,
+  VMINBF16Z256rmbk = 13031,
+  VMINBF16Z256rmbkz = 13032,
+  VMINBF16Z256rmk = 13033,
+  VMINBF16Z256rmkz = 13034,
+  VMINBF16Z256rr = 13035,
+  VMINBF16Z256rrk = 13036,
+  VMINBF16Z256rrkz = 13037,
+  VMINBF16Zrm = 13038,
+  VMINBF16Zrmb = 13039,
+  VMINBF16Zrmbk = 13040,
+  VMINBF16Zrmbkz = 13041,
+  VMINBF16Zrmk = 13042,
+  VMINBF16Zrmkz = 13043,
+  VMINBF16Zrr = 13044,
+  VMINBF16Zrrk = 13045,
+  VMINBF16Zrrkz = 13046,
+  VMINCPDYrm = 13047,
+  VMINCPDYrr = 13048,
+  VMINCPDZ128rm = 13049,
+  VMINCPDZ128rmb = 13050,
+  VMINCPDZ128rmbk = 13051,
+  VMINCPDZ128rmbkz = 13052,
+  VMINCPDZ128rmk = 13053,
+  VMINCPDZ128rmkz = 13054,
+  VMINCPDZ128rr = 13055,
+  VMINCPDZ128rrk = 13056,
+  VMINCPDZ128rrkz = 13057,
+  VMINCPDZ256rm = 13058,
+  VMINCPDZ256rmb = 13059,
+  VMINCPDZ256rmbk = 13060,
+  VMINCPDZ256rmbkz = 13061,
+  VMINCPDZ256rmk = 13062,
+  VMINCPDZ256rmkz = 13063,
+  VMINCPDZ256rr = 13064,
+  VMINCPDZ256rrk = 13065,
+  VMINCPDZ256rrkz = 13066,
+  VMINCPDZrm = 13067,
+  VMINCPDZrmb = 13068,
+  VMINCPDZrmbk = 13069,
+  VMINCPDZrmbkz = 13070,
+  VMINCPDZrmk = 13071,
+  VMINCPDZrmkz = 13072,
+  VMINCPDZrr = 13073,
+  VMINCPDZrrk = 13074,
+  VMINCPDZrrkz = 13075,
+  VMINCPDrm = 13076,
+  VMINCPDrr = 13077,
+  VMINCPHZ128rm = 13078,
+  VMINCPHZ128rmb = 13079,
+  VMINCPHZ128rmbk = 13080,
+  VMINCPHZ128rmbkz = 13081,
+  VMINCPHZ128rmk = 13082,
+  VMINCPHZ128rmkz = 13083,
+  VMINCPHZ128rr = 13084,
+  VMINCPHZ128rrk = 13085,
+  VMINCPHZ128rrkz = 13086,
+  VMINCPHZ256rm = 13087,
+  VMINCPHZ256rmb = 13088,
+  VMINCPHZ256rmbk = 13089,
+  VMINCPHZ256rmbkz = 13090,
+  VMINCPHZ256rmk = 13091,
+  VMINCPHZ256rmkz = 13092,
+  VMINCPHZ256rr = 13093,
+  VMINCPHZ256rrk = 13094,
+  VMINCPHZ256rrkz = 13095,
+  VMINCPHZrm = 13096,
+  VMINCPHZrmb = 13097,
+  VMINCPHZrmbk = 13098,
+  VMINCPHZrmbkz = 13099,
+  VMINCPHZrmk = 13100,
+  VMINCPHZrmkz = 13101,
+  VMINCPHZrr = 13102,
+  VMINCPHZrrk = 13103,
+  VMINCPHZrrkz = 13104,
+  VMINCPSYrm = 13105,
+  VMINCPSYrr = 13106,
+  VMINCPSZ128rm = 13107,
+  VMINCPSZ128rmb = 13108,
+  VMINCPSZ128rmbk = 13109,
+  VMINCPSZ128rmbkz = 13110,
+  VMINCPSZ128rmk = 13111,
+  VMINCPSZ128rmkz = 13112,
+  VMINCPSZ128rr = 13113,
+  VMINCPSZ128rrk = 13114,
+  VMINCPSZ128rrkz = 13115,
+  VMINCPSZ256rm = 13116,
+  VMINCPSZ256rmb = 13117,
+  VMINCPSZ256rmbk = 13118,
+  VMINCPSZ256rmbkz = 13119,
+  VMINCPSZ256rmk = 13120,
+  VMINCPSZ256rmkz = 13121,
+  VMINCPSZ256rr = 13122,
+  VMINCPSZ256rrk = 13123,
+  VMINCPSZ256rrkz = 13124,
+  VMINCPSZrm = 13125,
+  VMINCPSZrmb = 13126,
+  VMINCPSZrmbk = 13127,
+  VMINCPSZrmbkz = 13128,
+  VMINCPSZrmk = 13129,
+  VMINCPSZrmkz = 13130,
+  VMINCPSZrr = 13131,
+  VMINCPSZrrk = 13132,
+  VMINCPSZrrkz = 13133,
+  VMINCPSrm = 13134,
+  VMINCPSrr = 13135,
+  VMINCSDZrm = 13136,
+  VMINCSDZrr = 13137,
+  VMINCSDrm = 13138,
+  VMINCSDrr = 13139,
+  VMINCSHZrm = 13140,
+  VMINCSHZrr = 13141,
+  VMINCSSZrm = 13142,
+  VMINCSSZrr = 13143,
+  VMINCSSrm = 13144,
+  VMINCSSrr = 13145,
+  VMINMAXBF16Z128rmbi = 13146,
+  VMINMAXBF16Z128rmbik = 13147,
+  VMINMAXBF16Z128rmbikz = 13148,
+  VMINMAXBF16Z128rmi = 13149,
+  VMINMAXBF16Z128rmik = 13150,
+  VMINMAXBF16Z128rmikz = 13151,
+  VMINMAXBF16Z128rri = 13152,
+  VMINMAXBF16Z128rrik = 13153,
+  VMINMAXBF16Z128rrikz = 13154,
+  VMINMAXBF16Z256rmbi = 13155,
+  VMINMAXBF16Z256rmbik = 13156,
+  VMINMAXBF16Z256rmbikz = 13157,
+  VMINMAXBF16Z256rmi = 13158,
+  VMINMAXBF16Z256rmik = 13159,
+  VMINMAXBF16Z256rmikz = 13160,
+  VMINMAXBF16Z256rri = 13161,
+  VMINMAXBF16Z256rrik = 13162,
+  VMINMAXBF16Z256rrikz = 13163,
+  VMINMAXBF16Zrmbi = 13164,
+  VMINMAXBF16Zrmbik = 13165,
+  VMINMAXBF16Zrmbikz = 13166,
+  VMINMAXBF16Zrmi = 13167,
+  VMINMAXBF16Zrmik = 13168,
+  VMINMAXBF16Zrmikz = 13169,
+  VMINMAXBF16Zrri = 13170,
+  VMINMAXBF16Zrrik = 13171,
+  VMINMAXBF16Zrrikz = 13172,
+  VMINMAXPDZ128rmbi = 13173,
+  VMINMAXPDZ128rmbik = 13174,
+  VMINMAXPDZ128rmbikz = 13175,
+  VMINMAXPDZ128rmi = 13176,
+  VMINMAXPDZ128rmik = 13177,
+  VMINMAXPDZ128rmikz = 13178,
+  VMINMAXPDZ128rri = 13179,
+  VMINMAXPDZ128rrik = 13180,
+  VMINMAXPDZ128rrikz = 13181,
+  VMINMAXPDZ256rmbi = 13182,
+  VMINMAXPDZ256rmbik = 13183,
+  VMINMAXPDZ256rmbikz = 13184,
+  VMINMAXPDZ256rmi = 13185,
+  VMINMAXPDZ256rmik = 13186,
+  VMINMAXPDZ256rmikz = 13187,
+  VMINMAXPDZ256rri = 13188,
+  VMINMAXPDZ256rrik = 13189,
+  VMINMAXPDZ256rrikz = 13190,
+  VMINMAXPDZrmbi = 13191,
+  VMINMAXPDZrmbik = 13192,
+  VMINMAXPDZrmbikz = 13193,
+  VMINMAXPDZrmi = 13194,
+  VMINMAXPDZrmik = 13195,
+  VMINMAXPDZrmikz = 13196,
+  VMINMAXPDZrri = 13197,
+  VMINMAXPDZrrib = 13198,
+  VMINMAXPDZrribk = 13199,
+  VMINMAXPDZrribkz = 13200,
+  VMINMAXPDZrrik = 13201,
+  VMINMAXPDZrrikz = 13202,
+  VMINMAXPHZ128rmbi = 13203,
+  VMINMAXPHZ128rmbik = 13204,
+  VMINMAXPHZ128rmbikz = 13205,
+  VMINMAXPHZ128rmi = 13206,
+  VMINMAXPHZ128rmik = 13207,
+  VMINMAXPHZ128rmikz = 13208,
+  VMINMAXPHZ128rri = 13209,
+  VMINMAXPHZ128rrik = 13210,
+  VMINMAXPHZ128rrikz = 13211,
+  VMINMAXPHZ256rmbi = 13212,
+  VMINMAXPHZ256rmbik = 13213,
+  VMINMAXPHZ256rmbikz = 13214,
+  VMINMAXPHZ256rmi = 13215,
+  VMINMAXPHZ256rmik = 13216,
+  VMINMAXPHZ256rmikz = 13217,
+  VMINMAXPHZ256rri = 13218,
+  VMINMAXPHZ256rrik = 13219,
+  VMINMAXPHZ256rrikz = 13220,
+  VMINMAXPHZrmbi = 13221,
+  VMINMAXPHZrmbik = 13222,
+  VMINMAXPHZrmbikz = 13223,
+  VMINMAXPHZrmi = 13224,
+  VMINMAXPHZrmik = 13225,
+  VMINMAXPHZrmikz = 13226,
+  VMINMAXPHZrri = 13227,
+  VMINMAXPHZrrib = 13228,
+  VMINMAXPHZrribk = 13229,
+  VMINMAXPHZrribkz = 13230,
+  VMINMAXPHZrrik = 13231,
+  VMINMAXPHZrrikz = 13232,
+  VMINMAXPSZ128rmbi = 13233,
+  VMINMAXPSZ128rmbik = 13234,
+  VMINMAXPSZ128rmbikz = 13235,
+  VMINMAXPSZ128rmi = 13236,
+  VMINMAXPSZ128rmik = 13237,
+  VMINMAXPSZ128rmikz = 13238,
+  VMINMAXPSZ128rri = 13239,
+  VMINMAXPSZ128rrik = 13240,
+  VMINMAXPSZ128rrikz = 13241,
+  VMINMAXPSZ256rmbi = 13242,
+  VMINMAXPSZ256rmbik = 13243,
+  VMINMAXPSZ256rmbikz = 13244,
+  VMINMAXPSZ256rmi = 13245,
+  VMINMAXPSZ256rmik = 13246,
+  VMINMAXPSZ256rmikz = 13247,
+  VMINMAXPSZ256rri = 13248,
+  VMINMAXPSZ256rrik = 13249,
+  VMINMAXPSZ256rrikz = 13250,
+  VMINMAXPSZrmbi = 13251,
+  VMINMAXPSZrmbik = 13252,
+  VMINMAXPSZrmbikz = 13253,
+  VMINMAXPSZrmi = 13254,
+  VMINMAXPSZrmik = 13255,
+  VMINMAXPSZrmikz = 13256,
+  VMINMAXPSZrri = 13257,
+  VMINMAXPSZrrib = 13258,
+  VMINMAXPSZrribk = 13259,
+  VMINMAXPSZrribkz = 13260,
+  VMINMAXPSZrrik = 13261,
+  VMINMAXPSZrrikz = 13262,
+  VMINMAXSDrmi = 13263,
+  VMINMAXSDrmi_Int = 13264,
+  VMINMAXSDrmik_Int = 13265,
+  VMINMAXSDrmikz_Int = 13266,
+  VMINMAXSDrri = 13267,
+  VMINMAXSDrri_Int = 13268,
+  VMINMAXSDrrib_Int = 13269,
+  VMINMAXSDrribk_Int = 13270,
+  VMINMAXSDrribkz_Int = 13271,
+  VMINMAXSDrrik_Int = 13272,
+  VMINMAXSDrrikz_Int = 13273,
+  VMINMAXSHrmi = 13274,
+  VMINMAXSHrmi_Int = 13275,
+  VMINMAXSHrmik_Int = 13276,
+  VMINMAXSHrmikz_Int = 13277,
+  VMINMAXSHrri = 13278,
+  VMINMAXSHrri_Int = 13279,
+  VMINMAXSHrrib_Int = 13280,
+  VMINMAXSHrribk_Int = 13281,
+  VMINMAXSHrribkz_Int = 13282,
+  VMINMAXSHrrik_Int = 13283,
+  VMINMAXSHrrikz_Int = 13284,
+  VMINMAXSSrmi = 13285,
+  VMINMAXSSrmi_Int = 13286,
+  VMINMAXSSrmik_Int = 13287,
+  VMINMAXSSrmikz_Int = 13288,
+  VMINMAXSSrri = 13289,
+  VMINMAXSSrri_Int = 13290,
+  VMINMAXSSrrib_Int = 13291,
+  VMINMAXSSrribk_Int = 13292,
+  VMINMAXSSrribkz_Int = 13293,
+  VMINMAXSSrrik_Int = 13294,
+  VMINMAXSSrrikz_Int = 13295,
+  VMINPDYrm = 13296,
+  VMINPDYrr = 13297,
+  VMINPDZ128rm = 13298,
+  VMINPDZ128rmb = 13299,
+  VMINPDZ128rmbk = 13300,
+  VMINPDZ128rmbkz = 13301,
+  VMINPDZ128rmk = 13302,
+  VMINPDZ128rmkz = 13303,
+  VMINPDZ128rr = 13304,
+  VMINPDZ128rrk = 13305,
+  VMINPDZ128rrkz = 13306,
+  VMINPDZ256rm = 13307,
+  VMINPDZ256rmb = 13308,
+  VMINPDZ256rmbk = 13309,
+  VMINPDZ256rmbkz = 13310,
+  VMINPDZ256rmk = 13311,
+  VMINPDZ256rmkz = 13312,
+  VMINPDZ256rr = 13313,
+  VMINPDZ256rrk = 13314,
+  VMINPDZ256rrkz = 13315,
+  VMINPDZrm = 13316,
+  VMINPDZrmb = 13317,
+  VMINPDZrmbk = 13318,
+  VMINPDZrmbkz = 13319,
+  VMINPDZrmk = 13320,
+  VMINPDZrmkz = 13321,
+  VMINPDZrr = 13322,
+  VMINPDZrrb = 13323,
+  VMINPDZrrbk = 13324,
+  VMINPDZrrbkz = 13325,
+  VMINPDZrrk = 13326,
+  VMINPDZrrkz = 13327,
+  VMINPDrm = 13328,
+  VMINPDrr = 13329,
+  VMINPHZ128rm = 13330,
+  VMINPHZ128rmb = 13331,
+  VMINPHZ128rmbk = 13332,
+  VMINPHZ128rmbkz = 13333,
+  VMINPHZ128rmk = 13334,
+  VMINPHZ128rmkz = 13335,
+  VMINPHZ128rr = 13336,
+  VMINPHZ128rrk = 13337,
+  VMINPHZ128rrkz = 13338,
+  VMINPHZ256rm = 13339,
+  VMINPHZ256rmb = 13340,
+  VMINPHZ256rmbk = 13341,
+  VMINPHZ256rmbkz = 13342,
+  VMINPHZ256rmk = 13343,
+  VMINPHZ256rmkz = 13344,
+  VMINPHZ256rr = 13345,
+  VMINPHZ256rrk = 13346,
+  VMINPHZ256rrkz = 13347,
+  VMINPHZrm = 13348,
+  VMINPHZrmb = 13349,
+  VMINPHZrmbk = 13350,
+  VMINPHZrmbkz = 13351,
+  VMINPHZrmk = 13352,
+  VMINPHZrmkz = 13353,
+  VMINPHZrr = 13354,
+  VMINPHZrrb = 13355,
+  VMINPHZrrbk = 13356,
+  VMINPHZrrbkz = 13357,
+  VMINPHZrrk = 13358,
+  VMINPHZrrkz = 13359,
+  VMINPSYrm = 13360,
+  VMINPSYrr = 13361,
+  VMINPSZ128rm = 13362,
+  VMINPSZ128rmb = 13363,
+  VMINPSZ128rmbk = 13364,
+  VMINPSZ128rmbkz = 13365,
+  VMINPSZ128rmk = 13366,
+  VMINPSZ128rmkz = 13367,
+  VMINPSZ128rr = 13368,
+  VMINPSZ128rrk = 13369,
+  VMINPSZ128rrkz = 13370,
+  VMINPSZ256rm = 13371,
+  VMINPSZ256rmb = 13372,
+  VMINPSZ256rmbk = 13373,
+  VMINPSZ256rmbkz = 13374,
+  VMINPSZ256rmk = 13375,
+  VMINPSZ256rmkz = 13376,
+  VMINPSZ256rr = 13377,
+  VMINPSZ256rrk = 13378,
+  VMINPSZ256rrkz = 13379,
+  VMINPSZrm = 13380,
+  VMINPSZrmb = 13381,
+  VMINPSZrmbk = 13382,
+  VMINPSZrmbkz = 13383,
+  VMINPSZrmk = 13384,
+  VMINPSZrmkz = 13385,
+  VMINPSZrr = 13386,
+  VMINPSZrrb = 13387,
+  VMINPSZrrbk = 13388,
+  VMINPSZrrbkz = 13389,
+  VMINPSZrrk = 13390,
+  VMINPSZrrkz = 13391,
+  VMINPSrm = 13392,
+  VMINPSrr = 13393,
+  VMINSDZrm = 13394,
+  VMINSDZrm_Int = 13395,
+  VMINSDZrmk_Int = 13396,
+  VMINSDZrmkz_Int = 13397,
+  VMINSDZrr = 13398,
+  VMINSDZrr_Int = 13399,
+  VMINSDZrrb_Int = 13400,
+  VMINSDZrrbk_Int = 13401,
+  VMINSDZrrbkz_Int = 13402,
+  VMINSDZrrk_Int = 13403,
+  VMINSDZrrkz_Int = 13404,
+  VMINSDrm = 13405,
+  VMINSDrm_Int = 13406,
+  VMINSDrr = 13407,
+  VMINSDrr_Int = 13408,
+  VMINSHZrm = 13409,
+  VMINSHZrm_Int = 13410,
+  VMINSHZrmk_Int = 13411,
+  VMINSHZrmkz_Int = 13412,
+  VMINSHZrr = 13413,
+  VMINSHZrr_Int = 13414,
+  VMINSHZrrb_Int = 13415,
+  VMINSHZrrbk_Int = 13416,
+  VMINSHZrrbkz_Int = 13417,
+  VMINSHZrrk_Int = 13418,
+  VMINSHZrrkz_Int = 13419,
+  VMINSSZrm = 13420,
+  VMINSSZrm_Int = 13421,
+  VMINSSZrmk_Int = 13422,
+  VMINSSZrmkz_Int = 13423,
+  VMINSSZrr = 13424,
+  VMINSSZrr_Int = 13425,
+  VMINSSZrrb_Int = 13426,
+  VMINSSZrrbk_Int = 13427,
+  VMINSSZrrbkz_Int = 13428,
+  VMINSSZrrk_Int = 13429,
+  VMINSSZrrkz_Int = 13430,
+  VMINSSrm = 13431,
+  VMINSSrm_Int = 13432,
+  VMINSSrr = 13433,
+  VMINSSrr_Int = 13434,
+  VMLAUNCH = 13435,
+  VMLOAD32 = 13436,
+  VMLOAD64 = 13437,
+  VMMCALL = 13438,
+  VMOV64toPQIZrm = 13439,
+  VMOV64toPQIZrr = 13440,
+  VMOV64toPQIrm = 13441,
+  VMOV64toPQIrr = 13442,
+  VMOV64toSDZrr = 13443,
+  VMOV64toSDrr = 13444,
+  VMOVAPDYmr = 13445,
+  VMOVAPDYrm = 13446,
+  VMOVAPDYrr = 13447,
+  VMOVAPDYrr_REV = 13448,
+  VMOVAPDZ128mr = 13449,
+  VMOVAPDZ128mrk = 13450,
+  VMOVAPDZ128rm = 13451,
+  VMOVAPDZ128rmk = 13452,
+  VMOVAPDZ128rmkz = 13453,
+  VMOVAPDZ128rr = 13454,
+  VMOVAPDZ128rr_REV = 13455,
+  VMOVAPDZ128rrk = 13456,
+  VMOVAPDZ128rrk_REV = 13457,
+  VMOVAPDZ128rrkz = 13458,
+  VMOVAPDZ128rrkz_REV = 13459,
+  VMOVAPDZ256mr = 13460,
+  VMOVAPDZ256mrk = 13461,
+  VMOVAPDZ256rm = 13462,
+  VMOVAPDZ256rmk = 13463,
+  VMOVAPDZ256rmkz = 13464,
+  VMOVAPDZ256rr = 13465,
+  VMOVAPDZ256rr_REV = 13466,
+  VMOVAPDZ256rrk = 13467,
+  VMOVAPDZ256rrk_REV = 13468,
+  VMOVAPDZ256rrkz = 13469,
+  VMOVAPDZ256rrkz_REV = 13470,
+  VMOVAPDZmr = 13471,
+  VMOVAPDZmrk = 13472,
+  VMOVAPDZrm = 13473,
+  VMOVAPDZrmk = 13474,
+  VMOVAPDZrmkz = 13475,
+  VMOVAPDZrr = 13476,
+  VMOVAPDZrr_REV = 13477,
+  VMOVAPDZrrk = 13478,
+  VMOVAPDZrrk_REV = 13479,
+  VMOVAPDZrrkz = 13480,
+  VMOVAPDZrrkz_REV = 13481,
+  VMOVAPDmr = 13482,
+  VMOVAPDrm = 13483,
+  VMOVAPDrr = 13484,
+  VMOVAPDrr_REV = 13485,
+  VMOVAPSYmr = 13486,
+  VMOVAPSYrm = 13487,
+  VMOVAPSYrr = 13488,
+  VMOVAPSYrr_REV = 13489,
+  VMOVAPSZ128mr = 13490,
+  VMOVAPSZ128mrk = 13491,
+  VMOVAPSZ128rm = 13492,
+  VMOVAPSZ128rmk = 13493,
+  VMOVAPSZ128rmkz = 13494,
+  VMOVAPSZ128rr = 13495,
+  VMOVAPSZ128rr_REV = 13496,
+  VMOVAPSZ128rrk = 13497,
+  VMOVAPSZ128rrk_REV = 13498,
+  VMOVAPSZ128rrkz = 13499,
+  VMOVAPSZ128rrkz_REV = 13500,
+  VMOVAPSZ256mr = 13501,
+  VMOVAPSZ256mrk = 13502,
+  VMOVAPSZ256rm = 13503,
+  VMOVAPSZ256rmk = 13504,
+  VMOVAPSZ256rmkz = 13505,
+  VMOVAPSZ256rr = 13506,
+  VMOVAPSZ256rr_REV = 13507,
+  VMOVAPSZ256rrk = 13508,
+  VMOVAPSZ256rrk_REV = 13509,
+  VMOVAPSZ256rrkz = 13510,
+  VMOVAPSZ256rrkz_REV = 13511,
+  VMOVAPSZmr = 13512,
+  VMOVAPSZmrk = 13513,
+  VMOVAPSZrm = 13514,
+  VMOVAPSZrmk = 13515,
+  VMOVAPSZrmkz = 13516,
+  VMOVAPSZrr = 13517,
+  VMOVAPSZrr_REV = 13518,
+  VMOVAPSZrrk = 13519,
+  VMOVAPSZrrk_REV = 13520,
+  VMOVAPSZrrkz = 13521,
+  VMOVAPSZrrkz_REV = 13522,
+  VMOVAPSmr = 13523,
+  VMOVAPSrm = 13524,
+  VMOVAPSrr = 13525,
+  VMOVAPSrr_REV = 13526,
+  VMOVDDUPYrm = 13527,
+  VMOVDDUPYrr = 13528,
+  VMOVDDUPZ128rm = 13529,
+  VMOVDDUPZ128rmk = 13530,
+  VMOVDDUPZ128rmkz = 13531,
+  VMOVDDUPZ128rr = 13532,
+  VMOVDDUPZ128rrk = 13533,
+  VMOVDDUPZ128rrkz = 13534,
+  VMOVDDUPZ256rm = 13535,
+  VMOVDDUPZ256rmk = 13536,
+  VMOVDDUPZ256rmkz = 13537,
+  VMOVDDUPZ256rr = 13538,
+  VMOVDDUPZ256rrk = 13539,
+  VMOVDDUPZ256rrkz = 13540,
+  VMOVDDUPZrm = 13541,
+  VMOVDDUPZrmk = 13542,
+  VMOVDDUPZrmkz = 13543,
+  VMOVDDUPZrr = 13544,
+  VMOVDDUPZrrk = 13545,
+  VMOVDDUPZrrkz = 13546,
+  VMOVDDUPrm = 13547,
+  VMOVDDUPrr = 13548,
+  VMOVDI2PDIZrm = 13549,
+  VMOVDI2PDIZrr = 13550,
+  VMOVDI2PDIrm = 13551,
+  VMOVDI2PDIrr = 13552,
+  VMOVDI2SSZrr = 13553,
+  VMOVDI2SSrr = 13554,
+  VMOVDQA32Z128mr = 13555,
+  VMOVDQA32Z128mrk = 13556,
+  VMOVDQA32Z128rm = 13557,
+  VMOVDQA32Z128rmk = 13558,
+  VMOVDQA32Z128rmkz = 13559,
+  VMOVDQA32Z128rr = 13560,
+  VMOVDQA32Z128rr_REV = 13561,
+  VMOVDQA32Z128rrk = 13562,
+  VMOVDQA32Z128rrk_REV = 13563,
+  VMOVDQA32Z128rrkz = 13564,
+  VMOVDQA32Z128rrkz_REV = 13565,
+  VMOVDQA32Z256mr = 13566,
+  VMOVDQA32Z256mrk = 13567,
+  VMOVDQA32Z256rm = 13568,
+  VMOVDQA32Z256rmk = 13569,
+  VMOVDQA32Z256rmkz = 13570,
+  VMOVDQA32Z256rr = 13571,
+  VMOVDQA32Z256rr_REV = 13572,
+  VMOVDQA32Z256rrk = 13573,
+  VMOVDQA32Z256rrk_REV = 13574,
+  VMOVDQA32Z256rrkz = 13575,
+  VMOVDQA32Z256rrkz_REV = 13576,
+  VMOVDQA32Zmr = 13577,
+  VMOVDQA32Zmrk = 13578,
+  VMOVDQA32Zrm = 13579,
+  VMOVDQA32Zrmk = 13580,
+  VMOVDQA32Zrmkz = 13581,
+  VMOVDQA32Zrr = 13582,
+  VMOVDQA32Zrr_REV = 13583,
+  VMOVDQA32Zrrk = 13584,
+  VMOVDQA32Zrrk_REV = 13585,
+  VMOVDQA32Zrrkz = 13586,
+  VMOVDQA32Zrrkz_REV = 13587,
+  VMOVDQA64Z128mr = 13588,
+  VMOVDQA64Z128mrk = 13589,
+  VMOVDQA64Z128rm = 13590,
+  VMOVDQA64Z128rmk = 13591,
+  VMOVDQA64Z128rmkz = 13592,
+  VMOVDQA64Z128rr = 13593,
+  VMOVDQA64Z128rr_REV = 13594,
+  VMOVDQA64Z128rrk = 13595,
+  VMOVDQA64Z128rrk_REV = 13596,
+  VMOVDQA64Z128rrkz = 13597,
+  VMOVDQA64Z128rrkz_REV = 13598,
+  VMOVDQA64Z256mr = 13599,
+  VMOVDQA64Z256mrk = 13600,
+  VMOVDQA64Z256rm = 13601,
+  VMOVDQA64Z256rmk = 13602,
+  VMOVDQA64Z256rmkz = 13603,
+  VMOVDQA64Z256rr = 13604,
+  VMOVDQA64Z256rr_REV = 13605,
+  VMOVDQA64Z256rrk = 13606,
+  VMOVDQA64Z256rrk_REV = 13607,
+  VMOVDQA64Z256rrkz = 13608,
+  VMOVDQA64Z256rrkz_REV = 13609,
+  VMOVDQA64Zmr = 13610,
+  VMOVDQA64Zmrk = 13611,
+  VMOVDQA64Zrm = 13612,
+  VMOVDQA64Zrmk = 13613,
+  VMOVDQA64Zrmkz = 13614,
+  VMOVDQA64Zrr = 13615,
+  VMOVDQA64Zrr_REV = 13616,
+  VMOVDQA64Zrrk = 13617,
+  VMOVDQA64Zrrk_REV = 13618,
+  VMOVDQA64Zrrkz = 13619,
+  VMOVDQA64Zrrkz_REV = 13620,
+  VMOVDQAYmr = 13621,
+  VMOVDQAYrm = 13622,
+  VMOVDQAYrr = 13623,
+  VMOVDQAYrr_REV = 13624,
+  VMOVDQAmr = 13625,
+  VMOVDQArm = 13626,
+  VMOVDQArr = 13627,
+  VMOVDQArr_REV = 13628,
+  VMOVDQU16Z128mr = 13629,
+  VMOVDQU16Z128mrk = 13630,
+  VMOVDQU16Z128rm = 13631,
+  VMOVDQU16Z128rmk = 13632,
+  VMOVDQU16Z128rmkz = 13633,
+  VMOVDQU16Z128rr = 13634,
+  VMOVDQU16Z128rr_REV = 13635,
+  VMOVDQU16Z128rrk = 13636,
+  VMOVDQU16Z128rrk_REV = 13637,
+  VMOVDQU16Z128rrkz = 13638,
+  VMOVDQU16Z128rrkz_REV = 13639,
+  VMOVDQU16Z256mr = 13640,
+  VMOVDQU16Z256mrk = 13641,
+  VMOVDQU16Z256rm = 13642,
+  VMOVDQU16Z256rmk = 13643,
+  VMOVDQU16Z256rmkz = 13644,
+  VMOVDQU16Z256rr = 13645,
+  VMOVDQU16Z256rr_REV = 13646,
+  VMOVDQU16Z256rrk = 13647,
+  VMOVDQU16Z256rrk_REV = 13648,
+  VMOVDQU16Z256rrkz = 13649,
+  VMOVDQU16Z256rrkz_REV = 13650,
+  VMOVDQU16Zmr = 13651,
+  VMOVDQU16Zmrk = 13652,
+  VMOVDQU16Zrm = 13653,
+  VMOVDQU16Zrmk = 13654,
+  VMOVDQU16Zrmkz = 13655,
+  VMOVDQU16Zrr = 13656,
+  VMOVDQU16Zrr_REV = 13657,
+  VMOVDQU16Zrrk = 13658,
+  VMOVDQU16Zrrk_REV = 13659,
+  VMOVDQU16Zrrkz = 13660,
+  VMOVDQU16Zrrkz_REV = 13661,
+  VMOVDQU32Z128mr = 13662,
+  VMOVDQU32Z128mrk = 13663,
+  VMOVDQU32Z128rm = 13664,
+  VMOVDQU32Z128rmk = 13665,
+  VMOVDQU32Z128rmkz = 13666,
+  VMOVDQU32Z128rr = 13667,
+  VMOVDQU32Z128rr_REV = 13668,
+  VMOVDQU32Z128rrk = 13669,
+  VMOVDQU32Z128rrk_REV = 13670,
+  VMOVDQU32Z128rrkz = 13671,
+  VMOVDQU32Z128rrkz_REV = 13672,
+  VMOVDQU32Z256mr = 13673,
+  VMOVDQU32Z256mrk = 13674,
+  VMOVDQU32Z256rm = 13675,
+  VMOVDQU32Z256rmk = 13676,
+  VMOVDQU32Z256rmkz = 13677,
+  VMOVDQU32Z256rr = 13678,
+  VMOVDQU32Z256rr_REV = 13679,
+  VMOVDQU32Z256rrk = 13680,
+  VMOVDQU32Z256rrk_REV = 13681,
+  VMOVDQU32Z256rrkz = 13682,
+  VMOVDQU32Z256rrkz_REV = 13683,
+  VMOVDQU32Zmr = 13684,
+  VMOVDQU32Zmrk = 13685,
+  VMOVDQU32Zrm = 13686,
+  VMOVDQU32Zrmk = 13687,
+  VMOVDQU32Zrmkz = 13688,
+  VMOVDQU32Zrr = 13689,
+  VMOVDQU32Zrr_REV = 13690,
+  VMOVDQU32Zrrk = 13691,
+  VMOVDQU32Zrrk_REV = 13692,
+  VMOVDQU32Zrrkz = 13693,
+  VMOVDQU32Zrrkz_REV = 13694,
+  VMOVDQU64Z128mr = 13695,
+  VMOVDQU64Z128mrk = 13696,
+  VMOVDQU64Z128rm = 13697,
+  VMOVDQU64Z128rmk = 13698,
+  VMOVDQU64Z128rmkz = 13699,
+  VMOVDQU64Z128rr = 13700,
+  VMOVDQU64Z128rr_REV = 13701,
+  VMOVDQU64Z128rrk = 13702,
+  VMOVDQU64Z128rrk_REV = 13703,
+  VMOVDQU64Z128rrkz = 13704,
+  VMOVDQU64Z128rrkz_REV = 13705,
+  VMOVDQU64Z256mr = 13706,
+  VMOVDQU64Z256mrk = 13707,
+  VMOVDQU64Z256rm = 13708,
+  VMOVDQU64Z256rmk = 13709,
+  VMOVDQU64Z256rmkz = 13710,
+  VMOVDQU64Z256rr = 13711,
+  VMOVDQU64Z256rr_REV = 13712,
+  VMOVDQU64Z256rrk = 13713,
+  VMOVDQU64Z256rrk_REV = 13714,
+  VMOVDQU64Z256rrkz = 13715,
+  VMOVDQU64Z256rrkz_REV = 13716,
+  VMOVDQU64Zmr = 13717,
+  VMOVDQU64Zmrk = 13718,
+  VMOVDQU64Zrm = 13719,
+  VMOVDQU64Zrmk = 13720,
+  VMOVDQU64Zrmkz = 13721,
+  VMOVDQU64Zrr = 13722,
+  VMOVDQU64Zrr_REV = 13723,
+  VMOVDQU64Zrrk = 13724,
+  VMOVDQU64Zrrk_REV = 13725,
+  VMOVDQU64Zrrkz = 13726,
+  VMOVDQU64Zrrkz_REV = 13727,
+  VMOVDQU8Z128mr = 13728,
+  VMOVDQU8Z128mrk = 13729,
+  VMOVDQU8Z128rm = 13730,
+  VMOVDQU8Z128rmk = 13731,
+  VMOVDQU8Z128rmkz = 13732,
+  VMOVDQU8Z128rr = 13733,
+  VMOVDQU8Z128rr_REV = 13734,
+  VMOVDQU8Z128rrk = 13735,
+  VMOVDQU8Z128rrk_REV = 13736,
+  VMOVDQU8Z128rrkz = 13737,
+  VMOVDQU8Z128rrkz_REV = 13738,
+  VMOVDQU8Z256mr = 13739,
+  VMOVDQU8Z256mrk = 13740,
+  VMOVDQU8Z256rm = 13741,
+  VMOVDQU8Z256rmk = 13742,
+  VMOVDQU8Z256rmkz = 13743,
+  VMOVDQU8Z256rr = 13744,
+  VMOVDQU8Z256rr_REV = 13745,
+  VMOVDQU8Z256rrk = 13746,
+  VMOVDQU8Z256rrk_REV = 13747,
+  VMOVDQU8Z256rrkz = 13748,
+  VMOVDQU8Z256rrkz_REV = 13749,
+  VMOVDQU8Zmr = 13750,
+  VMOVDQU8Zmrk = 13751,
+  VMOVDQU8Zrm = 13752,
+  VMOVDQU8Zrmk = 13753,
+  VMOVDQU8Zrmkz = 13754,
+  VMOVDQU8Zrr = 13755,
+  VMOVDQU8Zrr_REV = 13756,
+  VMOVDQU8Zrrk = 13757,
+  VMOVDQU8Zrrk_REV = 13758,
+  VMOVDQU8Zrrkz = 13759,
+  VMOVDQU8Zrrkz_REV = 13760,
+  VMOVDQUYmr = 13761,
+  VMOVDQUYrm = 13762,
+  VMOVDQUYrr = 13763,
+  VMOVDQUYrr_REV = 13764,
+  VMOVDQUmr = 13765,
+  VMOVDQUrm = 13766,
+  VMOVDQUrr = 13767,
+  VMOVDQUrr_REV = 13768,
+  VMOVHLPSZrr = 13769,
+  VMOVHLPSrr = 13770,
+  VMOVHPDZ128mr = 13771,
+  VMOVHPDZ128rm = 13772,
+  VMOVHPDmr = 13773,
+  VMOVHPDrm = 13774,
+  VMOVHPSZ128mr = 13775,
+  VMOVHPSZ128rm = 13776,
+  VMOVHPSmr = 13777,
+  VMOVHPSrm = 13778,
+  VMOVLHPSZrr = 13779,
+  VMOVLHPSrr = 13780,
+  VMOVLPDZ128mr = 13781,
+  VMOVLPDZ128rm = 13782,
+  VMOVLPDmr = 13783,
+  VMOVLPDrm = 13784,
+  VMOVLPSZ128mr = 13785,
+  VMOVLPSZ128rm = 13786,
+  VMOVLPSmr = 13787,
+  VMOVLPSrm = 13788,
+  VMOVMSKPDYrr = 13789,
+  VMOVMSKPDrr = 13790,
+  VMOVMSKPSYrr = 13791,
+  VMOVMSKPSrr = 13792,
+  VMOVNTDQAYrm = 13793,
+  VMOVNTDQAZ128rm = 13794,
+  VMOVNTDQAZ256rm = 13795,
+  VMOVNTDQAZrm = 13796,
+  VMOVNTDQArm = 13797,
+  VMOVNTDQYmr = 13798,
+  VMOVNTDQZ128mr = 13799,
+  VMOVNTDQZ256mr = 13800,
+  VMOVNTDQZmr = 13801,
+  VMOVNTDQmr = 13802,
+  VMOVNTPDYmr = 13803,
+  VMOVNTPDZ128mr = 13804,
+  VMOVNTPDZ256mr = 13805,
+  VMOVNTPDZmr = 13806,
+  VMOVNTPDmr = 13807,
+  VMOVNTPSYmr = 13808,
+  VMOVNTPSZ128mr = 13809,
+  VMOVNTPSZ256mr = 13810,
+  VMOVNTPSZmr = 13811,
+  VMOVNTPSmr = 13812,
+  VMOVPDI2DIZmr = 13813,
+  VMOVPDI2DIZrr = 13814,
+  VMOVPDI2DImr = 13815,
+  VMOVPDI2DIrr = 13816,
+  VMOVPQI2QIZmr = 13817,
+  VMOVPQI2QIZrr = 13818,
+  VMOVPQI2QImr = 13819,
+  VMOVPQI2QIrr = 13820,
+  VMOVPQIto64Zmr = 13821,
+  VMOVPQIto64Zrr = 13822,
+  VMOVPQIto64mr = 13823,
+  VMOVPQIto64rr = 13824,
+  VMOVQI2PQIZrm = 13825,
+  VMOVQI2PQIrm = 13826,
+  VMOVRSBZ128m = 13827,
+  VMOVRSBZ128mk = 13828,
+  VMOVRSBZ128mkz = 13829,
+  VMOVRSBZ256m = 13830,
+  VMOVRSBZ256mk = 13831,
+  VMOVRSBZ256mkz = 13832,
+  VMOVRSBZm = 13833,
+  VMOVRSBZmk = 13834,
+  VMOVRSBZmkz = 13835,
+  VMOVRSDZ128m = 13836,
+  VMOVRSDZ128mk = 13837,
+  VMOVRSDZ128mkz = 13838,
+  VMOVRSDZ256m = 13839,
+  VMOVRSDZ256mk = 13840,
+  VMOVRSDZ256mkz = 13841,
+  VMOVRSDZm = 13842,
+  VMOVRSDZmk = 13843,
+  VMOVRSDZmkz = 13844,
+  VMOVRSQZ128m = 13845,
+  VMOVRSQZ128mk = 13846,
+  VMOVRSQZ128mkz = 13847,
+  VMOVRSQZ256m = 13848,
+  VMOVRSQZ256mk = 13849,
+  VMOVRSQZ256mkz = 13850,
+  VMOVRSQZm = 13851,
+  VMOVRSQZmk = 13852,
+  VMOVRSQZmkz = 13853,
+  VMOVRSWZ128m = 13854,
+  VMOVRSWZ128mk = 13855,
+  VMOVRSWZ128mkz = 13856,
+  VMOVRSWZ256m = 13857,
+  VMOVRSWZ256mk = 13858,
+  VMOVRSWZ256mkz = 13859,
+  VMOVRSWZm = 13860,
+  VMOVRSWZmk = 13861,
+  VMOVRSWZmkz = 13862,
+  VMOVSDZmr = 13863,
+  VMOVSDZmrk = 13864,
+  VMOVSDZrm = 13865,
+  VMOVSDZrm_alt = 13866,
+  VMOVSDZrmk = 13867,
+  VMOVSDZrmkz = 13868,
+  VMOVSDZrr = 13869,
+  VMOVSDZrr_REV = 13870,
+  VMOVSDZrrk = 13871,
+  VMOVSDZrrk_REV = 13872,
+  VMOVSDZrrkz = 13873,
+  VMOVSDZrrkz_REV = 13874,
+  VMOVSDmr = 13875,
+  VMOVSDrm = 13876,
+  VMOVSDrm_alt = 13877,
+  VMOVSDrr = 13878,
+  VMOVSDrr_REV = 13879,
+  VMOVSDto64Zrr = 13880,
+  VMOVSDto64rr = 13881,
+  VMOVSH2Wrr = 13882,
+  VMOVSHDUPYrm = 13883,
+  VMOVSHDUPYrr = 13884,
+  VMOVSHDUPZ128rm = 13885,
+  VMOVSHDUPZ128rmk = 13886,
+  VMOVSHDUPZ128rmkz = 13887,
+  VMOVSHDUPZ128rr = 13888,
+  VMOVSHDUPZ128rrk = 13889,
+  VMOVSHDUPZ128rrkz = 13890,
+  VMOVSHDUPZ256rm = 13891,
+  VMOVSHDUPZ256rmk = 13892,
+  VMOVSHDUPZ256rmkz = 13893,
+  VMOVSHDUPZ256rr = 13894,
+  VMOVSHDUPZ256rrk = 13895,
+  VMOVSHDUPZ256rrkz = 13896,
+  VMOVSHDUPZrm = 13897,
+  VMOVSHDUPZrmk = 13898,
+  VMOVSHDUPZrmkz = 13899,
+  VMOVSHDUPZrr = 13900,
+  VMOVSHDUPZrrk = 13901,
+  VMOVSHDUPZrrkz = 13902,
+  VMOVSHDUPrm = 13903,
+  VMOVSHDUPrr = 13904,
+  VMOVSHZmr = 13905,
+  VMOVSHZmrk = 13906,
+  VMOVSHZrm = 13907,
+  VMOVSHZrm_alt = 13908,
+  VMOVSHZrmk = 13909,
+  VMOVSHZrmkz = 13910,
+  VMOVSHZrr = 13911,
+  VMOVSHZrr_REV = 13912,
+  VMOVSHZrrk = 13913,
+  VMOVSHZrrk_REV = 13914,
+  VMOVSHZrrkz = 13915,
+  VMOVSHZrrkz_REV = 13916,
+  VMOVSHtoW64rr = 13917,
+  VMOVSLDUPYrm = 13918,
+  VMOVSLDUPYrr = 13919,
+  VMOVSLDUPZ128rm = 13920,
+  VMOVSLDUPZ128rmk = 13921,
+  VMOVSLDUPZ128rmkz = 13922,
+  VMOVSLDUPZ128rr = 13923,
+  VMOVSLDUPZ128rrk = 13924,
+  VMOVSLDUPZ128rrkz = 13925,
+  VMOVSLDUPZ256rm = 13926,
+  VMOVSLDUPZ256rmk = 13927,
+  VMOVSLDUPZ256rmkz = 13928,
+  VMOVSLDUPZ256rr = 13929,
+  VMOVSLDUPZ256rrk = 13930,
+  VMOVSLDUPZ256rrkz = 13931,
+  VMOVSLDUPZrm = 13932,
+  VMOVSLDUPZrmk = 13933,
+  VMOVSLDUPZrmkz = 13934,
+  VMOVSLDUPZrr = 13935,
+  VMOVSLDUPZrrk = 13936,
+  VMOVSLDUPZrrkz = 13937,
+  VMOVSLDUPrm = 13938,
+  VMOVSLDUPrr = 13939,
+  VMOVSS2DIZrr = 13940,
+  VMOVSS2DIrr = 13941,
+  VMOVSSZmr = 13942,
+  VMOVSSZmrk = 13943,
+  VMOVSSZrm = 13944,
+  VMOVSSZrm_alt = 13945,
+  VMOVSSZrmk = 13946,
+  VMOVSSZrmkz = 13947,
+  VMOVSSZrr = 13948,
+  VMOVSSZrr_REV = 13949,
+  VMOVSSZrrk = 13950,
+  VMOVSSZrrk_REV = 13951,
+  VMOVSSZrrkz = 13952,
+  VMOVSSZrrkz_REV = 13953,
+  VMOVSSmr = 13954,
+  VMOVSSrm = 13955,
+  VMOVSSrm_alt = 13956,
+  VMOVSSrr = 13957,
+  VMOVSSrr_REV = 13958,
+  VMOVUPDYmr = 13959,
+  VMOVUPDYrm = 13960,
+  VMOVUPDYrr = 13961,
+  VMOVUPDYrr_REV = 13962,
+  VMOVUPDZ128mr = 13963,
+  VMOVUPDZ128mrk = 13964,
+  VMOVUPDZ128rm = 13965,
+  VMOVUPDZ128rmk = 13966,
+  VMOVUPDZ128rmkz = 13967,
+  VMOVUPDZ128rr = 13968,
+  VMOVUPDZ128rr_REV = 13969,
+  VMOVUPDZ128rrk = 13970,
+  VMOVUPDZ128rrk_REV = 13971,
+  VMOVUPDZ128rrkz = 13972,
+  VMOVUPDZ128rrkz_REV = 13973,
+  VMOVUPDZ256mr = 13974,
+  VMOVUPDZ256mrk = 13975,
+  VMOVUPDZ256rm = 13976,
+  VMOVUPDZ256rmk = 13977,
+  VMOVUPDZ256rmkz = 13978,
+  VMOVUPDZ256rr = 13979,
+  VMOVUPDZ256rr_REV = 13980,
+  VMOVUPDZ256rrk = 13981,
+  VMOVUPDZ256rrk_REV = 13982,
+  VMOVUPDZ256rrkz = 13983,
+  VMOVUPDZ256rrkz_REV = 13984,
+  VMOVUPDZmr = 13985,
+  VMOVUPDZmrk = 13986,
+  VMOVUPDZrm = 13987,
+  VMOVUPDZrmk = 13988,
+  VMOVUPDZrmkz = 13989,
+  VMOVUPDZrr = 13990,
+  VMOVUPDZrr_REV = 13991,
+  VMOVUPDZrrk = 13992,
+  VMOVUPDZrrk_REV = 13993,
+  VMOVUPDZrrkz = 13994,
+  VMOVUPDZrrkz_REV = 13995,
+  VMOVUPDmr = 13996,
+  VMOVUPDrm = 13997,
+  VMOVUPDrr = 13998,
+  VMOVUPDrr_REV = 13999,
+  VMOVUPSYmr = 14000,
+  VMOVUPSYrm = 14001,
+  VMOVUPSYrr = 14002,
+  VMOVUPSYrr_REV = 14003,
+  VMOVUPSZ128mr = 14004,
+  VMOVUPSZ128mrk = 14005,
+  VMOVUPSZ128rm = 14006,
+  VMOVUPSZ128rmk = 14007,
+  VMOVUPSZ128rmkz = 14008,
+  VMOVUPSZ128rr = 14009,
+  VMOVUPSZ128rr_REV = 14010,
+  VMOVUPSZ128rrk = 14011,
+  VMOVUPSZ128rrk_REV = 14012,
+  VMOVUPSZ128rrkz = 14013,
+  VMOVUPSZ128rrkz_REV = 14014,
+  VMOVUPSZ256mr = 14015,
+  VMOVUPSZ256mrk = 14016,
+  VMOVUPSZ256rm = 14017,
+  VMOVUPSZ256rmk = 14018,
+  VMOVUPSZ256rmkz = 14019,
+  VMOVUPSZ256rr = 14020,
+  VMOVUPSZ256rr_REV = 14021,
+  VMOVUPSZ256rrk = 14022,
+  VMOVUPSZ256rrk_REV = 14023,
+  VMOVUPSZ256rrkz = 14024,
+  VMOVUPSZ256rrkz_REV = 14025,
+  VMOVUPSZmr = 14026,
+  VMOVUPSZmrk = 14027,
+  VMOVUPSZrm = 14028,
+  VMOVUPSZrmk = 14029,
+  VMOVUPSZrmkz = 14030,
+  VMOVUPSZrr = 14031,
+  VMOVUPSZrr_REV = 14032,
+  VMOVUPSZrrk = 14033,
+  VMOVUPSZrrk_REV = 14034,
+  VMOVUPSZrrkz = 14035,
+  VMOVUPSZrrkz_REV = 14036,
+  VMOVUPSmr = 14037,
+  VMOVUPSrm = 14038,
+  VMOVUPSrr = 14039,
+  VMOVUPSrr_REV = 14040,
+  VMOVW2SHrr = 14041,
+  VMOVW64toSHrr = 14042,
+  VMOVWmr = 14043,
+  VMOVWrm = 14044,
+  VMOVZPDILo2PDIZmr = 14045,
+  VMOVZPDILo2PDIZrm = 14046,
+  VMOVZPDILo2PDIZrr = 14047,
+  VMOVZPDILo2PDIZrr2 = 14048,
+  VMOVZPQILo2PQIZrr = 14049,
+  VMOVZPQILo2PQIrr = 14050,
+  VMOVZPWILo2PWIZmr = 14051,
+  VMOVZPWILo2PWIZrm = 14052,
+  VMOVZPWILo2PWIZrr = 14053,
+  VMOVZPWILo2PWIZrr2 = 14054,
+  VMPSADBWYrmi = 14055,
+  VMPSADBWYrri = 14056,
+  VMPSADBWZ128rmi = 14057,
+  VMPSADBWZ128rmik = 14058,
+  VMPSADBWZ128rmikz = 14059,
+  VMPSADBWZ128rri = 14060,
+  VMPSADBWZ128rrik = 14061,
+  VMPSADBWZ128rrikz = 14062,
+  VMPSADBWZ256rmi = 14063,
+  VMPSADBWZ256rmik = 14064,
+  VMPSADBWZ256rmikz = 14065,
+  VMPSADBWZ256rri = 14066,
+  VMPSADBWZ256rrik = 14067,
+  VMPSADBWZ256rrikz = 14068,
+  VMPSADBWZrmi = 14069,
+  VMPSADBWZrmik = 14070,
+  VMPSADBWZrmikz = 14071,
+  VMPSADBWZrri = 14072,
+  VMPSADBWZrrik = 14073,
+  VMPSADBWZrrikz = 14074,
+  VMPSADBWrmi = 14075,
+  VMPSADBWrri = 14076,
+  VMPTRLDm = 14077,
+  VMPTRSTm = 14078,
+  VMREAD32mr = 14079,
+  VMREAD32rr = 14080,
+  VMREAD64mr = 14081,
+  VMREAD64rr = 14082,
+  VMRESUME = 14083,
+  VMRUN32 = 14084,
+  VMRUN64 = 14085,
+  VMSAVE32 = 14086,
+  VMSAVE64 = 14087,
+  VMULBF16Z128rm = 14088,
+  VMULBF16Z128rmb = 14089,
+  VMULBF16Z128rmbk = 14090,
+  VMULBF16Z128rmbkz = 14091,
+  VMULBF16Z128rmk = 14092,
+  VMULBF16Z128rmkz = 14093,
+  VMULBF16Z128rr = 14094,
+  VMULBF16Z128rrk = 14095,
+  VMULBF16Z128rrkz = 14096,
+  VMULBF16Z256rm = 14097,
+  VMULBF16Z256rmb = 14098,
+  VMULBF16Z256rmbk = 14099,
+  VMULBF16Z256rmbkz = 14100,
+  VMULBF16Z256rmk = 14101,
+  VMULBF16Z256rmkz = 14102,
+  VMULBF16Z256rr = 14103,
+  VMULBF16Z256rrk = 14104,
+  VMULBF16Z256rrkz = 14105,
+  VMULBF16Zrm = 14106,
+  VMULBF16Zrmb = 14107,
+  VMULBF16Zrmbk = 14108,
+  VMULBF16Zrmbkz = 14109,
+  VMULBF16Zrmk = 14110,
+  VMULBF16Zrmkz = 14111,
+  VMULBF16Zrr = 14112,
+  VMULBF16Zrrk = 14113,
+  VMULBF16Zrrkz = 14114,
+  VMULPDYrm = 14115,
+  VMULPDYrr = 14116,
+  VMULPDZ128rm = 14117,
+  VMULPDZ128rmb = 14118,
+  VMULPDZ128rmbk = 14119,
+  VMULPDZ128rmbkz = 14120,
+  VMULPDZ128rmk = 14121,
+  VMULPDZ128rmkz = 14122,
+  VMULPDZ128rr = 14123,
+  VMULPDZ128rrk = 14124,
+  VMULPDZ128rrkz = 14125,
+  VMULPDZ256rm = 14126,
+  VMULPDZ256rmb = 14127,
+  VMULPDZ256rmbk = 14128,
+  VMULPDZ256rmbkz = 14129,
+  VMULPDZ256rmk = 14130,
+  VMULPDZ256rmkz = 14131,
+  VMULPDZ256rr = 14132,
+  VMULPDZ256rrk = 14133,
+  VMULPDZ256rrkz = 14134,
+  VMULPDZrm = 14135,
+  VMULPDZrmb = 14136,
+  VMULPDZrmbk = 14137,
+  VMULPDZrmbkz = 14138,
+  VMULPDZrmk = 14139,
+  VMULPDZrmkz = 14140,
+  VMULPDZrr = 14141,
+  VMULPDZrrb = 14142,
+  VMULPDZrrbk = 14143,
+  VMULPDZrrbkz = 14144,
+  VMULPDZrrk = 14145,
+  VMULPDZrrkz = 14146,
+  VMULPDrm = 14147,
+  VMULPDrr = 14148,
+  VMULPHZ128rm = 14149,
+  VMULPHZ128rmb = 14150,
+  VMULPHZ128rmbk = 14151,
+  VMULPHZ128rmbkz = 14152,
+  VMULPHZ128rmk = 14153,
+  VMULPHZ128rmkz = 14154,
+  VMULPHZ128rr = 14155,
+  VMULPHZ128rrk = 14156,
+  VMULPHZ128rrkz = 14157,
+  VMULPHZ256rm = 14158,
+  VMULPHZ256rmb = 14159,
+  VMULPHZ256rmbk = 14160,
+  VMULPHZ256rmbkz = 14161,
+  VMULPHZ256rmk = 14162,
+  VMULPHZ256rmkz = 14163,
+  VMULPHZ256rr = 14164,
+  VMULPHZ256rrk = 14165,
+  VMULPHZ256rrkz = 14166,
+  VMULPHZrm = 14167,
+  VMULPHZrmb = 14168,
+  VMULPHZrmbk = 14169,
+  VMULPHZrmbkz = 14170,
+  VMULPHZrmk = 14171,
+  VMULPHZrmkz = 14172,
+  VMULPHZrr = 14173,
+  VMULPHZrrb = 14174,
+  VMULPHZrrbk = 14175,
+  VMULPHZrrbkz = 14176,
+  VMULPHZrrk = 14177,
+  VMULPHZrrkz = 14178,
+  VMULPSYrm = 14179,
+  VMULPSYrr = 14180,
+  VMULPSZ128rm = 14181,
+  VMULPSZ128rmb = 14182,
+  VMULPSZ128rmbk = 14183,
+  VMULPSZ128rmbkz = 14184,
+  VMULPSZ128rmk = 14185,
+  VMULPSZ128rmkz = 14186,
+  VMULPSZ128rr = 14187,
+  VMULPSZ128rrk = 14188,
+  VMULPSZ128rrkz = 14189,
+  VMULPSZ256rm = 14190,
+  VMULPSZ256rmb = 14191,
+  VMULPSZ256rmbk = 14192,
+  VMULPSZ256rmbkz = 14193,
+  VMULPSZ256rmk = 14194,
+  VMULPSZ256rmkz = 14195,
+  VMULPSZ256rr = 14196,
+  VMULPSZ256rrk = 14197,
+  VMULPSZ256rrkz = 14198,
+  VMULPSZrm = 14199,
+  VMULPSZrmb = 14200,
+  VMULPSZrmbk = 14201,
+  VMULPSZrmbkz = 14202,
+  VMULPSZrmk = 14203,
+  VMULPSZrmkz = 14204,
+  VMULPSZrr = 14205,
+  VMULPSZrrb = 14206,
+  VMULPSZrrbk = 14207,
+  VMULPSZrrbkz = 14208,
+  VMULPSZrrk = 14209,
+  VMULPSZrrkz = 14210,
+  VMULPSrm = 14211,
+  VMULPSrr = 14212,
+  VMULSDZrm = 14213,
+  VMULSDZrm_Int = 14214,
+  VMULSDZrmk_Int = 14215,
+  VMULSDZrmkz_Int = 14216,
+  VMULSDZrr = 14217,
+  VMULSDZrr_Int = 14218,
+  VMULSDZrrb_Int = 14219,
+  VMULSDZrrbk_Int = 14220,
+  VMULSDZrrbkz_Int = 14221,
+  VMULSDZrrk_Int = 14222,
+  VMULSDZrrkz_Int = 14223,
+  VMULSDrm = 14224,
+  VMULSDrm_Int = 14225,
+  VMULSDrr = 14226,
+  VMULSDrr_Int = 14227,
+  VMULSHZrm = 14228,
+  VMULSHZrm_Int = 14229,
+  VMULSHZrmk_Int = 14230,
+  VMULSHZrmkz_Int = 14231,
+  VMULSHZrr = 14232,
+  VMULSHZrr_Int = 14233,
+  VMULSHZrrb_Int = 14234,
+  VMULSHZrrbk_Int = 14235,
+  VMULSHZrrbkz_Int = 14236,
+  VMULSHZrrk_Int = 14237,
+  VMULSHZrrkz_Int = 14238,
+  VMULSSZrm = 14239,
+  VMULSSZrm_Int = 14240,
+  VMULSSZrmk_Int = 14241,
+  VMULSSZrmkz_Int = 14242,
+  VMULSSZrr = 14243,
+  VMULSSZrr_Int = 14244,
+  VMULSSZrrb_Int = 14245,
+  VMULSSZrrbk_Int = 14246,
+  VMULSSZrrbkz_Int = 14247,
+  VMULSSZrrk_Int = 14248,
+  VMULSSZrrkz_Int = 14249,
+  VMULSSrm = 14250,
+  VMULSSrm_Int = 14251,
+  VMULSSrr = 14252,
+  VMULSSrr_Int = 14253,
+  VMWRITE32rm = 14254,
+  VMWRITE32rr = 14255,
+  VMWRITE64rm = 14256,
+  VMWRITE64rr = 14257,
+  VMXOFF = 14258,
+  VMXON = 14259,
+  VORPDYrm = 14260,
+  VORPDYrr = 14261,
+  VORPDZ128rm = 14262,
+  VORPDZ128rmb = 14263,
+  VORPDZ128rmbk = 14264,
+  VORPDZ128rmbkz = 14265,
+  VORPDZ128rmk = 14266,
+  VORPDZ128rmkz = 14267,
+  VORPDZ128rr = 14268,
+  VORPDZ128rrk = 14269,
+  VORPDZ128rrkz = 14270,
+  VORPDZ256rm = 14271,
+  VORPDZ256rmb = 14272,
+  VORPDZ256rmbk = 14273,
+  VORPDZ256rmbkz = 14274,
+  VORPDZ256rmk = 14275,
+  VORPDZ256rmkz = 14276,
+  VORPDZ256rr = 14277,
+  VORPDZ256rrk = 14278,
+  VORPDZ256rrkz = 14279,
+  VORPDZrm = 14280,
+  VORPDZrmb = 14281,
+  VORPDZrmbk = 14282,
+  VORPDZrmbkz = 14283,
+  VORPDZrmk = 14284,
+  VORPDZrmkz = 14285,
+  VORPDZrr = 14286,
+  VORPDZrrk = 14287,
+  VORPDZrrkz = 14288,
+  VORPDrm = 14289,
+  VORPDrr = 14290,
+  VORPSYrm = 14291,
+  VORPSYrr = 14292,
+  VORPSZ128rm = 14293,
+  VORPSZ128rmb = 14294,
+  VORPSZ128rmbk = 14295,
+  VORPSZ128rmbkz = 14296,
+  VORPSZ128rmk = 14297,
+  VORPSZ128rmkz = 14298,
+  VORPSZ128rr = 14299,
+  VORPSZ128rrk = 14300,
+  VORPSZ128rrkz = 14301,
+  VORPSZ256rm = 14302,
+  VORPSZ256rmb = 14303,
+  VORPSZ256rmbk = 14304,
+  VORPSZ256rmbkz = 14305,
+  VORPSZ256rmk = 14306,
+  VORPSZ256rmkz = 14307,
+  VORPSZ256rr = 14308,
+  VORPSZ256rrk = 14309,
+  VORPSZ256rrkz = 14310,
+  VORPSZrm = 14311,
+  VORPSZrmb = 14312,
+  VORPSZrmbk = 14313,
+  VORPSZrmbkz = 14314,
+  VORPSZrmk = 14315,
+  VORPSZrmkz = 14316,
+  VORPSZrr = 14317,
+  VORPSZrrk = 14318,
+  VORPSZrrkz = 14319,
+  VORPSrm = 14320,
+  VORPSrr = 14321,
+  VP2INTERSECTDZ128rm = 14322,
+  VP2INTERSECTDZ128rmb = 14323,
+  VP2INTERSECTDZ128rr = 14324,
+  VP2INTERSECTDZ256rm = 14325,
+  VP2INTERSECTDZ256rmb = 14326,
+  VP2INTERSECTDZ256rr = 14327,
+  VP2INTERSECTDZrm = 14328,
+  VP2INTERSECTDZrmb = 14329,
+  VP2INTERSECTDZrr = 14330,
+  VP2INTERSECTQZ128rm = 14331,
+  VP2INTERSECTQZ128rmb = 14332,
+  VP2INTERSECTQZ128rr = 14333,
+  VP2INTERSECTQZ256rm = 14334,
+  VP2INTERSECTQZ256rmb = 14335,
+  VP2INTERSECTQZ256rr = 14336,
+  VP2INTERSECTQZrm = 14337,
+  VP2INTERSECTQZrmb = 14338,
+  VP2INTERSECTQZrr = 14339,
+  VP4DPWSSDSrm = 14340,
+  VP4DPWSSDSrmk = 14341,
+  VP4DPWSSDSrmkz = 14342,
+  VP4DPWSSDrm = 14343,
+  VP4DPWSSDrmk = 14344,
+  VP4DPWSSDrmkz = 14345,
+  VPABSBYrm = 14346,
+  VPABSBYrr = 14347,
+  VPABSBZ128rm = 14348,
+  VPABSBZ128rmk = 14349,
+  VPABSBZ128rmkz = 14350,
+  VPABSBZ128rr = 14351,
+  VPABSBZ128rrk = 14352,
+  VPABSBZ128rrkz = 14353,
+  VPABSBZ256rm = 14354,
+  VPABSBZ256rmk = 14355,
+  VPABSBZ256rmkz = 14356,
+  VPABSBZ256rr = 14357,
+  VPABSBZ256rrk = 14358,
+  VPABSBZ256rrkz = 14359,
+  VPABSBZrm = 14360,
+  VPABSBZrmk = 14361,
+  VPABSBZrmkz = 14362,
+  VPABSBZrr = 14363,
+  VPABSBZrrk = 14364,
+  VPABSBZrrkz = 14365,
+  VPABSBrm = 14366,
+  VPABSBrr = 14367,
+  VPABSDYrm = 14368,
+  VPABSDYrr = 14369,
+  VPABSDZ128rm = 14370,
+  VPABSDZ128rmb = 14371,
+  VPABSDZ128rmbk = 14372,
+  VPABSDZ128rmbkz = 14373,
+  VPABSDZ128rmk = 14374,
+  VPABSDZ128rmkz = 14375,
+  VPABSDZ128rr = 14376,
+  VPABSDZ128rrk = 14377,
+  VPABSDZ128rrkz = 14378,
+  VPABSDZ256rm = 14379,
+  VPABSDZ256rmb = 14380,
+  VPABSDZ256rmbk = 14381,
+  VPABSDZ256rmbkz = 14382,
+  VPABSDZ256rmk = 14383,
+  VPABSDZ256rmkz = 14384,
+  VPABSDZ256rr = 14385,
+  VPABSDZ256rrk = 14386,
+  VPABSDZ256rrkz = 14387,
+  VPABSDZrm = 14388,
+  VPABSDZrmb = 14389,
+  VPABSDZrmbk = 14390,
+  VPABSDZrmbkz = 14391,
+  VPABSDZrmk = 14392,
+  VPABSDZrmkz = 14393,
+  VPABSDZrr = 14394,
+  VPABSDZrrk = 14395,
+  VPABSDZrrkz = 14396,
+  VPABSDrm = 14397,
+  VPABSDrr = 14398,
+  VPABSQZ128rm = 14399,
+  VPABSQZ128rmb = 14400,
+  VPABSQZ128rmbk = 14401,
+  VPABSQZ128rmbkz = 14402,
+  VPABSQZ128rmk = 14403,
+  VPABSQZ128rmkz = 14404,
+  VPABSQZ128rr = 14405,
+  VPABSQZ128rrk = 14406,
+  VPABSQZ128rrkz = 14407,
+  VPABSQZ256rm = 14408,
+  VPABSQZ256rmb = 14409,
+  VPABSQZ256rmbk = 14410,
+  VPABSQZ256rmbkz = 14411,
+  VPABSQZ256rmk = 14412,
+  VPABSQZ256rmkz = 14413,
+  VPABSQZ256rr = 14414,
+  VPABSQZ256rrk = 14415,
+  VPABSQZ256rrkz = 14416,
+  VPABSQZrm = 14417,
+  VPABSQZrmb = 14418,
+  VPABSQZrmbk = 14419,
+  VPABSQZrmbkz = 14420,
+  VPABSQZrmk = 14421,
+  VPABSQZrmkz = 14422,
+  VPABSQZrr = 14423,
+  VPABSQZrrk = 14424,
+  VPABSQZrrkz = 14425,
+  VPABSWYrm = 14426,
+  VPABSWYrr = 14427,
+  VPABSWZ128rm = 14428,
+  VPABSWZ128rmk = 14429,
+  VPABSWZ128rmkz = 14430,
+  VPABSWZ128rr = 14431,
+  VPABSWZ128rrk = 14432,
+  VPABSWZ128rrkz = 14433,
+  VPABSWZ256rm = 14434,
+  VPABSWZ256rmk = 14435,
+  VPABSWZ256rmkz = 14436,
+  VPABSWZ256rr = 14437,
+  VPABSWZ256rrk = 14438,
+  VPABSWZ256rrkz = 14439,
+  VPABSWZrm = 14440,
+  VPABSWZrmk = 14441,
+  VPABSWZrmkz = 14442,
+  VPABSWZrr = 14443,
+  VPABSWZrrk = 14444,
+  VPABSWZrrkz = 14445,
+  VPABSWrm = 14446,
+  VPABSWrr = 14447,
+  VPACKSSDWYrm = 14448,
+  VPACKSSDWYrr = 14449,
+  VPACKSSDWZ128rm = 14450,
+  VPACKSSDWZ128rmb = 14451,
+  VPACKSSDWZ128rmbk = 14452,
+  VPACKSSDWZ128rmbkz = 14453,
+  VPACKSSDWZ128rmk = 14454,
+  VPACKSSDWZ128rmkz = 14455,
+  VPACKSSDWZ128rr = 14456,
+  VPACKSSDWZ128rrk = 14457,
+  VPACKSSDWZ128rrkz = 14458,
+  VPACKSSDWZ256rm = 14459,
+  VPACKSSDWZ256rmb = 14460,
+  VPACKSSDWZ256rmbk = 14461,
+  VPACKSSDWZ256rmbkz = 14462,
+  VPACKSSDWZ256rmk = 14463,
+  VPACKSSDWZ256rmkz = 14464,
+  VPACKSSDWZ256rr = 14465,
+  VPACKSSDWZ256rrk = 14466,
+  VPACKSSDWZ256rrkz = 14467,
+  VPACKSSDWZrm = 14468,
+  VPACKSSDWZrmb = 14469,
+  VPACKSSDWZrmbk = 14470,
+  VPACKSSDWZrmbkz = 14471,
+  VPACKSSDWZrmk = 14472,
+  VPACKSSDWZrmkz = 14473,
+  VPACKSSDWZrr = 14474,
+  VPACKSSDWZrrk = 14475,
+  VPACKSSDWZrrkz = 14476,
+  VPACKSSDWrm = 14477,
+  VPACKSSDWrr = 14478,
+  VPACKSSWBYrm = 14479,
+  VPACKSSWBYrr = 14480,
+  VPACKSSWBZ128rm = 14481,
+  VPACKSSWBZ128rmk = 14482,
+  VPACKSSWBZ128rmkz = 14483,
+  VPACKSSWBZ128rr = 14484,
+  VPACKSSWBZ128rrk = 14485,
+  VPACKSSWBZ128rrkz = 14486,
+  VPACKSSWBZ256rm = 14487,
+  VPACKSSWBZ256rmk = 14488,
+  VPACKSSWBZ256rmkz = 14489,
+  VPACKSSWBZ256rr = 14490,
+  VPACKSSWBZ256rrk = 14491,
+  VPACKSSWBZ256rrkz = 14492,
+  VPACKSSWBZrm = 14493,
+  VPACKSSWBZrmk = 14494,
+  VPACKSSWBZrmkz = 14495,
+  VPACKSSWBZrr = 14496,
+  VPACKSSWBZrrk = 14497,
+  VPACKSSWBZrrkz = 14498,
+  VPACKSSWBrm = 14499,
+  VPACKSSWBrr = 14500,
+  VPACKUSDWYrm = 14501,
+  VPACKUSDWYrr = 14502,
+  VPACKUSDWZ128rm = 14503,
+  VPACKUSDWZ128rmb = 14504,
+  VPACKUSDWZ128rmbk = 14505,
+  VPACKUSDWZ128rmbkz = 14506,
+  VPACKUSDWZ128rmk = 14507,
+  VPACKUSDWZ128rmkz = 14508,
+  VPACKUSDWZ128rr = 14509,
+  VPACKUSDWZ128rrk = 14510,
+  VPACKUSDWZ128rrkz = 14511,
+  VPACKUSDWZ256rm = 14512,
+  VPACKUSDWZ256rmb = 14513,
+  VPACKUSDWZ256rmbk = 14514,
+  VPACKUSDWZ256rmbkz = 14515,
+  VPACKUSDWZ256rmk = 14516,
+  VPACKUSDWZ256rmkz = 14517,
+  VPACKUSDWZ256rr = 14518,
+  VPACKUSDWZ256rrk = 14519,
+  VPACKUSDWZ256rrkz = 14520,
+  VPACKUSDWZrm = 14521,
+  VPACKUSDWZrmb = 14522,
+  VPACKUSDWZrmbk = 14523,
+  VPACKUSDWZrmbkz = 14524,
+  VPACKUSDWZrmk = 14525,
+  VPACKUSDWZrmkz = 14526,
+  VPACKUSDWZrr = 14527,
+  VPACKUSDWZrrk = 14528,
+  VPACKUSDWZrrkz = 14529,
+  VPACKUSDWrm = 14530,
+  VPACKUSDWrr = 14531,
+  VPACKUSWBYrm = 14532,
+  VPACKUSWBYrr = 14533,
+  VPACKUSWBZ128rm = 14534,
+  VPACKUSWBZ128rmk = 14535,
+  VPACKUSWBZ128rmkz = 14536,
+  VPACKUSWBZ128rr = 14537,
+  VPACKUSWBZ128rrk = 14538,
+  VPACKUSWBZ128rrkz = 14539,
+  VPACKUSWBZ256rm = 14540,
+  VPACKUSWBZ256rmk = 14541,
+  VPACKUSWBZ256rmkz = 14542,
+  VPACKUSWBZ256rr = 14543,
+  VPACKUSWBZ256rrk = 14544,
+  VPACKUSWBZ256rrkz = 14545,
+  VPACKUSWBZrm = 14546,
+  VPACKUSWBZrmk = 14547,
+  VPACKUSWBZrmkz = 14548,
+  VPACKUSWBZrr = 14549,
+  VPACKUSWBZrrk = 14550,
+  VPACKUSWBZrrkz = 14551,
+  VPACKUSWBrm = 14552,
+  VPACKUSWBrr = 14553,
+  VPADDBYrm = 14554,
+  VPADDBYrr = 14555,
+  VPADDBZ128rm = 14556,
+  VPADDBZ128rmk = 14557,
+  VPADDBZ128rmkz = 14558,
+  VPADDBZ128rr = 14559,
+  VPADDBZ128rrk = 14560,
+  VPADDBZ128rrkz = 14561,
+  VPADDBZ256rm = 14562,
+  VPADDBZ256rmk = 14563,
+  VPADDBZ256rmkz = 14564,
+  VPADDBZ256rr = 14565,
+  VPADDBZ256rrk = 14566,
+  VPADDBZ256rrkz = 14567,
+  VPADDBZrm = 14568,
+  VPADDBZrmk = 14569,
+  VPADDBZrmkz = 14570,
+  VPADDBZrr = 14571,
+  VPADDBZrrk = 14572,
+  VPADDBZrrkz = 14573,
+  VPADDBrm = 14574,
+  VPADDBrr = 14575,
+  VPADDDYrm = 14576,
+  VPADDDYrr = 14577,
+  VPADDDZ128rm = 14578,
+  VPADDDZ128rmb = 14579,
+  VPADDDZ128rmbk = 14580,
+  VPADDDZ128rmbkz = 14581,
+  VPADDDZ128rmk = 14582,
+  VPADDDZ128rmkz = 14583,
+  VPADDDZ128rr = 14584,
+  VPADDDZ128rrk = 14585,
+  VPADDDZ128rrkz = 14586,
+  VPADDDZ256rm = 14587,
+  VPADDDZ256rmb = 14588,
+  VPADDDZ256rmbk = 14589,
+  VPADDDZ256rmbkz = 14590,
+  VPADDDZ256rmk = 14591,
+  VPADDDZ256rmkz = 14592,
+  VPADDDZ256rr = 14593,
+  VPADDDZ256rrk = 14594,
+  VPADDDZ256rrkz = 14595,
+  VPADDDZrm = 14596,
+  VPADDDZrmb = 14597,
+  VPADDDZrmbk = 14598,
+  VPADDDZrmbkz = 14599,
+  VPADDDZrmk = 14600,
+  VPADDDZrmkz = 14601,
+  VPADDDZrr = 14602,
+  VPADDDZrrk = 14603,
+  VPADDDZrrkz = 14604,
+  VPADDDrm = 14605,
+  VPADDDrr = 14606,
+  VPADDQYrm = 14607,
+  VPADDQYrr = 14608,
+  VPADDQZ128rm = 14609,
+  VPADDQZ128rmb = 14610,
+  VPADDQZ128rmbk = 14611,
+  VPADDQZ128rmbkz = 14612,
+  VPADDQZ128rmk = 14613,
+  VPADDQZ128rmkz = 14614,
+  VPADDQZ128rr = 14615,
+  VPADDQZ128rrk = 14616,
+  VPADDQZ128rrkz = 14617,
+  VPADDQZ256rm = 14618,
+  VPADDQZ256rmb = 14619,
+  VPADDQZ256rmbk = 14620,
+  VPADDQZ256rmbkz = 14621,
+  VPADDQZ256rmk = 14622,
+  VPADDQZ256rmkz = 14623,
+  VPADDQZ256rr = 14624,
+  VPADDQZ256rrk = 14625,
+  VPADDQZ256rrkz = 14626,
+  VPADDQZrm = 14627,
+  VPADDQZrmb = 14628,
+  VPADDQZrmbk = 14629,
+  VPADDQZrmbkz = 14630,
+  VPADDQZrmk = 14631,
+  VPADDQZrmkz = 14632,
+  VPADDQZrr = 14633,
+  VPADDQZrrk = 14634,
+  VPADDQZrrkz = 14635,
+  VPADDQrm = 14636,
+  VPADDQrr = 14637,
+  VPADDSBYrm = 14638,
+  VPADDSBYrr = 14639,
+  VPADDSBZ128rm = 14640,
+  VPADDSBZ128rmk = 14641,
+  VPADDSBZ128rmkz = 14642,
+  VPADDSBZ128rr = 14643,
+  VPADDSBZ128rrk = 14644,
+  VPADDSBZ128rrkz = 14645,
+  VPADDSBZ256rm = 14646,
+  VPADDSBZ256rmk = 14647,
+  VPADDSBZ256rmkz = 14648,
+  VPADDSBZ256rr = 14649,
+  VPADDSBZ256rrk = 14650,
+  VPADDSBZ256rrkz = 14651,
+  VPADDSBZrm = 14652,
+  VPADDSBZrmk = 14653,
+  VPADDSBZrmkz = 14654,
+  VPADDSBZrr = 14655,
+  VPADDSBZrrk = 14656,
+  VPADDSBZrrkz = 14657,
+  VPADDSBrm = 14658,
+  VPADDSBrr = 14659,
+  VPADDSWYrm = 14660,
+  VPADDSWYrr = 14661,
+  VPADDSWZ128rm = 14662,
+  VPADDSWZ128rmk = 14663,
+  VPADDSWZ128rmkz = 14664,
+  VPADDSWZ128rr = 14665,
+  VPADDSWZ128rrk = 14666,
+  VPADDSWZ128rrkz = 14667,
+  VPADDSWZ256rm = 14668,
+  VPADDSWZ256rmk = 14669,
+  VPADDSWZ256rmkz = 14670,
+  VPADDSWZ256rr = 14671,
+  VPADDSWZ256rrk = 14672,
+  VPADDSWZ256rrkz = 14673,
+  VPADDSWZrm = 14674,
+  VPADDSWZrmk = 14675,
+  VPADDSWZrmkz = 14676,
+  VPADDSWZrr = 14677,
+  VPADDSWZrrk = 14678,
+  VPADDSWZrrkz = 14679,
+  VPADDSWrm = 14680,
+  VPADDSWrr = 14681,
+  VPADDUSBYrm = 14682,
+  VPADDUSBYrr = 14683,
+  VPADDUSBZ128rm = 14684,
+  VPADDUSBZ128rmk = 14685,
+  VPADDUSBZ128rmkz = 14686,
+  VPADDUSBZ128rr = 14687,
+  VPADDUSBZ128rrk = 14688,
+  VPADDUSBZ128rrkz = 14689,
+  VPADDUSBZ256rm = 14690,
+  VPADDUSBZ256rmk = 14691,
+  VPADDUSBZ256rmkz = 14692,
+  VPADDUSBZ256rr = 14693,
+  VPADDUSBZ256rrk = 14694,
+  VPADDUSBZ256rrkz = 14695,
+  VPADDUSBZrm = 14696,
+  VPADDUSBZrmk = 14697,
+  VPADDUSBZrmkz = 14698,
+  VPADDUSBZrr = 14699,
+  VPADDUSBZrrk = 14700,
+  VPADDUSBZrrkz = 14701,
+  VPADDUSBrm = 14702,
+  VPADDUSBrr = 14703,
+  VPADDUSWYrm = 14704,
+  VPADDUSWYrr = 14705,
+  VPADDUSWZ128rm = 14706,
+  VPADDUSWZ128rmk = 14707,
+  VPADDUSWZ128rmkz = 14708,
+  VPADDUSWZ128rr = 14709,
+  VPADDUSWZ128rrk = 14710,
+  VPADDUSWZ128rrkz = 14711,
+  VPADDUSWZ256rm = 14712,
+  VPADDUSWZ256rmk = 14713,
+  VPADDUSWZ256rmkz = 14714,
+  VPADDUSWZ256rr = 14715,
+  VPADDUSWZ256rrk = 14716,
+  VPADDUSWZ256rrkz = 14717,
+  VPADDUSWZrm = 14718,
+  VPADDUSWZrmk = 14719,
+  VPADDUSWZrmkz = 14720,
+  VPADDUSWZrr = 14721,
+  VPADDUSWZrrk = 14722,
+  VPADDUSWZrrkz = 14723,
+  VPADDUSWrm = 14724,
+  VPADDUSWrr = 14725,
+  VPADDWYrm = 14726,
+  VPADDWYrr = 14727,
+  VPADDWZ128rm = 14728,
+  VPADDWZ128rmk = 14729,
+  VPADDWZ128rmkz = 14730,
+  VPADDWZ128rr = 14731,
+  VPADDWZ128rrk = 14732,
+  VPADDWZ128rrkz = 14733,
+  VPADDWZ256rm = 14734,
+  VPADDWZ256rmk = 14735,
+  VPADDWZ256rmkz = 14736,
+  VPADDWZ256rr = 14737,
+  VPADDWZ256rrk = 14738,
+  VPADDWZ256rrkz = 14739,
+  VPADDWZrm = 14740,
+  VPADDWZrmk = 14741,
+  VPADDWZrmkz = 14742,
+  VPADDWZrr = 14743,
+  VPADDWZrrk = 14744,
+  VPADDWZrrkz = 14745,
+  VPADDWrm = 14746,
+  VPADDWrr = 14747,
+  VPALIGNRYrmi = 14748,
+  VPALIGNRYrri = 14749,
+  VPALIGNRZ128rmi = 14750,
+  VPALIGNRZ128rmik = 14751,
+  VPALIGNRZ128rmikz = 14752,
+  VPALIGNRZ128rri = 14753,
+  VPALIGNRZ128rrik = 14754,
+  VPALIGNRZ128rrikz = 14755,
+  VPALIGNRZ256rmi = 14756,
+  VPALIGNRZ256rmik = 14757,
+  VPALIGNRZ256rmikz = 14758,
+  VPALIGNRZ256rri = 14759,
+  VPALIGNRZ256rrik = 14760,
+  VPALIGNRZ256rrikz = 14761,
+  VPALIGNRZrmi = 14762,
+  VPALIGNRZrmik = 14763,
+  VPALIGNRZrmikz = 14764,
+  VPALIGNRZrri = 14765,
+  VPALIGNRZrrik = 14766,
+  VPALIGNRZrrikz = 14767,
+  VPALIGNRrmi = 14768,
+  VPALIGNRrri = 14769,
+  VPANDDZ128rm = 14770,
+  VPANDDZ128rmb = 14771,
+  VPANDDZ128rmbk = 14772,
+  VPANDDZ128rmbkz = 14773,
+  VPANDDZ128rmk = 14774,
+  VPANDDZ128rmkz = 14775,
+  VPANDDZ128rr = 14776,
+  VPANDDZ128rrk = 14777,
+  VPANDDZ128rrkz = 14778,
+  VPANDDZ256rm = 14779,
+  VPANDDZ256rmb = 14780,
+  VPANDDZ256rmbk = 14781,
+  VPANDDZ256rmbkz = 14782,
+  VPANDDZ256rmk = 14783,
+  VPANDDZ256rmkz = 14784,
+  VPANDDZ256rr = 14785,
+  VPANDDZ256rrk = 14786,
+  VPANDDZ256rrkz = 14787,
+  VPANDDZrm = 14788,
+  VPANDDZrmb = 14789,
+  VPANDDZrmbk = 14790,
+  VPANDDZrmbkz = 14791,
+  VPANDDZrmk = 14792,
+  VPANDDZrmkz = 14793,
+  VPANDDZrr = 14794,
+  VPANDDZrrk = 14795,
+  VPANDDZrrkz = 14796,
+  VPANDNDZ128rm = 14797,
+  VPANDNDZ128rmb = 14798,
+  VPANDNDZ128rmbk = 14799,
+  VPANDNDZ128rmbkz = 14800,
+  VPANDNDZ128rmk = 14801,
+  VPANDNDZ128rmkz = 14802,
+  VPANDNDZ128rr = 14803,
+  VPANDNDZ128rrk = 14804,
+  VPANDNDZ128rrkz = 14805,
+  VPANDNDZ256rm = 14806,
+  VPANDNDZ256rmb = 14807,
+  VPANDNDZ256rmbk = 14808,
+  VPANDNDZ256rmbkz = 14809,
+  VPANDNDZ256rmk = 14810,
+  VPANDNDZ256rmkz = 14811,
+  VPANDNDZ256rr = 14812,
+  VPANDNDZ256rrk = 14813,
+  VPANDNDZ256rrkz = 14814,
+  VPANDNDZrm = 14815,
+  VPANDNDZrmb = 14816,
+  VPANDNDZrmbk = 14817,
+  VPANDNDZrmbkz = 14818,
+  VPANDNDZrmk = 14819,
+  VPANDNDZrmkz = 14820,
+  VPANDNDZrr = 14821,
+  VPANDNDZrrk = 14822,
+  VPANDNDZrrkz = 14823,
+  VPANDNQZ128rm = 14824,
+  VPANDNQZ128rmb = 14825,
+  VPANDNQZ128rmbk = 14826,
+  VPANDNQZ128rmbkz = 14827,
+  VPANDNQZ128rmk = 14828,
+  VPANDNQZ128rmkz = 14829,
+  VPANDNQZ128rr = 14830,
+  VPANDNQZ128rrk = 14831,
+  VPANDNQZ128rrkz = 14832,
+  VPANDNQZ256rm = 14833,
+  VPANDNQZ256rmb = 14834,
+  VPANDNQZ256rmbk = 14835,
+  VPANDNQZ256rmbkz = 14836,
+  VPANDNQZ256rmk = 14837,
+  VPANDNQZ256rmkz = 14838,
+  VPANDNQZ256rr = 14839,
+  VPANDNQZ256rrk = 14840,
+  VPANDNQZ256rrkz = 14841,
+  VPANDNQZrm = 14842,
+  VPANDNQZrmb = 14843,
+  VPANDNQZrmbk = 14844,
+  VPANDNQZrmbkz = 14845,
+  VPANDNQZrmk = 14846,
+  VPANDNQZrmkz = 14847,
+  VPANDNQZrr = 14848,
+  VPANDNQZrrk = 14849,
+  VPANDNQZrrkz = 14850,
+  VPANDNYrm = 14851,
+  VPANDNYrr = 14852,
+  VPANDNrm = 14853,
+  VPANDNrr = 14854,
+  VPANDQZ128rm = 14855,
+  VPANDQZ128rmb = 14856,
+  VPANDQZ128rmbk = 14857,
+  VPANDQZ128rmbkz = 14858,
+  VPANDQZ128rmk = 14859,
+  VPANDQZ128rmkz = 14860,
+  VPANDQZ128rr = 14861,
+  VPANDQZ128rrk = 14862,
+  VPANDQZ128rrkz = 14863,
+  VPANDQZ256rm = 14864,
+  VPANDQZ256rmb = 14865,
+  VPANDQZ256rmbk = 14866,
+  VPANDQZ256rmbkz = 14867,
+  VPANDQZ256rmk = 14868,
+  VPANDQZ256rmkz = 14869,
+  VPANDQZ256rr = 14870,
+  VPANDQZ256rrk = 14871,
+  VPANDQZ256rrkz = 14872,
+  VPANDQZrm = 14873,
+  VPANDQZrmb = 14874,
+  VPANDQZrmbk = 14875,
+  VPANDQZrmbkz = 14876,
+  VPANDQZrmk = 14877,
+  VPANDQZrmkz = 14878,
+  VPANDQZrr = 14879,
+  VPANDQZrrk = 14880,
+  VPANDQZrrkz = 14881,
+  VPANDYrm = 14882,
+  VPANDYrr = 14883,
+  VPANDrm = 14884,
+  VPANDrr = 14885,
+  VPAVGBYrm = 14886,
+  VPAVGBYrr = 14887,
+  VPAVGBZ128rm = 14888,
+  VPAVGBZ128rmk = 14889,
+  VPAVGBZ128rmkz = 14890,
+  VPAVGBZ128rr = 14891,
+  VPAVGBZ128rrk = 14892,
+  VPAVGBZ128rrkz = 14893,
+  VPAVGBZ256rm = 14894,
+  VPAVGBZ256rmk = 14895,
+  VPAVGBZ256rmkz = 14896,
+  VPAVGBZ256rr = 14897,
+  VPAVGBZ256rrk = 14898,
+  VPAVGBZ256rrkz = 14899,
+  VPAVGBZrm = 14900,
+  VPAVGBZrmk = 14901,
+  VPAVGBZrmkz = 14902,
+  VPAVGBZrr = 14903,
+  VPAVGBZrrk = 14904,
+  VPAVGBZrrkz = 14905,
+  VPAVGBrm = 14906,
+  VPAVGBrr = 14907,
+  VPAVGWYrm = 14908,
+  VPAVGWYrr = 14909,
+  VPAVGWZ128rm = 14910,
+  VPAVGWZ128rmk = 14911,
+  VPAVGWZ128rmkz = 14912,
+  VPAVGWZ128rr = 14913,
+  VPAVGWZ128rrk = 14914,
+  VPAVGWZ128rrkz = 14915,
+  VPAVGWZ256rm = 14916,
+  VPAVGWZ256rmk = 14917,
+  VPAVGWZ256rmkz = 14918,
+  VPAVGWZ256rr = 14919,
+  VPAVGWZ256rrk = 14920,
+  VPAVGWZ256rrkz = 14921,
+  VPAVGWZrm = 14922,
+  VPAVGWZrmk = 14923,
+  VPAVGWZrmkz = 14924,
+  VPAVGWZrr = 14925,
+  VPAVGWZrrk = 14926,
+  VPAVGWZrrkz = 14927,
+  VPAVGWrm = 14928,
+  VPAVGWrr = 14929,
+  VPBLENDDYrmi = 14930,
+  VPBLENDDYrri = 14931,
+  VPBLENDDrmi = 14932,
+  VPBLENDDrri = 14933,
+  VPBLENDMBZ128rm = 14934,
+  VPBLENDMBZ128rmk = 14935,
+  VPBLENDMBZ128rmkz = 14936,
+  VPBLENDMBZ128rr = 14937,
+  VPBLENDMBZ128rrk = 14938,
+  VPBLENDMBZ128rrkz = 14939,
+  VPBLENDMBZ256rm = 14940,
+  VPBLENDMBZ256rmk = 14941,
+  VPBLENDMBZ256rmkz = 14942,
+  VPBLENDMBZ256rr = 14943,
+  VPBLENDMBZ256rrk = 14944,
+  VPBLENDMBZ256rrkz = 14945,
+  VPBLENDMBZrm = 14946,
+  VPBLENDMBZrmk = 14947,
+  VPBLENDMBZrmkz = 14948,
+  VPBLENDMBZrr = 14949,
+  VPBLENDMBZrrk = 14950,
+  VPBLENDMBZrrkz = 14951,
+  VPBLENDMDZ128rm = 14952,
+  VPBLENDMDZ128rmb = 14953,
+  VPBLENDMDZ128rmbk = 14954,
+  VPBLENDMDZ128rmbkz = 14955,
+  VPBLENDMDZ128rmk = 14956,
+  VPBLENDMDZ128rmkz = 14957,
+  VPBLENDMDZ128rr = 14958,
+  VPBLENDMDZ128rrk = 14959,
+  VPBLENDMDZ128rrkz = 14960,
+  VPBLENDMDZ256rm = 14961,
+  VPBLENDMDZ256rmb = 14962,
+  VPBLENDMDZ256rmbk = 14963,
+  VPBLENDMDZ256rmbkz = 14964,
+  VPBLENDMDZ256rmk = 14965,
+  VPBLENDMDZ256rmkz = 14966,
+  VPBLENDMDZ256rr = 14967,
+  VPBLENDMDZ256rrk = 14968,
+  VPBLENDMDZ256rrkz = 14969,
+  VPBLENDMDZrm = 14970,
+  VPBLENDMDZrmb = 14971,
+  VPBLENDMDZrmbk = 14972,
+  VPBLENDMDZrmbkz = 14973,
+  VPBLENDMDZrmk = 14974,
+  VPBLENDMDZrmkz = 14975,
+  VPBLENDMDZrr = 14976,
+  VPBLENDMDZrrk = 14977,
+  VPBLENDMDZrrkz = 14978,
+  VPBLENDMQZ128rm = 14979,
+  VPBLENDMQZ128rmb = 14980,
+  VPBLENDMQZ128rmbk = 14981,
+  VPBLENDMQZ128rmbkz = 14982,
+  VPBLENDMQZ128rmk = 14983,
+  VPBLENDMQZ128rmkz = 14984,
+  VPBLENDMQZ128rr = 14985,
+  VPBLENDMQZ128rrk = 14986,
+  VPBLENDMQZ128rrkz = 14987,
+  VPBLENDMQZ256rm = 14988,
+  VPBLENDMQZ256rmb = 14989,
+  VPBLENDMQZ256rmbk = 14990,
+  VPBLENDMQZ256rmbkz = 14991,
+  VPBLENDMQZ256rmk = 14992,
+  VPBLENDMQZ256rmkz = 14993,
+  VPBLENDMQZ256rr = 14994,
+  VPBLENDMQZ256rrk = 14995,
+  VPBLENDMQZ256rrkz = 14996,
+  VPBLENDMQZrm = 14997,
+  VPBLENDMQZrmb = 14998,
+  VPBLENDMQZrmbk = 14999,
+  VPBLENDMQZrmbkz = 15000,
+  VPBLENDMQZrmk = 15001,
+  VPBLENDMQZrmkz = 15002,
+  VPBLENDMQZrr = 15003,
+  VPBLENDMQZrrk = 15004,
+  VPBLENDMQZrrkz = 15005,
+  VPBLENDMWZ128rm = 15006,
+  VPBLENDMWZ128rmk = 15007,
+  VPBLENDMWZ128rmkz = 15008,
+  VPBLENDMWZ128rr = 15009,
+  VPBLENDMWZ128rrk = 15010,
+  VPBLENDMWZ128rrkz = 15011,
+  VPBLENDMWZ256rm = 15012,
+  VPBLENDMWZ256rmk = 15013,
+  VPBLENDMWZ256rmkz = 15014,
+  VPBLENDMWZ256rr = 15015,
+  VPBLENDMWZ256rrk = 15016,
+  VPBLENDMWZ256rrkz = 15017,
+  VPBLENDMWZrm = 15018,
+  VPBLENDMWZrmk = 15019,
+  VPBLENDMWZrmkz = 15020,
+  VPBLENDMWZrr = 15021,
+  VPBLENDMWZrrk = 15022,
+  VPBLENDMWZrrkz = 15023,
+  VPBLENDVBYrmr = 15024,
+  VPBLENDVBYrrr = 15025,
+  VPBLENDVBrmr = 15026,
+  VPBLENDVBrrr = 15027,
+  VPBLENDWYrmi = 15028,
+  VPBLENDWYrri = 15029,
+  VPBLENDWrmi = 15030,
+  VPBLENDWrri = 15031,
+  VPBROADCASTBYrm = 15032,
+  VPBROADCASTBYrr = 15033,
+  VPBROADCASTBZ128rm = 15034,
+  VPBROADCASTBZ128rmk = 15035,
+  VPBROADCASTBZ128rmkz = 15036,
+  VPBROADCASTBZ128rr = 15037,
+  VPBROADCASTBZ128rrk = 15038,
+  VPBROADCASTBZ128rrkz = 15039,
+  VPBROADCASTBZ256rm = 15040,
+  VPBROADCASTBZ256rmk = 15041,
+  VPBROADCASTBZ256rmkz = 15042,
+  VPBROADCASTBZ256rr = 15043,
+  VPBROADCASTBZ256rrk = 15044,
+  VPBROADCASTBZ256rrkz = 15045,
+  VPBROADCASTBZrm = 15046,
+  VPBROADCASTBZrmk = 15047,
+  VPBROADCASTBZrmkz = 15048,
+  VPBROADCASTBZrr = 15049,
+  VPBROADCASTBZrrk = 15050,
+  VPBROADCASTBZrrkz = 15051,
+  VPBROADCASTBrZ128rr = 15052,
+  VPBROADCASTBrZ128rrk = 15053,
+  VPBROADCASTBrZ128rrkz = 15054,
+  VPBROADCASTBrZ256rr = 15055,
+  VPBROADCASTBrZ256rrk = 15056,
+  VPBROADCASTBrZ256rrkz = 15057,
+  VPBROADCASTBrZrr = 15058,
+  VPBROADCASTBrZrrk = 15059,
+  VPBROADCASTBrZrrkz = 15060,
+  VPBROADCASTBrm = 15061,
+  VPBROADCASTBrr = 15062,
+  VPBROADCASTDYrm = 15063,
+  VPBROADCASTDYrr = 15064,
+  VPBROADCASTDZ128rm = 15065,
+  VPBROADCASTDZ128rmk = 15066,
+  VPBROADCASTDZ128rmkz = 15067,
+  VPBROADCASTDZ128rr = 15068,
+  VPBROADCASTDZ128rrk = 15069,
+  VPBROADCASTDZ128rrkz = 15070,
+  VPBROADCASTDZ256rm = 15071,
+  VPBROADCASTDZ256rmk = 15072,
+  VPBROADCASTDZ256rmkz = 15073,
+  VPBROADCASTDZ256rr = 15074,
+  VPBROADCASTDZ256rrk = 15075,
+  VPBROADCASTDZ256rrkz = 15076,
+  VPBROADCASTDZrm = 15077,
+  VPBROADCASTDZrmk = 15078,
+  VPBROADCASTDZrmkz = 15079,
+  VPBROADCASTDZrr = 15080,
+  VPBROADCASTDZrrk = 15081,
+  VPBROADCASTDZrrkz = 15082,
+  VPBROADCASTDrZ128rr = 15083,
+  VPBROADCASTDrZ128rrk = 15084,
+  VPBROADCASTDrZ128rrkz = 15085,
+  VPBROADCASTDrZ256rr = 15086,
+  VPBROADCASTDrZ256rrk = 15087,
+  VPBROADCASTDrZ256rrkz = 15088,
+  VPBROADCASTDrZrr = 15089,
+  VPBROADCASTDrZrrk = 15090,
+  VPBROADCASTDrZrrkz = 15091,
+  VPBROADCASTDrm = 15092,
+  VPBROADCASTDrr = 15093,
+  VPBROADCASTMB2QZ128rr = 15094,
+  VPBROADCASTMB2QZ256rr = 15095,
+  VPBROADCASTMB2QZrr = 15096,
+  VPBROADCASTMW2DZ128rr = 15097,
+  VPBROADCASTMW2DZ256rr = 15098,
+  VPBROADCASTMW2DZrr = 15099,
+  VPBROADCASTQYrm = 15100,
+  VPBROADCASTQYrr = 15101,
+  VPBROADCASTQZ128rm = 15102,
+  VPBROADCASTQZ128rmk = 15103,
+  VPBROADCASTQZ128rmkz = 15104,
+  VPBROADCASTQZ128rr = 15105,
+  VPBROADCASTQZ128rrk = 15106,
+  VPBROADCASTQZ128rrkz = 15107,
+  VPBROADCASTQZ256rm = 15108,
+  VPBROADCASTQZ256rmk = 15109,
+  VPBROADCASTQZ256rmkz = 15110,
+  VPBROADCASTQZ256rr = 15111,
+  VPBROADCASTQZ256rrk = 15112,
+  VPBROADCASTQZ256rrkz = 15113,
+  VPBROADCASTQZrm = 15114,
+  VPBROADCASTQZrmk = 15115,
+  VPBROADCASTQZrmkz = 15116,
+  VPBROADCASTQZrr = 15117,
+  VPBROADCASTQZrrk = 15118,
+  VPBROADCASTQZrrkz = 15119,
+  VPBROADCASTQrZ128rr = 15120,
+  VPBROADCASTQrZ128rrk = 15121,
+  VPBROADCASTQrZ128rrkz = 15122,
+  VPBROADCASTQrZ256rr = 15123,
+  VPBROADCASTQrZ256rrk = 15124,
+  VPBROADCASTQrZ256rrkz = 15125,
+  VPBROADCASTQrZrr = 15126,
+  VPBROADCASTQrZrrk = 15127,
+  VPBROADCASTQrZrrkz = 15128,
+  VPBROADCASTQrm = 15129,
+  VPBROADCASTQrr = 15130,
+  VPBROADCASTWYrm = 15131,
+  VPBROADCASTWYrr = 15132,
+  VPBROADCASTWZ128rm = 15133,
+  VPBROADCASTWZ128rmk = 15134,
+  VPBROADCASTWZ128rmkz = 15135,
+  VPBROADCASTWZ128rr = 15136,
+  VPBROADCASTWZ128rrk = 15137,
+  VPBROADCASTWZ128rrkz = 15138,
+  VPBROADCASTWZ256rm = 15139,
+  VPBROADCASTWZ256rmk = 15140,
+  VPBROADCASTWZ256rmkz = 15141,
+  VPBROADCASTWZ256rr = 15142,
+  VPBROADCASTWZ256rrk = 15143,
+  VPBROADCASTWZ256rrkz = 15144,
+  VPBROADCASTWZrm = 15145,
+  VPBROADCASTWZrmk = 15146,
+  VPBROADCASTWZrmkz = 15147,
+  VPBROADCASTWZrr = 15148,
+  VPBROADCASTWZrrk = 15149,
+  VPBROADCASTWZrrkz = 15150,
+  VPBROADCASTWrZ128rr = 15151,
+  VPBROADCASTWrZ128rrk = 15152,
+  VPBROADCASTWrZ128rrkz = 15153,
+  VPBROADCASTWrZ256rr = 15154,
+  VPBROADCASTWrZ256rrk = 15155,
+  VPBROADCASTWrZ256rrkz = 15156,
+  VPBROADCASTWrZrr = 15157,
+  VPBROADCASTWrZrrk = 15158,
+  VPBROADCASTWrZrrkz = 15159,
+  VPBROADCASTWrm = 15160,
+  VPBROADCASTWrr = 15161,
+  VPCLMULQDQYrmi = 15162,
+  VPCLMULQDQYrri = 15163,
+  VPCLMULQDQZ128rmi = 15164,
+  VPCLMULQDQZ128rri = 15165,
+  VPCLMULQDQZ256rmi = 15166,
+  VPCLMULQDQZ256rri = 15167,
+  VPCLMULQDQZrmi = 15168,
+  VPCLMULQDQZrri = 15169,
+  VPCLMULQDQrmi = 15170,
+  VPCLMULQDQrri = 15171,
+  VPCMOVYrmr = 15172,
+  VPCMOVYrrm = 15173,
+  VPCMOVYrrr = 15174,
+  VPCMOVYrrr_REV = 15175,
+  VPCMOVrmr = 15176,
+  VPCMOVrrm = 15177,
+  VPCMOVrrr = 15178,
+  VPCMOVrrr_REV = 15179,
+  VPCMPBZ128rmi = 15180,
+  VPCMPBZ128rmik = 15181,
+  VPCMPBZ128rri = 15182,
+  VPCMPBZ128rrik = 15183,
+  VPCMPBZ256rmi = 15184,
+  VPCMPBZ256rmik = 15185,
+  VPCMPBZ256rri = 15186,
+  VPCMPBZ256rrik = 15187,
+  VPCMPBZrmi = 15188,
+  VPCMPBZrmik = 15189,
+  VPCMPBZrri = 15190,
+  VPCMPBZrrik = 15191,
+  VPCMPDZ128rmbi = 15192,
+  VPCMPDZ128rmbik = 15193,
+  VPCMPDZ128rmi = 15194,
+  VPCMPDZ128rmik = 15195,
+  VPCMPDZ128rri = 15196,
+  VPCMPDZ128rrik = 15197,
+  VPCMPDZ256rmbi = 15198,
+  VPCMPDZ256rmbik = 15199,
+  VPCMPDZ256rmi = 15200,
+  VPCMPDZ256rmik = 15201,
+  VPCMPDZ256rri = 15202,
+  VPCMPDZ256rrik = 15203,
+  VPCMPDZrmbi = 15204,
+  VPCMPDZrmbik = 15205,
+  VPCMPDZrmi = 15206,
+  VPCMPDZrmik = 15207,
+  VPCMPDZrri = 15208,
+  VPCMPDZrrik = 15209,
+  VPCMPEQBYrm = 15210,
+  VPCMPEQBYrr = 15211,
+  VPCMPEQBZ128rm = 15212,
+  VPCMPEQBZ128rmk = 15213,
+  VPCMPEQBZ128rr = 15214,
+  VPCMPEQBZ128rrk = 15215,
+  VPCMPEQBZ256rm = 15216,
+  VPCMPEQBZ256rmk = 15217,
+  VPCMPEQBZ256rr = 15218,
+  VPCMPEQBZ256rrk = 15219,
+  VPCMPEQBZrm = 15220,
+  VPCMPEQBZrmk = 15221,
+  VPCMPEQBZrr = 15222,
+  VPCMPEQBZrrk = 15223,
+  VPCMPEQBrm = 15224,
+  VPCMPEQBrr = 15225,
+  VPCMPEQDYrm = 15226,
+  VPCMPEQDYrr = 15227,
+  VPCMPEQDZ128rm = 15228,
+  VPCMPEQDZ128rmb = 15229,
+  VPCMPEQDZ128rmbk = 15230,
+  VPCMPEQDZ128rmk = 15231,
+  VPCMPEQDZ128rr = 15232,
+  VPCMPEQDZ128rrk = 15233,
+  VPCMPEQDZ256rm = 15234,
+  VPCMPEQDZ256rmb = 15235,
+  VPCMPEQDZ256rmbk = 15236,
+  VPCMPEQDZ256rmk = 15237,
+  VPCMPEQDZ256rr = 15238,
+  VPCMPEQDZ256rrk = 15239,
+  VPCMPEQDZrm = 15240,
+  VPCMPEQDZrmb = 15241,
+  VPCMPEQDZrmbk = 15242,
+  VPCMPEQDZrmk = 15243,
+  VPCMPEQDZrr = 15244,
+  VPCMPEQDZrrk = 15245,
+  VPCMPEQDrm = 15246,
+  VPCMPEQDrr = 15247,
+  VPCMPEQQYrm = 15248,
+  VPCMPEQQYrr = 15249,
+  VPCMPEQQZ128rm = 15250,
+  VPCMPEQQZ128rmb = 15251,
+  VPCMPEQQZ128rmbk = 15252,
+  VPCMPEQQZ128rmk = 15253,
+  VPCMPEQQZ128rr = 15254,
+  VPCMPEQQZ128rrk = 15255,
+  VPCMPEQQZ256rm = 15256,
+  VPCMPEQQZ256rmb = 15257,
+  VPCMPEQQZ256rmbk = 15258,
+  VPCMPEQQZ256rmk = 15259,
+  VPCMPEQQZ256rr = 15260,
+  VPCMPEQQZ256rrk = 15261,
+  VPCMPEQQZrm = 15262,
+  VPCMPEQQZrmb = 15263,
+  VPCMPEQQZrmbk = 15264,
+  VPCMPEQQZrmk = 15265,
+  VPCMPEQQZrr = 15266,
+  VPCMPEQQZrrk = 15267,
+  VPCMPEQQrm = 15268,
+  VPCMPEQQrr = 15269,
+  VPCMPEQWYrm = 15270,
+  VPCMPEQWYrr = 15271,
+  VPCMPEQWZ128rm = 15272,
+  VPCMPEQWZ128rmk = 15273,
+  VPCMPEQWZ128rr = 15274,
+  VPCMPEQWZ128rrk = 15275,
+  VPCMPEQWZ256rm = 15276,
+  VPCMPEQWZ256rmk = 15277,
+  VPCMPEQWZ256rr = 15278,
+  VPCMPEQWZ256rrk = 15279,
+  VPCMPEQWZrm = 15280,
+  VPCMPEQWZrmk = 15281,
+  VPCMPEQWZrr = 15282,
+  VPCMPEQWZrrk = 15283,
+  VPCMPEQWrm = 15284,
+  VPCMPEQWrr = 15285,
+  VPCMPESTRIrmi = 15286,
+  VPCMPESTRIrri = 15287,
+  VPCMPESTRMrmi = 15288,
+  VPCMPESTRMrri = 15289,
+  VPCMPGTBYrm = 15290,
+  VPCMPGTBYrr = 15291,
+  VPCMPGTBZ128rm = 15292,
+  VPCMPGTBZ128rmk = 15293,
+  VPCMPGTBZ128rr = 15294,
+  VPCMPGTBZ128rrk = 15295,
+  VPCMPGTBZ256rm = 15296,
+  VPCMPGTBZ256rmk = 15297,
+  VPCMPGTBZ256rr = 15298,
+  VPCMPGTBZ256rrk = 15299,
+  VPCMPGTBZrm = 15300,
+  VPCMPGTBZrmk = 15301,
+  VPCMPGTBZrr = 15302,
+  VPCMPGTBZrrk = 15303,
+  VPCMPGTBrm = 15304,
+  VPCMPGTBrr = 15305,
+  VPCMPGTDYrm = 15306,
+  VPCMPGTDYrr = 15307,
+  VPCMPGTDZ128rm = 15308,
+  VPCMPGTDZ128rmb = 15309,
+  VPCMPGTDZ128rmbk = 15310,
+  VPCMPGTDZ128rmk = 15311,
+  VPCMPGTDZ128rr = 15312,
+  VPCMPGTDZ128rrk = 15313,
+  VPCMPGTDZ256rm = 15314,
+  VPCMPGTDZ256rmb = 15315,
+  VPCMPGTDZ256rmbk = 15316,
+  VPCMPGTDZ256rmk = 15317,
+  VPCMPGTDZ256rr = 15318,
+  VPCMPGTDZ256rrk = 15319,
+  VPCMPGTDZrm = 15320,
+  VPCMPGTDZrmb = 15321,
+  VPCMPGTDZrmbk = 15322,
+  VPCMPGTDZrmk = 15323,
+  VPCMPGTDZrr = 15324,
+  VPCMPGTDZrrk = 15325,
+  VPCMPGTDrm = 15326,
+  VPCMPGTDrr = 15327,
+  VPCMPGTQYrm = 15328,
+  VPCMPGTQYrr = 15329,
+  VPCMPGTQZ128rm = 15330,
+  VPCMPGTQZ128rmb = 15331,
+  VPCMPGTQZ128rmbk = 15332,
+  VPCMPGTQZ128rmk = 15333,
+  VPCMPGTQZ128rr = 15334,
+  VPCMPGTQZ128rrk = 15335,
+  VPCMPGTQZ256rm = 15336,
+  VPCMPGTQZ256rmb = 15337,
+  VPCMPGTQZ256rmbk = 15338,
+  VPCMPGTQZ256rmk = 15339,
+  VPCMPGTQZ256rr = 15340,
+  VPCMPGTQZ256rrk = 15341,
+  VPCMPGTQZrm = 15342,
+  VPCMPGTQZrmb = 15343,
+  VPCMPGTQZrmbk = 15344,
+  VPCMPGTQZrmk = 15345,
+  VPCMPGTQZrr = 15346,
+  VPCMPGTQZrrk = 15347,
+  VPCMPGTQrm = 15348,
+  VPCMPGTQrr = 15349,
+  VPCMPGTWYrm = 15350,
+  VPCMPGTWYrr = 15351,
+  VPCMPGTWZ128rm = 15352,
+  VPCMPGTWZ128rmk = 15353,
+  VPCMPGTWZ128rr = 15354,
+  VPCMPGTWZ128rrk = 15355,
+  VPCMPGTWZ256rm = 15356,
+  VPCMPGTWZ256rmk = 15357,
+  VPCMPGTWZ256rr = 15358,
+  VPCMPGTWZ256rrk = 15359,
+  VPCMPGTWZrm = 15360,
+  VPCMPGTWZrmk = 15361,
+  VPCMPGTWZrr = 15362,
+  VPCMPGTWZrrk = 15363,
+  VPCMPGTWrm = 15364,
+  VPCMPGTWrr = 15365,
+  VPCMPISTRIrmi = 15366,
+  VPCMPISTRIrri = 15367,
+  VPCMPISTRMrmi = 15368,
+  VPCMPISTRMrri = 15369,
+  VPCMPQZ128rmbi = 15370,
+  VPCMPQZ128rmbik = 15371,
+  VPCMPQZ128rmi = 15372,
+  VPCMPQZ128rmik = 15373,
+  VPCMPQZ128rri = 15374,
+  VPCMPQZ128rrik = 15375,
+  VPCMPQZ256rmbi = 15376,
+  VPCMPQZ256rmbik = 15377,
+  VPCMPQZ256rmi = 15378,
+  VPCMPQZ256rmik = 15379,
+  VPCMPQZ256rri = 15380,
+  VPCMPQZ256rrik = 15381,
+  VPCMPQZrmbi = 15382,
+  VPCMPQZrmbik = 15383,
+  VPCMPQZrmi = 15384,
+  VPCMPQZrmik = 15385,
+  VPCMPQZrri = 15386,
+  VPCMPQZrrik = 15387,
+  VPCMPUBZ128rmi = 15388,
+  VPCMPUBZ128rmik = 15389,
+  VPCMPUBZ128rri = 15390,
+  VPCMPUBZ128rrik = 15391,
+  VPCMPUBZ256rmi = 15392,
+  VPCMPUBZ256rmik = 15393,
+  VPCMPUBZ256rri = 15394,
+  VPCMPUBZ256rrik = 15395,
+  VPCMPUBZrmi = 15396,
+  VPCMPUBZrmik = 15397,
+  VPCMPUBZrri = 15398,
+  VPCMPUBZrrik = 15399,
+  VPCMPUDZ128rmbi = 15400,
+  VPCMPUDZ128rmbik = 15401,
+  VPCMPUDZ128rmi = 15402,
+  VPCMPUDZ128rmik = 15403,
+  VPCMPUDZ128rri = 15404,
+  VPCMPUDZ128rrik = 15405,
+  VPCMPUDZ256rmbi = 15406,
+  VPCMPUDZ256rmbik = 15407,
+  VPCMPUDZ256rmi = 15408,
+  VPCMPUDZ256rmik = 15409,
+  VPCMPUDZ256rri = 15410,
+  VPCMPUDZ256rrik = 15411,
+  VPCMPUDZrmbi = 15412,
+  VPCMPUDZrmbik = 15413,
+  VPCMPUDZrmi = 15414,
+  VPCMPUDZrmik = 15415,
+  VPCMPUDZrri = 15416,
+  VPCMPUDZrrik = 15417,
+  VPCMPUQZ128rmbi = 15418,
+  VPCMPUQZ128rmbik = 15419,
+  VPCMPUQZ128rmi = 15420,
+  VPCMPUQZ128rmik = 15421,
+  VPCMPUQZ128rri = 15422,
+  VPCMPUQZ128rrik = 15423,
+  VPCMPUQZ256rmbi = 15424,
+  VPCMPUQZ256rmbik = 15425,
+  VPCMPUQZ256rmi = 15426,
+  VPCMPUQZ256rmik = 15427,
+  VPCMPUQZ256rri = 15428,
+  VPCMPUQZ256rrik = 15429,
+  VPCMPUQZrmbi = 15430,
+  VPCMPUQZrmbik = 15431,
+  VPCMPUQZrmi = 15432,
+  VPCMPUQZrmik = 15433,
+  VPCMPUQZrri = 15434,
+  VPCMPUQZrrik = 15435,
+  VPCMPUWZ128rmi = 15436,
+  VPCMPUWZ128rmik = 15437,
+  VPCMPUWZ128rri = 15438,
+  VPCMPUWZ128rrik = 15439,
+  VPCMPUWZ256rmi = 15440,
+  VPCMPUWZ256rmik = 15441,
+  VPCMPUWZ256rri = 15442,
+  VPCMPUWZ256rrik = 15443,
+  VPCMPUWZrmi = 15444,
+  VPCMPUWZrmik = 15445,
+  VPCMPUWZrri = 15446,
+  VPCMPUWZrrik = 15447,
+  VPCMPWZ128rmi = 15448,
+  VPCMPWZ128rmik = 15449,
+  VPCMPWZ128rri = 15450,
+  VPCMPWZ128rrik = 15451,
+  VPCMPWZ256rmi = 15452,
+  VPCMPWZ256rmik = 15453,
+  VPCMPWZ256rri = 15454,
+  VPCMPWZ256rrik = 15455,
+  VPCMPWZrmi = 15456,
+  VPCMPWZrmik = 15457,
+  VPCMPWZrri = 15458,
+  VPCMPWZrrik = 15459,
+  VPCOMBmi = 15460,
+  VPCOMBri = 15461,
+  VPCOMDmi = 15462,
+  VPCOMDri = 15463,
+  VPCOMPRESSBZ128mr = 15464,
+  VPCOMPRESSBZ128mrk = 15465,
+  VPCOMPRESSBZ128rr = 15466,
+  VPCOMPRESSBZ128rrk = 15467,
+  VPCOMPRESSBZ128rrkz = 15468,
+  VPCOMPRESSBZ256mr = 15469,
+  VPCOMPRESSBZ256mrk = 15470,
+  VPCOMPRESSBZ256rr = 15471,
+  VPCOMPRESSBZ256rrk = 15472,
+  VPCOMPRESSBZ256rrkz = 15473,
+  VPCOMPRESSBZmr = 15474,
+  VPCOMPRESSBZmrk = 15475,
+  VPCOMPRESSBZrr = 15476,
+  VPCOMPRESSBZrrk = 15477,
+  VPCOMPRESSBZrrkz = 15478,
+  VPCOMPRESSDZ128mr = 15479,
+  VPCOMPRESSDZ128mrk = 15480,
+  VPCOMPRESSDZ128rr = 15481,
+  VPCOMPRESSDZ128rrk = 15482,
+  VPCOMPRESSDZ128rrkz = 15483,
+  VPCOMPRESSDZ256mr = 15484,
+  VPCOMPRESSDZ256mrk = 15485,
+  VPCOMPRESSDZ256rr = 15486,
+  VPCOMPRESSDZ256rrk = 15487,
+  VPCOMPRESSDZ256rrkz = 15488,
+  VPCOMPRESSDZmr = 15489,
+  VPCOMPRESSDZmrk = 15490,
+  VPCOMPRESSDZrr = 15491,
+  VPCOMPRESSDZrrk = 15492,
+  VPCOMPRESSDZrrkz = 15493,
+  VPCOMPRESSQZ128mr = 15494,
+  VPCOMPRESSQZ128mrk = 15495,
+  VPCOMPRESSQZ128rr = 15496,
+  VPCOMPRESSQZ128rrk = 15497,
+  VPCOMPRESSQZ128rrkz = 15498,
+  VPCOMPRESSQZ256mr = 15499,
+  VPCOMPRESSQZ256mrk = 15500,
+  VPCOMPRESSQZ256rr = 15501,
+  VPCOMPRESSQZ256rrk = 15502,
+  VPCOMPRESSQZ256rrkz = 15503,
+  VPCOMPRESSQZmr = 15504,
+  VPCOMPRESSQZmrk = 15505,
+  VPCOMPRESSQZrr = 15506,
+  VPCOMPRESSQZrrk = 15507,
+  VPCOMPRESSQZrrkz = 15508,
+  VPCOMPRESSWZ128mr = 15509,
+  VPCOMPRESSWZ128mrk = 15510,
+  VPCOMPRESSWZ128rr = 15511,
+  VPCOMPRESSWZ128rrk = 15512,
+  VPCOMPRESSWZ128rrkz = 15513,
+  VPCOMPRESSWZ256mr = 15514,
+  VPCOMPRESSWZ256mrk = 15515,
+  VPCOMPRESSWZ256rr = 15516,
+  VPCOMPRESSWZ256rrk = 15517,
+  VPCOMPRESSWZ256rrkz = 15518,
+  VPCOMPRESSWZmr = 15519,
+  VPCOMPRESSWZmrk = 15520,
+  VPCOMPRESSWZrr = 15521,
+  VPCOMPRESSWZrrk = 15522,
+  VPCOMPRESSWZrrkz = 15523,
+  VPCOMQmi = 15524,
+  VPCOMQri = 15525,
+  VPCOMUBmi = 15526,
+  VPCOMUBri = 15527,
+  VPCOMUDmi = 15528,
+  VPCOMUDri = 15529,
+  VPCOMUQmi = 15530,
+  VPCOMUQri = 15531,
+  VPCOMUWmi = 15532,
+  VPCOMUWri = 15533,
+  VPCOMWmi = 15534,
+  VPCOMWri = 15535,
+  VPCONFLICTDZ128rm = 15536,
+  VPCONFLICTDZ128rmb = 15537,
+  VPCONFLICTDZ128rmbk = 15538,
+  VPCONFLICTDZ128rmbkz = 15539,
+  VPCONFLICTDZ128rmk = 15540,
+  VPCONFLICTDZ128rmkz = 15541,
+  VPCONFLICTDZ128rr = 15542,
+  VPCONFLICTDZ128rrk = 15543,
+  VPCONFLICTDZ128rrkz = 15544,
+  VPCONFLICTDZ256rm = 15545,
+  VPCONFLICTDZ256rmb = 15546,
+  VPCONFLICTDZ256rmbk = 15547,
+  VPCONFLICTDZ256rmbkz = 15548,
+  VPCONFLICTDZ256rmk = 15549,
+  VPCONFLICTDZ256rmkz = 15550,
+  VPCONFLICTDZ256rr = 15551,
+  VPCONFLICTDZ256rrk = 15552,
+  VPCONFLICTDZ256rrkz = 15553,
+  VPCONFLICTDZrm = 15554,
+  VPCONFLICTDZrmb = 15555,
+  VPCONFLICTDZrmbk = 15556,
+  VPCONFLICTDZrmbkz = 15557,
+  VPCONFLICTDZrmk = 15558,
+  VPCONFLICTDZrmkz = 15559,
+  VPCONFLICTDZrr = 15560,
+  VPCONFLICTDZrrk = 15561,
+  VPCONFLICTDZrrkz = 15562,
+  VPCONFLICTQZ128rm = 15563,
+  VPCONFLICTQZ128rmb = 15564,
+  VPCONFLICTQZ128rmbk = 15565,
+  VPCONFLICTQZ128rmbkz = 15566,
+  VPCONFLICTQZ128rmk = 15567,
+  VPCONFLICTQZ128rmkz = 15568,
+  VPCONFLICTQZ128rr = 15569,
+  VPCONFLICTQZ128rrk = 15570,
+  VPCONFLICTQZ128rrkz = 15571,
+  VPCONFLICTQZ256rm = 15572,
+  VPCONFLICTQZ256rmb = 15573,
+  VPCONFLICTQZ256rmbk = 15574,
+  VPCONFLICTQZ256rmbkz = 15575,
+  VPCONFLICTQZ256rmk = 15576,
+  VPCONFLICTQZ256rmkz = 15577,
+  VPCONFLICTQZ256rr = 15578,
+  VPCONFLICTQZ256rrk = 15579,
+  VPCONFLICTQZ256rrkz = 15580,
+  VPCONFLICTQZrm = 15581,
+  VPCONFLICTQZrmb = 15582,
+  VPCONFLICTQZrmbk = 15583,
+  VPCONFLICTQZrmbkz = 15584,
+  VPCONFLICTQZrmk = 15585,
+  VPCONFLICTQZrmkz = 15586,
+  VPCONFLICTQZrr = 15587,
+  VPCONFLICTQZrrk = 15588,
+  VPCONFLICTQZrrkz = 15589,
+  VPDPBSSDSYrm = 15590,
+  VPDPBSSDSYrr = 15591,
+  VPDPBSSDSZ128rm = 15592,
+  VPDPBSSDSZ128rmb = 15593,
+  VPDPBSSDSZ128rmbk = 15594,
+  VPDPBSSDSZ128rmbkz = 15595,
+  VPDPBSSDSZ128rmk = 15596,
+  VPDPBSSDSZ128rmkz = 15597,
+  VPDPBSSDSZ128rr = 15598,
+  VPDPBSSDSZ128rrk = 15599,
+  VPDPBSSDSZ128rrkz = 15600,
+  VPDPBSSDSZ256rm = 15601,
+  VPDPBSSDSZ256rmb = 15602,
+  VPDPBSSDSZ256rmbk = 15603,
+  VPDPBSSDSZ256rmbkz = 15604,
+  VPDPBSSDSZ256rmk = 15605,
+  VPDPBSSDSZ256rmkz = 15606,
+  VPDPBSSDSZ256rr = 15607,
+  VPDPBSSDSZ256rrk = 15608,
+  VPDPBSSDSZ256rrkz = 15609,
+  VPDPBSSDSZrm = 15610,
+  VPDPBSSDSZrmb = 15611,
+  VPDPBSSDSZrmbk = 15612,
+  VPDPBSSDSZrmbkz = 15613,
+  VPDPBSSDSZrmk = 15614,
+  VPDPBSSDSZrmkz = 15615,
+  VPDPBSSDSZrr = 15616,
+  VPDPBSSDSZrrk = 15617,
+  VPDPBSSDSZrrkz = 15618,
+  VPDPBSSDSrm = 15619,
+  VPDPBSSDSrr = 15620,
+  VPDPBSSDYrm = 15621,
+  VPDPBSSDYrr = 15622,
+  VPDPBSSDZ128rm = 15623,
+  VPDPBSSDZ128rmb = 15624,
+  VPDPBSSDZ128rmbk = 15625,
+  VPDPBSSDZ128rmbkz = 15626,
+  VPDPBSSDZ128rmk = 15627,
+  VPDPBSSDZ128rmkz = 15628,
+  VPDPBSSDZ128rr = 15629,
+  VPDPBSSDZ128rrk = 15630,
+  VPDPBSSDZ128rrkz = 15631,
+  VPDPBSSDZ256rm = 15632,
+  VPDPBSSDZ256rmb = 15633,
+  VPDPBSSDZ256rmbk = 15634,
+  VPDPBSSDZ256rmbkz = 15635,
+  VPDPBSSDZ256rmk = 15636,
+  VPDPBSSDZ256rmkz = 15637,
+  VPDPBSSDZ256rr = 15638,
+  VPDPBSSDZ256rrk = 15639,
+  VPDPBSSDZ256rrkz = 15640,
+  VPDPBSSDZrm = 15641,
+  VPDPBSSDZrmb = 15642,
+  VPDPBSSDZrmbk = 15643,
+  VPDPBSSDZrmbkz = 15644,
+  VPDPBSSDZrmk = 15645,
+  VPDPBSSDZrmkz = 15646,
+  VPDPBSSDZrr = 15647,
+  VPDPBSSDZrrk = 15648,
+  VPDPBSSDZrrkz = 15649,
+  VPDPBSSDrm = 15650,
+  VPDPBSSDrr = 15651,
+  VPDPBSUDSYrm = 15652,
+  VPDPBSUDSYrr = 15653,
+  VPDPBSUDSZ128rm = 15654,
+  VPDPBSUDSZ128rmb = 15655,
+  VPDPBSUDSZ128rmbk = 15656,
+  VPDPBSUDSZ128rmbkz = 15657,
+  VPDPBSUDSZ128rmk = 15658,
+  VPDPBSUDSZ128rmkz = 15659,
+  VPDPBSUDSZ128rr = 15660,
+  VPDPBSUDSZ128rrk = 15661,
+  VPDPBSUDSZ128rrkz = 15662,
+  VPDPBSUDSZ256rm = 15663,
+  VPDPBSUDSZ256rmb = 15664,
+  VPDPBSUDSZ256rmbk = 15665,
+  VPDPBSUDSZ256rmbkz = 15666,
+  VPDPBSUDSZ256rmk = 15667,
+  VPDPBSUDSZ256rmkz = 15668,
+  VPDPBSUDSZ256rr = 15669,
+  VPDPBSUDSZ256rrk = 15670,
+  VPDPBSUDSZ256rrkz = 15671,
+  VPDPBSUDSZrm = 15672,
+  VPDPBSUDSZrmb = 15673,
+  VPDPBSUDSZrmbk = 15674,
+  VPDPBSUDSZrmbkz = 15675,
+  VPDPBSUDSZrmk = 15676,
+  VPDPBSUDSZrmkz = 15677,
+  VPDPBSUDSZrr = 15678,
+  VPDPBSUDSZrrk = 15679,
+  VPDPBSUDSZrrkz = 15680,
+  VPDPBSUDSrm = 15681,
+  VPDPBSUDSrr = 15682,
+  VPDPBSUDYrm = 15683,
+  VPDPBSUDYrr = 15684,
+  VPDPBSUDZ128rm = 15685,
+  VPDPBSUDZ128rmb = 15686,
+  VPDPBSUDZ128rmbk = 15687,
+  VPDPBSUDZ128rmbkz = 15688,
+  VPDPBSUDZ128rmk = 15689,
+  VPDPBSUDZ128rmkz = 15690,
+  VPDPBSUDZ128rr = 15691,
+  VPDPBSUDZ128rrk = 15692,
+  VPDPBSUDZ128rrkz = 15693,
+  VPDPBSUDZ256rm = 15694,
+  VPDPBSUDZ256rmb = 15695,
+  VPDPBSUDZ256rmbk = 15696,
+  VPDPBSUDZ256rmbkz = 15697,
+  VPDPBSUDZ256rmk = 15698,
+  VPDPBSUDZ256rmkz = 15699,
+  VPDPBSUDZ256rr = 15700,
+  VPDPBSUDZ256rrk = 15701,
+  VPDPBSUDZ256rrkz = 15702,
+  VPDPBSUDZrm = 15703,
+  VPDPBSUDZrmb = 15704,
+  VPDPBSUDZrmbk = 15705,
+  VPDPBSUDZrmbkz = 15706,
+  VPDPBSUDZrmk = 15707,
+  VPDPBSUDZrmkz = 15708,
+  VPDPBSUDZrr = 15709,
+  VPDPBSUDZrrk = 15710,
+  VPDPBSUDZrrkz = 15711,
+  VPDPBSUDrm = 15712,
+  VPDPBSUDrr = 15713,
+  VPDPBUSDSYrm = 15714,
+  VPDPBUSDSYrr = 15715,
+  VPDPBUSDSZ128rm = 15716,
+  VPDPBUSDSZ128rmb = 15717,
+  VPDPBUSDSZ128rmbk = 15718,
+  VPDPBUSDSZ128rmbkz = 15719,
+  VPDPBUSDSZ128rmk = 15720,
+  VPDPBUSDSZ128rmkz = 15721,
+  VPDPBUSDSZ128rr = 15722,
+  VPDPBUSDSZ128rrk = 15723,
+  VPDPBUSDSZ128rrkz = 15724,
+  VPDPBUSDSZ256rm = 15725,
+  VPDPBUSDSZ256rmb = 15726,
+  VPDPBUSDSZ256rmbk = 15727,
+  VPDPBUSDSZ256rmbkz = 15728,
+  VPDPBUSDSZ256rmk = 15729,
+  VPDPBUSDSZ256rmkz = 15730,
+  VPDPBUSDSZ256rr = 15731,
+  VPDPBUSDSZ256rrk = 15732,
+  VPDPBUSDSZ256rrkz = 15733,
+  VPDPBUSDSZrm = 15734,
+  VPDPBUSDSZrmb = 15735,
+  VPDPBUSDSZrmbk = 15736,
+  VPDPBUSDSZrmbkz = 15737,
+  VPDPBUSDSZrmk = 15738,
+  VPDPBUSDSZrmkz = 15739,
+  VPDPBUSDSZrr = 15740,
+  VPDPBUSDSZrrk = 15741,
+  VPDPBUSDSZrrkz = 15742,
+  VPDPBUSDSrm = 15743,
+  VPDPBUSDSrr = 15744,
+  VPDPBUSDYrm = 15745,
+  VPDPBUSDYrr = 15746,
+  VPDPBUSDZ128rm = 15747,
+  VPDPBUSDZ128rmb = 15748,
+  VPDPBUSDZ128rmbk = 15749,
+  VPDPBUSDZ128rmbkz = 15750,
+  VPDPBUSDZ128rmk = 15751,
+  VPDPBUSDZ128rmkz = 15752,
+  VPDPBUSDZ128rr = 15753,
+  VPDPBUSDZ128rrk = 15754,
+  VPDPBUSDZ128rrkz = 15755,
+  VPDPBUSDZ256rm = 15756,
+  VPDPBUSDZ256rmb = 15757,
+  VPDPBUSDZ256rmbk = 15758,
+  VPDPBUSDZ256rmbkz = 15759,
+  VPDPBUSDZ256rmk = 15760,
+  VPDPBUSDZ256rmkz = 15761,
+  VPDPBUSDZ256rr = 15762,
+  VPDPBUSDZ256rrk = 15763,
+  VPDPBUSDZ256rrkz = 15764,
+  VPDPBUSDZrm = 15765,
+  VPDPBUSDZrmb = 15766,
+  VPDPBUSDZrmbk = 15767,
+  VPDPBUSDZrmbkz = 15768,
+  VPDPBUSDZrmk = 15769,
+  VPDPBUSDZrmkz = 15770,
+  VPDPBUSDZrr = 15771,
+  VPDPBUSDZrrk = 15772,
+  VPDPBUSDZrrkz = 15773,
+  VPDPBUSDrm = 15774,
+  VPDPBUSDrr = 15775,
+  VPDPBUUDSYrm = 15776,
+  VPDPBUUDSYrr = 15777,
+  VPDPBUUDSZ128rm = 15778,
+  VPDPBUUDSZ128rmb = 15779,
+  VPDPBUUDSZ128rmbk = 15780,
+  VPDPBUUDSZ128rmbkz = 15781,
+  VPDPBUUDSZ128rmk = 15782,
+  VPDPBUUDSZ128rmkz = 15783,
+  VPDPBUUDSZ128rr = 15784,
+  VPDPBUUDSZ128rrk = 15785,
+  VPDPBUUDSZ128rrkz = 15786,
+  VPDPBUUDSZ256rm = 15787,
+  VPDPBUUDSZ256rmb = 15788,
+  VPDPBUUDSZ256rmbk = 15789,
+  VPDPBUUDSZ256rmbkz = 15790,
+  VPDPBUUDSZ256rmk = 15791,
+  VPDPBUUDSZ256rmkz = 15792,
+  VPDPBUUDSZ256rr = 15793,
+  VPDPBUUDSZ256rrk = 15794,
+  VPDPBUUDSZ256rrkz = 15795,
+  VPDPBUUDSZrm = 15796,
+  VPDPBUUDSZrmb = 15797,
+  VPDPBUUDSZrmbk = 15798,
+  VPDPBUUDSZrmbkz = 15799,
+  VPDPBUUDSZrmk = 15800,
+  VPDPBUUDSZrmkz = 15801,
+  VPDPBUUDSZrr = 15802,
+  VPDPBUUDSZrrk = 15803,
+  VPDPBUUDSZrrkz = 15804,
+  VPDPBUUDSrm = 15805,
+  VPDPBUUDSrr = 15806,
+  VPDPBUUDYrm = 15807,
+  VPDPBUUDYrr = 15808,
+  VPDPBUUDZ128rm = 15809,
+  VPDPBUUDZ128rmb = 15810,
+  VPDPBUUDZ128rmbk = 15811,
+  VPDPBUUDZ128rmbkz = 15812,
+  VPDPBUUDZ128rmk = 15813,
+  VPDPBUUDZ128rmkz = 15814,
+  VPDPBUUDZ128rr = 15815,
+  VPDPBUUDZ128rrk = 15816,
+  VPDPBUUDZ128rrkz = 15817,
+  VPDPBUUDZ256rm = 15818,
+  VPDPBUUDZ256rmb = 15819,
+  VPDPBUUDZ256rmbk = 15820,
+  VPDPBUUDZ256rmbkz = 15821,
+  VPDPBUUDZ256rmk = 15822,
+  VPDPBUUDZ256rmkz = 15823,
+  VPDPBUUDZ256rr = 15824,
+  VPDPBUUDZ256rrk = 15825,
+  VPDPBUUDZ256rrkz = 15826,
+  VPDPBUUDZrm = 15827,
+  VPDPBUUDZrmb = 15828,
+  VPDPBUUDZrmbk = 15829,
+  VPDPBUUDZrmbkz = 15830,
+  VPDPBUUDZrmk = 15831,
+  VPDPBUUDZrmkz = 15832,
+  VPDPBUUDZrr = 15833,
+  VPDPBUUDZrrk = 15834,
+  VPDPBUUDZrrkz = 15835,
+  VPDPBUUDrm = 15836,
+  VPDPBUUDrr = 15837,
+  VPDPWSSDSYrm = 15838,
+  VPDPWSSDSYrr = 15839,
+  VPDPWSSDSZ128rm = 15840,
+  VPDPWSSDSZ128rmb = 15841,
+  VPDPWSSDSZ128rmbk = 15842,
+  VPDPWSSDSZ128rmbkz = 15843,
+  VPDPWSSDSZ128rmk = 15844,
+  VPDPWSSDSZ128rmkz = 15845,
+  VPDPWSSDSZ128rr = 15846,
+  VPDPWSSDSZ128rrk = 15847,
+  VPDPWSSDSZ128rrkz = 15848,
+  VPDPWSSDSZ256rm = 15849,
+  VPDPWSSDSZ256rmb = 15850,
+  VPDPWSSDSZ256rmbk = 15851,
+  VPDPWSSDSZ256rmbkz = 15852,
+  VPDPWSSDSZ256rmk = 15853,
+  VPDPWSSDSZ256rmkz = 15854,
+  VPDPWSSDSZ256rr = 15855,
+  VPDPWSSDSZ256rrk = 15856,
+  VPDPWSSDSZ256rrkz = 15857,
+  VPDPWSSDSZrm = 15858,
+  VPDPWSSDSZrmb = 15859,
+  VPDPWSSDSZrmbk = 15860,
+  VPDPWSSDSZrmbkz = 15861,
+  VPDPWSSDSZrmk = 15862,
+  VPDPWSSDSZrmkz = 15863,
+  VPDPWSSDSZrr = 15864,
+  VPDPWSSDSZrrk = 15865,
+  VPDPWSSDSZrrkz = 15866,
+  VPDPWSSDSrm = 15867,
+  VPDPWSSDSrr = 15868,
+  VPDPWSSDYrm = 15869,
+  VPDPWSSDYrr = 15870,
+  VPDPWSSDZ128rm = 15871,
+  VPDPWSSDZ128rmb = 15872,
+  VPDPWSSDZ128rmbk = 15873,
+  VPDPWSSDZ128rmbkz = 15874,
+  VPDPWSSDZ128rmk = 15875,
+  VPDPWSSDZ128rmkz = 15876,
+  VPDPWSSDZ128rr = 15877,
+  VPDPWSSDZ128rrk = 15878,
+  VPDPWSSDZ128rrkz = 15879,
+  VPDPWSSDZ256rm = 15880,
+  VPDPWSSDZ256rmb = 15881,
+  VPDPWSSDZ256rmbk = 15882,
+  VPDPWSSDZ256rmbkz = 15883,
+  VPDPWSSDZ256rmk = 15884,
+  VPDPWSSDZ256rmkz = 15885,
+  VPDPWSSDZ256rr = 15886,
+  VPDPWSSDZ256rrk = 15887,
+  VPDPWSSDZ256rrkz = 15888,
+  VPDPWSSDZrm = 15889,
+  VPDPWSSDZrmb = 15890,
+  VPDPWSSDZrmbk = 15891,
+  VPDPWSSDZrmbkz = 15892,
+  VPDPWSSDZrmk = 15893,
+  VPDPWSSDZrmkz = 15894,
+  VPDPWSSDZrr = 15895,
+  VPDPWSSDZrrk = 15896,
+  VPDPWSSDZrrkz = 15897,
+  VPDPWSSDrm = 15898,
+  VPDPWSSDrr = 15899,
+  VPDPWSUDSYrm = 15900,
+  VPDPWSUDSYrr = 15901,
+  VPDPWSUDSZ128rm = 15902,
+  VPDPWSUDSZ128rmb = 15903,
+  VPDPWSUDSZ128rmbk = 15904,
+  VPDPWSUDSZ128rmbkz = 15905,
+  VPDPWSUDSZ128rmk = 15906,
+  VPDPWSUDSZ128rmkz = 15907,
+  VPDPWSUDSZ128rr = 15908,
+  VPDPWSUDSZ128rrk = 15909,
+  VPDPWSUDSZ128rrkz = 15910,
+  VPDPWSUDSZ256rm = 15911,
+  VPDPWSUDSZ256rmb = 15912,
+  VPDPWSUDSZ256rmbk = 15913,
+  VPDPWSUDSZ256rmbkz = 15914,
+  VPDPWSUDSZ256rmk = 15915,
+  VPDPWSUDSZ256rmkz = 15916,
+  VPDPWSUDSZ256rr = 15917,
+  VPDPWSUDSZ256rrk = 15918,
+  VPDPWSUDSZ256rrkz = 15919,
+  VPDPWSUDSZrm = 15920,
+  VPDPWSUDSZrmb = 15921,
+  VPDPWSUDSZrmbk = 15922,
+  VPDPWSUDSZrmbkz = 15923,
+  VPDPWSUDSZrmk = 15924,
+  VPDPWSUDSZrmkz = 15925,
+  VPDPWSUDSZrr = 15926,
+  VPDPWSUDSZrrk = 15927,
+  VPDPWSUDSZrrkz = 15928,
+  VPDPWSUDSrm = 15929,
+  VPDPWSUDSrr = 15930,
+  VPDPWSUDYrm = 15931,
+  VPDPWSUDYrr = 15932,
+  VPDPWSUDZ128rm = 15933,
+  VPDPWSUDZ128rmb = 15934,
+  VPDPWSUDZ128rmbk = 15935,
+  VPDPWSUDZ128rmbkz = 15936,
+  VPDPWSUDZ128rmk = 15937,
+  VPDPWSUDZ128rmkz = 15938,
+  VPDPWSUDZ128rr = 15939,
+  VPDPWSUDZ128rrk = 15940,
+  VPDPWSUDZ128rrkz = 15941,
+  VPDPWSUDZ256rm = 15942,
+  VPDPWSUDZ256rmb = 15943,
+  VPDPWSUDZ256rmbk = 15944,
+  VPDPWSUDZ256rmbkz = 15945,
+  VPDPWSUDZ256rmk = 15946,
+  VPDPWSUDZ256rmkz = 15947,
+  VPDPWSUDZ256rr = 15948,
+  VPDPWSUDZ256rrk = 15949,
+  VPDPWSUDZ256rrkz = 15950,
+  VPDPWSUDZrm = 15951,
+  VPDPWSUDZrmb = 15952,
+  VPDPWSUDZrmbk = 15953,
+  VPDPWSUDZrmbkz = 15954,
+  VPDPWSUDZrmk = 15955,
+  VPDPWSUDZrmkz = 15956,
+  VPDPWSUDZrr = 15957,
+  VPDPWSUDZrrk = 15958,
+  VPDPWSUDZrrkz = 15959,
+  VPDPWSUDrm = 15960,
+  VPDPWSUDrr = 15961,
+  VPDPWUSDSYrm = 15962,
+  VPDPWUSDSYrr = 15963,
+  VPDPWUSDSZ128rm = 15964,
+  VPDPWUSDSZ128rmb = 15965,
+  VPDPWUSDSZ128rmbk = 15966,
+  VPDPWUSDSZ128rmbkz = 15967,
+  VPDPWUSDSZ128rmk = 15968,
+  VPDPWUSDSZ128rmkz = 15969,
+  VPDPWUSDSZ128rr = 15970,
+  VPDPWUSDSZ128rrk = 15971,
+  VPDPWUSDSZ128rrkz = 15972,
+  VPDPWUSDSZ256rm = 15973,
+  VPDPWUSDSZ256rmb = 15974,
+  VPDPWUSDSZ256rmbk = 15975,
+  VPDPWUSDSZ256rmbkz = 15976,
+  VPDPWUSDSZ256rmk = 15977,
+  VPDPWUSDSZ256rmkz = 15978,
+  VPDPWUSDSZ256rr = 15979,
+  VPDPWUSDSZ256rrk = 15980,
+  VPDPWUSDSZ256rrkz = 15981,
+  VPDPWUSDSZrm = 15982,
+  VPDPWUSDSZrmb = 15983,
+  VPDPWUSDSZrmbk = 15984,
+  VPDPWUSDSZrmbkz = 15985,
+  VPDPWUSDSZrmk = 15986,
+  VPDPWUSDSZrmkz = 15987,
+  VPDPWUSDSZrr = 15988,
+  VPDPWUSDSZrrk = 15989,
+  VPDPWUSDSZrrkz = 15990,
+  VPDPWUSDSrm = 15991,
+  VPDPWUSDSrr = 15992,
+  VPDPWUSDYrm = 15993,
+  VPDPWUSDYrr = 15994,
+  VPDPWUSDZ128rm = 15995,
+  VPDPWUSDZ128rmb = 15996,
+  VPDPWUSDZ128rmbk = 15997,
+  VPDPWUSDZ128rmbkz = 15998,
+  VPDPWUSDZ128rmk = 15999,
+  VPDPWUSDZ128rmkz = 16000,
+  VPDPWUSDZ128rr = 16001,
+  VPDPWUSDZ128rrk = 16002,
+  VPDPWUSDZ128rrkz = 16003,
+  VPDPWUSDZ256rm = 16004,
+  VPDPWUSDZ256rmb = 16005,
+  VPDPWUSDZ256rmbk = 16006,
+  VPDPWUSDZ256rmbkz = 16007,
+  VPDPWUSDZ256rmk = 16008,
+  VPDPWUSDZ256rmkz = 16009,
+  VPDPWUSDZ256rr = 16010,
+  VPDPWUSDZ256rrk = 16011,
+  VPDPWUSDZ256rrkz = 16012,
+  VPDPWUSDZrm = 16013,
+  VPDPWUSDZrmb = 16014,
+  VPDPWUSDZrmbk = 16015,
+  VPDPWUSDZrmbkz = 16016,
+  VPDPWUSDZrmk = 16017,
+  VPDPWUSDZrmkz = 16018,
+  VPDPWUSDZrr = 16019,
+  VPDPWUSDZrrk = 16020,
+  VPDPWUSDZrrkz = 16021,
+  VPDPWUSDrm = 16022,
+  VPDPWUSDrr = 16023,
+  VPDPWUUDSYrm = 16024,
+  VPDPWUUDSYrr = 16025,
+  VPDPWUUDSZ128rm = 16026,
+  VPDPWUUDSZ128rmb = 16027,
+  VPDPWUUDSZ128rmbk = 16028,
+  VPDPWUUDSZ128rmbkz = 16029,
+  VPDPWUUDSZ128rmk = 16030,
+  VPDPWUUDSZ128rmkz = 16031,
+  VPDPWUUDSZ128rr = 16032,
+  VPDPWUUDSZ128rrk = 16033,
+  VPDPWUUDSZ128rrkz = 16034,
+  VPDPWUUDSZ256rm = 16035,
+  VPDPWUUDSZ256rmb = 16036,
+  VPDPWUUDSZ256rmbk = 16037,
+  VPDPWUUDSZ256rmbkz = 16038,
+  VPDPWUUDSZ256rmk = 16039,
+  VPDPWUUDSZ256rmkz = 16040,
+  VPDPWUUDSZ256rr = 16041,
+  VPDPWUUDSZ256rrk = 16042,
+  VPDPWUUDSZ256rrkz = 16043,
+  VPDPWUUDSZrm = 16044,
+  VPDPWUUDSZrmb = 16045,
+  VPDPWUUDSZrmbk = 16046,
+  VPDPWUUDSZrmbkz = 16047,
+  VPDPWUUDSZrmk = 16048,
+  VPDPWUUDSZrmkz = 16049,
+  VPDPWUUDSZrr = 16050,
+  VPDPWUUDSZrrk = 16051,
+  VPDPWUUDSZrrkz = 16052,
+  VPDPWUUDSrm = 16053,
+  VPDPWUUDSrr = 16054,
+  VPDPWUUDYrm = 16055,
+  VPDPWUUDYrr = 16056,
+  VPDPWUUDZ128rm = 16057,
+  VPDPWUUDZ128rmb = 16058,
+  VPDPWUUDZ128rmbk = 16059,
+  VPDPWUUDZ128rmbkz = 16060,
+  VPDPWUUDZ128rmk = 16061,
+  VPDPWUUDZ128rmkz = 16062,
+  VPDPWUUDZ128rr = 16063,
+  VPDPWUUDZ128rrk = 16064,
+  VPDPWUUDZ128rrkz = 16065,
+  VPDPWUUDZ256rm = 16066,
+  VPDPWUUDZ256rmb = 16067,
+  VPDPWUUDZ256rmbk = 16068,
+  VPDPWUUDZ256rmbkz = 16069,
+  VPDPWUUDZ256rmk = 16070,
+  VPDPWUUDZ256rmkz = 16071,
+  VPDPWUUDZ256rr = 16072,
+  VPDPWUUDZ256rrk = 16073,
+  VPDPWUUDZ256rrkz = 16074,
+  VPDPWUUDZrm = 16075,
+  VPDPWUUDZrmb = 16076,
+  VPDPWUUDZrmbk = 16077,
+  VPDPWUUDZrmbkz = 16078,
+  VPDPWUUDZrmk = 16079,
+  VPDPWUUDZrmkz = 16080,
+  VPDPWUUDZrr = 16081,
+  VPDPWUUDZrrk = 16082,
+  VPDPWUUDZrrkz = 16083,
+  VPDPWUUDrm = 16084,
+  VPDPWUUDrr = 16085,
+  VPERM2F128rmi = 16086,
+  VPERM2F128rri = 16087,
+  VPERM2I128rmi = 16088,
+  VPERM2I128rri = 16089,
+  VPERMBZ128rm = 16090,
+  VPERMBZ128rmk = 16091,
+  VPERMBZ128rmkz = 16092,
+  VPERMBZ128rr = 16093,
+  VPERMBZ128rrk = 16094,
+  VPERMBZ128rrkz = 16095,
+  VPERMBZ256rm = 16096,
+  VPERMBZ256rmk = 16097,
+  VPERMBZ256rmkz = 16098,
+  VPERMBZ256rr = 16099,
+  VPERMBZ256rrk = 16100,
+  VPERMBZ256rrkz = 16101,
+  VPERMBZrm = 16102,
+  VPERMBZrmk = 16103,
+  VPERMBZrmkz = 16104,
+  VPERMBZrr = 16105,
+  VPERMBZrrk = 16106,
+  VPERMBZrrkz = 16107,
+  VPERMDYrm = 16108,
+  VPERMDYrr = 16109,
+  VPERMDZ256rm = 16110,
+  VPERMDZ256rmb = 16111,
+  VPERMDZ256rmbk = 16112,
+  VPERMDZ256rmbkz = 16113,
+  VPERMDZ256rmk = 16114,
+  VPERMDZ256rmkz = 16115,
+  VPERMDZ256rr = 16116,
+  VPERMDZ256rrk = 16117,
+  VPERMDZ256rrkz = 16118,
+  VPERMDZrm = 16119,
+  VPERMDZrmb = 16120,
+  VPERMDZrmbk = 16121,
+  VPERMDZrmbkz = 16122,
+  VPERMDZrmk = 16123,
+  VPERMDZrmkz = 16124,
+  VPERMDZrr = 16125,
+  VPERMDZrrk = 16126,
+  VPERMDZrrkz = 16127,
+  VPERMI2BZ128rm = 16128,
+  VPERMI2BZ128rmk = 16129,
+  VPERMI2BZ128rmkz = 16130,
+  VPERMI2BZ128rr = 16131,
+  VPERMI2BZ128rrk = 16132,
+  VPERMI2BZ128rrkz = 16133,
+  VPERMI2BZ256rm = 16134,
+  VPERMI2BZ256rmk = 16135,
+  VPERMI2BZ256rmkz = 16136,
+  VPERMI2BZ256rr = 16137,
+  VPERMI2BZ256rrk = 16138,
+  VPERMI2BZ256rrkz = 16139,
+  VPERMI2BZrm = 16140,
+  VPERMI2BZrmk = 16141,
+  VPERMI2BZrmkz = 16142,
+  VPERMI2BZrr = 16143,
+  VPERMI2BZrrk = 16144,
+  VPERMI2BZrrkz = 16145,
+  VPERMI2DZ128rm = 16146,
+  VPERMI2DZ128rmb = 16147,
+  VPERMI2DZ128rmbk = 16148,
+  VPERMI2DZ128rmbkz = 16149,
+  VPERMI2DZ128rmk = 16150,
+  VPERMI2DZ128rmkz = 16151,
+  VPERMI2DZ128rr = 16152,
+  VPERMI2DZ128rrk = 16153,
+  VPERMI2DZ128rrkz = 16154,
+  VPERMI2DZ256rm = 16155,
+  VPERMI2DZ256rmb = 16156,
+  VPERMI2DZ256rmbk = 16157,
+  VPERMI2DZ256rmbkz = 16158,
+  VPERMI2DZ256rmk = 16159,
+  VPERMI2DZ256rmkz = 16160,
+  VPERMI2DZ256rr = 16161,
+  VPERMI2DZ256rrk = 16162,
+  VPERMI2DZ256rrkz = 16163,
+  VPERMI2DZrm = 16164,
+  VPERMI2DZrmb = 16165,
+  VPERMI2DZrmbk = 16166,
+  VPERMI2DZrmbkz = 16167,
+  VPERMI2DZrmk = 16168,
+  VPERMI2DZrmkz = 16169,
+  VPERMI2DZrr = 16170,
+  VPERMI2DZrrk = 16171,
+  VPERMI2DZrrkz = 16172,
+  VPERMI2PDZ128rm = 16173,
+  VPERMI2PDZ128rmb = 16174,
+  VPERMI2PDZ128rmbk = 16175,
+  VPERMI2PDZ128rmbkz = 16176,
+  VPERMI2PDZ128rmk = 16177,
+  VPERMI2PDZ128rmkz = 16178,
+  VPERMI2PDZ128rr = 16179,
+  VPERMI2PDZ128rrk = 16180,
+  VPERMI2PDZ128rrkz = 16181,
+  VPERMI2PDZ256rm = 16182,
+  VPERMI2PDZ256rmb = 16183,
+  VPERMI2PDZ256rmbk = 16184,
+  VPERMI2PDZ256rmbkz = 16185,
+  VPERMI2PDZ256rmk = 16186,
+  VPERMI2PDZ256rmkz = 16187,
+  VPERMI2PDZ256rr = 16188,
+  VPERMI2PDZ256rrk = 16189,
+  VPERMI2PDZ256rrkz = 16190,
+  VPERMI2PDZrm = 16191,
+  VPERMI2PDZrmb = 16192,
+  VPERMI2PDZrmbk = 16193,
+  VPERMI2PDZrmbkz = 16194,
+  VPERMI2PDZrmk = 16195,
+  VPERMI2PDZrmkz = 16196,
+  VPERMI2PDZrr = 16197,
+  VPERMI2PDZrrk = 16198,
+  VPERMI2PDZrrkz = 16199,
+  VPERMI2PSZ128rm = 16200,
+  VPERMI2PSZ128rmb = 16201,
+  VPERMI2PSZ128rmbk = 16202,
+  VPERMI2PSZ128rmbkz = 16203,
+  VPERMI2PSZ128rmk = 16204,
+  VPERMI2PSZ128rmkz = 16205,
+  VPERMI2PSZ128rr = 16206,
+  VPERMI2PSZ128rrk = 16207,
+  VPERMI2PSZ128rrkz = 16208,
+  VPERMI2PSZ256rm = 16209,
+  VPERMI2PSZ256rmb = 16210,
+  VPERMI2PSZ256rmbk = 16211,
+  VPERMI2PSZ256rmbkz = 16212,
+  VPERMI2PSZ256rmk = 16213,
+  VPERMI2PSZ256rmkz = 16214,
+  VPERMI2PSZ256rr = 16215,
+  VPERMI2PSZ256rrk = 16216,
+  VPERMI2PSZ256rrkz = 16217,
+  VPERMI2PSZrm = 16218,
+  VPERMI2PSZrmb = 16219,
+  VPERMI2PSZrmbk = 16220,
+  VPERMI2PSZrmbkz = 16221,
+  VPERMI2PSZrmk = 16222,
+  VPERMI2PSZrmkz = 16223,
+  VPERMI2PSZrr = 16224,
+  VPERMI2PSZrrk = 16225,
+  VPERMI2PSZrrkz = 16226,
+  VPERMI2QZ128rm = 16227,
+  VPERMI2QZ128rmb = 16228,
+  VPERMI2QZ128rmbk = 16229,
+  VPERMI2QZ128rmbkz = 16230,
+  VPERMI2QZ128rmk = 16231,
+  VPERMI2QZ128rmkz = 16232,
+  VPERMI2QZ128rr = 16233,
+  VPERMI2QZ128rrk = 16234,
+  VPERMI2QZ128rrkz = 16235,
+  VPERMI2QZ256rm = 16236,
+  VPERMI2QZ256rmb = 16237,
+  VPERMI2QZ256rmbk = 16238,
+  VPERMI2QZ256rmbkz = 16239,
+  VPERMI2QZ256rmk = 16240,
+  VPERMI2QZ256rmkz = 16241,
+  VPERMI2QZ256rr = 16242,
+  VPERMI2QZ256rrk = 16243,
+  VPERMI2QZ256rrkz = 16244,
+  VPERMI2QZrm = 16245,
+  VPERMI2QZrmb = 16246,
+  VPERMI2QZrmbk = 16247,
+  VPERMI2QZrmbkz = 16248,
+  VPERMI2QZrmk = 16249,
+  VPERMI2QZrmkz = 16250,
+  VPERMI2QZrr = 16251,
+  VPERMI2QZrrk = 16252,
+  VPERMI2QZrrkz = 16253,
+  VPERMI2WZ128rm = 16254,
+  VPERMI2WZ128rmk = 16255,
+  VPERMI2WZ128rmkz = 16256,
+  VPERMI2WZ128rr = 16257,
+  VPERMI2WZ128rrk = 16258,
+  VPERMI2WZ128rrkz = 16259,
+  VPERMI2WZ256rm = 16260,
+  VPERMI2WZ256rmk = 16261,
+  VPERMI2WZ256rmkz = 16262,
+  VPERMI2WZ256rr = 16263,
+  VPERMI2WZ256rrk = 16264,
+  VPERMI2WZ256rrkz = 16265,
+  VPERMI2WZrm = 16266,
+  VPERMI2WZrmk = 16267,
+  VPERMI2WZrmkz = 16268,
+  VPERMI2WZrr = 16269,
+  VPERMI2WZrrk = 16270,
+  VPERMI2WZrrkz = 16271,
+  VPERMIL2PDYmr = 16272,
+  VPERMIL2PDYrm = 16273,
+  VPERMIL2PDYrr = 16274,
+  VPERMIL2PDYrr_REV = 16275,
+  VPERMIL2PDmr = 16276,
+  VPERMIL2PDrm = 16277,
+  VPERMIL2PDrr = 16278,
+  VPERMIL2PDrr_REV = 16279,
+  VPERMIL2PSYmr = 16280,
+  VPERMIL2PSYrm = 16281,
+  VPERMIL2PSYrr = 16282,
+  VPERMIL2PSYrr_REV = 16283,
+  VPERMIL2PSmr = 16284,
+  VPERMIL2PSrm = 16285,
+  VPERMIL2PSrr = 16286,
+  VPERMIL2PSrr_REV = 16287,
+  VPERMILPDYmi = 16288,
+  VPERMILPDYri = 16289,
+  VPERMILPDYrm = 16290,
+  VPERMILPDYrr = 16291,
+  VPERMILPDZ128mbi = 16292,
+  VPERMILPDZ128mbik = 16293,
+  VPERMILPDZ128mbikz = 16294,
+  VPERMILPDZ128mi = 16295,
+  VPERMILPDZ128mik = 16296,
+  VPERMILPDZ128mikz = 16297,
+  VPERMILPDZ128ri = 16298,
+  VPERMILPDZ128rik = 16299,
+  VPERMILPDZ128rikz = 16300,
+  VPERMILPDZ128rm = 16301,
+  VPERMILPDZ128rmb = 16302,
+  VPERMILPDZ128rmbk = 16303,
+  VPERMILPDZ128rmbkz = 16304,
+  VPERMILPDZ128rmk = 16305,
+  VPERMILPDZ128rmkz = 16306,
+  VPERMILPDZ128rr = 16307,
+  VPERMILPDZ128rrk = 16308,
+  VPERMILPDZ128rrkz = 16309,
+  VPERMILPDZ256mbi = 16310,
+  VPERMILPDZ256mbik = 16311,
+  VPERMILPDZ256mbikz = 16312,
+  VPERMILPDZ256mi = 16313,
+  VPERMILPDZ256mik = 16314,
+  VPERMILPDZ256mikz = 16315,
+  VPERMILPDZ256ri = 16316,
+  VPERMILPDZ256rik = 16317,
+  VPERMILPDZ256rikz = 16318,
+  VPERMILPDZ256rm = 16319,
+  VPERMILPDZ256rmb = 16320,
+  VPERMILPDZ256rmbk = 16321,
+  VPERMILPDZ256rmbkz = 16322,
+  VPERMILPDZ256rmk = 16323,
+  VPERMILPDZ256rmkz = 16324,
+  VPERMILPDZ256rr = 16325,
+  VPERMILPDZ256rrk = 16326,
+  VPERMILPDZ256rrkz = 16327,
+  VPERMILPDZmbi = 16328,
+  VPERMILPDZmbik = 16329,
+  VPERMILPDZmbikz = 16330,
+  VPERMILPDZmi = 16331,
+  VPERMILPDZmik = 16332,
+  VPERMILPDZmikz = 16333,
+  VPERMILPDZri = 16334,
+  VPERMILPDZrik = 16335,
+  VPERMILPDZrikz = 16336,
+  VPERMILPDZrm = 16337,
+  VPERMILPDZrmb = 16338,
+  VPERMILPDZrmbk = 16339,
+  VPERMILPDZrmbkz = 16340,
+  VPERMILPDZrmk = 16341,
+  VPERMILPDZrmkz = 16342,
+  VPERMILPDZrr = 16343,
+  VPERMILPDZrrk = 16344,
+  VPERMILPDZrrkz = 16345,
+  VPERMILPDmi = 16346,
+  VPERMILPDri = 16347,
+  VPERMILPDrm = 16348,
+  VPERMILPDrr = 16349,
+  VPERMILPSYmi = 16350,
+  VPERMILPSYri = 16351,
+  VPERMILPSYrm = 16352,
+  VPERMILPSYrr = 16353,
+  VPERMILPSZ128mbi = 16354,
+  VPERMILPSZ128mbik = 16355,
+  VPERMILPSZ128mbikz = 16356,
+  VPERMILPSZ128mi = 16357,
+  VPERMILPSZ128mik = 16358,
+  VPERMILPSZ128mikz = 16359,
+  VPERMILPSZ128ri = 16360,
+  VPERMILPSZ128rik = 16361,
+  VPERMILPSZ128rikz = 16362,
+  VPERMILPSZ128rm = 16363,
+  VPERMILPSZ128rmb = 16364,
+  VPERMILPSZ128rmbk = 16365,
+  VPERMILPSZ128rmbkz = 16366,
+  VPERMILPSZ128rmk = 16367,
+  VPERMILPSZ128rmkz = 16368,
+  VPERMILPSZ128rr = 16369,
+  VPERMILPSZ128rrk = 16370,
+  VPERMILPSZ128rrkz = 16371,
+  VPERMILPSZ256mbi = 16372,
+  VPERMILPSZ256mbik = 16373,
+  VPERMILPSZ256mbikz = 16374,
+  VPERMILPSZ256mi = 16375,
+  VPERMILPSZ256mik = 16376,
+  VPERMILPSZ256mikz = 16377,
+  VPERMILPSZ256ri = 16378,
+  VPERMILPSZ256rik = 16379,
+  VPERMILPSZ256rikz = 16380,
+  VPERMILPSZ256rm = 16381,
+  VPERMILPSZ256rmb = 16382,
+  VPERMILPSZ256rmbk = 16383,
+  VPERMILPSZ256rmbkz = 16384,
+  VPERMILPSZ256rmk = 16385,
+  VPERMILPSZ256rmkz = 16386,
+  VPERMILPSZ256rr = 16387,
+  VPERMILPSZ256rrk = 16388,
+  VPERMILPSZ256rrkz = 16389,
+  VPERMILPSZmbi = 16390,
+  VPERMILPSZmbik = 16391,
+  VPERMILPSZmbikz = 16392,
+  VPERMILPSZmi = 16393,
+  VPERMILPSZmik = 16394,
+  VPERMILPSZmikz = 16395,
+  VPERMILPSZri = 16396,
+  VPERMILPSZrik = 16397,
+  VPERMILPSZrikz = 16398,
+  VPERMILPSZrm = 16399,
+  VPERMILPSZrmb = 16400,
+  VPERMILPSZrmbk = 16401,
+  VPERMILPSZrmbkz = 16402,
+  VPERMILPSZrmk = 16403,
+  VPERMILPSZrmkz = 16404,
+  VPERMILPSZrr = 16405,
+  VPERMILPSZrrk = 16406,
+  VPERMILPSZrrkz = 16407,
+  VPERMILPSmi = 16408,
+  VPERMILPSri = 16409,
+  VPERMILPSrm = 16410,
+  VPERMILPSrr = 16411,
+  VPERMPDYmi = 16412,
+  VPERMPDYri = 16413,
+  VPERMPDZ256mbi = 16414,
+  VPERMPDZ256mbik = 16415,
+  VPERMPDZ256mbikz = 16416,
+  VPERMPDZ256mi = 16417,
+  VPERMPDZ256mik = 16418,
+  VPERMPDZ256mikz = 16419,
+  VPERMPDZ256ri = 16420,
+  VPERMPDZ256rik = 16421,
+  VPERMPDZ256rikz = 16422,
+  VPERMPDZ256rm = 16423,
+  VPERMPDZ256rmb = 16424,
+  VPERMPDZ256rmbk = 16425,
+  VPERMPDZ256rmbkz = 16426,
+  VPERMPDZ256rmk = 16427,
+  VPERMPDZ256rmkz = 16428,
+  VPERMPDZ256rr = 16429,
+  VPERMPDZ256rrk = 16430,
+  VPERMPDZ256rrkz = 16431,
+  VPERMPDZmbi = 16432,
+  VPERMPDZmbik = 16433,
+  VPERMPDZmbikz = 16434,
+  VPERMPDZmi = 16435,
+  VPERMPDZmik = 16436,
+  VPERMPDZmikz = 16437,
+  VPERMPDZri = 16438,
+  VPERMPDZrik = 16439,
+  VPERMPDZrikz = 16440,
+  VPERMPDZrm = 16441,
+  VPERMPDZrmb = 16442,
+  VPERMPDZrmbk = 16443,
+  VPERMPDZrmbkz = 16444,
+  VPERMPDZrmk = 16445,
+  VPERMPDZrmkz = 16446,
+  VPERMPDZrr = 16447,
+  VPERMPDZrrk = 16448,
+  VPERMPDZrrkz = 16449,
+  VPERMPSYrm = 16450,
+  VPERMPSYrr = 16451,
+  VPERMPSZ256rm = 16452,
+  VPERMPSZ256rmb = 16453,
+  VPERMPSZ256rmbk = 16454,
+  VPERMPSZ256rmbkz = 16455,
+  VPERMPSZ256rmk = 16456,
+  VPERMPSZ256rmkz = 16457,
+  VPERMPSZ256rr = 16458,
+  VPERMPSZ256rrk = 16459,
+  VPERMPSZ256rrkz = 16460,
+  VPERMPSZrm = 16461,
+  VPERMPSZrmb = 16462,
+  VPERMPSZrmbk = 16463,
+  VPERMPSZrmbkz = 16464,
+  VPERMPSZrmk = 16465,
+  VPERMPSZrmkz = 16466,
+  VPERMPSZrr = 16467,
+  VPERMPSZrrk = 16468,
+  VPERMPSZrrkz = 16469,
+  VPERMQYmi = 16470,
+  VPERMQYri = 16471,
+  VPERMQZ256mbi = 16472,
+  VPERMQZ256mbik = 16473,
+  VPERMQZ256mbikz = 16474,
+  VPERMQZ256mi = 16475,
+  VPERMQZ256mik = 16476,
+  VPERMQZ256mikz = 16477,
+  VPERMQZ256ri = 16478,
+  VPERMQZ256rik = 16479,
+  VPERMQZ256rikz = 16480,
+  VPERMQZ256rm = 16481,
+  VPERMQZ256rmb = 16482,
+  VPERMQZ256rmbk = 16483,
+  VPERMQZ256rmbkz = 16484,
+  VPERMQZ256rmk = 16485,
+  VPERMQZ256rmkz = 16486,
+  VPERMQZ256rr = 16487,
+  VPERMQZ256rrk = 16488,
+  VPERMQZ256rrkz = 16489,
+  VPERMQZmbi = 16490,
+  VPERMQZmbik = 16491,
+  VPERMQZmbikz = 16492,
+  VPERMQZmi = 16493,
+  VPERMQZmik = 16494,
+  VPERMQZmikz = 16495,
+  VPERMQZri = 16496,
+  VPERMQZrik = 16497,
+  VPERMQZrikz = 16498,
+  VPERMQZrm = 16499,
+  VPERMQZrmb = 16500,
+  VPERMQZrmbk = 16501,
+  VPERMQZrmbkz = 16502,
+  VPERMQZrmk = 16503,
+  VPERMQZrmkz = 16504,
+  VPERMQZrr = 16505,
+  VPERMQZrrk = 16506,
+  VPERMQZrrkz = 16507,
+  VPERMT2BZ128rm = 16508,
+  VPERMT2BZ128rmk = 16509,
+  VPERMT2BZ128rmkz = 16510,
+  VPERMT2BZ128rr = 16511,
+  VPERMT2BZ128rrk = 16512,
+  VPERMT2BZ128rrkz = 16513,
+  VPERMT2BZ256rm = 16514,
+  VPERMT2BZ256rmk = 16515,
+  VPERMT2BZ256rmkz = 16516,
+  VPERMT2BZ256rr = 16517,
+  VPERMT2BZ256rrk = 16518,
+  VPERMT2BZ256rrkz = 16519,
+  VPERMT2BZrm = 16520,
+  VPERMT2BZrmk = 16521,
+  VPERMT2BZrmkz = 16522,
+  VPERMT2BZrr = 16523,
+  VPERMT2BZrrk = 16524,
+  VPERMT2BZrrkz = 16525,
+  VPERMT2DZ128rm = 16526,
+  VPERMT2DZ128rmb = 16527,
+  VPERMT2DZ128rmbk = 16528,
+  VPERMT2DZ128rmbkz = 16529,
+  VPERMT2DZ128rmk = 16530,
+  VPERMT2DZ128rmkz = 16531,
+  VPERMT2DZ128rr = 16532,
+  VPERMT2DZ128rrk = 16533,
+  VPERMT2DZ128rrkz = 16534,
+  VPERMT2DZ256rm = 16535,
+  VPERMT2DZ256rmb = 16536,
+  VPERMT2DZ256rmbk = 16537,
+  VPERMT2DZ256rmbkz = 16538,
+  VPERMT2DZ256rmk = 16539,
+  VPERMT2DZ256rmkz = 16540,
+  VPERMT2DZ256rr = 16541,
+  VPERMT2DZ256rrk = 16542,
+  VPERMT2DZ256rrkz = 16543,
+  VPERMT2DZrm = 16544,
+  VPERMT2DZrmb = 16545,
+  VPERMT2DZrmbk = 16546,
+  VPERMT2DZrmbkz = 16547,
+  VPERMT2DZrmk = 16548,
+  VPERMT2DZrmkz = 16549,
+  VPERMT2DZrr = 16550,
+  VPERMT2DZrrk = 16551,
+  VPERMT2DZrrkz = 16552,
+  VPERMT2PDZ128rm = 16553,
+  VPERMT2PDZ128rmb = 16554,
+  VPERMT2PDZ128rmbk = 16555,
+  VPERMT2PDZ128rmbkz = 16556,
+  VPERMT2PDZ128rmk = 16557,
+  VPERMT2PDZ128rmkz = 16558,
+  VPERMT2PDZ128rr = 16559,
+  VPERMT2PDZ128rrk = 16560,
+  VPERMT2PDZ128rrkz = 16561,
+  VPERMT2PDZ256rm = 16562,
+  VPERMT2PDZ256rmb = 16563,
+  VPERMT2PDZ256rmbk = 16564,
+  VPERMT2PDZ256rmbkz = 16565,
+  VPERMT2PDZ256rmk = 16566,
+  VPERMT2PDZ256rmkz = 16567,
+  VPERMT2PDZ256rr = 16568,
+  VPERMT2PDZ256rrk = 16569,
+  VPERMT2PDZ256rrkz = 16570,
+  VPERMT2PDZrm = 16571,
+  VPERMT2PDZrmb = 16572,
+  VPERMT2PDZrmbk = 16573,
+  VPERMT2PDZrmbkz = 16574,
+  VPERMT2PDZrmk = 16575,
+  VPERMT2PDZrmkz = 16576,
+  VPERMT2PDZrr = 16577,
+  VPERMT2PDZrrk = 16578,
+  VPERMT2PDZrrkz = 16579,
+  VPERMT2PSZ128rm = 16580,
+  VPERMT2PSZ128rmb = 16581,
+  VPERMT2PSZ128rmbk = 16582,
+  VPERMT2PSZ128rmbkz = 16583,
+  VPERMT2PSZ128rmk = 16584,
+  VPERMT2PSZ128rmkz = 16585,
+  VPERMT2PSZ128rr = 16586,
+  VPERMT2PSZ128rrk = 16587,
+  VPERMT2PSZ128rrkz = 16588,
+  VPERMT2PSZ256rm = 16589,
+  VPERMT2PSZ256rmb = 16590,
+  VPERMT2PSZ256rmbk = 16591,
+  VPERMT2PSZ256rmbkz = 16592,
+  VPERMT2PSZ256rmk = 16593,
+  VPERMT2PSZ256rmkz = 16594,
+  VPERMT2PSZ256rr = 16595,
+  VPERMT2PSZ256rrk = 16596,
+  VPERMT2PSZ256rrkz = 16597,
+  VPERMT2PSZrm = 16598,
+  VPERMT2PSZrmb = 16599,
+  VPERMT2PSZrmbk = 16600,
+  VPERMT2PSZrmbkz = 16601,
+  VPERMT2PSZrmk = 16602,
+  VPERMT2PSZrmkz = 16603,
+  VPERMT2PSZrr = 16604,
+  VPERMT2PSZrrk = 16605,
+  VPERMT2PSZrrkz = 16606,
+  VPERMT2QZ128rm = 16607,
+  VPERMT2QZ128rmb = 16608,
+  VPERMT2QZ128rmbk = 16609,
+  VPERMT2QZ128rmbkz = 16610,
+  VPERMT2QZ128rmk = 16611,
+  VPERMT2QZ128rmkz = 16612,
+  VPERMT2QZ128rr = 16613,
+  VPERMT2QZ128rrk = 16614,
+  VPERMT2QZ128rrkz = 16615,
+  VPERMT2QZ256rm = 16616,
+  VPERMT2QZ256rmb = 16617,
+  VPERMT2QZ256rmbk = 16618,
+  VPERMT2QZ256rmbkz = 16619,
+  VPERMT2QZ256rmk = 16620,
+  VPERMT2QZ256rmkz = 16621,
+  VPERMT2QZ256rr = 16622,
+  VPERMT2QZ256rrk = 16623,
+  VPERMT2QZ256rrkz = 16624,
+  VPERMT2QZrm = 16625,
+  VPERMT2QZrmb = 16626,
+  VPERMT2QZrmbk = 16627,
+  VPERMT2QZrmbkz = 16628,
+  VPERMT2QZrmk = 16629,
+  VPERMT2QZrmkz = 16630,
+  VPERMT2QZrr = 16631,
+  VPERMT2QZrrk = 16632,
+  VPERMT2QZrrkz = 16633,
+  VPERMT2WZ128rm = 16634,
+  VPERMT2WZ128rmk = 16635,
+  VPERMT2WZ128rmkz = 16636,
+  VPERMT2WZ128rr = 16637,
+  VPERMT2WZ128rrk = 16638,
+  VPERMT2WZ128rrkz = 16639,
+  VPERMT2WZ256rm = 16640,
+  VPERMT2WZ256rmk = 16641,
+  VPERMT2WZ256rmkz = 16642,
+  VPERMT2WZ256rr = 16643,
+  VPERMT2WZ256rrk = 16644,
+  VPERMT2WZ256rrkz = 16645,
+  VPERMT2WZrm = 16646,
+  VPERMT2WZrmk = 16647,
+  VPERMT2WZrmkz = 16648,
+  VPERMT2WZrr = 16649,
+  VPERMT2WZrrk = 16650,
+  VPERMT2WZrrkz = 16651,
+  VPERMWZ128rm = 16652,
+  VPERMWZ128rmk = 16653,
+  VPERMWZ128rmkz = 16654,
+  VPERMWZ128rr = 16655,
+  VPERMWZ128rrk = 16656,
+  VPERMWZ128rrkz = 16657,
+  VPERMWZ256rm = 16658,
+  VPERMWZ256rmk = 16659,
+  VPERMWZ256rmkz = 16660,
+  VPERMWZ256rr = 16661,
+  VPERMWZ256rrk = 16662,
+  VPERMWZ256rrkz = 16663,
+  VPERMWZrm = 16664,
+  VPERMWZrmk = 16665,
+  VPERMWZrmkz = 16666,
+  VPERMWZrr = 16667,
+  VPERMWZrrk = 16668,
+  VPERMWZrrkz = 16669,
+  VPEXPANDBZ128rm = 16670,
+  VPEXPANDBZ128rmk = 16671,
+  VPEXPANDBZ128rmkz = 16672,
+  VPEXPANDBZ128rr = 16673,
+  VPEXPANDBZ128rrk = 16674,
+  VPEXPANDBZ128rrkz = 16675,
+  VPEXPANDBZ256rm = 16676,
+  VPEXPANDBZ256rmk = 16677,
+  VPEXPANDBZ256rmkz = 16678,
+  VPEXPANDBZ256rr = 16679,
+  VPEXPANDBZ256rrk = 16680,
+  VPEXPANDBZ256rrkz = 16681,
+  VPEXPANDBZrm = 16682,
+  VPEXPANDBZrmk = 16683,
+  VPEXPANDBZrmkz = 16684,
+  VPEXPANDBZrr = 16685,
+  VPEXPANDBZrrk = 16686,
+  VPEXPANDBZrrkz = 16687,
+  VPEXPANDDZ128rm = 16688,
+  VPEXPANDDZ128rmk = 16689,
+  VPEXPANDDZ128rmkz = 16690,
+  VPEXPANDDZ128rr = 16691,
+  VPEXPANDDZ128rrk = 16692,
+  VPEXPANDDZ128rrkz = 16693,
+  VPEXPANDDZ256rm = 16694,
+  VPEXPANDDZ256rmk = 16695,
+  VPEXPANDDZ256rmkz = 16696,
+  VPEXPANDDZ256rr = 16697,
+  VPEXPANDDZ256rrk = 16698,
+  VPEXPANDDZ256rrkz = 16699,
+  VPEXPANDDZrm = 16700,
+  VPEXPANDDZrmk = 16701,
+  VPEXPANDDZrmkz = 16702,
+  VPEXPANDDZrr = 16703,
+  VPEXPANDDZrrk = 16704,
+  VPEXPANDDZrrkz = 16705,
+  VPEXPANDQZ128rm = 16706,
+  VPEXPANDQZ128rmk = 16707,
+  VPEXPANDQZ128rmkz = 16708,
+  VPEXPANDQZ128rr = 16709,
+  VPEXPANDQZ128rrk = 16710,
+  VPEXPANDQZ128rrkz = 16711,
+  VPEXPANDQZ256rm = 16712,
+  VPEXPANDQZ256rmk = 16713,
+  VPEXPANDQZ256rmkz = 16714,
+  VPEXPANDQZ256rr = 16715,
+  VPEXPANDQZ256rrk = 16716,
+  VPEXPANDQZ256rrkz = 16717,
+  VPEXPANDQZrm = 16718,
+  VPEXPANDQZrmk = 16719,
+  VPEXPANDQZrmkz = 16720,
+  VPEXPANDQZrr = 16721,
+  VPEXPANDQZrrk = 16722,
+  VPEXPANDQZrrkz = 16723,
+  VPEXPANDWZ128rm = 16724,
+  VPEXPANDWZ128rmk = 16725,
+  VPEXPANDWZ128rmkz = 16726,
+  VPEXPANDWZ128rr = 16727,
+  VPEXPANDWZ128rrk = 16728,
+  VPEXPANDWZ128rrkz = 16729,
+  VPEXPANDWZ256rm = 16730,
+  VPEXPANDWZ256rmk = 16731,
+  VPEXPANDWZ256rmkz = 16732,
+  VPEXPANDWZ256rr = 16733,
+  VPEXPANDWZ256rrk = 16734,
+  VPEXPANDWZ256rrkz = 16735,
+  VPEXPANDWZrm = 16736,
+  VPEXPANDWZrmk = 16737,
+  VPEXPANDWZrmkz = 16738,
+  VPEXPANDWZrr = 16739,
+  VPEXPANDWZrrk = 16740,
+  VPEXPANDWZrrkz = 16741,
+  VPEXTRBZmri = 16742,
+  VPEXTRBZrri = 16743,
+  VPEXTRBmri = 16744,
+  VPEXTRBrri = 16745,
+  VPEXTRDZmri = 16746,
+  VPEXTRDZrri = 16747,
+  VPEXTRDmri = 16748,
+  VPEXTRDrri = 16749,
+  VPEXTRQZmri = 16750,
+  VPEXTRQZrri = 16751,
+  VPEXTRQmri = 16752,
+  VPEXTRQrri = 16753,
+  VPEXTRWZmri = 16754,
+  VPEXTRWZrri = 16755,
+  VPEXTRWZrri_REV = 16756,
+  VPEXTRWmri = 16757,
+  VPEXTRWrri = 16758,
+  VPEXTRWrri_REV = 16759,
+  VPGATHERDDYrm = 16760,
+  VPGATHERDDZ128rm = 16761,
+  VPGATHERDDZ256rm = 16762,
+  VPGATHERDDZrm = 16763,
+  VPGATHERDDrm = 16764,
+  VPGATHERDQYrm = 16765,
+  VPGATHERDQZ128rm = 16766,
+  VPGATHERDQZ256rm = 16767,
+  VPGATHERDQZrm = 16768,
+  VPGATHERDQrm = 16769,
+  VPGATHERQDYrm = 16770,
+  VPGATHERQDZ128rm = 16771,
+  VPGATHERQDZ256rm = 16772,
+  VPGATHERQDZrm = 16773,
+  VPGATHERQDrm = 16774,
+  VPGATHERQQYrm = 16775,
+  VPGATHERQQZ128rm = 16776,
+  VPGATHERQQZ256rm = 16777,
+  VPGATHERQQZrm = 16778,
+  VPGATHERQQrm = 16779,
+  VPHADDBDrm = 16780,
+  VPHADDBDrr = 16781,
+  VPHADDBQrm = 16782,
+  VPHADDBQrr = 16783,
+  VPHADDBWrm = 16784,
+  VPHADDBWrr = 16785,
+  VPHADDDQrm = 16786,
+  VPHADDDQrr = 16787,
+  VPHADDDYrm = 16788,
+  VPHADDDYrr = 16789,
+  VPHADDDrm = 16790,
+  VPHADDDrr = 16791,
+  VPHADDSWYrm = 16792,
+  VPHADDSWYrr = 16793,
+  VPHADDSWrm = 16794,
+  VPHADDSWrr = 16795,
+  VPHADDUBDrm = 16796,
+  VPHADDUBDrr = 16797,
+  VPHADDUBQrm = 16798,
+  VPHADDUBQrr = 16799,
+  VPHADDUBWrm = 16800,
+  VPHADDUBWrr = 16801,
+  VPHADDUDQrm = 16802,
+  VPHADDUDQrr = 16803,
+  VPHADDUWDrm = 16804,
+  VPHADDUWDrr = 16805,
+  VPHADDUWQrm = 16806,
+  VPHADDUWQrr = 16807,
+  VPHADDWDrm = 16808,
+  VPHADDWDrr = 16809,
+  VPHADDWQrm = 16810,
+  VPHADDWQrr = 16811,
+  VPHADDWYrm = 16812,
+  VPHADDWYrr = 16813,
+  VPHADDWrm = 16814,
+  VPHADDWrr = 16815,
+  VPHMINPOSUWrm = 16816,
+  VPHMINPOSUWrr = 16817,
+  VPHSUBBWrm = 16818,
+  VPHSUBBWrr = 16819,
+  VPHSUBDQrm = 16820,
+  VPHSUBDQrr = 16821,
+  VPHSUBDYrm = 16822,
+  VPHSUBDYrr = 16823,
+  VPHSUBDrm = 16824,
+  VPHSUBDrr = 16825,
+  VPHSUBSWYrm = 16826,
+  VPHSUBSWYrr = 16827,
+  VPHSUBSWrm = 16828,
+  VPHSUBSWrr = 16829,
+  VPHSUBWDrm = 16830,
+  VPHSUBWDrr = 16831,
+  VPHSUBWYrm = 16832,
+  VPHSUBWYrr = 16833,
+  VPHSUBWrm = 16834,
+  VPHSUBWrr = 16835,
+  VPINSRBZrmi = 16836,
+  VPINSRBZrri = 16837,
+  VPINSRBrmi = 16838,
+  VPINSRBrri = 16839,
+  VPINSRDZrmi = 16840,
+  VPINSRDZrri = 16841,
+  VPINSRDrmi = 16842,
+  VPINSRDrri = 16843,
+  VPINSRQZrmi = 16844,
+  VPINSRQZrri = 16845,
+  VPINSRQrmi = 16846,
+  VPINSRQrri = 16847,
+  VPINSRWZrmi = 16848,
+  VPINSRWZrri = 16849,
+  VPINSRWrmi = 16850,
+  VPINSRWrri = 16851,
+  VPLZCNTDZ128rm = 16852,
+  VPLZCNTDZ128rmb = 16853,
+  VPLZCNTDZ128rmbk = 16854,
+  VPLZCNTDZ128rmbkz = 16855,
+  VPLZCNTDZ128rmk = 16856,
+  VPLZCNTDZ128rmkz = 16857,
+  VPLZCNTDZ128rr = 16858,
+  VPLZCNTDZ128rrk = 16859,
+  VPLZCNTDZ128rrkz = 16860,
+  VPLZCNTDZ256rm = 16861,
+  VPLZCNTDZ256rmb = 16862,
+  VPLZCNTDZ256rmbk = 16863,
+  VPLZCNTDZ256rmbkz = 16864,
+  VPLZCNTDZ256rmk = 16865,
+  VPLZCNTDZ256rmkz = 16866,
+  VPLZCNTDZ256rr = 16867,
+  VPLZCNTDZ256rrk = 16868,
+  VPLZCNTDZ256rrkz = 16869,
+  VPLZCNTDZrm = 16870,
+  VPLZCNTDZrmb = 16871,
+  VPLZCNTDZrmbk = 16872,
+  VPLZCNTDZrmbkz = 16873,
+  VPLZCNTDZrmk = 16874,
+  VPLZCNTDZrmkz = 16875,
+  VPLZCNTDZrr = 16876,
+  VPLZCNTDZrrk = 16877,
+  VPLZCNTDZrrkz = 16878,
+  VPLZCNTQZ128rm = 16879,
+  VPLZCNTQZ128rmb = 16880,
+  VPLZCNTQZ128rmbk = 16881,
+  VPLZCNTQZ128rmbkz = 16882,
+  VPLZCNTQZ128rmk = 16883,
+  VPLZCNTQZ128rmkz = 16884,
+  VPLZCNTQZ128rr = 16885,
+  VPLZCNTQZ128rrk = 16886,
+  VPLZCNTQZ128rrkz = 16887,
+  VPLZCNTQZ256rm = 16888,
+  VPLZCNTQZ256rmb = 16889,
+  VPLZCNTQZ256rmbk = 16890,
+  VPLZCNTQZ256rmbkz = 16891,
+  VPLZCNTQZ256rmk = 16892,
+  VPLZCNTQZ256rmkz = 16893,
+  VPLZCNTQZ256rr = 16894,
+  VPLZCNTQZ256rrk = 16895,
+  VPLZCNTQZ256rrkz = 16896,
+  VPLZCNTQZrm = 16897,
+  VPLZCNTQZrmb = 16898,
+  VPLZCNTQZrmbk = 16899,
+  VPLZCNTQZrmbkz = 16900,
+  VPLZCNTQZrmk = 16901,
+  VPLZCNTQZrmkz = 16902,
+  VPLZCNTQZrr = 16903,
+  VPLZCNTQZrrk = 16904,
+  VPLZCNTQZrrkz = 16905,
+  VPMACSDDrm = 16906,
+  VPMACSDDrr = 16907,
+  VPMACSDQHrm = 16908,
+  VPMACSDQHrr = 16909,
+  VPMACSDQLrm = 16910,
+  VPMACSDQLrr = 16911,
+  VPMACSSDDrm = 16912,
+  VPMACSSDDrr = 16913,
+  VPMACSSDQHrm = 16914,
+  VPMACSSDQHrr = 16915,
+  VPMACSSDQLrm = 16916,
+  VPMACSSDQLrr = 16917,
+  VPMACSSWDrm = 16918,
+  VPMACSSWDrr = 16919,
+  VPMACSSWWrm = 16920,
+  VPMACSSWWrr = 16921,
+  VPMACSWDrm = 16922,
+  VPMACSWDrr = 16923,
+  VPMACSWWrm = 16924,
+  VPMACSWWrr = 16925,
+  VPMADCSSWDrm = 16926,
+  VPMADCSSWDrr = 16927,
+  VPMADCSWDrm = 16928,
+  VPMADCSWDrr = 16929,
+  VPMADD52HUQYrm = 16930,
+  VPMADD52HUQYrr = 16931,
+  VPMADD52HUQZ128m = 16932,
+  VPMADD52HUQZ128mb = 16933,
+  VPMADD52HUQZ128mbk = 16934,
+  VPMADD52HUQZ128mbkz = 16935,
+  VPMADD52HUQZ128mk = 16936,
+  VPMADD52HUQZ128mkz = 16937,
+  VPMADD52HUQZ128r = 16938,
+  VPMADD52HUQZ128rk = 16939,
+  VPMADD52HUQZ128rkz = 16940,
+  VPMADD52HUQZ256m = 16941,
+  VPMADD52HUQZ256mb = 16942,
+  VPMADD52HUQZ256mbk = 16943,
+  VPMADD52HUQZ256mbkz = 16944,
+  VPMADD52HUQZ256mk = 16945,
+  VPMADD52HUQZ256mkz = 16946,
+  VPMADD52HUQZ256r = 16947,
+  VPMADD52HUQZ256rk = 16948,
+  VPMADD52HUQZ256rkz = 16949,
+  VPMADD52HUQZm = 16950,
+  VPMADD52HUQZmb = 16951,
+  VPMADD52HUQZmbk = 16952,
+  VPMADD52HUQZmbkz = 16953,
+  VPMADD52HUQZmk = 16954,
+  VPMADD52HUQZmkz = 16955,
+  VPMADD52HUQZr = 16956,
+  VPMADD52HUQZrk = 16957,
+  VPMADD52HUQZrkz = 16958,
+  VPMADD52HUQrm = 16959,
+  VPMADD52HUQrr = 16960,
+  VPMADD52LUQYrm = 16961,
+  VPMADD52LUQYrr = 16962,
+  VPMADD52LUQZ128m = 16963,
+  VPMADD52LUQZ128mb = 16964,
+  VPMADD52LUQZ128mbk = 16965,
+  VPMADD52LUQZ128mbkz = 16966,
+  VPMADD52LUQZ128mk = 16967,
+  VPMADD52LUQZ128mkz = 16968,
+  VPMADD52LUQZ128r = 16969,
+  VPMADD52LUQZ128rk = 16970,
+  VPMADD52LUQZ128rkz = 16971,
+  VPMADD52LUQZ256m = 16972,
+  VPMADD52LUQZ256mb = 16973,
+  VPMADD52LUQZ256mbk = 16974,
+  VPMADD52LUQZ256mbkz = 16975,
+  VPMADD52LUQZ256mk = 16976,
+  VPMADD52LUQZ256mkz = 16977,
+  VPMADD52LUQZ256r = 16978,
+  VPMADD52LUQZ256rk = 16979,
+  VPMADD52LUQZ256rkz = 16980,
+  VPMADD52LUQZm = 16981,
+  VPMADD52LUQZmb = 16982,
+  VPMADD52LUQZmbk = 16983,
+  VPMADD52LUQZmbkz = 16984,
+  VPMADD52LUQZmk = 16985,
+  VPMADD52LUQZmkz = 16986,
+  VPMADD52LUQZr = 16987,
+  VPMADD52LUQZrk = 16988,
+  VPMADD52LUQZrkz = 16989,
+  VPMADD52LUQrm = 16990,
+  VPMADD52LUQrr = 16991,
+  VPMADDUBSWYrm = 16992,
+  VPMADDUBSWYrr = 16993,
+  VPMADDUBSWZ128rm = 16994,
+  VPMADDUBSWZ128rmk = 16995,
+  VPMADDUBSWZ128rmkz = 16996,
+  VPMADDUBSWZ128rr = 16997,
+  VPMADDUBSWZ128rrk = 16998,
+  VPMADDUBSWZ128rrkz = 16999,
+  VPMADDUBSWZ256rm = 17000,
+  VPMADDUBSWZ256rmk = 17001,
+  VPMADDUBSWZ256rmkz = 17002,
+  VPMADDUBSWZ256rr = 17003,
+  VPMADDUBSWZ256rrk = 17004,
+  VPMADDUBSWZ256rrkz = 17005,
+  VPMADDUBSWZrm = 17006,
+  VPMADDUBSWZrmk = 17007,
+  VPMADDUBSWZrmkz = 17008,
+  VPMADDUBSWZrr = 17009,
+  VPMADDUBSWZrrk = 17010,
+  VPMADDUBSWZrrkz = 17011,
+  VPMADDUBSWrm = 17012,
+  VPMADDUBSWrr = 17013,
+  VPMADDWDYrm = 17014,
+  VPMADDWDYrr = 17015,
+  VPMADDWDZ128rm = 17016,
+  VPMADDWDZ128rmk = 17017,
+  VPMADDWDZ128rmkz = 17018,
+  VPMADDWDZ128rr = 17019,
+  VPMADDWDZ128rrk = 17020,
+  VPMADDWDZ128rrkz = 17021,
+  VPMADDWDZ256rm = 17022,
+  VPMADDWDZ256rmk = 17023,
+  VPMADDWDZ256rmkz = 17024,
+  VPMADDWDZ256rr = 17025,
+  VPMADDWDZ256rrk = 17026,
+  VPMADDWDZ256rrkz = 17027,
+  VPMADDWDZrm = 17028,
+  VPMADDWDZrmk = 17029,
+  VPMADDWDZrmkz = 17030,
+  VPMADDWDZrr = 17031,
+  VPMADDWDZrrk = 17032,
+  VPMADDWDZrrkz = 17033,
+  VPMADDWDrm = 17034,
+  VPMADDWDrr = 17035,
+  VPMASKMOVDYmr = 17036,
+  VPMASKMOVDYrm = 17037,
+  VPMASKMOVDmr = 17038,
+  VPMASKMOVDrm = 17039,
+  VPMASKMOVQYmr = 17040,
+  VPMASKMOVQYrm = 17041,
+  VPMASKMOVQmr = 17042,
+  VPMASKMOVQrm = 17043,
+  VPMAXSBYrm = 17044,
+  VPMAXSBYrr = 17045,
+  VPMAXSBZ128rm = 17046,
+  VPMAXSBZ128rmk = 17047,
+  VPMAXSBZ128rmkz = 17048,
+  VPMAXSBZ128rr = 17049,
+  VPMAXSBZ128rrk = 17050,
+  VPMAXSBZ128rrkz = 17051,
+  VPMAXSBZ256rm = 17052,
+  VPMAXSBZ256rmk = 17053,
+  VPMAXSBZ256rmkz = 17054,
+  VPMAXSBZ256rr = 17055,
+  VPMAXSBZ256rrk = 17056,
+  VPMAXSBZ256rrkz = 17057,
+  VPMAXSBZrm = 17058,
+  VPMAXSBZrmk = 17059,
+  VPMAXSBZrmkz = 17060,
+  VPMAXSBZrr = 17061,
+  VPMAXSBZrrk = 17062,
+  VPMAXSBZrrkz = 17063,
+  VPMAXSBrm = 17064,
+  VPMAXSBrr = 17065,
+  VPMAXSDYrm = 17066,
+  VPMAXSDYrr = 17067,
+  VPMAXSDZ128rm = 17068,
+  VPMAXSDZ128rmb = 17069,
+  VPMAXSDZ128rmbk = 17070,
+  VPMAXSDZ128rmbkz = 17071,
+  VPMAXSDZ128rmk = 17072,
+  VPMAXSDZ128rmkz = 17073,
+  VPMAXSDZ128rr = 17074,
+  VPMAXSDZ128rrk = 17075,
+  VPMAXSDZ128rrkz = 17076,
+  VPMAXSDZ256rm = 17077,
+  VPMAXSDZ256rmb = 17078,
+  VPMAXSDZ256rmbk = 17079,
+  VPMAXSDZ256rmbkz = 17080,
+  VPMAXSDZ256rmk = 17081,
+  VPMAXSDZ256rmkz = 17082,
+  VPMAXSDZ256rr = 17083,
+  VPMAXSDZ256rrk = 17084,
+  VPMAXSDZ256rrkz = 17085,
+  VPMAXSDZrm = 17086,
+  VPMAXSDZrmb = 17087,
+  VPMAXSDZrmbk = 17088,
+  VPMAXSDZrmbkz = 17089,
+  VPMAXSDZrmk = 17090,
+  VPMAXSDZrmkz = 17091,
+  VPMAXSDZrr = 17092,
+  VPMAXSDZrrk = 17093,
+  VPMAXSDZrrkz = 17094,
+  VPMAXSDrm = 17095,
+  VPMAXSDrr = 17096,
+  VPMAXSQZ128rm = 17097,
+  VPMAXSQZ128rmb = 17098,
+  VPMAXSQZ128rmbk = 17099,
+  VPMAXSQZ128rmbkz = 17100,
+  VPMAXSQZ128rmk = 17101,
+  VPMAXSQZ128rmkz = 17102,
+  VPMAXSQZ128rr = 17103,
+  VPMAXSQZ128rrk = 17104,
+  VPMAXSQZ128rrkz = 17105,
+  VPMAXSQZ256rm = 17106,
+  VPMAXSQZ256rmb = 17107,
+  VPMAXSQZ256rmbk = 17108,
+  VPMAXSQZ256rmbkz = 17109,
+  VPMAXSQZ256rmk = 17110,
+  VPMAXSQZ256rmkz = 17111,
+  VPMAXSQZ256rr = 17112,
+  VPMAXSQZ256rrk = 17113,
+  VPMAXSQZ256rrkz = 17114,
+  VPMAXSQZrm = 17115,
+  VPMAXSQZrmb = 17116,
+  VPMAXSQZrmbk = 17117,
+  VPMAXSQZrmbkz = 17118,
+  VPMAXSQZrmk = 17119,
+  VPMAXSQZrmkz = 17120,
+  VPMAXSQZrr = 17121,
+  VPMAXSQZrrk = 17122,
+  VPMAXSQZrrkz = 17123,
+  VPMAXSWYrm = 17124,
+  VPMAXSWYrr = 17125,
+  VPMAXSWZ128rm = 17126,
+  VPMAXSWZ128rmk = 17127,
+  VPMAXSWZ128rmkz = 17128,
+  VPMAXSWZ128rr = 17129,
+  VPMAXSWZ128rrk = 17130,
+  VPMAXSWZ128rrkz = 17131,
+  VPMAXSWZ256rm = 17132,
+  VPMAXSWZ256rmk = 17133,
+  VPMAXSWZ256rmkz = 17134,
+  VPMAXSWZ256rr = 17135,
+  VPMAXSWZ256rrk = 17136,
+  VPMAXSWZ256rrkz = 17137,
+  VPMAXSWZrm = 17138,
+  VPMAXSWZrmk = 17139,
+  VPMAXSWZrmkz = 17140,
+  VPMAXSWZrr = 17141,
+  VPMAXSWZrrk = 17142,
+  VPMAXSWZrrkz = 17143,
+  VPMAXSWrm = 17144,
+  VPMAXSWrr = 17145,
+  VPMAXUBYrm = 17146,
+  VPMAXUBYrr = 17147,
+  VPMAXUBZ128rm = 17148,
+  VPMAXUBZ128rmk = 17149,
+  VPMAXUBZ128rmkz = 17150,
+  VPMAXUBZ128rr = 17151,
+  VPMAXUBZ128rrk = 17152,
+  VPMAXUBZ128rrkz = 17153,
+  VPMAXUBZ256rm = 17154,
+  VPMAXUBZ256rmk = 17155,
+  VPMAXUBZ256rmkz = 17156,
+  VPMAXUBZ256rr = 17157,
+  VPMAXUBZ256rrk = 17158,
+  VPMAXUBZ256rrkz = 17159,
+  VPMAXUBZrm = 17160,
+  VPMAXUBZrmk = 17161,
+  VPMAXUBZrmkz = 17162,
+  VPMAXUBZrr = 17163,
+  VPMAXUBZrrk = 17164,
+  VPMAXUBZrrkz = 17165,
+  VPMAXUBrm = 17166,
+  VPMAXUBrr = 17167,
+  VPMAXUDYrm = 17168,
+  VPMAXUDYrr = 17169,
+  VPMAXUDZ128rm = 17170,
+  VPMAXUDZ128rmb = 17171,
+  VPMAXUDZ128rmbk = 17172,
+  VPMAXUDZ128rmbkz = 17173,
+  VPMAXUDZ128rmk = 17174,
+  VPMAXUDZ128rmkz = 17175,
+  VPMAXUDZ128rr = 17176,
+  VPMAXUDZ128rrk = 17177,
+  VPMAXUDZ128rrkz = 17178,
+  VPMAXUDZ256rm = 17179,
+  VPMAXUDZ256rmb = 17180,
+  VPMAXUDZ256rmbk = 17181,
+  VPMAXUDZ256rmbkz = 17182,
+  VPMAXUDZ256rmk = 17183,
+  VPMAXUDZ256rmkz = 17184,
+  VPMAXUDZ256rr = 17185,
+  VPMAXUDZ256rrk = 17186,
+  VPMAXUDZ256rrkz = 17187,
+  VPMAXUDZrm = 17188,
+  VPMAXUDZrmb = 17189,
+  VPMAXUDZrmbk = 17190,
+  VPMAXUDZrmbkz = 17191,
+  VPMAXUDZrmk = 17192,
+  VPMAXUDZrmkz = 17193,
+  VPMAXUDZrr = 17194,
+  VPMAXUDZrrk = 17195,
+  VPMAXUDZrrkz = 17196,
+  VPMAXUDrm = 17197,
+  VPMAXUDrr = 17198,
+  VPMAXUQZ128rm = 17199,
+  VPMAXUQZ128rmb = 17200,
+  VPMAXUQZ128rmbk = 17201,
+  VPMAXUQZ128rmbkz = 17202,
+  VPMAXUQZ128rmk = 17203,
+  VPMAXUQZ128rmkz = 17204,
+  VPMAXUQZ128rr = 17205,
+  VPMAXUQZ128rrk = 17206,
+  VPMAXUQZ128rrkz = 17207,
+  VPMAXUQZ256rm = 17208,
+  VPMAXUQZ256rmb = 17209,
+  VPMAXUQZ256rmbk = 17210,
+  VPMAXUQZ256rmbkz = 17211,
+  VPMAXUQZ256rmk = 17212,
+  VPMAXUQZ256rmkz = 17213,
+  VPMAXUQZ256rr = 17214,
+  VPMAXUQZ256rrk = 17215,
+  VPMAXUQZ256rrkz = 17216,
+  VPMAXUQZrm = 17217,
+  VPMAXUQZrmb = 17218,
+  VPMAXUQZrmbk = 17219,
+  VPMAXUQZrmbkz = 17220,
+  VPMAXUQZrmk = 17221,
+  VPMAXUQZrmkz = 17222,
+  VPMAXUQZrr = 17223,
+  VPMAXUQZrrk = 17224,
+  VPMAXUQZrrkz = 17225,
+  VPMAXUWYrm = 17226,
+  VPMAXUWYrr = 17227,
+  VPMAXUWZ128rm = 17228,
+  VPMAXUWZ128rmk = 17229,
+  VPMAXUWZ128rmkz = 17230,
+  VPMAXUWZ128rr = 17231,
+  VPMAXUWZ128rrk = 17232,
+  VPMAXUWZ128rrkz = 17233,
+  VPMAXUWZ256rm = 17234,
+  VPMAXUWZ256rmk = 17235,
+  VPMAXUWZ256rmkz = 17236,
+  VPMAXUWZ256rr = 17237,
+  VPMAXUWZ256rrk = 17238,
+  VPMAXUWZ256rrkz = 17239,
+  VPMAXUWZrm = 17240,
+  VPMAXUWZrmk = 17241,
+  VPMAXUWZrmkz = 17242,
+  VPMAXUWZrr = 17243,
+  VPMAXUWZrrk = 17244,
+  VPMAXUWZrrkz = 17245,
+  VPMAXUWrm = 17246,
+  VPMAXUWrr = 17247,
+  VPMINSBYrm = 17248,
+  VPMINSBYrr = 17249,
+  VPMINSBZ128rm = 17250,
+  VPMINSBZ128rmk = 17251,
+  VPMINSBZ128rmkz = 17252,
+  VPMINSBZ128rr = 17253,
+  VPMINSBZ128rrk = 17254,
+  VPMINSBZ128rrkz = 17255,
+  VPMINSBZ256rm = 17256,
+  VPMINSBZ256rmk = 17257,
+  VPMINSBZ256rmkz = 17258,
+  VPMINSBZ256rr = 17259,
+  VPMINSBZ256rrk = 17260,
+  VPMINSBZ256rrkz = 17261,
+  VPMINSBZrm = 17262,
+  VPMINSBZrmk = 17263,
+  VPMINSBZrmkz = 17264,
+  VPMINSBZrr = 17265,
+  VPMINSBZrrk = 17266,
+  VPMINSBZrrkz = 17267,
+  VPMINSBrm = 17268,
+  VPMINSBrr = 17269,
+  VPMINSDYrm = 17270,
+  VPMINSDYrr = 17271,
+  VPMINSDZ128rm = 17272,
+  VPMINSDZ128rmb = 17273,
+  VPMINSDZ128rmbk = 17274,
+  VPMINSDZ128rmbkz = 17275,
+  VPMINSDZ128rmk = 17276,
+  VPMINSDZ128rmkz = 17277,
+  VPMINSDZ128rr = 17278,
+  VPMINSDZ128rrk = 17279,
+  VPMINSDZ128rrkz = 17280,
+  VPMINSDZ256rm = 17281,
+  VPMINSDZ256rmb = 17282,
+  VPMINSDZ256rmbk = 17283,
+  VPMINSDZ256rmbkz = 17284,
+  VPMINSDZ256rmk = 17285,
+  VPMINSDZ256rmkz = 17286,
+  VPMINSDZ256rr = 17287,
+  VPMINSDZ256rrk = 17288,
+  VPMINSDZ256rrkz = 17289,
+  VPMINSDZrm = 17290,
+  VPMINSDZrmb = 17291,
+  VPMINSDZrmbk = 17292,
+  VPMINSDZrmbkz = 17293,
+  VPMINSDZrmk = 17294,
+  VPMINSDZrmkz = 17295,
+  VPMINSDZrr = 17296,
+  VPMINSDZrrk = 17297,
+  VPMINSDZrrkz = 17298,
+  VPMINSDrm = 17299,
+  VPMINSDrr = 17300,
+  VPMINSQZ128rm = 17301,
+  VPMINSQZ128rmb = 17302,
+  VPMINSQZ128rmbk = 17303,
+  VPMINSQZ128rmbkz = 17304,
+  VPMINSQZ128rmk = 17305,
+  VPMINSQZ128rmkz = 17306,
+  VPMINSQZ128rr = 17307,
+  VPMINSQZ128rrk = 17308,
+  VPMINSQZ128rrkz = 17309,
+  VPMINSQZ256rm = 17310,
+  VPMINSQZ256rmb = 17311,
+  VPMINSQZ256rmbk = 17312,
+  VPMINSQZ256rmbkz = 17313,
+  VPMINSQZ256rmk = 17314,
+  VPMINSQZ256rmkz = 17315,
+  VPMINSQZ256rr = 17316,
+  VPMINSQZ256rrk = 17317,
+  VPMINSQZ256rrkz = 17318,
+  VPMINSQZrm = 17319,
+  VPMINSQZrmb = 17320,
+  VPMINSQZrmbk = 17321,
+  VPMINSQZrmbkz = 17322,
+  VPMINSQZrmk = 17323,
+  VPMINSQZrmkz = 17324,
+  VPMINSQZrr = 17325,
+  VPMINSQZrrk = 17326,
+  VPMINSQZrrkz = 17327,
+  VPMINSWYrm = 17328,
+  VPMINSWYrr = 17329,
+  VPMINSWZ128rm = 17330,
+  VPMINSWZ128rmk = 17331,
+  VPMINSWZ128rmkz = 17332,
+  VPMINSWZ128rr = 17333,
+  VPMINSWZ128rrk = 17334,
+  VPMINSWZ128rrkz = 17335,
+  VPMINSWZ256rm = 17336,
+  VPMINSWZ256rmk = 17337,
+  VPMINSWZ256rmkz = 17338,
+  VPMINSWZ256rr = 17339,
+  VPMINSWZ256rrk = 17340,
+  VPMINSWZ256rrkz = 17341,
+  VPMINSWZrm = 17342,
+  VPMINSWZrmk = 17343,
+  VPMINSWZrmkz = 17344,
+  VPMINSWZrr = 17345,
+  VPMINSWZrrk = 17346,
+  VPMINSWZrrkz = 17347,
+  VPMINSWrm = 17348,
+  VPMINSWrr = 17349,
+  VPMINUBYrm = 17350,
+  VPMINUBYrr = 17351,
+  VPMINUBZ128rm = 17352,
+  VPMINUBZ128rmk = 17353,
+  VPMINUBZ128rmkz = 17354,
+  VPMINUBZ128rr = 17355,
+  VPMINUBZ128rrk = 17356,
+  VPMINUBZ128rrkz = 17357,
+  VPMINUBZ256rm = 17358,
+  VPMINUBZ256rmk = 17359,
+  VPMINUBZ256rmkz = 17360,
+  VPMINUBZ256rr = 17361,
+  VPMINUBZ256rrk = 17362,
+  VPMINUBZ256rrkz = 17363,
+  VPMINUBZrm = 17364,
+  VPMINUBZrmk = 17365,
+  VPMINUBZrmkz = 17366,
+  VPMINUBZrr = 17367,
+  VPMINUBZrrk = 17368,
+  VPMINUBZrrkz = 17369,
+  VPMINUBrm = 17370,
+  VPMINUBrr = 17371,
+  VPMINUDYrm = 17372,
+  VPMINUDYrr = 17373,
+  VPMINUDZ128rm = 17374,
+  VPMINUDZ128rmb = 17375,
+  VPMINUDZ128rmbk = 17376,
+  VPMINUDZ128rmbkz = 17377,
+  VPMINUDZ128rmk = 17378,
+  VPMINUDZ128rmkz = 17379,
+  VPMINUDZ128rr = 17380,
+  VPMINUDZ128rrk = 17381,
+  VPMINUDZ128rrkz = 17382,
+  VPMINUDZ256rm = 17383,
+  VPMINUDZ256rmb = 17384,
+  VPMINUDZ256rmbk = 17385,
+  VPMINUDZ256rmbkz = 17386,
+  VPMINUDZ256rmk = 17387,
+  VPMINUDZ256rmkz = 17388,
+  VPMINUDZ256rr = 17389,
+  VPMINUDZ256rrk = 17390,
+  VPMINUDZ256rrkz = 17391,
+  VPMINUDZrm = 17392,
+  VPMINUDZrmb = 17393,
+  VPMINUDZrmbk = 17394,
+  VPMINUDZrmbkz = 17395,
+  VPMINUDZrmk = 17396,
+  VPMINUDZrmkz = 17397,
+  VPMINUDZrr = 17398,
+  VPMINUDZrrk = 17399,
+  VPMINUDZrrkz = 17400,
+  VPMINUDrm = 17401,
+  VPMINUDrr = 17402,
+  VPMINUQZ128rm = 17403,
+  VPMINUQZ128rmb = 17404,
+  VPMINUQZ128rmbk = 17405,
+  VPMINUQZ128rmbkz = 17406,
+  VPMINUQZ128rmk = 17407,
+  VPMINUQZ128rmkz = 17408,
+  VPMINUQZ128rr = 17409,
+  VPMINUQZ128rrk = 17410,
+  VPMINUQZ128rrkz = 17411,
+  VPMINUQZ256rm = 17412,
+  VPMINUQZ256rmb = 17413,
+  VPMINUQZ256rmbk = 17414,
+  VPMINUQZ256rmbkz = 17415,
+  VPMINUQZ256rmk = 17416,
+  VPMINUQZ256rmkz = 17417,
+  VPMINUQZ256rr = 17418,
+  VPMINUQZ256rrk = 17419,
+  VPMINUQZ256rrkz = 17420,
+  VPMINUQZrm = 17421,
+  VPMINUQZrmb = 17422,
+  VPMINUQZrmbk = 17423,
+  VPMINUQZrmbkz = 17424,
+  VPMINUQZrmk = 17425,
+  VPMINUQZrmkz = 17426,
+  VPMINUQZrr = 17427,
+  VPMINUQZrrk = 17428,
+  VPMINUQZrrkz = 17429,
+  VPMINUWYrm = 17430,
+  VPMINUWYrr = 17431,
+  VPMINUWZ128rm = 17432,
+  VPMINUWZ128rmk = 17433,
+  VPMINUWZ128rmkz = 17434,
+  VPMINUWZ128rr = 17435,
+  VPMINUWZ128rrk = 17436,
+  VPMINUWZ128rrkz = 17437,
+  VPMINUWZ256rm = 17438,
+  VPMINUWZ256rmk = 17439,
+  VPMINUWZ256rmkz = 17440,
+  VPMINUWZ256rr = 17441,
+  VPMINUWZ256rrk = 17442,
+  VPMINUWZ256rrkz = 17443,
+  VPMINUWZrm = 17444,
+  VPMINUWZrmk = 17445,
+  VPMINUWZrmkz = 17446,
+  VPMINUWZrr = 17447,
+  VPMINUWZrrk = 17448,
+  VPMINUWZrrkz = 17449,
+  VPMINUWrm = 17450,
+  VPMINUWrr = 17451,
+  VPMOVB2MZ128kr = 17452,
+  VPMOVB2MZ256kr = 17453,
+  VPMOVB2MZkr = 17454,
+  VPMOVD2MZ128kr = 17455,
+  VPMOVD2MZ256kr = 17456,
+  VPMOVD2MZkr = 17457,
+  VPMOVDBZ128mr = 17458,
+  VPMOVDBZ128mrk = 17459,
+  VPMOVDBZ128rr = 17460,
+  VPMOVDBZ128rrk = 17461,
+  VPMOVDBZ128rrkz = 17462,
+  VPMOVDBZ256mr = 17463,
+  VPMOVDBZ256mrk = 17464,
+  VPMOVDBZ256rr = 17465,
+  VPMOVDBZ256rrk = 17466,
+  VPMOVDBZ256rrkz = 17467,
+  VPMOVDBZmr = 17468,
+  VPMOVDBZmrk = 17469,
+  VPMOVDBZrr = 17470,
+  VPMOVDBZrrk = 17471,
+  VPMOVDBZrrkz = 17472,
+  VPMOVDWZ128mr = 17473,
+  VPMOVDWZ128mrk = 17474,
+  VPMOVDWZ128rr = 17475,
+  VPMOVDWZ128rrk = 17476,
+  VPMOVDWZ128rrkz = 17477,
+  VPMOVDWZ256mr = 17478,
+  VPMOVDWZ256mrk = 17479,
+  VPMOVDWZ256rr = 17480,
+  VPMOVDWZ256rrk = 17481,
+  VPMOVDWZ256rrkz = 17482,
+  VPMOVDWZmr = 17483,
+  VPMOVDWZmrk = 17484,
+  VPMOVDWZrr = 17485,
+  VPMOVDWZrrk = 17486,
+  VPMOVDWZrrkz = 17487,
+  VPMOVM2BZ128rk = 17488,
+  VPMOVM2BZ256rk = 17489,
+  VPMOVM2BZrk = 17490,
+  VPMOVM2DZ128rk = 17491,
+  VPMOVM2DZ256rk = 17492,
+  VPMOVM2DZrk = 17493,
+  VPMOVM2QZ128rk = 17494,
+  VPMOVM2QZ256rk = 17495,
+  VPMOVM2QZrk = 17496,
+  VPMOVM2WZ128rk = 17497,
+  VPMOVM2WZ256rk = 17498,
+  VPMOVM2WZrk = 17499,
+  VPMOVMSKBYrr = 17500,
+  VPMOVMSKBrr = 17501,
+  VPMOVQ2MZ128kr = 17502,
+  VPMOVQ2MZ256kr = 17503,
+  VPMOVQ2MZkr = 17504,
+  VPMOVQBZ128mr = 17505,
+  VPMOVQBZ128mrk = 17506,
+  VPMOVQBZ128rr = 17507,
+  VPMOVQBZ128rrk = 17508,
+  VPMOVQBZ128rrkz = 17509,
+  VPMOVQBZ256mr = 17510,
+  VPMOVQBZ256mrk = 17511,
+  VPMOVQBZ256rr = 17512,
+  VPMOVQBZ256rrk = 17513,
+  VPMOVQBZ256rrkz = 17514,
+  VPMOVQBZmr = 17515,
+  VPMOVQBZmrk = 17516,
+  VPMOVQBZrr = 17517,
+  VPMOVQBZrrk = 17518,
+  VPMOVQBZrrkz = 17519,
+  VPMOVQDZ128mr = 17520,
+  VPMOVQDZ128mrk = 17521,
+  VPMOVQDZ128rr = 17522,
+  VPMOVQDZ128rrk = 17523,
+  VPMOVQDZ128rrkz = 17524,
+  VPMOVQDZ256mr = 17525,
+  VPMOVQDZ256mrk = 17526,
+  VPMOVQDZ256rr = 17527,
+  VPMOVQDZ256rrk = 17528,
+  VPMOVQDZ256rrkz = 17529,
+  VPMOVQDZmr = 17530,
+  VPMOVQDZmrk = 17531,
+  VPMOVQDZrr = 17532,
+  VPMOVQDZrrk = 17533,
+  VPMOVQDZrrkz = 17534,
+  VPMOVQWZ128mr = 17535,
+  VPMOVQWZ128mrk = 17536,
+  VPMOVQWZ128rr = 17537,
+  VPMOVQWZ128rrk = 17538,
+  VPMOVQWZ128rrkz = 17539,
+  VPMOVQWZ256mr = 17540,
+  VPMOVQWZ256mrk = 17541,
+  VPMOVQWZ256rr = 17542,
+  VPMOVQWZ256rrk = 17543,
+  VPMOVQWZ256rrkz = 17544,
+  VPMOVQWZmr = 17545,
+  VPMOVQWZmrk = 17546,
+  VPMOVQWZrr = 17547,
+  VPMOVQWZrrk = 17548,
+  VPMOVQWZrrkz = 17549,
+  VPMOVSDBZ128mr = 17550,
+  VPMOVSDBZ128mrk = 17551,
+  VPMOVSDBZ128rr = 17552,
+  VPMOVSDBZ128rrk = 17553,
+  VPMOVSDBZ128rrkz = 17554,
+  VPMOVSDBZ256mr = 17555,
+  VPMOVSDBZ256mrk = 17556,
+  VPMOVSDBZ256rr = 17557,
+  VPMOVSDBZ256rrk = 17558,
+  VPMOVSDBZ256rrkz = 17559,
+  VPMOVSDBZmr = 17560,
+  VPMOVSDBZmrk = 17561,
+  VPMOVSDBZrr = 17562,
+  VPMOVSDBZrrk = 17563,
+  VPMOVSDBZrrkz = 17564,
+  VPMOVSDWZ128mr = 17565,
+  VPMOVSDWZ128mrk = 17566,
+  VPMOVSDWZ128rr = 17567,
+  VPMOVSDWZ128rrk = 17568,
+  VPMOVSDWZ128rrkz = 17569,
+  VPMOVSDWZ256mr = 17570,
+  VPMOVSDWZ256mrk = 17571,
+  VPMOVSDWZ256rr = 17572,
+  VPMOVSDWZ256rrk = 17573,
+  VPMOVSDWZ256rrkz = 17574,
+  VPMOVSDWZmr = 17575,
+  VPMOVSDWZmrk = 17576,
+  VPMOVSDWZrr = 17577,
+  VPMOVSDWZrrk = 17578,
+  VPMOVSDWZrrkz = 17579,
+  VPMOVSQBZ128mr = 17580,
+  VPMOVSQBZ128mrk = 17581,
+  VPMOVSQBZ128rr = 17582,
+  VPMOVSQBZ128rrk = 17583,
+  VPMOVSQBZ128rrkz = 17584,
+  VPMOVSQBZ256mr = 17585,
+  VPMOVSQBZ256mrk = 17586,
+  VPMOVSQBZ256rr = 17587,
+  VPMOVSQBZ256rrk = 17588,
+  VPMOVSQBZ256rrkz = 17589,
+  VPMOVSQBZmr = 17590,
+  VPMOVSQBZmrk = 17591,
+  VPMOVSQBZrr = 17592,
+  VPMOVSQBZrrk = 17593,
+  VPMOVSQBZrrkz = 17594,
+  VPMOVSQDZ128mr = 17595,
+  VPMOVSQDZ128mrk = 17596,
+  VPMOVSQDZ128rr = 17597,
+  VPMOVSQDZ128rrk = 17598,
+  VPMOVSQDZ128rrkz = 17599,
+  VPMOVSQDZ256mr = 17600,
+  VPMOVSQDZ256mrk = 17601,
+  VPMOVSQDZ256rr = 17602,
+  VPMOVSQDZ256rrk = 17603,
+  VPMOVSQDZ256rrkz = 17604,
+  VPMOVSQDZmr = 17605,
+  VPMOVSQDZmrk = 17606,
+  VPMOVSQDZrr = 17607,
+  VPMOVSQDZrrk = 17608,
+  VPMOVSQDZrrkz = 17609,
+  VPMOVSQWZ128mr = 17610,
+  VPMOVSQWZ128mrk = 17611,
+  VPMOVSQWZ128rr = 17612,
+  VPMOVSQWZ128rrk = 17613,
+  VPMOVSQWZ128rrkz = 17614,
+  VPMOVSQWZ256mr = 17615,
+  VPMOVSQWZ256mrk = 17616,
+  VPMOVSQWZ256rr = 17617,
+  VPMOVSQWZ256rrk = 17618,
+  VPMOVSQWZ256rrkz = 17619,
+  VPMOVSQWZmr = 17620,
+  VPMOVSQWZmrk = 17621,
+  VPMOVSQWZrr = 17622,
+  VPMOVSQWZrrk = 17623,
+  VPMOVSQWZrrkz = 17624,
+  VPMOVSWBZ128mr = 17625,
+  VPMOVSWBZ128mrk = 17626,
+  VPMOVSWBZ128rr = 17627,
+  VPMOVSWBZ128rrk = 17628,
+  VPMOVSWBZ128rrkz = 17629,
+  VPMOVSWBZ256mr = 17630,
+  VPMOVSWBZ256mrk = 17631,
+  VPMOVSWBZ256rr = 17632,
+  VPMOVSWBZ256rrk = 17633,
+  VPMOVSWBZ256rrkz = 17634,
+  VPMOVSWBZmr = 17635,
+  VPMOVSWBZmrk = 17636,
+  VPMOVSWBZrr = 17637,
+  VPMOVSWBZrrk = 17638,
+  VPMOVSWBZrrkz = 17639,
+  VPMOVSXBDYrm = 17640,
+  VPMOVSXBDYrr = 17641,
+  VPMOVSXBDZ128rm = 17642,
+  VPMOVSXBDZ128rmk = 17643,
+  VPMOVSXBDZ128rmkz = 17644,
+  VPMOVSXBDZ128rr = 17645,
+  VPMOVSXBDZ128rrk = 17646,
+  VPMOVSXBDZ128rrkz = 17647,
+  VPMOVSXBDZ256rm = 17648,
+  VPMOVSXBDZ256rmk = 17649,
+  VPMOVSXBDZ256rmkz = 17650,
+  VPMOVSXBDZ256rr = 17651,
+  VPMOVSXBDZ256rrk = 17652,
+  VPMOVSXBDZ256rrkz = 17653,
+  VPMOVSXBDZrm = 17654,
+  VPMOVSXBDZrmk = 17655,
+  VPMOVSXBDZrmkz = 17656,
+  VPMOVSXBDZrr = 17657,
+  VPMOVSXBDZrrk = 17658,
+  VPMOVSXBDZrrkz = 17659,
+  VPMOVSXBDrm = 17660,
+  VPMOVSXBDrr = 17661,
+  VPMOVSXBQYrm = 17662,
+  VPMOVSXBQYrr = 17663,
+  VPMOVSXBQZ128rm = 17664,
+  VPMOVSXBQZ128rmk = 17665,
+  VPMOVSXBQZ128rmkz = 17666,
+  VPMOVSXBQZ128rr = 17667,
+  VPMOVSXBQZ128rrk = 17668,
+  VPMOVSXBQZ128rrkz = 17669,
+  VPMOVSXBQZ256rm = 17670,
+  VPMOVSXBQZ256rmk = 17671,
+  VPMOVSXBQZ256rmkz = 17672,
+  VPMOVSXBQZ256rr = 17673,
+  VPMOVSXBQZ256rrk = 17674,
+  VPMOVSXBQZ256rrkz = 17675,
+  VPMOVSXBQZrm = 17676,
+  VPMOVSXBQZrmk = 17677,
+  VPMOVSXBQZrmkz = 17678,
+  VPMOVSXBQZrr = 17679,
+  VPMOVSXBQZrrk = 17680,
+  VPMOVSXBQZrrkz = 17681,
+  VPMOVSXBQrm = 17682,
+  VPMOVSXBQrr = 17683,
+  VPMOVSXBWYrm = 17684,
+  VPMOVSXBWYrr = 17685,
+  VPMOVSXBWZ128rm = 17686,
+  VPMOVSXBWZ128rmk = 17687,
+  VPMOVSXBWZ128rmkz = 17688,
+  VPMOVSXBWZ128rr = 17689,
+  VPMOVSXBWZ128rrk = 17690,
+  VPMOVSXBWZ128rrkz = 17691,
+  VPMOVSXBWZ256rm = 17692,
+  VPMOVSXBWZ256rmk = 17693,
+  VPMOVSXBWZ256rmkz = 17694,
+  VPMOVSXBWZ256rr = 17695,
+  VPMOVSXBWZ256rrk = 17696,
+  VPMOVSXBWZ256rrkz = 17697,
+  VPMOVSXBWZrm = 17698,
+  VPMOVSXBWZrmk = 17699,
+  VPMOVSXBWZrmkz = 17700,
+  VPMOVSXBWZrr = 17701,
+  VPMOVSXBWZrrk = 17702,
+  VPMOVSXBWZrrkz = 17703,
+  VPMOVSXBWrm = 17704,
+  VPMOVSXBWrr = 17705,
+  VPMOVSXDQYrm = 17706,
+  VPMOVSXDQYrr = 17707,
+  VPMOVSXDQZ128rm = 17708,
+  VPMOVSXDQZ128rmk = 17709,
+  VPMOVSXDQZ128rmkz = 17710,
+  VPMOVSXDQZ128rr = 17711,
+  VPMOVSXDQZ128rrk = 17712,
+  VPMOVSXDQZ128rrkz = 17713,
+  VPMOVSXDQZ256rm = 17714,
+  VPMOVSXDQZ256rmk = 17715,
+  VPMOVSXDQZ256rmkz = 17716,
+  VPMOVSXDQZ256rr = 17717,
+  VPMOVSXDQZ256rrk = 17718,
+  VPMOVSXDQZ256rrkz = 17719,
+  VPMOVSXDQZrm = 17720,
+  VPMOVSXDQZrmk = 17721,
+  VPMOVSXDQZrmkz = 17722,
+  VPMOVSXDQZrr = 17723,
+  VPMOVSXDQZrrk = 17724,
+  VPMOVSXDQZrrkz = 17725,
+  VPMOVSXDQrm = 17726,
+  VPMOVSXDQrr = 17727,
+  VPMOVSXWDYrm = 17728,
+  VPMOVSXWDYrr = 17729,
+  VPMOVSXWDZ128rm = 17730,
+  VPMOVSXWDZ128rmk = 17731,
+  VPMOVSXWDZ128rmkz = 17732,
+  VPMOVSXWDZ128rr = 17733,
+  VPMOVSXWDZ128rrk = 17734,
+  VPMOVSXWDZ128rrkz = 17735,
+  VPMOVSXWDZ256rm = 17736,
+  VPMOVSXWDZ256rmk = 17737,
+  VPMOVSXWDZ256rmkz = 17738,
+  VPMOVSXWDZ256rr = 17739,
+  VPMOVSXWDZ256rrk = 17740,
+  VPMOVSXWDZ256rrkz = 17741,
+  VPMOVSXWDZrm = 17742,
+  VPMOVSXWDZrmk = 17743,
+  VPMOVSXWDZrmkz = 17744,
+  VPMOVSXWDZrr = 17745,
+  VPMOVSXWDZrrk = 17746,
+  VPMOVSXWDZrrkz = 17747,
+  VPMOVSXWDrm = 17748,
+  VPMOVSXWDrr = 17749,
+  VPMOVSXWQYrm = 17750,
+  VPMOVSXWQYrr = 17751,
+  VPMOVSXWQZ128rm = 17752,
+  VPMOVSXWQZ128rmk = 17753,
+  VPMOVSXWQZ128rmkz = 17754,
+  VPMOVSXWQZ128rr = 17755,
+  VPMOVSXWQZ128rrk = 17756,
+  VPMOVSXWQZ128rrkz = 17757,
+  VPMOVSXWQZ256rm = 17758,
+  VPMOVSXWQZ256rmk = 17759,
+  VPMOVSXWQZ256rmkz = 17760,
+  VPMOVSXWQZ256rr = 17761,
+  VPMOVSXWQZ256rrk = 17762,
+  VPMOVSXWQZ256rrkz = 17763,
+  VPMOVSXWQZrm = 17764,
+  VPMOVSXWQZrmk = 17765,
+  VPMOVSXWQZrmkz = 17766,
+  VPMOVSXWQZrr = 17767,
+  VPMOVSXWQZrrk = 17768,
+  VPMOVSXWQZrrkz = 17769,
+  VPMOVSXWQrm = 17770,
+  VPMOVSXWQrr = 17771,
+  VPMOVUSDBZ128mr = 17772,
+  VPMOVUSDBZ128mrk = 17773,
+  VPMOVUSDBZ128rr = 17774,
+  VPMOVUSDBZ128rrk = 17775,
+  VPMOVUSDBZ128rrkz = 17776,
+  VPMOVUSDBZ256mr = 17777,
+  VPMOVUSDBZ256mrk = 17778,
+  VPMOVUSDBZ256rr = 17779,
+  VPMOVUSDBZ256rrk = 17780,
+  VPMOVUSDBZ256rrkz = 17781,
+  VPMOVUSDBZmr = 17782,
+  VPMOVUSDBZmrk = 17783,
+  VPMOVUSDBZrr = 17784,
+  VPMOVUSDBZrrk = 17785,
+  VPMOVUSDBZrrkz = 17786,
+  VPMOVUSDWZ128mr = 17787,
+  VPMOVUSDWZ128mrk = 17788,
+  VPMOVUSDWZ128rr = 17789,
+  VPMOVUSDWZ128rrk = 17790,
+  VPMOVUSDWZ128rrkz = 17791,
+  VPMOVUSDWZ256mr = 17792,
+  VPMOVUSDWZ256mrk = 17793,
+  VPMOVUSDWZ256rr = 17794,
+  VPMOVUSDWZ256rrk = 17795,
+  VPMOVUSDWZ256rrkz = 17796,
+  VPMOVUSDWZmr = 17797,
+  VPMOVUSDWZmrk = 17798,
+  VPMOVUSDWZrr = 17799,
+  VPMOVUSDWZrrk = 17800,
+  VPMOVUSDWZrrkz = 17801,
+  VPMOVUSQBZ128mr = 17802,
+  VPMOVUSQBZ128mrk = 17803,
+  VPMOVUSQBZ128rr = 17804,
+  VPMOVUSQBZ128rrk = 17805,
+  VPMOVUSQBZ128rrkz = 17806,
+  VPMOVUSQBZ256mr = 17807,
+  VPMOVUSQBZ256mrk = 17808,
+  VPMOVUSQBZ256rr = 17809,
+  VPMOVUSQBZ256rrk = 17810,
+  VPMOVUSQBZ256rrkz = 17811,
+  VPMOVUSQBZmr = 17812,
+  VPMOVUSQBZmrk = 17813,
+  VPMOVUSQBZrr = 17814,
+  VPMOVUSQBZrrk = 17815,
+  VPMOVUSQBZrrkz = 17816,
+  VPMOVUSQDZ128mr = 17817,
+  VPMOVUSQDZ128mrk = 17818,
+  VPMOVUSQDZ128rr = 17819,
+  VPMOVUSQDZ128rrk = 17820,
+  VPMOVUSQDZ128rrkz = 17821,
+  VPMOVUSQDZ256mr = 17822,
+  VPMOVUSQDZ256mrk = 17823,
+  VPMOVUSQDZ256rr = 17824,
+  VPMOVUSQDZ256rrk = 17825,
+  VPMOVUSQDZ256rrkz = 17826,
+  VPMOVUSQDZmr = 17827,
+  VPMOVUSQDZmrk = 17828,
+  VPMOVUSQDZrr = 17829,
+  VPMOVUSQDZrrk = 17830,
+  VPMOVUSQDZrrkz = 17831,
+  VPMOVUSQWZ128mr = 17832,
+  VPMOVUSQWZ128mrk = 17833,
+  VPMOVUSQWZ128rr = 17834,
+  VPMOVUSQWZ128rrk = 17835,
+  VPMOVUSQWZ128rrkz = 17836,
+  VPMOVUSQWZ256mr = 17837,
+  VPMOVUSQWZ256mrk = 17838,
+  VPMOVUSQWZ256rr = 17839,
+  VPMOVUSQWZ256rrk = 17840,
+  VPMOVUSQWZ256rrkz = 17841,
+  VPMOVUSQWZmr = 17842,
+  VPMOVUSQWZmrk = 17843,
+  VPMOVUSQWZrr = 17844,
+  VPMOVUSQWZrrk = 17845,
+  VPMOVUSQWZrrkz = 17846,
+  VPMOVUSWBZ128mr = 17847,
+  VPMOVUSWBZ128mrk = 17848,
+  VPMOVUSWBZ128rr = 17849,
+  VPMOVUSWBZ128rrk = 17850,
+  VPMOVUSWBZ128rrkz = 17851,
+  VPMOVUSWBZ256mr = 17852,
+  VPMOVUSWBZ256mrk = 17853,
+  VPMOVUSWBZ256rr = 17854,
+  VPMOVUSWBZ256rrk = 17855,
+  VPMOVUSWBZ256rrkz = 17856,
+  VPMOVUSWBZmr = 17857,
+  VPMOVUSWBZmrk = 17858,
+  VPMOVUSWBZrr = 17859,
+  VPMOVUSWBZrrk = 17860,
+  VPMOVUSWBZrrkz = 17861,
+  VPMOVW2MZ128kr = 17862,
+  VPMOVW2MZ256kr = 17863,
+  VPMOVW2MZkr = 17864,
+  VPMOVWBZ128mr = 17865,
+  VPMOVWBZ128mrk = 17866,
+  VPMOVWBZ128rr = 17867,
+  VPMOVWBZ128rrk = 17868,
+  VPMOVWBZ128rrkz = 17869,
+  VPMOVWBZ256mr = 17870,
+  VPMOVWBZ256mrk = 17871,
+  VPMOVWBZ256rr = 17872,
+  VPMOVWBZ256rrk = 17873,
+  VPMOVWBZ256rrkz = 17874,
+  VPMOVWBZmr = 17875,
+  VPMOVWBZmrk = 17876,
+  VPMOVWBZrr = 17877,
+  VPMOVWBZrrk = 17878,
+  VPMOVWBZrrkz = 17879,
+  VPMOVZXBDYrm = 17880,
+  VPMOVZXBDYrr = 17881,
+  VPMOVZXBDZ128rm = 17882,
+  VPMOVZXBDZ128rmk = 17883,
+  VPMOVZXBDZ128rmkz = 17884,
+  VPMOVZXBDZ128rr = 17885,
+  VPMOVZXBDZ128rrk = 17886,
+  VPMOVZXBDZ128rrkz = 17887,
+  VPMOVZXBDZ256rm = 17888,
+  VPMOVZXBDZ256rmk = 17889,
+  VPMOVZXBDZ256rmkz = 17890,
+  VPMOVZXBDZ256rr = 17891,
+  VPMOVZXBDZ256rrk = 17892,
+  VPMOVZXBDZ256rrkz = 17893,
+  VPMOVZXBDZrm = 17894,
+  VPMOVZXBDZrmk = 17895,
+  VPMOVZXBDZrmkz = 17896,
+  VPMOVZXBDZrr = 17897,
+  VPMOVZXBDZrrk = 17898,
+  VPMOVZXBDZrrkz = 17899,
+  VPMOVZXBDrm = 17900,
+  VPMOVZXBDrr = 17901,
+  VPMOVZXBQYrm = 17902,
+  VPMOVZXBQYrr = 17903,
+  VPMOVZXBQZ128rm = 17904,
+  VPMOVZXBQZ128rmk = 17905,
+  VPMOVZXBQZ128rmkz = 17906,
+  VPMOVZXBQZ128rr = 17907,
+  VPMOVZXBQZ128rrk = 17908,
+  VPMOVZXBQZ128rrkz = 17909,
+  VPMOVZXBQZ256rm = 17910,
+  VPMOVZXBQZ256rmk = 17911,
+  VPMOVZXBQZ256rmkz = 17912,
+  VPMOVZXBQZ256rr = 17913,
+  VPMOVZXBQZ256rrk = 17914,
+  VPMOVZXBQZ256rrkz = 17915,
+  VPMOVZXBQZrm = 17916,
+  VPMOVZXBQZrmk = 17917,
+  VPMOVZXBQZrmkz = 17918,
+  VPMOVZXBQZrr = 17919,
+  VPMOVZXBQZrrk = 17920,
+  VPMOVZXBQZrrkz = 17921,
+  VPMOVZXBQrm = 17922,
+  VPMOVZXBQrr = 17923,
+  VPMOVZXBWYrm = 17924,
+  VPMOVZXBWYrr = 17925,
+  VPMOVZXBWZ128rm = 17926,
+  VPMOVZXBWZ128rmk = 17927,
+  VPMOVZXBWZ128rmkz = 17928,
+  VPMOVZXBWZ128rr = 17929,
+  VPMOVZXBWZ128rrk = 17930,
+  VPMOVZXBWZ128rrkz = 17931,
+  VPMOVZXBWZ256rm = 17932,
+  VPMOVZXBWZ256rmk = 17933,
+  VPMOVZXBWZ256rmkz = 17934,
+  VPMOVZXBWZ256rr = 17935,
+  VPMOVZXBWZ256rrk = 17936,
+  VPMOVZXBWZ256rrkz = 17937,
+  VPMOVZXBWZrm = 17938,
+  VPMOVZXBWZrmk = 17939,
+  VPMOVZXBWZrmkz = 17940,
+  VPMOVZXBWZrr = 17941,
+  VPMOVZXBWZrrk = 17942,
+  VPMOVZXBWZrrkz = 17943,
+  VPMOVZXBWrm = 17944,
+  VPMOVZXBWrr = 17945,
+  VPMOVZXDQYrm = 17946,
+  VPMOVZXDQYrr = 17947,
+  VPMOVZXDQZ128rm = 17948,
+  VPMOVZXDQZ128rmk = 17949,
+  VPMOVZXDQZ128rmkz = 17950,
+  VPMOVZXDQZ128rr = 17951,
+  VPMOVZXDQZ128rrk = 17952,
+  VPMOVZXDQZ128rrkz = 17953,
+  VPMOVZXDQZ256rm = 17954,
+  VPMOVZXDQZ256rmk = 17955,
+  VPMOVZXDQZ256rmkz = 17956,
+  VPMOVZXDQZ256rr = 17957,
+  VPMOVZXDQZ256rrk = 17958,
+  VPMOVZXDQZ256rrkz = 17959,
+  VPMOVZXDQZrm = 17960,
+  VPMOVZXDQZrmk = 17961,
+  VPMOVZXDQZrmkz = 17962,
+  VPMOVZXDQZrr = 17963,
+  VPMOVZXDQZrrk = 17964,
+  VPMOVZXDQZrrkz = 17965,
+  VPMOVZXDQrm = 17966,
+  VPMOVZXDQrr = 17967,
+  VPMOVZXWDYrm = 17968,
+  VPMOVZXWDYrr = 17969,
+  VPMOVZXWDZ128rm = 17970,
+  VPMOVZXWDZ128rmk = 17971,
+  VPMOVZXWDZ128rmkz = 17972,
+  VPMOVZXWDZ128rr = 17973,
+  VPMOVZXWDZ128rrk = 17974,
+  VPMOVZXWDZ128rrkz = 17975,
+  VPMOVZXWDZ256rm = 17976,
+  VPMOVZXWDZ256rmk = 17977,
+  VPMOVZXWDZ256rmkz = 17978,
+  VPMOVZXWDZ256rr = 17979,
+  VPMOVZXWDZ256rrk = 17980,
+  VPMOVZXWDZ256rrkz = 17981,
+  VPMOVZXWDZrm = 17982,
+  VPMOVZXWDZrmk = 17983,
+  VPMOVZXWDZrmkz = 17984,
+  VPMOVZXWDZrr = 17985,
+  VPMOVZXWDZrrk = 17986,
+  VPMOVZXWDZrrkz = 17987,
+  VPMOVZXWDrm = 17988,
+  VPMOVZXWDrr = 17989,
+  VPMOVZXWQYrm = 17990,
+  VPMOVZXWQYrr = 17991,
+  VPMOVZXWQZ128rm = 17992,
+  VPMOVZXWQZ128rmk = 17993,
+  VPMOVZXWQZ128rmkz = 17994,
+  VPMOVZXWQZ128rr = 17995,
+  VPMOVZXWQZ128rrk = 17996,
+  VPMOVZXWQZ128rrkz = 17997,
+  VPMOVZXWQZ256rm = 17998,
+  VPMOVZXWQZ256rmk = 17999,
+  VPMOVZXWQZ256rmkz = 18000,
+  VPMOVZXWQZ256rr = 18001,
+  VPMOVZXWQZ256rrk = 18002,
+  VPMOVZXWQZ256rrkz = 18003,
+  VPMOVZXWQZrm = 18004,
+  VPMOVZXWQZrmk = 18005,
+  VPMOVZXWQZrmkz = 18006,
+  VPMOVZXWQZrr = 18007,
+  VPMOVZXWQZrrk = 18008,
+  VPMOVZXWQZrrkz = 18009,
+  VPMOVZXWQrm = 18010,
+  VPMOVZXWQrr = 18011,
+  VPMULDQYrm = 18012,
+  VPMULDQYrr = 18013,
+  VPMULDQZ128rm = 18014,
+  VPMULDQZ128rmb = 18015,
+  VPMULDQZ128rmbk = 18016,
+  VPMULDQZ128rmbkz = 18017,
+  VPMULDQZ128rmk = 18018,
+  VPMULDQZ128rmkz = 18019,
+  VPMULDQZ128rr = 18020,
+  VPMULDQZ128rrk = 18021,
+  VPMULDQZ128rrkz = 18022,
+  VPMULDQZ256rm = 18023,
+  VPMULDQZ256rmb = 18024,
+  VPMULDQZ256rmbk = 18025,
+  VPMULDQZ256rmbkz = 18026,
+  VPMULDQZ256rmk = 18027,
+  VPMULDQZ256rmkz = 18028,
+  VPMULDQZ256rr = 18029,
+  VPMULDQZ256rrk = 18030,
+  VPMULDQZ256rrkz = 18031,
+  VPMULDQZrm = 18032,
+  VPMULDQZrmb = 18033,
+  VPMULDQZrmbk = 18034,
+  VPMULDQZrmbkz = 18035,
+  VPMULDQZrmk = 18036,
+  VPMULDQZrmkz = 18037,
+  VPMULDQZrr = 18038,
+  VPMULDQZrrk = 18039,
+  VPMULDQZrrkz = 18040,
+  VPMULDQrm = 18041,
+  VPMULDQrr = 18042,
+  VPMULHRSWYrm = 18043,
+  VPMULHRSWYrr = 18044,
+  VPMULHRSWZ128rm = 18045,
+  VPMULHRSWZ128rmk = 18046,
+  VPMULHRSWZ128rmkz = 18047,
+  VPMULHRSWZ128rr = 18048,
+  VPMULHRSWZ128rrk = 18049,
+  VPMULHRSWZ128rrkz = 18050,
+  VPMULHRSWZ256rm = 18051,
+  VPMULHRSWZ256rmk = 18052,
+  VPMULHRSWZ256rmkz = 18053,
+  VPMULHRSWZ256rr = 18054,
+  VPMULHRSWZ256rrk = 18055,
+  VPMULHRSWZ256rrkz = 18056,
+  VPMULHRSWZrm = 18057,
+  VPMULHRSWZrmk = 18058,
+  VPMULHRSWZrmkz = 18059,
+  VPMULHRSWZrr = 18060,
+  VPMULHRSWZrrk = 18061,
+  VPMULHRSWZrrkz = 18062,
+  VPMULHRSWrm = 18063,
+  VPMULHRSWrr = 18064,
+  VPMULHUWYrm = 18065,
+  VPMULHUWYrr = 18066,
+  VPMULHUWZ128rm = 18067,
+  VPMULHUWZ128rmk = 18068,
+  VPMULHUWZ128rmkz = 18069,
+  VPMULHUWZ128rr = 18070,
+  VPMULHUWZ128rrk = 18071,
+  VPMULHUWZ128rrkz = 18072,
+  VPMULHUWZ256rm = 18073,
+  VPMULHUWZ256rmk = 18074,
+  VPMULHUWZ256rmkz = 18075,
+  VPMULHUWZ256rr = 18076,
+  VPMULHUWZ256rrk = 18077,
+  VPMULHUWZ256rrkz = 18078,
+  VPMULHUWZrm = 18079,
+  VPMULHUWZrmk = 18080,
+  VPMULHUWZrmkz = 18081,
+  VPMULHUWZrr = 18082,
+  VPMULHUWZrrk = 18083,
+  VPMULHUWZrrkz = 18084,
+  VPMULHUWrm = 18085,
+  VPMULHUWrr = 18086,
+  VPMULHWYrm = 18087,
+  VPMULHWYrr = 18088,
+  VPMULHWZ128rm = 18089,
+  VPMULHWZ128rmk = 18090,
+  VPMULHWZ128rmkz = 18091,
+  VPMULHWZ128rr = 18092,
+  VPMULHWZ128rrk = 18093,
+  VPMULHWZ128rrkz = 18094,
+  VPMULHWZ256rm = 18095,
+  VPMULHWZ256rmk = 18096,
+  VPMULHWZ256rmkz = 18097,
+  VPMULHWZ256rr = 18098,
+  VPMULHWZ256rrk = 18099,
+  VPMULHWZ256rrkz = 18100,
+  VPMULHWZrm = 18101,
+  VPMULHWZrmk = 18102,
+  VPMULHWZrmkz = 18103,
+  VPMULHWZrr = 18104,
+  VPMULHWZrrk = 18105,
+  VPMULHWZrrkz = 18106,
+  VPMULHWrm = 18107,
+  VPMULHWrr = 18108,
+  VPMULLDYrm = 18109,
+  VPMULLDYrr = 18110,
+  VPMULLDZ128rm = 18111,
+  VPMULLDZ128rmb = 18112,
+  VPMULLDZ128rmbk = 18113,
+  VPMULLDZ128rmbkz = 18114,
+  VPMULLDZ128rmk = 18115,
+  VPMULLDZ128rmkz = 18116,
+  VPMULLDZ128rr = 18117,
+  VPMULLDZ128rrk = 18118,
+  VPMULLDZ128rrkz = 18119,
+  VPMULLDZ256rm = 18120,
+  VPMULLDZ256rmb = 18121,
+  VPMULLDZ256rmbk = 18122,
+  VPMULLDZ256rmbkz = 18123,
+  VPMULLDZ256rmk = 18124,
+  VPMULLDZ256rmkz = 18125,
+  VPMULLDZ256rr = 18126,
+  VPMULLDZ256rrk = 18127,
+  VPMULLDZ256rrkz = 18128,
+  VPMULLDZrm = 18129,
+  VPMULLDZrmb = 18130,
+  VPMULLDZrmbk = 18131,
+  VPMULLDZrmbkz = 18132,
+  VPMULLDZrmk = 18133,
+  VPMULLDZrmkz = 18134,
+  VPMULLDZrr = 18135,
+  VPMULLDZrrk = 18136,
+  VPMULLDZrrkz = 18137,
+  VPMULLDrm = 18138,
+  VPMULLDrr = 18139,
+  VPMULLQZ128rm = 18140,
+  VPMULLQZ128rmb = 18141,
+  VPMULLQZ128rmbk = 18142,
+  VPMULLQZ128rmbkz = 18143,
+  VPMULLQZ128rmk = 18144,
+  VPMULLQZ128rmkz = 18145,
+  VPMULLQZ128rr = 18146,
+  VPMULLQZ128rrk = 18147,
+  VPMULLQZ128rrkz = 18148,
+  VPMULLQZ256rm = 18149,
+  VPMULLQZ256rmb = 18150,
+  VPMULLQZ256rmbk = 18151,
+  VPMULLQZ256rmbkz = 18152,
+  VPMULLQZ256rmk = 18153,
+  VPMULLQZ256rmkz = 18154,
+  VPMULLQZ256rr = 18155,
+  VPMULLQZ256rrk = 18156,
+  VPMULLQZ256rrkz = 18157,
+  VPMULLQZrm = 18158,
+  VPMULLQZrmb = 18159,
+  VPMULLQZrmbk = 18160,
+  VPMULLQZrmbkz = 18161,
+  VPMULLQZrmk = 18162,
+  VPMULLQZrmkz = 18163,
+  VPMULLQZrr = 18164,
+  VPMULLQZrrk = 18165,
+  VPMULLQZrrkz = 18166,
+  VPMULLWYrm = 18167,
+  VPMULLWYrr = 18168,
+  VPMULLWZ128rm = 18169,
+  VPMULLWZ128rmk = 18170,
+  VPMULLWZ128rmkz = 18171,
+  VPMULLWZ128rr = 18172,
+  VPMULLWZ128rrk = 18173,
+  VPMULLWZ128rrkz = 18174,
+  VPMULLWZ256rm = 18175,
+  VPMULLWZ256rmk = 18176,
+  VPMULLWZ256rmkz = 18177,
+  VPMULLWZ256rr = 18178,
+  VPMULLWZ256rrk = 18179,
+  VPMULLWZ256rrkz = 18180,
+  VPMULLWZrm = 18181,
+  VPMULLWZrmk = 18182,
+  VPMULLWZrmkz = 18183,
+  VPMULLWZrr = 18184,
+  VPMULLWZrrk = 18185,
+  VPMULLWZrrkz = 18186,
+  VPMULLWrm = 18187,
+  VPMULLWrr = 18188,
+  VPMULTISHIFTQBZ128rm = 18189,
+  VPMULTISHIFTQBZ128rmb = 18190,
+  VPMULTISHIFTQBZ128rmbk = 18191,
+  VPMULTISHIFTQBZ128rmbkz = 18192,
+  VPMULTISHIFTQBZ128rmk = 18193,
+  VPMULTISHIFTQBZ128rmkz = 18194,
+  VPMULTISHIFTQBZ128rr = 18195,
+  VPMULTISHIFTQBZ128rrk = 18196,
+  VPMULTISHIFTQBZ128rrkz = 18197,
+  VPMULTISHIFTQBZ256rm = 18198,
+  VPMULTISHIFTQBZ256rmb = 18199,
+  VPMULTISHIFTQBZ256rmbk = 18200,
+  VPMULTISHIFTQBZ256rmbkz = 18201,
+  VPMULTISHIFTQBZ256rmk = 18202,
+  VPMULTISHIFTQBZ256rmkz = 18203,
+  VPMULTISHIFTQBZ256rr = 18204,
+  VPMULTISHIFTQBZ256rrk = 18205,
+  VPMULTISHIFTQBZ256rrkz = 18206,
+  VPMULTISHIFTQBZrm = 18207,
+  VPMULTISHIFTQBZrmb = 18208,
+  VPMULTISHIFTQBZrmbk = 18209,
+  VPMULTISHIFTQBZrmbkz = 18210,
+  VPMULTISHIFTQBZrmk = 18211,
+  VPMULTISHIFTQBZrmkz = 18212,
+  VPMULTISHIFTQBZrr = 18213,
+  VPMULTISHIFTQBZrrk = 18214,
+  VPMULTISHIFTQBZrrkz = 18215,
+  VPMULUDQYrm = 18216,
+  VPMULUDQYrr = 18217,
+  VPMULUDQZ128rm = 18218,
+  VPMULUDQZ128rmb = 18219,
+  VPMULUDQZ128rmbk = 18220,
+  VPMULUDQZ128rmbkz = 18221,
+  VPMULUDQZ128rmk = 18222,
+  VPMULUDQZ128rmkz = 18223,
+  VPMULUDQZ128rr = 18224,
+  VPMULUDQZ128rrk = 18225,
+  VPMULUDQZ128rrkz = 18226,
+  VPMULUDQZ256rm = 18227,
+  VPMULUDQZ256rmb = 18228,
+  VPMULUDQZ256rmbk = 18229,
+  VPMULUDQZ256rmbkz = 18230,
+  VPMULUDQZ256rmk = 18231,
+  VPMULUDQZ256rmkz = 18232,
+  VPMULUDQZ256rr = 18233,
+  VPMULUDQZ256rrk = 18234,
+  VPMULUDQZ256rrkz = 18235,
+  VPMULUDQZrm = 18236,
+  VPMULUDQZrmb = 18237,
+  VPMULUDQZrmbk = 18238,
+  VPMULUDQZrmbkz = 18239,
+  VPMULUDQZrmk = 18240,
+  VPMULUDQZrmkz = 18241,
+  VPMULUDQZrr = 18242,
+  VPMULUDQZrrk = 18243,
+  VPMULUDQZrrkz = 18244,
+  VPMULUDQrm = 18245,
+  VPMULUDQrr = 18246,
+  VPOPCNTBZ128rm = 18247,
+  VPOPCNTBZ128rmk = 18248,
+  VPOPCNTBZ128rmkz = 18249,
+  VPOPCNTBZ128rr = 18250,
+  VPOPCNTBZ128rrk = 18251,
+  VPOPCNTBZ128rrkz = 18252,
+  VPOPCNTBZ256rm = 18253,
+  VPOPCNTBZ256rmk = 18254,
+  VPOPCNTBZ256rmkz = 18255,
+  VPOPCNTBZ256rr = 18256,
+  VPOPCNTBZ256rrk = 18257,
+  VPOPCNTBZ256rrkz = 18258,
+  VPOPCNTBZrm = 18259,
+  VPOPCNTBZrmk = 18260,
+  VPOPCNTBZrmkz = 18261,
+  VPOPCNTBZrr = 18262,
+  VPOPCNTBZrrk = 18263,
+  VPOPCNTBZrrkz = 18264,
+  VPOPCNTDZ128rm = 18265,
+  VPOPCNTDZ128rmb = 18266,
+  VPOPCNTDZ128rmbk = 18267,
+  VPOPCNTDZ128rmbkz = 18268,
+  VPOPCNTDZ128rmk = 18269,
+  VPOPCNTDZ128rmkz = 18270,
+  VPOPCNTDZ128rr = 18271,
+  VPOPCNTDZ128rrk = 18272,
+  VPOPCNTDZ128rrkz = 18273,
+  VPOPCNTDZ256rm = 18274,
+  VPOPCNTDZ256rmb = 18275,
+  VPOPCNTDZ256rmbk = 18276,
+  VPOPCNTDZ256rmbkz = 18277,
+  VPOPCNTDZ256rmk = 18278,
+  VPOPCNTDZ256rmkz = 18279,
+  VPOPCNTDZ256rr = 18280,
+  VPOPCNTDZ256rrk = 18281,
+  VPOPCNTDZ256rrkz = 18282,
+  VPOPCNTDZrm = 18283,
+  VPOPCNTDZrmb = 18284,
+  VPOPCNTDZrmbk = 18285,
+  VPOPCNTDZrmbkz = 18286,
+  VPOPCNTDZrmk = 18287,
+  VPOPCNTDZrmkz = 18288,
+  VPOPCNTDZrr = 18289,
+  VPOPCNTDZrrk = 18290,
+  VPOPCNTDZrrkz = 18291,
+  VPOPCNTQZ128rm = 18292,
+  VPOPCNTQZ128rmb = 18293,
+  VPOPCNTQZ128rmbk = 18294,
+  VPOPCNTQZ128rmbkz = 18295,
+  VPOPCNTQZ128rmk = 18296,
+  VPOPCNTQZ128rmkz = 18297,
+  VPOPCNTQZ128rr = 18298,
+  VPOPCNTQZ128rrk = 18299,
+  VPOPCNTQZ128rrkz = 18300,
+  VPOPCNTQZ256rm = 18301,
+  VPOPCNTQZ256rmb = 18302,
+  VPOPCNTQZ256rmbk = 18303,
+  VPOPCNTQZ256rmbkz = 18304,
+  VPOPCNTQZ256rmk = 18305,
+  VPOPCNTQZ256rmkz = 18306,
+  VPOPCNTQZ256rr = 18307,
+  VPOPCNTQZ256rrk = 18308,
+  VPOPCNTQZ256rrkz = 18309,
+  VPOPCNTQZrm = 18310,
+  VPOPCNTQZrmb = 18311,
+  VPOPCNTQZrmbk = 18312,
+  VPOPCNTQZrmbkz = 18313,
+  VPOPCNTQZrmk = 18314,
+  VPOPCNTQZrmkz = 18315,
+  VPOPCNTQZrr = 18316,
+  VPOPCNTQZrrk = 18317,
+  VPOPCNTQZrrkz = 18318,
+  VPOPCNTWZ128rm = 18319,
+  VPOPCNTWZ128rmk = 18320,
+  VPOPCNTWZ128rmkz = 18321,
+  VPOPCNTWZ128rr = 18322,
+  VPOPCNTWZ128rrk = 18323,
+  VPOPCNTWZ128rrkz = 18324,
+  VPOPCNTWZ256rm = 18325,
+  VPOPCNTWZ256rmk = 18326,
+  VPOPCNTWZ256rmkz = 18327,
+  VPOPCNTWZ256rr = 18328,
+  VPOPCNTWZ256rrk = 18329,
+  VPOPCNTWZ256rrkz = 18330,
+  VPOPCNTWZrm = 18331,
+  VPOPCNTWZrmk = 18332,
+  VPOPCNTWZrmkz = 18333,
+  VPOPCNTWZrr = 18334,
+  VPOPCNTWZrrk = 18335,
+  VPOPCNTWZrrkz = 18336,
+  VPORDZ128rm = 18337,
+  VPORDZ128rmb = 18338,
+  VPORDZ128rmbk = 18339,
+  VPORDZ128rmbkz = 18340,
+  VPORDZ128rmk = 18341,
+  VPORDZ128rmkz = 18342,
+  VPORDZ128rr = 18343,
+  VPORDZ128rrk = 18344,
+  VPORDZ128rrkz = 18345,
+  VPORDZ256rm = 18346,
+  VPORDZ256rmb = 18347,
+  VPORDZ256rmbk = 18348,
+  VPORDZ256rmbkz = 18349,
+  VPORDZ256rmk = 18350,
+  VPORDZ256rmkz = 18351,
+  VPORDZ256rr = 18352,
+  VPORDZ256rrk = 18353,
+  VPORDZ256rrkz = 18354,
+  VPORDZrm = 18355,
+  VPORDZrmb = 18356,
+  VPORDZrmbk = 18357,
+  VPORDZrmbkz = 18358,
+  VPORDZrmk = 18359,
+  VPORDZrmkz = 18360,
+  VPORDZrr = 18361,
+  VPORDZrrk = 18362,
+  VPORDZrrkz = 18363,
+  VPORQZ128rm = 18364,
+  VPORQZ128rmb = 18365,
+  VPORQZ128rmbk = 18366,
+  VPORQZ128rmbkz = 18367,
+  VPORQZ128rmk = 18368,
+  VPORQZ128rmkz = 18369,
+  VPORQZ128rr = 18370,
+  VPORQZ128rrk = 18371,
+  VPORQZ128rrkz = 18372,
+  VPORQZ256rm = 18373,
+  VPORQZ256rmb = 18374,
+  VPORQZ256rmbk = 18375,
+  VPORQZ256rmbkz = 18376,
+  VPORQZ256rmk = 18377,
+  VPORQZ256rmkz = 18378,
+  VPORQZ256rr = 18379,
+  VPORQZ256rrk = 18380,
+  VPORQZ256rrkz = 18381,
+  VPORQZrm = 18382,
+  VPORQZrmb = 18383,
+  VPORQZrmbk = 18384,
+  VPORQZrmbkz = 18385,
+  VPORQZrmk = 18386,
+  VPORQZrmkz = 18387,
+  VPORQZrr = 18388,
+  VPORQZrrk = 18389,
+  VPORQZrrkz = 18390,
+  VPORYrm = 18391,
+  VPORYrr = 18392,
+  VPORrm = 18393,
+  VPORrr = 18394,
+  VPPERMrmr = 18395,
+  VPPERMrrm = 18396,
+  VPPERMrrr = 18397,
+  VPPERMrrr_REV = 18398,
+  VPROLDZ128mbi = 18399,
+  VPROLDZ128mbik = 18400,
+  VPROLDZ128mbikz = 18401,
+  VPROLDZ128mi = 18402,
+  VPROLDZ128mik = 18403,
+  VPROLDZ128mikz = 18404,
+  VPROLDZ128ri = 18405,
+  VPROLDZ128rik = 18406,
+  VPROLDZ128rikz = 18407,
+  VPROLDZ256mbi = 18408,
+  VPROLDZ256mbik = 18409,
+  VPROLDZ256mbikz = 18410,
+  VPROLDZ256mi = 18411,
+  VPROLDZ256mik = 18412,
+  VPROLDZ256mikz = 18413,
+  VPROLDZ256ri = 18414,
+  VPROLDZ256rik = 18415,
+  VPROLDZ256rikz = 18416,
+  VPROLDZmbi = 18417,
+  VPROLDZmbik = 18418,
+  VPROLDZmbikz = 18419,
+  VPROLDZmi = 18420,
+  VPROLDZmik = 18421,
+  VPROLDZmikz = 18422,
+  VPROLDZri = 18423,
+  VPROLDZrik = 18424,
+  VPROLDZrikz = 18425,
+  VPROLQZ128mbi = 18426,
+  VPROLQZ128mbik = 18427,
+  VPROLQZ128mbikz = 18428,
+  VPROLQZ128mi = 18429,
+  VPROLQZ128mik = 18430,
+  VPROLQZ128mikz = 18431,
+  VPROLQZ128ri = 18432,
+  VPROLQZ128rik = 18433,
+  VPROLQZ128rikz = 18434,
+  VPROLQZ256mbi = 18435,
+  VPROLQZ256mbik = 18436,
+  VPROLQZ256mbikz = 18437,
+  VPROLQZ256mi = 18438,
+  VPROLQZ256mik = 18439,
+  VPROLQZ256mikz = 18440,
+  VPROLQZ256ri = 18441,
+  VPROLQZ256rik = 18442,
+  VPROLQZ256rikz = 18443,
+  VPROLQZmbi = 18444,
+  VPROLQZmbik = 18445,
+  VPROLQZmbikz = 18446,
+  VPROLQZmi = 18447,
+  VPROLQZmik = 18448,
+  VPROLQZmikz = 18449,
+  VPROLQZri = 18450,
+  VPROLQZrik = 18451,
+  VPROLQZrikz = 18452,
+  VPROLVDZ128rm = 18453,
+  VPROLVDZ128rmb = 18454,
+  VPROLVDZ128rmbk = 18455,
+  VPROLVDZ128rmbkz = 18456,
+  VPROLVDZ128rmk = 18457,
+  VPROLVDZ128rmkz = 18458,
+  VPROLVDZ128rr = 18459,
+  VPROLVDZ128rrk = 18460,
+  VPROLVDZ128rrkz = 18461,
+  VPROLVDZ256rm = 18462,
+  VPROLVDZ256rmb = 18463,
+  VPROLVDZ256rmbk = 18464,
+  VPROLVDZ256rmbkz = 18465,
+  VPROLVDZ256rmk = 18466,
+  VPROLVDZ256rmkz = 18467,
+  VPROLVDZ256rr = 18468,
+  VPROLVDZ256rrk = 18469,
+  VPROLVDZ256rrkz = 18470,
+  VPROLVDZrm = 18471,
+  VPROLVDZrmb = 18472,
+  VPROLVDZrmbk = 18473,
+  VPROLVDZrmbkz = 18474,
+  VPROLVDZrmk = 18475,
+  VPROLVDZrmkz = 18476,
+  VPROLVDZrr = 18477,
+  VPROLVDZrrk = 18478,
+  VPROLVDZrrkz = 18479,
+  VPROLVQZ128rm = 18480,
+  VPROLVQZ128rmb = 18481,
+  VPROLVQZ128rmbk = 18482,
+  VPROLVQZ128rmbkz = 18483,
+  VPROLVQZ128rmk = 18484,
+  VPROLVQZ128rmkz = 18485,
+  VPROLVQZ128rr = 18486,
+  VPROLVQZ128rrk = 18487,
+  VPROLVQZ128rrkz = 18488,
+  VPROLVQZ256rm = 18489,
+  VPROLVQZ256rmb = 18490,
+  VPROLVQZ256rmbk = 18491,
+  VPROLVQZ256rmbkz = 18492,
+  VPROLVQZ256rmk = 18493,
+  VPROLVQZ256rmkz = 18494,
+  VPROLVQZ256rr = 18495,
+  VPROLVQZ256rrk = 18496,
+  VPROLVQZ256rrkz = 18497,
+  VPROLVQZrm = 18498,
+  VPROLVQZrmb = 18499,
+  VPROLVQZrmbk = 18500,
+  VPROLVQZrmbkz = 18501,
+  VPROLVQZrmk = 18502,
+  VPROLVQZrmkz = 18503,
+  VPROLVQZrr = 18504,
+  VPROLVQZrrk = 18505,
+  VPROLVQZrrkz = 18506,
+  VPRORDZ128mbi = 18507,
+  VPRORDZ128mbik = 18508,
+  VPRORDZ128mbikz = 18509,
+  VPRORDZ128mi = 18510,
+  VPRORDZ128mik = 18511,
+  VPRORDZ128mikz = 18512,
+  VPRORDZ128ri = 18513,
+  VPRORDZ128rik = 18514,
+  VPRORDZ128rikz = 18515,
+  VPRORDZ256mbi = 18516,
+  VPRORDZ256mbik = 18517,
+  VPRORDZ256mbikz = 18518,
+  VPRORDZ256mi = 18519,
+  VPRORDZ256mik = 18520,
+  VPRORDZ256mikz = 18521,
+  VPRORDZ256ri = 18522,
+  VPRORDZ256rik = 18523,
+  VPRORDZ256rikz = 18524,
+  VPRORDZmbi = 18525,
+  VPRORDZmbik = 18526,
+  VPRORDZmbikz = 18527,
+  VPRORDZmi = 18528,
+  VPRORDZmik = 18529,
+  VPRORDZmikz = 18530,
+  VPRORDZri = 18531,
+  VPRORDZrik = 18532,
+  VPRORDZrikz = 18533,
+  VPRORQZ128mbi = 18534,
+  VPRORQZ128mbik = 18535,
+  VPRORQZ128mbikz = 18536,
+  VPRORQZ128mi = 18537,
+  VPRORQZ128mik = 18538,
+  VPRORQZ128mikz = 18539,
+  VPRORQZ128ri = 18540,
+  VPRORQZ128rik = 18541,
+  VPRORQZ128rikz = 18542,
+  VPRORQZ256mbi = 18543,
+  VPRORQZ256mbik = 18544,
+  VPRORQZ256mbikz = 18545,
+  VPRORQZ256mi = 18546,
+  VPRORQZ256mik = 18547,
+  VPRORQZ256mikz = 18548,
+  VPRORQZ256ri = 18549,
+  VPRORQZ256rik = 18550,
+  VPRORQZ256rikz = 18551,
+  VPRORQZmbi = 18552,
+  VPRORQZmbik = 18553,
+  VPRORQZmbikz = 18554,
+  VPRORQZmi = 18555,
+  VPRORQZmik = 18556,
+  VPRORQZmikz = 18557,
+  VPRORQZri = 18558,
+  VPRORQZrik = 18559,
+  VPRORQZrikz = 18560,
+  VPRORVDZ128rm = 18561,
+  VPRORVDZ128rmb = 18562,
+  VPRORVDZ128rmbk = 18563,
+  VPRORVDZ128rmbkz = 18564,
+  VPRORVDZ128rmk = 18565,
+  VPRORVDZ128rmkz = 18566,
+  VPRORVDZ128rr = 18567,
+  VPRORVDZ128rrk = 18568,
+  VPRORVDZ128rrkz = 18569,
+  VPRORVDZ256rm = 18570,
+  VPRORVDZ256rmb = 18571,
+  VPRORVDZ256rmbk = 18572,
+  VPRORVDZ256rmbkz = 18573,
+  VPRORVDZ256rmk = 18574,
+  VPRORVDZ256rmkz = 18575,
+  VPRORVDZ256rr = 18576,
+  VPRORVDZ256rrk = 18577,
+  VPRORVDZ256rrkz = 18578,
+  VPRORVDZrm = 18579,
+  VPRORVDZrmb = 18580,
+  VPRORVDZrmbk = 18581,
+  VPRORVDZrmbkz = 18582,
+  VPRORVDZrmk = 18583,
+  VPRORVDZrmkz = 18584,
+  VPRORVDZrr = 18585,
+  VPRORVDZrrk = 18586,
+  VPRORVDZrrkz = 18587,
+  VPRORVQZ128rm = 18588,
+  VPRORVQZ128rmb = 18589,
+  VPRORVQZ128rmbk = 18590,
+  VPRORVQZ128rmbkz = 18591,
+  VPRORVQZ128rmk = 18592,
+  VPRORVQZ128rmkz = 18593,
+  VPRORVQZ128rr = 18594,
+  VPRORVQZ128rrk = 18595,
+  VPRORVQZ128rrkz = 18596,
+  VPRORVQZ256rm = 18597,
+  VPRORVQZ256rmb = 18598,
+  VPRORVQZ256rmbk = 18599,
+  VPRORVQZ256rmbkz = 18600,
+  VPRORVQZ256rmk = 18601,
+  VPRORVQZ256rmkz = 18602,
+  VPRORVQZ256rr = 18603,
+  VPRORVQZ256rrk = 18604,
+  VPRORVQZ256rrkz = 18605,
+  VPRORVQZrm = 18606,
+  VPRORVQZrmb = 18607,
+  VPRORVQZrmbk = 18608,
+  VPRORVQZrmbkz = 18609,
+  VPRORVQZrmk = 18610,
+  VPRORVQZrmkz = 18611,
+  VPRORVQZrr = 18612,
+  VPRORVQZrrk = 18613,
+  VPRORVQZrrkz = 18614,
+  VPROTBmi = 18615,
+  VPROTBmr = 18616,
+  VPROTBri = 18617,
+  VPROTBrm = 18618,
+  VPROTBrr = 18619,
+  VPROTBrr_REV = 18620,
+  VPROTDmi = 18621,
+  VPROTDmr = 18622,
+  VPROTDri = 18623,
+  VPROTDrm = 18624,
+  VPROTDrr = 18625,
+  VPROTDrr_REV = 18626,
+  VPROTQmi = 18627,
+  VPROTQmr = 18628,
+  VPROTQri = 18629,
+  VPROTQrm = 18630,
+  VPROTQrr = 18631,
+  VPROTQrr_REV = 18632,
+  VPROTWmi = 18633,
+  VPROTWmr = 18634,
+  VPROTWri = 18635,
+  VPROTWrm = 18636,
+  VPROTWrr = 18637,
+  VPROTWrr_REV = 18638,
+  VPSADBWYrm = 18639,
+  VPSADBWYrr = 18640,
+  VPSADBWZ128rm = 18641,
+  VPSADBWZ128rr = 18642,
+  VPSADBWZ256rm = 18643,
+  VPSADBWZ256rr = 18644,
+  VPSADBWZrm = 18645,
+  VPSADBWZrr = 18646,
+  VPSADBWrm = 18647,
+  VPSADBWrr = 18648,
+  VPSCATTERDDZ128mr = 18649,
+  VPSCATTERDDZ256mr = 18650,
+  VPSCATTERDDZmr = 18651,
+  VPSCATTERDQZ128mr = 18652,
+  VPSCATTERDQZ256mr = 18653,
+  VPSCATTERDQZmr = 18654,
+  VPSCATTERQDZ128mr = 18655,
+  VPSCATTERQDZ256mr = 18656,
+  VPSCATTERQDZmr = 18657,
+  VPSCATTERQQZ128mr = 18658,
+  VPSCATTERQQZ256mr = 18659,
+  VPSCATTERQQZmr = 18660,
+  VPSHABmr = 18661,
+  VPSHABrm = 18662,
+  VPSHABrr = 18663,
+  VPSHABrr_REV = 18664,
+  VPSHADmr = 18665,
+  VPSHADrm = 18666,
+  VPSHADrr = 18667,
+  VPSHADrr_REV = 18668,
+  VPSHAQmr = 18669,
+  VPSHAQrm = 18670,
+  VPSHAQrr = 18671,
+  VPSHAQrr_REV = 18672,
+  VPSHAWmr = 18673,
+  VPSHAWrm = 18674,
+  VPSHAWrr = 18675,
+  VPSHAWrr_REV = 18676,
+  VPSHLBmr = 18677,
+  VPSHLBrm = 18678,
+  VPSHLBrr = 18679,
+  VPSHLBrr_REV = 18680,
+  VPSHLDDZ128rmbi = 18681,
+  VPSHLDDZ128rmbik = 18682,
+  VPSHLDDZ128rmbikz = 18683,
+  VPSHLDDZ128rmi = 18684,
+  VPSHLDDZ128rmik = 18685,
+  VPSHLDDZ128rmikz = 18686,
+  VPSHLDDZ128rri = 18687,
+  VPSHLDDZ128rrik = 18688,
+  VPSHLDDZ128rrikz = 18689,
+  VPSHLDDZ256rmbi = 18690,
+  VPSHLDDZ256rmbik = 18691,
+  VPSHLDDZ256rmbikz = 18692,
+  VPSHLDDZ256rmi = 18693,
+  VPSHLDDZ256rmik = 18694,
+  VPSHLDDZ256rmikz = 18695,
+  VPSHLDDZ256rri = 18696,
+  VPSHLDDZ256rrik = 18697,
+  VPSHLDDZ256rrikz = 18698,
+  VPSHLDDZrmbi = 18699,
+  VPSHLDDZrmbik = 18700,
+  VPSHLDDZrmbikz = 18701,
+  VPSHLDDZrmi = 18702,
+  VPSHLDDZrmik = 18703,
+  VPSHLDDZrmikz = 18704,
+  VPSHLDDZrri = 18705,
+  VPSHLDDZrrik = 18706,
+  VPSHLDDZrrikz = 18707,
+  VPSHLDQZ128rmbi = 18708,
+  VPSHLDQZ128rmbik = 18709,
+  VPSHLDQZ128rmbikz = 18710,
+  VPSHLDQZ128rmi = 18711,
+  VPSHLDQZ128rmik = 18712,
+  VPSHLDQZ128rmikz = 18713,
+  VPSHLDQZ128rri = 18714,
+  VPSHLDQZ128rrik = 18715,
+  VPSHLDQZ128rrikz = 18716,
+  VPSHLDQZ256rmbi = 18717,
+  VPSHLDQZ256rmbik = 18718,
+  VPSHLDQZ256rmbikz = 18719,
+  VPSHLDQZ256rmi = 18720,
+  VPSHLDQZ256rmik = 18721,
+  VPSHLDQZ256rmikz = 18722,
+  VPSHLDQZ256rri = 18723,
+  VPSHLDQZ256rrik = 18724,
+  VPSHLDQZ256rrikz = 18725,
+  VPSHLDQZrmbi = 18726,
+  VPSHLDQZrmbik = 18727,
+  VPSHLDQZrmbikz = 18728,
+  VPSHLDQZrmi = 18729,
+  VPSHLDQZrmik = 18730,
+  VPSHLDQZrmikz = 18731,
+  VPSHLDQZrri = 18732,
+  VPSHLDQZrrik = 18733,
+  VPSHLDQZrrikz = 18734,
+  VPSHLDVDZ128m = 18735,
+  VPSHLDVDZ128mb = 18736,
+  VPSHLDVDZ128mbk = 18737,
+  VPSHLDVDZ128mbkz = 18738,
+  VPSHLDVDZ128mk = 18739,
+  VPSHLDVDZ128mkz = 18740,
+  VPSHLDVDZ128r = 18741,
+  VPSHLDVDZ128rk = 18742,
+  VPSHLDVDZ128rkz = 18743,
+  VPSHLDVDZ256m = 18744,
+  VPSHLDVDZ256mb = 18745,
+  VPSHLDVDZ256mbk = 18746,
+  VPSHLDVDZ256mbkz = 18747,
+  VPSHLDVDZ256mk = 18748,
+  VPSHLDVDZ256mkz = 18749,
+  VPSHLDVDZ256r = 18750,
+  VPSHLDVDZ256rk = 18751,
+  VPSHLDVDZ256rkz = 18752,
+  VPSHLDVDZm = 18753,
+  VPSHLDVDZmb = 18754,
+  VPSHLDVDZmbk = 18755,
+  VPSHLDVDZmbkz = 18756,
+  VPSHLDVDZmk = 18757,
+  VPSHLDVDZmkz = 18758,
+  VPSHLDVDZr = 18759,
+  VPSHLDVDZrk = 18760,
+  VPSHLDVDZrkz = 18761,
+  VPSHLDVQZ128m = 18762,
+  VPSHLDVQZ128mb = 18763,
+  VPSHLDVQZ128mbk = 18764,
+  VPSHLDVQZ128mbkz = 18765,
+  VPSHLDVQZ128mk = 18766,
+  VPSHLDVQZ128mkz = 18767,
+  VPSHLDVQZ128r = 18768,
+  VPSHLDVQZ128rk = 18769,
+  VPSHLDVQZ128rkz = 18770,
+  VPSHLDVQZ256m = 18771,
+  VPSHLDVQZ256mb = 18772,
+  VPSHLDVQZ256mbk = 18773,
+  VPSHLDVQZ256mbkz = 18774,
+  VPSHLDVQZ256mk = 18775,
+  VPSHLDVQZ256mkz = 18776,
+  VPSHLDVQZ256r = 18777,
+  VPSHLDVQZ256rk = 18778,
+  VPSHLDVQZ256rkz = 18779,
+  VPSHLDVQZm = 18780,
+  VPSHLDVQZmb = 18781,
+  VPSHLDVQZmbk = 18782,
+  VPSHLDVQZmbkz = 18783,
+  VPSHLDVQZmk = 18784,
+  VPSHLDVQZmkz = 18785,
+  VPSHLDVQZr = 18786,
+  VPSHLDVQZrk = 18787,
+  VPSHLDVQZrkz = 18788,
+  VPSHLDVWZ128m = 18789,
+  VPSHLDVWZ128mk = 18790,
+  VPSHLDVWZ128mkz = 18791,
+  VPSHLDVWZ128r = 18792,
+  VPSHLDVWZ128rk = 18793,
+  VPSHLDVWZ128rkz = 18794,
+  VPSHLDVWZ256m = 18795,
+  VPSHLDVWZ256mk = 18796,
+  VPSHLDVWZ256mkz = 18797,
+  VPSHLDVWZ256r = 18798,
+  VPSHLDVWZ256rk = 18799,
+  VPSHLDVWZ256rkz = 18800,
+  VPSHLDVWZm = 18801,
+  VPSHLDVWZmk = 18802,
+  VPSHLDVWZmkz = 18803,
+  VPSHLDVWZr = 18804,
+  VPSHLDVWZrk = 18805,
+  VPSHLDVWZrkz = 18806,
+  VPSHLDWZ128rmi = 18807,
+  VPSHLDWZ128rmik = 18808,
+  VPSHLDWZ128rmikz = 18809,
+  VPSHLDWZ128rri = 18810,
+  VPSHLDWZ128rrik = 18811,
+  VPSHLDWZ128rrikz = 18812,
+  VPSHLDWZ256rmi = 18813,
+  VPSHLDWZ256rmik = 18814,
+  VPSHLDWZ256rmikz = 18815,
+  VPSHLDWZ256rri = 18816,
+  VPSHLDWZ256rrik = 18817,
+  VPSHLDWZ256rrikz = 18818,
+  VPSHLDWZrmi = 18819,
+  VPSHLDWZrmik = 18820,
+  VPSHLDWZrmikz = 18821,
+  VPSHLDWZrri = 18822,
+  VPSHLDWZrrik = 18823,
+  VPSHLDWZrrikz = 18824,
+  VPSHLDmr = 18825,
+  VPSHLDrm = 18826,
+  VPSHLDrr = 18827,
+  VPSHLDrr_REV = 18828,
+  VPSHLQmr = 18829,
+  VPSHLQrm = 18830,
+  VPSHLQrr = 18831,
+  VPSHLQrr_REV = 18832,
+  VPSHLWmr = 18833,
+  VPSHLWrm = 18834,
+  VPSHLWrr = 18835,
+  VPSHLWrr_REV = 18836,
+  VPSHRDDZ128rmbi = 18837,
+  VPSHRDDZ128rmbik = 18838,
+  VPSHRDDZ128rmbikz = 18839,
+  VPSHRDDZ128rmi = 18840,
+  VPSHRDDZ128rmik = 18841,
+  VPSHRDDZ128rmikz = 18842,
+  VPSHRDDZ128rri = 18843,
+  VPSHRDDZ128rrik = 18844,
+  VPSHRDDZ128rrikz = 18845,
+  VPSHRDDZ256rmbi = 18846,
+  VPSHRDDZ256rmbik = 18847,
+  VPSHRDDZ256rmbikz = 18848,
+  VPSHRDDZ256rmi = 18849,
+  VPSHRDDZ256rmik = 18850,
+  VPSHRDDZ256rmikz = 18851,
+  VPSHRDDZ256rri = 18852,
+  VPSHRDDZ256rrik = 18853,
+  VPSHRDDZ256rrikz = 18854,
+  VPSHRDDZrmbi = 18855,
+  VPSHRDDZrmbik = 18856,
+  VPSHRDDZrmbikz = 18857,
+  VPSHRDDZrmi = 18858,
+  VPSHRDDZrmik = 18859,
+  VPSHRDDZrmikz = 18860,
+  VPSHRDDZrri = 18861,
+  VPSHRDDZrrik = 18862,
+  VPSHRDDZrrikz = 18863,
+  VPSHRDQZ128rmbi = 18864,
+  VPSHRDQZ128rmbik = 18865,
+  VPSHRDQZ128rmbikz = 18866,
+  VPSHRDQZ128rmi = 18867,
+  VPSHRDQZ128rmik = 18868,
+  VPSHRDQZ128rmikz = 18869,
+  VPSHRDQZ128rri = 18870,
+  VPSHRDQZ128rrik = 18871,
+  VPSHRDQZ128rrikz = 18872,
+  VPSHRDQZ256rmbi = 18873,
+  VPSHRDQZ256rmbik = 18874,
+  VPSHRDQZ256rmbikz = 18875,
+  VPSHRDQZ256rmi = 18876,
+  VPSHRDQZ256rmik = 18877,
+  VPSHRDQZ256rmikz = 18878,
+  VPSHRDQZ256rri = 18879,
+  VPSHRDQZ256rrik = 18880,
+  VPSHRDQZ256rrikz = 18881,
+  VPSHRDQZrmbi = 18882,
+  VPSHRDQZrmbik = 18883,
+  VPSHRDQZrmbikz = 18884,
+  VPSHRDQZrmi = 18885,
+  VPSHRDQZrmik = 18886,
+  VPSHRDQZrmikz = 18887,
+  VPSHRDQZrri = 18888,
+  VPSHRDQZrrik = 18889,
+  VPSHRDQZrrikz = 18890,
+  VPSHRDVDZ128m = 18891,
+  VPSHRDVDZ128mb = 18892,
+  VPSHRDVDZ128mbk = 18893,
+  VPSHRDVDZ128mbkz = 18894,
+  VPSHRDVDZ128mk = 18895,
+  VPSHRDVDZ128mkz = 18896,
+  VPSHRDVDZ128r = 18897,
+  VPSHRDVDZ128rk = 18898,
+  VPSHRDVDZ128rkz = 18899,
+  VPSHRDVDZ256m = 18900,
+  VPSHRDVDZ256mb = 18901,
+  VPSHRDVDZ256mbk = 18902,
+  VPSHRDVDZ256mbkz = 18903,
+  VPSHRDVDZ256mk = 18904,
+  VPSHRDVDZ256mkz = 18905,
+  VPSHRDVDZ256r = 18906,
+  VPSHRDVDZ256rk = 18907,
+  VPSHRDVDZ256rkz = 18908,
+  VPSHRDVDZm = 18909,
+  VPSHRDVDZmb = 18910,
+  VPSHRDVDZmbk = 18911,
+  VPSHRDVDZmbkz = 18912,
+  VPSHRDVDZmk = 18913,
+  VPSHRDVDZmkz = 18914,
+  VPSHRDVDZr = 18915,
+  VPSHRDVDZrk = 18916,
+  VPSHRDVDZrkz = 18917,
+  VPSHRDVQZ128m = 18918,
+  VPSHRDVQZ128mb = 18919,
+  VPSHRDVQZ128mbk = 18920,
+  VPSHRDVQZ128mbkz = 18921,
+  VPSHRDVQZ128mk = 18922,
+  VPSHRDVQZ128mkz = 18923,
+  VPSHRDVQZ128r = 18924,
+  VPSHRDVQZ128rk = 18925,
+  VPSHRDVQZ128rkz = 18926,
+  VPSHRDVQZ256m = 18927,
+  VPSHRDVQZ256mb = 18928,
+  VPSHRDVQZ256mbk = 18929,
+  VPSHRDVQZ256mbkz = 18930,
+  VPSHRDVQZ256mk = 18931,
+  VPSHRDVQZ256mkz = 18932,
+  VPSHRDVQZ256r = 18933,
+  VPSHRDVQZ256rk = 18934,
+  VPSHRDVQZ256rkz = 18935,
+  VPSHRDVQZm = 18936,
+  VPSHRDVQZmb = 18937,
+  VPSHRDVQZmbk = 18938,
+  VPSHRDVQZmbkz = 18939,
+  VPSHRDVQZmk = 18940,
+  VPSHRDVQZmkz = 18941,
+  VPSHRDVQZr = 18942,
+  VPSHRDVQZrk = 18943,
+  VPSHRDVQZrkz = 18944,
+  VPSHRDVWZ128m = 18945,
+  VPSHRDVWZ128mk = 18946,
+  VPSHRDVWZ128mkz = 18947,
+  VPSHRDVWZ128r = 18948,
+  VPSHRDVWZ128rk = 18949,
+  VPSHRDVWZ128rkz = 18950,
+  VPSHRDVWZ256m = 18951,
+  VPSHRDVWZ256mk = 18952,
+  VPSHRDVWZ256mkz = 18953,
+  VPSHRDVWZ256r = 18954,
+  VPSHRDVWZ256rk = 18955,
+  VPSHRDVWZ256rkz = 18956,
+  VPSHRDVWZm = 18957,
+  VPSHRDVWZmk = 18958,
+  VPSHRDVWZmkz = 18959,
+  VPSHRDVWZr = 18960,
+  VPSHRDVWZrk = 18961,
+  VPSHRDVWZrkz = 18962,
+  VPSHRDWZ128rmi = 18963,
+  VPSHRDWZ128rmik = 18964,
+  VPSHRDWZ128rmikz = 18965,
+  VPSHRDWZ128rri = 18966,
+  VPSHRDWZ128rrik = 18967,
+  VPSHRDWZ128rrikz = 18968,
+  VPSHRDWZ256rmi = 18969,
+  VPSHRDWZ256rmik = 18970,
+  VPSHRDWZ256rmikz = 18971,
+  VPSHRDWZ256rri = 18972,
+  VPSHRDWZ256rrik = 18973,
+  VPSHRDWZ256rrikz = 18974,
+  VPSHRDWZrmi = 18975,
+  VPSHRDWZrmik = 18976,
+  VPSHRDWZrmikz = 18977,
+  VPSHRDWZrri = 18978,
+  VPSHRDWZrrik = 18979,
+  VPSHRDWZrrikz = 18980,
+  VPSHUFBITQMBZ128rm = 18981,
+  VPSHUFBITQMBZ128rmk = 18982,
+  VPSHUFBITQMBZ128rr = 18983,
+  VPSHUFBITQMBZ128rrk = 18984,
+  VPSHUFBITQMBZ256rm = 18985,
+  VPSHUFBITQMBZ256rmk = 18986,
+  VPSHUFBITQMBZ256rr = 18987,
+  VPSHUFBITQMBZ256rrk = 18988,
+  VPSHUFBITQMBZrm = 18989,
+  VPSHUFBITQMBZrmk = 18990,
+  VPSHUFBITQMBZrr = 18991,
+  VPSHUFBITQMBZrrk = 18992,
+  VPSHUFBYrm = 18993,
+  VPSHUFBYrr = 18994,
+  VPSHUFBZ128rm = 18995,
+  VPSHUFBZ128rmk = 18996,
+  VPSHUFBZ128rmkz = 18997,
+  VPSHUFBZ128rr = 18998,
+  VPSHUFBZ128rrk = 18999,
+  VPSHUFBZ128rrkz = 19000,
+  VPSHUFBZ256rm = 19001,
+  VPSHUFBZ256rmk = 19002,
+  VPSHUFBZ256rmkz = 19003,
+  VPSHUFBZ256rr = 19004,
+  VPSHUFBZ256rrk = 19005,
+  VPSHUFBZ256rrkz = 19006,
+  VPSHUFBZrm = 19007,
+  VPSHUFBZrmk = 19008,
+  VPSHUFBZrmkz = 19009,
+  VPSHUFBZrr = 19010,
+  VPSHUFBZrrk = 19011,
+  VPSHUFBZrrkz = 19012,
+  VPSHUFBrm = 19013,
+  VPSHUFBrr = 19014,
+  VPSHUFDYmi = 19015,
+  VPSHUFDYri = 19016,
+  VPSHUFDZ128mbi = 19017,
+  VPSHUFDZ128mbik = 19018,
+  VPSHUFDZ128mbikz = 19019,
+  VPSHUFDZ128mi = 19020,
+  VPSHUFDZ128mik = 19021,
+  VPSHUFDZ128mikz = 19022,
+  VPSHUFDZ128ri = 19023,
+  VPSHUFDZ128rik = 19024,
+  VPSHUFDZ128rikz = 19025,
+  VPSHUFDZ256mbi = 19026,
+  VPSHUFDZ256mbik = 19027,
+  VPSHUFDZ256mbikz = 19028,
+  VPSHUFDZ256mi = 19029,
+  VPSHUFDZ256mik = 19030,
+  VPSHUFDZ256mikz = 19031,
+  VPSHUFDZ256ri = 19032,
+  VPSHUFDZ256rik = 19033,
+  VPSHUFDZ256rikz = 19034,
+  VPSHUFDZmbi = 19035,
+  VPSHUFDZmbik = 19036,
+  VPSHUFDZmbikz = 19037,
+  VPSHUFDZmi = 19038,
+  VPSHUFDZmik = 19039,
+  VPSHUFDZmikz = 19040,
+  VPSHUFDZri = 19041,
+  VPSHUFDZrik = 19042,
+  VPSHUFDZrikz = 19043,
+  VPSHUFDmi = 19044,
+  VPSHUFDri = 19045,
+  VPSHUFHWYmi = 19046,
+  VPSHUFHWYri = 19047,
+  VPSHUFHWZ128mi = 19048,
+  VPSHUFHWZ128mik = 19049,
+  VPSHUFHWZ128mikz = 19050,
+  VPSHUFHWZ128ri = 19051,
+  VPSHUFHWZ128rik = 19052,
+  VPSHUFHWZ128rikz = 19053,
+  VPSHUFHWZ256mi = 19054,
+  VPSHUFHWZ256mik = 19055,
+  VPSHUFHWZ256mikz = 19056,
+  VPSHUFHWZ256ri = 19057,
+  VPSHUFHWZ256rik = 19058,
+  VPSHUFHWZ256rikz = 19059,
+  VPSHUFHWZmi = 19060,
+  VPSHUFHWZmik = 19061,
+  VPSHUFHWZmikz = 19062,
+  VPSHUFHWZri = 19063,
+  VPSHUFHWZrik = 19064,
+  VPSHUFHWZrikz = 19065,
+  VPSHUFHWmi = 19066,
+  VPSHUFHWri = 19067,
+  VPSHUFLWYmi = 19068,
+  VPSHUFLWYri = 19069,
+  VPSHUFLWZ128mi = 19070,
+  VPSHUFLWZ128mik = 19071,
+  VPSHUFLWZ128mikz = 19072,
+  VPSHUFLWZ128ri = 19073,
+  VPSHUFLWZ128rik = 19074,
+  VPSHUFLWZ128rikz = 19075,
+  VPSHUFLWZ256mi = 19076,
+  VPSHUFLWZ256mik = 19077,
+  VPSHUFLWZ256mikz = 19078,
+  VPSHUFLWZ256ri = 19079,
+  VPSHUFLWZ256rik = 19080,
+  VPSHUFLWZ256rikz = 19081,
+  VPSHUFLWZmi = 19082,
+  VPSHUFLWZmik = 19083,
+  VPSHUFLWZmikz = 19084,
+  VPSHUFLWZri = 19085,
+  VPSHUFLWZrik = 19086,
+  VPSHUFLWZrikz = 19087,
+  VPSHUFLWmi = 19088,
+  VPSHUFLWri = 19089,
+  VPSIGNBYrm = 19090,
+  VPSIGNBYrr = 19091,
+  VPSIGNBrm = 19092,
+  VPSIGNBrr = 19093,
+  VPSIGNDYrm = 19094,
+  VPSIGNDYrr = 19095,
+  VPSIGNDrm = 19096,
+  VPSIGNDrr = 19097,
+  VPSIGNWYrm = 19098,
+  VPSIGNWYrr = 19099,
+  VPSIGNWrm = 19100,
+  VPSIGNWrr = 19101,
+  VPSLLDQYri = 19102,
+  VPSLLDQZ128mi = 19103,
+  VPSLLDQZ128ri = 19104,
+  VPSLLDQZ256mi = 19105,
+  VPSLLDQZ256ri = 19106,
+  VPSLLDQZmi = 19107,
+  VPSLLDQZri = 19108,
+  VPSLLDQri = 19109,
+  VPSLLDYri = 19110,
+  VPSLLDYrm = 19111,
+  VPSLLDYrr = 19112,
+  VPSLLDZ128mbi = 19113,
+  VPSLLDZ128mbik = 19114,
+  VPSLLDZ128mbikz = 19115,
+  VPSLLDZ128mi = 19116,
+  VPSLLDZ128mik = 19117,
+  VPSLLDZ128mikz = 19118,
+  VPSLLDZ128ri = 19119,
+  VPSLLDZ128rik = 19120,
+  VPSLLDZ128rikz = 19121,
+  VPSLLDZ128rm = 19122,
+  VPSLLDZ128rmk = 19123,
+  VPSLLDZ128rmkz = 19124,
+  VPSLLDZ128rr = 19125,
+  VPSLLDZ128rrk = 19126,
+  VPSLLDZ128rrkz = 19127,
+  VPSLLDZ256mbi = 19128,
+  VPSLLDZ256mbik = 19129,
+  VPSLLDZ256mbikz = 19130,
+  VPSLLDZ256mi = 19131,
+  VPSLLDZ256mik = 19132,
+  VPSLLDZ256mikz = 19133,
+  VPSLLDZ256ri = 19134,
+  VPSLLDZ256rik = 19135,
+  VPSLLDZ256rikz = 19136,
+  VPSLLDZ256rm = 19137,
+  VPSLLDZ256rmk = 19138,
+  VPSLLDZ256rmkz = 19139,
+  VPSLLDZ256rr = 19140,
+  VPSLLDZ256rrk = 19141,
+  VPSLLDZ256rrkz = 19142,
+  VPSLLDZmbi = 19143,
+  VPSLLDZmbik = 19144,
+  VPSLLDZmbikz = 19145,
+  VPSLLDZmi = 19146,
+  VPSLLDZmik = 19147,
+  VPSLLDZmikz = 19148,
+  VPSLLDZri = 19149,
+  VPSLLDZrik = 19150,
+  VPSLLDZrikz = 19151,
+  VPSLLDZrm = 19152,
+  VPSLLDZrmk = 19153,
+  VPSLLDZrmkz = 19154,
+  VPSLLDZrr = 19155,
+  VPSLLDZrrk = 19156,
+  VPSLLDZrrkz = 19157,
+  VPSLLDri = 19158,
+  VPSLLDrm = 19159,
+  VPSLLDrr = 19160,
+  VPSLLQYri = 19161,
+  VPSLLQYrm = 19162,
+  VPSLLQYrr = 19163,
+  VPSLLQZ128mbi = 19164,
+  VPSLLQZ128mbik = 19165,
+  VPSLLQZ128mbikz = 19166,
+  VPSLLQZ128mi = 19167,
+  VPSLLQZ128mik = 19168,
+  VPSLLQZ128mikz = 19169,
+  VPSLLQZ128ri = 19170,
+  VPSLLQZ128rik = 19171,
+  VPSLLQZ128rikz = 19172,
+  VPSLLQZ128rm = 19173,
+  VPSLLQZ128rmk = 19174,
+  VPSLLQZ128rmkz = 19175,
+  VPSLLQZ128rr = 19176,
+  VPSLLQZ128rrk = 19177,
+  VPSLLQZ128rrkz = 19178,
+  VPSLLQZ256mbi = 19179,
+  VPSLLQZ256mbik = 19180,
+  VPSLLQZ256mbikz = 19181,
+  VPSLLQZ256mi = 19182,
+  VPSLLQZ256mik = 19183,
+  VPSLLQZ256mikz = 19184,
+  VPSLLQZ256ri = 19185,
+  VPSLLQZ256rik = 19186,
+  VPSLLQZ256rikz = 19187,
+  VPSLLQZ256rm = 19188,
+  VPSLLQZ256rmk = 19189,
+  VPSLLQZ256rmkz = 19190,
+  VPSLLQZ256rr = 19191,
+  VPSLLQZ256rrk = 19192,
+  VPSLLQZ256rrkz = 19193,
+  VPSLLQZmbi = 19194,
+  VPSLLQZmbik = 19195,
+  VPSLLQZmbikz = 19196,
+  VPSLLQZmi = 19197,
+  VPSLLQZmik = 19198,
+  VPSLLQZmikz = 19199,
+  VPSLLQZri = 19200,
+  VPSLLQZrik = 19201,
+  VPSLLQZrikz = 19202,
+  VPSLLQZrm = 19203,
+  VPSLLQZrmk = 19204,
+  VPSLLQZrmkz = 19205,
+  VPSLLQZrr = 19206,
+  VPSLLQZrrk = 19207,
+  VPSLLQZrrkz = 19208,
+  VPSLLQri = 19209,
+  VPSLLQrm = 19210,
+  VPSLLQrr = 19211,
+  VPSLLVDYrm = 19212,
+  VPSLLVDYrr = 19213,
+  VPSLLVDZ128rm = 19214,
+  VPSLLVDZ128rmb = 19215,
+  VPSLLVDZ128rmbk = 19216,
+  VPSLLVDZ128rmbkz = 19217,
+  VPSLLVDZ128rmk = 19218,
+  VPSLLVDZ128rmkz = 19219,
+  VPSLLVDZ128rr = 19220,
+  VPSLLVDZ128rrk = 19221,
+  VPSLLVDZ128rrkz = 19222,
+  VPSLLVDZ256rm = 19223,
+  VPSLLVDZ256rmb = 19224,
+  VPSLLVDZ256rmbk = 19225,
+  VPSLLVDZ256rmbkz = 19226,
+  VPSLLVDZ256rmk = 19227,
+  VPSLLVDZ256rmkz = 19228,
+  VPSLLVDZ256rr = 19229,
+  VPSLLVDZ256rrk = 19230,
+  VPSLLVDZ256rrkz = 19231,
+  VPSLLVDZrm = 19232,
+  VPSLLVDZrmb = 19233,
+  VPSLLVDZrmbk = 19234,
+  VPSLLVDZrmbkz = 19235,
+  VPSLLVDZrmk = 19236,
+  VPSLLVDZrmkz = 19237,
+  VPSLLVDZrr = 19238,
+  VPSLLVDZrrk = 19239,
+  VPSLLVDZrrkz = 19240,
+  VPSLLVDrm = 19241,
+  VPSLLVDrr = 19242,
+  VPSLLVQYrm = 19243,
+  VPSLLVQYrr = 19244,
+  VPSLLVQZ128rm = 19245,
+  VPSLLVQZ128rmb = 19246,
+  VPSLLVQZ128rmbk = 19247,
+  VPSLLVQZ128rmbkz = 19248,
+  VPSLLVQZ128rmk = 19249,
+  VPSLLVQZ128rmkz = 19250,
+  VPSLLVQZ128rr = 19251,
+  VPSLLVQZ128rrk = 19252,
+  VPSLLVQZ128rrkz = 19253,
+  VPSLLVQZ256rm = 19254,
+  VPSLLVQZ256rmb = 19255,
+  VPSLLVQZ256rmbk = 19256,
+  VPSLLVQZ256rmbkz = 19257,
+  VPSLLVQZ256rmk = 19258,
+  VPSLLVQZ256rmkz = 19259,
+  VPSLLVQZ256rr = 19260,
+  VPSLLVQZ256rrk = 19261,
+  VPSLLVQZ256rrkz = 19262,
+  VPSLLVQZrm = 19263,
+  VPSLLVQZrmb = 19264,
+  VPSLLVQZrmbk = 19265,
+  VPSLLVQZrmbkz = 19266,
+  VPSLLVQZrmk = 19267,
+  VPSLLVQZrmkz = 19268,
+  VPSLLVQZrr = 19269,
+  VPSLLVQZrrk = 19270,
+  VPSLLVQZrrkz = 19271,
+  VPSLLVQrm = 19272,
+  VPSLLVQrr = 19273,
+  VPSLLVWZ128rm = 19274,
+  VPSLLVWZ128rmk = 19275,
+  VPSLLVWZ128rmkz = 19276,
+  VPSLLVWZ128rr = 19277,
+  VPSLLVWZ128rrk = 19278,
+  VPSLLVWZ128rrkz = 19279,
+  VPSLLVWZ256rm = 19280,
+  VPSLLVWZ256rmk = 19281,
+  VPSLLVWZ256rmkz = 19282,
+  VPSLLVWZ256rr = 19283,
+  VPSLLVWZ256rrk = 19284,
+  VPSLLVWZ256rrkz = 19285,
+  VPSLLVWZrm = 19286,
+  VPSLLVWZrmk = 19287,
+  VPSLLVWZrmkz = 19288,
+  VPSLLVWZrr = 19289,
+  VPSLLVWZrrk = 19290,
+  VPSLLVWZrrkz = 19291,
+  VPSLLWYri = 19292,
+  VPSLLWYrm = 19293,
+  VPSLLWYrr = 19294,
+  VPSLLWZ128mi = 19295,
+  VPSLLWZ128mik = 19296,
+  VPSLLWZ128mikz = 19297,
+  VPSLLWZ128ri = 19298,
+  VPSLLWZ128rik = 19299,
+  VPSLLWZ128rikz = 19300,
+  VPSLLWZ128rm = 19301,
+  VPSLLWZ128rmk = 19302,
+  VPSLLWZ128rmkz = 19303,
+  VPSLLWZ128rr = 19304,
+  VPSLLWZ128rrk = 19305,
+  VPSLLWZ128rrkz = 19306,
+  VPSLLWZ256mi = 19307,
+  VPSLLWZ256mik = 19308,
+  VPSLLWZ256mikz = 19309,
+  VPSLLWZ256ri = 19310,
+  VPSLLWZ256rik = 19311,
+  VPSLLWZ256rikz = 19312,
+  VPSLLWZ256rm = 19313,
+  VPSLLWZ256rmk = 19314,
+  VPSLLWZ256rmkz = 19315,
+  VPSLLWZ256rr = 19316,
+  VPSLLWZ256rrk = 19317,
+  VPSLLWZ256rrkz = 19318,
+  VPSLLWZmi = 19319,
+  VPSLLWZmik = 19320,
+  VPSLLWZmikz = 19321,
+  VPSLLWZri = 19322,
+  VPSLLWZrik = 19323,
+  VPSLLWZrikz = 19324,
+  VPSLLWZrm = 19325,
+  VPSLLWZrmk = 19326,
+  VPSLLWZrmkz = 19327,
+  VPSLLWZrr = 19328,
+  VPSLLWZrrk = 19329,
+  VPSLLWZrrkz = 19330,
+  VPSLLWri = 19331,
+  VPSLLWrm = 19332,
+  VPSLLWrr = 19333,
+  VPSRADYri = 19334,
+  VPSRADYrm = 19335,
+  VPSRADYrr = 19336,
+  VPSRADZ128mbi = 19337,
+  VPSRADZ128mbik = 19338,
+  VPSRADZ128mbikz = 19339,
+  VPSRADZ128mi = 19340,
+  VPSRADZ128mik = 19341,
+  VPSRADZ128mikz = 19342,
+  VPSRADZ128ri = 19343,
+  VPSRADZ128rik = 19344,
+  VPSRADZ128rikz = 19345,
+  VPSRADZ128rm = 19346,
+  VPSRADZ128rmk = 19347,
+  VPSRADZ128rmkz = 19348,
+  VPSRADZ128rr = 19349,
+  VPSRADZ128rrk = 19350,
+  VPSRADZ128rrkz = 19351,
+  VPSRADZ256mbi = 19352,
+  VPSRADZ256mbik = 19353,
+  VPSRADZ256mbikz = 19354,
+  VPSRADZ256mi = 19355,
+  VPSRADZ256mik = 19356,
+  VPSRADZ256mikz = 19357,
+  VPSRADZ256ri = 19358,
+  VPSRADZ256rik = 19359,
+  VPSRADZ256rikz = 19360,
+  VPSRADZ256rm = 19361,
+  VPSRADZ256rmk = 19362,
+  VPSRADZ256rmkz = 19363,
+  VPSRADZ256rr = 19364,
+  VPSRADZ256rrk = 19365,
+  VPSRADZ256rrkz = 19366,
+  VPSRADZmbi = 19367,
+  VPSRADZmbik = 19368,
+  VPSRADZmbikz = 19369,
+  VPSRADZmi = 19370,
+  VPSRADZmik = 19371,
+  VPSRADZmikz = 19372,
+  VPSRADZri = 19373,
+  VPSRADZrik = 19374,
+  VPSRADZrikz = 19375,
+  VPSRADZrm = 19376,
+  VPSRADZrmk = 19377,
+  VPSRADZrmkz = 19378,
+  VPSRADZrr = 19379,
+  VPSRADZrrk = 19380,
+  VPSRADZrrkz = 19381,
+  VPSRADri = 19382,
+  VPSRADrm = 19383,
+  VPSRADrr = 19384,
+  VPSRAQZ128mbi = 19385,
+  VPSRAQZ128mbik = 19386,
+  VPSRAQZ128mbikz = 19387,
+  VPSRAQZ128mi = 19388,
+  VPSRAQZ128mik = 19389,
+  VPSRAQZ128mikz = 19390,
+  VPSRAQZ128ri = 19391,
+  VPSRAQZ128rik = 19392,
+  VPSRAQZ128rikz = 19393,
+  VPSRAQZ128rm = 19394,
+  VPSRAQZ128rmk = 19395,
+  VPSRAQZ128rmkz = 19396,
+  VPSRAQZ128rr = 19397,
+  VPSRAQZ128rrk = 19398,
+  VPSRAQZ128rrkz = 19399,
+  VPSRAQZ256mbi = 19400,
+  VPSRAQZ256mbik = 19401,
+  VPSRAQZ256mbikz = 19402,
+  VPSRAQZ256mi = 19403,
+  VPSRAQZ256mik = 19404,
+  VPSRAQZ256mikz = 19405,
+  VPSRAQZ256ri = 19406,
+  VPSRAQZ256rik = 19407,
+  VPSRAQZ256rikz = 19408,
+  VPSRAQZ256rm = 19409,
+  VPSRAQZ256rmk = 19410,
+  VPSRAQZ256rmkz = 19411,
+  VPSRAQZ256rr = 19412,
+  VPSRAQZ256rrk = 19413,
+  VPSRAQZ256rrkz = 19414,
+  VPSRAQZmbi = 19415,
+  VPSRAQZmbik = 19416,
+  VPSRAQZmbikz = 19417,
+  VPSRAQZmi = 19418,
+  VPSRAQZmik = 19419,
+  VPSRAQZmikz = 19420,
+  VPSRAQZri = 19421,
+  VPSRAQZrik = 19422,
+  VPSRAQZrikz = 19423,
+  VPSRAQZrm = 19424,
+  VPSRAQZrmk = 19425,
+  VPSRAQZrmkz = 19426,
+  VPSRAQZrr = 19427,
+  VPSRAQZrrk = 19428,
+  VPSRAQZrrkz = 19429,
+  VPSRAVDYrm = 19430,
+  VPSRAVDYrr = 19431,
+  VPSRAVDZ128rm = 19432,
+  VPSRAVDZ128rmb = 19433,
+  VPSRAVDZ128rmbk = 19434,
+  VPSRAVDZ128rmbkz = 19435,
+  VPSRAVDZ128rmk = 19436,
+  VPSRAVDZ128rmkz = 19437,
+  VPSRAVDZ128rr = 19438,
+  VPSRAVDZ128rrk = 19439,
+  VPSRAVDZ128rrkz = 19440,
+  VPSRAVDZ256rm = 19441,
+  VPSRAVDZ256rmb = 19442,
+  VPSRAVDZ256rmbk = 19443,
+  VPSRAVDZ256rmbkz = 19444,
+  VPSRAVDZ256rmk = 19445,
+  VPSRAVDZ256rmkz = 19446,
+  VPSRAVDZ256rr = 19447,
+  VPSRAVDZ256rrk = 19448,
+  VPSRAVDZ256rrkz = 19449,
+  VPSRAVDZrm = 19450,
+  VPSRAVDZrmb = 19451,
+  VPSRAVDZrmbk = 19452,
+  VPSRAVDZrmbkz = 19453,
+  VPSRAVDZrmk = 19454,
+  VPSRAVDZrmkz = 19455,
+  VPSRAVDZrr = 19456,
+  VPSRAVDZrrk = 19457,
+  VPSRAVDZrrkz = 19458,
+  VPSRAVDrm = 19459,
+  VPSRAVDrr = 19460,
+  VPSRAVQZ128rm = 19461,
+  VPSRAVQZ128rmb = 19462,
+  VPSRAVQZ128rmbk = 19463,
+  VPSRAVQZ128rmbkz = 19464,
+  VPSRAVQZ128rmk = 19465,
+  VPSRAVQZ128rmkz = 19466,
+  VPSRAVQZ128rr = 19467,
+  VPSRAVQZ128rrk = 19468,
+  VPSRAVQZ128rrkz = 19469,
+  VPSRAVQZ256rm = 19470,
+  VPSRAVQZ256rmb = 19471,
+  VPSRAVQZ256rmbk = 19472,
+  VPSRAVQZ256rmbkz = 19473,
+  VPSRAVQZ256rmk = 19474,
+  VPSRAVQZ256rmkz = 19475,
+  VPSRAVQZ256rr = 19476,
+  VPSRAVQZ256rrk = 19477,
+  VPSRAVQZ256rrkz = 19478,
+  VPSRAVQZrm = 19479,
+  VPSRAVQZrmb = 19480,
+  VPSRAVQZrmbk = 19481,
+  VPSRAVQZrmbkz = 19482,
+  VPSRAVQZrmk = 19483,
+  VPSRAVQZrmkz = 19484,
+  VPSRAVQZrr = 19485,
+  VPSRAVQZrrk = 19486,
+  VPSRAVQZrrkz = 19487,
+  VPSRAVWZ128rm = 19488,
+  VPSRAVWZ128rmk = 19489,
+  VPSRAVWZ128rmkz = 19490,
+  VPSRAVWZ128rr = 19491,
+  VPSRAVWZ128rrk = 19492,
+  VPSRAVWZ128rrkz = 19493,
+  VPSRAVWZ256rm = 19494,
+  VPSRAVWZ256rmk = 19495,
+  VPSRAVWZ256rmkz = 19496,
+  VPSRAVWZ256rr = 19497,
+  VPSRAVWZ256rrk = 19498,
+  VPSRAVWZ256rrkz = 19499,
+  VPSRAVWZrm = 19500,
+  VPSRAVWZrmk = 19501,
+  VPSRAVWZrmkz = 19502,
+  VPSRAVWZrr = 19503,
+  VPSRAVWZrrk = 19504,
+  VPSRAVWZrrkz = 19505,
+  VPSRAWYri = 19506,
+  VPSRAWYrm = 19507,
+  VPSRAWYrr = 19508,
+  VPSRAWZ128mi = 19509,
+  VPSRAWZ128mik = 19510,
+  VPSRAWZ128mikz = 19511,
+  VPSRAWZ128ri = 19512,
+  VPSRAWZ128rik = 19513,
+  VPSRAWZ128rikz = 19514,
+  VPSRAWZ128rm = 19515,
+  VPSRAWZ128rmk = 19516,
+  VPSRAWZ128rmkz = 19517,
+  VPSRAWZ128rr = 19518,
+  VPSRAWZ128rrk = 19519,
+  VPSRAWZ128rrkz = 19520,
+  VPSRAWZ256mi = 19521,
+  VPSRAWZ256mik = 19522,
+  VPSRAWZ256mikz = 19523,
+  VPSRAWZ256ri = 19524,
+  VPSRAWZ256rik = 19525,
+  VPSRAWZ256rikz = 19526,
+  VPSRAWZ256rm = 19527,
+  VPSRAWZ256rmk = 19528,
+  VPSRAWZ256rmkz = 19529,
+  VPSRAWZ256rr = 19530,
+  VPSRAWZ256rrk = 19531,
+  VPSRAWZ256rrkz = 19532,
+  VPSRAWZmi = 19533,
+  VPSRAWZmik = 19534,
+  VPSRAWZmikz = 19535,
+  VPSRAWZri = 19536,
+  VPSRAWZrik = 19537,
+  VPSRAWZrikz = 19538,
+  VPSRAWZrm = 19539,
+  VPSRAWZrmk = 19540,
+  VPSRAWZrmkz = 19541,
+  VPSRAWZrr = 19542,
+  VPSRAWZrrk = 19543,
+  VPSRAWZrrkz = 19544,
+  VPSRAWri = 19545,
+  VPSRAWrm = 19546,
+  VPSRAWrr = 19547,
+  VPSRLDQYri = 19548,
+  VPSRLDQZ128mi = 19549,
+  VPSRLDQZ128ri = 19550,
+  VPSRLDQZ256mi = 19551,
+  VPSRLDQZ256ri = 19552,
+  VPSRLDQZmi = 19553,
+  VPSRLDQZri = 19554,
+  VPSRLDQri = 19555,
+  VPSRLDYri = 19556,
+  VPSRLDYrm = 19557,
+  VPSRLDYrr = 19558,
+  VPSRLDZ128mbi = 19559,
+  VPSRLDZ128mbik = 19560,
+  VPSRLDZ128mbikz = 19561,
+  VPSRLDZ128mi = 19562,
+  VPSRLDZ128mik = 19563,
+  VPSRLDZ128mikz = 19564,
+  VPSRLDZ128ri = 19565,
+  VPSRLDZ128rik = 19566,
+  VPSRLDZ128rikz = 19567,
+  VPSRLDZ128rm = 19568,
+  VPSRLDZ128rmk = 19569,
+  VPSRLDZ128rmkz = 19570,
+  VPSRLDZ128rr = 19571,
+  VPSRLDZ128rrk = 19572,
+  VPSRLDZ128rrkz = 19573,
+  VPSRLDZ256mbi = 19574,
+  VPSRLDZ256mbik = 19575,
+  VPSRLDZ256mbikz = 19576,
+  VPSRLDZ256mi = 19577,
+  VPSRLDZ256mik = 19578,
+  VPSRLDZ256mikz = 19579,
+  VPSRLDZ256ri = 19580,
+  VPSRLDZ256rik = 19581,
+  VPSRLDZ256rikz = 19582,
+  VPSRLDZ256rm = 19583,
+  VPSRLDZ256rmk = 19584,
+  VPSRLDZ256rmkz = 19585,
+  VPSRLDZ256rr = 19586,
+  VPSRLDZ256rrk = 19587,
+  VPSRLDZ256rrkz = 19588,
+  VPSRLDZmbi = 19589,
+  VPSRLDZmbik = 19590,
+  VPSRLDZmbikz = 19591,
+  VPSRLDZmi = 19592,
+  VPSRLDZmik = 19593,
+  VPSRLDZmikz = 19594,
+  VPSRLDZri = 19595,
+  VPSRLDZrik = 19596,
+  VPSRLDZrikz = 19597,
+  VPSRLDZrm = 19598,
+  VPSRLDZrmk = 19599,
+  VPSRLDZrmkz = 19600,
+  VPSRLDZrr = 19601,
+  VPSRLDZrrk = 19602,
+  VPSRLDZrrkz = 19603,
+  VPSRLDri = 19604,
+  VPSRLDrm = 19605,
+  VPSRLDrr = 19606,
+  VPSRLQYri = 19607,
+  VPSRLQYrm = 19608,
+  VPSRLQYrr = 19609,
+  VPSRLQZ128mbi = 19610,
+  VPSRLQZ128mbik = 19611,
+  VPSRLQZ128mbikz = 19612,
+  VPSRLQZ128mi = 19613,
+  VPSRLQZ128mik = 19614,
+  VPSRLQZ128mikz = 19615,
+  VPSRLQZ128ri = 19616,
+  VPSRLQZ128rik = 19617,
+  VPSRLQZ128rikz = 19618,
+  VPSRLQZ128rm = 19619,
+  VPSRLQZ128rmk = 19620,
+  VPSRLQZ128rmkz = 19621,
+  VPSRLQZ128rr = 19622,
+  VPSRLQZ128rrk = 19623,
+  VPSRLQZ128rrkz = 19624,
+  VPSRLQZ256mbi = 19625,
+  VPSRLQZ256mbik = 19626,
+  VPSRLQZ256mbikz = 19627,
+  VPSRLQZ256mi = 19628,
+  VPSRLQZ256mik = 19629,
+  VPSRLQZ256mikz = 19630,
+  VPSRLQZ256ri = 19631,
+  VPSRLQZ256rik = 19632,
+  VPSRLQZ256rikz = 19633,
+  VPSRLQZ256rm = 19634,
+  VPSRLQZ256rmk = 19635,
+  VPSRLQZ256rmkz = 19636,
+  VPSRLQZ256rr = 19637,
+  VPSRLQZ256rrk = 19638,
+  VPSRLQZ256rrkz = 19639,
+  VPSRLQZmbi = 19640,
+  VPSRLQZmbik = 19641,
+  VPSRLQZmbikz = 19642,
+  VPSRLQZmi = 19643,
+  VPSRLQZmik = 19644,
+  VPSRLQZmikz = 19645,
+  VPSRLQZri = 19646,
+  VPSRLQZrik = 19647,
+  VPSRLQZrikz = 19648,
+  VPSRLQZrm = 19649,
+  VPSRLQZrmk = 19650,
+  VPSRLQZrmkz = 19651,
+  VPSRLQZrr = 19652,
+  VPSRLQZrrk = 19653,
+  VPSRLQZrrkz = 19654,
+  VPSRLQri = 19655,
+  VPSRLQrm = 19656,
+  VPSRLQrr = 19657,
+  VPSRLVDYrm = 19658,
+  VPSRLVDYrr = 19659,
+  VPSRLVDZ128rm = 19660,
+  VPSRLVDZ128rmb = 19661,
+  VPSRLVDZ128rmbk = 19662,
+  VPSRLVDZ128rmbkz = 19663,
+  VPSRLVDZ128rmk = 19664,
+  VPSRLVDZ128rmkz = 19665,
+  VPSRLVDZ128rr = 19666,
+  VPSRLVDZ128rrk = 19667,
+  VPSRLVDZ128rrkz = 19668,
+  VPSRLVDZ256rm = 19669,
+  VPSRLVDZ256rmb = 19670,
+  VPSRLVDZ256rmbk = 19671,
+  VPSRLVDZ256rmbkz = 19672,
+  VPSRLVDZ256rmk = 19673,
+  VPSRLVDZ256rmkz = 19674,
+  VPSRLVDZ256rr = 19675,
+  VPSRLVDZ256rrk = 19676,
+  VPSRLVDZ256rrkz = 19677,
+  VPSRLVDZrm = 19678,
+  VPSRLVDZrmb = 19679,
+  VPSRLVDZrmbk = 19680,
+  VPSRLVDZrmbkz = 19681,
+  VPSRLVDZrmk = 19682,
+  VPSRLVDZrmkz = 19683,
+  VPSRLVDZrr = 19684,
+  VPSRLVDZrrk = 19685,
+  VPSRLVDZrrkz = 19686,
+  VPSRLVDrm = 19687,
+  VPSRLVDrr = 19688,
+  VPSRLVQYrm = 19689,
+  VPSRLVQYrr = 19690,
+  VPSRLVQZ128rm = 19691,
+  VPSRLVQZ128rmb = 19692,
+  VPSRLVQZ128rmbk = 19693,
+  VPSRLVQZ128rmbkz = 19694,
+  VPSRLVQZ128rmk = 19695,
+  VPSRLVQZ128rmkz = 19696,
+  VPSRLVQZ128rr = 19697,
+  VPSRLVQZ128rrk = 19698,
+  VPSRLVQZ128rrkz = 19699,
+  VPSRLVQZ256rm = 19700,
+  VPSRLVQZ256rmb = 19701,
+  VPSRLVQZ256rmbk = 19702,
+  VPSRLVQZ256rmbkz = 19703,
+  VPSRLVQZ256rmk = 19704,
+  VPSRLVQZ256rmkz = 19705,
+  VPSRLVQZ256rr = 19706,
+  VPSRLVQZ256rrk = 19707,
+  VPSRLVQZ256rrkz = 19708,
+  VPSRLVQZrm = 19709,
+  VPSRLVQZrmb = 19710,
+  VPSRLVQZrmbk = 19711,
+  VPSRLVQZrmbkz = 19712,
+  VPSRLVQZrmk = 19713,
+  VPSRLVQZrmkz = 19714,
+  VPSRLVQZrr = 19715,
+  VPSRLVQZrrk = 19716,
+  VPSRLVQZrrkz = 19717,
+  VPSRLVQrm = 19718,
+  VPSRLVQrr = 19719,
+  VPSRLVWZ128rm = 19720,
+  VPSRLVWZ128rmk = 19721,
+  VPSRLVWZ128rmkz = 19722,
+  VPSRLVWZ128rr = 19723,
+  VPSRLVWZ128rrk = 19724,
+  VPSRLVWZ128rrkz = 19725,
+  VPSRLVWZ256rm = 19726,
+  VPSRLVWZ256rmk = 19727,
+  VPSRLVWZ256rmkz = 19728,
+  VPSRLVWZ256rr = 19729,
+  VPSRLVWZ256rrk = 19730,
+  VPSRLVWZ256rrkz = 19731,
+  VPSRLVWZrm = 19732,
+  VPSRLVWZrmk = 19733,
+  VPSRLVWZrmkz = 19734,
+  VPSRLVWZrr = 19735,
+  VPSRLVWZrrk = 19736,
+  VPSRLVWZrrkz = 19737,
+  VPSRLWYri = 19738,
+  VPSRLWYrm = 19739,
+  VPSRLWYrr = 19740,
+  VPSRLWZ128mi = 19741,
+  VPSRLWZ128mik = 19742,
+  VPSRLWZ128mikz = 19743,
+  VPSRLWZ128ri = 19744,
+  VPSRLWZ128rik = 19745,
+  VPSRLWZ128rikz = 19746,
+  VPSRLWZ128rm = 19747,
+  VPSRLWZ128rmk = 19748,
+  VPSRLWZ128rmkz = 19749,
+  VPSRLWZ128rr = 19750,
+  VPSRLWZ128rrk = 19751,
+  VPSRLWZ128rrkz = 19752,
+  VPSRLWZ256mi = 19753,
+  VPSRLWZ256mik = 19754,
+  VPSRLWZ256mikz = 19755,
+  VPSRLWZ256ri = 19756,
+  VPSRLWZ256rik = 19757,
+  VPSRLWZ256rikz = 19758,
+  VPSRLWZ256rm = 19759,
+  VPSRLWZ256rmk = 19760,
+  VPSRLWZ256rmkz = 19761,
+  VPSRLWZ256rr = 19762,
+  VPSRLWZ256rrk = 19763,
+  VPSRLWZ256rrkz = 19764,
+  VPSRLWZmi = 19765,
+  VPSRLWZmik = 19766,
+  VPSRLWZmikz = 19767,
+  VPSRLWZri = 19768,
+  VPSRLWZrik = 19769,
+  VPSRLWZrikz = 19770,
+  VPSRLWZrm = 19771,
+  VPSRLWZrmk = 19772,
+  VPSRLWZrmkz = 19773,
+  VPSRLWZrr = 19774,
+  VPSRLWZrrk = 19775,
+  VPSRLWZrrkz = 19776,
+  VPSRLWri = 19777,
+  VPSRLWrm = 19778,
+  VPSRLWrr = 19779,
+  VPSUBBYrm = 19780,
+  VPSUBBYrr = 19781,
+  VPSUBBZ128rm = 19782,
+  VPSUBBZ128rmk = 19783,
+  VPSUBBZ128rmkz = 19784,
+  VPSUBBZ128rr = 19785,
+  VPSUBBZ128rrk = 19786,
+  VPSUBBZ128rrkz = 19787,
+  VPSUBBZ256rm = 19788,
+  VPSUBBZ256rmk = 19789,
+  VPSUBBZ256rmkz = 19790,
+  VPSUBBZ256rr = 19791,
+  VPSUBBZ256rrk = 19792,
+  VPSUBBZ256rrkz = 19793,
+  VPSUBBZrm = 19794,
+  VPSUBBZrmk = 19795,
+  VPSUBBZrmkz = 19796,
+  VPSUBBZrr = 19797,
+  VPSUBBZrrk = 19798,
+  VPSUBBZrrkz = 19799,
+  VPSUBBrm = 19800,
+  VPSUBBrr = 19801,
+  VPSUBDYrm = 19802,
+  VPSUBDYrr = 19803,
+  VPSUBDZ128rm = 19804,
+  VPSUBDZ128rmb = 19805,
+  VPSUBDZ128rmbk = 19806,
+  VPSUBDZ128rmbkz = 19807,
+  VPSUBDZ128rmk = 19808,
+  VPSUBDZ128rmkz = 19809,
+  VPSUBDZ128rr = 19810,
+  VPSUBDZ128rrk = 19811,
+  VPSUBDZ128rrkz = 19812,
+  VPSUBDZ256rm = 19813,
+  VPSUBDZ256rmb = 19814,
+  VPSUBDZ256rmbk = 19815,
+  VPSUBDZ256rmbkz = 19816,
+  VPSUBDZ256rmk = 19817,
+  VPSUBDZ256rmkz = 19818,
+  VPSUBDZ256rr = 19819,
+  VPSUBDZ256rrk = 19820,
+  VPSUBDZ256rrkz = 19821,
+  VPSUBDZrm = 19822,
+  VPSUBDZrmb = 19823,
+  VPSUBDZrmbk = 19824,
+  VPSUBDZrmbkz = 19825,
+  VPSUBDZrmk = 19826,
+  VPSUBDZrmkz = 19827,
+  VPSUBDZrr = 19828,
+  VPSUBDZrrk = 19829,
+  VPSUBDZrrkz = 19830,
+  VPSUBDrm = 19831,
+  VPSUBDrr = 19832,
+  VPSUBQYrm = 19833,
+  VPSUBQYrr = 19834,
+  VPSUBQZ128rm = 19835,
+  VPSUBQZ128rmb = 19836,
+  VPSUBQZ128rmbk = 19837,
+  VPSUBQZ128rmbkz = 19838,
+  VPSUBQZ128rmk = 19839,
+  VPSUBQZ128rmkz = 19840,
+  VPSUBQZ128rr = 19841,
+  VPSUBQZ128rrk = 19842,
+  VPSUBQZ128rrkz = 19843,
+  VPSUBQZ256rm = 19844,
+  VPSUBQZ256rmb = 19845,
+  VPSUBQZ256rmbk = 19846,
+  VPSUBQZ256rmbkz = 19847,
+  VPSUBQZ256rmk = 19848,
+  VPSUBQZ256rmkz = 19849,
+  VPSUBQZ256rr = 19850,
+  VPSUBQZ256rrk = 19851,
+  VPSUBQZ256rrkz = 19852,
+  VPSUBQZrm = 19853,
+  VPSUBQZrmb = 19854,
+  VPSUBQZrmbk = 19855,
+  VPSUBQZrmbkz = 19856,
+  VPSUBQZrmk = 19857,
+  VPSUBQZrmkz = 19858,
+  VPSUBQZrr = 19859,
+  VPSUBQZrrk = 19860,
+  VPSUBQZrrkz = 19861,
+  VPSUBQrm = 19862,
+  VPSUBQrr = 19863,
+  VPSUBSBYrm = 19864,
+  VPSUBSBYrr = 19865,
+  VPSUBSBZ128rm = 19866,
+  VPSUBSBZ128rmk = 19867,
+  VPSUBSBZ128rmkz = 19868,
+  VPSUBSBZ128rr = 19869,
+  VPSUBSBZ128rrk = 19870,
+  VPSUBSBZ128rrkz = 19871,
+  VPSUBSBZ256rm = 19872,
+  VPSUBSBZ256rmk = 19873,
+  VPSUBSBZ256rmkz = 19874,
+  VPSUBSBZ256rr = 19875,
+  VPSUBSBZ256rrk = 19876,
+  VPSUBSBZ256rrkz = 19877,
+  VPSUBSBZrm = 19878,
+  VPSUBSBZrmk = 19879,
+  VPSUBSBZrmkz = 19880,
+  VPSUBSBZrr = 19881,
+  VPSUBSBZrrk = 19882,
+  VPSUBSBZrrkz = 19883,
+  VPSUBSBrm = 19884,
+  VPSUBSBrr = 19885,
+  VPSUBSWYrm = 19886,
+  VPSUBSWYrr = 19887,
+  VPSUBSWZ128rm = 19888,
+  VPSUBSWZ128rmk = 19889,
+  VPSUBSWZ128rmkz = 19890,
+  VPSUBSWZ128rr = 19891,
+  VPSUBSWZ128rrk = 19892,
+  VPSUBSWZ128rrkz = 19893,
+  VPSUBSWZ256rm = 19894,
+  VPSUBSWZ256rmk = 19895,
+  VPSUBSWZ256rmkz = 19896,
+  VPSUBSWZ256rr = 19897,
+  VPSUBSWZ256rrk = 19898,
+  VPSUBSWZ256rrkz = 19899,
+  VPSUBSWZrm = 19900,
+  VPSUBSWZrmk = 19901,
+  VPSUBSWZrmkz = 19902,
+  VPSUBSWZrr = 19903,
+  VPSUBSWZrrk = 19904,
+  VPSUBSWZrrkz = 19905,
+  VPSUBSWrm = 19906,
+  VPSUBSWrr = 19907,
+  VPSUBUSBYrm = 19908,
+  VPSUBUSBYrr = 19909,
+  VPSUBUSBZ128rm = 19910,
+  VPSUBUSBZ128rmk = 19911,
+  VPSUBUSBZ128rmkz = 19912,
+  VPSUBUSBZ128rr = 19913,
+  VPSUBUSBZ128rrk = 19914,
+  VPSUBUSBZ128rrkz = 19915,
+  VPSUBUSBZ256rm = 19916,
+  VPSUBUSBZ256rmk = 19917,
+  VPSUBUSBZ256rmkz = 19918,
+  VPSUBUSBZ256rr = 19919,
+  VPSUBUSBZ256rrk = 19920,
+  VPSUBUSBZ256rrkz = 19921,
+  VPSUBUSBZrm = 19922,
+  VPSUBUSBZrmk = 19923,
+  VPSUBUSBZrmkz = 19924,
+  VPSUBUSBZrr = 19925,
+  VPSUBUSBZrrk = 19926,
+  VPSUBUSBZrrkz = 19927,
+  VPSUBUSBrm = 19928,
+  VPSUBUSBrr = 19929,
+  VPSUBUSWYrm = 19930,
+  VPSUBUSWYrr = 19931,
+  VPSUBUSWZ128rm = 19932,
+  VPSUBUSWZ128rmk = 19933,
+  VPSUBUSWZ128rmkz = 19934,
+  VPSUBUSWZ128rr = 19935,
+  VPSUBUSWZ128rrk = 19936,
+  VPSUBUSWZ128rrkz = 19937,
+  VPSUBUSWZ256rm = 19938,
+  VPSUBUSWZ256rmk = 19939,
+  VPSUBUSWZ256rmkz = 19940,
+  VPSUBUSWZ256rr = 19941,
+  VPSUBUSWZ256rrk = 19942,
+  VPSUBUSWZ256rrkz = 19943,
+  VPSUBUSWZrm = 19944,
+  VPSUBUSWZrmk = 19945,
+  VPSUBUSWZrmkz = 19946,
+  VPSUBUSWZrr = 19947,
+  VPSUBUSWZrrk = 19948,
+  VPSUBUSWZrrkz = 19949,
+  VPSUBUSWrm = 19950,
+  VPSUBUSWrr = 19951,
+  VPSUBWYrm = 19952,
+  VPSUBWYrr = 19953,
+  VPSUBWZ128rm = 19954,
+  VPSUBWZ128rmk = 19955,
+  VPSUBWZ128rmkz = 19956,
+  VPSUBWZ128rr = 19957,
+  VPSUBWZ128rrk = 19958,
+  VPSUBWZ128rrkz = 19959,
+  VPSUBWZ256rm = 19960,
+  VPSUBWZ256rmk = 19961,
+  VPSUBWZ256rmkz = 19962,
+  VPSUBWZ256rr = 19963,
+  VPSUBWZ256rrk = 19964,
+  VPSUBWZ256rrkz = 19965,
+  VPSUBWZrm = 19966,
+  VPSUBWZrmk = 19967,
+  VPSUBWZrmkz = 19968,
+  VPSUBWZrr = 19969,
+  VPSUBWZrrk = 19970,
+  VPSUBWZrrkz = 19971,
+  VPSUBWrm = 19972,
+  VPSUBWrr = 19973,
+  VPTERNLOGDZ128rmbi = 19974,
+  VPTERNLOGDZ128rmbik = 19975,
+  VPTERNLOGDZ128rmbikz = 19976,
+  VPTERNLOGDZ128rmi = 19977,
+  VPTERNLOGDZ128rmik = 19978,
+  VPTERNLOGDZ128rmikz = 19979,
+  VPTERNLOGDZ128rri = 19980,
+  VPTERNLOGDZ128rrik = 19981,
+  VPTERNLOGDZ128rrikz = 19982,
+  VPTERNLOGDZ256rmbi = 19983,
+  VPTERNLOGDZ256rmbik = 19984,
+  VPTERNLOGDZ256rmbikz = 19985,
+  VPTERNLOGDZ256rmi = 19986,
+  VPTERNLOGDZ256rmik = 19987,
+  VPTERNLOGDZ256rmikz = 19988,
+  VPTERNLOGDZ256rri = 19989,
+  VPTERNLOGDZ256rrik = 19990,
+  VPTERNLOGDZ256rrikz = 19991,
+  VPTERNLOGDZrmbi = 19992,
+  VPTERNLOGDZrmbik = 19993,
+  VPTERNLOGDZrmbikz = 19994,
+  VPTERNLOGDZrmi = 19995,
+  VPTERNLOGDZrmik = 19996,
+  VPTERNLOGDZrmikz = 19997,
+  VPTERNLOGDZrri = 19998,
+  VPTERNLOGDZrrik = 19999,
+  VPTERNLOGDZrrikz = 20000,
+  VPTERNLOGQZ128rmbi = 20001,
+  VPTERNLOGQZ128rmbik = 20002,
+  VPTERNLOGQZ128rmbikz = 20003,
+  VPTERNLOGQZ128rmi = 20004,
+  VPTERNLOGQZ128rmik = 20005,
+  VPTERNLOGQZ128rmikz = 20006,
+  VPTERNLOGQZ128rri = 20007,
+  VPTERNLOGQZ128rrik = 20008,
+  VPTERNLOGQZ128rrikz = 20009,
+  VPTERNLOGQZ256rmbi = 20010,
+  VPTERNLOGQZ256rmbik = 20011,
+  VPTERNLOGQZ256rmbikz = 20012,
+  VPTERNLOGQZ256rmi = 20013,
+  VPTERNLOGQZ256rmik = 20014,
+  VPTERNLOGQZ256rmikz = 20015,
+  VPTERNLOGQZ256rri = 20016,
+  VPTERNLOGQZ256rrik = 20017,
+  VPTERNLOGQZ256rrikz = 20018,
+  VPTERNLOGQZrmbi = 20019,
+  VPTERNLOGQZrmbik = 20020,
+  VPTERNLOGQZrmbikz = 20021,
+  VPTERNLOGQZrmi = 20022,
+  VPTERNLOGQZrmik = 20023,
+  VPTERNLOGQZrmikz = 20024,
+  VPTERNLOGQZrri = 20025,
+  VPTERNLOGQZrrik = 20026,
+  VPTERNLOGQZrrikz = 20027,
+  VPTESTMBZ128rm = 20028,
+  VPTESTMBZ128rmk = 20029,
+  VPTESTMBZ128rr = 20030,
+  VPTESTMBZ128rrk = 20031,
+  VPTESTMBZ256rm = 20032,
+  VPTESTMBZ256rmk = 20033,
+  VPTESTMBZ256rr = 20034,
+  VPTESTMBZ256rrk = 20035,
+  VPTESTMBZrm = 20036,
+  VPTESTMBZrmk = 20037,
+  VPTESTMBZrr = 20038,
+  VPTESTMBZrrk = 20039,
+  VPTESTMDZ128rm = 20040,
+  VPTESTMDZ128rmb = 20041,
+  VPTESTMDZ128rmbk = 20042,
+  VPTESTMDZ128rmk = 20043,
+  VPTESTMDZ128rr = 20044,
+  VPTESTMDZ128rrk = 20045,
+  VPTESTMDZ256rm = 20046,
+  VPTESTMDZ256rmb = 20047,
+  VPTESTMDZ256rmbk = 20048,
+  VPTESTMDZ256rmk = 20049,
+  VPTESTMDZ256rr = 20050,
+  VPTESTMDZ256rrk = 20051,
+  VPTESTMDZrm = 20052,
+  VPTESTMDZrmb = 20053,
+  VPTESTMDZrmbk = 20054,
+  VPTESTMDZrmk = 20055,
+  VPTESTMDZrr = 20056,
+  VPTESTMDZrrk = 20057,
+  VPTESTMQZ128rm = 20058,
+  VPTESTMQZ128rmb = 20059,
+  VPTESTMQZ128rmbk = 20060,
+  VPTESTMQZ128rmk = 20061,
+  VPTESTMQZ128rr = 20062,
+  VPTESTMQZ128rrk = 20063,
+  VPTESTMQZ256rm = 20064,
+  VPTESTMQZ256rmb = 20065,
+  VPTESTMQZ256rmbk = 20066,
+  VPTESTMQZ256rmk = 20067,
+  VPTESTMQZ256rr = 20068,
+  VPTESTMQZ256rrk = 20069,
+  VPTESTMQZrm = 20070,
+  VPTESTMQZrmb = 20071,
+  VPTESTMQZrmbk = 20072,
+  VPTESTMQZrmk = 20073,
+  VPTESTMQZrr = 20074,
+  VPTESTMQZrrk = 20075,
+  VPTESTMWZ128rm = 20076,
+  VPTESTMWZ128rmk = 20077,
+  VPTESTMWZ128rr = 20078,
+  VPTESTMWZ128rrk = 20079,
+  VPTESTMWZ256rm = 20080,
+  VPTESTMWZ256rmk = 20081,
+  VPTESTMWZ256rr = 20082,
+  VPTESTMWZ256rrk = 20083,
+  VPTESTMWZrm = 20084,
+  VPTESTMWZrmk = 20085,
+  VPTESTMWZrr = 20086,
+  VPTESTMWZrrk = 20087,
+  VPTESTNMBZ128rm = 20088,
+  VPTESTNMBZ128rmk = 20089,
+  VPTESTNMBZ128rr = 20090,
+  VPTESTNMBZ128rrk = 20091,
+  VPTESTNMBZ256rm = 20092,
+  VPTESTNMBZ256rmk = 20093,
+  VPTESTNMBZ256rr = 20094,
+  VPTESTNMBZ256rrk = 20095,
+  VPTESTNMBZrm = 20096,
+  VPTESTNMBZrmk = 20097,
+  VPTESTNMBZrr = 20098,
+  VPTESTNMBZrrk = 20099,
+  VPTESTNMDZ128rm = 20100,
+  VPTESTNMDZ128rmb = 20101,
+  VPTESTNMDZ128rmbk = 20102,
+  VPTESTNMDZ128rmk = 20103,
+  VPTESTNMDZ128rr = 20104,
+  VPTESTNMDZ128rrk = 20105,
+  VPTESTNMDZ256rm = 20106,
+  VPTESTNMDZ256rmb = 20107,
+  VPTESTNMDZ256rmbk = 20108,
+  VPTESTNMDZ256rmk = 20109,
+  VPTESTNMDZ256rr = 20110,
+  VPTESTNMDZ256rrk = 20111,
+  VPTESTNMDZrm = 20112,
+  VPTESTNMDZrmb = 20113,
+  VPTESTNMDZrmbk = 20114,
+  VPTESTNMDZrmk = 20115,
+  VPTESTNMDZrr = 20116,
+  VPTESTNMDZrrk = 20117,
+  VPTESTNMQZ128rm = 20118,
+  VPTESTNMQZ128rmb = 20119,
+  VPTESTNMQZ128rmbk = 20120,
+  VPTESTNMQZ128rmk = 20121,
+  VPTESTNMQZ128rr = 20122,
+  VPTESTNMQZ128rrk = 20123,
+  VPTESTNMQZ256rm = 20124,
+  VPTESTNMQZ256rmb = 20125,
+  VPTESTNMQZ256rmbk = 20126,
+  VPTESTNMQZ256rmk = 20127,
+  VPTESTNMQZ256rr = 20128,
+  VPTESTNMQZ256rrk = 20129,
+  VPTESTNMQZrm = 20130,
+  VPTESTNMQZrmb = 20131,
+  VPTESTNMQZrmbk = 20132,
+  VPTESTNMQZrmk = 20133,
+  VPTESTNMQZrr = 20134,
+  VPTESTNMQZrrk = 20135,
+  VPTESTNMWZ128rm = 20136,
+  VPTESTNMWZ128rmk = 20137,
+  VPTESTNMWZ128rr = 20138,
+  VPTESTNMWZ128rrk = 20139,
+  VPTESTNMWZ256rm = 20140,
+  VPTESTNMWZ256rmk = 20141,
+  VPTESTNMWZ256rr = 20142,
+  VPTESTNMWZ256rrk = 20143,
+  VPTESTNMWZrm = 20144,
+  VPTESTNMWZrmk = 20145,
+  VPTESTNMWZrr = 20146,
+  VPTESTNMWZrrk = 20147,
+  VPTESTYrm = 20148,
+  VPTESTYrr = 20149,
+  VPTESTrm = 20150,
+  VPTESTrr = 20151,
+  VPUNPCKHBWYrm = 20152,
+  VPUNPCKHBWYrr = 20153,
+  VPUNPCKHBWZ128rm = 20154,
+  VPUNPCKHBWZ128rmk = 20155,
+  VPUNPCKHBWZ128rmkz = 20156,
+  VPUNPCKHBWZ128rr = 20157,
+  VPUNPCKHBWZ128rrk = 20158,
+  VPUNPCKHBWZ128rrkz = 20159,
+  VPUNPCKHBWZ256rm = 20160,
+  VPUNPCKHBWZ256rmk = 20161,
+  VPUNPCKHBWZ256rmkz = 20162,
+  VPUNPCKHBWZ256rr = 20163,
+  VPUNPCKHBWZ256rrk = 20164,
+  VPUNPCKHBWZ256rrkz = 20165,
+  VPUNPCKHBWZrm = 20166,
+  VPUNPCKHBWZrmk = 20167,
+  VPUNPCKHBWZrmkz = 20168,
+  VPUNPCKHBWZrr = 20169,
+  VPUNPCKHBWZrrk = 20170,
+  VPUNPCKHBWZrrkz = 20171,
+  VPUNPCKHBWrm = 20172,
+  VPUNPCKHBWrr = 20173,
+  VPUNPCKHDQYrm = 20174,
+  VPUNPCKHDQYrr = 20175,
+  VPUNPCKHDQZ128rm = 20176,
+  VPUNPCKHDQZ128rmb = 20177,
+  VPUNPCKHDQZ128rmbk = 20178,
+  VPUNPCKHDQZ128rmbkz = 20179,
+  VPUNPCKHDQZ128rmk = 20180,
+  VPUNPCKHDQZ128rmkz = 20181,
+  VPUNPCKHDQZ128rr = 20182,
+  VPUNPCKHDQZ128rrk = 20183,
+  VPUNPCKHDQZ128rrkz = 20184,
+  VPUNPCKHDQZ256rm = 20185,
+  VPUNPCKHDQZ256rmb = 20186,
+  VPUNPCKHDQZ256rmbk = 20187,
+  VPUNPCKHDQZ256rmbkz = 20188,
+  VPUNPCKHDQZ256rmk = 20189,
+  VPUNPCKHDQZ256rmkz = 20190,
+  VPUNPCKHDQZ256rr = 20191,
+  VPUNPCKHDQZ256rrk = 20192,
+  VPUNPCKHDQZ256rrkz = 20193,
+  VPUNPCKHDQZrm = 20194,
+  VPUNPCKHDQZrmb = 20195,
+  VPUNPCKHDQZrmbk = 20196,
+  VPUNPCKHDQZrmbkz = 20197,
+  VPUNPCKHDQZrmk = 20198,
+  VPUNPCKHDQZrmkz = 20199,
+  VPUNPCKHDQZrr = 20200,
+  VPUNPCKHDQZrrk = 20201,
+  VPUNPCKHDQZrrkz = 20202,
+  VPUNPCKHDQrm = 20203,
+  VPUNPCKHDQrr = 20204,
+  VPUNPCKHQDQYrm = 20205,
+  VPUNPCKHQDQYrr = 20206,
+  VPUNPCKHQDQZ128rm = 20207,
+  VPUNPCKHQDQZ128rmb = 20208,
+  VPUNPCKHQDQZ128rmbk = 20209,
+  VPUNPCKHQDQZ128rmbkz = 20210,
+  VPUNPCKHQDQZ128rmk = 20211,
+  VPUNPCKHQDQZ128rmkz = 20212,
+  VPUNPCKHQDQZ128rr = 20213,
+  VPUNPCKHQDQZ128rrk = 20214,
+  VPUNPCKHQDQZ128rrkz = 20215,
+  VPUNPCKHQDQZ256rm = 20216,
+  VPUNPCKHQDQZ256rmb = 20217,
+  VPUNPCKHQDQZ256rmbk = 20218,
+  VPUNPCKHQDQZ256rmbkz = 20219,
+  VPUNPCKHQDQZ256rmk = 20220,
+  VPUNPCKHQDQZ256rmkz = 20221,
+  VPUNPCKHQDQZ256rr = 20222,
+  VPUNPCKHQDQZ256rrk = 20223,
+  VPUNPCKHQDQZ256rrkz = 20224,
+  VPUNPCKHQDQZrm = 20225,
+  VPUNPCKHQDQZrmb = 20226,
+  VPUNPCKHQDQZrmbk = 20227,
+  VPUNPCKHQDQZrmbkz = 20228,
+  VPUNPCKHQDQZrmk = 20229,
+  VPUNPCKHQDQZrmkz = 20230,
+  VPUNPCKHQDQZrr = 20231,
+  VPUNPCKHQDQZrrk = 20232,
+  VPUNPCKHQDQZrrkz = 20233,
+  VPUNPCKHQDQrm = 20234,
+  VPUNPCKHQDQrr = 20235,
+  VPUNPCKHWDYrm = 20236,
+  VPUNPCKHWDYrr = 20237,
+  VPUNPCKHWDZ128rm = 20238,
+  VPUNPCKHWDZ128rmk = 20239,
+  VPUNPCKHWDZ128rmkz = 20240,
+  VPUNPCKHWDZ128rr = 20241,
+  VPUNPCKHWDZ128rrk = 20242,
+  VPUNPCKHWDZ128rrkz = 20243,
+  VPUNPCKHWDZ256rm = 20244,
+  VPUNPCKHWDZ256rmk = 20245,
+  VPUNPCKHWDZ256rmkz = 20246,
+  VPUNPCKHWDZ256rr = 20247,
+  VPUNPCKHWDZ256rrk = 20248,
+  VPUNPCKHWDZ256rrkz = 20249,
+  VPUNPCKHWDZrm = 20250,
+  VPUNPCKHWDZrmk = 20251,
+  VPUNPCKHWDZrmkz = 20252,
+  VPUNPCKHWDZrr = 20253,
+  VPUNPCKHWDZrrk = 20254,
+  VPUNPCKHWDZrrkz = 20255,
+  VPUNPCKHWDrm = 20256,
+  VPUNPCKHWDrr = 20257,
+  VPUNPCKLBWYrm = 20258,
+  VPUNPCKLBWYrr = 20259,
+  VPUNPCKLBWZ128rm = 20260,
+  VPUNPCKLBWZ128rmk = 20261,
+  VPUNPCKLBWZ128rmkz = 20262,
+  VPUNPCKLBWZ128rr = 20263,
+  VPUNPCKLBWZ128rrk = 20264,
+  VPUNPCKLBWZ128rrkz = 20265,
+  VPUNPCKLBWZ256rm = 20266,
+  VPUNPCKLBWZ256rmk = 20267,
+  VPUNPCKLBWZ256rmkz = 20268,
+  VPUNPCKLBWZ256rr = 20269,
+  VPUNPCKLBWZ256rrk = 20270,
+  VPUNPCKLBWZ256rrkz = 20271,
+  VPUNPCKLBWZrm = 20272,
+  VPUNPCKLBWZrmk = 20273,
+  VPUNPCKLBWZrmkz = 20274,
+  VPUNPCKLBWZrr = 20275,
+  VPUNPCKLBWZrrk = 20276,
+  VPUNPCKLBWZrrkz = 20277,
+  VPUNPCKLBWrm = 20278,
+  VPUNPCKLBWrr = 20279,
+  VPUNPCKLDQYrm = 20280,
+  VPUNPCKLDQYrr = 20281,
+  VPUNPCKLDQZ128rm = 20282,
+  VPUNPCKLDQZ128rmb = 20283,
+  VPUNPCKLDQZ128rmbk = 20284,
+  VPUNPCKLDQZ128rmbkz = 20285,
+  VPUNPCKLDQZ128rmk = 20286,
+  VPUNPCKLDQZ128rmkz = 20287,
+  VPUNPCKLDQZ128rr = 20288,
+  VPUNPCKLDQZ128rrk = 20289,
+  VPUNPCKLDQZ128rrkz = 20290,
+  VPUNPCKLDQZ256rm = 20291,
+  VPUNPCKLDQZ256rmb = 20292,
+  VPUNPCKLDQZ256rmbk = 20293,
+  VPUNPCKLDQZ256rmbkz = 20294,
+  VPUNPCKLDQZ256rmk = 20295,
+  VPUNPCKLDQZ256rmkz = 20296,
+  VPUNPCKLDQZ256rr = 20297,
+  VPUNPCKLDQZ256rrk = 20298,
+  VPUNPCKLDQZ256rrkz = 20299,
+  VPUNPCKLDQZrm = 20300,
+  VPUNPCKLDQZrmb = 20301,
+  VPUNPCKLDQZrmbk = 20302,
+  VPUNPCKLDQZrmbkz = 20303,
+  VPUNPCKLDQZrmk = 20304,
+  VPUNPCKLDQZrmkz = 20305,
+  VPUNPCKLDQZrr = 20306,
+  VPUNPCKLDQZrrk = 20307,
+  VPUNPCKLDQZrrkz = 20308,
+  VPUNPCKLDQrm = 20309,
+  VPUNPCKLDQrr = 20310,
+  VPUNPCKLQDQYrm = 20311,
+  VPUNPCKLQDQYrr = 20312,
+  VPUNPCKLQDQZ128rm = 20313,
+  VPUNPCKLQDQZ128rmb = 20314,
+  VPUNPCKLQDQZ128rmbk = 20315,
+  VPUNPCKLQDQZ128rmbkz = 20316,
+  VPUNPCKLQDQZ128rmk = 20317,
+  VPUNPCKLQDQZ128rmkz = 20318,
+  VPUNPCKLQDQZ128rr = 20319,
+  VPUNPCKLQDQZ128rrk = 20320,
+  VPUNPCKLQDQZ128rrkz = 20321,
+  VPUNPCKLQDQZ256rm = 20322,
+  VPUNPCKLQDQZ256rmb = 20323,
+  VPUNPCKLQDQZ256rmbk = 20324,
+  VPUNPCKLQDQZ256rmbkz = 20325,
+  VPUNPCKLQDQZ256rmk = 20326,
+  VPUNPCKLQDQZ256rmkz = 20327,
+  VPUNPCKLQDQZ256rr = 20328,
+  VPUNPCKLQDQZ256rrk = 20329,
+  VPUNPCKLQDQZ256rrkz = 20330,
+  VPUNPCKLQDQZrm = 20331,
+  VPUNPCKLQDQZrmb = 20332,
+  VPUNPCKLQDQZrmbk = 20333,
+  VPUNPCKLQDQZrmbkz = 20334,
+  VPUNPCKLQDQZrmk = 20335,
+  VPUNPCKLQDQZrmkz = 20336,
+  VPUNPCKLQDQZrr = 20337,
+  VPUNPCKLQDQZrrk = 20338,
+  VPUNPCKLQDQZrrkz = 20339,
+  VPUNPCKLQDQrm = 20340,
+  VPUNPCKLQDQrr = 20341,
+  VPUNPCKLWDYrm = 20342,
+  VPUNPCKLWDYrr = 20343,
+  VPUNPCKLWDZ128rm = 20344,
+  VPUNPCKLWDZ128rmk = 20345,
+  VPUNPCKLWDZ128rmkz = 20346,
+  VPUNPCKLWDZ128rr = 20347,
+  VPUNPCKLWDZ128rrk = 20348,
+  VPUNPCKLWDZ128rrkz = 20349,
+  VPUNPCKLWDZ256rm = 20350,
+  VPUNPCKLWDZ256rmk = 20351,
+  VPUNPCKLWDZ256rmkz = 20352,
+  VPUNPCKLWDZ256rr = 20353,
+  VPUNPCKLWDZ256rrk = 20354,
+  VPUNPCKLWDZ256rrkz = 20355,
+  VPUNPCKLWDZrm = 20356,
+  VPUNPCKLWDZrmk = 20357,
+  VPUNPCKLWDZrmkz = 20358,
+  VPUNPCKLWDZrr = 20359,
+  VPUNPCKLWDZrrk = 20360,
+  VPUNPCKLWDZrrkz = 20361,
+  VPUNPCKLWDrm = 20362,
+  VPUNPCKLWDrr = 20363,
+  VPXORDZ128rm = 20364,
+  VPXORDZ128rmb = 20365,
+  VPXORDZ128rmbk = 20366,
+  VPXORDZ128rmbkz = 20367,
+  VPXORDZ128rmk = 20368,
+  VPXORDZ128rmkz = 20369,
+  VPXORDZ128rr = 20370,
+  VPXORDZ128rrk = 20371,
+  VPXORDZ128rrkz = 20372,
+  VPXORDZ256rm = 20373,
+  VPXORDZ256rmb = 20374,
+  VPXORDZ256rmbk = 20375,
+  VPXORDZ256rmbkz = 20376,
+  VPXORDZ256rmk = 20377,
+  VPXORDZ256rmkz = 20378,
+  VPXORDZ256rr = 20379,
+  VPXORDZ256rrk = 20380,
+  VPXORDZ256rrkz = 20381,
+  VPXORDZrm = 20382,
+  VPXORDZrmb = 20383,
+  VPXORDZrmbk = 20384,
+  VPXORDZrmbkz = 20385,
+  VPXORDZrmk = 20386,
+  VPXORDZrmkz = 20387,
+  VPXORDZrr = 20388,
+  VPXORDZrrk = 20389,
+  VPXORDZrrkz = 20390,
+  VPXORQZ128rm = 20391,
+  VPXORQZ128rmb = 20392,
+  VPXORQZ128rmbk = 20393,
+  VPXORQZ128rmbkz = 20394,
+  VPXORQZ128rmk = 20395,
+  VPXORQZ128rmkz = 20396,
+  VPXORQZ128rr = 20397,
+  VPXORQZ128rrk = 20398,
+  VPXORQZ128rrkz = 20399,
+  VPXORQZ256rm = 20400,
+  VPXORQZ256rmb = 20401,
+  VPXORQZ256rmbk = 20402,
+  VPXORQZ256rmbkz = 20403,
+  VPXORQZ256rmk = 20404,
+  VPXORQZ256rmkz = 20405,
+  VPXORQZ256rr = 20406,
+  VPXORQZ256rrk = 20407,
+  VPXORQZ256rrkz = 20408,
+  VPXORQZrm = 20409,
+  VPXORQZrmb = 20410,
+  VPXORQZrmbk = 20411,
+  VPXORQZrmbkz = 20412,
+  VPXORQZrmk = 20413,
+  VPXORQZrmkz = 20414,
+  VPXORQZrr = 20415,
+  VPXORQZrrk = 20416,
+  VPXORQZrrkz = 20417,
+  VPXORYrm = 20418,
+  VPXORYrr = 20419,
+  VPXORrm = 20420,
+  VPXORrr = 20421,
+  VRANGEPDZ128rmbi = 20422,
+  VRANGEPDZ128rmbik = 20423,
+  VRANGEPDZ128rmbikz = 20424,
+  VRANGEPDZ128rmi = 20425,
+  VRANGEPDZ128rmik = 20426,
+  VRANGEPDZ128rmikz = 20427,
+  VRANGEPDZ128rri = 20428,
+  VRANGEPDZ128rrik = 20429,
+  VRANGEPDZ128rrikz = 20430,
+  VRANGEPDZ256rmbi = 20431,
+  VRANGEPDZ256rmbik = 20432,
+  VRANGEPDZ256rmbikz = 20433,
+  VRANGEPDZ256rmi = 20434,
+  VRANGEPDZ256rmik = 20435,
+  VRANGEPDZ256rmikz = 20436,
+  VRANGEPDZ256rri = 20437,
+  VRANGEPDZ256rrik = 20438,
+  VRANGEPDZ256rrikz = 20439,
+  VRANGEPDZrmbi = 20440,
+  VRANGEPDZrmbik = 20441,
+  VRANGEPDZrmbikz = 20442,
+  VRANGEPDZrmi = 20443,
+  VRANGEPDZrmik = 20444,
+  VRANGEPDZrmikz = 20445,
+  VRANGEPDZrri = 20446,
+  VRANGEPDZrrib = 20447,
+  VRANGEPDZrribk = 20448,
+  VRANGEPDZrribkz = 20449,
+  VRANGEPDZrrik = 20450,
+  VRANGEPDZrrikz = 20451,
+  VRANGEPSZ128rmbi = 20452,
+  VRANGEPSZ128rmbik = 20453,
+  VRANGEPSZ128rmbikz = 20454,
+  VRANGEPSZ128rmi = 20455,
+  VRANGEPSZ128rmik = 20456,
+  VRANGEPSZ128rmikz = 20457,
+  VRANGEPSZ128rri = 20458,
+  VRANGEPSZ128rrik = 20459,
+  VRANGEPSZ128rrikz = 20460,
+  VRANGEPSZ256rmbi = 20461,
+  VRANGEPSZ256rmbik = 20462,
+  VRANGEPSZ256rmbikz = 20463,
+  VRANGEPSZ256rmi = 20464,
+  VRANGEPSZ256rmik = 20465,
+  VRANGEPSZ256rmikz = 20466,
+  VRANGEPSZ256rri = 20467,
+  VRANGEPSZ256rrik = 20468,
+  VRANGEPSZ256rrikz = 20469,
+  VRANGEPSZrmbi = 20470,
+  VRANGEPSZrmbik = 20471,
+  VRANGEPSZrmbikz = 20472,
+  VRANGEPSZrmi = 20473,
+  VRANGEPSZrmik = 20474,
+  VRANGEPSZrmikz = 20475,
+  VRANGEPSZrri = 20476,
+  VRANGEPSZrrib = 20477,
+  VRANGEPSZrribk = 20478,
+  VRANGEPSZrribkz = 20479,
+  VRANGEPSZrrik = 20480,
+  VRANGEPSZrrikz = 20481,
+  VRANGESDZrmi = 20482,
+  VRANGESDZrmik = 20483,
+  VRANGESDZrmikz = 20484,
+  VRANGESDZrri = 20485,
+  VRANGESDZrrib = 20486,
+  VRANGESDZrribk = 20487,
+  VRANGESDZrribkz = 20488,
+  VRANGESDZrrik = 20489,
+  VRANGESDZrrikz = 20490,
+  VRANGESSZrmi = 20491,
+  VRANGESSZrmik = 20492,
+  VRANGESSZrmikz = 20493,
+  VRANGESSZrri = 20494,
+  VRANGESSZrrib = 20495,
+  VRANGESSZrribk = 20496,
+  VRANGESSZrribkz = 20497,
+  VRANGESSZrrik = 20498,
+  VRANGESSZrrikz = 20499,
+  VRCP14PDZ128m = 20500,
+  VRCP14PDZ128mb = 20501,
+  VRCP14PDZ128mbk = 20502,
+  VRCP14PDZ128mbkz = 20503,
+  VRCP14PDZ128mk = 20504,
+  VRCP14PDZ128mkz = 20505,
+  VRCP14PDZ128r = 20506,
+  VRCP14PDZ128rk = 20507,
+  VRCP14PDZ128rkz = 20508,
+  VRCP14PDZ256m = 20509,
+  VRCP14PDZ256mb = 20510,
+  VRCP14PDZ256mbk = 20511,
+  VRCP14PDZ256mbkz = 20512,
+  VRCP14PDZ256mk = 20513,
+  VRCP14PDZ256mkz = 20514,
+  VRCP14PDZ256r = 20515,
+  VRCP14PDZ256rk = 20516,
+  VRCP14PDZ256rkz = 20517,
+  VRCP14PDZm = 20518,
+  VRCP14PDZmb = 20519,
+  VRCP14PDZmbk = 20520,
+  VRCP14PDZmbkz = 20521,
+  VRCP14PDZmk = 20522,
+  VRCP14PDZmkz = 20523,
+  VRCP14PDZr = 20524,
+  VRCP14PDZrk = 20525,
+  VRCP14PDZrkz = 20526,
+  VRCP14PSZ128m = 20527,
+  VRCP14PSZ128mb = 20528,
+  VRCP14PSZ128mbk = 20529,
+  VRCP14PSZ128mbkz = 20530,
+  VRCP14PSZ128mk = 20531,
+  VRCP14PSZ128mkz = 20532,
+  VRCP14PSZ128r = 20533,
+  VRCP14PSZ128rk = 20534,
+  VRCP14PSZ128rkz = 20535,
+  VRCP14PSZ256m = 20536,
+  VRCP14PSZ256mb = 20537,
+  VRCP14PSZ256mbk = 20538,
+  VRCP14PSZ256mbkz = 20539,
+  VRCP14PSZ256mk = 20540,
+  VRCP14PSZ256mkz = 20541,
+  VRCP14PSZ256r = 20542,
+  VRCP14PSZ256rk = 20543,
+  VRCP14PSZ256rkz = 20544,
+  VRCP14PSZm = 20545,
+  VRCP14PSZmb = 20546,
+  VRCP14PSZmbk = 20547,
+  VRCP14PSZmbkz = 20548,
+  VRCP14PSZmk = 20549,
+  VRCP14PSZmkz = 20550,
+  VRCP14PSZr = 20551,
+  VRCP14PSZrk = 20552,
+  VRCP14PSZrkz = 20553,
+  VRCP14SDZrm = 20554,
+  VRCP14SDZrmk = 20555,
+  VRCP14SDZrmkz = 20556,
+  VRCP14SDZrr = 20557,
+  VRCP14SDZrrk = 20558,
+  VRCP14SDZrrkz = 20559,
+  VRCP14SSZrm = 20560,
+  VRCP14SSZrmk = 20561,
+  VRCP14SSZrmkz = 20562,
+  VRCP14SSZrr = 20563,
+  VRCP14SSZrrk = 20564,
+  VRCP14SSZrrkz = 20565,
+  VRCP28PDZm = 20566,
+  VRCP28PDZmb = 20567,
+  VRCP28PDZmbk = 20568,
+  VRCP28PDZmbkz = 20569,
+  VRCP28PDZmk = 20570,
+  VRCP28PDZmkz = 20571,
+  VRCP28PDZr = 20572,
+  VRCP28PDZrb = 20573,
+  VRCP28PDZrbk = 20574,
+  VRCP28PDZrbkz = 20575,
+  VRCP28PDZrk = 20576,
+  VRCP28PDZrkz = 20577,
+  VRCP28PSZm = 20578,
+  VRCP28PSZmb = 20579,
+  VRCP28PSZmbk = 20580,
+  VRCP28PSZmbkz = 20581,
+  VRCP28PSZmk = 20582,
+  VRCP28PSZmkz = 20583,
+  VRCP28PSZr = 20584,
+  VRCP28PSZrb = 20585,
+  VRCP28PSZrbk = 20586,
+  VRCP28PSZrbkz = 20587,
+  VRCP28PSZrk = 20588,
+  VRCP28PSZrkz = 20589,
+  VRCP28SDZm = 20590,
+  VRCP28SDZmk = 20591,
+  VRCP28SDZmkz = 20592,
+  VRCP28SDZr = 20593,
+  VRCP28SDZrb = 20594,
+  VRCP28SDZrbk = 20595,
+  VRCP28SDZrbkz = 20596,
+  VRCP28SDZrk = 20597,
+  VRCP28SDZrkz = 20598,
+  VRCP28SSZm = 20599,
+  VRCP28SSZmk = 20600,
+  VRCP28SSZmkz = 20601,
+  VRCP28SSZr = 20602,
+  VRCP28SSZrb = 20603,
+  VRCP28SSZrbk = 20604,
+  VRCP28SSZrbkz = 20605,
+  VRCP28SSZrk = 20606,
+  VRCP28SSZrkz = 20607,
+  VRCPBF16Z128m = 20608,
+  VRCPBF16Z128mb = 20609,
+  VRCPBF16Z128mbk = 20610,
+  VRCPBF16Z128mbkz = 20611,
+  VRCPBF16Z128mk = 20612,
+  VRCPBF16Z128mkz = 20613,
+  VRCPBF16Z128r = 20614,
+  VRCPBF16Z128rk = 20615,
+  VRCPBF16Z128rkz = 20616,
+  VRCPBF16Z256m = 20617,
+  VRCPBF16Z256mb = 20618,
+  VRCPBF16Z256mbk = 20619,
+  VRCPBF16Z256mbkz = 20620,
+  VRCPBF16Z256mk = 20621,
+  VRCPBF16Z256mkz = 20622,
+  VRCPBF16Z256r = 20623,
+  VRCPBF16Z256rk = 20624,
+  VRCPBF16Z256rkz = 20625,
+  VRCPBF16Zm = 20626,
+  VRCPBF16Zmb = 20627,
+  VRCPBF16Zmbk = 20628,
+  VRCPBF16Zmbkz = 20629,
+  VRCPBF16Zmk = 20630,
+  VRCPBF16Zmkz = 20631,
+  VRCPBF16Zr = 20632,
+  VRCPBF16Zrk = 20633,
+  VRCPBF16Zrkz = 20634,
+  VRCPPHZ128m = 20635,
+  VRCPPHZ128mb = 20636,
+  VRCPPHZ128mbk = 20637,
+  VRCPPHZ128mbkz = 20638,
+  VRCPPHZ128mk = 20639,
+  VRCPPHZ128mkz = 20640,
+  VRCPPHZ128r = 20641,
+  VRCPPHZ128rk = 20642,
+  VRCPPHZ128rkz = 20643,
+  VRCPPHZ256m = 20644,
+  VRCPPHZ256mb = 20645,
+  VRCPPHZ256mbk = 20646,
+  VRCPPHZ256mbkz = 20647,
+  VRCPPHZ256mk = 20648,
+  VRCPPHZ256mkz = 20649,
+  VRCPPHZ256r = 20650,
+  VRCPPHZ256rk = 20651,
+  VRCPPHZ256rkz = 20652,
+  VRCPPHZm = 20653,
+  VRCPPHZmb = 20654,
+  VRCPPHZmbk = 20655,
+  VRCPPHZmbkz = 20656,
+  VRCPPHZmk = 20657,
+  VRCPPHZmkz = 20658,
+  VRCPPHZr = 20659,
+  VRCPPHZrk = 20660,
+  VRCPPHZrkz = 20661,
+  VRCPPSYm = 20662,
+  VRCPPSYr = 20663,
+  VRCPPSm = 20664,
+  VRCPPSr = 20665,
+  VRCPSHZrm = 20666,
+  VRCPSHZrmk = 20667,
+  VRCPSHZrmkz = 20668,
+  VRCPSHZrr = 20669,
+  VRCPSHZrrk = 20670,
+  VRCPSHZrrkz = 20671,
+  VRCPSSm = 20672,
+  VRCPSSm_Int = 20673,
+  VRCPSSr = 20674,
+  VRCPSSr_Int = 20675,
+  VREDUCEBF16Z128rmbi = 20676,
+  VREDUCEBF16Z128rmbik = 20677,
+  VREDUCEBF16Z128rmbikz = 20678,
+  VREDUCEBF16Z128rmi = 20679,
+  VREDUCEBF16Z128rmik = 20680,
+  VREDUCEBF16Z128rmikz = 20681,
+  VREDUCEBF16Z128rri = 20682,
+  VREDUCEBF16Z128rrik = 20683,
+  VREDUCEBF16Z128rrikz = 20684,
+  VREDUCEBF16Z256rmbi = 20685,
+  VREDUCEBF16Z256rmbik = 20686,
+  VREDUCEBF16Z256rmbikz = 20687,
+  VREDUCEBF16Z256rmi = 20688,
+  VREDUCEBF16Z256rmik = 20689,
+  VREDUCEBF16Z256rmikz = 20690,
+  VREDUCEBF16Z256rri = 20691,
+  VREDUCEBF16Z256rrik = 20692,
+  VREDUCEBF16Z256rrikz = 20693,
+  VREDUCEBF16Zrmbi = 20694,
+  VREDUCEBF16Zrmbik = 20695,
+  VREDUCEBF16Zrmbikz = 20696,
+  VREDUCEBF16Zrmi = 20697,
+  VREDUCEBF16Zrmik = 20698,
+  VREDUCEBF16Zrmikz = 20699,
+  VREDUCEBF16Zrri = 20700,
+  VREDUCEBF16Zrrik = 20701,
+  VREDUCEBF16Zrrikz = 20702,
+  VREDUCEPDZ128rmbi = 20703,
+  VREDUCEPDZ128rmbik = 20704,
+  VREDUCEPDZ128rmbikz = 20705,
+  VREDUCEPDZ128rmi = 20706,
+  VREDUCEPDZ128rmik = 20707,
+  VREDUCEPDZ128rmikz = 20708,
+  VREDUCEPDZ128rri = 20709,
+  VREDUCEPDZ128rrik = 20710,
+  VREDUCEPDZ128rrikz = 20711,
+  VREDUCEPDZ256rmbi = 20712,
+  VREDUCEPDZ256rmbik = 20713,
+  VREDUCEPDZ256rmbikz = 20714,
+  VREDUCEPDZ256rmi = 20715,
+  VREDUCEPDZ256rmik = 20716,
+  VREDUCEPDZ256rmikz = 20717,
+  VREDUCEPDZ256rri = 20718,
+  VREDUCEPDZ256rrik = 20719,
+  VREDUCEPDZ256rrikz = 20720,
+  VREDUCEPDZrmbi = 20721,
+  VREDUCEPDZrmbik = 20722,
+  VREDUCEPDZrmbikz = 20723,
+  VREDUCEPDZrmi = 20724,
+  VREDUCEPDZrmik = 20725,
+  VREDUCEPDZrmikz = 20726,
+  VREDUCEPDZrri = 20727,
+  VREDUCEPDZrrib = 20728,
+  VREDUCEPDZrribk = 20729,
+  VREDUCEPDZrribkz = 20730,
+  VREDUCEPDZrrik = 20731,
+  VREDUCEPDZrrikz = 20732,
+  VREDUCEPHZ128rmbi = 20733,
+  VREDUCEPHZ128rmbik = 20734,
+  VREDUCEPHZ128rmbikz = 20735,
+  VREDUCEPHZ128rmi = 20736,
+  VREDUCEPHZ128rmik = 20737,
+  VREDUCEPHZ128rmikz = 20738,
+  VREDUCEPHZ128rri = 20739,
+  VREDUCEPHZ128rrik = 20740,
+  VREDUCEPHZ128rrikz = 20741,
+  VREDUCEPHZ256rmbi = 20742,
+  VREDUCEPHZ256rmbik = 20743,
+  VREDUCEPHZ256rmbikz = 20744,
+  VREDUCEPHZ256rmi = 20745,
+  VREDUCEPHZ256rmik = 20746,
+  VREDUCEPHZ256rmikz = 20747,
+  VREDUCEPHZ256rri = 20748,
+  VREDUCEPHZ256rrik = 20749,
+  VREDUCEPHZ256rrikz = 20750,
+  VREDUCEPHZrmbi = 20751,
+  VREDUCEPHZrmbik = 20752,
+  VREDUCEPHZrmbikz = 20753,
+  VREDUCEPHZrmi = 20754,
+  VREDUCEPHZrmik = 20755,
+  VREDUCEPHZrmikz = 20756,
+  VREDUCEPHZrri = 20757,
+  VREDUCEPHZrrib = 20758,
+  VREDUCEPHZrribk = 20759,
+  VREDUCEPHZrribkz = 20760,
+  VREDUCEPHZrrik = 20761,
+  VREDUCEPHZrrikz = 20762,
+  VREDUCEPSZ128rmbi = 20763,
+  VREDUCEPSZ128rmbik = 20764,
+  VREDUCEPSZ128rmbikz = 20765,
+  VREDUCEPSZ128rmi = 20766,
+  VREDUCEPSZ128rmik = 20767,
+  VREDUCEPSZ128rmikz = 20768,
+  VREDUCEPSZ128rri = 20769,
+  VREDUCEPSZ128rrik = 20770,
+  VREDUCEPSZ128rrikz = 20771,
+  VREDUCEPSZ256rmbi = 20772,
+  VREDUCEPSZ256rmbik = 20773,
+  VREDUCEPSZ256rmbikz = 20774,
+  VREDUCEPSZ256rmi = 20775,
+  VREDUCEPSZ256rmik = 20776,
+  VREDUCEPSZ256rmikz = 20777,
+  VREDUCEPSZ256rri = 20778,
+  VREDUCEPSZ256rrik = 20779,
+  VREDUCEPSZ256rrikz = 20780,
+  VREDUCEPSZrmbi = 20781,
+  VREDUCEPSZrmbik = 20782,
+  VREDUCEPSZrmbikz = 20783,
+  VREDUCEPSZrmi = 20784,
+  VREDUCEPSZrmik = 20785,
+  VREDUCEPSZrmikz = 20786,
+  VREDUCEPSZrri = 20787,
+  VREDUCEPSZrrib = 20788,
+  VREDUCEPSZrribk = 20789,
+  VREDUCEPSZrribkz = 20790,
+  VREDUCEPSZrrik = 20791,
+  VREDUCEPSZrrikz = 20792,
+  VREDUCESDZrmi = 20793,
+  VREDUCESDZrmik = 20794,
+  VREDUCESDZrmikz = 20795,
+  VREDUCESDZrri = 20796,
+  VREDUCESDZrrib = 20797,
+  VREDUCESDZrribk = 20798,
+  VREDUCESDZrribkz = 20799,
+  VREDUCESDZrrik = 20800,
+  VREDUCESDZrrikz = 20801,
+  VREDUCESHZrmi = 20802,
+  VREDUCESHZrmik = 20803,
+  VREDUCESHZrmikz = 20804,
+  VREDUCESHZrri = 20805,
+  VREDUCESHZrrib = 20806,
+  VREDUCESHZrribk = 20807,
+  VREDUCESHZrribkz = 20808,
+  VREDUCESHZrrik = 20809,
+  VREDUCESHZrrikz = 20810,
+  VREDUCESSZrmi = 20811,
+  VREDUCESSZrmik = 20812,
+  VREDUCESSZrmikz = 20813,
+  VREDUCESSZrri = 20814,
+  VREDUCESSZrrib = 20815,
+  VREDUCESSZrribk = 20816,
+  VREDUCESSZrribkz = 20817,
+  VREDUCESSZrrik = 20818,
+  VREDUCESSZrrikz = 20819,
+  VRNDSCALEBF16Z128rmbi = 20820,
+  VRNDSCALEBF16Z128rmbik = 20821,
+  VRNDSCALEBF16Z128rmbikz = 20822,
+  VRNDSCALEBF16Z128rmi = 20823,
+  VRNDSCALEBF16Z128rmik = 20824,
+  VRNDSCALEBF16Z128rmikz = 20825,
+  VRNDSCALEBF16Z128rri = 20826,
+  VRNDSCALEBF16Z128rrik = 20827,
+  VRNDSCALEBF16Z128rrikz = 20828,
+  VRNDSCALEBF16Z256rmbi = 20829,
+  VRNDSCALEBF16Z256rmbik = 20830,
+  VRNDSCALEBF16Z256rmbikz = 20831,
+  VRNDSCALEBF16Z256rmi = 20832,
+  VRNDSCALEBF16Z256rmik = 20833,
+  VRNDSCALEBF16Z256rmikz = 20834,
+  VRNDSCALEBF16Z256rri = 20835,
+  VRNDSCALEBF16Z256rrik = 20836,
+  VRNDSCALEBF16Z256rrikz = 20837,
+  VRNDSCALEBF16Zrmbi = 20838,
+  VRNDSCALEBF16Zrmbik = 20839,
+  VRNDSCALEBF16Zrmbikz = 20840,
+  VRNDSCALEBF16Zrmi = 20841,
+  VRNDSCALEBF16Zrmik = 20842,
+  VRNDSCALEBF16Zrmikz = 20843,
+  VRNDSCALEBF16Zrri = 20844,
+  VRNDSCALEBF16Zrrik = 20845,
+  VRNDSCALEBF16Zrrikz = 20846,
+  VRNDSCALEPDZ128rmbi = 20847,
+  VRNDSCALEPDZ128rmbik = 20848,
+  VRNDSCALEPDZ128rmbikz = 20849,
+  VRNDSCALEPDZ128rmi = 20850,
+  VRNDSCALEPDZ128rmik = 20851,
+  VRNDSCALEPDZ128rmikz = 20852,
+  VRNDSCALEPDZ128rri = 20853,
+  VRNDSCALEPDZ128rrik = 20854,
+  VRNDSCALEPDZ128rrikz = 20855,
+  VRNDSCALEPDZ256rmbi = 20856,
+  VRNDSCALEPDZ256rmbik = 20857,
+  VRNDSCALEPDZ256rmbikz = 20858,
+  VRNDSCALEPDZ256rmi = 20859,
+  VRNDSCALEPDZ256rmik = 20860,
+  VRNDSCALEPDZ256rmikz = 20861,
+  VRNDSCALEPDZ256rri = 20862,
+  VRNDSCALEPDZ256rrik = 20863,
+  VRNDSCALEPDZ256rrikz = 20864,
+  VRNDSCALEPDZrmbi = 20865,
+  VRNDSCALEPDZrmbik = 20866,
+  VRNDSCALEPDZrmbikz = 20867,
+  VRNDSCALEPDZrmi = 20868,
+  VRNDSCALEPDZrmik = 20869,
+  VRNDSCALEPDZrmikz = 20870,
+  VRNDSCALEPDZrri = 20871,
+  VRNDSCALEPDZrrib = 20872,
+  VRNDSCALEPDZrribk = 20873,
+  VRNDSCALEPDZrribkz = 20874,
+  VRNDSCALEPDZrrik = 20875,
+  VRNDSCALEPDZrrikz = 20876,
+  VRNDSCALEPHZ128rmbi = 20877,
+  VRNDSCALEPHZ128rmbik = 20878,
+  VRNDSCALEPHZ128rmbikz = 20879,
+  VRNDSCALEPHZ128rmi = 20880,
+  VRNDSCALEPHZ128rmik = 20881,
+  VRNDSCALEPHZ128rmikz = 20882,
+  VRNDSCALEPHZ128rri = 20883,
+  VRNDSCALEPHZ128rrik = 20884,
+  VRNDSCALEPHZ128rrikz = 20885,
+  VRNDSCALEPHZ256rmbi = 20886,
+  VRNDSCALEPHZ256rmbik = 20887,
+  VRNDSCALEPHZ256rmbikz = 20888,
+  VRNDSCALEPHZ256rmi = 20889,
+  VRNDSCALEPHZ256rmik = 20890,
+  VRNDSCALEPHZ256rmikz = 20891,
+  VRNDSCALEPHZ256rri = 20892,
+  VRNDSCALEPHZ256rrik = 20893,
+  VRNDSCALEPHZ256rrikz = 20894,
+  VRNDSCALEPHZrmbi = 20895,
+  VRNDSCALEPHZrmbik = 20896,
+  VRNDSCALEPHZrmbikz = 20897,
+  VRNDSCALEPHZrmi = 20898,
+  VRNDSCALEPHZrmik = 20899,
+  VRNDSCALEPHZrmikz = 20900,
+  VRNDSCALEPHZrri = 20901,
+  VRNDSCALEPHZrrib = 20902,
+  VRNDSCALEPHZrribk = 20903,
+  VRNDSCALEPHZrribkz = 20904,
+  VRNDSCALEPHZrrik = 20905,
+  VRNDSCALEPHZrrikz = 20906,
+  VRNDSCALEPSZ128rmbi = 20907,
+  VRNDSCALEPSZ128rmbik = 20908,
+  VRNDSCALEPSZ128rmbikz = 20909,
+  VRNDSCALEPSZ128rmi = 20910,
+  VRNDSCALEPSZ128rmik = 20911,
+  VRNDSCALEPSZ128rmikz = 20912,
+  VRNDSCALEPSZ128rri = 20913,
+  VRNDSCALEPSZ128rrik = 20914,
+  VRNDSCALEPSZ128rrikz = 20915,
+  VRNDSCALEPSZ256rmbi = 20916,
+  VRNDSCALEPSZ256rmbik = 20917,
+  VRNDSCALEPSZ256rmbikz = 20918,
+  VRNDSCALEPSZ256rmi = 20919,
+  VRNDSCALEPSZ256rmik = 20920,
+  VRNDSCALEPSZ256rmikz = 20921,
+  VRNDSCALEPSZ256rri = 20922,
+  VRNDSCALEPSZ256rrik = 20923,
+  VRNDSCALEPSZ256rrikz = 20924,
+  VRNDSCALEPSZrmbi = 20925,
+  VRNDSCALEPSZrmbik = 20926,
+  VRNDSCALEPSZrmbikz = 20927,
+  VRNDSCALEPSZrmi = 20928,
+  VRNDSCALEPSZrmik = 20929,
+  VRNDSCALEPSZrmikz = 20930,
+  VRNDSCALEPSZrri = 20931,
+  VRNDSCALEPSZrrib = 20932,
+  VRNDSCALEPSZrribk = 20933,
+  VRNDSCALEPSZrribkz = 20934,
+  VRNDSCALEPSZrrik = 20935,
+  VRNDSCALEPSZrrikz = 20936,
+  VRNDSCALESDZrmi = 20937,
+  VRNDSCALESDZrmi_Int = 20938,
+  VRNDSCALESDZrmik_Int = 20939,
+  VRNDSCALESDZrmikz_Int = 20940,
+  VRNDSCALESDZrri = 20941,
+  VRNDSCALESDZrri_Int = 20942,
+  VRNDSCALESDZrrib_Int = 20943,
+  VRNDSCALESDZrribk_Int = 20944,
+  VRNDSCALESDZrribkz_Int = 20945,
+  VRNDSCALESDZrrik_Int = 20946,
+  VRNDSCALESDZrrikz_Int = 20947,
+  VRNDSCALESHZrmi = 20948,
+  VRNDSCALESHZrmi_Int = 20949,
+  VRNDSCALESHZrmik_Int = 20950,
+  VRNDSCALESHZrmikz_Int = 20951,
+  VRNDSCALESHZrri = 20952,
+  VRNDSCALESHZrri_Int = 20953,
+  VRNDSCALESHZrrib_Int = 20954,
+  VRNDSCALESHZrribk_Int = 20955,
+  VRNDSCALESHZrribkz_Int = 20956,
+  VRNDSCALESHZrrik_Int = 20957,
+  VRNDSCALESHZrrikz_Int = 20958,
+  VRNDSCALESSZrmi = 20959,
+  VRNDSCALESSZrmi_Int = 20960,
+  VRNDSCALESSZrmik_Int = 20961,
+  VRNDSCALESSZrmikz_Int = 20962,
+  VRNDSCALESSZrri = 20963,
+  VRNDSCALESSZrri_Int = 20964,
+  VRNDSCALESSZrrib_Int = 20965,
+  VRNDSCALESSZrribk_Int = 20966,
+  VRNDSCALESSZrribkz_Int = 20967,
+  VRNDSCALESSZrrik_Int = 20968,
+  VRNDSCALESSZrrikz_Int = 20969,
+  VROUNDPDYmi = 20970,
+  VROUNDPDYri = 20971,
+  VROUNDPDmi = 20972,
+  VROUNDPDri = 20973,
+  VROUNDPSYmi = 20974,
+  VROUNDPSYri = 20975,
+  VROUNDPSmi = 20976,
+  VROUNDPSri = 20977,
+  VROUNDSDmi = 20978,
+  VROUNDSDmi_Int = 20979,
+  VROUNDSDri = 20980,
+  VROUNDSDri_Int = 20981,
+  VROUNDSSmi = 20982,
+  VROUNDSSmi_Int = 20983,
+  VROUNDSSri = 20984,
+  VROUNDSSri_Int = 20985,
+  VRSQRT14PDZ128m = 20986,
+  VRSQRT14PDZ128mb = 20987,
+  VRSQRT14PDZ128mbk = 20988,
+  VRSQRT14PDZ128mbkz = 20989,
+  VRSQRT14PDZ128mk = 20990,
+  VRSQRT14PDZ128mkz = 20991,
+  VRSQRT14PDZ128r = 20992,
+  VRSQRT14PDZ128rk = 20993,
+  VRSQRT14PDZ128rkz = 20994,
+  VRSQRT14PDZ256m = 20995,
+  VRSQRT14PDZ256mb = 20996,
+  VRSQRT14PDZ256mbk = 20997,
+  VRSQRT14PDZ256mbkz = 20998,
+  VRSQRT14PDZ256mk = 20999,
+  VRSQRT14PDZ256mkz = 21000,
+  VRSQRT14PDZ256r = 21001,
+  VRSQRT14PDZ256rk = 21002,
+  VRSQRT14PDZ256rkz = 21003,
+  VRSQRT14PDZm = 21004,
+  VRSQRT14PDZmb = 21005,
+  VRSQRT14PDZmbk = 21006,
+  VRSQRT14PDZmbkz = 21007,
+  VRSQRT14PDZmk = 21008,
+  VRSQRT14PDZmkz = 21009,
+  VRSQRT14PDZr = 21010,
+  VRSQRT14PDZrk = 21011,
+  VRSQRT14PDZrkz = 21012,
+  VRSQRT14PSZ128m = 21013,
+  VRSQRT14PSZ128mb = 21014,
+  VRSQRT14PSZ128mbk = 21015,
+  VRSQRT14PSZ128mbkz = 21016,
+  VRSQRT14PSZ128mk = 21017,
+  VRSQRT14PSZ128mkz = 21018,
+  VRSQRT14PSZ128r = 21019,
+  VRSQRT14PSZ128rk = 21020,
+  VRSQRT14PSZ128rkz = 21021,
+  VRSQRT14PSZ256m = 21022,
+  VRSQRT14PSZ256mb = 21023,
+  VRSQRT14PSZ256mbk = 21024,
+  VRSQRT14PSZ256mbkz = 21025,
+  VRSQRT14PSZ256mk = 21026,
+  VRSQRT14PSZ256mkz = 21027,
+  VRSQRT14PSZ256r = 21028,
+  VRSQRT14PSZ256rk = 21029,
+  VRSQRT14PSZ256rkz = 21030,
+  VRSQRT14PSZm = 21031,
+  VRSQRT14PSZmb = 21032,
+  VRSQRT14PSZmbk = 21033,
+  VRSQRT14PSZmbkz = 21034,
+  VRSQRT14PSZmk = 21035,
+  VRSQRT14PSZmkz = 21036,
+  VRSQRT14PSZr = 21037,
+  VRSQRT14PSZrk = 21038,
+  VRSQRT14PSZrkz = 21039,
+  VRSQRT14SDZrm = 21040,
+  VRSQRT14SDZrmk = 21041,
+  VRSQRT14SDZrmkz = 21042,
+  VRSQRT14SDZrr = 21043,
+  VRSQRT14SDZrrk = 21044,
+  VRSQRT14SDZrrkz = 21045,
+  VRSQRT14SSZrm = 21046,
+  VRSQRT14SSZrmk = 21047,
+  VRSQRT14SSZrmkz = 21048,
+  VRSQRT14SSZrr = 21049,
+  VRSQRT14SSZrrk = 21050,
+  VRSQRT14SSZrrkz = 21051,
+  VRSQRT28PDZm = 21052,
+  VRSQRT28PDZmb = 21053,
+  VRSQRT28PDZmbk = 21054,
+  VRSQRT28PDZmbkz = 21055,
+  VRSQRT28PDZmk = 21056,
+  VRSQRT28PDZmkz = 21057,
+  VRSQRT28PDZr = 21058,
+  VRSQRT28PDZrb = 21059,
+  VRSQRT28PDZrbk = 21060,
+  VRSQRT28PDZrbkz = 21061,
+  VRSQRT28PDZrk = 21062,
+  VRSQRT28PDZrkz = 21063,
+  VRSQRT28PSZm = 21064,
+  VRSQRT28PSZmb = 21065,
+  VRSQRT28PSZmbk = 21066,
+  VRSQRT28PSZmbkz = 21067,
+  VRSQRT28PSZmk = 21068,
+  VRSQRT28PSZmkz = 21069,
+  VRSQRT28PSZr = 21070,
+  VRSQRT28PSZrb = 21071,
+  VRSQRT28PSZrbk = 21072,
+  VRSQRT28PSZrbkz = 21073,
+  VRSQRT28PSZrk = 21074,
+  VRSQRT28PSZrkz = 21075,
+  VRSQRT28SDZm = 21076,
+  VRSQRT28SDZmk = 21077,
+  VRSQRT28SDZmkz = 21078,
+  VRSQRT28SDZr = 21079,
+  VRSQRT28SDZrb = 21080,
+  VRSQRT28SDZrbk = 21081,
+  VRSQRT28SDZrbkz = 21082,
+  VRSQRT28SDZrk = 21083,
+  VRSQRT28SDZrkz = 21084,
+  VRSQRT28SSZm = 21085,
+  VRSQRT28SSZmk = 21086,
+  VRSQRT28SSZmkz = 21087,
+  VRSQRT28SSZr = 21088,
+  VRSQRT28SSZrb = 21089,
+  VRSQRT28SSZrbk = 21090,
+  VRSQRT28SSZrbkz = 21091,
+  VRSQRT28SSZrk = 21092,
+  VRSQRT28SSZrkz = 21093,
+  VRSQRTBF16Z128m = 21094,
+  VRSQRTBF16Z128mb = 21095,
+  VRSQRTBF16Z128mbk = 21096,
+  VRSQRTBF16Z128mbkz = 21097,
+  VRSQRTBF16Z128mk = 21098,
+  VRSQRTBF16Z128mkz = 21099,
+  VRSQRTBF16Z128r = 21100,
+  VRSQRTBF16Z128rk = 21101,
+  VRSQRTBF16Z128rkz = 21102,
+  VRSQRTBF16Z256m = 21103,
+  VRSQRTBF16Z256mb = 21104,
+  VRSQRTBF16Z256mbk = 21105,
+  VRSQRTBF16Z256mbkz = 21106,
+  VRSQRTBF16Z256mk = 21107,
+  VRSQRTBF16Z256mkz = 21108,
+  VRSQRTBF16Z256r = 21109,
+  VRSQRTBF16Z256rk = 21110,
+  VRSQRTBF16Z256rkz = 21111,
+  VRSQRTBF16Zm = 21112,
+  VRSQRTBF16Zmb = 21113,
+  VRSQRTBF16Zmbk = 21114,
+  VRSQRTBF16Zmbkz = 21115,
+  VRSQRTBF16Zmk = 21116,
+  VRSQRTBF16Zmkz = 21117,
+  VRSQRTBF16Zr = 21118,
+  VRSQRTBF16Zrk = 21119,
+  VRSQRTBF16Zrkz = 21120,
+  VRSQRTPHZ128m = 21121,
+  VRSQRTPHZ128mb = 21122,
+  VRSQRTPHZ128mbk = 21123,
+  VRSQRTPHZ128mbkz = 21124,
+  VRSQRTPHZ128mk = 21125,
+  VRSQRTPHZ128mkz = 21126,
+  VRSQRTPHZ128r = 21127,
+  VRSQRTPHZ128rk = 21128,
+  VRSQRTPHZ128rkz = 21129,
+  VRSQRTPHZ256m = 21130,
+  VRSQRTPHZ256mb = 21131,
+  VRSQRTPHZ256mbk = 21132,
+  VRSQRTPHZ256mbkz = 21133,
+  VRSQRTPHZ256mk = 21134,
+  VRSQRTPHZ256mkz = 21135,
+  VRSQRTPHZ256r = 21136,
+  VRSQRTPHZ256rk = 21137,
+  VRSQRTPHZ256rkz = 21138,
+  VRSQRTPHZm = 21139,
+  VRSQRTPHZmb = 21140,
+  VRSQRTPHZmbk = 21141,
+  VRSQRTPHZmbkz = 21142,
+  VRSQRTPHZmk = 21143,
+  VRSQRTPHZmkz = 21144,
+  VRSQRTPHZr = 21145,
+  VRSQRTPHZrk = 21146,
+  VRSQRTPHZrkz = 21147,
+  VRSQRTPSYm = 21148,
+  VRSQRTPSYr = 21149,
+  VRSQRTPSm = 21150,
+  VRSQRTPSr = 21151,
+  VRSQRTSHZrm = 21152,
+  VRSQRTSHZrmk = 21153,
+  VRSQRTSHZrmkz = 21154,
+  VRSQRTSHZrr = 21155,
+  VRSQRTSHZrrk = 21156,
+  VRSQRTSHZrrkz = 21157,
+  VRSQRTSSm = 21158,
+  VRSQRTSSm_Int = 21159,
+  VRSQRTSSr = 21160,
+  VRSQRTSSr_Int = 21161,
+  VSCALEFBF16Z128rm = 21162,
+  VSCALEFBF16Z128rmb = 21163,
+  VSCALEFBF16Z128rmbk = 21164,
+  VSCALEFBF16Z128rmbkz = 21165,
+  VSCALEFBF16Z128rmk = 21166,
+  VSCALEFBF16Z128rmkz = 21167,
+  VSCALEFBF16Z128rr = 21168,
+  VSCALEFBF16Z128rrk = 21169,
+  VSCALEFBF16Z128rrkz = 21170,
+  VSCALEFBF16Z256rm = 21171,
+  VSCALEFBF16Z256rmb = 21172,
+  VSCALEFBF16Z256rmbk = 21173,
+  VSCALEFBF16Z256rmbkz = 21174,
+  VSCALEFBF16Z256rmk = 21175,
+  VSCALEFBF16Z256rmkz = 21176,
+  VSCALEFBF16Z256rr = 21177,
+  VSCALEFBF16Z256rrk = 21178,
+  VSCALEFBF16Z256rrkz = 21179,
+  VSCALEFBF16Zrm = 21180,
+  VSCALEFBF16Zrmb = 21181,
+  VSCALEFBF16Zrmbk = 21182,
+  VSCALEFBF16Zrmbkz = 21183,
+  VSCALEFBF16Zrmk = 21184,
+  VSCALEFBF16Zrmkz = 21185,
+  VSCALEFBF16Zrr = 21186,
+  VSCALEFBF16Zrrk = 21187,
+  VSCALEFBF16Zrrkz = 21188,
+  VSCALEFPDZ128rm = 21189,
+  VSCALEFPDZ128rmb = 21190,
+  VSCALEFPDZ128rmbk = 21191,
+  VSCALEFPDZ128rmbkz = 21192,
+  VSCALEFPDZ128rmk = 21193,
+  VSCALEFPDZ128rmkz = 21194,
+  VSCALEFPDZ128rr = 21195,
+  VSCALEFPDZ128rrk = 21196,
+  VSCALEFPDZ128rrkz = 21197,
+  VSCALEFPDZ256rm = 21198,
+  VSCALEFPDZ256rmb = 21199,
+  VSCALEFPDZ256rmbk = 21200,
+  VSCALEFPDZ256rmbkz = 21201,
+  VSCALEFPDZ256rmk = 21202,
+  VSCALEFPDZ256rmkz = 21203,
+  VSCALEFPDZ256rr = 21204,
+  VSCALEFPDZ256rrk = 21205,
+  VSCALEFPDZ256rrkz = 21206,
+  VSCALEFPDZrm = 21207,
+  VSCALEFPDZrmb = 21208,
+  VSCALEFPDZrmbk = 21209,
+  VSCALEFPDZrmbkz = 21210,
+  VSCALEFPDZrmk = 21211,
+  VSCALEFPDZrmkz = 21212,
+  VSCALEFPDZrr = 21213,
+  VSCALEFPDZrrb = 21214,
+  VSCALEFPDZrrbk = 21215,
+  VSCALEFPDZrrbkz = 21216,
+  VSCALEFPDZrrk = 21217,
+  VSCALEFPDZrrkz = 21218,
+  VSCALEFPHZ128rm = 21219,
+  VSCALEFPHZ128rmb = 21220,
+  VSCALEFPHZ128rmbk = 21221,
+  VSCALEFPHZ128rmbkz = 21222,
+  VSCALEFPHZ128rmk = 21223,
+  VSCALEFPHZ128rmkz = 21224,
+  VSCALEFPHZ128rr = 21225,
+  VSCALEFPHZ128rrk = 21226,
+  VSCALEFPHZ128rrkz = 21227,
+  VSCALEFPHZ256rm = 21228,
+  VSCALEFPHZ256rmb = 21229,
+  VSCALEFPHZ256rmbk = 21230,
+  VSCALEFPHZ256rmbkz = 21231,
+  VSCALEFPHZ256rmk = 21232,
+  VSCALEFPHZ256rmkz = 21233,
+  VSCALEFPHZ256rr = 21234,
+  VSCALEFPHZ256rrk = 21235,
+  VSCALEFPHZ256rrkz = 21236,
+  VSCALEFPHZrm = 21237,
+  VSCALEFPHZrmb = 21238,
+  VSCALEFPHZrmbk = 21239,
+  VSCALEFPHZrmbkz = 21240,
+  VSCALEFPHZrmk = 21241,
+  VSCALEFPHZrmkz = 21242,
+  VSCALEFPHZrr = 21243,
+  VSCALEFPHZrrb = 21244,
+  VSCALEFPHZrrbk = 21245,
+  VSCALEFPHZrrbkz = 21246,
+  VSCALEFPHZrrk = 21247,
+  VSCALEFPHZrrkz = 21248,
+  VSCALEFPSZ128rm = 21249,
+  VSCALEFPSZ128rmb = 21250,
+  VSCALEFPSZ128rmbk = 21251,
+  VSCALEFPSZ128rmbkz = 21252,
+  VSCALEFPSZ128rmk = 21253,
+  VSCALEFPSZ128rmkz = 21254,
+  VSCALEFPSZ128rr = 21255,
+  VSCALEFPSZ128rrk = 21256,
+  VSCALEFPSZ128rrkz = 21257,
+  VSCALEFPSZ256rm = 21258,
+  VSCALEFPSZ256rmb = 21259,
+  VSCALEFPSZ256rmbk = 21260,
+  VSCALEFPSZ256rmbkz = 21261,
+  VSCALEFPSZ256rmk = 21262,
+  VSCALEFPSZ256rmkz = 21263,
+  VSCALEFPSZ256rr = 21264,
+  VSCALEFPSZ256rrk = 21265,
+  VSCALEFPSZ256rrkz = 21266,
+  VSCALEFPSZrm = 21267,
+  VSCALEFPSZrmb = 21268,
+  VSCALEFPSZrmbk = 21269,
+  VSCALEFPSZrmbkz = 21270,
+  VSCALEFPSZrmk = 21271,
+  VSCALEFPSZrmkz = 21272,
+  VSCALEFPSZrr = 21273,
+  VSCALEFPSZrrb = 21274,
+  VSCALEFPSZrrbk = 21275,
+  VSCALEFPSZrrbkz = 21276,
+  VSCALEFPSZrrk = 21277,
+  VSCALEFPSZrrkz = 21278,
+  VSCALEFSDZrm = 21279,
+  VSCALEFSDZrmk = 21280,
+  VSCALEFSDZrmkz = 21281,
+  VSCALEFSDZrr = 21282,
+  VSCALEFSDZrrb_Int = 21283,
+  VSCALEFSDZrrbk_Int = 21284,
+  VSCALEFSDZrrbkz_Int = 21285,
+  VSCALEFSDZrrk = 21286,
+  VSCALEFSDZrrkz = 21287,
+  VSCALEFSHZrm = 21288,
+  VSCALEFSHZrmk = 21289,
+  VSCALEFSHZrmkz = 21290,
+  VSCALEFSHZrr = 21291,
+  VSCALEFSHZrrb_Int = 21292,
+  VSCALEFSHZrrbk_Int = 21293,
+  VSCALEFSHZrrbkz_Int = 21294,
+  VSCALEFSHZrrk = 21295,
+  VSCALEFSHZrrkz = 21296,
+  VSCALEFSSZrm = 21297,
+  VSCALEFSSZrmk = 21298,
+  VSCALEFSSZrmkz = 21299,
+  VSCALEFSSZrr = 21300,
+  VSCALEFSSZrrb_Int = 21301,
+  VSCALEFSSZrrbk_Int = 21302,
+  VSCALEFSSZrrbkz_Int = 21303,
+  VSCALEFSSZrrk = 21304,
+  VSCALEFSSZrrkz = 21305,
+  VSCATTERDPDZ128mr = 21306,
+  VSCATTERDPDZ256mr = 21307,
+  VSCATTERDPDZmr = 21308,
+  VSCATTERDPSZ128mr = 21309,
+  VSCATTERDPSZ256mr = 21310,
+  VSCATTERDPSZmr = 21311,
+  VSCATTERPF0DPDm = 21312,
+  VSCATTERPF0DPSm = 21313,
+  VSCATTERPF0QPDm = 21314,
+  VSCATTERPF0QPSm = 21315,
+  VSCATTERPF1DPDm = 21316,
+  VSCATTERPF1DPSm = 21317,
+  VSCATTERPF1QPDm = 21318,
+  VSCATTERPF1QPSm = 21319,
+  VSCATTERQPDZ128mr = 21320,
+  VSCATTERQPDZ256mr = 21321,
+  VSCATTERQPDZmr = 21322,
+  VSCATTERQPSZ128mr = 21323,
+  VSCATTERQPSZ256mr = 21324,
+  VSCATTERQPSZmr = 21325,
+  VSHA512MSG1rr = 21326,
+  VSHA512MSG2rr = 21327,
+  VSHA512RNDS2rr = 21328,
+  VSHUFF32X4Z256rmbi = 21329,
+  VSHUFF32X4Z256rmbik = 21330,
+  VSHUFF32X4Z256rmbikz = 21331,
+  VSHUFF32X4Z256rmi = 21332,
+  VSHUFF32X4Z256rmik = 21333,
+  VSHUFF32X4Z256rmikz = 21334,
+  VSHUFF32X4Z256rri = 21335,
+  VSHUFF32X4Z256rrik = 21336,
+  VSHUFF32X4Z256rrikz = 21337,
+  VSHUFF32X4Zrmbi = 21338,
+  VSHUFF32X4Zrmbik = 21339,
+  VSHUFF32X4Zrmbikz = 21340,
+  VSHUFF32X4Zrmi = 21341,
+  VSHUFF32X4Zrmik = 21342,
+  VSHUFF32X4Zrmikz = 21343,
+  VSHUFF32X4Zrri = 21344,
+  VSHUFF32X4Zrrik = 21345,
+  VSHUFF32X4Zrrikz = 21346,
+  VSHUFF64X2Z256rmbi = 21347,
+  VSHUFF64X2Z256rmbik = 21348,
+  VSHUFF64X2Z256rmbikz = 21349,
+  VSHUFF64X2Z256rmi = 21350,
+  VSHUFF64X2Z256rmik = 21351,
+  VSHUFF64X2Z256rmikz = 21352,
+  VSHUFF64X2Z256rri = 21353,
+  VSHUFF64X2Z256rrik = 21354,
+  VSHUFF64X2Z256rrikz = 21355,
+  VSHUFF64X2Zrmbi = 21356,
+  VSHUFF64X2Zrmbik = 21357,
+  VSHUFF64X2Zrmbikz = 21358,
+  VSHUFF64X2Zrmi = 21359,
+  VSHUFF64X2Zrmik = 21360,
+  VSHUFF64X2Zrmikz = 21361,
+  VSHUFF64X2Zrri = 21362,
+  VSHUFF64X2Zrrik = 21363,
+  VSHUFF64X2Zrrikz = 21364,
+  VSHUFI32X4Z256rmbi = 21365,
+  VSHUFI32X4Z256rmbik = 21366,
+  VSHUFI32X4Z256rmbikz = 21367,
+  VSHUFI32X4Z256rmi = 21368,
+  VSHUFI32X4Z256rmik = 21369,
+  VSHUFI32X4Z256rmikz = 21370,
+  VSHUFI32X4Z256rri = 21371,
+  VSHUFI32X4Z256rrik = 21372,
+  VSHUFI32X4Z256rrikz = 21373,
+  VSHUFI32X4Zrmbi = 21374,
+  VSHUFI32X4Zrmbik = 21375,
+  VSHUFI32X4Zrmbikz = 21376,
+  VSHUFI32X4Zrmi = 21377,
+  VSHUFI32X4Zrmik = 21378,
+  VSHUFI32X4Zrmikz = 21379,
+  VSHUFI32X4Zrri = 21380,
+  VSHUFI32X4Zrrik = 21381,
+  VSHUFI32X4Zrrikz = 21382,
+  VSHUFI64X2Z256rmbi = 21383,
+  VSHUFI64X2Z256rmbik = 21384,
+  VSHUFI64X2Z256rmbikz = 21385,
+  VSHUFI64X2Z256rmi = 21386,
+  VSHUFI64X2Z256rmik = 21387,
+  VSHUFI64X2Z256rmikz = 21388,
+  VSHUFI64X2Z256rri = 21389,
+  VSHUFI64X2Z256rrik = 21390,
+  VSHUFI64X2Z256rrikz = 21391,
+  VSHUFI64X2Zrmbi = 21392,
+  VSHUFI64X2Zrmbik = 21393,
+  VSHUFI64X2Zrmbikz = 21394,
+  VSHUFI64X2Zrmi = 21395,
+  VSHUFI64X2Zrmik = 21396,
+  VSHUFI64X2Zrmikz = 21397,
+  VSHUFI64X2Zrri = 21398,
+  VSHUFI64X2Zrrik = 21399,
+  VSHUFI64X2Zrrikz = 21400,
+  VSHUFPDYrmi = 21401,
+  VSHUFPDYrri = 21402,
+  VSHUFPDZ128rmbi = 21403,
+  VSHUFPDZ128rmbik = 21404,
+  VSHUFPDZ128rmbikz = 21405,
+  VSHUFPDZ128rmi = 21406,
+  VSHUFPDZ128rmik = 21407,
+  VSHUFPDZ128rmikz = 21408,
+  VSHUFPDZ128rri = 21409,
+  VSHUFPDZ128rrik = 21410,
+  VSHUFPDZ128rrikz = 21411,
+  VSHUFPDZ256rmbi = 21412,
+  VSHUFPDZ256rmbik = 21413,
+  VSHUFPDZ256rmbikz = 21414,
+  VSHUFPDZ256rmi = 21415,
+  VSHUFPDZ256rmik = 21416,
+  VSHUFPDZ256rmikz = 21417,
+  VSHUFPDZ256rri = 21418,
+  VSHUFPDZ256rrik = 21419,
+  VSHUFPDZ256rrikz = 21420,
+  VSHUFPDZrmbi = 21421,
+  VSHUFPDZrmbik = 21422,
+  VSHUFPDZrmbikz = 21423,
+  VSHUFPDZrmi = 21424,
+  VSHUFPDZrmik = 21425,
+  VSHUFPDZrmikz = 21426,
+  VSHUFPDZrri = 21427,
+  VSHUFPDZrrik = 21428,
+  VSHUFPDZrrikz = 21429,
+  VSHUFPDrmi = 21430,
+  VSHUFPDrri = 21431,
+  VSHUFPSYrmi = 21432,
+  VSHUFPSYrri = 21433,
+  VSHUFPSZ128rmbi = 21434,
+  VSHUFPSZ128rmbik = 21435,
+  VSHUFPSZ128rmbikz = 21436,
+  VSHUFPSZ128rmi = 21437,
+  VSHUFPSZ128rmik = 21438,
+  VSHUFPSZ128rmikz = 21439,
+  VSHUFPSZ128rri = 21440,
+  VSHUFPSZ128rrik = 21441,
+  VSHUFPSZ128rrikz = 21442,
+  VSHUFPSZ256rmbi = 21443,
+  VSHUFPSZ256rmbik = 21444,
+  VSHUFPSZ256rmbikz = 21445,
+  VSHUFPSZ256rmi = 21446,
+  VSHUFPSZ256rmik = 21447,
+  VSHUFPSZ256rmikz = 21448,
+  VSHUFPSZ256rri = 21449,
+  VSHUFPSZ256rrik = 21450,
+  VSHUFPSZ256rrikz = 21451,
+  VSHUFPSZrmbi = 21452,
+  VSHUFPSZrmbik = 21453,
+  VSHUFPSZrmbikz = 21454,
+  VSHUFPSZrmi = 21455,
+  VSHUFPSZrmik = 21456,
+  VSHUFPSZrmikz = 21457,
+  VSHUFPSZrri = 21458,
+  VSHUFPSZrrik = 21459,
+  VSHUFPSZrrikz = 21460,
+  VSHUFPSrmi = 21461,
+  VSHUFPSrri = 21462,
+  VSM3MSG1rm = 21463,
+  VSM3MSG1rr = 21464,
+  VSM3MSG2rm = 21465,
+  VSM3MSG2rr = 21466,
+  VSM3RNDS2rmi = 21467,
+  VSM3RNDS2rri = 21468,
+  VSM4KEY4Yrm = 21469,
+  VSM4KEY4Yrr = 21470,
+  VSM4KEY4Z128rm = 21471,
+  VSM4KEY4Z128rr = 21472,
+  VSM4KEY4Z256rm = 21473,
+  VSM4KEY4Z256rr = 21474,
+  VSM4KEY4Zrm = 21475,
+  VSM4KEY4Zrr = 21476,
+  VSM4KEY4rm = 21477,
+  VSM4KEY4rr = 21478,
+  VSM4RNDS4Yrm = 21479,
+  VSM4RNDS4Yrr = 21480,
+  VSM4RNDS4Z128rm = 21481,
+  VSM4RNDS4Z128rr = 21482,
+  VSM4RNDS4Z256rm = 21483,
+  VSM4RNDS4Z256rr = 21484,
+  VSM4RNDS4Zrm = 21485,
+  VSM4RNDS4Zrr = 21486,
+  VSM4RNDS4rm = 21487,
+  VSM4RNDS4rr = 21488,
+  VSQRTBF16Z128m = 21489,
+  VSQRTBF16Z128mb = 21490,
+  VSQRTBF16Z128mbk = 21491,
+  VSQRTBF16Z128mbkz = 21492,
+  VSQRTBF16Z128mk = 21493,
+  VSQRTBF16Z128mkz = 21494,
+  VSQRTBF16Z128r = 21495,
+  VSQRTBF16Z128rk = 21496,
+  VSQRTBF16Z128rkz = 21497,
+  VSQRTBF16Z256m = 21498,
+  VSQRTBF16Z256mb = 21499,
+  VSQRTBF16Z256mbk = 21500,
+  VSQRTBF16Z256mbkz = 21501,
+  VSQRTBF16Z256mk = 21502,
+  VSQRTBF16Z256mkz = 21503,
+  VSQRTBF16Z256r = 21504,
+  VSQRTBF16Z256rk = 21505,
+  VSQRTBF16Z256rkz = 21506,
+  VSQRTBF16Zm = 21507,
+  VSQRTBF16Zmb = 21508,
+  VSQRTBF16Zmbk = 21509,
+  VSQRTBF16Zmbkz = 21510,
+  VSQRTBF16Zmk = 21511,
+  VSQRTBF16Zmkz = 21512,
+  VSQRTBF16Zr = 21513,
+  VSQRTBF16Zrk = 21514,
+  VSQRTBF16Zrkz = 21515,
+  VSQRTPDYm = 21516,
+  VSQRTPDYr = 21517,
+  VSQRTPDZ128m = 21518,
+  VSQRTPDZ128mb = 21519,
+  VSQRTPDZ128mbk = 21520,
+  VSQRTPDZ128mbkz = 21521,
+  VSQRTPDZ128mk = 21522,
+  VSQRTPDZ128mkz = 21523,
+  VSQRTPDZ128r = 21524,
+  VSQRTPDZ128rk = 21525,
+  VSQRTPDZ128rkz = 21526,
+  VSQRTPDZ256m = 21527,
+  VSQRTPDZ256mb = 21528,
+  VSQRTPDZ256mbk = 21529,
+  VSQRTPDZ256mbkz = 21530,
+  VSQRTPDZ256mk = 21531,
+  VSQRTPDZ256mkz = 21532,
+  VSQRTPDZ256r = 21533,
+  VSQRTPDZ256rk = 21534,
+  VSQRTPDZ256rkz = 21535,
+  VSQRTPDZm = 21536,
+  VSQRTPDZmb = 21537,
+  VSQRTPDZmbk = 21538,
+  VSQRTPDZmbkz = 21539,
+  VSQRTPDZmk = 21540,
+  VSQRTPDZmkz = 21541,
+  VSQRTPDZr = 21542,
+  VSQRTPDZrb = 21543,
+  VSQRTPDZrbk = 21544,
+  VSQRTPDZrbkz = 21545,
+  VSQRTPDZrk = 21546,
+  VSQRTPDZrkz = 21547,
+  VSQRTPDm = 21548,
+  VSQRTPDr = 21549,
+  VSQRTPHZ128m = 21550,
+  VSQRTPHZ128mb = 21551,
+  VSQRTPHZ128mbk = 21552,
+  VSQRTPHZ128mbkz = 21553,
+  VSQRTPHZ128mk = 21554,
+  VSQRTPHZ128mkz = 21555,
+  VSQRTPHZ128r = 21556,
+  VSQRTPHZ128rk = 21557,
+  VSQRTPHZ128rkz = 21558,
+  VSQRTPHZ256m = 21559,
+  VSQRTPHZ256mb = 21560,
+  VSQRTPHZ256mbk = 21561,
+  VSQRTPHZ256mbkz = 21562,
+  VSQRTPHZ256mk = 21563,
+  VSQRTPHZ256mkz = 21564,
+  VSQRTPHZ256r = 21565,
+  VSQRTPHZ256rk = 21566,
+  VSQRTPHZ256rkz = 21567,
+  VSQRTPHZm = 21568,
+  VSQRTPHZmb = 21569,
+  VSQRTPHZmbk = 21570,
+  VSQRTPHZmbkz = 21571,
+  VSQRTPHZmk = 21572,
+  VSQRTPHZmkz = 21573,
+  VSQRTPHZr = 21574,
+  VSQRTPHZrb = 21575,
+  VSQRTPHZrbk = 21576,
+  VSQRTPHZrbkz = 21577,
+  VSQRTPHZrk = 21578,
+  VSQRTPHZrkz = 21579,
+  VSQRTPSYm = 21580,
+  VSQRTPSYr = 21581,
+  VSQRTPSZ128m = 21582,
+  VSQRTPSZ128mb = 21583,
+  VSQRTPSZ128mbk = 21584,
+  VSQRTPSZ128mbkz = 21585,
+  VSQRTPSZ128mk = 21586,
+  VSQRTPSZ128mkz = 21587,
+  VSQRTPSZ128r = 21588,
+  VSQRTPSZ128rk = 21589,
+  VSQRTPSZ128rkz = 21590,
+  VSQRTPSZ256m = 21591,
+  VSQRTPSZ256mb = 21592,
+  VSQRTPSZ256mbk = 21593,
+  VSQRTPSZ256mbkz = 21594,
+  VSQRTPSZ256mk = 21595,
+  VSQRTPSZ256mkz = 21596,
+  VSQRTPSZ256r = 21597,
+  VSQRTPSZ256rk = 21598,
+  VSQRTPSZ256rkz = 21599,
+  VSQRTPSZm = 21600,
+  VSQRTPSZmb = 21601,
+  VSQRTPSZmbk = 21602,
+  VSQRTPSZmbkz = 21603,
+  VSQRTPSZmk = 21604,
+  VSQRTPSZmkz = 21605,
+  VSQRTPSZr = 21606,
+  VSQRTPSZrb = 21607,
+  VSQRTPSZrbk = 21608,
+  VSQRTPSZrbkz = 21609,
+  VSQRTPSZrk = 21610,
+  VSQRTPSZrkz = 21611,
+  VSQRTPSm = 21612,
+  VSQRTPSr = 21613,
+  VSQRTSDZm = 21614,
+  VSQRTSDZm_Int = 21615,
+  VSQRTSDZmk_Int = 21616,
+  VSQRTSDZmkz_Int = 21617,
+  VSQRTSDZr = 21618,
+  VSQRTSDZr_Int = 21619,
+  VSQRTSDZrb_Int = 21620,
+  VSQRTSDZrbk_Int = 21621,
+  VSQRTSDZrbkz_Int = 21622,
+  VSQRTSDZrk_Int = 21623,
+  VSQRTSDZrkz_Int = 21624,
+  VSQRTSDm = 21625,
+  VSQRTSDm_Int = 21626,
+  VSQRTSDr = 21627,
+  VSQRTSDr_Int = 21628,
+  VSQRTSHZm = 21629,
+  VSQRTSHZm_Int = 21630,
+  VSQRTSHZmk_Int = 21631,
+  VSQRTSHZmkz_Int = 21632,
+  VSQRTSHZr = 21633,
+  VSQRTSHZr_Int = 21634,
+  VSQRTSHZrb_Int = 21635,
+  VSQRTSHZrbk_Int = 21636,
+  VSQRTSHZrbkz_Int = 21637,
+  VSQRTSHZrk_Int = 21638,
+  VSQRTSHZrkz_Int = 21639,
+  VSQRTSSZm = 21640,
+  VSQRTSSZm_Int = 21641,
+  VSQRTSSZmk_Int = 21642,
+  VSQRTSSZmkz_Int = 21643,
+  VSQRTSSZr = 21644,
+  VSQRTSSZr_Int = 21645,
+  VSQRTSSZrb_Int = 21646,
+  VSQRTSSZrbk_Int = 21647,
+  VSQRTSSZrbkz_Int = 21648,
+  VSQRTSSZrk_Int = 21649,
+  VSQRTSSZrkz_Int = 21650,
+  VSQRTSSm = 21651,
+  VSQRTSSm_Int = 21652,
+  VSQRTSSr = 21653,
+  VSQRTSSr_Int = 21654,
+  VSTMXCSR = 21655,
+  VSUBBF16Z128rm = 21656,
+  VSUBBF16Z128rmb = 21657,
+  VSUBBF16Z128rmbk = 21658,
+  VSUBBF16Z128rmbkz = 21659,
+  VSUBBF16Z128rmk = 21660,
+  VSUBBF16Z128rmkz = 21661,
+  VSUBBF16Z128rr = 21662,
+  VSUBBF16Z128rrk = 21663,
+  VSUBBF16Z128rrkz = 21664,
+  VSUBBF16Z256rm = 21665,
+  VSUBBF16Z256rmb = 21666,
+  VSUBBF16Z256rmbk = 21667,
+  VSUBBF16Z256rmbkz = 21668,
+  VSUBBF16Z256rmk = 21669,
+  VSUBBF16Z256rmkz = 21670,
+  VSUBBF16Z256rr = 21671,
+  VSUBBF16Z256rrk = 21672,
+  VSUBBF16Z256rrkz = 21673,
+  VSUBBF16Zrm = 21674,
+  VSUBBF16Zrmb = 21675,
+  VSUBBF16Zrmbk = 21676,
+  VSUBBF16Zrmbkz = 21677,
+  VSUBBF16Zrmk = 21678,
+  VSUBBF16Zrmkz = 21679,
+  VSUBBF16Zrr = 21680,
+  VSUBBF16Zrrk = 21681,
+  VSUBBF16Zrrkz = 21682,
+  VSUBPDYrm = 21683,
+  VSUBPDYrr = 21684,
+  VSUBPDZ128rm = 21685,
+  VSUBPDZ128rmb = 21686,
+  VSUBPDZ128rmbk = 21687,
+  VSUBPDZ128rmbkz = 21688,
+  VSUBPDZ128rmk = 21689,
+  VSUBPDZ128rmkz = 21690,
+  VSUBPDZ128rr = 21691,
+  VSUBPDZ128rrk = 21692,
+  VSUBPDZ128rrkz = 21693,
+  VSUBPDZ256rm = 21694,
+  VSUBPDZ256rmb = 21695,
+  VSUBPDZ256rmbk = 21696,
+  VSUBPDZ256rmbkz = 21697,
+  VSUBPDZ256rmk = 21698,
+  VSUBPDZ256rmkz = 21699,
+  VSUBPDZ256rr = 21700,
+  VSUBPDZ256rrk = 21701,
+  VSUBPDZ256rrkz = 21702,
+  VSUBPDZrm = 21703,
+  VSUBPDZrmb = 21704,
+  VSUBPDZrmbk = 21705,
+  VSUBPDZrmbkz = 21706,
+  VSUBPDZrmk = 21707,
+  VSUBPDZrmkz = 21708,
+  VSUBPDZrr = 21709,
+  VSUBPDZrrb = 21710,
+  VSUBPDZrrbk = 21711,
+  VSUBPDZrrbkz = 21712,
+  VSUBPDZrrk = 21713,
+  VSUBPDZrrkz = 21714,
+  VSUBPDrm = 21715,
+  VSUBPDrr = 21716,
+  VSUBPHZ128rm = 21717,
+  VSUBPHZ128rmb = 21718,
+  VSUBPHZ128rmbk = 21719,
+  VSUBPHZ128rmbkz = 21720,
+  VSUBPHZ128rmk = 21721,
+  VSUBPHZ128rmkz = 21722,
+  VSUBPHZ128rr = 21723,
+  VSUBPHZ128rrk = 21724,
+  VSUBPHZ128rrkz = 21725,
+  VSUBPHZ256rm = 21726,
+  VSUBPHZ256rmb = 21727,
+  VSUBPHZ256rmbk = 21728,
+  VSUBPHZ256rmbkz = 21729,
+  VSUBPHZ256rmk = 21730,
+  VSUBPHZ256rmkz = 21731,
+  VSUBPHZ256rr = 21732,
+  VSUBPHZ256rrk = 21733,
+  VSUBPHZ256rrkz = 21734,
+  VSUBPHZrm = 21735,
+  VSUBPHZrmb = 21736,
+  VSUBPHZrmbk = 21737,
+  VSUBPHZrmbkz = 21738,
+  VSUBPHZrmk = 21739,
+  VSUBPHZrmkz = 21740,
+  VSUBPHZrr = 21741,
+  VSUBPHZrrb = 21742,
+  VSUBPHZrrbk = 21743,
+  VSUBPHZrrbkz = 21744,
+  VSUBPHZrrk = 21745,
+  VSUBPHZrrkz = 21746,
+  VSUBPSYrm = 21747,
+  VSUBPSYrr = 21748,
+  VSUBPSZ128rm = 21749,
+  VSUBPSZ128rmb = 21750,
+  VSUBPSZ128rmbk = 21751,
+  VSUBPSZ128rmbkz = 21752,
+  VSUBPSZ128rmk = 21753,
+  VSUBPSZ128rmkz = 21754,
+  VSUBPSZ128rr = 21755,
+  VSUBPSZ128rrk = 21756,
+  VSUBPSZ128rrkz = 21757,
+  VSUBPSZ256rm = 21758,
+  VSUBPSZ256rmb = 21759,
+  VSUBPSZ256rmbk = 21760,
+  VSUBPSZ256rmbkz = 21761,
+  VSUBPSZ256rmk = 21762,
+  VSUBPSZ256rmkz = 21763,
+  VSUBPSZ256rr = 21764,
+  VSUBPSZ256rrk = 21765,
+  VSUBPSZ256rrkz = 21766,
+  VSUBPSZrm = 21767,
+  VSUBPSZrmb = 21768,
+  VSUBPSZrmbk = 21769,
+  VSUBPSZrmbkz = 21770,
+  VSUBPSZrmk = 21771,
+  VSUBPSZrmkz = 21772,
+  VSUBPSZrr = 21773,
+  VSUBPSZrrb = 21774,
+  VSUBPSZrrbk = 21775,
+  VSUBPSZrrbkz = 21776,
+  VSUBPSZrrk = 21777,
+  VSUBPSZrrkz = 21778,
+  VSUBPSrm = 21779,
+  VSUBPSrr = 21780,
+  VSUBSDZrm = 21781,
+  VSUBSDZrm_Int = 21782,
+  VSUBSDZrmk_Int = 21783,
+  VSUBSDZrmkz_Int = 21784,
+  VSUBSDZrr = 21785,
+  VSUBSDZrr_Int = 21786,
+  VSUBSDZrrb_Int = 21787,
+  VSUBSDZrrbk_Int = 21788,
+  VSUBSDZrrbkz_Int = 21789,
+  VSUBSDZrrk_Int = 21790,
+  VSUBSDZrrkz_Int = 21791,
+  VSUBSDrm = 21792,
+  VSUBSDrm_Int = 21793,
+  VSUBSDrr = 21794,
+  VSUBSDrr_Int = 21795,
+  VSUBSHZrm = 21796,
+  VSUBSHZrm_Int = 21797,
+  VSUBSHZrmk_Int = 21798,
+  VSUBSHZrmkz_Int = 21799,
+  VSUBSHZrr = 21800,
+  VSUBSHZrr_Int = 21801,
+  VSUBSHZrrb_Int = 21802,
+  VSUBSHZrrbk_Int = 21803,
+  VSUBSHZrrbkz_Int = 21804,
+  VSUBSHZrrk_Int = 21805,
+  VSUBSHZrrkz_Int = 21806,
+  VSUBSSZrm = 21807,
+  VSUBSSZrm_Int = 21808,
+  VSUBSSZrmk_Int = 21809,
+  VSUBSSZrmkz_Int = 21810,
+  VSUBSSZrr = 21811,
+  VSUBSSZrr_Int = 21812,
+  VSUBSSZrrb_Int = 21813,
+  VSUBSSZrrbk_Int = 21814,
+  VSUBSSZrrbkz_Int = 21815,
+  VSUBSSZrrk_Int = 21816,
+  VSUBSSZrrkz_Int = 21817,
+  VSUBSSrm = 21818,
+  VSUBSSrm_Int = 21819,
+  VSUBSSrr = 21820,
+  VSUBSSrr_Int = 21821,
+  VTESTPDYrm = 21822,
+  VTESTPDYrr = 21823,
+  VTESTPDrm = 21824,
+  VTESTPDrr = 21825,
+  VTESTPSYrm = 21826,
+  VTESTPSYrr = 21827,
+  VTESTPSrm = 21828,
+  VTESTPSrr = 21829,
+  VUCOMISDZrm = 21830,
+  VUCOMISDZrm_Int = 21831,
+  VUCOMISDZrr = 21832,
+  VUCOMISDZrr_Int = 21833,
+  VUCOMISDZrrb = 21834,
+  VUCOMISDrm = 21835,
+  VUCOMISDrm_Int = 21836,
+  VUCOMISDrr = 21837,
+  VUCOMISDrr_Int = 21838,
+  VUCOMISHZrm = 21839,
+  VUCOMISHZrm_Int = 21840,
+  VUCOMISHZrr = 21841,
+  VUCOMISHZrr_Int = 21842,
+  VUCOMISHZrrb = 21843,
+  VUCOMISSZrm = 21844,
+  VUCOMISSZrm_Int = 21845,
+  VUCOMISSZrr = 21846,
+  VUCOMISSZrr_Int = 21847,
+  VUCOMISSZrrb = 21848,
+  VUCOMISSrm = 21849,
+  VUCOMISSrm_Int = 21850,
+  VUCOMISSrr = 21851,
+  VUCOMISSrr_Int = 21852,
+  VUCOMXSDZrm = 21853,
+  VUCOMXSDZrm_Int = 21854,
+  VUCOMXSDZrr = 21855,
+  VUCOMXSDZrr_Int = 21856,
+  VUCOMXSDZrrb_Int = 21857,
+  VUCOMXSHZrm = 21858,
+  VUCOMXSHZrm_Int = 21859,
+  VUCOMXSHZrr = 21860,
+  VUCOMXSHZrr_Int = 21861,
+  VUCOMXSHZrrb_Int = 21862,
+  VUCOMXSSZrm = 21863,
+  VUCOMXSSZrm_Int = 21864,
+  VUCOMXSSZrr = 21865,
+  VUCOMXSSZrr_Int = 21866,
+  VUCOMXSSZrrb_Int = 21867,
+  VUNPCKHPDYrm = 21868,
+  VUNPCKHPDYrr = 21869,
+  VUNPCKHPDZ128rm = 21870,
+  VUNPCKHPDZ128rmb = 21871,
+  VUNPCKHPDZ128rmbk = 21872,
+  VUNPCKHPDZ128rmbkz = 21873,
+  VUNPCKHPDZ128rmk = 21874,
+  VUNPCKHPDZ128rmkz = 21875,
+  VUNPCKHPDZ128rr = 21876,
+  VUNPCKHPDZ128rrk = 21877,
+  VUNPCKHPDZ128rrkz = 21878,
+  VUNPCKHPDZ256rm = 21879,
+  VUNPCKHPDZ256rmb = 21880,
+  VUNPCKHPDZ256rmbk = 21881,
+  VUNPCKHPDZ256rmbkz = 21882,
+  VUNPCKHPDZ256rmk = 21883,
+  VUNPCKHPDZ256rmkz = 21884,
+  VUNPCKHPDZ256rr = 21885,
+  VUNPCKHPDZ256rrk = 21886,
+  VUNPCKHPDZ256rrkz = 21887,
+  VUNPCKHPDZrm = 21888,
+  VUNPCKHPDZrmb = 21889,
+  VUNPCKHPDZrmbk = 21890,
+  VUNPCKHPDZrmbkz = 21891,
+  VUNPCKHPDZrmk = 21892,
+  VUNPCKHPDZrmkz = 21893,
+  VUNPCKHPDZrr = 21894,
+  VUNPCKHPDZrrk = 21895,
+  VUNPCKHPDZrrkz = 21896,
+  VUNPCKHPDrm = 21897,
+  VUNPCKHPDrr = 21898,
+  VUNPCKHPSYrm = 21899,
+  VUNPCKHPSYrr = 21900,
+  VUNPCKHPSZ128rm = 21901,
+  VUNPCKHPSZ128rmb = 21902,
+  VUNPCKHPSZ128rmbk = 21903,
+  VUNPCKHPSZ128rmbkz = 21904,
+  VUNPCKHPSZ128rmk = 21905,
+  VUNPCKHPSZ128rmkz = 21906,
+  VUNPCKHPSZ128rr = 21907,
+  VUNPCKHPSZ128rrk = 21908,
+  VUNPCKHPSZ128rrkz = 21909,
+  VUNPCKHPSZ256rm = 21910,
+  VUNPCKHPSZ256rmb = 21911,
+  VUNPCKHPSZ256rmbk = 21912,
+  VUNPCKHPSZ256rmbkz = 21913,
+  VUNPCKHPSZ256rmk = 21914,
+  VUNPCKHPSZ256rmkz = 21915,
+  VUNPCKHPSZ256rr = 21916,
+  VUNPCKHPSZ256rrk = 21917,
+  VUNPCKHPSZ256rrkz = 21918,
+  VUNPCKHPSZrm = 21919,
+  VUNPCKHPSZrmb = 21920,
+  VUNPCKHPSZrmbk = 21921,
+  VUNPCKHPSZrmbkz = 21922,
+  VUNPCKHPSZrmk = 21923,
+  VUNPCKHPSZrmkz = 21924,
+  VUNPCKHPSZrr = 21925,
+  VUNPCKHPSZrrk = 21926,
+  VUNPCKHPSZrrkz = 21927,
+  VUNPCKHPSrm = 21928,
+  VUNPCKHPSrr = 21929,
+  VUNPCKLPDYrm = 21930,
+  VUNPCKLPDYrr = 21931,
+  VUNPCKLPDZ128rm = 21932,
+  VUNPCKLPDZ128rmb = 21933,
+  VUNPCKLPDZ128rmbk = 21934,
+  VUNPCKLPDZ128rmbkz = 21935,
+  VUNPCKLPDZ128rmk = 21936,
+  VUNPCKLPDZ128rmkz = 21937,
+  VUNPCKLPDZ128rr = 21938,
+  VUNPCKLPDZ128rrk = 21939,
+  VUNPCKLPDZ128rrkz = 21940,
+  VUNPCKLPDZ256rm = 21941,
+  VUNPCKLPDZ256rmb = 21942,
+  VUNPCKLPDZ256rmbk = 21943,
+  VUNPCKLPDZ256rmbkz = 21944,
+  VUNPCKLPDZ256rmk = 21945,
+  VUNPCKLPDZ256rmkz = 21946,
+  VUNPCKLPDZ256rr = 21947,
+  VUNPCKLPDZ256rrk = 21948,
+  VUNPCKLPDZ256rrkz = 21949,
+  VUNPCKLPDZrm = 21950,
+  VUNPCKLPDZrmb = 21951,
+  VUNPCKLPDZrmbk = 21952,
+  VUNPCKLPDZrmbkz = 21953,
+  VUNPCKLPDZrmk = 21954,
+  VUNPCKLPDZrmkz = 21955,
+  VUNPCKLPDZrr = 21956,
+  VUNPCKLPDZrrk = 21957,
+  VUNPCKLPDZrrkz = 21958,
+  VUNPCKLPDrm = 21959,
+  VUNPCKLPDrr = 21960,
+  VUNPCKLPSYrm = 21961,
+  VUNPCKLPSYrr = 21962,
+  VUNPCKLPSZ128rm = 21963,
+  VUNPCKLPSZ128rmb = 21964,
+  VUNPCKLPSZ128rmbk = 21965,
+  VUNPCKLPSZ128rmbkz = 21966,
+  VUNPCKLPSZ128rmk = 21967,
+  VUNPCKLPSZ128rmkz = 21968,
+  VUNPCKLPSZ128rr = 21969,
+  VUNPCKLPSZ128rrk = 21970,
+  VUNPCKLPSZ128rrkz = 21971,
+  VUNPCKLPSZ256rm = 21972,
+  VUNPCKLPSZ256rmb = 21973,
+  VUNPCKLPSZ256rmbk = 21974,
+  VUNPCKLPSZ256rmbkz = 21975,
+  VUNPCKLPSZ256rmk = 21976,
+  VUNPCKLPSZ256rmkz = 21977,
+  VUNPCKLPSZ256rr = 21978,
+  VUNPCKLPSZ256rrk = 21979,
+  VUNPCKLPSZ256rrkz = 21980,
+  VUNPCKLPSZrm = 21981,
+  VUNPCKLPSZrmb = 21982,
+  VUNPCKLPSZrmbk = 21983,
+  VUNPCKLPSZrmbkz = 21984,
+  VUNPCKLPSZrmk = 21985,
+  VUNPCKLPSZrmkz = 21986,
+  VUNPCKLPSZrr = 21987,
+  VUNPCKLPSZrrk = 21988,
+  VUNPCKLPSZrrkz = 21989,
+  VUNPCKLPSrm = 21990,
+  VUNPCKLPSrr = 21991,
+  VXORPDYrm = 21992,
+  VXORPDYrr = 21993,
+  VXORPDZ128rm = 21994,
+  VXORPDZ128rmb = 21995,
+  VXORPDZ128rmbk = 21996,
+  VXORPDZ128rmbkz = 21997,
+  VXORPDZ128rmk = 21998,
+  VXORPDZ128rmkz = 21999,
+  VXORPDZ128rr = 22000,
+  VXORPDZ128rrk = 22001,
+  VXORPDZ128rrkz = 22002,
+  VXORPDZ256rm = 22003,
+  VXORPDZ256rmb = 22004,
+  VXORPDZ256rmbk = 22005,
+  VXORPDZ256rmbkz = 22006,
+  VXORPDZ256rmk = 22007,
+  VXORPDZ256rmkz = 22008,
+  VXORPDZ256rr = 22009,
+  VXORPDZ256rrk = 22010,
+  VXORPDZ256rrkz = 22011,
+  VXORPDZrm = 22012,
+  VXORPDZrmb = 22013,
+  VXORPDZrmbk = 22014,
+  VXORPDZrmbkz = 22015,
+  VXORPDZrmk = 22016,
+  VXORPDZrmkz = 22017,
+  VXORPDZrr = 22018,
+  VXORPDZrrk = 22019,
+  VXORPDZrrkz = 22020,
+  VXORPDrm = 22021,
+  VXORPDrr = 22022,
+  VXORPSYrm = 22023,
+  VXORPSYrr = 22024,
+  VXORPSZ128rm = 22025,
+  VXORPSZ128rmb = 22026,
+  VXORPSZ128rmbk = 22027,
+  VXORPSZ128rmbkz = 22028,
+  VXORPSZ128rmk = 22029,
+  VXORPSZ128rmkz = 22030,
+  VXORPSZ128rr = 22031,
+  VXORPSZ128rrk = 22032,
+  VXORPSZ128rrkz = 22033,
+  VXORPSZ256rm = 22034,
+  VXORPSZ256rmb = 22035,
+  VXORPSZ256rmbk = 22036,
+  VXORPSZ256rmbkz = 22037,
+  VXORPSZ256rmk = 22038,
+  VXORPSZ256rmkz = 22039,
+  VXORPSZ256rr = 22040,
+  VXORPSZ256rrk = 22041,
+  VXORPSZ256rrkz = 22042,
+  VXORPSZrm = 22043,
+  VXORPSZrmb = 22044,
+  VXORPSZrmbk = 22045,
+  VXORPSZrmbkz = 22046,
+  VXORPSZrmk = 22047,
+  VXORPSZrmkz = 22048,
+  VXORPSZrr = 22049,
+  VXORPSZrrk = 22050,
+  VXORPSZrrkz = 22051,
+  VXORPSrm = 22052,
+  VXORPSrr = 22053,
+  VZEROALL = 22054,
+  VZEROUPPER = 22055,
+  WAIT = 22056,
+  WBINVD = 22057,
+  WBNOINVD = 22058,
+  WRFSBASE = 22059,
+  WRFSBASE64 = 22060,
+  WRGSBASE = 22061,
+  WRGSBASE64 = 22062,
+  WRMSR = 22063,
+  WRMSRLIST = 22064,
+  WRMSRNS = 22065,
+  WRMSRNSir = 22066,
+  WRMSRNSir_EVEX = 22067,
+  WRPKRUr = 22068,
+  WRSSD = 22069,
+  WRSSD_EVEX = 22070,
+  WRSSQ = 22071,
+  WRSSQ_EVEX = 22072,
+  WRUSSD = 22073,
+  WRUSSD_EVEX = 22074,
+  WRUSSQ = 22075,
+  WRUSSQ_EVEX = 22076,
+  XABORT = 22077,
+  XACQUIRE_PREFIX = 22078,
+  XADD16rm = 22079,
+  XADD16rr = 22080,
+  XADD32rm = 22081,
+  XADD32rr = 22082,
+  XADD64rm = 22083,
+  XADD64rr = 22084,
+  XADD8rm = 22085,
+  XADD8rr = 22086,
+  XAM_F = 22087,
+  XAM_Fp32 = 22088,
+  XAM_Fp64 = 22089,
+  XAM_Fp80 = 22090,
+  XBEGIN = 22091,
+  XBEGIN_2 = 22092,
+  XBEGIN_4 = 22093,
+  XCHG16ar = 22094,
+  XCHG16rm = 22095,
+  XCHG16rr = 22096,
+  XCHG32ar = 22097,
+  XCHG32rm = 22098,
+  XCHG32rr = 22099,
+  XCHG64ar = 22100,
+  XCHG64rm = 22101,
+  XCHG64rr = 22102,
+  XCHG8rm = 22103,
+  XCHG8rr = 22104,
+  XCH_F = 22105,
+  XCRYPTCBC = 22106,
+  XCRYPTCFB = 22107,
+  XCRYPTCTR = 22108,
+  XCRYPTECB = 22109,
+  XCRYPTOFB = 22110,
+  XEND = 22111,
+  XGETBV = 22112,
+  XLAT = 22113,
+  XOR16i16 = 22114,
+  XOR16mi = 22115,
+  XOR16mi8 = 22116,
+  XOR16mi8_EVEX = 22117,
+  XOR16mi8_ND = 22118,
+  XOR16mi8_NF = 22119,
+  XOR16mi8_NF_ND = 22120,
+  XOR16mi_EVEX = 22121,
+  XOR16mi_ND = 22122,
+  XOR16mi_NF = 22123,
+  XOR16mi_NF_ND = 22124,
+  XOR16mr = 22125,
+  XOR16mr_EVEX = 22126,
+  XOR16mr_ND = 22127,
+  XOR16mr_NF = 22128,
+  XOR16mr_NF_ND = 22129,
+  XOR16ri = 22130,
+  XOR16ri8 = 22131,
+  XOR16ri8_EVEX = 22132,
+  XOR16ri8_ND = 22133,
+  XOR16ri8_NF = 22134,
+  XOR16ri8_NF_ND = 22135,
+  XOR16ri_EVEX = 22136,
+  XOR16ri_ND = 22137,
+  XOR16ri_NF = 22138,
+  XOR16ri_NF_ND = 22139,
+  XOR16rm = 22140,
+  XOR16rm_EVEX = 22141,
+  XOR16rm_ND = 22142,
+  XOR16rm_NF = 22143,
+  XOR16rm_NF_ND = 22144,
+  XOR16rr = 22145,
+  XOR16rr_EVEX = 22146,
+  XOR16rr_EVEX_REV = 22147,
+  XOR16rr_ND = 22148,
+  XOR16rr_ND_REV = 22149,
+  XOR16rr_NF = 22150,
+  XOR16rr_NF_ND = 22151,
+  XOR16rr_NF_ND_REV = 22152,
+  XOR16rr_NF_REV = 22153,
+  XOR16rr_REV = 22154,
+  XOR32i32 = 22155,
+  XOR32mi = 22156,
+  XOR32mi8 = 22157,
+  XOR32mi8_EVEX = 22158,
+  XOR32mi8_ND = 22159,
+  XOR32mi8_NF = 22160,
+  XOR32mi8_NF_ND = 22161,
+  XOR32mi_EVEX = 22162,
+  XOR32mi_ND = 22163,
+  XOR32mi_NF = 22164,
+  XOR32mi_NF_ND = 22165,
+  XOR32mr = 22166,
+  XOR32mr_EVEX = 22167,
+  XOR32mr_ND = 22168,
+  XOR32mr_NF = 22169,
+  XOR32mr_NF_ND = 22170,
+  XOR32ri = 22171,
+  XOR32ri8 = 22172,
+  XOR32ri8_EVEX = 22173,
+  XOR32ri8_ND = 22174,
+  XOR32ri8_NF = 22175,
+  XOR32ri8_NF_ND = 22176,
+  XOR32ri_EVEX = 22177,
+  XOR32ri_ND = 22178,
+  XOR32ri_NF = 22179,
+  XOR32ri_NF_ND = 22180,
+  XOR32rm = 22181,
+  XOR32rm_EVEX = 22182,
+  XOR32rm_ND = 22183,
+  XOR32rm_NF = 22184,
+  XOR32rm_NF_ND = 22185,
+  XOR32rr = 22186,
+  XOR32rr_EVEX = 22187,
+  XOR32rr_EVEX_REV = 22188,
+  XOR32rr_ND = 22189,
+  XOR32rr_ND_REV = 22190,
+  XOR32rr_NF = 22191,
+  XOR32rr_NF_ND = 22192,
+  XOR32rr_NF_ND_REV = 22193,
+  XOR32rr_NF_REV = 22194,
+  XOR32rr_REV = 22195,
+  XOR64i32 = 22196,
+  XOR64mi32 = 22197,
+  XOR64mi32_EVEX = 22198,
+  XOR64mi32_ND = 22199,
+  XOR64mi32_NF = 22200,
+  XOR64mi32_NF_ND = 22201,
+  XOR64mi8 = 22202,
+  XOR64mi8_EVEX = 22203,
+  XOR64mi8_ND = 22204,
+  XOR64mi8_NF = 22205,
+  XOR64mi8_NF_ND = 22206,
+  XOR64mr = 22207,
+  XOR64mr_EVEX = 22208,
+  XOR64mr_ND = 22209,
+  XOR64mr_NF = 22210,
+  XOR64mr_NF_ND = 22211,
+  XOR64ri32 = 22212,
+  XOR64ri32_EVEX = 22213,
+  XOR64ri32_ND = 22214,
+  XOR64ri32_NF = 22215,
+  XOR64ri32_NF_ND = 22216,
+  XOR64ri8 = 22217,
+  XOR64ri8_EVEX = 22218,
+  XOR64ri8_ND = 22219,
+  XOR64ri8_NF = 22220,
+  XOR64ri8_NF_ND = 22221,
+  XOR64rm = 22222,
+  XOR64rm_EVEX = 22223,
+  XOR64rm_ND = 22224,
+  XOR64rm_NF = 22225,
+  XOR64rm_NF_ND = 22226,
+  XOR64rr = 22227,
+  XOR64rr_EVEX = 22228,
+  XOR64rr_EVEX_REV = 22229,
+  XOR64rr_ND = 22230,
+  XOR64rr_ND_REV = 22231,
+  XOR64rr_NF = 22232,
+  XOR64rr_NF_ND = 22233,
+  XOR64rr_NF_ND_REV = 22234,
+  XOR64rr_NF_REV = 22235,
+  XOR64rr_REV = 22236,
+  XOR8i8 = 22237,
+  XOR8mi = 22238,
+  XOR8mi8 = 22239,
+  XOR8mi_EVEX = 22240,
+  XOR8mi_ND = 22241,
+  XOR8mi_NF = 22242,
+  XOR8mi_NF_ND = 22243,
+  XOR8mr = 22244,
+  XOR8mr_EVEX = 22245,
+  XOR8mr_ND = 22246,
+  XOR8mr_NF = 22247,
+  XOR8mr_NF_ND = 22248,
+  XOR8ri = 22249,
+  XOR8ri8 = 22250,
+  XOR8ri_EVEX = 22251,
+  XOR8ri_ND = 22252,
+  XOR8ri_NF = 22253,
+  XOR8ri_NF_ND = 22254,
+  XOR8rm = 22255,
+  XOR8rm_EVEX = 22256,
+  XOR8rm_ND = 22257,
+  XOR8rm_NF = 22258,
+  XOR8rm_NF_ND = 22259,
+  XOR8rr = 22260,
+  XOR8rr_EVEX = 22261,
+  XOR8rr_EVEX_REV = 22262,
+  XOR8rr_ND = 22263,
+  XOR8rr_ND_REV = 22264,
+  XOR8rr_NF = 22265,
+  XOR8rr_NF_ND = 22266,
+  XOR8rr_NF_ND_REV = 22267,
+  XOR8rr_NF_REV = 22268,
+  XOR8rr_NOREX = 22269,
+  XOR8rr_REV = 22270,
+  XORPDrm = 22271,
+  XORPDrr = 22272,
+  XORPSrm = 22273,
+  XORPSrr = 22274,
+  XRELEASE_PREFIX = 22275,
+  XRESLDTRK = 22276,
+  XRSTOR = 22277,
+  XRSTOR64 = 22278,
+  XRSTORS = 22279,
+  XRSTORS64 = 22280,
+  XSAVE = 22281,
+  XSAVE64 = 22282,
+  XSAVEC = 22283,
+  XSAVEC64 = 22284,
+  XSAVEOPT = 22285,
+  XSAVEOPT64 = 22286,
+  XSAVES = 22287,
+  XSAVES64 = 22288,
+  XSETBV = 22289,
+  XSHA1 = 22290,
+  XSHA256 = 22291,
+  XSTORE = 22292,
+  XSUSLDTRK = 22293,
+  XTEST = 22294,
+  INSTRUCTION_LIST_END = 22295,
 };
 }
 }
diff --git a/deps/LIEF/include/LIEF/asm/x86/operands.hpp b/deps/LIEF/include/LIEF/asm/x86/operands.hpp
index aa105ebaaf7..91534173045 100644
--- a/deps/LIEF/include/LIEF/asm/x86/operands.hpp
+++ b/deps/LIEF/include/LIEF/asm/x86/operands.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/deps/LIEF/include/LIEF/asm/x86/operands/Immediate.hpp b/deps/LIEF/include/LIEF/asm/x86/operands/Immediate.hpp
index 71792e0b302..ede825e81fb 100644
--- a/deps/LIEF/include/LIEF/asm/x86/operands/Immediate.hpp
+++ b/deps/LIEF/include/LIEF/asm/x86/operands/Immediate.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/deps/LIEF/include/LIEF/asm/x86/operands/Memory.hpp b/deps/LIEF/include/LIEF/asm/x86/operands/Memory.hpp
index d621be4820d..ad38c6bc43b 100644
--- a/deps/LIEF/include/LIEF/asm/x86/operands/Memory.hpp
+++ b/deps/LIEF/include/LIEF/asm/x86/operands/Memory.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -14,6 +14,8 @@
  */
 #ifndef LIEF_ASM_X86_OPERAND_MEMORY_H
 #define LIEF_ASM_X86_OPERAND_MEMORY_H
+#include <cstdint>
+
 #include "LIEF/asm/x86/Operand.hpp"
 #include "LIEF/asm/x86/registers.hpp"

diff --git a/deps/LIEF/include/LIEF/asm/x86/operands/PCRelative.hpp b/deps/LIEF/include/LIEF/asm/x86/operands/PCRelative.hpp
index 8310d5f8ff6..7518271e7f7 100644
--- a/deps/LIEF/include/LIEF/asm/x86/operands/PCRelative.hpp
+++ b/deps/LIEF/include/LIEF/asm/x86/operands/PCRelative.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/deps/LIEF/include/LIEF/asm/x86/operands/Register.hpp b/deps/LIEF/include/LIEF/asm/x86/operands/Register.hpp
index 22e49d88c1f..06e18726622 100644
--- a/deps/LIEF/include/LIEF/asm/x86/operands/Register.hpp
+++ b/deps/LIEF/include/LIEF/asm/x86/operands/Register.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/deps/LIEF/include/LIEF/asm/x86/registers.hpp b/deps/LIEF/include/LIEF/asm/x86/registers.hpp
index db241f0a09d..1eb0c414777 100644
--- a/deps/LIEF/include/LIEF/asm/x86/registers.hpp
+++ b/deps/LIEF/include/LIEF/asm/x86/registers.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -313,107 +313,103 @@ enum class REG {
   TMM5 = 289,
   TMM6 = 290,
   TMM7 = 291,
-  TMM0_TMM1 = 292,
-  TMM2_TMM3 = 293,
-  TMM4_TMM5 = 294,
-  TMM6_TMM7 = 295,
-  R16 = 296,
-  R17 = 297,
-  R18 = 298,
-  R19 = 299,
-  R20 = 300,
-  R21 = 301,
-  R22 = 302,
-  R23 = 303,
-  R24 = 304,
-  R25 = 305,
-  R26 = 306,
-  R27 = 307,
-  R28 = 308,
-  R29 = 309,
-  R30 = 310,
-  R31 = 311,
-  R16B = 312,
-  R17B = 313,
-  R18B = 314,
-  R19B = 315,
-  R20B = 316,
-  R21B = 317,
-  R22B = 318,
-  R23B = 319,
-  R24B = 320,
-  R25B = 321,
-  R26B = 322,
-  R27B = 323,
-  R28B = 324,
-  R29B = 325,
-  R30B = 326,
-  R31B = 327,
-  R16BH = 328,
-  R17BH = 329,
-  R18BH = 330,
-  R19BH = 331,
-  R20BH = 332,
-  R21BH = 333,
-  R22BH = 334,
-  R23BH = 335,
-  R24BH = 336,
-  R25BH = 337,
-  R26BH = 338,
-  R27BH = 339,
-  R28BH = 340,
-  R29BH = 341,
-  R30BH = 342,
-  R31BH = 343,
-  R16D = 344,
-  R17D = 345,
-  R18D = 346,
-  R19D = 347,
-  R20D = 348,
-  R21D = 349,
-  R22D = 350,
-  R23D = 351,
-  R24D = 352,
-  R25D = 353,
-  R26D = 354,
-  R27D = 355,
-  R28D = 356,
-  R29D = 357,
-  R30D = 358,
-  R31D = 359,
-  R16W = 360,
-  R17W = 361,
-  R18W = 362,
-  R19W = 363,
-  R20W = 364,
-  R21W = 365,
-  R22W = 366,
-  R23W = 367,
-  R24W = 368,
-  R25W = 369,
-  R26W = 370,
-  R27W = 371,
-  R28W = 372,
-  R29W = 373,
-  R30W = 374,
-  R31W = 375,
-  R16WH = 376,
-  R17WH = 377,
-  R18WH = 378,
-  R19WH = 379,
-  R20WH = 380,
-  R21WH = 381,
-  R22WH = 382,
-  R23WH = 383,
-  R24WH = 384,
-  R25WH = 385,
-  R26WH = 386,
-  R27WH = 387,
-  R28WH = 388,
-  R29WH = 389,
-  R30WH = 390,
-  R31WH = 391,
-  NUM_TARGET_REGS = 392,
+  R16 = 292,
+  R17 = 293,
+  R18 = 294,
+  R19 = 295,
+  R20 = 296,
+  R21 = 297,
+  R22 = 298,
+  R23 = 299,
+  R24 = 300,
+  R25 = 301,
+  R26 = 302,
+  R27 = 303,
+  R28 = 304,
+  R29 = 305,
+  R30 = 306,
+  R31 = 307,
+  R16B = 308,
+  R17B = 309,
+  R18B = 310,
+  R19B = 311,
+  R20B = 312,
+  R21B = 313,
+  R22B = 314,
+  R23B = 315,
+  R24B = 316,
+  R25B = 317,
+  R26B = 318,
+  R27B = 319,
+  R28B = 320,
+  R29B = 321,
+  R30B = 322,
+  R31B = 323,
+  R16BH = 324,
+  R17BH = 325,
+  R18BH = 326,
+  R19BH = 327,
+  R20BH = 328,
+  R21BH = 329,
+  R22BH = 330,
+  R23BH = 331,
+  R24BH = 332,
+  R25BH = 333,
+  R26BH = 334,
+  R27BH = 335,
+  R28BH = 336,
+  R29BH = 337,
+  R30BH = 338,
+  R31BH = 339,
+  R16D = 340,
+  R17D = 341,
+  R18D = 342,
+  R19D = 343,
+  R20D = 344,
+  R21D = 345,
+  R22D = 346,
+  R23D = 347,
+  R24D = 348,
+  R25D = 349,
+  R26D = 350,
+  R27D = 351,
+  R28D = 352,
+  R29D = 353,
+  R30D = 354,
+  R31D = 355,
+  R16W = 356,
+  R17W = 357,
+  R18W = 358,
+  R19W = 359,
+  R20W = 360,
+  R21W = 361,
+  R22W = 362,
+  R23W = 363,
+  R24W = 364,
+  R25W = 365,
+  R26W = 366,
+  R27W = 367,
+  R28W = 368,
+  R29W = 369,
+  R30W = 370,
+  R31W = 371,
+  R16WH = 372,
+  R17WH = 373,
+  R18WH = 374,
+  R19WH = 375,
+  R20WH = 376,
+  R21WH = 377,
+  R22WH = 378,
+  R23WH = 379,
+  R24WH = 380,
+  R25WH = 381,
+  R26WH = 382,
+  R27WH = 383,
+  R28WH = 384,
+  R29WH = 385,
+  R30WH = 386,
+  R31WH = 387,
+  NUM_TARGET_REGS = 388,
 };

 }
diff --git a/deps/LIEF/include/LIEF/canbe_unique.hpp b/deps/LIEF/include/LIEF/canbe_unique.hpp
index 288fcc80db3..2bc6b75314f 100644
--- a/deps/LIEF/include/LIEF/canbe_unique.hpp
+++ b/deps/LIEF/include/LIEF/canbe_unique.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2024 - 2025 R. Thomas
+/* Copyright 2024 - 2026 R. Thomas
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -45,18 +45,15 @@ class canbe_unique {

   canbe_unique(T& ptr) :
     ptr_(&ptr),
-    owned_(false)
-  {}
+    owned_(false) {}

   canbe_unique(const T& ptr) :
     ptr_(const_cast<T*>(&ptr)),
-    owned_(false)
-  {}
+    owned_(false) {}

   canbe_unique(std::unique_ptr<T> unique_ptr) :
     ptr_(unique_ptr.release()),
-    owned_(true)
-  {}
+    owned_(true) {}

   T* get() {
     return ptr_;
diff --git a/deps/LIEF/include/LIEF/compiler_attributes.hpp b/deps/LIEF/include/LIEF/compiler_attributes.hpp
index c01246514dc..1e1a353288b 100644
--- a/deps/LIEF/include/LIEF/compiler_attributes.hpp
+++ b/deps/LIEF/include/LIEF/compiler_attributes.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2021 - 2025 R. Thomas
+/* Copyright 2021 - 2026 R. Thomas
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -15,40 +15,69 @@
 #ifndef LIEF_COMPILER_ATTR_H
 #define LIEF_COMPILER_ATTR_H

+
 #if !defined(_MSC_VER)
-#   if __cplusplus >= 201103L
-#     define LIEF_CPP11
-#     if __cplusplus >= 201402L
-#       define LIEF_CPP14
-#       if __cplusplus >= 201703L
-#         define LIEF_CPP17
-#         if __cplusplus >= 202002L
-#           define LIEF_CPP20
-#         endif
-#       endif
-#     endif
-#   endif
+  #if __cplusplus >= 201103L
+    #define LIEF_CPP11
+    #if __cplusplus >= 201402L
+      #define LIEF_CPP14
+      #if __cplusplus >= 201703L
+        #define LIEF_CPP17
+        #if __cplusplus >= 202002L
+          #define LIEF_CPP20
+        #endif
+      #endif
+    #endif
+  #endif
 #elif defined(_MSC_VER)
-#   if _MSVC_LANG >= 201103L
-#     define LIEF_CPP11
-#     if _MSVC_LANG >= 201402L
-#       define LIEF_CPP14
-#       if _MSVC_LANG > 201402L
-#         define LIEF_CPP17
-#         if _MSVC_LANG >= 202002L
-#           define LIEF_CPP20
-#         endif
-#       endif
-#     endif
-#   endif
+  #if _MSVC_LANG >= 201103L
+    #define LIEF_CPP11
+    #if _MSVC_LANG >= 201402L
+      #define LIEF_CPP14
+      #if _MSVC_LANG > 201402L
+        #define LIEF_CPP17
+        #if _MSVC_LANG >= 202002L
+          #define LIEF_CPP20
+        #endif
+      #endif
+    #endif
+  #endif
 #endif

 #if defined(__MINGW32__)
-#   define LIEF_DEPRECATED(reason)
+  #define LIEF_DEPRECATED(reason)
 #elif defined(LIEF_CPP14)
-#   define LIEF_DEPRECATED(reason) [[deprecated(reason)]]
+  #define LIEF_DEPRECATED(reason) [[deprecated(reason)]]
+#else
+  #define LIEF_DEPRECATED(reason) __attribute__((deprecated(reason)))
+#endif
+
+#if defined(LIEF_CPP17)
+  #define LIEF_MAYBE_UNUSED [[maybe_unused]]
+#elif defined(__GNUC__) || defined(__clang__)
+  #define LIEF_MAYBE_UNUSED __attribute__((unused))
+#elif defined(_MSC_VER)
+  #define LIEF_MAYBE_UNUSED __pragma(warning(suppress : 4100 4101))
+#else
+  #define LIEF_MAYBE_UNUSED
+#endif
+
+#if defined(__has_cpp_attribute)
+  #if __has_cpp_attribute(clang::lifetimebound)
+    #define LIEF_LIFETIMEBOUND [[clang::lifetimebound]]
+  #else
+    #define LIEF_LIFETIMEBOUND
+  #endif
+#else
+  #define LIEF_LIFETIMEBOUND
+#endif
+
+#if defined(__cpp_lib_ranges) && __cpp_lib_ranges >= 201911L
+  #include <ranges>
+  #define LIEF_HAS_STD_RANGES 1
 #else
-#   define LIEF_DEPRECATED(reason) __attribute__((deprecated(reason)))
+  #define LIEF_HAS_STD_RANGES 0
 #endif

+
 #endif
diff --git a/deps/LIEF/include/LIEF/config.h b/deps/LIEF/include/LIEF/config.h
index d68bc65906a..d8dfbf1ef04 100644
--- a/deps/LIEF/include/LIEF/config.h
+++ b/deps/LIEF/include/LIEF/config.h
@@ -1,5 +1,5 @@
 /* Copyright 2017 - 2021 A. Guinet
- * Copyright 2017 - 2025 Quarkslab
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -17,6 +17,8 @@
 #ifndef LIEF_CONFIG_H
 #define LIEF_CONFIG_H

+// clang-format off
+
 // Main formats
 #define LIEF_PE_SUPPORT 1
 #define LIEF_ELF_SUPPORT 1
@@ -37,6 +39,7 @@
 /* #undef LIEF_EXTENDED */

 // LIEF options
+/* #undef LIEF_RUNTIME_SUPPORT */
 /* #undef LIEF_JSON_SUPPORT */
 /* #undef LIEF_LOGGING_SUPPORT */
 /* #undef LIEF_LOGGING_DEBUG */
@@ -66,12 +69,13 @@ static constexpr bool lief_debug_info      = 0;
 static constexpr bool lief_objc            = 0;
 static constexpr bool lief_extended        = 0;

+static constexpr bool lief_runtime_support = 0;
 static constexpr bool lief_json_support    = 0;
 static constexpr bool lief_logging_support = 0;
 static constexpr bool lief_logging_debug   = 0;
 static constexpr bool lief_frozen_enabled  = 1;


-#endif // __cplusplus
+#endif

 #endif
diff --git a/deps/LIEF/include/LIEF/config.h.in b/deps/LIEF/include/LIEF/config.h.in
index 5bc355ff181..0600af18ebc 100644
--- a/deps/LIEF/include/LIEF/config.h.in
+++ b/deps/LIEF/include/LIEF/config.h.in
@@ -1,5 +1,5 @@
 /* Copyright 2017 - 2021 A. Guinet
- * Copyright 2017 - 2025 Quarkslab
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -17,6 +17,8 @@
 #ifndef LIEF_CONFIG_H
 #define LIEF_CONFIG_H

+// clang-format off
+
 // Main formats
 #cmakedefine LIEF_PE_SUPPORT       @LIEF_PE_SUPPORT@
 #cmakedefine LIEF_ELF_SUPPORT      @LIEF_ELF_SUPPORT@
@@ -37,6 +39,7 @@
 #cmakedefine LIEF_EXTENDED          @LIEF_EXTENDED@

 // LIEF options
+#cmakedefine LIEF_RUNTIME_SUPPORT   @LIEF_RUNTIME_SUPPORT@
 #cmakedefine LIEF_JSON_SUPPORT      @ENABLE_JSON_SUPPORT@
 #cmakedefine LIEF_LOGGING_SUPPORT   @LIEF_LOGGING_SUPPORT@
 #cmakedefine LIEF_LOGGING_DEBUG     @LIEF_LOGGING_DEBUG_SUPPORT@
@@ -66,12 +69,13 @@ static constexpr bool lief_debug_info      = @LIEF_DEBUG_INFO_SUPPORT@;
 static constexpr bool lief_objc            = @LIEF_OBJC_SUPPORT@;
 static constexpr bool lief_extended        = @LIEF_EXTENDED@;

+static constexpr bool lief_runtime_support = @LIEF_RUNTIME_SUPPORT@;
 static constexpr bool lief_json_support    = @LIEF_JSON_SUPPORT@;
 static constexpr bool lief_logging_support = @LIEF_LOGGING_SUPPORT@;
 static constexpr bool lief_logging_debug   = @LIEF_LOGGING_DEBUG_SUPPORT@;
 static constexpr bool lief_frozen_enabled  = @LIEF_FROZEN_ENABLED@;


-#endif // __cplusplus
+#endif

 #endif
diff --git a/deps/LIEF/include/LIEF/debug_loc.hpp b/deps/LIEF/include/LIEF/debug_loc.hpp
index 8764f7c77a5..f984356f809 100644
--- a/deps/LIEF/include/LIEF/debug_loc.hpp
+++ b/deps/LIEF/include/LIEF/debug_loc.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/deps/LIEF/include/LIEF/endianness_support.hpp b/deps/LIEF/include/LIEF/endianness_support.hpp
index 216a35876f8..e9f0a3355ec 100644
--- a/deps/LIEF/include/LIEF/endianness_support.hpp
+++ b/deps/LIEF/include/LIEF/endianness_support.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2021 - 2025 R. Thomas
- * Copyright 2021 - 2025 Quarkslab
+/* Copyright 2021 - 2026 R. Thomas
+ * Copyright 2021 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -19,9 +19,9 @@
 #include "LIEF/config.h"
 #include "LIEF/visibility.h"

-#define LIEF_ENDIAN_SUPPORT(X) \
-  template<> \
-  LIEF_API void swap_endian<X>(X* hdr)
+#define LIEF_ENDIAN_SUPPORT(X)                                                    \
+  template<>                                                                      \
+  LIEF_API void swap_endian<X>(X * hdr)

 namespace LIEF {

@@ -83,6 +83,7 @@ struct mach_header;
 struct mach_header_64;
 struct nlist_32;
 struct nlist_64;
+struct note_command;
 struct prebind_cksum_command;
 struct prebound_dylib_command;
 struct relocation_info;
@@ -114,8 +115,7 @@ struct ppc_thread_state64_t;
 }

 template<typename T>
-void swap_endian(T*) {
-}
+void swap_endian(T*) {}

 template<typename T>
 T get_swapped_endian(const T& other) {
@@ -137,7 +137,7 @@ LIEF_ENDIAN_SUPPORT(int16_t);
 LIEF_ENDIAN_SUPPORT(int32_t);
 LIEF_ENDIAN_SUPPORT(int64_t);

-#if defined (LIEF_ELF_SUPPORT)
+#if defined(LIEF_ELF_SUPPORT)
 LIEF_ENDIAN_SUPPORT(ELF::details::Elf32_Auxv);
 LIEF_ENDIAN_SUPPORT(ELF::details::Elf32_Dyn);
 LIEF_ENDIAN_SUPPORT(ELF::details::Elf32_Ehdr);
@@ -166,7 +166,7 @@ LIEF_ENDIAN_SUPPORT(ELF::details::Elf64_Vernaux);
 LIEF_ENDIAN_SUPPORT(ELF::details::Elf64_Verneed);
 #endif

-#if defined (LIEF_MACHO_SUPPORT)
+#if defined(LIEF_MACHO_SUPPORT)
 LIEF_ENDIAN_SUPPORT(MachO::details::arm_thread_state64_t);
 LIEF_ENDIAN_SUPPORT(MachO::details::arm_thread_state_t);
 LIEF_ENDIAN_SUPPORT(MachO::details::build_tool_version);
@@ -192,6 +192,7 @@ LIEF_ENDIAN_SUPPORT(MachO::details::mach_header);
 LIEF_ENDIAN_SUPPORT(MachO::details::mach_header_64);
 LIEF_ENDIAN_SUPPORT(MachO::details::nlist_32);
 LIEF_ENDIAN_SUPPORT(MachO::details::nlist_64);
+LIEF_ENDIAN_SUPPORT(MachO::details::note_command);
 LIEF_ENDIAN_SUPPORT(MachO::details::prebind_cksum_command);
 LIEF_ENDIAN_SUPPORT(MachO::details::prebound_dylib_command);
 LIEF_ENDIAN_SUPPORT(MachO::details::relocation_info);
@@ -223,4 +224,4 @@ LIEF_ENDIAN_SUPPORT(MachO::details::ppc_thread_state_t);

 }

-#endif // LIEF_CONVERT_H
+#endif
diff --git a/deps/LIEF/include/LIEF/enums.hpp b/deps/LIEF/include/LIEF/enums.hpp
index ce370585baa..7c8d999d252 100644
--- a/deps/LIEF/include/LIEF/enums.hpp
+++ b/deps/LIEF/include/LIEF/enums.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2021 - 2025 R. Thomas
- * Copyright 2021 - 2025 Quarkslab
+/* Copyright 2021 - 2026 R. Thomas
+ * Copyright 2021 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -17,75 +17,67 @@
 #define LIEF_ENUMS_H
 #include <type_traits>

-#define _LIEF_EN(N) class N : size_t
+#define _LIEF_EN(N)         class N : size_t
 #define _LIEF_EN_2(N, TYPE) class N : TYPE
-#define _LIEF_EI(X) X
+#define _LIEF_EI(X)         X

-#define ENABLE_BITMASK_OPERATORS(X)  \
-template<>                           \
-struct EnableBitMaskOperators<X>     \
-{                                    \
-  static const bool bit_mask_enabled = true;   \
-}
+#define ENABLE_BITMASK_OPERATORS(X)                                               \
+  template<>                                                                      \
+  struct EnableBitMaskOperators<X> {                                              \
+    static const bool bit_mask_enabled = true;                                    \
+  }

 template<typename Enum>
-struct EnableBitMaskOperators
-{
+struct EnableBitMaskOperators {
   static const bool bit_mask_enabled = false;
 };

 template<typename Enum>
 typename std::enable_if<EnableBitMaskOperators<Enum>::bit_mask_enabled, Enum>::type
-operator |(Enum lhs, Enum rhs)
-{
-    using underlying = typename std::underlying_type<Enum>::type;
-    return static_cast<Enum> (
-        static_cast<underlying>(lhs) |
-        static_cast<underlying>(rhs)
-    );
+    operator|(Enum lhs, Enum rhs) {
+  using underlying = typename std::underlying_type<Enum>::type;
+  return static_cast<Enum>(static_cast<underlying>(lhs) |
+                           static_cast<underlying>(rhs));
 }

 template<typename Enum>
 typename std::enable_if<EnableBitMaskOperators<Enum>::bit_mask_enabled, Enum>::type
-operator &(Enum lhs, Enum rhs)
-{
-    using underlying = typename std::underlying_type<Enum>::type;
-    return static_cast<Enum> (
-        static_cast<underlying>(lhs) &
-        static_cast<underlying>(rhs)
-    );
+    operator&(Enum lhs, Enum rhs) {
+  using underlying = typename std::underlying_type<Enum>::type;
+  return static_cast<Enum>(static_cast<underlying>(lhs) &
+                           static_cast<underlying>(rhs));
 }

 template<typename Enum>
 typename std::enable_if<EnableBitMaskOperators<Enum>::bit_mask_enabled, Enum>::type
-operator ~(Enum e)
-{
-    using underlying = typename std::underlying_type<Enum>::type;
-    return static_cast<Enum>(~static_cast<underlying>(e));
+    operator~(Enum e) {
+  using underlying = typename std::underlying_type<Enum>::type;
+  return static_cast<Enum>(~static_cast<underlying>(e));
 }

 template<typename Enum>
-typename std::enable_if<EnableBitMaskOperators<Enum>::bit_mask_enabled, typename std::add_lvalue_reference<Enum>::type>::type
-operator |=(Enum& lhs, Enum rhs)
-{
-    using underlying = typename std::underlying_type<Enum>::type;
-    lhs = static_cast<Enum>(static_cast<underlying>(lhs) | static_cast<underlying>(rhs));
-    return lhs;
+typename std::enable_if<EnableBitMaskOperators<Enum>::bit_mask_enabled,
+                        typename std::add_lvalue_reference<Enum>::type>::type
+    operator|=(Enum& lhs, Enum rhs) {
+  using underlying = typename std::underlying_type<Enum>::type;
+  lhs = static_cast<Enum>(static_cast<underlying>(lhs) |
+                          static_cast<underlying>(rhs));
+  return lhs;
 }

 template<typename Enum>
-typename std::enable_if<EnableBitMaskOperators<Enum>::bit_mask_enabled, typename std::add_lvalue_reference<Enum>::type>::type
-operator &=(Enum& lhs, Enum rhs)
-{
-    using underlying = typename std::underlying_type<Enum>::type;
-    lhs = static_cast<Enum>(static_cast<underlying>(lhs) & static_cast<underlying>(rhs));
-    return lhs;
+typename std::enable_if<EnableBitMaskOperators<Enum>::bit_mask_enabled,
+                        typename std::add_lvalue_reference<Enum>::type>::type
+    operator&=(Enum& lhs, Enum rhs) {
+  using underlying = typename std::underlying_type<Enum>::type;
+  lhs = static_cast<Enum>(static_cast<underlying>(lhs) &
+                          static_cast<underlying>(rhs));
+  return lhs;
 }

 template<typename Enum>
 typename std::enable_if<EnableBitMaskOperators<Enum>::bit_mask_enabled, bool>::type
-is_true(Enum e)
-{
+    is_true(Enum e) {
   using underlying = typename std::underlying_type<Enum>::type;
   return static_cast<underlying>(e) > 0;
 }
diff --git a/deps/LIEF/include/LIEF/errors.hpp b/deps/LIEF/include/LIEF/errors.hpp
index 47ad02890ee..9056422caa9 100644
--- a/deps/LIEF/include/LIEF/errors.hpp
+++ b/deps/LIEF/include/LIEF/errors.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2021 - 2025 R. Thomas
- * Copyright 2021 - 2025 Quarkslab
+/* Copyright 2021 - 2026 R. Thomas
+ * Copyright 2021 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -16,8 +16,9 @@
 #ifndef LIEF_ERROR_H
 #define LIEF_ERROR_H
 #include <cstdint>
+#include <string>
+#include <LIEF/compiler_attributes.hpp>
 #include <LIEF/third-party/expected.hpp>
-#include <cstdint>

 /// LIEF error codes definition
 enum class lief_errors : uint32_t {
@@ -38,7 +39,9 @@ enum class lief_errors : uint32_t {
   build_error,

   data_too_large,
-  require_extended_version
+  require_extended_version,
+  inconsistent,
+  runtime_error,
   /*
    * When adding a new error, do not forget
    * to update the Python bindings as well (pyErr.cpp) and Rust bindings:
@@ -48,7 +51,7 @@ enum class lief_errors : uint32_t {

 const char* to_string(lief_errors err);

-/// Create an standard error code from lief_errors
+/// Create a standard error code from lief_errors
 inline tl::unexpected<lief_errors> make_error_code(lief_errors e) {
   return tl::make_unexpected(e);
 }
@@ -57,24 +60,28 @@ inline tl::unexpected<lief_errors> make_error_code(lief_errors e) {
 namespace LIEF {
 /// Wrapper that contains an Object (``T``) or an error
 ///
-/// The tl/expected implementation exposes the method ``value()`` to access the underlying object (if no error)
+/// The tl/expected implementation exposes the method ``value()`` to access the
+/// underlying object (if no error)
 ///
 /// Typical usage is:
 ///
-/// \code{.cpp}
+/// @code{.cpp}
 /// result<int> intval = my_function();
 /// if (intval) {
 ///  int val = intval.value();
 /// } else { // There is an error
 ///  std::cout << get_error(intval).message() << "\n";
 /// }
-/// \endcode
+/// @endcode
 ///
 /// See https://tl.tartanllama.xyz/en/latest/api/expected.html for more details
 template<typename T>
- class [[maybe_unused]]result : public tl::expected<T, lief_errors> {
+class LIEF_MAYBE_UNUSED result : public tl::expected<T, lief_errors> {
   public:
+  using ExpectedType = T;
   using tl::expected<T, lief_errors>::expected;
+  result(tl::expected<T, lief_errors> e) :
+    tl::expected<T, lief_errors>::expected(std::move(e)) {}
 };

 /// Get the error code associated with the result
@@ -101,15 +108,15 @@ inline ok_t ok() {
 /// writing ``result<void> f(...)``. Instead, it makes the output
 /// explicit such as:
 ///
-/// \code{.cpp}
+/// @code{.cpp}
 /// ok_error_t process() {
 ///   if (fail) {
 ///     return make_error_code(...);
 ///   }
 ///   return ok();
 /// }
-/// \endcode
-class [[maybe_unused]] ok_error_t : public result<ok_t> {
+/// @endcode
+class LIEF_MAYBE_UNUSED ok_error_t : public result<ok_t> {
   public:
   using result<ok_t>::result;
 };
@@ -124,8 +131,13 @@ inline bool is_err(const ok_error_t& val) {

 }

-
-
-
+extern template class tl::expected<LIEF::ok_t, lief_errors>;
+extern template class LIEF::result<LIEF::ok_t>;
+extern template class tl::expected<uint64_t, lief_errors>;
+extern template class LIEF::result<uint64_t>;
+extern template class tl::expected<uint32_t, lief_errors>;
+extern template class LIEF::result<uint32_t>;
+extern template class tl::expected<std::string, lief_errors>;
+extern template class LIEF::result<std::string>;

 #endif
diff --git a/deps/LIEF/include/LIEF/hash.hpp b/deps/LIEF/include/LIEF/hash.hpp
index 25d18b83363..0177f6e3891 100644
--- a/deps/LIEF/include/LIEF/hash.hpp
+++ b/deps/LIEF/include/LIEF/hash.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -56,7 +56,8 @@ class LIEF_API Hash : public Visitor {
   virtual Hash& process(const std::vector<uint8_t>& raw);
   virtual Hash& process(span<const uint8_t> raw);

-  template<class T, typename = typename std::enable_if<std::is_enum<T>::value>::type>
+  template<class T,
+           typename = typename std::enable_if<std::is_enum<T>::value>::type>
   Hash& process(T v) {
     return process(static_cast<value_type>(v));
   }
@@ -116,7 +117,6 @@ class LIEF_API Hash : public Visitor {

   protected:
   value_type value_ = 0;
-
 };

 LIEF_API Hash::value_type hash(const Object& v);
diff --git a/deps/LIEF/include/LIEF/iostream.hpp b/deps/LIEF/include/LIEF/iostream.hpp
index e02798d7745..f5c6763ce39 100644
--- a/deps/LIEF/include/LIEF/iostream.hpp
+++ b/deps/LIEF/include/LIEF/iostream.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -23,12 +23,13 @@
 #include <vector>
 #include <array>

+#include "LIEF/visibility.h"
 #include "LIEF/span.hpp"
 #include "LIEF/optional.hpp"
 #include "LIEF/endianness_support.hpp"

 namespace LIEF {
-class vector_iostream {
+class LIEF_API vector_iostream {
   public:
   static size_t uleb128_size(uint64_t value);
   static size_t sleb128_size(int64_t value);
@@ -36,23 +37,22 @@ class vector_iostream {
   using pos_type = std::streampos;
   using off_type = std::streamoff;
   enum class RELOC_OP {
-    ADD, SUB
+    ADD,
+    SUB,
   };

   vector_iostream() = default;
   vector_iostream(std::vector<uint8_t>& ref) :
-    raw_(&ref)
-  {}
+    raw_(&ref) {}
   vector_iostream(bool endian_swap) :
-    endian_swap_(endian_swap)
-  {}
+    endian_swap_(endian_swap) {}

-  vector_iostream& reserve(size_t size) {
+  vector_iostream& reserve(size_t size) LIEF_LIFETIMEBOUND {
     raw_->reserve(size);
     return *this;
   }

-  vector_iostream& increase_capacity(size_t size) {
+  vector_iostream& increase_capacity(size_t size) LIEF_LIFETIMEBOUND {
     raw_->reserve(raw_->size() + size);
     return *this;
   }
@@ -63,7 +63,7 @@ class vector_iostream {
     return write(sp.data(), sp.size());
   }

-  vector_iostream& write(std::vector<uint8_t> s) {
+  vector_iostream& write(const std::vector<uint8_t>& s) {
     if (s.empty()) {
       return *this;
     }
@@ -94,7 +94,9 @@ class vector_iostream {
     return write(other.data());
   }

-  template<class T, typename = typename std::enable_if<std::is_standard_layout<T>::value && std::is_trivial<T>::value>::type>
+  template<class T,
+           typename = typename std::enable_if<std::is_standard_layout<T>::value &&
+                                              std::is_trivial<T>::value>::type>
   vector_iostream& write(const T& t) {
     const auto pos = static_cast<size_t>(tellp());
     if (raw_->size() < (pos + sizeof(T))) {
@@ -111,7 +113,7 @@ class vector_iostream {
     return *this;
   }

-  vector_iostream& align(size_t alignment, uint8_t fill = 0);
+  vector_iostream& align(size_t alignment, uint8_t fill = 0) LIEF_LIFETIMEBOUND;

   template<typename T>
   vector_iostream& write(const std::pair<T, T>& p) {
@@ -142,8 +144,8 @@ class vector_iostream {
     return opt ? write<T>(*opt) : *this;
   }

-  vector_iostream& write_uleb128(uint64_t value);
-  vector_iostream& write_sleb128(int64_t value);
+  vector_iostream& write_uleb128(uint64_t value) LIEF_LIFETIMEBOUND;
+  vector_iostream& write_sleb128(int64_t value) LIEF_LIFETIMEBOUND;

   vector_iostream& get(std::vector<uint8_t>& c) {
     c = *raw_;
@@ -172,11 +174,11 @@ class vector_iostream {
     return *this;
   }

-  vector_iostream& seek_end() {
+  vector_iostream& seek_end() LIEF_LIFETIMEBOUND {
     return seekp(raw_->size());
   }

-  vector_iostream& pad(size_t size, uint8_t value = 0) {
+  vector_iostream& pad(size_t size, uint8_t value = 0) LIEF_LIFETIMEBOUND {
     raw_->resize(raw_->size() + size, value);
     return *this;
   }
@@ -248,15 +250,17 @@ class vector_iostream {

   template<class T>
   T* edit_as() {
-    assert(((size_t)current_pos_ + sizeof(T)) <= raw_->size());
+    const auto end = static_cast<size_t>(current_pos_) + sizeof(T);
+    if (raw_->size() < end) {
+      return nullptr;
+    }
     return reinterpret_cast<T*>(raw_->data() + current_pos_);
   }

   template<class T>
   T* edit_as(size_t pos) {
     seekp(pos);
-    assert(((size_t)current_pos_ + sizeof(T)) <= raw_->size());
-    return reinterpret_cast<T*>(raw_->data() + current_pos_);
+    return edit_as<T>();
   }

   const vector_iostream& copy_into(const span<uint8_t>& sp, size_t sz) const {
@@ -317,15 +321,13 @@ class ScopeOStream {

   explicit ScopeOStream(vector_iostream& stream, uint64_t pos) :
     pos_{stream.tellp()},
-    stream_{stream}
-  {
+    stream_{stream} {
     stream_.seekp(pos);
   }

   explicit ScopeOStream(vector_iostream& stream) :
     pos_{stream.tellp()},
-    stream_{stream}
-  {}
+    stream_{stream} {}

   ~ScopeOStream() {
     stream_.seekp(pos_);
@@ -349,6 +351,5 @@ class ScopeOStream {
 };


-
 }
 #endif
diff --git a/deps/LIEF/include/LIEF/iterators.hpp b/deps/LIEF/include/LIEF/iterators.hpp
index 525396c4386..137f1607915 100644
--- a/deps/LIEF/include/LIEF/iterators.hpp
+++ b/deps/LIEF/include/LIEF/iterators.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  * Copyright 2017 - 2021, NVIDIA CORPORATION. All rights reserved.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
@@ -16,7 +16,6 @@
  */
 #ifndef LIEF_ITERATORS_H
 #define LIEF_ITERATORS_H
-#include <cmath>
 #include <cstddef>
 #include <cassert>
 #include <iterator>
@@ -25,6 +24,8 @@
 #include <type_traits>
 #include <vector>

+#include <LIEF/compiler_attributes.hpp>
+
 namespace LIEF {

 template<class T>
@@ -36,7 +37,7 @@ using add_const_t = typename std::add_const<T>::type;
 template<class T>
 using remove_const_t = typename std::remove_const<T>::type;

-template< class T >
+template<class T>
 using add_lvalue_reference_t = typename std::add_lvalue_reference<T>::type;


@@ -44,6 +45,9 @@ using add_lvalue_reference_t = typename std::add_lvalue_reference<T>::type;
 template<class T, typename U = typename decay_t<T>::value_type,
          class ITERATOR_T = typename decay_t<T>::iterator>
 class ref_iterator {
+  template<class, typename, class>
+  friend class ref_iterator;
+
   public:
   using iterator_category = std::bidirectional_iterator_tag;
   using value_type = decay_t<U>;
@@ -51,41 +55,88 @@ class ref_iterator {
   using pointer = typename std::remove_pointer<U>::type*;
   using reference = typename std::remove_pointer<U>::type&;

-  using container_type = T;          // e.g. std::vector<Section*>&
-  using DT_VAL         = U;          // e.g. Section*
-  using DT             = decay_t<T>; // e.g. std::vector<Section>
-  using ref_t          = typename ref_iterator::reference;
-  using pointer_t      = typename ref_iterator::pointer;
+  using container_type = T; // e.g. std::vector<Section*>&
+  using DT_VAL = U;         // e.g. Section*
+  using DT = decay_t<T>;    // e.g. std::vector<Section>
+  using ref_t = typename ref_iterator::reference;
+  using pointer_t = typename ref_iterator::pointer;

-  ref_iterator(T container) :
-    container_{std::forward<T>(container)}
-  {
-    it_ = std::begin(container_);
+  ref_iterator(ref_iterator&& other) noexcept :
+    container_{std::forward<T>(other.container_)},
+    it_{std::begin(container_)},
+    distance_{other.distance_} {
+    std::advance(it_, distance_);
   }

+  ref_iterator& operator=(ref_iterator&& other) noexcept {
+    if (other == &this) {
+      return *this;
+    }
+    container_ = std::forward<T>(other.container_);
+    it_ = std::begin(other.container_);
+    distance_ = other.distance_;
+    std::advance(it_, distance_);
+    return *this;
+  }
+
+  template<class T2, typename U2, class IT2,
+           typename = typename std::enable_if<
+               !std::is_same<ref_iterator, ref_iterator<T2, U2, IT2>>::value &&
+               std::is_same<decay_t<T>, decay_t<T2>>::value
+           >::type>
+  ref_iterator(const ref_iterator<T2, U2, IT2>& other) :
+    container_{
+        const_cast<add_lvalue_reference_t<remove_const_t<DT>>>(other.container_)
+    },
+    it_{std::begin(container_)},
+    distance_{other.distance_} {
+    std::advance(it_, distance_);
+  }
+
+  template<class T2, typename U2, class IT2,
+           typename = typename std::enable_if<
+               !std::is_same<ref_iterator, ref_iterator<T2, U2, IT2>>::value &&
+               std::is_same<decay_t<T>, decay_t<T2>>::value
+           >::type>
+  // NOLINTNEXTLINE(cppcoreguidelines-rvalue-reference-param-not-moved)
+  ref_iterator(ref_iterator<T2, U2, IT2>&& other) noexcept :
+    container_{const_cast<add_lvalue_reference_t<remove_const_t<DT>>>(
+        std::forward<T2>(other.container_)
+    )},
+    it_{std::begin(container_)},
+    distance_{other.distance_} {
+    std::advance(it_, distance_);
+  }
+
+  ~ref_iterator() = default;
+
+  ref_iterator(T container) :
+    container_{std::forward<T>(container)},
+    it_(std::begin(container_)) {}
+
   ref_iterator(const ref_iterator& copy) :
     container_{copy.container_},
     it_{std::begin(container_)},
-    distance_{copy.distance_}
-  {
+    distance_{copy.distance_} {
     std::advance(it_, distance_);
   }

-
-  ref_iterator& operator=(ref_iterator other) {
+  ref_iterator& operator=(ref_iterator other) LIEF_LIFETIMEBOUND {
     swap(other);
     return *this;
   }

   void swap(ref_iterator& other) noexcept {
-    std::swap(const_cast<add_lvalue_reference_t<remove_const_t<DT>>>(container_),
-              const_cast<add_lvalue_reference_t<remove_const_t<DT>>>(other.container_));
+    std::swap(
+        const_cast<add_lvalue_reference_t<remove_const_t<DT>>>(container_),
+        const_cast<add_lvalue_reference_t<remove_const_t<DT>>>(other.container_)
+    );
     std::swap(it_, other.it_);
     std::swap(distance_, other.distance_);
   }


-  ref_iterator& operator++() {
+  ref_iterator& operator++() LIEF_LIFETIMEBOUND {
     it_ = std::next(it_);
     distance_++;
     return *this;
@@ -97,7 +148,7 @@ class ref_iterator {
     return retval;
   }

-  ref_iterator& operator--() {
+  ref_iterator& operator--() LIEF_LIFETIMEBOUND {
     if (it_ != std::begin(container_)) {
       it_ = std::prev(it_);
       distance_--;
@@ -112,21 +163,28 @@ class ref_iterator {
   }


-  ref_iterator& operator+=(const typename ref_iterator::difference_type& movement) {
+  ref_iterator& operator+=(
+      const typename ref_iterator::difference_type& movement
+  ) LIEF_LIFETIMEBOUND {
     std::advance(it_, movement);
     distance_ += movement;
     return *this;
   }


-  ref_iterator& operator-=(const typename ref_iterator::difference_type& movement) {
+  ref_iterator& operator-=(
+      const typename ref_iterator::difference_type& movement
+  ) LIEF_LIFETIMEBOUND {
     return (*this) += -movement;
   }


-  typename std::enable_if<!std::is_const<ref_t>::value, remove_const_t<ref_t>>::type
-  operator[](size_t n) {
-    return const_cast<remove_const_t<ref_t>>(static_cast<const ref_iterator*>(this)->operator[](n));
+  typename std::enable_if<!std::is_const<ref_t>::value,
+                          remove_const_t<ref_t>>::type
+      operator[](size_t n) {
+    return const_cast<remove_const_t<ref_t>>(
+        static_cast<const ref_iterator*>(this)->operator[](n)
+    );
   }


@@ -135,7 +193,8 @@ class ref_iterator {

     auto* no_const_this = const_cast<ref_iterator*>(this);

-    typename ref_iterator::difference_type saved_dist = std::distance(std::begin(no_const_this->container_), no_const_this->it_);
+    typename ref_iterator::difference_type saved_dist =
+        std::distance(std::begin(no_const_this->container_), no_const_this->it_);
     no_const_this->it_ = std::begin(no_const_this->container_);
     std::advance(no_const_this->it_, n);

@@ -190,7 +249,7 @@ class ref_iterator {
     return begin();
   }

-  ref_iterator end()  const {
+  ref_iterator end() const {
     ref_iterator it = ref_iterator{container_};
     it.it_ = std::end(it.container_);
     it.distance_ = it.size();
@@ -217,28 +276,33 @@ class ref_iterator {
     return container_.empty();
   }

-  typename std::enable_if<!std::is_const<ref_t>::value, remove_const_t<ref_t>>::type
-  operator*() {
-    return const_cast<remove_const_t<ref_t>>(static_cast<const ref_iterator*>(this)->operator*());
+  typename std::enable_if<!std::is_const<ref_t>::value,
+                          remove_const_t<ref_t>>::type
+      operator*() {
+    return const_cast<remove_const_t<ref_t>>(
+        static_cast<const ref_iterator*>(this)->operator*()
+    );
   }

   template<typename V = DT_VAL>
   typename std::enable_if<std::is_pointer<V>::value, add_const_t<ref_t>>::type
-  operator*() const {
+      operator*() const {
     assert(*it_ && "integrity error: nullptr");
     return const_cast<add_const_t<ref_t>>(static_cast<ref_t>(**it_));
   }

   template<typename V = DT_VAL>
   typename std::enable_if<!std::is_pointer<V>::value, add_const_t<ref_t>>::type
-  operator*() const {
+      operator*() const {
     return const_cast<add_const_t<ref_t>>(*(it_));
   }


   typename std::enable_if<!std::is_const<pointer_t>::value, pointer_t>::type
-  operator->() {
-    return const_cast<remove_const_t<pointer_t>>(static_cast<const ref_iterator*>(this)->operator->());
+      operator->() {
+    return const_cast<remove_const_t<pointer_t>>(
+        static_cast<const ref_iterator*>(this)->operator->()
+    );
   }

   add_const_t<pointer_t> operator->() const {
@@ -252,12 +316,14 @@ class ref_iterator {
 };


-/// Iterator which return const ref on container's values
-template<class T, typename U = typename decay_t<T>::value_type, class CT = typename std::add_const<T>::type>
-using const_ref_iterator = ref_iterator<CT, U, typename decay_t<CT>::const_iterator>;
+/// Iterator which returns a const ref on container's values
+template<class T, typename U = typename decay_t<T>::value_type,
+         class CT = typename std::add_const<T>::type>
+using const_ref_iterator =
+    ref_iterator<CT, U, typename decay_t<CT>::const_iterator>;


-/// Iterator which return a ref on container's values given predicates
+/// Iterator which returns a ref on container's values given predicates
 template<class T, typename U = typename decay_t<T>::value_type,
          class ITERATOR_T = typename decay_t<T>::iterator>
 class filter_iterator {
@@ -270,24 +336,53 @@ class filter_iterator {
   using reference = typename std::remove_pointer<U>::type&;

   using container_type = T;
-  using DT_VAL         = U;
-  using DT        = decay_t<T>;
-  using ref_t     = typename filter_iterator::reference;
+  using DT_VAL = U;
+  using DT = decay_t<T>;
+  using ref_t = typename filter_iterator::reference;
   using pointer_t = typename filter_iterator::pointer;
-  using filter_t  = std::function<bool (const typename DT::value_type&)>;
+  using filter_t = std::function<bool(const typename DT::value_type&)>;
+
+  filter_iterator(filter_iterator&& other) noexcept :
+    size_c_(other.size_c_),
+    size_cached_(other.size_cached_),
+    container_(std::forward<T>(other.container_)),
+    it_(std::begin(container_)),
+    filters_{std::move(other.filters_)},
+    distance_(other.distance_) {
+    std::advance(it_, distance_);
+  }
+
+  filter_iterator& operator=(filter_iterator&& other) noexcept {
+    if (this == &other) {
+      return *this;
+    }
+
+    size_c_ = other.size_c_;
+    size_cached_ = other.size_cached_;
+    container_ = std::forward<T>(other.container_);
+    it_ = std::begin(container_);
+    filters_ = std::move(other.filters_);
+    distance_ = other.distance_;
+
+    std::advance(it_, distance_);
+
+    return *this;
+  }
+
+  ~filter_iterator() = default;

   filter_iterator(T container, filter_t filter) :
     container_{std::forward<T>(container)},
-    filters_{}
-  {
+    it_(std::begin(container_)),
+    filters_{} {

-    it_ = std::begin(container_);

-    filters_.push_back(filter),
-    it_ = std::begin(container_);
+    filters_.push_back(filter);

     if (it_ != std::end(container_)) {
-      if (!std::all_of(std::begin(filters_), std::end(filters_), [this] (const filter_t& f) {return f(*it_);})) {
+      if (!std::all_of(std::begin(filters_), std::end(filters_),
+                       [this](const filter_t& f) { return f(*it_); }))
+      {
         next();
       }
     }
@@ -295,13 +390,14 @@ class filter_iterator {

   filter_iterator(T container, const std::vector<filter_t>& filters) :
     container_{std::forward<T>(container)},
-    filters_{filters}
-  {
+    it_(std::begin(container_)),
+    filters_{filters} {

-    it_ = std::begin(container_);

     if (it_ != std::end(container_)) {
-      if (!std::all_of(std::begin(filters_), std::end(filters_), [this] (const filter_t& f) {return f(*it_);})) {
+      if (!std::all_of(std::begin(filters_), std::end(filters_),
+                       [this](const filter_t& f) { return f(*it_); }))
+      {
         next();
       }
     }
@@ -309,41 +405,41 @@ class filter_iterator {

   filter_iterator(T container) :
     container_{std::forward<T>(container)},
-    filters_{}
-  {
-    it_ = std::begin(container_);
-  }
+    it_(std::begin(container_)),
+    filters_{} {}

   filter_iterator(const filter_iterator& copy) :
     container_{copy.container_},
     it_{std::begin(container_)},
     filters_{copy.filters_},
-    distance_{copy.distance_}
-  {
+    distance_{copy.distance_} {
     std::advance(it_, distance_);
   }

-  filter_iterator& operator=(filter_iterator other) {
+  filter_iterator& operator=(filter_iterator other) LIEF_LIFETIMEBOUND {
     swap(other);
     return *this;
   }

   void swap(filter_iterator& other) noexcept {
-    std::swap(const_cast<remove_const_t<DT>&>(container_), const_cast<remove_const_t<DT>&>(other.container_));
-    std::swap(it_,        other.it_);
-    std::swap(filters_,   other.filters_);
-    std::swap(size_c_,    other.size_c_);
-    std::swap(distance_,  other.distance_);
+    std::swap(const_cast<remove_const_t<DT>&>(container_),
+              const_cast<remove_const_t<DT>&>(other.container_));
+    std::swap(it_, other.it_);
+    std::swap(filters_, other.filters_);
+    std::swap(size_c_, other.size_c_);
+    std::swap(size_cached_, other.size_cached_);
+    std::swap(distance_, other.distance_);
   }


-  filter_iterator& def(filter_t func) {
+  filter_iterator& def(filter_t func) LIEF_LIFETIMEBOUND {
     filters_.push_back(func);
     size_c_ = 0;
+    size_cached_ = false;
     return *this;
   }

-  filter_iterator& operator++() {
+  filter_iterator& operator++() LIEF_LIFETIMEBOUND {
     next();
     return *this;
   }
@@ -366,7 +462,7 @@ class filter_iterator {
     // we don't need filter for the end iterator
     filter_iterator it_end{container_};

-    it_end.it_       =  it_end.container_.end();
+    it_end.it_ = it_end.container_.end();
     it_end.distance_ = it_end.container_.size();

     return it_end;
@@ -376,28 +472,34 @@ class filter_iterator {
     return end();
   }

-  typename std::enable_if<!std::is_const<ref_t>::value, remove_const_t<ref_t>>::type
-  operator*() {
-    return const_cast<remove_const_t<ref_t>>(static_cast<const filter_iterator*>(this)->operator*());
+  typename std::enable_if<!std::is_const<ref_t>::value,
+                          remove_const_t<ref_t>>::type
+      operator*() {
+    return const_cast<remove_const_t<ref_t>>(
+        static_cast<const filter_iterator*>(this)->operator*()
+    );
   }

   template<typename V = DT_VAL>
   typename std::enable_if<std::is_pointer<V>::value, add_const_t<ref_t>>::type
-  operator*() const {
+      operator*() const {
     assert(*it_ && "integrity error: nullptr");
     return const_cast<add_const_t<ref_t>>(static_cast<ref_t>(**it_));
   }

   template<typename V = DT_VAL>
   typename std::enable_if<!std::is_pointer<V>::value, add_const_t<ref_t>>::type
-  operator*() const {
+      operator*() const {
     return const_cast<add_const_t<ref_t>>(*(it_));
   }


-  typename std::enable_if<!std::is_const<ref_t>::value, remove_const_t<ref_t>>::type
-  operator[](size_t n) {
-    return const_cast<remove_const_t<ref_t>>(static_cast<const filter_iterator*>(this)->operator[](n));
+  typename std::enable_if<!std::is_const<ref_t>::value,
+                          remove_const_t<ref_t>>::type
+      operator[](size_t n) {
+    return const_cast<remove_const_t<ref_t>>(
+        static_cast<const filter_iterator*>(this)->operator[](n)
+    );
   }

   add_const_t<ref_t> operator[](size_t n) const {
@@ -410,8 +512,10 @@ class filter_iterator {


   typename std::enable_if<!std::is_const<pointer_t>::value, pointer_t>::type
-  operator->() {
-    return const_cast<remove_const_t<pointer_t>>(static_cast<const filter_iterator*>(this)->operator->());
+      operator->() {
+    return const_cast<remove_const_t<pointer_t>>(
+        static_cast<const filter_iterator*>(this)->operator->()
+    );
   }

   add_const_t<pointer_t> operator->() const {
@@ -423,26 +527,38 @@ class filter_iterator {
       return container_.size();
     }

-    if (size_c_ > 0) {
+    if (size_cached_) {
       return size_c_;
     }
     filter_iterator it = begin();
     size_t size = 0;

-    auto end_iter = std::end(it);
-    for (; it != end_iter; ++it) ++size;
+    auto end_iter = it.end();
+    for (; it != end_iter; ++it) {
+      ++size;
+    }
     size_c_ = size;
+    size_cached_ = true;
     return size_c_;
   }


   bool empty() const {
-    return size() == 0;
+    if (filters_.empty()) {
+      return container_.empty();
+    }
+
+    if (size_cached_) {
+      return size_c_ == 0;
+    }
+
+    return begin() == end();
   }


   bool operator==(const filter_iterator& other) const {
-    return (container_.size() == other.container_.size() && distance_ == other.distance_);
+    return (container_.size() == other.container_.size() &&
+            distance_ == other.distance_);
   }

   bool operator!=(const filter_iterator& other) const {
@@ -459,73 +575,117 @@ class filter_iterator {
     do {
       it_ = std::next(it_);
       distance_++;
-    } while(it_ != std::end(container_) &&
-            !std::all_of(std::begin(filters_), std::end(filters_),
-                         [this] (const filter_t& f) { return f(*it_); }));
-
+    } while (it_ != std::end(container_) &&
+             !std::all_of(std::begin(filters_), std::end(filters_),
+                          [this](const filter_t& f) { return f(*it_); }));
   }


   mutable size_t size_c_ = 0;
+  mutable bool size_cached_ = false;
   T container_;
   ITERATOR_T it_;
   std::vector<filter_t> filters_;
   typename filter_iterator::difference_type distance_ = 0;
 };

-/// Iterator which return a const ref on container's values given predicates
+/// Iterator which returns a const ref on container's values given predicates
 template<class T, typename U = typename decay_t<T>::value_type,
          class CT = typename std::add_const<T>::type>
-using const_filter_iterator = filter_iterator<CT, U, typename decay_t<CT>::const_iterator>;
+using const_filter_iterator =
+    filter_iterator<CT, U, typename decay_t<CT>::const_iterator>;

 // ----------------------------------------------------------------------------
 // This part is taken from LLVM
 // ----------------------------------------------------------------------------

-template <typename IteratorT>
+template<typename IteratorT>
 class iterator_range {
   public:
   using IteratorTy = IteratorT;
-  iterator_range(IteratorT&& it_begin, IteratorT&& it_end)
-      : begin_(std::forward<IteratorT>(it_begin)),
-        end_(std::forward<IteratorT>(it_end)) {}
+  using IteratorDecayTy = typename std::decay<IteratorT>::type;
+
+  template<class T>
+  iterator_range(T&& it_begin, T&& it_end) :
+    begin_(std::forward<T>(it_begin)),
+    end_(std::forward<T>(it_end)) {}
+
+  IteratorT begin() const {
+    return begin_;
+  }
+  IteratorT end() const {
+    return end_;
+  }
+  bool empty() const {
+    return begin_ == end_;
+  }
+
+  class ReferenceProxy {
+    friend iterator_range;
+
+    IteratorDecayTy it_;
+
+    explicit ReferenceProxy(IteratorDecayTy it) :
+      it_(std::move(it)) {}

-  IteratorT begin() const { return begin_; }
-  IteratorT end() const { return end_; }
-  bool empty() const { return begin_ == end_; }
+    public:
+    using reference = decltype(*std::declval<const IteratorDecayTy&>());

-  typename IteratorT::value_type at(typename IteratorT::difference_type pos) const {
+    operator reference() const {
+      return *it_;
+    }
+
+    template<class It = IteratorDecayTy>
+    auto operator->() const -> decltype(&*std::declval<const It&>()) {
+      return &*it_;
+    }
+  };
+
+  ReferenceProxy at(typename IteratorDecayTy::difference_type pos) const {
     static_assert(IsRandomAccess, "at() needs random access iterator");
     auto it = begin_;
     std::advance(it, pos);
-    return *it;
+    return ReferenceProxy(std::move(it));
   }

-  typename IteratorT::value_type operator[](typename IteratorT::difference_type pos) const {
+  ReferenceProxy operator[](typename IteratorDecayTy::difference_type pos) const {
     return at(pos);
   }

   std::ptrdiff_t size() const {
-    static_assert(IsRandomAccess, "size() needs random access iterator");
     return std::distance(begin_, end_);
   }

   protected:
   enum {
-    IsRandomAccess = std::is_base_of<std::random_access_iterator_tag,
-                                      typename IteratorT::iterator_category>::value,
-    IsBidirectional = std::is_base_of<std::bidirectional_iterator_tag,
-                                      typename IteratorT::iterator_category>::value,
+    IsRandomAccess =
+        std::is_base_of<std::random_access_iterator_tag,
+                        typename IteratorDecayTy::iterator_category>::value,
+    IsBidirectional =
+        std::is_base_of<std::bidirectional_iterator_tag,
+                        typename IteratorDecayTy::iterator_category>::value,
   };
+
   private:
   IteratorT begin_;
   IteratorT end_;
 };

-template <class T> iterator_range<T> make_range(T&& x, T&& y) {
+template<class T>
+iterator_range<T> make_range(T&& x, T&& y) {
   return iterator_range<T>(std::forward<T>(x), std::forward<T>(y));
 }

+} // namespace LIEF
+
+#if LIEF_HAS_STD_RANGES
+template<typename IteratorT>
+inline constexpr bool
+    std::ranges::enable_borrowed_range<LIEF::iterator_range<IteratorT>> = true;
+#endif
+
+namespace LIEF {
+

 /// CRTP base class which implements the entire standard iterator facade
 /// in terms of a minimal subset of the interface.
@@ -548,13 +708,13 @@ template <class T> iterator_range<T> make_range(T&& x, T&& y) {
 /// Iterators are expected to have const rules analogous to pointers, with a
 /// single, const-qualified operator*() that returns ReferenceT. This matches
 /// the second and third pointers in the following example:
-/// \code
+/// @code
 ///   int Value;
 ///   { int *I = &Value; }             // ReferenceT 'int&'
 ///   { int *const I = &Value; }       // ReferenceT 'int&'; const
 ///   { const int *I = &Value; }       // ReferenceT 'const int&'
 ///   { const int *const I = &Value; } // ReferenceT 'const int&'; const
-/// \endcode
+/// @endcode
 /// If an iterator facade returns a handle to its own state, then T (and
 /// PointerT and ReferenceT) should usually be const-qualified. Otherwise, if
 /// clients are expected to modify the handle itself, the field can be declared
@@ -584,23 +744,23 @@ template <class T> iterator_range<T> make_range(T&& x, T&& y) {
 ///   - DerivedT &operator+=(DifferenceTypeT N);
 ///   - DerivedT &operator-=(DifferenceTypeT N);
 ///
-template <typename DerivedT, typename IteratorCategoryT, typename T,
-          typename DifferenceTypeT = std::ptrdiff_t, typename PointerT = T *,
-          typename ReferenceT = T &>
+template<typename DerivedT, typename IteratorCategoryT, typename T,
+         typename DifferenceTypeT = std::ptrdiff_t, typename PointerT = T*,
+         typename ReferenceT = T&>
 class iterator_facade_base {
-public:
+  public:
   using iterator_category = IteratorCategoryT;
   using value_type = T;
   using difference_type = DifferenceTypeT;
   using pointer = PointerT;
   using reference = ReferenceT;

-protected:
+  protected:
   enum {
-    IsRandomAccess = std::is_base_of<std::random_access_iterator_tag,
-                                     IteratorCategoryT>::value,
-    IsBidirectional = std::is_base_of<std::bidirectional_iterator_tag,
-                                      IteratorCategoryT>::value,
+    IsRandomAccess =
+        std::is_base_of<std::random_access_iterator_tag, IteratorCategoryT>::value,
+    IsBidirectional =
+        std::is_base_of<std::bidirectional_iterator_tag, IteratorCategoryT>::value,
   };

   /// A proxy object for computing a reference via indirecting a copy of an
@@ -613,10 +773,13 @@ protected:

     DerivedT I;

-    ReferenceProxy(DerivedT I) : I(std::move(I)) {}
+    ReferenceProxy(DerivedT I) :
+      I(std::move(I)) {}

-  public:
-    operator ReferenceT() const { return *I; }
+    public:
+    operator ReferenceT() const {
+      return *I;
+    }
   };

   /// A proxy object for computing a pointer via indirecting a copy of a
@@ -628,191 +791,205 @@ protected:

     ReferenceT R;

-    template <typename RefT>
-    PointerProxy(RefT &&R) : R(std::forward<RefT>(R)) {}
+    template<typename RefT>
+    PointerProxy(RefT&& R) : // NOLINT(bugprone-forwarding-reference-overload)
+      R(std::forward<RefT>(R)) {}

-  public:
-    PointerT operator->() const { return &R; }
+    public:
+    PointerT operator->() const {
+      return &R;
+    }
   };

-public:
+  public:
   DerivedT operator+(DifferenceTypeT n) const {
     static_assert(std::is_base_of<iterator_facade_base, DerivedT>::value,
                   "Must pass the derived type to this template!");
-    static_assert(
-        IsRandomAccess,
-        "The '+' operator is only defined for random access iterators.");
-    DerivedT tmp = *static_cast<const DerivedT *>(this);
+    static_assert(IsRandomAccess,
+                  "The '+' operator is only defined for random access iterators.");
+    DerivedT tmp = *static_cast<const DerivedT*>(this);
     tmp += n;
     return tmp;
   }
-  friend DerivedT operator+(DifferenceTypeT n, const DerivedT &i) {
-    static_assert(
-        IsRandomAccess,
-        "The '+' operator is only defined for random access iterators.");
+  friend DerivedT operator+(DifferenceTypeT n, const DerivedT& i) {
+    static_assert(IsRandomAccess,
+                  "The '+' operator is only defined for random access iterators.");
     return i + n;
   }
   DerivedT operator-(DifferenceTypeT n) const {
-    static_assert(
-        IsRandomAccess,
-        "The '-' operator is only defined for random access iterators.");
-    DerivedT tmp = *static_cast<const DerivedT *>(this);
+    static_assert(IsRandomAccess,
+                  "The '-' operator is only defined for random access iterators.");
+    DerivedT tmp = *static_cast<const DerivedT*>(this);
     tmp -= n;
     return tmp;
   }

-  DerivedT &operator++() {
+  DerivedT& operator++() {
     static_assert(std::is_base_of<iterator_facade_base, DerivedT>::value,
                   "Must pass the derived type to this template!");
-    return static_cast<DerivedT *>(this)->operator+=(1);
+    return static_cast<DerivedT*>(this)->operator+=(1);
   }
   DerivedT operator++(int) {
-    DerivedT tmp = *static_cast<DerivedT *>(this);
-    ++*static_cast<DerivedT *>(this);
+    DerivedT tmp = *static_cast<DerivedT*>(this);
+    ++*static_cast<DerivedT*>(this);
     return tmp;
   }
-  DerivedT &operator--() {
+  DerivedT& operator--() {
     static_assert(
         IsBidirectional,
-        "The decrement operator is only defined for bidirectional iterators.");
-    return static_cast<DerivedT *>(this)->operator-=(1);
+        "The decrement operator is only defined for bidirectional iterators."
+    );
+    return static_cast<DerivedT*>(this)->operator-=(1);
   }
   DerivedT operator--(int) {
     static_assert(
         IsBidirectional,
-        "The decrement operator is only defined for bidirectional iterators.");
-    DerivedT tmp = *static_cast<DerivedT *>(this);
-    --*static_cast<DerivedT *>(this);
+        "The decrement operator is only defined for bidirectional iterators."
+    );
+    DerivedT tmp = *static_cast<DerivedT*>(this);
+    --*static_cast<DerivedT*>(this);
     return tmp;
   }

 #ifndef __cpp_impl_three_way_comparison
-  bool operator!=(const DerivedT &RHS) const {
-    return !(static_cast<const DerivedT &>(*this) == RHS);
+  bool operator!=(const DerivedT& RHS) const {
+    return !(static_cast<const DerivedT&>(*this) == RHS);
   }
 #endif

-  bool operator>(const DerivedT &RHS) const {
+  bool operator>(const DerivedT& RHS) const {
     static_assert(
         IsRandomAccess,
-        "Relational operators are only defined for random access iterators.");
-    return !(static_cast<const DerivedT &>(*this) < RHS) &&
-           !(static_cast<const DerivedT &>(*this) == RHS);
+        "Relational operators are only defined for random access iterators."
+    );
+    return !(static_cast<const DerivedT&>(*this) < RHS) &&
+           !(static_cast<const DerivedT&>(*this) == RHS);
   }
-  bool operator<=(const DerivedT &RHS) const {
+  bool operator<=(const DerivedT& RHS) const {
     static_assert(
         IsRandomAccess,
-        "Relational operators are only defined for random access iterators.");
-    return !(static_cast<const DerivedT &>(*this) > RHS);
+        "Relational operators are only defined for random access iterators."
+    );
+    return !(static_cast<const DerivedT&>(*this) > RHS);
   }
-  bool operator>=(const DerivedT &RHS) const {
+  bool operator>=(const DerivedT& RHS) const {
     static_assert(
         IsRandomAccess,
-        "Relational operators are only defined for random access iterators.");
-    return !(static_cast<const DerivedT &>(*this) < RHS);
+        "Relational operators are only defined for random access iterators."
+    );
+    return !(static_cast<const DerivedT&>(*this) < RHS);
   }

   PointerProxy operator->() const {
-    return static_cast<const DerivedT *>(this)->operator*();
+    return static_cast<const DerivedT*>(this)->operator*();
   }
   ReferenceProxy operator[](DifferenceTypeT n) const {
     static_assert(IsRandomAccess,
                   "Subscripting is only defined for random access iterators.");
-    return static_cast<const DerivedT *>(this)->operator+(n);
+    return static_cast<const DerivedT*>(this)->operator+(n);
   }
 };

 /// CRTP base class for adapting an iterator to a different type.
 ///
 /// This class can be used through CRTP to adapt one iterator into another.
-/// Typically this is done through providing in the derived class a custom \c
+/// Typically this is done through providing in the derived class a custom @c
 /// operator* implementation. Other methods can be overridden as well.
-template <
-    typename DerivedT, typename WrappedIteratorT,
-    typename IteratorCategoryT =
-        typename std::iterator_traits<WrappedIteratorT>::iterator_category,
-    typename T = typename std::iterator_traits<WrappedIteratorT>::value_type,
-    typename DifferenceTypeT =
-        typename std::iterator_traits<WrappedIteratorT>::difference_type,
-    typename PointerT = typename std::conditional<
-        std::is_same<T, typename std::iterator_traits<
-                            WrappedIteratorT>::value_type>::value,
-        typename std::iterator_traits<WrappedIteratorT>::pointer, T *>,
-    typename ReferenceT = typename std::conditional<
-        std::is_same<T, typename std::iterator_traits<
-                            WrappedIteratorT>::value_type>::value,
-        typename std::iterator_traits<WrappedIteratorT>::reference, T &>::type>
+template<typename DerivedT, typename WrappedIteratorT,
+         typename IteratorCategoryT =
+             typename std::iterator_traits<WrappedIteratorT>::iterator_category,
+         typename T = typename std::iterator_traits<WrappedIteratorT>::value_type,
+         typename DifferenceTypeT =
+             typename std::iterator_traits<WrappedIteratorT>::difference_type,
+         typename PointerT = typename std::conditional<
+             std::is_same<T, typename std::iterator_traits<WrappedIteratorT>::
+                                 value_type>::value,
+             typename std::iterator_traits<WrappedIteratorT>::pointer, T*
+         >::type,
+         typename ReferenceT = typename std::conditional<
+             std::is_same<T, typename std::iterator_traits<WrappedIteratorT>::
+                                 value_type>::value,
+             typename std::iterator_traits<WrappedIteratorT>::reference, T&
+         >::type>
 class iterator_adaptor_base
-    : public iterator_facade_base<DerivedT, IteratorCategoryT, T,
-                                  DifferenceTypeT, PointerT, ReferenceT> {
+  : public iterator_facade_base<DerivedT, IteratorCategoryT, T, DifferenceTypeT,
+                                PointerT, ReferenceT> {
   using BaseT = typename iterator_adaptor_base::iterator_facade_base;

-protected:
+  protected:
   WrappedIteratorT I;

   iterator_adaptor_base() = default;

-  explicit iterator_adaptor_base(WrappedIteratorT u) : I(std::move(u)) {
+  explicit iterator_adaptor_base(WrappedIteratorT u) :
+    I(std::move(u)) {
     static_assert(std::is_base_of<iterator_adaptor_base, DerivedT>::value,
                   "Must pass the derived type to this template!");
   }

-  const WrappedIteratorT &wrapped() const { return I; }
+  const WrappedIteratorT& wrapped() const {
+    return I;
+  }

-public:
+  public:
   using difference_type = DifferenceTypeT;

-  DerivedT &operator+=(difference_type n) {
+  DerivedT& operator+=(difference_type n) {
     static_assert(
         BaseT::IsRandomAccess,
-        "The '+=' operator is only defined for random access iterators.");
+        "The '+=' operator is only defined for random access iterators."
+    );
     I += n;
-    return *static_cast<DerivedT *>(this);
+    return *static_cast<DerivedT*>(this);
   }
-  DerivedT &operator-=(difference_type n) {
+  DerivedT& operator-=(difference_type n) {
     static_assert(
         BaseT::IsRandomAccess,
-        "The '-=' operator is only defined for random access iterators.");
+        "The '-=' operator is only defined for random access iterators."
+    );
     I -= n;
-    return *static_cast<DerivedT *>(this);
+    return *static_cast<DerivedT*>(this);
   }
   using BaseT::operator-;
-  difference_type operator-(const DerivedT &RHS) const {
-    static_assert(
-        BaseT::IsRandomAccess,
-        "The '-' operator is only defined for random access iterators.");
+  difference_type operator-(const DerivedT& RHS) const {
+    static_assert(BaseT::IsRandomAccess,
+                  "The '-' operator is only defined for random access iterators.");
     return I - RHS.I;
   }

   // We have to explicitly provide ++ and -- rather than letting the facade
   // forward to += because WrappedIteratorT might not support +=.
   using BaseT::operator++;
-  DerivedT &operator++() {
+  DerivedT& operator++() LIEF_LIFETIMEBOUND {
     ++I;
-    return *static_cast<DerivedT *>(this);
+    return *static_cast<DerivedT*>(this);
   }
   using BaseT::operator--;
-  DerivedT &operator--() {
+  DerivedT& operator--() LIEF_LIFETIMEBOUND {
     static_assert(
         BaseT::IsBidirectional,
-        "The decrement operator is only defined for bidirectional iterators.");
+        "The decrement operator is only defined for bidirectional iterators."
+    );
     --I;
-    return *static_cast<DerivedT *>(this);
+    return *static_cast<DerivedT*>(this);
   }

-  friend bool operator==(const iterator_adaptor_base &LHS,
-                         const iterator_adaptor_base &RHS) {
+  friend bool operator==(const iterator_adaptor_base& LHS,
+                         const iterator_adaptor_base& RHS) {
     return LHS.I == RHS.I;
   }
-  friend bool operator<(const iterator_adaptor_base &LHS,
-                        const iterator_adaptor_base &RHS) {
+  friend bool operator<(const iterator_adaptor_base& LHS,
+                        const iterator_adaptor_base& RHS) {
     static_assert(
         BaseT::IsRandomAccess,
-        "Relational operators are only defined for random access iterators.");
+        "Relational operators are only defined for random access iterators."
+    );
     return LHS.I < RHS.I;
   }

-  ReferenceT operator*() const { return *I; }
+  ReferenceT operator*() const {
+    return *I;
+  }
 };

 /// An iterator type that allows iterating over the pointees via some
@@ -821,65 +998,69 @@ public:
 /// The typical usage of this is to expose a type that iterates over Ts, but
 /// which is implemented with some iterator over T*s:
 ///
-/// \code
+/// @code
 ///   using iterator = pointee_iterator<SmallVectorImpl<T *>::iterator>;
-/// \endcode
-template <typename WrappedIteratorT,
-          typename T = typename std::remove_reference<decltype(
-              **std::declval<WrappedIteratorT>())>::type>
+/// @endcode
+template<typename WrappedIteratorT,
+         typename T = typename std::
+             remove_reference<decltype(**std::declval<WrappedIteratorT>())>::type>
 struct pointee_iterator
-    : iterator_adaptor_base<
-          pointee_iterator<WrappedIteratorT, T>, WrappedIteratorT,
-          typename std::iterator_traits<WrappedIteratorT>::iterator_category,
-          T> {
+  : iterator_adaptor_base<
+        pointee_iterator<WrappedIteratorT, T>, WrappedIteratorT,
+        typename std::iterator_traits<WrappedIteratorT>::iterator_category, T
+    > {
   pointee_iterator() = default;
-  template <typename U>
-  pointee_iterator(U &&u)
-      : pointee_iterator::iterator_adaptor_base(std::forward<U &&>(u)) {}
+  template<typename U>
+  pointee_iterator(U&& u) : // NOLINT(bugprone-forwarding-reference-overload)
+    pointee_iterator::iterator_adaptor_base(std::forward<U>(u)) {}

-  T &operator*() const { return **this->I; }
+  T& operator*() const {
+    return **this->I;
+  }
 };

-template <typename RangeT, typename WrappedIteratorT =
-                               decltype(std::begin(std::declval<RangeT>()))>
+template<typename RangeT,
+         typename WrappedIteratorT = decltype(std::begin(std::declval<RangeT>()))>
 iterator_range<pointee_iterator<WrappedIteratorT>>
-make_pointee_range(RangeT &&Range) {
+    make_pointee_range(RangeT&& Range) {
   using PointeeIteratorT = pointee_iterator<WrappedIteratorT>;
   return make_range(PointeeIteratorT(std::begin(std::forward<RangeT>(Range))),
                     PointeeIteratorT(std::end(std::forward<RangeT>(Range))));
 }

-template <typename WrappedIteratorT,
-          typename T = decltype(&*std::declval<WrappedIteratorT>())>
+template<typename WrappedIteratorT,
+         typename T = decltype(&*std::declval<WrappedIteratorT>())>
 class pointer_iterator
-    : public iterator_adaptor_base<
-          pointer_iterator<WrappedIteratorT, T>, WrappedIteratorT,
-          typename std::iterator_traits<WrappedIteratorT>::iterator_category,
-          T> {
+  : public iterator_adaptor_base<
+        pointer_iterator<WrappedIteratorT, T>, WrappedIteratorT,
+        typename std::iterator_traits<WrappedIteratorT>::iterator_category, T
+    > {
   mutable T Ptr;

-public:
+  public:
   pointer_iterator() = default;

-  explicit pointer_iterator(WrappedIteratorT u)
-      : pointer_iterator::iterator_adaptor_base(std::move(u)) {}
+  explicit pointer_iterator(WrappedIteratorT u) :
+    pointer_iterator::iterator_adaptor_base(std::move(u)) {}

-  T &operator*() const { return Ptr = &*this->I; }
+  T& operator*() const {
+    return Ptr = &*this->I;
+  }
 };

-template <typename RangeT, typename WrappedIteratorT =
-                               decltype(std::begin(std::declval<RangeT>()))>
+template<typename RangeT,
+         typename WrappedIteratorT = decltype(std::begin(std::declval<RangeT>()))>
 iterator_range<pointer_iterator<WrappedIteratorT>>
-make_pointer_range(RangeT &&Range) {
+    make_pointer_range(RangeT&& Range) {
   using PointerIteratorT = pointer_iterator<WrappedIteratorT>;
   return make_range(PointerIteratorT(std::begin(std::forward<RangeT>(Range))),
                     PointerIteratorT(std::end(std::forward<RangeT>(Range))));
 }

-template <typename WrappedIteratorT,
-          typename T1 = typename std::remove_reference<decltype(
-              **std::declval<WrappedIteratorT>())>::type,
-          typename T2 = typename std::add_pointer<T1>::type>
+template<typename WrappedIteratorT,
+         typename T1 = typename std::
+             remove_reference<decltype(**std::declval<WrappedIteratorT>())>::type,
+         typename T2 = typename std::add_pointer<T1>::type>
 using raw_pointer_iterator =
     pointer_iterator<pointee_iterator<WrappedIteratorT, T1>, T2>;

diff --git a/deps/LIEF/include/LIEF/json.hpp b/deps/LIEF/include/LIEF/json.hpp
index f9444ba3065..eb83178e1a8 100644
--- a/deps/LIEF/include/LIEF/json.hpp
+++ b/deps/LIEF/include/LIEF/json.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/deps/LIEF/include/LIEF/logging.hpp b/deps/LIEF/include/LIEF/logging.hpp
index 8b01fbf5501..9acfae59811 100644
--- a/deps/LIEF/include/LIEF/logging.hpp
+++ b/deps/LIEF/include/LIEF/logging.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -32,9 +32,10 @@ namespace logging {

 /// **Hierarchical** logging level
 ///
-/// From a given level set, all levels below this ! level are enabled
+/// From a given level set, all levels below this level are enabled
 ///
-/// For example, if LEVEL::INFO is enabled then LEVEL::WARN, LEVEL::ERR are also enabled
+/// For example, if LEVEL::INFO is enabled then LEVEL::WARN, LEVEL::ERR are also
+/// enabled
 enum class LEVEL : uint32_t {
   OFF = 0,

@@ -60,7 +61,7 @@ LIEF_API void enable();
 /// Change the logging level (**hierarchical**)
 LIEF_API void set_level(LEVEL level);

-/// Change the logger as a file-base logging and set its path
+/// Change the logger to a file-based logging and set its path
 LIEF_API void set_path(const std::string& path);

 /// Log a message with the LIEF's logger
@@ -69,10 +70,11 @@ LIEF_API void log(LEVEL level, const std::string& msg);
 LIEF_API void log(LEVEL level, const std::string& fmt,
                   const std::vector<std::string>& args);

-template <typename... Args>
-void log(LEVEL level, const std::string& fmt, const Args &... args) {
+template<typename... Args>
+void log(LEVEL level, const std::string& fmt, const Args&... args) {
   std::vector<std::string> vec_args;
-  vec_args.insert(vec_args.end(), { static_cast<decltype(vec_args)::value_type>(args)...});
+  vec_args.insert(vec_args.end(),
+                  {static_cast<decltype(vec_args)::value_type>(args)...});
   return log(level, fmt, vec_args);
 }

@@ -92,10 +94,11 @@ inline void debug(const std::string& fmt, const std::vector<std::string>& args)
   log(LEVEL::DEBUG, fmt, args);
 }

-template <typename... Args>
-void debug(const std::string& fmt, const Args &... args) {
+template<typename... Args>
+void debug(const std::string& fmt, const Args&... args) {
   std::vector<std::string> vec_args;
-  vec_args.insert(vec_args.end(), { static_cast<decltype(vec_args)::value_type>(args)...});
+  vec_args.insert(vec_args.end(),
+                  {static_cast<decltype(vec_args)::value_type>(args)...});
   return debug(fmt, vec_args);
 }

@@ -109,10 +112,11 @@ inline void info(const std::string& fmt, const std::vector<std::string>& args) {
   log(LEVEL::INFO, fmt, args);
 }

-template <typename... Args>
-void info(const std::string& fmt, const Args &... args) {
+template<typename... Args>
+void info(const std::string& fmt, const Args&... args) {
   std::vector<std::string> vec_args;
-  vec_args.insert(vec_args.end(), { static_cast<decltype(vec_args)::value_type>(args)...});
+  vec_args.insert(vec_args.end(),
+                  {static_cast<decltype(vec_args)::value_type>(args)...});
   return info(fmt, vec_args);
 }

@@ -126,10 +130,11 @@ inline void warn(const std::string& fmt, const std::vector<std::string>& args) {
   log(LEVEL::WARN, fmt, args);
 }

-template <typename... Args>
-void warn(const std::string& fmt, const Args &... args) {
+template<typename... Args>
+void warn(const std::string& fmt, const Args&... args) {
   std::vector<std::string> vec_args;
-  vec_args.insert(vec_args.end(), { static_cast<decltype(vec_args)::value_type>(args)...});
+  vec_args.insert(vec_args.end(),
+                  {static_cast<decltype(vec_args)::value_type>(args)...});
   return warn(fmt, vec_args);
 }

@@ -143,10 +148,11 @@ inline void err(const std::string& fmt, const std::vector<std::string>& args) {
   log(LEVEL::ERR, fmt, args);
 }

-template <typename... Args>
-void err(const std::string& fmt, const Args &... args) {
+template<typename... Args>
+void err(const std::string& fmt, const Args&... args) {
   std::vector<std::string> vec_args;
-  vec_args.insert(vec_args.end(), { static_cast<decltype(vec_args)::value_type>(args)...});
+  vec_args.insert(vec_args.end(),
+                  {static_cast<decltype(vec_args)::value_type>(args)...});
   return err(fmt, vec_args);
 }

@@ -156,14 +162,16 @@ inline void critical(const std::string& msg) {
   log(LEVEL::CRITICAL, msg);
 }

-inline void critical(const std::string& fmt, const std::vector<std::string>& args) {
+inline void critical(const std::string& fmt,
+                     const std::vector<std::string>& args) {
   log(LEVEL::CRITICAL, fmt, args);
 }

-template <typename... Args>
-void critical(const std::string& fmt, const Args &... args) {
+template<typename... Args>
+void critical(const std::string& fmt, const Args&... args) {
   std::vector<std::string> vec_args;
-  vec_args.insert(vec_args.end(), { static_cast<decltype(vec_args)::value_type>(args)...});
+  vec_args.insert(vec_args.end(),
+                  {static_cast<decltype(vec_args)::value_type>(args)...});
   return critical(fmt, vec_args);
 }

@@ -181,10 +189,10 @@ LIEF_API void enable(const char* name);
 /// Set the log level for the logger with the given name
 LIEF_API void set_level(const char* name, LEVEL level);

-/// Change the logger with the given as a file-base logging and set its path
+/// Change the logger with the given name to a file-based logging and set its path
 LIEF_API void set_path(const char* name, const std::string& path);

-/// Log a message with the logger whose name in provided in the first parameter
+/// Log a message with the logger whose name is provided in the first parameter
 LIEF_API void log(const char* name, LEVEL level, const std::string& msg);

 /// Set a spdlog sink for the logger with the given name
@@ -231,22 +239,36 @@ class Scoped {
   Scoped& operator=(Scoped&&) = delete;

   explicit Scoped(LEVEL level) :
-    level_(get_level())
-  {
+    level_(get_level()) {
+    set_level(level);
+  }
+
+  explicit Scoped(LEVEL level, std::string name) :
+    level_(get_level()),
+    name_(std::move(name)) {
     set_level(level);
   }

   const Scoped& set_level(LEVEL lvl) const {
-    logging::set_level(lvl);
+    if (name_.empty()) {
+      logging::set_level(lvl);
+    } else {
+      logging::named::set_level(name_.c_str(), lvl);
+    }
     return *this;
   }

-  ~Scoped() {
+  void reset() {
     set_level(level_);
   }

+  ~Scoped() {
+    reset();
+  }
+
   private:
   LEVEL level_ = LEVEL::INFO;
+  std::string name_;
 };


diff --git a/deps/LIEF/include/LIEF/optional.hpp b/deps/LIEF/include/LIEF/optional.hpp
index a0ad603d809..1e98c898fca 100644
--- a/deps/LIEF/include/LIEF/optional.hpp
+++ b/deps/LIEF/include/LIEF/optional.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2021 - 2025 R. Thomas
- * Copyright 2021 - 2025 Quarkslab
+/* Copyright 2021 - 2026 R. Thomas
+ * Copyright 2021 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -25,8 +25,7 @@ class optional : public result<T> {
   using result<T>::result;

   optional() :
-    result<T>(tl::make_unexpected(lief_errors::not_found))
-  {}
+    result<T>(tl::make_unexpected(lief_errors::not_found)) {}

   void reset() noexcept {
     new (this) optional();
diff --git a/deps/LIEF/include/LIEF/platforms.hpp b/deps/LIEF/include/LIEF/platforms.hpp
index addec078fb4..67a470be4d5 100644
--- a/deps/LIEF/include/LIEF/platforms.hpp
+++ b/deps/LIEF/include/LIEF/platforms.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -21,6 +21,16 @@
   #include "TargetConditionals.h"
 #endif

+#if defined(__linux__)
+  #include <features.h>
+
+  #ifndef __GLIBC__
+    #define LIEF_PLATFORM_MUSL 1
+  #else
+    #define LIEF_PLATFORM_GLIBC 1
+  #endif
+#endif
+
 namespace LIEF {

 enum PLATFORMS {
@@ -41,14 +51,13 @@ constexpr PLATFORMS current_platform() {
   return PLATFORMS::PLAT_WINDOWS;
 #elif defined(__APPLE__)
   #if defined(TARGET_OS_IPHONE) && TARGET_OS_IPHONE
-    return PLATFORMS::PLAT_IOS;
+  return PLATFORMS::PLAT_IOS;
   #else
-    return PLATFORMS::PLAT_OSX;
+  return PLATFORMS::PLAT_OSX;
   #endif
 #else
   return PLATFORMS::PLAT_UNKNOWN;
 #endif
-
 }


diff --git a/deps/LIEF/include/LIEF/platforms/android.hpp b/deps/LIEF/include/LIEF/platforms/android.hpp
index eeb3ac44576..92ec371834f 100644
--- a/deps/LIEF/include/LIEF/platforms/android.hpp
+++ b/deps/LIEF/include/LIEF/platforms/android.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/deps/LIEF/include/LIEF/platforms/android/version.hpp b/deps/LIEF/include/LIEF/platforms/android/version.hpp
index 1f477c4c1b8..39e55f6acff 100644
--- a/deps/LIEF/include/LIEF/platforms/android/version.hpp
+++ b/deps/LIEF/include/LIEF/platforms/android/version.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -22,16 +22,16 @@ namespace Android {

 enum class ANDROID_VERSIONS {
   VERSION_UNKNOWN = 0,
-  VERSION_601     = 1,
+  VERSION_601 = 1,

-  VERSION_700     = 2,
-  VERSION_710     = 3,
-  VERSION_712     = 4,
+  VERSION_700 = 2,
+  VERSION_710 = 3,
+  VERSION_712 = 4,

-  VERSION_800     = 5,
-  VERSION_810     = 6,
+  VERSION_800 = 5,
+  VERSION_810 = 6,

-  VERSION_900     = 7,
+  VERSION_900 = 7,
 };

 LIEF_API const char* code_name(ANDROID_VERSIONS version);
diff --git a/deps/LIEF/include/LIEF/range.hpp b/deps/LIEF/include/LIEF/range.hpp
index 16f778875bd..958c79377f8 100644
--- a/deps/LIEF/include/LIEF/range.hpp
+++ b/deps/LIEF/include/LIEF/range.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2024 - 2025 R. Thomas
+/* Copyright 2024 - 2026 R. Thomas
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -28,7 +28,7 @@ struct range_t {
     if (strict) {
       return low <= value && value < high;
     }
-      return low <= value && value <= high;
+    return low <= value && value <= high;
   }

   uint64_t size() const {
@@ -43,8 +43,7 @@ struct range_t {
     return !(lhs == rhs);
   }

-  friend LIEF_API
-    std::ostream& operator<<(std::ostream& os, const range_t& range);
+  friend LIEF_API std::ostream& operator<<(std::ostream& os, const range_t& range);
 };

 }
diff --git a/deps/LIEF/include/LIEF/runtime.hpp b/deps/LIEF/include/LIEF/runtime.hpp
new file mode 100644
index 00000000000..3d3e09b69c6
--- /dev/null
+++ b/deps/LIEF/include/LIEF/runtime.hpp
@@ -0,0 +1,32 @@
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
+ *
+ * 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.
+ */
+#ifndef LIEF_RUNTIME_H
+#define LIEF_RUNTIME_H
+
+#include <LIEF/runtime/Module.hpp>
+#include <LIEF/runtime/Process.hpp>
+#include <LIEF/runtime/Memory.hpp>
+#include <LIEF/runtime/Host.hpp>
+#include <LIEF/runtime/utils.hpp>
+#include <LIEF/runtime/disassembler.hpp>
+#include <LIEF/runtime/assembler.hpp>
+
+#include <LIEF/runtime/linux.hpp>
+#include <LIEF/runtime/windows.hpp>
+#include <LIEF/runtime/android.hpp>
+#include <LIEF/runtime/osx.hpp>
+
+#endif
diff --git a/deps/LIEF/include/LIEF/runtime/Host.hpp b/deps/LIEF/include/LIEF/runtime/Host.hpp
new file mode 100644
index 00000000000..856f2c9468e
--- /dev/null
+++ b/deps/LIEF/include/LIEF/runtime/Host.hpp
@@ -0,0 +1,49 @@
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
+ *
+ * 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.
+ */
+#ifndef LIEF_RUNTIME_HOST_H
+#define LIEF_RUNTIME_HOST_H
+
+#include "LIEF/visibility.h"
+#include <string>
+
+namespace LIEF {
+namespace runtime {
+
+/// This class represents the current host.
+class LIEF_API Host {
+  public:
+  /// The machine hostname
+  static std::string name();
+
+  /// The user home dir (e.g. `/home/romain` or `C:\Users\romain`)
+  static std::string home_dir();
+
+  /// Temporary directory.
+  ///
+  /// This function looks at the environment variables to determine the suitable
+  /// temp directory (e.g. `TEMP`, `TMPDIR`)
+  static std::string tmp_dir();
+
+  /// The directory to store user-specific configuration
+  static std::string config_dir();
+
+  /// The directory where software should store their cache files
+  /// (e.g. `$HOME/.cache`)
+  static std::string cache_dir();
+};
+}
+}
+#endif
diff --git a/deps/LIEF/include/LIEF/runtime/Memory.hpp b/deps/LIEF/include/LIEF/runtime/Memory.hpp
new file mode 100644
index 00000000000..5cf620403f6
--- /dev/null
+++ b/deps/LIEF/include/LIEF/runtime/Memory.hpp
@@ -0,0 +1,267 @@
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
+ *
+ * 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.
+ */
+#ifndef LIEF_RUNTIME_MEMORY_H
+#define LIEF_RUNTIME_MEMORY_H
+#include <ostream>
+#include <cstdint>
+#include <cstring>
+#include <vector>
+#include <utility>
+
+#include "LIEF/visibility.h"
+#include "LIEF/optional.hpp"
+#include "LIEF/logging.hpp"
+#include "LIEF/compiler_attributes.hpp"
+
+#include "LIEF/runtime/utils.hpp"
+
+namespace LIEF {
+namespace runtime {
+
+/// This class exposes API to access and manage memory
+class LIEF_API Memory {
+  public:
+  /// Flags used when creating a memory map (mmap).
+  enum MMAP_FLAGS : uint32_t {
+    MP_NONE = 0,
+
+    /// Changes are private to this process (copy-on-write).
+    MP_PRIVATE = 1 << 0,
+
+    /// The mapping is not backed by any file.
+    MP_ANONYMOUS = 1 << 1,
+
+    /// Changes are shared.
+    MP_SHARED = 1 << 2,
+
+    /// Interpret the address as a fixed requirement.
+    MP_FIXED = 1 << 3,
+
+    /// Map for Just-In-Time code generation.
+    MP_JIT = 1 << 4,
+  };
+
+  enum PERM : uint32_t {
+    P_NONE = 0,
+    P_READ = 1 << 0,
+    P_WRITE = 1 << 1,
+    P_EXEC = 1 << 2,
+  };
+
+  /// Represents a contiguous chunk of memory allocated or inspected by
+  /// the runtime.
+  class LIEF_API Chunk {
+    public:
+    friend class Memory;
+
+    Chunk(void* addr, size_t size, uint32_t permissions) :
+      addr_(addr),
+      size_(size),
+      permissions_(permissions) {}
+
+    Chunk(void* addr, size_t size) :
+      Chunk(addr, size, /*permissions=*/P_NONE) {}
+
+    Chunk(void* addr) :
+      Chunk(addr, /*size=*/0, /*permissions=*/P_NONE) {}
+
+    /// Returns the start address of the memory chunk as an opaque pointer
+    void* addr_ptr() {
+      return addr_;
+    }
+
+    const void* addr_ptr() const {
+      return addr_;
+    }
+
+    /// Returns the start address of the memory chunk.
+    uintptr_t addr() const {
+      return reinterpret_cast<uintptr_t>(addr_);
+    }
+
+    /// Returns the size of the memory chunk in bytes.
+    size_t size() const {
+      return size_;
+    }
+
+    /// Returns the current permissions of the memory chunk.
+    uint32_t permissions() const {
+      return permissions_;
+    }
+
+    /// Returns the address of the start of the page containing this chunk.
+    uintptr_t page_start() const;
+
+
+    /// Returns the address of the end of the page containing this chunk.
+    uintptr_t page_end() const;
+
+    /// Changes the permissions of the memory chunk.
+    Chunk& change_permissions(uint32_t p) LIEF_LIFETIMEBOUND {
+      if (!Memory::mprotect(*this, p)) {
+        logging::err("mprotect failed for chunk: {}", to_string());
+      }
+      permissions_ = p;
+      return *this;
+    }
+
+    /// Sets the permissions to Execute only.
+    Chunk& make_x() LIEF_LIFETIMEBOUND {
+      return change_permissions(P_EXEC);
+    }
+
+    /// Sets the permissions to Read and Write.
+    Chunk& make_rw() LIEF_LIFETIMEBOUND {
+      return change_permissions(P_READ | P_WRITE);
+    }
+
+    /// Sets the permissions to Read and Execute.
+    Chunk& make_rx() LIEF_LIFETIMEBOUND {
+      return change_permissions(P_READ | P_EXEC);
+    }
+
+    /// Sets the permissions to Read, Write, and Execute.
+    Chunk& make_rwx() LIEF_LIFETIMEBOUND {
+      return change_permissions(P_READ | P_WRITE | P_EXEC);
+    }
+
+    /// Sets the permissions to Read Only.
+    Chunk& make_ro() LIEF_LIFETIMEBOUND {
+      return change_permissions(P_READ);
+    }
+
+    /// Flushes the instruction cache for this memory chunk.
+    /// This should be used when modifying code in memory (e.g., hooking, JIT).
+    Chunk& cache_flush() LIEF_LIFETIMEBOUND;
+
+    /// Check if this chunk is valid
+    bool is_valid() const {
+      return addr_ != nullptr;
+    }
+
+    operator bool() const {
+      return is_valid();
+    }
+
+    ok_error_t deallocate() {
+      return Memory::munmap(*this);
+    }
+
+    std::string to_string() const;
+
+    friend LIEF_API std::ostream& operator<<(std::ostream& os, const Chunk& C) {
+      os << C.to_string();
+      return os;
+    }
+
+    protected:
+    void* addr_ = 0;
+    size_t size_ = 0;
+    uint32_t permissions_ = P_NONE;
+  };
+
+  /// RAII interface to change the permission within a determined scope
+  class LIEF_API ScopedPermissions {
+    public:
+    explicit ScopedPermissions(Chunk& chunk, uint32_t perms) :
+      chunk_(&chunk),
+      perms_(chunk.permissions()) {
+      chunk_->change_permissions(perms);
+    }
+
+    ~ScopedPermissions() {
+      chunk_->change_permissions(perms_);
+    }
+
+    private:
+    Chunk* chunk_ = nullptr;
+    uint32_t perms_ = P_NONE;
+  };
+
+  /// Allocate a memory chunk through mmap-like function
+  static optional<Chunk> mmap(size_t size, uint32_t flags,
+                              uint32_t permissions = P_NONE);
+
+  /// Deallocate a mmaped memory chunk
+  static ok_error_t munmap(Chunk& C);
+
+  /// Sets the permission of the given memory chunk
+  static ok_error_t mprotect(Chunk& C, uint32_t flags);
+
+  /// Write the buffer at the address given in the third parameter.
+  ///
+  /// This function assumes that the memory pointed by `addr` has the correct
+  /// permission to write this buffer.
+  static ok_error_t write(const uint8_t* buffer, size_t size, uintptr_t addr) {
+    std::memcpy(reinterpret_cast<void*>(addr), buffer, size);
+    return ok();
+  }
+
+  /// Write the buffer at the address given in the third parameter.
+  ///
+  /// This function assumes that the memory pointed by `addr` has the correct
+  /// permission to write this buffer.
+  static ok_error_t write(const std::vector<uint8_t>& buffer, uintptr_t addr) {
+    return write(buffer.data(), buffer.size(), addr);
+  }
+
+  /// Generic function to write a typed value
+  template<class T,
+           typename = typename std::enable_if<std::is_standard_layout<T>::value &&
+                                              std::is_trivial<T>::value>::type>
+  static ok_error_t write(const T& value, uintptr_t addr) {
+    return write(reinterpret_cast<const uint8_t*>(&value), sizeof(T), addr);
+  }
+
+  /// Generic function to read a typed value
+  template<class T>
+  static T read(uintptr_t addr) {
+    T out{};
+    std::memcpy(&out, reinterpret_cast<const void*>(addr), sizeof(T));
+    return out;
+  }
+
+  /// Read the content at the address pointed by the first parameter and write
+  /// the result in the `std::vector` provided in the second parameter
+  static void read(uintptr_t addr, std::vector<uint8_t>& out, size_t size) {
+    if (out.size() < size) {
+      std::vector<uint8_t> buffer(size);
+      read(addr, buffer.data(), buffer.size());
+      out = std::move(buffer);
+      return;
+    }
+    read(addr, out.data(), size);
+  }
+
+  /// Read the content at the address pointed by the first parameter and write
+  /// the result in the buffer provided in the second parameter.
+  ///
+  /// This function assumes that the buffer in the second parameter is large
+  /// enough to contain the data being read.
+  static void read(uintptr_t addr, uint8_t* out, size_t size) {
+    std::memcpy(out, reinterpret_cast<const void*>(addr), size);
+  }
+
+  static std::string perm_str(uint32_t flags);
+
+  static constexpr bool support_rwx() {
+    return platform() != PLATFORMS::IOS;
+  }
+};
+
+}
+}
+#endif
diff --git a/deps/LIEF/include/LIEF/runtime/Module.hpp b/deps/LIEF/include/LIEF/runtime/Module.hpp
new file mode 100644
index 00000000000..e221eb20f9b
--- /dev/null
+++ b/deps/LIEF/include/LIEF/runtime/Module.hpp
@@ -0,0 +1,223 @@
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
+ *
+ * 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.
+ */
+#ifndef LIEF_RUNTIME_MODULE_H
+#define LIEF_RUNTIME_MODULE_H
+#include <ostream>
+#include <fstream>
+#include <cstdint>
+#include <cstring>
+
+#include "LIEF/visibility.h"
+#include "LIEF/iterators.hpp"
+#include "LIEF/compiler_attributes.hpp"
+
+#include <memory>
+#include <string>
+#include <vector>
+
+namespace LIEF {
+class Binary;
+namespace runtime {
+
+namespace details {
+class ModuleIt;
+class Module;
+}
+
+/// This class represents an in-memory module which can be an executable
+/// or a library
+class LIEF_API Module {
+  public:
+  class Iterator final
+    : public iterator_facade_base<Iterator, std::forward_iterator_tag, Module,
+                                  std::ptrdiff_t, const Module*, const Module&> {
+    public:
+    using implementation = details::ModuleIt;
+    using iterator_facade_base::operator++;
+
+    LIEF_API Iterator();
+
+    LIEF_API Iterator(const Iterator&);
+    LIEF_API Iterator& operator=(const Iterator&);
+
+    LIEF_API Iterator(Iterator&&) noexcept;
+    LIEF_API Iterator& operator=(Iterator&&) noexcept;
+
+    LIEF_API Iterator(std::unique_ptr<details::ModuleIt> impl);
+    LIEF_API ~Iterator();
+
+    friend LIEF_API bool operator==(const Iterator& LHS, const Iterator& RHS);
+    friend LIEF_API bool operator!=(const Iterator& LHS, const Iterator& RHS) {
+      return !(LHS == RHS);
+    }
+
+    // NOLINTNEXTLINE(bugprone-derived-method-shadowing-base-method)
+    LIEF_API Iterator& operator++();
+
+    LIEF_API const Module& operator*() const LIEF_LIFETIMEBOUND;
+
+    // NOLINTNEXTLINE(bugprone-derived-method-shadowing-base-method)
+    LIEF_API const Module* operator->() const LIEF_LIFETIMEBOUND;
+
+    /// Transfer ownership of the module at the current position to the
+    /// caller. Returns `nullptr` if the iterator is past-the-end.
+    LIEF_API std::unique_ptr<Module> yield();
+
+    private:
+    void load() const;
+
+    std::unique_ptr<details::ModuleIt> impl_;
+    mutable std::unique_ptr<Module> cached_;
+  };
+  Module() = delete;
+  Module(std::unique_ptr<details::Module> impl);
+
+  Module(const Module&) = delete;
+  Module& operator=(const Module&) = delete;
+
+  Module(Module&&) noexcept;
+  Module& operator=(Module&&) noexcept;
+
+  virtual std::unique_ptr<Module> clone() const;
+
+  /// Base address where the module is loaded in memory
+  uint64_t imagebase() const;
+
+  /// Virtual size of the current module
+  uint64_t size() const;
+
+  /// End address of the module
+  uint64_t end() const {
+    return imagebase() + size();
+  }
+
+  /// Name of the module (e.g. `libc.so.6, kernel32.dll, libsystem_c.dylib`)
+  std::string name() const;
+
+  /// Path of the module
+  std::string path() const;
+
+  /// Check if the current module contains the given address
+  bool contains(uintptr_t addr) const {
+    const uint64_t base = imagebase();
+    return base <= addr && addr < (base + size());
+  }
+
+  /// Return the content of the module as it is currently mapped in memory.
+  ///
+  /// The returned buffer spans imagebase() over size() bytes. An empty buffer
+  /// is returned if the imagebase or the size is null.
+  std::vector<uint8_t> dump() const {
+    const uint64_t base = imagebase();
+    const uint64_t nbytes = size();
+    if (base == 0 || nbytes == 0) {
+      return {};
+    }
+    std::vector<uint8_t> out(nbytes);
+    std::memcpy(out.data(), reinterpret_cast<const void*>(base), nbytes);
+    return out;
+  }
+
+  /// Same as dump() but also writes the content into the file located at
+  /// `filepath`.
+  std::vector<uint8_t> dump(const std::string& filepath) const {
+    std::vector<uint8_t> out = dump();
+    std::ofstream ofs(filepath, std::ios::out | std::ios::binary);
+    if (ofs) {
+      ofs.write(reinterpret_cast<const char*>(out.data()),
+                static_cast<std::streamsize>(out.size()));
+    }
+    return out;
+  }
+
+  /// Same as dump() but also writes the content into the given output stream.
+  std::vector<uint8_t> dump(std::ostream& os) const {
+    std::vector<uint8_t> out = dump();
+    os.write(reinterpret_cast<const char*>(out.data()),
+             static_cast<std::streamsize>(out.size()));
+    return out;
+  }
+
+  std::string to_string() const;
+
+  /// This function can be used to **downcast** a Module instance
+  template<class T>
+  const T* as() const LIEF_LIFETIMEBOUND {
+    static_assert(std::is_base_of<Module, T>::value, "Require Module inheritance");
+    if (T::classof(this)) {
+      return static_cast<const T*>(this);
+    }
+    return nullptr;
+  }
+
+  template<class T>
+  T* as() LIEF_LIFETIMEBOUND {
+    return const_cast<T*>(static_cast<const Module*>(this)->as<T>());
+  }
+
+  LIEF_API friend std::ostream& operator<<(std::ostream& os, const Module& M) {
+    os << M.to_string();
+    return os;
+  }
+
+  virtual ~Module();
+
+  protected:
+  std::unique_ptr<details::Module> impl_;
+};
+
+using modules_t = iterator_range<Module::Iterator>;
+
+/// Return an iterator over the different modules loaded in the current
+/// process
+LIEF_API modules_t modules();
+
+/// Find the module with the given name
+inline std::unique_ptr<Module> module_from_name(const std::string& name) {
+  auto range = modules();
+  for (auto it = range.begin(); it != range.end(); ++it) {
+    if (it->name() == name) {
+      return it.yield();
+    }
+  }
+  return nullptr;
+}
+
+/// Find the module with the given path
+inline std::unique_ptr<Module> module_from_path(const std::string& path) {
+  auto range = modules();
+  for (auto it = range.begin(); it != range.end(); ++it) {
+    if (it->path() == path) {
+      return it.yield();
+    }
+  }
+  return nullptr;
+}
+
+/// Find the module that encompasses the given virtual address (absolute)
+inline std::unique_ptr<Module> module_from_addr(uintptr_t addr) {
+  auto range = modules();
+  for (auto it = range.begin(); it != range.end(); ++it) {
+    if (it->contains(addr)) {
+      return it.yield();
+    }
+  }
+  return nullptr;
+}
+
+}
+}
+#endif
diff --git a/deps/LIEF/include/LIEF/runtime/Process.hpp b/deps/LIEF/include/LIEF/runtime/Process.hpp
new file mode 100644
index 00000000000..54c77c77699
--- /dev/null
+++ b/deps/LIEF/include/LIEF/runtime/Process.hpp
@@ -0,0 +1,82 @@
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
+ *
+ * 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.
+ */
+#ifndef LIEF_RUNTIME_PROCESS_H
+#define LIEF_RUNTIME_PROCESS_H
+#include <cstdint>
+#include <string>
+#include <unordered_map>
+
+#include "LIEF/visibility.h"
+#include "LIEF/runtime/utils.hpp"
+#include "LIEF/optional.hpp"
+
+namespace LIEF {
+namespace assembly {
+class Engine;
+}
+}
+
+namespace LIEF {
+namespace runtime {
+
+/// This structure represents the current process and provides
+/// functions to query process-level information.
+class LIEF_API Process {
+  public:
+  /// This structure wraps environment variables
+  struct EnvVars {
+    std::unordered_map<std::string, std::string> vars;
+
+    bool empty() const {
+      return vars.empty();
+    }
+  };
+
+  /// Get the Process ID of the current process.
+  static int32_t pid();
+
+  /// Get the Thread ID of the current thread.
+  static uint32_t tid();
+
+  /// Return the target architecture of the current process.
+  static constexpr ARCH arch() {
+    return runtime::arch();
+  }
+
+  /// Return the target platform of the current process.
+  static constexpr PLATFORMS platform() {
+    return runtime::platform();
+  }
+
+  /// Return the number of bytes in a memory page.
+  ///
+  /// For instance:
+  /// * `0x1000` (4096 bytes) for x86_64
+  /// * `0x4000` (16384 bytes) for ARM64
+  static uint32_t page_size();
+
+  /// Return the environment variable associated with the given key.
+  static optional<std::string> get_env(const std::string& key);
+
+  /// Return the environment variables present in the current process
+  static EnvVars get_envs();
+
+  /// Return the assembler/disassembler for the current process.
+  static assembly::Engine* default_engine();
+};
+}
+}
+#endif
diff --git a/deps/LIEF/include/LIEF/runtime/android.hpp b/deps/LIEF/include/LIEF/runtime/android.hpp
new file mode 100644
index 00000000000..e41aa8146ce
--- /dev/null
+++ b/deps/LIEF/include/LIEF/runtime/android.hpp
@@ -0,0 +1,24 @@
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
+ *
+ * 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.
+ */
+#ifndef LIEF_RUNTIME_ANDROID_H
+#define LIEF_RUNTIME_ANDROID_H
+
+#include <LIEF/runtime/android/Module.hpp>
+#include <LIEF/runtime/android/Host.hpp>
+#include <LIEF/runtime/android/Process.hpp>
+#include <LIEF/runtime/android/Property.hpp>
+
+#endif
diff --git a/deps/LIEF/include/LIEF/runtime/android/Host.hpp b/deps/LIEF/include/LIEF/runtime/android/Host.hpp
new file mode 100644
index 00000000000..faa361e15d0
--- /dev/null
+++ b/deps/LIEF/include/LIEF/runtime/android/Host.hpp
@@ -0,0 +1,39 @@
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
+ *
+ * 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.
+ */
+#ifndef LIEF_RUNTIME_ANDROID_HOST_H
+#define LIEF_RUNTIME_ANDROID_HOST_H
+#include <LIEF/visibility.h>
+#include <LIEF/optional.hpp>
+
+#include <cstdint>
+
+namespace LIEF {
+namespace runtime {
+namespace android {
+
+/// This class exposes Android-specific host information.
+class LIEF_API Host {
+  public:
+  /// Return the Android SDK/API level of the device (e.g. `34` for Android
+  /// 14).
+  static optional<uint32_t> sdk_version();
+};
+
+
+}
+}
+}
+#endif
diff --git a/deps/LIEF/include/LIEF/runtime/android/Module.hpp b/deps/LIEF/include/LIEF/runtime/android/Module.hpp
new file mode 100644
index 00000000000..b94347d9fb1
--- /dev/null
+++ b/deps/LIEF/include/LIEF/runtime/android/Module.hpp
@@ -0,0 +1,76 @@
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
+ *
+ * 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.
+ */
+#ifndef LIEF_RUNTIME_ANDROID_MODULE_H
+#define LIEF_RUNTIME_ANDROID_MODULE_H
+
+#include "LIEF/runtime/Module.hpp"
+#include "LIEF/runtime/utils.hpp"
+
+namespace LIEF {
+
+namespace ELF {
+class Binary;
+struct ParserConfig;
+}
+
+namespace runtime {
+namespace android {
+
+/// This class exposes Android-specific API for a module
+class LIEF_API Module : public runtime::Module {
+  public:
+  using runtime::Module::Module;
+
+  /// Instantiate a Module from the given `dlopen` handle.
+  static std::unique_ptr<Module> from_handle(void* H);
+
+  /// Return the dlopen handle for this library.
+  ///
+  /// Return a nullptr if the function fails or if the handler can't be found
+  void* handle() const;
+
+  /// Resolve the symbol from with the given name for the current module
+  void* dlsym(const std::string& name) const;
+
+  /// Parse the ELF module from its path on the filesystem
+  std::unique_ptr<ELF::Binary> parse_from_path() const;
+
+  /// Parse the ELF module from its path on the filesystem and given the parser
+  /// configuration
+  std::unique_ptr<ELF::Binary>
+      parse_from_path(const ELF::ParserConfig& config) const;
+
+  /// Parse the ELF module from memory with the given configuration
+  std::unique_ptr<ELF::Binary>
+      parse_from_memory(const ELF::ParserConfig& config) const;
+
+  /// Parse the ELF module from memory
+  std::unique_ptr<ELF::Binary> parse_from_memory() const;
+
+  ~Module() override = default;
+
+  static constexpr bool classof(const runtime::Module*) {
+    return platform() == PLATFORMS::ANDROID_;
+  }
+};
+
+/// Load the library with the given path/name
+LIEF_API std::unique_ptr<Module> dlopen(const std::string& name);
+
+}
+}
+}
+#endif
diff --git a/deps/LIEF/include/LIEF/runtime/android/Process.hpp b/deps/LIEF/include/LIEF/runtime/android/Process.hpp
new file mode 100644
index 00000000000..de7f4a4e22c
--- /dev/null
+++ b/deps/LIEF/include/LIEF/runtime/android/Process.hpp
@@ -0,0 +1,54 @@
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
+ *
+ * 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.
+ */
+#ifndef LIEF_RUNTIME_ANDROID_PROCESS_H
+#define LIEF_RUNTIME_ANDROID_PROCESS_H
+#include <LIEF/visibility.h>
+#include <LIEF/runtime/Process.hpp>
+#include <LIEF/runtime/android/Property.hpp>
+
+#include <string>
+#include <vector>
+
+namespace LIEF {
+namespace runtime {
+namespace android {
+
+/// This class exposes Android-specific API for the current process
+class LIEF_API Process : public runtime::Process {
+  public:
+  using runtime::Process::Process;
+
+  using properties_t = std::vector<Property>;
+
+  /// Return the content of `/proc/cmdline`
+  static std::string cmdline();
+
+  /// Return the value of the Android system property with the given `name`
+  /// (e.g. `ro.build.version.sdk`).
+  static optional<Property> get_system_property(const std::string& name);
+
+  /// Get all the system properties
+  static properties_t properties();
+
+  static constexpr bool classof(const runtime::Process*) {
+    return platform() == PLATFORMS::ANDROID_;
+  }
+};
+
+}
+}
+}
+#endif
diff --git a/deps/LIEF/include/LIEF/runtime/android/Property.hpp b/deps/LIEF/include/LIEF/runtime/android/Property.hpp
new file mode 100644
index 00000000000..d7bd90b1dd7
--- /dev/null
+++ b/deps/LIEF/include/LIEF/runtime/android/Property.hpp
@@ -0,0 +1,86 @@
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
+ *
+ * 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.
+ */
+#ifndef LIEF_RUNTIME_ANDROID_PROPERTY_H
+#define LIEF_RUNTIME_ANDROID_PROPERTY_H
+#include <ostream>
+#include <cstdint>
+#include <string>
+
+#include <LIEF/compiler_attributes.hpp>
+#include <LIEF/visibility.h>
+
+// Forward definition from include/sys/system_properties.h
+typedef struct prop_info prop_info; // NOLINT
+
+namespace LIEF {
+namespace runtime {
+namespace android {
+
+/// This class represents an Android property such as `ro.boot.hardware`
+class LIEF_API Property {
+  public:
+  Property() = default;
+  Property(std::string name, std::string value, uint32_t serial) :
+    name_(std::move(name)),
+    value_(std::move(value)),
+    serial_(serial) {}
+
+  static Property create_from(const prop_info& pi);
+
+  Property(const Property&) = default;
+  Property& operator=(const Property&) = default;
+
+  Property(Property&&) noexcept = default;
+  Property& operator=(Property&&) noexcept = default;
+
+  ~Property() = default;
+
+  /// Name of the property (e.g. `ro.boot.hardware`).
+  const std::string& name() const LIEF_LIFETIMEBOUND {
+    return name_;
+  }
+
+  /// Value associated with the property.
+  const std::string& value() const LIEF_LIFETIMEBOUND {
+    return value_;
+  }
+
+  /// Serial number of the property.
+  ///
+  /// It is incremented each time the property is updated and can therefore be
+  /// used to detect changes.
+  uint32_t serial() const {
+    return serial_;
+  }
+
+  /// Pretty representation of the property
+  std::string to_string() const;
+
+  LIEF_API friend std::ostream& operator<<(std::ostream& os,
+                                           const Property& prop) {
+    os << prop.to_string();
+    return os;
+  }
+
+  private:
+  std::string name_;
+  std::string value_;
+  uint32_t serial_ = 0;
+};
+}
+}
+}
+#endif
diff --git a/deps/LIEF/include/LIEF/runtime/assembler.hpp b/deps/LIEF/include/LIEF/runtime/assembler.hpp
new file mode 100644
index 00000000000..b346b3ee665
--- /dev/null
+++ b/deps/LIEF/include/LIEF/runtime/assembler.hpp
@@ -0,0 +1,62 @@
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
+ *
+ * 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.
+ */
+#ifndef LIEF_RUNTIME_ASSEMBLER_H
+#define LIEF_RUNTIME_ASSEMBLER_H
+#include <LIEF/visibility.h>
+#include <vector>
+
+#include "LIEF/asm/AssemblerConfig.hpp"
+
+namespace llvm {
+class MCInst;
+}
+
+namespace LIEF {
+namespace runtime {
+
+/// Assemble the provided assembly code at the specified (absolute) virtual
+/// address.
+///
+/// The function returns the generated assembly bytes.
+///
+/// ```cpp
+/// #include <LIEF/runtime.hpp>
+///
+/// auto code = LIEF::runtime::assemble(0x7f0011223344, R"(
+///   xor rax, rbx;
+///   mov rcx, rax;
+/// )");
+/// ```
+///
+/// If you need to configure the assembly engine or to define addresses for
+/// symbols, you can provide your own assembly::AssemblerConfig instance.
+LIEF_API std::vector<uint8_t> assemble(
+    uint64_t addr, const std::string& Asm,
+    assembly::AssemblerConfig& config = assembly::AssemblerConfig::default_config()
+);
+
+/// Assemble the provided LLVM MCInst instruction at the specified (absolute)
+/// virtual address and return the generated assembly bytes.
+LIEF_API std::vector<uint8_t> assemble(uint64_t address, const llvm::MCInst& inst);
+
+/// Assemble the provided sequence of LLVM MCInst instructions at the specified
+/// (absolute) virtual address and return the generated assembly bytes.
+LIEF_API std::vector<uint8_t> assemble(uint64_t address,
+                                       const std::vector<llvm::MCInst>& insts);
+
+}
+}
+#endif
diff --git a/deps/LIEF/include/LIEF/runtime/config.h.in b/deps/LIEF/include/LIEF/runtime/config.h.in
new file mode 100644
index 00000000000..fa5769a5316
--- /dev/null
+++ b/deps/LIEF/include/LIEF/runtime/config.h.in
@@ -0,0 +1,50 @@
+/* Copyright 2017 - 2026 R. Thomas
+ *
+ * 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.
+ */
+#ifndef LIEF_RUNTIME_CONFIG_H
+#define LIEF_RUNTIME_CONFIG_H
+
+// clang-format off
+
+#cmakedefine LIEF_RUNTIME_PLATFORM_LINUX @LIEF_RUNTIME_PLATFORM_LINUX@
+#cmakedefine LIEF_RUNTIME_PLATFORM_WINDOWS @LIEF_RUNTIME_PLATFORM_WINDOWS@
+#cmakedefine LIEF_RUNTIME_PLATFORM_ANDROID @LIEF_RUNTIME_PLATFORM_ANDROID@
+#cmakedefine LIEF_RUNTIME_PLATFORM_OSX @LIEF_RUNTIME_PLATFORM_OSX@
+#cmakedefine LIEF_RUNTIME_PLATFORM_IOS @LIEF_RUNTIME_PLATFORM_IOS@
+
+#cmakedefine LIEF_RUNTIME_ARCH_ARM64 @LIEF_RUNTIME_ARCH_ARM64@
+#cmakedefine LIEF_RUNTIME_ARCH_X86_64 @LIEF_RUNTIME_ARCH_X86_64@
+#cmakedefine LIEF_RUNTIME_ARCH_RISCV64 @LIEF_RUNTIME_ARCH_RISCV64@
+
+
+#ifdef __cplusplus
+namespace LIEF {
+namespace runtime {
+static constexpr bool platform_linux = @LIEF_RUNTIME_PLATFORM_LINUX@;
+static constexpr bool platform_windows = @LIEF_RUNTIME_PLATFORM_WINDOWS@;
+static constexpr bool platform_android = @LIEF_RUNTIME_PLATFORM_ANDROID@;
+static constexpr bool platform_osx = @LIEF_RUNTIME_PLATFORM_OSX@;
+static constexpr bool platform_ios = @LIEF_RUNTIME_PLATFORM_IOS@;
+
+static constexpr bool arch_arm64 = @LIEF_RUNTIME_ARCH_ARM64@;
+static constexpr bool arch_x86_64 = @LIEF_RUNTIME_ARCH_X86_64@;
+static constexpr bool arch_riscv64 = @LIEF_RUNTIME_ARCH_RISCV64@;
+
+}
+}
+#endif
+
+// clang-format on
+
+#endif
diff --git a/deps/LIEF/include/LIEF/runtime/disassembler.hpp b/deps/LIEF/include/LIEF/runtime/disassembler.hpp
new file mode 100644
index 00000000000..d7696a41fd3
--- /dev/null
+++ b/deps/LIEF/include/LIEF/runtime/disassembler.hpp
@@ -0,0 +1,37 @@
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
+ *
+ * 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.
+ */
+#ifndef LIEF_RUNTIME_DISASSEMBLER_H
+#define LIEF_RUNTIME_DISASSEMBLER_H
+
+#include "LIEF/asm/Instruction.hpp"
+
+namespace LIEF {
+namespace runtime {
+
+using instructions_it = iterator_range<assembly::Instruction::Iterator>;
+
+/// Start disassembling instructions at the given **absolute** virtual address
+///
+/// ```cpp
+/// for (const auto& inst : disassemble(0x7f0011223344)) {
+///   std::cout << inst.to_string() << '\n';
+/// }
+/// ```
+LIEF_API instructions_it disassemble(uintptr_t addr);
+
+}
+}
+#endif
diff --git a/deps/LIEF/include/LIEF/runtime/linux.hpp b/deps/LIEF/include/LIEF/runtime/linux.hpp
new file mode 100644
index 00000000000..d4354504afd
--- /dev/null
+++ b/deps/LIEF/include/LIEF/runtime/linux.hpp
@@ -0,0 +1,23 @@
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
+ *
+ * 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.
+ */
+#ifndef LIEF_RUNTIME_LINUX_H
+#define LIEF_RUNTIME_LINUX_H
+
+#include <LIEF/runtime/linux/Module.hpp>
+#include <LIEF/runtime/linux/Host.hpp>
+#include <LIEF/runtime/linux/Process.hpp>
+
+#endif
diff --git a/deps/LIEF/include/LIEF/runtime/linux/Host.hpp b/deps/LIEF/include/LIEF/runtime/linux/Host.hpp
new file mode 100644
index 00000000000..f3a7c3bf6ba
--- /dev/null
+++ b/deps/LIEF/include/LIEF/runtime/linux/Host.hpp
@@ -0,0 +1,46 @@
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
+ *
+ * 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.
+ */
+#ifndef LIEF_RUNTIME_LINUX_HOST_H
+#define LIEF_RUNTIME_LINUX_HOST_H
+#include <LIEF/visibility.h>
+
+#include <string>
+
+namespace LIEF {
+namespace runtime {
+namespace Linux {
+
+/// This class exposes Linux-specific host information.
+class LIEF_API Host {
+  public:
+  /// Operating system name (e.g., `Linux`)
+  static std::string sys_name();
+
+  /// Operating system release (e.g., `2.6.28`)
+  static std::string sys_release();
+
+  /// Operating system version
+  static std::string sys_version();
+
+  /// Hardware type identifier (e.g., `x86_64`)
+  static std::string hardware();
+};
+
+
+}
+}
+}
+#endif
diff --git a/deps/LIEF/include/LIEF/runtime/linux/Module.hpp b/deps/LIEF/include/LIEF/runtime/linux/Module.hpp
new file mode 100644
index 00000000000..595c5d1cdcb
--- /dev/null
+++ b/deps/LIEF/include/LIEF/runtime/linux/Module.hpp
@@ -0,0 +1,76 @@
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
+ *
+ * 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.
+ */
+#ifndef LIEF_RUNTIME_LINUX_MODULE_H
+#define LIEF_RUNTIME_LINUX_MODULE_H
+
+#include "LIEF/runtime/Module.hpp"
+#include "LIEF/runtime/utils.hpp"
+
+namespace LIEF {
+
+namespace ELF {
+class Binary;
+struct ParserConfig;
+}
+
+namespace runtime {
+namespace Linux {
+
+/// This class exposes a Linux-specific API for a module
+class LIEF_API Module : public runtime::Module {
+  public:
+  using runtime::Module::Module;
+
+  /// Instantiate a Module from the given `dlopen` handle.
+  static std::unique_ptr<Module> from_handle(void* H);
+
+  /// Return the dlopen handle for this library.
+  ///
+  /// Return a nullptr if the function fails or if the handler can't be found
+  void* handle() const;
+
+  /// Resolve the symbol with the given name for the current module
+  void* dlsym(const std::string& name) const;
+
+  /// Parse the ELF module from its path on the filesystem
+  std::unique_ptr<ELF::Binary> parse_from_path() const;
+
+  /// Parse the ELF module from its path on the filesystem and given the parser
+  /// configuration
+  std::unique_ptr<ELF::Binary>
+      parse_from_path(const ELF::ParserConfig& config) const;
+
+  /// Parse the ELF module from memory with the given configuration
+  std::unique_ptr<ELF::Binary>
+      parse_from_memory(const ELF::ParserConfig& config) const;
+
+  /// Parse the ELF module from memory
+  std::unique_ptr<ELF::Binary> parse_from_memory() const;
+
+  ~Module() override = default;
+
+  static constexpr bool classof(const runtime::Module*) {
+    return platform() == PLATFORMS::LINUX;
+  }
+};
+
+/// Load the library with the given path/name
+LIEF_API std::unique_ptr<Module> dlopen(const std::string& name);
+
+}
+}
+}
+#endif
diff --git a/deps/LIEF/include/LIEF/runtime/linux/Process.hpp b/deps/LIEF/include/LIEF/runtime/linux/Process.hpp
new file mode 100644
index 00000000000..373df5b849d
--- /dev/null
+++ b/deps/LIEF/include/LIEF/runtime/linux/Process.hpp
@@ -0,0 +1,48 @@
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
+ *
+ * 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.
+ */
+#ifndef LIEF_RUNTIME_LINUX_PROCESS_H
+#define LIEF_RUNTIME_LINUX_PROCESS_H
+#include <LIEF/visibility.h>
+#include <LIEF/runtime/Process.hpp>
+#include <string>
+
+namespace LIEF {
+namespace runtime {
+namespace Linux {
+
+/// This class exposes Linux-specific API for the current process
+class LIEF_API Process : public runtime::Process {
+  public:
+  using runtime::Process::Process;
+
+  /// Return the content of `/proc/cmdline`
+  static std::string cmdline();
+
+  /// Return the version of the GNU C Library (glibc) loaded in the current
+  /// process (e.g. ``2.39``).
+  ///
+  /// Return an empty string if the version cannot be determined.
+  static std::string glibc_version();
+
+  static constexpr bool classof(const runtime::Process*) {
+    return platform() == PLATFORMS::LINUX;
+  }
+};
+
+}
+}
+}
+#endif
diff --git a/deps/LIEF/include/LIEF/runtime/osx.hpp b/deps/LIEF/include/LIEF/runtime/osx.hpp
new file mode 100644
index 00000000000..d9ad7aff414
--- /dev/null
+++ b/deps/LIEF/include/LIEF/runtime/osx.hpp
@@ -0,0 +1,23 @@
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
+ *
+ * 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.
+ */
+#ifndef LIEF_RUNTIME_OSX_H
+#define LIEF_RUNTIME_OSX_H
+
+#include <LIEF/runtime/osx/Module.hpp>
+#include <LIEF/runtime/osx/Host.hpp>
+#include <LIEF/runtime/osx/Process.hpp>
+
+#endif
diff --git a/deps/LIEF/include/LIEF/runtime/osx/Host.hpp b/deps/LIEF/include/LIEF/runtime/osx/Host.hpp
new file mode 100644
index 00000000000..bc366a58885
--- /dev/null
+++ b/deps/LIEF/include/LIEF/runtime/osx/Host.hpp
@@ -0,0 +1,87 @@
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
+ *
+ * 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.
+ */
+#ifndef LIEF_RUNTIME_OSX_HOST_H
+#define LIEF_RUNTIME_OSX_HOST_H
+#include <LIEF/visibility.h>
+#include <cstdint>
+#include <string>
+#include <ostream>
+
+namespace LIEF {
+namespace runtime {
+namespace osx {
+
+class LIEF_API Host {
+  public:
+  struct LIEF_API version_t {
+    uint32_t major = 0;
+    uint32_t minor = 0;
+    uint32_t patch = 0;
+
+    version_t(uint32_t major, uint32_t minor, uint32_t patch) :
+      major(major),
+      minor(minor),
+      patch(patch) {}
+
+    bool operator<=(const version_t& rhs) const;
+    bool operator>(const version_t& rhs) const {
+      return !(*this <= rhs);
+    }
+
+    bool operator>=(const version_t& rhs) const;
+    bool operator<(const version_t& rhs) const {
+      return !(*this >= rhs);
+    }
+
+    bool operator==(const version_t& other) const;
+    bool operator!=(const version_t& other) const {
+      return !(*this == other);
+    }
+
+    std::string to_string() const;
+
+    static const version_t& BigSur();
+    static const version_t& Monterey();
+    static const version_t& Ventura();
+    static const version_t& Sonoma();
+    static const version_t& Sequoia();
+    static const version_t& Tahoe();
+
+    LIEF_API friend std::ostream& operator<<(std::ostream& os,
+                                             const version_t version) {
+      os << version.to_string();
+      return os;
+    }
+  };
+
+  /// The OS version string (e.g. `Version 26.2 (Build 25C56)`)
+  static std::string os_version_name();
+
+  /// The OS version (e.g. `13.0.0`)
+  static version_t os_version();
+
+  /// Whether System Integrity Protection (SIP) is enabled on this host.
+  ///
+  /// This conservatively returns ``true`` when the status can't be determined
+  /// (including on a non-macOS build).
+  static bool is_sip_enabled();
+};
+
+
+}
+}
+}
+#endif
diff --git a/deps/LIEF/include/LIEF/runtime/osx/Module.hpp b/deps/LIEF/include/LIEF/runtime/osx/Module.hpp
new file mode 100644
index 00000000000..b79fbc52daf
--- /dev/null
+++ b/deps/LIEF/include/LIEF/runtime/osx/Module.hpp
@@ -0,0 +1,76 @@
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
+ *
+ * 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.
+ */
+#ifndef LIEF_RUNTIME_OSX_MODULE_H
+#define LIEF_RUNTIME_OSX_MODULE_H
+
+#include "LIEF/runtime/Module.hpp"
+#include "LIEF/runtime/utils.hpp"
+
+namespace LIEF {
+
+namespace MachO {
+class Binary;
+struct ParserConfig;
+}
+
+namespace runtime {
+namespace osx {
+
+/// This class exposes an OSX-specific API for a module
+class LIEF_API Module : public runtime::Module {
+  public:
+  using runtime::Module::Module;
+
+  /// Instantiate a Module from the given `dlopen` handle.
+  static std::unique_ptr<Module> from_handle(void* handle);
+
+  /// Return the `dlopen` handle for this library.
+  ///
+  /// Return a nullptr if the function fails or if the handler can't be found
+  void* handle() const;
+
+  /// Resolve the symbol with the given name for the current module
+  void* dlsym(const std::string& name) const;
+
+  /// Parse the Mach-O module from its path on the filesystem
+  std::unique_ptr<MachO::Binary> parse_from_path() const;
+
+  /// Parse the Mach-O module from its path on the filesystem with the given
+  /// parser configuration
+  std::unique_ptr<MachO::Binary>
+      parse_from_path(const MachO::ParserConfig& config) const;
+
+  /// Parse the Mach-O module from memory
+  std::unique_ptr<MachO::Binary> parse_from_memory() const;
+
+  /// Parse the Mach-O module from memory with the given configuration
+  std::unique_ptr<MachO::Binary>
+      parse_from_memory(const MachO::ParserConfig& config) const;
+
+  ~Module() override = default;
+
+  static constexpr bool classof(const runtime::Module*) {
+    return platform() == PLATFORMS::OSX;
+  }
+};
+
+/// Load the library with the given path or name.
+LIEF_API std::unique_ptr<Module> dlopen(const std::string& name);
+
+}
+}
+}
+#endif
diff --git a/deps/LIEF/include/LIEF/runtime/osx/Process.hpp b/deps/LIEF/include/LIEF/runtime/osx/Process.hpp
new file mode 100644
index 00000000000..b1722aa1e19
--- /dev/null
+++ b/deps/LIEF/include/LIEF/runtime/osx/Process.hpp
@@ -0,0 +1,42 @@
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
+ *
+ * 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.
+ */
+#ifndef LIEF_RUNTIME_OSX_PROCESS_H
+#define LIEF_RUNTIME_OSX_PROCESS_H
+
+#include "LIEF/runtime/Process.hpp"
+#include "LIEF/runtime/utils.hpp"
+
+namespace LIEF {
+namespace runtime {
+namespace osx {
+
+/// This class exposes OSX-specific API for the current process
+class LIEF_API Process : public runtime::Process {
+  public:
+  using runtime::Process::Process;
+
+  /// Return the version of dyld for the current process
+  static std::string dyld_version();
+
+  static constexpr bool classof(const runtime::Process*) {
+    return platform() == PLATFORMS::OSX;
+  }
+};
+
+}
+}
+}
+#endif
diff --git a/deps/LIEF/include/LIEF/runtime/utils.hpp b/deps/LIEF/include/LIEF/runtime/utils.hpp
new file mode 100644
index 00000000000..b7d94440485
--- /dev/null
+++ b/deps/LIEF/include/LIEF/runtime/utils.hpp
@@ -0,0 +1,114 @@
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
+ *
+ * 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.
+ */
+#ifndef LIEF_RUNTIME_UTILS_H
+#define LIEF_RUNTIME_UTILS_H
+#include <cstdint>
+#include "LIEF/config.h"
+
+#if defined(LIEF_RUNTIME_SUPPORT)
+  #include "LIEF/runtime/config.h"
+#endif
+
+namespace LIEF {
+namespace runtime {
+
+enum class PLATFORMS : uint32_t {
+  NONE = 0,
+  LINUX,
+  WINDOWS,
+  ANDROID_,
+  OSX,
+  IOS,
+};
+
+enum class ARCH : uint32_t {
+  NONE,
+  X86_64,
+  ARM64,
+  RISCV64,
+};
+
+/// Whether the runtime features are enabled
+static constexpr bool is_enabled() {
+  return lief_runtime_support;
+}
+
+/// Platform for which the runtime is compiled
+static constexpr PLATFORMS platform() {
+#if !defined(LIEF_RUNTIME_SUPPORT)
+  return PLATFORMS::NONE;
+#else
+  #if defined(LIEF_RUNTIME_PLATFORM_LINUX)
+  return PLATFORMS::LINUX;
+  #elif defined(LIEF_RUNTIME_PLATFORM_WINDOWS)
+  return PLATFORMS::WINDOWS;
+  #elif defined(LIEF_RUNTIME_PLATFORM_ANDROID)
+  return PLATFORMS::ANDROID_;
+  #elif defined(LIEF_RUNTIME_PLATFORM_OSX)
+  return PLATFORMS::OSX;
+  #elif defined(LIEF_RUNTIME_PLATFORM_IOS)
+  return PLATFORMS::IOS;
+  #else
+  return PLATFORMS::NONE;
+  #endif
+#endif
+}
+
+/// Architecture for which the runtime is compiled
+static constexpr ARCH arch() {
+#if !defined(LIEF_RUNTIME_SUPPORT)
+  return ARCH::NONE;
+#else
+  #if defined(LIEF_RUNTIME_ARCH_ARM64)
+  return ARCH::ARM64;
+  #elif defined(LIEF_RUNTIME_ARCH_X86_64)
+  return ARCH::X86_64;
+  #elif defined(LIEF_RUNTIME_ARCH_RISCV64)
+  return ARCH::RISCV64;
+  #else
+  return ARCH::NONE;
+  #endif
+
+#endif
+}
+
+static inline constexpr uintptr_t page_mask(uintptr_t page_size) {
+  return ~(page_size - 1);
+}
+
+static inline constexpr uintptr_t page_start(uintptr_t address,
+                                             uintptr_t page_size) {
+  return address & page_mask(page_size);
+}
+
+static inline constexpr uintptr_t page_align(uintptr_t address,
+                                             uintptr_t page_size) {
+  return (address + (page_size - 1)) & page_mask(page_size);
+}
+
+static inline constexpr uintptr_t page_offset(uintptr_t address,
+                                              uintptr_t page_size) {
+  return (address & ~page_mask(page_size));
+}
+
+static inline constexpr uintptr_t page_end(uintptr_t address,
+                                           uintptr_t page_size) {
+  return page_start(address + (page_size - 1), page_size);
+}
+
+}
+}
+#endif
diff --git a/deps/LIEF/include/LIEF/runtime/windows.hpp b/deps/LIEF/include/LIEF/runtime/windows.hpp
new file mode 100644
index 00000000000..ef062f2d72e
--- /dev/null
+++ b/deps/LIEF/include/LIEF/runtime/windows.hpp
@@ -0,0 +1,25 @@
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
+ *
+ * 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.
+ */
+#ifndef LIEF_RUNTIME_WIN_H
+#define LIEF_RUNTIME_WIN_H
+
+#include <LIEF/runtime/windows/Module.hpp>
+#include <LIEF/runtime/windows/Host.hpp>
+#include <LIEF/runtime/windows/Process.hpp>
+#include <LIEF/runtime/windows/PEB.hpp>
+#include <LIEF/runtime/windows/LdrDataTableEntry.hpp>
+
+#endif
diff --git a/deps/LIEF/include/LIEF/runtime/windows/Host.hpp b/deps/LIEF/include/LIEF/runtime/windows/Host.hpp
new file mode 100644
index 00000000000..ba5c8694c6f
--- /dev/null
+++ b/deps/LIEF/include/LIEF/runtime/windows/Host.hpp
@@ -0,0 +1,74 @@
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
+ *
+ * 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.
+ */
+#ifndef LIEF_RUNTIME_WINDOWS_HOST_H
+#define LIEF_RUNTIME_WINDOWS_HOST_H
+#include <LIEF/visibility.h>
+#include <cstdint>
+#include <string>
+#include <ostream>
+
+namespace LIEF {
+namespace runtime {
+namespace windows {
+
+/// This class exposes Windows-specific host information.
+class LIEF_API Host {
+  public:
+  struct LIEF_API version_t {
+    uint32_t major = 0;
+    uint32_t minor = 0;
+    uint32_t build_number = 0;
+
+    version_t() = default;
+
+    version_t(uint32_t major, uint32_t minor, uint32_t build_number) :
+      major(major),
+      minor(minor),
+      build_number(build_number) {}
+
+    bool operator<=(const version_t& rhs) const;
+    bool operator>(const version_t& rhs) const {
+      return !(*this <= rhs);
+    }
+
+    bool operator>=(const version_t& rhs) const;
+    bool operator<(const version_t& rhs) const {
+      return !(*this >= rhs);
+    }
+
+    bool operator==(const version_t& other) const;
+    bool operator!=(const version_t& other) const {
+      return !(*this == other);
+    }
+
+
+    std::string to_string() const;
+    LIEF_API friend std::ostream& operator<<(std::ostream& os,
+                                             const version_t& version) {
+      os << version.to_string();
+      return os;
+    }
+  };
+
+  /// Return the Windows version (e.g., `10.0.26200`)
+  static version_t version();
+};
+
+
+}
+}
+}
+#endif
diff --git a/deps/LIEF/include/LIEF/runtime/windows/LdrDataTableEntry.hpp b/deps/LIEF/include/LIEF/runtime/windows/LdrDataTableEntry.hpp
new file mode 100644
index 00000000000..1ddcd21ec75
--- /dev/null
+++ b/deps/LIEF/include/LIEF/runtime/windows/LdrDataTableEntry.hpp
@@ -0,0 +1,234 @@
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
+ *
+ * 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.
+ */
+#ifndef LIEF_RUNTIME_WINDOWS_LDR_DATA_TABLE_ENTRY_H
+#define LIEF_RUNTIME_WINDOWS_LDR_DATA_TABLE_ENTRY_H
+#include <cstdint>
+#include <memory>
+#include <ostream>
+#include <string>
+
+#include <LIEF/visibility.h>
+#include <LIEF/compiler_attributes.hpp>
+#include <LIEF/iterators.hpp>
+#include <LIEF/optional.hpp>
+
+namespace LIEF {
+namespace runtime {
+namespace windows {
+
+namespace details {
+class ldr_entry;
+class ldr_entry_it;
+}
+
+/// This class exposes a user-friendly interface over a `LDR_DATA_TABLE_ENTRY`,
+/// the structure used by the Windows loader to describe a module loaded in the
+/// current process.
+class LIEF_API LdrDataTableEntry {
+  public:
+  /// Bidirectional iterator over the LdrDataTableEntry mirroring the
+  /// doubly-linked list used by Windows.
+  class Iterator final
+    : public iterator_facade_base<Iterator, std::bidirectional_iterator_tag,
+                                  LdrDataTableEntry, std::ptrdiff_t,
+                                  const LdrDataTableEntry*,
+                                  const LdrDataTableEntry&> {
+    public:
+    using implementation = details::ldr_entry_it;
+    using iterator_facade_base::operator++;
+    using iterator_facade_base::operator--;
+
+    LIEF_API Iterator();
+
+    LIEF_API Iterator(std::unique_ptr<details::ldr_entry_it> impl);
+
+    LIEF_API Iterator(const Iterator&);
+    LIEF_API Iterator& operator=(const Iterator&);
+
+    LIEF_API Iterator(Iterator&&) noexcept;
+    LIEF_API Iterator& operator=(Iterator&&) noexcept;
+
+    LIEF_API ~Iterator();
+
+    friend LIEF_API bool operator==(const Iterator& LHS, const Iterator& RHS);
+    friend bool operator!=(const Iterator& LHS, const Iterator& RHS) {
+      return !(LHS == RHS);
+    }
+
+    // NOLINTNEXTLINE(bugprone-derived-method-shadowing-base-method)
+    LIEF_API Iterator& operator++() LIEF_LIFETIMEBOUND;
+
+    // NOLINTNEXTLINE(bugprone-derived-method-shadowing-base-method)
+    LIEF_API Iterator& operator--() LIEF_LIFETIMEBOUND;
+
+    LIEF_API const LdrDataTableEntry& operator*() const LIEF_LIFETIMEBOUND;
+
+    // NOLINTNEXTLINE(bugprone-derived-method-shadowing-base-method)
+    LIEF_API const LdrDataTableEntry* operator->() const LIEF_LIFETIMEBOUND;
+
+    /// Transfer ownership of the entry at the current position to the caller.
+    /// Returns `nullptr` if the iterator is past-the-end.
+    LIEF_API std::unique_ptr<LdrDataTableEntry> yield();
+
+    private:
+    void load() const;
+
+    std::unique_ptr<details::ldr_entry_it> impl_;
+    mutable std::unique_ptr<LdrDataTableEntry> cached_;
+  };
+
+  LdrDataTableEntry() = delete;
+  LdrDataTableEntry(std::unique_ptr<details::ldr_entry> impl);
+
+  LdrDataTableEntry(const LdrDataTableEntry&) = delete;
+  LdrDataTableEntry& operator=(const LdrDataTableEntry&) = delete;
+
+  LdrDataTableEntry(LdrDataTableEntry&&) noexcept;
+  LdrDataTableEntry& operator=(LdrDataTableEntry&&) noexcept;
+
+  /// Base address at which the module is mapped in memory (`DllBase`).
+  uintptr_t dll_base() const;
+
+  /// Address of the entry point of the module (`EntryPoint`).
+  uintptr_t entry_point() const;
+
+  /// Size (in bytes) of the module's image in memory (`SizeOfImage`).
+  uint32_t size_of_image() const;
+
+  /// Full path of the module (`FullDllName`),
+  /// e.g. `C:\Windows\System32\ntdll.dll`.
+  std::string full_dll_name() const;
+
+  /// Base name of the module (`BaseDllName`), e.g. `ntdll.dll`.
+  std::string base_dll_name() const;
+
+  /// Loader flags describing the state of the module (`Flags`).
+  uint32_t flags() const;
+
+  /// Legacy load count of the module (`ObsoleteLoadCount`). Superseded by
+  /// `reference_count()` on Windows 8 and later.
+  uint16_t obsolete_load_count() const;
+
+  /// TLS slot index assigned to the module, or `0` when it has no TLS
+  /// (`TlsIndex`).
+  uint16_t tls_index() const;
+
+  /// `TimeDateStamp` of the module as cached by the loader.
+  uint32_t time_date_stamp() const;
+
+  /// Address of the activation context associated with the module's entry
+  /// point.
+  uintptr_t entry_point_activation_context() const;
+
+  /// Address of the per-entry loader lock.
+  uintptr_t lock() const;
+
+  /// Address of the dependency-graph node of the module (`DdagNode`).
+  ///
+  /// \note Available on Windows 8 and later.
+  optional<uintptr_t> ddag_node() const;
+
+  /// Address of the loader context used while the module is being snapped
+  ///
+  /// \note Available on Windows 8 and later.
+  optional<uintptr_t> load_context() const;
+
+  /// Base address of the module that triggered the load of this one.
+  ///
+  /// \note Available on Windows 8 and later.
+  optional<uintptr_t> parent_dll_base() const;
+
+  /// Address of the CHPE switch-back context.
+  ///
+  /// \note Available on Windows 8 and later.
+  optional<uintptr_t> switch_back_context() const;
+
+  /// Preferred base address recorded in the PE headers
+  ///
+  /// \note Available on Windows 8 and later.
+  optional<uintptr_t> original_base() const;
+
+  /// Time at which the module was loaded.
+  ///
+  /// \note Available on Windows 8 and later.
+  optional<int64_t> load_time() const;
+
+  /// Hash of the module's base name used to index the loader tables
+  ///
+  /// \note Available on Windows 8 and later.
+  optional<uint32_t> base_name_hash_value() const;
+
+  /// Reason why the module was loaded, as a `LDR_DLL_LOAD_REASON` value
+  ///
+  /// \note Available on Windows 8 and later.
+  optional<int32_t> load_reason() const;
+
+  /// Path-search options implied when the module was resolved
+  ///
+  /// \note Available on Windows 8 and later.
+  optional<uint32_t> implicit_path_options() const;
+
+  /// Number of references currently held on the module.
+  ///
+  /// \note Available on Windows 8 and later.
+  optional<uint32_t> reference_count() const;
+
+  /// Flags controlling how the statically-linked dependencies of the module
+  /// are loaded.
+  ///
+  /// \note Available on Windows 8 and later.
+  optional<uint32_t> dependent_load_flags() const;
+
+  /// Signing level of the module's image, as a `SE_SIGNING_LEVEL` value
+  ///
+  /// \note Available on Windows 10 and later.
+  optional<uint8_t> signing_level() const;
+
+  /// Image checksum cached by the loader
+  ///
+  /// \note Available on Windows 10 and later.
+  optional<uint32_t> check_sum() const;
+
+  /// Base address of the active hot-patch image, if any.
+  ///
+  /// \note Available on Windows 11 and later.
+  optional<uintptr_t> active_patch_image_base() const;
+
+  /// State of the hot-patch engine for this module, as a `LDR_HOT_PATCH_STATE`
+  /// value.
+  ///
+  /// \note Available on Windows 11 and later.
+  optional<uint32_t> hot_patch_state() const;
+
+  /// Pretty-printed representation of this entry.
+  std::string to_string() const;
+
+  LIEF_API friend std::ostream& operator<<(std::ostream& os,
+                                           const LdrDataTableEntry& entry) {
+    os << entry.to_string();
+    return os;
+  }
+
+  ~LdrDataTableEntry();
+
+  private:
+  std::unique_ptr<details::ldr_entry> impl_;
+};
+
+}
+}
+}
+#endif
diff --git a/deps/LIEF/include/LIEF/runtime/windows/Module.hpp b/deps/LIEF/include/LIEF/runtime/windows/Module.hpp
new file mode 100644
index 00000000000..081ac6ab863
--- /dev/null
+++ b/deps/LIEF/include/LIEF/runtime/windows/Module.hpp
@@ -0,0 +1,90 @@
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
+ *
+ * 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.
+ */
+#ifndef LIEF_RUNTIME_WIN_MODULE_H
+#define LIEF_RUNTIME_WIN_MODULE_H
+
+#include "LIEF/runtime/Module.hpp"
+#include "LIEF/runtime/utils.hpp"
+
+namespace LIEF {
+
+namespace PE {
+class Binary;
+struct ParserConfig;
+}
+
+namespace runtime {
+namespace windows {
+
+/// This class exposes a Windows-specific API for a module
+class LIEF_API Module : public runtime::Module {
+  public:
+  using runtime::Module::Module;
+
+  static std::unique_ptr<Module> from_handle(void* H);
+
+  /// Return the `HMODULE` handle as an opaque pointer.
+  ///
+  /// Return a nullptr if the function fails or if the handler can't be found
+  void* handle() const;
+
+  /// Resolve the symbol with the given name for the current module
+  void* dlsym(const std::string& name) const;
+
+  /// Parse the PE module from its path on the filesystem
+  std::unique_ptr<PE::Binary> parse_from_path() const;
+
+  /// Parse the PE module from its path on the filesystem and given the parser
+  /// configuration
+  std::unique_ptr<PE::Binary>
+      parse_from_path(const PE::ParserConfig& config) const;
+
+  /// Parse the PE module from memory with the given configuration
+  std::unique_ptr<PE::Binary>
+      parse_from_memory(const PE::ParserConfig& config) const;
+
+  /// Parse the PE module from memory
+  std::unique_ptr<PE::Binary> parse_from_memory() const;
+
+  ~Module() override = default;
+
+  static constexpr bool classof(const runtime::Module*) {
+    return platform() == PLATFORMS::WINDOWS;
+  }
+};
+
+/// Load the windows library with the given path or name.
+LIEF_API std::unique_ptr<Module> dlopen(const std::string& name);
+
+/// Try to get the Module with the given name.
+///
+/// Return a nullptr if the module is not found
+///
+///
+/// ```cpp
+/// if (auto ntdll = find_module("ntdll.dll")) {
+///   std::cout << ntdll->path() << '\n';
+/// }
+/// ```
+/// \note This function relies on the Windows API `GetModuleHandle`
+///       which is more efficient than the generic implementation
+///       LIEF::runtime::module_from_name
+LIEF_API std::unique_ptr<Module> find_module(const std::string& name);
+
+}
+}
+}
+#endif
diff --git a/deps/LIEF/include/LIEF/runtime/windows/PEB.hpp b/deps/LIEF/include/LIEF/runtime/windows/PEB.hpp
new file mode 100644
index 00000000000..447a756eebb
--- /dev/null
+++ b/deps/LIEF/include/LIEF/runtime/windows/PEB.hpp
@@ -0,0 +1,104 @@
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
+ *
+ * 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.
+ */
+#ifndef LIEF_RUNTIME_WINDOWS_PEB_H
+#define LIEF_RUNTIME_WINDOWS_PEB_H
+#include <cstdint>
+#include <memory>
+#include <LIEF/visibility.h>
+#include <LIEF/iterators.hpp>
+#include <LIEF/runtime/windows/LdrDataTableEntry.hpp>
+
+namespace LIEF {
+namespace runtime {
+namespace windows {
+class Process;
+
+namespace details {
+class peb;
+}
+
+/// This class exposes a user-friendly interface over the Process Environment
+/// Block (PEB) of the current process.
+///
+/// An instance can be created through LIEF::runtime::windows::Process::peb().
+///
+/// ```cpp
+/// if (auto peb = LIEF::runtime::windows::Process::peb()) {
+///   if (peb->being_debugged()) {
+///     // A debugger is attached to the current process
+///   }
+/// }
+/// ```
+class LIEF_API PEB {
+  public:
+  friend class Process;
+
+  PEB() = delete;
+  PEB(const PEB&) = delete;
+  PEB& operator=(const PEB&) = delete;
+
+  PEB(PEB&&) noexcept;
+  PEB& operator=(PEB&&) noexcept;
+
+  /// Iterator over the LdrDataTableEntry referenced by the loader data.
+  using entries_it = iterator_range<LdrDataTableEntry::Iterator>;
+
+  /// Whether the current process is being debugged.
+  bool being_debugged() const;
+
+  /// Address of the loader data structure (`PEB_LDR_DATA`).
+  uintptr_t ldr() const;
+
+  /// Address of the process parameters (`RTL_USER_PROCESS_PARAMETERS`).
+  uintptr_t process_parameters() const;
+
+  /// Address of the per-process ATL thunk SList (single-linked list).
+  uintptr_t atl_thunk_slist_ptr() const;
+
+  /// 32-bit value of the ATL thunk SList pointer.
+  uint32_t atl_thunk_slist_ptr32() const;
+
+  /// Address of the routine called once the process completed its
+  /// initialization (`PostProcessInitRoutine`).
+  uintptr_t post_process_init_routine() const;
+
+  /// Session ID associated with the current process.
+  uint32_t session_id() const;
+
+  /// Return a bidirectional iterator over the modules referenced by the
+  /// loader data (`Ldr`).
+  ///
+  /// ```cpp
+  /// if (auto peb = LIEF::runtime::windows::Process::peb()) {
+  ///   for (const LdrDataTableEntry& entry : peb->entries()) {
+  ///     // entry.base_dll_name(), entry.dll_base(), ...
+  ///   }
+  /// }
+  /// ```
+  entries_it entries() const;
+
+  ~PEB();
+
+  private:
+  static std::unique_ptr<PEB> create();
+  PEB(std::unique_ptr<details::peb> impl);
+  std::unique_ptr<details::peb> impl_;
+};
+
+}
+}
+}
+#endif
diff --git a/deps/LIEF/include/LIEF/runtime/windows/Process.hpp b/deps/LIEF/include/LIEF/runtime/windows/Process.hpp
new file mode 100644
index 00000000000..82946555a40
--- /dev/null
+++ b/deps/LIEF/include/LIEF/runtime/windows/Process.hpp
@@ -0,0 +1,44 @@
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
+ *
+ * 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.
+ */
+#ifndef LIEF_RUNTIME_WINDOWS_PROCESS_H
+#define LIEF_RUNTIME_WINDOWS_PROCESS_H
+#include <memory>
+
+#include <LIEF/visibility.h>
+#include <LIEF/runtime/Process.hpp>
+
+namespace LIEF {
+namespace runtime {
+namespace windows {
+class PEB;
+
+/// This class exposes Windows-specific API for the current process
+class LIEF_API Process : public runtime::Process {
+  public:
+  using runtime::Process::Process;
+
+  /// Return an interface over the internal Process Environment Block (PEB)
+  static std::unique_ptr<PEB> peb();
+
+  static constexpr bool classof(const runtime::Process*) {
+    return platform() == PLATFORMS::WINDOWS;
+  }
+};
+
+}
+}
+}
+#endif
diff --git a/deps/LIEF/include/LIEF/runtime/windows/injector.hpp b/deps/LIEF/include/LIEF/runtime/windows/injector.hpp
new file mode 100644
index 00000000000..93ce41120de
--- /dev/null
+++ b/deps/LIEF/include/LIEF/runtime/windows/injector.hpp
@@ -0,0 +1,72 @@
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
+ *
+ * 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.
+ */
+#ifndef LIEF_RUNTIME_WIN_INJECTOR_H
+#define LIEF_RUNTIME_WIN_INJECTOR_H
+
+#include "LIEF/visibility.h"
+#include "LIEF/errors.hpp"
+
+#include <ostream>
+#include <string>
+#include <unordered_map>
+
+namespace LIEF {
+namespace runtime {
+namespace windows {
+
+/// Describes how to spawn a new process and inject a library into it.
+struct LIEF_API injection_context_t {
+  /// Absolute path to the target executable to spawn.
+  std::string target_path;
+
+  /// Command-line arguments passed to the spawned process.
+  std::string args;
+
+  /// Absolute path to the library (DLL) that should be injected.
+  std::string library;
+
+  /// Environment variables to set in the spawned process. If left empty,
+  /// the current process environment is inherited.
+  std::unordered_map<std::string, std::string> env;
+
+  /// Check whether the context is consistent (required paths filled-in and
+  /// readable).
+  bool validate() const;
+
+  operator bool() const {
+    return validate();
+  }
+
+  std::string to_string() const;
+
+  friend LIEF_API std::ostream& operator<<(std::ostream& os,
+                                           const injection_context_t& ctx) {
+    os << ctx.to_string();
+    return os;
+  }
+};
+
+/// Spawn the target described by the given injection context and inject the
+/// associated library before the main thread starts executing.
+///
+/// This is the Windows equivalent of a "create suspended + remote LoadLibrary"
+/// approach.
+LIEF_API ok_error_t inject_spawn(const injection_context_t& ctx);
+
+}
+}
+}
+#endif
diff --git a/deps/LIEF/include/LIEF/span.hpp b/deps/LIEF/include/LIEF/span.hpp
index cfe4f05ed43..247a8eb536c 100644
--- a/deps/LIEF/include/LIEF/span.hpp
+++ b/deps/LIEF/include/LIEF/span.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2021 - 2025 R. Thomas
+/* Copyright 2021 - 2026 R. Thomas
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -18,8 +18,13 @@

 namespace LIEF {

-template <typename ElementType, std::size_t Extent = tcb::dynamic_extent>
+template<typename ElementType, std::size_t Extent = tcb::dynamic_extent>
 using span = tcb::span<ElementType, Extent>;
+
+inline span<uint8_t> as_writable(span<const uint8_t> buffer) {
+  return {const_cast<uint8_t*>(buffer.data()), buffer.size()};
+}
+
 }

 #endif
diff --git a/deps/LIEF/include/LIEF/third-party/expected.hpp b/deps/LIEF/include/LIEF/third-party/expected.hpp
index 729cf0cb4d1..ece0f803ac3 100644
--- a/deps/LIEF/include/LIEF/third-party/expected.hpp
+++ b/deps/LIEF/include/LIEF/third-party/expected.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2021 - 2025 R. Thomas
+/* Copyright 2021 - 2026 R. Thomas
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -19,9 +19,9 @@
 #undef TL_EXPECTED_EXCEPTIONS_ENABLED

 #ifndef LIEF_EXTERNAL_EXPECTED
-#include <LIEF/third-party/internal/expected.hpp>
+  #include <LIEF/third-party/internal/expected.hpp>
 #else
-#include <tl/expected.hpp>
+  #include <tl/expected.hpp>
 #endif

 #endif
diff --git a/deps/LIEF/include/LIEF/third-party/internal/expected.hpp b/deps/LIEF/include/LIEF/third-party/internal/expected.hpp
index 06e6dc4f6c7..59e59aa1bd1 100644
--- a/deps/LIEF/include/LIEF/third-party/internal/expected.hpp
+++ b/deps/LIEF/include/LIEF/third-party/internal/expected.hpp
@@ -17,8 +17,8 @@
 #define TL_EXPECTED_HPP

 #define TL_EXPECTED_VERSION_MAJOR 1
-#define TL_EXPECTED_VERSION_MINOR 2
-#define TL_EXPECTED_VERSION_PATCH 0
+#define TL_EXPECTED_VERSION_MINOR 3
+#define TL_EXPECTED_VERSION_PATCH 1

 #include <exception>
 #include <functional>
@@ -51,6 +51,12 @@
 #define TL_EXPECTED_GCC55
 #endif

+#ifdef _MSVC_LANG
+#define TL_CPLUSPLUS _MSVC_LANG
+#else
+#define TL_CPLUSPLUS __cplusplus
+#endif
+
 #if !defined(TL_ASSERT)
 //can't have assert in constexpr in C++11 and GCC 4.9 has a compiler bug
 #if (TL_CPLUSPLUS > 201103L) && !defined(TL_EXPECTED_GCC49)
@@ -109,12 +115,6 @@ struct is_trivially_copy_constructible<std::vector<T, A>> : std::false_type {};
   std::is_trivially_destructible<T>
 #endif

-#ifdef _MSVC_LANG
-#define TL_CPLUSPLUS _MSVC_LANG
-#else
-#define TL_CPLUSPLUS __cplusplus
-#endif
-
 #if TL_CPLUSPLUS > 201103L
 #define TL_EXPECTED_CXX14
 #endif
@@ -219,21 +219,13 @@ struct unexpect_t {
 };
 static constexpr unexpect_t unexpect{};

-namespace detail {
-template <typename E>
-[[noreturn]] TL_EXPECTED_11_CONSTEXPR void throw_exception(E &&e) {
 #ifdef TL_EXPECTED_EXCEPTIONS_ENABLED
-  throw std::forward<E>(e);
+#define TL_EXPECTED_THROW_EXCEPTION(e) throw((e));
 #else
-  (void)e;
-#ifdef _MSC_VER
-  __assume(0);
-#else
-  __builtin_unreachable();
-#endif
+#define TL_EXPECTED_THROW_EXCEPTION(e) std::terminate();
 #endif
-}

+namespace detail {
 #ifndef TL_TRAITS_MUTEX
 #define TL_TRAITS_MUTEX
 // C++14-style aliases for brevity
@@ -2024,28 +2016,28 @@ public:
             detail::enable_if_t<!std::is_void<U>::value> * = nullptr>
   TL_EXPECTED_11_CONSTEXPR const U &value() const & {
     if (!has_value())
-      detail::throw_exception(bad_expected_access<E>(err().value()));
+      TL_EXPECTED_THROW_EXCEPTION(bad_expected_access<E>(err().value()));
     return val();
   }
   template <class U = T,
             detail::enable_if_t<!std::is_void<U>::value> * = nullptr>
   TL_EXPECTED_11_CONSTEXPR U &value() & {
     if (!has_value())
-      detail::throw_exception(bad_expected_access<E>(err().value()));
+      TL_EXPECTED_THROW_EXCEPTION(bad_expected_access<E>(err().value()));
     return val();
   }
   template <class U = T,
             detail::enable_if_t<!std::is_void<U>::value> * = nullptr>
   TL_EXPECTED_11_CONSTEXPR const U &&value() const && {
     if (!has_value())
-      detail::throw_exception(bad_expected_access<E>(std::move(err()).value()));
+      TL_EXPECTED_THROW_EXCEPTION(bad_expected_access<E>(std::move(err()).value()));
     return std::move(val());
   }
   template <class U = T,
             detail::enable_if_t<!std::is_void<U>::value> * = nullptr>
   TL_EXPECTED_11_CONSTEXPR U &&value() && {
     if (!has_value())
-      detail::throw_exception(bad_expected_access<E>(std::move(err()).value()));
+      TL_EXPECTED_THROW_EXCEPTION(bad_expected_access<E>(std::move(err()).value()));
     return std::move(val());
   }

diff --git a/deps/LIEF/include/LIEF/third-party/internal/utfcpp/utf8/checked.h b/deps/LIEF/include/LIEF/third-party/internal/utfcpp/utf8/checked.h
index 98949f8bca1..96ceb4d5041 100644
--- a/deps/LIEF/include/LIEF/third-party/internal/utfcpp/utf8/checked.h
+++ b/deps/LIEF/include/LIEF/third-party/internal/utfcpp/utf8/checked.h
@@ -129,7 +129,7 @@ namespace utf8
     template <typename octet_iterator, typename output_iterator>
     inline output_iterator replace_invalid(octet_iterator start, octet_iterator end, output_iterator out)
     {
-        static const utfchar32_t replacement_marker = utf8::internal::mask16(0xfffd);
+        static const utfchar32_t replacement_marker = static_cast<utfchar32_t>(utf8::internal::mask16(0xfffd));
         return utf8::replace_invalid(start, end, out, replacement_marker);
     }

@@ -227,11 +227,11 @@ namespace utf8
     octet_iterator utf16to8 (u16bit_iterator start, u16bit_iterator end, octet_iterator result)
     {
         while (start != end) {
-            utfchar32_t cp = utf8::internal::mask16(*start++);
+            utfchar32_t cp = static_cast<utfchar32_t>(utf8::internal::mask16(*start++));
             // Take care of surrogate pairs first
             if (utf8::internal::is_lead_surrogate(cp)) {
                 if (start != end) {
-                    const utfchar32_t trail_surrogate = utf8::internal::mask16(*start++);
+                    const utfchar32_t trail_surrogate = static_cast<utfchar32_t>(utf8::internal::mask16(*start++));
                     if (utf8::internal::is_trail_surrogate(trail_surrogate))
                         cp = (cp << 10) + trail_surrogate + internal::SURROGATE_OFFSET;
                     else
diff --git a/deps/LIEF/include/LIEF/third-party/internal/utfcpp/utf8/core.h b/deps/LIEF/include/LIEF/third-party/internal/utfcpp/utf8/core.h
index 627133c6188..8e128c1802c 100644
--- a/deps/LIEF/include/LIEF/third-party/internal/utfcpp/utf8/core.h
+++ b/deps/LIEF/include/LIEF/third-party/internal/utfcpp/utf8/core.h
@@ -43,9 +43,12 @@ DEALINGS IN THE SOFTWARE.
 #if UTF_CPP_CPLUSPLUS >= 201103L // C++ 11 or later
     #define UTF_CPP_OVERRIDE override
     #define UTF_CPP_NOEXCEPT noexcept
+    #define UTF_CPP_STATIC_ASSERT(condition) static_assert(condition, "UTFCPP static assert");
 #else // C++ 98/03
     #define UTF_CPP_OVERRIDE
     #define UTF_CPP_NOEXCEPT throw()
+    // Not worth simulating static_assert:
+    #define UTF_CPP_STATIC_ASSERT(condition) (void)(condition);
 #endif // C++ 11 or later


@@ -87,6 +90,7 @@ namespace internal
     {
         return static_cast<utfchar8_t>(0xff & oc);
     }
+
     template<typename u16_type>
     inline utfchar16_t mask16(u16_type oc)
     {
@@ -101,17 +105,17 @@ namespace internal

     inline bool is_lead_surrogate(utfchar32_t cp)
     {
-        return (cp >= LEAD_SURROGATE_MIN && cp <= LEAD_SURROGATE_MAX);
+        return (cp >= static_cast<utfchar32_t>(LEAD_SURROGATE_MIN) && cp <= static_cast<utfchar32_t>(LEAD_SURROGATE_MAX));
     }

     inline bool is_trail_surrogate(utfchar32_t cp)
     {
-        return (cp >= TRAIL_SURROGATE_MIN && cp <= TRAIL_SURROGATE_MAX);
+        return (cp >= static_cast<utfchar32_t>(TRAIL_SURROGATE_MIN) && cp <= static_cast<utfchar32_t>(TRAIL_SURROGATE_MAX));
     }

     inline bool is_surrogate(utfchar32_t cp)
     {
-        return (cp >= LEAD_SURROGATE_MIN && cp <= TRAIL_SURROGATE_MAX);
+        return (cp >= static_cast<utfchar32_t>(LEAD_SURROGATE_MIN) && cp <= static_cast<utfchar32_t>(TRAIL_SURROGATE_MAX));
     }

     inline bool is_code_point_valid(utfchar32_t cp)
@@ -143,15 +147,15 @@ namespace internal
     inline bool is_overlong_sequence(utfchar32_t cp, int length)
     {
         if (cp < 0x80) {
-            if (length != 1)
+            if (length != 1)
                 return true;
         }
         else if (cp < 0x800) {
-            if (length != 2)
+            if (length != 2)
                 return true;
         }
         else if (cp < 0x10000) {
-            if (length != 3)
+            if (length != 3)
                 return true;
         }
         return false;
@@ -181,7 +185,7 @@ namespace internal
         if (it == end)
             return NOT_ENOUGH_ROOM;

-        code_point = utf8::internal::mask8(*it);
+        code_point = static_cast<utfchar32_t>(utf8::internal::mask8(*it));

         return UTF8_OK;
     }
@@ -189,10 +193,10 @@ namespace internal
     template <typename octet_iterator>
     utf_error get_sequence_2(octet_iterator& it, octet_iterator end, utfchar32_t& code_point)
     {
-        if (it == end)
+        if (it == end)
             return NOT_ENOUGH_ROOM;

-        code_point = utf8::internal::mask8(*it);
+        code_point = static_cast<utfchar32_t>(utf8::internal::mask8(*it));

         UTF8_CPP_INCREASE_AND_RETURN_ON_ERROR(it, end)

@@ -206,8 +210,8 @@ namespace internal
     {
         if (it == end)
             return NOT_ENOUGH_ROOM;
-
-        code_point = utf8::internal::mask8(*it);
+
+        code_point = static_cast<utfchar32_t>(utf8::internal::mask8(*it));

         UTF8_CPP_INCREASE_AND_RETURN_ON_ERROR(it, end)

@@ -226,7 +230,7 @@ namespace internal
         if (it == end)
            return NOT_ENOUGH_ROOM;

-        code_point = utf8::internal::mask8(*it);
+        code_point = static_cast<utfchar32_t>(utf8::internal::mask8(*it));

         UTF8_CPP_INCREASE_AND_RETURN_ON_ERROR(it, end)

@@ -290,7 +294,7 @@ namespace internal
                 else
                     err = OVERLONG_SEQUENCE;
             }
-            else
+            else
                 err = INVALID_CODE_POINT;
         }

@@ -308,6 +312,10 @@ namespace internal
     template <typename word_iterator>
     utf_error validate_next16(word_iterator& it, word_iterator end, utfchar32_t& code_point)
     {
+        // Make sure the iterator dereferences a large enough type
+        typedef typename std::iterator_traits<word_iterator>::value_type word_type;
+        UTF_CPP_STATIC_ASSERT(sizeof(word_type) >= sizeof(utfchar16_t));
+        // Check the edge case:
         if (it == end)
             return NOT_ENOUGH_ROOM;
         // Save the original value of it so we can go back in case of failure
@@ -326,14 +334,14 @@ namespace internal
                 err = NOT_ENOUGH_ROOM;
             else if (is_lead_surrogate(first_word)) {
                 const utfchar16_t second_word = *it++;
-                if (is_trail_surrogate(second_word)) {
-                    code_point = static_cast<utfchar32_t>(first_word << 10) + second_word + SURROGATE_OFFSET;
+                if (is_trail_surrogate(static_cast<utfchar32_t>(second_word))) {
+                    code_point = static_cast<utfchar32_t>(first_word << 10) +  static_cast<utfchar32_t>(second_word) + SURROGATE_OFFSET;
                     return UTF8_OK;
-                } else
-                    err = INCOMPLETE_SEQUENCE;
-
+                } else
+                    err = INCOMPLETE_SEQUENCE;
+
             } else {
-                err = INVALID_LEAD;
+                err = INVALID_LEAD;
             }
         }
         // error branch
@@ -365,7 +373,7 @@ namespace internal
         }
         return result;
     }
-
+
     // One of the following overloads will be invoked from the API calls

     // A simple (but dangerous) case: the caller appends byte(s) to a char array
@@ -395,6 +403,7 @@ namespace internal
     // the word_type.
     template <typename word_iterator, typename word_type>
     word_iterator append16(utfchar32_t cp, word_iterator result) {
+        UTF_CPP_STATIC_ASSERT(sizeof(word_type) >= sizeof(utfchar16_t));
         if (is_in_bmp(cp))
             *(result++) = static_cast<word_type>(cp);
         else {
@@ -444,7 +453,7 @@ namespace internal
     inline const char* find_invalid(const char* str)
     {
         const char* end = str + std::strlen(str);
-        return find_invalid(str, end);
+        return find_invalid(str, end);
     }

     inline std::size_t find_invalid(const std::string& s)
@@ -484,9 +493,8 @@ namespace internal
     inline bool starts_with_bom(const std::string& s)
     {
         return starts_with_bom(s.begin(), s.end());
-    }
+    }
 } // namespace utf8

 #endif // header guard

-
diff --git a/deps/LIEF/include/LIEF/third-party/internal/utfcpp/utf8/cpp17.h b/deps/LIEF/include/LIEF/third-party/internal/utfcpp/utf8/cpp17.h
index 6e2fcc238af..075873003ef 100644
--- a/deps/LIEF/include/LIEF/third-party/internal/utfcpp/utf8/cpp17.h
+++ b/deps/LIEF/include/LIEF/third-party/internal/utfcpp/utf8/cpp17.h
@@ -89,7 +89,7 @@ namespace utf8
     {
         return starts_with_bom(s.begin(), s.end());
     }
-
+
 } // namespace utf8

 #endif // header guard
diff --git a/deps/LIEF/include/LIEF/third-party/internal/utfcpp/utf8/unchecked.h b/deps/LIEF/include/LIEF/third-party/internal/utfcpp/utf8/unchecked.h
index bf29178939e..173d0302e14 100644
--- a/deps/LIEF/include/LIEF/third-party/internal/utfcpp/utf8/unchecked.h
+++ b/deps/LIEF/include/LIEF/third-party/internal/utfcpp/utf8/unchecked.h
@@ -82,7 +82,7 @@ namespace utf8
         template <typename octet_iterator, typename output_iterator>
         inline output_iterator replace_invalid(octet_iterator start, octet_iterator end, output_iterator out)
         {
-            static const utfchar32_t replacement_marker = utf8::internal::mask16(0xfffd);
+            static const utfchar32_t replacement_marker = static_cast<utfchar32_t>(utf8::internal::mask16(0xfffd));
             return utf8::unchecked::replace_invalid(start, end, out, replacement_marker);
         }

@@ -108,22 +108,22 @@ namespace utf8
                 case 1:
                     break;
                 case 2:
-                    it++;
+                    ++it;
                     cp = ((cp << 6) & 0x7ff) + ((*it) & 0x3f);
                     break;
                 case 3:
-                    ++it;
+                    ++it;
                     cp = ((cp << 12) & 0xffff) + ((utf8::internal::mask8(*it) << 6) & 0xfff);
                     ++it;
                     cp = static_cast<utfchar32_t>(cp + ((*it) & 0x3f));
                     break;
                 case 4:
                     ++it;
-                    cp = ((cp << 18) & 0x1fffff) + ((utf8::internal::mask8(*it) << 12) & 0x3ffff);
+                    cp = ((cp << 18) & 0x1fffff) + ((utf8::internal::mask8(*it) << 12) & 0x3ffff);
                     ++it;
                     cp = static_cast<utfchar32_t>(cp + ((utf8::internal::mask8(*it) << 6) & 0xfff));
                     ++it;
-                    cp = static_cast<utfchar32_t>(cp + ((*it) & 0x3f));
+                    cp = static_cast<utfchar32_t>(cp + ((*it) & 0x3f));
                     break;
             }
             ++it;
@@ -173,7 +173,7 @@ namespace utf8
         distance(octet_iterator first, octet_iterator last)
         {
             typename std::iterator_traits<octet_iterator>::difference_type dist;
-            for (dist = 0; first < last; ++dist)
+            for (dist = 0; first < last; ++dist)
                 utf8::unchecked::next(first);
             return dist;
         }
@@ -247,15 +247,15 @@ namespace utf8
                 octet_iterator temp = it;
                 return utf8::unchecked::next(temp);
             }
-            bool operator == (const iterator& rhs) const
-            {
+            bool operator == (const iterator& rhs) const
+            {
                 return (it == rhs.it);
             }
             bool operator != (const iterator& rhs) const
             {
                 return !(operator == (rhs));
             }
-            iterator& operator ++ ()
+            iterator& operator ++ ()
             {
                 ::std::advance(it, utf8::internal::sequence_length(it));
                 return *this;
@@ -265,7 +265,7 @@ namespace utf8
                 iterator temp = *this;
                 ::std::advance(it, utf8::internal::sequence_length(it));
                 return temp;
-            }
+            }
             iterator& operator -- ()
             {
                 utf8::unchecked::prior(it);
@@ -280,8 +280,7 @@ namespace utf8
           }; // class iterator

     } // namespace utf8::unchecked
-} // namespace utf8
-
+} // namespace utf8

 #endif // header guard

diff --git a/deps/LIEF/include/LIEF/third-party/span.hpp b/deps/LIEF/include/LIEF/third-party/span.hpp
index b834f2a1154..f1b0dc68727 100644
--- a/deps/LIEF/include/LIEF/third-party/span.hpp
+++ b/deps/LIEF/include/LIEF/third-party/span.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2021 - 2025 R. Thomas
+/* Copyright 2021 - 2026 R. Thomas
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -17,9 +17,9 @@
 #include "LIEF/config.h"

 #ifndef LIEF_EXTERNAL_SPAN
-#include <LIEF/third-party/internal/span.hpp>
+  #include <LIEF/third-party/internal/span.hpp>
 #else
-#include <tcb/span.hpp>
+  #include <tcb/span.hpp>
 #endif

 #endif
diff --git a/deps/LIEF/include/LIEF/to_json.hpp b/deps/LIEF/include/LIEF/to_json.hpp
index cf99f65ce28..5e0e4eda37c 100644
--- a/deps/LIEF/include/LIEF/to_json.hpp
+++ b/deps/LIEF/include/LIEF/to_json.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -21,20 +21,20 @@
 #ifdef LIEF_JSON_SUPPORT


-#ifdef LIEF_ELF_SUPPORT
-#include "LIEF/ELF/json.hpp"
-#endif
+  #ifdef LIEF_ELF_SUPPORT
+    #include "LIEF/ELF/json.hpp"
+  #endif

-#ifdef LIEF_PE_SUPPORT
-#include "LIEF/PE/json.hpp"
-#endif
+  #ifdef LIEF_PE_SUPPORT
+    #include "LIEF/PE/json.hpp"
+  #endif

-#include "LIEF/Abstract/json.hpp"
+  #include "LIEF/Abstract/json.hpp"

-#include "LIEF/Abstract.hpp"
-#include "LIEF/ELF.hpp"
-#include "LIEF/PE.hpp"
+  #include "LIEF/Abstract.hpp"
+  #include "LIEF/ELF.hpp"
+  #include "LIEF/PE.hpp"

-#endif // LIEF_JSON_SUPPORT
+#endif

 #endif
diff --git a/deps/LIEF/include/LIEF/types.hpp b/deps/LIEF/include/LIEF/types.hpp
index f75d6ee505e..e719be29b61 100644
--- a/deps/LIEF/include/LIEF/types.hpp
+++ b/deps/LIEF/include/LIEF/types.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -20,9 +20,9 @@
 #include <cstddef>

 #if defined(_MSC_VER)
-#define ALIGNED_(x) __declspec(align(x))
+  #define ALIGNED_(x) __declspec(align(x))
 #elif defined(__GNUC__)
-#define ALIGNED_(x) __attribute__ ((__aligned__(x), __packed__))
+  #define ALIGNED_(x) __attribute__((__aligned__(x), __packed__))
 #endif


diff --git a/deps/LIEF/include/LIEF/utils.hpp b/deps/LIEF/include/LIEF/utils.hpp
index b3c8f3db369..5e278e73fb7 100644
--- a/deps/LIEF/include/LIEF/utils.hpp
+++ b/deps/LIEF/include/LIEF/utils.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomasliefuthp
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -47,6 +47,17 @@ inline uint64_t align_down(uint64_t value, uint64_t align_on) {
   return value;
 }

+inline uint64_t align_with_offset(uint64_t value, uint64_t align_on,
+                                  uint64_t offset) {
+  return align(value - offset, align_on) + offset;
+}
+
+// Align up with alignment being a power of 2
+template<class T>
+constexpr T align_up(T value, T alignment) noexcept {
+  return (value + (alignment - 1)) & ~(alignment - 1);
+}
+
 template<typename T>
 inline constexpr T round(T x) {
   return static_cast<T>(round<uint64_t>(x));
@@ -55,7 +66,7 @@ inline constexpr T round(T x) {

 template<>
 inline uint64_t round<uint64_t>(uint64_t x) {
-  //From http://graphics.stanford.edu/~seander/bithacks.html#RoundUpPowerOf2
+  // From http://graphics.stanford.edu/~seander/bithacks.html#RoundUpPowerOf2
   x--;
   x |= x >> 1;  // handle  2 bit numbers
   x |= x >> 2;  // handle  4 bit numbers
@@ -68,39 +79,41 @@ inline uint64_t round<uint64_t>(uint64_t x) {
 }


-constexpr size_t operator ""_KB(unsigned long long kbs)
-{
-    return 1024LLU * kbs;
+constexpr size_t operator""_KB(unsigned long long kbs) {
+  return 1024LLU * kbs;
 }

-constexpr size_t operator ""_MB(unsigned long long mbs)
-{
-    return 1024LLU * 1024LLU * mbs;
+constexpr size_t operator""_MB(unsigned long long mbs) {
+  return 1024LLU * 1024LLU * mbs;
 }

-constexpr size_t operator ""_GB(unsigned long long gbs)
-{
-    return 1024LLU * 1024LLU * 1024LLU * gbs;
+constexpr size_t operator""_GB(unsigned long long gbs) {
+  return 1024LLU * 1024LLU * 1024LLU * gbs;
 }

 struct lief_version_t {
   uint64_t major = 0;
   uint64_t minor = 0;
   uint64_t patch = 0;
-  uint64_t id    = 0;
+  uint64_t id = 0;

   LIEF_API std::string to_string() const;

-  friend LIEF_API
-    std::ostream& operator<<(std::ostream& os, const lief_version_t& version)
-  {
+  friend LIEF_API std::ostream& operator<<(std::ostream& os,
+                                           const lief_version_t& version) {
     os << version.to_string();
     return os;
   }
 };

+LIEF_API std::string u16tou8(const char16_t* buffer, size_t size,
+                             bool remove_null_char = false);
+
 /// Convert a UTF-16 string to a UTF-8 one
-LIEF_API std::string u16tou8(const std::u16string& string, bool remove_null_char = false);
+inline std::string u16tou8(const std::u16string& string,
+                           bool remove_null_char = false) {
+  return u16tou8(string.data(), string.size(), remove_null_char);
+}

 /// Convert a UTF-8 string to a UTF-16 one
 LIEF_API result<std::u16string> u8tou16(const std::string& string);
@@ -134,21 +147,18 @@ LIEF_API result<std::string> demangle(const std::string& mangled);
 /// | 00 00 00 00 00 00 00 00 00 00 00 00              | ............     |
 /// +---------------------------------------------------------------------+
 /// ```
-LIEF_API std::string dump(
-  const uint8_t* buffer, size_t size, const std::string& title = "",
-  const std::string& prefix = "", size_t limit = 0);
+LIEF_API std::string dump(const uint8_t* buffer, size_t size,
+                          const std::string& title = "",
+                          const std::string& prefix = "", size_t limit = 0);

 inline std::string dump(span<const uint8_t> data, const std::string& title = "",
-                        const std::string& prefix = "", size_t limit = 0)
-{
+                        const std::string& prefix = "", size_t limit = 0) {
   return dump(data.data(), data.size(), title, prefix, limit);
 }

 inline std::string dump(const std::vector<uint8_t>& data,
                         const std::string& title = "",
-                        const std::string& prefix = "",
-                        size_t limit = 0)
-{
+                        const std::string& prefix = "", size_t limit = 0) {
   return dump(data.data(), data.size(), title, prefix, limit);
 }
 }
diff --git a/deps/LIEF/include/LIEF/version.h b/deps/LIEF/include/LIEF/version.h
index 37b0874d7b8..76cc51438fb 100644
--- a/deps/LIEF/include/LIEF/version.h
+++ b/deps/LIEF/include/LIEF/version.h
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -22,13 +22,13 @@
   #define LIEF_NAME "LIEF (Debug)"
 #endif

-#define LIEF_VERSION "0.17.0-"
+#define LIEF_VERSION "1.0.0-"
 #define LIEF_TAGGED 0
 #define LIEF_TAG    ""
 #define LIEF_COMMIT ""

-#define LIEF_VERSION_MAJOR 0
-#define LIEF_VERSION_MINOR 17
+#define LIEF_VERSION_MAJOR 1
+#define LIEF_VERSION_MINOR 0
 #define LIEF_VERSION_PATCH 0

 #define HUMAN_VERSION " v" LIEF_VERSION
diff --git a/deps/LIEF/include/LIEF/version.h.in b/deps/LIEF/include/LIEF/version.h.in
index 4f3e184388e..2386dc2256a 100644
--- a/deps/LIEF/include/LIEF/version.h.in
+++ b/deps/LIEF/include/LIEF/version.h.in
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/deps/LIEF/include/LIEF/visibility.h b/deps/LIEF/include/LIEF/visibility.h
index 1599b0b53d4..93301aa7a8f 100644
--- a/deps/LIEF/include/LIEF/visibility.h
+++ b/deps/LIEF/include/LIEF/visibility.h
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -17,15 +17,19 @@
 #ifndef LIEF_SYMBOL_VISIBILITY_H
 #define LIEF_SYMBOL_VISIBILITY_H

-/* Thanks to https://github.com/aguinet/dragonffi/blob/40f3fecb9530a2ef840f63882c5284ea5e8dc9e8/include/dffi/exports.h */
+#include "LIEF/compiler_attributes.hpp"
+
+/* Thanks to
+ * https://github.com/aguinet/dragonffi/blob/40f3fecb9530a2ef840f63882c5284ea5e8dc9e8/include/dffi/exports.h
+ */
 #if defined _WIN32 || defined __CYGWIN__
   #define LIEF_HELPER_IMPORT __declspec(dllimport)
   #define LIEF_HELPER_EXPORT __declspec(dllexport)
   #define LIEF_HELPER_LOCAL
 #else
-  #define LIEF_HELPER_IMPORT __attribute__ ((visibility ("default")))
-  #define LIEF_HELPER_EXPORT __attribute__ ((visibility ("default")))
-  #define LIEF_HELPER_LOCAL  __attribute__ ((visibility ("hidden")))
+  #define LIEF_HELPER_IMPORT __attribute__((visibility("default")))
+  #define LIEF_HELPER_EXPORT __attribute__((visibility("default")))
+  #define LIEF_HELPER_LOCAL  __attribute__((visibility("hidden")))
 #endif

 #if defined(LIEF_STATIC)
diff --git a/deps/LIEF/include/LIEF/visitor_macros.hpp b/deps/LIEF/include/LIEF/visitor_macros.hpp
index 0974fe970ef..3eaed88c308 100644
--- a/deps/LIEF/include/LIEF/visitor_macros.hpp
+++ b/deps/LIEF/include/LIEF/visitor_macros.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -20,12 +20,12 @@
 // PE Support
 // ==========
 #if defined(LIEF_PE_SUPPORT)
-  #define LIEF_PE_FORWARD(OBJ) \
-    namespace PE   {           \
-    class OBJ;                 \
+  #define LIEF_PE_FORWARD(OBJ)                                                    \
+    namespace PE {                                                                \
+    class OBJ;                                                                    \
     }

-  #define LIEF_PE_VISITABLE(OBJ) \
+  #define LIEF_PE_VISITABLE(OBJ)                                                  \
     virtual void visit(const PE::OBJ&) {}
 #else
   #define LIEF_PE_VISITABLE(OBJ)
@@ -36,11 +36,11 @@
 // ELF Support
 // ===========
 #if defined(LIEF_ELF_SUPPORT)
-  #define LIEF_ELF_FORWARD(OBJ) \
-    namespace ELF   {           \
-    class OBJ;                 \
+  #define LIEF_ELF_FORWARD(OBJ)                                                   \
+    namespace ELF {                                                               \
+    class OBJ;                                                                    \
     }
-  #define LIEF_ELF_VISITABLE(OBJ)         \
+  #define LIEF_ELF_VISITABLE(OBJ)                                                 \
     virtual void visit(const ELF::OBJ&) {}
 #else
   #define LIEF_ELF_FORWARD(OBJ)
@@ -50,11 +50,11 @@
 // MachO Support
 // =============
 #if defined(LIEF_MACHO_SUPPORT)
-  #define LIEF_MACHO_FORWARD(OBJ) \
-    namespace MachO   {           \
-    class OBJ;                 \
+  #define LIEF_MACHO_FORWARD(OBJ)                                                 \
+    namespace MachO {                                                             \
+    class OBJ;                                                                    \
     }
-  #define LIEF_MACHO_VISITABLE(OBJ) \
+  #define LIEF_MACHO_VISITABLE(OBJ)                                               \
     virtual void visit(const MachO::OBJ&) {}
 #else
   #define LIEF_MACHO_FORWARD(OBJ)
@@ -65,11 +65,11 @@
 // OAT Support
 // ===========
 #if defined(LIEF_OAT_SUPPORT)
-  #define LIEF_OAT_FORWARD(OBJ) \
-    namespace OAT   {           \
-    class OBJ;                 \
+  #define LIEF_OAT_FORWARD(OBJ)                                                   \
+    namespace OAT {                                                               \
+    class OBJ;                                                                    \
     }
-  #define LIEF_OAT_VISITABLE(OBJ) \
+  #define LIEF_OAT_VISITABLE(OBJ)                                                 \
     virtual void visit(const OAT::OBJ&) {}
 #else
   #define LIEF_OAT_FORWARD(OBJ)
@@ -80,11 +80,11 @@
 // DEX Support
 // ===========
 #if defined(LIEF_DEX_SUPPORT)
-  #define LIEF_DEX_FORWARD(OBJ) \
-    namespace DEX   {           \
-    class OBJ;                 \
+  #define LIEF_DEX_FORWARD(OBJ)                                                   \
+    namespace DEX {                                                               \
+    class OBJ;                                                                    \
     }
-  #define LIEF_DEX_VISITABLE(OBJ) \
+  #define LIEF_DEX_VISITABLE(OBJ)                                                 \
     virtual void visit(const DEX::OBJ&) {}
 #else
   #define LIEF_DEX_FORWARD(OBJ)
@@ -95,11 +95,11 @@
 // VDEX Support
 // ===========
 #if defined(LIEF_VDEX_SUPPORT)
-  #define LIEF_VDEX_FORWARD(OBJ) \
-    namespace VDEX   {           \
-    class OBJ;                 \
+  #define LIEF_VDEX_FORWARD(OBJ)                                                  \
+    namespace VDEX {                                                              \
+    class OBJ;                                                                    \
     }
-  #define LIEF_VDEX_VISITABLE(OBJ) \
+  #define LIEF_VDEX_VISITABLE(OBJ)                                                \
     virtual void visit(const VDEX::OBJ&) {}
 #else
   #define LIEF_VDEX_FORWARD(OBJ)
@@ -110,11 +110,11 @@
 // ART Support
 // ===========
 #if defined(LIEF_ART_SUPPORT)
-  #define LIEF_ART_FORWARD(OBJ) \
-    namespace ART   {           \
-    class OBJ;                 \
+  #define LIEF_ART_FORWARD(OBJ)                                                   \
+    namespace ART {                                                               \
+    class OBJ;                                                                    \
     }
-  #define LIEF_ART_VISITABLE(OBJ) \
+  #define LIEF_ART_VISITABLE(OBJ)                                                 \
     virtual void visit(const ART::OBJ&) {}
 #else
   #define LIEF_ART_FORWARD(OBJ)
@@ -123,10 +123,9 @@

 // Abstract
 // ========
-#define LIEF_ABSTRACT_FORWARD(OBJ) \
-  class OBJ;
+#define LIEF_ABSTRACT_FORWARD(OBJ) class OBJ;

-#define LIEF_ABSTRACT_VISITABLE(OBJ) \
+#define LIEF_ABSTRACT_VISITABLE(OBJ)                                              \
   virtual void visit(const OBJ&) {}


diff --git a/deps/LIEF/src/ART/EnumToString.cpp b/deps/LIEF/src/ART/EnumToString.cpp
index 99ed84481b3..482d76a0e1c 100644
--- a/deps/LIEF/src/ART/EnumToString.cpp
+++ b/deps/LIEF/src/ART/EnumToString.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -17,112 +17,115 @@
 #include "LIEF/ART/EnumToString.hpp"
 #include <map>

-namespace LIEF {
-namespace ART {
+
+namespace LIEF::ART {

 const char* to_string(STORAGE_MODES e) {
-  const std::map<STORAGE_MODES, const char*> enumStrings {
-    { STORAGE_MODES::STORAGE_UNCOMPRESSED,  "UNCOMPRESSED" },
-    { STORAGE_MODES::STORAGE_LZ4,           "LZ4"          },
-    { STORAGE_MODES::STORAGE_LZ4HC,         "LZ4HC"        },
+  const std::map<STORAGE_MODES, const char*> enumStrings{
+      {STORAGE_MODES::STORAGE_UNCOMPRESSED, "UNCOMPRESSED"},
+      {STORAGE_MODES::STORAGE_LZ4, "LZ4"},
+      {STORAGE_MODES::STORAGE_LZ4HC, "LZ4HC"},
   };
-  auto   it  = enumStrings.find(e);
+  auto it = enumStrings.find(e);
   return it == enumStrings.end() ? "UNDEFINED" : it->second;
 }

 const char* to_string(ART_17::IMAGE_SECTIONS e) {
-  const std::map<ART_17::IMAGE_SECTIONS, const char*> enumStrings {
-    { ART_17::IMAGE_SECTIONS::SECTION_OBJECTS,           "OBJECTS"          },
-    { ART_17::IMAGE_SECTIONS::SECTION_ART_FIELDS,        "ART_FIELDS"       },
-    { ART_17::IMAGE_SECTIONS::SECTION_ART_METHODS,       "ART_METHODS"      },
-    { ART_17::IMAGE_SECTIONS::SECTION_INTERNED_STRINGS,  "INTERNED_STRINGS" },
-    { ART_17::IMAGE_SECTIONS::SECTION_IMAGE_BITMAP,      "IMAGE_BITMAP"     },
+  const std::map<ART_17::IMAGE_SECTIONS, const char*> enumStrings{
+      {ART_17::IMAGE_SECTIONS::SECTION_OBJECTS, "OBJECTS"},
+      {ART_17::IMAGE_SECTIONS::SECTION_ART_FIELDS, "ART_FIELDS"},
+      {ART_17::IMAGE_SECTIONS::SECTION_ART_METHODS, "ART_METHODS"},
+      {ART_17::IMAGE_SECTIONS::SECTION_INTERNED_STRINGS, "INTERNED_STRINGS"},
+      {ART_17::IMAGE_SECTIONS::SECTION_IMAGE_BITMAP, "IMAGE_BITMAP"},
   };
-  auto   it  = enumStrings.find(e);
+  auto it = enumStrings.find(e);
   return it == enumStrings.end() ? "UNDEFINED" : it->second;
 }

 const char* to_string(ART_29::IMAGE_SECTIONS e) {
-  const std::map<ART_29::IMAGE_SECTIONS, const char*> enumStrings {
-    { ART_29::IMAGE_SECTIONS::SECTION_OBJECTS,             "OBJECTS"             },
-    { ART_29::IMAGE_SECTIONS::SECTION_ART_FIELDS,          "ART_FIELDS"          },
-    { ART_29::IMAGE_SECTIONS::SECTION_ART_METHODS,         "ART_METHODS"         },
-    { ART_29::IMAGE_SECTIONS::SECTION_RUNTIME_METHODS,     "RUNTIME_METHODS"     },
-    { ART_29::IMAGE_SECTIONS::SECTION_IMT_CONFLICT_TABLES, "IMT_CONFLICT_TABLES" },
-    { ART_29::IMAGE_SECTIONS::SECTION_DEX_CACHE_ARRAYS,    "DEX_CACHE_ARRAYS"    },
-    { ART_29::IMAGE_SECTIONS::SECTION_INTERNED_STRINGS,    "INTERNED_STRINGS"    },
-    { ART_29::IMAGE_SECTIONS::SECTION_CLASS_TABLE,         "CLASS_TABLE"         },
-    { ART_29::IMAGE_SECTIONS::SECTION_IMAGE_BITMAP,        "IMAGE_BITMAP"        },
+  const std::map<ART_29::IMAGE_SECTIONS, const char*> enumStrings{
+      {ART_29::IMAGE_SECTIONS::SECTION_OBJECTS, "OBJECTS"},
+      {ART_29::IMAGE_SECTIONS::SECTION_ART_FIELDS, "ART_FIELDS"},
+      {ART_29::IMAGE_SECTIONS::SECTION_ART_METHODS, "ART_METHODS"},
+      {ART_29::IMAGE_SECTIONS::SECTION_RUNTIME_METHODS, "RUNTIME_METHODS"},
+      {ART_29::IMAGE_SECTIONS::SECTION_IMT_CONFLICT_TABLES, "IMT_CONFLICT_TABLES"},
+      {ART_29::IMAGE_SECTIONS::SECTION_DEX_CACHE_ARRAYS, "DEX_CACHE_ARRAYS"},
+      {ART_29::IMAGE_SECTIONS::SECTION_INTERNED_STRINGS, "INTERNED_STRINGS"},
+      {ART_29::IMAGE_SECTIONS::SECTION_CLASS_TABLE, "CLASS_TABLE"},
+      {ART_29::IMAGE_SECTIONS::SECTION_IMAGE_BITMAP, "IMAGE_BITMAP"},
   };
-  auto   it  = enumStrings.find(e);
+  auto it = enumStrings.find(e);
   return it == enumStrings.end() ? "UNDEFINED" : it->second;
 }

 const char* to_string(ART_30::IMAGE_SECTIONS e) {
-  const std::map<ART_30::IMAGE_SECTIONS, const char*> enumStrings {
-    { ART_30::IMAGE_SECTIONS::SECTION_OBJECTS,             "OBJECTS"             },
-    { ART_30::IMAGE_SECTIONS::SECTION_ART_FIELDS,          "ART_FIELDS"          },
-    { ART_30::IMAGE_SECTIONS::SECTION_ART_METHODS,         "ART_METHODS"         },
-    { ART_30::IMAGE_SECTIONS::SECTION_RUNTIME_METHODS,     "RUNTIME_METHODS"     },
-    { ART_30::IMAGE_SECTIONS::SECTION_IM_TABLES,           "IM_TABLES"           },
-    { ART_30::IMAGE_SECTIONS::SECTION_IMT_CONFLICT_TABLES, "IMT_CONFLICT_TABLES" },
-    { ART_30::IMAGE_SECTIONS::SECTION_DEX_CACHE_ARRAYS,    "DEX_CACHE_ARRAYS"    },
-    { ART_30::IMAGE_SECTIONS::SECTION_INTERNED_STRINGS,    "INTERNED_STRINGS"    },
-    { ART_30::IMAGE_SECTIONS::SECTION_CLASS_TABLE,         "CLASS_TABLE"         },
-    { ART_30::IMAGE_SECTIONS::SECTION_IMAGE_BITMAP,        "IMAGE_BITMAP"        },
+  const std::map<ART_30::IMAGE_SECTIONS, const char*> enumStrings{
+      {ART_30::IMAGE_SECTIONS::SECTION_OBJECTS, "OBJECTS"},
+      {ART_30::IMAGE_SECTIONS::SECTION_ART_FIELDS, "ART_FIELDS"},
+      {ART_30::IMAGE_SECTIONS::SECTION_ART_METHODS, "ART_METHODS"},
+      {ART_30::IMAGE_SECTIONS::SECTION_RUNTIME_METHODS, "RUNTIME_METHODS"},
+      {ART_30::IMAGE_SECTIONS::SECTION_IM_TABLES, "IM_TABLES"},
+      {ART_30::IMAGE_SECTIONS::SECTION_IMT_CONFLICT_TABLES, "IMT_CONFLICT_TABLES"},
+      {ART_30::IMAGE_SECTIONS::SECTION_DEX_CACHE_ARRAYS, "DEX_CACHE_ARRAYS"},
+      {ART_30::IMAGE_SECTIONS::SECTION_INTERNED_STRINGS, "INTERNED_STRINGS"},
+      {ART_30::IMAGE_SECTIONS::SECTION_CLASS_TABLE, "CLASS_TABLE"},
+      {ART_30::IMAGE_SECTIONS::SECTION_IMAGE_BITMAP, "IMAGE_BITMAP"},
   };
-  auto   it  = enumStrings.find(e);
+  auto it = enumStrings.find(e);
   return it == enumStrings.end() ? "UNDEFINED" : it->second;
 }


 const char* to_string(ART_17::IMAGE_METHODS e) {
-  const std::map<ART_17::IMAGE_METHODS, const char*> enumStrings {
-    { ART_17::IMAGE_METHODS::RESOLUTION_METHOD,         "RESOLUTION_METHOD"          },
-    { ART_17::IMAGE_METHODS::IMT_CONFLICT_METHOD,       "IMT_CONFLICT_METHOD"        },
-    { ART_17::IMAGE_METHODS::IMT_UNIMPLEMENTED_METHOD,  "IMT_UNIMPLEMENTED_METHOD"   },
-    { ART_17::IMAGE_METHODS::CALLEE_SAVE_METHOD,        "CALLEE_SAVE_METHOD"         },
-    { ART_17::IMAGE_METHODS::REFS_ONLY_SAVE_METHOD,     "REFS_ONLY_SAVE_METHOD"      },
-    { ART_17::IMAGE_METHODS::REFS_AND_ARGS_SAVE_METHOD, "REFS_AND_ARGS_SAVE_METHOD"  },
+  const std::map<ART_17::IMAGE_METHODS, const char*> enumStrings{
+      {ART_17::IMAGE_METHODS::RESOLUTION_METHOD, "RESOLUTION_METHOD"},
+      {ART_17::IMAGE_METHODS::IMT_CONFLICT_METHOD, "IMT_CONFLICT_METHOD"},
+      {ART_17::IMAGE_METHODS::IMT_UNIMPLEMENTED_METHOD,
+       "IMT_UNIMPLEMENTED_METHOD"},
+      {ART_17::IMAGE_METHODS::CALLEE_SAVE_METHOD, "CALLEE_SAVE_METHOD"},
+      {ART_17::IMAGE_METHODS::REFS_ONLY_SAVE_METHOD, "REFS_ONLY_SAVE_METHOD"},
+      {ART_17::IMAGE_METHODS::REFS_AND_ARGS_SAVE_METHOD,
+       "REFS_AND_ARGS_SAVE_METHOD"},
   };
-  auto   it  = enumStrings.find(e);
+  auto it = enumStrings.find(e);
   return it == enumStrings.end() ? "UNDEFINED" : it->second;
 }

 const char* to_string(ART_44::IMAGE_METHODS e) {
-  const std::map<ART_44::IMAGE_METHODS, const char*> enumStrings {
-    { ART_44::IMAGE_METHODS::RESOLUTION_METHOD,            "RESOLUTION_METHOD"            },
-    { ART_44::IMAGE_METHODS::IMT_CONFLICT_METHOD,          "IMT_CONFLICT_METHOD"          },
-    { ART_44::IMAGE_METHODS::IMT_UNIMPLEMENTED_METHOD,     "IMT_UNIMPLEMENTED_METHOD"     },
-    { ART_44::IMAGE_METHODS::SAVE_ALL_CALLEE_SAVES_METHOD, "SAVE_ALL_CALLEE_SAVES_METHOD" },
-    { ART_44::IMAGE_METHODS::SAVE_REFS_ONLY_METHOD,        "SAVE_REFS_ONLY_METHOD"        },
-    { ART_44::IMAGE_METHODS::SAVE_REFS_AND_ARGS_METHOD,    "SAVE_REFS_AND_ARGS_METHOD"    },
-    { ART_44::IMAGE_METHODS::SAVE_EVERYTHING_METHOD,       "SAVE_EVERYTHING_METHOD"       },
+  const std::map<ART_44::IMAGE_METHODS, const char*> enumStrings{
+      {ART_44::IMAGE_METHODS::RESOLUTION_METHOD, "RESOLUTION_METHOD"},
+      {ART_44::IMAGE_METHODS::IMT_CONFLICT_METHOD, "IMT_CONFLICT_METHOD"},
+      {ART_44::IMAGE_METHODS::IMT_UNIMPLEMENTED_METHOD,
+       "IMT_UNIMPLEMENTED_METHOD"},
+      {ART_44::IMAGE_METHODS::SAVE_ALL_CALLEE_SAVES_METHOD,
+       "SAVE_ALL_CALLEE_SAVES_METHOD"},
+      {ART_44::IMAGE_METHODS::SAVE_REFS_ONLY_METHOD, "SAVE_REFS_ONLY_METHOD"},
+      {ART_44::IMAGE_METHODS::SAVE_REFS_AND_ARGS_METHOD,
+       "SAVE_REFS_AND_ARGS_METHOD"},
+      {ART_44::IMAGE_METHODS::SAVE_EVERYTHING_METHOD, "SAVE_EVERYTHING_METHOD"},
   };
-  auto   it  = enumStrings.find(e);
+  auto it = enumStrings.find(e);
   return it == enumStrings.end() ? "UNDEFINED" : it->second;
 }

 const char* to_string(ART_17::IMAGE_ROOTS e) {
-  const std::map<ART_17::IMAGE_ROOTS, const char*> enumStrings {
-    { ART_17::IMAGE_ROOTS::DEX_CACHES,    "DEX_CACHES"  },
-    { ART_17::IMAGE_ROOTS::CLASS_ROOTS,   "CLASS_ROOTS" },
+  const std::map<ART_17::IMAGE_ROOTS, const char*> enumStrings{
+      {ART_17::IMAGE_ROOTS::DEX_CACHES, "DEX_CACHES"},
+      {ART_17::IMAGE_ROOTS::CLASS_ROOTS, "CLASS_ROOTS"},
   };
-  auto   it  = enumStrings.find(e);
+  auto it = enumStrings.find(e);
   return it == enumStrings.end() ? "UNDEFINED" : it->second;
 }

 const char* to_string(ART_44::IMAGE_ROOTS e) {
-  const std::map<ART_44::IMAGE_ROOTS, const char*> enumStrings {
-    { ART_44::IMAGE_ROOTS::DEX_CACHES,   "DEX_CACHES"   },
-    { ART_44::IMAGE_ROOTS::CLASS_ROOTS,  "CLASS_ROOTS"  },
-    { ART_44::IMAGE_ROOTS::CLASS_LOADER, "CLASS_LOADER" },
+  const std::map<ART_44::IMAGE_ROOTS, const char*> enumStrings{
+      {ART_44::IMAGE_ROOTS::DEX_CACHES, "DEX_CACHES"},
+      {ART_44::IMAGE_ROOTS::CLASS_ROOTS, "CLASS_ROOTS"},
+      {ART_44::IMAGE_ROOTS::CLASS_LOADER, "CLASS_LOADER"},
   };

-  auto   it  = enumStrings.find(e);
+  auto it = enumStrings.find(e);
   return it == enumStrings.end() ? "UNDEFINED" : it->second;
 }

-} // namespace ART
-} // namespace LIEF
-
+} // namespace LIEF::ART
diff --git a/deps/LIEF/src/ART/File.cpp b/deps/LIEF/src/ART/File.cpp
index fac2c552ec6..7409eb402aa 100644
--- a/deps/LIEF/src/ART/File.cpp
+++ b/deps/LIEF/src/ART/File.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -18,8 +18,8 @@
 #include "LIEF/ART/File.hpp"
 #include "LIEF/ART/hash.hpp"

-namespace LIEF {
-namespace ART {
+
+namespace LIEF::ART {

 File::File() = default;

@@ -36,8 +36,6 @@ void File::accept(Visitor& visitor) const {
 }


-
-
 File::~File() = default;

 std::ostream& operator<<(std::ostream& os, const File& art_file) {
@@ -45,5 +43,4 @@ std::ostream& operator<<(std::ostream& os, const File& art_file) {
   return os;
 }

-} // Namespace ART
-} // Namespace LIEF
+} // namespace LIEF::ART
diff --git a/deps/LIEF/src/ART/Header.cpp b/deps/LIEF/src/ART/Header.cpp
index 0f6a158982b..1ed5093d5ae 100644
--- a/deps/LIEF/src/ART/Header.cpp
+++ b/deps/LIEF/src/ART/Header.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -19,8 +19,8 @@

 #include <iomanip>

-namespace LIEF {
-namespace ART {
+
+namespace LIEF::ART {

 Header::Header(const Header&) = default;
 Header& Header::operator=(const Header&) = default;
@@ -117,50 +117,65 @@ void Header::accept(Visitor& visitor) const {
 }


-
-
 std::ostream& operator<<(std::ostream& os, const Header& hdr) {
   static constexpr size_t WIDTH = 33;
   os << std::hex << std::left << std::showbase;
   os << std::setw(WIDTH) << std::setfill(' ') << "Magic: " << '\n';
-  os << std::setw(WIDTH) << std::setfill(' ') << "Version: " << std::dec << hdr.version() << '\n';
+  os << std::setw(WIDTH) << std::setfill(' ') << "Version: " << std::dec
+     << hdr.version() << '\n';

-  os << std::setw(WIDTH) << std::setfill(' ') << "Image Begin: " << std::hex << hdr.image_begin() << '\n';
-  os << std::setw(WIDTH) << std::setfill(' ') << "Image Size: "  << std::hex << hdr.image_size() << '\n';
+  os << std::setw(WIDTH) << std::setfill(' ') << "Image Begin: " << std::hex
+     << hdr.image_begin() << '\n';
+  os << std::setw(WIDTH) << std::setfill(' ') << "Image Size: " << std::hex
+     << hdr.image_size() << '\n';

-  os << std::setw(WIDTH) << std::setfill(' ') << "Checksum: " << std::hex << hdr.oat_checksum() << '\n';
+  os << std::setw(WIDTH) << std::setfill(' ') << "Checksum: " << std::hex
+     << hdr.oat_checksum() << '\n';

-  os << std::setw(WIDTH) << std::setfill(' ') << "OAT File Begin: " << std::hex << hdr.oat_file_begin() << '\n';
-  os << std::setw(WIDTH) << std::setfill(' ') << "OAT File End:"    << std::hex << hdr.oat_file_end() << '\n';
+  os << std::setw(WIDTH) << std::setfill(' ') << "OAT File Begin: " << std::hex
+     << hdr.oat_file_begin() << '\n';
+  os << std::setw(WIDTH) << std::setfill(' ') << "OAT File End:" << std::hex
+     << hdr.oat_file_end() << '\n';


-  os << std::setw(WIDTH) << std::setfill(' ') << "OAT Data Begin: " << std::hex << hdr.oat_data_begin() << '\n';
-  os << std::setw(WIDTH) << std::setfill(' ') << "OAT Data End:"    << std::hex << hdr.oat_data_end() << '\n';
+  os << std::setw(WIDTH) << std::setfill(' ') << "OAT Data Begin: " << std::hex
+     << hdr.oat_data_begin() << '\n';
+  os << std::setw(WIDTH) << std::setfill(' ') << "OAT Data End:" << std::hex
+     << hdr.oat_data_end() << '\n';

-  os << std::setw(WIDTH) << std::setfill(' ') << "Patch Delta:"    << std::dec << hdr.patch_delta() << '\n';
+  os << std::setw(WIDTH) << std::setfill(' ') << "Patch Delta:" << std::dec
+     << hdr.patch_delta() << '\n';

-  os << std::setw(WIDTH) << std::setfill(' ') << "Pointer Size:"    << std::dec << hdr.pointer_size() << '\n';
+  os << std::setw(WIDTH) << std::setfill(' ') << "Pointer Size:" << std::dec
+     << hdr.pointer_size() << '\n';

-  os << std::setw(WIDTH) << std::setfill(' ') << "Compile pic:"    << std::boolalpha << hdr.compile_pic() << '\n';
+  os << std::setw(WIDTH) << std::setfill(' ') << "Compile pic:" << std::boolalpha
+     << hdr.compile_pic() << '\n';

-  os << std::setw(WIDTH) << std::setfill(' ') << "Number of sections:"    << std::dec << hdr.nb_sections() << '\n';
-  os << std::setw(WIDTH) << std::setfill(' ') << "Number of methods:"    << std::dec << hdr.nb_methods() << '\n';
+  os << std::setw(WIDTH) << std::setfill(' ') << "Number of sections:" << std::dec
+     << hdr.nb_sections() << '\n';
+  os << std::setw(WIDTH) << std::setfill(' ') << "Number of methods:" << std::dec
+     << hdr.nb_methods() << '\n';

-  os << std::setw(WIDTH) << std::setfill(' ') << "Boot Image Begin:"  << std::hex << hdr.boot_image_begin() << '\n';
-  os << std::setw(WIDTH) << std::setfill(' ') << "Boot Image Size:"    << std::hex << hdr.boot_image_size() << '\n';
+  os << std::setw(WIDTH) << std::setfill(' ') << "Boot Image Begin:" << std::hex
+     << hdr.boot_image_begin() << '\n';
+  os << std::setw(WIDTH) << std::setfill(' ') << "Boot Image Size:" << std::hex
+     << hdr.boot_image_size() << '\n';

-  os << std::setw(WIDTH) << std::setfill(' ') << "Boot OAT Begin:"  << std::hex << hdr.boot_oat_begin() << '\n';
-  os << std::setw(WIDTH) << std::setfill(' ') << "Boot OAT Size:"   << std::hex << hdr.boot_oat_size() << '\n';
+  os << std::setw(WIDTH) << std::setfill(' ') << "Boot OAT Begin:" << std::hex
+     << hdr.boot_oat_begin() << '\n';
+  os << std::setw(WIDTH) << std::setfill(' ') << "Boot OAT Size:" << std::hex
+     << hdr.boot_oat_size() << '\n';

-  os << std::setw(WIDTH) << std::setfill(' ') << "Storage Mode:" << to_string(hdr.storage_mode()) << '\n';
+  os << std::setw(WIDTH) << std::setfill(' ')
+     << "Storage Mode:" << to_string(hdr.storage_mode()) << '\n';

-  os << std::setw(WIDTH) << std::setfill(' ') << "Data Size:" << std::hex << hdr.data_size() << '\n';
+  os << std::setw(WIDTH) << std::setfill(' ') << "Data Size:" << std::hex
+     << hdr.data_size() << '\n';

   return os;
 }

 Header::~Header() = default;

-} // Namespace ART
-} // Namespace LIEF
-
+} // namespace LIEF::ART
diff --git a/deps/LIEF/src/ART/Header.tcc b/deps/LIEF/src/ART/Header.tcc
index b27d670fd89..7a4f07d8615 100644
--- a/deps/LIEF/src/ART/Header.tcc
+++ b/deps/LIEF/src/ART/Header.tcc
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -20,13 +20,12 @@
 #include "LIEF/ART/EnumToString.hpp"
 #include "ART/Structures.hpp"

-namespace LIEF {
-namespace ART {
+
+namespace LIEF::ART {

 template<>
 Header::Header(const details::ART_17::header* header) :
   magic_{{'a', 'r', 't', '\n'}},
-  version_{0},
   image_begin_{header->image_begin},
   image_size_{header->image_size},
   oat_checksum_{header->oat_checksum},
@@ -39,36 +38,21 @@ Header::Header(const details::ART_17::header* header) :
   pointer_size_{header->pointer_size},
   compile_pic_{static_cast<bool>(header->compile_pic)},
   nb_sections_{sizeof(header->sections) / sizeof(header->sections[0])},
-  nb_methods_{sizeof(header->image_methods) / sizeof(header->image_methods[0])},
-
-  is_pic_{false},
-  boot_image_begin_{0},
-  boot_image_size_{0},
-  boot_oat_begin_{0},
-  boot_oat_size_{0},
-  storage_mode_{STORAGE_MODES::STORAGE_UNCOMPRESSED},
-  data_size_{0}
-{
-  std::copy(
-      std::begin(header->magic),
-      std::end(header->magic),
-      std::begin(magic_)
-  );
-  if (std::all_of(
-        header->version,
-        header->version + sizeof(header->version) - 1,
-        ::isdigit))
+  nb_methods_{sizeof(header->image_methods) / sizeof(header->image_methods[0])} {
+  std::copy(std::begin(header->magic), std::end(header->magic),
+            std::begin(magic_));
+  if (std::all_of(header->version, header->version + sizeof(header->version) - 1,
+                  ::isdigit))
   {
-    version_ = static_cast<uint32_t>(
-        std::stoi(std::string{reinterpret_cast<const char*>(header->version), sizeof(header->version)}));
+    version_ = static_cast<uint32_t>(std::stoi(std::string{
+        reinterpret_cast<const char*>(header->version), sizeof(header->version)
+    }));
   }
-
 }

 template<class T>
 Header::Header(const T* header) :
   magic_{{'a', 'r', 't', '\n'}},
-  version_{0},
   image_begin_{header->image_begin},
   image_size_{header->image_size},
   oat_checksum_{header->oat_checksum},
@@ -88,25 +72,18 @@ Header::Header(const T* header) :
   boot_oat_begin_{header->boot_oat_begin},
   boot_oat_size_{header->boot_oat_size},
   storage_mode_{static_cast<STORAGE_MODES>(header->storage_mode)},
-  data_size_{header->data_size}
-{
-  std::copy(
-      std::begin(header->magic),
-      std::end(header->magic),
-      std::begin(magic_)
-  );
-  if (std::all_of(
-        header->version,
-        header->version + sizeof(header->version) - 1,
-        ::isdigit))
+  data_size_{header->data_size} {
+  std::copy(std::begin(header->magic), std::end(header->magic),
+            std::begin(magic_));
+  if (std::all_of(header->version, header->version + sizeof(header->version) - 1,
+                  ::isdigit))
   {
-    version_ = static_cast<uint32_t>(
-        std::stoi(std::string{reinterpret_cast<const char*>(header->version), sizeof(header->version)}));
+    version_ = static_cast<uint32_t>(std::stoi(std::string{
+        reinterpret_cast<const char*>(header->version), sizeof(header->version)
+    }));
   }

   LIEF_DEBUG("{}", to_string(storage_mode_));
-
 }

-} // namespace ART
-} // namespace LIEF
+} // namespace LIEF::ART
diff --git a/deps/LIEF/src/ART/Parser.cpp b/deps/LIEF/src/ART/Parser.cpp
index 2113d51fe36..d2c0c27de44 100644
--- a/deps/LIEF/src/ART/Parser.cpp
+++ b/deps/LIEF/src/ART/Parser.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -28,11 +28,11 @@
 #include "Header.tcc"
 #include "Parser.tcc"

-namespace LIEF {
-namespace ART {
+
+namespace LIEF::ART {

 Parser::~Parser() = default;
-Parser::Parser()  = default;
+Parser::Parser() = default;

 std::unique_ptr<File> Parser::parse(const std::string& filename) {
   if (!is_art(filename)) {
@@ -46,7 +46,8 @@ std::unique_ptr<File> Parser::parse(const std::string& filename) {
   return std::move(parser.file_);
 }

-std::unique_ptr<File> Parser::parse(std::vector<uint8_t> data, const std::string& name) {
+std::unique_ptr<File> Parser::parse(std::vector<uint8_t> data,
+                                    const std::string& name) {
   if (!is_art(data)) {
     LIEF_ERR("'{}' is not an ART file", name);
     return nullptr;
@@ -61,16 +62,13 @@ std::unique_ptr<File> Parser::parse(std::vector<uint8_t> data, const std::string

 Parser::Parser(std::vector<uint8_t> data) :
   file_{new File{}},
-  stream_{std::make_unique<VectorStream>(std::move(data))}
-{
-}
+  stream_{std::make_unique<VectorStream>(std::move(data))} {}

 Parser::Parser(const std::string& file) :
-  file_{new File{}}
-{
+  file_{new File{}} {
   auto stream = VectorStream::from_file(file);
   if (!stream) {
-    LIEF_ERR("Can't create the stream");
+    LIEF_ERR("Failed to create stream");
     return;
   }
   stream_ = std::make_unique<VectorStream>(std::move(*stream));
@@ -104,5 +102,4 @@ void Parser::init(const std::string& /*name*/, art_version_t version) {
   }
 }

-} // namespace ART
-} // namespace LIEF
+} // namespace LIEF::ART
diff --git a/deps/LIEF/src/ART/Parser.tcc b/deps/LIEF/src/ART/Parser.tcc
index e5af1957b7e..004dfc9cf76 100644
--- a/deps/LIEF/src/ART/Parser.tcc
+++ b/deps/LIEF/src/ART/Parser.tcc
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -20,8 +20,8 @@
 #include "LIEF/ART/File.hpp"
 #include "LIEF/ART/EnumToString.hpp"

-namespace LIEF {
-namespace ART {
+
+namespace LIEF::ART {

 template<typename ART_T>
 void Parser::parse_file() {
@@ -40,8 +40,9 @@ size_t Parser::parse_header() {
   const auto hdr = std::move(*res_hdr);
   imagebase_ = hdr.image_begin;

-  if (hdr.pointer_size != sizeof(uint32_t) && hdr.pointer_size != sizeof(uint64_t)) {
-    LIEF_WARN("ART Header pointer_size is not consistent");
+  if (hdr.pointer_size != sizeof(uint32_t) && hdr.pointer_size != sizeof(uint64_t))
+  {
+    LIEF_WARN("Inconsistent ART header pointer size");
     return 0;
   }
   file_->header_ = &hdr;
@@ -288,7 +289,7 @@ void Parser::parse_methods() {
   const art_header_t* hdr = reinterpret_cast<const art_header_t*>(stream_->read(0, sizeof(art_header_t)));

   uint32_t nb_methods = file_->header().nb_methods_;
-  //TODO check with ART::nb_methods... (more secure)
+  // TODO: check against ART::nb_methods for extra validation
   for (size_t i = 0; i < nb_methods; ++i) {
     IMAGE_METHODS type = static_cast<IMAGE_METHODS>(i);
     uint64_t address = hdr->image_methods[i];
@@ -333,4 +334,3 @@ void Parser::parse_interned_strings(size_t offset, size_t size) {
 #endif

 }
-}
diff --git a/deps/LIEF/src/ART/Structures.cpp b/deps/LIEF/src/ART/Structures.cpp
index ae2270b5e1d..c03df28a800 100644
--- a/deps/LIEF/src/ART/Structures.cpp
+++ b/deps/LIEF/src/ART/Structures.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -15,8 +15,8 @@
  */
 #include "ART/Structures.hpp"

-namespace LIEF {
-namespace ART {
+
+namespace LIEF::ART {

 constexpr art_version_t details::ART17::art_version;
 constexpr art_version_t details::ART29::art_version;
@@ -32,5 +32,4 @@ constexpr uint32_t details::ART44::nb_image_roots;
 constexpr uint32_t details::ART46::nb_image_roots;
 constexpr uint32_t details::ART56::nb_image_roots;

-} // Namespace ART
-} // Namespace LIEF
+} // namespace LIEF::ART
diff --git a/deps/LIEF/src/ART/Structures.hpp b/deps/LIEF/src/ART/Structures.hpp
index d02a473032e..a4bc31e0fc4 100644
--- a/deps/LIEF/src/ART/Structures.hpp
+++ b/deps/LIEF/src/ART/Structures.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -38,13 +38,13 @@
 // Android 9.0.0 ART 56
 // ======================

-namespace LIEF {
+
 /// Namespace related to the LIEF's ART module
-namespace ART {

-namespace details {

-static constexpr uint8_t art_magic[]       = { 'a', 'r', 't', '\n' };
+namespace LIEF::ART::details {
+
+static constexpr uint8_t art_magic[] = {'a', 'r', 't', '\n'};
 static constexpr art_version_t art_version = 0;

 struct ALIGNED_(4) image_section_t {
@@ -61,9 +61,9 @@ struct ALIGNED_(4) image_section_t {
 namespace ART_17 {
 static constexpr art_version_t art_version = 17;

-static constexpr uint32_t nb_sections      = 5;
+static constexpr uint32_t nb_sections = 5;
 static constexpr uint32_t nb_image_methods = 6;
-static constexpr uint32_t nb_image_roots   = 2;
+static constexpr uint32_t nb_image_roots = 2;

 struct ALIGNED_(4) header {
   uint8_t magic[4];
@@ -94,7 +94,8 @@ struct ALIGNED_(4) header {
   // The total delta that this image has been patched.
   int32_t patch_delta;

-  // Absolute address of an Object[] of objects needed to reinitialize from an image.
+  // Absolute address of an Object[] of objects needed to reinitialize from an
+  // image.
   uint32_t image_roots;

   // Pointer size, this affects the size of the ArtMethods.
@@ -108,7 +109,6 @@ struct ALIGNED_(4) header {

   // Image methods.
   uint64_t image_methods[nb_image_methods];
-
 };


@@ -122,9 +122,9 @@ namespace ART_29 {

 static constexpr art_version_t art_version = 29;

-static constexpr uint32_t nb_sections      = 9;
+static constexpr uint32_t nb_sections = 9;
 static constexpr uint32_t nb_image_methods = 6;
-static constexpr uint32_t nb_image_roots   = 2;
+static constexpr uint32_t nb_image_roots = 2;

 struct ALIGNED_(4) header {

@@ -164,7 +164,8 @@ struct ALIGNED_(4) header {
   // The total delta that this image has been patched.
   int32_t patch_delta;

-  // Absolute address of an Object[] of objects needed to reinitialize from an image.
+  // Absolute address of an Object[] of objects needed to reinitialize from an
+  // image.
   uint32_t image_roots;

   // Pointer size, this affects the size of the ArtMethods.
@@ -173,9 +174,9 @@ struct ALIGNED_(4) header {
   // Boolean (0 or 1) to denote if the image was compiled with --compile-pic option
   uint32_t compile_pic;

-  // Boolean (0 or 1) to denote if the image can be mapped at a random address, this only refers to
-  // the .art file. Currently, app oat files do not depend on their app image. There are no pointers
-  // from the app oat code to the app image.
+  // Boolean (0 or 1) to denote if the image can be mapped at a random address,
+  // this only refers to the .art file. Currently, app oat files do not depend on
+  // their app image. There are no pointers from the app oat code to the app image.
   uint32_t is_pic;

   // Image sections
@@ -187,8 +188,8 @@ struct ALIGNED_(4) header {
   // Storage method for the image, the image may be compressed.
   uint32_t storage_mode;

-  // Data size for the image data excluding the bitmap and the header. For compressed images, this
-  // is the compressed size in the file.
+  // Data size for the image data excluding the bitmap and the header. For
+  // compressed images, this is the compressed size in the file.
   uint32_t data_size;
 };

@@ -205,9 +206,9 @@ namespace ART_30 {

 static constexpr art_version_t art_version = 30;

-static constexpr uint32_t nb_sections      = 10;
+static constexpr uint32_t nb_sections = 10;
 static constexpr uint32_t nb_image_methods = 6;
-static constexpr uint32_t nb_image_roots   = 2;
+static constexpr uint32_t nb_image_roots = 2;


 struct ALIGNED_(4) header {
@@ -248,7 +249,8 @@ struct ALIGNED_(4) header {
   // The total delta that this image has been patched.
   int32_t patch_delta;

-  // Absolute address of an Object[] of objects needed to reinitialize from an image.
+  // Absolute address of an Object[] of objects needed to reinitialize from an
+  // image.
   uint32_t image_roots;

   // Pointer size, this affects the size of the ArtMethods.
@@ -257,9 +259,9 @@ struct ALIGNED_(4) header {
   // Boolean (0 or 1) to denote if the image was compiled with --compile-pic option
   uint32_t compile_pic;

-  // Boolean (0 or 1) to denote if the image can be mapped at a random address, this only refers to
-  // the .art file. Currently, app oat files do not depend on their app image. There are no pointers
-  // from the app oat code to the app image.
+  // Boolean (0 or 1) to denote if the image can be mapped at a random address,
+  // this only refers to the .art file. Currently, app oat files do not depend on
+  // their app image. There are no pointers from the app oat code to the app image.
   uint32_t is_pic;

   // Image sections
@@ -271,8 +273,8 @@ struct ALIGNED_(4) header {
   // Storage method for the image, the image may be compressed.
   uint32_t storage_mode;

-  // Data size for the image data excluding the bitmap and the header. For compressed images, this
-  // is the compressed size in the file.
+  // Data size for the image data excluding the bitmap and the header. For
+  // compressed images, this is the compressed size in the file.
   uint32_t data_size;
 };

@@ -287,9 +289,9 @@ namespace ART_44 {

 static constexpr art_version_t art_version = 44;

-static constexpr uint32_t nb_sections      = 10;
+static constexpr uint32_t nb_sections = 10;
 static constexpr uint32_t nb_image_methods = 7;
-static constexpr uint32_t nb_image_roots   = 3;
+static constexpr uint32_t nb_image_roots = 3;


 struct ALIGNED_(4) header {
@@ -330,7 +332,8 @@ struct ALIGNED_(4) header {
   // The total delta that this image has been patched.
   int32_t patch_delta;

-  // Absolute address of an Object[] of objects needed to reinitialize from an image.
+  // Absolute address of an Object[] of objects needed to reinitialize from an
+  // image.
   uint32_t image_roots;

   // Pointer size, this affects the size of the ArtMethods.
@@ -339,9 +342,9 @@ struct ALIGNED_(4) header {
   // Boolean (0 or 1) to denote if the image was compiled with --compile-pic option
   uint32_t compile_pic;

-  // Boolean (0 or 1) to denote if the image can be mapped at a random address, this only refers to
-  // the .art file. Currently, app oat files do not depend on their app image. There are no pointers
-  // from the app oat code to the app image.
+  // Boolean (0 or 1) to denote if the image can be mapped at a random address,
+  // this only refers to the .art file. Currently, app oat files do not depend on
+  // their app image. There are no pointers from the app oat code to the app image.
   uint32_t is_pic;

   // Image sections
@@ -353,8 +356,8 @@ struct ALIGNED_(4) header {
   // Storage method for the image, the image may be compressed.
   uint32_t storage_mode;

-  // Data size for the image data excluding the bitmap and the header. For compressed images, this
-  // is the compressed size in the file.
+  // Data size for the image data excluding the bitmap and the header. For
+  // compressed images, this is the compressed size in the file.
   uint32_t data_size;
 };

@@ -369,7 +372,7 @@ struct ALIGNED_(4) header {
 namespace ART_46 {

 static constexpr art_version_t art_version = 46;
-static constexpr uint32_t nb_image_roots   = 3;
+static constexpr uint32_t nb_image_roots = 3;

 // No changes in the structure
 using header = ART_44::header;
@@ -383,8 +386,8 @@ using header = ART_44::header;
 namespace ART_56 {

 static constexpr art_version_t art_version = 56;
-static constexpr uint32_t nb_sections      = 10;
-static constexpr uint32_t nb_image_roots   = 3;
+static constexpr uint32_t nb_sections = 10;
+static constexpr uint32_t nb_image_roots = 3;
 static constexpr uint32_t nb_image_methods = 9; // Android 9.0.0 - +=2
 struct ALIGNED_(4) header {

@@ -424,7 +427,8 @@ struct ALIGNED_(4) header {
   // The total delta that this image has been patched.
   int32_t patch_delta;

-  // Absolute address of an Object[] of objects needed to reinitialize from an image.
+  // Absolute address of an Object[] of objects needed to reinitialize from an
+  // image.
   uint32_t image_roots;

   // Pointer size, this affects the size of the ArtMethods.
@@ -433,9 +437,9 @@ struct ALIGNED_(4) header {
   // Boolean (0 or 1) to denote if the image was compiled with --compile-pic option
   uint32_t compile_pic;

-  // Boolean (0 or 1) to denote if the image can be mapped at a random address, this only refers to
-  // the .art file. Currently, app oat files do not depend on their app image. There are no pointers
-  // from the app oat code to the app image.
+  // Boolean (0 or 1) to denote if the image can be mapped at a random address,
+  // this only refers to the .art file. Currently, app oat files do not depend on
+  // their app image. There are no pointers from the app oat code to the app image.
   uint32_t is_pic;

   // Image sections
@@ -447,8 +451,8 @@ struct ALIGNED_(4) header {
   // Storage method for the image, the image may be compressed.
   uint32_t storage_mode;

-  // Data size for the image data excluding the bitmap and the header. For compressed images, this
-  // is the compressed size in the file.
+  // Data size for the image data excluding the bitmap and the header. For
+  // compressed images, this is the compressed size in the file.
   uint32_t data_size;
 };

@@ -458,13 +462,13 @@ struct ALIGNED_(4) header {

 class ART17 {
   public:
-  using art_header_t                         = ART_17::header;
+  using art_header_t = ART_17::header;
   static constexpr art_version_t art_version = ART_17::art_version;
-  static constexpr uint32_t nb_image_roots   = ART_17::nb_image_roots;
+  static constexpr uint32_t nb_image_roots = ART_17::nb_image_roots;

-  using IMAGE_SECTIONS                       = ART::ART_17::IMAGE_SECTIONS;
-  using IMAGE_METHODS                        = ART::ART_17::IMAGE_METHODS;
-  using IMAGE_ROOTS                          = ART::ART_17::IMAGE_ROOTS;
+  using IMAGE_SECTIONS = ART::ART_17::IMAGE_SECTIONS;
+  using IMAGE_METHODS = ART::ART_17::IMAGE_METHODS;
+  using IMAGE_ROOTS = ART::ART_17::IMAGE_ROOTS;

   // =====================
   // Java
@@ -487,13 +491,13 @@ class ART17 {

 class ART29 {
   public:
-  using art_header_t                         = ART_29::header;
+  using art_header_t = ART_29::header;
   static constexpr art_version_t art_version = ART_29::art_version;
-  static constexpr uint32_t nb_image_roots   = ART_29::nb_image_roots;
+  static constexpr uint32_t nb_image_roots = ART_29::nb_image_roots;

-  using IMAGE_SECTIONS                       = ART::ART_29::IMAGE_SECTIONS;
-  using IMAGE_METHODS                        = ART::ART_29::IMAGE_METHODS;
-  using IMAGE_ROOTS                          = ART::ART_29::IMAGE_ROOTS;
+  using IMAGE_SECTIONS = ART::ART_29::IMAGE_SECTIONS;
+  using IMAGE_METHODS = ART::ART_29::IMAGE_METHODS;
+  using IMAGE_ROOTS = ART::ART_29::IMAGE_ROOTS;

   // =====================
   // Java
@@ -516,13 +520,13 @@ class ART29 {

 class ART30 {
   public:
-  using art_header_t                         = ART_30::header;
+  using art_header_t = ART_30::header;
   static constexpr art_version_t art_version = ART_30::art_version;
-  static constexpr uint32_t nb_image_roots   = ART_30::nb_image_roots;
+  static constexpr uint32_t nb_image_roots = ART_30::nb_image_roots;

-  using IMAGE_SECTIONS                       = ART::ART_30::IMAGE_SECTIONS;
-  using IMAGE_METHODS                        = ART::ART_30::IMAGE_METHODS;
-  using IMAGE_ROOTS                          = ART::ART_30::IMAGE_ROOTS;
+  using IMAGE_SECTIONS = ART::ART_30::IMAGE_SECTIONS;
+  using IMAGE_METHODS = ART::ART_30::IMAGE_METHODS;
+  using IMAGE_ROOTS = ART::ART_30::IMAGE_ROOTS;

   // =====================
   // Java
@@ -545,13 +549,13 @@ class ART30 {

 class ART44 {
   public:
-  using art_header_t                         = ART_44::header;
+  using art_header_t = ART_44::header;
   static constexpr art_version_t art_version = ART_44::art_version;
-  static constexpr uint32_t nb_image_roots   = ART_44::nb_image_roots;
+  static constexpr uint32_t nb_image_roots = ART_44::nb_image_roots;

-  using IMAGE_SECTIONS                       = ART::ART_44::IMAGE_SECTIONS;
-  using IMAGE_METHODS                        = ART::ART_44::IMAGE_METHODS;
-  using IMAGE_ROOTS                          = ART::ART_44::IMAGE_ROOTS;
+  using IMAGE_SECTIONS = ART::ART_44::IMAGE_SECTIONS;
+  using IMAGE_METHODS = ART::ART_44::IMAGE_METHODS;
+  using IMAGE_ROOTS = ART::ART_44::IMAGE_ROOTS;

   // =====================
   // Java
@@ -574,13 +578,13 @@ class ART44 {

 class ART46 {
   public:
-  using art_header_t                         = ART_46::header;
+  using art_header_t = ART_46::header;
   static constexpr art_version_t art_version = ART_46::art_version;
-  static constexpr uint32_t nb_image_roots   = ART_46::nb_image_roots;
+  static constexpr uint32_t nb_image_roots = ART_46::nb_image_roots;

-  using IMAGE_SECTIONS                       = ART::ART_46::IMAGE_SECTIONS;
-  using IMAGE_METHODS                        = ART::ART_46::IMAGE_METHODS;
-  using IMAGE_ROOTS                          = ART::ART_46::IMAGE_ROOTS;
+  using IMAGE_SECTIONS = ART::ART_46::IMAGE_SECTIONS;
+  using IMAGE_METHODS = ART::ART_46::IMAGE_METHODS;
+  using IMAGE_ROOTS = ART::ART_46::IMAGE_ROOTS;

   // =====================
   // Java
@@ -603,13 +607,13 @@ class ART46 {

 class ART56 {
   public:
-  using art_header_t                         = ART_56::header;
+  using art_header_t = ART_56::header;
   static constexpr art_version_t art_version = ART_56::art_version;
-  static constexpr uint32_t nb_image_roots   = ART_56::nb_image_roots;
+  static constexpr uint32_t nb_image_roots = ART_56::nb_image_roots;

-  using IMAGE_SECTIONS                       = ART::ART_46::IMAGE_SECTIONS;
-  using IMAGE_METHODS                        = ART::ART_46::IMAGE_METHODS;
-  using IMAGE_ROOTS                          = ART::ART_46::IMAGE_ROOTS;
+  using IMAGE_SECTIONS = ART::ART_46::IMAGE_SECTIONS;
+  using IMAGE_METHODS = ART::ART_46::IMAGE_METHODS;
+  using IMAGE_ROOTS = ART::ART_46::IMAGE_ROOTS;

   // =====================
   // Java
@@ -631,7 +635,6 @@ class ART56 {
 };

 }
-} /* end namespace ART */
-} /* end namespace LIEF */
-#endif

+
+#endif
diff --git a/deps/LIEF/src/ART/hash.cpp b/deps/LIEF/src/ART/hash.cpp
index aabeb27c4f6..9dbca820881 100644
--- a/deps/LIEF/src/ART/hash.cpp
+++ b/deps/LIEF/src/ART/hash.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -18,8 +18,8 @@
 #include "LIEF/ART/File.hpp"
 #include "LIEF/ART/Header.hpp"

-namespace LIEF {
-namespace ART {
+
+namespace LIEF::ART {

 Hash::~Hash() = default;

@@ -57,7 +57,4 @@ void Hash::visit(const Header& header) {
 }


-
-} // namespace ART
-} // namespace LIEF
-
+} // namespace LIEF::ART
diff --git a/deps/LIEF/src/ART/json.cpp b/deps/LIEF/src/ART/json.cpp
index cfcf2867a62..25684ed20d8 100644
--- a/deps/LIEF/src/ART/json.cpp
+++ b/deps/LIEF/src/ART/json.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -18,39 +18,37 @@
 #include "ART/json_internal.hpp"
 #include "LIEF/ART.hpp"

-namespace LIEF {
-namespace ART {
+
+namespace LIEF::ART {

 void JsonVisitor::visit(const File& file) {
   JsonVisitor header_visitor;
   header_visitor(file.header());
-  node_["header"]                      = header_visitor.get();
+  node_["header"] = header_visitor.get();
 }

 void JsonVisitor::visit(const Header& header) {
-  node_["magic"]            = header.magic();
-  node_["version"]          = header.version();
-  node_["image_begin"]      = header.image_begin();
-  node_["image_size"]       = header.image_size();
-  node_["oat_checksum"]     = header.oat_checksum();
-  node_["oat_file_begin"]   = header.oat_file_begin();
-  node_["oat_file_end"]     = header.oat_file_end();
-  node_["oat_data_begin"]   = header.oat_data_begin();
-  node_["oat_data_end"]     = header.oat_data_end();
-  node_["patch_delta"]      = header.patch_delta();
-  node_["image_roots"]      = header.image_roots();
-  node_["pointer_size"]     = header.pointer_size();
-  node_["compile_pic"]      = header.compile_pic();
-  node_["nb_sections"]      = header.nb_sections();
-  node_["nb_methods"]       = header.nb_methods();
+  node_["magic"] = header.magic();
+  node_["version"] = header.version();
+  node_["image_begin"] = header.image_begin();
+  node_["image_size"] = header.image_size();
+  node_["oat_checksum"] = header.oat_checksum();
+  node_["oat_file_begin"] = header.oat_file_begin();
+  node_["oat_file_end"] = header.oat_file_end();
+  node_["oat_data_begin"] = header.oat_data_begin();
+  node_["oat_data_end"] = header.oat_data_end();
+  node_["patch_delta"] = header.patch_delta();
+  node_["image_roots"] = header.image_roots();
+  node_["pointer_size"] = header.pointer_size();
+  node_["compile_pic"] = header.compile_pic();
+  node_["nb_sections"] = header.nb_sections();
+  node_["nb_methods"] = header.nb_methods();
   node_["boot_image_begin"] = header.boot_image_begin();
-  node_["boot_image_size"]  = header.boot_image_size();
-  node_["boot_oat_begin"]   = header.boot_oat_begin();
-  node_["boot_oat_size"]    = header.boot_oat_size();
-  node_["storage_mode"]     = to_string(header.storage_mode());
-  node_["data_size"]        = header.data_size();
+  node_["boot_image_size"] = header.boot_image_size();
+  node_["boot_oat_begin"] = header.boot_oat_begin();
+  node_["boot_oat_size"] = header.boot_oat_size();
+  node_["storage_mode"] = to_string(header.storage_mode());
+  node_["data_size"] = header.data_size();
 }

-} // namespace ART
-} // namespace LIEF
-
+} // namespace LIEF::ART
diff --git a/deps/LIEF/src/ART/json_api.cpp b/deps/LIEF/src/ART/json_api.cpp
index 3b912dfef01..84fb2722fd8 100644
--- a/deps/LIEF/src/ART/json_api.cpp
+++ b/deps/LIEF/src/ART/json_api.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -18,13 +18,13 @@
 #include "LIEF/ART/json.hpp"

 #ifdef LIEF_JSON_SUPPORT
-#include "ART/json_internal.hpp"
+  #include "ART/json_internal.hpp"
 #endif

 #include "LIEF/ART.hpp"

-namespace LIEF {
-namespace ART {
+
+namespace LIEF::ART {

 std::string to_json(const Object& v) {
 #ifdef LIEF_JSON_SUPPORT
@@ -37,5 +37,4 @@ std::string to_json(const Object& v) {
 #endif
 }

-} // namespace VDEX
-} // namespace LIEF
+} // namespace LIEF::ART
diff --git a/deps/LIEF/src/ART/json_internal.hpp b/deps/LIEF/src/ART/json_internal.hpp
index f05204a55db..0d71258185d 100644
--- a/deps/LIEF/src/ART/json_internal.hpp
+++ b/deps/LIEF/src/ART/json_internal.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -19,18 +19,18 @@
 #include "LIEF/visibility.h"
 #include "visitors/json.hpp"

-namespace LIEF {
-namespace ART {
+
+namespace LIEF::ART {

 class JsonVisitor : public LIEF::JsonVisitor {
   public:
   using LIEF::JsonVisitor::JsonVisitor;

   public:
-  void visit(const File& header)   override;
+  void visit(const File& header) override;
   void visit(const Header& header) override;
 };

 }
-}
+
 #endif
diff --git a/deps/LIEF/src/ART/utils.cpp b/deps/LIEF/src/ART/utils.cpp
index 161ec4d0cfe..42ed9341e64 100644
--- a/deps/LIEF/src/ART/utils.cpp
+++ b/deps/LIEF/src/ART/utils.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -20,8 +20,10 @@
 #include "LIEF/ART/utils.hpp"
 #include "ART/Structures.hpp"

-namespace LIEF {
-namespace ART {
+#include "internal_utils.hpp"
+
+
+namespace LIEF::ART {

 inline bool is_art(BinaryStream& stream) {
   using magic_t = std::array<char, sizeof(details::art_magic)>;
@@ -42,19 +44,13 @@ inline art_version_t version(BinaryStream& stream) {
   stream.increment_pos(sizeof(details::art_magic));
   if (auto ver_res = stream.peek<version_t>()) {
     const auto version = *ver_res;
-    const bool are_digits = std::all_of(std::begin(version), std::end(version),
-        [] (char c) { return c == 0 || ::isdigit(c); });
-    if (!are_digits) {
-      return 0;
-    }
-    std::string version_str(std::begin(version), std::end(version));
-    return static_cast<art_version_t>(std::stoul(version_str));
+    return static_cast<art_version_t>(parse_android_version(version.data(),
+                                                            version.size()));
   }
   return 0;
 }


-
 bool is_art(const std::string& file) {
   if (auto stream = FileStream::from_file(file)) {
     return is_art(*stream);
@@ -84,19 +80,21 @@ art_version_t version(const std::vector<uint8_t>& raw) {
 }

 LIEF::Android::ANDROID_VERSIONS android_version(art_version_t version) {
-  static const std::map<art_version_t, LIEF::Android::ANDROID_VERSIONS> oat2android {
-    { 17, LIEF::Android::ANDROID_VERSIONS::VERSION_601 },
-    { 29, LIEF::Android::ANDROID_VERSIONS::VERSION_700 },
-    { 30, LIEF::Android::ANDROID_VERSIONS::VERSION_712 },
-    { 44, LIEF::Android::ANDROID_VERSIONS::VERSION_800 },
-    { 46, LIEF::Android::ANDROID_VERSIONS::VERSION_810 },
-    { 56, LIEF::Android::ANDROID_VERSIONS::VERSION_900 },
+  static const std::map<art_version_t, LIEF::Android::ANDROID_VERSIONS>
+      oat2android{
+          {17, LIEF::Android::ANDROID_VERSIONS::VERSION_601},
+          {29, LIEF::Android::ANDROID_VERSIONS::VERSION_700},
+          {30, LIEF::Android::ANDROID_VERSIONS::VERSION_712},
+          {44, LIEF::Android::ANDROID_VERSIONS::VERSION_800},
+          {46, LIEF::Android::ANDROID_VERSIONS::VERSION_810},
+          {56, LIEF::Android::ANDROID_VERSIONS::VERSION_900},

   };
-  auto   it  = oat2android.lower_bound(version);
-  return it == oat2android.end() ? LIEF::Android::ANDROID_VERSIONS::VERSION_UNKNOWN : it->second;
+  auto it = oat2android.lower_bound(version);
+  return it == oat2android.end() ?
+             LIEF::Android::ANDROID_VERSIONS::VERSION_UNKNOWN :
+             it->second;
 }


 }
-}
diff --git a/deps/LIEF/src/Abstract/Binary.cpp b/deps/LIEF/src/Abstract/Binary.cpp
index c4d68f5355e..b165b42f369 100644
--- a/deps/LIEF/src/Abstract/Binary.cpp
+++ b/deps/LIEF/src/Abstract/Binary.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -32,20 +32,18 @@
 namespace LIEF {

 Binary::Binary(FORMATS fmt) :
-  format_{fmt}
-{}
+  format_{fmt} {}

 Binary::Binary() = default;
 Binary::~Binary() = default;

 const Symbol* Binary::get_symbol(const std::string& name) const {
   symbols_t symbols = const_cast<Binary*>(this)->get_abstract_symbols();
-  const auto it_symbol = std::find_if(
-    std::begin(symbols), std::end(symbols),
-    [&name] (const Symbol* s) { return s->name() == name; }
-  );
+  const auto it_symbol =
+      std::find_if(symbols.begin(), symbols.end(),
+                   [&name](const Symbol* s) { return s->name() == name; });

-  if (it_symbol == std::end(symbols)) {
+  if (it_symbol == symbols.end()) {
     return nullptr;
   }

@@ -86,13 +84,13 @@ void Binary::accept(Visitor& visitor) const {
 }

 const char* to_string(Binary::VA_TYPES e) {
-  #define ENTRY(X) std::pair(Binary::VA_TYPES::X, #X)
-  STRING_MAP enums2str {
-    ENTRY(AUTO),
-    ENTRY(RVA),
-    ENTRY(VA),
+#define ENTRY(X) std::pair(Binary::VA_TYPES::X, #X)
+  STRING_MAP enums2str{
+      ENTRY(AUTO),
+      ENTRY(RVA),
+      ENTRY(VA),
   };
-  #undef ENTRY
+#undef ENTRY

   if (auto it = enums2str.find(e); it != enums2str.end()) {
     return it->second;
@@ -102,15 +100,11 @@ const char* to_string(Binary::VA_TYPES e) {
 }

 const char* to_string(Binary::FORMATS e) {
-  #define ENTRY(X) std::pair(Binary::FORMATS::X, #X)
-  STRING_MAP enums2str {
-    ENTRY(UNKNOWN),
-    ENTRY(ELF),
-    ENTRY(PE),
-    ENTRY(MACHO),
-    ENTRY(OAT),
+#define ENTRY(X) std::pair(Binary::FORMATS::X, #X)
+  STRING_MAP enums2str{
+      ENTRY(UNKNOWN), ENTRY(ELF), ENTRY(PE), ENTRY(MACHO), ENTRY(OAT),
   };
-  #undef ENTRY
+#undef ENTRY

   if (auto it = enums2str.find(e); it != enums2str.end()) {
     return it->second;
diff --git a/deps/LIEF/src/Abstract/Function.cpp b/deps/LIEF/src/Abstract/Function.cpp
index 24c1f99692c..a7ad4d955df 100644
--- a/deps/LIEF/src/Abstract/Function.cpp
+++ b/deps/LIEF/src/Abstract/Function.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -26,19 +26,15 @@
 namespace LIEF {

 static constexpr auto ARRAY_FLAGS = {
-  Function::FLAGS::NONE,
-  Function::FLAGS::CONSTRUCTOR,
-  Function::FLAGS::DESTRUCTOR,
-  Function::FLAGS::DEBUG_INFO,
-  Function::FLAGS::EXPORTED,
-  Function::FLAGS::IMPORTED,
+    Function::FLAGS::NONE,       Function::FLAGS::CONSTRUCTOR,
+    Function::FLAGS::DESTRUCTOR, Function::FLAGS::DEBUG_INFO,
+    Function::FLAGS::EXPORTED,   Function::FLAGS::IMPORTED,
 };

 std::vector<Function::FLAGS> Function::flags_list() const {
   std::vector<FLAGS> flags;
-  std::copy_if(std::begin(ARRAY_FLAGS), std::end(ARRAY_FLAGS),
-               std::back_inserter(flags),
-               [this] (FLAGS f) { return has(f); });
+  std::copy_if(ARRAY_FLAGS.begin(), ARRAY_FLAGS.end(), std::back_inserter(flags),
+               [this](FLAGS f) { return has(f); });
   return flags;
 }

@@ -47,23 +43,18 @@ void Function::accept(Visitor& visitor) const {
 }

 std::ostream& operator<<(std::ostream& os, const Function& entry) {
-  os << fmt::format("0x{:010x}: {} (0x{:04x} bytes)",
-                    entry.address(), printable_string(entry.name()),
-                    entry.size());
+  os << fmt::format("{:#012x}: {} ({:#06x} bytes)", entry.address(),
+                    printable_string(entry.name()), entry.size());
   return os;
 }

 const char* to_string(Function::FLAGS e) {
-  #define ENTRY(X) std::pair(Function::FLAGS::X, #X)
-  STRING_MAP enums2str {
-    ENTRY(NONE),
-    ENTRY(CONSTRUCTOR),
-    ENTRY(DESTRUCTOR),
-    ENTRY(DEBUG_INFO),
-    ENTRY(EXPORTED),
-    ENTRY(IMPORTED),
+#define ENTRY(X) std::pair(Function::FLAGS::X, #X)
+  STRING_MAP enums2str{
+      ENTRY(NONE),       ENTRY(CONSTRUCTOR), ENTRY(DESTRUCTOR),
+      ENTRY(DEBUG_INFO), ENTRY(EXPORTED),    ENTRY(IMPORTED),
   };
-  #undef ENTRY
+#undef ENTRY

   if (auto it = enums2str.find(e); it != enums2str.end()) {
     return it->second;
@@ -72,4 +63,3 @@ const char* to_string(Function::FLAGS e) {
 }

 }
-
diff --git a/deps/LIEF/src/Abstract/Header.cpp b/deps/LIEF/src/Abstract/Header.cpp
index 4f733f5b005..1adea118600 100644
--- a/deps/LIEF/src/Abstract/Header.cpp
+++ b/deps/LIEF/src/Abstract/Header.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -16,9 +16,15 @@
 #include "LIEF/Visitor.hpp"
 #include "LIEF/Abstract/Header.hpp"

-#include "LIEF/ELF/Binary.hpp"
-#include "LIEF/MachO/Binary.hpp"
-#include "LIEF/PE/Binary.hpp"
+#if defined(LIEF_ELF_SUPPORT)
+  #include "LIEF/ELF/Binary.hpp"
+#endif
+#if defined(LIEF_MACHO_SUPPORT)
+  #include "LIEF/MachO/Binary.hpp"
+#endif
+#if defined(LIEF_PE_SUPPORT)
+  #include "LIEF/PE/Binary.hpp"
+#endif

 #include <spdlog/fmt/fmt.h>

@@ -32,11 +38,11 @@ FMT_FORMATTER(LIEF::Header::MODES, LIEF::to_string);
 namespace LIEF {

 static constexpr auto ARRAY_MODES = {
-  Header::MODES::NONE, Header::MODES::ARM64E,
-  Header::MODES::BITS_16, Header::MODES::BITS_32,
-  Header::MODES::BITS_64, Header::MODES::THUMB,
+    Header::MODES::NONE,    Header::MODES::ARM64E,  Header::MODES::BITS_16,
+    Header::MODES::BITS_32, Header::MODES::BITS_64, Header::MODES::THUMB,
 };

+#if defined(LIEF_ELF_SUPPORT)
 Header Header::from(const ELF::Binary& elf) {
   if constexpr (!lief_elf_support) {
     return {};
@@ -46,69 +52,39 @@ Header Header::from(const ELF::Binary& elf) {
   hdr.entrypoint_ = elf.entrypoint();

   switch (elf.header().identity_class()) {
-    case ELF::Header::CLASS::ELF32:
-      hdr.modes_ |= MODES::BITS_32;
-      break;
+    case ELF::Header::CLASS::ELF32: hdr.modes_ |= MODES::BITS_32; break;

-    case ELF::Header::CLASS::ELF64:
-      hdr.modes_ |= MODES::BITS_64;
-      break;
+    case ELF::Header::CLASS::ELF64: hdr.modes_ |= MODES::BITS_64; break;

-    default:
-      break;
+    default: break;
   }

   switch (elf.header().machine_type()) {
-    case ELF::ARCH::X86_64:
-      hdr.architecture_ = ARCHITECTURES::X86_64;
-      break;
+    case ELF::ARCH::X86_64: hdr.architecture_ = ARCHITECTURES::X86_64; break;

-    case ELF::ARCH::I386:
-      hdr.architecture_ = ARCHITECTURES::X86;
-      break;
+    case ELF::ARCH::I386: hdr.architecture_ = ARCHITECTURES::X86; break;

-    case ELF::ARCH::ARM:
-      hdr.architecture_ = ARCHITECTURES::ARM;
-      break;
+    case ELF::ARCH::ARM: hdr.architecture_ = ARCHITECTURES::ARM; break;

-    case ELF::ARCH::AARCH64:
-      hdr.architecture_ = ARCHITECTURES::ARM64;
-      break;
+    case ELF::ARCH::AARCH64: hdr.architecture_ = ARCHITECTURES::ARM64; break;

-    case ELF::ARCH::MIPS:
-      hdr.architecture_ = ARCHITECTURES::MIPS;
-      break;
+    case ELF::ARCH::MIPS: hdr.architecture_ = ARCHITECTURES::MIPS; break;

-    case ELF::ARCH::PPC:
-      hdr.architecture_ = ARCHITECTURES::PPC;
-      break;
+    case ELF::ARCH::PPC: hdr.architecture_ = ARCHITECTURES::PPC; break;

-    case ELF::ARCH::PPC64:
-      hdr.architecture_ = ARCHITECTURES::PPC64;
-      break;
+    case ELF::ARCH::PPC64: hdr.architecture_ = ARCHITECTURES::PPC64; break;

-    case ELF::ARCH::RISCV:
-      hdr.architecture_ = ARCHITECTURES::RISCV;
-      break;
+    case ELF::ARCH::RISCV: hdr.architecture_ = ARCHITECTURES::RISCV; break;

-    case ELF::ARCH::LOONGARCH:
-      hdr.architecture_ = ARCHITECTURES::LOONGARCH;
-      break;
+    case ELF::ARCH::LOONGARCH: hdr.architecture_ = ARCHITECTURES::LOONGARCH; break;

-    default:
-      break;
+    default: break;
   }

   switch (elf.header().identity_data()) {
-    case ELF::Header::ELF_DATA::LSB:
-      hdr.endianness_ = ENDIANNESS::LITTLE;
-      break;
-    case ELF::Header::ELF_DATA::MSB:
-      hdr.endianness_ = ENDIANNESS::BIG;
-      break;
-    case ELF::Header::ELF_DATA::NONE:
-      hdr.endianness_ = ENDIANNESS::UNKNOWN;
-      break;
+    case ELF::Header::ELF_DATA::LSB: hdr.endianness_ = ENDIANNESS::LITTLE; break;
+    case ELF::Header::ELF_DATA::MSB: hdr.endianness_ = ENDIANNESS::BIG; break;
+    case ELF::Header::ELF_DATA::NONE: hdr.endianness_ = ENDIANNESS::UNKNOWN; break;
   }

   switch (elf.header().file_type()) {
@@ -117,21 +93,22 @@ Header Header::from(const ELF::Binary& elf) {
       break;

     case ELF::Header::FILE_TYPE::DYN:
-      hdr.object_type_ = elf.has_interpreter() ? OBJECT_TYPES::EXECUTABLE :
-                                                 OBJECT_TYPES::LIBRARY;
+      hdr.object_type_ =
+          elf.has_interpreter() ? OBJECT_TYPES::EXECUTABLE : OBJECT_TYPES::LIBRARY;
       break;

     case ELF::Header::FILE_TYPE::REL:
       hdr.object_type_ = OBJECT_TYPES::OBJECT;
       break;

-    default:
-      break;
+    default: break;
   }

   return hdr;
 }
+#endif

+#if defined(LIEF_PE_SUPPORT)
 Header Header::from(const PE::Binary& pe) {
   if constexpr (!lief_pe_support) {
     return {};
@@ -183,19 +160,22 @@ Header Header::from(const PE::Binary& pe) {
       hdr.modes_ |= MODES::THUMB;
       break;

-    default:
-      break;
+    default: break;
   }

   if (pe_header.has_characteristic(PE::Header::CHARACTERISTICS::DLL)) {
     hdr.object_type_ = OBJECT_TYPES::LIBRARY;
-  }
-  else if (pe_header.has_characteristic(PE::Header::CHARACTERISTICS::EXECUTABLE_IMAGE)) {
+  } else if (pe_header.has_characteristic(
+                 PE::Header::CHARACTERISTICS::EXECUTABLE_IMAGE
+             ))
+  {
     hdr.object_type_ = OBJECT_TYPES::EXECUTABLE;
   }
   return hdr;
 }
+#endif

+#if defined(LIEF_MACHO_SUPPORT)
 Header Header::from(const MachO::Binary& macho) {
   if constexpr (!lief_macho_support) {
     return {};
@@ -204,7 +184,7 @@ Header Header::from(const MachO::Binary& macho) {
   Header hdr;
   {
     logging::Scoped scope(logging::LEVEL::OFF);
-    // Disable the warning message
+    // Disable warning messages when resolving the entrypoint
     hdr.entrypoint_ = macho.entrypoint();
   }
   const MachO::Header& macho_hdr = macho.header();
@@ -215,9 +195,7 @@ Header Header::from(const MachO::Binary& macho) {
     hdr.modes_ |= MODES::BITS_64;
   }

-  if (magic == MachO::MACHO_TYPES::MAGIC ||
-      magic == MachO::MACHO_TYPES::CIGAM)
-  {
+  if (magic == MachO::MACHO_TYPES::MAGIC || magic == MachO::MACHO_TYPES::CIGAM) {
     hdr.modes_ |= MODES::BITS_32;
   }

@@ -228,14 +206,14 @@ Header Header::from(const MachO::Binary& macho) {
       break;

     case MachO::Header::CPU_TYPE::ARM64:
-      {
-        hdr.architecture_ = ARCHITECTURES::ARM64;
-        hdr.endianness_ = ENDIANNESS::LITTLE;
-        if (macho.support_arm64_ptr_auth()) {
-          hdr.modes_ |= MODES::ARM64E;
-        }
-        break;
+    {
+      hdr.architecture_ = ARCHITECTURES::ARM64;
+      hdr.endianness_ = ENDIANNESS::LITTLE;
+      if (macho.support_arm64_ptr_auth()) {
+        hdr.modes_ |= MODES::ARM64E;
       }
+      break;
+    }

     case MachO::Header::CPU_TYPE::X86:
       hdr.architecture_ = ARCHITECTURES::X86;
@@ -266,8 +244,7 @@ Header Header::from(const MachO::Binary& macho) {
       hdr.endianness_ = ENDIANNESS::BIG;
       break;

-    default:
-      break;
+    default: break;
   }


@@ -284,18 +261,17 @@ Header Header::from(const MachO::Binary& macho) {
       hdr.object_type_ = OBJECT_TYPES::OBJECT;
       break;

-    default:
-      break;
+    default: break;
   }

   return hdr;
 }
+#endif

 std::vector<Header::MODES> Header::modes_list() const {
   std::vector<MODES> flags;
-  std::copy_if(std::begin(ARRAY_MODES), std::end(ARRAY_MODES),
-               std::back_inserter(flags),
-               [this] (MODES f) { return is(f); });
+  std::copy_if(ARRAY_MODES.begin(), ARRAY_MODES.end(), std::back_inserter(flags),
+               [this](MODES f) { return is(f); });
   return flags;
 }

@@ -305,73 +281,59 @@ void Header::accept(Visitor& visitor) const {

 std::ostream& operator<<(std::ostream& os, const Header& hdr) {
   const auto& modes = hdr.modes_list();
-  os << fmt::format("[{}] {} (endianness={}) {}",
-                    to_string(hdr.object_type()), to_string(hdr.architecture()),
-                    to_string(hdr.endianness()), fmt::to_string(modes));
+  os << fmt::format("[{}] {} (endianness={}) {}", to_string(hdr.object_type()),
+                    to_string(hdr.architecture()), to_string(hdr.endianness()),
+                    fmt::to_string(modes));
   return os;
 }

 const char* to_string(Header::ARCHITECTURES e) {
-  #define ENTRY(X) std::pair(Header::ARCHITECTURES::X, #X)
-  STRING_MAP enums2str {
-    ENTRY(UNKNOWN),
-    ENTRY(ARM),
-    ENTRY(ARM64),
-    ENTRY(MIPS),
-    ENTRY(X86),
-    ENTRY(X86_64),
-    ENTRY(PPC),
-    ENTRY(SPARC),
-    ENTRY(SYSZ),
-    ENTRY(XCORE),
-    ENTRY(RISCV),
-    ENTRY(LOONGARCH),
-    ENTRY(PPC64),
+#define ENTRY(X) std::pair(Header::ARCHITECTURES::X, #X)
+  STRING_MAP enums2str{
+      ENTRY(UNKNOWN), ENTRY(ARM),       ENTRY(ARM64), ENTRY(MIPS), ENTRY(X86),
+      ENTRY(X86_64),  ENTRY(PPC),       ENTRY(SPARC), ENTRY(SYSZ), ENTRY(XCORE),
+      ENTRY(RISCV),   ENTRY(LOONGARCH), ENTRY(PPC64),
   };
-  #undef ENTRY
+#undef ENTRY
   if (auto it = enums2str.find(e); it != enums2str.end()) {
     return it->second;
   }
   return "UNKNOWN";
 }
 const char* to_string(Header::OBJECT_TYPES e) {
-  #define ENTRY(X) std::pair(Header::OBJECT_TYPES::X, #X)
-  STRING_MAP enums2str {
-    ENTRY(UNKNOWN),
-    ENTRY(EXECUTABLE),
-    ENTRY(LIBRARY),
-    ENTRY(OBJECT),
+#define ENTRY(X) std::pair(Header::OBJECT_TYPES::X, #X)
+  STRING_MAP enums2str{
+      ENTRY(UNKNOWN),
+      ENTRY(EXECUTABLE),
+      ENTRY(LIBRARY),
+      ENTRY(OBJECT),
   };
-  #undef ENTRY
+#undef ENTRY
   if (auto it = enums2str.find(e); it != enums2str.end()) {
     return it->second;
   }
   return "UNKNOWN";
 }
 const char* to_string(Header::MODES e) {
-  #define ENTRY(X) std::pair(Header::MODES::X, #X)
-  STRING_MAP enums2str {
-    ENTRY(NONE),
-    ENTRY(BITS_16),
-    ENTRY(BITS_32),
-    ENTRY(BITS_64),
-    ENTRY(THUMB),
-    ENTRY(ARM64E),
+#define ENTRY(X) std::pair(Header::MODES::X, #X)
+  STRING_MAP enums2str{
+      ENTRY(NONE),    ENTRY(BITS_16), ENTRY(BITS_32),
+      ENTRY(BITS_64), ENTRY(THUMB),   ENTRY(ARM64E),
   };
-  #undef ENTRY
+#undef ENTRY
   if (auto it = enums2str.find(e); it != enums2str.end()) {
     return it->second;
   }
   return "UNKNOWN";
 }
 const char* to_string(Header::ENDIANNESS e) {
-  #define ENTRY(X) std::pair(Header::ENDIANNESS::X, #X)
-  STRING_MAP enums2str {
-    ENTRY(UNKNOWN),
-    ENTRY(BIG),
-    ENTRY(LITTLE),
+#define ENTRY(X) std::pair(Header::ENDIANNESS::X, #X)
+  STRING_MAP enums2str{
+      ENTRY(UNKNOWN),
+      ENTRY(BIG),
+      ENTRY(LITTLE),
   };
-  #undef ENTRY
+#undef ENTRY
   if (auto it = enums2str.find(e); it != enums2str.end()) {
     return it->second;
   }
diff --git a/deps/LIEF/src/Abstract/Parser.cpp b/deps/LIEF/src/Abstract/Parser.cpp
index 98ae32c40f4..4caef7bc758 100644
--- a/deps/LIEF/src/Abstract/Parser.cpp
+++ b/deps/LIEF/src/Abstract/Parser.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -23,32 +23,31 @@


 #if defined(LIEF_OAT_SUPPORT)
-#include "LIEF/OAT/Binary.hpp"
-#include "LIEF/OAT/Parser.hpp"
-#include "LIEF/OAT/utils.hpp"
+  #include "LIEF/OAT/Binary.hpp"
+  #include "LIEF/OAT/Parser.hpp"
+  #include "LIEF/OAT/utils.hpp"
 #endif

 #if defined(LIEF_ELF_SUPPORT)
-#include "LIEF/ELF/utils.hpp"
-#include "LIEF/ELF/Parser.hpp"
-#include "LIEF/ELF/Binary.hpp"
+  #include "LIEF/ELF/utils.hpp"
+  #include "LIEF/ELF/Parser.hpp"
+  #include "LIEF/ELF/Binary.hpp"
 #endif

 #if defined(LIEF_PE_SUPPORT)
-#include "LIEF/PE/utils.hpp"
-#include "LIEF/PE/Parser.hpp"
-#include "LIEF/PE/Binary.hpp"
+  #include "LIEF/PE/utils.hpp"
+  #include "LIEF/PE/Parser.hpp"
+  #include "LIEF/PE/Binary.hpp"
 #endif

 #if defined(LIEF_MACHO_SUPPORT)
-#include "LIEF/MachO/utils.hpp"
-#include "LIEF/MachO/Parser.hpp"
-#include "LIEF/MachO/FatBinary.hpp"
-#include "LIEF/MachO/Binary.hpp"
+  #include "LIEF/MachO/utils.hpp"
+  #include "LIEF/MachO/Parser.hpp"
+  #include "LIEF/MachO/FatBinary.hpp"
+  #include "LIEF/MachO/Binary.hpp"
 #endif


-
 namespace LIEF {
 Parser::~Parser() = default;
 Parser::Parser() = default;
@@ -70,13 +69,13 @@ std::unique_ptr<Binary> Parser::parse(const std::string& filename) {

 #if defined(LIEF_PE_SUPPORT)
   if (PE::is_pe(filename)) {
-     return PE::Parser::parse(filename);
+    return PE::Parser::parse(filename);
   }
 #endif

 #if defined(LIEF_MACHO_SUPPORT)
   if (MachO::is_macho(filename)) {
-    // For fat binary we take the last one...
+    // For Fat binaries, take the last architecture slice
     std::unique_ptr<MachO::FatBinary> fat = MachO::Parser::parse(filename);
     if (fat != nullptr) {
       return fat->pop_back();
@@ -106,13 +105,13 @@ std::unique_ptr<Binary> Parser::parse(const std::vector<uint8_t>& raw) {

 #if defined(LIEF_PE_SUPPORT)
   if (PE::is_pe(raw)) {
-     return PE::Parser::parse(raw);
+    return PE::Parser::parse(raw);
   }
 #endif

 #if defined(LIEF_MACHO_SUPPORT)
   if (MachO::is_macho(raw)) {
-    // For fat binary we take the last one...
+    // For Fat binaries, take the last architecture slice
     std::unique_ptr<MachO::FatBinary> fat = MachO::Parser::parse(raw);
     if (fat != nullptr) {
       return fat->pop_back();
@@ -123,7 +122,6 @@ std::unique_ptr<Binary> Parser::parse(const std::vector<uint8_t>& raw) {

   LIEF_ERR("Unknown format");
   return nullptr;
-
 }

 std::unique_ptr<Binary> Parser::parse(std::unique_ptr<BinaryStream> stream) {
@@ -137,14 +135,15 @@ std::unique_ptr<Binary> Parser::parse(std::unique_ptr<BinaryStream> stream) {

 #if defined(LIEF_PE_SUPPORT)
   if (PE::is_pe(*stream)) {
-     return PE::Parser::parse(std::move(stream));
+    return PE::Parser::parse(std::move(stream));
   }
 #endif

 #if defined(LIEF_MACHO_SUPPORT)
   if (MachO::is_macho(*stream)) {
     // For fat binary we take the last one...
-    std::unique_ptr<MachO::FatBinary> fat = MachO::Parser::parse(std::move(stream));
+    std::unique_ptr<MachO::FatBinary> fat =
+        MachO::Parser::parse(std::move(stream));
     if (fat != nullptr) {
       return fat->pop_back();
     }
@@ -160,7 +159,7 @@ Parser::Parser(const std::string& filename) {
   std::ifstream file(filename, std::ios::in | std::ios::binary);

   if (!file) {
-    LIEF_ERR("Can't open '{}'", filename);
+    LIEF_ERR("Failed to open '{}'", filename);
     return;
   }
   file.unsetf(std::ios::skipws);
diff --git a/deps/LIEF/src/Abstract/Relocation.cpp b/deps/LIEF/src/Abstract/Relocation.cpp
index 42724a2b612..6f1ec9722ed 100644
--- a/deps/LIEF/src/Abstract/Relocation.cpp
+++ b/deps/LIEF/src/Abstract/Relocation.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -24,7 +24,7 @@ void Relocation::accept(Visitor& visitor) const {
 }

 std::ostream& operator<<(std::ostream& os, const Relocation& entry) {
-  os << fmt::format("0x{:010x} ({} bits)", entry.address(), entry.size());
+  os << fmt::format("{:#012x} ({} bits)", entry.address(), entry.size());
   return os;
 }

diff --git a/deps/LIEF/src/Abstract/Section.cpp b/deps/LIEF/src/Abstract/Section.cpp
index 55209c71126..34223e2d6d6 100644
--- a/deps/LIEF/src/Abstract/Section.cpp
+++ b/deps/LIEF/src/Abstract/Section.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -17,9 +17,10 @@
 #include <ostream>
 #include <algorithm>
 #include <cmath>
-#include <iomanip>
 #include <utility>

+#include <spdlog/fmt/fmt.h>
+
 #include "LIEF/Visitor.hpp"

 #include "logging.hpp"
@@ -43,14 +44,11 @@ size_t Section::search(uint64_t integer, size_t pos, size_t size) const {
   if (size == 0) {
     if (integer < std::numeric_limits<uint8_t>::max()) {
       minimal_size = sizeof(uint8_t);
-    }
-    else if (integer < std::numeric_limits<uint16_t>::max()) {
+    } else if (integer < std::numeric_limits<uint16_t>::max()) {
       minimal_size = sizeof(uint16_t);
-    }
-    else if (integer < std::numeric_limits<uint32_t>::max()) {
+    } else if (integer < std::numeric_limits<uint32_t>::max()) {
       minimal_size = sizeof(uint32_t);
-    }
-    else if (integer < std::numeric_limits<uint64_t>::max()) {
+    } else if (integer < std::numeric_limits<uint64_t>::max()) {
       minimal_size = sizeof(uint64_t);
     } else {
       return npos;
@@ -65,19 +63,18 @@ size_t Section::search(uint64_t integer, size_t pos, size_t size) const {
 size_t Section::search(const std::vector<uint8_t>& pattern, size_t pos) const {
   span<const uint8_t> content = this->content();

-  const auto* it_found = std::search(
-      std::begin(content) + pos, std::end(content),
-      std::begin(pattern), std::end(pattern));
+  const auto* it_found = std::search(content.begin() + pos, content.end(),
+                                     pattern.begin(), pattern.end());

-  if (it_found == std::end(content)) {
+  if (it_found == content.end()) {
     return npos;
   }

-  return std::distance(std::begin(content), it_found);
+  return std::distance(content.begin(), it_found);
 }

 size_t Section::search(const std::string& pattern, size_t pos) const {
-  std::vector<uint8_t> pattern_formated = {std::begin(pattern), std::end(pattern)};
+  std::vector<uint8_t> pattern_formated = {pattern.begin(), pattern.end()};
   return search(pattern_formated, pos);
 }

@@ -98,7 +95,7 @@ std::vector<size_t> Section::search_all(uint64_t v, size_t size) const {
   do {
     result.push_back(pos);
     pos = search(v, pos + 1, size);
-  } while(pos != Section::npos);
+  } while (pos != Section::npos);

   return result;
 }
@@ -113,7 +110,7 @@ std::vector<size_t> Section::search_all(const std::string& v) const {


 double Section::entropy() const {
-  std::array<uint64_t, 256> frequencies = { {0} };
+  std::array<uint64_t, 256> frequencies = {{0}};
   span<const uint8_t> content = this->content();
   if (content.empty() || content.size() == 1) {
     return 0.;
@@ -126,7 +123,7 @@ double Section::entropy() const {
   for (uint64_t p : frequencies) {
     if (p > 0) {
       double freq = static_cast<double>(p) / static_cast<double>(content.size());
-      entropy += freq * std::log2l(freq) ;
+      entropy += freq * std::log2l(freq);
     }
   }
   return (-entropy);
@@ -138,17 +135,10 @@ void Section::accept(Visitor& visitor) const {
 }


-
-
 std::ostream& operator<<(std::ostream& os, const Section& entry) {
-  os << std::hex;
-  os << std::left
-     << std::setw(30) << entry.name()
-     << std::setw(10) << entry.virtual_address()
-     << std::setw(10) << entry.size()
-     << std::setw(10) << entry.offset()
-     << std::setw(10) << entry.entropy();
-
+  os << fmt::format("{:<30}{:<#10x}{:<10}{:<#10x}{:<10.5f}", entry.name(),
+                    entry.virtual_address(), entry.size(), entry.offset(),
+                    entry.entropy());
   return os;
 }

diff --git a/deps/LIEF/src/Abstract/Section.tcc b/deps/LIEF/src/Abstract/Section.tcc
index 5751e27f757..7663014e766 100644
--- a/deps/LIEF/src/Abstract/Section.tcc
+++ b/deps/LIEF/src/Abstract/Section.tcc
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -31,7 +31,7 @@ std::vector<size_t> Section::search_all_(const T& v) const {
   do {
     result.push_back(pos);
     pos = search(v, pos + 1);
-  } while(pos != Section::npos);
+  } while (pos != Section::npos);

   return result;
 }
diff --git a/deps/LIEF/src/Abstract/Symbol.cpp b/deps/LIEF/src/Abstract/Symbol.cpp
index 7721c11595d..c8ff35e3b27 100644
--- a/deps/LIEF/src/Abstract/Symbol.cpp
+++ b/deps/LIEF/src/Abstract/Symbol.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -21,9 +21,9 @@
 namespace LIEF {

 void Symbol::swap(Symbol& other) noexcept {
-  std::swap(name_,   other.name_);
-  std::swap(value_,  other.value_);
-  std::swap(size_,   other.size_);
+  std::swap(name_, other.name_);
+  std::swap(value_, other.value_);
+  std::swap(size_, other.size_);
 }

 void Symbol::accept(Visitor& visitor) const {
@@ -33,11 +33,8 @@ void Symbol::accept(Visitor& visitor) const {
 std::ostream& operator<<(std::ostream& os, const Symbol& entry) {
   std::string name = entry.name();
   // UTF8 -> ASCII
-  std::transform(
-      std::begin(name),
-      std::end(name),
-      std::begin(name), []
-      (unsigned char c) { return (c < 127 && c > 32) ? c : ' ';});
+  std::transform(name.begin(), name.end(), name.begin(),
+                 [](unsigned char c) { return (c < 127 && c > 32) ? c : ' '; });
   if (name.size() > 20) {
     name = name.substr(0, 17) + "...";
   }
@@ -46,4 +43,3 @@ std::ostream& operator<<(std::ostream& os, const Symbol& entry) {
   return os;
 }
 }
-
diff --git a/deps/LIEF/src/Abstract/debug_info.cpp b/deps/LIEF/src/Abstract/debug_info.cpp
index 9cfd133e38c..89c8dd5c92f 100644
--- a/deps/LIEF/src/Abstract/debug_info.cpp
+++ b/deps/LIEF/src/Abstract/debug_info.cpp
@@ -1,4 +1,4 @@
-/* Copyright 2021 - 2025 R. Thomas
+/* Copyright 2021 - 2026 R. Thomas
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -41,8 +41,7 @@ DebugInfo* Binary::load_debug_info(const std::string& /*path*/) {
 // DebugInfo/DebugInfo.hpp
 // ----------------------------------------------------------------------------
 DebugInfo::DebugInfo(std::unique_ptr<details::DebugInfo>) :
-    impl_(nullptr)
-{}
+  impl_(nullptr) {}

 DebugInfo::~DebugInfo() = default;

diff --git a/deps/LIEF/src/Abstract/hash.cpp b/deps/LIEF/src/Abstract/hash.cpp
index dc87bb51913..11c985a99d2 100644
--- a/deps/LIEF/src/Abstract/hash.cpp
+++ b/deps/LIEF/src/Abstract/hash.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -30,9 +30,9 @@ size_t AbstractHash::hash(const Object& obj) {
 void AbstractHash::visit(const Binary& binary) {
   process(binary.format());
   process(binary.header());
-  process(std::begin(binary.symbols()), std::end(binary.symbols()));
-  process(std::begin(binary.sections()), std::end(binary.sections()));
-  process(std::begin(binary.relocations()), std::end(binary.relocations()));
+  process(binary.symbols().begin(), binary.symbols().end());
+  process(binary.sections().begin(), binary.sections().end());
+  process(binary.relocations().begin(), binary.relocations().end());
 }

 void AbstractHash::visit(const Header& header) {
@@ -68,4 +68,3 @@ void AbstractHash::visit(const Function& function) {


 } // namespace LIEF
-
diff --git a/deps/LIEF/src/Abstract/json.cpp b/deps/LIEF/src/Abstract/json.cpp
index 2eecb52312d..e4690dff12a 100644
--- a/deps/LIEF/src/Abstract/json.cpp
+++ b/deps/LIEF/src/Abstract/json.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -13,13 +13,15 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-#include "LIEF/Abstract.hpp"
 #include "Abstract/json_internal.hpp"

-#include "LIEF/ELF.hpp"
-#include "LIEF/PE.hpp"
-#include "LIEF/MachO.hpp"
-#include "LIEF/config.h"
+#include "LIEF/Object.hpp"
+
+#include "LIEF/Abstract/Binary.hpp"
+#include "LIEF/Abstract/Section.hpp"
+#include "LIEF/Abstract/Symbol.hpp"
+#include "LIEF/Abstract/Relocation.hpp"
+#include "LIEF/Abstract/Function.hpp"

 #include "Object.tcc"

@@ -67,42 +69,42 @@ void AbstractJsonVisitor::visit(const Binary& binary) {
   }


-  node_["entrypoint"]         = binary.entrypoint();
-  node_["format"]             = to_string(binary.format());
-  node_["original_size"]      = binary.original_size();
+  node_["entrypoint"] = binary.entrypoint();
+  node_["format"] = to_string(binary.format());
+  node_["original_size"] = binary.original_size();
   node_["exported_functions"] = exports;
   node_["imported_libraries"] = binary.imported_libraries();
   node_["imported_functions"] = imports;
-  node_["header"]             = header_visitor.get();
-  node_["sections"]           = sections;
-  node_["symbols"]            = symbols;
-  node_["relocations"]        = relocations;
+  node_["header"] = header_visitor.get();
+  node_["sections"] = sections;
+  node_["symbols"] = symbols;
+  node_["relocations"] = relocations;
 }


 void AbstractJsonVisitor::visit(const Header& header) {
   node_["architecture"] = to_string(header.architecture());
-  node_["object_type"]  = to_string(header.object_type());
-  node_["entrypoint"]   = header.entrypoint();
-  node_["endianness"]   = to_string(header.endianness());
+  node_["object_type"] = to_string(header.object_type());
+  node_["entrypoint"] = header.entrypoint();
+  node_["endianness"] = to_string(header.endianness());
 }

 void AbstractJsonVisitor::visit(const Section& section) {
-  node_["name"]            = section.name();
-  node_["size"]            = section.size();
-  node_["offset"]          = section.offset();
+  node_["name"] = section.name();
+  node_["size"] = section.size();
+  node_["offset"] = section.offset();
   node_["virtual_address"] = section.virtual_address();
 }

 void AbstractJsonVisitor::visit(const Symbol& symbol) {
-  node_["name"]  = symbol.name();
+  node_["name"] = symbol.name();
   node_["value"] = symbol.value();
-  node_["size"]  = symbol.size();
+  node_["size"] = symbol.size();
 }

 void AbstractJsonVisitor::visit(const Relocation& relocation) {
   node_["address"] = relocation.address();
-  node_["size"]    = relocation.size();
+  node_["size"] = relocation.size();
 }


@@ -116,13 +118,10 @@ void AbstractJsonVisitor::visit(const Function& function) {
   }

   node_["address"] = function.address();
-  node_["size"]    = function.size();
-  node_["name"]    = function.name();
-  node_["flags"]   = flags_str;
-
+  node_["size"] = function.size();
+  node_["name"] = function.name();
+  node_["flags"] = flags_str;
 }


-
-
 } // namespace LIEF
diff --git a/deps/LIEF/src/Abstract/json_api.cpp b/deps/LIEF/src/Abstract/json_api.cpp
index df89dcc350d..8ee13a7f4ff 100644
--- a/deps/LIEF/src/Abstract/json_api.cpp
+++ b/deps/LIEF/src/Abstract/json_api.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -14,11 +14,12 @@
  * limitations under the License.
  */
 #include "LIEF/config.h"
+#include "LIEF/Object.hpp"
 #include "logging.hpp"
 #include "LIEF/Abstract/json.hpp"

 #ifdef LIEF_JSON_SUPPORT
-#include "Abstract/json_internal.hpp"
+  #include "Abstract/json_internal.hpp"
 #endif

 namespace LIEF {
@@ -29,7 +30,7 @@ std::string to_json_from_abstract([[maybe_unused]] const Object& v) {
   v.accept(visitor);
   return visitor.get().dump();
 #else
-  LIEF_WARN("JSON support is not enabled");
+  LIEF_WARN("JSON support not enabled");
   return "";
 #endif
 }
diff --git a/deps/LIEF/src/Abstract/json_internal.hpp b/deps/LIEF/src/Abstract/json_internal.hpp
index 7540374e613..28f02a3c745 100644
--- a/deps/LIEF/src/Abstract/json_internal.hpp
+++ b/deps/LIEF/src/Abstract/json_internal.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -16,14 +16,17 @@
 #ifndef LIEF_ABSTRACT_JSON_INTERNAL_H
 #define LIEF_ABSTRACT_JSON_INTERNAL_H

-#include "LIEF/config.h"
-
-#include "LIEF/visibility.h"
-#include "LIEF/Abstract.hpp"
 #include "visitors/json.hpp"

 namespace LIEF {

+class Binary;
+class Header;
+class Section;
+class Symbol;
+class Relocation;
+class Function;
+
 /// Class that implements the Visitor pattern to serialize LIEF abstracted
 /// object in JSON
 class AbstractJsonVisitor : public LIEF::JsonVisitor {
@@ -31,12 +34,12 @@ class AbstractJsonVisitor : public LIEF::JsonVisitor {
   using LIEF::JsonVisitor::JsonVisitor;

   public:
-  void visit(const Binary& binary)         override;
-  void visit(const Header& header)         override;
-  void visit(const Section& section)       override;
-  void visit(const Symbol& symbol)         override;
+  void visit(const Binary& binary) override;
+  void visit(const Header& header) override;
+  void visit(const Section& section) override;
+  void visit(const Symbol& symbol) override;
   void visit(const Relocation& relocation) override;
-  void visit(const Function& f)            override;
+  void visit(const Function& f) override;
 };

 }
diff --git a/deps/LIEF/src/BinaryStream/ASN1Reader.cpp b/deps/LIEF/src/BinaryStream/ASN1Reader.cpp
index 10d03889fa8..24b516abf87 100644
--- a/deps/LIEF/src/BinaryStream/ASN1Reader.cpp
+++ b/deps/LIEF/src/BinaryStream/ASN1Reader.cpp
@@ -1,4 +1,4 @@
-/* Copyright 2021 - 2025 R. Thomas
+/* Copyright 2021 - 2026 R. Thomas
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -17,30 +17,32 @@
 #include "logging.hpp"

 #include <array>
+#include <memory>
+
+#include "mbedtls_wraps.h"
+
 #include <mbedtls/platform.h>
 #include <mbedtls/asn1.h>
 #include <mbedtls/error.h>
-#include <mbedtls/oid.h>
 #include <mbedtls/x509_crt.h>
-#include <mbedtls/bignum.h>

 extern "C" {
-int mbedtls_x509_get_name(unsigned char **p, const unsigned char *end,
-                          mbedtls_x509_name *cur);
-int mbedtls_x509_get_time(unsigned char **p, const unsigned char *end,
-                          mbedtls_x509_time *t);
+int mbedtls_x509_get_name(unsigned char** p, const unsigned char* end,
+                          mbedtls_x509_name* cur);
+int mbedtls_x509_get_time(unsigned char** p, const unsigned char* end,
+                          mbedtls_x509_time* t);

-int mbedtls_x509_get_serial(unsigned char **p, const unsigned char *end,
-                            mbedtls_x509_buf *serial);
+int mbedtls_x509_get_serial(unsigned char** p, const unsigned char* end,
+                            mbedtls_x509_buf* serial);
 }

 namespace LIEF {

 inline void free_names(mbedtls_x509_name& names) {
-  mbedtls_x509_name *name_cur;
+  mbedtls_x509_name* name_cur = nullptr;
   name_cur = names.next;
   while (name_cur != nullptr) {
-    mbedtls_x509_name *name_prv = name_cur;
+    mbedtls_x509_name* name_prv = name_cur;
     name_cur = name_cur->next;
     mbedtls_free(name_prv);
   }
@@ -48,8 +50,8 @@ inline void free_names(mbedtls_x509_name& names) {

 result<bool> ASN1Reader::is_tag(int tag) {
   size_t out = 0;
-  uint8_t* p           = stream_.p();
-  const uint8_t* end   = stream_.end();
+  uint8_t* p = stream_.p();
+  const uint8_t* end = stream_.end();

   int ret = mbedtls_asn1_get_tag(&p, end, &out, tag);

@@ -72,8 +74,8 @@ result<size_t> ASN1Reader::read_tag(int tag) {
   size_t out = 0;

   const uint8_t* cur_p = stream_.p();
-  uint8_t* p           = stream_.p();
-  const uint8_t* end   = stream_.end();
+  uint8_t* p = stream_.p();
+  const uint8_t* end = stream_.end();

   int ret = mbedtls_asn1_get_tag(&p, end, &out, tag);

@@ -88,11 +90,12 @@ result<size_t> ASN1Reader::read_tag(int tag) {
   if (ret != 0) {
     std::string strerr(1024, 0);
     mbedtls_strerror(ret, const_cast<char*>(strerr.data()), strerr.size());
-    LIEF_DEBUG("mbedtls_asn1_get_tag: {}", strerr.c_str());
+    LIEF_DEBUG("Failed in mbedtls_asn1_get_tag: {}", strerr.c_str());
     return make_error_code(lief_errors::read_error);
   }

-  stream_.increment_pos(reinterpret_cast<uintptr_t>(p) - reinterpret_cast<uintptr_t>(cur_p));
+  stream_.increment_pos(reinterpret_cast<uintptr_t>(p) -
+                        reinterpret_cast<uintptr_t>(cur_p));
   return out;
 }

@@ -101,8 +104,8 @@ result<size_t> ASN1Reader::read_len() {
   size_t len = 0;

   const uint8_t* cur_p = stream_.p();
-  uint8_t* p           = stream_.p();
-  const uint8_t* end   = stream_.end();
+  uint8_t* p = stream_.p();
+  const uint8_t* end = stream_.end();

   int ret = mbedtls_asn1_get_len(&p, end, &len);

@@ -114,7 +117,8 @@ result<size_t> ASN1Reader::read_len() {
     return make_error_code(lief_errors::read_error);
   }

-  stream_.increment_pos(reinterpret_cast<uintptr_t>(p) - reinterpret_cast<uintptr_t>(cur_p));
+  stream_.increment_pos(reinterpret_cast<uintptr_t>(p) -
+                        reinterpret_cast<uintptr_t>(cur_p));
   return len;
 }

@@ -123,8 +127,8 @@ result<std::string> ASN1Reader::read_alg() {
   std::array<char, 256> oid_str = {0};

   const uint8_t* cur_p = stream_.p();
-  uint8_t* p           = stream_.p();
-  const uint8_t* end   = stream_.end();
+  uint8_t* p = stream_.p();
+  const uint8_t* end = stream_.end();

   int ret = mbedtls_asn1_get_alg_null(&p, end, &alg_oid);

@@ -141,7 +145,8 @@ result<std::string> ASN1Reader::read_alg() {
     return make_error_code(lief_errors::read_error);
   }

-  stream_.increment_pos(reinterpret_cast<uintptr_t>(p) - reinterpret_cast<uintptr_t>(cur_p));
+  stream_.increment_pos(reinterpret_cast<uintptr_t>(p) -
+                        reinterpret_cast<uintptr_t>(cur_p));
   return std::string(oid_str.data());
 }

@@ -155,12 +160,13 @@ result<std::string> ASN1Reader::read_oid() {
   }

   buf.len = len.value();
-  buf.p   = stream_.p();
+  buf.p = stream_.p();
   buf.tag = MBEDTLS_ASN1_OID;

   int ret = mbedtls_oid_get_numeric_string(oid_str.data(), oid_str.size(), &buf);
-  if (ret == MBEDTLS_ERR_OID_BUF_TOO_SMALL) {
-    LIEF_DEBUG("asn1_read_oid: mbedtls_oid_get_numeric_string return MBEDTLS_ERR_OID_BUF_TOO_SMALL");
+  if (ret == MBEDTLS_ERR_ASN1_BUF_TOO_SMALL) {
+    LIEF_DEBUG("asn1_read_oid: mbedtls_oid_get_numeric_string returned "
+               "MBEDTLS_ERR_OID_BUF_TOO_SMALL");
     return make_error_code(lief_errors::read_error);
   }

@@ -170,11 +176,11 @@ result<std::string> ASN1Reader::read_oid() {


 result<bool> ASN1Reader::read_bool() {
-  int value;
+  int value = 0;

   const uint8_t* cur_p = stream_.p();
-  uint8_t* p           = stream_.p();
-  const uint8_t* end   = stream_.end();
+  uint8_t* p = stream_.p();
+  const uint8_t* end = stream_.end();

   int ret = mbedtls_asn1_get_bool(&p, end, &value);

@@ -185,11 +191,12 @@ result<bool> ASN1Reader::read_bool() {
   if (ret != 0) {
     std::string strerr(1024, 0);
     mbedtls_strerror(ret, const_cast<char*>(strerr.data()), strerr.size());
-    LIEF_DEBUG("mbedtls_asn1_get_bool: {}", strerr.c_str());
+    LIEF_DEBUG("Failed in mbedtls_asn1_get_bool: {}", strerr.c_str());
     return make_error_code(lief_errors::read_error);
   }

-  stream_.increment_pos(reinterpret_cast<uintptr_t>(p) - reinterpret_cast<uintptr_t>(cur_p));
+  stream_.increment_pos(reinterpret_cast<uintptr_t>(p) -
+                        reinterpret_cast<uintptr_t>(cur_p));
   return static_cast<bool>(value);
 }

@@ -200,8 +207,8 @@ result<std::vector<uint8_t>> ASN1Reader::read_large_int() {
   mbedtls_mpi_init(&mpi);

   const uint8_t* cur_p = stream_.p();
-  uint8_t* p           = stream_.p();
-  const uint8_t* end   = stream_.end();
+  uint8_t* p = stream_.p();
+  const uint8_t* end = stream_.end();

   int ret = mbedtls_asn1_get_mpi(&p, end, &mpi);

@@ -212,7 +219,7 @@ result<std::vector<uint8_t>> ASN1Reader::read_large_int() {
   if (ret != 0) {
     std::string strerr(1024, 0);
     mbedtls_strerror(ret, const_cast<char*>(strerr.data()), strerr.size());
-    LIEF_DEBUG("mbedtls_asn1_get_mpi: {}", strerr.c_str());
+    LIEF_DEBUG("Failed in mbedtls_asn1_get_mpi: {}", strerr.c_str());
     return make_error_code(lief_errors::read_error);
   }

@@ -225,16 +232,16 @@ result<std::vector<uint8_t>> ASN1Reader::read_large_int() {
   if (ret != 0) {
     std::string strerr(1024, 0);
     mbedtls_strerror(ret, const_cast<char*>(strerr.data()), strerr.size());
-    LIEF_DEBUG("mbedtls_asn1_get_mpi: {}", strerr.c_str());
+    LIEF_DEBUG("Failed in mbedtls_asn1_get_mpi: {}", strerr.c_str());
     return make_error_code(lief_errors::read_error);
   }

-  stream_.increment_pos(reinterpret_cast<uintptr_t>(p) - reinterpret_cast<uintptr_t>(cur_p));
+  stream_.increment_pos(reinterpret_cast<uintptr_t>(p) -
+                        reinterpret_cast<uintptr_t>(cur_p));
   return value;
 }


-
 result<int64_t> ASN1Reader::read_int64() {
   int64_t value = 0;
   mbedtls_mpi mpi;
@@ -242,8 +249,8 @@ result<int64_t> ASN1Reader::read_int64() {
   mbedtls_mpi_init(&mpi);

   const uint8_t* cur_p = stream_.p();
-  uint8_t* p           = stream_.p();
-  const uint8_t* end   = stream_.end();
+  uint8_t* p = stream_.p();
+  const uint8_t* end = stream_.end();

   int ret = mbedtls_asn1_get_mpi(&p, end, &mpi);

@@ -254,13 +261,13 @@ result<int64_t> ASN1Reader::read_int64() {
   if (ret != 0) {
     std::string strerr(1024, 0);
     mbedtls_strerror(ret, const_cast<char*>(strerr.data()), strerr.size());
-    LIEF_DEBUG("mbedtls_asn1_get_mpi: {}", strerr.c_str());
+    LIEF_DEBUG("Failed in mbedtls_asn1_get_mpi: {}", strerr.c_str());
     return make_error_code(lief_errors::read_error);
   }

   if (mbedtls_mpi_size(&mpi) > sizeof(uint64_t)) {
     mbedtls_mpi_free(&mpi);
-    LIEF_INFO("MPI value can be stored on a 64-bit integer");
+    LIEF_INFO("MPI value does not fit in a 64-bit integer");
     return make_error_code(lief_errors::read_error);
   }

@@ -272,11 +279,12 @@ result<int64_t> ASN1Reader::read_int64() {
   if (ret != 0) {
     std::string strerr(1024, 0);
     mbedtls_strerror(ret, const_cast<char*>(strerr.data()), strerr.size());
-    LIEF_DEBUG("mbedtls_asn1_get_mpi: {}", strerr.c_str());
+    LIEF_DEBUG("Failed in mbedtls_asn1_get_mpi: {}", strerr.c_str());
     return make_error_code(lief_errors::read_error);
   }

-  stream_.increment_pos(reinterpret_cast<uintptr_t>(p) - reinterpret_cast<uintptr_t>(cur_p));
+  stream_.increment_pos(reinterpret_cast<uintptr_t>(p) -
+                        reinterpret_cast<uintptr_t>(cur_p));
   return value;
 }

@@ -285,8 +293,8 @@ result<int32_t> ASN1Reader::read_int() {
   int32_t value = 0;

   const uint8_t* cur_p = stream_.p();
-  uint8_t* p           = stream_.p();
-  const uint8_t* end   = stream_.end();
+  uint8_t* p = stream_.p();
+  const uint8_t* end = stream_.end();

   int ret = mbedtls_asn1_get_int(&p, end, &value);

@@ -297,11 +305,12 @@ result<int32_t> ASN1Reader::read_int() {
   if (ret != 0) {
     std::string strerr(1024, 0);
     mbedtls_strerror(ret, const_cast<char*>(strerr.data()), strerr.size());
-    LIEF_DEBUG("mbedtls_asn1_get_int: {}", strerr.c_str());
+    LIEF_DEBUG("Failed in mbedtls_asn1_get_int: {}", strerr.c_str());
     return make_error_code(lief_errors::read_error);
   }

-  stream_.increment_pos(reinterpret_cast<uintptr_t>(p) - reinterpret_cast<uintptr_t>(cur_p));
+  stream_.increment_pos(reinterpret_cast<uintptr_t>(p) -
+                        reinterpret_cast<uintptr_t>(cur_p));
   return value;
 }

@@ -309,8 +318,8 @@ result<std::vector<uint8_t>> ASN1Reader::read_bitstring() {
   mbedtls_asn1_bitstring bs = {0, 0, nullptr};

   const uint8_t* cur_p = stream_.p();
-  uint8_t* p           = stream_.p();
-  const uint8_t* end   = stream_.end();
+  uint8_t* p = stream_.p();
+  const uint8_t* end = stream_.end();

   int ret = mbedtls_asn1_get_bitstring(&p, end, &bs);

@@ -319,7 +328,8 @@ result<std::vector<uint8_t>> ASN1Reader::read_bitstring() {
   }

   if (ret == MBEDTLS_ERR_ASN1_LENGTH_MISMATCH) {
-    stream_.increment_pos(reinterpret_cast<uintptr_t>(p) - reinterpret_cast<uintptr_t>(cur_p));
+    stream_.increment_pos(reinterpret_cast<uintptr_t>(p) -
+                          reinterpret_cast<uintptr_t>(cur_p));
     return std::vector<uint8_t>{bs.p, bs.p + bs.len};
   }

@@ -327,7 +337,8 @@ result<std::vector<uint8_t>> ASN1Reader::read_bitstring() {
     return make_error_code(lief_errors::read_error);
   }

-  stream_.increment_pos(reinterpret_cast<uintptr_t>(p) - reinterpret_cast<uintptr_t>(cur_p));
+  stream_.increment_pos(reinterpret_cast<uintptr_t>(p) -
+                        reinterpret_cast<uintptr_t>(cur_p));
   return std::vector<uint8_t>{bs.p, bs.p + bs.len};
 }

@@ -343,12 +354,13 @@ result<std::vector<uint8_t>> ASN1Reader::read_octet_string() {
 }

 result<std::unique_ptr<mbedtls_x509_crt>> ASN1Reader::read_cert() {
-  std::unique_ptr<mbedtls_x509_crt> ca{new mbedtls_x509_crt{}};
+  auto ca = std::make_unique<mbedtls_x509_crt>(mbedtls_x509_crt{});
   mbedtls_x509_crt_init(ca.get());

-  uint8_t* p               = stream_.p();
-  const uint8_t* end       = stream_.end();
-  const uintptr_t buff_len = reinterpret_cast<uintptr_t>(end) - reinterpret_cast<uintptr_t>(p);
+  uint8_t* p = stream_.p();
+  const uint8_t* end = stream_.end();
+  const uintptr_t buff_len =
+      reinterpret_cast<uintptr_t>(end) - reinterpret_cast<uintptr_t>(p);

   int ret = mbedtls_x509_crt_parse_der(ca.get(), p, /* buff len */ buff_len);
   if (ret != 0) {
@@ -369,20 +381,21 @@ result<std::string> ASN1Reader::x509_read_names() {
   std::memset(&name, 0, sizeof(name));

   auto tag = read_tag(/* Name */
-                      MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE);
+                      MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE
+  );
   if (!tag) {
-    LIEF_INFO("Wrong tag: 0x{:x} for x509_read_names (pos: {:d})",
+    LIEF_INFO("Unexpected tag {:#x} for x509_read_names (pos: {:d})",
               *stream_.peek<uint8_t>(), stream_.pos());
     return make_error_code(tag.error());
   }

   const uint8_t* cur_p = stream_.p();
-  uint8_t* p           = stream_.p();
-  const uint8_t* end   = p + tag.value();
+  uint8_t* p = stream_.p();
+  const uint8_t* end = p + tag.value();
   int ret = mbedtls_x509_get_name(&p, end, &name);
   if (ret != 0) {
     free_names(name);
-    LIEF_DEBUG("mbedtls_x509_get_name failed with {:d}", ret);
+    LIEF_DEBUG("Call to mbedtls_x509_get_name failed with {:d}", ret);
     return make_error_code(lief_errors::read_error);
   }
   std::array<char, 1024> buffer = {0};
@@ -393,7 +406,8 @@ result<std::string> ASN1Reader::x509_read_names() {
     return make_error_code(lief_errors::read_error);
   }

-  stream_.increment_pos(reinterpret_cast<uintptr_t>(p) - reinterpret_cast<uintptr_t>(cur_p));
+  stream_.increment_pos(reinterpret_cast<uintptr_t>(p) -
+                        reinterpret_cast<uintptr_t>(cur_p));
   return std::string(buffer.data());
 }

@@ -401,8 +415,8 @@ result<std::vector<uint8_t>> ASN1Reader::x509_read_serial() {
   mbedtls_x509_buf serial;

   const uint8_t* cur_p = stream_.p();
-  uint8_t* p           = stream_.p();
-  const uint8_t* end   = stream_.end();
+  uint8_t* p = stream_.p();
+  const uint8_t* end = stream_.end();

   int ret = mbedtls_x509_get_serial(&p, end, &serial);

@@ -410,27 +424,29 @@ result<std::vector<uint8_t>> ASN1Reader::x509_read_serial() {
     return make_error_code(lief_errors::read_error);
   }

-  stream_.increment_pos(reinterpret_cast<uintptr_t>(p) - reinterpret_cast<uintptr_t>(cur_p));
+  stream_.increment_pos(reinterpret_cast<uintptr_t>(p) -
+                        reinterpret_cast<uintptr_t>(cur_p));
   return std::vector<uint8_t>{serial.p, serial.p + serial.len};
 }

 result<std::unique_ptr<mbedtls_x509_time>> ASN1Reader::x509_read_time() {
-  std::unique_ptr<mbedtls_x509_time> tm{new mbedtls_x509_time{}};
+  auto tm = std::make_unique<mbedtls_x509_time>(mbedtls_x509_time{});

   const uint8_t* cur_p = stream_.p();
-  uint8_t* p           = stream_.p();
-  const uint8_t* end   = stream_.end();
+  uint8_t* p = stream_.p();
+  const uint8_t* end = stream_.end();

   int ret = mbedtls_x509_get_time(&p, end, tm.get());

   if (ret != 0) {
     std::string strerr(1024, 0);
     mbedtls_strerror(ret, const_cast<char*>(strerr.data()), strerr.size());
-    LIEF_INFO("mbedtls_x509_get_time: {}", strerr.c_str());
+    LIEF_INFO("Failed in mbedtls_x509_get_time: {}", strerr.c_str());
     return make_error_code(lief_errors::read_error);
   }

-  stream_.increment_pos(reinterpret_cast<uintptr_t>(p) - reinterpret_cast<uintptr_t>(cur_p));
+  stream_.increment_pos(reinterpret_cast<uintptr_t>(p) -
+                        reinterpret_cast<uintptr_t>(cur_p));
   return tm;
 }

@@ -454,11 +470,12 @@ std::string ASN1Reader::get_str_tag() {


 std::string ASN1Reader::tag2str(int tag) {
-#define HANDLE(X) do {     \
-  if (tag & MBEDTLS_##X) { \
-    tag_str += " | " #X;    \
-  }                        \
-} while(0)
+#define HANDLE(X)                                                                 \
+  do {                                                                            \
+    if (tag & MBEDTLS_##X) {                                                      \
+      tag_str += " | " #X;                                                        \
+    }                                                                             \
+  } while (0)

   std::string tag_str;

diff --git a/deps/LIEF/src/BinaryStream/BinaryStream.cpp b/deps/LIEF/src/BinaryStream/BinaryStream.cpp
index 655948f6843..c40fad69121 100644
--- a/deps/LIEF/src/BinaryStream/BinaryStream.cpp
+++ b/deps/LIEF/src/BinaryStream/BinaryStream.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -26,60 +26,78 @@ namespace LIEF {


 result<int64_t> BinaryStream::read_dwarf_encoded(uint8_t encoding) const {
-  const auto encodevalue =  static_cast<LIEF::dwarf::EH_ENCODING>(encoding & 0x0F);
+  const auto encodevalue = static_cast<LIEF::dwarf::EH_ENCODING>(encoding & 0x0F);

   switch (encodevalue) {
     case LIEF::dwarf::EH_ENCODING::ULEB128:
-      {
-        return read_uleb128();
-      }
+    {
+      return read_uleb128();
+    }

     case LIEF::dwarf::EH_ENCODING::SDATA2:
     case LIEF::dwarf::EH_ENCODING::UDATA2:
-      {
-        return read<int16_t>();
-      }
+    {
+      return read<int16_t>();
+    }

     case LIEF::dwarf::EH_ENCODING::SDATA4:
     case LIEF::dwarf::EH_ENCODING::UDATA4:
-      {
-        return read<int32_t>();
-      }
+    {
+      return read<int32_t>();
+    }

     case LIEF::dwarf::EH_ENCODING::SDATA8:
     case LIEF::dwarf::EH_ENCODING::UDATA8:
-      {
-        return read<int64_t>();
-      }
+    {
+      return read<int64_t>();
+    }

     case LIEF::dwarf::EH_ENCODING::SLEB128:
-      {
-        return read_sleb128();
-      }
+    {
+      return read_sleb128();
+    }

     default:
-      {
-        return 0;
-      }
+    {
+      return 0;
+    }
   }
-
 }

+// A 64-bit integer is encoded on at most 10 LEB128 bytes
+static constexpr unsigned LEB128_MAX_BYTES = 10;
+
 result<uint64_t> BinaryStream::read_uleb128(size_t* size) const {
   uint64_t value = 0;
   unsigned shift = 0;
+  unsigned count = 0;
   result<uint8_t> byte_read = 0;

   const uint64_t opos = pos();

   do {
+    if (count == LEB128_MAX_BYTES) {
+      return make_error_code(lief_errors::corrupted);
+    }
+
     byte_read = read<uint8_t>();
     if (!byte_read) {
       return make_error_code(lief_errors::read_error);
     }
-    value += static_cast<uint64_t>(*byte_read & 0x7f) << shift;
-    shift += 7;
-  } while (byte_read && *byte_read >= 128);
+    ++count;
+
+    const uint64_t slice = *byte_read & 0x7f;
+
+    if (shift < 64u) {
+      if ((slice << shift >> shift) != slice) {
+        return make_error_code(lief_errors::corrupted);
+      }
+      value |= slice << shift;
+      shift += 7;
+    } else if (slice != 0) {
+      return make_error_code(lief_errors::corrupted);
+    }
+  } while (*byte_read >= 128);

   if (size != nullptr) {
     *size = pos() - opos;
@@ -89,30 +107,42 @@ result<uint64_t> BinaryStream::read_uleb128(size_t* size) const {
 }

 result<uint64_t> BinaryStream::read_sleb128(size_t* size) const {
-  int64_t  value = 0;
+  int64_t value = 0;
   unsigned shift = 0;
+  unsigned count = 0;
   result<uint8_t> byte_read = 0;
   const uint64_t opos = pos();
+
   do {
+    if (count == LEB128_MAX_BYTES) {
+      return make_error_code(lief_errors::corrupted);
+    }
+
     byte_read = read<uint8_t>();
     if (!byte_read) {
       return make_error_code(lief_errors::read_error);
     }
-    value += static_cast<int64_t>(*byte_read & 0x7f) << shift;
-    shift += 7;
-  } while (byte_read && *byte_read >= 128);
+    ++count;

+    const uint64_t slice = *byte_read & 0x7f;
+
+    if (shift < 64u) {
+      value |= (int64_t)(slice << shift);
+      shift += 7;
+    } else if (slice != ((value < 0) ? 0x7fu : 0x00u)) {
+      return make_error_code(lief_errors::corrupted);
+    }
+  } while (*byte_read >= 128);

-  // Sign extend
-  if ((*byte_read & 0x40) != 0) {
-    value |= -1llu << shift;
+  if (shift < 64u && (*byte_read & 0x40) != 0) {
+    value |= (int64_t)-1llu << shift;
   }

   if (size != nullptr) {
     *size = pos() - opos;
   }

-  return value;
+  return (uint64_t)value;
 }

 result<std::string> BinaryStream::read_string(size_t maxsize) const {
@@ -146,10 +176,10 @@ result<std::string> BinaryStream::peek_string(size_t maxsize) const {
   } while (count < maxsize && c && *c != '\0' && off < size());
   str_result.back() = '\0';
   return str_result.c_str();
-
 }

-result<std::string> BinaryStream::peek_string_at(size_t offset, size_t maxsize) const {
+result<std::string> BinaryStream::peek_string_at(size_t offset,
+                                                 size_t maxsize) const {
   size_t saved_offset = pos();
   setpos(offset);
   result<std::string> tmp = peek_string(maxsize);
@@ -208,12 +238,13 @@ result<std::u16string> BinaryStream::peek_u16string(size_t length) const {
         LIEF::swap_endian(&x);
       }
     }
-    return std::u16string{std::begin(raw_u16str), std::end(raw_u16str)};
+    return std::u16string{raw_u16str.begin(), raw_u16str.end()};
   }
   return make_error_code(lief_errors::read_error);
 }

-result<std::u16string> BinaryStream::peek_u16string_at(size_t offset, size_t length) const {
+result<std::u16string> BinaryStream::peek_u16string_at(size_t offset,
+                                                       size_t length) const {
   size_t saved_offset = pos();
   setpos(offset);
   result<std::u16string> tmp = peek_u16string(length);
@@ -264,21 +295,22 @@ result<std::string> BinaryStream::read_mutf8(size_t maxsize) const {
       }
       u32str.push_back(static_cast<char32_t>((((a & 0x1F) << 6) | (b & 0x3F))));
     } else if ((a & 0xf0) == 0xe0) {
-        result<uint8_t> res_b = read<uint8_t>();
-        result<uint8_t> res_c = read<uint8_t>();
-        if (!res_b) {
-          return make_error_code(res_b.error());
-        }
-        if (!res_c) {
-          return make_error_code(res_c.error());
-        }
-        uint8_t b = *res_b;
-        uint8_t c = *res_c;
-
-        if (((b & 0xC0) != 0x80) || ((c & 0xC0) != 0x80)) {
-          break;
-        }
-        u32str.push_back(static_cast<char32_t>(((a & 0x1F) << 12) | ((b & 0x3F) << 6) | (c & 0x3F)));
+      result<uint8_t> res_b = read<uint8_t>();
+      result<uint8_t> res_c = read<uint8_t>();
+      if (!res_b) {
+        return make_error_code(res_b.error());
+      }
+      if (!res_c) {
+        return make_error_code(res_c.error());
+      }
+      uint8_t b = *res_b;
+      uint8_t c = *res_c;
+
+      if (((b & 0xC0) != 0x80) || ((c & 0xC0) != 0x80)) {
+        break;
+      }
+      u32str.push_back(static_cast<char32_t>(((a & 0x1F) << 12) |
+                                             ((b & 0x3F) << 6) | (c & 0x3F)));
     } else {
       break;
     }
@@ -286,12 +318,12 @@ result<std::string> BinaryStream::read_mutf8(size_t maxsize) const {

   std::string u8str;

-  std::replace_if(std::begin(u32str), std::end(u32str),
-      [] (const char32_t c) {
-        return !utf8::internal::is_code_point_valid(c);
-      }, '.');
+  std::replace_if(
+      u32str.begin(), u32str.end(),
+      [](const char32_t c) { return !utf8::internal::is_code_point_valid(c); }, '.'
+  );

-  utf8::unchecked::utf32to8(std::begin(u32str), std::end(u32str),
+  utf8::unchecked::utf32to8(u32str.begin(), u32str.end(),
                             std::back_inserter(u8str));
   return u8str;
 }
diff --git a/deps/LIEF/src/BinaryStream/CMakeLists.txt b/deps/LIEF/src/BinaryStream/CMakeLists.txt
index 8765c365122..0de0b934931 100644
--- a/deps/LIEF/src/BinaryStream/CMakeLists.txt
+++ b/deps/LIEF/src/BinaryStream/CMakeLists.txt
@@ -5,4 +5,5 @@ target_sources(LIB_LIEF PRIVATE
   MemoryStream.cpp
   SpanStream.cpp
   VectorStream.cpp
+  DumpStream.cpp
 )
diff --git a/deps/LIEF/src/BinaryStream/DumpStream.cpp b/deps/LIEF/src/BinaryStream/DumpStream.cpp
new file mode 100644
index 00000000000..7966f456477
--- /dev/null
+++ b/deps/LIEF/src/BinaryStream/DumpStream.cpp
@@ -0,0 +1,42 @@
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
+ *
+ * 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.
+ */
+#include "LIEF/BinaryStream/DumpStream.hpp"
+#include "LIEF/Abstract/Binary.hpp"
+
+namespace LIEF {
+
+std::vector<uint8_t> DumpStream::content() const {
+  std::vector<uint8_t> res;
+  res.resize(size());
+  ref_->peek_in(res.data(), /*offset=*/0, ref_->size());
+  return res;
+}
+
+ok_error_t DumpStream::peek_in(void* dst, uint64_t offset, uint64_t size,
+                               uint64_t /*virtual_address*/) const {
+  if (binary_ != nullptr) {
+    if (auto va = binary_->offset_to_virtual_address(offset, baseaddr_)) {
+      if (*va >= baseaddr_) {
+        return ref_->peek_in(dst, *va - baseaddr_, size,
+                             /*virtual_address=*/0);
+      }
+      return make_error_code(lief_errors::read_out_of_bound);
+    }
+  }
+  return ref_->peek_in(dst, offset, size, /*virtual_address=*/0);
+}
+
+}
diff --git a/deps/LIEF/src/BinaryStream/FileStream.cpp b/deps/LIEF/src/BinaryStream/FileStream.cpp
index a5ff313e8e2..e985d1056af 100644
--- a/deps/LIEF/src/BinaryStream/FileStream.cpp
+++ b/deps/LIEF/src/BinaryStream/FileStream.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -21,7 +21,7 @@ namespace LIEF {
 result<FileStream> FileStream::from_file(const std::string& file) {
   std::ifstream ifs(file, std::ios::in | std::ios::binary);
   if (!ifs) {
-    LIEF_ERR("Can't open '{}'", file);
+    LIEF_ERR("Failed to open '{}'", file);
     return make_error_code(lief_errors::read_error);
   }

@@ -29,7 +29,7 @@ result<FileStream> FileStream::from_file(const std::string& file) {
   ifs.seekg(0, std::ios::end);
   const auto size = static_cast<uint64_t>(ifs.tellg());
   ifs.seekg(0, std::ios::beg);
-  return result<FileStream>(tl::in_place, std::move(ifs), size);
+  return {tl::in_place, std::move(ifs), size};
 }


@@ -44,4 +44,3 @@ std::vector<uint8_t> FileStream::content() const {
 }

 }
-
diff --git a/deps/LIEF/src/BinaryStream/MemoryStream.cpp b/deps/LIEF/src/BinaryStream/MemoryStream.cpp
index 2ce7e42127c..8ebf3eae446 100644
--- a/deps/LIEF/src/BinaryStream/MemoryStream.cpp
+++ b/deps/LIEF/src/BinaryStream/MemoryStream.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -22,18 +22,22 @@ namespace LIEF {
 static constexpr uint64_t MAX_MEM_SIZE = 6_GB;

 MemoryStream::MemoryStream(uintptr_t base_address) :
-  MemoryStream(base_address, MAX_MEM_SIZE)
-{}
+  MemoryStream(base_address, MAX_MEM_SIZE) {}

-result<const void*> MemoryStream::read_at(uint64_t offset, uint64_t size, uint64_t /*va*/) const {
-  if (offset > size_ || (offset + size) > size_) {
+result<const void*> MemoryStream::read_at(uint64_t offset, uint64_t size,
+                                          uint64_t /*va*/) const {
+  if (offset > size_ || size > size_ - offset) {
     return make_error_code(lief_errors::read_out_of_bound);
   }

   const uintptr_t va = baseaddr_ + offset;
   if (binary_ != nullptr) {
     if (auto res = binary_->offset_to_virtual_address(offset, baseaddr_)) {
-      return reinterpret_cast<const void*>(*res);
+      const auto translated = (uintptr_t)*res;
+      if (translated >= baseaddr_ && (translated - baseaddr_) <= size_ - size) {
+        return reinterpret_cast<const void*>(translated);
+      }
+      return make_error_code(lief_errors::read_out_of_bound);
     }
   }
   return reinterpret_cast<const void*>(va);
@@ -41,4 +45,3 @@ result<const void*> MemoryStream::read_at(uint64_t offset, uint64_t size, uint64


 }
-
diff --git a/deps/LIEF/src/BinaryStream/SpanStream.cpp b/deps/LIEF/src/BinaryStream/SpanStream.cpp
index aa3d8957c0c..f0cb4c09e22 100644
--- a/deps/LIEF/src/BinaryStream/SpanStream.cpp
+++ b/deps/LIEF/src/BinaryStream/SpanStream.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/deps/LIEF/src/BinaryStream/VectorStream.cpp b/deps/LIEF/src/BinaryStream/VectorStream.cpp
index bb47a3b9b1e..b9cbee33ce4 100644
--- a/deps/LIEF/src/BinaryStream/VectorStream.cpp
+++ b/deps/LIEF/src/BinaryStream/VectorStream.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -13,6 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
+#include <memory>
 #include <vector>
 #include <string>
 #include <fstream>
@@ -26,7 +27,7 @@ namespace LIEF {
 result<VectorStream> VectorStream::from_file(const std::string& file) {
   std::ifstream ifs(file, std::ios::in | std::ios::binary);
   if (!ifs) {
-    LIEF_ERR("Can't open '{}'", file);
+    LIEF_ERR("Failed to open '{}'", file);
     return make_error_code(lief_errors::read_error);
   }

@@ -40,12 +41,13 @@ result<VectorStream> VectorStream::from_file(const std::string& file) {
   return VectorStream{std::move(data)};
 }

-std::unique_ptr<SpanStream> VectorStream::slice(uint32_t offset, size_t size) const {
+std::unique_ptr<SpanStream> VectorStream::slice(uint32_t offset,
+                                                size_t size) const {
   if (offset > binary_.size() || (offset + size) > binary_.size()) {
     return nullptr;
   }
   const uint8_t* start = binary_.data() + offset;
-  return std::unique_ptr<SpanStream>(new SpanStream(start, size));
+  return std::make_unique<SpanStream>(start, size);
 }


@@ -54,4 +56,3 @@ std::unique_ptr<SpanStream> VectorStream::slice(uint32_t offset) const {
 }

 }
-
diff --git a/deps/LIEF/src/CMakeLists.txt b/deps/LIEF/src/CMakeLists.txt
index 8bce2958e35..738d64750dc 100644
--- a/deps/LIEF/src/CMakeLists.txt
+++ b/deps/LIEF/src/CMakeLists.txt
@@ -12,11 +12,14 @@ target_sources(LIB_LIEF PRIVATE
   utils.cpp
   range.cpp
   visitors/hash.cpp
+  threading_alt.cpp
+  mbedtls_init.cpp
 )

 add_subdirectory(BinaryStream)
 add_subdirectory(Abstract)
 add_subdirectory(platforms)
+add_subdirectory(runtime)

 if(LIEF_ENABLE_JSON)
   target_sources(LIB_LIEF PRIVATE visitors/json.cpp)
@@ -55,6 +58,7 @@ if(LIEF_ART)
 endif()

 if(NOT LIEF_DEBUG_INFO_SUPPORT)
+  target_sources(LIB_LIEF PRIVATE DebugDeclOpt.cpp)
   add_subdirectory(DWARF)
   add_subdirectory(PDB)
 endif()
@@ -70,4 +74,3 @@ endif()
 if(NOT LIEF_ASM)
   add_subdirectory(asm)
 endif()
-
diff --git a/deps/LIEF/src/COFF/AuxiliarySymbol.cpp b/deps/LIEF/src/COFF/AuxiliarySymbol.cpp
index e49faeb1b0d..b7f7499845a 100644
--- a/deps/LIEF/src/COFF/AuxiliarySymbol.cpp
+++ b/deps/LIEF/src/COFF/AuxiliarySymbol.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -31,29 +31,22 @@
 namespace LIEF::COFF {

 std::unique_ptr<AuxiliarySymbol>
-  AuxiliarySymbol::parse(Symbol& sym, std::vector<uint8_t> payload)
-{
+    AuxiliarySymbol::parse(Symbol& sym, std::vector<uint8_t> payload) {
   assert(payload.size() >= 18);
   const TYPE ty = get_aux_type(sym);

   switch (ty) {
-    case TYPE::CLR_TOKEN:
-      return AuxiliaryCLRToken::parse(payload);
+    case TYPE::CLR_TOKEN: return AuxiliaryCLRToken::parse(payload);

-    case TYPE::FUNC_DEF:
-      return AuxiliaryFunctionDefinition::parse(payload);
+    case TYPE::FUNC_DEF: return AuxiliaryFunctionDefinition::parse(payload);

-    case TYPE::BF_AND_EF:
-      return AuxiliarybfAndefSymbol::parse(sym, std::move(payload));
+    case TYPE::BF_AND_EF: return AuxiliarybfAndefSymbol::parse(sym, payload);

-    case TYPE::WEAK_EXTERNAL:
-      return AuxiliaryWeakExternal::parse(payload);
+    case TYPE::WEAK_EXTERNAL: return AuxiliaryWeakExternal::parse(payload);

-    case TYPE::FILE:
-      return AuxiliaryFile::parse(payload);
+    case TYPE::FILE: return AuxiliaryFile::parse(payload);

-    case TYPE::SEC_DEF:
-      return AuxiliarySectionDefinition::parse(payload);
+    case TYPE::SEC_DEF: return AuxiliarySectionDefinition::parse(payload);

     case TYPE::UNKNOWN:
       return std::make_unique<AuxiliarySymbol>(std::move(payload));
@@ -79,8 +72,7 @@ AuxiliarySymbol::TYPE AuxiliarySymbol::get_aux_type(const Symbol& sym) {
     return TYPE::WEAK_EXTERNAL;
   }

-  if (sym.is_external() &&
-      sym.base_type() == Symbol::BASE_TYPE::TY_NULL &&
+  if (sym.is_external() && sym.base_type() == Symbol::BASE_TYPE::TY_NULL &&
       sym.complex_type() == Symbol::COMPLEX_TYPE::TY_FUNCTION &&
       !Symbol::is_reversed_sec_idx(sym.section_idx()))
   {
diff --git a/deps/LIEF/src/COFF/AuxiliarySymbols/AuxiliaryCLRToken.cpp b/deps/LIEF/src/COFF/AuxiliarySymbols/AuxiliaryCLRToken.cpp
index 922776d0f7c..f29896eec17 100644
--- a/deps/LIEF/src/COFF/AuxiliarySymbols/AuxiliaryCLRToken.cpp
+++ b/deps/LIEF/src/COFF/AuxiliarySymbols/AuxiliaryCLRToken.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -33,35 +33,35 @@ namespace LIEF::COFF {
 //     BYTE  rgbReserved[12];           // Must be 0
 // } IMAGE_AUX_SYMBOL_TOKEN_DEF
 std::unique_ptr<AuxiliaryCLRToken>
-  AuxiliaryCLRToken::parse(const std::vector<uint8_t>& payload)
-{
+    AuxiliaryCLRToken::parse(const std::vector<uint8_t>& payload) {
   SpanStream stream(payload);

   auto bAuxType = stream.read<uint8_t>();
   if (!bAuxType) {
-    LIEF_WARN("AuxiliaryCLRToken error (line: {})", __LINE__);
+    LIEF_WARN("Failed to parse AuxiliaryCLRToken field (line: {})", __LINE__);
     return std::make_unique<AuxiliaryCLRToken>();
   }

   auto bReserved = stream.read<uint8_t>();
   if (!bReserved) {
-    LIEF_WARN("AuxiliaryCLRToken error (line: {})", __LINE__);
+    LIEF_WARN("Failed to parse AuxiliaryCLRToken field (line: {})", __LINE__);
     return std::make_unique<AuxiliaryCLRToken>();
   }

   auto SymbolTableIndex = stream.read<uint32_t>();
   if (!SymbolTableIndex) {
-    LIEF_WARN("AuxiliaryCLRToken error (line: {})", __LINE__);
+    LIEF_WARN("Failed to parse AuxiliaryCLRToken field (line: {})", __LINE__);
     return std::make_unique<AuxiliaryCLRToken>();
   }

   std::vector<uint8_t> rgbReserved;
   if (!stream.read_data(rgbReserved, 12)) {
-    LIEF_WARN("AuxiliaryCLRToken error (line: {})", __LINE__);
+    LIEF_WARN("Failed to parse AuxiliaryCLRToken field (line: {})", __LINE__);
     return std::make_unique<AuxiliaryCLRToken>();
   }
-  return std::make_unique<AuxiliaryCLRToken>(
-      *bAuxType, *bReserved, *SymbolTableIndex, std::move(rgbReserved));
+  return std::make_unique<AuxiliaryCLRToken>(*bAuxType, *bReserved,
+                                             *SymbolTableIndex,
+                                             std::move(rgbReserved));
 }

 std::string AuxiliaryCLRToken::to_string() const {
diff --git a/deps/LIEF/src/COFF/AuxiliarySymbols/AuxiliaryFile.cpp b/deps/LIEF/src/COFF/AuxiliarySymbols/AuxiliaryFile.cpp
index ed7179d3f96..6682e06f49e 100644
--- a/deps/LIEF/src/COFF/AuxiliarySymbols/AuxiliaryFile.cpp
+++ b/deps/LIEF/src/COFF/AuxiliarySymbols/AuxiliaryFile.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -21,12 +21,11 @@
 namespace LIEF::COFF {

 std::unique_ptr<AuxiliaryFile>
-  AuxiliaryFile::parse(const std::vector<uint8_t>& payload)
-{
+    AuxiliaryFile::parse(const std::vector<uint8_t>& payload) {
   SpanStream stream(payload);
   auto file = stream.read_string();
   if (!file) {
-    LIEF_WARN("Can't parse AuxiliaryFile.file");
+    LIEF_WARN("Failed to parse AuxiliaryFile.file");
     return std::make_unique<AuxiliaryFile>();
   }
   return std::make_unique<AuxiliaryFile>(std::move(*file));
diff --git a/deps/LIEF/src/COFF/AuxiliarySymbols/AuxiliaryFunctionDefinition.cpp b/deps/LIEF/src/COFF/AuxiliarySymbols/AuxiliaryFunctionDefinition.cpp
index c51cc96ed30..8cc597d1f47 100644
--- a/deps/LIEF/src/COFF/AuxiliarySymbols/AuxiliaryFunctionDefinition.cpp
+++ b/deps/LIEF/src/COFF/AuxiliarySymbols/AuxiliaryFunctionDefinition.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -22,50 +22,54 @@
 namespace LIEF::COFF {

 std::unique_ptr<AuxiliaryFunctionDefinition>
-  AuxiliaryFunctionDefinition::parse(const std::vector<uint8_t>& payload)
-{
+    AuxiliaryFunctionDefinition::parse(const std::vector<uint8_t>& payload) {
   SpanStream stream(payload);
   auto TagIndex = stream.read<uint32_t>();
   if (!TagIndex) {
-    LIEF_WARN("AuxiliaryFunctionDefinition error (line: {})", __LINE__);
+    LIEF_WARN("Failed to parse AuxiliaryFunctionDefinition field (line: {})",
+              __LINE__);
     return std::make_unique<AuxiliaryFunctionDefinition>();
   }

   auto TotalSize = stream.read<uint32_t>();
   if (!TotalSize) {
-    LIEF_WARN("AuxiliaryFunctionDefinition error (line: {})", __LINE__);
+    LIEF_WARN("Failed to parse AuxiliaryFunctionDefinition field (line: {})",
+              __LINE__);
     return std::make_unique<AuxiliaryFunctionDefinition>();
   }

   auto PointerToLinenumber = stream.read<uint32_t>();
   if (!PointerToLinenumber) {
-    LIEF_WARN("AuxiliaryFunctionDefinition error (line: {})", __LINE__);
+    LIEF_WARN("Failed to parse AuxiliaryFunctionDefinition field (line: {})",
+              __LINE__);
     return std::make_unique<AuxiliaryFunctionDefinition>();
   }

   auto PointerToNextFunction = stream.read<uint32_t>();
   if (!PointerToNextFunction) {
-    LIEF_WARN("AuxiliaryFunctionDefinition error (line: {})", __LINE__);
+    LIEF_WARN("Failed to parse AuxiliaryFunctionDefinition field (line: {})",
+              __LINE__);
     return std::make_unique<AuxiliaryFunctionDefinition>();
   }

   auto Unused = stream.read<uint16_t>();
   if (!Unused) {
-    LIEF_WARN("AuxiliaryFunctionDefinition error (line: {})", __LINE__);
+    LIEF_WARN("Failed to parse AuxiliaryFunctionDefinition field (line: {})",
+              __LINE__);
     return std::make_unique<AuxiliaryFunctionDefinition>();
   }

   return std::make_unique<AuxiliaryFunctionDefinition>(
-    *TagIndex, *TotalSize, *PointerToLinenumber, *PointerToNextFunction, *Unused
+      *TagIndex, *TotalSize, *PointerToLinenumber, *PointerToNextFunction, *Unused
   );
 }

 std::string AuxiliaryFunctionDefinition::to_string() const {
   std::ostringstream oss;
   oss << "AuxiliaryFunctionDefinition {\n";
-  oss << fmt::format("  Tag index: 0x{:06x}\n", tag_index());
-  oss << fmt::format("  Total size: 0x{:06x}\n", total_size());
-  oss << fmt::format("  Pointer to line number: 0x{:06x}\n", ptr_to_line_number());
+  oss << fmt::format("  Tag index: {:#08x}\n", tag_index());
+  oss << fmt::format("  Total size: {:#08x}\n", total_size());
+  oss << fmt::format("  Pointer to line number: {:#08x}\n", ptr_to_line_number());
   oss << fmt::format("  Pointer to next function: {}\n", ptr_to_next_func());
   oss << "}\n";
   return oss.str();
diff --git a/deps/LIEF/src/COFF/AuxiliarySymbols/AuxiliarySectionDefinition.cpp b/deps/LIEF/src/COFF/AuxiliarySymbols/AuxiliarySectionDefinition.cpp
index fed95aaa085..69a2c3b8e3c 100644
--- a/deps/LIEF/src/COFF/AuxiliarySymbols/AuxiliarySectionDefinition.cpp
+++ b/deps/LIEF/src/COFF/AuxiliarySymbols/AuxiliarySectionDefinition.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -24,82 +24,89 @@
 namespace LIEF::COFF {

 std::unique_ptr<AuxiliarySectionDefinition>
-  AuxiliarySectionDefinition::parse(const std::vector<uint8_t>& payload)
-{
+    AuxiliarySectionDefinition::parse(const std::vector<uint8_t>& payload) {
   const bool isbigobj = payload.size() == sizeof(details::symbol32);

   SpanStream stream(payload);
   auto Length = stream.read<uint32_t>();
   if (!Length) {
-    LIEF_WARN("AuxiliarySectionDefinition error (line: {})", __LINE__);
+    LIEF_WARN("Failed to parse AuxiliarySectionDefinition field (line: {})",
+              __LINE__);
     return std::make_unique<AuxiliarySectionDefinition>();
   }

   auto NumberOfRelocations = stream.read<uint16_t>();
   if (!NumberOfRelocations) {
-    LIEF_WARN("AuxiliarySectionDefinition error (line: {})", __LINE__);
+    LIEF_WARN("Failed to parse AuxiliarySectionDefinition field (line: {})",
+              __LINE__);
     return std::make_unique<AuxiliarySectionDefinition>();
   }

   auto NumberOfLinenumbers = stream.read<uint16_t>();
   if (!NumberOfLinenumbers) {
-    LIEF_WARN("AuxiliarySectionDefinition error (line: {})", __LINE__);
+    LIEF_WARN("Failed to parse AuxiliarySectionDefinition field (line: {})",
+              __LINE__);
     return std::make_unique<AuxiliarySectionDefinition>();
   }

   auto CheckSum = stream.read<uint32_t>();
   if (!CheckSum) {
-    LIEF_WARN("AuxiliarySectionDefinition error (line: {})", __LINE__);
+    LIEF_WARN("Failed to parse AuxiliarySectionDefinition field (line: {})",
+              __LINE__);
     return std::make_unique<AuxiliarySectionDefinition>();
   }

   auto Number = stream.read<uint16_t>();
   if (!Number) {
-    LIEF_WARN("AuxiliarySectionDefinition error (line: {})", __LINE__);
+    LIEF_WARN("Failed to parse AuxiliarySectionDefinition field (line: {})",
+              __LINE__);
     return std::make_unique<AuxiliarySectionDefinition>();
   }

   auto Selection = stream.read<uint8_t>();
   if (!Selection) {
-    LIEF_WARN("AuxiliarySectionDefinition error (line: {})", __LINE__);
+    LIEF_WARN("Failed to parse AuxiliarySectionDefinition field (line: {})",
+              __LINE__);
     return std::make_unique<AuxiliarySectionDefinition>();
   }

   if (!isbigobj) {
     return std::make_unique<AuxiliarySectionDefinition>(
-      *Length, *NumberOfRelocations, *NumberOfLinenumbers, *CheckSum, *Number,
-      *Selection, /*reserved=*/0
+        *Length, *NumberOfRelocations, *NumberOfLinenumbers, *CheckSum, *Number,
+        *Selection, /*reserved=*/0
     );
   }


   auto bReserved = stream.read<uint8_t>();
   if (!bReserved) {
-    LIEF_WARN("AuxiliarySectionDefinition error (line: {})", __LINE__);
+    LIEF_WARN("Failed to parse AuxiliarySectionDefinition field (line: {})",
+              __LINE__);
     return std::make_unique<AuxiliarySectionDefinition>();
   }

   auto HighNumber = stream.read<uint16_t>();
   if (!HighNumber) {
-    LIEF_WARN("AuxiliarySectionDefinition error (line: {})", __LINE__);
+    LIEF_WARN("Failed to parse AuxiliarySectionDefinition field (line: {})",
+              __LINE__);
     return std::make_unique<AuxiliarySectionDefinition>();
   }

   const uint32_t nb_sections = *HighNumber << 16 | *Number;

   return std::make_unique<AuxiliarySectionDefinition>(
-    *Length, *NumberOfRelocations, *NumberOfLinenumbers, *CheckSum, nb_sections,
-    *Selection, *bReserved
+      *Length, *NumberOfRelocations, *NumberOfLinenumbers, *CheckSum, nb_sections,
+      *Selection, *bReserved
   );
 }

 std::string AuxiliarySectionDefinition::to_string() const {
   std::ostringstream oss;
   oss << "AuxiliarySectionDefinition {\n";
-  oss << fmt::format("  Length: 0x{:06x}\n", length());
+  oss << fmt::format("  Length: {:#08x}\n", length());
   oss << fmt::format("  Number of relocations: {}\n", nb_relocs());
   oss << fmt::format("  Number of line numbers: {}\n", nb_line_numbers());
-  oss << fmt::format("  Checksum: 0x{:08x}\n", checksum());
+  oss << fmt::format("  Checksum: {:#010x}\n", checksum());
   oss << fmt::format("  Section index: {}\n", section_idx());
   oss << fmt::format("  Selection: {}\n", COFF::to_string(selection()));
   oss << fmt::format("  Reserved: {}\n", reserved());
diff --git a/deps/LIEF/src/COFF/AuxiliarySymbols/AuxiliaryWeakExternal.cpp b/deps/LIEF/src/COFF/AuxiliarySymbols/AuxiliaryWeakExternal.cpp
index d41e1010034..32e8eeb48c0 100644
--- a/deps/LIEF/src/COFF/AuxiliarySymbols/AuxiliaryWeakExternal.cpp
+++ b/deps/LIEF/src/COFF/AuxiliarySymbols/AuxiliaryWeakExternal.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -21,37 +21,34 @@
 namespace LIEF::COFF {

 std::unique_ptr<AuxiliaryWeakExternal>
-  AuxiliaryWeakExternal::parse(const std::vector<uint8_t>& payload)
-{
+    AuxiliaryWeakExternal::parse(const std::vector<uint8_t>& payload) {
   SpanStream stream(payload);

   auto TagIndex = stream.read<uint32_t>();
   if (!TagIndex) {
-    LIEF_WARN("AuxiliaryWeakExternal error (line: {})", __LINE__);
+    LIEF_WARN("Failed to parse AuxiliaryWeakExternal field (line: {})", __LINE__);
     return std::make_unique<AuxiliaryWeakExternal>();
   }

   auto Characteristics = stream.read<uint32_t>();
   if (!Characteristics) {
-    LIEF_WARN("AuxiliaryWeakExternal error (line: {})", __LINE__);
+    LIEF_WARN("Failed to parse AuxiliaryWeakExternal field (line: {})", __LINE__);
     return std::make_unique<AuxiliaryWeakExternal>();
   }

   std::vector<uint8_t> padding;
   if (!stream.read_data(padding, 10)) {
-    LIEF_WARN("AuxiliaryWeakExternal error (line: {})", __LINE__);
+    LIEF_WARN("Failed to parse AuxiliaryWeakExternal field (line: {})", __LINE__);
     return std::make_unique<AuxiliaryWeakExternal>();
   }

-  return std::make_unique<AuxiliaryWeakExternal>(
-    *TagIndex, *Characteristics, std::move(padding)
-  );
+  return std::make_unique<AuxiliaryWeakExternal>(*TagIndex, *Characteristics,
+                                                 std::move(padding));
 }

 const char* to_string(AuxiliaryWeakExternal::CHARACTERISTICS e) {
   switch (e) {
-    default:
-      return "UNKNOWN";
+    default: return "UNKNOWN";
     case AuxiliaryWeakExternal::CHARACTERISTICS::SEARCH_NOLIBRARY:
       return "SEARCH_NOLIBRARY";
     case AuxiliaryWeakExternal::CHARACTERISTICS::SEARCH_LIBRARY:
@@ -68,7 +65,8 @@ std::string AuxiliaryWeakExternal::to_string() const {
   std::ostringstream oss;
   oss << "AuxiliaryWeakExternal {\n";
   oss << fmt::format("  Symbol index: {}\n", sym_idx());
-  oss << fmt::format("  Characteristics: {} ({})\n", LIEF::COFF::to_string(characteristics()),
+  oss << fmt::format("  Characteristics: {} ({})\n",
+                     LIEF::COFF::to_string(characteristics()),
                      (int)characteristics());
   oss << "}\n";
   return oss.str();
diff --git a/deps/LIEF/src/COFF/AuxiliarySymbols/AuxiliarybfAndefSymbol.cpp b/deps/LIEF/src/COFF/AuxiliarySymbols/AuxiliarybfAndefSymbol.cpp
index cc5f9120997..926edb2704f 100644
--- a/deps/LIEF/src/COFF/AuxiliarySymbols/AuxiliarybfAndefSymbol.cpp
+++ b/deps/LIEF/src/COFF/AuxiliarySymbols/AuxiliarybfAndefSymbol.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -17,8 +17,8 @@
 namespace LIEF::COFF {

 std::unique_ptr<AuxiliarybfAndefSymbol>
-  AuxiliarybfAndefSymbol::parse(Symbol& /*sym*/, const std::vector<uint8_t>& /*payload*/)
-{
+    AuxiliarybfAndefSymbol::parse(Symbol& /*sym*/,
+                                  const std::vector<uint8_t>& /*payload*/) {
   return std::make_unique<AuxiliarybfAndefSymbol>();
 }
 }
diff --git a/deps/LIEF/src/COFF/BigObjHeader.cpp b/deps/LIEF/src/COFF/BigObjHeader.cpp
index 41bfdae2f4a..8888269e03e 100644
--- a/deps/LIEF/src/COFF/BigObjHeader.cpp
+++ b/deps/LIEF/src/COFF/BigObjHeader.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -39,8 +39,7 @@ std::unique_ptr<BigObjHeader> BigObjHeader::create(BinaryStream& stream) {

   // BigObj specific
   hdr->version_ = raw->version;
-  std::copy(std::begin(raw->uuid), std::end(raw->uuid),
-            std::begin(hdr->uuid_));
+  std::copy(std::begin(raw->uuid), std::end(raw->uuid), std::begin(hdr->uuid_));
   hdr->sizeof_data_ = raw->unused1;
   hdr->flags_ = raw->unused2;
   hdr->metadata_size_ = raw->unused3;
@@ -50,17 +49,16 @@ std::unique_ptr<BigObjHeader> BigObjHeader::create(BinaryStream& stream) {
 }

 std::string BigObjHeader::to_string() const {
-  using namespace fmt;
   std::ostringstream oss;

   static constexpr auto WIDTH = 16;
   oss << Header::to_string() << '\n';
-  oss << format("{:>{}} Version\n", version(), WIDTH);
-  oss << format("{:>{}} uuid: {}\n", "", WIDTH, uuid_to_str_impl(uuid_));
-  oss << format("{:>#{}x} Size of data\n", sizeof_data(), WIDTH);
-  oss << format("{:>#{}x} Flags\n", flags(), WIDTH);
-  oss << format("{:>#{}x} Metadata size\n", metadata_size(), WIDTH);
-  oss << format("{:>#{}x} Metadata offset", metadata_offset(), WIDTH);
+  oss << fmt::format("{:>{}} Version\n", version(), WIDTH);
+  oss << fmt::format("{:>{}} uuid: {}\n", "", WIDTH, uuid_to_str_impl(uuid_));
+  oss << fmt::format("{:>#{}x} Size of data\n", sizeof_data(), WIDTH);
+  oss << fmt::format("{:>#{}x} Flags\n", flags(), WIDTH);
+  oss << fmt::format("{:>#{}x} Metadata size\n", metadata_size(), WIDTH);
+  oss << fmt::format("{:>#{}x} Metadata offset", metadata_offset(), WIDTH);
   return oss.str();
 }

diff --git a/deps/LIEF/src/COFF/Binary.cpp b/deps/LIEF/src/COFF/Binary.cpp
index cc93a7eab52..6f5144d073c 100644
--- a/deps/LIEF/src/COFF/Binary.cpp
+++ b/deps/LIEF/src/COFF/Binary.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -33,17 +33,13 @@ Binary::~Binary() = default;


 Binary::it_const_function Binary::functions() const {
-  return {symbols_, [] (const std::unique_ptr<Symbol>& sym) {
-    return sym->is_function();
-    }
-  };
+  return {symbols_,
+          [](const std::unique_ptr<Symbol>& sym) { return sym->is_function(); }};
 }

 Binary::it_functions Binary::functions() {
-  return {symbols_, [] (const std::unique_ptr<Symbol>& sym) {
-    return sym->is_function();
-    }
-  };
+  return {symbols_,
+          [](const std::unique_ptr<Symbol>& sym) { return sym->is_function(); }};
 }

 const Symbol* Binary::find_function(const std::string& name) const {
@@ -65,7 +61,6 @@ const Symbol* Binary::find_demangled_function(const std::string& name) const {
 }

 std::string Binary::to_string() const {
-  using namespace fmt;
   std::ostringstream oss;

   oss << header() << '\n';
@@ -74,8 +69,7 @@ std::string Binary::to_string() const {
     const auto secs = sections();
     for (size_t i = 0; i < secs.size(); ++i) {
       oss << fmt::format("Section #{:02} {{\n", i)
-         << indent(LIEF::to_string(secs[i]), 2)
-         << "}\n";
+          << indent(LIEF::to_string(secs[i]), 2) << "}\n";
     }
   }

@@ -83,15 +77,14 @@ std::string Binary::to_string() const {
     oss << fmt::format("Symbols (#{})\n", syms.size());
     for (size_t i = 0; i < syms.size(); ++i) {
       oss << fmt::format("Symbol[{:02d}] {{\n", i)
-         << indent(LIEF::to_string(syms[i]), 2)
-         << "}\n";
+          << indent(LIEF::to_string(syms[i]), 2) << "}\n";
     }
   }

   if (auto relocs = relocations(); !relocs.empty()) {
     oss << fmt::format("Relocations (#{})\n", relocs.size());
-    for (size_t i = 0; i < relocs.size(); ++i) {
-      oss << "  " << relocs[i] << '\n';
+    for (const Relocation& reloc : relocs) {
+      oss << "  " << reloc << '\n';
     }
   }

diff --git a/deps/LIEF/src/COFF/Header.cpp b/deps/LIEF/src/COFF/Header.cpp
index 4ef5752b1ec..aa48515891f 100644
--- a/deps/LIEF/src/COFF/Header.cpp
+++ b/deps/LIEF/src/COFF/Header.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -30,20 +30,16 @@ std::unique_ptr<Header> Header::create(BinaryStream& stream) {

 std::unique_ptr<Header> Header::create(BinaryStream& stream, KIND kind) {
   switch (kind) {
-    case KIND::REGULAR:
-      return RegularHeader::create(stream);
+    case KIND::REGULAR: return RegularHeader::create(stream);

-    case KIND::BIGOBJ:
-      return BigObjHeader::create(stream);
+    case KIND::BIGOBJ: return BigObjHeader::create(stream);

-    case KIND::UNKNOWN:
-      return nullptr;
+    case KIND::UNKNOWN: return nullptr;
   }
   return nullptr;
 }

 std::string Header::to_string() const {
-  using namespace fmt;
   std::ostringstream oss;

   static constexpr auto WIDTH = 16;
@@ -51,13 +47,15 @@ std::string Header::to_string() const {
     oss << "BigObj ";
   }
   oss << "COFF Binary\n";
-  oss << format("{:>#{}x} Machine ({})\n", (uint16_t)machine(), WIDTH,
-                COFF::to_string(machine()));
-  oss << format("{:>{}} Number of sections\n", (uint16_t)nb_sections(), WIDTH);
-  oss << format("{:>#{}x} Time date stamp: {}\n", timedatestamp(), WIDTH,
-                ts_to_str(timedatestamp()));
-  oss << format("{:>#{}x} File pointer to symbol table\n", pointerto_symbol_table(), WIDTH);
-  oss << format("{:>{}} Number of symbols", nb_symbols(), WIDTH);
+  oss << fmt::format("{:>#{}x} Machine ({})\n", (uint16_t)machine(), WIDTH,
+                     COFF::to_string(machine()));
+  oss << fmt::format("{:>{}} Number of sections\n", (uint16_t)nb_sections(),
+                     WIDTH);
+  oss << fmt::format("{:>#{}x} Time date stamp: {}\n", timedatestamp(), WIDTH,
+                     ts_to_str(timedatestamp()));
+  oss << fmt::format("{:>#{}x} File pointer to symbol table\n",
+                     pointerto_symbol_table(), WIDTH);
+  oss << fmt::format("{:>{}} Number of symbols", nb_symbols(), WIDTH);
   return oss.str();
 }
 }
diff --git a/deps/LIEF/src/COFF/Parser.cpp b/deps/LIEF/src/COFF/Parser.cpp
index f49f9bb423f..f8f19393a5e 100644
--- a/deps/LIEF/src/COFF/Parser.cpp
+++ b/deps/LIEF/src/COFF/Parser.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -24,14 +24,22 @@
 #include "LIEF/COFF/AuxiliarySymbol.hpp"
 #include "LIEF/COFF/AuxiliarySymbols/AuxiliaryCLRToken.hpp"

+#include "LIEF/BinaryStream/VectorStream.hpp"
+#include "LIEF/BinaryStream/SpanStream.hpp"
+
 #include "COFF/structures.hpp"

 #include "logging.hpp"

 namespace LIEF::COFF {
+Parser::Parser(std::unique_ptr<BinaryStream> stream, const ParserConfig& config,
+               Header::KIND kind) :
+  stream_(std::move(stream)),
+  kind_(kind),
+  config_(config) {}
+
 std::unique_ptr<Binary> Parser::parse(std::unique_ptr<BinaryStream> stream,
-                                      const ParserConfig& config)
-{
+                                      const ParserConfig& config) {
   if (stream == nullptr) {
     return nullptr;
   }
@@ -50,6 +58,15 @@ std::unique_ptr<Binary> Parser::parse(std::unique_ptr<BinaryStream> stream,
   return nullptr;
 }

+std::unique_ptr<Binary> Parser::parse(const std::string& file,
+                                      const ParserConfig& config) {
+  if (auto strm = VectorStream::from_file(file)) {
+    return parse(std::unique_ptr<VectorStream>(new VectorStream(std::move(*strm))),
+                 config);
+  }
+  return nullptr;
+}
+
 ok_error_t Parser::process() {
   if (!parse_header()) {
     LIEF_WARN("Failed to parse COFF header");
@@ -57,12 +74,12 @@ ok_error_t Parser::process() {
   }

   if (!parse_optional_header()) {
-    LIEF_WARN("Failed to parse optional header");
+    LIEF_WARN("Failed to parse COFF optional header");
     return make_error_code(lief_errors::parsing_error);
   }

   if (!parse_string_table()) {
-    LIEF_WARN("Failed to parse the string table");
+    LIEF_WARN("Failed to parse string table");
     return make_error_code(lief_errors::parsing_error);
   }

@@ -83,7 +100,7 @@ ok_error_t Parser::parse_header() {
   LIEF_DEBUG("Parsing COFF header ({})", to_string(kind_));
   std::unique_ptr<Header> hdr = Header::create(*stream_, kind_);
   if (hdr == nullptr) {
-    LIEF_DEBUG("Error: {}:{}", __FUNCTION__, __LINE__);
+    LIEF_DEBUG("Failed to create header at {}:{}", __FUNCTION__, __LINE__);
     return make_error_code(lief_errors::parsing_error);
   }
   bin_->header_ = std::move(hdr);
@@ -105,7 +122,7 @@ ok_error_t Parser::parse_optional_header() {

   std::vector<uint8_t> raw_opt_hdr;
   if (!stream_->read_data(raw_opt_hdr, sz)) {
-    LIEF_ERR("Can't read COFF optional header");
+    LIEF_ERR("Failed to read COFF optional header");
     return make_error_code(lief_errors::parsing_error);
   }

@@ -113,29 +130,41 @@ ok_error_t Parser::parse_optional_header() {
 }

 ok_error_t Parser::parse_sections() {
-  const size_t nb_sections = bin_->header().nb_sections();
-  LIEF_DEBUG("Parsing #{} section (offset=0x{:08x})", nb_sections,
-              (uint32_t)stream_->pos());
+  size_t nb_sections = bin_->header().nb_sections();
+  if (nb_sections > MAX_NB_SECTIONS) {
+    LIEF_WARN("COFF number of sections ({}) exceeds the limit ({})", nb_sections,
+              MAX_NB_SECTIONS);
+    nb_sections = MAX_NB_SECTIONS;
+  }
+  LIEF_DEBUG("Parsing {} sections (offset={:#010x})", nb_sections,
+             (uint32_t)stream_->pos());
   for (size_t i = 0; i < nb_sections; ++i) {
     std::unique_ptr<Section> sec = Section::parse(*stream_);
     if (sec == nullptr) {
-      LIEF_WARN("Can't parse section #{}", i);
+      LIEF_WARN("Failed to parse section #{}", i);
       break;
     }
     if (!parse_relocations(*sec)) {
-      LIEF_INFO("Failed to parse relocation of section #{}", i);
+      LIEF_INFO("Failed to parse relocations for section #{}", i);
     }

     // Resolve symbols associated with this section
-    auto range = std::equal_range(symsec_.begin(), symsec_.end(),
-        SymSec{i, nullptr}
-    );
-    for (auto it = range.first; it != range.second; ++it) {
+    auto [first, last] =
+        std::equal_range(symsec_.begin(), symsec_.end(), SymSec{i, nullptr});
+    for (auto it = first; it != last; ++it) {
       assert(it->symbol != nullptr);
       it->symbol->section_ = sec.get();
       sec->symbols_.push_back(it->symbol);
     }

+    if (const std::string& name = sec->name(); name.size() > 1 && name[0] == '/') {
+      char* endptr = nullptr;
+      uint32_t offset = std::strtol(name.c_str() + 1, &endptr, /*base=*/10);
+      if (String* coff_str = bin_->find_string(offset)) {
+        sec->coff_string_ = coff_str;
+      }
+    }
+
     bin_->sections_.push_back(std::move(sec));
   }
   return ok();
@@ -149,22 +178,22 @@ ok_error_t Parser::parse_relocations(Section& section) {
     return ok();
   }

-  LIEF_DEBUG("Parsing #{} relocations at offset: {:#x} (section: '{}')",
+  LIEF_DEBUG("Parsing {} relocations at offset {:#x} (section: '{}')",
              nb_relocations, reloc_offset, section.name());

   ScopedStream strm(*stream_, reloc_offset);

   if (section.has_extended_relocations()) {
     std::unique_ptr<Relocation> reloc =
-      Relocation::parse(*strm, bin_->header().machine());
+        Relocation::parse(*strm, bin_->header().machine());

     if (reloc == nullptr) {
-      LIEF_ERR("Can't parse the first relocations");
+      LIEF_ERR("Failed to parse first relocation");
       return ok();
     }

     if (reloc->address() < 1) {
-      LIEF_ERR("Invalid number of relocations");
+      LIEF_ERR("Invalid relocation count");
       return ok();
     }

@@ -176,13 +205,16 @@ ok_error_t Parser::parse_relocations(Section& section) {
     bin_->relocations_.push_back(std::move(reloc));
   }

+  nb_relocations = std::min<size_t>(nb_relocations,
+                                    stream_->size() / sizeof(details::relocation));

   for (size_t i = 0; i < nb_relocations; ++i) {
     std::unique_ptr<Relocation> reloc =
-      Relocation::parse(*strm, bin_->header().machine());
+        Relocation::parse(*strm, bin_->header().machine());

     if (reloc == nullptr) {
-      LIEF_WARN("Can't parse relocation #{} in section: '{}'", i, section.name());
+      LIEF_WARN("Failed to parse relocation #{} in section '{}'", i,
+                section.name());
       break;
     }

@@ -199,11 +231,10 @@ ok_error_t Parser::parse_relocations(Section& section) {
 }

 String* Parser::find_coff_string(uint32_t offset) const {
-  auto it = memoize_coff_str_.find(offset);
-  if (it == memoize_coff_str_.end()) {
-    return nullptr;
+  if (auto it = memoize_coff_str_.find(offset); it != memoize_coff_str_.end()) {
+    return &bin_->strings_table_[it->second];
   }
-  return &bin_->strings_table_[it->second];
+  return nullptr;
 }

 ok_error_t Parser::parse_symbols() {
@@ -215,20 +246,18 @@ ok_error_t Parser::parse_symbols() {
   }

   ScopedStream strm(*stream_, symbols_offset);
-  Symbol::parsing_context_t ctx {
-    /*.find_string =*/ [this] (uint32_t offset) {
-      return this->find_coff_string(offset);
-    },
-    /*is_bigobj=*/kind_ == Header::KIND::BIGOBJ
-  };
-  LIEF_DEBUG("Parsing #{} symbols at {:#x}", nb_symbols, symbols_offset);
+  Symbol::parsing_context_t ctx{/*.find_string =*/[this](uint32_t offset) {
+                                  return this->find_coff_string(offset);
+                                },
+                                /*is_bigobj=*/kind_ == Header::KIND::BIGOBJ};
+  LIEF_DEBUG("Parsing {} symbols at {:#x}", nb_symbols, symbols_offset);

   std::vector<AuxiliaryCLRToken*> pending_resolution;
   for (size_t idx = 0; idx < nb_symbols;) {
     size_t current_idx = idx;
     std::unique_ptr<Symbol> sym = Symbol::parse(ctx, *strm, &idx);
     if (sym == nullptr) {
-      LIEF_WARN("Can't parse symbol #{}", idx);
+      LIEF_WARN("Failed to parse symbol #{}", idx);
       break;
     }

@@ -240,7 +269,9 @@ ok_error_t Parser::parse_symbols() {
       pending_resolution.push_back(crl_token);
     }

-    if (sym->section_idx() > 0 && (uint32_t)sym->section_idx() <= hdr.nb_sections()) {
+    if (sym->section_idx() > 0 &&
+        (uint32_t)sym->section_idx() <= hdr.nb_sections())
+    {
       symsec_.push_back({(size_t)sym->section_idx() - 1, sym.get()});
     }

@@ -271,13 +302,21 @@ ok_error_t Parser::parse_string_table() {
   if (symbols_offset == 0) {
     return ok();
   }
-  const size_t sizeof_sym =
-    kind_ ==  Header::KIND::BIGOBJ ? sizeof(details::symbol32) :
-                                     sizeof(details::symbol16);
+  const size_t sizeof_sym = kind_ == Header::KIND::BIGOBJ ?
+                                sizeof(details::symbol32) :
+                                sizeof(details::symbol16);

-  const uint32_t string_tbl_offset = symbols_offset + nb_symbols * sizeof_sym;
+  const uint64_t string_tbl_offset =
+      static_cast<uint64_t>(symbols_offset) +
+      static_cast<uint64_t>(nb_symbols) * sizeof_sym;
+
+  if (string_tbl_offset + sizeof(uint32_t) > stream_->size()) {
+    LIEF_DEBUG("COFF string table offset ({:#x}) is out of bounds",
+               string_tbl_offset);
+    return ok();
+  }

-  LIEF_DEBUG("Parsing string table (offset: {:#x})", string_tbl_offset);
+  LIEF_DEBUG("Parsing string table (offset {:#x})", string_tbl_offset);

   ScopedStream scoped(*stream_, string_tbl_offset);
   auto table_sz = scoped->read<uint32_t>();
@@ -303,10 +342,10 @@ ok_error_t Parser::parse_string_table() {
       break;
     }

-    LIEF_DEBUG("string[0x{:06x}]: {}", pos, *str);
+    LIEF_DEBUG("string[{:#08x}]: {}", pos, *str);
     memoize(String(pos, std::move(*str)));
   }
-  LIEF_DEBUG("#{} strings found", bin_->strings_table_.size());
+  LIEF_DEBUG("{} strings found", bin_->strings_table_.size());

   return ok();
 }
diff --git a/deps/LIEF/src/COFF/RegularHeader.cpp b/deps/LIEF/src/COFF/RegularHeader.cpp
index 583d626ea04..96e9684cbe0 100644
--- a/deps/LIEF/src/COFF/RegularHeader.cpp
+++ b/deps/LIEF/src/COFF/RegularHeader.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -47,13 +47,13 @@ std::unique_ptr<RegularHeader> RegularHeader::create(BinaryStream& stream) {
 }

 std::string RegularHeader::to_string() const {
-  using namespace fmt;
   std::ostringstream oss;

   static constexpr auto WIDTH = 16;
   oss << Header::to_string() << '\n';
-  oss << format("{:>{}} Size of optional header\n", sizeof_optionalheader(), WIDTH);
-  oss << format("{:>#{}x} Characteristics", characteristics(), WIDTH);
+  oss << fmt::format("{:>{}} Size of optional header\n", sizeof_optionalheader(),
+                     WIDTH);
+  oss << fmt::format("{:>#{}x} Characteristics", characteristics(), WIDTH);
   return oss.str();
 }

diff --git a/deps/LIEF/src/COFF/Relocation.cpp b/deps/LIEF/src/COFF/Relocation.cpp
index 47e0c1392ce..35fc240af03 100644
--- a/deps/LIEF/src/COFF/Relocation.cpp
+++ b/deps/LIEF/src/COFF/Relocation.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -27,9 +27,8 @@
 #include "frozen.hpp"

 namespace LIEF::COFF {
-std::unique_ptr<Relocation> Relocation::parse(
-    BinaryStream& stream, Header::MACHINE_TYPES arch)
-{
+std::unique_ptr<Relocation> Relocation::parse(BinaryStream& stream,
+                                              Header::MACHINE_TYPES arch) {
   auto raw_reloc = stream.read<details::relocation>();
   if (!raw_reloc) {
     return nullptr;
@@ -44,9 +43,8 @@ std::unique_ptr<Relocation> Relocation::parse(
 std::string Relocation::to_string() const {
   using fmt::format;
   std::ostringstream oss;
-  oss << format("0x{:08x} {:>26} 0x{:08x}", address(),
-    COFF::to_string(type()), symbol_idx()
-  );
+  oss << format("{:#010x} {:>26} {:#010x}", address(), COFF::to_string(type()),
+                symbol_idx());
   if (const Symbol* sym = symbol()) {
     oss << " symbol=" << sym->name();
   }
@@ -58,94 +56,94 @@ std::string Relocation::to_string() const {
 }

 const char* to_string(Relocation::TYPE e) {
-  #define ENTRY(X) std::pair(Relocation::TYPE::X, #X)
-  STRING_MAP enums2str {
-    ENTRY(UNKNOWN),
+#define ENTRY(X) std::pair(Relocation::TYPE::X, #X)
+  STRING_MAP enums2str{
+      ENTRY(UNKNOWN),

-    ENTRY(AMD64_ABSOLUTE),
-    ENTRY(AMD64_ADDR32),
-    ENTRY(AMD64_ADDR32NB),
-    ENTRY(AMD64_ADDR64),
-    ENTRY(AMD64_PAIR),
-    ENTRY(AMD64_REL32),
-    ENTRY(AMD64_REL32_1),
-    ENTRY(AMD64_REL32_2),
-    ENTRY(AMD64_REL32_3),
-    ENTRY(AMD64_REL32_4),
-    ENTRY(AMD64_REL32_5),
-    ENTRY(AMD64_SECREL),
-    ENTRY(AMD64_SECREL7),
-    ENTRY(AMD64_SECTION),
-    ENTRY(AMD64_SREL32),
-    ENTRY(AMD64_SSPAN32),
-    ENTRY(AMD64_TOKEN),
+      ENTRY(AMD64_ABSOLUTE),
+      ENTRY(AMD64_ADDR32),
+      ENTRY(AMD64_ADDR32NB),
+      ENTRY(AMD64_ADDR64),
+      ENTRY(AMD64_PAIR),
+      ENTRY(AMD64_REL32),
+      ENTRY(AMD64_REL32_1),
+      ENTRY(AMD64_REL32_2),
+      ENTRY(AMD64_REL32_3),
+      ENTRY(AMD64_REL32_4),
+      ENTRY(AMD64_REL32_5),
+      ENTRY(AMD64_SECREL),
+      ENTRY(AMD64_SECREL7),
+      ENTRY(AMD64_SECTION),
+      ENTRY(AMD64_SREL32),
+      ENTRY(AMD64_SSPAN32),
+      ENTRY(AMD64_TOKEN),

-    ENTRY(ARM64_ABSOLUTE),
-    ENTRY(ARM64_ADDR32),
-    ENTRY(ARM64_ADDR32NB),
-    ENTRY(ARM64_ADDR64),
-    ENTRY(ARM64_BRANCH14),
-    ENTRY(ARM64_BRANCH19),
-    ENTRY(ARM64_BRANCH26),
-    ENTRY(ARM64_PAGEBASE_REL21),
-    ENTRY(ARM64_PAGEOFFSET_12A),
-    ENTRY(ARM64_PAGEOFFSET_12L),
-    ENTRY(ARM64_REL21),
-    ENTRY(ARM64_REL32),
-    ENTRY(ARM64_SECREL),
-    ENTRY(ARM64_SECREL_HIGH12A),
-    ENTRY(ARM64_SECREL_LOW12A),
-    ENTRY(ARM64_SECREL_LOW12L),
-    ENTRY(ARM64_SECTION),
-    ENTRY(ARM64_TOKEN),
+      ENTRY(ARM64_ABSOLUTE),
+      ENTRY(ARM64_ADDR32),
+      ENTRY(ARM64_ADDR32NB),
+      ENTRY(ARM64_ADDR64),
+      ENTRY(ARM64_BRANCH14),
+      ENTRY(ARM64_BRANCH19),
+      ENTRY(ARM64_BRANCH26),
+      ENTRY(ARM64_PAGEBASE_REL21),
+      ENTRY(ARM64_PAGEOFFSET_12A),
+      ENTRY(ARM64_PAGEOFFSET_12L),
+      ENTRY(ARM64_REL21),
+      ENTRY(ARM64_REL32),
+      ENTRY(ARM64_SECREL),
+      ENTRY(ARM64_SECREL_HIGH12A),
+      ENTRY(ARM64_SECREL_LOW12A),
+      ENTRY(ARM64_SECREL_LOW12L),
+      ENTRY(ARM64_SECTION),
+      ENTRY(ARM64_TOKEN),

-    ENTRY(ARM_ABSOLUTE),
-    ENTRY(ARM_ADDR32),
-    ENTRY(ARM_ADDR32NB),
-    ENTRY(ARM_BLX11),
-    ENTRY(ARM_BLX23T),
-    ENTRY(ARM_BLX24),
-    ENTRY(ARM_BRANCH11),
-    ENTRY(ARM_BRANCH20T),
-    ENTRY(ARM_BRANCH24),
-    ENTRY(ARM_BRANCH24T),
-    ENTRY(ARM_MOV32A),
-    ENTRY(ARM_MOV32T),
-    ENTRY(ARM_PAIR),
-    ENTRY(ARM_REL32),
-    ENTRY(ARM_SECREL),
-    ENTRY(ARM_SECTION),
-    ENTRY(ARM_TOKEN),
+      ENTRY(ARM_ABSOLUTE),
+      ENTRY(ARM_ADDR32),
+      ENTRY(ARM_ADDR32NB),
+      ENTRY(ARM_BLX11),
+      ENTRY(ARM_BLX23T),
+      ENTRY(ARM_BLX24),
+      ENTRY(ARM_BRANCH11),
+      ENTRY(ARM_BRANCH20T),
+      ENTRY(ARM_BRANCH24),
+      ENTRY(ARM_BRANCH24T),
+      ENTRY(ARM_MOV32A),
+      ENTRY(ARM_MOV32T),
+      ENTRY(ARM_PAIR),
+      ENTRY(ARM_REL32),
+      ENTRY(ARM_SECREL),
+      ENTRY(ARM_SECTION),
+      ENTRY(ARM_TOKEN),

-    ENTRY(I386_ABSOLUTE),
-    ENTRY(I386_DIR16),
-    ENTRY(I386_DIR32),
-    ENTRY(I386_DIR32NB),
-    ENTRY(I386_REL16),
-    ENTRY(I386_REL32),
-    ENTRY(I386_SECREL),
-    ENTRY(I386_SECREL7),
-    ENTRY(I386_SECTION),
-    ENTRY(I386_SEG12),
-    ENTRY(I386_TOKEN),
+      ENTRY(I386_ABSOLUTE),
+      ENTRY(I386_DIR16),
+      ENTRY(I386_DIR32),
+      ENTRY(I386_DIR32NB),
+      ENTRY(I386_REL16),
+      ENTRY(I386_REL32),
+      ENTRY(I386_SECREL),
+      ENTRY(I386_SECREL7),
+      ENTRY(I386_SECTION),
+      ENTRY(I386_SEG12),
+      ENTRY(I386_TOKEN),

-    ENTRY(MIPS_ABSOLUTE),
-    ENTRY(MIPS_GPREL),
-    ENTRY(MIPS_JMPADDR),
-    ENTRY(MIPS_JMPADDR16),
-    ENTRY(MIPS_LITERAL),
-    ENTRY(MIPS_PAIR),
-    ENTRY(MIPS_REFHALF),
-    ENTRY(MIPS_REFHI),
-    ENTRY(MIPS_REFLO),
-    ENTRY(MIPS_REFWORD),
-    ENTRY(MIPS_REFWORDNB),
-    ENTRY(MIPS_SECREL),
-    ENTRY(MIPS_SECRELHI),
-    ENTRY(MIPS_SECRELLO),
-    ENTRY(MIPS_SECTION),
+      ENTRY(MIPS_ABSOLUTE),
+      ENTRY(MIPS_GPREL),
+      ENTRY(MIPS_JMPADDR),
+      ENTRY(MIPS_JMPADDR16),
+      ENTRY(MIPS_LITERAL),
+      ENTRY(MIPS_PAIR),
+      ENTRY(MIPS_REFHALF),
+      ENTRY(MIPS_REFHI),
+      ENTRY(MIPS_REFLO),
+      ENTRY(MIPS_REFWORD),
+      ENTRY(MIPS_REFWORDNB),
+      ENTRY(MIPS_SECREL),
+      ENTRY(MIPS_SECRELHI),
+      ENTRY(MIPS_SECRELLO),
+      ENTRY(MIPS_SECTION),
   };
-  #undef ENTRY
+#undef ENTRY

   if (auto it = enums2str.find(e); it != enums2str.end()) {
     return it->second;
diff --git a/deps/LIEF/src/COFF/Section.cpp b/deps/LIEF/src/COFF/Section.cpp
index 0a11ba5ca45..44185ac7c79 100644
--- a/deps/LIEF/src/COFF/Section.cpp
+++ b/deps/LIEF/src/COFF/Section.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -16,6 +16,7 @@
 #include <sstream>
 #include <spdlog/fmt/fmt.h>
 #include "LIEF/COFF/Section.hpp"
+#include "LIEF/COFF/String.hpp"
 #include "LIEF/COFF/Symbol.hpp"
 #include "LIEF/COFF/AuxiliarySymbol.hpp"
 #include "LIEF/COFF/AuxiliarySymbols/AuxiliarySectionDefinition.hpp"
@@ -53,7 +54,7 @@ std::unique_ptr<Section> Section::parse(BinaryStream& stream) {

 void Section::name(std::string name) {
   if (name.size() > LIEF::PE::Section::MAX_SECTION_NAME) {
-    LIEF_ERR("The max size of a section's name is {} vs {}",
+    LIEF_ERR("Section name exceeds max size: {} vs {}",
              LIEF::PE::Section::MAX_SECTION_NAME, name.size());
     return;
   }
@@ -105,7 +106,6 @@ optional<Section::ComdatInfo> Section::comdat_info() const {
 }

 std::string Section::to_string() const {
-  using namespace fmt;
   static constexpr auto WIDTH = 24;
   std::ostringstream os;

@@ -113,31 +113,41 @@ std::string Section::to_string() const {
   std::vector<std::string> list_str;
   list_str.reserve(list.size());
   std::transform(list.begin(), list.end(), std::back_inserter(list_str),
-                 [] (const auto c) { return COFF::to_string(c); });
+                 [](const auto c) { return COFF::to_string(c); });

   std::vector<std::string> fullname_hex;
   fullname_hex.reserve(name().size());
   std::transform(fullname().begin(), fullname().end(),
                  std::back_inserter(fullname_hex),
-                 [] (const char c) { return format("{:02x}", c); });
-
-  os << format("{:{}} {} ({})\n", "Name:", WIDTH, name(),
-               join(fullname_hex, " "));
-
-  os << format("{:{}} 0x{:x}\n", "Virtual Size", WIDTH, virtual_size())
-     << format("{:{}} 0x{:x}\n", "Virtual Address", WIDTH, virtual_address())
-     << format("{:{}} 0x{:x}\n", "Size of raw data", WIDTH, sizeof_raw_data())
-     << format("{:{}} 0x{:x}\n", "Pointer to raw data", WIDTH, pointerto_raw_data())
-     << format("{:{}} [0x{:08x}, 0x{:08x}]\n", "Range", WIDTH,
-               pointerto_raw_data(), pointerto_raw_data() + sizeof_raw_data())
-     << format("{:{}} 0x{:x}\n", "Pointer to relocations", WIDTH, pointerto_relocation())
-     << format("{:{}} 0x{:x}\n", "Pointer to line numbers", WIDTH, pointerto_line_numbers())
-     << format("{:{}} 0x{:x}\n", "Number of relocations", WIDTH, numberof_relocations())
-     << format("{:{}} 0x{:x}\n", "Number of lines", WIDTH, numberof_line_numbers())
-     << format("{:{}} {}", "Characteristics", WIDTH, join(list_str, ", "));
+                 [](const char c) { return fmt::format("{:02x}", c); });
+
+  if (const String* coff_str = coff_string()) {
+    os << fmt::format("{:{}} {} ({}, {})\n", "Name:", WIDTH, name(),
+                      fmt::join(fullname_hex, " "), coff_str->str());
+  } else {
+    os << fmt::format("{:{}} {} ({})\n", "Name:", WIDTH, name(),
+                      fmt::join(fullname_hex, " "));
+  }

-  return os.str();
+  os << fmt::format("{:{}} {:#x}\n", "Virtual Size", WIDTH, virtual_size())
+     << fmt::format("{:{}} {:#x}\n", "Virtual Address", WIDTH, virtual_address())
+     << fmt::format("{:{}} {:#x}\n", "Size of raw data", WIDTH, sizeof_raw_data())
+     << fmt::format("{:{}} {:#x}\n", "Pointer to raw data", WIDTH,
+                    pointerto_raw_data())
+     << fmt::format("{:{}} [{:#010x}, {:#010x}]\n", "Range", WIDTH,
+                    pointerto_raw_data(), pointerto_raw_data() + sizeof_raw_data())
+     << fmt::format("{:{}} {:#x}\n", "Pointer to relocations", WIDTH,
+                    pointerto_relocation())
+     << fmt::format("{:{}} {:#x}\n", "Pointer to line numbers", WIDTH,
+                    pointerto_line_numbers())
+     << fmt::format("{:{}} {:#x}\n", "Number of relocations", WIDTH,
+                    numberof_relocations())
+     << fmt::format("{:{}} {:#x}\n", "Number of lines", WIDTH,
+                    numberof_line_numbers())
+     << fmt::format("{:{}} {}", "Characteristics", WIDTH,
+                    fmt::join(list_str, ", "));

+  return os.str();
 }

 }
diff --git a/deps/LIEF/src/COFF/Symbol.cpp b/deps/LIEF/src/COFF/Symbol.cpp
index 9c74e81ce27..0cfba725568 100644
--- a/deps/LIEF/src/COFF/Symbol.cpp
+++ b/deps/LIEF/src/COFF/Symbol.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -37,8 +37,7 @@ Symbol::Symbol(const Symbol& other) :
   LIEF::Symbol(other),
   type_(other.type_),
   storage_class_(other.storage_class_),
-  section_idx_(other.section_idx_)
-{
+  section_idx_(other.section_idx_) {
   if (!other.auxiliary_symbols_.empty()) {
     auxiliary_symbols_.reserve(other.auxiliary_symbols_.size());
     for (const std::unique_ptr<AuxiliarySymbol>& aux : other.auxiliary_symbols_) {
@@ -66,17 +65,15 @@ Symbol& Symbol::operator=(const Symbol& other) {
   return *this;
 }

-std::unique_ptr<Symbol> Symbol::parse(
-    parsing_context_t& ctx, BinaryStream& stream, size_t* idx)
-{
+std::unique_ptr<Symbol> Symbol::parse(parsing_context_t& ctx, BinaryStream& stream,
+                                      size_t* idx) {
   return ctx.is_bigobj ? parse_impl<details::symbol32>(ctx, stream, idx) :
                          parse_impl<details::symbol16>(ctx, stream, idx);
 }

 template<class T>
-std::unique_ptr<Symbol> Symbol::parse_impl(
-    parsing_context_t& ctx, BinaryStream& stream, size_t* idx)
-{
+std::unique_ptr<Symbol> Symbol::parse_impl(parsing_context_t& ctx,
+                                           BinaryStream& stream, size_t* idx) {
   static_assert(std::is_same_v<T, details::symbol16> ||
                 std::is_same_v<T, details::symbol32>);
   auto raw = stream.read<T>();
@@ -92,8 +89,8 @@ std::unique_ptr<Symbol> Symbol::parse_impl(
   if (raw->name.offset.zeroes == 0) {
     sym->coff_name_ = ctx.find_string(raw->name.offset.offset);
   } else {
-    sym->name_ = std::string(raw->name.short_name.data(),
-                             raw->name.short_name.size());
+    sym->name_ =
+        std::string(raw->name.short_name.data(), raw->name.short_name.size());
     sym->name_ = sym->name_.c_str();
   }

@@ -107,7 +104,7 @@ std::unique_ptr<Symbol> Symbol::parse_impl(

     auto aux = AuxiliarySymbol::parse(*sym, std::move(raw_aux));
     if (aux == nullptr) {
-      LIEF_WARN("Failed to parse auxiliary symbols #{}", i);
+      LIEF_WARN("Failed to parse auxiliary symbol #{}", i);
       continue;
     }

@@ -148,9 +145,12 @@ std::string Symbol::to_string() const {
   os << "  Name: " << name() << '\n'
      << "  Value: " << value() << '\n'
      << "  Section index: " << section_idx() << '\n'
-     << fmt::format("  Base type: {} ({})\n", COFF::to_string(base_type()), (int)base_type())
-     << fmt::format("  Complex type: {} ({})\n", COFF::to_string(complex_type()), (int)complex_type())
-     << fmt::format("  Storage class: {} ({})\n", COFF::to_string(storage_class()), (int)storage_class())
+     << fmt::format("  Base type: {} ({})\n", COFF::to_string(base_type()),
+                    (int)base_type())
+     << fmt::format("  Complex type: {} ({})\n", COFF::to_string(complex_type()),
+                    (int)complex_type())
+     << fmt::format("  Storage class: {} ({})\n", COFF::to_string(storage_class()),
+                    (int)storage_class())
      << "  Nb auxiliary symbols: " << auxiliary_symbols().size() << '\n';
   for (const AuxiliarySymbol& aux : auxiliary_symbols()) {
     os << indent(aux.to_string(), 2) << '\n';
@@ -161,38 +161,38 @@ std::string Symbol::to_string() const {
 }

 const char* to_string(Symbol::STORAGE_CLASS e) {
-  #define ENTRY(X) std::pair(Symbol::STORAGE_CLASS::X, #X)
-  STRING_MAP enums2str {
-    ENTRY(INVALID),
-    ENTRY(END_OF_FUNCTION),
-    ENTRY(NONE),
-    ENTRY(AUTOMATIC),
-    ENTRY(EXTERNAL),
-    ENTRY(STATIC),
-    ENTRY(REGISTER),
-    ENTRY(EXTERNAL_DEF),
-    ENTRY(LABEL),
-    ENTRY(UNDEFINED_LABEL),
-    ENTRY(MEMBER_OF_STRUCT),
-    ENTRY(ARGUMENT),
-    ENTRY(STRUCT_TAG),
-    ENTRY(MEMBER_OF_UNION),
-    ENTRY(UNION_TAG),
-    ENTRY(TYPE_DEFINITION),
-    ENTRY(UNDEFINED_STATIC),
-    ENTRY(ENUM_TAG),
-    ENTRY(MEMBER_OF_ENUM),
-    ENTRY(REGISTER_PARAM),
-    ENTRY(BIT_FIELD),
-    ENTRY(BLOCK),
-    ENTRY(FUNCTION),
-    ENTRY(END_OF_STRUCT),
-    ENTRY(FILE),
-    ENTRY(SECTION),
-    ENTRY(WEAK_EXTERNAL),
-    ENTRY(CLR_TOKEN),
+#define ENTRY(X) std::pair(Symbol::STORAGE_CLASS::X, #X)
+  STRING_MAP enums2str{
+      ENTRY(INVALID),
+      ENTRY(END_OF_FUNCTION),
+      ENTRY(NONE),
+      ENTRY(AUTOMATIC),
+      ENTRY(EXTERNAL),
+      ENTRY(STATIC),
+      ENTRY(REGISTER),
+      ENTRY(EXTERNAL_DEF),
+      ENTRY(LABEL),
+      ENTRY(UNDEFINED_LABEL),
+      ENTRY(MEMBER_OF_STRUCT),
+      ENTRY(ARGUMENT),
+      ENTRY(STRUCT_TAG),
+      ENTRY(MEMBER_OF_UNION),
+      ENTRY(UNION_TAG),
+      ENTRY(TYPE_DEFINITION),
+      ENTRY(UNDEFINED_STATIC),
+      ENTRY(ENUM_TAG),
+      ENTRY(MEMBER_OF_ENUM),
+      ENTRY(REGISTER_PARAM),
+      ENTRY(BIT_FIELD),
+      ENTRY(BLOCK),
+      ENTRY(FUNCTION),
+      ENTRY(END_OF_STRUCT),
+      ENTRY(FILE),
+      ENTRY(SECTION),
+      ENTRY(WEAK_EXTERNAL),
+      ENTRY(CLR_TOKEN),
   };
-  #undef ENTRY
+#undef ENTRY

   if (auto it = enums2str.find(e); it != enums2str.end()) {
     return it->second;
@@ -201,26 +201,14 @@ const char* to_string(Symbol::STORAGE_CLASS e) {
 }

 const char* to_string(Symbol::BASE_TYPE e) {
-  #define ENTRY(X) std::pair(Symbol::BASE_TYPE::TY_##X, #X)
-  STRING_MAP enums2str {
-    ENTRY(NULL),
-    ENTRY(VOID),
-    ENTRY(CHAR),
-    ENTRY(SHORT),
-    ENTRY(INT),
-    ENTRY(LONG),
-    ENTRY(FLOAT),
-    ENTRY(DOUBLE),
-    ENTRY(STRUCT),
-    ENTRY(UNION),
-    ENTRY(ENUM),
-    ENTRY(MOE),
-    ENTRY(BYTE),
-    ENTRY(WORD),
-    ENTRY(UINT),
-    ENTRY(DWORD),
+#define ENTRY(X) std::pair(Symbol::BASE_TYPE::TY_##X, #X)
+  STRING_MAP enums2str{
+      ENTRY(NULL),   ENTRY(VOID),  ENTRY(CHAR),  ENTRY(SHORT),
+      ENTRY(INT),    ENTRY(LONG),  ENTRY(FLOAT), ENTRY(DOUBLE),
+      ENTRY(STRUCT), ENTRY(UNION), ENTRY(ENUM),  ENTRY(MOE),
+      ENTRY(BYTE),   ENTRY(WORD),  ENTRY(UINT),  ENTRY(DWORD),
   };
-  #undef ENTRY
+#undef ENTRY

   if (auto it = enums2str.find(e); it != enums2str.end()) {
     return it->second;
@@ -229,14 +217,14 @@ const char* to_string(Symbol::BASE_TYPE e) {
 }
 const char* to_string(Symbol::COMPLEX_TYPE e) {

-  #define ENTRY(X) std::pair(Symbol::COMPLEX_TYPE::TY_##X, #X)
-  STRING_MAP enums2str {
-    ENTRY(NULL),
-    ENTRY(POINTER),
-    ENTRY(FUNCTION),
-    ENTRY(ARRAY),
+#define ENTRY(X) std::pair(Symbol::COMPLEX_TYPE::TY_##X, #X)
+  STRING_MAP enums2str{
+      ENTRY(NULL),
+      ENTRY(POINTER),
+      ENTRY(FUNCTION),
+      ENTRY(ARRAY),
   };
-  #undef ENTRY
+#undef ENTRY

   if (auto it = enums2str.find(e); it != enums2str.end()) {
     return it->second;
diff --git a/deps/LIEF/src/COFF/structures.hpp b/deps/LIEF/src/COFF/structures.hpp
index f687f8bb43d..289fc34c910 100644
--- a/deps/LIEF/src/COFF/structures.hpp
+++ b/deps/LIEF/src/COFF/structures.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -49,7 +49,7 @@ struct bigobj_header {
 };


-#pragma pack(push,1)
+#pragma pack(push, 1)
 struct relocation {
   uint32_t VirtualAddress;
   uint32_t SymbolTableIndex;
@@ -59,18 +59,18 @@ struct relocation {
 template<class T>
 struct symbol {
   union {
-    std::array<char, 8> short_name;
+    std::array<char, 8> short_name{};
     struct {
       uint32_t zeroes = 0;
       uint32_t offset = 0;
     } offset;
   } name;

-  uint32_t value;
-  T sec_idx;
-  uint16_t type;
-  uint8_t storage_class;
-  uint8_t nb_aux;
+  uint32_t value = 0;
+  T sec_idx = 0;
+  uint16_t type = 0;
+  uint8_t storage_class = 0;
+  uint8_t nb_aux = 0;
 };

 using symbol16 = symbol<uint16_t>;
diff --git a/deps/LIEF/src/COFF/utils.cpp b/deps/LIEF/src/COFF/utils.cpp
index 71b815c86eb..344ec80af15 100644
--- a/deps/LIEF/src/COFF/utils.cpp
+++ b/deps/LIEF/src/COFF/utils.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -14,6 +14,7 @@
  * limitations under the License.
  */
 #include "LIEF/COFF/utils.hpp"
+#include "LIEF/BinaryStream/FileStream.hpp"
 #include "COFF/structures.hpp"

 namespace LIEF::COFF {
@@ -49,7 +50,8 @@ Header::KIND get_kind(BinaryStream& stream) {
   }

   return LIEF::PE::Header::is_known_machine(regular->machine) ?
-         Header::KIND::REGULAR : Header::KIND::UNKNOWN;
+             Header::KIND::REGULAR :
+             Header::KIND::UNKNOWN;
 }

 }
diff --git a/deps/LIEF/src/DEX/Class.cpp b/deps/LIEF/src/DEX/Class.cpp
index cff99b95190..80fda6fee8b 100644
--- a/deps/LIEF/src/DEX/Class.cpp
+++ b/deps/LIEF/src/DEX/Class.cpp
@@ -1,6 +1,6 @@

-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -23,33 +23,33 @@
 #include "LIEF/DEX/Method.hpp"
 #include "LIEF/DEX/hash.hpp"

-namespace LIEF {
-namespace DEX {
+
+namespace LIEF::DEX {
 Class::Class() = default;

-Class::Class(std::string  fullname, uint32_t access_flags,
-             Class* parent, std::string source_filename) :
+Class::Class(std::string fullname, uint32_t access_flags, Class* parent,
+             std::string source_filename) :
   fullname_{std::move(fullname)},
   access_flags_{access_flags},
   parent_{parent},
-  source_filename_{std::move(source_filename)},
-  original_index_{UINT_MAX}
-{}
+  source_filename_{std::move(source_filename)} {}

 std::string Class::package_normalized(const std::string& pkg) {
   std::string package_normalized = pkg;

   // 1. Remove the '/' at the end
   if (package_normalized.back() == '/') {
-    package_normalized = package_normalized.substr(0, package_normalized.size() - 1);
+    package_normalized =
+        package_normalized.substr(0, package_normalized.size() - 1);
   }

   // 2. Replace '.' with '/'
-  std::replace(std::begin(package_normalized), std::end(package_normalized), '.', '/');
+  std::replace(package_normalized.begin(), package_normalized.end(), '.', '/');
   return package_normalized;
 }

-std::string Class::fullname_normalized(const std::string& pkg, const std::string& cls_name) {
+std::string Class::fullname_normalized(const std::string& pkg,
+                                       const std::string& cls_name) {
   return "L" + Class::package_normalized(pkg) + "/" + cls_name + ";";
 }

@@ -57,7 +57,7 @@ std::string Class::fullname_normalized(const std::string& pkg_cls) {
   std::string package_normalized = pkg_cls;

   // 1. Replace '.' with '/'
-  std::replace(std::begin(package_normalized), std::end(package_normalized), '.', '/');
+  std::replace(package_normalized.begin(), package_normalized.end(), '.', '/');

   // 2. Add 'L' at the beginning
   if (package_normalized.front() != 'L') {
@@ -100,7 +100,7 @@ std::string Class::pretty_name() const {
   }

   std::string pretty_name = fullname_.substr(1, fullname_.size() - 2);
-  std::replace(std::begin(pretty_name), std::end(pretty_name), '/', '.');
+  std::replace(pretty_name.begin(), pretty_name.end(), '/', '.');
   return pretty_name;
 }

@@ -115,7 +115,7 @@ Class::access_flags_list_t Class::access_flags() const {

   std::copy_if(std::begin(access_flags_list), std::end(access_flags_list),
                std::back_inserter(flags),
-               [this] (ACCESS_FLAGS f) { return has(f); });
+               [this](ACCESS_FLAGS f) { return has(f); });

   return flags;
 }
@@ -150,28 +150,20 @@ Class::it_fields Class::fields() {
 }

 Class::it_named_methods Class::methods(const std::string& name) {
-  return {methods_, [name] (const Method* meth) {
-    return meth->name() == name;
-  }};
+  return {methods_, [name](const Method* meth) { return meth->name() == name; }};
 }

 Class::it_const_named_methods Class::methods(const std::string& name) const {
-  return {methods_, [name] (const Method* meth) {
-    return meth->name() == name;
-  }};
+  return {methods_, [name](const Method* meth) { return meth->name() == name; }};
 }


 Class::it_named_fields Class::fields(const std::string& name) {
-  return {fields_, [name] (const Field* f) {
-    return f->name() == name;
-  }};
+  return {fields_, [name](const Field* f) { return f->name() == name; }};
 }

 Class::it_const_named_fields Class::fields(const std::string& name) const {
-  return {fields_, [name] (const Field* f) {
-    return f->name() == name;
-  }};
+  return {fields_, [name](const Field* f) { return f->name() == name; }};
 }

 size_t Class::index() const {
@@ -197,7 +189,6 @@ void Class::accept(Visitor& visitor) const {
 }


-
 std::ostream& operator<<(std::ostream& os, const Class& cls) {
   os << cls.pretty_name();
   if (!cls.source_filename().empty()) {
@@ -212,4 +203,3 @@ std::ostream& operator<<(std::ostream& os, const Class& cls) {
 Class::~Class() = default;

 }
-}
diff --git a/deps/LIEF/src/DEX/CodeInfo.cpp b/deps/LIEF/src/DEX/CodeInfo.cpp
index 7fe3101d3a6..6cb07bb4980 100644
--- a/deps/LIEF/src/DEX/CodeInfo.cpp
+++ b/deps/LIEF/src/DEX/CodeInfo.cpp
@@ -1,6 +1,6 @@

-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -19,8 +19,8 @@
 #include "LIEF/DEX/hash.hpp"
 #include "DEX/Structures.hpp"

-namespace LIEF {
-namespace DEX {
+
+namespace LIEF::DEX {

 CodeInfo::CodeInfo() = default;
 CodeInfo::CodeInfo(const CodeInfo&) = default;
@@ -29,8 +29,7 @@ CodeInfo& CodeInfo::operator=(const CodeInfo&) = default;
 CodeInfo::CodeInfo(const details::code_item& codeitem) :
   nb_registers_{codeitem.registers_size},
   args_input_sizes_{codeitem.ins_size},
-  output_sizes_{codeitem.outs_size}
-{}
+  output_sizes_{codeitem.outs_size} {}


 void CodeInfo::accept(Visitor& visitor) const {
@@ -50,4 +49,3 @@ std::ostream& operator<<(std::ostream& os, const CodeInfo& /*cinfo*/) {
 CodeInfo::~CodeInfo() = default;

 }
-}
diff --git a/deps/LIEF/src/DEX/EnumToString.cpp b/deps/LIEF/src/DEX/EnumToString.cpp
index 60a6b0b2a78..e2783e8917e 100644
--- a/deps/LIEF/src/DEX/EnumToString.cpp
+++ b/deps/LIEF/src/DEX/EnumToString.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -16,89 +16,88 @@
 #include "LIEF/DEX/EnumToString.hpp"
 #include "frozen.hpp"

-namespace LIEF {
-namespace DEX {

-const char* to_string(MapItem::TYPES  e) {
-  CONST_MAP(MapItem::TYPES, const char*, 20) enumStrings {
-    { MapItem::TYPES::HEADER,                   "HEADER" },
-    { MapItem::TYPES::STRING_ID,                "STRING_ID" },
-    { MapItem::TYPES::TYPE_ID,                  "TYPE_ID" },
-    { MapItem::TYPES::PROTO_ID,                 "PROTO_ID" },
-    { MapItem::TYPES::FIELD_ID,                 "FIELD_ID" },
-    { MapItem::TYPES::METHOD_ID,                "METHOD_ID" },
-    { MapItem::TYPES::CLASS_DEF,                "CLASS_DEF" },
-    { MapItem::TYPES::CALL_SITE_ID,             "CALL_SITE_ID" },
-    { MapItem::TYPES::METHOD_HANDLE,            "METHOD_HANDLE" },
-    { MapItem::TYPES::MAP_LIST,                 "MAP_LIST" },
-    { MapItem::TYPES::TYPE_LIST,                "TYPE_LIST" },
-    { MapItem::TYPES::ANNOTATION_SET_REF_LIST,  "ANNOTATION_SET_REF_LIST" },
-    { MapItem::TYPES::ANNOTATION_SET,           "ANNOTATION_SET" },
-    { MapItem::TYPES::CLASS_DATA,               "CLASS_DATA" },
-    { MapItem::TYPES::CODE,                     "CODE" },
-    { MapItem::TYPES::STRING_DATA,              "STRING_DATA" },
-    { MapItem::TYPES::DEBUG_INFO,               "DEBUG_INFO" },
-    { MapItem::TYPES::ANNOTATION,               "ANNOTATION" },
-    { MapItem::TYPES::ENCODED_ARRAY,            "ENCODED_ARRAY" },
-    { MapItem::TYPES::ANNOTATIONS_DIRECTORY,    "ANNOTATIONS_DIRECTORY" },
+namespace LIEF::DEX {
+
+const char* to_string(MapItem::TYPES e) {
+  CONST_MAP(MapItem::TYPES, const char*, 20)
+  enumStrings{
+      {MapItem::TYPES::HEADER, "HEADER"},
+      {MapItem::TYPES::STRING_ID, "STRING_ID"},
+      {MapItem::TYPES::TYPE_ID, "TYPE_ID"},
+      {MapItem::TYPES::PROTO_ID, "PROTO_ID"},
+      {MapItem::TYPES::FIELD_ID, "FIELD_ID"},
+      {MapItem::TYPES::METHOD_ID, "METHOD_ID"},
+      {MapItem::TYPES::CLASS_DEF, "CLASS_DEF"},
+      {MapItem::TYPES::CALL_SITE_ID, "CALL_SITE_ID"},
+      {MapItem::TYPES::METHOD_HANDLE, "METHOD_HANDLE"},
+      {MapItem::TYPES::MAP_LIST, "MAP_LIST"},
+      {MapItem::TYPES::TYPE_LIST, "TYPE_LIST"},
+      {MapItem::TYPES::ANNOTATION_SET_REF_LIST, "ANNOTATION_SET_REF_LIST"},
+      {MapItem::TYPES::ANNOTATION_SET, "ANNOTATION_SET"},
+      {MapItem::TYPES::CLASS_DATA, "CLASS_DATA"},
+      {MapItem::TYPES::CODE, "CODE"},
+      {MapItem::TYPES::STRING_DATA, "STRING_DATA"},
+      {MapItem::TYPES::DEBUG_INFO, "DEBUG_INFO"},
+      {MapItem::TYPES::ANNOTATION, "ANNOTATION"},
+      {MapItem::TYPES::ENCODED_ARRAY, "ENCODED_ARRAY"},
+      {MapItem::TYPES::ANNOTATIONS_DIRECTORY, "ANNOTATIONS_DIRECTORY"},
   };
   const auto it = enumStrings.find(e);
   return it == enumStrings.end() ? "UNKNOWN" : it->second;
 }


-const char* to_string(ACCESS_FLAGS  e) {
-  CONST_MAP(ACCESS_FLAGS, const char*, 18) enumStrings {
-    { ACCESS_FLAGS::ACC_UNKNOWN,               "UNKNOWN" },
-    { ACCESS_FLAGS::ACC_PUBLIC,                "PUBLIC" },
-    { ACCESS_FLAGS::ACC_PRIVATE,               "PRIVATE" },
-    { ACCESS_FLAGS::ACC_PROTECTED,             "PROTECTED" },
-    { ACCESS_FLAGS::ACC_STATIC,                "STATIC" },
-    { ACCESS_FLAGS::ACC_FINAL,                 "FINAL" },
-    { ACCESS_FLAGS::ACC_SYNCHRONIZED,          "SYNCHRONIZED" },
-    { ACCESS_FLAGS::ACC_VOLATILE,              "VOLATILE" },
-    { ACCESS_FLAGS::ACC_VARARGS,               "VARARGS" },
-    { ACCESS_FLAGS::ACC_NATIVE,                "NATIVE" },
-    { ACCESS_FLAGS::ACC_INTERFACE,             "INTERFACE" },
-    { ACCESS_FLAGS::ACC_ABSTRACT,              "ABSTRACT" },
-    { ACCESS_FLAGS::ACC_STRICT,                "STRICT" },
-    { ACCESS_FLAGS::ACC_SYNTHETIC,             "SYNTHETIC" },
-    { ACCESS_FLAGS::ACC_ANNOTATION,            "ANNOTATION" },
-    { ACCESS_FLAGS::ACC_ENUM,                  "ENUM" },
-    { ACCESS_FLAGS::ACC_CONSTRUCTOR,           "CONSTRUCTOR" },
-    { ACCESS_FLAGS::ACC_DECLARED_SYNCHRONIZED, "DECLARED_SYNCHRONIZED" },
+const char* to_string(ACCESS_FLAGS e) {
+  CONST_MAP(ACCESS_FLAGS, const char*, 18)
+  enumStrings{
+      {ACCESS_FLAGS::ACC_UNKNOWN, "UNKNOWN"},
+      {ACCESS_FLAGS::ACC_PUBLIC, "PUBLIC"},
+      {ACCESS_FLAGS::ACC_PRIVATE, "PRIVATE"},
+      {ACCESS_FLAGS::ACC_PROTECTED, "PROTECTED"},
+      {ACCESS_FLAGS::ACC_STATIC, "STATIC"},
+      {ACCESS_FLAGS::ACC_FINAL, "FINAL"},
+      {ACCESS_FLAGS::ACC_SYNCHRONIZED, "SYNCHRONIZED"},
+      {ACCESS_FLAGS::ACC_VOLATILE, "VOLATILE"},
+      {ACCESS_FLAGS::ACC_VARARGS, "VARARGS"},
+      {ACCESS_FLAGS::ACC_NATIVE, "NATIVE"},
+      {ACCESS_FLAGS::ACC_INTERFACE, "INTERFACE"},
+      {ACCESS_FLAGS::ACC_ABSTRACT, "ABSTRACT"},
+      {ACCESS_FLAGS::ACC_STRICT, "STRICT"},
+      {ACCESS_FLAGS::ACC_SYNTHETIC, "SYNTHETIC"},
+      {ACCESS_FLAGS::ACC_ANNOTATION, "ANNOTATION"},
+      {ACCESS_FLAGS::ACC_ENUM, "ENUM"},
+      {ACCESS_FLAGS::ACC_CONSTRUCTOR, "CONSTRUCTOR"},
+      {ACCESS_FLAGS::ACC_DECLARED_SYNCHRONIZED, "DECLARED_SYNCHRONIZED"},
   };
   const auto it = enumStrings.find(e);
   return it == enumStrings.end() ? "UNKNOWN" : it->second;
 }

-const char* to_string(Type::TYPES  e) {
-  CONST_MAP(Type::TYPES, const char*, 4) enumStrings {
-    { Type::TYPES::UNKNOWN,   "UNKNOWN"   },
-    { Type::TYPES::ARRAY,     "ARRAY"     },
-    { Type::TYPES::CLASS,     "CLASS"     },
-    { Type::TYPES::PRIMITIVE, "PRIMITIVE" },
+const char* to_string(Type::TYPES e) {
+  CONST_MAP(Type::TYPES, const char*, 4)
+  enumStrings{
+      {Type::TYPES::UNKNOWN, "UNKNOWN"},
+      {Type::TYPES::ARRAY, "ARRAY"},
+      {Type::TYPES::CLASS, "CLASS"},
+      {Type::TYPES::PRIMITIVE, "PRIMITIVE"},
   };
   const auto it = enumStrings.find(e);
   return it == enumStrings.end() ? "UNKNOWN" : it->second;
 }


-const char* to_string(Type::PRIMITIVES  e) {
-  CONST_MAP(Type::PRIMITIVES, const char*, 9) enumStrings {
-    { Type::PRIMITIVES::VOID_T,  "VOID_T"    },
-    { Type::PRIMITIVES::BOOLEAN, "BOOLEAN" },
-    { Type::PRIMITIVES::INT,     "INT"     },
-    { Type::PRIMITIVES::SHORT,   "SHORT"   },
-    { Type::PRIMITIVES::LONG,    "LONG"    },
-    { Type::PRIMITIVES::CHAR,    "CHAR"    },
-    { Type::PRIMITIVES::DOUBLE,  "DOUBLE"  },
-    { Type::PRIMITIVES::FLOAT,   "FLOAT"   },
-    { Type::PRIMITIVES::BYTE,    "BYTE"    },
+const char* to_string(Type::PRIMITIVES e) {
+  CONST_MAP(Type::PRIMITIVES, const char*, 9)
+  enumStrings{
+      {Type::PRIMITIVES::VOID_T, "VOID_T"}, {Type::PRIMITIVES::BOOLEAN, "BOOLEAN"},
+      {Type::PRIMITIVES::INT, "INT"},       {Type::PRIMITIVES::SHORT, "SHORT"},
+      {Type::PRIMITIVES::LONG, "LONG"},     {Type::PRIMITIVES::CHAR, "CHAR"},
+      {Type::PRIMITIVES::DOUBLE, "DOUBLE"}, {Type::PRIMITIVES::FLOAT, "FLOAT"},
+      {Type::PRIMITIVES::BYTE, "BYTE"},
   };
   const auto it = enumStrings.find(e);
   return it == enumStrings.end() ? "UNKNOWN" : it->second;
 }

-} // namespace DEX
-} // namespace LIEF
+} // namespace LIEF::DEX
diff --git a/deps/LIEF/src/DEX/Field.cpp b/deps/LIEF/src/DEX/Field.cpp
index 8c08941e88f..984be02bd97 100644
--- a/deps/LIEF/src/DEX/Field.cpp
+++ b/deps/LIEF/src/DEX/Field.cpp
@@ -1,4 +1,4 @@
-/* Copyright 2021 - 2025 R. Thomas
+/* Copyright 2021 - 2026 R. Thomas
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -24,8 +24,7 @@
 #include <utility>


-namespace LIEF {
-namespace DEX {
+namespace LIEF::DEX {

 Field::Field(const Field&) = default;
 Field& Field::operator=(const Field&) = default;
@@ -34,8 +33,7 @@ Field::Field() = default;

 Field::Field(std::string name, Class* parent) :
   name_{std::move(name)},
-  parent_{parent}
-{}
+  parent_{parent} {}

 const std::string& Field::name() const {
   return name_;
@@ -58,11 +56,11 @@ size_t Field::index() const {
 }

 bool Field::is_static() const {
-    return is_static_;
+  return is_static_;
 }

 void Field::set_static(bool v) {
-    is_static_ = v;
+  is_static_ = v;
 }


@@ -75,10 +73,9 @@ Field::access_flags_list_t Field::access_flags() const {

   std::copy_if(std::begin(access_flags_list), std::end(access_flags_list),
                std::back_inserter(flags),
-               [this] (ACCESS_FLAGS f) { return has(f); });
+               [this](ACCESS_FLAGS f) { return has(f); });

   return flags;
-
 }

 const Type* Field::type() const {
@@ -95,31 +92,27 @@ void Field::accept(Visitor& visitor) const {
 }


-
 std::ostream& operator<<(std::ostream& os, const Field& field) {
   std::string pretty_cls_name = field.cls()->fullname();
   if (!pretty_cls_name.empty()) {
     pretty_cls_name = pretty_cls_name.substr(1, pretty_cls_name.size() - 2);
-    std::replace(std::begin(pretty_cls_name), std::end(pretty_cls_name), '/', '.');
+    std::replace(pretty_cls_name.begin(), pretty_cls_name.end(), '/', '.');
   }

   Method::access_flags_list_t aflags = field.access_flags();
-  std::string flags_str = std::accumulate(
-      std::begin(aflags),
-      std::end(aflags),
-      std::string{},
-      [] (const std::string& l, ACCESS_FLAGS r) {
-        std::string str = to_string(r);
-        std::transform(std::begin(str), std::end(str), std::begin(str), ::tolower);
-        return l.empty() ? str : l + " " + str;
-      });
+  std::string flags_str =
+      std::accumulate(aflags.begin(), aflags.end(), std::string{},
+                      [](const std::string& l, ACCESS_FLAGS r) {
+                        std::string str = to_string(r);
+                        std::transform(str.begin(), str.end(), str.begin(),
+                                       ::tolower);
+                        return l.empty() ? str : l + " " + str;
+                      });

   if (!flags_str.empty()) {
     os << flags_str << " ";
   }
-  os << field.type()
-     << " "
-     << pretty_cls_name << "->" << field.name();
+  os << field.type() << " " << pretty_cls_name << "->" << field.name();

   return os;
 }
@@ -127,4 +120,3 @@ std::ostream& operator<<(std::ostream& os, const Field& field) {
 Field::~Field() = default;

 }
-}
diff --git a/deps/LIEF/src/DEX/File.cpp b/deps/LIEF/src/DEX/File.cpp
index 54c5ebfacc5..a335fac29c2 100644
--- a/deps/LIEF/src/DEX/File.cpp
+++ b/deps/LIEF/src/DEX/File.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -29,15 +29,14 @@
 #include "DEX/Structures.hpp"

 #if defined(LIEF_JSON_SUPPORT)
-#include "visitors/json.hpp"
+  #include "visitors/json.hpp"
 #endif

-namespace LIEF {
-namespace DEX {
+
+namespace LIEF::DEX {

 File::File() :
-  name_{"classes.dex"}
-{}
+  name_{"classes.dex"} {}
 File::~File() = default;

 dex_version_t File::version() const {
@@ -60,7 +59,8 @@ std::string File::save(const std::string& path, bool deoptimize) const {
       const std::vector<uint8_t> raw = this->raw(deoptimize);
       ifs.write(reinterpret_cast<const char*>(raw.data()), raw.size());
     } else {
-      ifs.write(reinterpret_cast<const char*>(original_data_.data()), original_data_.size());
+      ifs.write(reinterpret_cast<const char*>(original_data_.data()),
+                original_data_.size());
     }
     return path;
   }
@@ -96,254 +96,291 @@ std::vector<uint8_t> File::raw(bool deoptimize) const {
       auto opcode = static_cast<OPCODES>(*inst_ptr);
       uint32_t value = UINT_MAX;

-      if (meth_info.find(dex_pc) != std::end(meth_info)) {
+      if (meth_info.find(dex_pc) != meth_info.end()) {
         value = meth_info[dex_pc];
       }

       // Skip packed-switch, sparse-switch, fill-array instructions
       if (is_switch_array(inst_ptr, inst_end)) {
-        inst_ptr += switch_array_size(inst_ptr, inst_end);
+        const size_t payload_size = switch_array_size(inst_ptr, inst_end);
+        if (!valid_inst_size(inst_ptr, inst_end, payload_size)) {
+          break;
+        }
+        inst_ptr += payload_size;
         continue;
       }

-      switch(opcode) {
+      const size_t inst_size = inst_size_from_opcode(opcode);
+      if (!valid_inst_size(inst_ptr, inst_end, inst_size)) {
+        break;
+      }
+
+      switch (opcode) {
         case OPCODES::OP_NOP:
-          {
-            //deoptimize_nop(inst_ptr, 0);
-            break;
-          }
+        {
+          // deoptimize_nop(inst_ptr, 0);
+          break;
+        }

         case OPCODES::OP_RETURN_VOID_NO_BARRIER:
-          {
-            LIEF_TRACE("{}.{}", method->cls()->fullname(), method->name());
-            LIEF_TRACE("[{:06x}] return-void-no-barrier -> return-void", dex_pc);
-            deoptimize_return(inst_ptr, 0);
-            break;
-          }
+        {
+          LIEF_TRACE("{}.{}", method->cls()->fullname(), method->name());
+          LIEF_TRACE("[{:06x}] return-void-no-barrier -> return-void", dex_pc);
+          deoptimize_return(inst_ptr, 0);
+          break;
+        }

         case OPCODES::OP_IGET_QUICK:
-          {
-            LIEF_TRACE("{}.{}", method->cls()->fullname(), method->name());
-            LIEF_TRACE("[{:06x}] iget-quick -> iget@0x{:x}", dex_pc, value);
-            if (static_cast<int32_t>(value) == -1) {
-              LIEF_WARN("Unable to resolve instruction: {}.{} at 0x{:04x} (iget-quick)",
-                        method->cls()->fullname(), method->name(), dex_pc);
-              break;
-            }
-            deoptimize_instance_field_access(inst_ptr, value, OPCODES::OP_IGET);
+        {
+          LIEF_TRACE("{}.{}", method->cls()->fullname(), method->name());
+          LIEF_TRACE("[{:06x}] iget-quick -> iget@{:#x}", dex_pc, value);
+          if (static_cast<int32_t>(value) == -1) {
+            LIEF_WARN("Unresolved instruction {}.{} at {:#06x} (iget-quick)",
+                      method->cls()->fullname(), method->name(), dex_pc);
             break;
           }
+          deoptimize_instance_field_access(inst_ptr, value, OPCODES::OP_IGET);
+          break;
+        }

         case OPCODES::OP_IGET_WIDE_QUICK:
-          {
-            LIEF_TRACE("{}.{}", method->cls()->fullname(), method->name());
-            LIEF_TRACE("[{:06x}] iget-wide-quick -> iget-wide@{:d}", dex_pc, value);
-
-            if (static_cast<int32_t>(value) == -1) {
-              LIEF_WARN("Unable to resolve instruction: {}.{} at 0x{:04x} (iget-wide-quick)",
-                        method->cls()->fullname(), method->name(), dex_pc);
-              break;
-            }
-            deoptimize_instance_field_access(inst_ptr, value, OPCODES::OP_IGET_WIDE);
+        {
+          LIEF_TRACE("{}.{}", method->cls()->fullname(), method->name());
+          LIEF_TRACE("[{:06x}] iget-wide-quick -> iget-wide@{:d}", dex_pc, value);
+
+          if (static_cast<int32_t>(value) == -1) {
+            LIEF_WARN("Unresolved instruction {}.{} at {:#06x} (iget-wide-quick)",
+                      method->cls()->fullname(), method->name(), dex_pc);
             break;
           }
+          deoptimize_instance_field_access(inst_ptr, value, OPCODES::OP_IGET_WIDE);
+          break;
+        }

         case OPCODES::OP_IGET_OBJECT_QUICK:
-          {
-            LIEF_TRACE("{}.{}", method->cls()->fullname(), method->name());
-            LIEF_TRACE("[{:06x}] iget-object-quick -> iget-object@{:d}", dex_pc, value);
-            if (static_cast<int32_t>(value) == -1) {
-              LIEF_WARN("Unable to resolve instruction: {}.{} at 0x{:04x} (iget-object-quick)",
-                        method->cls()->fullname(), method->name(), dex_pc);
-              break;
-            }
-            deoptimize_instance_field_access(inst_ptr, value, OPCODES::OP_IGET_OBJECT);
+        {
+          LIEF_TRACE("{}.{}", method->cls()->fullname(), method->name());
+          LIEF_TRACE("[{:06x}] iget-object-quick -> iget-object@{:d}", dex_pc,
+                     value);
+          if (static_cast<int32_t>(value) == -1) {
+            LIEF_WARN(
+                "Unresolved instruction {}.{} at {:#06x} (iget-object-quick)",
+                method->cls()->fullname(), method->name(), dex_pc
+            );
             break;
           }
+          deoptimize_instance_field_access(inst_ptr, value,
+                                           OPCODES::OP_IGET_OBJECT);
+          break;
+        }

         case OPCODES::OP_IPUT_QUICK:
-          {
-            LIEF_TRACE("{}.{}", method->cls()->fullname(), method->name());
-            LIEF_TRACE("[{:06x}] iput-quick -> iput@{:d}", dex_pc, value);
-            if (static_cast<int32_t>(value) == -1) {
-              LIEF_WARN("Unable to resolve instruction: {}.{} at 0x{:04x} (iput-quick)",
-                  method->cls()->fullname(), method->name(), dex_pc);
-              break;
-            }
-            deoptimize_instance_field_access(inst_ptr, value, OPCODES::OP_IPUT);
+        {
+          LIEF_TRACE("{}.{}", method->cls()->fullname(), method->name());
+          LIEF_TRACE("[{:06x}] iput-quick -> iput@{:d}", dex_pc, value);
+          if (static_cast<int32_t>(value) == -1) {
+            LIEF_WARN("Unresolved instruction {}.{} at {:#06x} (iput-quick)",
+                      method->cls()->fullname(), method->name(), dex_pc);
             break;
           }
+          deoptimize_instance_field_access(inst_ptr, value, OPCODES::OP_IPUT);
+          break;
+        }

         case OPCODES::OP_IPUT_WIDE_QUICK:
-          {
-            LIEF_TRACE("{}.{}", method->cls()->fullname(), method->name());
-            LIEF_TRACE("[{:06x}] iput-wide-quick -> iput-wide@{:d}", dex_pc, value);
-            if (static_cast<int32_t>(value) == -1) {
-              LIEF_WARN("Unable to resolve instruction: {}.{} at 0x{:04x} (iput-wide-quick)",
-                        method->cls()->fullname(), method->name(), dex_pc);
-              break;
-            }
-            deoptimize_instance_field_access(inst_ptr, value, OPCODES::OP_IPUT_WIDE);
+        {
+          LIEF_TRACE("{}.{}", method->cls()->fullname(), method->name());
+          LIEF_TRACE("[{:06x}] iput-wide-quick -> iput-wide@{:d}", dex_pc, value);
+          if (static_cast<int32_t>(value) == -1) {
+            LIEF_WARN("Unresolved instruction {}.{} at {:#06x} (iput-wide-quick)",
+                      method->cls()->fullname(), method->name(), dex_pc);
             break;
           }
+          deoptimize_instance_field_access(inst_ptr, value, OPCODES::OP_IPUT_WIDE);
+          break;
+        }

         case OPCODES::OP_IPUT_OBJECT_QUICK:
-          {
-            LIEF_TRACE("{}.{}", method->cls()->fullname(), method->name());
-            LIEF_TRACE("[{:06x}] iput-object-quick -> iput-objecte@{:d}", dex_pc, value);
-            if (static_cast<int32_t>(value) == -1) {
-              LIEF_WARN("Unable to resolve instruction: {}.{} at 0x{:04x} (iput-object-quick)",
-                        method->cls()->fullname(), method->name(), dex_pc);
-              break;
-            }
-            deoptimize_instance_field_access(inst_ptr, value, OPCODES::OP_IPUT_OBJECT);
+        {
+          LIEF_TRACE("{}.{}", method->cls()->fullname(), method->name());
+          LIEF_TRACE("[{:06x}] iput-object-quick -> iput-objecte@{:d}", dex_pc,
+                     value);
+          if (static_cast<int32_t>(value) == -1) {
+            LIEF_WARN(
+                "Unresolved instruction {}.{} at {:#06x} (iput-object-quick)",
+                method->cls()->fullname(), method->name(), dex_pc
+            );
             break;
           }
+          deoptimize_instance_field_access(inst_ptr, value,
+                                           OPCODES::OP_IPUT_OBJECT);
+          break;
+        }

         case OPCODES::OP_INVOKE_VIRTUAL_QUICK:
-          {
-            LIEF_TRACE("{}.{}", method->cls()->fullname(), method->name());
-            LIEF_TRACE("[{:06x}] invoke-virtual-quick -> invoke-virtual@{:d}", dex_pc, value);
-
-            if (static_cast<int32_t>(value) == -1) {
-              LIEF_WARN("Unable to resolve instruction: {}.{} at 0x{:04x} (invoke-virtual-quick)",
-                  method->cls()->fullname(), method->name(), dex_pc);
-              break;
-            }
-            deoptimize_invoke_virtual(inst_ptr, value, OPCODES::OP_INVOKE_VIRTUAL);
+        {
+          LIEF_TRACE("{}.{}", method->cls()->fullname(), method->name());
+          LIEF_TRACE("[{:06x}] invoke-virtual-quick -> invoke-virtual@{:d}",
+                     dex_pc, value);
+
+          if (static_cast<int32_t>(value) == -1) {
+            LIEF_WARN(
+                "Unresolved instruction {}.{} at {:#06x} (invoke-virtual-quick)",
+                method->cls()->fullname(), method->name(), dex_pc
+            );
             break;
           }
+          deoptimize_invoke_virtual(inst_ptr, value, OPCODES::OP_INVOKE_VIRTUAL);
+          break;
+        }

         case OPCODES::OP_INVOKE_VIRTUAL_RANGE_QUICK:
-          {
-            LIEF_TRACE("{}.{}", method->cls()->fullname(), method->name());
-            LIEF_TRACE("[{:06x}] invoke-virtual-quick/range -> invoke-virtual/range @{:d}", dex_pc, value);
-
-            if (static_cast<int32_t>(value) == -1) {
-              LIEF_WARN("Unable to resolve instruction: {}.{} at 0x{:04x} (invoke-virtual-quick/range)",
-                        method->cls()->fullname(), method->name(), dex_pc);
-              break;
-            }
-            deoptimize_invoke_virtual(inst_ptr, value, OPCODES::OP_INVOKE_VIRTUAL_RANGE);
+        {
+          LIEF_TRACE("{}.{}", method->cls()->fullname(), method->name());
+          LIEF_TRACE(
+              "[{:06x}] invoke-virtual-quick/range -> invoke-virtual/range @{:d}",
+              dex_pc, value
+          );
+
+          if (static_cast<int32_t>(value) == -1) {
+            LIEF_WARN("Unresolved instruction {}.{} at {:#06x} "
+                      "(invoke-virtual-quick/range)",
+                      method->cls()->fullname(), method->name(), dex_pc);
             break;
           }
+          deoptimize_invoke_virtual(inst_ptr, value,
+                                    OPCODES::OP_INVOKE_VIRTUAL_RANGE);
+          break;
+        }

         case OPCODES::OP_IPUT_BOOLEAN_QUICK:
-          {
-            LIEF_TRACE("{}.{}", method->cls()->fullname(), method->name());
-            LIEF_TRACE("[{:06x}] iput-boolean-quick -> iput-boolean@{:d}", dex_pc, value);
-
-            if (static_cast<int32_t>(value) == -1) {
-              LIEF_WARN("Unable to resolve instruction: {}.{} at 0x{:04x} (iput-boolean-quick)",
-                        method->cls()->fullname(), method->name(), dex_pc);
-              break;
-            }
-            deoptimize_instance_field_access(inst_ptr, value, OPCODES::OP_IPUT_BOOLEAN);
+        {
+          LIEF_TRACE("{}.{}", method->cls()->fullname(), method->name());
+          LIEF_TRACE("[{:06x}] iput-boolean-quick -> iput-boolean@{:d}", dex_pc,
+                     value);
+
+          if (static_cast<int32_t>(value) == -1) {
+            LIEF_WARN(
+                "Unresolved instruction {}.{} at {:#06x} (iput-boolean-quick)",
+                method->cls()->fullname(), method->name(), dex_pc
+            );
             break;
           }
+          deoptimize_instance_field_access(inst_ptr, value,
+                                           OPCODES::OP_IPUT_BOOLEAN);
+          break;
+        }

         case OPCODES::OP_IPUT_BYTE_QUICK:
-          {
-            LIEF_TRACE("{}.{}", method->cls()->fullname(), method->name());
-            LIEF_TRACE("[{:06x}] iput-byte-quick -> iput-byte @{:d}", dex_pc, value);
-
-            if (static_cast<int32_t>(value) == -1) {
-              LIEF_WARN("Unable to resolve instruction: {}.{} at 0x{:04x} (iput-byte-quick)",
-                  method->cls()->fullname(), method->name(), dex_pc);
-              break;
-            }
-            deoptimize_instance_field_access(inst_ptr, value, OPCODES::OP_IPUT_BYTE);
+        {
+          LIEF_TRACE("{}.{}", method->cls()->fullname(), method->name());
+          LIEF_TRACE("[{:06x}] iput-byte-quick -> iput-byte @{:d}", dex_pc, value);
+
+          if (static_cast<int32_t>(value) == -1) {
+            LIEF_WARN("Unresolved instruction {}.{} at {:#06x} (iput-byte-quick)",
+                      method->cls()->fullname(), method->name(), dex_pc);
             break;
           }
+          deoptimize_instance_field_access(inst_ptr, value, OPCODES::OP_IPUT_BYTE);
+          break;
+        }

         case OPCODES::OP_IPUT_CHAR_QUICK:
-          {
-            LIEF_TRACE("{}.{}", method->cls()->fullname(), method->name());
-            LIEF_TRACE("[{:06x}] iput-char-quick -> iput-char @{:d}", dex_pc, value);
-
-            if (static_cast<int32_t>(value) == -1) {
-              LIEF_WARN("Unable to resolve instruction: {}.{} at 0x{:04x} (iput-char-quick)",
-                        method->cls()->fullname(), method->name(), dex_pc);
-              break;
-            }
-            deoptimize_instance_field_access(inst_ptr, value, OPCODES::OP_IPUT_CHAR);
+        {
+          LIEF_TRACE("{}.{}", method->cls()->fullname(), method->name());
+          LIEF_TRACE("[{:06x}] iput-char-quick -> iput-char @{:d}", dex_pc, value);
+
+          if (static_cast<int32_t>(value) == -1) {
+            LIEF_WARN("Unresolved instruction {}.{} at {:#06x} (iput-char-quick)",
+                      method->cls()->fullname(), method->name(), dex_pc);
             break;
           }
+          deoptimize_instance_field_access(inst_ptr, value, OPCODES::OP_IPUT_CHAR);
+          break;
+        }

         case OPCODES::OP_IPUT_SHORT_QUICK:
-          {
-            LIEF_TRACE("{}.{}", method->cls()->fullname(), method->name());
-            LIEF_TRACE("[{:06x}] iput-short-quick -> iput-short @{:d}", dex_pc, value);
-
-            if (static_cast<int32_t>(value) == -1) {
-              LIEF_WARN("Unable to resolve instruction: {}.{} at 0x{:04x} (iput-short)",
-                        method->cls()->fullname(), method->name(), dex_pc);
-              break;
-            }
-            deoptimize_instance_field_access(inst_ptr, value, OPCODES::OP_IPUT_SHORT);
+        {
+          LIEF_TRACE("{}.{}", method->cls()->fullname(), method->name());
+          LIEF_TRACE("[{:06x}] iput-short-quick -> iput-short @{:d}", dex_pc,
+                     value);
+
+          if (static_cast<int32_t>(value) == -1) {
+            LIEF_WARN("Unresolved instruction {}.{} at {:#06x} (iput-short)",
+                      method->cls()->fullname(), method->name(), dex_pc);
             break;
           }
+          deoptimize_instance_field_access(inst_ptr, value,
+                                           OPCODES::OP_IPUT_SHORT);
+          break;
+        }

         case OPCODES::OP_IGET_BOOLEAN_QUICK:
-          {
-            LIEF_TRACE("{}.{}", method->cls()->fullname(), method->name());
-            LIEF_TRACE("[{:06x}] iget-boolean-quick -> iget-boolean @{:d}", dex_pc, value);
-
-            if (static_cast<int32_t>(value) == -1) {
-              LIEF_WARN("Unable to resolve instruction: {}.{} at 0x{:04x} (iget-boolean-quick)",
-                        method->cls()->fullname(), method->name(), dex_pc);
-              break;
-            }
-            deoptimize_instance_field_access(inst_ptr, value, OPCODES::OP_IGET_BOOLEAN);
+        {
+          LIEF_TRACE("{}.{}", method->cls()->fullname(), method->name());
+          LIEF_TRACE("[{:06x}] iget-boolean-quick -> iget-boolean @{:d}", dex_pc,
+                     value);
+
+          if (static_cast<int32_t>(value) == -1) {
+            LIEF_WARN(
+                "Unresolved instruction {}.{} at {:#06x} (iget-boolean-quick)",
+                method->cls()->fullname(), method->name(), dex_pc
+            );
             break;
           }
+          deoptimize_instance_field_access(inst_ptr, value,
+                                           OPCODES::OP_IGET_BOOLEAN);
+          break;
+        }

         case OPCODES::OP_IGET_BYTE_QUICK:
-          {
-            LIEF_TRACE("{}.{}", method->cls()->fullname(), method->name());
-            LIEF_TRACE("[{:06x}] iget-byte-quick -> iget-byte @{:d}", dex_pc, value);
-
-            if (static_cast<int32_t>(value) == -1) {
-              LIEF_WARN("Unable to resolve instruction: {}.{} at 0x{:04x} (iget-byte-quick)",
-                        method->cls()->fullname(), method->name(), dex_pc);
-              break;
-            }
-            deoptimize_instance_field_access(inst_ptr, value, OPCODES::OP_IGET_BYTE);
+        {
+          LIEF_TRACE("{}.{}", method->cls()->fullname(), method->name());
+          LIEF_TRACE("[{:06x}] iget-byte-quick -> iget-byte @{:d}", dex_pc, value);
+
+          if (static_cast<int32_t>(value) == -1) {
+            LIEF_WARN("Unresolved instruction {}.{} at {:#06x} (iget-byte-quick)",
+                      method->cls()->fullname(), method->name(), dex_pc);
             break;
           }
+          deoptimize_instance_field_access(inst_ptr, value, OPCODES::OP_IGET_BYTE);
+          break;
+        }

         case OPCODES::OP_IGET_CHAR_QUICK:
-          {
-            LIEF_TRACE("{}.{}", method->cls()->fullname(), method->name());
-            LIEF_TRACE("[{:06x}] iget-char-quick -> iget-char @{:d}", dex_pc, value);
-
-            if (static_cast<int32_t>(value) == -1) {
-              LIEF_WARN("Unable to resolve instruction: {}.{} at 0x{:04x} (iget-char-quick)",
-                        method->cls()->fullname(), method->name(), dex_pc);
-              break;
-            }
-            deoptimize_instance_field_access(inst_ptr, value, OPCODES::OP_IGET_CHAR);
+        {
+          LIEF_TRACE("{}.{}", method->cls()->fullname(), method->name());
+          LIEF_TRACE("[{:06x}] iget-char-quick -> iget-char @{:d}", dex_pc, value);
+
+          if (static_cast<int32_t>(value) == -1) {
+            LIEF_WARN("Unresolved instruction {}.{} at {:#06x} (iget-char-quick)",
+                      method->cls()->fullname(), method->name(), dex_pc);
             break;
           }
+          deoptimize_instance_field_access(inst_ptr, value, OPCODES::OP_IGET_CHAR);
+          break;
+        }

         case OPCODES::OP_IGET_SHORT_QUICK:
-          {
-            LIEF_TRACE("{}.{}", method->cls()->fullname(), method->name());
-            LIEF_TRACE("[{:06x}] iget-short-quick -> iget-short @{:d}", dex_pc, value);
-
-            if (static_cast<int32_t>(value) == -1) {
-              LIEF_WARN("Unable to resolve instruction: {}.{} at 0x{:04x} (iget-short-quick)",
-                        method->cls()->fullname(), method->name(), dex_pc);
-              break;
-            }
-            deoptimize_instance_field_access(inst_ptr, value, OPCODES::OP_IGET_SHORT);
+        {
+          LIEF_TRACE("{}.{}", method->cls()->fullname(), method->name());
+          LIEF_TRACE("[{:06x}] iget-short-quick -> iget-short @{:d}", dex_pc,
+                     value);
+
+          if (static_cast<int32_t>(value) == -1) {
+            LIEF_WARN("Unresolved instruction {}.{} at {:#06x} (iget-short-quick)",
+                      method->cls()->fullname(), method->name(), dex_pc);
             break;
           }
+          deoptimize_instance_field_access(inst_ptr, value,
+                                           OPCODES::OP_IGET_SHORT);
+          break;
+        }
         default:
-          {
-          }
+        {
+        }
       }
-      inst_ptr += inst_size_from_opcode(opcode);
+      inst_ptr += inst_size;
     }
   }

@@ -358,12 +395,14 @@ void File::deoptimize_return(uint8_t* inst_ptr, uint32_t /*value*/) {
   *inst_ptr = OPCODES::OP_RETURN_VOID;
 }

-void File::deoptimize_invoke_virtual(uint8_t* inst_ptr, uint32_t value, OPCODES new_inst) {
+void File::deoptimize_invoke_virtual(uint8_t* inst_ptr, uint32_t value,
+                                     OPCODES new_inst) {
   *inst_ptr = new_inst;
   reinterpret_cast<uint16_t*>(inst_ptr)[1] = value;
 }

-void File::deoptimize_instance_field_access(uint8_t* inst_ptr, uint32_t value, OPCODES new_inst) {
+void File::deoptimize_instance_field_access(uint8_t* inst_ptr, uint32_t value,
+                                            OPCODES new_inst) {
   *inst_ptr = new_inst;
   reinterpret_cast<uint16_t*>(inst_ptr)[1] = value;
 }
@@ -394,12 +433,12 @@ File::it_classes File::classes() {
 }

 bool File::has_class(const std::string& class_name) const {
-  return classes_.find(Class::fullname_normalized(class_name)) != std::end(classes_);
+  return classes_.find(Class::fullname_normalized(class_name)) != classes_.end();
 }

 const Class* File::get_class(const std::string& class_name) const {
   auto it_cls = classes_.find(Class::fullname_normalized(class_name));
-  if (it_cls == std::end(classes_)) {
+  if (it_cls == classes_.end()) {
     return nullptr;
   }
   return it_cls->second;
@@ -438,23 +477,24 @@ std::string File::dex2dex_json_info() const {
 #if defined(LIEF_JSON_SUPPORT)
   json mapping = json::object();

-  // Iter over the class quickened
+  // Iterate over the quickened classes
   for (const auto& class_map : dex2dex_info()) {
     const Class* clazz = class_map.first;
     const std::string& class_name = clazz->fullname();
     mapping[class_name] = json::object();

     const dex2dex_class_info_t& class_info = class_map.second;
-    // Iter over the method within the class
+    // Iterate over the methods within the class
     for (const auto& method_map : class_info) {

-      // Index of the method within the Dex File
+      // Index of the method within the DEX file
       uint32_t index = method_map.first->index();

       mapping[class_name][std::to_string(index)] = json::object();

       for (const auto& pc_index : method_map.second) {
-        mapping[class_name][std::to_string(index)][std::to_string(pc_index.first)] = pc_index.second;
+        mapping[class_name][std::to_string(index)]
+               [std::to_string(pc_index.first)] = pc_index.second;
       }
     }
   }
@@ -530,7 +570,6 @@ void File::accept(Visitor& visitor) const {
 }


-
 std::ostream& operator<<(std::ostream& os, const File& file) {
   os << "DEX File " << file.name() << " Version: " << std::dec << file.version();
   if (!file.location().empty()) {
@@ -555,8 +594,4 @@ std::ostream& operator<<(std::ostream& os, const File& file) {
 }


-
-
-
-}
 }
diff --git a/deps/LIEF/src/DEX/Header.cpp b/deps/LIEF/src/DEX/Header.cpp
index 1b12c7e0d27..973cea17c92 100644
--- a/deps/LIEF/src/DEX/Header.cpp
+++ b/deps/LIEF/src/DEX/Header.cpp
@@ -1,6 +1,6 @@

-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -22,22 +22,21 @@
 #include <iomanip>
 #include <sstream>

-#define PRINT_FIELD(name,attr) \
+#define PRINT_FIELD(name, attr)                                                   \
   os << std::setw(WIDTH) << std::setfill(' ') << name << std::hex << attr << '\n'

-#define PRINT_LOCATION(name,attr)                                               \
-  os << std::setw(WIDTH) << std::setfill(' ') << name << std::hex << attr.first \
+#define PRINT_LOCATION(name, attr)                                                \
+  os << std::setw(WIDTH) << std::setfill(' ') << name << std::hex << attr.first   \
      << std::dec << " (#" << attr.second << ")" << '\n'

-namespace LIEF {
-namespace DEX {
+
+namespace LIEF::DEX {

 Header::Header() = default;
 Header::Header(const Header&) = default;
 Header& Header::operator=(const Header&) = default;


-
 Header::magic_t Header::magic() const {
   return magic_;
 }
@@ -112,7 +111,6 @@ void Header::accept(Visitor& visitor) const {
 }


-
 std::ostream& operator<<(std::ostream& os, const Header& hdr) {
   static constexpr size_t WIDTH = 20;

@@ -128,33 +126,29 @@ std::ostream& operator<<(std::ostream& os, const Header& hdr) {
   }

   const Header::signature_t& sig = hdr.signature();
-  std::string sig_str = std::accumulate(
-      std::begin(sig),
-      std::end(sig),
-      std::string{},
-      [] (const std::string& s, uint8_t c) {
-        std::stringstream ss;
-        return s + hex_str(c);
-      });
+  std::string sig_str = std::accumulate(sig.begin(), sig.end(), std::string{},
+                                        [](const std::string& s, uint8_t c) {
+                                          return s + hex_str(c);
+                                        });


   os << std::hex << std::left << std::showbase;
-  PRINT_FIELD("Magic:",       magic_str);
-  PRINT_FIELD("Checksum:",    hdr.checksum());
-  PRINT_FIELD("Signature:",   sig_str);
-  PRINT_FIELD("File Size:",   hdr.file_size());
+  PRINT_FIELD("Magic:", magic_str);
+  PRINT_FIELD("Checksum:", hdr.checksum());
+  PRINT_FIELD("Signature:", sig_str);
+  PRINT_FIELD("File Size:", hdr.file_size());
   PRINT_FIELD("Header Size:", hdr.header_size());
-  PRINT_FIELD("Endian Tag:",  hdr.endian_tag());
-  PRINT_FIELD("Map Offset:",  hdr.map());
-
-  PRINT_LOCATION("Strings:",     hdr.strings());
-  PRINT_LOCATION("Link:",        hdr.link());
-  PRINT_LOCATION("Types:",       hdr.types());
-  PRINT_LOCATION("Prototypes:",  hdr.prototypes());
-  PRINT_LOCATION("Fields:",      hdr.fields());
-  PRINT_LOCATION("Methods:",     hdr.methods());
-  PRINT_LOCATION("Classes:",     hdr.classes());
-  PRINT_LOCATION("Data:",        hdr.data());
+  PRINT_FIELD("Endian Tag:", hdr.endian_tag());
+  PRINT_FIELD("Map Offset:", hdr.map());
+
+  PRINT_LOCATION("Strings:", hdr.strings());
+  PRINT_LOCATION("Link:", hdr.link());
+  PRINT_LOCATION("Types:", hdr.types());
+  PRINT_LOCATION("Prototypes:", hdr.prototypes());
+  PRINT_LOCATION("Fields:", hdr.fields());
+  PRINT_LOCATION("Methods:", hdr.methods());
+  PRINT_LOCATION("Classes:", hdr.classes());
+  PRINT_LOCATION("Data:", hdr.data());

   return os;
 }
@@ -162,7 +156,4 @@ std::ostream& operator<<(std::ostream& os, const Header& hdr) {
 Header::~Header() = default;


-
-} // Namespace DEX
-} // Namespace LIEF
-
+} // namespace LIEF::DEX
diff --git a/deps/LIEF/src/DEX/Header.tcc b/deps/LIEF/src/DEX/Header.tcc
index a04dd766308..3f0c5f3685e 100644
--- a/deps/LIEF/src/DEX/Header.tcc
+++ b/deps/LIEF/src/DEX/Header.tcc
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -15,14 +15,12 @@
  */
 #include <string>
 #include "LIEF/DEX/Header.hpp"
-namespace LIEF {
-namespace DEX {
+
+namespace LIEF::DEX {

 template<class T>
 Header::Header(const T& header) :
-  magic_{},
   checksum_{header.checksum},
-  signature_{},
   file_size_{header.file_size},
   header_size_{header.header_size},
   endian_tag_{header.endian_tag},
@@ -51,15 +49,12 @@ Header::Header(const T& header) :
   class_defs_off_{header.class_defs_off},

   data_size_{header.data_size},
-  data_off_{header.data_off}
-{
-  std::copy(std::begin(header.magic), std::end(header.magic),
-            std::begin(magic_));
+  data_off_{header.data_off} {
+  std::copy(std::begin(header.magic), std::end(header.magic), std::begin(magic_));

   std::copy(std::begin(header.signature), std::end(header.signature),
             std::begin(signature_));
 }


-} // namespace DEX
-} // namespace LIEF
+} // namespace LIEF::DEX
diff --git a/deps/LIEF/src/DEX/MapItem.cpp b/deps/LIEF/src/DEX/MapItem.cpp
index a31f40de151..930ce9289fc 100644
--- a/deps/LIEF/src/DEX/MapItem.cpp
+++ b/deps/LIEF/src/DEX/MapItem.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -18,19 +18,19 @@

 #include "LIEF/DEX/EnumToString.hpp"

-namespace LIEF {
-namespace DEX {
+
+namespace LIEF::DEX {

 MapItem::MapItem() = default;
 MapItem::MapItem(const MapItem& other) = default;
 MapItem& MapItem::operator=(const MapItem&) = default;

-MapItem::MapItem(MapItem::TYPES type, uint32_t offset, uint32_t size, uint16_t reserved) :
+MapItem::MapItem(MapItem::TYPES type, uint32_t offset, uint32_t size,
+                 uint16_t reserved) :
   type_{type},
   reserved_{reserved},
   size_{size},
-  offset_{offset}
-{}
+  offset_{offset} {}

 MapItem::TYPES MapItem::type() const {
   return type_;
@@ -53,11 +53,9 @@ void MapItem::accept(Visitor& visitor) const {
 }


-
 std::ostream& operator<<(std::ostream& os, const MapItem& mitem) {
-  os << to_string(mitem.type())
-     << "@" << std::hex << std::showbase << mitem.offset()
-     << " (" << mitem.size() << " bytes) - " << mitem.reserved();
+  os << to_string(mitem.type()) << "@" << std::hex << std::showbase
+     << mitem.offset() << " (" << mitem.size() << " bytes) - " << mitem.reserved();
   return os;
 }

@@ -65,4 +63,3 @@ std::ostream& operator<<(std::ostream& os, const MapItem& mitem) {
 MapItem::~MapItem() = default;

 }
-}
diff --git a/deps/LIEF/src/DEX/MapList.cpp b/deps/LIEF/src/DEX/MapList.cpp
index 668acc9e966..9f0cb381e9b 100644
--- a/deps/LIEF/src/DEX/MapList.cpp
+++ b/deps/LIEF/src/DEX/MapList.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -17,8 +17,8 @@
 #include "LIEF/DEX/hash.hpp"
 #include "logging.hpp"

-namespace LIEF {
-namespace DEX {
+
+namespace LIEF::DEX {

 MapList::MapList() = default;
 MapList::MapList(const MapList& other) = default;
@@ -28,25 +28,21 @@ MapList& MapList::operator=(const MapList&) = default;
 MapList::it_items_t MapList::items() {
   std::vector<MapItem*> items;
   items.reserve(items_.size());
-  std::transform(std::begin(items_), std::end(items_),
-                 std::back_inserter(items),
-                 [] (MapList::items_t::value_type& p) -> MapItem* {
+  std::transform(items_.begin(), items_.end(), std::back_inserter(items),
+                 [](MapList::items_t::value_type& p) -> MapItem* {
                    return &(p.second);
                  });
   return items;
-
 }

 MapList::it_const_items_t MapList::items() const {
   std::vector<MapItem*> items;
   items.reserve(items_.size());
-  std::transform(std::begin(items_), std::end(items_),
-                 std::back_inserter(items),
-                 [] (const MapList::items_t::value_type& p) -> MapItem* {
+  std::transform(items_.begin(), items_.end(), std::back_inserter(items),
+                 [](const MapList::items_t::value_type& p) -> MapItem* {
                    return const_cast<MapItem*>(&(p.second));
                  });
   return items;
-
 }


@@ -56,7 +52,7 @@ bool MapList::has(MapItem::TYPES type) const {

 const MapItem& MapList::get(MapItem::TYPES type) const {
   const auto it = items_.find(type);
-  CHECK(it != std::end(items_), "Can't find type!");
+  CHECK(it != items_.end(), "Can't find type!");
   return it->second;
 }

@@ -77,7 +73,6 @@ void MapList::accept(Visitor& visitor) const {
 }


-
 std::ostream& operator<<(std::ostream& os, const MapList& mlist) {
   for (const MapItem& item : mlist.items()) {
     os << item << '\n';
@@ -89,4 +84,3 @@ std::ostream& operator<<(std::ostream& os, const MapList& mlist) {
 MapList::~MapList() = default;

 }
-}
diff --git a/deps/LIEF/src/DEX/Method.cpp b/deps/LIEF/src/DEX/Method.cpp
index e10969f798d..5d2d8f90a9a 100644
--- a/deps/LIEF/src/DEX/Method.cpp
+++ b/deps/LIEF/src/DEX/Method.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -25,8 +25,7 @@
 #include <utility>


-namespace LIEF {
-namespace DEX {
+namespace LIEF::DEX {

 Method::Method(const Method&) = default;
 Method& Method::operator=(const Method&) = default;
@@ -36,8 +35,7 @@ Method::Method() = default;

 Method::Method(std::string name, Class* parent) :
   name_{std::move(name)},
-  parent_{parent}
-{}
+  parent_{parent} {}

 const std::string& Method::name() const {
   return name_;
@@ -91,13 +89,11 @@ bool Method::has(ACCESS_FLAGS f) const {
 Method::access_flags_list_t Method::access_flags() const {
   Method::access_flags_list_t flags;

-  std::copy_if(std::begin(access_flags_list),
-      std::end(access_flags_list),
-      std::back_inserter(flags),
-      [this] (ACCESS_FLAGS f) { return has(f); });
+  std::copy_if(std::begin(access_flags_list), std::end(access_flags_list),
+               std::back_inserter(flags),
+               [this](ACCESS_FLAGS f) { return has(f); });

   return flags;
-
 }

 const Prototype* Method::prototype() const {
@@ -117,7 +113,6 @@ void Method::accept(Visitor& visitor) const {
 }


-
 std::ostream& operator<<(std::ostream& os, const Method& method) {
   const auto* proto = method.prototype();
   if (!proto) {
@@ -132,18 +127,18 @@ std::ostream& operator<<(std::ostream& os, const Method& method) {

   if (!pretty_cls_name.empty()) {
     pretty_cls_name = pretty_cls_name.substr(1, pretty_cls_name.size() - 2);
-    std::replace(std::begin(pretty_cls_name), std::end(pretty_cls_name), '/', '.');
+    std::replace(pretty_cls_name.begin(), pretty_cls_name.end(), '/', '.');
   }

   Method::access_flags_list_t aflags = method.access_flags();
-  std::string flags_str = std::accumulate(
-      std::begin(aflags), std::end(aflags),
-      std::string{},
-      [] (const std::string& l, ACCESS_FLAGS r) {
-        std::string str = to_string(r);
-        std::transform(std::begin(str), std::end(str), std::begin(str), ::tolower);
-        return l.empty() ? str : l + " " + str;
-      });
+  std::string flags_str =
+      std::accumulate(aflags.begin(), aflags.end(), std::string{},
+                      [](const std::string& l, ACCESS_FLAGS r) {
+                        std::string str = to_string(r);
+                        std::transform(str.begin(), str.end(), str.begin(),
+                                       ::tolower);
+                        return l.empty() ? str : l + " " + str;
+                      });

   if (!flags_str.empty()) {
     os << flags_str << " ";
@@ -168,4 +163,3 @@ std::ostream& operator<<(std::ostream& os, const Method& method) {
 Method::~Method() = default;

 }
-}
diff --git a/deps/LIEF/src/DEX/Parser.cpp b/deps/LIEF/src/DEX/Parser.cpp
index 557ebb8b7e0..0e7f8e12d2a 100644
--- a/deps/LIEF/src/DEX/Parser.cpp
+++ b/deps/LIEF/src/DEX/Parser.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -28,15 +28,15 @@

 #include "Parser.tcc"

-namespace LIEF {
-namespace DEX {
+
+namespace LIEF::DEX {

 Parser::~Parser() = default;
-Parser::Parser()  = default;
+Parser::Parser() = default;

 std::unique_ptr<File> Parser::parse(const std::string& filename) {
   if (!is_dex(filename)) {
-    LIEF_ERR("'{}' is not a DEX File", filename);
+    LIEF_ERR("'{}' is not a DEX file", filename);
     return nullptr;
   }
   Parser parser{filename};
@@ -45,9 +45,10 @@ std::unique_ptr<File> Parser::parse(const std::string& filename) {
   return std::move(parser.file_);
 }

-std::unique_ptr<File> Parser::parse(std::vector<uint8_t> data, const std::string& name) {
+std::unique_ptr<File> Parser::parse(std::vector<uint8_t> data,
+                                    const std::string& name) {
   if (!is_dex(data)) {
-    LIEF_ERR("'{}' is not a DEX File", name);
+    LIEF_ERR("'{}' is not a DEX file", name);
     return nullptr;
   }
   dex_version_t version = DEX::version(data);
@@ -60,15 +61,13 @@ std::unique_ptr<File> Parser::parse(std::vector<uint8_t> data, const std::string

 Parser::Parser(std::vector<uint8_t> data) :
   file_{new File{}},
-  stream_{std::make_unique<VectorStream>(std::move(data))}
-{}
+  stream_{std::make_unique<VectorStream>(std::move(data))} {}

 Parser::Parser(const std::string& file) :
-  file_{new File{}}
-{
+  file_{new File{}} {
   auto stream = VectorStream::from_file(file);
   if (!stream) {
-    LIEF_ERR("Can't create the stream");
+    LIEF_ERR("Failed to create stream");
   } else {
     stream_ = std::make_unique<VectorStream>(std::move(*stream));
   }
@@ -96,14 +95,14 @@ void Parser::init(const std::string& name, dex_version_t version) {
 }

 void Parser::resolve_inheritance() {
-  LIEF_DEBUG("Resolving inheritance relationship for #{:d} classes", inheritance_.size());
+  LIEF_DEBUG("Resolving inheritance for #{:d} classes", inheritance_.size());

   for (const std::pair<const std::string, Class*>& p : inheritance_) {
     const std::string& parent_name = p.first;
     Class* child = p.second;

     const auto it_inner_class = file_->classes_.find(parent_name);
-    if (it_inner_class == std::end(file_->classes_)) {
+    if (it_inner_class == file_->classes_.end()) {
       auto external_class = std::make_unique<Class>(parent_name);
       child->parent_ = external_class.get();
       file_->add_class(std::move(external_class));
@@ -114,14 +113,15 @@ void Parser::resolve_inheritance() {
 }

 void Parser::resolve_external_methods() {
-  LIEF_DEBUG("Resolving external methods for #{:d} methods", class_method_map_.size());
+  LIEF_DEBUG("Resolving external methods for #{:d} methods",
+             class_method_map_.size());

   for (const std::pair<const std::string, Method*>& p : class_method_map_) {
     const std::string& clazz = p.first;
     Method* method = p.second;

     const auto it_inner_class = file_->classes_.find(clazz);
-    if (it_inner_class == std::end(file_->classes_)) {
+    if (it_inner_class == file_->classes_.end()) {
       auto cls = std::make_unique<Class>(clazz);
       cls->methods_.push_back(method);
       method->parent_ = cls.get();
@@ -131,19 +131,19 @@ void Parser::resolve_external_methods() {
       method->parent_ = cls;
       cls->methods_.push_back(method);
     }
-
   }
 }

 void Parser::resolve_external_fields() {
-  LIEF_DEBUG("Resolving external fields for #{:d} fields", class_field_map_.size());
+  LIEF_DEBUG("Resolving external fields for #{:d} fields",
+             class_field_map_.size());

   for (const std::pair<const std::string, Field*>& p : class_field_map_) {
     const std::string& clazz = p.first;
     Field* field = p.second;

     const auto it_inner_class = file_->classes_.find(clazz);
-    if (it_inner_class == std::end(file_->classes_)) {
+    if (it_inner_class == file_->classes_.end()) {
       auto cls = std::make_unique<Class>(clazz);
       cls->fields_.push_back(field);
       field->parent_ = cls.get();
@@ -153,13 +153,12 @@ void Parser::resolve_external_fields() {
       field->parent_ = cls;
       cls->fields_.push_back(field);
     }
-
   }
 }

 void Parser::resolve_types() {
   for (const auto& p : class_type_map_) {
-    if(Class* cls = file_->get_class(p.first)) {
+    if (Class* cls = file_->get_class(p.first)) {
       p.second->underlying_array_type().cls_ = cls;
     } else {
       auto new_cls = std::make_unique<Class>(p.first);
@@ -170,6 +169,4 @@ void Parser::resolve_types() {
 }


-
-} // namespace DEX
-} // namespace LIEF
+} // namespace LIEF::DEX
diff --git a/deps/LIEF/src/DEX/Parser.tcc b/deps/LIEF/src/DEX/Parser.tcc
index f59fff86d6f..d8a2c052eb4 100644
--- a/deps/LIEF/src/DEX/Parser.tcc
+++ b/deps/LIEF/src/DEX/Parser.tcc
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -28,8 +28,8 @@

 #include "Header.tcc"

-namespace LIEF {
-namespace DEX {
+
+namespace LIEF::DEX {

 template<typename DEX_T>
 void Parser::parse_file() {
@@ -49,14 +49,13 @@ void Parser::parse_file() {
   resolve_inheritance();
   resolve_external_methods();
   resolve_external_fields();
-
 }


 template<typename DEX_T>
 void Parser::parse_header() {
   using header_t = typename DEX_T::dex_header;
-  LIEF_DEBUG("Parsing Header");
+  LIEF_DEBUG("Parsing DEX header");

   const auto res_hdr = stream_->peek<header_t>(0);
   if (!res_hdr) {
@@ -98,24 +97,42 @@ void Parser::parse_strings() {
     return;
   }

-  LIEF_DEBUG("Parsing #{:d} STRINGS at 0x{:x}",
-             strings_location.second, strings_location.first);
+  LIEF_DEBUG("Parsing #{:d} STRINGS at {:#x}", strings_location.second,
+             strings_location.first);

   MapList& map = file_->map();
   if (map.has(MapItem::TYPES::STRING_ID)) {
     const MapItem& string_item = map[MapItem::TYPES::STRING_ID];
     if (string_item.offset() != strings_location.first) {
-      LIEF_WARN("Different values for string offset between map and header");
+      LIEF_WARN("String offset mismatch between map and header");
     }

     if (string_item.size() != strings_location.second) {
-      LIEF_WARN("Different values for string size between map and header");
+      LIEF_WARN("String count mismatch between map and header");
     }
   }

-  file_->strings_.reserve(strings_location.second);
+  const uint64_t nb_strings = strings_location.second;
+  const uint64_t table_offset = strings_location.first;
+  const uint64_t stream_size = stream_->size();
+
+  if (table_offset >= stream_size) {
+    LIEF_WARN("DEX string-id table offset ({:#x}) is out of bounds", table_offset);
+    return;
+  }
+
+  const uint64_t max_entries = (stream_size - table_offset) / sizeof(uint32_t);
+  file_->strings_.reserve(nb_strings < max_entries ? nb_strings : max_entries);
+
+  uint64_t max_string = stream_size;
+
   for (size_t i = 0; i < strings_location.second; ++i) {
-    auto string_offset = stream_->peek<uint32_t>(strings_location.first + i * sizeof(uint32_t));
+    if (max_string == 0) {
+      LIEF_WARN("DEX string out of bounds");
+      break;
+    }
+    auto string_offset =
+        stream_->peek<uint32_t>(strings_location.first + i * sizeof(uint32_t));
     if (!string_offset) {
       break;
     }
@@ -126,10 +143,12 @@ void Parser::parse_strings() {
     } else {
       break;
     }
-    auto string_value = stream_->read_mutf8(str_size);
+    const uint64_t to_read = std::min<uint64_t>(str_size, max_string);
+    auto string_value = stream_->read_mutf8(to_read);
     if (!string_value) {
       break;
     }
+    max_string -= to_read;
     file_->strings_.push_back(std::make_unique<std::string>(*string_value));
   }
 }
@@ -138,7 +157,8 @@ template<typename DEX_T>
 void Parser::parse_types() {
   Header::location_t types_location = file_->header().types();

-  LIEF_DEBUG("Parsing #{:d} TYPES at 0x{:x}", types_location.second, types_location.first);
+  LIEF_DEBUG("Parsing #{:d} TYPES at {:#x}", types_location.second,
+             types_location.first);

   if (types_location.first == 0) {
     return;
@@ -154,14 +174,13 @@ void Parser::parse_types() {
     if (*descriptor_idx >= file_->strings_.size()) {
       break;
     }
-    std::unique_ptr<std::string>& descriptor_str = file_->strings_[*descriptor_idx];
+    std::unique_ptr<std::string>& descriptor_str =
+        file_->strings_[*descriptor_idx];
     auto type = std::make_unique<Type>(*descriptor_str);

     if (type->type() == Type::TYPES::CLASS) {
       class_type_map_.emplace(*descriptor_str, type.get());
-    }
-
-    else if (type->type() == Type::TYPES::ARRAY) {
+    } else if (type->type() == Type::TYPES::ARRAY) {
       const Type& array_type = type->underlying_array_type();
       if (array_type.type() == Type::TYPES::CLASS) {
         std::string mangled_name = *descriptor_str;
@@ -181,28 +200,33 @@ void Parser::parse_fields() {

   const uint64_t fields_offset = fields_location.first;

-  LIEF_DEBUG("Parsing #{:d} FIELDS at 0x{:x}", fields_location.second, fields_location.first);
+  LIEF_DEBUG("Parsing #{:d} FIELDS at {:#x}", fields_location.second,
+             fields_location.first);

   for (size_t i = 0; i < fields_location.second; ++i) {
-    const auto res_item = stream_->peek<details::field_id_item>(fields_offset + i * sizeof(details::field_id_item));
+    const auto res_item =
+        stream_->peek<details::field_id_item>(fields_offset +
+                                              i * sizeof(details::field_id_item));
     if (!res_item) {
       break;
     }
     const auto item = *res_item;

     // Class name in which the field is defined
-    if (item.class_idx > types_location.second) {
-      LIEF_WARN("Type index for field name is corrupted");
+    if (item.class_idx >= types_location.second) {
+      LIEF_WARN("Corrupted type index for field name");
       continue;
     }

-    const auto class_name_idx = stream_->peek<uint32_t>(types_location.first + item.class_idx * sizeof(uint32_t));
+    const auto class_name_idx =
+        stream_->peek<uint32_t>(types_location.first +
+                                item.class_idx * sizeof(uint32_t));
     if (!class_name_idx) {
       continue;
     }

     if (*class_name_idx >= file_->strings_.size()) {
-      LIEF_WARN("String index for class name is corrupted");
+      LIEF_WARN("Corrupted string index for field class name");
       continue;
     }
     std::string clazz = *file_->strings_[*class_name_idx];
@@ -214,14 +238,15 @@ void Parser::parse_fields() {
     // Type
     // =======================
     if (item.type_idx >= file_->types_.size()) {
-      LIEF_WARN("Type #{:d} out of bound ({:d})", item.type_idx, file_->types_.size());
+      LIEF_WARN("Type #{:d} out of bounds ({:d})", item.type_idx,
+                file_->types_.size());
       break;
     }
     std::unique_ptr<Type>& type = file_->types_[item.type_idx];

     // Field Name
     if (item.name_idx >= file_->strings_.size()) {
-      LIEF_WARN("Name of field #{:d} is out of bound!", i);
+      LIEF_WARN("Field #{:d} name out of bounds", i);
       continue;
     }

@@ -248,33 +273,36 @@ void Parser::parse_prototypes() {
     return;
   }

-  LIEF_DEBUG("Parsing #{:d} PROTYPES at 0x{:x}",
-             prototypes_locations.second, prototypes_locations.first);
+  LIEF_DEBUG("Parsing #{:d} PROTOTYPES at {:#x}", prototypes_locations.second,
+             prototypes_locations.first);

   stream_->setpos(prototypes_locations.first);
   for (size_t i = 0; i < prototypes_locations.second; ++i) {
     const auto res_item = stream_->read<details::proto_id_item>();
     if (!res_item) {
-      LIEF_WARN("Prototype #{:d} corrupted", i);
+      LIEF_WARN("Corrupted prototype #{:d}", i);
       break;
     }
     const auto item = *res_item;

     if (item.shorty_idx >= file_->strings_.size()) {
-      LIEF_WARN("prototype.shorty_idx corrupted ({:d})", item.shorty_idx);
+      LIEF_WARN("Corrupted prototype shorty index ({:d})", item.shorty_idx);
       break;
     }
-    //std::string* shorty_str = file_->strings_[item.shorty_idx];
+    // std::string* shorty_str = file_->strings_[item.shorty_idx];

     // Type object that is returned
     if (item.return_type_idx >= file_->types_.size()) {
-      LIEF_WARN("prototype.return_type_idx corrupted ({:d})", item.return_type_idx);
+      LIEF_WARN("Corrupted prototype return type index ({:d})",
+                item.return_type_idx);
       break;
     }
     auto prototype = std::make_unique<Prototype>();
     prototype->return_type_ = file_->types_[item.return_type_idx].get();

-    if (item.parameters_off > 0 && stream_->can_read<uint32_t>(item.parameters_off)) {
+    if (item.parameters_off > 0 &&
+        stream_->can_read<uint32_t>(item.parameters_off))
+    {
       const size_t saved_pos = stream_->pos();
       stream_->setpos(item.parameters_off);
       const size_t nb_params = *stream_->read<uint32_t>();
@@ -297,8 +325,6 @@ void Parser::parse_prototypes() {

     file_->prototypes_.push_back(std::move(prototype));
   }
-
-
 }

 template<typename DEX_T>
@@ -308,27 +334,32 @@ void Parser::parse_methods() {

   const uint64_t methods_offset = methods_location.first;

-  LIEF_DEBUG("Parsing #{:d} METHODS at 0x{:x}", methods_location.second, methods_location.first);
+  LIEF_DEBUG("Parsing #{:d} METHODS at {:#x}", methods_location.second,
+             methods_location.first);

   for (size_t i = 0; i < methods_location.second; ++i) {
-    const auto res_item = stream_->peek<details::method_id_item>(methods_offset + i * sizeof(details::method_id_item));
+    const auto res_item = stream_->peek<details::method_id_item>(
+        methods_offset + i * sizeof(details::method_id_item)
+    );
     if (!res_item) {
       break;
     }
     const auto item = *res_item;

     // Class name in which the method is defined
-    if (item.class_idx > types_location.second) {
-      LIEF_WARN("Type index for class name is corrupted");
+    if (item.class_idx >= types_location.second) {
+      LIEF_WARN("Corrupted type index for method class name");
       continue;
     }
-    const auto class_name_idx = stream_->peek<uint32_t>(types_location.first + item.class_idx * sizeof(uint32_t));
+    const auto class_name_idx =
+        stream_->peek<uint32_t>(types_location.first +
+                                item.class_idx * sizeof(uint32_t));
     if (!class_name_idx) {
       break;
     }

     if (*class_name_idx >= file_->strings_.size()) {
-      LIEF_WARN("String index for class name is corrupted");
+      LIEF_WARN("Corrupted string index for method class name");
       continue;
     }

@@ -338,20 +369,21 @@ void Parser::parse_methods() {
       clazz = clazz.substr(pos + 1);
     }

-    //CHECK_EQ(clazz[0], 'L') << "Not supported class: " << clazz;
+    // CHECK_EQ(clazz[0], 'L') << "Not supported class: " << clazz;


     // Prototype
     // =======================
     if (item.proto_idx >= file_->prototypes_.size()) {
-      LIEF_WARN("Prototype #{:d} out of bound ({:d})", item.proto_idx, file_->prototypes_.size());
+      LIEF_WARN("Prototype #{:d} out of bounds ({:d})", item.proto_idx,
+                file_->prototypes_.size());
       break;
     }
     std::unique_ptr<Prototype>& pt = file_->prototypes_[item.proto_idx];

     // Method Name
     if (item.name_idx >= file_->strings_.size()) {
-      LIEF_WARN("Name of method #{:d} is out of bound!", i);
+      LIEF_WARN("Method #{:d} name out of bounds", i);
       continue;
     }

@@ -381,10 +413,13 @@ void Parser::parse_classes() {

   const uint64_t classes_offset = classes_location.first;

-  LIEF_DEBUG("Parsing #{:d} CLASSES at 0x{:x}", classes_location.second, classes_offset);
+  LIEF_DEBUG("Parsing #{:d} CLASSES at {:#x}", classes_location.second,
+             classes_offset);

   for (size_t i = 0; i < classes_location.second; ++i) {
-    const auto res_item = stream_->peek<details::class_def_item>(classes_offset + i * sizeof(details::class_def_item));
+    const auto res_item = stream_->peek<details::class_def_item>(
+        classes_offset + i * sizeof(details::class_def_item)
+    );
     if (!res_item) {
       break;
     }
@@ -394,15 +429,16 @@ void Parser::parse_classes() {
     uint32_t type_idx = item.class_idx;

     std::string name;
-    if (type_idx > types_location.second) {
-      LIEF_ERR("Type Corrupted");
+    if (type_idx >= types_location.second) {
+      LIEF_ERR("Corrupted type");
     } else {
-      auto class_name_idx = stream_->peek<uint32_t>(types_location.first + type_idx * sizeof(uint32_t));
+      auto class_name_idx = stream_->peek<uint32_t>(types_location.first +
+                                                    type_idx * sizeof(uint32_t));
       if (!class_name_idx) {
         break;
       }
       if (*class_name_idx >= file_->strings_.size()) {
-        LIEF_WARN("String index for class name corrupted");
+        LIEF_WARN("Corrupted string index for class name");
       } else {
         name = *file_->strings_[*class_name_idx];
       }
@@ -412,23 +448,25 @@ void Parser::parse_classes() {
     std::string parent_name;
     Class* parent_ptr = nullptr;
     if (item.superclass_idx != details::NO_INDEX) {
-      if (item.superclass_idx > types_location.second) {
-        LIEF_WARN("Type index for super class name corrupted");
+      if (item.superclass_idx >= types_location.second) {
+        LIEF_WARN("Corrupted type index for superclass name");
         continue;
       }
-      auto super_class_name_idx = stream_->peek<uint32_t>(types_location.first + item.superclass_idx * sizeof(uint32_t));
+      auto super_class_name_idx =
+          stream_->peek<uint32_t>(types_location.first +
+                                  item.superclass_idx * sizeof(uint32_t));
       if (!super_class_name_idx) {
         break;
       }
       if (*super_class_name_idx >= file_->strings_.size()) {
-        LIEF_WARN("String index for super class name corrupted");
+        LIEF_WARN("Corrupted string index for superclass name");
       } else {
         parent_name = *file_->strings_[*super_class_name_idx];
       }

       // Check if already parsed the parent class
       const auto it_parent = file_->classes_.find(parent_name);
-      if (it_parent != std::end(file_->classes_)) {
+      if (it_parent != file_->classes_.end()) {
         parent_ptr = it_parent->second;
       }
     }
@@ -437,13 +475,14 @@ void Parser::parse_classes() {
     std::string source_filename;
     if (item.source_file_idx != details::NO_INDEX) {
       if (item.source_file_idx >= file_->strings_.size()) {
-        LIEF_WARN("String index for source filename corrupted");
+        LIEF_WARN("Corrupted string index for source filename");
       } else {
         source_filename = *file_->strings_[item.source_file_idx];
       }
     }

-    auto clazz = std::make_unique<Class>(name, item.access_flags, parent_ptr, source_filename);
+    auto clazz = std::make_unique<Class>(name, item.access_flags, parent_ptr,
+                                         source_filename);
     clazz->original_index_ = i;
     if (parent_ptr == nullptr) {
       // Register in inheritance map to be resolved later
@@ -462,9 +501,7 @@ void Parser::parse_classes() {
     if (item.class_data_off > 0) {
       parse_class_data<DEX_T>(item.class_data_off, cls);
     }
-
   }
-
 }


@@ -497,13 +534,8 @@ void Parser::parse_class_data(uint32_t offset, Class& cls) {
     return;
   }

-  const int64_t allocated_size = static_cast<int64_t>(*direct_methods_size) +
-                                 static_cast<int64_t>(*virtual_methods_size);
-  if (allocated_size < 0) {
-    return;
-  }
-
-  if (static_cast<size_t>(allocated_size) > this->file_->methods_.size()) {
+  const uint64_t allocated_size = *direct_methods_size + *virtual_methods_size;
+  if (allocated_size > this->file_->methods_.size()) {
     return;
   }

@@ -577,7 +609,6 @@ void Parser::parse_class_data(uint32_t offset, Class& cls) {
     }
     parse_method<DEX_T>(method_idx, cls, true);
   }
-
 }


@@ -597,7 +628,7 @@ void Parser::parse_field(size_t index, Class& cls, bool is_static) {
   field->set_static(is_static);

   if (field->index() != index) {
-    LIEF_WARN("field->index() is not consistent");
+    LIEF_WARN("Inconsistent field index");
     return;
   }

@@ -638,7 +669,7 @@ void Parser::parse_method(size_t index, Class& cls, bool is_virtual) {
   method->set_virtual(is_virtual);

   if (method->index() != index) {
-    LIEF_WARN("method->index() is not consistent");
+    LIEF_WARN("Inconsistent method index");
     return;
   }

@@ -668,15 +699,16 @@ void Parser::parse_code_info(uint32_t offset, Method& method) {
   }
   method.code_info_ = codeitem.value();

-  const auto* bytecode = stream_->peek_array<uint8_t>(/* offset */ offset + sizeof(details::code_item),
-                                                      /* size   */ codeitem->insns_size * sizeof(uint16_t));
+  const auto* bytecode = stream_->peek_array<uint8_t>(
+      /* offset */ offset + sizeof(details::code_item),
+      /* size   */ codeitem->insns_size * sizeof(uint16_t)
+  );
   method.code_offset_ = offset + sizeof(details::code_item);
   if (bytecode != nullptr) {
-    method.bytecode_ = {bytecode, bytecode + codeitem->insns_size * sizeof(uint16_t)};
+    method.bytecode_ = {bytecode,
+                        bytecode + codeitem->insns_size * sizeof(uint16_t)};
   }
 }


-
-}
 }
diff --git a/deps/LIEF/src/DEX/Prototype.cpp b/deps/LIEF/src/DEX/Prototype.cpp
index 23d08d859ce..3ab1a8be3d5 100644
--- a/deps/LIEF/src/DEX/Prototype.cpp
+++ b/deps/LIEF/src/DEX/Prototype.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -17,8 +17,8 @@
 #include "LIEF/DEX/Type.hpp"
 #include "LIEF/DEX/hash.hpp"

-namespace LIEF {
-namespace DEX {
+
+namespace LIEF::DEX {

 Prototype::Prototype() = default;
 Prototype::Prototype(const Prototype& other) = default;
@@ -45,7 +45,6 @@ void Prototype::accept(Visitor& visitor) const {
 }


-
 std::ostream& operator<<(std::ostream& os, const Prototype& type) {

   Prototype::it_const_params ps = type.parameters_type();
@@ -68,4 +67,3 @@ std::ostream& operator<<(std::ostream& os, const Prototype& type) {
 Prototype::~Prototype() = default;

 }
-}
diff --git a/deps/LIEF/src/DEX/Structures.hpp b/deps/LIEF/src/DEX/Structures.hpp
index 1a51f379892..6ac902eee95 100644
--- a/deps/LIEF/src/DEX/Structures.hpp
+++ b/deps/LIEF/src/DEX/Structures.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -23,19 +23,19 @@
 #include "LIEF/DEX/enums.hpp"
 #include "LIEF/DEX/types.hpp"

-namespace LIEF {
+
 /// Namespace related to the LIEF's DEX module
-namespace DEX {

-namespace details {
-static constexpr uint8_t magic[] = { 'd', 'e', 'x', '\n' };
+
+namespace LIEF::DEX::details {
+static constexpr uint8_t magic[] = {'d', 'e', 'x', '\n'};

 static constexpr uint32_t NO_INDEX = 0xffffffff;

 struct header {
-  uint8_t  magic[8];
+  uint8_t magic[8];
   uint32_t checksum;
-  uint8_t  signature[20];
+  uint8_t signature[20];
   uint32_t file_size;
   uint32_t header_size;
   uint32_t endian_tag;
@@ -83,8 +83,8 @@ struct field_id_item {
 };

 struct string_data_item {
-  uint8_t *utf16_size;
-  uint8_t *data;
+  uint8_t* utf16_size;
+  uint8_t* data;
 };

 struct map_items {
@@ -95,8 +95,8 @@ struct map_items {
 };

 struct map {
-  uint32_t  size;
-  map_items *items;
+  uint32_t size;
+  map_items* items;
 };

 struct proto_id_item {
@@ -117,134 +117,133 @@ struct code_item {

 namespace DEX_35 {

-using header           = DEX::details::header;
-using class_def_item   = DEX::details::class_def_item;
-using method_id_item   = DEX::details::method_id_item;
-using field_id_item    = DEX::details::field_id_item;
+using header = DEX::details::header;
+using class_def_item = DEX::details::class_def_item;
+using method_id_item = DEX::details::method_id_item;
+using field_id_item = DEX::details::field_id_item;
 using string_data_item = DEX::details::string_data_item;
-using map_items        = DEX::details::map_items;
-using map              = DEX::details::map;
-using proto_id_item    = DEX::details::proto_id_item;
-using code_item        = DEX::details::code_item;
+using map_items = DEX::details::map_items;
+using map = DEX::details::map;
+using proto_id_item = DEX::details::proto_id_item;
+using code_item = DEX::details::code_item;

 static constexpr dex_version_t dex_version = 35;
-static constexpr uint8_t magic[] = { 'd', 'e', 'x', '\n', '0', '3', '5', '\0' };
+static constexpr uint8_t magic[] = {'d', 'e', 'x', '\n', '0', '3', '5', '\0'};

 }

 namespace DEX_37 {

-using header           = DEX::details::header;
-using class_def_item   = DEX::details::class_def_item;
-using method_id_item   = DEX::details::method_id_item;
-using field_id_item    = DEX::details::field_id_item;
+using header = DEX::details::header;
+using class_def_item = DEX::details::class_def_item;
+using method_id_item = DEX::details::method_id_item;
+using field_id_item = DEX::details::field_id_item;
 using string_data_item = DEX::details::string_data_item;
-using map_items        = DEX::details::map_items;
-using map              = DEX::details::map;
-using proto_id_item    = DEX::details::proto_id_item;
-using code_item        = DEX::details::code_item;
+using map_items = DEX::details::map_items;
+using map = DEX::details::map;
+using proto_id_item = DEX::details::proto_id_item;
+using code_item = DEX::details::code_item;

 static constexpr dex_version_t dex_version = 37;
-static constexpr uint8_t magic[] = { 'd', 'e', 'x', '\n', '0', '3', '7', '\0' };
+static constexpr uint8_t magic[] = {'d', 'e', 'x', '\n', '0', '3', '7', '\0'};

 }

 namespace DEX_38 {

-using header           = DEX::details::header;
-using class_def_item   = DEX::details::class_def_item;
-using method_id_item   = DEX::details::method_id_item;
-using field_id_item    = DEX::details::field_id_item;
+using header = DEX::details::header;
+using class_def_item = DEX::details::class_def_item;
+using method_id_item = DEX::details::method_id_item;
+using field_id_item = DEX::details::field_id_item;
 using string_data_item = DEX::details::string_data_item;
-using map_items        = DEX::details::map_items;
-using map              = DEX::details::map;
-using proto_id_item    = DEX::details::proto_id_item;
-using code_item        = DEX::details::code_item;
+using map_items = DEX::details::map_items;
+using map = DEX::details::map;
+using proto_id_item = DEX::details::proto_id_item;
+using code_item = DEX::details::code_item;

 static constexpr dex_version_t dex_version = 38;
-static constexpr uint8_t magic[] = { 'd', 'e', 'x', '\n', '0', '3', '8', '\0' };
+static constexpr uint8_t magic[] = {'d', 'e', 'x', '\n', '0', '3', '8', '\0'};

 }

 namespace DEX_39 {

-using header           = DEX::details::header;
-using class_def_item   = DEX::details::class_def_item;
-using method_id_item   = DEX::details::method_id_item;
-using field_id_item    = DEX::details::field_id_item;
+using header = DEX::details::header;
+using class_def_item = DEX::details::class_def_item;
+using method_id_item = DEX::details::method_id_item;
+using field_id_item = DEX::details::field_id_item;
 using string_data_item = DEX::details::string_data_item;
-using map_items        = DEX::details::map_items;
-using map              = DEX::details::map;
-using proto_id_item    = DEX::details::proto_id_item;
-using code_item        = DEX::details::code_item;
+using map_items = DEX::details::map_items;
+using map = DEX::details::map;
+using proto_id_item = DEX::details::proto_id_item;
+using code_item = DEX::details::code_item;

 static constexpr dex_version_t dex_version = 39;
-static constexpr uint8_t magic[] = { 'd', 'e', 'x', '\n', '0', '3', '9', '\0' };
+static constexpr uint8_t magic[] = {'d', 'e', 'x', '\n', '0', '3', '9', '\0'};

 }


 class DEX35 {
   public:
-  using dex_header       = DEX_35::header;
-  using class_def_item   = DEX_35::class_def_item;
-  using method_id_item   = DEX_35::method_id_item;
-  using field_id_item    = DEX_35::field_id_item;
+  using dex_header = DEX_35::header;
+  using class_def_item = DEX_35::class_def_item;
+  using method_id_item = DEX_35::method_id_item;
+  using field_id_item = DEX_35::field_id_item;
   using string_data_item = DEX_35::string_data_item;
-  using map_items        = DEX_35::map_items;
-  using map              = DEX_35::map;
-  using proto_id_item    = DEX_35::proto_id_item;
-  using code_item        = DEX_35::code_item;
+  using map_items = DEX_35::map_items;
+  using map = DEX_35::map;
+  using proto_id_item = DEX_35::proto_id_item;
+  using code_item = DEX_35::code_item;

   static constexpr dex_version_t dex_version = DEX_35::dex_version;
 };

 class DEX37 {
   public:
-  using dex_header       = DEX_37::header;
-  using class_def_item   = DEX_37::class_def_item;
-  using method_id_item   = DEX_37::method_id_item;
-  using field_id_item    = DEX_37::field_id_item;
+  using dex_header = DEX_37::header;
+  using class_def_item = DEX_37::class_def_item;
+  using method_id_item = DEX_37::method_id_item;
+  using field_id_item = DEX_37::field_id_item;
   using string_data_item = DEX_37::string_data_item;
-  using map_items        = DEX_37::map_items;
-  using map              = DEX_37::map;
-  using proto_id_item    = DEX_37::proto_id_item;
-  using code_item        = DEX_37::code_item;
+  using map_items = DEX_37::map_items;
+  using map = DEX_37::map;
+  using proto_id_item = DEX_37::proto_id_item;
+  using code_item = DEX_37::code_item;

   static constexpr dex_version_t dex_version = DEX_37::dex_version;
 };

 class DEX38 {
   public:
-  using dex_header       = DEX_38::header;
-  using class_def_item   = DEX_38::class_def_item;
-  using method_id_item   = DEX_38::method_id_item;
-  using field_id_item    = DEX_38::field_id_item;
+  using dex_header = DEX_38::header;
+  using class_def_item = DEX_38::class_def_item;
+  using method_id_item = DEX_38::method_id_item;
+  using field_id_item = DEX_38::field_id_item;
   using string_data_item = DEX_38::string_data_item;
-  using map_items        = DEX_38::map_items;
-  using map              = DEX_38::map;
-  using proto_id_item    = DEX_38::proto_id_item;
-  using code_item        = DEX_38::code_item;
+  using map_items = DEX_38::map_items;
+  using map = DEX_38::map;
+  using proto_id_item = DEX_38::proto_id_item;
+  using code_item = DEX_38::code_item;

   static constexpr dex_version_t dex_version = DEX_38::dex_version;
 };

 class DEX39 {
   public:
-  using dex_header       = DEX_39::header;
-  using class_def_item   = DEX_39::class_def_item;
-  using method_id_item   = DEX_39::method_id_item;
-  using field_id_item    = DEX_39::field_id_item;
+  using dex_header = DEX_39::header;
+  using class_def_item = DEX_39::class_def_item;
+  using method_id_item = DEX_39::method_id_item;
+  using field_id_item = DEX_39::field_id_item;
   using string_data_item = DEX_39::string_data_item;
-  using map_items        = DEX_39::map_items;
-  using map              = DEX_39::map;
-  using proto_id_item    = DEX_39::proto_id_item;
-  using code_item        = DEX_39::code_item;
+  using map_items = DEX_39::map_items;
+  using map = DEX_39::map;
+  using proto_id_item = DEX_39::proto_id_item;
+  using code_item = DEX_39::code_item;

   static constexpr dex_version_t dex_version = DEX_39::dex_version;
 };
-} /* end namespace details */
-} /* end namespace DEX */
-} /* end namespace LIEF */
-#endif
+} // namespace LIEF::DEX::details
+

+#endif
diff --git a/deps/LIEF/src/DEX/Type.cpp b/deps/LIEF/src/DEX/Type.cpp
index a179687f8e8..bb53b6c3cc4 100644
--- a/deps/LIEF/src/DEX/Type.cpp
+++ b/deps/LIEF/src/DEX/Type.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -19,8 +19,8 @@
 #include "LIEF/DEX/Class.hpp"
 #include "logging.hpp"

-namespace LIEF {
-namespace DEX {
+
+namespace LIEF::DEX {

 Type::Type() = default;

@@ -31,33 +31,31 @@ Type::Type(const std::string& mangled) {

 Type::Type(const Type& other) :
   Object{other},
-  type_{other.type_}
-{
+  type_{other.type_} {
   switch (type()) {
     case TYPES::ARRAY:
-      {
-        array_ = new array_t{};
-        std::copy(
-            std::begin(other.array()),
-            std::end(other.array()),
-            std::back_inserter(*array_));
-        break;
-      }
+    {
+      array_ = new array_t{};
+      std::copy(other.array().begin(), other.array().end(),
+                std::back_inserter(*array_));
+      break;
+    }

     case TYPES::CLASS:
-      {
-        cls_ = other.cls_;
-        break;
-      }
+    {
+      cls_ = other.cls_;
+      break;
+    }

     case TYPES::PRIMITIVE:
-      {
-        basic_ = new PRIMITIVES{other.primitive()};
-        break;
-      }
+    {
+      basic_ = new PRIMITIVES{other.primitive()};
+      break;
+    }

     default:
-      {}
+    {
+    }
   }
 }

@@ -87,7 +85,9 @@ Type::array_t& Type::array() {
 }

 Type::PRIMITIVES& Type::primitive() {
-  return const_cast<Type::PRIMITIVES&>(static_cast<const Type*>(this)->primitive());
+  return const_cast<Type::PRIMITIVES&>(
+      static_cast<const Type*>(this)->primitive()
+  );
 }

 const Type& Type::underlying_array_type() const {
@@ -100,96 +100,103 @@ const Type& Type::underlying_array_type() const {


 Type& Type::underlying_array_type() {
-  return const_cast<Type&>((static_cast<const Type*>(this)->underlying_array_type()));
+  return const_cast<Type&>(
+      (static_cast<const Type*>(this)->underlying_array_type())
+  );
 }


 void Type::parse(const std::string& type) {
+  if (type.empty()) {
+    type_ = Type::TYPES::UNKNOWN;
+    return;
+  }
+
   const char t = type[0];
-  switch(t) {
+  switch (t) {
     case 'V':
-      {
-        type_ = Type::TYPES::PRIMITIVE;
-        basic_ = new Type::PRIMITIVES{Type::PRIMITIVES::VOID_T};
-        break;
-      }
+    {
+      type_ = Type::TYPES::PRIMITIVE;
+      basic_ = new Type::PRIMITIVES{Type::PRIMITIVES::VOID_T};
+      break;
+    }

     case 'Z':
-      {
-        type_ = Type::TYPES::PRIMITIVE;
-        basic_ = new Type::PRIMITIVES{Type::PRIMITIVES::BOOLEAN};
-        break;
-      }
+    {
+      type_ = Type::TYPES::PRIMITIVE;
+      basic_ = new Type::PRIMITIVES{Type::PRIMITIVES::BOOLEAN};
+      break;
+    }

     case 'B':
-      {
-        type_ = Type::TYPES::PRIMITIVE;
-        basic_ = new Type::PRIMITIVES{Type::PRIMITIVES::BYTE};
-        break;
-      }
+    {
+      type_ = Type::TYPES::PRIMITIVE;
+      basic_ = new Type::PRIMITIVES{Type::PRIMITIVES::BYTE};
+      break;
+    }

     case 'S':
-      {
-        type_ = Type::TYPES::PRIMITIVE;
-        basic_ = new Type::PRIMITIVES{Type::PRIMITIVES::SHORT};
-        break;
-      }
+    {
+      type_ = Type::TYPES::PRIMITIVE;
+      basic_ = new Type::PRIMITIVES{Type::PRIMITIVES::SHORT};
+      break;
+    }

     case 'C':
-      {
-        type_ = Type::TYPES::PRIMITIVE;
-        basic_ = new Type::PRIMITIVES{Type::PRIMITIVES::CHAR};
-        break;
-      }
+    {
+      type_ = Type::TYPES::PRIMITIVE;
+      basic_ = new Type::PRIMITIVES{Type::PRIMITIVES::CHAR};
+      break;
+    }

     case 'I':
-      {
-        type_ = Type::TYPES::PRIMITIVE;
-        basic_ = new Type::PRIMITIVES{Type::PRIMITIVES::INT};
-        break;
-      }
+    {
+      type_ = Type::TYPES::PRIMITIVE;
+      basic_ = new Type::PRIMITIVES{Type::PRIMITIVES::INT};
+      break;
+    }

     case 'J':
-      {
-        type_ = Type::TYPES::PRIMITIVE;
-        basic_ = new Type::PRIMITIVES{Type::PRIMITIVES::LONG};
-        break;
-      }
+    {
+      type_ = Type::TYPES::PRIMITIVE;
+      basic_ = new Type::PRIMITIVES{Type::PRIMITIVES::LONG};
+      break;
+    }

     case 'F':
-      {
-        type_ = Type::TYPES::PRIMITIVE;
-        basic_ = new Type::PRIMITIVES{Type::PRIMITIVES::FLOAT};
-        break;
-      }
+    {
+      type_ = Type::TYPES::PRIMITIVE;
+      basic_ = new Type::PRIMITIVES{Type::PRIMITIVES::FLOAT};
+      break;
+    }

     case 'D':
-      {
-        type_ = Type::TYPES::PRIMITIVE;
-        basic_ = new Type::PRIMITIVES{Type::PRIMITIVES::DOUBLE};
-        break;
-      }
-
-    case 'L': //CLASS
-      {
-        type_ = Type::TYPES::CLASS;
-        break;
-      }
-
-    case '[': //ARRAY
-      {
-        if (array_ == nullptr) {
-          array_ = new array_t{};
-        }
-        type_ = Type::TYPES::ARRAY;
-        array_->emplace_back(type.substr(1));
-        break;
+    {
+      type_ = Type::TYPES::PRIMITIVE;
+      basic_ = new Type::PRIMITIVES{Type::PRIMITIVES::DOUBLE};
+      break;
+    }
+
+    case 'L': // CLASS
+    {
+      type_ = Type::TYPES::CLASS;
+      break;
+    }
+
+    case '[': // ARRAY
+    {
+      if (array_ == nullptr) {
+        array_ = new array_t{};
       }
+      type_ = Type::TYPES::ARRAY;
+      array_->emplace_back(type.substr(1));
+      break;
+    }

     default:
-      {
-        LIEF_WARN("Unknown type: '{}'", t);
-      }
+    {
+      LIEF_WARN("Unknown type: '{}'", t);
+    }
   }
 }

@@ -212,34 +219,33 @@ void Type::accept(Visitor& visitor) const {
 }


-
 std::ostream& operator<<(std::ostream& os, const Type& type) {
   switch (type.type()) {
     case Type::TYPES::ARRAY:
-      {
-        os << type.underlying_array_type();
-        for (size_t i = 0; i < type.dim(); ++i) {
-          os << "[]";
-        }
-        return os;
+    {
+      os << type.underlying_array_type();
+      for (size_t i = 0; i < type.dim(); ++i) {
+        os << "[]";
       }
+      return os;
+    }

     case Type::TYPES::CLASS:
-      {
-        os << type.cls().fullname();
-        return os;
-      }
+    {
+      os << type.cls().fullname();
+      return os;
+    }

     case Type::TYPES::PRIMITIVE:
-      {
-        os << Type::pretty_name(type.primitive());
-        return os;
-      }
+    {
+      os << Type::pretty_name(type.primitive());
+      return os;
+    }

     default:
-      {
-        return os;
-      }
+    {
+      return os;
+    }
   }
   return os;
 }
@@ -248,78 +254,77 @@ std::ostream& operator<<(std::ostream& os, const Type& type) {
 std::string Type::pretty_name(PRIMITIVES p) {
   switch (p) {
     case PRIMITIVES::BOOLEAN:
-      {
-        return "bool";
-      }
+    {
+      return "bool";
+    }

     case PRIMITIVES::BYTE:
-      {
-        return "byte";
-      }
+    {
+      return "byte";
+    }

     case PRIMITIVES::CHAR:
-      {
-        return "char";
-      }
+    {
+      return "char";
+    }

     case PRIMITIVES::DOUBLE:
-      {
-        return "double";
-      }
+    {
+      return "double";
+    }

     case PRIMITIVES::FLOAT:
-      {
-        return "float";
-      }
+    {
+      return "float";
+    }

     case PRIMITIVES::INT:
-      {
-        return "int";
-      }
+    {
+      return "int";
+    }

     case PRIMITIVES::LONG:
-      {
-        return "long";
-      }
+    {
+      return "long";
+    }

     case PRIMITIVES::SHORT:
-      {
-        return "short";
-      }
+    {
+      return "short";
+    }

     case PRIMITIVES::VOID_T:
-      {
-        return "void";
-      }
+    {
+      return "void";
+    }

     default:
-      {
-        return "";
-      }
+    {
+      return "";
+    }
   }
 }

 Type::~Type() {
   switch (type()) {
     case Type::TYPES::ARRAY:
-      {
-        delete array_;
-        break;
-      }
+    {
+      delete array_;
+      break;
+    }

     case Type::TYPES::PRIMITIVE:
-      {
-        delete basic_;
-        break;
-      }
+    {
+      delete basic_;
+      break;
+    }

     case Type::TYPES::CLASS:
     case Type::TYPES::UNKNOWN:
     default:
-      {
-      }
+    {
+    }
   }
 }

 }
-}
diff --git a/deps/LIEF/src/DEX/hash.cpp b/deps/LIEF/src/DEX/hash.cpp
index e02315b7770..63ef4ee645f 100644
--- a/deps/LIEF/src/DEX/hash.cpp
+++ b/deps/LIEF/src/DEX/hash.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -25,8 +25,8 @@
 #include "LIEF/DEX/Method.hpp"
 #include "LIEF/DEX/Prototype.hpp"

-namespace LIEF {
-namespace DEX {
+
+namespace LIEF::DEX {

 Hash::~Hash() = default;

@@ -39,10 +39,9 @@ void Hash::visit(const File& file) {
   process(file.location());
   process(file.header());

-  process(std::begin(file.classes()), std::end(file.classes()));
-  process(std::begin(file.methods()), std::end(file.methods()));
-  process(std::begin(file.strings()), std::end(file.strings()));
-
+  process(file.classes().begin(), file.classes().end());
+  process(file.methods().begin(), file.methods().end());
+  process(file.strings().begin(), file.strings().end());
 }

 void Hash::visit(const Header& header) {
@@ -62,8 +61,7 @@ void Hash::visit(const Header& header) {
   process(header.data());
 }

-void Hash::visit(const CodeInfo& /*code_info*/) {
-}
+void Hash::visit(const CodeInfo& /*code_info*/) {}

 void Hash::visit(const Class& cls) {

@@ -73,8 +71,8 @@ void Hash::visit(const Class& cls) {
   process(cls.source_filename());
   process(cls.access_flags());

-  process(std::begin(fields), std::end(fields));
-  process(std::begin(methods), std::end(methods));
+  process(fields.begin(), fields.end());
+  process(methods.begin(), methods.end());
 }

 void Hash::visit(const Field& field) {
@@ -96,29 +94,29 @@ void Hash::visit(const Method& method) {
 void Hash::visit(const Type& type) {
   switch (type.type()) {
     case Type::TYPES::ARRAY:
-      {
-        process(type.dim());
-        process(type.underlying_array_type());
-        break;
-      }
+    {
+      process(type.dim());
+      process(type.underlying_array_type());
+      break;
+    }

     case Type::TYPES::PRIMITIVE:
-      {
-        process(type.primitive());
-        break;
-      }
+    {
+      process(type.primitive());
+      break;
+    }

     case Type::TYPES::CLASS:
-      {
-        process(type.cls().fullname());
-        break;
-      }
+    {
+      process(type.cls().fullname());
+      break;
+    }

     case Type::TYPES::UNKNOWN:
     default:
-      {
-        process(Type::TYPES::UNKNOWN);
-      }
+    {
+      process(Type::TYPES::UNKNOWN);
+    }
   }
 }

@@ -126,8 +124,7 @@ void Hash::visit(const Prototype& type) {
   if (const auto* rty = type.return_type()) {
     process(*rty);
   }
-  process(std::begin(type.parameters_type()),
-          std::end(type.parameters_type()));
+  process(type.parameters_type().begin(), type.parameters_type().end());
 }

 void Hash::visit(const MapItem& item) {
@@ -138,10 +135,8 @@ void Hash::visit(const MapItem& item) {
 }

 void Hash::visit(const MapList& list) {
-  process(std::begin(list.items()), std::end(list.items()));
+  process(list.items().begin(), list.items().end());
 }


-} // namespace DEX
-} // namespace LIEF
-
+} // namespace LIEF::DEX
diff --git a/deps/LIEF/src/DEX/instructions.cpp b/deps/LIEF/src/DEX/instructions.cpp
index 0728c919d87..e3007234137 100644
--- a/deps/LIEF/src/DEX/instructions.cpp
+++ b/deps/LIEF/src/DEX/instructions.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -20,303 +20,287 @@
 #include <algorithm>
 #include <map>

-namespace LIEF {
-namespace DEX {
+
+namespace LIEF::DEX {

 INST_FORMATS inst_format_from_opcode(OPCODES op) {
-  static const std::map<OPCODES, INST_FORMATS> size_map {
-    { OPCODES::OP_NOP,                    INST_FORMATS::F_10x },
-    { OPCODES::OP_MOVE,                   INST_FORMATS::F_12x },
-    { OPCODES::OP_MOVE_FROM_16,           INST_FORMATS::F_22x },
-    { OPCODES::OP_MOVE_16,                INST_FORMATS::F_32x },
-    { OPCODES::OP_MOVE_WIDE,              INST_FORMATS::F_12x },
-    { OPCODES::OP_MOVE_WIDE_FROM_16,      INST_FORMATS::F_22x },
-    { OPCODES::OP_MOVE_WIDE_16,           INST_FORMATS::F_32x },
-    { OPCODES::OP_MOVE_OBJECT,            INST_FORMATS::F_12x },
-    { OPCODES::OP_MOVE_OBJECT_FROM_16,    INST_FORMATS::F_22x },
-    { OPCODES::OP_MOVE_OBJECT_16,         INST_FORMATS::F_32x },
-    { OPCODES::OP_MOVE_RESULT,            INST_FORMATS::F_11x },
-    { OPCODES::OP_MOVE_RESULT_WIDE,       INST_FORMATS::F_11x },
-    { OPCODES::OP_MOVE_RESULT_OBJECT,     INST_FORMATS::F_11x },
-    { OPCODES::OP_MOVE_EXCEPTION,         INST_FORMATS::F_11x },
-    { OPCODES::OP_RETURN_VOID,            INST_FORMATS::F_10x },
-    { OPCODES::OP_RETURN,                 INST_FORMATS::F_11x },
-    { OPCODES::OP_RETURN_WIDE,            INST_FORMATS::F_11x },
-    { OPCODES::OP_RETURN_OBJECT,          INST_FORMATS::F_11x },
-    { OPCODES::OP_CONST_4,                INST_FORMATS::F_11n },
-    { OPCODES::OP_CONST_16,               INST_FORMATS::F_21s },
-    { OPCODES::OP_CONST,                  INST_FORMATS::F_31i },
-    { OPCODES::OP_CONST_HIGH_16,          INST_FORMATS::F_21h },
-    { OPCODES::OP_CONST_WIDE_16,          INST_FORMATS::F_21s },
-    { OPCODES::OP_CONST_WIDE_32,          INST_FORMATS::F_31i },
-    { OPCODES::OP_CONST_WIDE,             INST_FORMATS::F_51l },
-    { OPCODES::OP_CONST_WIDE_HIGH_16,     INST_FORMATS::F_21h },
-    { OPCODES::OP_CONST_STRING,           INST_FORMATS::F_21c },
-    { OPCODES::OP_CONST_STRING_JUMBO,     INST_FORMATS::F_31c },
-    { OPCODES::OP_CONST_CLASS,            INST_FORMATS::F_21c },
-    { OPCODES::OP_MONITOR_ENTER,          INST_FORMATS::F_11x },
-    { OPCODES::OP_MONITOR_EXIT,           INST_FORMATS::F_11x },
-    { OPCODES::OP_CHECK_CAST,             INST_FORMATS::F_21c },
-    { OPCODES::OP_INSTANCE_OF,            INST_FORMATS::F_22c },
-    { OPCODES::OP_ARRAY_LENGTH,           INST_FORMATS::F_12x },
-    { OPCODES::OP_NEW_INSTANCE,           INST_FORMATS::F_21c },
-    { OPCODES::OP_NEW_ARRAY,              INST_FORMATS::F_22c },
-    { OPCODES::OP_FILLED_NEW_ARRAY,       INST_FORMATS::F_35c },
-    { OPCODES::OP_FILLED_NEW_ARRAY_RANGE, INST_FORMATS::F_3rc },
-    { OPCODES::OP_FILL_ARRAY_DATA,        INST_FORMATS::F_31t },
-    { OPCODES::OP_THROW,                  INST_FORMATS::F_11x },
-    { OPCODES::OP_GOTO,                   INST_FORMATS::F_10t },
-    { OPCODES::OP_GOTO_16,                INST_FORMATS::F_20t },
-    { OPCODES::OP_GOTO_32,                INST_FORMATS::F_30t },
-    { OPCODES::OP_PACKED_SWITCH,          INST_FORMATS::F_31t },
-    { OPCODES::OP_SPARSE_SWITCH,          INST_FORMATS::F_31t },
-    { OPCODES::OP_CMPL_FLOAT,             INST_FORMATS::F_23x },
-    { OPCODES::OP_CMPG_FLOAT,             INST_FORMATS::F_23x },
-    { OPCODES::OP_CMPL_DOUBLE,            INST_FORMATS::F_23x },
-    { OPCODES::OP_CMPG_DOUBLE,            INST_FORMATS::F_23x },
-    { OPCODES::OP_CMP_LONG,               INST_FORMATS::F_23x },
-    { OPCODES::OP_IF_EQ,                  INST_FORMATS::F_22t },
-    { OPCODES::OP_IF_NE,                  INST_FORMATS::F_22t },
-    { OPCODES::OP_IF_LT,                  INST_FORMATS::F_22t },
-    { OPCODES::OP_IF_GE,                  INST_FORMATS::F_22t },
-    { OPCODES::OP_IF_GT,                  INST_FORMATS::F_22t },
-    { OPCODES::OP_IF_LE,                  INST_FORMATS::F_22t },
-    { OPCODES::OP_IF_EQZ,                 INST_FORMATS::F_21t },
-    { OPCODES::OP_IF_NEZ,                 INST_FORMATS::F_21t },
-    { OPCODES::OP_IF_LTZ,                 INST_FORMATS::F_21t },
-    { OPCODES::OP_IF_GEZ,                 INST_FORMATS::F_21t },
-    { OPCODES::OP_IF_GTZ,                 INST_FORMATS::F_21t },
-    { OPCODES::OP_IF_LEZ,                 INST_FORMATS::F_21t },
-    { OPCODES::OP_AGET,                   INST_FORMATS::F_23x },
-    { OPCODES::OP_AGET_WIDE,              INST_FORMATS::F_23x },
-    { OPCODES::OP_AGET_OBJECT,            INST_FORMATS::F_23x },
-    { OPCODES::OP_AGET_BOOLEAN,           INST_FORMATS::F_23x },
-    { OPCODES::OP_AGET_BYTE,              INST_FORMATS::F_23x },
-    { OPCODES::OP_AGET_CHAR,              INST_FORMATS::F_23x },
-    { OPCODES::OP_AGET_SHORT,             INST_FORMATS::F_23x },
-    { OPCODES::OP_APUT,                   INST_FORMATS::F_23x },
-    { OPCODES::OP_APUT_WIDE,              INST_FORMATS::F_23x },
-    { OPCODES::OP_APUT_OBJECT,            INST_FORMATS::F_23x },
-    { OPCODES::OP_APUT_BOOLEAN,           INST_FORMATS::F_23x },
-    { OPCODES::OP_APUT_BYTE,              INST_FORMATS::F_23x },
-    { OPCODES::OP_APUT_CHAR,              INST_FORMATS::F_23x },
-    { OPCODES::OP_APUT_SHORT,             INST_FORMATS::F_23x },
-    { OPCODES::OP_IGET,                   INST_FORMATS::F_22c },
-    { OPCODES::OP_IGET_WIDE,              INST_FORMATS::F_22c },
-    { OPCODES::OP_IGET_OBJECT,            INST_FORMATS::F_22c },
-    { OPCODES::OP_IGET_BOOLEAN,           INST_FORMATS::F_22c },
-    { OPCODES::OP_IGET_BYTE,              INST_FORMATS::F_22c },
-    { OPCODES::OP_IGET_CHAR,              INST_FORMATS::F_22c },
-    { OPCODES::OP_IGET_SHORT,             INST_FORMATS::F_22c },
-    { OPCODES::OP_IPUT,                   INST_FORMATS::F_22c },
-    { OPCODES::OP_IPUT_WIDE,              INST_FORMATS::F_22c },
-    { OPCODES::OP_IPUT_OBJECT,            INST_FORMATS::F_22c },
-    { OPCODES::OP_IPUT_BOOLEAN,           INST_FORMATS::F_22c },
-    { OPCODES::OP_IPUT_BYTE,              INST_FORMATS::F_22c },
-    { OPCODES::OP_IPUT_CHAR,              INST_FORMATS::F_22c },
-    { OPCODES::OP_IPUT_SHORT,             INST_FORMATS::F_22c },
-    { OPCODES::OP_SGET,                   INST_FORMATS::F_21c },
-    { OPCODES::OP_SGET_WIDE,              INST_FORMATS::F_21c },
-    { OPCODES::OP_SGET_OBJECT,            INST_FORMATS::F_21c },
-    { OPCODES::OP_SGET_BOOLEAN,           INST_FORMATS::F_21c },
-    { OPCODES::OP_SGET_BYTE,              INST_FORMATS::F_21c },
-    { OPCODES::OP_SGET_CHAR,              INST_FORMATS::F_21c },
-    { OPCODES::OP_SGET_SHORT,             INST_FORMATS::F_21c },
-    { OPCODES::OP_SPUT,                   INST_FORMATS::F_21c },
-    { OPCODES::OP_SPUT_WIDE,              INST_FORMATS::F_21c },
-    { OPCODES::OP_SPUT_OBJECT,            INST_FORMATS::F_21c },
-    { OPCODES::OP_SPUT_BOOLEAN,           INST_FORMATS::F_21c },
-    { OPCODES::OP_SPUT_BYTE,              INST_FORMATS::F_21c },
-    { OPCODES::OP_SPUT_CHAR,              INST_FORMATS::F_21c },
-    { OPCODES::OP_SPUT_SHORT,             INST_FORMATS::F_21c },
-    { OPCODES::OP_INVOKE_VIRTUAL,         INST_FORMATS::F_35c },
-    { OPCODES::OP_INVOKE_SUPER,           INST_FORMATS::F_35c },
-    { OPCODES::OP_INVOKE_DIRECT,          INST_FORMATS::F_35c },
-    { OPCODES::OP_INVOKE_STATIC,          INST_FORMATS::F_35c },
-    { OPCODES::OP_INVOKE_INTERFACE,       INST_FORMATS::F_35c },
-    { OPCODES::OP_RETURN_VOID_NO_BARRIER, INST_FORMATS::F_10x },
-    { OPCODES::OP_INVOKE_VIRTUAL_RANGE,   INST_FORMATS::F_3rc },
-    { OPCODES::OP_INVOKE_SUPER_RANGE,     INST_FORMATS::F_3rc },
-    { OPCODES::OP_INVOKE_DIRECT_RANGE,    INST_FORMATS::F_3rc },
-    { OPCODES::OP_INVOKE_STATIC_RANGE,    INST_FORMATS::F_3rc },
-    { OPCODES::OP_INVOKE_INTERFACE_RANGE, INST_FORMATS::F_3rc },
-    { OPCODES::OP_NEG_INT,                INST_FORMATS::F_12x },
-    { OPCODES::OP_NOT_INT,                INST_FORMATS::F_12x },
-    { OPCODES::OP_NEG_LONG,               INST_FORMATS::F_12x },
-    { OPCODES::OP_NOT_LONG,               INST_FORMATS::F_12x },
-    { OPCODES::OP_NEG_FLOAT,              INST_FORMATS::F_12x },
-    { OPCODES::OP_NEG_DOUBLE,             INST_FORMATS::F_12x },
-    { OPCODES::OP_INT_TO_LONG,            INST_FORMATS::F_12x },
-    { OPCODES::OP_INT_TO_FLOAT,           INST_FORMATS::F_12x },
-    { OPCODES::OP_INT_TO_DOUBLE,          INST_FORMATS::F_12x },
-    { OPCODES::OP_LONG_TO_INT,            INST_FORMATS::F_12x },
-    { OPCODES::OP_LONG_TO_FLOAT,          INST_FORMATS::F_12x },
-    { OPCODES::OP_LONG_TO_DOUBLE,         INST_FORMATS::F_12x },
-    { OPCODES::OP_FLOAT_TO_INT,           INST_FORMATS::F_12x },
-    { OPCODES::OP_FLOAT_TO_LONG,          INST_FORMATS::F_12x },
-    { OPCODES::OP_FLOAT_TO_DOUBLE,        INST_FORMATS::F_12x },
-    { OPCODES::OP_DOUBLE_TO_INT,          INST_FORMATS::F_12x },
-    { OPCODES::OP_DOUBLE_TO_LONG,         INST_FORMATS::F_12x },
-    { OPCODES::OP_DOUBLE_TO_FLOAT,        INST_FORMATS::F_12x },
-    { OPCODES::OP_INT_TO_BYTE,            INST_FORMATS::F_12x },
-    { OPCODES::OP_INT_TO_CHAR,            INST_FORMATS::F_12x },
-    { OPCODES::OP_INT_TO_SHORT,           INST_FORMATS::F_12x },
-    { OPCODES::OP_ADD_INT,                INST_FORMATS::F_23x },
-    { OPCODES::OP_SUB_INT,                INST_FORMATS::F_23x },
-    { OPCODES::OP_MUL_INT,                INST_FORMATS::F_23x },
-    { OPCODES::OP_DIV_INT,                INST_FORMATS::F_23x },
-    { OPCODES::OP_REM_INT,                INST_FORMATS::F_23x },
-    { OPCODES::OP_AND_INT,                INST_FORMATS::F_23x },
-    { OPCODES::OP_OR_INT,                 INST_FORMATS::F_23x },
-    { OPCODES::OP_XOR_INT,                INST_FORMATS::F_23x },
-    { OPCODES::OP_SHL_INT,                INST_FORMATS::F_23x },
-    { OPCODES::OP_SHR_INT,                INST_FORMATS::F_23x },
-    { OPCODES::OP_USHR_INT,               INST_FORMATS::F_23x },
-    { OPCODES::OP_ADD_LONG,               INST_FORMATS::F_23x },
-    { OPCODES::OP_SUB_LONG,               INST_FORMATS::F_23x },
-    { OPCODES::OP_MUL_LONG,               INST_FORMATS::F_23x },
-    { OPCODES::OP_DIV_LONG,               INST_FORMATS::F_23x },
-    { OPCODES::OP_REM_LONG,               INST_FORMATS::F_23x },
-    { OPCODES::OP_AND_LONG,               INST_FORMATS::F_23x },
-    { OPCODES::OP_OR_LONG,                INST_FORMATS::F_23x },
-    { OPCODES::OP_XOR_LONG,               INST_FORMATS::F_23x },
-    { OPCODES::OP_SHL_LONG,               INST_FORMATS::F_23x },
-    { OPCODES::OP_SHR_LONG,               INST_FORMATS::F_23x },
-    { OPCODES::OP_USHR_LONG,              INST_FORMATS::F_23x },
-    { OPCODES::OP_ADD_FLOAT,              INST_FORMATS::F_23x },
-    { OPCODES::OP_SUB_FLOAT,              INST_FORMATS::F_23x },
-    { OPCODES::OP_MUL_FLOAT,              INST_FORMATS::F_23x },
-    { OPCODES::OP_DIV_FLOAT,              INST_FORMATS::F_23x },
-    { OPCODES::OP_REM_FLOAT,              INST_FORMATS::F_23x },
-    { OPCODES::OP_ADD_DOUBLE,             INST_FORMATS::F_23x },
-    { OPCODES::OP_SUB_DOUBLE,             INST_FORMATS::F_23x },
-    { OPCODES::OP_MUL_DOUBLE,             INST_FORMATS::F_23x },
-    { OPCODES::OP_DIV_DOUBLE,             INST_FORMATS::F_23x },
-    { OPCODES::OP_REM_DOUBLE,             INST_FORMATS::F_23x },
-    { OPCODES::OP_ADD_INT_2_ADDR,         INST_FORMATS::F_12x },
-    { OPCODES::OP_SUB_INT_2_ADDR,         INST_FORMATS::F_12x },
-    { OPCODES::OP_MUL_INT_2_ADDR,         INST_FORMATS::F_12x },
-    { OPCODES::OP_DIV_INT_2_ADDR,         INST_FORMATS::F_12x },
-    { OPCODES::OP_REM_INT_2_ADDR,         INST_FORMATS::F_12x },
-    { OPCODES::OP_AND_INT_2_ADDR,         INST_FORMATS::F_12x },
-    { OPCODES::OP_OR_INT_2_ADDR,          INST_FORMATS::F_12x },
-    { OPCODES::OP_XOR_INT_2_ADDR,         INST_FORMATS::F_12x },
-    { OPCODES::OP_SHL_INT_2_ADDR,         INST_FORMATS::F_12x },
-    { OPCODES::OP_SHR_INT_2_ADDR,         INST_FORMATS::F_12x },
-    { OPCODES::OP_USHR_INT_2_ADDR,        INST_FORMATS::F_12x },
-    { OPCODES::OP_ADD_LONG_2_ADDR,        INST_FORMATS::F_12x },
-    { OPCODES::OP_SUB_LONG_2_ADDR,        INST_FORMATS::F_12x },
-    { OPCODES::OP_MUL_LONG_2_ADDR,        INST_FORMATS::F_12x },
-    { OPCODES::OP_DIV_LONG_2_ADDR,        INST_FORMATS::F_12x },
-    { OPCODES::OP_REM_LONG_2_ADDR,        INST_FORMATS::F_12x },
-    { OPCODES::OP_AND_LONG_2_ADDR,        INST_FORMATS::F_12x },
-    { OPCODES::OP_OR_LONG_2_ADDR,         INST_FORMATS::F_12x },
-    { OPCODES::OP_XOR_LONG_2_ADDR,        INST_FORMATS::F_12x },
-    { OPCODES::OP_SHL_LONG_2_ADDR,        INST_FORMATS::F_12x },
-    { OPCODES::OP_SHR_LONG_2_ADDR,        INST_FORMATS::F_12x },
-    { OPCODES::OP_USHR_LONG_2_ADDR,       INST_FORMATS::F_12x },
-    { OPCODES::OP_ADD_FLOAT_2_ADDR,       INST_FORMATS::F_12x },
-    { OPCODES::OP_SUB_FLOAT_2_ADDR,       INST_FORMATS::F_12x },
-    { OPCODES::OP_MUL_FLOAT_2_ADDR,       INST_FORMATS::F_12x },
-    { OPCODES::OP_DIV_FLOAT_2_ADDR,       INST_FORMATS::F_12x },
-    { OPCODES::OP_REM_FLOAT_2_ADDR,       INST_FORMATS::F_12x },
-    { OPCODES::OP_ADD_DOUBLE_2_ADDR,      INST_FORMATS::F_12x },
-    { OPCODES::OP_SUB_DOUBLE_2_ADDR,      INST_FORMATS::F_12x },
-    { OPCODES::OP_MUL_DOUBLE_2_ADDR,      INST_FORMATS::F_12x },
-    { OPCODES::OP_DIV_DOUBLE_2_ADDR,      INST_FORMATS::F_12x },
-    { OPCODES::OP_REM_DOUBLE_2_ADDR,      INST_FORMATS::F_12x },
-    { OPCODES::OP_ADD_INT_LIT_16,         INST_FORMATS::F_22s },
-    { OPCODES::OP_RSUB_INT,               INST_FORMATS::F_22s },
-    { OPCODES::OP_MUL_INT_LIT_16,         INST_FORMATS::F_22s },
-    { OPCODES::OP_DIV_INT_LIT_16,         INST_FORMATS::F_22s },
-    { OPCODES::OP_REM_INT_LIT_16,         INST_FORMATS::F_22s },
-    { OPCODES::OP_AND_INT_LIT_16,         INST_FORMATS::F_22s },
-    { OPCODES::OP_OR_INT_LIT_16,          INST_FORMATS::F_22s },
-    { OPCODES::OP_XOR_INT_LIT_16,         INST_FORMATS::F_22s },
-    { OPCODES::OP_ADD_INT_LIT_8,          INST_FORMATS::F_22b },
-    { OPCODES::OP_RSUB_INT_LIT_8,         INST_FORMATS::F_22b },
-    { OPCODES::OP_MUL_INT_LIT_8,          INST_FORMATS::F_22b },
-    { OPCODES::OP_DIV_INT_LIT_8,          INST_FORMATS::F_22b },
-    { OPCODES::OP_REM_INT_LIT_8,          INST_FORMATS::F_22b },
-    { OPCODES::OP_AND_INT_LIT_8,          INST_FORMATS::F_22b },
-    { OPCODES::OP_OR_INT_LIT_8,           INST_FORMATS::F_22b },
-    { OPCODES::OP_XOR_INT_LIT_8,          INST_FORMATS::F_22b },
-    { OPCODES::OP_SHL_INT_LIT_8,          INST_FORMATS::F_22b },
-    { OPCODES::OP_SHR_INT_LIT_8,          INST_FORMATS::F_22b },
-    { OPCODES::OP_USHR_INT_LIT_8,         INST_FORMATS::F_22b },
+  static const std::map<OPCODES, INST_FORMATS> size_map{
+      {OPCODES::OP_NOP, INST_FORMATS::F_10x},
+      {OPCODES::OP_MOVE, INST_FORMATS::F_12x},
+      {OPCODES::OP_MOVE_FROM_16, INST_FORMATS::F_22x},
+      {OPCODES::OP_MOVE_16, INST_FORMATS::F_32x},
+      {OPCODES::OP_MOVE_WIDE, INST_FORMATS::F_12x},
+      {OPCODES::OP_MOVE_WIDE_FROM_16, INST_FORMATS::F_22x},
+      {OPCODES::OP_MOVE_WIDE_16, INST_FORMATS::F_32x},
+      {OPCODES::OP_MOVE_OBJECT, INST_FORMATS::F_12x},
+      {OPCODES::OP_MOVE_OBJECT_FROM_16, INST_FORMATS::F_22x},
+      {OPCODES::OP_MOVE_OBJECT_16, INST_FORMATS::F_32x},
+      {OPCODES::OP_MOVE_RESULT, INST_FORMATS::F_11x},
+      {OPCODES::OP_MOVE_RESULT_WIDE, INST_FORMATS::F_11x},
+      {OPCODES::OP_MOVE_RESULT_OBJECT, INST_FORMATS::F_11x},
+      {OPCODES::OP_MOVE_EXCEPTION, INST_FORMATS::F_11x},
+      {OPCODES::OP_RETURN_VOID, INST_FORMATS::F_10x},
+      {OPCODES::OP_RETURN, INST_FORMATS::F_11x},
+      {OPCODES::OP_RETURN_WIDE, INST_FORMATS::F_11x},
+      {OPCODES::OP_RETURN_OBJECT, INST_FORMATS::F_11x},
+      {OPCODES::OP_CONST_4, INST_FORMATS::F_11n},
+      {OPCODES::OP_CONST_16, INST_FORMATS::F_21s},
+      {OPCODES::OP_CONST, INST_FORMATS::F_31i},
+      {OPCODES::OP_CONST_HIGH_16, INST_FORMATS::F_21h},
+      {OPCODES::OP_CONST_WIDE_16, INST_FORMATS::F_21s},
+      {OPCODES::OP_CONST_WIDE_32, INST_FORMATS::F_31i},
+      {OPCODES::OP_CONST_WIDE, INST_FORMATS::F_51l},
+      {OPCODES::OP_CONST_WIDE_HIGH_16, INST_FORMATS::F_21h},
+      {OPCODES::OP_CONST_STRING, INST_FORMATS::F_21c},
+      {OPCODES::OP_CONST_STRING_JUMBO, INST_FORMATS::F_31c},
+      {OPCODES::OP_CONST_CLASS, INST_FORMATS::F_21c},
+      {OPCODES::OP_MONITOR_ENTER, INST_FORMATS::F_11x},
+      {OPCODES::OP_MONITOR_EXIT, INST_FORMATS::F_11x},
+      {OPCODES::OP_CHECK_CAST, INST_FORMATS::F_21c},
+      {OPCODES::OP_INSTANCE_OF, INST_FORMATS::F_22c},
+      {OPCODES::OP_ARRAY_LENGTH, INST_FORMATS::F_12x},
+      {OPCODES::OP_NEW_INSTANCE, INST_FORMATS::F_21c},
+      {OPCODES::OP_NEW_ARRAY, INST_FORMATS::F_22c},
+      {OPCODES::OP_FILLED_NEW_ARRAY, INST_FORMATS::F_35c},
+      {OPCODES::OP_FILLED_NEW_ARRAY_RANGE, INST_FORMATS::F_3rc},
+      {OPCODES::OP_FILL_ARRAY_DATA, INST_FORMATS::F_31t},
+      {OPCODES::OP_THROW, INST_FORMATS::F_11x},
+      {OPCODES::OP_GOTO, INST_FORMATS::F_10t},
+      {OPCODES::OP_GOTO_16, INST_FORMATS::F_20t},
+      {OPCODES::OP_GOTO_32, INST_FORMATS::F_30t},
+      {OPCODES::OP_PACKED_SWITCH, INST_FORMATS::F_31t},
+      {OPCODES::OP_SPARSE_SWITCH, INST_FORMATS::F_31t},
+      {OPCODES::OP_CMPL_FLOAT, INST_FORMATS::F_23x},
+      {OPCODES::OP_CMPG_FLOAT, INST_FORMATS::F_23x},
+      {OPCODES::OP_CMPL_DOUBLE, INST_FORMATS::F_23x},
+      {OPCODES::OP_CMPG_DOUBLE, INST_FORMATS::F_23x},
+      {OPCODES::OP_CMP_LONG, INST_FORMATS::F_23x},
+      {OPCODES::OP_IF_EQ, INST_FORMATS::F_22t},
+      {OPCODES::OP_IF_NE, INST_FORMATS::F_22t},
+      {OPCODES::OP_IF_LT, INST_FORMATS::F_22t},
+      {OPCODES::OP_IF_GE, INST_FORMATS::F_22t},
+      {OPCODES::OP_IF_GT, INST_FORMATS::F_22t},
+      {OPCODES::OP_IF_LE, INST_FORMATS::F_22t},
+      {OPCODES::OP_IF_EQZ, INST_FORMATS::F_21t},
+      {OPCODES::OP_IF_NEZ, INST_FORMATS::F_21t},
+      {OPCODES::OP_IF_LTZ, INST_FORMATS::F_21t},
+      {OPCODES::OP_IF_GEZ, INST_FORMATS::F_21t},
+      {OPCODES::OP_IF_GTZ, INST_FORMATS::F_21t},
+      {OPCODES::OP_IF_LEZ, INST_FORMATS::F_21t},
+      {OPCODES::OP_AGET, INST_FORMATS::F_23x},
+      {OPCODES::OP_AGET_WIDE, INST_FORMATS::F_23x},
+      {OPCODES::OP_AGET_OBJECT, INST_FORMATS::F_23x},
+      {OPCODES::OP_AGET_BOOLEAN, INST_FORMATS::F_23x},
+      {OPCODES::OP_AGET_BYTE, INST_FORMATS::F_23x},
+      {OPCODES::OP_AGET_CHAR, INST_FORMATS::F_23x},
+      {OPCODES::OP_AGET_SHORT, INST_FORMATS::F_23x},
+      {OPCODES::OP_APUT, INST_FORMATS::F_23x},
+      {OPCODES::OP_APUT_WIDE, INST_FORMATS::F_23x},
+      {OPCODES::OP_APUT_OBJECT, INST_FORMATS::F_23x},
+      {OPCODES::OP_APUT_BOOLEAN, INST_FORMATS::F_23x},
+      {OPCODES::OP_APUT_BYTE, INST_FORMATS::F_23x},
+      {OPCODES::OP_APUT_CHAR, INST_FORMATS::F_23x},
+      {OPCODES::OP_APUT_SHORT, INST_FORMATS::F_23x},
+      {OPCODES::OP_IGET, INST_FORMATS::F_22c},
+      {OPCODES::OP_IGET_WIDE, INST_FORMATS::F_22c},
+      {OPCODES::OP_IGET_OBJECT, INST_FORMATS::F_22c},
+      {OPCODES::OP_IGET_BOOLEAN, INST_FORMATS::F_22c},
+      {OPCODES::OP_IGET_BYTE, INST_FORMATS::F_22c},
+      {OPCODES::OP_IGET_CHAR, INST_FORMATS::F_22c},
+      {OPCODES::OP_IGET_SHORT, INST_FORMATS::F_22c},
+      {OPCODES::OP_IPUT, INST_FORMATS::F_22c},
+      {OPCODES::OP_IPUT_WIDE, INST_FORMATS::F_22c},
+      {OPCODES::OP_IPUT_OBJECT, INST_FORMATS::F_22c},
+      {OPCODES::OP_IPUT_BOOLEAN, INST_FORMATS::F_22c},
+      {OPCODES::OP_IPUT_BYTE, INST_FORMATS::F_22c},
+      {OPCODES::OP_IPUT_CHAR, INST_FORMATS::F_22c},
+      {OPCODES::OP_IPUT_SHORT, INST_FORMATS::F_22c},
+      {OPCODES::OP_SGET, INST_FORMATS::F_21c},
+      {OPCODES::OP_SGET_WIDE, INST_FORMATS::F_21c},
+      {OPCODES::OP_SGET_OBJECT, INST_FORMATS::F_21c},
+      {OPCODES::OP_SGET_BOOLEAN, INST_FORMATS::F_21c},
+      {OPCODES::OP_SGET_BYTE, INST_FORMATS::F_21c},
+      {OPCODES::OP_SGET_CHAR, INST_FORMATS::F_21c},
+      {OPCODES::OP_SGET_SHORT, INST_FORMATS::F_21c},
+      {OPCODES::OP_SPUT, INST_FORMATS::F_21c},
+      {OPCODES::OP_SPUT_WIDE, INST_FORMATS::F_21c},
+      {OPCODES::OP_SPUT_OBJECT, INST_FORMATS::F_21c},
+      {OPCODES::OP_SPUT_BOOLEAN, INST_FORMATS::F_21c},
+      {OPCODES::OP_SPUT_BYTE, INST_FORMATS::F_21c},
+      {OPCODES::OP_SPUT_CHAR, INST_FORMATS::F_21c},
+      {OPCODES::OP_SPUT_SHORT, INST_FORMATS::F_21c},
+      {OPCODES::OP_INVOKE_VIRTUAL, INST_FORMATS::F_35c},
+      {OPCODES::OP_INVOKE_SUPER, INST_FORMATS::F_35c},
+      {OPCODES::OP_INVOKE_DIRECT, INST_FORMATS::F_35c},
+      {OPCODES::OP_INVOKE_STATIC, INST_FORMATS::F_35c},
+      {OPCODES::OP_INVOKE_INTERFACE, INST_FORMATS::F_35c},
+      {OPCODES::OP_RETURN_VOID_NO_BARRIER, INST_FORMATS::F_10x},
+      {OPCODES::OP_INVOKE_VIRTUAL_RANGE, INST_FORMATS::F_3rc},
+      {OPCODES::OP_INVOKE_SUPER_RANGE, INST_FORMATS::F_3rc},
+      {OPCODES::OP_INVOKE_DIRECT_RANGE, INST_FORMATS::F_3rc},
+      {OPCODES::OP_INVOKE_STATIC_RANGE, INST_FORMATS::F_3rc},
+      {OPCODES::OP_INVOKE_INTERFACE_RANGE, INST_FORMATS::F_3rc},
+      {OPCODES::OP_NEG_INT, INST_FORMATS::F_12x},
+      {OPCODES::OP_NOT_INT, INST_FORMATS::F_12x},
+      {OPCODES::OP_NEG_LONG, INST_FORMATS::F_12x},
+      {OPCODES::OP_NOT_LONG, INST_FORMATS::F_12x},
+      {OPCODES::OP_NEG_FLOAT, INST_FORMATS::F_12x},
+      {OPCODES::OP_NEG_DOUBLE, INST_FORMATS::F_12x},
+      {OPCODES::OP_INT_TO_LONG, INST_FORMATS::F_12x},
+      {OPCODES::OP_INT_TO_FLOAT, INST_FORMATS::F_12x},
+      {OPCODES::OP_INT_TO_DOUBLE, INST_FORMATS::F_12x},
+      {OPCODES::OP_LONG_TO_INT, INST_FORMATS::F_12x},
+      {OPCODES::OP_LONG_TO_FLOAT, INST_FORMATS::F_12x},
+      {OPCODES::OP_LONG_TO_DOUBLE, INST_FORMATS::F_12x},
+      {OPCODES::OP_FLOAT_TO_INT, INST_FORMATS::F_12x},
+      {OPCODES::OP_FLOAT_TO_LONG, INST_FORMATS::F_12x},
+      {OPCODES::OP_FLOAT_TO_DOUBLE, INST_FORMATS::F_12x},
+      {OPCODES::OP_DOUBLE_TO_INT, INST_FORMATS::F_12x},
+      {OPCODES::OP_DOUBLE_TO_LONG, INST_FORMATS::F_12x},
+      {OPCODES::OP_DOUBLE_TO_FLOAT, INST_FORMATS::F_12x},
+      {OPCODES::OP_INT_TO_BYTE, INST_FORMATS::F_12x},
+      {OPCODES::OP_INT_TO_CHAR, INST_FORMATS::F_12x},
+      {OPCODES::OP_INT_TO_SHORT, INST_FORMATS::F_12x},
+      {OPCODES::OP_ADD_INT, INST_FORMATS::F_23x},
+      {OPCODES::OP_SUB_INT, INST_FORMATS::F_23x},
+      {OPCODES::OP_MUL_INT, INST_FORMATS::F_23x},
+      {OPCODES::OP_DIV_INT, INST_FORMATS::F_23x},
+      {OPCODES::OP_REM_INT, INST_FORMATS::F_23x},
+      {OPCODES::OP_AND_INT, INST_FORMATS::F_23x},
+      {OPCODES::OP_OR_INT, INST_FORMATS::F_23x},
+      {OPCODES::OP_XOR_INT, INST_FORMATS::F_23x},
+      {OPCODES::OP_SHL_INT, INST_FORMATS::F_23x},
+      {OPCODES::OP_SHR_INT, INST_FORMATS::F_23x},
+      {OPCODES::OP_USHR_INT, INST_FORMATS::F_23x},
+      {OPCODES::OP_ADD_LONG, INST_FORMATS::F_23x},
+      {OPCODES::OP_SUB_LONG, INST_FORMATS::F_23x},
+      {OPCODES::OP_MUL_LONG, INST_FORMATS::F_23x},
+      {OPCODES::OP_DIV_LONG, INST_FORMATS::F_23x},
+      {OPCODES::OP_REM_LONG, INST_FORMATS::F_23x},
+      {OPCODES::OP_AND_LONG, INST_FORMATS::F_23x},
+      {OPCODES::OP_OR_LONG, INST_FORMATS::F_23x},
+      {OPCODES::OP_XOR_LONG, INST_FORMATS::F_23x},
+      {OPCODES::OP_SHL_LONG, INST_FORMATS::F_23x},
+      {OPCODES::OP_SHR_LONG, INST_FORMATS::F_23x},
+      {OPCODES::OP_USHR_LONG, INST_FORMATS::F_23x},
+      {OPCODES::OP_ADD_FLOAT, INST_FORMATS::F_23x},
+      {OPCODES::OP_SUB_FLOAT, INST_FORMATS::F_23x},
+      {OPCODES::OP_MUL_FLOAT, INST_FORMATS::F_23x},
+      {OPCODES::OP_DIV_FLOAT, INST_FORMATS::F_23x},
+      {OPCODES::OP_REM_FLOAT, INST_FORMATS::F_23x},
+      {OPCODES::OP_ADD_DOUBLE, INST_FORMATS::F_23x},
+      {OPCODES::OP_SUB_DOUBLE, INST_FORMATS::F_23x},
+      {OPCODES::OP_MUL_DOUBLE, INST_FORMATS::F_23x},
+      {OPCODES::OP_DIV_DOUBLE, INST_FORMATS::F_23x},
+      {OPCODES::OP_REM_DOUBLE, INST_FORMATS::F_23x},
+      {OPCODES::OP_ADD_INT_2_ADDR, INST_FORMATS::F_12x},
+      {OPCODES::OP_SUB_INT_2_ADDR, INST_FORMATS::F_12x},
+      {OPCODES::OP_MUL_INT_2_ADDR, INST_FORMATS::F_12x},
+      {OPCODES::OP_DIV_INT_2_ADDR, INST_FORMATS::F_12x},
+      {OPCODES::OP_REM_INT_2_ADDR, INST_FORMATS::F_12x},
+      {OPCODES::OP_AND_INT_2_ADDR, INST_FORMATS::F_12x},
+      {OPCODES::OP_OR_INT_2_ADDR, INST_FORMATS::F_12x},
+      {OPCODES::OP_XOR_INT_2_ADDR, INST_FORMATS::F_12x},
+      {OPCODES::OP_SHL_INT_2_ADDR, INST_FORMATS::F_12x},
+      {OPCODES::OP_SHR_INT_2_ADDR, INST_FORMATS::F_12x},
+      {OPCODES::OP_USHR_INT_2_ADDR, INST_FORMATS::F_12x},
+      {OPCODES::OP_ADD_LONG_2_ADDR, INST_FORMATS::F_12x},
+      {OPCODES::OP_SUB_LONG_2_ADDR, INST_FORMATS::F_12x},
+      {OPCODES::OP_MUL_LONG_2_ADDR, INST_FORMATS::F_12x},
+      {OPCODES::OP_DIV_LONG_2_ADDR, INST_FORMATS::F_12x},
+      {OPCODES::OP_REM_LONG_2_ADDR, INST_FORMATS::F_12x},
+      {OPCODES::OP_AND_LONG_2_ADDR, INST_FORMATS::F_12x},
+      {OPCODES::OP_OR_LONG_2_ADDR, INST_FORMATS::F_12x},
+      {OPCODES::OP_XOR_LONG_2_ADDR, INST_FORMATS::F_12x},
+      {OPCODES::OP_SHL_LONG_2_ADDR, INST_FORMATS::F_12x},
+      {OPCODES::OP_SHR_LONG_2_ADDR, INST_FORMATS::F_12x},
+      {OPCODES::OP_USHR_LONG_2_ADDR, INST_FORMATS::F_12x},
+      {OPCODES::OP_ADD_FLOAT_2_ADDR, INST_FORMATS::F_12x},
+      {OPCODES::OP_SUB_FLOAT_2_ADDR, INST_FORMATS::F_12x},
+      {OPCODES::OP_MUL_FLOAT_2_ADDR, INST_FORMATS::F_12x},
+      {OPCODES::OP_DIV_FLOAT_2_ADDR, INST_FORMATS::F_12x},
+      {OPCODES::OP_REM_FLOAT_2_ADDR, INST_FORMATS::F_12x},
+      {OPCODES::OP_ADD_DOUBLE_2_ADDR, INST_FORMATS::F_12x},
+      {OPCODES::OP_SUB_DOUBLE_2_ADDR, INST_FORMATS::F_12x},
+      {OPCODES::OP_MUL_DOUBLE_2_ADDR, INST_FORMATS::F_12x},
+      {OPCODES::OP_DIV_DOUBLE_2_ADDR, INST_FORMATS::F_12x},
+      {OPCODES::OP_REM_DOUBLE_2_ADDR, INST_FORMATS::F_12x},
+      {OPCODES::OP_ADD_INT_LIT_16, INST_FORMATS::F_22s},
+      {OPCODES::OP_RSUB_INT, INST_FORMATS::F_22s},
+      {OPCODES::OP_MUL_INT_LIT_16, INST_FORMATS::F_22s},
+      {OPCODES::OP_DIV_INT_LIT_16, INST_FORMATS::F_22s},
+      {OPCODES::OP_REM_INT_LIT_16, INST_FORMATS::F_22s},
+      {OPCODES::OP_AND_INT_LIT_16, INST_FORMATS::F_22s},
+      {OPCODES::OP_OR_INT_LIT_16, INST_FORMATS::F_22s},
+      {OPCODES::OP_XOR_INT_LIT_16, INST_FORMATS::F_22s},
+      {OPCODES::OP_ADD_INT_LIT_8, INST_FORMATS::F_22b},
+      {OPCODES::OP_RSUB_INT_LIT_8, INST_FORMATS::F_22b},
+      {OPCODES::OP_MUL_INT_LIT_8, INST_FORMATS::F_22b},
+      {OPCODES::OP_DIV_INT_LIT_8, INST_FORMATS::F_22b},
+      {OPCODES::OP_REM_INT_LIT_8, INST_FORMATS::F_22b},
+      {OPCODES::OP_AND_INT_LIT_8, INST_FORMATS::F_22b},
+      {OPCODES::OP_OR_INT_LIT_8, INST_FORMATS::F_22b},
+      {OPCODES::OP_XOR_INT_LIT_8, INST_FORMATS::F_22b},
+      {OPCODES::OP_SHL_INT_LIT_8, INST_FORMATS::F_22b},
+      {OPCODES::OP_SHR_INT_LIT_8, INST_FORMATS::F_22b},
+      {OPCODES::OP_USHR_INT_LIT_8, INST_FORMATS::F_22b},

-    { OPCODES::OP_INVOKE_POLYMORPHIC,       INST_FORMATS::F_45cc },
-    { OPCODES::OP_INVOKE_POLYMORPHIC_RANGE, INST_FORMATS::F_4rcc },
-    { OPCODES::OP_INVOKE_CUSTOM,            INST_FORMATS::F_35c  },
-    { OPCODES::OP_INVOKE_CUSTOM_RANGE,      INST_FORMATS::F_3rc  },
+      {OPCODES::OP_INVOKE_POLYMORPHIC, INST_FORMATS::F_45cc},
+      {OPCODES::OP_INVOKE_POLYMORPHIC_RANGE, INST_FORMATS::F_4rcc},
+      {OPCODES::OP_INVOKE_CUSTOM, INST_FORMATS::F_35c},
+      {OPCODES::OP_INVOKE_CUSTOM_RANGE, INST_FORMATS::F_3rc},

-    { OPCODES::OP_CONST_METHOD_HANDLE,        INST_FORMATS::F_21c },
-    { OPCODES::OP_CONST_METHOD_TYPE,          INST_FORMATS::F_21c },
+      {OPCODES::OP_CONST_METHOD_HANDLE, INST_FORMATS::F_21c},
+      {OPCODES::OP_CONST_METHOD_TYPE, INST_FORMATS::F_21c},

-    { OPCODES::OP_IGET_QUICK,                 INST_FORMATS::F_22c },
-    { OPCODES::OP_IGET_WIDE_QUICK,            INST_FORMATS::F_22c },
-    { OPCODES::OP_IGET_OBJECT_QUICK,          INST_FORMATS::F_22c },
-    { OPCODES::OP_IPUT_QUICK,                 INST_FORMATS::F_22c },
-    { OPCODES::OP_IPUT_WIDE_QUICK,            INST_FORMATS::F_22c },
-    { OPCODES::OP_IPUT_OBJECT_QUICK,          INST_FORMATS::F_22c },
-    { OPCODES::OP_INVOKE_VIRTUAL_QUICK,       INST_FORMATS::F_35c },
-    { OPCODES::OP_INVOKE_VIRTUAL_RANGE_QUICK, INST_FORMATS::F_3rc },
-    { OPCODES::OP_IPUT_BOOLEAN_QUICK,         INST_FORMATS::F_22c },
-    { OPCODES::OP_IPUT_BYTE_QUICK,            INST_FORMATS::F_22c },
-    { OPCODES::OP_IPUT_CHAR_QUICK,            INST_FORMATS::F_22c },
-    { OPCODES::OP_IPUT_SHORT_QUICK,           INST_FORMATS::F_22c },
-    { OPCODES::OP_IGET_BOOLEAN_QUICK,         INST_FORMATS::F_22c },
-    { OPCODES::OP_IGET_BYTE_QUICK,            INST_FORMATS::F_22c },
-    { OPCODES::OP_IGET_CHAR_QUICK,            INST_FORMATS::F_22c },
-    { OPCODES::OP_IGET_SHORT_QUICK,           INST_FORMATS::F_22c },
+      {OPCODES::OP_IGET_QUICK, INST_FORMATS::F_22c},
+      {OPCODES::OP_IGET_WIDE_QUICK, INST_FORMATS::F_22c},
+      {OPCODES::OP_IGET_OBJECT_QUICK, INST_FORMATS::F_22c},
+      {OPCODES::OP_IPUT_QUICK, INST_FORMATS::F_22c},
+      {OPCODES::OP_IPUT_WIDE_QUICK, INST_FORMATS::F_22c},
+      {OPCODES::OP_IPUT_OBJECT_QUICK, INST_FORMATS::F_22c},
+      {OPCODES::OP_INVOKE_VIRTUAL_QUICK, INST_FORMATS::F_35c},
+      {OPCODES::OP_INVOKE_VIRTUAL_RANGE_QUICK, INST_FORMATS::F_3rc},
+      {OPCODES::OP_IPUT_BOOLEAN_QUICK, INST_FORMATS::F_22c},
+      {OPCODES::OP_IPUT_BYTE_QUICK, INST_FORMATS::F_22c},
+      {OPCODES::OP_IPUT_CHAR_QUICK, INST_FORMATS::F_22c},
+      {OPCODES::OP_IPUT_SHORT_QUICK, INST_FORMATS::F_22c},
+      {OPCODES::OP_IGET_BOOLEAN_QUICK, INST_FORMATS::F_22c},
+      {OPCODES::OP_IGET_BYTE_QUICK, INST_FORMATS::F_22c},
+      {OPCODES::OP_IGET_CHAR_QUICK, INST_FORMATS::F_22c},
+      {OPCODES::OP_IGET_SHORT_QUICK, INST_FORMATS::F_22c},

   };

-  auto   it  = size_map.find(op);
-  //if (it == std::end(size_map)) {
-  //  std::cout << std::hex << "OP: " << op << '\n';
-  //}
+  auto it = size_map.find(op);
+  // if (it == size_map.end()) {
+  //   std::cout << std::hex << "OP: " << op << '\n';
+  // }
   return it == size_map.end() ? INST_FORMATS::F_00x : it->second;
 }

 size_t inst_size_from_format(INST_FORMATS fmt) {
-  static const std::map<INST_FORMATS, size_t> size_map {
-    { INST_FORMATS::F_00x,   SIZE_MAX  },
-    { INST_FORMATS::F_10x,   2    },
-    { INST_FORMATS::F_12x,   2    },
-    { INST_FORMATS::F_11n,   2    },
-    { INST_FORMATS::F_11x,   2    },
-    { INST_FORMATS::F_10t,   2    },
-    { INST_FORMATS::F_20t,   4    },
-    { INST_FORMATS::F_20bc,  4    },
-    { INST_FORMATS::F_22x,   4    },
-    { INST_FORMATS::F_21t,   4    },
-    { INST_FORMATS::F_21s,   4    },
-    { INST_FORMATS::F_21h,   4    },
-    { INST_FORMATS::F_21c,   4    },
-    { INST_FORMATS::F_23x,   4    },
-    { INST_FORMATS::F_22b,   4    },
-    { INST_FORMATS::F_22t,   4    },
-    { INST_FORMATS::F_22s,   4    },
-    { INST_FORMATS::F_22c,   4    },
-    { INST_FORMATS::F_22cs,  4    },
-    { INST_FORMATS::F_30t,   6    },
-    { INST_FORMATS::F_32x,   6    },
-    { INST_FORMATS::F_31i,   6    },
-    { INST_FORMATS::F_31t,   6    },
-    { INST_FORMATS::F_31c,   6    },
-    { INST_FORMATS::F_35c,   6    },
-    { INST_FORMATS::F_35ms,  6    },
-    { INST_FORMATS::F_35mi,  6    },
-    { INST_FORMATS::F_3rc,   6    },
-    { INST_FORMATS::F_3rms,  6    },
-    { INST_FORMATS::F_3rmi,  6    },
-    { INST_FORMATS::F_45cc,  8    },
-    { INST_FORMATS::F_4rcc,  8    },
-    { INST_FORMATS::F_51l,   10   },
+  static const std::map<INST_FORMATS, size_t> size_map{
+      {INST_FORMATS::F_00x, SIZE_MAX}, {INST_FORMATS::F_10x, 2},
+      {INST_FORMATS::F_12x, 2},        {INST_FORMATS::F_11n, 2},
+      {INST_FORMATS::F_11x, 2},        {INST_FORMATS::F_10t, 2},
+      {INST_FORMATS::F_20t, 4},        {INST_FORMATS::F_20bc, 4},
+      {INST_FORMATS::F_22x, 4},        {INST_FORMATS::F_21t, 4},
+      {INST_FORMATS::F_21s, 4},        {INST_FORMATS::F_21h, 4},
+      {INST_FORMATS::F_21c, 4},        {INST_FORMATS::F_23x, 4},
+      {INST_FORMATS::F_22b, 4},        {INST_FORMATS::F_22t, 4},
+      {INST_FORMATS::F_22s, 4},        {INST_FORMATS::F_22c, 4},
+      {INST_FORMATS::F_22cs, 4},       {INST_FORMATS::F_30t, 6},
+      {INST_FORMATS::F_32x, 6},        {INST_FORMATS::F_31i, 6},
+      {INST_FORMATS::F_31t, 6},        {INST_FORMATS::F_31c, 6},
+      {INST_FORMATS::F_35c, 6},        {INST_FORMATS::F_35ms, 6},
+      {INST_FORMATS::F_35mi, 6},       {INST_FORMATS::F_3rc, 6},
+      {INST_FORMATS::F_3rms, 6},       {INST_FORMATS::F_3rmi, 6},
+      {INST_FORMATS::F_45cc, 8},       {INST_FORMATS::F_4rcc, 8},
+      {INST_FORMATS::F_51l, 10},
   };

-  auto   it  = size_map.find(fmt);
+  auto it = size_map.find(fmt);
   return it == size_map.end() ? 0 : it->second;
 }

@@ -326,38 +310,37 @@ size_t inst_size_from_opcode(OPCODES op) {

 bool is_switch_array(const uint8_t* ptr, const uint8_t* end) {
   const size_t size = end - ptr;
-  const size_t underlying_struct_size = std::min({
-      sizeof(packed_switch),
-      sizeof(sparse_switch),
-      sizeof(fill_array_data)});
+  const size_t underlying_struct_size =
+      std::min({sizeof(packed_switch), sizeof(sparse_switch),
+                sizeof(fill_array_data)});

   if (size < underlying_struct_size) {
     return false;
   }

   const auto opcode = static_cast<OPCODES>(*ptr);
-  const bool valid_opcode =
-    opcode == OPCODES::OP_NOP ||
-    opcode == OPCODES::OP_RETURN_VOID ||
-    opcode == OPCODES::OP_RETURN_VOID_NO_BARRIER;
+  const bool valid_opcode = opcode == OPCODES::OP_NOP ||
+                            opcode == OPCODES::OP_RETURN_VOID ||
+                            opcode == OPCODES::OP_RETURN_VOID_NO_BARRIER;

   if (!valid_opcode) {
     return false;
   }

-  const auto ident = static_cast<SWITCH_ARRAY_IDENT>(static_cast<uint16_t>(ptr[1] << 8) | opcode);
+  const auto ident =
+      static_cast<SWITCH_ARRAY_IDENT>(static_cast<uint16_t>(ptr[1] << 8) | opcode);

-  switch(ident) {
+  switch (ident) {
     case SWITCH_ARRAY_IDENT::IDENT_PACKED_SWITCH:
     case SWITCH_ARRAY_IDENT::IDENT_SPARSE_SWITCH:
     case SWITCH_ARRAY_IDENT::IDENT_FILL_ARRAY:
-      {
-        return true;
-      }
+    {
+      return true;
+    }
     default:
-      {
-        return false;
-      }
+    {
+      return false;
+    }
   }
   return false;
 }
@@ -367,47 +350,55 @@ size_t switch_array_size(const uint8_t* ptr, const uint8_t* end) {
     return SIZE_MAX;
   }

+  const size_t remaining = static_cast<size_t>(end - ptr);
   const auto opcode = static_cast<OPCODES>(*ptr);
-  const auto ident = static_cast<SWITCH_ARRAY_IDENT>(static_cast<uint16_t>(ptr[1] << 8) | opcode);
-  const uint8_t* ptr_struct = ptr;
-  size_t size = 0;
+  const auto ident =
+      static_cast<SWITCH_ARRAY_IDENT>(static_cast<uint16_t>(ptr[1] << 8) | opcode);

-  switch(ident) {
+  switch (ident) {
     case SWITCH_ARRAY_IDENT::IDENT_PACKED_SWITCH:
-      {
-        size_t nb_elements = reinterpret_cast<const packed_switch*>(ptr_struct)->size;
-        size += sizeof(packed_switch);
-        size += nb_elements * sizeof(uint32_t);
-        return size;
+    {
+      if (remaining < sizeof(packed_switch)) {
+        return SIZE_MAX;
       }
+      const size_t nb_elements = reinterpret_cast<const packed_switch*>(ptr)->size;
+      return sizeof(packed_switch) + nb_elements * sizeof(uint32_t);
+    }
     case SWITCH_ARRAY_IDENT::IDENT_SPARSE_SWITCH:
-      {
-        size_t nb_elements = reinterpret_cast<const sparse_switch*>(ptr_struct)->size;
-        size += sizeof(sparse_switch);
-        size += 2 *nb_elements * sizeof(uint32_t);
-        return size;
+    {
+      if (remaining < sizeof(sparse_switch)) {
+        return SIZE_MAX;
       }
+      const size_t nb_elements = reinterpret_cast<const sparse_switch*>(ptr)->size;
+      return sizeof(sparse_switch) + 2 * nb_elements * sizeof(uint32_t);
+    }
     case SWITCH_ARRAY_IDENT::IDENT_FILL_ARRAY:
-      {
-        size_t nb_elements = reinterpret_cast<const fill_array_data*>(ptr_struct)->size;
-        size_t width       = reinterpret_cast<const fill_array_data*>(ptr_struct)->element_width;
-        size_t data_size   = nb_elements * width;
-        data_size += data_size % 2;
+    {
+      if (remaining < sizeof(fill_array_data)) {
+        return SIZE_MAX;
+      }
+      const auto* fill = reinterpret_cast<const fill_array_data*>(ptr);
+      const size_t nb_elements = fill->size;
+      const size_t width = fill->element_width;

-        size += sizeof(fill_array_data);
-        size += data_size;
-        return size;
+      if (width != 0 && nb_elements > SIZE_MAX / width) {
+        return SIZE_MAX;
       }
-    default:
-      {
+      size_t data_size = nb_elements * width;
+      if (data_size > SIZE_MAX - (data_size % 2)) {
+        return SIZE_MAX;
+      }
+      data_size += data_size % 2;
+      if (data_size > SIZE_MAX - sizeof(fill_array_data)) {
         return SIZE_MAX;
       }
+      return sizeof(fill_array_data) + data_size;
+    }
+    default:
+    {
+      return SIZE_MAX;
+    }
   }
-
-  return size;
-
 }

 }
-}
-
diff --git a/deps/LIEF/src/DEX/json.cpp b/deps/LIEF/src/DEX/json.cpp
index 8107b7860b9..e6c594c5115 100644
--- a/deps/LIEF/src/DEX/json.cpp
+++ b/deps/LIEF/src/DEX/json.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -17,8 +17,8 @@
 #include "DEX/json_internal.hpp"
 #include "LIEF/DEX.hpp"

-namespace LIEF {
-namespace DEX {
+
+namespace LIEF::DEX {

 json to_json_obj(const Object& v) {
   JsonVisitor visitor;
@@ -42,31 +42,30 @@ void JsonVisitor::visit(const File& file) {
     classes.emplace_back(clsvisitor.get());
   }

-  node_["header"]  = header_visitor.get();
+  node_["header"] = header_visitor.get();
   node_["classes"] = classes;
-  node_["map"]     = map_item_visitor.get();
+  node_["map"] = map_item_visitor.get();
 }

 void JsonVisitor::visit(const Header& header) {
-  node_["magic"]       = header.magic();
-  node_["checksum"]    = header.checksum();
-  node_["signature"]   = header.signature();
-  node_["file_size"]   = header.file_size();
+  node_["magic"] = header.magic();
+  node_["checksum"] = header.checksum();
+  node_["signature"] = header.signature();
+  node_["file_size"] = header.file_size();
   node_["header_size"] = header.header_size();
-  node_["endian_tag"]  = header.endian_tag();
-  node_["map"]         = header.map();
-  node_["strings"]     = header.strings();
-  node_["link"]        = header.link();
-  node_["types"]       = header.types();
-  node_["prototypes"]  = header.prototypes();
-  node_["fields"]      = header.fields();
-  node_["methods"]     = header.methods();
-  node_["classes"]     = header.classes();
-  node_["data"]        = header.data();
+  node_["endian_tag"] = header.endian_tag();
+  node_["map"] = header.map();
+  node_["strings"] = header.strings();
+  node_["link"] = header.link();
+  node_["types"] = header.types();
+  node_["prototypes"] = header.prototypes();
+  node_["fields"] = header.fields();
+  node_["methods"] = header.methods();
+  node_["classes"] = header.classes();
+  node_["data"] = header.data();
 }

-void JsonVisitor::visit(const CodeInfo& /*code_info*/) {
-}
+void JsonVisitor::visit(const CodeInfo& /*code_info*/) {}

 void JsonVisitor::visit(const Class& cls) {
   std::vector<json> flags;
@@ -87,12 +86,12 @@ void JsonVisitor::visit(const Class& cls) {
     mv(m);
     methods.emplace_back(mv.get());
   }
-  node_["fullname"]         = cls.fullname();
-  node_["source_filename"]  = cls.source_filename();
-  node_["access_flags"]     = flags;
-  node_["index"]            = cls.index();
-  node_["fields"]           = fields;
-  node_["methods"]          = methods;
+  node_["fullname"] = cls.fullname();
+  node_["source_filename"] = cls.source_filename();
+  node_["access_flags"] = flags;
+  node_["index"] = cls.index();
+  node_["fields"] = fields;
+  node_["methods"] = methods;

   if (const auto* parent = cls.parent()) {
     node_["parent"] = parent->fullname();
@@ -108,10 +107,10 @@ void JsonVisitor::visit(const Field& field) {
   JsonVisitor type_visitor;
   type_visitor(*field.type());

-  node_["name"]         = field.name();
-  node_["index"]        = field.index();
-  node_["is_static"]    = field.is_static();
-  node_["type"]         = type_visitor.get();
+  node_["name"] = field.name();
+  node_["index"] = field.index();
+  node_["is_static"] = field.is_static();
+  node_["type"] = type_visitor.get();
   node_["access_flags"] = flags;
 }

@@ -126,48 +125,49 @@ void JsonVisitor::visit(const Method& method) {
     proto_visitor(*p);
   }

-  node_["name"]         = method.name();
-  node_["code_offset"]  = method.code_offset();
-  node_["index"]        = method.index();
-  node_["is_virtual"]   = method.is_virtual();
-  node_["prototype"]    = proto_visitor.get();
+  node_["name"] = method.name();
+  node_["code_offset"] = method.code_offset();
+  node_["index"] = method.index();
+  node_["is_virtual"] = method.is_virtual();
+  node_["prototype"] = proto_visitor.get();
   node_["access_flags"] = flags;
 }

 void JsonVisitor::visit(const Type& type) {

   node_["type"] = to_string(type.type());
-  switch(type.type()) {
+  switch (type.type()) {
     case Type::TYPES::CLASS:
-      {
-        node_["value"] = type.cls().fullname();
-        break;
-      }
+    {
+      node_["value"] = type.cls().fullname();
+      break;
+    }

     case Type::TYPES::PRIMITIVE:
-      {
-        node_["value"] = Type::pretty_name(type.primitive());
+    {
+      node_["value"] = Type::pretty_name(type.primitive());
+      break;
+    }
+
+    case Type::TYPES::ARRAY:
+    {
+      const Type& uderlying_t = type.underlying_array_type();
+      node_["dim"] = type.dim();
+
+      if (uderlying_t.type() == Type::TYPES::CLASS) {
+        node_["value"] = uderlying_t.cls().fullname();
         break;
       }

-    case Type::TYPES::ARRAY:
-      {
-        const Type& uderlying_t = type.underlying_array_type();
-        node_["dim"] = type.dim();
-
-        if (uderlying_t.type() == Type::TYPES::CLASS) {
-          node_["value"] = uderlying_t.cls().fullname();
-          break;
-        }
-
-        if (uderlying_t.type() == Type::TYPES::PRIMITIVE) {
-          node_["value"] = Type::pretty_name(type.primitive());
-          break;
-        }
+      if (uderlying_t.type() == Type::TYPES::PRIMITIVE) {
+        node_["value"] = Type::pretty_name(type.primitive());
         break;
       }
+      break;
+    }
     default:
-      {}
+    {
+    }
   }
 }

@@ -182,18 +182,16 @@ void JsonVisitor::visit(const Prototype& type) {
     JsonVisitor pvisitor;
     pvisitor(t);
     params.emplace_back(pvisitor.get());
-
   }

   node_["return_type"] = rtype_visitor.get();
-  node_["parameters"]  = params;
+  node_["parameters"] = params;
 }

 void JsonVisitor::visit(const MapItem& item) {
   node_["offset"] = item.offset();
-  node_["size"]   = item.size();
-  node_["type"]   = to_string(item.type());
-
+  node_["size"] = item.size();
+  node_["type"] = to_string(item.type());
 }

 void JsonVisitor::visit(const MapList& list) {
@@ -207,7 +205,4 @@ void JsonVisitor::visit(const MapList& list) {
 }


-
-} // namespace DEX
-} // namespace LIEF
-
+} // namespace LIEF::DEX
diff --git a/deps/LIEF/src/DEX/json_api.cpp b/deps/LIEF/src/DEX/json_api.cpp
index 5a57dda7330..4c20268bb66 100644
--- a/deps/LIEF/src/DEX/json_api.cpp
+++ b/deps/LIEF/src/DEX/json_api.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -18,12 +18,12 @@
 #include "LIEF/DEX/json.hpp"

 #ifdef LIEF_JSON_SUPPORT
-#include "DEX/json_internal.hpp"
+  #include "DEX/json_internal.hpp"
 #endif
 #include "LIEF/DEX.hpp"

-namespace LIEF {
-namespace DEX {
+
+namespace LIEF::DEX {

 std::string to_json(const Object& v) {
 #ifdef LIEF_JSON_SUPPORT
@@ -37,4 +37,3 @@ std::string to_json(const Object& v) {
 }

 }
-} // namespace LIEF
diff --git a/deps/LIEF/src/DEX/json_internal.hpp b/deps/LIEF/src/DEX/json_internal.hpp
index f7a84c4308d..4b9cee85a75 100644
--- a/deps/LIEF/src/DEX/json_internal.hpp
+++ b/deps/LIEF/src/DEX/json_internal.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -19,8 +19,8 @@
 #include "LIEF/visibility.h"
 #include "visitors/json.hpp"

-namespace LIEF {
-namespace DEX {
+
+namespace LIEF::DEX {

 json to_json_obj(const Object& v);

@@ -31,19 +31,19 @@ class JsonVisitor : public LIEF::JsonVisitor {
   using LIEF::JsonVisitor::JsonVisitor;

   public:
-  void visit(const File& file)         override;
-  void visit(const Header& header)     override;
-  void visit(const Class& cls)         override;
-  void visit(const Method& method)     override;
-  void visit(const Field& field)       override;
+  void visit(const File& file) override;
+  void visit(const Header& header) override;
+  void visit(const Class& cls) override;
+  void visit(const Method& method) override;
+  void visit(const Field& field) override;
   void visit(const CodeInfo& codeinfo) override;
-  void visit(const Type& type)         override;
-  void visit(const Prototype& type)    override;
-  void visit(const MapItem& item)      override;
-  void visit(const MapList& list)      override;
+  void visit(const Type& type) override;
+  void visit(const Prototype& type) override;
+  void visit(const MapItem& item) override;
+  void visit(const MapList& list) override;
 };

 }
-}

-#endif // LIEF_JSON_SUPPORT
+
+#endif
diff --git a/deps/LIEF/src/DEX/utils.cpp b/deps/LIEF/src/DEX/utils.cpp
index 52cdbd275de..0dbf885d419 100644
--- a/deps/LIEF/src/DEX/utils.cpp
+++ b/deps/LIEF/src/DEX/utils.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -21,8 +21,10 @@
 #include "LIEF/DEX/utils.hpp"
 #include "DEX/Structures.hpp"

-namespace LIEF {
-namespace DEX {
+#include "internal_utils.hpp"
+
+
+namespace LIEF::DEX {

 inline bool is_dex(BinaryStream& stream) {
   using magic_t = std::array<char, sizeof(details::magic)>;
@@ -34,7 +36,7 @@ inline bool is_dex(BinaryStream& stream) {
   return false;
 }

- dex_version_t version(BinaryStream& stream) {
+dex_version_t version(BinaryStream& stream) {
   using version_t = std::array<char, 4>;
   stream.setpos(0);
   if (!is_dex(stream)) {
@@ -43,16 +45,10 @@ inline bool is_dex(BinaryStream& stream) {
   stream.increment_pos(sizeof(details::magic));
   if (auto ver_res = stream.peek<version_t>()) {
     const auto version = *ver_res;
-    const bool are_digits = std::all_of(std::begin(version), std::end(version),
-        [] (char c) { return c == 0 || ::isdigit(c); });
-    if (!are_digits) {
-      return 0;
-    }
-    std::string version_str(std::begin(version), std::end(version));
-    return static_cast<dex_version_t>(std::stoul(version_str));
+    return static_cast<dex_version_t>(parse_android_version(version.data(),
+                                                            version.size()));
   }
   return 0;
-
 }

 bool is_dex(const std::string& file) {
@@ -85,4 +81,3 @@ dex_version_t version(const std::vector<uint8_t>& raw) {


 }
-}
diff --git a/deps/LIEF/src/DWARF/dwarf.cpp b/deps/LIEF/src/DWARF/dwarf.cpp
index 7333a973a0d..d5bb3e0b0a4 100644
--- a/deps/LIEF/src/DWARF/dwarf.cpp
+++ b/deps/LIEF/src/DWARF/dwarf.cpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -12,9 +12,12 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
+
+// NOLINTBEGIN
 #include "LIEF/DWARF/DebugInfo.hpp"
 #include "LIEF/DWARF/CompilationUnit.hpp"
 #include "LIEF/DWARF/Function.hpp"
+#include "LIEF/DWARF/LexicalBlock.hpp"
 #include "LIEF/DWARF/Variable.hpp"
 #include "LIEF/DWARF/Type.hpp"
 #include "LIEF/DWARF/Scope.hpp"
@@ -83,10 +86,14 @@ class TypeIt {};

 class Scope {};
 class Editor {};
+
+class LexicalBlock {};
+class LexicalBlockIt {};
 }

 namespace types::details {
 class Member {};
+class EnumEntry {};
 }

 namespace editor::details {
@@ -106,8 +113,7 @@ class StructMember {};
 // DWARF/Variable.hpp
 // ----------------------------------------------------------------------------
 Variable::Variable(std::unique_ptr<details::Variable>) :
-  impl_(nullptr)
-{}
+  impl_(nullptr) {}

 std::string Variable::name() const {
   return "";
@@ -133,6 +139,10 @@ bool Variable::is_constexpr() const {
   return true;
 }

+bool Variable::is_stack_based() const {
+  return true;
+}
+
 std::unique_ptr<Type> Variable::type() const {
   return nullptr;
 }
@@ -141,25 +151,35 @@ debug_location_t Variable::debug_location() const {
   return {};
 }

+std::string Variable::description() const {
+  return "";
+}
+
+std::string Variable::to_decl(const DeclOpt& /*opt*/) const {
+  return "";
+}
+
 Variable::~Variable() = default;

+Variable::Iterator::Iterator() :
+  impl_(nullptr) {}
+
 Variable::Iterator::Iterator(std::unique_ptr<details::VariableIt>) :
-  impl_(nullptr)
-{}
+  impl_(nullptr) {}

 Variable::Iterator::Iterator(const Iterator&) :
-  impl_(nullptr)
-{}
+  impl_(nullptr) {}

-Variable::Iterator::Iterator(Iterator&&) noexcept :
-  impl_(nullptr)
-{}
+Variable::Iterator& Variable::Iterator::operator=(const Iterator&) {
+  return *this;
+}
+
+Variable::Iterator::Iterator(Iterator&&) noexcept = default;
+Variable::Iterator& Variable::Iterator::operator=(Iterator&&) noexcept = default;

 Variable::Iterator::~Iterator() = default;

-bool operator==(const Variable::Iterator&,
-                const Variable::Iterator&)
-{
+bool operator==(const Variable::Iterator&, const Variable::Iterator&) {
   return true;
 }

@@ -171,7 +191,17 @@ Variable::Iterator& Variable::Iterator::operator--() {
   return *this;
 }

-std::unique_ptr<Variable> Variable::Iterator::operator*() const {
+void Variable::Iterator::load() const {}
+
+const Variable& Variable::Iterator::operator*() const {
+  return *cached_;
+}
+
+const Variable* Variable::Iterator::operator->() const {
+  return nullptr;
+}
+
+std::unique_ptr<Variable> Variable::Iterator::yield() {
   return nullptr;
 }

@@ -181,12 +211,11 @@ std::unique_ptr<Variable> Variable::Iterator::operator*() const {
 Parameter::~Parameter() = default;


-Parameter::Parameter(Parameter&& other) = default;
-Parameter& Parameter::operator=(Parameter&& other) = default;
+Parameter::Parameter(Parameter&& other) noexcept = default;
+Parameter& Parameter::operator=(Parameter&& other) noexcept = default;

-Parameter::Parameter(std::unique_ptr<details::Parameter>/*impl*/) :
-  impl_(nullptr)
-{}
+Parameter::Parameter(std::unique_ptr<details::Parameter> /*impl*/) :
+  impl_(nullptr) {}

 Parameter::KIND Parameter::kind() const {
   return KIND::UNKNOWN;
@@ -200,19 +229,26 @@ std::unique_ptr<Type> Parameter::type() const {
   return nullptr;
 }

-std::unique_ptr<Parameter> Parameter::create(std::unique_ptr<details::Parameter>/*impl*/) {
+std::unique_ptr<Parameter::Location> Parameter::location() const {
+  return nullptr;
+}
+
+std::unique_ptr<Parameter>
+    Parameter::create(std::unique_ptr<details::Parameter> /*impl*/) {
   return nullptr;
 }

 // ----------------------------------------------------------------------------
 // DWARF/Function.hpp
 // ----------------------------------------------------------------------------
+Function::Function(std::unique_ptr<details::Function>) :
+  impl_(nullptr) {}
+
 Function::~Function() = default;

 Function::instructions_it Function::instructions() const {
   return make_range<assembly::Instruction::Iterator>(
-      assembly::Instruction::Iterator(),
-      assembly::Instruction::Iterator()
+      assembly::Instruction::Iterator(), assembly::Instruction::Iterator()
   );
 }

@@ -264,28 +300,41 @@ Function::parameters_t Function::parameters() const {
   return {};
 }

+Function::lexical_blocks_it Function::lexical_blocks() const {
+  return make_empty_iterator<LexicalBlock>();
+}
+
+std::string Function::description() const {
+  return "";
+}
+
+std::string Function::to_decl(const DeclOpt& /*opt*/) const {
+  return "";
+}

 Function::thrown_types_t Function::thrown_types() const {
   return {};
 }

+Function::Iterator::Iterator() :
+  impl_(nullptr) {}
+
 Function::Iterator::Iterator(std::unique_ptr<details::FunctionIt>) :
-  impl_(nullptr)
-{}
+  impl_(nullptr) {}

 Function::Iterator::Iterator(const Iterator&) :
-  impl_(nullptr)
-{}
+  impl_(nullptr) {}
+
+Function::Iterator& Function::Iterator::operator=(const Iterator&) {
+  return *this;
+}

-Function::Iterator::Iterator(Iterator&&) noexcept :
-  impl_(nullptr)
-{}
+Function::Iterator::Iterator(Iterator&&) noexcept = default;
+Function::Iterator& Function::Iterator::operator=(Iterator&&) noexcept = default;

 Function::Iterator::~Iterator() = default;

-bool operator==(const Function::Iterator&,
-                const Function::Iterator&)
-{
+bool operator==(const Function::Iterator&, const Function::Iterator&) {
   return true;
 }

@@ -297,7 +346,17 @@ Function::Iterator& Function::Iterator::operator--() {
   return *this;
 }

-std::unique_ptr<Function> Function::Iterator::operator*() const {
+void Function::Iterator::load() const {}
+
+const Function& Function::Iterator::operator*() const {
+  return *cached_;
+}
+
+const Function* Function::Iterator::operator->() const {
+  return nullptr;
+}
+
+std::unique_ptr<Function> Function::Iterator::yield() {
   return nullptr;
 }

@@ -317,19 +376,21 @@ std::unique_ptr<Function> DebugInfo::find_function(uint64_t) const {
   return nullptr;
 }

-std::unique_ptr<Variable> DebugInfo::find_variable(uint64_t/*addr*/) const {
+std::unique_ptr<Variable> DebugInfo::find_variable(uint64_t /*addr*/) const {
   return nullptr;
 }

-std::unique_ptr<Variable> DebugInfo::find_variable(const std::string&/*name*/) const {
+std::unique_ptr<Variable>
+    DebugInfo::find_variable(const std::string& /*name*/) const {
   return nullptr;
 }

-std::unique_ptr<Type> DebugInfo::find_type(const std::string&/*name*/) const {
+std::unique_ptr<Type> DebugInfo::find_type(const std::string& /*name*/) const {
   return nullptr;
 }

-optional<uint64_t> DebugInfo::find_function_address(const std::string& /*name*/) const {
+optional<uint64_t>
+    DebugInfo::find_function_address(const std::string& /*name*/) const {
   return nullopt();
 }

@@ -341,8 +402,7 @@ DebugInfo::compilation_units_it DebugInfo::compilation_units() const {
 // DWARF/CompilationUnit.hpp
 // ----------------------------------------------------------------------------
 CompilationUnit::CompilationUnit(std::unique_ptr<details::CompilationUnit>) :
-  impl_(nullptr)
-{}
+  impl_(nullptr) {}

 CompilationUnit::~CompilationUnit() = default;

@@ -376,19 +436,21 @@ std::vector<range_t> CompilationUnit::ranges() const {
   return {};
 }

-std::unique_ptr<Function> CompilationUnit::find_function(const std::string&/*name*/) const {
+std::unique_ptr<Function>
+    CompilationUnit::find_function(const std::string& /*name*/) const {
   return nullptr;
 }

-std::unique_ptr<Function> CompilationUnit::find_function(uint64_t/*addr*/) const {
+std::unique_ptr<Function> CompilationUnit::find_function(uint64_t /*addr*/) const {
   return nullptr;
 }

-std::unique_ptr<Variable> CompilationUnit::find_variable(uint64_t/*addr*/) const {
+std::unique_ptr<Variable> CompilationUnit::find_variable(uint64_t /*addr*/) const {
   return nullptr;
 }

-std::unique_ptr<Variable> CompilationUnit::find_variable(const std::string&/*name*/) const {
+std::unique_ptr<Variable>
+    CompilationUnit::find_variable(const std::string& /*name*/) const {
   return nullptr;
 }

@@ -412,23 +474,31 @@ CompilationUnit::vars_it CompilationUnit::variables() const {
   return make_empty_iterator<Variable>();
 }

+std::string CompilationUnit::to_decl(const DeclOpt& /*opt*/) const {
+  return "";
+}
+
+CompilationUnit::Iterator::Iterator() :
+  impl_(nullptr) {}
+
 CompilationUnit::Iterator::Iterator(std::unique_ptr<details::CompilationUnitIt>) :
-  impl_(nullptr)
-{}
+  impl_(nullptr) {}

 CompilationUnit::Iterator::Iterator(const Iterator&) :
-  impl_(nullptr)
-{}
+  impl_(nullptr) {}
+
+CompilationUnit::Iterator& CompilationUnit::Iterator::operator=(const Iterator&) {
+  return *this;
+}

-CompilationUnit::Iterator::Iterator(Iterator&&) noexcept :
-  impl_(nullptr)
-{}
+CompilationUnit::Iterator::Iterator(Iterator&&) noexcept = default;
+CompilationUnit::Iterator&
+    CompilationUnit::Iterator::operator=(Iterator&&) noexcept = default;

 CompilationUnit::Iterator::~Iterator() = default;

 bool operator==(const CompilationUnit::Iterator&,
-                const CompilationUnit::Iterator&)
-{
+                const CompilationUnit::Iterator&) {
   return true;
 }

@@ -440,7 +510,17 @@ CompilationUnit::Iterator& CompilationUnit::Iterator::operator--() {
   return *this;
 }

-std::unique_ptr<CompilationUnit> CompilationUnit::Iterator::operator*() const {
+void CompilationUnit::Iterator::load() const {}
+
+const CompilationUnit& CompilationUnit::Iterator::operator*() const {
+  return *cached_;
+}
+
+const CompilationUnit* CompilationUnit::Iterator::operator->() const {
+  return cached_.get();
+}
+
+std::unique_ptr<CompilationUnit> CompilationUnit::Iterator::yield() {
   return nullptr;
 }

@@ -448,7 +528,7 @@ std::unique_ptr<CompilationUnit> CompilationUnit::Iterator::operator*() const {
 // DWARF/Type.hpp
 // ----------------------------------------------------------------------------

-std::unique_ptr<Type> Type::create(std::unique_ptr<details::Type>/* impl*/) {
+std::unique_ptr<Type> Type::create(std::unique_ptr<details::Type> /* impl*/) {
   return nullptr;
 }

@@ -472,33 +552,41 @@ debug_location_t Type::location() const {
   return {};
 }

+std::string Type::to_decl(const DeclOpt& /*opt*/) const {
+  return "";
+}
+
+Type::Type(Type&&) noexcept = default;
+
+Type& Type::operator=(Type&&) noexcept = default;
+
 Type::Type(std::unique_ptr<details::Type> impl) :
-  impl_(std::move(impl))
-{}
+  impl_(std::move(impl)) {}

 Type::Type(details::Type& impl) :
-  impl_(impl)
-{}
+  impl_(impl) {}

 Type::~Type() = default;

+Type::Iterator::Iterator() :
+  impl_(nullptr) {}
+
 Type::Iterator::Iterator(std::unique_ptr<details::TypeIt>) :
-  impl_(nullptr)
-{}
+  impl_(nullptr) {}

 Type::Iterator::Iterator(const Iterator&) :
-  impl_(nullptr)
-{}
+  impl_(nullptr) {}
+
+Type::Iterator& Type::Iterator::operator=(const Iterator&) {
+  return *this;
+}

-Type::Iterator::Iterator(Iterator&&) noexcept :
-  impl_(nullptr)
-{}
+Type::Iterator::Iterator(Iterator&&) noexcept = default;
+Type::Iterator& Type::Iterator::operator=(Iterator&&) noexcept = default;

 Type::Iterator::~Iterator() = default;

-bool operator==(const Type::Iterator&,
-                const Type::Iterator&)
-{
+bool operator==(const Type::Iterator&, const Type::Iterator&) {
   return true;
 }

@@ -510,7 +598,17 @@ Type::Iterator& Type::Iterator::operator--() {
   return *this;
 }

-std::unique_ptr<Type> Type::Iterator::operator*() const {
+void Type::Iterator::load() const {}
+
+const Type& Type::Iterator::operator*() const {
+  return *cached_;
+}
+
+const Type* Type::Iterator::operator->() const {
+  return cached_.get();
+}
+
+std::unique_ptr<Type> Type::Iterator::yield() {
   return nullptr;
 }
 // ----------------------------------------------------------------------------
@@ -518,8 +616,7 @@ std::unique_ptr<Type> Type::Iterator::operator*() const {
 // ----------------------------------------------------------------------------
 Scope::~Scope() = default;
 Scope::Scope(std::unique_ptr<details::Scope> impl) :
-  impl_(std::move(impl))
-{}
+  impl_(std::move(impl)) {}

 std::string Scope::name() const {
   return "";
@@ -533,10 +630,96 @@ Scope::TYPE Scope::type() const {
   return TYPE::UNKNOWN;
 }

-std::string Scope::chained(const std::string&/* sep */) const {
+std::string Scope::chained(const std::string& /* sep */) const {
   return "";
 }

+
+// ----------------------------------------------------------------------------
+// DWARF/LexicalBlock.hpp
+// ----------------------------------------------------------------------------
+LexicalBlock::LexicalBlock(std::unique_ptr<details::LexicalBlock>) :
+  impl_(nullptr) {}
+
+LexicalBlock::~LexicalBlock() = default;
+
+std::string LexicalBlock::name() const {
+  return "";
+}
+
+std::string LexicalBlock::description() const {
+  return "";
+}
+
+LexicalBlock::sub_blocks_it LexicalBlock::sub_blocks() const {
+  return make_empty_iterator<LexicalBlock>();
+}
+
+optional<uint64_t> LexicalBlock::addr() const {
+  return nullopt();
+}
+
+uint64_t LexicalBlock::size() const {
+  return 0;
+}
+
+optional<uint64_t> LexicalBlock::low_pc() const {
+  return nullopt();
+}
+
+optional<uint64_t> LexicalBlock::high_pc() const {
+  return nullopt();
+}
+
+std::vector<range_t> LexicalBlock::ranges() const {
+  return {};
+}
+
+LexicalBlock::Iterator::Iterator() :
+  impl_(nullptr) {}
+
+LexicalBlock::Iterator::Iterator(std::unique_ptr<details::LexicalBlockIt>) :
+  impl_(nullptr) {}
+
+LexicalBlock::Iterator::Iterator(const Iterator&) :
+  impl_(nullptr) {}
+
+LexicalBlock::Iterator& LexicalBlock::Iterator::operator=(const Iterator&) {
+  return *this;
+}
+
+LexicalBlock::Iterator::Iterator(Iterator&&) noexcept = default;
+LexicalBlock::Iterator&
+    LexicalBlock::Iterator::operator=(Iterator&&) noexcept = default;
+
+LexicalBlock::Iterator::~Iterator() = default;
+
+bool operator==(const LexicalBlock::Iterator&, const LexicalBlock::Iterator&) {
+  return true;
+}
+
+LexicalBlock::Iterator& LexicalBlock::Iterator::operator++() {
+  return *this;
+}
+
+LexicalBlock::Iterator& LexicalBlock::Iterator::operator--() {
+  return *this;
+}
+
+void LexicalBlock::Iterator::load() const {}
+
+const LexicalBlock& LexicalBlock::Iterator::operator*() const {
+  return *cached_;
+}
+
+const LexicalBlock* LexicalBlock::Iterator::operator->() const {
+  return nullptr;
+}
+
+std::unique_ptr<LexicalBlock> LexicalBlock::Iterator::yield() {
+  return nullptr;
+}
+
 namespace types {
 // ----------------------------------------------------------------------------
 // DWARF/types/ClassLike.hpp
@@ -553,11 +736,11 @@ Packed::~Packed() = default;

 ClassLike::Member::~Member() = default;
 ClassLike::Member::Member(std::unique_ptr<details::Member> impl) :
-  impl_(std::move(impl))
-{}
+  impl_(std::move(impl)) {}

 ClassLike::Member::Member(Member&& other) noexcept = default;
-ClassLike::Member& ClassLike::Member::operator=(ClassLike::Member&& other) noexcept = default;
+ClassLike::Member&
+    ClassLike::Member::operator=(ClassLike::Member&& other) noexcept = default;

 result<uint64_t> ClassLike::Member::offset() const {
   return make_error_code(lief_errors::not_implemented);
@@ -567,6 +750,10 @@ result<uint64_t> ClassLike::Member::bit_offset() const {
   return make_error_code(lief_errors::not_implemented);
 }

+result<uint64_t> ClassLike::Member::bit_size() const {
+  return make_error_code(lief_errors::not_implemented);
+}
+
 bool ClassLike::Member::is_external() const {
   return false;
 }
@@ -575,7 +762,7 @@ bool ClassLike::Member::is_declaration() const {
   return false;
 }

-std::unique_ptr<Type>ClassLike::Member::type() const {
+std::unique_ptr<Type> ClassLike::Member::type() const {
   return nullptr;
 }

@@ -591,7 +778,8 @@ ClassLike::functions_it ClassLike::functions() const {
   return make_empty_iterator<Function>();
 }

-std::unique_ptr<ClassLike::Member> ClassLike::find_member(uint64_t/*offset*/) const {
+std::unique_ptr<ClassLike::Member>
+    ClassLike::find_member(uint64_t /*offset*/) const {
   return nullptr;
 }

@@ -657,27 +845,55 @@ const Type* Atomic::underlying_type() const {
 // ----------------------------------------------------------------------------
 // DWARF/types/Coarray.hpp
 // ----------------------------------------------------------------------------
-Coarray::~Coarray()= default;
+Coarray::~Coarray() = default;

 // ----------------------------------------------------------------------------
 // DWARF/types/Dynamic.hpp
 // ----------------------------------------------------------------------------
-Dynamic::~Dynamic()= default;
+Dynamic::~Dynamic() = default;

 // ----------------------------------------------------------------------------
 // DWARF/types/Enum.hpp
 // ----------------------------------------------------------------------------
-Enum::~Enum()= default;
+Enum::Entry::Entry(Entry&& other) noexcept = default;
+Enum::Entry& Enum::Entry::operator=(Entry&& other) noexcept = default;
+
+Enum::Entry::~Entry() = default;
+
+Enum::Entry::Entry(std::unique_ptr<details::EnumEntry> impl) :
+  impl_(std::move(impl)) {}
+
+std::string Enum::Entry::name() const {
+  return "";
+}
+
+optional<int64_t> Enum::Entry::value() const {
+  return nullopt();
+}
+
+std::vector<Enum::Entry> Enum::entries() const {
+  return {};
+}
+
+optional<Enum::Entry> Enum::find_entry(int64_t /*value*/) const {
+  return nullopt();
+}
+
+const Type* Enum::underlying_type() const {
+  return nullptr;
+}
+
+Enum::~Enum() = default;

 // ----------------------------------------------------------------------------
 // DWARF/types/File.hpp
 // ----------------------------------------------------------------------------
-File::~File()= default;
+File::~File() = default;

 // ----------------------------------------------------------------------------
 // DWARF/types/Immutable.hpp
 // ----------------------------------------------------------------------------
-Immutable::~Immutable()= default;
+Immutable::~Immutable() = default;

 const Type* Immutable::underlying_type() const {
   return nullptr;
@@ -686,12 +902,12 @@ const Type* Immutable::underlying_type() const {
 // ----------------------------------------------------------------------------
 // DWARF/types/Interface.hpp
 // ----------------------------------------------------------------------------
-Interface::~Interface()= default;
+Interface::~Interface() = default;

 // ----------------------------------------------------------------------------
 // DWARF/types/PointerToMember.hpp
 // ----------------------------------------------------------------------------
-PointerToMember::~PointerToMember()= default;
+PointerToMember::~PointerToMember() = default;

 const Type* PointerToMember::underlying_type() const {
   return nullptr;
@@ -704,7 +920,7 @@ std::unique_ptr<Type> PointerToMember::containing_type() const {
 // ----------------------------------------------------------------------------
 // DWARF/types/RValueReference.hpp
 // ----------------------------------------------------------------------------
-RValueReference::~RValueReference()= default;
+RValueReference::~RValueReference() = default;

 const Type* RValueReference::underlying_type() const {
   return nullptr;
@@ -713,7 +929,7 @@ const Type* RValueReference::underlying_type() const {
 // ----------------------------------------------------------------------------
 // DWARF/types/Reference.hpp
 // ----------------------------------------------------------------------------
-Reference::~Reference()= default;
+Reference::~Reference() = default;

 const Type* Reference::underlying_type() const {
   return nullptr;
@@ -722,7 +938,7 @@ const Type* Reference::underlying_type() const {
 // ----------------------------------------------------------------------------
 // DWARF/types/Restrict.hpp
 // ----------------------------------------------------------------------------
-Restrict::~Restrict()= default;
+Restrict::~Restrict() = default;

 const Type* Restrict::underlying_type() const {
   return nullptr;
@@ -731,7 +947,7 @@ const Type* Restrict::underlying_type() const {
 // ----------------------------------------------------------------------------
 // DWARF/types/SetTy.hpp
 // ----------------------------------------------------------------------------
-SetTy::~SetTy()= default;
+SetTy::~SetTy() = default;

 const Type* SetTy::underlying_type() const {
   return nullptr;
@@ -740,7 +956,7 @@ const Type* SetTy::underlying_type() const {
 // ----------------------------------------------------------------------------
 // DWARF/types/Shared.hpp
 // ----------------------------------------------------------------------------
-Shared::~Shared()= default;
+Shared::~Shared() = default;

 const Type* Shared::underlying_type() const {
   return nullptr;
@@ -749,12 +965,16 @@ const Type* Shared::underlying_type() const {
 // ----------------------------------------------------------------------------
 // DWARF/types/StringTy.hpp
 // ----------------------------------------------------------------------------
-StringTy::~StringTy()= default;
+StringTy::~StringTy() = default;

 // ----------------------------------------------------------------------------
 // DWARF/types/Subroutine.hpp
 // ----------------------------------------------------------------------------
-Subroutine::~Subroutine()= default;
+Subroutine::~Subroutine() = default;
+
+std::unique_ptr<Type> Subroutine::return_type() const {
+  return {};
+}

 Subroutine::parameters_t Subroutine::parameters() const {
   return {};
@@ -763,7 +983,7 @@ Subroutine::parameters_t Subroutine::parameters() const {
 // ----------------------------------------------------------------------------
 // DWARF/types/TemplateAlias.hpp
 // ----------------------------------------------------------------------------
-TemplateAlias::~TemplateAlias()= default;
+TemplateAlias::~TemplateAlias() = default;

 const Type* TemplateAlias::underlying_type() const {
   return nullptr;
@@ -776,7 +996,7 @@ TemplateAlias::parameters_t TemplateAlias::parameters() const {
 // ----------------------------------------------------------------------------
 // DWARF/types/Thrown.hpp
 // ----------------------------------------------------------------------------
-Thrown::~Thrown()= default;
+Thrown::~Thrown() = default;

 const Type* Thrown::underlying_type() const {
   return nullptr;
@@ -785,7 +1005,7 @@ const Type* Thrown::underlying_type() const {
 // ----------------------------------------------------------------------------
 // DWARF/types/Volatile.hpp
 // ----------------------------------------------------------------------------
-Volatile::~Volatile()= default;
+Volatile::~Volatile() = default;

 const Type* Volatile::underlying_type() const {
   return nullptr;
@@ -798,16 +1018,19 @@ const Type* Volatile::underlying_type() const {
 // DWARF/Editor.hpp
 // ----------------------------------------------------------------------------
 Editor::Editor(std::unique_ptr<details::Editor> impl) :
-  impl_(std::move(impl))
-{}
+  impl_(std::move(impl)) {}

-Editor::~Editor()= default;
+Editor::~Editor() = default;

 std::unique_ptr<Editor> Editor::from_binary(LIEF::Binary& /*bin*/) {
   logging::needs_lief_extended();
   return nullptr;
 }

+std::unique_ptr<Editor> Editor::create(FORMAT /*fmt*/, ARCH /*arch*/) {
+  logging::needs_lief_extended();
+  return nullptr;
+}

 std::unique_ptr<editor::CompilationUnit> Editor::create_compilation_unit() {
   return nullptr;
@@ -822,23 +1045,25 @@ namespace editor {
 // DWARF/editor/CompilationUnit.hpp
 // ----------------------------------------------------------------------------
 CompilationUnit::CompilationUnit(std::unique_ptr<details::CompilationUnit> impl) :
-  impl_(std::move(impl))
-{}
+  impl_(std::move(impl)) {}


 CompilationUnit& CompilationUnit::set_producer(const std::string&) {
   return *this;
 }

-std::unique_ptr<Function> CompilationUnit::create_function(const std::string&/*name*/) {
+std::unique_ptr<Function>
+    CompilationUnit::create_function(const std::string& /*name*/) {
   return nullptr;
 }

-std::unique_ptr<Variable> CompilationUnit::create_variable(const std::string&/*name*/) {
+std::unique_ptr<Variable>
+    CompilationUnit::create_variable(const std::string& /*name*/) {
   return nullptr;
 }

-std::unique_ptr<Type> CompilationUnit::create_generic_type(const std::string& /*name*/) {
+std::unique_ptr<Type>
+    CompilationUnit::create_generic_type(const std::string& /*name*/) {
   return nullptr;
 }

@@ -846,27 +1071,24 @@ std::unique_ptr<EnumType> CompilationUnit::create_enum(const std::string&) {
   return nullptr;
 }

-std::unique_ptr<TypeDef>
-  CompilationUnit::create_typedef(const std::string&, const Type&)
-{
+std::unique_ptr<TypeDef> CompilationUnit::create_typedef(const std::string&,
+                                                         const Type&) {
   return nullptr;
 }

-std::unique_ptr<StructType> CompilationUnit::create_structure(
-  const std::string&, StructType::TYPE)
-{
+std::unique_ptr<StructType> CompilationUnit::create_structure(const std::string&,
+                                                              StructType::TYPE) {
   return nullptr;
 }

-std::unique_ptr<BaseType>
-  CompilationUnit::create_base_type(const std::string&, size_t, BaseType::ENCODING)
-{
+std::unique_ptr<BaseType> CompilationUnit::create_base_type(const std::string&,
+                                                            size_t,
+                                                            BaseType::ENCODING) {
   return nullptr;
 }

 std::unique_ptr<FunctionType>
-  CompilationUnit::create_function_type(const std::string&)
-{
+    CompilationUnit::create_function_type(const std::string&) {
   return nullptr;
 }

@@ -874,9 +1096,8 @@ std::unique_ptr<Type> CompilationUnit::create_void_type() {
   return nullptr;
 }

-std::unique_ptr<ArrayType>
-  CompilationUnit::create_array(const std::string&, const Type&, size_t)
-{
+std::unique_ptr<ArrayType> CompilationUnit::create_array(const std::string&,
+                                                         const Type&, size_t) {
   return nullptr;
 }

@@ -886,8 +1107,7 @@ CompilationUnit::~CompilationUnit() = default;
 // DWARF/editor/Variable.hpp
 // ----------------------------------------------------------------------------
 Variable::Variable(std::unique_ptr<details::Variable> impl) :
-  impl_(std::move(impl))
-{}
+  impl_(std::move(impl)) {}

 Variable& Variable::set_external() {
   return *this;
@@ -905,14 +1125,17 @@ Variable& Variable::set_type(const Type&) {
   return *this;
 }

+Variable& Variable::add_description(const std::string& /*description*/) {
+  return *this;
+}
+
 Variable::~Variable() = default;

 // ----------------------------------------------------------------------------
 // DWARF/editor/Function.hpp
 // ----------------------------------------------------------------------------
 Function::Function(std::unique_ptr<details::Function> impl) :
-  impl_(std::move(impl))
-{}
+  impl_(std::move(impl)) {}

 Function& Function::set_address(uint64_t /*addr*/) {
   return *this;
@@ -930,14 +1153,16 @@ Function& Function::set_external() {
   return *this;
 }

+Function& Function::add_description(const std::string& /*description*/) {
+  return *this;
+}

 Function& Function::set_return_type(const Type&) {
   return *this;
 }

-std::unique_ptr<Function::Parameter>
-  Function::add_parameter(const std::string&, const Type&)
-{
+std::unique_ptr<Function::Parameter> Function::add_parameter(const std::string&,
+                                                             const Type&) {
   return nullptr;
 }

@@ -945,30 +1170,60 @@ std::unique_ptr<Variable> Function::create_stack_variable(const std::string&) {
   return nullptr;
 }

-std::unique_ptr<Function::LexicalBlock> Function::add_lexical_block(uint64_t, uint64_t) {
+std::unique_ptr<Function::LexicalBlock> Function::add_lexical_block(uint64_t,
+                                                                    uint64_t) {
   return nullptr;
 }

-std::unique_ptr<Function::Label> Function::add_label(uint64_t, const std::string&) {
+std::unique_ptr<Function::Label> Function::add_label(uint64_t,
+                                                     const std::string&) {
   return nullptr;
 }

 Function::Parameter::Parameter(std::unique_ptr<details::FunctionParameter> impl) :
-  impl_(std::move(impl))
-{}
+  impl_(std::move(impl)) {}
+
+Function::Parameter&
+    Function::Parameter::assign_register(const std::string& /*name*/) {
+  return *this;
+}
+
+Function::Parameter& Function::Parameter::assign_register(uint64_t /*reg*/) {
+  return *this;
+}

 Function::Parameter::~Parameter() = default;


-Function::LexicalBlock::LexicalBlock(std::unique_ptr<details::FunctionLexicalBlock> impl) :
-  impl_(std::move(impl))
-{}
+Function::LexicalBlock::LexicalBlock(
+    std::unique_ptr<details::FunctionLexicalBlock> impl
+) :
+  impl_(std::move(impl)) {}

 Function::LexicalBlock::~LexicalBlock() = default;

+std::unique_ptr<Function::LexicalBlock>
+    Function::LexicalBlock::add_block(uint64_t /*start*/, uint64_t /*end*/) {
+  return nullptr;
+}
+
+std::unique_ptr<Function::LexicalBlock>
+    Function::LexicalBlock::add_block(const std::vector<range_t>& /*ranges*/) {
+  return nullptr;
+}
+
+Function::LexicalBlock&
+    Function::LexicalBlock::add_description(const std::string& /*name*/) {
+  return *this;
+}
+
+Function::LexicalBlock&
+    Function::LexicalBlock::add_name(const std::string& /*name*/) {
+  return *this;
+}
+
 Function::Label::Label(std::unique_ptr<details::FunctionLabel> impl) :
-  impl_(std::move(impl))
-{}
+  impl_(std::move(impl)) {}

 Function::Label::~Label() = default;

@@ -979,8 +1234,7 @@ Function::~Function() = default;
 // ----------------------------------------------------------------------------

 Type::Type(std::unique_ptr<details::Type> impl) :
-  impl_(std::move(impl))
-{}
+  impl_(std::move(impl)) {}

 std::unique_ptr<Type> Type::create(std::unique_ptr<details::Type> /*impl*/) {
   return nullptr;
@@ -996,51 +1250,53 @@ Type::~Type() = default;
 // ----------------------------------------------------------------------------
 // DWARF/editor/PointerType.hpp
 // ----------------------------------------------------------------------------
-bool PointerType::classof(const Type */*type*/) {
+bool PointerType::classof(const Type* /*type*/) {
   return false;
 }

 // ----------------------------------------------------------------------------
 // DWARF/editor/EnumType.hpp
 // ----------------------------------------------------------------------------
-bool EnumType::classof(const Type */*type*/) {
+bool EnumType::classof(const Type* /*type*/) {
   return false;
 }

+EnumType& EnumType::set_underlying_type(const Type& /*type*/) {
+  return *this;
+}
+
 EnumType& EnumType::set_size(uint64_t /*size*/) {
   return *this;
 }

-std::unique_ptr<EnumType::Value>
-  EnumType::add_value(const std::string& /*name*/, int64_t /*value*/)
-{
+std::unique_ptr<EnumType::Value> EnumType::add_value(const std::string& /*name*/,
+                                                     int64_t /*value*/) {
   return nullptr;
 }

 EnumType::Value::Value(std::unique_ptr<details::EnumValue> impl) :
-  impl_(std::move(impl))
-{}
+  impl_(std::move(impl)) {}

 EnumType::Value::~Value() = default;

 // ----------------------------------------------------------------------------
 // DWARF/editor/BaseType.hpp
 // ----------------------------------------------------------------------------
-bool BaseType::classof(const Type */*type*/) {
+bool BaseType::classof(const Type* /*type*/) {
   return false;
 }

 // ----------------------------------------------------------------------------
 // DWARF/editor/ArrayType.hpp
 // ----------------------------------------------------------------------------
-bool ArrayType::classof(const Type */*type*/) {
+bool ArrayType::classof(const Type* /*type*/) {
   return false;
 }

 // ----------------------------------------------------------------------------
 // DWARF/editor/FunctionType.hpp
 // ----------------------------------------------------------------------------
-bool FunctionType::classof(const Type */*type*/) {
+bool FunctionType::classof(const Type* /*type*/) {
   return false;
 }

@@ -1049,28 +1305,28 @@ FunctionType& FunctionType::set_return_type(const Type& /*type*/) {
 }

 std::unique_ptr<FunctionType::Parameter>
-  FunctionType::add_parameter(const Type& /*type*/)
-{
+    FunctionType::add_parameter(const Type& /*type*/) {
   return nullptr;
 }

-FunctionType::Parameter::Parameter(std::unique_ptr<details::FunctionTyParameter> impl) :
-  impl_(std::move(impl))
-{}
+FunctionType::Parameter::Parameter(
+    std::unique_ptr<details::FunctionTyParameter> impl
+) :
+  impl_(std::move(impl)) {}

 FunctionType::Parameter::~Parameter() = default;

 // ----------------------------------------------------------------------------
 // DWARF/editor/TypeDef.hpp
 // ----------------------------------------------------------------------------
-bool TypeDef::classof(const Type */*type*/) {
+bool TypeDef::classof(const Type* /*type*/) {
   return false;
 }

 // ----------------------------------------------------------------------------
 // DWARF/editor/StructType.hpp
 // ----------------------------------------------------------------------------
-bool StructType::classof(const Type */*type*/) {
+bool StructType::classof(const Type* /*type*/) {
   return false;
 }

@@ -1078,19 +1334,24 @@ StructType& StructType::set_size(uint64_t /*size*/) {
   return *this;
 }

-/// Add a member to the current struct-like
 std::unique_ptr<StructType::Member>
-  StructType::add_member(const std::string& /*name*/, const Type& /*type*/,
-                         int64_t /*offset*/)
-{
+    StructType::add_member(const std::string& /*name*/, const Type& /*type*/,
+                           int64_t /*offset*/) {
+  return nullptr;
+}
+
+std::unique_ptr<StructType::Member>
+    StructType::add_bitfield(const std::string& /*name*/, const Type& /*type*/,
+                             uint64_t /*bitsize*/, int64_t /*bitoffset*/) {
   return nullptr;
 }

 StructType::Member::Member(std::unique_ptr<details::StructMember> impl) :
-  impl_(std::move(impl))
-{}
+  impl_(std::move(impl)) {}

 StructType::Member::~Member() = default;

 }
+
+// NOLINTEND
 }
diff --git a/deps/LIEF/src/DebugDeclOpt.cpp b/deps/LIEF/src/DebugDeclOpt.cpp
new file mode 100644
index 00000000000..35cc0a9ce6b
--- /dev/null
+++ b/deps/LIEF/src/DebugDeclOpt.cpp
@@ -0,0 +1,97 @@
+/* Copyright 2022 - 2026 R. Thomas
+ *
+ * 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.
+ */
+#include "LIEF/DebugDeclOpt.hpp"
+
+namespace LIEF {
+namespace details {
+class DeclOpt {};
+}
+
+DeclOpt::DeclOpt() = default;
+DeclOpt::DeclOpt(const DeclOpt&) {}
+
+// NOLINTNEXTLINE
+DeclOpt& DeclOpt::operator=(const DeclOpt&) {
+  return *this;
+}
+DeclOpt::DeclOpt(DeclOpt&&) noexcept = default;
+DeclOpt& DeclOpt::operator=(DeclOpt&&) noexcept = default;
+DeclOpt::~DeclOpt() = default;
+
+uint32_t DeclOpt::indentation() const {
+  return 0;
+}
+DeclOpt& DeclOpt::indentation(uint32_t) {
+  return *this;
+}
+
+bool DeclOpt::is_cpp() const {
+  return false;
+}
+DeclOpt& DeclOpt::is_cpp(bool) {
+  return *this;
+}
+
+bool DeclOpt::show_extended_annotations() const {
+  return false;
+}
+DeclOpt& DeclOpt::show_extended_annotations(bool) {
+  return *this;
+}
+
+bool DeclOpt::include_types() const {
+  return false;
+}
+DeclOpt& DeclOpt::include_types(bool) {
+  return *this;
+}
+
+bool DeclOpt::include_locals() const {
+  return false;
+}
+DeclOpt& DeclOpt::include_locals(bool) {
+  return *this;
+}
+
+bool DeclOpt::desugar() const {
+  return false;
+}
+DeclOpt& DeclOpt::desugar(bool) {
+  return *this;
+}
+
+bool DeclOpt::show_field_offsets() const {
+  return false;
+}
+DeclOpt& DeclOpt::show_field_offsets(bool) {
+  return *this;
+}
+
+const DeclOpt::type_aliases_t& DeclOpt::type_aliases() const {
+  static const type_aliases_t empty;
+  return empty;
+}
+
+// NOLINTNEXTLINE
+DeclOpt& DeclOpt::type_aliases(type_aliases_t) {
+  return *this;
+}
+
+// NOLINTNEXTLINE
+DeclOpt& DeclOpt::add_type_alias(std::string, std::string) {
+  return *this;
+}
+
+}
diff --git a/deps/LIEF/src/ELF/Binary.cpp b/deps/LIEF/src/ELF/Binary.cpp
index 7196e3ccff0..5ce58838d2c 100644
--- a/deps/LIEF/src/ELF/Binary.cpp
+++ b/deps/LIEF/src/ELF/Binary.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -22,7 +22,6 @@
 #include "LIEF/DWARF/enums.hpp"

 #include "logging.hpp"
-#include "paging.hpp"

 #include "LIEF/utils.hpp"

@@ -35,9 +34,6 @@
 #include "LIEF/ELF/DynamicEntryLibrary.hpp"
 #include "LIEF/ELF/DynamicEntryArray.hpp"
 #include "LIEF/ELF/DynamicEntryFlags.hpp"
-#include "LIEF/ELF/DynamicEntryRpath.hpp"
-#include "LIEF/ELF/DynamicEntryRunPath.hpp"
-#include "LIEF/ELF/DynamicSharedObject.hpp"
 #include "LIEF/ELF/Note.hpp"
 #include "LIEF/ELF/Builder.hpp"
 #include "LIEF/ELF/Section.hpp"
@@ -59,16 +55,17 @@
 #include "Object.tcc"
 #include "internal_utils.hpp"

-namespace LIEF {
-namespace ELF {
+
+namespace LIEF::ELF {


 inline size_t get_relocation_sizeof(const Binary& bin, const Relocation& R) {
   const bool is64 = bin.type() == Header::CLASS::ELF64;
   if (R.is_rel() || R.is_rela()) {
-    return is64 ?
-           (R.is_rela() ? sizeof(details::Elf64_Rela) : sizeof(details::Elf64_Rel)) :
-           (R.is_rela() ? sizeof(details::Elf32_Rela) : sizeof(details::Elf32_Rel));
+    return is64 ? (R.is_rela() ? sizeof(details::Elf64_Rela) :
+                                 sizeof(details::Elf64_Rel)) :
+                  (R.is_rela() ? sizeof(details::Elf32_Rela) :
+                                 sizeof(details::Elf32_Rel));
   }
   LIEF_WARN("get_relocation_sizeof() only supports REL/RELA encoding");
   return size_t(-1);
@@ -76,8 +73,7 @@ inline size_t get_relocation_sizeof(const Binary& bin, const Relocation& R) {

 Binary::Binary() :
   LIEF::Binary(LIEF::Binary::FORMATS::ELF),
-  sizing_info_{std::make_unique<sizing_info_t>()}
-{}
+  sizing_info_{std::make_unique<sizing_info_t>()} {}

 size_t Binary::hash(const std::string& name) {
   if (type_ == Header::CLASS::ELF32) {
@@ -89,11 +85,8 @@ size_t Binary::hash(const std::string& name) {
 LIEF::Binary::sections_t Binary::get_abstract_sections() {
   LIEF::Binary::sections_t sections;
   sections.reserve(sections_.size());
-  std::transform(std::begin(sections_), std::end(sections_),
-                 std::back_inserter(sections),
-                 [] (const std::unique_ptr<Section>& s) {
-                  return s.get();
-                 });
+  std::transform(sections_.begin(), sections_.end(), std::back_inserter(sections),
+                 [](const std::unique_ptr<Section>& s) { return s.get(); });
   return sections;
 }

@@ -101,7 +94,8 @@ LIEF::Binary::functions_t Binary::get_abstract_exported_functions() const {
   functions_t result;
   for (const Symbol& symbol : exported_symbols()) {
     if (symbol.type() == Symbol::TYPE::FUNC) {
-      result.emplace_back(symbol.name(), symbol.value(), Function::FLAGS::EXPORTED);
+      result.emplace_back(symbol.name(), symbol.value(),
+                          Function::FLAGS::EXPORTED);
     }
   }
   return result;
@@ -112,7 +106,8 @@ LIEF::Binary::functions_t Binary::get_abstract_imported_functions() const {
   functions_t result;
   for (const Symbol& symbol : imported_symbols()) {
     if (symbol.type() == Symbol::TYPE::FUNC) {
-      result.emplace_back(symbol.name(), symbol.value(), Function::FLAGS::IMPORTED);
+      result.emplace_back(symbol.name(), symbol.value(),
+                          Function::FLAGS::IMPORTED);
     }
   }
   return result;
@@ -130,19 +125,17 @@ std::vector<std::string> Binary::get_abstract_imported_libraries() const {
 }


-
 DynamicEntry& Binary::add(const DynamicEntry& entry) {
   std::unique_ptr<DynamicEntry> new_one = entry.clone();

-  const auto it_new_place = std::find_if(std::begin(dynamic_entries_), std::end(dynamic_entries_),
-      [&new_one] (const std::unique_ptr<DynamicEntry>& e) {
-        return e->tag() == new_one->tag() || e->tag() == DynamicEntry::TAG::DT_NULL_;
-      });
-
-  auto* ptr = new_one.get();
-  dynamic_entries_.insert(it_new_place, std::move(new_one));
-  return *ptr;
+  const auto it_new_place =
+      std::find_if(dynamic_entries_.begin(), dynamic_entries_.end(),
+                   [&new_one](const std::unique_ptr<DynamicEntry>& e) {
+                     return e->tag() == new_one->tag() ||
+                            e->tag() == DynamicEntry::TAG::DT_NULL_;
+                   });

+  return **dynamic_entries_.insert(it_new_place, std::move(new_one));
 }


@@ -152,14 +145,14 @@ Note& Binary::add(const Note& note) {
 }

 void Binary::remove(const DynamicEntry& entry) {
-  const auto it_entry = std::find_if(std::begin(dynamic_entries_), std::end(dynamic_entries_),
-      [&entry] (const std::unique_ptr<DynamicEntry>& e) {
-        return e.get() == &entry;
-      });
-
-  if (it_entry == std::end(dynamic_entries_)) {
-    LIEF_WARN("Can't find {} in the dynamic table. This entry can't be removed",
-              to_string(entry));
+  const auto it_entry =
+      std::find_if(dynamic_entries_.begin(), dynamic_entries_.end(),
+                   [&entry](const std::unique_ptr<DynamicEntry>& e) {
+                     return e.get() == &entry;
+                   });
+
+  if (it_entry == dynamic_entries_.end()) {
+    LIEF_WARN("{} not found in dynamic table, cannot remove", to_string(entry));
     return;
   }
   dynamic_entries_.erase(it_entry);
@@ -168,30 +161,35 @@ void Binary::remove(const DynamicEntry& entry) {
 void Binary::remove(DynamicEntry::TAG tag) {
   dynamic_entries_.erase(
       std::remove_if(dynamic_entries_.begin(), dynamic_entries_.end(),
-        [tag] (const std::unique_ptr<DynamicEntry>& E) { return E->tag() == tag; }
-      ), dynamic_entries_.end());
+                     [tag](const std::unique_ptr<DynamicEntry>& E) {
+                       return E->tag() == tag;
+                     }),
+      dynamic_entries_.end()
+  );
 }

 void Binary::remove(const Section& section, bool clear) {
-  const auto it_section = std::find_if(std::begin(sections_), std::end(sections_),
-      [&section] (const std::unique_ptr<Section>& s) {
-        return *s == section;
-      });
-
-  if (it_section == std::end(sections_)) {
-    LIEF_WARN("Can't find the section '{}'. It can't be removed!", section.name());
+  const auto it_section =
+      std::find_if(sections_.begin(), sections_.end(),
+                   [&section](const std::unique_ptr<Section>& s) {
+                     return *s == section;
+                   });
+
+  if (it_section == sections_.end()) {
+    LIEF_WARN("Section '{}' not found, cannot remove", section.name());
     return;
   }

-  size_t idx = std::distance(std::begin(sections_), it_section);
+  size_t idx = std::distance(sections_.begin(), it_section);

   Section* s = it_section->get();

   // Remove from segments:
   for (std::unique_ptr<Segment>& segment : segments_) {
     auto& sections = segment->sections_;
-    sections.erase(std::remove_if(std::begin(sections), std::end(sections),
-                   [&s] (const Section* sec) { return *sec == *s; }), std::end(sections));
+    sections.erase(std::remove_if(sections.begin(), sections.end(),
+                                  [&s](const Section* sec) { return *sec == *s; }),
+                   sections.end());
   }

   // Patch Section link
@@ -225,13 +223,12 @@ void Binary::remove(const Section& section, bool clear) {
 }

 void Binary::remove(const Note& note) {
-  const auto it_note = std::find_if(std::begin(notes_), std::end(notes_),
-                                    [&note] (const std::unique_ptr<Note>& n) {
-                                      return note == *n;
-                                    });
+  const auto it_note =
+      std::find_if(notes_.begin(), notes_.end(),
+                   [&note](const std::unique_ptr<Note>& n) { return note == *n; });

-  if (it_note == std::end(notes_)) {
-    LIEF_WARN("Can't find the note with the type {}. It can't be removed!",
+  if (it_note == notes_.end()) {
+    LIEF_WARN("Note type {} not found, cannot remove",
               to_string(static_cast<Note::TYPE>(note.type())));
     return;
   }
@@ -239,7 +236,7 @@ void Binary::remove(const Note& note) {
 }

 void Binary::remove(Note::TYPE type) {
-  for (auto it = std::begin(notes_); it != std::end(notes_);) {
+  for (auto it = notes_.begin(); it != notes_.end();) {
     std::unique_ptr<Note>& n = *it;
     if (n->type() == type) {
       n.reset(nullptr);
@@ -257,10 +254,9 @@ int64_t Binary::symtab_idx(const std::string& name) const {
   }

   auto it = std::find_if(symtab_symbols_.begin(), symtab_symbols_.end(),
-    [&name] (const std::unique_ptr<Symbol>& S) {
-      return S->name() == name;
-    }
-  );
+                         [&name](const std::unique_ptr<Symbol>& S) {
+                           return S->name() == name;
+                         });

   if (it == symtab_symbols_.end()) {
     return -1;
@@ -283,10 +279,9 @@ int64_t Binary::dynsym_idx(const std::string& name) const {
   }

   auto it = std::find_if(dynamic_symbols_.begin(), dynamic_symbols_.end(),
-    [&name] (const std::unique_ptr<Symbol>& S) {
-      return S->name() == name;
-    }
-  );
+                         [&name](const std::unique_ptr<Symbol>& S) {
+                           return S->name() == name;
+                         });
   if (it == dynamic_symbols_.end()) {
     return -1;
   }
@@ -297,12 +292,13 @@ int64_t Binary::dynsym_idx(const std::string& name) const {
 Symbol& Binary::export_symbol(const Symbol& symbol) {

   // Check if the symbol is in the dynamic symbol table
-  const auto it_symbol = std::find_if(std::begin(dynamic_symbols_), std::end(dynamic_symbols_),
-                                      [&symbol] (const std::unique_ptr<Symbol>& s) {
-                                        return *s == symbol;
-                                      });
+  const auto it_symbol =
+      std::find_if(dynamic_symbols_.begin(), dynamic_symbols_.end(),
+                   [&symbol](const std::unique_ptr<Symbol>& s) {
+                     return *s == symbol;
+                   });
   Symbol* s = nullptr;
-  if (it_symbol == std::end(dynamic_symbols_)) {
+  if (it_symbol == dynamic_symbols_.end()) {
     // Create a new one
     const SymbolVersion& version = SymbolVersion::global();
     Symbol& new_sym = add_dynamic_symbol(symbol, &version);
@@ -311,14 +307,16 @@ Symbol& Binary::export_symbol(const Symbol& symbol) {
     s = it_symbol->get();
   }

-  const auto it_text = std::find_if(std::begin(sections_), std::end(sections_),
-                                    [] (const std::unique_ptr<Section>& s) {
+  const auto it_text = std::find_if(sections_.begin(), sections_.end(),
+                                    [](const std::unique_ptr<Section>& s) {
                                       return s->name() == ".text";
                                     });

-  size_t text_idx = std::distance(std::begin(sections_), it_text);
+  size_t text_idx = std::distance(sections_.begin(), it_text);

-  if (s->binding() != Symbol::BINDING::WEAK || s->binding() != Symbol::BINDING::GLOBAL) {
+  if (s->binding() != Symbol::BINDING::WEAK ||
+      s->binding() != Symbol::BINDING::GLOBAL)
+  {
     s->binding(Symbol::BINDING::GLOBAL);
   }

@@ -381,7 +379,7 @@ Symbol& Binary::add_exported_function(uint64_t address, const std::string& name)
     return export_symbol(*s);
   }

-  // Second: Check if a symbol with the given 'name' exists in the **static**
+  // Second: Check if a symbol with the given 'name' exists in the **static** table
   s = get_symtab_symbol(funcname);
   if (s != nullptr) {
     s->type(Symbol::TYPE::FUNC);
@@ -401,29 +399,28 @@ Symbol& Binary::add_exported_function(uint64_t address, const std::string& name)
   funcsym.size(0x10);

   return export_symbol(funcsym);
-
 }

 const Symbol* Binary::get_dynamic_symbol(const std::string& name) const {
-  const auto it_symbol = std::find_if(
-      std::begin(dynamic_symbols_), std::end(dynamic_symbols_),
-      [&name] (const std::unique_ptr<Symbol>& s) {
-        return s->name() == name;
-      });
+  const auto it_symbol =
+      std::find_if(dynamic_symbols_.begin(), dynamic_symbols_.end(),
+                   [&name](const std::unique_ptr<Symbol>& s) {
+                     return s->name() == name;
+                   });

-  if (it_symbol == std::end(dynamic_symbols_)) {
+  if (it_symbol == dynamic_symbols_.end()) {
     return nullptr;
   }
   return it_symbol->get();
 }

 const Symbol* Binary::get_symtab_symbol(const std::string& name) const {
-  const auto it_symbol = std::find_if(
-      std::begin(symtab_symbols_), std::end(symtab_symbols_),
-      [&name] (const std::unique_ptr<Symbol>& s) {
-        return s->name() == name;
-      });
-  if (it_symbol == std::end(symtab_symbols_)) {
+  const auto it_symbol =
+      std::find_if(symtab_symbols_.begin(), symtab_symbols_.end(),
+                   [&name](const std::unique_ptr<Symbol>& s) {
+                     return s->name() == name;
+                   });
+  if (it_symbol == symtab_symbols_.end()) {
     return nullptr;
   }
   return it_symbol->get();
@@ -441,9 +438,7 @@ Binary::string_list_t Binary::strings(size_t min_size) const {
   std::string current;
   current.reserve(100);

-  for (size_t i = 0; i < data.size(); ++i) {
-    uint8_t c = data[i];
-
+  for (unsigned char c : data) {
     // Terminator
     if (c == '\0') {
       if (current.size() >= min_size) {
@@ -485,32 +480,27 @@ std::vector<Symbol*> Binary::symtab_dyn_symbols() const {
 // --------

 Binary::it_exported_symbols Binary::exported_symbols() {
-  return {symtab_dyn_symbols(), [] (const Symbol* symbol) {
-    return symbol->is_exported();
-  }};
+  return {symtab_dyn_symbols(),
+          [](const Symbol* symbol) { return symbol->is_exported(); }};
 }

 Binary::it_const_exported_symbols Binary::exported_symbols() const {
-  return {symtab_dyn_symbols(), [] (const Symbol* symbol) {
-    return symbol->is_exported();
-  }};
+  return {symtab_dyn_symbols(),
+          [](const Symbol* symbol) { return symbol->is_exported(); }};
 }


-
 // Imported
 // --------

 Binary::it_imported_symbols Binary::imported_symbols() {
-  return {symtab_dyn_symbols(), [] (const Symbol* symbol) {
-    return symbol->is_imported();
-  }};
+  return {symtab_dyn_symbols(),
+          [](const Symbol* symbol) { return symbol->is_imported(); }};
 }

 Binary::it_const_imported_symbols Binary::imported_symbols() const {
-  return {symtab_dyn_symbols(), [] (const Symbol* symbol) {
-    return symbol->is_imported();
-  }};
+  return {symtab_dyn_symbols(),
+          [](const Symbol* symbol) { return symbol->is_imported(); }};
 }

 void Binary::remove_symbol(const std::string& name) {
@@ -521,7 +511,7 @@ void Binary::remove_symbol(const std::string& name) {
 void Binary::remove_symtab_symbol(const std::string& name) {
   Symbol* sym = get_symtab_symbol(name);
   if (sym == nullptr) {
-    LIEF_WARN("Can't find the symtab symbol '{}'. It won't be removed", name);
+    LIEF_WARN("Symtab symbol '{}' not found, cannot remove", name);
     return;
   }
   remove_symtab_symbol(sym);
@@ -532,15 +522,14 @@ void Binary::remove_symtab_symbol(Symbol* symbol) {
     return;
   }

-  const auto it_symbol = std::find_if(
-      std::begin(symtab_symbols_), std::end(symtab_symbols_),
-      [symbol] (const std::unique_ptr<Symbol>& sym) {
-        return *symbol == *sym;
-      }
-  );
+  const auto it_symbol =
+      std::find_if(symtab_symbols_.begin(), symtab_symbols_.end(),
+                   [symbol](const std::unique_ptr<Symbol>& sym) {
+                     return *symbol == *sym;
+                   });

-  if (it_symbol == std::end(symtab_symbols_)) {
-    LIEF_WARN("Can't find the symtab symbol '{}'. It won't be removed", symbol->name());
+  if (it_symbol == symtab_symbols_.end()) {
+    LIEF_WARN("Symtab symbol '{}' not found, cannot remove", symbol->name());
     return;
   }

@@ -550,7 +539,7 @@ void Binary::remove_symtab_symbol(Symbol* symbol) {
 void Binary::remove_dynamic_symbol(const std::string& name) {
   Symbol* sym = get_dynamic_symbol(name);
   if (sym == nullptr) {
-    LIEF_WARN("Can't find the dynamic symbol '{}'. It won't be removed", name);
+    LIEF_WARN("Dynamic symbol '{}' not found, cannot remove", name);
     return;
   }
   remove_dynamic_symbol(sym);
@@ -561,26 +550,27 @@ void Binary::remove_dynamic_symbol(Symbol* symbol) {
     return;
   }

-  const auto it_symbol = std::find_if(
-      std::begin(dynamic_symbols_), std::end(dynamic_symbols_),
-      [symbol] (const std::unique_ptr<Symbol>& sym) {
-        return *symbol == *sym;
-      }
-  );
+  const auto it_symbol =
+      std::find_if(dynamic_symbols_.begin(), dynamic_symbols_.end(),
+                   [symbol](const std::unique_ptr<Symbol>& sym) {
+                     return *symbol == *sym;
+                   });

-  if (it_symbol == std::end(dynamic_symbols_)) {
-    LIEF_WARN("Can't find the dynamic symbol '{}'. It won't be removed", symbol->name());
+  if (it_symbol == dynamic_symbols_.end()) {
+    LIEF_WARN("Dynamic symbol '{}' not found, cannot remove", symbol->name());
     return;
   }

   // Update relocations
-  auto it_relocation = std::find_if(std::begin(relocations_), std::end(relocations_),
-      [symbol] (const std::unique_ptr<Relocation>& relocation) {
-        return relocation->purpose() == Relocation::PURPOSE::PLTGOT &&
-               relocation->has_symbol() && relocation->symbol() == symbol;
-      });
-
-  if (it_relocation != std::end(relocations_)) {
+  auto it_relocation =
+      std::find_if(relocations_.begin(), relocations_.end(),
+                   [symbol](const std::unique_ptr<Relocation>& relocation) {
+                     return relocation->purpose() == Relocation::PURPOSE::PLTGOT &&
+                            relocation->has_symbol() &&
+                            relocation->symbol() == symbol;
+                   });
+
+  if (it_relocation != relocations_.end()) {
     Relocation& R = **it_relocation;
     /* That's the tricky part:
      *
@@ -602,8 +592,8 @@ void Binary::remove_dynamic_symbol(Symbol* symbol) {
      * If we remove 'puts' from the relocation table, 'printf' is shifted
      * to the index 0 and the index in the resolving stub is corrupted (push 1).
      * Thus for the general case, we can't "shrink" the relocation table.
-     * Instead, unbinding the 'symbol' from the relocation does not break the layout
-     * while still removing the symbol.
+     * Instead, unbinding the 'symbol' from the relocation does not break the
+     * layout while still removing the symbol.
      */
     R.symbol(nullptr);
   }
@@ -612,20 +602,22 @@ void Binary::remove_dynamic_symbol(Symbol* symbol) {
   size_t rel_sizeof = 0;

   relocations_.erase(
-    std::remove_if(relocations_.begin(), relocations_.end(),
-      [symbol, this, &rel_sizeof] (const std::unique_ptr<Relocation>& reloc) {
-        if (reloc->purpose() != Relocation::PURPOSE::DYNAMIC) {
-          return false;
-        }
-
-        if (const Symbol* sym = reloc->symbol(); sym == symbol) {
-          rel_sizeof = get_relocation_sizeof(*this, *reloc);
-          return true;
-        }
-
-        return false;
-      }
-    ), relocations_.end());
+      std::remove_if(relocations_.begin(), relocations_.end(),
+                     [symbol, this,
+                      &rel_sizeof](const std::unique_ptr<Relocation>& reloc) {
+                       if (reloc->purpose() != Relocation::PURPOSE::DYNAMIC) {
+                         return false;
+                       }
+
+                       if (const Symbol* sym = reloc->symbol(); sym == symbol) {
+                         rel_sizeof = get_relocation_sizeof(*this, *reloc);
+                         return true;
+                       }
+
+                       return false;
+                     }),
+      relocations_.end()
+  );

   const size_t nb_deleted_relocs = nb_relocs - relocations_.size();

@@ -636,8 +628,7 @@ void Binary::remove_dynamic_symbol(Symbol* symbol) {
       if (sizes >= relocs_size) {
         DT->value(sizes - relocs_size);
       }
-    }
-    else if (auto* DT = get(DynamicEntry::TAG::RELSZ)) {
+    } else if (auto* DT = get(DynamicEntry::TAG::RELSZ)) {
       const uint64_t sizes = DT->value();
       if (sizes >= relocs_size) {
         DT->value(sizes - relocs_size);
@@ -647,13 +638,12 @@ void Binary::remove_dynamic_symbol(Symbol* symbol) {

   // Update symbol versions
   if (symbol->has_version()) {
-    const auto it = std::find_if(
-        std::begin(symbol_version_table_), std::end(symbol_version_table_),
-        [symbol] (const std::unique_ptr<SymbolVersion>& sv) {
-          return sv.get() == symbol->symbol_version_;
-        }
-    );
-    if (it != std::end(symbol_version_table_)) {
+    const auto it =
+        std::find_if(symbol_version_table_.begin(), symbol_version_table_.end(),
+                     [symbol](const std::unique_ptr<SymbolVersion>& sv) {
+                       return sv.get() == symbol->symbol_version_;
+                     });
+    if (it != symbol_version_table_.end()) {
       symbol_version_table_.erase(it);
     }
   }
@@ -669,25 +659,18 @@ void Binary::remove_dynamic_symbol(Symbol* symbol) {
 // --------

 Binary::it_dynamic_relocations Binary::dynamic_relocations() {
-  return {relocations_, [] (const std::unique_ptr<Relocation>& reloc) {
-      return reloc->purpose() == Relocation::PURPOSE::DYNAMIC;
-    }
-  };
+  return {relocations_, [](const std::unique_ptr<Relocation>& reloc) {
+            return reloc->purpose() == Relocation::PURPOSE::DYNAMIC;
+          }};
 }

 Binary::it_const_dynamic_relocations Binary::dynamic_relocations() const {
-  return {relocations_, [] (const std::unique_ptr<Relocation>& reloc) {
-      return reloc->purpose() == Relocation::PURPOSE::DYNAMIC;
-    }
-  };
+  return {relocations_, [](const std::unique_ptr<Relocation>& reloc) {
+            return reloc->purpose() == Relocation::PURPOSE::DYNAMIC;
+          }};
 }

 Relocation& Binary::add_dynamic_relocation(const Relocation& relocation) {
-  if (!relocation.is_rel() && !relocation.is_rela()) {
-    LIEF_WARN("LIEF only supports regulard rel/rela relocations");
-    static Relocation None;
-    return None;
-  }
   auto relocation_ptr = std::make_unique<Relocation>(relocation);
   relocation_ptr->purpose(Relocation::PURPOSE::DYNAMIC);
   relocation_ptr->architecture_ = header().machine_type();
@@ -699,32 +682,55 @@ Relocation& Binary::add_dynamic_relocation(const Relocation& relocation) {
     if (inner_sym == nullptr) {
       inner_sym = &(add_dynamic_symbol(*associated_sym));
     }
-    const auto it_sym = std::find_if(
-        std::begin(dynamic_symbols_), std::end(dynamic_symbols_),
-        [inner_sym] (const std::unique_ptr<Symbol>& s) {
-          return s->name() == inner_sym->name();
-        });
-    const size_t idx = std::distance(std::begin(dynamic_symbols_), it_sym);
+    const auto it_sym =
+        std::find_if(dynamic_symbols_.begin(), dynamic_symbols_.end(),
+                     [inner_sym](const std::unique_ptr<Symbol>& s) {
+                       return s->name() == inner_sym->name();
+                     });
+    const size_t idx = std::distance(dynamic_symbols_.begin(), it_sym);
     relocation_ptr->info(idx);
     relocation_ptr->symbol(inner_sym);
   }

-  // Update the Dynamic Section (Thanks to @yd0b0N)
-  bool is_rela = relocation.is_rela();
-  auto tag_sz  = is_rela ? DynamicEntry::TAG::RELASZ :
-                           DynamicEntry::TAG::RELSZ;
+  const uint64_t psize = ptr_size();

-  auto tag_ent = is_rela ? DynamicEntry::TAG::RELAENT :
-                           DynamicEntry::TAG::RELENT;
+  const uint64_t default_rela =
+      psize == 8 ? sizeof(details::Elf64_Rela) : sizeof(details::Elf32_Rela);

-  DynamicEntry* dt_sz  = get(tag_sz);
-  DynamicEntry* dt_ent = get(tag_ent);
-  if (dt_sz != nullptr && dt_ent != nullptr) {
-    dt_sz->value(dt_sz->value() + dt_ent->value());
+  const uint64_t default_rel =
+      psize == 8 ? sizeof(details::Elf64_Rel) : sizeof(details::Elf32_Rel);
+
+  if (relocation.is_rela()) {
+    if (DynamicEntry* dt_size = get(DynamicEntry::TAG::RELASZ)) {
+      dt_size->value(dt_size->value() +
+                     entry_size(DynamicEntry::TAG::RELAENT, default_rela));
+    } else if (DynamicEntry* dt_size = get(DynamicEntry::TAG::ANDROID_RELASZ)) {
+      dt_size->value(dt_size->value() + default_rela);
+    }
+  } else if (relocation.is_rel()) {
+    if (DynamicEntry* dt_size = get(DynamicEntry::TAG::RELSZ)) {
+      dt_size->value(dt_size->value() +
+                     entry_size(DynamicEntry::TAG::RELENT, default_rel));
+    } else if (DynamicEntry* dt_size = get(DynamicEntry::TAG::ANDROID_RELSZ)) {
+      dt_size->value(dt_size->value() + default_rela);
+    }
+  } else if (relocation.is_relatively_encoded()) {
+    if (DynamicEntry* dt_size = get(DynamicEntry::TAG::RELRSZ)) {
+      dt_size->value(dt_size->value() +
+                     entry_size(DynamicEntry::TAG::RELRENT, psize));
+    } else if (DynamicEntry* dt_size = get(DynamicEntry::TAG::ANDROID_RELRSZ)) {
+      dt_size->value(dt_size->value() +
+                     entry_size(DynamicEntry::TAG::ANDROID_RELRENT, psize));
+    }
+  } else if (relocation.is_android_packed()) {
+    if (DynamicEntry* dt_size = get(DynamicEntry::TAG::ANDROID_RELASZ)) {
+      dt_size->value(dt_size->value() + default_rela);
+    } else if (DynamicEntry* dt_size = get(DynamicEntry::TAG::ANDROID_RELSZ)) {
+      dt_size->value(dt_size->value() + default_rela);
+    }
   }

-  relocations_.push_back(std::move(relocation_ptr));
-  return *relocations_.back();
+  return **relocations_.insert(relocations_.end(), std::move(relocation_ptr));
 }


@@ -740,12 +746,12 @@ Relocation& Binary::add_pltgot_relocation(const Relocation& relocation) {
     if (inner_sym == nullptr) {
       inner_sym = &(add_dynamic_symbol(*associated_sym));
     }
-    const auto it_sym = std::find_if(
-        std::begin(dynamic_symbols_), std::end(dynamic_symbols_),
-        [inner_sym] (const std::unique_ptr<Symbol>& s) {
-         return s->name() == inner_sym->name();
-        });
-    const size_t idx = std::distance(std::begin(dynamic_symbols_), it_sym);
+    const auto it_sym =
+        std::find_if(dynamic_symbols_.begin(), dynamic_symbols_.end(),
+                     [inner_sym](const std::unique_ptr<Symbol>& s) {
+                       return s->name() == inner_sym->name();
+                     });
+    const size_t idx = std::distance(dynamic_symbols_.begin(), it_sym);
     relocation_ptr->info(idx);
     relocation_ptr->symbol(inner_sym);
   }
@@ -762,14 +768,16 @@ Relocation& Binary::add_pltgot_relocation(const Relocation& relocation) {
   return *relocations_.back();
 }

-Relocation* Binary::add_object_relocation(const Relocation& relocation, const Section& section) {
-  const auto it_section = std::find_if(std::begin(sections_), std::end(sections_),
-      [&section] (const std::unique_ptr<Section>& sec) {
-        return &section == sec.get();
-      });
+Relocation* Binary::add_object_relocation(const Relocation& relocation,
+                                          const Section& section) {
+  const auto it_section =
+      std::find_if(sections_.begin(), sections_.end(),
+                   [&section](const std::unique_ptr<Section>& sec) {
+                     return &section == sec.get();
+                   });

-  if (it_section == std::end(sections_)) {
-    LIEF_ERR("Can't find section '{}'", section.name());
+  if (it_section == sections_.end()) {
+    LIEF_ERR("Section '{}' not found", section.name());
     return nullptr;
   }

@@ -785,44 +793,38 @@ Relocation* Binary::add_object_relocation(const Relocation& relocation, const Se
 // plt/got
 // -------
 Binary::it_pltgot_relocations Binary::pltgot_relocations() {
-  return {relocations_, [] (const std::unique_ptr<Relocation>& reloc) {
-      return reloc->purpose() == Relocation::PURPOSE::PLTGOT;
-    }
-  };
+  return {relocations_, [](const std::unique_ptr<Relocation>& reloc) {
+            return reloc->purpose() == Relocation::PURPOSE::PLTGOT;
+          }};
 }

 Binary::it_const_pltgot_relocations Binary::pltgot_relocations() const {
-  return {relocations_, [] (const std::unique_ptr<Relocation>& reloc) {
-      return reloc->purpose() == Relocation::PURPOSE::PLTGOT;
-    }
-  };
+  return {relocations_, [](const std::unique_ptr<Relocation>& reloc) {
+            return reloc->purpose() == Relocation::PURPOSE::PLTGOT;
+          }};
 }


 // objects
 // -------
 Binary::it_object_relocations Binary::object_relocations() {
-  return {relocations_, [] (const std::unique_ptr<Relocation>& reloc) {
-      return reloc->purpose() == Relocation::PURPOSE::OBJECT;
-    }
-  };
+  return {relocations_, [](const std::unique_ptr<Relocation>& reloc) {
+            return reloc->purpose() == Relocation::PURPOSE::OBJECT;
+          }};
 }

 Binary::it_const_object_relocations Binary::object_relocations() const {
-  return {relocations_, [] (const std::unique_ptr<Relocation>& reloc) {
-      return reloc->purpose() == Relocation::PURPOSE::OBJECT;
-    }
-  };
+  return {relocations_, [](const std::unique_ptr<Relocation>& reloc) {
+            return reloc->purpose() == Relocation::PURPOSE::OBJECT;
+          }};
 }

 LIEF::Binary::relocations_t Binary::get_abstract_relocations() {
   LIEF::Binary::relocations_t relocations;
   relocations.reserve(relocations_.size());
-  std::transform(std::begin(relocations_), std::end(relocations_),
+  std::transform(relocations_.begin(), relocations_.end(),
                  std::back_inserter(relocations),
-                 [] (const std::unique_ptr<Relocation>& r) {
-                  return r.get();
-                 });
+                 [](const std::unique_ptr<Relocation>& r) { return r.get(); });

   return relocations;
 }
@@ -831,74 +833,67 @@ LIEF::Binary::relocations_t Binary::get_abstract_relocations() {
 LIEF::Binary::symbols_t Binary::get_abstract_symbols() {
   LIEF::Binary::symbols_t symbols;
   symbols.reserve(dynamic_symbols_.size() + symtab_symbols_.size());
-  std::transform(std::begin(dynamic_symbols_), std::end(dynamic_symbols_),
+  std::transform(dynamic_symbols_.begin(), dynamic_symbols_.end(),
                  std::back_inserter(symbols),
-                 [] (std::unique_ptr<Symbol>& s) {
-                  return s.get();
-                 });
+                 [](std::unique_ptr<Symbol>& s) { return s.get(); });

-  std::transform(std::begin(symtab_symbols_), std::end(symtab_symbols_),
+  std::transform(symtab_symbols_.begin(), symtab_symbols_.end(),
                  std::back_inserter(symbols),
-                 [] (std::unique_ptr<Symbol>& s) {
-                  return s.get();
-                 });
+                 [](std::unique_ptr<Symbol>& s) { return s.get(); });

   return symbols;
-
 }

 const Section* Binary::get_section(const std::string& name) const {
-  const auto it_section = std::find_if(
-      std::begin(sections_), std::end(sections_),
-      [&name] (const std::unique_ptr<Section>& section) {
-        return section->name() == name;
-      });
+  const auto it_section =
+      std::find_if(sections_.begin(), sections_.end(),
+                   [&name](const std::unique_ptr<Section>& section) {
+                     return section->name() == name;
+                   });

-  if (it_section == std::end(sections_)) {
+  if (it_section == sections_.end()) {
     return nullptr;
   }
   return it_section->get();
 }

 Section* Binary::dynamic_section() {
-  const auto it_dynamic_section = std::find_if(
-      std::begin(sections_), std::end(sections_),
-      [] (const std::unique_ptr<Section>& section) {
-         return section->type() == Section::TYPE::DYNAMIC;
-      });
+  const auto it_dynamic_section =
+      std::find_if(sections_.begin(), sections_.end(),
+                   [](const std::unique_ptr<Section>& section) {
+                     return section->type() == Section::TYPE::DYNAMIC;
+                   });

-  if (it_dynamic_section == std::end(sections_)) {
+  if (it_dynamic_section == sections_.end()) {
     return nullptr;
   }

   return it_dynamic_section->get();
-
 }

 Section* Binary::hash_section() {
-  const auto it_hash_section = std::find_if(
-      std::begin(sections_), std::end(sections_),
-      [] (const std::unique_ptr<Section>& section) {
-        return section->type() == Section::TYPE::HASH ||
-               section->type() == Section::TYPE::GNU_HASH;
-      });
-
-  if (it_hash_section == std::end(sections_)) {
+  const auto it_hash_section =
+      std::find_if(sections_.begin(), sections_.end(),
+                   [](const std::unique_ptr<Section>& section) {
+                     return section->type() == Section::TYPE::HASH ||
+                            section->type() == Section::TYPE::GNU_HASH;
+                   });
+
+  if (it_hash_section == sections_.end()) {
     return nullptr;
   }

   return it_hash_section->get();
-
 }

 Section* Binary::symtab_symbols_section() {
-  const auto it_symtab_section = std::find_if(
-      std::begin(sections_), std::end(sections_),
-      [] (const std::unique_ptr<Section>& section) {
-        return section->type() == Section::TYPE::SYMTAB;
-      });
+  const auto it_symtab_section =
+      std::find_if(sections_.begin(), sections_.end(),
+                   [](const std::unique_ptr<Section>& section) {
+                     return section->type() == Section::TYPE::SYMTAB;
+                   });

-  if (it_symtab_section == std::end(sections_)) {
+  if (it_symtab_section == sections_.end()) {
     return nullptr;
   }

@@ -909,7 +904,8 @@ uint64_t Binary::imagebase() const {
   auto imagebase = static_cast<uint64_t>(-1);
   for (const std::unique_ptr<Segment>& segment : segments_) {
     if (segment != nullptr && segment->is_load()) {
-      imagebase = std::min(imagebase, segment->virtual_address() - segment->file_offset());
+      imagebase =
+          std::min(imagebase, segment->virtual_address() - segment->file_offset());
     }
   }
   return imagebase;
@@ -919,7 +915,8 @@ uint64_t Binary::virtual_size() const {
   uint64_t virtual_size = 0;
   for (const std::unique_ptr<Segment>& segment : segments_) {
     if (segment != nullptr && segment->is_load()) {
-      virtual_size = std::max(virtual_size, segment->virtual_address() + segment->virtual_size());
+      virtual_size = std::max(virtual_size, segment->virtual_address() +
+                                                segment->virtual_size());
     }
   }
   virtual_size = align(virtual_size, page_size());
@@ -934,54 +931,56 @@ std::vector<uint8_t> Binary::raw() {
 }

 result<uint64_t> Binary::get_function_address(const std::string& func_name) const {
-  if (auto res = get_function_address(func_name, /* demangle */true)) {
+  if (auto res = get_function_address(func_name, /* demangle */ true)) {
     return *res;
   }

-  if (auto res = get_function_address(func_name, /* demangle */false)) {
+  if (auto res = get_function_address(func_name, /* demangle */ false)) {
     return *res;
   }

-  return LIEF::Binary::get_function_address(func_name);;
+  return LIEF::Binary::get_function_address(func_name);
+  ;
 }

-result<uint64_t> Binary::get_function_address(const std::string& func_name, bool demangled) const {
+result<uint64_t> Binary::get_function_address(const std::string& func_name,
+                                              bool demangled) const {

-  const auto it_dynsym = std::find_if(
-    dynamic_symbols_.begin(), dynamic_symbols_.end(),
-    [&func_name, demangled] (const std::unique_ptr<Symbol>& symbol) {
-        std::string sname;
-        if (demangled) {
-          sname = symbol->demangled_name();
-        }
+  const auto it_dynsym =
+      std::find_if(dynamic_symbols_.begin(), dynamic_symbols_.end(),
+                   [&func_name, demangled](const std::unique_ptr<Symbol>& symbol) {
+                     std::string sname;
+                     if (demangled) {
+                       sname = symbol->demangled_name();
+                     }

-        if (sname.empty()) {
-          sname = symbol->name();
-        }
+                     if (sname.empty()) {
+                       sname = symbol->name();
+                     }

-        return sname == func_name &&
-               symbol->type() == Symbol::TYPE::FUNC;
-      });
+                     return sname == func_name &&
+                            symbol->type() == Symbol::TYPE::FUNC;
+                   });

   if (it_dynsym != dynamic_symbols_.end()) {
     return (*it_dynsym)->value();
   }

-  const auto it_symtab = std::find_if(
-    symtab_symbols_.begin(), symtab_symbols_.end(),
-    [&func_name, demangled] (const std::unique_ptr<Symbol>& symbol) {
-        std::string sname;
-        if (demangled) {
-          sname = symbol->demangled_name();
-        }
+  const auto it_symtab =
+      std::find_if(symtab_symbols_.begin(), symtab_symbols_.end(),
+                   [&func_name, demangled](const std::unique_ptr<Symbol>& symbol) {
+                     std::string sname;
+                     if (demangled) {
+                       sname = symbol->demangled_name();
+                     }

-        if (sname.empty()) {
-          sname = symbol->name();
-        }
+                     if (sname.empty()) {
+                       sname = symbol->name();
+                     }

-        return sname == func_name &&
-               symbol->type() == Symbol::TYPE::FUNC;
-      });
+                     return sname == func_name &&
+                            symbol->type() == Symbol::TYPE::FUNC;
+                   });

   if (it_symtab != symtab_symbols_.end()) {
     uint64_t value = (*it_symtab)->value();
@@ -990,7 +989,6 @@ result<uint64_t> Binary::get_function_address(const std::string& func_name, bool
     }
   }
   return make_error_code(lief_errors::not_found);
-
 }

 Section* Binary::add(const Section& section, bool loaded, SEC_INSERT_POS pos) {
@@ -1012,20 +1010,20 @@ Section* Binary::add_frame_section(const Section& sec) {
 }

 bool Binary::is_pie() const {
-  const auto it_segment = std::find_if(
-      std::begin(segments_), std::end(segments_),
-      [] (const std::unique_ptr<Segment>& entry) {
-        return entry->is_interpreter();
-      });
+  const auto it_segment = std::find_if(segments_.begin(), segments_.end(),
+                                       [](const std::unique_ptr<Segment>& entry) {
+                                         return entry->is_interpreter();
+                                       });

   if (header().file_type() != Header::FILE_TYPE::DYN) {
     return false;
   }

   /* If the ELF binary uses an interpreter, then it is position
-   * independant since the interpreter aims at loading the binary at a random base address
+   * independent since the interpreter aims at loading the binary at a random base
+   * address.
    */
-  if (it_segment != std::end(segments_)) {
+  if (it_segment != segments_.end()) {
     return true;
   }
   /* It also exists ELF executables which don't have PT_INTERP but are
@@ -1033,7 +1031,7 @@ bool Binary::is_pie() const {
    * the case, for instance, when compiling with the -static-pie flag
    *
    * While header().file_type() == E_TYPE::ET_DYN is a requirement
-   * for PIC binary (Position independant **CODE**), it does not enable
+   * for PIC binary (Position independent **CODE**), it does not enable
    * to distinguish PI **Executables** from libraries.
    *
    * Therefore, we add the following checks:
@@ -1043,7 +1041,9 @@ bool Binary::is_pie() const {


   if (has(Segment::TYPE::DYNAMIC)) {
-    if (const auto* flag = static_cast<const DynamicEntryFlags*>(get(DynamicEntry::TAG::FLAGS_1))) {
+    if (const auto* flag =
+            static_cast<const DynamicEntryFlags*>(get(DynamicEntry::TAG::FLAGS_1)))
+    {
       return flag->has(DynamicEntryFlags::FLAG::PIE);
     }
   }
@@ -1066,33 +1066,32 @@ bool Binary::has_nx() const {
 }

 Segment* Binary::add(const Segment& segment, uint64_t base) {
-  const uint64_t new_base = base == 0 ? next_virtual_address() : base;
-
-  switch(header().file_type()) {
+  switch (header().file_type()) {
     case Header::FILE_TYPE::EXEC:
-      return add_segment<Header::FILE_TYPE::EXEC>(segment, new_base);
+      return add_segment<Header::FILE_TYPE::EXEC>(segment, base);
     case Header::FILE_TYPE::DYN:
-      return add_segment<Header::FILE_TYPE::DYN>(segment, new_base);
+      return add_segment<Header::FILE_TYPE::DYN>(segment, base);
     default:
-      {
-        LIEF_WARN("Adding segment for {} is not implemented", to_string(header().file_type()));
-        return nullptr;
-      }
+    {
+      LIEF_WARN("Adding segment not implemented for {}",
+                to_string(header().file_type()));
+      return nullptr;
+    }
   }
 }


-Segment* Binary::replace(const Segment& new_segment, const Segment& original_segment, uint64_t base) {
+Segment* Binary::replace(const Segment& new_segment,
+                         const Segment& original_segment, uint64_t base) {

-  const auto it_original_segment = std::find_if(
-      std::begin(segments_), std::end(segments_),
-      [&original_segment] (const std::unique_ptr<Segment>& s) {
-        return *s == original_segment;
-      }
-  );
+  const auto it_original_segment =
+      std::find_if(segments_.begin(), segments_.end(),
+                   [&original_segment](const std::unique_ptr<Segment>& s) {
+                     return *s == original_segment;
+                   });

-  if (it_original_segment == std::end(segments_)) {
-    LIEF_WARN("Unable to find the segment in the current binary");
+  if (it_original_segment == segments_.end()) {
+    LIEF_WARN("Segment not found in binary");
     return nullptr;
   }

@@ -1100,23 +1099,27 @@ Segment* Binary::replace(const Segment& new_segment, const Segment& original_seg
   uint64_t new_base = base;

   if (new_base == 0) {
-    new_base = next_virtual_address();
+    const uint64_t alignment =
+        new_segment.alignment() > 0 ? new_segment.alignment() : page_size();
+    new_base = align(next_virtual_address(), alignment);
   }

   span<const uint8_t> content_ref = new_segment.content();
-  std::vector<uint8_t> content{content_ref.data(), std::end(content_ref)};
+  std::vector<uint8_t> content{content_ref.data(), content_ref.end()};

   auto new_segment_ptr = std::make_unique<Segment>(new_segment);
   new_segment_ptr->datahandler_ = datahandler_.get();

-  DataHandler::Node new_node{new_segment_ptr->file_offset(), new_segment_ptr->physical_size(),
+  DataHandler::Node new_node{new_segment_ptr->file_offset(),
+                             new_segment_ptr->physical_size(),
                              DataHandler::Node::SEGMENT};
   datahandler_->add(new_node);
   new_segment_ptr->handler_size_ = new_segment_ptr->physical_size();

   const uint64_t last_offset_sections = last_offset_section();
   const uint64_t last_offset_segments = last_offset_segment();
-  const uint64_t last_offset          = std::max<uint64_t>(last_offset_sections, last_offset_segments);
+  const uint64_t last_offset =
+      std::max<uint64_t>(last_offset_sections, last_offset_segments);

   const auto psize = page_size();
   const uint64_t last_offset_aligned = align(last_offset, psize);
@@ -1138,7 +1141,8 @@ Segment* Binary::replace(const Segment& new_segment, const Segment& original_seg
     new_segment_ptr->alignment(psize);
   }

-  auto alloc = datahandler_->make_hole(last_offset_aligned, new_segment_ptr->physical_size());
+  auto alloc = datahandler_->make_hole(last_offset_aligned,
+                                       new_segment_ptr->physical_size());
   if (!alloc) {
     LIEF_ERR("Allocation failed");
     return nullptr;
@@ -1146,43 +1150,41 @@ Segment* Binary::replace(const Segment& new_segment, const Segment& original_seg
   new_segment_ptr->content(content);


-  const auto it_segment_phdr = std::find_if(
-      std::begin(segments_), std::end(segments_),
-      [] (const std::unique_ptr<Segment>& s) {
-        return s->is_phdr();
-      });
+  const auto it_segment_phdr =
+      std::find_if(segments_.begin(), segments_.end(),
+                   [](const std::unique_ptr<Segment>& s) { return s->is_phdr(); });

-  if (it_segment_phdr != std::end(segments_)) {
-    std::unique_ptr<Segment>& phdr_segment = *it_segment_phdr;
-    const size_t phdr_size = phdr_segment->content().size();
-    phdr_segment->content(std::vector<uint8_t>(phdr_size, 0));
+  if (it_segment_phdr != segments_.end()) {
+    (*it_segment_phdr)->clear();
   }

   // Remove
-  std::unique_ptr<Segment> local_original_segment = std::move(*it_original_segment);
-  datahandler_->remove(local_original_segment->file_offset(), local_original_segment->physical_size(), DataHandler::Node::SEGMENT);
+  std::unique_ptr<Segment> local_original_segment =
+      std::move(*it_original_segment);
+  datahandler_->remove(local_original_segment->file_offset(),
+                       local_original_segment->physical_size(),
+                       DataHandler::Node::SEGMENT);
   segments_.erase(it_original_segment);

   // Patch shdr
   Header& header = this->header();
-  const uint64_t new_section_hdr_offset = new_segment_ptr->file_offset() + new_segment_ptr->physical_size();
+  const uint64_t new_section_hdr_offset =
+      new_segment_ptr->file_offset() + new_segment_ptr->physical_size();
   header.section_headers_offset(new_section_hdr_offset);

-  Segment* seg = new_segment_ptr.get();
-  segments_.push_back(std::move(new_segment_ptr));
-  return seg;
+  return segments_.emplace_back(std::move(new_segment_ptr)).get();
 }


 void Binary::remove(const Segment& segment, bool clear) {
-  const auto it_segment = std::find_if(
-      std::begin(segments_), std::end(segments_),
-      [&segment] (const std::unique_ptr<Segment>& s) {
-         return s.get() == &segment;
-      });
-
-  if (it_segment == std::end(segments_)) {
-    LIEF_ERR("Can't find the provided segment");
+  const auto it_segment =
+      std::find_if(segments_.begin(), segments_.end(),
+                   [&segment](const std::unique_ptr<Segment>& s) {
+                     return s.get() == &segment;
+                   });
+
+  if (it_segment == segments_.end()) {
+    LIEF_ERR("Provided segment not found");
     return;
   }

@@ -1192,8 +1194,8 @@ void Binary::remove(const Segment& segment, bool clear) {
     local_segment->clear();
   }

-  datahandler_->remove(local_segment->file_offset(), local_segment->physical_size(),
-                       DataHandler::Node::SEGMENT);
+  datahandler_->remove(local_segment->file_offset(),
+                       local_segment->physical_size(), DataHandler::Node::SEGMENT);
   if (phdr_reloc_info_.new_offset > 0) {
     ++phdr_reloc_info_.nb_segments;
   }
@@ -1225,39 +1227,41 @@ Segment* Binary::extend(const Segment& segment, uint64_t size) {
   switch (type) {
     case Segment::TYPE::PHDR:
     case Segment::TYPE::LOAD:
-        return extend_segment<Segment::TYPE::LOAD>(segment, size);
+      return extend_segment<Segment::TYPE::LOAD>(segment, size);

     default:
-      {
-        LIEF_WARN("Extending segment '{}' is not supported");
-        return nullptr;
-      }
+    {
+      LIEF_WARN("Extending segment '{}' is not supported");
+      return nullptr;
+    }
   }
 }


 Section* Binary::extend(const Section& section, uint64_t size) {
-  const auto it_section = std::find_if(
-      std::begin(sections_), std::end(sections_),
-      [&section] (const std::unique_ptr<Section>& s) {
-        return *s == section;
-      }
-  );
-
-  if (it_section == std::end(sections_)) {
-    LIEF_WARN("Unable to find the section '{}' in the current binary", section.name());
+  const auto it_section =
+      std::find_if(sections_.begin(), sections_.end(),
+                   [&section](const std::unique_ptr<Section>& s) {
+                     return *s == section;
+                   });
+
+  if (it_section == sections_.end()) {
+    LIEF_WARN("Section '{}' not found in binary", section.name());
     return nullptr;
   }


   std::unique_ptr<Section>& section_to_extend = *it_section;

-  uint64_t from_offset  = section_to_extend->offset() + section_to_extend->size();
-  uint64_t from_address = section_to_extend->virtual_address() + section_to_extend->size();
-  bool section_loaded   = section_to_extend->virtual_address() != 0;
-  uint64_t shift        = size;
+  uint64_t from_offset = section_to_extend->offset() + section_to_extend->size();
+  uint64_t from_address =
+      section_to_extend->virtual_address() + section_to_extend->size();
+  bool section_loaded = section_to_extend->virtual_address() != 0;
+  uint64_t shift = size;

-  auto alloc = datahandler_->make_hole(section_to_extend->offset() + section_to_extend->size(),size);
+  auto alloc = datahandler_->make_hole(
+      section_to_extend->offset() + section_to_extend->size(), size
+  );

   if (!alloc) {
     LIEF_ERR("Allocation failed");
@@ -1271,7 +1275,8 @@ Section* Binary::extend(const Section& section, uint64_t size) {
   // Patch segment size for the segment which contains the new segment
   for (std::unique_ptr<Segment>& segment : segments_) {
     if ((segment->file_offset() + segment->physical_size()) >= from_offset &&
-        from_offset >= segment->file_offset()) {
+        from_offset >= segment->file_offset())
+    {
       if (section_loaded) {
         segment->virtual_size(segment->virtual_size() + shift);
       }
@@ -1283,7 +1288,7 @@ Section* Binary::extend(const Section& section, uint64_t size) {
   section_to_extend->size(section_to_extend->size() + size);

   span<const uint8_t> content_ref = section_to_extend->content();
-  std::vector<uint8_t> content    = {std::begin(content_ref), std::end(content_ref)};
+  std::vector<uint8_t> content = {content_ref.begin(), content_ref.end()};
   content.resize(section_to_extend->size(), 0);
   section_to_extend->content(content);

@@ -1313,51 +1318,53 @@ Section* Binary::extend(const Section& section, uint64_t size) {
 // Patch
 // =====

-void Binary::patch_address(uint64_t address, const std::vector<uint8_t>& patch_value, LIEF::Binary::VA_TYPES) {
+void Binary::patch_address(uint64_t address,
+                           const std::vector<uint8_t>& patch_value,
+                           LIEF::Binary::VA_TYPES) {

   // Object file does not have segments
   if (header().file_type() == Header::FILE_TYPE::REL) {
     Section* section = section_from_offset(address);
     if (section == nullptr) {
-      LIEF_ERR("Can't find a section associated with the virtual address 0x{:x}", address);
+      LIEF_ERR("No section found at virtual address {:#x}", address);
       return;
     }
     span<uint8_t> content = section->writable_content();
     const uint64_t offset = address - section->file_offset();

     if (offset + patch_value.size() > content.size()) {
-      LIEF_ERR("The patch value ({} bytes @0x{:x}) is out of bounds of the segment (limit: 0x{:x})",
-               patch_value.size(), offset, content.size());
+      LIEF_ERR(
+          "Patch value ({} bytes @{:#x}) exceeds segment bounds (limit: {:#x})",
+          patch_value.size(), offset, content.size()
+      );
       return;
     }
-    std::copy(std::begin(patch_value), std::end(patch_value),
-              content.data() + offset);
+    std::copy(patch_value.begin(), patch_value.end(), content.data() + offset);
     return;
   }

   // Find the segment associated with the virtual address
   Segment* segment_topatch = segment_from_virtual_address(address);
   if (segment_topatch == nullptr) {
-    LIEF_ERR("Can't find a segment associated with the virtual address 0x{:x}", address);
+    LIEF_ERR("No segment found at virtual address {:#x}", address);
     return;
   }
   const uint64_t offset = address - segment_topatch->virtual_address();
   span<uint8_t> content_ref = segment_topatch->writable_content();

   if (offset + patch_value.size() > content_ref.size()) {
-    LIEF_ERR("The patch value ({} bytes @0x{:x}) is out of bounds of the segment (limit: 0x{:x})",
+    LIEF_ERR("Patch value ({} bytes @{:#x}) exceeds segment bounds (limit: {:#x})",
              patch_value.size(), offset, content_ref.size());
     return;
   }
-  std::copy(std::begin(patch_value), std::end(patch_value),
-            content_ref.data() + offset);
+  std::copy(patch_value.begin(), patch_value.end(), content_ref.data() + offset);
 }


-void Binary::patch_address(uint64_t address, uint64_t patch_value, size_t size, LIEF::Binary::VA_TYPES) {
+void Binary::patch_address(uint64_t address, uint64_t patch_value, size_t size,
+                           LIEF::Binary::VA_TYPES) {
   if (size > sizeof(patch_value)) {
-    LIEF_ERR("The size of the patch value (0x{:x}) is larger that sizeof(uint64_t) which is not supported",
-             size);
+    LIEF_ERR("Patch size ({:#x}) exceeds sizeof(uint64_t)", size);
     return;
   }

@@ -1365,51 +1372,53 @@ void Binary::patch_address(uint64_t address, uint64_t patch_value, size_t size,
   if (header().file_type() == Header::FILE_TYPE::REL) {
     Section* section = section_from_offset(address);
     if (section == nullptr) {
-      LIEF_ERR("Can't find a section associated with the address 0x{:x}", address);
+      LIEF_ERR("No section found at address {:#x}", address);
       return;
     }

     span<uint8_t> content = section->writable_content();
     const uint64_t offset = address - section->file_offset();
     if (offset > content.size() || (offset + size) > content.size()) {
-      LIEF_ERR("The patch value ({} bytes @0x{:x}) is out of bounds of the segment (limit: 0x{:x})",
-               size, offset, content.size());
+      LIEF_ERR(
+          "Patch value ({} bytes @{:#x}) exceeds segment bounds (limit: {:#x})",
+          size, offset, content.size()
+      );
     }

     switch (size) {
       case sizeof(uint8_t):
-        {
-          auto X = static_cast<uint8_t>(patch_value);
-          memcpy(content.data() + offset, &X, sizeof(uint8_t));
-          break;
-        }
+      {
+        auto X = static_cast<uint8_t>(patch_value);
+        memcpy(content.data() + offset, &X, sizeof(uint8_t));
+        break;
+      }

       case sizeof(uint16_t):
-        {
-          auto X = static_cast<uint16_t>(patch_value);
-          memcpy(content.data() + offset, &X, sizeof(uint16_t));
-          break;
-        }
+      {
+        auto X = static_cast<uint16_t>(patch_value);
+        memcpy(content.data() + offset, &X, sizeof(uint16_t));
+        break;
+      }

       case sizeof(uint32_t):
-        {
-          auto X = static_cast<uint32_t>(patch_value);
-          memcpy(content.data() + offset, &X, sizeof(uint32_t));
-          break;
-        }
+      {
+        auto X = static_cast<uint32_t>(patch_value);
+        memcpy(content.data() + offset, &X, sizeof(uint32_t));
+        break;
+      }

       case sizeof(uint64_t):
-        {
-          auto X = static_cast<uint64_t>(patch_value);
-          memcpy(content.data() + offset, &X, sizeof(uint64_t));
-          break;
-        }
+      {
+        auto X = static_cast<uint64_t>(patch_value);
+        memcpy(content.data() + offset, &X, sizeof(uint64_t));
+        break;
+      }

       default:
-        {
-          LIEF_ERR("The provided size ({}) does not match the size of an integer", size);
-          return;
-        }
+      {
+        LIEF_ERR("Provided size ({}) does not match an integer size", size);
+        return;
+      }
     }

     return;
@@ -1418,64 +1427,65 @@ void Binary::patch_address(uint64_t address, uint64_t patch_value, size_t size,

   Segment* segment_topatch = segment_from_virtual_address(address);
   if (segment_topatch == nullptr) {
-    LIEF_ERR("Can't find a segment associated with the virtual address 0x{:x}", address);
+    LIEF_ERR("No segment found at virtual address {:#x}", address);
     return;
   }

   const uint64_t offset = address - segment_topatch->virtual_address();
   span<uint8_t> content = segment_topatch->writable_content();
   if (offset > content.size() || (offset + size) > content.size()) {
-    LIEF_ERR("The patch value ({} bytes @0x{:x}) is out of bounds of the segment (limit: 0x{:x})",
+    LIEF_ERR("Patch value ({} bytes @{:#x}) exceeds segment bounds (limit: {:#x})",
              size, offset, content.size());
   }
   switch (size) {
     case sizeof(uint8_t):
-      {
-        const auto X = static_cast<uint8_t>(patch_value);
-        memcpy(content.data() + offset, &X, sizeof(uint8_t));
-        break;
-      }
+    {
+      const auto X = static_cast<uint8_t>(patch_value);
+      memcpy(content.data() + offset, &X, sizeof(uint8_t));
+      break;
+    }

     case sizeof(uint16_t):
-      {
-        const auto X = static_cast<uint16_t>(patch_value);
-        memcpy(content.data() + offset, &X, sizeof(uint16_t));
-        break;
-      }
+    {
+      const auto X = static_cast<uint16_t>(patch_value);
+      memcpy(content.data() + offset, &X, sizeof(uint16_t));
+      break;
+    }

     case sizeof(uint32_t):
-      {
-        const auto X = static_cast<uint32_t>(patch_value);
-        memcpy(content.data() + offset, &X, sizeof(uint32_t));
-        break;
-      }
+    {
+      const auto X = static_cast<uint32_t>(patch_value);
+      memcpy(content.data() + offset, &X, sizeof(uint32_t));
+      break;
+    }

     case sizeof(uint64_t):
-      {
-        const auto X = static_cast<uint64_t>(patch_value);
-        memcpy(content.data() + offset, &X, sizeof(uint64_t));
-        break;
-      }
+    {
+      const auto X = static_cast<uint64_t>(patch_value);
+      memcpy(content.data() + offset, &X, sizeof(uint64_t));
+      break;
+    }

     default:
-      {
-        LIEF_ERR("The provided size ({}) does not match the size of an integer", size);
-        return;
-      }
+    {
+      LIEF_ERR("Provided size ({}) does not match an integer size", size);
+      return;
+    }
   }
 }


 void Binary::patch_pltgot(const Symbol& symbol, uint64_t address) {
   it_pltgot_relocations pltgot_relocations = this->pltgot_relocations();
-  const auto it_relocation = std::find_if(std::begin(pltgot_relocations), std::end(pltgot_relocations),
-      [&symbol] (const Relocation& relocation) {
-        return relocation.has_symbol() && relocation.symbol() == &symbol;
-      });
-
-  if (it_relocation == std::end(pltgot_relocations)) {
-    LIEF_ERR("Unable to find the relocation associated with the symbol {}",
-             symbol.name());
+  const auto it_relocation =
+      std::find_if(pltgot_relocations.begin(), pltgot_relocations.end(),
+                   [&symbol](const Relocation& relocation) {
+                     return relocation.has_symbol() &&
+                            relocation.symbol() == &symbol;
+                   });
+
+  if (it_relocation == pltgot_relocations.end()) {
+    LIEF_ERR("Relocation not found for symbol {}", symbol.name());
     return;
   }

@@ -1484,51 +1494,55 @@ void Binary::patch_pltgot(const Symbol& symbol, uint64_t address) {
 }

 void Binary::patch_pltgot(const std::string& symbol_name, uint64_t address) {
-  std::for_each(std::begin(dynamic_symbols_), std::end(dynamic_symbols_),
-      [&symbol_name, address, this] (const std::unique_ptr<Symbol>& s) {
-        if (s->name() == symbol_name) {
-          patch_pltgot(*s, address);
-        }
-      });
+  std::for_each(dynamic_symbols_.begin(), dynamic_symbols_.end(),
+                [&symbol_name, address, this](const std::unique_ptr<Symbol>& s) {
+                  if (s->name() == symbol_name) {
+                    patch_pltgot(*s, address);
+                  }
+                });
 }

 const Segment* Binary::segment_from_virtual_address(uint64_t address) const {
-  const auto it_segment = std::find_if(segments_.cbegin(), segments_.cend(),
-      [address] (const std::unique_ptr<Segment>& segment) {
-        return segment->virtual_address() <= address &&
-               address < (segment->virtual_address() + segment->virtual_size());
-      });
+  const auto it_segment =
+      std::find_if(segments_.cbegin(), segments_.cend(),
+                   [address](const std::unique_ptr<Segment>& segment) {
+                     return segment->virtual_address() <= address &&
+                            address < (segment->virtual_address() +
+                                       segment->virtual_size());
+                   });

   if (it_segment == segments_.cend()) {
     return nullptr;
   }

   return it_segment->get();
-
 }

-const Segment* Binary::segment_from_virtual_address(Segment::TYPE type, uint64_t address) const {
-  const auto it_segment = std::find_if(segments_.cbegin(), segments_.cend(),
-      [address, type] (const std::unique_ptr<Segment>& segment) {
-        return segment->type() == type &&
-               segment->virtual_address() <= address &&
+const Segment* Binary::segment_from_virtual_address(Segment::TYPE type,
+                                                    uint64_t address) const {
+  const auto it_segment = std::find_if(
+      segments_.cbegin(), segments_.cend(),
+      [address, type](const std::unique_ptr<Segment>& segment) {
+        return segment->type() == type && segment->virtual_address() <= address &&
                address < (segment->virtual_address() + segment->virtual_size());
-      });
+      }
+  );

   if (it_segment == segments_.cend()) {
     return nullptr;
   }

   return it_segment->get();
-
 }

 const Segment* Binary::segment_from_offset(uint64_t offset) const {
-  const auto it_segment = std::find_if(segments_.cbegin(), segments_.cend(),
-      [&offset] (const std::unique_ptr<Segment>& segment) {
-        return segment->file_offset() <= offset &&
-               offset < (segment->file_offset() + segment->physical_size());
-      });
+  const auto it_segment =
+      std::find_if(segments_.cbegin(), segments_.cend(),
+                   [&offset](const std::unique_ptr<Segment>& segment) {
+                     return segment->file_offset() <= offset &&
+                            offset < (segment->file_offset() +
+                                      segment->physical_size());
+                   });

   if (it_segment == segments_.cend()) {
     return nullptr;
@@ -1546,22 +1560,24 @@ void Binary::remove_section(const std::string& name, bool clear) {
 }

 bool Binary::has_section_with_offset(uint64_t offset) const {
-  const auto it_section = std::find_if(sections_.cbegin(), sections_.cend(),
-      [offset] (const std::unique_ptr<Section>& section) {
-        return section->offset() <= offset &&
-               offset < (section->offset() + section->size());
-      });
+  const auto it_section =
+      std::find_if(sections_.cbegin(), sections_.cend(),
+                   [offset](const std::unique_ptr<Section>& section) {
+                     return section->offset() <= offset &&
+                            offset < (section->offset() + section->size());
+                   });

   return it_section != sections_.cend();
 }

 bool Binary::has_section_with_va(uint64_t va) const {
-  const auto it_section = std::find_if(sections_.cbegin(), sections_.cend(),
-      [va] (const std::unique_ptr<Section>& section) {
-        return section->virtual_address() != 0 &&
-               section->virtual_address() <= va &&
-               va < (section->virtual_address() + section->size());
-      });
+  const auto it_section =
+      std::find_if(sections_.cbegin(), sections_.cend(),
+                   [va](const std::unique_ptr<Section>& section) {
+                     return section->virtual_address() != 0 &&
+                            section->virtual_address() <= va &&
+                            va < (section->virtual_address() + section->size());
+                   });
   return it_section != sections_.cend();
 }

@@ -1580,7 +1596,8 @@ Symbol& Binary::add_symtab_symbol(const Symbol& symbol) {
 }


-Symbol& Binary::add_dynamic_symbol(const Symbol& symbol, const SymbolVersion* version) {
+Symbol& Binary::add_dynamic_symbol(const Symbol& symbol,
+                                   const SymbolVersion* version) {
   auto sym = std::make_unique<Symbol>(symbol);
   std::unique_ptr<SymbolVersion> symver;
   if (version == nullptr) {
@@ -1591,46 +1608,52 @@ Symbol& Binary::add_dynamic_symbol(const Symbol& symbol, const SymbolVersion* ve

   sym->symbol_version_ = symver.get();

-  dynamic_symbols_.push_back(std::move(sym));
   symbol_version_table_.push_back(std::move(symver));
-  return *dynamic_symbols_.back();
-}
-
-result<uint64_t> Binary::virtual_address_to_offset(uint64_t virtual_address) const {
-  const auto it_segment = std::find_if(std::begin(segments_), std::end(segments_),
-      [virtual_address] (const std::unique_ptr<Segment>& segment) {
-        return segment->is_load() &&
-               segment->virtual_address() <= virtual_address &&
-               virtual_address < (segment->virtual_address() + segment->virtual_size());
-      });
-
-  if (it_segment == std::end(segments_)) {
-    LIEF_DEBUG("Address: 0x{:x}", virtual_address);
+  return **dynamic_symbols_.insert(dynamic_symbols_.end(), std::move(sym));
+}
+
+result<uint64_t>
+    Binary::virtual_address_to_offset(uint64_t virtual_address) const {
+  const auto it_segment =
+      std::find_if(segments_.begin(), segments_.end(),
+                   [virtual_address](const std::unique_ptr<Segment>& segment) {
+                     return segment->is_load() &&
+                            segment->virtual_address() <= virtual_address &&
+                            virtual_address < (segment->virtual_address() +
+                                               segment->virtual_size());
+                   });
+
+  if (it_segment == segments_.end()) {
+    LIEF_DEBUG("Address: {:#x}", virtual_address);
     return make_error_code(lief_errors::conversion_error);
   }

-  uint64_t base_address = (*it_segment)->virtual_address() - (*it_segment)->file_offset();
-  uint64_t offset       = virtual_address - base_address;
+  uint64_t base_address =
+      (*it_segment)->virtual_address() - (*it_segment)->file_offset();
+  uint64_t offset = virtual_address - base_address;

   return offset;
 }

-result<uint64_t> Binary::offset_to_virtual_address(uint64_t offset, uint64_t slide) const {
-  const auto it_segment = std::find_if(std::begin(segments_), std::end(segments_),
-      [offset] (const std::unique_ptr<Segment>& segment) {
-        return segment->is_load() &&
-               segment->file_offset() <= offset &&
+result<uint64_t> Binary::offset_to_virtual_address(uint64_t offset,
+                                                   uint64_t slide) const {
+  const auto it_segment = std::find_if(
+      segments_.begin(), segments_.end(),
+      [offset](const std::unique_ptr<Segment>& segment) {
+        return segment->is_load() && segment->file_offset() <= offset &&
                offset < (segment->file_offset() + segment->physical_size());
-      });
+      }
+  );

-  if (it_segment == std::end(segments_)) {
+  if (it_segment == segments_.end()) {
     if (slide > 0) {
       return slide + offset;
     }
     return imagebase() + offset;
   }

-  const uint64_t base_address = (*it_segment)->virtual_address() - (*it_segment)->file_offset();
+  const uint64_t base_address =
+      (*it_segment)->virtual_address() - (*it_segment)->file_offset();
   if (slide > 0) {
     return (base_address - imagebase()) + slide + offset;
   }
@@ -1639,12 +1662,12 @@ result<uint64_t> Binary::offset_to_virtual_address(uint64_t offset, uint64_t sli


 bool Binary::has_interpreter() const {
-  const auto it_segment_interp = std::find_if(
-      std::begin(segments_), std::end(segments_),
-      [] (const std::unique_ptr<Segment>& segment) {
-        return segment->is_interpreter();
-      });
-  return it_segment_interp != std::end(segments_) && !interpreter_.empty();
+  const auto it_segment_interp =
+      std::find_if(segments_.begin(), segments_.end(),
+                   [](const std::unique_ptr<Segment>& segment) {
+                     return segment->is_interpreter();
+                   });
+  return it_segment_interp != segments_.end() && !interpreter_.empty();
 }

 void Binary::write(const std::string& filename, const Builder::config_t& config) {
@@ -1659,15 +1682,17 @@ void Binary::write(std::ostream& os, const Builder::config_t& config) {
   builder.write(os);
 }

-const Section* Binary::section_from_offset(uint64_t offset, bool skip_nobits) const {
-  const auto it_section = std::find_if(sections_.cbegin(), sections_.cend(),
-      [offset, skip_nobits] (const std::unique_ptr<Section>& section) {
-        if (skip_nobits && section->type() == Section::TYPE::NOBITS) {
-          return false;
-        }
-        return section->offset() <= offset &&
-               offset < (section->offset() + section->size());
-      });
+const Section* Binary::section_from_offset(uint64_t offset,
+                                           bool skip_nobits) const {
+  const auto it_section =
+      std::find_if(sections_.cbegin(), sections_.cend(),
+                   [offset, skip_nobits](const std::unique_ptr<Section>& section) {
+                     if (skip_nobits && section->type() == Section::TYPE::NOBITS) {
+                       return false;
+                     }
+                     return section->offset() <= offset &&
+                            offset < (section->offset() + section->size());
+                   });

   if (it_section == sections_.cend()) {
     return nullptr;
@@ -1676,16 +1701,19 @@ const Section* Binary::section_from_offset(uint64_t offset, bool skip_nobits) co
   return it_section->get();
 }

-const Section* Binary::section_from_virtual_address(uint64_t address, bool skip_nobits) const {
-  const auto it_section = std::find_if(sections_.cbegin(), sections_.cend(),
-      [address, skip_nobits] (const std::unique_ptr<Section>& section) {
+const Section* Binary::section_from_virtual_address(uint64_t address,
+                                                    bool skip_nobits) const {
+  const auto it_section = std::find_if(
+      sections_.cbegin(), sections_.cend(),
+      [address, skip_nobits](const std::unique_ptr<Section>& section) {
         if (skip_nobits && section->type() == Section::TYPE::NOBITS) {
           return false;
         }
         return section->virtual_address() != 0 &&
                section->virtual_address() <= address &&
                address < (section->virtual_address() + section->size());
-      });
+      }
+  );

   if (it_section == sections_.cend()) {
     return nullptr;
@@ -1695,9 +1723,9 @@ const Section* Binary::section_from_virtual_address(uint64_t address, bool skip_
 }

 span<const uint8_t>
-Binary::get_content_from_virtual_address(uint64_t virtual_address,
-                                         uint64_t size, Binary::VA_TYPES) const
-{
+    Binary::get_content_from_virtual_address(uint64_t virtual_address,
+                                             uint64_t size,
+                                             Binary::VA_TYPES) const {
   const Segment* segment = segment_from_virtual_address(virtual_address);
   if (segment == nullptr) {
     return {};
@@ -1720,26 +1748,26 @@ Binary::get_content_from_virtual_address(uint64_t virtual_address,


 const DynamicEntry* Binary::get(DynamicEntry::TAG tag) const {
-  const auto it_entry = std::find_if(
-      std::begin(dynamic_entries_), std::end(dynamic_entries_),
-      [tag] (const std::unique_ptr<DynamicEntry>& entry) {
-        return entry->tag() == tag;
-      });
+  const auto it_entry =
+      std::find_if(dynamic_entries_.begin(), dynamic_entries_.end(),
+                   [tag](const std::unique_ptr<DynamicEntry>& entry) {
+                     return entry->tag() == tag;
+                   });

-  if (it_entry == std::end(dynamic_entries_)) {
+  if (it_entry == dynamic_entries_.end()) {
     return nullptr;
   }
   return it_entry->get();
 }

 const Segment* Binary::get(Segment::TYPE type) const {
-  const auto it_segment = std::find_if(
-      std::begin(segments_), std::end(segments_),
-      [type] (const std::unique_ptr<Segment>& segment) {
-        return segment->type() == type;
-      });
+  const auto it_segment =
+      std::find_if(segments_.begin(), segments_.end(),
+                   [type](const std::unique_ptr<Segment>& segment) {
+                     return segment->type() == type;
+                   });

-  if (it_segment == std::end(segments_)) {
+  if (it_segment == segments_.end()) {
     return nullptr;
   }

@@ -1747,12 +1775,11 @@ const Segment* Binary::get(Segment::TYPE type) const {
 }

 const Note* Binary::get(Note::TYPE type) const {
-  const auto it_note = std::find_if(
-      std::begin(notes_), std::end(notes_),
-      [type] (const std::unique_ptr<Note>& note) {
-        return note->type() == type;
-      });
-  if (it_note == std::end(notes_)) {
+  const auto it_note = std::find_if(notes_.begin(), notes_.end(),
+                                    [type](const std::unique_ptr<Note>& note) {
+                                      return note->type() == type;
+                                    });
+  if (it_note == notes_.end()) {
     return nullptr;
   }

@@ -1760,13 +1787,13 @@ const Note* Binary::get(Note::TYPE type) const {
 }

 const Section* Binary::get(Section::TYPE type) const {
-  const auto it_section = std::find_if(
-      std::begin(sections_), std::end(sections_),
-      [type] (const std::unique_ptr<Section>& section) {
-        return section->type() == type;
-      });
+  const auto it_section =
+      std::find_if(sections_.begin(), sections_.end(),
+                   [type](const std::unique_ptr<Section>& section) {
+                     return section->type() == type;
+                   });

-  if (it_section == std::end(sections_)) {
+  if (it_section == sections_.end()) {
     return nullptr;
   }

@@ -1780,30 +1807,33 @@ void Binary::permute_dynamic_symbols(const std::vector<size_t>& permutation) {
       continue;
     }

-    if (dynamic_symbols_[i]->has_version() && dynamic_symbols_[permutation[i]]->has_version()) {
+    if (dynamic_symbols_[i]->has_version() &&
+        dynamic_symbols_[permutation[i]]->has_version())
+    {
       std::swap(symbol_version_table_[i], symbol_version_table_[permutation[i]]);
       std::swap(dynamic_symbols_[i], dynamic_symbols_[permutation[i]]);
       done.insert(permutation[i]);
       done.insert(i);
-    } else if (!dynamic_symbols_[i]->has_version() && !dynamic_symbols_[permutation[i]]->has_version()) {
+    } else if (!dynamic_symbols_[i]->has_version() &&
+               !dynamic_symbols_[permutation[i]]->has_version())
+    {
       std::swap(dynamic_symbols_[i], dynamic_symbols_[permutation[i]]);
       done.insert(permutation[i]);
       done.insert(i);
     } else {
-      LIEF_ERR("Can't apply permutation at index #{:d}", i);
+      LIEF_ERR("Failed to apply permutation at index #{:d}", i);
     }
-
   }
 }

 bool Binary::has_notes() const {
-  const auto it_segment_note = std::find_if(
-      std::begin(segments_), std::end(segments_),
-      [] (const std::unique_ptr<Segment>& segment) {
-        return segment->type() == Segment::TYPE::NOTE;
-      });
+  const auto it_segment_note =
+      std::find_if(segments_.begin(), segments_.end(),
+                   [](const std::unique_ptr<Segment>& segment) {
+                     return segment->type() == Segment::TYPE::NOTE;
+                   });

-  return it_segment_note != std::end(segments_) && notes().size() > 0;
+  return it_segment_note != segments_.end() && notes().size() > 0;
 }

 void Binary::accept(LIEF::Visitor& visitor) const {
@@ -1829,7 +1859,7 @@ void Binary::shift_sections(uint64_t from, uint64_t shift) {

 void Binary::shift_segments(uint64_t from, uint64_t shift) {

-  LIEF_DEBUG("Shift segments by 0x{:x} from 0x{:x}", shift, from);
+  LIEF_DEBUG("Shifting segments by {:#x} from {:#x}", shift, from);

   for (std::unique_ptr<Segment>& segment : segments_) {
     if (segment->file_offset() >= from) {
@@ -1842,67 +1872,246 @@ void Binary::shift_segments(uint64_t from, uint64_t shift) {
   }
 }

-void Binary::shift_dynamic_entries(uint64_t from, uint64_t shift) {
-  LIEF_DEBUG("Shift dynamic entries by 0x{:x} from 0x{:x}", shift, from);
+static void do_dynamic_entry_shift(uint64_t from, uint64_t shift,
+                                   DynamicEntry& entry,
+                                   Header::CLASS binary_type) {
+  switch (entry.tag()) {
+    // Address/Offset types
+    case DynamicEntry::TAG::PLTGOT:
+    case DynamicEntry::TAG::HASH:
+    case DynamicEntry::TAG::STRTAB:
+    case DynamicEntry::TAG::SYMTAB:
+    case DynamicEntry::TAG::RELA:
+    case DynamicEntry::TAG::INIT:
+    case DynamicEntry::TAG::FINI:
+    case DynamicEntry::TAG::REL:
+    case DynamicEntry::TAG::JMPREL:
+    case DynamicEntry::TAG::SYMTAB_SHNDX:
+    case DynamicEntry::TAG::RELR:
+    case DynamicEntry::TAG::GNU_HASH:
+    case DynamicEntry::TAG::TLSDESC_PLT:
+    case DynamicEntry::TAG::TLSDESC_GOT:
+    case DynamicEntry::TAG::VERSYM:
+    case DynamicEntry::TAG::VERDEF:
+    case DynamicEntry::TAG::VERNEED:
+    case DynamicEntry::TAG::ANDROID_REL_OFFSET:
+    case DynamicEntry::TAG::ANDROID_REL:
+    case DynamicEntry::TAG::ANDROID_RELA:
+    case DynamicEntry::TAG::ANDROID_RELR:
+    case DynamicEntry::TAG::MIPS_MSYM:
+    case DynamicEntry::TAG::MIPS_CONFLICT:
+    case DynamicEntry::TAG::MIPS_LIBLIST:
+    case DynamicEntry::TAG::MIPS_SYMBOL_LIB:
+    case DynamicEntry::TAG::MIPS_OPTIONS:
+    case DynamicEntry::TAG::MIPS_INTERFACE:
+    case DynamicEntry::TAG::MIPS_AUX_DYNAMIC:
+    case DynamicEntry::TAG::MIPS_PLTGOT:
+    // Absolute address of the runtime loader map, used for debugging.
+    case DynamicEntry::TAG::MIPS_RLD_MAP:
+    {
+      if (entry.value() >= from) {
+        entry.value(entry.value() + shift);
+      }
+      return;
+    }

-  for (std::unique_ptr<DynamicEntry>& entry : dynamic_entries_) {
-    LIEF_DEBUG("[BEFORE] {}", to_string(*entry));
-    switch (entry->tag()) {
-      case DynamicEntry::TAG::PLTGOT:
-      case DynamicEntry::TAG::HASH:
-      case DynamicEntry::TAG::GNU_HASH:
-      case DynamicEntry::TAG::STRTAB:
-      case DynamicEntry::TAG::SYMTAB:
-      case DynamicEntry::TAG::RELA:
-      case DynamicEntry::TAG::RELR:
-      case DynamicEntry::TAG::REL:
-      case DynamicEntry::TAG::JMPREL:
-      case DynamicEntry::TAG::INIT:
-      case DynamicEntry::TAG::FINI:
-      case DynamicEntry::TAG::VERSYM:
-      case DynamicEntry::TAG::VERDEF:
-      case DynamicEntry::TAG::VERNEED:
-        {
-          if (entry->value() >= from) {
-            entry->value(entry->value() + shift);
+    // Array of address/offset types
+    case DynamicEntry::TAG::INIT_ARRAY:
+    case DynamicEntry::TAG::FINI_ARRAY:
+    case DynamicEntry::TAG::PREINIT_ARRAY:
+    {
+      DynamicEntryArray::array_t& array = entry.as<DynamicEntryArray>()->array();
+      for (uint64_t& address : array) {
+        if (address >= from) {
+          if ((binary_type == Header::CLASS::ELF32 &&
+               static_cast<int32_t>(address) > 0) ||
+              (binary_type == Header::CLASS::ELF64 &&
+               static_cast<int64_t>(address) > 0))
+          {
+            address += shift;
           }
-          break;
         }
+      }

-      case DynamicEntry::TAG::INIT_ARRAY:
-      case DynamicEntry::TAG::FINI_ARRAY:
-      case DynamicEntry::TAG::PREINIT_ARRAY:
-        {
-          DynamicEntryArray::array_t& array = entry->as<DynamicEntryArray>()->array();
-          for (uint64_t& address : array) {
-            if (address >= from) {
-              if ((type() == Header::CLASS::ELF32 && static_cast<int32_t>(address) > 0) ||
-                  (type() == Header::CLASS::ELF64 && static_cast<int64_t>(address) > 0))
-              {
-                address += shift;
-              }
-            }
-          }
+      if (entry.value() >= from) {
+        entry.value(entry.value() + shift);
+      }
+      return;
+    }

-          if (entry->value() >= from) {
-            entry->value(entry->value() + shift);
-          }
-          break;
-        }
+    // Plain/No value types
+    case DynamicEntry::TAG::UNKNOWN:
+    case DynamicEntry::TAG::DT_NULL_:
+    case DynamicEntry::TAG::NEEDED:
+    case DynamicEntry::TAG::PLTRELSZ:
+    case DynamicEntry::TAG::RELASZ:
+    case DynamicEntry::TAG::RELAENT:
+    case DynamicEntry::TAG::STRSZ:
+    case DynamicEntry::TAG::SYMENT:
+    case DynamicEntry::TAG::SONAME:
+    case DynamicEntry::TAG::RPATH:
+    case DynamicEntry::TAG::SYMBOLIC:
+    case DynamicEntry::TAG::RELSZ:
+    case DynamicEntry::TAG::RELENT:
+    case DynamicEntry::TAG::PLTREL:
+    case DynamicEntry::TAG::DEBUG_TAG:
+    case DynamicEntry::TAG::TEXTREL:
+    case DynamicEntry::TAG::BIND_NOW:
+    case DynamicEntry::TAG::INIT_ARRAYSZ:
+    case DynamicEntry::TAG::FINI_ARRAYSZ:
+    case DynamicEntry::TAG::RUNPATH:
+    case DynamicEntry::TAG::FLAGS:
+    case DynamicEntry::TAG::PREINIT_ARRAYSZ:
+    case DynamicEntry::TAG::RELRSZ:
+    case DynamicEntry::TAG::RELRENT:
+    case DynamicEntry::TAG::RELACOUNT:
+    case DynamicEntry::TAG::RELCOUNT:
+    case DynamicEntry::TAG::FLAGS_1:
+    case DynamicEntry::TAG::VERDEFNUM:
+    case DynamicEntry::TAG::VERNEEDNUM:
+    case DynamicEntry::TAG::AUXILIARY:
+    case DynamicEntry::TAG::FILTER:
+    case DynamicEntry::TAG::ANDROID_REL_SIZE:
+    case DynamicEntry::TAG::ANDROID_RELSZ:
+    case DynamicEntry::TAG::ANDROID_RELASZ:
+    case DynamicEntry::TAG::ANDROID_RELRSZ:
+    case DynamicEntry::TAG::ANDROID_RELRENT:
+    case DynamicEntry::TAG::ANDROID_RELRCOUNT:
+    case DynamicEntry::TAG::MIPS_RLD_VERSION:
+    case DynamicEntry::TAG::MIPS_TIME_STAMP:
+    case DynamicEntry::TAG::MIPS_ICHECKSUM:
+    case DynamicEntry::TAG::MIPS_IVERSION:
+    case DynamicEntry::TAG::MIPS_FLAGS:
+    case DynamicEntry::TAG::MIPS_BASE_ADDRESS:
+    case DynamicEntry::TAG::MIPS_LOCAL_GOTNO:
+    case DynamicEntry::TAG::MIPS_CONFLICTNO:
+    case DynamicEntry::TAG::MIPS_LIBLISTNO:
+    case DynamicEntry::TAG::MIPS_SYMTABNO:
+    case DynamicEntry::TAG::MIPS_UNREFEXTNO:
+    case DynamicEntry::TAG::MIPS_GOTSYM:
+    case DynamicEntry::TAG::MIPS_HIPAGENO:
+    case DynamicEntry::TAG::MIPS_DELTA_CLASS_NO:
+    case DynamicEntry::TAG::MIPS_DELTA_INSTANCE_NO:
+    case DynamicEntry::TAG::MIPS_DELTA_RELOC_NO:
+    case DynamicEntry::TAG::MIPS_DELTA_SYM_NO:
+    case DynamicEntry::TAG::MIPS_DELTA_CLASSSYM_NO:
+    case DynamicEntry::TAG::MIPS_CXX_FLAGS:
+    case DynamicEntry::TAG::MIPS_LOCALPAGE_GOTIDX:
+    case DynamicEntry::TAG::MIPS_LOCAL_GOTIDX:
+    case DynamicEntry::TAG::MIPS_HIDDEN_GOTIDX:
+    case DynamicEntry::TAG::MIPS_PROTECTED_GOTIDX:
+    case DynamicEntry::TAG::MIPS_INTERFACE_SIZE:
+    case DynamicEntry::TAG::MIPS_RLD_TEXT_RESOLVE_ADDR:
+    case DynamicEntry::TAG::MIPS_PERF_SUFFIX:
+    case DynamicEntry::TAG::MIPS_COMPACT_SIZE:
+    case DynamicEntry::TAG::MIPS_GP_VALUE:
+    {
+      // Explicitly annotate the entry types that don't need shifting. We want to
+      // warn if we miss something.
+      return;
+    }

-      default:
-        {
-          //LIEF_DEBUG("{} not supported", to_string(entry->tag()));
-        }
+    // DT_MIPS_RLD_MAP_REL holds an offset **relative** to the address of its own
+    // entry
+    case DynamicEntry::TAG::MIPS_RLD_MAP_REL:
+
+    // Not yet documented types
+    // If a type is here despite having a description then there is not enough
+    // clarity about whether we affect it.
+    // TODO: These should be reduced to zero by moving them to the correct
+    // category.
+    case DynamicEntry::TAG::MIPS_DELTA_CLASS: /**< Delta C++ class definition. */
+    case DynamicEntry::TAG::MIPS_DELTA_INSTANCE: /**< Delta C++ class instances. */
+    case DynamicEntry::TAG::MIPS_DELTA_RELOC:    /**< Delta relocations. */
+    case DynamicEntry::TAG::MIPS_DELTA_SYM:      /**< Delta symbols that Delta
+                                                    relocations refer to. */
+    case DynamicEntry::TAG::MIPS_DELTA_CLASSSYM: /**< Delta symbols that hold class
+                                                    declarations. */
+    case DynamicEntry::TAG::MIPS_PIXIE_INIT: /**< Pixie information (??? [sic]). */
+    case DynamicEntry::TAG::MIPS_DYNSTR_ALIGN: /**< Unknown. */
+    case DynamicEntry::TAG::MIPS_RWPLT:
+    case DynamicEntry::TAG::MIPS_XHASH:
+    case DynamicEntry::TAG::AARCH64_BTI_PLT:
+    case DynamicEntry::TAG::AARCH64_PAC_PLT:
+    case DynamicEntry::TAG::AARCH64_VARIANT_PCS:
+    case DynamicEntry::TAG::AARCH64_MEMTAG_MODE:
+    case DynamicEntry::TAG::AARCH64_MEMTAG_HEAP:
+    case DynamicEntry::TAG::AARCH64_MEMTAG_STACK:
+    case DynamicEntry::TAG::AARCH64_MEMTAG_GLOBALS:
+    case DynamicEntry::TAG::AARCH64_MEMTAG_GLOBALSSZ:
+    case DynamicEntry::TAG::HEXAGON_SYMSZ:
+    case DynamicEntry::TAG::HEXAGON_VER:
+    case DynamicEntry::TAG::HEXAGON_PLT:
+    case DynamicEntry::TAG::PPC_GOT:
+    case DynamicEntry::TAG::PPC_OPT:
+    case DynamicEntry::TAG::PPC64_GLINK:
+    case DynamicEntry::TAG::PPC64_OPT:
+    case DynamicEntry::TAG::RISCV_VARIANT_CC:
+    case DynamicEntry::TAG::X86_64_PLT:
+    case DynamicEntry::TAG::X86_64_PLTSZ:
+    case DynamicEntry::TAG::X86_64_PLTENT:
+    case DynamicEntry::TAG::IA_64_PLT_RESERVE:
+    case DynamicEntry::TAG::IA_64_VMS_SUBTYPE:
+    case DynamicEntry::TAG::IA_64_VMS_IMGIOCNT:
+    case DynamicEntry::TAG::IA_64_VMS_LNKFLAGS:
+    case DynamicEntry::TAG::IA_64_VMS_VIR_MEM_BLK_SIZ:
+    case DynamicEntry::TAG::IA_64_VMS_IDENT:
+    case DynamicEntry::TAG::IA_64_VMS_NEEDED_IDENT:
+    case DynamicEntry::TAG::IA_64_VMS_IMG_RELA_CNT:
+    case DynamicEntry::TAG::IA_64_VMS_SEG_RELA_CNT:
+    case DynamicEntry::TAG::IA_64_VMS_FIXUP_RELA_CNT:
+    case DynamicEntry::TAG::IA_64_VMS_FIXUP_NEEDED:
+    case DynamicEntry::TAG::IA_64_VMS_SYMVEC_CNT:
+    case DynamicEntry::TAG::IA_64_VMS_XLATED:
+    case DynamicEntry::TAG::IA_64_VMS_STACKSIZE:
+    case DynamicEntry::TAG::IA_64_VMS_UNWINDSZ:
+    case DynamicEntry::TAG::IA_64_VMS_UNWIND_CODSEG:
+    case DynamicEntry::TAG::IA_64_VMS_UNWIND_INFOSEG:
+    case DynamicEntry::TAG::IA_64_VMS_LINKTIME:
+    case DynamicEntry::TAG::IA_64_VMS_SEG_NO:
+    case DynamicEntry::TAG::IA_64_VMS_SYMVEC_OFFSET:
+    case DynamicEntry::TAG::IA_64_VMS_SYMVEC_SEG:
+    case DynamicEntry::TAG::IA_64_VMS_UNWIND_OFFSET:
+    case DynamicEntry::TAG::IA_64_VMS_UNWIND_SEG:
+    case DynamicEntry::TAG::IA_64_VMS_STRTAB_OFFSET:
+    case DynamicEntry::TAG::IA_64_VMS_SYSVER_OFFSET:
+    case DynamicEntry::TAG::IA_64_VMS_IMG_RELA_OFF:
+    case DynamicEntry::TAG::IA_64_VMS_SEG_RELA_OFF:
+    case DynamicEntry::TAG::IA_64_VMS_FIXUP_RELA_OFF:
+    case DynamicEntry::TAG::IA_64_VMS_PLTGOT_OFFSET:
+    case DynamicEntry::TAG::IA_64_VMS_PLTGOT_SEG:
+    case DynamicEntry::TAG::IA_64_VMS_FPMODE:
+    {
+      LIEF_WARN("Shifting behavior of dynamic entry {} not defined",
+                to_string(entry.tag()));
+      return;
     }
+  }
+
+  // The lack of a 'default' option in the above cases should also warn at
+  // build-time if this is reachable with a known enum value.
+  LIEF_WARN("Shifting behavior of dynamic entry {} not defined",
+            to_string(entry.tag()));
+}
+
+void Binary::shift_dynamic_entries(uint64_t from, uint64_t shift) {
+  LIEF_DEBUG("Shifting dynamic entries by {:#x} from {:#x}", shift, from);
+
+  for (std::unique_ptr<DynamicEntry>& entry : dynamic_entries_) {
+    LIEF_DEBUG("[BEFORE] {}", to_string(*entry));
+    do_dynamic_entry_shift(from, shift, *entry, type());
     LIEF_DEBUG("[AFTER ] {}", to_string(*entry));
   }
 }


 void Binary::shift_symbols(uint64_t from, uint64_t shift) {
-  LIEF_DEBUG("Shift symbols by 0x{:x} from 0x{:x}", shift, from);
+  LIEF_DEBUG("Shifting symbols by {:#x} from {:#x}", shift, from);
   for (Symbol& symbol : symbols()) {
+    if (symbol.type() == Symbol::TYPE::TLS) {
+      continue;
+    }
+
     if (symbol.value() >= from) {
       LIEF_DEBUG("[BEFORE] {}", to_string(symbol));
       symbol.value(symbol.value() + shift);
@@ -1913,79 +2122,75 @@ void Binary::shift_symbols(uint64_t from, uint64_t shift) {

 void Binary::shift_relocations(uint64_t from, uint64_t shift) {
   const ARCH arch = header().machine_type();
-  LIEF_DEBUG("Shift relocations for {} by 0x{:x} from 0x{:x}", to_string(arch), shift, from);
+  LIEF_DEBUG("Shift relocations for {} by {:#x} from {:#x}", to_string(arch),
+             shift, from);

-  switch(arch) {
-    case ARCH::ARM:
-      patch_relocations<ARCH::ARM>(from, shift); return;
+  switch (arch) {
+    case ARCH::ARM: patch_relocations<ARCH::ARM>(from, shift); return;

-    case ARCH::AARCH64:
-      patch_relocations<ARCH::AARCH64>(from, shift); return;
+    case ARCH::AARCH64: patch_relocations<ARCH::AARCH64>(from, shift); return;

-    case ARCH::X86_64:
-      patch_relocations<ARCH::X86_64>(from, shift); return;
+    case ARCH::X86_64: patch_relocations<ARCH::X86_64>(from, shift); return;

-    case ARCH::I386:
-      patch_relocations<ARCH::I386>(from, shift); return;
+    case ARCH::I386: patch_relocations<ARCH::I386>(from, shift); return;

-    case ARCH::PPC:
-      patch_relocations<ARCH::PPC>(from, shift); return;
+    case ARCH::PPC: patch_relocations<ARCH::PPC>(from, shift); return;

-    case ARCH::PPC64:
-      patch_relocations<ARCH::PPC64>(from, shift); return;
+    case ARCH::PPC64: patch_relocations<ARCH::PPC64>(from, shift); return;

-    case ARCH::RISCV:
-      patch_relocations<ARCH::RISCV>(from, shift); return;
+    case ARCH::RISCV: patch_relocations<ARCH::RISCV>(from, shift); return;

-    case ARCH::SH:
-      patch_relocations<ARCH::SH>(from, shift); return;
+    case ARCH::SH: patch_relocations<ARCH::SH>(from, shift); return;

-    case ARCH::S390:
-      patch_relocations<ARCH::S390>(from, shift); return;
+    case ARCH::S390: patch_relocations<ARCH::S390>(from, shift); return;

     default:
-      {
-        LIEF_DEBUG("Relocations for architecture {} are not supported", to_string(arch));
-      }
+    {
+      LIEF_DEBUG("Unsupported relocation architecture: {}", to_string(arch));
+    }
   }
 }


 uint64_t Binary::last_offset_section() const {
-  return std::accumulate(std::begin(sections_), std::end(sections_), 0llu,
-      [] (uint64_t offset, const std::unique_ptr<Section>& section) {
+  return std::accumulate(
+      sections_.begin(), sections_.end(), 0llu,
+      [](uint64_t offset, const std::unique_ptr<Section>& section) {
         if (section->is_frame()) {
           return offset;
         }
-        return std::max<uint64_t>(section->file_offset() + section->size(), offset);
-      });
+        if (section->type() == Section::TYPE::NOBITS) {
+          return offset;
+        }
+        return std::max<uint64_t>(section->file_offset() + section->size(),
+                                  offset);
+      }
+  );
 }


 uint64_t Binary::last_offset_segment() const {
-  return std::accumulate(std::begin(segments_), std::end(segments_), 0llu,
-      [] (uint64_t offset, const std::unique_ptr<Segment>& segment) {
-        return std::max<uint64_t>(segment->file_offset() + segment->physical_size(), offset);
-      });
+  return std::accumulate(segments_.begin(), segments_.end(), 0llu,
+                         [](uint64_t offset,
+                            const std::unique_ptr<Segment>& segment) {
+                           return std::max<uint64_t>(segment->file_offset() +
+                                                         segment->physical_size(),
+                                                     offset);
+                         });
 }


 uint64_t Binary::next_virtual_address() const {

-  uint64_t va = std::accumulate(std::begin(segments_), std::end(segments_), uint64_t{ 0u },
-            [] (uint64_t address, const std::unique_ptr<Segment>& segment) {
-              return std::max<uint64_t>(segment->virtual_address() + segment->virtual_size(), address);
-            });
-
-  if (type() == Header::CLASS::ELF32) {
-    va = round<uint32_t>(static_cast<uint32_t>(va));
-  }
-
-  if (type() == Header::CLASS::ELF64) {
-    va = round<uint64_t>(static_cast<uint64_t>(va));
-  }
-
-  return va;
+  uint64_t va = std::accumulate(
+      segments_.begin(), segments_.end(), uint64_t{0u},
+      [](uint64_t address, const std::unique_ptr<Segment>& segment) {
+        return std::max<uint64_t>(
+            segment->virtual_address() + segment->virtual_size(), address
+        );
+      }
+  );
+  return align(va, page_size());
 }


@@ -1997,21 +2202,23 @@ DynamicEntryLibrary& Binary::add_library(const std::string& library_name) {
 void Binary::remove_library(const std::string& library_name) {
   DynamicEntryLibrary* lib = get_library(library_name);
   if (lib == nullptr) {
-    LIEF_ERR("Can't find a library with the name '{}'", library_name);
+    LIEF_ERR("Library '{}' not found", library_name);
     return;
   }
   remove(*lib);
 }

-const DynamicEntryLibrary* Binary::get_library(const std::string& library_name) const {
-  const auto it_needed = std::find_if(std::begin(dynamic_entries_), std::end(dynamic_entries_),
-      [&library_name] (const std::unique_ptr<DynamicEntry>& entry) {
-        if (const auto* lib = entry->cast<DynamicEntryLibrary>()) {
-          return lib->name() == library_name;
-        }
-        return false;
-      });
-  if (it_needed == std::end(dynamic_entries_)) {
+const DynamicEntryLibrary*
+    Binary::get_library(const std::string& library_name) const {
+  const auto it_needed =
+      std::find_if(dynamic_entries_.begin(), dynamic_entries_.end(),
+                   [&library_name](const std::unique_ptr<DynamicEntry>& entry) {
+                     if (const auto* lib = entry->cast<DynamicEntryLibrary>()) {
+                       return lib->name() == library_name;
+                     }
+                     return false;
+                   });
+  if (it_needed == dynamic_entries_.end()) {
     return nullptr;
   }
   return static_cast<const DynamicEntryLibrary*>(it_needed->get());
@@ -2023,12 +2230,12 @@ LIEF::Binary::functions_t Binary::tor_functions(DynamicEntry::TAG tag) const {
   if (entry == nullptr || !DynamicEntryArray::classof(entry)) {
     return {};
   }
-  const DynamicEntryArray::array_t& array = entry->as<DynamicEntryArray>()->array();
+  const DynamicEntryArray::array_t& array =
+      entry->as<DynamicEntryArray>()->array();
   functions.reserve(array.size());

   for (uint64_t x : array) {
-    if (x != 0 &&
-        static_cast<uint32_t>(x) != static_cast<uint32_t>(-1) &&
+    if (x != 0 && static_cast<uint32_t>(x) != static_cast<uint32_t>(-1) &&
         x != static_cast<uint64_t>(-1))
     {
       functions.emplace_back(x);
@@ -2042,30 +2249,26 @@ LIEF::Binary::functions_t Binary::ctor_functions() const {
   LIEF::Binary::functions_t functions;

   LIEF::Binary::functions_t init = tor_functions(DynamicEntry::TAG::INIT_ARRAY);
-  std::transform(
-      std::make_move_iterator(std::begin(init)), std::make_move_iterator(std::end(init)),
-      std::back_inserter(functions),
-      [] (Function&& f) {
-        f.add(Function::FLAGS::CONSTRUCTOR);
-        f.name("__dt_init_array");
-        return f;
-      });
-
-  LIEF::Binary::functions_t preinit = tor_functions(DynamicEntry::TAG::PREINIT_ARRAY);
-  std::transform(
-      std::make_move_iterator(std::begin(preinit)),
-      std::make_move_iterator(std::end(preinit)),
-      std::back_inserter(functions),
-      [] (Function&& f) {
-        f.add(Function::FLAGS::CONSTRUCTOR);
-        f.name("__dt_preinit_array");
-        return f;
-      });
+  std::transform(init.begin(), init.end(), std::back_inserter(functions),
+                 [](Function& f) {
+                   f.add(Function::FLAGS::CONSTRUCTOR);
+                   f.name("__dt_init_array");
+                   return f;
+                 });
+
+  LIEF::Binary::functions_t preinit =
+      tor_functions(DynamicEntry::TAG::PREINIT_ARRAY);
+  std::transform(preinit.begin(), preinit.end(), std::back_inserter(functions),
+                 [](Function& f) {
+                   f.add(Function::FLAGS::CONSTRUCTOR);
+                   f.name("__dt_preinit_array");
+                   return f;
+                 });

   const DynamicEntry* dt_init = get(DynamicEntry::TAG::INIT);
   if (dt_init != nullptr) {
-    functions.emplace_back("__dt_init",
-          dt_init->value(), Function::FLAGS::CONSTRUCTOR);
+    functions.emplace_back("__dt_init", dt_init->value(),
+                           Function::FLAGS::CONSTRUCTOR);
   }
   return functions;
 }
@@ -2076,45 +2279,42 @@ LIEF::Binary::functions_t Binary::dtor_functions() const {
   LIEF::Binary::functions_t functions;

   LIEF::Binary::functions_t fini = tor_functions(DynamicEntry::TAG::FINI_ARRAY);
-  std::transform(
-      std::make_move_iterator(std::begin(fini)), std::make_move_iterator(std::end(fini)),
-      std::back_inserter(functions),
-      [] (Function&& f) {
-        f.add(Function::FLAGS::DESTRUCTOR);
-        f.name("__dt_fini_array");
-        return f;
-      });
+  std::transform(fini.begin(), fini.end(), std::back_inserter(functions),
+                 [](Function& f) {
+                   f.add(Function::FLAGS::DESTRUCTOR);
+                   f.name("__dt_fini_array");
+                   return f;
+                 });

   const DynamicEntry* dt_fini = get(DynamicEntry::TAG::FINI);
   if (dt_fini != nullptr) {
-    functions.emplace_back("__dt_fini",
-        dt_fini->value(), Function::FLAGS::DESTRUCTOR);
+    functions.emplace_back("__dt_fini", dt_fini->value(),
+                           Function::FLAGS::DESTRUCTOR);
   }
   return functions;
 }


 const Relocation* Binary::get_relocation(uint64_t address) const {
-  const auto it = std::find_if(std::begin(relocations_), std::end(relocations_),
-                               [address] (const std::unique_ptr<Relocation>& r) {
+  const auto it = std::find_if(relocations_.begin(), relocations_.end(),
+                               [address](const std::unique_ptr<Relocation>& r) {
                                  return r->address() == address;
                                });

-  if (it != std::end(relocations_)) {
+  if (it != relocations_.end()) {
     return it->get();
   }

   return nullptr;
-
 }

 const Relocation* Binary::get_relocation(const Symbol& symbol) const {
-  const auto it = std::find_if(std::begin(relocations_), std::end(relocations_),
-                               [&symbol] (const std::unique_ptr<Relocation>& r) {
+  const auto it = std::find_if(relocations_.begin(), relocations_.end(),
+                               [&symbol](const std::unique_ptr<Relocation>& r) {
                                  return r->has_symbol() && r->symbol() == &symbol;
                                });

-  if (it != std::end(relocations_)) {
+  if (it != relocations_.end()) {
     return it->get();
   }

@@ -2132,7 +2332,7 @@ const Relocation* Binary::get_relocation(const std::string& symbol_name) const {
 LIEF::Binary::functions_t Binary::armexid_functions() const {
   LIEF::Binary::functions_t funcs;

-  static const auto expand_prel31 = [] (uint32_t word, uint32_t base) {
+  static const auto expand_prel31 = [](uint32_t word, uint32_t base) {
     uint32_t offset = word & 0x7fffffff;
     if ((offset & 0x40000000) != 0u) {
       offset |= ~static_cast<uint32_t>(0x7fffffff);
@@ -2148,11 +2348,12 @@ LIEF::Binary::functions_t Binary::armexid_functions() const {

     const auto* entries = reinterpret_cast<const uint32_t*>(content.data());
     for (size_t i = 0; i < 2 * nb_functions; i += 2) {
-      uint32_t first_word  = entries[i];
+      uint32_t first_word = entries[i];
       /*uint32_t second_word = entries[i + 1]; */

       if ((first_word & 0x80000000) == 0) {
-        uint32_t prs_data = expand_prel31(first_word, exidx->virtual_address() + i * sizeof(uint32_t));
+        uint32_t prs_data = expand_prel31(first_word, exidx->virtual_address() +
+                                                          i * sizeof(uint32_t));
         funcs.emplace_back(prs_data);
       }
     }
@@ -2169,20 +2370,24 @@ LIEF::Binary::functions_t Binary::eh_frame_functions() const {
   }

   const uint64_t eh_frame_addr = eh_frame_seg->virtual_address();
-  const uint64_t eh_frame_rva  = eh_frame_addr - imagebase();
-  uint64_t eh_frame_off  = 0;
+  const uint64_t eh_frame_rva = eh_frame_addr - imagebase();
+  uint64_t eh_frame_off = 0;

   if (auto res = virtual_address_to_offset(eh_frame_addr)) {
     eh_frame_off = *res;
   } else {
-    LIEF_WARN("Can't convert the PT_GNU_EH_FRAME virtual address into an offset (0x{:x})", eh_frame_addr);
+    LIEF_WARN(
+        "Failed to convert PT_GNU_EH_FRAME virtual address to offset ({:#x})",
+        eh_frame_addr
+    );
     return functions;
   }

-  const Segment* load_segment = segment_from_virtual_address(Segment::TYPE::LOAD, eh_frame_addr);
+  const Segment* load_segment =
+      segment_from_virtual_address(Segment::TYPE::LOAD, eh_frame_addr);

   if (load_segment == nullptr) {
-    LIEF_ERR("Unable to find the LOAD segment associated with PT_GNU_EH_FRAME");
+    LIEF_ERR("LOAD segment for PT_GNU_EH_FRAME not found");
     return functions;
   }

@@ -2193,23 +2398,23 @@ LIEF::Binary::functions_t Binary::eh_frame_functions() const {
   vs.setpos(eh_frame_off);

   if (vs.size() < 4 * sizeof(uint8_t)) {
-    LIEF_WARN("Unable to read EH frame header");
+    LIEF_WARN("Failed to read EH frame header");
     return functions;
   }

   // Read Eh Frame header
-  auto version          = *vs.read<uint8_t>();
+  auto version = *vs.read<uint8_t>();
   auto eh_frame_ptr_enc = *vs.read<uint8_t>(); // How pointers are encoded
-  auto fde_count_enc    = *vs.read<uint8_t>();
-  auto table_enc        = *vs.read<uint8_t>();
+  auto fde_count_enc = *vs.read<uint8_t>();
+  auto table_enc = *vs.read<uint8_t>();

   auto res_eh_frame_ptr = vs.read_dwarf_encoded(eh_frame_ptr_enc);
   if (!res_eh_frame_ptr) {
-    LIEF_ERR("Can't decode eh_frame_ptr_enc");
+    LIEF_ERR("Failed to decode eh_frame_ptr_enc");
     return functions;
   }
   auto eh_frame_ptr = *res_eh_frame_ptr;
-  int64_t fde_count    = -1;
+  int64_t fde_count = -1;

   if (static_cast<dwarf::EH_ENCODING>(fde_count_enc) != dwarf::EH_ENCODING::OMIT) {
     auto res_count = vs.read_dwarf_encoded(fde_count_enc);
@@ -2220,7 +2425,10 @@ LIEF::Binary::functions_t Binary::eh_frame_functions() const {
   }

   if (version != 1) {
-    LIEF_WARN("EH Frame header version is not 1 ({:d}) structure may have been corrupted!", version);
+    LIEF_WARN(
+        "EH frame header version is not 1 ({:d}), structure may be corrupted",
+        version
+    );
   }

   if (fde_count < 0) {
@@ -2229,11 +2437,11 @@ LIEF::Binary::functions_t Binary::eh_frame_functions() const {
   }


-  LIEF_DEBUG("  eh_frame_ptr_enc: 0x{:x}", static_cast<uint32_t>(eh_frame_ptr_enc));
-  LIEF_DEBUG("  fde_count_enc:    0x{:x}", static_cast<uint32_t>(fde_count_enc));
-  LIEF_DEBUG("  table_enc:        0x{:x}", static_cast<uint32_t>(table_enc));
-  LIEF_DEBUG("  eh_frame_ptr:     0x{:x}", static_cast<uint32_t>(eh_frame_ptr));
-  LIEF_DEBUG("  fde_count:        0x{:x}", static_cast<uint32_t>(fde_count));
+  LIEF_DEBUG("  eh_frame_ptr_enc: {:#x}", static_cast<uint32_t>(eh_frame_ptr_enc));
+  LIEF_DEBUG("  fde_count_enc:    {:#x}", static_cast<uint32_t>(fde_count_enc));
+  LIEF_DEBUG("  table_enc:        {:#x}", static_cast<uint32_t>(table_enc));
+  LIEF_DEBUG("  eh_frame_ptr:     {:#x}", static_cast<uint32_t>(eh_frame_ptr));
+  LIEF_DEBUG("  fde_count:        {:#x}", static_cast<uint32_t>(fde_count));

   auto table_bias = static_cast<dwarf::EH_ENCODING>(table_enc & 0xF0);

@@ -2243,54 +2451,54 @@ LIEF::Binary::functions_t Binary::eh_frame_functions() const {
     // Binary search table
     auto res_init_loc = vs.read_dwarf_encoded(table_enc);
     if (!res_init_loc) {
-      LIEF_ERR("Can't read Dwarf initial_location");
+      LIEF_ERR("Failed to read DWARF initial_location");
       return functions;
     }
     uint32_t initial_location = *res_init_loc;
     auto res_address = vs.read_dwarf_encoded(table_enc);
     if (!res_address) {
-      LIEF_ERR("Can't read Dwarf address");
+      LIEF_ERR("Failed to read DWARF address");
       return functions;
     }
     uint32_t address = *res_address;
-    uint64_t bias    = 0;
+    uint64_t bias = 0;

     switch (table_bias) {
       case dwarf::EH_ENCODING::PCREL:
-        {
-          bias = (eh_frame_rva + vs.pos());
-          break;
-        }
+      {
+        bias = (eh_frame_rva + vs.pos());
+        break;
+      }

       case dwarf::EH_ENCODING::TEXTREL:
-        {
-          LIEF_WARN("EH_ENCODING::TEXTREL is not supported");
-          break;
-        }
+      {
+        LIEF_WARN("Unsupported EH_ENCODING::TEXTREL");
+        break;
+      }

       case dwarf::EH_ENCODING::DATAREL:
-        {
-          bias = eh_frame_rva;
-          break;
-        }
+      {
+        bias = eh_frame_rva;
+        break;
+      }

       case dwarf::EH_ENCODING::FUNCREL:
-        {
-          LIEF_WARN("EH_ENCODING::FUNCREL is not supported");
-          break;
-        }
+      {
+        LIEF_WARN("Unsupported EH_ENCODING::FUNCREL");
+        break;
+      }

       case dwarf::EH_ENCODING::ALIGNED:
-        {
-          LIEF_WARN("EH_ENCODING::ALIGNED is not supported");
-          break;
-        }
+      {
+        LIEF_WARN("Unsupported EH_ENCODING::ALIGNED");
+        break;
+      }

       default:
-        {
-          LIEF_WARN("Encoding not supported!");
-          break;
-        }
+      {
+        LIEF_WARN("Unsupported encoding");
+        break;
+      }
     }

     if (bias == 0) {
@@ -2299,20 +2507,21 @@ LIEF::Binary::functions_t Binary::eh_frame_functions() const {


     initial_location += bias;
-    address          += bias;
+    address += bias;

-    LIEF_DEBUG("Initial location: 0x{:x}", initial_location);
-    LIEF_DEBUG("Address: 0x{:x}", address);
-    LIEF_DEBUG("Bias: 0x{:x}", bias);
+    LIEF_DEBUG("Initial location: {:#x}", initial_location);
+    LIEF_DEBUG("Address: {:#x}", address);
+    LIEF_DEBUG("Bias: {:#x}", bias);
     const size_t saved_pos = vs.pos();
-    LIEF_DEBUG("Go to eh_frame_off + address - bias: 0x{:x}", eh_frame_off + address - bias);
+    LIEF_DEBUG("Navigating to eh_frame_off + address - bias: {:#x}",
+               eh_frame_off + address - bias);
     // Go to the FDE structure
     vs.setpos(eh_frame_off + address - bias);
     {
       // Beginning of the FDE structure (to continue)
       auto res_fde_length = vs.read<uint32_t>();
       if (!res_fde_length) {
-        LIEF_ERR("Can't read FDE length");
+        LIEF_ERR("Failed to read FDE length");
         vs.setpos(saved_pos);
         continue;
       }
@@ -2324,26 +2533,27 @@ LIEF::Binary::functions_t Binary::eh_frame_functions() const {
       }
       auto cie_pointer = vs.read<uint32_t>();
       if (!cie_pointer) {
-        LIEF_ERR("Can't read cie pointer");
+        LIEF_ERR("Failed to read CIE pointer");
         vs.setpos(saved_pos);
         continue;
       }

       if (*cie_pointer == 0) {
-        LIEF_DEBUG("cie_pointer is null!");
+        LIEF_DEBUG("CIE pointer is null");
         vs.setpos(saved_pos);
         continue;
       }

       const uint32_t cie_offset = vs.pos() - *cie_pointer - sizeof(uint32_t);

-      LIEF_DEBUG("fde_length@0x{:x}: 0x{:x}", address - bias, fde_length);
-      LIEF_DEBUG("cie_pointer 0x{:x}", *cie_pointer);
-      LIEF_DEBUG("cie_offset 0x{:x}", cie_offset);
+      LIEF_DEBUG("fde_length@{:#x}: {:#x}", address - bias, fde_length);
+      LIEF_DEBUG("cie_pointer: {:#x}", *cie_pointer);
+      LIEF_DEBUG("cie_offset: {:#x}", cie_offset);


       // Go to CIE structure
-      //uint8_t augmentation_data = static_cast<uint8_t>(dwarf::EH_ENCODING::OMIT);
+      // uint8_t augmentation_data =
+      // static_cast<uint8_t>(dwarf::EH_ENCODING::OMIT);

       const size_t saved_pos = vs.pos();
       uint8_t augmentation_data = 0;
@@ -2351,7 +2561,7 @@ LIEF::Binary::functions_t Binary::eh_frame_functions() const {
       {
         auto res_cie_length = vs.read<uint32_t>();
         if (!res_cie_length) {
-          LIEF_ERR("Can't read cie_length");
+          LIEF_ERR("Failed to read CIE length");
           return functions;
         }
         uint64_t cie_length = *res_cie_length;
@@ -2364,36 +2574,37 @@ LIEF::Binary::functions_t Binary::eh_frame_functions() const {

         auto cie_id = vs.read<uint32_t>();
         if (!cie_id) {
-          LIEF_ERR("Can't read cie_id");
+          LIEF_ERR("Failed to read CIE ID");
           return functions;
         }

         auto version = vs.read<uint8_t>();
         if (!version) {
-          LIEF_ERR("Can't read version");
+          LIEF_ERR("Failed to read CIE version");
           return functions;
         }

         if (*cie_id != 0) {
-          LIEF_WARN("CIE ID is not 0 ({:d})", *cie_id);
+          LIEF_WARN("Unexpected CIE ID ({:d}), expected 0", *cie_id);
         }

-        if (*version != 1) {
-          LIEF_WARN("CIE ID is not 1 ({:d})", *version);
+        if (*version != 1 && *version != 3 && *version != 4) {
+          LIEF_WARN("Unexpected CIE version ({:d}), expected 1, 3 or 4", *version);
         }

-        LIEF_DEBUG("cie_length: 0x{:x}", cie_length);
+        LIEF_DEBUG("cie_length: {:#x}", cie_length);
         LIEF_DEBUG("ID: {:d}", *cie_id);
         LIEF_DEBUG("Version: {:d}", *version);

         auto res_cie_augmentation_string = vs.read_string();
         if (!res_cie_augmentation_string) {
-          LIEF_ERR("Can't read cie_augmentation_string");
+          LIEF_ERR("Failed to read CIE augmentation string");
           return functions;
         }
-        std::string cie_augmentation_string = std::move(*res_cie_augmentation_string);
+        std::string cie_augmentation_string =
+            std::move(*res_cie_augmentation_string);

-        LIEF_DEBUG("CIE Augmentation {}", cie_augmentation_string);
+        LIEF_DEBUG("CIE augmentation: {}", cie_augmentation_string);
         if (cie_augmentation_string.find("eh") != std::string::npos) {
           if (is64) {
             /* uint64_t eh_data = */ vs.read<uint64_t>();
@@ -2402,41 +2613,53 @@ LIEF::Binary::functions_t Binary::eh_frame_functions() const {
           }
         }

+        if (*version >= 4) {
+          /* uint8_t address_size          = */ vs.read<uint8_t>();
+          /* uint8_t segment_selector_size = */ vs.read<uint8_t>();
+        }
+
         /* uint64_t code_alignment         = */ vs.read_uleb128();
         /* int64_t  data_alignment         = */ vs.read_sleb128();
-        /* uint64_t return_addres_register = */ vs.read_uleb128();
+        if (*version == 1) {
+          /* uint8_t return_address_register = */ vs.read<uint8_t>();
+        } else {
+          /* uint64_t return_address_register = */ vs.read_uleb128();
+        }
         if (cie_augmentation_string.find('z') != std::string::npos) {
           /* int64_t  augmentation_length    = */ vs.read_uleb128();
         }
         LIEF_DEBUG("cie_augmentation_string: {}", cie_augmentation_string);


-        if (!cie_augmentation_string.empty() && cie_augmentation_string[0] == 'z') {
+        if (!cie_augmentation_string.empty() && cie_augmentation_string[0] == 'z')
+        {
           if (cie_augmentation_string.find('R') != std::string::npos) {
             auto aug_data = vs.read<uint8_t>();
             if (!aug_data) {
-              LIEF_ERR("Can't read augmentation data");
+              LIEF_ERR("Failed to read augmentation data");
               return functions;
             }
             augmentation_data = *aug_data;
           } else {
-            LIEF_WARN("Augmentation string '{}' is not supported", cie_augmentation_string);
+            LIEF_WARN("Unsupported augmentation string '{}'",
+                      cie_augmentation_string);
           }
         }
       }
-      LIEF_DEBUG("Augmentation data 0x{:x}", static_cast<uint32_t>(augmentation_data));
+      LIEF_DEBUG("Augmentation data: {:#x}",
+                 static_cast<uint32_t>(augmentation_data));

       // Go back to FDE Structure
       vs.setpos(saved_pos);
       auto res = vs.read_dwarf_encoded(augmentation_data);
       if (!res) {
-        LIEF_ERR("Can't read Dwarf encoded function begin");
+        LIEF_ERR("Failed to read DWARF-encoded function begin");
         return functions;
       }
       int32_t function_begin = eh_frame_rva + vs.pos() + *res;
       res = vs.read_dwarf_encoded(augmentation_data);
       if (!res) {
-        LIEF_ERR("Can't read dward encoded size");
+        LIEF_ERR("Failed to read DWARF-encoded size");
         return functions;
       }
       int32_t size = *res;
@@ -2445,7 +2668,7 @@ LIEF::Binary::functions_t Binary::eh_frame_functions() const {
       Function f{static_cast<uint64_t>(initial_location + imagebase())};
       f.size(size);
       functions.push_back(std::move(f));
-      LIEF_DEBUG("PC@0x{:x}:0x{:x}", function_begin, size);
+      LIEF_DEBUG("PC@{:#x}:{:#x}", function_begin, size);
     }
     vs.setpos(saved_pos);
   }
@@ -2456,15 +2679,15 @@ LIEF::Binary::functions_t Binary::eh_frame_functions() const {

 LIEF::Binary::functions_t Binary::functions() const {

-  static const auto func_cmd = [] (const Function& lhs, const Function& rhs) {
+  static const auto func_cmd = [](const Function& lhs, const Function& rhs) {
     return lhs.address() < rhs.address();
   };
   std::set<Function, decltype(func_cmd)> functions_set(func_cmd);

   LIEF::Binary::functions_t eh_frame_functions = this->eh_frame_functions();
-  LIEF::Binary::functions_t armexid_functions  = this->armexid_functions();
-  LIEF::Binary::functions_t ctors              = ctor_functions();
-  LIEF::Binary::functions_t dtors              = dtor_functions();
+  LIEF::Binary::functions_t armexid_functions = this->armexid_functions();
+  LIEF::Binary::functions_t ctors = ctor_functions();
+  LIEF::Binary::functions_t dtors = dtor_functions();

   for (const Symbol& s : symbols()) {
     if (s.type() == Symbol::TYPE::FUNC && s.value() > 0) {
@@ -2474,19 +2697,19 @@ LIEF::Binary::functions_t Binary::functions() const {
     }
   }

-  std::move(std::begin(ctors), std::end(ctors),
-            std::inserter(functions_set, std::end(functions_set)));
+  std::move(ctors.begin(), ctors.end(),
+            std::inserter(functions_set, functions_set.end()));

-  std::move(std::begin(dtors), std::end(dtors),
-            std::inserter(functions_set, std::end(functions_set)));
+  std::move(dtors.begin(), dtors.end(),
+            std::inserter(functions_set, functions_set.end()));

-  std::move(std::begin(eh_frame_functions), std::end(eh_frame_functions),
-            std::inserter(functions_set, std::end(functions_set)));
+  std::move(eh_frame_functions.begin(), eh_frame_functions.end(),
+            std::inserter(functions_set, functions_set.end()));

-  std::move(std::begin(armexid_functions), std::end(armexid_functions),
-            std::inserter(functions_set, std::end(functions_set)));
+  std::move(armexid_functions.begin(), armexid_functions.end(),
+            std::inserter(functions_set, functions_set.end()));

-  return {std::begin(functions_set), std::end(functions_set)};
+  return {functions_set.begin(), functions_set.end()};
 }


@@ -2495,30 +2718,32 @@ uint64_t Binary::eof_offset() const {

   for (const std::unique_ptr<Section>& section : sections_) {
     if (section->type() != Section::TYPE::NOBITS && !section->is_frame()) {
-      last_offset_sections = std::max<uint64_t>(section->file_offset() + section->size(), last_offset_sections);
+      last_offset_sections =
+          std::max<uint64_t>(section->file_offset() + section->size(),
+                             last_offset_sections);
     }
   }

   const uint64_t section_header_size =
-    type() == Header::CLASS::ELF64 ? sizeof(typename details::ELF64::Elf_Shdr) :
-                                     sizeof(typename details::ELF32::Elf_Shdr);
+      type() == Header::CLASS::ELF64 ? sizeof(typename details::ELF64::Elf_Shdr) :
+                                       sizeof(typename details::ELF32::Elf_Shdr);

   const uint64_t segment_header_size =
-    type() == Header::CLASS::ELF64 ? sizeof(typename details::ELF64::Elf_Phdr) :
-                                     sizeof(typename details::ELF32::Elf_Phdr);
+      type() == Header::CLASS::ELF64 ? sizeof(typename details::ELF64::Elf_Phdr) :
+                                       sizeof(typename details::ELF32::Elf_Phdr);

   const uint64_t end_sht_table =
-      header().section_headers_offset() +
-      sections_.size() * section_header_size;
+      header().section_headers_offset() + sections_.size() * section_header_size;

   const uint64_t end_phdr_table =
-      header().program_headers_offset() +
-      segments_.size() * segment_header_size;
+      header().program_headers_offset() + segments_.size() * segment_header_size;

-  last_offset_sections = std::max<uint64_t>({last_offset_sections, end_sht_table, end_phdr_table});
+  last_offset_sections =
+      std::max<uint64_t>({last_offset_sections, end_sht_table, end_phdr_table});

   const uint64_t last_offset_segments = last_offset_segment();
-  const uint64_t last_offset          = std::max<uint64_t>(last_offset_sections, last_offset_segments);
+  const uint64_t last_offset =
+      std::max<uint64_t>(last_offset_sections, last_offset_segments);

   return last_offset;
 }
@@ -2534,17 +2759,12 @@ std::string Binary::shstrtab_name() const {

 uint64_t Binary::relocate_phdr_table(PHDR_RELOC type) {
   switch (type) {
-    case PHDR_RELOC::PIE_SHIFT:
-      return relocate_phdr_table_pie();
-    case PHDR_RELOC::SEGMENT_GAP:
-      return relocate_phdr_table_v1();
-    case PHDR_RELOC::BSS_END:
-      return relocate_phdr_table_v2();
-    case PHDR_RELOC::BINARY_END:
-      return relocate_phdr_table_v3();
+    case PHDR_RELOC::PIE_SHIFT: return relocate_phdr_table_pie();
+    case PHDR_RELOC::SEGMENT_GAP: return relocate_phdr_table_v1();
+    case PHDR_RELOC::BSS_END: return relocate_phdr_table_v2();
+    case PHDR_RELOC::BINARY_END: return relocate_phdr_table_v3();
     case PHDR_RELOC::AUTO:
-    default:
-      return relocate_phdr_table_auto();
+    default: return relocate_phdr_table_auto();
   }
 }

@@ -2566,7 +2786,7 @@ uint64_t Binary::relocate_phdr_table_auto() {
     if (offset = relocate_phdr_table_pie(); offset > 0) {
       return offset;
     }
-    LIEF_ERR("Can't relocated phdr table for this PIE binary");
+    LIEF_ERR("Failed to relocate PHDR table for this PIE binary");
   }

   if (is_dyn && !(has_phdr_s || has_interp_s) && !has_ep) {
@@ -2577,8 +2797,7 @@ uint64_t Binary::relocate_phdr_table_auto() {
   }

   /* This is typically static binaries */
-  const bool is_valid_for_v3 =
-    (is_dyn || is_exec) && !has_phdr_s && !has_interp_s;
+  const bool is_valid_for_v3 = (is_dyn || is_exec) && !has_phdr_s && !has_interp_s;

   if (is_valid_for_v3) {
     LIEF_DEBUG("Try v3 relocator");
@@ -2592,8 +2811,8 @@ uint64_t Binary::relocate_phdr_table_auto() {
   if (offset = relocate_phdr_table_v1(); offset == 0) {
     LIEF_DEBUG("Try v2 relocator");
     if (offset = relocate_phdr_table_v2(); offset == 0) {
-      LIEF_ERR("Can't relocate the phdr table for this binary. "
-                "Please consider opening an issue");
+      LIEF_ERR("Failed to relocate the PHDR table. "
+               "Please consider opening an issue");
       return 0;
     }
   }
@@ -2608,7 +2827,7 @@ uint64_t Binary::relocate_phdr_table_pie() {
     return phdr_reloc_info_.new_offset;
   }

-
+  LIEF_DEBUG("Relocating PHDR Table (PIE)");
   // --------------------------------------
   // Part 1: Make spaces for a new PHDR
   // --------------------------------------
@@ -2639,12 +2858,13 @@ uint64_t Binary::relocate_phdr_table_pie() {
    * if (arch == ARCH::AARCH64 || arch == ARCH::ARM) {
    *   shift = 0x1000;
    *   phdr_reloc_info_.new_offset = phdr_offset;
-   *   phdr_reloc_info_.nb_segments = shift / phdr_size - header_.numberof_segments();
+   *   phdr_reloc_info_.nb_segments = shift / phdr_size -
+   * header_.numberof_segments();
    * }
    */
   static constexpr size_t shift = 0x1000;

-  phdr_reloc_info_.new_offset  = from;
+  phdr_reloc_info_.new_offset = from;
   phdr_reloc_info_.nb_segments = shift / phdr_size - header_.numberof_segments();

   auto alloc = datahandler_->make_hole(from, shift);
@@ -2653,7 +2873,7 @@ uint64_t Binary::relocate_phdr_table_pie() {
     return 0;
   }

-  LIEF_DEBUG("Header shift: 0x{:x}", shift);
+  LIEF_DEBUG("Header shift: {:#x}", shift);

   header().section_headers_offset(header().section_headers_offset() + shift);

@@ -2665,7 +2885,7 @@ uint64_t Binary::relocate_phdr_table_pie() {
     if (segment->file_offset() <= from &&
         from <= (segment->file_offset() + segment->physical_size()))
     {
-      segment->virtual_size(segment->virtual_size()   + shift);
+      segment->virtual_size(segment->virtual_size() + shift);
       segment->physical_size(segment->physical_size() + shift);
     }
   }
@@ -2699,7 +2919,8 @@ uint64_t Binary::relocate_phdr_table_v3() {
   uint64_t last_off = 0;
   for (const std::unique_ptr<Segment>& segment : segments_) {
     if (segment != nullptr && segment->is_load()) {
-      last_off = std::max(last_off, segment->physical_size() + segment->file_offset());
+      last_off =
+          std::max(last_off, segment->physical_size() + segment->file_offset());
     }
   }
   uint64_t last_off_aligned = align(last_off, page_size());
@@ -2712,24 +2933,24 @@ uint64_t Binary::relocate_phdr_table_v3() {

   Header& header = this->header();

-  const uint64_t phdr_size =
-    type() == Header::CLASS::ELF32 ? sizeof(details::ELF32::Elf_Phdr) :
-                                     sizeof(details::ELF64::Elf_Phdr);
-  LIEF_DEBUG("Moving segment table at the end of the binary (0x{:010x})",
+  const uint64_t phdr_size = type() == Header::CLASS::ELF32 ?
+                                 sizeof(details::ELF32::Elf_Phdr) :
+                                 sizeof(details::ELF64::Elf_Phdr);
+  LIEF_DEBUG("Moving segment table at the end of the binary ({:#012x})",
              last_off_aligned);

   phdr_reloc_info_.new_offset = last_off_aligned;
   header.program_headers_offset(last_off_aligned);

-  const size_t new_segtbl_sz = (header.numberof_segments() + USER_SEGMENTS) * phdr_size;
+  const size_t new_segtbl_sz =
+      (header.numberof_segments() + USER_SEGMENTS) * phdr_size;
   const uint64_t delta = last_off_aligned - last_off + new_segtbl_sz;
   shift_sections(last_off, delta);

   uint64_t sections_tbl_off = header.section_headers_offset() + delta;
   header.section_headers_offset(sections_tbl_off);

-  auto alloc = datahandler_->make_hole(phdr_reloc_info_.new_offset,
-                                       new_segtbl_sz);
+  auto alloc = datahandler_->make_hole(phdr_reloc_info_.new_offset, new_segtbl_sz);

   if (!alloc) {
     LIEF_ERR("Allocation failed");
@@ -2750,18 +2971,17 @@ uint64_t Binary::relocate_phdr_table_v3() {

   DataHandler::Node new_node{phdr_reloc_info_.new_offset, new_segtbl_sz,
                              DataHandler::Node::SEGMENT};
-  datahandler_->add(std::move(new_node));
+  datahandler_->add(new_node);

-  const auto it_new_place = std::find_if(
-      segments_.rbegin(), segments_.rend(),
-      [] (const auto& s) { return s->is_load(); });
+  const auto it_new_place =
+      std::find_if(segments_.rbegin(), segments_.rend(),
+                   [](const auto& s) { return s->is_load(); });

   if (it_new_place == segments_.rend()) {
     segments_.push_back(std::move(phdr_load_segment));
   } else {
-    const size_t idx = std::distance(std::begin(segments_), it_new_place.base());
-    segments_.insert(std::begin(segments_) + idx,
-                     std::move(phdr_load_segment));
+    const size_t idx = std::distance(segments_.begin(), it_new_place.base());
+    segments_.insert(segments_.begin() + idx, std::move(phdr_load_segment));
   }

   header.numberof_segments(header.numberof_segments() + 1);
@@ -2781,7 +3001,8 @@ uint64_t Binary::relocate_phdr_table_v3() {
  *
  */
 uint64_t Binary::relocate_phdr_table_v2() {
-  static constexpr size_t USER_SEGMENTS = 10; // We reserve space for 10 user's segments
+  static constexpr size_t USER_SEGMENTS =
+      10; // We reserve space for 10 user's segments


   if (phdr_reloc_info_.new_offset > 0) {
@@ -2793,8 +3014,8 @@ uint64_t Binary::relocate_phdr_table_v2() {
   Header& header = this->header();

   const uint64_t phdr_size = type() == Header::CLASS::ELF32 ?
-                                       sizeof(details::ELF32::Elf_Phdr) :
-                                       sizeof(details::ELF64::Elf_Phdr);
+                                 sizeof(details::ELF32::Elf_Phdr) :
+                                 sizeof(details::ELF64::Elf_Phdr);


   std::vector<Segment*> load_seg;
@@ -2811,12 +3032,12 @@ uint64_t Binary::relocate_phdr_table_v2() {
   }

   if (bss_cnt != 1 || bss_segment == nullptr) {
-    LIEF_ERR("Zero or more than 1 bss-like segment!");
+    LIEF_ERR("Expected exactly 1 BSS-like segment");
     return 0;
   }

-  // "expand" the .bss area. It is required since the bss area that is mapped
-  // needs to be set to 0
+  // Expand the .bss area. This is required since the mapped bss area
+  // needs to be zero-initialized.
   const uint64_t original_psize = bss_segment->physical_size();

   /*
@@ -2849,7 +3070,8 @@ uint64_t Binary::relocate_phdr_table_v2() {
    * Therefore, we **can't take** 0x1030 as offset for the new
    * segment table.
    * To avoid virtual overlap while still keeping Req[1.],
-   * we need to use: LOAD_2.virtual_address - Imagebase[0x400000] + LOAD_2.virtual_size
+   * we need to use: LOAD_2.virtual_address - Imagebase[0x400000] +
+   * LOAD_2.virtual_size
    *                 \                                         /
    *                  ------------ Offset --------------------/
    * which should be aligned on a page size to avoid error.
@@ -2870,8 +3092,10 @@ uint64_t Binary::relocate_phdr_table_v2() {
    *          run.  This section is of type SHT_NOBITS. The attribute
    *          types are SHF_ALLOC and SHF_WRITE.
    */
-  const uint64_t new_phdr_offset = align(bss_segment->virtual_address() - imagebase()
-                                         + bss_segment->virtual_size(), 0x1000);
+  const uint64_t new_phdr_offset =
+      align(bss_segment->virtual_address() - imagebase() +
+                bss_segment->virtual_size(),
+            0x1000);

   const size_t nb_segments = header.numberof_segments() +
                              /* custom PT_LOAD */ 1 + USER_SEGMENTS;
@@ -2883,7 +3107,9 @@ uint64_t Binary::relocate_phdr_table_v2() {
   size_t delta_pa = (bss_segment->virtual_size() - bss_segment->physical_size());

   phdr_reloc_info_.nb_segments = USER_SEGMENTS;
-  auto alloc = datahandler_->make_hole(bss_segment->file_offset() + bss_segment->physical_size(), delta_pa);
+  auto alloc = datahandler_->make_hole(
+      bss_segment->file_offset() + bss_segment->physical_size(), delta_pa
+  );
   if (!alloc) {
     LIEF_ERR("Allocation failed");
     return 0;
@@ -2908,45 +3134,48 @@ uint64_t Binary::relocate_phdr_table_v2() {

   datahandler_->add(new_node);

-  const auto it_new_segment_place = std::find_if(segments_.rbegin(), segments_.rend(),
-      [nsegment_addr] (const std::unique_ptr<Segment>& s) {
-        return s->type() == nsegment_addr->type();
-      });
+  const auto it_new_segment_place =
+      std::find_if(segments_.rbegin(), segments_.rend(),
+                   [nsegment_addr](const std::unique_ptr<Segment>& s) {
+                     return s->type() == nsegment_addr->type();
+                   });

   if (it_new_segment_place == segments_.rend()) {
     segments_.push_back(std::move(new_segment_ptr));
   } else {
-    const size_t idx = std::distance(std::begin(segments_), it_new_segment_place.base());
-    segments_.insert(std::begin(segments_) + idx, std::move(new_segment_ptr));
+    const size_t idx =
+        std::distance(segments_.begin(), it_new_segment_place.base());
+    segments_.insert(segments_.begin() + idx, std::move(new_segment_ptr));
   }

   this->header().numberof_segments(this->header().numberof_segments() + 1);

-  const auto it_segment_phdr = std::find_if(std::begin(segments_), std::end(segments_),
-              [] (const std::unique_ptr<Segment>& s) {
-                return s->is_phdr();
-              });
+  const auto it_segment_phdr =
+      std::find_if(segments_.begin(), segments_.end(),
+                   [](const std::unique_ptr<Segment>& s) { return s->is_phdr(); });

-  if (it_segment_phdr != std::end(segments_)) {
+  if (it_segment_phdr != segments_.end()) {
     const std::unique_ptr<Segment>& phdr_segment = *it_segment_phdr;
     phdr_segment->file_offset(nsegment_addr->file_offset());
     phdr_segment->virtual_address(nsegment_addr->virtual_address());
     phdr_segment->physical_address(nsegment_addr->physical_address());
-    phdr_segment->content(std::vector<uint8_t>(phdr_segment->physical_size(), 0));
+    phdr_segment->clear();
   }


   // Shift components that come after the bss offset
   uint64_t from = bss_segment->file_offset() + original_psize;
   uint64_t shift = delta_pa + nb_segments * phdr_size;
-  this->header().section_headers_offset(this->header().section_headers_offset() + shift);
+  this->header().section_headers_offset(this->header().section_headers_offset() +
+                                        shift);

   // Shift sections
   for (const std::unique_ptr<Section>& section : sections_) {
     if (section->is_frame()) {
       continue;
     }
-    if (section->file_offset() >= from && section->type() != Section::TYPE::NOBITS) {
+    if (section->file_offset() >= from && section->type() != Section::TYPE::NOBITS)
+    {
       LIEF_DEBUG("[BEFORE] {}", to_string(*section));
       section->file_offset(section->file_offset() + shift);
       if (section->virtual_address() > 0) {
@@ -2964,7 +3193,7 @@ uint64_t Binary::relocate_phdr_table_v1() {
   // to consider this relocation valid
   static constexpr auto MIN_POTENTIAL_SIZE = 2;

-  // check if we already relocated the segment table in the larger segment's cave
+  // Check if we already relocated the segment table in the largest segment's cave
   if (phdr_reloc_info_.new_offset > 0) {
     return phdr_reloc_info_.new_offset;
   }
@@ -2974,13 +3203,12 @@ uint64_t Binary::relocate_phdr_table_v1() {
   Header& header = this->header();

   const uint64_t phdr_size = type() == Header::CLASS::ELF32 ?
-                                       sizeof(details::ELF32::Elf_Phdr) :
-                                       sizeof(details::ELF64::Elf_Phdr);
+                                 sizeof(details::ELF32::Elf_Phdr) :
+                                 sizeof(details::ELF64::Elf_Phdr);

-  const auto it_segment_phdr = std::find_if(std::begin(segments_), std::end(segments_),
-              [] (const std::unique_ptr<Segment>& s) {
-                return s->is_phdr();
-              });
+  const auto it_segment_phdr =
+      std::find_if(segments_.begin(), segments_.end(),
+                   [](const std::unique_ptr<Segment>& s) { return s->is_phdr(); });

   std::vector<Segment*> load_seg;
   for (std::unique_ptr<Segment>& segment : segments_) {
@@ -2989,13 +3217,13 @@ uint64_t Binary::relocate_phdr_table_v1() {
     }
   }

-  // Take the 2 adjacent segments that have the larger "cave"
+  // Take the 2 adjacent segments that have the largest "cave"
   Segment* seg_to_extend = nullptr;
   Segment* next_to_extend = nullptr;
   size_t potential_size = 0;
   const size_t nb_loads = load_seg.size();

-  // This function requires to have at least 2 segments
+  // This function requires at least 2 segments
   if (nb_loads <= 1) {
     return 0;
   }
@@ -3004,54 +3232,58 @@ uint64_t Binary::relocate_phdr_table_v1() {
     Segment* current = load_seg[i];
     // Skip bss-like segments
     if (current->virtual_size() != current->physical_size()) {
-      LIEF_DEBUG("Skipping .bss like segment: {}@0x{:x}:0x{:x}",
-                 to_string(current->type()), current->virtual_address(), current->virtual_size());
+      LIEF_DEBUG("Skipping .bss like segment: {}@{:#x}:{:#x}",
+                 to_string(current->type()), current->virtual_address(),
+                 current->virtual_size());
       continue;
     }
     Segment* adjacent = load_seg[i + 1];
-    const int64_t gap = adjacent->file_offset() - (current->file_offset() + current->physical_size());
+    const int64_t gap = adjacent->file_offset() -
+                        (current->file_offset() + current->physical_size());
     if (gap <= 0) {
       continue;
     }

     const size_t nb_seg_gap = gap / phdr_size;
-    LIEF_DEBUG("Gap between {:d} <-> {:d}: {:x} ({:d} segments)", i, i + 1, gap, nb_seg_gap);
+    LIEF_DEBUG("Gap between {:d} <-> {:d}: {:x} ({:d} segments)", i, i + 1, gap,
+               nb_seg_gap);
     if (nb_seg_gap > potential_size) {
-      seg_to_extend  = current;
+      seg_to_extend = current;
       next_to_extend = adjacent;
       potential_size = nb_seg_gap;
     }
   }

   if (seg_to_extend == nullptr || next_to_extend == nullptr) {
-    LIEF_DEBUG("Can't find a suitable segment (v1)");
+    LIEF_DEBUG("No suitable segment found (v1)");
     return 0;
   }

   if (potential_size < (header.numberof_segments() + MIN_POTENTIAL_SIZE)) {
-    LIEF_DEBUG("The number of available segments is too small ({} vs {})",
-               potential_size, header.numberof_segments() + MIN_POTENTIAL_SIZE);
+    LIEF_DEBUG("Available segment count too small ({} vs {})", potential_size,
+               header.numberof_segments() + MIN_POTENTIAL_SIZE);
     return 0;
   }

-  LIEF_DEBUG("Segment selected for the extension: {}@0x{:x}:0x{:x}",
+  LIEF_DEBUG("Segment selected for the extension: {}@{:#x}:{:#x}",
              to_string(seg_to_extend->type()), seg_to_extend->virtual_address(),
              seg_to_extend->virtual_size());

-  LIEF_DEBUG("Adjacent segment selected for the extension: {}@0x{:x}:0x{:x}",
+  LIEF_DEBUG("Adjacent segment selected for the extension: {}@{:#x}:{:#x}",
              to_string(next_to_extend->type()), next_to_extend->virtual_address(),
              next_to_extend->virtual_size());

   // Extend the segment that wraps the next PHDR table so that it is contiguous
   // with the next segment.
-  int64_t delta = next_to_extend->file_offset() - (seg_to_extend->file_offset() + seg_to_extend->physical_size());
+  int64_t delta = next_to_extend->file_offset() -
+                  (seg_to_extend->file_offset() + seg_to_extend->physical_size());
   if (delta <= 0) {
     return 0;
   }
   const size_t nb_segments = delta / phdr_size - header.numberof_segments();
   if (nb_segments < header.numberof_segments()) {
-    LIEF_DEBUG("The layout of this binary does not enable relocating the segment table (v1)\n"
-               "We would need at least {} segments while only {} are available.",
+    LIEF_DEBUG("Binary layout prevents segment table relocation (v1). "
+               "Need at least {} segments but only {} available.",
                header.numberof_segments(), nb_segments);
     phdr_reloc_info_.clear();
     return 0;
@@ -3059,36 +3291,40 @@ uint64_t Binary::relocate_phdr_table_v1() {


   // New values
-  const uint64_t new_phdr_offset = seg_to_extend->file_offset() + seg_to_extend->physical_size();
-  phdr_reloc_info_.new_offset = new_phdr_offset;
+  const uint64_t new_phdr_offset =
+      seg_to_extend->file_offset() + seg_to_extend->physical_size();
+  const size_t alignment = align(new_phdr_offset, ptr_size()) - new_phdr_offset;

-  header.program_headers_offset(new_phdr_offset);
+  phdr_reloc_info_.new_offset = new_phdr_offset + alignment;

+  header.program_headers_offset(phdr_reloc_info_.new_offset);

   phdr_reloc_info_.nb_segments = nb_segments;
   seg_to_extend->physical_size(seg_to_extend->physical_size() + delta);
   seg_to_extend->virtual_size(seg_to_extend->virtual_size() + delta);


-  if (it_segment_phdr != std::end(segments_)) {
+  if (it_segment_phdr != segments_.end()) {
     const std::unique_ptr<Segment>& phdr_segment = *it_segment_phdr;
     // Update the PHDR segment with our values
-    const uint64_t base = seg_to_extend->virtual_address() - seg_to_extend->file_offset();
-    phdr_segment->file_offset(new_phdr_offset);
+    const uint64_t base =
+        seg_to_extend->virtual_address() - seg_to_extend->file_offset();
+    phdr_segment->file_offset(phdr_reloc_info_.new_offset);
     phdr_segment->virtual_address(base + phdr_segment->file_offset());
     phdr_segment->physical_address(phdr_segment->virtual_address());
-    LIEF_DEBUG("{}@0x{:x}:0x{:x}", to_string(phdr_segment->type()),
-                                   phdr_segment->virtual_address(), phdr_segment->virtual_size());
+    LIEF_DEBUG("{}@{:#x}:{:#x}", to_string(phdr_segment->type()),
+               phdr_segment->virtual_address(), phdr_segment->virtual_size());
     // Clear PHDR segment
-    phdr_segment->physical_size(delta);
-    phdr_segment->virtual_size(delta);
-    phdr_segment->content(std::vector<uint8_t>(delta, 0));
+    phdr_segment->physical_size(delta - alignment);
+    phdr_segment->virtual_size(delta - alignment);
+    phdr_segment->clear();
   }
   return phdr_reloc_info_.new_offset;
 }


-std::vector<uint64_t> Binary::get_relocated_dynamic_array(DynamicEntry::TAG tag) const {
+std::vector<uint64_t>
+    Binary::get_relocated_dynamic_array(DynamicEntry::TAG tag) const {
   const DynamicEntry* entry = get(tag);
   if (entry == nullptr || !DynamicEntryArray::classof(entry)) {
     return {};
@@ -3098,13 +3334,13 @@ std::vector<uint64_t> Binary::get_relocated_dynamic_array(DynamicEntry::TAG tag)
   std::vector<uint64_t> result = entry_array.array();

   const uint64_t base_addr = entry_array.value();
-  const size_t ptr_size = (type_ == Header::CLASS::ELF64) ? sizeof(uint64_t) :
-                                                            sizeof(uint32_t);
+  const size_t ptr_size =
+      (type_ == Header::CLASS::ELF64) ? sizeof(uint64_t) : sizeof(uint32_t);
   const uint64_t end_addr = base_addr + result.size() * ptr_size;

   for (const Relocation& reloc : dynamic_relocations()) {
     const uint64_t addr = reloc.address();
-    bool in_range = base_addr <= addr  && addr < end_addr;
+    bool in_range = base_addr <= addr && addr < end_addr;
     if (!in_range) {
       continue;
     }
@@ -3125,22 +3361,17 @@ std::vector<uint64_t> Binary::get_relocated_dynamic_array(DynamicEntry::TAG tag)

 bool Binary::is_targeting_android() const {
   static constexpr auto ANDROID_DT = {
-    DynamicEntry::TAG::ANDROID_REL_OFFSET,
-    DynamicEntry::TAG::ANDROID_REL_SIZE,
-    DynamicEntry::TAG::ANDROID_REL,
-    DynamicEntry::TAG::ANDROID_RELSZ,
-    DynamicEntry::TAG::ANDROID_RELA,
-    DynamicEntry::TAG::ANDROID_RELASZ,
-    DynamicEntry::TAG::ANDROID_RELR,
-    DynamicEntry::TAG::ANDROID_RELRSZ,
-    DynamicEntry::TAG::ANDROID_RELRENT,
-    DynamicEntry::TAG::ANDROID_RELRCOUNT,
+      DynamicEntry::TAG::ANDROID_REL_OFFSET, DynamicEntry::TAG::ANDROID_REL_SIZE,
+      DynamicEntry::TAG::ANDROID_REL,        DynamicEntry::TAG::ANDROID_RELSZ,
+      DynamicEntry::TAG::ANDROID_RELA,       DynamicEntry::TAG::ANDROID_RELASZ,
+      DynamicEntry::TAG::ANDROID_RELR,       DynamicEntry::TAG::ANDROID_RELRSZ,
+      DynamicEntry::TAG::ANDROID_RELRENT,    DynamicEntry::TAG::ANDROID_RELRCOUNT,
   };

   static constexpr auto ANDROID_NOTES = {
-    Note::TYPE::ANDROID_IDENT,
-    Note::TYPE::ANDROID_KUSER,
-    Note::TYPE::ANDROID_MEMTAG,
+      Note::TYPE::ANDROID_IDENT,
+      Note::TYPE::ANDROID_KUSER,
+      Note::TYPE::ANDROID_MEMTAG,
   };

   if (format_ == Binary::FORMATS::OAT) {
@@ -3148,17 +3379,13 @@ bool Binary::is_targeting_android() const {
   }

   if (std::any_of(ANDROID_DT.begin(), ANDROID_DT.end(),
-      [this] (DynamicEntry::TAG t) {
-        return has(t);
-      }))
+                  [this](DynamicEntry::TAG t) { return has(t); }))
   {
     return true;
   }

   if (std::any_of(ANDROID_NOTES.begin(), ANDROID_NOTES.end(),
-      [this] (Note::TYPE t) {
-        return has(t);
-      }))
+                  [this](Note::TYPE t) { return has(t); }))
   {
     return true;
   }
@@ -3180,25 +3407,27 @@ bool Binary::is_targeting_android() const {
 Section* Binary::add_section(std::unique_ptr<Section> sec) {
   Section* sec_ptr = sec.get();

-  const auto it_new_sec_place = std::find_if(
-    sections_.begin(), sections_.end(), [sec_ptr] (const std::unique_ptr<Section>& S) {
-      return S->file_offset() > sec_ptr->file_offset();
-    });
+  const auto it_new_sec_place =
+      std::find_if(sections_.begin(), sections_.end(),
+                   [sec_ptr](const std::unique_ptr<Section>& S) {
+                     return S->type() != Section::TYPE::NOBITS &&
+                            S->file_offset() > sec_ptr->file_offset();
+                   });

   if (it_new_sec_place == sections_.end()) {
-    sections_.push_back(std::move(sec));
+    sec_ptr = sections_.emplace_back(std::move(sec)).get();
   } else {
     size_t idx = std::distance(sections_.begin(), it_new_sec_place);
-    for (size_t i = 0; i < sections_.size(); ++i) {
-      const uint32_t link = sections_[i]->link();
+    for (const auto& section : sections_) {
+      const uint32_t link = section->link();
       if (link >= idx) {
-        sections_[i]->link(link + 1);
+        section->link(link + 1);
       }
     }
     if (header_.section_name_table_idx() >= idx) {
       header_.section_name_table_idx(header_.section_name_table_idx() + 1);
     }
-    sections_.insert(it_new_sec_place, std::move(sec));
+    sec_ptr = sections_.insert(it_new_sec_place, std::move(sec))->get();
   }

   return sec_ptr;
@@ -3211,10 +3440,11 @@ uint64_t Binary::page_size() const {
   return LIEF::Binary::page_size();
 }

-const SymbolVersionRequirement* Binary::find_version_requirement(const std::string& libname) const {
+const SymbolVersionRequirement*
+    Binary::find_version_requirement(const std::string& libname) const {
   auto it = std::find_if(
       symbol_version_requirements_.begin(), symbol_version_requirements_.end(),
-      [&libname] (const std::unique_ptr<SymbolVersionRequirement>& symver) {
+      [&libname](const std::unique_ptr<SymbolVersionRequirement>& symver) {
         return symver->name() == libname;
       }
   );
@@ -3229,7 +3459,7 @@ const SymbolVersionRequirement* Binary::find_version_requirement(const std::stri
 bool Binary::remove_version_requirement(const std::string& libname) {
   auto it = std::find_if(
       symbol_version_requirements_.begin(), symbol_version_requirements_.end(),
-      [&libname] (const std::unique_ptr<SymbolVersionRequirement>& symver) {
+      [&libname](const std::unique_ptr<SymbolVersionRequirement>& symver) {
         return symver->name() == libname;
       }
   );
@@ -3242,10 +3472,9 @@ bool Binary::remove_version_requirement(const std::string& libname) {
   SymbolVersionRequirement* sym_ver_req = it->get();
   auto aux = sym_ver_req->auxiliary_symbols();
   std::transform(aux.begin(), aux.end(), std::inserter(versions, versions.begin()),
-    [] (const SymbolVersionAuxRequirement& req) {
-      return req.name();
-    }
-  );
+                 [](const SymbolVersionAuxRequirement& req) {
+                   return req.name();
+                 });

   for (Symbol& sym : dynamic_symbols()) {
     SymbolVersion* symver = sym.symbol_version();
@@ -3269,150 +3498,105 @@ bool Binary::remove_version_requirement(const std::string& libname) {
 }

 std::ostream& Binary::print(std::ostream& os) const {
+  os << "Header {\n" << indent(LIEF::to_string(header()), 2) << "}\n";

-  os << "Header" << '\n';
-  os << "======" << '\n';
-
-  os << header();
-  os << '\n';
-
-
-  os << "Sections" << '\n';
-  os << "========" << '\n';
-  for (const Section& section : sections()) {
-    os << section << '\n';
+  {
+    const auto secs = sections();
+    if (!secs.empty()) {
+      os << fmt::format("Sections (#{})\n", secs.size());
+      for (size_t i = 0; i < secs.size(); ++i) {
+        os << fmt::format("  Section #{:02} {{\n", i)
+           << indent(LIEF::to_string(secs[i]), 4) << "  }\n";
+      }
+    }
   }
-  os << '\n';
-

-  os << "Segments" << '\n';
-  os << "========" << '\n';
-  for (const Segment& segment : segments()) {
-    os << segment << '\n';
+  {
+    const auto segs = segments();
+    if (!segs.empty()) {
+      os << fmt::format("Segments (#{})\n", segs.size());
+      for (size_t i = 0; i < segs.size(); ++i) {
+        os << fmt::format("  Segment #{:02} {{\n", i)
+           << indent(LIEF::to_string(segs[i]), 4) << "  }\n";
+      }
+    }
   }

-  os << '\n';
-
-
-  os << "Dynamic entries" << '\n';
-  os << "===============" << '\n';
-
-  for (const DynamicEntry& entry : dynamic_entries()) {
-    os << entry << '\n';
+  if (auto entries = dynamic_entries(); !entries.empty()) {
+    os << fmt::format("Dynamic Entries (#{})\n", entries.size());
+    for (const DynamicEntry& entry : entries) {
+      os << "  " << entry << '\n';
+    }
   }

-  os << '\n';
-
-
-  os << "Dynamic symbols" << '\n';
-  os << "===============" << '\n';
-
-  for (const Symbol& symbol : dynamic_symbols()) {
-    os << symbol << '\n';
+  if (auto syms = dynamic_symbols(); !syms.empty()) {
+    os << fmt::format("Dynamic Symbols (#{})\n", syms.size());
+    for (const Symbol& symbol : syms) {
+      os << "  " << symbol << '\n';
+    }
   }

-  os << '\n';
-
-
-  os << "Symtab symbols" << '\n';
-  os << "==============" << '\n';
-
-  for (const Symbol& symbol : symtab_symbols()) {
-    os << symbol << '\n';
+  if (auto syms = symtab_symbols(); !syms.empty()) {
+    os << fmt::format("Symtab Symbols (#{})\n", syms.size());
+    for (const Symbol& symbol : syms) {
+      os << "  " << symbol << '\n';
+    }
   }

-  os << '\n';
-
-
-  os << "Symbol versions" << '\n';
-  os << "===============" << '\n';
-
-  for (const SymbolVersion& sv : symbols_version()) {
-    os << sv << '\n';
+  if (auto vers = symbols_version(); !vers.empty()) {
+    os << fmt::format("Symbol Versions (#{})\n", vers.size());
+    for (const SymbolVersion& sv : vers) {
+      os << "  " << sv << '\n';
+    }
   }

-  os << '\n';
-
-
-  os << "Symbol versions definition" << '\n';
-  os << "==========================" << '\n';
-
-  for (const SymbolVersionDefinition& svd : symbols_version_definition()) {
-    os << svd << '\n';
+  if (auto defs = symbols_version_definition(); !defs.empty()) {
+    os << fmt::format("Symbol Version Definitions (#{})\n", defs.size());
+    for (const SymbolVersionDefinition& svd : defs) {
+      os << indent(LIEF::to_string(svd), 2);
+    }
   }

-  os << '\n';
-
-
-  os << "Symbol version requirement" << '\n';
-  os << "==========================" << '\n';
-
-  for (const SymbolVersionRequirement& svr : symbols_version_requirement()) {
-    os << svr << '\n';
+  if (auto reqs = symbols_version_requirement(); !reqs.empty()) {
+    os << fmt::format("Symbol Version Requirements (#{})\n", reqs.size());
+    for (const SymbolVersionRequirement& svr : reqs) {
+      os << indent(LIEF::to_string(svr), 2);
+    }
   }

-  os << '\n';
-
-
-  os << "Dynamic relocations" << '\n';
-  os << "===================" << '\n';
-
-  for (const Relocation& relocation : dynamic_relocations()) {
-    os << relocation << '\n';
+  if (auto relocs = dynamic_relocations(); !relocs.empty()) {
+    os << fmt::format("Dynamic Relocations (#{})\n", relocs.size());
+    for (const Relocation& relocation : relocs) {
+      os << "  " << relocation << '\n';
+    }
   }

-  os << '\n';
-
-
-  os << ".plt.got relocations" << '\n';
-  os << "====================" << '\n';
-
-  for (const Relocation& relocation : pltgot_relocations()) {
-    os << relocation << '\n';
+  if (auto relocs = pltgot_relocations(); !relocs.empty()) {
+    os << fmt::format(".plt.got Relocations (#{})\n", relocs.size());
+    for (const Relocation& relocation : relocs) {
+      os << "  " << relocation << '\n';
+    }
   }

-  os << '\n';
-
-  if (notes().size() > 0) {
-    os << "Notes" << '\n';
-    os << "=====" << '\n';
-
-    it_const_notes notes = this->notes();
-    for (size_t i = 0; i < notes.size(); ++i) {
-      std::string title = "Note #" + std::to_string(i);
-      os << title << '\n';
-      os << std::string(title.size(), '-') << '\n';
-      os << notes[i] << '\n';
+  if (auto n = this->notes(); !n.empty()) {
+    os << fmt::format("Notes (#{})\n", n.size());
+    for (size_t i = 0; i < n.size(); ++i) {
+      os << fmt::format("  Note #{:02} {{\n", i)
+         << indent(LIEF::to_string(n[i]), 4) << "  }\n";
     }
-    os << '\n';
   }

-  os << '\n';
-  if (use_gnu_hash()) {
-    os << "GNU Hash Table" << '\n';
-    os << "==============" << '\n';
-
-    os << gnu_hash() << '\n';
-
-    os << '\n';
+  if (const GnuHash* gnu = gnu_hash()) {
+    os << "GNU Hash Table {\n" << indent(LIEF::to_string(*gnu), 2) << "}\n";
   }

-
-  if (use_sysv_hash()) {
-    os << "SYSV Hash Table" << '\n';
-    os << "===============" << '\n';
-
-    os << sysv_hash() << '\n';
-
-    os << '\n';
+  if (const SysvHash* sysv = sysv_hash()) {
+    os << "SYSV Hash Table {\n" << indent(LIEF::to_string(*sysv), 2) << "}\n";
   }

-
-
   return os;
 }

 Binary::~Binary() = default;

 }
-}
diff --git a/deps/LIEF/src/ELF/Binary.tcc b/deps/LIEF/src/ELF/Binary.tcc
index 0fff0155730..8e20f8a07c1 100644
--- a/deps/LIEF/src/ELF/Binary.tcc
+++ b/deps/LIEF/src/ELF/Binary.tcc
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -20,7 +20,6 @@
 #include "LIEF/ELF/Segment.hpp"
 #include "LIEF/ELF/Section.hpp"
 #include "LIEF/ELF/DynamicEntry.hpp"
-#include "LIEF/ELF/EnumToString.hpp"

 #include "ELF/Structures.hpp"
 #include "ELF/DataHandler/Node.hpp"
@@ -28,8 +27,8 @@

 #include "internal_utils.hpp"

-namespace LIEF {
-namespace ELF {
+
+namespace LIEF::ELF {

 uint64_t default_segment_alignment(const Binary& bin) {
   std::set<uint64_t> values;
@@ -58,22 +57,12 @@ inline void init_alignment(Binary& bin, Segment& segment, uintptr_t ptrsz) {
       break;
     case Segment::TYPE::PHDR:
     case Segment::TYPE::DYNAMIC:
-    case Segment::TYPE::TLS:
-      segment.alignment(ptrsz);
-      break;
+    case Segment::TYPE::TLS: segment.alignment(ptrsz); break;
     case Segment::TYPE::NOTE:
-    case Segment::TYPE::GNU_EH_FRAME:
-      segment.alignment(sizeof(uint32_t));
-      break;
-    case Segment::TYPE::GNU_RELRO:
-      segment.alignment(1);
-      break;
-    case Segment::TYPE::GNU_STACK:
-      segment.alignment(0x10);
-      break;
-    default:
-      segment.alignment(ptrsz);
-      break;
+    case Segment::TYPE::GNU_EH_FRAME: segment.alignment(sizeof(uint32_t)); break;
+    case Segment::TYPE::GNU_RELRO: segment.alignment(1); break;
+    case Segment::TYPE::GNU_STACK: segment.alignment(0x10); break;
+    default: segment.alignment(ptrsz); break;
   }
 }

@@ -85,7 +74,7 @@ void Binary::patch_relocations<ARCH::ARM>(uint64_t from, uint64_t shift) {
   for (Relocation& relocation : relocations()) {

     if (relocation.address() >= from) {
-      //shift_code(relocation.address(), shift, relocation.size() / 8);
+      // shift_code(relocation.address(), shift, relocation.size() / 8);
       relocation.address(relocation.address() + shift);
     }

@@ -96,16 +85,16 @@ void Binary::patch_relocations<ARCH::ARM>(uint64_t from, uint64_t shift) {
       case Relocation::TYPE::ARM_RELATIVE:
       case Relocation::TYPE::ARM_GLOB_DAT:
       case Relocation::TYPE::ARM_IRELATIVE:
-        {
-          LIEF_DEBUG("Patch addend of {}", to_string(relocation));
-          patch_addend<uint32_t>(relocation, from, shift);
-          break;
-        }
+      {
+        LIEF_DEBUG("Patch addend of {}", to_string(relocation));
+        patch_addend<uint32_t>(relocation, from, shift);
+        break;
+      }

       default:
-        {
-          LIEF_DEBUG("Relocation {} is not patched", to_string(type));
-        }
+      {
+        LIEF_DEBUG("Relocation {} is not patched", to_string(type));
+      }
     }
   }
 }
@@ -119,7 +108,7 @@ void Binary::patch_relocations<ARCH::AARCH64>(uint64_t from, uint64_t shift) {
   for (Relocation& relocation : relocations()) {

     if (relocation.address() >= from) {
-      //shift_code(relocation.address(), shift, relocation.size() / 8);
+      // shift_code(relocation.address(), shift, relocation.size() / 8);
       relocation.address(relocation.address() + shift);
     }

@@ -131,51 +120,51 @@ void Binary::patch_relocations<ARCH::AARCH64>(uint64_t from, uint64_t shift) {
       case Relocation::TYPE::AARCH64_GLOB_DAT:
       case Relocation::TYPE::AARCH64_IRELATIVE:
       case Relocation::TYPE::AARCH64_ABS64:
-        {
-          LIEF_DEBUG("Patch addend of {}", to_string(relocation));
-          patch_addend<uint64_t>(relocation, from, shift);
-          break;
-        }
+      {
+        LIEF_DEBUG("Patch addend of {}", to_string(relocation));
+        patch_addend<uint64_t>(relocation, from, shift);
+        break;
+      }

       case Relocation::TYPE::AARCH64_ABS32:
-        {
-          LIEF_DEBUG("Patch addend of {}", to_string(relocation));
-          patch_addend<uint32_t>(relocation, from, shift);
-          break;
-        }
+      {
+        LIEF_DEBUG("Patch addend of {}", to_string(relocation));
+        patch_addend<uint32_t>(relocation, from, shift);
+        break;
+      }

       case Relocation::TYPE::AARCH64_ABS16:
-        {
-          LIEF_DEBUG("Patch addend of {}", to_string(relocation));
-          patch_addend<uint16_t>(relocation, from, shift);
-          break;
-        }
+      {
+        LIEF_DEBUG("Patch addend of {}", to_string(relocation));
+        patch_addend<uint16_t>(relocation, from, shift);
+        break;
+      }

       case Relocation::TYPE::AARCH64_PREL64:
-        {
-          LIEF_DEBUG("Patch addend of {}", to_string(relocation));
-          patch_addend<uint64_t>(relocation, from, shift);
-          break;
-        }
+      {
+        LIEF_DEBUG("Patch addend of {}", to_string(relocation));
+        patch_addend<uint64_t>(relocation, from, shift);
+        break;
+      }

       case Relocation::TYPE::AARCH64_PREL32:
-        {
-          LIEF_DEBUG("Patch addend of {}", to_string(relocation));
-          patch_addend<uint32_t>(relocation, from, shift);
-          break;
-        }
+      {
+        LIEF_DEBUG("Patch addend of {}", to_string(relocation));
+        patch_addend<uint32_t>(relocation, from, shift);
+        break;
+      }

       case Relocation::TYPE::AARCH64_PREL16:
-        {
-          LIEF_DEBUG("Patch addend of {}", to_string(relocation));
-          patch_addend<uint16_t>(relocation, from, shift);
-          break;
-        }
+      {
+        LIEF_DEBUG("Patch addend of {}", to_string(relocation));
+        patch_addend<uint16_t>(relocation, from, shift);
+        break;
+      }

       default:
-        {
-          LIEF_DEBUG("Relocation {} is not patched", to_string(type));
-        }
+      {
+        LIEF_DEBUG("Relocation {} is not patched", to_string(type));
+      }
     }
   }
 }
@@ -187,7 +176,7 @@ template<>
 void Binary::patch_relocations<ARCH::I386>(uint64_t from, uint64_t shift) {
   for (Relocation& relocation : relocations()) {
     if (relocation.address() >= from) {
-      //shift_code(relocation.address(), shift, relocation.size() / 8);
+      // shift_code(relocation.address(), shift, relocation.size() / 8);
       relocation.address(relocation.address() + shift);
     }
     const Relocation::TYPE type = relocation.type();
@@ -198,22 +187,22 @@ void Binary::patch_relocations<ARCH::I386>(uint64_t from, uint64_t shift) {
       case Relocation::TYPE::X86_IRELATIVE:
       case Relocation::TYPE::X86_GLOB_DAT:
       case Relocation::TYPE::X86_32:
-        {
-          LIEF_DEBUG("Patch addend of {}", to_string(relocation));
-          patch_addend<uint32_t>(relocation, from, shift);
-          break;
-        }
+      {
+        LIEF_DEBUG("Patch addend of {}", to_string(relocation));
+        patch_addend<uint32_t>(relocation, from, shift);
+        break;
+      }
       case Relocation::TYPE::X86_TLS_DTPMOD32:
       case Relocation::TYPE::X86_TLS_DTPOFF32:
-        {
-          // Nothing to do for these relocations
-          continue;
-        }
+      {
+        // Nothing to do for these relocations
+        continue;
+      }

       default:
-        {
-          LIEF_WARN("Relocation {} not supported!", to_string(type));
-        }
+      {
+        LIEF_WARN("Relocation {} not supported", to_string(type));
+      }
     }
   }
 }
@@ -225,9 +214,8 @@ template<>
 void Binary::patch_relocations<ARCH::X86_64>(uint64_t from, uint64_t shift) {
   for (Relocation& relocation : relocations()) {
     if (relocation.address() >= from) {
-      LIEF_DEBUG("{:23}: 0x{:010x} -> 0x{:010x}",
-          to_string(relocation.type()), relocation.address(),
-          relocation.address() + shift);
+      LIEF_DEBUG("{:23}: {:#012x} -> {:#012x}", to_string(relocation.type()),
+                 relocation.address(), relocation.address() + shift);
       relocation.address(relocation.address() + shift);
     }

@@ -239,21 +227,21 @@ void Binary::patch_relocations<ARCH::X86_64>(uint64_t from, uint64_t shift) {
       case Relocation::TYPE::X86_64_JUMP_SLOT:
       case Relocation::TYPE::X86_64_GLOB_DAT:
       case Relocation::TYPE::X86_64_64:
-        {
-          patch_addend<uint64_t>(relocation, from, shift);
-          break;
-        }
+      {
+        patch_addend<uint64_t>(relocation, from, shift);
+        break;
+      }

       case Relocation::TYPE::X86_64_32:
-        {
-          patch_addend<uint32_t>(relocation, from, shift);
-          break;
-        }
+      {
+        patch_addend<uint32_t>(relocation, from, shift);
+        break;
+      }

       default:
-        {
-          LIEF_DEBUG("Relocation {} is not patched", to_string(type));
-        }
+      {
+        LIEF_DEBUG("Relocation {} is not patched", to_string(type));
+      }
     }
   }
 }
@@ -274,16 +262,16 @@ void Binary::patch_relocations<ARCH::PPC>(uint64_t from, uint64_t shift) {
     switch (type) {
       case Relocation::TYPE::PPC_RELATIVE:
       case Relocation::TYPE::PPC_JMP_SLOT:
-        {
-          LIEF_DEBUG("Patch addend of {}", to_string(relocation));
-          patch_addend<uint32_t>(relocation, from, shift);
-          break;
-        }
+      {
+        LIEF_DEBUG("Patch addend of {}", to_string(relocation));
+        patch_addend<uint32_t>(relocation, from, shift);
+        break;
+      }

       default:
-        {
-          LIEF_DEBUG("Relocation {} is not patched", to_string(type));
-        }
+      {
+        LIEF_DEBUG("Relocation {} is not patched", to_string(type));
+      }
     }
   }
 }
@@ -305,35 +293,35 @@ void Binary::patch_relocations<ARCH::RISCV>(uint64_t from, uint64_t shift) {
       case Relocation::TYPE::RISCV_32:
       case Relocation::TYPE::RISCV_TLS_DTPREL32:
       case Relocation::TYPE::RISCV_TLS_TPREL32:
-        {
-          LIEF_DEBUG("Patch addend of {}", to_string(relocation));
-          patch_addend<uint32_t>(relocation, from, shift);
-          break;
-        }
+      {
+        LIEF_DEBUG("Patch addend of {}", to_string(relocation));
+        patch_addend<uint32_t>(relocation, from, shift);
+        break;
+      }

       case Relocation::TYPE::RISCV_64:
       case Relocation::TYPE::RISCV_TLS_DTPMOD64:
       case Relocation::TYPE::RISCV_TLS_DTPREL64:
       case Relocation::TYPE::RISCV_TLS_TPREL64:
-        {
-          LIEF_DEBUG("Patch addend of {}", to_string(relocation));
-          patch_addend<uint64_t>(relocation, from, shift);
-          break;
-        }
+      {
+        LIEF_DEBUG("Patch addend of {}", to_string(relocation));
+        patch_addend<uint64_t>(relocation, from, shift);
+        break;
+      }

       case Relocation::TYPE::RISCV_RELATIVE:
       case Relocation::TYPE::RISCV_IRELATIVE:
-        {
-          LIEF_DEBUG("Patch addend of {}", to_string(relocation));
-          is64 ? patch_addend<uint64_t>(relocation, from, shift) :
-                 patch_addend<uint32_t>(relocation, from, shift);
-          break;
-        }
+      {
+        LIEF_DEBUG("Patch addend of {}", to_string(relocation));
+        is64 ? patch_addend<uint64_t>(relocation, from, shift) :
+               patch_addend<uint32_t>(relocation, from, shift);
+        break;
+      }

       default:
-        {
-          LIEF_DEBUG("Relocation {} is not patched", to_string(type));
-        }
+      {
+        LIEF_DEBUG("Relocation {} is not patched", to_string(type));
+      }
     }
   }
 }
@@ -355,15 +343,15 @@ void Binary::patch_relocations<ARCH::SH>(uint64_t from, uint64_t shift) {
       case Relocation::TYPE::SH_DIR32:
       case Relocation::TYPE::SH_REL32:
       case Relocation::TYPE::SH_JMP_SLOT:
-        {
-          LIEF_DEBUG("Patch addend of {}", to_string(relocation));
-          patch_addend<uint32_t>(relocation, from, shift);
-          break;
-        }
+      {
+        LIEF_DEBUG("Patch addend of {}", to_string(relocation));
+        patch_addend<uint32_t>(relocation, from, shift);
+        break;
+      }
       default:
-        {
-          LIEF_DEBUG("Relocation {} is not patched", to_string(type));
-        }
+      {
+        LIEF_DEBUG("Relocation {} is not patched", to_string(type));
+      }
     }
   }
 }
@@ -382,15 +370,15 @@ void Binary::patch_relocations<ARCH::PPC64>(uint64_t from, uint64_t shift) {
     switch (type) {
       case Relocation::TYPE::PPC64_JMP_SLOT:
       case Relocation::TYPE::PPC64_RELATIVE:
-        {
-          LIEF_DEBUG("Patch addend of {}", to_string(relocation));
-          patch_addend<uint64_t>(relocation, from, shift);
-          break;
-        }
+      {
+        LIEF_DEBUG("Patch addend of {}", to_string(relocation));
+        patch_addend<uint64_t>(relocation, from, shift);
+        break;
+      }
       default:
-        {
-          LIEF_DEBUG("Relocation {} is not patched", to_string(type));
-        }
+      {
+        LIEF_DEBUG("Relocation {} is not patched", to_string(type));
+      }
     }
   }
 }
@@ -415,16 +403,16 @@ void Binary::patch_relocations<ARCH::S390>(uint64_t from, uint64_t shift) {
       case Relocation::TYPE::SYSZ_IRELATIVE:
       case Relocation::TYPE::SYSZ_GLOB_DAT:
       case Relocation::TYPE::SYSZ_64:
-        {
-          LIEF_DEBUG("Patch addend of {}", to_string(relocation));
-          is64 ? patch_addend<uint64_t>(relocation, from, shift) :
-                 patch_addend<uint32_t>(relocation, from, shift);
-          break;
-        }
+      {
+        LIEF_DEBUG("Patch addend of {}", to_string(relocation));
+        is64 ? patch_addend<uint64_t>(relocation, from, shift) :
+               patch_addend<uint32_t>(relocation, from, shift);
+        break;
+      }
       default:
-        {
-          LIEF_DEBUG("Relocation {} is not patched", to_string(type));
-        }
+      {
+        LIEF_DEBUG("Relocation {} is not patched", to_string(type));
+      }
     }
   }
 }
@@ -433,21 +421,21 @@ void Binary::patch_relocations<ARCH::S390>(uint64_t from, uint64_t shift) {
 template<class T>
 void Binary::patch_addend(Relocation& relocation, uint64_t from, uint64_t shift) {
   if (static_cast<uint64_t>(relocation.addend()) >= from) {
-    LIEF_DEBUG("(addend) {:23}: 0x{:010x} -> 0x{:010x}",
-        to_string(relocation.type()), relocation.addend(),
-        relocation.addend() + shift);
+    LIEF_DEBUG("(addend) {:23}: {:#012x} -> {:#012x}",
+               to_string(relocation.type()), relocation.addend(),
+               relocation.addend() + shift);
     relocation.addend(relocation.addend() + shift);
   }

   const uint64_t address = relocation.address();
   Segment* segment = segment_from_virtual_address(address);
   if (segment == nullptr) {
-    LIEF_ERR("Can't find segment with the virtual address 0x{:x}", address);
+    LIEF_ERR("Can't find segment with the virtual address {:#x}", address);
   }

   auto res_offset = virtual_address_to_offset(address);
   if (!res_offset) {
-    LIEF_ERR("Can't convert the virtual address 0x{:06x} into an offset", address);
+    LIEF_ERR("Can't convert the virtual address {:#08x} into an offset", address);
     return;
   }
   const uint64_t relative_offset = *res_offset - segment->file_offset();
@@ -459,7 +447,9 @@ void Binary::patch_addend(Relocation& relocation, uint64_t from, uint64_t shift)
     return;
   }

-  if (relative_offset >= segment_size || (relative_offset + sizeof(T)) > segment_size) {
+  if (relative_offset >= segment_size ||
+      (relative_offset + sizeof(T)) > segment_size)
+  {
     LIEF_DEBUG("Offset out of bound for relocation: {}", to_string(relocation));
     return;
   }
@@ -492,17 +482,18 @@ void Binary::patch_addend(Relocation& relocation, uint64_t from, uint64_t shift)
 //
 // segment_va % pagesize() == segment_offset % pagesize()
 //
-// It implies that we usually find "cave" between segments
-// that could can be large enough to insert our new phdr table.
+// It implies that we usually find "caves" between segments
+// that could be large enough to insert our new phdr table.
 // To do so, we would just need to extend the PT_LOAD segment associated
 // with the caving.
 template<>
-Segment* Binary::add_segment<Header::FILE_TYPE::EXEC>(const Segment& segment, uint64_t base) {
+Segment* Binary::add_segment<Header::FILE_TYPE::EXEC>(const Segment& segment,
+                                                      uint64_t base) {
   Header& header = this->header();
   const uint64_t new_phdr_offset = relocate_phdr_table_auto();

   if (new_phdr_offset == 0) {
-    LIEF_ERR("We can't relocate the PHDR table for this binary.");
+    LIEF_ERR("Failed to relocate the PHDR table for this binary");
     return nullptr;
   }

@@ -515,19 +506,26 @@ Segment* Binary::add_segment<Header::FILE_TYPE::EXEC>(const Segment& segment, ui
   // ====================================================================
   header.numberof_segments(header.numberof_segments() + 1);
   span<const uint8_t> content_ref = segment.content();
-  std::vector<uint8_t> content{content_ref.data(), std::end(content_ref)};
+  std::vector<uint8_t> content{content_ref.data(), content_ref.end()};
   auto new_segment = std::make_unique<Segment>(segment);

   uint64_t last_offset_sections = last_offset_section();
   uint64_t last_offset_segments = last_offset_segment();


-  uint64_t last_offset = std::max<uint64_t>(last_offset_sections, last_offset_segments);
+  uint64_t last_offset =
+      std::max<uint64_t>(last_offset_sections, last_offset_segments);

   const auto psize = page_size();
   const uint64_t last_offset_aligned = align(last_offset, psize);
   new_segment->file_offset(last_offset_aligned);

+  init_alignment(*this, *new_segment, this->ptr_size());
+
+  if (base == 0) {
+    base = align(next_virtual_address(), new_segment->alignment());
+  }
+
   if (segment.virtual_address() == 0) {
     new_segment->virtual_address(base + last_offset_aligned);
   }
@@ -541,36 +539,45 @@ Segment* Binary::add_segment<Header::FILE_TYPE::EXEC>(const Segment& segment, ui
   new_segment->physical_size(segmentsize);
   new_segment->virtual_size(segmentsize);

-
-  init_alignment(*this, *new_segment, this->ptr_size());
-
   new_segment->datahandler_ = datahandler_.get();

-  DataHandler::Node new_node{new_segment->file_offset(), new_segment->physical_size(),
+  DataHandler::Node new_node{new_segment->file_offset(),
+                             new_segment->physical_size(),
                              DataHandler::Node::SEGMENT};
   datahandler_->add(new_node);
-  auto alloc = datahandler_->make_hole(last_offset_aligned, new_segment->physical_size());
+  auto alloc =
+      datahandler_->make_hole(last_offset_aligned, new_segment->physical_size());
   if (!alloc) {
     LIEF_ERR("Allocation failed");
     return nullptr;
   }
   new_segment->content(content);

-  if (header.section_headers_offset() <= new_segment->file_offset() + new_segment->physical_size()) {
-    header.section_headers_offset(new_segment->file_offset() + new_segment->physical_size());
+  if (header.section_headers_offset() <=
+      new_segment->file_offset() + new_segment->physical_size())
+  {
+    header.section_headers_offset(align(
+        new_segment->file_offset() + new_segment->physical_size(), ptr_size()
+    ));
   }

-  const auto it_new_segment_place = std::find_if(segments_.rbegin(), segments_.rend(),
-      [&new_segment] (const std::unique_ptr<Segment>& s) { return s->type() == new_segment->type(); });
+  const auto it_new_segment_place =
+      std::find_if(segments_.rbegin(), segments_.rend(),
+                   [&new_segment](const std::unique_ptr<Segment>& s) {
+                     return s->type() == new_segment->type();
+                   });

-  Segment* seg_ptr = new_segment.get();
+  Segment* seg_ptr = nullptr;
   if (it_new_segment_place == segments_.rend()) {
-    segments_.push_back(std::move(new_segment));
+    seg_ptr = segments_.emplace_back(std::move(new_segment)).get();
   } else {
-    const size_t idx = std::distance(std::begin(segments_), it_new_segment_place.base());
-    segments_.insert(std::begin(segments_) + idx, std::move(new_segment));
+    const size_t idx =
+        std::distance(segments_.begin(), it_new_segment_place.base());
+    seg_ptr =
+        segments_.insert(segments_.begin() + idx, std::move(new_segment))->get();
   }
   phdr_reloc_info_.nb_segments--;
+  assert(seg_ptr != nullptr);
   return seg_ptr;
 }

@@ -578,7 +585,8 @@ Segment* Binary::add_segment<Header::FILE_TYPE::EXEC>(const Segment& segment, ui
 // ET_DYN (PIE/Libraries)
 // =======================
 template<>
-Segment* Binary::add_segment<Header::FILE_TYPE::DYN>(const Segment& segment, uint64_t base) {
+Segment* Binary::add_segment<Header::FILE_TYPE::DYN>(const Segment& segment,
+                                                     uint64_t base) {
   const auto psize = page_size();
   const auto ptr_size = this->ptr_size();
   /*const uint64_t new_phdr_offset = */ relocate_phdr_table_auto();
@@ -588,27 +596,43 @@ Segment* Binary::add_segment<Header::FILE_TYPE::DYN>(const Segment& segment, uin
   auto new_segment = std::make_unique<Segment>(segment);
   new_segment->datahandler_ = datahandler_.get();

-  DataHandler::Node new_node{new_segment->file_offset(), new_segment->physical_size(),
+  DataHandler::Node new_node{new_segment->file_offset(),
+                             new_segment->physical_size(),
                              DataHandler::Node::SEGMENT};
   datahandler_->add(new_node);

   init_alignment(*this, *new_segment, ptr_size);

+  // We attempt to carry over the in-page offset for purpose of code or data
+  // alignment.
+  const uint64_t in_page_offset = segment.file_offset() % psize;
+
   const uint64_t last_offset_segments = last_offset_segment();
-  const uint64_t last_offset          = last_offset_segments;
-  const uint64_t last_offset_aligned  = align(last_offset, 0x10);
-  if (base == 0) {
-    base = align(next_virtual_address(), psize);
-  }
+  const uint64_t last_offset = last_offset_segments;
+  const uint64_t last_offset_aligned =
+      align_with_offset(last_offset, psize, in_page_offset);
+  LIEF_DEBUG("Last offset: {:#010x}", last_offset_aligned);
+  LIEF_DEBUG("Base:        {:#010x}", base);

-  uint64_t segmentsize = align(content.size(), 0x10);
+  auto segmentsize = align_up<uint64_t>(content.size(), 0x10);

   const uint64_t delta = last_offset_aligned + segmentsize - last_offset;

   shift_sections(last_offset, delta);

   new_segment->file_offset(last_offset_aligned);
-  new_segment->virtual_address(new_segment->file_offset() + base);
+  if (base == 0) {
+    const uint64_t alignment = new_segment->alignment();
+    const uint64_t next_va = next_virtual_address();
+    uint64_t virtual_address =
+        align_down(next_va, alignment) + new_segment->file_offset() % alignment;
+    if (virtual_address < next_va) {
+      virtual_address += alignment;
+    }
+    new_segment->virtual_address(virtual_address);
+  } else {
+    new_segment->virtual_address(new_segment->file_offset() + base);
+  }
   new_segment->physical_address(new_segment->virtual_address());

   new_segment->handler_size_ = content.size();
@@ -617,9 +641,12 @@ Segment* Binary::add_segment<Header::FILE_TYPE::DYN>(const Segment& segment, uin

   // Patch SHDR
   Header& header = this->header();
-  header.section_headers_offset(header.section_headers_offset() + delta);
+  if (header.section_headers_offset() >= last_offset) {
+    header.section_headers_offset(align(header.section_headers_offset() + delta,
+                                        ptr_size));
+  }

-  auto alloc = datahandler_->make_hole(last_offset_aligned, new_segment->physical_size());
+  auto alloc = datahandler_->make_hole(last_offset, delta);

   if (!alloc) {
     LIEF_ERR("Allocation failed");
@@ -630,21 +657,23 @@ Segment* Binary::add_segment<Header::FILE_TYPE::DYN>(const Segment& segment, uin

   header.numberof_segments(header.numberof_segments() + 1);

-  const auto& it_new_segment_place = std::find_if(
-      segments_.rbegin(), segments_.rend(),
-      [&new_segment] (const std::unique_ptr<Segment>& s) {
-        return s->type() == new_segment->type();
-      });
+  const auto& it_new_segment_place =
+      std::find_if(segments_.rbegin(), segments_.rend(),
+                   [&new_segment](const std::unique_ptr<Segment>& s) {
+                     return s->type() == new_segment->type();
+                   });

-  Segment* seg_ptr = new_segment.get();
+  Segment* seg_ptr = nullptr;

   if (it_new_segment_place == segments_.rend()) {
-    segments_.push_back(std::move(new_segment));
+    seg_ptr = segments_.emplace_back(std::move(new_segment)).get();
   } else {
-    const size_t idx = std::distance(std::begin(segments_), it_new_segment_place.base());
-    segments_.insert(std::begin(segments_) + idx, std::move(new_segment));
+    const size_t idx =
+        std::distance(segments_.begin(), it_new_segment_place.base());
+    seg_ptr =
+        segments_.insert(segments_.begin() + idx, std::move(new_segment))->get();
   }
-
+  assert(seg_ptr != nullptr);
   return seg_ptr;
 }

@@ -653,14 +682,16 @@ Segment* Binary::add_segment<Header::FILE_TYPE::DYN>(const Segment& segment, uin
 // Extend PT_LOAD
 // =======================
 template<>
-Segment* Binary::extend_segment<Segment::TYPE::LOAD>(const Segment& segment, uint64_t size) {
+Segment* Binary::extend_segment<Segment::TYPE::LOAD>(const Segment& segment,
+                                                     uint64_t size) {

-  const auto it_segment = std::find_if(std::begin(segments_), std::end(segments_),
-                                       [&segment] (const std::unique_ptr<Segment>& s) {
-                                          return *s == segment;
-                                       });
+  const auto it_segment =
+      std::find_if(segments_.begin(), segments_.end(),
+                   [&segment](const std::unique_ptr<Segment>& s) {
+                     return *s == segment;
+                   });

-  if (it_segment == std::end(segments_)) {
+  if (it_segment == segments_.end()) {
     LIEF_ERR("Unable to find the segment in the current binary");
     return nullptr;
   }
@@ -668,13 +699,15 @@ Segment* Binary::extend_segment<Segment::TYPE::LOAD>(const Segment& segment, uin
   std::unique_ptr<Segment>& segment_to_extend = *it_segment;


-  uint64_t from_offset  = segment_to_extend->file_offset() + segment_to_extend->physical_size();
-  uint64_t from_address = segment_to_extend->virtual_address() + segment_to_extend->virtual_size();
-  uint64_t shift        = size;
+  uint64_t from_offset =
+      segment_to_extend->file_offset() + segment_to_extend->physical_size();
+  uint64_t from_address =
+      segment_to_extend->virtual_address() + segment_to_extend->virtual_size();
+  uint64_t shift = size;

   auto alloc = datahandler_->make_hole(
-      segment_to_extend->file_offset() + segment_to_extend->physical_size(),
-      size);
+      segment_to_extend->file_offset() + segment_to_extend->physical_size(), size
+  );

   if (!alloc) {
     LIEF_ERR("Allocation failed");
@@ -689,13 +722,14 @@ Segment* Binary::extend_segment<Segment::TYPE::LOAD>(const Segment& segment, uin
   segment_to_extend->virtual_size(segment_to_extend->virtual_size() + size);

   span<const uint8_t> content_ref = segment_to_extend->content();
-  std::vector<uint8_t> segment_content{content_ref.data(), std::end(content_ref)};
+  std::vector<uint8_t> segment_content{content_ref.data(), content_ref.end()};

   segment_content.resize(segment_to_extend->physical_size(), 0);
   segment_to_extend->content(segment_content);

   // Patches
-  header().section_headers_offset(header().section_headers_offset() + shift);
+  header().section_headers_offset(align(header().section_headers_offset() + shift,
+                                        ptr_size()));

   shift_dynamic_entries(from_address, shift);
   shift_symbols(from_address, shift);
@@ -743,8 +777,7 @@ inline Segment seg_for_section(const Section& section) {

 template<>
 Section* Binary::add_section</*loaded=*/true>(const Section& section,
-                                              SEC_INSERT_POS pos)
-{
+                                              SEC_INSERT_POS pos) {
   LIEF_DEBUG("Adding section '{}' as LOADED", section.name());
   if (pos != SEC_INSERT_POS::AUTO && pos != SEC_INSERT_POS::POST_SEGMENT) {
     LIEF_ERR("Unsupported position for inserting loaded section");
@@ -757,8 +790,8 @@ Section* Binary::add_section</*loaded=*/true>(const Section& section,
     return nullptr;
   }

-  LIEF_DEBUG("Segment associated: {}@0x{:x}",
-             to_string(segment_added->type()), segment_added->virtual_address());
+  LIEF_DEBUG("Segment associated: {}@{:#x}", to_string(segment_added->type()),
+             segment_added->virtual_address());

   auto new_section = std::make_unique<Section>(section);
   new_section->datahandler_ = datahandler_.get();
@@ -782,8 +815,7 @@ Section* Binary::add_section</*loaded=*/true>(const Section& section,
 // Add a non-loaded section
 template<>
 Section* Binary::add_section</*loaded=*/false>(const Section& section,
-                                               SEC_INSERT_POS pos)
-{
+                                               SEC_INSERT_POS pos) {
   auto new_section = std::make_unique<Section>(section);
   new_section->datahandler_ = datahandler_.get();

@@ -797,9 +829,7 @@ Section* Binary::add_section</*loaded=*/false>(const Section& section,
   uint64_t last_offset = 0;
   switch (pos) {
     case SEC_INSERT_POS::AUTO:
-    case SEC_INSERT_POS::POST_SEGMENT:
-      last_offset = last_offset_segments;
-      break;
+    case SEC_INSERT_POS::POST_SEGMENT: last_offset = last_offset_segments; break;
     case SEC_INSERT_POS::POST_SECTION:
       last_offset = std::max(last_offset_segments, last_offset_sections);
       break;
@@ -823,7 +853,7 @@ Section* Binary::add_section</*loaded=*/false>(const Section& section,
   Header& header = this->header();
   header.numberof_sections(header.numberof_sections() + 1);
   const uint64_t new_section_hdr_offset = header.section_headers_offset() + delta;
-  header.section_headers_offset(new_section_hdr_offset);
+  header.section_headers_offset(align(new_section_hdr_offset, ptr_size()));
   return add_section(std::move(new_section));
 }

@@ -836,10 +866,11 @@ void Binary::fix_got_entries(uint64_t from, uint64_t shift) {
     return;
   }
   const uint64_t addr = dt_pltgot->value();
-  span<const uint8_t> content = get_content_from_virtual_address(addr, 3 * sizeof(ptr_t));
+  span<const uint8_t> content =
+      get_content_from_virtual_address(addr, 3 * sizeof(ptr_t));
   std::vector<uint8_t> content_vec(content.begin(), content.end());
   if (content.size() != 3 * sizeof(ptr_t)) {
-    LIEF_ERR("Can't read got entries!");
+    LIEF_ERR("Failed to read GOT entries");
     return;
   }

@@ -855,4 +886,3 @@ void Binary::fix_got_entries(uint64_t from, uint64_t shift) {
 }

 }
-}
diff --git a/deps/LIEF/src/ELF/Builder.cpp b/deps/LIEF/src/ELF/Builder.cpp
index 7f6e86310f1..ead54ee3dcb 100644
--- a/deps/LIEF/src/ELF/Builder.cpp
+++ b/deps/LIEF/src/ELF/Builder.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -32,36 +32,35 @@
 #include "ExeLayout.hpp"
 #include "ObjectFileLayout.hpp"

-namespace LIEF {
-namespace ELF {
+
+namespace LIEF::ELF {

 Builder::~Builder() = default;

 Builder::Builder(Binary& binary, const config_t& config) :
   config_{config},
-  binary_{&binary}
-{
+  binary_{&binary} {
   const Header::FILE_TYPE type = binary.header().file_type();
   switch (type) {
     case Header::FILE_TYPE::CORE:
     case Header::FILE_TYPE::DYN:
     case Header::FILE_TYPE::EXEC:
-      {
-        layout_ = std::make_unique<ExeLayout>(binary, should_swap(), config_);
-        break;
-      }
+    {
+      layout_ = std::make_unique<ExeLayout>(binary, should_swap(), config_);
+      break;
+    }

     case Header::FILE_TYPE::REL:
-      {
-        layout_ = std::make_unique<ObjectFileLayout>(binary, should_swap(), config_);
-        break;
-      }
+    {
+      layout_ = std::make_unique<ObjectFileLayout>(binary, should_swap(), config_);
+      break;
+    }

     default:
-      {
-        LIEF_ERR("ELF {} are not supported", to_string(type));
-        std::abort();
-      }
+    {
+      LIEF_ERR("Unsupported ELF type: {}", to_string(type));
+      std::abort();
+    }
   }
   ios_.reserve(binary.original_size());
   ios_.set_endian_swap(should_swap());
@@ -71,15 +70,20 @@ Builder::Builder(Binary& binary, const config_t& config) :
 bool Builder::should_swap() const {
   switch (binary_->get_abstract_header().endianness()) {
 #ifdef __BYTE_ORDER__
-#if  defined(__ORDER_LITTLE_ENDIAN__) && (__BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__)
+  #if defined(__ORDER_LITTLE_ENDIAN__) &&                                         \
+      (__BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__)
     case LIEF::Header::ENDIANNESS::BIG:
-#elif defined(__ORDER_BIG_ENDIAN__) && (__BYTE_ORDER__ == __ORDER_BIG_ENDIAN__)
+  #elif defined(__ORDER_BIG_ENDIAN__) && (__BYTE_ORDER__ == __ORDER_BIG_ENDIAN__)
     case LIEF::Header::ENDIANNESS::LITTLE:
-#endif
+  #endif
       return true;
-#endif // __BYTE_ORDER__
+#else
+    // If there is no __BYTE_ORDER__ (e.g. MSVC), assume little-endian
+    case LIEF::Header::ENDIANNESS::BIG: return true;
+#endif
     default:
-      // we're good (or don't know what to do), consider bytes are in the expected order
+      // we're good (or don't know what to do), consider bytes are in the expected
+      // order
       return false;
   }
 }
@@ -92,8 +96,8 @@ void Builder::build() {
     return;
   }

-  auto res = binary_->type() == Header::CLASS::ELF32 ?
-             build<details::ELF32>() : build<details::ELF64>();
+  auto res = binary_->type() == Header::CLASS::ELF32 ? build<details::ELF32>() :
+                                                       build<details::ELF64>();
   if (!res) {
     LIEF_ERR("Builder failed");
   }
@@ -104,9 +108,10 @@ const std::vector<uint8_t>& Builder::get_build() {
 }

 void Builder::write(const std::string& filename) const {
-  std::ofstream output_file{filename, std::ios::out | std::ios::binary | std::ios::trunc};
+  std::ofstream output_file{filename,
+                            std::ios::out | std::ios::binary | std::ios::trunc};
   if (!output_file) {
-    LIEF_ERR("Can't open {}!", filename);
+    LIEF_ERR("Failed to open {}", filename);
     return;
   }
   write(output_file);
@@ -119,53 +124,57 @@ void Builder::write(std::ostream& os) const {
 }

 uint32_t Builder::sort_dynamic_symbols() {
-  const auto it_begin = std::begin(binary_->dynamic_symbols_);
-  const auto it_end = std::end(binary_->dynamic_symbols_);
+  const auto it_begin = binary_->dynamic_symbols_.begin();
+  const auto it_end = binary_->dynamic_symbols_.end();

   const auto it_first_non_local_symbol =
       std::stable_partition(it_begin, it_end,
-      [] (const std::unique_ptr<Symbol>& sym) {
-        return sym->is_local();
-      });
+                            [](const std::unique_ptr<Symbol>& sym) {
+                              return sym->is_local();
+                            });

-  const uint32_t first_non_local_symbol_index = std::distance(it_begin, it_first_non_local_symbol);
+  const uint32_t first_non_local_symbol_index =
+      std::distance(it_begin, it_first_non_local_symbol);

   if (Section* section = binary_->get_section(".dynsym")) {
     if (section->information() != first_non_local_symbol_index) {
       // TODO: Erase null entries of dynamic symbol table and symbol version
-      // table if information of .dynsym section is smaller than null entries
-      // num.
-      LIEF_DEBUG("information of {} section changes from {:d} to {:d}",
-                 section->name(), section->information(), first_non_local_symbol_index);
+      // table if the .dynsym section info is smaller than the number of null
+      // entries.
+      LIEF_DEBUG("Info field of {} section changed from {:d} to {:d}",
+                 section->name(), section->information(),
+                 first_non_local_symbol_index);

       section->information(first_non_local_symbol_index);
     }
   }

-  const auto it_first_exported_symbol = std::stable_partition(
-      it_first_non_local_symbol, it_end, [] (const std::unique_ptr<Symbol>& sym) {
-        return sym->shndx() == Symbol::SECTION_INDEX::UNDEF;
-      });
+  const auto it_first_exported_symbol =
+      std::stable_partition(it_first_non_local_symbol, it_end,
+                            [](const std::unique_ptr<Symbol>& sym) {
+                              return sym->shndx() == Symbol::SECTION_INDEX::UNDEF;
+                            });

-  const uint32_t first_exported_symbol_index = std::distance(it_begin, it_first_exported_symbol);
+  const uint32_t first_exported_symbol_index =
+      std::distance(it_begin, it_first_exported_symbol);
   return first_exported_symbol_index;
 }


 ok_error_t Builder::build_empty_symbol_gnuhash() {
-  LIEF_DEBUG("Build empty GNU Hash");
+  LIEF_DEBUG("Building empty GNU hash");
   Section* gnu_hash_section = binary_->get(Section::TYPE::GNU_HASH);

   if (gnu_hash_section == nullptr) {
-    LIEF_ERR("Can't find section with type SHT_GNU_HASH");
+    LIEF_ERR("SHT_GNU_HASH section not found");
     return make_error_code(lief_errors::not_found);
   }

   vector_iostream content(should_swap());
   const uint32_t nb_buckets = 1;
-  const uint32_t shift2     = 0;
-  const uint32_t maskwords  = 1;
-  const uint32_t symndx     = 1; // 0 is reserved
+  const uint32_t shift2 = 0;
+  const uint32_t maskwords = 1;
+  const uint32_t symndx = 1; // 0 is reserved

   // nb_buckets
   content.write<uint32_t>(nb_buckets);
@@ -186,36 +195,34 @@ ok_error_t Builder::build_empty_symbol_gnuhash() {
 }

 ok_error_t Builder::update_note_section(const Note& note,
-                                        std::set<const Note*>& notes)
-{
+                                        std::set<const Note*>& notes) {
   Segment* segment_note = binary_->get(Segment::TYPE::NOTE);
   if (segment_note == nullptr) {
-    LIEF_ERR("Can't find the PT_NOTE segment");
+    LIEF_ERR("PT_NOTE segment not found");
     return make_error_code(lief_errors::not_found);
   }

   auto res_secname = Note::type_to_section(note.type());
   if (!res_secname) {
-    LIEF_ERR("LIEF doesn't know the section name for note: '{}'",
-             to_string(note.type()));
+    LIEF_ERR("Unknown section name for note '{}'", to_string(note.type()));
     return make_error_code(lief_errors::not_supported);
   }

   Section* note_sec = binary_->get_section(*res_secname);
   if (!note_sec) {
-    LIEF_ERR("Section {} not present", *res_secname);
+    LIEF_ERR("Section '{}' not found", *res_secname);
     return make_error_code(lief_errors::not_found);
   }

   const auto& offset_map = static_cast<ExeLayout*>(layout_.get())->note_off_map();
   auto it_offset = offset_map.find(&note);
   if (it_offset == offset_map.end()) {
-    LIEF_ERR("Can't find offset for note '{}'", to_string(note.type()));
+    LIEF_ERR("Offset not found for note '{}'", to_string(note.type()));
     return make_error_code(lief_errors::not_found);
   }

   if (!notes.insert(&note).second) {
-    LIEF_DEBUG("Note '{}' has already been processed", to_string(note.type()));
+    LIEF_DEBUG("Note '{}' already processed", to_string(note.type()));
     note_sec->virtual_address(0);
     note_sec->size(note_sec->size() + note.size());
     return ok_t();
@@ -239,4 +246,3 @@ ok_error_t Builder::update_note_section(const Note& note,
 }

 }
-}
diff --git a/deps/LIEF/src/ELF/Builder.tcc b/deps/LIEF/src/ELF/Builder.tcc
index 11aeb061c71..2ff5b637758 100644
--- a/deps/LIEF/src/ELF/Builder.tcc
+++ b/deps/LIEF/src/ELF/Builder.tcc
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  * Copyright 2017 - 2021, NVIDIA CORPORATION. All rights reserved.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
@@ -17,15 +17,11 @@
 #include <algorithm>
 #include <cassert>
 #include <iterator>
-#include <numeric>
 #include <unordered_map>

 #include "logging.hpp"

-#include "LIEF/BinaryStream/VectorStream.hpp"
-
 #include "LIEF/ELF/utils.hpp"
-#include "LIEF/ELF/EnumToString.hpp"
 #include "LIEF/ELF/Builder.hpp"
 #include "LIEF/ELF/Binary.hpp"
 #include "LIEF/ELF/Section.hpp"
@@ -35,12 +31,13 @@
 #include "LIEF/ELF/DynamicEntryArray.hpp"
 #include "LIEF/ELF/DynamicEntryLibrary.hpp"
 #include "LIEF/ELF/DynamicSharedObject.hpp"
+#include "LIEF/ELF/DynamicEntryAuxiliary.hpp"
+#include "LIEF/ELF/DynamicEntryFilter.hpp"
 #include "LIEF/ELF/DynamicEntryRunPath.hpp"
 #include "LIEF/ELF/DynamicEntryRpath.hpp"
 #include "LIEF/ELF/Relocation.hpp"
 #include "LIEF/ELF/SymbolVersion.hpp"
 #include "LIEF/ELF/SymbolVersionDefinition.hpp"
-#include "LIEF/ELF/SymbolVersionAux.hpp"
 #include "LIEF/ELF/SymbolVersionRequirement.hpp"
 #include "LIEF/ELF/SymbolVersionAuxRequirement.hpp"
 #include "LIEF/ELF/Note.hpp"
@@ -54,26 +51,29 @@
 #include "ObjectFileLayout.hpp"
 #include "internal_utils.hpp"

-namespace LIEF {
-namespace ELF {
+
+namespace LIEF::ELF {

 template<class ELF_T>
 ok_error_t Builder::build() {
-  const char* type = ((binary_->type_ == Header::CLASS::ELF32) ? "ELF32" : "ELF64");
-  LIEF_DEBUG("== Re-building {} ==", type);
+  const char* type =
+      ((binary_->type_ == Header::CLASS::ELF32) ? "ELF32" : "ELF64");
+  LIEF_DEBUG("Rebuilding {}", type);

   if (!config_.keep_empty_version_requirement) {
     binary_->symbol_version_requirements_.erase(
-      std::remove_if(binary_->symbol_version_requirements_.begin(), binary_->symbol_version_requirements_.end(),
-        [] (const std::unique_ptr<SymbolVersionRequirement>& req) {
-          if constexpr (lief_logging_debug) {
-            if (req->auxiliary_symbols().empty()) {
-              LIEF_DEBUG("Removing: {}", req->name());
-            }
-          }
-          return req->auxiliary_symbols().empty();
-        }
-      ), binary_->symbol_version_requirements_.end());
+        std::remove_if(binary_->symbol_version_requirements_.begin(),
+                       binary_->symbol_version_requirements_.end(),
+                       [](const std::unique_ptr<SymbolVersionRequirement>& req) {
+                         if constexpr (lief_logging_debug) {
+                           if (req->auxiliary_symbols().empty()) {
+                             LIEF_DEBUG("Removing: {}", req->name());
+                           }
+                         }
+                         return req->auxiliary_symbols().empty();
+                       }),
+        binary_->symbol_version_requirements_.end()
+    );
     if (DynamicEntry* dt = binary_->get(DynamicEntry::TAG::VERNEEDNUM)) {
       dt->value(binary_->symbol_version_requirements_.size());
     }
@@ -99,32 +99,32 @@ ok_error_t Builder::build() {
     case Header::FILE_TYPE::DYN:
     case Header::FILE_TYPE::EXEC:
     case Header::FILE_TYPE::CORE:
-      {
-        auto res = build_exe_lib<ELF_T>();
-        if (!res) {
-          LIEF_ERR("The builder failed for the given executable/library. "
-                   "Check the error output");
-          return make_error_code(lief_errors::build_error);
-        }
-        return ok();
+    {
+      auto res = build_exe_lib<ELF_T>();
+      if (!res) {
+        LIEF_ERR("The builder failed for the given executable/library. "
+                 "Check the error output");
+        return make_error_code(lief_errors::build_error);
       }
+      return ok();
+    }

     case Header::FILE_TYPE::REL:
-      {
-        auto res = build_relocatable<ELF_T>();
-        if (!res) {
-          LIEF_ERR("The builder failed for the given object file. "
-                   "Check the error output");
-          return make_error_code(lief_errors::build_error);
-        }
-        return ok();
+    {
+      auto res = build_relocatable<ELF_T>();
+      if (!res) {
+        LIEF_ERR("The builder failed for the given object file. "
+                 "Check the error output");
+        return make_error_code(lief_errors::build_error);
       }
+      return ok();
+    }

     default:
-      {
-        LIEF_ERR("ELF file '{}' are not supported by LIEF", to_string(file_type));
-        return make_error_code(lief_errors::not_supported);
-      }
+    {
+      LIEF_ERR("ELF file '{}' are not supported by LIEF", to_string(file_type));
+      return make_error_code(lief_errors::not_supported);
+    }
   }
 }

@@ -141,12 +141,17 @@ ok_error_t Builder::build_exe_lib() {
     if (pt_interp != nullptr) {
       const size_t interpt_size = layout->interpreter_size<ELF_T>();
       const uint64_t osize = binary_->sizing_info_->interpreter;
-      if (interpt_size > osize || config_.force_relocate) {
-        LIEF_DEBUG("[-] Need to relocate .interp section (0x{:x} new bytes)", interpt_size - osize);
+      const bool should_relocate = interpt_size > osize || config_.force_relocate;
+      if (should_relocate) {
+        LIEF_DEBUG("[-] Need to relocate .interp section ({:#x} new bytes)",
+                   interpt_size - osize);
         layout->relocate_interpreter(interpt_size);
-      } else { LIEF_DEBUG(".interp: -0x{:x} bytes", osize - interpt_size); }
-    } else if (!binary_->interpreter_.empty()) { // Directly access private field as we want to avoid
-                                                 // has_interpreter() check
+      } else {
+        LIEF_DEBUG(".interp: -{:#x} bytes", osize - interpt_size);
+      }
+    } else if (!binary_->interpreter_
+                    .empty()) { // Directly access private field as we want to
+                                // avoid has_interpreter() check

       // In this case, the original ELF file didn't have an interpreter
       // and the user added one.
@@ -175,11 +180,16 @@ ok_error_t Builder::build_exe_lib() {

     Segment& note_segment = *note_segments.back();

-    if (notes_size > note_segment.physical_size() || nb_segment_notes > 1 || config_.force_relocate) {
-      LIEF_DEBUG("[-] Need to relocate .note.* segments (0x{:x} new bytes)",
-          notes_size - note_segment.physical_size());
+    const bool should_relocate = notes_size > note_segment.physical_size() ||
+                                 nb_segment_notes > 1 || config_.force_relocate;
+
+    if (should_relocate) {
+      LIEF_DEBUG("[-] Need to relocate .note.* segments ({:#x} new bytes)",
+                 notes_size - note_segment.physical_size());
       layout->relocate_notes(true);
-    } else { /*LIEF_DEBUG(".notes: -0x{:x} bytes", note_segment.physical_size() - notes_size);*/ }
+    } else { /*LIEF_DEBUG(".notes: -{:#x} bytes", note_segment.physical_size() -
+                notes_size);*/
+    }
   }

   if (binary_->has(DynamicEntry::TAG::GNU_HASH) && config_.gnu_hash) {
@@ -187,9 +197,12 @@ ok_error_t Builder::build_exe_lib() {
     const uint64_t osize = binary_->sizing_info_->gnu_hash;
     const bool should_relocate = needed_size > osize || config_.force_relocate;
     if (should_relocate) {
-      LIEF_DEBUG("[-] Need to relocate DT_GNU_HASH (0x{:x} new bytes)", needed_size - osize);
+      LIEF_DEBUG("[-] Need to relocate DT_GNU_HASH ({:#x} new bytes)",
+                 needed_size - osize);
       layout->relocate_gnu_hash(true);
-    } else { LIEF_DEBUG("DT_GNU_HASH: -0x{:x} bytes", osize - needed_size); }
+    } else {
+      LIEF_DEBUG("DT_GNU_HASH: -{:#x} bytes", osize - needed_size);
+    }
   }

   if (binary_->has(DynamicEntry::TAG::HASH) && config_.dt_hash) {
@@ -197,9 +210,12 @@ ok_error_t Builder::build_exe_lib() {
     const uint64_t osize = binary_->sizing_info_->hash;
     const bool should_relocate = needed_size > osize || config_.force_relocate;
     if (should_relocate) {
-      LIEF_DEBUG("[-] Need to relocate DT_HASH (0x{:x} new bytes)", needed_size - osize);
+      LIEF_DEBUG("[-] Need to relocate DT_HASH ({:#x} new bytes)",
+                 needed_size - osize);
       layout->relocate_sysv_hash(needed_size);
-    } else { LIEF_DEBUG("DT_HASH: -0x{:x} bytes", osize - needed_size); }
+    } else {
+      LIEF_DEBUG("DT_HASH: -{:#x} bytes", osize - needed_size);
+    }
   }

   if (binary_->has(Segment::TYPE::DYNAMIC) && config_.dynamic_section) {
@@ -208,9 +224,12 @@ ok_error_t Builder::build_exe_lib() {
     const bool should_relocate = dynamic_needed_size > osize ||
                                  (config_.force_relocate && !config_.skip_dynamic);
     if (should_relocate) {
-      LIEF_DEBUG("[-] Need to relocate .dynamic section (0x{:x} new bytes)", dynamic_needed_size - osize);
+      LIEF_DEBUG("[-] Need to relocate .dynamic section ({:#x} new bytes)",
+                 dynamic_needed_size - osize);
       layout->relocate_dynamic(dynamic_needed_size);
-    } else { LIEF_DEBUG("PT_DYNAMIC: -0x{:x} bytes", osize - dynamic_needed_size); }
+    } else {
+      LIEF_DEBUG("PT_DYNAMIC: -{:#x} bytes", osize - dynamic_needed_size);
+    }
   }

   if (binary_->has(DynamicEntry::TAG::RELA) ||
@@ -219,154 +238,203 @@ ok_error_t Builder::build_exe_lib() {
     const size_t dyn_reloc_needed_size = layout->dynamic_relocations_size<ELF_T>();
     if (config_.rela) {
       const uint64_t osize = binary_->sizing_info_->rela;
-      const bool should_relocate = dyn_reloc_needed_size > osize || config_.force_relocate;
+      const bool should_relocate =
+          dyn_reloc_needed_size > osize || config_.force_relocate;
       if (should_relocate) {
-        LIEF_DEBUG("[-] Need to relocate DT_REL(A) (0x{:x} new bytes)", dyn_reloc_needed_size - osize);
+        LIEF_DEBUG("[-] Need to relocate DT_REL(A) ({:#x} new bytes)",
+                   dyn_reloc_needed_size - osize);
         layout->relocate_dyn_reloc(dyn_reloc_needed_size);
-      } else { LIEF_DEBUG("DT_REL(A): -0x{:x} bytes", osize - dyn_reloc_needed_size); }
+      } else {
+        LIEF_DEBUG("DT_REL(A): -{:#x} bytes", osize - dyn_reloc_needed_size);
+      }
     }
   }

   if ((binary_->has(DynamicEntry::TAG::RELR) ||
-      binary_->has(DynamicEntry::TAG::ANDROID_RELR)) && config_.relr)
+       binary_->has(DynamicEntry::TAG::ANDROID_RELR)) &&
+      config_.relr)
   {
     const size_t relr_reloc_size = layout->relative_relocations_size<ELF_T>();
     const uint64_t osize = binary_->sizing_info_->relr;
     const bool should_relocate = relr_reloc_size > osize || config_.force_relocate;
     if (should_relocate) {
-      LIEF_DEBUG("[-] Need to relocate DT_RELR (0x{:x} new bytes)", relr_reloc_size - osize);
+      LIEF_DEBUG("[-] Need to relocate DT_RELR ({:#x} new bytes)",
+                 relr_reloc_size - osize);
       layout->relocate_relr(true);
-    } else { LIEF_DEBUG("DT_RELR: -0x{:x} bytes", osize - relr_reloc_size); }
+    } else {
+      LIEF_DEBUG("DT_RELR: -{:#x} bytes", osize - relr_reloc_size);
+    }
   }

   if ((binary_->has(DynamicEntry::TAG::ANDROID_RELA) ||
-      binary_->has(DynamicEntry::TAG::ANDROID_REL)) && config_.android_rela)
+       binary_->has(DynamicEntry::TAG::ANDROID_REL)) &&
+      config_.android_rela)
   {
     const size_t android_rela_sz = layout->android_relocations_size<ELF_T>();
     const uint64_t osize = binary_->sizing_info_->android_rela;
     const bool should_relocate = android_rela_sz > osize || config_.force_relocate;
     if (should_relocate) {
-      LIEF_DEBUG("[-] Need to relocate DT_ANDROID_REL[A] (0x{:x} new bytes)",
+      LIEF_DEBUG("[-] Need to relocate DT_ANDROID_REL[A] ({:#x} new bytes)",
                  android_rela_sz - osize);
       layout->relocate_android_rela(true);
-    } else { LIEF_DEBUG("DT_ANDROID_REL[A]: -0x{:x} bytes", osize - android_rela_sz); }
+    } else {
+      LIEF_DEBUG("DT_ANDROID_REL[A]: -{:#x} bytes", osize - android_rela_sz);
+    }
   }

   if (config_.jmprel && binary_->has(DynamicEntry::TAG::JMPREL)) {
     const size_t plt_reloc_needed_size = layout->pltgot_relocations_size<ELF_T>();
     const uint64_t osize = binary_->sizing_info_->jmprel;
-    const bool should_relocate = plt_reloc_needed_size > osize || config_.force_relocate;
+    const bool should_relocate =
+        plt_reloc_needed_size > osize || config_.force_relocate;
     if (should_relocate) {
-      LIEF_DEBUG("[-] Need to relocate DT_JMPREL section (0x{:x} new bytes)", plt_reloc_needed_size - osize);
+      LIEF_DEBUG("[-] Need to relocate DT_JMPREL section ({:#x} new bytes)",
+                 plt_reloc_needed_size - osize);
       layout->relocate_plt_reloc(plt_reloc_needed_size);
-    } else { LIEF_DEBUG("DT_JMPREL: -0x{:x} bytes", osize - plt_reloc_needed_size); }
+    } else {
+      LIEF_DEBUG("DT_JMPREL: -{:#x} bytes", osize - plt_reloc_needed_size);
+    }
   }

   if (config_.dyn_str && binary_->has(DynamicEntry::TAG::STRTAB)) {
     const size_t needed_size = layout->dynstr_size<ELF_T>();
-    const uint64_t osize  = binary_->sizing_info_->dynstr;
+    const uint64_t osize = binary_->sizing_info_->dynstr;
     const bool should_relocate = needed_size > osize || config_.force_relocate;
     if (should_relocate) {
-      LIEF_DEBUG("[-] Need to relocate DT_STRTAB (0x{:x} new bytes)", needed_size - osize);
+      LIEF_DEBUG("[-] Need to relocate DT_STRTAB ({:#x} new bytes)",
+                 needed_size - osize);
       layout->relocate_dynstr(true);
-    } else { LIEF_DEBUG("DT_STRTAB: -0x{:x} bytes", osize - needed_size); }
+    } else {
+      LIEF_DEBUG("DT_STRTAB: -{:#x} bytes", osize - needed_size);
+    }
   }

   if (config_.symtab && binary_->has(DynamicEntry::TAG::SYMTAB)) {
     const size_t dynsym_needed_size = layout->dynsym_size<ELF_T>();
     const uint64_t osize = binary_->sizing_info_->dynsym;
-    const bool should_relocate = dynsym_needed_size > osize || config_.force_relocate;
+    const bool should_relocate =
+        dynsym_needed_size > osize || config_.force_relocate;
     if (should_relocate) {
-      LIEF_DEBUG("[-] Need to relocate DT_SYMTAB (0x{:x} new bytes)", dynsym_needed_size - osize);
+      LIEF_DEBUG("[-] Need to relocate DT_SYMTAB ({:#x} new bytes)",
+                 dynsym_needed_size - osize);
       layout->relocate_dynsym(dynsym_needed_size);
-    } else { LIEF_DEBUG("DT_SYMTAB: -0x{:x} bytes", osize - dynsym_needed_size); }
+    } else {
+      LIEF_DEBUG("DT_SYMTAB: -{:#x} bytes", osize - dynsym_needed_size);
+    }
   }

   if (binary_->has(DynamicEntry::TAG::INIT_ARRAY) &&
-      binary_->has(DynamicEntry::TAG::INIT_ARRAYSZ) &&
-      config_.init_array)
+      binary_->has(DynamicEntry::TAG::INIT_ARRAYSZ) && config_.init_array)
   {
-    const size_t needed_size = layout->dynamic_arraysize<ELF_T>(DynamicEntry::TAG::INIT_ARRAY);
+    const size_t needed_size =
+        layout->dynamic_arraysize<ELF_T>(DynamicEntry::TAG::INIT_ARRAY);
     const uint64_t osize = binary_->sizing_info_->init_array;
     const bool should_relocate = needed_size > osize;
     if (should_relocate) {
       if (binary_->has_symbol("__libc_start_main")) {
-        LIEF_WARN("Relocating DT_INIT_ARRAY on Linux may corrupt the final binary");
+        LIEF_WARN(
+            "Relocating DT_INIT_ARRAY on Linux may corrupt the final binary"
+        );
       }
-      LIEF_DEBUG("[-] Need to relocate DT_INIT_ARRAY (0x{:x} new bytes)", osize - needed_size);
+      LIEF_DEBUG("[-] Need to relocate DT_INIT_ARRAY ({:#x} new bytes)",
+                 osize - needed_size);
       layout->relocate_init_array(needed_size);
-    } else { LIEF_DEBUG("DT_INIT_ARRAY: -0x{:x} bytes", osize - needed_size); }
+    } else {
+      LIEF_DEBUG("DT_INIT_ARRAY: -{:#x} bytes", osize - needed_size);
+    }
   }

   if (binary_->has(DynamicEntry::TAG::PREINIT_ARRAY) &&
-      binary_->has(DynamicEntry::TAG::PREINIT_ARRAYSZ) &&
-      config_.preinit_array)
+      binary_->has(DynamicEntry::TAG::PREINIT_ARRAYSZ) && config_.preinit_array)
   {
-    const size_t needed_size = layout->dynamic_arraysize<ELF_T>(DynamicEntry::TAG::PREINIT_ARRAY);
+    const size_t needed_size =
+        layout->dynamic_arraysize<ELF_T>(DynamicEntry::TAG::PREINIT_ARRAY);
     const uint64_t osize = binary_->sizing_info_->preinit_array;
     const bool should_relocate = needed_size > osize;
     if (should_relocate) {
-      LIEF_DEBUG("[-] Need to relocate DT_PREINIT_ARRAY (0x{:x} new bytes)", osize - needed_size);
+      LIEF_DEBUG("[-] Need to relocate DT_PREINIT_ARRAY ({:#x} new bytes)",
+                 osize - needed_size);
       layout->relocate_preinit_array(needed_size);
-    } else { LIEF_DEBUG("DT_PREINIT_ARRAY: -0x{:x} bytes", osize - needed_size); }
+    } else {
+      LIEF_DEBUG("DT_PREINIT_ARRAY: -{:#x} bytes", osize - needed_size);
+    }
   }

   if (binary_->has(DynamicEntry::TAG::FINI_ARRAY) &&
-      binary_->has(DynamicEntry::TAG::FINI_ARRAYSZ) &&
-      config_.fini_array)
+      binary_->has(DynamicEntry::TAG::FINI_ARRAYSZ) && config_.fini_array)
   {
-    const size_t needed_size   = layout->dynamic_arraysize<ELF_T>(DynamicEntry::TAG::FINI_ARRAY);
-    const uint64_t osize       = binary_->sizing_info_->fini_array;
+    const size_t needed_size =
+        layout->dynamic_arraysize<ELF_T>(DynamicEntry::TAG::FINI_ARRAY);
+    const uint64_t osize = binary_->sizing_info_->fini_array;
     const bool should_relocate = needed_size > osize;
     if (should_relocate) {
       if (binary_->has_symbol("__libc_start_main")) {
         LIEF_WARN("Relocating .fini_array on Linux may corrupt the final binary");
       }
-      LIEF_DEBUG("[-] Need to relocate DT_FINI_ARRAY (0x{:x} new bytes)", osize - needed_size);
+      LIEF_DEBUG("[-] Need to relocate DT_FINI_ARRAY ({:#x} new bytes)",
+                 osize - needed_size);
       layout->relocate_fini_array(needed_size);
-    } else { LIEF_DEBUG("DT_FINI_ARRAY: -0x{:x} bytes", osize - needed_size); }
+    } else {
+      LIEF_DEBUG("DT_FINI_ARRAY: -{:#x} bytes", osize - needed_size);
+    }
   }

   if (binary_->has(DynamicEntry::TAG::VERSYM) && config_.sym_versym) {
     const size_t symver_needed_size = layout->symbol_version<ELF_T>();
-    const uint64_t osize       = binary_->sizing_info_->versym;
-    const bool should_relocate = symver_needed_size > osize || config_.force_relocate;
+    const uint64_t osize = binary_->sizing_info_->versym;
+    const bool should_relocate =
+        symver_needed_size > osize || config_.force_relocate;
     if (should_relocate) {
-      LIEF_DEBUG("[-] Need to relocate DT_VERSYM (0x{:x} new bytes)", symver_needed_size - osize);
+      LIEF_DEBUG("[-] Need to relocate DT_VERSYM ({:#x} new bytes)",
+                 symver_needed_size - osize);
       layout->relocate_symver(symver_needed_size);
-    } else { LIEF_DEBUG("DT_VERSYM: -0x{:x} bytes", osize - symver_needed_size); }
+    } else {
+      LIEF_DEBUG("DT_VERSYM: -{:#x} bytes", osize - symver_needed_size);
+    }
   }

   if (binary_->has(DynamicEntry::TAG::VERDEF) && config_.sym_verdef) {
     const size_t symvdef_needed_size = layout->symbol_vdef_size<ELF_T>();
-    const uint64_t osize       = binary_->sizing_info_->verdef;
-    const bool should_relocate = symvdef_needed_size > osize || config_.force_relocate;
+    const uint64_t osize = binary_->sizing_info_->verdef;
+    const bool should_relocate =
+        symvdef_needed_size > osize || config_.force_relocate;
     if (should_relocate) {
-      LIEF_DEBUG("[-] Need to relocate DT_VERDEF (0x{:x} new bytes)", symvdef_needed_size - osize);
+      LIEF_DEBUG("[-] Need to relocate DT_VERDEF ({:#x} new bytes)",
+                 symvdef_needed_size - osize);
       layout->relocate_symverd(symvdef_needed_size);
-    } else { LIEF_DEBUG("DT_VERDEF: -0x{:x} bytes", osize - symvdef_needed_size); }
+    } else {
+      LIEF_DEBUG("DT_VERDEF: -{:#x} bytes", osize - symvdef_needed_size);
+    }
   }

   if (binary_->has(DynamicEntry::TAG::VERNEED) && config_.sym_verneed) {
     const size_t symvreq_needed_size = layout->symbol_vreq_size<ELF_T>();
-    const uint64_t osize       = binary_->sizing_info_->verneed;
-    const bool should_relocate = symvreq_needed_size > osize || config_.force_relocate;
+    const uint64_t osize = binary_->sizing_info_->verneed;
+    const bool should_relocate =
+        symvreq_needed_size > osize || config_.force_relocate;
     if (should_relocate) {
-      LIEF_DEBUG("[-] Need to relocate DT_VERNEED (0x{:x} new bytes)", symvreq_needed_size - osize);
+      LIEF_DEBUG("[-] Need to relocate DT_VERNEED ({:#x} new bytes)",
+                 symvreq_needed_size - osize);
       layout->relocate_symverr(symvreq_needed_size);
-    } else { LIEF_DEBUG("DT_VERNEED: -0x{:x} bytes", osize - symvreq_needed_size); }
+    } else {
+      LIEF_DEBUG("DT_VERNEED: -{:#x} bytes", osize - symvreq_needed_size);
+    }
   }

   const Header& header = binary_->header();
-  if (header.section_name_table_idx() > 0 && !binary_->sections_.empty() ) {
+  if (header.section_name_table_idx() > 0 && !binary_->sections_.empty()) {
     if (header.section_name_table_idx() >= binary_->sections_.size()) {
-      LIEF_ERR("Section string table out of bound");
+      LIEF_ERR("Section string table out of bounds");
     } else {
-      std::unique_ptr<Section>& string_names_section = binary_->sections_[header.section_name_table_idx()];
+      std::unique_ptr<Section>& string_names_section =
+          binary_->sections_[header.section_name_table_idx()];
       const size_t shstr_size = layout->section_shstr_size();
-      if (shstr_size > string_names_section->size() || config_.force_relocate) {
-        LIEF_DEBUG("[-] Need to relocate '{}' section (0x{:x} new bytes)",
-                   string_names_section->name(), shstr_size - string_names_section->size());
+      const bool should_relocate =
+          shstr_size > string_names_section->size() || config_.force_relocate;
+      if (should_relocate) {
+        LIEF_DEBUG("[-] Need to relocate '{}' section ({:#x} new bytes)",
+                   string_names_section->name(),
+                   shstr_size - string_names_section->size());
         layout->relocate_shstr(true);
       }
     }
@@ -390,8 +458,10 @@ ok_error_t Builder::build_exe_lib() {
       } else {
         Section& strtab = sections[strtab_idx];
         const size_t strtab_needed_size = layout->section_strtab_size();
-        if (strtab_needed_size > strtab.size() || config_.force_relocate) {
-          LIEF_DEBUG("[-] Need to relocate .strtab section (0x{:x} new bytes)",
+        const bool should_relocate =
+            strtab_needed_size > strtab.size() || config_.force_relocate;
+        if (should_relocate) {
+          LIEF_DEBUG("[-] Need to relocate .strtab section ({:#x} new bytes)",
                      strtab_needed_size - strtab.size());
           layout->relocate_strtab(layout->section_strtab_size());
         }
@@ -403,13 +473,14 @@ ok_error_t Builder::build_exe_lib() {

   if (sec_symtab != nullptr) {
     const size_t needed_size = layout->static_sym_size<ELF_T>();
-    if (needed_size > sec_symtab->size() || config_.force_relocate) {
-      LIEF_DEBUG("[-] Need to relocate '{}' section (0x{:x} new bytes)",
+    const bool should_relocate =
+        needed_size > sec_symtab->size() || config_.force_relocate;
+    if (should_relocate) {
+      LIEF_DEBUG("[-] Need to relocate '{}' section ({:#x} new bytes)",
                  sec_symtab->name(), needed_size - sec_symtab->size());
       layout->relocate_symtab(needed_size);
     }
-  }
-  else if (!binary_->symtab_symbols_.empty()) {
+  } else if (!binary_->symtab_symbols_.empty()) {
     // In this case the binary was stripped but the user
     // added symbols => We have to craft a new section that will contain the symtab
     LIEF_DEBUG("Need to create a new .symtab section");
@@ -446,10 +517,6 @@ ok_error_t Builder::build_exe_lib() {
     build_notes<ELF_T>();
   }

-  if (config_.dynamic_section && binary_->has(Segment::TYPE::DYNAMIC)) {
-    build_dynamic_section<ELF_T>();
-  }
-
   if (config_.symtab && binary_->has(DynamicEntry::TAG::SYMTAB)) {
     build_dynamic_symbols<ELF_T>();
   }
@@ -490,6 +557,10 @@ ok_error_t Builder::build_exe_lib() {
     build_symtab_symbols<ELF_T>();
   }

+  if (config_.dynamic_section && binary_->has(Segment::TYPE::DYNAMIC)) {
+    build_dynamic_section<ELF_T>();
+  }
+
   // Build sections
   if (!binary_->sections_.empty()) {
     build_sections<ELF_T>();
@@ -521,15 +592,17 @@ ok_error_t Builder::process_object_relocations() {
   }

   using Elf_Rela = typename ELF_T::Elf_Rela;
-  using Elf_Rel  = typename ELF_T::Elf_Rel;
+  using Elf_Rel = typename ELF_T::Elf_Rel;

   bool is_rela = it_relocations[0].is_rela();
   const size_t sizeof_rel = is_rela ? sizeof(Elf_Rela) : sizeof(Elf_Rel);

   const auto sections = binary_->sections();
-  ObjectFileLayout::sections_reloc_map_t& sections_reloc_map = layout->sections_reloc_map();
+  ObjectFileLayout::sections_reloc_map_t& sections_reloc_map =
+      layout->sections_reloc_map();
   ObjectFileLayout::relocations_map_t& relocations_map = layout->relocation_map();
-  ObjectFileLayout::rel_sections_size_t& rel_sections_size = layout->rel_sections_size();
+  ObjectFileLayout::rel_sections_size_t& rel_sections_size =
+      layout->rel_sections_size();

   for (Section& sec : sections) {
     const Section::TYPE type = sec.type();
@@ -548,23 +621,22 @@ ok_error_t Builder::process_object_relocations() {
   for (Relocation& reloc : it_relocations) {
     Section* sec = reloc.section();
     if (sec == nullptr) {
-      LIEF_WARN("Relocation @0x{:x} misses a section", reloc.address());
+      LIEF_WARN("Relocation @{:#x} misses a section", reloc.address());
       continue;
     }
-    LIEF_DEBUG("Section for reloc 0x{:x} -> {}", reloc.address(), sec->name());
+    LIEF_DEBUG("Section for reloc {:#x} -> {}", reloc.address(), sec->name());
     relocations_map[sec].push_back(&reloc);
     auto it_reloc_sec = sections_reloc_map.find(sec);
-    if (it_reloc_sec == std::end(sections_reloc_map)) {
-      LIEF_WARN("Can find the relocation section associated with '{}'", sec->name());
+    if (it_reloc_sec == sections_reloc_map.end()) {
+      LIEF_WARN("Can find the relocation section associated with '{}'",
+                sec->name());
       continue;
     }
     Section* reloc_section = it_reloc_sec->second;
     rel_sections_size[reloc_section] += sizeof_rel;
   }

-  for (const auto& p : rel_sections_size) {
-    const Section* section = p.first;
-    const size_t need_size = p.second;
+  for (const auto& [section, need_size] : rel_sections_size) {
     if (need_size > section->size()) {
       LIEF_DEBUG("Need to relocate '{}'", section->name());
       layout->relocate_section(*section, need_size);
@@ -584,14 +656,16 @@ ok_error_t Builder::build_relocatable() {
   // Check if we should relocate the .shstrtab
   if (header.section_name_table_idx() > 0) {
     if (header.section_name_table_idx() >= binary_->sections_.size()) {
-      LIEF_ERR("Section string table out of bound");
+      LIEF_ERR("Section string table out of bounds");
       return make_error_code(lief_errors::file_format_error);
     }
-    std::unique_ptr<Section>& string_names_section = binary_->sections_[header.section_name_table_idx()];
+    std::unique_ptr<Section>& string_names_section =
+        binary_->sections_[header.section_name_table_idx()];
     const size_t shstr_size = layout->section_shstr_size();
     if (shstr_size > string_names_section->size() || config_.force_relocate) {
-      LIEF_DEBUG("[-] Need to relocate '{}' section (0x{:x} new bytes)",
-                 string_names_section->name(), shstr_size - string_names_section->size());
+      LIEF_DEBUG("[-] Need to relocate '{}' section ({:#x} new bytes)",
+                 string_names_section->name(),
+                 shstr_size - string_names_section->size());
       layout->relocate_section(*string_names_section, shstr_size);
     }
   }
@@ -601,18 +675,19 @@ ok_error_t Builder::build_relocatable() {
   if (symtab != nullptr) {
     const size_t needed_size = layout->symtab_size<ELF_T>();
     if (needed_size > symtab->size() || config_.force_relocate) {
-      LIEF_DEBUG("[-] Need to relocate '{}' section (0x{:x} new bytes)",
+      LIEF_DEBUG("[-] Need to relocate '{}' section ({:#x} new bytes)",
                  symtab->name(), symtab->size() - needed_size);
       layout->relocate_section(*symtab, needed_size);
     }
   }

   // Check if we should relocate or create a .strtab section.
-  // We assume that a .shstrtab is always prensent
+  // We assume that a .shstrtab is always present
   if (!layout->is_strtab_shared_shstrtab() && !binary_->symtab_symbols_.empty()) {
     Section* sec_symtab = binary_->get(Section::TYPE::SYMTAB);
     if (sec_symtab == nullptr) {
-      LIEF_ERR("Object file without a symtab section is not supported. Please consider submitting an issue.");
+      LIEF_ERR("Object file without a symtab section is not supported. Please "
+               "consider submitting an issue.");
       return make_error_code(lief_errors::not_supported);
     }
     // The .symtab exists
@@ -623,8 +698,10 @@ ok_error_t Builder::build_relocatable() {
     } else {
       Section& strtab = sections[strtab_idx];
       const size_t strtab_needed_size = layout->section_strtab_size();
-      if (strtab_needed_size > strtab.size() || config_.force_relocate) {
-        LIEF_DEBUG("[-] Need to relocate .strtab section (0x{:x} new bytes)",
+      const bool should_relocate =
+          strtab_needed_size > strtab.size() || config_.force_relocate;
+      if (should_relocate) {
+        LIEF_DEBUG("[-] Need to relocate .strtab section ({:#x} new bytes)",
                    strtab_needed_size - strtab.size());
         layout->relocate_section(strtab, strtab_needed_size);
       }
@@ -635,7 +712,7 @@ ok_error_t Builder::build_relocatable() {

   auto res = layout->relocate();
   if (!res) {
-    LIEF_ERR("Error(s) occurred during the layout relocation.");
+    LIEF_ERR("Error(s) occurred during the layout relocation");
     return make_error_code(lief_errors::build_error);
   }

@@ -645,7 +722,7 @@ ok_error_t Builder::build_relocatable() {

   build_section_relocations<ELF_T>();

-  // Since object file only have sections, we don't have to process segments
+  // Since object files only have sections, we don't have to process segments
   if (!binary_->sections_.empty()) {
     build_sections<ELF_T>();
   }
@@ -657,32 +734,31 @@ ok_error_t Builder::build_relocatable() {


 template<typename ELF_T>
-ok_error_t Builder::build(const Header& header) {;
+ok_error_t Builder::build(const Header& header) {
   using Elf_Half = typename ELF_T::Elf_Half;
   using Elf_Word = typename ELF_T::Elf_Word;
   using Elf_Addr = typename ELF_T::Elf_Addr;
-  using Elf_Off  = typename ELF_T::Elf_Off;
-  using Elf_Word = typename ELF_T::Elf_Word;
+  using Elf_Off = typename ELF_T::Elf_Off;

   using Elf_Ehdr = typename ELF_T::Elf_Ehdr;

   Elf_Ehdr ehdr;

-  ehdr.e_type      = static_cast<Elf_Half>(header.file_type());
-  ehdr.e_machine   = static_cast<Elf_Half>(header.machine_type());
-  ehdr.e_version   = static_cast<Elf_Word>(header.object_file_version());
-  ehdr.e_entry     = static_cast<Elf_Addr>(header.entrypoint());
-  ehdr.e_phoff     = static_cast<Elf_Off>(header.program_headers_offset());
-  ehdr.e_shoff     = static_cast<Elf_Off>(header.section_headers_offset());
-  ehdr.e_flags     = static_cast<Elf_Word>(header.processor_flag());
-  ehdr.e_ehsize    = static_cast<Elf_Half>(header.header_size());
+  ehdr.e_type = static_cast<Elf_Half>(header.file_type());
+  ehdr.e_machine = static_cast<Elf_Half>(header.machine_type());
+  ehdr.e_version = static_cast<Elf_Word>(header.object_file_version());
+  ehdr.e_entry = static_cast<Elf_Addr>(header.entrypoint());
+  ehdr.e_phoff = static_cast<Elf_Off>(header.program_headers_offset());
+  ehdr.e_shoff = static_cast<Elf_Off>(header.section_headers_offset());
+  ehdr.e_flags = static_cast<Elf_Word>(header.processor_flag());
+  ehdr.e_ehsize = static_cast<Elf_Half>(header.header_size());
   ehdr.e_phentsize = static_cast<Elf_Half>(header.program_header_size());
-  ehdr.e_phnum     = static_cast<Elf_Half>(header.numberof_segments());
+  ehdr.e_phnum = static_cast<Elf_Half>(header.numberof_segments());
   ehdr.e_shentsize = static_cast<Elf_Half>(header.section_header_size());
-  ehdr.e_shnum     = static_cast<Elf_Half>(header.numberof_sections());
-  ehdr.e_shstrndx  = static_cast<Elf_Half>(header.section_name_table_idx());
+  ehdr.e_shnum = static_cast<Elf_Half>(header.numberof_sections());
+  ehdr.e_shstrndx = static_cast<Elf_Half>(header.section_name_table_idx());

-  std::copy(std::begin(header.identity()), std::end(header.identity()),
+  std::copy(header.identity().begin(), header.identity().end(),
             std::begin(ehdr.e_ident));

   ios_.seekp(0);
@@ -695,8 +771,7 @@ template<typename ELF_T>
 ok_error_t Builder::build_sections() {
   using Elf_Word = typename ELF_T::Elf_Word;
   using Elf_Addr = typename ELF_T::Elf_Addr;
-  using Elf_Off  = typename ELF_T::Elf_Off;
-  using Elf_Word = typename ELF_T::Elf_Word;
+  using Elf_Off = typename ELF_T::Elf_Off;

   using Elf_Shdr = typename ELF_T::Elf_Shdr;

@@ -705,66 +780,103 @@ ok_error_t Builder::build_sections() {
   }


-  LIEF_DEBUG("[+] Build sections");
+  LIEF_DEBUG("Build sections");

   const Header& header = binary_->header();
-  const Elf_Off section_headers_offset = header.section_headers_offset();
+  Elf_Off section_headers_offset = header.section_headers_offset();
   if (section_headers_offset == 0) {
     return ok();
   }

+  LIEF_DEBUG("Section headers table at offset: {:#06x}", section_headers_offset);
+
   if (header.section_name_table_idx() < binary_->sections_.size()) {
-    std::unique_ptr<Section>& string_names_section = binary_->sections_[header.section_name_table_idx()];
+    std::unique_ptr<Section>& string_names_section =
+        binary_->sections_[header.section_name_table_idx()];
     string_names_section->content(layout_->raw_shstr());
   }

+  const size_t nb_sections = binary_->sections_.size();
+
+  vector_iostream section_headers(/*endian_swap=*/ios_.endian_swap());
+  section_headers.reserve(nb_sections * sizeof(Elf_Shdr));
+
   const std::unordered_map<std::string, size_t>& shstr_map = layout_->shstr_map();
-  for (size_t i = 0; i < binary_->sections_.size(); ++i) {
+  for (size_t i = 0; i < nb_sections; ++i) {
     const std::unique_ptr<Section>& section = binary_->sections_[i];
     LIEF_DEBUG("[FRAME  ] {}", section->is_frame());
-    if (!section->is_frame()       &&
-        section->size()        > 0 &&
+    const bool should_commit_data =
+        !section->is_frame() && section->size() > 0 &&
         section->file_offset() > 0 &&
-        // SHT_NOTBITS sections should not be considered.
+        // SHT_NOBITS sections should not be considered.
         // Nevertheless, some (malformed or tricky) ELF binaries
         // might use this type to put content.
-        section->type() != Section::TYPE::NOBITS) {
+        section->type() != Section::TYPE::NOBITS;
+    if (should_commit_data) {
       span<const uint8_t> content = section->content();
-      LIEF_DEBUG("[Content] {:20}: 0x{:010x} - 0x{:010x} (0x{:x})",
-                 section->name(), section->file_offset(),
-                 section->file_offset() + content.size(), content.size());
+      LIEF_DEBUG("[Content] {:20}: {:#012x} - {:#012x} ({:#x})", section->name(),
+                 section->file_offset(), section->file_offset() + content.size(),
+                 content.size());
       ios_.seekp(section->file_offset());
       ios_.write(content);
     }

     Elf_Off offset_name = 0;
-    const auto& it = shstr_map.find(section->name());
-    if (it == std::end(shstr_map)) {
-      LIEF_WARN("Can't find string offset for section name '{}'", section->name());
-    } else {
+    if (auto it = shstr_map.find(section->name()); it != shstr_map.end()) {
       offset_name = it->second;
+    } else {
+      LIEF_WARN("Can't find string offset for section name '{}'", section->name());
     }

     Elf_Shdr shdr;
-    shdr.sh_name      = static_cast<Elf_Word>(offset_name);
-    shdr.sh_type      = static_cast<Elf_Word>(section->type());
-    shdr.sh_flags     = static_cast<Elf_Word>(section->flags());
-    shdr.sh_addr      = static_cast<Elf_Addr>(section->virtual_address());
-    shdr.sh_offset    = static_cast<Elf_Off>(section->file_offset());
-    shdr.sh_size      = static_cast<Elf_Word>(section->size());
-    shdr.sh_link      = static_cast<Elf_Word>(section->link());
-    shdr.sh_info      = static_cast<Elf_Word>(section->information());
+    shdr.sh_name = static_cast<Elf_Word>(offset_name);
+    shdr.sh_type = static_cast<Elf_Word>(section->type());
+    shdr.sh_flags = static_cast<Elf_Word>(section->flags());
+    shdr.sh_addr = static_cast<Elf_Addr>(section->virtual_address());
+    shdr.sh_offset = static_cast<Elf_Off>(section->file_offset());
+    shdr.sh_size = static_cast<Elf_Word>(section->size());
+    shdr.sh_link = static_cast<Elf_Word>(section->link());
+    shdr.sh_info = static_cast<Elf_Word>(section->information());
     shdr.sh_addralign = static_cast<Elf_Word>(section->alignment());
-    shdr.sh_entsize   = static_cast<Elf_Word>(section->entry_size());
+    shdr.sh_entsize = static_cast<Elf_Word>(section->entry_size());

-    // Write Section'header
+    // Write section header
     if (section_headers_offset > 0) {
       const uint64_t offset = section_headers_offset + i * sizeof(Elf_Shdr);
-      LIEF_DEBUG("[Header ] {:20}: 0x{:010x} - 0x{:010x}",
-                 section->name(),
-                 offset, offset + sizeof(Elf_Shdr));
-      ios_.seekp(offset);
-      ios_.write<Elf_Shdr>(shdr);
+      LIEF_DEBUG("[Header ] {:20}: {:#012x} - {:#012x}", section->name(), offset,
+                 offset + sizeof(Elf_Shdr));
+      section_headers.write<Elf_Shdr>(shdr);
+    }
+  }
+
+  if (section_headers_offset > 0) {
+    ios_.seekp(section_headers_offset);
+    ios_.write(section_headers);
+
+    // Some binaries (e.g., 'ELF/test.go.pie.bin') might have their section
+    // header table at the **beginning** of the binary AND associated with a
+    // PT_LOAD segment. To ensure that build_segments() does not overwrite the
+    // table, we need to commit the content of `section_headers` to the associated
+    // PT_LOAD.
+    for (const std::unique_ptr<Segment>& segment : binary_->segments_) {
+      if (!segment->is_load()) {
+        continue;
+      }
+
+      bool in_segment = segment->file_offset() <= section_headers_offset &&
+                        section_headers_offset <
+                            (segment->file_offset() + segment->physical_size());
+
+      if (!in_segment) {
+        continue;
+      }
+
+      span<uint8_t> content = segment->writable_content();
+      uint64_t rel_offset = section_headers_offset - segment->file_offset();
+      LIEF_DEBUG("SHT found in {} - {:#010x} - [{:#010x}, {:#010x}]",
+                 to_string(segment->type()), segment->virtual_address(),
+                 segment->file_offset(), segment->file_offset() + content.size());
+      section_headers.copy_into(content.subspan(rel_offset));
     }
   }
   return ok();
@@ -775,26 +887,25 @@ template<typename ELF_T>
 ok_error_t Builder::build_segments() {
   using Elf_Word = typename ELF_T::Elf_Word;
   using Elf_Addr = typename ELF_T::Elf_Addr;
-  using Elf_Off  = typename ELF_T::Elf_Off;
-  using Elf_Word = typename ELF_T::Elf_Word;
+  using Elf_Off = typename ELF_T::Elf_Off;

   using Elf_Phdr = typename ELF_T::Elf_Phdr;
-  LIEF_DEBUG("== Build segments ==");
+  LIEF_DEBUG("Building segments");

   vector_iostream pheaders(should_swap());
   pheaders.reserve(binary_->segments_.size() * sizeof(Elf_Phdr));
-  LIEF_DEBUG("sizeof(PHDR): 0x{:x}", binary_->segments_.size() * sizeof(Elf_Phdr));
+  LIEF_DEBUG("sizeof(PHDR): {:#x}", binary_->segments_.size() * sizeof(Elf_Phdr));

   for (const std::unique_ptr<Segment>& segment : binary_->segments_) {
     Elf_Phdr phdr;
-    phdr.p_type   = static_cast<Elf_Word>(segment->type());
-    phdr.p_flags  = static_cast<Elf_Word>(segment->flags());
+    phdr.p_type = static_cast<Elf_Word>(segment->type());
+    phdr.p_flags = static_cast<Elf_Word>(segment->flags());
     phdr.p_offset = static_cast<Elf_Off>(segment->file_offset());
-    phdr.p_vaddr  = static_cast<Elf_Addr>(segment->virtual_address());
-    phdr.p_paddr  = static_cast<Elf_Addr>(segment->physical_address());
+    phdr.p_vaddr = static_cast<Elf_Addr>(segment->virtual_address());
+    phdr.p_paddr = static_cast<Elf_Addr>(segment->physical_address());
     phdr.p_filesz = static_cast<Elf_Word>(segment->physical_size());
-    phdr.p_memsz  = static_cast<Elf_Word>(segment->virtual_size());
-    phdr.p_align  = static_cast<Elf_Word>(segment->alignment());
+    phdr.p_memsz = static_cast<Elf_Word>(segment->virtual_size());
+    phdr.p_align = static_cast<Elf_Word>(segment->alignment());

     pheaders.write<Elf_Phdr>(phdr);
   }
@@ -807,7 +918,7 @@ ok_error_t Builder::build_segments() {
   for (const std::unique_ptr<Segment>& segment : binary_->segments_) {
     if (segment->physical_size() > 0) {
       span<const uint8_t> content = segment->content();
-      LIEF_DEBUG("[W] {:<13} 0x{:016x}: 0x{:010x} - 0x{:010x} (0x{:x})",
+      LIEF_DEBUG("[W] {:<13} {:#018x}: {:#012x} - {:#012x} ({:#x})",
                  to_string(segment->type()), segment->virtual_address(),
                  segment->file_offset(), segment->file_offset() + content.size(),
                  content.size());
@@ -819,10 +930,10 @@ ok_error_t Builder::build_segments() {

   const Elf_Off segment_header_offset = binary_->header().program_headers_offset();

-  LIEF_DEBUG("Write segments header 0x{:010x} -> 0x{:010x}",
-             segment_header_offset, segment_header_offset + pheaders.size());
+  LIEF_DEBUG("Write segments header {:#012x} -> {:#012x}", segment_header_offset,
+             segment_header_offset + pheaders.size());
   ios_.seekp(segment_header_offset);
-  ios_.write(std::move(pheaders.raw()));
+  ios_.write(pheaders.raw());
   return ok();
 }

@@ -831,13 +942,13 @@ ok_error_t Builder::build_symtab_symbols() {
   using Elf_Half = typename ELF_T::Elf_Half;
   using Elf_Word = typename ELF_T::Elf_Word;
   using Elf_Addr = typename ELF_T::Elf_Addr;
-  using Elf_Off  = typename ELF_T::Elf_Off;
+  using Elf_Off = typename ELF_T::Elf_Off;

-  using Elf_Sym  = typename ELF_T::Elf_Sym;
+  using Elf_Sym = typename ELF_T::Elf_Sym;

   auto* layout = static_cast<ExeLayout*>(layout_.get());

-  LIEF_DEBUG("== Build .symtab symbols ==");
+  LIEF_DEBUG("Building .symtab symbols");
   Section* symbol_section = binary_->symtab_symbols_section();
   if (symbol_section == nullptr) {
     LIEF_ERR("Can't find the .symtab section");
@@ -845,62 +956,62 @@ ok_error_t Builder::build_symtab_symbols() {
   }
   LIEF_DEBUG(".symtab section: '{}'", symbol_section->name());

-  std::stable_sort(std::begin(binary_->symtab_symbols_), std::end(binary_->symtab_symbols_),
+  std::stable_sort(
+      binary_->symtab_symbols_.begin(), binary_->symtab_symbols_.end(),
       [](const std::unique_ptr<Symbol>& lhs, const std::unique_ptr<Symbol>& rhs) {
         return lhs->is_local() && (rhs->is_global() || rhs->is_weak());
-  });
+      }
+  );

-  const auto it_first_exported_symbol =
-      std::find_if(std::begin(binary_->symtab_symbols_), std::end(binary_->symtab_symbols_),
-                   [](const std::unique_ptr<Symbol>& sym) {
-                    return sym->is_exported();
-                   });
+  const auto it_first_exported_symbol = std::find_if(
+      binary_->symtab_symbols_.begin(), binary_->symtab_symbols_.end(),
+      [](const std::unique_ptr<Symbol>& sym) { return sym->is_exported(); }
+  );

   const auto first_exported_symbol_index =
-      static_cast<uint32_t>(std::distance(std::begin(binary_->symtab_symbols_), it_first_exported_symbol));
+      static_cast<uint32_t>(std::distance(binary_->symtab_symbols_.begin(),
+                                          it_first_exported_symbol));

   if (first_exported_symbol_index != symbol_section->information()) {
     LIEF_INFO("information of .symtab section changes from {:d} to {:d}",
-              symbol_section->information(),
-              first_exported_symbol_index);
+              symbol_section->information(), first_exported_symbol_index);
     symbol_section->information(first_exported_symbol_index);
   }

-  if (symbol_section->link() == 0 || symbol_section->link() >= binary_->sections_.size()) {
-    LIEF_ERR("Unable to find a string section associated with the symbol section (sh_link)");
+  if (symbol_section->link() == 0 ||
+      symbol_section->link() >= binary_->sections_.size())
+  {
+    LIEF_ERR("Unable to find a string section associated with the symbol section "
+             "(sh_link)");
     return make_error_code(lief_errors::file_format_error);
   }

   vector_iostream content(should_swap());
   content.reserve(layout->static_sym_size<ELF_T>());

-  // On recent compilers, the symtab string table is merged with the section name table
-  const std::unordered_map<std::string, size_t>* str_map = nullptr;
-  if (layout->is_strtab_shared_shstrtab()) {
-    str_map = &layout->shstr_map();
-  } else {
-    str_map = &layout->strtab_map();
-  }
+  // On recent compilers, the symtab string table is merged with the section name
+  // table
+  const std::unordered_map<std::string, size_t>* str_map =
+      layout->is_strtab_shared_shstrtab() ? &layout->shstr_map() :
+                                            &layout->strtab_map();

   for (const std::unique_ptr<Symbol>& symbol : binary_->symtab_symbols_) {
     const std::string& name = symbol->name();

     Elf_Off offset_name = 0;
-    const auto it = str_map->find(name);
-    if (it == std::end(*str_map)) {
-      LIEF_ERR("Can't find string offset for symtab symbol name '{}'", name);
-    } else {
+    if (auto it = str_map->find(name); it != str_map->end()) {
       offset_name = it->second;
+    } else {
+      LIEF_ERR("Can't find string offset for symtab symbol name '{}'", name);
     }

-    Elf_Sym sym_hdr;
-    memset(&sym_hdr, 0, sizeof(Elf_Sym));
-    sym_hdr.st_name  = static_cast<Elf_Word>(offset_name);
-    sym_hdr.st_info  = static_cast<unsigned char>(symbol->information());
+    Elf_Sym sym_hdr{};
+    sym_hdr.st_name = static_cast<Elf_Word>(offset_name);
+    sym_hdr.st_info = static_cast<unsigned char>(symbol->information());
     sym_hdr.st_other = static_cast<unsigned char>(symbol->other());
     sym_hdr.st_shndx = static_cast<Elf_Half>(symbol->shndx());
     sym_hdr.st_value = static_cast<Elf_Addr>(symbol->value());
-    sym_hdr.st_size  = static_cast<Elf_Word>(symbol->size());
+    sym_hdr.st_size = static_cast<Elf_Word>(symbol->size());

     content.write<Elf_Sym>(sym_hdr);
   }
@@ -910,146 +1021,194 @@ ok_error_t Builder::build_symtab_symbols() {

 template<typename ELF_T>
 ok_error_t Builder::build_dynamic_section() {
-  using Elf_Addr   = typename ELF_T::Elf_Addr;
+  using Elf_Addr = typename ELF_T::Elf_Addr;
   using Elf_Sxword = typename ELF_T::Elf_Sxword;
-  using Elf_Xword  = typename ELF_T::Elf_Xword;
-  using Elf_Dyn    = typename ELF_T::Elf_Dyn;
+  using Elf_Xword = typename ELF_T::Elf_Xword;
+  using Elf_Dyn = typename ELF_T::Elf_Dyn;

   LIEF_DEBUG("[+] Building .dynamic");

   const auto& dynstr_map = static_cast<ExeLayout*>(layout_.get())->dynstr_map();
+
+  uint64_t dynamic_va = 0;
+  if (const Segment* dyn_seg = binary_->get(Segment::TYPE::DYNAMIC)) {
+    dynamic_va = dyn_seg->virtual_address();
+  }
+  const DynamicEntry* mips_rld_map = binary_->get(DynamicEntry::TAG::MIPS_RLD_MAP);
+
   vector_iostream dynamic_table_raw(should_swap());
+  size_t dyn_idx = 0;
   for (std::unique_ptr<DynamicEntry>& entry : binary_->dynamic_entries_) {

     switch (entry->tag()) {
       case DynamicEntry::TAG::NEEDED:
-        {
-          const std::string& name = entry->as<DynamicEntryLibrary>()->name();
-          const auto& it = dynstr_map.find(name);
-          if (it == std::end(dynstr_map)) {
-            LIEF_ERR("Can't find string offset in .dynstr for {}", name);
-            break;
-          }
-          entry->value(it->second);
+      {
+        const std::string& name = entry->as<DynamicEntryLibrary>()->name();
+        auto it = dynstr_map.find(name);
+        if (it == dynstr_map.end()) {
+          LIEF_ERR("Can't find string offset in .dynstr for {}", name);
           break;
         }
+        entry->value(it->second);
+        break;
+      }

       case DynamicEntry::TAG::SONAME:
-        {
-          const std::string& name = entry->as<DynamicSharedObject>()->name();
-          const auto& it = dynstr_map.find(name);
-          if (it == std::end(dynstr_map)) {
-            LIEF_ERR("Can't find string offset in .dynstr for {}", name);
-            break;
-          }
-          entry->value(it->second);
+      {
+        const std::string& name = entry->as<DynamicSharedObject>()->name();
+        auto it = dynstr_map.find(name);
+        if (it == dynstr_map.end()) {
+          LIEF_ERR("Can't find string offset in .dynstr for {}", name);
+          break;
+        }
+        entry->value(it->second);
+        break;
+      }
+
+      case DynamicEntry::TAG::AUXILIARY:
+      {
+        const std::string& name = entry->as<DynamicEntryAuxiliary>()->name();
+        auto it = dynstr_map.find(name);
+        if (it == dynstr_map.end()) {
+          LIEF_ERR("Can't find string offset in .dynstr for {}", name);
           break;
         }
+        entry->value(it->second);
+        break;
+      }
+
+      case DynamicEntry::TAG::FILTER:
+      {
+        const std::string& name = entry->as<DynamicEntryFilter>()->name();
+        auto it = dynstr_map.find(name);
+        if (it == dynstr_map.end()) {
+          LIEF_ERR("Can't find string offset in .dynstr for {}", name);
+          break;
+        }
+        entry->value(it->second);
+        break;
+      }

       case DynamicEntry::TAG::RPATH:
-        {
-          const std::string& name = entry->as<DynamicEntryRpath>()->rpath();
-          const auto& it = dynstr_map.find(name);
-          if (it == std::end(dynstr_map)) {
-            LIEF_ERR("Can't find string offset in .dynstr for {}", name);
-            break;
-          }
-          entry->value(it->second);
+      {
+        const std::string& name = entry->as<DynamicEntryRpath>()->rpath();
+        auto it = dynstr_map.find(name);
+        if (it == dynstr_map.end()) {
+          LIEF_ERR("Can't find string offset in .dynstr for {}", name);
           break;
         }
+        entry->value(it->second);
+        break;
+      }

       case DynamicEntry::TAG::RUNPATH:
-        {
-          const std::string& name = entry->as<DynamicEntryRunPath>()->runpath();
-          const auto& it = dynstr_map.find(name);
-          if (it == std::end(dynstr_map)) {
-            LIEF_ERR("Can't find string offset in .dynstr for {}", name);
-            break;
-          }
-          entry->value(it->second);
+      {
+        const std::string& name = entry->as<DynamicEntryRunPath>()->runpath();
+        auto it = dynstr_map.find(name);
+        if (it == dynstr_map.end()) {
+          LIEF_ERR("Can't find string offset in .dynstr for {}", name);
           break;
         }
+        entry->value(it->second);
+        break;
+      }

       case DynamicEntry::TAG::INIT_ARRAY:
-        {
-          if (config_.init_array) {
-            DynamicEntry* dt_array_size = binary_->get(DynamicEntry::TAG::INIT_ARRAYSZ);
-            if (dt_array_size == nullptr) {
-              LIEF_ERR("Can't find the DT_INIT_ARRAYSZ / .init_array");
-              break;
-            }
-            const std::vector<uint64_t>& array = entry->as<DynamicEntryArray>()->array();
-            std::vector<uint8_t> array_content(array.size() * sizeof(Elf_Addr), 0);
-
-            auto* raw_array = reinterpret_cast<Elf_Addr*>(array_content.data());
-            for (size_t i = 0; i < array.size(); ++i) {
-              raw_array[i] = static_cast<Elf_Addr>(array[i]);
-            }
-
-            dt_array_size->value(array_content.size());
-            binary_->patch_address(entry->value(), array_content);
+      {
+        if (config_.init_array) {
+          DynamicEntry* dt_array_size =
+              binary_->get(DynamicEntry::TAG::INIT_ARRAYSZ);
+          if (dt_array_size == nullptr) {
+            LIEF_ERR("Can't find the DT_INIT_ARRAYSZ / .init_array");
+            break;
           }
-          break;
+          const std::vector<uint64_t>& array =
+              entry->as<DynamicEntryArray>()->array();
+          std::vector<uint8_t> array_content(array.size() * sizeof(Elf_Addr), 0);
+
+          auto* raw_array = reinterpret_cast<Elf_Addr*>(array_content.data());
+          for (size_t i = 0; i < array.size(); ++i) {
+            raw_array[i] = static_cast<Elf_Addr>(array[i]);
+          }
+
+          dt_array_size->value(array_content.size());
+          binary_->patch_address(entry->value(), array_content);
         }
+        break;
+      }

       case DynamicEntry::TAG::FINI_ARRAY:
-        {
-          if (config_.fini_array) {
-            DynamicEntry* dt_array_size = binary_->get(DynamicEntry::TAG::FINI_ARRAYSZ);
-            if (dt_array_size == nullptr) {
-              LIEF_ERR("Can't find the DT_FINI_ARRAYSZ / .fini_array");
-              break;
-            }
-
-            const std::vector<uint64_t>& array = entry->as<DynamicEntryArray>()->array();
-            std::vector<uint8_t> array_content(array.size() * sizeof(Elf_Addr), 0);
-
-            auto* raw_array = reinterpret_cast<Elf_Addr*>(array_content.data());
-            for (size_t i = 0; i < array.size(); ++i) {
-              raw_array[i] = static_cast<Elf_Addr>(array[i]);
-            }
-
-            dt_array_size->value(array_content.size());
-            binary_->patch_address(entry->value(), array_content);
+      {
+        if (config_.fini_array) {
+          DynamicEntry* dt_array_size =
+              binary_->get(DynamicEntry::TAG::FINI_ARRAYSZ);
+          if (dt_array_size == nullptr) {
+            LIEF_ERR("Can't find the DT_FINI_ARRAYSZ / .fini_array");
+            break;
           }
-          break;
+
+          const std::vector<uint64_t>& array =
+              entry->as<DynamicEntryArray>()->array();
+          std::vector<uint8_t> array_content(array.size() * sizeof(Elf_Addr), 0);
+
+          auto* raw_array = reinterpret_cast<Elf_Addr*>(array_content.data());
+          for (size_t i = 0; i < array.size(); ++i) {
+            raw_array[i] = static_cast<Elf_Addr>(array[i]);
+          }
+
+          dt_array_size->value(array_content.size());
+          binary_->patch_address(entry->value(), array_content);
         }
+        break;
+      }

       case DynamicEntry::TAG::PREINIT_ARRAY:
-        {
-          if (config_.fini_array) {
-            DynamicEntry* dt_array_size = binary_->get(DynamicEntry::TAG::PREINIT_ARRAYSZ);
-            if (dt_array_size == nullptr) {
-              LIEF_ERR("Can't find the DT_PREINIT_ARRAYSZ / .preinit_array");
-              break;
-            }
-
+      {
+        if (config_.fini_array) {
+          DynamicEntry* dt_array_size =
+              binary_->get(DynamicEntry::TAG::PREINIT_ARRAYSZ);
+          if (dt_array_size == nullptr) {
+            LIEF_ERR("Can't find the DT_PREINIT_ARRAYSZ / .preinit_array");
+            break;
+          }

-            const std::vector<uint64_t>& array = entry->as<DynamicEntryArray>()->array();
-            std::vector<uint8_t> array_content(array.size() * sizeof(Elf_Addr), 0);

-            auto* raw_array = reinterpret_cast<Elf_Addr*>(array_content.data());
-            for (size_t i = 0; i < array.size(); ++i) {
-              raw_array[i] = static_cast<Elf_Addr>(array[i]);
-            }
+          const std::vector<uint64_t>& array =
+              entry->as<DynamicEntryArray>()->array();
+          std::vector<uint8_t> array_content(array.size() * sizeof(Elf_Addr), 0);

-            dt_array_size->value(array_content.size());
-            binary_->patch_address(entry->value(), array_content);
+          auto* raw_array = reinterpret_cast<Elf_Addr*>(array_content.data());
+          for (size_t i = 0; i < array.size(); ++i) {
+            raw_array[i] = static_cast<Elf_Addr>(array[i]);
           }
-          break;
+
+          dt_array_size->value(array_content.size());
+          binary_->patch_address(entry->value(), array_content);
         }
+        break;
+      }

-      default:
-        {
-          // TODO(romain): Support DT_AUXILIARY
+      case DynamicEntry::TAG::MIPS_RLD_MAP_REL:
+      {
+        if (mips_rld_map != nullptr && dynamic_va != 0) {
+          const uint64_t entry_va = dynamic_va + dyn_idx * sizeof(Elf_Dyn);
+          entry->value(mips_rld_map->value() - entry_va);
         }
+        break;
+      }
+
+      default:
+      {
+        break;
+      }
     }

     Elf_Dyn dynhdr;
-    dynhdr.d_tag      = static_cast<Elf_Sxword>(DynamicEntry::to_value(entry->tag()));
+    dynhdr.d_tag = static_cast<Elf_Sxword>(DynamicEntry::to_value(entry->tag()));
     dynhdr.d_un.d_val = static_cast<Elf_Xword>(entry->value());

     dynamic_table_raw.write<Elf_Dyn>(dynhdr);
+    ++dyn_idx;
   }

   std::vector<uint8_t> raw = dynamic_table_raw.raw();
@@ -1058,7 +1217,9 @@ ok_error_t Builder::build_dynamic_section() {
   if (Section* dynamic_section = binary_->get_section(".dynamic")) {
     dynamic_section->content(raw);
   } else {
-    LIEF_INFO("Can't find the .dynamic section; will still try to update PT_DYNAMIC.");
+    LIEF_INFO(
+        "Can't find the .dynamic section; will still try to update PT_DYNAMIC."
+    );
   }

   // Update the PT_DYNAMIC segment
@@ -1076,7 +1237,7 @@ ok_error_t Builder::build_dynamic_section() {

 template<typename ELF_T>
 ok_error_t Builder::build_symbol_hash() {
-  LIEF_DEBUG("== Build SYSV Hash ==");
+  LIEF_DEBUG("Building SYSV hash");
   DynamicEntry* dt_hash = binary_->get(DynamicEntry::TAG::HASH);

   if (dt_hash == nullptr) {
@@ -1092,7 +1253,7 @@ ok_error_t Builder::build_symbol_hash() {


   uint32_t nbucket = sysv->nbucket();
-  uint32_t nchain  = static_cast<ExeLayout*>(layout_.get())->sysv_nchain();
+  uint32_t nchain = static_cast<ExeLayout*>(layout_.get())->sysv_nchain();

   if (nbucket == 0) {
     LIEF_ERR("sysv.nbucket is 0");
@@ -1107,12 +1268,12 @@ ok_error_t Builder::build_symbol_hash() {
   new_hash_table_ptr[1] = nchain;

   uint32_t* bucket = &new_hash_table_ptr[2];
-  uint32_t* chain  = &new_hash_table_ptr[2 + nbucket];
+  uint32_t* chain = &new_hash_table_ptr[2 + nbucket];
   uint32_t idx = 0;
   for (const std::unique_ptr<Symbol>& symbol : binary_->dynamic_symbols_) {
     uint32_t hash = binary_->type_ == Header::CLASS::ELF32 ?
-                    hash32(symbol->name().c_str()) :
-                    hash64(symbol->name().c_str());
+                        hash32(symbol->name().c_str()) :
+                        hash64(symbol->name().c_str());

     const size_t bucket_idx = hash % nbucket;
     if (bucket_idx >= buckets_limits) {
@@ -1135,7 +1296,7 @@ ok_error_t Builder::build_symbol_hash() {
     ++idx;
   }

-  // to be improved...?
+  // TODO: This could be improved
   if (should_swap()) {
     for (size_t i = 0; i < buckets_limits; i++) {
       swap_endian(&new_hash_table_ptr[i]);
@@ -1148,7 +1309,7 @@ ok_error_t Builder::build_symbol_hash() {

 template<typename ELF_T>
 ok_error_t Builder::build_hash_table() {
-  LIEF_DEBUG("== Build hash table ==");
+  LIEF_DEBUG("Building hash table");

   bool has_error = false;
   if (config_.dt_hash && binary_->has(DynamicEntry::TAG::HASH)) {
@@ -1160,7 +1321,9 @@ ok_error_t Builder::build_hash_table() {

   if (config_.gnu_hash) {
     if (const DynamicEntry* entry = binary_->get(DynamicEntry::TAG::GNU_HASH)) {
-      binary_->patch_address(entry->value(), static_cast<ExeLayout*>(layout_.get())->raw_gnuhash());
+      binary_->patch_address(
+          entry->value(), static_cast<ExeLayout*>(layout_.get())->raw_gnuhash()
+      );
     }
   }
   if (has_error) {
@@ -1175,9 +1338,9 @@ ok_error_t Builder::build_obj_symbols() {
   using Elf_Half = typename ELF_T::Elf_Half;
   using Elf_Word = typename ELF_T::Elf_Word;
   using Elf_Addr = typename ELF_T::Elf_Addr;
-  using Elf_Off  = typename ELF_T::Elf_Off;
+  using Elf_Off = typename ELF_T::Elf_Off;

-  using Elf_Sym  = typename ELF_T::Elf_Sym;
+  using Elf_Sym = typename ELF_T::Elf_Sym;
   const auto* layout = static_cast<const ObjectFileLayout*>(layout_.get());
   const std::unordered_map<std::string, size_t>* str_map = nullptr;

@@ -1199,22 +1362,21 @@ ok_error_t Builder::build_obj_symbols() {
   for (const std::unique_ptr<Symbol>& symbol : binary_->symtab_symbols_) {
     const std::string& name = symbol->name();
     const auto offset_it = str_map->find(name);
-    if (offset_it == std::end(*str_map)) {
-      LIEF_ERR("Unable to find the symbol offset for '{}' in the string table", name);
+    if (offset_it == str_map->end()) {
+      LIEF_ERR("Unable to find the symbol offset for '{}' in the string table",
+               name);
       continue;
     }

     const auto name_offset = static_cast<Elf_Off>(offset_it->second);

-    Elf_Sym sym_header;
-    memset(&sym_header, 0, sizeof(Elf_Sym));
-
-    sym_header.st_name  = static_cast<Elf_Word>(name_offset);
-    sym_header.st_info  = static_cast<unsigned char>(symbol->information());
+    Elf_Sym sym_header{};
+    sym_header.st_name = static_cast<Elf_Word>(name_offset);
+    sym_header.st_info = static_cast<unsigned char>(symbol->information());
     sym_header.st_other = static_cast<unsigned char>(symbol->other());
     sym_header.st_shndx = static_cast<Elf_Half>(symbol->shndx());
     sym_header.st_value = static_cast<Elf_Addr>(symbol->value());
-    sym_header.st_size  = static_cast<Elf_Addr>(symbol->size());
+    sym_header.st_size = static_cast<Elf_Addr>(symbol->size());

     symbol_table_raw.write(sym_header);
   }
@@ -1227,10 +1389,9 @@ ok_error_t Builder::build_dynamic_symbols() {
   using Elf_Half = typename ELF_T::Elf_Half;
   using Elf_Word = typename ELF_T::Elf_Word;
   using Elf_Addr = typename ELF_T::Elf_Addr;
-  using Elf_Off  = typename ELF_T::Elf_Off;
-  using Elf_Word = typename ELF_T::Elf_Word;
+  using Elf_Off = typename ELF_T::Elf_Off;

-  using Elf_Sym  = typename ELF_T::Elf_Sym;
+  using Elf_Sym = typename ELF_T::Elf_Sym;
   LIEF_DEBUG("[+] Build .dynsym symbols");

   const auto& dynstr_map = static_cast<ExeLayout*>(layout_.get())->dynstr_map();
@@ -1245,29 +1406,28 @@ ok_error_t Builder::build_dynamic_symbols() {
   Elf_Addr symbol_table_va = dt_symtab->value();


-
   // Build symbols
   vector_iostream symbol_table_raw(should_swap());
+  symbol_table_raw.reserve(binary_->dynamic_symbols_.size() * sizeof(Elf_Sym));
   for (const std::unique_ptr<Symbol>& symbol : binary_->dynamic_symbols_) {
     const std::string& name = symbol->name();
-    const auto& offset_it = dynstr_map.find(name);
-    if (offset_it == std::end(dynstr_map)) {
-      LIEF_ERR("Unable to find the symbol offset for '{}' in the string table", name);
+    auto offset_it = dynstr_map.find(name);
+    if (offset_it == dynstr_map.end()) {
+      LIEF_ERR("Unable to find the symbol offset for '{}' in the string table",
+               name);
       continue;
     }

     const auto name_offset = static_cast<Elf_Off>(offset_it->second);

-    Elf_Sym sym_header;
+    Elf_Sym sym_header{};

-    memset(&sym_header, 0, sizeof(sym_header));
-
-    sym_header.st_name  = static_cast<Elf_Word>(name_offset);
-    sym_header.st_info  = static_cast<unsigned char>(symbol->information());
+    sym_header.st_name = static_cast<Elf_Word>(name_offset);
+    sym_header.st_info = static_cast<unsigned char>(symbol->information());
     sym_header.st_other = static_cast<unsigned char>(symbol->other());
     sym_header.st_shndx = static_cast<Elf_Half>(symbol->shndx());
     sym_header.st_value = static_cast<Elf_Addr>(symbol->value());
-    sym_header.st_size  = static_cast<Elf_Addr>(symbol->size());
+    sym_header.st_size = static_cast<Elf_Addr>(symbol->size());

     symbol_table_raw.write(sym_header);
   }
@@ -1277,12 +1437,12 @@ ok_error_t Builder::build_dynamic_symbols() {

 template<typename ELF_T>
 ok_error_t Builder::build_section_relocations() {
-  using Elf_Addr   = typename ELF_T::Elf_Addr;
-  using Elf_Xword  = typename ELF_T::Elf_Xword;
+  using Elf_Addr = typename ELF_T::Elf_Addr;
+  using Elf_Xword = typename ELF_T::Elf_Xword;
   using Elf_Sxword = typename ELF_T::Elf_Sxword;

-  using Elf_Rela   = typename ELF_T::Elf_Rela;
-  using Elf_Rel    = typename ELF_T::Elf_Rel;
+  using Elf_Rela = typename ELF_T::Elf_Rela;
+  using Elf_Rel = typename ELF_T::Elf_Rel;
   LIEF_DEBUG("[+] Building relocations");

   auto* layout = static_cast<ObjectFileLayout*>(layout_.get());
@@ -1296,14 +1456,15 @@ ok_error_t Builder::build_section_relocations() {
   const bool is_rela = object_relocations[0].is_rela();
   std::unordered_map<Section*, vector_iostream> section_content;

-  const ObjectFileLayout::sections_reloc_map_t& sec_relo_map = layout->sections_reloc_map();
+  const ObjectFileLayout::sections_reloc_map_t& sec_relo_map =
+      layout->sections_reloc_map();
   for (const auto& p : layout->relocation_map()) {
     Section* section = p.first;
     std::vector<Relocation*> relocs = p.second;
-    // sort relocations by offset. It is not required by the ELF standard but some linkers (like ld)
-    // rely on this kind of sort for sections such as .eh_frame;
-    std::sort(std::begin(relocs), std::end(relocs),
-              [] (const Relocation* lhs, const Relocation* rhs) {
+    // sort relocations by offset. It is not required by the ELF standard but some
+    // linkers (like ld) rely on this kind of sort for sections such as .eh_frame;
+    std::sort(relocs.begin(), relocs.end(),
+              [](const Relocation* lhs, const Relocation* rhs) {
                 return lhs->address() < rhs->address();
               });
     for (Relocation* reloc : relocs) {
@@ -1329,26 +1490,27 @@ ok_error_t Builder::build_section_relocations() {
       }

       uint64_t r_info = reloc->r_info(std::is_same_v<ELF_T, details::ELF32> ?
-                                      Header::CLASS::ELF32 :
-                                      Header::CLASS::ELF64);
+                                          Header::CLASS::ELF32 :
+                                          Header::CLASS::ELF64);

       if (is_rela) {
         Elf_Rela relahdr;
         relahdr.r_offset = static_cast<Elf_Addr>(reloc->address());
-        relahdr.r_info   = static_cast<Elf_Xword>(r_info);
+        relahdr.r_info = static_cast<Elf_Xword>(r_info);
         relahdr.r_addend = static_cast<Elf_Sxword>(reloc->addend());
         section_content[reloc_section].write<Elf_Rela>(relahdr);
       } else {
         Elf_Rel relhdr;
         relhdr.r_offset = static_cast<Elf_Addr>(reloc->address());
-        relhdr.r_info   = static_cast<Elf_Xword>(r_info);
+        relhdr.r_info = static_cast<Elf_Xword>(r_info);
         section_content[reloc_section].write<Elf_Rel>(relhdr);
       }
     }
   }

+  // NOLINTNEXTLINE(bugprone-nondeterministic-pointer-iteration-order)
   for (const auto& [sec, ios] : section_content) {
-    LIEF_DEBUG("Fill section {} with 0x{:x} bytes", sec->name(), ios.raw().size());
+    LIEF_DEBUG("Fill section {} with {:#x} bytes", sec->name(), ios.raw().size());
     sec->content(ios.raw());
   }
   return ok();
@@ -1361,8 +1523,8 @@ ok_error_t Builder::build_android_relocations() {
     return ok();
   }

-  /* The relocations might have been update when adding the new segment
-   * (->relocate()). Thus the cache might be invalidated
+  /* The relocations might have been updated when adding the new segment
+   * (->relocate()). Thus the cache might be invalidated.
    */
   auto& layout = static_cast<ExeLayout&>(*layout_);
   const size_t computed_size = layout.android_relocations_size<ELF_T>();
@@ -1372,7 +1534,8 @@ ok_error_t Builder::build_android_relocations() {
       LIEF_ERR("New ANDROID_REL[A] is larger than the in-cache size");
       return make_error_code(lief_errors::build_error);
     }
-    LIEF_WARN("New ANDROID_REL[A] is smaller than the in-cache size. It might require padding");
+    LIEF_WARN("New ANDROID_REL[A] is smaller than the in-cache size. It might "
+              "require padding");
   }

   if (const DynamicEntry* entry = binary_->get(DynamicEntry::TAG::ANDROID_RELA)) {
@@ -1380,8 +1543,9 @@ ok_error_t Builder::build_android_relocations() {
     if (DynamicEntry* dt_size = binary_->get(DynamicEntry::TAG::ANDROID_RELASZ)) {
       dt_size->value(layout.raw_android_rela().size());
     }
-  }
-  else if (const DynamicEntry* entry = binary_->get(DynamicEntry::TAG::ANDROID_REL)) {
+  } else if (const DynamicEntry* entry =
+                 binary_->get(DynamicEntry::TAG::ANDROID_REL))
+  {
     binary_->patch_address(entry->value(), layout.raw_android_rela());
     if (DynamicEntry* dt_size = binary_->get(DynamicEntry::TAG::ANDROID_RELSZ)) {
       dt_size->value(layout.raw_android_rela().size());
@@ -1398,8 +1562,8 @@ ok_error_t Builder::build_relative_relocations() {
   if (!config_.relr) {
     return ok();
   }
-  /* The relocations might have been update when adding the new segment
-   * (->relocate()). Thus the cache might be invalidated
+  /* The relocations might have been updated when adding the new segment
+   * (->relocate()). Thus the cache might be invalidated.
    */
   auto& layout = static_cast<ExeLayout&>(*layout_);
   const size_t computed_size = layout.relative_relocations_size<ELF_T>();
@@ -1409,7 +1573,9 @@ ok_error_t Builder::build_relative_relocations() {
       LIEF_ERR("New RELR is larger than the in-cache size");
       return make_error_code(lief_errors::build_error);
     }
-    LIEF_WARN("New RELR is smaller than the in-cache size. It might require padding");
+    LIEF_WARN(
+        "New RELR is smaller than the in-cache size. It might require padding"
+    );
   }
   if (const DynamicEntry* entry = binary_->get(DynamicEntry::TAG::RELR)) {
     binary_->patch_address(entry->value(), layout.raw_relr());
@@ -1430,14 +1596,15 @@ ok_error_t Builder::build_relative_relocations() {

 template<typename ELF_T>
 ok_error_t Builder::build_dynamic_relocations() {
-  using Elf_Addr   = typename ELF_T::Elf_Addr;
-  using Elf_Xword  = typename ELF_T::Elf_Xword;
+  using Elf_Addr = typename ELF_T::Elf_Addr;
+  using Elf_Xword = typename ELF_T::Elf_Xword;
   using Elf_Sxword = typename ELF_T::Elf_Sxword;

-  using Elf_Rela   = typename ELF_T::Elf_Rela;
-  using Elf_Rel    = typename ELF_T::Elf_Rel;
+  using Elf_Rela = typename ELF_T::Elf_Rela;
+  using Elf_Rel = typename ELF_T::Elf_Rel;

-  Binary::it_dynamic_relocations dynamic_relocations = binary_->dynamic_relocations();
+  Binary::it_dynamic_relocations dynamic_relocations =
+      binary_->dynamic_relocations();
   if (dynamic_relocations.empty()) {
     if (auto* DT = binary_->get(DynamicEntry::TAG::REL)) {
       if (auto* sec = binary_->section_from_virtual_address(DT->value())) {
@@ -1459,17 +1626,17 @@ ok_error_t Builder::build_dynamic_relocations() {
   }
   LIEF_DEBUG("Building DT_REL/DT_RELA");

-  DynamicEntry* dt_reloc   = nullptr;
+  DynamicEntry* dt_reloc = nullptr;
   DynamicEntry* dt_relocsz = nullptr;


   const bool is_rela = dt_rela != nullptr;
   if (dt_rela != nullptr) {
-    dt_reloc   = dt_rela;
+    dt_reloc = dt_rela;
     dt_relocsz = binary_->get(DynamicEntry::TAG::RELASZ);
   } else {
-    // Fallback on relation type REL
-    dt_reloc   = dt_rel;
+    // Fallback on relocation type REL
+    dt_reloc = dt_rel;
     dt_relocsz = binary_->get(DynamicEntry::TAG::RELSZ);
   }

@@ -1511,19 +1678,19 @@ ok_error_t Builder::build_dynamic_relocations() {
     }

     uint64_t r_info = relocation.r_info(std::is_same_v<ELF_T, details::ELF32> ?
-                                        Header::CLASS::ELF32 :
-                                        Header::CLASS::ELF64);
+                                            Header::CLASS::ELF32 :
+                                            Header::CLASS::ELF64);
     if (is_rela) {
       Elf_Rela relahdr;
       relahdr.r_offset = static_cast<Elf_Addr>(relocation.address());
-      relahdr.r_info   = static_cast<Elf_Xword>(r_info);
+      relahdr.r_info = static_cast<Elf_Xword>(r_info);
       relahdr.r_addend = static_cast<Elf_Sxword>(relocation.addend());

       content.write<Elf_Rela>(relahdr);
     } else {
       Elf_Rel relhdr;
       relhdr.r_offset = static_cast<Elf_Addr>(relocation.address());
-      relhdr.r_info   = static_cast<Elf_Xword>(r_info);
+      relhdr.r_info = static_cast<Elf_Xword>(r_info);

       content.write<Elf_Rel>(relhdr);
     }
@@ -1534,12 +1701,12 @@ ok_error_t Builder::build_dynamic_relocations() {

 template<typename ELF_T>
 ok_error_t Builder::build_pltgot_relocations() {
-  using Elf_Addr   = typename ELF_T::Elf_Addr;
-  using Elf_Xword  = typename ELF_T::Elf_Xword;
+  using Elf_Addr = typename ELF_T::Elf_Addr;
+  using Elf_Xword = typename ELF_T::Elf_Xword;
   using Elf_Sxword = typename ELF_T::Elf_Sxword;

-  using Elf_Rela   = typename ELF_T::Elf_Rela;
-  using Elf_Rel    = typename ELF_T::Elf_Rel;
+  using Elf_Rela = typename ELF_T::Elf_Rela;
+  using Elf_Rel = typename ELF_T::Elf_Rel;

   Binary::it_pltgot_relocations pltgot_relocations = binary_->pltgot_relocations();
   if (pltgot_relocations.empty()) {
@@ -1558,7 +1725,7 @@ ok_error_t Builder::build_pltgot_relocations() {
   if (dt_pltrel != nullptr) {
     is_rela = DynamicEntry::TAG(dt_pltrel->value()) == DynamicEntry::TAG::RELA;
   }
-  DynamicEntry* dt_jmprel   = binary_->get(DynamicEntry::TAG::JMPREL);
+  DynamicEntry* dt_jmprel = binary_->get(DynamicEntry::TAG::JMPREL);
   DynamicEntry* dt_pltrelsz = binary_->get(DynamicEntry::TAG::PLTRELSZ);
   if (dt_jmprel == nullptr) {
     LIEF_ERR("Unable to find the DT_JMPREL entry");
@@ -1592,20 +1759,20 @@ ok_error_t Builder::build_pltgot_relocations() {
     }

     uint64_t r_info = relocation.r_info(std::is_same_v<ELF_T, details::ELF32> ?
-                                        Header::CLASS::ELF32 :
-                                        Header::CLASS::ELF64);
+                                            Header::CLASS::ELF32 :
+                                            Header::CLASS::ELF64);

     if (is_rela) {
       Elf_Rela relahdr;
       relahdr.r_offset = static_cast<Elf_Addr>(relocation.address());
-      relahdr.r_info   = static_cast<Elf_Xword>(r_info);
+      relahdr.r_info = static_cast<Elf_Xword>(r_info);
       relahdr.r_addend = static_cast<Elf_Sxword>(relocation.addend());

       content.write<Elf_Rela>(relahdr);
     } else {
       Elf_Rel relhdr;
       relhdr.r_offset = static_cast<Elf_Addr>(relocation.address());
-      relhdr.r_info   = static_cast<Elf_Xword>(r_info);
+      relhdr.r_info = static_cast<Elf_Xword>(r_info);

       content.write<Elf_Rel>(relhdr);
     }
@@ -1617,10 +1784,10 @@ ok_error_t Builder::build_pltgot_relocations() {

 template<typename ELF_T>
 ok_error_t Builder::build_symbol_requirement() {
-  using Elf_Half    = typename ELF_T::Elf_Half;
-  using Elf_Word    = typename ELF_T::Elf_Word;
-  using Elf_Off     = typename ELF_T::Elf_Off;
-  using Elf_Addr    = typename ELF_T::Elf_Addr;
+  using Elf_Half = typename ELF_T::Elf_Half;
+  using Elf_Word = typename ELF_T::Elf_Word;
+  using Elf_Off = typename ELF_T::Elf_Off;
+  using Elf_Addr = typename ELF_T::Elf_Addr;

   using Elf_Verneed = typename ELF_T::Elf_Verneed;
   using Elf_Vernaux = typename ELF_T::Elf_Vernaux;
@@ -1648,13 +1815,14 @@ ok_error_t Builder::build_symbol_requirement() {
   vector_iostream svr_raw(should_swap());

   uint32_t svr_idx = 0;
-  const auto& sym_name_offset = static_cast<ExeLayout*>(layout_.get())->dynstr_map();
-  for (SymbolVersionRequirement& svr: binary_->symbols_version_requirement()) {
+  const auto& sym_name_offset =
+      static_cast<ExeLayout*>(layout_.get())->dynstr_map();
+  for (SymbolVersionRequirement& svr : binary_->symbols_version_requirement()) {
     const std::string& name = svr.name();

     Elf_Off name_offset = 0;
-    const auto& it_name_offset = sym_name_offset.find(name);
-    if (it_name_offset != std::end(sym_name_offset)) {
+    auto it_name_offset = sym_name_offset.find(name);
+    if (it_name_offset != sym_name_offset.end()) {
       name_offset = it_name_offset->second;
     } else {
       LIEF_ERR("Can't find dynstr offset for '{}'", name);
@@ -1665,15 +1833,17 @@ ok_error_t Builder::build_symbol_requirement() {

     Elf_Off next_symbol_offset = 0;
     if (svr_idx < (binary_->symbol_version_requirements_.size() - 1)) {
-      next_symbol_offset = sizeof(Elf_Verneed) + svars.size() * sizeof(Elf_Vernaux);
+      next_symbol_offset =
+          sizeof(Elf_Verneed) + svars.size() * sizeof(Elf_Vernaux);
     }

     Elf_Verneed header;
     header.vn_version = static_cast<Elf_Half>(svr.version());
-    header.vn_cnt     = static_cast<Elf_Half>(svars.size());
-    header.vn_file    = static_cast<Elf_Word>(name_offset);
-    header.vn_aux     = static_cast<Elf_Word>(!svars.empty() ? sizeof(Elf_Verneed) : 0);
-    header.vn_next    = static_cast<Elf_Word>(next_symbol_offset);
+    header.vn_cnt = static_cast<Elf_Half>(svars.size());
+    header.vn_file = static_cast<Elf_Word>(name_offset);
+    header.vn_aux =
+        static_cast<Elf_Word>(!svars.empty() ? sizeof(Elf_Verneed) : 0);
+    header.vn_next = static_cast<Elf_Word>(next_symbol_offset);

     svr_raw.write<Elf_Verneed>(header);

@@ -1684,8 +1854,8 @@ ok_error_t Builder::build_symbol_requirement() {

       Elf_Off svar_name_offset = 0;

-      const auto& it_name_offset = sym_name_offset.find(svar_name);
-      if (it_name_offset != std::end(sym_name_offset)) {
+      auto it_name_offset = sym_name_offset.find(svar_name);
+      if (it_name_offset != sym_name_offset.end()) {
         svar_name_offset = it_name_offset->second;
       } else {
         LIEF_ERR("Can't find dynstr offset for '{}'", name);
@@ -1703,11 +1873,13 @@ ok_error_t Builder::build_symbol_requirement() {
       }

       Elf_Vernaux aux_header;
-      aux_header.vna_hash  = static_cast<Elf_Word>(svar.hash());
+      aux_header.vna_hash = static_cast<Elf_Word>(svar.hash());
       aux_header.vna_flags = static_cast<Elf_Half>(svar.flags());
       aux_header.vna_other = static_cast<Elf_Half>(svar.other());
-      aux_header.vna_name  = static_cast<Elf_Word>(svar_name_offset);
-      aux_header.vna_next  = static_cast<Elf_Word>(svar_idx < (svars.size() - 1) ? sizeof(Elf_Vernaux) : 0);
+      aux_header.vna_name = static_cast<Elf_Word>(svar_name_offset);
+      aux_header.vna_next = static_cast<Elf_Word>(svar_idx < (svars.size() - 1) ?
+                                                      sizeof(Elf_Vernaux) :
+                                                      0);

       svr_raw.write<Elf_Vernaux>(aux_header);

@@ -1729,11 +1901,11 @@ ok_error_t Builder::build_symbol_requirement() {

 template<typename ELF_T>
 ok_error_t Builder::build_symbol_definition() {
-  using Elf_Half    = typename ELF_T::Elf_Half;
-  using Elf_Word    = typename ELF_T::Elf_Word;
-  using Elf_Addr    = typename ELF_T::Elf_Addr;
+  using Elf_Half = typename ELF_T::Elf_Half;
+  using Elf_Word = typename ELF_T::Elf_Word;
+  using Elf_Addr = typename ELF_T::Elf_Addr;

-  using Elf_Verdef  = typename ELF_T::Elf_Verdef;
+  using Elf_Verdef = typename ELF_T::Elf_Verdef;
   using Elf_Verdaux = typename ELF_T::Elf_Verdaux;

   LIEF_DEBUG("[+] Building symbol definition");
@@ -1759,7 +1931,8 @@ ok_error_t Builder::build_symbol_definition() {

   auto sym_verdef = binary_->symbols_version_definition();

-  const auto& sym_name_offset = static_cast<ExeLayout*>(layout_.get())->dynstr_map();
+  const auto& sym_name_offset =
+      static_cast<ExeLayout*>(layout_.get())->dynstr_map();
   auto& verdef_info = static_cast<ExeLayout*>(layout_.get())->verdef_info();

   vector_iostream svd_aux_raw(should_swap());
@@ -1772,7 +1945,7 @@ ok_error_t Builder::build_symbol_definition() {
         uint64_t dynstr_offset = 0;

         const auto it_name_offset = sym_name_offset.find(sva_name);
-        if (it_name_offset == std::end(sym_name_offset)) {
+        if (it_name_offset == sym_name_offset.end()) {
           LIEF_ERR("Can't find dynstr offset for '{}'", sva_name);
           return make_error_code(lief_errors::not_found);
         }
@@ -1782,8 +1955,8 @@ ok_error_t Builder::build_symbol_definition() {
         const uint64_t next_offset = !is_last ? sizeof(Elf_Verdaux) : 0;

         Elf_Verdaux aux_header;
-        aux_header.vda_name  = static_cast<Elf_Word>(dynstr_offset);
-        aux_header.vda_next  = static_cast<Elf_Word>(next_offset);
+        aux_header.vda_name = static_cast<Elf_Word>(dynstr_offset);
+        aux_header.vda_next = static_cast<Elf_Word>(next_offset);

         svd_aux_raw.write<Elf_Verdaux>(aux_header);
       }
@@ -1813,21 +1986,21 @@ ok_error_t Builder::build_symbol_definition() {

       uint64_t aux_offset = svd_aux_offset + it_offset->second;
       // This is a **relative** offset
-      aux_offset -=  svd_raw.tellp();
+      aux_offset -= svd_raw.tellp();

       Elf_Verdef header;
       header.vd_version = static_cast<Elf_Half>(svd.version());
-      header.vd_flags   = static_cast<Elf_Half>(svd.flags());
-      header.vd_ndx     = static_cast<Elf_Half>(svd.ndx());
-      header.vd_cnt     = static_cast<Elf_Half>(svd.symbols_aux().size());
-      header.vd_hash    = static_cast<Elf_Word>(svd.hash());
-      header.vd_aux     = static_cast<Elf_Word>(aux_offset);
-      header.vd_next    = static_cast<Elf_Word>(next_offset);
+      header.vd_flags = static_cast<Elf_Half>(svd.flags());
+      header.vd_ndx = static_cast<Elf_Half>(svd.ndx());
+      header.vd_cnt = static_cast<Elf_Half>(svd.symbols_aux().size());
+      header.vd_hash = static_cast<Elf_Word>(svd.hash());
+      header.vd_aux = static_cast<Elf_Word>(aux_offset);
+      header.vd_next = static_cast<Elf_Word>(next_offset);
       svd_raw.write<Elf_Verdef>(header);
     }
   }

-  binary_->patch_address(svd_va,                  svd_raw.raw());
+  binary_->patch_address(svd_va, svd_raw.raw());
   binary_->patch_address(svd_va + svd_aux_offset, svd_aux_raw.raw());
   return ok();
 }
@@ -1855,7 +2028,7 @@ ok_error_t Builder::build_notes() {
     return ok();
   }

-  LIEF_DEBUG("== Building notes ==");
+  LIEF_DEBUG("Building notes");
   Segment* note_segment = binary_->get(Segment::TYPE::NOTE);
   if (note_segment == nullptr) {
     LIEF_ERR("Can't find the PT_NOTE segment");
@@ -1871,7 +2044,7 @@ ok_error_t Builder::build_notes() {
   }

   std::set<const Note*> notes;
-  for (const Note& note: binary_->notes()) {
+  for (const Note& note : binary_->notes()) {
     update_note_section(note, notes);
   }
   return ok();
@@ -1883,8 +2056,10 @@ ok_error_t Builder::build_symbol_version() {
   LIEF_DEBUG("[+] Building symbol version");

   if (binary_->symbol_version_table_.size() != binary_->dynamic_symbols_.size()) {
-    LIEF_WARN("The number of symbol version is different from the number of dynamic symbols {} != {}",
-              binary_->symbol_version_table_.size(), binary_->dynamic_symbols_.size());
+    LIEF_WARN("The number of symbol version is different from the number of "
+              "dynamic symbols {} != {}",
+              binary_->symbol_version_table_.size(),
+              binary_->dynamic_symbols_.size());
   }

   DynamicEntry* dt_versym = binary_->get(DynamicEntry::TAG::VERSYM);
@@ -1897,7 +2072,7 @@ ok_error_t Builder::build_symbol_version() {
   vector_iostream sv_raw(should_swap());
   sv_raw.reserve(binary_->symbol_version_table_.size() * sizeof(uint16_t));

-  //for (const SymbolVersion* sv : binary_->symbol_version_table_) {
+  // for (const SymbolVersion* sv : binary_->symbol_version_table_) {
   for (const std::unique_ptr<Symbol>& symbol : binary_->dynamic_symbols_) {
     const SymbolVersion* sv = symbol->symbol_version();
     if (sv == nullptr) {
@@ -1935,5 +2110,4 @@ bool Builder::should_build_notes() const {
   return config_.notes;
 }

-} // namespace ELF
-} // namespace LIEF
+} // namespace LIEF::ELF
diff --git a/deps/LIEF/src/ELF/CMakeLists.txt b/deps/LIEF/src/ELF/CMakeLists.txt
index 0149b38e782..16d5446e5db 100644
--- a/deps/LIEF/src/ELF/CMakeLists.txt
+++ b/deps/LIEF/src/ELF/CMakeLists.txt
@@ -13,9 +13,12 @@ target_sources(LIB_LIEF PRIVATE
   DynamicEntryRpath.cpp
   DynamicEntryRunPath.cpp
   DynamicSharedObject.cpp
+  DynamicEntryAuxiliary.cpp
+  DynamicEntryFilter.cpp
   EnumToString.cpp
   GnuHash.cpp
   Header.cpp
+  elf_utils.cpp
   Layout.cpp
   Note.cpp
   Parser.cpp
@@ -35,7 +38,8 @@ target_sources(LIB_LIEF PRIVATE
   SysvHash.cpp
   hash.cpp
   utils.cpp
-  json_api.cpp)
+  json_api.cpp
+  layout_check.cpp)

 add_subdirectory(NoteDetails)
 add_subdirectory(DataHandler)
diff --git a/deps/LIEF/src/ELF/DataHandler/Handler.cpp b/deps/LIEF/src/ELF/DataHandler/Handler.cpp
index 55b4bed78a4..48cf4e938a7 100644
--- a/deps/LIEF/src/ELF/DataHandler/Handler.cpp
+++ b/deps/LIEF/src/ELF/DataHandler/Handler.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -19,23 +19,21 @@
 #include "logging.hpp"

 #include "LIEF/BinaryStream/MemoryStream.hpp"
+#include "LIEF/BinaryStream/DumpStream.hpp"
 #include "LIEF/BinaryStream/VectorStream.hpp"
 #include "LIEF/BinaryStream/SpanStream.hpp"
 #include "LIEF/BinaryStream/FileStream.hpp"

 #include "ELF/DataHandler/Handler.hpp"

-namespace LIEF {
-namespace ELF {
-namespace DataHandler {
+
+namespace LIEF::ELF::DataHandler {

 class DataHandlerStream : public BinaryStream {
   public:
   DataHandlerStream(std::vector<uint8_t>& ref) :
     BinaryStream(STREAM_TYPE::ELF_DATA_HANDLER),
-    data_{ref}
-  {
-  }
+    data_{ref} {}

   ~DataHandlerStream() override = default;

@@ -43,7 +41,8 @@ class DataHandlerStream : public BinaryStream {
     return data_.size();
   }

-  result<const void*> read_at(uint64_t offset, uint64_t size, uint64_t /*va*/) const override {
+  result<const void*> read_at(uint64_t offset, uint64_t size,
+                              uint64_t /*va*/) const override {
     if (offset > data_.size() || (offset + size) > data_.size()) {
       return make_error_code(lief_errors::read_error);
     }
@@ -54,59 +53,74 @@ class DataHandlerStream : public BinaryStream {
   std::vector<uint8_t>& data_;
 };

-result<std::unique_ptr<Handler>> Handler::from_stream(std::unique_ptr<BinaryStream>& stream) {
+std::unique_ptr<Handler>
+    Handler::from_stream(std::unique_ptr<BinaryStream>& stream) {
   auto hdl = std::unique_ptr<Handler>(new Handler{});
-  if (VectorStream::classof(*stream)) {
-    auto& vs = static_cast<VectorStream&>(*stream);
+  if (auto* vs = stream->cast<VectorStream>()) {
+    hdl->data_ = std::move(vs->move_content());
+    const uint64_t pos = vs->pos();
+    auto new_stream = std::make_unique<DataHandlerStream>(hdl->data_);
+    new_stream->setpos(pos);
+    stream = std::move(new_stream);
+    return hdl;
+  }

-    hdl->data_ = std::move(vs.move_content());
-    const uint64_t pos = vs.pos();
-    stream = std::make_unique<DataHandlerStream>(hdl->data_);
-    stream->setpos(pos);
+  if (auto* span_strm = stream->cast<SpanStream>()) {
+    hdl->data_ = span_strm->content();
     return hdl;
   }

-  if (SpanStream::classof(*stream)) {
-    auto& vs = static_cast<SpanStream&>(*stream);
-    hdl->data_ = vs.content();
+  if (auto* fs = stream->cast<FileStream>()) {
+    hdl->data_ = fs->content();
+    const uint64_t pos = fs->pos();
+    auto new_stream = std::make_unique<DataHandlerStream>(hdl->data_);
+    new_stream->setpos(pos);
+    stream = std::move(new_stream);
     return hdl;
   }

-  if (FileStream::classof(*stream)) {
-    auto& vs = static_cast<FileStream&>(*stream);
-    hdl->data_ = vs.content();
-    const uint64_t pos = vs.pos();
-    stream = std::make_unique<DataHandlerStream>(hdl->data_);
-    stream->setpos(pos);
+  if (auto* memstream = stream->cast<MemoryStream>()) {
+    const uint8_t* start = memstream->start();
+    hdl->data_.assign(start, start + memstream->size());
+    const uint64_t pos = memstream->pos();
+    auto new_stream = std::make_unique<DataHandlerStream>(hdl->data_);
+    new_stream->setpos(pos);
+    stream = std::move(new_stream);
     return hdl;
   }

-  if (MemoryStream::classof(*stream)) {
-    return make_error_code(lief_errors::not_implemented);
+  if (auto* dump = stream->cast<DumpStream>()) {
+    hdl->data_ = dump->content();
+    const uint64_t pos = dump->pos();
+    auto new_stream = std::make_unique<DataHandlerStream>(hdl->data_);
+    new_stream->setpos(pos);
+    stream = std::move(new_stream);
+    return hdl;
   }

-  LIEF_ERR("Unknown stream for Handler");
-  return make_error_code(lief_errors::not_supported);
+  LIEF_ERR("Unknown stream type for Handler");
+  return nullptr;
 }

 bool Handler::has(uint64_t offset, uint64_t size, Node::Type type) {
   Node tmp{offset, size, type};
-  const auto it_node = std::find_if(std::begin(nodes_), std::end(nodes_),
-                                    [&tmp] (const std::unique_ptr<Node>& node) {
+  const auto it_node = std::find_if(nodes_.begin(), nodes_.end(),
+                                    [&tmp](const std::unique_ptr<Node>& node) {
                                       return tmp == *node;
                                     });
-  return it_node != std::end(nodes_);
+  return it_node != nodes_.end();
 }

-result<Handler::ref_t<Node>> Handler::get(uint64_t offset, uint64_t size, Node::Type type) {
+result<Handler::ref_t<Node>> Handler::get(uint64_t offset, uint64_t size,
+                                          Node::Type type) {
   Node tmp{offset, size, type};

-  const auto it_node = std::find_if(std::begin(nodes_), std::end(nodes_),
-                                    [&tmp] (const std::unique_ptr<Node>& node) {
+  const auto it_node = std::find_if(nodes_.begin(), nodes_.end(),
+                                    [&tmp](const std::unique_ptr<Node>& node) {
                                       return tmp == *node;
                                     });

-  if (it_node == std::end(nodes_)) {
+  if (it_node == nodes_.end()) {
     return make_error_code(lief_errors::not_found);
   }
   return **it_node;
@@ -117,16 +131,17 @@ void Handler::remove(uint64_t offset, uint64_t size, Node::Type type) {

   Node tmp{offset, size, type};

-  const auto it_node = std::find_if(std::begin(nodes_), std::end(nodes_),
-                                    [&tmp] (const std::unique_ptr<Node>& node) {
+  const auto it_node = std::find_if(nodes_.begin(), nodes_.end(),
+                                    [&tmp](const std::unique_ptr<Node>& node) {
                                       return tmp == *node;
                                     });

-  if (it_node == std::end(nodes_)) {
-    LIEF_ERR("Unable to find the node");
+  if (it_node == nodes_.end()) {
+    LIEF_ERR("Node not found");
+    return;
   }

-   nodes_.erase(it_node);
+  nodes_.erase(it_node);
 }


@@ -146,15 +161,14 @@ ok_error_t Handler::make_hole(uint64_t offset, uint64_t size) {
   if (!res) {
     return res;
   }
-  data_.insert(std::begin(data_) + offset, size, 0);
+  data_.insert(data_.begin() + offset, size, 0);
   return ok();
 }


 ok_error_t Handler::reserve(uint64_t offset, uint64_t size) {
   static constexpr auto MAX_MEMORY_SIZE = 6_GB;
-  const auto full_size = static_cast<int64_t>(offset) +
-                         static_cast<int64_t>(size);
+  const auto full_size = static_cast<int64_t>(offset) + static_cast<int64_t>(size);
   if (full_size < 0) {
     return make_error_code(lief_errors::corrupted);
   }
@@ -177,6 +191,4 @@ ok_error_t Handler::reserve(uint64_t offset, uint64_t size) {
 }


-} // namespace DataHandler
-} // namespace ELF
-} // namespace LIEF
+} // namespace LIEF::ELF::DataHandler
diff --git a/deps/LIEF/src/ELF/DataHandler/Handler.hpp b/deps/LIEF/src/ELF/DataHandler/Handler.hpp
index 959727cd553..e85a64a8ef7 100644
--- a/deps/LIEF/src/ELF/DataHandler/Handler.hpp
+++ b/deps/LIEF/src/ELF/DataHandler/Handler.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -27,8 +27,8 @@

 namespace LIEF {
 class BinaryStream;
-namespace ELF {
-namespace DataHandler {
+
+namespace ELF::DataHandler {

 class LIEF_API Handler {
   public:
@@ -37,8 +37,7 @@ class LIEF_API Handler {

   static constexpr size_t MAX_SIZE = 4_GB;
   Handler(std::vector<uint8_t> content) :
-    data_(std::move(content))
-  {}
+    data_(std::move(content)) {}

   ~Handler() = default;

@@ -72,7 +71,8 @@ class LIEF_API Handler {

   ok_error_t reserve(uint64_t offset, uint64_t size);

-  static result<std::unique_ptr<Handler>> from_stream(std::unique_ptr<BinaryStream>& stream);
+  static std::unique_ptr<Handler>
+      from_stream(std::unique_ptr<BinaryStream>& stream);

   private:
   Handler() = default;
@@ -80,8 +80,8 @@ class LIEF_API Handler {
   std::vector<uint8_t> data_;
   std::vector<std::unique_ptr<Node>> nodes_;
 };
-} // namespace DataHandler
-} // namespace ELF
+} // namespace ELF::DataHandler
+
 } // namespace LIEF

 #endif
diff --git a/deps/LIEF/src/ELF/DataHandler/Node.cpp b/deps/LIEF/src/ELF/DataHandler/Node.cpp
index ec90a2ef9d1..441af435f38 100644
--- a/deps/LIEF/src/ELF/DataHandler/Node.cpp
+++ b/deps/LIEF/src/ELF/DataHandler/Node.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -15,35 +15,28 @@
  */
 #include "ELF/DataHandler/Node.hpp"

-namespace LIEF {
-namespace ELF {
-namespace DataHandler {
+
+namespace LIEF::ELF::DataHandler {

 bool Node::operator==(const Node& rhs) const {
   if (this == &rhs) {
     return true;
   }
-  return type() == rhs.type() &&
-         size() == rhs.size() &&
-         offset() == rhs.offset();
+  return type() == rhs.type() && size() == rhs.size() && offset() == rhs.offset();
 }

 bool Node::operator<(const Node& rhs) const {
-  return ((type() == rhs.type() &&
-         offset() <= rhs.offset() &&
-         (offset() + size()) < (rhs.offset() + rhs.size())) ||
-         (type() == rhs.type() &&
-         offset() < rhs.offset() &&
-         (offset() + size()) <= (rhs.offset() + rhs.size())));
-
+  return ((type() == rhs.type() && offset() <= rhs.offset() &&
+           (offset() + size()) < (rhs.offset() + rhs.size())) ||
+          (type() == rhs.type() && offset() < rhs.offset() &&
+           (offset() + size()) <= (rhs.offset() + rhs.size())));
 }


 bool Node::operator>(const Node& rhs) const {
   return type() == rhs.type() &&
-        (offset() > rhs.offset() || (offset() + size()) > (rhs.offset() + rhs.size()));
+         (offset() > rhs.offset() ||
+          (offset() + size()) > (rhs.offset() + rhs.size()));
 }

 }
-}
-}
diff --git a/deps/LIEF/src/ELF/DataHandler/Node.hpp b/deps/LIEF/src/ELF/DataHandler/Node.hpp
index 868478845cc..d4bddc18604 100644
--- a/deps/LIEF/src/ELF/DataHandler/Node.hpp
+++ b/deps/LIEF/src/ELF/DataHandler/Node.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -24,14 +24,15 @@ namespace LIEF::ELF::DataHandler {
 class LIEF_LOCAL Node {
   public:
   enum Type : uint8_t {
-    SECTION = 0,
-    SEGMENT = 1,
-    UNKNOWN = 2
+    UNKNOWN = 0,
+    SECTION,
+    SEGMENT,
   };
   Node() = default;
   Node(uint64_t offset, uint64_t size, Type type) :
-    size_{size}, offset_{offset}, type_{type}
-  {}
+    size_{size},
+    offset_{offset},
+    type_{type} {}

   Node& operator=(const Node&) = default;
   Node(const Node&) = default;
diff --git a/deps/LIEF/src/ELF/DynamicEntry.cpp b/deps/LIEF/src/ELF/DynamicEntry.cpp
index 923d6318799..7aec307b23d 100644
--- a/deps/LIEF/src/ELF/DynamicEntry.cpp
+++ b/deps/LIEF/src/ELF/DynamicEntry.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -23,6 +23,8 @@
 #include "LIEF/ELF/DynamicEntryRpath.hpp"
 #include "LIEF/ELF/DynamicEntryRunPath.hpp"
 #include "LIEF/ELF/DynamicSharedObject.hpp"
+#include "LIEF/ELF/DynamicEntryAuxiliary.hpp"
+#include "LIEF/ELF/DynamicEntryFilter.hpp"

 #include <spdlog/fmt/fmt.h>

@@ -30,8 +32,8 @@
 #include "logging.hpp"
 #include "ELF/Structures.hpp"

-namespace LIEF {
-namespace ELF {
+
+namespace LIEF::ELF {

 DynamicEntry::TAG DynamicEntry::from_value(uint64_t value, ARCH arch) {
   static constexpr auto LOPROC = 0x70000000;
@@ -48,35 +50,36 @@ DynamicEntry::TAG DynamicEntry::from_value(uint64_t value, ARCH arch) {
   }

   if (is_proc_spec) {
+    if (value == static_cast<uint64_t>(TAG::AUXILIARY)) {
+      return TAG::AUXILIARY;
+    }
+
+    if (value == static_cast<uint64_t>(TAG::FILTER)) {
+      return TAG::FILTER;
+    }
+
     switch (arch) {
-      case ARCH::AARCH64:
-        return TAG(AARCH64_DISC + value);
+      case ARCH::AARCH64: return TAG(AARCH64_DISC + value);

       case ARCH::MIPS_RS3_LE:
-      case ARCH::MIPS:
-        return TAG(MIPS_DISC + value);
+      case ARCH::MIPS: return TAG(MIPS_DISC + value);

-      case ARCH::HEXAGON:
-        return TAG(HEXAGON_DISC + value);
+      case ARCH::HEXAGON: return TAG(HEXAGON_DISC + value);

-      case ARCH::PPC:
-        return TAG(PPC_DISC + value);
+      case ARCH::PPC: return TAG(PPC_DISC + value);

-      case ARCH::PPC64:
-        return TAG(PPC64_DISC + value);
+      case ARCH::PPC64: return TAG(PPC64_DISC + value);

-      case ARCH::RISCV:
-        return TAG(RISCV_DISC + value);
+      case ARCH::RISCV: return TAG(RISCV_DISC + value);

-      case ARCH::X86_64:
-        return TAG(X86_64_DISC + value);
+      case ARCH::X86_64: return TAG(X86_64_DISC + value);

-      case ARCH::IA_64:
-        return TAG(IA_64_DISC + value);
+      case ARCH::IA_64: return TAG(IA_64_DISC + value);

       default:
-        LIEF_WARN("Dynamic tag: 0x{:04x} is not supported for the "
-                  "current architecture ({})", value, ELF::to_string(arch));
+        LIEF_WARN("Unsupported dynamic tag {:#06x} for "
+                  "architecture ({})",
+                  value, ELF::to_string(arch));
         return TAG::UNKNOWN;
     }
   }
@@ -86,6 +89,11 @@ DynamicEntry::TAG DynamicEntry::from_value(uint64_t value, ARCH arch) {

 uint64_t DynamicEntry::to_value(DynamicEntry::TAG tag) {
   auto raw_value = static_cast<uint64_t>(tag);
+
+  if (tag == TAG::AUXILIARY || tag == TAG::FILTER) {
+    return raw_value;
+  }
+
   if (MIPS_DISC <= raw_value && raw_value < AARCH64_DISC) {
     return raw_value - MIPS_DISC;
   }
@@ -124,50 +132,46 @@ uint64_t DynamicEntry::to_value(DynamicEntry::TAG tag) {

 std::unique_ptr<DynamicEntry> DynamicEntry::create(TAG tag, uint64_t value) {
   switch (tag) {
-    default:
-      return std::make_unique<DynamicEntry>(tag, value);
-    case TAG::NEEDED:
-      return std::make_unique<DynamicEntryLibrary>();
+    default: return std::make_unique<DynamicEntry>(tag, value);
+    case TAG::NEEDED: return std::make_unique<DynamicEntryLibrary>();
+
+    case TAG::SONAME: return std::make_unique<DynamicSharedObject>();

-    case TAG::SONAME:
-      return std::make_unique<DynamicSharedObject>();
+    case TAG::AUXILIARY: return std::make_unique<DynamicEntryAuxiliary>();

-    case TAG::RUNPATH:
-      return std::make_unique<DynamicEntryRunPath>();
+    case TAG::FILTER: return std::make_unique<DynamicEntryFilter>();

-    case TAG::RPATH:
-      return std::make_unique<DynamicEntryRpath>();
+    case TAG::RUNPATH: return std::make_unique<DynamicEntryRunPath>();

-    case TAG::FLAGS_1:
-      return DynamicEntryFlags::create_dt_flag_1(value).clone();
+    case TAG::RPATH: return std::make_unique<DynamicEntryRpath>();

-    case TAG::FLAGS:
-      return DynamicEntryFlags::create_dt_flag(value).clone();
+    case TAG::FLAGS_1: return DynamicEntryFlags::create_dt_flag_1(value).clone();
+
+    case TAG::FLAGS: return DynamicEntryFlags::create_dt_flag(value).clone();

     case TAG::INIT_ARRAY:
     case TAG::FINI_ARRAY:
     case TAG::PREINIT_ARRAY:
-      return std::make_unique<DynamicEntryArray>(tag, DynamicEntryArray::array_t());
+      return std::make_unique<DynamicEntryArray>(tag,
+                                                 DynamicEntryArray::array_t());
   }
   return std::make_unique<DynamicEntry>(tag, value);
 }

 DynamicEntry::DynamicEntry(const details::Elf64_Dyn& header, ARCH arch) :
   tag_{DynamicEntry::from_value(header.d_tag, arch)},
-  value_{header.d_un.d_val}
-{}
+  value_{header.d_un.d_val} {}

 DynamicEntry::DynamicEntry(const details::Elf32_Dyn& header, ARCH arch) :
   tag_{DynamicEntry::from_value(header.d_tag, arch)},
-  value_{header.d_un.d_val}
-{}
+  value_{header.d_un.d_val} {}

 void DynamicEntry::accept(Visitor& visitor) const {
   visitor.visit(*this);
 }

 std::ostream& DynamicEntry::print(std::ostream& os) const {
-  os << fmt::format("{:<20}: 0x{:06x} ", ELF::to_string(tag()), value());
+  os << fmt::format("{:<20}: {:#08x} ", ELF::to_string(tag()), value());
   return os;
 }

@@ -178,171 +182,175 @@ std::string DynamicEntry::to_string() const {
 }

 const char* to_string(DynamicEntry::TAG tag) {
-  #define ENTRY(X) std::pair(DynamicEntry::TAG::X, #X)
-  STRING_MAP enums2str {
-    ENTRY(UNKNOWN),
-    ENTRY(DT_NULL_),
-    ENTRY(NEEDED),
-    ENTRY(PLTRELSZ),
-    ENTRY(PLTGOT),
-    ENTRY(HASH),
-    ENTRY(STRTAB),
-    ENTRY(SYMTAB),
-    ENTRY(RELA),
-    ENTRY(RELASZ),
-    ENTRY(RELAENT),
-    ENTRY(STRSZ),
-    ENTRY(SYMENT),
-    ENTRY(INIT),
-    ENTRY(FINI),
-    ENTRY(SONAME),
-    ENTRY(RPATH),
-    ENTRY(SYMBOLIC),
-    ENTRY(REL),
-    ENTRY(RELSZ),
-    ENTRY(RELENT),
-    ENTRY(PLTREL),
-    ENTRY(DEBUG_TAG),
-    ENTRY(TEXTREL),
-    ENTRY(JMPREL),
-    ENTRY(BIND_NOW),
-    ENTRY(INIT_ARRAY),
-    ENTRY(FINI_ARRAY),
-    ENTRY(INIT_ARRAYSZ),
-    ENTRY(FINI_ARRAYSZ),
-    ENTRY(RUNPATH),
-    ENTRY(FLAGS),
-    ENTRY(PREINIT_ARRAY),
-    ENTRY(PREINIT_ARRAYSZ),
-    ENTRY(SYMTAB_SHNDX),
-    ENTRY(RELRSZ),
-    ENTRY(RELR),
-    ENTRY(RELRENT),
-    ENTRY(GNU_HASH),
-    ENTRY(RELACOUNT),
-    ENTRY(RELCOUNT),
-    ENTRY(FLAGS_1),
-    ENTRY(VERSYM),
-    ENTRY(VERDEF),
-    ENTRY(VERDEFNUM),
-    ENTRY(VERNEED),
-    ENTRY(VERNEEDNUM),
-    ENTRY(ANDROID_REL_OFFSET),
-    ENTRY(ANDROID_REL_SIZE),
-    ENTRY(ANDROID_REL),
-    ENTRY(ANDROID_RELSZ),
-    ENTRY(ANDROID_RELA),
-    ENTRY(ANDROID_RELASZ),
-    ENTRY(ANDROID_RELR),
-    ENTRY(ANDROID_RELRSZ),
-    ENTRY(ANDROID_RELRENT),
-    ENTRY(ANDROID_RELRCOUNT),
-    ENTRY(MIPS_RLD_VERSION),
-    ENTRY(MIPS_TIME_STAMP),
-    ENTRY(MIPS_ICHECKSUM),
-    ENTRY(MIPS_IVERSION),
-    ENTRY(MIPS_FLAGS),
-    ENTRY(MIPS_BASE_ADDRESS),
-    ENTRY(MIPS_MSYM),
-    ENTRY(MIPS_CONFLICT),
-    ENTRY(MIPS_LIBLIST),
-    ENTRY(MIPS_LOCAL_GOTNO),
-    ENTRY(MIPS_CONFLICTNO),
-    ENTRY(MIPS_LIBLISTNO),
-    ENTRY(MIPS_SYMTABNO),
-    ENTRY(MIPS_UNREFEXTNO),
-    ENTRY(MIPS_GOTSYM),
-    ENTRY(MIPS_HIPAGENO),
-    ENTRY(MIPS_RLD_MAP),
-    ENTRY(MIPS_DELTA_CLASS),
-    ENTRY(MIPS_DELTA_CLASS_NO),
-    ENTRY(MIPS_DELTA_INSTANCE),
-    ENTRY(MIPS_DELTA_INSTANCE_NO),
-    ENTRY(MIPS_DELTA_RELOC),
-    ENTRY(MIPS_DELTA_RELOC_NO),
-    ENTRY(MIPS_DELTA_SYM),
-    ENTRY(MIPS_DELTA_SYM_NO),
-    ENTRY(MIPS_DELTA_CLASSSYM),
-    ENTRY(MIPS_DELTA_CLASSSYM_NO),
-    ENTRY(MIPS_CXX_FLAGS),
-    ENTRY(MIPS_PIXIE_INIT),
-    ENTRY(MIPS_SYMBOL_LIB),
-    ENTRY(MIPS_LOCALPAGE_GOTIDX),
-    ENTRY(MIPS_LOCAL_GOTIDX),
-    ENTRY(MIPS_HIDDEN_GOTIDX),
-    ENTRY(MIPS_PROTECTED_GOTIDX),
-    ENTRY(MIPS_OPTIONS),
-    ENTRY(MIPS_INTERFACE),
-    ENTRY(MIPS_DYNSTR_ALIGN),
-    ENTRY(MIPS_INTERFACE_SIZE),
-    ENTRY(MIPS_RLD_TEXT_RESOLVE_ADDR),
-    ENTRY(MIPS_PERF_SUFFIX),
-    ENTRY(MIPS_COMPACT_SIZE),
-    ENTRY(MIPS_GP_VALUE),
-    ENTRY(MIPS_AUX_DYNAMIC),
-    ENTRY(MIPS_PLTGOT),
-    ENTRY(MIPS_RWPLT),
-    ENTRY(MIPS_RLD_MAP_REL),
-    ENTRY(MIPS_XHASH),
-
-    ENTRY(AARCH64_BTI_PLT),
-    ENTRY(AARCH64_PAC_PLT),
-    ENTRY(AARCH64_VARIANT_PCS),
-    ENTRY(AARCH64_MEMTAG_MODE),
-    ENTRY(AARCH64_MEMTAG_HEAP),
-    ENTRY(AARCH64_MEMTAG_STACK),
-    ENTRY(AARCH64_MEMTAG_GLOBALS),
-    ENTRY(AARCH64_MEMTAG_GLOBALSSZ),
-
-    ENTRY(HEXAGON_SYMSZ),
-    ENTRY(HEXAGON_VER),
-    ENTRY(HEXAGON_PLT),
-
-    ENTRY(PPC_GOT),
-    ENTRY(PPC_OPT),
-
-    ENTRY(PPC64_GLINK),
-    ENTRY(PPC64_OPT),
-
-    ENTRY(RISCV_VARIANT_CC),
-
-    ENTRY(X86_64_PLT),
-    ENTRY(X86_64_PLTSZ),
-    ENTRY(X86_64_PLTENT),
-
-    ENTRY(IA_64_PLT_RESERVE),
-    ENTRY(IA_64_VMS_SUBTYPE),
-    ENTRY(IA_64_VMS_IMGIOCNT),
-    ENTRY(IA_64_VMS_LNKFLAGS),
-    ENTRY(IA_64_VMS_VIR_MEM_BLK_SIZ),
-    ENTRY(IA_64_VMS_IDENT),
-    ENTRY(IA_64_VMS_NEEDED_IDENT),
-    ENTRY(IA_64_VMS_IMG_RELA_CNT),
-    ENTRY(IA_64_VMS_SEG_RELA_CNT),
-    ENTRY(IA_64_VMS_FIXUP_RELA_CNT),
-    ENTRY(IA_64_VMS_FIXUP_NEEDED),
-    ENTRY(IA_64_VMS_SYMVEC_CNT),
-    ENTRY(IA_64_VMS_XLATED),
-    ENTRY(IA_64_VMS_STACKSIZE),
-    ENTRY(IA_64_VMS_UNWINDSZ),
-    ENTRY(IA_64_VMS_UNWIND_CODSEG),
-    ENTRY(IA_64_VMS_UNWIND_INFOSEG),
-    ENTRY(IA_64_VMS_LINKTIME),
-    ENTRY(IA_64_VMS_SEG_NO),
-    ENTRY(IA_64_VMS_SYMVEC_OFFSET),
-    ENTRY(IA_64_VMS_SYMVEC_SEG),
-    ENTRY(IA_64_VMS_UNWIND_OFFSET),
-    ENTRY(IA_64_VMS_UNWIND_SEG),
-    ENTRY(IA_64_VMS_STRTAB_OFFSET),
-    ENTRY(IA_64_VMS_SYSVER_OFFSET),
-    ENTRY(IA_64_VMS_IMG_RELA_OFF),
-    ENTRY(IA_64_VMS_SEG_RELA_OFF),
-    ENTRY(IA_64_VMS_FIXUP_RELA_OFF),
-    ENTRY(IA_64_VMS_PLTGOT_OFFSET),
-    ENTRY(IA_64_VMS_PLTGOT_SEG),
-    ENTRY(IA_64_VMS_FPMODE),
+#define ENTRY(X) std::pair(DynamicEntry::TAG::X, #X)
+  STRING_MAP enums2str{
+      ENTRY(UNKNOWN),
+      ENTRY(DT_NULL_),
+      ENTRY(NEEDED),
+      ENTRY(PLTRELSZ),
+      ENTRY(PLTGOT),
+      ENTRY(HASH),
+      ENTRY(STRTAB),
+      ENTRY(SYMTAB),
+      ENTRY(RELA),
+      ENTRY(RELASZ),
+      ENTRY(RELAENT),
+      ENTRY(STRSZ),
+      ENTRY(SYMENT),
+      ENTRY(INIT),
+      ENTRY(FINI),
+      ENTRY(SONAME),
+      ENTRY(RPATH),
+      ENTRY(SYMBOLIC),
+      ENTRY(REL),
+      ENTRY(RELSZ),
+      ENTRY(RELENT),
+      ENTRY(PLTREL),
+      ENTRY(DEBUG_TAG),
+      ENTRY(TEXTREL),
+      ENTRY(JMPREL),
+      ENTRY(BIND_NOW),
+      ENTRY(INIT_ARRAY),
+      ENTRY(FINI_ARRAY),
+      ENTRY(INIT_ARRAYSZ),
+      ENTRY(FINI_ARRAYSZ),
+      ENTRY(RUNPATH),
+      ENTRY(FLAGS),
+      ENTRY(PREINIT_ARRAY),
+      ENTRY(PREINIT_ARRAYSZ),
+      ENTRY(SYMTAB_SHNDX),
+      ENTRY(RELRSZ),
+      ENTRY(RELR),
+      ENTRY(RELRENT),
+      ENTRY(GNU_HASH),
+      ENTRY(TLSDESC_PLT),
+      ENTRY(TLSDESC_GOT),
+      ENTRY(RELACOUNT),
+      ENTRY(RELCOUNT),
+      ENTRY(FLAGS_1),
+      ENTRY(VERSYM),
+      ENTRY(VERDEF),
+      ENTRY(VERDEFNUM),
+      ENTRY(VERNEED),
+      ENTRY(VERNEEDNUM),
+      ENTRY(AUXILIARY),
+      ENTRY(FILTER),
+      ENTRY(ANDROID_REL_OFFSET),
+      ENTRY(ANDROID_REL_SIZE),
+      ENTRY(ANDROID_REL),
+      ENTRY(ANDROID_RELSZ),
+      ENTRY(ANDROID_RELA),
+      ENTRY(ANDROID_RELASZ),
+      ENTRY(ANDROID_RELR),
+      ENTRY(ANDROID_RELRSZ),
+      ENTRY(ANDROID_RELRENT),
+      ENTRY(ANDROID_RELRCOUNT),
+      ENTRY(MIPS_RLD_VERSION),
+      ENTRY(MIPS_TIME_STAMP),
+      ENTRY(MIPS_ICHECKSUM),
+      ENTRY(MIPS_IVERSION),
+      ENTRY(MIPS_FLAGS),
+      ENTRY(MIPS_BASE_ADDRESS),
+      ENTRY(MIPS_MSYM),
+      ENTRY(MIPS_CONFLICT),
+      ENTRY(MIPS_LIBLIST),
+      ENTRY(MIPS_LOCAL_GOTNO),
+      ENTRY(MIPS_CONFLICTNO),
+      ENTRY(MIPS_LIBLISTNO),
+      ENTRY(MIPS_SYMTABNO),
+      ENTRY(MIPS_UNREFEXTNO),
+      ENTRY(MIPS_GOTSYM),
+      ENTRY(MIPS_HIPAGENO),
+      ENTRY(MIPS_RLD_MAP),
+      ENTRY(MIPS_DELTA_CLASS),
+      ENTRY(MIPS_DELTA_CLASS_NO),
+      ENTRY(MIPS_DELTA_INSTANCE),
+      ENTRY(MIPS_DELTA_INSTANCE_NO),
+      ENTRY(MIPS_DELTA_RELOC),
+      ENTRY(MIPS_DELTA_RELOC_NO),
+      ENTRY(MIPS_DELTA_SYM),
+      ENTRY(MIPS_DELTA_SYM_NO),
+      ENTRY(MIPS_DELTA_CLASSSYM),
+      ENTRY(MIPS_DELTA_CLASSSYM_NO),
+      ENTRY(MIPS_CXX_FLAGS),
+      ENTRY(MIPS_PIXIE_INIT),
+      ENTRY(MIPS_SYMBOL_LIB),
+      ENTRY(MIPS_LOCALPAGE_GOTIDX),
+      ENTRY(MIPS_LOCAL_GOTIDX),
+      ENTRY(MIPS_HIDDEN_GOTIDX),
+      ENTRY(MIPS_PROTECTED_GOTIDX),
+      ENTRY(MIPS_OPTIONS),
+      ENTRY(MIPS_INTERFACE),
+      ENTRY(MIPS_DYNSTR_ALIGN),
+      ENTRY(MIPS_INTERFACE_SIZE),
+      ENTRY(MIPS_RLD_TEXT_RESOLVE_ADDR),
+      ENTRY(MIPS_PERF_SUFFIX),
+      ENTRY(MIPS_COMPACT_SIZE),
+      ENTRY(MIPS_GP_VALUE),
+      ENTRY(MIPS_AUX_DYNAMIC),
+      ENTRY(MIPS_PLTGOT),
+      ENTRY(MIPS_RWPLT),
+      ENTRY(MIPS_RLD_MAP_REL),
+      ENTRY(MIPS_XHASH),
+
+      ENTRY(AARCH64_BTI_PLT),
+      ENTRY(AARCH64_PAC_PLT),
+      ENTRY(AARCH64_VARIANT_PCS),
+      ENTRY(AARCH64_MEMTAG_MODE),
+      ENTRY(AARCH64_MEMTAG_HEAP),
+      ENTRY(AARCH64_MEMTAG_STACK),
+      ENTRY(AARCH64_MEMTAG_GLOBALS),
+      ENTRY(AARCH64_MEMTAG_GLOBALSSZ),
+
+      ENTRY(HEXAGON_SYMSZ),
+      ENTRY(HEXAGON_VER),
+      ENTRY(HEXAGON_PLT),
+
+      ENTRY(PPC_GOT),
+      ENTRY(PPC_OPT),
+
+      ENTRY(PPC64_GLINK),
+      ENTRY(PPC64_OPT),
+
+      ENTRY(RISCV_VARIANT_CC),
+
+      ENTRY(X86_64_PLT),
+      ENTRY(X86_64_PLTSZ),
+      ENTRY(X86_64_PLTENT),
+
+      ENTRY(IA_64_PLT_RESERVE),
+      ENTRY(IA_64_VMS_SUBTYPE),
+      ENTRY(IA_64_VMS_IMGIOCNT),
+      ENTRY(IA_64_VMS_LNKFLAGS),
+      ENTRY(IA_64_VMS_VIR_MEM_BLK_SIZ),
+      ENTRY(IA_64_VMS_IDENT),
+      ENTRY(IA_64_VMS_NEEDED_IDENT),
+      ENTRY(IA_64_VMS_IMG_RELA_CNT),
+      ENTRY(IA_64_VMS_SEG_RELA_CNT),
+      ENTRY(IA_64_VMS_FIXUP_RELA_CNT),
+      ENTRY(IA_64_VMS_FIXUP_NEEDED),
+      ENTRY(IA_64_VMS_SYMVEC_CNT),
+      ENTRY(IA_64_VMS_XLATED),
+      ENTRY(IA_64_VMS_STACKSIZE),
+      ENTRY(IA_64_VMS_UNWINDSZ),
+      ENTRY(IA_64_VMS_UNWIND_CODSEG),
+      ENTRY(IA_64_VMS_UNWIND_INFOSEG),
+      ENTRY(IA_64_VMS_LINKTIME),
+      ENTRY(IA_64_VMS_SEG_NO),
+      ENTRY(IA_64_VMS_SYMVEC_OFFSET),
+      ENTRY(IA_64_VMS_SYMVEC_SEG),
+      ENTRY(IA_64_VMS_UNWIND_OFFSET),
+      ENTRY(IA_64_VMS_UNWIND_SEG),
+      ENTRY(IA_64_VMS_STRTAB_OFFSET),
+      ENTRY(IA_64_VMS_SYSVER_OFFSET),
+      ENTRY(IA_64_VMS_IMG_RELA_OFF),
+      ENTRY(IA_64_VMS_SEG_RELA_OFF),
+      ENTRY(IA_64_VMS_FIXUP_RELA_OFF),
+      ENTRY(IA_64_VMS_PLTGOT_OFFSET),
+      ENTRY(IA_64_VMS_PLTGOT_SEG),
+      ENTRY(IA_64_VMS_FPMODE),
   };
-  #undef ENTRY
+#undef ENTRY

   if (auto it = enums2str.find(tag); it != enums2str.end()) {
     return it->second;
@@ -352,4 +360,3 @@ const char* to_string(DynamicEntry::TAG tag) {
 }

 }
-}
diff --git a/deps/LIEF/src/ELF/DynamicEntryArray.cpp b/deps/LIEF/src/ELF/DynamicEntryArray.cpp
index 05a0f0fd542..a9d93763e08 100644
--- a/deps/LIEF/src/ELF/DynamicEntryArray.cpp
+++ b/deps/LIEF/src/ELF/DynamicEntryArray.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -20,13 +20,13 @@

 #include <algorithm>

-namespace LIEF {
-namespace ELF {
+
+namespace LIEF::ELF {

 DynamicEntryArray& DynamicEntryArray::remove(uint64_t function) {
-  array_.erase(std::remove_if(std::begin(array_), std::end(array_),
-                              [function] (uint64_t v) { return v == function; }),
-               std::end(array_));
+  array_.erase(std::remove_if(array_.begin(), array_.end(),
+                              [function](uint64_t v) { return v == function; }),
+               array_.end());
   return *this;
 }

@@ -36,25 +36,27 @@ DynamicEntryArray& DynamicEntryArray::insert(size_t pos, uint64_t function) {
   }

   if (pos > array_.size()) {
-    LIEF_ERR("pos: {:d} is out of range", pos);
+    LIEF_ERR("Position {:d} is out of range", pos);
     return *this;
   }

-  array_.insert(std::begin(array_) + pos, function);
+  array_.insert(array_.begin() + pos, function);
   return *this;
 }

 const uint64_t& DynamicEntryArray::operator[](size_t idx) const {
   static uint64_t GARBAGE = 0;
   if (idx >= array_.size()) {
-    LIEF_WARN("DynamicEntryArray[{}] is out-of-range", idx);
+    LIEF_WARN("DynamicEntryArray[{}] out of range", idx);
     return GARBAGE;
   }
   return array_[idx];
 }

 uint64_t& DynamicEntryArray::operator[](size_t idx) {
-  return const_cast<uint64_t&>(static_cast<const DynamicEntryArray*>(this)->operator[](idx));
+  return const_cast<uint64_t&>(
+      static_cast<const DynamicEntryArray*>(this)->operator[](idx)
+  );
 }

 void DynamicEntryArray::accept(Visitor& visitor) const {
@@ -64,12 +66,8 @@ void DynamicEntryArray::accept(Visitor& visitor) const {
 std::ostream& DynamicEntryArray::print(std::ostream& os) const {
   const array_t& array = this->array();
   DynamicEntry::print(os);
-  os << '[' << fmt::format("0x{:04x}", fmt::join(array, ", ")) << ']';
+  os << '[' << fmt::format("{:#06x}", fmt::join(array, ", ")) << ']';
   return os;
 }

 }
-}
-
-
-
diff --git a/deps/LIEF/src/ELF/DynamicEntryAuxiliary.cpp b/deps/LIEF/src/ELF/DynamicEntryAuxiliary.cpp
new file mode 100644
index 00000000000..6d139224d6a
--- /dev/null
+++ b/deps/LIEF/src/ELF/DynamicEntryAuxiliary.cpp
@@ -0,0 +1,34 @@
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
+ *
+ * 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.
+ */
+#include "LIEF/ELF/DynamicEntryAuxiliary.hpp"
+#include "LIEF/Visitor.hpp"
+
+#include <spdlog/fmt/fmt.h>
+
+
+namespace LIEF::ELF {
+
+void DynamicEntryAuxiliary::accept(Visitor& visitor) const {
+  visitor.visit(*this);
+}
+
+std::ostream& DynamicEntryAuxiliary::print(std::ostream& os) const {
+  DynamicEntry::print(os);
+  os << fmt::format("{:<10}", name());
+  return os;
+}
+
+}
diff --git a/deps/LIEF/src/ELF/DynamicEntryFilter.cpp b/deps/LIEF/src/ELF/DynamicEntryFilter.cpp
new file mode 100644
index 00000000000..cda39db14c7
--- /dev/null
+++ b/deps/LIEF/src/ELF/DynamicEntryFilter.cpp
@@ -0,0 +1,34 @@
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
+ *
+ * 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.
+ */
+#include "LIEF/ELF/DynamicEntryFilter.hpp"
+#include "LIEF/Visitor.hpp"
+
+#include <spdlog/fmt/fmt.h>
+
+
+namespace LIEF::ELF {
+
+void DynamicEntryFilter::accept(Visitor& visitor) const {
+  visitor.visit(*this);
+}
+
+std::ostream& DynamicEntryFilter::print(std::ostream& os) const {
+  DynamicEntry::print(os);
+  os << fmt::format("{:<10}", name());
+  return os;
+}
+
+}
diff --git a/deps/LIEF/src/ELF/DynamicEntryFlags.cpp b/deps/LIEF/src/ELF/DynamicEntryFlags.cpp
index c59b08094ce..9c63d22b2da 100644
--- a/deps/LIEF/src/ELF/DynamicEntryFlags.cpp
+++ b/deps/LIEF/src/ELF/DynamicEntryFlags.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -17,51 +17,35 @@
 #include "LIEF/ELF/DynamicEntryFlags.hpp"

 #include "frozen.hpp"
-#include "logging.hpp"
 #include "fmt_formatter.hpp"

 FMT_FORMATTER(LIEF::ELF::DynamicEntryFlags::FLAG, LIEF::ELF::to_string);

-namespace LIEF {
-namespace ELF {
+
+namespace LIEF::ELF {

 static constexpr auto DF_FLAGS = {
-  DynamicEntryFlags::FLAG::ORIGIN, DynamicEntryFlags::FLAG::SYMBOLIC,
-  DynamicEntryFlags::FLAG::TEXTREL, DynamicEntryFlags::FLAG::BIND_NOW,
-  DynamicEntryFlags::FLAG::STATIC_TLS,
+    DynamicEntryFlags::FLAG::ORIGIN,     DynamicEntryFlags::FLAG::SYMBOLIC,
+    DynamicEntryFlags::FLAG::TEXTREL,    DynamicEntryFlags::FLAG::BIND_NOW,
+    DynamicEntryFlags::FLAG::STATIC_TLS,
 };

 static constexpr auto DF_FLAGS_1 = {
-  DynamicEntryFlags::FLAG::NOW,
-  DynamicEntryFlags::FLAG::GLOBAL,
-  DynamicEntryFlags::FLAG::GROUP,
-  DynamicEntryFlags::FLAG::NODELETE,
-  DynamicEntryFlags::FLAG::LOADFLTR,
-  DynamicEntryFlags::FLAG::INITFIRST,
-  DynamicEntryFlags::FLAG::NOOPEN,
-  DynamicEntryFlags::FLAG::HANDLE_ORIGIN,
-  DynamicEntryFlags::FLAG::DIRECT,
-  DynamicEntryFlags::FLAG::TRANS,
-  DynamicEntryFlags::FLAG::INTERPOSE,
-  DynamicEntryFlags::FLAG::NODEFLIB,
-  DynamicEntryFlags::FLAG::NODUMP,
-  DynamicEntryFlags::FLAG::CONFALT,
-  DynamicEntryFlags::FLAG::ENDFILTEE,
-  DynamicEntryFlags::FLAG::DISPRELDNE,
-  DynamicEntryFlags::FLAG::DISPRELPND,
-  DynamicEntryFlags::FLAG::NODIRECT,
-  DynamicEntryFlags::FLAG::IGNMULDEF,
-  DynamicEntryFlags::FLAG::NOKSYMS,
-  DynamicEntryFlags::FLAG::NOHDR,
-  DynamicEntryFlags::FLAG::EDITED,
-  DynamicEntryFlags::FLAG::NORELOC,
-  DynamicEntryFlags::FLAG::SYMINTPOSE,
-  DynamicEntryFlags::FLAG::GLOBAUDIT,
-  DynamicEntryFlags::FLAG::SINGLETON,
-  DynamicEntryFlags::FLAG::PIE,
-  DynamicEntryFlags::FLAG::KMOD,
-  DynamicEntryFlags::FLAG::WEAKFILTER,
-  DynamicEntryFlags::FLAG::NOCOMMON,
+    DynamicEntryFlags::FLAG::NOW,        DynamicEntryFlags::FLAG::GLOBAL,
+    DynamicEntryFlags::FLAG::GROUP,      DynamicEntryFlags::FLAG::NODELETE,
+    DynamicEntryFlags::FLAG::LOADFLTR,   DynamicEntryFlags::FLAG::INITFIRST,
+    DynamicEntryFlags::FLAG::NOOPEN,     DynamicEntryFlags::FLAG::HANDLE_ORIGIN,
+    DynamicEntryFlags::FLAG::DIRECT,     DynamicEntryFlags::FLAG::TRANS,
+    DynamicEntryFlags::FLAG::INTERPOSE,  DynamicEntryFlags::FLAG::NODEFLIB,
+    DynamicEntryFlags::FLAG::NODUMP,     DynamicEntryFlags::FLAG::CONFALT,
+    DynamicEntryFlags::FLAG::ENDFILTEE,  DynamicEntryFlags::FLAG::DISPRELDNE,
+    DynamicEntryFlags::FLAG::DISPRELPND, DynamicEntryFlags::FLAG::NODIRECT,
+    DynamicEntryFlags::FLAG::IGNMULDEF,  DynamicEntryFlags::FLAG::NOKSYMS,
+    DynamicEntryFlags::FLAG::NOHDR,      DynamicEntryFlags::FLAG::EDITED,
+    DynamicEntryFlags::FLAG::NORELOC,    DynamicEntryFlags::FLAG::SYMINTPOSE,
+    DynamicEntryFlags::FLAG::GLOBAUDIT,  DynamicEntryFlags::FLAG::SINGLETON,
+    DynamicEntryFlags::FLAG::PIE,        DynamicEntryFlags::FLAG::KMOD,
+    DynamicEntryFlags::FLAG::WEAKFILTER, DynamicEntryFlags::FLAG::NOCOMMON,
 };

 bool DynamicEntryFlags::has(DynamicEntryFlags::FLAG f) const {
@@ -162,45 +146,19 @@ std::ostream& DynamicEntryFlags::print(std::ostream& os) const {
 }

 const char* to_string(DynamicEntryFlags::FLAG flag) {
-  #define ENTRY(X) std::pair(DynamicEntryFlags::FLAG::X, #X)
-  STRING_MAP enums2str {
-    ENTRY(ORIGIN),
-    ENTRY(SYMBOLIC),
-    ENTRY(TEXTREL),
-    ENTRY(BIND_NOW),
-    ENTRY(STATIC_TLS),
-    ENTRY(NOW),
-    ENTRY(GLOBAL),
-    ENTRY(GROUP),
-    ENTRY(NODELETE),
-    ENTRY(LOADFLTR),
-    ENTRY(INITFIRST),
-    ENTRY(NOOPEN),
-    ENTRY(HANDLE_ORIGIN),
-    ENTRY(DIRECT),
-    ENTRY(TRANS),
-    ENTRY(INTERPOSE),
-    ENTRY(NODEFLIB),
-    ENTRY(NODUMP),
-    ENTRY(CONFALT),
-    ENTRY(ENDFILTEE),
-    ENTRY(DISPRELDNE),
-    ENTRY(DISPRELPND),
-    ENTRY(NODIRECT),
-    ENTRY(IGNMULDEF),
-    ENTRY(NOKSYMS),
-    ENTRY(NOHDR),
-    ENTRY(EDITED),
-    ENTRY(NORELOC),
-    ENTRY(SYMINTPOSE),
-    ENTRY(GLOBAUDIT),
-    ENTRY(SINGLETON),
-    ENTRY(PIE),
-    ENTRY(KMOD),
-    ENTRY(WEAKFILTER),
-    ENTRY(NOCOMMON),
+#define ENTRY(X) std::pair(DynamicEntryFlags::FLAG::X, #X)
+  STRING_MAP enums2str{
+      ENTRY(ORIGIN),        ENTRY(SYMBOLIC),   ENTRY(TEXTREL),   ENTRY(BIND_NOW),
+      ENTRY(STATIC_TLS),    ENTRY(NOW),        ENTRY(GLOBAL),    ENTRY(GROUP),
+      ENTRY(NODELETE),      ENTRY(LOADFLTR),   ENTRY(INITFIRST), ENTRY(NOOPEN),
+      ENTRY(HANDLE_ORIGIN), ENTRY(DIRECT),     ENTRY(TRANS),     ENTRY(INTERPOSE),
+      ENTRY(NODEFLIB),      ENTRY(NODUMP),     ENTRY(CONFALT),   ENTRY(ENDFILTEE),
+      ENTRY(DISPRELDNE),    ENTRY(DISPRELPND), ENTRY(NODIRECT),  ENTRY(IGNMULDEF),
+      ENTRY(NOKSYMS),       ENTRY(NOHDR),      ENTRY(EDITED),    ENTRY(NORELOC),
+      ENTRY(SYMINTPOSE),    ENTRY(GLOBAUDIT),  ENTRY(SINGLETON), ENTRY(PIE),
+      ENTRY(KMOD),          ENTRY(WEAKFILTER), ENTRY(NOCOMMON),
   };
-  #undef ENTRY
+#undef ENTRY
   if (auto it = enums2str.find(flag); it != enums2str.end()) {
     return it->second;
   }
@@ -210,7 +168,3 @@ const char* to_string(DynamicEntryFlags::FLAG flag) {


 }
-}
-
-
-
diff --git a/deps/LIEF/src/ELF/DynamicEntryLibrary.cpp b/deps/LIEF/src/ELF/DynamicEntryLibrary.cpp
index 1c372a5b6df..216c008ce0a 100644
--- a/deps/LIEF/src/ELF/DynamicEntryLibrary.cpp
+++ b/deps/LIEF/src/ELF/DynamicEntryLibrary.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -18,8 +18,8 @@

 #include <spdlog/fmt/fmt.h>

-namespace LIEF {
-namespace ELF {
+
+namespace LIEF::ELF {

 void DynamicEntryLibrary::accept(Visitor& visitor) const {
   visitor.visit(*this);
@@ -32,7 +32,3 @@ std::ostream& DynamicEntryLibrary::print(std::ostream& os) const {
 }

 }
-}
-
-
-
diff --git a/deps/LIEF/src/ELF/DynamicEntryRpath.cpp b/deps/LIEF/src/ELF/DynamicEntryRpath.cpp
index 97f767e5b6f..ac770a1fe26 100644
--- a/deps/LIEF/src/ELF/DynamicEntryRpath.cpp
+++ b/deps/LIEF/src/ELF/DynamicEntryRpath.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -18,13 +18,12 @@
 #include "logging.hpp"

 #include <algorithm>
-#include <iomanip>
 #include <numeric>
 #include <sstream>
 #include <utility>

-namespace LIEF {
-namespace ELF {
+
+namespace LIEF::ELF {

 std::vector<std::string> DynamicEntryRpath::paths() const {
   std::stringstream ss;
@@ -38,10 +37,13 @@ std::vector<std::string> DynamicEntryRpath::paths() const {
 }

 void DynamicEntryRpath::paths(const std::vector<std::string>& paths) {
-  rpath_ = std::accumulate(std::begin(paths), std::end(paths), std::string(),
-      [] (const std::string& path, const std::string& new_entry) {
-        return path.empty() ? new_entry :  path + DynamicEntryRpath::delimiter + new_entry;
-      });
+  rpath_ =
+      std::accumulate(paths.begin(), paths.end(), std::string(),
+                      [](const std::string& path, const std::string& new_entry) {
+                        return path.empty() ?
+                                   new_entry :
+                                   path + DynamicEntryRpath::delimiter + new_entry;
+                      });
 }

 DynamicEntryRpath& DynamicEntryRpath::append(std::string path) {
@@ -53,11 +55,9 @@ DynamicEntryRpath& DynamicEntryRpath::append(std::string path) {

 DynamicEntryRpath& DynamicEntryRpath::remove(const std::string& path) {
   std::vector<std::string> paths = this->paths();
-  paths.erase(std::remove_if(std::begin(paths), std::end(paths),
-                             [&path] (const std::string& p) {
-                               return p == path;
-                             }),
-              std::end(paths));
+  paths.erase(std::remove_if(paths.begin(), paths.end(),
+                             [&path](const std::string& p) { return p == path; }),
+              paths.end());
   this->paths(paths);
   return *this;
 }
@@ -70,10 +70,10 @@ DynamicEntryRpath& DynamicEntryRpath::insert(size_t pos, const std::string& path
   }

   if (pos > paths.size()) {
-    LIEF_ERR("pos: {:d} is out of range", pos);
+    LIEF_ERR("Position {:d} is out of range", pos);
     return *this;
   }
-  paths.insert(std::begin(paths) + pos, path);
+  paths.insert(paths.begin() + pos, path);
   this->paths(paths);
   return *this;
 }
@@ -91,7 +91,3 @@ std::ostream& DynamicEntryRpath::print(std::ostream& os) const {
 }

 }
-}
-
-
-
diff --git a/deps/LIEF/src/ELF/DynamicEntryRunPath.cpp b/deps/LIEF/src/ELF/DynamicEntryRunPath.cpp
index fdd359f63bb..d810929f97a 100644
--- a/deps/LIEF/src/ELF/DynamicEntryRunPath.cpp
+++ b/deps/LIEF/src/ELF/DynamicEntryRunPath.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -21,8 +21,8 @@
 #include <numeric>
 #include <sstream>

-namespace LIEF {
-namespace ELF {
+
+namespace LIEF::ELF {

 std::vector<std::string> DynamicEntryRunPath::paths() const {
   std::stringstream ss;
@@ -38,12 +38,14 @@ std::vector<std::string> DynamicEntryRunPath::paths() const {
 }

 void DynamicEntryRunPath::paths(const std::vector<std::string>& paths) {
-  runpath_ = std::accumulate(
-      std::begin(paths), std::end(paths),
-      std::string(""),
-      [] (const std::string& path, const std::string& new_entry) {
-        return path.empty() ? new_entry : path + DynamicEntryRunPath::delimiter + new_entry;
-      });
+  runpath_ =
+      std::accumulate(paths.begin(), paths.end(), std::string(""),
+                      [](const std::string& path, const std::string& new_entry) {
+                        return path.empty() ?
+                                   new_entry :
+                                   path + DynamicEntryRunPath::delimiter +
+                                       new_entry;
+                      });
 }

 DynamicEntryRunPath& DynamicEntryRunPath::append(const std::string& path) {
@@ -55,14 +57,15 @@ DynamicEntryRunPath& DynamicEntryRunPath::append(const std::string& path) {

 DynamicEntryRunPath& DynamicEntryRunPath::remove(const std::string& path) {
   std::vector<std::string> paths = this->paths();
-  paths.erase(std::remove_if(std::begin(paths), std::end(paths),
-                             [&path] (const std::string& p) { return p == path; }),
-              std::end(paths));
+  paths.erase(std::remove_if(paths.begin(), paths.end(),
+                             [&path](const std::string& p) { return p == path; }),
+              paths.end());
   this->paths(paths);
   return *this;
 }

-DynamicEntryRunPath& DynamicEntryRunPath::insert(size_t pos, const std::string& path) {
+DynamicEntryRunPath& DynamicEntryRunPath::insert(size_t pos,
+                                                 const std::string& path) {
   std::vector<std::string> paths = this->paths();

   if (pos == paths.size()) {
@@ -70,9 +73,9 @@ DynamicEntryRunPath& DynamicEntryRunPath::insert(size_t pos, const std::string&
   }

   if (pos > paths.size()) {
-    LIEF_ERR("pos: {:d} is out of range", pos);
+    LIEF_ERR("Position {:d} is out of range", pos);
   }
-  paths.insert(std::begin(paths) + pos, path);
+  paths.insert(paths.begin() + pos, path);
   this->paths(paths);
   return *this;
 }
@@ -88,6 +91,3 @@ std::ostream& DynamicEntryRunPath::print(std::ostream& os) const {
   return os;
 }
 }
-}
-
-
diff --git a/deps/LIEF/src/ELF/DynamicSharedObject.cpp b/deps/LIEF/src/ELF/DynamicSharedObject.cpp
index 36506d23305..f1a4a286320 100644
--- a/deps/LIEF/src/ELF/DynamicSharedObject.cpp
+++ b/deps/LIEF/src/ELF/DynamicSharedObject.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -18,8 +18,8 @@

 #include <spdlog/fmt/fmt.h>

-namespace LIEF {
-namespace ELF {
+
+namespace LIEF::ELF {

 void DynamicSharedObject::accept(Visitor& visitor) const {
   visitor.visit(*this);
@@ -32,7 +32,3 @@ std::ostream& DynamicSharedObject::print(std::ostream& os) const {
 }

 }
-}
-
-
-
diff --git a/deps/LIEF/src/ELF/EnumToString.cpp b/deps/LIEF/src/ELF/EnumToString.cpp
index 384070c45fd..aba735af6d0 100644
--- a/deps/LIEF/src/ELF/EnumToString.cpp
+++ b/deps/LIEF/src/ELF/EnumToString.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -16,198 +16,107 @@
 #include "LIEF/ELF/EnumToString.hpp"
 #include "frozen.hpp"

-namespace LIEF {
-namespace ELF {
+
+namespace LIEF::ELF {

 const char* to_string(ARCH e) {
-  #define ENTRY(X) std::pair(ARCH::X, #X)
-  STRING_MAP enums2str {
-    ENTRY(NONE),
-    ENTRY(M32),
-    ENTRY(SPARC),
-    ENTRY(I386),
-    ENTRY(M68K),
-    ENTRY(M88K),
-    ENTRY(IAMCU),
-    ENTRY(I860),
-    ENTRY(MIPS),
-    ENTRY(S370),
-    ENTRY(MIPS_RS3_LE),
-    ENTRY(PARISC),
-    ENTRY(VPP500),
-    ENTRY(SPARC32PLUS),
-    ENTRY(I60),
-    ENTRY(PPC),
-    ENTRY(PPC64),
-    ENTRY(S390),
-    ENTRY(SPU),
-    ENTRY(V800),
-    ENTRY(FR20),
-    ENTRY(RH32),
-    ENTRY(RCE),
-    ENTRY(ARM),
-    ENTRY(ALPHA),
-    ENTRY(SH),
-    ENTRY(SPARCV9),
-    ENTRY(TRICORE),
-    ENTRY(ARC),
-    ENTRY(H8_300),
-    ENTRY(H8_300H),
-    ENTRY(H8S),
-    ENTRY(H8_500),
-    ENTRY(IA_64),
-    ENTRY(MIPS_X),
-    ENTRY(COLDFIRE),
-    ENTRY(M68HC12),
-    ENTRY(MMA),
-    ENTRY(PCP),
-    ENTRY(NCPU),
-    ENTRY(NDR1),
-    ENTRY(STARCORE),
-    ENTRY(ME16),
-    ENTRY(ST100),
-    ENTRY(TINYJ),
-    ENTRY(X86_64),
-    ENTRY(PDSP),
-    ENTRY(PDP10),
-    ENTRY(PDP11),
-    ENTRY(FX66),
-    ENTRY(ST9PLUS),
-    ENTRY(ST7),
-    ENTRY(M68HC16),
-    ENTRY(M68HC11),
-    ENTRY(M68HC08),
-    ENTRY(M68HC05),
-    ENTRY(SVX),
-    ENTRY(ST19),
-    ENTRY(VAX),
-    ENTRY(CRIS),
-    ENTRY(JAVELIN),
-    ENTRY(FIREPATH),
-    ENTRY(ZSP),
-    ENTRY(MMIX),
-    ENTRY(HUANY),
-    ENTRY(PRISM),
-    ENTRY(AVR),
-    ENTRY(FR30),
-    ENTRY(D10V),
-    ENTRY(D30V),
-    ENTRY(V850),
-    ENTRY(M32R),
-    ENTRY(MN10300),
-    ENTRY(MN10200),
-    ENTRY(PJ),
-    ENTRY(OPENRISC),
-    ENTRY(ARC_COMPACT),
-    ENTRY(XTENSA),
-    ENTRY(VIDEOCORE),
-    ENTRY(TMM_GPP),
-    ENTRY(NS32K),
-    ENTRY(TPC),
-    ENTRY(SNP1K),
-    ENTRY(ST200),
-    ENTRY(IP2K),
-    ENTRY(MAX),
-    ENTRY(CR),
-    ENTRY(F2MC16),
-    ENTRY(MSP430),
-    ENTRY(BLACKFIN),
-    ENTRY(SE_C33),
-    ENTRY(SEP),
-    ENTRY(ARCA),
-    ENTRY(UNICORE),
-    ENTRY(EXCESS),
-    ENTRY(DXP),
-    ENTRY(ALTERA_NIOS2),
-    ENTRY(CRX),
-    ENTRY(XGATE),
-    ENTRY(C166),
-    ENTRY(M16C),
-    ENTRY(DSPIC30F),
-    ENTRY(CE),
-    ENTRY(M32C),
-    ENTRY(TSK3000),
-    ENTRY(RS08),
-    ENTRY(SHARC),
-    ENTRY(ECOG2),
-    ENTRY(SCORE7),
-    ENTRY(DSP24),
-    ENTRY(VIDEOCORE3),
-    ENTRY(LATTICEMICO32),
-    ENTRY(SE_C17),
-    ENTRY(TI_C6000),
-    ENTRY(TI_C2000),
-    ENTRY(TI_C5500),
-    ENTRY(MMDSP_PLUS),
-    ENTRY(CYPRESS_M8C),
-    ENTRY(R32C),
-    ENTRY(TRIMEDIA),
-    ENTRY(HEXAGON),
-    ENTRY(M8051),
-    ENTRY(STXP7X),
-    ENTRY(NDS32),
-    ENTRY(ECOG1),
-    ENTRY(ECOG1X),
-    ENTRY(MAXQ30),
-    ENTRY(XIMO16),
-    ENTRY(MANIK),
-    ENTRY(CRAYNV2),
-    ENTRY(RX),
-    ENTRY(METAG),
-    ENTRY(MCST_ELBRUS),
-    ENTRY(ECOG16),
-    ENTRY(CR16),
-    ENTRY(ETPU),
-    ENTRY(SLE9X),
-    ENTRY(L10M),
-    ENTRY(K10M),
-    ENTRY(AARCH64),
-    ENTRY(AVR32),
-    ENTRY(STM8),
-    ENTRY(TILE64),
-    ENTRY(TILEPRO),
-    ENTRY(CUDA),
-    ENTRY(TILEGX),
-    ENTRY(CLOUDSHIELD),
-    ENTRY(COREA_1ST),
-    ENTRY(COREA_2ND),
-    ENTRY(ARC_COMPACT2),
-    ENTRY(OPEN8),
-    ENTRY(RL78),
-    ENTRY(VIDEOCORE5),
-    ENTRY(M78KOR),
-    ENTRY(M56800EX),
-    ENTRY(BA1),
-    ENTRY(BA2),
-    ENTRY(XCORE),
-    ENTRY(MCHP_PIC),
-    ENTRY(INTEL205),
-    ENTRY(INTEL206),
-    ENTRY(INTEL207),
-    ENTRY(INTEL208),
-    ENTRY(INTEL209),
-    ENTRY(KM32),
-    ENTRY(KMX32),
-    ENTRY(KMX16),
-    ENTRY(KMX8),
-    ENTRY(KVARC),
-    ENTRY(CDP),
-    ENTRY(COGE),
-    ENTRY(COOL),
-    ENTRY(NORC),
-    ENTRY(CSR_KALIMBA),
-    ENTRY(AMDGPU),
-    ENTRY(RISCV),
-    ENTRY(BPF),
-    ENTRY(CSKY),
-    ENTRY(LOONGARCH),
-    ENTRY(ALPHA_ALT),
+#define ENTRY(X) std::pair(ARCH::X, #X)
+  STRING_MAP enums2str{
+      ENTRY(NONE),         ENTRY(M32),
+      ENTRY(SPARC),        ENTRY(I386),
+      ENTRY(M68K),         ENTRY(M88K),
+      ENTRY(IAMCU),        ENTRY(I860),
+      ENTRY(MIPS),         ENTRY(S370),
+      ENTRY(MIPS_RS3_LE),  ENTRY(PARISC),
+      ENTRY(VPP500),       ENTRY(SPARC32PLUS),
+      ENTRY(I60),          ENTRY(PPC),
+      ENTRY(PPC64),        ENTRY(S390),
+      ENTRY(SPU),          ENTRY(V800),
+      ENTRY(FR20),         ENTRY(RH32),
+      ENTRY(RCE),          ENTRY(ARM),
+      ENTRY(ALPHA),        ENTRY(SH),
+      ENTRY(SPARCV9),      ENTRY(TRICORE),
+      ENTRY(ARC),          ENTRY(H8_300),
+      ENTRY(H8_300H),      ENTRY(H8S),
+      ENTRY(H8_500),       ENTRY(IA_64),
+      ENTRY(MIPS_X),       ENTRY(COLDFIRE),
+      ENTRY(M68HC12),      ENTRY(MMA),
+      ENTRY(PCP),          ENTRY(NCPU),
+      ENTRY(NDR1),         ENTRY(STARCORE),
+      ENTRY(ME16),         ENTRY(ST100),
+      ENTRY(TINYJ),        ENTRY(X86_64),
+      ENTRY(PDSP),         ENTRY(PDP10),
+      ENTRY(PDP11),        ENTRY(FX66),
+      ENTRY(ST9PLUS),      ENTRY(ST7),
+      ENTRY(M68HC16),      ENTRY(M68HC11),
+      ENTRY(M68HC08),      ENTRY(M68HC05),
+      ENTRY(SVX),          ENTRY(ST19),
+      ENTRY(VAX),          ENTRY(CRIS),
+      ENTRY(JAVELIN),      ENTRY(FIREPATH),
+      ENTRY(ZSP),          ENTRY(MMIX),
+      ENTRY(HUANY),        ENTRY(PRISM),
+      ENTRY(AVR),          ENTRY(FR30),
+      ENTRY(D10V),         ENTRY(D30V),
+      ENTRY(V850),         ENTRY(M32R),
+      ENTRY(MN10300),      ENTRY(MN10200),
+      ENTRY(PJ),           ENTRY(OPENRISC),
+      ENTRY(ARC_COMPACT),  ENTRY(XTENSA),
+      ENTRY(VIDEOCORE),    ENTRY(TMM_GPP),
+      ENTRY(NS32K),        ENTRY(TPC),
+      ENTRY(SNP1K),        ENTRY(ST200),
+      ENTRY(IP2K),         ENTRY(MAX),
+      ENTRY(CR),           ENTRY(F2MC16),
+      ENTRY(MSP430),       ENTRY(BLACKFIN),
+      ENTRY(SE_C33),       ENTRY(SEP),
+      ENTRY(ARCA),         ENTRY(UNICORE),
+      ENTRY(EXCESS),       ENTRY(DXP),
+      ENTRY(ALTERA_NIOS2), ENTRY(CRX),
+      ENTRY(XGATE),        ENTRY(C166),
+      ENTRY(M16C),         ENTRY(DSPIC30F),
+      ENTRY(CE),           ENTRY(M32C),
+      ENTRY(TSK3000),      ENTRY(RS08),
+      ENTRY(SHARC),        ENTRY(ECOG2),
+      ENTRY(SCORE7),       ENTRY(DSP24),
+      ENTRY(VIDEOCORE3),   ENTRY(LATTICEMICO32),
+      ENTRY(SE_C17),       ENTRY(TI_C6000),
+      ENTRY(TI_C2000),     ENTRY(TI_C5500),
+      ENTRY(MMDSP_PLUS),   ENTRY(CYPRESS_M8C),
+      ENTRY(R32C),         ENTRY(TRIMEDIA),
+      ENTRY(HEXAGON),      ENTRY(M8051),
+      ENTRY(STXP7X),       ENTRY(NDS32),
+      ENTRY(ECOG1),        ENTRY(ECOG1X),
+      ENTRY(MAXQ30),       ENTRY(XIMO16),
+      ENTRY(MANIK),        ENTRY(CRAYNV2),
+      ENTRY(RX),           ENTRY(METAG),
+      ENTRY(MCST_ELBRUS),  ENTRY(ECOG16),
+      ENTRY(CR16),         ENTRY(ETPU),
+      ENTRY(SLE9X),        ENTRY(L10M),
+      ENTRY(K10M),         ENTRY(AARCH64),
+      ENTRY(AVR32),        ENTRY(STM8),
+      ENTRY(TILE64),       ENTRY(TILEPRO),
+      ENTRY(CUDA),         ENTRY(TILEGX),
+      ENTRY(CLOUDSHIELD),  ENTRY(COREA_1ST),
+      ENTRY(COREA_2ND),    ENTRY(ARC_COMPACT2),
+      ENTRY(OPEN8),        ENTRY(RL78),
+      ENTRY(VIDEOCORE5),   ENTRY(M78KOR),
+      ENTRY(M56800EX),     ENTRY(BA1),
+      ENTRY(BA2),          ENTRY(XCORE),
+      ENTRY(MCHP_PIC),     ENTRY(INTEL205),
+      ENTRY(INTEL206),     ENTRY(INTEL207),
+      ENTRY(INTEL208),     ENTRY(INTEL209),
+      ENTRY(KM32),         ENTRY(KMX32),
+      ENTRY(KMX16),        ENTRY(KMX8),
+      ENTRY(KVARC),        ENTRY(CDP),
+      ENTRY(COGE),         ENTRY(COOL),
+      ENTRY(NORC),         ENTRY(CSR_KALIMBA),
+      ENTRY(AMDGPU),       ENTRY(RISCV),
+      ENTRY(BPF),          ENTRY(CSKY),
+      ENTRY(LOONGARCH),    ENTRY(ALPHA_ALT),
   };
-  #undef ENTRY
+#undef ENTRY

   const auto it = enums2str.find(e);
   return it == enums2str.end() ? "UNDEFINED" : it->second;
 }

-} // namespace ELF
-} // namespace LIEF
+} // namespace LIEF::ELF
diff --git a/deps/LIEF/src/ELF/ExeLayout.hpp b/deps/LIEF/src/ELF/ExeLayout.hpp
index f9a39e10e54..3fd142f8813 100644
--- a/deps/LIEF/src/ELF/ExeLayout.hpp
+++ b/deps/LIEF/src/ELF/ExeLayout.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2021 - 2025 R. Thomas
+/* Copyright 2021 - 2026 R. Thomas
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -24,6 +24,8 @@
 #include <LIEF/ELF/DynamicEntryRpath.hpp>
 #include <LIEF/ELF/DynamicEntryRunPath.hpp>
 #include <LIEF/ELF/DynamicSharedObject.hpp>
+#include <LIEF/ELF/DynamicEntryAuxiliary.hpp>
+#include <LIEF/ELF/DynamicEntryFilter.hpp>
 #include <LIEF/ELF/SymbolVersionDefinition.hpp>
 #include <LIEF/ELF/SymbolVersionAux.hpp>
 #include <LIEF/ELF/SymbolVersionRequirement.hpp>
@@ -46,28 +48,20 @@
 #include "logging.hpp"
 #include "Layout.hpp"

-namespace LIEF {
-namespace ELF {
+
+namespace LIEF::ELF {

 inline Relocation::TYPE relative_from_arch(ARCH arch) {
   using TYPE = Relocation::TYPE;
   switch (arch) {
-    case ARCH::AARCH64:
-      return TYPE::AARCH64_RELATIVE;
-    case ARCH::ARM:
-      return TYPE::ARM_RELATIVE;
-    case ARCH::X86_64:
-      return TYPE::X86_64_RELATIVE;
-    case ARCH::I386:
-      return TYPE::X86_RELATIVE;
-    case ARCH::PPC:
-      return TYPE::PPC_RELATIVE;
-    case ARCH::PPC64:
-      return TYPE::PPC64_RELATIVE;
-    case ARCH::HEXAGON:
-      return TYPE::HEX_RELATIVE;
-    default:
-      return TYPE::UNKNOWN;
+    case ARCH::AARCH64: return TYPE::AARCH64_RELATIVE;
+    case ARCH::ARM: return TYPE::ARM_RELATIVE;
+    case ARCH::X86_64: return TYPE::X86_64_RELATIVE;
+    case ARCH::I386: return TYPE::X86_RELATIVE;
+    case ARCH::PPC: return TYPE::PPC_RELATIVE;
+    case ARCH::PPC64: return TYPE::PPC64_RELATIVE;
+    case ARCH::HEXAGON: return TYPE::HEX_RELATIVE;
+    default: return TYPE::UNKNOWN;
   }
   return TYPE::UNKNOWN;
 }
@@ -79,7 +73,8 @@ class LIEF_LOCAL ExeLayout : public Layout {
   struct sym_verdef_info_t {
     using list_names_t = std::vector<std::string>;
     std::set<list_names_t> names_list;
-    std::unordered_map<const SymbolVersionDefinition*, const list_names_t*> def_to_names;
+    std::unordered_map<const SymbolVersionDefinition*, const list_names_t*>
+        def_to_names;
     std::unordered_map<const list_names_t*, size_t> names_offset;
   };
   using Layout::Layout;
@@ -93,7 +88,8 @@ class LIEF_LOCAL ExeLayout : public Layout {
   template<class ELF_T>
   size_t dynamic_size() {
     // The size of the .dynamic / PT_DYNAMIC area
-    // is the number of elements times the size of each element (Elf64_Dyn or Elf32_Dyn)
+    // is the number of elements times the size of each element (Elf64_Dyn or
+    // Elf32_Dyn)
     using Elf_Dyn = typename ELF_T::Elf_Dyn;
     return binary_->dynamic_entries_.size() * sizeof(Elf_Dyn);
   }
@@ -118,47 +114,62 @@ class LIEF_LOCAL ExeLayout : public Layout {
     std::vector<std::string> opt_list;

     std::transform(binary_->dynamic_symbols_.begin(),
-                   binary_->dynamic_symbols_.end(),
-                   std::back_inserter(opt_list),
-                   [] (const std::unique_ptr<Symbol>& sym) {
-                     return sym->name();
-                   });
+                   binary_->dynamic_symbols_.end(), std::back_inserter(opt_list),
+                   [](const std::unique_ptr<Symbol>& sym) { return sym->name(); });

     for (std::unique_ptr<DynamicEntry>& entry : binary_->dynamic_entries_) {
       switch (entry->tag()) {
-      case DynamicEntry::TAG::NEEDED:
+        case DynamicEntry::TAG::NEEDED:
         {
           const std::string& name = entry->as<DynamicEntryLibrary>()->name();
           opt_list.push_back(name);
           break;
         }

-      case DynamicEntry::TAG::SONAME:
+        case DynamicEntry::TAG::SONAME:
         {
           const std::string& name = entry->as<DynamicSharedObject>()->name();
           opt_list.push_back(name);
           break;
         }

-      case DynamicEntry::TAG::RPATH:
+        case DynamicEntry::TAG::AUXILIARY:
+        {
+          const std::string& name = entry->as<DynamicEntryAuxiliary>()->name();
+          opt_list.push_back(name);
+          break;
+        }
+
+        case DynamicEntry::TAG::FILTER:
+        {
+          const std::string& name = entry->as<DynamicEntryFilter>()->name();
+          opt_list.push_back(name);
+          break;
+        }
+
+        case DynamicEntry::TAG::RPATH:
         {
           const std::string& name = entry->as<DynamicEntryRpath>()->rpath();
           opt_list.push_back(name);
           break;
         }

-      case DynamicEntry::TAG::RUNPATH:
+        case DynamicEntry::TAG::RUNPATH:
         {
           const std::string& name = entry->as<DynamicEntryRunPath>()->runpath();
           opt_list.push_back(name);
           break;
         }

-      default: {}
+        default:
+        {
+        }
       }
     }
     // Symbol definition
-    for (const SymbolVersionDefinition& svd: binary_->symbols_version_definition()) {
+    for (const SymbolVersionDefinition& svd :
+         binary_->symbols_version_definition())
+    {
       sym_verdef_info_t::list_names_t aux_names;
       auto saux = svd.symbols_aux();
       aux_names.reserve(saux.size());
@@ -172,7 +183,9 @@ class LIEF_LOCAL ExeLayout : public Layout {
     }

     // Symbol version requirement
-    for (const SymbolVersionRequirement& svr: binary_->symbols_version_requirement()) {
+    for (const SymbolVersionRequirement& svr :
+         binary_->symbols_version_requirement())
+    {
       const std::string& libname = svr.name();
       opt_list.push_back(libname);
       for (const SymbolVersionAuxRequirement& svar : svr.auxiliary_symbols()) {
@@ -183,9 +196,10 @@ class LIEF_LOCAL ExeLayout : public Layout {

     size_t offset_counter = raw_dynstr.tellp();

-    std::vector<std::string> string_table_optimized = optimize(opt_list,
-                     [] (const std::string& name) { return name; },
-                     offset_counter, &offset_name_map_);
+    std::vector<std::string> string_table_optimized = optimize(
+        opt_list, [](const std::string& name) { return name; }, offset_counter,
+        &offset_name_map_
+    );

     for (const std::string& name : string_table_optimized) {
       raw_dynstr.write(name);
@@ -254,7 +268,7 @@ class LIEF_LOCAL ExeLayout : public Layout {
       }
       if (description.size() % sizeof(uint32_t) != 0) {
         uint32_t padded = 0;
-        auto *ptr = reinterpret_cast<uint8_t*>(&padded);
+        auto* ptr = reinterpret_cast<uint8_t*>(&padded);
         memcpy(ptr, desc_ptr + i, description.size() % sizeof(uint32_t));
         raw_notes.write<uint32_t>(padded);
       }
@@ -272,8 +286,8 @@ class LIEF_LOCAL ExeLayout : public Layout {
     }
     nchain_ = sysv_hash->nchain();
     if (nchain_ != binary_->dynamic_symbols_.size()) {
-      LIEF_DEBUG("nchain of .hash section changes from {:d} to {:d}",
-                 nchain_, binary_->dynamic_symbols_.size());
+      LIEF_DEBUG("nchain of .hash section changed from {:d} to {:d}", nchain_,
+                 binary_->dynamic_symbols_.size());
       nchain_ = binary_->dynamic_symbols_.size();
     }
     return (sysv_hash->nbucket() + nchain_ + /* header */ 2) * sizeof(uint32_t);
@@ -312,9 +326,9 @@ class LIEF_LOCAL ExeLayout : public Layout {
     }

     const uint32_t nb_buckets = gnu_hash->nb_buckets();
-    const uint32_t symndx     = first_exported_symbol_index;
-    const uint32_t maskwords  = gnu_hash->maskwords();
-    const uint32_t shift2     = gnu_hash->shift2();
+    const uint32_t symndx = first_exported_symbol_index;
+    const uint32_t maskwords = gnu_hash->maskwords();
+    const uint32_t shift2 = gnu_hash->shift2();

     const std::vector<uint64_t>& filters = gnu_hash->bloom_filters();
     if (!filters.empty() && filters[0] == 0) {
@@ -325,34 +339,34 @@ class LIEF_LOCAL ExeLayout : public Layout {
       LIEF_DEBUG("Shift2 is null");
     }

-    LIEF_DEBUG("Number of buckets       : 0x{:x}", nb_buckets);
-    LIEF_DEBUG("First symbol idx        : 0x{:x}", symndx);
-    LIEF_DEBUG("Number of bloom filters : 0x{:x}", maskwords);
-    LIEF_DEBUG("Shift                   : 0x{:x}", shift2);
+    LIEF_DEBUG("Number of buckets       : {:#x}", nb_buckets);
+    LIEF_DEBUG("First symbol idx        : {:#x}", symndx);
+    LIEF_DEBUG("Number of bloom filters : {:#x}", maskwords);
+    LIEF_DEBUG("Shift                   : {:#x}", shift2);

     // MANDATORY !
-    std::stable_sort(
-        std::begin(binary_->dynamic_symbols_) + symndx, std::end(binary_->dynamic_symbols_),
-        [&nb_buckets] (const std::unique_ptr<Symbol>& lhs, const std::unique_ptr<Symbol>& rhs) {
-          return (dl_new_hash(lhs->name().c_str()) % nb_buckets) <
-                 (dl_new_hash(rhs->name().c_str()) % nb_buckets);
-      });
+    std::stable_sort(binary_->dynamic_symbols_.begin() + symndx,
+                     binary_->dynamic_symbols_.end(),
+                     [&nb_buckets](const std::unique_ptr<Symbol>& lhs,
+                                   const std::unique_ptr<Symbol>& rhs) {
+                       return (dl_new_hash(lhs->name().c_str()) % nb_buckets) <
+                              (dl_new_hash(rhs->name().c_str()) % nb_buckets);
+                     });
     Binary::it_dynamic_symbols dynamic_symbols = binary_->dynamic_symbols();

     vector_iostream raw_gnuhash(should_swap());
-    raw_gnuhash.reserve(
-        4 * sizeof(uint32_t) +          // header
-        maskwords * sizeof(uint) +    // bloom filters
-        nb_buckets * sizeof(uint32_t) + // buckets
-        (dynamic_symbols.size() - symndx) * sizeof(uint32_t)); // hash values
+    raw_gnuhash.reserve(4 * sizeof(uint32_t) +          // header
+                        maskwords * sizeof(uint) +      // bloom filters
+                        nb_buckets * sizeof(uint32_t) + // buckets
+                        (dynamic_symbols.size() - symndx) *
+                            sizeof(uint32_t)); // hash values

     // Write header
     // =================================
-    raw_gnuhash
-      .write<uint32_t>(nb_buckets)
-      .write<uint32_t>(symndx)
-      .write<uint32_t>(maskwords)
-      .write<uint32_t>(shift2);
+    raw_gnuhash.write<uint32_t>(nb_buckets)
+        .write<uint32_t>(symndx)
+        .write<uint32_t>(maskwords)
+        .write<uint32_t>(shift2);

     // Compute Bloom filters
     // =================================
@@ -367,7 +381,7 @@ class LIEF_LOCAL ExeLayout : public Layout {
       bloom_filters[pos] |= V;
     }
     for (size_t idx = 0; idx < bloom_filters.size(); ++idx) {
-     LIEF_DEBUG("Bloom filter [{:d}]: 0x{:x}", idx, bloom_filters[idx]);
+      LIEF_DEBUG("Bloom filter [{:d}]: {:#x}", idx, bloom_filters[idx]);
     }

     raw_gnuhash.write(bloom_filters);
@@ -380,7 +394,7 @@ class LIEF_LOCAL ExeLayout : public Layout {
     std::vector<uint32_t> hash_values(dynamic_symbols.size() - symndx, 0);

     for (size_t i = symndx; i < dynamic_symbols.size(); ++i) {
-      LIEF_DEBUG("Dealing with symbol {}", to_string(dynamic_symbols[i]));
+      LIEF_DEBUG("Processing symbol {}", dynamic_symbols[i].name());
       const uint32_t hash = dl_new_hash(dynamic_symbols[i].name().c_str());
       int bucket = hash % nb_buckets;

@@ -406,9 +420,7 @@ class LIEF_LOCAL ExeLayout : public Layout {
       hash_values[hash_value_idx - 1] |= 1;
     }

-    raw_gnuhash
-      .write(buckets)
-      .write(hash_values);
+    raw_gnuhash.write(buckets).write(hash_values);
     raw_gnuhash.move(raw_gnu_hash_);
     return raw_gnu_hash_.size();
   }
@@ -416,32 +428,34 @@ class LIEF_LOCAL ExeLayout : public Layout {
   template<class ELF_T>
   size_t dynamic_relocations_size() {
     using Elf_Rela = typename ELF_T::Elf_Rela;
-    using Elf_Rel  = typename ELF_T::Elf_Rel;
-    const Binary::it_dynamic_relocations& dyn_relocs = binary_->dynamic_relocations();
+    using Elf_Rel = typename ELF_T::Elf_Rel;
+    const Binary::it_dynamic_relocations& dyn_relocs =
+        binary_->dynamic_relocations();
     const size_t nb_rel_a = std::count_if(dyn_relocs.begin(), dyn_relocs.end(),
-      [] (const Relocation& R) {
-        return R.is_rel() || R.is_rela();
-      }
-    );
+                                          [](const Relocation& R) {
+                                            return R.is_rel() || R.is_rela();
+                                          });

     const size_t computed_size = binary_->has(DynamicEntry::TAG::RELA) ?
-                                 nb_rel_a * sizeof(Elf_Rela) :
-                                 nb_rel_a * sizeof(Elf_Rel);
+                                     nb_rel_a * sizeof(Elf_Rela) :
+                                     nb_rel_a * sizeof(Elf_Rel);
     return computed_size;
   }

   template<class ELF_T>
   size_t pltgot_relocations_size() {
-    using Elf_Rela   = typename ELF_T::Elf_Rela;
-    using Elf_Rel    = typename ELF_T::Elf_Rel;
-    const Binary::it_pltgot_relocations& pltgot_relocs = binary_->pltgot_relocations();
+    using Elf_Rela = typename ELF_T::Elf_Rela;
+    using Elf_Rel = typename ELF_T::Elf_Rel;
+    const Binary::it_pltgot_relocations& pltgot_relocs =
+        binary_->pltgot_relocations();

     const DynamicEntry* dt_rela = binary_->get(DynamicEntry::TAG::PLTREL);

     const ARCH arch = binary_->header().machine_type();

-    const bool is_rela = dt_rela != nullptr &&
-                         DynamicEntry::from_value(dt_rela->value(), arch) == DynamicEntry::TAG::RELA;
+    const bool is_rela =
+        dt_rela != nullptr && DynamicEntry::from_value(dt_rela->value(), arch) ==
+                                  DynamicEntry::TAG::RELA;

     if (is_rela) {
       return pltgot_relocs.size() * sizeof(Elf_Rela);
@@ -456,11 +470,13 @@ class LIEF_LOCAL ExeLayout : public Layout {

   template<class ELF_T>
   size_t symbol_vdef_size() {
-    using Elf_Verdef  = typename ELF_T::Elf_Verdef;
+    using Elf_Verdef = typename ELF_T::Elf_Verdef;
     using Elf_Verdaux = typename ELF_T::Elf_Verdaux;
     CHECK_FATAL(!binary_->symbols_version_definition().empty() &&
-                verdef_info_.def_to_names.empty(), "Inconsistent state");
-    size_t computed_size = binary_->symbols_version_definition().size() * sizeof(Elf_Verdef);
+                    verdef_info_.def_to_names.empty(),
+                "Inconsistent state");
+    size_t computed_size =
+        binary_->symbols_version_definition().size() * sizeof(Elf_Verdef);

     for (const sym_verdef_info_t::list_names_t& names : verdef_info_.names_list) {
       computed_size += sizeof(Elf_Verdaux) * names.size();
@@ -473,8 +489,11 @@ class LIEF_LOCAL ExeLayout : public Layout {
     using Elf_Verneed = typename ELF_T::Elf_Verneed;
     using Elf_Vernaux = typename ELF_T::Elf_Vernaux;
     size_t computed_size = 0;
-    for (const SymbolVersionRequirement& svr: binary_->symbols_version_requirement()) {
-      computed_size += sizeof(Elf_Verneed) + svr.auxiliary_symbols().size() * sizeof(Elf_Vernaux);
+    for (const SymbolVersionRequirement& svr :
+         binary_->symbols_version_requirement())
+    {
+      computed_size += sizeof(Elf_Verneed) +
+                       svr.auxiliary_symbols().size() * sizeof(Elf_Vernaux);
     }
     return computed_size;
   }
@@ -488,10 +507,10 @@ class LIEF_LOCAL ExeLayout : public Layout {

   template<class ELF_T>
   size_t android_relocations_size(bool force = false) {
-    static constexpr uint64_t GROUPED_BY_INFO_FLAG         = 1 << 0;
+    static constexpr uint64_t GROUPED_BY_INFO_FLAG = 1 << 0;
     static constexpr uint64_t GROUPED_BY_OFFSET_DELTA_FLAG = 1 << 1;
     /* static constexpr uint64_t GROUPED_BY_ADDEND_FLAG    = 1 << 2;  */
-    static constexpr uint64_t GROUP_HAS_ADDEND_FLAG        = 1 << 3;
+    static constexpr uint64_t GROUP_HAS_ADDEND_FLAG = 1 << 3;

     using Elf_Xword = typename ELF_T::Elf_Xword;

@@ -500,11 +519,13 @@ class LIEF_LOCAL ExeLayout : public Layout {
     // AndroidPackedRelocationSection:updateAllocSize
     constexpr size_t wordsize = sizeof(typename ELF_T::Elf_Addr);
     const bool is_rela = binary_->has(DynamicEntry::TAG::ANDROID_RELA);
-    const Relocation::TYPE relative_reloc = relative_from_arch(binary_->header().machine_type());
+    const Relocation::TYPE relative_reloc =
+        relative_from_arch(binary_->header().machine_type());
     const uint64_t raw_relative_reloc = Relocation::to_value(relative_reloc);

     const Header::CLASS elf_class = std::is_same_v<ELF_T, details::ELF32> ?
-                                    Header::CLASS::ELF32 : Header::CLASS::ELF64;
+                                        Header::CLASS::ELF32 :
+                                        Header::CLASS::ELF64;

     if (force) {
       raw_android_rela_.clear();
@@ -529,10 +550,9 @@ class LIEF_LOCAL ExeLayout : public Layout {
     }

     std::sort(relative_rels.begin(), relative_rels.end(),
-      [] (const Relocation* lhs, const Relocation* rhs) {
-        return lhs->address() < rhs->address();
-      }
-    );
+              [](const Relocation* lhs, const Relocation* rhs) {
+                return lhs->address() < rhs->address();
+              });

     std::vector<const Relocation*> ungrouped_relative;
     std::vector<std::vector<const Relocation*>> relative_groups;
@@ -543,8 +563,8 @@ class LIEF_LOCAL ExeLayout : public Layout {
       } while (i != e && (*(i - 1))->address() + wordsize == (*i)->address());

       if (group.size() < 8) {
-        ungrouped_relative.insert(ungrouped_relative.end(),
-                                  group.begin(), group.end());
+        ungrouped_relative.insert(ungrouped_relative.end(), group.begin(),
+                                  group.end());
       } else {
         relative_groups.emplace_back(std::move(group));
       }
@@ -552,22 +572,20 @@ class LIEF_LOCAL ExeLayout : public Layout {


     std::sort(non_relative_rels.begin(), non_relative_rels.end(),
-      [elf_class] (const Relocation* lhs, const Relocation* rhs) {
-        if (lhs->r_info(elf_class) != rhs->r_info(elf_class)) {
-          return lhs->r_info(elf_class) < rhs->r_info(elf_class);
-        }
-        if (lhs->addend() != rhs->addend()) {
-          return lhs->addend() < rhs->addend();
-        }
-        return lhs->address() < rhs->address();
-      }
-    );
+              [elf_class](const Relocation* lhs, const Relocation* rhs) {
+                if (lhs->r_info(elf_class) != rhs->r_info(elf_class)) {
+                  return lhs->r_info(elf_class) < rhs->r_info(elf_class);
+                }
+                if (lhs->addend() != rhs->addend()) {
+                  return lhs->addend() < rhs->addend();
+                }
+                return lhs->address() < rhs->address();
+              });

     std::vector<const Relocation*> ungrouped_non_relative;
     std::vector<std::vector<const Relocation*>> non_relative_group;

-    for (auto i = non_relative_rels.begin(),
-              e = non_relative_rels.end(); i != e;)
+    for (auto i = non_relative_rels.begin(), e = non_relative_rels.end(); i != e;)
     {
       auto j = i + 1;
       while (j != e && (*i)->r_info(elf_class) == (*j)->r_info(elf_class) &&
@@ -585,20 +603,16 @@ class LIEF_LOCAL ExeLayout : public Layout {
     }

     std::sort(ungrouped_non_relative.begin(), ungrouped_non_relative.end(),
-      [] (const Relocation* lhs, const Relocation* rhs) {
-        return lhs->address() < rhs->address();
-      }
-    );
+              [](const Relocation* lhs, const Relocation* rhs) {
+                return lhs->address() < rhs->address();
+              });

     const unsigned has_addend_with_rela = is_rela ? GROUP_HAS_ADDEND_FLAG : 0;
     uint64_t offset = 0;
     uint64_t addend = 0;

     vector_iostream ios(should_swap());
-    ios.write('A')
-       .write('P')
-       .write('S')
-       .write('2');
+    ios.write('A').write('P').write('S').write('2');

     ios.write_sleb128(android_relocs.size());
     ios.write_sleb128(0);
@@ -620,7 +634,8 @@ class LIEF_LOCAL ExeLayout : public Layout {
       ios.write_sleb128(wordsize);
       ios.write_sleb128(raw_relative_reloc);
       if (is_rela) {
-        auto it = g.begin(); ++it;
+        auto it = g.begin();
+        ++it;
         for (; it != g.end(); ++it) {
           ios.write_sleb128((*it)->addend() - addend);
           addend = (*it)->addend();
@@ -643,7 +658,7 @@ class LIEF_LOCAL ExeLayout : public Layout {
       }
     }

-    for (const std::vector<const Relocation*>& g: non_relative_group) {
+    for (const std::vector<const Relocation*>& g : non_relative_group) {
       ios.write_sleb128(g.size());
       ios.write_sleb128(GROUPED_BY_INFO_FLAG);
       ios.write_sleb128(static_cast<Elf_Xword>(g[0]->r_info(elf_class)));
@@ -856,9 +871,10 @@ class LIEF_LOCAL ExeLayout : public Layout {
       interp_segment.add(Segment::FLAGS::R);
       interp_segment.content(std::vector<uint8_t>(interp_size_));
       if (Segment* interp = binary_->add(interp_segment)) {
-        LIEF_DEBUG("Interp Segment: 0x{:x}:0x{:x}", interp->virtual_address(), interp->virtual_size());
+        LIEF_DEBUG("Interp Segment: {:#x}:{:#x}", interp->virtual_address(),
+                   interp->virtual_size());
       } else {
-        LIEF_ERR("Can't add a new PT_INTERP");
+        LIEF_ERR("Failed to add PT_INTERP segment");
       }
     }

@@ -877,9 +893,9 @@ class LIEF_LOCAL ExeLayout : public Layout {
      *    .relr.dyn
      * Perm: READ ONLY
      */
-    uint64_t read_segment = interp_size_ +  sysv_size_ + dynsym_size_ +
-                            sver_size_ + sverd_size_ + sverr_size_ +
-                            dynamic_reloc_size_ + pltgot_reloc_size_;
+    uint64_t read_segment = interp_size_ + sysv_size_ + dynsym_size_ + sver_size_ +
+                            sverd_size_ + sverr_size_ + dynamic_reloc_size_ +
+                            pltgot_reloc_size_;
     if (relocate_relr_) {
       read_segment += raw_relr_.size();
     }
@@ -908,12 +924,12 @@ class LIEF_LOCAL ExeLayout : public Layout {
       rsegment.add(Segment::FLAGS::R);
       rsegment.content(std::vector<uint8_t>(read_segment));
       new_rsegment = binary_->add(rsegment);
-      if (new_rsegment != nullptr) {
-        LIEF_DEBUG("R-Segment: 0x{:x}:0x{:x}", new_rsegment->virtual_address(), new_rsegment->virtual_size());
-      } else {
-        LIEF_ERR("Can't add a new R-Segment");
+      if (new_rsegment == nullptr) {
+        LIEF_ERR("Failed to add R-segment");
         return make_error_code(lief_errors::build_error);
       }
+      LIEF_DEBUG("R-Segment: {:#06x}:{:#06x}", new_rsegment->virtual_address(),
+                 new_rsegment->virtual_size());
     }

     /* Segment 2
@@ -927,7 +943,8 @@ class LIEF_LOCAL ExeLayout : public Layout {
      *  .got.plt
      * Perm: READ | WRITE
      */
-    const uint64_t read_write_segment = init_size_ + preinit_size_ + fini_size_ + dynamic_size_ ;
+    const uint64_t read_write_segment =
+        init_size_ + preinit_size_ + fini_size_ + dynamic_size_;

     Segment* new_rwsegment = nullptr;
     Segment rwsegment;
@@ -937,45 +954,51 @@ class LIEF_LOCAL ExeLayout : public Layout {
       rwsegment.content(std::vector<uint8_t>(read_write_segment));
       new_rwsegment = binary_->add(rwsegment);
       if (new_rwsegment != nullptr) {
-        LIEF_DEBUG("RW-Segment: 0x{:x}:0x{:x}", new_rwsegment->virtual_address(), new_rwsegment->virtual_size());
+        LIEF_DEBUG("RW-Segment: {:#x}:{:#x}", new_rwsegment->virtual_address(),
+                   new_rwsegment->virtual_size());
       } else {
-        LIEF_ERR("Can't add a new RW-Segment");
+        LIEF_ERR("Failed to add RW-segment");
         return make_error_code(lief_errors::build_error);
       }
     }

     if (relocate_shstrtab_) {
-      LIEF_DEBUG("[-] Relocate .shstrtab");
+      LIEF_DEBUG("Relocating .shstrtab");

       // Remove the current .shstrtab section
       Header& hdr = binary_->header();
       if (hdr.section_name_table_idx() >= binary_->sections_.size()) {
-        LIEF_ERR("Sections' names table index is out of range");
+        LIEF_ERR("Section names table index out of range");
         return make_error_code(lief_errors::file_format_error);
       }
-      std::unique_ptr<Section>& string_names_section = binary_->sections_[hdr.section_name_table_idx()];
+      std::unique_ptr<Section>& string_names_section =
+          binary_->sections_[hdr.section_name_table_idx()];
       std::string sec_name = binary_->shstrtab_name();
       binary_->remove(*string_names_section, /* clear */ true);
       Section sec_str_section(sec_name, Section::TYPE::STRTAB);
       sec_str_section.content(std::vector<uint8_t>(raw_shstrtab_.size()));
-      binary_->add(sec_str_section, /*loaded=*/false,
-                   /*pos=*/Binary::SEC_INSERT_POS::POST_SECTION);
-
-      // Default behavior: push_back => index = binary_->sections_.size() - 1
-      hdr.section_name_table_idx(binary_->sections_.size() - 1);
+      Section* sec = binary_->add(sec_str_section, /*loaded=*/false,
+                                  /*pos=*/Binary::SEC_INSERT_POS::POST_SECTION);
+      if (sec != nullptr) {
+        if (auto idx = binary_->get_section_idx(*sec)) {
+          hdr.section_name_table_idx(*idx);
+        }
+      }
     }

     for (std::unique_ptr<Relocation>& reloc : binary_->relocations_) {
       relocations_addresses_[reloc->address()] = reloc.get();
     }

-    [[maybe_unused]] uint64_t va_r_base  = new_rsegment  != nullptr ? new_rsegment->virtual_address() : 0;
-    [[maybe_unused]] uint64_t va_rw_base = new_rwsegment != nullptr ? new_rwsegment->virtual_address() : 0;
+    [[maybe_unused]] uint64_t va_r_base =
+        new_rsegment != nullptr ? new_rsegment->virtual_address() : 0;
+    [[maybe_unused]] uint64_t va_rw_base =
+        new_rwsegment != nullptr ? new_rwsegment->virtual_address() : 0;

     if (interp_size_ > 0) {
       Segment* pt_interp = binary_->get(Segment::TYPE::INTERP);
       if (pt_interp == nullptr) {
-        LIEF_ERR("Can't find the PT_INTERP segment.");
+        LIEF_ERR("PT_INTERP segment not found");
         return make_error_code(lief_errors::file_format_error);
       }

@@ -1004,13 +1027,12 @@ class LIEF_LOCAL ExeLayout : public Layout {
       }

       va_r_base += interp_size_;
-
     }

     if (relocate_notes_) {
       Segment* note_segment = binary_->get(Segment::TYPE::NOTE);
       if (note_segment == nullptr) {
-        LIEF_ERR("Can't find the PT_NOTE segment");
+        LIEF_ERR("PT_NOTE segment not found");
         return make_error_code(lief_errors::file_format_error);
       }
       note_segment->virtual_address(va_r_base);
@@ -1034,7 +1056,7 @@ class LIEF_LOCAL ExeLayout : public Layout {
       // Update relocations associated with .init_array etc
       Segment* dynamic_segment = binary_->get(Segment::TYPE::DYNAMIC);
       if (dynamic_segment == nullptr) {
-        LIEF_ERR("Can't find the dynamic section/segment");
+        LIEF_ERR("Dynamic section/segment not found");
         return make_error_code(lief_errors::file_format_error);
       }

@@ -1066,7 +1088,7 @@ class LIEF_LOCAL ExeLayout : public Layout {
       DynamicEntry* dt_symtab = binary_->get(DynamicEntry::TAG::SYMTAB);

       if (dt_symtab == nullptr) {
-        LIEF_ERR("Can't find DT_SYMTAB");
+        LIEF_ERR("DT_SYMTAB not found");
         return make_error_code(lief_errors::file_format_error);
       }

@@ -1077,7 +1099,9 @@ class LIEF_LOCAL ExeLayout : public Layout {
         return make_error_code(lief_errors::build_error);
       }

-      if (Section* section  = binary_->section_from_virtual_address(dt_symtab->value())) {
+      if (Section* section =
+              binary_->section_from_virtual_address(dt_symtab->value()))
+      {
         section->virtual_address(va_r_base);
         section->size(dynsym_size_);
         section->offset(offset_r_base);
@@ -1091,11 +1115,11 @@ class LIEF_LOCAL ExeLayout : public Layout {

     if (relocate_dynstr_) {
       // Update .dynstr section, DT_SYMTAB, DT_STRSZ
-      DynamicEntry* dt_strtab  = binary_->get(DynamicEntry::TAG::STRTAB);
+      DynamicEntry* dt_strtab = binary_->get(DynamicEntry::TAG::STRTAB);
       DynamicEntry* dt_strsize = binary_->get(DynamicEntry::TAG::STRSZ);

       if (dt_strtab == nullptr || dt_strsize == nullptr) {
-        LIEF_ERR("Can't find DT_STRTAB/DT_STRSZ");
+        LIEF_ERR("DT_STRTAB/DT_STRSZ not found");
         return make_error_code(lief_errors::file_format_error);
       }

@@ -1106,7 +1130,9 @@ class LIEF_LOCAL ExeLayout : public Layout {
         return make_error_code(lief_errors::build_error);
       }

-      if (Section* section = binary_->section_from_virtual_address(dt_strtab->value())) {
+      if (Section* section =
+              binary_->section_from_virtual_address(dt_strtab->value()))
+      {
         section->virtual_address(va_r_base);
         section->size(raw_dynstr_.size());
         section->offset(offset_r_base);
@@ -1123,7 +1149,7 @@ class LIEF_LOCAL ExeLayout : public Layout {
     if (sver_size_ > 0) {
       DynamicEntry* dt_versym = binary_->get(DynamicEntry::TAG::VERSYM);
       if (dt_versym == nullptr) {
-        LIEF_ERR("Can't find DT_VERSYM");
+        LIEF_ERR("DT_VERSYM not found");
         return make_error_code(lief_errors::file_format_error);
       }

@@ -1134,7 +1160,9 @@ class LIEF_LOCAL ExeLayout : public Layout {
         return make_error_code(lief_errors::build_error);
       }

-      if (Section* section = binary_->section_from_virtual_address(dt_versym->value())) {
+      if (Section* section =
+              binary_->section_from_virtual_address(dt_versym->value()))
+      {
         section->virtual_address(va_r_base);
         section->size(sver_size_);
         section->offset(offset_r_base);
@@ -1150,7 +1178,7 @@ class LIEF_LOCAL ExeLayout : public Layout {
       DynamicEntry* dt_verdef = binary_->get(DynamicEntry::TAG::VERDEF);

       if (dt_verdef == nullptr) {
-        LIEF_ERR("Can't find DT_VERDEF");
+        LIEF_ERR("DT_VERDEF not found");
         return make_error_code(lief_errors::file_format_error);
       }

@@ -1161,7 +1189,9 @@ class LIEF_LOCAL ExeLayout : public Layout {
         return make_error_code(lief_errors::build_error);
       }

-      if (Section* section = binary_->section_from_virtual_address(dt_verdef->value())) {
+      if (Section* section =
+              binary_->section_from_virtual_address(dt_verdef->value()))
+      {
         section->virtual_address(va_r_base);
         section->size(sverd_size_);
         section->offset(offset_r_base);
@@ -1177,7 +1207,7 @@ class LIEF_LOCAL ExeLayout : public Layout {
       DynamicEntry* dt_verreq = binary_->get(DynamicEntry::TAG::VERNEED);

       if (dt_verreq == nullptr) {
-        LIEF_ERR("Can't find DT_VERNEED");
+        LIEF_ERR("DT_VERNEED not found");
         return make_error_code(lief_errors::file_format_error);
       }

@@ -1188,7 +1218,9 @@ class LIEF_LOCAL ExeLayout : public Layout {
         return make_error_code(lief_errors::build_error);
       }

-      if (Section* section = binary_->section_from_virtual_address(dt_verreq->value())) {
+      if (Section* section =
+              binary_->section_from_virtual_address(dt_verreq->value()))
+      {
         section->virtual_address(va_r_base);
         section->size(sverr_size_);
         section->offset(offset_r_base);
@@ -1209,12 +1241,14 @@ class LIEF_LOCAL ExeLayout : public Layout {
       DynamicEntry* dt_rela = binary_->get(DynamicEntry::TAG::RELA);

       const bool is_rela = dt_rela != nullptr;
-      DynamicEntry* dt_reloc   = is_rela ? dt_rela : binary_->get(DynamicEntry::TAG::REL);
-      DynamicEntry* dt_relocsz = is_rela ? binary_->get(DynamicEntry::TAG::RELASZ) :
-                                           binary_->get(DynamicEntry::TAG::RELSZ);
+      DynamicEntry* dt_reloc =
+          is_rela ? dt_rela : binary_->get(DynamicEntry::TAG::REL);
+      DynamicEntry* dt_relocsz = is_rela ?
+                                     binary_->get(DynamicEntry::TAG::RELASZ) :
+                                     binary_->get(DynamicEntry::TAG::RELSZ);

       if (dt_reloc == nullptr || dt_relocsz == nullptr) {
-        LIEF_ERR("Can't find DT_REL(A) / DT_REL(A)SZ");
+        LIEF_ERR("DT_REL(A)/DT_REL(A)SZ not found");
         return make_error_code(lief_errors::file_format_error);
       }

@@ -1226,7 +1260,9 @@ class LIEF_LOCAL ExeLayout : public Layout {
         return make_error_code(lief_errors::build_error);
       }

-      if (Section* section = binary_->section_from_virtual_address(dt_reloc->value())) {
+      if (Section* section =
+              binary_->section_from_virtual_address(dt_reloc->value()))
+      {
         section->virtual_address(va_r_base);
         section->size(dynamic_reloc_size_);
         section->offset(offset_r_base);
@@ -1247,7 +1283,7 @@ class LIEF_LOCAL ExeLayout : public Layout {
       DynamicEntry* dt_relocsz = binary_->get(DynamicEntry::TAG::PLTRELSZ);

       if (dt_reloc == nullptr || dt_relocsz == nullptr) {
-        LIEF_ERR("Can't find DT_JMPREL, DT_PLTRELSZ");
+        LIEF_ERR("DT_JMPREL/DT_PLTRELSZ not found");
         return make_error_code(lief_errors::file_format_error);
       }

@@ -1258,7 +1294,9 @@ class LIEF_LOCAL ExeLayout : public Layout {
         return make_error_code(lief_errors::build_error);
       }

-      if (Section* section = binary_->section_from_virtual_address(dt_reloc->value())) {
+      if (Section* section =
+              binary_->section_from_virtual_address(dt_reloc->value()))
+      {
         section->virtual_address(va_r_base);
         section->size(pltgot_reloc_size_);
         section->offset(offset_r_base);
@@ -1275,7 +1313,10 @@ class LIEF_LOCAL ExeLayout : public Layout {
     if (relocate_relr_) {
       DynamicEntry* dt_relr = binary_->get(DynamicEntry::TAG::RELR);
       if (dt_relr == nullptr) {
-        LIEF_ERR("Can't find DT_RELR");
+        dt_relr = binary_->get(DynamicEntry::TAG::ANDROID_RELR);
+      }
+      if (dt_relr == nullptr) {
+        LIEF_ERR("DT_RELR/DT_ANDROID_RELR not found");
         return make_error_code(lief_errors::file_format_error);
       }

@@ -1286,7 +1327,9 @@ class LIEF_LOCAL ExeLayout : public Layout {
         return make_error_code(lief_errors::build_error);
       }

-      if (Section* section = binary_->section_from_virtual_address(dt_relr->value())) {
+      if (Section* section =
+              binary_->section_from_virtual_address(dt_relr->value()))
+      {
         section->virtual_address(va_r_base);
         section->size(raw_relr_.size());
         section->offset(offset_r_base);
@@ -1304,7 +1347,7 @@ class LIEF_LOCAL ExeLayout : public Layout {
       }

       if (dt_rel == nullptr) {
-        LIEF_ERR("Can't find DT_ANDROID_REL[A]");
+        LIEF_ERR("DT_ANDROID_REL[A] not found");
         return make_error_code(lief_errors::file_format_error);
       }

@@ -1315,7 +1358,9 @@ class LIEF_LOCAL ExeLayout : public Layout {
         return make_error_code(lief_errors::build_error);
       }

-      if (Section* section = binary_->section_from_virtual_address(dt_rel->value())) {
+      if (Section* section =
+              binary_->section_from_virtual_address(dt_rel->value()))
+      {
         section->virtual_address(va_r_base);
         section->size(raw_android_rela_.size());
         section->offset(offset_r_base);
@@ -1331,7 +1376,7 @@ class LIEF_LOCAL ExeLayout : public Layout {
       DynamicEntry* dt_gnu_hash = binary_->get(DynamicEntry::TAG::GNU_HASH);

       if (dt_gnu_hash == nullptr) {
-        LIEF_ERR("Can't find DT_GNU_HASH");
+        LIEF_ERR("DT_GNU_HASH not found");
         return make_error_code(lief_errors::file_format_error);
       }

@@ -1343,7 +1388,9 @@ class LIEF_LOCAL ExeLayout : public Layout {
         return make_error_code(lief_errors::build_error);
       }

-      if (Section* section = binary_->section_from_virtual_address(dt_gnu_hash->value())) {
+      if (Section* section =
+              binary_->section_from_virtual_address(dt_gnu_hash->value()))
+      {
         section->virtual_address(va_r_base);
         section->size(raw_gnu_hash_.size());
         section->offset(offset_r_base);
@@ -1359,7 +1406,7 @@ class LIEF_LOCAL ExeLayout : public Layout {
       DynamicEntry* dt_hash = binary_->get(DynamicEntry::TAG::HASH);

       if (dt_hash == nullptr) {
-        LIEF_ERR("Can't find DT_HASH");
+        LIEF_ERR("DT_HASH not found");
         return make_error_code(lief_errors::file_format_error);
       }

@@ -1371,7 +1418,9 @@ class LIEF_LOCAL ExeLayout : public Layout {
         return make_error_code(lief_errors::build_error);
       }

-      if (Section* section = binary_->section_from_virtual_address(dt_hash->value())) {
+      if (Section* section =
+              binary_->section_from_virtual_address(dt_hash->value()))
+      {
         section->virtual_address(va_r_base);
         section->size(sysv_size_);
         section->offset(offset_r_base);
@@ -1385,35 +1434,39 @@ class LIEF_LOCAL ExeLayout : public Layout {

     // RW-Segment
     // ====================================
-    if (init_size_ > 0) {  // .init_array
+    if (init_size_ > 0) { // .init_array
       DynamicEntry* raw_dt_init = binary_->get(DynamicEntry::TAG::INIT_ARRAY);
       if (raw_dt_init == nullptr || !DynamicEntryArray::classof(raw_dt_init)) {
         LIEF_ERR("DT_INIT_ARRAY not found");
         return make_error_code(lief_errors::file_format_error);
       }
       auto* dt_init_array = raw_dt_init->as<DynamicEntryArray>();
-      DynamicEntry* dt_init_arraysz = binary_->get(DynamicEntry::TAG::INIT_ARRAYSZ);
+      DynamicEntry* dt_init_arraysz =
+          binary_->get(DynamicEntry::TAG::INIT_ARRAYSZ);

       if (dt_init_arraysz == nullptr) {
-        LIEF_ERR("Can't find DT_INIT_ARRAYSZ");
+        LIEF_ERR("DT_INIT_ARRAYSZ not found");
         return make_error_code(lief_errors::file_format_error);
       }


       // Update relocation range
       if (binary_->header().file_type() == Header::FILE_TYPE::DYN) {
-        LIEF_WARN("Relocating .init_array might not work on Linux.");
+        LIEF_WARN("Relocating .init_array may not work on Linux");
         const std::vector<uint64_t>& array = dt_init_array->array();
         const size_t sizeof_p = binary_->type() == Header::CLASS::ELF32 ?
-                                sizeof(uint32_t) : sizeof(uint64_t);
+                                    sizeof(uint32_t) :
+                                    sizeof(uint64_t);

         // Since the values of the .init_array have moved elsewhere,
         // we need to change the relocation associated with the former .init_array
         const uint64_t array_base_address = dt_init_array->value();
         for (size_t i = 0; i < array.size(); ++i) {
-          auto it_reloc = relocations_addresses_.find(array_base_address + i * sizeof_p);
-          if (it_reloc == std::end(relocations_addresses_)) {
-            LIEF_ERR("Missing relocation for .init_array[{:d}]: 0x{:x}", i, array[i]);
+          auto it_reloc =
+              relocations_addresses_.find(array_base_address + i * sizeof_p);
+          if (it_reloc == relocations_addresses_.end()) {
+            LIEF_ERR("Missing relocation for .init_array[{:d}]: {:#x}", i,
+                     array[i]);
             continue;
           }
           Relocation* reloc = it_reloc->second;
@@ -1442,30 +1495,36 @@ class LIEF_LOCAL ExeLayout : public Layout {
     }

     if (preinit_size_ > 0) { // .preinit_array
-      DynamicEntry* raw_dt_preinit = binary_->get(DynamicEntry::TAG::PREINIT_ARRAY);
-      if (raw_dt_preinit == nullptr || !DynamicEntryArray::classof(raw_dt_preinit)) {
+      DynamicEntry* raw_dt_preinit =
+          binary_->get(DynamicEntry::TAG::PREINIT_ARRAY);
+      if (raw_dt_preinit == nullptr || !DynamicEntryArray::classof(raw_dt_preinit))
+      {
         LIEF_ERR("DT_PREINIT_ARRAY not found");
         return make_error_code(lief_errors::file_format_error);
       }
       auto* dt_preinit_array = raw_dt_preinit->as<DynamicEntryArray>();
-      DynamicEntry* dt_preinit_arraysz = binary_->get(DynamicEntry::TAG::PREINIT_ARRAYSZ);
+      DynamicEntry* dt_preinit_arraysz =
+          binary_->get(DynamicEntry::TAG::PREINIT_ARRAYSZ);

       if (dt_preinit_array == nullptr) {
-        LIEF_ERR("Can't find DT_PREINIT_ARRAYSZ");
+        LIEF_ERR("DT_PREINIT_ARRAYSZ not found");
         return make_error_code(lief_errors::file_format_error);
       }

       if (binary_->header().file_type() == Header::FILE_TYPE::DYN) {
         const std::vector<uint64_t>& array = dt_preinit_array->array();
         const size_t sizeof_p = binary_->type() == Header::CLASS::ELF32 ?
-                                sizeof(uint32_t) : sizeof(uint64_t);
-        LIEF_WARN("Relocating .preinit_array might not work on Linux.");
+                                    sizeof(uint32_t) :
+                                    sizeof(uint64_t);
+        LIEF_WARN("Relocating .preinit_array may not work on Linux");

         const uint64_t array_base_address = dt_preinit_array->value();
         for (size_t i = 0; i < array.size(); ++i) {
-          auto it_reloc = relocations_addresses_.find(array_base_address + i * sizeof_p);
-          if (it_reloc == std::end(relocations_addresses_)) {
-            LIEF_ERR("Missing relocation for .preinit_array[{:d}]: 0x{:x}", i, array[i]);
+          auto it_reloc =
+              relocations_addresses_.find(array_base_address + i * sizeof_p);
+          if (it_reloc == relocations_addresses_.end()) {
+            LIEF_ERR("Missing relocation for .preinit_array[{:d}]: {:#x}", i,
+                     array[i]);
             continue;
           }
           Relocation* reloc = it_reloc->second;
@@ -1501,25 +1560,29 @@ class LIEF_LOCAL ExeLayout : public Layout {
         return make_error_code(lief_errors::file_format_error);
       }
       auto* dt_fini_array = raw_dt_fini->as<DynamicEntryArray>();
-      DynamicEntry* dt_fini_arraysz = binary_->get(DynamicEntry::TAG::FINI_ARRAYSZ);
+      DynamicEntry* dt_fini_arraysz =
+          binary_->get(DynamicEntry::TAG::FINI_ARRAYSZ);

       if (dt_fini_arraysz == nullptr) {
-        LIEF_ERR("Can't find DT_FINI_ARRAYSZ");
+        LIEF_ERR("DT_FINI_ARRAYSZ not found");
         return make_error_code(lief_errors::file_format_error);
       }

       if (binary_->header().file_type() == Header::FILE_TYPE::DYN) {
         const std::vector<uint64_t>& array = dt_fini_array->array();
         const size_t sizeof_p = binary_->type() == Header::CLASS::ELF32 ?
-                                sizeof(uint32_t) : sizeof(uint64_t);
+                                    sizeof(uint32_t) :
+                                    sizeof(uint64_t);

-        LIEF_WARN("Relocating .fini_array might not work on Linux.");
+        LIEF_WARN("Relocating .fini_array may not work on Linux");

         const uint64_t array_base_address = dt_fini_array->value();
         for (size_t i = 0; i < array.size(); ++i) {
-          auto it_reloc = relocations_addresses_.find(array_base_address + i * sizeof_p);
-          if (it_reloc == std::end(relocations_addresses_)) {
-            LIEF_ERR("Missing relocation for .fini_array[{:d}]: 0x{:x}", i, array[i]);
+          auto it_reloc =
+              relocations_addresses_.find(array_base_address + i * sizeof_p);
+          if (it_reloc == relocations_addresses_.end()) {
+            LIEF_ERR("Missing relocation for .fini_array[{:d}]: {:#x}", i,
+                     array[i]);
             continue;
           }
           Relocation* reloc = it_reloc->second;
@@ -1550,13 +1613,15 @@ class LIEF_LOCAL ExeLayout : public Layout {
     // symbol's names associated with debug symbol (not mandatory)
     size_t strtab_idx = 0;
     if (relocate_strtab_) {
-      LIEF_DEBUG("Relocate .strtab");
+      LIEF_DEBUG("Relocating .strtab");
       if (is_strtab_shared_shstrtab()) {
-        LIEF_ERR("Inconsistency"); // The strtab should be located in the .shstrtab section
+        LIEF_ERR(
+            "Strtab inconsistency"
+        ); // The strtab should be located in the .shstrtab section
         return make_error_code(lief_errors::file_format_error);
       }
       if (strtab_section_ != nullptr) {
-        LIEF_DEBUG("Removing the old section: {} 0x{:x} (size: 0x{:x})",
+        LIEF_DEBUG("Removing the old section: {} {:#x} (size: {:#x})",
                    strtab_section_->name(), strtab_section_->file_offset(),
                    strtab_section_->size());
         binary_->remove(*strtab_section_, /* clear */ true);
@@ -1564,22 +1629,25 @@ class LIEF_LOCAL ExeLayout : public Layout {
       Section strtab{".strtab", Section::TYPE::STRTAB};
       strtab.content(raw_strtab_);
       strtab.alignment(1);
-      Section* new_strtab = binary_->add(
-        strtab, /*loaded=*/false, /*pos=*/Binary::SEC_INSERT_POS::POST_SECTION);
+      Section* new_strtab =
+          binary_->add(strtab, /*loaded=*/false,
+                       /*pos=*/Binary::SEC_INSERT_POS::POST_SECTION);

       strtab_idx = binary_->sections().size() - 1;

       if (new_strtab == nullptr) {
-        LIEF_ERR("Can't add a new .strtab section");
+        LIEF_ERR("Failed to add .strtab section");
         return make_error_code(lief_errors::build_error);
       }

-      LIEF_DEBUG("New .strtab section: #{:d} {} 0x{:x} (size: {:x})",
-                 strtab_idx, new_strtab->name(), new_strtab->file_offset(), new_strtab->size());
+      LIEF_DEBUG("New .strtab section: #{:d} {} {:#x} (size: {:x})", strtab_idx,
+                 new_strtab->name(), new_strtab->file_offset(),
+                 new_strtab->size());

       Section* sec_symtab = binary_->get(Section::TYPE::SYMTAB);
       if (sec_symtab != nullptr) {
-        LIEF_DEBUG("Link section {} with the new .strtab (idx: #{:d})", sec_symtab->name(), strtab_idx);
+        LIEF_DEBUG("Linking section {} with new .strtab (idx: #{:d})",
+                   sec_symtab->name(), strtab_idx);
         sec_symtab->link(strtab_idx);
       }
       set_strtab_section(*new_strtab);
@@ -1592,12 +1660,13 @@ class LIEF_LOCAL ExeLayout : public Layout {
     // Sections that are not associated with segments (mostly debug information)
     // currently we only handle the symtab symbol table: .symtab
     if (symtab_size_ > 0) {
-      LIEF_DEBUG("Relocate .symtab");
+      LIEF_DEBUG("Relocating .symtab");

       const auto sections = binary_->sections();
-      auto it_sec_symtab = std::find_if(sections.begin(), sections.end(),
-          [] (const Section& sec) { return sec.type() == Section::TYPE::SYMTAB; }
-      );
+      auto it_sec_symtab =
+          std::find_if(sections.begin(), sections.end(), [](const Section& sec) {
+            return sec.type() == Section::TYPE::SYMTAB;
+          });

       if (it_sec_symtab != sections.end()) {
         const size_t pos = std::distance(sections.begin(), it_sec_symtab);
@@ -1606,8 +1675,9 @@ class LIEF_LOCAL ExeLayout : public Layout {
           strtab_idx = it_sec_symtab->link();
         }

-        LIEF_DEBUG("Removing the old section: {} 0x{:x} (size: 0x{:x})",
-                   it_sec_symtab->name(), it_sec_symtab->file_offset(), it_sec_symtab->size());
+        LIEF_DEBUG("Removing the old section: {} {:#x} (size: {:#x})",
+                   it_sec_symtab->name(), it_sec_symtab->file_offset(),
+                   it_sec_symtab->size());
         binary_->remove(*it_sec_symtab, /* clear */ true);
         if (pos < strtab_idx) {
           --strtab_idx;
@@ -1618,18 +1688,20 @@ class LIEF_LOCAL ExeLayout : public Layout {
       symtab.content(std::vector<uint8_t>(symtab_size_));

       const size_t sizeof_sym = binary_->type() == Header::CLASS::ELF32 ?
-                                sizeof(details::Elf32_Sym) : sizeof(details::Elf64_Sym);
+                                    sizeof(details::Elf32_Sym) :
+                                    sizeof(details::Elf64_Sym);
       symtab.entry_size(sizeof_sym);
       symtab.alignment(8);
       symtab.link(strtab_idx);
-      Section* new_symtab = binary_->add(
-        symtab, /*loaded=*/false, /*pos=*/Binary::SEC_INSERT_POS::POST_SECTION);
+      Section* new_symtab =
+          binary_->add(symtab, /*loaded=*/false,
+                       /*pos=*/Binary::SEC_INSERT_POS::POST_SECTION);
       if (new_symtab == nullptr) {
-        LIEF_ERR("Can't add a new .symbtab section");
+        LIEF_ERR("Failed to add .symtab section");
         return make_error_code(lief_errors::build_error);
       }
-      LIEF_DEBUG("New .symtab section: {} 0x{:x} (size: {:x})",
-                 new_symtab->name(), new_symtab->file_offset(), new_symtab->size());
+      LIEF_DEBUG("New .symtab section: {} {:#x} (size: {:x})", new_symtab->name(),
+                 new_symtab->file_offset(), new_symtab->size());
     }

     // Process note sections
@@ -1640,7 +1712,7 @@ class LIEF_LOCAL ExeLayout : public Layout {

         if (!section_res) {
           if (binary_->header().file_type() != Header::FILE_TYPE::CORE) {
-            LIEF_ERR("Note type: {} ('{}') is not supported",
+            LIEF_ERR("Unsupported note type {} ('{}') for section",
                      to_string(note.type()), note.name());
           }
           continue;
@@ -1654,8 +1726,8 @@ class LIEF_LOCAL ExeLayout : public Layout {
         if (const Section* nsec = binary_->get_section(*section_res);
             nsec == nullptr)
         {
-          if (it_offset == std::end(notes_off_map_)) {
-            LIEF_ERR("Can't find raw data for note: '{}'", to_string(note.type()));
+          if (it_offset == notes_off_map_.end()) {
+            LIEF_ERR("Raw data not found for note '{}'", to_string(note.type()));
             continue;
           }
           const size_t note_offset = it_offset->second;
@@ -1663,10 +1735,11 @@ class LIEF_LOCAL ExeLayout : public Layout {
           Section section{sec_name, Section::TYPE::NOTE};
           section += Section::FLAGS::ALLOC;

-          Section* section_added = binary_->add(
-            section, /*loaded=*/false, /*pos=*/Binary::SEC_INSERT_POS::POST_SECTION);
+          Section* section_added =
+              binary_->add(section, /*loaded=*/false,
+                           /*pos=*/Binary::SEC_INSERT_POS::POST_SECTION);
           if (section_added == nullptr) {
-            LIEF_ERR("Can't add SHT_NOTE section");
+            LIEF_ERR("Failed to add SHT_NOTE section");
             return make_error_code(lief_errors::build_error);
           }
           section_added->offset(segment_note->file_offset() + note_offset);
@@ -1693,56 +1766,56 @@ class LIEF_LOCAL ExeLayout : public Layout {

   ~ExeLayout() override = default;
   ExeLayout() = delete;
-  private:

+  private:
   std::unordered_map<std::string, size_t> offset_name_map_;
   std::unordered_map<const Note*, size_t> notes_off_map_;

   sym_verdef_info_t verdef_info_;

   std::vector<uint8_t> raw_notes_;
-  bool relocate_notes_{false};
+  bool relocate_notes_ = false;

   std::vector<uint8_t> raw_dynstr_;
-  bool relocate_dynstr_{false};
+  bool relocate_dynstr_ = false;

-  bool relocate_shstrtab_{false};
+  bool relocate_shstrtab_ = false;

-  bool relocate_strtab_{false};
+  bool relocate_strtab_ = false;

   std::vector<uint8_t> raw_gnu_hash_;
-  bool relocate_gnu_hash_{false};
+  bool relocate_gnu_hash_ = false;

   std::vector<uint8_t> raw_relr_;
-  bool relocate_relr_{false};
+  bool relocate_relr_ = false;

   std::vector<uint8_t> raw_android_rela_;
-  bool relocate_android_rela_{false};
+  bool relocate_android_rela_ = false;

-  uint64_t sysv_size_{0};
+  uint64_t sysv_size_ = 0;

-  uint64_t dynamic_size_{0};
-  uint64_t dynsym_size_{0};
+  uint64_t dynamic_size_ = 0;
+  uint64_t dynsym_size_ = 0;

-  uint64_t pltgot_reloc_size_{0};
-  uint64_t dynamic_reloc_size_{0};
+  uint64_t pltgot_reloc_size_ = 0;
+  uint64_t dynamic_reloc_size_ = 0;

-  uint64_t sver_size_{0};
-  uint64_t sverd_size_{0};
-  uint64_t sverr_size_{0};
+  uint64_t sver_size_ = 0;
+  uint64_t sverd_size_ = 0;
+  uint64_t sverr_size_ = 0;

-  uint64_t preinit_size_{0};
-  uint64_t init_size_{0};
-  uint64_t fini_size_{0};
+  uint64_t preinit_size_ = 0;
+  uint64_t init_size_ = 0;
+  uint64_t fini_size_ = 0;

-  uint64_t interp_size_{0};
-  uint32_t nchain_{0};
-  uint64_t symtab_size_{0};
+  uint64_t interp_size_ = 0;
+  uint32_t nchain_ = 0;
+  uint64_t symtab_size_ = 0;

-  //uint64_t pltgot_reloc_size_{0};
+  // uint64_t pltgot_reloc_size_ = 0;
   std::unordered_map<uint64_t, Relocation*> relocations_addresses_;
 };
 }
-}
+

 #endif
diff --git a/deps/LIEF/src/ELF/GnuHash.cpp b/deps/LIEF/src/ELF/GnuHash.cpp
index 4f70fad9f05..bcdb92398d1 100644
--- a/deps/LIEF/src/ELF/GnuHash.cpp
+++ b/deps/LIEF/src/ELF/GnuHash.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -13,10 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-#include <iomanip>
-#include <numeric>
-#include <sstream>
-#include <utility>
+#include <spdlog/fmt/fmt.h>

 #include "LIEF/Visitor.hpp"
 #include "LIEF/BinaryStream/SpanStream.hpp"
@@ -29,10 +26,13 @@
 #include "logging.hpp"
 #include "ELF/Structures.hpp"

-namespace LIEF {
-namespace ELF {
+
+namespace LIEF::ELF {

 bool GnuHash::check_bloom_filter(uint32_t hash) const {
+  if (maskwords() == 0) {
+    return false;
+  }
   const size_t C = c_;
   const uint32_t h1 = hash;
   const uint32_t h2 = hash >> shift2();
@@ -71,8 +71,8 @@ template<typename ELF_T>
 std::unique_ptr<GnuHash> GnuHash::parse(SpanStream& strm, uint64_t dynsymcount) {
   // See: https://github.com/lattera/glibc/blob/master/elf/dl-lookup.c#L860
   // and  https://github.com/lattera/glibc/blob/master/elf/dl-lookup.c#L226
-  using uint__  = typename ELF_T::uint;
-  LIEF_DEBUG("== Parse symbol GNU hash ==");
+  using uint__ = typename ELF_T::uint;
+  LIEF_DEBUG("Parsing GNU hash");
   const uint64_t opos = strm.pos();

   auto gnuhash = std::make_unique<GnuHash>();
@@ -81,13 +81,13 @@ std::unique_ptr<GnuHash> GnuHash::parse(SpanStream& strm, uint64_t dynsymcount)

   auto nbuckets = strm.read<uint32_t>();
   if (!nbuckets) {
-    LIEF_ERR("Can't read the number of buckets");
+    LIEF_ERR("Failed to read bucket count");
     return nullptr;
   }

   auto symidx = strm.read<uint32_t>();
   if (!symidx) {
-    LIEF_ERR("Can't read the symndx");
+    LIEF_ERR("Failed to read symndx");
     return nullptr;
   }

@@ -95,13 +95,13 @@ std::unique_ptr<GnuHash> GnuHash::parse(SpanStream& strm, uint64_t dynsymcount)

   auto maskwords = strm.read<uint32_t>();
   if (!maskwords) {
-    LIEF_ERR("Can't read the maskwords");
+    LIEF_ERR("Failed to read maskwords");
     return nullptr;
   }

   auto shift2 = strm.read<uint32_t>();
   if (!shift2) {
-    LIEF_ERR("Can't read the shift2");
+    LIEF_ERR("Failed to read shift2");
     return nullptr;
   }
   gnuhash->shift2_ = *shift2;
@@ -115,17 +115,17 @@ std::unique_ptr<GnuHash> GnuHash::parse(SpanStream& strm, uint64_t dynsymcount)
     std::copy(bloom_filters.begin(), bloom_filters.end(),
               std::back_inserter(gnuhash->bloom_filters_));
   } else {
-    LIEF_ERR("GNU Hash, maskwords corrupted");
+    LIEF_ERR("GNU hash maskwords corrupted");
   }

   if (!strm.read_objects(gnuhash->buckets_, *nbuckets)) {
-    LIEF_ERR("GNU Hash, buckets corrupted");
+    LIEF_ERR("GNU hash buckets corrupted");
   }

   if (dynsymcount > 0 && dynsymcount >= gnuhash->symbol_index_) {
     const uint32_t nb_hash = dynsymcount - gnuhash->symbol_index_;
     if (!strm.read_objects(gnuhash->hash_values_, nb_hash)) {
-      LIEF_ERR("Can't read hash values (count={})", nb_hash);
+      LIEF_ERR("Failed to read hash values (count={})", nb_hash);
     }
   }

@@ -152,8 +152,8 @@ result<uint32_t> GnuHash::nb_symbols(SpanStream& strm) {
     return 0;
   }

-  const auto nbuckets  = *res_nbuckets;
-  const auto symndx    = *res_symndx;
+  const auto nbuckets = *res_nbuckets;
+  const auto symndx = *res_symndx;
   const auto maskwords = *res_maskwords;

   // skip shift2, unused as we don't need the bloom filter to count syms.
@@ -182,6 +182,12 @@ result<uint32_t> GnuHash::nb_symbols(SpanStream& strm) {
     return 0;
   }

+  if (max_bucket < symndx) {
+    LIEF_WARN("GNU hash: symbol index ({}) is larger than the max bucket ({})",
+              symndx, max_bucket);
+    return 0;
+  }
+
   // Skip to the contents of the bucket with the largest symbol index
   strm.increment_pos(sizeof(uint32_t) * (max_bucket - symndx));

@@ -195,85 +201,38 @@ result<uint32_t> GnuHash::nb_symbols(SpanStream& strm) {
     hash_value = *strm.read<uint32_t>();

     nsyms++;
-  } while ((hash_value & 1) == 0); // "It is set to 1 when a symbol is the last symbol in a given hash bucket"
+  } while ((hash_value & 1) == 0); // "It is set to 1 when a symbol is the last
+                                   // symbol in a given hash bucket"

   return max_bucket + nsyms;
-
 }

 std::ostream& operator<<(std::ostream& os, const GnuHash& gnuhash) {
-  os << std::hex << std::left;
-
-  const std::vector<uint64_t>& bloom_filters = gnuhash.bloom_filters();
-  const std::vector<uint32_t>& buckets       = gnuhash.buckets();
-  const std::vector<uint32_t>& hash_values   = gnuhash.hash_values();
-
-  std::string bloom_filters_str = std::accumulate(
-      std::begin(bloom_filters),
-      std::end(bloom_filters), std::string{},
-      [] (const std::string& a, uint64_t bf) {
-        std::ostringstream hex_bf;
-        hex_bf << std::hex;
-        hex_bf << "0x" << bf;
-
-        return a.empty() ? "[" + hex_bf.str() : a + ", " + hex_bf.str();
-      });
-  bloom_filters_str += "]";
-
-  std::string buckets_str = std::accumulate(
-      std::begin(buckets),
-      std::end(buckets), std::string{},
-      [] (const std::string& a, uint32_t b) {
-        std::ostringstream hex_bucket;
-        hex_bucket << std::dec;
-        hex_bucket  << b;
-
-        return a.empty() ? "[" + hex_bucket.str() : a + ", " + hex_bucket.str();
-      });
-  buckets_str += "]";
-
-
-  std::string hash_values_str = std::accumulate(
-      std::begin(hash_values),
-      std::end(hash_values), std::string{},
-      [] (const std::string& a, uint64_t hv) {
-        std::ostringstream hex_hv;
-        hex_hv << std::hex;
-        hex_hv << "0x" << hv;
-
-        return a.empty() ? "[" + hex_hv.str() : a + ", " + hex_hv.str();
-      });
-  hash_values_str += "]";
-
-  os << std::setw(33) << std::setfill(' ') << "Number of buckets:"  << gnuhash.nb_buckets()   << '\n';
-  os << std::setw(33) << std::setfill(' ') << "First symbol index:" << gnuhash.symbol_index() << '\n';
-  os << std::setw(33) << std::setfill(' ') << "Shift Count:"        << gnuhash.shift2()       << '\n';
-  os << std::setw(33) << std::setfill(' ') << "Bloom filters:"      << bloom_filters_str      << '\n';
-  os << std::setw(33) << std::setfill(' ') << "Buckets:"            << buckets_str            << '\n';
-  os << std::setw(33) << std::setfill(' ') << "Hash values:"        << hash_values_str        << '\n';
-
+  os << fmt::format("Number of buckets:           {}\n", gnuhash.nb_buckets())
+     << fmt::format("First symbol index:          {}\n", gnuhash.symbol_index())
+     << fmt::format("Shift Count:                 {}\n", gnuhash.shift2())
+     << fmt::format("Bloom filters:               [{:#x}]\n",
+                    fmt::join(gnuhash.bloom_filters(), ", "))
+     << fmt::format("Buckets:                     [{}]\n",
+                    fmt::join(gnuhash.buckets(), ", "))
+     << fmt::format("Hash values:                 [{:#x}]\n",
+                    fmt::join(gnuhash.hash_values(), ", "));
   return os;
-
 }

-template
-std::unique_ptr<GnuHash> GnuHash::parse<details::ELF64>(SpanStream&, uint64_t);
-template
-std::unique_ptr<GnuHash> GnuHash::parse<details::ELF32>(SpanStream&, uint64_t);
-template
-std::unique_ptr<GnuHash> GnuHash::parse<details::ELF32_x32>(SpanStream&, uint64_t);
-template
-std::unique_ptr<GnuHash> GnuHash::parse<details::ELF32_arm64>(SpanStream&, uint64_t);
-
-template
-result<uint32_t> GnuHash::nb_symbols<details::ELF64>(SpanStream&);
-template
-result<uint32_t> GnuHash::nb_symbols<details::ELF32>(SpanStream&);
-template
-result<uint32_t> GnuHash::nb_symbols<details::ELF32_x32>(SpanStream&);
-template
-result<uint32_t> GnuHash::nb_symbols<details::ELF32_arm64>(SpanStream&);
-
-
-} // namespace ELF
-} // namespace LIEF
+template std::unique_ptr<GnuHash> GnuHash::parse<details::ELF64>(SpanStream&,
+                                                                 uint64_t);
+template std::unique_ptr<GnuHash> GnuHash::parse<details::ELF32>(SpanStream&,
+                                                                 uint64_t);
+template std::unique_ptr<GnuHash> GnuHash::parse<details::ELF32_x32>(SpanStream&,
+                                                                     uint64_t);
+template std::unique_ptr<GnuHash> GnuHash::parse<details::ELF32_arm64>(SpanStream&,
+                                                                       uint64_t);
+
+template result<uint32_t> GnuHash::nb_symbols<details::ELF64>(SpanStream&);
+template result<uint32_t> GnuHash::nb_symbols<details::ELF32>(SpanStream&);
+template result<uint32_t> GnuHash::nb_symbols<details::ELF32_x32>(SpanStream&);
+template result<uint32_t> GnuHash::nb_symbols<details::ELF32_arm64>(SpanStream&);
+
+
+} // namespace LIEF::ELF
diff --git a/deps/LIEF/src/ELF/Header.cpp b/deps/LIEF/src/ELF/Header.cpp
index 45f9364540e..f5b88c98000 100644
--- a/deps/LIEF/src/ELF/Header.cpp
+++ b/deps/LIEF/src/ELF/Header.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -13,8 +13,6 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-#include <sstream>
-#include <numeric>
 #include <algorithm>

 #include "frozen.hpp"
@@ -27,61 +25,92 @@

 #include "logging.hpp"

-namespace LIEF {
-namespace ELF {

-static constexpr uint64_t ARM_EABIMASK       = 0xFF000000U;
-static constexpr uint64_t MIPS_ABI_MASK      = 0x0000f000U;
-static constexpr uint64_t MIPS_MACH_MASK     = 0x00ff0000U;
+namespace LIEF::ELF {
+
+static constexpr uint64_t ARM_EABIMASK = 0xFF000000U;
+static constexpr uint64_t MIPS_ABI_MASK = 0x0000f000U;
+static constexpr uint64_t MIPS_MACH_MASK = 0x00ff0000U;
 static constexpr uint64_t MIPS_ARCH_ASE_MASK = 0x0f000000U;
-static constexpr uint64_t MIPS_ARCH_MASK     = 0xf0000000U;
+static constexpr uint64_t MIPS_ARCH_MASK = 0xf0000000U;
 static constexpr uint64_t RISCV_FLOAT_ABI_MASK = 0x0006; // EF_RISCV_FLOAT_ABI

 static constexpr auto PFLAGS_LIST = {
-  PROCESSOR_FLAGS::ARM_EABI_UNKNOWN, PROCESSOR_FLAGS::ARM_SOFT_FLOAT,
-  PROCESSOR_FLAGS::ARM_VFP_FLOAT, PROCESSOR_FLAGS::ARM_EABI_VER1,
-  PROCESSOR_FLAGS::ARM_EABI_VER2, PROCESSOR_FLAGS::ARM_EABI_VER3,
-  PROCESSOR_FLAGS::ARM_EABI_VER4, PROCESSOR_FLAGS::ARM_EABI_VER5,
-  PROCESSOR_FLAGS::HEXAGON_MACH_V2, PROCESSOR_FLAGS::HEXAGON_MACH_V3,
-  PROCESSOR_FLAGS::HEXAGON_MACH_V4, PROCESSOR_FLAGS::HEXAGON_MACH_V5,
-  PROCESSOR_FLAGS::HEXAGON_ISA_V2, PROCESSOR_FLAGS::HEXAGON_ISA_V3,
-  PROCESSOR_FLAGS::HEXAGON_ISA_V4, PROCESSOR_FLAGS::HEXAGON_ISA_V5,
-  PROCESSOR_FLAGS::LOONGARCH_ABI_SOFT_FLOAT, PROCESSOR_FLAGS::LOONGARCH_ABI_SINGLE_FLOAT,
-  PROCESSOR_FLAGS::LOONGARCH_ABI_DOUBLE_FLOAT, PROCESSOR_FLAGS::MIPS_NOREORDER,
-  PROCESSOR_FLAGS::MIPS_PIC, PROCESSOR_FLAGS::MIPS_CPIC,
-  PROCESSOR_FLAGS::MIPS_ABI2, PROCESSOR_FLAGS::MIPS_32BITMODE,
-  PROCESSOR_FLAGS::MIPS_FP64, PROCESSOR_FLAGS::MIPS_NAN2008,
-  PROCESSOR_FLAGS::MIPS_ABI_O32, PROCESSOR_FLAGS::MIPS_ABI_O64,
-  PROCESSOR_FLAGS::MIPS_ABI_EABI32, PROCESSOR_FLAGS::MIPS_ABI_EABI64,
-  PROCESSOR_FLAGS::MIPS_MACH_3900,
-  PROCESSOR_FLAGS::MIPS_MACH_4010, PROCESSOR_FLAGS::MIPS_MACH_4100,
-  PROCESSOR_FLAGS::MIPS_MACH_4650, PROCESSOR_FLAGS::MIPS_MACH_4120,
-  PROCESSOR_FLAGS::MIPS_MACH_4111, PROCESSOR_FLAGS::MIPS_MACH_SB1,
-  PROCESSOR_FLAGS::MIPS_MACH_OCTEON, PROCESSOR_FLAGS::MIPS_MACH_XLR,
-  PROCESSOR_FLAGS::MIPS_MACH_OCTEON2, PROCESSOR_FLAGS::MIPS_MACH_OCTEON3,
-  PROCESSOR_FLAGS::MIPS_MACH_5400, PROCESSOR_FLAGS::MIPS_MACH_5900,
-  PROCESSOR_FLAGS::MIPS_MACH_5500, PROCESSOR_FLAGS::MIPS_MACH_9000,
-  PROCESSOR_FLAGS::MIPS_MACH_LS2E, PROCESSOR_FLAGS::MIPS_MACH_LS2F,
-  PROCESSOR_FLAGS::MIPS_MACH_LS3A, PROCESSOR_FLAGS::MIPS_MICROMIPS,
-  PROCESSOR_FLAGS::MIPS_ARCH_ASE_M16, PROCESSOR_FLAGS::MIPS_ARCH_ASE_MDMX,
-  PROCESSOR_FLAGS::MIPS_ARCH_1, PROCESSOR_FLAGS::MIPS_ARCH_2,
-  PROCESSOR_FLAGS::MIPS_ARCH_3, PROCESSOR_FLAGS::MIPS_ARCH_4,
-  PROCESSOR_FLAGS::MIPS_ARCH_5, PROCESSOR_FLAGS::MIPS_ARCH_32,
-  PROCESSOR_FLAGS::MIPS_ARCH_64, PROCESSOR_FLAGS::MIPS_ARCH_32R2,
-  PROCESSOR_FLAGS::MIPS_ARCH_64R2, PROCESSOR_FLAGS::MIPS_ARCH_32R6,
-  PROCESSOR_FLAGS::MIPS_ARCH_64R6,
-  PROCESSOR_FLAGS::RISCV_RVC,
-  PROCESSOR_FLAGS::RISCV_FLOAT_ABI_SOFT,
-  PROCESSOR_FLAGS::RISCV_FLOAT_ABI_SINGLE,
-  PROCESSOR_FLAGS::RISCV_FLOAT_ABI_DOUBLE,
-  PROCESSOR_FLAGS::RISCV_FLOAT_ABI_QUAD,
-  PROCESSOR_FLAGS::RISCV_FLOAT_ABI_RVE,
-  PROCESSOR_FLAGS::RISCV_FLOAT_ABI_TSO,
+    PROCESSOR_FLAGS::ARM_EABI_UNKNOWN,
+    PROCESSOR_FLAGS::ARM_SOFT_FLOAT,
+    PROCESSOR_FLAGS::ARM_VFP_FLOAT,
+    PROCESSOR_FLAGS::ARM_EABI_VER1,
+    PROCESSOR_FLAGS::ARM_EABI_VER2,
+    PROCESSOR_FLAGS::ARM_EABI_VER3,
+    PROCESSOR_FLAGS::ARM_EABI_VER4,
+    PROCESSOR_FLAGS::ARM_EABI_VER5,
+    PROCESSOR_FLAGS::HEXAGON_MACH_V2,
+    PROCESSOR_FLAGS::HEXAGON_MACH_V3,
+    PROCESSOR_FLAGS::HEXAGON_MACH_V4,
+    PROCESSOR_FLAGS::HEXAGON_MACH_V5,
+    PROCESSOR_FLAGS::HEXAGON_ISA_V2,
+    PROCESSOR_FLAGS::HEXAGON_ISA_V3,
+    PROCESSOR_FLAGS::HEXAGON_ISA_V4,
+    PROCESSOR_FLAGS::HEXAGON_ISA_V5,
+    PROCESSOR_FLAGS::LOONGARCH_ABI_SOFT_FLOAT,
+    PROCESSOR_FLAGS::LOONGARCH_ABI_SINGLE_FLOAT,
+    PROCESSOR_FLAGS::LOONGARCH_ABI_DOUBLE_FLOAT,
+    PROCESSOR_FLAGS::MIPS_NOREORDER,
+    PROCESSOR_FLAGS::MIPS_PIC,
+    PROCESSOR_FLAGS::MIPS_CPIC,
+    PROCESSOR_FLAGS::MIPS_ABI2,
+    PROCESSOR_FLAGS::MIPS_32BITMODE,
+    PROCESSOR_FLAGS::MIPS_FP64,
+    PROCESSOR_FLAGS::MIPS_NAN2008,
+    PROCESSOR_FLAGS::MIPS_ABI_O32,
+    PROCESSOR_FLAGS::MIPS_ABI_O64,
+    PROCESSOR_FLAGS::MIPS_ABI_EABI32,
+    PROCESSOR_FLAGS::MIPS_ABI_EABI64,
+    PROCESSOR_FLAGS::MIPS_MACH_3900,
+    PROCESSOR_FLAGS::MIPS_MACH_4010,
+    PROCESSOR_FLAGS::MIPS_MACH_4100,
+    PROCESSOR_FLAGS::MIPS_MACH_4650,
+    PROCESSOR_FLAGS::MIPS_MACH_4120,
+    PROCESSOR_FLAGS::MIPS_MACH_4111,
+    PROCESSOR_FLAGS::MIPS_MACH_SB1,
+    PROCESSOR_FLAGS::MIPS_MACH_OCTEON,
+    PROCESSOR_FLAGS::MIPS_MACH_XLR,
+    PROCESSOR_FLAGS::MIPS_MACH_OCTEON2,
+    PROCESSOR_FLAGS::MIPS_MACH_OCTEON3,
+    PROCESSOR_FLAGS::MIPS_MACH_5400,
+    PROCESSOR_FLAGS::MIPS_MACH_5900,
+    PROCESSOR_FLAGS::MIPS_MACH_5500,
+    PROCESSOR_FLAGS::MIPS_MACH_9000,
+    PROCESSOR_FLAGS::MIPS_MACH_LS2E,
+    PROCESSOR_FLAGS::MIPS_MACH_LS2F,
+    PROCESSOR_FLAGS::MIPS_MACH_LS3A,
+    PROCESSOR_FLAGS::MIPS_MICROMIPS,
+    PROCESSOR_FLAGS::MIPS_ARCH_ASE_M16,
+    PROCESSOR_FLAGS::MIPS_ARCH_ASE_MDMX,
+    PROCESSOR_FLAGS::MIPS_ARCH_1,
+    PROCESSOR_FLAGS::MIPS_ARCH_2,
+    PROCESSOR_FLAGS::MIPS_ARCH_3,
+    PROCESSOR_FLAGS::MIPS_ARCH_4,
+    PROCESSOR_FLAGS::MIPS_ARCH_5,
+    PROCESSOR_FLAGS::MIPS_ARCH_32,
+    PROCESSOR_FLAGS::MIPS_ARCH_64,
+    PROCESSOR_FLAGS::MIPS_ARCH_32R2,
+    PROCESSOR_FLAGS::MIPS_ARCH_64R2,
+    PROCESSOR_FLAGS::MIPS_ARCH_32R6,
+    PROCESSOR_FLAGS::MIPS_ARCH_64R6,
+    PROCESSOR_FLAGS::RISCV_RVC,
+    PROCESSOR_FLAGS::RISCV_FLOAT_ABI_SOFT,
+    PROCESSOR_FLAGS::RISCV_FLOAT_ABI_SINGLE,
+    PROCESSOR_FLAGS::RISCV_FLOAT_ABI_DOUBLE,
+    PROCESSOR_FLAGS::RISCV_FLOAT_ABI_QUAD,
+    PROCESSOR_FLAGS::RISCV_FLOAT_ABI_RVE,
+    PROCESSOR_FLAGS::RISCV_FLOAT_ABI_TSO,

 };

 template<class T>
-Header::Header(const T& header):
+Header::Header(const T& header) :
+  identity_{},
   file_type_(FILE_TYPE(header.e_type)),
   machine_type_(ARCH(header.e_machine)),
   object_file_version_(VERSION(header.e_version)),
@@ -94,23 +123,20 @@ Header::Header(const T& header):
   numberof_segments_(header.e_phnum),
   section_header_size_(header.e_shentsize),
   numberof_sections_(header.e_shnum),
-  section_string_table_idx_(header.e_shstrndx)
-{
+  section_string_table_idx_(header.e_shstrndx) {
   std::copy(std::begin(header.e_ident), std::end(header.e_ident),
-           std::begin(identity_));
+            std::begin(identity_));
 }

 template Header::Header(const details::Elf32_Ehdr& header);
 template Header::Header(const details::Elf64_Ehdr& header);

 void Header::identity(const std::string& identity) {
-  std::copy(std::begin(identity), std::end(identity),
-            std::begin(identity_));
+  std::copy(identity.begin(), identity.end(), identity_.begin());
 }

 void Header::identity(const Header::identity_t& identity) {
-  std::copy(std::begin(identity), std::end(identity),
-            std::begin(identity_));
+  std::copy(identity.begin(), identity.end(), identity_.begin());
 }

 void Header::accept(LIEF::Visitor& visitor) const {
@@ -134,8 +160,7 @@ bool Header::has(PROCESSOR_FLAGS flag) const {
       case PROCESSOR_FLAGS::ARM_EABI_VER4:
       case PROCESSOR_FLAGS::ARM_EABI_VER5:
         return (processor_flag() & ARM_EABIMASK) == raw_flag;
-      default:
-        return (processor_flag() & raw_flag) != 0;
+      default: return (processor_flag() & raw_flag) != 0;
     }

     return false;
@@ -154,10 +179,8 @@ bool Header::has(PROCESSOR_FLAGS flag) const {
       case PROCESSOR_FLAGS::RISCV_FLOAT_ABI_QUAD:
       case PROCESSOR_FLAGS::ARM_EABI_VER5:
         return (processor_flag() & RISCV_FLOAT_ABI_MASK) == raw_flag;
-      default:
-        return (processor_flag() & raw_flag) != 0;
+      default: return (processor_flag() & raw_flag) != 0;
     }
-
   }

   if (ID == PF_HEX_ID) {
@@ -179,7 +202,7 @@ bool Header::has(PROCESSOR_FLAGS flag) const {
       return false;
     }

-    switch(flag) {
+    switch (flag) {
       case PROCESSOR_FLAGS::MIPS_NOREORDER:
       case PROCESSOR_FLAGS::MIPS_PIC:
       case PROCESSOR_FLAGS::MIPS_CPIC:
@@ -187,7 +210,7 @@ bool Header::has(PROCESSOR_FLAGS flag) const {
       case PROCESSOR_FLAGS::MIPS_32BITMODE:
       case PROCESSOR_FLAGS::MIPS_FP64:
       case PROCESSOR_FLAGS::MIPS_NAN2008:
-          return (processor_flag() & raw_flag) != 0;
+        return (processor_flag() & raw_flag) != 0;

       case PROCESSOR_FLAGS::MIPS_ABI_O32:
       case PROCESSOR_FLAGS::MIPS_ABI_O64:
@@ -213,12 +236,13 @@ bool Header::has(PROCESSOR_FLAGS flag) const {
       case PROCESSOR_FLAGS::MIPS_MACH_LS2E:
       case PROCESSOR_FLAGS::MIPS_MACH_LS2F:
       case PROCESSOR_FLAGS::MIPS_MACH_LS3A:
-          return (processor_flag() & MIPS_MACH_MASK) == (raw_flag & MIPS_MACH_MASK);
+        return (processor_flag() & MIPS_MACH_MASK) == (raw_flag & MIPS_MACH_MASK);

       case PROCESSOR_FLAGS::MIPS_MICROMIPS:
       case PROCESSOR_FLAGS::MIPS_ARCH_ASE_M16:
       case PROCESSOR_FLAGS::MIPS_ARCH_ASE_MDMX:
-        return (processor_flag() & MIPS_ARCH_ASE_MASK) == (raw_flag & MIPS_ARCH_ASE_MASK);
+        return (processor_flag() & MIPS_ARCH_ASE_MASK) ==
+               (raw_flag & MIPS_ARCH_ASE_MASK);

       case PROCESSOR_FLAGS::MIPS_ARCH_1:
       case PROCESSOR_FLAGS::MIPS_ARCH_2:
@@ -231,16 +255,14 @@ bool Header::has(PROCESSOR_FLAGS flag) const {
       case PROCESSOR_FLAGS::MIPS_ARCH_64R2:
       case PROCESSOR_FLAGS::MIPS_ARCH_32R6:
       case PROCESSOR_FLAGS::MIPS_ARCH_64R6:
-          return (processor_flag() & MIPS_ARCH_MASK) == raw_flag;
+        return (processor_flag() & MIPS_ARCH_MASK) == raw_flag;

-      default:
-          return (processor_flag() & raw_flag) != 0;
+      default: return (processor_flag() & raw_flag) != 0;
     }
   }

   if (ID != 0) {
-    LIEF_WARN("Architecture {} is not yet supported for this flag",
-              to_string(arch));
+    LIEF_WARN("Unsupported architecture {} for this flag", to_string(arch));
     return false;
   }

@@ -250,10 +272,8 @@ bool Header::has(PROCESSOR_FLAGS flag) const {
 std::vector<PROCESSOR_FLAGS> Header::flags_list() const {
   std::vector<PROCESSOR_FLAGS> flags;

-  std::copy_if(std::begin(PFLAGS_LIST), std::end(PFLAGS_LIST),
-               std::back_inserter(flags),
-    [this] (PROCESSOR_FLAGS f) { return this->has(f); }
-  );
+  std::copy_if(PFLAGS_LIST.begin(), PFLAGS_LIST.end(), std::back_inserter(flags),
+               [this](PROCESSOR_FLAGS f) { return this->has(f); });

   return flags;
 }
@@ -265,30 +285,48 @@ std::ostream& operator<<(std::ostream& os, const Header& hdr) {
   flags_str.reserve(flags.size());

   std::transform(flags.begin(), flags.end(), std::back_inserter(flags_str),
-    [] (PROCESSOR_FLAGS f) { return to_string(f); }
-  );
+                 [](PROCESSOR_FLAGS f) { return to_string(f); });

   os << "ELF Header:\n"
-     << fmt::format("{:<{}} {:02x}\n", "Magic:", PADDING, fmt::join(hdr.identity(), " "))
-     << fmt::format("{:<{}} {}\n", "Class:", PADDING, to_string(hdr.identity_class()))
-     << fmt::format("{:<{}} {}\n", "Data:", PADDING, to_string(hdr.identity_data()))
-     << fmt::format("{:<{}} {}\n", "Version:", PADDING, to_string(hdr.identity_version()))
-     << fmt::format("{:<{}} {}\n", "OS/ABI:", PADDING, to_string(hdr.identity_os_abi()))
-     << fmt::format("{:<{}} {}\n", "ABI Version:", PADDING, hdr.identity_abi_version())
+     << fmt::format("{:<{}} {:02x}\n", "Magic:", PADDING,
+                    fmt::join(hdr.identity(), " "))
+     << fmt::format("{:<{}} {}\n", "Class:", PADDING,
+                    to_string(hdr.identity_class()))
+     << fmt::format("{:<{}} {}\n", "Data:", PADDING,
+                    to_string(hdr.identity_data()))
+     << fmt::format("{:<{}} {}\n", "Version:", PADDING,
+                    to_string(hdr.identity_version()))
+     << fmt::format("{:<{}} {}\n", "OS/ABI:", PADDING,
+                    to_string(hdr.identity_os_abi()))
+     << fmt::format("{:<{}} {}\n", "ABI Version:", PADDING,
+                    hdr.identity_abi_version())
      << fmt::format("{:<{}} {}\n", "Type:", PADDING, to_string(hdr.file_type()))
-     << fmt::format("{:<{}} {}\n", "Machine:", PADDING, to_string(hdr.machine_type()))
-     << fmt::format("{:<{}} {}\n", "Version:", PADDING, to_string(hdr.object_file_version()))
-     << fmt::format("{:<{}} 0x{:08x}\n", "Entry point address:", PADDING, hdr.entrypoint())
-     << fmt::format("{:<{}} {} (bytes into file)\n", "Start of program headers:", PADDING, hdr.program_headers_offset())
-     << fmt::format("{:<{}} {} (bytes into file)\n", "Start of section headers:", PADDING, hdr.section_headers_offset())
-     << fmt::format("{:<{}} 0x{:x} {}\n", "Flags:", PADDING, hdr.processor_flag(), fmt::to_string(fmt::join(flags_str, ", ")))
-     << fmt::format("{:<{}} {} (bytes)\n", "Size of this header:", PADDING, hdr.header_size())
-     << fmt::format("{:<{}} {} (bytes)\n", "Size of program headers:", PADDING, hdr.program_header_size())
-     << fmt::format("{:<{}} {}\n", "Number of program headers:", PADDING, hdr.numberof_segments())
-     << fmt::format("{:<{}} {} (bytes)\n", "Size of section headers:", PADDING, hdr.section_header_size())
-     << fmt::format("{:<{}} {}\n", "Number of section headers:", PADDING, hdr.numberof_sections())
-     << fmt::format("{:<{}} {}\n", "Section header string table index:", PADDING, hdr.section_name_table_idx())
-  ;
+     << fmt::format("{:<{}} {}\n", "Machine:", PADDING,
+                    to_string(hdr.machine_type()))
+     << fmt::format("{:<{}} {}\n", "Version:", PADDING,
+                    to_string(hdr.object_file_version()))
+     << fmt::format("{:<{}} {:#010x}\n", "Entry point address:", PADDING,
+                    hdr.entrypoint())
+     << fmt::format("{:<{}} {} (bytes into file)\n",
+                    "Start of program headers:", PADDING,
+                    hdr.program_headers_offset())
+     << fmt::format("{:<{}} {} (bytes into file)\n",
+                    "Start of section headers:", PADDING,
+                    hdr.section_headers_offset())
+     << fmt::format("{:<{}} {:#x} {}\n", "Flags:", PADDING, hdr.processor_flag(),
+                    fmt::to_string(fmt::join(flags_str, ", ")))
+     << fmt::format("{:<{}} {} (bytes)\n", "Size of this header:", PADDING,
+                    hdr.header_size())
+     << fmt::format("{:<{}} {} (bytes)\n", "Size of program headers:", PADDING,
+                    hdr.program_header_size())
+     << fmt::format("{:<{}} {}\n", "Number of program headers:", PADDING,
+                    hdr.numberof_segments())
+     << fmt::format("{:<{}} {} (bytes)\n", "Size of section headers:", PADDING,
+                    hdr.section_header_size())
+     << fmt::format("{:<{}} {}\n", "Number of section headers:", PADDING,
+                    hdr.numberof_sections())
+     << fmt::format("{:<{}} {}\n", "Section header string table index:", PADDING,
+                    hdr.section_name_table_idx());

   return os;
 }
@@ -331,33 +369,16 @@ const char* to_string(Header::ELF_DATA e) {
 }

 const char* to_string(Header::OS_ABI e) {
-  #define ENTRY(X) std::pair(Header::OS_ABI::X, #X)
-  STRING_MAP enums2str {
-    ENTRY(SYSTEMV),
-    ENTRY(HPUX),
-    ENTRY(NETBSD),
-    ENTRY(GNU),
-    ENTRY(LINUX),
-    ENTRY(HURD),
-    ENTRY(SOLARIS),
-    ENTRY(AIX),
-    ENTRY(IRIX),
-    ENTRY(FREEBSD),
-    ENTRY(TRU64),
-    ENTRY(MODESTO),
-    ENTRY(OPENBSD),
-    ENTRY(OPENVMS),
-    ENTRY(NSK),
-    ENTRY(AROS),
-    ENTRY(FENIXOS),
-    ENTRY(CLOUDABI),
-    ENTRY(C6000_ELFABI),
-    ENTRY(AMDGPU_HSA),
-    ENTRY(C6000_LINUX),
-    ENTRY(ARM),
-    ENTRY(STANDALONE),
+#define ENTRY(X) std::pair(Header::OS_ABI::X, #X)
+  STRING_MAP enums2str{
+      ENTRY(SYSTEMV),     ENTRY(HPUX),     ENTRY(NETBSD),       ENTRY(GNU),
+      ENTRY(LINUX),       ENTRY(HURD),     ENTRY(SOLARIS),      ENTRY(AIX),
+      ENTRY(IRIX),        ENTRY(FREEBSD),  ENTRY(TRU64),        ENTRY(MODESTO),
+      ENTRY(OPENBSD),     ENTRY(OPENVMS),  ENTRY(NSK),          ENTRY(AROS),
+      ENTRY(FENIXOS),     ENTRY(CLOUDABI), ENTRY(C6000_ELFABI), ENTRY(AMDGPU_HSA),
+      ENTRY(C6000_LINUX), ENTRY(ARM),      ENTRY(STANDALONE),
   };
-  #undef ENTRY
+#undef ENTRY

   if (auto it = enums2str.find(e); it != enums2str.end()) {
     return it->second;
@@ -367,4 +388,3 @@ const char* to_string(Header::OS_ABI e) {


 }
-}
diff --git a/deps/LIEF/src/ELF/Layout.cpp b/deps/LIEF/src/ELF/Layout.cpp
index 0c79088adc9..1482db917cf 100644
--- a/deps/LIEF/src/ELF/Layout.cpp
+++ b/deps/LIEF/src/ELF/Layout.cpp
@@ -1,4 +1,4 @@
-/* Copyright 2021 - 2025 R. Thomas
+/* Copyright 2021 - 2026 R. Thomas
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -20,8 +20,8 @@

 #include <LIEF/iostream.hpp>

-namespace LIEF {
-namespace ELF {
+
+namespace LIEF::ELF {

 bool Layout::is_strtab_shared_shstrtab() const {
   // Check if the .strtab is shared with the .shstrtab
@@ -43,7 +43,7 @@ bool Layout::is_strtab_shared_shstrtab() const {
 }

 size_t Layout::section_strtab_size() {
-  // could be moved in the class base.
+  // Could be moved into the base class.
   if (!raw_strtab_.empty()) {
     return raw_strtab_.size();
   }
@@ -62,9 +62,11 @@ size_t Layout::section_strtab_size() {
     return 0;
   }

-  std::vector<std::string> symstr_opt = optimize(binary_->symtab_symbols_,
-                      [] (const std::unique_ptr<Symbol>& sym) { return sym->name(); },
-                      offset_counter, &strtab_name_map_);
+  std::vector<std::string> symstr_opt = optimize(
+      binary_->symtab_symbols_,
+      [](const std::unique_ptr<Symbol>& sym) { return sym->name(); },
+      offset_counter, &strtab_name_map_
+  );

   for (const std::string& name : symstr_opt) {
     raw_strtab.write(name);
@@ -81,16 +83,14 @@ size_t Layout::section_shstr_size() {

   vector_iostream raw_shstrtab(should_swap());

-  // In the ELF format all the .str sections
+  // In the ELF format, all string table sections
   // start with a null entry.
   raw_shstrtab.write<uint8_t>(0);
   std::vector<std::string> sec_names;
   sec_names.reserve(binary_->sections_.size());
-  std::transform(std::begin(binary_->sections_), std::end(binary_->sections_),
+  std::transform(binary_->sections_.begin(), binary_->sections_.end(),
                  std::back_inserter(sec_names),
-                 [] (const std::unique_ptr<Section>& s) {
-                   return s->name();
-                 });
+                 [](const std::unique_ptr<Section>& s) { return s->name(); });

   if (!binary_->symtab_symbols_.empty()) {
     if (binary_->get(Section::TYPE::SYMTAB) == nullptr) {
@@ -114,8 +114,10 @@ size_t Layout::section_shstr_size() {

   // First write section names
   size_t offset_counter = raw_shstrtab.tellp();
-  std::vector<std::string> shstrtab_opt = optimize(sec_names, [] (const std::string& s) { return s; },
-                      offset_counter, &shstr_name_map_);
+  std::vector<std::string> shstrtab_opt = optimize(
+      sec_names, [](const std::string& s) { return s; }, offset_counter,
+      &shstr_name_map_
+  );

   for (const std::string& name : shstrtab_opt) {
     raw_shstrtab.write(name);
@@ -125,9 +127,11 @@ size_t Layout::section_shstr_size() {
   // in this case, include the symtab symbol names
   if (!binary_->symtab_symbols_.empty() && is_strtab_shared_shstrtab()) {
     offset_counter = raw_shstrtab.tellp();
-    std::vector<std::string> symstr_opt = optimize(binary_->symtab_symbols_,
-                       [] (const std::unique_ptr<Symbol>& sym) { return sym->name(); },
-                       offset_counter, &shstr_name_map_);
+    std::vector<std::string> symstr_opt = optimize(
+        binary_->symtab_symbols_,
+        [](const std::unique_ptr<Symbol>& sym) { return sym->name(); },
+        offset_counter, &shstr_name_map_
+    );
     for (const std::string& name : symstr_opt) {
       raw_shstrtab.write(name);
     }
@@ -138,4 +142,3 @@ size_t Layout::section_shstr_size() {
 }

 }
-}
diff --git a/deps/LIEF/src/ELF/Layout.hpp b/deps/LIEF/src/ELF/Layout.hpp
index ffb919770a8..f7fafa08a45 100644
--- a/deps/LIEF/src/ELF/Layout.hpp
+++ b/deps/LIEF/src/ELF/Layout.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2021 - 2025 R. Thomas
+/* Copyright 2021 - 2026 R. Thomas
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -21,8 +21,8 @@
 #include <vector>
 #include "LIEF/ELF/Builder.hpp"

-namespace LIEF {
-namespace ELF {
+
+namespace LIEF::ELF {
 class Section;
 class Binary;
 class Layout {
@@ -30,8 +30,7 @@ class Layout {
   Layout(Binary& bin, bool should_swap, const Builder::config_t& config) :
     binary_(&bin),
     should_swap_(should_swap),
-    config_(&config)
-  {}
+    config_(&config) {}

   virtual const std::unordered_map<std::string, size_t>& shstr_map() const {
     return shstr_name_map_;
@@ -83,5 +82,5 @@ class Layout {
   const Builder::config_t* config_ = nullptr;
 };
 }
-}
+
 #endif
diff --git a/deps/LIEF/src/ELF/Note.cpp b/deps/LIEF/src/ELF/Note.cpp
index 8632093f988..627aab90be1 100644
--- a/deps/LIEF/src/ELF/Note.cpp
+++ b/deps/LIEF/src/ELF/Note.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -37,14 +37,13 @@
 #include "logging.hpp"
 #include "internal_utils.hpp"

-#define IMPL_READ_AT(T) \
-  template result<T> Note::read_at(size_t) const;
+#define IMPL_READ_AT(T) template result<T> Note::read_at(size_t) const;

-#define IMPL_WRITE_AT(T) \
+#define IMPL_WRITE_AT(T)                                                          \
   template ok_error_t Note::write_at(size_t offset, const T& value);

-namespace LIEF {
-namespace ELF {
+
+namespace LIEF::ELF {

 static constexpr auto NT_CORE_NAME = "CORE";
 static constexpr auto NT_GNU_NAME = "GNU";
@@ -55,84 +54,84 @@ static constexpr auto NT_STAPSDT_NAME = "stapsdt";
 static constexpr auto NT_CRASHPAD_NAME = "Crashpad";
 static constexpr auto NT_QNX = "QNX";

-CONST_MAP_ALT GNU_TYPES {
-  std::pair(1,     Note::TYPE::GNU_ABI_TAG),
-  std::pair(2,     Note::TYPE::GNU_HWCAP),
-  std::pair(3,     Note::TYPE::GNU_BUILD_ID),
-  std::pair(4,     Note::TYPE::GNU_GOLD_VERSION),
-  std::pair(5,     Note::TYPE::GNU_PROPERTY_TYPE_0),
+CONST_MAP_ALT GNU_TYPES{
+    std::pair(1, Note::TYPE::GNU_ABI_TAG),
+    std::pair(2, Note::TYPE::GNU_HWCAP),
+    std::pair(3, Note::TYPE::GNU_BUILD_ID),
+    std::pair(4, Note::TYPE::GNU_GOLD_VERSION),
+    std::pair(5, Note::TYPE::GNU_PROPERTY_TYPE_0),
 };

-CONST_MAP_ALT GENERIC_TYPES {
-  std::pair(0x100, Note::TYPE::GNU_BUILD_ATTRIBUTE_OPEN),
-  std::pair(0x101, Note::TYPE::GNU_BUILD_ATTRIBUTE_FUNC),
+CONST_MAP_ALT GENERIC_TYPES{
+    std::pair(0x100, Note::TYPE::GNU_BUILD_ATTRIBUTE_OPEN),
+    std::pair(0x101, Note::TYPE::GNU_BUILD_ATTRIBUTE_FUNC),
 };

 /* Core note types. */
-CONST_MAP_ALT CORE_TYPES {
-  std::pair(1,          Note::TYPE::CORE_PRSTATUS),
-  std::pair(2,          Note::TYPE::CORE_FPREGSET),
-  std::pair(3,          Note::TYPE::CORE_PRPSINFO),
-  std::pair(4,          Note::TYPE::CORE_TASKSTRUCT),
-  std::pair(6,          Note::TYPE::CORE_AUXV),
-  std::pair(10,         Note::TYPE::CORE_PSTATUS),
-  std::pair(12,         Note::TYPE::CORE_FPREGS),
-  std::pair(13,         Note::TYPE::CORE_PSINFO),
-  std::pair(16,         Note::TYPE::CORE_LWPSTATUS),
-  std::pair(17,         Note::TYPE::CORE_LWPSINFO),
-  std::pair(18,         Note::TYPE::CORE_WIN32PSTATUS),
-  std::pair(0x53494749, Note::TYPE::CORE_SIGINFO),
-  std::pair(0x46e62b7f, Note::TYPE::CORE_PRXFPREG),
-  std::pair(0x46494c45, Note::TYPE::CORE_FILE),
+CONST_MAP_ALT CORE_TYPES{
+    std::pair(1, Note::TYPE::CORE_PRSTATUS),
+    std::pair(2, Note::TYPE::CORE_FPREGSET),
+    std::pair(3, Note::TYPE::CORE_PRPSINFO),
+    std::pair(4, Note::TYPE::CORE_TASKSTRUCT),
+    std::pair(6, Note::TYPE::CORE_AUXV),
+    std::pair(10, Note::TYPE::CORE_PSTATUS),
+    std::pair(12, Note::TYPE::CORE_FPREGS),
+    std::pair(13, Note::TYPE::CORE_PSINFO),
+    std::pair(16, Note::TYPE::CORE_LWPSTATUS),
+    std::pair(17, Note::TYPE::CORE_LWPSINFO),
+    std::pair(18, Note::TYPE::CORE_WIN32PSTATUS),
+    std::pair(0x53494749, Note::TYPE::CORE_SIGINFO),
+    std::pair(0x46e62b7f, Note::TYPE::CORE_PRXFPREG),
+    std::pair(0x46494c45, Note::TYPE::CORE_FILE),
 };

-CONST_MAP_ALT CORE_ARM_YPES {
-  std::pair(0x400,      Note::TYPE::CORE_ARM_VFP),
-  std::pair(0x401,      Note::TYPE::CORE_ARM_TLS),
-  std::pair(0x402,      Note::TYPE::CORE_ARM_HW_BREAK),
-  std::pair(0x403,      Note::TYPE::CORE_ARM_HW_WATCH),
-  std::pair(0x404,      Note::TYPE::CORE_ARM_SYSTEM_CALL),
-  std::pair(0x405,      Note::TYPE::CORE_ARM_SVE),
-  std::pair(0x406,      Note::TYPE::CORE_ARM_PAC_MASK),
-  std::pair(0x407,      Note::TYPE::CORE_ARM_PACA_KEYS),
-  std::pair(0x408,      Note::TYPE::CORE_ARM_PACG_KEYS),
-  std::pair(0x409,      Note::TYPE::CORE_TAGGED_ADDR_CTRL),
-  std::pair(0x40a,      Note::TYPE::CORE_PAC_ENABLED_KEYS),
+CONST_MAP_ALT CORE_ARM_YPES{
+    std::pair(0x400, Note::TYPE::CORE_ARM_VFP),
+    std::pair(0x401, Note::TYPE::CORE_ARM_TLS),
+    std::pair(0x402, Note::TYPE::CORE_ARM_HW_BREAK),
+    std::pair(0x403, Note::TYPE::CORE_ARM_HW_WATCH),
+    std::pair(0x404, Note::TYPE::CORE_ARM_SYSTEM_CALL),
+    std::pair(0x405, Note::TYPE::CORE_ARM_SVE),
+    std::pair(0x406, Note::TYPE::CORE_ARM_PAC_MASK),
+    std::pair(0x407, Note::TYPE::CORE_ARM_PACA_KEYS),
+    std::pair(0x408, Note::TYPE::CORE_ARM_PACG_KEYS),
+    std::pair(0x409, Note::TYPE::CORE_TAGGED_ADDR_CTRL),
+    std::pair(0x40a, Note::TYPE::CORE_PAC_ENABLED_KEYS),
 };

-CONST_MAP_ALT CORE_X86_TYPES {
-  std::pair(0x200,      Note::TYPE::CORE_X86_TLS),
-  std::pair(0x201,      Note::TYPE::CORE_X86_IOPERM),
-  std::pair(0x202,      Note::TYPE::CORE_X86_XSTATE),
-  std::pair(0x203,      Note::TYPE::CORE_X86_CET),
+CONST_MAP_ALT CORE_X86_TYPES{
+    std::pair(0x200, Note::TYPE::CORE_X86_TLS),
+    std::pair(0x201, Note::TYPE::CORE_X86_IOPERM),
+    std::pair(0x202, Note::TYPE::CORE_X86_XSTATE),
+    std::pair(0x203, Note::TYPE::CORE_X86_CET),
 };


 /* Android notes */
-CONST_MAP_ALT ANDROID_TYPES {
-  std::pair(1, Note::TYPE::ANDROID_IDENT),
-  std::pair(3, Note::TYPE::ANDROID_KUSER),
-  std::pair(4, Note::TYPE::ANDROID_MEMTAG),
+CONST_MAP_ALT ANDROID_TYPES{
+    std::pair(1, Note::TYPE::ANDROID_IDENT),
+    std::pair(3, Note::TYPE::ANDROID_KUSER),
+    std::pair(4, Note::TYPE::ANDROID_MEMTAG),
 };

 /* Go types. */
-CONST_MAP_ALT GO_TYPES {
-  std::pair(4, Note::TYPE::GO_BUILDID),
+CONST_MAP_ALT GO_TYPES{
+    std::pair(4, Note::TYPE::GO_BUILDID),
 };

 /* Stapsdt types. */
-CONST_MAP_ALT STAPSDT_TYPES {
-  std::pair(3, Note::TYPE::STAPSDT),
+CONST_MAP_ALT STAPSDT_TYPES{
+    std::pair(3, Note::TYPE::STAPSDT),
 };

 /* Crashpad types. */
-CONST_MAP_ALT CRASHPAD_TYPES {
-  std::pair(0x4f464e49, Note::TYPE::CRASHPAD),
+CONST_MAP_ALT CRASHPAD_TYPES{
+    std::pair(0x4f464e49, Note::TYPE::CRASHPAD),
 };

 /* Crashpad types. */
-CONST_MAP_ALT QNX_TYPES {
-  std::pair(3, Note::TYPE::QNX_STACK),
+CONST_MAP_ALT QNX_TYPES{
+    std::pair(3, Note::TYPE::QNX_STACK),
 };

 static inline std::string strip_zero(const std::string& name) {
@@ -140,20 +139,20 @@ static inline std::string strip_zero(const std::string& name) {
 }

 result<const char*> Note::type_to_section(TYPE type) {
-  CONST_MAP_ALT TYPE2SECTION {
-    std::pair(TYPE::GNU_ABI_TAG,              ".note.ABI-tag"),
-    std::pair(TYPE::GNU_HWCAP,                ".note.gnu.hwcap"),
-    std::pair(TYPE::GNU_BUILD_ID,             ".note.gnu.build-id"),
-    std::pair(TYPE::GNU_GOLD_VERSION,         ".note.gnu.gold-version"),
-    std::pair(TYPE::GNU_PROPERTY_TYPE_0,      ".note.gnu.property"),
-    std::pair(TYPE::GNU_BUILD_ATTRIBUTE_OPEN, ".gnu.build.attributes"),
-    std::pair(TYPE::GNU_BUILD_ATTRIBUTE_FUNC, ".gnu.build.attributes"),
-
-    std::pair(TYPE::STAPSDT,                  ".note.stapsdt"),
-    std::pair(TYPE::CRASHPAD,                 ".note.crashpad.info"),
-    std::pair(TYPE::ANDROID_IDENT,            ".note.android.ident"),
-    std::pair(TYPE::GO_BUILDID,               ".note.go.buildid"),
-    std::pair(TYPE::QNX_STACK,                ".note"),
+  CONST_MAP_ALT TYPE2SECTION{
+      std::pair(TYPE::GNU_ABI_TAG, ".note.ABI-tag"),
+      std::pair(TYPE::GNU_HWCAP, ".note.gnu.hwcap"),
+      std::pair(TYPE::GNU_BUILD_ID, ".note.gnu.build-id"),
+      std::pair(TYPE::GNU_GOLD_VERSION, ".note.gnu.gold-version"),
+      std::pair(TYPE::GNU_PROPERTY_TYPE_0, ".note.gnu.property"),
+      std::pair(TYPE::GNU_BUILD_ATTRIBUTE_OPEN, ".gnu.build.attributes"),
+      std::pair(TYPE::GNU_BUILD_ATTRIBUTE_FUNC, ".gnu.build.attributes"),
+
+      std::pair(TYPE::STAPSDT, ".note.stapsdt"),
+      std::pair(TYPE::CRASHPAD, ".note.crashpad.info"),
+      std::pair(TYPE::ANDROID_IDENT, ".note.android.ident"),
+      std::pair(TYPE::GO_BUILDID, ".note.go.buildid"),
+      std::pair(TYPE::QNX_STACK, ".note"),
   };

   if (auto it = TYPE2SECTION.find(type); it != TYPE2SECTION.end()) {
@@ -257,50 +256,49 @@ inline result<uint32_t> raw_type(const std::string& name, Note::TYPE type) {
 }


-
 result<const char*> Note::type_owner(Note::TYPE type) {
-  CONST_MAP_ALT TYPE2OWNER {
-    std::pair(TYPE::GNU_ABI_TAG           ,NT_GNU_NAME),
-    std::pair(TYPE::GNU_HWCAP             ,NT_GNU_NAME),
-    std::pair(TYPE::GNU_BUILD_ID          ,NT_GNU_NAME),
-    std::pair(TYPE::GNU_GOLD_VERSION      ,NT_GNU_NAME),
-    std::pair(TYPE::GNU_PROPERTY_TYPE_0   ,NT_GNU_NAME),
-    std::pair(TYPE::CORE_PRSTATUS         ,NT_CORE_NAME),
-    std::pair(TYPE::CORE_FPREGSET         ,NT_CORE_NAME),
-    std::pair(TYPE::CORE_PRPSINFO         ,NT_CORE_NAME),
-    std::pair(TYPE::CORE_TASKSTRUCT       ,NT_CORE_NAME),
-    std::pair(TYPE::CORE_AUXV             ,NT_CORE_NAME),
-    std::pair(TYPE::CORE_PSTATUS          ,NT_CORE_NAME),
-    std::pair(TYPE::CORE_FPREGS           ,NT_CORE_NAME),
-    std::pair(TYPE::CORE_PSINFO           ,NT_CORE_NAME),
-    std::pair(TYPE::CORE_LWPSTATUS        ,NT_CORE_NAME),
-    std::pair(TYPE::CORE_LWPSINFO         ,NT_CORE_NAME),
-    std::pair(TYPE::CORE_WIN32PSTATUS     ,NT_CORE_NAME),
-    std::pair(TYPE::CORE_FILE             ,NT_CORE_NAME),
-    std::pair(TYPE::CORE_PRXFPREG         ,NT_CORE_NAME),
-    std::pair(TYPE::CORE_SIGINFO          ,NT_CORE_NAME),
-    std::pair(TYPE::CORE_ARM_VFP          ,NT_LINUX_NAME),
-    std::pair(TYPE::CORE_ARM_TLS          ,NT_LINUX_NAME),
-    std::pair(TYPE::CORE_ARM_HW_BREAK     ,NT_LINUX_NAME),
-    std::pair(TYPE::CORE_ARM_HW_WATCH     ,NT_LINUX_NAME),
-    std::pair(TYPE::CORE_ARM_SYSTEM_CALL  ,NT_LINUX_NAME),
-    std::pair(TYPE::CORE_ARM_SVE          ,NT_LINUX_NAME),
-    std::pair(TYPE::CORE_ARM_PAC_MASK     ,NT_LINUX_NAME),
-    std::pair(TYPE::CORE_ARM_PACA_KEYS    ,NT_LINUX_NAME),
-    std::pair(TYPE::CORE_ARM_PACG_KEYS    ,NT_LINUX_NAME),
-    std::pair(TYPE::CORE_TAGGED_ADDR_CTRL ,NT_LINUX_NAME),
-    std::pair(TYPE::CORE_PAC_ENABLED_KEYS ,NT_LINUX_NAME),
-    std::pair(TYPE::CORE_X86_TLS          ,NT_LINUX_NAME),
-    std::pair(TYPE::CORE_X86_IOPERM       ,NT_LINUX_NAME),
-    std::pair(TYPE::CORE_X86_XSTATE       ,NT_LINUX_NAME),
-    std::pair(TYPE::CORE_X86_CET          ,NT_LINUX_NAME),
-    std::pair(TYPE::ANDROID_MEMTAG        ,NT_ANDROID_NAME),
-    std::pair(TYPE::ANDROID_KUSER         ,NT_ANDROID_NAME),
-    std::pair(TYPE::ANDROID_IDENT         ,NT_ANDROID_NAME),
-    std::pair(TYPE::GO_BUILDID            ,NT_GO_NAME),
-    std::pair(TYPE::STAPSDT               ,NT_STAPSDT_NAME),
-    std::pair(TYPE::CRASHPAD              ,NT_CRASHPAD_NAME),
-    std::pair(TYPE::QNX_STACK             ,NT_QNX),
+  CONST_MAP_ALT TYPE2OWNER{
+      std::pair(TYPE::GNU_ABI_TAG, NT_GNU_NAME),
+      std::pair(TYPE::GNU_HWCAP, NT_GNU_NAME),
+      std::pair(TYPE::GNU_BUILD_ID, NT_GNU_NAME),
+      std::pair(TYPE::GNU_GOLD_VERSION, NT_GNU_NAME),
+      std::pair(TYPE::GNU_PROPERTY_TYPE_0, NT_GNU_NAME),
+      std::pair(TYPE::CORE_PRSTATUS, NT_CORE_NAME),
+      std::pair(TYPE::CORE_FPREGSET, NT_CORE_NAME),
+      std::pair(TYPE::CORE_PRPSINFO, NT_CORE_NAME),
+      std::pair(TYPE::CORE_TASKSTRUCT, NT_CORE_NAME),
+      std::pair(TYPE::CORE_AUXV, NT_CORE_NAME),
+      std::pair(TYPE::CORE_PSTATUS, NT_CORE_NAME),
+      std::pair(TYPE::CORE_FPREGS, NT_CORE_NAME),
+      std::pair(TYPE::CORE_PSINFO, NT_CORE_NAME),
+      std::pair(TYPE::CORE_LWPSTATUS, NT_CORE_NAME),
+      std::pair(TYPE::CORE_LWPSINFO, NT_CORE_NAME),
+      std::pair(TYPE::CORE_WIN32PSTATUS, NT_CORE_NAME),
+      std::pair(TYPE::CORE_FILE, NT_CORE_NAME),
+      std::pair(TYPE::CORE_PRXFPREG, NT_CORE_NAME),
+      std::pair(TYPE::CORE_SIGINFO, NT_CORE_NAME),
+      std::pair(TYPE::CORE_ARM_VFP, NT_LINUX_NAME),
+      std::pair(TYPE::CORE_ARM_TLS, NT_LINUX_NAME),
+      std::pair(TYPE::CORE_ARM_HW_BREAK, NT_LINUX_NAME),
+      std::pair(TYPE::CORE_ARM_HW_WATCH, NT_LINUX_NAME),
+      std::pair(TYPE::CORE_ARM_SYSTEM_CALL, NT_LINUX_NAME),
+      std::pair(TYPE::CORE_ARM_SVE, NT_LINUX_NAME),
+      std::pair(TYPE::CORE_ARM_PAC_MASK, NT_LINUX_NAME),
+      std::pair(TYPE::CORE_ARM_PACA_KEYS, NT_LINUX_NAME),
+      std::pair(TYPE::CORE_ARM_PACG_KEYS, NT_LINUX_NAME),
+      std::pair(TYPE::CORE_TAGGED_ADDR_CTRL, NT_LINUX_NAME),
+      std::pair(TYPE::CORE_PAC_ENABLED_KEYS, NT_LINUX_NAME),
+      std::pair(TYPE::CORE_X86_TLS, NT_LINUX_NAME),
+      std::pair(TYPE::CORE_X86_IOPERM, NT_LINUX_NAME),
+      std::pair(TYPE::CORE_X86_XSTATE, NT_LINUX_NAME),
+      std::pair(TYPE::CORE_X86_CET, NT_LINUX_NAME),
+      std::pair(TYPE::ANDROID_MEMTAG, NT_ANDROID_NAME),
+      std::pair(TYPE::ANDROID_KUSER, NT_ANDROID_NAME),
+      std::pair(TYPE::ANDROID_IDENT, NT_ANDROID_NAME),
+      std::pair(TYPE::GO_BUILDID, NT_GO_NAME),
+      std::pair(TYPE::STAPSDT, NT_STAPSDT_NAME),
+      std::pair(TYPE::CRASHPAD, NT_CRASHPAD_NAME),
+      std::pair(TYPE::QNX_STACK, NT_QNX),
   };

   if (auto it = TYPE2OWNER.find(type); it != TYPE2OWNER.end()) {
@@ -311,8 +309,7 @@ result<const char*> Note::type_owner(Note::TYPE type) {


 result<Note::TYPE> Note::convert_type(Header::FILE_TYPE ftype, uint32_t type,
-                                      const std::string& name)
-{
+                                      const std::string& name) {
   std::string norm_name = strip_zero(name);

   if (ftype == Header::FILE_TYPE::CORE) {
@@ -371,7 +368,7 @@ result<Note::TYPE> Note::convert_type(Header::FILE_TYPE ftype, uint32_t type,
   }

   if (norm_name == NT_QNX) {
-    if (auto it = QNX_TYPES.find(type); it != CRASHPAD_TYPES.end()) {
+    if (auto it = QNX_TYPES.find(type); it != QNX_TYPES.end()) {
       return it->second;
     }
     return make_error_code(lief_errors::not_found);
@@ -385,10 +382,9 @@ result<Note::TYPE> Note::convert_type(Header::FILE_TYPE ftype, uint32_t type,
   return make_error_code(lief_errors::not_found);
 }

-std::unique_ptr<Note>
-Note::create(BinaryStream& stream, std::string section_name,
-             Header::FILE_TYPE ftype, ARCH arch, Header::CLASS cls)
-{
+std::unique_ptr<Note> Note::create(BinaryStream& stream, std::string section_name,
+                                   Header::FILE_TYPE ftype, ARCH arch,
+                                   Header::CLASS cls) {
   static constexpr uint32_t MAX_NOTE_DESCRIPTION = 1_MB;
   const size_t pos = stream.pos();
   auto res_namesz = stream.read<uint32_t>();
@@ -397,7 +393,7 @@ Note::create(BinaryStream& stream, std::string section_name,
   }

   const auto namesz = *res_namesz;
-  LIEF_DEBUG("[0x{:06x}] Name size: 0x{:x}", pos, namesz);
+  LIEF_DEBUG("[{:#08x}] Name size: {:#x}", pos, namesz);

   auto res_descz = stream.read<uint32_t>();
   if (!res_descz) {
@@ -405,7 +401,7 @@ Note::create(BinaryStream& stream, std::string section_name,
   }

   uint32_t descsz = std::min(*res_descz, MAX_NOTE_DESCRIPTION);
-  LIEF_DEBUG("Description size: 0x{:x}", descsz);
+  LIEF_DEBUG("Description size: {:#x}", descsz);

   auto res_type = stream.read<uint32_t>();
   if (!res_type) {
@@ -413,18 +409,25 @@ Note::create(BinaryStream& stream, std::string section_name,
   }

   uint32_t type = *res_type;
-  LIEF_DEBUG("Type: 0x{:x}", type);
+  LIEF_DEBUG("Type: {:#x}", type);

   if (namesz == 0) { // System reserves
     return nullptr;
   }
+
+  if (namesz > stream.size() - stream.pos()) {
+    LIEF_ERR("Note name size ({:#x}) is larger than the remaining stream", namesz);
+    return nullptr;
+  }
+
   std::vector<uint8_t> name_buffer(namesz, 0);
   if (!stream.read_data(name_buffer, namesz)) {
-    LIEF_ERR("Can't read note name");
+    LIEF_ERR("Failed to read note name");
     return nullptr;
   }

-  std::string name(reinterpret_cast<const char*>(name_buffer.data()), name_buffer.size());
+  std::string name(reinterpret_cast<const char*>(name_buffer.data()),
+                   name_buffer.size());
   LIEF_DEBUG("Name: {}", name);

   stream.align(sizeof(uint32_t));
@@ -445,45 +448,43 @@ Note::create(BinaryStream& stream, std::string section_name,
   std::vector<uint8_t> desc_bytes;
   if (!description.empty()) {
     const auto* start_ptr = reinterpret_cast<const uint8_t*>(description.data());
-    desc_bytes = {start_ptr,
-                  start_ptr + description.size() * sizeof(uint32_t)};
+    desc_bytes = {start_ptr, start_ptr + description.size() * sizeof(uint32_t)};
   }

-  return create(name, type, std::move(desc_bytes), std::move(section_name),
-                ftype, arch, cls);
+  return create(name, type, std::move(desc_bytes), std::move(section_name), ftype,
+                arch, cls);
 }

-std::unique_ptr<Note>
-Note::create(const std::string& name, Note::TYPE ntype, description_t description,
-             std::string section_name,
-             ARCH arch, Header::CLASS cls)
-{
+std::unique_ptr<Note> Note::create(const std::string& name, Note::TYPE ntype,
+                                   description_t description,
+                                   std::string section_name, ARCH arch,
+                                   Header::CLASS cls) {
   std::string owner;
   auto res_owner = type_owner(ntype);
   if (res_owner) {
     if (!name.empty() && strip_zero(name) != *res_owner) {
-      LIEF_WARN("The note owner of '{}' should be '{}' while '{}' is provided",
-                 to_string(ntype), *res_owner, name);
+      LIEF_WARN("Note owner for '{}' should be '{}' but '{}' was provided",
+                to_string(ntype), *res_owner, name);
     }
     owner = *res_owner;
   } else {
     if (!name.empty()) {
       owner = name;
     } else {
-      LIEF_ERR("Note owner name can't be resolved!");
+      LIEF_ERR("Failed to resolve note owner name");
       return nullptr;
     }
   }

   auto int_type = raw_type(owner, ntype);
   if (!int_type) {
-    LIEF_ERR("Can't determine the raw type of note '{}' for the owner '{}'",
+    LIEF_ERR("Failed to determine raw type for note '{}' with owner '{}'",
              to_string(ntype), owner);
     return nullptr;
   }
   std::string norm_name = owner;

-  // The name of these types have a special meaning
+  // The names of these types have a special meaning
   if (ntype != Note::TYPE::GNU_BUILD_ATTRIBUTE_FUNC &&
       ntype != Note::TYPE::GNU_BUILD_ATTRIBUTE_OPEN)
   {
@@ -491,127 +492,122 @@ Note::create(const std::string& name, Note::TYPE ntype, description_t descriptio
   }
   switch (ntype) {
     case Note::TYPE::CORE_PRSTATUS:
-      {
-        if (cls != Header::CLASS::ELF32 && cls != Header::CLASS::ELF64) {
-          LIEF_WARN("CORE_PRSTATUS requires a valid ELF class");
-          return nullptr;
-        }
-
-        if (arch == ARCH::NONE) {
-          LIEF_WARN("CORE_PRSTATUS requires a valid architecture");
-          return nullptr;
-        }
-        return std::unique_ptr<CorePrStatus>(new CorePrStatus(
-              arch, cls, std::move(norm_name), *int_type, std::move(description)
-        ));
+    {
+      if (cls != Header::CLASS::ELF32 && cls != Header::CLASS::ELF64) {
+        LIEF_WARN("CORE_PRSTATUS requires a valid ELF class");
+        return nullptr;
       }
+
+      if (arch == ARCH::NONE) {
+        LIEF_WARN("CORE_PRSTATUS requires a valid architecture");
+        return nullptr;
+      }
+      return std::make_unique<CorePrStatus>(arch, cls, std::move(norm_name),
+                                            *int_type, std::move(description));
+    }
     case Note::TYPE::CORE_PRPSINFO:
-      {
-        if (cls != Header::CLASS::ELF32 && cls != Header::CLASS::ELF64) {
-          LIEF_WARN("CORE_PRPSINFO requires a valid ELF class");
-          return nullptr;
-        }
-
-        if (arch == ARCH::NONE) {
-          LIEF_WARN("CORE_PRPSINFO requires a valid architecture");
-          return nullptr;
-        }
-        return std::unique_ptr<CorePrPsInfo>(new CorePrPsInfo(
-            arch, cls, std::move(norm_name), *int_type, std::move(description)
-        ));
+    {
+      if (cls != Header::CLASS::ELF32 && cls != Header::CLASS::ELF64) {
+        LIEF_WARN("CORE_PRPSINFO requires a valid ELF class");
+        return nullptr;
       }
+
+      if (arch == ARCH::NONE) {
+        LIEF_WARN("CORE_PRPSINFO requires a valid architecture");
+        return nullptr;
+      }
+      return std::make_unique<CorePrPsInfo>(arch, cls, std::move(norm_name),
+                                            *int_type, std::move(description));
+    }
     case Note::TYPE::CORE_FILE:
-      {
-        if (cls != Header::CLASS::ELF32 && cls != Header::CLASS::ELF64) {
-          LIEF_WARN("CORE_FILE requires a valid ELF class");
-          return nullptr;
-        }
-
-        if (arch == ARCH::NONE) {
-          LIEF_WARN("CORE_FILE requires a valid architecture");
-          return nullptr;
-        }
-        return std::unique_ptr<CoreFile>(new CoreFile(
-            arch, cls, std::move(norm_name), *int_type, std::move(description)
-        ));
+    {
+      if (cls != Header::CLASS::ELF32 && cls != Header::CLASS::ELF64) {
+        LIEF_WARN("CORE_FILE requires a valid ELF class");
+        return nullptr;
       }
+
+      if (arch == ARCH::NONE) {
+        LIEF_WARN("CORE_FILE requires a valid architecture");
+        return nullptr;
+      }
+      return std::make_unique<CoreFile>(arch, cls, std::move(norm_name), *int_type,
+                                        std::move(description));
+    }
     case Note::TYPE::CORE_AUXV:
-      {
-        if (cls != Header::CLASS::ELF32 && cls != Header::CLASS::ELF64) {
-          LIEF_WARN("CORE_AUXV requires a valid ELF class");
-          return nullptr;
-        }
-
-        if (arch == ARCH::NONE) {
-          LIEF_WARN("CORE_AUXV requires a valid architecture");
-          return nullptr;
-        }
-        return std::unique_ptr<CoreAuxv>(new CoreAuxv(
-            arch, cls, std::move(norm_name), *int_type, std::move(description)
-        ));
+    {
+      if (cls != Header::CLASS::ELF32 && cls != Header::CLASS::ELF64) {
+        LIEF_WARN("CORE_AUXV requires a valid ELF class");
+        return nullptr;
       }
-    case Note::TYPE::CORE_SIGINFO:
-      {
-        return std::unique_ptr<CoreSigInfo>(new CoreSigInfo(
-            std::move(norm_name), ntype, *int_type, std::move(description),
-            std::move(section_name)
-        ));
+
+      if (arch == ARCH::NONE) {
+        LIEF_WARN("CORE_AUXV requires a valid architecture");
+        return nullptr;
       }
+      return std::make_unique<CoreAuxv>(arch, cls, std::move(norm_name), *int_type,
+                                        std::move(description));
+    }
+    case Note::TYPE::CORE_SIGINFO:
+    {
+      return std::unique_ptr<CoreSigInfo>(
+          new CoreSigInfo(std::move(norm_name), ntype, *int_type,
+                          std::move(description), std::move(section_name))
+      );
+    }
     case Note::TYPE::GNU_PROPERTY_TYPE_0:
-      {
-        if (cls != Header::CLASS::ELF32 && cls != Header::CLASS::ELF64) {
-          LIEF_WARN("GNU_PROPERTY_TYPE_0 requires a valid ELF class");
-          return nullptr;
-        }
-
-        if (arch == ARCH::NONE) {
-          LIEF_WARN("GNU_PROPERTY_TYPE_0 requires a valid architecture");
-          return nullptr;
-        }
-        return std::unique_ptr<NoteGnuProperty>(new NoteGnuProperty(
-            arch, cls, std::move(norm_name), *int_type, std::move(description),
-            std::move(section_name)
-        ));
+    {
+      if (cls != Header::CLASS::ELF32 && cls != Header::CLASS::ELF64) {
+        LIEF_WARN("GNU_PROPERTY_TYPE_0 requires a valid ELF class");
+        return nullptr;
       }
+
+      if (arch == ARCH::NONE) {
+        LIEF_WARN("GNU_PROPERTY_TYPE_0 requires a valid architecture");
+        return nullptr;
+      }
+      return std::make_unique<NoteGnuProperty>(arch, cls, std::move(norm_name),
+                                               *int_type, std::move(description),
+                                               std::move(section_name));
+    }
     case Note::TYPE::ANDROID_IDENT:
-        return std::unique_ptr<AndroidIdent>(new AndroidIdent(
-            std::move(norm_name), ntype, *int_type, std::move(description),
-            std::move(section_name)
-        ));
+      return std::unique_ptr<AndroidIdent>(
+          new AndroidIdent(std::move(norm_name), ntype, *int_type,
+                           std::move(description), std::move(section_name))
+      );
     case Note::TYPE::QNX_STACK:
-        return std::unique_ptr<QNXStack>(new QNXStack(
-            std::move(norm_name), ntype, *int_type, std::move(description),
-            std::move(section_name)
-        ));
+      return std::unique_ptr<QNXStack>(
+          new QNXStack(std::move(norm_name), ntype, *int_type,
+                       std::move(description), std::move(section_name))
+      );
     case Note::TYPE::GNU_ABI_TAG:
-        return std::unique_ptr<NoteAbi>(new NoteAbi(
-            std::move(norm_name), ntype, *int_type, std::move(description),
-            std::move(section_name)
-        ));
+      return std::unique_ptr<NoteAbi>(
+          new NoteAbi(std::move(norm_name), ntype, *int_type,
+                      std::move(description), std::move(section_name))
+      );

     default:
-        return std::unique_ptr<Note>(new Note(
-            std::move(norm_name), ntype, *int_type, std::move(description),
-            std::move(section_name)
-        ));
+      return std::unique_ptr<Note>(new Note(std::move(norm_name), ntype, *int_type,
+                                            std::move(description),
+                                            std::move(section_name)));
   }
   return nullptr;
 }


-std::unique_ptr<Note>
-Note::create(const std::string& name, uint32_t type, description_t description,
-             std::string section_name,
-             Header::FILE_TYPE ftype, ARCH arch, Header::CLASS cls)
-{
+std::unique_ptr<Note> Note::create(const std::string& name, uint32_t type,
+                                   description_t description,
+                                   std::string section_name,
+                                   Header::FILE_TYPE ftype, ARCH arch,
+                                   Header::CLASS cls) {
   auto conv = Note::convert_type(ftype, type, name);
   if (!conv) {
-    LIEF_DEBUG("Note type: 0x{:x} is not supported for owner: '{}'", type, name);
+    LIEF_DEBUG("Unsupported note type {:#x} for owner '{}'", type, name);
     return std::unique_ptr<Note>(new Note(name, Note::TYPE::UNKNOWN, type,
-                                  std::move(description), std::move(section_name)));
+                                          std::move(description),
+                                          std::move(section_name)));
   }
-  return create(name, *conv, std::move(description),
-                std::move(section_name), arch, cls);
+  return create(name, *conv, std::move(description), std::move(section_name), arch,
+                cls);
 }


@@ -631,65 +627,64 @@ void Note::accept(Visitor& visitor) const {

 void Note::dump(std::ostream& os) const {
   std::string note_name = printable_string(name());
-  os << fmt::format("{}(0x{:04x}) '{}' [{}]",
-                    to_string(type()), original_type(), note_name,
-                    to_hex(description(), 10));
+  os << fmt::format("{}({:#06x}) '{}' [{}]", to_string(type()), original_type(),
+                    note_name, to_hex(description(), 10));
 }


 const char* to_string(Note::TYPE type) {
-  #define ENTRY(X) std::pair(Note::TYPE::X, #X)
-  STRING_MAP enums2str {
-    ENTRY(UNKNOWN),
-    ENTRY(GNU_ABI_TAG),
-    ENTRY(GNU_HWCAP),
-    ENTRY(GNU_ABI_TAG),
-    ENTRY(GNU_HWCAP),
-    ENTRY(GNU_BUILD_ID),
-    ENTRY(GNU_GOLD_VERSION),
-    ENTRY(GNU_PROPERTY_TYPE_0),
-    ENTRY(GNU_BUILD_ATTRIBUTE_OPEN),
-    ENTRY(GNU_BUILD_ATTRIBUTE_FUNC),
-    ENTRY(CRASHPAD),
-    ENTRY(CORE_PRSTATUS),
-    ENTRY(CORE_FPREGSET),
-    ENTRY(CORE_PRPSINFO),
-    ENTRY(CORE_TASKSTRUCT),
-    ENTRY(CORE_AUXV),
-    ENTRY(CORE_PSTATUS),
-    ENTRY(CORE_FPREGS),
-    ENTRY(CORE_PSINFO),
-    ENTRY(CORE_LWPSTATUS),
-    ENTRY(CORE_LWPSINFO),
-    ENTRY(CORE_WIN32PSTATUS),
-    ENTRY(CORE_FILE),
-    ENTRY(CORE_PRXFPREG),
-    ENTRY(CORE_SIGINFO),
-
-    ENTRY(CORE_ARM_VFP),
-    ENTRY(CORE_ARM_TLS),
-    ENTRY(CORE_ARM_HW_BREAK),
-    ENTRY(CORE_ARM_HW_WATCH),
-    ENTRY(CORE_ARM_SYSTEM_CALL),
-    ENTRY(CORE_ARM_SVE),
-    ENTRY(CORE_ARM_PAC_MASK),
-    ENTRY(CORE_ARM_PACA_KEYS),
-    ENTRY(CORE_ARM_PACG_KEYS),
-    ENTRY(CORE_TAGGED_ADDR_CTRL),
-    ENTRY(CORE_PAC_ENABLED_KEYS),
-    ENTRY(CORE_X86_TLS),
-    ENTRY(CORE_X86_IOPERM),
-    ENTRY(CORE_X86_XSTATE),
-    ENTRY(CORE_X86_CET),
-
-    ENTRY(ANDROID_MEMTAG),
-    ENTRY(ANDROID_KUSER),
-    ENTRY(ANDROID_IDENT),
-    ENTRY(STAPSDT),
-    ENTRY(GO_BUILDID),
-    ENTRY(QNX_STACK),
+#define ENTRY(X) std::pair(Note::TYPE::X, #X)
+  STRING_MAP enums2str{
+      ENTRY(UNKNOWN),
+      ENTRY(GNU_ABI_TAG),
+      ENTRY(GNU_HWCAP),
+      ENTRY(GNU_ABI_TAG),
+      ENTRY(GNU_HWCAP),
+      ENTRY(GNU_BUILD_ID),
+      ENTRY(GNU_GOLD_VERSION),
+      ENTRY(GNU_PROPERTY_TYPE_0),
+      ENTRY(GNU_BUILD_ATTRIBUTE_OPEN),
+      ENTRY(GNU_BUILD_ATTRIBUTE_FUNC),
+      ENTRY(CRASHPAD),
+      ENTRY(CORE_PRSTATUS),
+      ENTRY(CORE_FPREGSET),
+      ENTRY(CORE_PRPSINFO),
+      ENTRY(CORE_TASKSTRUCT),
+      ENTRY(CORE_AUXV),
+      ENTRY(CORE_PSTATUS),
+      ENTRY(CORE_FPREGS),
+      ENTRY(CORE_PSINFO),
+      ENTRY(CORE_LWPSTATUS),
+      ENTRY(CORE_LWPSINFO),
+      ENTRY(CORE_WIN32PSTATUS),
+      ENTRY(CORE_FILE),
+      ENTRY(CORE_PRXFPREG),
+      ENTRY(CORE_SIGINFO),
+
+      ENTRY(CORE_ARM_VFP),
+      ENTRY(CORE_ARM_TLS),
+      ENTRY(CORE_ARM_HW_BREAK),
+      ENTRY(CORE_ARM_HW_WATCH),
+      ENTRY(CORE_ARM_SYSTEM_CALL),
+      ENTRY(CORE_ARM_SVE),
+      ENTRY(CORE_ARM_PAC_MASK),
+      ENTRY(CORE_ARM_PACA_KEYS),
+      ENTRY(CORE_ARM_PACG_KEYS),
+      ENTRY(CORE_TAGGED_ADDR_CTRL),
+      ENTRY(CORE_PAC_ENABLED_KEYS),
+      ENTRY(CORE_X86_TLS),
+      ENTRY(CORE_X86_IOPERM),
+      ENTRY(CORE_X86_XSTATE),
+      ENTRY(CORE_X86_CET),
+
+      ENTRY(ANDROID_MEMTAG),
+      ENTRY(ANDROID_KUSER),
+      ENTRY(ANDROID_IDENT),
+      ENTRY(STAPSDT),
+      ENTRY(GO_BUILDID),
+      ENTRY(QNX_STACK),
   };
-  #undef ENTRY
+#undef ENTRY

   if (auto it = enums2str.find(type); it != enums2str.end()) {
     return it->second;
@@ -764,5 +759,4 @@ IMPL_WRITE_AT(int32_t)
 IMPL_WRITE_AT(uint64_t)
 IMPL_WRITE_AT(int64_t)

-} // namespace ELF
-} // namespace LIEF
+} // namespace LIEF::ELF
diff --git a/deps/LIEF/src/ELF/NoteDetails/AndroidIdent.cpp b/deps/LIEF/src/ELF/NoteDetails/AndroidIdent.cpp
index 73cc484ddf7..f8a8b38750e 100644
--- a/deps/LIEF/src/ELF/NoteDetails/AndroidIdent.cpp
+++ b/deps/LIEF/src/ELF/NoteDetails/AndroidIdent.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -18,12 +18,13 @@

 #include <spdlog/fmt/fmt.h>

-namespace LIEF {
-namespace ELF {
+
+namespace LIEF::ELF {

 static constexpr auto sdk_version_offset = 0;
 static constexpr auto ndk_version_offset = sizeof(uint32_t);
-static constexpr auto ndk_build_number_offset = ndk_version_offset + AndroidIdent::ndk_version_size;
+static constexpr auto ndk_build_number_offset =
+    ndk_version_offset + AndroidIdent::ndk_version_size;

 uint32_t AndroidIdent::sdk_version() const {
   auto val = read_at<uint32_t>(sdk_version_offset);
@@ -72,10 +73,8 @@ void AndroidIdent::accept(Visitor& visitor) const {
 void AndroidIdent::dump(std::ostream& os) const {
   Note::dump(os);
   os << '\n';
-  os << fmt::format("SDK: {} NDK: {} NDK Build: {}",
-      sdk_version(), ndk_version(), ndk_build_number()
-  );
+  os << fmt::format("SDK: {} NDK: {} NDK Build: {}", sdk_version(), ndk_version(),
+                    ndk_build_number());
 }

-} // namespace ELF
-} // namespace LIEF
+} // namespace LIEF::ELF
diff --git a/deps/LIEF/src/ELF/NoteDetails/NoteAbi.cpp b/deps/LIEF/src/ELF/NoteDetails/NoteAbi.cpp
index 97bfe4568a7..3a4118cec52 100644
--- a/deps/LIEF/src/ELF/NoteDetails/NoteAbi.cpp
+++ b/deps/LIEF/src/ELF/NoteDetails/NoteAbi.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -22,11 +22,11 @@

 #include "spdlog/fmt/fmt.h"

-namespace LIEF {
-namespace ELF {
+
+namespace LIEF::ELF {

 result<NoteAbi::version_t> NoteAbi::version() const {
-  NoteAbi::version_t version;
+  version_t version;
   for (size_t i = 0; i < version.size(); ++i) {
     auto res = read_at<uint32_t>(version_offset + i * sizeof(uint32_t));
     if (!res) {
@@ -64,32 +64,24 @@ void NoteAbi::dump(std::ostream& os) const {
   os << '\n';
   auto version_res = version().value_or(version_t({0, 0, 0}));
   auto abi_res = to_string_or(abi(), "???");
-  os << fmt::format("   {}.{}.{} '{}'",
-    version_res[0], version_res[1], version_res[2], abi_res
-  );
+  os << fmt::format("   {}.{}.{} '{}'", version_res[0], version_res[1],
+                    version_res[2], abi_res);
 }


 const char* to_string(NoteAbi::ABI abi) {
-  #define ENTRY(X) std::pair(NoteAbi::ABI::X, #X)
-  STRING_MAP enums2str {
-    ENTRY(LINUX),
-    ENTRY(GNU),
-    ENTRY(SOLARIS2),
-    ENTRY(FREEBSD),
-    ENTRY(NETBSD),
-    ENTRY(SYLLABLE),
-    ENTRY(NACL),
+#define ENTRY(X) std::pair(NoteAbi::ABI::X, #X)
+  STRING_MAP enums2str{
+      ENTRY(LINUX),  ENTRY(GNU),      ENTRY(SOLARIS2), ENTRY(FREEBSD),
+      ENTRY(NETBSD), ENTRY(SYLLABLE), ENTRY(NACL),
   };
-  #undef ENTRY
+#undef ENTRY

   if (auto it = enums2str.find(abi); it != enums2str.end()) {
     return it->second;
   }

   return "UNKNOWN";
-
 }

-} // namespace ELF
-} // namespace LIEF
+} // namespace LIEF::ELF
diff --git a/deps/LIEF/src/ELF/NoteDetails/NoteGnuProperty.cpp b/deps/LIEF/src/ELF/NoteDetails/NoteGnuProperty.cpp
index f3ea5c5660b..85a959c344f 100644
--- a/deps/LIEF/src/ELF/NoteDetails/NoteGnuProperty.cpp
+++ b/deps/LIEF/src/ELF/NoteDetails/NoteGnuProperty.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -30,25 +30,26 @@
 #include "LIEF/ELF/NoteDetails/properties/StackSize.hpp"
 #include "LIEF/ELF/NoteDetails/properties/X86Feature.hpp"
 #include "LIEF/ELF/NoteDetails/properties/X86ISA.hpp"
+#include "LIEF/ELF/NoteDetails/properties/Needed.hpp"
 #include "LIEF/ELF/NoteDetails/properties/NoteNoCopyOnProtected.hpp"

 #include "LIEF/BinaryStream/SpanStream.hpp"

-namespace LIEF {
-namespace ELF {
+
+namespace LIEF::ELF {

 inline std::unique_ptr<NoteGnuProperty::Property>
-parse_property(ARCH arch, SpanStream& stream) {
+    parse_property(ARCH arch, SpanStream& stream) {

   auto res_type = stream.read<uint32_t>();
   if (!res_type) {
-    LIEF_DEBUG("Can't read type at offset: 0x{:04x}", stream.pos());
+    LIEF_DEBUG("Failed to read type at offset {:#06x}", stream.pos());
     return nullptr;
   }

   auto data_size = stream.read<uint32_t>();
   if (!data_size) {
-    LIEF_DEBUG("Can't read data size at offset: 0x{:04x}", stream.pos());
+    LIEF_DEBUG("Failed to read data size at offset {:#06x}", stream.pos());
     return nullptr;
   }

@@ -61,10 +62,7 @@ parse_property(ARCH arch, SpanStream& stream) {
   SpanStream content = std::move(*res_content);
   const uint32_t type = *res_type;
   if (GNU_PROPERTY_LOPROC <= type && type <= GNU_PROPERTY_HIPROC) {
-    if (arch == ARCH::X86_64 ||
-        arch == ARCH::IAMCU ||
-        arch == ARCH::I386)
-    {
+    if (arch == ARCH::X86_64 || arch == ARCH::IAMCU || arch == ARCH::I386) {
       switch (type) {
         case GNU_PROPERTY_X86_ISA_1_USED:
         case GNU_PROPERTY_X86_ISA_1_NEEDED:
@@ -95,38 +93,37 @@ parse_property(ARCH arch, SpanStream& stream) {

   switch (type) {
     case GNU_PROPERTY_STACK_SIZE:
-      {
-        const size_t csize = content.size();
-        if (csize == sizeof(uint64_t)) {
-          return StackSize::create(content.read<uint64_t>().value_or(0));
-        }
-        if (csize == sizeof(uint32_t)) {
-          return StackSize::create(content.read<uint32_t>().value_or(0));
-        }
-        if (csize == sizeof(uint16_t)) {
-          return StackSize::create(content.read<uint16_t>().value_or(0));
-        }
-        if (csize == sizeof(uint8_t)) {
-          return StackSize::create(content.read<uint8_t>().value_or(0));
-        }
-        LIEF_ERR("Wrong stack size: {}", csize);
-        return StackSize::create(0);
+    {
+      const size_t csize = content.size();
+      if (csize == sizeof(uint64_t)) {
+        return StackSize::create(content.read<uint64_t>().value_or(0));
       }
+      if (csize == sizeof(uint32_t)) {
+        return StackSize::create(content.read<uint32_t>().value_or(0));
+      }
+      if (csize == sizeof(uint16_t)) {
+        return StackSize::create(content.read<uint16_t>().value_or(0));
+      }
+      if (csize == sizeof(uint8_t)) {
+        return StackSize::create(content.read<uint8_t>().value_or(0));
+      }
+      LIEF_ERR("Invalid stack size: {}", csize);
+      return StackSize::create(0);
+    }
     case GNU_PROPERTY_NO_COPY_ON_PROTECTED: return NoteNoCopyOnProtected::create();
     default:
+    {
+      if ((GNU_PROPERTY_UINT32_AND_LO <= type &&
+           type <= GNU_PROPERTY_UINT32_AND_HI) ||
+          (GNU_PROPERTY_UINT32_OR_LO <= type && type <= GNU_PROPERTY_UINT32_OR_HI))
       {
-        if (
-          (GNU_PROPERTY_UINT32_AND_LO <= type && type <= GNU_PROPERTY_UINT32_AND_HI) ||
-          (GNU_PROPERTY_UINT32_OR_LO  <= type && type <= GNU_PROPERTY_UINT32_OR_HI)
-        )
-        {
-          switch (type) {
-            case GNU_PROPERTY_1_NEEDED: /* TODO(romain) */ return Generic::create(type);
-            default: return Generic::create(type);
-          }
-
+        // NOLINTNEXTLINE(bugprone-unhandled-code-paths)
+        switch (type) {
+          case GNU_PROPERTY_1_NEEDED: return Needed::create(content);
+          default: return Generic::create(type);
         }
       }
+    }
   }
   return Generic::create(type);
 }
@@ -134,7 +131,7 @@ parse_property(ARCH arch, SpanStream& stream) {
 NoteGnuProperty::properties_t NoteGnuProperty::properties() const {
   auto stream = SpanStream::from_vector(description_);
   if (!stream) {
-    LIEF_WARN("Can't create stream");
+    LIEF_WARN("Failed to create stream");
     return {};
   }
   const bool is64 = arch_ == ARCH::IA_64 || arch_ == ARCH::AARCH64 ||
@@ -155,13 +152,12 @@ NoteGnuProperty::properties_t NoteGnuProperty::properties() const {


 std::unique_ptr<NoteGnuProperty::Property>
-NoteGnuProperty::find(Property::TYPE type) const {
+    NoteGnuProperty::find(Property::TYPE type) const {
   properties_t props = properties();
   auto it = std::find_if(props.begin(), props.end(),
-      [type] (const std::unique_ptr<Property>& prop) {
-        return prop->type() == type;
-      }
-  );
+                         [type](const std::unique_ptr<Property>& prop) {
+                           return prop->type() == type;
+                         });

   if (it != props.end()) {
     return std::move(*it);
@@ -183,19 +179,13 @@ void NoteGnuProperty::accept(Visitor& visitor) const {
 }

 const char* to_string(NoteGnuProperty::Property::TYPE type) {
-  #define ENTRY(X) std::pair(NoteGnuProperty::Property::TYPE::X, #X)
-  STRING_MAP enums2str {
-    ENTRY(UNKNOWN),
-    ENTRY(GENERIC),
-    ENTRY(AARCH64_FEATURES),
-    ENTRY(AARCH64_PAUTH),
-    ENTRY(STACK_SIZE),
-    ENTRY(NO_COPY_ON_PROTECTED),
-    ENTRY(X86_ISA),
-    ENTRY(X86_FEATURE),
-    ENTRY(NEEDED),
+#define ENTRY(X) std::pair(NoteGnuProperty::Property::TYPE::X, #X)
+  STRING_MAP enums2str{
+      ENTRY(UNKNOWN),       ENTRY(GENERIC),     ENTRY(AARCH64_FEATURES),
+      ENTRY(AARCH64_PAUTH), ENTRY(STACK_SIZE),  ENTRY(NO_COPY_ON_PROTECTED),
+      ENTRY(X86_ISA),       ENTRY(X86_FEATURE), ENTRY(NEEDED),
   };
-  #undef ENTRY
+#undef ENTRY

   if (auto it = enums2str.find(type); it != enums2str.end()) {
     return it->second;
@@ -208,5 +198,4 @@ void NoteGnuProperty::Property::dump(std::ostream& os) const {
   os << to_string(this->type());
 }

-} // namespace ELF
-} // namespace LIEF
+} // namespace LIEF::ELF
diff --git a/deps/LIEF/src/ELF/NoteDetails/QNXStack.cpp b/deps/LIEF/src/ELF/NoteDetails/QNXStack.cpp
index 26fc6d8b10f..b49241548bb 100644
--- a/deps/LIEF/src/ELF/NoteDetails/QNXStack.cpp
+++ b/deps/LIEF/src/ELF/NoteDetails/QNXStack.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -18,12 +18,13 @@

 #include <spdlog/fmt/fmt.h>

-namespace LIEF {
-namespace ELF {
+
+namespace LIEF::ELF {

 static constexpr auto stack_size_offset = 0;
 static constexpr auto stack_allocated_offset = sizeof(uint32_t);
-static constexpr auto is_stack_exec_offset = stack_allocated_offset + sizeof(uint32_t);
+static constexpr auto is_stack_exec_offset =
+    stack_allocated_offset + sizeof(uint32_t);

 uint32_t QNXStack::stack_size() const {
   return read_at<uint32_t>(stack_size_offset).value_or(0);
@@ -55,10 +56,9 @@ void QNXStack::accept(Visitor& visitor) const {
 void QNXStack::dump(std::ostream& os) const {
   Note::dump(os);
   os << '\n';
-  os << fmt::format("  Stack Size:      0x{:x}\n", stack_size())
-     << fmt::format("  Stack allocated: 0x{:x}\n", stack_allocated())
+  os << fmt::format("  Stack Size:      {:#x}\n", stack_size())
+     << fmt::format("  Stack allocated: {:#x}\n", stack_allocated())
      << fmt::format("  Executable:      {}\n", is_executable());
 }

-} // namespace ELF
-} // namespace LIEF
+} // namespace LIEF::ELF
diff --git a/deps/LIEF/src/ELF/NoteDetails/core/CoreAuxv.cpp b/deps/LIEF/src/ELF/NoteDetails/core/CoreAuxv.cpp
index c1044233e2b..aad437abf27 100644
--- a/deps/LIEF/src/ELF/NoteDetails/core/CoreAuxv.cpp
+++ b/deps/LIEF/src/ELF/NoteDetails/core/CoreAuxv.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -25,12 +25,13 @@
 #include "spdlog/fmt/fmt.h"
 #include "ELF/Structures.hpp"

-namespace LIEF {
-namespace ELF {

-template<class ELF_T> inline result<uint64_t>
-get_impl(CoreAuxv::TYPE type, const Note::description_t& desc) {
-  using Elf_Auxv  = typename ELF_T::Elf_Auxv;
+namespace LIEF::ELF {
+
+template<class ELF_T>
+inline result<uint64_t> get_impl(CoreAuxv::TYPE type,
+                                 const Note::description_t& desc) {
+  using Elf_Auxv = typename ELF_T::Elf_Auxv;
   auto stream = SpanStream::from_vector(desc);
   if (!stream) {
     return make_error_code(get_error(stream));
@@ -52,9 +53,10 @@ get_impl(CoreAuxv::TYPE type, const Note::description_t& desc) {
   return make_error_code(lief_errors::not_found);
 }

-template<class ELF_T> inline std::map<CoreAuxv::TYPE, uint64_t>
-get_values_impl(const Note::description_t& desc) {
-  using Elf_Auxv  = typename ELF_T::Elf_Auxv;
+template<class ELF_T>
+inline std::map<CoreAuxv::TYPE, uint64_t>
+    get_values_impl(const Note::description_t& desc) {
+  using Elf_Auxv = typename ELF_T::Elf_Auxv;
   auto stream = SpanStream::from_vector(desc);
   if (!stream) {
     return {};
@@ -79,10 +81,9 @@ get_values_impl(const Note::description_t& desc) {

 template<class ELF_T>
 inline bool write_impl(Note::description_t& description,
-                       const std::map<CoreAuxv::TYPE, uint64_t>& values)
-{
-  using Elf_Auxv  = typename ELF_T::Elf_Auxv;
-  using ptr_t     = typename ELF_T::uint;
+                       const std::map<CoreAuxv::TYPE, uint64_t>& values) {
+  using Elf_Auxv = typename ELF_T::Elf_Auxv;
+  using ptr_t = typename ELF_T::uint;
   vector_iostream io;
   io.reserve(values.size() * sizeof(Elf_Auxv));

@@ -91,11 +92,9 @@ inline bool write_impl(Note::description_t& description,
     if (type == CoreAuxv::TYPE::END) {
       continue;
     }
-    io.write(static_cast<ptr_t>(type))
-      .write(static_cast<ptr_t>(value));
+    io.write(static_cast<ptr_t>(type)).write(static_cast<ptr_t>(value));
   }
-  io.write(static_cast<ptr_t>(CoreAuxv::TYPE::END))
-    .write(static_cast<ptr_t>(0));
+  io.write(static_cast<ptr_t>(CoreAuxv::TYPE::END)).write(static_cast<ptr_t>(0));

   io.move(description);
   return true;
@@ -104,14 +103,14 @@ inline bool write_impl(Note::description_t& description,

 result<uint64_t> CoreAuxv::get(TYPE type) const {
   return class_ == Header::CLASS::ELF32 ?
-                   get_impl<details::ELF32>(type, description_) :
-                   get_impl<details::ELF64>(type, description_);
+             get_impl<details::ELF32>(type, description_) :
+             get_impl<details::ELF64>(type, description_);
 }

 std::map<CoreAuxv::TYPE, uint64_t> CoreAuxv::values() const {
   return class_ == Header::CLASS::ELF32 ?
-                   get_values_impl<details::ELF32>(description_) :
-                   get_values_impl<details::ELF64>(description_);
+             get_values_impl<details::ELF32>(description_) :
+             get_values_impl<details::ELF64>(description_);
 }


@@ -123,8 +122,8 @@ bool CoreAuxv::set(TYPE type, uint64_t value) {

 bool CoreAuxv::set(const std::map<TYPE, uint64_t>& values) {
   return class_ == Header::CLASS::ELF32 ?
-                   write_impl<details::ELF32>(description_, values) :
-                   write_impl<details::ELF64>(description_, values);
+             write_impl<details::ELF32>(description_, values) :
+             write_impl<details::ELF64>(description_, values);
 }

 void CoreAuxv::dump(std::ostream& os) const {
@@ -137,7 +136,7 @@ void CoreAuxv::dump(std::ostream& os) const {

   os << '\n';
   for (const auto& [type, val] : aux_vals) {
-    os << fmt::format("  {}: 0x{:08x}\n", to_string(type), val);
+    os << fmt::format("  {}: {:#010x}\n", to_string(type), val);
   }
 }

@@ -146,40 +145,20 @@ void CoreAuxv::accept(Visitor& visitor) const {
 }

 const char* to_string(CoreAuxv::TYPE type) {
-  #define ENTRY(X) std::pair(CoreAuxv::TYPE::X, #X)
-  STRING_MAP enums2str {
-    ENTRY(END),
-    ENTRY(IGNORE_TY),
-    ENTRY(EXECFD),
-    ENTRY(PHDR),
-    ENTRY(PHENT),
-    ENTRY(PHNUM),
-    ENTRY(PAGESZ),
-    ENTRY(BASE),
-    ENTRY(FLAGS),
-    ENTRY(ENTRY),
-    ENTRY(NOTELF),
-    ENTRY(UID),
-    ENTRY(EUID),
-    ENTRY(GID),
-    ENTRY(EGID),
-    ENTRY(TGT_PLATFORM),
-    ENTRY(HWCAP),
-    ENTRY(CLKTCK),
-    ENTRY(FPUCW),
-    ENTRY(DCACHEBSIZE),
-    ENTRY(ICACHEBSIZE),
-    ENTRY(UCACHEBSIZE),
-    ENTRY(IGNOREPPC),
-    ENTRY(SECURE),
-    ENTRY(BASE_PLATFORM),
-    ENTRY(RANDOM),
-    ENTRY(HWCAP2),
-    ENTRY(EXECFN),
-    ENTRY(SYSINFO),
-    ENTRY(SYSINFO_EHDR),
+#define ENTRY(X) std::pair(CoreAuxv::TYPE::X, #X)
+  STRING_MAP enums2str{
+      ENTRY(END),           ENTRY(IGNORE_TY),   ENTRY(EXECFD),
+      ENTRY(PHDR),          ENTRY(PHENT),       ENTRY(PHNUM),
+      ENTRY(PAGESZ),        ENTRY(BASE),        ENTRY(FLAGS),
+      ENTRY(ENTRY),         ENTRY(NOTELF),      ENTRY(UID),
+      ENTRY(EUID),          ENTRY(GID),         ENTRY(EGID),
+      ENTRY(TGT_PLATFORM),  ENTRY(HWCAP),       ENTRY(CLKTCK),
+      ENTRY(FPUCW),         ENTRY(DCACHEBSIZE), ENTRY(ICACHEBSIZE),
+      ENTRY(UCACHEBSIZE),   ENTRY(IGNOREPPC),   ENTRY(SECURE),
+      ENTRY(BASE_PLATFORM), ENTRY(RANDOM),      ENTRY(HWCAP2),
+      ENTRY(EXECFN),        ENTRY(SYSINFO),     ENTRY(SYSINFO_EHDR),
   };
-  #undef ENTRY
+#undef ENTRY

   if (auto it = enums2str.find(type); it != enums2str.end()) {
     return it->second;
@@ -188,5 +167,4 @@ const char* to_string(CoreAuxv::TYPE type) {
   return "UNKNOWN";
 }

-} // namespace ELF
-} // namespace LIEF
+} // namespace LIEF::ELF
diff --git a/deps/LIEF/src/ELF/NoteDetails/core/CoreFile.cpp b/deps/LIEF/src/ELF/NoteDetails/core/CoreFile.cpp
index b844d4c300e..8563625a079 100644
--- a/deps/LIEF/src/ELF/NoteDetails/core/CoreFile.cpp
+++ b/deps/LIEF/src/ELF/NoteDetails/core/CoreFile.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -21,13 +21,13 @@
 #include "ELF/Structures.hpp"
 #include "LIEF/iostream.hpp"

-namespace LIEF {
-namespace ELF {
+
+namespace LIEF::ELF {

 template<class ELF_T>
 void CoreFile::read_files() {
   static constexpr auto MAX_ENTRIES = 6000;
-  using Elf_Addr      = typename ELF_T::Elf_Addr;
+  using Elf_Addr = typename ELF_T::Elf_Addr;
   using Elf_FileEntry = typename ELF_T::Elf_FileEntry;

   auto stream = SpanStream::from_vector(description_);
@@ -41,7 +41,7 @@ void CoreFile::read_files() {
   }

   if (*count > MAX_ENTRIES) {
-    LIEF_ERR("Too many entries ({} while limited at {})", *count, MAX_ENTRIES);
+    LIEF_ERR("Too many entries ({}, limit {})", *count, MAX_ENTRIES);
     return;
   }

@@ -52,26 +52,26 @@ void CoreFile::read_files() {

   page_size_ = *page_size;
   files_.resize(*count);
-  for (size_t i = 0; i < files_.size(); ++i) {
+  for (entry_t& file : files_) {
     auto entry = stream->read<Elf_FileEntry>();
     if (!entry) {
       break;
     }
-    files_[i] = {entry->start, entry->end, entry->file_ofs, ""};
+    file = {entry->start, entry->end, entry->file_ofs, ""};
   }

-  for (size_t i = 0; i < files_.size(); ++i) {
+  for (entry_t& file : files_) {
     auto path = stream->read_string();
     if (!path) {
       break;
     }
-    files_[i].path = std::move(*path);
+    file.path = std::move(*path);
   }
 }

 template<class ELF_T>
 void CoreFile::write_files() {
-  using Elf_Addr      = typename ELF_T::Elf_Addr;
+  using Elf_Addr = typename ELF_T::Elf_Addr;
   using Elf_FileEntry = typename ELF_T::Elf_FileEntry;

   vector_iostream ios;
@@ -81,8 +81,8 @@ void CoreFile::write_files() {
     Elf_FileEntry raw_entry;
     std::memset(&raw_entry, 0, sizeof(Elf_FileEntry));

-    raw_entry.start    = static_cast<Elf_Addr>(entry.start);
-    raw_entry.end      = static_cast<Elf_Addr>(entry.end);
+    raw_entry.start = static_cast<Elf_Addr>(entry.start);
+    raw_entry.end = static_cast<Elf_Addr>(entry.end);
     raw_entry.file_ofs = static_cast<Elf_Addr>(entry.file_ofs);
     ios.write(raw_entry);
   }
@@ -93,11 +93,11 @@ void CoreFile::write_files() {
   ios.move(description_);
 }

-CoreFile::CoreFile(ARCH arch, Header::CLASS cls, std::string name,
-                   uint32_t type, Note::description_t description) :
+CoreFile::CoreFile(ARCH arch, Header::CLASS cls, std::string name, uint32_t type,
+                   Note::description_t description) :
   Note(std::move(name), Note::TYPE::CORE_FILE, type, std::move(description), ""),
-  arch_(arch), class_(cls)
-{
+  arch_(arch),
+  class_(cls) {

   class_ == Header::CLASS::ELF32 ? read_files<details::ELF32>() :
                                    read_files<details::ELF64>();
@@ -108,7 +108,6 @@ void CoreFile::files(const CoreFile::files_t& files) {
   files_ = files;
   class_ == Header::CLASS::ELF32 ? write_files<details::ELF32>() :
                                    write_files<details::ELF64>();
-
 }

 void CoreFile::accept(Visitor& visitor) const {
@@ -128,10 +127,9 @@ void CoreFile::dump(std::ostream& os) const {
 }

 std::ostream& operator<<(std::ostream& os, const CoreFile::entry_t& entry) {
-  os << fmt::format("{}: [0x{:04x}, 0x{:04x}]@0x{:x}",
-                    entry.path, entry.start, entry.end, entry.file_ofs);
+  os << fmt::format("{}: [{:#06x}, {:#06x}]@{:#x}", entry.path, entry.start,
+                    entry.end, entry.file_ofs);
   return os;
 }

-} // namespace ELF
-} // namespace LIEF
+} // namespace LIEF::ELF
diff --git a/deps/LIEF/src/ELF/NoteDetails/core/CorePrPsInfo.cpp b/deps/LIEF/src/ELF/NoteDetails/core/CorePrPsInfo.cpp
index 97b607d18cc..c183c3fd045 100644
--- a/deps/LIEF/src/ELF/NoteDetails/core/CorePrPsInfo.cpp
+++ b/deps/LIEF/src/ELF/NoteDetails/core/CorePrPsInfo.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -23,12 +23,12 @@

 #include "spdlog/fmt/fmt.h"

-namespace LIEF {
-namespace ELF {
+
+namespace LIEF::ELF {

 template<class ELF_T>
 inline result<CorePrPsInfo::info_t>
-get_info_impl(const Note::description_t& description) {
+    get_info_impl(const Note::description_t& description) {
   using Elf_Prpsinfo = typename ELF_T::Elf_Prpsinfo;
   CorePrPsInfo::info_t info;
   auto stream = SpanStream::from_vector(description);
@@ -40,27 +40,26 @@ get_info_impl(const Note::description_t& description) {
     return make_error_code(get_error(raw));
   }

-  info.state    = raw->pr_state;
-  info.sname    = raw->pr_sname;
-  info.zombie   = static_cast<bool>(raw->pr_zomb);
-  info.nice     = raw->pr_nice;
-  info.flag     = raw->pr_flag;
-  info.uid      = raw->pr_uid;
-  info.gid      = raw->pr_gid;
-  info.pid      = raw->pr_pid;
-  info.ppid     = raw->pr_ppid;
-  info.pgrp     = raw->pr_pgrp;
-  info.sid      = raw->pr_sid;
+  info.state = raw->pr_state;
+  info.sname = raw->pr_sname;
+  info.zombie = static_cast<bool>(raw->pr_zomb);
+  info.nice = raw->pr_nice;
+  info.flag = raw->pr_flag;
+  info.uid = raw->pr_uid;
+  info.gid = raw->pr_gid;
+  info.pid = raw->pr_pid;
+  info.ppid = raw->pr_ppid;
+  info.pgrp = raw->pr_pgrp;
+  info.sid = raw->pr_sid;
   info.filename = std::string(raw->pr_fname, sizeof(Elf_Prpsinfo::pr_fname));
-  info.args     = std::string(raw->pr_psargs, sizeof(Elf_Prpsinfo::pr_psargs));
+  info.args = std::string(raw->pr_psargs, sizeof(Elf_Prpsinfo::pr_psargs));

   return info;
 }

-template<class ELF_T> inline ok_error_t
-write_info_impl(Note::description_t& description,
-                const CorePrPsInfo::info_t& info)
-{
+template<class ELF_T>
+inline ok_error_t write_info_impl(Note::description_t& description,
+                                  const CorePrPsInfo::info_t& info) {
   using Elf_Prpsinfo = typename ELF_T::Elf_Prpsinfo;
   Elf_Prpsinfo raw;
   std::memset(reinterpret_cast<void*>(&raw), 0, sizeof(Elf_Prpsinfo));
@@ -96,15 +95,15 @@ write_info_impl(Note::description_t& description,

 result<CorePrPsInfo::info_t> CorePrPsInfo::info() const {
   return class_ == Header::CLASS::ELF32 ?
-                   get_info_impl<details::ELF32>(description_) :
-                   get_info_impl<details::ELF64>(description_);
+             get_info_impl<details::ELF32>(description_) :
+             get_info_impl<details::ELF64>(description_);
 }


 void CorePrPsInfo::info(const info_t& info) {
   class_ == Header::CLASS::ELF32 ?
-            write_info_impl<details::ELF32>(description_, info) :
-            write_info_impl<details::ELF64>(description_, info);
+      write_info_impl<details::ELF32>(description_, info) :
+      write_info_impl<details::ELF64>(description_, info);
 }

 void CorePrPsInfo::accept(Visitor& visitor) const {
@@ -118,17 +117,16 @@ void CorePrPsInfo::dump(std::ostream& os) const {
     return;
   }
   os << '\n';
-  os << fmt::format("  Path: {} (args: {})\n",
-                    info_res->filename_stripped(), info_res->args_stripped())
-     << fmt::format("  UID: {:04d} GID: {:04d} PID: {:04d}\n",
-                    info_res->uid, info_res->gid, info_res->pid)
-     << fmt::format("  PPID: {:04d} PGRP: {:04d} SID: {:04d}\n",
-                    info_res->ppid, info_res->pgrp, info_res->sid)
-     << fmt::format("  Flag: 0x{:04x} Nice: {} Zombie: {}\n",
-                    info_res->flag, info_res->nice, info_res->zombie)
-     << fmt::format("  State: 0x{:x} State Name: {}\n",
-                    info_res->state, info_res->sname);
+  os << fmt::format("  Path: {} (args: {})\n", info_res->filename_stripped(),
+                    info_res->args_stripped())
+     << fmt::format("  UID: {:04d} GID: {:04d} PID: {:04d}\n", info_res->uid,
+                    info_res->gid, info_res->pid)
+     << fmt::format("  PPID: {:04d} PGRP: {:04d} SID: {:04d}\n", info_res->ppid,
+                    info_res->pgrp, info_res->sid)
+     << fmt::format("  Flag: {:#06x} Nice: {} Zombie: {}\n", info_res->flag,
+                    info_res->nice, info_res->zombie)
+     << fmt::format("  State: {:#x} State Name: {}\n", info_res->state,
+                    info_res->sname);
 }

-} // namespace ELF
-} // namespace LIEF
+} // namespace LIEF::ELF
diff --git a/deps/LIEF/src/ELF/NoteDetails/core/CorePrStatus.cpp b/deps/LIEF/src/ELF/NoteDetails/core/CorePrStatus.cpp
index b8671f333b2..76ebf6f5cf3 100644
--- a/deps/LIEF/src/ELF/NoteDetails/core/CorePrStatus.cpp
+++ b/deps/LIEF/src/ELF/NoteDetails/core/CorePrStatus.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -24,13 +24,13 @@
 #include "LIEF/ELF/NoteDetails/core/CorePrStatus.hpp"
 #include "ELF/Structures.hpp"

-namespace LIEF {
-namespace ELF {
+
+namespace LIEF::ELF {

 template<class ELF_T>
 inline CorePrStatus::pr_status_t
-get_status_impl(const Note::description_t& description) {
-  using Elf_Prstatus  = typename ELF_T::Elf_Prstatus;
+    get_status_impl(const Note::description_t& description) {
+  using Elf_Prstatus = typename ELF_T::Elf_Prstatus;
   CorePrStatus::pr_status_t status;

   auto stream = SpanStream::from_vector(description);
@@ -44,18 +44,18 @@ get_status_impl(const Note::description_t& description) {
   }

   status.info.signo = raw_pr_status->pr_info.si_signo;
-  status.info.code  = raw_pr_status->pr_info.si_code;
+  status.info.code = raw_pr_status->pr_info.si_code;
   status.info.err = raw_pr_status->pr_info.si_errno;

-  status.cursig  = raw_pr_status->pr_cursig;
-  status.reserved   = raw_pr_status->reserved;
+  status.cursig = raw_pr_status->pr_cursig;
+  status.reserved = raw_pr_status->reserved;
   status.sigpend = raw_pr_status->pr_sigpend;
   status.sighold = raw_pr_status->pr_sighold;

-  status.pid  = raw_pr_status->pr_pid;
+  status.pid = raw_pr_status->pr_pid;
   status.ppid = raw_pr_status->pr_ppid;
   status.pgrp = raw_pr_status->pr_pgrp;
-  status.sid  = raw_pr_status->pr_sid;
+  status.sid = raw_pr_status->pr_sid;

   status.utime.sec = raw_pr_status->pr_utime.tv_sec;
   status.utime.usec = raw_pr_status->pr_utime.tv_usec;
@@ -73,8 +73,9 @@ get_status_impl(const Note::description_t& description) {
 }

 template<class ELF_T>
-inline Note::description_t write_status_impl(const CorePrStatus::pr_status_t& status) {
-  using Elf_Prstatus  = typename ELF_T::Elf_Prstatus;
+inline Note::description_t
+    write_status_impl(const CorePrStatus::pr_status_t& status) {
+  using Elf_Prstatus = typename ELF_T::Elf_Prstatus;
   Elf_Prstatus raw_pr_status;

   raw_pr_status.pr_info.si_signo = status.info.signo;
@@ -83,8 +84,10 @@ inline Note::description_t write_status_impl(const CorePrStatus::pr_status_t& st

   raw_pr_status.pr_cursig = status.cursig;
   raw_pr_status.reserved = status.reserved;
-  raw_pr_status.pr_sigpend = static_cast<decltype(raw_pr_status.pr_sigpend)>(status.sigpend);
-  raw_pr_status.pr_sighold = static_cast<decltype(raw_pr_status.pr_sighold)>(status.sighold);
+  raw_pr_status.pr_sigpend =
+      static_cast<decltype(raw_pr_status.pr_sigpend)>(status.sigpend);
+  raw_pr_status.pr_sighold =
+      static_cast<decltype(raw_pr_status.pr_sighold)>(status.sighold);

   raw_pr_status.pr_pid = status.pid;
   raw_pr_status.pr_ppid = status.ppid;
@@ -109,36 +112,27 @@ inline Note::description_t write_status_impl(const CorePrStatus::pr_status_t& st
 }

 template<class REG_T>
-inline result<uint64_t>
-get_reg_impl(REG_T reg, const Note::description_t& description,
-             Header::CLASS cls, ARCH arch)
-{
-  if constexpr (std::is_same_v<REG_T, CorePrStatus::Registers::X86>)
-  {
+inline result<uint64_t> get_reg_impl(REG_T reg,
+                                     const Note::description_t& description,
+                                     Header::CLASS cls, ARCH arch) {
+  if constexpr (std::is_same_v<REG_T, CorePrStatus::Registers::X86>) {
     if (arch != ARCH::I386) {
       return make_error_code(lief_errors::not_found);
     }
-  }
-  else if constexpr (std::is_same_v<REG_T, CorePrStatus::Registers::X86_64>)
-  {
+  } else if constexpr (std::is_same_v<REG_T, CorePrStatus::Registers::X86_64>) {
     if (arch != ARCH::X86_64) {
       return make_error_code(lief_errors::not_found);
     }
-  }
-  else if constexpr (std::is_same_v<REG_T, CorePrStatus::Registers::ARM>)
-  {
+  } else if constexpr (std::is_same_v<REG_T, CorePrStatus::Registers::ARM>) {
     if (arch != ARCH::ARM) {
       return make_error_code(lief_errors::not_found);
     }
-  }
-  else if constexpr (std::is_same_v<REG_T, CorePrStatus::Registers::AARCH64>)
-  {
+  } else if constexpr (std::is_same_v<REG_T, CorePrStatus::Registers::AARCH64>) {
     if (arch != ARCH::AARCH64) {
       return make_error_code(lief_errors::not_found);
     }
-  }
-  else {
-    LIEF_WARN("Architecture not supported");
+  } else {
+    LIEF_WARN("Unsupported architecture");
     return make_error_code(lief_errors::not_found);
   }

@@ -176,36 +170,27 @@ get_reg_impl(REG_T reg, const Note::description_t& description,
 }

 template<class REG_T>
-inline ok_error_t
-set_reg_impl(REG_T reg, uint64_t value, Note::description_t& description,
-             Header::CLASS cls, ARCH arch)
-{
-  if constexpr (std::is_same_v<REG_T, CorePrStatus::Registers::X86>)
-  {
+inline ok_error_t set_reg_impl(REG_T reg, uint64_t value,
+                               Note::description_t& description, Header::CLASS cls,
+                               ARCH arch) {
+  if constexpr (std::is_same_v<REG_T, CorePrStatus::Registers::X86>) {
     if (arch != ARCH::I386) {
       return make_error_code(lief_errors::not_found);
     }
-  }
-  else if constexpr (std::is_same_v<REG_T, CorePrStatus::Registers::X86_64>)
-  {
+  } else if constexpr (std::is_same_v<REG_T, CorePrStatus::Registers::X86_64>) {
     if (arch != ARCH::X86_64) {
       return make_error_code(lief_errors::not_found);
     }
-  }
-  else if constexpr (std::is_same_v<REG_T, CorePrStatus::Registers::ARM>)
-  {
+  } else if constexpr (std::is_same_v<REG_T, CorePrStatus::Registers::ARM>) {
     if (arch != ARCH::ARM) {
       return make_error_code(lief_errors::not_found);
     }
-  }
-  else if constexpr (std::is_same_v<REG_T, CorePrStatus::Registers::AARCH64>)
-  {
+  } else if constexpr (std::is_same_v<REG_T, CorePrStatus::Registers::AARCH64>) {
     if (arch != ARCH::AARCH64) {
       return make_error_code(lief_errors::not_found);
     }
-  }
-  else {
-    LIEF_WARN("Architecture not supported");
+  } else {
+    LIEF_WARN("Unsupported architecture");
     return make_error_code(lief_errors::not_found);
   }

@@ -240,61 +225,61 @@ std::vector<uint64_t> CorePrStatus::register_values() const {
   std::vector<uint64_t> values;
   switch (arch_) {
     case ARCH::X86_64:
-      {
-        using Reg = Registers::X86_64;
-        const auto count = static_cast<size_t>(Reg::_COUNT);
-        values.reserve(count);
-        for (size_t i = 0; i < count; ++i) {
-          if (auto val = get(Reg(i))) {
-            values.push_back(*val);
-          } else {
-            return {};
-          }
+    {
+      using Reg = Registers::X86_64;
+      const auto count = static_cast<size_t>(Reg::_COUNT);
+      values.reserve(count);
+      for (size_t i = 0; i < count; ++i) {
+        if (auto val = get(Reg(i))) {
+          values.push_back(*val);
+        } else {
+          return {};
         }
-        return values;
       }
+      return values;
+    }
     case ARCH::I386:
-      {
-        using Reg = Registers::X86;
-        const auto count = static_cast<size_t>(Reg::_COUNT);
-        values.reserve(count);
-        for (size_t i = 0; i < count; ++i) {
-          if (auto val = get(Reg(i))) {
-            values.push_back(*val);
-          } else {
-            return {};
-          }
+    {
+      using Reg = Registers::X86;
+      const auto count = static_cast<size_t>(Reg::_COUNT);
+      values.reserve(count);
+      for (size_t i = 0; i < count; ++i) {
+        if (auto val = get(Reg(i))) {
+          values.push_back(*val);
+        } else {
+          return {};
         }
-        return values;
       }
+      return values;
+    }
     case ARCH::ARM:
-      {
-        using Reg = Registers::ARM;
-        const auto count = static_cast<size_t>(Reg::_COUNT);
-        values.reserve(count);
-        for (size_t i = 0; i < count; ++i) {
-          if (auto val = get(Reg(i))) {
-            values.push_back(*val);
-          } else {
-            return {};
-          }
+    {
+      using Reg = Registers::ARM;
+      const auto count = static_cast<size_t>(Reg::_COUNT);
+      values.reserve(count);
+      for (size_t i = 0; i < count; ++i) {
+        if (auto val = get(Reg(i))) {
+          values.push_back(*val);
+        } else {
+          return {};
         }
-        return values;
       }
+      return values;
+    }
     case ARCH::AARCH64:
-      {
-        using Reg = Registers::AARCH64;
-        const auto count = static_cast<size_t>(Reg::_COUNT);
-        values.reserve(count);
-        for (size_t i = 0; i < count; ++i) {
-          if (auto val = get(Reg(i))) {
-            values.push_back(*val);
-          } else {
-            return {};
-          }
+    {
+      using Reg = Registers::AARCH64;
+      const auto count = static_cast<size_t>(Reg::_COUNT);
+      values.reserve(count);
+      for (size_t i = 0; i < count; ++i) {
+        if (auto val = get(Reg(i))) {
+          values.push_back(*val);
+        } else {
+          return {};
         }
-        return values;
       }
+      return values;
+    }
     default: return {};
   }
 }
@@ -308,8 +293,8 @@ CorePrStatus::pr_status_t CorePrStatus::status() const {

 void CorePrStatus::status(const pr_status_t& status) {
   Note::description_t description = class_ == Header::CLASS::ELF32 ?
-      write_status_impl<details::ELF32>(status) :
-      write_status_impl<details::ELF64>(status);
+                                        write_status_impl<details::ELF32>(status) :
+                                        write_status_impl<details::ELF64>(status);

   if (description.empty()) {
     return;
@@ -389,9 +374,9 @@ template<class REG>
 void dump_impl(std::ostream& os, const std::vector<uint64_t>& reg_vals) {
   for (size_t i = 0; i < reg_vals.size(); ++i) {
     if constexpr (std::is_void_v<REG>) {
-      os << fmt::format("   0x{:08x}\n", reg_vals[i]);
+      os << fmt::format("   {:#010x}\n", reg_vals[i]);
     } else {
-      os << fmt::format("   {}: 0x{:08x}\n", to_string(REG(i)), reg_vals[i]);
+      os << fmt::format("   {}: {:#010x}\n", to_string(REG(i)), reg_vals[i]);
     }
   }
 }
@@ -400,27 +385,25 @@ void CorePrStatus::dump(std::ostream& os) const {
   Note::dump(os);
   const CorePrStatus::pr_status_t& status = this->status();
   os << '\n'
-     << fmt::format("  PID: {:04d} PPID: {:04d} PGRP: {:04d}\n",
-                    status.pid, status.ppid, status.pgrp)
-     << fmt::format("  SID: {:04d} SIGNO: {:04d} SIGCODE: {:04d}\n",
-                    status.sid, status.info.signo, status.info.code)
+     << fmt::format("  PID: {:04d} PPID: {:04d} PGRP: {:04d}\n", status.pid,
+                    status.ppid, status.pgrp)
+     << fmt::format("  SID: {:04d} SIGNO: {:04d} SIGCODE: {:04d}\n", status.sid,
+                    status.info.signo, status.info.code)
      << fmt::format("  SIGERR: {:04d} SIGPEND: {:04d} SIGHOLD: {:04d}\n",
                     status.info.err, status.sigpend, status.sighold)
-     << fmt::format("  CURRSIG: 0x{:04d} reserved: {}\n",
-                    status.cursig, status.reserved);
+     << fmt::format("  CURRSIG: {:#06x} reserved: {}\n", status.cursig,
+                    status.reserved);
   const std::vector<uint64_t>& reg_vals = register_values();
   switch (architecture()) {
-    case ARCH::ARM:
-      dump_impl<CorePrStatus::Registers::ARM>(os, reg_vals); break;
+    case ARCH::ARM: dump_impl<CorePrStatus::Registers::ARM>(os, reg_vals); break;
     case ARCH::AARCH64:
-      dump_impl<CorePrStatus::Registers::AARCH64>(os, reg_vals); break;
-    case ARCH::I386:
-      dump_impl<CorePrStatus::Registers::X86>(os, reg_vals); break;
+      dump_impl<CorePrStatus::Registers::AARCH64>(os, reg_vals);
+      break;
+    case ARCH::I386: dump_impl<CorePrStatus::Registers::X86>(os, reg_vals); break;
     case ARCH::X86_64:
-      dump_impl<CorePrStatus::Registers::X86_64>(os, reg_vals); break;
-    default:
-      dump_impl<void>(os, reg_vals); break;
-
+      dump_impl<CorePrStatus::Registers::X86_64>(os, reg_vals);
+      break;
+    default: dump_impl<void>(os, reg_vals); break;
   }
 }

@@ -429,27 +412,14 @@ void CorePrStatus::accept(Visitor& visitor) const {
 }

 const char* to_string(CorePrStatus::Registers::X86 e) {
-  #define ENTRY(X) std::pair(CorePrStatus::Registers::X86::X, #X)
-  STRING_MAP enum_strings {
-    ENTRY(EBX),
-    ENTRY(ECX),
-    ENTRY(EDX),
-    ENTRY(ESI),
-    ENTRY(EDI),
-    ENTRY(EBP),
-    ENTRY(EAX),
-    ENTRY(DS),
-    ENTRY(ES),
-    ENTRY(FS),
-    ENTRY(GS),
-    ENTRY(ORIG_EAX),
-    ENTRY(EIP),
-    ENTRY(CS),
-    ENTRY(EFLAGS),
-    ENTRY(ESP),
-    ENTRY(SS),
+#define ENTRY(X) std::pair(CorePrStatus::Registers::X86::X, #X)
+  STRING_MAP enum_strings{
+      ENTRY(EBX), ENTRY(ECX),      ENTRY(EDX), ENTRY(ESI), ENTRY(EDI),
+      ENTRY(EBP), ENTRY(EAX),      ENTRY(DS),  ENTRY(ES),  ENTRY(FS),
+      ENTRY(GS),  ENTRY(ORIG_EAX), ENTRY(EIP), ENTRY(CS),  ENTRY(EFLAGS),
+      ENTRY(ESP), ENTRY(SS),
   };
-  #undef ENTRY
+#undef ENTRY

   if (auto it = enum_strings.find(e); it != enum_strings.end()) {
     return it->second;
@@ -458,31 +428,15 @@ const char* to_string(CorePrStatus::Registers::X86 e) {
 }

 const char* to_string(CorePrStatus::Registers::X86_64 e) {
-  #define ENTRY(X) std::pair(CorePrStatus::Registers::X86_64::X, #X)
-  STRING_MAP enums2str {
-    ENTRY(R15),
-    ENTRY(R14),
-    ENTRY(R13),
-    ENTRY(R12),
-    ENTRY(RBP),
-    ENTRY(RBX),
-    ENTRY(R11),
-    ENTRY(R10),
-    ENTRY(R9),
-    ENTRY(R8),
-    ENTRY(RAX),
-    ENTRY(RCX),
-    ENTRY(RDX),
-    ENTRY(RSI),
-    ENTRY(RDI),
-    ENTRY(ORIG_RAX),
-    ENTRY(RIP),
-    ENTRY(CS),
-    ENTRY(EFLAGS),
-    ENTRY(RSP),
-    ENTRY(SS),
+#define ENTRY(X) std::pair(CorePrStatus::Registers::X86_64::X, #X)
+  STRING_MAP enums2str{
+      ENTRY(R15),      ENTRY(R14),     ENTRY(R13),     ENTRY(R12),    ENTRY(RBP),
+      ENTRY(RBX),      ENTRY(R11),     ENTRY(R10),     ENTRY(R9),     ENTRY(R8),
+      ENTRY(RAX),      ENTRY(RCX),     ENTRY(RDX),     ENTRY(RSI),    ENTRY(RDI),
+      ENTRY(ORIG_RAX), ENTRY(RIP),     ENTRY(CS),      ENTRY(EFLAGS), ENTRY(RSP),
+      ENTRY(SS),       ENTRY(FS_BASE), ENTRY(GS_BASE), ENTRY(DS),     ENTRY(ES),
   };
-  #undef ENTRY
+#undef ENTRY

   if (auto it = enums2str.find(e); it != enums2str.end()) {
     return it->second;
@@ -491,27 +445,13 @@ const char* to_string(CorePrStatus::Registers::X86_64 e) {
 }

 const char* to_string(CorePrStatus::Registers::ARM e) {
-  #define ENTRY(X) std::pair(CorePrStatus::Registers::ARM::X, #X)
-  STRING_MAP enums2str {
-    ENTRY(R0),
-    ENTRY(R1),
-    ENTRY(R2),
-    ENTRY(R3),
-    ENTRY(R4),
-    ENTRY(R5),
-    ENTRY(R6),
-    ENTRY(R7),
-    ENTRY(R8),
-    ENTRY(R9),
-    ENTRY(R10),
-    ENTRY(R11),
-    ENTRY(R12),
-    ENTRY(R13),
-    ENTRY(R14),
-    ENTRY(R15),
-    ENTRY(CPSR),
+#define ENTRY(X) std::pair(CorePrStatus::Registers::ARM::X, #X)
+  STRING_MAP enums2str{
+      ENTRY(R0),  ENTRY(R1),  ENTRY(R2),  ENTRY(R3),  ENTRY(R4),   ENTRY(R5),
+      ENTRY(R6),  ENTRY(R7),  ENTRY(R8),  ENTRY(R9),  ENTRY(R10),  ENTRY(R11),
+      ENTRY(R12), ENTRY(R13), ENTRY(R14), ENTRY(R15), ENTRY(CPSR),
   };
-  #undef ENTRY
+#undef ENTRY

   if (auto it = enums2str.find(e); it != enums2str.end()) {
     return it->second;
@@ -521,45 +461,16 @@ const char* to_string(CorePrStatus::Registers::ARM e) {
 }

 const char* to_string(CorePrStatus::Registers::AARCH64 e) {
-  #define ENTRY(X) std::pair(CorePrStatus::Registers::AARCH64::X, #X)
-  STRING_MAP enum_strings {
-    ENTRY(X0),
-    ENTRY(X1),
-    ENTRY(X2),
-    ENTRY(X3),
-    ENTRY(X4),
-    ENTRY(X5),
-    ENTRY(X6),
-    ENTRY(X7),
-    ENTRY(X8),
-    ENTRY(X9),
-    ENTRY(X10),
-    ENTRY(X11),
-    ENTRY(X12),
-    ENTRY(X13),
-    ENTRY(X14),
-    ENTRY(X15),
-    ENTRY(X15),
-    ENTRY(X16),
-    ENTRY(X17),
-    ENTRY(X18),
-    ENTRY(X19),
-    ENTRY(X20),
-    ENTRY(X21),
-    ENTRY(X22),
-    ENTRY(X23),
-    ENTRY(X24),
-    ENTRY(X25),
-    ENTRY(X26),
-    ENTRY(X27),
-    ENTRY(X28),
-    ENTRY(X29),
-    ENTRY(X30),
-    ENTRY(X31),
-    ENTRY(PC),
-    ENTRY(PSTATE),
+#define ENTRY(X) std::pair(CorePrStatus::Registers::AARCH64::X, #X)
+  STRING_MAP enum_strings{
+      ENTRY(X0),  ENTRY(X1),  ENTRY(X2),  ENTRY(X3),  ENTRY(X4),     ENTRY(X5),
+      ENTRY(X6),  ENTRY(X7),  ENTRY(X8),  ENTRY(X9),  ENTRY(X10),    ENTRY(X11),
+      ENTRY(X12), ENTRY(X13), ENTRY(X14), ENTRY(X15), ENTRY(X15),    ENTRY(X16),
+      ENTRY(X17), ENTRY(X18), ENTRY(X19), ENTRY(X20), ENTRY(X21),    ENTRY(X22),
+      ENTRY(X23), ENTRY(X24), ENTRY(X25), ENTRY(X26), ENTRY(X27),    ENTRY(X28),
+      ENTRY(X29), ENTRY(X30), ENTRY(X31), ENTRY(PC),  ENTRY(PSTATE),
   };
-  #undef ENTRY
+#undef ENTRY

   if (auto it = enum_strings.find(e); it != enum_strings.end()) {
     return it->second;
@@ -567,5 +478,4 @@ const char* to_string(CorePrStatus::Registers::AARCH64 e) {
   return "UNKNOWN";
 }

-} // namespace ELF
-} // namespace LIEF
+} // namespace LIEF::ELF
diff --git a/deps/LIEF/src/ELF/NoteDetails/core/CoreSigInfo.cpp b/deps/LIEF/src/ELF/NoteDetails/core/CoreSigInfo.cpp
index ac47d9dcb2f..ea8079144a1 100644
--- a/deps/LIEF/src/ELF/NoteDetails/core/CoreSigInfo.cpp
+++ b/deps/LIEF/src/ELF/NoteDetails/core/CoreSigInfo.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -20,8 +20,8 @@

 #include "spdlog/fmt/fmt.h"

-namespace LIEF {
-namespace ELF {
+
+namespace LIEF::ELF {

 static constexpr auto signo_offset = offsetof(details::Elf_siginfo, si_signo);
 static constexpr auto sigcode_offset = offsetof(details::Elf_siginfo, si_code);
@@ -58,11 +58,8 @@ void CoreSigInfo::accept(Visitor& visitor) const {
 void CoreSigInfo::dump(std::ostream& os) const {
   Note::dump(os);
   os << '\n'
-     << fmt::format("  signo: {} code: {} errno: {}\n",
-                    signo().value_or(-1),
-                    sigcode().value_or(-1),
-                    sigerrno().value_or(-1));
+     << fmt::format("  signo: {} code: {} errno: {}\n", signo().value_or(-1),
+                    sigcode().value_or(-1), sigerrno().value_or(-1));
 }

-} // namespace ELF
-} // namespace LIEF
+} // namespace LIEF::ELF
diff --git a/deps/LIEF/src/ELF/NoteDetails/properties/AArch64Feature.cpp b/deps/LIEF/src/ELF/NoteDetails/properties/AArch64Feature.cpp
index c927274a383..fe42fad5ca1 100644
--- a/deps/LIEF/src/ELF/NoteDetails/properties/AArch64Feature.cpp
+++ b/deps/LIEF/src/ELF/NoteDetails/properties/AArch64Feature.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -21,23 +21,31 @@

 FMT_FORMATTER(LIEF::ELF::AArch64Feature::FEATURE, LIEF::ELF::to_string);

-namespace LIEF {
-namespace ELF {
+
+namespace LIEF::ELF {

 std::unique_ptr<AArch64Feature> AArch64Feature::create(BinaryStream& stream) {
   static constexpr auto GNU_PROPERTY_AARCH64_FEATURE_1_BTI = 1U << 0;
   static constexpr auto GNU_PROPERTY_AARCH64_FEATURE_1_PAC = 1U << 1;
+  static constexpr auto GNU_PROPERTY_AARCH64_FEATURE_1_GCS = 1U << 2;

   uint32_t bitmask = stream.read<uint32_t>().value_or(0);

   std::vector<FEATURE> features;
   while (bitmask) {
-    uint32_t bit = bitmask & (- bitmask);
+    uint32_t bit = bitmask & (-bitmask);
     bitmask &= ~bit;

     switch (bit) {
-      case GNU_PROPERTY_AARCH64_FEATURE_1_BTI: features.push_back(FEATURE::BTI); break;
-      case GNU_PROPERTY_AARCH64_FEATURE_1_PAC: features.push_back(FEATURE::PAC); break;
+      case GNU_PROPERTY_AARCH64_FEATURE_1_BTI:
+        features.push_back(FEATURE::BTI);
+        break;
+      case GNU_PROPERTY_AARCH64_FEATURE_1_PAC:
+        features.push_back(FEATURE::PAC);
+        break;
+      case GNU_PROPERTY_AARCH64_FEATURE_1_GCS:
+        features.push_back(FEATURE::GCS);
+        break;
       default: features.push_back(FEATURE::UNKNOWN); break;
     }
   }
@@ -46,13 +54,14 @@ std::unique_ptr<AArch64Feature> AArch64Feature::create(BinaryStream& stream) {
 }

 const char* to_string(AArch64Feature::FEATURE type) {
-  #define ENTRY(X) std::pair(AArch64Feature::FEATURE::X, #X)
-  STRING_MAP enums2str {
-    ENTRY(UNKNOWN),
-    ENTRY(BTI),
-    ENTRY(PAC),
+#define ENTRY(X) std::pair(AArch64Feature::FEATURE::X, #X)
+  STRING_MAP enums2str{
+      ENTRY(UNKNOWN),
+      ENTRY(BTI),
+      ENTRY(PAC),
+      ENTRY(GCS),
   };
-  #undef ENTRY
+#undef ENTRY

   if (auto it = enums2str.find(type); it != enums2str.end()) {
     return it->second;
@@ -61,8 +70,7 @@ const char* to_string(AArch64Feature::FEATURE type) {
   return "UNKNOWN";
 }

-void AArch64Feature::dump(std::ostream &os) const {
+void AArch64Feature::dump(std::ostream& os) const {
   os << "AArch64 feature(s): " << fmt::to_string(features());
 }
 }
-}
diff --git a/deps/LIEF/src/ELF/NoteDetails/properties/AArch64PAuth.cpp b/deps/LIEF/src/ELF/NoteDetails/properties/AArch64PAuth.cpp
index 1ef0abd50a0..2779710285c 100644
--- a/deps/LIEF/src/ELF/NoteDetails/properties/AArch64PAuth.cpp
+++ b/deps/LIEF/src/ELF/NoteDetails/properties/AArch64PAuth.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -13,14 +13,11 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
+#include <spdlog/fmt/fmt.h>
 #include "LIEF/ELF/NoteDetails/properties/AArch64PAuth.hpp"
 #include "LIEF/BinaryStream/BinaryStream.hpp"

-#include "frozen.hpp"
-#include "fmt_formatter.hpp"
-
-namespace LIEF {
-namespace ELF {
+namespace LIEF::ELF {

 std::unique_ptr<AArch64PAuth> AArch64PAuth::create(BinaryStream& stream) {
   uint64_t platform = stream.read<uint64_t>().value_or(0);
@@ -29,11 +26,9 @@ std::unique_ptr<AArch64PAuth> AArch64PAuth::create(BinaryStream& stream) {
   return std::unique_ptr<AArch64PAuth>(new AArch64PAuth(platform, version));
 }

-void AArch64PAuth::dump(std::ostream &os) const {
-  os << fmt::format("Platform: 0x{:04x}, Version: 0x{:04x}",
-                    platform(), version());
+void AArch64PAuth::dump(std::ostream& os) const {
+  os << fmt::format("Platform: {:#06x}, Version: {:#06x}", platform(), version());
 }


 }
-}
diff --git a/deps/LIEF/src/ELF/NoteDetails/properties/CMakeLists.txt b/deps/LIEF/src/ELF/NoteDetails/properties/CMakeLists.txt
index d5eb79d130b..549af44c57d 100644
--- a/deps/LIEF/src/ELF/NoteDetails/properties/CMakeLists.txt
+++ b/deps/LIEF/src/ELF/NoteDetails/properties/CMakeLists.txt
@@ -1,6 +1,7 @@
 target_sources(LIB_LIEF PRIVATE
   AArch64Feature.cpp
   AArch64PAuth.cpp
+  Needed.cpp
   StackSize.cpp
   X86Feature.cpp
   X86ISA.cpp
diff --git a/deps/LIEF/src/ELF/NoteDetails/properties/Needed.cpp b/deps/LIEF/src/ELF/NoteDetails/properties/Needed.cpp
new file mode 100644
index 00000000000..cf2d8d26851
--- /dev/null
+++ b/deps/LIEF/src/ELF/NoteDetails/properties/Needed.cpp
@@ -0,0 +1,61 @@
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
+ *
+ * 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.
+ */
+#include "LIEF/ELF/NoteDetails/properties/Needed.hpp"
+#include "LIEF/BinaryStream/BinaryStream.hpp"
+
+#include "fmt_formatter.hpp"
+
+FMT_FORMATTER(LIEF::ELF::Needed::NEED, LIEF::ELF::to_string);
+
+namespace LIEF::ELF {
+
+static constexpr auto GNU_PROPERTY_1_NEEDED_INDIRECT_EXTERN_ACCESS = 1U << 0;
+
+std::unique_ptr<Needed> Needed::create(BinaryStream& stream) {
+  uint32_t bitmask = stream.read<uint32_t>().value_or(0);
+
+  std::vector<NEED> needs;
+  while (bitmask) {
+    uint32_t bit = bitmask & (-bitmask);
+    bitmask &= ~bit;
+
+    // NOLINTNEXTLINE(bugprone-unhandled-code-paths)
+    switch (bit) {
+      case GNU_PROPERTY_1_NEEDED_INDIRECT_EXTERN_ACCESS:
+        needs.push_back(NEED::INDIRECT_EXTERN_ACCESS);
+        break;
+      default: needs.push_back(NEED::UNKNOWN); break;
+    }
+  }
+
+  return std::unique_ptr<Needed>(new Needed(std::move(needs)));
+}
+
+const char* to_string(Needed::NEED type) {
+  switch (type) {
+    case Needed::NEED::INDIRECT_EXTERN_ACCESS: return "INDIRECT_EXTERN_ACCESS";
+    case Needed::NEED::UNKNOWN: return "UNKNOWN";
+    default: break;
+  }
+
+  return "UNKNOWN";
+}
+
+void Needed::dump(std::ostream& os) const {
+  os << "Needed: " << fmt::to_string(needs());
+}
+
+}
diff --git a/deps/LIEF/src/ELF/NoteDetails/properties/StackSize.cpp b/deps/LIEF/src/ELF/NoteDetails/properties/StackSize.cpp
index e689719e238..3399bbe7e8c 100644
--- a/deps/LIEF/src/ELF/NoteDetails/properties/StackSize.cpp
+++ b/deps/LIEF/src/ELF/NoteDetails/properties/StackSize.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -16,11 +16,10 @@
 #include "LIEF/ELF/NoteDetails/properties/StackSize.hpp"
 #include "spdlog/fmt/fmt.h"

-namespace LIEF {
-namespace ELF {

-void StackSize::dump(std::ostream &os) const {
-  os << fmt::format("Size: 0x{:04x}", stack_size());
-}
+namespace LIEF::ELF {
+
+void StackSize::dump(std::ostream& os) const {
+  os << fmt::format("Size: {:#06x}", stack_size());
 }
 }
diff --git a/deps/LIEF/src/ELF/NoteDetails/properties/X86Feature.cpp b/deps/LIEF/src/ELF/NoteDetails/properties/X86Feature.cpp
index fc99a21d0cd..5bcc8ee069b 100644
--- a/deps/LIEF/src/ELF/NoteDetails/properties/X86Feature.cpp
+++ b/deps/LIEF/src/ELF/NoteDetails/properties/X86Feature.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -24,77 +24,109 @@
 FMT_FORMATTER(LIEF::ELF::X86Features::FEATURE, LIEF::ELF::to_string);
 FMT_FORMATTER(LIEF::ELF::X86Features::FLAG, LIEF::ELF::to_string);

-namespace LIEF {
-namespace ELF {
-std::unique_ptr<X86Features> X86Features::create_feat1(
-    X86Features::FLAG flag, BinaryStream& stream
-) {
+
+namespace LIEF::ELF {
+std::unique_ptr<X86Features> X86Features::create_feat1(X86Features::FLAG flag,
+                                                       BinaryStream& stream) {
   uint32_t bitmask = stream.read<uint32_t>().value_or(0);
   features_t features;
   while (bitmask) {
-    uint32_t bit = bitmask & (- bitmask);
+    uint32_t bit = bitmask & (-bitmask);
     bitmask &= ~bit;
     switch (bit) {
-      case GNU_PROPERTY_X86_FEATURE_1_IBT: features.emplace_back(flag, FEATURE::IBT); break;
-      case GNU_PROPERTY_X86_FEATURE_1_SHSTK: features.emplace_back(flag, FEATURE::SHSTK); break;
-      case GNU_PROPERTY_X86_FEATURE_1_LAM_U48: features.emplace_back(flag, FEATURE::LAM_U48); break;
-      case GNU_PROPERTY_X86_FEATURE_1_LAM_U57: features.emplace_back(flag, FEATURE::LAM_U57); break;
+      case GNU_PROPERTY_X86_FEATURE_1_IBT:
+        features.emplace_back(flag, FEATURE::IBT);
+        break;
+      case GNU_PROPERTY_X86_FEATURE_1_SHSTK:
+        features.emplace_back(flag, FEATURE::SHSTK);
+        break;
+      case GNU_PROPERTY_X86_FEATURE_1_LAM_U48:
+        features.emplace_back(flag, FEATURE::LAM_U48);
+        break;
+      case GNU_PROPERTY_X86_FEATURE_1_LAM_U57:
+        features.emplace_back(flag, FEATURE::LAM_U57);
+        break;
       default: features.emplace_back(flag, FEATURE::UNKNOWN); break;
     }
   }
   return std::unique_ptr<X86Features>(new X86Features(std::move(features)));
 }

-std::unique_ptr<X86Features> X86Features::create_feat2(
-    X86Features::FLAG flag, BinaryStream& stream
-) {
+std::unique_ptr<X86Features> X86Features::create_feat2(X86Features::FLAG flag,
+                                                       BinaryStream& stream) {
   uint32_t bitmask = stream.read<uint32_t>().value_or(0);
   features_t features;
   while (bitmask) {
-    uint32_t bit = bitmask & (- bitmask);
+    uint32_t bit = bitmask & (-bitmask);
     bitmask &= ~bit;
     switch (bit) {
-      case GNU_PROPERTY_X86_FEATURE_2_X86: features.emplace_back(flag, FEATURE::X86); break;
-      case GNU_PROPERTY_X86_FEATURE_2_X87: features.emplace_back(flag, FEATURE::X87); break;
-      case GNU_PROPERTY_X86_FEATURE_2_MMX: features.emplace_back(flag, FEATURE::MMX); break;
-      case GNU_PROPERTY_X86_FEATURE_2_XMM: features.emplace_back(flag, FEATURE::XMM); break;
-      case GNU_PROPERTY_X86_FEATURE_2_YMM: features.emplace_back(flag, FEATURE::YMM); break;
-      case GNU_PROPERTY_X86_FEATURE_2_ZMM: features.emplace_back(flag, FEATURE::ZMM); break;
-      case GNU_PROPERTY_X86_FEATURE_2_TMM: features.emplace_back(flag, FEATURE::TMM); break;
-      case GNU_PROPERTY_X86_FEATURE_2_MASK: features.emplace_back(flag, FEATURE::MASK); break;
-      case GNU_PROPERTY_X86_FEATURE_2_FXSR: features.emplace_back(flag, FEATURE::FXSR); break;
-      case GNU_PROPERTY_X86_FEATURE_2_XSAVE: features.emplace_back(flag, FEATURE::XSAVE); break;
-      case GNU_PROPERTY_X86_FEATURE_2_XSAVEOPT: features.emplace_back(flag, FEATURE::XSAVEOPT); break;
-      case GNU_PROPERTY_X86_FEATURE_2_XSAVEC: features.emplace_back(flag, FEATURE::XSAVEC); break;
+      case GNU_PROPERTY_X86_FEATURE_2_X86:
+        features.emplace_back(flag, FEATURE::X86);
+        break;
+      case GNU_PROPERTY_X86_FEATURE_2_X87:
+        features.emplace_back(flag, FEATURE::X87);
+        break;
+      case GNU_PROPERTY_X86_FEATURE_2_MMX:
+        features.emplace_back(flag, FEATURE::MMX);
+        break;
+      case GNU_PROPERTY_X86_FEATURE_2_XMM:
+        features.emplace_back(flag, FEATURE::XMM);
+        break;
+      case GNU_PROPERTY_X86_FEATURE_2_YMM:
+        features.emplace_back(flag, FEATURE::YMM);
+        break;
+      case GNU_PROPERTY_X86_FEATURE_2_ZMM:
+        features.emplace_back(flag, FEATURE::ZMM);
+        break;
+      case GNU_PROPERTY_X86_FEATURE_2_TMM:
+        features.emplace_back(flag, FEATURE::TMM);
+        break;
+      case GNU_PROPERTY_X86_FEATURE_2_MASK:
+        features.emplace_back(flag, FEATURE::MASK);
+        break;
+      case GNU_PROPERTY_X86_FEATURE_2_FXSR:
+        features.emplace_back(flag, FEATURE::FXSR);
+        break;
+      case GNU_PROPERTY_X86_FEATURE_2_XSAVE:
+        features.emplace_back(flag, FEATURE::XSAVE);
+        break;
+      case GNU_PROPERTY_X86_FEATURE_2_XSAVEOPT:
+        features.emplace_back(flag, FEATURE::XSAVEOPT);
+        break;
+      case GNU_PROPERTY_X86_FEATURE_2_XSAVEC:
+        features.emplace_back(flag, FEATURE::XSAVEC);
+        break;
       default: features.emplace_back(flag, FEATURE::UNKNOWN); break;
     }
   }
   return std::unique_ptr<X86Features>(new X86Features(std::move(features)));
 }

-std::unique_ptr<X86Features> X86Features::create(uint32_t type, BinaryStream& stream) {
+std::unique_ptr<X86Features> X86Features::create(uint32_t type,
+                                                 BinaryStream& stream) {
   switch (type) {
     case GNU_PROPERTY_X86_FEATURE_1_AND: return create_feat1(FLAG::NONE, stream);

     case GNU_PROPERTY_X86_FEATURE_2_USED: return create_feat2(FLAG::USED, stream);
-    case GNU_PROPERTY_X86_FEATURE_2_NEEDED: return create_feat2(FLAG::NEEDED, stream);
+    case GNU_PROPERTY_X86_FEATURE_2_NEEDED:
+      return create_feat2(FLAG::NEEDED, stream);

     default: return nullptr;
   }
 }

-void X86Features::dump(std::ostream &os) const {
-  os << "x86/x86-64 features: " << fmt::to_string(features()) ;
+void X86Features::dump(std::ostream& os) const {
+  os << "x86/x86-64 features: " << fmt::to_string(features());
 }

 const char* to_string(X86Features::FLAG flag) {
-  #define ENTRY(X) std::pair(X86Features::FLAG::X, #X)
-  STRING_MAP enums2str {
-    ENTRY(NONE),
-    ENTRY(NEEDED),
-    ENTRY(USED),
+#define ENTRY(X) std::pair(X86Features::FLAG::X, #X)
+  STRING_MAP enums2str{
+      ENTRY(NONE),
+      ENTRY(NEEDED),
+      ENTRY(USED),
   };
-  #undef ENTRY
+#undef ENTRY
   if (auto it = enums2str.find(flag); it != enums2str.end()) {
     return it->second;
   }
@@ -103,28 +135,15 @@ const char* to_string(X86Features::FLAG flag) {
 }

 const char* to_string(X86Features::FEATURE feat) {
-  #define ENTRY(X) std::pair(X86Features::FEATURE::X, #X)
-  STRING_MAP enums2str {
-    ENTRY(UNKNOWN),
-    ENTRY(IBT),
-    ENTRY(SHSTK),
-    ENTRY(LAM_U48),
-    ENTRY(LAM_U57),
-    ENTRY(X86),
-    ENTRY(X87),
-    ENTRY(MMX),
-    ENTRY(XMM),
-    ENTRY(YMM),
-    ENTRY(ZMM),
-    ENTRY(FXSR),
-    ENTRY(XSAVE),
-    ENTRY(XSAVEOPT),
-    ENTRY(XSAVEC),
-    ENTRY(TMM),
-    ENTRY(MASK),
+#define ENTRY(X) std::pair(X86Features::FEATURE::X, #X)
+  STRING_MAP enums2str{
+      ENTRY(UNKNOWN), ENTRY(IBT),  ENTRY(SHSTK), ENTRY(LAM_U48),  ENTRY(LAM_U57),
+      ENTRY(X86),     ENTRY(X87),  ENTRY(MMX),   ENTRY(XMM),      ENTRY(YMM),
+      ENTRY(ZMM),     ENTRY(FXSR), ENTRY(XSAVE), ENTRY(XSAVEOPT), ENTRY(XSAVEC),
+      ENTRY(TMM),     ENTRY(MASK),
   };

-  #undef ENTRY
+#undef ENTRY
   if (auto it = enums2str.find(feat); it != enums2str.end()) {
     return it->second;
   }
@@ -134,4 +153,3 @@ const char* to_string(X86Features::FEATURE feat) {


 }
-}
diff --git a/deps/LIEF/src/ELF/NoteDetails/properties/X86ISA.cpp b/deps/LIEF/src/ELF/NoteDetails/properties/X86ISA.cpp
index fe85ab4e4b4..6875306716b 100644
--- a/deps/LIEF/src/ELF/NoteDetails/properties/X86ISA.cpp
+++ b/deps/LIEF/src/ELF/NoteDetails/properties/X86ISA.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -24,22 +24,25 @@
 FMT_FORMATTER(LIEF::ELF::X86ISA::FLAG, LIEF::ELF::to_string);
 FMT_FORMATTER(LIEF::ELF::X86ISA::ISA, LIEF::ELF::to_string);

-namespace LIEF {
-namespace ELF {

-std::unique_ptr<X86ISA> X86ISA::create_isa_1(X86ISA::FLAG flag, BinaryStream& stream) {
+namespace LIEF::ELF {
+
+std::unique_ptr<X86ISA> X86ISA::create_isa_1(X86ISA::FLAG flag,
+                                             BinaryStream& stream) {
   uint32_t bitmask = stream.read<uint32_t>().value_or(0);

   values_t values;
   while (bitmask) {
-    uint32_t bit = bitmask & (- bitmask);
+    uint32_t bit = bitmask & (-bitmask);
     bitmask &= ~bit;

     switch (bit) {
-      case GNU_PROPERTY_X86_ISA_1_BASELINE: values.emplace_back(flag, ISA::BASELINE); break;
-      case GNU_PROPERTY_X86_ISA_1_V2:       values.emplace_back(flag, ISA::V2); break;
-      case GNU_PROPERTY_X86_ISA_1_V3:       values.emplace_back(flag, ISA::V3); break;
-      case GNU_PROPERTY_X86_ISA_1_V4:       values.emplace_back(flag, ISA::V4); break;
+      case GNU_PROPERTY_X86_ISA_1_BASELINE:
+        values.emplace_back(flag, ISA::BASELINE);
+        break;
+      case GNU_PROPERTY_X86_ISA_1_V2: values.emplace_back(flag, ISA::V2); break;
+      case GNU_PROPERTY_X86_ISA_1_V3: values.emplace_back(flag, ISA::V3); break;
+      case GNU_PROPERTY_X86_ISA_1_V4: values.emplace_back(flag, ISA::V4); break;

       default: values.emplace_back(flag, ISA::UNKNOWN); break;
     }
@@ -48,66 +51,152 @@ std::unique_ptr<X86ISA> X86ISA::create_isa_1(X86ISA::FLAG flag, BinaryStream& st
   return std::unique_ptr<X86ISA>(new X86ISA(std::move(values)));
 }

-std::unique_ptr<X86ISA> X86ISA::create_compat_isa_1(
-    X86ISA::FLAG flag, BinaryStream& stream, bool is_compat2
-) {
+std::unique_ptr<X86ISA> X86ISA::create_compat_isa_1(X86ISA::FLAG flag,
+                                                    BinaryStream& stream,
+                                                    bool is_compat2) {
   uint32_t bitmask = stream.read<uint32_t>().value_or(0);

   values_t values;
   while (bitmask) {
-    uint32_t bit = bitmask & (- bitmask);
+    uint32_t bit = bitmask & (-bitmask);
     bitmask &= ~bit;

     if (is_compat2) {
       switch (bit) {
-        case GNU_PROPERTY_X86_COMPAT_2_ISA_1_CMOV:           values.emplace_back(flag, ISA::CMOV); break;
-        case GNU_PROPERTY_X86_COMPAT_2_ISA_1_SSE:            values.emplace_back(flag, ISA::SSE); break;
-        case GNU_PROPERTY_X86_COMPAT_2_ISA_1_SSE2:           values.emplace_back(flag, ISA::SSE2); break;
-        case GNU_PROPERTY_X86_COMPAT_2_ISA_1_SSE3:           values.emplace_back(flag, ISA::SSE3); break;
-        case GNU_PROPERTY_X86_COMPAT_2_ISA_1_SSSE3:          values.emplace_back(flag, ISA::SSSE3); break;
-        case GNU_PROPERTY_X86_COMPAT_2_ISA_1_SSE4_1:         values.emplace_back(flag, ISA::SSE4_1); break;
-        case GNU_PROPERTY_X86_COMPAT_2_ISA_1_SSE4_2:         values.emplace_back(flag, ISA::SSE4_2); break;
-        case GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX:            values.emplace_back(flag, ISA::AVX); break;
-        case GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX2:           values.emplace_back(flag, ISA::AVX2); break;
-        case GNU_PROPERTY_X86_COMPAT_2_ISA_1_FMA:            values.emplace_back(flag, ISA::FMA); break;
-        case GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512F:        values.emplace_back(flag, ISA::AVX512F); break;
-        case GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512CD:       values.emplace_back(flag, ISA::AVX512CD); break;
-        case GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512ER:       values.emplace_back(flag, ISA::AVX512ER); break;
-        case GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512PF:       values.emplace_back(flag, ISA::AVX512PF); break;
-        case GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512VL:       values.emplace_back(flag, ISA::AVX512VL); break;
-        case GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512DQ:       values.emplace_back(flag, ISA::AVX512DQ); break;
-        case GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512BW:       values.emplace_back(flag, ISA::AVX512BW); break;
-        case GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512_4FMAPS:  values.emplace_back(flag, ISA::AVX512_4FMAPS); break;
-        case GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512_4VNNIW:  values.emplace_back(flag, ISA::AVX512_4VNNIW); break;
-        case GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512_BITALG:  values.emplace_back(flag, ISA::AVX512_BITALG); break;
-        case GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512_IFMA:    values.emplace_back(flag, ISA::AVX512_IFMA); break;
-        case GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512_VBMI:    values.emplace_back(flag, ISA::AVX512_VBMI); break;
-        case GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512_VBMI2:   values.emplace_back(flag, ISA::AVX512_VBMI2); break;
-        case GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512_VNNI:    values.emplace_back(flag, ISA::AVX512_VNNI); break;
-        case GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512_BF16:    values.emplace_back(flag, ISA::AVX512_BF16); break;
+        case GNU_PROPERTY_X86_COMPAT_2_ISA_1_CMOV:
+          values.emplace_back(flag, ISA::CMOV);
+          break;
+        case GNU_PROPERTY_X86_COMPAT_2_ISA_1_SSE:
+          values.emplace_back(flag, ISA::SSE);
+          break;
+        case GNU_PROPERTY_X86_COMPAT_2_ISA_1_SSE2:
+          values.emplace_back(flag, ISA::SSE2);
+          break;
+        case GNU_PROPERTY_X86_COMPAT_2_ISA_1_SSE3:
+          values.emplace_back(flag, ISA::SSE3);
+          break;
+        case GNU_PROPERTY_X86_COMPAT_2_ISA_1_SSSE3:
+          values.emplace_back(flag, ISA::SSSE3);
+          break;
+        case GNU_PROPERTY_X86_COMPAT_2_ISA_1_SSE4_1:
+          values.emplace_back(flag, ISA::SSE4_1);
+          break;
+        case GNU_PROPERTY_X86_COMPAT_2_ISA_1_SSE4_2:
+          values.emplace_back(flag, ISA::SSE4_2);
+          break;
+        case GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX:
+          values.emplace_back(flag, ISA::AVX);
+          break;
+        case GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX2:
+          values.emplace_back(flag, ISA::AVX2);
+          break;
+        case GNU_PROPERTY_X86_COMPAT_2_ISA_1_FMA:
+          values.emplace_back(flag, ISA::FMA);
+          break;
+        case GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512F:
+          values.emplace_back(flag, ISA::AVX512F);
+          break;
+        case GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512CD:
+          values.emplace_back(flag, ISA::AVX512CD);
+          break;
+        case GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512ER:
+          values.emplace_back(flag, ISA::AVX512ER);
+          break;
+        case GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512PF:
+          values.emplace_back(flag, ISA::AVX512PF);
+          break;
+        case GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512VL:
+          values.emplace_back(flag, ISA::AVX512VL);
+          break;
+        case GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512DQ:
+          values.emplace_back(flag, ISA::AVX512DQ);
+          break;
+        case GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512BW:
+          values.emplace_back(flag, ISA::AVX512BW);
+          break;
+        case GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512_4FMAPS:
+          values.emplace_back(flag, ISA::AVX512_4FMAPS);
+          break;
+        case GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512_4VNNIW:
+          values.emplace_back(flag, ISA::AVX512_4VNNIW);
+          break;
+        case GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512_BITALG:
+          values.emplace_back(flag, ISA::AVX512_BITALG);
+          break;
+        case GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512_IFMA:
+          values.emplace_back(flag, ISA::AVX512_IFMA);
+          break;
+        case GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512_VBMI:
+          values.emplace_back(flag, ISA::AVX512_VBMI);
+          break;
+        case GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512_VBMI2:
+          values.emplace_back(flag, ISA::AVX512_VBMI2);
+          break;
+        case GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512_VNNI:
+          values.emplace_back(flag, ISA::AVX512_VNNI);
+          break;
+        case GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512_BF16:
+          values.emplace_back(flag, ISA::AVX512_BF16);
+          break;

         default: values.emplace_back(flag, ISA::UNKNOWN); break;
       }
     } else {
       switch (bit) {
-        case GNU_PROPERTY_X86_COMPAT_ISA_1_486:      values.emplace_back(flag, ISA::I486); break;
-        case GNU_PROPERTY_X86_COMPAT_ISA_1_586:      values.emplace_back(flag, ISA::I586); break;
-        case GNU_PROPERTY_X86_COMPAT_ISA_1_686:      values.emplace_back(flag, ISA::I686); break;
-        case GNU_PROPERTY_X86_COMPAT_ISA_1_SSE:      values.emplace_back(flag, ISA::SSE); break;
-        case GNU_PROPERTY_X86_COMPAT_ISA_1_SSE2:     values.emplace_back(flag, ISA::SSE2); break;
-        case GNU_PROPERTY_X86_COMPAT_ISA_1_SSE3:     values.emplace_back(flag, ISA::SSE3); break;
-        case GNU_PROPERTY_X86_COMPAT_ISA_1_SSSE3:    values.emplace_back(flag, ISA::SSSE3); break;
-        case GNU_PROPERTY_X86_COMPAT_ISA_1_SSE4_1:   values.emplace_back(flag, ISA::SSE4_1); break;
-        case GNU_PROPERTY_X86_COMPAT_ISA_1_SSE4_2:   values.emplace_back(flag, ISA::SSE4_2); break;
-        case GNU_PROPERTY_X86_COMPAT_ISA_1_AVX:      values.emplace_back(flag, ISA::AVX); break;
-        case GNU_PROPERTY_X86_COMPAT_ISA_1_AVX2:     values.emplace_back(flag, ISA::AVX2); break;
-        case GNU_PROPERTY_X86_COMPAT_ISA_1_AVX512F:  values.emplace_back(flag, ISA::AVX512F); break;
-        case GNU_PROPERTY_X86_COMPAT_ISA_1_AVX512CD: values.emplace_back(flag, ISA::AVX512CD); break;
-        case GNU_PROPERTY_X86_COMPAT_ISA_1_AVX512ER: values.emplace_back(flag, ISA::AVX512ER); break;
-        case GNU_PROPERTY_X86_COMPAT_ISA_1_AVX512PF: values.emplace_back(flag, ISA::AVX512PF); break;
-        case GNU_PROPERTY_X86_COMPAT_ISA_1_AVX512VL: values.emplace_back(flag, ISA::AVX512VL); break;
-        case GNU_PROPERTY_X86_COMPAT_ISA_1_AVX512DQ: values.emplace_back(flag, ISA::AVX512DQ); break;
-        case GNU_PROPERTY_X86_COMPAT_ISA_1_AVX512BW: values.emplace_back(flag, ISA::AVX512BW); break;
+        case GNU_PROPERTY_X86_COMPAT_ISA_1_486:
+          values.emplace_back(flag, ISA::I486);
+          break;
+        case GNU_PROPERTY_X86_COMPAT_ISA_1_586:
+          values.emplace_back(flag, ISA::I586);
+          break;
+        case GNU_PROPERTY_X86_COMPAT_ISA_1_686:
+          values.emplace_back(flag, ISA::I686);
+          break;
+        case GNU_PROPERTY_X86_COMPAT_ISA_1_SSE:
+          values.emplace_back(flag, ISA::SSE);
+          break;
+        case GNU_PROPERTY_X86_COMPAT_ISA_1_SSE2:
+          values.emplace_back(flag, ISA::SSE2);
+          break;
+        case GNU_PROPERTY_X86_COMPAT_ISA_1_SSE3:
+          values.emplace_back(flag, ISA::SSE3);
+          break;
+        case GNU_PROPERTY_X86_COMPAT_ISA_1_SSSE3:
+          values.emplace_back(flag, ISA::SSSE3);
+          break;
+        case GNU_PROPERTY_X86_COMPAT_ISA_1_SSE4_1:
+          values.emplace_back(flag, ISA::SSE4_1);
+          break;
+        case GNU_PROPERTY_X86_COMPAT_ISA_1_SSE4_2:
+          values.emplace_back(flag, ISA::SSE4_2);
+          break;
+        case GNU_PROPERTY_X86_COMPAT_ISA_1_AVX:
+          values.emplace_back(flag, ISA::AVX);
+          break;
+        case GNU_PROPERTY_X86_COMPAT_ISA_1_AVX2:
+          values.emplace_back(flag, ISA::AVX2);
+          break;
+        case GNU_PROPERTY_X86_COMPAT_ISA_1_AVX512F:
+          values.emplace_back(flag, ISA::AVX512F);
+          break;
+        case GNU_PROPERTY_X86_COMPAT_ISA_1_AVX512CD:
+          values.emplace_back(flag, ISA::AVX512CD);
+          break;
+        case GNU_PROPERTY_X86_COMPAT_ISA_1_AVX512ER:
+          values.emplace_back(flag, ISA::AVX512ER);
+          break;
+        case GNU_PROPERTY_X86_COMPAT_ISA_1_AVX512PF:
+          values.emplace_back(flag, ISA::AVX512PF);
+          break;
+        case GNU_PROPERTY_X86_COMPAT_ISA_1_AVX512VL:
+          values.emplace_back(flag, ISA::AVX512VL);
+          break;
+        case GNU_PROPERTY_X86_COMPAT_ISA_1_AVX512DQ:
+          values.emplace_back(flag, ISA::AVX512DQ);
+          break;
+        case GNU_PROPERTY_X86_COMPAT_ISA_1_AVX512BW:
+          values.emplace_back(flag, ISA::AVX512BW);
+          break;

         default: values.emplace_back(flag, ISA::UNKNOWN); break;
       }
@@ -123,26 +212,30 @@ std::unique_ptr<X86ISA> X86ISA::create(uint32_t type, BinaryStream& stream) {
     case GNU_PROPERTY_X86_ISA_1_USED: return create_isa_1(FLAG::USED, stream);
     case GNU_PROPERTY_X86_ISA_1_NEEDED: return create_isa_1(FLAG::NEEDED, stream);

-    case GNU_PROPERTY_X86_COMPAT_ISA_1_USED: return create_compat_isa_1(FLAG::USED, stream, /*is_compat2*/ false);
-    case GNU_PROPERTY_X86_COMPAT_ISA_1_NEEDED: return create_compat_isa_1(FLAG::NEEDED, stream,  /*is_compat2*/ false);
+    case GNU_PROPERTY_X86_COMPAT_ISA_1_USED:
+      return create_compat_isa_1(FLAG::USED, stream, /*is_compat2*/ false);
+    case GNU_PROPERTY_X86_COMPAT_ISA_1_NEEDED:
+      return create_compat_isa_1(FLAG::NEEDED, stream, /*is_compat2*/ false);

-    case GNU_PROPERTY_X86_COMPAT_2_ISA_1_USED: return create_compat_isa_1(FLAG::USED, stream, /*is_compat2*/ true);
-    case GNU_PROPERTY_X86_COMPAT_2_ISA_1_NEEDED: return create_compat_isa_1(FLAG::NEEDED, stream, /*is_compat2*/ true);
+    case GNU_PROPERTY_X86_COMPAT_2_ISA_1_USED:
+      return create_compat_isa_1(FLAG::USED, stream, /*is_compat2*/ true);
+    case GNU_PROPERTY_X86_COMPAT_2_ISA_1_NEEDED:
+      return create_compat_isa_1(FLAG::NEEDED, stream, /*is_compat2*/ true);

     default: return nullptr;
   }
 }

-void X86ISA::dump(std::ostream &os) const {
+void X86ISA::dump(std::ostream& os) const {
   os << "x86/x86-64 ISA: " << fmt::to_string(values());
 }

 const char* to_string(X86ISA::FLAG flag) {
 #define ENTRY(X) std::pair(X86ISA::FLAG::X, #X)
-  STRING_MAP enums2str {
-    ENTRY(NONE),
-    ENTRY(NEEDED),
-    ENTRY(USED),
+  STRING_MAP enums2str{
+      ENTRY(NONE),
+      ENTRY(NEEDED),
+      ENTRY(USED),
   };
 #undef ENTRY
   if (auto it = enums2str.find(flag); it != enums2str.end()) {
@@ -154,41 +247,41 @@ const char* to_string(X86ISA::FLAG flag) {

 const char* to_string(X86ISA::ISA isa) {
 #define ENTRY(X) std::pair(X86ISA::ISA::X, #X)
-  STRING_MAP enums2str {
-    ENTRY(UNKNOWN),
-    ENTRY(BASELINE),
-    ENTRY(V2),
-    ENTRY(V3),
-    ENTRY(V4),
-
-    ENTRY(CMOV),
-    ENTRY(FMA),
-    ENTRY(I486),
-    ENTRY(I586),
-    ENTRY(I686),
-    ENTRY(SSE),
-    ENTRY(SSE2),
-    ENTRY(SSE3),
-    ENTRY(SSSE3),
-    ENTRY(SSE4_1),
-    ENTRY(SSE4_2),
-    ENTRY(AVX),
-    ENTRY(AVX2),
-    ENTRY(AVX512F),
-    ENTRY(AVX512CD),
-    ENTRY(AVX512ER),
-    ENTRY(AVX512PF),
-    ENTRY(AVX512VL),
-    ENTRY(AVX512DQ),
-    ENTRY(AVX512BW),
-    ENTRY(AVX512_4FMAPS),
-    ENTRY(AVX512_4VNNIW),
-    ENTRY(AVX512_BITALG),
-    ENTRY(AVX512_IFMA),
-    ENTRY(AVX512_VBMI),
-    ENTRY(AVX512_VBMI2),
-    ENTRY(AVX512_VNNI),
-    ENTRY(AVX512_BF16),
+  STRING_MAP enums2str{
+      ENTRY(UNKNOWN),
+      ENTRY(BASELINE),
+      ENTRY(V2),
+      ENTRY(V3),
+      ENTRY(V4),
+
+      ENTRY(CMOV),
+      ENTRY(FMA),
+      ENTRY(I486),
+      ENTRY(I586),
+      ENTRY(I686),
+      ENTRY(SSE),
+      ENTRY(SSE2),
+      ENTRY(SSE3),
+      ENTRY(SSSE3),
+      ENTRY(SSE4_1),
+      ENTRY(SSE4_2),
+      ENTRY(AVX),
+      ENTRY(AVX2),
+      ENTRY(AVX512F),
+      ENTRY(AVX512CD),
+      ENTRY(AVX512ER),
+      ENTRY(AVX512PF),
+      ENTRY(AVX512VL),
+      ENTRY(AVX512DQ),
+      ENTRY(AVX512BW),
+      ENTRY(AVX512_4FMAPS),
+      ENTRY(AVX512_4VNNIW),
+      ENTRY(AVX512_BITALG),
+      ENTRY(AVX512_IFMA),
+      ENTRY(AVX512_VBMI),
+      ENTRY(AVX512_VBMI2),
+      ENTRY(AVX512_VNNI),
+      ENTRY(AVX512_BF16),
   };
 #undef ENTRY
   if (auto it = enums2str.find(isa); it != enums2str.end()) {
@@ -198,4 +291,3 @@ const char* to_string(X86ISA::ISA isa) {
   return "UNKNOWN";
 }
 }
-}
diff --git a/deps/LIEF/src/ELF/NoteDetails/properties/common.hpp b/deps/LIEF/src/ELF/NoteDetails/properties/common.hpp
index 06d9928cfb0..73e199f45d0 100644
--- a/deps/LIEF/src/ELF/NoteDetails/properties/common.hpp
+++ b/deps/LIEF/src/ELF/NoteDetails/properties/common.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2021 - 2025 R. Thomas
+/* Copyright 2021 - 2026 R. Thomas
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -15,8 +15,6 @@
 #ifndef LIEF_ELF_NOTE_GNU_PROPERTIES_COMMON_H
 #define LIEF_ELF_NOTE_GNU_PROPERTIES_COMMON_H

-#include <cstdint>
-
 namespace LIEF::ELF {

 static constexpr auto GNU_PROPERTY_LOPROC = 0xc0000000;
@@ -44,35 +42,42 @@ static constexpr auto GNU_PROPERTY_X86_UINT32_OR_HI = 0xc000ffff;
 static constexpr auto GNU_PROPERTY_X86_UINT32_AND_LO = 0xc0000002;
 static constexpr auto GNU_PROPERTY_X86_UINT32_AND_HI = 0xc0007fff;

-static constexpr auto GNU_PROPERTY_X86_COMPAT_2_ISA_1_USED = GNU_PROPERTY_X86_UINT32_OR_AND_LO + 0;
-static constexpr auto GNU_PROPERTY_X86_FEATURE_2_USED = GNU_PROPERTY_X86_UINT32_OR_AND_LO + 1;
-static constexpr auto GNU_PROPERTY_X86_ISA_1_USED = GNU_PROPERTY_X86_UINT32_OR_AND_LO + 2;
+static constexpr auto GNU_PROPERTY_X86_COMPAT_2_ISA_1_USED =
+    GNU_PROPERTY_X86_UINT32_OR_AND_LO + 0;
+static constexpr auto GNU_PROPERTY_X86_FEATURE_2_USED =
+    GNU_PROPERTY_X86_UINT32_OR_AND_LO + 1;
+static constexpr auto GNU_PROPERTY_X86_ISA_1_USED =
+    GNU_PROPERTY_X86_UINT32_OR_AND_LO + 2;

-static constexpr auto GNU_PROPERTY_X86_FEATURE_1_AND = GNU_PROPERTY_X86_UINT32_AND_LO + 0;
+static constexpr auto GNU_PROPERTY_X86_FEATURE_1_AND =
+    GNU_PROPERTY_X86_UINT32_AND_LO + 0;
 static constexpr auto GNU_PROPERTY_X86_COMPAT_ISA_1_USED = 0xc0000000;
 static constexpr auto GNU_PROPERTY_X86_COMPAT_ISA_1_NEEDED = 0xc0000001;

-static constexpr auto GNU_PROPERTY_X86_COMPAT_2_ISA_1_NEEDED = GNU_PROPERTY_X86_UINT32_OR_LO + 0;
-static constexpr auto GNU_PROPERTY_X86_FEATURE_2_NEEDED = GNU_PROPERTY_X86_UINT32_OR_LO + 1;
-static constexpr auto GNU_PROPERTY_X86_ISA_1_NEEDED = GNU_PROPERTY_X86_UINT32_OR_LO + 2;
+static constexpr auto GNU_PROPERTY_X86_COMPAT_2_ISA_1_NEEDED =
+    GNU_PROPERTY_X86_UINT32_OR_LO + 0;
+static constexpr auto GNU_PROPERTY_X86_FEATURE_2_NEEDED =
+    GNU_PROPERTY_X86_UINT32_OR_LO + 1;
+static constexpr auto GNU_PROPERTY_X86_ISA_1_NEEDED =
+    GNU_PROPERTY_X86_UINT32_OR_LO + 2;

 static constexpr auto GNU_PROPERTY_X86_ISA_1_BASELINE = 1U << 0;
 static constexpr auto GNU_PROPERTY_X86_ISA_1_V2 = 1U << 1;
 static constexpr auto GNU_PROPERTY_X86_ISA_1_V3 = 1U << 2;
 static constexpr auto GNU_PROPERTY_X86_ISA_1_V4 = 1U << 3;

-static constexpr auto GNU_PROPERTY_X86_COMPAT_ISA_1_486      = 1U << 0;
-static constexpr auto GNU_PROPERTY_X86_COMPAT_ISA_1_586      = 1U << 1;
-static constexpr auto GNU_PROPERTY_X86_COMPAT_ISA_1_686      = 1U << 2;
-static constexpr auto GNU_PROPERTY_X86_COMPAT_ISA_1_SSE      = 1U << 3;
-static constexpr auto GNU_PROPERTY_X86_COMPAT_ISA_1_SSE2     = 1U << 4;
-static constexpr auto GNU_PROPERTY_X86_COMPAT_ISA_1_SSE3     = 1U << 5;
-static constexpr auto GNU_PROPERTY_X86_COMPAT_ISA_1_SSSE3    = 1U << 6;
-static constexpr auto GNU_PROPERTY_X86_COMPAT_ISA_1_SSE4_1   = 1U << 7;
-static constexpr auto GNU_PROPERTY_X86_COMPAT_ISA_1_SSE4_2   = 1U << 8;
-static constexpr auto GNU_PROPERTY_X86_COMPAT_ISA_1_AVX      = 1U << 9;
-static constexpr auto GNU_PROPERTY_X86_COMPAT_ISA_1_AVX2     = 1U << 10;
-static constexpr auto GNU_PROPERTY_X86_COMPAT_ISA_1_AVX512F  = 1U << 11;
+static constexpr auto GNU_PROPERTY_X86_COMPAT_ISA_1_486 = 1U << 0;
+static constexpr auto GNU_PROPERTY_X86_COMPAT_ISA_1_586 = 1U << 1;
+static constexpr auto GNU_PROPERTY_X86_COMPAT_ISA_1_686 = 1U << 2;
+static constexpr auto GNU_PROPERTY_X86_COMPAT_ISA_1_SSE = 1U << 3;
+static constexpr auto GNU_PROPERTY_X86_COMPAT_ISA_1_SSE2 = 1U << 4;
+static constexpr auto GNU_PROPERTY_X86_COMPAT_ISA_1_SSE3 = 1U << 5;
+static constexpr auto GNU_PROPERTY_X86_COMPAT_ISA_1_SSSE3 = 1U << 6;
+static constexpr auto GNU_PROPERTY_X86_COMPAT_ISA_1_SSE4_1 = 1U << 7;
+static constexpr auto GNU_PROPERTY_X86_COMPAT_ISA_1_SSE4_2 = 1U << 8;
+static constexpr auto GNU_PROPERTY_X86_COMPAT_ISA_1_AVX = 1U << 9;
+static constexpr auto GNU_PROPERTY_X86_COMPAT_ISA_1_AVX2 = 1U << 10;
+static constexpr auto GNU_PROPERTY_X86_COMPAT_ISA_1_AVX512F = 1U << 11;
 static constexpr auto GNU_PROPERTY_X86_COMPAT_ISA_1_AVX512CD = 1U << 12;
 static constexpr auto GNU_PROPERTY_X86_COMPAT_ISA_1_AVX512ER = 1U << 13;
 static constexpr auto GNU_PROPERTY_X86_COMPAT_ISA_1_AVX512PF = 1U << 14;
@@ -80,50 +85,50 @@ static constexpr auto GNU_PROPERTY_X86_COMPAT_ISA_1_AVX512VL = 1U << 15;
 static constexpr auto GNU_PROPERTY_X86_COMPAT_ISA_1_AVX512DQ = 1U << 16;
 static constexpr auto GNU_PROPERTY_X86_COMPAT_ISA_1_AVX512BW = 1U << 17;

-static constexpr auto GNU_PROPERTY_X86_COMPAT_2_ISA_1_CMOV           = 1U << 0;
-static constexpr auto GNU_PROPERTY_X86_COMPAT_2_ISA_1_SSE            = 1U << 1;
-static constexpr auto GNU_PROPERTY_X86_COMPAT_2_ISA_1_SSE2           = 1U << 2;
-static constexpr auto GNU_PROPERTY_X86_COMPAT_2_ISA_1_SSE3           = 1U << 3;
-static constexpr auto GNU_PROPERTY_X86_COMPAT_2_ISA_1_SSSE3          = 1U << 4;
-static constexpr auto GNU_PROPERTY_X86_COMPAT_2_ISA_1_SSE4_1         = 1U << 5;
-static constexpr auto GNU_PROPERTY_X86_COMPAT_2_ISA_1_SSE4_2         = 1U << 6;
-static constexpr auto GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX            = 1U << 7;
-static constexpr auto GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX2           = 1U << 8;
-static constexpr auto GNU_PROPERTY_X86_COMPAT_2_ISA_1_FMA            = 1U << 9;
-static constexpr auto GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512F        = 1U << 10;
-static constexpr auto GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512CD       = 1U << 11;
-static constexpr auto GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512ER       = 1U << 12;
-static constexpr auto GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512PF       = 1U << 13;
-static constexpr auto GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512VL       = 1U << 14;
-static constexpr auto GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512DQ       = 1U << 15;
-static constexpr auto GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512BW       = 1U << 16;
-static constexpr auto GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512_4FMAPS  = 1U << 17;
-static constexpr auto GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512_4VNNIW  = 1U << 18;
-static constexpr auto GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512_BITALG  = 1U << 19;
-static constexpr auto GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512_IFMA    = 1U << 20;
-static constexpr auto GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512_VBMI    = 1U << 21;
-static constexpr auto GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512_VBMI2   = 1U << 22;
-static constexpr auto GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512_VNNI    = 1U << 23;
-static constexpr auto GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512_BF16    = 1U << 24;
-
-
-static constexpr auto GNU_PROPERTY_X86_FEATURE_1_IBT     = 1U << 0;
-static constexpr auto GNU_PROPERTY_X86_FEATURE_1_SHSTK   = 1U << 1;
+static constexpr auto GNU_PROPERTY_X86_COMPAT_2_ISA_1_CMOV = 1U << 0;
+static constexpr auto GNU_PROPERTY_X86_COMPAT_2_ISA_1_SSE = 1U << 1;
+static constexpr auto GNU_PROPERTY_X86_COMPAT_2_ISA_1_SSE2 = 1U << 2;
+static constexpr auto GNU_PROPERTY_X86_COMPAT_2_ISA_1_SSE3 = 1U << 3;
+static constexpr auto GNU_PROPERTY_X86_COMPAT_2_ISA_1_SSSE3 = 1U << 4;
+static constexpr auto GNU_PROPERTY_X86_COMPAT_2_ISA_1_SSE4_1 = 1U << 5;
+static constexpr auto GNU_PROPERTY_X86_COMPAT_2_ISA_1_SSE4_2 = 1U << 6;
+static constexpr auto GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX = 1U << 7;
+static constexpr auto GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX2 = 1U << 8;
+static constexpr auto GNU_PROPERTY_X86_COMPAT_2_ISA_1_FMA = 1U << 9;
+static constexpr auto GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512F = 1U << 10;
+static constexpr auto GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512CD = 1U << 11;
+static constexpr auto GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512ER = 1U << 12;
+static constexpr auto GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512PF = 1U << 13;
+static constexpr auto GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512VL = 1U << 14;
+static constexpr auto GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512DQ = 1U << 15;
+static constexpr auto GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512BW = 1U << 16;
+static constexpr auto GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512_4FMAPS = 1U << 17;
+static constexpr auto GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512_4VNNIW = 1U << 18;
+static constexpr auto GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512_BITALG = 1U << 19;
+static constexpr auto GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512_IFMA = 1U << 20;
+static constexpr auto GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512_VBMI = 1U << 21;
+static constexpr auto GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512_VBMI2 = 1U << 22;
+static constexpr auto GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512_VNNI = 1U << 23;
+static constexpr auto GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512_BF16 = 1U << 24;
+
+
+static constexpr auto GNU_PROPERTY_X86_FEATURE_1_IBT = 1U << 0;
+static constexpr auto GNU_PROPERTY_X86_FEATURE_1_SHSTK = 1U << 1;
 static constexpr auto GNU_PROPERTY_X86_FEATURE_1_LAM_U48 = 1U << 2;
 static constexpr auto GNU_PROPERTY_X86_FEATURE_1_LAM_U57 = 1U << 3;

-static constexpr auto GNU_PROPERTY_X86_FEATURE_2_X86      = 1U << 0;
-static constexpr auto GNU_PROPERTY_X86_FEATURE_2_X87      = 1U << 1;
-static constexpr auto GNU_PROPERTY_X86_FEATURE_2_MMX      = 1U << 2;
-static constexpr auto GNU_PROPERTY_X86_FEATURE_2_XMM      = 1U << 3;
-static constexpr auto GNU_PROPERTY_X86_FEATURE_2_YMM      = 1U << 4;
-static constexpr auto GNU_PROPERTY_X86_FEATURE_2_ZMM      = 1U << 5;
-static constexpr auto GNU_PROPERTY_X86_FEATURE_2_FXSR     = 1U << 6;
-static constexpr auto GNU_PROPERTY_X86_FEATURE_2_XSAVE    = 1U << 7;
+static constexpr auto GNU_PROPERTY_X86_FEATURE_2_X86 = 1U << 0;
+static constexpr auto GNU_PROPERTY_X86_FEATURE_2_X87 = 1U << 1;
+static constexpr auto GNU_PROPERTY_X86_FEATURE_2_MMX = 1U << 2;
+static constexpr auto GNU_PROPERTY_X86_FEATURE_2_XMM = 1U << 3;
+static constexpr auto GNU_PROPERTY_X86_FEATURE_2_YMM = 1U << 4;
+static constexpr auto GNU_PROPERTY_X86_FEATURE_2_ZMM = 1U << 5;
+static constexpr auto GNU_PROPERTY_X86_FEATURE_2_FXSR = 1U << 6;
+static constexpr auto GNU_PROPERTY_X86_FEATURE_2_XSAVE = 1U << 7;
 static constexpr auto GNU_PROPERTY_X86_FEATURE_2_XSAVEOPT = 1U << 8;
-static constexpr auto GNU_PROPERTY_X86_FEATURE_2_XSAVEC   = 1U << 9;
-static constexpr auto GNU_PROPERTY_X86_FEATURE_2_TMM      = 1U << 10;
-static constexpr auto GNU_PROPERTY_X86_FEATURE_2_MASK     = 1U << 11;
+static constexpr auto GNU_PROPERTY_X86_FEATURE_2_XSAVEC = 1U << 9;
+static constexpr auto GNU_PROPERTY_X86_FEATURE_2_TMM = 1U << 10;
+static constexpr auto GNU_PROPERTY_X86_FEATURE_2_MASK = 1U << 11;

 }

diff --git a/deps/LIEF/src/ELF/ObjectFileLayout.hpp b/deps/LIEF/src/ELF/ObjectFileLayout.hpp
index fd09dd3ec87..60432b2cbcd 100644
--- a/deps/LIEF/src/ELF/ObjectFileLayout.hpp
+++ b/deps/LIEF/src/ELF/ObjectFileLayout.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2021 - 2025 R. Thomas
+/* Copyright 2021 - 2026 R. Thomas
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -26,16 +26,23 @@

 #include "logging.hpp"
 #include "Layout.hpp"
-namespace LIEF {
-namespace ELF {
+
+namespace LIEF::ELF {

 /// Class used to compute the size and the offsets of the elements
 /// needed to rebuild the ELF file.
 class LIEF_LOCAL ObjectFileLayout : public Layout {
   public:
-  using relocations_map_t    = std::unordered_map<Section*, std::vector<Relocation*>>; // Relocation associated with a section
-  using sections_reloc_map_t = std::unordered_map<Section*, Section*>; // Map a section with its associated relocation section
-  using rel_sections_size_t  = std::unordered_map<Section*, size_t>;   // Map relocation sections with needed size
+  using relocations_map_t =
+      std::unordered_map<Section*,
+                         std::vector<Relocation*>>; // Relocation associated with a
+                                                    // section
+  using sections_reloc_map_t =
+      std::unordered_map<Section*, Section*>; // Map a section with its associated
+                                              // relocation section
+  using rel_sections_size_t =
+      std::unordered_map<Section*,
+                         size_t>; // Map relocation sections with needed size

   public:
   using Layout::Layout;
@@ -49,7 +56,7 @@ class LIEF_LOCAL ObjectFileLayout : public Layout {
   /// is greater than 0
   bool should_relocate(const Section& sec) const {
     const auto it = sec_reloc_info_.find(&sec);
-    if (it == std::end(sec_reloc_info_)) {
+    if (it == sec_reloc_info_.end()) {
       return false;
     }
     return it->second > 0;
@@ -67,11 +74,13 @@ class LIEF_LOCAL ObjectFileLayout : public Layout {
       if (section->type() == Section::TYPE::NOBITS) {
         continue;
       }
-      last_offset_sections = std::max<uint64_t>(section->file_offset() + section->size(),
-                                                last_offset_sections);
+      last_offset_sections =
+          std::max<uint64_t>(section->file_offset() + section->size(),
+                             last_offset_sections);
     }
-    LIEF_DEBUG("Sections' last offset: 0x{:x}", last_offset_sections);
-    LIEF_DEBUG("SHDR Table:            0x{:x}", binary_->header().section_headers_offset());
+    LIEF_DEBUG("Sections' last offset: {:#x}", last_offset_sections);
+    LIEF_DEBUG("SHDR Table:            {:#x}",
+               binary_->header().section_headers_offset());

     Header& hdr = binary_->header();
     for (Section& sec : binary_->sections()) {
@@ -80,7 +89,7 @@ class LIEF_LOCAL ObjectFileLayout : public Layout {
       }

       const size_t needed_size = sec_reloc_info_[&sec];
-      LIEF_DEBUG("Need to relocate: '{}' (0x{:x} bytes)", sec.name(), needed_size);
+      LIEF_DEBUG("Need to relocate '{}' ({:#x} bytes)", sec.name(), needed_size);

       DataHandler::Node new_node{last_offset_sections, needed_size,
                                  DataHandler::Node::SECTION};
@@ -121,15 +130,15 @@ class LIEF_LOCAL ObjectFileLayout : public Layout {
   ~ObjectFileLayout() override = default;

   ObjectFileLayout() = delete;
+
   private:
   std::unordered_map<const Section*, size_t> sec_reloc_info_;

   relocations_map_t relocation_map_;
   sections_reloc_map_t sections_reloc_map_;
   rel_sections_size_t rel_sections_size_;
-
 };
 }
-}
+

 #endif
diff --git a/deps/LIEF/src/ELF/Parser.cpp b/deps/LIEF/src/ELF/Parser.cpp
index 977631337d4..ad85f422466 100644
--- a/deps/LIEF/src/ELF/Parser.cpp
+++ b/deps/LIEF/src/ELF/Parser.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -14,13 +14,16 @@
  * limitations under the License.
  */
 #include <memory>
-#include <iterator>
 #include <algorithm>
+#include <cstring>

 #include "logging.hpp"

 #include "LIEF/BinaryStream/VectorStream.hpp"
+#include "LIEF/BinaryStream/MemoryStream.hpp"
+#include "LIEF/BinaryStream/DumpStream.hpp"

+#include "LIEF/utils.hpp"
 #include "LIEF/ELF/utils.hpp"
 #include "LIEF/ELF/Parser.hpp"
 #include "LIEF/ELF/Binary.hpp"
@@ -32,11 +35,14 @@
 #include "LIEF/ELF/SysvHash.hpp"

 #include "ELF/DataHandler/Handler.hpp"
+#include "ELF/elf_utils.hpp"
+#include "LIEF/ELF/EnumToString.hpp"

 #include "Parser.tcc"

-namespace LIEF {
-namespace ELF {
+#include "internal_utils.hpp"
+
+namespace LIEF::ELF {

 struct Target {
   Header::CLASS clazz = Header::CLASS::NONE;
@@ -49,19 +55,24 @@ Parser::~Parser() = default;
 Parser::Parser(const std::vector<uint8_t>& data, ParserConfig conf) :
   stream_{std::make_unique<VectorStream>(data)},
   binary_{new Binary{}},
-  config_{std::move(conf)}
-{}
+  config_{conf} {}

 Parser::Parser(std::unique_ptr<BinaryStream> stream, ParserConfig conf) :
   stream_{std::move(stream)},
   binary_{new Binary{}},
-  config_{std::move(conf)}
-{}
+  config_{conf} {
+  if (const auto* memory = stream_->cast<MemoryStream>()) {
+    memory_address_ = memory->base_address();
+  }
+
+  if (const auto* dump = stream_->cast<DumpStream>()) {
+    memory_address_ = dump->base_address();
+  }
+}

 Parser::Parser(const std::string& file, ParserConfig conf) :
   binary_{new Binary{}},
-  config_{std::move(conf)}
-{
+  config_{conf} {
   if (auto s = VectorStream::from_file(file)) {
     stream_ = std::make_unique<VectorStream>(std::move(*s));
   }
@@ -75,8 +86,7 @@ Header::ELF_DATA determine_elf_endianess(ARCH machine) {
     case ARCH::SPARCV9:
     case ARCH::S390:
     case ARCH::M68K:
-    case ARCH::OPENRISC:
-      return Header::ELF_DATA::MSB;
+    case ARCH::OPENRISC: return Header::ELF_DATA::MSB;

     /* Architectures that are known to be little-endian only */
     case ARCH::HEXAGON:
@@ -85,27 +95,26 @@ Header::ELF_DATA determine_elf_endianess(ARCH machine) {
     case ARCH::CRIS:
     case ARCH::I386: // x86
     case ARCH::X86_64:
-    case ARCH::LOONGARCH:
-      return Header::ELF_DATA::LSB;
+    case ARCH::LOONGARCH: return Header::ELF_DATA::LSB;

-    default:
-      return Header::ELF_DATA::NONE;
+    default: return Header::ELF_DATA::NONE;
   }
 }

 /*
- * Get the endianess of the current architecture
+ * Get the endianness of the current architecture
  */
 constexpr Header::ELF_DATA get_endianess() {
-  #ifdef __BYTE_ORDER__
-    #if defined(__ORDER_LITTLE_ENDIAN__) && (__BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__)
-      return Header::ELF_DATA::LSB;
-    #elif defined(__ORDER_BIG_ENDIAN__) && (__BYTE_ORDER__ == __ORDER_BIG_ENDIAN__)
-      return Header::ELF_DATA::MSB;
-    #endif
+#ifdef __BYTE_ORDER__
+  #if defined(__ORDER_LITTLE_ENDIAN__) &&                                         \
+      (__BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__)
+  return Header::ELF_DATA::LSB;
+  #elif defined(__ORDER_BIG_ENDIAN__) && (__BYTE_ORDER__ == __ORDER_BIG_ENDIAN__)
+  return Header::ELF_DATA::MSB;
   #endif
-  /* If there are no __BYTE_ORDER__ we take the (arbitrary) decision that we are
-   * on a little endian architecture.
+#endif
+  /* If there is no __BYTE_ORDER__ we take the (arbitrary) decision that we are
+   * on a little-endian architecture.
    */
   return Header::ELF_DATA::LSB;
 }
@@ -122,11 +131,10 @@ constexpr Header::ELF_DATA invert_endianess(Header::ELF_DATA endian) {

 Header::ELF_DATA determine_elf_endianess(BinaryStream& stream) {
   static constexpr auto BOTH_ENDIANESS = {
-    ARCH::AARCH64, ARCH::ARM,  ARCH::SH,  ARCH::XTENSA,
-    ARCH::ARC,     ARCH::MIPS, ARCH::PPC, ARCH::PPC64,
-    ARCH::IA_64,
+      ARCH::AARCH64, ARCH::ARM, ARCH::SH,    ARCH::XTENSA, ARCH::ARC,
+      ARCH::MIPS,    ARCH::PPC, ARCH::PPC64, ARCH::IA_64,
   };
-  Header::ELF_DATA from_ei_data   = Header::ELF_DATA::NONE;
+  Header::ELF_DATA from_ei_data = Header::ELF_DATA::NONE;
   /* ELF_DATA from_e_machine = ELF_DATA::ELFDATANONE; */

   // First, check EI_CLASS
@@ -150,8 +158,8 @@ Header::ELF_DATA determine_elf_endianess(BinaryStream& stream) {
   // } ElfN_Ehdr;
   constexpr size_t e_machine_off = offsetof(details::Elf32_Ehdr, e_machine);
   {
-    // Read Machine type with both endianess
-    ARCH machine      = ARCH::NONE; // e_machine value without endian swap enabled
+    // Read Machine type with both endianness
+    ARCH machine = ARCH::NONE;      // e_machine value without endian swap enabled
     ARCH machine_swap = ARCH::NONE; // e_machine value with endian swap enabled
     if (auto res = stream.peek<uint16_t>(e_machine_off)) {
       machine = static_cast<ARCH>(*res);
@@ -164,13 +172,14 @@ Header::ELF_DATA determine_elf_endianess(BinaryStream& stream) {
       }
     }

-    LIEF_DEBUG("Machine      '{}' (0x{:x})", to_string(machine), (int)machine);
-    LIEF_DEBUG("Machine Swap '{}' (0x{:x})", to_string(machine_swap), (int)machine);
+    LIEF_DEBUG("Machine:      '{}' ({:#x})", to_string(machine), (int)machine);
+    LIEF_DEBUG("Machine swap: '{}' ({:#x})", to_string(machine_swap),
+               (int)machine);

-    const Header::ELF_DATA endian      = determine_elf_endianess(machine);
+    const Header::ELF_DATA endian = determine_elf_endianess(machine);
     const Header::ELF_DATA endian_swap = determine_elf_endianess(machine_swap);

-    LIEF_DEBUG("Endian: {}",        to_string(endian));
+    LIEF_DEBUG("Endian: {}", to_string(endian));
     LIEF_DEBUG("Endian (swap): {}", to_string(endian_swap));

     if (endian != Header::ELF_DATA::NONE) {
@@ -182,16 +191,15 @@ Header::ELF_DATA determine_elf_endianess(BinaryStream& stream) {
     }

     {
-      auto it = std::find(BOTH_ENDIANESS.begin(), BOTH_ENDIANESS.end(),
-                          machine);
+      auto it = std::find(BOTH_ENDIANESS.begin(), BOTH_ENDIANESS.end(), machine);
       if (it != BOTH_ENDIANESS.end()) {
         return get_endianess();
       }
     }

     {
-      auto it = std::find(BOTH_ENDIANESS.begin(), BOTH_ENDIANESS.end(),
-                          machine_swap);
+      auto it =
+          std::find(BOTH_ENDIANESS.begin(), BOTH_ENDIANESS.end(), machine_swap);
       if (it != BOTH_ENDIANESS.end()) {
         return invert_endianess(get_endianess());
       }
@@ -201,11 +209,11 @@ Header::ELF_DATA determine_elf_endianess(BinaryStream& stream) {
 }

 bool Parser::should_swap() const {
-  const Header::ELF_DATA binary_endian  = determine_elf_endianess(*stream_);
+  const Header::ELF_DATA binary_endian = determine_elf_endianess(*stream_);
   const Header::ELF_DATA current_endian = get_endianess();
   LIEF_DEBUG("LIEF Endianness:   '{}'", to_string(current_endian));
   LIEF_DEBUG("Binary Endianness: '{}'", to_string(binary_endian));
-  if (binary_endian  != Header::ELF_DATA::NONE &&
+  if (binary_endian != Header::ELF_DATA::NONE &&
       current_endian != Header::ELF_DATA::NONE)
   {
     return binary_endian != current_endian;
@@ -214,7 +222,7 @@ bool Parser::should_swap() const {
 }

 Target determine_elf_target(BinaryStream& stream) {
-  auto from_ei_class  = Header::CLASS::NONE;
+  auto from_ei_class = Header::CLASS::NONE;
   auto from_e_machine = Header::CLASS::NONE;
   auto file_type = Header::FILE_TYPE::NONE;

@@ -251,22 +259,22 @@ Target determine_elf_target(BinaryStream& stream) {
       case ARCH::X86_64:
       case ARCH::PPC64:
       case ARCH::SPARCV9:
-        {
-          from_e_machine = Header::CLASS::ELF64;
-          break;
-        }
+      {
+        from_e_machine = Header::CLASS::ELF64;
+        break;
+      }
       case ARCH::I386:
       case ARCH::ARM:
       case ARCH::PPC:
-        {
-          from_e_machine = Header::CLASS::ELF32;
-          break;
-        }
+      {
+        from_e_machine = Header::CLASS::ELF32;
+        break;
+      }
       default:
-        {
-          from_e_machine = Header::CLASS::NONE;
-          break;
-        }
+      {
+        from_e_machine = Header::CLASS::NONE;
+        break;
+      }
     }
   }
   if (from_e_machine != Header::CLASS::NONE &&
@@ -291,9 +299,9 @@ Target determine_elf_target(BinaryStream& stream) {
     }

     LIEF_WARN("ELF class from machine type ('{}') does not match ELF class from "
-              "e_ident ('{}'). The binary has been likely modified.",
+              "e_ident ('{}'). The binary may have been modified.",
               to_string(from_e_machine), to_string(from_ei_class));
-    // Make the priority on Elf_Ehdr.e_machine as it is
+    // Prioritize Elf_Ehdr.e_machine as it is
     // this value that is used by the kernel.
     return {from_e_machine, machine};
   }
@@ -314,17 +322,17 @@ ok_error_t Parser::init() {
   binary_->original_size_ = stream_->size();
   binary_->pagesize_ = config_.page_size;

-  auto res = DataHandler::Handler::from_stream(stream_);
-  if (!res) {
-    LIEF_ERR("The provided stream is not supported by the ELF DataHandler");
+  auto strm = DataHandler::Handler::from_stream(stream_);
+  if (strm == nullptr) {
+    LIEF_ERR("Unsupported stream type for the ELF DataHandler");
     return make_error_code(lief_errors::not_supported);
   }

-  binary_->datahandler_ = std::move(*res);
+  binary_->datahandler_ = std::move(strm);

   auto res_ident = stream_->peek<Header::identity_t>();
   if (!res_ident) {
-    LIEF_ERR("Can't read ELF identity. Nothing to parse");
+    LIEF_ERR("Failed to read ELF identity");
     return make_error_code(res_ident.error());
   }

@@ -335,24 +343,24 @@ ok_error_t Parser::init() {

   switch (elf_target.clazz) {
     case Header::CLASS::ELF32:
-      {
-        if (elf_target.arch == ARCH::X86_64) {
-          return parse_binary<details::ELF32_x32>();
-        }
-
-        if (elf_target.arch == ARCH::AARCH64) {
-          return parse_binary<details::ELF32_arm64>();
-        }
+    {
+      if (elf_target.arch == ARCH::X86_64) {
+        return parse_binary<details::ELF32_x32>();
+      }

-        return parse_binary<details::ELF32>();
+      if (elf_target.arch == ARCH::AARCH64) {
+        return parse_binary<details::ELF32_arm64>();
       }
+
+      return parse_binary<details::ELF32>();
+    }
     case Header::CLASS::ELF64: return parse_binary<details::ELF64>();
     case Header::CLASS::NONE:
-      {
-        LIEF_ERR("Can't determine the ELF class ({})",
-                  static_cast<size_t>(binary_->type_));
-        return make_error_code(lief_errors::corrupted);
-      }
+    {
+      LIEF_ERR("Failed to determine ELF class ({})",
+               static_cast<size_t>(binary_->type_));
+      return make_error_code(lief_errors::corrupted);
+    }
   }

   return ok();
@@ -395,10 +403,70 @@ std::unique_ptr<Binary> Parser::parse(std::unique_ptr<BinaryStream> stream,
   return std::move(parser.binary_);
 }

+std::unique_ptr<Binary> Parser::parse_from_memory(uintptr_t address,
+                                                  const ParserConfig& conf) {
+  static constexpr uint64_t MAX_MEM_IMAGE = 6_GB;
+  MemoryStream stream(address, 0x4000);
+  auto elf_info = get_info(stream);
+  if (!elf_info) {
+    return nullptr;
+  }
+
+  uint64_t vsize = elf_info->vsize();
+  if (vsize == 0) {
+    return nullptr;
+  }
+
+  if (vsize > MAX_MEM_IMAGE) {
+    LIEF_WARN("In-memory ELF image size ({:#x}) is too large, limiting to {:#x}",
+              vsize, MAX_MEM_IMAGE);
+    vsize = MAX_MEM_IMAGE;
+  }
+
+  return parse_from_memory(address, static_cast<size_t>(vsize), conf);
+}
+
+std::unique_ptr<Binary> Parser::parse_from_memory(uintptr_t address, size_t size,
+                                                  const ParserConfig& conf) {
+  auto stream = std::make_unique<MemoryStream>(address, size);
+  if (!is_elf(*stream)) {
+    return nullptr;
+  }
+
+  Parser parser{std::move(stream), conf};
+  parser.init();
+  return std::move(parser.binary_);
+}
+
+std::unique_ptr<Binary> Parser::parse_from_dump(const std::string& filepath,
+                                                uint64_t addr,
+                                                const ParserConfig& conf) {
+  auto stream = VectorStream::from_file(filepath);
+  if (!stream) {
+    return nullptr;
+  }
+  return parse_from_dump(std::make_unique<VectorStream>(std::move(*stream)), addr,
+                         conf);
+}
+
+std::unique_ptr<Binary> Parser::parse_from_dump(BinaryStream& stream,
+                                                uint64_t addr,
+                                                const ParserConfig& conf) {
+  return parse(std::make_unique<DumpStream>(addr, stream), conf);
+}
+
+std::unique_ptr<Binary>
+    Parser::parse_from_dump(std::unique_ptr<BinaryStream> stream, uint64_t addr,
+                            const ParserConfig& conf) {
+  if (stream == nullptr) {
+    return nullptr;
+  }
+  return parse(std::make_unique<DumpStream>(addr, std::move(stream)), conf);
+}

 ok_error_t Parser::parse_symbol_version(uint64_t symbol_version_offset) {
-  LIEF_DEBUG("== Parsing symbol version ==");
-  LIEF_DEBUG("Symbol version offset: 0x{:x}", symbol_version_offset);
+  LIEF_DEBUG("Parsing symbol version");
+  LIEF_DEBUG("Symbol version offset: {:#x}", symbol_version_offset);

   const auto nb_entries = static_cast<uint32_t>(binary_->dynamic_symbols_.size());

@@ -408,13 +476,16 @@ ok_error_t Parser::parse_symbol_version(uint64_t symbol_version_offset) {
     if (!val) {
       break;
     }
-    binary_->symbol_version_table_.emplace_back(std::make_unique<SymbolVersion>(*val));
+    binary_->symbol_version_table_.emplace_back(
+        std::make_unique<SymbolVersion>(*val)
+    );
   }
   return ok();
 }


-result<uint64_t> Parser::get_dynamic_string_table_from_segments(BinaryStream* stream) const {
+result<uint64_t>
+    Parser::get_dynamic_string_table_from_segments(BinaryStream* stream) const {
   const ARCH arch = binary_->header().machine_type();
   if (const DynamicEntry* dt_str = binary_->get(DynamicEntry::TAG::STRTAB)) {
     return binary_->virtual_address_to_offset(dt_str->value());
@@ -432,7 +503,8 @@ result<uint64_t> Parser::get_dynamic_string_table_from_segments(BinaryStream* st
         if (!dt) {
           break;
         }
-        if (DynamicEntry::from_value(dt->d_tag, arch) == DynamicEntry::TAG::STRTAB) {
+        if (DynamicEntry::from_value(dt->d_tag, arch) == DynamicEntry::TAG::STRTAB)
+        {
           return binary_->virtual_address_to_offset(dt->d_un.d_val);
         }
       } else {
@@ -441,7 +513,8 @@ result<uint64_t> Parser::get_dynamic_string_table_from_segments(BinaryStream* st
           break;
         }

-        if (DynamicEntry::from_value(dt->d_tag, arch) == DynamicEntry::TAG::STRTAB) {
+        if (DynamicEntry::from_value(dt->d_tag, arch) == DynamicEntry::TAG::STRTAB)
+        {
           return binary_->virtual_address_to_offset(dt->d_un.d_val);
         }
       }
@@ -454,7 +527,7 @@ result<uint64_t> Parser::get_dynamic_string_table_from_segments(BinaryStream* st
   }

   const uint64_t offset = dyn_segment->file_offset();
-  const uint64_t size   = dyn_segment->physical_size();
+  const uint64_t size = dyn_segment->physical_size();

   stream_->setpos(offset);

@@ -464,7 +537,7 @@ result<uint64_t> Parser::get_dynamic_string_table_from_segments(BinaryStream* st
     for (size_t i = 0; i < nb_entries; ++i) {
       auto res = stream_->read<details::Elf32_Dyn>();
       if (!res) {
-        LIEF_ERR("Can't read dynamic entry #{}", i);
+        LIEF_ERR("Failed to read dynamic entry #{}", i);
         return 0;
       }
       auto dt = *res;
@@ -479,7 +552,7 @@ result<uint64_t> Parser::get_dynamic_string_table_from_segments(BinaryStream* st
     for (size_t i = 0; i < nb_entries; ++i) {
       auto res = stream_->read<details::Elf64_Dyn>();
       if (!res) {
-        LIEF_ERR("Can't read dynamic entry #{}", i);
+        LIEF_ERR("Failed to read dynamic entry #{}", i);
         return 0;
       }
       const auto dt = *res;
@@ -494,15 +567,15 @@ result<uint64_t> Parser::get_dynamic_string_table_from_segments(BinaryStream* st

 uint64_t Parser::get_dynamic_string_table_from_sections() const {
   // Find Dynamic string section
-  auto it_dynamic_string_section = std::find_if(
-      std::begin(binary_->sections_), std::end(binary_->sections_),
-      [] (const std::unique_ptr<Section>& section) {
-        return section->name() == ".dynstr" &&
-               section->type() == Section::TYPE::STRTAB;
-      });
+  auto it_dynamic_string_section =
+      std::find_if(binary_->sections_.begin(), binary_->sections_.end(),
+                   [](const std::unique_ptr<Section>& section) {
+                     return section->name() == ".dynstr" &&
+                            section->type() == Section::TYPE::STRTAB;
+                   });


-  if (it_dynamic_string_section == std::end(binary_->sections_)) {
+  if (it_dynamic_string_section == binary_->sections_.end()) {
     return 0;
   }
   return (*it_dynamic_string_section)->file_offset();
@@ -519,31 +592,32 @@ uint64_t Parser::get_dynamic_string_table(BinaryStream* stream) const {
 void Parser::link_symbol_version() {
   if (binary_->dynamic_symbols_.size() == binary_->symbol_version_table_.size()) {
     for (size_t i = 0; i < binary_->dynamic_symbols_.size(); ++i) {
-      binary_->dynamic_symbols_[i]->symbol_version_ = binary_->symbol_version_table_[i].get();
+      binary_->dynamic_symbols_[i]->symbol_version_ =
+          binary_->symbol_version_table_[i].get();
     }
   }
 }

 ok_error_t Parser::parse_symbol_sysv_hash(uint64_t offset) {
-  LIEF_DEBUG("== Parse SYSV hash table ==");
+  LIEF_DEBUG("Parsing SYSV hash table");
   auto sysvhash = std::make_unique<SysvHash>();

   stream_->setpos(offset);

   auto res_nbucket = stream_->read<uint32_t>();
   if (!res_nbucket) {
-    LIEF_ERR("Can't read the number of buckets");
+    LIEF_ERR("Failed to read bucket count");
     return make_error_code(lief_errors::read_error);
   }

   auto res_nchains = stream_->read<uint32_t>();
   if (!res_nchains) {
-    LIEF_ERR("Can't read the number of chains");
+    LIEF_ERR("Failed to read chain count");
     return make_error_code(lief_errors::read_error);
   }

   const auto nbuckets = std::min<uint32_t>(*res_nbucket, Parser::NB_MAX_BUCKETS);
-  const auto nchain   = std::min<uint32_t>(*res_nchains, Parser::NB_MAX_CHAINS);
+  const auto nchain = std::min<uint32_t>(*res_nchains, Parser::NB_MAX_CHAINS);

   sysvhash->buckets_.reserve(nbuckets);

@@ -551,7 +625,7 @@ ok_error_t Parser::parse_symbol_sysv_hash(uint64_t offset) {
     if (auto bucket = stream_->read<uint32_t>()) {
       sysvhash->buckets_.push_back(*bucket);
     } else {
-      LIEF_ERR("Can't read bucket #{}", i);
+      LIEF_ERR("Failed to read bucket #{}", i);
       break;
     }
   }
@@ -561,7 +635,7 @@ ok_error_t Parser::parse_symbol_sysv_hash(uint64_t offset) {
     if (auto chain = stream_->read<uint32_t>()) {
       sysvhash->chains_.push_back(*chain);
     } else {
-      LIEF_ERR("Can't read chain #{}", i);
+      LIEF_ERR("Failed to read chain #{}", i);
       break;
     }
   }
@@ -571,68 +645,9 @@ ok_error_t Parser::parse_symbol_sysv_hash(uint64_t offset) {
   return ok();
 }

-#if 0
-std::unique_ptr<Note> Parser::get_note(uint32_t type, std::string name,
-                                       std::vector<uint8_t> desc_bytes)
-{
-  const E_TYPE ftype = binary_->header().file_type();
-
-  auto conv = Note::convert_type(ftype, type, name);
-  if (!conv) {
-    LIEF_WARN("Note type: 0x{:x} is not supported for owner: '{}'", type, name);
-    return std::make_unique<Note>(std::move(name), Note::TYPE::UNKNOWN, type,
-                                  std::move(desc_bytes));
-  }
-
-  Note::TYPE ntype = *conv;
-
-  if (ntype != Note::TYPE::GNU_BUILD_ATTRIBUTE_FUNC &&
-      ntype != Note::TYPE::GNU_BUILD_ATTRIBUTE_OPEN)
-  {
-    name = name.c_str();
-  }
-
-  const ARCH arch = binary_->header().machine_type();
-  const ELF_CLASS cls = binary_->header().identity_class();
-
-  if (cls != ELF_CLASS::ELFCLASS32 && cls != ELF_CLASS::ELFCLASS64) {
-    LIEF_WARN("Invalid ELFCLASS");
-    return nullptr;
-  }
-
-  switch (ntype) {
-    case Note::TYPE::CORE_PRSTATUS:
-        return std::make_unique<CorePrStatus>(arch, cls, std::move(name), type,
-                                              std::move(desc_bytes));
-    case Note::TYPE::CORE_PRPSINFO:
-        return std::make_unique<CorePrPsInfo>(arch, cls, std::move(name), type,
-                                              std::move(desc_bytes));
-    case Note::TYPE::CORE_FILE:
-        return std::make_unique<CoreFile>(arch, cls, std::move(name), type,
-                                          std::move(desc_bytes));
-    case Note::TYPE::CORE_AUXV:
-        return std::make_unique<CoreAuxv>(arch, cls, std::move(name), type,
-                                          std::move(desc_bytes));
-    case Note::TYPE::CORE_SIGINFO:
-        return std::make_unique<CoreSigInfo>(std::move(name), ntype, type,
-                                             std::move(desc_bytes));
-    case Note::TYPE::ANDROID_IDENT:
-        return std::make_unique<AndroidIdent>(std::move(name), ntype, type,
-                                              std::move(desc_bytes));
-    case Note::TYPE::GNU_ABI_TAG:
-        return std::make_unique<NoteAbi>(std::move(name), ntype, type,
-                                         std::move(desc_bytes));
-
-    default:
-        return std::make_unique<Note>(std::move(name), ntype, type,
-                                      std::move(desc_bytes));
-  }
-}
-#endif
-
 ok_error_t Parser::parse_notes(uint64_t offset, uint64_t size) {
   static constexpr auto ERROR_THRESHOLD = 6;
-  LIEF_DEBUG("== Parsing note segment ==");
+  LIEF_DEBUG("Parsing note segment");
   stream_->setpos(offset);
   uint64_t last_offset = offset + size;
   size_t error_count = 0;
@@ -646,27 +661,28 @@ ok_error_t Parser::parse_notes(uint64_t offset, uint64_t size) {
     const Section* sec = binary_->section_from_offset(current_pos);
     std::string sec_name = sec != nullptr ? sec->name() : "";

-    std::unique_ptr<Note> note = Note::create(
-        *stream_, std::move(sec_name),
-        binary_->header().file_type(), binary_->header().machine_type(),
-        binary_->header().identity_class()
-    );
+    std::unique_ptr<Note> note =
+        Note::create(*stream_, std::move(sec_name), binary_->header().file_type(),
+                     binary_->header().machine_type(),
+                     binary_->header().identity_class());

     if (note != nullptr) {
-      const auto it_note = std::find_if(
-          std::begin(binary_->notes_), std::end(binary_->notes_),
-          [&note] (const std::unique_ptr<Note>& n) { return *n == *note; });
+      const auto it_note =
+          std::find_if(binary_->notes_.begin(), binary_->notes_.end(),
+                       [&note](const std::unique_ptr<Note>& n) {
+                         return *n == *note;
+                       });

-      if (it_note == std::end(binary_->notes_)) { // Not already present
+      if (it_note == binary_->notes_.end()) { // Not already present
         binary_->notes_.push_back(std::move(note));
       }
     } else {
-      LIEF_WARN("Note not parsed!");
+      LIEF_WARN("Failed to parse note");
       ++error_count;
     }

     if (error_count > ERROR_THRESHOLD) {
-      LIEF_ERR("Too many errors while trying to parse notes");
+      LIEF_ERR("Too many errors while parsing notes");
       return make_error_code(lief_errors::corrupted);
     }

@@ -690,16 +706,17 @@ ok_error_t Parser::parse_overlay() {
     return ok();
   }

-  LIEF_INFO("Overlay detected at 0x{:x} ({} bytes)", last_offset, overlay_size);
+  LIEF_INFO("Overlay detected at {:#x} ({} bytes)", last_offset, overlay_size);

   if (!stream_->peek_data(binary_->overlay_, last_offset, overlay_size)) {
-    LIEF_WARN("Can't read overlay data");
+    LIEF_WARN("Failed to read overlay data");
     return make_error_code(lief_errors::read_error);
   }
   return ok();
 }

-bool Parser::check_section_in_segment(const Section& section, const Segment& segment) {
+bool Parser::check_section_in_segment(const Section& section,
+                                      const Segment& segment) {
   if (section.virtual_address() > 0) {
     const uint64_t seg_vend = segment.virtual_address() + segment.virtual_size();
     return segment.virtual_address() <= section.virtual_address() &&
@@ -717,13 +734,14 @@ bool Parser::check_section_in_segment(const Section& section, const Segment& seg
 ok_error_t Parser::link_symbol_section(Symbol& sym) {
   const uint16_t sec_idx = sym.section_idx();
   if (sec_idx == Symbol::SECTION_INDEX::ABS ||
-      sec_idx == Symbol::SECTION_INDEX::UNDEF) {
+      sec_idx == Symbol::SECTION_INDEX::UNDEF)
+  {
     // Nothing to bind
     return ok();
   }

   auto it_section = sections_idx_.find(sec_idx);
-  if (it_section == std::end(sections_idx_)) {
+  if (it_section == sections_idx_.end()) {
     return make_error_code(lief_errors::corrupted);
   }

@@ -738,7 +756,8 @@ bool Parser::bind_symbol(Relocation& R) {
   }
   const uint32_t idx = R.info();
   if (idx >= binary_->dynamic_symbols_.size()) {
-    LIEF_DEBUG("Index #{} is out of range for reloc: {}", idx, to_string(R));
+    LIEF_DEBUG("Symbol index #{} out of range for relocation: {}", idx,
+               to_string(R));
     return false;
   }

@@ -754,4 +773,3 @@ Relocation& Parser::insert_relocation(std::unique_ptr<Relocation> R) {
 }

 }
-}
diff --git a/deps/LIEF/src/ELF/Parser.tcc b/deps/LIEF/src/ELF/Parser.tcc
index 03c2c5e77a0..582545b56c4 100644
--- a/deps/LIEF/src/ELF/Parser.tcc
+++ b/deps/LIEF/src/ELF/Parser.tcc
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -13,12 +13,10 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-#include <cctype>
 #include <memory>
 #include <unordered_set>
 #include "logging.hpp"

-#include "LIEF/utils.hpp"
 #include "LIEF/BinaryStream/VectorStream.hpp"
 #include "LIEF/BinaryStream/SpanStream.hpp"

@@ -32,6 +30,8 @@
 #include "LIEF/ELF/DynamicEntryLibrary.hpp"
 #include "LIEF/ELF/DynamicEntryArray.hpp"
 #include "LIEF/ELF/DynamicSharedObject.hpp"
+#include "LIEF/ELF/DynamicEntryAuxiliary.hpp"
+#include "LIEF/ELF/DynamicEntryFilter.hpp"
 #include "LIEF/ELF/DynamicEntryRunPath.hpp"
 #include "LIEF/ELF/DynamicEntryRpath.hpp"
 #include "LIEF/ELF/SymbolVersionRequirement.hpp"
@@ -41,17 +41,15 @@
 #include "LIEF/ELF/Symbol.hpp"
 #include "LIEF/ELF/SymbolVersion.hpp"
 #include "LIEF/ELF/Binary.hpp"
-#include "LIEF/ELF/EnumToString.hpp"

 #include "ELF/Structures.hpp"
 #include "ELF/DataHandler/Handler.hpp"
 #include "ELF/SizingInfo.hpp"

 #include "Object.tcc"
-#include "internal_utils.hpp"

-namespace LIEF {
-namespace ELF {
+
+namespace LIEF::ELF {
 template<typename ELF_T>
 ok_error_t Parser::parse_binary() {

@@ -68,7 +66,9 @@ ok_error_t Parser::parse_binary() {
   if (binary_->header_.section_headers_offset() > 0) {
     parse_sections<ELF_T>();
   } else {
-    LIEF_WARN("The current binary doesn't have a section header");
+    if (binary_->header().file_type() != Header::FILE_TYPE::CORE) {
+      LIEF_WARN("The current binary doesn't have a section header");
+    }
   }

   // Parse segments
@@ -90,30 +90,30 @@ ok_error_t Parser::parse_binary() {
   process_dynamic_table<ELF_T>();

   if (const Section* sec_symbtab = binary_->get(Section::TYPE::SYMTAB)) {
-    auto nb_entries = static_cast<uint32_t>((sec_symbtab->size() / sizeof(typename ELF_T::Elf_Sym)));
-    nb_entries = std::min(nb_entries, Parser::NB_MAX_SYMBOLS);
-
-    if (sec_symbtab->link() == 0 || sec_symbtab->link() >= binary_->sections_.size()) {
-      LIEF_WARN("section->link() is not valid !");
+    if (sec_symbtab->link() == 0 ||
+        sec_symbtab->link() >= binary_->sections_.size())
+    {
+      LIEF_WARN("Invalid section link");
     } else {
       if (config_.parse_symtab_symbols) {
         // We should have:
         // nb_entries == section->information())
-        // but lots of compiler not respect this rule
-        parse_symtab_symbols<ELF_T>(sec_symbtab->file_offset(), nb_entries,
+        // but lots of compilers do not respect this rule
+        parse_symtab_symbols<ELF_T>(*sec_symbtab,
                                     *binary_->sections_[sec_symbtab->link()]);
       }
     }
   }


-  // Parse Symbols's hash
-  // ====================
+  // Parse Symbol hash
+  // ==================
   if (DynamicEntry* dt_hash = binary_->get(DynamicEntry::TAG::HASH)) {
     if (auto res = binary_->virtual_address_to_offset(dt_hash->value())) {
       parse_symbol_sysv_hash(*res);
     } else {
-      LIEF_WARN("Can't convert DT_HASH.virtual_address into an offset (0x{:x})", dt_hash->value());
+      LIEF_WARN("Can't convert DT_HASH.virtual_address into an offset ({:#x})",
+                dt_hash->value());
     }
   }

@@ -129,7 +129,9 @@ ok_error_t Parser::parse_binary() {
         uint64_t offset = addr - seg->virtual_address();
         strm->setpos(offset);
         binary_->gnu_hash_ = GnuHash::parse<ELF_T>(*strm, dynsymcount);
-        binary_->sizing_info_->gnu_hash = binary_->gnu_hash_->original_size();
+        if (binary_->gnu_hash_ != nullptr) {
+          binary_->sizing_info_->gnu_hash = binary_->gnu_hash_->original_size();
+        }
       }
     }
   }
@@ -162,13 +164,12 @@ ok_error_t Parser::parse_binary() {
   if (config_.parse_relocations) {
     bool skip_allocated_sections = !binary_->relocations_.empty();
     for (const Section& section : binary_->sections()) {
-      if (skip_allocated_sections && section.has(Section::FLAGS::ALLOC)){
+      if (skip_allocated_sections && section.has(Section::FLAGS::ALLOC)) {
         continue;
       }
       if (section.type() == Section::TYPE::REL) {
         parse_section_relocations<ELF_T, typename ELF_T::Elf_Rel>(section);
-      }
-      else if (section.type() == Section::TYPE::RELA) {
+      } else if (section.type() == Section::TYPE::RELA) {
         parse_section_relocations<ELF_T, typename ELF_T::Elf_Rela>(section);
       }
     }
@@ -228,17 +229,20 @@ ok_error_t Parser::parse_dyn_table(Segment& pt_dyn) {
     return parse_dynamic_entries<ELF_T>(*scoped);
   }
   const Segment& load_seg = *segments.back();
-  LIEF_DEBUG("Dynamic content wrapped by segment LOAD: [0x{:016x}, 0x{:016x}] "
-             "[0x{:016x}, 0x{:016x}]", load_seg.virtual_address(),
+  LIEF_DEBUG("Dynamic content wrapped by segment LOAD: [{:#018x}, {:#018x}] "
+             "[{:#018x}, {:#018x}]",
+             load_seg.virtual_address(),
              load_seg.virtual_address() + load_seg.virtual_size(),
-             load_seg.file_offset(), load_seg.file_offset() + load_seg.physical_size());
+             load_seg.file_offset(),
+             load_seg.file_offset() + load_seg.physical_size());

   span<const uint8_t> seg_content = load_seg.content();
   if (seg_content.empty()) {
     return make_error_code(lief_errors::corrupted);
   }

-  int64_t rel_offset = (int64_t)pt_dyn.virtual_address() - (int64_t)load_seg.virtual_address();
+  int64_t rel_offset =
+      (int64_t)pt_dyn.virtual_address() - (int64_t)load_seg.virtual_address();
   if (rel_offset < 0 || (uint64_t)rel_offset >= seg_content.size()) {
     return make_error_code(lief_errors::corrupted);
   }
@@ -255,7 +259,9 @@ ok_error_t Parser::process_dynamic_table() {
     DynamicEntry* dt_symtab = binary_->get(DynamicEntry::TAG::SYMTAB);
     DynamicEntry* dt_syment = binary_->get(DynamicEntry::TAG::SYMENT);

-    if (dt_syment != nullptr && dt_syment->value() != sizeof(typename ELF_T::Elf_Sym)) {
+    if (dt_syment != nullptr &&
+        dt_syment->value() != sizeof(typename ELF_T::Elf_Sym))
+    {
       LIEF_WARN("DT_SYMTENT is corrupted");
     }

@@ -264,67 +270,73 @@ ok_error_t Parser::process_dynamic_table() {
       if (auto res = binary_->virtual_address_to_offset(virtual_address)) {
         parse_dynamic_symbols<ELF_T>(*res);
       } else {
-        LIEF_WARN("Can't convert DT_SYMTAB.virtual_address into an offset (0x{:x})", virtual_address);
+        LIEF_WARN("Can't convert DT_SYMTAB.virtual_address into an offset ({:#x})",
+                  virtual_address);
       }
     }
   }
   {
-    DynamicEntry* dt_rela   = binary_->get(DynamicEntry::TAG::RELA);
+    DynamicEntry* dt_rela = binary_->get(DynamicEntry::TAG::RELA);
     DynamicEntry* dt_relasz = binary_->get(DynamicEntry::TAG::RELASZ);

     if (dt_rela != nullptr && dt_relasz != nullptr && config_.parse_relocations) {
       const uint64_t virtual_address = dt_rela->value();
-      const uint64_t size            = dt_relasz->value();
+      const uint64_t size = dt_relasz->value();
       if (auto res = binary_->virtual_address_to_offset(virtual_address)) {
         parse_dynamic_relocations<ELF_T, typename ELF_T::Elf_Rela>(*res, size);
         binary_->sizing_info_->rela = size;
       } else {
-        LIEF_WARN("Can't convert DT_RELA.virtual_address into an offset (0x{:x})", virtual_address);
+        LIEF_WARN("Can't convert DT_RELA.virtual_address into an offset ({:#x})",
+                  virtual_address);
       }
     }
   }
   {
-    DynamicEntry* dt_rel   = binary_->get(DynamicEntry::TAG::REL);
+    DynamicEntry* dt_rel = binary_->get(DynamicEntry::TAG::REL);
     DynamicEntry* dt_relsz = binary_->get(DynamicEntry::TAG::RELSZ);

     if (dt_rel != nullptr && dt_relsz != nullptr && config_.parse_relocations) {
       const uint64_t virtual_address = dt_rel->value();
-      const uint64_t size            = dt_relsz->value();
+      const uint64_t size = dt_relsz->value();
       if (auto res = binary_->virtual_address_to_offset(virtual_address)) {
         parse_dynamic_relocations<ELF_T, typename ELF_T::Elf_Rel>(*res, size);
         binary_->sizing_info_->rela = size;
       } else {
-        LIEF_WARN("Can't convert DT_REL.virtual_address into an offset (0x{:x})", virtual_address);
+        LIEF_WARN("Can't convert DT_REL.virtual_address into an offset ({:#x})",
+                  virtual_address);
       }
     }
   }
   {
-    DynamicEntry* dt_relr   = binary_->get(DynamicEntry::TAG::RELR);
+    DynamicEntry* dt_relr = binary_->get(DynamicEntry::TAG::RELR);
     DynamicEntry* dt_relrsz = binary_->get(DynamicEntry::TAG::RELRSZ);

     if (dt_relr != nullptr && dt_relrsz != nullptr && config_.parse_relocations) {
       const uint64_t virtual_address = dt_relr->value();
-      const uint64_t size            = dt_relrsz->value();
+      const uint64_t size = dt_relrsz->value();
       if (auto res = binary_->virtual_address_to_offset(virtual_address)) {
         parse_relative_relocations<ELF_T>(*res, size);
         binary_->sizing_info_->relr = size;
       } else {
-        LIEF_WARN("Can't convert DT_RELR.virtual_address into an offset (0x{:x})", virtual_address);
+        LIEF_WARN("Can't convert DT_RELR.virtual_address into an offset ({:#x})",
+                  virtual_address);
       }
     }
   }
   {
-    DynamicEntry* dt_relr   = binary_->get(DynamicEntry::TAG::ANDROID_RELR);
+    DynamicEntry* dt_relr = binary_->get(DynamicEntry::TAG::ANDROID_RELR);
     DynamicEntry* dt_relrsz = binary_->get(DynamicEntry::TAG::ANDROID_RELRSZ);

     if (dt_relr != nullptr && dt_relrsz != nullptr && config_.parse_relocations) {
       const uint64_t virtual_address = dt_relr->value();
-      const uint64_t size            = dt_relrsz->value();
+      const uint64_t size = dt_relrsz->value();
       if (auto res = binary_->virtual_address_to_offset(virtual_address)) {
         parse_relative_relocations<ELF_T>(*res, size);
         binary_->sizing_info_->relr = size;
       } else {
-        LIEF_WARN("Can't convert (Android)DT_RELR.virtual_address into an offset (0x{:x})", virtual_address);
+        LIEF_WARN("Can't convert (Android)DT_RELR.virtual_address into an offset "
+                  "({:#x})",
+                  virtual_address);
       }
     }
   }
@@ -338,26 +350,31 @@ ok_error_t Parser::process_dynamic_table() {

     if (dt_rela != nullptr && dt_relasz != nullptr && config_.parse_relocations) {
       const uint64_t virtual_address = dt_rela->value();
-      const uint64_t size            = dt_relasz->value();
+      const uint64_t size = dt_relasz->value();
       if (auto res = binary_->virtual_address_to_offset(virtual_address)) {
         parse_packed_relocations<ELF_T>(*res, size);
         binary_->sizing_info_->android_rela = size;
       } else {
-        LIEF_WARN("Can't convert DT_ANDROID_REL[A].virtual_address into an offset (0x{:x})", virtual_address);
+        LIEF_WARN("Can't convert DT_ANDROID_REL[A].virtual_address into an offset "
+                  "({:#x})",
+                  virtual_address);
       }
     }
   }
   {
-    DynamicEntry* dt_jmprel   = binary_->get(DynamicEntry::TAG::JMPREL);
+    DynamicEntry* dt_jmprel = binary_->get(DynamicEntry::TAG::JMPREL);
     DynamicEntry* dt_pltrelsz = binary_->get(DynamicEntry::TAG::PLTRELSZ);

-    if (dt_jmprel != nullptr && dt_pltrelsz != nullptr && config_.parse_relocations) {
+    if (dt_jmprel != nullptr && dt_pltrelsz != nullptr &&
+        config_.parse_relocations)
+    {
       const uint64_t virtual_address = dt_jmprel->value();
-      const uint64_t size            = dt_pltrelsz->value();
-      DynamicEntry* dt_pltrel        = binary_->get(DynamicEntry::TAG::PLTREL);
-      DynamicEntry::TAG type;
+      const uint64_t size = dt_pltrelsz->value();
+      DynamicEntry* dt_pltrel = binary_->get(DynamicEntry::TAG::PLTREL);
+      auto type = DynamicEntry::TAG::UNKNOWN;
       if (dt_pltrel != nullptr) {
-        type = DynamicEntry::from_value(dt_pltrel->value(), binary_->header().machine_type());
+        type = DynamicEntry::from_value(dt_pltrel->value(),
+                                        binary_->header().machine_type());
       } else {
         // Try to guess: We assume that on ELF64 -> DT_RELA and on ELF32 -> DT_REL
         if constexpr (std::is_same_v<ELF_T, details::ELF64>) {
@@ -369,11 +386,12 @@ ok_error_t Parser::process_dynamic_table() {

       if (auto res = binary_->virtual_address_to_offset(virtual_address)) {
         type == DynamicEntry::TAG::RELA ?
-                parse_pltgot_relocations<ELF_T, typename ELF_T::Elf_Rela>(*res, size) :
-                parse_pltgot_relocations<ELF_T, typename ELF_T::Elf_Rel>(*res, size);
+            parse_pltgot_relocations<ELF_T, typename ELF_T::Elf_Rela>(*res, size) :
+            parse_pltgot_relocations<ELF_T, typename ELF_T::Elf_Rel>(*res, size);
         binary_->sizing_info_->jmprel = size;
       } else {
-        LIEF_WARN("Can't convert DT_JMPREL.virtual_address into an offset (0x{:x})", virtual_address);
+        LIEF_WARN("Can't convert DT_JMPREL.virtual_address into an offset ({:#x})",
+                  virtual_address);
       }
     }
   }
@@ -382,41 +400,49 @@ ok_error_t Parser::process_dynamic_table() {
       const uint64_t virtual_address = dt_versym->value();
       if (auto res = binary_->virtual_address_to_offset(virtual_address)) {
         parse_symbol_version(*res);
-        binary_->sizing_info_->versym = binary_->dynamic_symbols_.size() * sizeof(uint16_t);
+        binary_->sizing_info_->versym =
+            binary_->dynamic_symbols_.size() * sizeof(uint16_t);
       } else {
-        LIEF_WARN("Can't convert DT_VERSYM.virtual_address into an offset (0x{:x})", virtual_address);
+        LIEF_WARN("Can't convert DT_VERSYM.virtual_address into an offset ({:#x})",
+                  virtual_address);
       }
     }
   }

   if (config_.parse_symbol_versions) {
-    DynamicEntry* dt_verneed     = binary_->get(DynamicEntry::TAG::VERNEED);
+    DynamicEntry* dt_verneed = binary_->get(DynamicEntry::TAG::VERNEED);
     DynamicEntry* dt_verneed_num = binary_->get(DynamicEntry::TAG::VERNEEDNUM);

     if (dt_verneed != nullptr && dt_verneed_num != nullptr) {
       const uint64_t virtual_address = dt_verneed->value();
-      const uint32_t nb_entries = std::min(Parser::NB_MAX_SYMBOLS,
-                                           static_cast<uint32_t>(dt_verneed_num->value()));
+      const uint32_t nb_entries =
+          std::min(Parser::NB_MAX_SYMBOLS,
+                   static_cast<uint32_t>(dt_verneed_num->value()));

       if (auto res = binary_->virtual_address_to_offset(virtual_address)) {
         parse_symbol_version_requirement<ELF_T>(*res, nb_entries);
       } else {
-        LIEF_WARN("Can't convert DT_VERNEED.virtual_address into an offset (0x{:x})", virtual_address);
+        LIEF_WARN(
+            "Can't convert DT_VERNEED.virtual_address into an offset ({:#x})",
+            virtual_address
+        );
       }
     }
   }

   if (config_.parse_symbol_versions) {
-    DynamicEntry* dt_verdef     = binary_->get(DynamicEntry::TAG::VERDEF);
+    DynamicEntry* dt_verdef = binary_->get(DynamicEntry::TAG::VERDEF);
     DynamicEntry* dt_verdef_num = binary_->get(DynamicEntry::TAG::VERDEFNUM);
     if (dt_verdef != nullptr && dt_verdef_num != nullptr) {
       const uint64_t virtual_address = dt_verdef->value();
-      const auto size                = static_cast<uint32_t>(dt_verdef_num->value());
+      const uint32_t nb_entries =
+          std::min<uint32_t>(NB_MAX_SYMBOLS, dt_verdef_num->value());

       if (auto res = binary_->virtual_address_to_offset(virtual_address)) {
-        parse_symbol_version_definition<ELF_T>(*res, size);
+        parse_symbol_version_definition<ELF_T>(*res, nb_entries);
       } else {
-        LIEF_WARN("Can't convert DT_VERDEF.virtual_address into an offset (0x{:x})", virtual_address);
+        LIEF_WARN("Can't convert DT_VERDEF.virtual_address into an offset ({:#x})",
+                  virtual_address);
       }
     }
   }
@@ -429,7 +455,7 @@ ok_error_t Parser::parse_header() {
   using Elf_Half = typename ELF_T::Elf_Half;
   using Elf_Word = typename ELF_T::Elf_Word;
   using Elf_Addr = typename ELF_T::Elf_Addr;
-  using Elf_Off  = typename ELF_T::Elf_Off;
+  using Elf_Off = typename ELF_T::Elf_Off;

   LIEF_DEBUG("[+] Parsing Header");
   stream_->setpos(0);
@@ -540,68 +566,77 @@ ok_error_t Parser::parse_header() {


 template<typename ELF_T>
-result<uint32_t> Parser::get_numberof_dynamic_symbols(ParserConfig::DYNSYM_COUNT mtd) const {
+result<uint32_t>
+    Parser::get_numberof_dynamic_symbols(ParserConfig::DYNSYM_COUNT mtd) const {

-  switch(mtd) {
-    case ParserConfig::DYNSYM_COUNT::HASH:        return nb_dynsym_hash<ELF_T>();
-    case ParserConfig::DYNSYM_COUNT::SECTION:     return nb_dynsym_section<ELF_T>();
-    case ParserConfig::DYNSYM_COUNT::RELOCATIONS: return nb_dynsym_relocations<ELF_T>();
+  switch (mtd) {
+    case ParserConfig::DYNSYM_COUNT::HASH: return nb_dynsym_hash<ELF_T>();
+    case ParserConfig::DYNSYM_COUNT::SECTION: return nb_dynsym_section<ELF_T>();
+    case ParserConfig::DYNSYM_COUNT::RELOCATIONS:
+      return nb_dynsym_relocations<ELF_T>();

     case ParserConfig::DYNSYM_COUNT::AUTO:
     default:
-      {
-        uint32_t nb_reloc   = 0;
-        uint32_t nb_section = 0;
-        uint32_t nb_hash    = 0;
-
-        if (auto res = get_numberof_dynamic_symbols<ELF_T>(ParserConfig::DYNSYM_COUNT::RELOCATIONS)) {
-          nb_reloc = *res;
-        }
-
-        if (auto res = get_numberof_dynamic_symbols<ELF_T>(ParserConfig::DYNSYM_COUNT::SECTION)) {
-          nb_section = *res;
-        }
+    {
+      uint32_t nb_reloc = 0;
+      uint32_t nb_section = 0;
+      uint32_t nb_hash = 0;

-        if (auto res = get_numberof_dynamic_symbols<ELF_T>(ParserConfig::DYNSYM_COUNT::HASH)) {
-          nb_hash = *res;
-        }
+      if (auto res = get_numberof_dynamic_symbols<ELF_T>(
+              ParserConfig::DYNSYM_COUNT::RELOCATIONS
+          ))
+      {
+        nb_reloc = *res;
+      }

-        LIEF_DEBUG("#dynsym.reloc: {}",   nb_reloc);
-        LIEF_DEBUG("#dynsym.section: {}", nb_section);
-        LIEF_DEBUG("#dynsym.hash: {}",    nb_hash);
+      if (auto res = get_numberof_dynamic_symbols<ELF_T>(
+              ParserConfig::DYNSYM_COUNT::SECTION
+          ))
+      {
+        nb_section = *res;
+      }

-        if (nb_hash > 0 && nb_section == nb_hash) {
-          return nb_hash;
-        }
+      if (auto res = get_numberof_dynamic_symbols<ELF_T>(
+              ParserConfig::DYNSYM_COUNT::HASH
+          ))
+      {
+        nb_hash = *res;
+      }

-        uint32_t candidate = nb_reloc;
-        if (nb_section < Parser::NB_MAX_SYMBOLS &&
-            nb_section > nb_reloc               &&
-            (nb_section - nb_reloc) < Parser::DELTA_NB_SYMBOLS)
-        {
-          candidate = nb_section;
-        }
+      LIEF_DEBUG("#dynsym.reloc: {}", nb_reloc);
+      LIEF_DEBUG("#dynsym.section: {}", nb_section);
+      LIEF_DEBUG("#dynsym.hash: {}", nb_hash);

-        if (nb_hash == 0) {
-          return candidate;
-        }
+      if (nb_hash > 0 && nb_section == nb_hash) {
+        return nb_hash;
+      }

-        if (nb_hash < Parser::NB_MAX_SYMBOLS &&
-            nb_hash > candidate              &&
-            (nb_hash - candidate) < Parser::DELTA_NB_SYMBOLS)
-        {
-          candidate = nb_hash;
-        }
+      uint32_t candidate = nb_reloc;
+      if (nb_section < Parser::NB_MAX_SYMBOLS && nb_section > nb_reloc &&
+          (nb_section - nb_reloc) < Parser::DELTA_NB_SYMBOLS)
+      {
+        candidate = nb_section;
+      }

+      if (nb_hash == 0) {
         return candidate;
       }
+
+      if (nb_hash < Parser::NB_MAX_SYMBOLS && nb_hash > candidate &&
+          (nb_hash - candidate) < Parser::DELTA_NB_SYMBOLS)
+      {
+        candidate = nb_hash;
+      }
+
+      return candidate;
+    }
   }
 }

 template<typename ELF_T>
 result<uint32_t> Parser::nb_dynsym_relocations() const {
   using rela_t = typename ELF_T::Elf_Rela;
-  using rel_t  = typename ELF_T::Elf_Rel;
+  using rel_t = typename ELF_T::Elf_Rel;
   uint32_t nb_symbols = 0;

   // Dynamic Relocations
@@ -609,42 +644,45 @@ result<uint32_t> Parser::nb_dynsym_relocations() const {

   // RELA
   // ----
-  DynamicEntry* dt_rela   = binary_->get(DynamicEntry::TAG::RELA);
+  DynamicEntry* dt_rela = binary_->get(DynamicEntry::TAG::RELA);
   DynamicEntry* dt_relasz = binary_->get(DynamicEntry::TAG::RELASZ);
   if (dt_rela != nullptr && dt_relasz != nullptr) {
     const uint64_t virtual_address = dt_rela->value();
-    const uint64_t size            = dt_relasz->value();
+    const uint64_t size = dt_relasz->value();
     if (auto res = binary_->virtual_address_to_offset(virtual_address)) {
-      nb_symbols = std::max(nb_symbols, max_relocation_index<ELF_T, rela_t>(*res, size));
+      nb_symbols =
+          std::max(nb_symbols, max_relocation_index<ELF_T, rela_t>(*res, size));
     }
   }


   // REL
   // ---
-  DynamicEntry* dt_rel   = binary_->get(DynamicEntry::TAG::REL);
+  DynamicEntry* dt_rel = binary_->get(DynamicEntry::TAG::REL);
   DynamicEntry* dt_relsz = binary_->get(DynamicEntry::TAG::RELSZ);

   if (dt_rel != nullptr && dt_relsz != nullptr) {
     const uint64_t virtual_address = dt_rel->value();
-    const uint64_t size            = dt_relsz->value();
+    const uint64_t size = dt_relsz->value();
     if (auto res = binary_->virtual_address_to_offset(virtual_address)) {
-      nb_symbols = std::max(nb_symbols, max_relocation_index<ELF_T, rel_t>(*res, size));
+      nb_symbols =
+          std::max(nb_symbols, max_relocation_index<ELF_T, rel_t>(*res, size));
     }
   }

   // Parse PLT/GOT Relocations
   // ==========================

-  DynamicEntry* dt_jmprel   = binary_->get(DynamicEntry::TAG::JMPREL);
+  DynamicEntry* dt_jmprel = binary_->get(DynamicEntry::TAG::JMPREL);
   DynamicEntry* dt_pltrelsz = binary_->get(DynamicEntry::TAG::PLTRELSZ);
   if (dt_jmprel != nullptr && dt_pltrelsz != nullptr) {
     const uint64_t virtual_address = dt_jmprel->value();
-    const uint64_t size            = dt_pltrelsz->value();
-    DynamicEntry* dt_pltrel        = binary_->get(DynamicEntry::TAG::PLTREL);
-    DynamicEntry::TAG type;
+    const uint64_t size = dt_pltrelsz->value();
+    DynamicEntry* dt_pltrel = binary_->get(DynamicEntry::TAG::PLTREL);
+    auto type = DynamicEntry::TAG::UNKNOWN;
     if (dt_pltrel != nullptr) {
-      type = DynamicEntry::from_value(dt_pltrel->value(), binary_->header().machine_type());
+      type = DynamicEntry::from_value(dt_pltrel->value(),
+                                      binary_->header().machine_type());
     } else {
       // Try to guess: We assume that on ELF64 -> DT_RELA and on ELF32 -> DT_REL
       if constexpr (std::is_same_v<ELF_T, details::ELF64>) {
@@ -655,9 +693,11 @@ result<uint32_t> Parser::nb_dynsym_relocations() const {
     }
     if (auto res = binary_->virtual_address_to_offset(virtual_address)) {
       if (type == DynamicEntry::TAG::RELA) {
-        nb_symbols = std::max(nb_symbols, max_relocation_index<ELF_T, rela_t>(*res, size));
+        nb_symbols =
+            std::max(nb_symbols, max_relocation_index<ELF_T, rela_t>(*res, size));
       } else {
-        nb_symbols = std::max(nb_symbols, max_relocation_index<ELF_T, rel_t>(*res, size));
+        nb_symbols =
+            std::max(nb_symbols, max_relocation_index<ELF_T, rel_t>(*res, size));
       }
     }
   }
@@ -666,11 +706,14 @@ result<uint32_t> Parser::nb_dynsym_relocations() const {
 }

 template<typename ELF_T, typename REL_T>
-uint32_t Parser::max_relocation_index(uint64_t relocations_offset, uint64_t size) const {
-  static_assert(std::is_same<REL_T, typename ELF_T::Elf_Rel>::value ||
-                std::is_same<REL_T, typename ELF_T::Elf_Rela>::value, "REL_T must be Elf_Rel || Elf_Rela");
+uint32_t Parser::max_relocation_index(uint64_t relocations_offset,
+                                      uint64_t size) const {
+  static_assert(std::is_same_v<REL_T, typename ELF_T::Elf_Rel> ||
+                    std::is_same_v<REL_T, typename ELF_T::Elf_Rela>,
+                "REL_T must be Elf_Rel || Elf_Rela");

-  const uint8_t shift = ELF_T::r_info_shift;;
+  const uint8_t shift = ELF_T::r_info_shift;
+  ;

   const auto nb_entries = static_cast<uint32_t>(size / sizeof(REL_T));

@@ -718,7 +761,7 @@ result<uint32_t> Parser::nb_dynsym_hash() const {

 template<typename ELF_T>
 result<uint32_t> Parser::nb_dynsym_sysv_hash() const {
-  using Elf_Off  = typename ELF_T::Elf_Off;
+  using Elf_Off = typename ELF_T::Elf_Off;

   const DynamicEntry* dyn_hash = binary_->get(DynamicEntry::TAG::HASH);
   if (dyn_hash == nullptr) {
@@ -770,18 +813,24 @@ template<typename ELF_T>
 ok_error_t Parser::parse_sections() {
   using Elf_Shdr = typename ELF_T::Elf_Shdr;

-  using Elf_Off  = typename ELF_T::Elf_Off;
+  using Elf_Off = typename ELF_T::Elf_Off;
   LIEF_DEBUG("Parsing Section");

   const Elf_Off shdr_offset = binary_->header_.section_headers_offset();
   const auto numberof_sections = binary_->header_.numberof_sections();

+  const bool is_memory_stream = memory_address_ > 0;
+  // Sections are usually not mapped so logging errors is not relevant for
+  // in-memory parsing
+  logging::Scoped scope(is_memory_stream ? logging::LEVEL::OFF :
+                                           logging::get_level());
+
   stream_->setpos(shdr_offset);
   std::unordered_map<Section*, size_t> sections_names;
   DataHandler::Handler& handler = *binary_->datahandler_;
   const ARCH arch = binary_->header().machine_type();
   for (size_t i = 0; i < numberof_sections; ++i) {
-    LIEF_DEBUG("  Elf_Shdr#{:02d}.offset: 0x{:x} ", i, stream_->pos());
+    LIEF_DEBUG("  Elf_Shdr#{:02d}.offset: {:#x} ", i, stream_->pos());
     const auto shdr = stream_->read<Elf_Shdr>();
     if (!shdr) {
       LIEF_ERR("  Can't parse section #{:02d}", i);
@@ -792,9 +841,10 @@ ok_error_t Parser::parse_sections() {
     section->datahandler_ = binary_->datahandler_.get();

     const uint64_t section_start = section->file_offset();
-    const uint64_t section_end   = section_start + section->size();
     bool access_content = true;
-    if (section_start > stream_->size() || section_end > stream_->size()) {
+    if (section_start > stream_->size() ||
+        section->size() > stream_->size() - section_start)
+    {
       access_content = false;
       if (section->type() != Section::TYPE::NOBITS) {
         LIEF_WARN("Can't access the content of section #{}", i);
@@ -809,13 +859,15 @@ ok_error_t Parser::parse_sections() {
     // Only if it contains data (with bits)
     if (section->size() > 0 && access_content) {
       int64_t read_size = section->size();
-      if (static_cast<int32_t>(read_size) < 0 ) {
-        LIEF_WARN("Section #{} is {} bytes large. Only the first {} bytes will be taken into account",
+      if (static_cast<int32_t>(read_size) < 0) {
+        LIEF_WARN("Section #{} is {} bytes large. Only the first {} bytes will be "
+                  "taken into account",
                   i, read_size, Section::MAX_SECTION_SIZE);
         read_size = Section::MAX_SECTION_SIZE;
       }
       if (read_size > Section::MAX_SECTION_SIZE) {
-        LIEF_WARN("Section #{} is {} bytes large. Only the first {} bytes will be taken into account",
+        LIEF_WARN("Section #{} is {} bytes large. Only the first {} bytes will be "
+                  "taken into account",
                   i, read_size, Section::MAX_SECTION_SIZE);
         read_size = Section::MAX_SECTION_SIZE;
       }
@@ -824,7 +876,8 @@ ok_error_t Parser::parse_sections() {
                      DataHandler::Node::SECTION);

       const Elf_Off offset_to_content = section->file_offset();
-      auto alloc = binary_->datahandler_->reserve(section->file_offset(), read_size);
+      auto alloc =
+          binary_->datahandler_->reserve(section->file_offset(), read_size);
       if (!alloc) {
         LIEF_ERR("Can't allocate memory");
         break;
@@ -833,7 +886,8 @@ ok_error_t Parser::parse_sections() {
       /* The DataHandlerStream interface references ELF data that are
        * located in the ELF::DataHandler. Therefore, we can skip reading
        * the data since they are already present in the data handler.
-       * This optimization saves memory (which is also performed in parse_segments<>(...))
+       * This optimization saves memory (which is also performed in
+       * parse_segments<>(...))
        */
       if (stream_->type() != BinaryStream::STREAM_TYPE::ELF_DATA_HANDLER) {
         std::vector<uint8_t> sec_content;
@@ -859,17 +913,21 @@ ok_error_t Parser::parse_sections() {
   }

   const size_t section_string_index = binary_->header_.section_name_table_idx();
-  const std::unique_ptr<Section>& string_section = binary_->sections_[section_string_index];
+  const std::unique_ptr<Section>& string_section =
+      binary_->sections_[section_string_index];
   for (std::unique_ptr<Section>& section : binary_->sections_) {
     const auto it_name_idx = sections_names.find(section.get());
-    if (it_name_idx == std::end(sections_names)) {
-      LIEF_WARN("Missing name_idx for section at offset 0x{:x}", section->file_offset());
+    if (it_name_idx == sections_names.end()) {
+      LIEF_WARN("Missing name_idx for section at offset {:#x}",
+                section->file_offset());
       continue;
     }
     const size_t name_offset = it_name_idx->second;
-    auto name = stream_->peek_string_at(string_section->file_offset() + name_offset);
+    auto name =
+        stream_->peek_string_at(string_section->file_offset() + name_offset);
     if (!name) {
-      LIEF_ERR("Can't read section name for section 0x{:x}", section->file_offset());
+      LIEF_ERR("Can't read section name for section {:#x}",
+               section->file_offset());
       break;
     }
     section->name(*name);
@@ -880,12 +938,13 @@ ok_error_t Parser::parse_sections() {
 template<typename ELF_T>
 ok_error_t Parser::parse_segments() {
   using Elf_Phdr = typename ELF_T::Elf_Phdr;
-  using Elf_Off  = typename ELF_T::Elf_Off;
+  using Elf_Off = typename ELF_T::Elf_Off;

-  LIEF_DEBUG("== Parse Segments ==");
+  LIEF_DEBUG("Parsing segments");
   const Header& hdr = binary_->header();
   const Elf_Off segment_headers_offset = hdr.program_headers_offset();
-  const auto nbof_segments = std::min<uint32_t>(hdr.numberof_segments(), Parser::NB_MAX_SEGMENTS);
+  const auto nbof_segments =
+      std::min<uint32_t>(hdr.numberof_segments(), Parser::NB_MAX_SEGMENTS);

   stream_->setpos(segment_headers_offset);

@@ -902,15 +961,19 @@ ok_error_t Parser::parse_segments() {
     auto segment = std::unique_ptr<Segment>(new Segment(*elf_phdr, arch, os));
     segment->datahandler_ = binary_->datahandler_.get();

-    if (0 < segment->physical_size() && segment->physical_size() < Parser::MAX_SEGMENT_SIZE) {
+    if (0 < segment->physical_size() &&
+        segment->physical_size() < Parser::MAX_SEGMENT_SIZE)
+    {
       uint64_t read_size = segment->physical_size();
       if (read_size > Parser::MAX_SEGMENT_SIZE) {
-        LIEF_WARN("Segment #{} is {} bytes large. Only the first {} bytes will be taken into account",
+        LIEF_WARN("Segment #{} is {} bytes large. Only the first {} bytes will be "
+                  "taken into account",
                   i, read_size, Parser::MAX_SEGMENT_SIZE);
         read_size = Parser::MAX_SEGMENT_SIZE;
       }
       if (read_size > stream_->size()) {
-        LIEF_WARN("Segment #{} has a physical size larger than the current stream size ({} > {}). "
+        LIEF_WARN("Segment #{} has a physical size larger than the current stream "
+                  "size ({} > {}). "
                   "The content will be truncated with the stream size.",
                   i, read_size, stream_->size());
         read_size = stream_->size();
@@ -920,12 +983,14 @@ ok_error_t Parser::parse_segments() {
                                     DataHandler::Node::SEGMENT);
       segment->handler_size_ = read_size;

-      const bool corrupted_offset = segment->file_offset() > stream_->size() ||
-                                    (segment->file_offset() + read_size) > stream_->size();
+      const bool corrupted_offset =
+          segment->file_offset() > stream_->size() ||
+          (segment->file_offset() + read_size) > stream_->size();

       if (!corrupted_offset) {
         const Elf_Off offset_to_content = segment->file_offset();
-        auto alloc = binary_->datahandler_->reserve(segment->file_offset(), read_size);
+        auto alloc =
+            binary_->datahandler_->reserve(segment->file_offset(), read_size);
         if (!alloc) {
           LIEF_ERR("Can't allocate memory");
           break;
@@ -933,7 +998,8 @@ ok_error_t Parser::parse_segments() {
         /* The DataHandlerStream interface references ELF data that are
          * located in the ELF::DataHandler. Therefore, we can skip reading
          * the data since they are already present in the data handler.
-         * This optimization saves memory (which is also performed in parse_sections<>(...))
+         * This optimization saves memory (which is also performed in
+         * parse_sections<>(...))
          */
         if (stream_->type() != BinaryStream::STREAM_TYPE::ELF_DATA_HANDLER) {
           std::vector<uint8_t> seg_content;
@@ -956,7 +1022,8 @@ ok_error_t Parser::parse_segments() {
       }
     } else {
       segment->handler_size_ = segment->physical_size();
-      segment->datahandler_->create(segment->file_offset(), segment->physical_size(),
+      segment->datahandler_->create(segment->file_offset(),
+                                    segment->physical_size(),
                                     DataHandler::Node::SEGMENT);
     }

@@ -975,29 +1042,42 @@ ok_error_t Parser::parse_segments() {
 template<typename ELF_T>
 ok_error_t Parser::parse_packed_relocations(uint64_t offset, uint64_t size) {
   using Elf_Rela = typename ELF_T::Elf_Rela;
-  static constexpr uint64_t GROUPED_BY_INFO_FLAG         = 1 << 0;
+  static constexpr uint64_t GROUPED_BY_INFO_FLAG = 1 << 0;
   static constexpr uint64_t GROUPED_BY_OFFSET_DELTA_FLAG = 1 << 1;
-  static constexpr uint64_t GROUPED_BY_ADDEND_FLAG       = 1 << 2;
-  static constexpr uint64_t GROUP_HAS_ADDEND_FLAG        = 1 << 3;
+  static constexpr uint64_t GROUPED_BY_ADDEND_FLAG = 1 << 2;
+  static constexpr uint64_t GROUP_HAS_ADDEND_FLAG = 1 << 3;

   LIEF_DEBUG("Parsing Android packed relocations");
   if (size < 4) {
     LIEF_ERR("Invalid Android packed relocation header");
     return make_error_code(lief_errors::read_error);
   }
-  ScopedStream rel_stream(*stream_, offset);

-  const auto H0 = stream_->read<char>().value_or(0);
-  const auto H1 = stream_->read<char>().value_or(0);
-  const auto H2 = stream_->read<char>().value_or(0);
-  const auto H3 = stream_->read<char>().value_or(0);
+  if (offset >= stream_->size()) {
+    LIEF_ERR("Android packed relocations: offset is out of range");
+    return make_error_code(lief_errors::read_error);
+  }
+  size = std::min<uint64_t>(size, stream_->size() - offset);
+  const auto* raw = stream_->peek_array<uint8_t>(offset, size);
+  if (raw == nullptr) {
+    LIEF_ERR("Can't read the Android packed relocation table");
+    return make_error_code(lief_errors::read_error);
+  }
+  SpanStream table_stream(raw, size);
+  ScopedStream rel_stream(table_stream);
+
+  const auto H0 = rel_stream->read<char>().value_or(0);
+  const auto H1 = rel_stream->read<char>().value_or(0);
+  const auto H2 = rel_stream->read<char>().value_or(0);
+  const auto H3 = rel_stream->read<char>().value_or(0);

   LIEF_DEBUG("Header: {} {} {} {}", H0, H1, H2, H3);

   // Check for the Magic: APS2
   if (H0 != 'A' || H1 != 'P' || H2 != 'S' || H3 != '2') {
     LIEF_ERR("Invalid Android packed relocation magic header: "
-             "{} {} {} {}", H0, H1, H2, H3);
+             "{} {} {} {}",
+             H0, H1, H2, H3);
     return make_error_code(lief_errors::read_error);
   }

@@ -1019,6 +1099,13 @@ ok_error_t Parser::parse_packed_relocations(uint64_t offset, uint64_t size) {

   LIEF_DEBUG("Nb relocs: {}", nb_relocs);

+  if (nb_relocs > NB_MAX_RELOCATIONS) {
+    LIEF_WARN("Android packed relocations: the number of relocations ({}) "
+              "exceeds the limit ({}). The table is likely corrupted",
+              nb_relocs, NB_MAX_RELOCATIONS);
+    return make_error_code(lief_errors::corrupted);
+  }
+
   while (nb_relocs > 0) {
     auto nb_reloc_group_r = rel_stream->read_sleb128();
     if (!nb_reloc_group_r) {
@@ -1041,16 +1128,15 @@ ok_error_t Parser::parse_packed_relocations(uint64_t offset, uint64_t size) {
     }
     uint64_t group_flag = *group_flag_r;

-    const bool g_by_info         = group_flag & GROUPED_BY_INFO_FLAG;
+    const bool g_by_info = group_flag & GROUPED_BY_INFO_FLAG;
     const bool g_by_offset_delta = group_flag & GROUPED_BY_OFFSET_DELTA_FLAG;
-    const bool g_by_addend       = group_flag & GROUPED_BY_ADDEND_FLAG;
-    const bool g_has_addend      = group_flag & GROUP_HAS_ADDEND_FLAG;
+    const bool g_by_addend = group_flag & GROUPED_BY_ADDEND_FLAG;
+    const bool g_has_addend = group_flag & GROUP_HAS_ADDEND_FLAG;

     uint64_t group_off_delta =
-      g_by_offset_delta ? rel_stream->read_sleb128().value_or(0) : 0;
+        g_by_offset_delta ? rel_stream->read_sleb128().value_or(0) : 0;

-    uint64_t groupr_info =
-      g_by_info ? rel_stream->read_sleb128().value_or(0) : 0;
+    uint64_t groupr_info = g_by_info ? rel_stream->read_sleb128().value_or(0) : 0;

     if (g_by_addend && g_has_addend) {
       addend += rel_stream->read_sleb128().value_or(0);
@@ -1064,8 +1150,10 @@ ok_error_t Parser::parse_packed_relocations(uint64_t offset, uint64_t size) {
       if (!*rel_stream) {
         break;
       }
-      r_offset += g_by_offset_delta ? group_off_delta : rel_stream->read_sleb128().value_or(0);
-      uint64_t info = g_by_info ? groupr_info : rel_stream->read_sleb128().value_or(0);
+      r_offset += g_by_offset_delta ? group_off_delta :
+                                      rel_stream->read_sleb128().value_or(0);
+      uint64_t info =
+          g_by_info ? groupr_info : rel_stream->read_sleb128().value_or(0);
       if (g_has_addend && !g_by_addend) {
         addend += rel_stream->read_sleb128().value_or(0);
       }
@@ -1074,8 +1162,9 @@ ok_error_t Parser::parse_packed_relocations(uint64_t offset, uint64_t size) {
       R.r_info = info;
       R.r_addend = addend;
       R.r_offset = r_offset;
-      auto reloc = std::unique_ptr<Relocation>(new Relocation(R, Relocation::PURPOSE::DYNAMIC,
-        Relocation::ENCODING::ANDROID_SLEB, arch));
+      auto reloc = std::unique_ptr<Relocation>(new Relocation(
+          R, Relocation::PURPOSE::DYNAMIC, Relocation::ENCODING::ANDROID_SLEB, arch
+      ));
       bind_symbol(*reloc);
       insert_relocation(std::move(reloc));
     }
@@ -1094,26 +1183,25 @@ ok_error_t Parser::parse_relative_relocations(uint64_t offset, uint64_t size) {
   const ARCH arch = binary_->header().machine_type();
   Relocation::TYPE type = Relocation::TYPE::UNKNOWN;
   switch (arch) {
-    case ARCH::AARCH64:
-      type = Relocation::TYPE::AARCH64_RELATIVE; break;
-    case ARCH::X86_64:
-      type = Relocation::TYPE::X86_64_RELATIVE; break;
-    case ARCH::ARM:
-      type = Relocation::TYPE::ARM_RELATIVE; break;
-    case ARCH::HEXAGON:
-      type = Relocation::TYPE::HEX_RELATIVE; break;
-    case ARCH::PPC64:
-      type = Relocation::TYPE::PPC64_RELATIVE; break;
-    case ARCH::PPC:
-      type = Relocation::TYPE::PPC_RELATIVE; break;
+    case ARCH::AARCH64: type = Relocation::TYPE::AARCH64_RELATIVE; break;
+    case ARCH::X86_64: type = Relocation::TYPE::X86_64_RELATIVE; break;
+    case ARCH::ARM: type = Relocation::TYPE::ARM_RELATIVE; break;
+    case ARCH::HEXAGON: type = Relocation::TYPE::HEX_RELATIVE; break;
+    case ARCH::PPC64: type = Relocation::TYPE::PPC64_RELATIVE; break;
+    case ARCH::PPC: type = Relocation::TYPE::PPC_RELATIVE; break;
     case ARCH::I386:
-    case ARCH::IAMCU:
-      type = Relocation::TYPE::X86_RELATIVE; break;
-    default:
-      break;
+    case ARCH::IAMCU: type = Relocation::TYPE::X86_RELATIVE; break;
+    default: break;
   }

+  size_t nb_relocs = 0;
   while (rel_stream->pos() < (offset + size)) {
+    if (nb_relocs >= NB_MAX_RELOCATIONS) {
+      LIEF_WARN("RELR relocations: the number of relocations exceeds the limit "
+                "({}). The table is likely corrupted",
+                NB_MAX_RELOCATIONS);
+      break;
+    }
     auto opt_relr = rel_stream->read<Elf_Relr>();
     if (!opt_relr) {
       break;
@@ -1121,10 +1209,11 @@ ok_error_t Parser::parse_relative_relocations(uint64_t offset, uint64_t size) {
     Elf_Relr rel = *opt_relr;
     if ((rel & 1) == 0) {
       Elf_Addr r_offset = rel;
-      auto reloc = std::make_unique<Relocation>(r_offset, type,
-                                                Relocation::ENCODING::RELR);
+      auto reloc =
+          std::make_unique<Relocation>(r_offset, type, Relocation::ENCODING::RELR);
       reloc->purpose(Relocation::PURPOSE::DYNAMIC);
       insert_relocation(std::move(reloc));
+      ++nb_relocs;
       base = rel + sizeof(Elf_Addr);
     } else {
       for (Elf_Addr offset = base; (rel >>= 1) != 0; offset += sizeof(Elf_Addr)) {
@@ -1134,6 +1223,7 @@ ok_error_t Parser::parse_relative_relocations(uint64_t offset, uint64_t size) {
                                                     Relocation::ENCODING::RELR);
           reloc->purpose(Relocation::PURPOSE::DYNAMIC);
           insert_relocation(std::move(reloc));
+          ++nb_relocs;
         }
       }
       base += (8 * sizeof(Elf_Relr) - 1) * sizeof(Elf_Addr);
@@ -1144,10 +1234,12 @@ ok_error_t Parser::parse_relative_relocations(uint64_t offset, uint64_t size) {


 template<typename ELF_T, typename REL_T>
-ok_error_t Parser::parse_dynamic_relocations(uint64_t relocations_offset, uint64_t size) {
+ok_error_t Parser::parse_dynamic_relocations(uint64_t relocations_offset,
+                                             uint64_t size) {
   static_assert(std::is_same_v<REL_T, typename ELF_T::Elf_Rel> ||
-                std::is_same_v<REL_T, typename ELF_T::Elf_Rela>, "REL_T must be Elf_Rel || Elf_Rela");
-  LIEF_DEBUG("== Parsing dynamic relocations ==");
+                    std::is_same_v<REL_T, typename ELF_T::Elf_Rela>,
+                "REL_T must be Elf_Rel || Elf_Rela");
+  LIEF_DEBUG("Parsing dynamic relocations");

   // Already parsed
   if (binary_->dynamic_relocations().size() > 0) {
@@ -1161,9 +1253,9 @@ ok_error_t Parser::parse_dynamic_relocations(uint64_t relocations_offset, uint64

   stream_->setpos(relocations_offset);
   const ARCH arch = binary_->header().machine_type();
-  const Relocation::ENCODING enc =
-    std::is_same_v<REL_T, typename ELF_T::Elf_Rel> ? Relocation::ENCODING::REL :
-                                                     Relocation::ENCODING::RELA;
+  const Relocation::ENCODING enc = std::is_same_v<REL_T, typename ELF_T::Elf_Rel> ?
+                                       Relocation::ENCODING::REL :
+                                       Relocation::ENCODING::RELA;

   for (uint32_t i = 0; i < nb_entries; ++i) {
     const auto raw_reloc = stream_->read<REL_T>();
@@ -1172,7 +1264,8 @@ ok_error_t Parser::parse_dynamic_relocations(uint64_t relocations_offset, uint64
     }

     auto reloc = std::unique_ptr<Relocation>(new Relocation(
-        std::move(*raw_reloc), Relocation::PURPOSE::DYNAMIC, enc, arch));
+        std::move(*raw_reloc), Relocation::PURPOSE::DYNAMIC, enc, arch
+    ));
     bind_symbol(*reloc);
     insert_relocation(std::move(reloc));
   }
@@ -1180,32 +1273,40 @@ ok_error_t Parser::parse_dynamic_relocations(uint64_t relocations_offset, uint64
 } // build_dynamic_reclocations

 template<typename ELF_T>
-ok_error_t Parser::parse_symtab_symbols(uint64_t offset, uint32_t nb_symbols,
+ok_error_t Parser::parse_symtab_symbols(const Section& symtab_section,
                                         const Section& string_section) {
-  using Elf_Sym = typename ELF_T::Elf_Sym;
   static constexpr size_t MAX_RESERVED_SYMBOLS = 10000;
-  LIEF_DEBUG("== Parsing symtab symbols ==");
+  using Elf_Sym = typename ELF_T::Elf_Sym;
+  LIEF_DEBUG("Parsing symtab symbols");

-  size_t nb_reserved = std::min<size_t>(nb_symbols, MAX_RESERVED_SYMBOLS);
+  LIEF::SpanStream stream(symtab_section.content());
+  stream.set_endian_swap(stream_->should_swap());
+
+  const auto nb_symbols = static_cast<uint32_t>((symtab_section.size() /
+                                                 sizeof(typename ELF_T::Elf_Sym)));
+  const size_t nb_reserved = std::min<size_t>(nb_symbols, MAX_RESERVED_SYMBOLS);
   binary_->symtab_symbols_.reserve(nb_reserved);

-  stream_->setpos(offset);
   const ARCH arch = binary_->header().machine_type();
-  for (uint32_t i = 0; i < nb_symbols; ++i) {
-    const auto raw_sym = stream_->read<Elf_Sym>();
+  size_t sym_idx = 0;
+  while (stream) {
+    const auto raw_sym = stream.read<Elf_Sym>();
     if (!raw_sym) {
-      break;
+      return make_error_code(raw_sym.error());
     }
+
     auto symbol = std::unique_ptr<Symbol>(new Symbol(std::move(*raw_sym), arch));
     const auto name_offset = string_section.file_offset() + raw_sym->st_name;

     if (auto symbol_name = stream_->peek_string_at(name_offset)) {
       symbol->name(std::move(*symbol_name));
     } else {
-      LIEF_ERR("Can't read the symbol's name for symbol #{}", i);
+      LIEF_ERR("Can't read the symbol's name for symbol #{}", sym_idx);
     }
+
     link_symbol_section(*symbol);
     binary_->symtab_symbols_.push_back(std::move(symbol));
+    ++sym_idx;
   }
   return ok();
 }
@@ -1216,22 +1317,23 @@ ok_error_t Parser::parse_dynamic_symbols(uint64_t offset) {
   using Elf_Off = typename ELF_T::Elf_Off;
   static constexpr size_t MAX_RESERVED_SYMBOLS = 10000;

-  LIEF_DEBUG("== Parsing dynamics symbols ==");
+  LIEF_DEBUG("Parsing dynamic symbols");

   auto res = get_numberof_dynamic_symbols<ELF_T>(config_.count_mtd);
   if (!res) {
-    LIEF_ERR("Fail to get the number of dynamic symbols with the current counting method");
+    LIEF_ERR("Fail to get the number of dynamic symbols with the current counting "
+             "method");
     return make_error_code(lief_errors::parsing_error);
   }

   const uint32_t nb_symbols = res.value();

   const Elf_Off dynamic_symbols_offset = offset;
-  const Elf_Off string_offset          = get_dynamic_string_table();
+  const Elf_Off string_offset = get_dynamic_string_table();

   LIEF_DEBUG("    - Number of symbols counted: {:d}", nb_symbols);
-  LIEF_DEBUG("    - Table Offset:              0x{:x}", dynamic_symbols_offset);
-  LIEF_DEBUG("    - String Table Offset:       0x{:x}", string_offset);
+  LIEF_DEBUG("    - Table Offset:              {:#x}", dynamic_symbols_offset);
+  LIEF_DEBUG("    - String Table Offset:       {:#x}", string_offset);

   if (string_offset == 0) {
     LIEF_WARN("Unable to find the .dynstr section");
@@ -1248,7 +1350,8 @@ ok_error_t Parser::parse_dynamic_symbols(uint64_t offset) {
       LIEF_DEBUG("Break on symbol #{:d}", i);
       break;
     }
-    auto symbol = std::unique_ptr<Symbol>(new Symbol(std::move(*symbol_header),
+    auto symbol =
+        std::unique_ptr<Symbol>(new Symbol(std::move(*symbol_header),
                                            binary_->header().machine_type()));

     if (symbol_header->st_name > 0) {
@@ -1258,7 +1361,7 @@ ok_error_t Parser::parse_dynamic_symbols(uint64_t offset) {
       }

       if (name->empty() && i > 0) {
-        LIEF_DEBUG("Symbol's name #{:d} is empty!", i);
+        LIEF_DEBUG("Symbol name #{:d} is empty", i);
       }

       symbol->name(std::move(*name));
@@ -1266,7 +1369,8 @@ ok_error_t Parser::parse_dynamic_symbols(uint64_t offset) {
     link_symbol_section(*symbol);
     binary_->dynamic_symbols_.push_back(std::move(symbol));
   }
-  binary_->sizing_info_->dynsym = binary_->dynamic_symbols_.size() * sizeof(Elf_Sym);
+  binary_->sizing_info_->dynsym =
+      binary_->dynamic_symbols_.size() * sizeof(Elf_Sym);
   if (const auto* dt_strsz = binary_->get(DynamicEntry::TAG::STRSZ)) {
     binary_->sizing_info_->dynstr = dt_strsz->value();
   }
@@ -1276,24 +1380,27 @@ ok_error_t Parser::parse_dynamic_symbols(uint64_t offset) {

 template<typename ELF_T>
 ok_error_t Parser::parse_dynamic_entries(BinaryStream& stream) {
-  using Elf_Dyn  = typename ELF_T::Elf_Dyn;
-  using uint__   = typename ELF_T::uint;
+  using Elf_Dyn = typename ELF_T::Elf_Dyn;
+  using uint__ = typename ELF_T::uint;
   using Elf_Addr = typename ELF_T::Elf_Addr;
-  using Elf_Off  = typename ELF_T::Elf_Off;
+  using Elf_Off = typename ELF_T::Elf_Off;

   LIEF_DEBUG("Parsing dynamic entries");

   uint32_t max_nb_entries = stream.size() / sizeof(Elf_Dyn);
-  max_nb_entries = std::min<uint32_t>(max_nb_entries, Parser::NB_MAX_DYNAMIC_ENTRIES);
+  max_nb_entries =
+      std::min<uint32_t>(max_nb_entries, Parser::NB_MAX_DYNAMIC_ENTRIES);

   Elf_Off dynamic_string_offset = get_dynamic_string_table(&stream);

   bool end_of_dynamic = false;
-  while (stream) {
+  uint32_t count = 0;
+  while (stream && count < max_nb_entries) {
     const auto res_entry = stream.read<Elf_Dyn>();
     if (!res_entry) {
       break;
     }
+    ++count;
     const auto entry = *res_entry;

     std::unique_ptr<DynamicEntry> dynamic_entry;
@@ -1301,60 +1408,90 @@ ok_error_t Parser::parse_dynamic_entries(BinaryStream& stream) {
     const ARCH arch = binary_->header().machine_type();

     switch (DynamicEntry::from_value(entry.d_tag, arch)) {
-      case DynamicEntry::TAG::NEEDED :
-        {
-          dynamic_entry = std::make_unique<DynamicEntryLibrary>(entry, arch);
-          auto library_name = stream_->peek_string_at(dynamic_string_offset + dynamic_entry->value());
-          if (!library_name) {
-            LIEF_ERR("Can't read library name for DT_NEEDED entry");
-            break;
-          }
-          dynamic_entry->as<DynamicEntryLibrary>()->name(std::move(*library_name));
+      case DynamicEntry::TAG::NEEDED:
+      {
+        dynamic_entry = std::make_unique<DynamicEntryLibrary>(entry, arch);
+        auto library_name = stream_->peek_string_at(dynamic_string_offset +
+                                                    dynamic_entry->value());
+        if (!library_name) {
+          LIEF_ERR("Can't read library name for DT_NEEDED entry");
           break;
         }
+        dynamic_entry->as<DynamicEntryLibrary>()->name(std::move(*library_name));
+        break;
+      }

-      case DynamicEntry::TAG::SONAME :
-        {
-          dynamic_entry = std::make_unique<DynamicSharedObject>(entry, arch);
-          auto sharename = stream_->peek_string_at(dynamic_string_offset + dynamic_entry->value());
-          if (!sharename) {
-            LIEF_ERR("Can't read library name for DT_SONAME entry");
-            break;
-          }
-          dynamic_entry->as<DynamicSharedObject>()->name(std::move(*sharename));
+      case DynamicEntry::TAG::SONAME:
+      {
+        dynamic_entry = std::make_unique<DynamicSharedObject>(entry, arch);
+        auto sharename = stream_->peek_string_at(dynamic_string_offset +
+                                                 dynamic_entry->value());
+        if (!sharename) {
+          LIEF_ERR("Can't read library name for DT_SONAME entry");
           break;
         }
+        dynamic_entry->as<DynamicSharedObject>()->name(std::move(*sharename));
+        break;
+      }
+
+      case DynamicEntry::TAG::AUXILIARY:
+      {
+        dynamic_entry = std::make_unique<DynamicEntryAuxiliary>(entry, arch);
+        auto name = stream_->peek_string_at(dynamic_string_offset +
+                                            dynamic_entry->value());
+        if (!name) {
+          LIEF_ERR("Can't read library name for DT_AUXILIARY entry");
+          break;
+        }
+        dynamic_entry->as<DynamicEntryAuxiliary>()->name(std::move(*name));
+        break;
+      }
+
+      case DynamicEntry::TAG::FILTER:
+      {
+        dynamic_entry = std::make_unique<DynamicEntryFilter>(entry, arch);
+        auto name = stream_->peek_string_at(dynamic_string_offset +
+                                            dynamic_entry->value());
+        if (!name) {
+          LIEF_ERR("Can't read library name for DT_FILTER entry");
+          break;
+        }
+        dynamic_entry->as<DynamicEntryFilter>()->name(std::move(*name));
+        break;
+      }

       case DynamicEntry::TAG::RPATH:
-        {
-          dynamic_entry = std::make_unique<DynamicEntryRpath>(entry, arch);
-          auto name = stream_->peek_string_at(dynamic_string_offset + dynamic_entry->value());
-          if (!name) {
-            LIEF_ERR("Can't read rpath string value for DT_RPATH");
-            break;
-          }
-          dynamic_entry->as<DynamicEntryRpath>()->rpath(std::move(*name));
+      {
+        dynamic_entry = std::make_unique<DynamicEntryRpath>(entry, arch);
+        auto name = stream_->peek_string_at(dynamic_string_offset +
+                                            dynamic_entry->value());
+        if (!name) {
+          LIEF_ERR("Can't read rpath string value for DT_RPATH");
           break;
         }
+        dynamic_entry->as<DynamicEntryRpath>()->rpath(std::move(*name));
+        break;
+      }

       case DynamicEntry::TAG::RUNPATH:
-        {
-          dynamic_entry = std::make_unique<DynamicEntryRunPath>(entry, arch);
-          auto name = stream_->peek_string_at(dynamic_string_offset + dynamic_entry->value());
-          if (!name) {
-            LIEF_ERR("Can't read runpath string value for DT_RUNPATH");
-            break;
-          }
-          dynamic_entry->as<DynamicEntryRunPath>()->runpath(std::move(*name));
+      {
+        dynamic_entry = std::make_unique<DynamicEntryRunPath>(entry, arch);
+        auto name = stream_->peek_string_at(dynamic_string_offset +
+                                            dynamic_entry->value());
+        if (!name) {
+          LIEF_ERR("Can't read runpath string value for DT_RUNPATH");
           break;
         }
+        dynamic_entry->as<DynamicEntryRunPath>()->runpath(std::move(*name));
+        break;
+      }

       case DynamicEntry::TAG::FLAGS_1:
       case DynamicEntry::TAG::FLAGS:
-        {
-          dynamic_entry = std::make_unique<DynamicEntryFlags>(entry, arch);
-          break;
-        }
+      {
+        dynamic_entry = std::make_unique<DynamicEntryFlags>(entry, arch);
+        break;
+      }

       case DynamicEntry::TAG::SYMTAB:
       case DynamicEntry::TAG::SYMENT:
@@ -1370,36 +1507,36 @@ ok_error_t Parser::parse_dynamic_entries(BinaryStream& stream) {
       case DynamicEntry::TAG::VERNEEDNUM:
       case DynamicEntry::TAG::VERDEF:
       case DynamicEntry::TAG::VERDEFNUM:
-        {
-          dynamic_entry = std::make_unique<DynamicEntry>(entry, arch);
-          break;
-        }
+      {
+        dynamic_entry = std::make_unique<DynamicEntry>(entry, arch);
+        break;
+      }

       case DynamicEntry::TAG::FINI_ARRAY:
       case DynamicEntry::TAG::INIT_ARRAY:
       case DynamicEntry::TAG::PREINIT_ARRAY:
-        {
-          dynamic_entry = std::make_unique<DynamicEntryArray>(entry, arch);
-          break;
-        }
+      {
+        dynamic_entry = std::make_unique<DynamicEntryArray>(entry, arch);
+        break;
+      }

       case DynamicEntry::TAG::DT_NULL_:
-        {
-          dynamic_entry = std::make_unique<DynamicEntry>(entry, arch);
-          end_of_dynamic = true;
-          break;
-        }
+      {
+        dynamic_entry = std::make_unique<DynamicEntry>(entry, arch);
+        end_of_dynamic = true;
+        break;
+      }

       default:
-        {
-          dynamic_entry = std::make_unique<DynamicEntry>(entry, arch);
-        }
+      {
+        dynamic_entry = std::make_unique<DynamicEntry>(entry, arch);
+      }
     }

     if (dynamic_entry != nullptr) {
       binary_->dynamic_entries_.push_back(std::move(dynamic_entry));
     } else {
-      LIEF_WARN("dynamic_entry is nullptr !");
+      LIEF_WARN("Null dynamic_entry");
     }

     if (end_of_dynamic) {
@@ -1410,11 +1547,16 @@ ok_error_t Parser::parse_dynamic_entries(BinaryStream& stream) {
   // Check for INIT array
   // ====================
   if (DynamicEntry* dt_init_array = binary_->get(DynamicEntry::TAG::INIT_ARRAY)) {
-    if (DynamicEntry* dt_init_arraysz = binary_->get(DynamicEntry::TAG::INIT_ARRAYSZ)) {
+    if (DynamicEntry* dt_init_arraysz =
+            binary_->get(DynamicEntry::TAG::INIT_ARRAYSZ))
+    {
       binary_->sizing_info_->init_array = dt_init_arraysz->value();
-      std::vector<uint64_t>& array = dt_init_array->as<DynamicEntryArray>()->array();
-      const auto nb_functions = static_cast<uint32_t>(dt_init_arraysz->value() / sizeof(uint__));
-      if (auto offset = binary_->virtual_address_to_offset(dt_init_array->value())) {
+      std::vector<uint64_t>& array =
+          dt_init_array->as<DynamicEntryArray>()->array();
+      const auto nb_functions =
+          static_cast<uint32_t>(dt_init_arraysz->value() / sizeof(uint__));
+      if (auto offset = binary_->virtual_address_to_offset(dt_init_array->value()))
+      {
         stream_->setpos(*offset);
         for (size_t i = 0; i < nb_functions; ++i) {
           if (auto val = stream_->read<Elf_Addr>()) {
@@ -1425,7 +1567,8 @@ ok_error_t Parser::parse_dynamic_entries(BinaryStream& stream) {
         }
       }
     } else {
-      LIEF_WARN("The binary is not consistent. Found DT_INIT_ARRAY but missing DT_INIT_ARRAYSZ");
+      LIEF_WARN("The binary is not consistent. Found DT_INIT_ARRAY but missing "
+                "DT_INIT_ARRAYSZ");
     }
   }

@@ -1433,13 +1576,18 @@ ok_error_t Parser::parse_dynamic_entries(BinaryStream& stream) {
   // Check for FINI array
   // ====================
   if (DynamicEntry* dt_fini_array = binary_->get(DynamicEntry::TAG::FINI_ARRAY)) {
-    if (DynamicEntry* dt_fini_arraysz = binary_->get(DynamicEntry::TAG::FINI_ARRAYSZ)) {
+    if (DynamicEntry* dt_fini_arraysz =
+            binary_->get(DynamicEntry::TAG::FINI_ARRAYSZ))
+    {
       binary_->sizing_info_->fini_array = dt_fini_arraysz->value();
-      std::vector<uint64_t>& array = dt_fini_array->as<DynamicEntryArray>()->array();
+      std::vector<uint64_t>& array =
+          dt_fini_array->as<DynamicEntryArray>()->array();

-      const auto nb_functions = static_cast<uint32_t>(dt_fini_arraysz->value() / sizeof(uint__));
+      const auto nb_functions =
+          static_cast<uint32_t>(dt_fini_arraysz->value() / sizeof(uint__));

-      if (auto offset = binary_->virtual_address_to_offset(dt_fini_array->value())) {
+      if (auto offset = binary_->virtual_address_to_offset(dt_fini_array->value()))
+      {
         stream_->setpos(*offset);
         for (size_t i = 0; i < nb_functions; ++i) {
           if (auto val = stream_->read<Elf_Addr>()) {
@@ -1450,20 +1598,29 @@ ok_error_t Parser::parse_dynamic_entries(BinaryStream& stream) {
         }
       }
     } else {
-      LIEF_WARN("The binary is not consistent. Found DT_FINI_ARRAY but missing DT_FINI_ARRAYSZ");
+      LIEF_WARN("The binary is not consistent. Found DT_FINI_ARRAY but missing "
+                "DT_FINI_ARRAYSZ");
     }
   }

   // Check for PREINIT array
   // =======================
-  if (DynamicEntry* dt_preini_array = binary_->get(DynamicEntry::TAG::PREINIT_ARRAY)) {
-    if (DynamicEntry* dt_preinit_arraysz = binary_->get(DynamicEntry::TAG::PREINIT_ARRAYSZ)) {
+  if (DynamicEntry* dt_preini_array =
+          binary_->get(DynamicEntry::TAG::PREINIT_ARRAY))
+  {
+    if (DynamicEntry* dt_preinit_arraysz =
+            binary_->get(DynamicEntry::TAG::PREINIT_ARRAYSZ))
+    {
       binary_->sizing_info_->preinit_array = dt_preinit_arraysz->value();
-      std::vector<uint64_t>& array = dt_preini_array->as<DynamicEntryArray>()->array();
+      std::vector<uint64_t>& array =
+          dt_preini_array->as<DynamicEntryArray>()->array();

-      const auto nb_functions = static_cast<uint32_t>(dt_preinit_arraysz->value() / sizeof(uint__));
+      const auto nb_functions =
+          static_cast<uint32_t>(dt_preinit_arraysz->value() / sizeof(uint__));

-      if (auto offset = binary_->virtual_address_to_offset(dt_preini_array->value())) {
+      if (auto offset =
+              binary_->virtual_address_to_offset(dt_preini_array->value()))
+      {
         stream_->setpos(static_cast<Elf_Off>(*offset));
         for (size_t i = 0; i < nb_functions; ++i) {
           if (auto val = stream_->read<Elf_Addr>()) {
@@ -1474,7 +1631,8 @@ ok_error_t Parser::parse_dynamic_entries(BinaryStream& stream) {
         }
       }
     } else {
-      LIEF_WARN("The binary is not consistent. Found DT_PREINIT_ARRAY but missing DT_PREINIT_ARRAYSZ");
+      LIEF_WARN("The binary is not consistent. Found DT_PREINIT_ARRAY but missing "
+                "DT_PREINIT_ARRAYSZ");
     }
   }
   return ok();
@@ -1483,9 +1641,10 @@ ok_error_t Parser::parse_dynamic_entries(BinaryStream& stream) {

 template<typename ELF_T, typename REL_T>
 ok_error_t Parser::parse_pltgot_relocations(uint64_t offset, uint64_t size) {
-  static_assert(std::is_same<REL_T, typename ELF_T::Elf_Rel>::value ||
-                std::is_same<REL_T, typename ELF_T::Elf_Rela>::value, "REL_T must be Elf_Rel or Elf_Rela");
-  using Elf_Off  = typename ELF_T::Elf_Off;
+  static_assert(std::is_same_v<REL_T, typename ELF_T::Elf_Rel> ||
+                    std::is_same_v<REL_T, typename ELF_T::Elf_Rela>,
+                "REL_T must be Elf_Rel or Elf_Rela");
+  using Elf_Off = typename ELF_T::Elf_Off;

   // Already Parsed
   if (binary_->pltgot_relocations().size() > 0) {
@@ -1499,9 +1658,9 @@ ok_error_t Parser::parse_pltgot_relocations(uint64_t offset, uint64_t size) {
   nb_entries = std::min<uint32_t>(nb_entries, Parser::NB_MAX_RELOCATIONS);

   const ARCH arch = binary_->header_.machine_type();
-  const Relocation::ENCODING enc =
-    std::is_same_v<REL_T, typename ELF_T::Elf_Rel> ? Relocation::ENCODING::REL :
-                                                     Relocation::ENCODING::RELA;
+  const Relocation::ENCODING enc = std::is_same_v<REL_T, typename ELF_T::Elf_Rel> ?
+                                       Relocation::ENCODING::REL :
+                                       Relocation::ENCODING::RELA;
   stream_->setpos(offset_relocations);
   for (uint32_t i = 0; i < nb_entries; ++i) {
     const auto rel_hdr = stream_->read<REL_T>();
@@ -1509,8 +1668,9 @@ ok_error_t Parser::parse_pltgot_relocations(uint64_t offset, uint64_t size) {
       break;
     }

-    auto reloc = std::unique_ptr<Relocation>(new Relocation(
-        std::move(*rel_hdr), Relocation::PURPOSE::PLTGOT, enc, arch));
+    auto reloc = std::unique_ptr<Relocation>(
+        new Relocation(std::move(*rel_hdr), Relocation::PURPOSE::PLTGOT, enc, arch)
+    );
     bind_symbol(*reloc);
     insert_relocation(std::move(reloc));
   }
@@ -1519,10 +1679,8 @@ ok_error_t Parser::parse_pltgot_relocations(uint64_t offset, uint64_t size) {

 struct RelocationSetEq {
   bool operator()(const Relocation* lhs, const Relocation* rhs) const {
-    bool check = lhs->address() == rhs->address() &&
-                 lhs->type()    == rhs->type()    &&
-                 lhs->addend()  == rhs->addend()  &&
-                 lhs->info()    == rhs->info()    &&
+    bool check = lhs->address() == rhs->address() && lhs->type() == rhs->type() &&
+                 lhs->addend() == rhs->addend() && lhs->info() == rhs->info() &&
                  lhs->has_symbol() == rhs->has_symbol();

     if (!check) {
@@ -1540,9 +1698,9 @@ struct RelocationSetHash {
   size_t operator()(const Relocation* reloc) const {
     Hash hasher;
     hasher.process(reloc->address())
-          .process(reloc->type())
-          .process(reloc->info())
-          .process(reloc->addend());
+        .process(reloc->type())
+        .process(reloc->info())
+        .process(reloc->addend());

     const Symbol* sym = reloc->symbol();
     if (sym != nullptr) {
@@ -1557,13 +1715,14 @@ ok_error_t Parser::parse_section_relocations(const Section& section) {
   using Elf_Rel = typename ELF_T::Elf_Rel;
   using Elf_Rela = typename ELF_T::Elf_Rela;

-  static_assert(std::is_same<REL_T, Elf_Rel>::value ||
-                std::is_same<REL_T, Elf_Rela>::value, "REL_T must be Elf_Rel || Elf_Rela");
+  static_assert(std::is_same_v<REL_T, Elf_Rel> || std::is_same_v<REL_T, Elf_Rela>,
+                "REL_T must be Elf_Rel || Elf_Rela");

   // A relocation section can reference two other sections: a symbol table,
   // identified by the sh_link section header entry, and a section to modify,
   // identified by the sh_info
-  // See Figure 4-12 in https://refspecs.linuxbase.org/elf/gabi4+/ch4.sheader.html#sh_link
+  // See Figure 4-12 in
+  // https://refspecs.linuxbase.org/elf/gabi4+/ch4.sheader.html#sh_link
   Section* applies_to = nullptr;
   const size_t sh_info = section.information();
   if (sh_info > 0 && sh_info < binary_->sections_.size()) {
@@ -1581,8 +1740,8 @@ ok_error_t Parser::parse_section_relocations(const Section& section) {
   const ARCH arch = binary_->header_.machine_type();

   constexpr Relocation::ENCODING enc =
-    std::is_same_v<REL_T, typename ELF_T::Elf_Rel> ? Relocation::ENCODING::REL :
-                                                     Relocation::ENCODING::RELA;
+      std::is_same_v<REL_T, typename ELF_T::Elf_Rel> ? Relocation::ENCODING::REL :
+                                                       Relocation::ENCODING::RELA;

   auto nb_entries = static_cast<uint32_t>(section.size() / sizeof(REL_T));
   nb_entries = std::min<uint32_t>(nb_entries, Parser::NB_MAX_RELOCATIONS);
@@ -1590,37 +1749,40 @@ ok_error_t Parser::parse_section_relocations(const Section& section) {
   std::unordered_set<Relocation*, RelocationSetHash, RelocationSetEq> reloc_hash;

   SpanStream reloc_stream(section.content());
+  reloc_stream.set_endian_swap(stream_->should_swap());
+
   const bool is_object_file =
-    binary_->header().file_type() == Header::FILE_TYPE::REL &&
-    binary_->segments_.empty();
+      binary_->header().file_type() == Header::FILE_TYPE::REL &&
+      binary_->segments_.empty();

   size_t count = 0;
   while (reloc_stream) {
     auto rel_hdr = reloc_stream.read<REL_T>();
     if (!rel_hdr) {
-      LIEF_WARN("Can't parse relocation at offset: 0x{:04x} in {}",
+      LIEF_WARN("Can't parse relocation at offset: {:#06x} in {}",
                 reloc_stream.pos(), section.name());
       break;
     }
-    auto reloc = std::unique_ptr<Relocation>(new Relocation(
-      *rel_hdr, Relocation::PURPOSE::NONE, enc, arch));
+    auto reloc = std::unique_ptr<Relocation>(
+        new Relocation(*rel_hdr, Relocation::PURPOSE::NONE, enc, arch)
+    );

-    reloc->section_      = applies_to;
+    reloc->section_ = applies_to;
     reloc->symbol_table_ = symbol_table;

     if (is_object_file) {
       reloc->purpose(Relocation::PURPOSE::OBJECT);
     }

-    const auto idx  = static_cast<uint32_t>(rel_hdr->r_info >> shift);
+    const auto idx = static_cast<uint32_t>(rel_hdr->r_info >> shift);

-    const bool is_from_dynsym = idx > 0 && idx < binary_->dynamic_symbols_.size() &&
-               (symbol_table == nullptr ||
-                symbol_table->type() == Section::TYPE::DYNSYM);
+    const bool is_from_dynsym =
+        idx > 0 && idx < binary_->dynamic_symbols_.size() &&
+        (symbol_table == nullptr || symbol_table->type() == Section::TYPE::DYNSYM);

-    const bool is_from_symtab = idx < binary_->symtab_symbols_.size() &&
-                                (symbol_table == nullptr ||
-                                 symbol_table->type() == Section::TYPE::SYMTAB);
+    const bool is_from_symtab =
+        idx < binary_->symtab_symbols_.size() &&
+        (symbol_table == nullptr || symbol_table->type() == Section::TYPE::SYMTAB);
     if (is_from_dynsym) {
       reloc->symbol_ = binary_->dynamic_symbols_[idx].get();
     } else if (is_from_symtab) {
@@ -1637,27 +1799,30 @@ ok_error_t Parser::parse_section_relocations(const Section& section) {
 }

 template<typename ELF_T>
-ok_error_t Parser::parse_symbol_version_requirement(uint64_t offset, uint32_t nb_entries) {
+ok_error_t Parser::parse_symbol_version_requirement(uint64_t offset,
+                                                    uint32_t nb_entries) {
   using Elf_Verneed = typename ELF_T::Elf_Verneed;
   using Elf_Vernaux = typename ELF_T::Elf_Vernaux;

-  LIEF_DEBUG("== Parser Symbol version requirement ==");
+  LIEF_DEBUG("Parsing symbol version requirements");

   const uint64_t svr_offset = offset;

-  LIEF_DEBUG("svr offset: 0x{:x}", svr_offset);
+  LIEF_DEBUG("svr_offset: {:#x}", svr_offset);

   const uint64_t string_offset = get_dynamic_string_table();

-  uint32_t next_symbol_offset = 0;
+  uint64_t next_symbol_offset = 0;

   for (size_t sym_idx = 0; sym_idx < nb_entries; ++sym_idx) {
-    const auto header = stream_->peek<Elf_Verneed>(svr_offset + next_symbol_offset);
+    const auto header =
+        stream_->peek<Elf_Verneed>(svr_offset + next_symbol_offset);
     if (!header) {
       break;
     }

-    auto symbol_version_requirement = std::make_unique<SymbolVersionRequirement>(*header);
+    auto symbol_version_requirement =
+        std::make_unique<SymbolVersionRequirement>(*header);
     if (string_offset != 0) {
       auto name = stream_->peek_string_at(string_offset + header->vn_file);
       if (name) {
@@ -1668,10 +1833,10 @@ ok_error_t Parser::parse_symbol_version_requirement(uint64_t offset, uint32_t nb
     const uint32_t nb_symbol_aux = header->vn_cnt;

     if (nb_symbol_aux > 0 && header->vn_aux > 0) {
-      uint32_t next_aux_offset = 0;
+      uint64_t next_aux_offset = 0;
       for (size_t j = 0; j < nb_symbol_aux; ++j) {
-        const uint64_t aux_hdr_off = svr_offset + next_symbol_offset +
-                                     header->vn_aux + next_aux_offset;
+        const uint64_t aux_hdr_off =
+            svr_offset + next_symbol_offset + header->vn_aux + next_aux_offset;

         const auto aux_header = stream_->peek<Elf_Vernaux>(aux_hdr_off);
         if (!aux_header) {
@@ -1680,7 +1845,8 @@ ok_error_t Parser::parse_symbol_version_requirement(uint64_t offset, uint32_t nb

         auto svar = std::make_unique<SymbolVersionAuxRequirement>(*aux_header);
         if (string_offset != 0) {
-          auto name = stream_->peek_string_at(string_offset + aux_header->vna_name);
+          auto name =
+              stream_->peek_string_at(string_offset + aux_header->vna_name);
           if (name) {
             svar->name(std::move(*name));
           }
@@ -1690,16 +1856,26 @@ ok_error_t Parser::parse_symbol_version_requirement(uint64_t offset, uint32_t nb
         if (aux_header->vna_next == 0) {
           break;
         }
+        const uint64_t prev_aux_offset = next_aux_offset;
         next_aux_offset += aux_header->vna_next;
+        if (next_aux_offset <= prev_aux_offset) {
+          break;
+        }
       }

-      binary_->symbol_version_requirements_.push_back(std::move(symbol_version_requirement));
+      binary_->symbol_version_requirements_.push_back(
+          std::move(symbol_version_requirement)
+      );
     }

     if (header->vn_next == 0) {
       break;
     }
+    const uint64_t prev_symbol_offset = next_symbol_offset;
     next_symbol_offset += header->vn_next;
+    if (next_symbol_offset <= prev_symbol_offset) {
+      break;
+    }
   }


@@ -1707,25 +1883,32 @@ ok_error_t Parser::parse_symbol_version_requirement(uint64_t offset, uint32_t nb
   // Symbol version requirement is used to map
   // SymbolVersion::SymbolVersionAux <------> SymbolVersionAuxRequirement
   //
-  // We mask the 15th (7FFF) bit because it sets if this symbol is a hidden on or not
-  // but we don't care
-  for (const std::unique_ptr<SymbolVersionRequirement>& svr : binary_->symbol_version_requirements_) {
+  // We mask the 15th (7FFF) bit because it indicates if this symbol is a hidden
+  // one or not, but we don't care
+  for (const std::unique_ptr<SymbolVersionRequirement>& svr :
+       binary_->symbol_version_requirements_)
+  {
     binary_->sizing_info_->verneed += sizeof(Elf_Verneed);
-    for (std::unique_ptr<SymbolVersionAuxRequirement>& svar : svr->aux_requirements_) {
-        binary_->sizing_info_->verneed += sizeof(Elf_Vernaux);
-        for (const std::unique_ptr<SymbolVersion>& sv : binary_->symbol_version_table_) {
-          if ((sv->value() & 0x7FFF) == svar->other()) {
-            sv->symbol_aux_ = svar.get();
-          }
+    for (std::unique_ptr<SymbolVersionAuxRequirement>& svar :
+         svr->aux_requirements_)
+    {
+      binary_->sizing_info_->verneed += sizeof(Elf_Vernaux);
+      for (const std::unique_ptr<SymbolVersion>& sv :
+           binary_->symbol_version_table_)
+      {
+        if ((sv->value() & 0x7FFF) == svar->other()) {
+          sv->symbol_aux_ = svar.get();
         }
+      }
     }
   }
   return ok();
 }

 template<typename ELF_T>
-ok_error_t Parser::parse_symbol_version_definition(uint64_t offset, uint32_t nb_entries) {
-  using Elf_Verdef  = typename ELF_T::Elf_Verdef;
+ok_error_t Parser::parse_symbol_version_definition(uint64_t offset,
+                                                   uint32_t nb_entries) {
+  using Elf_Verdef = typename ELF_T::Elf_Verdef;
   using Elf_Verdaux = typename ELF_T::Elf_Verdaux;

   const uint64_t string_offset = get_dynamic_string_table();
@@ -1734,26 +1917,32 @@ ok_error_t Parser::parse_symbol_version_definition(uint64_t offset, uint32_t nb_

   for (size_t i = 0; i < nb_entries; ++i) {
     const auto svd_header = verdef_stream->peek<Elf_Verdef>();
-    def_size = std::max(def_size, verdef_stream->pos() - offset + sizeof(Elf_Verdef));
+    def_size =
+        std::max(def_size, verdef_stream->pos() - offset + sizeof(Elf_Verdef));
     if (!svd_header) {
       break;
     }

-    auto symbol_version_definition = std::make_unique<SymbolVersionDefinition>(*svd_header);
+    auto symbol_version_definition =
+        std::make_unique<SymbolVersionDefinition>(*svd_header);
     uint32_t nb_aux_symbols = svd_header->vd_cnt;
     {
       ScopedStream aux_stream(*stream_, verdef_stream->pos() + svd_header->vd_aux);
       for (size_t j = 0; j < nb_aux_symbols; ++j) {
         const auto svda_header = aux_stream->peek<Elf_Verdaux>();
-        def_size = std::max(def_size, aux_stream->pos() - offset + sizeof(Elf_Verdaux));
+        def_size =
+            std::max(def_size, aux_stream->pos() - offset + sizeof(Elf_Verdaux));
         if (!svda_header) {
           break;
         }

         if (string_offset != 0) {
-          auto name  = stream_->peek_string_at(string_offset + svda_header->vda_name);
+          auto name =
+              stream_->peek_string_at(string_offset + svda_header->vda_name);
           if (name) {
-            symbol_version_definition->symbol_version_aux_.emplace_back(new SymbolVersionAux{std::move(*name)});
+            symbol_version_definition->symbol_version_aux_.emplace_back(
+                new SymbolVersionAux{std::move(*name)}
+            );
           }
         }

@@ -1765,7 +1954,9 @@ ok_error_t Parser::parse_symbol_version_definition(uint64_t offset, uint32_t nb_
       }
     }

-    binary_->symbol_version_definition_.push_back(std::move(symbol_version_definition));
+    binary_->symbol_version_definition_.push_back(
+        std::move(symbol_version_definition)
+    );

     // Additional check
     if (svd_header->vd_next == 0) {
@@ -1777,12 +1968,16 @@ ok_error_t Parser::parse_symbol_version_definition(uint64_t offset, uint32_t nb_
   binary_->sizing_info_->verdef = def_size;

   // Associate Symbol Version with auxiliary symbol
-  // We mask the 15th bit because it sets if this symbol is a hidden on or not
-  // but we don't care
-  for (std::unique_ptr<SymbolVersionDefinition>& svd : binary_->symbol_version_definition_) {
+  // We mask the 15th bit because it indicates if this symbol is a hidden one or
+  // not, but we don't care
+  for (std::unique_ptr<SymbolVersionDefinition>& svd :
+       binary_->symbol_version_definition_)
+  {
     for (std::unique_ptr<SymbolVersionAux>& sva : svd->symbol_version_aux_) {
       for (std::unique_ptr<SymbolVersion>& sv : binary_->symbol_version_table_) {
-        if (svd->ndx() > 1 && (sv->value() & 0x7FFF) == svd->ndx() && !sv->symbol_aux_) {
+        if (svd->ndx() > 1 && (sv->value() & 0x7FFF) == svd->ndx() &&
+            !sv->symbol_aux_)
+        {
           sv->symbol_aux_ = sva.get();
         }
       }
@@ -1792,4 +1987,3 @@ ok_error_t Parser::parse_symbol_version_definition(uint64_t offset, uint32_t nb_
 }

 }
-}
diff --git a/deps/LIEF/src/ELF/ProcessorFlags.cpp b/deps/LIEF/src/ELF/ProcessorFlags.cpp
index ad5f26c3275..b7a2d6e7a89 100644
--- a/deps/LIEF/src/ELF/ProcessorFlags.cpp
+++ b/deps/LIEF/src/ELF/ProcessorFlags.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -16,82 +16,82 @@
 #include "LIEF/ELF/ProcessorFlags.hpp"
 #include "frozen.hpp"

-namespace LIEF {
-namespace ELF {
+
+namespace LIEF::ELF {
 const char* to_string(PROCESSOR_FLAGS flag) {
-  #define ENTRY(X) std::pair(PROCESSOR_FLAGS::X, #X)
-  STRING_MAP enums2str {
-    ENTRY(ARM_EABI_UNKNOWN),
-    ENTRY(ARM_SOFT_FLOAT),
-    ENTRY(ARM_VFP_FLOAT),
-    ENTRY(ARM_EABI_VER1),
-    ENTRY(ARM_EABI_VER2),
-    ENTRY(ARM_EABI_VER3),
-    ENTRY(ARM_EABI_VER4),
-    ENTRY(ARM_EABI_VER5),
-    ENTRY(HEXAGON_MACH_V2),
-    ENTRY(HEXAGON_MACH_V3),
-    ENTRY(HEXAGON_MACH_V4),
-    ENTRY(HEXAGON_MACH_V5),
-    ENTRY(HEXAGON_ISA_V2),
-    ENTRY(HEXAGON_ISA_V3),
-    ENTRY(HEXAGON_ISA_V4),
-    ENTRY(HEXAGON_ISA_V5),
-    ENTRY(LOONGARCH_ABI_SOFT_FLOAT),
-    ENTRY(LOONGARCH_ABI_SINGLE_FLOAT),
-    ENTRY(LOONGARCH_ABI_DOUBLE_FLOAT),
-    ENTRY(MIPS_NOREORDER),
-    ENTRY(MIPS_PIC),
-    ENTRY(MIPS_CPIC),
-    ENTRY(MIPS_ABI2),
-    ENTRY(MIPS_32BITMODE),
-    ENTRY(MIPS_FP64),
-    ENTRY(MIPS_NAN2008),
-    ENTRY(MIPS_ABI_O32),
-    ENTRY(MIPS_ABI_O64),
-    ENTRY(MIPS_ABI_EABI32),
-    ENTRY(MIPS_ABI_EABI64),
-    ENTRY(MIPS_MACH_3900),
-    ENTRY(MIPS_MACH_4010),
-    ENTRY(MIPS_MACH_4100),
-    ENTRY(MIPS_MACH_4650),
-    ENTRY(MIPS_MACH_4120),
-    ENTRY(MIPS_MACH_4111),
-    ENTRY(MIPS_MACH_SB1),
-    ENTRY(MIPS_MACH_OCTEON),
-    ENTRY(MIPS_MACH_XLR),
-    ENTRY(MIPS_MACH_OCTEON2),
-    ENTRY(MIPS_MACH_OCTEON3),
-    ENTRY(MIPS_MACH_5400),
-    ENTRY(MIPS_MACH_5900),
-    ENTRY(MIPS_MACH_5500),
-    ENTRY(MIPS_MACH_9000),
-    ENTRY(MIPS_MACH_LS2E),
-    ENTRY(MIPS_MACH_LS2F),
-    ENTRY(MIPS_MACH_LS3A),
-    ENTRY(MIPS_MICROMIPS),
-    ENTRY(MIPS_ARCH_ASE_M16),
-    ENTRY(MIPS_ARCH_ASE_MDMX),
-    ENTRY(MIPS_ARCH_1),
-    ENTRY(MIPS_ARCH_2),
-    ENTRY(MIPS_ARCH_3),
-    ENTRY(MIPS_ARCH_4),
-    ENTRY(MIPS_ARCH_5),
-    ENTRY(MIPS_ARCH_32),
-    ENTRY(MIPS_ARCH_64),
-    ENTRY(MIPS_ARCH_32R2),
-    ENTRY(MIPS_ARCH_64R2),
-    ENTRY(MIPS_ARCH_32R6),
-    ENTRY(MIPS_ARCH_64R6),
-    ENTRY(RISCV_RVC),
-    ENTRY(RISCV_FLOAT_ABI_SOFT),
-    ENTRY(RISCV_FLOAT_ABI_SINGLE),
-    ENTRY(RISCV_FLOAT_ABI_DOUBLE),
-    ENTRY(RISCV_FLOAT_ABI_QUAD),
-    ENTRY(RISCV_FLOAT_ABI_RVE),
-    ENTRY(RISCV_FLOAT_ABI_TSO),
+#define ENTRY(X) std::pair(PROCESSOR_FLAGS::X, #X)
+  STRING_MAP enums2str{
+      ENTRY(ARM_EABI_UNKNOWN),
+      ENTRY(ARM_SOFT_FLOAT),
+      ENTRY(ARM_VFP_FLOAT),
+      ENTRY(ARM_EABI_VER1),
+      ENTRY(ARM_EABI_VER2),
+      ENTRY(ARM_EABI_VER3),
+      ENTRY(ARM_EABI_VER4),
+      ENTRY(ARM_EABI_VER5),
+      ENTRY(HEXAGON_MACH_V2),
+      ENTRY(HEXAGON_MACH_V3),
+      ENTRY(HEXAGON_MACH_V4),
+      ENTRY(HEXAGON_MACH_V5),
+      ENTRY(HEXAGON_ISA_V2),
+      ENTRY(HEXAGON_ISA_V3),
+      ENTRY(HEXAGON_ISA_V4),
+      ENTRY(HEXAGON_ISA_V5),
+      ENTRY(LOONGARCH_ABI_SOFT_FLOAT),
+      ENTRY(LOONGARCH_ABI_SINGLE_FLOAT),
+      ENTRY(LOONGARCH_ABI_DOUBLE_FLOAT),
+      ENTRY(MIPS_NOREORDER),
+      ENTRY(MIPS_PIC),
+      ENTRY(MIPS_CPIC),
+      ENTRY(MIPS_ABI2),
+      ENTRY(MIPS_32BITMODE),
+      ENTRY(MIPS_FP64),
+      ENTRY(MIPS_NAN2008),
+      ENTRY(MIPS_ABI_O32),
+      ENTRY(MIPS_ABI_O64),
+      ENTRY(MIPS_ABI_EABI32),
+      ENTRY(MIPS_ABI_EABI64),
+      ENTRY(MIPS_MACH_3900),
+      ENTRY(MIPS_MACH_4010),
+      ENTRY(MIPS_MACH_4100),
+      ENTRY(MIPS_MACH_4650),
+      ENTRY(MIPS_MACH_4120),
+      ENTRY(MIPS_MACH_4111),
+      ENTRY(MIPS_MACH_SB1),
+      ENTRY(MIPS_MACH_OCTEON),
+      ENTRY(MIPS_MACH_XLR),
+      ENTRY(MIPS_MACH_OCTEON2),
+      ENTRY(MIPS_MACH_OCTEON3),
+      ENTRY(MIPS_MACH_5400),
+      ENTRY(MIPS_MACH_5900),
+      ENTRY(MIPS_MACH_5500),
+      ENTRY(MIPS_MACH_9000),
+      ENTRY(MIPS_MACH_LS2E),
+      ENTRY(MIPS_MACH_LS2F),
+      ENTRY(MIPS_MACH_LS3A),
+      ENTRY(MIPS_MICROMIPS),
+      ENTRY(MIPS_ARCH_ASE_M16),
+      ENTRY(MIPS_ARCH_ASE_MDMX),
+      ENTRY(MIPS_ARCH_1),
+      ENTRY(MIPS_ARCH_2),
+      ENTRY(MIPS_ARCH_3),
+      ENTRY(MIPS_ARCH_4),
+      ENTRY(MIPS_ARCH_5),
+      ENTRY(MIPS_ARCH_32),
+      ENTRY(MIPS_ARCH_64),
+      ENTRY(MIPS_ARCH_32R2),
+      ENTRY(MIPS_ARCH_64R2),
+      ENTRY(MIPS_ARCH_32R6),
+      ENTRY(MIPS_ARCH_64R6),
+      ENTRY(RISCV_RVC),
+      ENTRY(RISCV_FLOAT_ABI_SOFT),
+      ENTRY(RISCV_FLOAT_ABI_SINGLE),
+      ENTRY(RISCV_FLOAT_ABI_DOUBLE),
+      ENTRY(RISCV_FLOAT_ABI_QUAD),
+      ENTRY(RISCV_FLOAT_ABI_RVE),
+      ENTRY(RISCV_FLOAT_ABI_TSO),
   };
-  #undef ENTRY
+#undef ENTRY

   if (auto it = enums2str.find(flag); it != enums2str.end()) {
     return it->second;
@@ -99,4 +99,3 @@ const char* to_string(PROCESSOR_FLAGS flag) {
   return "UNKNOWN";
 }
 }
-}
diff --git a/deps/LIEF/src/ELF/Relocation.cpp b/deps/LIEF/src/ELF/Relocation.cpp
index e28e38211ca..b94866c2e2b 100644
--- a/deps/LIEF/src/ELF/Relocation.cpp
+++ b/deps/LIEF/src/ELF/Relocation.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -24,54 +24,44 @@

 #include "logging.hpp"

-namespace LIEF {
-namespace ELF {
+
+namespace LIEF::ELF {

 int32_t get_reloc_size(Relocation::TYPE type);

-template Relocation::Relocation(const details::Elf32_Rel&, PURPOSE, ENCODING, ARCH);
-template Relocation::Relocation(const details::Elf32_Rela&, PURPOSE, ENCODING, ARCH);
-template Relocation::Relocation(const details::Elf64_Rel&, PURPOSE, ENCODING, ARCH);
-template Relocation::Relocation(const details::Elf64_Rela&, PURPOSE, ENCODING, ARCH);
+template Relocation::Relocation(const details::Elf32_Rel&, PURPOSE, ENCODING,
+                                ARCH);
+template Relocation::Relocation(const details::Elf32_Rela&, PURPOSE, ENCODING,
+                                ARCH);
+template Relocation::Relocation(const details::Elf64_Rel&, PURPOSE, ENCODING,
+                                ARCH);
+template Relocation::Relocation(const details::Elf64_Rela&, PURPOSE, ENCODING,
+                                ARCH);

 Relocation::TYPE Relocation::type_from(uint32_t value, ARCH arch) {
   static std::set<ARCH> ERR;
   switch (arch) {
-    case ARCH::X86_64:
-      return TYPE(value | R_X64);
-    case ARCH::AARCH64:
-      return TYPE(value | R_AARCH64);
-    case ARCH::I386:
-      return TYPE(value | R_X86);
-    case ARCH::ARM:
-      return TYPE(value | R_ARM);
-    case ARCH::HEXAGON:
-      return TYPE(value | R_HEXAGON);
-    case ARCH::LOONGARCH:
-      return TYPE(value | R_LARCH);
-    case ARCH::MIPS:
-      return TYPE(value | R_MIPS);
-    case ARCH::PPC:
-      return TYPE(value | R_PPC);
-    case ARCH::PPC64:
-      return TYPE(value | R_PPC64);
-    case ARCH::SPARC:
-      return TYPE(value | R_SPARC);
-    case ARCH::RISCV:
-      return TYPE(value | R_RISCV);
-    case ARCH::BPF:
-      return TYPE(value | R_BPF);
-    case ARCH::SH:
-      return TYPE(value | R_SH4);
-    case ARCH::S390:
-      return TYPE(value | R_SYSZ);
+    case ARCH::X86_64: return TYPE(value | R_X64);
+    case ARCH::AARCH64: return TYPE(value | R_AARCH64);
+    case ARCH::I386: return TYPE(value | R_X86);
+    case ARCH::ARM: return TYPE(value | R_ARM);
+    case ARCH::HEXAGON: return TYPE(value | R_HEXAGON);
+    case ARCH::LOONGARCH: return TYPE(value | R_LARCH);
+    case ARCH::MIPS: return TYPE(value | R_MIPS);
+    case ARCH::PPC: return TYPE(value | R_PPC);
+    case ARCH::PPC64: return TYPE(value | R_PPC64);
+    case ARCH::SPARC: return TYPE(value | R_SPARC);
+    case ARCH::RISCV: return TYPE(value | R_RISCV);
+    case ARCH::BPF: return TYPE(value | R_BPF);
+    case ARCH::SH: return TYPE(value | R_SH4);
+    case ARCH::S390: return TYPE(value | R_SYSZ);
     default:
-      {
-        if (ERR.insert(arch).second) {
-          LIEF_ERR("LIEF does not support relocation for '{}'", to_string(arch));
-        }
-        return TYPE::UNKNOWN;
+    {
+      if (ERR.insert(arch).second) {
+        LIEF_ERR("Unsupported relocation architecture '{}'", to_string(arch));
       }
+      return TYPE::UNKNOWN;
+    }
   }
   return TYPE::UNKNOWN;
 }
@@ -81,8 +71,7 @@ Relocation::Relocation(const T& header, PURPOSE purpose, ENCODING enc, ARCH arch
   LIEF::Relocation{header.r_offset, 0},
   encoding_{enc},
   architecture_{arch},
-  purpose_{purpose}
-{
+  purpose_{purpose} {
   if constexpr (std::is_same_v<T, details::Elf32_Rel> ||
                 std::is_same_v<T, details::Elf32_Rela>)
   {
@@ -107,51 +96,37 @@ Relocation::Relocation(const T& header, PURPOSE purpose, ENCODING enc, ARCH arch
 Relocation::Relocation(uint64_t address, TYPE type, ENCODING encoding) :
   LIEF::Relocation(address, 0),
   type_(type),
-  encoding_(encoding)
-{
+  encoding_(encoding) {
   if (type != TYPE::UNKNOWN) {
     auto raw_type = static_cast<uint64_t>(type);
     const uint64_t ID = (raw_type >> Relocation::R_BIT) << Relocation::R_BIT;
     if (ID == Relocation::R_X64) {
       architecture_ = ARCH::X86_64;
-    }
-    else if (ID == Relocation::R_AARCH64) {
+    } else if (ID == Relocation::R_AARCH64) {
       architecture_ = ARCH::AARCH64;
-    }
-    else if (ID == Relocation::R_ARM) {
+    } else if (ID == Relocation::R_ARM) {
       architecture_ = ARCH::ARM;
-    }
-    else if (ID == Relocation::R_HEXAGON) {
+    } else if (ID == Relocation::R_HEXAGON) {
       architecture_ = ARCH::HEXAGON;
-    }
-    else if (ID == Relocation::R_X86) {
+    } else if (ID == Relocation::R_X86) {
       architecture_ = ARCH::I386;
-    }
-    else if (ID == Relocation::R_LARCH) {
+    } else if (ID == Relocation::R_LARCH) {
       architecture_ = ARCH::LOONGARCH;
-    }
-    else if (ID == Relocation::R_MIPS) {
+    } else if (ID == Relocation::R_MIPS) {
       architecture_ = ARCH::MIPS;
-    }
-    else if (ID == Relocation::R_PPC) {
+    } else if (ID == Relocation::R_PPC) {
       architecture_ = ARCH::PPC;
-    }
-    else if (ID == Relocation::R_PPC64) {
+    } else if (ID == Relocation::R_PPC64) {
       architecture_ = ARCH::PPC64;
-    }
-    else if (ID == Relocation::R_SPARC) {
+    } else if (ID == Relocation::R_SPARC) {
       architecture_ = ARCH::SPARC;
-    }
-    else if (ID == Relocation::R_RISCV) {
+    } else if (ID == Relocation::R_RISCV) {
       architecture_ = ARCH::RISCV;
-    }
-    else if (ID == Relocation::R_BPF) {
+    } else if (ID == Relocation::R_BPF) {
       architecture_ = ARCH::BPF;
-    }
-    else if (ID == Relocation::R_SH4) {
+    } else if (ID == Relocation::R_SH4) {
       architecture_ = ARCH::SH;
-    }
-    else if (ID == Relocation::R_SYSZ) {
+    } else if (ID == Relocation::R_SYSZ) {
       architecture_ = ARCH::S390;
     }
   }
@@ -169,241 +144,191 @@ result<uint64_t> Relocation::resolve(uint64_t base_address) const {
   /* Memory based address */
   const uint64_t B = base_address;

-  auto Q = [&] () -> int64_t {
+  auto Q = [&]() -> int64_t {
     if (RSZ < 0) {
-      LIEF_ERR("Missing size support for {}", to_string(type()));
+      LIEF_ERR("Missing size info for relocation {}", to_string(type()));
       return 0;
     }

     switch (RSZ) {
       case sizeof(uint8_t):
-        {
-          auto V = binary_->get_int_from_virtual_address<uint8_t>(P);
-          if (!V) {
-            LIEF_ERR("{}: Can't access relocation data at offset: 0x{:06x} (8-bit)",
-                     to_string(type()),P);
-            return 0;
-          }
-          return (int64_t)((int8_t)*V);
+      {
+        auto V = binary_->get_int_from_virtual_address<uint8_t>(P);
+        if (!V) {
+          LIEF_ERR(
+              "{}: Failed to access relocation data at offset {:#08x} (8-bit)",
+              to_string(type()), P
+          );
+          return 0;
         }
+        return (int64_t)((int8_t)*V);
+      }

       case sizeof(uint16_t):
-        {
-          auto V = binary_->get_int_from_virtual_address<uint16_t>(P);
-          if (!V) {
-            LIEF_ERR("{}: Can't access relocation data at offset: 0x{:06x} (16-bit)",
-                     to_string(type()),P);
-            return 0;
-          }
-          return (int64_t)((int16_t)*V);
+      {
+        auto V = binary_->get_int_from_virtual_address<uint16_t>(P);
+        if (!V) {
+          LIEF_ERR(
+              "{}: Failed to access relocation data at offset {:#08x} (16-bit)",
+              to_string(type()), P
+          );
+          return 0;
         }
+        return (int64_t)((int16_t)*V);
+      }
       case sizeof(uint32_t):
-        {
-          auto V = binary_->get_int_from_virtual_address<uint32_t>(P);
-          if (!V) {
-            LIEF_ERR("{}: Can't access relocation data at offset: 0x{:06x} (32-bit)",
-                     to_string(type()),P);
-            return 0;
-          }
-          return (int64_t)((int32_t)*V);
+      {
+        auto V = binary_->get_int_from_virtual_address<uint32_t>(P);
+        if (!V) {
+          LIEF_ERR(
+              "{}: Failed to access relocation data at offset {:#08x} (32-bit)",
+              to_string(type()), P
+          );
+          return 0;
         }
+        return (int64_t)((int32_t)*V);
+      }
       case sizeof(uint64_t):
-        {
-          auto V = binary_->get_int_from_virtual_address<uint64_t>(P);
-          if (!V) {
-            LIEF_ERR("{}: Can't access relocation data at offset: 0x{:06x} (64-bit)",
-                     to_string(type()),P);
-            return 0;
-          }
-          return (int64_t)*V;
+      {
+        auto V = binary_->get_int_from_virtual_address<uint64_t>(P);
+        if (!V) {
+          LIEF_ERR(
+              "{}: Failed to access relocation data at offset {:#08x} (64-bit)",
+              to_string(type()), P
+          );
+          return 0;
         }
+        return (int64_t)*V;
+      }
       default:
-        LIEF_ERR("Invalid size of {} (sz: {})", to_string(type()), RSZ);
+        LIEF_ERR("Invalid relocation size {} (sz: {})", to_string(type()), RSZ);
         return 0;
     }
   };

   switch (type()) {
-    /* X86_64 { */
-      /* See ELF x86-64-ABI psABI[1] for the reference
-       *
-       * [1]: https://gitlab.com/x86-psABIs/x86-64-ABI
-       */
-      case TYPE::X86_64_NONE:
-        return Q();
-      case TYPE::X86_64_64:
-      case TYPE::X86_64_DTPOFF32:
-      case TYPE::X86_64_DTPOFF64:
-        return S + A;
-      case TYPE::X86_64_PC32:
-      case TYPE::X86_64_PC64:
-        return S + A - P;
-      case TYPE::X86_64_32:
-      case TYPE::X86_64_32S:
-        return (S + A) & 0xFFFFFFFF;
-      case TYPE::X86_64_GLOB_DAT:
-      case TYPE::X86_64_JUMP_SLOT:
-        return S;
-      case TYPE::X86_64_RELATIVE:
-        return B + A;
-      case TYPE::X86_64_RELATIVE64:
-        return B + A;
-    /* } */
-
-    /* X86 { */
-      case TYPE::X86_NONE:
-        return Q();
-      case TYPE::X86_32:
-        return S + Q();
-      case TYPE::X86_PC32:
-        return S - P + Q();
-      case TYPE::X86_GLOB_DAT:
-      case TYPE::X86_JUMP_SLOT:
-        return S;
-      case TYPE::X86_RELATIVE:
-        return B + Q();
-    /* } */
-
-    /* AArc64 { */
-      case TYPE::AARCH64_ABS32:
-        return (S + A) & 0xFFFFFFFF;
-      case TYPE::AARCH64_ABS64:
-        return S + A;
-      case TYPE::AARCH64_PREL16:
-        return (S + A - P) & 0xFFFF;
-      case TYPE::AARCH64_PREL32:
-        return (S + A - P) & 0xFFFFFFFF;
-      case TYPE::AARCH64_PREL64:
-        return S + A - P;
-      case TYPE::AARCH64_GLOB_DAT:
-      case TYPE::AARCH64_JUMP_SLOT:
-        return S;
-      case TYPE::AARCH64_RELATIVE:
-        return B + A;
-    /* } */
-
-    /* ARM { */
-      case TYPE::ARM_ABS32:
-        return (S + Q() + A) & 0xFFFFFFFF;
-      case TYPE::ARM_REL32:
-        return (S + Q() + A - P) & 0xFFFFFFFF;
-      case TYPE::ARM_GLOB_DAT:
-      case TYPE::ARM_JUMP_SLOT:
-        return S;
-      case TYPE::ARM_RELATIVE:
-        return B + Q();
-    /* } */
-
-
-    /* eBPF { */
-      case TYPE::BPF_64_ABS32:
-        return (S + Q()) & 0xFFFFFFFF;
-
-      case TYPE::BPF_64_ABS64:
-        return S + Q();
+      /* X86_64 { */
+    /* See ELF x86-64-ABI psABI[1] for the reference
+     *
+     * [1]: https://gitlab.com/x86-psABIs/x86-64-ABI
+     */
+    case TYPE::X86_64_NONE: return Q();
+    case TYPE::X86_64_64:
+    case TYPE::X86_64_DTPOFF32:
+    case TYPE::X86_64_DTPOFF64: return S + A;
+    case TYPE::X86_64_PC32:
+    case TYPE::X86_64_PC64: return S + A - P;
+    case TYPE::X86_64_32:
+    case TYPE::X86_64_32S: return (S + A) & 0xFFFFFFFF;
+    case TYPE::X86_64_GLOB_DAT:
+    case TYPE::X86_64_JUMP_SLOT: return S;
+    case TYPE::X86_64_RELATIVE:
+    case TYPE::X86_64_RELATIVE64:
+      return B + A;
+      /* } */
+
+      /* X86 { */
+    case TYPE::X86_NONE: return Q();
+    case TYPE::X86_32: return S + Q();
+    case TYPE::X86_PC32: return S - P + Q();
+    case TYPE::X86_GLOB_DAT:
+    case TYPE::X86_JUMP_SLOT: return S;
+    case TYPE::X86_RELATIVE:
+      return B + Q();
+      /* } */
+
+      /* AArc64 { */
+    case TYPE::AARCH64_ABS32: return (S + A) & 0xFFFFFFFF;
+    case TYPE::AARCH64_ABS64: return S + A;
+    case TYPE::AARCH64_PREL16: return (S + A - P) & 0xFFFF;
+    case TYPE::AARCH64_PREL32: return (S + A - P) & 0xFFFFFFFF;
+    case TYPE::AARCH64_PREL64: return S + A - P;
+    case TYPE::AARCH64_GLOB_DAT:
+    case TYPE::AARCH64_JUMP_SLOT: return S;
+    case TYPE::AARCH64_RELATIVE:
+      return B + A;
+      /* } */
+
+      /* ARM { */
+    case TYPE::ARM_ABS32: return (S + Q() + A) & 0xFFFFFFFF;
+    case TYPE::ARM_REL32: return (S + Q() + A - P) & 0xFFFFFFFF;
+    case TYPE::ARM_GLOB_DAT:
+    case TYPE::ARM_JUMP_SLOT: return S;
+    case TYPE::ARM_RELATIVE:
+      return B + Q();
+      /* } */
+
+
+      /* eBPF { */
+    case TYPE::BPF_64_ABS32: return (S + Q()) & 0xFFFFFFFF;
+
+    case TYPE::BPF_64_ABS64:
+      return S + Q();
+      /* } */
+
+      /* MIPS { */
+    case TYPE::MIPS_32: return (S + A) & 0xFFFFFFFF;
+    case TYPE::MIPS_64: return S + A;
+    case TYPE::MIPS_TLS_DTPREL64: return S + A - 0x8000;
+    case TYPE::MIPS_PC32:
+      return S + A - P;
+      /* } */
+
+      /* PPC64 { */
+    case TYPE::PPC64_ADDR32: return (S + A) & 0xFFFFFFFF;
+    case TYPE::PPC64_ADDR64: return S + A;
+    case TYPE::PPC64_REL32: return (S + A - P) & 0xFFFFFFFF;
+    case TYPE::PPC64_REL64:
+      return S + A - P;
+      /* } */
+
+      /* PPC32 { */
+    case TYPE::PPC_ADDR32: return (S + A) & 0xFFFFFFFF;
+    case TYPE::PPC_REL32:
+      return (S + A - P) & 0xFFFFFFFF;
+      /* } */
+
+      /* RISCV { */
+    case TYPE::RISCV_NONE: return Q();
+    case TYPE::RISCV_32: return (S + A) & 0xFFFFFFFF;
+    case TYPE::RISCV_32_PCREL: return (S + A - P) & 0xFFFFFFFF;
+    case TYPE::RISCV_64: return S + A;
+    case TYPE::RISCV_SET6: return (A & 0xC0) | ((S + A) & 0x3F);
+    case TYPE::RISCV_SUB6: return (A & 0xC0) | (((A & 0x3F) - (S + A)) & 0x3F);
+    case TYPE::RISCV_SET8: return (S + A) & 0xFF;
+    case TYPE::RISCV_ADD8: return (A + (S + A)) & 0xFF;
+    case TYPE::RISCV_SUB8: return (A - (S + 1)) & 0xFF;
+    case TYPE::RISCV_SET16: return (S + A) & 0xFFFF;
+    case TYPE::RISCV_ADD16: return (A + (S + A)) & 0xFFFF;
+    case TYPE::RISCV_SUB16: return (A - (S + A)) & 0xFFFF;
+    case TYPE::RISCV_SET32: return (S + A) & 0xFFFFFFFF;
+    case TYPE::RISCV_ADD32: return (A + (S + A)) & 0xFFFFFFFF;
+    case TYPE::RISCV_SUB32: return (A - (S + A)) & 0xFFFFFFFF;
+    case TYPE::RISCV_ADD64: return (A + (S + A));
+    case TYPE::RISCV_SUB64:
+      return (A - (S + A));
+      /* } */
+
+      /* LoongArch { */
+    case TYPE::LARCH_NONE: return Q();
+    case TYPE::LARCH_32: return (S + A) & 0xFFFFFFFF;
+    case TYPE::LARCH_32_PCREL: return (S + A - P) & 0xFFFFFFFF;
+    case TYPE::LARCH_64: return S + A;
+    case TYPE::LARCH_ADD6: return (Q() & 0xC0) | ((Q() + S + A) & 0x3F);
+    case TYPE::LARCH_SUB6: return (Q() & 0xC0) | ((Q() - (S + A)) & 0x3F);
+    case TYPE::LARCH_ADD8: return (Q() + (S + A)) & 0xFF;
+    case TYPE::LARCH_SUB8: return (Q() - (S + A)) & 0xFF;
+    case TYPE::LARCH_ADD16: return (Q() + (S + A)) & 0xFFFF;
+    case TYPE::LARCH_SUB16: return (Q() - (S + A)) & 0xFFFF;
+    case TYPE::LARCH_ADD32: return (Q() + (S + A)) & 0xFFFFFFFF;
+    case TYPE::LARCH_SUB32: return (Q() - (S + A)) & 0xFFFFFFFF;
+    case TYPE::LARCH_ADD64: return (Q() + (S + A));
+    case TYPE::LARCH_SUB64: return (Q() - (S + A));
     /* } */
-
-    /* MIPS { */
-      case TYPE::MIPS_32:
-        return (S + A) & 0xFFFFFFFF;
-      case TYPE::MIPS_64:
-        return S + A;
-      case TYPE::MIPS_TLS_DTPREL64:
-        return S + A - 0x8000;
-      case TYPE::MIPS_PC32:
-        return S + A - P;
-    /* } */
-
-    /* PPC64 { */
-      case TYPE::PPC64_ADDR32:
-        return (S + A) & 0xFFFFFFFF;
-      case TYPE::PPC64_ADDR64:
-        return S + A;
-      case TYPE::PPC64_REL32:
-        return (S + A - P) & 0xFFFFFFFF;
-      case TYPE::PPC64_REL64:
-        return S + A - P;
-    /* } */
-
-    /* PPC32 { */
-      case TYPE::PPC_ADDR32:
-        return (S + A) & 0xFFFFFFFF;
-      case TYPE::PPC_REL32:
-        return (S + A - P) & 0xFFFFFFFF;
-    /* } */
-
-    /* RISCV { */
-      case TYPE::RISCV_NONE:
-        return Q();
-      case TYPE::RISCV_32:
-        return (S + A) & 0xFFFFFFFF;
-      case TYPE::RISCV_32_PCREL:
-        return (S + A - P) & 0xFFFFFFFF;
-      case TYPE::RISCV_64:
-        return S + A;
-      case TYPE::RISCV_SET6:
-        return (A & 0xC0) | ((S + A) & 0x3F);
-      case TYPE::RISCV_SUB6:
-        return (A & 0xC0) | (((A & 0x3F) - (S + A)) & 0x3F);
-      case TYPE::RISCV_SET8:
-        return (S + A) & 0xFF;
-      case TYPE::RISCV_ADD8:
-        return (A + (S + A)) & 0xFF;
-      case TYPE::RISCV_SUB8:
-        return (A - (S + 1)) & 0xFF;
-      case TYPE::RISCV_SET16:
-        return (S + A) & 0xFFFF;
-      case TYPE::RISCV_ADD16:
-        return (A + (S + A)) & 0xFFFF;
-      case TYPE::RISCV_SUB16:
-        return (A - (S + A)) & 0xFFFF;
-      case TYPE::RISCV_SET32:
-        return (S + A) & 0xFFFFFFFF;
-      case TYPE::RISCV_ADD32:
-        return (A + (S + A)) & 0xFFFFFFFF;
-      case TYPE::RISCV_SUB32:
-        return (A - (S + A)) & 0xFFFFFFFF;
-      case TYPE::RISCV_ADD64:
-        return (A + (S + A));
-      case TYPE::RISCV_SUB64:
-        return (A - (S + A));
-    /* } */
-
-    /* LoongArch { */
-      case TYPE::LARCH_NONE:
-        return Q();
-      case TYPE::LARCH_32:
-        return (S + A) & 0xFFFFFFFF;
-      case TYPE::LARCH_32_PCREL:
-        return (S + A - P) & 0xFFFFFFFF;
-      case TYPE::LARCH_64:
-        return S + A;
-      case TYPE::LARCH_ADD6:
-        return (Q() & 0xC0) | ((Q() + S + A) & 0x3F);
-      case TYPE::LARCH_SUB6:
-        return (Q() & 0xC0) | ((Q() - (S + A)) & 0x3F);
-      case TYPE::LARCH_ADD8:
-        return (Q() + (S + A)) & 0xFF;
-      case TYPE::LARCH_SUB8:
-        return (Q() - (S + A)) & 0xFF;
-      case TYPE::LARCH_ADD16:
-        return (Q() + (S + A)) & 0xFFFF;
-      case TYPE::LARCH_SUB16:
-        return (Q() - (S + A)) & 0xFFFF;
-      case TYPE::LARCH_ADD32:
-        return (Q() + (S + A)) & 0xFFFFFFFF;
-      case TYPE::LARCH_SUB32:
-        return (Q() - (S + A)) & 0xFFFFFFFF;
-      case TYPE::LARCH_ADD64:
-        return (Q() + (S + A));
-      case TYPE::LARCH_SUB64:
-        return (Q() - (S + A));
-    /* } */
-    default:
-      break;
+    default: break;
   }

-  LIEF_DEBUG("Relocation {} is not supported", to_string(type()));
+  LIEF_DEBUG("Unsupported relocation type: {}", to_string(type()));
   return make_error_code(lief_errors::not_supported);
 }

@@ -425,16 +350,15 @@ std::ostream& operator<<(std::ostream& os, const Relocation& entry) {
     }
   }
   if (entry.size() == uint64_t(-1)) {
-    os << fmt::format("0x{:06x} {} 0x{:04x} 0x{:02x} {}",
-                      entry.address(), to_string(entry.type()),
-                      entry.addend(), entry.info(), symbol_name);
+    os << fmt::format("{:#08x} {} {:#06x} {:#04x} {}", entry.address(),
+                      to_string(entry.type()), entry.addend(), entry.info(),
+                      symbol_name);
     return os;
   }

-  os << fmt::format("0x{:06x} {} ({}) 0x{:04x} 0x{:02x} {}",
-                    entry.address(), to_string(entry.type()),
-                    entry.size(), entry.addend(), entry.info(), symbol_name);
+  os << fmt::format("{:#08x} {} ({}) {:#06x} {:#04x} {}", entry.address(),
+                    to_string(entry.type()), entry.size(), entry.addend(),
+                    entry.info(), symbol_name);
   return os;
 }
 }
-}
diff --git a/deps/LIEF/src/ELF/RelocationSizes.cpp b/deps/LIEF/src/ELF/RelocationSizes.cpp
index b8e1dad78de..d768a2b773f 100644
--- a/deps/LIEF/src/ELF/RelocationSizes.cpp
+++ b/deps/LIEF/src/ELF/RelocationSizes.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -17,8 +17,9 @@
 #include "LIEF/ELF/Relocation.hpp"
 #include "frozen.hpp"

-namespace LIEF {
-namespace ELF {
+// clang-format off
+
+namespace LIEF::ELF {

 int32_t get_R_X64(Relocation::TYPE type) {
   CONST_MAP_ALT SIZES {
@@ -940,4 +941,4 @@ int32_t get_reloc_size(Relocation::TYPE type) {
 }

 }
-}
+
diff --git a/deps/LIEF/src/ELF/RelocationStrings.cpp b/deps/LIEF/src/ELF/RelocationStrings.cpp
index 60b665c886b..06705f9bbd1 100644
--- a/deps/LIEF/src/ELF/RelocationStrings.cpp
+++ b/deps/LIEF/src/ELF/RelocationStrings.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -15,19 +15,17 @@
  */
 #include "LIEF/ELF/Relocation.hpp"
 #include "frozen.hpp"
-#include "logging.hpp"

 #define ELF_RELOC(X, _) std::pair(Relocation::TYPE::X, #X),

-namespace LIEF {
-namespace ELF {
+namespace LIEF::ELF {
 template<uint32_t>
 const char* to_string(Relocation::TYPE type);

 template<>
 const char* to_string<Relocation::R_X64>(Relocation::TYPE type) {
   STRING_MAP enums2str {
-    #include "LIEF/ELF/Relocations/x86_64.def"
+#include "LIEF/ELF/Relocations/x86_64.def"
   };

   if (auto it = enums2str.find(type); it != enums2str.end()) {
@@ -39,7 +37,7 @@ const char* to_string<Relocation::R_X64>(Relocation::TYPE type) {
 template<>
 const char* to_string<Relocation::R_AARCH64>(Relocation::TYPE type) {
   STRING_MAP enums2str {
-    #include "LIEF/ELF/Relocations/AArch64.def"
+#include "LIEF/ELF/Relocations/AArch64.def"
   };

   if (auto it = enums2str.find(type); it != enums2str.end()) {
@@ -51,7 +49,7 @@ const char* to_string<Relocation::R_AARCH64>(Relocation::TYPE type) {
 template<>
 const char* to_string<Relocation::R_ARM>(Relocation::TYPE type) {
   STRING_MAP enums2str {
-    #include "LIEF/ELF/Relocations/ARM.def"
+#include "LIEF/ELF/Relocations/ARM.def"
   };

   if (auto it = enums2str.find(type); it != enums2str.end()) {
@@ -62,9 +60,9 @@ const char* to_string<Relocation::R_ARM>(Relocation::TYPE type) {

 template<>
 const char* to_string<Relocation::R_HEXAGON>(Relocation::TYPE type) {
-  #define ENTRY(X) std::pair(Relocation::TYPE::X, #X)
+#define ENTRY(X) std::pair(Relocation::TYPE::X, #X)
   STRING_MAP enums2str {
-    #include "LIEF/ELF/Relocations/Hexagon.def"
+#include "LIEF/ELF/Relocations/Hexagon.def"
   };

   if (auto it = enums2str.find(type); it != enums2str.end()) {
@@ -75,9 +73,9 @@ const char* to_string<Relocation::R_HEXAGON>(Relocation::TYPE type) {

 template<>
 const char* to_string<Relocation::R_X86>(Relocation::TYPE type) {
-  #define ENTRY(X) std::pair(Relocation::TYPE::X, #X)
+#define ENTRY(X) std::pair(Relocation::TYPE::X, #X)
   STRING_MAP enums2str {
-    #include "LIEF/ELF/Relocations/i386.def"
+#include "LIEF/ELF/Relocations/i386.def"
   };

   if (auto it = enums2str.find(type); it != enums2str.end()) {
@@ -89,7 +87,7 @@ const char* to_string<Relocation::R_X86>(Relocation::TYPE type) {
 template<>
 const char* to_string<Relocation::R_LARCH>(Relocation::TYPE type) {
   STRING_MAP enums2str {
-    #include "LIEF/ELF/Relocations/LoongArch.def"
+#include "LIEF/ELF/Relocations/LoongArch.def"
   };

   if (auto it = enums2str.find(type); it != enums2str.end()) {
@@ -101,7 +99,7 @@ const char* to_string<Relocation::R_LARCH>(Relocation::TYPE type) {
 template<>
 const char* to_string<Relocation::R_MIPS>(Relocation::TYPE type) {
   STRING_MAP enums2str {
-    #include "LIEF/ELF/Relocations/Mips.def"
+#include "LIEF/ELF/Relocations/Mips.def"
   };

   if (auto it = enums2str.find(type); it != enums2str.end()) {
@@ -113,7 +111,7 @@ const char* to_string<Relocation::R_MIPS>(Relocation::TYPE type) {
 template<>
 const char* to_string<Relocation::R_PPC>(Relocation::TYPE type) {
   STRING_MAP enums2str {
-    #include "LIEF/ELF/Relocations/PowerPC.def"
+#include "LIEF/ELF/Relocations/PowerPC.def"
   };

   if (auto it = enums2str.find(type); it != enums2str.end()) {
@@ -125,7 +123,7 @@ const char* to_string<Relocation::R_PPC>(Relocation::TYPE type) {
 template<>
 const char* to_string<Relocation::R_PPC64>(Relocation::TYPE type) {
   STRING_MAP enums2str {
-    #include "LIEF/ELF/Relocations/PowerPC64.def"
+#include "LIEF/ELF/Relocations/PowerPC64.def"
   };

   if (auto it = enums2str.find(type); it != enums2str.end()) {
@@ -137,7 +135,7 @@ const char* to_string<Relocation::R_PPC64>(Relocation::TYPE type) {
 template<>
 const char* to_string<Relocation::R_SPARC>(Relocation::TYPE type) {
   STRING_MAP enums2str {
-    #include "LIEF/ELF/Relocations/Sparc.def"
+#include "LIEF/ELF/Relocations/Sparc.def"
   };

   if (auto it = enums2str.find(type); it != enums2str.end()) {
@@ -148,11 +146,11 @@ const char* to_string<Relocation::R_SPARC>(Relocation::TYPE type) {

 template<>
 const char* to_string<Relocation::R_SYSZ>(Relocation::TYPE type) {
-  #define ENTRY(X) std::pair(Relocation::TYPE::X, #X)
+#define ENTRY(X) std::pair(Relocation::TYPE::X, #X)
   STRING_MAP enums2str {
-    #include "LIEF/ELF/Relocations/SystemZ.def"
+#include "LIEF/ELF/Relocations/SystemZ.def"
   };
-  #undef ENTRY
+#undef ENTRY

   if (auto it = enums2str.find(type); it != enums2str.end()) {
     return it->second;
@@ -162,11 +160,11 @@ const char* to_string<Relocation::R_SYSZ>(Relocation::TYPE type) {

 template<>
 const char* to_string<Relocation::R_RISCV>(Relocation::TYPE type) {
-  #define ENTRY(X) std::pair(Relocation::TYPE::X, #X)
+#define ENTRY(X) std::pair(Relocation::TYPE::X, #X)
   STRING_MAP enums2str {
-    #include "LIEF/ELF/Relocations/RISCV.def"
+#include "LIEF/ELF/Relocations/RISCV.def"
   };
-  #undef ENTRY
+#undef ENTRY

   if (auto it = enums2str.find(type); it != enums2str.end()) {
     return it->second;
@@ -176,11 +174,11 @@ const char* to_string<Relocation::R_RISCV>(Relocation::TYPE type) {

 template<>
 const char* to_string<Relocation::R_BPF>(Relocation::TYPE type) {
-  #define ENTRY(X) std::pair(Relocation::TYPE::X, #X)
+#define ENTRY(X) std::pair(Relocation::TYPE::X, #X)
   STRING_MAP enums2str {
-    #include "LIEF/ELF/Relocations/BPF.def"
+#include "LIEF/ELF/Relocations/BPF.def"
   };
-  #undef ENTRY
+#undef ENTRY

   if (auto it = enums2str.find(type); it != enums2str.end()) {
     return it->second;
@@ -190,11 +188,11 @@ const char* to_string<Relocation::R_BPF>(Relocation::TYPE type) {

 template<>
 const char* to_string<Relocation::R_SH4>(Relocation::TYPE type) {
-  #define ENTRY(X) std::pair(Relocation::TYPE::X, #X)
+#define ENTRY(X) std::pair(Relocation::TYPE::X, #X)
   STRING_MAP enums2str {
-    #include "LIEF/ELF/Relocations/SH4.def"
+#include "LIEF/ELF/Relocations/SH4.def"
   };
-  #undef ENTRY
+#undef ENTRY

   if (auto it = enums2str.find(type); it != enums2str.end()) {
     return it->second;
@@ -266,4 +264,3 @@ const char* to_string(Relocation::TYPE type) {
   return "UNKNOWN";
 }
 }
-}
diff --git a/deps/LIEF/src/ELF/Section.cpp b/deps/LIEF/src/ELF/Section.cpp
index 6f9c7870cf6..6d9514b75ff 100644
--- a/deps/LIEF/src/ELF/Section.cpp
+++ b/deps/LIEF/src/ELF/Section.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -34,54 +34,77 @@
 FMT_FORMATTER(LIEF::ELF::Section::FLAGS, LIEF::ELF::to_string);
 FMT_FORMATTER(LIEF::ELF::Section::TYPE, LIEF::ELF::to_string);

-namespace LIEF {
-namespace ELF {
+
+namespace LIEF::ELF {

 static constexpr uint64_t SHF_MASKPROC = 0xf0000000;
 static constexpr uint64_t SHT_LOPROC = 0x70000000;
 static constexpr uint64_t SHT_HIPROC = 0x7fffffff;

 static constexpr auto ARRAY_FLAGS = {
-  Section::FLAGS::NONE, Section::FLAGS::WRITE,
-  Section::FLAGS::ALLOC, Section::FLAGS::EXECINSTR,
-  Section::FLAGS::MERGE, Section::FLAGS::STRINGS,
-  Section::FLAGS::INFO_LINK, Section::FLAGS::LINK_ORDER,
-  Section::FLAGS::OS_NONCONFORMING, Section::FLAGS::GROUP,
-  Section::FLAGS::TLS, Section::FLAGS::COMPRESSED,
-  Section::FLAGS::GNU_RETAIN, Section::FLAGS::EXCLUDE,
-  Section::FLAGS::XCORE_SHF_DP_SECTION, Section::FLAGS::XCORE_SHF_CP_SECTION,
-  Section::FLAGS::X86_64_LARGE, Section::FLAGS::HEX_GPREL,
-  Section::FLAGS::MIPS_NODUPES, Section::FLAGS::MIPS_NAMES,
-  Section::FLAGS::MIPS_LOCAL, Section::FLAGS::MIPS_NOSTRIP,
-  Section::FLAGS::MIPS_GPREL, Section::FLAGS::MIPS_MERGE,
-  Section::FLAGS::MIPS_ADDR, Section::FLAGS::MIPS_STRING,
-  Section::FLAGS::ARM_PURECODE,
+    Section::FLAGS::NONE,
+    Section::FLAGS::WRITE,
+    Section::FLAGS::ALLOC,
+    Section::FLAGS::EXECINSTR,
+    Section::FLAGS::MERGE,
+    Section::FLAGS::STRINGS,
+    Section::FLAGS::INFO_LINK,
+    Section::FLAGS::LINK_ORDER,
+    Section::FLAGS::OS_NONCONFORMING,
+    Section::FLAGS::GROUP,
+    Section::FLAGS::TLS,
+    Section::FLAGS::COMPRESSED,
+    Section::FLAGS::GNU_RETAIN,
+    Section::FLAGS::EXCLUDE,
+    Section::FLAGS::XCORE_SHF_DP_SECTION,
+    Section::FLAGS::XCORE_SHF_CP_SECTION,
+    Section::FLAGS::X86_64_LARGE,
+    Section::FLAGS::HEX_GPREL,
+    Section::FLAGS::MIPS_NODUPES,
+    Section::FLAGS::MIPS_NAMES,
+    Section::FLAGS::MIPS_LOCAL,
+    Section::FLAGS::MIPS_NOSTRIP,
+    Section::FLAGS::MIPS_GPREL,
+    Section::FLAGS::MIPS_MERGE,
+    Section::FLAGS::MIPS_ADDR,
+    Section::FLAGS::MIPS_STRING,
+    Section::FLAGS::ARM_PURECODE,
+    Section::FLAGS::AARCH64_PURECODE,
 };

 Section::TYPE Section::type_from(uint32_t value, ARCH arch) {
   if (SHT_LOPROC <= value && value <= SHT_HIPROC) {
     switch (arch) {
       case ARCH::ARM:
-        return TYPE(value + (uint64_t(TYPE::_ARM_ID_) << uint8_t(TYPE::_ID_SHIFT_)));
+        return TYPE(value +
+                    (uint64_t(TYPE::_ARM_ID_) << uint8_t(TYPE::_ID_SHIFT_)));

       case ARCH::HEXAGON:
-        return TYPE(value + (uint64_t(TYPE::_HEX_ID_) << uint8_t(TYPE::_ID_SHIFT_)));
+        return TYPE(value +
+                    (uint64_t(TYPE::_HEX_ID_) << uint8_t(TYPE::_ID_SHIFT_)));

       case ARCH::X86_64:
-        return TYPE(value + (uint64_t(TYPE::_X86_64_ID_) << uint8_t(TYPE::_ID_SHIFT_)));
+        return TYPE(value +
+                    (uint64_t(TYPE::_X86_64_ID_) << uint8_t(TYPE::_ID_SHIFT_)));

       case ARCH::MIPS:
-        return TYPE(value + (uint64_t(TYPE::_MIPS_ID_) << uint8_t(TYPE::_ID_SHIFT_)));
+        return TYPE(value +
+                    (uint64_t(TYPE::_MIPS_ID_) << uint8_t(TYPE::_ID_SHIFT_)));

       case ARCH::RISCV:
-        return TYPE(value + (uint64_t(TYPE::_RISCV_ID_) << uint8_t(TYPE::_ID_SHIFT_)));
+        return TYPE(value +
+                    (uint64_t(TYPE::_RISCV_ID_) << uint8_t(TYPE::_ID_SHIFT_)));
+
+      case ARCH::AARCH64:
+        return TYPE(value +
+                    (uint64_t(TYPE::_AARCH64_ID_) << uint8_t(TYPE::_ID_SHIFT_)));

       default:
-        {
-          LIEF_ERR("Arch-specific section: 0x{:08x} is not recognized for {}",
-                   value, to_string(arch));
-          return TYPE::SHT_NULL_;
-        }
+      {
+        LIEF_ERR("Unrecognized arch-specific section {:#010x} for {}", value,
+                 to_string(arch));
+        return TYPE::SHT_NULL_;
+      }
     }
   }
   return TYPE(value);
@@ -96,11 +119,10 @@ Section::Section(const T& header, ARCH arch) :
   link_{header.sh_link},
   info_{header.sh_info},
   address_align_{header.sh_addralign},
-  entry_size_{header.sh_entsize}
-{
+  entry_size_{header.sh_entsize} {
   virtual_address_ = header.sh_addr;
-  offset_          = header.sh_offset;
-  size_            = header.sh_size;
+  offset_ = header.sh_offset;
+  size_ = header.sh_size;
 }

 template Section::Section(const details::Elf32_Shdr& header, ARCH);
@@ -117,45 +139,44 @@ Section::Section(const Section& other) :
   address_align_{other.address_align_},
   entry_size_{other.entry_size_},
   is_frame_{other.is_frame_},
-  content_c_{other.content_c_}
-{}
+  content_c_{other.content_c_} {}

 void Section::swap(Section& other) noexcept {
-  std::swap(name_,            other.name_);
+  std::swap(name_, other.name_);
   std::swap(virtual_address_, other.virtual_address_);
-  std::swap(offset_,          other.offset_);
-  std::swap(size_,            other.size_);
-
-  std::swap(arch_,           other.arch_);
-  std::swap(type_,           other.type_);
-  std::swap(flags_,          other.flags_);
-  std::swap(original_size_,  other.original_size_);
-  std::swap(link_,           other.link_);
-  std::swap(info_,           other.info_);
-  std::swap(address_align_,  other.address_align_);
-  std::swap(entry_size_,     other.entry_size_);
-  std::swap(segments_,       other.segments_);
-  std::swap(is_frame_,       other.is_frame_);
-  std::swap(datahandler_,    other.datahandler_);
-  std::swap(content_c_,      other.content_c_);
+  std::swap(offset_, other.offset_);
+  std::swap(size_, other.size_);
+
+  std::swap(arch_, other.arch_);
+  std::swap(type_, other.type_);
+  std::swap(flags_, other.flags_);
+  std::swap(original_size_, other.original_size_);
+  std::swap(link_, other.link_);
+  std::swap(info_, other.info_);
+  std::swap(address_align_, other.address_align_);
+  std::swap(entry_size_, other.entry_size_);
+  std::swap(segments_, other.segments_);
+  std::swap(is_frame_, other.is_frame_);
+  std::swap(datahandler_, other.datahandler_);
+  std::swap(content_c_, other.content_c_);
 }

 bool Section::has(const Segment& segment) const {
-  auto it_segment = std::find_if(std::begin(segments_), std::end(segments_),
-      [&segment] (Segment* s) {
-        return *s == segment;
-      });
-  return it_segment != std::end(segments_);
+  auto it_segment = std::find_if(segments_.begin(), segments_.end(),
+                                 [&segment](Segment* s) { return *s == segment; });
+  return it_segment != segments_.end();
 }


 void Section::size(uint64_t size) {
   if (datahandler_ != nullptr && !is_frame()) {
-    if (auto node = datahandler_->get(file_offset(), this->size(), DataHandler::Node::SECTION)) {
+    if (auto node = datahandler_->get(file_offset(), this->size(),
+                                      DataHandler::Node::SECTION))
+    {
       node->get().size(size);
     } else {
       if (type() != TYPE::NOBITS) {
-        LIEF_ERR("Node not found. Can't resize the section {}", name());
+        LIEF_ERR("Node not found, cannot resize section '{}'", name());
         std::abort();
       }
     }
@@ -166,11 +187,13 @@ void Section::size(uint64_t size) {

 void Section::offset(uint64_t offset) {
   if (datahandler_ != nullptr && !is_frame()) {
-    if (auto node = datahandler_->get(file_offset(), size(), DataHandler::Node::SECTION)) {
+    if (auto node =
+            datahandler_->get(file_offset(), size(), DataHandler::Node::SECTION))
+    {
       node->get().offset(offset);
     } else {
       if (type() != TYPE::NOBITS) {
-        LIEF_WARN("Node not found. Can't change the offset of the section {}", name());
+        LIEF_WARN("Node not found, cannot change offset of section '{}'", name());
       }
     }
   }
@@ -193,7 +216,7 @@ span<const uint8_t> Section::content() const {
   auto res = datahandler_->get(offset(), size(), DataHandler::Node::SECTION);
   if (!res) {
     if (type() != TYPE::NOBITS) {
-      LIEF_WARN("Section '{}' does not have content", name());
+      LIEF_WARN("Section '{}' has no content", name());
     }
     return {};
   }
@@ -210,9 +233,8 @@ span<const uint8_t> Section::content() const {

 std::vector<Section::FLAGS> Section::flags_list() const {
   std::vector<FLAGS> flags;
-  std::copy_if(std::begin(ARRAY_FLAGS), std::end(ARRAY_FLAGS),
-               std::back_inserter(flags),
-               [this] (FLAGS f) { return has(f); });
+  std::copy_if(ARRAY_FLAGS.begin(), ARRAY_FLAGS.end(), std::back_inserter(flags),
+               [this](FLAGS f) { return has(f); });
   return flags;
 }

@@ -222,24 +244,25 @@ void Section::content(const std::vector<uint8_t>& data) {
   }

   if (!data.empty() && type() == TYPE::NOBITS) {
-    LIEF_INFO("You inserted 0x{:x} bytes in section '{}' which has SHT_NOBITS type",
-              data.size(), name());
+    LIEF_INFO("Inserted {:#x} bytes in SHT_NOBITS section '{}'", data.size(),
+              name());
   }

   if (datahandler_ == nullptr) {
-    LIEF_DEBUG("Set 0x{:x} bytes in the cache of section '{}'", data.size(), name());
+    LIEF_DEBUG("Setting {:#x} bytes in cache of section '{}'", data.size(),
+               name());
     content_c_ = data;
     size(data.size());
     return;
   }

-  LIEF_DEBUG("Set 0x{:x} bytes in the data handler@0x{:x} of section '{}'",
+  LIEF_DEBUG("Setting {:#x} bytes in data handler@{:#x} of section '{}'",
              data.size(), file_offset(), name());


   auto res = datahandler_->get(file_offset(), size(), DataHandler::Node::SECTION);
   if (!res) {
-    LIEF_ERR("Can't find the node. The section's content can't be updated");
+    LIEF_ERR("Node not found, section content cannot be updated");
     return;
   }

@@ -249,7 +272,7 @@ void Section::content(const std::vector<uint8_t>& data) {
   datahandler_->reserve(node.offset(), data.size());

   if (node.size() < data.size()) {
-    LIEF_INFO("You inserted 0x{:x} bytes in the section '{}' which is 0x{:x} wide",
+    LIEF_INFO("Inserted {:#x} bytes in section '{}' which is {:#x} wide",
               data.size(), name(), node.size());
   }

@@ -261,9 +284,7 @@ void Section::content(const std::vector<uint8_t>& data) {

   size(data.size());

-  std::copy(std::begin(data), std::end(data),
-            std::begin(binary_content) + node.offset());
-
+  std::copy(data.begin(), data.end(), binary_content.begin() + node.offset());
 }


@@ -272,23 +293,24 @@ void Section::content(std::vector<uint8_t>&& data) {
     return;
   }
   if (!data.empty() && type() == TYPE::NOBITS) {
-    LIEF_INFO("You inserted 0x{:x} bytes in section '{}' which has SHT_NOBITS type",
-              data.size(), name());
+    LIEF_INFO("Inserted {:#x} bytes in SHT_NOBITS section '{}'", data.size(),
+              name());
   }

   if (datahandler_ == nullptr) {
-    LIEF_DEBUG("Set 0x{:x} bytes in the cache of section '{}'", data.size(), name());
+    LIEF_DEBUG("Setting {:#x} bytes in cache of section '{}'", data.size(),
+               name());
     size(data.size());
     content_c_ = std::move(data);
     return;
   }

-  LIEF_DEBUG("Set 0x{:x} bytes in the data handler@0x{:x} of section '{}'",
+  LIEF_DEBUG("Setting {:#x} bytes in data handler@{:#x} of section '{}'",
              data.size(), file_offset(), name());

   auto res = datahandler_->get(file_offset(), size(), DataHandler::Node::SECTION);
   if (!res) {
-    LIEF_ERR("Can't find the node. The section's content can't be updated");
+    LIEF_ERR("Node not found, section content cannot be updated");
     return;
   }
   DataHandler::Node& node = res.value();
@@ -297,7 +319,7 @@ void Section::content(std::vector<uint8_t>&& data) {
   datahandler_->reserve(node.offset(), data.size());

   if (node.size() < data.size()) {
-    LIEF_INFO("You inserted 0x{:x} bytes in the section '{}' which is 0x{:x} wide",
+    LIEF_INFO("Inserted {:#x} bytes in section '{}' which is {:#x} wide",
               data.size(), name(), node.size());
   }

@@ -309,8 +331,7 @@ void Section::content(std::vector<uint8_t>&& data) {
     return;
   }

-  std::move(std::begin(data), std::end(data),
-            std::begin(binary_content) + node.offset());
+  std::move(data.begin(), data.end(), binary_content.begin() + node.offset());
 }

 bool Section::has(Section::FLAGS flag) const {
@@ -318,11 +339,11 @@ bool Section::has(Section::FLAGS flag) const {
     return (flags_ & (static_cast<uint64_t>(flag) & FLAG_MASK)) != 0;
   }

-  uint64_t raw_flag = static_cast<uint64_t>(flag);
+  auto raw_flag = static_cast<uint64_t>(flag);
   size_t id = raw_flag >> uint8_t(FLAGS::_ID_SHIFT_);

   if (id > 0 && arch_ == ARCH::NONE) {
-    LIEF_WARN("Missing architecture. Can't determine whether the flag is present");
+    LIEF_WARN("Missing architecture, cannot determine flag presence");
     return false;
   }

@@ -346,6 +367,10 @@ bool Section::has(Section::FLAGS flag) const {
     return false;
   }

+  if (id == uint8_t(FLAGS::_AARCH64_ID_) && arch_ != ARCH::AARCH64) {
+    return false;
+  }
+
   return (flags_ & (static_cast<uint64_t>(flag) & FLAG_MASK)) != 0;
 }

@@ -355,7 +380,7 @@ void Section::add(Section::FLAGS flag) {

 void Section::remove(Section::FLAGS flag) {
   const auto raw_flag = static_cast<uint64_t>(flag) & FLAG_MASK;
-  flags(flags() & (~ raw_flag));
+  flags(flags() & (~raw_flag));
 }

 Section& Section::clear(uint8_t value) {
@@ -363,19 +388,19 @@ Section& Section::clear(uint8_t value) {
     return *this;
   }
   if (datahandler_ == nullptr) {
-    std::fill(std::begin(content_c_), std::end(content_c_), value);
+    std::fill(content_c_.begin(), content_c_.end(), value);
     return *this;
   }

   std::vector<uint8_t>& binary_content = datahandler_->content();
   auto res = datahandler_->get(file_offset(), size(), DataHandler::Node::SECTION);
   if (!res) {
-    LIEF_ERR("Can't find the node. The section's content can't be cleared");
+    LIEF_ERR("Node not found, section content cannot be cleared");
     return *this;
   }
   DataHandler::Node& node = res.value();

-  std::fill_n(std::begin(binary_content) + node.offset(), size(), value);
+  std::fill_n(binary_content.begin() + node.offset(), size(), value);
   return *this;
 }

@@ -398,100 +423,105 @@ std::unique_ptr<SpanStream> Section::stream() const {
 std::ostream& operator<<(std::ostream& os, const Section& section) {
   const auto& flags = section.flags_list();

-  os << fmt::format("{} ({}) 0x{:08x}/0x{:08x} 0x{:04x} {} {}",
-                    section.name(), section.type(), section.virtual_address(),
-                    section.file_offset(), section.size(),
-                    section.entropy(), fmt::to_string(flags));
+  os << fmt::format("{} ({}) {:#010x}/{:#010x} {:#06x} {} {}", section.name(),
+                    section.type(), section.virtual_address(),
+                    section.file_offset(), section.size(), section.entropy(),
+                    fmt::to_string(flags));

   return os;
 }


 const char* to_string(Section::TYPE e) {
-  #define ENTRY(X) std::pair(Section::TYPE::X, #X)
-  STRING_MAP enums2str {
-    ENTRY(SHT_NULL_),
-    ENTRY(PROGBITS),
-    ENTRY(SYMTAB),
-    ENTRY(STRTAB),
-    ENTRY(RELA),
-    ENTRY(HASH),
-    ENTRY(DYNAMIC),
-    ENTRY(NOTE),
-    ENTRY(NOBITS),
-    ENTRY(REL),
-    ENTRY(SHLIB),
-    ENTRY(DYNSYM),
-    ENTRY(INIT_ARRAY),
-    ENTRY(FINI_ARRAY),
-    ENTRY(PREINIT_ARRAY),
-    ENTRY(GROUP),
-    ENTRY(SYMTAB_SHNDX),
-    ENTRY(RELR),
-
-    ENTRY(ANDROID_REL),
-    ENTRY(ANDROID_RELA),
-    ENTRY(LLVM_ADDRSIG),
-    ENTRY(ANDROID_RELR),
-    ENTRY(GNU_ATTRIBUTES),
-    ENTRY(GNU_HASH),
-    ENTRY(GNU_VERDEF),
-    ENTRY(GNU_VERNEED),
-    ENTRY(GNU_VERSYM),
-
-    ENTRY(ARM_EXIDX),
-    ENTRY(ARM_PREEMPTMAP),
-    ENTRY(ARM_ATTRIBUTES),
-    ENTRY(ARM_DEBUGOVERLAY),
-    ENTRY(ARM_OVERLAYSECTION),
-    ENTRY(HEX_ORDERED),
-    ENTRY(X86_64_UNWIND),
-
-    ENTRY(MIPS_LIBLIST),
-    ENTRY(MIPS_MSYM),
-    ENTRY(MIPS_CONFLICT),
-    ENTRY(MIPS_GPTAB),
-    ENTRY(MIPS_UCODE),
-    ENTRY(MIPS_DEBUG),
-    ENTRY(MIPS_REGINFO),
-    ENTRY(MIPS_PACKAGE),
-    ENTRY(MIPS_PACKSYM),
-    ENTRY(MIPS_RELD),
-    ENTRY(MIPS_IFACE),
-    ENTRY(MIPS_CONTENT),
-    ENTRY(MIPS_OPTIONS),
-    ENTRY(MIPS_SHDR),
-    ENTRY(MIPS_FDESC),
-    ENTRY(MIPS_EXTSYM),
-    ENTRY(MIPS_DENSE),
-    ENTRY(MIPS_PDESC),
-    ENTRY(MIPS_LOCSYM),
-    ENTRY(MIPS_AUXSYM),
-    ENTRY(MIPS_OPTSYM),
-    ENTRY(MIPS_LOCSTR),
-    ENTRY(MIPS_LINE),
-    ENTRY(MIPS_RFDESC),
-    ENTRY(MIPS_DELTASYM),
-    ENTRY(MIPS_DELTAINST),
-    ENTRY(MIPS_DELTACLASS),
-    ENTRY(MIPS_DWARF),
-    ENTRY(MIPS_DELTADECL),
-    ENTRY(MIPS_SYMBOL_LIB),
-    ENTRY(MIPS_EVENTS),
-    ENTRY(MIPS_TRANSLATE),
-    ENTRY(MIPS_PIXIE),
-    ENTRY(MIPS_XLATE),
-    ENTRY(MIPS_XLATE_DEBUG),
-    ENTRY(MIPS_WHIRL),
-    ENTRY(MIPS_EH_REGION),
-    ENTRY(MIPS_XLATE_OLD),
-    ENTRY(MIPS_PDR_EXCEPTION),
-    ENTRY(MIPS_ABIFLAGS),
-    ENTRY(MIPS_XHASH),
-
-    ENTRY(RISCV_ATTRIBUTES),
+#define ENTRY(X) std::pair(Section::TYPE::X, #X)
+  STRING_MAP enums2str{
+      ENTRY(SHT_NULL_),
+      ENTRY(PROGBITS),
+      ENTRY(SYMTAB),
+      ENTRY(STRTAB),
+      ENTRY(RELA),
+      ENTRY(HASH),
+      ENTRY(DYNAMIC),
+      ENTRY(NOTE),
+      ENTRY(NOBITS),
+      ENTRY(REL),
+      ENTRY(SHLIB),
+      ENTRY(DYNSYM),
+      ENTRY(INIT_ARRAY),
+      ENTRY(FINI_ARRAY),
+      ENTRY(PREINIT_ARRAY),
+      ENTRY(GROUP),
+      ENTRY(SYMTAB_SHNDX),
+      ENTRY(RELR),
+
+      ENTRY(ANDROID_REL),
+      ENTRY(ANDROID_RELA),
+      ENTRY(LLVM_ADDRSIG),
+      ENTRY(ANDROID_RELR),
+      ENTRY(GNU_ATTRIBUTES),
+      ENTRY(GNU_HASH),
+      ENTRY(GNU_VERDEF),
+      ENTRY(GNU_VERNEED),
+      ENTRY(GNU_VERSYM),
+
+      ENTRY(ARM_EXIDX),
+      ENTRY(ARM_PREEMPTMAP),
+      ENTRY(ARM_ATTRIBUTES),
+      ENTRY(ARM_DEBUGOVERLAY),
+      ENTRY(ARM_OVERLAYSECTION),
+      ENTRY(HEX_ORDERED),
+      ENTRY(X86_64_UNWIND),
+
+      ENTRY(MIPS_LIBLIST),
+      ENTRY(MIPS_MSYM),
+      ENTRY(MIPS_CONFLICT),
+      ENTRY(MIPS_GPTAB),
+      ENTRY(MIPS_UCODE),
+      ENTRY(MIPS_DEBUG),
+      ENTRY(MIPS_REGINFO),
+      ENTRY(MIPS_PACKAGE),
+      ENTRY(MIPS_PACKSYM),
+      ENTRY(MIPS_RELD),
+      ENTRY(MIPS_IFACE),
+      ENTRY(MIPS_CONTENT),
+      ENTRY(MIPS_OPTIONS),
+      ENTRY(MIPS_SHDR),
+      ENTRY(MIPS_FDESC),
+      ENTRY(MIPS_EXTSYM),
+      ENTRY(MIPS_DENSE),
+      ENTRY(MIPS_PDESC),
+      ENTRY(MIPS_LOCSYM),
+      ENTRY(MIPS_AUXSYM),
+      ENTRY(MIPS_OPTSYM),
+      ENTRY(MIPS_LOCSTR),
+      ENTRY(MIPS_LINE),
+      ENTRY(MIPS_RFDESC),
+      ENTRY(MIPS_DELTASYM),
+      ENTRY(MIPS_DELTAINST),
+      ENTRY(MIPS_DELTACLASS),
+      ENTRY(MIPS_DWARF),
+      ENTRY(MIPS_DELTADECL),
+      ENTRY(MIPS_SYMBOL_LIB),
+      ENTRY(MIPS_EVENTS),
+      ENTRY(MIPS_TRANSLATE),
+      ENTRY(MIPS_PIXIE),
+      ENTRY(MIPS_XLATE),
+      ENTRY(MIPS_XLATE_DEBUG),
+      ENTRY(MIPS_WHIRL),
+      ENTRY(MIPS_EH_REGION),
+      ENTRY(MIPS_XLATE_OLD),
+      ENTRY(MIPS_PDR_EXCEPTION),
+      ENTRY(MIPS_ABIFLAGS),
+      ENTRY(MIPS_XHASH),
+
+      ENTRY(RISCV_ATTRIBUTES),
+
+      ENTRY(AARCH64_ATTRIBUTES),
+      ENTRY(AARCH64_AUTH_RELR),
+      ENTRY(AARCH64_MEMTAG_GLOBALS_STATIC),
+      ENTRY(AARCH64_MEMTAG_GLOBALS_DYNAMIC),
   };
-  #undef ENTRY
+#undef ENTRY

   if (auto it = enums2str.find(e); it != enums2str.end()) {
     return it->second;
@@ -500,38 +530,39 @@ const char* to_string(Section::TYPE e) {
 }

 const char* to_string(Section::FLAGS e) {
-  #define ENTRY(X) std::pair(Section::FLAGS::X, #X)
-  STRING_MAP enums2str {
-    ENTRY(NONE),
-    ENTRY(WRITE),
-    ENTRY(ALLOC),
-    ENTRY(EXECINSTR),
-    ENTRY(MERGE),
-    ENTRY(STRINGS),
-    ENTRY(INFO_LINK),
-    ENTRY(LINK_ORDER),
-    ENTRY(OS_NONCONFORMING),
-    ENTRY(GROUP),
-    ENTRY(TLS),
-    ENTRY(COMPRESSED),
-    ENTRY(GNU_RETAIN),
-    ENTRY(EXCLUDE),
-    ENTRY(XCORE_SHF_DP_SECTION),
-    ENTRY(XCORE_SHF_CP_SECTION),
-    ENTRY(X86_64_LARGE),
-    ENTRY(HEX_GPREL),
-
-    ENTRY(MIPS_NODUPES),
-    ENTRY(MIPS_NAMES),
-    ENTRY(MIPS_LOCAL),
-    ENTRY(MIPS_NOSTRIP),
-    ENTRY(MIPS_GPREL),
-    ENTRY(MIPS_MERGE),
-    ENTRY(MIPS_ADDR),
-    ENTRY(MIPS_STRING),
-    ENTRY(ARM_PURECODE),
+#define ENTRY(X) std::pair(Section::FLAGS::X, #X)
+  STRING_MAP enums2str{
+      ENTRY(NONE),
+      ENTRY(WRITE),
+      ENTRY(ALLOC),
+      ENTRY(EXECINSTR),
+      ENTRY(MERGE),
+      ENTRY(STRINGS),
+      ENTRY(INFO_LINK),
+      ENTRY(LINK_ORDER),
+      ENTRY(OS_NONCONFORMING),
+      ENTRY(GROUP),
+      ENTRY(TLS),
+      ENTRY(COMPRESSED),
+      ENTRY(GNU_RETAIN),
+      ENTRY(EXCLUDE),
+      ENTRY(XCORE_SHF_DP_SECTION),
+      ENTRY(XCORE_SHF_CP_SECTION),
+      ENTRY(X86_64_LARGE),
+      ENTRY(HEX_GPREL),
+
+      ENTRY(MIPS_NODUPES),
+      ENTRY(MIPS_NAMES),
+      ENTRY(MIPS_LOCAL),
+      ENTRY(MIPS_NOSTRIP),
+      ENTRY(MIPS_GPREL),
+      ENTRY(MIPS_MERGE),
+      ENTRY(MIPS_ADDR),
+      ENTRY(MIPS_STRING),
+      ENTRY(ARM_PURECODE),
+      ENTRY(AARCH64_PURECODE),
   };
-  #undef ENTRY
+#undef ENTRY

   if (auto it = enums2str.find(e); it != enums2str.end()) {
     return it->second;
@@ -540,4 +571,3 @@ const char* to_string(Section::FLAGS e) {
 }

 }
-}
diff --git a/deps/LIEF/src/ELF/Segment.cpp b/deps/LIEF/src/ELF/Segment.cpp
index cd196b2e5f4..2df0350e8f5 100644
--- a/deps/LIEF/src/ELF/Segment.cpp
+++ b/deps/LIEF/src/ELF/Segment.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -14,7 +14,6 @@
  * limitations under the License.
  */
 #include <algorithm>
-#include <iterator>

 #include "logging.hpp"
 #include "frozen.hpp"
@@ -30,8 +29,8 @@
 #include "ELF/DataHandler/Handler.hpp"
 #include "ELF/Structures.hpp"

-namespace LIEF {
-namespace ELF {
+
+namespace LIEF::ELF {

 static constexpr auto PT_LOPROC = 0x70000000;
 static constexpr auto PT_HIPROC = 0x7fffffff;
@@ -43,31 +42,26 @@ Segment::TYPE Segment::type_from(uint64_t value, ARCH arch, Header::OS_ABI os) {
   using OS_ABI = Header::OS_ABI;
   if (PT_LOPROC <= value && value <= PT_HIPROC) {
     if (arch == ARCH::NONE) {
-      LIEF_WARN("Segment type 0x{:08x} requires to know the architecture", value);
+      LIEF_WARN("Segment type {:#010x} requires a known architecture", value);
       return TYPE::UNKNOWN;
     }
     switch (arch) {
-      case ARCH::ARM:
-        return TYPE(value | PT_ARM);
+      case ARCH::ARM: return TYPE(value | PT_ARM);

-      case ARCH::AARCH64:
-        return TYPE(value | PT_AARCH64);
+      case ARCH::AARCH64: return TYPE(value | PT_AARCH64);

-      case ARCH::MIPS:
-        return TYPE(value | PT_MIPS);
+      case ARCH::MIPS: return TYPE(value | PT_MIPS);

-      case ARCH::RISCV:
-        return TYPE(value | PT_RISCV);
+      case ARCH::RISCV: return TYPE(value | PT_RISCV);

-      case ARCH::IA_64:
-        return TYPE(value | PT_IA_64);
+      case ARCH::IA_64: return TYPE(value | PT_IA_64);

       default:
-        {
-          LIEF_WARN("Segment type 0x{:08x} is unknown for the architecture {}",
-                     value, to_string(arch));
-          return TYPE::UNKNOWN;
-        }
+      {
+        LIEF_WARN("Unknown segment type {:#010x} for architecture {}", value,
+                  to_string(arch));
+        return TYPE::UNKNOWN;
+      }
     }
   }

@@ -92,8 +86,7 @@ Segment::Segment(const Segment& other) :
   virtual_size_{other.virtual_size_},
   alignment_{other.alignment_},
   handler_size_{other.handler_size_},
-  content_c_{other.content_c_}
-{}
+  content_c_{other.content_c_} {}

 template<class T>
 Segment::Segment(const T& header, ARCH arch, Header::OS_ABI os) :
@@ -106,26 +99,25 @@ Segment::Segment(const T& header, ARCH arch, Header::OS_ABI os) :
   size_{header.p_filesz},
   virtual_size_{header.p_memsz},
   alignment_{header.p_align},
-  handler_size_{header.p_filesz}
-{}
+  handler_size_{header.p_filesz} {}

 template Segment::Segment(const details::Elf32_Phdr& header, ARCH, Header::OS_ABI);
 template Segment::Segment(const details::Elf64_Phdr& header, ARCH, Header::OS_ABI);

 void Segment::swap(Segment& other) {
-  std::swap(type_,             other.type_);
-  std::swap(arch_,             other.arch_);
-  std::swap(flags_,            other.flags_);
-  std::swap(file_offset_,      other.file_offset_);
-  std::swap(virtual_address_,  other.virtual_address_);
+  std::swap(type_, other.type_);
+  std::swap(arch_, other.arch_);
+  std::swap(flags_, other.flags_);
+  std::swap(file_offset_, other.file_offset_);
+  std::swap(virtual_address_, other.virtual_address_);
   std::swap(physical_address_, other.physical_address_);
-  std::swap(size_,             other.size_);
-  std::swap(virtual_size_,     other.virtual_size_);
-  std::swap(alignment_,        other.alignment_);
-  std::swap(handler_size_,     other.handler_size_);
-  std::swap(sections_,         other.sections_);
-  std::swap(datahandler_,      other.datahandler_);
-  std::swap(content_c_,        other.content_c_);
+  std::swap(size_, other.size_);
+  std::swap(virtual_size_, other.virtual_size_);
+  std::swap(alignment_, other.alignment_);
+  std::swap(handler_size_, other.handler_size_);
+  std::swap(sections_, other.sections_);
+  std::swap(datahandler_, other.datahandler_);
+  std::swap(content_c_, other.content_c_);
 }

 Segment& Segment::operator=(Segment other) {
@@ -135,10 +127,8 @@ Segment& Segment::operator=(Segment other) {

 result<Segment> Segment::from_raw(const uint8_t* ptr, size_t size) {

-  if (size != sizeof(details::Elf32_Phdr) &&
-      size != sizeof(details::Elf64_Phdr))
-  {
-    LIEF_ERR("The size of the provided data does not match a valid header size");
+  if (size != sizeof(details::Elf32_Phdr) && size != sizeof(details::Elf64_Phdr)) {
+    LIEF_ERR("Provided data size does not match a valid header size");
     return make_error_code(lief_errors::corrupted);
   }

@@ -155,14 +145,15 @@ result<Segment> Segment::from_raw(const uint8_t* ptr, size_t size) {

 span<const uint8_t> Segment::content() const {
   if (datahandler_ == nullptr) {
-    LIEF_DEBUG("Get content of segment {}@0x{:x} from cache",
-               to_string(type()), virtual_address());
+    LIEF_DEBUG("Getting content of segment {}@{:#x} from cache", to_string(type()),
+               virtual_address());
     return content_c_;
   }

-  auto res = datahandler_->get(file_offset(), handler_size(), DataHandler::Node::SEGMENT);
+  auto res =
+      datahandler_->get(file_offset(), handler_size(), DataHandler::Node::SEGMENT);
   if (!res) {
-    LIEF_ERR("Can't find the node. The segment's content can't be accessed");
+    LIEF_ERR("Node not found, segment content inaccessible");
     return {};
   }
   DataHandler::Node& node = res.value();
@@ -171,8 +162,8 @@ span<const uint8_t> Segment::content() const {
   const std::vector<uint8_t>& binary_content = datahandler_->content();
   const size_t size = binary_content.size();
   if (node.offset() >= size) {
-    LIEF_ERR("Can't access content of segment {}:0x{:x}",
-             to_string(type()), virtual_address());
+    LIEF_ERR("Failed to access segment content {}:{:#x}", to_string(type()),
+             virtual_address());
     return {};
   }

@@ -187,8 +178,8 @@ span<const uint8_t> Segment::content() const {
     if ((node.offset() + handler_size()) <= size) {
       return {ptr, static_cast<size_t>(handler_size())};
     }
-    LIEF_ERR("Can't access content of segment {}:0x{:x}",
-             to_string(type()), virtual_address());
+    LIEF_ERR("Failed to access segment content {}:{:#x}", to_string(type()),
+             virtual_address());
     return {};
   }

@@ -199,9 +190,10 @@ size_t Segment::get_content_size() const {
   if (datahandler_ == nullptr) {
     return content_c_.size();
   }
-  auto res = datahandler_->get(file_offset(), handler_size(), DataHandler::Node::SEGMENT);
+  auto res =
+      datahandler_->get(file_offset(), handler_size(), DataHandler::Node::SEGMENT);
   if (!res) {
-    LIEF_ERR("Can't find the node");
+    LIEF_ERR("Node not found");
     return 0;
   }
   DataHandler::Node& node = res.value();
@@ -212,13 +204,14 @@ template<typename T>
 T Segment::get_content_value(size_t offset) const {
   T ret;
   if (datahandler_ == nullptr) {
-    LIEF_DEBUG("Get content of segment {}@0x{:x} from cache",
-               to_string(type()), virtual_address());
+    LIEF_DEBUG("Getting content of segment {}@{:#x} from cache", to_string(type()),
+               virtual_address());
     memcpy(&ret, content_c_.data() + offset, sizeof(T));
   } else {
-    auto res = datahandler_->get(file_offset(), handler_size(), DataHandler::Node::SEGMENT);
+    auto res = datahandler_->get(file_offset(), handler_size(),
+                                 DataHandler::Node::SEGMENT);
     if (!res) {
-      LIEF_ERR("Can't find the node associated with this segment");
+      LIEF_ERR("Node not found for this segment");
       memset(&ret, 0, sizeof(T));
       return ret;
     }
@@ -229,25 +222,30 @@ T Segment::get_content_value(size_t offset) const {
   return ret;
 }

-template unsigned short Segment::get_content_value<unsigned short>(size_t offset) const;
-template unsigned int Segment::get_content_value<unsigned int>(size_t offset) const;
-template unsigned long Segment::get_content_value<unsigned long>(size_t offset) const;
-template unsigned long long Segment::get_content_value<unsigned long long>(size_t offset) const;
+template unsigned short
+    Segment::get_content_value<unsigned short>(size_t offset) const;
+template unsigned int
+    Segment::get_content_value<unsigned int>(size_t offset) const;
+template unsigned long
+    Segment::get_content_value<unsigned long>(size_t offset) const;
+template unsigned long long
+    Segment::get_content_value<unsigned long long>(size_t offset) const;

 template<typename T>
 void Segment::set_content_value(size_t offset, T value) {
   if (datahandler_ == nullptr) {
-    LIEF_DEBUG("Set content of segment {}@0x{:x}:0x{:x} in cache (0x{:x} bytes)",
-        to_string(type()), virtual_address(), offset, sizeof(T));
+    LIEF_DEBUG("Setting content of segment {}@{:#x}:{:#x} in cache ({:#x} bytes)",
+               to_string(type()), virtual_address(), offset, sizeof(T));
     if (offset + sizeof(T) > content_c_.size()) {
       content_c_.resize(offset + sizeof(T));
       physical_size(offset + sizeof(T));
     }
     memcpy(content_c_.data() + offset, &value, sizeof(T));
   } else {
-    auto res = datahandler_->get(file_offset(), handler_size(), DataHandler::Node::SEGMENT);
+    auto res = datahandler_->get(file_offset(), handler_size(),
+                                 DataHandler::Node::SEGMENT);
     if (!res) {
-      LIEF_ERR("Can't find the node associated with this segment. The content can't be updated");
+      LIEF_ERR("Node not found for this segment, content cannot be updated");
       return;
     }
     DataHandler::Node& node = res.value();
@@ -260,25 +258,28 @@ void Segment::set_content_value(size_t offset, T value) {
     memcpy(binary_content.data() + node.offset() + offset, &value, sizeof(T));
   }
 }
-template void Segment::set_content_value<unsigned short>(size_t offset, unsigned short value);
-template void Segment::set_content_value<unsigned int>(size_t offset, unsigned int value);
-template void Segment::set_content_value<unsigned long>(size_t offset, unsigned long value);
-template void Segment::set_content_value<unsigned long long>(size_t offset, unsigned long long value);
+template void Segment::set_content_value<unsigned short>(size_t offset,
+                                                         unsigned short value);
+template void Segment::set_content_value<unsigned int>(size_t offset,
+                                                       unsigned int value);
+template void Segment::set_content_value<unsigned long>(size_t offset,
+                                                        unsigned long value);
+template void
+    Segment::set_content_value<unsigned long long>(size_t offset,
+                                                   unsigned long long value);

 bool Segment::has(const Section& section) const {
-  auto it_section = std::find_if(std::begin(sections_), std::end(sections_),
-      [&section] (const Section* s) {
-        return *s == section;
-      });
-  return it_section != std::end(sections_);
+  auto it_section =
+      std::find_if(sections_.begin(), sections_.end(),
+                   [&section](const Section* s) { return *s == section; });
+  return it_section != sections_.end();
 }

 bool Segment::has(const std::string& name) const {
-  auto it_section = std::find_if(std::begin(sections_), std::end(sections_),
-      [&name] (const Section* s) {
-        return s->name() == name;
-      });
-  return it_section != std::end(sections_);
+  auto it_section =
+      std::find_if(sections_.begin(), sections_.end(),
+                   [&name](const Section* s) { return s->name() == name; });
+  return it_section != sections_.end();
 }

 void Segment::add(Segment::FLAGS flag) {
@@ -291,11 +292,12 @@ void Segment::remove(Segment::FLAGS flag) {

 void Segment::file_offset(uint64_t file_offset) {
   if (datahandler_ != nullptr) {
-    auto res = datahandler_->get(this->file_offset(), handler_size(), DataHandler::Node::SEGMENT);
+    auto res = datahandler_->get(this->file_offset(), handler_size(),
+                                 DataHandler::Node::SEGMENT);
     if (res) {
       res->get().offset(file_offset);
     } else {
-      LIEF_ERR("Can't find the node. The file offset can't be updated");
+      LIEF_ERR("Node not found, file offset cannot be updated");
       return;
     }
   }
@@ -304,12 +306,13 @@ void Segment::file_offset(uint64_t file_offset) {

 void Segment::physical_size(uint64_t physical_size) {
   if (datahandler_ != nullptr) {
-    auto node = datahandler_->get(file_offset(), handler_size(), DataHandler::Node::SEGMENT);
+    auto node = datahandler_->get(file_offset(), handler_size(),
+                                  DataHandler::Node::SEGMENT);
     if (node) {
       node->get().size(physical_size);
       handler_size_ = physical_size;
     } else {
-      LIEF_ERR("Can't find the node. The physical size can't be updated");
+      LIEF_ERR("Node not found, physical size cannot be updated");
     }
   }
   size_ = physical_size;
@@ -317,19 +320,22 @@ void Segment::physical_size(uint64_t physical_size) {

 void Segment::content(std::vector<uint8_t> content) {
   if (datahandler_ == nullptr) {
-    LIEF_DEBUG("Set content of segment {}@0x{:x} in cache (0x{:x} bytes)",
+    LIEF_DEBUG("Setting content of segment {}@{:#x} in cache ({:#x} bytes)",
                to_string(type()), virtual_address(), content.size());
     physical_size(content.size());
     content_c_ = std::move(content);
     return;
   }

-  LIEF_DEBUG("Set content of segment {}@0x{:x} in data handler @0x{:x} (0x{:x} bytes)",
-             to_string(type()), virtual_address(), file_offset(), content.size());
+  LIEF_DEBUG(
+      "Setting content of segment {}@{:#x} in data handler @{:#x} ({:#x} bytes)",
+      to_string(type()), virtual_address(), file_offset(), content.size()
+  );

-  auto res = datahandler_->get(file_offset(), handler_size(), DataHandler::Node::SEGMENT);
+  auto res =
+      datahandler_->get(file_offset(), handler_size(), DataHandler::Node::SEGMENT);
   if (!res) {
-    LIEF_ERR("Can't find the node for updating content");
+    LIEF_ERR("Node not found for content update");
     return;
   }
   DataHandler::Node& node = res.value();
@@ -338,8 +344,8 @@ void Segment::content(std::vector<uint8_t> content) {
   datahandler_->reserve(node.offset(), content.size());

   if (node.size() < content.size()) {
-      LIEF_INFO("You inserted 0x{:x} bytes in the segment {}@0x{:x} which is 0x{:x} wide",
-                content.size(), to_string(type()), virtual_size(), node.size());
+    LIEF_INFO("Inserted {:#x} bytes in segment {}@{:#x} which is {:#x} wide",
+              content.size(), to_string(type()), virtual_size(), node.size());
   }

   auto max_offset = (int64_t)node.offset() + (int64_t)content.size();
@@ -350,8 +356,8 @@ void Segment::content(std::vector<uint8_t> content) {

   physical_size(node.size());

-  std::move(std::begin(content), std::end(content),
-            std::begin(binary_content) + node.offset());
+  std::move(content.begin(), content.end(),
+            binary_content.begin() + node.offset());
 }

 void Segment::accept(Visitor& visitor) const {
@@ -391,61 +397,60 @@ std::ostream& operator<<(std::ostream& os, const Segment& segment) {

   std::string segment_ty = to_string(segment.type());
   if (segment_ty == "UNKNOWN") {
-    segment_ty = fmt::format("UNKNOWN[0x{:08x}]", (uint32_t)segment.type());
+    segment_ty = fmt::format("UNKNOWN[{:#010x}]", (uint32_t)segment.type());
   }

-  os << fmt::format("{} 0x{:08x}/0x{:06x} 0x{:06x} 0x{:04x}/0x{:04x} {} {}",
-                    segment_ty, segment.virtual_address(),
-                    segment.file_offset(), segment.physical_address(),
-                    segment.physical_size(), segment.virtual_size(),
-                    segment.alignment(), flags);
+  os << fmt::format("{} {:#010x}/{:#08x} {:#08x} {:#06x}/{:#06x} {} {}",
+                    segment_ty, segment.virtual_address(), segment.file_offset(),
+                    segment.physical_address(), segment.physical_size(),
+                    segment.virtual_size(), segment.alignment(), flags);
   return os;
 }

 const char* to_string(Segment::TYPE e) {
-  #define ENTRY(X) std::pair(Segment::TYPE::X, #X)
-  STRING_MAP enums2str {
-    ENTRY(PT_NULL_),
-    ENTRY(LOAD),
-    ENTRY(DYNAMIC),
-    ENTRY(INTERP),
-    ENTRY(NOTE),
-    ENTRY(SHLIB),
-    ENTRY(PHDR),
-    ENTRY(TLS),
-    ENTRY(GNU_EH_FRAME),
-    ENTRY(GNU_STACK),
-    ENTRY(GNU_PROPERTY),
-    ENTRY(GNU_RELRO),
-    ENTRY(PAX_FLAGS),
-    ENTRY(ARM_ARCHEXT),
-    ENTRY(ARM_EXIDX),
-    ENTRY(AARCH64_MEMTAG_MTE),
-    ENTRY(MIPS_REGINFO),
-    ENTRY(MIPS_RTPROC),
-    ENTRY(MIPS_OPTIONS),
-    ENTRY(MIPS_ABIFLAGS),
-    ENTRY(RISCV_ATTRIBUTES),
-    ENTRY(IA_64_EXT),
-    ENTRY(IA_64_UNWIND),
-    ENTRY(HP_TLS),
-    ENTRY(HP_CORE_NONE),
-    ENTRY(HP_CORE_VERSION),
-    ENTRY(HP_CORE_KERNEL),
-    ENTRY(HP_CORE_COMM),
-    ENTRY(HP_CORE_PROC),
-    ENTRY(HP_CORE_LOADABLE),
-    ENTRY(HP_CORE_STACK),
-    ENTRY(HP_CORE_SHM),
-    ENTRY(HP_CORE_MMF),
-    ENTRY(HP_PARALLEL),
-    ENTRY(HP_FASTBIND),
-    ENTRY(HP_OPT_ANNOT),
-    ENTRY(HP_HSL_ANNOT),
-    ENTRY(HP_STACK),
-    ENTRY(HP_CORE_UTSNAME),
+#define ENTRY(X) std::pair(Segment::TYPE::X, #X)
+  STRING_MAP enums2str{
+      ENTRY(PT_NULL_),
+      ENTRY(LOAD),
+      ENTRY(DYNAMIC),
+      ENTRY(INTERP),
+      ENTRY(NOTE),
+      ENTRY(SHLIB),
+      ENTRY(PHDR),
+      ENTRY(TLS),
+      ENTRY(GNU_EH_FRAME),
+      ENTRY(GNU_STACK),
+      ENTRY(GNU_PROPERTY),
+      ENTRY(GNU_RELRO),
+      ENTRY(PAX_FLAGS),
+      ENTRY(ARM_ARCHEXT),
+      ENTRY(ARM_EXIDX),
+      ENTRY(AARCH64_MEMTAG_MTE),
+      ENTRY(MIPS_REGINFO),
+      ENTRY(MIPS_RTPROC),
+      ENTRY(MIPS_OPTIONS),
+      ENTRY(MIPS_ABIFLAGS),
+      ENTRY(RISCV_ATTRIBUTES),
+      ENTRY(IA_64_EXT),
+      ENTRY(IA_64_UNWIND),
+      ENTRY(HP_TLS),
+      ENTRY(HP_CORE_NONE),
+      ENTRY(HP_CORE_VERSION),
+      ENTRY(HP_CORE_KERNEL),
+      ENTRY(HP_CORE_COMM),
+      ENTRY(HP_CORE_PROC),
+      ENTRY(HP_CORE_LOADABLE),
+      ENTRY(HP_CORE_STACK),
+      ENTRY(HP_CORE_SHM),
+      ENTRY(HP_CORE_MMF),
+      ENTRY(HP_PARALLEL),
+      ENTRY(HP_FASTBIND),
+      ENTRY(HP_OPT_ANNOT),
+      ENTRY(HP_HSL_ANNOT),
+      ENTRY(HP_STACK),
+      ENTRY(HP_CORE_UTSNAME),
   };
-  #undef ENTRY
+#undef ENTRY

   if (auto it = enums2str.find(e); it != enums2str.end()) {
     return it->second;
@@ -463,4 +468,3 @@ const char* to_string(Segment::FLAGS e) {
   return "UNKNOWN";
 }
 }
-}
diff --git a/deps/LIEF/src/ELF/SizingInfo.hpp b/deps/LIEF/src/ELF/SizingInfo.hpp
index 00db942e6c7..6d1c0153d0f 100644
--- a/deps/LIEF/src/ELF/SizingInfo.hpp
+++ b/deps/LIEF/src/ELF/SizingInfo.hpp
@@ -1,6 +1,6 @@

-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -16,12 +16,10 @@
  */
 #ifndef LIEF_ELF_SIZING_INFO_H
 #define LIEF_ELF_SIZING_INFO_H
-#include "LIEF/visibility.h"

 #include <cstdint>

-namespace LIEF {
-namespace ELF {
+namespace LIEF::ELF {
 struct sizing_info_t {
   uint64_t dynsym = 0;
   uint64_t dynstr = 0;
@@ -42,5 +40,5 @@ struct sizing_info_t {
   uint64_t preinit_array = 0;
 };
 }
-}
+
 #endif
diff --git a/deps/LIEF/src/ELF/Structures.hpp b/deps/LIEF/src/ELF/Structures.hpp
index 4b24824602d..c75b4de4d34 100644
--- a/deps/LIEF/src/ELF/Structures.hpp
+++ b/deps/LIEF/src/ELF/Structures.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2021 - 2025 R. Thomas
+/* Copyright 2021 - 2026 R. Thomas
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -14,131 +14,120 @@
  */
 #ifndef LIEF_ELF_STRUCTURES_H
 #define LIEF_ELF_STRUCTURES_H
+#include <cstdint>

-#include <cstring>
-
-#include "LIEF/types.hpp"
-#include "LIEF/ELF/enums.hpp"
-
-namespace LIEF {
-namespace ELF {
-
-namespace details {
+namespace LIEF::ELF::details {

 #include "structures.inc"

-struct Elf64_Prpsinfo
-{
-  char     pr_state;
-  char     pr_sname;
-  char     pr_zomb;
-  char     pr_nice;
+struct Elf64_Prpsinfo {
+  char pr_state;
+  char pr_sname;
+  char pr_zomb;
+  char pr_nice;
   uint32_t pr_pad;
   uint64_t pr_flag;
   uint32_t pr_uid;
   uint32_t pr_gid;
-  int32_t  pr_pid;
-  int32_t  pr_ppid;
-  int32_t  pr_pgrp;
-  int32_t  pr_sid;
-  char     pr_fname[16];
-  char     pr_psargs[80];
+  int32_t pr_pid;
+  int32_t pr_ppid;
+  int32_t pr_pgrp;
+  int32_t pr_sid;
+  char pr_fname[16];
+  char pr_psargs[80];
 };

-struct Elf32_Prpsinfo
-{
-  char     pr_state;
-  char     pr_sname;
-  char     pr_zomb;
-  char     pr_nice;
+struct Elf32_Prpsinfo {
+  char pr_state;
+  char pr_sname;
+  char pr_zomb;
+  char pr_nice;
   uint32_t pr_flag;
   uint16_t pr_uid;
   uint16_t pr_gid;
-  int32_t  pr_pid;
-  int32_t  pr_ppid;
-  int32_t  pr_pgrp;
-  int32_t  pr_sid;
-  char     pr_fname[16];
-  char     pr_psargs[80];
+  int32_t pr_pid;
+  int32_t pr_ppid;
+  int32_t pr_pgrp;
+  int32_t pr_sid;
+  char pr_fname[16];
+  char pr_psargs[80];
 };

 class ELF32 {
   public:
   static constexpr auto r_info_shift = 8;
-  typedef Elf32_Addr    Elf_Addr;
-  typedef Elf32_Off     Elf_Off;
-  typedef Elf32_Half    Elf_Half;
-  typedef Elf32_Word    Elf_Word;
-  typedef Elf32_Sword   Elf_Sword;
+  using Elf_Addr = Elf32_Addr;
+  using Elf_Off = Elf32_Off;
+  using Elf_Half = Elf32_Half;
+  using Elf_Word = Elf32_Word;
+  using Elf_Sword = Elf32_Sword;
   // Equivalent
-  typedef Elf32_Addr    Elf_Xword;
-  typedef Elf32_Sword   Elf_Sxword;
-
-  typedef uint32_t      uint;
-
-  typedef Elf32_Phdr    Elf_Phdr;
-  typedef Elf32_Ehdr    Elf_Ehdr;
-  typedef Elf32_Shdr    Elf_Shdr;
-  typedef Elf32_Sym     Elf_Sym;
-  typedef Elf32_Rel     Elf_Rel;
-  typedef Elf32_Rela    Elf_Rela;
-  typedef Elf32_Dyn     Elf_Dyn;
-  typedef Elf32_Verneed Elf_Verneed;
-  typedef Elf32_Vernaux Elf_Vernaux;
-  typedef Elf32_Auxv    Elf_Auxv;
-  typedef Elf32_Verdef  Elf_Verdef;
-  typedef Elf32_Verdaux Elf_Verdaux;
-
-  typedef Elf32_Prpsinfo  Elf_Prpsinfo;
-  typedef Elf32_FileEntry Elf_FileEntry;
-  typedef Elf32_Prstatus  Elf_Prstatus;
-
-  typedef Elf32_timeval   Elf_timeval;
+  using Elf_Xword = Elf32_Addr;
+  using Elf_Sxword = Elf32_Sword;
+
+  using uint = uint32_t;
+
+  using Elf_Phdr = Elf32_Phdr;
+  using Elf_Ehdr = Elf32_Ehdr;
+  using Elf_Shdr = Elf32_Shdr;
+  using Elf_Sym = Elf32_Sym;
+  using Elf_Rel = Elf32_Rel;
+  using Elf_Rela = Elf32_Rela;
+  using Elf_Dyn = Elf32_Dyn;
+  using Elf_Verneed = Elf32_Verneed;
+  using Elf_Vernaux = Elf32_Vernaux;
+  using Elf_Auxv = Elf32_Auxv;
+  using Elf_Verdef = Elf32_Verdef;
+  using Elf_Verdaux = Elf32_Verdaux;
+
+  using Elf_Prpsinfo = Elf32_Prpsinfo;
+  using Elf_FileEntry = Elf32_FileEntry;
+  using Elf_Prstatus = Elf32_Prstatus;
+
+  using Elf_timeval = Elf32_timeval;
 };


 class ELF64 {
   public:
   static constexpr auto r_info_shift = 32;
-  typedef Elf64_Addr    Elf_Addr;
-  typedef Elf64_Off     Elf_Off;
-  typedef Elf64_Half    Elf_Half;
-  typedef Elf64_Word    Elf_Word;
-  typedef Elf64_Sword   Elf_Sword;
-
-  typedef Elf64_Xword   Elf_Xword;
-  typedef Elf64_Sxword  Elf_Sxword;
-
-  typedef uint64_t      uint;
-
-  typedef Elf64_Phdr    Elf_Phdr;
-  typedef Elf64_Ehdr    Elf_Ehdr;
-  typedef Elf64_Shdr    Elf_Shdr;
-  typedef Elf64_Sym     Elf_Sym;
-  typedef Elf64_Rel     Elf_Rel;
-  typedef Elf64_Rela    Elf_Rela;
-  typedef Elf64_Dyn     Elf_Dyn;
-  typedef Elf64_Verneed Elf_Verneed;
-  typedef Elf64_Vernaux Elf_Vernaux;
-  typedef Elf64_Auxv    Elf_Auxv;
-  typedef Elf64_Verdef  Elf_Verdef;
-  typedef Elf64_Verdaux Elf_Verdaux;
-
-  typedef Elf64_Prpsinfo  Elf_Prpsinfo;
-  typedef Elf64_FileEntry Elf_FileEntry;
-  typedef Elf64_Prstatus  Elf_Prstatus;
-
-  typedef Elf64_timeval   Elf_timeval;
+  using Elf_Addr = Elf64_Addr;
+  using Elf_Off = Elf64_Off;
+  using Elf_Half = Elf64_Half;
+  using Elf_Word = Elf64_Word;
+  using Elf_Sword = Elf64_Sword;
+
+  using Elf_Xword = Elf64_Xword;
+  using Elf_Sxword = Elf64_Sxword;
+
+  using uint = uint64_t;
+
+  using Elf_Phdr = Elf64_Phdr;
+  using Elf_Ehdr = Elf64_Ehdr;
+  using Elf_Shdr = Elf64_Shdr;
+  using Elf_Sym = Elf64_Sym;
+  using Elf_Rel = Elf64_Rel;
+  using Elf_Rela = Elf64_Rela;
+  using Elf_Dyn = Elf64_Dyn;
+  using Elf_Verneed = Elf64_Verneed;
+  using Elf_Vernaux = Elf64_Vernaux;
+  using Elf_Auxv = Elf64_Auxv;
+  using Elf_Verdef = Elf64_Verdef;
+  using Elf_Verdaux = Elf64_Verdaux;
+
+  using Elf_Prpsinfo = Elf64_Prpsinfo;
+  using Elf_FileEntry = Elf64_FileEntry;
+  using Elf_Prstatus = Elf64_Prstatus;
+
+  using Elf_timeval = Elf64_timeval;
 };

-class ELF32_x32 : public ELF32 {
-};
+class ELF32_x32 : public ELF32 {};

-class ELF32_arm64 : public ELF32 {
-};
+class ELF32_arm64 : public ELF32 {};
+
+
+} // namespace LIEF::ELF::details


-} /* end namespace details */
-} /* end namespace ELF */
-} /* end namespace LIEF */
 #endif
diff --git a/deps/LIEF/src/ELF/Symbol.cpp b/deps/LIEF/src/ELF/Symbol.cpp
index fd924c10e5d..fcece05a1e6 100644
--- a/deps/LIEF/src/ELF/Symbol.cpp
+++ b/deps/LIEF/src/ELF/Symbol.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -29,32 +29,31 @@
 #include <spdlog/fmt/fmt.h>


-namespace LIEF {
-namespace ELF {
+namespace LIEF::ELF {

 Symbol& Symbol::operator=(Symbol other) {
   swap(other);
   return *this;
 }

-Symbol::Symbol(const Symbol& other) : LIEF::Symbol{other},
+Symbol::Symbol(const Symbol& other) :
+  LIEF::Symbol{other},
   type_{other.type_},
   binding_{other.binding_},
   other_{other.other_},
   shndx_{other.shndx_},
-  arch_{other.arch_}
-{}
+  arch_{other.arch_} {}


 void Symbol::swap(Symbol& other) {
   LIEF::Symbol::swap(other);
-  std::swap(type_,           other.type_);
-  std::swap(binding_,        other.binding_);
-  std::swap(other_,          other.other_);
-  std::swap(shndx_,          other.shndx_);
-  std::swap(section_,        other.section_);
+  std::swap(type_, other.type_);
+  std::swap(binding_, other.binding_);
+  std::swap(other_, other.other_);
+  std::swap(shndx_, other.shndx_);
+  std::swap(section_, other.section_);
   std::swap(symbol_version_, other.symbol_version_);
-  std::swap(arch_,           other.arch_);
+  std::swap(arch_, other.arch_);
 }

 template<class T>
@@ -63,10 +62,9 @@ Symbol::Symbol(const T& header, ARCH arch) :
   binding_{binding_from(header.st_info >> 4, arch)},
   other_{header.st_other},
   shndx_{header.st_shndx},
-  arch_{arch}
-{
+  arch_{arch} {
   value_ = header.st_value;
-  size_  = header.st_size;
+  size_ = header.st_size;
 }

 template Symbol::Symbol(const details::Elf32_Sym& header, ARCH);
@@ -74,14 +72,13 @@ template Symbol::Symbol(const details::Elf64_Sym& header, ARCH);


 uint8_t Symbol::information() const {
-  return static_cast<uint8_t>(
-      (static_cast<uint8_t>(binding_) << 4) | (static_cast<uint8_t>(type_) & 0x0f)
-  );
+  return static_cast<uint8_t>((static_cast<uint8_t>(binding_) << 4) |
+                              (static_cast<uint8_t>(type_) & 0x0f));
 }

 void Symbol::information(uint8_t info) {
   binding_ = binding_from(info >> 4, arch_);
-  type_    = type_from(info & 0x0f, arch_);
+  type_ = type_from(info & 0x0f, arch_);
 }

 std::string Symbol::demangled_name() const {
@@ -89,16 +86,24 @@ std::string Symbol::demangled_name() const {
     return LIEF::demangle(name()).value_or("");
   } else {
 #if defined(__unix__)
-    int status;
-    const std::string& name = this->name().c_str();
-    char* demangled_name = abi::__cxa_demangle(name.c_str(), nullptr, nullptr, &status);
+    int status = 0;
+    const std::string& name = this->name();
+    if (name.find("_Z") != 0) {
+      return name;
+    }
+    char* demangled_name =
+        abi::__cxa_demangle(name.c_str(), nullptr, nullptr, &status);

-    if (status == 0) {
+    if (status == 0 && demangled_name != nullptr) {
       std::string realname = demangled_name;
-      free(demangled_name);
+      free(demangled_name); // NOLINT(cppcoreguidelines-no-malloc)
       return realname;
     }

+    if (demangled_name != nullptr) {
+      free(demangled_name); // NOLINT(cppcoreguidelines-no-malloc)
+    }
+
     return name;
 #else
     return "";
@@ -112,14 +117,14 @@ bool Symbol::is_exported() const {
   // An export must have an address
   is_exported = is_exported && (value() != 0 || (value() == 0 && size() > 0));

-  // An export must be bind to GLOBAL or WEAK
-  is_exported = is_exported && (binding() == BINDING::GLOBAL ||
-                                binding() == BINDING::WEAK);
+  // An export must be bound to GLOBAL or WEAK
+  is_exported =
+      is_exported && (binding() == BINDING::GLOBAL || binding() == BINDING::WEAK);

-  // An export must have one of theses types:
-  is_exported = is_exported && (type() == TYPE::FUNC ||
-                                type() == TYPE::GNU_IFUNC ||
-                                type() == TYPE::OBJECT);
+  // An export must have one of these types:
+  is_exported =
+      is_exported && (type() == TYPE::FUNC || type() == TYPE::GNU_IFUNC ||
+                      type() == TYPE::OBJECT);
   return is_exported;
 }

@@ -137,28 +142,29 @@ bool Symbol::is_imported() const {
   // An import must not be defined in a section
   bool is_imported = shndx() == SECTION_INDEX::UNDEF;

-  const bool is_mips = arch_ == ARCH::MIPS || arch_ == ARCH::MIPS_X ||
-                       arch_ == ARCH::MIPS_RS3_LE;
+  const bool is_mips =
+      arch_ == ARCH::MIPS || arch_ == ARCH::MIPS_X || arch_ == ARCH::MIPS_RS3_LE;
   const bool is_ppc = arch_ == ARCH::PPC || arch_ == ARCH::PPC64;

   const bool is_riscv = arch_ == ARCH::RISCV;

-  // An import must not have an address (except for some architectures like Mips/PPC)
+  // An import must not have an address (except for some architectures like
+  // Mips/PPC)
   if (!is_mips && !is_ppc && !is_riscv) {
     is_imported = is_imported && value() == 0;
   }

-  // its name must not be empty
+  // Its name must not be empty
   is_imported = is_imported && !name().empty();

-  // It must have a GLOBAL or WEAK bind
-  is_imported = is_imported && (binding()  == BINDING::GLOBAL ||
-                                 binding() == BINDING::WEAK);
+  // It must have a GLOBAL or WEAK binding
+  is_imported =
+      is_imported && (binding() == BINDING::GLOBAL || binding() == BINDING::WEAK);

   // It must be a FUNC or an OBJECT
-  is_imported = is_imported && (type()  == TYPE::FUNC ||
-                                 type() == TYPE::GNU_IFUNC ||
-                                 type() == TYPE::OBJECT);
+  is_imported =
+      is_imported && (type() == TYPE::FUNC || type() == TYPE::GNU_IFUNC ||
+                      type() == TYPE::OBJECT);
   return is_imported;
 }

@@ -180,9 +186,8 @@ std::ostream& operator<<(std::ostream& os, const Symbol& entry) {
     name = entry.name();
   }

-  os << fmt::format("{} ({}/{}): 0x{:06x} (0x{:02x})",
-                    name, to_string(entry.type()), to_string(entry.binding()),
-                    entry.value(), entry.size());
+  os << fmt::format("{} ({}/{}): {:#08x} ({:#04x})", name, to_string(entry.type()),
+                    to_string(entry.binding()), entry.value(), entry.size());

   if (const SymbolVersion* version = entry.symbol_version()) {
     os << *version;
@@ -191,14 +196,14 @@ std::ostream& operator<<(std::ostream& os, const Symbol& entry) {
 }

 const char* to_string(Symbol::BINDING e) {
-  #define ENTRY(X) std::pair(Symbol::BINDING::X, #X)
-  STRING_MAP enums2str {
-    ENTRY(LOCAL),
-    ENTRY(GLOBAL),
-    ENTRY(WEAK),
-    ENTRY(GNU_UNIQUE),
+#define ENTRY(X) std::pair(Symbol::BINDING::X, #X)
+  STRING_MAP enums2str{
+      ENTRY(LOCAL),
+      ENTRY(GLOBAL),
+      ENTRY(WEAK),
+      ENTRY(GNU_UNIQUE),
   };
-  #undef ENTRY
+#undef ENTRY

   if (auto it = enums2str.find(e); it != enums2str.end()) {
     return it->second;
@@ -206,18 +211,12 @@ const char* to_string(Symbol::BINDING e) {
   return "UNKNOWN";
 }
 const char* to_string(Symbol::TYPE e) {
-  #define ENTRY(X) std::pair(Symbol::TYPE::X, #X)
-  STRING_MAP enums2str {
-    ENTRY(NOTYPE),
-    ENTRY(OBJECT),
-    ENTRY(FUNC),
-    ENTRY(SECTION),
-    ENTRY(FILE),
-    ENTRY(COMMON),
-    ENTRY(TLS),
-    ENTRY(GNU_IFUNC),
+#define ENTRY(X) std::pair(Symbol::TYPE::X, #X)
+  STRING_MAP enums2str{
+      ENTRY(NOTYPE), ENTRY(OBJECT), ENTRY(FUNC), ENTRY(SECTION),
+      ENTRY(FILE),   ENTRY(COMMON), ENTRY(TLS),  ENTRY(GNU_IFUNC),
   };
-  #undef ENTRY
+#undef ENTRY

   if (auto it = enums2str.find(e); it != enums2str.end()) {
     return it->second;
@@ -225,14 +224,14 @@ const char* to_string(Symbol::TYPE e) {
   return "UNKNOWN";
 }
 const char* to_string(Symbol::VISIBILITY e) {
-  #define ENTRY(X) std::pair(Symbol::VISIBILITY::X, #X)
-  STRING_MAP enums2str {
-    ENTRY(DEFAULT),
-    ENTRY(INTERNAL),
-    ENTRY(HIDDEN),
-    ENTRY(PROTECTED),
+#define ENTRY(X) std::pair(Symbol::VISIBILITY::X, #X)
+  STRING_MAP enums2str{
+      ENTRY(DEFAULT),
+      ENTRY(INTERNAL),
+      ENTRY(HIDDEN),
+      ENTRY(PROTECTED),
   };
-  #undef ENTRY
+#undef ENTRY

   if (auto it = enums2str.find(e); it != enums2str.end()) {
     return it->second;
@@ -241,4 +240,3 @@ const char* to_string(Symbol::VISIBILITY e) {
 }

 }
-}
diff --git a/deps/LIEF/src/ELF/SymbolVersion.cpp b/deps/LIEF/src/ELF/SymbolVersion.cpp
index e43a49ff180..06dc77e2f23 100644
--- a/deps/LIEF/src/ELF/SymbolVersion.cpp
+++ b/deps/LIEF/src/ELF/SymbolVersion.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -13,18 +13,20 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
+#include <spdlog/fmt/fmt.h>
+
 #include "LIEF/ELF/hash.hpp"

 #include "LIEF/ELF/SymbolVersion.hpp"
 #include "LIEF/ELF/SymbolVersionAux.hpp"
 #include "LIEF/ELF/SymbolVersionAuxRequirement.hpp"

-namespace LIEF {
-namespace ELF {
+
+namespace LIEF::ELF {

 void SymbolVersion::symbol_version_auxiliary(SymbolVersionAuxRequirement& svauxr) {
   symbol_aux_ = &svauxr;
-  value_      = svauxr.other();
+  value_ = svauxr.other();
 }

 void SymbolVersion::accept(Visitor& visitor) const {
@@ -33,20 +35,16 @@ void SymbolVersion::accept(Visitor& visitor) const {

 std::ostream& operator<<(std::ostream& os, const ELF::SymbolVersion& symv) {
   if (symv.has_auxiliary_version()) {
-    os << symv.symbol_version_auxiliary()->name() << "(" << symv.value() << ")";
+    os << fmt::format("{}({})", symv.symbol_version_auxiliary()->name(),
+                      symv.value());
+  } else if (symv.value() == 0) {
+    os << "* Local *";
+  } else if (symv.value() == 1) {
+    os << "* Global *";
   } else {
-    std::string type;
-    if (symv.value() == 0) {
-      type = "* Local *";
-    } else if (symv.value() == 1){
-      type = "* Global *";
-    } else {
-      type = "* ERROR (" + std::to_string(symv.value()) + ") *";
-    }
-    os << type;
+    os << fmt::format("* ERROR ({}) *", symv.value());
   }

   return os;
 }
 }
-}
diff --git a/deps/LIEF/src/ELF/SymbolVersionAux.cpp b/deps/LIEF/src/ELF/SymbolVersionAux.cpp
index 204de95dde7..03318ec8c98 100644
--- a/deps/LIEF/src/ELF/SymbolVersionAux.cpp
+++ b/deps/LIEF/src/ELF/SymbolVersionAux.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -13,18 +13,15 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-#include <utility>

 #include "LIEF/ELF/hash.hpp"

 #include "LIEF/ELF/SymbolVersionAux.hpp"

-namespace LIEF {
-namespace ELF {
+namespace LIEF::ELF {

 void SymbolVersionAux::accept(Visitor& visitor) const {
   visitor.visit(*this);
 }

 }
-}
diff --git a/deps/LIEF/src/ELF/SymbolVersionAuxRequirement.cpp b/deps/LIEF/src/ELF/SymbolVersionAuxRequirement.cpp
index b40558846bc..12b730a7206 100644
--- a/deps/LIEF/src/ELF/SymbolVersionAuxRequirement.cpp
+++ b/deps/LIEF/src/ELF/SymbolVersionAuxRequirement.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -18,21 +18,23 @@
 #include "LIEF/ELF/SymbolVersionAuxRequirement.hpp"
 #include "ELF/Structures.hpp"

-namespace LIEF {
-namespace ELF {

-SymbolVersionAuxRequirement::SymbolVersionAuxRequirement(const details::Elf64_Vernaux& header) :
+namespace LIEF::ELF {
+
+SymbolVersionAuxRequirement::SymbolVersionAuxRequirement(
+    const details::Elf64_Vernaux& header
+) :
   hash_{header.vna_hash},
   flags_{header.vna_flags},
-  other_{header.vna_other}
-{}
+  other_{header.vna_other} {}


-SymbolVersionAuxRequirement::SymbolVersionAuxRequirement(const details::Elf32_Vernaux& header) :
+SymbolVersionAuxRequirement::SymbolVersionAuxRequirement(
+    const details::Elf32_Vernaux& header
+) :
   hash_{header.vna_hash},
   flags_{header.vna_flags},
-  other_{header.vna_other}
-{}
+  other_{header.vna_other} {}

 void SymbolVersionAuxRequirement::accept(Visitor& visitor) const {
   visitor.visit(*this);
@@ -40,4 +42,3 @@ void SymbolVersionAuxRequirement::accept(Visitor& visitor) const {


 }
-}
diff --git a/deps/LIEF/src/ELF/SymbolVersionDefinition.cpp b/deps/LIEF/src/ELF/SymbolVersionDefinition.cpp
index e339b115afa..79d3f50a57e 100644
--- a/deps/LIEF/src/ELF/SymbolVersionDefinition.cpp
+++ b/deps/LIEF/src/ELF/SymbolVersionDefinition.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -14,58 +14,63 @@
  * limitations under the License.
  */
 #include <ostream>
-#include <iomanip>
 #include <algorithm>

+#include <spdlog/fmt/fmt.h>
+
 #include "LIEF/ELF/hash.hpp"

 #include "LIEF/ELF/SymbolVersionDefinition.hpp"
 #include "LIEF/ELF/SymbolVersionAux.hpp"
 #include "ELF/Structures.hpp"

-namespace LIEF {
-namespace ELF {
+
+namespace LIEF::ELF {

 SymbolVersionDefinition::~SymbolVersionDefinition() = default;

-SymbolVersionDefinition::SymbolVersionDefinition(const details::Elf64_Verdef& header) :
+SymbolVersionDefinition::SymbolVersionDefinition(
+    const details::Elf64_Verdef& header
+) :
   version_{header.vd_version},
   flags_{header.vd_flags},
   ndx_{header.vd_ndx},
-  hash_{header.vd_hash}
-{}
+  hash_{header.vd_hash} {}

-SymbolVersionDefinition::SymbolVersionDefinition(const details::Elf32_Verdef& header) :
+SymbolVersionDefinition::SymbolVersionDefinition(
+    const details::Elf32_Verdef& header
+) :
   version_{header.vd_version},
   flags_{header.vd_flags},
   ndx_{header.vd_ndx},
-  hash_{header.vd_hash}
-{}
+  hash_{header.vd_hash} {}


-SymbolVersionDefinition::SymbolVersionDefinition(const SymbolVersionDefinition& other) :
+SymbolVersionDefinition::SymbolVersionDefinition(
+    const SymbolVersionDefinition& other
+) :
   Object{other},
   version_{other.version_},
   flags_{other.flags_},
   ndx_{other.ndx_},
-  hash_{other.hash_}
-{
+  hash_{other.hash_} {
   symbol_version_aux_.reserve(other.symbol_version_aux_.size());
   for (const std::unique_ptr<SymbolVersionAux>& aux : other.symbol_version_aux_) {
     symbol_version_aux_.emplace_back(new SymbolVersionAux{*aux});
   }
 }

-SymbolVersionDefinition& SymbolVersionDefinition::operator=(SymbolVersionDefinition other) {
+SymbolVersionDefinition&
+    SymbolVersionDefinition::operator=(SymbolVersionDefinition other) {
   swap(other);
   return *this;
 }

 void SymbolVersionDefinition::swap(SymbolVersionDefinition& other) {
-  std::swap(version_,            other.version_);
-  std::swap(flags_,              other.flags_);
-  std::swap(ndx_,                other.ndx_);
-  std::swap(hash_,               other.hash_);
+  std::swap(version_, other.version_);
+  std::swap(flags_, other.flags_);
+  std::swap(ndx_, other.ndx_);
+  std::swap(hash_, other.hash_);
   std::swap(symbol_version_aux_, other.symbol_version_aux_);
 }

@@ -74,13 +79,8 @@ void SymbolVersionDefinition::accept(Visitor& visitor) const {
 }

 std::ostream& operator<<(std::ostream& os, const SymbolVersionDefinition& sym) {
-  os << std::hex << std::left;
-  os << std::setw(10) << sym.version();
-  os << std::setw(10) << sym.flags();
-  os << std::setw(10) << sym.ndx();
-  os << std::setw(10) << sym.hash();
-
+  os << fmt::format("{:<#10x}{:<#10x}{:<#10x}{:<#10x}", sym.version(), sym.flags(),
+                    sym.ndx(), sym.hash());
   return os;
 }
 }
-}
diff --git a/deps/LIEF/src/ELF/SymbolVersionRequirement.cpp b/deps/LIEF/src/ELF/SymbolVersionRequirement.cpp
index 8ce46604e42..774aaaa7dbb 100644
--- a/deps/LIEF/src/ELF/SymbolVersionRequirement.cpp
+++ b/deps/LIEF/src/ELF/SymbolVersionRequirement.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -20,49 +20,64 @@

 #include "ELF/Structures.hpp"

-namespace LIEF {
-namespace ELF {

-SymbolVersionRequirement::SymbolVersionRequirement(const details::Elf64_Verneed& header) :
-  version_{header.vn_version}
-{}
+namespace LIEF::ELF {

-SymbolVersionRequirement::SymbolVersionRequirement(const details::Elf32_Verneed& header)  :
-  version_{header.vn_version}
-{}
+SymbolVersionRequirement::SymbolVersionRequirement(
+    const details::Elf64_Verneed& header
+) :
+  version_{header.vn_version} {}

-SymbolVersionRequirement::SymbolVersionRequirement(const SymbolVersionRequirement& other) :
+SymbolVersionRequirement::SymbolVersionRequirement(
+    const details::Elf32_Verneed& header
+) :
+  version_{header.vn_version} {}
+
+SymbolVersionRequirement::SymbolVersionRequirement(
+    const SymbolVersionRequirement& other
+) :
   Object{other},
   version_{other.version_},
-  name_{other.name_}
-{
+  name_{other.name_} {
   aux_requirements_.reserve(other.aux_requirements_.size());
-  for (const std::unique_ptr<SymbolVersionAuxRequirement>& aux : other.aux_requirements_) {
-    aux_requirements_.push_back(std::make_unique<SymbolVersionAuxRequirement>(*aux));
+  for (const std::unique_ptr<SymbolVersionAuxRequirement>& aux :
+       other.aux_requirements_)
+  {
+    aux_requirements_.push_back(
+        std::make_unique<SymbolVersionAuxRequirement>(*aux)
+    );
   }
 }

-SymbolVersionRequirement& SymbolVersionRequirement::operator=(SymbolVersionRequirement other) {
+SymbolVersionRequirement&
+    SymbolVersionRequirement::operator=(SymbolVersionRequirement other) {
   swap(other);
   return *this;
 }

 void SymbolVersionRequirement::swap(SymbolVersionRequirement& other) {
   std::swap(aux_requirements_, other.aux_requirements_);
-  std::swap(version_,          other.version_);
-  std::swap(name_,             other.name_);
+  std::swap(version_, other.version_);
+  std::swap(name_, other.name_);
 }


-SymbolVersionAuxRequirement& SymbolVersionRequirement::add_aux_requirement(const SymbolVersionAuxRequirement& aux_requirement) {
-  aux_requirements_.push_back(std::make_unique<SymbolVersionAuxRequirement>(aux_requirement));
+SymbolVersionAuxRequirement& SymbolVersionRequirement::add_aux_requirement(
+    const SymbolVersionAuxRequirement& aux_requirement
+) {
+  aux_requirements_.push_back(
+      std::make_unique<SymbolVersionAuxRequirement>(aux_requirement)
+  );
   return *aux_requirements_.back();
 }


-bool SymbolVersionRequirement::remove_aux_requirement(SymbolVersionAuxRequirement& aux) {
-  auto it = std::find_if(aux_requirements_.begin(), aux_requirements_.end(),
-      [&aux] (const std::unique_ptr<SymbolVersionAuxRequirement>& element) {
+bool SymbolVersionRequirement::remove_aux_requirement(
+    SymbolVersionAuxRequirement& aux
+) {
+  auto it = std::find_if(
+      aux_requirements_.begin(), aux_requirements_.end(),
+      [&aux](const std::unique_ptr<SymbolVersionAuxRequirement>& element) {
         return &aux == element.get();
       }
   );
@@ -76,10 +91,10 @@ bool SymbolVersionRequirement::remove_aux_requirement(SymbolVersionAuxRequiremen
 }

 const SymbolVersionAuxRequirement*
-  SymbolVersionRequirement::find_aux(const std::string& name) const
-{
-  auto it = std::find_if(aux_requirements_.begin(), aux_requirements_.end(),
-      [&name] (const std::unique_ptr<SymbolVersionAuxRequirement>& aux) {
+    SymbolVersionRequirement::find_aux(const std::string& name) const {
+  auto it = std::find_if(
+      aux_requirements_.begin(), aux_requirements_.end(),
+      [&name](const std::unique_ptr<SymbolVersionAuxRequirement>& aux) {
         return aux->name() == name;
       }
   );
@@ -96,4 +111,3 @@ void SymbolVersionRequirement::accept(Visitor& visitor) const {
 }

 }
-}
diff --git a/deps/LIEF/src/ELF/SysvHash.cpp b/deps/LIEF/src/ELF/SysvHash.cpp
index 9adf9eece5b..e662886f934 100644
--- a/deps/LIEF/src/ELF/SysvHash.cpp
+++ b/deps/LIEF/src/ELF/SysvHash.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -13,63 +13,28 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-#include <iomanip>
-#include <numeric>
-#include <sstream>
+#include <spdlog/fmt/fmt.h>
+#include <spdlog/fmt/ranges.h>

 #include "LIEF/ELF/hash.hpp"

 #include "LIEF/ELF/SysvHash.hpp"

-namespace LIEF {
-namespace ELF {
+
+namespace LIEF::ELF {

 void SysvHash::accept(Visitor& visitor) const {
   visitor.visit(*this);
 }

 std::ostream& operator<<(std::ostream& os, const SysvHash& sysvhash) {
-  os << std::hex << std::left;
-
-  const std::vector<uint32_t>& buckets = sysvhash.buckets();
-  const std::vector<uint32_t>& chains  = sysvhash.chains();
-
-  std::string buckets_str = std::accumulate(
-      std::begin(buckets),
-      std::end(buckets), std::string{},
-      [] (const std::string& a, uint32_t b) {
-        std::ostringstream dec_bucket;
-        dec_bucket << std::dec;
-        dec_bucket << b;
-
-        return a.empty() ? "[" + dec_bucket.str() : a + ", " + dec_bucket.str();
-      });
-  buckets_str += "]";
-
-
-  std::string chains_str = std::accumulate(
-      std::begin(chains),
-      std::end(chains), std::string{},
-      [] (const std::string& a, uint32_t b) {
-        std::ostringstream dec_bucket;
-        dec_bucket << std::dec;
-        dec_bucket << b;
-
-        return a.empty() ? "[" + dec_bucket.str() : a + ", " + dec_bucket.str();
-      });
-  buckets_str += "]";
-
-
-
-  os << std::setw(33) << std::setfill(' ') << "Number of buckets:"  << sysvhash.nbucket() << '\n';
-  os << std::setw(33) << std::setfill(' ') << "Buckets:"            << buckets_str        << '\n';
-
-  os << std::setw(33) << std::setfill(' ') << "Number of chains:"   << sysvhash.nchain() << '\n';
-  os << std::setw(33) << std::setfill(' ') << "Chains:"             << chains_str        << '\n';
-
+  os << fmt::format("Number of buckets:           {}\n", sysvhash.nbucket())
+     << fmt::format("Buckets:                     [{}]\n",
+                    fmt::join(sysvhash.buckets(), ", "))
+     << fmt::format("Number of chains:            {}\n", sysvhash.nchain())
+     << fmt::format("Chains:                      [{}]\n",
+                    fmt::join(sysvhash.chains(), ", "));
   return os;
-
 }

-} // namespace ELF
-} // namespace LIEF
+} // namespace LIEF::ELF
diff --git a/deps/LIEF/src/ELF/elf_utils.cpp b/deps/LIEF/src/ELF/elf_utils.cpp
new file mode 100644
index 00000000000..b733f8fcf12
--- /dev/null
+++ b/deps/LIEF/src/ELF/elf_utils.cpp
@@ -0,0 +1,59 @@
+#include "ELF/elf_utils.hpp"
+#include "ELF/Structures.hpp"
+
+#include "logging.hpp"
+
+#include "LIEF/BinaryStream/BinaryStream.hpp"
+#include "LIEF/ELF/Header.hpp"
+#include "LIEF/ELF/Segment.hpp"
+
+namespace LIEF::ELF {
+
+optional<elf_file_info_t> get_info(BinaryStream& strm) {
+  elf_file_info_t info{};
+  auto header = strm.read<ELF::details::Elf64_Ehdr>();
+  if (!header) {
+    LIEF_ERR("Failed to read ELF Header");
+    return nullopt();
+  }
+
+  const auto cls = static_cast<Header::CLASS>(header->e_ident[Header::ELI_CLASS]);
+  const auto data =
+      static_cast<Header::ELF_DATA>(header->e_ident[Header::ELI_DATA]);
+  if (cls != Header::CLASS::ELF64 || data != Header::ELF_DATA::LSB) {
+    LIEF_WARN("{} only supports 64-bit little-endian ELF images", __FUNCTION__);
+    return nullopt();
+  }
+
+  strm.setpos(header->e_phoff);
+  info.phnum = header->e_phnum;
+  info.phdr_off = header->e_phoff;
+  for (size_t i = 0; i < header->e_phnum; ++i) {
+    auto phdr = strm.read<ELF::details::Elf64_Phdr>();
+    if (!phdr) {
+      LIEF_WARN("Failed to read Elf_Phdr[{}]", i);
+      break;
+    }
+    static_assert((int)Segment::TYPE::LOAD == 1);
+    static_assert((int)Segment::TYPE::PHDR == 6);
+    if (phdr->p_type == (int)Segment::TYPE::PHDR) {
+      info.phdr_off = phdr->p_vaddr;
+    } else if (phdr->p_type == (int)Segment::TYPE::LOAD) {
+      info.imagebase = std::min<uintptr_t>(info.imagebase, phdr->p_vaddr);
+      info.end_address =
+          std::max<uintptr_t>(info.end_address, phdr->p_vaddr + phdr->p_memsz);
+    }
+  }
+
+  if (info.imagebase == static_cast<uintptr_t>(-1) ||
+      info.end_address < info.imagebase)
+  {
+    LIEF_WARN("No loadable segment found while probing the ELF image");
+    return nullopt();
+  }
+
+  return info;
+}
+
+
+}
diff --git a/deps/LIEF/src/ELF/elf_utils.hpp b/deps/LIEF/src/ELF/elf_utils.hpp
new file mode 100644
index 00000000000..05aed3c210b
--- /dev/null
+++ b/deps/LIEF/src/ELF/elf_utils.hpp
@@ -0,0 +1,44 @@
+/* Copyright 2017 - 2026 R. Thomas
+ *
+ * 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.
+ */
+#pragma once
+#include "LIEF/optional.hpp"
+
+#include <spdlog/fmt/fmt.h>
+#include <cassert>
+#include <cstdint>
+
+namespace LIEF {
+class BinaryStream;
+}
+
+namespace LIEF::ELF {
+struct elf_file_info_t {
+  uintptr_t imagebase = -1llu;
+  uint64_t end_address = 0;
+  uintptr_t phdr_off = 0;
+  uintptr_t phnum = 0;
+  uintptr_t vsize() const {
+    return end_address >= imagebase ? end_address - imagebase : 0;
+  }
+
+  std::string to_string() const {
+    return fmt::format("imagebase={:#010x}, end_address={:#010x}, "
+                       "phdr_off={:#06x} virtual_size={:#06x}",
+                       imagebase, end_address, phdr_off, vsize());
+  }
+};
+
+optional<elf_file_info_t> get_info(BinaryStream& strm);
+}
diff --git a/deps/LIEF/src/ELF/endianness_support.cpp b/deps/LIEF/src/ELF/endianness_support.cpp
index c9c44813754..fbfd74ac850 100644
--- a/deps/LIEF/src/ELF/endianness_support.cpp
+++ b/deps/LIEF/src/ELF/endianness_support.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2021 - 2025 R. Thomas
- * Copyright 2021 - 2025 Quarkslab
+/* Copyright 2021 - 2026 R. Thomas
+ * Copyright 2021 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -18,7 +18,7 @@

 namespace LIEF {

-template <typename Elf_Ehdr>
+template<typename Elf_Ehdr>
 void swap_endian_ehdr(Elf_Ehdr* hdr) {
   swap_endian(&hdr->e_type);
   swap_endian(&hdr->e_machine);
@@ -41,12 +41,12 @@ void swap_endian<ELF::details::Elf32_Ehdr>(ELF::details::Elf32_Ehdr* hdr) {
 }

 template<>
-void swap_endian<ELF::details::Elf64_Ehdr>(ELF::details::Elf64_Ehdr *hdr) {
+void swap_endian<ELF::details::Elf64_Ehdr>(ELF::details::Elf64_Ehdr* hdr) {
   swap_endian_ehdr(hdr);
 }

-template <typename Elf_Shdr>
-void swap_endian_shdr(Elf_Shdr *shdr) {
+template<typename Elf_Shdr>
+void swap_endian_shdr(Elf_Shdr* shdr) {
   swap_endian(&shdr->sh_name);
   swap_endian(&shdr->sh_type);
   swap_endian(&shdr->sh_flags);
@@ -60,17 +60,17 @@ void swap_endian_shdr(Elf_Shdr *shdr) {
 }

 template<>
-void swap_endian<ELF::details::Elf32_Shdr>(ELF::details::Elf32_Shdr *shdr) {
+void swap_endian<ELF::details::Elf32_Shdr>(ELF::details::Elf32_Shdr* shdr) {
   swap_endian_shdr(shdr);
 }

 template<>
-void swap_endian<ELF::details::Elf64_Shdr>(ELF::details::Elf64_Shdr *shdr) {
+void swap_endian<ELF::details::Elf64_Shdr>(ELF::details::Elf64_Shdr* shdr) {
   swap_endian_shdr(shdr);
 }

-template <typename Elf_Phdr>
-void swap_endian_phdr(Elf_Phdr *phdr) {
+template<typename Elf_Phdr>
+void swap_endian_phdr(Elf_Phdr* phdr) {
   swap_endian(&phdr->p_type);
   swap_endian(&phdr->p_offset);
   swap_endian(&phdr->p_vaddr);
@@ -82,18 +82,18 @@ void swap_endian_phdr(Elf_Phdr *phdr) {
 }

 template<>
-void swap_endian<ELF::details::Elf32_Phdr>(ELF::details::Elf32_Phdr *phdr) {
+void swap_endian<ELF::details::Elf32_Phdr>(ELF::details::Elf32_Phdr* phdr) {
   swap_endian_phdr(phdr);
 }

 template<>
-void swap_endian<ELF::details::Elf64_Phdr>(ELF::details::Elf64_Phdr *phdr) {
+void swap_endian<ELF::details::Elf64_Phdr>(ELF::details::Elf64_Phdr* phdr) {
   swap_endian_phdr(phdr);
 }


-template <typename Elf_Sym>
-void swap_endian_sym(Elf_Sym *sym) {
+template<typename Elf_Sym>
+void swap_endian_sym(Elf_Sym* sym) {
   swap_endian(&sym->st_name);
   swap_endian(&sym->st_value);
   swap_endian(&sym->st_size);
@@ -103,70 +103,70 @@ void swap_endian_sym(Elf_Sym *sym) {
 }

 template<>
-void swap_endian<ELF::details::Elf32_Sym>(ELF::details::Elf32_Sym *sym) {
+void swap_endian<ELF::details::Elf32_Sym>(ELF::details::Elf32_Sym* sym) {
   swap_endian_sym(sym);
 }

 template<>
-void swap_endian<ELF::details::Elf64_Sym>(ELF::details::Elf64_Sym *sym) {
+void swap_endian<ELF::details::Elf64_Sym>(ELF::details::Elf64_Sym* sym) {
   swap_endian_sym(sym);
 }

-template <typename REL_T>
-void swap_endian_rel(REL_T *rel) {
+template<typename REL_T>
+void swap_endian_rel(REL_T* rel) {
   swap_endian(&rel->r_offset);
   swap_endian(&rel->r_info);
 }

-template <typename RELA_T>
-void swap_endian_rela(RELA_T *rel) {
+template<typename RELA_T>
+void swap_endian_rela(RELA_T* rel) {
   swap_endian(&rel->r_offset);
   swap_endian(&rel->r_info);
   swap_endian(&rel->r_addend);
 }

 template<>
-void swap_endian<ELF::details::Elf32_Rel>(ELF::details::Elf32_Rel *rel) {
+void swap_endian<ELF::details::Elf32_Rel>(ELF::details::Elf32_Rel* rel) {
   swap_endian_rel(rel);
 }

 template<>
-void swap_endian<ELF::details::Elf64_Rel>(ELF::details::Elf64_Rel *rel) {
+void swap_endian<ELF::details::Elf64_Rel>(ELF::details::Elf64_Rel* rel) {
   swap_endian_rel(rel);
 }

 template<>
-void swap_endian<ELF::details::Elf32_Rela>(ELF::details::Elf32_Rela *rel) {
+void swap_endian<ELF::details::Elf32_Rela>(ELF::details::Elf32_Rela* rel) {
   swap_endian_rela(rel);
 }

 template<>
-void swap_endian<ELF::details::Elf64_Rela>(ELF::details::Elf64_Rela *rel) {
+void swap_endian<ELF::details::Elf64_Rela>(ELF::details::Elf64_Rela* rel) {
   swap_endian_rela(rel);
 }


 /** ELF Dynamic Symbol */
-template <typename Elf_Dyn>
-void swap_endian_dyn(Elf_Dyn *dyn) {
+template<typename Elf_Dyn>
+void swap_endian_dyn(Elf_Dyn* dyn) {
   swap_endian(&dyn->d_tag);
   swap_endian(&dyn->d_un.d_val);
 }

 template<>
-void swap_endian<ELF::details::Elf32_Dyn>(ELF::details::Elf32_Dyn *dyn) {
+void swap_endian<ELF::details::Elf32_Dyn>(ELF::details::Elf32_Dyn* dyn) {
   swap_endian_dyn(dyn);
 }

 template<>
-void swap_endian<ELF::details::Elf64_Dyn>(ELF::details::Elf64_Dyn *dyn) {
+void swap_endian<ELF::details::Elf64_Dyn>(ELF::details::Elf64_Dyn* dyn) {
   swap_endian_dyn(dyn);
 }


 /** ELF Verneed */
-template <typename Elf_Verneed>
-void swap_endian_verneed(Elf_Verneed *ver) {
+template<typename Elf_Verneed>
+void swap_endian_verneed(Elf_Verneed* ver) {
   swap_endian(&ver->vn_version);
   swap_endian(&ver->vn_cnt);
   swap_endian(&ver->vn_file);
@@ -175,19 +175,19 @@ void swap_endian_verneed(Elf_Verneed *ver) {
 }

 template<>
-void swap_endian<ELF::details::Elf32_Verneed>(ELF::details::Elf32_Verneed *ver) {
+void swap_endian<ELF::details::Elf32_Verneed>(ELF::details::Elf32_Verneed* ver) {
   swap_endian_verneed(ver);
 }

 template<>
-void swap_endian<ELF::details::Elf64_Verneed>(ELF::details::Elf64_Verneed *ver) {
+void swap_endian<ELF::details::Elf64_Verneed>(ELF::details::Elf64_Verneed* ver) {
   swap_endian_verneed(ver);
 }


 /** ELF Vernaux */
-template <typename Elf_Vernaux>
-void swap_endian_vernaux(Elf_Vernaux *ver) {
+template<typename Elf_Vernaux>
+void swap_endian_vernaux(Elf_Vernaux* ver) {
   swap_endian(&ver->vna_hash);
   swap_endian(&ver->vna_flags);
   swap_endian(&ver->vna_other);
@@ -196,18 +196,18 @@ void swap_endian_vernaux(Elf_Vernaux *ver) {
 }

 template<>
-void swap_endian<ELF::details::Elf32_Vernaux>(ELF::details::Elf32_Vernaux *ver) {
+void swap_endian<ELF::details::Elf32_Vernaux>(ELF::details::Elf32_Vernaux* ver) {
   swap_endian_vernaux(ver);
 }

 template<>
-void swap_endian<ELF::details::Elf64_Vernaux>(ELF::details::Elf64_Vernaux *ver) {
+void swap_endian<ELF::details::Elf64_Vernaux>(ELF::details::Elf64_Vernaux* ver) {
   swap_endian_vernaux(ver);
 }

 /** ELF Symbol Version Definition */
-template <typename Elf_Verdef>
-void swap_endian_verdef(Elf_Verdef *ver) {
+template<typename Elf_Verdef>
+void swap_endian_verdef(Elf_Verdef* ver) {
   swap_endian(&ver->vd_version);
   swap_endian(&ver->vd_flags);
   swap_endian(&ver->vd_ndx);
@@ -218,61 +218,65 @@ void swap_endian_verdef(Elf_Verdef *ver) {
 }

 template<>
-void swap_endian<ELF::details::Elf32_Verdef>(ELF::details::Elf32_Verdef *ver) {
+void swap_endian<ELF::details::Elf32_Verdef>(ELF::details::Elf32_Verdef* ver) {
   swap_endian_verdef(ver);
 }

 template<>
-void swap_endian<ELF::details::Elf64_Verdef>(ELF::details::Elf64_Verdef *ver) {
+void swap_endian<ELF::details::Elf64_Verdef>(ELF::details::Elf64_Verdef* ver) {
   swap_endian_verdef(ver);
 }

-template <typename Elf_Verdaux>
-void swap_endian_verdaux(Elf_Verdaux *ver) {
+template<typename Elf_Verdaux>
+void swap_endian_verdaux(Elf_Verdaux* ver) {
   swap_endian(&ver->vda_name);
   swap_endian(&ver->vda_next);
 }

 template<>
-void swap_endian<ELF::details::Elf32_Verdaux>(ELF::details::Elf32_Verdaux *ver) {
+void swap_endian<ELF::details::Elf32_Verdaux>(ELF::details::Elf32_Verdaux* ver) {
   swap_endian_verdaux(ver);
 }

 template<>
-void swap_endian<ELF::details::Elf64_Verdaux>(ELF::details::Elf64_Verdaux *ver) {
+void swap_endian<ELF::details::Elf64_Verdaux>(ELF::details::Elf64_Verdaux* ver) {
   swap_endian_verdaux(ver);
 }

-template <typename Elf_Auxv>
-void swap_endian_auxv(Elf_Auxv *auxv) {
+template<typename Elf_Auxv>
+void swap_endian_auxv(Elf_Auxv* auxv) {
   swap_endian(&auxv->a_type);
   swap_endian(&auxv->a_un.a_val);
 }

 template<>
-void swap_endian<ELF::details::Elf32_Auxv>(ELF::details::Elf32_Auxv *auxv) {
+void swap_endian<ELF::details::Elf32_Auxv>(ELF::details::Elf32_Auxv* auxv) {
   swap_endian_auxv(auxv);
 }

 template<>
-void swap_endian<ELF::details::Elf64_Auxv>(ELF::details::Elf64_Auxv *auxv) {
+void swap_endian<ELF::details::Elf64_Auxv>(ELF::details::Elf64_Auxv* auxv) {
   swap_endian_auxv(auxv);
 }

-template <typename Elf_FileEntry>
-void swap_endian_fileentry(Elf_FileEntry *entry) {
+template<typename Elf_FileEntry>
+void swap_endian_fileentry(Elf_FileEntry* entry) {
   swap_endian(&entry->start);
   swap_endian(&entry->end);
   swap_endian(&entry->file_ofs);
 }

 template<>
-void swap_endian<ELF::details::Elf32_FileEntry>(ELF::details::Elf32_FileEntry *entry) {
+void swap_endian<ELF::details::Elf32_FileEntry>(
+    ELF::details::Elf32_FileEntry* entry
+) {
   swap_endian_fileentry(entry);
 }

 template<>
-void swap_endian<ELF::details::Elf64_FileEntry>(ELF::details::Elf64_FileEntry *entry) {
+void swap_endian<ELF::details::Elf64_FileEntry>(
+    ELF::details::Elf64_FileEntry* entry
+) {
   swap_endian_fileentry(entry);
 }

diff --git a/deps/LIEF/src/ELF/hash.cpp b/deps/LIEF/src/ELF/hash.cpp
index 8deb9b312fa..ac910c2a14e 100644
--- a/deps/LIEF/src/ELF/hash.cpp
+++ b/deps/LIEF/src/ELF/hash.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -46,8 +46,8 @@
 #include "LIEF/ELF/SymbolVersionRequirement.hpp"
 #include "LIEF/ELF/SysvHash.hpp"

-namespace LIEF {
-namespace ELF {
+
+namespace LIEF::ELF {

 Hash::~Hash() = default;

@@ -59,13 +59,13 @@ size_t Hash::hash(const Object& obj) {
 void Hash::visit(const Binary& binary) {
   process(binary.header());

-  process(std::begin(binary.sections()), std::end(binary.sections()));
-  process(std::begin(binary.segments()), std::end(binary.segments()));
-  process(std::begin(binary.dynamic_entries()), std::end(binary.dynamic_entries()));
-  process(std::begin(binary.dynamic_symbols()), std::end(binary.dynamic_symbols()));
-  process(std::begin(binary.symtab_symbols()), std::end(binary.symtab_symbols()));
-  process(std::begin(binary.relocations()), std::end(binary.relocations()));
-  process(std::begin(binary.notes()), std::end(binary.notes()));
+  process(binary.sections().begin(), binary.sections().end());
+  process(binary.segments().begin(), binary.segments().end());
+  process(binary.dynamic_entries().begin(), binary.dynamic_entries().end());
+  process(binary.dynamic_symbols().begin(), binary.dynamic_symbols().end());
+  process(binary.symtab_symbols().begin(), binary.symtab_symbols().end());
+  process(binary.relocations().begin(), binary.relocations().end());
+  process(binary.notes().begin(), binary.notes().end());

   if (binary.use_gnu_hash()) {
     process(*binary.gnu_hash());
@@ -78,7 +78,6 @@ void Hash::visit(const Binary& binary) {
   if (binary.has_interpreter()) {
     process(binary.interpreter());
   }
-
 }


@@ -197,7 +196,6 @@ void Hash::visit(const Relocation& relocation) {
   if (sym != nullptr) {
     process(*sym);
   }
-
 }

 void Hash::visit(const SymbolVersion& sv) {
@@ -210,7 +208,7 @@ void Hash::visit(const SymbolVersion& sv) {
 void Hash::visit(const SymbolVersionRequirement& svr) {
   process(svr.version());
   process(svr.name());
-  process(std::begin(svr.auxiliary_symbols()), std::end(svr.auxiliary_symbols()));
+  process(svr.auxiliary_symbols().begin(), svr.auxiliary_symbols().end());
 }

 void Hash::visit(const SymbolVersionDefinition& svd) {
@@ -292,7 +290,4 @@ void Hash::visit(const SysvHash& sysvhash) {
 }


-
-} // namespace ELF
-} // namespace LIEF
-
+} // namespace LIEF::ELF
diff --git a/deps/LIEF/src/ELF/json.cpp b/deps/LIEF/src/ELF/json.cpp
index c89a21af476..4c64008c2da 100644
--- a/deps/LIEF/src/ELF/json.cpp
+++ b/deps/LIEF/src/ELF/json.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -15,10 +15,47 @@
  */

 #include "ELF/json_internal.hpp"
-#include "LIEF/ELF.hpp"

-namespace LIEF {
-namespace ELF {
+
+#include "LIEF/ELF/hash.hpp"
+#include "LIEF/ELF/utils.hpp"
+#include "LIEF/ELF/enums.hpp"
+
+#include "LIEF/ELF/Parser.hpp"
+#include "LIEF/ELF/Header.hpp"
+#include "LIEF/ELF/Section.hpp"
+#include "LIEF/ELF/Binary.hpp"
+#include "LIEF/ELF/Segment.hpp"
+#include "LIEF/ELF/Builder.hpp"
+#include "LIEF/ELF/EnumToString.hpp"
+#include "LIEF/ELF/Relocation.hpp"
+#include "LIEF/ELF/DynamicEntryArray.hpp"
+#include "LIEF/ELF/DynamicEntryFlags.hpp"
+#include "LIEF/ELF/DynamicEntry.hpp"
+#include "LIEF/ELF/DynamicEntryLibrary.hpp"
+#include "LIEF/ELF/DynamicEntryRpath.hpp"
+#include "LIEF/ELF/DynamicEntryRunPath.hpp"
+#include "LIEF/ELF/DynamicSharedObject.hpp"
+#include "LIEF/ELF/GnuHash.hpp"
+#include "LIEF/ELF/Note.hpp"
+#include "LIEF/ELF/NoteDetails/QNXStack.hpp"
+#include "LIEF/ELF/NoteDetails/AndroidIdent.hpp"
+#include "LIEF/ELF/NoteDetails/NoteAbi.hpp"
+#include "LIEF/ELF/NoteDetails/NoteGnuProperty.hpp"
+#include "LIEF/ELF/NoteDetails/core/CorePrPsInfo.hpp"
+#include "LIEF/ELF/NoteDetails/core/CorePrStatus.hpp"
+#include "LIEF/ELF/NoteDetails/core/CoreAuxv.hpp"
+#include "LIEF/ELF/NoteDetails/core/CoreSigInfo.hpp"
+#include "LIEF/ELF/NoteDetails/core/CoreFile.hpp"
+#include "LIEF/ELF/Symbol.hpp"
+#include "LIEF/ELF/SymbolVersion.hpp"
+#include "LIEF/ELF/SymbolVersionAux.hpp"
+#include "LIEF/ELF/SymbolVersionAuxRequirement.hpp"
+#include "LIEF/ELF/SymbolVersionDefinition.hpp"
+#include "LIEF/ELF/SymbolVersionRequirement.hpp"
+#include "LIEF/ELF/SysvHash.hpp"
+
+namespace LIEF::ELF {

 void JsonVisitor::visit(const Binary& binary) {
   JsonVisitor header_visitor;
@@ -120,27 +157,27 @@ void JsonVisitor::visit(const Binary& binary) {
     notes.emplace_back(visitor.get());
   }

-  node_["entrypoint"]   = binary.entrypoint();
-  node_["imagebase"]    = binary.imagebase();
+  node_["entrypoint"] = binary.entrypoint();
+  node_["imagebase"] = binary.imagebase();
   node_["virtual_size"] = binary.virtual_size();
-  node_["is_pie"]       = binary.is_pie();
+  node_["is_pie"] = binary.is_pie();

   if (binary.has_interpreter()) {
     node_["interpreter"] = binary.interpreter();
   }

-  node_["header"]                      = header_visitor.get();
-  node_["sections"]                    = sections;
-  node_["segments"]                    = segments;
-  node_["dynamic_entries"]             = dynamic_entries;
-  node_["dynamic_symbols"]             = dynamic_symbols;
-  node_["symtab_symbols"]              = symtab_symbols;
-  node_["dynamic_relocations"]         = dynamic_relocations;
-  node_["pltgot_relocations"]          = pltgot_relocations;
-  node_["symbols_version"]             = symbols_version;
+  node_["header"] = header_visitor.get();
+  node_["sections"] = sections;
+  node_["segments"] = segments;
+  node_["dynamic_entries"] = dynamic_entries;
+  node_["dynamic_symbols"] = dynamic_symbols;
+  node_["symtab_symbols"] = symtab_symbols;
+  node_["dynamic_relocations"] = dynamic_relocations;
+  node_["pltgot_relocations"] = pltgot_relocations;
+  node_["symbols_version"] = symbols_version;
   node_["symbols_version_requirement"] = symbols_version_requirement;
-  node_["symbols_version_definition"]  = symbols_version_definition;
-  node_["notes"]                       = notes;
+  node_["symbols_version_definition"] = symbols_version_definition;
+  node_["notes"] = notes;

   if (binary.use_gnu_hash()) {
     JsonVisitor gnu_hash_visitor;
@@ -155,29 +192,28 @@ void JsonVisitor::visit(const Binary& binary) {

     node_["sysv_hash"] = sysv_hash_visitor.get();
   }
-
 }


 void JsonVisitor::visit(const Header& header) {
-  node_["file_type"]                       = to_string(header.file_type());
-  node_["machine_type"]                    = to_string(header.machine_type());
-  node_["object_file_version"]             = to_string(header.object_file_version());
-  node_["entrypoint"]                      = header.entrypoint();
-  node_["program_headers_offset"]          = header.program_headers_offset();
-  node_["section_headers_offset"]          = header.section_headers_offset();
-  node_["processor_flag"]                  = header.processor_flag();
-  node_["header_size"]                     = header.header_size();
-  node_["program_header_size"]             = header.program_header_size();
+  node_["file_type"] = to_string(header.file_type());
+  node_["machine_type"] = to_string(header.machine_type());
+  node_["object_file_version"] = to_string(header.object_file_version());
+  node_["entrypoint"] = header.entrypoint();
+  node_["program_headers_offset"] = header.program_headers_offset();
+  node_["section_headers_offset"] = header.section_headers_offset();
+  node_["processor_flag"] = header.processor_flag();
+  node_["header_size"] = header.header_size();
+  node_["program_header_size"] = header.program_header_size();
   node_["processornumberof_segments_flag"] = header.numberof_segments();
-  node_["section_header_size"]             = header.section_header_size();
-  node_["numberof_sections"]               = header.numberof_sections();
-  node_["section_name_table_idx"]          = header.section_name_table_idx();
-  node_["identity_class"]                  = to_string(header.identity_class());
-  node_["identity_data"]                   = to_string(header.identity_data());
-  node_["identity_version"]                = to_string(header.identity_version());
-  node_["identity_os_abi"]                 = to_string(header.identity_os_abi());
-  node_["identity_abi_version"]            = header.identity_abi_version();
+  node_["section_header_size"] = header.section_header_size();
+  node_["numberof_sections"] = header.numberof_sections();
+  node_["section_name_table_idx"] = header.section_name_table_idx();
+  node_["identity_class"] = to_string(header.identity_class());
+  node_["identity_data"] = to_string(header.identity_data());
+  node_["identity_version"] = to_string(header.identity_version());
+  node_["identity_os_abi"] = to_string(header.identity_os_abi());
+  node_["identity_abi_version"] = header.identity_abi_version();
 }


@@ -187,16 +223,16 @@ void JsonVisitor::visit(const Section& section) {
     flags.emplace_back(to_string(f));
   }

-  node_["name"]            = section.name();
+  node_["name"] = section.name();
   node_["virtual_address"] = section.virtual_address();
-  node_["size"]            = section.size();
-  node_["offset"]          = section.offset();
-  node_["alignment"]       = section.alignment();
-  node_["information"]     = section.information();
-  node_["entry_size"]      = section.entry_size();
-  node_["link"]            = section.link();
-  node_["type"]            = to_string(section.type());
-  node_["flags"]           = flags;
+  node_["size"] = section.size();
+  node_["offset"] = section.offset();
+  node_["alignment"] = section.alignment();
+  node_["information"] = section.information();
+  node_["entry_size"] = section.entry_size();
+  node_["link"] = section.link();
+  node_["type"] = to_string(section.type());
+  node_["flags"] = flags;
 }

 void JsonVisitor::visit(const Segment& segment) {
@@ -206,20 +242,19 @@ void JsonVisitor::visit(const Segment& segment) {
     sections.emplace_back(section.name());
   }

-  node_["type"]             = to_string(segment.type());
-  node_["flags"]            = static_cast<size_t>(segment.flags());
-  node_["file_offset"]      = segment.file_offset();
-  node_["virtual_address"]  = segment.virtual_address();
+  node_["type"] = to_string(segment.type());
+  node_["flags"] = static_cast<size_t>(segment.flags());
+  node_["file_offset"] = segment.file_offset();
+  node_["virtual_address"] = segment.virtual_address();
   node_["physical_address"] = segment.physical_address();
-  node_["physical_size"]    = segment.physical_size();
-  node_["virtual_size"]     = segment.virtual_size();
-  node_["alignment"]        = segment.alignment();
-  node_["sections"]         = sections;
-
+  node_["physical_size"] = segment.physical_size();
+  node_["virtual_size"] = segment.virtual_size();
+  node_["alignment"] = segment.alignment();
+  node_["sections"] = sections;
 }

 void JsonVisitor::visit(const DynamicEntry& entry) {
-  node_["tag"]   = to_string(entry.tag());
+  node_["tag"] = to_string(entry.tag());
   node_["value"] = entry.value();
 }

@@ -261,25 +296,21 @@ void JsonVisitor::visit(const DynamicEntryFlags& entry) {
   std::vector<std::string> flags_str;
   flags_str.reserve(flags.size());

-  std::transform(
-      std::begin(flags), std::end(flags),
-      std::back_inserter(flags_str),
-      [] (DynamicEntryFlags::FLAG f) {
-        return to_string(f);
-      });
+  std::transform(flags.begin(), flags.end(), std::back_inserter(flags_str),
+                 [](DynamicEntryFlags::FLAG f) { return to_string(f); });


   node_["flags"] = flags_str;
 }

 void JsonVisitor::visit(const Symbol& symbol) {
-  node_["type"]        = to_string(symbol.type());
-  node_["binding"]     = to_string(symbol.binding());
+  node_["type"] = to_string(symbol.type());
+  node_["binding"] = to_string(symbol.binding());
   node_["information"] = symbol.information();
-  node_["other"]       = symbol.other();
-  node_["value"]       = symbol.value();
-  node_["size"]        = symbol.size();
-  node_["name"]        = symbol.name();
+  node_["other"] = symbol.other();
+  node_["value"] = symbol.value();
+  node_["size"] = symbol.size();
+  node_["name"] = symbol.name();

   std::string sname = symbol.demangled_name();
   if (sname.empty()) {
@@ -308,16 +339,15 @@ void JsonVisitor::visit(const Relocation& relocation) {
   relocation_type = to_string(relocation.type());

   node_["symbol_name"] = symbol_name;
-  node_["address"]     = relocation.address();
-  node_["type"]        = relocation_type;
-  node_["section"]     = section_name;
-
+  node_["address"] = relocation.address();
+  node_["type"] = relocation_type;
+  node_["section"] = section_name;
 }

 void JsonVisitor::visit(const SymbolVersion& sv) {
   node_["value"] = sv.value();
   if (sv.has_auxiliary_version()) {
-   node_["symbol_version_auxiliary"] = sv.symbol_version_auxiliary()->name();
+    node_["symbol_version_auxiliary"] = sv.symbol_version_auxiliary()->name();
   }
 }

@@ -331,10 +361,9 @@ void JsonVisitor::visit(const SymbolVersionRequirement& svr) {
     svar_json.emplace_back(visitor.get());
   }

-  node_["version"]                              = svr.version();
-  node_["name"]                                 = svr.name();
+  node_["version"] = svr.version();
+  node_["name"] = svr.name();
   node_["symbol_version_auxiliary_requirement"] = svar_json;
-
 }

 void JsonVisitor::visit(const SymbolVersionDefinition& svd) {
@@ -347,9 +376,9 @@ void JsonVisitor::visit(const SymbolVersionDefinition& svd) {
     sva_json.emplace_back(visitor.get());
   }

-  node_["version"]                  = svd.version();
-  node_["flags"]                    = svd.flags();
-  node_["hash"]                     = svd.hash();
+  node_["version"] = svd.version();
+  node_["flags"] = svd.flags();
+  node_["hash"] = svd.hash();
   node_["symbol_version_auxiliary"] = sva_json;
 }

@@ -358,14 +387,14 @@ void JsonVisitor::visit(const SymbolVersionAux& sv) {
 }

 void JsonVisitor::visit(const SymbolVersionAuxRequirement& svar) {
-  node_["hash"]  = svar.hash();
+  node_["hash"] = svar.hash();
   node_["flags"] = svar.flags();
   node_["other"] = svar.other();
 }

 void JsonVisitor::visit(const Note& note) {
-  node_["name"]          = note.name();
-  node_["type"]          = to_string(note.type());
+  node_["name"] = note.name();
+  node_["type"] = to_string(note.type());
   node_["original_type"] = note.original_type();
 }

@@ -386,7 +415,7 @@ void JsonVisitor::visit(const NoteGnuProperty& note_prop) {
   json_props.reserve(props.size());

   for (const std::unique_ptr<NoteGnuProperty::Property>& prop : props) {
-    json_props.push_back(to_string(prop->type()));
+    json_props.emplace_back(to_string(prop->type()));
   }

   node_["properties"] = std::move(json_props);
@@ -398,83 +427,74 @@ void JsonVisitor::visit(const CorePrPsInfo& pinfo) {
   if (!info) {
     return;
   }
-  node_["state"]     = info->state;
-  node_["sname"]     = info->sname;
-  node_["zombie"]    = info->zombie;
-  node_["flag"]      = info->flag;
-  node_["uid"]       = info->uid;
-  node_["gid"]       = info->gid;
-  node_["pid"]       = info->pid;
-  node_["ppid"]      = info->ppid;
-  node_["pgrp"]      = info->pgrp;
-  node_["sid"]       = info->sid;
-  node_["filename"]  = info->filename_stripped();
-  node_["args"]      = info->args_stripped();
+  node_["state"] = info->state;
+  node_["sname"] = info->sname;
+  node_["zombie"] = info->zombie;
+  node_["flag"] = info->flag;
+  node_["uid"] = info->uid;
+  node_["gid"] = info->gid;
+  node_["pid"] = info->pid;
+  node_["ppid"] = info->ppid;
+  node_["pgrp"] = info->pgrp;
+  node_["sid"] = info->sid;
+  node_["filename"] = info->filename_stripped();
+  node_["args"] = info->args_stripped();
 }

 void JsonVisitor::visit(const CorePrStatus& pstatus) {
   visit(static_cast<const Note&>(pstatus));
   const CorePrStatus::pr_status_t& status = pstatus.status();
   node_["current_sig"] = status.cursig;
-  node_["sigpend"]     = status.sigpend;
-  node_["sighold"]     = status.sighold;
-  node_["pid"]         = status.pid;
-  node_["ppid"]        = status.ppid;
-  node_["pgrp"]        = status.pgrp;
-  node_["sid"]         = status.sid;
-  node_["sigpend"]     = status.sigpend;
-
-  node_["utime"] = {
-    {"tv_sec",  status.utime.sec},
-    {"tv_usec", status.utime.usec}
-  };
-
-  node_["stime"] = {
-    {"tv_sec",  status.stime.sec},
-    {"tv_usec", status.stime.sec}
-  };
-
-  node_["stime"] = {
-    {"tv_sec",  status.stime.sec},
-    {"tv_usec", status.stime.usec}
-  };
+  node_["sigpend"] = status.sigpend;
+  node_["sighold"] = status.sighold;
+  node_["pid"] = status.pid;
+  node_["ppid"] = status.ppid;
+  node_["pgrp"] = status.pgrp;
+  node_["sid"] = status.sid;
+  node_["sigpend"] = status.sigpend;
+
+  node_["utime"] = {{"tv_sec", status.utime.sec}, {"tv_usec", status.utime.usec}};
+
+  node_["stime"] = {{"tv_sec", status.stime.sec}, {"tv_usec", status.stime.sec}};
+
+  node_["stime"] = {{"tv_sec", status.stime.sec}, {"tv_usec", status.stime.usec}};

   std::vector<uint64_t> reg_vals = pstatus.register_values();
   if (!reg_vals.empty()) {
     json regs;
     switch (pstatus.architecture()) {
       case ARCH::I386:
-        {
-          for (size_t i = 0; i < reg_vals.size(); ++i) {
-            regs[to_string(CorePrStatus::Registers::X86(i))] = reg_vals[i];
-          }
-          break;
+      {
+        for (size_t i = 0; i < reg_vals.size(); ++i) {
+          regs[to_string(CorePrStatus::Registers::X86(i))] = reg_vals[i];
         }
+        break;
+      }
       case ARCH::X86_64:
-        {
-          for (size_t i = 0; i < reg_vals.size(); ++i) {
-            regs[to_string(CorePrStatus::Registers::X86_64(i))] = reg_vals[i];
-          }
-          break;
+      {
+        for (size_t i = 0; i < reg_vals.size(); ++i) {
+          regs[to_string(CorePrStatus::Registers::X86_64(i))] = reg_vals[i];
         }
+        break;
+      }
       case ARCH::ARM:
-        {
-          for (size_t i = 0; i < reg_vals.size(); ++i) {
-            regs[to_string(CorePrStatus::Registers::ARM(i))] = reg_vals[i];
-          }
-          break;
+      {
+        for (size_t i = 0; i < reg_vals.size(); ++i) {
+          regs[to_string(CorePrStatus::Registers::ARM(i))] = reg_vals[i];
         }
+        break;
+      }
       case ARCH::AARCH64:
-        {
-          for (size_t i = 0; i < reg_vals.size(); ++i) {
-            regs[to_string(CorePrStatus::Registers::AARCH64(i))] = reg_vals[i];
-          }
-          break;
+      {
+        for (size_t i = 0; i < reg_vals.size(); ++i) {
+          regs[to_string(CorePrStatus::Registers::AARCH64(i))] = reg_vals[i];
         }
+        break;
+      }
       default:
-        {
-          regs = reg_vals;
-        }
+      {
+        regs = reg_vals;
+      }
     }
     node_["regs"] = regs;
   }
@@ -506,12 +526,10 @@ void JsonVisitor::visit(const CoreFile& file) {
   visit(static_cast<const Note&>(file));
   std::vector<json> files;
   for (const CoreFile::entry_t& entry : file.files()) {
-    const json file = {
-      {"start",    entry.start},
-      {"end",      entry.end},
-      {"file_ofs", entry.file_ofs},
-      {"path",     entry.path}
-    };
+    const json file = {{"start", entry.start},
+                       {"end", entry.end},
+                       {"file_ofs", entry.file_ofs},
+                       {"path", entry.path}};
     files.emplace_back(file);
   }
   node_["files"] = files;
@@ -535,25 +553,22 @@ void JsonVisitor::visit(const QNXStack& note) {


 void JsonVisitor::visit(const GnuHash& gnuhash) {
-  node_["nb_buckets"]    = gnuhash.nb_buckets();
-  node_["symbol_index"]  = gnuhash.symbol_index();
-  node_["shift2"]        = gnuhash.shift2();
-  node_["maskwords"]     = gnuhash.maskwords();
+  node_["nb_buckets"] = gnuhash.nb_buckets();
+  node_["symbol_index"] = gnuhash.symbol_index();
+  node_["shift2"] = gnuhash.shift2();
+  node_["maskwords"] = gnuhash.maskwords();
   node_["bloom_filters"] = gnuhash.bloom_filters();
-  node_["buckets"]       = gnuhash.buckets();
-  node_["hash_values"]   = gnuhash.hash_values();
+  node_["buckets"] = gnuhash.buckets();
+  node_["hash_values"] = gnuhash.hash_values();
 }


 void JsonVisitor::visit(const SysvHash& sysvhash) {
   node_["nbucket"] = sysvhash.nbucket();
-  node_["nchain"]  = sysvhash.nchain();
+  node_["nchain"] = sysvhash.nchain();
   node_["buckets"] = sysvhash.buckets();
-  node_["chains"]  = sysvhash.chains();
+  node_["chains"] = sysvhash.chains();
 }


-
-} // namespace ELF
-} // namespace LIEF
-
+} // namespace LIEF::ELF
diff --git a/deps/LIEF/src/ELF/json_api.cpp b/deps/LIEF/src/ELF/json_api.cpp
index 8ba14606d69..63213fb7f05 100644
--- a/deps/LIEF/src/ELF/json_api.cpp
+++ b/deps/LIEF/src/ELF/json_api.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -38,4 +38,3 @@ std::string to_json([[maybe_unused]] const Object& v) {

 } // namespace ELF
 } // namespace LIEF
-
diff --git a/deps/LIEF/src/ELF/json_internal.hpp b/deps/LIEF/src/ELF/json_internal.hpp
index a36034b082a..ea5bae7b783 100644
--- a/deps/LIEF/src/ELF/json_internal.hpp
+++ b/deps/LIEF/src/ELF/json_internal.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -16,12 +16,9 @@
 #ifndef LIEF_ELF_JSON_INTERNAL_H
 #define LIEF_ELF_JSON_INTERNAL_H

-#include "LIEF/visibility.h"
 #include "visitors/json.hpp"
-#include "LIEF/ELF.hpp"

-namespace LIEF {
-namespace ELF {
+namespace LIEF::ELF {

 class AndroidIdent;
 class Binary;
@@ -61,38 +58,38 @@ class JsonVisitor : public LIEF::JsonVisitor {
   using LIEF::JsonVisitor::JsonVisitor;

   public:
-  void visit(const Binary& binary)                  override;
-  void visit(const Header& header)                  override;
-  void visit(const Section& section)                override;
-  void visit(const Segment& segment)                override;
-  void visit(const DynamicEntry& entry)             override;
-  void visit(const DynamicEntryArray& entry)        override;
-  void visit(const DynamicEntryLibrary& entry)      override;
-  void visit(const DynamicEntryRpath& entry)        override;
-  void visit(const DynamicEntryRunPath& entry)      override;
-  void visit(const DynamicSharedObject& entry)      override;
-  void visit(const DynamicEntryFlags& entry)        override;
-  void visit(const Symbol& symbol)                  override;
-  void visit(const Relocation& relocation)          override;
-  void visit(const SymbolVersion& sv)               override;
-  void visit(const SymbolVersionAux& sv)            override;
+  void visit(const Binary& binary) override;
+  void visit(const Header& header) override;
+  void visit(const Section& section) override;
+  void visit(const Segment& segment) override;
+  void visit(const DynamicEntry& entry) override;
+  void visit(const DynamicEntryArray& entry) override;
+  void visit(const DynamicEntryLibrary& entry) override;
+  void visit(const DynamicEntryRpath& entry) override;
+  void visit(const DynamicEntryRunPath& entry) override;
+  void visit(const DynamicSharedObject& entry) override;
+  void visit(const DynamicEntryFlags& entry) override;
+  void visit(const Symbol& symbol) override;
+  void visit(const Relocation& relocation) override;
+  void visit(const SymbolVersion& sv) override;
+  void visit(const SymbolVersionAux& sv) override;
   void visit(const SymbolVersionAuxRequirement& sv) override;
-  void visit(const SymbolVersionRequirement& svr)   override;
-  void visit(const SymbolVersionDefinition& svd)    override;
-  void visit(const Note& note)                      override;
-  void visit(const NoteAbi& note)                   override;
-  void visit(const NoteGnuProperty& note)           override;
-  void visit(const QNXStack& note)                  override;
-  void visit(const AndroidIdent& note)              override;
-  void visit(const CorePrPsInfo& pinfo)             override;
-  void visit(const CorePrStatus& pstatus)           override;
-  void visit(const CoreAuxv& auxv)                  override;
-  void visit(const CoreSigInfo& siginfo)            override;
-  void visit(const CoreFile& file)                  override;
-  void visit(const GnuHash& gnuhash)                override;
-  void visit(const SysvHash& sysvhash)              override;
+  void visit(const SymbolVersionRequirement& svr) override;
+  void visit(const SymbolVersionDefinition& svd) override;
+  void visit(const Note& note) override;
+  void visit(const NoteAbi& note) override;
+  void visit(const NoteGnuProperty& note) override;
+  void visit(const QNXStack& note) override;
+  void visit(const AndroidIdent& note) override;
+  void visit(const CorePrPsInfo& pinfo) override;
+  void visit(const CorePrStatus& pstatus) override;
+  void visit(const CoreAuxv& auxv) override;
+  void visit(const CoreSigInfo& siginfo) override;
+  void visit(const CoreFile& file) override;
+  void visit(const GnuHash& gnuhash) override;
+  void visit(const SysvHash& sysvhash) override;
 };

 }
-}
+
 #endif
diff --git a/deps/LIEF/src/ELF/layout_check.cpp b/deps/LIEF/src/ELF/layout_check.cpp
new file mode 100644
index 00000000000..b3728744223
--- /dev/null
+++ b/deps/LIEF/src/ELF/layout_check.cpp
@@ -0,0 +1,673 @@
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
+ *
+ * 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.
+ */
+#include "LIEF/ELF/Binary.hpp"
+#include "LIEF/ELF/Header.hpp"
+#include "LIEF/ELF/Segment.hpp"
+#include "LIEF/ELF/Section.hpp"
+#include "LIEF/ELF/Symbol.hpp"
+#include "LIEF/ELF/DynamicEntry.hpp"
+#include "LIEF/ELF/Note.hpp"
+#include "LIEF/ELF/utils.hpp"
+#include "LIEF/ELF/SysvHash.hpp"
+#include "ELF/Structures.hpp"
+
+#include <spdlog/fmt/fmt.h>
+#include <algorithm>
+
+
+namespace LIEF::ELF {
+
+class LayoutChecker {
+  public:
+  static constexpr uint32_t DEFAULT_PAGE_SIZE = 0x1000;
+
+  LayoutChecker() = delete;
+  LayoutChecker(const Binary& bin) :
+    elf(bin),
+    filesz(elf.original_size()) {}
+
+  bool check_header();
+  bool check_segments();
+  bool check_sections();
+  bool check_dynamic();
+  bool check_notes();
+  bool check_tls();
+  bool check_mips_rld_map();
+
+  bool check() {
+    if (!check_header()) {
+      return false;
+    }
+    if (!check_segments()) {
+      return false;
+    }
+    if (!check_sections()) {
+      return false;
+    }
+    if (!check_dynamic()) {
+      return false;
+    }
+    if (!check_mips_rld_map()) {
+      return false;
+    }
+    if (!check_notes()) {
+      return false;
+    }
+    if (!check_tls()) {
+      return false;
+    }
+    return true;
+  }
+
+  bool error(std::string msg) {
+    error_msg = std::move(msg);
+    return false;
+  }
+
+  template<typename... Args>
+  bool error(const char* fmt, const Args&... args) {
+    error_msg = fmt::format(fmt::runtime(fmt), args...);
+    return false;
+  }
+
+  const std::string& get_error() const {
+    return error_msg;
+  }
+
+  bool is64() const {
+    return elf.header().identity_class() == Header::CLASS::ELF64;
+  }
+
+  private:
+  std::string error_msg;
+  const Binary& elf;
+  uint64_t filesz;
+};
+
+bool LayoutChecker::check_header() {
+  const Header& hdr = elf.header();
+
+  const uint32_t ehdr_size =
+      is64() ? sizeof(details::Elf64_Ehdr) : sizeof(details::Elf32_Ehdr);
+  if (filesz < ehdr_size) {
+    return error("File size ({:#x}) is too small for ELF header ({:#x})", filesz,
+                 ehdr_size);
+  }
+
+  if (hdr.identity_version() != Header::VERSION::CURRENT) {
+    return error("Invalid ELF version: {}", (int)hdr.identity_version());
+  }
+
+  if (hdr.identity_class() == Header::CLASS::NONE) {
+    return error("Invalid ELF class");
+  }
+
+  if (hdr.file_type() == Header::FILE_TYPE::NONE) {
+    return error("Invalid ELF type (ET_NONE)");
+  }
+
+  const uint32_t phdr_size =
+      is64() ? sizeof(details::Elf64_Phdr) : sizeof(details::Elf32_Phdr);
+  const uint32_t phnum = hdr.numberof_segments();
+  if (phnum > 0) {
+    const uint64_t phoff = hdr.program_headers_offset();
+    const uint64_t pht_size = (uint64_t)phnum * phdr_size;
+
+    if (phoff + pht_size > filesz) {
+      return error(
+          "Program header table (offset: {:#x}, size: {:#x}) is beyond file size",
+          phoff, pht_size
+      );
+    }
+
+    // Required by Android
+    if (phoff % elf.ptr_size() != 0) {
+      return error("phoff offset ({:#010x}) misaligned", phoff);
+    }
+
+    if (phnum > (std::numeric_limits<uint16_t>::max() / phdr_size)) {
+      return error("Too many program headers: {}", phnum);
+    }
+  }
+
+  const uint32_t shdr_size =
+      is64() ? sizeof(details::Elf64_Shdr) : sizeof(details::Elf32_Shdr);
+  const uint32_t shnum = hdr.numberof_sections();
+  if (shnum > 0) {
+    const uint64_t shoff = hdr.section_headers_offset();
+    const uint64_t sht_size = (uint64_t)shnum * shdr_size;
+    if (shoff + sht_size > filesz) {
+      return error(
+          "Section header table (offset: {:#x}, size: {:#x}) is beyond file size",
+          shoff, sht_size
+      );
+    }
+
+    // Required by Android
+    if (shoff % elf.ptr_size() != 0) {
+      return error("shdr offset ({:#010x}) misaligned", shoff);
+    }
+
+    if (hdr.section_name_table_idx() >= shnum) {
+      return error("Invalid section name table index: {}",
+                   hdr.section_name_table_idx());
+    }
+  }
+
+  // Android specific checks if targeting Android
+  if (elf.is_targeting_android()) {
+    if (hdr.identity_data() != Header::ELF_DATA::LSB) {
+      return error("Android ELF must be little-endian");
+    }
+    if (hdr.file_type() != Header::FILE_TYPE::DYN) {
+      return error("Android ELF must be ET_DYN (PIE or shared library)");
+    }
+  }
+
+  return true;
+}
+
+bool LayoutChecker::check_segments() {
+  bool has_pt_load = false;
+  auto segments = elf.segments();
+
+  const Segment* pt_phdr = nullptr;
+
+  for (size_t i = 0; i < segments.size(); ++i) {
+    const Segment& seg = segments[i];
+
+    if (seg.file_offset() + seg.physical_size() > filesz) {
+      return error("Segment[{}] offset ({:#x}) + filesz ({:#x}) is beyond file "
+                   "size ({:#x})",
+                   i, seg.file_offset(), seg.physical_size(), filesz);
+    }
+
+    if (seg.virtual_size() < seg.physical_size()) {
+      return error("Segment[{}] memsz ({:#x}) is smaller than filesz ({:#x})", i,
+                   seg.virtual_size(), seg.physical_size());
+    }
+
+    const uint64_t alignment = seg.alignment();
+    if (alignment > 1 && (alignment & (alignment - 1)) != 0) {
+      return error("Segment[{}] alignment ({:#x}) is not a power of 2", i,
+                   alignment);
+    }
+
+    if (seg.type() == Segment::TYPE::PHDR) {
+      pt_phdr = &seg;
+    }
+
+    if (seg.type() == Segment::TYPE::LOAD) {
+      has_pt_load = true;
+      if (alignment > 1) {
+        if ((seg.virtual_address() % alignment) != (seg.file_offset() % alignment))
+        {
+          return error(
+              "Segment[{}] (PT_LOAD) p_vaddr ({:#x}) and p_offset ({:#x}) "
+              "are not congruent modulo p_align ({:#x})",
+              i, seg.virtual_address(), seg.file_offset(), alignment
+          );
+        }
+      }
+
+      // Android W+E check
+      if (elf.is_targeting_android()) {
+        if (seg.has(Segment::FLAGS::W) && seg.has(Segment::FLAGS::X)) {
+          return error("Segment[{}] (PT_LOAD) is both writable and executable", i);
+        }
+      }
+
+      // Overlap check for PT_LOAD
+      for (size_t j = i + 1; j < segments.size(); ++j) {
+        const Segment& other = segments[j];
+        if (other.type() != Segment::TYPE::LOAD) {
+          continue;
+        }
+
+        const uint64_t start1 = seg.virtual_address();
+        const uint64_t end1 = seg.virtual_address() + seg.virtual_size();
+        const uint64_t start2 = other.virtual_address();
+        const uint64_t end2 = other.virtual_address() + other.virtual_size();
+
+        if (std::max(start1, start2) < std::min(end1, end2)) {
+          return error("Segment[{}] and Segment[{}] (PT_LOAD) overlap in memory",
+                       i, j);
+        }
+      }
+    }
+  }
+
+  if (!has_pt_load) {
+    return error("No loadable segments (PT_LOAD)");
+  }
+
+  // PT_PHDR must be wrapped by a PT_LOAD
+  if (pt_phdr != nullptr) {
+    bool wrapped = false;
+    for (const Segment& seg : segments) {
+      if (seg.type() != Segment::TYPE::LOAD) {
+        continue;
+      }
+      if (seg.virtual_address() <= pt_phdr->virtual_address() &&
+          (pt_phdr->virtual_address() + pt_phdr->virtual_size()) <=
+              (seg.virtual_address() + seg.physical_size()))
+      {
+        wrapped = true;
+        break;
+      }
+    }
+    if (!wrapped) {
+      return error("PT_PHDR segment is not wrapped by a PT_LOAD segment");
+    }
+  } else {
+    // If no PT_PHDR, program headers are usually at the beginning of the first
+    // PT_LOAD (offset 0) Linker checks this in FindPhdr()
+    bool found_pht_in_load = false;
+    const uint64_t pht_offset = elf.header().program_headers_offset();
+    const uint32_t phdr_size =
+        is64() ? sizeof(details::Elf64_Phdr) : sizeof(details::Elf32_Phdr);
+    const uint64_t pht_size =
+        (uint64_t)elf.header().numberof_segments() * phdr_size;
+
+    for (const Segment& seg : segments) {
+      if (seg.type() != Segment::TYPE::LOAD) {
+        continue;
+      }
+      if (seg.file_offset() <= pht_offset &&
+          (pht_offset + pht_size) <= (seg.file_offset() + seg.physical_size()))
+      {
+        found_pht_in_load = true;
+        break;
+      }
+    }
+    if (!found_pht_in_load) {
+      return error("Program header table is not wrapped by a PT_LOAD segment");
+    }
+  }
+
+  return true;
+}
+
+bool LayoutChecker::check_sections() {
+  const uint64_t filesz = elf.original_size();
+  auto sections = elf.sections();
+  const Section* dynamic_sec = nullptr;
+  const Section* dynsym_sec = nullptr;
+
+  for (size_t i = 0; i < sections.size(); ++i) {
+    const Section& sec = sections[i];
+    if (sec.type() == Section::TYPE::DYNAMIC) {
+      dynamic_sec = &sec;
+    }
+
+    if (sec.type() == Section::TYPE::DYNSYM) {
+      if (dynsym_sec != nullptr) {
+        return error("Multiple SHT_DYNSYM sections found");
+      }
+      dynsym_sec = &sec;
+    }
+
+    if (sec.type() == Section::TYPE::NOBITS) {
+      continue;
+    }
+
+    if (sec.offset() + sec.size() > filesz) {
+      return error("Section[{}] ('{}') offset ({:#x}) + size ({:#x}) is beyond "
+                   "file size ({:#x})",
+                   i, sec.name(), sec.offset(), sec.size(), filesz);
+    }
+
+    // sh_entsize checks
+    uint64_t expected_entsize = 0;
+    switch (sec.type()) {
+      case Section::TYPE::SYMTAB:
+      case Section::TYPE::DYNSYM:
+        expected_entsize =
+            is64() ? sizeof(details::Elf64_Sym) : sizeof(details::Elf32_Sym);
+        break;
+      case Section::TYPE::DYNAMIC:
+        expected_entsize =
+            is64() ? sizeof(details::Elf64_Dyn) : sizeof(details::Elf32_Dyn);
+        break;
+      case Section::TYPE::REL:
+        expected_entsize =
+            is64() ? sizeof(details::Elf64_Rel) : sizeof(details::Elf32_Rel);
+        break;
+      case Section::TYPE::RELA:
+        expected_entsize =
+            is64() ? sizeof(details::Elf64_Rela) : sizeof(details::Elf32_Rela);
+        break;
+      case Section::TYPE::GROUP:
+      case Section::TYPE::SYMTAB_SHNDX: expected_entsize = sizeof(uint32_t); break;
+      default: break;
+    }
+
+    if (expected_entsize > 0 && sec.entry_size() != expected_entsize) {
+      return error(
+          "Section[{}] ('{}') has invalid sh_entsize: {:#x} (expected: {:#x})", i,
+          sec.name(), sec.entry_size(), expected_entsize
+      );
+    }
+
+    if (sec.entry_size() > 0 && (sec.size() % sec.entry_size()) != 0) {
+      return error("Section[{}] ('{}') size ({:#x}) is not a multiple of "
+                   "sh_entsize ({:#x})",
+                   i, sec.name(), sec.size(), sec.entry_size());
+    }
+
+    // sh_link checks
+    switch (sec.type()) {
+      case Section::TYPE::DYNAMIC:
+      case Section::TYPE::SYMTAB:
+      case Section::TYPE::DYNSYM:
+        if (sec.link() >= sections.size()) {
+          return error("Section[{}] ('{}') has invalid sh_link: {}", i, sec.name(),
+                       sec.link());
+        }
+        {
+          const Section& strtab = sections[sec.link()];
+          if (strtab.type() != Section::TYPE::STRTAB) {
+            return error("Section[{}] ('{}') has invalid sh_link: {} (expected "
+                         "SHT_STRTAB, but got {})",
+                         i, sec.name(), sec.link(), to_string(strtab.type()));
+          }
+        }
+        break;
+      case Section::TYPE::REL:
+      case Section::TYPE::RELA:
+      case Section::TYPE::HASH:
+      case Section::TYPE::GNU_HASH:
+        if (sec.link() >= sections.size()) {
+          return error("Section[{}] ('{}') has invalid sh_link: {}", i, sec.name(),
+                       sec.link());
+        }
+        break;
+      default: break;
+    }
+
+    // sh_info checks
+    switch (sec.type()) {
+      case Section::TYPE::SYMTAB:
+      case Section::TYPE::DYNSYM:
+        if (sec.entry_size() > 0 &&
+            sec.information() > sec.size() / sec.entry_size())
+        {
+          return error("Section[{}] ('{}') has invalid sh_info: {} (larger than "
+                       "symbol count {})",
+                       i, sec.name(), sec.information(),
+                       sec.size() / sec.entry_size());
+        }
+        break;
+      default: break;
+    }
+  }
+
+  if (const Segment* pt_dynamic = elf.get(Segment::TYPE::DYNAMIC)) {
+    if (dynamic_sec != nullptr) {
+      if (dynamic_sec->offset() != pt_dynamic->file_offset()) {
+        return error("SHT_DYNAMIC section header and PT_DYNAMIC program header "
+                     "disagree about "
+                     "the location of the dynamic table: section offset {:#x} vs "
+                     "segment offset {:#x}",
+                     dynamic_sec->offset(), pt_dynamic->file_offset());
+      }
+      if (dynamic_sec->size() != pt_dynamic->physical_size()) {
+        return error("SHT_DYNAMIC section header and PT_DYNAMIC program header "
+                     "disagree about "
+                     "the size of the dynamic table: section size {:#x} vs "
+                     "segment size {:#x}",
+                     dynamic_sec->size(), pt_dynamic->physical_size());
+      }
+    }
+
+    // Android specific: .dynamic section header must exist if PT_DYNAMIC exists
+    if (elf.is_targeting_android()) {
+      if (dynamic_sec == nullptr) {
+        return error(".dynamic section header was not found");
+      }
+      if (dynamic_sec->link() >= sections.size()) {
+        return error(".dynamic section has invalid sh_link: {}",
+                     dynamic_sec->link());
+      }
+      const Section& strtab = sections[dynamic_sec->link()];
+      if (strtab.type() != Section::TYPE::STRTAB) {
+        return error(".dynamic section has invalid link({}) sh_type: {} (expected "
+                     "SHT_STRTAB)",
+                     dynamic_sec->link(), (uint32_t)strtab.type());
+      }
+    }
+  }
+
+  return true;
+}
+
+bool LayoutChecker::check_dynamic() {
+  const bool is64 = this->is64();
+  uint64_t relaent = 0;
+  uint64_t relent = 0;
+  uint64_t relasz = 0;
+  uint64_t relsz = 0;
+  uint64_t syment = 0;
+  uint64_t strsz = 0;
+  uint64_t strtab = 0;
+  uint64_t symtab = 0;
+
+  for (const DynamicEntry& entry : elf.dynamic_entries()) {
+    switch (entry.tag()) {
+      case DynamicEntry::TAG::RELAENT: relaent = entry.value(); break;
+      case DynamicEntry::TAG::RELENT: relent = entry.value(); break;
+      case DynamicEntry::TAG::RELASZ: relasz = entry.value(); break;
+      case DynamicEntry::TAG::RELSZ: relsz = entry.value(); break;
+      case DynamicEntry::TAG::SYMENT: syment = entry.value(); break;
+      case DynamicEntry::TAG::STRSZ: strsz = entry.value(); break;
+      case DynamicEntry::TAG::STRTAB: strtab = entry.value(); break;
+      case DynamicEntry::TAG::SYMTAB: symtab = entry.value(); break;
+      case DynamicEntry::TAG::PLTREL:
+      {
+        uint64_t val = entry.value();
+        if (val != (uint64_t)DynamicEntry::TAG::REL &&
+            val != (uint64_t)DynamicEntry::TAG::RELA)
+        {
+          return error("Invalid DT_PLTREL value: {}", val);
+        }
+        break;
+      }
+      default: break;
+    }
+  }
+
+  if (relaent > 0) {
+    const uint64_t expected =
+        is64 ? sizeof(details::Elf64_Rela) : sizeof(details::Elf32_Rela);
+    if (relaent != expected) {
+      return error("DT_RELAENT ({:#x}) does not match expected size ({:#x})",
+                   relaent, expected);
+    }
+  }
+  if (relent > 0) {
+    const uint64_t expected =
+        is64 ? sizeof(details::Elf64_Rel) : sizeof(details::Elf32_Rel);
+    if (relent != expected) {
+      return error("DT_RELENT ({:#x}) does not match expected size ({:#x})",
+                   relent, expected);
+    }
+  }
+
+  if (relasz > 0 && relaent > 0 && (relasz % relaent) != 0) {
+    return error("DT_RELASZ ({:#x}) is not a multiple of DT_RELAENT ({:#x})",
+                 relasz, relaent);
+  }
+
+  if (relsz > 0 && relent > 0 && (relsz % relent) != 0) {
+    return error("DT_RELSZ ({:#x}) is not a multiple of DT_RELENT ({:#x})", relsz,
+                 relent);
+  }
+
+  if (syment > 0) {
+    const uint64_t expected =
+        is64 ? sizeof(details::Elf64_Sym) : sizeof(details::Elf32_Sym);
+    if (syment != expected) {
+      return error("DT_SYMENT ({:#x}) does not match expected size ({:#x})",
+                   syment, expected);
+    }
+  }
+
+  if (strtab > 0 && strsz > 0) {
+    if (result<uint64_t> res = elf.virtual_address_to_offset(strtab)) {
+      uint64_t offset = *res;
+      if (offset + strsz > filesz) {
+        return error("Dynamic string table (offset: {:#x}, size: {:#x}) goes "
+                     "past the end of the file (size: {:#x})",
+                     offset, strsz, filesz);
+      }
+    }
+  }
+
+  if (symtab > 0) {
+    const Section* dynsym = elf.get(Section::TYPE::DYNSYM);
+    if (dynsym != nullptr && dynsym->virtual_address() != symtab) {
+      return error("SHT_DYNSYM section header and DT_SYMTAB disagree about "
+                   "the location of the dynamic symbol table: section VA {:#x} "
+                   "vs dynamic VA {:#x}",
+                   dynsym->virtual_address(), symtab);
+    }
+  }
+
+  if (elf.use_sysv_hash()) {
+    const SysvHash* hash = elf.sysv_hash();
+    const Section* dynsym = elf.get(Section::TYPE::DYNSYM);
+    if (dynsym != nullptr && dynsym->entry_size() > 0) {
+      uint64_t dynsym_count = dynsym->size() / dynsym->entry_size();
+      if (hash->nchain() != dynsym_count) {
+        return error("hash table nchain ({}) differs from symbol count derived "
+                     "from SHT_DYNSYM section header ({})",
+                     hash->nchain(), dynsym_count);
+      }
+    }
+  }
+
+  return true;
+}
+
+bool LayoutChecker::check_mips_rld_map() {
+  // DT_MIPS_RLD_MAP_REL stores the offset of the run-time loader map
+  // **relative** to the address of its own dynamic entry.
+  // When `DT_MIPS_RLD_MAP` is also present (absolute version)
+  // both tags must reference the same address
+  const bool is64 = this->is64();
+
+  const DynamicEntry* rld_map_rel = elf.get(DynamicEntry::TAG::MIPS_RLD_MAP_REL);
+  if (rld_map_rel == nullptr) {
+    return true;
+  }
+  const DynamicEntry* rld_map = elf.get(DynamicEntry::TAG::MIPS_RLD_MAP);
+  const Segment* pt_dynamic = elf.get(Segment::TYPE::DYNAMIC);
+
+  if (rld_map == nullptr || pt_dynamic == nullptr) {
+    return true;
+  }
+
+  const uint64_t dynent_size =
+      is64 ? sizeof(details::Elf64_Dyn) : sizeof(details::Elf32_Dyn);
+
+  uint64_t index = 0;
+  for (const DynamicEntry& entry : elf.dynamic_entries()) {
+    if (entry.tag() == DynamicEntry::TAG::MIPS_RLD_MAP_REL) {
+      break;
+    }
+    ++index;
+  }
+
+  const uint64_t entry_va = pt_dynamic->virtual_address() + index * dynent_size;
+  uint64_t resolved = entry_va + rld_map_rel->value();
+  if (!is64) {
+    resolved &= 0xffffffff;
+  }
+
+  if (resolved != rld_map->value()) {
+    return error("DT_MIPS_RLD_MAP_REL resolves to {:#x} but DT_MIPS_RLD_MAP "
+                 "points to {:#x}",
+                 resolved, rld_map->value());
+  }
+  return true;
+}
+
+bool LayoutChecker::check_notes() {
+  const uint64_t filesz = elf.original_size();
+  for (const Segment& seg : elf.segments()) {
+    if (seg.type() != Segment::TYPE::NOTE) {
+      continue;
+    }
+    if (seg.physical_size() == 0) {
+      continue;
+    }
+
+    if (seg.file_offset() + seg.physical_size() > filesz) {
+      return error("PT_NOTE segment runs off end of file");
+    }
+    if (seg.physical_size() != seg.virtual_size()) {
+      return error("PT_NOTE segment p_filesz ({:#x}) != p_memsz ({:#x})",
+                   seg.physical_size(), seg.virtual_size());
+    }
+  }
+  return true;
+}
+
+bool LayoutChecker::check_tls() {
+  const Segment* tls_seg = nullptr;
+  for (const Segment& seg : elf.segments()) {
+    if (seg.type() == Segment::TYPE::TLS) {
+      if (tls_seg != nullptr) {
+        return error("Multiple PT_TLS segments");
+      }
+      tls_seg = &seg;
+    }
+  }
+
+  if (tls_seg == nullptr) {
+    return true;
+  }
+
+  for (const Symbol& sym : elf.symbols()) {
+    if (sym.type() != Symbol::TYPE::TLS) {
+      continue;
+    }
+
+    uint64_t addr = sym.value();
+    if (addr > tls_seg->virtual_size() ||
+        (addr + sym.size()) > tls_seg->virtual_size())
+    {
+      return error("TLS symbol {:#010}: {} out of PT_TLS segment range"
+                   "([{:#010x}, {:#010x}])",
+                   sym.value(), sym.name(), 0, tls_seg->virtual_size());
+    }
+  }
+
+  return true;
+}
+
+bool check_layout(const Binary& bin, std::string* error_info) {
+  LayoutChecker checker(bin);
+  if (!checker.check()) {
+    if (error_info != nullptr) {
+      *error_info = checker.get_error();
+    }
+    return false;
+  }
+  return true;
+}
+
+}
diff --git a/deps/LIEF/src/ELF/structures.inc b/deps/LIEF/src/ELF/structures.inc
index 5c9e503b1c3..30fe72cb8d0 100644
--- a/deps/LIEF/src/ELF/structures.inc
+++ b/deps/LIEF/src/ELF/structures.inc
@@ -1,17 +1,17 @@
-typedef uint32_t Elf32_Addr;
-typedef uint32_t Elf32_Off;
-typedef uint16_t Elf32_Half;
-typedef uint32_t Elf32_Word;
-typedef int32_t  Elf32_Sword;
-
-typedef uint64_t Elf64_Addr;
-typedef uint64_t Elf64_Off;
-typedef uint16_t Elf64_Half;
-typedef uint32_t Elf64_Word;
-typedef int32_t  Elf64_Sword;
-
-typedef uint64_t Elf64_Xword;
-typedef int64_t  Elf64_Sxword;
+using Elf32_Addr = uint32_t;
+using Elf32_Off = uint32_t;
+using Elf32_Half = uint16_t;
+using Elf32_Word = uint32_t;
+using Elf32_Sword = int32_t;
+
+using Elf64_Addr = uint64_t;
+using Elf64_Off = uint64_t;
+using Elf64_Half = uint16_t;
+using Elf64_Word = uint32_t;
+using Elf64_Sword = int32_t;
+
+using Elf64_Xword = uint64_t;
+using Elf64_Sxword = int64_t;


 /** Object file magic string. */
diff --git a/deps/LIEF/src/ELF/utils.cpp b/deps/LIEF/src/ELF/utils.cpp
index 59fdb274840..36a05c043b9 100644
--- a/deps/LIEF/src/ELF/utils.cpp
+++ b/deps/LIEF/src/ELF/utils.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -23,8 +23,8 @@
 #include "LIEF/ELF/utils.hpp"
 #include "ELF/Structures.hpp"

-namespace LIEF {
-namespace ELF {
+
+namespace LIEF::ELF {

 bool is_elf(BinaryStream& stream) {
   using magic_t = std::array<char, sizeof(details::ElfMagic)>;
@@ -53,9 +53,10 @@ bool is_elf(const std::vector<uint8_t>& raw) {

 /// SYSV hash function
 unsigned long hash32(const char* name) {
-  unsigned long h = 0, g;
+  unsigned long h = 0, g = 0;
   while (*name != 0) {
     h = (h << 4) + *name++;
+    // NOLINTNEXTLINE(bugprone-assignment-in-if-condition)
     if ((g = h & 0xf0000000) != 0u) {
       h ^= g >> 24;
     }
@@ -67,9 +68,10 @@ unsigned long hash32(const char* name) {
 /// SYSV hash function
 /// https://blogs.oracle.com/ali/entry/gnu_hash_elf_sections
 unsigned long hash64(const char* name) {
-  unsigned long h = 0, g;
+  unsigned long h = 0, g = 0;
   while (*name != 0) {
     h = (h << 4) + *name++;
+    // NOLINTNEXTLINE(bugprone-assignment-in-if-condition)
     if ((g = h & 0xf0000000) != 0u) {
       h ^= g >> 24;
     }
@@ -88,5 +90,4 @@ uint32_t dl_new_hash(const char* name) {
   return h & 0xffffffff;
 }

-} // namespace ELF
-} // namespace LIEF
+} // namespace LIEF::ELF
diff --git a/deps/LIEF/src/MachO/AtomInfo.cpp b/deps/LIEF/src/MachO/AtomInfo.cpp
index 3a593c73721..6fffb4949d7 100644
--- a/deps/LIEF/src/MachO/AtomInfo.cpp
+++ b/deps/LIEF/src/MachO/AtomInfo.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -19,18 +19,17 @@
 #include "LIEF/MachO/AtomInfo.hpp"
 #include "MachO/Structures.hpp"

-namespace LIEF {
-namespace MachO {
+
+namespace LIEF::MachO {

 AtomInfo::AtomInfo() :
-  LoadCommand(LoadCommand::TYPE::ATOM_INFO, sizeof(details::linkedit_data_command))
-{}
+  LoadCommand(LoadCommand::TYPE::ATOM_INFO,
+              sizeof(details::linkedit_data_command)) {}

 AtomInfo::AtomInfo(const details::linkedit_data_command& cmd) :
   LoadCommand::LoadCommand{LoadCommand::TYPE(cmd.cmd), cmd.cmdsize},
   data_offset_{cmd.dataoff},
-  data_size_{cmd.datasize}
-{}
+  data_size_{cmd.datasize} {}

 void AtomInfo::accept(Visitor& visitor) const {
   visitor.visit(*this);
@@ -38,11 +37,10 @@ void AtomInfo::accept(Visitor& visitor) const {

 std::ostream& AtomInfo::print(std::ostream& os) const {
   LoadCommand::print(os) << '\n';
-  os << fmt::format("offset=0x{:06}, size=0x{:06x}",
-                     data_offset(), data_size()) << '\n';
+  os << fmt::format("offset={:#08x}, size={:#08x}", data_offset(), data_size())
+     << '\n';
   return os;
 }


 }
-}
diff --git a/deps/LIEF/src/MachO/Binary.cpp b/deps/LIEF/src/MachO/Binary.cpp
index f4b92f1d97a..4e41b800c7f 100644
--- a/deps/LIEF/src/MachO/Binary.cpp
+++ b/deps/LIEF/src/MachO/Binary.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -19,7 +19,6 @@

 #include "Object.tcc"
 #include "Binary.tcc"
-#include "paging.hpp"

 #include "LIEF/Visitor.hpp"
 #include "LIEF/utils.hpp"
@@ -45,6 +44,7 @@
 #include "LIEF/MachO/FunctionStarts.hpp"
 #include "LIEF/MachO/FunctionVariants.hpp"
 #include "LIEF/MachO/FunctionVariantFixups.hpp"
+#include "LIEF/MachO/LazyLoadDylibInfo.hpp"
 #include "LIEF/MachO/AtomInfo.hpp"
 #include "LIEF/MachO/IndirectBindingInfo.hpp"
 #include "LIEF/MachO/LinkEdit.hpp"
@@ -71,23 +71,22 @@

 #include "internal_utils.hpp"

-namespace LIEF {
-namespace MachO {

-bool Binary::KeyCmp::operator() (const Relocation* lhs, const Relocation* rhs) const {
+namespace LIEF::MachO {
+
+bool Binary::KeyCmp::operator()(const Relocation* lhs,
+                                const Relocation* rhs) const {
   return *lhs < *rhs;
 }

 Binary::Binary() :
-  LIEF::Binary(LIEF::Binary::FORMATS::MACHO)
-{}
+  LIEF::Binary(LIEF::Binary::FORMATS::MACHO) {}

 LIEF::Binary::sections_t Binary::get_abstract_sections() {
   LIEF::Binary::sections_t result;
   it_sections sections = this->sections();
-  std::transform(std::begin(sections), std::end(sections),
-                 std::back_inserter(result),
-                 [] (Section& s) { return &s; });
+  std::transform(sections.begin(), sections.end(), std::back_inserter(result),
+                 [](Section& s) { return &s; });

   return result;
 }
@@ -96,89 +95,91 @@ LIEF::Binary::sections_t Binary::get_abstract_sections() {

 void Binary::patch_address(uint64_t address,
                            const std::vector<uint8_t>& patch_value,
-                           LIEF::Binary::VA_TYPES)
-{
+                           LIEF::Binary::VA_TYPES) {
   // Find the segment associated with the virtual address
   SegmentCommand* segment_topatch = segment_from_virtual_address(address);
   if (segment_topatch == nullptr) {
-    LIEF_ERR("Unable to find segment associated with address: 0x{:x}", address);
+    LIEF_ERR("Unable to find segment associated with address: {:#x}", address);
     return;
   }
   const uint64_t offset = address - segment_topatch->virtual_address();
-  span<uint8_t> content = segment_topatch->writable_content();
+  span<uint8_t> content = segment_topatch->content();
   if (offset > content.size() || (offset + patch_value.size()) > content.size()) {
-    LIEF_ERR("The patch value ({} bytes @0x{:x}) is out of bounds of the segment (limit: 0x{:x})",
+    LIEF_ERR("Patch value ({} bytes @{:#x}) out of segment bounds (limit: {:#x})",
              patch_value.size(), offset, content.size());
     return;
   }
-  std::move(std::begin(patch_value), std::end(patch_value), content.data() + offset);
+  std::move(patch_value.begin(), patch_value.end(), content.data() + offset);
 }

-void Binary::patch_address(uint64_t address, uint64_t patch_value, size_t size, LIEF::Binary::VA_TYPES) {
+void Binary::patch_address(uint64_t address, uint64_t patch_value, size_t size,
+                           LIEF::Binary::VA_TYPES) {
   if (size > sizeof(patch_value)) {
-    LIEF_ERR("Invalid size: 0x{:x}", size);
+    LIEF_ERR("Invalid size: {:#x}", size);
     return;
   }

   SegmentCommand* segment_topatch = segment_from_virtual_address(address);

   if (segment_topatch == nullptr) {
-    LIEF_ERR("Unable to find segment associated with address: 0x{:x}", address);
+    LIEF_ERR("Unable to find segment associated with address: {:#x}", address);
     return;
   }
   const uint64_t offset = address - segment_topatch->virtual_address();
-  span<uint8_t> content = segment_topatch->writable_content();
+  span<uint8_t> content = segment_topatch->content();

   if (offset > content.size() || (offset + size) > content.size()) {
-    LIEF_ERR("The patch value ({} bytes @0x{:x}) is out of bounds of the segment (limit: 0x{:x})",
+    LIEF_ERR("Patch value ({} bytes @{:#x}) out of segment bounds (limit: {:#x})",
              size, offset, content.size());
     return;
   }

   switch (size) {
     case sizeof(uint8_t):
-      {
-        auto X = static_cast<uint8_t>(patch_value);
-        memcpy(content.data() + offset, &X, sizeof(uint8_t));
-        break;
-      }
+    {
+      auto X = static_cast<uint8_t>(patch_value);
+      memcpy(content.data() + offset, &X, sizeof(uint8_t));
+      break;
+    }

     case sizeof(uint16_t):
-      {
-        auto X = static_cast<uint16_t>(patch_value);
-        memcpy(content.data() + offset, &X, sizeof(uint16_t));
-        break;
-      }
+    {
+      auto X = static_cast<uint16_t>(patch_value);
+      memcpy(content.data() + offset, &X, sizeof(uint16_t));
+      break;
+    }

     case sizeof(uint32_t):
-      {
-        auto X = static_cast<uint32_t>(patch_value);
-        memcpy(content.data() + offset, &X, sizeof(uint32_t));
-        break;
-      }
+    {
+      auto X = static_cast<uint32_t>(patch_value);
+      memcpy(content.data() + offset, &X, sizeof(uint32_t));
+      break;
+    }

     case sizeof(uint64_t):
-      {
-        auto X = static_cast<uint64_t>(patch_value);
-        memcpy(content.data() + offset, &X, sizeof(uint64_t));
-        break;
-      }
+    {
+      auto X = static_cast<uint64_t>(patch_value);
+      memcpy(content.data() + offset, &X, sizeof(uint64_t));
+      break;
+    }

     default:
-      {
-        LIEF_ERR("The provided size ({}) does not match the size of an integer", size);
-        return;
-      }
+    {
+      LIEF_ERR("Provided size ({}) does not match integer size", size);
+      return;
+    }
   }
 }

-span<const uint8_t> Binary::get_content_from_virtual_address(
-    uint64_t virtual_address, uint64_t size, LIEF::Binary::VA_TYPES) const
-{
+span<const uint8_t>
+    Binary::get_content_from_virtual_address(uint64_t virtual_address,
+                                             uint64_t size,
+                                             LIEF::Binary::VA_TYPES) const {
   const SegmentCommand* segment = segment_from_virtual_address(virtual_address);

   if (segment == nullptr) {
-    LIEF_ERR("Unable to find segment associated with address: 0x{:x}", virtual_address);
+    LIEF_ERR("Unable to find segment associated with address: {:#x}",
+             virtual_address);
     return {};
   }

@@ -208,18 +209,15 @@ uint64_t Binary::entrypoint() const {
     return imagebase() + cmd->pc();
   }

-  LIEF_WARN("Can't find LC_MAIN nor LC_THREAD/LC_UNIXTHREAD");
+  LIEF_WARN("Neither LC_MAIN nor LC_THREAD/LC_UNIXTHREAD found");
   return 0;
 }

 LIEF::Binary::symbols_t Binary::get_abstract_symbols() {
   LIEF::Binary::symbols_t syms;
   syms.reserve(symbols_.size());
-  std::transform(std::begin(symbols_), std::end(symbols_),
-                 std::back_inserter(syms),
-                 [] (const std::unique_ptr<Symbol>& s) {
-                   return s.get();
-                 });
+  std::transform(symbols_.begin(), symbols_.end(), std::back_inserter(syms),
+                 [](const std::unique_ptr<Symbol>& s) { return s.get(); });
   return syms;
 }

@@ -227,22 +225,20 @@ LIEF::Binary::symbols_t Binary::get_abstract_symbols() {
 LIEF::Binary::functions_t Binary::get_abstract_exported_functions() const {
   LIEF::Binary::functions_t result;
   it_const_exported_symbols syms = exported_symbols();
-  std::transform(std::begin(syms), std::end(syms), std::back_inserter(result),
-    [] (const Symbol& s) {
-      return Function(s.name(), s.value(), Function::FLAGS::EXPORTED);
-    }
-  );
+  std::transform(syms.begin(), syms.end(), std::back_inserter(result),
+                 [](const Symbol& s) {
+                   return Function(s.name(), s.value(), Function::FLAGS::EXPORTED);
+                 });
   return result;
 }

 LIEF::Binary::functions_t Binary::get_abstract_imported_functions() const {
   LIEF::Binary::functions_t result;
   it_const_imported_symbols syms = imported_symbols();
-  std::transform(std::begin(syms), std::end(syms), std::back_inserter(result),
-    [] (const Symbol& s) {
-      return Function(s.name(), s.value(), Function::FLAGS::IMPORTED);
-    }
-  );
+  std::transform(syms.begin(), syms.end(), std::back_inserter(result),
+                 [](const Symbol& s) {
+                   return Function(s.name(), s.value(), Function::FLAGS::IMPORTED);
+                 });
   return result;
 }

@@ -255,48 +251,24 @@ std::vector<std::string> Binary::get_abstract_imported_libraries() const {
   return result;
 }

-// Relocations
-Binary::it_relocations Binary::relocations() {
-  relocations_t result;
-  for (SegmentCommand* segment : segments_) {
-    std::transform(std::begin(segment->relocations_), std::end(segment->relocations_),
-                   std::inserter(result, std::begin(result)),
-                   [] (const std::unique_ptr<Relocation>& r) {
-                     return r.get();
-                   });
-  }
-
-  for (Section* section : sections_) {
-    std::transform(std::begin(section->relocations_), std::end(section->relocations_),
-                   std::inserter(result, std::begin(result)),
-                   [] (const std::unique_ptr<Relocation>& r) {
-                     return r.get();
-                   });
-  }
-
-  relocations_ = std::move(result);
-  return relocations_;
-}
-
 Binary::it_const_relocations Binary::relocations() const {
   relocations_t result;
   for (const SegmentCommand* segment : segments_) {
-    std::transform(std::begin(segment->relocations_), std::end(segment->relocations_),
-                   std::inserter(result, std::begin(result)),
-                   [] (const std::unique_ptr<Relocation>& r) {
-                     return r.get();
-                   });
+    std::transform(segment->relocations_.begin(), segment->relocations_.end(),
+                   std::inserter(result, result.begin()),
+                   [](const std::unique_ptr<Relocation>& r) { return r.get(); });
   }

   for (const Section* section : sections_) {
-    std::transform(std::begin(section->relocations_), std::end(section->relocations_),
-                   std::inserter(result, std::begin(result)),
-                   [] (const std::unique_ptr<Relocation>& r) {
-                     return r.get();
-                   });
+    std::transform(section->relocations_.begin(), section->relocations_.end(),
+                   std::inserter(result, result.begin()),
+                   [](const std::unique_ptr<Relocation>& r) { return r.get(); });
   }

-  relocations_ = std::move(result);
+  {
+    std::scoped_lock lock(mu_);
+    relocations_ = std::move(result);
+  }
   return relocations_;
 }

@@ -327,13 +299,12 @@ bool Binary::is_imported(const Symbol& symbol) {
 }

 const Symbol* Binary::get_symbol(const std::string& name) const {
-  const auto it_symbol = std::find_if(
-      std::begin(symbols_), std::end(symbols_),
-      [&name] (const std::unique_ptr<Symbol>& sym) {
-        return sym->name() == name;
-      });
+  const auto it_symbol = std::find_if(symbols_.begin(), symbols_.end(),
+                                      [&name](const std::unique_ptr<Symbol>& sym) {
+                                        return sym->name() == name;
+                                      });

-  if (it_symbol == std::end(symbols_)) {
+  if (it_symbol == symbols_.end()) {
     return nullptr;
   }

@@ -357,12 +328,12 @@ void Binary::write(std::ostream& os, Builder::config_t config) {
 }

 const Section* Binary::section_from_offset(uint64_t offset) const {
-  const auto it_section = std::find_if(
-      sections_.cbegin(), sections_.cend(),
-      [offset] (const Section* section) {
-        return section->offset() <= offset &&
-               offset < (section->offset() + section->size());
-      });
+  const auto it_section =
+      std::find_if(sections_.cbegin(), sections_.cend(),
+                   [offset](const Section* section) {
+                     return section->offset() <= offset &&
+                            offset < (section->offset() + section->size());
+                   });

   if (it_section == sections_.cend()) {
     return nullptr;
@@ -373,28 +344,30 @@ const Section* Binary::section_from_offset(uint64_t offset) const {

 const Section* Binary::section_from_virtual_address(uint64_t address) const {
   const auto it_section = std::find_if(
-      std::begin(sections_), std::end(sections_),
-      [address] (const Section* section) {
+      sections_.begin(), sections_.end(), [address](const Section* section) {
         return section->virtual_address() <= address &&
                address < (section->virtual_address() + section->size());
-      });
+      }
+  );

-  if (it_section == std::end(sections_)) {
+  if (it_section == sections_.end()) {
     return nullptr;
   }

   return *it_section;
 }

-const SegmentCommand* Binary::segment_from_virtual_address(uint64_t virtual_address) const {
-  auto it_segment = std::find_if(
-      std::begin(segments_), std::end(segments_),
-      [virtual_address] (const SegmentCommand* segment) {
-        return segment->virtual_address() <= virtual_address &&
-               virtual_address < (segment->virtual_address() + segment->virtual_size());
-      });
+const SegmentCommand*
+    Binary::segment_from_virtual_address(uint64_t virtual_address) const {
+  auto it_segment =
+      std::find_if(segments_.begin(), segments_.end(),
+                   [virtual_address](const SegmentCommand* segment) {
+                     return segment->virtual_address() <= virtual_address &&
+                            virtual_address < (segment->virtual_address() +
+                                               segment->virtual_size());
+                   });

-  if (it_segment == std::end(segments_)) {
+  if (it_segment == segments_.end()) {
     return nullptr;
   }

@@ -410,23 +383,27 @@ const SegmentCommand* Binary::segment_from_offset(uint64_t offset) const {
     return nullptr;
   }

-  const auto it_begin = std::begin(offset_seg_);
+  const auto it_begin = offset_seg_.begin();
   if (offset < it_begin->first) {
     return nullptr;
   }

   auto it = offset_seg_.lower_bound(offset);
-  if (it != std::end(offset_seg_) && (it->first == offset || it == it_begin)) {
+  if (it != offset_seg_.end() && (it->first == offset || it == it_begin)) {
     SegmentCommand* seg = it->second;
-    if (seg->file_offset() <= offset && offset < (seg->file_offset() + seg->file_size())) {
+    if (seg->file_offset() <= offset &&
+        offset < (seg->file_offset() + seg->file_size()))
+    {
       return seg;
     }
   }

   const auto it_end = offset_seg_.crbegin();
-  if (it == std::end(offset_seg_) && offset >= it_end->first) {
+  if (it == offset_seg_.end() && offset >= it_end->first) {
     SegmentCommand* seg = it_end->second;
-    if (seg->file_offset() <= offset && offset < (seg->file_offset() + seg->file_size())) {
+    if (seg->file_offset() <= offset &&
+        offset < (seg->file_offset() + seg->file_size()))
+    {
       return seg;
     }
   }
@@ -439,7 +416,9 @@ const SegmentCommand* Binary::segment_from_offset(uint64_t offset) const {
   --it;

   SegmentCommand* seg = it->second;
-  if (seg->file_offset() <= offset && offset < (seg->file_offset() + seg->file_size())) {
+  if (seg->file_offset() <= offset &&
+      offset < (seg->file_offset() + seg->file_size()))
+  {
     return seg;
   }
   return nullptr;
@@ -448,7 +427,7 @@ const SegmentCommand* Binary::segment_from_offset(uint64_t offset) const {
 ok_error_t Binary::shift_linkedit(size_t width) {
   SegmentCommand* linkedit = get_segment("__LINKEDIT");
   if (linkedit == nullptr) {
-    LIEF_INFO("Can't find __LINKEDIT");
+    LIEF_INFO("__LINKEDIT segment not found");
     return make_error_code(lief_errors::not_found);
   }
   const uint64_t lnk_offset = linkedit->file_offset();
@@ -506,7 +485,9 @@ ok_error_t Binary::shift_linkedit(size_t width) {
     }

     if (lnk_offset <= dyn_cmd->external_reference_symbol_offset()) {
-      dyn_cmd->external_reference_symbol_offset(dyn_cmd->external_reference_symbol_offset() + width);
+      dyn_cmd->external_reference_symbol_offset(
+          dyn_cmd->external_reference_symbol_offset() + width
+      );
     }

     if (lnk_offset <= dyn_cmd->indirect_symbol_offset()) {
@@ -514,7 +495,8 @@ ok_error_t Binary::shift_linkedit(size_t width) {
     }

     if (lnk_offset <= dyn_cmd->external_relocation_offset()) {
-      dyn_cmd->external_relocation_offset(dyn_cmd->external_relocation_offset() + width);
+      dyn_cmd->external_relocation_offset(dyn_cmd->external_relocation_offset() +
+                                          width);
     }

     if (lnk_offset <= dyn_cmd->local_relocation_offset()) {
@@ -585,8 +567,8 @@ ok_error_t Binary::shift_linkedit(size_t width) {
 }

 void Binary::sort_segments() {
-  commands_t::iterator start = commands_.end();
-  commands_t::iterator end = commands_.end();
+  auto start = commands_.end();
+  auto end = commands_.end();

   for (auto it = commands_.begin(); it != commands_.end(); ++it) {
     if (start == commands_.end() && SegmentCommand::classof(it->get())) {
@@ -599,20 +581,22 @@ void Binary::sort_segments() {
   }
   ++end;

-  bool all_segments = std::all_of(start, end, [] (const std::unique_ptr<LoadCommand>& cmd) {
-    return SegmentCommand::classof(cmd.get());
-  });
+  bool all_segments =
+      std::all_of(start, end, [](const std::unique_ptr<LoadCommand>& cmd) {
+        return SegmentCommand::classof(cmd.get());
+      });

   if (!all_segments) {
-    LIEF_ERR("Segment commands non contiguous. Sort aborted!");
+    LIEF_ERR("Non-contiguous segment commands, sort aborted");
     return;
   }

   std::sort(start, end,
-    [] (const std::unique_ptr<LoadCommand>& lhs, const std::unique_ptr<LoadCommand>& rhs) {
-      return lhs->as<SegmentCommand>()->virtual_address() < rhs->as<SegmentCommand>()->virtual_address();
-    }
-  );
+            [](const std::unique_ptr<LoadCommand>& lhs,
+               const std::unique_ptr<LoadCommand>& rhs) {
+              return lhs->as<SegmentCommand>()->virtual_address() <
+                     rhs->as<SegmentCommand>()->virtual_address();
+            });

   segments_.clear();
   offset_seg_.clear();
@@ -634,7 +618,8 @@ void Binary::shift_command(size_t width, uint64_t from_offset) {
   uint64_t virtual_address = 0;

   if (segment != nullptr) {
-    virtual_address = segment->virtual_address() + from_offset - segment->file_offset();
+    virtual_address =
+        segment->virtual_address() + from_offset - segment->file_offset();
   }

   if (const SegmentCommand* text = get_segment("__TEXT")) {
@@ -695,7 +680,7 @@ void Binary::shift_command(size_t width, uint64_t from_offset) {
   // Shift Main Command
   // ==================
   if (MainCommand* main_cmd = main_command()) {
-     if ((__text_base_addr + main_cmd->entrypoint()) > virtual_address) {
+    if ((__text_base_addr + main_cmd->entrypoint()) > virtual_address) {
       main_cmd->entrypoint(main_cmd->entrypoint() + width);
     }
   }
@@ -725,7 +710,9 @@ void Binary::shift_command(size_t width, uint64_t from_offset) {
     }

     if (dyn_cmd->external_reference_symbol_offset() > from_offset) {
-      dyn_cmd->external_reference_symbol_offset(dyn_cmd->external_reference_symbol_offset() + width);
+      dyn_cmd->external_reference_symbol_offset(
+          dyn_cmd->external_reference_symbol_offset() + width
+      );
     }

     if (dyn_cmd->indirect_symbol_offset() > from_offset) {
@@ -733,7 +720,8 @@ void Binary::shift_command(size_t width, uint64_t from_offset) {
     }

     if (dyn_cmd->external_relocation_offset() > from_offset) {
-      dyn_cmd->external_relocation_offset(dyn_cmd->external_relocation_offset() + width);
+      dyn_cmd->external_relocation_offset(dyn_cmd->external_relocation_offset() +
+                                          width);
     }

     if (dyn_cmd->local_relocation_offset() > from_offset) {
@@ -773,9 +761,11 @@ void Binary::shift_command(size_t width, uint64_t from_offset) {
     for (Relocation& reloc : relocations()) {
       if (reloc.address() > virtual_address) {
         if (is64_) {
-          patch_relocation<uint64_t>(reloc, /* from */ virtual_address, /* shift */ width);
+          patch_relocation<uint64_t>(reloc, /* from */ virtual_address,
+                                     /* shift */ width);
         } else {
-          patch_relocation<uint32_t>(reloc, /* from */ virtual_address, /* shift */ width);
+          patch_relocation<uint32_t>(reloc, /* from */ virtual_address,
+                                     /* shift */ width);
         }
         reloc.address(reloc.address() + width);
       }
@@ -868,6 +858,19 @@ void Binary::shift_command(size_t width, uint64_t from_offset) {
     if (func_variants->data_offset() > from_offset) {
       func_variants->data_offset(func_variants->data_offset() + width);
     }
+    for (FunctionVariants::RuntimeTable& table : func_variants->runtime_table()) {
+      for (FunctionVariants::RuntimeTableEntry& entry : table.entries()) {
+        // impl() is an image-base relative offset (like LC_FUNCTION_STARTS).
+        // When another_table() is set it is an index into the runtime tables,
+        // not an address, and must be left untouched.
+        if (entry.another_table()) {
+          continue;
+        }
+        if ((__text_base_addr + entry.impl()) > virtual_address) {
+          entry.impl(entry.impl() + width);
+        }
+      }
+    }
   }

   if (FunctionVariantFixups* func_variant_fixups = function_variant_fixups()) {
@@ -876,18 +879,43 @@ void Binary::shift_command(size_t width, uint64_t from_offset) {
     }
   }

-  for_commands<EncryptionInfo>([from_offset, width] (EncryptionInfo& enc) {
+  for (LazyLoadDylibInfo& lazy : lazy_load_dylib_infos()) {
+    if (lazy.data_offset() > from_offset) {
+      lazy.data_offset(lazy.data_offset() + width);
+    }
+
+    if (lazy.chain_start_image_offset() != 0 &&
+        __text_base_addr + lazy.chain_start_image_offset() > virtual_address)
+    {
+      lazy.chain_start_image_offset(lazy.chain_start_image_offset() + width);
+    }
+
+    if (lazy.flag_image_offset() != 0 &&
+        __text_base_addr + lazy.flag_image_offset() > virtual_address)
+    {
+      lazy.flag_image_offset(lazy.flag_image_offset() + width);
+    }
+
+    // NOTE(romain): Updates on Fixup's address are currently NOT committed in
+    // the final binary (c.f. the associated TODO in the builder)
+    for (LazyLoadDylibInfo::Fixup& fixup : lazy.fixups()) {
+      if (fixup.address() > virtual_address) {
+        fixup.address(fixup.address() + width);
+      }
+    }
+  }
+
+  for_commands<EncryptionInfo>([from_offset, width](EncryptionInfo& enc) {
     if (enc.crypt_offset() > from_offset) {
       enc.crypt_offset(enc.crypt_offset() + width);
     }
   });

-  for_commands<NoteCommand>([from_offset, width] (NoteCommand& note) {
+  for_commands<NoteCommand>([from_offset, width](NoteCommand& note) {
     if (note.note_offset() > from_offset) {
       note.note_offset(note.note_offset() + width);
     }
   });
-
 }

 ok_error_t Binary::shift(size_t value) {
@@ -896,8 +924,8 @@ ok_error_t Binary::shift(size_t value) {
   Header& header = this->header();

   // Offset of the load commands table
-  const uint64_t loadcommands_start = is64_ ? sizeof(details::mach_header_64) :
-                                              sizeof(details::mach_header);
+  const uint64_t loadcommands_start =
+      is64_ ? sizeof(details::mach_header_64) : sizeof(details::mach_header);

   // +------------------------+ <---------- __TEXT.start
   // |      Mach-O Header     |
@@ -915,11 +943,12 @@ ok_error_t Binary::shift(size_t value) {
   // Segment that wraps this load command table
   SegmentCommand* load_cmd_segment = segment_from_offset(loadcommands_end);
   if (load_cmd_segment == nullptr) {
-    LIEF_ERR("Can't find segment associated with load command space");
+    LIEF_ERR("Segment for load command space not found");
     return make_error_code(lief_errors::file_format_error);
   }
-  LIEF_DEBUG("LC Table wrapped by {} / End offset: 0x{:x} (size: {:x})",
-             load_cmd_segment->name(), loadcommands_end, load_cmd_segment->data_.size());
+  LIEF_DEBUG("LC Table wrapped by {} / End offset: {:#x} (size: {:x})",
+             load_cmd_segment->name(), loadcommands_end,
+             load_cmd_segment->data_.size());
   load_cmd_segment->content_insert(loadcommands_end, value);

   // 1. Shift all commands
@@ -931,10 +960,11 @@ ok_error_t Binary::shift(size_t value) {
   }

   shift_command(value, loadcommands_end);
-  const uint64_t loadcommands_end_va = loadcommands_end + load_cmd_segment->virtual_address();
+  const uint64_t loadcommands_end_va =
+      loadcommands_end + load_cmd_segment->virtual_address();

-  LIEF_DEBUG("loadcommands_end:    0x{:016x}", loadcommands_end);
-  LIEF_DEBUG("loadcommands_end_va: 0x{:016x}", loadcommands_end_va);
+  LIEF_DEBUG("loadcommands_end:    {:#018x}", loadcommands_end);
+  LIEF_DEBUG("loadcommands_end_va: {:#018x}", loadcommands_end_va);

   // Shift Segment and sections
   // ==========================
@@ -983,7 +1013,8 @@ LoadCommand* Binary::add(std::unique_ptr<LoadCommand> command) {
   // Check there is enough space between the
   // load command table and the raw content
   if (auto result = ensure_command_space(size_aligned); is_err(result)) {
-    LIEF_ERR("Failed to ensure command space {}: {}", size_aligned, to_string(get_error(result)));
+    LIEF_ERR("Failed to ensure command space {}: {}", size_aligned,
+             to_string(get_error(result)));
     return nullptr;
   }
   available_command_space_ -= size_aligned;
@@ -991,8 +1022,8 @@ LoadCommand* Binary::add(std::unique_ptr<LoadCommand> command) {
   Header& header = this->header();

   // Get border of the load command table
-  const uint64_t loadcommands_start = is64_ ? sizeof(details::mach_header_64) :
-                                              sizeof(details::mach_header);
+  const uint64_t loadcommands_start =
+      is64_ ? sizeof(details::mach_header_64) : sizeof(details::mach_header);
   const uint64_t loadcommands_end = loadcommands_start + header.sizeof_cmds();

   // Update the Header according to the command that will be added
@@ -1002,16 +1033,16 @@ LoadCommand* Binary::add(std::unique_ptr<LoadCommand> command) {
   // Get the segment handling the LC table
   SegmentCommand* load_cmd_segment = segment_from_offset(loadcommands_end);
   if (load_cmd_segment == nullptr) {
-    LIEF_WARN("Can't get the last load command");
+    LIEF_WARN("Failed to get last load command");
     return nullptr;
   }

   span<const uint8_t> content_ref = load_cmd_segment->content();
-  std::vector<uint8_t> content = {std::begin(content_ref), std::end(content_ref)};
+  std::vector<uint8_t> content = {content_ref.begin(), content_ref.end()};

   // Copy the command data
-  std::copy(std::begin(command->data()), std::end(command->data()),
-            std::begin(content) + loadcommands_end);
+  std::copy(command->data().begin(), command->data().end(),
+            content.begin() + loadcommands_end);

   load_cmd_segment->content(std::move(content));

@@ -1024,26 +1055,29 @@ LoadCommand* Binary::add(std::unique_ptr<LoadCommand> command) {
     libraries_.push_back(command->as<DylibCommand>());
   }

+  if (LazyLoadDylibInfo::classof(command.get())) {
+    lazy_load_dylib_infos_.push_back(command->as<LazyLoadDylibInfo>());
+  }
+
   if (SegmentCommand::classof(command.get())) {
     add_cached_segment(*command->as<SegmentCommand>());
   }
-  LoadCommand* ptr = command.get();
-  commands_.push_back(std::move(command));
-  return ptr;
+  return commands_.emplace_back(std::move(command)).get();
 }

 LoadCommand* Binary::add(const LoadCommand& command, size_t index) {
-  // If index is "too" large <=> push_back
+  // An out-of-bounds index is interpreted as a push_back
   if (index >= commands_.size()) {
     return add(command);
   }

   const size_t size_aligned = align(command.size(), pointer_size());
-  LIEF_DEBUG("available_command_space_: 0x{:06x} (required: 0x{:06x})",
+  LIEF_DEBUG("available_command_space_: {:#08x} (required: {:#08x})",
              available_command_space_, size_aligned);

   if (auto result = ensure_command_space(size_aligned); is_err(result)) {
-    LIEF_ERR("Failed to ensure command space {}: {}", size_aligned, to_string(get_error(result)));
+    LIEF_ERR("Failed to ensure command space {}: {}", size_aligned,
+             to_string(get_error(result)));
     return nullptr;
   }
   available_command_space_ -= size_aligned;
@@ -1072,23 +1106,25 @@ LoadCommand* Binary::add(const LoadCommand& command, size_t index) {
     libraries_.push_back(lib);
   }

+  if (auto* lazy = copy->cast<LazyLoadDylibInfo>()) {
+    lazy_load_dylib_infos_.push_back(lazy);
+  }
+
   if (auto* segment = copy->cast<SegmentCommand>()) {
     add_cached_segment(*segment);
   }
-  LoadCommand* copy_ptr = copy.get();
-  commands_.insert(std::begin(commands_) + index, std::move(copy));
-  return copy_ptr;
+  return commands_.insert(commands_.begin() + index, std::move(copy))->get();
 }

 bool Binary::remove(const LoadCommand& command) {

-  const auto it = std::find_if(
-      std::begin(commands_), std::end(commands_),
-      [&command] (const std::unique_ptr<LoadCommand>& cmd) {
-        return *cmd == command;
-      });
+  const auto it =
+      std::find_if(commands_.begin(), commands_.end(),
+                   [&command](const std::unique_ptr<LoadCommand>& cmd) {
+                     return *cmd == command;
+                   });

-  if (it == std::end(commands_)) {
+  if (it == commands_.end()) {
     LIEF_ERR("Unable to find command: {}", to_string(command));
     return false;
   }
@@ -1096,21 +1132,31 @@ bool Binary::remove(const LoadCommand& command) {
   LoadCommand* cmd_rm = it->get();

   if (auto* lib = cmd_rm->cast<DylibCommand>()) {
-    auto it_cache = std::find(std::begin(libraries_), std::end(libraries_), cmd_rm);
-    if (it_cache == std::end(libraries_)) {
-      LIEF_WARN("Library {} not found in cache. The binary object is likely in an inconsistent state", lib->name());
+    auto it_cache = std::find(libraries_.begin(), libraries_.end(), cmd_rm);
+    if (it_cache == libraries_.end()) {
+      LIEF_WARN("Library {} not found in cache; binary may be inconsistent",
+                lib->name());
     } else {
       libraries_.erase(it_cache);
     }
   }

+  if (cmd_rm->cast<LazyLoadDylibInfo>() != nullptr) {
+    auto it_cache = std::find(lazy_load_dylib_infos_.begin(),
+                              lazy_load_dylib_infos_.end(), cmd_rm);
+    if (it_cache != lazy_load_dylib_infos_.end()) {
+      lazy_load_dylib_infos_.erase(it_cache);
+    }
+  }
+
   if (const auto* seg = cmd_rm->cast<const SegmentCommand>()) {
-    auto it_cache = std::find(std::begin(segments_), std::end(segments_), cmd_rm);
-    if (it_cache == std::end(segments_)) {
-      LIEF_WARN("Segment {} not found in cache. The binary object is likely in an inconsistent state", seg->name());
+    auto it_cache = std::find(segments_.begin(), segments_.end(), cmd_rm);
+    if (it_cache == segments_.end()) {
+      LIEF_WARN("Segment {} not found in cache; binary may be inconsistent",
+                seg->name());
     } else {
       // Update the indexes to keep a consistent state
-      for (auto it = it_cache; it != std::end(segments_); ++it) {
+      for (auto it = it_cache; it != segments_.end(); ++it) {
         (*it)->index_--;
       }
       segments_.erase(it_cache);
@@ -1153,35 +1199,33 @@ bool Binary::remove_command(size_t index) {
 }

 bool Binary::has(LoadCommand::TYPE type) const {
-  const auto it = std::find_if(
-      std::begin(commands_), std::end(commands_),
-      [type] (const std::unique_ptr<LoadCommand>& cmd) {
-        return cmd->command() == type;
-      });
-  return it != std::end(commands_);
+  const auto it = std::find_if(commands_.begin(), commands_.end(),
+                               [type](const std::unique_ptr<LoadCommand>& cmd) {
+                                 return cmd->command() == type;
+                               });
+  return it != commands_.end();
 }

 const LoadCommand* Binary::get(LoadCommand::TYPE type) const {
-  const auto it = std::find_if(
-      std::begin(commands_), std::end(commands_),
-      [type] (const std::unique_ptr<LoadCommand>& cmd) {
-        return cmd->command() == type;
-      });
+  const auto it = std::find_if(commands_.begin(), commands_.end(),
+                               [type](const std::unique_ptr<LoadCommand>& cmd) {
+                                 return cmd->command() == type;
+                               });

-  if (it == std::end(commands_)) {
+  if (it == commands_.end()) {
     return nullptr;
   }
   return it->get();
 }

 bool Binary::extend(const LoadCommand& command, uint64_t size) {
-  const auto it = std::find_if(
-      std::begin(commands_), std::end(commands_),
-      [&command] (const std::unique_ptr<LoadCommand>& cmd) {
-        return *cmd == command;
-      });
+  const auto it =
+      std::find_if(commands_.begin(), commands_.end(),
+                   [&command](const std::unique_ptr<LoadCommand>& cmd) {
+                     return *cmd == command;
+                   });

-  if (it == std::end(commands_)) {
+  if (it == commands_.end()) {
     LIEF_ERR("Unable to find command: {}", to_string(command));
     return false;
   }
@@ -1189,7 +1233,8 @@ bool Binary::extend(const LoadCommand& command, uint64_t size) {
   LoadCommand* cmd = it->get();
   const size_t size_aligned = align(size, pointer_size());
   if (auto result = ensure_command_space(size_aligned); is_err(result)) {
-    LIEF_ERR("Failed to ensure command space {}: {}", size_aligned, to_string(get_error(result)));
+    LIEF_ERR("Failed to ensure command space {}: {}", size_aligned,
+             to_string(get_error(result)));
     return false;
   }
   available_command_space_ -= size_aligned;
@@ -1214,20 +1259,20 @@ bool Binary::extend(const LoadCommand& command, uint64_t size) {

 bool Binary::extend_segment(const SegmentCommand& segment, size_t size) {

-  const auto it_segment = std::find_if(
-      std::begin(segments_), std::end(segments_),
-      [&segment] (const SegmentCommand* s) {
-        return segment == *s;
-      });
+  const auto it_segment =
+      std::find_if(segments_.begin(), segments_.end(),
+                   [&segment](const SegmentCommand* s) { return segment == *s; });

-  if (it_segment == std::end(segments_)) {
+  if (it_segment == segments_.end()) {
     LIEF_ERR("Unable to find segment: '{}'", segment.name());
     return false;
   }

   SegmentCommand* target_segment = *it_segment;
-  const uint64_t last_offset = target_segment->file_offset() + target_segment->file_size();
-  const uint64_t last_va     = target_segment->virtual_address() + target_segment->virtual_size();
+  const uint64_t last_offset =
+      target_segment->file_offset() + target_segment->file_size();
+  const uint64_t last_va =
+      target_segment->virtual_address() + target_segment->virtual_size();

   const int32_t size_aligned = align(size, pointer_size());

@@ -1265,41 +1310,46 @@ bool Binary::extend_section(Section& section, size_t size) {
   // All sections must keep their requested alignment.
   //
   // As per current implementation of `shift` method, space is allocated between
-  // the last load command and the first section by shifting everything to the "right".
-  // After that we shift `section` and all other sections that come before it to the "left",
-  // so that we create a gap of at least `size` wide after the current `section`.
-  // Finally, we assign new size to the `section`.
+  // the last load command and the first section by shifting everything to the
+  // "right". After that we shift `section` and all other sections that come before
+  // it to the "left", so that we create a gap of at least `size` wide after the
+  // current `section`. Finally, we assign new size to the `section`.
   //
   // Let's say we are extending section S.
-  // There might be sections P that come prior S, and there might be sections A that come after S.
-  // We try to keep relative relationships between sections in groups P and A,
-  // such that relative offsets from one section to another one are unchanged,
-  // however preserving the same relationship between sections from different groups is impossible.
-  // We achieve this by shifting P and S to the left by size rounded up to the maximum common alignment factor.
-
-  const uint64_t loadcommands_start = is64_ ? sizeof(details::mach_header_64) :
-                                              sizeof(details::mach_header);
+  // There might be sections P that come prior S, and there might be sections A
+  // that come after S. We try to keep relative relationships between sections in
+  // groups P and A, such that relative offsets from one section to another one are
+  // unchanged, however preserving the same relationship between sections from
+  // different groups is impossible. We achieve this by shifting P and S to the
+  // left by size rounded up to the maximum common alignment factor.
+
+  const uint64_t loadcommands_start =
+      is64_ ? sizeof(details::mach_header_64) : sizeof(details::mach_header);
   const uint64_t loadcommands_end = loadcommands_start + header().sizeof_cmds();
   SegmentCommand* load_cmd_segment = segment_from_offset(loadcommands_end);
   if (load_cmd_segment == nullptr) {
-    LIEF_ERR("Can't find segment associated with load command space");
+    LIEF_ERR("Segment for load command space not found");
     return false;
   }

   if (section.segment() != load_cmd_segment) {
-    LIEF_ERR("Can't extend section that belongs to segment '{}' which is not the first one", section.segment_name());
+    LIEF_ERR("Cannot extend section in non-first segment '{}'",
+             section.segment_name());
     return false;
   }

-  // Note: if we are extending an empty section, then there may be many zero-sized sections at
-  // this offset `section.offset()`, and one non-empty section.
+  // Note: if we are extending an empty section, then there may be many zero-sized
+  // sections at this offset `section.offset()`, and one non-empty section.

   // Select sections that we need to shift to the left.
   // Sections that come after the current one are not considered for shifting.
-  // Note: we compare sections by end_offset to exclude non-empty section that starts at the current offset.
+  // Note: we compare sections by end_offset to exclude non-empty section that
+  // starts at the current offset.
   sections_cache_t sections_to_shift;
   for (Section& s : sections()) {
-    if (s.offset() == 0 || s.offset() + s.size() > section.offset() + section.size()) {
+    if (s.offset() == 0 ||
+        s.offset() + s.size() > section.offset() + section.size())
+    {
       continue;
     }
     sections_to_shift.push_back(&s);
@@ -1308,24 +1358,29 @@ bool Binary::extend_section(Section& section, size_t size) {

   // Stable-sort by offset in ascending order as well as preserving original order.
   std::stable_sort(sections_to_shift.begin(), sections_to_shift.end(),
-            [](const Section* a, const Section* b) { return a->offset() < b->offset(); });
+                   [](const Section* a, const Section* b) {
+                     return a->offset() < b->offset();
+                   });

   // We do not want to shift empty sections that were added after the current one.
-  auto it = std::find(sections_to_shift.begin(), sections_to_shift.end(), &section);
+  auto it =
+      std::find(sections_to_shift.begin(), sections_to_shift.end(), &section);
   assert(it != sections_to_shift.end());
   sections_to_shift.erase(std::next(it), sections_to_shift.end());

   // Find maximum alignment
-  auto it_maxa = std::max_element(sections_to_shift.begin(), sections_to_shift.end(),
-            [](const Section* a, const Section* b) {
-              return a->alignment() < b->alignment();
-            });
+  auto it_maxa =
+      std::max_element(sections_to_shift.begin(), sections_to_shift.end(),
+                       [](const Section* a, const Section* b) {
+                         return a->alignment() < b->alignment();
+                       });
   const size_t max_alignment = 1 << (*it_maxa)->alignment();

   // Resize command space, if needed.
   const size_t shift_value = align(size, max_alignment);
   if (auto result = ensure_command_space(shift_value); is_err(result)) {
-    LIEF_ERR("Failed to ensure command space {}: {}", shift_value, to_string(get_error(result)));
+    LIEF_ERR("Failed to ensure command space {}: {}", shift_value,
+             to_string(get_error(result)));
     return false;
   }
   available_command_space_ -= shift_value;
@@ -1345,12 +1400,12 @@ bool Binary::extend_section(Section& section, size_t size) {
 void Binary::remove_section(const std::string& name, bool clear) {
   Section* sec_to_delete = get_section(name);
   if (sec_to_delete == nullptr) {
-    LIEF_ERR("Can't find section '{}'", name);
+    LIEF_ERR("Section '{}' not found", name);
     return;
   }
   SegmentCommand* segment = sec_to_delete->segment();
   if (segment == nullptr) {
-    LIEF_ERR("The section {} is in an inconsistent state (missing segment). Can't remove it",
+    LIEF_ERR("Section {} has no associated segment, cannot remove",
              sec_to_delete->name());
     return;
   }
@@ -1358,15 +1413,16 @@ void Binary::remove_section(const std::string& name, bool clear) {
   remove_section(segment->name(), name, clear);
 }

-void Binary::remove_section(const std::string& segname, const std::string& secname, bool clear) {
+void Binary::remove_section(const std::string& segname, const std::string& secname,
+                            bool clear) {
   Section* sec_to_delete = get_section(segname, secname);
   if (sec_to_delete == nullptr) {
-    LIEF_ERR("Can't find section '{}' in segment '{}'", secname, segname);
+    LIEF_ERR("Section '{}' not found in segment '{}'", secname, segname);
     return;
   }
   SegmentCommand* segment = sec_to_delete->segment();
   if (segment == nullptr) {
-    LIEF_ERR("The section {} is in an inconsistent state (missing segment). Can't remove it",
+    LIEF_ERR("Section {} has no associated segment, cannot remove",
              sec_to_delete->name());
     return;
   }
@@ -1376,20 +1432,20 @@ void Binary::remove_section(const std::string& segname, const std::string& secna
   }

   segment->numberof_sections(segment->numberof_sections() - 1);
-  auto it_section = std::find_if(
-      std::begin(segment->sections_), std::end(segment->sections_),
-      [sec_to_delete] (const std::unique_ptr<Section>& s) {
-        return *s == *sec_to_delete;
-      });
+  auto it_section =
+      std::find_if(segment->sections_.begin(), segment->sections_.end(),
+                   [sec_to_delete](const std::unique_ptr<Section>& s) {
+                     return *s == *sec_to_delete;
+                   });

-  if (it_section == std::end(segment->sections_)) {
-    LIEF_WARN("Can't find the section");
+  if (it_section == segment->sections_.end()) {
+    LIEF_WARN("Section not found");
     return;
   }

   const size_t lc_offset = segment->command_offset();
-  const size_t section_struct_size = is64_ ? sizeof(details::section_64) :
-                                             sizeof(details::section_32);
+  const size_t section_struct_size =
+      is64_ ? sizeof(details::section_64) : sizeof(details::section_32);
   segment->size_ -= section_struct_size;

   header().sizeof_cmds(header().sizeof_cmds() - section_struct_size);
@@ -1404,13 +1460,13 @@ void Binary::remove_section(const std::string& segname, const std::string& secna

   std::unique_ptr<Section>& section = *it_section;
   // Remove from cache
-  auto it_cache = std::find_if(std::begin(sections_), std::end(sections_),
-      [&section] (const Section* sec) {
-        return section.get() == sec;
-      });
+  auto it_cache = std::find_if(sections_.begin(), sections_.end(),
+                               [&section](const Section* sec) {
+                                 return section.get() == sec;
+                               });

-  if (it_cache == std::end(sections_)) {
-    LIEF_WARN("Can find the section {} in the cache. The binary object is likely in an inconsistent state",
+  if (it_cache == sections_.end()) {
+    LIEF_WARN("Section {} not found in cache; binary may be inconsistent",
               section->name());
   } else {
     sections_.erase(it_cache);
@@ -1422,52 +1478,53 @@ void Binary::remove_section(const std::string& segname, const std::string& secna
 Section* Binary::add_section(const Section& section) {
   SegmentCommand* _TEXT_segment = get_segment("__TEXT");
   if (_TEXT_segment == nullptr) {
-    LIEF_ERR("Unable to get '__TEXT' segment");
+    LIEF_ERR("__TEXT segment not found");
     return nullptr;
   }
   return add_section(*_TEXT_segment, section);
 }

-Section* Binary::add_section(const SegmentCommand& segment, const Section& section) {
+Section* Binary::add_section(const SegmentCommand& segment,
+                             const Section& section) {

-  const auto it_segment = std::find_if(
-      std::begin(segments_), std::end(segments_),
-      [&segment] (const SegmentCommand* s) {
-        return segment == *s;
-      });
+  const auto it_segment =
+      std::find_if(segments_.begin(), segments_.end(),
+                   [&segment](const SegmentCommand* s) { return segment == *s; });

-  if (it_segment == std::end(segments_)) {
+  if (it_segment == segments_.end()) {
     LIEF_ERR("Unable to find segment: '{}'", segment.name());
     return nullptr;
   }
   SegmentCommand* target_segment = *it_segment;

   span<const uint8_t> content_ref = section.content();
-  Section::content_t content = {std::begin(content_ref), std::end(content_ref)};
+  Section::content_t content = {content_ref.begin(), content_ref.end()};

-  auto new_section = std::make_unique<Section>(section);
+  auto new_section = section.clone();

   if (section.offset() == 0) {
-    // Section offset is not defined: we need to allocate space enough to fit its content.
-    const size_t hdr_size = is64_ ? sizeof(details::section_64) :
-                                    sizeof(details::section_32);
+    // Section offset is not defined: we need to allocate space enough to fit its
+    // content.
+    const size_t hdr_size =
+        is64_ ? sizeof(details::section_64) : sizeof(details::section_32);
     const size_t alignment = 1 << section.alignment();
     const size_t needed_size = hdr_size + content.size() + alignment;

     // Request size with a gap of alignment, so we would have enough room
     // to adjust section's offset to satisfy its alignment requirements.
     if (auto result = ensure_command_space(needed_size); is_err(result)) {
-      LIEF_ERR("Failed to ensure command space {}: {}", needed_size, to_string(get_error(result)));
+      LIEF_ERR("Failed to ensure command space {}: {}", needed_size,
+               to_string(get_error(result)));
       return nullptr;
     }

     if (!extend(*target_segment, hdr_size)) { // adjusts available_command_space_
-      LIEF_ERR("Unable to extend segment '{}' by 0x{:x}", segment.name(), hdr_size);
+      LIEF_ERR("Unable to extend segment '{}' by {:#x}", segment.name(), hdr_size);
       return nullptr;
     }

-    const uint64_t loadcommands_start = is64_ ? sizeof(details::mach_header_64) :
-                                                sizeof(details::mach_header);
+    const uint64_t loadcommands_start =
+        is64_ ? sizeof(details::mach_header_64) : sizeof(details::mach_header);
     const uint64_t loadcommands_end = loadcommands_start + header().sizeof_cmds();

     // let new_offset supposedly point to the contents of the first section
@@ -1488,7 +1545,8 @@ Section* Binary::add_section(const SegmentCommand& segment, const Section& secti
   }

   if (section.virtual_address() == 0) {
-    new_section->virtual_address(target_segment->virtual_address() + new_section->offset());
+    new_section->virtual_address(target_segment->virtual_address() +
+                                 new_section->offset());
   }

   new_section->segment_ = target_segment;
@@ -1498,10 +1556,11 @@ Section* Binary::add_section(const SegmentCommand& segment, const Section& secti
   sections_.push_back(new_section.get());

   // Copy data to segment
-  const uint64_t relative_offset = new_section->offset() - target_segment->file_offset();
+  const uint64_t relative_offset =
+      new_section->offset() - target_segment->file_offset();

-  std::move(std::begin(content), std::end(content),
-            std::begin(target_segment->data_) + relative_offset);
+  std::move(content.begin(), content.end(),
+            target_segment->data_.begin() + relative_offset);

   target_segment->sections_.push_back(std::move(new_section));
   return target_segment->sections_.back().get();
@@ -1516,39 +1575,42 @@ LoadCommand* Binary::add(const SegmentCommand& segment) {
    *    which must include the sections
    * 2. Allocate space for the content of the provided segment
    *
-   * For #1, the logic is to shift all the content after the end of the load command table.
-   * This modification is described in doc/sphinx/tutorials/11_macho_modification.rst.
+   * For #1, the logic is to shift all the content after the end of the load
+   * command table. This modification is described in
+   * doc/sphinx/tutorials/11_macho_modification.rst.
    *
-   * For #2, the easiest way is to place the content at the end of the Mach-O file and
-   * to make the LC_SEGMENT point to this area. It works as expected as long as
+   * For #2, the easiest way is to place the content at the end of the Mach-O file
+   * and to make the LC_SEGMENT point to this area. It works as expected as long as
    * the binary does not need to be signed.
    *
    * If the binary has to be signed, codesign and the underlying Apple libraries
    * enforce that there is not data after the __LINKEDIT segment, otherwise we get
    * this kind of error: "main executable failed strict validation".
-   * To comply with this check, we can shift the __LINKEDIT segment (c.f. ``shift_linkedit(...)``)
-   * such as the data of the new segment are located before __LINKEDIT.
-   * Nevertheless, we can't shift __LINKEDIT by an arbitrary value. For ARM and ARM64,
-   * ld/dyld enforces a segment alignment of "4 * 4096" as coded in ``Options::reconfigureDefaults``
-   * of ``ld64-609/src/ld/Option.cpp``:
+   * To comply with this check, we can shift the __LINKEDIT segment (c.f.
+   * ``shift_linkedit(...)``) such as the data of the new segment are located
+   * before __LINKEDIT. Nevertheless, we can't shift __LINKEDIT by an arbitrary
+   * value. For ARM and ARM64, ld/dyld enforces a segment alignment of "4 * 4096"
+   * as coded in ``Options::reconfigureDefaults`` of
+   * ``ld64-609/src/ld/Option.cpp``:
    *
    * ```cpp
    * ...
-   * <rdar://problem/13070042> Only third party apps should have 16KB page segments by default
-   * if (fEncryptable) {
-   *  if (fSegmentAlignment == 4096)
+   * <rdar://problem/13070042> Only third party apps should have 16KB page segments
+   * by default if (fEncryptable) { if (fSegmentAlignment == 4096)
    *    fSegmentAlignment = 4096*4;
    * }
    *
    * // <rdar://problem/12258065> ARM64 needs 16KB page size for user land code
-   * // <rdar://problem/15974532> make armv7[s] use 16KB pages in user land code for iOS 8 or later
-   * if (fArchitecture == CPU_TYPE_ARM64 || (fArchitecture == CPU_TYPE_ARM) ) {
-   *   fSegmentAlignment = 4096*4;
+   * // <rdar://problem/15974532> make armv7[s] use 16KB pages in user land code
+   * for iOS 8 or later if (fArchitecture == CPU_TYPE_ARM64 || (fArchitecture ==
+   * CPU_TYPE_ARM) ) { fSegmentAlignment = 4096*4;
    * }
    * ```
-   * Therefore, we must shift __LINKEDIT by at least 4 * 0x1000 for Mach-O files targeting ARM
+   * Therefore, we must shift __LINKEDIT by at least 4 * 0x1000 for Mach-O files
+   * targeting ARM
    */
-  LIEF_DEBUG("Adding the new segment '{}' ({} bytes)", segment.name(), segment.content().size());
+  LIEF_DEBUG("Adding the new segment '{}' ({} bytes)", segment.name(),
+             segment.content().size());
   const uint32_t alignment = page_size();
   const uint64_t new_fsize = align(segment.content().size(), alignment);
   SegmentCommand new_segment = segment;
@@ -1582,34 +1644,36 @@ LoadCommand* Binary::add(const SegmentCommand& segment) {
   LIEF_DEBUG(" -> sizeof(LC_SEGMENT): {}", new_segment.size());

   // Insert the segment before __LINKEDIT
-  const auto it_linkedit = std::find_if(std::begin(commands_), std::end(commands_),
-      [] (const std::unique_ptr<LoadCommand>& cmd) {
-        if (!SegmentCommand::classof(cmd.get())) {
-          return false;
-        }
-        return cmd->as<SegmentCommand>()->name() == "__LINKEDIT";
-      });
+  const auto it_linkedit =
+      std::find_if(commands_.begin(), commands_.end(),
+                   [](const std::unique_ptr<LoadCommand>& cmd) {
+                     if (!SegmentCommand::classof(cmd.get())) {
+                       return false;
+                     }
+                     return cmd->as<SegmentCommand>()->name() == "__LINKEDIT";
+                   });

-  const bool has_linkedit = it_linkedit != std::end(commands_);
+  const bool has_linkedit = it_linkedit != commands_.end();

-  size_t pos = std::distance(std::begin(commands_), it_linkedit);
+  size_t pos = std::distance(commands_.begin(), it_linkedit);

   LIEF_DEBUG(" -> index: {}", pos);

   auto* new_cmd = add(new_segment, pos);

   if (new_cmd == nullptr) {
-    LIEF_WARN("Fail to insert new '{}' segment", segment.name());
+    LIEF_WARN("Failed to insert segment '{}'", segment.name());
     return nullptr;
   }

   auto* segment_added = new_cmd->as<SegmentCommand>();

   if (!has_linkedit) {
-    /* If there are not __LINKEDIT segment we can point the Segment's content to the EOF
-     * NOTE(romain): I don't know if a binary without a __LINKEDIT segment exists
+    /* If there are not __LINKEDIT segment we can point the Segment's content to
+     * the EOF NOTE(romain): I don't know if a binary without a __LINKEDIT segment
+     * exists
      */
-    range_t new_va_ranges  = this->va_ranges();
+    range_t new_va_ranges = this->va_ranges();
     range_t new_off_ranges = off_ranges();
     if (segment.virtual_address() == 0 && segment_added->virtual_size() != 0) {
       const uint64_t new_va = align(new_va_ranges.end, alignment);
@@ -1635,17 +1699,17 @@ LoadCommand* Binary::add(const SegmentCommand& segment) {
   }

   uint64_t lnk_offset = 0;
-  uint64_t lnk_va     = 0;
+  uint64_t lnk_va = 0;

   if (const SegmentCommand* lnk = get_segment("__LINKEDIT")) {
     lnk_offset = lnk->file_offset();
-    lnk_va     = lnk->virtual_address();
+    lnk_va = lnk->virtual_address();
   }

   // Make space for the content of the new segment
   shift_linkedit(new_fsize);
-  LIEF_DEBUG(" -> offset         : 0x{:06x}", lnk_offset);
-  LIEF_DEBUG(" -> virtual address: 0x{:06x}", lnk_va);
+  LIEF_DEBUG(" -> offset         : {:#08x}", lnk_offset);
+  LIEF_DEBUG(" -> virtual address: {:#08x}", lnk_va);

   segment_added->virtual_address(lnk_va);
   segment_added->virtual_size(segment_added->virtual_size());
@@ -1664,7 +1728,9 @@ LoadCommand* Binary::add(const SegmentCommand& segment) {

   if (DyldChainedFixups* fixup = dyld_chained_fixups()) {
     DyldChainedFixups::chained_starts_in_segment new_info =
-      DyldChainedFixups::chained_starts_in_segment::create_empty_chained(*segment_added);
+        DyldChainedFixups::chained_starts_in_segment::create_empty_chained(
+            *segment_added
+        );
     fixup->add(std::move(new_info));
   }

@@ -1673,19 +1739,21 @@ LoadCommand* Binary::add(const SegmentCommand& segment) {
 }

 size_t Binary::add_cached_segment(SegmentCommand& segment) {
-  // The new segement should be put **before** the __LINKEDIT segment
-  const auto it_linkedit = std::find_if(std::begin(segments_), std::end(segments_),
-      [] (SegmentCommand* cmd) { return cmd->name() == "__LINKEDIT"; });
+  // The new segment should be put **before** the __LINKEDIT segment
+  const auto it_linkedit =
+      std::find_if(segments_.begin(), segments_.end(), [](SegmentCommand* cmd) {
+        return cmd->name() == "__LINKEDIT";
+      });

-  if (it_linkedit == std::end(segments_)) {
-    LIEF_DEBUG("No __LINKEDIT segment found!");
+  if (it_linkedit == segments_.end()) {
+    LIEF_DEBUG("No __LINKEDIT segment found");
     segment.index_ = segments_.size();
     segments_.push_back(&segment);
   } else {
     segment.index_ = (*it_linkedit)->index();

     // Update indexes
-    for (auto it = it_linkedit; it != std::end(segments_); ++it) {
+    for (auto it = it_linkedit; it != segments_.end(); ++it) {
       (*it)->index_++;
     }
     segments_.insert(it_linkedit, &segment);
@@ -1694,7 +1762,7 @@ size_t Binary::add_cached_segment(SegmentCommand& segment) {
   offset_seg_[segment.file_offset()] = &segment;
   if (LinkEdit::segmentof(segment)) {
     auto& linkedit = static_cast<LinkEdit&>(segment);
-    linkedit.dyld_           = dyld_info();
+    linkedit.dyld_ = dyld_info();
     linkedit.chained_fixups_ = dyld_chained_fixups();
   }
   refresh_seg_offset();
@@ -1712,14 +1780,14 @@ bool Binary::unexport(const std::string& name) {

 bool Binary::unexport(const Symbol& sym) {
   if (DyldInfo* dyld = dyld_info()) {
-    const auto it_export = std::find_if(
-        std::begin(dyld->export_info_), std::end(dyld->export_info_),
-        [&sym] (const std::unique_ptr<ExportInfo>& info) {
-          return info->has_symbol() && *info->symbol() == sym;
-        });
+    const auto it_export =
+        std::find_if(dyld->export_info_.begin(), dyld->export_info_.end(),
+                     [&sym](const std::unique_ptr<ExportInfo>& info) {
+                       return info->has_symbol() && *info->symbol() == sym;
+                     });

     // The symbol is not exported
-    if (it_export == std::end(dyld->export_info_)) {
+    if (it_export == dyld->export_info_.end()) {
       return false;
     }

@@ -1729,14 +1797,14 @@ bool Binary::unexport(const Symbol& sym) {


   if (DyldExportsTrie* exports = dyld_exports_trie()) {
-    const auto it_export = std::find_if(
-        std::begin(exports->export_info_), std::end(exports->export_info_),
-        [&sym] (const std::unique_ptr<ExportInfo>& info) {
-          return info->has_symbol() && *info->symbol() == sym;
-        });
+    const auto it_export =
+        std::find_if(exports->export_info_.begin(), exports->export_info_.end(),
+                     [&sym](const std::unique_ptr<ExportInfo>& info) {
+                       return info->has_symbol() && *info->symbol() == sym;
+                     });

     // The symbol is not exported
-    if (it_export == std::end(exports->export_info_)) {
+    if (it_export == exports->export_info_.end()) {
       return false;
     }

@@ -1744,26 +1812,28 @@ bool Binary::unexport(const Symbol& sym) {
     return true;
   }

-  LIEF_INFO("Can't find neither LC_DYLD_INFO / LC_DYLD_CHAINED_FIXUPS");
+  LIEF_INFO("Neither LC_DYLD_INFO nor LC_DYLD_CHAINED_FIXUPS found");
   return false;
 }

 bool Binary::remove(const Symbol& sym) {
   unexport(sym);
-  const auto it_sym = std::find_if(std::begin(symbols_), std::end(symbols_),
-      [&sym] (const std::unique_ptr<Symbol>& s) {
-        return s.get() == &sym;
-      });
+  const auto it_sym = std::find_if(symbols_.begin(), symbols_.end(),
+                                   [&sym](const std::unique_ptr<Symbol>& s) {
+                                     return s.get() == &sym;
+                                   });

-  if (it_sym == std::end(symbols_)) {
+  if (it_sym == symbols_.end()) {
     return false;
   }

   if (DynamicSymbolCommand* dyst = dynamic_symbol_command()) {
-    dyst->indirect_symbols_.erase(
-        std::remove_if(std::begin(dyst->indirect_symbols_), std::end(dyst->indirect_symbols_),
-                       [&sym] (const Symbol* s) { return s == &sym; }),
-        std::end(dyst->indirect_symbols_));
+    dyst->indirect_symbols_.erase(std::remove_if(dyst->indirect_symbols_.begin(),
+                                                 dyst->indirect_symbols_.end(),
+                                                 [&sym](const Symbol* s) {
+                                                   return s == &sym;
+                                                 }),
+                                  dyst->indirect_symbols_.end());
   }

   symbols_.erase(it_sym);
@@ -1813,8 +1883,8 @@ bool Binary::can_remove_symbol(const std::string& name) const {
       syms.push_back(s.get());
     }
   }
-  return std::all_of(std::begin(syms), std::end(syms),
-                     [this] (const Symbol* s) { return can_remove(*s); });
+  return std::all_of(syms.begin(), syms.end(),
+                     [this](const Symbol* s) { return can_remove(*s); });
 }


@@ -1840,16 +1910,21 @@ std::vector<uint8_t> Binary::raw() {
   return buffer;
 }

-result<uint64_t> Binary::virtual_address_to_offset(uint64_t virtual_address) const {
+result<uint64_t>
+    Binary::virtual_address_to_offset(uint64_t virtual_address) const {
   const SegmentCommand* segment = segment_from_virtual_address(virtual_address);
-  if (segment == nullptr) {
+  // file_size() is 0 if segment is not file-backed, e.g. a `__DATA` segment that
+  // only has a ZEROFILL section.  In such case, there is no file offset available.
+  if (segment == nullptr || segment->file_size() == 0) {
     return make_error_code(lief_errors::conversion_error);
   }
-  const uint64_t base_address = segment->virtual_address() - segment->file_offset();
+  const uint64_t base_address =
+      segment->virtual_address() - segment->file_offset();
   return virtual_address - base_address;
 }

-result<uint64_t> Binary::offset_to_virtual_address(uint64_t offset, uint64_t slide) const {
+result<uint64_t> Binary::offset_to_virtual_address(uint64_t offset,
+                                                   uint64_t slide) const {
   const SegmentCommand* segment = segment_from_offset(offset);
   if (segment == nullptr) {
     return slide + offset;
@@ -1862,10 +1937,10 @@ result<uint64_t> Binary::offset_to_virtual_address(uint64_t offset, uint64_t sli
   }

   if (imgbase == 0) {
-    return slide +
-           segment->virtual_address() + (offset - segment->file_offset());
+    return slide + segment->virtual_address() + (offset - segment->file_offset());
   }
-  return (segment->virtual_address() - imgbase) + slide + (offset - segment->file_offset());
+  return (segment->virtual_address() - imgbase) + slide +
+         (offset - segment->file_offset());
 }

 bool Binary::disable_pie() {
@@ -1877,13 +1952,11 @@ bool Binary::disable_pie() {
 }

 const Section* Binary::get_section(const std::string& name) const {
-  const auto it_section = std::find_if(
-      std::begin(sections_), std::end(sections_),
-      [&name] (const Section* sec) {
-        return sec->name() == name;
-      });
+  const auto it_section =
+      std::find_if(sections_.begin(), sections_.end(),
+                   [&name](const Section* sec) { return sec->name() == name; });

-  if (it_section == std::end(sections_)) {
+  if (it_section == sections_.end()) {
     return nullptr;
   }

@@ -1891,7 +1964,8 @@ const Section* Binary::get_section(const std::string& name) const {
 }


-const Section* Binary::get_section(const std::string& segname, const std::string& secname) const {
+const Section* Binary::get_section(const std::string& segname,
+                                   const std::string& secname) const {
   if (const SegmentCommand* seg = get_segment(segname)) {
     if (const Section* sec = seg->get_section(secname)) {
       return sec;
@@ -1901,13 +1975,12 @@ const Section* Binary::get_section(const std::string& segname, const std::string
 }

 const SegmentCommand* Binary::get_segment(const std::string& name) const {
-  const auto it_segment = std::find_if(
-      std::begin(segments_), std::end(segments_),
-      [&name] (const SegmentCommand* seg) {
-        return seg->name() == name;
-      });
+  const auto it_segment = std::find_if(segments_.begin(), segments_.end(),
+                                       [&name](const SegmentCommand* seg) {
+                                         return seg->name() == name;
+                                       });

-  if (it_segment == std::end(segments_)) {
+  if (it_segment == segments_.end()) {
     return nullptr;
   }

@@ -1929,7 +2002,7 @@ std::string Binary::loader() const {
 }

 Binary::range_t Binary::va_ranges() const {
-  uint64_t min = uint64_t(-1);
+  auto min = uint64_t(-1);
   uint64_t max = 0;

   for (const SegmentCommand* segment : segments_) {
@@ -1948,7 +2021,7 @@ Binary::range_t Binary::va_ranges() const {
 }

 Binary::range_t Binary::off_ranges() const {
-  uint64_t min = uint64_t(-1);
+  auto min = uint64_t(-1);
   uint64_t max = 0;

   for (const SegmentCommand* segment : segments_) {
@@ -1963,6 +2036,28 @@ Binary::range_t Binary::off_ranges() const {
   return {min, max};
 }

+Binary::range_t Binary::tlv_initial_content_range() const {
+  uint64_t low = 0;
+  uint64_t high = 0;
+  for (const Section& S : sections()) {
+    switch (S.type()) {
+      default: break;
+      case Section::TYPE::THREAD_LOCAL_REGULAR:
+      case Section::TYPE::THREAD_LOCAL_ZEROFILL:
+      {
+        if (low == 0) {
+          low = S.virtual_address();
+          high = low + S.size();
+        } else {
+          high = S.virtual_address() + S.size();
+        }
+        break;
+      }
+    }
+  }
+  return {low, high};
+}
+

 LIEF::Binary::functions_t Binary::ctor_functions() const {
   LIEF::Binary::functions_t functions;
@@ -1994,34 +2089,33 @@ LIEF::Binary::functions_t Binary::ctor_functions() const {


 LIEF::Binary::functions_t Binary::functions() const {
-  static const auto func_cmd = [] (const Function& lhs, const Function& rhs) {
+  static const auto func_cmd = [](const Function& lhs, const Function& rhs) {
     return lhs.address() < rhs.address();
   };
   std::set<Function, decltype(func_cmd)> functions_set(func_cmd);

   LIEF::Binary::functions_t unwind_functions = this->unwind_functions();
-  LIEF::Binary::functions_t ctor_functions   = this->ctor_functions();
-  LIEF::Binary::functions_t exported         = get_abstract_exported_functions();
+  LIEF::Binary::functions_t ctor_functions = this->ctor_functions();
+  LIEF::Binary::functions_t exported = get_abstract_exported_functions();

-  std::move(std::begin(unwind_functions), std::end(unwind_functions),
-            std::inserter(functions_set, std::end(functions_set)));
+  std::move(unwind_functions.begin(), unwind_functions.end(),
+            std::inserter(functions_set, functions_set.end()));

-  std::move(std::begin(ctor_functions), std::end(ctor_functions),
-            std::inserter(functions_set, std::end(functions_set)));
+  std::move(ctor_functions.begin(), ctor_functions.end(),
+            std::inserter(functions_set, functions_set.end()));

-  std::move(std::begin(exported), std::end(exported),
-            std::inserter(functions_set, std::end(functions_set)));
-
-  return {std::begin(functions_set), std::end(functions_set)};
+  std::move(exported.begin(), exported.end(),
+            std::inserter(functions_set, functions_set.end()));

+  return {functions_set.begin(), functions_set.end()};
 }

 LIEF::Binary::functions_t Binary::unwind_functions() const {
   static constexpr size_t UNWIND_COMPRESSED = 3;
   static constexpr size_t UNWIND_UNCOMPRESSED = 2;

-  // Set container to have functions with unique address
-  static const auto fcmd = [] (const Function& l, const Function& r) {
+  // Container to store functions with unique addresses
+  static const auto fcmd = [](const Function& l, const Function& r) {
     return l.address() < r.address();
   };
   std::set<Function, decltype(fcmd)> functions(fcmd);
@@ -2037,7 +2131,7 @@ LIEF::Binary::functions_t Binary::unwind_functions() const {
   // Get section content
   const auto hdr = vs.read<details::unwind_info_section_header>();
   if (!hdr) {
-    LIEF_ERR("Can't read unwind section header!");
+    LIEF_ERR("Failed to read unwind section header");
     return {};
   }
   vs.setpos(hdr->index_section_offset);
@@ -2045,31 +2139,40 @@ LIEF::Binary::functions_t Binary::unwind_functions() const {
   size_t lsda_start = -1lu;
   size_t lsda_stop = 0;
   for (size_t i = 0; i < hdr->index_count; ++i) {
-    const auto section_hdr = vs.read<details::unwind_info_section_header_index_entry>();
+    const auto section_hdr =
+        vs.read<details::unwind_info_section_header_index_entry>();
     if (!section_hdr) {
-      LIEF_ERR("Can't read function information at index #{:d}", i);
+      LIEF_ERR("Failed to read function info at index {:d}", i);
       break;
     }

     functions.emplace(section_hdr->function_offset);
     const size_t second_lvl_off = section_hdr->second_level_pages_section_offset;
-    const size_t lsda_off       = section_hdr->lsda_index_array_section_offset;
+    const size_t lsda_off = section_hdr->lsda_index_array_section_offset;

     lsda_start = std::min(lsda_off, lsda_start);
-    lsda_stop  = std::max(lsda_off, lsda_stop);
+    lsda_stop = std::max(lsda_off, lsda_stop);

-    if (second_lvl_off > 0 && vs.can_read<details::unwind_info_regular_second_level_page_header>(second_lvl_off)) {
+    if (second_lvl_off > 0 &&
+        vs.can_read<details::unwind_info_regular_second_level_page_header>(
+            second_lvl_off
+        ))
+    {
       const size_t saved_pos = vs.pos();
       {
         vs.setpos(second_lvl_off);
-        const auto lvl_hdr = vs.peek<details::unwind_info_regular_second_level_page_header>(second_lvl_off);
+        const auto lvl_hdr =
+            vs.peek<details::unwind_info_regular_second_level_page_header>(
+                second_lvl_off
+            );
         if (!lvl_hdr) {
           break;
         }
         if (lvl_hdr->kind == UNWIND_COMPRESSED) {
-          const auto lvl_compressed_hdr = vs.read<details::unwind_info_compressed_second_level_page_header>();
+          const auto lvl_compressed_hdr =
+              vs.read<details::unwind_info_compressed_second_level_page_header>();
           if (!lvl_compressed_hdr) {
-            LIEF_ERR("Can't read lvl_compressed_hdr");
+            LIEF_ERR("Failed to read lvl_compressed_hdr");
             break;
           }

@@ -2082,31 +2185,33 @@ LIEF::Binary::functions_t Binary::unwind_functions() const {
             uint32_t func_off = section_hdr->function_offset + (*entry & 0xffffff);
             functions.emplace(func_off);
           }
-        }
-        else if (lvl_hdr->kind == UNWIND_UNCOMPRESSED) {
-          LIEF_WARN("UNWIND_UNCOMPRESSED is not supported yet!");
-        }
-        else {
+        } else if (lvl_hdr->kind == UNWIND_UNCOMPRESSED) {
+          LIEF_WARN("UNWIND_UNCOMPRESSED is not yet supported");
+        } else {
           LIEF_WARN("Unknown 2nd level kind: {:d}", lvl_hdr->kind);
         }
       }
       vs.setpos(saved_pos);
     }
-
   }

-  const size_t nb_lsda = lsda_stop > lsda_start ? (lsda_stop - lsda_start) / sizeof(details::unwind_info_section_header_lsda_index_entry) : 0;
+  const size_t nb_lsda =
+      lsda_stop > lsda_start ?
+          (lsda_stop - lsda_start) /
+              sizeof(details::unwind_info_section_header_lsda_index_entry) :
+          0;
   vs.setpos(lsda_start);
   for (size_t i = 0; i < nb_lsda; ++i) {
-    const auto hdr = vs.read<details::unwind_info_section_header_lsda_index_entry>();
+    const auto hdr =
+        vs.read<details::unwind_info_section_header_lsda_index_entry>();
     if (!hdr) {
-      LIEF_ERR("Can't read LSDA at index #{:d}", i);
+      LIEF_ERR("Failed to read LSDA at index {:d}", i);
       break;
     }
     functions.emplace(hdr->function_offset);
   }

-  return {std::begin(functions), std::end(functions)};
+  return {functions.begin(), functions.end()};
 }

 // UUID
@@ -2210,15 +2315,15 @@ const RPathCommand* Binary::rpath() const {
 }

 Binary::it_rpaths Binary::rpaths() {
-  return {commands_, [] (const std::unique_ptr<LoadCommand>& cmd) {
-    return RPathCommand::classof(cmd.get());
-  }};
+  return {commands_, [](const std::unique_ptr<LoadCommand>& cmd) {
+            return RPathCommand::classof(cmd.get());
+          }};
 }

 Binary::it_const_rpaths Binary::rpaths() const {
-  return {commands_, [] (const std::unique_ptr<LoadCommand>& cmd) {
-    return RPathCommand::classof(cmd.get());
-  }};
+  return {commands_, [](const std::unique_ptr<LoadCommand>& cmd) {
+            return RPathCommand::classof(cmd.get());
+          }};
 }

 // SymbolCommand command
@@ -2287,15 +2392,15 @@ const SegmentSplitInfo* Binary::segment_split_info() const {
 // SubClient command
 // ++++++++++++++++++++
 Binary::it_sub_clients Binary::subclients() {
-  return {commands_, [] (const std::unique_ptr<LoadCommand>& cmd) {
-    return SubClient::classof(cmd.get());
-  }};
+  return {commands_, [](const std::unique_ptr<LoadCommand>& cmd) {
+            return SubClient::classof(cmd.get());
+          }};
 }

 Binary::it_const_sub_clients Binary::subclients() const {
-  return {commands_, [] (const std::unique_ptr<LoadCommand>& cmd) {
-    return SubClient::classof(cmd.get());
-  }};
+  return {commands_, [](const std::unique_ptr<LoadCommand>& cmd) {
+            return SubClient::classof(cmd.get());
+          }};
 }

 bool Binary::has_subclients() const {
@@ -2393,15 +2498,15 @@ const AtomInfo* Binary::atom_info() const {
 // Notes
 // ++++++++++++++++++++++++++++++++
 Binary::it_notes Binary::notes() {
-  return {commands_, [] (const std::unique_ptr<LoadCommand>& cmd) {
-    return NoteCommand::classof(cmd.get());
-  }};
+  return {commands_, [](const std::unique_ptr<LoadCommand>& cmd) {
+            return NoteCommand::classof(cmd.get());
+          }};
 }

 Binary::it_const_notes Binary::notes() const {
-  return {commands_, [] (const std::unique_ptr<LoadCommand>& cmd) {
-    return NoteCommand::classof(cmd.get());
-  }};
+  return {commands_, [](const std::unique_ptr<LoadCommand>& cmd) {
+            return NoteCommand::classof(cmd.get());
+          }};
 }

 // FunctionVariants
@@ -2426,18 +2531,21 @@ Binary::it_bindings Binary::bindings() const {
   if (const DyldInfo* dyld = dyld_info()) {
     auto begin = BindingInfoIterator(*dyld, 0);
     auto end = BindingInfoIterator(*dyld, dyld->binding_info_.size());
+    // NOLINTNEXTLINE(performance-move-const-arg)
     return make_range(std::move(begin), std::move(end));
   }

   if (const DyldChainedFixups* fixup = dyld_chained_fixups()) {
     auto begin = BindingInfoIterator(*fixup, 0);
     auto end = BindingInfoIterator(*fixup, fixup->all_bindings_.size());
+    // NOLINTNEXTLINE(performance-move-const-arg)
     return make_range(std::move(begin), std::move(end));
   }

   auto begin = BindingInfoIterator(*this, 0);
   auto end = BindingInfoIterator(*this, indirect_bindings_.size());

+  // NOLINTNEXTLINE(performance-move-const-arg)
   return make_range(std::move(begin), std::move(end));
 }

@@ -2464,43 +2572,41 @@ Symbol& Binary::add(const Symbol& symbol) {
 }

 Symbol* Binary::add_local_symbol(uint64_t address, const std::string& name) {
-  Symbol* symbol = nullptr;
-
   auto sym = std::make_unique<Symbol>();
-  sym->category_          = Symbol::CATEGORY::LOCAL;
-  sym->origin_            = Symbol::ORIGIN::SYMTAB;
+  sym->category_ = Symbol::CATEGORY::LOCAL;
+  sym->origin_ = Symbol::ORIGIN::SYMTAB;
   sym->numberof_sections_ = 0;
-  sym->description_       = static_cast<uint16_t>(/* N_NO_DEAD_STRIP */0x20);
+  sym->description_ = static_cast<uint16_t>(/* N_NO_DEAD_STRIP */ 0x20);

   sym->value(address);
   sym->name(name);
-  symbol = sym.get();
-  symbols_.push_back(std::move(sym));
-  return symbol;
+  return symbols_.emplace_back(std::move(sym)).get();
 }

-ExportInfo* Binary::add_exported_function(uint64_t address, const std::string& name) {
+ExportInfo* Binary::add_exported_function(uint64_t address,
+                                          const std::string& name) {
   if (Symbol* symbol = add_local_symbol(address, name)) {
+    uint64_t trie_offset = address;
+    if (trie_offset >= imagebase()) {
+      trie_offset -= imagebase();
+    }
+
     if (DyldExportsTrie* exports = dyld_exports_trie()) {
-      auto export_info = std::make_unique<ExportInfo>(address, 0);
+      auto export_info = std::make_unique<ExportInfo>(trie_offset, 0);
       export_info->symbol_ = symbol;
-      export_info->address(address);
+      export_info->address(trie_offset);
       symbol->export_info_ = export_info.get();

-      auto* info = export_info.get();
-      exports->add(std::move(export_info));
-      return info;
+      return exports->add(std::move(export_info));
     }

     if (DyldInfo* info = dyld_info()) {
-      auto export_info = std::make_unique<ExportInfo>(address, 0);
+      auto export_info = std::make_unique<ExportInfo>(trie_offset, 0);
       export_info->symbol_ = symbol;
-      export_info->address(address);
+      export_info->address(trie_offset);
       symbol->export_info_ = export_info.get();

-      auto* info_ptr = export_info.get();
-      info->add(std::move(export_info));
-      return info_ptr;
+      return info->add(std::move(export_info));
     }
   }
   return nullptr;
@@ -2509,11 +2615,11 @@ ExportInfo* Binary::add_exported_function(uint64_t address, const std::string& n

 const DylibCommand* Binary::find_library(const std::string& name) const {
   auto it = std::find_if(libraries_.begin(), libraries_.end(),
-    [&name] (const DylibCommand* cmd) {
-      const std::string& libpath = cmd->name();
-      return libpath == name || libname(libpath).value_or("") == name;
-    }
-  );
+                         [&name](const DylibCommand* cmd) {
+                           const std::string& libpath = cmd->name();
+                           return libpath == name ||
+                                  libname(libpath).value_or("") == name;
+                         });
   return it == libraries_.end() ? nullptr : *it;
 }

@@ -2529,10 +2635,7 @@ void Binary::refresh_seg_offset() {
 }

 Binary::stub_iterator Binary::symbol_stubs() const {
-  static stub_iterator empty_iterator(
-    Stub::Iterator{},
-    Stub::Iterator{}
-  );
+  static stub_iterator empty_iterator(Stub::Iterator{}, Stub::Iterator{});

   std::vector<const Section*> stub_sections;
   stub_sections.reserve(3);
@@ -2561,11 +2664,9 @@ Binary::stub_iterator Binary::symbol_stubs() const {
   if (stub_sections.empty() || total == 0) {
     return empty_iterator;
   }
-  Stub::Iterator begin(
-      {header_.cpu_type(), header_.cpu_subtype()},
-      std::move(stub_sections), 0
-  );
-  Stub::Iterator end({}, {}, total);
+  Stub::Iterator begin({header_.cpu_type(), header_.cpu_subtype()},
+                       std::move(stub_sections), 0);
+  Stub::Iterator end({Header::CPU_TYPE::ANY, 0}, {}, total);

   return make_range(std::move(begin), std::move(end));
 }
@@ -2578,7 +2679,7 @@ bool Binary::can_cache_segment(const SegmentCommand& segment) {
   if (segment.name() == "__TEXT") {
     // In some cases (c.f. <samples>/MachO/issue_1130.macho)
     // the __TEXT segment can have a file_size set to 0 while it is logically
-    // revelant to cache it
+    // relevant to cache it
     return true;
   }

@@ -2588,39 +2689,164 @@ bool Binary::can_cache_segment(const SegmentCommand& segment) {
 Binary::~Binary() = default;

 std::ostream& Binary::print(std::ostream& os) const {
-  os << "Header" << '\n';
-  os << "======" << '\n';
+  os << "Header {\n" << indent(LIEF::to_string(header()), 2) << "}\n";

-  os << header();
-  os << '\n';
+  if (auto cmds = commands(); !cmds.empty()) {
+    os << fmt::format("Commands (#{})\n", cmds.size());
+    for (size_t i = 0; i < cmds.size(); ++i) {
+      os << fmt::format("  Command #{:02} {{\n", i)
+         << indent(LIEF::to_string(cmds[i]), 4) << "  }\n";
+    }
+  }

+  {
+    const auto segs = segments();
+    if (!segs.empty()) {
+      os << fmt::format("Segments (#{})\n", segs.size());
+      for (size_t i = 0; i < segs.size(); ++i) {
+        os << fmt::format("  Segment #{:02} {{\n", i)
+           << indent(LIEF::to_string(segs[i]), 4) << "  }\n";
+      }
+    }
+  }
+
+  {
+    const auto secs = sections();
+    if (!secs.empty()) {
+      os << fmt::format("Sections (#{})\n", secs.size());
+      for (size_t i = 0; i < secs.size(); ++i) {
+        os << fmt::format("  Section #{:02} {{\n", i)
+           << indent(LIEF::to_string(secs[i]), 4) << "  }\n";
+      }
+    }
+  }

-  os << "Commands" << '\n';
-  os << "========" << '\n';
-  for (const LoadCommand& cmd : commands()) {
-    os << cmd << '\n';
+  if (auto libs = libraries(); !libs.empty()) {
+    os << fmt::format("Libraries (#{})\n", libs.size());
+    for (const DylibCommand& lib : libs) {
+      os << "  " << lib << '\n';
+    }
   }

-  os << '\n';
+  if (auto syms = symbols(); !syms.empty()) {
+    os << fmt::format("Symbols (#{})\n", syms.size());
+    for (const Symbol& symbol : syms) {
+      os << "  " << symbol << '\n';
+    }
+  }

-  os << "Sections" << '\n';
-  os << "========" << '\n';
-  for (const Section& section : sections()) {
-    os << section << '\n';
+  if (auto syms = exported_symbols(); !syms.empty()) {
+    os << fmt::format("Exported Symbols (#{})\n", syms.size());
+    for (const Symbol& symbol : syms) {
+      os << "  " << symbol << '\n';
+    }
+  }
+
+  if (auto syms = imported_symbols(); !syms.empty()) {
+    os << fmt::format("Imported Symbols (#{})\n", syms.size());
+    for (const Symbol& symbol : syms) {
+      os << "  " << symbol << '\n';
+    }
+  }
+
+  if (auto relocs = relocations(); !relocs.empty()) {
+    os << fmt::format("Relocations (#{})\n", relocs.size());
+    for (const Relocation& R : relocs) {
+      os << "  " << R << '\n';
+    }
+  }
+
+  if (auto paths = rpaths(); !paths.empty()) {
+    os << fmt::format("RPaths (#{})\n", paths.size());
+    for (const RPathCommand& rp : paths) {
+      os << "  " << rp << '\n';
+    }
+  }
+
+  if (auto n = notes(); !n.empty()) {
+    os << fmt::format("Notes (#{})\n", n.size());
+    for (size_t i = 0; i < n.size(); ++i) {
+      os << fmt::format("  Note #{:02} {{\n", i)
+         << indent(LIEF::to_string(n[i]), 4) << "  }\n";
+    }
+  }
+
+  if (auto fsets = filesets(); !fsets.empty()) {
+    os << fmt::format("Filesets (#{})\n", fsets.size());
+    for (const Binary& fs : fsets) {
+      os << indent(LIEF::to_string(fs), 2);
+    }
+  }
+
+  if (const UUIDCommand* cmd = uuid()) {
+    os << "UUID {\n" << indent(LIEF::to_string(*cmd), 2) << "}\n";
+  }
+
+  if (const MainCommand* cmd = main_command()) {
+    os << "Main Command {\n" << indent(LIEF::to_string(*cmd), 2) << "}\n";
+  }
+
+  if (const DylinkerCommand* cmd = dylinker()) {
+    os << "Dylinker {\n" << indent(LIEF::to_string(*cmd), 2) << "}\n";
+  }
+
+  if (const DyldInfo* info = dyld_info()) {
+    os << "Dyld Info {\n" << indent(LIEF::to_string(*info), 2) << "}\n";
+  }
+
+  if (const FunctionStarts* fs = function_starts()) {
+    os << "Function Starts {\n" << indent(LIEF::to_string(*fs), 2) << "}\n";
+  }
+
+  if (const SourceVersion* sv = source_version()) {
+    os << "Source Version {\n" << indent(LIEF::to_string(*sv), 2) << "}\n";
+  }
+
+  if (const BuildVersion* bv = build_version()) {
+    os << "Build Version {\n" << indent(LIEF::to_string(*bv), 2) << "}\n";
+  }
+
+  if (const VersionMin* vm = version_min()) {
+    os << "Version Min {\n" << indent(LIEF::to_string(*vm), 2) << "}\n";
   }

-  os << '\n';
+  if (const CodeSignature* cs = code_signature()) {
+    os << "Code Signature {\n" << indent(LIEF::to_string(*cs), 2) << "}\n";
+  }
+
+  if (const CodeSignatureDir* csd = code_signature_dir()) {
+    os << "Code Signature Dir {\n" << indent(LIEF::to_string(*csd), 2) << "}\n";
+  }
+
+  if (const DataInCode* dic = data_in_code()) {
+    os << "Data In Code {\n" << indent(LIEF::to_string(*dic), 2) << "}\n";
+  }

-  os << "Symbols" << '\n';
-  os << "=======" << '\n';
-  for (const Symbol& symbol : symbols()) {
-    os << symbol << '\n';
+  if (const DyldChainedFixups* dcf = dyld_chained_fixups()) {
+    os << "Dyld Chained Fixups {\n" << indent(LIEF::to_string(*dcf), 2) << "}\n";
+  }
+
+  if (const DyldExportsTrie* det = dyld_exports_trie()) {
+    os << "Dyld Exports Trie {\n" << indent(LIEF::to_string(*det), 2) << "}\n";
+  }
+
+  if (const EncryptionInfo* ei = encryption_info()) {
+    os << "Encryption Info {\n" << indent(LIEF::to_string(*ei), 2) << "}\n";
+  }
+
+  if (const TwoLevelHints* tlh = two_level_hints()) {
+    os << "Two Level Hints {\n" << indent(LIEF::to_string(*tlh), 2) << "}\n";
+  }
+
+  if (const SubFramework* sf = sub_framework()) {
+    os << "Sub Framework {\n" << indent(LIEF::to_string(*sf), 2) << "}\n";
+  }
+
+  if (const DyldEnvironment* de = dyld_environment()) {
+    os << "Dyld Environment {\n" << indent(LIEF::to_string(*de), 2) << "}\n";
   }

-  os << '\n';
   return os;
 }

 }
-}
-
diff --git a/deps/LIEF/src/MachO/Binary.tcc b/deps/LIEF/src/MachO/Binary.tcc
index 00c647624d0..c4577f0f520 100644
--- a/deps/LIEF/src/MachO/Binary.tcc
+++ b/deps/LIEF/src/MachO/Binary.tcc
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -21,8 +21,8 @@
 #include "LIEF/errors.hpp"
 #include "internal_utils.hpp"

-namespace LIEF {
-namespace MachO {
+
+namespace LIEF::MachO {

 template<class T>
 bool Binary::has_command() const {
@@ -31,42 +31,44 @@ bool Binary::has_command() const {

 template<class T>
 T* Binary::command() {
-  static_assert(std::is_base_of<LoadCommand, T>::value, "Require inheritance of 'LoadCommand'");
+  static_assert(std::is_base_of_v<LoadCommand, T>,
+                "Require inheritance of 'LoadCommand'");
   return const_cast<T*>(static_cast<const Binary*>(this)->command<T>());
 }

 template<class T>
 const T* Binary::command() const {
-  static_assert(std::is_base_of<LoadCommand, T>::value, "Require inheritance of 'LoadCommand'");
-  const auto it_cmd = std::find_if(
-      std::begin(commands_), std::end(commands_),
-      [] (const std::unique_ptr<LoadCommand>& command) {
-        return T::classof(command.get());
-      });
-
-  if (it_cmd == std::end(commands_)) {
+  static_assert(std::is_base_of_v<LoadCommand, T>,
+                "Require inheritance of 'LoadCommand'");
+  const auto it_cmd =
+      std::find_if(commands_.begin(), commands_.end(),
+                   [](const std::unique_ptr<LoadCommand>& command) {
+                     return T::classof(command.get());
+                   });
+
+  if (it_cmd == commands_.end()) {
     return nullptr;
   }

   return reinterpret_cast<const T*>(it_cmd->get());
-
 }

 template<class T>
 size_t Binary::count_commands() const {
-  static_assert(std::is_base_of<LoadCommand, T>::value, "Require inheritance of 'LoadCommand'");
+  static_assert(std::is_base_of_v<LoadCommand, T>,
+                "Require inheritance of 'LoadCommand'");

-  size_t nb_cmd = std::count_if(
-      std::begin(commands_), std::end(commands_),
-      [] (const std::unique_ptr<LoadCommand>& command) {
-        return T::classof(command.get());
-      });
+  size_t nb_cmd = std::count_if(commands_.begin(), commands_.end(),
+                                [](const std::unique_ptr<LoadCommand>& command) {
+                                  return T::classof(command.get());
+                                });
   return nb_cmd;
 }

 template<class CMD, class Func>
 Binary& Binary::for_commands(Func f) {
-  static_assert(std::is_base_of<LoadCommand, CMD>::value, "Require inheritance of 'LoadCommand'");
+  static_assert(std::is_base_of_v<LoadCommand, CMD>,
+                "Require inheritance of 'LoadCommand'");
   for (const std::unique_ptr<LoadCommand>& cmd : commands_) {
     if (!CMD::classof(cmd.get())) {
       continue;
@@ -77,11 +79,12 @@ Binary& Binary::for_commands(Func f) {
 }

 template<class T>
-ok_error_t Binary::patch_relocation(Relocation& relocation, uint64_t from, uint64_t shift) {
+ok_error_t Binary::patch_relocation(Relocation& relocation, uint64_t from,
+                                    uint64_t shift) {

   SegmentCommand* segment = segment_from_virtual_address(relocation.address());
   if (segment == nullptr) {
-    LIEF_DEBUG("Can't find the segment associated with the relocation: 0x{:x}",
+    LIEF_DEBUG("Can't find the segment associated with the relocation: {:#x}",
                relocation.address());
     return make_error_code(lief_errors::not_found);
   }
@@ -90,7 +93,7 @@ ok_error_t Binary::patch_relocation(Relocation& relocation, uint64_t from, uint6
     return make_error_code(offset.error());
   }
   uint64_t relative_offset = *offset - segment->file_offset();
-  span<uint8_t> segment_content = segment->writable_content();
+  span<uint8_t> segment_content = segment->content();
   const size_t segment_size = segment_content.size();

   if (segment_size == 0) {
@@ -98,13 +101,15 @@ ok_error_t Binary::patch_relocation(Relocation& relocation, uint64_t from, uint6
     return ok();
   }

-  if (relative_offset >= segment_size || (relative_offset + sizeof(T)) >= segment_size) {
+  if (relative_offset >= segment_size ||
+      (relative_offset + sizeof(T)) >= segment_size)
+  {
     LIEF_DEBUG("Offset out of bound for relocation: {}", to_string(relocation));
     return make_error_code(lief_errors::read_out_of_bound);
   }

   auto* ptr_value = reinterpret_cast<T*>(segment_content.data() + relative_offset);
-  if (*ptr_value >= from && is_valid_addr(*ptr_value)) {
+  if (*ptr_value >= from) {
     *ptr_value += shift;
   }
   return ok();
@@ -112,4 +117,3 @@ ok_error_t Binary::patch_relocation(Relocation& relocation, uint64_t from, uint6


 }
-}
diff --git a/deps/LIEF/src/MachO/BinaryParser.cpp b/deps/LIEF/src/MachO/BinaryParser.cpp
index 96eede67e79..8f5b52ee925 100644
--- a/deps/LIEF/src/MachO/BinaryParser.cpp
+++ b/deps/LIEF/src/MachO/BinaryParser.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -29,8 +29,8 @@

 #include "internal_utils.hpp"

-namespace LIEF {
-namespace MachO {
+
+namespace LIEF::MachO {

 BinaryParser::BinaryParser() = default;
 BinaryParser::~BinaryParser() = default;
@@ -40,20 +40,22 @@ std::unique_ptr<Binary> BinaryParser::parse(const std::string& file) {
   return parse(file, ParserConfig::deep());
 }

-std::unique_ptr<Binary> BinaryParser::parse(const std::string& file, const ParserConfig& conf) {
+std::unique_ptr<Binary> BinaryParser::parse(const std::string& file,
+                                            const ParserConfig& conf) {
   if (!is_macho(file)) {
     LIEF_DEBUG("{} is not a Mach-O file", file);
     return nullptr;
   }

   if (!is_fat(file)) {
-    LIEF_ERR("{} is a Fat Mach-O file. Please use MachO::Parser::parse(...)", file);
+    LIEF_ERR("{} is a Fat Mach-O file. Please use MachO::Parser::parse(...)",
+             file);
     return nullptr;
   }

   auto stream = VectorStream::from_file(file);
   if (!stream) {
-    LIEF_ERR("Error while creating the binary stream");
+    LIEF_ERR("Failed to create binary stream");
     return nullptr;
   }

@@ -63,20 +65,21 @@ std::unique_ptr<Binary> BinaryParser::parse(const std::string& file, const Parse
   parser.binary_ = std::unique_ptr<Binary>(new Binary{});
   parser.binary_->fat_offset_ = 0;

-  if(!parser.init_and_parse()) {
-    LIEF_WARN("Parsing with error. The binary might be in an inconsistent state");
+  if (!parser.init_and_parse()) {
+    LIEF_WARN("Parsing errors detected; binary may be inconsistent");
   }

   return std::move(parser.binary_);
 }

-std::unique_ptr<Binary> BinaryParser::parse(const std::vector<uint8_t>& data, const ParserConfig& conf) {
+std::unique_ptr<Binary> BinaryParser::parse(const std::vector<uint8_t>& data,
+                                            const ParserConfig& conf) {
   return parse(data, 0, conf);
 }

-std::unique_ptr<Binary> BinaryParser::parse(const std::vector<uint8_t>& data, uint64_t fat_offset,
-                                            const ParserConfig& conf)
-{
+std::unique_ptr<Binary> BinaryParser::parse(const std::vector<uint8_t>& data,
+                                            uint64_t fat_offset,
+                                            const ParserConfig& conf) {
   if (!is_macho(data)) {
     return nullptr;
   }
@@ -93,25 +96,25 @@ std::unique_ptr<Binary> BinaryParser::parse(const std::vector<uint8_t>& data, ui
   parser.binary_ = std::unique_ptr<Binary>(new Binary{});
   parser.binary_->fat_offset_ = fat_offset;

-  if(!parser.init_and_parse()) {
-    LIEF_WARN("Parsing with error. The binary might be in an inconsistent state");
+  if (!parser.init_and_parse()) {
+    LIEF_WARN("Parsing errors detected; binary may be inconsistent");
   }

   return std::move(parser.binary_);
 }


-std::unique_ptr<Binary> BinaryParser::parse(std::unique_ptr<BinaryStream> stream, uint64_t fat_offset,
-                                            const ParserConfig& conf)
-{
+std::unique_ptr<Binary> BinaryParser::parse(std::unique_ptr<BinaryStream> stream,
+                                            uint64_t fat_offset,
+                                            const ParserConfig& conf) {
   BinaryParser parser;
   parser.config_ = conf;
   parser.stream_ = std::move(stream);
   parser.binary_ = std::unique_ptr<Binary>(new Binary{});
   parser.binary_->fat_offset_ = fat_offset;

-  if(!parser.init_and_parse()) {
-    LIEF_WARN("Parsing with error. The binary might be in an inconsistent state");
+  if (!parser.init_and_parse()) {
+    LIEF_WARN("Parsing errors detected; binary may be inconsistent");
   }

   return std::move(parser.binary_);
@@ -125,37 +128,49 @@ ok_error_t BinaryParser::init_and_parse() {
   }
   const auto type = static_cast<MACHO_TYPES>(*stream_->peek<uint32_t>());

-  is64_ = type == MACHO_TYPES::MAGIC_64 ||
-          type == MACHO_TYPES::CIGAM_64 ||
+  is64_ = type == MACHO_TYPES::MAGIC_64 || type == MACHO_TYPES::CIGAM_64 ||
           type == MACHO_TYPES::NEURAL_MODEL;

   binary_->is64_ = is64_;
-  type_          = type;
+  type_ = type;
   binary_->original_size_ = stream_->size();

-  bool should_swap = type == MACHO_TYPES::CIGAM_64 ||
-                     type == MACHO_TYPES::CIGAM;
+  bool should_swap = type == MACHO_TYPES::CIGAM_64 || type == MACHO_TYPES::CIGAM;

   stream_->set_endian_swap(should_swap);

-  return is64_ ? parse<details::MachO64>() :
-                 parse<details::MachO32>();
+  return is64_ ? parse<details::MachO64>() : parse<details::MachO32>();
 }


-ok_error_t BinaryParser::parse_export_trie(exports_list_t& exports,
-                                           BinaryStream& stream,
-                                           uint64_t start,
-                                           const std::string& prefix,
-                                           bool* invalid_names)
-{
+result<BinaryParser::exports_list_t>
+    BinaryParser::parse_export_trie(BinaryStream& stream, uint64_t start,
+                                    const std::string& prefix, uint32_t depth,
+                                    bool* invalid_names) {
+  static constexpr auto MAX_DEPTH = 60;
+  exports_list_t exports;
+
+  if (depth > MAX_DEPTH) {
+    LIEF_WARN("Maximum recursion depth reached ({})", MAX_DEPTH);
+    return make_error_code(lief_errors::parsing_error);
+  }
+
   if (!stream) {
     return make_error_code(lief_errors::read_error);
   }

+  // Pre-populate the symbol cache to avoid O(n) searches for each export
+  if (memoized_symbols_.empty()) {
+    for (const std::unique_ptr<LIEF::MachO::Symbol>& sym : binary_->symbols_) {
+      if (const std::string& name = sym->name(); !name.empty()) {
+        memoized_symbols_[name] = sym.get();
+      }
+    }
+  }
+
   const auto terminal_size = stream.read<uint8_t>();
   if (!terminal_size) {
-    LIEF_ERR("Can't read terminal size");
+    LIEF_ERR("Failed to read terminal size");
     return make_error_code(lief_errors::read_error);
   }
   uint64_t children_offset = stream.pos() + *terminal_size;
@@ -168,16 +183,18 @@ ok_error_t BinaryParser::parse_export_trie(exports_list_t& exports,
       return make_error_code(lief_errors::read_error);
     }
     uint64_t flags = *res_flags;
-    //uint64_t address = stream_->read_uleb128();
+    // uint64_t address = stream_->read_uleb128();

     const std::string& symbol_name = prefix;
     auto export_info = std::make_unique<ExportInfo>(0, flags, offset);
     Symbol* symbol = nullptr;
-    auto search = memoized_symbols_.find(symbol_name);
-    if (search != memoized_symbols_.end()) {
+    if (auto search = memoized_symbols_.find(symbol_name);
+        search != memoized_symbols_.end())
+    {
       symbol = search->second;
     } else {
-      symbol = binary_->get_symbol(symbol_name);
+      LIEF_DEBUG("Cache miss for symbol: {}", symbol_name);
+      symbol = nullptr;
     }
     if (symbol != nullptr) {
       export_info->symbol_ = symbol;
@@ -185,16 +202,17 @@ ok_error_t BinaryParser::parse_export_trie(exports_list_t& exports,
     } else { // Register it into the symbol table
       auto symbol = std::make_unique<Symbol>();

-      symbol->origin_            = Symbol::ORIGIN::DYLD_EXPORT;
-      symbol->value_             = 0;
-      symbol->type_              = 0;
+      symbol->origin_ = Symbol::ORIGIN::DYLD_EXPORT;
+      symbol->value_ = 0;
+      symbol->type_ = 0;
       symbol->numberof_sections_ = 0;
-      symbol->description_       = 0;
+      symbol->description_ = 0;
       symbol->name(symbol_name);

       // Weak bind of the pointer
-      symbol->export_info_       = export_info.get();
-      export_info->symbol_       = symbol.get();
+      symbol->export_info_ = export_info.get();
+      export_info->symbol_ = symbol.get();
+      memoized_symbols_[symbol_name] = symbol.get();
       binary_->symbols_.push_back(std::move(symbol));
     }

@@ -203,7 +221,7 @@ ok_error_t BinaryParser::parse_export_trie(exports_list_t& exports,
     if (export_info->has(ExportInfo::FLAGS::REEXPORT)) {
       auto res_ordinal = stream.read_uleb128();
       if (!res_ordinal) {
-        LIEF_ERR("Can't read uleb128 to determine the ordinal value");
+        LIEF_ERR("Failed to read uleb128 ordinal value");
         return make_error_code(lief_errors::parsing_error);
       }
       const uint64_t ordinal = *res_ordinal;
@@ -211,7 +229,7 @@ ok_error_t BinaryParser::parse_export_trie(exports_list_t& exports,

       auto res_imported_name = stream.peek_string();
       if (!res_imported_name) {
-        LIEF_ERR("Can't read imported_name");
+        LIEF_ERR("Failed to read imported_name");
         return make_error_code(lief_errors::parsing_error);
       }

@@ -222,28 +240,31 @@ ok_error_t BinaryParser::parse_export_trie(exports_list_t& exports,
       }

       Symbol* symbol = nullptr;
-      auto search = memoized_symbols_.find(imported_name);
-      if (search != memoized_symbols_.end()) {
+      if (auto search = memoized_symbols_.find(imported_name);
+          search != memoized_symbols_.end())
+      {
         symbol = search->second;
       } else {
-        symbol = binary_->get_symbol(imported_name);
+        LIEF_DEBUG("Cache miss for symbol: {}", imported_name);
+        symbol = nullptr;
       }
       if (symbol != nullptr) {
-        export_info->alias_  = symbol;
+        export_info->alias_ = symbol;
         symbol->export_info_ = export_info.get();
-        symbol->value_       = export_info->address();
+        symbol->value_ = export_info->address();
       } else {
         auto symbol = std::make_unique<Symbol>();
-        symbol->origin_            = Symbol::ORIGIN::DYLD_EXPORT;
-        symbol->value_             = export_info->address();
-        symbol->type_              = 0;
+        symbol->origin_ = Symbol::ORIGIN::DYLD_EXPORT;
+        symbol->value_ = export_info->address();
+        symbol->type_ = 0;
         symbol->numberof_sections_ = 0;
-        symbol->description_       = 0;
+        symbol->description_ = 0;
         symbol->name(symbol_name);

         // Weak bind of the pointer
-        symbol->export_info_      = export_info.get();
-        export_info->alias_       = symbol.get();
+        symbol->export_info_ = export_info.get();
+        export_info->alias_ = symbol.get();
+        memoized_symbols_[symbol_name] = symbol.get();
         binary_->symbols_.push_back(std::move(symbol));
       }

@@ -257,7 +278,7 @@ ok_error_t BinaryParser::parse_export_trie(exports_list_t& exports,
     } else {
       auto address = stream.read_uleb128();
       if (!address) {
-        LIEF_ERR("Can't read export address");
+        LIEF_ERR("Failed to read export address");
         return make_error_code(lief_errors::parsing_error);
       }
       export_info->address(*address);
@@ -268,39 +289,39 @@ ok_error_t BinaryParser::parse_export_trie(exports_list_t& exports,
     if (export_info->has(ExportInfo::FLAGS::STUB_AND_RESOLVER)) {
       auto other = stream.read_uleb128();
       if (!other) {
-        LIEF_ERR("Can't read 'other' value for the export info");
+        LIEF_ERR("Failed to read 'other' value for export info");
         return make_error_code(lief_errors::parsing_error);
       }
       export_info->other_ = *other;
     }

     exports.push_back(std::move(export_info));
-
   }
   stream.setpos(children_offset);
   const auto nb_children = stream.read<uint8_t>();
   if (!nb_children) {
-    LIEF_ERR("Can't read nb_children");
+    LIEF_ERR("Failed to read nb_children");
     return make_error_code(lief_errors::parsing_error);
   }
+
   for (size_t i = 0; i < *nb_children; ++i) {
     auto suffix = stream.read_string();
     if (!suffix) {
-      LIEF_ERR("Can't read suffix");
+      LIEF_ERR("Failed to read suffix");
       break;
     }
     std::string name = prefix + std::move(*suffix);

     if (!is_printable(name)) {
       if (!*invalid_names) {
-        LIEF_WARN("The export trie contains non-printable symbols");
+        LIEF_WARN("Export trie contains non-printable symbols");
         *invalid_names = true;
       }
     }

     auto res_child_node_offet = stream.read_uleb128();
     if (!res_child_node_offet) {
-      LIEF_ERR("Can't read child_node_offet");
+      LIEF_ERR("Failed to read child_node_offset");
       break;
     }
     auto child_node_offet = static_cast<uint32_t>(*res_child_node_offet);
@@ -310,26 +331,34 @@ ok_error_t BinaryParser::parse_export_trie(exports_list_t& exports,
     }

     if (!visited_.insert(child_node_offet).second) {
+      LIEF_DEBUG("Cycle detected in export trie at offset {:#x}",
+                 child_node_offet);
       break;
     }

     {
       ScopedStream scoped(stream, child_node_offet);
-      parse_export_trie(exports, *scoped, start, name, invalid_names);
+      if (auto res =
+              parse_export_trie(*scoped, start, name, depth + 1, invalid_names))
+      {
+        exports.insert(exports.end(), std::make_move_iterator(res->begin()),
+                       std::make_move_iterator(res->end()));
+      }
     }
   }
-  return ok();
+
+  return exports;
 }

 ok_error_t BinaryParser::parse_dyld_exports() {
   DyldExportsTrie* exports = binary_->dyld_exports_trie();
   if (exports == nullptr) {
-    LIEF_ERR("Missing LC_DYLD_EXPORTS_TRIE in the main binary");
+    LIEF_ERR("Missing LC_DYLD_EXPORTS_TRIE in main binary");
     return make_error_code(lief_errors::not_found);
   }

   uint32_t offset = exports->data_offset();
-  uint32_t size   = exports->data_size();
+  uint32_t size = exports->data_size();

   if (offset == 0 || size == 0) {
     return ok();
@@ -342,14 +371,14 @@ ok_error_t BinaryParser::parse_dyld_exports() {
   }

   if (linkedit == nullptr) {
-    LIEF_WARN("Can't find the segment that contains the export trie");
+    LIEF_WARN("Segment containing export trie not found");
     return make_error_code(lief_errors::not_found);
   }

-  span<uint8_t> content = linkedit->writable_content();
+  span<uint8_t> content = linkedit->content();
   const uint64_t rel_offset = offset - linkedit->file_offset();
   if (rel_offset > content.size() || (rel_offset + size) > content.size()) {
-    LIEF_ERR("The export trie is out of bounds of the segment {}", linkedit->name());
+    LIEF_ERR("Export trie out of bounds for segment {}", linkedit->name());
     return make_error_code(lief_errors::read_out_of_bound);
   }

@@ -357,8 +386,11 @@ ok_error_t BinaryParser::parse_dyld_exports() {
   SpanStream trie_stream(exports->content_);

   bool invalid_names = false;
-  parse_export_trie(exports->export_info_, trie_stream, offset, "",
-                    &invalid_names);
+  if (auto res = parse_export_trie(trie_stream, offset, "",
+                                   /*depth=*/0, &invalid_names))
+  {
+    exports->export_info_ = std::move(*res);
+  }
   return ok();
 }

@@ -366,12 +398,12 @@ ok_error_t BinaryParser::parse_dyldinfo_export() {
   LIEF_DEBUG("[+] LC_DYLD_INFO.exports");
   DyldInfo* dyldinfo = binary_->dyld_info();
   if (dyldinfo == nullptr) {
-    LIEF_ERR("Missing DyldInfo in the main binary");
+    LIEF_ERR("Missing DyldInfo in main binary");
     return make_error_code(lief_errors::not_found);
   }

   uint32_t offset = std::get<0>(dyldinfo->export_info());
-  uint32_t size   = std::get<1>(dyldinfo->export_info());
+  uint32_t size = std::get<1>(dyldinfo->export_info());

   if (offset == 0 || size == 0) {
     return ok();
@@ -384,14 +416,14 @@ ok_error_t BinaryParser::parse_dyldinfo_export() {
   }

   if (linkedit == nullptr) {
-    LIEF_WARN("Can't find the segment that contains the export trie");
+    LIEF_WARN("Segment containing export trie not found");
     return make_error_code(lief_errors::not_found);
   }

-  span<uint8_t> content = linkedit->writable_content();
+  span<uint8_t> content = linkedit->content();
   const uint64_t rel_offset = offset - linkedit->file_offset();
   if (rel_offset > content.size() || (rel_offset + size) > content.size()) {
-    LIEF_ERR("The export trie is out of bounds of the segment {}", linkedit->name());
+    LIEF_ERR("Export trie out of bounds for segment {}", linkedit->name());
     return make_error_code(lief_errors::read_out_of_bound);
   }

@@ -400,7 +432,11 @@ ok_error_t BinaryParser::parse_dyldinfo_export() {
   SpanStream trie_stream(dyldinfo->export_trie_);

   bool invalid_names = false;
-  parse_export_trie(dyldinfo->export_info_, trie_stream, offset, "", &invalid_names);
+  if (auto exports = parse_export_trie(trie_stream, offset, "",
+                                       /*depth=*/0, &invalid_names))
+  {
+    dyldinfo->export_info_ = std::move(*exports);
+  }
   return ok();
 }

@@ -412,9 +448,9 @@ ok_error_t BinaryParser::parse_overlay() {
   }

   const uint64_t overlay_size = stream_->size() - last_offset;
-  LIEF_INFO("Overlay detected at 0x{:x} ({} bytes)", last_offset, overlay_size);
+  LIEF_INFO("Overlay detected at {:#x} ({} bytes)", last_offset, overlay_size);
   if (!stream_->peek_data(binary_->overlay_, last_offset, overlay_size)) {
-    LIEF_WARN("Can't read overlay data");
+    LIEF_WARN("Failed to read overlay data");
     return make_error_code(lief_errors::read_error);
   }
   return ok();
@@ -423,35 +459,45 @@ ok_error_t BinaryParser::parse_overlay() {

 ok_error_t BinaryParser::parse_indirect_symbols(DynamicSymbolCommand& cmd,
                                                 std::vector<Symbol*>& symtab,
-                                                BinaryStream& indirect_stream)
-{
+                                                BinaryStream& indirect_stream) {
+  if (symtab.empty()) {
+    LIEF_WARN("Empty symtab: cannot process indirect symbols");
+    return make_error_code(lief_errors::corrupted);
+  }
+
   for (size_t i = 0; i < cmd.nb_indirect_symbols(); ++i) {
     uint32_t index = 0;
     auto res = indirect_stream.read<uint32_t>();
     if (!res) {
-      LIEF_ERR("Can't read indirect symbol #{}", index);
+      LIEF_ERR("Failed to read indirect symbol #{}", index);
       return make_error_code(lief_errors::read_error);
     }
     index = *res;

     if (index == details::INDIRECT_SYMBOL_ABS) {
-      cmd.indirect_symbols_.push_back(const_cast<Symbol*>(&Symbol::indirect_abs()));
+      cmd.indirect_symbols_.push_back(
+          const_cast<Symbol*>(&Symbol::indirect_abs())
+      );
       continue;
     }

     if (index == details::INDIRECT_SYMBOL_LOCAL) {
-      cmd.indirect_symbols_.push_back(const_cast<Symbol*>(&Symbol::indirect_local()));
+      cmd.indirect_symbols_.push_back(
+          const_cast<Symbol*>(&Symbol::indirect_local())
+      );
       continue;
     }

     if (index == (details::INDIRECT_SYMBOL_LOCAL | details::INDIRECT_SYMBOL_ABS)) {
-      cmd.indirect_symbols_.push_back(const_cast<Symbol*>(&Symbol::indirect_abs_local()));
+      cmd.indirect_symbols_.push_back(
+          const_cast<Symbol*>(&Symbol::indirect_abs_local())
+      );
       continue;
     }

     if (index >= symtab.size()) {
-      LIEF_ERR("Indirect symbol index is out of range ({}/0x{:x} vs max sym: {})",
-               index, index, symtab.size());
+      LIEF_ERR("Indirect symbol index out of range ({}/{:#x}, max: {})", index,
+               index, symtab.size());
       continue;
     }

@@ -464,5 +510,4 @@ ok_error_t BinaryParser::parse_indirect_symbols(DynamicSymbolCommand& cmd,
   return ok();
 }

-} // namespace MachO
-} // namespace LIEF
+} // namespace LIEF::MachO
diff --git a/deps/LIEF/src/MachO/BinaryParser.tcc b/deps/LIEF/src/MachO/BinaryParser.tcc
index bbdfabc93c1..0636c711703 100644
--- a/deps/LIEF/src/MachO/BinaryParser.tcc
+++ b/deps/LIEF/src/MachO/BinaryParser.tcc
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -14,15 +14,17 @@
  * limitations under the License.
  */

+#include <cstddef>
 #include <memory>
+#include <unordered_set>

 #include "logging.hpp"
-#include "internal_utils.hpp"

 #include "MachO/ChainedFixup.hpp"

 #include "LIEF/BinaryStream/SpanStream.hpp"
 #include "LIEF/BinaryStream/MemoryStream.hpp"
+#include "LIEF/BinaryStream/DumpStream.hpp"

 #include "LIEF/MachO/AtomInfo.hpp"
 #include "LIEF/MachO/Binary.hpp"
@@ -46,6 +48,7 @@
 #include "LIEF/MachO/FunctionStarts.hpp"
 #include "LIEF/MachO/FunctionVariants.hpp"
 #include "LIEF/MachO/FunctionVariantFixups.hpp"
+#include "LIEF/MachO/LazyLoadDylibInfo.hpp"
 #include "LIEF/MachO/IndirectBindingInfo.hpp"
 #include "LIEF/MachO/LinkEdit.hpp"
 #include "LIEF/MachO/LinkerOptHint.hpp"
@@ -74,12 +77,12 @@
 #include "MachO/Structures.hpp"
 #include "MachO/ChainedFixup.hpp"
 #include "MachO/ChainedBindingInfoList.hpp"
+#include "MachO/dyld_opcodes.hpp"

 #include "Object.tcc"


-namespace LIEF {
-namespace MachO {
+namespace LIEF::MachO {

 static constexpr uint8_t BYTE_BITS = std::numeric_limits<uint8_t>::digits;
 static_assert(BYTE_BITS == 8, "The number of bits in a byte is not 8");
@@ -87,10 +90,10 @@ static_assert(BYTE_BITS == 8, "The number of bits in a byte is not 8");
 namespace {
 struct ThreadedBindData {
   std::string symbol_name;
-  int64_t addend          = 0;
+  int64_t addend = 0;
   int64_t library_ordinal = 0;
-  uint8_t symbol_flags    = 0;
-  uint8_t type            = 0;
+  uint8_t symbol_flags = 0;
+  uint8_t type = 0;
 };
 }

@@ -103,7 +106,8 @@ ok_error_t BinaryParser::parse() {

   /*
    * We must perform this post-processing BEFORE parsing
-   * the exports trie as it could create new symbols and break the DynamicSymbolCommand's indexes
+   * the exports trie as it could create new symbols and break the
+   * DynamicSymbolCommand's indexes
    */
   if (SymbolCommand* symtab = binary_->symbol_command()) {
     post_process<MACHO_T>(*symtab);
@@ -194,14 +198,16 @@ ok_error_t BinaryParser::parse() {
   if (FunctionVariantFixups* fixups = binary_->function_variant_fixups()) {
     post_process<MACHO_T>(*fixups);
   }
+  for (LazyLoadDylibInfo& lazy : binary_->lazy_load_dylib_infos()) {
+    post_process<MACHO_T>(lazy);
+  }

-  if (binary_->dyld_info() == nullptr &&
-      binary_->dyld_chained_fixups() == nullptr)
+  if (binary_->dyld_info() == nullptr && binary_->dyld_chained_fixups() == nullptr)
   {
     infer_indirect_bindings<MACHO_T>();
   }

-  if (config_.parse_overlay) {
+  if (config_.parse_overlay && !stream_->is_memory_view()) {
     parse_overlay();
   }

@@ -225,7 +231,7 @@ ok_error_t BinaryParser::parse_header() {
 template<class MACHO_T>
 ok_error_t BinaryParser::parse_load_commands() {
   using segment_command_t = typename MACHO_T::segment_command;
-  using section_t         = typename MACHO_T::section;
+  using section_t = typename MACHO_T::section;

   LIEF_DEBUG("[+] Building Load commands");

@@ -250,17 +256,25 @@ ok_error_t BinaryParser::parse_load_commands() {
   std::set<LoadCommand::TYPE> not_parsed;
   int64_t imagebase = -1;

+  uint64_t twolevel_cnt_hint = stream_->size() / sizeof(details::twolevel_hint);
+
   for (size_t i = 0; i < nbcmds; ++i) {
     const auto command = stream_->peek<details::load_command>(loadcommands_offset);
     if (!command) {
       break;
     }

+    if (command->cmdsize < sizeof(details::load_command)) {
+      LIEF_ERR("Load command #{} has an invalid cmdsize ({:#x})", i,
+               command->cmdsize);
+      break;
+    }
+
     std::unique_ptr<LoadCommand> load_command;
     const auto cmd_type = static_cast<LoadCommand::TYPE>(command->cmd);

-    LIEF_DEBUG("Parsing command #{:02d}: {} (0x{:04x})",
-               i, to_string(cmd_type), (uint64_t)cmd_type);
+    LIEF_DEBUG("Parsing command #{:02d}: {} ({:#06x})", i, to_string(cmd_type),
+               (uint64_t)cmd_type);

     switch (cmd_type) {

@@ -269,98 +283,120 @@ ok_error_t BinaryParser::parse_load_commands() {
       // ===============
       case LoadCommand::TYPE::SEGMENT_64:
       case LoadCommand::TYPE::SEGMENT:
-        {
-          /*
-           * DO NOT FORGET TO UPDATE SegmentCommand::classof
-           */
-          uint64_t local_offset = loadcommands_offset;
-          const auto segment_cmd = stream_->peek<segment_command_t>(loadcommands_offset);
-          if (!segment_cmd) {
-            LIEF_ERR("Can't parse segment command #{}", i);
-            break;
-          }
-
-          if (std::string(segment_cmd->segname, 10) == "__LINKEDIT") {
-            load_command = std::make_unique<LinkEdit>(*segment_cmd);
-          } else {
-            load_command = std::make_unique<SegmentCommand>(*segment_cmd);
-          }
-
-          local_offset += sizeof(segment_command_t);
+      {
+        /*
+         * DO NOT FORGET TO UPDATE SegmentCommand::classof
+         */
+        uint64_t local_offset = loadcommands_offset;
+        const auto segment_cmd =
+            stream_->peek<segment_command_t>(loadcommands_offset);
+        if (!segment_cmd) {
+          LIEF_ERR("Can't parse segment command #{}", i);
+          break;
+        }

-          auto* segment = load_command->as<SegmentCommand>();
-          segment->index_ = binary_->segments_.size();
-          binary_->segments_.push_back(segment);
+        if (std::string(segment_cmd->segname, 10) == "__LINKEDIT") {
+          load_command = std::make_unique<LinkEdit>(*segment_cmd);
+        } else {
+          load_command = std::make_unique<SegmentCommand>(*segment_cmd);
+        }

-          if (Binary::can_cache_segment(*segment)) {
-            binary_->offset_seg_[segment->file_offset()] = segment;
-          }
+        local_offset += sizeof(segment_command_t);

-          if (segment->name() == "__TEXT" && imagebase < 0) {
-            imagebase = segment->virtual_address();
-          }
+        auto* segment = load_command->as<SegmentCommand>();
+        segment->index_ = binary_->segments_.size();
+        binary_->segments_.push_back(segment);

-          if (MemoryStream::classof(*stream_)) {
-            // Link the memory stream with our
-            // binary object so that is can translate virtual address to offset
-            static_cast<MemoryStream&>(*stream_).binary(*binary_);
-          }
+        if (Binary::can_cache_segment(*segment)) {
+          binary_->offset_seg_[segment->file_offset()] = segment;
+        }

-          if (segment->file_size() > 0) {
-            if (MemoryStream::classof(*stream_)) {
-              auto& memstream = static_cast<MemoryStream&>(*stream_);
-              uintptr_t segment_va = segment->virtual_address();
-              if (imagebase >= 0 && segment_va >= static_cast<uint64_t>(imagebase)) {
-                segment_va -= static_cast<uint64_t>(imagebase);
-              }
+        if (segment->name() == "__TEXT" && imagebase < 0) {
+          imagebase = segment->virtual_address();
+        }

-              uintptr_t address = memstream.base_address() + segment_va;
-              const auto* p = reinterpret_cast<const uint8_t*>(address);
-              segment->data_ = {p, p + segment->file_size()};
+        // Link the memory stream with our
+        // binary object so that it can translate virtual address to offset
+        stream_->bind_binary(*binary_);
+
+        if (segment->file_size() > 0) {
+          if (auto* memstream = stream_->cast<MemoryStream>()) {
+            uintptr_t segment_va = segment->virtual_address();
+            if (imagebase < 0) {
+              LIEF_WARN("Segment {}: missing __TEXT/imagebase for the in-memory "
+                        "rebasing",
+                        segment->name());
             } else {
-              if (!stream_->peek_data(segment->data_,
-                                      segment->file_offset(),
-                                      segment->file_size(),
-                                      segment->virtual_address()))
-              {
-                LIEF_ERR("Segment {}: content corrupted!", segment->name());
+              if (segment_va >= (uint64_t)imagebase) {
+                segment_va -= (uint64_t)imagebase;
               }
+              const uint64_t msize = memstream->size();
+              if (segment_va >= msize) {
+                LIEF_WARN("Segment {}: virtual address {:#x} is beyond the "
+                          "memory size {:#x}",
+                          segment->name(), segment_va, msize);
+              } else {
+                const uint64_t avail = msize - segment_va;
+                const uint64_t n = std::min<uint64_t>(segment->file_size(), avail);
+                uintptr_t address = memstream->base_address() + segment_va;
+                const auto* p = reinterpret_cast<const uint8_t*>(address);
+                segment->data_ = {p, p + n};
+              }
+            }
+          } else {
+            if (!stream_->peek_data(segment->data_, segment->file_offset(),
+                                    segment->file_size(),
+                                    segment->virtual_address()))
+            {
+              LIEF_ERR("Segment {}: content corrupted", segment->name());
             }
           }
+        }

-          // --------
-          // Sections
-          // --------
-          for (size_t j = 0; j < segment->numberof_sections(); ++j) {
-            const auto section_header = stream_->peek<section_t>(local_offset);
-            if (!section_header) {
-              LIEF_ERR("Can't parse section in {}#{}",
-                       load_command->as<SegmentCommand>()->name(), i);
-              break;
-            }
-            auto section = std::make_unique<Section>(*section_header);
+        // --------
+        // Sections
+        // --------
+        uint64_t nsects = segment->numberof_sections();
+        uint64_t max_sects = 0;
+        if (segment_cmd->cmdsize >= sizeof(segment_command_t)) {
+          max_sects = (segment_cmd->cmdsize - sizeof(segment_command_t)) /
+                      sizeof(section_t);
+        }

-            binary_->sections_.push_back(section.get());
-            if (section->size_ > 0 &&
-                section->type() != Section::TYPE::ZEROFILL &&
-                section->type() != Section::TYPE::THREAD_LOCAL_ZEROFILL &&
-                section->offset_ < low_fileoff)
-            {
-              low_fileoff = section->offset_;
-            }
-            section->segment_ = segment;
-            segment->sections_.push_back(std::move(section));
-            local_offset += sizeof(section_t);
+        if (nsects > max_sects) {
+          LIEF_WARN("Segment '{}': nsects ({}) does not fit in the command size; "
+                    "clamping to {}",
+                    segment->name(), nsects, max_sects);
+          nsects = max_sects;
+        }
+        for (size_t j = 0; j < nsects; ++j) {
+          const auto section_header = stream_->peek<section_t>(local_offset);
+          if (!section_header) {
+            LIEF_ERR("Can't parse section in {}#{}",
+                     load_command->as<SegmentCommand>()->name(), i);
+            break;
           }
-          if (segment->numberof_sections() == 0 &&
-              segment->file_offset() != 0 &&
-              segment->file_size() != 0 &&
-              segment->file_offset() < low_fileoff)
+
+          std::unique_ptr<Section> section = Section::create(*section_header);
+
+          binary_->sections_.push_back(section.get());
+          if (section->size_ > 0 && section->type() != Section::TYPE::ZEROFILL &&
+              section->type() != Section::TYPE::THREAD_LOCAL_ZEROFILL &&
+              section->offset_ < low_fileoff)
           {
-            low_fileoff = segment->file_offset();
+            low_fileoff = section->offset_;
           }
-          break;
+          section->segment_ = segment;
+          segment->sections_.push_back(std::move(section));
+          local_offset += sizeof(section_t);
         }
+        if (segment->numberof_sections() == 0 && segment->file_offset() != 0 &&
+            segment->file_size() != 0 && segment->file_offset() < low_fileoff)
+        {
+          low_fileoff = segment->file_offset();
+        }
+        break;
+      }


       // =============
@@ -372,537 +408,578 @@ ok_error_t BinaryParser::parse_load_commands() {
       case LoadCommand::TYPE::REEXPORT_DYLIB:
       case LoadCommand::TYPE::LOAD_UPWARD_DYLIB:
       case LoadCommand::TYPE::LAZY_LOAD_DYLIB:
-        {
-          /*
-           * DO NOT FORGET TO UPDATE DylibCommand::classof
-           */
-          const auto cmd = stream_->peek<details::dylib_command>(loadcommands_offset);
-          if (!cmd) {
-            LIEF_ERR("Can't read dylib_command");
-            break;
-          }
-
-          load_command = std::make_unique<DylibCommand>(*cmd);
-          const uint32_t str_name_offset = cmd->name;
-          auto name = stream_->peek_string_at(loadcommands_offset + str_name_offset);
-          if (!name) {
-            LIEF_ERR("Can't read Dylib string value");
-            break;
-          }
+      {
+        /*
+         * DO NOT FORGET TO UPDATE DylibCommand::classof
+         */
+        const auto cmd =
+            stream_->peek<details::dylib_command>(loadcommands_offset);
+        if (!cmd) {
+          LIEF_ERR("Can't read dylib_command");
+          break;
+        }

-          auto* lib = load_command->as<DylibCommand>();
-          lib->name(*name);
-          binary_->libraries_.push_back(lib);
-          if (cmd_type != LoadCommand::TYPE::ID_DYLIB) {
-            binding_libs_.push_back(lib);
-          }
+        load_command = std::make_unique<DylibCommand>(*cmd);
+        const uint32_t str_name_offset = cmd->name;
+        auto name = stream_->peek_string_at(loadcommands_offset + str_name_offset);
+        if (!name) {
+          LIEF_ERR("Can't read Dylib string value");
           break;
         }

+        auto* lib = load_command->as<DylibCommand>();
+        lib->name(*name);
+        binary_->libraries_.push_back(lib);
+        if (cmd_type != LoadCommand::TYPE::ID_DYLIB) {
+          binding_libs_.push_back(lib);
+        }
+        break;
+      }
+
       // =============
       // RPath Command
       // =============
       case LoadCommand::TYPE::RPATH:
-        {
-          /*
-           * DO NOT FORGET TO UPDATE RPathCommand::classof
-           */
-          const auto cmd = stream_->peek<details::rpath_command>(loadcommands_offset);
-          if (!cmd) {
-            LIEF_ERR("Can't read rpath_command");
-            break;
-          }
-
-          load_command = std::make_unique<RPathCommand>(*cmd);
-          const uint32_t str_path_offset = cmd->path;
-          auto path = stream_->peek_string_at(loadcommands_offset + str_path_offset);
-          if (!path) {
-            LIEF_ERR("Can't read rpath_command.path");
-            break;
-          }
+      {
+        /*
+         * DO NOT FORGET TO UPDATE RPathCommand::classof
+         */
+        const auto cmd =
+            stream_->peek<details::rpath_command>(loadcommands_offset);
+        if (!cmd) {
+          LIEF_ERR("Can't read rpath_command");
+          break;
+        }

-          load_command->as<RPathCommand>()->path(*path);
+        load_command = std::make_unique<RPathCommand>(*cmd);
+        const uint32_t str_path_offset = cmd->path;
+        auto path = stream_->peek_string_at(loadcommands_offset + str_path_offset);
+        if (!path) {
+          LIEF_ERR("Can't read rpath_command.path");
           break;
         }

+        load_command->as<RPathCommand>()->path(*path);
+        break;
+      }
+
       // ====
       // UUID
       // ====
       case LoadCommand::TYPE::UUID:
-        {
-          /*
-           * DO NOT FORGET TO UPDATE UUIDCommand::classof
-           */
-          const auto cmd = stream_->peek<details::uuid_command>(loadcommands_offset);
-          if (!cmd) {
-            LIEF_ERR("Can't read uuid_command");
-            break;
-          }
-          load_command = std::make_unique<UUIDCommand>(*cmd);
+      {
+        /*
+         * DO NOT FORGET TO UPDATE UUIDCommand::classof
+         */
+        const auto cmd = stream_->peek<details::uuid_command>(loadcommands_offset);
+        if (!cmd) {
+          LIEF_ERR("Can't read uuid_command");
           break;
         }
+        load_command = std::make_unique<UUIDCommand>(*cmd);
+        break;
+      }

       // ==============
       // Dynamic Linker
       // ==============
       case LoadCommand::TYPE::LOAD_DYLINKER:
       case LoadCommand::TYPE::ID_DYLINKER:
-        {
-          /*
-           * DO NOT FORGET TO UPDATE DylinkerCommand::classof
-           */
-          const auto cmd = stream_->peek<details::dylinker_command>(loadcommands_offset);
-          if (!cmd) {
-            LIEF_ERR("Can't read dylinker_command");
-            break;
-          }
+      {
+        /*
+         * DO NOT FORGET TO UPDATE DylinkerCommand::classof
+         */
+        const auto cmd =
+            stream_->peek<details::dylinker_command>(loadcommands_offset);
+        if (!cmd) {
+          LIEF_ERR("Can't read dylinker_command");
+          break;
+        }

-          load_command = std::make_unique<DylinkerCommand>(*cmd);
+        load_command = std::make_unique<DylinkerCommand>(*cmd);

-          const uint32_t linker_name_offset = cmd->name;
-          auto name = stream_->peek_string_at(loadcommands_offset + linker_name_offset);
-          if (!name) {
-            LIEF_ERR("Can't read dylinker_command.name");
-            break;
-          }
-          load_command->as<DylinkerCommand>()->name(*name);
+        const uint32_t linker_name_offset = cmd->name;
+        auto name =
+            stream_->peek_string_at(loadcommands_offset + linker_name_offset);
+        if (!name) {
+          LIEF_ERR("Can't read dylinker_command.name");
           break;
         }
+        load_command->as<DylinkerCommand>()->name(*name);
+        break;
+      }

       // ======
       // Thread
       // ======
       case LoadCommand::TYPE::THREAD:
       case LoadCommand::TYPE::UNIXTHREAD:
-        {
-          /*
-           * DO NOT FORGET TO UPDATE ThreadCommand::classof
-           */
-          const auto cmd = stream_->peek<details::thread_command>(loadcommands_offset);
-          if (!cmd) {
-            LIEF_ERR("Can't read thread_command");
+      {
+        /*
+         * DO NOT FORGET TO UPDATE ThreadCommand::classof
+         */
+        const auto cmd =
+            stream_->peek<details::thread_command>(loadcommands_offset);
+        if (!cmd) {
+          LIEF_ERR("Can't read thread_command");
+          break;
+        }
+        load_command = std::make_unique<ThreadCommand>(*cmd);
+
+        auto* thread = load_command->as<ThreadCommand>();
+        thread->architecture_ = binary_->header().cpu_type();
+        LIEF_DEBUG("FLAVOR: {} | COUNT: {}", cmd->flavor, cmd->count);
+        const uint64_t state_offset =
+            loadcommands_offset + sizeof(details::thread_command);
+        const Header::CPU_TYPE arch = binary_->header().cpu_type();
+        switch (arch) {
+          case Header::CPU_TYPE::X86:
+          {
+            if (!stream_->peek_data(thread->state_, state_offset,
+                                    sizeof(details::x86_thread_state_t)))
+            {
+              LIEF_ERR("Can't read the state data");
+            }
             break;
           }
-          load_command = std::make_unique<ThreadCommand>(*cmd);
-
-          auto* thread = load_command->as<ThreadCommand>();
-          thread->architecture_ = binary_->header().cpu_type();
-          LIEF_DEBUG("FLAVOR: {} | COUNT: {}", cmd->flavor, cmd->count);
-          const uint64_t state_offset = loadcommands_offset + sizeof(details::thread_command);
-          const Header::CPU_TYPE arch = binary_->header().cpu_type();
-          switch (arch) {
-            case Header::CPU_TYPE::X86:
-              {
-                if (!stream_->peek_data(thread->state_, state_offset,
-                      sizeof(details::x86_thread_state_t)))
-                {
-                  LIEF_ERR("Can't read the state data");
-                }
-                break;
-              }

-            case Header::CPU_TYPE::X86_64:
-              {
-                if (!stream_->peek_data(thread->state_, state_offset,
-                      sizeof(details::x86_thread_state64_t)))
-                {
-                  LIEF_ERR("Can't read the state data");
-                }
-                break;
-              }
+          case Header::CPU_TYPE::X86_64:
+          {
+            if (!stream_->peek_data(thread->state_, state_offset,
+                                    sizeof(details::x86_thread_state64_t)))
+            {
+              LIEF_ERR("Can't read the state data");
+            }
+            break;
+          }

-            case Header::CPU_TYPE::ARM:
-              {
-                if (!stream_->peek_data(thread->state_, state_offset,
-                      sizeof(details::arm_thread_state_t)))
-                {
-                  LIEF_ERR("Can't read the state data");
-                }
-                break;
-              }
+          case Header::CPU_TYPE::ARM:
+          {
+            if (!stream_->peek_data(thread->state_, state_offset,
+                                    sizeof(details::arm_thread_state_t)))
+            {
+              LIEF_ERR("Can't read the state data");
+            }
+            break;
+          }

-            case Header::CPU_TYPE::ARM64:
-              {
-                if (!stream_->peek_data(thread->state_, state_offset,
-                      sizeof(details::arm_thread_state64_t)))
-                {
-                  LIEF_ERR("Can't read the state data");
-                }
-                break;
-              }
+          case Header::CPU_TYPE::ARM64:
+          {
+            if (!stream_->peek_data(thread->state_, state_offset,
+                                    sizeof(details::arm_thread_state64_t)))
+            {
+              LIEF_ERR("Can't read the state data");
+            }
+            break;
+          }

-            case Header::CPU_TYPE::POWERPC:
-              {
-                if (!stream_->peek_data(thread->state_, state_offset,
-                     sizeof(details::ppc_thread_state_t)))
-                {
-                  LIEF_ERR("Can't read the state data");
-                }
-                break;
-              }
+          case Header::CPU_TYPE::POWERPC:
+          {
+            if (!stream_->peek_data(thread->state_, state_offset,
+                                    sizeof(details::ppc_thread_state_t)))
+            {
+              LIEF_ERR("Can't read the state data");
+            }
+            break;
+          }

-            case Header::CPU_TYPE::POWERPC64:
-              {
-                if (!stream_->peek_data(thread->state_, state_offset,
-                     sizeof(details::ppc_thread_state64_t)))
-                {
-                  LIEF_ERR("Can't read the state data");
-                }
-                break;
-              }
+          case Header::CPU_TYPE::POWERPC64:
+          {
+            if (!stream_->peek_data(thread->state_, state_offset,
+                                    sizeof(details::ppc_thread_state64_t)))
+            {
+              LIEF_ERR("Can't read the state data");
+            }
+            break;
+          }

-            default:
-              {
-                static std::set<int32_t> ARCH_ERR;
-                if (ARCH_ERR.insert((int32_t)arch).second) {
-                  LIEF_ERR("Unknown architecture ({})", (int32_t)arch);
-                }
-              }
+          default:
+          {
+            static std::set<int32_t> ARCH_ERR;
+            if (ARCH_ERR.insert((int32_t)arch).second) {
+              LIEF_ERR("Unknown architecture ({})", (int32_t)arch);
+            }
           }
-          break;
         }
+        break;
+      }

       // ===============
       // Routine command
       // ===============
       case LoadCommand::TYPE::ROUTINES_64:
-        {
-          const auto cmd = stream_->peek<details::routines_command_64>(loadcommands_offset);
-          if (!cmd) {
-            LIEF_ERR("Can't read routines_command_64");
-            break;
-          }
-          load_command = std::make_unique<Routine>(*cmd);
+      {
+        const auto cmd =
+            stream_->peek<details::routines_command_64>(loadcommands_offset);
+        if (!cmd) {
+          LIEF_ERR("Can't read routines_command_64");
           break;
         }
+        load_command = std::make_unique<Routine>(*cmd);
+        break;
+      }

       case LoadCommand::TYPE::ROUTINES:
-        {
-          const auto cmd = stream_->peek<details::routines_command_32>(loadcommands_offset);
-          if (!cmd) {
-            LIEF_ERR("Can't read routines_command_32");
-            break;
-          }
-          load_command = std::make_unique<Routine>(*cmd);
+      {
+        const auto cmd =
+            stream_->peek<details::routines_command_32>(loadcommands_offset);
+        if (!cmd) {
+          LIEF_ERR("Can't read routines_command_32");
           break;
         }
+        load_command = std::make_unique<Routine>(*cmd);
+        break;
+      }

-      // =============
-      // Symbols table
-      // =============
+      // ============
+      // Symbol table
+      // ============
       case LoadCommand::TYPE::SYMTAB:
-        {
-          /*
-           * DO NOT FORGET TO UPDATE SymbolCommand::classof
-           */
-          LIEF_DEBUG("[+] Parsing symbols");
-
-          const auto cmd = stream_->peek<details::symtab_command>(loadcommands_offset);
-          if (!cmd) {
-            LIEF_ERR("Can't read symtab_command");
-            break;
-          }
+      {
+        /*
+         * DO NOT FORGET TO UPDATE SymbolCommand::classof
+         */
+        LIEF_DEBUG("[+] Parsing symbols");
+
+        const auto cmd =
+            stream_->peek<details::symtab_command>(loadcommands_offset);
+        if (!cmd) {
+          LIEF_ERR("Can't read symtab_command");
+          break;
+        }


-          LIEF_DEBUG("LC_SYMTAB.symoff:  0x{:016x}", cmd->symoff);
-          LIEF_DEBUG("LC_SYMTAB.nsyms:   0x{:016x}", cmd->nsyms);
-          LIEF_DEBUG("LC_SYMTAB.stroff:  0x{:016x}", cmd->stroff);
-          LIEF_DEBUG("LC_SYMTAB.strsize: 0x{:016x}", cmd->strsize);
+        LIEF_DEBUG("LC_SYMTAB.symoff:  {:#018x}", cmd->symoff);
+        LIEF_DEBUG("LC_SYMTAB.nsyms:   {:#018x}", cmd->nsyms);
+        LIEF_DEBUG("LC_SYMTAB.stroff:  {:#018x}", cmd->stroff);
+        LIEF_DEBUG("LC_SYMTAB.strsize: {:#018x}", cmd->strsize);

-          load_command = std::make_unique<SymbolCommand>(*cmd);
-          break;
-        }
+        load_command = std::make_unique<SymbolCommand>(*cmd);
+        break;
+      }

       // ===============
       // Dynamic Symbols
       // ===============
       case LoadCommand::TYPE::DYSYMTAB:
-        {
-          /*
-           * DO NOT FORGET TO UPDATE DynamicSymbolCommand::classof
-           */
-          LIEF_DEBUG("[+] Parsing dynamic symbols");
-          const auto cmd = stream_->peek<details::dysymtab_command>(loadcommands_offset);
-          if (!cmd) {
-            LIEF_ERR("Can't parse dysymtab_command");
-            break;
-          }
-          load_command = std::make_unique<DynamicSymbolCommand>(*cmd);
+      {
+        /*
+         * DO NOT FORGET TO UPDATE DynamicSymbolCommand::classof
+         */
+        LIEF_DEBUG("[+] Parsing dynamic symbols");
+        const auto cmd =
+            stream_->peek<details::dysymtab_command>(loadcommands_offset);
+        if (!cmd) {
+          LIEF_ERR("Can't parse dysymtab_command");
           break;
         }
+        load_command = std::make_unique<DynamicSymbolCommand>(*cmd);
+        break;
+      }

       // ===============
-      // Dyd Info
+      // Dyld Info
       // ===============
       case LoadCommand::TYPE::DYLD_INFO:
       case LoadCommand::TYPE::DYLD_INFO_ONLY:
-        {
-          /*
-           * DO NOT FORGET TO UPDATE DyldInfo::classof
-           */
-          LIEF_DEBUG("[+] Parsing dyld information");
-          const auto cmd = stream_->peek<details::dyld_info_command>(loadcommands_offset);
-          if (!cmd) {
-            LIEF_ERR("Can't parse dyld_info_command");
-            break;
-          }
-          load_command = std::make_unique<DyldInfo>(*cmd);
-          load_command->as<DyldInfo>()->binary_ = binary_.get();
+      {
+        /*
+         * DO NOT FORGET TO UPDATE DyldInfo::classof
+         */
+        LIEF_DEBUG("[+] Parsing dyld information");
+        const auto cmd =
+            stream_->peek<details::dyld_info_command>(loadcommands_offset);
+        if (!cmd) {
+          LIEF_ERR("Can't parse dyld_info_command");
           break;
         }
+        load_command = std::make_unique<DyldInfo>(*cmd);
+        load_command->as<DyldInfo>()->binary_ = binary_.get();
+        break;
+      }

       // ===============
       // Source Version
       // ===============
       case LoadCommand::TYPE::SOURCE_VERSION:
-        {
-          /*
-           * DO NOT FORGET TO UPDATE SourceVersion::classof
-           */
-          LIEF_DEBUG("[+] Parsing LC_SOURCE_VERSION");
-
-          const auto cmd = stream_->peek<details::source_version_command>(loadcommands_offset);
-          if (!cmd) {
-            LIEF_ERR("Can't parse source_version_command");
-            break;
-          }
-          load_command = std::make_unique<SourceVersion>(*cmd);
-          LIEF_DEBUG("Version: 0x{:x}", cmd->version);
+      {
+        /*
+         * DO NOT FORGET TO UPDATE SourceVersion::classof
+         */
+        LIEF_DEBUG("[+] Parsing LC_SOURCE_VERSION");
+
+        const auto cmd =
+            stream_->peek<details::source_version_command>(loadcommands_offset);
+        if (!cmd) {
+          LIEF_ERR("Can't parse source_version_command");
           break;
         }
+        load_command = std::make_unique<SourceVersion>(*cmd);
+        LIEF_DEBUG("Version: {:#x}", cmd->version);
+        break;
+      }

       case LoadCommand::TYPE::VERSION_MIN_MACOSX:
       case LoadCommand::TYPE::VERSION_MIN_IPHONEOS:
       case LoadCommand::TYPE::VERSION_MIN_TVOS:
       case LoadCommand::TYPE::VERSION_MIN_WATCHOS:
-        {
-          /*
-           * DO NOT FORGET TO UPDATE VersionMin::classof
-           */
-          LIEF_DEBUG("[+] Parsing {}", to_string(cmd_type));
-
-          const auto cmd = stream_->peek<details::version_min_command>(loadcommands_offset);
-          if (!cmd) {
-            LIEF_ERR("Can't parse version_min_command");
-            break;
-          }
-          LIEF_DEBUG("Version: 0x{:x} | SDK: 0x{:x}", cmd->version, cmd->sdk);
-
-          load_command = std::make_unique<VersionMin>(*cmd);
+      {
+        /*
+         * DO NOT FORGET TO UPDATE VersionMin::classof
+         */
+        LIEF_DEBUG("[+] Parsing {}", to_string(cmd_type));
+
+        const auto cmd =
+            stream_->peek<details::version_min_command>(loadcommands_offset);
+        if (!cmd) {
+          LIEF_ERR("Can't parse version_min_command");
           break;
         }
+        LIEF_DEBUG("Version: {:#x} | SDK: {:#x}", cmd->version, cmd->sdk);
+
+        load_command = std::make_unique<VersionMin>(*cmd);
+        break;
+      }


       case LoadCommand::TYPE::BUILD_VERSION:
-        {
-          /*
-           * DO NOT FORGET TO UPDATE BuildVersion::classof
-           */
-          LIEF_DEBUG("[+] Parsing {}", to_string(cmd_type));
+      {
+        /*
+         * DO NOT FORGET TO UPDATE BuildVersion::classof
+         */
+        LIEF_DEBUG("[+] Parsing {}", to_string(cmd_type));
+
+        const auto cmd =
+            stream_->peek<details::build_version_command>(loadcommands_offset);
+        if (!cmd) {
+          LIEF_ERR("Can't parse build_version_command");
+          break;
+        }

-          const auto cmd = stream_->peek<details::build_version_command>(loadcommands_offset);
-          if (!cmd) {
-            LIEF_ERR("Can't parse build_version_command");
-            break;
-          }
+        load_command = std::make_unique<BuildVersion>(*cmd);
+        auto* build_version = load_command->as<BuildVersion>();
+        uint64_t ntools = cmd->ntools;
+        uint64_t max_tools = 0;

-          load_command = std::make_unique<BuildVersion>(*cmd);
-          auto* build_version = load_command->as<BuildVersion>();
-          for (size_t i = 0; i < cmd->ntools; ++i) {
-            const uint64_t cmd_offset = loadcommands_offset + sizeof(details::build_version_command) +
-                                        i * sizeof(details::build_tool_version);
+        if (cmd->cmdsize >= sizeof(details::build_version_command)) {
+          max_tools = (cmd->cmdsize - sizeof(details::build_version_command)) /
+                      sizeof(details::build_tool_version);
+        }

-            auto tool_struct = stream_->peek<details::build_tool_version>(cmd_offset);
-            if (!tool_struct) {
-              break;
-            }
-            build_version->tools_.emplace_back(*tool_struct);
+        if (ntools > max_tools) {
+          LIEF_WARN("LC_BUILD_VERSION.ntools ({}) does not fit in the command "
+                    "size: clamping to {}",
+                    ntools, max_tools);
+          ntools = max_tools;
+        }
+        for (size_t i = 0; i < ntools; ++i) {
+          const uint64_t cmd_offset = loadcommands_offset +
+                                      sizeof(details::build_version_command) +
+                                      i * sizeof(details::build_tool_version);
+
+          auto tool_struct =
+              stream_->peek<details::build_tool_version>(cmd_offset);
+          if (!tool_struct) {
+            break;
           }
-          break;
+          build_version->tools_.emplace_back(*tool_struct);
         }
+        break;
+      }

       // =================
       // Code Signature
       // =================
       case LoadCommand::TYPE::DYLIB_CODE_SIGN_DRS:
+      {
+        /*
+         * DO NOT FORGET TO UPDATE CodeSignatureDir::classof
+         */
+        if (auto cmd =
+                stream_->peek<details::linkedit_data_command>(loadcommands_offset))
         {
-          /*
-           * DO NOT FORGET TO UPDATE CodeSignatureDir::classof
-           */
-          if (auto cmd = stream_->peek<details::linkedit_data_command>(loadcommands_offset)) {
-            load_command = std::make_unique<CodeSignatureDir>(*cmd);
-          } else {
-            LIEF_ERR("Can't parse linkedit_data_command for LC_DYLIB_CODE_SIGN_DRS");
-          }
-          break;
+          load_command = std::make_unique<CodeSignatureDir>(*cmd);
+        } else {
+          LIEF_ERR("Can't parse linkedit_data_command for LC_DYLIB_CODE_SIGN_DRS");
         }
+        break;
+      }

       case LoadCommand::TYPE::CODE_SIGNATURE:
+      {
+        /*
+         * DO NOT FORGET TO UPDATE CodeSignature::classof
+         */
+        if (auto cmd =
+                stream_->peek<details::linkedit_data_command>(loadcommands_offset))
         {
-          /*
-           * DO NOT FORGET TO UPDATE CodeSignature::classof
-           */
-          if (auto cmd = stream_->peek<details::linkedit_data_command>(loadcommands_offset)) {
-            load_command = std::make_unique<CodeSignature>(*cmd);
-          } else {
-            LIEF_ERR("Can't parse linkedit_data_command for LC_CODE_SIGNATURE");
-          }
-          break;
+          load_command = std::make_unique<CodeSignature>(*cmd);
+        } else {
+          LIEF_ERR("Can't parse linkedit_data_command for LC_CODE_SIGNATURE");
         }
+        break;
+      }

       // ==============
       // Data in Code
       // ==============
       case LoadCommand::TYPE::DATA_IN_CODE:
-        {
-          /*
-           * DO NOT FORGET TO UPDATE DataInCode::classof
-           */
-          const auto cmd = stream_->peek<details::linkedit_data_command>(loadcommands_offset);
-          if (!cmd) {
-            LIEF_ERR("Can't parse linkedit_data_command for LC_DATA_IN_CODE");
-            break;
-          }
-          load_command = std::make_unique<DataInCode>(*cmd);
+      {
+        /*
+         * DO NOT FORGET TO UPDATE DataInCode::classof
+         */
+        const auto cmd =
+            stream_->peek<details::linkedit_data_command>(loadcommands_offset);
+        if (!cmd) {
+          LIEF_ERR("Can't parse linkedit_data_command for LC_DATA_IN_CODE");
           break;
         }
+        load_command = std::make_unique<DataInCode>(*cmd);
+        break;
+      }


       // =======
       // LC_MAIN
       // =======
       case LoadCommand::TYPE::MAIN:
-        {
-          /*
-           * DO NOT FORGET TO UPDATE MainCommand::classof
-           */
-          LIEF_DEBUG("[+] Parsing LC_MAIN");
-          const auto cmd = stream_->peek<details::entry_point_command>(loadcommands_offset);
-          if (!cmd) {
-            LIEF_ERR("Can't parse entry_point_command");
-            break;
-          }
-          load_command = std::make_unique<MainCommand>(*cmd);
+      {
+        /*
+         * DO NOT FORGET TO UPDATE MainCommand::classof
+         */
+        LIEF_DEBUG("[+] Parsing LC_MAIN");
+        const auto cmd =
+            stream_->peek<details::entry_point_command>(loadcommands_offset);
+        if (!cmd) {
+          LIEF_ERR("Can't parse entry_point_command");
           break;
         }
+        load_command = std::make_unique<MainCommand>(*cmd);
+        break;
+      }

       // ==================
       // LC_FUNCTION_STARTS
       // ==================
       case LoadCommand::TYPE::FUNCTION_STARTS:
-        {
-          /*
-           * DO NOT FORGET TO UPDATE FunctionStarts::classof
-           */
-          LIEF_DEBUG("[+] Parsing LC_FUNCTION_STARTS");
-          const auto cmd = stream_->peek<details::linkedit_data_command>(loadcommands_offset);
-          if (!cmd) {
-            LIEF_ERR("Can't parse linkedit_data_command for LC_FUNCTION_STARTS");
-            break;
-          }
-          load_command = std::make_unique<FunctionStarts>(*cmd);
+      {
+        /*
+         * DO NOT FORGET TO UPDATE FunctionStarts::classof
+         */
+        LIEF_DEBUG("[+] Parsing LC_FUNCTION_STARTS");
+        const auto cmd =
+            stream_->peek<details::linkedit_data_command>(loadcommands_offset);
+        if (!cmd) {
+          LIEF_ERR("Can't parse linkedit_data_command for LC_FUNCTION_STARTS");
           break;
         }
+        load_command = std::make_unique<FunctionStarts>(*cmd);
+        break;
+      }


       // ==================
       // LC_ATOM_INFO
       // ==================
       case LoadCommand::TYPE::ATOM_INFO:
-        {
-          /*
-           * DO NOT FORGET TO UPDATE AtomInfo::classof
-           */
-          LIEF_DEBUG("[+] Parsing LC_ATOM_INFO");
-          const auto cmd = stream_->peek<details::linkedit_data_command>(loadcommands_offset);
-          if (!cmd) {
-            LIEF_ERR("Can't parse linkedit_data_command for LC_ATOM_INFO");
-            break;
-          }
-          load_command = std::make_unique<AtomInfo>(*cmd);
+      {
+        /*
+         * DO NOT FORGET TO UPDATE AtomInfo::classof
+         */
+        LIEF_DEBUG("[+] Parsing LC_ATOM_INFO");
+        const auto cmd =
+            stream_->peek<details::linkedit_data_command>(loadcommands_offset);
+        if (!cmd) {
+          LIEF_ERR("Can't parse linkedit_data_command for LC_ATOM_INFO");
           break;
         }
+        load_command = std::make_unique<AtomInfo>(*cmd);
+        break;
+      }

       case LoadCommand::TYPE::SEGMENT_SPLIT_INFO:
-        {
-          /*
-           * DO NOT FORGET TO UPDATE SegmentSplitInfo::classof
-           */
-          LIEF_DEBUG("[+] Parsing LC_SEGMENT_SPLIT_INFO");
-          const auto cmd = stream_->peek<details::linkedit_data_command>(loadcommands_offset);
-          if (!cmd) {
-            LIEF_ERR("Can't parse linkedit_data_command for LC_SEGMENT_SPLIT_INFO");
-            break;
-          }
-          load_command = std::make_unique<SegmentSplitInfo>(*cmd);
+      {
+        /*
+         * DO NOT FORGET TO UPDATE SegmentSplitInfo::classof
+         */
+        LIEF_DEBUG("[+] Parsing LC_SEGMENT_SPLIT_INFO");
+        const auto cmd =
+            stream_->peek<details::linkedit_data_command>(loadcommands_offset);
+        if (!cmd) {
+          LIEF_ERR("Can't parse linkedit_data_command for LC_SEGMENT_SPLIT_INFO");
           break;
-
         }
+        load_command = std::make_unique<SegmentSplitInfo>(*cmd);
+        break;
+      }

       case LoadCommand::TYPE::SUB_FRAMEWORK:
-        {
-          /*
-           * DO NOT FORGET TO UPDATE SubFramework::classof
-           */
-          const auto cmd = stream_->peek<details::sub_framework_command>(loadcommands_offset);
-          if (!cmd) {
-            LIEF_ERR("Can't parse sub_framework_command");
-            break;
-          }
-          auto u = stream_->peek_string_at(loadcommands_offset + cmd->umbrella);
-          if (!u) {
-            LIEF_ERR("Can't read umbrella string");
-            break;
-          }
-          auto sf = std::make_unique<SubFramework>(*cmd);
-          sf->umbrella(*u);
-          load_command = std::move(sf);
+      {
+        /*
+         * DO NOT FORGET TO UPDATE SubFramework::classof
+         */
+        const auto cmd =
+            stream_->peek<details::sub_framework_command>(loadcommands_offset);
+        if (!cmd) {
+          LIEF_ERR("Can't parse sub_framework_command");
+          break;
+        }
+        auto u = stream_->peek_string_at(loadcommands_offset + cmd->umbrella);
+        if (!u) {
+          LIEF_ERR("Can't read umbrella string");
           break;
         }
+        auto sf = std::make_unique<SubFramework>(*cmd);
+        sf->umbrella(*u);
+        load_command = std::move(sf);
+        break;
+      }

       case LoadCommand::TYPE::SUB_CLIENT:
-        {
-          /*
-           * DO NOT FORGET TO UPDATE SubClient::classof
-           */
-          const auto cmd = stream_->peek<details::sub_client_command>(loadcommands_offset);
-          if (!cmd) {
-            LIEF_ERR("Can't parse sub_client_command");
-            break;
-          }
-          auto u = stream_->peek_string_at(loadcommands_offset + cmd->client);
-          if (!u) {
-            LIEF_ERR("Can't read client name string");
-            break;
-          }
-          auto sf = std::make_unique<SubClient>(*cmd);
-          sf->client(*u);
-          load_command = std::move(sf);
+      {
+        /*
+         * DO NOT FORGET TO UPDATE SubClient::classof
+         */
+        const auto cmd =
+            stream_->peek<details::sub_client_command>(loadcommands_offset);
+        if (!cmd) {
+          LIEF_ERR("Can't parse sub_client_command");
           break;
         }
+        auto u = stream_->peek_string_at(loadcommands_offset + cmd->client);
+        if (!u) {
+          LIEF_ERR("Can't read client name string");
+          break;
+        }
+        auto sf = std::make_unique<SubClient>(*cmd);
+        sf->client(*u);
+        load_command = std::move(sf);
+        break;
+      }


       case LoadCommand::TYPE::DYLD_ENVIRONMENT:
-        {
-          /*
-           * DO NOT FORGET TO UPDATE DyldEnvironment::classof
-           */
-          const auto cmd = stream_->peek<details::dylinker_command>(loadcommands_offset);
-          if (!cmd) {
-            LIEF_ERR("Can't parse dylinker_command");
-            break;
-          }
+      {
+        /*
+         * DO NOT FORGET TO UPDATE DyldEnvironment::classof
+         */
+        const auto cmd =
+            stream_->peek<details::dylinker_command>(loadcommands_offset);
+        if (!cmd) {
+          LIEF_ERR("Can't parse dylinker_command");
+          break;
+        }

-          auto value = stream_->peek_string_at(loadcommands_offset + cmd->name);
-          if (!value) {
-            LIEF_ERR("Can't read dylinker_command.name");
-            break;
-          }
-          auto env = std::make_unique<DyldEnvironment>(*cmd);
-          env->value(*value);
-          load_command = std::move(env);
+        auto value = stream_->peek_string_at(loadcommands_offset + cmd->name);
+        if (!value) {
+          LIEF_ERR("Can't read dylinker_command.name");
           break;
         }
+        auto env = std::make_unique<DyldEnvironment>(*cmd);
+        env->value(*value);
+        load_command = std::move(env);
+        break;
+      }


       // ================
@@ -910,241 +987,308 @@ ok_error_t BinaryParser::parse_load_commands() {
       // ================
       case LoadCommand::TYPE::ENCRYPTION_INFO:
       case LoadCommand::TYPE::ENCRYPTION_INFO_64:
-        {
-          /*
-           * DO NOT FORGET TO UPDATE EncryptionInfo::classof
-           */
-          LIEF_DEBUG("[+] Parsing {}", to_string(cmd_type));
-          const auto cmd = stream_->peek<details::encryption_info_command>(loadcommands_offset);
-          if (!cmd) {
-            LIEF_ERR("Can't parse encryption_info_command");
-            break;
-          }
-          load_command = std::make_unique<EncryptionInfo>(*cmd);
+      {
+        /*
+         * DO NOT FORGET TO UPDATE EncryptionInfo::classof
+         */
+        LIEF_DEBUG("[+] Parsing {}", to_string(cmd_type));
+        const auto cmd =
+            stream_->peek<details::encryption_info_command>(loadcommands_offset);
+        if (!cmd) {
+          LIEF_ERR("Can't parse encryption_info_command");
           break;
         }
+        load_command = std::make_unique<EncryptionInfo>(*cmd);
+        break;
+      }

       // ==============
       // File Set Entry
       // ==============
       case LoadCommand::TYPE::FILESET_ENTRY:
-        {
-          /*
-           * DO NOT FORGET TO UPDATE FilesetCommand::classof
-           */
-          LIEF_DEBUG("[+] Parsing {}", to_string(cmd_type));
+      {
+        /*
+         * DO NOT FORGET TO UPDATE FilesetCommand::classof
+         */
+        LIEF_DEBUG("[+] Parsing {}", to_string(cmd_type));
+
+        const auto cmd =
+            stream_->peek<details::fileset_entry_command>(loadcommands_offset);
+        if (!cmd) {
+          LIEF_ERR("Can't parse fileset_entry_command");
+          break;
+        }
+        load_command = std::make_unique<FilesetCommand>(*cmd);
+        const uint32_t entry_offset = cmd->entry_id;
+        auto entry_name =
+            stream_->peek_string_at(loadcommands_offset + entry_offset);

-          const auto cmd = stream_->peek<details::fileset_entry_command>(loadcommands_offset);
-          if (!cmd) {
-            LIEF_ERR("Can't parse fileset_entry_command");
-            break;
-          }
-          load_command = std::make_unique<FilesetCommand>(*cmd);
-          const uint32_t entry_offset = cmd->entry_id;
-          auto entry_name = stream_->peek_string_at(loadcommands_offset + entry_offset);
+        if (!entry_name) {
+          LIEF_ERR("Can't read fileset_entry_command.entry_id");
+          break;
+        }

-          if (!entry_name) {
-            LIEF_ERR("Can't read fileset_entry_command.entry_id");
-            break;
-          }
+        auto* fset = load_command->as<FilesetCommand>();
+        fset->name(*entry_name);

-          auto* fset = load_command->as<FilesetCommand>();
-          fset->name(*entry_name);
+        LIEF_DEBUG("Parsing fileset '{}' @ {:x} (size: {:x})", fset->name(),
+                   cmd->fileoff, cmd->cmdsize);
+        auto res_type = stream_->peek<uint32_t>(cmd->fileoff);
+        if (!res_type) {
+          LIEF_ERR("Can't access fileset_entry_command.fileoff");
+          break;
+        }
+        auto type = static_cast<MACHO_TYPES>(*res_type);

-          LIEF_DEBUG("Parsing fileset '{}' @ {:x} (size: {:x})",
-                     fset->name(), cmd->fileoff, cmd->cmdsize);
-          auto res_type = stream_->peek<uint32_t>(cmd->fileoff);
-          if (!res_type) {
-            LIEF_ERR("Can't access fileset_entry_command.fileoff");
-            break;
-          }
-          auto type = static_cast<MACHO_TYPES>(*res_type);
+        // Fat binary
+        if (type == MACHO_TYPES::MAGIC_FAT || type == MACHO_TYPES::CIGAM_FAT) {
+          LIEF_ERR("Invalid MachO magic for fileset entry: offset={:#x}, "
+                   "magic={:#x}",
+                   cmd->fileoff, (int)type);
+          break;
+        }

-          // Fat binary
-          if (type == MACHO_TYPES::MAGIC_FAT || type == MACHO_TYPES::CIGAM_FAT) {
-            LIEF_ERR("Mach-O is corrupted with a FAT Mach-O inside a fileset ?");
-            break;
-          }

+        /* TODO(romain): This part needs to be refactored.
+         * We should not have to make this kind of construction and move
+         * with the BinaryParser constructor.
+         */
+        const size_t current_pos = stream_->pos();
+        if (!visited_.insert(cmd->fileoff).second) {
+          break;
+        }

-          /* TODO(romain): This part needs to be refactored
-           * we should not have to make this kind construction and move
-           * with the BinaryParser constructor
-           */
-          const size_t current_pos = stream_->pos();
-          if (!visited_.insert(cmd->fileoff).second) {
-            break;
-          }
+        stream_->setpos(cmd->fileoff);
+        BinaryParser bp;
+        bp.binary_ = std::unique_ptr<Binary>(new Binary{});
+        bp.stream_ = std::move(stream_);
+        bp.config_ = config_;
+        bp.visited_ = visited_;

-          stream_->setpos(cmd->fileoff);
-          BinaryParser bp;
-          bp.binary_  = std::unique_ptr<Binary>(new Binary{});
-          bp.stream_  = std::move(stream_);
-          bp.config_  = config_;
-          bp.visited_ = visited_;
+        if (!bp.init_and_parse()) {
+          LIEF_WARN("Parsing the binary fileset raised an error");
+        }

-          if (!bp.init_and_parse()) {
-            LIEF_WARN("Parsing the Binary fileset raised error.");
-          }
+        stream_ = std::move(bp.stream_);
+        stream_->setpos(current_pos);
+        visited_ = std::move(bp.visited_);

-          stream_ = std::move(bp.stream_);
-          stream_->setpos(current_pos);
-          visited_ = std::move(bp.visited_);
+        if (bp.binary_ != nullptr) {
+          std::unique_ptr<Binary> filset_bin = std::move(bp.binary_);

-          if (bp.binary_ != nullptr) {
-            std::unique_ptr<Binary> filset_bin = std::move(bp.binary_);
-            filset_bin->fileset_name_ = *entry_name;
-            binary_->filesets_.push_back(std::move(filset_bin));
-          }
-          break;
+          filset_bin->fileset_info_.name = *entry_name;
+          filset_bin->fileset_info_.address = fset->virtual_address();
+
+          fset->binary_ = filset_bin.get();
+          binary_->filesets_.push_back(std::move(filset_bin));
         }
+        break;
+      }
       case LoadCommand::TYPE::DYLD_CHAINED_FIXUPS:
-        {
-          const auto cmd = stream_->peek<details::linkedit_data_command>(loadcommands_offset);
-          if (!cmd) {
-            LIEF_ERR("Can't parse linkedit_data_command for LC_DYLD_CHAINED_FIXUPS");
-            break;
-          }
+      {
+        const auto cmd =
+            stream_->peek<details::linkedit_data_command>(loadcommands_offset);
+        if (!cmd) {
+          LIEF_ERR("Can't parse linkedit_data_command for LC_DYLD_CHAINED_FIXUPS");
+          break;
+        }

-          LIEF_DEBUG("[*] dataoff:  0x{:x}", cmd->dataoff);
-          LIEF_DEBUG("[*] datasize: 0x{:x}", cmd->datasize);
+        LIEF_DEBUG("[*] dataoff:  {:#x}", cmd->dataoff);
+        LIEF_DEBUG("[*] datasize: {:#x}", cmd->datasize);

-          load_command = std::make_unique<DyldChainedFixups>(*cmd);
-          auto* chained = load_command->as<DyldChainedFixups>();
-          SegmentCommand* lnk = config_.from_dyld_shared_cache ?
-                                     binary_->get_segment("__LINKEDIT") :
-                                     binary_->segment_from_offset(chained->data_offset());
+        load_command = std::make_unique<DyldChainedFixups>(*cmd);
+        auto* chained = load_command->as<DyldChainedFixups>();
+        SegmentCommand* lnk =
+            config_.from_dyld_shared_cache ?
+                binary_->get_segment("__LINKEDIT") :
+                binary_->segment_from_offset(chained->data_offset());

-          if (lnk == nullptr) {
-            LIEF_WARN("Can't find the segment associated with "
-                      "the LC_DYLD_CHAINED_FIXUPS payload (offset: 0x{:x})", chained->data_offset());
-            break;
-          }
-          LIEF_DEBUG("LC_DYLD_CHAINED_FIXUPS payload in '{}'", lnk->name());
-          span<uint8_t> content = lnk->writable_content();
+        if (lnk == nullptr) {
+          LIEF_WARN("Can't find the segment associated with "
+                    "the LC_DYLD_CHAINED_FIXUPS payload (offset: {:#x})",
+                    chained->data_offset());
+          break;
+        }
+        LIEF_DEBUG("LC_DYLD_CHAINED_FIXUPS payload in '{}'", lnk->name());
+        span<uint8_t> content = lnk->content();

-          if (static_cast<int32_t>(chained->data_size()) < 0 ||
-              static_cast<int32_t>(chained->data_offset()) < 0) {
-            LIEF_WARN("LC_DYLD_CHAINED_FIXUPS payload is corrupted");
-            break;
-          }
+        if (static_cast<int32_t>(chained->data_size()) < 0 ||
+            static_cast<int32_t>(chained->data_offset()) < 0)
+        {
+          LIEF_WARN("LC_DYLD_CHAINED_FIXUPS payload is corrupted");
+          break;
+        }

-          if ((chained->data_offset() + chained->data_size()) > (lnk->file_offset() + content.size())) {
-            LIEF_WARN("LC_DYLD_CHAINED_FIXUPS payload does not fit in the '{}' segments",
-                      lnk->name());
-            LIEF_DEBUG("{}.file_size: 0x{:x}", lnk->name(), lnk->file_size());
-            break;
-          }
-          const uint64_t rel_offset = chained->data_offset() - lnk->file_offset();
-          chained->content_ = content.subspan(rel_offset, chained->data_size());
+        if ((chained->data_offset() + chained->data_size()) >
+            (lnk->file_offset() + content.size()))
+        {
+          LIEF_WARN(
+              "LC_DYLD_CHAINED_FIXUPS payload does not fit in the '{}' segments",
+              lnk->name()
+          );
+          LIEF_DEBUG("{}.file_size: {:#x}", lnk->name(), lnk->file_size());
+          break;
+        }
+
+        if (chained->data_offset() < lnk->file_offset()) {
+          LIEF_WARN("LC_DYLD_CHAINED_FIXUPS payload (offset: {:#x}) starts "
+                    "before the '{}' segment",
+                    chained->data_offset(), lnk->name());
           break;
         }
+        const uint64_t rel_offset = chained->data_offset() - lnk->file_offset();
+        chained->content_ = content.subspan(rel_offset, chained->data_size());
+        break;
+      }

       case LoadCommand::TYPE::DYLD_EXPORTS_TRIE:
+      {
+        if (const auto cmd =
+                stream_->peek<details::linkedit_data_command>(loadcommands_offset))
         {
-          if (const auto cmd = stream_->peek<details::linkedit_data_command>(loadcommands_offset)) {
-            LIEF_DEBUG("[*] dataoff:  0x{:x}", cmd->dataoff);
-            LIEF_DEBUG("[*] datasize: 0x{:x}", cmd->datasize);
+          LIEF_DEBUG("[*] dataoff:  {:#x}", cmd->dataoff);
+          LIEF_DEBUG("[*] datasize: {:#x}", cmd->datasize);

-            load_command = std::make_unique<DyldExportsTrie>(*cmd);
-          } else {
-            LIEF_ERR("Can't parse linkedit_data_command for LC_DYLD_EXPORTS_TRIE");
-          }
-          break;
+          load_command = std::make_unique<DyldExportsTrie>(*cmd);
+        } else {
+          LIEF_ERR("Can't parse linkedit_data_command for LC_DYLD_EXPORTS_TRIE");
         }
+        break;
+      }

       case LoadCommand::TYPE::TWOLEVEL_HINTS:
+      {
+        if (const auto cmd = stream_->peek<details::twolevel_hints_command>(
+                loadcommands_offset
+            ))
         {
-          if (const auto cmd = stream_->peek<details::twolevel_hints_command>(loadcommands_offset)) {
-            load_command = std::make_unique<TwoLevelHints>(*cmd);
-            auto* two = load_command->as<TwoLevelHints>();
-            {
-              ScopedStream scoped(*stream_, cmd->offset);
-              two->hints_.reserve(std::min<size_t>(0x1000, cmd->nhints));
-              for (size_t i = 0; i < cmd->nhints; ++i) {
-                if (auto res = stream_->read<details::twolevel_hint>()) {
-                  uint32_t raw = 0;
-                  memcpy(&raw, &*res, sizeof(raw));
-                  two->hints_.push_back(raw);
-                } else {
-                  LIEF_WARN("Can't read LC_TWOLEVEL_HINTS.hints[{}]", i);
-                  break;
-                }
+          load_command = std::make_unique<TwoLevelHints>(*cmd);
+          auto* two = load_command->as<TwoLevelHints>();
+
+          const uint64_t nhints =
+              std::min<uint64_t>(cmd->nhints, twolevel_cnt_hint);
+
+          twolevel_cnt_hint -= nhints;
+          {
+            ScopedStream scoped(*stream_, cmd->offset);
+            two->hints_.reserve(std::min<size_t>(0x1000, nhints));
+            for (size_t i = 0; i < nhints; ++i) {
+              if (auto res = stream_->read<details::twolevel_hint>()) {
+                uint32_t raw = 0;
+                memcpy(&raw, &*res, sizeof(raw));
+                two->hints_.push_back(raw);
+              } else {
+                LIEF_WARN("Can't read LC_TWOLEVEL_HINTS.hints[{}]", i);
+                break;
               }
             }
-          } else {
-            LIEF_ERR("Can't parse twolevel_hints_command for LC_TWOLEVEL_HINTS");
           }
-          break;
+        } else {
+          LIEF_ERR("Can't parse twolevel_hints_command for LC_TWOLEVEL_HINTS");
         }
+        break;
+      }


       case LoadCommand::TYPE::LINKER_OPTIMIZATION_HINT:
+      {
+        if (const auto cmd =
+                stream_->peek<details::linkedit_data_command>(loadcommands_offset))
         {
-          if (const auto cmd = stream_->peek<details::linkedit_data_command>(loadcommands_offset)) {
-            LIEF_DEBUG("  [*] dataoff:  0x{:x}", cmd->dataoff);
-            LIEF_DEBUG("  [*] datasize: 0x{:x}", cmd->datasize);
+          LIEF_DEBUG("  [*] dataoff:  {:#x}", cmd->dataoff);
+          LIEF_DEBUG("  [*] datasize: {:#x}", cmd->datasize);

-            load_command = std::make_unique<LinkerOptHint>(*cmd);
-          } else {
-            LIEF_ERR("Can't parse linkedit_data_command for LC_LINKER_OPTIMIZATION_HINT");
-          }
-          break;
+          load_command = std::make_unique<LinkerOptHint>(*cmd);
+        } else {
+          LIEF_ERR(
+              "Can't parse linkedit_data_command for LC_LINKER_OPTIMIZATION_HINT"
+          );
         }
+        break;
+      }

       case LoadCommand::TYPE::NOTE:
+      {
+        if (const auto cmd =
+                stream_->peek<details::note_command>(loadcommands_offset))
         {
-          if (const auto cmd = stream_->peek<details::note_command>(loadcommands_offset)) {
-            load_command = std::make_unique<NoteCommand>(*cmd);
-          } else {
-            LIEF_ERR("Can't parse note_command for LC_NOTE");
-          }
-          break;
+          load_command = std::make_unique<NoteCommand>(*cmd);
+        } else {
+          LIEF_ERR("Can't parse note_command for LC_NOTE");
         }
+        break;
+      }

       case LoadCommand::TYPE::FUNCTION_VARIANTS:
-        {
-          /*
-           * DO NOT FORGET TO UPDATE FunctionVariants::classof
-           */
-          LIEF_DEBUG("[+] Parsing LC_FUNCTION_VARIANTS");
-          const auto cmd = stream_->peek<details::linkedit_data_command>(loadcommands_offset);
-          if (!cmd) {
-            LIEF_ERR("Can't parse linkedit_data_command for LC_FUNCTION_VARIANTS");
-            break;
-          }
-          load_command = std::make_unique<FunctionVariants>(*cmd);
+      {
+        /*
+         * DO NOT FORGET TO UPDATE FunctionVariants::classof
+         */
+        LIEF_DEBUG("[+] Parsing LC_FUNCTION_VARIANTS");
+        const auto cmd =
+            stream_->peek<details::linkedit_data_command>(loadcommands_offset);
+        if (!cmd) {
+          LIEF_ERR("Can't parse linkedit_data_command for LC_FUNCTION_VARIANTS");
           break;
         }
+        load_command = std::make_unique<FunctionVariants>(*cmd);
+        break;
+      }

       case LoadCommand::TYPE::FUNCTION_VARIANT_FIXUPS:
-        {
-          /*
-           * DO NOT FORGET TO UPDATE FunctionVariantFixups::classof
-           */
-          LIEF_DEBUG("[+] Parsing LC_FUNCTION_VARIANT_FIXUPS");
-          const auto cmd = stream_->peek<details::linkedit_data_command>(loadcommands_offset);
-          if (!cmd) {
-            LIEF_ERR("Can't parse linkedit_data_command for LC_FUNCTION_VARIANT_FIXUPS");
-            break;
-          }
-          load_command = std::make_unique<FunctionVariantFixups>(*cmd);
+      {
+        /*
+         * DO NOT FORGET TO UPDATE FunctionVariantFixups::classof
+         */
+        LIEF_DEBUG("[+] Parsing LC_FUNCTION_VARIANT_FIXUPS");
+        const auto cmd =
+            stream_->peek<details::linkedit_data_command>(loadcommands_offset);
+        if (!cmd) {
+          LIEF_ERR(
+              "Can't parse linkedit_data_command for LC_FUNCTION_VARIANT_FIXUPS"
+          );
+          break;
+        }
+        load_command = std::make_unique<FunctionVariantFixups>(*cmd);
+        break;
+      }
+
+      case LoadCommand::TYPE::LAZY_LOAD_DYLIB_INFO:
+      {
+        /*
+         * DO NOT FORGET TO UPDATE LazyLoadDylibInfo::classof
+         */
+        LIEF_DEBUG("[+] Parsing LC_LAZY_LOAD_DYLIB_INFO");
+        const auto cmd =
+            stream_->peek<details::linkedit_data_command>(loadcommands_offset);
+        if (!cmd) {
+          LIEF_ERR(
+              "Can't parse linkedit_data_command for LC_LAZY_LOAD_DYLIB_INFO"
+          );
           break;
         }
+        load_command = std::make_unique<LazyLoadDylibInfo>(*cmd);
+        binary_->lazy_load_dylib_infos_.push_back(
+            load_command->as<LazyLoadDylibInfo>()
+        );
+        break;
+      }

       default:
-        {
-          if (not_parsed.insert(cmd_type).second) {
-            LIEF_WARN("Command '{}' ({}) not parsed (size=0x{:04x})!",
-                      to_string(cmd_type), static_cast<uint64_t>(cmd_type),
-                      command->cmdsize);
-          }
-          load_command = std::make_unique<UnknownCommand>(*command);
+      {
+        if (not_parsed.insert(cmd_type).second) {
+          LIEF_WARN("Command '{}' ({}) not parsed (size={:#06x})",
+                    to_string(cmd_type), static_cast<uint64_t>(cmd_type),
+                    command->cmdsize);
         }
+        load_command = std::make_unique<UnknownCommand>(*command);
+      }
     }

     if (load_command != nullptr) {
-      if (!stream_->peek_data(load_command->original_data_, loadcommands_offset, command->cmdsize)) {
+      if (!stream_->peek_data(load_command->original_data_, loadcommands_offset,
+                              command->cmdsize))
+      {
         LIEF_ERR("Can't read the raw data of the load command");
         load_command->size_ = 0;
       }
@@ -1165,17 +1309,21 @@ ok_error_t BinaryParser::parse_relocations(Section& section) {
     return ok();
   }

-  LIEF_DEBUG("Parse '{}' relocations (#{:d})", section.name(), section.numberof_relocations());
+  LIEF_DEBUG("Parse '{}' relocations (#{:d})", section.name(),
+             section.numberof_relocations());

   uint64_t current_reloc_offset = section.relocation_offset();
   size_t numberof_relocations = section.numberof_relocations();
   if (section.numberof_relocations() > BinaryParser::MAX_RELOCATIONS) {
     numberof_relocations = BinaryParser::MAX_RELOCATIONS;
-    LIEF_WARN("Huge number of relocations (#{:d}). Only the first #{:d} will be parsed",
-              section.numberof_relocations(), numberof_relocations);
-
+    LIEF_WARN(
+        "Huge number of relocations (#{:d}). Only the first #{:d} will be parsed",
+        section.numberof_relocations(), numberof_relocations
+    );
   }
-  if (current_reloc_offset + numberof_relocations * 2 * sizeof(uint32_t) > stream_->size()) {
+  if (current_reloc_offset + numberof_relocations * 2 * sizeof(uint32_t) >
+      stream_->size())
+  {
     LIEF_WARN("Relocations corrupted");
     return make_error_code(lief_errors::corrupted);
   }
@@ -1186,39 +1334,47 @@ ok_error_t BinaryParser::parse_relocations(Section& section) {
     if (auto res = stream_->peek<int32_t>(current_reloc_offset)) {
       address = *res;
     } else {
-      LIEF_INFO("Can't read relocation address for #{}@0x{:x}", i, address);
+      LIEF_INFO("Can't read relocation address for #{}@{:#x}", i, address);
       break;
     }
     bool is_scattered = static_cast<bool>(address & Relocation::R_SCATTERED);

     if (is_scattered) {
-      if (auto res = stream_->peek<details::scattered_relocation_info>(current_reloc_offset)) {
+      if (auto res = stream_->peek<details::scattered_relocation_info>(
+              current_reloc_offset
+          ))
+      {
         reloc = std::make_unique<RelocationObject>(*res);
         reloc->section_ = &section;
       } else {
-        LIEF_INFO("Can't read scattered_relocation_info for #{}@0x{:x}", i, current_reloc_offset);
+        LIEF_INFO("Can't read scattered_relocation_info for #{}@{:#x}", i,
+                  current_reloc_offset);
         break;
       }
     } else {
-      details::relocation_info reloc_info;
-      if (auto res = stream_->peek<details::relocation_info>(current_reloc_offset)) {
+      details::relocation_info reloc_info{};
+      if (auto res = stream_->peek<details::relocation_info>(current_reloc_offset))
+      {
         reloc_info = *res;
         reloc = std::make_unique<RelocationObject>(*res);
         reloc->section_ = &section;
       } else {
-        LIEF_INFO("Can't read relocation_info for #{}@0x{:x}", i, current_reloc_offset);
+        LIEF_INFO("Can't read relocation_info for #{}@{:#x}", i,
+                  current_reloc_offset);
         break;
       }

       const auto symbols = binary_->symbols();
-      if (reloc_info.r_extern == 1 && reloc_info.r_symbolnum != Relocation::R_ABS) {
+      if (reloc_info.r_extern == 1 && reloc_info.r_symbolnum != Relocation::R_ABS)
+      {
         if (reloc_info.r_symbolnum < symbols.size()) {
           Symbol& symbol = symbols[reloc_info.r_symbolnum];
           reloc->symbol_ = &symbol;

           LIEF_DEBUG("Symbol: {}", symbol.name());
         } else {
-          LIEF_WARN("Relocation #{:d} of {} symbol index is out-of-bound", i, section.name());
+          LIEF_WARN("Relocation #{:d} of {} symbol index is out-of-bound", i,
+                    section.name());
         }
       }
       const auto sections = binary_->sections();
@@ -1226,14 +1382,16 @@ ok_error_t BinaryParser::parse_relocations(Section& section) {
         const uint32_t sec_num = reloc_info.r_symbolnum;
         if (sec_num == Relocation::R_ABS) {
           // TODO(romain): Find a sample that triggers this branch ..
-          const auto it_sym = memoized_symbols_by_address_.find(reloc_info.r_address);
-          if (it_sym != std::end(memoized_symbols_by_address_)) {
+          if (const auto it_sym =
+                  memoized_symbols_by_address_.find(reloc_info.r_address);
+              it_sym != memoized_symbols_by_address_.end())
+          {
             reloc->symbol_ = it_sym->second;
           } else {
-            LIEF_WARN("Can't find memoized symbol for the address: 0x{:x}", reloc_info.r_address);
+            LIEF_WARN("Can't find memoized symbol for the address: {:#x}",
+                      reloc_info.r_address);
           }
-        }
-        else if (sec_num < sections.size()) {
+        } else if (sec_num < sections.size()) {
           Section& relsec = sections[reloc_info.r_symbolnum];
           reloc->section_ = &relsec;
           LIEF_DEBUG("Section: {}", relsec.name());
@@ -1246,9 +1404,11 @@ ok_error_t BinaryParser::parse_relocations(Section& section) {
            *   [...]
            * }
            * else {
-           *   parser.findTargetFromAddressAndSectionNum(contentValue, reloc->r_symbolnum(), target);
+           *   parser.findTargetFromAddressAndSectionNum(contentValue,
+           * reloc->r_symbolnum(), target);
            * }
-           * findTargetFromAddressAndSectionNum can fail *silently* so no need to warn the user about that
+           * findTargetFromAddressAndSectionNum can fail *silently* so no need to
+           * warn the user about that
            */
           LIEF_INFO("Relocation #{:d} of {} seems corrupted: "
                     "r_symbolnum is {} sections.size(): {}",
@@ -1282,31 +1442,31 @@ ok_error_t BinaryParser::parse_dyldinfo_rebases() {
   }

   uint32_t offset = std::get<0>(dyldinfo->rebase());
-  uint32_t size   = std::get<1>(dyldinfo->rebase());
+  uint32_t size = std::get<1>(dyldinfo->rebase());

   if (offset == 0 || size == 0) {
     return ok();
   }

-  if (static_cast<int32_t>(offset) < 0 ||
-      static_cast<int32_t>(size)   < 0) {
+  if (static_cast<int32_t>(offset) < 0 || static_cast<int32_t>(size) < 0) {
     LIEF_WARN("LC_DYLD_INFO.rebases payload is corrupted");
     return make_error_code(lief_errors::read_out_of_bound);
   }

   SegmentCommand* linkedit = config_.from_dyld_shared_cache ?
-                             binary_->get_segment("__LINKEDIT") :
-                             binary_->segment_from_offset(offset);
+                                 binary_->get_segment("__LINKEDIT") :
+                                 binary_->segment_from_offset(offset);

   if (linkedit == nullptr) {
     LIEF_WARN("Can't find the segment that contains the rebase opcodes");
     return make_error_code(lief_errors::not_found);
   }

-  span<uint8_t> content = linkedit->writable_content();
+  span<uint8_t> content = linkedit->content();
   const uint64_t rel_offset = offset - linkedit->file_offset();
   if (rel_offset > content.size() || (rel_offset + size) > content.size()) {
-    LIEF_ERR("Rebase opcodes are out of bounds of the segment {}", linkedit->name());
+    LIEF_ERR("Rebase opcodes are out of bounds of the segment {}",
+             linkedit->name());
     return make_error_code(lief_errors::read_out_of_bound);
   }

@@ -1314,8 +1474,8 @@ ok_error_t BinaryParser::parse_dyldinfo_rebases() {

   uint64_t end_offset = offset + size;

-  bool     done = false;
-  uint8_t  type = 0;
+  bool done = false;
+  uint8_t type = 0;
   uint32_t segment_index = 0;
   uint64_t segment_offset = 0;
   uint32_t count = 0;
@@ -1331,170 +1491,211 @@ ok_error_t BinaryParser::parse_dyldinfo_rebases() {
     if (!val) {
       break;
     }
-    uint8_t imm    = *val & DyldInfo::IMMEDIATE_MASK;
+    uint8_t imm = *val & DyldInfo::IMMEDIATE_MASK;
     uint8_t opcode = *val & DyldInfo::OPCODE_MASK;

-    switch(DyldInfo::REBASE_OPCODES(opcode)) {
+    switch (DyldInfo::REBASE_OPCODES(opcode)) {
       case DyldInfo::REBASE_OPCODES::DONE:
-        {
-          done = true;
-          break;
-        }
+      {
+        done = true;
+        break;
+      }

       case DyldInfo::REBASE_OPCODES::SET_TYPE_IMM:
-        {
-          type = imm;
+      {
+        type = imm;
+        break;
+      }
+
+      case DyldInfo::REBASE_OPCODES::SET_SEGMENT_AND_OFFSET_ULEB:
+      {
+        auto seg_offset = stream_->read_uleb128();
+        if (!seg_offset) {
+          LIEF_ERR("REBASE_OPCODE_SET_SEGMENT_AND_OFFSET_ULEB: Can't read uleb128 "
+                   "offset");
           break;
         }
+        segment_index = imm;
+        segment_offset = *seg_offset;

-      case DyldInfo::REBASE_OPCODES::SET_SEGMENT_AND_OFFSET_ULEB:
-        {
-          auto seg_offset = stream_->read_uleb128();
-          if (!seg_offset) {
-            LIEF_ERR("REBASE_OPCODE_SET_SEGMENT_AND_OFFSET_ULEB: Can't read uleb128 offset");
-            break;
-          }
-          segment_index   = imm;
-          segment_offset  = *seg_offset;
+        if (segment_index < segments.size()) {
+          current_segment = &segments[segment_index];
+        } else {
+          LIEF_ERR("REBASE_OPCODE_SET_SEGMENT_AND_OFFSET_ULEB: Bad index");
+          done = true;
+        }

-          if (segment_index < segments.size()) {
-            current_segment = &segments[segment_index];
-          } else {
-            LIEF_ERR("REBASE_OPCODE_SET_SEGMENT_AND_OFFSET_ULEB: Bad index");
-            done = true;
-          }
+        break;
+      }

+      case DyldInfo::REBASE_OPCODES::ADD_ADDR_ULEB:
+      {
+        auto seg_offset = stream_->read_uleb128();
+        if (!seg_offset) {
+          LIEF_ERR("REBASE_OPCODE_ADD_ADDR_ULEB: Can't read uleb128 offset");
           break;
         }
+        segment_offset += *seg_offset;
+        if (current_segment == nullptr) {
+          LIEF_WARN("REBASE_OPCODE_ADD_ADDR_ULEB: the current segment is null");
+        } else if (segment_offset > current_segment->file_size()) {
+          LIEF_WARN("REBASE_OPCODE_ADD_ADDR_ULEB: Bad offset ({:#x} > {:#x})",
+                    segment_offset, current_segment->file_size());
+        }
+        break;
+      }

-      case DyldInfo::REBASE_OPCODES::ADD_ADDR_ULEB:
-        {
-          auto seg_offset = stream_->read_uleb128();
-          if (!seg_offset) {
-            LIEF_ERR("REBASE_OPCODE_ADD_ADDR_ULEB: Can't read uleb128 offset");
+      case DyldInfo::REBASE_OPCODES::ADD_ADDR_IMM_SCALED:
+      {
+        segment_offset += (imm * sizeof(pint_t));
+        if (current_segment == nullptr) {
+          LIEF_WARN(
+              "REBASE_OPCODE_ADD_ADDR_IMM_SCALED: the current segment is null"
+          );
+        } else if (segment_offset > current_segment->file_size()) {
+          LIEF_WARN(
+              "REBASE_OPCODE_ADD_ADDR_IMM_SCALED: Bad offset ({:#x} > {:#x})",
+              segment_offset, current_segment->file_size()
+          );
+        }
+        break;
+      }
+
+      case DyldInfo::REBASE_OPCODES::DO_REBASE_IMM_TIMES:
+      {
+        for (size_t i = 0; i < imm; ++i) {
+          if (is_err(do_rebase<MACHO_T>(type, segment_index, segment_offset,
+                                        &segments)))
+          {
             break;
           }
-          segment_offset += *seg_offset;
+          segment_offset += sizeof(pint_t);
           if (current_segment == nullptr) {
-            LIEF_WARN("REBASE_OPCODE_ADD_ADDR_ULEB: the current segment is null");
-          }
-          else if (segment_offset > current_segment->file_size()) {
-            LIEF_WARN("REBASE_OPCODE_ADD_ADDR_ULEB: Bad offset (0x{:x} > 0x{:x})",
-                      segment_offset, current_segment->file_size());
+            LIEF_WARN(
+                "REBASE_OPCODE_DO_REBASE_IMM_TIMES: the current segment is null"
+            );
+          } else if (segment_offset > current_segment->file_size()) {
+            LIEF_WARN(
+                "REBASE_OPCODE_DO_REBASE_IMM_TIMES: Bad offset ({:#x} > {:#x})",
+                segment_offset, current_segment->file_size()
+            );
           }
+        }
+        break;
+      }
+      case DyldInfo::REBASE_OPCODES::DO_REBASE_ULEB_TIMES:
+      {
+        auto uleb128_val = stream_->read_uleb128();
+        if (!uleb128_val) {
+          LIEF_ERR("REBASE_OPCODE_DO_REBASE_ULEB_TIMES: Can't read uleb128 count");
           break;
         }

-      case DyldInfo::REBASE_OPCODES::ADD_ADDR_IMM_SCALED:
-        {
-          segment_offset += (imm * sizeof(pint_t));
+        if (segment_index < segments.size()) {
+          count = safe_dyld_opcode_count<uint32_t>(&segments[segment_index],
+                                                   segment_offset, sizeof(pint_t),
+                                                   *uleb128_val);
+        }
+
+        for (size_t i = 0; i < count; ++i) {
           if (current_segment == nullptr) {
-            LIEF_WARN("REBASE_OPCODE_ADD_ADDR_IMM_SCALED: the current segment is null");
+            LIEF_WARN(
+                "REBASE_OPCODE_DO_REBASE_ULEB_TIMES: the current segment is null"
+            );
+          } else if (segment_offset > current_segment->file_size()) {
+            LIEF_WARN(
+                "REBASE_OPCODE_DO_REBASE_ULEB_TIMES: Bad offset ({:#x} > {:#x})",
+                segment_offset, current_segment->file_size()
+            );
           }
-          else if (segment_offset > current_segment->file_size()) {
-            LIEF_WARN("REBASE_OPCODE_ADD_ADDR_IMM_SCALED: Bad offset (0x{:x} > 0x{:x})",
-                      segment_offset, current_segment->file_size());
+
+          if (is_err(do_rebase<MACHO_T>(type, segment_index, segment_offset,
+                                        &segments)))
+          {
+            break;
           }
+          segment_offset += sizeof(pint_t);
+        }
+        break;
+      }
+
+      case DyldInfo::REBASE_OPCODES::DO_REBASE_ADD_ADDR_ULEB:
+      {
+        if (current_segment == nullptr) {
+          LIEF_WARN(
+              "REBASE_OPCODE_DO_REBASE_ADD_ADDR_ULEB: the current segment is null"
+          );
+        } else if (segment_offset > current_segment->file_size()) {
+          LIEF_WARN(
+              "REBASE_OPCODE_DO_REBASE_ADD_ADDR_ULEB: Bad offset ({:#x} > {:#x})",
+              segment_offset, current_segment->file_size()
+          );
+        }
+        do_rebase<MACHO_T>(type, segment_index, segment_offset, &segments);
+        auto uleb128_val = stream_->read_uleb128();
+        if (!uleb128_val) {
+          LIEF_ERR("REBASE_OPCODE_DO_REBASE_ADD_ADDR_ULEB: Can't read uleb128 "
+                   "segment_offset");
           break;
         }
+        segment_offset += *uleb128_val + sizeof(pint_t);

-      case DyldInfo::REBASE_OPCODES::DO_REBASE_IMM_TIMES:
-        {
-          for (size_t i = 0; i < imm; ++i) {
-            do_rebase<MACHO_T>(type, segment_index, segment_offset, &segments);
-            segment_offset += sizeof(pint_t);
-            if (current_segment == nullptr) {
-              LIEF_WARN("REBASE_OPCODE_DO_REBASE_IMM_TIMES: the current segment is null");
-            }
-            else if (segment_offset > current_segment->file_size()) {
-              LIEF_WARN("REBASE_OPCODE_DO_REBASE_IMM_TIMES: Bad offset (0x{:x} > 0x{:x})",
-                        segment_offset, current_segment->file_size());
-            }
-          }
+        break;
+      }
+
+      case DyldInfo::REBASE_OPCODES::DO_REBASE_ULEB_TIMES_SKIPPING_ULEB:
+      {
+        // Count
+        auto uleb128_val = stream_->read_uleb128();
+        if (!uleb128_val) {
+          LIEF_ERR(
+              "Can't read REBASE_OPCODE_DO_REBASE_ULEB_TIMES_SKIPPING_ULEB count"
+          );
           break;
         }
-      case DyldInfo::REBASE_OPCODES::DO_REBASE_ULEB_TIMES:
-        {
-          auto uleb128_val = stream_->read_uleb128();
-          if (!uleb128_val) {
-            LIEF_ERR("REBASE_OPCODE_DO_REBASE_ULEB_TIMES: Can't read uleb128 count");
-            break;
-          }
-          count = *uleb128_val;
-          for (size_t i = 0; i < count; ++i) {
-            if (current_segment == nullptr) {
-              LIEF_WARN("REBASE_OPCODE_DO_REBASE_ULEB_TIMES: the current segment is null");
-            }
-            else if (segment_offset > current_segment->file_size()) {
-              LIEF_WARN("REBASE_OPCODE_DO_REBASE_ULEB_TIMES: Bad offset (0x{:x} > 0x{:x})",
-                        segment_offset, current_segment->file_size());
-            }
+        count = *uleb128_val;

-            do_rebase<MACHO_T>(type, segment_index, segment_offset, &segments);
-            segment_offset += sizeof(pint_t);
-          }
+        uleb128_val = stream_->read_uleb128();
+        if (!uleb128_val) {
+          LIEF_ERR(
+              "Can't read REBASE_OPCODE_DO_REBASE_ULEB_TIMES_SKIPPING_ULEB skip"
+          );
           break;
         }
+        // Skip
+        skip = *uleb128_val;

-      case DyldInfo::REBASE_OPCODES::DO_REBASE_ADD_ADDR_ULEB:
-        {
+        if (segment_index < segments.size()) {
+          count = safe_dyld_opcode_count<uint32_t>(&segments[segment_index],
+                                                   segment_offset, sizeof(pint_t),
+                                                   count);
+        }
+
+        for (size_t i = 0; i < count; ++i) {
           if (current_segment == nullptr) {
-            LIEF_WARN("REBASE_OPCODE_DO_REBASE_ADD_ADDR_ULEB: the current segment is null");
-          }
-          else if (segment_offset > current_segment->file_size()) {
-            LIEF_WARN("REBASE_OPCODE_DO_REBASE_ADD_ADDR_ULEB: Bad offset (0x{:x} > 0x{:x})",
+            LIEF_WARN("REBASE_OPCODE_DO_REBASE_ULEB_TIMES_SKIPPING_ULEB: the "
+                      "current segment is null");
+          } else if (segment_offset > current_segment->file_size()) {
+            LIEF_WARN("REBASE_OPCODE_DO_REBASE_ULEB_TIMES_SKIPPING_ULEB: Bad "
+                      "offset ({:#x} > {:#x})",
                       segment_offset, current_segment->file_size());
           }
-          do_rebase<MACHO_T>(type, segment_index, segment_offset, &segments);
-          auto uleb128_val = stream_->read_uleb128();
-          if (!uleb128_val) {
-            LIEF_ERR("REBASE_OPCODE_DO_REBASE_ADD_ADDR_ULEB: Can't read uleb128 segment_offset");
+          if (is_err(do_rebase<MACHO_T>(type, segment_index, segment_offset,
+                                        &segments)))
+          {
             break;
           }
-          segment_offset += *uleb128_val + sizeof(pint_t);
-
-          break;
+          segment_offset += skip + sizeof(pint_t);
         }

-      case DyldInfo::REBASE_OPCODES::DO_REBASE_ULEB_TIMES_SKIPPING_ULEB:
-        {
-          // Count
-          auto uleb128_val = stream_->read_uleb128();
-          if (!uleb128_val) {
-            LIEF_ERR("Can't read REBASE_OPCODE_DO_REBASE_ULEB_TIMES_SKIPPING_ULEB count");
-            break;
-          }
-          count = *uleb128_val;
-
-          uleb128_val = stream_->read_uleb128();
-          if (!uleb128_val) {
-            LIEF_ERR("Can't read REBASE_OPCODE_DO_REBASE_ULEB_TIMES_SKIPPING_ULEB skip");
-            break;
-          }
-          // Skip
-          skip = *uleb128_val;
-
-
-          for (size_t i = 0; i < count; ++i) {
-            if (current_segment == nullptr) {
-              LIEF_WARN("REBASE_OPCODE_DO_REBASE_ULEB_TIMES_SKIPPING_ULEB: the current segment is null");
-            }
-            else if (segment_offset > current_segment->file_size()) {
-              LIEF_WARN("REBASE_OPCODE_DO_REBASE_ULEB_TIMES_SKIPPING_ULEB: Bad offset (0x{:x} > 0x{:x})",
-                        segment_offset, current_segment->file_size());
-            }
-            do_rebase<MACHO_T>(type, segment_index, segment_offset, &segments);
-            segment_offset += skip + sizeof(pint_t);
-          }
-
-          break;
-        }
+        break;
+      }

       default:
-        {
-          LIEF_ERR("Unsupported opcode: 0x{:x}", static_cast<uint32_t>(opcode));
-          break;
-        }
+      {
+        LIEF_ERR("Unsupported opcode: {:#x}", static_cast<uint32_t>(opcode));
+        break;
+      }
     }
   }
   return ok();
@@ -1525,31 +1726,31 @@ ok_error_t BinaryParser::parse_dyldinfo_generic_bind() {
   }

   uint32_t offset = std::get<0>(dyldinfo->bind());
-  uint32_t size   = std::get<1>(dyldinfo->bind());
+  uint32_t size = std::get<1>(dyldinfo->bind());

   if (offset == 0 || size == 0) {
     return ok();
   }

-  if (static_cast<int32_t>(offset) < 0 ||
-      static_cast<int32_t>(size)   < 0) {
+  if (static_cast<int32_t>(offset) < 0 || static_cast<int32_t>(size) < 0) {
     LIEF_WARN("LC_DYLD_INFO.binding payload is corrupted");
     return make_error_code(lief_errors::read_out_of_bound);
   }

   SegmentCommand* linkedit = config_.from_dyld_shared_cache ?
-                             binary_->get_segment("__LINKEDIT") :
-                             binary_->segment_from_offset(offset);
+                                 binary_->get_segment("__LINKEDIT") :
+                                 binary_->segment_from_offset(offset);

   if (linkedit == nullptr) {
     LIEF_WARN("Can't find the segment that contains the regular bind opcodes");
     return make_error_code(lief_errors::not_found);
   }

-  span<uint8_t> content = linkedit->writable_content();
+  span<uint8_t> content = linkedit->content();
   const uint64_t rel_offset = offset - linkedit->file_offset();
   if (rel_offset > content.size() || (rel_offset + size) > content.size()) {
-    LIEF_ERR("Regular bind opcodes are out of bounds of the segment {}", linkedit->name());
+    LIEF_ERR("Regular bind opcodes are out of bounds of the segment {}",
+             linkedit->name());
     return make_error_code(lief_errors::read_out_of_bound);
   }

@@ -1557,23 +1758,23 @@ ok_error_t BinaryParser::parse_dyldinfo_generic_bind() {

   uint64_t end_offset = offset + size;

-  uint8_t     type = 0;
-  uint8_t     segment_idx = 0;
-  uint64_t    segment_offset = 0;
+  uint8_t type = 0;
+  uint8_t segment_idx = 0;
+  uint64_t segment_offset = 0;
   std::string symbol_name;
-  int         library_ordinal = 0;
+  int library_ordinal = 0;

-  int64_t     addend = 0;
-  uint32_t    count = 0;
-  uint32_t    skip = 0;
+  int64_t addend = 0;
+  uint32_t count = 0;
+  uint32_t skip = 0;

-  bool        is_weak_import = false;
-  bool        done = false;
+  bool is_weak_import = false;
+  bool done = false;

-  size_t ordinal_table_size     = 0;
+  size_t ordinal_table_size = 0;
   bool use_threaded_rebase_bind = false;
-  uint8_t symbol_flags          = 0;
-  uint64_t start_offset         = 0;
+  uint8_t symbol_flags = 0;
+  uint64_t start_offset = 0;
   std::vector<ThreadedBindData> ordinal_table;

   Binary::it_segments segments = binary_->segments();
@@ -1588,292 +1789,295 @@ ok_error_t BinaryParser::parse_dyldinfo_generic_bind() {

     switch (opcode) {
       case DyldInfo::BIND_OPCODES::DONE:
-        {
-          done = true;
-          break;
-        }
+      {
+        done = true;
+        break;
+      }

       case DyldInfo::BIND_OPCODES::SET_DYLIB_ORDINAL_IMM:
-        {
-          library_ordinal = imm;
-          break;
-        }
+      {
+        library_ordinal = imm;
+        break;
+      }

       case DyldInfo::BIND_OPCODES::SET_DYLIB_ORDINAL_ULEB:
-        {
-          auto val = stream_->read_uleb128();
-          if (!val) {
-            LIEF_ERR("Can't read BIND_OPCODE_SET_DYLIB_ORDINAL_ULEB uleb128 ordinal");
-            break;
-          }
-          library_ordinal = *val;
-
+      {
+        auto val = stream_->read_uleb128();
+        if (!val) {
+          LIEF_ERR(
+              "Can't read BIND_OPCODE_SET_DYLIB_ORDINAL_ULEB uleb128 ordinal"
+          );
           break;
         }
+        library_ordinal = *val;
+
+        break;
+      }

       case DyldInfo::BIND_OPCODES::SET_DYLIB_SPECIAL_IMM:
-        {
-          // the special ordinals are negative numbers
-          if (imm == 0) {
-            library_ordinal = 0;
-          } else {
-            int8_t sign_extended = DyldInfo::OPCODE_MASK | imm;
-            library_ordinal = sign_extended;
-          }
-          break;
+      {
+        // the special ordinals are negative numbers
+        if (imm == 0) {
+          library_ordinal = 0;
+        } else {
+          int8_t sign_extended = DyldInfo::OPCODE_MASK | imm;
+          library_ordinal = sign_extended;
         }
+        break;
+      }

       case DyldInfo::BIND_OPCODES::SET_SYMBOL_TRAILING_FLAGS_IMM:
-        {
-          auto str = stream_->read_string();
-          if (!str) {
-            LIEF_ERR("Can't read symbol name");
-            break;
-          }
-          symbol_name = std::move(*str);
-          symbol_flags = imm;
-
-          if ((imm & uint8_t(DyldInfo::BIND_SYMBOL_FLAGS::WEAK_IMPORT)) != 0) {
-            is_weak_import = true;
-          } else {
-            is_weak_import = false;
-          }
+      {
+        auto str = stream_->read_string();
+        if (!str) {
+          LIEF_ERR("Can't read symbol name");
           break;
         }
+        symbol_name = std::move(*str);
+        symbol_flags = imm;

-      case DyldInfo::BIND_OPCODES::SET_TYPE_IMM:
-        {
-          type = imm;
-          break;
+        if ((imm & uint8_t(DyldInfo::BIND_SYMBOL_FLAGS::WEAK_IMPORT)) != 0) {
+          is_weak_import = true;
+        } else {
+          is_weak_import = false;
         }
+        break;
+      }
+
+      case DyldInfo::BIND_OPCODES::SET_TYPE_IMM:
+      {
+        type = imm;
+        break;
+      }

       case DyldInfo::BIND_OPCODES::SET_ADDEND_SLEB:
-        {
-          auto val = stream_->read_sleb128();
-          if (!val) {
-            LIEF_ERR("Can't read BIND_OPCODE_SET_ADDEND_SLEB uleb128 addend");
-            break;
-          }
-          addend = *val;
+      {
+        auto val = stream_->read_sleb128();
+        if (!val) {
+          LIEF_ERR("Can't read BIND_OPCODE_SET_ADDEND_SLEB uleb128 addend");
           break;
         }
+        addend = *val;
+        break;
+      }

       case DyldInfo::BIND_OPCODES::SET_SEGMENT_AND_OFFSET_ULEB:
-        {
-          auto val = stream_->read_uleb128();
-          if (!val) {
-            LIEF_ERR("Can't read BIND_OPCODE_SET_SEGMENT_AND_OFFSET_ULEB uleb128 segment offset");
-            break;
-          }
-          segment_idx    = imm;
-          segment_offset = *val;
+      {
+        auto val = stream_->read_uleb128();
+        if (!val) {
+          LIEF_ERR("Can't read BIND_OPCODE_SET_SEGMENT_AND_OFFSET_ULEB uleb128 "
+                   "segment offset");
           break;
         }
+        segment_idx = imm;
+        segment_offset = *val;
+        break;
+      }

       case DyldInfo::BIND_OPCODES::ADD_ADDR_ULEB:
-        {
-          auto val = stream_->read_uleb128();
-          if (!val) {
-            LIEF_ERR("Can't read BIND_OPCODE_ADD_ADDR_ULEB uleb128 segment offset");
-            break;
-          }
-          segment_offset += *val;
+      {
+        auto val = stream_->read_uleb128();
+        if (!val) {
+          LIEF_ERR("Can't read BIND_OPCODE_ADD_ADDR_ULEB uleb128 segment offset");
           break;
         }
+        segment_offset += *val;
+        break;
+      }

       case DyldInfo::BIND_OPCODES::DO_BIND:
-        {
-          if (!use_threaded_rebase_bind) {
-            do_bind<MACHO_T>(
-                DyldBindingInfo::CLASS::STANDARD,
-                type,
-                segment_idx,
-                segment_offset,
-                symbol_name,
-                library_ordinal,
-                addend,
-                is_weak_import,
-                false,
-                &segments, start_offset);
-            start_offset = stream_->pos() - offset + 1;
-            segment_offset += sizeof(pint_t);
-          } else {
-            ordinal_table.push_back(ThreadedBindData{symbol_name, addend, library_ordinal, symbol_flags, type});
-          }
-          break;
+      {
+        if (!use_threaded_rebase_bind) {
+          do_bind<MACHO_T>(DyldBindingInfo::CLASS::STANDARD, type, segment_idx,
+                           segment_offset, symbol_name, library_ordinal, addend,
+                           is_weak_import, false, &segments, start_offset);
+          start_offset = stream_->pos() - offset + 1;
+          segment_offset += sizeof(pint_t);
+        } else {
+          ordinal_table.push_back(ThreadedBindData{symbol_name, addend,
+                                                   library_ordinal, symbol_flags,
+                                                   type});
         }
+        break;
+      }

       case DyldInfo::BIND_OPCODES::DO_BIND_ADD_ADDR_ULEB:
-        {
-          do_bind<MACHO_T>(
-              DyldBindingInfo::CLASS::STANDARD,
-              type,
-              segment_idx,
-              segment_offset,
-              symbol_name,
-              library_ordinal,
-              addend,
-              is_weak_import,
-              false,
-              &segments, start_offset);
-          start_offset = stream_->pos() - offset + 1;
+      {
+        do_bind<MACHO_T>(DyldBindingInfo::CLASS::STANDARD, type, segment_idx,
+                         segment_offset, symbol_name, library_ordinal, addend,
+                         is_weak_import, false, &segments, start_offset);
+        start_offset = stream_->pos() - offset + 1;
+
+        auto val = stream_->read_uleb128();
+        if (!val) {
+          LIEF_ERR(
+              "Can't read BIND_OPCODE_DO_BIND_ADD_ADDR_ULEB uleb128 segment offset"
+          );
+          break;
+        }

-          auto val = stream_->read_uleb128();
-          if (!val) {
-            LIEF_ERR("Can't read BIND_OPCODE_DO_BIND_ADD_ADDR_ULEB uleb128 segment offset");
-            break;
-          }
+        segment_offset += *val + sizeof(pint_t);
+        break;
+      }
+
+      case DyldInfo::BIND_OPCODES::DO_BIND_ADD_ADDR_IMM_SCALED:
+      {
+        do_bind<MACHO_T>(DyldBindingInfo::CLASS::STANDARD, type, segment_idx,
+                         segment_offset, symbol_name, library_ordinal, addend,
+                         is_weak_import, false, &segments, start_offset);
+        start_offset = stream_->pos() - offset + 1;
+        segment_offset += imm * sizeof(pint_t) + sizeof(pint_t);
+        break;
+      }

-          segment_offset += *val + sizeof(pint_t);
+      case DyldInfo::BIND_OPCODES::DO_BIND_ULEB_TIMES_SKIPPING_ULEB:
+      {
+        auto val = stream_->read_uleb128();
+        if (!val) {
+          LIEF_ERR("Can't read BIND_OPCODE_DO_BIND_ULEB_TIMES_SKIPPING_ULEB "
+                   "uleb128 count");
           break;
         }
+        count = *val;

-      case DyldInfo::BIND_OPCODES::DO_BIND_ADD_ADDR_IMM_SCALED:
-        {
-          do_bind<MACHO_T>(
-              DyldBindingInfo::CLASS::STANDARD,
-              type,
-              segment_idx,
-              segment_offset,
-              symbol_name,
-              library_ordinal,
-              addend,
-              is_weak_import,
-              false,
-              &segments, start_offset);
-          start_offset = stream_->pos() - offset + 1;
-          segment_offset += imm * sizeof(pint_t) + sizeof(pint_t);
+        val = stream_->read_uleb128();
+        if (!val) {
+          LIEF_ERR("Can't read BIND_OPCODE_DO_BIND_ULEB_TIMES_SKIPPING_ULEB "
+                   "uleb128 skip");
           break;
         }
+        skip = *val;

-      case DyldInfo::BIND_OPCODES::DO_BIND_ULEB_TIMES_SKIPPING_ULEB:
         {
-          auto val = stream_->read_uleb128();
-          if (!val) {
-            LIEF_ERR("Can't read BIND_OPCODE_DO_BIND_ULEB_TIMES_SKIPPING_ULEB uleb128 count");
-            break;
-          }
-          count = *val;
-
-          val = stream_->read_uleb128();
-          if (!val) {
-            LIEF_ERR("Can't read BIND_OPCODE_DO_BIND_ULEB_TIMES_SKIPPING_ULEB uleb128 skip");
+          const SegmentCommand* current_segment =
+              segment_idx < segments.size() ? &segments[segment_idx] : nullptr;
+          count = safe_dyld_opcode_count<uint32_t>(current_segment, segment_offset,
+                                                   sizeof(pint_t), count);
+        }
+        for (size_t i = 0; i < count; ++i) {
+          if (is_err(do_bind<MACHO_T>(DyldBindingInfo::CLASS::STANDARD, type,
+                                      segment_idx, segment_offset, symbol_name,
+                                      library_ordinal, addend, is_weak_import,
+                                      false, &segments, start_offset)))
+          {
             break;
           }
-          skip = *val;
-
-          for (size_t i = 0; i < count; ++i) {
-            do_bind<MACHO_T>(
-                DyldBindingInfo::CLASS::STANDARD,
-                type,
-                segment_idx,
-                segment_offset,
-                symbol_name,
-                library_ordinal,
-                addend,
-                is_weak_import,
-                false,
-                &segments, start_offset);
-            start_offset = stream_->pos() - offset + 1;
-            segment_offset += skip + sizeof(pint_t);
-          }
-          break;
+          start_offset = stream_->pos() - offset + 1;
+          segment_offset += skip + sizeof(pint_t);
         }
+        break;
+      }
       case DyldInfo::BIND_OPCODES::THREADED:
-        {
-          const auto subopcode = DyldInfo::BIND_SUBOPCODE_THREADED(imm);
-          switch (subopcode) {
-            case DyldInfo::BIND_SUBOPCODE_THREADED::APPLY:
+      {
+        const auto subopcode = DyldInfo::BIND_SUBOPCODE_THREADED(imm);
+        switch (subopcode) {
+          case DyldInfo::BIND_SUBOPCODE_THREADED::APPLY:
+          {
+            uint64_t delta = 0;
+            if (segment_idx >= segments.size()) {
+              LIEF_ERR("Wrong index ({:d})", segment_idx);
+              return make_error_code(lief_errors::corrupted);
+            }
+            const SegmentCommand& current_segment = segments[segment_idx];
+            do {
+              const uint64_t address =
+                  current_segment.virtual_address() + segment_offset;
+              span<const uint8_t> content = current_segment.content();
+              if (segment_offset >= content.size() ||
+                  segment_offset + sizeof(uint64_t) >= content.size())
               {
-                uint64_t delta = 0;
-                if (segment_idx >= segments.size()) {
-                  LIEF_ERR("Wrong index ({:d})", segment_idx);
-                  return make_error_code(lief_errors::corrupted);
-                }
-                const SegmentCommand& current_segment = segments[segment_idx];
-                do {
-                  const uint64_t address = current_segment.virtual_address() + segment_offset;
-                  span<const uint8_t> content = current_segment.content();
-                  if (segment_offset >= content.size() || segment_offset + sizeof(uint64_t) >= content.size()) {
-                    LIEF_WARN("Bad segment offset (0x{:x})", segment_offset);
-                    delta = 0; // exit from de do ... while
-                    break;
-                  }
-                  auto value = *reinterpret_cast<const uint64_t*>(content.data() + segment_offset);
-                  bool is_rebase = (value & (static_cast<uint64_t>(1) << 62)) == 0;
-
-                  if (is_rebase) {
-                    //LIEF_WARN("do rebase for addr: 0x{:x} vs 0x{:x}", address, current_segment)
-                    do_rebase<MACHO_T>(static_cast<uint8_t>(DyldInfo::REBASE_TYPE::POINTER),
-                                       segment_idx, segment_offset, &segments);
-                  } else {
-                    uint16_t ordinal = value & 0xFFFF;
-                    if (ordinal >= ordinal_table_size || ordinal >= ordinal_table.size()) {
-                      LIEF_WARN("bind ordinal ({:d}) is out of range (max={:d}) for disk pointer 0x{:04x} in "
-                                "segment '{}' (segment offset: 0x{:04x})", ordinal, ordinal_table_size, value,
-                                current_segment.name(), segment_offset);
-                      break;
-                    }
-                    if (address < current_segment.virtual_address() ||
-                        address >= (current_segment.virtual_address() + current_segment.virtual_size())) {
-                      LIEF_WARN("Bad binding address");
-                      break;
-                    }
-                    const ThreadedBindData& th_bind_data = ordinal_table[ordinal];
-                    do_bind<MACHO_T>(
-                        DyldBindingInfo::CLASS::THREADED,
-                        th_bind_data.type,
-                        segment_idx,
-                        segment_offset,
-                        th_bind_data.symbol_name,
-                        th_bind_data.library_ordinal,
-                        th_bind_data.addend,
-                        th_bind_data.symbol_flags & uint8_t(DyldInfo::BIND_SYMBOL_FLAGS::WEAK_IMPORT),
-                        false,
-                        &segments, start_offset);
-                        start_offset = stream_->pos() - offset + 1;
-                  }
-                  // The delta is bits [51..61]
-                  // And bit 62 is to tell us if we are a rebase (0) or bind (1)
-                  value &= ~(1ull << 62);
-                  delta = (value & 0x3FF8000000000000) >> 51;
-                  segment_offset += delta * sizeof(pint_t);
-                } while (delta != 0);
+                LIEF_WARN("Bad segment offset ({:#x})", segment_offset);
+                delta = 0; // exit from the do ... while
                 break;
               }
-            case DyldInfo::BIND_SUBOPCODE_THREADED::SET_BIND_ORDINAL_TABLE_SIZE_ULEB:
-              {
-                // Maxium number of elements according to dyld's MachOAnalyzer.cpp
-                static constexpr size_t MAX_COUNT = 65535;
-                auto val = stream_->read_uleb128();
-                if (!val) {
-                  LIEF_ERR("Can't read BIND_SUBOPCODE_THREADED_SET_BIND_ORDINAL_TABLE_SIZE_ULEB count");
+              auto value = *reinterpret_cast<const uint64_t*>(content.data() +
+                                                              segment_offset);
+              bool is_rebase = (value & (static_cast<uint64_t>(1) << 62)) == 0;
+
+              if (is_rebase) {
+                // LIEF_WARN("do rebase for addr: {:#x} vs {:#x}", address,
+                // current_segment)
+                do_rebase<MACHO_T>(
+                    static_cast<uint8_t>(DyldInfo::REBASE_TYPE::POINTER),
+                    segment_idx, segment_offset, &segments
+                );
+              } else {
+                uint16_t ordinal = value & 0xFFFF;
+                if (ordinal >= ordinal_table_size ||
+                    ordinal >= ordinal_table.size())
+                {
+                  LIEF_WARN("Bind ordinal ({:d}) is out of range (max={:d}) for "
+                            "disk pointer {:#06x} in "
+                            "segment '{}' (segment offset: {:#06x})",
+                            ordinal, ordinal_table_size, value,
+                            current_segment.name(), segment_offset);
                   break;
                 }
-                count = *val;
-                if (count > MAX_COUNT) {
-                  LIEF_ERR("BIND_SUBOPCODE_THREADED_SET_BIND_ORDINAL_TABLE_SIZE_ULEB"
-                           "count is too large ({})", count);
+                if (address < current_segment.virtual_address() ||
+                    address >= (current_segment.virtual_address() +
+                                current_segment.virtual_size()))
+                {
+                  LIEF_WARN("Bad binding address");
                   break;
                 }
-                ordinal_table_size = count + 1; // the +1 comes from: 'ld64 wrote the wrong value here and we need to offset by 1 for now.'
-                use_threaded_rebase_bind = true;
-                ordinal_table.reserve(ordinal_table_size);
-                break;
+                const ThreadedBindData& th_bind_data = ordinal_table[ordinal];
+                do_bind<MACHO_T>(
+                    DyldBindingInfo::CLASS::THREADED, th_bind_data.type,
+                    segment_idx, segment_offset, th_bind_data.symbol_name,
+                    th_bind_data.library_ordinal, th_bind_data.addend,
+                    th_bind_data.symbol_flags &
+                        uint8_t(DyldInfo::BIND_SYMBOL_FLAGS::WEAK_IMPORT),
+                    false, &segments, start_offset
+                );
+                start_offset = stream_->pos() - offset + 1;
               }
+              // The delta is bits [51..61]
+              // And bit 62 is to tell us if we are a rebase (0) or bind (1)
+              value &= ~(1ull << 62);
+              delta = (value & 0x3FF8000000000000) >> 51;
+              segment_offset += delta * sizeof(pint_t);
+            } while (delta != 0);
+            break;
+          }
+          case DyldInfo::BIND_SUBOPCODE_THREADED::SET_BIND_ORDINAL_TABLE_SIZE_ULEB:
+          {
+            // Maximum number of elements according to dyld's MachOAnalyzer.cpp
+            static constexpr size_t MAX_COUNT = 65535;
+            auto val = stream_->read_uleb128();
+            if (!val) {
+              LIEF_ERR(
+                  "Can't read "
+                  "BIND_SUBOPCODE_THREADED_SET_BIND_ORDINAL_TABLE_SIZE_ULEB count"
+              );
+              break;
+            }
+            count = *val;
+            if (count > MAX_COUNT) {
+              LIEF_ERR("BIND_SUBOPCODE_THREADED_SET_BIND_ORDINAL_TABLE_SIZE_ULEB"
+                       "count is too large ({})",
+                       count);
+              break;
+            }
+            ordinal_table_size =
+                count + 1; // the +1 comes from: 'ld64 wrote the wrong value here
+                           // and we need to offset by 1 for now.'
+            use_threaded_rebase_bind = true;
+            ordinal_table.reserve(ordinal_table_size);
+            break;
           }
-          break;
         }
+        break;
+      }
       default:
-        {
-          LIEF_ERR("Unsupported opcode: 0x{:x}", static_cast<uint32_t>(opcode));
-          break;
-        }
+      {
+        LIEF_ERR("Unsupported opcode: {:#x}", static_cast<uint32_t>(opcode));
+        break;
       }
+    }
   }
-  dyldinfo->binding_encoding_version_ = use_threaded_rebase_bind ?
-                                        DyldInfo::BINDING_ENCODING_VERSION::V2 :
-                                        DyldInfo::BINDING_ENCODING_VERSION::V1;
+  dyldinfo->binding_encoding_version_ =
+      use_threaded_rebase_bind ? DyldInfo::BINDING_ENCODING_VERSION::V2 :
+                                 DyldInfo::BINDING_ENCODING_VERSION::V1;
   return ok();
 }

@@ -1890,31 +2094,31 @@ ok_error_t BinaryParser::parse_dyldinfo_weak_bind() {
   }

   uint32_t offset = std::get<0>(dyldinfo->weak_bind());
-  uint32_t size   = std::get<1>(dyldinfo->weak_bind());
+  uint32_t size = std::get<1>(dyldinfo->weak_bind());

   if (offset == 0 || size == 0) {
     return ok();
   }

-  if (static_cast<int32_t>(offset) < 0 ||
-      static_cast<int32_t>(size)   < 0) {
+  if (static_cast<int32_t>(offset) < 0 || static_cast<int32_t>(size) < 0) {
     LIEF_WARN("LC_DYLD_INFO.weak_bind payload is corrupted");
     return make_error_code(lief_errors::read_out_of_bound);
   }

   SegmentCommand* linkedit = config_.from_dyld_shared_cache ?
-                             binary_->get_segment("__LINKEDIT") :
-                             binary_->segment_from_offset(offset);
+                                 binary_->get_segment("__LINKEDIT") :
+                                 binary_->segment_from_offset(offset);

   if (linkedit == nullptr) {
     LIEF_WARN("Can't find the segment that contains the weak bind opcodes");
     return make_error_code(lief_errors::not_found);
   }

-  span<uint8_t> content = linkedit->writable_content();
+  span<uint8_t> content = linkedit->content();
   const uint64_t rel_offset = offset - linkedit->file_offset();
   if (rel_offset > content.size() || (rel_offset + size) > content.size()) {
-    LIEF_ERR("Weak bind opcodes are out of bounds of the segment {}", linkedit->name());
+    LIEF_ERR("Weak bind opcodes are out of bounds of the segment {}",
+             linkedit->name());
     return make_error_code(lief_errors::read_out_of_bound);
   }

@@ -1922,19 +2126,19 @@ ok_error_t BinaryParser::parse_dyldinfo_weak_bind() {

   uint64_t end_offset = offset + size;

-  uint8_t     type = 0;
-  uint8_t     segment_idx = 0;
-  uint64_t    segment_offset = 0;
+  uint8_t type = 0;
+  uint8_t segment_idx = 0;
+  uint64_t segment_offset = 0;
   std::string symbol_name;

-  int64_t     addend = 0;
-  uint32_t    count = 0;
-  uint32_t    skip = 0;
+  int64_t addend = 0;
+  uint32_t count = 0;
+  uint32_t skip = 0;

-  bool        is_weak_import = true;
-  bool        is_non_weak_definition = false;
-  bool        done = false;
-  uint64_t    start_offset    = 0;
+  bool is_weak_import = true;
+  bool is_non_weak_definition = false;
+  bool done = false;
+  uint64_t start_offset = 0;

   Binary::it_segments segments = binary_->segments();

@@ -1950,181 +2154,167 @@ ok_error_t BinaryParser::parse_dyldinfo_weak_bind() {

     switch (opcode) {
       case DyldInfo::BIND_OPCODES::DONE:
-        {
-          done = true;
-          break;
-        }
+      {
+        done = true;
+        break;
+      }


       case DyldInfo::BIND_OPCODES::SET_SYMBOL_TRAILING_FLAGS_IMM:
-        {
-          auto str = stream_->read_string();
-          if (!str) {
-            LIEF_ERR("Can't read BIND_OPCODE_SET_SYMBOL_TRAILING_FLAGS_IMM symbol name");
-            break;
-          }
-          symbol_name = std::move(*str);
-
-          if ((imm & uint8_t(DyldInfo::BIND_SYMBOL_FLAGS::NON_WEAK_DEFINITION)) != 0) {
-            is_non_weak_definition = true;
-          } else {
-            is_non_weak_definition = false;
-          }
+      {
+        auto str = stream_->read_string();
+        if (!str) {
+          LIEF_ERR(
+              "Can't read BIND_OPCODE_SET_SYMBOL_TRAILING_FLAGS_IMM symbol name"
+          );
           break;
         }
+        symbol_name = std::move(*str);

-      case DyldInfo::BIND_OPCODES::SET_TYPE_IMM:
+        if ((imm & uint8_t(DyldInfo::BIND_SYMBOL_FLAGS::NON_WEAK_DEFINITION)) != 0)
         {
-          type = imm;
-          break;
+          is_non_weak_definition = true;
+        } else {
+          is_non_weak_definition = false;
         }
+        break;
+      }
+
+      case DyldInfo::BIND_OPCODES::SET_TYPE_IMM:
+      {
+        type = imm;
+        break;
+      }


       case DyldInfo::BIND_OPCODES::SET_ADDEND_SLEB:
-        {
-          auto val = stream_->read_sleb128();
-          if (!val) {
-            LIEF_ERR("Can't read BIND_OPCODE_SET_ADDEND_SLEB sleb128 addend");
-            break;
-          }
-          addend = *val;
+      {
+        auto val = stream_->read_sleb128();
+        if (!val) {
+          LIEF_ERR("Can't read BIND_OPCODE_SET_ADDEND_SLEB sleb128 addend");
           break;
         }
+        addend = *val;
+        break;
+      }


       case DyldInfo::BIND_OPCODES::SET_SEGMENT_AND_OFFSET_ULEB:
-        {
-          auto val = stream_->read_uleb128();
-          if (!val) {
-            LIEF_ERR("Can't read BIND_OPCODE_SET_SEGMENT_AND_OFFSET_ULEB uleb128 segment offset");
-            break;
-          }
-          segment_idx    = imm;
-          segment_offset = *val;
-
+      {
+        auto val = stream_->read_uleb128();
+        if (!val) {
+          LIEF_ERR("Can't read BIND_OPCODE_SET_SEGMENT_AND_OFFSET_ULEB uleb128 "
+                   "segment offset");
           break;
         }
+        segment_idx = imm;
+        segment_offset = *val;
+
+        break;
+      }


       case DyldInfo::BIND_OPCODES::ADD_ADDR_ULEB:
-        {
-          auto val = stream_->read_uleb128();
-          if (!val) {
-            LIEF_ERR("Can't read BIND_OPCODE_ADD_ADDR_ULEB uleb128 segment offset");
-            break;
-          }
-          segment_offset += *val;
+      {
+        auto val = stream_->read_uleb128();
+        if (!val) {
+          LIEF_ERR("Can't read BIND_OPCODE_ADD_ADDR_ULEB uleb128 segment offset");
           break;
         }
+        segment_offset += *val;
+        break;
+      }


       case DyldInfo::BIND_OPCODES::DO_BIND:
-        {
-          do_bind<MACHO_T>(
-              DyldBindingInfo::CLASS::WEAK,
-              type,
-              segment_idx,
-              segment_offset,
-              symbol_name,
-              0,
-              addend,
-              is_weak_import,
-              is_non_weak_definition,
-              &segments, start_offset);
-          start_offset = stream_->pos() - offset + 1;
-          segment_offset += sizeof(pint_t);
-          break;
-        }
+      {
+        do_bind<MACHO_T>(DyldBindingInfo::CLASS::WEAK, type, segment_idx,
+                         segment_offset, symbol_name, 0, addend, is_weak_import,
+                         is_non_weak_definition, &segments, start_offset);
+        start_offset = stream_->pos() - offset + 1;
+        segment_offset += sizeof(pint_t);
+        break;
+      }


       case DyldInfo::BIND_OPCODES::DO_BIND_ADD_ADDR_ULEB:
-        {
-          do_bind<MACHO_T>(
-              DyldBindingInfo::CLASS::WEAK,
-              type,
-              segment_idx,
-              segment_offset,
-              symbol_name,
-              0,
-              addend,
-              is_weak_import,
-              is_non_weak_definition,
-              &segments, start_offset);
-          start_offset = stream_->pos() - offset + 1;
-
-          auto val = stream_->read_uleb128();
-          if (!val) {
-            LIEF_ERR("Can't read BIND_OPCODE_DO_BIND_ADD_ADDR_ULEB uleb128 segment offset");
-            break;
-          }
-          segment_offset += *val + sizeof(pint_t);
+      {
+        do_bind<MACHO_T>(DyldBindingInfo::CLASS::WEAK, type, segment_idx,
+                         segment_offset, symbol_name, 0, addend, is_weak_import,
+                         is_non_weak_definition, &segments, start_offset);
+        start_offset = stream_->pos() - offset + 1;
+
+        auto val = stream_->read_uleb128();
+        if (!val) {
+          LIEF_ERR(
+              "Can't read BIND_OPCODE_DO_BIND_ADD_ADDR_ULEB uleb128 segment offset"
+          );
           break;
         }
+        segment_offset += *val + sizeof(pint_t);
+        break;
+      }


       case DyldInfo::BIND_OPCODES::DO_BIND_ADD_ADDR_IMM_SCALED:
-        {
-          do_bind<MACHO_T>(
-              DyldBindingInfo::CLASS::WEAK,
-              type,
-              segment_idx,
-              segment_offset,
-              symbol_name,
-              0,
-              addend,
-              is_weak_import,
-              is_non_weak_definition,
-              &segments, start_offset);
-          start_offset = stream_->pos() - offset + 1;
-          segment_offset += imm * sizeof(pint_t) + sizeof(pint_t);
-          break;
-        }
+      {
+        do_bind<MACHO_T>(DyldBindingInfo::CLASS::WEAK, type, segment_idx,
+                         segment_offset, symbol_name, 0, addend, is_weak_import,
+                         is_non_weak_definition, &segments, start_offset);
+        start_offset = stream_->pos() - offset + 1;
+        segment_offset += imm * sizeof(pint_t) + sizeof(pint_t);
+        break;
+      }


       case DyldInfo::BIND_OPCODES::DO_BIND_ULEB_TIMES_SKIPPING_ULEB:
-        {
-          auto val = stream_->read_uleb128();
-          if (!val) {
-            LIEF_ERR("Can't read BIND_OPCODE_DO_BIND_ULEB_TIMES_SKIPPING_ULEB uleb128 count");
-            break;
-          }
-          // Count
-          count = *val;
+      {
+        auto val = stream_->read_uleb128();
+        if (!val) {
+          LIEF_ERR("Can't read BIND_OPCODE_DO_BIND_ULEB_TIMES_SKIPPING_ULEB "
+                   "uleb128 count");
+          break;
+        }
+        // Count
+        count = *val;
+
+        // Skip
+        val = stream_->read_uleb128();
+        if (!val) {
+          LIEF_ERR("Can't read BIND_OPCODE_DO_BIND_ULEB_TIMES_SKIPPING_ULEB "
+                   "uleb128 skip");
+          break;
+        }
+        skip = *val;

-          // Skip
-          val = stream_->read_uleb128();
-          if (!val) {
-            LIEF_ERR("Can't read BIND_OPCODE_DO_BIND_ULEB_TIMES_SKIPPING_ULEB uleb128 skip");
+        {
+          const SegmentCommand* current_segment =
+              segment_idx < segments.size() ? &segments[segment_idx] : nullptr;
+          count = safe_dyld_opcode_count<uint32_t>(current_segment, segment_offset,
+                                                   sizeof(pint_t), count);
+        }
+        for (size_t i = 0; i < count; ++i) {
+          if (is_err(do_bind<MACHO_T>(DyldBindingInfo::CLASS::WEAK, type,
+                                      segment_idx, segment_offset, symbol_name, 0,
+                                      addend, is_weak_import,
+                                      is_non_weak_definition, &segments,
+                                      start_offset)))
+          {
             break;
           }
-          skip = *val;
-
-          for (size_t i = 0; i < count; ++i) {
-            do_bind<MACHO_T>(
-                DyldBindingInfo::CLASS::WEAK,
-                type,
-                segment_idx,
-                segment_offset,
-                symbol_name,
-                0,
-                addend,
-                is_weak_import,
-                is_non_weak_definition,
-                &segments, start_offset);
-            start_offset = stream_->pos() - offset + 1;
-            segment_offset += skip + sizeof(pint_t);
-          }
-          break;
+          start_offset = stream_->pos() - offset + 1;
+          segment_offset += skip + sizeof(pint_t);
         }
-
+        break;
+      }


       default:
-        {
-          LIEF_ERR("Unsupported opcode: 0x{:x}", static_cast<uint32_t>(opcode));
-          break;
-        }
+      {
+        LIEF_ERR("Unsupported opcode: {:#x}", static_cast<uint32_t>(opcode));
+        break;
       }
+    }
   }
   return ok();
 }
@@ -2142,31 +2332,31 @@ ok_error_t BinaryParser::parse_dyldinfo_lazy_bind() {
   }

   uint32_t offset = std::get<0>(dyldinfo->lazy_bind());
-  uint32_t size   = std::get<1>(dyldinfo->lazy_bind());
+  uint32_t size = std::get<1>(dyldinfo->lazy_bind());

   if (offset == 0 || size == 0) {
     return ok();
   }

-  if (static_cast<int32_t>(offset) < 0 ||
-      static_cast<int32_t>(size)   < 0) {
+  if (static_cast<int32_t>(offset) < 0 || static_cast<int32_t>(size) < 0) {
     LIEF_WARN("LC_DYLD_INFO.lazy payload is corrupted");
     return make_error_code(lief_errors::read_out_of_bound);
   }

   SegmentCommand* linkedit = config_.from_dyld_shared_cache ?
-                             binary_->get_segment("__LINKEDIT") :
-                             binary_->segment_from_offset(offset);
+                                 binary_->get_segment("__LINKEDIT") :
+                                 binary_->segment_from_offset(offset);

   if (linkedit == nullptr) {
     LIEF_WARN("Can't find the segment that contains the lazy bind opcodes");
     return make_error_code(lief_errors::not_found);
   }

-  span<uint8_t> content = linkedit->writable_content();
+  span<uint8_t> content = linkedit->content();
   const uint64_t rel_offset = offset - linkedit->file_offset();
   if (rel_offset > content.size() || (rel_offset + size) > content.size()) {
-    LIEF_ERR("Lazy bind opcodes are out of bounds of the segment {}", linkedit->name());
+    LIEF_ERR("Lazy bind opcodes are out of bounds of the segment {}",
+             linkedit->name());
     return make_error_code(lief_errors::read_out_of_bound);
   }

@@ -2174,14 +2364,14 @@ ok_error_t BinaryParser::parse_dyldinfo_lazy_bind() {

   uint64_t end_offset = offset + size;

-  //uint32_t    lazy_offset     = 0;
+  // uint32_t    lazy_offset     = 0;
   std::string symbol_name;
-  uint8_t     segment_idx     = 0;
-  uint64_t    segment_offset  = 0;
-  int32_t     library_ordinal = 0;
-  int64_t     addend          = 0;
-  bool        is_weak_import  = false;
-  uint64_t    start_offset    = 0;
+  uint8_t segment_idx = 0;
+  uint64_t segment_offset = 0;
+  int32_t library_ordinal = 0;
+  int64_t addend = 0;
+  bool is_weak_import = false;
+  uint64_t start_offset = 0;

   Binary::it_segments segments = binary_->segments();
   stream_->setpos(offset);
@@ -2195,123 +2385,113 @@ ok_error_t BinaryParser::parse_dyldinfo_lazy_bind() {

     switch (opcode) {
       case DyldInfo::BIND_OPCODES::DONE:
-        {
-          //lazy_offset = current_offset - offset;
-          break;
-        }
+      {
+        // lazy_offset = current_offset - offset;
+        break;
+      }

       case DyldInfo::BIND_OPCODES::SET_DYLIB_ORDINAL_IMM:
-        {
-          library_ordinal = imm;
-          break;
-        }
+      {
+        library_ordinal = imm;
+        break;
+      }

       case DyldInfo::BIND_OPCODES::SET_DYLIB_ORDINAL_ULEB:
-        {
-          auto val = stream_->read_uleb128();
-          if (!val) {
-            LIEF_ERR("Can't read BIND_OPCODE_SET_DYLIB_ORDINAL_ULEB uleb128 library ordinal");
-            break;
-          }
-
-          library_ordinal = *val;
+      {
+        auto val = stream_->read_uleb128();
+        if (!val) {
+          LIEF_ERR("Can't read BIND_OPCODE_SET_DYLIB_ORDINAL_ULEB uleb128 library "
+                   "ordinal");
           break;
         }

+        library_ordinal = *val;
+        break;
+      }
+
       case DyldInfo::BIND_OPCODES::SET_DYLIB_SPECIAL_IMM:
-        {
-          // the special ordinals are negative numbers
-          if (imm == 0) {
-            library_ordinal = 0;
-          } else {
-            int8_t sign_extended = DyldInfo::OPCODE_MASK | imm;
-            library_ordinal = sign_extended;
-          }
-          break;
+      {
+        // the special ordinals are negative numbers
+        if (imm == 0) {
+          library_ordinal = 0;
+        } else {
+          int8_t sign_extended = DyldInfo::OPCODE_MASK | imm;
+          library_ordinal = sign_extended;
         }
+        break;
+      }

       case DyldInfo::BIND_OPCODES::SET_SYMBOL_TRAILING_FLAGS_IMM:
-        {
-          auto str = stream_->read_string();
-          if (!str) {
-            LIEF_ERR("Can't read symbol name");
-            break;
-          }
-          symbol_name = std::move(*str);
-
-          if ((imm & uint8_t(DyldInfo::BIND_SYMBOL_FLAGS::WEAK_IMPORT)) != 0) {
-            is_weak_import = true;
-          } else {
-            is_weak_import = false;
-          }
+      {
+        auto str = stream_->read_string();
+        if (!str) {
+          LIEF_ERR("Can't read symbol name");
           break;
         }
+        symbol_name = std::move(*str);
+
+        if ((imm & uint8_t(DyldInfo::BIND_SYMBOL_FLAGS::WEAK_IMPORT)) != 0) {
+          is_weak_import = true;
+        } else {
+          is_weak_import = false;
+        }
+        break;
+      }

       case DyldInfo::BIND_OPCODES::SET_ADDEND_SLEB:
-        {
-          auto val = stream_->read_sleb128();
-          if (!val) {
-            LIEF_ERR("Can't read BIND_OPCODE_SET_ADDEND_SLEB sleb128 addend");
-            break;
-          }
-          addend = *val;
+      {
+        auto val = stream_->read_sleb128();
+        if (!val) {
+          LIEF_ERR("Can't read BIND_OPCODE_SET_ADDEND_SLEB sleb128 addend");
           break;
         }
+        addend = *val;
+        break;
+      }

       case DyldInfo::BIND_OPCODES::SET_SEGMENT_AND_OFFSET_ULEB:
-        {
-          auto val = stream_->read_uleb128();
-          if (!val) {
-            LIEF_ERR("Can't read BIND_OPCODE_SET_SEGMENT_AND_OFFSET_ULEB uleb128 segment offset");
-            break;
-          }
-          segment_idx    = imm;
-          segment_offset = *val;
-
+      {
+        auto val = stream_->read_uleb128();
+        if (!val) {
+          LIEF_ERR("Can't read BIND_OPCODE_SET_SEGMENT_AND_OFFSET_ULEB uleb128 "
+                   "segment offset");
           break;
         }
+        segment_idx = imm;
+        segment_offset = *val;
+
+        break;
+      }

       case DyldInfo::BIND_OPCODES::DO_BIND:
-        {
-          do_bind<MACHO_T>(
-              DyldBindingInfo::CLASS::LAZY,
-              static_cast<uint8_t>(DyldBindingInfo::TYPE::POINTER),
-              segment_idx,
-              segment_offset,
-              symbol_name,
-              library_ordinal,
-              addend,
-              is_weak_import,
-              false,
-              &segments, start_offset);
-          start_offset = stream_->pos() - offset + 1;
-          segment_offset += sizeof(pint_t);
-          break;
-        }
+      {
+        do_bind<MACHO_T>(DyldBindingInfo::CLASS::LAZY,
+                         static_cast<uint8_t>(DyldBindingInfo::TYPE::POINTER),
+                         segment_idx, segment_offset, symbol_name, library_ordinal,
+                         addend, is_weak_import, false, &segments, start_offset);
+        start_offset = stream_->pos() - offset + 1;
+        segment_offset += sizeof(pint_t);
+        break;
+      }

       default:
-        {
-          LIEF_ERR("Unsupported opcode: 0x{:x}", static_cast<uint32_t>(opcode));
-          break;
-        }
+      {
+        LIEF_ERR("Unsupported opcode: {:#x}", static_cast<uint32_t>(opcode));
+        break;
       }
+    }
   }
   return ok();
 }

 template<class MACHO_T>
-ok_error_t BinaryParser::do_bind(DyldBindingInfo::CLASS cls,
-                                 uint8_t type,
-                                 uint8_t segment_idx,
-                                 uint64_t segment_offset,
-                                 const std::string& symbol_name,
-                                 int32_t ord,
-                                 int64_t addend,
-                                 bool is_weak,
+ok_error_t BinaryParser::do_bind(DyldBindingInfo::CLASS cls, uint8_t type,
+                                 uint8_t segment_idx, uint64_t segment_offset,
+                                 const std::string& symbol_name, int32_t ord,
+                                 int64_t addend, bool is_weak,
                                  bool is_non_weak_definition,
                                  it_opaque_segments segments_ptr,
-                                 uint64_t offset)
-{
+                                 uint64_t offset) {
   auto& segments = *static_cast<Binary::it_segments*>(segments_ptr);
   if (segment_idx >= segments.size()) {
     LIEF_ERR("Wrong index: {:d}", segment_idx);
@@ -2322,15 +2502,16 @@ ok_error_t BinaryParser::do_bind(DyldBindingInfo::CLASS cls,
   uint64_t address = segment.virtual_address() + segment_offset;

   if (address > (segment.virtual_address() + segment.virtual_size())) {
-    LIEF_ERR("Bad address: 0x{:x}", address);
+    LIEF_ERR("Bad address: {:#x}", address);
     return make_error_code(lief_errors::corrupted);
   }


   // Create a BindingInfo object
-  auto binding_info = std::make_unique<DyldBindingInfo>(
-      cls, DyldBindingInfo::TYPE(type), address, addend, ord, is_weak,
-      is_non_weak_definition, offset);
+  auto binding_info =
+      std::make_unique<DyldBindingInfo>(cls, DyldBindingInfo::TYPE(type), address,
+                                        addend, ord, is_weak,
+                                        is_non_weak_definition, offset);

   binding_info->segment_ = &segment;

@@ -2340,8 +2521,9 @@ ok_error_t BinaryParser::do_bind(DyldBindingInfo::CLASS cls,
   }

   Symbol* symbol = nullptr;
-  auto search = memoized_symbols_.find(symbol_name);
-  if (search != memoized_symbols_.end()) {
+  if (auto search = memoized_symbols_.find(symbol_name);
+      search != memoized_symbols_.end())
+  {
     symbol = search->second;
   } else {
     symbol = binary_->get_symbol(symbol_name);
@@ -2352,10 +2534,10 @@ ok_error_t BinaryParser::do_bind(DyldBindingInfo::CLASS cls,
   } else {
     LIEF_INFO("New symbol discovered: {}", symbol_name);
     auto symbol = std::make_unique<Symbol>();
-    symbol->origin_            = Symbol::ORIGIN::DYLD_BIND;
-    symbol->type_              = 0;
+    symbol->origin_ = Symbol::ORIGIN::DYLD_BIND;
+    symbol->type_ = 0;
     symbol->numberof_sections_ = 0;
-    symbol->description_       = 0;
+    symbol->description_ = 0;
     symbol->name(symbol_name);

     binding_info->symbol_ = symbol.get();
@@ -2374,7 +2556,8 @@ ok_error_t BinaryParser::do_bind(DyldBindingInfo::CLASS cls,
 }

 template<class MACHO_T>
-ok_error_t BinaryParser::do_rebase(uint8_t type, uint8_t segment_idx, uint64_t segment_offset,
+ok_error_t BinaryParser::do_rebase(uint8_t type, uint8_t segment_idx,
+                                   uint64_t segment_offset,
                                    const it_opaque_segments segments_ptr) {

   const auto& segments = *static_cast<const Binary::it_segments*>(segments_ptr);
@@ -2390,61 +2573,63 @@ ok_error_t BinaryParser::do_rebase(uint8_t type, uint8_t segment_idx, uint64_t s
   uint64_t address = segment.virtual_address() + segment_offset;

   if (address > (segment.virtual_address() + segment.virtual_size())) {
-    LIEF_ERR("Bad rebase address: 0x{:x}", address);
+    LIEF_ERR("Bad rebase address: {:#x}", address);
     return make_error_code(lief_errors::corrupted);
   }

   auto reloc = std::make_unique<RelocationDyld>(address, type);

-  // result.second is true if the insertion succeed
+  // result.second is true if the insertion succeeded
   reloc->architecture_ = binary_->header().cpu_type();

   // Tie section and segment
   reloc->segment_ = &segment;
   Section* section = binary_->section_from_virtual_address(address);
   if (section == nullptr) {
-    LIEF_ERR("Can't find the section associated with the virtual address 0x{:x}", address);
+    LIEF_ERR("Can't find the section associated with the virtual address {:#x}",
+             address);
     return make_error_code(lief_errors::not_found);
   }
   reloc->section_ = section;

   // Tie symbol
-  const auto it_symbol = memoized_symbols_by_address_.find(address);
-  if (it_symbol != memoized_symbols_by_address_.end()) {
+  if (const auto it_symbol = memoized_symbols_by_address_.find(address);
+      it_symbol != memoized_symbols_by_address_.end())
+  {
     reloc->symbol_ = it_symbol->second;
   }

   switch (DyldInfo::REBASE_TYPE(type)) {
     case DyldInfo::REBASE_TYPE::POINTER:
-      {
-        reloc->size_ = sizeof(pint_t) * BYTE_BITS;
-        break;
-      }
+    {
+      reloc->size_ = sizeof(pint_t) * BYTE_BITS;
+      break;
+    }


     case DyldInfo::REBASE_TYPE::TEXT_ABSOLUTE32:
     case DyldInfo::REBASE_TYPE::TEXT_PCREL32:
-      {
-        reloc->size_ = sizeof(uint32_t) * BYTE_BITS;
-        break;
-      }
+    {
+      reloc->size_ = sizeof(uint32_t) * BYTE_BITS;
+      break;
+    }

     case DyldInfo::REBASE_TYPE::THREADED:
-      {
-        reloc->size_ = sizeof(pint_t) * BYTE_BITS;
-        break;
-      }
+    {
+      reloc->size_ = sizeof(pint_t) * BYTE_BITS;
+      break;
+    }

     default:
-      {
-        LIEF_ERR("Unsuported relocation type: 0x{:x}", type);
-      }
+    {
+      LIEF_ERR("Unsuported relocation type: {:#x}", type);
+    }
   }
   // Check if a relocation already exists:
   if (dyld_reloc_addrs_.insert(address).second) {
     segment.relocations_.push_back(std::move(reloc));
   } else {
-    LIEF_DEBUG("[!] Duplicated symbol address in the dyld rebase: 0x{:x}", address);
+    LIEF_DEBUG("[!] Duplicated symbol address in the dyld rebase: {:#x}", address);
   }
   return ok();
 }
@@ -2468,13 +2653,14 @@ ok_error_t BinaryParser::parse_chained_payload(SpanStream& stream) {
   LIEF_DEBUG("symbols_offset = {}", header.symbols_offset);
   LIEF_DEBUG("imports_count  = {}", header.imports_count);
   LIEF_DEBUG("imports_format = {} ({})", header.imports_format,
-                                         to_string(static_cast<DYLD_CHAINED_FORMAT>(header.imports_format)));
+             to_string(static_cast<DYLD_CHAINED_FORMAT>(header.imports_format)));
   LIEF_DEBUG("symbols_format = {}", header.symbols_format);
   chained_fixups_->update_with(header);

   auto res_symbols_pools = stream.slice(header.symbols_offset);
   if (!res_symbols_pools) {
-    LIEF_WARN("Can't access the symbols pools (dyld_chained_fixups_header.symbols_offset)");
+    LIEF_WARN("Can't access the symbols pools "
+              "(dyld_chained_fixups_header.symbols_offset)");
     return make_error_code(lief_errors::read_error);
   }

@@ -2493,23 +2679,31 @@ ok_error_t BinaryParser::parse_chained_payload(SpanStream& stream) {


 template<class MACHO_T>
-ok_error_t BinaryParser::parse_chained_import(const details::dyld_chained_fixups_header& header,
-                                              SpanStream& stream, SpanStream& symbol_pool) {
+ok_error_t BinaryParser::parse_chained_import(
+    const details::dyld_chained_fixups_header& header, SpanStream& stream,
+    SpanStream& symbol_pool
+) {

   // According to validChainedFixupsInfo for the cases of
-  // DYLD_CHAINED_PTR_64 / DYLD_CHAINED_PTR_64_OFFSET / DYLD_CHAINED_PTR_ARM64E_USERLAND24
+  // DYLD_CHAINED_PTR_64 / DYLD_CHAINED_PTR_64_OFFSET /
+  // DYLD_CHAINED_PTR_ARM64E_USERLAND24
   static constexpr uint32_t MAX_BIND_ORDINAL = 0xFFFFFF;


-  // Sanity checks according to dyld-852.2 / MachOAnalyzer.cpp:forEachChainedFixupTarget
-  if (header.imports_offset > stream.size() || header.symbols_offset > stream.size()) {
+  // Sanity checks according to dyld-852.2 /
+  // MachOAnalyzer.cpp:forEachChainedFixupTarget
+  if (header.imports_offset > stream.size() ||
+      header.symbols_offset > stream.size())
+  {
     LIEF_WARN("Malformed LC_DYLD_CHAINED_FIXUPS: "
-              "dyld_chained_fixups_header.{{imports_offset, symbols_offset}} are out of ranges");
+              "dyld_chained_fixups_header.{{imports_offset, symbols_offset}} are "
+              "out of ranges");
     return make_error_code(lief_errors::parsing_error);
   }

   if (header.imports_count >= MAX_BIND_ORDINAL) {
-    LIEF_WARN("dyld_chained_fixups_header.imports_count is too large: {}. It should at most {}",
+    LIEF_WARN("dyld_chained_fixups_header.imports_count is too large: {}. It "
+              "should at most {}",
               header.imports_count, MAX_BIND_ORDINAL);
     return make_error_code(lief_errors::parsing_error);
   }
@@ -2517,112 +2711,115 @@ ok_error_t BinaryParser::parse_chained_import(const details::dyld_chained_fixups
   const auto fmt = static_cast<DYLD_CHAINED_FORMAT>(header.imports_format);
   switch (fmt) {
     case DYLD_CHAINED_FORMAT::IMPORT:
-      {
-        stream.setpos(header.imports_offset);
-        for (size_t i = 0; i < header.imports_count; ++i) {
-          details::dyld_chained_import import;
-          std::string symbol_name;
-          if (auto res = stream.read<details::dyld_chained_import>()) {
-            import = *res;
-          } else {
-            LIEF_WARN("Can't read dyld_chained_import #{}: {}", i,
-                      to_string(get_error(res)));
-            break;
-          }
-          LIEF_DEBUG("dyld chained import[{}]", i);
-          if (auto res = symbol_pool.peek_string_at(import.name_offset)) {
-            symbol_name = std::move(*res);
-          } else {
-            LIEF_WARN("Can't read dyld_chained_import.name #{}: {}", i,
-                      to_string(get_error(res)));
-            break;
-          }
-          int32_t lib_ordinal = 0;
-          uint8_t lib_val = import.lib_ordinal;
-          if (lib_val > 0xF0) {
-            lib_ordinal = static_cast<int8_t>(lib_val);
-          } else {
-            lib_ordinal = lib_val;
-          }
-          do_fixup<MACHO_T>(fmt, lib_ordinal, symbol_name, 0, import.weak_import);
+    {
+      stream.setpos(header.imports_offset);
+      for (size_t i = 0; i < header.imports_count; ++i) {
+        details::dyld_chained_import import{};
+        std::string symbol_name;
+        if (auto res = stream.read<details::dyld_chained_import>()) {
+          import = *res;
+        } else {
+          LIEF_WARN("Can't read dyld_chained_import #{}: {}", i,
+                    to_string(get_error(res)));
+          break;
         }
-        break;
+        LIEF_DEBUG("Dyld chained import[{}]", i);
+        if (auto res = symbol_pool.peek_string_at(import.name_offset)) {
+          symbol_name = std::move(*res);
+        } else {
+          LIEF_WARN("Can't read dyld_chained_import.name #{}: {}", i,
+                    to_string(get_error(res)));
+          break;
+        }
+        int32_t lib_ordinal = 0;
+        uint8_t lib_val = import.lib_ordinal;
+        if (lib_val > 0xF0) {
+          lib_ordinal = static_cast<int8_t>(lib_val);
+        } else {
+          lib_ordinal = lib_val;
+        }
+        do_fixup<MACHO_T>(fmt, lib_ordinal, symbol_name, 0, import.weak_import);
       }
+      break;
+    }
     case DYLD_CHAINED_FORMAT::IMPORT_ADDEND:
-      {
-        stream.setpos(header.imports_offset);
-        for (size_t i = 0; i < header.imports_count; ++i) {
-          details::dyld_chained_import_addend import;
-          std::string symbol_name;
-          if (auto res = stream.read<details::dyld_chained_import_addend>()) {
-            import = *res;
-          } else {
-            LIEF_WARN("Can't read dyld_chained_import_addend #{}: {}", i,
-                      to_string(get_error(res)));
-            break;
-          }
-          if (auto res = symbol_pool.peek_string_at(import.name_offset)) {
-            symbol_name = std::move(*res);
-          } else {
-            LIEF_WARN("Can't read dyld_chained_import_addend.name #{}: {}", i,
-                      to_string(get_error(res)));
-            break;
-          }
-          int32_t lib_ordinal = 0;
-          uint8_t lib_val = import.lib_ordinal;
-          if (lib_val > 0xF0) {
-            lib_ordinal = static_cast<int8_t>(lib_val);
-          } else {
-            lib_ordinal = lib_val;
-          }
-          do_fixup<MACHO_T>(fmt, lib_ordinal, symbol_name, import.addend, import.weak_import);
+    {
+      stream.setpos(header.imports_offset);
+      for (size_t i = 0; i < header.imports_count; ++i) {
+        details::dyld_chained_import_addend import{};
+        std::string symbol_name;
+        if (auto res = stream.read<details::dyld_chained_import_addend>()) {
+          import = *res;
+        } else {
+          LIEF_WARN("Can't read dyld_chained_import_addend #{}: {}", i,
+                    to_string(get_error(res)));
+          break;
         }
-        break;
+        if (auto res = symbol_pool.peek_string_at(import.name_offset)) {
+          symbol_name = std::move(*res);
+        } else {
+          LIEF_WARN("Can't read dyld_chained_import_addend.name #{}: {}", i,
+                    to_string(get_error(res)));
+          break;
+        }
+        int32_t lib_ordinal = 0;
+        uint8_t lib_val = import.lib_ordinal;
+        if (lib_val > 0xF0) {
+          lib_ordinal = static_cast<int8_t>(lib_val);
+        } else {
+          lib_ordinal = lib_val;
+        }
+        do_fixup<MACHO_T>(fmt, lib_ordinal, symbol_name, import.addend,
+                          import.weak_import);
       }
+      break;
+    }
     case DYLD_CHAINED_FORMAT::IMPORT_ADDEND64:
-      {
-        stream.setpos(header.imports_offset);
-        for (size_t i = 0; i < header.imports_count; ++i) {
-          details::dyld_chained_import_addend64 import;
-          std::string symbol_name;
-          if (auto res = stream.read<details::dyld_chained_import_addend64>()) {
-            import = *res;
-          } else {
-            LIEF_WARN("Can't read dyld_chained_import_addend64 #{}: {}", i,
-                      to_string(get_error(res)));
-            break;
-          }
-          if (auto res = symbol_pool.peek_string_at(import.name_offset)) {
-            symbol_name = std::move(*res);
-          } else {
-            LIEF_WARN("Can't read dyld_chained_import_addend64.name #{}: {}", i,
-                      to_string(get_error(res)));
-            break;
-          }
-          int32_t lib_ordinal = 0;
-          uint16_t lib_val = import.lib_ordinal;
-          if (lib_val > 0xFFF0) {
-            lib_ordinal = static_cast<int16_t>(lib_val);
-          } else {
-            lib_ordinal = lib_val;
-          }
-          do_fixup<MACHO_T>(fmt, lib_ordinal, symbol_name, import.addend, import.weak_import);
+    {
+      stream.setpos(header.imports_offset);
+      for (size_t i = 0; i < header.imports_count; ++i) {
+        details::dyld_chained_import_addend64 import{};
+        std::string symbol_name;
+        if (auto res = stream.read<details::dyld_chained_import_addend64>()) {
+          import = *res;
+        } else {
+          LIEF_WARN("Can't read dyld_chained_import_addend64 #{}: {}", i,
+                    to_string(get_error(res)));
+          break;
         }
-        break;
-      }
-    default:
-      {
-        LIEF_WARN("Dyld Chained Fixups: {} is an unknown format", header.imports_format);
+        if (auto res = symbol_pool.peek_string_at(import.name_offset)) {
+          symbol_name = std::move(*res);
+        } else {
+          LIEF_WARN("Can't read dyld_chained_import_addend64.name #{}: {}", i,
+                    to_string(get_error(res)));
+          break;
+        }
+        int32_t lib_ordinal = 0;
+        uint16_t lib_val = import.lib_ordinal;
+        if (lib_val > 0xFFF0) {
+          lib_ordinal = static_cast<int16_t>(lib_val);
+        } else {
+          lib_ordinal = lib_val;
+        }
+        do_fixup<MACHO_T>(fmt, lib_ordinal, symbol_name, import.addend,
+                          import.weak_import);
       }
+      break;
+    }
+    default:
+    {
+      LIEF_WARN("Dyld Chained Fixups: {} is an unknown format",
+                header.imports_format);
+    }
   }
   return ok();
 }

 template<class MACHO_T>
-ok_error_t BinaryParser::parse_chained_fixup(const details::dyld_chained_fixups_header& header,
-                                             SpanStream& stream)
-{
-  details::dyld_chained_starts_in_image starts;
+ok_error_t BinaryParser::parse_chained_fixup(
+    const details::dyld_chained_fixups_header& header, SpanStream& stream
+) {
+  details::dyld_chained_starts_in_image starts{};
   stream.setpos(header.starts_offset);
   if (auto res = stream.read<details::dyld_chained_starts_in_image>()) {
     starts = *res;
@@ -2632,13 +2829,14 @@ ok_error_t BinaryParser::parse_chained_fixup(const details::dyld_chained_fixups_
     return make_error_code(res.error());
   }

-  LIEF_DEBUG("chained starts in image");
+  LIEF_DEBUG("Chained starts in image");
   LIEF_DEBUG("  seg_count = {}", starts.seg_count);

   uint32_t nb_segments = starts.seg_count;
   if (nb_segments > binary_->segments_.size()) {
     LIEF_WARN("Chained fixup: dyld_chained_starts_in_image.seg_count ({}) "
-              "exceeds the number of segments ({})", starts.seg_count, binary_->segments_.size());
+              "exceeds the number of segments ({})",
+              starts.seg_count, binary_->segments_.size());
     nb_segments = binary_->segments_.size();
   }

@@ -2652,18 +2850,21 @@ ok_error_t BinaryParser::parse_chained_fixup(const details::dyld_chained_fixups_
       break;
     }

-    LIEF_DEBUG("    0x{:06x} seg_offset[{}] = {} ({})",
-               stream.pos() - sizeof(uint32_t),
-               seg_idx, seg_info_offset, binary_->segments_[seg_idx]->name());
+    LIEF_DEBUG("    {:#08x} seg_offset[{}] = {} ({})",
+               stream.pos() - sizeof(uint32_t), seg_idx, seg_info_offset,
+               binary_->segments_[seg_idx]->name());
     if (seg_info_offset == 0) {
-      struct DyldChainedFixups::chained_starts_in_segment info(0, {}, *binary_->segments_[seg_idx]);
+      struct DyldChainedFixups::chained_starts_in_segment info(
+          0, {}, *binary_->segments_[seg_idx]
+      );
       chained_fixups_->chained_starts_in_segment_.push_back(std::move(info));
       continue;
     }
     LIEF_DEBUG("    #{} processing dyld_chained_starts_in_segment", seg_idx);
     const uint64_t offset = header.starts_offset + seg_info_offset;
     if (!parse_fixup_seg<MACHO_T>(stream, seg_info_offset, offset, seg_idx)) {
-      LIEF_WARN("Error while parsing fixup in segment: {}", binary_->segments_[seg_idx]->name());
+      LIEF_WARN("Error while parsing fixup in segment: {}",
+                binary_->segments_[seg_idx]->name());
     }
   }

@@ -2671,13 +2872,13 @@ ok_error_t BinaryParser::parse_chained_fixup(const details::dyld_chained_fixups_
 }

 template<class MACHO_T>
-ok_error_t BinaryParser::parse_fixup_seg(SpanStream& stream, uint32_t seg_info_offset,
-                                         uint64_t offset, uint32_t seg_idx)
-{
+ok_error_t BinaryParser::parse_fixup_seg(SpanStream& stream,
+                                         uint32_t seg_info_offset, uint64_t offset,
+                                         uint32_t seg_idx) {
   static constexpr const char DPREFIX[] = "    ";
-  static constexpr auto DYLD_CHAINED_PTR_START_NONE  = 0xFFFF;
+  static constexpr auto DYLD_CHAINED_PTR_START_NONE = 0xFFFF;
   static constexpr auto DYLD_CHAINED_PTR_START_MULTI = 0x8000;
-  static constexpr auto DYLD_CHAINED_PTR_START_LAST  = 0x8000;
+  static constexpr auto DYLD_CHAINED_PTR_START_LAST = 0x8000;

   const uint64_t imagebase = binary_->imagebase();

@@ -2691,24 +2892,28 @@ ok_error_t BinaryParser::parse_fixup_seg(SpanStream& stream, uint32_t seg_info_o
   }
   auto res_seg_stream = stream.slice(offset);
   if (!res_seg_stream) {
-    LIEF_ERR("Can't slice dyld_chained_starts_in_segment #{}: {}",
-              seg_idx, to_string(get_error(res_seg_stream)));
+    LIEF_ERR("Can't slice dyld_chained_starts_in_segment #{}: {}", seg_idx,
+             to_string(get_error(res_seg_stream)));
     return make_error_code(res_seg_stream.error());
   }
   SpanStream seg_stream = std::move(*res_seg_stream);
   seg_stream.set_endian_swap(stream_->should_swap());
   seg_stream.read<details::dyld_chained_starts_in_segment>();

-  LIEF_DEBUG("{}size              = {}",      DPREFIX, seg_info.size);
-  LIEF_DEBUG("{}page_size         = 0x{:x}",  DPREFIX, seg_info.page_size);
-  LIEF_DEBUG("{}pointer_format    = {} ({})", DPREFIX, seg_info.pointer_format, to_string(static_cast<DYLD_CHAINED_PTR_FORMAT>(seg_info.pointer_format)));
-  LIEF_DEBUG("{}segment_offset    = 0x{:x}",  DPREFIX, seg_info.segment_offset);
-  LIEF_DEBUG("{}max_valid_pointer = {}",      DPREFIX, seg_info.max_valid_pointer);
-  LIEF_DEBUG("{}page_count        = {}",      DPREFIX, seg_info.page_count);
+  LIEF_DEBUG("{}size              = {}", DPREFIX, seg_info.size);
+  LIEF_DEBUG("{}page_size         = {:#x}", DPREFIX, seg_info.page_size);
+  LIEF_DEBUG(
+      "{}pointer_format    = {} ({})", DPREFIX, seg_info.pointer_format,
+      to_string(static_cast<DYLD_CHAINED_PTR_FORMAT>(seg_info.pointer_format))
+  );
+  LIEF_DEBUG("{}segment_offset    = {:#x}", DPREFIX, seg_info.segment_offset);
+  LIEF_DEBUG("{}max_valid_pointer = {}", DPREFIX, seg_info.max_valid_pointer);
+  LIEF_DEBUG("{}page_count        = {}", DPREFIX, seg_info.page_count);

   SegmentCommand* segment = binary_->segments_[seg_idx];

-  struct DyldChainedFixups::chained_starts_in_segment info(seg_info_offset, seg_info, *segment);
+  struct DyldChainedFixups::chained_starts_in_segment info(seg_info_offset,
+                                                           seg_info, *segment);
   info.page_start.reserve(10);
   const uint64_t page_start_off = seg_stream.pos();
   for (uint32_t page_idx = 0; page_idx < seg_info.page_count; ++page_idx) {
@@ -2716,7 +2921,8 @@ ok_error_t BinaryParser::parse_fixup_seg(SpanStream& stream, uint32_t seg_info_o
     if (auto res = seg_stream.read<decltype(offset_in_page)>()) {
       offset_in_page = *res;
     } else {
-      LIEF_WARN("Can't read dyld_chained_starts_in_segment.page_start[{}]", page_idx);
+      LIEF_WARN("Can't read dyld_chained_starts_in_segment.page_start[{}]",
+                page_idx);
       break;
     }
     info.page_start.push_back(offset_in_page);
@@ -2732,32 +2938,49 @@ ok_error_t BinaryParser::parse_fixup_seg(SpanStream& stream, uint32_t seg_info_o
       bool chain_end = false;
       while (!chain_end) {
         uint16_t overflow_val = 0;
-        const uint64_t off = page_start_off + overflow_index * sizeof(uint16_t); // &segInfo->page_start[overflowIndex]
+        const uint64_t off =
+            page_start_off +
+            overflow_index *
+                sizeof(uint16_t); // &segInfo->page_start[overflowIndex]
         if (auto res = seg_stream.peek<decltype(overflow_val)>(off)) {
           overflow_val = *res;
         } else {
           LIEF_WARN("Can't read page_start[overflow_index: {}]", overflow_index);
           break;
         }
-        chain_end      = overflow_val & DYLD_CHAINED_PTR_START_LAST;
+        chain_end = overflow_val & DYLD_CHAINED_PTR_START_LAST;
         offset_in_page = overflow_val & ~DYLD_CHAINED_PTR_START_LAST;
-        uint64_t page_content_start = seg_info.segment_offset + (page_idx * seg_info.page_size);
+        uint64_t page_content_start =
+            seg_info.segment_offset +
+            (static_cast<uint64_t>(page_idx) * seg_info.page_size);
         uint64_t chain_address = imagebase + page_content_start + offset_in_page;
-        uint64_t chain_offset = (chain_address - segment->virtual_address()) + segment->file_offset();
-        auto is_ok = walk_chain<MACHO_T>(*segment, chain_address, chain_offset, seg_info);
+        uint64_t chain_offset =
+            (chain_address - segment->virtual_address()) + segment->file_offset();
+        auto is_ok =
+            walk_chain<MACHO_T>(*segment, chain_address, chain_offset, seg_info);
         if (!is_ok) {
-          LIEF_WARN("Error while walking through the chained fixup of the segment '{}'", segment->name());
+          LIEF_WARN(
+              "Error while walking through the chained fixup of the segment '{}'",
+              segment->name()
+          );
         }
         ++overflow_index;
       }

     } else {
-      uint64_t page_content_start = seg_info.segment_offset + (page_idx * seg_info.page_size);
+      uint64_t page_content_start =
+          seg_info.segment_offset +
+          (static_cast<uint64_t>(page_idx) * seg_info.page_size);
       uint64_t chain_address = imagebase + page_content_start + offset_in_page;
-      uint64_t chain_offset = (chain_address - segment->virtual_address()) + segment->file_offset();
-      auto is_ok = walk_chain<MACHO_T>(*segment, chain_address, chain_offset, seg_info);
+      uint64_t chain_offset =
+          (chain_address - segment->virtual_address()) + segment->file_offset();
+      auto is_ok =
+          walk_chain<MACHO_T>(*segment, chain_address, chain_offset, seg_info);
       if (!is_ok) {
-        LIEF_WARN("Error while walking through the chained fixup of the segment '{}'", segment->name());
+        LIEF_WARN(
+            "Error while walking through the chained fixup of the segment '{}'",
+            segment->name()
+        );
       }
     }
   }
@@ -2768,9 +2991,9 @@ ok_error_t BinaryParser::parse_fixup_seg(SpanStream& stream, uint32_t seg_info_o


 template<class MACHO_T>
-ok_error_t BinaryParser::do_fixup(DYLD_CHAINED_FORMAT fmt, int32_t ord, const std::string& symbol_name,
-                                  int64_t addend, bool is_weak)
-{
+ok_error_t BinaryParser::do_fixup(DYLD_CHAINED_FORMAT fmt, int32_t ord,
+                                  const std::string& symbol_name, int64_t addend,
+                                  bool is_weak) {
   auto binding_info = std::make_unique<ChainedBindingInfoList>(fmt, is_weak);
   binding_info->addend_ = addend;
   binding_info->library_ordinal_ = ord;
@@ -2784,10 +3007,10 @@ ok_error_t BinaryParser::do_fixup(DYLD_CHAINED_FORMAT fmt, int32_t ord, const st
   LIEF_DEBUG("  weak_import: {}", is_weak);
   LIEF_DEBUG("  name:        {}", symbol_name);

-  auto search = memoized_symbols_.find(symbol_name);
-
   Symbol* symbol = nullptr;
-  if (search != std::end(memoized_symbols_)) {
+  if (auto search = memoized_symbols_.find(symbol_name);
+      search != memoized_symbols_.end())
+  {
     symbol = search->second;
   } else {
     symbol = binary_->get_symbol(symbol_name);
@@ -2801,10 +3024,10 @@ ok_error_t BinaryParser::do_fixup(DYLD_CHAINED_FORMAT fmt, int32_t ord, const st
   } else {
     LIEF_INFO("New symbol discovered: {}", symbol_name);
     auto symbol = std::make_unique<Symbol>();
-    symbol->type_              = 0;
+    symbol->type_ = 0;
     symbol->numberof_sections_ = 0;
-    symbol->description_       = 0;
-    symbol->library_           = binding_info->library_;
+    symbol->description_ = 0;
+    symbol->library_ = binding_info->library_;
     symbol->name(symbol_name);

     binding_info->symbol_ = symbol.get();
@@ -2817,21 +3040,30 @@ ok_error_t BinaryParser::do_fixup(DYLD_CHAINED_FORMAT fmt, int32_t ord, const st


 template<class MACHO_T>
-ok_error_t BinaryParser::walk_chain(SegmentCommand& segment,
-                                    uint64_t chain_address, uint64_t chain_offset,
-                                    const details::dyld_chained_starts_in_segment& seg_info)
-{
-  bool stop      = false;
+ok_error_t BinaryParser::walk_chain(
+    SegmentCommand& segment, uint64_t chain_address, uint64_t chain_offset,
+    const details::dyld_chained_starts_in_segment& seg_info
+) {
+  std::unordered_set<uint64_t> visited;
+  bool stop = false;
   bool chain_end = false;
   while (!stop && !chain_end) {
+    if (!visited.insert(chain_offset).second) {
+      LIEF_WARN("Cycle detected in the chained fixup at offset: {:#x}",
+                chain_offset);
+      return make_error_code(lief_errors::corrupted);
+    }
     if (!process_fixup<MACHO_T>(segment, chain_address, chain_offset, seg_info)) {
-      LIEF_WARN("Error while processing the chain at offset: 0x{:x}", chain_offset);
+      LIEF_WARN("Error while processing the chain at offset: {:#x}", chain_offset);
       return make_error_code(lief_errors::parsing_error);
     }
-    if (auto res = next_chain<MACHO_T>(/* in,out */chain_address, chain_offset, seg_info)) {
+    if (auto res = next_chain<MACHO_T>(/* in,out */ chain_address, chain_offset,
+                                       seg_info))
+    {
       chain_offset = *res;
     } else {
-      LIEF_WARN("Error while computing the next chain for the offset: 0x{:x}", chain_offset);
+      LIEF_WARN("Error while computing the next chain for the offset: {:#x}",
+                chain_offset);
       return make_error_code(lief_errors::parsing_error);
     }

@@ -2844,10 +3076,12 @@ ok_error_t BinaryParser::walk_chain(SegmentCommand& segment,


 template<class MACHO_T>
-result<uint64_t> BinaryParser::next_chain(uint64_t& chain_address, uint64_t chain_offset,
-                                          const details::dyld_chained_starts_in_segment& seg_info)
-{
-  const auto ptr_fmt = static_cast<DYLD_CHAINED_PTR_FORMAT>(seg_info.pointer_format);
+result<uint64_t> BinaryParser::next_chain(
+    uint64_t& chain_address, uint64_t chain_offset,
+    const details::dyld_chained_starts_in_segment& seg_info
+) {
+  const auto ptr_fmt =
+      static_cast<DYLD_CHAINED_PTR_FORMAT>(seg_info.pointer_format);
   static constexpr uint64_t CHAIN_END = 0;
   const uintptr_t stride = ChainedPointerAnalysis::stride(ptr_fmt);

@@ -2857,243 +3091,259 @@ result<uint64_t> BinaryParser::next_chain(uint64_t& chain_address, uint64_t chai
     case DYLD_CHAINED_PTR_FORMAT::PTR_ARM64E_USERLAND:
     case DYLD_CHAINED_PTR_FORMAT::PTR_ARM64E_USERLAND24:
     case DYLD_CHAINED_PTR_FORMAT::PTR_ARM64E_FIRMWARE:
-      {
-        /* offset point to a dyld_chained_ptr_arm64e_* structure */
-        details::dyld_chained_ptr_arm64e chain;
-        if (auto res = stream_->peek<decltype(chain)>(chain_offset)) {
-          chain = *res;
-        } else {
-          LIEF_ERR("Can't read the dyld chain at 0x{:x}", chain_offset);
-          return make_error_code(res.error());
-        }
+    {
+      /* offset points to a dyld_chained_ptr_arm64e_* structure */
+      details::dyld_chained_ptr_arm64e chain;
+      if (auto res = stream_->peek<decltype(chain)>(chain_offset)) {
+        chain = *res;
+      } else {
+        LIEF_ERR("Can't read the dyld chain at {:#x}", chain_offset);
+        return make_error_code(res.error());
+      }

-        if (chain.rebase.next == 0) {
-          return CHAIN_END;
-        }
-        const uint32_t delta = chain.rebase.next * stride;
-        chain_address += delta;
-        return chain_offset + delta;
+      if (chain.rebase.next == 0) {
+        return CHAIN_END;
       }
+      const uint32_t delta = chain.rebase.next * stride;
+      chain_address += delta;
+      return chain_offset + delta;
+    }

     case DYLD_CHAINED_PTR_FORMAT::PTR_64:
     case DYLD_CHAINED_PTR_FORMAT::PTR_64_OFFSET:
-      {
-        details::dyld_chained_ptr_generic64 chain;
-        if (auto res = stream_->peek<decltype(chain)>(chain_offset)) {
-          chain = *res;
-        } else {
-          LIEF_ERR("Can't read the dyld chain at 0x{:x}", chain_offset);
-          return make_error_code(res.error());
-        }
-
-        if (chain.rebase.next == 0) {
-          return CHAIN_END;
-        }
+    {
+      details::dyld_chained_ptr_generic64 chain;
+      if (auto res = stream_->peek<decltype(chain)>(chain_offset)) {
+        chain = *res;
+      } else {
+        LIEF_ERR("Can't read the dyld chain at {:#x}", chain_offset);
+        return make_error_code(res.error());
+      }

-        const uint32_t delta = chain.rebase.next * stride;
-        chain_address += delta;
-        return chain_offset + delta;
+      if (chain.rebase.next == 0) {
+        return CHAIN_END;
       }
+
+      const uint32_t delta = chain.rebase.next * stride;
+      chain_address += delta;
+      return chain_offset + delta;
+    }
     case DYLD_CHAINED_PTR_FORMAT::PTR_32:
-      {
-        details::dyld_chained_ptr_generic32 chain;
-        if (auto res = stream_->peek<decltype(chain)>(chain_offset)) {
-          chain = *res;
-        } else {
-          LIEF_ERR("Can't read the dyld chain at 0x{:x}", chain_offset);
-          return make_error_code(res.error());
-        }
+    {
+      details::dyld_chained_ptr_generic32 chain;
+      if (auto res = stream_->peek<decltype(chain)>(chain_offset)) {
+        chain = *res;
+      } else {
+        LIEF_ERR("Can't read the dyld chain at {:#x}", chain_offset);
+        return make_error_code(res.error());
+      }
+
+      if (chain.rebase.next == 0) {
+        return CHAIN_END;
+      }
+
+      const uint32_t delta = chain.rebase.next * stride;
+      chain_offset += delta;
+      chain_address += delta;

+      if (auto res = stream_->peek<decltype(chain)>(chain_offset)) {
+        chain = *res;
+      } else {
+        LIEF_ERR("Can't read the dyld chain at {:#x}", chain_offset);
+        return CHAIN_END;
+      }
+
+      while (chain.rebase.bind == 0 &&
+             chain.rebase.target > seg_info.max_valid_pointer)
+      {
         if (chain.rebase.next == 0) {
           return CHAIN_END;
         }
-
         const uint32_t delta = chain.rebase.next * stride;
         chain_offset += delta;
         chain_address += delta;
-
         if (auto res = stream_->peek<decltype(chain)>(chain_offset)) {
           chain = *res;
         } else {
-          LIEF_ERR("Can't read the dyld chain at 0x{:x}", chain_offset);
+          LIEF_ERR("Can't read the dyld chain at {:#x}", chain_offset);
           return CHAIN_END;
         }
-
-        while (chain.rebase.bind == 0 && chain.rebase.target > seg_info.max_valid_pointer) {
-          const uint32_t delta = chain.rebase.next * stride;
-          chain_offset += delta;
-          chain_address += delta;
-          if (auto res = stream_->peek<decltype(chain)>(chain_offset)) {
-            chain = *res;
-          } else {
-            LIEF_ERR("Can't read the dyld chain at 0x{:x}", chain_offset);
-            return CHAIN_END;
-          }
-        }
-        return chain_offset;
       }
+      return chain_offset;
+    }
     case DYLD_CHAINED_PTR_FORMAT::PTR_64_KERNEL_CACHE:
     case DYLD_CHAINED_PTR_FORMAT::PTR_X86_64_KERNEL_CACHE:
-      {
-        details::dyld_chained_ptr_kernel64 chain;
-
-        if (auto res = stream_->peek<decltype(chain)>(chain_offset)) {
-          chain = *res;
-        } else {
-          LIEF_ERR("Can't read the dyld chain at 0x{:x}", chain_offset);
-          return make_error_code(res.error());
-        }
+    {
+      details::dyld_chained_ptr_kernel64 chain;

-        if (chain.next == 0) {
-          return CHAIN_END;
-        }
+      if (auto res = stream_->peek<decltype(chain)>(chain_offset)) {
+        chain = *res;
+      } else {
+        LIEF_ERR("Can't read the dyld chain at {:#x}", chain_offset);
+        return make_error_code(res.error());
+      }

-        int32_t delta = chain.next * stride - chain_offset;
-        chain_address += delta;
-        return chain.next * stride;
+      if (chain.next == 0) {
+        return CHAIN_END;
       }
+
+      int32_t delta = chain.next * stride - chain_offset;
+      chain_address += delta;
+      return chain.next * stride;
+    }
     case DYLD_CHAINED_PTR_FORMAT::PTR_32_FIRMWARE:
-      {
-        details::dyld_chained_ptr_firm32 chain;
+    {
+      details::dyld_chained_ptr_firm32 chain;

-        if (auto res = stream_->peek<decltype(chain)>(chain_offset)) {
-          chain = *res;
-        } else {
-          LIEF_ERR("Can't read the dyld chain at 0x{:x}", chain_offset);
-          return make_error_code(res.error());
-        }
+      if (auto res = stream_->peek<decltype(chain)>(chain_offset)) {
+        chain = *res;
+      } else {
+        LIEF_ERR("Can't read the dyld chain at {:#x}", chain_offset);
+        return make_error_code(res.error());
+      }

-        if (chain.next == 0) {
-          return CHAIN_END;
-        }
-        int32_t delta = chain.next * stride - chain_offset;
-        chain_address += delta;
-        return chain.next * stride;
+      if (chain.next == 0) {
+        return CHAIN_END;
       }
+      int32_t delta = chain.next * stride - chain_offset;
+      chain_address += delta;
+      return chain.next * stride;
+    }

     case DYLD_CHAINED_PTR_FORMAT::PTR_ARM64E_SEGMENTED:
-      {
-        details::dyld_chained_ptr_arm64e_segmented_rebase chain;
-
-        if (auto res = stream_->peek<decltype(chain)>(chain_offset)) {
-          chain = *res;
-        } else {
-          LIEF_ERR("Can't read the dyld chain at 0x{:x}", chain_offset);
-          return make_error_code(res.error());
-        }
+    {
+      details::dyld_chained_ptr_arm64e_segmented_rebase chain;

-        if (chain.next == 0) {
-          return CHAIN_END;
-        }
+      if (auto res = stream_->peek<decltype(chain)>(chain_offset)) {
+        chain = *res;
+      } else {
+        LIEF_ERR("Can't read the dyld chain at {:#x}", chain_offset);
+        return make_error_code(res.error());
+      }

-        int32_t delta = chain.next * stride - chain_offset;
-        chain_address += delta;
-        return chain.next * stride;
+      if (chain.next == 0) {
+        return CHAIN_END;
       }

+      int32_t delta = chain.next * stride - chain_offset;
+      chain_address += delta;
+      return chain.next * stride;
+    }
+
     default:
-      {
-        LIEF_ERR("Unknown pointer format: 0x{:04x}", seg_info.pointer_format);
-        return make_error_code(lief_errors::not_supported);
-      }
+    {
+      LIEF_ERR("Unknown pointer format: {:#06x}", seg_info.pointer_format);
+      return make_error_code(lief_errors::not_supported);
+    }
   }
   return make_error_code(lief_errors::not_supported);
 }


 template<class MACHO_T>
-ok_error_t BinaryParser::process_fixup(SegmentCommand& segment,
-                                       uint64_t chain_address, uint64_t chain_offset,
-                                       const details::dyld_chained_starts_in_segment& seg_info)
-{
-  const auto ptr_fmt = static_cast<DYLD_CHAINED_PTR_FORMAT>(seg_info.pointer_format);
-  //LIEF_DEBUG("0x{:04x}: {}", chain_offset, to_string(ptr_fmt));
+ok_error_t BinaryParser::process_fixup(
+    SegmentCommand& segment, uint64_t chain_address, uint64_t chain_offset,
+    const details::dyld_chained_starts_in_segment& seg_info
+) {
+  const auto ptr_fmt =
+      static_cast<DYLD_CHAINED_PTR_FORMAT>(seg_info.pointer_format);
+  // LIEF_DEBUG("{:#06x}: {}", chain_offset, to_string(ptr_fmt));
   switch (ptr_fmt) {
     case DYLD_CHAINED_PTR_FORMAT::PTR_ARM64E:
     case DYLD_CHAINED_PTR_FORMAT::PTR_ARM64E_KERNEL:
     case DYLD_CHAINED_PTR_FORMAT::PTR_ARM64E_USERLAND:
     case DYLD_CHAINED_PTR_FORMAT::PTR_ARM64E_USERLAND24:
-      {
-        /* offset point to a dyld_chained_ptr_arm64e_* structure */
-        details::dyld_chained_ptr_arm64e fixup;
-        if (auto res = stream_->peek<decltype(fixup)>(chain_offset)) {
-          fixup = *res;
-        } else {
-          LIEF_ERR("Can't read the dyld chain at 0x{:x}", chain_offset);
-          return make_error_code(res.error());
-        }
+    {
+      /* offset points to a dyld_chained_ptr_arm64e_* structure */
+      details::dyld_chained_ptr_arm64e fixup;
+      if (auto res = stream_->peek<decltype(fixup)>(chain_offset)) {
+        fixup = *res;
+      } else {
+        LIEF_ERR("Can't read the dyld chain at {:#x}", chain_offset);
+        return make_error_code(res.error());
+      }

-        auto is_ok = do_chained_fixup(segment, chain_address, chain_offset, seg_info, fixup);
-        if (!is_ok) {
-          LIEF_WARN("Can't process the fixup {} - 0x{:x}", segment.name(), chain_offset);
-          return make_error_code(is_ok.error());
-        }
-        return ok();
+      auto is_ok =
+          do_chained_fixup(segment, chain_address, chain_offset, seg_info, fixup);
+      if (!is_ok) {
+        LIEF_WARN("Can't process the fixup {} - {:#x}", segment.name(),
+                  chain_offset);
+        return make_error_code(is_ok.error());
       }
+      return ok();
+    }
     case DYLD_CHAINED_PTR_FORMAT::PTR_64:
     case DYLD_CHAINED_PTR_FORMAT::PTR_64_OFFSET:
-      {
-        details::dyld_chained_ptr_generic64 fixup;
-        if (auto res = stream_->peek<decltype(fixup)>(chain_offset)) {
-          fixup = *res;
-        } else {
-          LIEF_ERR("Can't read the dyld chain at 0x{:x}", chain_offset);
-          return make_error_code(res.error());
-        }
-        auto is_ok = do_chained_fixup(segment, chain_address, chain_offset, seg_info, fixup);
-        if (!is_ok) {
-          LIEF_WARN("Can't process the fixup {} - 0x{:x}", segment.name(), chain_offset);
-          return make_error_code(is_ok.error());
-        }
-        return ok();
+    {
+      details::dyld_chained_ptr_generic64 fixup;
+      if (auto res = stream_->peek<decltype(fixup)>(chain_offset)) {
+        fixup = *res;
+      } else {
+        LIEF_ERR("Can't read the dyld chain at {:#x}", chain_offset);
+        return make_error_code(res.error());
+      }
+      auto is_ok =
+          do_chained_fixup(segment, chain_address, chain_offset, seg_info, fixup);
+      if (!is_ok) {
+        LIEF_WARN("Can't process the fixup {} - {:#x}", segment.name(),
+                  chain_offset);
+        return make_error_code(is_ok.error());
       }
+      return ok();
+    }
     case DYLD_CHAINED_PTR_FORMAT::PTR_32:
-      {
-        details::dyld_chained_ptr_generic32 fixup;
-        if (auto res = stream_->peek<decltype(fixup)>(chain_offset)) {
-          fixup = *res;
-        } else {
-          LIEF_ERR("Can't read the dyld chain at 0x{:x}", chain_offset);
-          return make_error_code(res.error());
-        }
-        auto is_ok = do_chained_fixup(segment, chain_address, chain_offset, seg_info, fixup);
-        if (!is_ok) {
-          LIEF_WARN("Can't process the fixup {} - 0x{:x}", segment.name(), chain_offset);
-          return make_error_code(is_ok.error());
-        }
-        return ok();
+    {
+      details::dyld_chained_ptr_generic32 fixup;
+      if (auto res = stream_->peek<decltype(fixup)>(chain_offset)) {
+        fixup = *res;
+      } else {
+        LIEF_ERR("Can't read the dyld chain at {:#x}", chain_offset);
+        return make_error_code(res.error());
+      }
+      auto is_ok =
+          do_chained_fixup(segment, chain_address, chain_offset, seg_info, fixup);
+      if (!is_ok) {
+        LIEF_WARN("Can't process the fixup {} - {:#x}", segment.name(),
+                  chain_offset);
+        return make_error_code(is_ok.error());
       }
+      return ok();
+    }
     case DYLD_CHAINED_PTR_FORMAT::PTR_64_KERNEL_CACHE:
     case DYLD_CHAINED_PTR_FORMAT::PTR_X86_64_KERNEL_CACHE:
     case DYLD_CHAINED_PTR_FORMAT::PTR_32_FIRMWARE:
-      {
-        LIEF_INFO("DYLD_CHAINED_PTR_FORMAT: {} is not implemented. Please consider opening an issue with "
-                  "the attached binary", to_string(ptr_fmt));
-        return make_error_code(lief_errors::not_implemented);
-      }
+    {
+      LIEF_INFO("DYLD_CHAINED_PTR_FORMAT: {} is not implemented. Please consider "
+                "opening an issue with "
+                "the attached binary",
+                to_string(ptr_fmt));
+      return make_error_code(lief_errors::not_implemented);
+    }
     case LIEF::MachO::DYLD_CHAINED_PTR_FORMAT::PTR_ARM64E_SEGMENTED:
-      {
-        details::dyld_chained_ptr_arm64e_segmented fixup;
-        if (auto res = stream_->peek<decltype(fixup)>(chain_offset)) {
-          fixup = *res;
-        } else {
-          LIEF_ERR("Can't read the dyld chain at 0x{:x}", chain_offset);
-          return make_error_code(res.error());
-        }
+    {
+      details::dyld_chained_ptr_arm64e_segmented fixup;
+      if (auto res = stream_->peek<decltype(fixup)>(chain_offset)) {
+        fixup = *res;
+      } else {
+        LIEF_ERR("Can't read the dyld chain at {:#x}", chain_offset);
+        return make_error_code(res.error());
+      }

-        auto is_ok = do_chained_fixup(segment, chain_address, chain_offset, seg_info, fixup);
-        if (!is_ok) {
-          LIEF_WARN("Can't process the fixup {} - 0x{:x}", segment.name(), chain_offset);
-          return make_error_code(is_ok.error());
-        }
-        return ok();
+      auto is_ok =
+          do_chained_fixup(segment, chain_address, chain_offset, seg_info, fixup);
+      if (!is_ok) {
+        LIEF_WARN("Can't process the fixup {} - {:#x}", segment.name(),
+                  chain_offset);
+        return make_error_code(is_ok.error());
       }
+      return ok();
+    }

     default:
-      {
-        LIEF_ERR("Unknown pointer format: 0x{:04x}", seg_info.pointer_format);
-        return make_error_code(lief_errors::not_supported);
-      }
+    {
+      LIEF_ERR("Unknown pointer format: {:#06x}", seg_info.pointer_format);
+      return make_error_code(lief_errors::not_supported);
+    }
   }
   return ok();
 }
@@ -3102,33 +3352,38 @@ ok_error_t BinaryParser::process_fixup(SegmentCommand& segment,
 /* ARM64E Fixup
  * =====================================
  */
-ok_error_t BinaryParser::do_chained_fixup(SegmentCommand& segment,
-                                          uint64_t chain_address, uint32_t chain_offset,
-                                          const details::dyld_chained_starts_in_segment& seg_info,
-                                          const details::dyld_chained_ptr_arm64e& fixup)
-{
+ok_error_t BinaryParser::do_chained_fixup(
+    SegmentCommand& segment, uint64_t chain_address, uint32_t chain_offset,
+    const details::dyld_chained_starts_in_segment& seg_info,
+    const details::dyld_chained_ptr_arm64e& fixup
+) {
   static constexpr const char DPREFIX[] = "          ";
-  const auto ptr_fmt = static_cast<DYLD_CHAINED_PTR_FORMAT>(seg_info.pointer_format);
+  const auto ptr_fmt =
+      static_cast<DYLD_CHAINED_PTR_FORMAT>(seg_info.pointer_format);
   const uint64_t imagebase = binary_->imagebase();

   const uint64_t address = chain_address;
   if (fixup.auth_rebase.auth) {
     // ---------- auth && bind ----------
     if (fixup.auth_bind.bind) {
-      uint32_t bind_ordinal = ptr_fmt == DYLD_CHAINED_PTR_FORMAT::PTR_ARM64E_USERLAND24 ?
-                              fixup.auth_bind24.ordinal :
-                              fixup.auth_bind.ordinal;
+      uint32_t bind_ordinal =
+          ptr_fmt == DYLD_CHAINED_PTR_FORMAT::PTR_ARM64E_USERLAND24 ?
+              fixup.auth_bind24.ordinal :
+              fixup.auth_bind.ordinal;
       if (bind_ordinal >= chained_fixups_->internal_bindings_.size()) {
-        LIEF_WARN("Out of range bind ordinal {} (max {})",
-                  bind_ordinal, chained_fixups_->internal_bindings_.size());
+        LIEF_WARN("Out of range bind ordinal {} (max {})", bind_ordinal,
+                  chained_fixups_->internal_bindings_.size());
         return make_error_code(lief_errors::read_error);
       }
-      std::unique_ptr<ChainedBindingInfoList>& local_binding = chained_fixups_->internal_bindings_[bind_ordinal];
-      local_binding->segment_    = &segment;
+      std::unique_ptr<ChainedBindingInfoList>& local_binding =
+          chained_fixups_->internal_bindings_[bind_ordinal];
+      local_binding->segment_ = &segment;
       local_binding->ptr_format_ = ptr_fmt;
       local_binding->set(fixup.auth_bind);

-      chained_fixups_->all_bindings_.push_back(std::make_unique<ChainedBindingInfo>(*local_binding));
+      chained_fixups_->all_bindings_.push_back(
+          std::make_unique<ChainedBindingInfo>(*local_binding)
+      );
       auto& binding_extra_info = chained_fixups_->all_bindings_.back();
       copy_from(*binding_extra_info, *local_binding);

@@ -3137,12 +3392,13 @@ ok_error_t BinaryParser::do_chained_fixup(SegmentCommand& segment,
       local_binding->elements_.push_back(binding_extra_info.get());

       if (Symbol* sym = binding_extra_info->symbol()) {
-        LIEF_DEBUG("{}[  BIND] {}@0x{:x}: {} / sign ext: {:x}",
-                   DPREFIX, segment.name(), address, sym->name(), fixup.sign_extended_addend());
+        LIEF_DEBUG("{}[  BIND] {}@{:#x}: {} / sign ext: {:x}", DPREFIX,
+                   segment.name(), address, sym->name(),
+                   fixup.sign_extended_addend());
         return ok();
       }
-      LIEF_DEBUG("{}[  BIND] {}@0x{:x}: <missing symbol> / sign ext: {:x}",
-                 DPREFIX, segment.name(), address, fixup.sign_extended_addend());
+      LIEF_DEBUG("{}[  BIND] {}@{:#x}: <missing symbol> / sign ext: {:x}", DPREFIX,
+                 segment.name(), address, fixup.sign_extended_addend());
       LIEF_ERR("Missing symbol for binding at ordinal {}", bind_ordinal);
       return make_error_code(lief_errors::not_found);
     }
@@ -3152,25 +3408,27 @@ ok_error_t BinaryParser::do_chained_fixup(SegmentCommand& segment,

     auto reloc = std::make_unique<RelocationFixup>(ptr_fmt, imagebase);
     reloc->set(fixup.auth_rebase);
-    reloc->address_      = chain_address;
+    reloc->address_ = chain_address;
     reloc->architecture_ = binary_->header().cpu_type();
-    reloc->segment_      = &segment;
-    reloc->size_         = ChainedPointerAnalysis::stride(ptr_fmt) * BYTE_BITS;
-    reloc->offset_       = chain_offset;
+    reloc->segment_ = &segment;
+    reloc->size_ = ChainedPointerAnalysis::stride(ptr_fmt) * BYTE_BITS;
+    reloc->offset_ = chain_offset;

     if (Section* section = binary_->section_from_virtual_address(address)) {
       reloc->section_ = section;
     } else {
-      LIEF_ERR("Can't find the section associated with the virtual address 0x{:x}", address);
+      LIEF_ERR("Can't find the section associated with the virtual address {:#x}",
+               address);
     }

-    const auto it_symbol = memoized_symbols_by_address_.find(address);
-    if (it_symbol != memoized_symbols_by_address_.end()) {
+    if (const auto it_symbol = memoized_symbols_by_address_.find(address);
+        it_symbol != memoized_symbols_by_address_.end())
+    {
       reloc->symbol_ = it_symbol->second;
     }

-    LIEF_DEBUG("{}[REBASE] {}@0x{:x}: 0x{:x}",
-               DPREFIX, segment.name(), address, target);
+    LIEF_DEBUG("{}[REBASE] {}@{:#x}: {:#x}", DPREFIX, segment.name(), address,
+               target);

     segment.relocations_.push_back(std::move(reloc));

@@ -3179,69 +3437,77 @@ ok_error_t BinaryParser::do_chained_fixup(SegmentCommand& segment,

   // ---------- !auth && bind ----------
   if (fixup.auth_bind.bind) {
-      uint32_t bind_ordinal = ptr_fmt == DYLD_CHAINED_PTR_FORMAT::PTR_ARM64E_USERLAND24 ?
-                              fixup.bind24.ordinal :
-                              fixup.bind.ordinal;
-
-      if (bind_ordinal >= chained_fixups_->internal_bindings_.size()) {
-        LIEF_WARN("Out of range bind ordinal {} (max {})",
-                  bind_ordinal, chained_fixups_->internal_bindings_.size());
-        return make_error_code(lief_errors::read_error);
-      }
+    uint32_t bind_ordinal =
+        ptr_fmt == DYLD_CHAINED_PTR_FORMAT::PTR_ARM64E_USERLAND24 ?
+            fixup.bind24.ordinal :
+            fixup.bind.ordinal;
+
+    if (bind_ordinal >= chained_fixups_->internal_bindings_.size()) {
+      LIEF_WARN("Out of range bind ordinal {} (max {})", bind_ordinal,
+                chained_fixups_->internal_bindings_.size());
+      return make_error_code(lief_errors::read_error);
+    }

-      std::unique_ptr<ChainedBindingInfoList>& local_binding = chained_fixups_->internal_bindings_[bind_ordinal];
-      local_binding->segment_    = &segment;
-      local_binding->ptr_format_ = ptr_fmt;
-      ptr_fmt == DYLD_CHAINED_PTR_FORMAT::PTR_ARM64E_USERLAND24 ?
-                 local_binding->set(fixup.bind24) : local_binding->set(fixup.bind);
+    std::unique_ptr<ChainedBindingInfoList>& local_binding =
+        chained_fixups_->internal_bindings_[bind_ordinal];
+    local_binding->segment_ = &segment;
+    local_binding->ptr_format_ = ptr_fmt;
+    ptr_fmt == DYLD_CHAINED_PTR_FORMAT::PTR_ARM64E_USERLAND24 ?
+        local_binding->set(fixup.bind24) :
+        local_binding->set(fixup.bind);

-      chained_fixups_->all_bindings_.push_back(std::make_unique<ChainedBindingInfo>(*local_binding));
-      auto& binding_extra_info = chained_fixups_->all_bindings_.back();
-      copy_from(*binding_extra_info, *local_binding);
+    chained_fixups_->all_bindings_.push_back(
+        std::make_unique<ChainedBindingInfo>(*local_binding)
+    );
+    auto& binding_extra_info = chained_fixups_->all_bindings_.back();
+    copy_from(*binding_extra_info, *local_binding);

-      binding_extra_info->offset_ = chain_offset;
-      binding_extra_info->address_ = chain_address;
-      local_binding->elements_.push_back(binding_extra_info.get());
+    binding_extra_info->offset_ = chain_offset;
+    binding_extra_info->address_ = chain_address;
+    local_binding->elements_.push_back(binding_extra_info.get());

-      if (Symbol* sym = binding_extra_info->symbol()) {
-        LIEF_DEBUG("{}[  BIND] {}@0x{:x}: {} / sign ext: {:x}",
-                   DPREFIX, segment.name(), address, sym->name(), fixup.sign_extended_addend());
-        return ok();
-      }
+    if (Symbol* sym = binding_extra_info->symbol()) {
+      LIEF_DEBUG("{}[  BIND] {}@{:#x}: {} / sign ext: {:x}", DPREFIX,
+                 segment.name(), address, sym->name(),
+                 fixup.sign_extended_addend());
+      return ok();
+    }

-      LIEF_DEBUG("{}[  BIND] {}@0x{:x}: <missing symbol> / sign ext: {:x}",
-                 DPREFIX, segment.name(), address, fixup.sign_extended_addend());
-      LIEF_ERR("Missing symbol for binding at ordinal {}", bind_ordinal);
-      return make_error_code(lief_errors::not_found);
+    LIEF_DEBUG("{}[  BIND] {}@{:#x}: <missing symbol> / sign ext: {:x}", DPREFIX,
+               segment.name(), address, fixup.sign_extended_addend());
+    LIEF_ERR("Missing symbol for binding at ordinal {}", bind_ordinal);
+    return make_error_code(lief_errors::not_found);
   }

   // ---------- !auth && !bind ----------
   // See comment for: dyld_chained_ptr_generic64
   const uint64_t target = ptr_fmt == DYLD_CHAINED_PTR_FORMAT::PTR_64 ?
-                          fixup.unpack_target() :
-                          fixup.unpack_target() + imagebase;
+                              fixup.unpack_target() :
+                              fixup.unpack_target() + imagebase;

   auto reloc = std::make_unique<RelocationFixup>(ptr_fmt, imagebase);
   reloc->set(fixup.rebase);
-  reloc->address_      = chain_address;
+  reloc->address_ = chain_address;
   reloc->architecture_ = binary_->header().cpu_type();
-  reloc->segment_      = &segment;
-  reloc->size_         = ChainedPointerAnalysis::stride(ptr_fmt) * BYTE_BITS;
-  reloc->offset_       = chain_offset;
+  reloc->segment_ = &segment;
+  reloc->size_ = ChainedPointerAnalysis::stride(ptr_fmt) * BYTE_BITS;
+  reloc->offset_ = chain_offset;

   if (Section* section = binary_->section_from_virtual_address(address)) {
     reloc->section_ = section;
   } else {
-    LIEF_ERR("Can't find the section associated with the virtual address 0x{:x}", address);
+    LIEF_ERR("Can't find the section associated with the virtual address {:#x}",
+             address);
   }

-  const auto it_symbol = memoized_symbols_by_address_.find(address);
-  if (it_symbol != memoized_symbols_by_address_.end()) {
+  if (const auto it_symbol = memoized_symbols_by_address_.find(address);
+      it_symbol != memoized_symbols_by_address_.end())
+  {
     reloc->symbol_ = it_symbol->second;
   }

-  LIEF_DEBUG("{}[REBASE] {}@0x{:x}: 0x{:x}",
-             DPREFIX, segment.name(), address, target);
+  LIEF_DEBUG("{}[REBASE] {}@{:#x}: {:#x}", DPREFIX, segment.name(), address,
+             target);

   segment.relocations_.push_back(std::move(reloc));
   return ok();
@@ -3250,30 +3516,34 @@ ok_error_t BinaryParser::do_chained_fixup(SegmentCommand& segment,
 /* Generic64 Fixup
  * =====================================
  */
-ok_error_t BinaryParser::do_chained_fixup(SegmentCommand& segment,
-                                          uint64_t chain_address, uint32_t chain_offset,
-                                          const details::dyld_chained_starts_in_segment& seg_info,
-                                          const details::dyld_chained_ptr_generic64& fixup)
-{
+ok_error_t BinaryParser::do_chained_fixup(
+    SegmentCommand& segment, uint64_t chain_address, uint32_t chain_offset,
+    const details::dyld_chained_starts_in_segment& seg_info,
+    const details::dyld_chained_ptr_generic64& fixup
+) {
   static constexpr const char DPREFIX[] = "          ";
-  const auto ptr_fmt = static_cast<DYLD_CHAINED_PTR_FORMAT>(seg_info.pointer_format);
+  const auto ptr_fmt =
+      static_cast<DYLD_CHAINED_PTR_FORMAT>(seg_info.pointer_format);
   const uint64_t imagebase = binary_->imagebase();

   const uint64_t address = imagebase + chain_offset;
   if (fixup.bind.bind > 0) {
     const uint64_t ordinal = fixup.bind.ordinal;
     if (ordinal >= chained_fixups_->internal_bindings_.size()) {
-      LIEF_WARN("Out of range bind ordinal {} (max {})",
-                ordinal, chained_fixups_->internal_bindings_.size());
+      LIEF_WARN("Out of range bind ordinal {} (max {})", ordinal,
+                chained_fixups_->internal_bindings_.size());
       return make_error_code(lief_errors::read_error);
     }

-    std::unique_ptr<ChainedBindingInfoList>& local_binding = chained_fixups_->internal_bindings_[ordinal];
-    local_binding->segment_    = &segment;
+    std::unique_ptr<ChainedBindingInfoList>& local_binding =
+        chained_fixups_->internal_bindings_[ordinal];
+    local_binding->segment_ = &segment;
     local_binding->ptr_format_ = ptr_fmt;
     local_binding->set(fixup.bind);

-    chained_fixups_->all_bindings_.push_back(std::make_unique<ChainedBindingInfo>(*local_binding));
+    chained_fixups_->all_bindings_.push_back(
+        std::make_unique<ChainedBindingInfo>(*local_binding)
+    );
     auto& binding_extra_info = chained_fixups_->all_bindings_.back();
     copy_from(*binding_extra_info, *local_binding);

@@ -3282,12 +3552,13 @@ ok_error_t BinaryParser::do_chained_fixup(SegmentCommand& segment,
     local_binding->elements_.push_back(binding_extra_info.get());

     if (Symbol* sym = binding_extra_info->symbol()) {
-      LIEF_DEBUG("{}[  BIND] {}@0x{:x}: {} / sign ext: {:x}",
-                 DPREFIX, segment.name(), address, sym->name(), fixup.sign_extended_addend());
+      LIEF_DEBUG("{}[  BIND] {}@{:#x}: {} / sign ext: {:x}", DPREFIX,
+                 segment.name(), address, sym->name(),
+                 fixup.sign_extended_addend());
       return ok();
     }
-    LIEF_DEBUG("{}[  BIND] {}@0x{:x}: <missing symbol> / sign ext: {:x}",
-               DPREFIX, segment.name(), address, fixup.sign_extended_addend());
+    LIEF_DEBUG("{}[  BIND] {}@{:#x}: <missing symbol> / sign ext: {:x}", DPREFIX,
+               segment.name(), address, fixup.sign_extended_addend());
     LIEF_ERR("Missing symbol for binding at ordinal {}", ordinal);
     return make_error_code(lief_errors::not_found);
   }
@@ -3296,53 +3567,57 @@ ok_error_t BinaryParser::do_chained_fixup(SegmentCommand& segment,
   // The fixup is a rebase.

   /* In the dyld source code (MachOLoaded.cpp) there is
-   * a distinction between with DYLD_CHAINED_PTR_64:
+   * a distinction with DYLD_CHAINED_PTR_64:
    *
    *  // plain rebase (old format target is vmaddr, new format target is offset)
    *  if ( segInfo->pointer_format == DYLD_CHAINED_PTR_64 )
    *      newValue = (void*)(fixupLoc->generic64.unpackedTarget()+slide);
    *  else
-   *      newValue = (void*)((uintptr_t)this + fixupLoc->generic64.unpackedTarget());
+   *      newValue = (void*)((uintptr_t)this +
+   * fixupLoc->generic64.unpackedTarget());
    *
    * Not sure if it really matters in our case
    */
   const uint64_t target = ptr_fmt == DYLD_CHAINED_PTR_FORMAT::PTR_64 ?
-                          fixup.unpack_target() :
-                          fixup.unpack_target() + imagebase;
+                              fixup.unpack_target() :
+                              fixup.unpack_target() + imagebase;
   auto reloc = std::make_unique<RelocationFixup>(ptr_fmt, imagebase);
   reloc->set(fixup.rebase);
-  reloc->address_      = chain_address;
+  reloc->address_ = chain_address;
   reloc->architecture_ = binary_->header().cpu_type();
-  reloc->segment_      = &segment;
-  reloc->size_         = ChainedPointerAnalysis::stride(ptr_fmt) * BYTE_BITS;
-  reloc->offset_       = chain_offset;
+  reloc->segment_ = &segment;
+  reloc->size_ = ChainedPointerAnalysis::stride(ptr_fmt) * BYTE_BITS;
+  reloc->offset_ = chain_offset;

   if (Section* section = binary_->section_from_virtual_address(address)) {
     reloc->section_ = section;
   } else {
-    LIEF_ERR("Can't find the section associated with the virtual address 0x{:x}", address);
+    LIEF_ERR("Can't find the section associated with the virtual address {:#x}",
+             address);
   }

-  const auto it_symbol = memoized_symbols_by_address_.find(address);
-  if (it_symbol != memoized_symbols_by_address_.end()) {
+  if (const auto it_symbol = memoized_symbols_by_address_.find(address);
+      it_symbol != memoized_symbols_by_address_.end())
+  {
     reloc->symbol_ = it_symbol->second;
   }

-  LIEF_DEBUG("{}[REBASE] {}@0x{:x}: 0x{:x}",
-             DPREFIX, segment.name(), address, target);
+  LIEF_DEBUG("{}[REBASE] {}@{:#x}: {:#x}", DPREFIX, segment.name(), address,
+             target);

   segment.relocations_.push_back(std::move(reloc));
   return ok();
 }


-ok_error_t BinaryParser::do_chained_fixup(SegmentCommand& segment,
-                                          uint64_t chain_address, uint32_t chain_offset,
-                                          const details::dyld_chained_starts_in_segment& seg_info,
-                                          const details::dyld_chained_ptr_generic32& fixup)
-{
+ok_error_t BinaryParser::do_chained_fixup(
+    SegmentCommand& segment, uint64_t chain_address, uint32_t chain_offset,
+    const details::dyld_chained_starts_in_segment& seg_info,
+    const details::dyld_chained_ptr_generic32& fixup
+) {
   static constexpr const char DPREFIX[] = "          ";
-  const auto ptr_fmt = static_cast<DYLD_CHAINED_PTR_FORMAT>(seg_info.pointer_format);
+  const auto ptr_fmt =
+      static_cast<DYLD_CHAINED_PTR_FORMAT>(seg_info.pointer_format);
   const uint64_t imagebase = binary_->imagebase();

   const uint64_t address = imagebase + chain_offset;
@@ -3350,17 +3625,20 @@ ok_error_t BinaryParser::do_chained_fixup(SegmentCommand& segment,
     const uint64_t ordinal = fixup.bind.ordinal;

     if (ordinal >= chained_fixups_->internal_bindings_.size()) {
-      LIEF_WARN("Out of range bind ordinal {} (max {})",
-                ordinal, chained_fixups_->internal_bindings_.size());
+      LIEF_WARN("Out of range bind ordinal {} (max {})", ordinal,
+                chained_fixups_->internal_bindings_.size());
       return make_error_code(lief_errors::read_error);
     }

-    std::unique_ptr<ChainedBindingInfoList>& local_binding = chained_fixups_->internal_bindings_[ordinal];
-    local_binding->segment_    = &segment;
+    std::unique_ptr<ChainedBindingInfoList>& local_binding =
+        chained_fixups_->internal_bindings_[ordinal];
+    local_binding->segment_ = &segment;
     local_binding->ptr_format_ = ptr_fmt;
     local_binding->set(fixup.bind);

-    chained_fixups_->all_bindings_.push_back(std::make_unique<ChainedBindingInfo>(*local_binding));
+    chained_fixups_->all_bindings_.push_back(
+        std::make_unique<ChainedBindingInfo>(*local_binding)
+    );
     auto& binding_extra_info = chained_fixups_->all_bindings_.back();
     copy_from(*binding_extra_info, *local_binding);

@@ -3369,12 +3647,12 @@ ok_error_t BinaryParser::do_chained_fixup(SegmentCommand& segment,
     local_binding->elements_.push_back(binding_extra_info.get());

     if (Symbol* sym = binding_extra_info->symbol()) {
-      LIEF_DEBUG("{}[  BIND] {}@0x{:x}: {} / sign ext: {:x}",
-                 DPREFIX, segment.name(), address, sym->name(), fixup.bind.addend);
+      LIEF_DEBUG("{}[  BIND] {}@{:#x}: {} / sign ext: {:x}", DPREFIX,
+                 segment.name(), address, sym->name(), fixup.bind.addend);
       return ok();
     }
-    LIEF_DEBUG("{}[  BIND] {}@0x{:x}: <missing symbol> / sign ext: {:x}",
-               DPREFIX, segment.name(), address, fixup.bind.addend);
+    LIEF_DEBUG("{}[  BIND] {}@{:#x}: <missing symbol> / sign ext: {:x}", DPREFIX,
+               segment.name(), address, fixup.bind.addend);
     LIEF_ERR("Missing symbol for binding at ordinal {}", ordinal);
     return make_error_code(lief_errors::not_found);
   }
@@ -3385,7 +3663,7 @@ ok_error_t BinaryParser::do_chained_fixup(SegmentCommand& segment,
     const uint64_t target = fixup.rebase.target - bias;

     /* This is used to avoid storing bias information */
-    const uint64_t fake_bias   = target - fixup.rebase.target;
+    const uint64_t fake_bias = target - fixup.rebase.target;
     const uint64_t fake_target = target - fake_bias;
     details::dyld_chained_ptr_32_rebase fake_fixup = fixup.rebase;
     fake_fixup.target = fake_target;
@@ -3395,35 +3673,37 @@ ok_error_t BinaryParser::do_chained_fixup(SegmentCommand& segment,
     reloc = std::make_unique<RelocationFixup>(ptr_fmt, imagebase);
     reloc->set(fixup.rebase);
   }
-  reloc->address_      = chain_address;
+  reloc->address_ = chain_address;
   reloc->architecture_ = binary_->header().cpu_type();
-  reloc->segment_      = &segment;
-  reloc->size_         = ChainedPointerAnalysis::stride(ptr_fmt) * BYTE_BITS;
-  reloc->offset_       = chain_offset;
+  reloc->segment_ = &segment;
+  reloc->size_ = ChainedPointerAnalysis::stride(ptr_fmt) * BYTE_BITS;
+  reloc->offset_ = chain_offset;

   if (Section* section = binary_->section_from_virtual_address(address)) {
     reloc->section_ = section;
   } else {
-    LIEF_ERR("Can't find the section associated with the virtual address 0x{:x}", address);
+    LIEF_ERR("Can't find the section associated with the virtual address {:#x}",
+             address);
   }

-  const auto it_symbol = memoized_symbols_by_address_.find(address);
-  if (it_symbol != memoized_symbols_by_address_.end()) {
+  if (const auto it_symbol = memoized_symbols_by_address_.find(address);
+      it_symbol != memoized_symbols_by_address_.end())
+  {
     reloc->symbol_ = it_symbol->second;
   }

-  LIEF_DEBUG("{}[REBASE] {}@0x{:x}: 0x{:x}",
-             DPREFIX, segment.name(), address, reloc->target());
+  LIEF_DEBUG("{}[REBASE] {}@{:#x}: {:#x}", DPREFIX, segment.name(), address,
+             reloc->target());

   segment.relocations_.push_back(std::move(reloc));
   return ok();
 }

-ok_error_t BinaryParser::do_chained_fixup(
-    SegmentCommand& /*segment*/, uint64_t /*chain_address*/, uint32_t /*chain_offset*/,
-    const details::dyld_chained_starts_in_segment& /*seg_info*/,
-    const details::dyld_chained_ptr_arm64e_segmented& /*fixup*/)
-{
+ok_error_t BinaryParser::
+    do_chained_fixup(SegmentCommand& /*segment*/, uint64_t /*chain_address*/,
+                     uint32_t /*chain_offset*/,
+                     const details::dyld_chained_starts_in_segment& /*seg_info*/,
+                     const details::dyld_chained_ptr_arm64e_segmented& /*fixup*/) {
   LIEF_ERR("Segmented chained rebase is not supported");
   return make_error_code(lief_errors::not_supported);
 }
@@ -3435,15 +3715,17 @@ ok_error_t BinaryParser::post_process(SymbolCommand& cmd) {
   using nlist_t = typename MACHO_T::nlist;

   cmd.original_nb_symbols_ = cmd.numberof_symbols();
-  cmd.original_str_size_   = cmd.strings_size();
+  cmd.original_str_size_ = cmd.strings_size();

-  SegmentCommand* nlist_linkedit = config_.from_dyld_shared_cache ?
-    binary_->get_segment("__LINKEDIT") :
-    binary_->segment_from_offset(cmd.symbol_offset());
+  SegmentCommand* nlist_linkedit =
+      config_.from_dyld_shared_cache ?
+          binary_->get_segment("__LINKEDIT") :
+          binary_->segment_from_offset(cmd.symbol_offset());

-  SegmentCommand* strings_linkedit = config_.from_dyld_shared_cache ?
-    binary_->get_segment("__LINKEDIT") :
-    binary_->segment_from_offset(cmd.strings_offset());
+  SegmentCommand* strings_linkedit =
+      config_.from_dyld_shared_cache ?
+          binary_->get_segment("__LINKEDIT") :
+          binary_->segment_from_offset(cmd.strings_offset());


   if (nlist_linkedit == nullptr || strings_linkedit == nullptr) {
@@ -3452,15 +3734,14 @@ ok_error_t BinaryParser::post_process(SymbolCommand& cmd) {

     const uint64_t nlist_size = sizeof(nlist_t) * cmd.numberof_symbols();

-    nlist_buffer.resize(nlist_size);
-    strings_buffer.resize(cmd.strings_size());
-
     if (!stream_->peek_data(nlist_buffer, cmd.symbol_offset(), nlist_size)) {
-      LIEF_ERR("Can't read nlist buffer at: 0x{:010x}", cmd.symbol_offset());
+      LIEF_ERR("Can't read nlist buffer at: {:#012x}", cmd.symbol_offset());
       return make_error_code(lief_errors::read_error);
     }

-    if (!stream_->peek_data(strings_buffer, cmd.strings_offset(), cmd.strings_size())) {
+    if (!stream_->peek_data(strings_buffer, cmd.strings_offset(),
+                            cmd.strings_size()))
+    {
       return make_error_code(lief_errors::read_error);
     }

@@ -3473,12 +3754,15 @@ ok_error_t BinaryParser::post_process(SymbolCommand& cmd) {
   }

   /* n_list table */ {
-    span<uint8_t> content = nlist_linkedit->writable_content();
+    span<uint8_t> content = nlist_linkedit->content();

-    const uint64_t rel_offset = cmd.symbol_offset() - nlist_linkedit->file_offset();
+    const uint64_t rel_offset =
+        cmd.symbol_offset() - nlist_linkedit->file_offset();
     const size_t symtab_size = cmd.numberof_symbols() * sizeof(nlist_t);
-    if (rel_offset > content.size() || (rel_offset + symtab_size) > content.size()) {
-      LIEF_ERR("The LC_SYMTAB.n_list is out of bounds of the segment '{}'", nlist_linkedit->name());
+    if (rel_offset > content.size() || (rel_offset + symtab_size) > content.size())
+    {
+      LIEF_ERR("The LC_SYMTAB.n_list is out of bounds of the segment '{}'",
+               nlist_linkedit->name());
       return make_error_code(lief_errors::read_out_of_bound);
     }

@@ -3492,12 +3776,15 @@ ok_error_t BinaryParser::post_process(SymbolCommand& cmd) {
   }

   /* strtable */ {
-    span<uint8_t> content = strings_linkedit->writable_content();
+    span<uint8_t> content = strings_linkedit->content();

-    const uint64_t rel_offset = cmd.strings_offset() - strings_linkedit->file_offset();
+    const uint64_t rel_offset =
+        cmd.strings_offset() - strings_linkedit->file_offset();
     const size_t strtab_size = cmd.strings_size();
-    if (rel_offset > content.size() || (rel_offset + strtab_size) > content.size()) {
-      LIEF_ERR("The LC_SYMTAB.strtab is out of bounds of the segment {}", strings_linkedit->name());
+    if (rel_offset > content.size() || (rel_offset + strtab_size) > content.size())
+    {
+      LIEF_ERR("The LC_SYMTAB.strtab is out of bounds of the segment {}",
+               strings_linkedit->name());
       return make_error_code(lief_errors::read_out_of_bound);
     }

@@ -3524,19 +3811,24 @@ template<class MACHO_T>
 ok_error_t BinaryParser::post_process(FunctionStarts& cmd) {
   LIEF_DEBUG("[^] Post processing LC_FUNCTION_STARTS");
   SegmentCommand* linkedit = config_.from_dyld_shared_cache ?
-                             binary_->get_segment("__LINKEDIT") :
-                             binary_->segment_from_offset(cmd.data_offset());
+                                 binary_->get_segment("__LINKEDIT") :
+                                 binary_->segment_from_offset(cmd.data_offset());

   if (linkedit == nullptr) {
-    LIEF_WARN("Can't find the segment that contains the LC_FUNCTION_STARTS (offset=0x{:016x})", cmd.data_offset());
+    LIEF_WARN("Can't find the segment that contains the LC_FUNCTION_STARTS "
+              "(offset={:#018x})",
+              cmd.data_offset());
     return make_error_code(lief_errors::not_found);
   }

-  span<uint8_t> content = linkedit->writable_content();
+  span<uint8_t> content = linkedit->content();

   const uint64_t rel_offset = cmd.data_offset() - linkedit->file_offset();
-  if (rel_offset > content.size() || (rel_offset + cmd.data_size()) > content.size()) {
-    LIEF_ERR("The LC_FUNCTION_STARTS is out of bounds of the segment '{}'", linkedit->name());
+  if (rel_offset > content.size() ||
+      (rel_offset + cmd.data_size()) > content.size())
+  {
+    LIEF_ERR("The LC_FUNCTION_STARTS is out of bounds of the segment '{}'",
+             linkedit->name());
     return make_error_code(lief_errors::read_out_of_bound);
   }

@@ -3545,7 +3837,8 @@ ok_error_t BinaryParser::post_process(FunctionStarts& cmd) {
   if (LinkEdit::segmentof(*linkedit)) {
     static_cast<LinkEdit*>(linkedit)->fstarts_ = &cmd;
   } else {
-    LIEF_WARN("Weird: LC_FUNCTION_STARTS is not in the __LINKEDIT segment ({})", linkedit->name());
+    LIEF_WARN("Weird: LC_FUNCTION_STARTS is not in the __LINKEDIT segment ({})",
+              linkedit->name());
   }

   SpanStream stream(cmd.content_);
@@ -3555,9 +3848,8 @@ ok_error_t BinaryParser::post_process(FunctionStarts& cmd) {
   do {
     auto val = stream.read_uleb128();
     if (!val) {
-      LIEF_WARN("Can't read value at offset: 0x{:010x} (#{} read)",
-                stream.pos(), cmd.functions_.size()
-      );
+      LIEF_WARN("Can't read value at offset: {:#012x} (#{} read)", stream.pos(),
+                cmd.functions_.size());
       return make_error_code(lief_errors::read_error);
     }

@@ -3567,7 +3859,7 @@ ok_error_t BinaryParser::post_process(FunctionStarts& cmd) {

     value += *val;
     cmd.add_function(value);
-  } while(stream);
+  } while (stream);

   return ok();
 }
@@ -3577,19 +3869,22 @@ template<class MACHO_T>
 ok_error_t BinaryParser::post_process(DataInCode& cmd) {
   LIEF_DEBUG("[^] Post processing LC_DATA_IN_CODE");
   SegmentCommand* linkedit = config_.from_dyld_shared_cache ?
-                             binary_->get_segment("__LINKEDIT") :
-                             binary_->segment_from_offset(cmd.data_offset());
+                                 binary_->get_segment("__LINKEDIT") :
+                                 binary_->segment_from_offset(cmd.data_offset());
   if (linkedit == nullptr) {
     LIEF_WARN("Can't find the segment that contains the LC_DATA_IN_CODE");
     ScopedStream scoped(*stream_, cmd.data_offset());
     return parse_data_in_code<MACHO_T>(cmd, *scoped);
   }

-  span<uint8_t> content = linkedit->writable_content();
+  span<uint8_t> content = linkedit->content();

   const uint64_t rel_offset = cmd.data_offset() - linkedit->file_offset();
-  if (rel_offset > content.size() || (rel_offset + cmd.data_size()) > content.size()) {
-    LIEF_ERR("The LC_DATA_IN_CODE is out of bounds of the segment '{}'", linkedit->name());
+  if (rel_offset > content.size() ||
+      (rel_offset + cmd.data_size()) > content.size())
+  {
+    LIEF_ERR("The LC_DATA_IN_CODE is out of bounds of the segment '{}'",
+             linkedit->name());
     return make_error_code(lief_errors::read_out_of_bound);
   }

@@ -3609,18 +3904,21 @@ template<class MACHO_T>
 ok_error_t BinaryParser::post_process(SegmentSplitInfo& cmd) {
   LIEF_DEBUG("[^] Post processing LC_SEGMENT_SPLIT_INFO");
   SegmentCommand* linkedit = config_.from_dyld_shared_cache ?
-                             binary_->get_segment("__LINKEDIT") :
-                             binary_->segment_from_offset(cmd.data_offset());
+                                 binary_->get_segment("__LINKEDIT") :
+                                 binary_->segment_from_offset(cmd.data_offset());
   if (linkedit == nullptr) {
     LIEF_WARN("Can't find the segment that contains the LC_SEGMENT_SPLIT_INFO");
     return make_error_code(lief_errors::not_found);
   }

-  span<uint8_t> content = linkedit->writable_content();
+  span<uint8_t> content = linkedit->content();

   const uint64_t rel_offset = cmd.data_offset() - linkedit->file_offset();
-  if (rel_offset > content.size() || (rel_offset + cmd.data_size()) > content.size()) {
-    LIEF_ERR("The LC_SEGMENT_SPLIT_INFO is out of bounds of the segment '{}'", linkedit->name());
+  if (rel_offset > content.size() ||
+      (rel_offset + cmd.data_size()) > content.size())
+  {
+    LIEF_ERR("The LC_SEGMENT_SPLIT_INFO is out of bounds of the segment '{}'",
+             linkedit->name());
     return make_error_code(lief_errors::read_out_of_bound);
   }

@@ -3646,20 +3944,22 @@ ok_error_t BinaryParser::post_process(DynamicSymbolCommand& cmd) {
       continue;
     }

-    if (cmd.nb_local_symbols() > 0 &&
-        cmd.idx_local_symbol() <= isym  && isym < (cmd.idx_local_symbol() + cmd.nb_local_symbols()))
+    if (cmd.nb_local_symbols() > 0 && cmd.idx_local_symbol() <= isym &&
+        isym < (cmd.idx_local_symbol() + cmd.nb_local_symbols()))
     {
       sym->category_ = Symbol::CATEGORY::LOCAL;
     }

     if (cmd.nb_external_define_symbols() > 0 &&
-        cmd.idx_external_define_symbol() <= isym  && isym < (cmd.idx_external_define_symbol() + cmd.nb_external_define_symbols()))
+        cmd.idx_external_define_symbol() <= isym &&
+        isym <
+            (cmd.idx_external_define_symbol() + cmd.nb_external_define_symbols()))
     {
       sym->category_ = Symbol::CATEGORY::EXTERNAL;
     }

-    if (cmd.nb_undefined_symbols() > 0 &&
-        cmd.idx_undefined_symbol() <= isym  && isym < (cmd.idx_undefined_symbol() + cmd.nb_undefined_symbols()))
+    if (cmd.nb_undefined_symbols() > 0 && cmd.idx_undefined_symbol() <= isym &&
+        isym < (cmd.idx_undefined_symbol() + cmd.nb_undefined_symbols()))
     {
       sym->category_ = Symbol::CATEGORY::UNDEFINED;
     }
@@ -3671,22 +3971,25 @@ ok_error_t BinaryParser::post_process(DynamicSymbolCommand& cmd) {
     return ok();
   }

-  SegmentCommand* linkedit = config_.from_dyld_shared_cache ?
-                             binary_->get_segment("__LINKEDIT") :
-                             binary_->segment_from_offset(cmd.indirect_symbol_offset());
+  SegmentCommand* linkedit =
+      config_.from_dyld_shared_cache ?
+          binary_->get_segment("__LINKEDIT") :
+          binary_->segment_from_offset(cmd.indirect_symbol_offset());

   if (linkedit == nullptr) {
     ScopedStream scoped(*stream_, cmd.indirect_symbol_offset());
     return parse_indirect_symbols(cmd, symtab, *scoped);
   }

-  span<uint8_t> content = linkedit->writable_content();
+  span<uint8_t> content = linkedit->content();

   const size_t size = cmd.nb_indirect_symbols() * sizeof(uint32_t);

-  const uint64_t rel_offset = cmd.indirect_symbol_offset() - linkedit->file_offset();
+  const uint64_t rel_offset =
+      cmd.indirect_symbol_offset() - linkedit->file_offset();
   if (rel_offset > content.size() || (rel_offset + size) > content.size()) {
-    LIEF_ERR("LC_DYSYMTAB.indirect_symbols is out of bounds of the segment '{}'", linkedit->name());
+    LIEF_ERR("LC_DYSYMTAB.indirect_symbols is out of bounds of the segment '{}'",
+             linkedit->name());
     return make_error_code(lief_errors::read_out_of_bound);
   }
   span<uint8_t> indirect_sym_buffer = content.subspan(rel_offset, size);
@@ -3703,19 +4006,26 @@ ok_error_t BinaryParser::post_process(LinkerOptHint& cmd) {
   }

   SegmentCommand* linkedit = config_.from_dyld_shared_cache ?
-                             binary_->get_segment("__LINKEDIT") :
-                             binary_->segment_from_offset(cmd.data_offset());
+                                 binary_->get_segment("__LINKEDIT") :
+                                 binary_->segment_from_offset(cmd.data_offset());

   if (linkedit == nullptr) {
-    LIEF_WARN("Can't find the segment that contains the LC_LINKER_OPTIMIZATION_HINT");
+    LIEF_WARN(
+        "Can't find the segment that contains the LC_LINKER_OPTIMIZATION_HINT"
+    );
     return make_error_code(lief_errors::not_found);
   }

-  span<uint8_t> content = linkedit->writable_content();
+  span<uint8_t> content = linkedit->content();

   const uint64_t rel_offset = cmd.data_offset() - linkedit->file_offset();
-  if (rel_offset > content.size() || (rel_offset + cmd.data_size()) > content.size()) {
-    LIEF_ERR("The LC_LINKER_OPTIMIZATION_HINT is out of bounds of the segment '{}'", linkedit->name());
+  if (rel_offset > content.size() ||
+      (rel_offset + cmd.data_size()) > content.size())
+  {
+    LIEF_ERR(
+        "The LC_LINKER_OPTIMIZATION_HINT is out of bounds of the segment '{}'",
+        linkedit->name()
+    );
     return make_error_code(lief_errors::read_out_of_bound);
   }

@@ -3724,7 +4034,9 @@ ok_error_t BinaryParser::post_process(LinkerOptHint& cmd) {
   if (LinkEdit::segmentof(*linkedit)) {
     static_cast<LinkEdit*>(linkedit)->linker_opt_ = &cmd;
   } else {
-    LIEF_WARN("Weird: LC_LINKER_OPTIMIZATION_HINT is not in the __LINKEDIT segment");
+    LIEF_WARN(
+        "Weird: LC_LINKER_OPTIMIZATION_HINT is not in the __LINKEDIT segment"
+    );
   }
   return ok();
 }
@@ -3735,19 +4047,22 @@ ok_error_t BinaryParser::post_process(AtomInfo& cmd) {
   LIEF_DEBUG("[^] Post processing LC_ATOM_INFO");

   SegmentCommand* linkedit = config_.from_dyld_shared_cache ?
-                             binary_->get_segment("__LINKEDIT") :
-                             binary_->segment_from_offset(cmd.data_offset());
+                                 binary_->get_segment("__LINKEDIT") :
+                                 binary_->segment_from_offset(cmd.data_offset());

   if (linkedit == nullptr) {
     LIEF_WARN("Can't find the segment that contains the LC_ATOM_INFO");
     return make_error_code(lief_errors::not_found);
   }

-  span<uint8_t> content = linkedit->writable_content();
+  span<uint8_t> content = linkedit->content();

   const uint64_t rel_offset = cmd.data_offset() - linkedit->file_offset();
-  if (rel_offset > content.size() || (rel_offset + cmd.data_size()) > content.size()) {
-    LIEF_ERR("The LC_ATOM_INFO is out of bounds of the segment '{}'", linkedit->name());
+  if (rel_offset > content.size() ||
+      (rel_offset + cmd.data_size()) > content.size())
+  {
+    LIEF_ERR("The LC_ATOM_INFO is out of bounds of the segment '{}'",
+             linkedit->name());
     return make_error_code(lief_errors::read_out_of_bound);
   }

@@ -3765,19 +4080,22 @@ template<class MACHO_T>
 ok_error_t BinaryParser::post_process(CodeSignature& cmd) {
   LIEF_DEBUG("[^] Post processing LC_CODE_SIGNATURE");
   SegmentCommand* linkedit = config_.from_dyld_shared_cache ?
-                             binary_->get_segment("__LINKEDIT") :
-                             binary_->segment_from_offset(cmd.data_offset());
+                                 binary_->get_segment("__LINKEDIT") :
+                                 binary_->segment_from_offset(cmd.data_offset());

   if (linkedit == nullptr) {
     LIEF_WARN("Can't find the segment that contains the LC_CODE_SIGNATURE");
     return make_error_code(lief_errors::not_found);
   }

-  span<uint8_t> content = linkedit->writable_content();
+  span<uint8_t> content = linkedit->content();

   const uint64_t rel_offset = cmd.data_offset() - linkedit->file_offset();
-  if (rel_offset > content.size() || (rel_offset + cmd.data_size()) > content.size()) {
-    LIEF_ERR("The LC_CODE_SIGNATURE is out of bounds of the segment '{}'", linkedit->name());
+  if (rel_offset > content.size() ||
+      (rel_offset + cmd.data_size()) > content.size())
+  {
+    LIEF_ERR("The LC_CODE_SIGNATURE is out of bounds of the segment '{}'",
+             linkedit->name());
     return make_error_code(lief_errors::read_out_of_bound);
   }

@@ -3795,19 +4113,22 @@ template<class MACHO_T>
 ok_error_t BinaryParser::post_process(CodeSignatureDir& cmd) {
   LIEF_DEBUG("[^] Post processing LC_DYLIB_CODE_SIGN_DRS");
   SegmentCommand* linkedit = config_.from_dyld_shared_cache ?
-                             binary_->get_segment("__LINKEDIT") :
-                             binary_->segment_from_offset(cmd.data_offset());
+                                 binary_->get_segment("__LINKEDIT") :
+                                 binary_->segment_from_offset(cmd.data_offset());

   if (linkedit == nullptr) {
     LIEF_WARN("Can't find the segment that contains the LC_DYLIB_CODE_SIGN_DRS");
     return make_error_code(lief_errors::not_found);
   }

-  span<uint8_t> content = linkedit->writable_content();
+  span<uint8_t> content = linkedit->content();

   const uint64_t rel_offset = cmd.data_offset() - linkedit->file_offset();
-  if (rel_offset > content.size() || (rel_offset + cmd.data_size()) > content.size()) {
-    LIEF_ERR("The LC_DYLIB_CODE_SIGN_DRS is out of bounds of the segment '{}'", linkedit->name());
+  if (rel_offset > content.size() ||
+      (rel_offset + cmd.data_size()) > content.size())
+  {
+    LIEF_ERR("The LC_DYLIB_CODE_SIGN_DRS is out of bounds of the segment '{}'",
+             linkedit->name());
     return make_error_code(lief_errors::read_out_of_bound);
   }

@@ -3826,8 +4147,8 @@ template<class MACHO_T>
 ok_error_t BinaryParser::post_process(TwoLevelHints& cmd) {
   LIEF_DEBUG("[^] Post processing TWOLEVEL_HINTS");
   SegmentCommand* linkedit = config_.from_dyld_shared_cache ?
-                             binary_->get_segment("__LINKEDIT") :
-                             binary_->segment_from_offset(cmd.offset());
+                                 binary_->get_segment("__LINKEDIT") :
+                                 binary_->segment_from_offset(cmd.offset());

   if (linkedit == nullptr) {
     LIEF_WARN("Can't find the segment that contains the LC_TWOLEVEL_HINTS");
@@ -3835,11 +4156,12 @@ ok_error_t BinaryParser::post_process(TwoLevelHints& cmd) {
   }

   const size_t raw_size = cmd.original_nb_hints() * sizeof(uint32_t);
-  span<uint8_t> content = linkedit->writable_content();
+  span<uint8_t> content = linkedit->content();

   const uint64_t rel_offset = cmd.offset() - linkedit->file_offset();
   if (rel_offset > content.size() || (rel_offset + raw_size) > content.size()) {
-    LIEF_ERR("The LC_TWOLEVEL_HINTS is out of bounds of the segment '{}'", linkedit->name());
+    LIEF_ERR("The LC_TWOLEVEL_HINTS is out of bounds of the segment '{}'",
+             linkedit->name());
     return make_error_code(lief_errors::read_out_of_bound);
   }

@@ -3865,18 +4187,21 @@ ok_error_t BinaryParser::infer_indirect_bindings() {
     for (Section& section : segment.sections()) {
       const Section::TYPE type = section.type();
       const bool might_have_indirect =
-        type == Section::TYPE::NON_LAZY_SYMBOL_POINTERS ||
-        type == Section::TYPE::LAZY_SYMBOL_POINTERS ||
-        type == Section::TYPE::LAZY_DYLIB_SYMBOL_POINTERS ||
-        type == Section::TYPE::THREAD_LOCAL_VARIABLE_POINTERS ||
-        type == Section::TYPE::SYMBOL_STUBS;
+          type == Section::TYPE::NON_LAZY_SYMBOL_POINTERS ||
+          type == Section::TYPE::LAZY_SYMBOL_POINTERS ||
+          type == Section::TYPE::LAZY_DYLIB_SYMBOL_POINTERS ||
+          type == Section::TYPE::THREAD_LOCAL_VARIABLE_POINTERS ||
+          type == Section::TYPE::SYMBOL_STUBS;
       if (!might_have_indirect) {
         continue;
       }

       uint32_t stride = type == Section::TYPE::SYMBOL_STUBS ?
-                        section.reserved2() :
-                        sizeof(typename MACHO_T::uint);
+                            section.reserved2() :
+                            sizeof(typename MACHO_T::uint);
+      if (stride == 0) {
+        continue;
+      }
       uint32_t count = section.size() / stride;
       uint32_t n = section.reserved1();
       auto indirect_syms = dynsym->indirect_symbols();
@@ -3896,9 +4221,9 @@ ok_error_t BinaryParser::infer_indirect_bindings() {
             dylib = binding_libs_[idx];
           }
         }
-        auto binding = std::make_unique<IndirectBindingInfo>(
-          segment, sym, lib_ordinal, dylib, addr
-        );
+        auto binding =
+            std::make_unique<IndirectBindingInfo>(segment, sym, lib_ordinal, dylib,
+                                                  addr);
         binary_->indirect_bindings_.push_back(std::move(binding));
       }
     }
@@ -3908,9 +4233,8 @@ ok_error_t BinaryParser::infer_indirect_bindings() {


 template<class MACHO_T>
-ok_error_t BinaryParser::parse_symtab(SymbolCommand&/*cmd*/,
-                                      SpanStream& nlist_s, SpanStream& string_s)
-{
+ok_error_t BinaryParser::parse_symtab(SymbolCommand& /*cmd*/, SpanStream& nlist_s,
+                                      SpanStream& string_s) {
   using nlist_t = typename MACHO_T::nlist;

   size_t idx = 0;
@@ -3941,7 +4265,8 @@ ok_error_t BinaryParser::parse_symtab(SymbolCommand&/*cmd*/,


 template<class MACHO_T>
-ok_error_t BinaryParser::parse_data_in_code(DataInCode& cmd, BinaryStream& stream) {
+ok_error_t BinaryParser::parse_data_in_code(DataInCode& cmd,
+                                            BinaryStream& stream) {
   const size_t nb_entries = cmd.data_size() / sizeof(details::data_in_code_entry);

   for (size_t i = 0; i < nb_entries; ++i) {
@@ -3960,19 +4285,24 @@ ok_error_t BinaryParser::post_process(FunctionVariants& cmd) {
   LIEF_DEBUG("[^] Post processing LC_FUNCTION_VARIANTS");

   SegmentCommand* linkedit = config_.from_dyld_shared_cache ?
-                             binary_->get_segment("__LINKEDIT") :
-                             binary_->segment_from_offset(cmd.data_offset());
+                                 binary_->get_segment("__LINKEDIT") :
+                                 binary_->segment_from_offset(cmd.data_offset());

   if (linkedit == nullptr) {
-    LIEF_WARN("Can't find the segment that contains the LC_FUNCTION_VARIANTS (offset=0x{:016x})", cmd.data_offset());
+    LIEF_WARN("Can't find the segment that contains the LC_FUNCTION_VARIANTS "
+              "(offset={:#018x})",
+              cmd.data_offset());
     return make_error_code(lief_errors::not_found);
   }

-  span<uint8_t> content = linkedit->writable_content();
+  span<uint8_t> content = linkedit->content();

   const uint64_t rel_offset = cmd.data_offset() - linkedit->file_offset();
-  if (rel_offset > content.size() || (rel_offset + cmd.data_size()) > content.size()) {
-    LIEF_ERR("The LC_FUNCTION_VARIANTS is out of bounds of the segment '{}'", linkedit->name());
+  if (rel_offset > content.size() ||
+      (rel_offset + cmd.data_size()) > content.size())
+  {
+    LIEF_ERR("The LC_FUNCTION_VARIANTS is out of bounds of the segment '{}'",
+             linkedit->name());
     return make_error_code(lief_errors::read_out_of_bound);
   }

@@ -3981,7 +4311,8 @@ ok_error_t BinaryParser::post_process(FunctionVariants& cmd) {
   if (LinkEdit::segmentof(*linkedit)) {
     static_cast<LinkEdit*>(linkedit)->func_variants_ = &cmd;
   } else {
-    LIEF_WARN("Weird: LC_FUNCTION_VARIANTS is not in the __LINKEDIT segment ({})", linkedit->name());
+    LIEF_WARN("Weird: LC_FUNCTION_VARIANTS is not in the __LINKEDIT segment ({})",
+              linkedit->name());
   }

   SpanStream stream(cmd.content_);
@@ -3995,19 +4326,24 @@ ok_error_t BinaryParser::post_process(FunctionVariantFixups& cmd) {
   LIEF_DEBUG("[^] Post processing LC_FUNCTION_VARIANT_FIXUPS");

   SegmentCommand* linkedit = config_.from_dyld_shared_cache ?
-                             binary_->get_segment("__LINKEDIT") :
-                             binary_->segment_from_offset(cmd.data_offset());
+                                 binary_->get_segment("__LINKEDIT") :
+                                 binary_->segment_from_offset(cmd.data_offset());

   if (linkedit == nullptr) {
-    LIEF_WARN("Can't find the segment that contains the LC_FUNCTION_VARIANT_FIXUPS (offset=0x{:016x})", cmd.data_offset());
+    LIEF_WARN("Can't find the segment that contains the "
+              "LC_FUNCTION_VARIANT_FIXUPS (offset={:#018x})",
+              cmd.data_offset());
     return make_error_code(lief_errors::not_found);
   }

-  span<uint8_t> content = linkedit->writable_content();
+  span<uint8_t> content = linkedit->content();

   const uint64_t rel_offset = cmd.data_offset() - linkedit->file_offset();
-  if (rel_offset > content.size() || (rel_offset + cmd.data_size()) > content.size()) {
-    LIEF_ERR("The LC_FUNCTION_VARIANT_FIXUPS is out of bounds of the segment '{}'", linkedit->name());
+  if (rel_offset > content.size() ||
+      (rel_offset + cmd.data_size()) > content.size())
+  {
+    LIEF_ERR("The LC_FUNCTION_VARIANT_FIXUPS is out of bounds of the segment '{}'",
+             linkedit->name());
     return make_error_code(lief_errors::read_out_of_bound);
   }

@@ -4016,27 +4352,98 @@ ok_error_t BinaryParser::post_process(FunctionVariantFixups& cmd) {
   if (LinkEdit::segmentof(*linkedit)) {
     static_cast<LinkEdit*>(linkedit)->func_variant_fixups_ = &cmd;
   } else {
-    LIEF_WARN("Weird: LC_FUNCTION_VARIANT_FIXUPS is not in the __LINKEDIT segment ({})", linkedit->name());
+    LIEF_WARN(
+        "Weird: LC_FUNCTION_VARIANT_FIXUPS is not in the __LINKEDIT segment ({})",
+        linkedit->name()
+    );
+  }
+
+  SpanStream stream(cmd.content_);
+  stream.set_endian_swap(stream_->should_swap());
+  cmd.fixups_ = FunctionVariantFixups::parse_payload(stream);
+
+  // Resolve the segment referenced by each fixup
+  auto segments = binary_->segments();
+  for (FunctionVariantFixups::Fixup& fixup : cmd.fixups()) {
+    if (fixup.seg_index() < segments.size()) {
+      fixup.segment(segments[fixup.seg_index()]);
+    }
+  }
+
+  return ok();
+}
+
+template<class MACHO_T>
+ok_error_t BinaryParser::post_process(LazyLoadDylibInfo& cmd) {
+  LIEF_DEBUG("[^] Post processing LC_LAZY_LOAD_DYLIB_INFO");
+
+  SegmentCommand* linkedit = config_.from_dyld_shared_cache ?
+                                 binary_->get_segment("__LINKEDIT") :
+                                 binary_->segment_from_offset(cmd.data_offset());
+
+  if (linkedit == nullptr) {
+    LIEF_WARN("Can't find the segment that contains the "
+              "LC_LAZY_LOAD_DYLIB_INFO (offset={:#018x})",
+              cmd.data_offset());
+    return make_error_code(lief_errors::not_found);
+  }
+
+  span<uint8_t> content = linkedit->content();
+
+  const uint64_t rel_offset = cmd.data_offset() - linkedit->file_offset();
+  if (rel_offset > content.size() ||
+      (rel_offset + cmd.data_size()) > content.size())
+  {
+    LIEF_ERR("The LC_LAZY_LOAD_DYLIB_INFO is out of bounds of the segment '{}'",
+             linkedit->name());
+    return make_error_code(lief_errors::read_out_of_bound);
+  }
+
+  cmd.content_ = content.subspan(rel_offset, cmd.data_size());
+
+  if (LinkEdit::segmentof(*linkedit)) {
+    static_cast<LinkEdit*>(linkedit)->lazy_load_dylibs_.push_back(&cmd);
+  } else {
+    LIEF_WARN(
+        "Weird: LC_LAZY_LOAD_DYLIB_INFO is not in the __LINKEDIT segment ({})",
+        linkedit->name()
+    );
   }

   SpanStream stream(cmd.content_);
   stream.set_endian_swap(stream_->should_swap());
-  // TODO
+  cmd.parse_payload(stream);

+  const auto ptr_fmt = DYLD_CHAINED_PTR_FORMAT(cmd.pointer_format_);
+  const size_t ptr_sz = ChainedPointerAnalysis::ptr_size(ptr_fmt);
+  if (!config_.from_dyld_shared_cache && cmd.chain_start_image_offset() != 0 &&
+      (ptr_sz == sizeof(uint32_t) || ptr_sz == sizeof(uint64_t)))
+  {
+    const uint64_t chain_va =
+        binary_->imagebase() + cmd.chain_start_image_offset();
+    if (SegmentCommand* seg = binary_->segment_from_virtual_address(chain_va)) {
+      ok_error_t is_ok = cmd.walk_fixups(chain_va, *seg);
+      if (!is_ok) {
+        LIEF_WARN(
+            "Error while resolving the fixups for LC_LAZY_LOAD_DYLIB_INFO: {}",
+            cmd.load_path()
+        );
+      }
+    }
+  }
   return ok();
 }


 /* This method is needed since the C++ copy constructor of ChainedBindingInfo
  * does not (on purpose) copy the pointers associated with the object.
- * Thus we need this helper to maker sure that in the context on the parser,
+ * Thus we need this helper to make sure that in the context of the parser,
  * the pointers are correctly copied.
  */
 void BinaryParser::copy_from(ChainedBindingInfo& to, ChainedBindingInfo& from) {
   to.segment_ = from.segment_;
-  to.symbol_  = from.symbol_;
+  to.symbol_ = from.symbol_;
   to.library_ = from.library_;
 }

 }
-}
diff --git a/deps/LIEF/src/MachO/BindingInfo.cpp b/deps/LIEF/src/MachO/BindingInfo.cpp
index 0d266216f4d..9055e9312fd 100644
--- a/deps/LIEF/src/MachO/BindingInfo.cpp
+++ b/deps/LIEF/src/MachO/BindingInfo.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -21,16 +21,15 @@
 #include "LIEF/MachO/BindingInfo.hpp"
 #include "LIEF/MachO/DylibCommand.hpp"

-namespace LIEF {
-namespace MachO {
+
+namespace LIEF::MachO {

 BindingInfo::BindingInfo(const BindingInfo& other) :
   Object{other},
   library_ordinal_{other.library_ordinal_},
   addend_{other.addend_},
   is_weak_import_{other.is_weak_import_},
-  address_{other.address_}
-{}
+  address_{other.address_} {}


 BindingInfo& BindingInfo::operator=(const BindingInfo& other) {
@@ -46,13 +45,13 @@ BindingInfo& BindingInfo::operator=(const BindingInfo& other) {
 }

 void BindingInfo::swap(BindingInfo& other) noexcept {
-  std::swap(segment_,         other.segment_);
-  std::swap(symbol_,          other.symbol_);
+  std::swap(segment_, other.segment_);
+  std::swap(symbol_, other.symbol_);
   std::swap(library_ordinal_, other.library_ordinal_);
-  std::swap(addend_,          other.addend_);
-  std::swap(is_weak_import_,  other.is_weak_import_);
-  std::swap(library_,         other.library_);
-  std::swap(address_,         other.address_);
+  std::swap(addend_, other.addend_);
+  std::swap(is_weak_import_, other.is_weak_import_);
+  std::swap(library_, other.library_);
+  std::swap(address_, other.address_);
 }

 void BindingInfo::accept(Visitor& visitor) const {
@@ -60,8 +59,8 @@ void BindingInfo::accept(Visitor& visitor) const {
 }

 std::ostream& operator<<(std::ostream& os, const BindingInfo& info) {
-  os << fmt::format("address=0x{:08x}, addend=0x{:x}",
-                    info.address(), info.addend());
+  os << fmt::format("address={:#010x}, addend={:#x}", info.address(),
+                    info.addend());
   if (const Symbol* sym = info.symbol()) {
     os << fmt::format("  symbol={}", sym->name());
   }
@@ -75,4 +74,3 @@ std::ostream& operator<<(std::ostream& os, const BindingInfo& info) {
 }

 }
-}
diff --git a/deps/LIEF/src/MachO/BindingInfoIterator.cpp b/deps/LIEF/src/MachO/BindingInfoIterator.cpp
index 0701fea2d16..ae22e0b0199 100644
--- a/deps/LIEF/src/MachO/BindingInfoIterator.cpp
+++ b/deps/LIEF/src/MachO/BindingInfoIterator.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -27,12 +27,9 @@ namespace LIEF::MachO {

 const BindingInfo& BindingInfoIterator::operator*() const {
   switch (origin_) {
-    case ORIGIN::DYLD:
-      return *dyld_info_->binding_info_.at(pos_);
-    case ORIGIN::CHAINED_FIXUPS:
-      return *chained_fixups_->all_bindings_.at(pos_);
-    case ORIGIN::INDIRECT:
-      return *binary_->indirect_bindings_.at(pos_);
+    case ORIGIN::DYLD: return *dyld_info_->binding_info_.at(pos_);
+    case ORIGIN::CHAINED_FIXUPS: return *chained_fixups_->all_bindings_.at(pos_);
+    case ORIGIN::INDIRECT: return *binary_->indirect_bindings_.at(pos_);
     case ORIGIN::NONE:
       logging::fatal_error("Can't return a BindingInfo for a NONE iterator");
   }
diff --git a/deps/LIEF/src/MachO/BuildToolVersion.cpp b/deps/LIEF/src/MachO/BuildToolVersion.cpp
index 43d6f72bf39..45b14dadb32 100644
--- a/deps/LIEF/src/MachO/BuildToolVersion.cpp
+++ b/deps/LIEF/src/MachO/BuildToolVersion.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -20,17 +20,14 @@
 #include "frozen.hpp"
 #include "spdlog/fmt/fmt.h"

-namespace LIEF {
-namespace MachO {
+
+namespace LIEF::MachO {

 BuildToolVersion::BuildToolVersion(const details::build_tool_version& tool) :
   tool_{BuildToolVersion::TOOLS(tool.tool)},
-  version_{{
-    static_cast<uint32_t>((tool.version >> 16) & 0xFFFF),
-    static_cast<uint32_t>((tool.version >>  8) & 0xFF),
-    static_cast<uint32_t>((tool.version >>  0) & 0xFF)
-  }}
-{}
+  version_{{static_cast<uint32_t>((tool.version >> 16) & 0xFFFF),
+            static_cast<uint32_t>((tool.version >> 8) & 0xFF),
+            static_cast<uint32_t>((tool.version >> 0) & 0xFF)}} {}

 void BuildToolVersion::accept(Visitor& visitor) const {
   visitor.visit(*this);
@@ -44,28 +41,19 @@ std::ostream& operator<<(std::ostream& os, const BuildToolVersion& tool) {
     tool_str += fmt::format("({})", (uint32_t)tool.tool());
   }

-  os << fmt::format("{} ({}.{}.{})",
-        tool_str, version[0], version[1], version[2]);
+  os << fmt::format("{} ({}.{}.{})", tool_str, version[0], version[1], version[2]);
   return os;
 }

 const char* to_string(BuildToolVersion::TOOLS tool) {
-  #define ENTRY(X) std::pair(BuildToolVersion::TOOLS::X, #X)
-  STRING_MAP enums2str {
-    ENTRY(UNKNOWN),
-    ENTRY(CLANG),
-    ENTRY(SWIFT),
-    ENTRY(LD),
-    ENTRY(LLD),
-    ENTRY(METAL),
-    ENTRY(AIRLLD),
-    ENTRY(AIRNT),
-    ENTRY(AIRNT_PLUGIN),
-    ENTRY(AIRPACK),
-    ENTRY(GPUARCHIVER),
-    ENTRY(METAL_FRAMEWORK),
+#define ENTRY(X) std::pair(BuildToolVersion::TOOLS::X, #X)
+  STRING_MAP enums2str{
+      ENTRY(UNKNOWN), ENTRY(CLANG),       ENTRY(SWIFT),
+      ENTRY(LD),      ENTRY(LLD),         ENTRY(METAL),
+      ENTRY(AIRLLD),  ENTRY(AIRNT),       ENTRY(AIRNT_PLUGIN),
+      ENTRY(AIRPACK), ENTRY(GPUARCHIVER), ENTRY(METAL_FRAMEWORK),
   };
-  #undef ENTRY
+#undef ENTRY

   if (auto it = enums2str.find(tool); it != enums2str.end()) {
     return it->second;
@@ -75,4 +63,3 @@ const char* to_string(BuildToolVersion::TOOLS tool) {
 }

 }
-}
diff --git a/deps/LIEF/src/MachO/BuildVersion.cpp b/deps/LIEF/src/MachO/BuildVersion.cpp
index 13c30dc373c..5bd298bf76c 100644
--- a/deps/LIEF/src/MachO/BuildVersion.cpp
+++ b/deps/LIEF/src/MachO/BuildVersion.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -22,34 +22,30 @@
 #include "LIEF/MachO/BuildVersion.hpp"
 #include "MachO/Structures.hpp"

-namespace LIEF {
-namespace MachO {
+
+namespace LIEF::MachO {

 BuildVersion::BuildVersion(const details::build_version_command& ver) :
   LoadCommand::LoadCommand{LoadCommand::TYPE(ver.cmd), ver.cmdsize},
   platform_{PLATFORMS(ver.platform)},
-  minos_{{
-    static_cast<uint32_t>((ver.minos >> 16) & 0xFFFF),
-    static_cast<uint32_t>((ver.minos >>  8) & 0xFF),
-    static_cast<uint32_t>((ver.minos >>  0) & 0xFF)
-  }},
-  sdk_{{
-    static_cast<uint32_t>((ver.sdk >> 16) & 0xFFFF),
-    static_cast<uint32_t>((ver.sdk >>  8) & 0xFF),
-    static_cast<uint32_t>((ver.sdk >>  0) & 0xFF)
-  }}
-{
-}
+  minos_{{static_cast<uint32_t>((ver.minos >> 16) & 0xFFFF),
+          static_cast<uint32_t>((ver.minos >> 8) & 0xFF),
+          static_cast<uint32_t>((ver.minos >> 0) & 0xFF)}},
+  sdk_{{static_cast<uint32_t>((ver.sdk >> 16) & 0xFFFF),
+        static_cast<uint32_t>((ver.sdk >> 8) & 0xFF),
+        static_cast<uint32_t>((ver.sdk >> 0) & 0xFF)}} {}

-BuildVersion::BuildVersion(const PLATFORMS platform,
-                           const version_t &minos,
-                           const version_t &sdk,
-                           const tools_list_t &tools) :
-  LoadCommand::LoadCommand{LoadCommand::TYPE::BUILD_VERSION,
-                           static_cast<uint32_t>(sizeof(details::build_version_command) +
-                           sizeof(details::build_tool_version) * tools.size())},
-  platform_{platform}, minos_{minos}, sdk_{sdk}, tools_{tools}
-{
+BuildVersion::BuildVersion(const PLATFORMS platform, const version_t& minos,
+                           const version_t& sdk, const tools_list_t& tools) :
+  LoadCommand::LoadCommand{
+      LoadCommand::TYPE::BUILD_VERSION,
+      static_cast<uint32_t>(sizeof(details::build_version_command) +
+                            sizeof(details::build_tool_version) * tools.size())
+  },
+  platform_{platform},
+  minos_{minos},
+  sdk_{sdk},
+  tools_{tools} {
   original_data_.resize(size());
 }

@@ -69,37 +65,37 @@ std::ostream& BuildVersion::print(std::ostream& os) const {
 }

 const char* to_string(BuildVersion::PLATFORMS e) {
-  #define ENTRY(X) std::pair(BuildVersion::PLATFORMS::X, #X)
-  STRING_MAP enums2str {
-    ENTRY(UNKNOWN),
-    ENTRY(MACOS),
-    ENTRY(IOS),
-    ENTRY(TVOS),
-    ENTRY(WATCHOS),
-    ENTRY(BRIDGEOS),
-    ENTRY(MAC_CATALYST),
-    ENTRY(IOS_SIMULATOR),
-    ENTRY(TVOS_SIMULATOR),
-    ENTRY(WATCHOS_SIMULATOR),
-    ENTRY(DRIVERKIT),
-    ENTRY(VISIONOS),
-    ENTRY(VISIONOS_SIMULATOR),
-    ENTRY(FIRMWARE),
-    ENTRY(SEPOS),
-    ENTRY(MACOS_EXCLAVE_CORE),
-    ENTRY(MACOS_EXCLAVE_KIT),
-    ENTRY(IOS_EXCLAVE_CORE),
-    ENTRY(IOS_EXCLAVE_KIT),
-    ENTRY(TVOS_EXCLAVE_CORE),
-    ENTRY(TVOS_EXCLAVE_KIT),
-    ENTRY(WATCHOS_EXCLAVE_CORE),
-    ENTRY(WATCHOS_EXCLAVE_KIT),
-    ENTRY(VISIONOS_EXCLAVE_CORE),
-    ENTRY(VISIONOS_EXCLAVE_KIT),
+#define ENTRY(X) std::pair(BuildVersion::PLATFORMS::X, #X)
+  STRING_MAP enums2str{
+      ENTRY(UNKNOWN),
+      ENTRY(MACOS),
+      ENTRY(IOS),
+      ENTRY(TVOS),
+      ENTRY(WATCHOS),
+      ENTRY(BRIDGEOS),
+      ENTRY(MAC_CATALYST),
+      ENTRY(IOS_SIMULATOR),
+      ENTRY(TVOS_SIMULATOR),
+      ENTRY(WATCHOS_SIMULATOR),
+      ENTRY(DRIVERKIT),
+      ENTRY(VISIONOS),
+      ENTRY(VISIONOS_SIMULATOR),
+      ENTRY(FIRMWARE),
+      ENTRY(SEPOS),
+      ENTRY(MACOS_EXCLAVE_CORE),
+      ENTRY(MACOS_EXCLAVE_KIT),
+      ENTRY(IOS_EXCLAVE_CORE),
+      ENTRY(IOS_EXCLAVE_KIT),
+      ENTRY(TVOS_EXCLAVE_CORE),
+      ENTRY(TVOS_EXCLAVE_KIT),
+      ENTRY(WATCHOS_EXCLAVE_CORE),
+      ENTRY(WATCHOS_EXCLAVE_KIT),
+      ENTRY(VISIONOS_EXCLAVE_CORE),
+      ENTRY(VISIONOS_EXCLAVE_KIT),

-    ENTRY(ANY),
+      ENTRY(ANY),
   };
-  #undef ENTRY
+#undef ENTRY

   if (auto it = enums2str.find(e); it != enums2str.end()) {
     return it->second;
@@ -108,4 +104,3 @@ const char* to_string(BuildVersion::PLATFORMS e) {
 }

 }
-}
diff --git a/deps/LIEF/src/MachO/Builder.cpp b/deps/LIEF/src/MachO/Builder.cpp
index ad731e296b0..080866f6e3f 100644
--- a/deps/LIEF/src/MachO/Builder.cpp
+++ b/deps/LIEF/src/MachO/Builder.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -20,7 +20,7 @@

 #include "logging.hpp"

-#include "LIEF/BinaryStream/BinaryStream.hpp"
+#include "LIEF/Abstract/Header.hpp"

 #include "LIEF/MachO/Builder.hpp"
 #include "LIEF/MachO/FatBinary.hpp"
@@ -32,39 +32,59 @@
 #include "MachO/Builder.tcc"
 #include "MachO/Binary.tcc"

-namespace LIEF {
-namespace MachO {
+namespace LIEF::MachO {

 Builder::~Builder() = default;

 Builder::Builder(Binary& binary, config_t config) :
   binary_{&binary},
-  config_{std::move(config)}
-{
-  if (binary_->original_size() != (uint64_t)-1) {
-    raw_.reserve(binary_->original_size());
-  }
+  config_{config} {
+  raw_.reserve(std::min<uint64_t>(binary_->original_size(), 1_GB));
   binaries_.push_back(binary_);
 }

 Builder::Builder(std::vector<Binary*> binaries, config_t config) :
   binaries_{std::move(binaries)},
-  config_{std::move(config)}
-{}
+  config_{config} {}

 ok_error_t Builder::build() {
-  return binary_->is64_ ?
-         build<details::MachO64>() :
-         build<details::MachO32>();
+  return binary_->is64_ ? build<details::MachO64>() : build<details::MachO32>();
 }

-template <typename T>
+bool Builder::should_swap() const {
+  if (binary_ == nullptr) {
+    return false;
+  }
+  switch (binary_->get_abstract_header().endianness()) {
+#ifdef __BYTE_ORDER__
+  #if defined(__ORDER_LITTLE_ENDIAN__) &&                                         \
+      (__BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__)
+    case LIEF::Header::ENDIANNESS::BIG:
+  #elif defined(__ORDER_BIG_ENDIAN__) && (__BYTE_ORDER__ == __ORDER_BIG_ENDIAN__)
+    case LIEF::Header::ENDIANNESS::LITTLE:
+  #endif
+      return true;
+#else
+    // If there is no __BYTE_ORDER__ (e.g. MSVC), assume little-endian
+    case LIEF::Header::ENDIANNESS::BIG: return true;
+#endif
+    default:
+      // we're good (or don't know what to do), consider bytes are in the
+      // expected order
+      return false;
+  }
+}
+
+template<typename T>
 ok_error_t Builder::build() {
   if (binaries_.size() > 1) {
-    LIEF_ERR("More than one binary!");
+    LIEF_ERR("More than one binary");
     return make_error_code(lief_errors::build_error);
   }

+  raw_.set_endian_swap(should_swap());
+  linkedit_.set_endian_swap(should_swap());
+
   // Check if we need to extend some commands
   {
     int32_t original_size = 0;
@@ -76,10 +96,11 @@ ok_error_t Builder::build() {

     int32_t delta = required_size - original_size;

-    LIEF_DEBUG("Original commands size:   0x{:08x}", original_size);
-    LIEF_DEBUG("Required commands size:   0x{:08x}", required_size);
-    LIEF_DEBUG("Delta:                    0x{:08x}", delta);
-    LIEF_DEBUG("available_command_space:  0x{:08x}", binary_->available_command_space_);
+    LIEF_DEBUG("Original commands size:   {:#010x}", original_size);
+    LIEF_DEBUG("Required commands size:   {:#010x}", required_size);
+    LIEF_DEBUG("Delta:                    {:#010x}", delta);
+    LIEF_DEBUG("available_command_space:  {:#010x}",
+               binary_->available_command_space_);
     if (delta > 0) {
       ok_error_t is_ok = binary_->ensure_command_space(delta);
       if (!is_ok) {
@@ -87,7 +108,8 @@ ok_error_t Builder::build() {
       }
       uint64_t cmd_offset = sizeof(typename T::header);
       for (std::unique_ptr<LoadCommand>& cmd : binary_->commands_) {
-        const size_t cmd_size = std::max(cmd->original_data_.size(), get_cmd_size<T>(*cmd));
+        const size_t cmd_size =
+            std::max(cmd->original_data_.size(), get_cmd_size<T>(*cmd));
         cmd->command_offset_ = cmd_offset;
         cmd_offset += cmd_size;
         if (cmd->original_data_.size() < cmd_size) {
@@ -98,7 +120,7 @@ ok_error_t Builder::build() {
         }
       }
       binary_->header().sizeof_cmds(required_size);
-      }
+    }
   }

   build_uuid();
@@ -197,18 +219,20 @@ ok_error_t Builder::build_fat() {

   build_fat_header();
   constexpr auto fat_header_sz = sizeof(details::fat_header);
-  constexpr auto fat_arch_sz   = sizeof(details::fat_arch);
+  constexpr auto fat_arch_sz = sizeof(details::fat_arch);
   for (size_t i = 0; i < binaries_.size(); ++i) {
-    auto* arch = reinterpret_cast<details::fat_arch*>(raw_.raw().data() + fat_header_sz + i * fat_arch_sz);
+    auto* arch =
+        reinterpret_cast<details::fat_arch*>(raw_.raw().data() + fat_header_sz +
+                                             i * fat_arch_sz);
     std::vector<uint8_t> raw = build_raw(*binaries_[i], config_);

     auto alignment = get_swapped_endian<uint32_t>(arch->align);
     uint32_t offset = align(raw_.size(), 1llu << alignment);

     arch->offset = get_swapped_endian<uint32_t>(offset);
-    arch->size   = get_swapped_endian<uint32_t>(raw.size());
+    arch->size = get_swapped_endian<uint32_t>(raw.size());
     raw_.seekp(offset);
-    raw_.write(std::move(raw));
+    raw_.write(raw);
   }
   return ok();
 }
@@ -216,27 +240,26 @@ ok_error_t Builder::build_fat() {
 ok_error_t Builder::build_fat_header() {
   LIEF_DEBUG("[+] Building Fat Header");
   static constexpr uint32_t ALIGNMENT = 14; // 4096 / 0x1000
-  details::fat_header header;
-
-  std::memset(&header, 0, sizeof(details::fat_header));
+  details::fat_header header{};

-  header.magic     = static_cast<uint32_t>(MACHO_TYPES::CIGAM_FAT);
+  header.magic = static_cast<uint32_t>(MACHO_TYPES::CIGAM_FAT);
   header.nfat_arch = get_swapped_endian<uint32_t>(binaries_.size());

   raw_.seekp(0);
-  raw_.write(reinterpret_cast<const uint8_t*>(&header), sizeof(details::fat_header));
+  raw_.write(reinterpret_cast<const uint8_t*>(&header),
+             sizeof(details::fat_header));

   for (Binary* binary : binaries_) {
     const Header& header = binary->header();
-    details::fat_arch arch_header;
-    std::memset(&arch_header, 0, sizeof(details::fat_arch));
+    details::fat_arch arch_header{};

-    arch_header.cputype    = get_swapped_endian((uint32_t)header.cpu_type());
+    arch_header.cputype = get_swapped_endian((uint32_t)header.cpu_type());
     arch_header.cpusubtype = get_swapped_endian((uint32_t)header.cpu_subtype());
-    arch_header.offset     = 0;
-    arch_header.size       = 0;
-    arch_header.align      = get_swapped_endian<uint32_t>(ALIGNMENT);
-    raw_.write(reinterpret_cast<const uint8_t*>(&arch_header), sizeof(details::fat_arch));
+    arch_header.offset = 0;
+    arch_header.size = 0;
+    arch_header.align = get_swapped_endian<uint32_t>(ALIGNMENT);
+    raw_.write(reinterpret_cast<const uint8_t*>(&arch_header),
+               sizeof(details::fat_arch));
   }
   return ok();
 }
@@ -245,8 +268,8 @@ ok_error_t Builder::build_load_commands() {
   const auto& binary = binaries_.back();
   // Check if the number of segments is correct
   if (binary->header().nb_cmds() != binary->commands_.size()) {
-    LIEF_WARN("Error: header.nb_cmds = {:d} vs number of commands #{:d}",
-              binary->header().nb_cmds(), binary->commands_.size());
+    LIEF_WARN("Header nb_cmds mismatch: {:d} vs #{:d}", binary->header().nb_cmds(),
+              binary->commands_.size());
     return make_error_code(lief_errors::build_error);
   }

@@ -268,9 +291,8 @@ ok_error_t Builder::build_load_commands() {
     const std::unique_ptr<LoadCommand>& command = binary_->commands_[i];
     span<const uint8_t> data = command->data();

-    LIEF_DEBUG("Writing command #{:02d} {:30} offset=0x{:08x} size=0x{:08x}",
-               i, to_string(command->command()), (uint64_t)raw_.tellp(),
-               data.size());
+    LIEF_DEBUG("Writing command #{:02d} {:30} offset={:#010x} size={:#010x}", i,
+               to_string(command->command()), (uint64_t)raw_.tellp(), data.size());

     raw_.write(data);
   }
@@ -284,23 +306,27 @@ ok_error_t Builder::build_uuid() {
     return ok();
   }

-  details::uuid_command raw_cmd;
-  std::memset(&raw_cmd, 0, sizeof(details::uuid_command));
+  details::uuid_command raw_cmd{};

-  raw_cmd.cmd     = static_cast<uint32_t>(uuid_cmd->command());
-  raw_cmd.cmdsize = static_cast<uint32_t>(uuid_cmd->size()); // sizeof(uuid_command)
+  raw_cmd.cmd = static_cast<uint32_t>(uuid_cmd->command());
+  raw_cmd.cmdsize =
+      static_cast<uint32_t>(uuid_cmd->size()); // sizeof(uuid_command)

   const uuid_t& uuid = uuid_cmd->uuid();
-  std::copy(std::begin(uuid), std::end(uuid), raw_cmd.uuid);
+  std::copy(uuid.begin(), uuid.end(), raw_cmd.uuid);

   if (uuid_cmd->size() < sizeof(details::uuid_command)) {
-    LIEF_WARN("Size of original data is different for '{}' -> Skip!", to_string(uuid_cmd->command()));
+    LIEF_WARN("Original data size mismatch for '{}', skipping",
+              to_string(uuid_cmd->command()));
     return make_error_code(lief_errors::build_error);
   }

-  std::copy(
-      reinterpret_cast<const uint8_t*>(&raw_cmd), reinterpret_cast<const uint8_t*>(&raw_cmd) + sizeof(details::uuid_command),
-      uuid_cmd->original_data_.data());
+  swap_endian_if_needed(raw_cmd);
+
+  std::copy(reinterpret_cast<const uint8_t*>(&raw_cmd),
+            reinterpret_cast<const uint8_t*>(&raw_cmd) +
+                sizeof(details::uuid_command),
+            uuid_cmd->original_data_.data());
   return ok();
 }

@@ -310,11 +336,12 @@ const std::vector<uint8_t>& Builder::get_build() {

 ok_error_t Builder::write(Binary& binary, const std::string& filename) {
   config_t config;
-  return write(binary, filename, std::move(config));
+  return write(binary, filename, config);
 }

-ok_error_t Builder::write(Binary& binary, const std::string& filename, config_t config) {
-  Builder builder{binary, std::move(config)};
+ok_error_t Builder::write(Binary& binary, const std::string& filename,
+                          config_t config) {
+  Builder builder{binary, config};
   builder.build();
   builder.write(filename);
   return ok();
@@ -322,11 +349,11 @@ ok_error_t Builder::write(Binary& binary, const std::string& filename, config_t

 ok_error_t Builder::write(Binary& binary, std::ostream& out) {
   config_t config;
-  return write(binary, out, std::move(config));
+  return write(binary, out, config);
 }

 ok_error_t Builder::write(Binary& binary, std::ostream& out, config_t config) {
-  Builder builder{binary, std::move(config)};
+  Builder builder{binary, config};
   builder.build();
   builder.write(out);
   return ok();
@@ -337,26 +364,26 @@ ok_error_t Builder::write(Binary& binary, std::vector<uint8_t>& out) {
   return write(binary, out, config);
 }

-ok_error_t Builder::write(Binary& binary, std::vector<uint8_t>& out, config_t config) {
+ok_error_t Builder::write(Binary& binary, std::vector<uint8_t>& out,
+                          config_t config) {
   out = build_raw(binary, config);
   return ok();
 }

 ok_error_t Builder::write(FatBinary& fat, const std::string& filename) {
   config_t config;
-  return write(fat, filename, std::move(config));
+  return write(fat, filename, config);
 }

-ok_error_t Builder::write(FatBinary& fat, const std::string& filename, config_t config) {
+ok_error_t Builder::write(FatBinary& fat, const std::string& filename,
+                          config_t config) {
   std::vector<Binary*> binaries;
   binaries.reserve(fat.binaries_.size());
-  std::transform(std::begin(fat.binaries_), std::end(fat.binaries_),
+  std::transform(fat.binaries_.begin(), fat.binaries_.end(),
                  std::back_inserter(binaries),
-                 [] (const std::unique_ptr<Binary>& bin) {
-                   return bin.get();
-                 });
+                 [](const std::unique_ptr<Binary>& bin) { return bin.get(); });

-  Builder builder{std::move(binaries), std::move(config)};
+  Builder builder{std::move(binaries), config};
   builder.build_fat();
   builder.write(filename);
   return ok();
@@ -367,16 +394,15 @@ ok_error_t Builder::write(FatBinary& fat, std::vector<uint8_t>& out) {
   return write(fat, out, config);
 }

-ok_error_t Builder::write(FatBinary& fat, std::vector<uint8_t>& out, config_t config) {
+ok_error_t Builder::write(FatBinary& fat, std::vector<uint8_t>& out,
+                          config_t config) {
   std::vector<Binary*> binaries;
   binaries.reserve(fat.binaries_.size());
-  std::transform(std::begin(fat.binaries_), std::end(fat.binaries_),
+  std::transform(fat.binaries_.begin(), fat.binaries_.end(),
                  std::back_inserter(binaries),
-                 [] (const std::unique_ptr<Binary>& bin) {
-                   return bin.get();
-                 });
+                 [](const std::unique_ptr<Binary>& bin) { return bin.get(); });

-  Builder builder{std::move(binaries), std::move(config)};
+  Builder builder{std::move(binaries), config};
   builder.build_fat();
   out = builder.get_build();
   return ok();
@@ -384,34 +410,33 @@ ok_error_t Builder::write(FatBinary& fat, std::vector<uint8_t>& out, config_t co

 ok_error_t Builder::write(FatBinary& fat, std::ostream& out) {
   config_t config;
-  return write(fat, out, std::move(config));
+  return write(fat, out, config);
 }

 ok_error_t Builder::write(FatBinary& fat, std::ostream& out, config_t config) {
   std::vector<Binary*> binaries;
   binaries.reserve(fat.binaries_.size());
-  std::transform(std::begin(fat.binaries_), std::end(fat.binaries_),
+  std::transform(fat.binaries_.begin(), fat.binaries_.end(),
                  std::back_inserter(binaries),
-                 [] (const std::unique_ptr<Binary>& bin) {
-                   return bin.get();
-                 });
+                 [](const std::unique_ptr<Binary>& bin) { return bin.get(); });

-  Builder builder{std::move(binaries), std::move(config)};
+  Builder builder{std::move(binaries), config};
   builder.build_fat();
   builder.write(out);
   return ok();
 }

 std::vector<uint8_t> Builder::build_raw(Binary& binary, config_t config) {
-  Builder builder{binary, std::move(config)};
+  Builder builder{binary, config};
   builder.build();
   return builder.get_build();
 }

 ok_error_t Builder::write(const std::string& filename) const {
-  std::ofstream output_file{filename, std::ios::out | std::ios::binary | std::ios::trunc};
+  std::ofstream output_file{filename,
+                            std::ios::out | std::ios::binary | std::ios::trunc};
   if (!output_file) {
-    LIEF_ERR("Can't write back the LIEF Mach-O object into '{}'", filename);
+    LIEF_ERR("Failed to write Mach-O object to '{}'", filename);
     return make_error_code(lief_errors::build_error);
   }
   return write(output_file);
@@ -425,4 +450,3 @@ ok_error_t Builder::write(std::ostream& os) const {
 }

 }
-}
diff --git a/deps/LIEF/src/MachO/Builder.tcc b/deps/LIEF/src/MachO/Builder.tcc
index ccb04f06d64..bb4435f6b65 100644
--- a/deps/LIEF/src/MachO/Builder.tcc
+++ b/deps/LIEF/src/MachO/Builder.tcc
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -13,14 +13,20 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
+#include <algorithm>
+#include <cstring>
+#include <vector>
+
 #include "logging.hpp"
 #include "LIEF/utils.hpp"
+#include "LIEF/BinaryStream/SpanStream.hpp"

 #include "LIEF/MachO/AtomInfo.hpp"
 #include "LIEF/MachO/Binary.hpp"
 #include "LIEF/MachO/BuildVersion.hpp"
 #include "LIEF/MachO/Builder.hpp"
 #include "LIEF/MachO/ChainedBindingInfo.hpp"
+#include "LIEF/MachO/ChainedPointerAnalysis.hpp"
 #include "LIEF/MachO/CodeSignature.hpp"
 #include "LIEF/MachO/CodeSignatureDir.hpp"
 #include "LIEF/MachO/DataInCode.hpp"
@@ -35,6 +41,7 @@
 #include "LIEF/MachO/FunctionStarts.hpp"
 #include "LIEF/MachO/FunctionVariants.hpp"
 #include "LIEF/MachO/FunctionVariantFixups.hpp"
+#include "LIEF/MachO/LazyLoadDylibInfo.hpp"
 #include "LIEF/MachO/LinkEdit.hpp"
 #include "LIEF/MachO/LinkerOptHint.hpp"
 #include "LIEF/MachO/MainCommand.hpp"
@@ -62,8 +69,8 @@

 #include "internal_utils.hpp"

-namespace LIEF {
-namespace MachO {
+
+namespace LIEF::MachO {


 template<class T>
@@ -84,12 +91,14 @@ size_t Builder::get_cmd_size(const LoadCommand& cmd) {
   }

   if (const auto* subframework = cmd.cast<SubFramework>()) {
-    return align(sizeof(details::sub_framework_command) + subframework->umbrella().size() + 1,
+    return align(sizeof(details::sub_framework_command) +
+                     subframework->umbrella().size() + 1,
                  sizeof(typename T::uint));
   }

   if (const auto* subclient = cmd.cast<SubClient>()) {
-    return align(sizeof(details::sub_client_command) + subclient->client().size() + 1,
+    return align(sizeof(details::sub_client_command) + subclient->client().size() +
+                     1,
                  sizeof(typename T::uint));
   }

@@ -100,7 +109,8 @@ size_t Builder::get_cmd_size(const LoadCommand& cmd) {

   if (const auto* bversion = cmd.cast<BuildVersion>()) {
     return align(sizeof(details::build_version_command) +
-                 bversion->tools().size() * sizeof(details::build_tool_version),
+                     bversion->tools().size() *
+                         sizeof(details::build_tool_version),
                  sizeof(typename T::uint));
   }
   return cmd.size();
@@ -109,7 +119,7 @@ size_t Builder::get_cmd_size(const LoadCommand& cmd) {
 template<typename T>
 ok_error_t Builder::build_linkedit() {
   // NOTE(romain): the order in which the linkedit_data_command are placed
-  // in the __LINKEDIT segment, needs to follow cctools / checkout.c / dyld_order()
+  // in the __LINKEDIT segment needs to follow cctools / checkout.c / dyld_order()
   SegmentCommand* linkedit = binary_->get_segment("__LINKEDIT");
   if (linkedit == nullptr) {
     return ok();
@@ -133,6 +143,9 @@ ok_error_t Builder::build_linkedit() {
   if (auto* split_info = binary_->segment_split_info()) {
     build<T>(*split_info);
   }
+  for (LazyLoadDylibInfo& lazy : binary_->lazy_load_dylib_infos()) {
+    build<T>(lazy);
+  }
   if (auto* fstart = binary_->function_starts()) {
     build<T>(*fstart);
   }
@@ -159,14 +172,12 @@ ok_error_t Builder::build_linkedit() {
   }

   const uint64_t original_size = linkedit->file_size();
-  const uint64_t new_size      = linkedit_.size();
+  const uint64_t new_size = linkedit_.size();
   if (original_size < new_size) {
     LIEF_INFO("Delta __LINKEDIT data size: +{}", new_size - original_size);
-  }
-  else if (original_size > new_size) {
+  } else if (original_size > new_size) {
     LIEF_INFO("Delta __LINKEDIT data size: -{}", original_size - new_size);
-  }
-  else {
+  } else {
     LIEF_INFO("__LINKEDIT data built with the same size: {}", new_size);
   }
   return ok();
@@ -174,49 +185,50 @@ ok_error_t Builder::build_linkedit() {

 template<typename T>
 ok_error_t Builder::build_segments() {
-  using section_t  = typename T::section;
-  using segment_t  = typename T::segment_command;
-  using uint__     = typename T::uint;
+  using section_t = typename T::section;
+  using segment_t = typename T::segment_command;
+  using uint__ = typename T::uint;

   LIEF_DEBUG("[+] Rebuilding segments");
   Binary* binary = binaries_.back();
   for (SegmentCommand& segment : binary->segments()) {
     LIEF_DEBUG("{}", segment.name());
-    segment_t segment_header;
-    std::memset(&segment_header, 0, sizeof(segment_header));
+    segment_t segment_header{};

-    segment_header.cmd      = static_cast<uint32_t>(segment.command());
-    segment_header.cmdsize  = static_cast<uint32_t>(segment.size());
+    segment_header.cmd = static_cast<uint32_t>(segment.command());
+    segment_header.cmdsize = static_cast<uint32_t>(segment.size());

     const std::string& seg_name = segment.name();
-    const uint32_t segname_length = std::min<uint32_t>(seg_name.size() + 1,
-                                                       sizeof(segment_header.segname));
+    const uint32_t segname_length =
+        std::min<uint32_t>(seg_name.size() + 1, sizeof(segment_header.segname));
     std::copy(seg_name.c_str(), seg_name.c_str() + segname_length,
               std::begin(segment_header.segname));
     if (LinkEdit::segmentof(segment) && config_.linkedit) {
-      segment_header.vmsize   = static_cast<uint__>(align(linkedit_.size(), binary->page_size()));
+      segment_header.vmsize =
+          static_cast<uint__>(align(linkedit_.size(), binary->page_size()));
       segment_header.filesize = static_cast<uint__>(linkedit_.size());
     } else {
       segment_header.vmsize = static_cast<uint__>(segment.virtual_size());
       segment_header.filesize = static_cast<uint__>(segment.file_size());
     }
-    segment_header.vmaddr   = static_cast<uint__>(segment.virtual_address());
-    segment_header.fileoff  = static_cast<uint__>(segment.file_offset());
-    segment_header.maxprot  = static_cast<uint32_t>(segment.max_protection());
+    segment_header.vmaddr = static_cast<uint__>(segment.virtual_address());
+    segment_header.fileoff = static_cast<uint__>(segment.file_offset());
+    segment_header.maxprot = static_cast<uint32_t>(segment.max_protection());
     segment_header.initprot = static_cast<uint32_t>(segment.init_protection());
-    segment_header.nsects   = static_cast<uint32_t>(segment.numberof_sections());
-    segment_header.flags    = static_cast<uint32_t>(segment.flags());
-    LIEF_DEBUG("  - Command offset: 0x{:x}", segment.command_offset());
+    segment_header.nsects = static_cast<uint32_t>(segment.numberof_sections());
+    segment_header.flags = static_cast<uint32_t>(segment.flags());
+    LIEF_DEBUG("  - Command offset: {:#x}", segment.command_offset());

     span<const uint8_t> content = segment.content();
     if (content.size() != segment.file_size() && !LinkEdit::segmentof(segment)) {
-      LIEF_ERR("{} content size and file_size are differents: 0x{:x} vs 0x{:x}",
+      LIEF_ERR("{} content size and file_size are differents: {:#x} vs {:#x}",
                segment.name(), content.size(), segment.file_size());

       return make_error_code(lief_errors::build_error);
     }

     segment.original_data_.clear();
+    swap_endian_if_needed(segment_header);
     std::move(reinterpret_cast<uint8_t*>(&segment_header),
               reinterpret_cast<uint8_t*>(&segment_header) + sizeof(segment_t),
               std::back_inserter(segment.original_data_));
@@ -235,35 +247,37 @@ ok_error_t Builder::build_segments() {
       const std::string& sec_name = section.name();
       const std::string& segment_name = segment.name();
       LIEF_DEBUG("{}", to_string(section));
-      section_t header;
-      std::memset(&header, 0, sizeof(header));
+      section_t header{};

-      const auto segname_length = std::min<uint32_t>(segment_name.size() + 1, sizeof(header.segname));
+      const auto segname_length =
+          std::min<uint32_t>(segment_name.size() + 1, sizeof(header.segname));
       std::copy(segment_name.c_str(), segment_name.c_str() + segname_length,
                 std::begin(header.segname));

-      const auto secname_length = std::min<uint32_t>(sec_name.size() + 1, sizeof(header.sectname));
+      const auto secname_length =
+          std::min<uint32_t>(sec_name.size() + 1, sizeof(header.sectname));
       std::copy(sec_name.c_str(), sec_name.c_str() + secname_length,
                 std::begin(header.sectname));

-      header.addr      = static_cast<uint__>(section.address());
-      header.size      = static_cast<uint__>(section.size());
-      header.offset    = static_cast<uint32_t>(section.offset());
-      header.align     = static_cast<uint32_t>(section.alignment());
-      header.reloff    = static_cast<uint32_t>(section.relocation_offset());
-      header.nreloc    = static_cast<uint32_t>(section.numberof_relocations());
-      header.flags     = static_cast<uint32_t>(section.raw_flags());
+      header.addr = static_cast<uint__>(section.address());
+      header.size = static_cast<uint__>(section.size());
+      header.offset = static_cast<uint32_t>(section.offset());
+      header.align = static_cast<uint32_t>(section.alignment());
+      header.reloff = static_cast<uint32_t>(section.relocation_offset());
+      header.nreloc = static_cast<uint32_t>(section.numberof_relocations());
+      header.flags = static_cast<uint32_t>(section.raw_flags());
       header.reserved1 = static_cast<uint32_t>(section.reserved1());
       header.reserved2 = static_cast<uint32_t>(section.reserved2());

       if constexpr (std::is_same_v<section_t, details::section_64>) {
-        reinterpret_cast<details::section_64*>(&header)->reserved3 = static_cast<uint32_t>(section.reserved3());
+        reinterpret_cast<details::section_64*>(&header)->reserved3 =
+            static_cast<uint32_t>(section.reserved3());
       }

+      swap_endian_if_needed(header);
       std::move(reinterpret_cast<uint8_t*>(&header),
                 reinterpret_cast<uint8_t*>(&header) + sizeof(section_t),
                 std::back_inserter(segment.original_data_));
-
     }
   }
   return ok();
@@ -276,84 +290,88 @@ ok_error_t Builder::build(DylibCommand& library) {

   const uint32_t original_size = library.original_data_.size();

-  const uint32_t raw_size = sizeof(details::dylib_command) + library.name().size() + 1;
+  const uint32_t raw_size =
+      sizeof(details::dylib_command) + library.name().size() + 1;
   const uint32_t size_needed =
-    std::max<uint32_t>(align(raw_size, sizeof(typename T::uint)), original_size);
+      std::max<uint32_t>(align(raw_size, sizeof(typename T::uint)), original_size);
   const uint32_t padding = size_needed - raw_size;

-  if (library.original_data_.size() < size_needed ||
-      library.size() < size_needed)
+  if (library.original_data_.size() < size_needed || library.size() < size_needed)
   {
-    LIEF_WARN("Not enough spaces to rebuild {}. Size required: 0x{:x} vs 0x{:x}",
-              library.name(),  library.original_data_.size(), size_needed);
+    LIEF_WARN("Not enough spaces to rebuild {}. Size required: {:#x} vs {:#x}",
+              library.name(), library.original_data_.size(), size_needed);
   }

-  details::dylib_command raw_cmd;
-  std::memset(&raw_cmd, 0, sizeof(details::dylib_command));
+  details::dylib_command raw_cmd{};

-  raw_cmd.cmd                   = static_cast<uint32_t>(library.command());
-  raw_cmd.cmdsize               = static_cast<uint32_t>(size_needed);
-  raw_cmd.name                  = static_cast<uint32_t>(sizeof(details::dylib_command));
-  raw_cmd.timestamp             = static_cast<uint32_t>(library.timestamp());
-  raw_cmd.current_version       = static_cast<uint32_t>(DylibCommand::version2int(library.current_version()));
-  raw_cmd.compatibility_version = static_cast<uint32_t>(DylibCommand::version2int(library.compatibility_version()));
+  raw_cmd.cmd = static_cast<uint32_t>(library.command());
+  raw_cmd.cmdsize = static_cast<uint32_t>(size_needed);
+  raw_cmd.name = static_cast<uint32_t>(sizeof(details::dylib_command));
+  raw_cmd.timestamp = static_cast<uint32_t>(library.timestamp());
+  raw_cmd.current_version =
+      static_cast<uint32_t>(DylibCommand::version2int(library.current_version()));
+  raw_cmd.compatibility_version = static_cast<uint32_t>(
+      DylibCommand::version2int(library.compatibility_version())
+  );

   library.size_ = size_needed;
   library.original_data_.clear();

   // Write Header
-  std::move(reinterpret_cast<uint8_t*>(&raw_cmd), reinterpret_cast<uint8_t*>(&raw_cmd) + sizeof(raw_cmd),
+  swap_endian_if_needed(raw_cmd);
+  std::move(reinterpret_cast<uint8_t*>(&raw_cmd),
+            reinterpret_cast<uint8_t*>(&raw_cmd) + sizeof(raw_cmd),
             std::back_inserter(library.original_data_));

   // Write String
   const std::string& libname = library.name();
-  std::move(std::begin(libname), std::end(libname),
+  std::move(libname.begin(), libname.end(),
             std::back_inserter(library.original_data_));
   library.original_data_.push_back(0);
-  library.original_data_.insert(std::end(library.original_data_), padding, 0);
+  library.original_data_.insert(library.original_data_.end(), padding, 0);
   return ok();
 }


-template <typename T>
+template<typename T>
 ok_error_t Builder::build(DylinkerCommand& linker) {

   LIEF_DEBUG("Build dylinker '{}'", linker.name());

   const uint32_t original_size = linker.original_data_.size();
-  const uint32_t raw_size = sizeof(details::dylinker_command) + linker.name().size() + 1;
+  const uint32_t raw_size =
+      sizeof(details::dylinker_command) + linker.name().size() + 1;
   const uint32_t size_needed =
-    std::max<uint32_t>(align(raw_size, sizeof(typename T::uint)), original_size);
+      std::max<uint32_t>(align(raw_size, sizeof(typename T::uint)), original_size);
   const uint32_t padding = size_needed - raw_size;

-  if (linker.original_data_.size() < size_needed ||
-      linker.size() < size_needed)
-  {
-    LIEF_WARN("Not enough spaces to rebuild {}. Size required: 0x{:x} vs 0x{:x}",
-              linker.name(),  linker.original_data_.size(), size_needed);
+  if (linker.original_data_.size() < size_needed || linker.size() < size_needed) {
+    LIEF_WARN("Not enough spaces to rebuild {}. Size required: {:#x} vs {:#x}",
+              linker.name(), linker.original_data_.size(), size_needed);
   }

-  details::dylinker_command raw_cmd;
-  std::memset(&raw_cmd, 0, sizeof(raw_cmd));
+  details::dylinker_command raw_cmd{};

-  raw_cmd.cmd     = static_cast<uint32_t>(linker.command());
+  raw_cmd.cmd = static_cast<uint32_t>(linker.command());
   raw_cmd.cmdsize = static_cast<uint32_t>(size_needed);
-  raw_cmd.name    = static_cast<uint32_t>(sizeof(details::dylinker_command));
+  raw_cmd.name = static_cast<uint32_t>(sizeof(details::dylinker_command));

   linker.size_ = size_needed;
   linker.original_data_.clear();

   // Write Header
-  std::move(reinterpret_cast<uint8_t*>(&raw_cmd), reinterpret_cast<uint8_t*>(&raw_cmd) + sizeof(raw_cmd),
+  swap_endian_if_needed(raw_cmd);
+  std::move(reinterpret_cast<uint8_t*>(&raw_cmd),
+            reinterpret_cast<uint8_t*>(&raw_cmd) + sizeof(raw_cmd),
             std::back_inserter(linker.original_data_));

   // Write String
   const std::string& linkpath = linker.name();
-  std::move(std::begin(linkpath), std::end(linkpath),
+  std::move(linkpath.begin(), linkpath.end(),
             std::back_inserter(linker.original_data_));

   linker.original_data_.push_back(0);
-  linker.original_data_.insert(std::end(linker.original_data_), padding, 0);
+  linker.original_data_.insert(linker.original_data_.end(), padding, 0);
   return ok();
 }

@@ -364,23 +382,25 @@ ok_error_t Builder::build(VersionMin& version_min) {
   const uint32_t size_needed = align(raw_size, sizeof(typename T::uint));
   const uint32_t padding = size_needed - raw_size;

-  details::version_min_command raw_cmd;
-  std::memset(&raw_cmd, 0, sizeof(details::version_min_command));
+  details::version_min_command raw_cmd{};

   const VersionMin::version_t& version = version_min.version();
-  const VersionMin::version_t& sdk     = version_min.sdk();
+  const VersionMin::version_t& sdk = version_min.sdk();

-  raw_cmd.cmd     = static_cast<uint32_t>(version_min.command());
+  raw_cmd.cmd = static_cast<uint32_t>(version_min.command());
   raw_cmd.cmdsize = static_cast<uint32_t>(version_min.size());
-  raw_cmd.version = static_cast<uint32_t>(version[0] << 16 | version[1] << 8 | version[2]);
-  raw_cmd.sdk     = static_cast<uint32_t>(sdk[0] << 16 | sdk[1] << 8 | sdk[2]);
+  raw_cmd.version =
+      static_cast<uint32_t>(version[0] << 16 | version[1] << 8 | version[2]);
+  raw_cmd.sdk = static_cast<uint32_t>(sdk[0] << 16 | sdk[1] << 8 | sdk[2]);

   version_min.size_ = sizeof(details::version_min_command);
   version_min.original_data_.clear();
+  swap_endian_if_needed(raw_cmd);
   std::move(reinterpret_cast<uint8_t*>(&raw_cmd),
-            reinterpret_cast<uint8_t*>(&raw_cmd) + sizeof(details::version_min_command),
+            reinterpret_cast<uint8_t*>(&raw_cmd) +
+                sizeof(details::version_min_command),
             std::back_inserter(version_min.original_data_));
-  version_min.original_data_.insert(std::end(version_min.original_data_), padding, 0);
+  version_min.original_data_.insert(version_min.original_data_.end(), padding, 0);
   return ok();
 }

@@ -392,25 +412,26 @@ ok_error_t Builder::build(SourceVersion& source_version) {
   const uint32_t size_needed = align(raw_size, sizeof(typename T::uint));
   const uint32_t padding = size_needed - raw_size;

-  details::source_version_command raw_cmd;
-  std::memset(&raw_cmd, 0, sizeof(details::source_version_command));
+  details::source_version_command raw_cmd{};

   const SourceVersion::version_t& version = source_version.version();
-  raw_cmd.cmd     = static_cast<uint32_t>(source_version.command());
+  raw_cmd.cmd = static_cast<uint32_t>(source_version.command());
   raw_cmd.cmdsize = static_cast<uint32_t>(source_version.size());
-  raw_cmd.version = static_cast<uint64_t>(
-      static_cast<uint64_t>(version[0]) << 40 |
-      static_cast<uint64_t>(version[1]) << 30 |
-      static_cast<uint64_t>(version[2]) << 20 |
-      static_cast<uint64_t>(version[3]) << 10 |
-      static_cast<uint64_t>(version[4]));
+  raw_cmd.version = static_cast<uint64_t>(static_cast<uint64_t>(version[0]) << 40 |
+                                          static_cast<uint64_t>(version[1]) << 30 |
+                                          static_cast<uint64_t>(version[2]) << 20 |
+                                          static_cast<uint64_t>(version[3]) << 10 |
+                                          static_cast<uint64_t>(version[4]));

   source_version.size_ = sizeof(details::source_version_command);
   source_version.original_data_.clear();
+  swap_endian_if_needed(raw_cmd);
   std::move(reinterpret_cast<uint8_t*>(&raw_cmd),
-            reinterpret_cast<uint8_t*>(&raw_cmd) + sizeof(details::source_version_command),
+            reinterpret_cast<uint8_t*>(&raw_cmd) +
+                sizeof(details::source_version_command),
             std::back_inserter(source_version.original_data_));
-  source_version.original_data_.insert(std::end(source_version.original_data_), padding, 0);
+  source_version.original_data_.insert(source_version.original_data_.end(),
+                                       padding, 0);
   return ok();
 }

@@ -421,41 +442,42 @@ ok_error_t Builder::build(RPathCommand& rpath_cmd) {

   const uint32_t original_size = rpath_cmd.original_data_.size();

-  const uint32_t raw_size = sizeof(details::rpath_command) + rpath_cmd.path().size() + 1;
+  const uint32_t raw_size =
+      sizeof(details::rpath_command) + rpath_cmd.path().size() + 1;
   const uint32_t size_needed =
-    std::max<uint32_t>(align(raw_size, sizeof(typename T::uint)), original_size);
+      std::max<uint32_t>(align(raw_size, sizeof(typename T::uint)), original_size);
   const uint32_t padding = size_needed - raw_size;

   if (rpath_cmd.original_data_.size() < size_needed ||
       rpath_cmd.size() < size_needed)
   {
-    LIEF_WARN("Not enough room left to rebuild {}."
-              "required=0x{:x} available=0x{:x}",
+    LIEF_WARN("Not enough room left to rebuild {} "
+              "required={:#x} available={:#x}",
               rpath_cmd.path(), size_needed, rpath_cmd.original_data_.size());
   }


-  details::rpath_command raw_cmd;
-  std::memset(&raw_cmd, 0, sizeof(details::rpath_command));
+  details::rpath_command raw_cmd{};

-  raw_cmd.cmd     = static_cast<uint32_t>(rpath_cmd.command());
+  raw_cmd.cmd = static_cast<uint32_t>(rpath_cmd.command());
   raw_cmd.cmdsize = static_cast<uint32_t>(size_needed);
-  raw_cmd.path    = static_cast<uint32_t>(sizeof(details::rpath_command));
+  raw_cmd.path = static_cast<uint32_t>(sizeof(details::rpath_command));

   rpath_cmd.size_ = size_needed;
   rpath_cmd.original_data_.clear();

   // Write Header
+  swap_endian_if_needed(raw_cmd);
   std::move(reinterpret_cast<uint8_t*>(&raw_cmd),
             reinterpret_cast<uint8_t*>(&raw_cmd) + sizeof(raw_cmd),
             std::back_inserter(rpath_cmd.original_data_));

   // Write String
   const std::string& rpath = rpath_cmd.path();
-  std::move(std::begin(rpath), std::end(rpath),
+  std::move(rpath.begin(), rpath.end(),
             std::back_inserter(rpath_cmd.original_data_));
   rpath_cmd.original_data_.push_back(0);
-  rpath_cmd.original_data_.insert(std::end(rpath_cmd.original_data_), padding, 0);
+  rpath_cmd.original_data_.insert(rpath_cmd.original_data_.end(), padding, 0);
   return ok();
 }

@@ -465,23 +487,23 @@ ok_error_t Builder::build(Routine& routine) {
   using uint__ = typename T::uint;
   LIEF_DEBUG("Build '{}'", to_string(routine.command()));

-  routine_t raw_cmd;
-  std::memset(&raw_cmd, 0, sizeof(routine_t));
+  routine_t raw_cmd{};

-  raw_cmd.cmd       = static_cast<uint32_t>(routine.command());
-  raw_cmd.cmdsize   = static_cast<uint32_t>(routine.size());
+  raw_cmd.cmd = static_cast<uint32_t>(routine.command());
+  raw_cmd.cmdsize = static_cast<uint32_t>(routine.size());

   raw_cmd.init_address = static_cast<uint__>(routine.init_address());
-  raw_cmd.init_module  = static_cast<uint__>(routine.init_module());
-  raw_cmd.reserved1    = static_cast<uint__>(routine.reserved1());
-  raw_cmd.reserved2    = static_cast<uint__>(routine.reserved2());
-  raw_cmd.reserved3    = static_cast<uint__>(routine.reserved3());
-  raw_cmd.reserved4    = static_cast<uint__>(routine.reserved4());
-  raw_cmd.reserved5    = static_cast<uint__>(routine.reserved5());
-  raw_cmd.reserved6    = static_cast<uint__>(routine.reserved6());
+  raw_cmd.init_module = static_cast<uint__>(routine.init_module());
+  raw_cmd.reserved1 = static_cast<uint__>(routine.reserved1());
+  raw_cmd.reserved2 = static_cast<uint__>(routine.reserved2());
+  raw_cmd.reserved3 = static_cast<uint__>(routine.reserved3());
+  raw_cmd.reserved4 = static_cast<uint__>(routine.reserved4());
+  raw_cmd.reserved5 = static_cast<uint__>(routine.reserved5());
+  raw_cmd.reserved6 = static_cast<uint__>(routine.reserved6());

   routine.size_ = sizeof(routine_t);
   routine.original_data_.clear();
+  swap_endian_if_needed(raw_cmd);
   std::move(reinterpret_cast<uint8_t*>(&raw_cmd),
             reinterpret_cast<uint8_t*>(&raw_cmd) + sizeof(routine_t),
             std::back_inserter(routine.original_data_));
@@ -495,28 +517,28 @@ ok_error_t Builder::build(MainCommand& main_cmd) {
   const uint32_t size_needed = align(raw_size, sizeof(typename T::uint));
   const uint32_t padding = size_needed - raw_size;

-  details::entry_point_command raw_cmd;
-  std::memset(&raw_cmd, 0, sizeof(details::entry_point_command));
+  details::entry_point_command raw_cmd{};

-  raw_cmd.cmd       = static_cast<uint32_t>(main_cmd.command());
-  raw_cmd.cmdsize   = static_cast<uint32_t>(main_cmd.size());
-  raw_cmd.entryoff  = static_cast<uint64_t>(main_cmd.entrypoint());
+  raw_cmd.cmd = static_cast<uint32_t>(main_cmd.command());
+  raw_cmd.cmdsize = static_cast<uint32_t>(main_cmd.size());
+  raw_cmd.entryoff = static_cast<uint64_t>(main_cmd.entrypoint());
   raw_cmd.stacksize = static_cast<uint64_t>(main_cmd.stack_size());

   main_cmd.size_ = sizeof(details::entry_point_command);
   main_cmd.original_data_.clear();
+  swap_endian_if_needed(raw_cmd);
   std::move(reinterpret_cast<uint8_t*>(&raw_cmd),
-            reinterpret_cast<uint8_t*>(&raw_cmd) + sizeof(details::entry_point_command),
+            reinterpret_cast<uint8_t*>(&raw_cmd) +
+                sizeof(details::entry_point_command),
             std::back_inserter(main_cmd.original_data_));
-  main_cmd.original_data_.insert(std::end(main_cmd.original_data_), padding, 0);
+  main_cmd.original_data_.insert(main_cmd.original_data_.end(), padding, 0);
   return ok();
 }

 template<class T>
 ok_error_t Builder::build(NoteCommand& note) {
   LIEF_DEBUG("Build '{}'", to_string(note.command()));
-  details::note_command raw_cmd;
-  std::memset(&raw_cmd, 0, sizeof(details::note_command));
+  details::note_command raw_cmd{};

   raw_cmd.cmd = static_cast<uint32_t>(note.command());
   raw_cmd.cmdsize = static_cast<uint32_t>(note.size());
@@ -525,12 +547,13 @@ ok_error_t Builder::build(NoteCommand& note) {
   raw_cmd.size = static_cast<uint32_t>(note.note_size());

   span<const char> owner = note.owner();
-  std::copy(owner.begin(), owner.end(), std::begin(raw_cmd.data_owner));
+  std::copy(std::begin(owner), std::end(owner), std::begin(raw_cmd.data_owner));

   note.size_ = sizeof(details::note_command);

   std::fill(note.original_data_.begin(), note.original_data_.end(), 0);

+  swap_endian_if_needed(raw_cmd);
   std::copy(reinterpret_cast<uint8_t*>(&raw_cmd),
             reinterpret_cast<uint8_t*>(&raw_cmd) + sizeof(raw_cmd),
             reinterpret_cast<uint8_t*>(note.original_data_.data()));
@@ -542,12 +565,11 @@ template<class T>
 ok_error_t Builder::build(DyldInfo& dyld_info) {
   LIEF_DEBUG("Build '{}'", to_string(dyld_info.command()));

-  // /!\ Force to update relocation cache that is used by the following functions
+  // WARNING: Force update of the relocation cache used by the following functions
   // TODO(romain): This looks like a hack
   binary_->relocations();

-  details::dyld_info_command raw_cmd;
-  std::memset(&raw_cmd, 0, sizeof(details::dyld_info_command));
+  details::dyld_info_command raw_cmd{};
   {
     LIEF_DEBUG("linkedit_.size(): {:x}", linkedit_.size());
     raw_cmd.rebase_off = linkedit_.size();
@@ -559,10 +581,10 @@ ok_error_t Builder::build(DyldInfo& dyld_info) {
       raw_cmd.rebase_off += linkedit_offset_;
     }

-    LIEF_DEBUG("LC_DYLD_INFO.rebase_off : 0x{:06x} -> 0x{:06x}",
+    LIEF_DEBUG("LC_DYLD_INFO.rebase_off : {:#08x} -> {:#08x}",
                dyld_info.rebase().first, raw_cmd.rebase_off);

-    LIEF_DEBUG("LC_DYLD_INFO.rebase_size: 0x{:06x} -> 0x{:06x}",
+    LIEF_DEBUG("LC_DYLD_INFO.rebase_size: {:#08x} -> {:#08x}",
                dyld_info.rebase().second, raw_cmd.rebase_size);
   }
   {
@@ -570,30 +592,30 @@ ok_error_t Builder::build(DyldInfo& dyld_info) {
     if (raw_cmd.bind_size > 0) {
       raw_cmd.bind_off += linkedit_offset_;

-      LIEF_DEBUG("LC_DYLD_INFO.bind_off : 0x{:06x} -> 0x{:06x}",
+      LIEF_DEBUG("LC_DYLD_INFO.bind_off : {:#08x} -> {:#08x}",
                  dyld_info.bind().first, raw_cmd.bind_off);

-      LIEF_DEBUG("LC_DYLD_INFO.bind_size: 0x{:06x} -> 0x{:06x}",
+      LIEF_DEBUG("LC_DYLD_INFO.bind_size: {:#08x} -> {:#08x}",
                  dyld_info.bind().second, raw_cmd.bind_size);
     }

     if (raw_cmd.weak_bind_size > 0) {
       raw_cmd.weak_bind_off += linkedit_offset_;

-      LIEF_DEBUG("LC_DYLD_INFO.weak_bind_off : 0x{:06x} -> 0x{:06x}",
+      LIEF_DEBUG("LC_DYLD_INFO.weak_bind_off : {:#08x} -> {:#08x}",
                  dyld_info.weak_bind().first, raw_cmd.weak_bind_off);

-      LIEF_DEBUG("LC_DYLD_INFO.weak_bind_size: 0x{:06x} -> 0x{:06x}",
+      LIEF_DEBUG("LC_DYLD_INFO.weak_bind_size: {:#08x} -> {:#08x}",
                  dyld_info.weak_bind().second, raw_cmd.weak_bind_size);
     }

     if (raw_cmd.lazy_bind_size > 0) {
       raw_cmd.lazy_bind_off += linkedit_offset_;

-      LIEF_DEBUG("LC_DYLD_INFO.lazy_bind_off : 0x{:06x} -> 0x{:06x}",
+      LIEF_DEBUG("LC_DYLD_INFO.lazy_bind_off : {:#08x} -> {:#08x}",
                  dyld_info.lazy_bind().first, raw_cmd.lazy_bind_off);

-      LIEF_DEBUG("LC_DYLD_INFO.lazy_bind_size: 0x{:06x} -> 0x{:06x}",
+      LIEF_DEBUG("LC_DYLD_INFO.lazy_bind_size: {:#08x} -> {:#08x}",
                  dyld_info.lazy_bind().second, raw_cmd.lazy_bind_size);
     }
   }
@@ -606,20 +628,22 @@ ok_error_t Builder::build(DyldInfo& dyld_info) {
     if (raw_cmd.export_size > 0) {
       raw_cmd.export_off += linkedit_offset_;
     }
-    LIEF_DEBUG("LC_DYLD_INFO.exports_off : 0x{:06x} -> 0x{:06x}",
+    LIEF_DEBUG("LC_DYLD_INFO.exports_off : {:#08x} -> {:#08x}",
                dyld_info.export_info().first, raw_cmd.export_off);

-    LIEF_DEBUG("LC_DYLD_INFO.exports_size: 0x{:06x} -> 0x{:06x}",
+    LIEF_DEBUG("LC_DYLD_INFO.exports_size: {:#08x} -> {:#08x}",
                dyld_info.export_info().second, raw_cmd.export_size);
   }

-  raw_cmd.cmd     = static_cast<uint32_t>(dyld_info.command());
+  raw_cmd.cmd = static_cast<uint32_t>(dyld_info.command());
   raw_cmd.cmdsize = static_cast<uint32_t>(dyld_info.size());

   dyld_info.size_ = sizeof(details::dyld_info_command);
   dyld_info.original_data_.clear();
   dyld_info.original_data_.resize(dyld_info.size_);
-  memcpy(dyld_info.original_data_.data(), &raw_cmd, sizeof(details::dyld_info_command));
+  swap_endian_if_needed(raw_cmd);
+  memcpy(dyld_info.original_data_.data(), &raw_cmd,
+         sizeof(details::dyld_info_command));
   return ok();
 }

@@ -627,8 +651,7 @@ ok_error_t Builder::build(DyldInfo& dyld_info) {
 template<class T>
 ok_error_t Builder::build(FunctionStarts& function_starts) {
   LIEF_DEBUG("Build '{}'", to_string(function_starts.command()));
-  details::linkedit_data_command raw_cmd;
-  std::memset(&raw_cmd, 0, sizeof(details::linkedit_data_command));
+  details::linkedit_data_command raw_cmd{};
   raw_cmd.dataoff = linkedit_.size();

   uint64_t prev_address = 0;
@@ -639,41 +662,44 @@ ok_error_t Builder::build(FunctionStarts& function_starts) {
   }
   linkedit_.align(sizeof(typename T::uint));

-  raw_cmd.cmd       = static_cast<uint32_t>(function_starts.command());
-  raw_cmd.cmdsize   = static_cast<uint32_t>(function_starts.size());
-  raw_cmd.datasize  = linkedit_.size() - raw_cmd.dataoff;
-  raw_cmd.dataoff   += linkedit_offset_;
+  raw_cmd.cmd = static_cast<uint32_t>(function_starts.command());
+  raw_cmd.cmdsize = static_cast<uint32_t>(function_starts.size());
+  raw_cmd.datasize = linkedit_.size() - raw_cmd.dataoff;
+  raw_cmd.dataoff += linkedit_offset_;


-  LIEF_DEBUG("LC_FUNCTION_STARTS.offset: 0x{:06x} -> 0x{:x}",
+  LIEF_DEBUG("LC_FUNCTION_STARTS.offset: {:#08x} -> {:#x}",
              function_starts.data_offset(), raw_cmd.dataoff);
-  LIEF_DEBUG("LC_FUNCTION_STARTS.size:   0x{:06x} -> 0x{:x}",
+  LIEF_DEBUG("LC_FUNCTION_STARTS.size:   {:#08x} -> {:#x}",
              function_starts.data_size(), raw_cmd.datasize);

   function_starts.size_ = sizeof(details::linkedit_data_command);
   function_starts.original_data_.clear();
   function_starts.original_data_.resize(function_starts.size_);
-  memcpy(function_starts.original_data_.data(), &raw_cmd, sizeof(details::linkedit_data_command));
+  swap_endian_if_needed(raw_cmd);
+  memcpy(function_starts.original_data_.data(), &raw_cmd,
+         sizeof(details::linkedit_data_command));
   return ok();
 }

 template<class MACHO_T>
-inline ok_error_t write_symbol(vector_iostream& nlist_table, Symbol& sym,
-                        std::unordered_map<std::string, size_t>& offset_name_map) {
+inline ok_error_t
+    write_symbol(vector_iostream& nlist_table, Symbol& sym,
+                 std::unordered_map<std::string, size_t>& offset_name_map) {
   using nlist_t = typename MACHO_T::nlist;
   const std::string& name = sym.name();
   const auto it_name = offset_name_map.find(name);

-  if (it_name == std::end(offset_name_map)) {
+  if (it_name == offset_name_map.end()) {
     LIEF_WARN("Can't find name offset for symbol {}", sym.name());
     return make_error_code(lief_errors::not_found);
   }

   nlist_t nl;
-  nl.n_strx  = static_cast<uint32_t>(it_name->second);
-  nl.n_type  = static_cast<uint8_t>(sym.raw_type());
-  nl.n_sect  = static_cast<uint32_t>(sym.numberof_sections());
-  nl.n_desc  = static_cast<uint16_t>(sym.description());
+  nl.n_strx = static_cast<uint32_t>(it_name->second);
+  nl.n_type = static_cast<uint8_t>(sym.raw_type());
+  nl.n_sect = static_cast<uint32_t>(sym.numberof_sections());
+  nl.n_desc = static_cast<uint16_t>(sym.description());
   nl.n_value = static_cast<typename MACHO_T::uint>(sym.value());

   nlist_table.write(nl);
@@ -683,27 +709,30 @@ inline ok_error_t write_symbol(vector_iostream& nlist_table, Symbol& sym,

 template<class T>
 ok_error_t Builder::build(SymbolCommand& symbol_command) {
-  //template <typename A>
-  //void SymbolTableAtom<A>::encode()
+  // template <typename A>
+  // void SymbolTableAtom<A>::encode()
   //{
-  //  // Note: We lay out the symbol table so that the strings for the stabs (local) symbols are at the
-  //  // end of the string pool.  The stabs strings are not used when calculated the UUID for the image.
-  //  // If the stabs strings were not last, the string offsets for all other symbols may very which would alter the UUID.
+  //   // Note: We lay out the symbol table so that the strings for the stabs
+  //   (local) symbols are at the
+  //   // end of the string pool.  The stabs strings are not used when calculating
+  //   the UUID for the image.
+  //   // If the stabs strings were not last, the string offsets for all other
+  //   symbols may vary which would alter the UUID.
   //
-  //  // reserve space for local symbols
-  // +---------------------+
-  // |                     |
-  // |  symtab_command     |
-  // |                     |
-  // +---------------------+
-  // |                     |
-  // |  n_list             |
-  // |                     |
-  // +---------------------+
-  // |                     |
-  // | string table        |
-  // |                     |
-  // +---------------------+
+  //   // reserve space for local symbols
+  //  +---------------------+
+  //  |                     |
+  //  |  symtab_command     |
+  //  |                     |
+  //  +---------------------+
+  //  |                     |
+  //  |  n_list             |
+  //  |                     |
+  //  +---------------------+
+  //  |                     |
+  //  | string table        |
+  //  |                     |
+  //  +---------------------+

   using nlist_t = typename T::nlist;

@@ -718,35 +747,35 @@ ok_error_t Builder::build(SymbolCommand& symbol_command) {
   std::vector<uint8_t> raw_nlist_table;
   std::unordered_map<std::string, size_t> offset_name_map;

-  details::symtab_command symtab;
-  std::memset(&symtab, 0, sizeof(details::symtab_command));
+  details::symtab_command symtab{};
   DynamicSymbolCommand* dynsym = binary_->dynamic_symbol_command();

-  /* 1. Fille the n_list table */ {
+  /* 1. Fill the n_list table */ {
     for (Symbol& s : binary_->symbols()) {
       if (s.origin() != Symbol::ORIGIN::SYMTAB) {
         continue;
       }
       all_syms.push_back(&s);
       switch (s.category()) {
-        case Symbol::CATEGORY::NONE:      other_syms.push_back(&s); break;
-        case Symbol::CATEGORY::LOCAL:     local_syms.push_back(&s); break;
-        case Symbol::CATEGORY::EXTERNAL:  ext_syms.push_back(&s);   break;
+        case Symbol::CATEGORY::NONE: other_syms.push_back(&s); break;
+        case Symbol::CATEGORY::LOCAL: local_syms.push_back(&s); break;
+        case Symbol::CATEGORY::EXTERNAL: ext_syms.push_back(&s); break;
         case Symbol::CATEGORY::UNDEFINED: undef_syms.push_back(&s); break;

         case Symbol::CATEGORY::INDIRECT_ABS:
         case Symbol::CATEGORY::INDIRECT_LOCAL:
         case Symbol::CATEGORY::INDIRECT_ABS_LOCAL:
-          {
-            break;
-          }
+        {
+          break;
+        }
       }
     }

     size_t offset_counter = 1;
-    std::vector<std::string> string_table_opt = optimize(all_syms,
-                                                  [] (Symbol *const &sym) { return sym->name(); },
-                                                  offset_counter, &offset_name_map);
+    std::vector<std::string> string_table_opt = optimize(
+        all_syms, [](Symbol* const& sym) { return sym->name(); }, offset_counter,
+        &offset_name_map
+    );
     all_syms.clear();

     // 0 index is reserved
@@ -759,10 +788,11 @@ ok_error_t Builder::build(SymbolCommand& symbol_command) {
     strtab = raw_symbol_names.raw();
   }

-  /* 2. Fille the n_list table */ {
+  /* 2. Fill the n_list table */ {
     const size_t nb_symbols = local_syms.size() + ext_syms.size() +
                               undef_syms.size() + other_syms.size();
     vector_iostream nlist_table;
+    nlist_table.set_endian_swap(should_swap());
     nlist_table.reserve(nb_symbols * sizeof(nlist_t));

     size_t isym = 0;
@@ -784,7 +814,7 @@ ok_error_t Builder::build(SymbolCommand& symbol_command) {
       if (dynsym != nullptr) {
         dynsym->idx_external_define_symbol(isym);
       }
-      for (Symbol* sym : ext_syms)   {
+      for (Symbol* sym : ext_syms) {
         indirect_symbols[sym] = isym;
         write_symbol<T>(nlist_table, *sym, offset_name_map);
         ++isym;
@@ -818,12 +848,12 @@ ok_error_t Builder::build(SymbolCommand& symbol_command) {

     raw_nlist_table = nlist_table.raw();
     symtab.symoff = linkedit_offset_ + linkedit_.size();
-    symtab.nsyms  = nb_symbols;
-    LIEF_DEBUG("LC_SYMTAB.nlist:      0x{:06x} -> 0x{:x}",
+    symtab.nsyms = nb_symbols;
+    LIEF_DEBUG("LC_SYMTAB.nlist:      {:#08x} -> {:#x}",
                symbol_command.symbol_offset(), symtab.symoff);
-    LIEF_DEBUG("LC_SYMTAB.nb_symbols: 0x{:06x} -> 0x{:x}",
+    LIEF_DEBUG("LC_SYMTAB.nb_symbols: {:#08x} -> {:#x}",
                symbol_command.numberof_symbols(), symtab.nsyms);
-    linkedit_.write(std::move(raw_nlist_table));
+    linkedit_.write(raw_nlist_table);
   }
   /*
    * Two Level Hints
@@ -835,8 +865,9 @@ ok_error_t Builder::build(SymbolCommand& symbol_command) {
    * Indirect symbol table
    */
   if (dynsym != nullptr) {
-    LIEF_DEBUG("LC_DYSYMTAB.indirectsymoff: 0x{:06x} -> 0x{:x}",
-               dynsym->indirect_symbol_offset(), linkedit_offset_ + linkedit_.size());
+    LIEF_DEBUG("LC_DYSYMTAB.indirectsymoff: {:#08x} -> {:#x}",
+               dynsym->indirect_symbol_offset(),
+               linkedit_offset_ + linkedit_.size());
     dynsym->indirect_symbol_offset(linkedit_offset_ + linkedit_.size());
     size_t count = 0;
     for (Symbol* sym : dynsym->indirect_symbols_) {
@@ -853,40 +884,44 @@ ok_error_t Builder::build(SymbolCommand& symbol_command) {
       }

       if (sym->category() == Symbol::CATEGORY::INDIRECT_ABS_LOCAL) {
-        linkedit_.write(details::INDIRECT_SYMBOL_LOCAL | details::INDIRECT_SYMBOL_ABS);
+        linkedit_.write(details::INDIRECT_SYMBOL_LOCAL |
+                        details::INDIRECT_SYMBOL_ABS);
         ++count;
         continue;
       }

-      auto it_idx = indirect_symbols.find(sym);
-      if (it_idx != std::end(indirect_symbols)) {
+      if (auto it_idx = indirect_symbols.find(sym);
+          it_idx != indirect_symbols.end())
+      {
         linkedit_.write(it_idx->second);
         ++count;
       } else {
         LIEF_ERR("Can't find the symbol index");
       }
     }
-    LIEF_DEBUG("LC_DYSYMTAB.nindirectsyms:    0x{:06x} -> 0x{:x}",
+    LIEF_DEBUG("LC_DYSYMTAB.nindirectsyms:    {:#08x} -> {:#x}",
                dynsym->nb_indirect_symbols(), count);
     dynsym->nb_indirect_symbols(count);
   }

-  symtab.stroff  = linkedit_offset_ + linkedit_.size();
+  symtab.stroff = linkedit_offset_ + linkedit_.size();
   symtab.strsize = strtab.size();
-  LIEF_DEBUG("LC_SYMTAB.strtab.offset: 0x{:06x} -> 0x{:x}",
+  LIEF_DEBUG("LC_SYMTAB.strtab.offset: {:#08x} -> {:#x}",
              symbol_command.strings_offset(), symtab.stroff);
-  LIEF_DEBUG("LC_SYMTAB.strtab.size:   0x{:06x} -> 0x{:x}",
+  LIEF_DEBUG("LC_SYMTAB.strtab.size:   {:#08x} -> {:#x}",
              symbol_command.strings_size(), symtab.strsize);

-  linkedit_.write(std::move(strtab));
+  linkedit_.write(strtab);

-  symtab.cmd     = static_cast<uint32_t>(symbol_command.command());
+  symtab.cmd = static_cast<uint32_t>(symbol_command.command());
   symtab.cmdsize = static_cast<uint32_t>(symbol_command.size());

   symbol_command.original_data_.clear();
   symbol_command.original_data_.resize(sizeof(details::symtab_command));

-  std::memcpy(symbol_command.original_data_.data(), &symtab, sizeof(details::symtab_command));
+  swap_endian_if_needed(symtab);
+  std::memcpy(symbol_command.original_data_.data(), &symtab,
+              sizeof(details::symtab_command));

   return ok();
 }
@@ -894,38 +929,47 @@ ok_error_t Builder::build(SymbolCommand& symbol_command) {

 template<class T>
 ok_error_t Builder::build(DynamicSymbolCommand& symbol_command) {
-  details::dysymtab_command rawcmd;
-  std::memset(&rawcmd, 0, sizeof(details::dysymtab_command));
-
-  rawcmd.cmd            = static_cast<uint32_t>(symbol_command.command());
-  rawcmd.cmdsize        = static_cast<uint32_t>(symbol_command.size());
-
-  rawcmd.ilocalsym      = static_cast<uint32_t>(symbol_command.idx_local_symbol());
-  rawcmd.nlocalsym      = static_cast<uint32_t>(symbol_command.nb_local_symbols());
-
-  rawcmd.iextdefsym     = static_cast<uint32_t>(symbol_command.idx_external_define_symbol());
-  rawcmd.nextdefsym     = static_cast<uint32_t>(symbol_command.nb_external_define_symbols());
-
-  rawcmd.iundefsym      = static_cast<uint32_t>(symbol_command.idx_undefined_symbol());
-  rawcmd.nundefsym      = static_cast<uint32_t>(symbol_command.nb_undefined_symbols());
-
-  rawcmd.indirectsymoff = static_cast<uint32_t>(symbol_command.indirect_symbol_offset());
-  rawcmd.nindirectsyms  = static_cast<uint32_t>(symbol_command.nb_indirect_symbols());
-
-  rawcmd.tocoff         = static_cast<uint32_t>(symbol_command.toc_offset());
-  rawcmd.ntoc           = static_cast<uint32_t>(symbol_command.nb_toc());
-  rawcmd.modtaboff      = static_cast<uint32_t>(symbol_command.module_table_offset());
-  rawcmd.nmodtab        = static_cast<uint32_t>(symbol_command.nb_module_table());
-  rawcmd.extrefsymoff   = static_cast<uint32_t>(symbol_command.external_reference_symbol_offset());
-  rawcmd.nextrefsyms    = static_cast<uint32_t>(symbol_command.nb_external_reference_symbols());
-  rawcmd.extreloff      = static_cast<uint32_t>(symbol_command.external_relocation_offset());
-  rawcmd.nextrel        = static_cast<uint32_t>(symbol_command.nb_external_relocations());
-  rawcmd.locreloff      = static_cast<uint32_t>(symbol_command.local_relocation_offset());
-  rawcmd.nlocrel        = static_cast<uint32_t>(symbol_command.nb_local_relocations());
+  details::dysymtab_command rawcmd{};
+
+  rawcmd.cmd = static_cast<uint32_t>(symbol_command.command());
+  rawcmd.cmdsize = static_cast<uint32_t>(symbol_command.size());
+
+  rawcmd.ilocalsym = static_cast<uint32_t>(symbol_command.idx_local_symbol());
+  rawcmd.nlocalsym = static_cast<uint32_t>(symbol_command.nb_local_symbols());
+
+  rawcmd.iextdefsym =
+      static_cast<uint32_t>(symbol_command.idx_external_define_symbol());
+  rawcmd.nextdefsym =
+      static_cast<uint32_t>(symbol_command.nb_external_define_symbols());
+
+  rawcmd.iundefsym = static_cast<uint32_t>(symbol_command.idx_undefined_symbol());
+  rawcmd.nundefsym = static_cast<uint32_t>(symbol_command.nb_undefined_symbols());
+
+  rawcmd.indirectsymoff =
+      static_cast<uint32_t>(symbol_command.indirect_symbol_offset());
+  rawcmd.nindirectsyms =
+      static_cast<uint32_t>(symbol_command.nb_indirect_symbols());
+
+  rawcmd.tocoff = static_cast<uint32_t>(symbol_command.toc_offset());
+  rawcmd.ntoc = static_cast<uint32_t>(symbol_command.nb_toc());
+  rawcmd.modtaboff = static_cast<uint32_t>(symbol_command.module_table_offset());
+  rawcmd.nmodtab = static_cast<uint32_t>(symbol_command.nb_module_table());
+  rawcmd.extrefsymoff =
+      static_cast<uint32_t>(symbol_command.external_reference_symbol_offset());
+  rawcmd.nextrefsyms =
+      static_cast<uint32_t>(symbol_command.nb_external_reference_symbols());
+  rawcmd.extreloff =
+      static_cast<uint32_t>(symbol_command.external_relocation_offset());
+  rawcmd.nextrel = static_cast<uint32_t>(symbol_command.nb_external_relocations());
+  rawcmd.locreloff =
+      static_cast<uint32_t>(symbol_command.local_relocation_offset());
+  rawcmd.nlocrel = static_cast<uint32_t>(symbol_command.nb_local_relocations());

   symbol_command.original_data_.clear();
   symbol_command.original_data_.resize(sizeof(details::dysymtab_command));
-  memcpy(symbol_command.original_data_.data(), &rawcmd, sizeof(details::dysymtab_command));
+  swap_endian_if_needed(rawcmd);
+  memcpy(symbol_command.original_data_.data(), &rawcmd,
+         sizeof(details::dysymtab_command));
   return ok();
 }

@@ -933,35 +977,36 @@ template<class T>
 ok_error_t Builder::build(DataInCode& datacode) {
   LIEF_DEBUG("Build '{}'", to_string(datacode.command()));

-  details::linkedit_data_command raw_cmd;
-  std::memset(&raw_cmd, 0, sizeof(details::linkedit_data_command));
+  details::linkedit_data_command raw_cmd{};

   span<const uint8_t> raw_content = datacode.content();

-  raw_cmd.cmd       = static_cast<uint32_t>(datacode.command());
-  raw_cmd.cmdsize   = static_cast<uint32_t>(datacode.size());
-  raw_cmd.dataoff   = linkedit_.size();
+  raw_cmd.cmd = static_cast<uint32_t>(datacode.command());
+  raw_cmd.cmdsize = static_cast<uint32_t>(datacode.size());
+  raw_cmd.dataoff = linkedit_.size();

   for (const DataCodeEntry& entry : datacode.entries()) {
-    details::data_in_code_entry e;
+    details::data_in_code_entry e{};
     e.offset = entry.offset();
     e.length = entry.length();
-    e.kind   = static_cast<decltype(e.kind)>(entry.type());
+    e.kind = static_cast<decltype(e.kind)>(entry.type());
     linkedit_.write(e);
   }
   raw_cmd.datasize = linkedit_.size() - raw_cmd.dataoff;
-  raw_cmd.dataoff  += linkedit_offset_;
+  raw_cmd.dataoff += linkedit_offset_;

-  LIEF_DEBUG("LC_DATA_IN_CODE.offset: 0x{:06x} -> 0x{:x}",
-             datacode.data_offset(), raw_cmd.dataoff);
-  LIEF_DEBUG("LC_DATA_IN_CODE.size:   0x{:06x} -> 0x{:x}",
-             datacode.data_size(), raw_content.size());
+  LIEF_DEBUG("LC_DATA_IN_CODE.offset: {:#08x} -> {:#x}", datacode.data_offset(),
+             raw_cmd.dataoff);
+  LIEF_DEBUG("LC_DATA_IN_CODE.size:   {:#08x} -> {:#x}", datacode.data_size(),
+             raw_content.size());

   datacode.size_ = sizeof(details::linkedit_data_command);
   datacode.original_data_.clear();
   datacode.original_data_.resize(datacode.size_);

-  memcpy(datacode.original_data_.data(), &raw_cmd, sizeof(details::linkedit_data_command));
+  swap_endian_if_needed(raw_cmd);
+  memcpy(datacode.original_data_.data(), &raw_cmd,
+         sizeof(details::linkedit_data_command));
   return ok();
 }

@@ -969,8 +1014,7 @@ template<class T>
 ok_error_t Builder::build(CodeSignature& code_signature) {
   LIEF_DEBUG("Build '{}'", to_string(code_signature.command()));

-  details::linkedit_data_command raw_cmd;
-  std::memset(&raw_cmd, 0, sizeof(details::linkedit_data_command));
+  details::linkedit_data_command raw_cmd{};

   span<const uint8_t> sp = code_signature.content();

@@ -979,14 +1023,14 @@ ok_error_t Builder::build(CodeSignature& code_signature) {
    */
   linkedit_.align(16);

-  raw_cmd.cmd       = static_cast<uint32_t>(code_signature.command());
-  raw_cmd.cmdsize   = static_cast<uint32_t>(code_signature.size());
-  raw_cmd.dataoff   = linkedit_offset_ + linkedit_.size();
-  raw_cmd.datasize  = sp.size();
+  raw_cmd.cmd = static_cast<uint32_t>(code_signature.command());
+  raw_cmd.cmdsize = static_cast<uint32_t>(code_signature.size());
+  raw_cmd.dataoff = linkedit_offset_ + linkedit_.size();
+  raw_cmd.datasize = sp.size();

-  LIEF_DEBUG("LC_CODE_SIGNATURE.offset: 0x{:06x} -> 0x{:x}",
+  LIEF_DEBUG("LC_CODE_SIGNATURE.offset: {:#08x} -> {:#x}",
              code_signature.data_offset(), raw_cmd.dataoff);
-  LIEF_DEBUG("LC_CODE_SIGNATURE.size:   0x{:06x} -> 0x{:x}",
+  LIEF_DEBUG("LC_CODE_SIGNATURE.size:   {:#08x} -> {:#x}",
              code_signature.data_size(), raw_cmd.datasize);
   linkedit_.write(sp.data(), sp.size());

@@ -994,7 +1038,9 @@ ok_error_t Builder::build(CodeSignature& code_signature) {
   code_signature.original_data_.clear();
   code_signature.original_data_.resize(code_signature.size_);

-  memcpy(code_signature.original_data_.data(), &raw_cmd, sizeof(details::linkedit_data_command));
+  swap_endian_if_needed(raw_cmd);
+  memcpy(code_signature.original_data_.data(), &raw_cmd,
+         sizeof(details::linkedit_data_command));
   return ok();
 }

@@ -1002,20 +1048,19 @@ template<class T>
 ok_error_t Builder::build(SegmentSplitInfo& ssi) {
   LIEF_DEBUG("Build '{}'", to_string(ssi.command()));

-  details::linkedit_data_command raw_cmd;
-  std::memset(&raw_cmd, 0, sizeof(details::linkedit_data_command));
+  details::linkedit_data_command raw_cmd{};

   span<const uint8_t> raw_content = ssi.content();

-  LIEF_DEBUG("LC_SEGMENT_SPLIT_INFO.offset: 0x{:06x} -> 0x{:x}",
-             ssi.data_offset(), linkedit_offset_ + linkedit_.size());
-  LIEF_DEBUG("LC_SEGMENT_SPLIT_INFO.size:   0x{:06x} -> 0x{:x}",
-             ssi.data_size(), raw_content.size());
+  LIEF_DEBUG("LC_SEGMENT_SPLIT_INFO.offset: {:#08x} -> {:#x}", ssi.data_offset(),
+             linkedit_offset_ + linkedit_.size());
+  LIEF_DEBUG("LC_SEGMENT_SPLIT_INFO.size:   {:#08x} -> {:#x}", ssi.data_size(),
+             raw_content.size());

-  raw_cmd.cmd       = static_cast<uint32_t>(ssi.command());
-  raw_cmd.cmdsize   = static_cast<uint32_t>(ssi.size());
-  raw_cmd.dataoff   = linkedit_offset_ + linkedit_.size();
-  raw_cmd.datasize  = raw_content.size();
+  raw_cmd.cmd = static_cast<uint32_t>(ssi.command());
+  raw_cmd.cmdsize = static_cast<uint32_t>(ssi.size());
+  raw_cmd.dataoff = linkedit_offset_ + linkedit_.size();
+  raw_cmd.datasize = raw_content.size();

   linkedit_.write(raw_content.data(), raw_content.size());

@@ -1023,7 +1068,9 @@ ok_error_t Builder::build(SegmentSplitInfo& ssi) {
   ssi.original_data_.clear();
   ssi.original_data_.resize(ssi.size_);

-  memcpy(ssi.original_data_.data(), &raw_cmd, sizeof(details::linkedit_data_command));
+  swap_endian_if_needed(raw_cmd);
+  memcpy(ssi.original_data_.data(), &raw_cmd,
+         sizeof(details::linkedit_data_command));

   return ok();
 }
@@ -1031,126 +1078,124 @@ ok_error_t Builder::build(SegmentSplitInfo& ssi) {
 template<class T>
 ok_error_t Builder::build(SubFramework& sf) {
   LIEF_DEBUG("Build '{}'", to_string(sf.command()));
-  details::sub_framework_command raw_cmd;
-  std::memset(&raw_cmd, 0, sizeof(details::sub_framework_command));
+  details::sub_framework_command raw_cmd{};

   const uint32_t original_size = sf.original_data_.size();

-  const uint32_t raw_size = sizeof(details::sub_framework_command) + sf.umbrella().size() + 1;
+  const uint32_t raw_size =
+      sizeof(details::sub_framework_command) + sf.umbrella().size() + 1;
   const auto size_needed =
-    std::max<uint32_t>(align(raw_size, sizeof(typename T::uint)), original_size);
+      std::max<uint32_t>(align(raw_size, sizeof(typename T::uint)), original_size);

   const uint32_t padding = size_needed - raw_size;

   if (sf.original_data_.size() < size_needed || sf.size() < size_needed) {
-    LIEF_WARN("Not enough spaces to rebuild '{}'. Size required: 0x{:x} vs 0x{:x}",
-              sf.umbrella(),  size_needed, sf.original_data_.size());
+    LIEF_WARN("Not enough spaces to rebuild '{}'. Size required: {:#x} vs {:#x}",
+              sf.umbrella(), size_needed, sf.original_data_.size());
   }

-  raw_cmd.cmd      = static_cast<uint32_t>(sf.command());
-  raw_cmd.cmdsize  = static_cast<uint32_t>(size_needed);
+  raw_cmd.cmd = static_cast<uint32_t>(sf.command());
+  raw_cmd.cmdsize = static_cast<uint32_t>(size_needed);
   raw_cmd.umbrella = static_cast<uint32_t>(sizeof(details::sub_framework_command));

   sf.size_ = size_needed;
   sf.original_data_.clear();

   // Write Header
+  swap_endian_if_needed(raw_cmd);
   std::move(reinterpret_cast<uint8_t*>(&raw_cmd),
             reinterpret_cast<uint8_t*>(&raw_cmd) + sizeof(raw_cmd),
             std::back_inserter(sf.original_data_));

   // Write String
   const std::string& um = sf.umbrella();
-  std::move(std::begin(um), std::end(um),
-            std::back_inserter(sf.original_data_));
+  std::move(um.begin(), um.end(), std::back_inserter(sf.original_data_));
   sf.original_data_.push_back(0);
-  sf.original_data_.insert(std::end(sf.original_data_), padding, 0);
+  sf.original_data_.insert(sf.original_data_.end(), padding, 0);
   return ok();
 }

 template<class T>
 ok_error_t Builder::build(SubClient& sc) {
   LIEF_DEBUG("Build '{}'", to_string(sc.command()));
-  details::sub_client_command raw_cmd;
-  std::memset(&raw_cmd, 0, sizeof(details::sub_client_command));
+  details::sub_client_command raw_cmd{};

   const uint32_t original_size = sc.original_data_.size();

-  const uint32_t raw_size = sizeof(details::sub_client_command) + sc.client().size() + 1;
+  const uint32_t raw_size =
+      sizeof(details::sub_client_command) + sc.client().size() + 1;
   const uint32_t size_needed =
-    std::max<uint32_t>(align(raw_size, sizeof(typename T::uint)), original_size);
+      std::max<uint32_t>(align(raw_size, sizeof(typename T::uint)), original_size);
   const uint32_t padding = size_needed - raw_size;

   if (sc.original_data_.size() < size_needed || sc.size() < size_needed) {
-    LIEF_WARN("Not enough spaces to rebuild '{}'. Size required: 0x{:x} vs 0x{:x}",
-              sc.client(),  size_needed, sc.original_data_.size());
+    LIEF_WARN("Not enough spaces to rebuild '{}'. Size required: {:#x} vs {:#x}",
+              sc.client(), size_needed, sc.original_data_.size());
   }

-  raw_cmd.cmd      = static_cast<uint32_t>(sc.command());
-  raw_cmd.cmdsize  = static_cast<uint32_t>(size_needed);
-  raw_cmd.client   = static_cast<uint32_t>(sizeof(details::sub_client_command));
+  raw_cmd.cmd = static_cast<uint32_t>(sc.command());
+  raw_cmd.cmdsize = static_cast<uint32_t>(size_needed);
+  raw_cmd.client = static_cast<uint32_t>(sizeof(details::sub_client_command));

   sc.size_ = size_needed;
   sc.original_data_.clear();

   // Write Header
+  swap_endian_if_needed(raw_cmd);
   std::move(reinterpret_cast<uint8_t*>(&raw_cmd),
             reinterpret_cast<uint8_t*>(&raw_cmd) + sizeof(raw_cmd),
             std::back_inserter(sc.original_data_));

   // Write String
   const std::string& um = sc.client();
-  std::move(std::begin(um), std::end(um),
-            std::back_inserter(sc.original_data_));
+  std::move(um.begin(), um.end(), std::back_inserter(sc.original_data_));
   sc.original_data_.push_back(0);
-  sc.original_data_.insert(std::end(sc.original_data_), padding, 0);
+  sc.original_data_.insert(sc.original_data_.end(), padding, 0);
   return ok();
 }

 template<class T>
 ok_error_t Builder::build(DyldEnvironment& de) {
-  details::dylinker_command raw_cmd;
-  std::memset(&raw_cmd, 0, sizeof(details::dylinker_command));
+  details::dylinker_command raw_cmd{};

   const uint32_t original_size = de.original_data_.size();

-  const uint32_t raw_size = sizeof(details::dylinker_command) + de.value().size() + 1;
+  const uint32_t raw_size =
+      sizeof(details::dylinker_command) + de.value().size() + 1;
   const uint32_t size_needed =
-    std::max<uint32_t>(align(raw_size, sizeof(typename T::uint)), original_size);
+      std::max<uint32_t>(align(raw_size, sizeof(typename T::uint)), original_size);
   const uint32_t padding = size_needed - raw_size;

-  if (de.original_data_.size() < size_needed ||
-      de.size() < size_needed) {
-    LIEF_WARN("Not enough spaces to rebuild {}. Size required: 0x{:x} vs 0x{:x}",
-              de.value(),  de.original_data_.size(), size_needed);
+  if (de.original_data_.size() < size_needed || de.size() < size_needed) {
+    LIEF_WARN("Not enough spaces to rebuild {}. Size required: {:#x} vs {:#x}",
+              de.value(), de.original_data_.size(), size_needed);
   }

-  raw_cmd.cmd      = static_cast<uint32_t>(de.command());
-  raw_cmd.cmdsize  = static_cast<uint32_t>(size_needed);
-  raw_cmd.name     = static_cast<uint32_t>(sizeof(details::dylinker_command));
+  raw_cmd.cmd = static_cast<uint32_t>(de.command());
+  raw_cmd.cmdsize = static_cast<uint32_t>(size_needed);
+  raw_cmd.name = static_cast<uint32_t>(sizeof(details::dylinker_command));

   de.size_ = size_needed;
   de.original_data_.clear();

   // Write Header
+  swap_endian_if_needed(raw_cmd);
   std::move(reinterpret_cast<uint8_t*>(&raw_cmd),
             reinterpret_cast<uint8_t*>(&raw_cmd) + sizeof(raw_cmd),
             std::back_inserter(de.original_data_));

   // Write String
   const std::string& value = de.value();
-  std::move(std::begin(value), std::end(value),
-            std::back_inserter(de.original_data_));
+  std::move(value.begin(), value.end(), std::back_inserter(de.original_data_));

   de.original_data_.push_back(0);
-  de.original_data_.insert(std::end(de.original_data_), padding, 0);
+  de.original_data_.insert(de.original_data_.end(), padding, 0);
   return ok();
 }

 template<class T>
 ok_error_t Builder::build(ThreadCommand& tc) {
-  details::thread_command raw_cmd;
-  std::memset(&raw_cmd, 0, sizeof(details::thread_command));
+  details::thread_command raw_cmd{};

   const span<const uint8_t> state = tc.state();

@@ -1159,53 +1204,54 @@ ok_error_t Builder::build(ThreadCommand& tc) {
   const uint32_t padding = size_needed - raw_size;

   if (tc.original_data_.size() < size_needed || tc.size() < size_needed) {
-    LIEF_WARN("Not enough spaces to rebuild 'ThreadCommand'. Size required: 0x{:x} vs 0x{:x}",
+    LIEF_WARN("Not enough spaces to rebuild 'ThreadCommand'. Size required: {:#x} "
+              "vs {:#x}",
               tc.original_data_.size(), size_needed);
   }

   const uint32_t state_size_needed = tc.count() * sizeof(uint32_t);
   if (state.size() < state_size_needed) {

-    LIEF_WARN("Not enough spaces to rebuild 'ThreadCommand'. Size required: 0x{:x} vs 0x{:x}",
+    LIEF_WARN("Not enough spaces to rebuild 'ThreadCommand'. Size required: {:#x} "
+              "vs {:#x}",
               state.size(), state_size_needed);
   }


-  raw_cmd.cmd      = static_cast<uint32_t>(tc.command());
-  raw_cmd.cmdsize  = static_cast<uint32_t>(size_needed);
-  raw_cmd.flavor   = static_cast<uint32_t>(tc.flavor());
-  raw_cmd.count    = static_cast<uint32_t>(tc.count());
+  raw_cmd.cmd = static_cast<uint32_t>(tc.command());
+  raw_cmd.cmdsize = static_cast<uint32_t>(size_needed);
+  raw_cmd.flavor = static_cast<uint32_t>(tc.flavor());
+  raw_cmd.count = static_cast<uint32_t>(tc.count());

   tc.size_ = size_needed;
   tc.original_data_.clear();

   // Write Header
+  swap_endian_if_needed(raw_cmd);
   std::move(reinterpret_cast<uint8_t*>(&raw_cmd),
             reinterpret_cast<uint8_t*>(&raw_cmd) + sizeof(raw_cmd),
             std::back_inserter(tc.original_data_));

   // Write state
-  std::move(std::begin(state), std::end(state),
-            std::back_inserter(tc.original_data_));
+  std::move(state.begin(), state.end(), std::back_inserter(tc.original_data_));

-  tc.original_data_.push_back(0);
-  tc.original_data_.insert(std::end(tc.original_data_), padding, 0);
+  tc.original_data_.insert(tc.original_data_.end(), padding, 0);
   return ok();
 }

 template<class T>
 ok_error_t Builder::build(EncryptionInfo& info) {
-  details::encryption_info_command raw_cmd;
-  std::memset(&raw_cmd, 0, sizeof(details::encryption_info_command));
+  details::encryption_info_command raw_cmd{};

-  raw_cmd.cmd       = static_cast<uint32_t>(info.command());
-  raw_cmd.cmdsize   = info.size();
-  raw_cmd.cryptoff  = info.crypt_offset();
+  raw_cmd.cmd = static_cast<uint32_t>(info.command());
+  raw_cmd.cmdsize = info.size();
+  raw_cmd.cryptoff = info.crypt_offset();
   raw_cmd.cryptsize = info.crypt_size();
-  raw_cmd.cryptid   = info.crypt_id();
+  raw_cmd.cryptid = info.crypt_id();

   std::fill(info.original_data_.begin(), info.original_data_.end(), 0);

+  swap_endian_if_needed(raw_cmd);
   std::copy(reinterpret_cast<uint8_t*>(&raw_cmd),
             reinterpret_cast<uint8_t*>(&raw_cmd) + sizeof(raw_cmd),
             reinterpret_cast<uint8_t*>(info.original_data_.data()));
@@ -1213,67 +1259,89 @@ ok_error_t Builder::build(EncryptionInfo& info) {
   return ok();
 }

-template <typename T>
+template<typename T>
 ok_error_t Builder::update_fixups(DyldChainedFixups& command) {
   for (const auto& seg_info : command.chained_starts_in_segments()) {
-    for (const std::unique_ptr<Relocation>& reloc : seg_info.segment.relocations_) {
+    for (const std::unique_ptr<Relocation>& reloc : seg_info.segment.relocations_)
+    {
       if (!RelocationFixup::classof(*reloc)) {
-        LIEF_WARN("Weird: a relocation in {} is not RelocationFixup", seg_info.segment.name());
+        LIEF_WARN("Weird: a relocation in {} is not RelocationFixup",
+                  seg_info.segment.name());
         continue;
       }
       const auto& fixup = static_cast<const RelocationFixup&>(*reloc);
-      span<uint8_t> sdata = seg_info.segment.writable_content();
+      span<uint8_t> sdata = seg_info.segment.content();
       const uint64_t seg_off = seg_info.segment.file_offset();

-      LIEF_DEBUG("0x{:010x}: 0x{:010x} Offset: 0x{:x}", fixup.address(), fixup.target(), fixup.offset_);
+      LIEF_DEBUG("{:#012x}: {:#012x} Offset: {:#x}", fixup.address(),
+                 fixup.target(), fixup.offset_);
       const uint64_t rel_offset = fixup.offset_ - seg_off;
       switch (fixup.rtypes_) {
         case RelocationFixup::REBASE_TYPES::ARM64E_AUTH_REBASE:
-          {
-            auto& raw_fixup = *reinterpret_cast<details::dyld_chained_ptr_arm64e*>(sdata.data() + rel_offset);
-            raw_fixup.auth_rebase = *fixup.arm64_auth_rebase_;
-            break;
-          }
+        {
+          auto& raw_fixup =
+              *reinterpret_cast<details::dyld_chained_ptr_arm64e*>(sdata.data() +
+                                                                   rel_offset);
+          raw_fixup.auth_rebase = *fixup.arm64_auth_rebase_;
+          break;
+        }

         case RelocationFixup::REBASE_TYPES::ARM64E_REBASE:
-          {
-            auto& raw_fixup = *reinterpret_cast<details::dyld_chained_ptr_arm64e*>(sdata.data() + rel_offset);
-            raw_fixup.rebase = *fixup.arm64_rebase_;
-            break;
-          }
+        {
+          auto& raw_fixup =
+              *reinterpret_cast<details::dyld_chained_ptr_arm64e*>(sdata.data() +
+                                                                   rel_offset);
+          raw_fixup.rebase = *fixup.arm64_rebase_;
+          break;
+        }

         case RelocationFixup::REBASE_TYPES::PTR64_REBASE:
-          {
-            auto& raw_fixup = *reinterpret_cast<details::dyld_chained_ptr_generic64*>(sdata.data() + rel_offset);
-            raw_fixup.rebase = *fixup.p64_rebase_;
-            break;
-          }
+        {
+          auto& raw_fixup =
+              *reinterpret_cast<details::dyld_chained_ptr_generic64*>(
+                  sdata.data() + rel_offset
+              );
+          raw_fixup.rebase = *fixup.p64_rebase_;
+          break;
+        }

         case RelocationFixup::REBASE_TYPES::PTR32_REBASE:
-          {
-            auto& raw_fixup = *reinterpret_cast<details::dyld_chained_ptr_generic32*>(sdata.data() + rel_offset);
-            raw_fixup.rebase = *fixup.p32_rebase_;
-            break;
-          }
+        {
+          auto& raw_fixup =
+              *reinterpret_cast<details::dyld_chained_ptr_generic32*>(
+                  sdata.data() + rel_offset
+              );
+          raw_fixup.rebase = *fixup.p32_rebase_;
+          break;
+        }

         case RelocationFixup::REBASE_TYPES::SEGMENTED:
-          {
-            [[maybe_unused]] auto& raw_fixup = *reinterpret_cast<details::dyld_chained_ptr_arm64e_segmented_rebase*>(sdata.data() + rel_offset);
-            LIEF_ERR("dyld_chained_ptr_arm64e_segmented_rebase is not supported ({})", __LINE__);
-            break;
-          }
+        {
+          [[maybe_unused]] auto& raw_fixup = *reinterpret_cast<
+              details::dyld_chained_ptr_arm64e_segmented_rebase*
+          >(sdata.data() + rel_offset);
+          LIEF_ERR(
+              "dyld_chained_ptr_arm64e_segmented_rebase is not supported ({})",
+              __LINE__
+          );
+          break;
+        }

         case RelocationFixup::REBASE_TYPES::AUTH_SEGMENTED:
-          {
-            [[maybe_unused]] auto& raw_fixup = *reinterpret_cast<details::dyld_chained_ptr_arm64e_auth_segmented_rebase*>(sdata.data() + rel_offset);
-            LIEF_ERR("dyld_chained_ptr_arm64e_auth_segmented_rebase is not supported ({})", __LINE__);
-            break;
-          }
+        {
+          [[maybe_unused]] auto& raw_fixup = *reinterpret_cast<
+              details::dyld_chained_ptr_arm64e_auth_segmented_rebase*
+          >(sdata.data() + rel_offset);
+          LIEF_ERR("dyld_chained_ptr_arm64e_auth_segmented_rebase is not "
+                   "supported ({})",
+                   __LINE__);
+          break;
+        }

         case RelocationFixup::REBASE_TYPES::UNKNOWN:
-          {
-            break;
-          }
+        {
+          break;
+        }
       }
     }
   }
@@ -1286,8 +1354,9 @@ ok_error_t Builder::build(DyldChainedFixups& fixups) {
   using pin_t = typename T::uint;
   /*
    * Note(romain): Most of the logic that constructs this command
-   *               is located in ld64/src/ld/LinkEdit.hpp - ChainedInfoAtom<A>::encode()
-   *               The following code is highly inspired from the Apple ld64 code
+   *               is located in ld64/src/ld/LinkEdit.hpp -
+   * ChainedInfoAtom<A>::encode() The following code is highly inspired from the
+   * Apple ld64 code
    */
   LIEF_DEBUG("[->] Writing DyldChainedFixups");

@@ -1298,12 +1367,12 @@ ok_error_t Builder::build(DyldChainedFixups& fixups) {

   vector_iostream lnk_data;

-  details::dyld_chained_fixups_header header;
+  details::dyld_chained_fixups_header header{};
   header.fixups_version = 0;
-  header.starts_offset  = align(sizeof(details::dyld_chained_fixups_header), 8);
+  header.starts_offset = align(sizeof(details::dyld_chained_fixups_header), 8);
   header.imports_offset = 0;
   header.symbols_offset = 0;
-  header.imports_count  = fixups.internal_bindings_.size();
+  header.imports_count = fixups.internal_bindings_.size();
   header.imports_format = static_cast<uint32_t>(fixups.imports_format());
   header.symbols_format = 0;

@@ -1313,7 +1382,7 @@ ok_error_t Builder::build(DyldChainedFixups& fixups) {

   const size_t segs_header_off = lnk_data.size();
   if (fixups.starts_offset() > 0 && segs_header_off != fixups.starts_offset()) {
-    LIEF_INFO("segs_header_off could be wrong!");
+    LIEF_INFO("segs_header_off may be incorrect");
   }
   auto starts_in_segment = fixups.chained_starts_in_segments();
   lnk_data.write<uint32_t>(starts_in_segment.size());
@@ -1329,20 +1398,24 @@ ok_error_t Builder::build(DyldChainedFixups& fixups) {
   for (const auto& seg_info : starts_in_segment) {
     if (seg_info.segment.name() == "__TEXT") {
       text_start_address = seg_info.segment.virtual_address();
-    }
-    else if (seg_info.segment.name() == "__LINKEDIT") {
+    } else if (seg_info.segment.name() == "__LINKEDIT") {
       uint64_t base_address = text_start_address;
-      if (seg_info.pointer_format == DYLD_CHAINED_PTR_FORMAT::PTR_32 && text_start_address == 0x4000) {
+      if (seg_info.pointer_format == DYLD_CHAINED_PTR_FORMAT::PTR_32 &&
+          text_start_address == 0x4000)
+      {
         base_address = 0;
       }
-      max_rebase_address = align(seg_info.segment.virtual_address() - base_address, 0x00100000);
+      max_rebase_address =
+          align(seg_info.segment.virtual_address() - base_address, 0x00100000);
     }
   }

   // -----


-  for (const DyldChainedFixups::chained_starts_in_segment& seg_info : starts_in_segment) {
+  for (const DyldChainedFixups::chained_starts_in_segment& seg_info :
+       starts_in_segment)
+  {
     if (seg_info.page_count() == 0) {
       ++seg_idx;
       continue;
@@ -1354,24 +1427,28 @@ ok_error_t Builder::build(DyldChainedFixups& fixups) {
       LIEF_ERR("DYLD_CHAINED_PTR_FORMAT::PTR_32 is not supported yet");
       return make_error_code(lief_errors::not_supported);
     }
-    details::dyld_chained_starts_in_segment seg;
+    details::dyld_chained_starts_in_segment seg{};
     const size_t page_count = seg_info.page_count();
-    seg.size              = sizeof(details::dyld_chained_starts_in_segment) + page_count * start_bytes_per_page;
-    seg.page_size         = seg_info.page_size;
-    seg.pointer_format    = static_cast<uint16_t>(seg_info.pointer_format);
-    seg.segment_offset    = seg_info.segment.virtual_address() - text_start_address;
-    seg.page_count        = page_count;
-    seg.max_valid_pointer = seg_info.pointer_format == DYLD_CHAINED_PTR_FORMAT::PTR_32 ?
-                                                       max_rebase_address : 0;
+    seg.size = sizeof(details::dyld_chained_starts_in_segment) +
+               page_count * start_bytes_per_page;
+    seg.page_size = seg_info.page_size;
+    seg.pointer_format = static_cast<uint16_t>(seg_info.pointer_format);
+    seg.segment_offset = seg_info.segment.virtual_address() - text_start_address;
+    seg.page_count = page_count;
+    seg.max_valid_pointer =
+        seg_info.pointer_format == DYLD_CHAINED_PTR_FORMAT::PTR_32 ?
+            max_rebase_address :
+            0;

     // According to the linker documentation, dyld_chained_starts_in_segment
     // must be 64-bit aligned.
     lnk_data.align(8);
-    auto* seg_info_offsets = reinterpret_cast<uint32_t*>(lnk_data.raw().data() + segs_info_off);
+    auto* seg_info_offsets =
+        reinterpret_cast<uint32_t*>(lnk_data.raw().data() + segs_info_off);
     seg_info_offsets[seg_idx] = lnk_data.size() - segs_header_off;
-    LIEF_DEBUG("0x{:06x} seg_info_offsets[{}] = 0x{:016x}",
-               segs_info_off + sizeof(uint32_t) * seg_idx,
-               seg_idx, seg_info_offsets[seg_idx]);
+    LIEF_DEBUG("{:#08x} seg_info_offsets[{}] = {:#018x}",
+               segs_info_off + sizeof(uint32_t) * seg_idx, seg_idx,
+               seg_info_offsets[seg_idx]);
     lnk_data.write(seg);
     for (uint16_t off : seg_info.page_start) {
       lnk_data.write(off);
@@ -1394,13 +1471,16 @@ ok_error_t Builder::build(DyldChainedFixups& fixups) {
   std::unordered_map<std::string, size_t> offset_name_map;
   string_pool.write<uint8_t>(0);
   size_t offset_counter = string_pool.tellp();
-  std::vector<std::string> string_table_optimized = optimize(fixups.internal_bindings_,
-                                  [] (const std::unique_ptr<ChainedBindingInfoList>& bnd) {
-                                    if (const Symbol* s = bnd->symbol()) {
-                                      return s->name();
-                                    }
-                                    return std::string();
-                                  }, offset_counter, &offset_name_map);
+  std::vector<std::string> string_table_optimized = optimize(
+      fixups.internal_bindings_,
+      [](const std::unique_ptr<ChainedBindingInfoList>& bnd) {
+        if (const Symbol* s = bnd->symbol()) {
+          return s->name();
+        }
+        return std::string();
+      },
+      offset_counter, &offset_name_map
+  );
   string_pool.reserve(string_table_optimized.size() * 10);
   for (const std::string& name : string_table_optimized) {
     string_pool.write(name);
@@ -1410,20 +1490,25 @@ ok_error_t Builder::build(DyldChainedFixups& fixups) {
   const size_t nb_bindings = fixups.internal_bindings_.size();
   switch (fmt) {
     case DYLD_CHAINED_FORMAT::IMPORT:
-         imports.reserve(nb_bindings * sizeof(details::dyld_chained_import)); break;
+      imports.reserve(nb_bindings * sizeof(details::dyld_chained_import));
+      break;
     case DYLD_CHAINED_FORMAT::IMPORT_ADDEND:
-         imports.reserve(nb_bindings * sizeof(details::dyld_chained_import_addend)); break;
+      imports.reserve(nb_bindings * sizeof(details::dyld_chained_import_addend));
+      break;
     case DYLD_CHAINED_FORMAT::IMPORT_ADDEND64:
-         imports.reserve(nb_bindings * sizeof(details::dyld_chained_import_addend64)); break;
+      imports.reserve(nb_bindings * sizeof(details::dyld_chained_import_addend64));
+      break;
   }

-  for (const std::unique_ptr<ChainedBindingInfoList>& info : fixups.internal_bindings_) {
+  for (const std::unique_ptr<ChainedBindingInfoList>& info :
+       fixups.internal_bindings_)
+  {
     uint32_t name_offset = 0;

     const std::string& name = info->symbol()->name();
-    auto it_name_off = offset_name_map.find(name);
-
-    if (it_name_off != std::end(offset_name_map)) {
+    if (auto it_name_off = offset_name_map.find(name);
+        it_name_off != offset_name_map.end())
+    {
       name_offset = it_name_off->second;
     } else {
       LIEF_WARN("Can't find symbol: '{}'", name);
@@ -1431,152 +1516,170 @@ ok_error_t Builder::build(DyldChainedFixups& fixups) {
     }
     switch (fmt) {
       case DYLD_CHAINED_FORMAT::IMPORT:
-        {
-          details::dyld_chained_import import;
-          import.lib_ordinal = info->library_ordinal();
-          import.weak_import = info->is_weak_import();
-          import.name_offset = name_offset;
-          imports.write(import);
-          break;
-        }
+      {
+        details::dyld_chained_import import{};
+        import.lib_ordinal = info->library_ordinal();
+        import.weak_import = info->is_weak_import();
+        import.name_offset = name_offset;
+        imports.write(import);
+        break;
+      }
       case DYLD_CHAINED_FORMAT::IMPORT_ADDEND:
-        {
-          details::dyld_chained_import_addend import;
-          import.lib_ordinal = info->library_ordinal();
-          import.weak_import = info->is_weak_import();
-          import.name_offset = name_offset;
-          import.addend      = info->addend();
-          imports_addend.write(import);
-          break;
-        }
+      {
+        details::dyld_chained_import_addend import{};
+        import.lib_ordinal = info->library_ordinal();
+        import.weak_import = info->is_weak_import();
+        import.name_offset = name_offset;
+        import.addend = info->addend();
+        imports_addend.write(import);
+        break;
+      }
       case DYLD_CHAINED_FORMAT::IMPORT_ADDEND64:
-        {
-          details::dyld_chained_import_addend64 import;
-          import.lib_ordinal = info->library_ordinal();
-          import.weak_import = info->is_weak_import();
-          import.name_offset = name_offset;
-          import.addend      = info->addend();
-          imports_addend64.write(import);
-          break;
-        }
+      {
+        details::dyld_chained_import_addend64 import{};
+        import.lib_ordinal = info->library_ordinal();
+        import.weak_import = info->is_weak_import();
+        import.name_offset = name_offset;
+        import.addend = info->addend();
+        imports_addend64.write(import);
+        break;
+      }
     }

     for (ChainedBindingInfo* binding : info->elements_) {
-      const uint64_t rel_offset = binding->offset_ - binding->segment()->file_offset();
-      uint8_t* data_ptr = binding->segment_->writable_content().data() + rel_offset;
-      LIEF_DEBUG("Write binding (offset=0x{:010x}): 0x{:016x} {} in {} offset=0x{:010x}",
-                 binding->offset_, binding->address(), binding->symbol()->name(),
-                 binding->segment_->name(),
-                 binding->segment()->file_offset() + rel_offset);
+      const uint64_t rel_offset =
+          binding->offset_ - binding->segment()->file_offset();
+      uint8_t* data_ptr = binding->segment_->content().data() + rel_offset;
+      LIEF_DEBUG(
+          "Write binding (offset={:#012x}): {:#018x} {} in {} offset={:#012x}",
+          binding->offset_, binding->address(), binding->symbol()->name(),
+          binding->segment_->name(), binding->segment()->file_offset() + rel_offset
+      );

       // Rewrite the raw chained binding
       switch (binding->btypes_) {
         case ChainedBindingInfo::BIND_TYPES::ARM64E_BIND:
-          {
-            auto& raw_bind = *reinterpret_cast<details::dyld_chained_ptr_arm64e*>(data_ptr);
-            raw_bind.bind = *binding->arm64_bind_;
-            break;
-          }
+        {
+          auto& raw_bind =
+              *reinterpret_cast<details::dyld_chained_ptr_arm64e*>(data_ptr);
+          raw_bind.bind = *binding->arm64_bind_;
+          break;
+        }
         case ChainedBindingInfo::BIND_TYPES::ARM64E_AUTH_BIND:
-          {
-            auto& raw_bind = *reinterpret_cast<details::dyld_chained_ptr_arm64e*>(data_ptr);
-            raw_bind.auth_bind = *binding->arm64_auth_bind_;
-            break;
-          }
+        {
+          auto& raw_bind =
+              *reinterpret_cast<details::dyld_chained_ptr_arm64e*>(data_ptr);
+          raw_bind.auth_bind = *binding->arm64_auth_bind_;
+          break;
+        }
         case ChainedBindingInfo::BIND_TYPES::ARM64E_BIND24:
-          {
-            auto& raw_bind = *reinterpret_cast<details::dyld_chained_ptr_arm64e*>(data_ptr);
-            raw_bind.bind24 = *binding->arm64_bind24_;
-            break;
-          }
+        {
+          auto& raw_bind =
+              *reinterpret_cast<details::dyld_chained_ptr_arm64e*>(data_ptr);
+          raw_bind.bind24 = *binding->arm64_bind24_;
+          break;
+        }
         case ChainedBindingInfo::BIND_TYPES::ARM64E_AUTH_BIND24:
-          {
-            auto& raw_bind = *reinterpret_cast<details::dyld_chained_ptr_arm64e*>(data_ptr);
-            raw_bind.auth_bind24 = *binding->arm64_auth_bind24_;
-            break;
-          }
+        {
+          auto& raw_bind =
+              *reinterpret_cast<details::dyld_chained_ptr_arm64e*>(data_ptr);
+          raw_bind.auth_bind24 = *binding->arm64_auth_bind24_;
+          break;
+        }
         case ChainedBindingInfo::BIND_TYPES::PTR64_BIND:
-          {
-            auto& raw_bind = *reinterpret_cast<details::dyld_chained_ptr_generic64*>(data_ptr);
-            raw_bind.bind = *binding->p64_bind_;
-            break;
-          }
+        {
+          auto& raw_bind =
+              *reinterpret_cast<details::dyld_chained_ptr_generic64*>(data_ptr);
+          raw_bind.bind = *binding->p64_bind_;
+          break;
+        }
         case ChainedBindingInfo::BIND_TYPES::PTR32_BIND:
-          {
-            auto& raw_bind = *reinterpret_cast<details::dyld_chained_ptr_generic32*>(data_ptr);
-            raw_bind.bind = *binding->p32_bind_;
-            break;
-          }
+        {
+          auto& raw_bind =
+              *reinterpret_cast<details::dyld_chained_ptr_generic32*>(data_ptr);
+          raw_bind.bind = *binding->p32_bind_;
+          break;
+        }
         case ChainedBindingInfo::BIND_TYPES::UNKNOWN: break;
       }
     }
   }

   // Re-access the header to update the offsets
-  // NOTE/WARN: We need to 'reset' the pointer as the underlying buffer (std::vector) might
-  // be relocated.
-  auto* hdr = reinterpret_cast<details::dyld_chained_fixups_header*>(lnk_data.raw().data());
+  // NOTE/WARN: We need to 'reset' the pointer as the underlying buffer
+  // (std::vector) might be relocated.
+  auto* hdr = reinterpret_cast<details::dyld_chained_fixups_header*>(
+      lnk_data.raw().data()
+  );
   switch (fmt) {
     case DYLD_CHAINED_FORMAT::IMPORT:
-      {
-        lnk_data.align(4);
-        hdr = reinterpret_cast<details::dyld_chained_fixups_header*>(lnk_data.raw().data());
-        hdr->imports_offset = lnk_data.size();
-        lnk_data.write(imports);
-        break;
-      }
+    {
+      lnk_data.align(4);
+      hdr = reinterpret_cast<details::dyld_chained_fixups_header*>(
+          lnk_data.raw().data()
+      );
+      hdr->imports_offset = lnk_data.size();
+      lnk_data.write(imports);
+      break;
+    }
     case DYLD_CHAINED_FORMAT::IMPORT_ADDEND:
-      {
-        lnk_data.align(4);
-        hdr = reinterpret_cast<details::dyld_chained_fixups_header*>(lnk_data.raw().data());
-        hdr->imports_offset = lnk_data.size();
-        lnk_data.write(imports_addend);
-        break;
-      }
+    {
+      lnk_data.align(4);
+      hdr = reinterpret_cast<details::dyld_chained_fixups_header*>(
+          lnk_data.raw().data()
+      );
+      hdr->imports_offset = lnk_data.size();
+      lnk_data.write(imports_addend);
+      break;
+    }
     case DYLD_CHAINED_FORMAT::IMPORT_ADDEND64:
-      {
-        lnk_data.align(8);
-        hdr = reinterpret_cast<details::dyld_chained_fixups_header*>(lnk_data.raw().data());
-        hdr->imports_offset = lnk_data.size();
-        lnk_data.write(imports_addend64);
-        break;
-      }
+    {
+      lnk_data.align(8);
+      hdr = reinterpret_cast<details::dyld_chained_fixups_header*>(
+          lnk_data.raw().data()
+      );
+      hdr->imports_offset = lnk_data.size();
+      lnk_data.write(imports_addend64);
+      break;
+    }
   }

-  hdr = reinterpret_cast<details::dyld_chained_fixups_header*>(lnk_data.raw().data());
+  hdr = reinterpret_cast<details::dyld_chained_fixups_header*>(
+      lnk_data.raw().data()
+  );
   hdr->symbols_offset = lnk_data.size();
-  lnk_data
-    .write(string_pool.raw())
-    .align(sizeof(pin_t));
+  lnk_data.write(string_pool.raw()).align(sizeof(pin_t));

   const std::vector<uint8_t>& raw = lnk_data.raw();
-  LIEF_DEBUG("__chainfixups.old_size: 0x{:06x}", fixups.data_size());
-  LIEF_DEBUG("__chainfixups.new_size: 0x{:06x}", raw.size());
+  LIEF_DEBUG("__chainfixups.old_size: {:#08x}", fixups.data_size());
+  LIEF_DEBUG("__chainfixups.new_size: {:#08x}", raw.size());

   if (fixups.data_size() > 0 && fixups.data_size() < raw.size()) {
     LIEF_WARN("New chained fixups size is larger than the original one");
   }

-  LIEF_DEBUG("LC_DYLD_CHAINED_FIXUPS.offset: 0x{:06x} -> 0x{:x}",
+  LIEF_DEBUG("LC_DYLD_CHAINED_FIXUPS.offset: {:#08x} -> {:#x}",
              fixups.data_offset(), linkedit_offset_ + linkedit_.size());
-  LIEF_DEBUG("LC_DYLD_CHAINED_FIXUPS.size:   0x{:06x} -> 0x{:x}",
-             fixups.data_size(), lnk_data.size());
+  LIEF_DEBUG("LC_DYLD_CHAINED_FIXUPS.size:   {:#08x} -> {:#x}", fixups.data_size(),
+             lnk_data.size());

   // Write back the 'linkedit' structure
-  details::linkedit_data_command raw_cmd;
+  details::linkedit_data_command raw_cmd{};

-  raw_cmd.cmd       = static_cast<uint32_t>(fixups.command());
-  raw_cmd.cmdsize   = static_cast<uint32_t>(fixups.size());
-  raw_cmd.dataoff   = linkedit_offset_ + linkedit_.size();
-  raw_cmd.datasize  = lnk_data.size();
+  raw_cmd.cmd = static_cast<uint32_t>(fixups.command());
+  raw_cmd.cmdsize = static_cast<uint32_t>(fixups.size());
+  raw_cmd.dataoff = linkedit_offset_ + linkedit_.size();
+  raw_cmd.datasize = lnk_data.size();

-  linkedit_.write(std::move(lnk_data.raw()));
+  linkedit_.write(lnk_data.raw());

   fixups.size_ = sizeof(details::linkedit_data_command);
   fixups.original_data_.clear();
   fixups.original_data_.resize(fixups.size_);

-  memcpy(fixups.original_data_.data(), &raw_cmd, sizeof(details::linkedit_data_command));
+  swap_endian_if_needed(raw_cmd);
+  memcpy(fixups.original_data_.data(), &raw_cmd,
+         sizeof(details::linkedit_data_command));
   return ok();
 }

@@ -1588,96 +1691,107 @@ ok_error_t Builder::build(DyldExportsTrie& exports) {
   if (exports.data_size() > 0 && raw.size() > exports.content_.size()) {
     const uint64_t delta = raw.size() - exports.content_.size();
     LIEF_INFO("The export trie is larger than the original "
-              "LC_DYLD_EXPORTS_TRIE (+0x{:x} bytes)", delta);
+              "LC_DYLD_EXPORTS_TRIE (+{:#x} bytes)",
+              delta);
   }

-  LIEF_DEBUG("LC_DYLD_EXPORTS_TRIE.offset: 0x{:06x} -> 0x{:x}",
+  LIEF_DEBUG("LC_DYLD_EXPORTS_TRIE.offset: {:#08x} -> {:#x}",
              exports.data_offset(), linkedit_offset_ + linkedit_.size());
-  LIEF_DEBUG("LC_DYLD_EXPORTS_TRIE.size:   0x{:06x} -> 0x{:x}",
-             exports.data_size(), raw.size());
+  LIEF_DEBUG("LC_DYLD_EXPORTS_TRIE.size:   {:#08x} -> {:#x}", exports.data_size(),
+             raw.size());

   // Write back the 'linkedit' structure
-  details::linkedit_data_command raw_cmd;
+  details::linkedit_data_command raw_cmd{};

-  raw_cmd.cmd       = static_cast<uint32_t>(exports.command());
-  raw_cmd.cmdsize   = static_cast<uint32_t>(exports.size());
-  raw_cmd.dataoff   = linkedit_offset_ + linkedit_.size();
-  raw_cmd.datasize  = raw.size();
+  raw_cmd.cmd = static_cast<uint32_t>(exports.command());
+  raw_cmd.cmdsize = static_cast<uint32_t>(exports.size());
+  raw_cmd.dataoff = linkedit_offset_ + linkedit_.size();
+  raw_cmd.datasize = raw.size();

-  linkedit_.write(std::move(raw));
+  linkedit_.write(raw);

   exports.size_ = sizeof(details::linkedit_data_command);
   exports.original_data_.clear();
   exports.original_data_.resize(exports.size_);

-  memcpy(exports.original_data_.data(), &raw_cmd, sizeof(details::linkedit_data_command));
+  swap_endian_if_needed(raw_cmd);
+  memcpy(exports.original_data_.data(), &raw_cmd,
+         sizeof(details::linkedit_data_command));
   return ok();
 }

 template<class T>
 ok_error_t Builder::build(BuildVersion& bv) {
-  details::build_version_command raw_cmd;
-  std::memset(&raw_cmd, 0, sizeof(details::build_version_command));
+  details::build_version_command raw_cmd{};

   const BuildVersion::tools_list_t& tools = bv.tools();

-  const uint32_t raw_size    = sizeof(details::build_version_command) + tools.size() * sizeof(details::build_tool_version);
+  const uint32_t raw_size = sizeof(details::build_version_command) +
+                            tools.size() * sizeof(details::build_tool_version);
   const uint32_t size_needed = align(raw_size, sizeof(typename T::uint));
-  const uint32_t padding     = size_needed - raw_size;
+  const uint32_t padding = size_needed - raw_size;

   if (bv.original_data_.size() < size_needed || bv.size() < size_needed) {
-    LIEF_WARN("Not enough spaces to rebuild 'BuildVersion'. Size required: 0x{:x} vs 0x{:x}",
-               bv.original_data_.size(), size_needed);
+    LIEF_WARN("Not enough spaces to rebuild 'BuildVersion'. Size required: {:#x} "
+              "vs {:#x}",
+              bv.original_data_.size(), size_needed);
   }

-  const BuildVersion::version_t& minos    = bv.minos();
-  const BuildVersion::version_t& sdk      = bv.sdk();
+  const BuildVersion::version_t& minos = bv.minos();
+  const BuildVersion::version_t& sdk = bv.sdk();

-  raw_cmd.cmd      = static_cast<uint32_t>(bv.command());
-  raw_cmd.cmdsize  = static_cast<uint32_t>(size_needed);
+  raw_cmd.cmd = static_cast<uint32_t>(bv.command());
+  raw_cmd.cmdsize = static_cast<uint32_t>(size_needed);

-  raw_cmd.minos    = static_cast<uint32_t>(minos[0] << 16 | minos[1] << 8 | minos[2]);
-  raw_cmd.sdk      = static_cast<uint32_t>(sdk[0] << 16 | sdk[1] << 8 | sdk[2]);
+  raw_cmd.minos = static_cast<uint32_t>(minos[0] << 16 | minos[1] << 8 | minos[2]);
+  raw_cmd.sdk = static_cast<uint32_t>(sdk[0] << 16 | sdk[1] << 8 | sdk[2]);
   raw_cmd.platform = static_cast<uint32_t>(bv.platform());
-  raw_cmd.ntools   = tools.size();
-  //raw_cmd.name     = static_cast<uint32_t>(sizeof(build_version_command));
-  std::vector<uint8_t> raw_tools(raw_cmd.ntools * sizeof(details::build_tool_version), 0);
-  auto* tools_array = reinterpret_cast<details::build_tool_version*>(raw_tools.data());
+  raw_cmd.ntools = tools.size();
+  // raw_cmd.name     = static_cast<uint32_t>(sizeof(build_version_command));
+  std::vector<uint8_t> raw_tools(
+      raw_cmd.ntools * sizeof(details::build_tool_version), 0
+  );
+  auto* tools_array =
+      reinterpret_cast<details::build_tool_version*>(raw_tools.data());
   for (size_t i = 0; i < tools.size(); ++i) {
     BuildToolVersion::version_t version = tools[i].version();
-    tools_array[i].tool    = static_cast<uint32_t>(tools[i].tool());
-    tools_array[i].version = static_cast<uint32_t>(version[0] << 16 | version[1] << 8 | version[2]);
+    tools_array[i].tool = static_cast<uint32_t>(tools[i].tool());
+    tools_array[i].version =
+        static_cast<uint32_t>(version[0] << 16 | version[1] << 8 | version[2]);
+    swap_endian_if_needed(tools_array[i]);
   }

   bv.size_ = size_needed;
   bv.original_data_.clear();

   // Write Header
-  std::move(reinterpret_cast<uint8_t*>(&raw_cmd), reinterpret_cast<uint8_t*>(&raw_cmd) + sizeof(raw_cmd),
+  swap_endian_if_needed(raw_cmd);
+  std::move(reinterpret_cast<uint8_t*>(&raw_cmd),
+            reinterpret_cast<uint8_t*>(&raw_cmd) + sizeof(raw_cmd),
             std::back_inserter(bv.original_data_));

-  std::move(std::begin(raw_tools), std::end(raw_tools), std::back_inserter(bv.original_data_));
+  std::move(raw_tools.begin(), raw_tools.end(),
+            std::back_inserter(bv.original_data_));

-  bv.original_data_.insert(std::end(bv.original_data_), padding, 0);
+  bv.original_data_.insert(bv.original_data_.end(), padding, 0);
   return ok();
 }

 template<class T>
 ok_error_t Builder::build(CodeSignatureDir& sig) {
-  details::linkedit_data_command raw_cmd;
-  std::memset(&raw_cmd, 0, sizeof(details::linkedit_data_command));
+  details::linkedit_data_command raw_cmd{};

   span<const uint8_t> sp = sig.content();

-  raw_cmd.cmd       = static_cast<uint32_t>(sig.command());
-  raw_cmd.cmdsize   = static_cast<uint32_t>(sig.size());
-  raw_cmd.dataoff   = linkedit_offset_ + linkedit_.size();
-  raw_cmd.datasize  = sp.size();
+  raw_cmd.cmd = static_cast<uint32_t>(sig.command());
+  raw_cmd.cmdsize = static_cast<uint32_t>(sig.size());
+  raw_cmd.dataoff = linkedit_offset_ + linkedit_.size();
+  raw_cmd.datasize = sp.size();

-  LIEF_DEBUG("LC_DYLIB_CODE_SIGN_DRS.offset: 0x{:06x} -> 0x{:x}",
-             sig.data_offset(), raw_cmd.dataoff);
-  LIEF_DEBUG("LC_DYLIB_CODE_SIGN_DRS.size:   0x{:06x} -> 0x{:x}",
-             sig.data_size(), raw_cmd.datasize);
+  LIEF_DEBUG("LC_DYLIB_CODE_SIGN_DRS.offset: {:#08x} -> {:#x}", sig.data_offset(),
+             raw_cmd.dataoff);
+  LIEF_DEBUG("LC_DYLIB_CODE_SIGN_DRS.size:   {:#08x} -> {:#x}", sig.data_size(),
+             raw_cmd.datasize);

   linkedit_.write(sp.data(), sp.size());

@@ -1685,25 +1799,26 @@ ok_error_t Builder::build(CodeSignatureDir& sig) {
   sig.original_data_.clear();
   sig.original_data_.resize(sig.size_);

-  memcpy(sig.original_data_.data(), &raw_cmd, sizeof(details::linkedit_data_command));
+  swap_endian_if_needed(raw_cmd);
+  memcpy(sig.original_data_.data(), &raw_cmd,
+         sizeof(details::linkedit_data_command));
   return ok();
 }

 template<class T>
 ok_error_t Builder::build(LinkerOptHint& opt) {
-  details::linkedit_data_command raw_cmd;
-  std::memset(&raw_cmd, 0, sizeof(details::linkedit_data_command));
+  details::linkedit_data_command raw_cmd{};

   span<const uint8_t> sp = opt.content();

-  raw_cmd.cmd       = static_cast<uint32_t>(opt.command());
-  raw_cmd.cmdsize   = static_cast<uint32_t>(opt.size());
-  raw_cmd.dataoff   = linkedit_offset_ + linkedit_.size();
-  raw_cmd.datasize  = sp.size();
+  raw_cmd.cmd = static_cast<uint32_t>(opt.command());
+  raw_cmd.cmdsize = static_cast<uint32_t>(opt.size());
+  raw_cmd.dataoff = linkedit_offset_ + linkedit_.size();
+  raw_cmd.datasize = sp.size();

-  LIEF_DEBUG("LC_LINKER_OPTIMIZATION_HINT.offset: 0x{:06x} -> 0x{:x}",
+  LIEF_DEBUG("LC_LINKER_OPTIMIZATION_HINT.offset: {:#08x} -> {:#x}",
              opt.data_offset(), raw_cmd.dataoff);
-  LIEF_DEBUG("LC_LINKER_OPTIMIZATION_HINT.size:   0x{:06x} -> 0x{:x}",
+  LIEF_DEBUG("LC_LINKER_OPTIMIZATION_HINT.size:   {:#08x} -> {:#x}",
              opt.data_size(), raw_cmd.datasize);

   linkedit_.write(sp.data(), sp.size());
@@ -1712,26 +1827,27 @@ ok_error_t Builder::build(LinkerOptHint& opt) {
   opt.original_data_.clear();
   opt.original_data_.resize(opt.size_);

-  memcpy(opt.original_data_.data(), &raw_cmd, sizeof(details::linkedit_data_command));
+  swap_endian_if_needed(raw_cmd);
+  memcpy(opt.original_data_.data(), &raw_cmd,
+         sizeof(details::linkedit_data_command));
   return ok();
 }

 template<class T>
 ok_error_t Builder::build(AtomInfo& atom) {
-  details::linkedit_data_command raw_cmd;
-  std::memset(&raw_cmd, 0, sizeof(details::linkedit_data_command));
+  details::linkedit_data_command raw_cmd{};

   span<const uint8_t> sp = atom.content();

-  raw_cmd.cmd       = static_cast<uint32_t>(atom.command());
-  raw_cmd.cmdsize   = static_cast<uint32_t>(atom.size());
-  raw_cmd.dataoff   = linkedit_offset_ + linkedit_.size();
-  raw_cmd.datasize  = sp.size();
+  raw_cmd.cmd = static_cast<uint32_t>(atom.command());
+  raw_cmd.cmdsize = static_cast<uint32_t>(atom.size());
+  raw_cmd.dataoff = linkedit_offset_ + linkedit_.size();
+  raw_cmd.datasize = sp.size();

-  LIEF_DEBUG("LC_ATOM_INFO.offset: 0x{:06x} -> 0x{:x}",
-             atom.data_offset(), raw_cmd.dataoff);
-  LIEF_DEBUG("LC_ATOM_INFO.size:   0x{:06x} -> 0x{:x}",
-             atom.data_size(), raw_cmd.datasize);
+  LIEF_DEBUG("LC_ATOM_INFO.offset: {:#08x} -> {:#x}", atom.data_offset(),
+             raw_cmd.dataoff);
+  LIEF_DEBUG("LC_ATOM_INFO.size:   {:#08x} -> {:#x}", atom.data_size(),
+             raw_cmd.datasize);

   linkedit_.write(sp.data(), sp.size());

@@ -1739,127 +1855,213 @@ ok_error_t Builder::build(AtomInfo& atom) {
   atom.original_data_.clear();
   atom.original_data_.resize(atom.size_);

-  memcpy(atom.original_data_.data(), &raw_cmd, sizeof(details::linkedit_data_command));
+  swap_endian_if_needed(raw_cmd);
+  memcpy(atom.original_data_.data(), &raw_cmd,
+         sizeof(details::linkedit_data_command));
   return ok();
 }

 template<class T>
 ok_error_t Builder::build(TwoLevelHints& two) {
-  return make_error_code(lief_errors::not_implemented);
-  details::twolevel_hints_command raw_cmd;
-  std::memset(&raw_cmd, 0, sizeof(details::linkedit_data_command));
+  LIEF_DEBUG("Build '{}'", to_string(two.command()));
+  details::twolevel_hints_command raw_cmd{};
   const auto it_hints = two.hints();

-  raw_cmd.cmd       = static_cast<uint32_t>(two.command());
-  raw_cmd.cmdsize   = static_cast<uint32_t>(two.size());
+  raw_cmd.cmd = static_cast<uint32_t>(two.command());
+  raw_cmd.cmdsize = static_cast<uint32_t>(two.size());

-  raw_cmd.offset  = linkedit_offset_ + linkedit_.size();
-  raw_cmd.nhints  = it_hints.size();
+  raw_cmd.offset = linkedit_offset_ + linkedit_.size();
+  raw_cmd.nhints = it_hints.size();

-  LIEF_DEBUG("LC_TWOLEVEL_HINTS.offset: 0x{:06x} -> 0x{:x}",
-             two.offset(), raw_cmd.offset);
-  LIEF_DEBUG("LC_TWOLEVEL_HINTS.nhints: 0x{:06x} -> 0x{:x}",
-             two.original_nb_hints(), raw_cmd.nhints);
+  LIEF_DEBUG("LC_TWOLEVEL_HINTS.offset: {:#08x} -> {:#x}", two.offset(),
+             raw_cmd.offset);
+  LIEF_DEBUG("LC_TWOLEVEL_HINTS.nhints: {:#08x} -> {:#x}", two.original_nb_hints(),
+             raw_cmd.nhints);

   for (uint32_t value : it_hints) {
     linkedit_.write(value);
   }

-  two.size_ = sizeof(details::linkedit_data_command);
+  two.size_ = sizeof(details::twolevel_hints_command);
   two.original_data_.clear();
   two.original_data_.resize(two.size_);

-  memcpy(two.original_data_.data(), &raw_cmd, sizeof(details::linkedit_data_command));
+  swap_endian_if_needed(raw_cmd);
+  memcpy(two.original_data_.data(), &raw_cmd,
+         sizeof(details::twolevel_hints_command));
   return ok();
 }

 template<class T>
 ok_error_t Builder::build(FunctionVariants& func_variants) {
   LIEF_DEBUG("Build '{}'", to_string(func_variants.command()));
-  details::linkedit_data_command raw_cmd;
-  std::memset(&raw_cmd, 0, sizeof(details::linkedit_data_command));
+  details::linkedit_data_command raw_cmd{};
   raw_cmd.dataoff = linkedit_.size();

-  span<const uint8_t> sp = func_variants.content();
+  // Reconstruct the payload following this layout:
+  //
+  //   uint32_t  tableCount
+  //   uint32_t  tableOffsets[tableCount]   // payload-relative, points to 'kind'
+  //   <runtime tables>
+  //
+  // where each runtime table is:
+  //
+  //   uint32_t              kind
+  //   uint32_t              count
+  //   runtime_table_entry_t entries[count]  // 8 bytes each (2 * uint32_t)
+  auto runtime_tables = func_variants.runtime_table();
+  const size_t nb_tables = runtime_tables.size();
+
+  linkedit_.write((uint32_t)nb_tables);
+
+  // The tables are stored right after the (tableCount + tableOffsets[]) header.
+  size_t table_offset = sizeof(uint32_t) * (1 + nb_tables);
+  for (const FunctionVariants::RuntimeTable& table : runtime_tables) {
+    linkedit_.write((uint32_t)table_offset);
+    // Each table is a 'kind' + 'count' header followed by its entries.
+    table_offset +=
+        2 * sizeof(uint32_t) +
+        table.entries().size() * sizeof(details::runtime_table_entry_t);
+  }
+
+  for (const FunctionVariants::RuntimeTable& table : runtime_tables) {
+    (linkedit_)
+        .write((uint32_t)table.kind())
+        .write((uint32_t)table.entries().size());
+
+    for (const FunctionVariants::RuntimeTableEntry& entry : table.entries()) {
+      details::runtime_table_entry_t raw_entry{};
+      raw_entry.impl = entry.impl();
+      raw_entry.another_table = entry.another_table();

-  // TODO(romain): We need to reconstruct the data in depth
-  linkedit_.write(sp);
+      span<const uint8_t> flag_bit_nums = entry.flag_bit_nums();
+      std::copy(flag_bit_nums.begin(), flag_bit_nums.end(),
+                std::begin(raw_entry.flag_bit_nums));

-  raw_cmd.cmd       = static_cast<uint32_t>(func_variants.command());
-  raw_cmd.cmdsize   = static_cast<uint32_t>(func_variants.size());
-  raw_cmd.datasize  = linkedit_.size() - raw_cmd.dataoff;
-  raw_cmd.dataoff   += linkedit_offset_;
+      linkedit_.write(raw_entry);
+    }
+  }
+
+  // The payload is padded to the natural pointer size (as emitted by the linker)
+  linkedit_.align(sizeof(typename T::uint));

-  LIEF_DEBUG("LC_FUNCTION_VARIANTS.offset: 0x{:06x} -> 0x{:x}",
+  raw_cmd.cmd = (uint32_t)func_variants.command();
+  raw_cmd.cmdsize = (uint32_t)func_variants.size();
+  raw_cmd.datasize = linkedit_.size() - raw_cmd.dataoff;
+  raw_cmd.dataoff += linkedit_offset_;
+
+  LIEF_DEBUG("LC_FUNCTION_VARIANTS.offset: {:#08x} -> {:#x}",
              func_variants.data_offset(), raw_cmd.dataoff);
-  LIEF_DEBUG("LC_FUNCTION_VARIANTS.size:   0x{:06x} -> 0x{:x}",
+  LIEF_DEBUG("LC_FUNCTION_VARIANTS.size:   {:#08x} -> {:#x}",
              func_variants.data_size(), raw_cmd.datasize);

   func_variants.size_ = sizeof(details::linkedit_data_command);
   func_variants.original_data_.clear();
   func_variants.original_data_.resize(func_variants.size_);
-  memcpy(func_variants.original_data_.data(), &raw_cmd, sizeof(details::linkedit_data_command));
+  swap_endian_if_needed(raw_cmd);
+  memcpy(func_variants.original_data_.data(), &raw_cmd,
+         sizeof(details::linkedit_data_command));
   return ok();
 }

 template<class T>
 ok_error_t Builder::build(FunctionVariantFixups& func_variant_fixups) {
   LIEF_DEBUG("Build '{}'", to_string(func_variant_fixups.command()));
-  details::linkedit_data_command raw_cmd;
-  std::memset(&raw_cmd, 0, sizeof(details::linkedit_data_command));
+  details::linkedit_data_command raw_cmd{};
   raw_cmd.dataoff = linkedit_.size();

-  // TODO(romain): We need to reconstruct the data in depth
-  linkedit_.write(func_variant_fixups.content());
+  for (const FunctionVariantFixups::Fixup& fixup : func_variant_fixups.fixups()) {
+    details::function_variant_fixup_t raw_fixup{};
+    raw_fixup.seg_offset = fixup.seg_offset();
+    raw_fixup.seg_index =
+        fixup.segment() != nullptr ? fixup.segment()->index() : fixup.seg_index();
+    raw_fixup.variant_index = fixup.variant_index();
+    raw_fixup.pac_auth = fixup.pac_auth();
+    raw_fixup.pac_address = fixup.pac_address();
+    raw_fixup.pac_key = fixup.pac_key();
+    raw_fixup.pac_diversity = fixup.pac_diversity();
+    linkedit_.write(raw_fixup);
+  }

   linkedit_.align(sizeof(typename T::uint));

-  raw_cmd.cmd       = static_cast<uint32_t>(func_variant_fixups.command());
-  raw_cmd.cmdsize   = static_cast<uint32_t>(func_variant_fixups.size());
-  raw_cmd.datasize  = linkedit_.size() - raw_cmd.dataoff;
-  raw_cmd.dataoff   += linkedit_offset_;
+  raw_cmd.cmd = static_cast<uint32_t>(func_variant_fixups.command());
+  raw_cmd.cmdsize = static_cast<uint32_t>(func_variant_fixups.size());
+  raw_cmd.datasize = linkedit_.size() - raw_cmd.dataoff;
+  raw_cmd.dataoff += linkedit_offset_;


-  LIEF_DEBUG("LC_FUNCTION_VARIANT_FIXUPS.offset: 0x{:06x} -> 0x{:x}",
+  LIEF_DEBUG("LC_FUNCTION_VARIANT_FIXUPS.offset: {:#08x} -> {:#x}",
              func_variant_fixups.data_offset(), raw_cmd.dataoff);
-  LIEF_DEBUG("LC_FUNCTION_VARIANT_FIXUPS.size:   0x{:06x} -> 0x{:x}",
+  LIEF_DEBUG("LC_FUNCTION_VARIANT_FIXUPS.size:   {:#08x} -> {:#x}",
              func_variant_fixups.data_size(), raw_cmd.datasize);

   func_variant_fixups.size_ = sizeof(details::linkedit_data_command);
   func_variant_fixups.original_data_.clear();
   func_variant_fixups.original_data_.resize(func_variant_fixups.size_);
-  memcpy(func_variant_fixups.original_data_.data(), &raw_cmd, sizeof(details::linkedit_data_command));
+  swap_endian_if_needed(raw_cmd);
+  memcpy(func_variant_fixups.original_data_.data(), &raw_cmd,
+         sizeof(details::linkedit_data_command));
+  return ok();
+}
+
+template<class T>
+ok_error_t Builder::build(LazyLoadDylibInfo& cmd) {
+  LIEF_DEBUG("Build '{}'", to_string(cmd.command()));
+
+  // TODO(romain): Currently, fixup addresses are not regenerated as fixup chains.
+  // This can cause an issue when a Binary::shift operation targets some of
+  // these fixup
+
+  details::linkedit_data_command raw_cmd{};
+  raw_cmd.dataoff = linkedit_.size();
+
+  cmd.serialize(linkedit_);
+  linkedit_.align(sizeof(typename T::uint));
+
+  raw_cmd.cmd = static_cast<uint32_t>(cmd.command());
+  raw_cmd.cmdsize = static_cast<uint32_t>(cmd.size());
+  raw_cmd.datasize = linkedit_.size() - raw_cmd.dataoff;
+  raw_cmd.dataoff += linkedit_offset_;
+
+  LIEF_DEBUG("LC_LAZY_LOAD_DYLIB_INFO.offset: {:#08x} -> {:#x}", cmd.data_offset(),
+             raw_cmd.dataoff);
+  LIEF_DEBUG("LC_LAZY_LOAD_DYLIB_INFO.size:   {:#08x} -> {:#x}", cmd.data_size(),
+             raw_cmd.datasize);
+
+  cmd.size_ = sizeof(details::linkedit_data_command);
+  cmd.original_data_.clear();
+  cmd.original_data_.resize(cmd.size_);
+  swap_endian_if_needed(raw_cmd);
+  memcpy(cmd.original_data_.data(), &raw_cmd,
+         sizeof(details::linkedit_data_command));
   return ok();
 }
+
 template<class MACHO_T>
 ok_error_t Builder::build_header() {
   using header_t = typename MACHO_T::header;

-  header_t header;
-  std::memset(&header, 0, sizeof(header_t));
+  header_t header{};

   const Header& binary_header = binary_->header();

-  header.magic      = static_cast<uint32_t>(binary_header.magic());
-  header.cputype    = static_cast<uint32_t>(binary_header.cpu_type());
+  header.magic = static_cast<uint32_t>(binary_header.magic());
+  header.cputype = static_cast<uint32_t>(binary_header.cpu_type());
   header.cpusubtype = static_cast<uint32_t>(binary_header.cpu_subtype());
-  header.filetype   = static_cast<uint32_t>(binary_header.file_type());
-  header.ncmds      = static_cast<uint32_t>(binary_header.nb_cmds());
+  header.filetype = static_cast<uint32_t>(binary_header.file_type());
+  header.ncmds = static_cast<uint32_t>(binary_header.nb_cmds());
   header.sizeofcmds = static_cast<uint32_t>(binary_header.sizeof_cmds());
-  header.flags      = static_cast<uint32_t>(binary_header.flags());
+  header.flags = static_cast<uint32_t>(binary_header.flags());

   if constexpr (std::is_same_v<header_t, details::mach_header_64>) {
     header.reserved = static_cast<uint32_t>(binary_header.reserved());
   }

-  LIEF_DEBUG("Writing header at: 0 (size: 0x{:04x})", sizeof(header));
+  LIEF_DEBUG("Writing header at: 0 (size: {:#06x})", sizeof(header));

-  raw_
-    .seekp(0)
-    .write(header);
+  raw_.seekp(0).write(header);

   return ok();
-
-}
 }
 }
diff --git a/deps/LIEF/src/MachO/CMakeLists.txt b/deps/LIEF/src/MachO/CMakeLists.txt
index f48f328bc7a..27bb3eb0c03 100644
--- a/deps/LIEF/src/MachO/CMakeLists.txt
+++ b/deps/LIEF/src/MachO/CMakeLists.txt
@@ -38,6 +38,7 @@ target_sources(LIB_LIEF PRIVATE
   FunctionVariantFixups.cpp
   Header.cpp
   IndirectBindingInfo.cpp
+  LazyLoadDylibInfo.cpp
   LinkEdit.cpp
   LinkerOptHint.cpp
   LoadCommand.cpp
@@ -61,6 +62,7 @@ target_sources(LIB_LIEF PRIVATE
   Symbol.cpp
   SymbolCommand.cpp
   ThreadCommand.cpp
+  ThreadLocalVariables.cpp
   TrieNode.cpp
   TwoLevelHints.cpp
   UUIDCommand.cpp
@@ -77,4 +79,3 @@ target_sources(LIB_LIEF PRIVATE
 if(LIEF_ENABLE_JSON)
   target_sources(LIB_LIEF PRIVATE json.cpp)
 endif()
-
diff --git a/deps/LIEF/src/MachO/ChainedBindingInfo.cpp b/deps/LIEF/src/MachO/ChainedBindingInfo.cpp
index 112a61ee98b..d2c6fa59e49 100644
--- a/deps/LIEF/src/MachO/ChainedBindingInfo.cpp
+++ b/deps/LIEF/src/MachO/ChainedBindingInfo.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -17,34 +17,52 @@
 #include "LIEF/MachO/ChainedBindingInfo.hpp"
 #include "MachO/ChainedFixup.hpp"

-namespace LIEF {
-namespace MachO {
+
+namespace LIEF::MachO {

 ChainedBindingInfo::ChainedBindingInfo(ChainedBindingInfo&&) noexcept = default;
-ChainedBindingInfo& ChainedBindingInfo::operator=(ChainedBindingInfo&&) noexcept = default;
+ChainedBindingInfo&
+    ChainedBindingInfo::operator=(ChainedBindingInfo&&) noexcept = default;

 ChainedBindingInfo::ChainedBindingInfo(const ChainedBindingInfo& other) :
   BindingInfo(other),
   format_{other.format_},
   ptr_format_{other.ptr_format_},
   offset_{other.offset_},
-  btypes_{other.btypes_}
-{
+  btypes_{other.btypes_} {

   switch (btypes_) {
-    case BIND_TYPES::ARM64E_AUTH_BIND:   arm64_auth_bind_    = new details::dyld_chained_ptr_arm64e_auth_bind{*other.arm64_auth_bind_};      break;
-    case BIND_TYPES::ARM64E_BIND:        arm64_bind_         = new details::dyld_chained_ptr_arm64e_bind{*other.arm64_bind_};                break;
-    case BIND_TYPES::ARM64E_BIND24:      arm64_bind24_       = new details::dyld_chained_ptr_arm64e_bind24{*other.arm64_bind24_};            break;
-    case BIND_TYPES::ARM64E_AUTH_BIND24: arm64_auth_bind24_  = new details::dyld_chained_ptr_arm64e_auth_bind24{*other.arm64_auth_bind24_};  break;
-    case BIND_TYPES::PTR32_BIND:         p32_bind_           = new details::dyld_chained_ptr_32_bind{*other.p32_bind_};                      break;
-    case BIND_TYPES::PTR64_BIND:         p64_bind_           = new details::dyld_chained_ptr_64_bind{*other.p64_bind_};                      break;
-    case BIND_TYPES::UNKNOWN: {}
+    case BIND_TYPES::ARM64E_AUTH_BIND:
+      arm64_auth_bind_ =
+          new details::dyld_chained_ptr_arm64e_auth_bind{*other.arm64_auth_bind_};
+      break;
+    case BIND_TYPES::ARM64E_BIND:
+      arm64_bind_ = new details::dyld_chained_ptr_arm64e_bind{*other.arm64_bind_};
+      break;
+    case BIND_TYPES::ARM64E_BIND24:
+      arm64_bind24_ =
+          new details::dyld_chained_ptr_arm64e_bind24{*other.arm64_bind24_};
+      break;
+    case BIND_TYPES::ARM64E_AUTH_BIND24:
+      arm64_auth_bind24_ = new details::dyld_chained_ptr_arm64e_auth_bind24{
+          *other.arm64_auth_bind24_
+      };
+      break;
+    case BIND_TYPES::PTR32_BIND:
+      p32_bind_ = new details::dyld_chained_ptr_32_bind{*other.p32_bind_};
+      break;
+    case BIND_TYPES::PTR64_BIND:
+      p64_bind_ = new details::dyld_chained_ptr_64_bind{*other.p64_bind_};
+      break;
+    case BIND_TYPES::UNKNOWN:
+    {
+    }
   }
 }

 ChainedBindingInfo::ChainedBindingInfo(DYLD_CHAINED_FORMAT fmt, bool is_weak) :
-  format_{fmt}
-{
+  format_{fmt},
+  ptr_format_{DYLD_CHAINED_PTR_FORMAT::NONE} {
   is_weak_import_ = is_weak;
 }

@@ -52,17 +70,18 @@ ChainedBindingInfo::~ChainedBindingInfo() {
   clear();
 }

-ChainedBindingInfo& ChainedBindingInfo::operator=(ChainedBindingInfo other) {
-  swap(other);
-  return *this;
-}
+ChainedBindingInfo&
+    ChainedBindingInfo::operator=(const ChainedBindingInfo& other) {
+  if (this == &other) {
+    return *this;
+  }

-void ChainedBindingInfo::swap(ChainedBindingInfo& other) noexcept {
-  BindingInfo::swap(other);
-  std::swap(format_,          other.format_);
-  std::swap(ptr_format_,      other.ptr_format_);
-  std::swap(offset_,          other.offset_);
-  std::swap(btypes_,          other.btypes_);
+  BindingInfo::operator=(other);
+  format_ = other.format_;
+  ptr_format_ = other.ptr_format_;
+  offset_ = other.offset_;
+  btypes_ = other.btypes_;
+  return *this;
 }

 void ChainedBindingInfo::accept(Visitor& visitor) const {
@@ -71,13 +90,15 @@ void ChainedBindingInfo::accept(Visitor& visitor) const {

 uint64_t ChainedBindingInfo::sign_extended_addend() const {
   switch (btypes_) {
-    case BIND_TYPES::ARM64E_AUTH_BIND:   return 0;
-    case BIND_TYPES::ARM64E_BIND:        return details::sign_extended_addend(*arm64_bind_);
-    case BIND_TYPES::ARM64E_BIND24:      return details::sign_extended_addend(*arm64_bind24_);
+    case BIND_TYPES::ARM64E_AUTH_BIND: return 0;
+    case BIND_TYPES::ARM64E_BIND:
+      return details::sign_extended_addend(*arm64_bind_);
+    case BIND_TYPES::ARM64E_BIND24:
+      return details::sign_extended_addend(*arm64_bind24_);
     case BIND_TYPES::ARM64E_AUTH_BIND24: return 0;
-    case BIND_TYPES::PTR32_BIND:         return p32_bind_->addend;
-    case BIND_TYPES::PTR64_BIND:         return details::sign_extended_addend(*p64_bind_);
-    case BIND_TYPES::UNKNOWN:            return 0;
+    case BIND_TYPES::PTR32_BIND: return p32_bind_->addend;
+    case BIND_TYPES::PTR64_BIND: return details::sign_extended_addend(*p64_bind_);
+    case BIND_TYPES::UNKNOWN: return 0;
   }
   return 0;
 }
@@ -89,7 +110,9 @@ void ChainedBindingInfo::set(const details::dyld_chained_ptr_arm64e_bind& bind)
   arm64_bind_ = new details::dyld_chained_ptr_arm64e_bind(bind);
 }

-void ChainedBindingInfo::set(const details::dyld_chained_ptr_arm64e_auth_bind& bind) {
+void ChainedBindingInfo::set(
+    const details::dyld_chained_ptr_arm64e_auth_bind& bind
+) {
   clear();
   btypes_ = BIND_TYPES::ARM64E_AUTH_BIND;
   arm64_auth_bind_ = new details::dyld_chained_ptr_arm64e_auth_bind(bind);
@@ -101,7 +124,9 @@ void ChainedBindingInfo::set(const details::dyld_chained_ptr_arm64e_bind24& bind
   arm64_bind24_ = new details::dyld_chained_ptr_arm64e_bind24(bind);
 }

-void ChainedBindingInfo::set(const details::dyld_chained_ptr_arm64e_auth_bind24& bind) {
+void ChainedBindingInfo::set(
+    const details::dyld_chained_ptr_arm64e_auth_bind24& bind
+) {
   clear();
   btypes_ = BIND_TYPES::ARM64E_AUTH_BIND24;
   arm64_auth_bind24_ = new details::dyld_chained_ptr_arm64e_auth_bind24(bind);
@@ -122,16 +147,17 @@ void ChainedBindingInfo::set(const details::dyld_chained_ptr_32_bind& bind) {

 void ChainedBindingInfo::clear() {
   switch (btypes_) {
-    case BIND_TYPES::ARM64E_AUTH_BIND:   delete arm64_auth_bind_;   break;
-    case BIND_TYPES::ARM64E_BIND:        delete arm64_bind_;        break;
-    case BIND_TYPES::ARM64E_BIND24:      delete arm64_bind24_;      break;
+    case BIND_TYPES::ARM64E_AUTH_BIND: delete arm64_auth_bind_; break;
+    case BIND_TYPES::ARM64E_BIND: delete arm64_bind_; break;
+    case BIND_TYPES::ARM64E_BIND24: delete arm64_bind24_; break;
     case BIND_TYPES::ARM64E_AUTH_BIND24: delete arm64_auth_bind24_; break;
-    case BIND_TYPES::PTR32_BIND:         delete p32_bind_;          break;
-    case BIND_TYPES::PTR64_BIND:         delete p64_bind_;          break;
-    case BIND_TYPES::UNKNOWN: {}
+    case BIND_TYPES::PTR32_BIND: delete p32_bind_; break;
+    case BIND_TYPES::PTR64_BIND: delete p64_bind_; break;
+    case BIND_TYPES::UNKNOWN:
+    {
+    }
   }
   btypes_ = BIND_TYPES::UNKNOWN;
 }

 }
-}
diff --git a/deps/LIEF/src/MachO/ChainedBindingInfoList.cpp b/deps/LIEF/src/MachO/ChainedBindingInfoList.cpp
index 2bc3e1b650b..7bfd7cd9f41 100644
--- a/deps/LIEF/src/MachO/ChainedBindingInfoList.cpp
+++ b/deps/LIEF/src/MachO/ChainedBindingInfoList.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -17,23 +17,23 @@

 #include "LIEF/MachO/ChainedBindingInfo.hpp"

-namespace LIEF {
-namespace MachO {
+
+namespace LIEF::MachO {

 std::unique_ptr<ChainedBindingInfoList>
-  ChainedBindingInfoList::create(const ChainedBindingInfo& other)
-{
-  auto result = std::make_unique<ChainedBindingInfoList>(other.format(), other.is_weak_import());
-  result->segment_         = const_cast<SegmentCommand*>(other.segment());
-  result->symbol_          = const_cast<Symbol*>(other.symbol());
+    ChainedBindingInfoList::create(const ChainedBindingInfo& other) {
+  auto result = std::make_unique<ChainedBindingInfoList>(other.format(),
+                                                         other.is_weak_import());
+  result->segment_ = const_cast<SegmentCommand*>(other.segment());
+  result->symbol_ = const_cast<Symbol*>(other.symbol());
   result->library_ordinal_ = other.library_ordinal();
-  result->addend_          = other.addend();
-  result->library_         = const_cast<DylibCommand*>(other.library());
-  result->address_         = other.address();
-  result->ptr_format_      = other.ptr_format();
-  result->offset_          = other.offset();
-  result->btypes_          = other.btypes_;
-  result->arm64_bind_      = other.arm64_bind_;
+  result->addend_ = other.addend();
+  result->library_ = const_cast<DylibCommand*>(other.library());
+  result->address_ = other.address();
+  result->ptr_format_ = other.ptr_format();
+  result->offset_ = other.offset();
+  result->btypes_ = other.btypes_;
+  result->arm64_bind_ = other.arm64_bind_;
   return result;
 }

@@ -43,4 +43,3 @@ void ChainedBindingInfoList::swap(ChainedBindingInfoList& other) noexcept {
 }

 }
-}
diff --git a/deps/LIEF/src/MachO/ChainedBindingInfoList.hpp b/deps/LIEF/src/MachO/ChainedBindingInfoList.hpp
index ed0b28eda81..3e74a77d750 100644
--- a/deps/LIEF/src/MachO/ChainedBindingInfoList.hpp
+++ b/deps/LIEF/src/MachO/ChainedBindingInfoList.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -20,8 +20,8 @@
 #include <memory>
 #include "LIEF/MachO/ChainedBindingInfo.hpp"

-namespace LIEF {
-namespace MachO {
+
+namespace LIEF::MachO {
 class BinaryParser;
 class Builder;
 class DyldChainedFixupsCreator;
@@ -34,18 +34,18 @@ class ChainedBindingInfoList : public ChainedBindingInfo {

   public:
   static std::unique_ptr<ChainedBindingInfoList>
-    create(const ChainedBindingInfo& other);
+      create(const ChainedBindingInfo& other);

   ChainedBindingInfoList() = delete;
   explicit ChainedBindingInfoList(DYLD_CHAINED_FORMAT fmt, bool is_weak) :
-    ChainedBindingInfo(fmt, is_weak)
-  {}
+    ChainedBindingInfo(fmt, is_weak) {}


-  ChainedBindingInfoList& operator=(ChainedBindingInfoList other) = delete;
+  ChainedBindingInfoList& operator=(const ChainedBindingInfoList& other) = delete;
   ChainedBindingInfoList(const ChainedBindingInfoList& other) = delete;

   ChainedBindingInfoList(ChainedBindingInfoList&&) noexcept = default;
+  ChainedBindingInfoList& operator=(ChainedBindingInfoList&& other) = default;

   void swap(ChainedBindingInfoList& other) noexcept;

@@ -60,5 +60,5 @@ class ChainedBindingInfoList : public ChainedBindingInfo {
 };

 }
-}
+
 #endif
diff --git a/deps/LIEF/src/MachO/ChainedFixup.cpp b/deps/LIEF/src/MachO/ChainedFixup.cpp
index ee57b260e0f..f10dc85a4f4 100644
--- a/deps/LIEF/src/MachO/ChainedFixup.cpp
+++ b/deps/LIEF/src/MachO/ChainedFixup.cpp
@@ -1,4 +1,4 @@
-/* Copyright 2021 - 2025 R. Thomas
+/* Copyright 2021 - 2026 R. Thomas
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -16,9 +16,8 @@
 #include "LIEF/MachO/DyldChainedFormat.hpp"
 #include "MachO/ChainedFixup.hpp"

-namespace LIEF {
-namespace MachO {
-namespace details {
+
+namespace LIEF::MachO::details {

 uint64_t sign_extended_addend(const dyld_chained_ptr_arm64e_bind24& bind) {
   const uint64_t addend19 = bind.addend;
@@ -38,7 +37,7 @@ uint64_t sign_extended_addend(const dyld_chained_ptr_arm64e_bind& bind) {

 uint64_t sign_extended_addend(const dyld_chained_ptr_64_bind& bind) {
   uint64_t addend27 = bind.addend;
-  uint64_t top8     = addend27 & 0x00007F80000ULL;
+  uint64_t top8 = addend27 & 0x00007F80000ULL;
   uint64_t bottom19 = addend27 & 0x0000007FFFFULL;
   return (top8 << 13) | (((bottom19 << 37) >> 37) & 0x00FFFFFFFFFFFFFF);
 }
@@ -69,9 +68,10 @@ void dyld_chained_ptr_generic64::pack_target(uint64_t value) {
 }

 bool chained_fixup::is_rebase(uint16_t ptr_format) const {
-  /* This is a *modified* mirror of `MachOLoaded.cpp:ChainedFixupPointerOnDisk::isRebase`
-   * As we don't need to compute targetRuntimeOffset, we removed the code sections
-   * that referenced this variable
+  /* This is a *modified* mirror of
+   * `MachOLoaded.cpp:ChainedFixupPointerOnDisk::isRebase` As we don't need to
+   * compute targetRuntimeOffset, we removed the code sections that referenced this
+   * variable
    */
   const auto ptr_fmt = static_cast<DYLD_CHAINED_PTR_FORMAT>(ptr_format);

@@ -81,47 +81,41 @@ bool chained_fixup::is_rebase(uint16_t ptr_format) const {
     case DYLD_CHAINED_PTR_FORMAT::PTR_ARM64E_USERLAND:
     case DYLD_CHAINED_PTR_FORMAT::PTR_ARM64E_USERLAND24:
     case DYLD_CHAINED_PTR_FORMAT::PTR_ARM64E_FIRMWARE:
-      {
-        if (arm64e.bind.bind > 0) {
-          return false;
-        }
-
-        if (arm64e.auth_rebase.auth > 0) {
-          return true;
-        }
+    {
+      if (arm64e.bind.bind > 0) {
+        return false;
+      }

+      if (arm64e.auth_rebase.auth > 0) {
         return true;
-        break;
       }
+
+      return true;
+      break;
+    }
     case DYLD_CHAINED_PTR_FORMAT::PTR_64:
     case DYLD_CHAINED_PTR_FORMAT::PTR_64_OFFSET:
-      {
-        return generic64.bind.bind == 0;
-      }
+    {
+      return generic64.bind.bind == 0;
+    }
     case DYLD_CHAINED_PTR_FORMAT::PTR_32:
-      {
-        return generic32.bind.bind == 0;
-      }
+    {
+      return generic32.bind.bind == 0;
+    }
     case DYLD_CHAINED_PTR_FORMAT::PTR_64_KERNEL_CACHE:
     case DYLD_CHAINED_PTR_FORMAT::PTR_X86_64_KERNEL_CACHE:
-      {
-        return true;
-      }
     case DYLD_CHAINED_PTR_FORMAT::PTR_32_FIRMWARE:
-      {
-        return true;
-      }
-    case LIEF::MachO::DYLD_CHAINED_PTR_FORMAT::PTR_ARM64E_SEGMENTED:
+    {
       return true;
+    }
+    case LIEF::MachO::DYLD_CHAINED_PTR_FORMAT::PTR_ARM64E_SEGMENTED: return true;

     default:
-      {
-        LIEF_ERR("Unknown pointer format: 0x{:04x}", ptr_format);
-        std::abort();
-      }
+    {
+      LIEF_ERR("Unknown pointer format: {:#06x}", ptr_format);
+      return false;
+    }
   }
 }

 }
-}
-}
diff --git a/deps/LIEF/src/MachO/ChainedFixup.hpp b/deps/LIEF/src/MachO/ChainedFixup.hpp
index c061f666ea7..eda7bc754bf 100644
--- a/deps/LIEF/src/MachO/ChainedFixup.hpp
+++ b/deps/LIEF/src/MachO/ChainedFixup.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2021 - 2025 R. Thomas
+/* Copyright 2021 - 2026 R. Thomas
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -17,242 +17,208 @@
 #include <cstdint>
 #include <type_traits>

-namespace LIEF {
-namespace MachO {
-namespace details {
+
+namespace LIEF::MachO::details {

 // The following structures are taken from include/mach-o/fixup-chains.h

 // header of the LC_DYLD_CHAINED_FIXUPS payload (pointer by dataoff)
 struct dyld_chained_fixups_header {
-  uint32_t fixups_version;    // 0
-  uint32_t starts_offset;     // offset of dyld_chained_starts_in_image in chain_data
-  uint32_t imports_offset;    // offset of imports table in chain_data
-  uint32_t symbols_offset;    // offset of symbol strings in chain_data
-  uint32_t imports_count;     // number of imported symbol names
-  uint32_t imports_format;    // DYLD_CHAINED_IMPORT*
-  uint32_t symbols_format;    // 0 => uncompressed, 1 => zlib compressed
+  uint32_t fixups_version; // 0
+  uint32_t starts_offset;  // offset of dyld_chained_starts_in_image in chain_data
+  uint32_t imports_offset; // offset of imports table in chain_data
+  uint32_t symbols_offset; // offset of symbol strings in chain_data
+  uint32_t imports_count;  // number of imported symbol names
+  uint32_t imports_format; // DYLD_CHAINED_IMPORT*
+  uint32_t symbols_format; // 0 => uncompressed, 1 => zlib compressed
 };

 // This struct is pointed by starts_offset in LC_DYLD_CHAINED_FIXUPS payload
 struct dyld_chained_starts_in_image {
   uint32_t seg_count;
   // NOTE(romain): Removed as it will be read entry per entry by the Stream
-  // uint32_t seg_info_offset[1];  // each entry is offset into this struct for that segment
-  // followed by pool of dyld_chain_starts_in_segment data
+  // uint32_t seg_info_offset[1];  // each entry is offset into this struct for
+  // that segment followed by pool of dyld_chain_starts_in_segment data
 };

 // This struct is embedded in dyld_chain_starts_in_image
 // and passed down to the kernel for page-in linking
-#pragma pack(push,1) // Prevent alignment
+#pragma pack(push, 1) // Prevent alignment
 struct dyld_chained_starts_in_segment {
-  uint32_t  size;               // size of this (amount kernel needs to copy)
-  uint16_t  page_size;          // 0x1000 or 0x4000
-  uint16_t  pointer_format;     // DYLD_CHAINED_PTR_*
-  uint64_t  segment_offset;     // offset in memory to start of segment
-  uint32_t  max_valid_pointer;  // for 32-bit OS, any value beyond this is not a pointer
-  uint16_t  page_count;         // how many pages are in array
+  uint32_t size;           // size of this (amount kernel needs to copy)
+  uint16_t page_size;      // 0x1000 or 0x4000
+  uint16_t pointer_format; // DYLD_CHAINED_PTR_*
+  uint64_t segment_offset; // offset in memory to start of segment
+  uint32_t
+      max_valid_pointer; // for 32-bit OS, any value beyond this is not a pointer
+  uint16_t page_count;   // how many pages are in array
   // NOTE(romain): Removed as it will be read entry per entry by the Stream
-  // uint16_t  page_start[1];      // each entry is offset in each page of first element in chain
-                                   // or DYLD_CHAINED_PTR_START_NONE if no fixups on page
- // uint16_t    chain_starts[1];    // some 32-bit formats may require multiple starts per page.
-                                    // for those, if high bit is set in page_starts[], then it
-                                    // is index into chain_starts[] which is a list of starts
-                                    // the last of which has the high bit set
+  // uint16_t  page_start[1];      // each entry is offset in each page of first
+  // element in chain or DYLD_CHAINED_PTR_START_NONE if no fixups on page
+  // uint16_t    chain_starts[1];    // some 32-bit formats may require multiple
+  // starts per page. for those, if high bit is set in page_starts[], then it is
+  // index into chain_starts[] which is a list of starts the last of which has the
+  // high bit set
 };
 #pragma pack(pop)
-static_assert(sizeof(dyld_chained_starts_in_segment) == 22, "dyld_chained_starts_in_segment: Wrong size");
+static_assert(sizeof(dyld_chained_starts_in_segment) == 22,
+              "dyld_chained_starts_in_segment: Wrong size");

 // DYLD_CHAINED_PTR_ARM64E
-struct dyld_chained_ptr_arm64e_rebase
-{
-    uint64_t    target   : 43,
-                high8    :  8,
-                next     : 11,    // 4 or 8-byte stide
-                bind     :  1,    // == 0
-                auth     :  1;    // == 0
+struct dyld_chained_ptr_arm64e_rebase {
+  uint64_t target : 43, high8 : 8,
+      next : 11, // 4 or 8-byte stide
+      bind : 1,  // == 0
+      auth : 1;  // == 0
 };

 // DYLD_CHAINED_PTR_ARM64E
-struct dyld_chained_ptr_arm64e_bind
-{
-    uint64_t    ordinal   : 16,
-                zero      : 16,
-                addend    : 19,    // +/-256K
-                next      : 11,    // 4 or 8-byte stide
-                bind      :  1,    // == 1
-                auth      :  1;    // == 0
+struct dyld_chained_ptr_arm64e_bind {
+  uint64_t ordinal : 16, zero : 16,
+      addend : 19, // +/-256K
+      next : 11,   // 4 or 8-byte stide
+      bind : 1,    // == 1
+      auth : 1;    // == 0
 };

 // DYLD_CHAINED_PTR_ARM64E
-struct dyld_chained_ptr_arm64e_auth_rebase
-{
-    uint64_t    target    : 32,   // runtimeOffset
-                diversity : 16,
-                addr_div  :  1,
-                key       :  2,
-                next      : 11,    // 4 or 8-byte stide
-                bind      :  1,    // == 0
-                auth      :  1;    // == 1
+struct dyld_chained_ptr_arm64e_auth_rebase {
+  uint64_t target : 32, // runtimeOffset
+      diversity : 16, addr_div : 1, key : 2,
+      next : 11, // 4 or 8-byte stide
+      bind : 1,  // == 0
+      auth : 1;  // == 1
 };

 // DYLD_CHAINED_PTR_ARM64E
-struct dyld_chained_ptr_arm64e_auth_bind
-{
-    uint64_t    ordinal   : 16,
-                zero      : 16,
-                diversity : 16,
-                addr_div  :  1,
-                key       :  2,
-                next      : 11,    // 4 or 8-byte stide
-                bind      :  1,    // == 1
-                auth      :  1;    // == 1
+struct dyld_chained_ptr_arm64e_auth_bind {
+  uint64_t ordinal : 16, zero : 16, diversity : 16, addr_div : 1, key : 2,
+      next : 11, // 4 or 8-byte stide
+      bind : 1,  // == 1
+      auth : 1;  // == 1
 };


 // DYLD_CHAINED_PTR_64/DYLD_CHAINED_PTR_64_OFFSET
-struct dyld_chained_ptr_64_rebase
-{
-    uint64_t    target    : 36,    // 64GB max image size (DYLD_CHAINED_PTR_64 => vmAddr, DYLD_CHAINED_PTR_64_OFFSET => runtimeOffset)
-                high8     :  8,    // top 8 bits set to this (DYLD_CHAINED_PTR_64 => after slide added, DYLD_CHAINED_PTR_64_OFFSET => before slide added)
-                reserved  :  7,    // all zeros
-                next      : 12,    // 4-byte stride
-                bind      :  1;    // == 0
+struct dyld_chained_ptr_64_rebase {
+  uint64_t target : 36, // 64GB max image size (DYLD_CHAINED_PTR_64 => vmAddr,
+                        // DYLD_CHAINED_PTR_64_OFFSET => runtimeOffset)
+      high8 : 8,    // top 8 bits set to this (DYLD_CHAINED_PTR_64 => after slide
+                    // added, DYLD_CHAINED_PTR_64_OFFSET => before slide added)
+      reserved : 7, // all zeros
+      next : 12,    // 4-byte stride
+      bind : 1;     // == 0
 };


 // DYLD_CHAINED_PTR_ARM64E_USERLAND24
-struct dyld_chained_ptr_arm64e_bind24
-{
-    uint64_t    ordinal   : 24,
-                zero      :  8,
-                addend    : 19,    // +/-256K
-                next      : 11,    // 8-byte stide
-                bind      :  1,    // == 1
-                auth      :  1;    // == 0
+struct dyld_chained_ptr_arm64e_bind24 {
+  uint64_t ordinal : 24, zero : 8,
+      addend : 19, // +/-256K
+      next : 11,   // 8-byte stide
+      bind : 1,    // == 1
+      auth : 1;    // == 0
 };

 // DYLD_CHAINED_PTR_ARM64E_USERLAND24
-struct dyld_chained_ptr_arm64e_auth_bind24
-{
-    uint64_t    ordinal   : 24,
-                zero      :  8,
-                diversity : 16,
-                addr_div  :  1,
-                key       :  2,
-                next      : 11,    // 8-byte stide
-                bind      :  1,    // == 1
-                auth      :  1;    // == 1
+struct dyld_chained_ptr_arm64e_auth_bind24 {
+  uint64_t ordinal : 24, zero : 8, diversity : 16, addr_div : 1, key : 2,
+      next : 11, // 8-byte stide
+      bind : 1,  // == 1
+      auth : 1;  // == 1
 };

 // DYLD_CHAINED_PTR_64
-struct dyld_chained_ptr_64_bind
-{
-    uint64_t    ordinal   : 24,
-                addend    :  8,   // 0 thru 255
-                reserved  : 19,   // all zeros
-                next      : 12,   // 4-byte stride
-                bind      :  1;   // == 1
+struct dyld_chained_ptr_64_bind {
+  uint64_t ordinal : 24,
+      addend : 8,    // 0 thru 255
+      reserved : 19, // all zeros
+      next : 12,     // 4-byte stride
+      bind : 1;      // == 1
 };

 // DYLD_CHAINED_PTR_64_KERNEL_CACHE, DYLD_CHAINED_PTR_X86_64_KERNEL_CACHE
-struct dyld_chained_ptr_64_kernel_cache_rebase
-{
-    uint64_t    target      : 30,   // basePointers[cacheLevel] + target
-                cache_level :  2,   // what level of cache to bind to (indexes a mach_header array)
-                diversity   : 16,
-                addr_div    :  1,
-                key         :  2,
-                next        : 12,    // 1 or 4-byte stide
-                is_auth     :  1;    // 0 -> not authenticated.  1 -> authenticated
+struct dyld_chained_ptr_64_kernel_cache_rebase {
+  uint64_t target : 30, // basePointers[cacheLevel] + target
+      cache_level
+      : 2, // what level of cache to bind to (indexes a mach_header array)
+      diversity : 16, addr_div : 1, key : 2,
+      next : 12,   // 1 or 4-byte stide
+      is_auth : 1; // 0 -> not authenticated.  1 -> authenticated
 };

 // DYLD_CHAINED_PTR_32
-// Note: for DYLD_CHAINED_PTR_32 some non-pointer values are co-opted into the chain
-// as out of range rebases.  If an entry in the chain is > max_valid_pointer, then it
-// is not a pointer.  To restore the value, subtract off the bias, which is
+// Note: for DYLD_CHAINED_PTR_32 some non-pointer values are co-opted into the
+// chain as out of range rebases.  If an entry in the chain is > max_valid_pointer,
+// then it is not a pointer.  To restore the value, subtract off the bias, which is
 // (64MB+max_valid_pointer)/2.
-struct dyld_chained_ptr_32_rebase
-{
-    uint32_t    target    : 26,   // vmaddr, 64MB max image size
-                next      :  5,   // 4-byte stride
-                bind      :  1;   // == 0
+struct dyld_chained_ptr_32_rebase {
+  uint32_t target : 26, // vmaddr, 64MB max image size
+      next : 5,         // 4-byte stride
+      bind : 1;         // == 0
 };

 // DYLD_CHAINED_PTR_32
-struct dyld_chained_ptr_32_bind
-{
-    uint32_t    ordinal   : 20,
-                addend    :  6,   // 0 thru 63
-                next      :  5,   // 4-byte stride
-                bind      :  1;   // == 1
+struct dyld_chained_ptr_32_bind {
+  uint32_t ordinal : 20,
+      addend : 6, // 0 thru 63
+      next : 5,   // 4-byte stride
+      bind : 1;   // == 1
 };

 // DYLD_CHAINED_PTR_32_CACHE
-struct dyld_chained_ptr_32_cache_rebase
-{
-    uint32_t    target    : 30,   // 1GB max dyld cache TEXT and DATA
-                next      :  2;   // 4-byte stride
+struct dyld_chained_ptr_32_cache_rebase {
+  uint32_t target : 30, // 1GB max dyld cache TEXT and DATA
+      next : 2;         // 4-byte stride
 };


 // DYLD_CHAINED_PTR_32_FIRMWARE
-struct dyld_chained_ptr_32_firmware_rebase
-{
-    uint32_t    target   : 26,   // 64MB max firmware TEXT and DATA
-                next     :  6;   // 4-byte stride
+struct dyld_chained_ptr_32_firmware_rebase {
+  uint32_t target : 26, // 64MB max firmware TEXT and DATA
+      next : 6;         // 4-byte stride
 };

 // DYLD_CHAINED_PTR_ARM64E_SEGMENTED
-struct dyld_chained_ptr_arm64e_segmented_rebase
-{
-    uint32_t    target_seg_offset : 28,   // offset in segment
-                target_seg_index  :  4;   // index into segment address table
-    uint32_t    padding           : 19,
-                next              : 12,   // 4-byte stide
-                auth              :  1;   // == 0
+struct dyld_chained_ptr_arm64e_segmented_rebase {
+  uint32_t target_seg_offset : 28, // offset in segment
+      target_seg_index : 4;        // index into segment address table
+  uint32_t padding : 19,
+      next : 12, // 4-byte stide
+      auth : 1;  // == 0
 };

 // DYLD_CHAINED_PTR_ARM64E_SEGMENTED
-struct dyld_chained_ptr_arm64e_auth_segmented_rebase
-{
-    uint32_t    target_seg_offset : 28,   // offset in segment
-                target_seg_index  :  4;   // index into segment address table
-    uint32_t    diversity         : 16,
-                addr_div          :  1,
-                key               :  2,
-                next              : 12,   // 4-byte stide
-                auth              :  1;   // == 1
+struct dyld_chained_ptr_arm64e_auth_segmented_rebase {
+  uint32_t target_seg_offset : 28, // offset in segment
+      target_seg_index : 4;        // index into segment address table
+  uint32_t diversity : 16, addr_div : 1, key : 2,
+      next : 12, // 4-byte stide
+      auth : 1;  // == 1
 };

 struct dyld_chained_import {
-  uint32_t lib_ordinal :  8,
-           weak_import :  1,
-           name_offset : 23;
+  uint32_t lib_ordinal : 8, weak_import : 1, name_offset : 23;
 };

 // DYLD_CHAINED_IMPORT_ADDEND
 struct dyld_chained_import_addend {
-  uint32_t lib_ordinal :  8,
-           weak_import :  1,
-           name_offset : 23;
-  int32_t  addend;
+  uint32_t lib_ordinal : 8, weak_import : 1, name_offset : 23;
+  int32_t addend;
 };

 // DYLD_CHAINED_IMPORT_ADDEND64
 struct dyld_chained_import_addend64 {
-  uint64_t lib_ordinal : 16,
-           weak_import :  1,
-           reserved    : 15,
-           name_offset : 32;
+  uint64_t lib_ordinal : 16, weak_import : 1, reserved : 15, name_offset : 32;
   uint64_t addend;
 };

 template<class T>
 inline void pack_target(T& rebase, uint64_t value) {
-  static_assert(std::is_same<T,dyld_chained_ptr_arm64e_rebase>::value ||
-                std::is_same<T,dyld_chained_ptr_64_rebase>::value, "Wrong type");
-  rebase.high8  = value >> 56;
+  static_assert(std::is_same_v<T, dyld_chained_ptr_arm64e_rebase> ||
+                    std::is_same_v<T, dyld_chained_ptr_64_rebase>,
+                "Wrong type");
+  rebase.high8 = value >> 56;
   rebase.target = value & 0x7FFFFFFFFFF;
 }

@@ -261,12 +227,12 @@ uint64_t sign_extended_addend(const dyld_chained_ptr_arm64e_bind24& bind);
 uint64_t sign_extended_addend(const dyld_chained_ptr_64_bind& bind);

 union dyld_chained_ptr_arm64e {
-  dyld_chained_ptr_arm64e_auth_rebase           auth_rebase;
-  dyld_chained_ptr_arm64e_auth_bind             auth_bind;
-  dyld_chained_ptr_arm64e_rebase                rebase;
-  dyld_chained_ptr_arm64e_bind                  bind;
-  dyld_chained_ptr_arm64e_bind24                bind24;
-  dyld_chained_ptr_arm64e_auth_bind24           auth_bind24;
+  dyld_chained_ptr_arm64e_auth_rebase auth_rebase;
+  dyld_chained_ptr_arm64e_auth_bind auth_bind;
+  dyld_chained_ptr_arm64e_rebase rebase;
+  dyld_chained_ptr_arm64e_bind bind;
+  dyld_chained_ptr_arm64e_bind24 bind24;
+  dyld_chained_ptr_arm64e_auth_bind24 auth_bind24;

   uint64_t sign_extended_addend() const;
   uint64_t unpack_target() const;
@@ -274,13 +240,13 @@ union dyld_chained_ptr_arm64e {
 };

 union dyld_chained_ptr_arm64e_segmented {
-  dyld_chained_ptr_arm64e_segmented_rebase      seg_rebase;
+  dyld_chained_ptr_arm64e_segmented_rebase seg_rebase;
   dyld_chained_ptr_arm64e_auth_segmented_rebase auth_seg_rebase;
 };

 union dyld_chained_ptr_generic64 {
   dyld_chained_ptr_64_rebase rebase;
-  dyld_chained_ptr_64_bind   bind;
+  dyld_chained_ptr_64_bind bind;

   uint64_t sign_extended_addend() const;
   uint64_t unpack_target() const;
@@ -289,14 +255,14 @@ union dyld_chained_ptr_generic64 {

 union dyld_chained_ptr_generic32 {
   dyld_chained_ptr_32_rebase rebase;
-  dyld_chained_ptr_32_bind   bind;
+  dyld_chained_ptr_32_bind bind;
 };

 struct dyld_chained_ptr_kernel64 : dyld_chained_ptr_64_kernel_cache_rebase {};
 struct dyld_chained_ptr_firm32 : dyld_chained_ptr_32_firmware_rebase {};

 union chained_fixup {
-  dyld_chained_ptr_arm64e    arm64e;
+  dyld_chained_ptr_arm64e arm64e;
   dyld_chained_ptr_generic64 generic64;
   dyld_chained_ptr_generic32 generic32;

@@ -304,6 +270,6 @@ union chained_fixup {
 };

 } // Namespace details
-} // Namespace MachO
-} // Namespace LIEF
+// Namespace MachO
+// Namespace LIEF
 #endif
diff --git a/deps/LIEF/src/MachO/ChainedPointerAnalysis.cpp b/deps/LIEF/src/MachO/ChainedPointerAnalysis.cpp
index 2f12e080c16..48f439a5d91 100644
--- a/deps/LIEF/src/MachO/ChainedPointerAnalysis.cpp
+++ b/deps/LIEF/src/MachO/ChainedPointerAnalysis.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -20,143 +20,152 @@
 #include <spdlog/fmt/fmt.h>

 namespace LIEF::MachO {
-std::ostream& operator<<(std::ostream& os,
-    const ChainedPointerAnalysis::dyld_chained_ptr_arm64e_rebase_t& chain)
-{
-  os << fmt::format("target: 0x{:010x} high8: 0x{:02x}, next: 0x{:03x}, "
+std::ostream& operator<<(
+    std::ostream& os,
+    const ChainedPointerAnalysis::dyld_chained_ptr_arm64e_rebase_t& chain
+) {
+  os << fmt::format("target: {:#012x} high8: {:#04x}, next: {:#05x}, "
                     "bind: {}, auth: {}",
-    chain.target, chain.high8, chain.next, (bool)chain.bind, (bool)chain.auth
-  );
+                    chain.target, chain.high8, chain.next, (bool)chain.bind,
+                    (bool)chain.auth);
   return os;
 }

-std::ostream& operator<<(std::ostream& os,
-    const ChainedPointerAnalysis::dyld_chained_ptr_arm64e_bind_t& chain)
-{
-  os << fmt::format("ordinal: 0x{:04x} zero: 0x{:04x}, addend: 0x{:05x}, "
-                    "next: 0x{:03x} bind: {}, auth: {}",
-    chain.ordinal, chain.zero, chain.addend, chain.next,
-    (bool)chain.bind, (bool)chain.auth
-  );
+std::ostream& operator<<(
+    std::ostream& os,
+    const ChainedPointerAnalysis::dyld_chained_ptr_arm64e_bind_t& chain
+) {
+  os << fmt::format("ordinal: {:#06x} zero: {:#06x}, addend: {:#07x}, "
+                    "next: {:#05x} bind: {}, auth: {}",
+                    chain.ordinal, chain.zero, chain.addend, chain.next,
+                    (bool)chain.bind, (bool)chain.auth);
   return os;
 }

-std::ostream& operator<<(std::ostream& os,
-    const ChainedPointerAnalysis::dyld_chained_ptr_arm64e_auth_rebase_t& chain)
-{
-  os << fmt::format("target: 0x{:08x} diversity: 0x{:04x}, addr_div: {}, "
-                    "key: 0x{:x} next: 0x{:03x} bind: {}, auth: {}",
-    chain.target, chain.diversity, chain.addr_div, chain.key, chain.next,
-    (bool)chain.bind, (bool)chain.auth
-  );
+std::ostream& operator<<(
+    std::ostream& os,
+    const ChainedPointerAnalysis::dyld_chained_ptr_arm64e_auth_rebase_t& chain
+) {
+  os << fmt::format("target: {:#010x} diversity: {:#06x}, addr_div: {}, "
+                    "key: {:#x} next: {:#05x} bind: {}, auth: {}",
+                    chain.target, chain.diversity, chain.addr_div, chain.key,
+                    chain.next, (bool)chain.bind, (bool)chain.auth);
   return os;
 }

-std::ostream& operator<<(std::ostream& os,
-    const ChainedPointerAnalysis::dyld_chained_ptr_arm64e_auth_bind_t& chain)
-{
-  os << fmt::format("ordinal: 0x{:04x} zero: 0x{:04x}, diversity: 0x{:04x}, "
-                    "addr_div: {} key: 0x{:x} next: 0x{:03x} bind: {}, auth: {}",
-    chain.ordinal, chain.zero, chain.diversity, chain.addr_div, chain.key,
-    chain.next, (bool)chain.bind, (bool)chain.auth
-  );
+std::ostream& operator<<(
+    std::ostream& os,
+    const ChainedPointerAnalysis::dyld_chained_ptr_arm64e_auth_bind_t& chain
+) {
+  os << fmt::format("ordinal: {:#06x} zero: {:#06x}, diversity: {:#06x}, "
+                    "addr_div: {} key: {:#x} next: {:#05x} bind: {}, auth: {}",
+                    chain.ordinal, chain.zero, chain.diversity, chain.addr_div,
+                    chain.key, chain.next, (bool)chain.bind, (bool)chain.auth);
   return os;
 }

-std::ostream& operator<<(std::ostream& os,
-    const ChainedPointerAnalysis::dyld_chained_ptr_64_rebase_t& chain)
-{
-  os << fmt::format("target: 0x{:010x} high8: 0x{:02x}, reserved: 0x{:02x}, "
-                    "next: 0x{:04x} bind: {}",
-    chain.target, chain.high8, chain.reserved, chain.next, (bool)chain.bind);
+std::ostream&
+    operator<<(std::ostream& os,
+               const ChainedPointerAnalysis::dyld_chained_ptr_64_rebase_t& chain) {
+  os << fmt::format("target: {:#012x} high8: {:#04x}, reserved: {:#04x}, "
+                    "next: {:#06x} bind: {}",
+                    chain.target, chain.high8, chain.reserved, chain.next,
+                    (bool)chain.bind);
   return os;
 }
-std::ostream& operator<<(std::ostream& os,
-    const ChainedPointerAnalysis::dyld_chained_ptr_arm64e_bind24_t& chain)
-{
-
-  os << fmt::format("ordinal: 0x{:06x} zero: 0x{:02x}, addend: 0x{:05x}, "
-                    "next: 0x{:03x} bind: {}, auth: {}",
-    chain.ordinal, chain.zero, chain.addend, chain.next, (bool)chain.bind,
-    (bool)chain.auth);
+std::ostream& operator<<(
+    std::ostream& os,
+    const ChainedPointerAnalysis::dyld_chained_ptr_arm64e_bind24_t& chain
+) {
+
+  os << fmt::format("ordinal: {:#08x} zero: {:#04x}, addend: {:#07x}, "
+                    "next: {:#05x} bind: {}, auth: {}",
+                    chain.ordinal, chain.zero, chain.addend, chain.next,
+                    (bool)chain.bind, (bool)chain.auth);
   return os;
 }
-std::ostream& operator<<(std::ostream& os,
-    const ChainedPointerAnalysis::dyld_chained_ptr_arm64e_auth_bind24_t& chain)
-{
-  os << fmt::format("ordinal: 0x{:06x} zero: 0x{:02x}, diversity: 0x{:04x}, "
-                    "addr_div: {}, key: 0x{:x}, next: 0x{:03x} bind: {}, auth: {}",
-    chain.ordinal, chain.zero, chain.diversity, chain.addr_div, chain.key,
-    chain.next, (bool)chain.bind, (bool)chain.auth);
+std::ostream& operator<<(
+    std::ostream& os,
+    const ChainedPointerAnalysis::dyld_chained_ptr_arm64e_auth_bind24_t& chain
+) {
+  os << fmt::format("ordinal: {:#08x} zero: {:#04x}, diversity: {:#06x}, "
+                    "addr_div: {}, key: {:#x}, next: {:#05x} bind: {}, auth: {}",
+                    chain.ordinal, chain.zero, chain.diversity, chain.addr_div,
+                    chain.key, chain.next, (bool)chain.bind, (bool)chain.auth);
   return os;
 }

-std::ostream& operator<<(std::ostream& os,
-    const ChainedPointerAnalysis::dyld_chained_ptr_64_bind_t& chain)
-{
-  os << fmt::format("ordinal: 0x{:06x} addend: 0x{:04x}, reserved: 0x{:05x}, "
-                    "next: 0x{:04x} bind: {}",
-    chain.ordinal, chain.addend, chain.reserved, chain.next, (bool)chain.bind);
+std::ostream&
+    operator<<(std::ostream& os,
+               const ChainedPointerAnalysis::dyld_chained_ptr_64_bind_t& chain) {
+  os << fmt::format("ordinal: {:#08x} addend: {:#06x}, reserved: {:#07x}, "
+                    "next: {:#06x} bind: {}",
+                    chain.ordinal, chain.addend, chain.reserved, chain.next,
+                    (bool)chain.bind);
   return os;
 }

-std::ostream& operator<<(std::ostream& os,
-    const ChainedPointerAnalysis::dyld_chained_ptr_64_kernel_cache_rebase_t& chain)
-{
-  os << fmt::format("target: 0x{:08x} cache_level: {}, diversity: 0x{:04x}, "
-                    "addr_div: {} key: {} next: 0x{:03x}, auth: {}",
-    chain.target, chain.cache_level, chain.diversity, chain.addr_div,
-    chain.key, chain.next, (bool)chain.is_auth);
+std::ostream& operator<<(
+    std::ostream& os,
+    const ChainedPointerAnalysis::dyld_chained_ptr_64_kernel_cache_rebase_t& chain
+) {
+  os << fmt::format("target: {:#010x} cache_level: {}, diversity: {:#06x}, "
+                    "addr_div: {} key: {} next: {:#05x}, auth: {}",
+                    chain.target, chain.cache_level, chain.diversity,
+                    chain.addr_div, chain.key, chain.next, (bool)chain.is_auth);
   return os;
 }

-std::ostream& operator<<(std::ostream& os,
-    const ChainedPointerAnalysis::dyld_chained_ptr_32_rebase_t& chain)
-{
-  os << fmt::format("target: 0x{:08x} next: 0x{:02x}, bind: {}",
-    chain.target, chain.next, (bool)chain.bind);
+std::ostream&
+    operator<<(std::ostream& os,
+               const ChainedPointerAnalysis::dyld_chained_ptr_32_rebase_t& chain) {
+  os << fmt::format("target: {:#010x} next: {:#04x}, bind: {}", chain.target,
+                    chain.next, (bool)chain.bind);
   return os;
 }

-std::ostream& operator<<(std::ostream& os,
-    const ChainedPointerAnalysis::dyld_chained_ptr_32_bind_t& chain)
-{
-  os << fmt::format("ordinal: 0x{:05x} addend: 0x{:02x}, next: 0x{:x}, bind: {}",
-    chain.ordinal, chain.addend, chain.next, (bool)chain.bind);
+std::ostream&
+    operator<<(std::ostream& os,
+               const ChainedPointerAnalysis::dyld_chained_ptr_32_bind_t& chain) {
+  os << fmt::format("ordinal: {:#07x} addend: {:#04x}, next: {:#x}, bind: {}",
+                    chain.ordinal, chain.addend, chain.next, (bool)chain.bind);
   return os;
 }

-std::ostream& operator<<(std::ostream& os,
-    const ChainedPointerAnalysis::dyld_chained_ptr_32_cache_rebase_t& chain)
-{
-  os << fmt::format("target: 0x{:06x}, next: 0x{:x}",
-                     chain.target, chain.next);
+std::ostream& operator<<(
+    std::ostream& os,
+    const ChainedPointerAnalysis::dyld_chained_ptr_32_cache_rebase_t& chain
+) {
+  os << fmt::format("target: {:#08x}, next: {:#x}", chain.target, chain.next);
   return os;
 }

-std::ostream& operator<<(std::ostream& os,
-    const ChainedPointerAnalysis::dyld_chained_ptr_32_firmware_rebase_t& chain)
-{
-  os << fmt::format("target: 0x{:06x}, next: 0x{:x}",
-                     chain.target, chain.next);
+std::ostream& operator<<(
+    std::ostream& os,
+    const ChainedPointerAnalysis::dyld_chained_ptr_32_firmware_rebase_t& chain
+) {
+  os << fmt::format("target: {:#08x}, next: {:#x}", chain.target, chain.next);
   return os;
 }

-std::ostream& operator<<(std::ostream& os,
-    const ChainedPointerAnalysis::dyld_chained_ptr_arm64e_segmented_rebase_t& chain)
-{
-  os << fmt::format("segment offset: 0x{:06x}, segment index: {}, next: 0x{:x}",
-                     chain.target_seg_offset, chain.target_seg_index, chain.next);
+std::ostream& operator<<(
+    std::ostream& os,
+    const ChainedPointerAnalysis::dyld_chained_ptr_arm64e_segmented_rebase_t& chain
+) {
+  os << fmt::format("segment offset: {:#08x}, segment index: {}, next: {:#x}",
+                    chain.target_seg_offset, chain.target_seg_index, chain.next);
   return os;
 }

-std::ostream& operator<<(std::ostream& os,
-    const ChainedPointerAnalysis::dyld_chained_ptr_arm64e_auth_segmented_rebase_t& chain)
-{
-  os << fmt::format("segment offset: 0x{:06x}, segment index: {}, next: 0x{:x}, "
+std::ostream& operator<<(
+    std::ostream& os,
+    const ChainedPointerAnalysis::dyld_chained_ptr_arm64e_auth_segmented_rebase_t&
+        chain
+) {
+  os << fmt::format("segment offset: {:#08x}, segment index: {}, next: {:#x}, "
                     "addr_div: {} key: {} diversity: {}, auth: {}",
-                     chain.target_seg_offset, chain.target_seg_index, chain.next,
-                     chain.addr_div, chain.key, chain.diversity, chain.auth);
+                    chain.target_seg_offset, chain.target_seg_index, chain.next,
+                    chain.addr_div, chain.key, chain.diversity, chain.auth);
   return os;
 }

@@ -166,108 +175,100 @@ ChainedPointerAnalysis::union_pointer_t create_impl(const T& value) {
   out.raw = 0;
   out.type = ChainedPointerAnalysis::PTR_TYPE::UNKNOWN;

-  if constexpr (std::is_same_v<T,
-      ChainedPointerAnalysis::dyld_chained_ptr_arm64e_rebase_t>)
+  if constexpr (std::is_same_v<
+                    T, ChainedPointerAnalysis::dyld_chained_ptr_arm64e_rebase_t
+                >)
   {
     out.type = ChainedPointerAnalysis::PTR_TYPE::DYLD_CHAINED_PTR_ARM64E_REBASE;
     out.arm64e_rebase = value;
-  }
-
-  else if constexpr (std::is_same_v<T,
-      ChainedPointerAnalysis::dyld_chained_ptr_arm64e_bind_t>)
+  } else if constexpr (std::is_same_v<T, ChainedPointerAnalysis::
+                                             dyld_chained_ptr_arm64e_bind_t>)
   {
     out.type = ChainedPointerAnalysis::PTR_TYPE::DYLD_CHAINED_PTR_ARM64E_BIND;
     out.arm64e_bind = value;
-  }
-
-  else if constexpr (std::is_same_v<T,
-      ChainedPointerAnalysis::dyld_chained_ptr_arm64e_auth_rebase_t>)
+  } else if constexpr (std::is_same_v<T,
+                                      ChainedPointerAnalysis::
+                                          dyld_chained_ptr_arm64e_auth_rebase_t>)
   {
-    out.type = ChainedPointerAnalysis::PTR_TYPE::DYLD_CHAINED_PTR_ARM64E_AUTH_REBASE;
+    out.type =
+        ChainedPointerAnalysis::PTR_TYPE::DYLD_CHAINED_PTR_ARM64E_AUTH_REBASE;
     out.arm64e_auth_rebase = value;
-  }
-
-  else if constexpr (std::is_same_v<T,
-      ChainedPointerAnalysis::dyld_chained_ptr_arm64e_auth_bind_t>)
+  } else if constexpr (std::is_same_v<T, ChainedPointerAnalysis::
+                                             dyld_chained_ptr_arm64e_auth_bind_t>)
   {
     out.type = ChainedPointerAnalysis::PTR_TYPE::DYLD_CHAINED_PTR_ARM64E_AUTH_BIND;
     out.arm64e_auth_bind = value;
-  }
-
-  else if constexpr (std::is_same_v<T,
-      ChainedPointerAnalysis::dyld_chained_ptr_64_rebase_t>)
+  } else if constexpr (std::is_same_v<
+                           T, ChainedPointerAnalysis::dyld_chained_ptr_64_rebase_t
+                       >)
   {
     out.type = ChainedPointerAnalysis::PTR_TYPE::DYLD_CHAINED_PTR_64_REBASE;
     out.ptr_64_rebase = value;
-  }
-
-  else if constexpr (std::is_same_v<T,
-      ChainedPointerAnalysis::dyld_chained_ptr_arm64e_bind24_t>)
+  } else if constexpr (std::is_same_v<T, ChainedPointerAnalysis::
+                                             dyld_chained_ptr_arm64e_bind24_t>)
   {
     out.type = ChainedPointerAnalysis::PTR_TYPE::DYLD_CHAINED_PTR_ARM64E_BIND24;
     out.arm64e_bind24 = value;
-  }
-
-  else if constexpr (std::is_same_v<T,
-      ChainedPointerAnalysis::dyld_chained_ptr_arm64e_auth_bind24_t>)
+  } else if constexpr (std::is_same_v<T,
+                                      ChainedPointerAnalysis::
+                                          dyld_chained_ptr_arm64e_auth_bind24_t>)
   {
-    out.type = ChainedPointerAnalysis::PTR_TYPE::DYLD_CHAINED_PTR_ARM64E_AUTH_BIND24;
+    out.type =
+        ChainedPointerAnalysis::PTR_TYPE::DYLD_CHAINED_PTR_ARM64E_AUTH_BIND24;
     out.arm64e_auth_bind24 = value;
-  }
-
-  else if constexpr (std::is_same_v<T,
-      ChainedPointerAnalysis::dyld_chained_ptr_64_bind_t>)
+  } else if constexpr (std::is_same_v<
+                           T, ChainedPointerAnalysis::dyld_chained_ptr_64_bind_t
+                       >)
   {
     out.type = ChainedPointerAnalysis::PTR_TYPE::DYLD_CHAINED_PTR_64_BIND;
     out.ptr_64_bind = value;
-  }
-
-  else if constexpr (std::is_same_v<T,
-      ChainedPointerAnalysis::dyld_chained_ptr_64_kernel_cache_rebase_t>)
+  } else if constexpr (std::is_same_v<
+                           T, ChainedPointerAnalysis::
+                                  dyld_chained_ptr_64_kernel_cache_rebase_t
+                       >)
   {
-    out.type = ChainedPointerAnalysis::PTR_TYPE::DYLD_CHAINED_PTR_64_KERNEL_CACHE_REBASE;
+    out.type =
+        ChainedPointerAnalysis::PTR_TYPE::DYLD_CHAINED_PTR_64_KERNEL_CACHE_REBASE;
     out.ptr_64_kernel_cache_rebase = value;
-  }
-
-  else if constexpr (std::is_same_v<T,
-      ChainedPointerAnalysis::dyld_chained_ptr_32_rebase_t>)
+  } else if constexpr (std::is_same_v<
+                           T, ChainedPointerAnalysis::dyld_chained_ptr_32_rebase_t
+                       >)
   {
     out.type = ChainedPointerAnalysis::PTR_TYPE::DYLD_CHAINED_PTR_32_REBASE;
     out.ptr_32_rebase = value;
-  }
-
-  else if constexpr (std::is_same_v<T,
-      ChainedPointerAnalysis::dyld_chained_ptr_32_bind_t>)
+  } else if constexpr (std::is_same_v<
+                           T, ChainedPointerAnalysis::dyld_chained_ptr_32_bind_t
+                       >)
   {
     out.type = ChainedPointerAnalysis::PTR_TYPE::DYLD_CHAINED_PTR_32_BIND;
     out.ptr_32_bind = value;
-  }
-
-  else if constexpr (std::is_same_v<T,
-      ChainedPointerAnalysis::dyld_chained_ptr_32_cache_rebase_t>)
+  } else if constexpr (std::is_same_v<T, ChainedPointerAnalysis::
+                                             dyld_chained_ptr_32_cache_rebase_t>)
   {
     out.type = ChainedPointerAnalysis::PTR_TYPE::DYLD_CHAINED_PTR_32_CACHE_REBASE;
     out.ptr_32_cache_rebase = value;
-  }
-
-  else if constexpr (std::is_same_v<T,
-      ChainedPointerAnalysis::dyld_chained_ptr_32_firmware_rebase_t>)
+  } else if constexpr (std::is_same_v<T,
+                                      ChainedPointerAnalysis::
+                                          dyld_chained_ptr_32_firmware_rebase_t>)
   {
-    out.type = ChainedPointerAnalysis::PTR_TYPE::DYLD_CHAINED_PTR_32_FIRMWARE_REBASE;
+    out.type =
+        ChainedPointerAnalysis::PTR_TYPE::DYLD_CHAINED_PTR_32_FIRMWARE_REBASE;
     out.ptr_32_firmware_rebase = value;
-  }
-
-  else if constexpr (std::is_same_v<T,
-      ChainedPointerAnalysis::dyld_chained_ptr_arm64e_segmented_rebase_t>)
+  } else if constexpr (std::is_same_v<
+                           T, ChainedPointerAnalysis::
+                                  dyld_chained_ptr_arm64e_segmented_rebase_t
+                       >)
   {
-    out.type = ChainedPointerAnalysis::PTR_TYPE::DYLD_CHAINED_PTR_ARM64E_SEGMENTED_REBASE;
+    out.type =
+        ChainedPointerAnalysis::PTR_TYPE::DYLD_CHAINED_PTR_ARM64E_SEGMENTED_REBASE;
     out.ptr_arm64e_segmented_rebase = value;
-  }
-
-  else if constexpr (std::is_same_v<T,
-      ChainedPointerAnalysis::dyld_chained_ptr_arm64e_auth_segmented_rebase_t>)
+  } else if constexpr (std::is_same_v<
+                           T, ChainedPointerAnalysis::
+                                  dyld_chained_ptr_arm64e_auth_segmented_rebase_t
+                       >)
   {
-    out.type = ChainedPointerAnalysis::PTR_TYPE::DYLD_CHAINED_PTR_ARM64E_AUTH_SEGMENTED_REBASE;
+    out.type = ChainedPointerAnalysis::PTR_TYPE::
+        DYLD_CHAINED_PTR_ARM64E_AUTH_SEGMENTED_REBASE;
     out.ptr_arm64e_auth_segmented_rebase = value;
   }

@@ -275,61 +276,62 @@ ChainedPointerAnalysis::union_pointer_t create_impl(const T& value) {
 }


-ChainedPointerAnalysis::union_pointer_t ChainedPointerAnalysis::get_as(DYLD_CHAINED_PTR_FORMAT fmt) const {
+ChainedPointerAnalysis::union_pointer_t
+    ChainedPointerAnalysis::get_as(DYLD_CHAINED_PTR_FORMAT fmt) const {
   switch (fmt) {
     case DYLD_CHAINED_PTR_FORMAT::PTR_ARM64E:
     case DYLD_CHAINED_PTR_FORMAT::PTR_ARM64E_KERNEL:
     case DYLD_CHAINED_PTR_FORMAT::PTR_ARM64E_USERLAND:
     case DYLD_CHAINED_PTR_FORMAT::PTR_ARM64E_USERLAND24:
+    {
+      if ((bool)dyld_chained_ptr_arm64e_auth_rebase().auth &&
+          (bool)dyld_chained_ptr_arm64e_auth_rebase().bind)
       {
-        if ((bool)dyld_chained_ptr_arm64e_auth_rebase().auth &&
-            (bool)dyld_chained_ptr_arm64e_auth_rebase().bind)
-        {
-          if (fmt == DYLD_CHAINED_PTR_FORMAT::PTR_ARM64E_USERLAND24) {
-            return create_impl(dyld_chained_ptr_arm64e_auth_bind24());
-          }
-          return create_impl(dyld_chained_ptr_arm64e_auth_bind());
-        }
-
-        if ( dyld_chained_ptr_arm64e_auth_rebase().auth &&
-            !dyld_chained_ptr_arm64e_auth_rebase().bind)
-        {
-          return create_impl(dyld_chained_ptr_arm64e_auth_rebase());
-        }
-        if (!dyld_chained_ptr_arm64e_auth_rebase().auth &&
-             dyld_chained_ptr_arm64e_auth_rebase().bind)
-        {
-          if (fmt == DYLD_CHAINED_PTR_FORMAT::PTR_ARM64E_USERLAND24) {
-            return create_impl(dyld_chained_ptr_arm64e_bind24());
-          }
-          return create_impl(dyld_chained_ptr_arm64e_bind());
+        if (fmt == DYLD_CHAINED_PTR_FORMAT::PTR_ARM64E_USERLAND24) {
+          return create_impl(dyld_chained_ptr_arm64e_auth_bind24());
         }
+        return create_impl(dyld_chained_ptr_arm64e_auth_bind());
+      }

-        if (!dyld_chained_ptr_arm64e_auth_rebase().auth &&
-            !dyld_chained_ptr_arm64e_auth_rebase().bind)
-        {
-          return create_impl(dyld_chained_ptr_arm64e_rebase());
+      if (dyld_chained_ptr_arm64e_auth_rebase().auth &&
+          !dyld_chained_ptr_arm64e_auth_rebase().bind)
+      {
+        return create_impl(dyld_chained_ptr_arm64e_auth_rebase());
+      }
+      if (!dyld_chained_ptr_arm64e_auth_rebase().auth &&
+          dyld_chained_ptr_arm64e_auth_rebase().bind)
+      {
+        if (fmt == DYLD_CHAINED_PTR_FORMAT::PTR_ARM64E_USERLAND24) {
+          return create_impl(dyld_chained_ptr_arm64e_bind24());
         }
+        return create_impl(dyld_chained_ptr_arm64e_bind());
+      }

-        return {};
+      if (!dyld_chained_ptr_arm64e_auth_rebase().auth &&
+          !dyld_chained_ptr_arm64e_auth_rebase().bind)
+      {
+        return create_impl(dyld_chained_ptr_arm64e_rebase());
       }

+      return {};
+    }
+
     case DYLD_CHAINED_PTR_FORMAT::PTR_64:
     case DYLD_CHAINED_PTR_FORMAT::PTR_64_OFFSET:
-      {
-        if (dyld_chained_ptr_64_rebase().bind) {
-          return create_impl(dyld_chained_ptr_64_bind());
-        }
-        return create_impl(dyld_chained_ptr_64_rebase());
+    {
+      if (dyld_chained_ptr_64_rebase().bind) {
+        return create_impl(dyld_chained_ptr_64_bind());
       }
+      return create_impl(dyld_chained_ptr_64_rebase());
+    }

     case DYLD_CHAINED_PTR_FORMAT::PTR_32:
-      {
-        if (dyld_chained_ptr_32_bind().bind) {
-          return create_impl(dyld_chained_ptr_32_bind());
-        }
-        return create_impl(dyld_chained_ptr_32_rebase());
+    {
+      if (dyld_chained_ptr_32_bind().bind) {
+        return create_impl(dyld_chained_ptr_32_bind());
       }
+      return create_impl(dyld_chained_ptr_32_rebase());
+    }

     case DYLD_CHAINED_PTR_FORMAT::PTR_32_CACHE:
       return create_impl(dyld_chained_ptr_32_cache_rebase());
@@ -341,43 +343,34 @@ ChainedPointerAnalysis::union_pointer_t ChainedPointerAnalysis::get_as(DYLD_CHAI
       return create_impl(dyld_chained_ptr_64_kernel_cache_rebase());

     case DYLD_CHAINED_PTR_FORMAT::PTR_ARM64E_SEGMENTED:
-      {
-        if (dyld_chained_ptr_arm64e_segmented_rebase().auth) {
-          return create_impl(dyld_chained_ptr_arm64e_auth_segmented_rebase());
-        }
-        return create_impl(dyld_chained_ptr_arm64e_segmented_rebase());
+    {
+      if (dyld_chained_ptr_arm64e_segmented_rebase().auth) {
+        return create_impl(dyld_chained_ptr_arm64e_auth_segmented_rebase());
       }
+      return create_impl(dyld_chained_ptr_arm64e_segmented_rebase());
+    }

-    default:
-      return {};
+    default: return {};
   }
   return {};
 }

 uint32_t ChainedPointerAnalysis::union_pointer_t::next() const {
   switch (type) {
-    case PTR_TYPE::DYLD_CHAINED_PTR_ARM64E_REBASE:
-      return arm64e_rebase.next;
-    case PTR_TYPE::DYLD_CHAINED_PTR_ARM64E_BIND:
-      return arm64e_bind.next;
+    case PTR_TYPE::DYLD_CHAINED_PTR_ARM64E_REBASE: return arm64e_rebase.next;
+    case PTR_TYPE::DYLD_CHAINED_PTR_ARM64E_BIND: return arm64e_bind.next;
     case PTR_TYPE::DYLD_CHAINED_PTR_ARM64E_AUTH_REBASE:
       return arm64e_auth_rebase.next;
-    case PTR_TYPE::DYLD_CHAINED_PTR_ARM64E_AUTH_BIND:
-      return arm64e_auth_bind.next;
-    case PTR_TYPE::DYLD_CHAINED_PTR_64_REBASE:
-      return ptr_64_rebase.next;
-    case PTR_TYPE::DYLD_CHAINED_PTR_ARM64E_BIND24:
-      return arm64e_bind24.next;
+    case PTR_TYPE::DYLD_CHAINED_PTR_ARM64E_AUTH_BIND: return arm64e_auth_bind.next;
+    case PTR_TYPE::DYLD_CHAINED_PTR_64_REBASE: return ptr_64_rebase.next;
+    case PTR_TYPE::DYLD_CHAINED_PTR_ARM64E_BIND24: return arm64e_bind24.next;
     case PTR_TYPE::DYLD_CHAINED_PTR_ARM64E_AUTH_BIND24:
       return arm64e_auth_bind24.next;
-    case PTR_TYPE::DYLD_CHAINED_PTR_64_BIND:
-      return ptr_64_bind.next;
+    case PTR_TYPE::DYLD_CHAINED_PTR_64_BIND: return ptr_64_bind.next;
     case PTR_TYPE::DYLD_CHAINED_PTR_64_KERNEL_CACHE_REBASE:
       return ptr_64_kernel_cache_rebase.next;
-    case PTR_TYPE::DYLD_CHAINED_PTR_32_REBASE:
-      return ptr_32_rebase.next;
-    case PTR_TYPE::DYLD_CHAINED_PTR_32_BIND:
-      return ptr_32_bind.next;
+    case PTR_TYPE::DYLD_CHAINED_PTR_32_REBASE: return ptr_32_rebase.next;
+    case PTR_TYPE::DYLD_CHAINED_PTR_32_BIND: return ptr_32_bind.next;
     case PTR_TYPE::DYLD_CHAINED_PTR_32_CACHE_REBASE:
       return ptr_32_cache_rebase.next;
     case PTR_TYPE::DYLD_CHAINED_PTR_32_FIRMWARE_REBASE:
@@ -386,26 +379,21 @@ uint32_t ChainedPointerAnalysis::union_pointer_t::next() const {
       return ptr_arm64e_segmented_rebase.next;
     case PTR_TYPE::DYLD_CHAINED_PTR_ARM64E_AUTH_SEGMENTED_REBASE:
       return ptr_arm64e_auth_segmented_rebase.next;
-    case PTR_TYPE::UNKNOWN:
-      return 0;
+    case PTR_TYPE::UNKNOWN: return 0;
   }
   return 0;
 }

 result<uint32_t> ChainedPointerAnalysis::union_pointer_t::ordinal() const {
   switch (type) {
-    case PTR_TYPE::DYLD_CHAINED_PTR_ARM64E_BIND:
-      return arm64e_bind.ordinal;
+    case PTR_TYPE::DYLD_CHAINED_PTR_ARM64E_BIND: return arm64e_bind.ordinal;
     case PTR_TYPE::DYLD_CHAINED_PTR_ARM64E_AUTH_BIND:
       return arm64e_auth_bind.ordinal;
-    case PTR_TYPE::DYLD_CHAINED_PTR_ARM64E_BIND24:
-      return arm64e_bind24.ordinal;
+    case PTR_TYPE::DYLD_CHAINED_PTR_ARM64E_BIND24: return arm64e_bind24.ordinal;
     case PTR_TYPE::DYLD_CHAINED_PTR_ARM64E_AUTH_BIND24:
       return arm64e_auth_bind24.ordinal;
-    case PTR_TYPE::DYLD_CHAINED_PTR_64_BIND:
-      return ptr_64_bind.ordinal;
-    case PTR_TYPE::DYLD_CHAINED_PTR_32_BIND:
-      return ptr_32_bind.ordinal;
+    case PTR_TYPE::DYLD_CHAINED_PTR_64_BIND: return ptr_64_bind.ordinal;
+    case PTR_TYPE::DYLD_CHAINED_PTR_32_BIND: return ptr_32_bind.ordinal;
     case PTR_TYPE::DYLD_CHAINED_PTR_ARM64E_REBASE:
     case PTR_TYPE::DYLD_CHAINED_PTR_ARM64E_AUTH_REBASE:
     case PTR_TYPE::DYLD_CHAINED_PTR_64_REBASE:
@@ -415,24 +403,19 @@ result<uint32_t> ChainedPointerAnalysis::union_pointer_t::ordinal() const {
     case PTR_TYPE::DYLD_CHAINED_PTR_32_CACHE_REBASE:
     case PTR_TYPE::DYLD_CHAINED_PTR_ARM64E_SEGMENTED_REBASE:
     case PTR_TYPE::DYLD_CHAINED_PTR_ARM64E_AUTH_SEGMENTED_REBASE:
-    case PTR_TYPE::UNKNOWN:
-      return make_error_code(lief_errors::not_found);
+    case PTR_TYPE::UNKNOWN: return make_error_code(lief_errors::not_found);
   }
   return make_error_code(lief_errors::not_found);
 }

 bool ChainedPointerAnalysis::union_pointer_t::is_auth() const {
   switch (type) {
-    case PTR_TYPE::DYLD_CHAINED_PTR_ARM64E_REBASE:
-      return arm64e_rebase.auth;
-    case PTR_TYPE::DYLD_CHAINED_PTR_ARM64E_BIND:
-      return arm64e_bind.auth;
+    case PTR_TYPE::DYLD_CHAINED_PTR_ARM64E_REBASE: return arm64e_rebase.auth;
+    case PTR_TYPE::DYLD_CHAINED_PTR_ARM64E_BIND: return arm64e_bind.auth;
     case PTR_TYPE::DYLD_CHAINED_PTR_ARM64E_AUTH_REBASE:
       return arm64e_auth_rebase.auth;
-    case PTR_TYPE::DYLD_CHAINED_PTR_ARM64E_AUTH_BIND:
-      return arm64e_auth_bind.auth;
-    case PTR_TYPE::DYLD_CHAINED_PTR_ARM64E_BIND24:
-      return arm64e_bind24.auth;
+    case PTR_TYPE::DYLD_CHAINED_PTR_ARM64E_AUTH_BIND: return arm64e_auth_bind.auth;
+    case PTR_TYPE::DYLD_CHAINED_PTR_ARM64E_BIND24: return arm64e_bind24.auth;
     case PTR_TYPE::DYLD_CHAINED_PTR_ARM64E_AUTH_BIND24:
       return arm64e_auth_bind24.auth;
     case PTR_TYPE::DYLD_CHAINED_PTR_ARM64E_SEGMENTED_REBASE:
@@ -446,8 +429,7 @@ bool ChainedPointerAnalysis::union_pointer_t::is_auth() const {
     case PTR_TYPE::DYLD_CHAINED_PTR_32_BIND:
     case PTR_TYPE::DYLD_CHAINED_PTR_32_CACHE_REBASE:
     case PTR_TYPE::DYLD_CHAINED_PTR_32_FIRMWARE_REBASE:
-    case PTR_TYPE::UNKNOWN:
-      return false;
+    case PTR_TYPE::UNKNOWN: return false;
   }
   return false;
 }
@@ -462,8 +444,7 @@ result<uint64_t> ChainedPointerAnalysis::union_pointer_t::target() const {
       return ptr_64_rebase.unpack_target();
     case PTR_TYPE::DYLD_CHAINED_PTR_64_KERNEL_CACHE_REBASE:
       return ptr_64_kernel_cache_rebase.target;
-    case PTR_TYPE::DYLD_CHAINED_PTR_32_REBASE:
-      return ptr_32_rebase.target;
+    case PTR_TYPE::DYLD_CHAINED_PTR_32_REBASE: return ptr_32_rebase.target;
     case PTR_TYPE::DYLD_CHAINED_PTR_32_CACHE_REBASE:
       return ptr_32_cache_rebase.target;
     case PTR_TYPE::DYLD_CHAINED_PTR_32_FIRMWARE_REBASE:
@@ -478,15 +459,13 @@ result<uint64_t> ChainedPointerAnalysis::union_pointer_t::target() const {
     case PTR_TYPE::DYLD_CHAINED_PTR_ARM64E_AUTH_BIND:
     case PTR_TYPE::DYLD_CHAINED_PTR_ARM64E_BIND24:
     case PTR_TYPE::DYLD_CHAINED_PTR_ARM64E_BIND:
-    case PTR_TYPE::UNKNOWN:
-      return make_error_code(lief_errors::not_found);
+    case PTR_TYPE::UNKNOWN: return make_error_code(lief_errors::not_found);
   }
   return make_error_code(lief_errors::not_found);
 }

 std::ostream& operator<<(std::ostream& os,
-    const ChainedPointerAnalysis::union_pointer_t& ptr)
-{
+                         const ChainedPointerAnalysis::union_pointer_t& ptr) {
   switch (ptr.type) {
     case ChainedPointerAnalysis::PTR_TYPE::DYLD_CHAINED_PTR_ARM64E_REBASE:
       os << ptr.arm64e_rebase;
@@ -527,30 +506,31 @@ std::ostream& operator<<(std::ostream& os,
     case ChainedPointerAnalysis::PTR_TYPE::DYLD_CHAINED_PTR_32_FIRMWARE_REBASE:
       os << ptr.ptr_32_firmware_rebase;
       break;
-    case ChainedPointerAnalysis::PTR_TYPE::DYLD_CHAINED_PTR_ARM64E_SEGMENTED_REBASE:
+    case ChainedPointerAnalysis::PTR_TYPE::
+        DYLD_CHAINED_PTR_ARM64E_SEGMENTED_REBASE:
       os << ptr.ptr_arm64e_segmented_rebase;
       break;
-    case ChainedPointerAnalysis::PTR_TYPE::DYLD_CHAINED_PTR_ARM64E_AUTH_SEGMENTED_REBASE:
+    case ChainedPointerAnalysis::PTR_TYPE::
+        DYLD_CHAINED_PTR_ARM64E_AUTH_SEGMENTED_REBASE:
       os << ptr.ptr_arm64e_auth_segmented_rebase;
       break;
-    case ChainedPointerAnalysis::PTR_TYPE::UNKNOWN:
-      break;
+    case ChainedPointerAnalysis::PTR_TYPE::UNKNOWN: break;
   }
   return os;
 }

 uint64_t ChainedPointerAnalysis::walk_chain(
     BinaryStream& stream, DYLD_CHAINED_PTR_FORMAT format,
-    const std::function<int(uint64_t, const union_pointer_t& ptr)>& callback)
-{
+    const std::function<int(uint64_t, const union_pointer_t& ptr)>& callback
+) {
   const size_t ptr_sizeof = ChainedPointerAnalysis::ptr_size(format);
   const size_t stride = ChainedPointerAnalysis::stride(format);
   assert(ptr_sizeof == 8 || ptr_sizeof == 4);
   const uint64_t start_pos = stream.pos();
-  while (1) {
+  while (true) {
     uint64_t value = ptr_sizeof == sizeof(uint64_t) ?
-                                   stream.peek<uint64_t>().value_or(0) :
-                                   stream.peek<uint32_t>().value_or(0);
+                         stream.peek<uint64_t>().value_or(0) :
+                         stream.peek<uint32_t>().value_or(0);
     if (value == 0) {
       break;
     }
diff --git a/deps/LIEF/src/MachO/CodeSignature.cpp b/deps/LIEF/src/MachO/CodeSignature.cpp
index 5ef1071d25c..f1bf86234d2 100644
--- a/deps/LIEF/src/MachO/CodeSignature.cpp
+++ b/deps/LIEF/src/MachO/CodeSignature.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -19,14 +19,13 @@
 #include "LIEF/MachO/CodeSignature.hpp"
 #include "MachO/Structures.hpp"

-namespace LIEF {
-namespace MachO {
+
+namespace LIEF::MachO {

 CodeSignature::CodeSignature(const details::linkedit_data_command& cmd) :
   LoadCommand::LoadCommand{LoadCommand::TYPE(cmd.cmd), cmd.cmdsize},
   data_offset_{cmd.dataoff},
-  data_size_{cmd.datasize}
-{}
+  data_size_{cmd.datasize} {}

 void CodeSignature::accept(Visitor& visitor) const {
   visitor.visit(*this);
@@ -34,10 +33,8 @@ void CodeSignature::accept(Visitor& visitor) const {

 std::ostream& CodeSignature::print(std::ostream& os) const {
   LoadCommand::print(os) << '\n';
-  os << fmt::format("offset=0x{:06x}, size=0x{:06x}",
-                     data_offset(), data_size());
+  os << fmt::format("offset={:#08x}, size={:#08x}", data_offset(), data_size());
   return os;
 }

 }
-}
diff --git a/deps/LIEF/src/MachO/CodeSignatureDir.cpp b/deps/LIEF/src/MachO/CodeSignatureDir.cpp
index d64cd4c4ad7..6ab23fb2747 100644
--- a/deps/LIEF/src/MachO/CodeSignatureDir.cpp
+++ b/deps/LIEF/src/MachO/CodeSignatureDir.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -20,14 +20,13 @@
 #include "LIEF/MachO/CodeSignatureDir.hpp"
 #include "MachO/Structures.hpp"

-namespace LIEF {
-namespace MachO {
+
+namespace LIEF::MachO {

 CodeSignatureDir::CodeSignatureDir(const details::linkedit_data_command& cmd) :
   LoadCommand::LoadCommand{LoadCommand::TYPE(cmd.cmd), cmd.cmdsize},
   data_offset_{cmd.dataoff},
-  data_size_{cmd.datasize}
-{}
+  data_size_{cmd.datasize} {}

 void CodeSignatureDir::accept(Visitor& visitor) const {
   visitor.visit(*this);
@@ -35,11 +34,9 @@ void CodeSignatureDir::accept(Visitor& visitor) const {

 std::ostream& CodeSignatureDir::print(std::ostream& os) const {
   LoadCommand::print(os) << '\n';
-  os << fmt::format("offset=0x{:06x}, size=0x{:06x}",
-                     data_offset(), data_size());
+  os << fmt::format("offset={:#08x}, size={:#08x}", data_offset(), data_size());
   return os;
 }


 }
-}
diff --git a/deps/LIEF/src/MachO/DataCodeEntry.cpp b/deps/LIEF/src/MachO/DataCodeEntry.cpp
index adcc48363d9..af5963dd4c5 100644
--- a/deps/LIEF/src/MachO/DataCodeEntry.cpp
+++ b/deps/LIEF/src/MachO/DataCodeEntry.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -21,36 +21,31 @@

 #include "frozen.hpp"

-namespace LIEF {
-namespace MachO {
+
+namespace LIEF::MachO {

 DataCodeEntry::DataCodeEntry(const details::data_in_code_entry& entry) :
   offset_{entry.offset},
   length_{entry.length},
-  type_{static_cast<TYPES>(entry.kind)}
-{}
+  type_{static_cast<TYPES>(entry.kind)} {}

 void DataCodeEntry::accept(Visitor& visitor) const {
   visitor.visit(*this);
 }

 std::ostream& operator<<(std::ostream& os, const DataCodeEntry& entry) {
-  os << fmt::format("{}: offset=0x{:06x}, size=0x{:x}",
-                     to_string(entry.type()), entry.offset(), entry.length());
+  os << fmt::format("{}: offset={:#08x}, size={:#x}", to_string(entry.type()),
+                    entry.offset(), entry.length());
   return os;
 }

 const char* to_string(DataCodeEntry::TYPES e) {
-  #define ENTRY(X) std::pair(DataCodeEntry::TYPES::X, #X)
-  STRING_MAP enums2str {
-    ENTRY(UNKNOWN),
-    ENTRY(DATA),
-    ENTRY(JUMP_TABLE_8),
-    ENTRY(JUMP_TABLE_16),
-    ENTRY(JUMP_TABLE_32),
-    ENTRY(ABS_JUMP_TABLE_32),
+#define ENTRY(X) std::pair(DataCodeEntry::TYPES::X, #X)
+  STRING_MAP enums2str{
+      ENTRY(UNKNOWN),       ENTRY(DATA),          ENTRY(JUMP_TABLE_8),
+      ENTRY(JUMP_TABLE_16), ENTRY(JUMP_TABLE_32), ENTRY(ABS_JUMP_TABLE_32),
   };
-  #undef ENTRY
+#undef ENTRY

   if (auto it = enums2str.find(e); it != enums2str.end()) {
     return it->second;
@@ -59,4 +54,3 @@ const char* to_string(DataCodeEntry::TYPES e) {
 }

 }
-}
diff --git a/deps/LIEF/src/MachO/DataInCode.cpp b/deps/LIEF/src/MachO/DataInCode.cpp
index 811f676420c..2225bf93252 100644
--- a/deps/LIEF/src/MachO/DataInCode.cpp
+++ b/deps/LIEF/src/MachO/DataInCode.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -20,14 +20,13 @@
 #include "LIEF/MachO/DataInCode.hpp"
 #include "MachO/Structures.hpp"

-namespace LIEF {
-namespace MachO {
+
+namespace LIEF::MachO {

 DataInCode::DataInCode(const details::linkedit_data_command& cmd) :
   LoadCommand::LoadCommand{LoadCommand::TYPE(cmd.cmd), cmd.cmdsize},
   data_offset_{cmd.dataoff},
-  data_size_{cmd.datasize}
-{}
+  data_size_{cmd.datasize} {}

 void DataInCode::accept(Visitor& visitor) const {
   visitor.visit(*this);
@@ -35,10 +34,8 @@ void DataInCode::accept(Visitor& visitor) const {

 std::ostream& DataInCode::print(std::ostream& os) const {
   LoadCommand::print(os) << '\n';
-  os << fmt::format("offset=0x{:06x}, size=0x{:06x}",
-                     data_offset(), data_size());
+  os << fmt::format("offset={:#08x}, size={:#08x}", data_offset(), data_size());
   return os;
 }

 }
-}
diff --git a/deps/LIEF/src/MachO/DyldBindingInfo.cpp b/deps/LIEF/src/MachO/DyldBindingInfo.cpp
index 56bb1ddd1e1..136ae4dd71d 100644
--- a/deps/LIEF/src/MachO/DyldBindingInfo.cpp
+++ b/deps/LIEF/src/MachO/DyldBindingInfo.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -17,29 +17,28 @@
 #include "LIEF/Visitor.hpp"
 #include "LIEF/MachO/DyldBindingInfo.hpp"

-namespace LIEF {
-namespace MachO {
+
+namespace LIEF::MachO {

 DyldBindingInfo::DyldBindingInfo(CLASS cls, TYPE type, uint64_t address,
-                                 int64_t addend, int32_t oridnal, bool is_weak, bool is_non_weak_definition,
-                                 uint64_t offset) :
+                                 int64_t addend, int32_t oridnal, bool is_weak,
+                                 bool is_non_weak_definition, uint64_t offset) :
   class_{cls},
   binding_type_{type},
   is_non_weak_definition_{is_non_weak_definition},
-  offset_{offset}
-{
+  offset_{offset} {
   library_ordinal_ = oridnal;
-  addend_          = addend;
-  is_weak_import_  = is_weak;
-  address_         = address;
+  addend_ = addend;
+  is_weak_import_ = is_weak;
+  address_ = address;
 }

 void DyldBindingInfo::swap(DyldBindingInfo& other) noexcept {
   BindingInfo::swap(other);
-  std::swap(class_,                   other.class_);
-  std::swap(binding_type_,            other.binding_type_);
-  std::swap(is_non_weak_definition_,  other.is_non_weak_definition_);
-  std::swap(offset_,                  other.offset_);
+  std::swap(class_, other.class_);
+  std::swap(binding_type_, other.binding_type_);
+  std::swap(is_non_weak_definition_, other.is_non_weak_definition_);
+  std::swap(offset_, other.offset_);
 }

 void DyldBindingInfo::accept(Visitor& visitor) const {
@@ -47,14 +46,14 @@ void DyldBindingInfo::accept(Visitor& visitor) const {
 }

 const char* to_string(DyldBindingInfo::CLASS e) {
-  #define ENTRY(X) std::pair(DyldBindingInfo::CLASS::X, #X)
-  STRING_MAP enums2str {
-    ENTRY(WEAK),
-    ENTRY(LAZY),
-    ENTRY(STANDARD),
-    ENTRY(THREADED),
+#define ENTRY(X) std::pair(DyldBindingInfo::CLASS::X, #X)
+  STRING_MAP enums2str{
+      ENTRY(WEAK),
+      ENTRY(LAZY),
+      ENTRY(STANDARD),
+      ENTRY(THREADED),
   };
-  #undef ENTRY
+#undef ENTRY
   if (auto it = enums2str.find(e); it != enums2str.end()) {
     return it->second;
   }
@@ -62,13 +61,13 @@ const char* to_string(DyldBindingInfo::CLASS e) {
 }

 const char* to_string(DyldBindingInfo::TYPE e) {
-  #define ENTRY(X) std::pair(DyldBindingInfo::TYPE::X, #X)
-  STRING_MAP enums2str {
-    ENTRY(POINTER),
-    ENTRY(TEXT_ABSOLUTE32),
-    ENTRY(TEXT_PCREL32),
+#define ENTRY(X) std::pair(DyldBindingInfo::TYPE::X, #X)
+  STRING_MAP enums2str{
+      ENTRY(POINTER),
+      ENTRY(TEXT_ABSOLUTE32),
+      ENTRY(TEXT_PCREL32),
   };
-  #undef ENTRY
+#undef ENTRY
   if (auto it = enums2str.find(e); it != enums2str.end()) {
     return it->second;
   }
@@ -76,4 +75,3 @@ const char* to_string(DyldBindingInfo::TYPE e) {
 }

 }
-}
diff --git a/deps/LIEF/src/MachO/DyldChainedFixups.cpp b/deps/LIEF/src/MachO/DyldChainedFixups.cpp
index a47a3e07b2a..c2bfb93c36b 100644
--- a/deps/LIEF/src/MachO/DyldChainedFixups.cpp
+++ b/deps/LIEF/src/MachO/DyldChainedFixups.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -26,8 +26,8 @@
 #include "MachO/ChainedFixup.hpp"
 #include "MachO/ChainedBindingInfoList.hpp"

-namespace LIEF {
-namespace MachO {
+
+namespace LIEF::MachO {
 DyldChainedFixups::~DyldChainedFixups() = default;
 DyldChainedFixups::DyldChainedFixups() = default;

@@ -42,24 +42,24 @@ DyldChainedFixups& DyldChainedFixups::operator=(const DyldChainedFixups& other)
 DyldChainedFixups::DyldChainedFixups(const DyldChainedFixups& other) :
   LoadCommand::LoadCommand(other),
   data_offset_{other.data_offset_},
-  data_size_{other.data_size_}
-{}
+  data_size_{other.data_size_} {}

 DyldChainedFixups::DyldChainedFixups(const details::linkedit_data_command& cmd) :
   LoadCommand::LoadCommand{LoadCommand::TYPE(cmd.cmd), cmd.cmdsize},
   data_offset_{cmd.dataoff},
-  data_size_{cmd.datasize}
-{}
-
-
-void DyldChainedFixups::update_with(const details::dyld_chained_fixups_header& header) {
-  fixups_version_  = header.fixups_version;
-  starts_offset_   = header.starts_offset;
-  imports_offset_  = header.imports_offset;
-  symbols_offset_  = header.symbols_offset;
-  imports_count_   = header.imports_count;
-  symbols_format_  = header.symbols_format;
-  imports_format_  = static_cast<DYLD_CHAINED_FORMAT>(header.imports_format);
+  data_size_{cmd.datasize} {}
+
+
+void DyldChainedFixups::update_with(
+    const details::dyld_chained_fixups_header& header
+) {
+  fixups_version_ = header.fixups_version;
+  starts_offset_ = header.starts_offset;
+  imports_offset_ = header.imports_offset;
+  symbols_offset_ = header.symbols_offset;
+  imports_count_ = header.imports_count;
+  symbols_format_ = header.symbols_format;
+  imports_format_ = static_cast<DYLD_CHAINED_FORMAT>(header.imports_format);
 }

 void DyldChainedFixups::accept(Visitor& visitor) const {
@@ -83,7 +83,8 @@ std::ostream& DyldChainedFixups::print(std::ostream& os) const {
   for (size_t i = 0; i < segments.size(); ++i) {
     const chained_starts_in_segment& info = segments[i];
     static constexpr char PREFIX[] = "  ";
-    os << fmt::format("{}seg_offset[{}] = {:03d} ({})\n", PREFIX, i,  info.offset, info.segment.name());
+    os << fmt::format("{}seg_offset[{}] = {:03d} ({})\n", PREFIX, i, info.offset,
+                      info.segment.name());
   }

   for (size_t i = 0; i < segments.size(); ++i) {
@@ -91,12 +92,14 @@ std::ostream& DyldChainedFixups::print(std::ostream& os) const {
     if (info.offset == 0) {
       continue;
     }
-    os << fmt::format("chained starts in segment {} ({})\n", i, info.segment.name());
+    os << fmt::format("chained starts in segment {} ({})\n", i,
+                      info.segment.name());
     os << info << "\n";

     for (const Relocation& reloc : info.segment.relocations()) {
       if (const auto* r = reloc.cast<RelocationFixup>()) {
-        os << fmt::format("[RELOC] 0x{:08x}: 0x{:08x}\n", r->address(), r->target());
+        os << fmt::format("[RELOC] {:#010x}: {:#010x}\n", r->address(),
+                          r->target());
       }
     }
     os << "\n";
@@ -124,32 +127,34 @@ std::ostream& DyldChainedFixups::print(std::ostream& os) const {
       symbol = sym->name();
     }

-    os << fmt::format("{}0x{:08x}: {} ({}) addend: 0x{:x}\n",
-                      segment_name, bind.address(), symbol, libname, bind.sign_extended_addend());
-
-
+    os << fmt::format("{}{:#010x}: {} ({}) addend: {:#x}\n", segment_name,
+                      bind.address(), symbol, libname,
+                      bind.sign_extended_addend());
   }
   return os;
 }

-DyldChainedFixups::chained_starts_in_segment::chained_starts_in_segment(uint32_t offset, const details::dyld_chained_starts_in_segment& info,
-                                                                        SegmentCommand& segment) :
+DyldChainedFixups::chained_starts_in_segment::chained_starts_in_segment(
+    uint32_t offset, const details::dyld_chained_starts_in_segment& info,
+    SegmentCommand& segment
+) :
   offset{offset},
   size{info.size},
   page_size{info.page_size},
   segment_offset{info.segment_offset},
   max_valid_pointer{info.max_valid_pointer},
   pointer_format{static_cast<DYLD_CHAINED_PTR_FORMAT>(info.pointer_format)},
-  segment{segment}
-{}
-
-std::ostream& operator<<(std::ostream& os, const DyldChainedFixups::chained_starts_in_segment& info) {
-  os << fmt::format("size              = {}\n",     info.size);
-  os << fmt::format("page_size         = 0x{:x}\n", info.page_size);
-  os << fmt::format("pointer_format    = {}\n",     to_string(info.pointer_format));
-  os << fmt::format("segment_offset    = 0x{:x}\n", info.segment_offset);
-  os << fmt::format("max_valid_pointer = 0x{:x}\n", info.max_valid_pointer);
-  os << fmt::format("page_count        = {}\n",     info.page_count());
+  segment{segment} {}
+
+std::ostream&
+    operator<<(std::ostream& os,
+               const DyldChainedFixups::chained_starts_in_segment& info) {
+  os << fmt::format("size              = {}\n", info.size);
+  os << fmt::format("page_size         = {:#x}\n", info.page_size);
+  os << fmt::format("pointer_format    = {}\n", to_string(info.pointer_format));
+  os << fmt::format("segment_offset    = {:#x}\n", info.segment_offset);
+  os << fmt::format("max_valid_pointer = {:#x}\n", info.max_valid_pointer);
+  os << fmt::format("page_count        = {}\n", info.page_count());

   for (size_t i = 0; i < info.page_count(); ++i) {
     os << fmt::format("  page_start[{}] = {}\n", i, info.page_start[i]);
@@ -158,4 +163,3 @@ std::ostream& operator<<(std::ostream& os, const DyldChainedFixups::chained_star
 }

 }
-}
diff --git a/deps/LIEF/src/MachO/DyldChainedFixupsCreator.cpp b/deps/LIEF/src/MachO/DyldChainedFixupsCreator.cpp
index 9442f6438c8..e58bbce950d 100644
--- a/deps/LIEF/src/MachO/DyldChainedFixupsCreator.cpp
+++ b/deps/LIEF/src/MachO/DyldChainedFixupsCreator.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -44,27 +44,24 @@ struct strong_symbol_t {

 class StrongSymbolHash {
   public:
-  size_t operator()(const strong_symbol_t& sym) const noexcept{
+  size_t operator()(const strong_symbol_t& sym) const noexcept {
     return std::hash<std::string>{}(sym.symbol + std::to_string(sym.libord));
   }
 };

-class strong_map_t : public std::unordered_map<
-  strong_symbol_t, ChainedBindingInfoList*, StrongSymbolHash
->
-{};
+class strong_map_t
+  : public std::unordered_map<strong_symbol_t, ChainedBindingInfoList*,
+                              StrongSymbolHash> {};

 uint64_t DyldChainedFixupsCreator::binding_rebase_t::addr() const {
-  return type == binding_rebase_t::BINDING ?
-         binding->address() : fixup->address();
+  return type == binding_rebase_t::BINDING ? binding->address() : fixup->address();
 }


 DYLD_CHAINED_PTR_FORMAT
-  DyldChainedFixupsCreator::pointer_format(const Binary& bin, size_t imp_count)
-{
+DyldChainedFixupsCreator::pointer_format(const Binary& bin, size_t imp_count) {
   if (imp_count > MAX_IMPORTS) {
-    LIEF_ERR("Too many imports (0x{:06x})", imp_count);
+    LIEF_ERR("Too many imports ({:#08x})", imp_count);
     return DYLD_CHAINED_PTR_FORMAT::NONE;
   }
   // Logic taken from ld64 -- OutputFile::chainedPointerFormat()
@@ -80,9 +77,9 @@ DYLD_CHAINED_PTR_FORMAT
   return DYLD_CHAINED_PTR_FORMAT::PTR_64;
 }

-result<size_t> DyldChainedFixupsCreator::lib2ord(
-    const Binary& bin, const Symbol& sym, const std::string& lib)
-{
+result<size_t> DyldChainedFixupsCreator::lib2ord(const Binary& bin,
+                                                 const Symbol& sym,
+                                                 const std::string& lib) {
   {
     int ord = sym.library_ordinal();
     if (Symbol::is_valid_index_ordinal(ord)) {
@@ -99,20 +96,19 @@ result<size_t> DyldChainedFixupsCreator::lib2ord(
   }

   if (lib.empty()) {
-    LIEF_ERR("No library for the symbol: '{}'", sym.name());
+    LIEF_ERR("No library found for symbol '{}'", sym.name());
     return make_error_code(lief_errors::not_found);
   }

   auto libs = bin.libraries();

-  auto it = std::find_if(libs.begin(), libs.end(),
-    [&lib] (const DylibCommand& dylib) {
-      return dylib.name() == lib;
-    }
-  );
+  auto it =
+      std::find_if(libs.begin(), libs.end(), [&lib](const DylibCommand& dylib) {
+        return dylib.name() == lib;
+      });

   if (it == libs.end()) {
-    LIEF_ERR("Library '{}' not found!", lib);
+    LIEF_ERR("Library '{}' not found", lib);
     return make_error_code(lief_errors::not_found);
   }

@@ -122,9 +118,8 @@ result<size_t> DyldChainedFixupsCreator::lib2ord(
 }


-const Symbol* DyldChainedFixupsCreator::find_symbol(
-  const Binary& bin, const std::string& name)
-{
+const Symbol* DyldChainedFixupsCreator::find_symbol(const Binary& bin,
+                                                    const std::string& name) {
   for (const Symbol& sym : bin.symbols()) {
     if (sym.name() == name) {
       return &sym;
@@ -133,53 +128,51 @@ const Symbol* DyldChainedFixupsCreator::find_symbol(
   return nullptr;
 }

-DyldChainedFixupsCreator& DyldChainedFixupsCreator::add_binding(
-    uint64_t address, std::string symbol, std::string library,
-    uint64_t addend, bool weak)
-{
-  bindings_.push_back({
-    address, std::move(library), std::move(symbol), weak, addend
-  });
+DyldChainedFixupsCreator&
+    DyldChainedFixupsCreator::add_binding(uint64_t address, std::string symbol,
+                                          std::string library, uint64_t addend,
+                                          bool weak) {
+  bindings_.push_back({address, std::move(library), std::move(symbol), weak,
+                       addend});
   return *this;
 }


 ok_error_t DyldChainedFixupsCreator::process_relocations(
-  Binary& target, DYLD_CHAINED_PTR_FORMAT ptr_fmt)
-{
+    Binary& target, DYLD_CHAINED_PTR_FORMAT ptr_fmt
+) {
   const uint64_t imagebase = target.imagebase();
   for (const reloc_info_t& info : relocations_) {
     auto fixup = std::make_unique<RelocationFixup>(ptr_fmt, target.imagebase());
     fixup->address_ = info.addr;
-    SegmentCommand* segment = target.segment_from_virtual_address(fixup->address());
+    SegmentCommand* segment =
+        target.segment_from_virtual_address(fixup->address());
     if (segment == nullptr) {
-      LIEF_WARN("Can't find segment for the relocation: 0x{:016x}", fixup->address());
+      LIEF_WARN("Segment not found for relocation at {:#018x}", fixup->address());
       continue;
     }

     switch (ptr_fmt) {
       case DYLD_CHAINED_PTR_FORMAT::PTR_ARM64E:
       case DYLD_CHAINED_PTR_FORMAT::PTR_ARM64E_USERLAND24:
-        {
-          details::dyld_chained_ptr_arm64e_rebase raw;
-          std::memset(&raw, 0, sizeof(raw));
-          details::pack_target(raw, info.target - imagebase);
-          fixup->set(raw);
-          break;
-        }
+      {
+        details::dyld_chained_ptr_arm64e_rebase raw{};
+        details::pack_target(raw, info.target - imagebase);
+        fixup->set(raw);
+        break;
+      }
       case DYLD_CHAINED_PTR_FORMAT::PTR_64:
-        {
-          details::dyld_chained_ptr_64_rebase raw;
-          std::memset(&raw, 0, sizeof(raw));
-          details::pack_target(raw, info.target - imagebase);
-          fixup->set(raw);
-          break;
-        }
+      {
+        details::dyld_chained_ptr_64_rebase raw{};
+        details::pack_target(raw, info.target - imagebase);
+        fixup->set(raw);
+        break;
+      }
       default:
-        {
-          LIEF_WARN("Chained ptr format: {} is not supported", to_string(ptr_fmt));
-          break;
-        }
+      {
+        LIEF_WARN("Unsupported chained pointer format: {}", to_string(ptr_fmt));
+        break;
+      }
     }
     segment_chains_[segment].emplace_back(*fixup);
     segment->relocations_.push_back(std::move(fixup));
@@ -187,18 +180,18 @@ ok_error_t DyldChainedFixupsCreator::process_relocations(
   return ok();
 }

-ok_error_t DyldChainedFixupsCreator::process_bindings(
-  Binary& target, strong_map_t& strong_map,
-  std::unordered_map<std::string, size_t>& symbols_idx,
-  DyldChainedFixups* cmd,
-  DyldChainedFixups::binding_info_t& all_bindings
-)
-{
+DyldChainedFixups::binding_info_t DyldChainedFixupsCreator::process_bindings(
+    Binary& target, strong_map_t& strong_map,
+    std::unordered_map<std::string, size_t>& symbols_idx, DyldChainedFixups* cmd
+) {
+  DyldChainedFixups::binding_info_t bindings;
+  bindings.reserve(bindings_.size());
+
   for (const binding_info_t& info : bindings_) {
     const Symbol* sym = find_symbol(target, info.symbol);

     if (sym == nullptr) {
-      LIEF_ERR("Can't resolve symbol: '{}", info.symbol);
+      LIEF_ERR("Failed to resolve symbol: '{}'", info.symbol);
       continue;
     }

@@ -209,13 +202,14 @@ ok_error_t DyldChainedFixupsCreator::process_bindings(

     SegmentCommand* segment = target.segment_from_virtual_address(info.address);
     if (segment == nullptr) {
-      LIEF_ERR("Can't find segment associated with address: 0x{:016x}", info.address);
+      LIEF_ERR("Segment not found for address {:#018x}", info.address);
       continue;
     }

     const size_t ord = *libord;

-    auto binding = std::make_unique<ChainedBindingInfo>(imports_format_, info.weak);
+    auto binding =
+        std::make_unique<ChainedBindingInfo>(imports_format_, info.weak);
     binding->symbol_ = const_cast<Symbol*>(sym);
     binding->library_ordinal_ = ord;
     binding->addend_ = info.addend;
@@ -241,9 +235,9 @@ ok_error_t DyldChainedFixupsCreator::process_bindings(
       cmd->internal_bindings_.push_back(std::move(binding_list));
     }

-    all_bindings.push_back(std::move(binding));
+    bindings.push_back(std::move(binding));
   }
-  return ok();
+  return bindings;
 }

 DyldChainedFixups* DyldChainedFixupsCreator::create(Binary& target) {
@@ -253,20 +247,18 @@ DyldChainedFixups* DyldChainedFixupsCreator::create(Binary& target) {
   cmd->size_ = sizeof(details::linkedit_data_command);

   cmd->fixups_version_ = fixups_version_;
-  cmd->symbols_format_ = /* uncompressed */0;
+  cmd->symbols_format_ = /* uncompressed */ 0;
   cmd->imports_format_ = DYLD_CHAINED_FORMAT::IMPORT;

-  DyldChainedFixups::binding_info_t all_bindings;
-  all_bindings.reserve(bindings_.size());
-
   std::unordered_map<std::string, size_t> symbols_idx;
   strong_map_t strong_map;
-  if (!process_bindings(target, strong_map, symbols_idx, cmd.get(), all_bindings)) {
-    return nullptr;
-  }
+
+  cmd->all_bindings_ =
+      process_bindings(target, strong_map, symbols_idx, cmd.get());

   const size_t import_count = cmd->internal_bindings_.size();
-  const DYLD_CHAINED_PTR_FORMAT import_ptr_fmt = pointer_format(target, import_count);
+  const DYLD_CHAINED_PTR_FORMAT import_ptr_fmt =
+      pointer_format(target, import_count);

   if (!process_relocations(target, import_ptr_fmt)) {
     return nullptr;
@@ -295,36 +287,38 @@ DyldChainedFixups* DyldChainedFixupsCreator::create(Binary& target) {
       for (size_t i = 0; i < chains.size(); ++i) {
         uint32_t next = 0;
         binding_rebase_t& element = chains[i];
-        //LIEF_DEBUG("    0x{:016x}: {}", binding->address(), binding->symbol()->name());
+        // LIEF_DEBUG("    {:#018x}: {}", binding->address(),
+        // binding->symbol()->name());
         uint64_t address = element.addr();
         uint64_t target_offset = address - imagebase;
-        LIEF_DEBUG("      address:        0x{:016x}", address);
-        LIEF_DEBUG("      target  offset: 0x{:016x}", target_offset);
-        LIEF_DEBUG("      segment offset: 0x{:016x}", segment_offset);
-        assert (target_offset >= segment_offset);
+        LIEF_DEBUG("      address:        {:#018x}", address);
+        LIEF_DEBUG("      target_offset:  {:#018x}", target_offset);
+        LIEF_DEBUG("      segment_offset: {:#018x}", segment_offset);
+        assert(target_offset >= segment_offset);
         uint64_t offset = target_offset - segment_offset;

         uint32_t page_idx = offset / page_size;
         uint32_t delta = offset % page_size;
         LIEF_DEBUG("      page_idx: {}", page_idx);
-        LIEF_DEBUG("      delta: 0x{:016x}", delta);
-        LIEF_DEBUG("      offset: 0x{:016x}" , offset);
+        LIEF_DEBUG("      delta: {:#018x}", delta);
+        LIEF_DEBUG("      offset: {:#018x}", offset);

         if (i < chains.size() - 1) {
           binding_rebase_t& next_element = chains[i + 1];
           uint64_t next_address = next_element.addr();
           uint64_t next_target_offset = next_address - imagebase;
           uint64_t next_offset = next_target_offset - segment_offset;
-          assert (next_target_offset >= segment_offset);
+          assert(next_target_offset >= segment_offset);

           uint32_t next_page_idx = next_offset / page_size;
           uint32_t next_delta = next_offset % page_size;
-          LIEF_DEBUG("        [next]address:        0x{:016x}", address);
-          LIEF_DEBUG("        [next]target  offset: 0x{:016x}", next_target_offset);
+          LIEF_DEBUG("        [next] address:        {:#018x}", address);
+          LIEF_DEBUG("        [next] target_offset:  {:#018x}",
+                     next_target_offset);

-          LIEF_DEBUG("        [next]page_idx: {}", next_page_idx);
-          LIEF_DEBUG("        [next]delta: 0x{:016x}", next_delta);
-          LIEF_DEBUG("        [next]offset: 0x{:016x}" , next_offset);
+          LIEF_DEBUG("        [next] page_idx: {}", next_page_idx);
+          LIEF_DEBUG("        [next] delta: {:#018x}", next_delta);
+          LIEF_DEBUG("        [next] offset: {:#018x}", next_offset);

           if (next_page_idx == page_idx) {
             assert((next_delta - delta) % stride == 0);
@@ -334,71 +328,68 @@ DyldChainedFixups* DyldChainedFixupsCreator::create(Binary& target) {
         LIEF_DEBUG("      next: {} (stride: {})", next, stride);

         if (page_idx >= info.page_start.size()) {
-          info.page_start.resize(page_idx + 1, /* DYLD_CHAINED_PTR_START_NONE */0xFFFF);
+          info.page_start.resize(page_idx + 1,
+                                 /* DYLD_CHAINED_PTR_START_NONE */ 0xFFFF);
           info.page_start[page_idx] = delta;
         }
         if (element.is_binding()) {
-          const uint16_t ordinal = symbols_idx.at(element.binding->symbol()->name());
+          const uint16_t ordinal =
+              symbols_idx.at(element.binding->symbol()->name());
           switch (import_ptr_fmt) {
             case DYLD_CHAINED_PTR_FORMAT::PTR_ARM64E_USERLAND24:
-              {
-                details::dyld_chained_ptr_arm64e_bind24 raw;
-                std::memset(&raw, 0, sizeof(raw));
-                raw.bind = 1;
-                raw.next = next;
-                raw.ordinal = ordinal;
-                element.binding->set(raw);
-                break;
-              }
+            {
+              details::dyld_chained_ptr_arm64e_bind24 raw{};
+              raw.bind = 1;
+              raw.next = next;
+              raw.ordinal = ordinal;
+              element.binding->set(raw);
+              break;
+            }

             case DYLD_CHAINED_PTR_FORMAT::PTR_ARM64E:
-              {
-                details::dyld_chained_ptr_arm64e_bind raw;
-                std::memset(&raw, 0, sizeof(raw));
-                raw.bind = 1;
-                raw.next = next;
-                raw.ordinal = ordinal;
-                element.binding->set(raw);
-                break;
-              }
+            {
+              details::dyld_chained_ptr_arm64e_bind raw{};
+              raw.bind = 1;
+              raw.next = next;
+              raw.ordinal = ordinal;
+              element.binding->set(raw);
+              break;
+            }

             case DYLD_CHAINED_PTR_FORMAT::PTR_64:
-              {
-                details::dyld_chained_ptr_64_bind raw;
-                std::memset(&raw, 0, sizeof(raw));
-                raw.bind = 1;
-                raw.next = next;
-                raw.ordinal = ordinal;
-                element.binding->set(raw);
-                break;
-              }
+            {
+              details::dyld_chained_ptr_64_bind raw{};
+              raw.bind = 1;
+              raw.next = next;
+              raw.ordinal = ordinal;
+              element.binding->set(raw);
+              break;
+            }
             default:
-              {
-                LIEF_WARN("Chained ptr format: {} is not supported", to_string(import_ptr_fmt));
-                break;
-              }
+            {
+              LIEF_WARN("Unsupported chained pointer format: {}",
+                        to_string(import_ptr_fmt));
+              break;
+            }
           }

-          element.binding->offset(
-              (element.binding->address() - segment.virtual_address()) +
-              segment.file_offset()
-          );
+          element.binding->offset((element.binding->address() -
+                                   segment.virtual_address()) +
+                                  segment.file_offset());
         } else {
           assert(element.is_fixup());
           element.fixup->next(next);
-          element.fixup->offset(
-              (element.binding->address() - segment.virtual_address()) +
-              segment.file_offset()
-          );
+          element.fixup->offset((element.binding->address() -
+                                 segment.virtual_address()) +
+                                segment.file_offset());
         }
       }
     }
     LIEF_DEBUG("Adding chained_starts_in_segment[{}] ({} pages)",
-        info.segment.name(), info.page_count());
+               info.segment.name(), info.page_count());
     cmd->chained_starts_in_segment_.push_back(info);
   }

-  cmd->all_bindings_ = std::move(all_bindings);
   LoadCommand* added = target.add(std::move(cmd));
   if (added == nullptr) {
     return nullptr;
@@ -408,8 +399,7 @@ DyldChainedFixups* DyldChainedFixupsCreator::create(Binary& target) {


 DyldChainedFixupsCreator&
-  DyldChainedFixupsCreator::add_relocation(uint64_t address, uint64_t target)
-{
+    DyldChainedFixupsCreator::add_relocation(uint64_t address, uint64_t target) {
   relocations_.push_back({address, target});
   return *this;
 }
diff --git a/deps/LIEF/src/MachO/DyldChainedFormat.cpp b/deps/LIEF/src/MachO/DyldChainedFormat.cpp
index b27bbc366c5..04c9ef38426 100644
--- a/deps/LIEF/src/MachO/DyldChainedFormat.cpp
+++ b/deps/LIEF/src/MachO/DyldChainedFormat.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -17,17 +17,17 @@
 #define LIEF_MACHO_DYLD_CHAINED_FORMAT_H
 #include "LIEF/MachO/DyldChainedFormat.hpp"
 #include "frozen.hpp"
-namespace LIEF {
-namespace MachO {
+
+namespace LIEF::MachO {

 const char* to_string(DYLD_CHAINED_FORMAT e) {
-  #define ENTRY(X) std::pair(DYLD_CHAINED_FORMAT::X, #X)
-  STRING_MAP enums2str {
-    ENTRY(IMPORT),
-    ENTRY(IMPORT_ADDEND),
-    ENTRY(IMPORT_ADDEND64),
+#define ENTRY(X) std::pair(DYLD_CHAINED_FORMAT::X, #X)
+  STRING_MAP enums2str{
+      ENTRY(IMPORT),
+      ENTRY(IMPORT_ADDEND),
+      ENTRY(IMPORT_ADDEND64),
   };
-  #undef ENTRY
+#undef ENTRY

   if (auto it = enums2str.find(e); it != enums2str.end()) {
     return it->second;
@@ -35,25 +35,25 @@ const char* to_string(DYLD_CHAINED_FORMAT e) {
   return "UNKNOWN";
 }
 const char* to_string(DYLD_CHAINED_PTR_FORMAT e) {
-  #define ENTRY(X) std::pair(DYLD_CHAINED_PTR_FORMAT::X, #X)
-  STRING_MAP enums2str {
-    ENTRY(NONE),
-    ENTRY(PTR_ARM64E),
-    ENTRY(PTR_64),
-    ENTRY(PTR_32),
-    ENTRY(PTR_32_CACHE),
-    ENTRY(PTR_32_FIRMWARE),
-    ENTRY(PTR_64_OFFSET),
-    ENTRY(PTR_ARM64E_KERNEL),
-    ENTRY(PTR_64_KERNEL_CACHE),
-    ENTRY(PTR_ARM64E_USERLAND),
-    ENTRY(PTR_ARM64E_FIRMWARE),
-    ENTRY(PTR_X86_64_KERNEL_CACHE),
-    ENTRY(PTR_ARM64E_USERLAND24),
-    ENTRY(PTR_ARM64E_SHARED_CACHE),
-    ENTRY(PTR_ARM64E_SEGMENTED),
+#define ENTRY(X) std::pair(DYLD_CHAINED_PTR_FORMAT::X, #X)
+  STRING_MAP enums2str{
+      ENTRY(NONE),
+      ENTRY(PTR_ARM64E),
+      ENTRY(PTR_64),
+      ENTRY(PTR_32),
+      ENTRY(PTR_32_CACHE),
+      ENTRY(PTR_32_FIRMWARE),
+      ENTRY(PTR_64_OFFSET),
+      ENTRY(PTR_ARM64E_KERNEL),
+      ENTRY(PTR_64_KERNEL_CACHE),
+      ENTRY(PTR_ARM64E_USERLAND),
+      ENTRY(PTR_ARM64E_FIRMWARE),
+      ENTRY(PTR_X86_64_KERNEL_CACHE),
+      ENTRY(PTR_ARM64E_USERLAND24),
+      ENTRY(PTR_ARM64E_SHARED_CACHE),
+      ENTRY(PTR_ARM64E_SEGMENTED),
   };
-  #undef ENTRY
+#undef ENTRY

   if (auto it = enums2str.find(e); it != enums2str.end()) {
     return it->second;
@@ -62,5 +62,5 @@ const char* to_string(DYLD_CHAINED_PTR_FORMAT e) {
 }

 }
-}
+
 #endif
diff --git a/deps/LIEF/src/MachO/DyldEnvironment.cpp b/deps/LIEF/src/MachO/DyldEnvironment.cpp
index bc4e9094fe6..dc06fd051c1 100644
--- a/deps/LIEF/src/MachO/DyldEnvironment.cpp
+++ b/deps/LIEF/src/MachO/DyldEnvironment.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -17,12 +17,11 @@
 #include "LIEF/MachO/DyldEnvironment.hpp"
 #include "MachO/Structures.hpp"

-namespace LIEF {
-namespace MachO {
+
+namespace LIEF::MachO {

 DyldEnvironment::DyldEnvironment(const details::dylinker_command& cmd) :
-  LoadCommand::LoadCommand{LoadCommand::TYPE(cmd.cmd), cmd.cmdsize}
-{}
+  LoadCommand::LoadCommand{LoadCommand::TYPE(cmd.cmd), cmd.cmdsize} {}

 void DyldEnvironment::accept(Visitor& visitor) const {
   visitor.visit(*this);
@@ -35,4 +34,3 @@ std::ostream& DyldEnvironment::print(std::ostream& os) const {
 }

 }
-}
diff --git a/deps/LIEF/src/MachO/DyldExportsTrie.cpp b/deps/LIEF/src/MachO/DyldExportsTrie.cpp
index f132ea16bea..ac7ffdb8c14 100644
--- a/deps/LIEF/src/MachO/DyldExportsTrie.cpp
+++ b/deps/LIEF/src/MachO/DyldExportsTrie.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -25,16 +25,15 @@
 #include "MachO/Structures.hpp"
 #include "MachO/exports_trie.hpp"

-namespace LIEF {
-namespace MachO {
+
+namespace LIEF::MachO {

 DyldExportsTrie::DyldExportsTrie() = default;
 DyldExportsTrie::~DyldExportsTrie() = default;
 DyldExportsTrie::DyldExportsTrie(const DyldExportsTrie& other) :
   LoadCommand::LoadCommand(other),
   data_offset_{other.data_offset_},
-  data_size_{other.data_size_}
-{
+  data_size_{other.data_size_} {
   /* Do not copy export info */
 }

@@ -46,15 +45,14 @@ DyldExportsTrie& DyldExportsTrie::operator=(DyldExportsTrie other) {
 DyldExportsTrie::DyldExportsTrie(const details::linkedit_data_command& cmd) :
   LoadCommand::LoadCommand{LoadCommand::TYPE(cmd.cmd), cmd.cmdsize},
   data_offset_{cmd.dataoff},
-  data_size_{cmd.datasize}
-{}
+  data_size_{cmd.datasize} {}


 void DyldExportsTrie::swap(DyldExportsTrie& other) noexcept {
   LoadCommand::swap(other);
   std::swap(data_offset_, other.data_offset_);
-  std::swap(data_size_,   other.data_size_);
-  std::swap(content_,     other.content_);
+  std::swap(data_size_, other.data_size_);
+  std::swap(content_, other.content_);
   std::swap(export_info_, other.export_info_);
 }

@@ -62,8 +60,8 @@ void DyldExportsTrie::accept(Visitor& visitor) const {
   visitor.visit(*this);
 }

-void DyldExportsTrie::add(std::unique_ptr<ExportInfo> info) {
-  export_info_.push_back(std::move(info));
+ExportInfo* DyldExportsTrie::add(std::unique_ptr<ExportInfo> info) {
+  return export_info_.emplace_back(std::move(info)).get();
 }

 std::string DyldExportsTrie::show_export_trie() const {
@@ -77,10 +75,8 @@ std::string DyldExportsTrie::show_export_trie() const {

 std::ostream& DyldExportsTrie::print(std::ostream& os) const {
   LoadCommand::print(os) << '\n';
-  os << fmt::format("offset=0x{:06x}, size=0x{:06x}",
-                     data_offset(), data_size());
+  os << fmt::format("offset={:#08x}, size={:#08x}", data_offset(), data_size());
   return os;
 }

 }
-}
diff --git a/deps/LIEF/src/MachO/DyldInfo.cpp b/deps/LIEF/src/MachO/DyldInfo.cpp
index 8fef588f9ce..8011a880476 100644
--- a/deps/LIEF/src/MachO/DyldInfo.cpp
+++ b/deps/LIEF/src/MachO/DyldInfo.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -14,6 +14,9 @@
  * limitations under the License.
  */
 #include <sstream>
+
+#include <spdlog/fmt/fmt.h>
+
 #include "logging.hpp"
 #include "frozen.hpp"
 #include "LIEF/iostream.hpp"
@@ -35,18 +38,19 @@

 #include "MachO/exports_trie.hpp"
 #include "MachO/Structures.hpp"
+#include "MachO/dyld_opcodes.hpp"

 #include "Object.tcc"

-namespace LIEF {
-namespace MachO {
+
+namespace LIEF::MachO {

 struct ThreadedBindData {
   std::string symbol_name;
-  int64_t addend          = 0;
+  int64_t addend = 0;
   int64_t library_ordinal = 0;
-  uint8_t symbol_flags    = 0;
-  uint8_t type            = 0;
+  uint8_t symbol_flags = 0;
+  uint8_t type = 0;
 };

 DyldInfo::DyldInfo() = default;
@@ -68,65 +72,77 @@ DyldInfo::DyldInfo(const DyldInfo& copy) :
   lazy_bind_{copy.lazy_bind_},
   lazy_bind_opcodes_{copy.lazy_bind_opcodes_},
   export_{copy.export_},
-  export_trie_{copy.export_trie_}
-{}
+  export_trie_{copy.export_trie_} {}

 DyldInfo::DyldInfo(const details::dyld_info_command& dyld_info_cmd) :
-  LoadCommand::LoadCommand{LoadCommand::TYPE(dyld_info_cmd.cmd), dyld_info_cmd.cmdsize},
+  LoadCommand::LoadCommand{LoadCommand::TYPE(dyld_info_cmd.cmd),
+                           dyld_info_cmd.cmdsize},
   rebase_{dyld_info_cmd.rebase_off, dyld_info_cmd.rebase_size},
   bind_{dyld_info_cmd.bind_off, dyld_info_cmd.bind_size},
   weak_bind_{dyld_info_cmd.weak_bind_off, dyld_info_cmd.weak_bind_size},
   lazy_bind_{dyld_info_cmd.lazy_bind_off, dyld_info_cmd.lazy_bind_size},
-  export_{dyld_info_cmd.export_off, dyld_info_cmd.export_size}
-{}
+  export_{dyld_info_cmd.export_off, dyld_info_cmd.export_size} {}


 void DyldInfo::swap(DyldInfo& other) noexcept {
   LoadCommand::swap(other);

-  std::swap(rebase_,             other.rebase_);
-  std::swap(rebase_opcodes_,     other.rebase_opcodes_);
+  std::swap(rebase_, other.rebase_);
+  std::swap(rebase_opcodes_, other.rebase_opcodes_);

-  std::swap(bind_,               other.bind_);
-  std::swap(bind_opcodes_,       other.bind_opcodes_);
+  std::swap(bind_, other.bind_);
+  std::swap(bind_opcodes_, other.bind_opcodes_);

-  std::swap(weak_bind_,          other.weak_bind_);
-  std::swap(weak_bind_opcodes_,  other.weak_bind_opcodes_);
+  std::swap(weak_bind_, other.weak_bind_);
+  std::swap(weak_bind_opcodes_, other.weak_bind_opcodes_);

-  std::swap(lazy_bind_,          other.lazy_bind_);
-  std::swap(lazy_bind_opcodes_,  other.lazy_bind_opcodes_);
+  std::swap(lazy_bind_, other.lazy_bind_);
+  std::swap(lazy_bind_opcodes_, other.lazy_bind_opcodes_);

-  std::swap(export_,             other.export_);
-  std::swap(export_trie_,        other.export_trie_);
+  std::swap(export_, other.export_);
+  std::swap(export_trie_, other.export_trie_);

-  std::swap(export_info_,        other.export_info_);
-  std::swap(binding_info_,       other.binding_info_);
+  std::swap(export_info_, other.export_info_);
+  std::swap(binding_info_, other.binding_info_);

-  std::swap(binary_,             other.binary_);
+  std::swap(binary_, other.binary_);
 }

 void DyldInfo::rebase_opcodes(buffer_t raw) {
   if (raw.size() > rebase_opcodes_.size()) {
-    LIEF_WARN("Can't update rebase opcodes. The provided data is larger than the original ones");
+    LIEF_WARN("Rebase opcodes update failed: data exceeds original size");
     return;
   }
-  std::move(std::begin(raw), std::end(raw), rebase_opcodes_.data());
+  std::move(raw.begin(), raw.end(), rebase_opcodes_.data());
+}
+
+inline std::string safe_segment_name(Binary::it_segments& segments, size_t idx) {
+  return idx < segments.size() ? segments[idx].name() : "<invalid>";
 }

+inline std::string safe_library_name(Binary::it_libraries& libraries,
+                                     int64_t idx) {
+  if (idx >= 0 && static_cast<size_t>(idx) < libraries.size()) {
+    return libraries[idx].name();
+  }
+  return "<invalid>";
+}

 std::string DyldInfo::show_rebases_opcodes() const {
   static constexpr char tab[] = "    ";

   if (binary_ == nullptr) {
-    LIEF_WARN("Can't print rebase opcode");
+    LIEF_WARN("Failed to print rebase opcode");
     return "";
   }

-  size_t pint_v = static_cast<LIEF::Binary*>(binary_)->header().is_64() ? sizeof(uint64_t) : sizeof(uint32_t);
+  size_t pint_v = static_cast<LIEF::Binary*>(binary_)->header().is_64() ?
+                      sizeof(uint64_t) :
+                      sizeof(uint32_t);
   std::ostringstream output;

-  bool     done = false;
-  uint8_t  type = 0;
+  bool done = false;
+  uint8_t type = 0;
   uint32_t segment_index = 0;
   uint64_t segment_offset = 0;
   uint32_t count = 0;
@@ -143,205 +159,211 @@ std::string DyldInfo::show_rebases_opcodes() const {
     uint8_t imm = *val & IMMEDIATE_MASK;
     auto opcode = REBASE_OPCODES(*val & OPCODE_MASK);

-    switch(opcode) {
+    switch (opcode) {
       case REBASE_OPCODES::DONE:
-        {
-          output << "[" << to_string(opcode) << "]" << '\n';
-          done = true;
-          break;
-        }
+      {
+        output << "[" << to_string(opcode) << "]" << '\n';
+        done = true;
+        break;
+      }

       case REBASE_OPCODES::SET_TYPE_IMM:
-        {
-          type = imm;
-          output << "[" << to_string(opcode) << "] ";
-          output << "Type: " << to_string(REBASE_TYPE(type));
-          output << '\n';
+      {
+        type = imm;
+        output << "[" << to_string(opcode) << "] ";
+        output << "Type: " << to_string(REBASE_TYPE(type));
+        output << '\n';
+        break;
+      }
+
+      case REBASE_OPCODES::SET_SEGMENT_AND_OFFSET_ULEB:
+      {
+        if (auto val = rebase_stream.read_uleb128()) {
+          segment_offset = *val;
+        } else {
+          LIEF_ERR("Failed to read REBASE_OPCODE_SET_SEGMENT_AND_OFFSET_ULEB "
+                   "segment offset");
           break;
         }

-      case REBASE_OPCODES::SET_SEGMENT_AND_OFFSET_ULEB:
-        {
-          if (auto val = rebase_stream.read_uleb128()) {
-            segment_offset = *val;
-          } else {
-            LIEF_ERR("Can't read REBASE_OPCODE_SET_SEGMENT_AND_OFFSET_ULEB segment offset");
-            break;
-          }
+        segment_index = imm;

-          segment_index = imm;
+        output << "[" << to_string(opcode) << "] ";
+        output << fmt::format("Segment Index := {} ({}) ", segment_index,
+                              safe_segment_name(segments, segment_index));
+        output << fmt::format("Segment Offset := {:#x}\n", segment_offset);

-          output << "[" << to_string(opcode) << "] ";
-          output << "Segment Index := " << std::dec << segment_index << " (" << segments[segment_index].name() << ") ";
-          output << "Segment Offset := " << std::hex << std::showbase << segment_offset;
-          output << '\n';
+        break;
+      }

+      case REBASE_OPCODES::ADD_ADDR_ULEB:
+      {
+        uint64_t val = 0;
+        if (auto res = rebase_stream.read_uleb128()) {
+          val = *res;
+        } else {
+          LIEF_ERR("Failed to read REBASE_OPCODE_ADD_ADDR_ULEB segment offset");
           break;
         }

-      case REBASE_OPCODES::ADD_ADDR_ULEB:
-        {
-          uint64_t val = 0;
-          if (auto res = rebase_stream.read_uleb128()) {
-            val = *res;
-          } else {
-            LIEF_ERR("Can't read REBASE_OPCODE_ADD_ADDR_ULEB segment offset");
-            break;
-          }
-
-          segment_offset += val;
+        segment_offset += val;

-          output << "[" << to_string(opcode) << "] ";
-          output << "Segment Offset += " << std::hex << std::showbase << val << " (" << segment_offset << ")";
-          output << '\n';
-          break;
-        }
+        output << "[" << to_string(opcode) << "] ";
+        output << fmt::format("Segment Offset += {:#x} ({:#x})\n", val,
+                              segment_offset);
+        break;
+      }

       case REBASE_OPCODES::ADD_ADDR_IMM_SCALED:
-        {
-          segment_offset += (imm * pint_v);
+      {
+        segment_offset += (imm * pint_v);

-          output << "[" << to_string(opcode) << "]" ;
-          output << "Segment Offset += " << std::hex << std::showbase << (imm * pint_v) << " (" << segment_offset << ")";
-          output << '\n';
-          break;
-        }
+        output << "[" << to_string(opcode) << "]";
+        output << fmt::format("Segment Offset += {:#x} ({:#x})\n", imm * pint_v,
+                              segment_offset);
+        break;
+      }

       case REBASE_OPCODES::DO_REBASE_IMM_TIMES:
-        {
-          output << "[" << to_string(opcode) << "]" << '\n';
-          output << tab << "for i in range(" << std::dec << static_cast<uint32_t>(imm) << "):" << '\n';
-          for (size_t i = 0; i < imm; ++i) {
-            output << tab << tab;
-            output << "rebase(";
-            output << to_string(REBASE_TYPE(type));
-            output << ", ";
-            output << segments[segment_index].name();
-            output << ", ";
-            output << std::hex << std::showbase << segment_offset;
-            output << ")" << '\n';
-
-            segment_offset += pint_v;
-
-            output << tab << tab;
-            output << "Segment Offset += " << std::hex << std::showbase << pint_v << " (" << segment_offset << ")";
-            output << '\n' << '\n';
-          }
-          output << '\n';
+      {
+        output << "[" << to_string(opcode) << "]" << '\n';
+        output << fmt::format("{}for i in range({}):\n", tab,
+                              static_cast<uint32_t>(imm));
+        for (size_t i = 0; i < imm; ++i) {
+          output << tab << tab;
+          output << fmt::format("rebase({}, {}, {:#x})\n",
+                                to_string(REBASE_TYPE(type)),
+                                safe_segment_name(segments, segment_index),
+                                segment_offset);
+
+          segment_offset += pint_v;
+
+          output << tab << tab;
+          output << fmt::format("Segment Offset += {:#x} ({:#x})\n\n", pint_v,
+                                segment_offset);
+        }
+        output << '\n';
+        break;
+      }
+      case REBASE_OPCODES::DO_REBASE_ULEB_TIMES:
+      {
+
+        if (auto res = rebase_stream.read_uleb128()) {
+          count = *res;
+        } else {
+          LIEF_ERR("Failed to read REBASE_OPCODE_DO_REBASE_ULEB_TIMES count");
           break;
         }
-      case REBASE_OPCODES::DO_REBASE_ULEB_TIMES:
-        {

-          if (auto res = rebase_stream.read_uleb128()) {
-            count = *res;
-          } else {
-            LIEF_ERR("Can't read REBASE_OPCODE_DO_REBASE_ULEB_TIMES count");
-            break;
-          }
+        count = safe_dyld_opcode_count<uint32_t>(segment_index < segments.size() ?
+                                                     &segments[segment_index] :
+                                                     nullptr,
+                                                 segment_offset, pint_v, count);

-          output << "[" << to_string(opcode) << "]" << '\n';
+        output << "[" << to_string(opcode) << "]" << '\n';

-          output << tab << "for i in range(" << std::dec << static_cast<uint32_t>(count) << "):" << '\n';
-          for (size_t i = 0; i < count; ++i) {
-            output << tab << tab;
-            output << "rebase(";
-            output << to_string(REBASE_TYPE(type));
-            output << ", ";
-            output << segments[segment_index].name();
-            output << ", ";
-            output << std::hex << std::showbase << segment_offset;
-            output << ")" << '\n';
-
-            segment_offset += pint_v;
-
-            output << tab << tab;
-            output << "Segment Offset += " << std::hex << std::showbase << pint_v << " (" << segment_offset << ")";
-            output << '\n' << '\n';
-          }
+        output << fmt::format("{}for i in range({}):\n", tab,
+                              static_cast<uint32_t>(count));
+        for (size_t i = 0; i < count; ++i) {
+          output << tab << tab;
+          output << fmt::format("rebase({}, {}, {:#x})\n",
+                                to_string(REBASE_TYPE(type)),
+                                safe_segment_name(segments, segment_index),
+                                segment_offset);

-          output << '\n';
-          break;
-        }
+          segment_offset += pint_v;

-      case REBASE_OPCODES::DO_REBASE_ADD_ADDR_ULEB:
-        {
+          output << tab << tab;
+          output << fmt::format("Segment Offset += {:#x} ({:#x})\n\n", pint_v,
+                                segment_offset);
+        }

-          output << "[" << to_string(opcode) << "]" << '\n';
+        output << '\n';
+        break;
+      }

-          output << tab;
-          output << "rebase(";
-          output << to_string(REBASE_TYPE(type));
-          output << ", ";
-          output << segments[segment_index].name();
-          output << ", ";
-          output << std::hex << std::showbase << segment_offset;
-          output << ")" << '\n';
-
-          uint64_t val = 0;
-          if (auto res = rebase_stream.read_uleb128()) {
-            val = *res;
-          } else {
-            LIEF_ERR("Can't read REBASE_OPCODE_DO_REBASE_ADD_ADDR_ULEB value");
-            break;
-          }
-          segment_offset += val + pint_v;
+      case REBASE_OPCODES::DO_REBASE_ADD_ADDR_ULEB:
+      {

+        output << "[" << to_string(opcode) << "]" << '\n';

-          output << tab;
-          output << "Segment Offset += " << std::hex << std::showbase << (val + pint_v) << " (" << segment_offset << ")";
-          output << '\n';
+        output << tab;
+        output << fmt::format("rebase({}, {}, {:#x})\n",
+                              to_string(REBASE_TYPE(type)),
+                              safe_segment_name(segments, segment_index),
+                              segment_offset);

+        uint64_t val = 0;
+        if (auto res = rebase_stream.read_uleb128()) {
+          val = *res;
+        } else {
+          LIEF_ERR("Failed to read REBASE_OPCODE_DO_REBASE_ADD_ADDR_ULEB value");
           break;
         }
+        segment_offset += val + pint_v;

-      case REBASE_OPCODES::DO_REBASE_ULEB_TIMES_SKIPPING_ULEB:
-        {

-          output << "[" << to_string(static_cast<REBASE_OPCODES>(opcode)) << "]" << '\n';
+        output << tab;
+        output << fmt::format("Segment Offset += {:#x} ({:#x})\n", val + pint_v,
+                              segment_offset);

-          // Count
-          if (auto res = rebase_stream.read_uleb128()) {
-            count = *res;
-          } else {
-            LIEF_ERR("Can't read REBASE_OPCODE_DO_REBASE_ULEB_TIMES_SKIPPING_ULEB count");
-            break;
-          }
+        break;
+      }

-          // Skip
-          if (auto res = rebase_stream.read_uleb128()) {
-            skip = *res;
-          } else {
-            LIEF_ERR("Can't read REBASE_OPCODE_DO_REBASE_ULEB_TIMES_SKIPPING_ULEB skip");
-            break;
-          }
+      case REBASE_OPCODES::DO_REBASE_ULEB_TIMES_SKIPPING_ULEB:
+      {

-          output << tab << "for i in range(" << std::dec << static_cast<uint32_t>(count) << "):" << '\n';
-          for (size_t i = 0; i < count; ++i) {
-            output << tab << tab;
-            output << "rebase(";
-            output << to_string(REBASE_TYPE(type));
-            output << ", ";
-            output << segments[segment_index].name();
-            output << ", ";
-            output << std::hex << std::showbase << segment_offset;
-            output << ")" << '\n';
-
-            segment_offset += skip + pint_v;
-
-            output << tab << tab;
-            output << "Segment Offset += " << std::hex << std::showbase << skip << " + " << pint_v << " (" << segment_offset << ")";
-            output << '\n' << '\n';
-          }
+        output << "[" << to_string(static_cast<REBASE_OPCODES>(opcode)) << "]"
+               << '\n';

+        // Count
+        if (auto res = rebase_stream.read_uleb128()) {
+          count = *res;
+        } else {
+          LIEF_ERR("Failed to read "
+                   "REBASE_OPCODE_DO_REBASE_ULEB_TIMES_SKIPPING_ULEB count");
           break;
         }

-      default:
-        {
-          output << "[UNSUPPORTED OPCODE - " << std::showbase << std::hex << static_cast<uint32_t>(opcode) << "]" << '\n';
+        // Skip
+        if (auto res = rebase_stream.read_uleb128()) {
+          skip = *res;
+        } else {
+          LIEF_ERR("Failed to read "
+                   "REBASE_OPCODE_DO_REBASE_ULEB_TIMES_SKIPPING_ULEB skip");
           break;
         }
+
+        count = safe_dyld_opcode_count<uint32_t>(segment_index < segments.size() ?
+                                                     &segments[segment_index] :
+                                                     nullptr,
+                                                 segment_offset, pint_v, count);
+
+        output << fmt::format("{}for i in range({}):\n", tab,
+                              static_cast<uint32_t>(count));
+        for (size_t i = 0; i < count; ++i) {
+          output << tab << tab;
+          output << fmt::format("rebase({}, {}, {:#x})\n",
+                                to_string(REBASE_TYPE(type)),
+                                safe_segment_name(segments, segment_index),
+                                segment_offset);
+
+          segment_offset += skip + pint_v;
+
+          output << tab << tab;
+          output << fmt::format("Segment Offset += {:#x} + {:#x} ({:#x})\n\n",
+                                skip, pint_v, segment_offset);
+        }
+
+        break;
+      }
+
+      default:
+      {
+        output << fmt::format("[UNSUPPORTED OPCODE - {:#x}]\n",
+                              static_cast<uint32_t>(opcode));
+        break;
+      }
     }
   }

@@ -350,10 +372,10 @@ std::string DyldInfo::show_rebases_opcodes() const {

 void DyldInfo::bind_opcodes(buffer_t raw) {
   if (raw.size() > bind_opcodes_.size()) {
-    LIEF_WARN("Can't update bind opcodes. The provided data is larger than the original ones");
+    LIEF_WARN("Bind opcodes update failed: data exceeds original size");
     return;
   }
-  std::move(std::begin(raw), std::end(raw), bind_opcodes_.data());
+  std::move(raw.begin(), raw.end(), bind_opcodes_.data());
 }


@@ -363,29 +385,32 @@ std::string DyldInfo::show_bind_opcodes() const {
   return output.str();
 }

-void DyldInfo::show_bindings(std::ostream& output, span<const uint8_t> bind_opcodes, bool is_lazy) const {
+void DyldInfo::show_bindings(std::ostream& output,
+                             span<const uint8_t> bind_opcodes,
+                             bool is_lazy) const {

   if (binary_ == nullptr) {
-    LIEF_WARN("Can't print bind opcodes");
+    LIEF_WARN("Failed to print bind opcodes");
     return;
   }

   size_t pint_v = static_cast<LIEF::Binary*>(binary_)->header().is_64() ?
-                  sizeof(uint64_t) :
-                  sizeof(uint32_t);
+                      sizeof(uint64_t) :
+                      sizeof(uint32_t);

-  uint8_t     type = is_lazy ? static_cast<uint8_t>(DyldBindingInfo::TYPE::POINTER) : 0;
-  uint8_t     segment_idx = 0;
-  uint64_t    segment_offset = 0;
+  uint8_t type =
+      is_lazy ? static_cast<uint8_t>(DyldBindingInfo::TYPE::POINTER) : 0;
+  uint8_t segment_idx = 0;
+  uint64_t segment_offset = 0;
   std::string symbol_name;
-  int64_t     library_ordinal = 0;
+  int64_t library_ordinal = 0;

-  int64_t     addend = 0;
-  uint32_t    count = 0;
-  uint32_t    skip = 0;
+  int64_t addend = 0;
+  uint32_t count = 0;
+  uint32_t skip = 0;

-  bool        is_weak_import = false;
-  bool        done = false;
+  bool is_weak_import = false;
+  bool done = false;

   size_t ordinal_table_size = 0;
   bool use_threaded_rebase_bind = false;
@@ -409,364 +434,410 @@ void DyldInfo::show_bindings(std::ostream& output, span<const uint8_t> bind_opco

     switch (opcode) {
       case BIND_OPCODES::DONE:
-        {
-          output << "[" << to_string(opcode) << "]" << '\n';
-          if (!is_lazy) {
-            done = true;
-          }
-          break;
+      {
+        output << "[" << to_string(opcode) << "]" << '\n';
+        if (!is_lazy) {
+          done = true;
         }
+        break;
+      }

       case BIND_OPCODES::SET_DYLIB_ORDINAL_IMM:
-        {
-          output << "[" << to_string(opcode) << "]" << '\n';
+      {
+        output << "[" << to_string(opcode) << "]" << '\n';

-          library_ordinal = imm;
+        library_ordinal = imm;

-          output << tab << "Library Ordinal := " << std::dec << static_cast<uint32_t>(imm) << '\n';
-          break;
-        }
+        output << tab
+               << fmt::format("Library Ordinal := {}\n",
+                              static_cast<uint32_t>(imm));
+        break;
+      }

       case BIND_OPCODES::SET_DYLIB_ORDINAL_ULEB:
-        {
-          output << "[" << to_string(opcode) << "]" << '\n';
-
-          if (auto res = bind_stream.read_uleb128()) {
-            library_ordinal = *res;
-          } else {
-            LIEF_ERR("Can't read BIND_OPCODE_SET_DYLIB_ORDINAL_ULEB library ordinal value");
-            break;
-          }
-
-          output << tab << "Library Ordinal := " << std::dec << library_ordinal << '\n';
+      {
+        output << "[" << to_string(opcode) << "]" << '\n';

+        if (auto res = bind_stream.read_uleb128()) {
+          library_ordinal = *res;
+        } else {
+          LIEF_ERR("Failed to read BIND_OPCODE_SET_DYLIB_ORDINAL_ULEB library "
+                   "ordinal value");
           break;
         }

-      case BIND_OPCODES::SET_DYLIB_SPECIAL_IMM:
-        {
+        output << tab << fmt::format("Library Ordinal := {}\n", library_ordinal);

-          output << "[" << to_string(opcode) << "]" << '\n';
-          // the special ordinals are negative numbers
-          if (imm == 0) {
-            library_ordinal = 0;
-          } else {
-            int8_t sign_extended = static_cast<int8_t>(OPCODE_MASK) | imm;
-            library_ordinal = sign_extended;
-          }
+        break;
+      }

-          output << tab << "Library Ordinal := " << std::dec << library_ordinal << '\n';
-          break;
-        }
+      case BIND_OPCODES::SET_DYLIB_SPECIAL_IMM:
+      {

-      case BIND_OPCODES::SET_SYMBOL_TRAILING_FLAGS_IMM:
-        {
+        output << "[" << to_string(opcode) << "]" << '\n';
+        // the special ordinals are negative numbers
+        if (imm == 0) {
+          library_ordinal = 0;
+        } else {
+          int8_t sign_extended = static_cast<int8_t>(OPCODE_MASK) | imm;
+          library_ordinal = sign_extended;
+        }

-          output << "[" << to_string(opcode) << "]" << '\n';
+        output << tab << fmt::format("Library Ordinal := {}\n", library_ordinal);
+        break;
+      }

-          if (auto res = bind_stream.read_string()) {
-            symbol_name = std::move(*res);
-          } else {
-            LIEF_ERR("Can't read BIND_OPCODE_SET_SYMBOL_TRAILING_FLAGS_IMM symbol's name");
-            break;
-          }
-          symbol_flags = imm;
+      case BIND_OPCODES::SET_SYMBOL_TRAILING_FLAGS_IMM:
+      {

-          is_weak_import = (imm & BIND_SYMBOL_FLAGS::WEAK_IMPORT) != 0;
+        output << "[" << to_string(opcode) << "]" << '\n';

-          output << tab << "Symbol name := " << symbol_name << '\n';
-          output << tab << "Is Weak ? " << std::boolalpha << is_weak_import << '\n';
+        if (auto res = bind_stream.read_string()) {
+          symbol_name = std::move(*res);
+        } else {
+          LIEF_ERR("Failed to read BIND_OPCODE_SET_SYMBOL_TRAILING_FLAGS_IMM "
+                   "symbol name");
           break;
         }
+        symbol_flags = imm;
+
+        is_weak_import = (imm & BIND_SYMBOL_FLAGS::WEAK_IMPORT) != 0;
+
+        output << tab << "Symbol name := " << symbol_name << '\n';
+        output << tab << fmt::format("Is Weak ? {}\n", is_weak_import);
+        break;
+      }

       case BIND_OPCODES::SET_TYPE_IMM:
-        {
-          output << "[" << to_string(opcode) << "]" << '\n';
+      {
+        output << "[" << to_string(opcode) << "]" << '\n';

-          type = imm;
+        type = imm;

-          output << tab << "Type := " << to_string(DyldBindingInfo::TYPE(type)) << '\n';
+        output << tab << "Type := " << to_string(DyldBindingInfo::TYPE(type))
+               << '\n';

-          break;
-        }
+        break;
+      }

       case BIND_OPCODES::SET_ADDEND_SLEB:
-        {
-          output << "[" << to_string(opcode) << "]" << '\n';
-
-          if (auto res = bind_stream.read_sleb128()) {
-            addend = *res;
-          } else {
-            LIEF_ERR("Can't read BIND_OPCODE_SET_ADDEND_SLEB addend");
-            break;
-          }
+      {
+        output << "[" << to_string(opcode) << "]" << '\n';

-          output << tab << "Addend := " << std::dec << addend << '\n';
+        if (auto res = bind_stream.read_sleb128()) {
+          addend = *res;
+        } else {
+          LIEF_ERR("Failed to read BIND_OPCODE_SET_ADDEND_SLEB addend");
           break;
         }

-      case BIND_OPCODES::SET_SEGMENT_AND_OFFSET_ULEB:
-        {
-
-          output << "[" << to_string(opcode) << "]" << '\n';
-          segment_idx  = imm;
+        output << tab << fmt::format("Addend := {}\n", addend);
+        break;
+      }

-          if (auto res = bind_stream.read_uleb128()) {
-            segment_offset = *res;
-          } else {
-            LIEF_ERR("Can't read BIND_OPCODE_SET_SEGMENT_AND_OFFSET_ULEB segment offset");
-            break;
-          }
+      case BIND_OPCODES::SET_SEGMENT_AND_OFFSET_ULEB:
+      {

-          output << tab << "Segment := " << segments[segment_idx].name() << '\n';
-          output << tab << "Segment Offset := " << std::hex << std::showbase << segment_offset << '\n';
+        output << "[" << to_string(opcode) << "]" << '\n';
+        segment_idx = imm;

+        if (auto res = bind_stream.read_uleb128()) {
+          segment_offset = *res;
+        } else {
+          LIEF_ERR("Failed to read BIND_OPCODE_SET_SEGMENT_AND_OFFSET_ULEB "
+                   "segment offset");
           break;
         }

-      case BIND_OPCODES::ADD_ADDR_ULEB:
-        {
+        output << tab << "Segment := " << safe_segment_name(segments, segment_idx)
+               << '\n';
+        output << tab << fmt::format("Segment Offset := {:#x}\n", segment_offset);

-          output << "[" << to_string(opcode) << "]" << '\n';
+        break;
+      }

-          uint64_t val = 0;
-          if (auto res = bind_stream.read_uleb128()) {
-            val = *res;
-          } else {
-            LIEF_ERR("Can't read BIND_OPCODE_ADD_ADDR_ULEB val");
-            break;
-          }
-          segment_offset += val;
+      case BIND_OPCODES::ADD_ADDR_ULEB:
+      {

-          output << tab << "Segment Offset += " << std::hex << std::showbase << val << " (" << segment_offset << ")" << '\n';
+        output << "[" << to_string(opcode) << "]" << '\n';
+
+        uint64_t val = 0;
+        if (auto res = bind_stream.read_uleb128()) {
+          val = *res;
+        } else {
+          LIEF_ERR("Failed to read BIND_OPCODE_ADD_ADDR_ULEB value");
           break;
         }
+        segment_offset += val;
+
+        output << tab
+               << fmt::format("Segment Offset += {:#x} ({:#x})\n", val,
+                              segment_offset);
+        break;
+      }

       case BIND_OPCODES::DO_BIND:
-        {
-          if (!use_threaded_rebase_bind) {
-            output << "[" << to_string(opcode) << "]" << '\n';
-
-            output << tab;
-            output << "bind(";
-            output << to_string(DyldBindingInfo::TYPE(type));
-            output << ", ";
-            output << segments[segment_idx].name();
-            output << ", ";
-            output << std::hex << std::showbase << segment_offset;
-            output << ", ";
-            output << symbol_name;
-            output << ", library_ordinal=";
-            output << (library_ordinal > 0 ? libraries[library_ordinal - 1].name() : std::to_string(library_ordinal));
-            output << ", addend=";
-            output << std::dec << addend;
-            output << ", is_weak_import=";
-            output << std::boolalpha << is_weak_import;
-            output << ")" << '\n';
-
-            segment_offset += pint_v;
-
-            output << tab << "Segment Offset += " << std::hex << std::showbase << pint_v << " (" << segment_offset << ")" << '\n';
-          } else {
-            ordinal_table.push_back(ThreadedBindData{symbol_name, addend, library_ordinal, symbol_flags, type});
-          }
-          break;
+      {
+        if (!use_threaded_rebase_bind) {
+          output << "[" << to_string(opcode) << "]" << '\n';
+
+          output << tab
+                 << fmt::format("bind({}, {}, {:#x}, {}, library_ordinal={}, "
+                                "addend={}, is_weak_import={})\n",
+                                to_string(DyldBindingInfo::TYPE(type)),
+                                safe_segment_name(segments, segment_idx),
+                                segment_offset, symbol_name,
+                                library_ordinal > 0 ?
+                                    safe_library_name(libraries,
+                                                      library_ordinal - 1) :
+                                    std::to_string(library_ordinal),
+                                addend, is_weak_import);
+
+          segment_offset += pint_v;
+
+          output << tab
+                 << fmt::format("Segment Offset += {:#x} ({:#x})\n", pint_v,
+                                segment_offset);
+        } else {
+          ordinal_table.push_back(ThreadedBindData{symbol_name, addend,
+                                                   library_ordinal, symbol_flags,
+                                                   type});
         }
+        break;
+      }

       case BIND_OPCODES::DO_BIND_ADD_ADDR_ULEB:
-        {
+      {

-          output << "[" << to_string(opcode) << "]" << '\n';
+        output << "[" << to_string(opcode) << "]" << '\n';

-          output << tab;
-          output << "bind(";
-          output << to_string(DyldBindingInfo::TYPE(type));
-          output << ", ";
-          output << segments[segment_idx].name();
-          output << ", ";
-          output << std::hex << std::showbase << segment_offset;
-          output << ", ";
-          output << symbol_name;
-          output << ", library_ordinal=";
-          output << (library_ordinal > 0 ? libraries[library_ordinal - 1].name() : std::to_string(library_ordinal));
-          output << ", addend=";
-          output << std::dec << addend;
-          output << ", is_weak_import=";
-          output << std::boolalpha << is_weak_import;
-          output << ")" << '\n';
-
-          uint64_t v = 0;
-          if (auto res = bind_stream.read_uleb128()) {
-            v = *res;
-          } else {
-            LIEF_ERR("Can't read BIND_OPCODE_DO_BIND_ADD_ADDR_ULEB val");
-            break;
-          }
-          segment_offset += v + pint_v;
+        output << tab
+               << fmt::format("bind({}, {}, {:#x}, {}, library_ordinal={}, "
+                              "addend={}, is_weak_import={})\n",
+                              to_string(DyldBindingInfo::TYPE(type)),
+                              safe_segment_name(segments, segment_idx),
+                              segment_offset, symbol_name,
+                              library_ordinal > 0 ?
+                                  safe_library_name(libraries,
+                                                    library_ordinal - 1) :
+                                  std::to_string(library_ordinal),
+                              addend, is_weak_import);

-          output << tab << "Segment Offset += " << std::hex << std::showbase << v + pint_v << " (" << segment_offset << ")" << '\n';
+        uint64_t v = 0;
+        if (auto res = bind_stream.read_uleb128()) {
+          v = *res;
+        } else {
+          LIEF_ERR("Failed to read BIND_OPCODE_DO_BIND_ADD_ADDR_ULEB value");
           break;
         }
+        segment_offset += v + pint_v;
+
+        output << tab
+               << fmt::format("Segment Offset += {:#x} ({:#x})\n", v + pint_v,
+                              segment_offset);
+        break;
+      }

       case BIND_OPCODES::DO_BIND_ADD_ADDR_IMM_SCALED:
-        {
+      {

-          output << "[" << to_string(opcode) << "]" << '\n';
+        output << "[" << to_string(opcode) << "]" << '\n';
+
+        output << tab
+               << fmt::format("bind({}, {}, {:#x}, {}, library_ordinal={}, "
+                              "addend={}, is_weak_import={})\n",
+                              to_string(DyldBindingInfo::TYPE(type)),
+                              safe_segment_name(segments, segment_idx),
+                              segment_offset, symbol_name,
+                              library_ordinal > 0 ?
+                                  safe_library_name(libraries,
+                                                    library_ordinal - 1) :
+                                  std::to_string(library_ordinal),
+                              addend, is_weak_import);
+
+        segment_offset += imm * pint_v + pint_v;

-          output << tab;
-          output << "bind(";
-          output << to_string(DyldBindingInfo::TYPE(type));
-          output << ", ";
-          output << segments[segment_idx].name();
-          output << ", ";
-          output << std::hex << std::showbase << segment_offset;
-          output << ", ";
-          output << symbol_name;
-          output << ", library_ordinal=";
-          output << (library_ordinal > 0 ? libraries[library_ordinal - 1].name() : std::to_string(library_ordinal));
-          output << ", addend=";
-          output << std::dec << addend;
-          output << ", is_weak_import=";
-          output << std::boolalpha << is_weak_import;
-          output << ")" << '\n';
-
-          segment_offset += imm * pint_v + pint_v;
-
-          output << tab << "Segment Offset += " << std::hex << std::showbase << (imm * pint_v + pint_v) << " (" << segment_offset << ")" << '\n';
+        output << tab
+               << fmt::format("Segment Offset += {:#x} ({:#x})\n",
+                              imm * pint_v + pint_v, segment_offset);

+        break;
+      }
+
+      case BIND_OPCODES::DO_BIND_ULEB_TIMES_SKIPPING_ULEB:
+      {
+
+        output << "[" << to_string(opcode) << "]" << '\n';
+        // Count
+        if (auto res = bind_stream.read_uleb128()) {
+          count = *res;
+        } else {
+          LIEF_ERR(
+              "Failed to read BIND_OPCODE_DO_BIND_ULEB_TIMES_SKIPPING_ULEB count"
+          );
           break;
         }

-      case BIND_OPCODES::DO_BIND_ULEB_TIMES_SKIPPING_ULEB:
-        {
+        // Skip
+        if (auto res = bind_stream.read_uleb128()) {
+          skip = *res;
+        } else {
+          LIEF_ERR(
+              "Failed to read BIND_OPCODE_DO_BIND_ULEB_TIMES_SKIPPING_ULEB skip"
+          );
+          break;
+        }

-          output << "[" << to_string(opcode) << "]" << '\n';
-          // Count
-          if (auto res = bind_stream.read_uleb128()) {
-            count = *res;
-          } else {
-            LIEF_ERR("Can't read BIND_OPCODE_DO_BIND_ULEB_TIMES_SKIPPING_ULEB count");
-            break;
-          }
+        count = safe_dyld_opcode_count<uint32_t>(segment_idx < segments.size() ?
+                                                     &segments[segment_idx] :
+                                                     nullptr,
+                                                 segment_offset, pint_v, count);

-          // Skip
-          if (auto res = bind_stream.read_uleb128()) {
-            skip = *res;
-          } else {
-            LIEF_ERR("Can't read BIND_OPCODE_DO_BIND_ULEB_TIMES_SKIPPING_ULEB skip");
-            break;
-          }
+        output << tab
+               << fmt::format("for i in range({}):\n",
+                              static_cast<uint32_t>(count));
+        for (size_t i = 0; i < count; ++i) {
+          output << tab << tab
+                 << fmt::format("bind({}, {}, {:#x}, {}, library_ordinal={}, "
+                                "addend={}, is_weak_import={})\n",
+                                to_string(DyldBindingInfo::TYPE(type)),
+                                safe_segment_name(segments, segment_idx),
+                                segment_offset, symbol_name,
+                                library_ordinal > 0 ?
+                                    safe_library_name(libraries,
+                                                      library_ordinal - 1) :
+                                    std::to_string(library_ordinal),
+                                addend, is_weak_import);

-          output << tab << "for i in range(" << std::dec << static_cast<uint32_t>(count) << "):" << '\n';
-          for (size_t i = 0; i < count; ++i) {
-            output << tab << tab;
-            output << "bind(";
-            output << to_string(DyldBindingInfo::TYPE(type));
-            output << ", ";
-            output << segments[segment_idx].name();
-            output << ", ";
-            output << std::hex << std::showbase << segment_offset;
-            output << ", ";
-            output << symbol_name;
-            output << ", library_ordinal=";
-            output << (library_ordinal > 0 ? libraries[library_ordinal - 1].name() : std::to_string(library_ordinal));
-            output << ", addend=";
-            output << std::dec << addend;
-            output << ", is_weak_import=";
-            output << std::boolalpha << is_weak_import;
-            output << ")" << '\n';
-
-
-            segment_offset += skip + pint_v;
-
-            output << "Segment Offset += " << std::hex << std::showbase << skip << " + " << pint_v << " (" << segment_offset << ")";
-
-            output << '\n' << '\n';
-          }
-          break;
+
+          segment_offset += skip + pint_v;
+
+          output << fmt::format("Segment Offset += {:#x} + {:#x} ({:#x})\n\n",
+                                skip, pint_v, segment_offset);
         }
+        break;
+      }
       case BIND_OPCODES::THREADED:
-        {
-          const auto subopcode = static_cast<BIND_SUBOPCODE_THREADED>(imm);
-          output << std::string("[") + to_string(BIND_OPCODES::THREADED) + "]\n";
-          switch (subopcode) {
-            case BIND_SUBOPCODE_THREADED::APPLY:
+      {
+        const auto subopcode = static_cast<BIND_SUBOPCODE_THREADED>(imm);
+        output << fmt::format("[{}]\n", to_string(BIND_OPCODES::THREADED));
+        switch (subopcode) {
+          case BIND_SUBOPCODE_THREADED::APPLY:
+          {
+            output << tab << fmt::format("[{}]\n", to_string(subopcode));
+            uint64_t delta = 0;
+            if (segment_idx >= segments.size()) {
+              LIEF_WARN("Invalid segment index {} in THREADED bind", segment_idx);
+              break;
+            }
+            const SegmentCommand& current_segment = segments[segment_idx];
+            do {
+              const uint64_t address =
+                  current_segment.virtual_address() + segment_offset;
+              span<const uint8_t> content = current_segment.content();
+              if (segment_offset >= content.size() ||
+                  (segment_offset + sizeof(uint64_t)) >= content.size())
               {
-                output << tab << std::string("[") + to_string(subopcode) + "]\n";
-                uint64_t delta = 0;
-                const SegmentCommand& current_segment = segments[segment_idx];
-                do {
-                  const uint64_t address = current_segment.virtual_address() + segment_offset;
-                  span<const uint8_t> content = current_segment.content();
-                  if (segment_offset >= content.size() ||
-                      (segment_offset + sizeof(uint64_t)) >= content.size())
-                  {
-                    LIEF_WARN("Bad segment offset (0x{:x})", segment_offset);
-                    break;
-                  }
-                  auto value = *reinterpret_cast<const uint64_t*>(content.data() + segment_offset);
-                  bool is_rebase = (value & (static_cast<uint64_t>(1) << 62)) == 0;
-
-                  if (is_rebase) {
-                    output << tab << tab << fmt::format("rebase({}, {}, 0x{:x})\n",
-                        "THREADED_REBASE", current_segment.name(), segment_offset);
-                  } else {
-                    uint16_t ordinal = value & 0xFFFF;
-                    if (ordinal >= ordinal_table_size || ordinal >= ordinal_table.size()) {
-                      LIEF_WARN("bind ordinal ({:d}) is out of range (max={:d}) for disk pointer 0x{:04x} in "
-                                "segment '{}' (segment offset: 0x{:04x})", ordinal, ordinal_table_size, value,
-                                current_segment.name(), segment_offset);
-                      break;
-                    }
-                    if (address < current_segment.virtual_address() ||
-                        address >= (current_segment.virtual_address() + current_segment.virtual_size())) {
-                      LIEF_WARN("Bad binding address");
-                      break;
-                    }
-                    const ThreadedBindData& th_bind_data = ordinal_table[ordinal];
-                    const int64_t library_ordinal = th_bind_data.library_ordinal;
-                    output << tab << tab << fmt::format("threaded_bind({}/{}, 0x{:x}, {}, {}, library_ordinal={}, "
-                                                        "addend={}, is_weak_import={})\n",
-                        "THREADED_BIND", to_string(DyldBindingInfo::TYPE(th_bind_data.type)), segment_offset,
-                        current_segment.name(), th_bind_data.symbol_name,
-                        library_ordinal > 0 ? libraries[library_ordinal - 1].name() : std::to_string(library_ordinal),
-                        th_bind_data.addend, th_bind_data.symbol_flags);
-                  }
-                  // The delta is bits [51..61]
-                  // And bit 62 is to tell us if we are a rebase (0) or bind (1)
-                  value &= ~(1ull << 62);
-                  delta = (value & 0x3FF8000000000000) >> 51;
-                  segment_offset += delta * sizeof(pint_v);
-                  output << tab << tab << fmt::format("Segment Offset += 0x{:x} (0x{:x})\n", delta * sizeof(pint_v), segment_offset);
-                } while (delta != 0);
+                LIEF_WARN("Invalid segment offset: {:#x}", segment_offset);
                 break;
               }
-            case BIND_SUBOPCODE_THREADED::SET_BIND_ORDINAL_TABLE_SIZE_ULEB:
-              {
-                output << tab << std::string("[") + to_string(subopcode) + "]\n";
-                if (auto res = bind_stream.read_uleb128()) {
-                  count = *res;
-                } else {
-                  LIEF_ERR("Can't read BIND_SUBOPCODE_THREADED_SET_BIND_ORDINAL_TABLE_SIZE_ULEB count");
+              auto value = *reinterpret_cast<const uint64_t*>(content.data() +
+                                                              segment_offset);
+              bool is_rebase = (value & (static_cast<uint64_t>(1) << 62)) == 0;
+
+              if (is_rebase) {
+                output << tab << tab
+                       << fmt::format("rebase({}, {}, {:#x})\n", "THREADED_REBASE",
+                                      current_segment.name(), segment_offset);
+              } else {
+                uint16_t ordinal = value & 0xFFFF;
+                if (ordinal >= ordinal_table_size ||
+                    ordinal >= ordinal_table.size())
+                {
+                  LIEF_WARN(
+                      "Bind ordinal {:d} out of range (max {:d}) at {:#06x} in "
+                      "segment '{}' (offset: {:#06x})",
+                      ordinal, ordinal_table_size, value, current_segment.name(),
+                      segment_offset
+                  );
                   break;
                 }
-                ordinal_table_size = count + 1; // the +1 comes from: 'ld64 wrote the wrong value here and we need to offset by 1 for now.'
-                use_threaded_rebase_bind = true;
-                ordinal_table.reserve(ordinal_table_size);
-                output << tab << tab << fmt::format("Ordinal table size := {:d}\n", count);
-                break;
+                if (address < current_segment.virtual_address() ||
+                    address >= (current_segment.virtual_address() +
+                                current_segment.virtual_size()))
+                {
+                  LIEF_WARN("Invalid binding address");
+                  break;
+                }
+                const ThreadedBindData& th_bind_data = ordinal_table[ordinal];
+                const int64_t library_ordinal = th_bind_data.library_ordinal;
+                output << tab << tab
+                       << fmt::format(
+                              "threaded_bind({}/{}, {:#x}, {}, {}, "
+                              "library_ordinal={}, "
+                              "addend={}, is_weak_import={})\n",
+                              "THREADED_BIND",
+                              to_string(DyldBindingInfo::TYPE(th_bind_data.type)),
+                              segment_offset, current_segment.name(),
+                              th_bind_data.symbol_name,
+                              library_ordinal > 0 ?
+                                  safe_library_name(libraries,
+                                                    library_ordinal - 1) :
+                                  std::to_string(library_ordinal),
+                              th_bind_data.addend, th_bind_data.symbol_flags
+                          );
               }
+              // The delta is bits [51..61]
+              // And bit 62 is to tell us if we are a rebase (0) or bind (1)
+              value &= ~(1ull << 62);
+              delta = (value & 0x3FF8000000000000) >> 51;
+              segment_offset += delta * sizeof(pint_v);
+              output << tab << tab
+                     << fmt::format("Segment Offset += {:#x} ({:#x})\n",
+                                    delta * sizeof(pint_v), segment_offset);
+            } while (delta != 0);
+            break;
+          }
+          case BIND_SUBOPCODE_THREADED::SET_BIND_ORDINAL_TABLE_SIZE_ULEB:
+          {
+            static constexpr size_t MAX_COUNT = 65535;
+            output << tab << fmt::format("[{}]\n", to_string(subopcode));
+            auto val = bind_stream.read_uleb128();
+            if (!val) {
+              LIEF_ERR(
+                  "Failed to read "
+                  "BIND_SUBOPCODE_THREADED_SET_BIND_ORDINAL_TABLE_SIZE_ULEB count"
+              );
+              break;
+            }
+            count = *val;
+            if (count > MAX_COUNT) {
+              LIEF_ERR("BIND_SUBOPCODE_THREADED_SET_BIND_ORDINAL_TABLE_SIZE_ULEB "
+                       "count too large: {}",
+                       *val);
+              break;
+            }
+            ordinal_table_size =
+                count + 1; // the +1 comes from: 'ld64 wrote the wrong value here
+                           // and we need to offset by 1 for now.'
+            use_threaded_rebase_bind = true;
+            ordinal_table.reserve(ordinal_table_size);
+            output << tab << tab
+                   << fmt::format("Ordinal table size := {:d}\n", count);
+            break;
           }
-          break;
         }
+        break;
+      }

       default:
-        {
-          LIEF_ERR("Unsupported opcode: 0x{:x}", static_cast<uint32_t>(opcode));
-          output << fmt::format("[UNKNOWN OP 0x{:x}]\n", static_cast<uint32_t>(opcode));
-          break;
-        }
+      {
+        LIEF_ERR("Unsupported opcode: {:#x}", static_cast<uint32_t>(opcode));
+        output << fmt::format("[UNKNOWN OP {:#x}]\n",
+                              static_cast<uint32_t>(opcode));
+        break;
       }
+    }
   }
 }

@@ -775,10 +846,10 @@ void DyldInfo::show_bindings(std::ostream& output, span<const uint8_t> bind_opco

 void DyldInfo::weak_bind_opcodes(buffer_t raw) {
   if (raw.size() > weak_bind_opcodes_.size()) {
-    LIEF_WARN("Can't update weak bind opcodes. The provided data is larger than the original ones");
+    LIEF_WARN("Weak bind opcodes update failed: data exceeds original size");
     return;
   }
-  std::move(std::begin(raw), std::end(raw), weak_bind_opcodes_.data());
+  std::move(raw.begin(), raw.end(), weak_bind_opcodes_.data());
 }


@@ -792,10 +863,10 @@ std::string DyldInfo::show_weak_bind_opcodes() const {
 // ============
 void DyldInfo::lazy_bind_opcodes(buffer_t raw) {
   if (raw.size() > lazy_bind_opcodes_.size()) {
-    LIEF_WARN("Can't update lazy bind opcodes. The provided data is larger than the original ones");
+    LIEF_WARN("Lazy bind opcodes update failed: data exceeds original size");
     return;
   }
-  std::move(std::begin(raw), std::end(raw), lazy_bind_opcodes_.data());
+  std::move(raw.begin(), raw.end(), lazy_bind_opcodes_.data());
 }

 std::string DyldInfo::show_lazy_bind_opcodes() const {
@@ -808,7 +879,7 @@ std::string DyldInfo::show_lazy_bind_opcodes() const {
 // ===========
 std::string DyldInfo::show_export_trie() const {
   if (binary_ == nullptr) {
-    LIEF_WARN("Can't print bind opcodes");
+    LIEF_WARN("Failed to print bind opcodes");
     return "";
   }

@@ -821,18 +892,18 @@ std::string DyldInfo::show_export_trie() const {
   return output.str();
 }

-void DyldInfo::show_trie(std::ostream& output, std::string output_prefix, BinaryStream& stream,
-                         uint64_t start, uint64_t end, const std::string& prefix) const
-{
+void DyldInfo::show_trie(std::ostream& output, std::string output_prefix,
+                         BinaryStream& stream, uint64_t start, uint64_t end,
+                         const std::string& prefix) const {
   MachO::show_trie(output, std::move(output_prefix), stream, start, end, prefix);
 }

 void DyldInfo::export_trie(buffer_t raw) {
   if (raw.size() > export_trie_.size()) {
-    LIEF_WARN("Can't update the export trie. The provided data is larger than the original ones");
+    LIEF_WARN("Export trie update failed: data exceeds original size");
     return;
   }
-  std::move(std::begin(raw), std::end(raw), export_trie_.data());
+  std::move(raw.begin(), raw.end(), export_trie_.data());
 }

 void DyldInfo::accept(Visitor& visitor) const {
@@ -848,11 +919,11 @@ bool operator!=(uint8_t lhs, DyldInfo::REBASE_OPCODES rhs) {
 }

 DyldInfo& DyldInfo::update_rebase_info(vector_iostream& stream) {
-  auto cmp = [] (const RelocationDyld* lhs, const RelocationDyld* rhs) {
+  auto cmp = [](const RelocationDyld* lhs, const RelocationDyld* rhs) {
     return *lhs < *rhs;
   };

-  // In recent version of dyld, relocations are melt with bindings
+  // In recent versions of dyld, relocations are merged with bindings
   if (binding_encoding_version_ != BINDING_ENCODING_VERSION::V1) {
     return *this;
   }
@@ -875,31 +946,39 @@ DyldInfo& DyldInfo::update_rebase_info(vector_iostream& stream) {

   for (RelocationDyld* rebase : rebases) {
     if (type != rebase->type()) {
-      output.emplace_back(static_cast<uint8_t>(REBASE_OPCODES::SET_TYPE_IMM), rebase->type());
+      output.emplace_back(static_cast<uint8_t>(REBASE_OPCODES::SET_TYPE_IMM),
+                          rebase->type());
       type = rebase->type();
     }

     if (address != rebase->address()) {
-      if (rebase->address() < current_segment_start || rebase->address() >= current_segment_end) {
+      if (rebase->address() < current_segment_start ||
+          rebase->address() >= current_segment_end)
+      {
         SegmentCommand* segment = rebase->segment();
         if (segment == nullptr) {
-          LIEF_ERR("No segment associated with the RebaseInfo. Can't update!");
+          LIEF_ERR("No segment associated with RebaseInfo");
           return *this;
         }
         size_t index = segment->index();

         current_segment_start = segment->virtual_address();
-        current_segment_end   = segment->virtual_address() + segment->virtual_size();
+        current_segment_end = segment->virtual_address() + segment->virtual_size();
         current_segment_index = index;

-        output.emplace_back(static_cast<uint8_t>(REBASE_OPCODES::SET_SEGMENT_AND_OFFSET_ULEB), current_segment_index, rebase->address() - current_segment_start);
+        output.emplace_back(
+            static_cast<uint8_t>(REBASE_OPCODES::SET_SEGMENT_AND_OFFSET_ULEB),
+            current_segment_index, rebase->address() - current_segment_start
+        );
       } else {
-        output.emplace_back(static_cast<uint8_t>(REBASE_OPCODES::ADD_ADDR_ULEB), rebase->address() - address);
+        output.emplace_back(static_cast<uint8_t>(REBASE_OPCODES::ADD_ADDR_ULEB),
+                            rebase->address() - address);
       }
       address = rebase->address();
     }

-    output.emplace_back(static_cast<uint8_t>(REBASE_OPCODES::DO_REBASE_ULEB_TIMES), 1);
+    output.emplace_back(static_cast<uint8_t>(REBASE_OPCODES::DO_REBASE_ULEB_TIMES),
+                        1);
     address += binary_->pointer_size();

     if (address >= current_segment_end) {
@@ -914,8 +993,8 @@ DyldInfo& DyldInfo::update_rebase_info(vector_iostream& stream) {
   // Compress packed runs of pointers
   // Based on ld64-274.2/src/ld/LinkEdit.hpp:239
   // ===========================================
-  auto dst = std::begin(output);
-  for (auto it = std::begin(output); it->opcode != REBASE_OPCODES::DONE; ++it) {
+  auto dst = output.begin();
+  for (auto it = output.begin(); it->opcode != REBASE_OPCODES::DONE; ++it) {
     if (it->opcode == REBASE_OPCODES::DO_REBASE_ULEB_TIMES && it->op1 == 1) {
       *dst = *it++;

@@ -935,14 +1014,14 @@ DyldInfo& DyldInfo::update_rebase_info(vector_iostream& stream) {
   // ===========================================
   // 2. Second optimization
   // Combine rebase/add pairs
-  // Base on ld64-274.2/src/ld/LinkEdit.hpp:257
+  // Based on ld64-274.2/src/ld/LinkEdit.hpp:257
   // ===========================================
-  dst = std::begin(output);
-  for (auto it = std::begin(output); it->opcode != REBASE_OPCODES::DONE; ++it) {
+  dst = output.begin();
+  for (auto it = output.begin(); it->opcode != REBASE_OPCODES::DONE; ++it) {

-    if ((it->opcode == REBASE_OPCODES::DO_REBASE_ULEB_TIMES)
-        && it->op1 == 1
-        && it[1].opcode == REBASE_OPCODES::ADD_ADDR_ULEB) {
+    if ((it->opcode == REBASE_OPCODES::DO_REBASE_ULEB_TIMES) && it->op1 == 1 &&
+        it[1].opcode == REBASE_OPCODES::ADD_ADDR_ULEB)
+    {
       dst->opcode = static_cast<uint8_t>(REBASE_OPCODES::DO_REBASE_ADD_ADDR_ULEB);
       dst->op1 = it[1].op1;
       ++it;
@@ -955,22 +1034,25 @@ DyldInfo& DyldInfo::update_rebase_info(vector_iostream& stream) {

   // ===========================================
   // 3. Third optimization
-  // Base on ld64-274.2/src/ld/LinkEdit.hpp:274
+  // Based on ld64-274.2/src/ld/LinkEdit.hpp:274
   // ===========================================
-  dst = std::begin(output);
-  for (auto it = std::begin(output); it->opcode != REBASE_OPCODES::DONE; ++it) {
+  dst = output.begin();
+  for (auto it = output.begin(); it->opcode != REBASE_OPCODES::DONE; ++it) {
     uint64_t delta = it->op1;
-    if ((it->opcode == REBASE_OPCODES::DO_REBASE_ADD_ADDR_ULEB)
-        && (it[1].opcode == REBASE_OPCODES::DO_REBASE_ADD_ADDR_ULEB)
-        && (it[2].opcode == REBASE_OPCODES::DO_REBASE_ADD_ADDR_ULEB)
-        && (it[1].op1 == delta)
-        && (it[2].op1 == delta) ) {
+    if ((it->opcode == REBASE_OPCODES::DO_REBASE_ADD_ADDR_ULEB) &&
+        (it[1].opcode == REBASE_OPCODES::DO_REBASE_ADD_ADDR_ULEB) &&
+        (it[2].opcode == REBASE_OPCODES::DO_REBASE_ADD_ADDR_ULEB) &&
+        (it[1].op1 == delta) && (it[2].op1 == delta))
+    {

-      dst->opcode = static_cast<uint8_t>(REBASE_OPCODES::DO_REBASE_ULEB_TIMES_SKIPPING_ULEB);
+      dst->opcode =
+          static_cast<uint8_t>(REBASE_OPCODES::DO_REBASE_ULEB_TIMES_SKIPPING_ULEB);
       dst->op1 = 1;
       dst->op2 = delta;
       ++it;
-      while (it->opcode == REBASE_OPCODES::DO_REBASE_ADD_ADDR_ULEB && it->op1 == delta) {
+      while (it->opcode == REBASE_OPCODES::DO_REBASE_ADD_ADDR_ULEB &&
+             it->op1 == delta)
+      {
         dst->op1++;
         ++it;
       }
@@ -985,117 +1067,122 @@ DyldInfo& DyldInfo::update_rebase_info(vector_iostream& stream) {
   // ===========================================
   // 4. Fourth optimization
   // Use immediate encodings
-  // Base on ld64-274.2/src/ld/LinkEdit.hpp:303
+  // Based on ld64-274.2/src/ld/LinkEdit.hpp:303
   // ===========================================
   const size_t pint_size = binary_->pointer_size();
-  for (auto it = std::begin(output); it->opcode != REBASE_OPCODES::DONE; ++it) {
+  for (auto it = output.begin(); it->opcode != REBASE_OPCODES::DONE; ++it) {

-    if (it->opcode == REBASE_OPCODES::ADD_ADDR_ULEB && it->op1 < (15 * pint_size) && (it->op1 % pint_size) == 0) {
+    if (it->opcode == REBASE_OPCODES::ADD_ADDR_ULEB &&
+        it->op1 < (15 * pint_size) && (it->op1 % pint_size) == 0)
+    {
       it->opcode = static_cast<uint8_t>(REBASE_OPCODES::ADD_ADDR_IMM_SCALED);
       it->op1 = it->op1 / pint_size;
-    } else if ( (it->opcode == REBASE_OPCODES::DO_REBASE_ULEB_TIMES) && (it->op1 < 15) ) {
+    } else if ((it->opcode == REBASE_OPCODES::DO_REBASE_ULEB_TIMES) &&
+               (it->op1 < 15))
+    {
       it->opcode = static_cast<uint8_t>(REBASE_OPCODES::DO_REBASE_IMM_TIMES);
     }
   }

   vector_iostream raw_output;
   bool done = false;
-  for (auto it = std::begin(output); !done && it != std::end(output); ++it) {
+  for (auto it = output.begin(); !done && it != output.end(); ++it) {
     const details::rebase_instruction& inst = *it;

     switch (static_cast<REBASE_OPCODES>(inst.opcode)) {
       case REBASE_OPCODES::DONE:
-        {
-          done = true;
-          break;
-        }
+      {
+        done = true;
+        break;
+      }

       case REBASE_OPCODES::SET_TYPE_IMM:
-        {
-          raw_output.write<uint8_t>(uint8_t(REBASE_OPCODES::SET_TYPE_IMM) | inst.op1);
-          break;
-        }
+      {
+        raw_output.write<uint8_t>(uint8_t(REBASE_OPCODES::SET_TYPE_IMM) |
+                                  inst.op1);
+        break;
+      }

       case REBASE_OPCODES::SET_SEGMENT_AND_OFFSET_ULEB:
-        {
-          raw_output
-            .write<uint8_t>(uint8_t(REBASE_OPCODES::SET_SEGMENT_AND_OFFSET_ULEB) | inst.op1)
+      {
+        raw_output
+            .write<uint8_t>(uint8_t(REBASE_OPCODES::SET_SEGMENT_AND_OFFSET_ULEB) |
+                            inst.op1)
             .write_uleb128(inst.op2);

-          break;
-        }
+        break;
+      }

       case REBASE_OPCODES::ADD_ADDR_ULEB:
-        {
-          raw_output
-            .write<uint8_t>(uint8_t(REBASE_OPCODES::ADD_ADDR_ULEB))
+      {
+        raw_output.write<uint8_t>(uint8_t(REBASE_OPCODES::ADD_ADDR_ULEB))
             .write_uleb128(inst.op1);

-          break;
-        }
+        break;
+      }

       case REBASE_OPCODES::ADD_ADDR_IMM_SCALED:
-        {
-          raw_output
-            .write<uint8_t>(uint8_t(REBASE_OPCODES::ADD_ADDR_IMM_SCALED) | inst.op1);
+      {
+        raw_output.write<uint8_t>(uint8_t(REBASE_OPCODES::ADD_ADDR_IMM_SCALED) |
+                                  inst.op1);

-          break;
-        }
+        break;
+      }

       case REBASE_OPCODES::DO_REBASE_IMM_TIMES:
-        {
-          raw_output
-            .write<uint8_t>(uint8_t(REBASE_OPCODES::DO_REBASE_IMM_TIMES) | inst.op1);
+      {
+        raw_output.write<uint8_t>(uint8_t(REBASE_OPCODES::DO_REBASE_IMM_TIMES) |
+                                  inst.op1);

-          break;
-        }
+        break;
+      }

       case REBASE_OPCODES::DO_REBASE_ULEB_TIMES:
-        {
-          raw_output
-            .write<uint8_t>(uint8_t(REBASE_OPCODES::DO_REBASE_ULEB_TIMES))
+      {
+        raw_output.write<uint8_t>(uint8_t(REBASE_OPCODES::DO_REBASE_ULEB_TIMES))
             .write_uleb128(inst.op1);

-          break;
-        }
+        break;
+      }

       case REBASE_OPCODES::DO_REBASE_ADD_ADDR_ULEB:
-        {
-          raw_output
-            .write<uint8_t>(uint8_t(REBASE_OPCODES::DO_REBASE_ADD_ADDR_ULEB))
+      {
+        raw_output.write<uint8_t>(uint8_t(REBASE_OPCODES::DO_REBASE_ADD_ADDR_ULEB))
             .write_uleb128(inst.op1);

-          break;
-        }
+        break;
+      }

       case REBASE_OPCODES::DO_REBASE_ULEB_TIMES_SKIPPING_ULEB:
-        {
-          raw_output
-            .write<uint8_t>(uint8_t(REBASE_OPCODES::DO_REBASE_ULEB_TIMES_SKIPPING_ULEB))
+      {
+        raw_output
+            .write<uint8_t>(
+                uint8_t(REBASE_OPCODES::DO_REBASE_ULEB_TIMES_SKIPPING_ULEB)
+            )
             .write_uleb128(inst.op1)
             .write_uleb128(inst.op2);

-          break;
-        }
+        break;
+      }

       default:
-        {
-          LIEF_ERR("Unknown opcode: 0x{:x}", static_cast<uint32_t>(inst.opcode));
-        }
+      {
+        LIEF_ERR("Unknown opcode: {:#x}", static_cast<uint32_t>(inst.opcode));
+      }
     }
-
   }
   raw_output.align(pint_size);
   if (raw_output.size() > rebase_opcodes_.size()) {
-    LIEF_INFO("New rebase opcodes are larger than the original ones: 0x{:06x} -> 0x{:06x}",
+    LIEF_INFO("New rebase opcodes exceed original size: {:#08x} -> {:#08x}",
               rebase_opcodes_.size(), raw_output.size());
   }
-  stream.write(std::move(raw_output.raw()));
+  stream.write(raw_output.raw());
   return *this;
 }

-DyldInfo& DyldInfo::update_binding_info(vector_iostream& stream, details::dyld_info_command& cmd) {
-  auto cmp = [] (const DyldBindingInfo* lhs, const DyldBindingInfo* rhs) {
+DyldInfo& DyldInfo::update_binding_info(vector_iostream& stream,
+                                        details::dyld_info_command& cmd) {
+  auto cmp = [](const DyldBindingInfo* lhs, const DyldBindingInfo* rhs) {
     if (lhs->library_ordinal() != rhs->library_ordinal()) {
       return lhs->library_ordinal() < rhs->library_ordinal();
     }
@@ -1113,10 +1200,10 @@ DyldInfo& DyldInfo::update_binding_info(vector_iostream& stream, details::dyld_i
     }

     return lhs->address() < rhs->address();
-
   };

-  auto cmp_weak_binding = [] (const DyldBindingInfo* lhs, const DyldBindingInfo* rhs) {
+  auto cmp_weak_binding = [](const DyldBindingInfo* lhs,
+                             const DyldBindingInfo* rhs) {
     if (lhs->has_symbol() && rhs->has_symbol()) {
       if (lhs->symbol()->name() != rhs->symbol()->name()) {
         return lhs->symbol()->name() < rhs->symbol()->name();
@@ -1130,10 +1217,10 @@ DyldInfo& DyldInfo::update_binding_info(vector_iostream& stream, details::dyld_i
     }

     return lhs->address() < rhs->address();
-
   };

-  auto cmp_lazy_binding = [] (const DyldBindingInfo* lhs, const DyldBindingInfo* rhs) {
+  auto cmp_lazy_binding = [](const DyldBindingInfo* lhs,
+                             const DyldBindingInfo* rhs) {
     return lhs->address() < rhs->address();
   };

@@ -1146,22 +1233,22 @@ DyldInfo& DyldInfo::update_binding_info(vector_iostream& stream, details::dyld_i
     switch (binfo->binding_class()) {
       case DyldBindingInfo::CLASS::THREADED:
       case DyldBindingInfo::CLASS::STANDARD:
-        {
-          standard_binds.insert(binfo.get());
-          break;
-        }
+      {
+        standard_binds.insert(binfo.get());
+        break;
+      }

       case DyldBindingInfo::CLASS::WEAK:
-        {
-          weak_binds.insert(binfo.get());
-          break;
-        }
+      {
+        weak_binds.insert(binfo.get());
+        break;
+      }

       case DyldBindingInfo::CLASS::LAZY:
-        {
-          lazy_binds.insert(binfo.get());
-          break;
-        }
+      {
+        lazy_binds.insert(binfo.get());
+        break;
+      }
     }
   }

@@ -1172,9 +1259,9 @@ DyldInfo& DyldInfo::update_binding_info(vector_iostream& stream, details::dyld_i
     }
     cmd.bind_size = stream.size() - cmd.bind_off;

-    // LIEF_DEBUG("LC_DYLD_INFO.bind_off : 0x{:06x} -> 0x{:06x}",
+    // LIEF_DEBUG("LC_DYLD_INFO.bind_off : {:#08x} -> {:#08x}",
     //            this->bind().first, cmd.bind_off);
-    // LIEF_DEBUG("LC_DYLD_INFO.bind_off : 0x{:06x} -> 0x{:06x}",
+    // LIEF_DEBUG("LC_DYLD_INFO.bind_off : {:#08x} -> {:#08x}",
     //            this->bind().second, cmd.bind_size);
   }
   if (!weak_binds.empty()) {
@@ -1202,7 +1289,9 @@ bool operator!=(uint8_t lhs, DyldInfo::BIND_OPCODES rhs) {
   return lhs != static_cast<uint8_t>(rhs);
 }

-DyldInfo& DyldInfo::update_weak_bindings(const DyldInfo::bind_container_t& bindings, vector_iostream& stream) {
+DyldInfo&
+    DyldInfo::update_weak_bindings(const DyldInfo::bind_container_t& bindings,
+                                   vector_iostream& stream) {
   std::vector<details::binding_instruction> instructions;

   uint64_t current_segment_start = 0;
@@ -1220,8 +1309,13 @@ DyldInfo& DyldInfo::update_weak_bindings(const DyldInfo::bind_container_t& bindi
     Symbol* sym = info->symbol();
     if (sym != nullptr) {
       if (sym->name() != symbol_name) {
-        uint64_t flag = info->is_non_weak_definition() ? BIND_SYMBOL_FLAGS::NON_WEAK_DEFINITION : 0;
-        instructions.emplace_back(uint8_t(BIND_OPCODES::SET_SYMBOL_TRAILING_FLAGS_IMM), flag, 0, sym->name());
+        uint64_t flag = info->is_non_weak_definition() ?
+                            BIND_SYMBOL_FLAGS::NON_WEAK_DEFINITION :
+                            0;
+        instructions.emplace_back(
+            uint8_t(BIND_OPCODES::SET_SYMBOL_TRAILING_FLAGS_IMM), flag, 0,
+            sym->name()
+        );
         symbol_name = sym->name();
       }
     } else {
@@ -1230,34 +1324,44 @@ DyldInfo& DyldInfo::update_weak_bindings(const DyldInfo::bind_container_t& bindi

     if (info->binding_type() != DyldBindingInfo::TYPE(type)) {
       type = static_cast<uint8_t>(info->binding_type());
-      instructions.emplace_back(static_cast<uint8_t>(BIND_OPCODES::SET_TYPE_IMM), type);
+      instructions.emplace_back(static_cast<uint8_t>(BIND_OPCODES::SET_TYPE_IMM),
+                                type);
     }

     if (info->address() != address) {
-      if (info->address() < current_segment_start || current_segment_end <= info->address()) {
+      if (info->address() < current_segment_start ||
+          current_segment_end <= info->address())
+      {
         SegmentCommand* segment = info->segment();
         if (segment == nullptr) {
-          LIEF_ERR("No segment associated the weak binding information. Can't update");
+          LIEF_ERR("No segment associated with weak binding info");
           return *this;
         }

         size_t index = segment->index();

         current_segment_start = segment->virtual_address();
-        current_segment_end   = segment->virtual_address() + segment->virtual_size();
+        current_segment_end = segment->virtual_address() + segment->virtual_size();
         current_segment_index = index;

-        instructions.emplace_back(static_cast<uint8_t>(BIND_OPCODES::SET_SEGMENT_AND_OFFSET_ULEB),
-            current_segment_index, info->address() - current_segment_start);
+        instructions.emplace_back(
+            static_cast<uint8_t>(BIND_OPCODES::SET_SEGMENT_AND_OFFSET_ULEB),
+            current_segment_index, info->address() - current_segment_start
+        );

       } else {
-        instructions.emplace_back(static_cast<uint8_t>(BIND_OPCODES::ADD_ADDR_ULEB), info->address() - address);
+        instructions.emplace_back(
+            static_cast<uint8_t>(BIND_OPCODES::ADD_ADDR_ULEB),
+            info->address() - address
+        );
       }
       address = info->address();
     }

     if (addend != info->addend()) {
-      instructions.emplace_back(static_cast<uint8_t>(BIND_OPCODES::SET_ADDEND_SLEB), info->addend());
+      instructions.emplace_back(
+          static_cast<uint8_t>(BIND_OPCODES::SET_ADDEND_SLEB), info->addend()
+      );
       addend = info->addend();
     }

@@ -1273,9 +1377,11 @@ DyldInfo& DyldInfo::update_weak_bindings(const DyldInfo::bind_container_t& bindi
   // combine bind/add pairs
   // Based on ld64-274.2/src/ld/LinkEdit.hpp:469
   // ===========================================
-  auto dst = std::begin(instructions);
-  for (auto it = std::begin(instructions); it->opcode != BIND_OPCODES::DONE; ++it) {
-    if (it->opcode == BIND_OPCODES::DO_BIND && it[1].opcode == BIND_OPCODES::ADD_ADDR_ULEB) {
+  auto dst = instructions.begin();
+  for (auto it = instructions.begin(); it->opcode != BIND_OPCODES::DONE; ++it) {
+    if (it->opcode == BIND_OPCODES::DO_BIND &&
+        it[1].opcode == BIND_OPCODES::ADD_ADDR_ULEB)
+    {
       dst->opcode = static_cast<uint8_t>(BIND_OPCODES::DO_BIND_ADD_ADDR_ULEB);
       dst->op1 = it[1].op1;
       ++it;
@@ -1290,17 +1396,19 @@ DyldInfo& DyldInfo::update_weak_bindings(const DyldInfo::bind_container_t& bindi
   // 2. Second optimization
   // Based on ld64-274.2/src/ld/LinkEdit.hpp:485
   // ===========================================
-  dst = std::begin(instructions);
-  for (auto it = std::begin(instructions); it->opcode != BIND_OPCODES::DONE; ++it) {
+  dst = instructions.begin();
+  for (auto it = instructions.begin(); it->opcode != BIND_OPCODES::DONE; ++it) {
     uint64_t delta = it->op1;
     if (it->opcode == BIND_OPCODES::DO_BIND_ADD_ADDR_ULEB &&
-        it[1].opcode == BIND_OPCODES::DO_BIND_ADD_ADDR_ULEB &&
-        it[1].op1 == delta) {
-      dst->opcode = static_cast<uint8_t>(BIND_OPCODES::DO_BIND_ULEB_TIMES_SKIPPING_ULEB);
+        it[1].opcode == BIND_OPCODES::DO_BIND_ADD_ADDR_ULEB && it[1].op1 == delta)
+    {
+      dst->opcode =
+          static_cast<uint8_t>(BIND_OPCODES::DO_BIND_ULEB_TIMES_SKIPPING_ULEB);
       dst->op1 = 1;
       dst->op2 = delta;
       ++it;
-      while (it->opcode == BIND_OPCODES::DO_BIND_ADD_ADDR_ULEB && it->op1 == delta) {
+      while (it->opcode == BIND_OPCODES::DO_BIND_ADD_ADDR_ULEB && it->op1 == delta)
+      {
         dst->op1++;
         ++it;
       }
@@ -1318,13 +1426,14 @@ DyldInfo& DyldInfo::update_weak_bindings(const DyldInfo::bind_container_t& bindi
   // Use immediate encodings
   // Based on ld64-274.2/src/ld/LinkEdit.hpp:512
   // ===========================================
-  for (auto it = std::begin(instructions); it->opcode != BIND_OPCODES::DONE; ++it) {
+  for (auto it = instructions.begin(); it->opcode != BIND_OPCODES::DONE; ++it) {
     if (it->opcode == BIND_OPCODES::DO_BIND_ADD_ADDR_ULEB &&
-        it->op1 < (15 * pint_size) &&
-        (it->op1 % pint_size) == 0) {
+        it->op1 < (15 * pint_size) && (it->op1 % pint_size) == 0)
+    {
       it->opcode = static_cast<uint8_t>(BIND_OPCODES::DO_BIND_ADD_ADDR_IMM_SCALED);
       it->op1 = it->op1 / pint_size;
-    } else if (it->opcode == BIND_OPCODES::SET_DYLIB_ORDINAL_ULEB && it->op1 <= 15) {
+    } else if (it->opcode == BIND_OPCODES::SET_DYLIB_ORDINAL_ULEB && it->op1 <= 15)
+    {
       it->opcode = static_cast<uint8_t>(BIND_OPCODES::SET_DYLIB_ORDINAL_IMM);
     }
   }
@@ -1332,131 +1441,135 @@ DyldInfo& DyldInfo::update_weak_bindings(const DyldInfo::bind_container_t& bindi

   bool done = false;
   vector_iostream raw_output;
-  for (auto it = std::begin(instructions); !done && it != std::end(instructions); ++it) {
+  for (auto it = instructions.begin(); !done && it != instructions.end(); ++it) {
     const details::binding_instruction& inst = *it;
     switch (static_cast<BIND_OPCODES>(inst.opcode)) {
       case BIND_OPCODES::DONE:
-        {
-          done = true;
-          break;
-        }
+      {
+        done = true;
+        break;
+      }

       case BIND_OPCODES::SET_DYLIB_ORDINAL_IMM:
-        {
-          raw_output
-            .write<uint8_t>(uint8_t(BIND_OPCODES::SET_DYLIB_ORDINAL_IMM) | inst.op1);
-          break;
-        }
+      {
+        raw_output.write<uint8_t>(uint8_t(BIND_OPCODES::SET_DYLIB_ORDINAL_IMM) |
+                                  inst.op1);
+        break;
+      }

       case BIND_OPCODES::SET_DYLIB_ORDINAL_ULEB:
-        {
-          raw_output
-            .write<uint8_t>(static_cast<uint8_t>(BIND_OPCODES::SET_DYLIB_ORDINAL_ULEB))
+      {
+        raw_output
+            .write<uint8_t>(
+                static_cast<uint8_t>(BIND_OPCODES::SET_DYLIB_ORDINAL_ULEB)
+            )
             .write_uleb128(inst.op1);
-          break;
-        }
+        break;
+      }

       case BIND_OPCODES::SET_DYLIB_SPECIAL_IMM:
-        {
-          raw_output
-            .write<uint8_t>(uint8_t(BIND_OPCODES::SET_DYLIB_SPECIAL_IMM) | (inst.op1 & IMMEDIATE_MASK));
-          break;
-        }
+      {
+        raw_output.write<uint8_t>(uint8_t(BIND_OPCODES::SET_DYLIB_SPECIAL_IMM) |
+                                  (inst.op1 & IMMEDIATE_MASK));
+        break;
+      }

       case BIND_OPCODES::SET_SYMBOL_TRAILING_FLAGS_IMM:
-        {
-          raw_output
-            .write<uint8_t>(uint8_t(BIND_OPCODES::SET_SYMBOL_TRAILING_FLAGS_IMM) | inst.op1)
+      {
+        raw_output
+            .write<uint8_t>(uint8_t(BIND_OPCODES::SET_SYMBOL_TRAILING_FLAGS_IMM) |
+                            inst.op1)
             .write(inst.name);
-          break;
-        }
+        break;
+      }

       case BIND_OPCODES::SET_TYPE_IMM:
-        {
-          raw_output
-            .write<uint8_t>(uint8_t(BIND_OPCODES::SET_TYPE_IMM) | inst.op1);
-          break;
-        }
+      {
+        raw_output.write<uint8_t>(uint8_t(BIND_OPCODES::SET_TYPE_IMM) | inst.op1);
+        break;
+      }

       case BIND_OPCODES::SET_ADDEND_SLEB:
-        {
-          raw_output
-            .write<uint8_t>(uint8_t(BIND_OPCODES::SET_ADDEND_SLEB))
+      {
+        raw_output.write<uint8_t>(uint8_t(BIND_OPCODES::SET_ADDEND_SLEB))
             .write_sleb128(inst.op1);
-          break;
-        }
+        break;
+      }

       case BIND_OPCODES::SET_SEGMENT_AND_OFFSET_ULEB:
-        {
-          raw_output
-            .write<uint8_t>(uint8_t(BIND_OPCODES::SET_SEGMENT_AND_OFFSET_ULEB) | inst.op1)
+      {
+        raw_output
+            .write<uint8_t>(uint8_t(BIND_OPCODES::SET_SEGMENT_AND_OFFSET_ULEB) |
+                            inst.op1)
             .write_uleb128(inst.op2);
-          break;
-        }
+        break;
+      }

       case BIND_OPCODES::ADD_ADDR_ULEB:
-        {
-          raw_output
-            .write<uint8_t>(uint8_t(BIND_OPCODES::ADD_ADDR_ULEB))
+      {
+        raw_output.write<uint8_t>(uint8_t(BIND_OPCODES::ADD_ADDR_ULEB))
             .write_uleb128(inst.op1);
-          break;
-        }
+        break;
+      }

       case BIND_OPCODES::DO_BIND:
-        {
-          raw_output
-            .write<uint8_t>(uint8_t(BIND_OPCODES::DO_BIND));
-          break;
-        }
+      {
+        raw_output.write<uint8_t>(uint8_t(BIND_OPCODES::DO_BIND));
+        break;
+      }

       case BIND_OPCODES::DO_BIND_ADD_ADDR_ULEB:
-        {
-          raw_output
-              .write<uint8_t>(uint8_t(BIND_OPCODES::DO_BIND_ADD_ADDR_ULEB))
+      {
+        raw_output.write<uint8_t>(uint8_t(BIND_OPCODES::DO_BIND_ADD_ADDR_ULEB))
             .write_uleb128(inst.op1);
-          break;
-        }
+        break;
+      }

       case BIND_OPCODES::DO_BIND_ADD_ADDR_IMM_SCALED:
-        {
-          raw_output
-            .write<uint8_t>(uint8_t(BIND_OPCODES::DO_BIND_ADD_ADDR_IMM_SCALED) | inst.op1);
-          break;
-        }
+      {
+        raw_output.write<uint8_t>(
+            uint8_t(BIND_OPCODES::DO_BIND_ADD_ADDR_IMM_SCALED) | inst.op1
+        );
+        break;
+      }

       case BIND_OPCODES::DO_BIND_ULEB_TIMES_SKIPPING_ULEB:
-        {
-          raw_output
-            .write<uint8_t>(uint8_t(BIND_OPCODES::DO_BIND_ULEB_TIMES_SKIPPING_ULEB))
+      {
+        raw_output
+            .write<uint8_t>(
+                uint8_t(BIND_OPCODES::DO_BIND_ULEB_TIMES_SKIPPING_ULEB)
+            )
             .write_uleb128(inst.op1)
             .write_uleb128(inst.op2);
-          break;
-        }
+        break;
+      }

       default:
-        {
-          LIEF_WARN("Opcode {} ({:d}) is not processed for weak bindings",
-              to_string(static_cast<BIND_OPCODES>(inst.opcode)), inst.opcode);
-          break;
-        }
+      {
+        LIEF_WARN("Unhandled opcode {} ({:d}) for weak bindings",
+                  to_string(static_cast<BIND_OPCODES>(inst.opcode)), inst.opcode);
+        break;
+      }
     }
   }
   raw_output.align(pint_size);
   if (raw_output.size() > weak_bind_opcodes_.size()) {
-    LIEF_INFO("New WEAK bind opcodes are larger than the original ones: 0x{:06x} -> 0x{:06x}",
+    LIEF_INFO("New weak bind opcodes exceed original size: {:#08x} -> {:#08x}",
               weak_bind_opcodes_.size(), raw_output.size());
   }
-  stream.write(std::move(raw_output.raw()));
+  stream.write(raw_output.raw());
   return *this;
 }

-DyldInfo& DyldInfo::update_lazy_bindings(const DyldInfo::bind_container_t& bindings, vector_iostream& stream) {
+DyldInfo&
+    DyldInfo::update_lazy_bindings(const DyldInfo::bind_container_t& bindings,
+                                   vector_iostream& stream) {

   vector_iostream raw_output;
   for (DyldBindingInfo* info : bindings) {
     SegmentCommand* segment = info->segment();
     if (segment == nullptr) {
-      LIEF_ERR("No segment associated with the lazy binding info. Can't update");
+      LIEF_ERR("No segment associated with lazy binding info");
       return *this;
     }
     size_t index = segment->index();
@@ -1465,88 +1578,93 @@ DyldInfo& DyldInfo::update_lazy_bindings(const DyldInfo::bind_container_t& bindi
     uint32_t current_segment_index = index;

     raw_output
-      .write<uint8_t>(uint8_t(BIND_OPCODES::SET_SEGMENT_AND_OFFSET_ULEB) | current_segment_index)
-      .write_uleb128(info->address() - current_segment_start);
+        .write<uint8_t>(uint8_t(BIND_OPCODES::SET_SEGMENT_AND_OFFSET_ULEB) |
+                        current_segment_index)
+        .write_uleb128(info->address() - current_segment_start);

     if (info->library_ordinal() <= 0) {
-      raw_output.write<uint8_t>(
-        uint8_t(BIND_OPCODES::SET_DYLIB_SPECIAL_IMM) | (info->library_ordinal() & IMMEDIATE_MASK)
-      );
+      raw_output.write<uint8_t>(uint8_t(BIND_OPCODES::SET_DYLIB_SPECIAL_IMM) |
+                                (info->library_ordinal() & IMMEDIATE_MASK));
     } else if (info->library_ordinal() <= 15) {
-      raw_output.write<uint8_t>(
-        uint8_t(BIND_OPCODES::SET_DYLIB_ORDINAL_IMM) | info->library_ordinal()
-      );
+      raw_output.write<uint8_t>(uint8_t(BIND_OPCODES::SET_DYLIB_ORDINAL_IMM) |
+                                info->library_ordinal());
     } else {
-      raw_output
-        .write<uint8_t>(uint8_t(BIND_OPCODES::SET_DYLIB_ORDINAL_ULEB))
-        .write_uleb128(info->library_ordinal());
+      raw_output.write<uint8_t>(uint8_t(BIND_OPCODES::SET_DYLIB_ORDINAL_ULEB))
+          .write_uleb128(info->library_ordinal());
     }

     uint64_t flags = info->is_weak_import() ? BIND_SYMBOL_FLAGS::WEAK_IMPORT : 0;
-    flags |= info->is_non_weak_definition() ? BIND_SYMBOL_FLAGS::NON_WEAK_DEFINITION : 0;
+    flags |= info->is_non_weak_definition() ?
+                 BIND_SYMBOL_FLAGS::NON_WEAK_DEFINITION :
+                 0;
     if (!info->has_symbol()) {
-      LIEF_ERR("Missing symbol. Can't update");
+      LIEF_ERR("Missing symbol for update");
       return *this;
     }
     raw_output
-      .write<uint8_t>(uint8_t(BIND_OPCODES::SET_SYMBOL_TRAILING_FLAGS_IMM) | flags)
-      .write(info->symbol()->name());
+        .write<uint8_t>(uint8_t(BIND_OPCODES::SET_SYMBOL_TRAILING_FLAGS_IMM) |
+                        flags)
+        .write(info->symbol()->name());

-    raw_output
-      .write<uint8_t>(static_cast<uint8_t>(BIND_OPCODES::DO_BIND))
-      .write<uint8_t>(static_cast<uint8_t>(BIND_OPCODES::DONE));
+    raw_output.write<uint8_t>(static_cast<uint8_t>(BIND_OPCODES::DO_BIND))
+        .write<uint8_t>(static_cast<uint8_t>(BIND_OPCODES::DONE));
   }

   raw_output.align(binary_->pointer_size());

-  LIEF_DEBUG("size: 0x{:x} vs 0x{:x}", raw_output.size(), lazy_bind_opcodes_.size());
+  LIEF_DEBUG("Lazy bind size: {:#x} vs {:#x}", raw_output.size(),
+             lazy_bind_opcodes_.size());

   if (raw_output.size() > lazy_bind_opcodes_.size()) {
-    LIEF_INFO("New LAZY bind opcodes are larger than the original ones: 0x{:06x} -> 0x{:06x}",
+    LIEF_INFO("New lazy bind opcodes exceed original size: {:#08x} -> {:#08x}",
               lazy_bind_opcodes_.size(), raw_output.size());
   }
-  stream.write(std::move(raw_output.raw()));
+  stream.write(raw_output.raw());
   return *this;
 }

-DyldInfo& DyldInfo::update_standard_bindings(const DyldInfo::bind_container_t& bindings, vector_iostream& stream) {
+DyldInfo&
+    DyldInfo::update_standard_bindings(const DyldInfo::bind_container_t& bindings,
+                                       vector_iostream& stream) {
   switch (binding_encoding_version_) {
     case BINDING_ENCODING_VERSION::V1:
-      {
-        update_standard_bindings_v1(bindings, stream);
-        break;
-      }
+    {
+      update_standard_bindings_v1(bindings, stream);
+      break;
+    }

     case BINDING_ENCODING_VERSION::V2:
-      {
-        std::vector<RelocationDyld*> rebases;
-        Binary::relocations_t relocations = binary_->relocations_list();
-        rebases.reserve(relocations.size());
-        for (Relocation* r : relocations) {
-          if (r->origin() == Relocation::ORIGIN::DYLDINFO) {
-            rebases.push_back(r->as<RelocationDyld>());
-          }
+    {
+      std::vector<RelocationDyld*> rebases;
+      Binary::relocations_t relocations = binary_->relocations_list();
+      rebases.reserve(relocations.size());
+      for (Relocation* r : relocations) {
+        if (r->origin() == Relocation::ORIGIN::DYLDINFO) {
+          rebases.push_back(r->as<RelocationDyld>());
         }
-        LIEF_DEBUG("Bindings V2: #{} relocations", rebases.size());
-        update_standard_bindings_v2(bindings, std::move(rebases), stream);
-        break;
       }
+      LIEF_DEBUG("Bindings V2: #{} relocations", rebases.size());
+      update_standard_bindings_v2(bindings, std::move(rebases), stream);
+      break;
+    }

     case BINDING_ENCODING_VERSION::UNKNOWN:
     default:
-      {
-        LIEF_WARN("Unsupported version");
-        break;
-      }
+    {
+      LIEF_WARN("Unsupported version");
+      break;
+    }
   }
   return *this;
 }


-
-DyldInfo& DyldInfo::update_standard_bindings_v1(const DyldInfo::bind_container_t& bindings, vector_iostream& stream) {
-  // This function updates the standard bindings opcodes (i.e. not lazy and not weak)
-  // The following code is mainly inspired from LinkEdit.hpp: BindingInfoAtom<A>::encodeV1()
+DyldInfo& DyldInfo::update_standard_bindings_v1(
+    const DyldInfo::bind_container_t& bindings, vector_iostream& stream
+) {
+  // This function updates the standard bindings opcodes (i.e. not lazy and not
+  // weak). The following code is mainly inspired from LinkEdit.hpp:
+  // BindingInfoAtom<A>::encodeV1()

   std::vector<details::binding_instruction> instructions;

@@ -1563,21 +1681,26 @@ DyldInfo& DyldInfo::update_standard_bindings_v1(const DyldInfo::bind_container_t
   for (DyldBindingInfo* info : bindings) {
     if (info->library_ordinal() != ordinal) {
       if (info->library_ordinal() <= 0) {
-        instructions.emplace_back(uint8_t(BIND_OPCODES::SET_DYLIB_SPECIAL_IMM), info->library_ordinal());
+        instructions.emplace_back(uint8_t(BIND_OPCODES::SET_DYLIB_SPECIAL_IMM),
+                                  info->library_ordinal());
       } else {
-        instructions.emplace_back(uint8_t(BIND_OPCODES::SET_DYLIB_ORDINAL_ULEB), info->library_ordinal());
+        instructions.emplace_back(uint8_t(BIND_OPCODES::SET_DYLIB_ORDINAL_ULEB),
+                                  info->library_ordinal());
       }
       ordinal = info->library_ordinal();
     }

     if (!info->has_symbol()) {
-      LIEF_ERR("Missing symbol for updating v1 binding.");
+      LIEF_ERR("Missing symbol for updating v1 binding");
       return *this;
     }
     if (info->symbol()->name() != symbol_name) {
       uint64_t flag = info->is_weak_import() ? BIND_SYMBOL_FLAGS::WEAK_IMPORT : 0;
       symbol_name = info->symbol()->name();
-      instructions.emplace_back(uint8_t(BIND_OPCODES::SET_SYMBOL_TRAILING_FLAGS_IMM), flag, 0, symbol_name);
+      instructions.emplace_back(
+          uint8_t(BIND_OPCODES::SET_SYMBOL_TRAILING_FLAGS_IMM), flag, 0,
+          symbol_name
+      );
     }

     if (info->binding_type() != DyldBindingInfo::TYPE(type)) {
@@ -1586,29 +1709,35 @@ DyldInfo& DyldInfo::update_standard_bindings_v1(const DyldInfo::bind_container_t
     }

     if (info->address() != address) {
-      if (info->address() < current_segment_start || info->address() >= current_segment_end) {
+      if (info->address() < current_segment_start ||
+          info->address() >= current_segment_end)
+      {
         SegmentCommand* segment = info->segment();
         if (segment == nullptr) {
-          LIEF_ERR("Can't find the segment. Can't update binding v1");
+          LIEF_ERR("Segment not found for v1 binding update");
           return *this;
         }
         size_t index = segment->index();

         current_segment_start = segment->virtual_address();
-        current_segment_end   = segment->virtual_address() + segment->virtual_size();
+        current_segment_end = segment->virtual_address() + segment->virtual_size();
         current_segment_index = index;

-        instructions.emplace_back(uint8_t(BIND_OPCODES::SET_SEGMENT_AND_OFFSET_ULEB),
-            current_segment_index, info->address() - current_segment_start);
+        instructions.emplace_back(
+            uint8_t(BIND_OPCODES::SET_SEGMENT_AND_OFFSET_ULEB),
+            current_segment_index, info->address() - current_segment_start
+        );

       } else {
-        instructions.emplace_back(uint8_t(BIND_OPCODES::ADD_ADDR_ULEB), info->address() - address);
+        instructions.emplace_back(uint8_t(BIND_OPCODES::ADD_ADDR_ULEB),
+                                  info->address() - address);
       }
       address = info->address();
     }

     if (addend != info->addend()) {
-      instructions.emplace_back(uint8_t(BIND_OPCODES::SET_ADDEND_SLEB), info->addend());
+      instructions.emplace_back(uint8_t(BIND_OPCODES::SET_ADDEND_SLEB),
+                                info->addend());
       addend = info->addend();
     }

@@ -1624,9 +1753,11 @@ DyldInfo& DyldInfo::update_standard_bindings_v1(const DyldInfo::bind_container_t
   // combine bind/add pairs
   // Based on ld64-274.2/src/ld/LinkEdit.hpp:469
   // ===========================================
-  auto dst = std::begin(instructions);
-  for (auto it = std::begin(instructions); it->opcode != BIND_OPCODES::DONE; ++it) {
-    if (it->opcode == BIND_OPCODES::DO_BIND && it[1].opcode == BIND_OPCODES::ADD_ADDR_ULEB) {
+  auto dst = instructions.begin();
+  for (auto it = instructions.begin(); it->opcode != BIND_OPCODES::DONE; ++it) {
+    if (it->opcode == BIND_OPCODES::DO_BIND &&
+        it[1].opcode == BIND_OPCODES::ADD_ADDR_ULEB)
+    {
       dst->opcode = static_cast<uint8_t>(BIND_OPCODES::DO_BIND_ADD_ADDR_ULEB);
       dst->op1 = it[1].op1;
       ++it;
@@ -1641,17 +1772,19 @@ DyldInfo& DyldInfo::update_standard_bindings_v1(const DyldInfo::bind_container_t
   // 2. Second optimization
   // Based on ld64-274.2/src/ld/LinkEdit.hpp:485
   // ===========================================
-  dst = std::begin(instructions);
-  for (auto it = std::begin(instructions); it->opcode != BIND_OPCODES::DONE; ++it) {
+  dst = instructions.begin();
+  for (auto it = instructions.begin(); it->opcode != BIND_OPCODES::DONE; ++it) {
     uint64_t delta = it->op1;
     if (it->opcode == BIND_OPCODES::DO_BIND_ADD_ADDR_ULEB &&
-        it[1].opcode == BIND_OPCODES::DO_BIND_ADD_ADDR_ULEB &&
-        it[1].op1 == delta) {
-      dst->opcode = static_cast<uint8_t>(BIND_OPCODES::DO_BIND_ULEB_TIMES_SKIPPING_ULEB);
+        it[1].opcode == BIND_OPCODES::DO_BIND_ADD_ADDR_ULEB && it[1].op1 == delta)
+    {
+      dst->opcode =
+          static_cast<uint8_t>(BIND_OPCODES::DO_BIND_ULEB_TIMES_SKIPPING_ULEB);
       dst->op1 = 1;
       dst->op2 = delta;
       ++it;
-      while (it->opcode == BIND_OPCODES::DO_BIND_ADD_ADDR_ULEB && it->op1 == delta) {
+      while (it->opcode == BIND_OPCODES::DO_BIND_ADD_ADDR_ULEB && it->op1 == delta)
+      {
         dst->op1++;
         ++it;
       }
@@ -1669,13 +1802,14 @@ DyldInfo& DyldInfo::update_standard_bindings_v1(const DyldInfo::bind_container_t
   // Use immediate encodings
   // Based on ld64-274.2/src/ld/LinkEdit.hpp:512
   // ===========================================
-  for (auto it = std::begin(instructions); it->opcode != BIND_OPCODES::DONE; ++it) {
+  for (auto it = instructions.begin(); it->opcode != BIND_OPCODES::DONE; ++it) {
     if (it->opcode == BIND_OPCODES::DO_BIND_ADD_ADDR_ULEB &&
-        it->op1 < (15 * pint_size) &&
-        (it->op1 % pint_size) == 0) {
+        it->op1 < (15 * pint_size) && (it->op1 % pint_size) == 0)
+    {
       it->opcode = static_cast<uint8_t>(BIND_OPCODES::DO_BIND_ADD_ADDR_IMM_SCALED);
       it->op1 = it->op1 / pint_size;
-    } else if (it->opcode == BIND_OPCODES::SET_DYLIB_ORDINAL_ULEB && it->op1 <= 15) {
+    } else if (it->opcode == BIND_OPCODES::SET_DYLIB_ORDINAL_ULEB && it->op1 <= 15)
+    {
       it->opcode = static_cast<uint8_t>(BIND_OPCODES::SET_DYLIB_ORDINAL_IMM);
     }
   }
@@ -1683,134 +1817,136 @@ DyldInfo& DyldInfo::update_standard_bindings_v1(const DyldInfo::bind_container_t

   bool done = false;
   vector_iostream raw_output;
-  for (auto it = std::begin(instructions); !done && it != std::end(instructions); ++it) {
+  for (auto it = instructions.begin(); !done && it != instructions.end(); ++it) {
     const details::binding_instruction& inst = *it;
     switch (static_cast<BIND_OPCODES>(inst.opcode)) {
       case BIND_OPCODES::DONE:
-        {
-          done = true;
-          break;
-        }
+      {
+        done = true;
+        break;
+      }

       case BIND_OPCODES::SET_DYLIB_ORDINAL_IMM:
-        {
-          raw_output
-            .write<uint8_t>(uint8_t(BIND_OPCODES::SET_DYLIB_ORDINAL_IMM) | inst.op1);
-          break;
-        }
+      {
+        raw_output.write<uint8_t>(uint8_t(BIND_OPCODES::SET_DYLIB_ORDINAL_IMM) |
+                                  inst.op1);
+        break;
+      }

       case BIND_OPCODES::SET_DYLIB_ORDINAL_ULEB:
-        {
-          raw_output
-            .write<uint8_t>(uint8_t(BIND_OPCODES::SET_DYLIB_ORDINAL_ULEB))
+      {
+        raw_output.write<uint8_t>(uint8_t(BIND_OPCODES::SET_DYLIB_ORDINAL_ULEB))
             .write_uleb128(inst.op1);
-          break;
-        }
+        break;
+      }

       case BIND_OPCODES::SET_DYLIB_SPECIAL_IMM:
-        {
-          raw_output
-            .write<uint8_t>(uint8_t(BIND_OPCODES::SET_DYLIB_SPECIAL_IMM) | (inst.op1 & IMMEDIATE_MASK));
-          break;
-        }
+      {
+        raw_output.write<uint8_t>(uint8_t(BIND_OPCODES::SET_DYLIB_SPECIAL_IMM) |
+                                  (inst.op1 & IMMEDIATE_MASK));
+        break;
+      }

       case BIND_OPCODES::SET_SYMBOL_TRAILING_FLAGS_IMM:
-        {
-          raw_output
-            .write<uint8_t>(uint8_t(BIND_OPCODES::SET_SYMBOL_TRAILING_FLAGS_IMM) | inst.op1)
+      {
+        raw_output
+            .write<uint8_t>(uint8_t(BIND_OPCODES::SET_SYMBOL_TRAILING_FLAGS_IMM) |
+                            inst.op1)
             .write(inst.name);
-          break;
-        }
+        break;
+      }

       case BIND_OPCODES::SET_TYPE_IMM:
-        {
-          raw_output
-            .write<uint8_t>(uint8_t(BIND_OPCODES::SET_TYPE_IMM) | inst.op1);
-          break;
-        }
+      {
+        raw_output.write<uint8_t>(uint8_t(BIND_OPCODES::SET_TYPE_IMM) | inst.op1);
+        break;
+      }

       case BIND_OPCODES::SET_ADDEND_SLEB:
-        {
-          raw_output
-            .write<uint8_t>(uint8_t(BIND_OPCODES::SET_ADDEND_SLEB))
+      {
+        raw_output.write<uint8_t>(uint8_t(BIND_OPCODES::SET_ADDEND_SLEB))
             .write_sleb128(inst.op1);
-          break;
-        }
+        break;
+      }

       case BIND_OPCODES::SET_SEGMENT_AND_OFFSET_ULEB:
-        {
-          raw_output
-            .write<uint8_t>(uint8_t(BIND_OPCODES::SET_SEGMENT_AND_OFFSET_ULEB) | inst.op1)
+      {
+        raw_output
+            .write<uint8_t>(uint8_t(BIND_OPCODES::SET_SEGMENT_AND_OFFSET_ULEB) |
+                            inst.op1)
             .write_uleb128(inst.op2);
-          break;
-        }
+        break;
+      }

       case BIND_OPCODES::ADD_ADDR_ULEB:
-        {
-          raw_output
-            .write<uint8_t>(uint8_t(BIND_OPCODES::ADD_ADDR_ULEB))
+      {
+        raw_output.write<uint8_t>(uint8_t(BIND_OPCODES::ADD_ADDR_ULEB))
             .write_uleb128(inst.op1);
-          break;
-        }
+        break;
+      }

       case BIND_OPCODES::DO_BIND:
-        {
-          raw_output
-            .write<uint8_t>(uint8_t(BIND_OPCODES::DO_BIND));
-          break;
-        }
+      {
+        raw_output.write<uint8_t>(uint8_t(BIND_OPCODES::DO_BIND));
+        break;
+      }

       case BIND_OPCODES::DO_BIND_ADD_ADDR_ULEB:
-        {
-          raw_output
-            .write<uint8_t>(uint8_t(BIND_OPCODES::DO_BIND_ADD_ADDR_ULEB))
+      {
+        raw_output.write<uint8_t>(uint8_t(BIND_OPCODES::DO_BIND_ADD_ADDR_ULEB))
             .write_uleb128(inst.op1);
-          break;
-        }
+        break;
+      }

       case BIND_OPCODES::DO_BIND_ADD_ADDR_IMM_SCALED:
-        {
-          raw_output
-            .write<uint8_t>(uint8_t(BIND_OPCODES::DO_BIND_ADD_ADDR_IMM_SCALED) | inst.op1);
-          break;
-        }
+      {
+        raw_output.write<uint8_t>(
+            uint8_t(BIND_OPCODES::DO_BIND_ADD_ADDR_IMM_SCALED) | inst.op1
+        );
+        break;
+      }

       case BIND_OPCODES::DO_BIND_ULEB_TIMES_SKIPPING_ULEB:
-        {
-          raw_output
-            .write<uint8_t>(uint8_t(BIND_OPCODES::DO_BIND_ULEB_TIMES_SKIPPING_ULEB))
+      {
+        raw_output
+            .write<uint8_t>(
+                uint8_t(BIND_OPCODES::DO_BIND_ULEB_TIMES_SKIPPING_ULEB)
+            )
             .write_uleb128(inst.op1)
             .write_uleb128(inst.op2);
-          break;
-        }
+        break;
+      }

       default:
-        {
-          LIEF_WARN("Opcode {} ({:d}) is not processed for weak bindings",
-              to_string(static_cast<BIND_OPCODES>(inst.opcode)), inst.opcode);
-          break;
-        }
+      {
+        LIEF_WARN("Unhandled opcode {} ({:d}) for weak bindings",
+                  to_string(static_cast<BIND_OPCODES>(inst.opcode)), inst.opcode);
+        break;
+      }
     }
   }
   raw_output.align(pint_size);
   if (raw_output.size() > bind_opcodes_.size()) {
-    LIEF_INFO("New REGULAR bind opcodes are larger than the original ones: 0x{:06x} -> 0x{:06x}",
+    LIEF_INFO("New regular bind opcodes exceed original size: {:#08x} -> {:#08x}",
               bind_opcodes_.size(), raw_output.size());
   }
-  stream.write(std::move(raw_output.raw()));
+  stream.write(raw_output.raw());
   return *this;
 }


-DyldInfo& DyldInfo::update_standard_bindings_v2(const DyldInfo::bind_container_t& bindings_set,
-                                                std::vector<RelocationDyld*> rebases, vector_iostream& stream) {
+DyldInfo& DyldInfo::update_standard_bindings_v2(
+    const DyldInfo::bind_container_t& bindings_set,
+    std::vector<RelocationDyld*> rebases, vector_iostream& stream
+) {
   // v2 encoding as defined in Linkedit.hpp - BindingInfoAtom<A>::encodeV2()
   // This encoding uses THREADED opcodes.
-  std::vector<DyldBindingInfo*> bindings = {std::begin(bindings_set), std::end(bindings_set)};
+  std::vector<DyldBindingInfo*> bindings = {bindings_set.begin(),
+                                            bindings_set.end()};

   std::vector<details::binding_instruction> instructions;
   uint64_t current_segment_start = 0;
-  uint64_t current_segment_end   = 0;
+  uint64_t current_segment_end = 0;
   uint64_t current_segment_index = 0;
   uint8_t type = 0;
   auto address = static_cast<uint64_t>(-1);
@@ -1825,13 +1961,14 @@ DyldInfo& DyldInfo::update_standard_bindings_v2(const DyldInfo::bind_container_t
     const int32_t lib_ordinal = info->library_ordinal();
     if (ordinal != lib_ordinal) {
       if (lib_ordinal <= 0) {
-        instructions.emplace_back(uint8_t(BIND_OPCODES::SET_DYLIB_SPECIAL_IMM), lib_ordinal);
-      }
-      else if (lib_ordinal <= 15) {
-        instructions.emplace_back(uint8_t(BIND_OPCODES::SET_DYLIB_ORDINAL_IMM), lib_ordinal);
-      }
-      else {
-        instructions.emplace_back(uint8_t(BIND_OPCODES::SET_DYLIB_ORDINAL_ULEB), lib_ordinal);
+        instructions.emplace_back(uint8_t(BIND_OPCODES::SET_DYLIB_SPECIAL_IMM),
+                                  lib_ordinal);
+      } else if (lib_ordinal <= 15) {
+        instructions.emplace_back(uint8_t(BIND_OPCODES::SET_DYLIB_ORDINAL_IMM),
+                                  lib_ordinal);
+      } else {
+        instructions.emplace_back(uint8_t(BIND_OPCODES::SET_DYLIB_ORDINAL_ULEB),
+                                  lib_ordinal);
       }
       ordinal = lib_ordinal;
       made_changes = true;
@@ -1843,7 +1980,10 @@ DyldInfo& DyldInfo::update_standard_bindings_v2(const DyldInfo::bind_container_t
     if (symbol_name != info->symbol()->name()) {
       uint64_t flag = info->is_weak_import() ? BIND_SYMBOL_FLAGS::WEAK_IMPORT : 0;
       symbol_name = info->symbol()->name();
-      instructions.emplace_back(uint8_t(BIND_OPCODES::SET_SYMBOL_TRAILING_FLAGS_IMM), flag, 0, symbol_name);
+      instructions.emplace_back(
+          uint8_t(BIND_OPCODES::SET_SYMBOL_TRAILING_FLAGS_IMM), flag, 0,
+          symbol_name
+      );
       made_changes = true;
     }

@@ -1861,12 +2001,12 @@ DyldInfo& DyldInfo::update_standard_bindings_v2(const DyldInfo::bind_container_t
       address = info->address();
       SegmentCommand* segment = info->segment();
       if (segment == nullptr) {
-        LIEF_ERR("Can't find the segment associated with the binding info. Can't udpate binding v2");
+        LIEF_ERR("Segment not found for v2 binding update");
         return *this;
       }
       size_t index = segment->index();
       current_segment_start = segment->virtual_address();
-      current_segment_end   = segment->virtual_address() + segment->virtual_size();
+      current_segment_end = segment->virtual_address() + segment->virtual_size();
       current_segment_index = index;
       made_changes = true;
     }
@@ -1883,7 +2023,9 @@ DyldInfo& DyldInfo::update_standard_bindings_v2(const DyldInfo::bind_container_t
     }
   }

-  if (num_bindings > std::numeric_limits<uint16_t>::max() && num_bindings != static_cast<uint64_t>(-1)) {
+  if (num_bindings > std::numeric_limits<uint16_t>::max() &&
+      num_bindings != static_cast<uint64_t>(-1))
+  {
     LIEF_ERR("Too many binds ({:d}). The limit being 65536");
     return *this;
   }
@@ -1899,18 +2041,21 @@ DyldInfo& DyldInfo::update_standard_bindings_v2(const DyldInfo::bind_container_t
     threaded_rebase_bind_indices.push_back(i + 1);
   }

-  std::sort(std::begin(threaded_rebase_bind_indices), std::end(threaded_rebase_bind_indices),
-      [&bindings, &rebases] (int64_t index_a, int64_t index_b) {
-        if (index_a == index_b) {
-          return false;
-        }
-        uint64_t address_a = index_a <= 0 ? rebases[-index_a]->address() : bindings[index_a - 1]->address();
-        uint64_t address_b = index_b <= 0 ? rebases[-index_b]->address() : bindings[index_b - 1]->address();
-        return address_a < address_b;
-      });
+  std::sort(threaded_rebase_bind_indices.begin(),
+            threaded_rebase_bind_indices.end(),
+            [&bindings, &rebases](int64_t index_a, int64_t index_b) {
+              if (index_a == index_b) {
+                return false;
+              }
+              uint64_t address_a = index_a <= 0 ? rebases[-index_a]->address() :
+                                                  bindings[index_a - 1]->address();
+              uint64_t address_b = index_b <= 0 ? rebases[-index_b]->address() :
+                                                  bindings[index_b - 1]->address();
+              return address_a < address_b;
+            });

   current_segment_start = 0;
-  current_segment_end   = 0;
+  current_segment_end = 0;
   current_segment_index = 0;

   uint64_t prev_page_index = 0;
@@ -1936,156 +2081,164 @@ DyldInfo& DyldInfo::update_standard_bindings_v2(const DyldInfo::bind_container_t
       return *this;
     }
     if (address % 8 != 0) {
-      LIEF_WARN("Address not aligned!");
+      LIEF_WARN("Address not aligned");
     }

     bool new_segment = false;
     if (address < current_segment_start || address >= current_segment_end) {
       size_t index = segment->index();
       current_segment_start = segment->virtual_address();
-      current_segment_end   = segment->virtual_address() + segment->virtual_size();
+      current_segment_end = segment->virtual_address() + segment->virtual_size();
       current_segment_index = index;
       new_segment = true;
     }
     uint64_t page_index = (address - current_segment_start) / 4096;
     if (new_segment || page_index != prev_page_index) {
       instructions.emplace_back(uint8_t(BIND_OPCODES::SET_SEGMENT_AND_OFFSET_ULEB),
-                                current_segment_index, address - current_segment_start);
+                                current_segment_index,
+                                address - current_segment_start);
       instructions.emplace_back(uint8_t(BIND_OPCODES::THREADED) |
-                                uint8_t(BIND_SUBOPCODE_THREADED::APPLY),
+                                    uint8_t(BIND_SUBOPCODE_THREADED::APPLY),
                                 0);
     }
     prev_page_index = page_index;
   }
   instructions.emplace_back(static_cast<uint8_t>(BIND_OPCODES::DONE), 0);
   vector_iostream raw_output;
-  raw_output.write<uint8_t>(static_cast<uint8_t>(BIND_OPCODES::THREADED) |
-                            static_cast<uint8_t>(BIND_SUBOPCODE_THREADED::SET_BIND_ORDINAL_TABLE_SIZE_ULEB))
-            .write_uleb128(num_bindings + 1);
+  raw_output
+      .write<uint8_t>(static_cast<uint8_t>(BIND_OPCODES::THREADED) |
+                      static_cast<uint8_t>(
+                          BIND_SUBOPCODE_THREADED::SET_BIND_ORDINAL_TABLE_SIZE_ULEB
+                      ))
+      .write_uleb128(num_bindings + 1);

   bool done = false;
-  for (auto it = std::begin(instructions); !done && it != std::end(instructions); ++it) {
+  for (auto it = instructions.begin(); !done && it != instructions.end(); ++it) {
     const details::binding_instruction& inst = *it;
-    switch(static_cast<BIND_OPCODES>(it->opcode)) {
+    switch (static_cast<BIND_OPCODES>(it->opcode)) {
       case BIND_OPCODES::DONE:
-        {
-          done = true;
-          break;
-        }
+      {
+        done = true;
+        break;
+      }

       case BIND_OPCODES::SET_DYLIB_ORDINAL_IMM:
-        {
-          raw_output
-            .write<uint8_t>(uint8_t(BIND_OPCODES::SET_DYLIB_ORDINAL_IMM) | inst.op1);
-          break;
-        }
+      {
+        raw_output.write<uint8_t>(uint8_t(BIND_OPCODES::SET_DYLIB_ORDINAL_IMM) |
+                                  inst.op1);
+        break;
+      }

       case BIND_OPCODES::SET_DYLIB_ORDINAL_ULEB:
-        {
-          raw_output
-            .write<uint8_t>(uint8_t(BIND_OPCODES::SET_DYLIB_ORDINAL_ULEB))
+      {
+        raw_output.write<uint8_t>(uint8_t(BIND_OPCODES::SET_DYLIB_ORDINAL_ULEB))
             .write_uleb128(inst.op1);
-          break;
-        }
+        break;
+      }

       case BIND_OPCODES::SET_DYLIB_SPECIAL_IMM:
-        {
-          raw_output
-            .write<uint8_t>(uint8_t(BIND_OPCODES::SET_DYLIB_SPECIAL_IMM) | (inst.op1 & IMMEDIATE_MASK));
-          break;
-        }
+      {
+        raw_output.write<uint8_t>(uint8_t(BIND_OPCODES::SET_DYLIB_SPECIAL_IMM) |
+                                  (inst.op1 & IMMEDIATE_MASK));
+        break;
+      }

       case BIND_OPCODES::SET_SYMBOL_TRAILING_FLAGS_IMM:
-        {
-          raw_output
-            .write<uint8_t>(uint8_t(BIND_OPCODES::SET_SYMBOL_TRAILING_FLAGS_IMM) | inst.op1)
+      {
+        raw_output
+            .write<uint8_t>(uint8_t(BIND_OPCODES::SET_SYMBOL_TRAILING_FLAGS_IMM) |
+                            inst.op1)
             .write(inst.name);
-          break;
-        }
+        break;
+      }

       case BIND_OPCODES::SET_TYPE_IMM:
-        {
-          raw_output
-            .write<uint8_t>(uint8_t(BIND_OPCODES::SET_TYPE_IMM) | inst.op1);
-          break;
-        }
+      {
+        raw_output.write<uint8_t>(uint8_t(BIND_OPCODES::SET_TYPE_IMM) | inst.op1);
+        break;
+      }

       case BIND_OPCODES::SET_ADDEND_SLEB:
-        {
-          raw_output
-            .write<uint8_t>(uint8_t(BIND_OPCODES::SET_ADDEND_SLEB))
+      {
+        raw_output.write<uint8_t>(uint8_t(BIND_OPCODES::SET_ADDEND_SLEB))
             .write_sleb128(inst.op1);
-          break;
-        }
+        break;
+      }

       case BIND_OPCODES::SET_SEGMENT_AND_OFFSET_ULEB:
-        {
-          raw_output
-            .write<uint8_t>(uint8_t(BIND_OPCODES::SET_SEGMENT_AND_OFFSET_ULEB) | inst.op1)
+      {
+        raw_output
+            .write<uint8_t>(uint8_t(BIND_OPCODES::SET_SEGMENT_AND_OFFSET_ULEB) |
+                            inst.op1)
             .write_uleb128(inst.op2);
-          break;
-        }
+        break;
+      }

       case BIND_OPCODES::ADD_ADDR_ULEB:
-        {
-          raw_output
+      {
+        raw_output
             .write<uint8_t>(static_cast<uint8_t>(BIND_OPCODES::ADD_ADDR_ULEB))
             .write_uleb128(inst.op1);
-          break;
-        }
+        break;
+      }

       case BIND_OPCODES::DO_BIND:
-        {
-          raw_output
-            .write<uint8_t>(static_cast<uint8_t>(BIND_OPCODES::DO_BIND));
-          break;
-        }
+      {
+        raw_output.write<uint8_t>(static_cast<uint8_t>(BIND_OPCODES::DO_BIND));
+        break;
+      }

       case BIND_OPCODES::DO_BIND_ADD_ADDR_ULEB:
-        {
-          raw_output
-            .write<uint8_t>(static_cast<uint8_t>(BIND_OPCODES::DO_BIND_ADD_ADDR_ULEB))
+      {
+        raw_output
+            .write<uint8_t>(
+                static_cast<uint8_t>(BIND_OPCODES::DO_BIND_ADD_ADDR_ULEB)
+            )
             .write_uleb128(inst.op1);
-          break;
-        }
+        break;
+      }

       case BIND_OPCODES::DO_BIND_ADD_ADDR_IMM_SCALED:
-        {
-          raw_output
-            .write<uint8_t>(uint8_t(BIND_OPCODES::DO_BIND_ADD_ADDR_IMM_SCALED) | inst.op1);
-          break;
-        }
+      {
+        raw_output.write<uint8_t>(
+            uint8_t(BIND_OPCODES::DO_BIND_ADD_ADDR_IMM_SCALED) | inst.op1
+        );
+        break;
+      }

       case BIND_OPCODES::DO_BIND_ULEB_TIMES_SKIPPING_ULEB:
-        {
-          raw_output
-            .write<uint8_t>(uint8_t(BIND_OPCODES::DO_BIND_ULEB_TIMES_SKIPPING_ULEB))
+      {
+        raw_output
+            .write<uint8_t>(
+                uint8_t(BIND_OPCODES::DO_BIND_ULEB_TIMES_SKIPPING_ULEB)
+            )
             .write_uleb128(inst.op1)
             .write_uleb128(inst.op2);
-          break;
-        }
+        break;
+      }

       case BIND_OPCODES::THREADED_SET_BIND_ORDINAL_TABLE_SIZE_ULEB:
-        {
-          raw_output
-            .write<uint8_t>(static_cast<uint8_t>(BIND_OPCODES::THREADED_SET_BIND_ORDINAL_TABLE_SIZE_ULEB))
+      {
+        raw_output
+            .write<uint8_t>(static_cast<uint8_t>(
+                BIND_OPCODES::THREADED_SET_BIND_ORDINAL_TABLE_SIZE_ULEB
+            ))
             .write_uleb128(inst.op1);
-          break;
-        }
+        break;
+      }

       case BIND_OPCODES::THREADED_APPLY:
-        {
-          raw_output
-            .write(static_cast<uint8_t>(BIND_OPCODES::THREADED_APPLY));
-          break;
-        }
+      {
+        raw_output.write(static_cast<uint8_t>(BIND_OPCODES::THREADED_APPLY));
+        break;
+      }

       default:
-        {
-          LIEF_ERR("Unsupported opcode");
-          done = true;
-          break;
-        }
+      {
+        LIEF_ERR("Unsupported opcode");
+        done = true;
+        break;
+      }
     }
   }

@@ -2093,38 +2246,51 @@ DyldInfo& DyldInfo::update_standard_bindings_v2(const DyldInfo::bind_container_t
   raw_output.align(pint_size);

   if (raw_output.size() > bind_opcodes_.size()) {
-    LIEF_INFO("New REGULAR V2 bind opcodes are larger than the original ones: 0x{:06x} -> 0x{:06x}",
-              bind_opcodes_.size(), raw_output.size());
+    LIEF_INFO(
+        "New regular v2 bind opcodes exceed original size: {:#08x} -> {:#08x}",
+        bind_opcodes_.size(), raw_output.size()
+    );
   }
-  stream.write(std::move(raw_output.raw()));
+  stream.write(raw_output.raw());
   return *this;
 }


 DyldInfo& DyldInfo::update_export_trie(vector_iostream& stream) {
-  std::vector<uint8_t> raw_output = create_trie(export_info_, binary_->pointer_size());
+  std::vector<uint8_t> raw_output =
+      create_trie(export_info_, binary_->pointer_size());
   if (raw_output.size() > export_trie_.size()) {
-    LIEF_INFO("New EXPORTS TRIE is larger than the original one: 0x{:06x} -> 0x{:06x}",
+    LIEF_INFO("New export trie exceeds original size: {:#08x} -> {:#08x}",
               export_trie_.size(), raw_output.size());
   }
-  stream.write(std::move(raw_output));
+  stream.write(raw_output);
   return *this;
 }


-void DyldInfo::add(std::unique_ptr<ExportInfo> info) {
-  export_info_.push_back(std::move(info));
+ExportInfo* DyldInfo::add(std::unique_ptr<ExportInfo> info) {
+  return export_info_.emplace_back(std::move(info)).get();
 }

 std::ostream& DyldInfo::print(std::ostream& os) const {
   LoadCommand::print(os) << '\n';

   os << fmt::format("{:11}: {:10} {:10}", "Type", "Offset", "Size") << '\n'
-     << fmt::format("{:11}: {:10} {:10}", "Rebase", std::get<0>(rebase()), std::get<1>(rebase())) << '\n'
-     << fmt::format("{:11}: {:10} {:10}", "Bind", std::get<0>(bind()), std::get<1>(bind())) << '\n'
-     << fmt::format("{:11}: {:10} {:10}", "Weak bind", std::get<0>(weak_bind()), std::get<1>(weak_bind())) << '\n'
-     << fmt::format("{:11}: {:10} {:10}", "Lazy bind", std::get<0>(lazy_bind()), std::get<1>(lazy_bind())) << '\n'
-     << fmt::format("{:11}: {:10} {:10}", "Export", std::get<0>(export_info()), std::get<1>(export_info())) << '\n';
+     << fmt::format("{:11}: {:10} {:10}", "Rebase", std::get<0>(rebase()),
+                    std::get<1>(rebase()))
+     << '\n'
+     << fmt::format("{:11}: {:10} {:10}", "Bind", std::get<0>(bind()),
+                    std::get<1>(bind()))
+     << '\n'
+     << fmt::format("{:11}: {:10} {:10}", "Weak bind", std::get<0>(weak_bind()),
+                    std::get<1>(weak_bind()))
+     << '\n'
+     << fmt::format("{:11}: {:10} {:10}", "Lazy bind", std::get<0>(lazy_bind()),
+                    std::get<1>(lazy_bind()))
+     << '\n'
+     << fmt::format("{:11}: {:10} {:10}", "Export", std::get<0>(export_info()),
+                    std::get<1>(export_info()))
+     << '\n';

   it_const_binding_info bindings = this->bindings();
   if (!bindings.empty()) {
@@ -2147,14 +2313,14 @@ std::ostream& DyldInfo::print(std::ostream& os) const {


 const char* to_string(DyldInfo::REBASE_TYPE e) {
-  #define ENTRY(X) std::pair(DyldInfo::REBASE_TYPE::X, #X)
-  STRING_MAP enums2str {
-    ENTRY(POINTER),
-    ENTRY(TEXT_ABSOLUTE32),
-    ENTRY(TEXT_PCREL32),
-    ENTRY(THREADED),
+#define ENTRY(X) std::pair(DyldInfo::REBASE_TYPE::X, #X)
+  STRING_MAP enums2str{
+      ENTRY(POINTER),
+      ENTRY(TEXT_ABSOLUTE32),
+      ENTRY(TEXT_PCREL32),
+      ENTRY(THREADED),
   };
-  #undef ENTRY
+#undef ENTRY
   if (auto it = enums2str.find(e); it != enums2str.end()) {
     return it->second;
   }
@@ -2162,19 +2328,19 @@ const char* to_string(DyldInfo::REBASE_TYPE e) {
 }

 const char* to_string(DyldInfo::REBASE_OPCODES e) {
-  #define ENTRY(X) std::pair(DyldInfo::REBASE_OPCODES::X, #X)
-  STRING_MAP enums2str {
-    ENTRY(DONE),
-    ENTRY(SET_TYPE_IMM),
-    ENTRY(SET_SEGMENT_AND_OFFSET_ULEB),
-    ENTRY(ADD_ADDR_ULEB),
-    ENTRY(ADD_ADDR_IMM_SCALED),
-    ENTRY(DO_REBASE_IMM_TIMES),
-    ENTRY(DO_REBASE_ULEB_TIMES),
-    ENTRY(DO_REBASE_ADD_ADDR_ULEB),
-    ENTRY(DO_REBASE_ULEB_TIMES_SKIPPING_ULEB),
+#define ENTRY(X) std::pair(DyldInfo::REBASE_OPCODES::X, #X)
+  STRING_MAP enums2str{
+      ENTRY(DONE),
+      ENTRY(SET_TYPE_IMM),
+      ENTRY(SET_SEGMENT_AND_OFFSET_ULEB),
+      ENTRY(ADD_ADDR_ULEB),
+      ENTRY(ADD_ADDR_IMM_SCALED),
+      ENTRY(DO_REBASE_IMM_TIMES),
+      ENTRY(DO_REBASE_ULEB_TIMES),
+      ENTRY(DO_REBASE_ADD_ADDR_ULEB),
+      ENTRY(DO_REBASE_ULEB_TIMES_SKIPPING_ULEB),
   };
-  #undef ENTRY
+#undef ENTRY
   if (auto it = enums2str.find(e); it != enums2str.end()) {
     return it->second;
   }
@@ -2182,26 +2348,26 @@ const char* to_string(DyldInfo::REBASE_OPCODES e) {
 }

 const char* to_string(DyldInfo::BIND_OPCODES e) {
-  #define ENTRY(X) std::pair(DyldInfo::BIND_OPCODES::X, #X)
-  STRING_MAP enums2str {
-    ENTRY(DONE),
-    ENTRY(SET_DYLIB_ORDINAL_IMM),
-    ENTRY(SET_DYLIB_ORDINAL_ULEB),
-    ENTRY(SET_DYLIB_SPECIAL_IMM),
-    ENTRY(SET_SYMBOL_TRAILING_FLAGS_IMM),
-    ENTRY(SET_TYPE_IMM),
-    ENTRY(SET_ADDEND_SLEB),
-    ENTRY(SET_SEGMENT_AND_OFFSET_ULEB),
-    ENTRY(ADD_ADDR_ULEB),
-    ENTRY(DO_BIND),
-    ENTRY(DO_BIND_ADD_ADDR_ULEB),
-    ENTRY(DO_BIND_ADD_ADDR_IMM_SCALED),
-    ENTRY(DO_BIND_ULEB_TIMES_SKIPPING_ULEB),
-    ENTRY(THREADED),
-    ENTRY(THREADED_APPLY),
-    ENTRY(THREADED_SET_BIND_ORDINAL_TABLE_SIZE_ULEB),
+#define ENTRY(X) std::pair(DyldInfo::BIND_OPCODES::X, #X)
+  STRING_MAP enums2str{
+      ENTRY(DONE),
+      ENTRY(SET_DYLIB_ORDINAL_IMM),
+      ENTRY(SET_DYLIB_ORDINAL_ULEB),
+      ENTRY(SET_DYLIB_SPECIAL_IMM),
+      ENTRY(SET_SYMBOL_TRAILING_FLAGS_IMM),
+      ENTRY(SET_TYPE_IMM),
+      ENTRY(SET_ADDEND_SLEB),
+      ENTRY(SET_SEGMENT_AND_OFFSET_ULEB),
+      ENTRY(ADD_ADDR_ULEB),
+      ENTRY(DO_BIND),
+      ENTRY(DO_BIND_ADD_ADDR_ULEB),
+      ENTRY(DO_BIND_ADD_ADDR_IMM_SCALED),
+      ENTRY(DO_BIND_ULEB_TIMES_SKIPPING_ULEB),
+      ENTRY(THREADED),
+      ENTRY(THREADED_APPLY),
+      ENTRY(THREADED_SET_BIND_ORDINAL_TABLE_SIZE_ULEB),
   };
-  #undef ENTRY
+#undef ENTRY
   if (auto it = enums2str.find(e); it != enums2str.end()) {
     return it->second;
   }
@@ -2209,12 +2375,12 @@ const char* to_string(DyldInfo::BIND_OPCODES e) {
 }

 const char* to_string(DyldInfo::BIND_SUBOPCODE_THREADED e) {
-  #define ENTRY(X) std::pair(DyldInfo::BIND_SUBOPCODE_THREADED::X, #X)
-  STRING_MAP enums2str {
-    ENTRY(SET_BIND_ORDINAL_TABLE_SIZE_ULEB),
-    ENTRY(APPLY),
+#define ENTRY(X) std::pair(DyldInfo::BIND_SUBOPCODE_THREADED::X, #X)
+  STRING_MAP enums2str{
+      ENTRY(SET_BIND_ORDINAL_TABLE_SIZE_ULEB),
+      ENTRY(APPLY),
   };
-  #undef ENTRY
+#undef ENTRY
   if (auto it = enums2str.find(e); it != enums2str.end()) {
     return it->second;
   }
@@ -2223,4 +2389,3 @@ const char* to_string(DyldInfo::BIND_SUBOPCODE_THREADED e) {


 }
-}
diff --git a/deps/LIEF/src/MachO/DylibCommand.cpp b/deps/LIEF/src/MachO/DylibCommand.cpp
index 4cb5c1ca705..0fab5939257 100644
--- a/deps/LIEF/src/MachO/DylibCommand.cpp
+++ b/deps/LIEF/src/MachO/DylibCommand.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -21,16 +21,15 @@
 #include "LIEF/MachO/DylibCommand.hpp"
 #include "MachO/Structures.hpp"

-namespace LIEF {
-namespace MachO {
+
+namespace LIEF::MachO {

 DylibCommand::DylibCommand(const details::dylib_command& cmd) :
   LoadCommand::LoadCommand{static_cast<LoadCommand::TYPE>(cmd.cmd), cmd.cmdsize},
   name_offset_{cmd.name},
   timestamp_{cmd.timestamp},
   current_version_{cmd.current_version},
-  compatibility_version_{cmd.compatibility_version}
-{}
+  compatibility_version_{cmd.compatibility_version} {}


 void DylibCommand::accept(Visitor& visitor) const {
@@ -41,23 +40,22 @@ std::ostream& DylibCommand::print(std::ostream& os) const {
   LoadCommand::print(os) << '\n';
   os << fmt::format("name={}, timestamp={}, "
                     "current_version={},  compatibility_version={}",
-                    name(), timestamp(),
-                    fmt::join(current_version(), "."),
+                    name(), timestamp(), fmt::join(current_version(), "."),
                     fmt::join(compatibility_version(), "."));
-   return os;
+  return os;
 }

-DylibCommand DylibCommand::create(LoadCommand::TYPE type,
-    const std::string& name,
-    uint32_t timestamp,
-    uint32_t current_version,
-    uint32_t compat_version) {
-
-  details::dylib_command raw_cmd;
-  raw_cmd.cmd                   = static_cast<uint32_t>(type);
-  raw_cmd.cmdsize               = align(sizeof(details::dylib_command) + name.size() + 1, sizeof(uint64_t));
-  raw_cmd.timestamp             = timestamp;
-  raw_cmd.current_version       = current_version;
+DylibCommand DylibCommand::create(LoadCommand::TYPE type, const std::string& name,
+                                  uint32_t timestamp, uint32_t current_version,
+                                  uint32_t compat_version) {
+
+  details::dylib_command raw_cmd{};
+  raw_cmd.name = 0;
+  raw_cmd.cmd = static_cast<uint32_t>(type);
+  raw_cmd.cmdsize =
+      align(sizeof(details::dylib_command) + name.size() + 1, sizeof(uint64_t));
+  raw_cmd.timestamp = timestamp;
+  raw_cmd.current_version = current_version;
   raw_cmd.compatibility_version = compat_version;

   DylibCommand dylib{raw_cmd};
@@ -67,72 +65,56 @@ DylibCommand DylibCommand::create(LoadCommand::TYPE type,
   return dylib;
 }

-DylibCommand DylibCommand::load_dylib(const std::string& name,
-      uint32_t timestamp,
-      uint32_t current_version,
-      uint32_t compat_version)
-{
+DylibCommand DylibCommand::load_dylib(const std::string& name, uint32_t timestamp,
+                                      uint32_t current_version,
+                                      uint32_t compat_version) {

-  return DylibCommand::create(
-      LoadCommand::TYPE::LOAD_DYLIB, name,
-      timestamp, current_version, compat_version);
+  return DylibCommand::create(LoadCommand::TYPE::LOAD_DYLIB, name, timestamp,
+                              current_version, compat_version);
 }

-DylibCommand DylibCommand::weak_dylib(const std::string& name,
-      uint32_t timestamp,
-      uint32_t current_version,
-      uint32_t compat_version)
-{
+DylibCommand DylibCommand::weak_dylib(const std::string& name, uint32_t timestamp,
+                                      uint32_t current_version,
+                                      uint32_t compat_version) {

-  return DylibCommand::create(
-      LoadCommand::TYPE::LOAD_WEAK_DYLIB, name,
-      timestamp, current_version, compat_version);
+  return DylibCommand::create(LoadCommand::TYPE::LOAD_WEAK_DYLIB, name, timestamp,
+                              current_version, compat_version);
 }

-DylibCommand DylibCommand::id_dylib(const std::string& name,
-      uint32_t timestamp,
-      uint32_t current_version,
-      uint32_t compat_version)
-{
+DylibCommand DylibCommand::id_dylib(const std::string& name, uint32_t timestamp,
+                                    uint32_t current_version,
+                                    uint32_t compat_version) {

-  return DylibCommand::create(
-      LoadCommand::TYPE::ID_DYLIB, name,
-      timestamp, current_version, compat_version);
+  return DylibCommand::create(LoadCommand::TYPE::ID_DYLIB, name, timestamp,
+                              current_version, compat_version);
 }

 DylibCommand DylibCommand::reexport_dylib(const std::string& name,
-      uint32_t timestamp,
-      uint32_t current_version,
-      uint32_t compat_version)
-{
-
-  return DylibCommand::create(
-      LoadCommand::TYPE::REEXPORT_DYLIB, name,
-      timestamp, current_version, compat_version);
+                                          uint32_t timestamp,
+                                          uint32_t current_version,
+                                          uint32_t compat_version) {
+
+  return DylibCommand::create(LoadCommand::TYPE::REEXPORT_DYLIB, name, timestamp,
+                              current_version, compat_version);
 }

 DylibCommand DylibCommand::load_upward_dylib(const std::string& name,
-      uint32_t timestamp,
-      uint32_t current_version,
-      uint32_t compat_version)
-{
-
-  return DylibCommand::create(
-      LoadCommand::TYPE::LOAD_UPWARD_DYLIB, name,
-      timestamp, current_version, compat_version);
+                                             uint32_t timestamp,
+                                             uint32_t current_version,
+                                             uint32_t compat_version) {
+
+  return DylibCommand::create(LoadCommand::TYPE::LOAD_UPWARD_DYLIB, name,
+                              timestamp, current_version, compat_version);
 }


 DylibCommand DylibCommand::lazy_load_dylib(const std::string& name,
-      uint32_t timestamp,
-      uint32_t current_version,
-      uint32_t compat_version)
-{
-
-  return DylibCommand::create(
-      LoadCommand::TYPE::LAZY_LOAD_DYLIB, name,
-      timestamp, current_version, compat_version);
-}
+                                           uint32_t timestamp,
+                                           uint32_t current_version,
+                                           uint32_t compat_version) {

+  return DylibCommand::create(LoadCommand::TYPE::LAZY_LOAD_DYLIB, name, timestamp,
+                              current_version, compat_version);
 }
+
 }
diff --git a/deps/LIEF/src/MachO/DylinkerCommand.cpp b/deps/LIEF/src/MachO/DylinkerCommand.cpp
index c9eb51c83b2..934882e4390 100644
--- a/deps/LIEF/src/MachO/DylinkerCommand.cpp
+++ b/deps/LIEF/src/MachO/DylinkerCommand.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -13,25 +13,25 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-#include <iomanip>
 #include "LIEF/utils.hpp"
 #include "LIEF/MachO/hash.hpp"

 #include "LIEF/MachO/DylinkerCommand.hpp"
 #include "MachO/Structures.hpp"

-namespace LIEF {
-namespace MachO {
+
+namespace LIEF::MachO {

 DylinkerCommand::DylinkerCommand(const details::dylinker_command& cmd) :
-  LoadCommand::LoadCommand{LoadCommand::TYPE(cmd.cmd), cmd.cmdsize}
-{}
+  LoadCommand::LoadCommand{LoadCommand::TYPE(cmd.cmd), cmd.cmdsize} {}

 DylinkerCommand::DylinkerCommand(std::string name) :
   LoadCommand::LoadCommand{LoadCommand::TYPE::LOAD_DYLINKER,
-                           static_cast<uint32_t>(align(sizeof(details::dylinker_command) + name.size() + 1, sizeof(uint64_t)))},
-  name_{std::move(name)}
-{
+                           static_cast<uint32_t>(align(
+                               sizeof(details::dylinker_command) + name.size() + 1,
+                               sizeof(uint64_t)
+                           ))},
+  name_{std::move(name)} {
   this->data(LoadCommand::raw_t(size(), 0));
 }

@@ -46,4 +46,3 @@ std::ostream& DylinkerCommand::print(std::ostream& os) const {
 }

 }
-}
diff --git a/deps/LIEF/src/MachO/DynamicSymbolCommand.cpp b/deps/LIEF/src/MachO/DynamicSymbolCommand.cpp
index 1fa0640054f..b24eff6b845 100644
--- a/deps/LIEF/src/MachO/DynamicSymbolCommand.cpp
+++ b/deps/LIEF/src/MachO/DynamicSymbolCommand.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -19,13 +19,12 @@
 #include "LIEF/MachO/DynamicSymbolCommand.hpp"
 #include "MachO/Structures.hpp"

-namespace LIEF {
-namespace MachO {
+
+namespace LIEF::MachO {

 DynamicSymbolCommand::DynamicSymbolCommand() :
   LoadCommand::LoadCommand{LoadCommand::TYPE::DYSYMTAB,
-                           sizeof(details::dysymtab_command)}
-{}
+                           sizeof(details::dysymtab_command)} {}

 DynamicSymbolCommand::DynamicSymbolCommand(const details::dysymtab_command& cmd) :
   LoadCommand::LoadCommand{LoadCommand::TYPE(cmd.cmd), cmd.cmdsize},
@@ -55,8 +54,7 @@ DynamicSymbolCommand::DynamicSymbolCommand(const details::dysymtab_command& cmd)
   nb_external_relocations_{cmd.nextrel},

   local_relocation_offset_{cmd.locreloff},
-  nb_local_relocations_{cmd.nlocrel}
-{}
+  nb_local_relocations_{cmd.nlocrel} {}


 void DynamicSymbolCommand::accept(Visitor& visitor) const {
@@ -65,28 +63,39 @@ void DynamicSymbolCommand::accept(Visitor& visitor) const {

 std::ostream& DynamicSymbolCommand::print(std::ostream& os) const {
   LoadCommand::print(os) << '\n';
-  static constexpr auto DEFAULT_FMT = "{:36}: 0x{:x}\n";
+  static constexpr auto DEFAULT_FMT = "{:36}: {:#x}\n";
   os << fmt::format(DEFAULT_FMT, "First local symbol index", idx_local_symbol());
   os << fmt::format(DEFAULT_FMT, "Number of local symbols", nb_local_symbols());
-  os << fmt::format(DEFAULT_FMT, "External symbol index", idx_external_define_symbol());
-  os << fmt::format(DEFAULT_FMT, "Number of external symbols", nb_external_define_symbols());
+  os << fmt::format(DEFAULT_FMT, "External symbol index",
+                    idx_external_define_symbol());
+  os << fmt::format(DEFAULT_FMT, "Number of external symbols",
+                    nb_external_define_symbols());
   os << fmt::format(DEFAULT_FMT, "Undefined symbol index", idx_undefined_symbol());
-  os << fmt::format(DEFAULT_FMT, "Number of undefined symbols", nb_undefined_symbols());
+  os << fmt::format(DEFAULT_FMT, "Number of undefined symbols",
+                    nb_undefined_symbols());
   os << fmt::format(DEFAULT_FMT, "Table of content offset", toc_offset());
   os << fmt::format(DEFAULT_FMT, "Number of entries in TOC", nb_toc());
   os << fmt::format(DEFAULT_FMT, "Module table offset", module_table_offset());
-  os << fmt::format(DEFAULT_FMT, "Number of entries in module table", nb_module_table());
-  os << fmt::format(DEFAULT_FMT, "External reference table offset", external_reference_symbol_offset());
-  os << fmt::format(DEFAULT_FMT, "Number of external reference", nb_external_reference_symbols());
-  os << fmt::format(DEFAULT_FMT, "Indirect symbols offset", indirect_symbol_offset());
-  os << fmt::format(DEFAULT_FMT, "Number of indirect symbols", nb_indirect_symbols());
-  os << fmt::format(DEFAULT_FMT, "External relocation offset", external_relocation_offset());
-  os << fmt::format(DEFAULT_FMT, "Number of external relocations", nb_external_relocations());
-  os << fmt::format(DEFAULT_FMT, "Local relocation offset", local_relocation_offset());
-  os << fmt::format(DEFAULT_FMT, "Number of local relocations", nb_local_relocations());
+  os << fmt::format(DEFAULT_FMT, "Number of entries in module table",
+                    nb_module_table());
+  os << fmt::format(DEFAULT_FMT, "External reference table offset",
+                    external_reference_symbol_offset());
+  os << fmt::format(DEFAULT_FMT, "Number of external reference",
+                    nb_external_reference_symbols());
+  os << fmt::format(DEFAULT_FMT, "Indirect symbols offset",
+                    indirect_symbol_offset());
+  os << fmt::format(DEFAULT_FMT, "Number of indirect symbols",
+                    nb_indirect_symbols());
+  os << fmt::format(DEFAULT_FMT, "External relocation offset",
+                    external_relocation_offset());
+  os << fmt::format(DEFAULT_FMT, "Number of external relocations",
+                    nb_external_relocations());
+  os << fmt::format(DEFAULT_FMT, "Local relocation offset",
+                    local_relocation_offset());
+  os << fmt::format(DEFAULT_FMT, "Number of local relocations",
+                    nb_local_relocations());

   return os;
 }

 }
-}
diff --git a/deps/LIEF/src/MachO/EncryptionInfo.cpp b/deps/LIEF/src/MachO/EncryptionInfo.cpp
index 0bea4fff4c3..cfc9abffc80 100644
--- a/deps/LIEF/src/MachO/EncryptionInfo.cpp
+++ b/deps/LIEF/src/MachO/EncryptionInfo.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -19,15 +19,14 @@
 #include "LIEF/MachO/EncryptionInfo.hpp"
 #include "MachO/Structures.hpp"

-namespace LIEF {
-namespace MachO {
+
+namespace LIEF::MachO {

 EncryptionInfo::EncryptionInfo(const details::encryption_info_command& cmd) :
   LoadCommand::LoadCommand{LoadCommand::TYPE(cmd.cmd), cmd.cmdsize},
   coff_{cmd.cryptoff},
   csize_{cmd.cryptsize},
-  cid_{cmd.cryptid}
-{}
+  cid_{cmd.cryptid} {}

 void EncryptionInfo::accept(Visitor& visitor) const {
   visitor.visit(*this);
@@ -35,11 +34,10 @@ void EncryptionInfo::accept(Visitor& visitor) const {

 std::ostream& EncryptionInfo::print(std::ostream& os) const {
   LoadCommand::print(os) << '\n';
-  os << fmt::format("crypt offset=0x{:06x}, crypt size=0x{:06x}, crypt id={}",
-                     crypt_offset(), crypt_size(), crypt_id());
+  os << fmt::format("crypt offset={:#08x}, crypt size={:#08x}, crypt id={}",
+                    crypt_offset(), crypt_size(), crypt_id());
   return os;
 }


 }
-}
diff --git a/deps/LIEF/src/MachO/EnumToString.cpp b/deps/LIEF/src/MachO/EnumToString.cpp
index 76684e9bf8f..61b3e6daa3f 100644
--- a/deps/LIEF/src/MachO/EnumToString.cpp
+++ b/deps/LIEF/src/MachO/EnumToString.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -17,31 +17,31 @@
 #include "LIEF/MachO/EnumToString.hpp"
 #include "frozen.hpp"

-namespace LIEF {
-namespace MachO {
+
+namespace LIEF::MachO {

 const char* to_string(MACHO_TYPES e) {
-  CONST_MAP(MACHO_TYPES, const char*, 7) enumStrings {
-      { MACHO_TYPES::MAGIC,        "MAGIC"},
-      { MACHO_TYPES::CIGAM,        "CIGAM"},
-      { MACHO_TYPES::MAGIC_64,     "MAGIC_64"},
-      { MACHO_TYPES::CIGAM_64,     "CIGAM_64"},
-      { MACHO_TYPES::MAGIC_FAT,    "MAGIC_FAT"},
-      { MACHO_TYPES::CIGAM_FAT,    "CIGAM_FAT"},
-      { MACHO_TYPES::NEURAL_MODEL, "NEURAL_MODEL"}
-  };
+  CONST_MAP(MACHO_TYPES, const char*, 7)
+  enumStrings{{MACHO_TYPES::MAGIC, "MAGIC"},
+              {MACHO_TYPES::CIGAM, "CIGAM"},
+              {MACHO_TYPES::MAGIC_64, "MAGIC_64"},
+              {MACHO_TYPES::CIGAM_64, "CIGAM_64"},
+              {MACHO_TYPES::MAGIC_FAT, "MAGIC_FAT"},
+              {MACHO_TYPES::CIGAM_FAT, "CIGAM_FAT"},
+              {MACHO_TYPES::NEURAL_MODEL, "NEURAL_MODEL"}};
   const auto it = enumStrings.find(e);
   return it == enumStrings.end() ? "Out of range" : it->second;
 }

 const char* to_string(X86_RELOCATION e) {
-  CONST_MAP(X86_RELOCATION, const char*, 6) enumStrings {
-    { X86_RELOCATION::GENERIC_RELOC_VANILLA,        "VANILLA"        },
-    { X86_RELOCATION::GENERIC_RELOC_PAIR,           "PAIR"           },
-    { X86_RELOCATION::GENERIC_RELOC_SECTDIFF,       "SECTDIFF"       },
-    { X86_RELOCATION::GENERIC_RELOC_PB_LA_PTR,      "PB_LA_PTR"      },
-    { X86_RELOCATION::GENERIC_RELOC_LOCAL_SECTDIFF, "LOCAL_SECTDIFF" },
-    { X86_RELOCATION::GENERIC_RELOC_TLV,            "TLV"            },
+  CONST_MAP(X86_RELOCATION, const char*, 6)
+  enumStrings{
+      {X86_RELOCATION::GENERIC_RELOC_VANILLA, "VANILLA"},
+      {X86_RELOCATION::GENERIC_RELOC_PAIR, "PAIR"},
+      {X86_RELOCATION::GENERIC_RELOC_SECTDIFF, "SECTDIFF"},
+      {X86_RELOCATION::GENERIC_RELOC_PB_LA_PTR, "PB_LA_PTR"},
+      {X86_RELOCATION::GENERIC_RELOC_LOCAL_SECTDIFF, "LOCAL_SECTDIFF"},
+      {X86_RELOCATION::GENERIC_RELOC_TLV, "TLV"},
   };
   const auto it = enumStrings.find(e);
   return it == enumStrings.end() ? "Out of range" : it->second;
@@ -49,17 +49,18 @@ const char* to_string(X86_RELOCATION e) {


 const char* to_string(X86_64_RELOCATION e) {
-  CONST_MAP(X86_64_RELOCATION, const char*, 10) enumStrings {
-    { X86_64_RELOCATION::X86_64_RELOC_UNSIGNED,   "UNSIGNED"   },
-    { X86_64_RELOCATION::X86_64_RELOC_SIGNED,     "SIGNED"     },
-    { X86_64_RELOCATION::X86_64_RELOC_BRANCH,     "BRANCH"     },
-    { X86_64_RELOCATION::X86_64_RELOC_GOT_LOAD,   "GOT_LOAD"   },
-    { X86_64_RELOCATION::X86_64_RELOC_GOT,        "GOT"        },
-    { X86_64_RELOCATION::X86_64_RELOC_SUBTRACTOR, "SUBTRACTOR" },
-    { X86_64_RELOCATION::X86_64_RELOC_SIGNED_1,   "SIGNED_1"   },
-    { X86_64_RELOCATION::X86_64_RELOC_SIGNED_2,   "SIGNED_2"   },
-    { X86_64_RELOCATION::X86_64_RELOC_SIGNED_4,   "SIGNED_4"   },
-    { X86_64_RELOCATION::X86_64_RELOC_TLV,        "TLV"        },
+  CONST_MAP(X86_64_RELOCATION, const char*, 10)
+  enumStrings{
+      {X86_64_RELOCATION::X86_64_RELOC_UNSIGNED, "UNSIGNED"},
+      {X86_64_RELOCATION::X86_64_RELOC_SIGNED, "SIGNED"},
+      {X86_64_RELOCATION::X86_64_RELOC_BRANCH, "BRANCH"},
+      {X86_64_RELOCATION::X86_64_RELOC_GOT_LOAD, "GOT_LOAD"},
+      {X86_64_RELOCATION::X86_64_RELOC_GOT, "GOT"},
+      {X86_64_RELOCATION::X86_64_RELOC_SUBTRACTOR, "SUBTRACTOR"},
+      {X86_64_RELOCATION::X86_64_RELOC_SIGNED_1, "SIGNED_1"},
+      {X86_64_RELOCATION::X86_64_RELOC_SIGNED_2, "SIGNED_2"},
+      {X86_64_RELOCATION::X86_64_RELOC_SIGNED_4, "SIGNED_4"},
+      {X86_64_RELOCATION::X86_64_RELOC_TLV, "TLV"},
   };
   const auto it = enumStrings.find(e);
   return it == enumStrings.end() ? "Out of range" : it->second;
@@ -67,23 +68,24 @@ const char* to_string(X86_64_RELOCATION e) {


 const char* to_string(PPC_RELOCATION e) {
-  CONST_MAP(PPC_RELOCATION, const char*, 16) enumStrings {
-    { PPC_RELOCATION::PPC_RELOC_VANILLA,        "VANILLA"        },
-    { PPC_RELOCATION::PPC_RELOC_PAIR,           "PAIR"           },
-    { PPC_RELOCATION::PPC_RELOC_BR14,           "BR14"           },
-    { PPC_RELOCATION::PPC_RELOC_BR24,           "BR24"           },
-    { PPC_RELOCATION::PPC_RELOC_HI16,           "HI16"           },
-    { PPC_RELOCATION::PPC_RELOC_LO16,           "LO16"           },
-    { PPC_RELOCATION::PPC_RELOC_HA16,           "HA16"           },
-    { PPC_RELOCATION::PPC_RELOC_LO14,           "LO14"           },
-    { PPC_RELOCATION::PPC_RELOC_SECTDIFF,       "SECTDIFF"       },
-    { PPC_RELOCATION::PPC_RELOC_PB_LA_PTR,      "PB_LA_PTR"      },
-    { PPC_RELOCATION::PPC_RELOC_HI16_SECTDIFF,  "HI16_SECTDIFF"  },
-    { PPC_RELOCATION::PPC_RELOC_LO16_SECTDIFF,  "LO16_SECTDIFF"  },
-    { PPC_RELOCATION::PPC_RELOC_HA16_SECTDIFF,  "HA16_SECTDIFF"  },
-    { PPC_RELOCATION::PPC_RELOC_JBSR,           "JBSR"           },
-    { PPC_RELOCATION::PPC_RELOC_LO14_SECTDIFF,  "LO14_SECTDIFF"  },
-    { PPC_RELOCATION::PPC_RELOC_LOCAL_SECTDIFF, "LOCAL_SECTDIFF" },
+  CONST_MAP(PPC_RELOCATION, const char*, 16)
+  enumStrings{
+      {PPC_RELOCATION::PPC_RELOC_VANILLA, "VANILLA"},
+      {PPC_RELOCATION::PPC_RELOC_PAIR, "PAIR"},
+      {PPC_RELOCATION::PPC_RELOC_BR14, "BR14"},
+      {PPC_RELOCATION::PPC_RELOC_BR24, "BR24"},
+      {PPC_RELOCATION::PPC_RELOC_HI16, "HI16"},
+      {PPC_RELOCATION::PPC_RELOC_LO16, "LO16"},
+      {PPC_RELOCATION::PPC_RELOC_HA16, "HA16"},
+      {PPC_RELOCATION::PPC_RELOC_LO14, "LO14"},
+      {PPC_RELOCATION::PPC_RELOC_SECTDIFF, "SECTDIFF"},
+      {PPC_RELOCATION::PPC_RELOC_PB_LA_PTR, "PB_LA_PTR"},
+      {PPC_RELOCATION::PPC_RELOC_HI16_SECTDIFF, "HI16_SECTDIFF"},
+      {PPC_RELOCATION::PPC_RELOC_LO16_SECTDIFF, "LO16_SECTDIFF"},
+      {PPC_RELOCATION::PPC_RELOC_HA16_SECTDIFF, "HA16_SECTDIFF"},
+      {PPC_RELOCATION::PPC_RELOC_JBSR, "JBSR"},
+      {PPC_RELOCATION::PPC_RELOC_LO14_SECTDIFF, "LO14_SECTDIFF"},
+      {PPC_RELOCATION::PPC_RELOC_LOCAL_SECTDIFF, "LOCAL_SECTDIFF"},
   };
   const auto it = enumStrings.find(e);
   return it == enumStrings.end() ? "Out of range" : it->second;
@@ -91,17 +93,18 @@ const char* to_string(PPC_RELOCATION e) {


 const char* to_string(ARM_RELOCATION e) {
-  CONST_MAP(ARM_RELOCATION, const char*, 10) enumStrings {
-    { ARM_RELOCATION::ARM_RELOC_VANILLA,        "VANILLA"             },
-    { ARM_RELOCATION::ARM_RELOC_PAIR,           "PAIR"                },
-    { ARM_RELOCATION::ARM_RELOC_SECTDIFF,       "SECTDIFF"            },
-    { ARM_RELOCATION::ARM_RELOC_LOCAL_SECTDIFF, "LOCAL_SECTDIFF"      },
-    { ARM_RELOCATION::ARM_RELOC_PB_LA_PTR,      "PB_LA_PTR"           },
-    { ARM_RELOCATION::ARM_RELOC_BR24,           "BR24"                },
-    { ARM_RELOCATION::ARM_THUMB_RELOC_BR22,     "THUMB_RELOC_BR22"    },
-    { ARM_RELOCATION::ARM_THUMB_32BIT_BRANCH,   "THUMB_32BIT_BRANCH"  },
-    { ARM_RELOCATION::ARM_RELOC_HALF,           "HALF"                },
-    { ARM_RELOCATION::ARM_RELOC_HALF_SECTDIFF,  "HALF_SECTDIFF"       },
+  CONST_MAP(ARM_RELOCATION, const char*, 10)
+  enumStrings{
+      {ARM_RELOCATION::ARM_RELOC_VANILLA, "VANILLA"},
+      {ARM_RELOCATION::ARM_RELOC_PAIR, "PAIR"},
+      {ARM_RELOCATION::ARM_RELOC_SECTDIFF, "SECTDIFF"},
+      {ARM_RELOCATION::ARM_RELOC_LOCAL_SECTDIFF, "LOCAL_SECTDIFF"},
+      {ARM_RELOCATION::ARM_RELOC_PB_LA_PTR, "PB_LA_PTR"},
+      {ARM_RELOCATION::ARM_RELOC_BR24, "BR24"},
+      {ARM_RELOCATION::ARM_THUMB_RELOC_BR22, "THUMB_RELOC_BR22"},
+      {ARM_RELOCATION::ARM_THUMB_32BIT_BRANCH, "THUMB_32BIT_BRANCH"},
+      {ARM_RELOCATION::ARM_RELOC_HALF, "HALF"},
+      {ARM_RELOCATION::ARM_RELOC_HALF_SECTDIFF, "HALF_SECTDIFF"},
   };
   const auto it = enumStrings.find(e);
   return it == enumStrings.end() ? "Out of range" : it->second;
@@ -109,22 +112,22 @@ const char* to_string(ARM_RELOCATION e) {


 const char* to_string(ARM64_RELOCATION e) {
-  CONST_MAP(ARM64_RELOCATION, const char*, 11) enumStrings {
-    { ARM64_RELOCATION::ARM64_RELOC_UNSIGNED,            "UNSIGNED"            },
-    { ARM64_RELOCATION::ARM64_RELOC_SUBTRACTOR,          "SUBTRACTOR"          },
-    { ARM64_RELOCATION::ARM64_RELOC_BRANCH26,            "BRANCH26"            },
-    { ARM64_RELOCATION::ARM64_RELOC_PAGE21,              "PAGE21"              },
-    { ARM64_RELOCATION::ARM64_RELOC_PAGEOFF12,           "PAGEOFF12"           },
-    { ARM64_RELOCATION::ARM64_RELOC_GOT_LOAD_PAGE21,     "GOT_LOAD_PAGE21"     },
-    { ARM64_RELOCATION::ARM64_RELOC_GOT_LOAD_PAGEOFF12,  "GOT_LOAD_PAGEOFF12"  },
-    { ARM64_RELOCATION::ARM64_RELOC_POINTER_TO_GOT,      "POINTER_TO_GOT"      },
-    { ARM64_RELOCATION::ARM64_RELOC_TLVP_LOAD_PAGE21,    "TLVP_LOAD_PAGE21"    },
-    { ARM64_RELOCATION::ARM64_RELOC_TLVP_LOAD_PAGEOFF12, "TLVP_LOAD_PAGEOFF12" },
-    { ARM64_RELOCATION::ARM64_RELOC_ADDEND,              "ADDEND"              },
+  CONST_MAP(ARM64_RELOCATION, const char*, 11)
+  enumStrings{
+      {ARM64_RELOCATION::ARM64_RELOC_UNSIGNED, "UNSIGNED"},
+      {ARM64_RELOCATION::ARM64_RELOC_SUBTRACTOR, "SUBTRACTOR"},
+      {ARM64_RELOCATION::ARM64_RELOC_BRANCH26, "BRANCH26"},
+      {ARM64_RELOCATION::ARM64_RELOC_PAGE21, "PAGE21"},
+      {ARM64_RELOCATION::ARM64_RELOC_PAGEOFF12, "PAGEOFF12"},
+      {ARM64_RELOCATION::ARM64_RELOC_GOT_LOAD_PAGE21, "GOT_LOAD_PAGE21"},
+      {ARM64_RELOCATION::ARM64_RELOC_GOT_LOAD_PAGEOFF12, "GOT_LOAD_PAGEOFF12"},
+      {ARM64_RELOCATION::ARM64_RELOC_POINTER_TO_GOT, "POINTER_TO_GOT"},
+      {ARM64_RELOCATION::ARM64_RELOC_TLVP_LOAD_PAGE21, "TLVP_LOAD_PAGE21"},
+      {ARM64_RELOCATION::ARM64_RELOC_TLVP_LOAD_PAGEOFF12, "TLVP_LOAD_PAGEOFF12"},
+      {ARM64_RELOCATION::ARM64_RELOC_ADDEND, "ADDEND"},
   };
   const auto it = enumStrings.find(e);
   return it == enumStrings.end() ? "Out of range" : it->second;
 }

 }
-}
diff --git a/deps/LIEF/src/MachO/ExportInfo.cpp b/deps/LIEF/src/MachO/ExportInfo.cpp
index 4d46818bab8..98f96d21fc8 100644
--- a/deps/LIEF/src/MachO/ExportInfo.cpp
+++ b/deps/LIEF/src/MachO/ExportInfo.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -28,13 +28,13 @@
 FMT_FORMATTER(LIEF::MachO::ExportInfo::FLAGS, LIEF::MachO::to_string);
 FMT_FORMATTER(LIEF::MachO::ExportInfo::KIND, LIEF::MachO::to_string);

-namespace LIEF {
-namespace MachO {
+
+namespace LIEF::MachO {

 static constexpr auto ARRAY_FLAGS = {
-  ExportInfo::FLAGS::WEAK_DEFINITION,
-  ExportInfo::FLAGS::REEXPORT,
-  ExportInfo::FLAGS::STUB_AND_RESOLVER,
+    ExportInfo::FLAGS::WEAK_DEFINITION,
+    ExportInfo::FLAGS::REEXPORT,
+    ExportInfo::FLAGS::STUB_AND_RESOLVER,
 };

 ExportInfo& ExportInfo::operator=(ExportInfo other) {
@@ -47,16 +47,15 @@ ExportInfo::ExportInfo(const ExportInfo& other) :
   node_offset_{other.node_offset_},
   flags_{other.flags_},
   address_{other.address_},
-  other_{other.other_}
-{}
+  other_{other.other_} {}

 void ExportInfo::swap(ExportInfo& other) noexcept {
-  std::swap(node_offset_,    other.node_offset_);
-  std::swap(flags_,          other.flags_);
-  std::swap(address_,        other.address_);
-  std::swap(other_,          other.other_);
-  std::swap(symbol_,         other.symbol_);
-  std::swap(alias_,          other.alias_);
+  std::swap(node_offset_, other.node_offset_);
+  std::swap(flags_, other.flags_);
+  std::swap(address_, other.address_);
+  std::swap(other_, other.other_);
+  std::swap(symbol_, other.symbol_);
+  std::swap(alias_, other.alias_);
   std::swap(alias_location_, other.alias_location_);
 }

@@ -67,9 +66,8 @@ bool ExportInfo::has(FLAGS flag) const {
 ExportInfo::flag_list_t ExportInfo::flags_list() const {
   flag_list_t flags;

-  std::copy_if(std::begin(ARRAY_FLAGS), std::end(ARRAY_FLAGS),
-               std::back_inserter(flags),
-               [this] (FLAGS f) { return has(f); });
+  std::copy_if(ARRAY_FLAGS.begin(), ARRAY_FLAGS.end(), std::back_inserter(flags),
+               [this](FLAGS f) { return has(f); });

   return flags;
 }
@@ -80,10 +78,8 @@ void ExportInfo::accept(Visitor& visitor) const {

 std::ostream& operator<<(std::ostream& os, const ExportInfo& info) {
   const ExportInfo::flag_list_t& flags = info.flags_list();
-  os << fmt::format(
-    "offset=0x{:x}, flags={}, address=0x{:x}, kind={}",
-    info.node_offset(), flags, info.address(), info.kind()
-  );
+  os << fmt::format("offset={:#x}, flags={}, address={:#x}, kind={}",
+                    info.node_offset(), flags, info.address(), info.kind());
   if (const Symbol* sym = info.symbol()) {
     os << fmt::format(" symbol={}", sym->name());
   }
@@ -98,13 +94,13 @@ std::ostream& operator<<(std::ostream& os, const ExportInfo& info) {
 }

 const char* to_string(ExportInfo::KIND e) {
-  #define ENTRY(X) std::pair(ExportInfo::KIND::X, #X)
-  STRING_MAP enums2str {
-    ENTRY(REGULAR),
-    ENTRY(THREAD_LOCAL_KIND),
-    ENTRY(ABSOLUTE_KIND),
+#define ENTRY(X) std::pair(ExportInfo::KIND::X, #X)
+  STRING_MAP enums2str{
+      ENTRY(REGULAR),
+      ENTRY(THREAD_LOCAL_KIND),
+      ENTRY(ABSOLUTE_KIND),
   };
-  #undef ENTRY
+#undef ENTRY

   if (auto it = enums2str.find(e); it != enums2str.end()) {
     return it->second;
@@ -113,14 +109,14 @@ const char* to_string(ExportInfo::KIND e) {
 }

 const char* to_string(ExportInfo::FLAGS e) {
-  #define ENTRY(X) std::pair(ExportInfo::FLAGS::X, #X)
-  STRING_MAP enums2str {
-    ENTRY(WEAK_DEFINITION),
-    ENTRY(REEXPORT),
-    ENTRY(STUB_AND_RESOLVER),
-    ENTRY(STATIC_RESOLVER),
+#define ENTRY(X) std::pair(ExportInfo::FLAGS::X, #X)
+  STRING_MAP enums2str{
+      ENTRY(WEAK_DEFINITION),
+      ENTRY(REEXPORT),
+      ENTRY(STUB_AND_RESOLVER),
+      ENTRY(STATIC_RESOLVER),
   };
-  #undef ENTRY
+#undef ENTRY

   if (auto it = enums2str.find(e); it != enums2str.end()) {
     return it->second;
@@ -130,4 +126,3 @@ const char* to_string(ExportInfo::FLAGS e) {


 }
-}
diff --git a/deps/LIEF/src/MachO/FatBinary.cpp b/deps/LIEF/src/MachO/FatBinary.cpp
index 2507e8801c7..832db3c6c02 100644
--- a/deps/LIEF/src/MachO/FatBinary.cpp
+++ b/deps/LIEF/src/MachO/FatBinary.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -14,20 +14,39 @@
  * limitations under the License.
  */
 #include <utility>
+#include <set>

 #include "LIEF/MachO/FatBinary.hpp"
 #include "LIEF/MachO/Builder.hpp"
 #include "LIEF/MachO/Binary.hpp"

-namespace LIEF {
-namespace MachO {
+#include "logging.hpp"
+
+
+namespace LIEF::MachO {

 FatBinary::~FatBinary() = default;
 FatBinary::FatBinary() = default;

 FatBinary::FatBinary(binaries_t binaries) :
-  binaries_{std::move(binaries)}
-{}
+  binaries_{std::move(binaries)} {}
+
+std::unique_ptr<FatBinary> FatBinary::create(binaries_t binaries) {
+  std::set<uint64_t> seen;
+  for (const std::unique_ptr<Binary>& bin : binaries) {
+    if (bin == nullptr) {
+      continue;
+    }
+    const Header& hdr = bin->header();
+    uint64_t arch = (uint64_t(hdr.cpu_type()) << 32) | uint64_t(hdr.cpu_subtype());
+    if (!seen.insert(arch).second) {
+      LIEF_ERR("Duplicate architecture: {} (subtype: {:#x})",
+               to_string(hdr.cpu_type()), hdr.cpu_subtype());
+      return nullptr;
+    }
+  }
+  return std::unique_ptr<FatBinary>(new FatBinary(std::move(binaries)));
+}

 std::unique_ptr<Binary> FatBinary::pop_back() {
   if (binaries_.empty()) {
@@ -38,53 +57,31 @@ std::unique_ptr<Binary> FatBinary::pop_back() {
   return last;
 }

-Binary* FatBinary::at(size_t index) {
-  return const_cast<Binary*>(static_cast<const FatBinary*>(this)->at(index));
-}
-
-const Binary* FatBinary::at(size_t index) const {
-  if (index >= size()) {
-    return nullptr;
-  }
-  return binaries_[index].get();
-}
-
-
-Binary* FatBinary::back() {
-  return const_cast<Binary*>(static_cast<const FatBinary*>(this)->back());
-}
+std::unique_ptr<Binary> FatBinary::take(Header::CPU_TYPE cpu) {
+  auto it = std::find_if(binaries_.begin(), binaries_.end(),
+                         [cpu](const std::unique_ptr<Binary>& bin) {
+                           return bin->header().cpu_type() == cpu;
+                         });

-const Binary* FatBinary::back() const {
-  if (binaries_.empty()) {
+  if (it == binaries_.end()) {
     return nullptr;
   }
-  return binaries_.back().get();
-}
-
-Binary* FatBinary::front() {
-  return const_cast<Binary*>(static_cast<const FatBinary*>(this)->front());
-}

-const Binary* FatBinary::front() const {
-  if (binaries_.empty()) {
-    return nullptr;
-  }
-  return binaries_.front().get();
+  std::unique_ptr<Binary> ret = std::move(*it);
+  binaries_.erase(it);
+  return ret;
 }

-std::unique_ptr<Binary> FatBinary::take(Header::CPU_TYPE cpu) {
-  auto it = std::find_if(std::begin(binaries_), std::end(binaries_),
-      [cpu] (const std::unique_ptr<Binary>& bin) {
-        return bin->header().cpu_type() == cpu;
-      });

-  if (it == std::end(binaries_)) {
+const Binary* FatBinary::get(Header::CPU_TYPE cpu) const {
+  auto it = std::find_if(binaries_.begin(), binaries_.end(),
+                         [cpu](const std::unique_ptr<Binary>& bin) {
+                           return bin->header().cpu_type() == cpu;
+                         });
+  if (it == binaries_.end()) {
     return nullptr;
   }
-
-  std::unique_ptr<Binary> ret = std::move(*it);
-  binaries_.erase(it);
-  return ret;
+  return it->get();
 }

 std::unique_ptr<Binary> FatBinary::take(size_t index) {
@@ -108,12 +105,6 @@ std::vector<uint8_t> FatBinary::raw() {
   return buffer;
 }

-void FatBinary::release_all_binaries() {
-  for (auto& bin : binaries_) {
-    bin.release(); // NOLINT(bugprone-unused-return-value)
-  }
-}
-
 std::ostream& operator<<(std::ostream& os, const FatBinary& fatbinary) {
   for (const Binary& binary : fatbinary) {
     os << binary << "\n\n";
@@ -123,4 +114,3 @@ std::ostream& operator<<(std::ostream& os, const FatBinary& fatbinary) {
 }

 }
-}
diff --git a/deps/LIEF/src/MachO/FilesetCommand.cpp b/deps/LIEF/src/MachO/FilesetCommand.cpp
index 00c9de8ee9a..c2c1ffc26f8 100644
--- a/deps/LIEF/src/MachO/FilesetCommand.cpp
+++ b/deps/LIEF/src/MachO/FilesetCommand.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -19,14 +19,13 @@
 #include "LIEF/MachO/FilesetCommand.hpp"
 #include "MachO/Structures.hpp"

-namespace LIEF {
-namespace MachO {
+
+namespace LIEF::MachO {

 FilesetCommand::FilesetCommand(const details::fileset_entry_command& cmd) :
   LoadCommand{LoadCommand::TYPE::FILESET_ENTRY, cmd.cmdsize},
   virtual_address_{cmd.vmaddr},
-  file_offset_{cmd.fileoff}
-{}
+  file_offset_{cmd.fileoff} {}

 FilesetCommand& FilesetCommand::operator=(FilesetCommand other) {
   swap(other);
@@ -37,23 +36,21 @@ FilesetCommand::FilesetCommand(const FilesetCommand& other) :
   LoadCommand{other},
   name_{other.name_},
   virtual_address_{other.virtual_address_},
-  file_offset_{other.file_offset_}
-{}
+  file_offset_{other.file_offset_} {}

 void FilesetCommand::swap(FilesetCommand& other) noexcept {
   LoadCommand::swap(other);

   std::swap(virtual_address_, other.virtual_address_);
-  std::swap(file_offset_,     other.file_offset_);
+  std::swap(file_offset_, other.file_offset_);
 }

 std::ostream& FilesetCommand::print(std::ostream& os) const {
   LoadCommand::print(os) << '\n';
-  os << fmt::format("name={}, va=0x{:06x}, offset=0x{:x}",
-                    name(), virtual_address(), file_offset());
+  os << fmt::format("name={}, va={:#08x}, offset={:#x}", name(), virtual_address(),
+                    file_offset());
   return os;
 }


 }
-}
diff --git a/deps/LIEF/src/MachO/FunctionStarts.cpp b/deps/LIEF/src/MachO/FunctionStarts.cpp
index a6fade4d62c..f226982c84b 100644
--- a/deps/LIEF/src/MachO/FunctionStarts.cpp
+++ b/deps/LIEF/src/MachO/FunctionStarts.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -19,14 +19,13 @@
 #include "LIEF/MachO/FunctionStarts.hpp"
 #include "MachO/Structures.hpp"

-namespace LIEF {
-namespace MachO {
+
+namespace LIEF::MachO {

 FunctionStarts::FunctionStarts(const details::linkedit_data_command& cmd) :
   LoadCommand::LoadCommand{LoadCommand::TYPE(cmd.cmd), cmd.cmdsize},
   data_offset_{cmd.dataoff},
-  data_size_{cmd.datasize}
-{}
+  data_size_{cmd.datasize} {}

 void FunctionStarts::accept(Visitor& visitor) const {
   visitor.visit(*this);
@@ -35,14 +34,14 @@ void FunctionStarts::accept(Visitor& visitor) const {
 std::ostream& FunctionStarts::print(std::ostream& os) const {
   LoadCommand::print(os) << '\n';
   const std::vector<uint64_t> funcs = functions();
-  os << fmt::format("offset=0x{:06x}, size=0x{:06x}, #functions={}",
-                     data_offset(), data_size(), funcs.size()) << '\n';
+  os << fmt::format("offset={:#08x}, size={:#08x}, #functions={}", data_offset(),
+                    data_size(), funcs.size())
+     << '\n';
   for (size_t i = 0; i < funcs.size(); ++i) {
-    os << fmt::format("  [{}] __TEXT + 0x{:06x}\n", i, funcs[i]);
+    os << fmt::format("  [{}] __TEXT + {:#08x}\n", i, funcs[i]);
   }
   return os;
 }


 }
-}
diff --git a/deps/LIEF/src/MachO/FunctionVariantFixups.cpp b/deps/LIEF/src/MachO/FunctionVariantFixups.cpp
index f0583fe5c5b..f786e928f0a 100644
--- a/deps/LIEF/src/MachO/FunctionVariantFixups.cpp
+++ b/deps/LIEF/src/MachO/FunctionVariantFixups.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -13,26 +13,95 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
+#include <sstream>
 #include "spdlog/fmt/fmt.h"
-#include "LIEF/Visitor.hpp"
+
+#include "LIEF/BinaryStream/SpanStream.hpp"

 #include "LIEF/MachO/FunctionVariantFixups.hpp"
+#include "LIEF/MachO/SegmentCommand.hpp"
 #include "MachO/Structures.hpp"

-namespace LIEF {
-namespace MachO {
+#include "logging.hpp"
+
+namespace LIEF::MachO {
+
+static_assert(sizeof(details::function_variant_fixup_t) == 8);
+
+static const char* pac_key_name(uint8_t key) {
+  switch (key) {
+    case 0: return "IA";
+    case 1: return "IB";
+    case 2: return "DA";
+    case 3: return "DB";
+    default: return "??";
+  }
+}

-FunctionVariantFixups::FunctionVariantFixups(const details::linkedit_data_command& cmd) :
+FunctionVariantFixups::FunctionVariantFixups(
+    const details::linkedit_data_command& cmd
+) :
   LoadCommand::LoadCommand{LoadCommand::TYPE(cmd.cmd), cmd.cmdsize},
   data_offset_{cmd.dataoff},
-  data_size_{cmd.datasize}
-{}
+  data_size_{cmd.datasize} {}
+
+FunctionVariantFixups::Fixup::Fixup(const details::function_variant_fixup_t& raw) :
+  seg_offset_(raw.seg_offset),
+  seg_index_(raw.seg_index),
+  variant_index_(raw.variant_index),
+  pac_auth_(raw.pac_auth != 0),
+  pac_address_(raw.pac_address != 0),
+  pac_key_(raw.pac_key),
+  pac_diversity_(raw.pac_diversity) {}
+
+std::vector<FunctionVariantFixups::Fixup>
+    FunctionVariantFixups::parse_payload(SpanStream& stream) {
+  std::vector<Fixup> result;
+
+  const size_t count = stream.size() / sizeof(details::function_variant_fixup_t);
+  result.reserve(count);
+
+  for (size_t i = 0; i < count; ++i) {
+    auto raw = stream.read<details::function_variant_fixup_t>();
+    if (!raw) {
+      LIEF_DEBUG("Failed to read FunctionVariantFixups.fixups[{}]", i);
+      break;
+    }
+    result.emplace_back(*raw);
+  }
+
+  return result;
+}
+
+std::string FunctionVariantFixups::Fixup::to_string() const {
+  std::ostringstream oss;
+
+  if (const SegmentCommand* seg = segment()) {
+    oss << fmt::format("{}+{:#x} ({:#x})", seg->name(), seg_offset(),
+                       seg->virtual_address() + seg_offset());
+  } else {
+    oss << fmt::format("seg[{}]+{:#x}", seg_index(), seg_offset());
+  }
+
+  oss << fmt::format(" -> variant #{}", variant_index());
+
+  if (pac_auth()) {
+    oss << fmt::format(" [PAC: key={} addr={} diversity={:#06x}]",
+                       pac_key_name(pac_key()), pac_address(), pac_diversity());
+  }
+
+  return oss.str();
+}

 std::ostream& FunctionVariantFixups::print(std::ostream& os) const {
   LoadCommand::print(os) << '\n';
+  auto entries = fixups();
+  os << fmt::format("nb_fixups = {}\n", entries.size());
+  for (size_t i = 0; i < entries.size(); ++i) {
+    os << fmt::format("  [{:04d}] {}\n", i, entries[i].to_string());
+  }
   return os;
 }


 }
-}
diff --git a/deps/LIEF/src/MachO/FunctionVariants.cpp b/deps/LIEF/src/MachO/FunctionVariants.cpp
index 0b6e464565a..4ff8d5bd30c 100644
--- a/deps/LIEF/src/MachO/FunctionVariants.cpp
+++ b/deps/LIEF/src/MachO/FunctionVariants.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -16,7 +16,6 @@
 #include <sstream>
 #include "spdlog/fmt/fmt.h"

-#include "LIEF/utils.hpp"
 #include "LIEF/BinaryStream/SpanStream.hpp"

 #include "LIEF/MachO/FunctionVariants.hpp"
@@ -26,30 +25,26 @@
 #include "logging.hpp"
 #include "internal_utils.hpp"

-namespace LIEF {
-namespace MachO {

-namespace details {
-struct runtime_table_entry_t {
-  uint32_t impl          : 31,
-           another_table :  1;
-  uint8_t  flag_bit_nums[4];
-};
-}
+namespace LIEF::MachO {
+
+static_assert(sizeof(details::runtime_table_entry_t) == 8);

 using FLAGS = FunctionVariants::RuntimeTableEntry::FLAGS;
 using KIND = FunctionVariants::RuntimeTable::KIND;

 static const char* pretty_name(FLAGS f) {
   switch (f) {
-    #define FUNCTION_VARIANT_FLAG(name, _, pretty) case FLAGS::name: return pretty;
-      #include  "LIEF/MachO/FunctionVariants/Arm64.def"
-      #include  "LIEF/MachO/FunctionVariants/PerProcess.def"
-      #include  "LIEF/MachO/FunctionVariants/SystemWide.def"
-      #include  "LIEF/MachO/FunctionVariants/X86_64.def"
-    #undef FUNCTION_VARIANT_FLAG
-      case FLAGS::UNKNOWN:
-        return "UNKNOWN";
+
+// NOLINTNEXTLINE(cppcoreguidelines-macro-usage)
+#define FUNCTION_VARIANT_FLAG(name, _, pretty)                                    \
+  case FLAGS::name: return pretty;
+#include "LIEF/MachO/FunctionVariants/Arm64.def"
+#include "LIEF/MachO/FunctionVariants/PerProcess.def"
+#include "LIEF/MachO/FunctionVariants/SystemWide.def"
+#include "LIEF/MachO/FunctionVariants/X86_64.def"
+#undef FUNCTION_VARIANT_FLAG
+    case FLAGS::UNKNOWN: return "UNKNOWN";
   }
   return "UNKNOWN";
 }
@@ -57,8 +52,7 @@ static const char* pretty_name(FLAGS f) {
 FunctionVariants::FunctionVariants(const details::linkedit_data_command& cmd) :
   LoadCommand::LoadCommand{LoadCommand::TYPE(cmd.cmd), cmd.cmdsize},
   data_offset_{cmd.dataoff},
-  data_size_{cmd.datasize}
-{}
+  data_size_{cmd.datasize} {}

 std::ostream& FunctionVariants::print(std::ostream& os) const {
   LoadCommand::print(os) << '\n';
@@ -66,25 +60,24 @@ std::ostream& FunctionVariants::print(std::ostream& os) const {

   for (size_t i = 0; i < runtime_tbl.size(); ++i) {
     const RuntimeTable& entry = runtime_tbl[i];
-    os << fmt::format("Table #{}\n", i)
-       << indent(entry.to_string(), 2) << '\n';
+    os << fmt::format("Table #{}\n", i) << indent(entry.to_string(), 2) << '\n';
   }

   return os;
 }

-FunctionVariants::RuntimeTableEntry::RuntimeTableEntry(const details::runtime_table_entry_t& entry) :
+FunctionVariants::RuntimeTableEntry::RuntimeTableEntry(
+    const details::runtime_table_entry_t& entry
+) :
   another_table_(entry.another_table),
-  impl_(entry.impl)
-{
+  impl_(entry.impl) {
   flag_bit_nums_.fill(0);
   std::copy(std::begin(entry.flag_bit_nums), std::end(entry.flag_bit_nums),
-            flag_bit_nums_.begin());
+            std::begin(flag_bit_nums_));
 }

 span<const uint8_t> get_relevant_flags(span<const uint8_t> raw) {
-  auto it = std::find_if(raw.begin(), raw.end(),
-      [] (uint8_t v) { return v == 0; });
+  auto it = std::find_if(raw.begin(), raw.end(), [](uint8_t v) { return v == 0; });
   if (it == raw.end()) {
     return raw;
   }
@@ -101,9 +94,7 @@ std::vector<FLAGS> get_high_level_flags(span<const uint8_t> flags, KIND kind) {

   for (uint8_t flag : flags) {
     switch (kind) {
-      case KIND::UNKNOWN:
-        out.push_back((FLAGS)flag);
-        break;
+      case KIND::UNKNOWN: out.push_back((FLAGS)flag); break;

       case KIND::PER_PROCESS:
         out.push_back((FLAGS)(flag | RuntimeTableEntry::F_PER_PROCESS));
@@ -130,7 +121,7 @@ std::string FunctionVariants::RuntimeTableEntry::to_string() const {
   if (another_table()) {
     oss << fmt::format("Table: #{}", impl());
   } else {
-    oss << fmt::format("Function: 0x{:08x}", impl());
+    oss << fmt::format("Function: {:#010x}", impl());
   }
   std::vector<FLAGS> flags = this->flags();
   if (flags.empty()) {
@@ -142,7 +133,8 @@ std::string FunctionVariants::RuntimeTableEntry::to_string() const {
       raw.push_back(get_raw(f));
       formated.push_back(pretty_name(f));
     }
-    oss << fmt::format(" {:02x}: {}", fmt::join(raw, " "), fmt::join(formated, ", "));
+    oss << fmt::format(" {:02x}: {}", fmt::join(raw, " "),
+                       fmt::join(formated, ", "));
   }

   return oss.str();
@@ -150,46 +142,59 @@ std::string FunctionVariants::RuntimeTableEntry::to_string() const {

 std::string FunctionVariants::RuntimeTable::to_string() const {
   std::ostringstream oss;
-  oss << fmt::format("Namespace: {} ({})", MachO::to_string(kind()), (uint32_t)kind()) << '\n';
+  oss << fmt::format("Namespace: {} ({})", MachO::to_string(kind()),
+                     (uint32_t)kind())
+      << '\n';
   for (const RuntimeTableEntry& entry : entries()) {
     oss << "  " << entry << '\n';
   }
   return oss.str();
 }

-std::vector<FunctionVariants::RuntimeTable> FunctionVariants::parse_payload(SpanStream& stream) {
+std::vector<FunctionVariants::RuntimeTable>
+    FunctionVariants::parse_payload(SpanStream& stream) {
   std::vector<FunctionVariants::RuntimeTable> result;

   auto tableCount = stream.read<uint32_t>();
   if (!tableCount) {
-    LIEF_DEBUG("Error: Failed to read FunctionVariants.OnDiskFormat.tableCount");
+    LIEF_DEBUG("Failed to read FunctionVariants.OnDiskFormat.tableCount");
     return result;
   }

+  int64_t max_entries = stream.size() / sizeof(details::runtime_table_entry_t);
+
   for (size_t i = 0; i < *tableCount; ++i) {
+    if (max_entries <= 0) {
+      break;
+    }
+
     auto tableOffset = stream.read<uint32_t>();
     if (!tableOffset) {
-      LIEF_DEBUG("Error: Failed to read FunctionVariants.OnDiskFormat.tableOffsets[{}]", i);
+      LIEF_DEBUG("Failed to read FunctionVariants.OnDiskFormat.tableOffsets[{}]",
+                 i);
       return result;
     }

     {
       ScopedStream runtime_table_strm(stream, *tableOffset);
-      if (auto entry = parse_entry(*runtime_table_strm)) {
+      if (auto entry = parse_entry(*runtime_table_strm, max_entries)) {
+        max_entries -= entry->entries().size();
         result.push_back(std::move(*entry));
       } else {
-        LIEF_DEBUG("Failed to parse entry #{} at offset: 0x{:06x}", i, *tableOffset);
+        LIEF_DEBUG("Failed to parse entry #{} at offset: {:#08x}", i,
+                   *tableOffset);
       }
     }
   }
   return result;
 }

-result<FunctionVariants::RuntimeTable> FunctionVariants::parse_entry(BinaryStream& stream) {
+result<FunctionVariants::RuntimeTable>
+    FunctionVariants::parse_entry(BinaryStream& stream, uint64_t max_entries) {
   auto kind = stream.read<uint32_t>();

   if (!kind) {
-    LIEF_DEBUG("Error: Failed to read FunctionVariantsRuntimeTable.kind");
+    LIEF_DEBUG("Failed to read FunctionVariantsRuntimeTable.kind");
     return make_error_code(kind.error());
   }

@@ -198,21 +203,26 @@ result<FunctionVariants::RuntimeTable> FunctionVariants::parse_entry(BinaryStrea
   auto count = stream.read<uint32_t>();

   if (!count) {
-    LIEF_DEBUG("Error: Failed to read FunctionVariantsRuntimeTable.count");
+    LIEF_DEBUG("Failed to read FunctionVariantsRuntimeTable.count");
     return make_error_code(count.error());
   }

   for (size_t i = 0; i < *count; ++i) {
+    if (i > max_entries) {
+      LIEF_WARN("Too many FunctionVariants. Stopping");
+      return runtime_table;
+    }
     auto raw_entry = stream.read<details::runtime_table_entry_t>();
     if (!raw_entry) {
-      LIEF_DEBUG("Error: Failed to read FunctionVariantsRuntimeTable.entries[{}]", i);
+      LIEF_DEBUG("Failed to read FunctionVariantsRuntimeTable.entries[{}]", i);
       return runtime_table;
     }

     RuntimeTableEntry entry(*raw_entry);

     span<const uint8_t> flags = get_relevant_flags(entry.flag_bit_nums());
-    std::vector<FLAGS> hl_flags = get_high_level_flags(flags, runtime_table.kind());
+    std::vector<FLAGS> hl_flags =
+        get_high_level_flags(flags, runtime_table.kind());
     entry.set_flags(std::move(hl_flags));

     runtime_table.add(std::move(entry));
@@ -234,17 +244,16 @@ const char* to_string(FunctionVariants::RuntimeTable::KIND kind) {

 const char* to_string(FLAGS f) {
   switch (f) {
-    #define FUNCTION_VARIANT_FLAG(X, __, _) case FLAGS::X: return #X;
-      #include  "LIEF/MachO/FunctionVariants/Arm64.def"
-      #include  "LIEF/MachO/FunctionVariants/PerProcess.def"
-      #include  "LIEF/MachO/FunctionVariants/SystemWide.def"
-      #include  "LIEF/MachO/FunctionVariants/X86_64.def"
-    #undef FUNCTION_VARIANT_FLAG
-      case FLAGS::UNKNOWN:
-        return "UNKNOWN";
+#define FUNCTION_VARIANT_FLAG(X, __, _)                                           \
+  case FLAGS::X: return #X;
+#include "LIEF/MachO/FunctionVariants/Arm64.def"
+#include "LIEF/MachO/FunctionVariants/PerProcess.def"
+#include "LIEF/MachO/FunctionVariants/SystemWide.def"
+#include "LIEF/MachO/FunctionVariants/X86_64.def"
+#undef FUNCTION_VARIANT_FLAG
+    case FLAGS::UNKNOWN: return "UNKNOWN";
   }
   return "UNKNOWN";
 }

 }
-}
diff --git a/deps/LIEF/src/MachO/Header.cpp b/deps/LIEF/src/MachO/Header.cpp
index acf882ea24c..f243ee194be 100644
--- a/deps/LIEF/src/MachO/Header.cpp
+++ b/deps/LIEF/src/MachO/Header.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -14,11 +14,8 @@
  * limitations under the License.
  */

-#include <map>
-#include <set>
 #include <algorithm>
 #include <iterator>
-#include <string>

 #include "fmt_formatter.hpp"
 #include "frozen.hpp"
@@ -30,25 +27,40 @@

 FMT_FORMATTER(LIEF::MachO::Header::FLAGS, LIEF::MachO::to_string);

-namespace LIEF {
-namespace MachO {
+
+namespace LIEF::MachO {

 static constexpr auto HEADER_FLAGS = {
-  Header::FLAGS::NOUNDEFS, Header::FLAGS::INCRLINK,
-  Header::FLAGS::DYLDLINK, Header::FLAGS::BINDATLOAD,
-  Header::FLAGS::PREBOUND, Header::FLAGS::SPLIT_SEGS,
-  Header::FLAGS::LAZY_INIT, Header::FLAGS::TWOLEVEL,
-  Header::FLAGS::FORCE_FLAT, Header::FLAGS::NOMULTIDEFS,
-  Header::FLAGS::NOFIXPREBINDING, Header::FLAGS::PREBINDABLE,
-  Header::FLAGS::ALLMODSBOUND, Header::FLAGS::SUBSECTIONS_VIA_SYMBOLS,
-  Header::FLAGS::CANONICAL, Header::FLAGS::WEAK_DEFINES,
-  Header::FLAGS::BINDS_TO_WEAK, Header::FLAGS::ALLOW_STACK_EXECUTION,
-  Header::FLAGS::ROOT_SAFE, Header::FLAGS::SETUID_SAFE,
-  Header::FLAGS::NO_REEXPORTED_DYLIBS, Header::FLAGS::PIE,
-  Header::FLAGS::DEAD_STRIPPABLE_DYLIB, Header::FLAGS::HAS_TLV_DESCRIPTORS,
-  Header::FLAGS::NO_HEAP_EXECUTION, Header::FLAGS::APP_EXTENSION_SAFE,
-  Header::FLAGS::NLIST_OUTOFSYNC_WITH_DYLDINFO, Header::FLAGS::SIM_SUPPORT,
-  Header::FLAGS::IMPLICIT_PAGEZERO, Header::FLAGS::DYLIB_IN_CACHE,
+    Header::FLAGS::NOUNDEFS,
+    Header::FLAGS::INCRLINK,
+    Header::FLAGS::DYLDLINK,
+    Header::FLAGS::BINDATLOAD,
+    Header::FLAGS::PREBOUND,
+    Header::FLAGS::SPLIT_SEGS,
+    Header::FLAGS::LAZY_INIT,
+    Header::FLAGS::TWOLEVEL,
+    Header::FLAGS::FORCE_FLAT,
+    Header::FLAGS::NOMULTIDEFS,
+    Header::FLAGS::NOFIXPREBINDING,
+    Header::FLAGS::PREBINDABLE,
+    Header::FLAGS::ALLMODSBOUND,
+    Header::FLAGS::SUBSECTIONS_VIA_SYMBOLS,
+    Header::FLAGS::CANONICAL,
+    Header::FLAGS::WEAK_DEFINES,
+    Header::FLAGS::BINDS_TO_WEAK,
+    Header::FLAGS::ALLOW_STACK_EXECUTION,
+    Header::FLAGS::ROOT_SAFE,
+    Header::FLAGS::SETUID_SAFE,
+    Header::FLAGS::NO_REEXPORTED_DYLIBS,
+    Header::FLAGS::PIE,
+    Header::FLAGS::DEAD_STRIPPABLE_DYLIB,
+    Header::FLAGS::HAS_TLV_DESCRIPTORS,
+    Header::FLAGS::NO_HEAP_EXECUTION,
+    Header::FLAGS::APP_EXTENSION_SAFE,
+    Header::FLAGS::NLIST_OUTOFSYNC_WITH_DYLDINFO,
+    Header::FLAGS::SIM_SUPPORT,
+    Header::FLAGS::IMPLICIT_PAGEZERO,
+    Header::FLAGS::DYLIB_IN_CACHE,
 };

 template<class T>
@@ -59,8 +71,7 @@ Header::Header(const T& header) :
   filetype_{static_cast<FILE_TYPE>(header.filetype)},
   ncmds_{header.ncmds},
   sizeofcmds_{header.sizeofcmds},
-  flags_{header.flags}
-{
+  flags_{header.flags} {
   if constexpr (std::is_same_v<T, details::mach_header_64>) {
     reserved_ = header.reserved;
   } else {
@@ -75,9 +86,9 @@ template Header::Header(const details::mach_header& header);
 std::vector<Header::FLAGS> Header::flags_list() const {
   std::vector<Header::FLAGS> flags;

-  std::copy_if(std::begin(HEADER_FLAGS), std::end(HEADER_FLAGS),
-               std::inserter(flags, std::begin(flags)),
-               [this] (FLAGS f) { return has(f); });
+  std::copy_if(HEADER_FLAGS.begin(), HEADER_FLAGS.end(),
+               std::inserter(flags, flags.begin()),
+               [this](FLAGS f) { return has(f); });

   return flags;
 }
@@ -100,52 +111,53 @@ void Header::accept(Visitor& visitor) const {
 }

 std::ostream& operator<<(std::ostream& os, const Header& hdr) {
-  os << fmt::format("Magic: 0x{:08x}\n", uint32_t(hdr.magic()));
+  os << fmt::format("Magic: {:#010x}\n", uint32_t(hdr.magic()));
   os << fmt::format("CPU: {}\n", to_string(hdr.cpu_type()));
-  os << fmt::format("CPU subtype: 0x{:08x}\n", hdr.cpu_subtype());
-  os << fmt::format("File type: {} ({:#x})\n", to_string(hdr.file_type()), (uint32_t)hdr.file_type());
+  os << fmt::format("CPU subtype: {:#010x}\n", hdr.cpu_subtype());
+  os << fmt::format("File type: {} ({:#x})\n", to_string(hdr.file_type()),
+                    (uint32_t)hdr.file_type());
   os << fmt::format("Flags: {}\n", hdr.flags());
-  os << fmt::format("Reserved: 0x{:x}\n", hdr.reserved());
+  os << fmt::format("Reserved: {:#x}\n", hdr.reserved());
   os << fmt::format("Nb cmds: {}\n", hdr.nb_cmds());
   os << fmt::format("Sizeof cmds: {}", hdr.sizeof_cmds());
   return os;
 }

 const char* to_string(Header::FLAGS e) {
-  #define ENTRY(X) std::pair(Header::FLAGS::X, #X)
-  STRING_MAP enums2str {
-    ENTRY(NOUNDEFS),
-    ENTRY(INCRLINK),
-    ENTRY(DYLDLINK),
-    ENTRY(BINDATLOAD),
-    ENTRY(PREBOUND),
-    ENTRY(SPLIT_SEGS),
-    ENTRY(LAZY_INIT),
-    ENTRY(TWOLEVEL),
-    ENTRY(FORCE_FLAT),
-    ENTRY(NOMULTIDEFS),
-    ENTRY(NOFIXPREBINDING),
-    ENTRY(PREBINDABLE),
-    ENTRY(ALLMODSBOUND),
-    ENTRY(SUBSECTIONS_VIA_SYMBOLS),
-    ENTRY(CANONICAL),
-    ENTRY(WEAK_DEFINES),
-    ENTRY(BINDS_TO_WEAK),
-    ENTRY(ALLOW_STACK_EXECUTION),
-    ENTRY(ROOT_SAFE),
-    ENTRY(SETUID_SAFE),
-    ENTRY(NO_REEXPORTED_DYLIBS),
-    ENTRY(PIE),
-    ENTRY(DEAD_STRIPPABLE_DYLIB),
-    ENTRY(HAS_TLV_DESCRIPTORS),
-    ENTRY(NO_HEAP_EXECUTION),
-    ENTRY(APP_EXTENSION_SAFE),
-    ENTRY(NLIST_OUTOFSYNC_WITH_DYLDINFO),
-    ENTRY(SIM_SUPPORT),
-    ENTRY(IMPLICIT_PAGEZERO),
-    ENTRY(DYLIB_IN_CACHE),
+#define ENTRY(X) std::pair(Header::FLAGS::X, #X)
+  STRING_MAP enums2str{
+      ENTRY(NOUNDEFS),
+      ENTRY(INCRLINK),
+      ENTRY(DYLDLINK),
+      ENTRY(BINDATLOAD),
+      ENTRY(PREBOUND),
+      ENTRY(SPLIT_SEGS),
+      ENTRY(LAZY_INIT),
+      ENTRY(TWOLEVEL),
+      ENTRY(FORCE_FLAT),
+      ENTRY(NOMULTIDEFS),
+      ENTRY(NOFIXPREBINDING),
+      ENTRY(PREBINDABLE),
+      ENTRY(ALLMODSBOUND),
+      ENTRY(SUBSECTIONS_VIA_SYMBOLS),
+      ENTRY(CANONICAL),
+      ENTRY(WEAK_DEFINES),
+      ENTRY(BINDS_TO_WEAK),
+      ENTRY(ALLOW_STACK_EXECUTION),
+      ENTRY(ROOT_SAFE),
+      ENTRY(SETUID_SAFE),
+      ENTRY(NO_REEXPORTED_DYLIBS),
+      ENTRY(PIE),
+      ENTRY(DEAD_STRIPPABLE_DYLIB),
+      ENTRY(HAS_TLV_DESCRIPTORS),
+      ENTRY(NO_HEAP_EXECUTION),
+      ENTRY(APP_EXTENSION_SAFE),
+      ENTRY(NLIST_OUTOFSYNC_WITH_DYLDINFO),
+      ENTRY(SIM_SUPPORT),
+      ENTRY(IMPLICIT_PAGEZERO),
+      ENTRY(DYLIB_IN_CACHE),
   };
-  #undef ENTRY
+#undef ENTRY

   if (auto it = enums2str.find(e); it != enums2str.end()) {
     return it->second;
@@ -154,25 +166,14 @@ const char* to_string(Header::FLAGS e) {
 }

 const char* to_string(Header::FILE_TYPE e) {
-  #define ENTRY(X) std::pair(Header::FILE_TYPE::X, #X)
-  STRING_MAP enums2str {
-    ENTRY(UNKNOWN),
-    ENTRY(OBJECT),
-    ENTRY(EXECUTE),
-    ENTRY(FVMLIB),
-    ENTRY(CORE),
-    ENTRY(PRELOAD),
-    ENTRY(DYLIB),
-    ENTRY(DYLINKER),
-    ENTRY(BUNDLE),
-    ENTRY(DYLIB_STUB),
-    ENTRY(DSYM),
-    ENTRY(KEXT_BUNDLE),
-    ENTRY(FILESET),
-    ENTRY(GPU_EXECUTE),
-    ENTRY(GPU_DYLIB),
+#define ENTRY(X) std::pair(Header::FILE_TYPE::X, #X)
+  STRING_MAP enums2str{
+      ENTRY(UNKNOWN), ENTRY(OBJECT),      ENTRY(EXECUTE),   ENTRY(FVMLIB),
+      ENTRY(CORE),    ENTRY(PRELOAD),     ENTRY(DYLIB),     ENTRY(DYLINKER),
+      ENTRY(BUNDLE),  ENTRY(DYLIB_STUB),  ENTRY(DSYM),      ENTRY(KEXT_BUNDLE),
+      ENTRY(FILESET), ENTRY(GPU_EXECUTE), ENTRY(GPU_DYLIB),
   };
-  #undef ENTRY
+#undef ENTRY

   if (auto it = enums2str.find(e); it != enums2str.end()) {
     return it->second;
@@ -181,28 +182,15 @@ const char* to_string(Header::FILE_TYPE e) {
 }

 const char* to_string(Header::CPU_TYPE e) {
-  #define ENTRY(X) std::pair(Header::CPU_TYPE::X, #X)
-  STRING_MAP enums2str {
-    ENTRY(ANY),
-    ENTRY(X86),
-    ENTRY(X86_64),
-    ENTRY(MIPS),
-    ENTRY(MC98000),
-    ENTRY(HPPA),
-    ENTRY(ARM),
-    ENTRY(ARM64),
-    ENTRY(MC88000),
-    ENTRY(SPARC),
-    ENTRY(I860),
-    ENTRY(ALPHA),
-    ENTRY(POWERPC),
-    ENTRY(POWERPC64),
-    ENTRY(APPLE_GPU),
-    ENTRY(AMD_GPU),
-    ENTRY(INTEL_GPU),
-    ENTRY(AIR64),
+#define ENTRY(X) std::pair(Header::CPU_TYPE::X, #X)
+  STRING_MAP enums2str{
+      ENTRY(ANY),       ENTRY(X86),       ENTRY(X86_64),    ENTRY(MIPS),
+      ENTRY(MC98000),   ENTRY(HPPA),      ENTRY(ARM),       ENTRY(ARM64),
+      ENTRY(MC88000),   ENTRY(SPARC),     ENTRY(I860),      ENTRY(ALPHA),
+      ENTRY(POWERPC),   ENTRY(POWERPC64), ENTRY(APPLE_GPU), ENTRY(AMD_GPU),
+      ENTRY(INTEL_GPU), ENTRY(AIR64),
   };
-  #undef ENTRY
+#undef ENTRY

   if (auto it = enums2str.find(e); it != enums2str.end()) {
     return it->second;
@@ -211,4 +199,3 @@ const char* to_string(Header::CPU_TYPE e) {
 }

 }
-}
diff --git a/deps/LIEF/src/MachO/LazyLoadDylibInfo.cpp b/deps/LIEF/src/MachO/LazyLoadDylibInfo.cpp
new file mode 100644
index 00000000000..bde4eb0ba78
--- /dev/null
+++ b/deps/LIEF/src/MachO/LazyLoadDylibInfo.cpp
@@ -0,0 +1,225 @@
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
+ *
+ * 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.
+ */
+#include <algorithm>
+#include <limits>
+
+#include "spdlog/fmt/fmt.h"
+
+#include "LIEF/BinaryStream/BinaryStream.hpp"
+#include "LIEF/BinaryStream/SpanStream.hpp"
+#include "LIEF/iostream.hpp"
+#include "LIEF/utils.hpp"
+
+#include "LIEF/MachO/LazyLoadDylibInfo.hpp"
+#include "LIEF/MachO/SegmentCommand.hpp"
+#include "LIEF/MachO/ChainedPointerAnalysis.hpp"
+
+#include "MachO/Structures.hpp"
+
+#include "logging.hpp"
+
+
+namespace LIEF::MachO {
+
+LazyLoadDylibInfo::LazyLoadDylibInfo() :
+  LoadCommand::LoadCommand{LoadCommand::TYPE::LAZY_LOAD_DYLIB_INFO,
+                           sizeof(details::linkedit_data_command)} {}
+
+LazyLoadDylibInfo::LazyLoadDylibInfo(const details::linkedit_data_command& cmd) :
+  LoadCommand::LoadCommand{LoadCommand::TYPE(cmd.cmd), cmd.cmdsize},
+  data_offset_{cmd.dataoff},
+  data_size_{cmd.datasize} {}
+
+
+ok_error_t LazyLoadDylibInfo::walk_fixups(uint64_t chain_va, SegmentCommand& seg) {
+  const uint64_t seg_va = seg.virtual_address();
+  span<uint8_t> seg_content = seg.content();
+
+  SpanStream chain_stream(seg_content);
+  assert(chain_va >= seg_va);
+  chain_stream.setpos(chain_va - seg_va);
+
+  const auto ptr_fmt = DYLD_CHAINED_PTR_FORMAT(pointer_format());
+
+  ChainedPointerAnalysis::walk_chain(
+      chain_stream, ptr_fmt,
+      [&](uint64_t offset, const ChainedPointerAnalysis::union_pointer_t& ptr) {
+        auto ordinal = ptr.ordinal();
+        if (!ordinal) {
+          return 0;
+        }
+        std::string symbol = *ordinal < symbols_.size() ? symbols_[*ordinal] : "";
+        fixups_.emplace_back(seg_va + offset, *ordinal, std::move(symbol),
+                             ptr.is_auth());
+        return 0;
+      }
+  );
+  return ok();
+}
+
+ok_error_t LazyLoadDylibInfo::parse_payload(BinaryStream& stream) {
+  auto load_path_offset = stream.read<uint32_t>();
+  if (!load_path_offset) {
+    LIEF_DEBUG("Failed to read LazyLoadDylibInfo.loadPathOffset");
+    return make_error_code(load_path_offset.error());
+  }
+
+  auto flag_image_offset = stream.read<uint32_t>();
+  if (!flag_image_offset) {
+    LIEF_DEBUG("Failed to read LazyLoadDylibInfo.flagImageOffset");
+    return make_error_code(flag_image_offset.error());
+  }
+
+  auto flags = stream.read<uint16_t>();
+  if (!flags) {
+    LIEF_DEBUG("Failed to read LazyLoadDylibInfo.flags");
+    return make_error_code(flags.error());
+  }
+
+  auto pointer_format = stream.read<uint16_t>();
+  if (!pointer_format) {
+    LIEF_DEBUG("Failed to read LazyLoadDylibInfo.pointerFormat");
+    return make_error_code(pointer_format.error());
+  }
+
+  auto chain_start_image_offset = stream.read<uint32_t>();
+  if (!chain_start_image_offset) {
+    LIEF_DEBUG("Failed to read LazyLoadDylibInfo.chainStartImageOffset");
+    return make_error_code(chain_start_image_offset.error());
+  }
+
+  auto symbols_count = stream.read<uint32_t>();
+  if (!symbols_count) {
+    LIEF_DEBUG("Failed to read LazyLoadDylibInfo.symbolsCount");
+    return make_error_code(symbols_count.error());
+  }
+
+  auto symbol_string_array_offset = stream.read<uint32_t>();
+  if (!symbol_string_array_offset) {
+    LIEF_DEBUG("Failed to read LazyLoadDylibInfo.symbolStringArrayOffset");
+    return make_error_code(symbol_string_array_offset.error());
+  }
+
+  flag_image_offset_ = *flag_image_offset;
+  flags_ = *flags;
+  pointer_format_ = *pointer_format;
+  chain_start_image_offset_ = *chain_start_image_offset;
+
+  if (auto path = stream.peek_string_at(*load_path_offset)) {
+    load_path_ = std::move(*path);
+  } else {
+    LIEF_DEBUG("Failed to read LazyLoadDylibInfo's load path at offset {:#x}",
+               *load_path_offset);
+  }
+
+  const size_t max_symbols = stream.size() / sizeof(uint32_t);
+  symbols_.reserve(std::min<size_t>(*symbols_count, max_symbols));
+
+  for (size_t i = 0; i < *symbols_count; ++i) {
+    const uint64_t off = *symbol_string_array_offset + i * sizeof(uint32_t);
+    auto symbol_offset = stream.peek<uint32_t>(off);
+    if (!symbol_offset) {
+      LIEF_DEBUG("Failed to read LazyLoadDylibInfo.symbolStringOffsets[{}]", i);
+      break;
+    }
+
+    if (auto symbol = stream.peek_string_at(*symbol_offset)) {
+      symbols_.push_back(std::move(*symbol));
+    } else {
+      LIEF_DEBUG("Failed to read LazyLoadDylibInfo's symbol #{} at offset {:#x}",
+                 i, *symbol_offset);
+    }
+  }
+
+  return ok();
+}
+
+ok_error_t LazyLoadDylibInfo::serialize(vector_iostream& ios) const {
+  // Mirror mach_o::LazyLoadDylibWriter.
+  // [0]                    header (24 bytes, the 7 LazyLoadDylibLinkEdit fields)
+  // [24]                   symbol string-offset array (4 * symbolsCount)
+  // [24 + 4*symbolsCount]  load path string (NUL-terminated)
+  // [...]                  the symbol strings (each NUL-terminated)
+  static constexpr uint32_t HEADER_SIZE = 24;
+  const uint64_t symbols_count = symbols_.size();
+  const uint64_t symbol_string_array_offset = HEADER_SIZE;
+  const uint64_t load_path_offset = HEADER_SIZE + symbols_count * sizeof(uint32_t);
+
+  std::vector<uint64_t> symbol_offsets;
+  symbol_offsets.reserve(symbols().size());
+  uint64_t pos = load_path_offset + load_path_.size() + 1;
+  for (const std::string& symbol : symbols()) {
+    symbol_offsets.push_back(pos);
+    pos += symbol.size() + 1;
+  }
+
+  // LINKEDIT content must be pointer-size aligned
+  const auto total_size = align_up<uint64_t>(pos, sizeof(uint64_t));
+  if (total_size > std::numeric_limits<uint32_t>::max()) {
+    LIEF_ERR("LazyLoadDylibInfo payload is too large ({} bytes): its 32-bit "
+             "offsets cannot be encoded",
+             total_size);
+    return make_error_code(lief_errors::build_error);
+  }
+
+  // header
+  (ios)
+      .write<uint32_t>((uint32_t)load_path_offset)
+      .write<uint32_t>(flag_image_offset_)
+      .write<uint16_t>(flags_)
+      .write<uint16_t>(pointer_format_)
+      .write<uint32_t>(chain_start_image_offset_)
+      .write<uint32_t>((uint32_t)symbols_count)
+      .write<uint32_t>((uint32_t)symbol_string_array_offset);
+
+  // symbol string offsets array
+  for (uint64_t offset : symbol_offsets) {
+    ios.write<uint32_t>((uint32_t)offset);
+  }
+
+  ios.write(load_path_);
+  for (const std::string& symbol : symbols_) {
+    ios.write(symbol);
+  }
+  return ok();
+}
+
+std::string LazyLoadDylibInfo::Fixup::to_string() const {
+  return fmt::format("{:#010x}: {} (ordinal={}{})", address(), symbol(), ordinal(),
+                     is_auth() ? ", auth" : "");
+}
+
+std::ostream& LazyLoadDylibInfo::print(std::ostream& os) const {
+  LoadCommand::print(os) << '\n';
+  os << fmt::format("Load path: {}\n", load_path());
+  os << fmt::format("Flags: {:#06x} (may be missing: {})\n", flags(),
+                    may_be_missing());
+  os << fmt::format("Pointer format: {:#06x}\n", pointer_format());
+  os << fmt::format("Flag image offset: {:#010x}\n", flag_image_offset());
+  os << fmt::format("Chain start image offset: {:#010x}\n",
+                    chain_start_image_offset());
+  os << fmt::format("Symbols ({}):\n", symbols().size());
+  for (const std::string& symbol : symbols()) {
+    os << fmt::format("  {}\n", symbol);
+  }
+  os << fmt::format("Fixups ({}):\n", fixups_.size());
+  for (const Fixup& fixup : fixups_) {
+    os << fmt::format("  {}\n", fixup.to_string());
+  }
+  return os;
+}
+
+}
diff --git a/deps/LIEF/src/MachO/LinkEdit.cpp b/deps/LIEF/src/MachO/LinkEdit.cpp
index a8d5adc0ef3..ae7185377d0 100644
--- a/deps/LIEF/src/MachO/LinkEdit.cpp
+++ b/deps/LIEF/src/MachO/LinkEdit.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -26,6 +26,7 @@
 #include "LIEF/MachO/FunctionStarts.hpp"
 #include "LIEF/MachO/FunctionVariants.hpp"
 #include "LIEF/MachO/FunctionVariantFixups.hpp"
+#include "LIEF/MachO/LazyLoadDylibInfo.hpp"
 #include "LIEF/MachO/LinkEdit.hpp"
 #include "LIEF/MachO/LinkerOptHint.hpp"
 #include "LIEF/MachO/SegmentSplitInfo.hpp"
@@ -33,21 +34,22 @@
 #include "LIEF/MachO/TwoLevelHints.hpp"
 #include "LIEF/MachO/SegmentCommand.hpp"

-namespace LIEF {
-namespace MachO {

-/* The DyldInfo object has span fields (rebase_opcodes_, ...) that point to segment data.
- * When resizing the ``SegmentCommand.data_`` we can break this span as the internal buffer of ``data_``
- * might be relocated.
+namespace LIEF::MachO {
+
+/* The DyldInfo object has span fields (rebase_opcodes_, ...) that point to segment
+ * data. When resizing the ``SegmentCommand.data_`` we can break this span as the
+ * internal buffer of ``data_`` might be relocated.
  *
- * The following helpers keep an internal consistent state of the data
+ * The following helpers keep an internally consistent state of the data
  */

 inline ok_error_t update_span(span<uint8_t>& sp, uintptr_t original_data_addr,
-                              uintptr_t original_data_end, std::vector<uint8_t>& new_data)
-{
+                              uintptr_t original_data_end,
+                              std::vector<uint8_t>& new_data) {
   auto span_data_addr = reinterpret_cast<uintptr_t>(sp.data());
-  const bool is_encompassed = original_data_addr <= span_data_addr && span_data_addr < original_data_end;
+  const bool is_encompassed =
+      original_data_addr <= span_data_addr && span_data_addr < original_data_end;
   if (!is_encompassed) {
     return ok();
   }
@@ -61,7 +63,8 @@ inline ok_error_t update_span(span<uint8_t>& sp, uintptr_t original_data_addr,
   }

   const uintptr_t delta = span_data_addr - original_data_addr;
-  const bool fit_in_data = delta < new_data.size() && (delta + original_size) <= new_data.size();
+  const bool fit_in_data =
+      delta < new_data.size() && (delta + original_size) <= new_data.size();
   if (!fit_in_data) {
     sp = {new_data.data(), static_cast<size_t>(0)};
     return make_error_code(lief_errors::corrupted);
@@ -73,11 +76,12 @@ inline ok_error_t update_span(span<uint8_t>& sp, uintptr_t original_data_addr,

 /// @param[in] offset    Offset where the insertion took place
 /// @param[in] size      Size of the inserted data
-inline ok_error_t update_span(span<uint8_t>& sp, uintptr_t original_data_addr, uintptr_t original_data_end,
-                              size_t offset, size_t size, std::vector<uint8_t>& new_data)
-{
+inline ok_error_t update_span(span<uint8_t>& sp, uintptr_t original_data_addr,
+                              uintptr_t original_data_end, size_t offset,
+                              size_t size, std::vector<uint8_t>& new_data) {
   auto span_data_addr = reinterpret_cast<uintptr_t>(sp.data());
-  const bool is_encompassed = original_data_addr <= span_data_addr && span_data_addr < original_data_end;
+  const bool is_encompassed =
+      original_data_addr <= span_data_addr && span_data_addr < original_data_end;
   if (!is_encompassed) {
     // No need to re-span
     return ok();
@@ -92,8 +96,9 @@ inline ok_error_t update_span(span<uint8_t>& sp, uintptr_t original_data_addr, u
     delta_offset = size;
   }

-  const bool fit_in_data = (original_rel_offset + delta_offset) < new_data.size() &&
-                           (original_rel_offset + delta_offset + sp.size()) < new_data.size();
+  const bool fit_in_data =
+      (original_rel_offset + delta_offset) < new_data.size() &&
+      (original_rel_offset + delta_offset + sp.size()) < new_data.size();
   if (!fit_in_data) {
     sp = {new_data.data(), static_cast<size_t>(0)};
     return make_error_code(lief_errors::corrupted);
@@ -110,219 +115,320 @@ LinkEdit& LinkEdit::operator=(LinkEdit other) {

 void LinkEdit::swap(LinkEdit& other) noexcept {
   SegmentCommand::swap(other);
-  std::swap(dyld_,           other.dyld_);
+  std::swap(dyld_, other.dyld_);
   std::swap(chained_fixups_, other.chained_fixups_);
 }

 void LinkEdit::update_data(const update_fnc_t& f) {
-  const auto original_data_addr     = reinterpret_cast<uintptr_t>(data_.data());
-  const auto original_data_size     = static_cast<size_t>(data_.size());
+  const auto original_data_addr = reinterpret_cast<uintptr_t>(data_.data());
+  const auto original_data_size = static_cast<size_t>(data_.size());
   const uintptr_t original_data_end = original_data_addr + original_data_size;
   f(data_);
   if (dyld_ != nullptr) {
-    if (!update_span(dyld_->rebase_opcodes_, original_data_addr, original_data_end, data_)) {
-      LIEF_WARN("Error while re-spanning rebase opcodes in segment {}", name_);
+    if (!update_span(dyld_->rebase_opcodes_, original_data_addr, original_data_end,
+                     data_))
+    {
+      LIEF_WARN("Failed to re-span rebase opcodes in segment {}", name_);
     }
-    if (!update_span(dyld_->bind_opcodes_, original_data_addr, original_data_end, data_)) {
-      LIEF_WARN("Error while re-spanning bind opcodes in segment {}", name_);
+    if (!update_span(dyld_->bind_opcodes_, original_data_addr, original_data_end,
+                     data_))
+    {
+      LIEF_WARN("Failed to re-span bind opcodes in segment {}", name_);
     }
-    if (!update_span(dyld_->weak_bind_opcodes_, original_data_addr, original_data_end, data_)) {
-      LIEF_WARN("Error while re-spanning weak bind opcodes in segment {}", name_);
+    if (!update_span(dyld_->weak_bind_opcodes_, original_data_addr,
+                     original_data_end, data_))
+    {
+      LIEF_WARN("Failed to re-span weak bind opcodes in segment {}", name_);
     }
-    if (!update_span(dyld_->lazy_bind_opcodes_, original_data_addr, original_data_end, data_)) {
-      LIEF_WARN("Error while re-spanning lazy bind opcodes in segment {}", name_);
+    if (!update_span(dyld_->lazy_bind_opcodes_, original_data_addr,
+                     original_data_end, data_))
+    {
+      LIEF_WARN("Failed to re-span lazy bind opcodes in segment {}", name_);
     }
-    if (!update_span(dyld_->export_trie_, original_data_addr, original_data_end, data_)) {
-      LIEF_WARN("Error while re-spanning the export trie in segment {}", name_);
+    if (!update_span(dyld_->export_trie_, original_data_addr, original_data_end,
+                     data_))
+    {
+      LIEF_WARN("Failed to re-span the export trie in segment {}", name_);
     }
   }

   if (chained_fixups_ != nullptr) {
-    if (!update_span(chained_fixups_->content_, original_data_addr, original_data_end, data_)) {
-      LIEF_WARN("Error while re-spanning the Dyld Chained fixups in segment {}", name_);
+    if (!update_span(chained_fixups_->content_, original_data_addr,
+                     original_data_end, data_))
+    {
+      LIEF_WARN("Failed to re-span the Dyld Chained fixups in segment {}", name_);
     }
   }

   if (exports_trie_ != nullptr) {
-    if (!update_span(exports_trie_->content_, original_data_addr, original_data_end, data_)) {
-      LIEF_WARN("Error while re-spanning the Dyld Exports Trie in segment {}", name_);
+    if (!update_span(exports_trie_->content_, original_data_addr,
+                     original_data_end, data_))
+    {
+      LIEF_WARN("Failed to re-span the Dyld Exports Trie in segment {}", name_);
     }
   }

   if (symtab_ != nullptr) {
-    if (!update_span(symtab_->symbol_table_, original_data_addr, original_data_end, data_)) {
-      LIEF_WARN("Error while re-spanning the LC_SYMTAB.n_list in segment {}", name_);
+    if (!update_span(symtab_->symbol_table_, original_data_addr, original_data_end,
+                     data_))
+    {
+      LIEF_WARN("Failed to re-span the LC_SYMTAB.n_list in segment {}", name_);
     }
-    if (!update_span(symtab_->string_table_, original_data_addr, original_data_end, data_)) {
-      LIEF_WARN("Error while re-spanning the LC_SYMTAB.string_table in segment {}", name_);
+    if (!update_span(symtab_->string_table_, original_data_addr, original_data_end,
+                     data_))
+    {
+      LIEF_WARN("Failed to re-span the LC_SYMTAB.string_table in segment {}",
+                name_);
     }
   }

   if (fstarts_ != nullptr) {
-    if (!update_span(fstarts_->content_, original_data_addr, original_data_end, data_)) {
-      LIEF_WARN("Error while re-spanning the LC_FUNCTION_STARTS in segment {}", name_);
+    if (!update_span(fstarts_->content_, original_data_addr, original_data_end,
+                     data_))
+    {
+      LIEF_WARN("Failed to re-span the LC_FUNCTION_STARTS in segment {}", name_);
     }
   }

   if (data_code_ != nullptr) {
-    if (!update_span(data_code_->content_, original_data_addr, original_data_end, data_)) {
-      LIEF_WARN("Error while re-spanning the LC_DATA_IN_CODE in segment {}", name_);
+    if (!update_span(data_code_->content_, original_data_addr, original_data_end,
+                     data_))
+    {
+      LIEF_WARN("Failed to re-span the LC_DATA_IN_CODE in segment {}", name_);
     }
   }

   if (seg_split_ != nullptr) {
-    if (!update_span(seg_split_->content_, original_data_addr, original_data_end, data_)) {
-      LIEF_WARN("Error while re-spanning the LC_SEGMENT_SPLIT_INFO in segment {}", name_);
+    if (!update_span(seg_split_->content_, original_data_addr, original_data_end,
+                     data_))
+    {
+      LIEF_WARN("Failed to re-span the LC_SEGMENT_SPLIT_INFO in segment {}",
+                name_);
     }
   }

   if (two_lvl_hint_ != nullptr) {
-    if (!update_span(two_lvl_hint_->content_, original_data_addr, original_data_end, data_)) {
-      LIEF_WARN("Error while re-spanning the LC_TWOLEVEL_HINTS in segment {}", name_);
+    if (!update_span(two_lvl_hint_->content_, original_data_addr,
+                     original_data_end, data_))
+    {
+      LIEF_WARN("Failed to re-span the LC_TWOLEVEL_HINTS in segment {}", name_);
     }
   }

   if (linker_opt_ != nullptr) {
-    if (!update_span(linker_opt_->content_, original_data_addr, original_data_end, data_)) {
-      LIEF_WARN("Error while re-spanning the LC_LINKER_OPTIMIZATION_HINT in segment {}", name_);
+    if (!update_span(linker_opt_->content_, original_data_addr, original_data_end,
+                     data_))
+    {
+      LIEF_WARN("Failed to re-span the LC_LINKER_OPTIMIZATION_HINT in segment {}",
+                name_);
     }
   }

   if (code_sig_ != nullptr) {
-    if (!update_span(code_sig_->content_, original_data_addr, original_data_end, data_)) {
-      LIEF_WARN("Error while re-spanning the LC_CODE_SIGNATURE in segment {}", name_);
+    if (!update_span(code_sig_->content_, original_data_addr, original_data_end,
+                     data_))
+    {
+      LIEF_WARN("Failed to re-span the LC_CODE_SIGNATURE in segment {}", name_);
     }
   }

   if (code_sig_dir_ != nullptr) {
-    if (!update_span(code_sig_dir_->content_, original_data_addr, original_data_end, data_)) {
-      LIEF_WARN("Error while re-spanning the LC_DYLIB_CODE_SIGN_DRS in segment {}", name_);
+    if (!update_span(code_sig_dir_->content_, original_data_addr,
+                     original_data_end, data_))
+    {
+      LIEF_WARN("Failed to re-span the LC_DYLIB_CODE_SIGN_DRS in segment {}",
+                name_);
     }
   }

   if (atom_info_ != nullptr) {
-    if (!update_span(atom_info_->content_, original_data_addr, original_data_end, data_)) {
-      LIEF_WARN("Error while re-spanning the LC_ATOM_INFO in segment {}", name_);
+    if (!update_span(atom_info_->content_, original_data_addr, original_data_end,
+                     data_))
+    {
+      LIEF_WARN("Failed to re-span the LC_ATOM_INFO in segment {}", name_);
     }
   }

   if (func_variants_ != nullptr) {
-    if (!update_span(func_variants_->content_, original_data_addr, original_data_end, data_)) {
-      LIEF_WARN("Error while re-spanning the LC_FUNCTION_VARIANTS in segment {}", name_);
+    if (!update_span(func_variants_->content_, original_data_addr,
+                     original_data_end, data_))
+    {
+      LIEF_WARN("Failed to re-span the LC_FUNCTION_VARIANTS in segment {}", name_);
     }
   }

   if (func_variant_fixups_ != nullptr) {
-    if (!update_span(func_variant_fixups_->content_, original_data_addr, original_data_end, data_)) {
-      LIEF_WARN("Error while re-spanning the LC_FUNCTION_VARIANT_FIXUPS in segment {}", name_);
+    if (!update_span(func_variant_fixups_->content_, original_data_addr,
+                     original_data_end, data_))
+    {
+      LIEF_WARN("Failed to re-span the LC_FUNCTION_VARIANT_FIXUPS in segment {}",
+                name_);
+    }
+  }
+
+  for (LazyLoadDylibInfo* lazy : lazy_load_dylibs_) {
+    if (!update_span(lazy->content_, original_data_addr, original_data_end, data_))
+    {
+      LIEF_WARN("Failed to re-span the LC_LAZY_LOAD_DYLIB_INFO in segment {}",
+                name_);
     }
   }
 }

 void LinkEdit::update_data(const update_fnc_ws_t& f, size_t where, size_t size) {
-  const auto original_data_addr     = reinterpret_cast<uintptr_t>(data_.data());
-  const auto original_data_size     = static_cast<size_t>(data_.size());
+  const auto original_data_addr = reinterpret_cast<uintptr_t>(data_.data());
+  const auto original_data_size = static_cast<size_t>(data_.size());
   const uintptr_t original_data_end = original_data_addr + original_data_size;
   f(data_, where, size);
   if (dyld_ != nullptr) {
-    if (!update_span(dyld_->rebase_opcodes_, original_data_addr, original_data_end, where, size, data_)) {
-      LIEF_WARN("Error while re-spanning rebase opcodes in segment {}", name_);
+    if (!update_span(dyld_->rebase_opcodes_, original_data_addr, original_data_end,
+                     where, size, data_))
+    {
+      LIEF_WARN("Failed to re-span rebase opcodes in segment {}", name_);
     }
-    if (!update_span(dyld_->bind_opcodes_, original_data_addr, original_data_end, where, size, data_)) {
-      LIEF_WARN("Error while re-spanning bind opcodes in segment {}", name_);
+    if (!update_span(dyld_->bind_opcodes_, original_data_addr, original_data_end,
+                     where, size, data_))
+    {
+      LIEF_WARN("Failed to re-span bind opcodes in segment {}", name_);
     }
-    if (!update_span(dyld_->weak_bind_opcodes_, original_data_addr, original_data_end, where, size, data_)) {
-      LIEF_WARN("Error while re-spanning weak bind opcodes in segment {}", name_);
+    if (!update_span(dyld_->weak_bind_opcodes_, original_data_addr,
+                     original_data_end, where, size, data_))
+    {
+      LIEF_WARN("Failed to re-span weak bind opcodes in segment {}", name_);
     }
-    if (!update_span(dyld_->lazy_bind_opcodes_, original_data_addr, original_data_end, where, size, data_)) {
-      LIEF_WARN("Error while re-spanning lazy bind opcodes in segment {}", name_);
+    if (!update_span(dyld_->lazy_bind_opcodes_, original_data_addr,
+                     original_data_end, where, size, data_))
+    {
+      LIEF_WARN("Failed to re-span lazy bind opcodes in segment {}", name_);
     }
-    if (!update_span(dyld_->export_trie_, original_data_addr, original_data_end, where, size, data_)) {
-      LIEF_WARN("Error while re-spanning the export trie in segment {}", name_);
+    if (!update_span(dyld_->export_trie_, original_data_addr, original_data_end,
+                     where, size, data_))
+    {
+      LIEF_WARN("Failed to re-span the export trie in segment {}", name_);
     }
   }

   if (chained_fixups_ != nullptr) {
-    if (!update_span(chained_fixups_->content_, original_data_addr, original_data_end, where, size, data_)) {
-      LIEF_WARN("Error while re-spanning the Dyld Chained fixups in segment {}", name_);
+    if (!update_span(chained_fixups_->content_, original_data_addr,
+                     original_data_end, where, size, data_))
+    {
+      LIEF_WARN("Failed to re-span the Dyld Chained fixups in segment {}", name_);
     }
   }

   if (exports_trie_ != nullptr) {
-    if (!update_span(exports_trie_->content_, original_data_addr, original_data_end, where, size, data_)) {
-      LIEF_WARN("Error while re-spanning the Dyld Exports Trie in segment {}", name_);
+    if (!update_span(exports_trie_->content_, original_data_addr,
+                     original_data_end, where, size, data_))
+    {
+      LIEF_WARN("Failed to re-span the Dyld Exports Trie in segment {}", name_);
     }
   }

   if (symtab_ != nullptr) {
-    if (!update_span(symtab_->symbol_table_, original_data_addr, original_data_end, where, size, data_)) {
-      LIEF_WARN("Error while re-spanning the LC_SYMTAB.n_list in segment {}", name_);
+    if (!update_span(symtab_->symbol_table_, original_data_addr, original_data_end,
+                     where, size, data_))
+    {
+      LIEF_WARN("Failed to re-span the LC_SYMTAB.n_list in segment {}", name_);
     }
-    if (!update_span(symtab_->string_table_, original_data_addr, original_data_end, where, size, data_)) {
-      LIEF_WARN("Error while re-spanning the LC_SYMTAB.string_table in segment {}", name_);
+    if (!update_span(symtab_->string_table_, original_data_addr, original_data_end,
+                     where, size, data_))
+    {
+      LIEF_WARN("Failed to re-span the LC_SYMTAB.string_table in segment {}",
+                name_);
     }
   }

   if (fstarts_ != nullptr) {
-    if (!update_span(fstarts_->content_, original_data_addr, original_data_end, where, size, data_)) {
-      LIEF_WARN("Error while re-spanning the LC_FUNCTION_STARTS in segment {}", name_);
+    if (!update_span(fstarts_->content_, original_data_addr, original_data_end,
+                     where, size, data_))
+    {
+      LIEF_WARN("Failed to re-span the LC_FUNCTION_STARTS in segment {}", name_);
     }
   }

   if (data_code_ != nullptr) {
-    if (!update_span(data_code_->content_, original_data_addr, original_data_end, where, size, data_)) {
-      LIEF_WARN("Error while re-spanning the LC_DATA_IN_CODE in segment {}", name_);
+    if (!update_span(data_code_->content_, original_data_addr, original_data_end,
+                     where, size, data_))
+    {
+      LIEF_WARN("Failed to re-span the LC_DATA_IN_CODE in segment {}", name_);
     }
   }

   if (seg_split_ != nullptr) {
-    if (!update_span(seg_split_->content_, original_data_addr, original_data_end, where, size, data_)) {
-      LIEF_WARN("Error while re-spanning the LC_SEGMENT_SPLIT_INFO in segment {}", name_);
+    if (!update_span(seg_split_->content_, original_data_addr, original_data_end,
+                     where, size, data_))
+    {
+      LIEF_WARN("Failed to re-span the LC_SEGMENT_SPLIT_INFO in segment {}",
+                name_);
     }
   }

   if (two_lvl_hint_ != nullptr) {
-    if (!update_span(two_lvl_hint_->content_, original_data_addr, original_data_end, where, size, data_)) {
-      LIEF_WARN("Error while re-spanning the LC_TWOLEVEL_HINTS in segment {}", name_);
+    if (!update_span(two_lvl_hint_->content_, original_data_addr,
+                     original_data_end, where, size, data_))
+    {
+      LIEF_WARN("Failed to re-span the LC_TWOLEVEL_HINTS in segment {}", name_);
     }
   }

   if (linker_opt_ != nullptr) {
-    if (!update_span(linker_opt_->content_, original_data_addr, original_data_end, where, size, data_)) {
-      LIEF_WARN("Error while re-spanning the LC_LINKER_OPTIMIZATION_HINT in segment {}", name_);
+    if (!update_span(linker_opt_->content_, original_data_addr, original_data_end,
+                     where, size, data_))
+    {
+      LIEF_WARN("Failed to re-span the LC_LINKER_OPTIMIZATION_HINT in segment {}",
+                name_);
     }
   }

   if (code_sig_ != nullptr) {
-    if (!update_span(code_sig_->content_, original_data_addr, original_data_end, where, size, data_)) {
-      LIEF_WARN("Error while re-spanning the LC_CODE_SIGNATURE in segment {}", name_);
+    if (!update_span(code_sig_->content_, original_data_addr, original_data_end,
+                     where, size, data_))
+    {
+      LIEF_WARN("Failed to re-span the LC_CODE_SIGNATURE in segment {}", name_);
     }
   }

   if (code_sig_dir_ != nullptr) {
-    if (!update_span(code_sig_dir_->content_, original_data_addr, original_data_end, data_)) {
-      LIEF_WARN("Error while re-spanning the LC_DYLIB_CODE_SIGN_DRS in segment {}", name_);
+    if (!update_span(code_sig_dir_->content_, original_data_addr,
+                     original_data_end, data_))
+    {
+      LIEF_WARN("Failed to re-span the LC_DYLIB_CODE_SIGN_DRS in segment {}",
+                name_);
     }
   }

   if (atom_info_ != nullptr) {
-    if (!update_span(atom_info_->content_, original_data_addr, original_data_end, data_)) {
-      LIEF_WARN("Error while re-spanning the LC_ATOM_INFO in segment {}", name_);
+    if (!update_span(atom_info_->content_, original_data_addr, original_data_end,
+                     data_))
+    {
+      LIEF_WARN("Failed to re-span the LC_ATOM_INFO in segment {}", name_);
     }
   }

   if (func_variants_ != nullptr) {
-    if (!update_span(func_variants_->content_, original_data_addr, original_data_end, data_)) {
-      LIEF_WARN("Error while re-spanning the LC_FUNCTION_VARIANTS in segment {}", name_);
+    if (!update_span(func_variants_->content_, original_data_addr,
+                     original_data_end, data_))
+    {
+      LIEF_WARN("Failed to re-span the LC_FUNCTION_VARIANTS in segment {}", name_);
     }
   }

   if (func_variant_fixups_ != nullptr) {
-    if (!update_span(func_variant_fixups_->content_, original_data_addr, original_data_end, data_)) {
-      LIEF_WARN("Error while re-spanning the LC_FUNCTION_VARIANT_FIXUPS in segment {}", name_);
+    if (!update_span(func_variant_fixups_->content_, original_data_addr,
+                     original_data_end, data_))
+    {
+      LIEF_WARN("Failed to re-span the LC_FUNCTION_VARIANT_FIXUPS in segment {}",
+                name_);
     }
   }
-}

+  for (LazyLoadDylibInfo* lazy : lazy_load_dylibs_) {
+    if (!update_span(lazy->content_, original_data_addr, original_data_end, data_))
+    {
+      LIEF_WARN("Failed to re-span the LC_LAZY_LOAD_DYLIB_INFO in segment {}",
+                name_);
+    }
+  }
 }
+
 }
diff --git a/deps/LIEF/src/MachO/LinkerOptHint.cpp b/deps/LIEF/src/MachO/LinkerOptHint.cpp
index b7b9d17e4e4..6c91321df35 100644
--- a/deps/LIEF/src/MachO/LinkerOptHint.cpp
+++ b/deps/LIEF/src/MachO/LinkerOptHint.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -19,14 +19,13 @@
 #include "LIEF/MachO/LinkerOptHint.hpp"
 #include "MachO/Structures.hpp"

-namespace LIEF {
-namespace MachO {
+
+namespace LIEF::MachO {

 LinkerOptHint::LinkerOptHint(const details::linkedit_data_command& cmd) :
   LoadCommand::LoadCommand{LoadCommand::TYPE(cmd.cmd), cmd.cmdsize},
   data_offset_{cmd.dataoff},
-  data_size_{cmd.datasize}
-{}
+  data_size_{cmd.datasize} {}

 void LinkerOptHint::accept(Visitor& visitor) const {
   visitor.visit(*this);
@@ -34,11 +33,9 @@ void LinkerOptHint::accept(Visitor& visitor) const {

 std::ostream& LinkerOptHint::print(std::ostream& os) const {
   LoadCommand::print(os) << '\n';
-  os << fmt::format("offset=0x{:06x}, size=0x{:06x}",
-                     data_offset(), data_size());
+  os << fmt::format("offset={:#08x}, size={:#08x}", data_offset(), data_size());
   return os;
 }


 }
-}
diff --git a/deps/LIEF/src/MachO/LoadCommand.cpp b/deps/LIEF/src/MachO/LoadCommand.cpp
index 2ac85bb9cca..2de1ce3b0ca 100644
--- a/deps/LIEF/src/MachO/LoadCommand.cpp
+++ b/deps/LIEF/src/MachO/LoadCommand.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -33,18 +33,17 @@

 #include "MachO/Structures.hpp"

-namespace LIEF {
-namespace MachO {
+
+namespace LIEF::MachO {

 LoadCommand::LoadCommand(const details::load_command& command) :
   command_{static_cast<LoadCommand::TYPE>(command.cmd)},
-  size_{command.cmdsize}
-{}
+  size_{command.cmdsize} {}

 void LoadCommand::swap(LoadCommand& other) noexcept {
-  std::swap(original_data_,  other.original_data_);
-  std::swap(command_,        other.command_);
-  std::swap(size_,           other.size_);
+  std::swap(original_data_, other.original_data_);
+  std::swap(command_, other.command_);
+  std::swap(size_, other.size_);
   std::swap(command_offset_, other.command_offset_);
 }

@@ -53,92 +52,111 @@ void LoadCommand::accept(Visitor& visitor) const {
 }

 bool LoadCommand::is_linkedit_data(const LoadCommand& cmd) {
-  if (DyldInfo::classof(&cmd))             return true;
-  if (DyldExportsTrie::classof(&cmd))      return true;
-  if (DyldChainedFixups::classof(&cmd))    return true;
-  if (DynamicSymbolCommand::classof(&cmd)) return true;
-  if (SegmentSplitInfo::classof(&cmd))     return true;
-  if (FunctionStarts::classof(&cmd))       return true;
-  if (DataInCode::classof(&cmd))           return true;
-  if (SymbolCommand::classof(&cmd))        return true;
-  if (CodeSignature::classof(&cmd))        return true;
+  if (DyldInfo::classof(&cmd)) {
+    return true;
+  }
+  if (DyldExportsTrie::classof(&cmd)) {
+    return true;
+  }
+  if (DyldChainedFixups::classof(&cmd)) {
+    return true;
+  }
+  if (DynamicSymbolCommand::classof(&cmd)) {
+    return true;
+  }
+  if (SegmentSplitInfo::classof(&cmd)) {
+    return true;
+  }
+  if (FunctionStarts::classof(&cmd)) {
+    return true;
+  }
+  if (DataInCode::classof(&cmd)) {
+    return true;
+  }
+  if (SymbolCommand::classof(&cmd)) {
+    return true;
+  }
+  if (CodeSignature::classof(&cmd)) {
+    return true;
+  }
   return false;
 }


 std::ostream& LoadCommand::print(std::ostream& os) const {
   os << fmt::format("Command: {}", to_string(command())) << '\n'
-     << fmt::format("Offset:  0x{:x}", command_offset()) << '\n'
-     << fmt::format("Size:    0x{:x}", size());
+     << fmt::format("Offset:  {:#x}", command_offset()) << '\n'
+     << fmt::format("Size:    {:#x}", size());

   return os;
 }

 const char* to_string(LoadCommand::TYPE e) {
-  #define ENTRY(X) std::pair(LoadCommand::TYPE::X, #X)
-  STRING_MAP enums2str {
-    ENTRY(UNKNOWN),
-    ENTRY(SEGMENT),
-    ENTRY(SYMTAB),
-    ENTRY(SYMSEG),
-    ENTRY(THREAD),
-    ENTRY(UNIXTHREAD),
-    ENTRY(LOADFVMLIB),
-    ENTRY(IDFVMLIB),
-    ENTRY(IDENT),
-    ENTRY(FVMFILE),
-    ENTRY(PREPAGE),
-    ENTRY(DYSYMTAB),
-    ENTRY(LOAD_DYLIB),
-    ENTRY(ID_DYLIB),
-    ENTRY(LOAD_DYLINKER),
-    ENTRY(ID_DYLINKER),
-    ENTRY(PREBOUND_DYLIB),
-    ENTRY(ROUTINES),
-    ENTRY(SUB_FRAMEWORK),
-    ENTRY(SUB_UMBRELLA),
-    ENTRY(SUB_CLIENT),
-    ENTRY(SUB_LIBRARY),
-    ENTRY(TWOLEVEL_HINTS),
-    ENTRY(PREBIND_CKSUM),
-    ENTRY(LOAD_WEAK_DYLIB),
-    ENTRY(SEGMENT_64),
-    ENTRY(ROUTINES_64),
-    ENTRY(UUID),
-    ENTRY(RPATH),
-    ENTRY(CODE_SIGNATURE),
-    ENTRY(SEGMENT_SPLIT_INFO),
-    ENTRY(REEXPORT_DYLIB),
-    ENTRY(LAZY_LOAD_DYLIB),
-    ENTRY(ENCRYPTION_INFO),
-    ENTRY(DYLD_INFO),
-    ENTRY(DYLD_INFO_ONLY),
-    ENTRY(LOAD_UPWARD_DYLIB),
-    ENTRY(VERSION_MIN_MACOSX),
-    ENTRY(VERSION_MIN_IPHONEOS),
-    ENTRY(FUNCTION_STARTS),
-    ENTRY(DYLD_ENVIRONMENT),
-    ENTRY(MAIN),
-    ENTRY(DATA_IN_CODE),
-    ENTRY(SOURCE_VERSION),
-    ENTRY(DYLIB_CODE_SIGN_DRS),
-    ENTRY(ENCRYPTION_INFO_64),
-    ENTRY(LINKER_OPTION),
-    ENTRY(LINKER_OPTIMIZATION_HINT),
-    ENTRY(VERSION_MIN_TVOS),
-    ENTRY(VERSION_MIN_WATCHOS),
-    ENTRY(NOTE),
-    ENTRY(BUILD_VERSION),
-    ENTRY(DYLD_EXPORTS_TRIE),
-    ENTRY(DYLD_CHAINED_FIXUPS),
-    ENTRY(FILESET_ENTRY),
-    ENTRY(ATOM_INFO),
-    ENTRY(FUNCTION_VARIANTS),
-    ENTRY(FUNCTION_VARIANT_FIXUPS),
-    ENTRY(TARGET_TRIPLE),
-    ENTRY(LIEF_UNKNOWN),
+#define ENTRY(X) std::pair(LoadCommand::TYPE::X, #X)
+  STRING_MAP enums2str{
+      ENTRY(UNKNOWN),
+      ENTRY(SEGMENT),
+      ENTRY(SYMTAB),
+      ENTRY(SYMSEG),
+      ENTRY(THREAD),
+      ENTRY(UNIXTHREAD),
+      ENTRY(LOADFVMLIB),
+      ENTRY(IDFVMLIB),
+      ENTRY(IDENT),
+      ENTRY(FVMFILE),
+      ENTRY(PREPAGE),
+      ENTRY(DYSYMTAB),
+      ENTRY(LOAD_DYLIB),
+      ENTRY(ID_DYLIB),
+      ENTRY(LOAD_DYLINKER),
+      ENTRY(ID_DYLINKER),
+      ENTRY(PREBOUND_DYLIB),
+      ENTRY(ROUTINES),
+      ENTRY(SUB_FRAMEWORK),
+      ENTRY(SUB_UMBRELLA),
+      ENTRY(SUB_CLIENT),
+      ENTRY(SUB_LIBRARY),
+      ENTRY(TWOLEVEL_HINTS),
+      ENTRY(PREBIND_CKSUM),
+      ENTRY(LOAD_WEAK_DYLIB),
+      ENTRY(SEGMENT_64),
+      ENTRY(ROUTINES_64),
+      ENTRY(UUID),
+      ENTRY(RPATH),
+      ENTRY(CODE_SIGNATURE),
+      ENTRY(SEGMENT_SPLIT_INFO),
+      ENTRY(REEXPORT_DYLIB),
+      ENTRY(LAZY_LOAD_DYLIB),
+      ENTRY(ENCRYPTION_INFO),
+      ENTRY(DYLD_INFO),
+      ENTRY(DYLD_INFO_ONLY),
+      ENTRY(LOAD_UPWARD_DYLIB),
+      ENTRY(VERSION_MIN_MACOSX),
+      ENTRY(VERSION_MIN_IPHONEOS),
+      ENTRY(FUNCTION_STARTS),
+      ENTRY(DYLD_ENVIRONMENT),
+      ENTRY(MAIN),
+      ENTRY(DATA_IN_CODE),
+      ENTRY(SOURCE_VERSION),
+      ENTRY(DYLIB_CODE_SIGN_DRS),
+      ENTRY(ENCRYPTION_INFO_64),
+      ENTRY(LINKER_OPTION),
+      ENTRY(LINKER_OPTIMIZATION_HINT),
+      ENTRY(VERSION_MIN_TVOS),
+      ENTRY(VERSION_MIN_WATCHOS),
+      ENTRY(NOTE),
+      ENTRY(BUILD_VERSION),
+      ENTRY(DYLD_EXPORTS_TRIE),
+      ENTRY(DYLD_CHAINED_FIXUPS),
+      ENTRY(FILESET_ENTRY),
+      ENTRY(ATOM_INFO),
+      ENTRY(FUNCTION_VARIANTS),
+      ENTRY(FUNCTION_VARIANT_FIXUPS),
+      ENTRY(TARGET_TRIPLE),
+      ENTRY(LAZY_LOAD_DYLIB_INFO),
+      ENTRY(LIEF_UNKNOWN),
   };
-  #undef ENTRY
+#undef ENTRY

   if (auto it = enums2str.find(e); it != enums2str.end()) {
     return it->second;
@@ -147,4 +165,3 @@ const char* to_string(LoadCommand::TYPE e) {
 }

 }
-}
diff --git a/deps/LIEF/src/MachO/MainCommand.cpp b/deps/LIEF/src/MachO/MainCommand.cpp
index 80b3be8f26d..e8a39b58356 100644
--- a/deps/LIEF/src/MachO/MainCommand.cpp
+++ b/deps/LIEF/src/MachO/MainCommand.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -19,20 +19,19 @@
 #include "LIEF/MachO/MainCommand.hpp"
 #include "MachO/Structures.hpp"

-namespace LIEF {
-namespace MachO {
+
+namespace LIEF::MachO {

 MainCommand::MainCommand(const details::entry_point_command& cmd) :
   LoadCommand::LoadCommand{LoadCommand::TYPE(cmd.cmd), cmd.cmdsize},
   entrypoint_{cmd.entryoff},
-  stack_size_{cmd.stacksize}
-{}
+  stack_size_{cmd.stacksize} {}

 MainCommand::MainCommand(uint64_t entrypoint, uint64_t stacksize) :
-  LoadCommand::LoadCommand{LoadCommand::TYPE::MAIN, sizeof(details::entry_point_command)},
+  LoadCommand::LoadCommand{LoadCommand::TYPE::MAIN,
+                           sizeof(details::entry_point_command)},
   entrypoint_{entrypoint},
-  stack_size_{stacksize}
-{
+  stack_size_{stacksize} {
   this->data(LoadCommand::raw_t(size(), 0));
 }

@@ -42,10 +41,9 @@ void MainCommand::accept(Visitor& visitor) const {

 std::ostream& MainCommand::print(std::ostream& os) const {
   LoadCommand::print(os) << '\n';
-  os << fmt::format("entrypoint=0x{:x}, stack size=0x{:x}",
-                    entrypoint(), stack_size());
+  os << fmt::format("entrypoint={:#x}, stack size={:#x}", entrypoint(),
+                    stack_size());
   return os;
 }

 }
-}
diff --git a/deps/LIEF/src/MachO/NoteCommand.cpp b/deps/LIEF/src/MachO/NoteCommand.cpp
index 0df06c43c99..599b3b070ee 100644
--- a/deps/LIEF/src/MachO/NoteCommand.cpp
+++ b/deps/LIEF/src/MachO/NoteCommand.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -19,13 +19,14 @@
 #include "LIEF/MachO/NoteCommand.hpp"
 #include "MachO/Structures.hpp"

-namespace LIEF {
-namespace MachO {
+
+namespace LIEF::MachO {

 NoteCommand::NoteCommand(const details::note_command& cmd) :
   LoadCommand::LoadCommand{LoadCommand::TYPE(cmd.cmd), cmd.cmdsize},
-  owner_(), note_offset_(cmd.offset), note_size_(cmd.size)
-{
+  owner_(),
+  note_offset_(cmd.offset),
+  note_size_(cmd.size) {
   static_assert(sizeof(owner_) == sizeof(cmd.data_owner));
   std::copy(std::begin(cmd.data_owner), std::end(cmd.data_owner),
             std::begin(owner_));
@@ -37,10 +38,9 @@ void NoteCommand::accept(Visitor& visitor) const {

 std::ostream& NoteCommand::print(std::ostream& os) const {
   LoadCommand::print(os) << '\n';
-  os << fmt::format("owner={} offset=0x{:x}, size=0x{:x}",
-                    owner_str(), note_offset(), note_size());
+  os << fmt::format("owner={} offset={:#x}, size={:#x}", owner_str(),
+                    note_offset(), note_size());
   return os;
 }

 }
-}
diff --git a/deps/LIEF/src/MachO/Parser.cpp b/deps/LIEF/src/MachO/Parser.cpp
index 5fb39be0a6f..600a6e7e24e 100644
--- a/deps/LIEF/src/MachO/Parser.cpp
+++ b/deps/LIEF/src/MachO/Parser.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -17,9 +17,9 @@

 #include "logging.hpp"

-
 #include "LIEF/BinaryStream/VectorStream.hpp"
 #include "LIEF/BinaryStream/MemoryStream.hpp"
+#include "LIEF/BinaryStream/DumpStream.hpp"

 #include "LIEF/MachO/FatBinary.hpp"
 #include "LIEF/MachO/Binary.hpp"
@@ -31,10 +31,13 @@
 #include "LIEF/MachO/Relocation.hpp"
 #include "LIEF/MachO/RelocationFixup.hpp"
 #include "LIEF/MachO/RelocationDyld.hpp"
+#include "LIEF/MachO/Section.hpp"
+#include "LIEF/MachO/SegmentCommand.hpp"
+#include "LIEF/MachO/ThreadLocalVariables.hpp"
 #include "MachO/Structures.hpp"

-namespace LIEF {
-namespace MachO {
+
+namespace LIEF::MachO {
 Parser::Parser() = default;
 Parser::~Parser() = default;

@@ -42,11 +45,10 @@ Parser::~Parser() = default;
 // From File
 Parser::Parser(const std::string& file, const ParserConfig& conf) :
   LIEF::Parser{file},
-  config_{conf}
-{
+  config_{conf} {
   auto stream = VectorStream::from_file(file);
   if (!stream) {
-    LIEF_ERR("Can't create the stream");
+    LIEF_ERR("Failed to create stream");
   } else {
     stream_ = std::make_unique<VectorStream>(std::move(*stream));
   }
@@ -61,26 +63,25 @@ std::unique_ptr<FatBinary> Parser::parse(const std::string& filename,
   }

   Parser parser{filename, conf};
-  parser.build();
+  parser.parse();
   return std::unique_ptr<FatBinary>(new FatBinary{std::move(parser.binaries_)});
 }

 // From Vector
 Parser::Parser(std::vector<uint8_t> data, const ParserConfig& conf) :
   stream_{std::make_unique<VectorStream>(std::move(data))},
-  config_{conf}
-{}
+  config_{conf} {}


 std::unique_ptr<FatBinary> Parser::parse(const std::vector<uint8_t>& data,
                                          const ParserConfig& conf) {
   if (!is_macho(data)) {
-    LIEF_ERR("The provided data seem not being related to a MachO binary");
+    LIEF_ERR("Provided data does not appear to be a Mach-O binary");
     return nullptr;
   }

   Parser parser{data, conf};
-  parser.build();
+  parser.parse();
   return std::unique_ptr<FatBinary>(new FatBinary{std::move(parser.binaries_)});
 }

@@ -101,23 +102,29 @@ std::unique_ptr<FatBinary> Parser::parse(std::unique_ptr<BinaryStream> stream,
   parser.config_ = conf;
   parser.stream_ = std::move(stream);

-  if (!parser.build()) {
+  if (!parser.parse()) {
     return nullptr;
   }

   return std::unique_ptr<FatBinary>(new FatBinary{std::move(parser.binaries_)});
 }

-std::unique_ptr<FatBinary> Parser::parse_from_memory(uintptr_t address, size_t size, const ParserConfig& conf) {
-  if (conf.fix_from_memory && (!conf.parse_dyld_rebases || !conf.parse_dyld_rebases)) {
-    LIEF_WARN("fix_from_memory requires both: parse_dyld_rebases and parse_dyld_rebases");
+std::unique_ptr<FatBinary> Parser::parse_from_memory(uintptr_t address,
+                                                     size_t size,
+                                                     const ParserConfig& conf) {
+  if (conf.fix_from_memory &&
+      (!conf.parse_dyld_rebases || !conf.parse_dyld_bindings))
+  {
+    LIEF_WARN(
+        "fix_from_memory requires both parse_dyld_rebases and parse_dyld_bindings"
+    );
     return nullptr;
   }
   Parser parser;
   parser.stream_ = std::make_unique<MemoryStream>(address, size);
   parser.config_ = conf;
-  if (!parser.build()) {
-    LIEF_WARN("Errors when parsing the Mach-O at the address 0x{:x} (size: 0{:x})", address, size);
+  if (!parser.parse()) {
+    LIEF_WARN("Parsing errors at address {:#x} (size: {:#x})", address, size);
   }
   if (parser.binaries_.empty()) {
     return nullptr;
@@ -129,21 +136,50 @@ std::unique_ptr<FatBinary> Parser::parse_from_memory(uintptr_t address, size_t s

   if (parser.config_.fix_from_memory) {
     parser.undo_reloc_bindings(address);
+    parser.unpack_tlv();
   }
   return std::unique_ptr<FatBinary>(new FatBinary{std::move(parser.binaries_)});
 }

-std::unique_ptr<FatBinary> Parser::parse_from_memory(uintptr_t address, const ParserConfig& conf) {
-  static constexpr size_t MAX_SIZE = std::numeric_limits<size_t>::max() << 2;
+std::unique_ptr<FatBinary> Parser::parse_from_memory(uintptr_t address,
+                                                     const ParserConfig& conf) {
+  static constexpr size_t MAX_SIZE = std::numeric_limits<size_t>::max() >> 2;
   return parse_from_memory(address, MAX_SIZE, conf);
 }

-ok_error_t Parser::build_fat() {
+
+std::unique_ptr<FatBinary> Parser::parse_from_dump(const std::string& filepath,
+                                                   uint64_t addr,
+                                                   const ParserConfig& conf) {
+  auto stream = VectorStream::from_file(filepath);
+  if (!stream) {
+    return nullptr;
+  }
+  return parse_from_dump(std::make_unique<VectorStream>(std::move(*stream)), addr,
+                         conf);
+}
+
+std::unique_ptr<FatBinary> Parser::parse_from_dump(BinaryStream& stream,
+                                                   uint64_t addr,
+                                                   const ParserConfig& conf) {
+  return parse(std::make_unique<DumpStream>(addr, stream), conf);
+}
+
+std::unique_ptr<FatBinary>
+    Parser::parse_from_dump(std::unique_ptr<BinaryStream> stream, uint64_t addr,
+                            const ParserConfig& conf) {
+  if (stream == nullptr) {
+    return nullptr;
+  }
+  return parse(std::make_unique<DumpStream>(addr, std::move(stream)), conf);
+}
+
+ok_error_t Parser::parse_fat() {
   static constexpr size_t MAX_FAT_ARCH = 30;
   stream_->setpos(0);
   const auto header = stream_->read<details::fat_header>();
   if (!header) {
-    LIEF_ERR("Can't read the FAT header");
+    LIEF_ERR("Failed to read FAT header");
     return make_error_code(lief_errors::read_error);
   }
   uint32_t nb_arch = Swap4Bytes(header->nfat_arch);
@@ -157,29 +193,27 @@ ok_error_t Parser::build_fat() {
   for (size_t i = 0; i < nb_arch; ++i) {
     auto res_arch = stream_->read<details::fat_arch>();
     if (!res_arch) {
-      LIEF_ERR("Can't read arch #{}", i);
+      LIEF_ERR("Failed to read arch #{}", i);
       break;
     }
     const auto arch = *res_arch;

     const uint32_t offset = get_swapped_endian(arch.offset);
-    const uint32_t size   = get_swapped_endian(arch.size);
+    const uint32_t size = get_swapped_endian(arch.size);

     LIEF_DEBUG("Dealing with arch[{:d}]", i);
-    LIEF_DEBUG("    [{:d}].offset: 0x{:06x}", i, offset);
-    LIEF_DEBUG("    [{:d}].size  : 0x{:06x}", i, size);
+    LIEF_DEBUG("    [{:d}].offset: {:#06x}", i, offset);
+    LIEF_DEBUG("    [{:d}].size  : {:#06x}", i, size);

     std::vector<uint8_t> macho_data;
     if (!stream_->peek_data(macho_data, offset, size)) {
-      LIEF_ERR("MachO #{:d} is corrupted!", i);
+      LIEF_ERR("Mach-O #{:d} is corrupted", i);
       continue;
     }

-    std::unique_ptr<Binary> bin = BinaryParser::parse(
-        std::move(macho_data), offset, config_
-    );
+    std::unique_ptr<Binary> bin = BinaryParser::parse(macho_data, offset, config_);
     if (bin == nullptr) {
-      LIEF_ERR("Can't parse the binary at the index #{:d}", i);
+      LIEF_ERR("Failed to parse binary at index {:d}", i);
       continue;
     }
     binaries_.push_back(std::move(bin));
@@ -187,7 +221,7 @@ ok_error_t Parser::build_fat() {
   return ok();
 }

-ok_error_t Parser::build() {
+ok_error_t Parser::parse() {
   auto res_type = stream_->peek<uint32_t>();
   if (!res_type) {
     return make_error_code(lief_errors::parsing_error);
@@ -196,17 +230,71 @@ ok_error_t Parser::build() {

   // Fat binary
   if (type == MACHO_TYPES::MAGIC_FAT || type == MACHO_TYPES::CIGAM_FAT) {
-    if (!build_fat()) {
-      LIEF_WARN("Errors while parsing the Fat MachO");
+    if (!parse_fat()) {
+      LIEF_WARN("Errors while parsing Fat Mach-O");
     }
-  } else { // fit binary
-    const size_t original_size = stream_->size();
-    std::unique_ptr<Binary> bin = BinaryParser::parse(std::move(stream_), 0, config_);
-    bin->original_size_ = original_size;
-    if (bin == nullptr) {
-      return make_error_code(lief_errors::parsing_error);
+    return ok();
+  }
+
+  const size_t original_size = stream_->size();
+  std::unique_ptr<Binary> bin =
+      BinaryParser::parse(std::move(stream_), 0, config_);
+  if (bin == nullptr) {
+    return make_error_code(lief_errors::parsing_error);
+  }
+
+  bin->original_size_ = original_size;
+  binaries_.push_back(std::move(bin));
+
+  return ok();
+}
+
+ok_error_t Parser::unpack_tlv() {
+  using Thunk = ThreadLocalVariables::Thunk;
+  // Since dyld-1285.19 the TLV thunk are packed at runtime:
+  //
+  // On-Disk:                 | In Memory
+  // {                        | {
+  //    uintptr_t func;       |   uintptr_t func;
+  //    size_t    key;        |   uint32_t  key;
+  //                          |   uint32_t  offset;
+  //    size_t    offset;     |   int32_t   initialContentDelta;
+  //                          |   uint32_t  initialContentSize;
+  // }                        | }
+  //
+  // The heuristic to detect whether thunks are packed or not is to compare
+  // the `initialContentSize` with Binary::tlv_initial_content_range
+  if (!config_.fix_from_memory) {
+    return ok();
+  }
+
+  for (std::unique_ptr<Binary>& bin : binaries_) {
+    if (!bin->header().is_64bit()) {
+      continue;
+    }
+    const Binary::range_t& initial_content = bin->tlv_initial_content_range();
+    for (Section& S : bin->sections()) {
+      auto* tlv_sec = S.cast<ThreadLocalVariables>();
+      if (tlv_sec == nullptr) {
+        continue;
+      }
+
+      auto thunks = tlv_sec->thunks();
+
+      for (auto i = 0; i < thunks.size(); ++i) {
+        Thunk T = thunks[i];
+        const auto initialContentSize = (uint32_t)(T.offset >> 32);
+        if (!initial_content.empty() &&
+            initial_content.size() == initialContentSize)
+        {
+          LIEF_DEBUG("fixing thunk #{}. offset: {:#06x} -> {:#06x}", i, T.offset,
+                     T.key >> 32);
+          T.offset = T.key >> 32;
+          T.key = 0;
+          tlv_sec->set(i, T);
+        }
+      }
     }
-    binaries_.push_back(std::move(bin));
   }

   return ok();
@@ -218,19 +306,22 @@ ok_error_t Parser::undo_reloc_bindings(uintptr_t base_address) {
   }
   for (std::unique_ptr<Binary>& bin : binaries_) {
     for (Relocation& reloc : bin->relocations()) {
-      if (RelocationFixup::classof(reloc)) {
-        /* TODO(romain): We should support fixup
-         * auto& fixup = static_cast<RelocationFixup&>(reloc);
-         */
-      }
-      else if (RelocationDyld::classof(reloc)) {
-        span<const uint8_t> content = bin->get_content_from_virtual_address(reloc.address(), sizeof(uintptr_t));
+      if ([[maybe_unused]] const auto* fixup = reloc.cast<RelocationFixup>()) {
+        // TODO(romain): add support for this fixup
+      } else if ([[maybe_unused]] const auto* dyld_reloc =
+                     reloc.cast<RelocationDyld>())
+      {
+        span<const uint8_t> content =
+            bin->get_content_from_virtual_address(reloc.address(),
+                                                  sizeof(uintptr_t));
         if (content.empty() || content.size() != sizeof(uintptr_t)) {
-          LIEF_WARN("Can't access relocation data @0x{:x}", reloc.address());
+          LIEF_WARN("Failed to access relocation data at {:#x}", reloc.address());
           continue;
         }
         const auto value = *reinterpret_cast<const uintptr_t*>(content.data());
-        bin->patch_address(reloc.address(), value - base_address + bin->imagebase(), sizeof(uintptr_t));
+        bin->patch_address(reloc.address(),
+                           value - base_address + bin->imagebase(),
+                           sizeof(uintptr_t));
       }
     }
     if (const DyldInfo* info = bin->dyld_info()) {
@@ -244,5 +335,4 @@ ok_error_t Parser::undo_reloc_bindings(uintptr_t base_address) {
   return ok();
 }

-} //namespace MachO
-}
+} // namespace LIEF::MachO
diff --git a/deps/LIEF/src/MachO/ParserConfig.cpp b/deps/LIEF/src/MachO/ParserConfig.cpp
index 4c73659e06d..7887b583e7f 100644
--- a/deps/LIEF/src/MachO/ParserConfig.cpp
+++ b/deps/LIEF/src/MachO/ParserConfig.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -15,41 +15,40 @@
  */
 #include "LIEF/MachO/ParserConfig.hpp"

-namespace LIEF {
-namespace MachO {
+
+namespace LIEF::MachO {

 ParserConfig ParserConfig::deep() {
   ParserConfig conf;
-  conf.parse_dyld_exports  = true;
+  conf.parse_dyld_exports = true;
   conf.parse_dyld_bindings = true;
-  conf.parse_dyld_rebases  = true;
-  conf.fix_from_memory     = true;
+  conf.parse_dyld_rebases = true;
+  conf.fix_from_memory = true;
   return conf;
 }

 ParserConfig ParserConfig::quick() {
   ParserConfig conf;
-  conf.parse_dyld_exports  = false;
+  conf.parse_dyld_exports = false;
   conf.parse_dyld_bindings = false;
-  conf.parse_dyld_rebases  = false;
-  conf.fix_from_memory     = false;
+  conf.parse_dyld_rebases = false;
+  conf.fix_from_memory = false;
   return conf;
 }


 ParserConfig& ParserConfig::full_dyldinfo(bool flag) {
   if (flag) {
-    parse_dyld_exports  = true;
+    parse_dyld_exports = true;
     parse_dyld_bindings = true;
-    parse_dyld_rebases  = true;
+    parse_dyld_rebases = true;
   } else {
-    parse_dyld_exports  = false;
+    parse_dyld_exports = false;
     parse_dyld_bindings = false;
-    parse_dyld_rebases  = false;
+    parse_dyld_rebases = false;
   }
   return *this;
 }


-} //namespace MachO
-}
+} // namespace LIEF::MachO
diff --git a/deps/LIEF/src/MachO/RPathCommand.cpp b/deps/LIEF/src/MachO/RPathCommand.cpp
index bad780cc674..ca7200942e1 100644
--- a/deps/LIEF/src/MachO/RPathCommand.cpp
+++ b/deps/LIEF/src/MachO/RPathCommand.cpp
@@ -1,5 +1,5 @@
 /* Copyright 2017 - 2021 J.Rieck (based on R. Thomas's work)
- * Copyright 2017 - 2025 Quarkslab
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -19,21 +19,20 @@
 #include "LIEF/MachO/RPathCommand.hpp"
 #include "MachO/Structures.hpp"

-namespace LIEF {
-namespace MachO {
+
+namespace LIEF::MachO {

 RPathCommand::RPathCommand(std::string path) :
   LoadCommand::LoadCommand(LoadCommand::TYPE::RPATH, 0),
-  path_(std::move(path))
-{
-  size_ = align(sizeof(details::rpath_command) + path_.size() + 1, sizeof(uint64_t));
+  path_(std::move(path)) {
+  size_ =
+      align(sizeof(details::rpath_command) + path_.size() + 1, sizeof(uint64_t));
   original_data_.resize(size_);
 }

 RPathCommand::RPathCommand(const details::rpath_command& rpath) :
   LoadCommand::LoadCommand{LoadCommand::TYPE(rpath.cmd), rpath.cmdsize},
-  path_offset_(rpath.path)
-{}
+  path_offset_(rpath.path) {}

 void RPathCommand::accept(Visitor& visitor) const {
   visitor.visit(*this);
@@ -47,4 +46,3 @@ std::ostream& RPathCommand::print(std::ostream& os) const {


 }
-}
diff --git a/deps/LIEF/src/MachO/Relocation.cpp b/deps/LIEF/src/MachO/Relocation.cpp
index 3b676c137ae..182ac8c6fcd 100644
--- a/deps/LIEF/src/MachO/Relocation.cpp
+++ b/deps/LIEF/src/MachO/Relocation.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -23,26 +23,25 @@
 #include "LIEF/MachO/EnumToString.hpp"
 #include "frozen.hpp"

-namespace LIEF {
-namespace MachO {
+
+namespace LIEF::MachO {

 Relocation::Relocation(const Relocation& other) :
   LIEF::Relocation{other},
   type_{other.type_},
-  architecture_{other.architecture_}
-{}
+  architecture_{other.architecture_} {}

-Relocation::Relocation(uint64_t address, uint8_t type) {
+Relocation::Relocation(uint64_t address, uint8_t type) :
+  type_(type) {
   address_ = address;
-  type_    = type;
 }

 Relocation& Relocation::operator=(const Relocation& other) {
   if (&other != this) {
-    /* Do not copy pointer as they could be not bind to the same Binary */
-    address_      = other.address_;
-    size_         = other.size_;
-    type_         = other.type_;
+    /* Do not copy pointers as they could be bound to a different Binary */
+    address_ = other.address_;
+    size_ = other.size_;
+    type_ = other.type_;
     architecture_ = other.architecture_;
   }
   return *this;
@@ -50,11 +49,11 @@ Relocation& Relocation::operator=(const Relocation& other) {
 void Relocation::swap(Relocation& other) noexcept {
   LIEF::Relocation::swap(other);

-  std::swap(symbol_,       other.symbol_);
-  std::swap(type_,         other.type_);
+  std::swap(symbol_, other.symbol_);
+  std::swap(type_, other.type_);
   std::swap(architecture_, other.architecture_);
-  std::swap(section_,      other.section_);
-  std::swap(segment_,      other.segment_);
+  std::swap(section_, other.section_);
+  std::swap(segment_, other.segment_);
 }

 void Relocation::type(uint8_t type) {
@@ -84,11 +83,9 @@ std::ostream& Relocation::print(std::ostream& os) const {
   std::string segment_section_name;
   if (!section_name.empty() && !segment_name.empty()) {
     segment_section_name = segment_name + '.' + section_name;
-  }
-  else if (!segment_name.empty()) {
+  } else if (!segment_name.empty()) {
     segment_section_name = segment_name;
-  }
-  else if (!section_name.empty()) {
+  } else if (!section_name.empty()) {
     segment_section_name = section_name;
   }

@@ -115,8 +112,7 @@ std::ostream& Relocation::print(std::ostream& os) const {
         relocation_type = to_string(PPC_RELOCATION(type()));
         break;

-      default:
-        relocation_type = std::to_string(type());
+      default: relocation_type = std::to_string(type());
     }
   }

@@ -124,12 +120,10 @@ std::ostream& Relocation::print(std::ostream& os) const {
     relocation_type = to_string(DyldInfo::REBASE_TYPE(type()));
   }

-  os << fmt::format(
-    "address=0x{:x}, type={}, size={}, origin={} ",
-    address(), relocation_type, size(), to_string(origin())
-  );
+  os << fmt::format("address={:#x}, type={}, size={}, origin={} ", address(),
+                    relocation_type, size(), to_string(origin()));
   if (!segment_section_name.empty()) {
-      os << segment_section_name;
+    os << segment_section_name;
   } else {
     if (!section_name.empty()) {
       os << section_name;
@@ -148,14 +142,14 @@ std::ostream& operator<<(std::ostream& os, const Relocation& reloc) {
   return reloc.print(os);
 }
 const char* to_string(Relocation::ORIGIN e) {
-  #define ENTRY(X) std::pair(Relocation::ORIGIN::X, #X)
-  STRING_MAP enums2str {
-    ENTRY(UNKNOWN),
-    ENTRY(DYLDINFO),
-    ENTRY(RELOC_TABLE),
-    ENTRY(CHAINED_FIXUPS),
+#define ENTRY(X) std::pair(Relocation::ORIGIN::X, #X)
+  STRING_MAP enums2str{
+      ENTRY(UNKNOWN),
+      ENTRY(DYLDINFO),
+      ENTRY(RELOC_TABLE),
+      ENTRY(CHAINED_FIXUPS),
   };
-  #undef ENTRY
+#undef ENTRY

   if (auto it = enums2str.find(e); it != enums2str.end()) {
     return it->second;
@@ -164,4 +158,3 @@ const char* to_string(Relocation::ORIGIN e) {
 }

 }
-}
diff --git a/deps/LIEF/src/MachO/RelocationDyld.cpp b/deps/LIEF/src/MachO/RelocationDyld.cpp
index 241538a3d04..96d618ad7cb 100644
--- a/deps/LIEF/src/MachO/RelocationDyld.cpp
+++ b/deps/LIEF/src/MachO/RelocationDyld.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -17,8 +17,8 @@
 #include "LIEF/MachO/RelocationDyld.hpp"
 #include "LIEF/MachO/DyldInfo.hpp"

-namespace LIEF {
-namespace MachO {
+
+namespace LIEF::MachO {

 bool RelocationDyld::is_pc_relative() const {
   return DyldInfo::REBASE_TYPE(type()) == DyldInfo::REBASE_TYPE::TEXT_PCREL32;
@@ -60,4 +60,3 @@ bool RelocationDyld::operator>(const RelocationDyld& rhs) const {
 }

 }
-}
diff --git a/deps/LIEF/src/MachO/RelocationFixup.cpp b/deps/LIEF/src/MachO/RelocationFixup.cpp
index 8eb0f2be5f4..2fd776c7223 100644
--- a/deps/LIEF/src/MachO/RelocationFixup.cpp
+++ b/deps/LIEF/src/MachO/RelocationFixup.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -21,55 +21,79 @@
 #include "LIEF/MachO/RelocationFixup.hpp"
 #include "MachO/ChainedFixup.hpp"

-namespace LIEF {
-namespace MachO {
+
+namespace LIEF::MachO {

 inline uint64_t unpack_target(const details::dyld_chained_ptr_64_rebase& rebase) {
-  details::dyld_chained_ptr_generic64 value;
+  details::dyld_chained_ptr_generic64 value{};
   value.rebase = rebase;
   return value.unpack_target();
 }

-inline uint64_t unpack_target(const details::dyld_chained_ptr_arm64e_rebase& rebase) {
-  details::dyld_chained_ptr_arm64e value;
+inline uint64_t
+    unpack_target(const details::dyld_chained_ptr_arm64e_rebase& rebase) {
+  details::dyld_chained_ptr_arm64e value{};
   value.rebase = rebase;
   return value.unpack_target();
 }

 RelocationFixup::~RelocationFixup() {
   switch (rtypes_) {
-    case REBASE_TYPES::ARM64E_REBASE:      delete arm64_rebase_;           break;
-    case REBASE_TYPES::ARM64E_AUTH_REBASE: delete arm64_auth_rebase_;      break;
-    case REBASE_TYPES::PTR64_REBASE:       delete p64_rebase_;             break;
-    case REBASE_TYPES::PTR32_REBASE:       delete p32_rebase_;             break;
-    case REBASE_TYPES::SEGMENTED:          delete segmented_rebase_;       break;
-    case REBASE_TYPES::AUTH_SEGMENTED:     delete auth_segmented_rebase_;  break;
-    case REBASE_TYPES::UNKNOWN: {}
+    case REBASE_TYPES::ARM64E_REBASE: delete arm64_rebase_; break;
+    case REBASE_TYPES::ARM64E_AUTH_REBASE: delete arm64_auth_rebase_; break;
+    case REBASE_TYPES::PTR64_REBASE: delete p64_rebase_; break;
+    case REBASE_TYPES::PTR32_REBASE: delete p32_rebase_; break;
+    case REBASE_TYPES::SEGMENTED: delete segmented_rebase_; break;
+    case REBASE_TYPES::AUTH_SEGMENTED: delete auth_segmented_rebase_; break;
+    case REBASE_TYPES::UNKNOWN:
+    {
+    }
   }
 }

 RelocationFixup::RelocationFixup(DYLD_CHAINED_PTR_FORMAT fmt, uint64_t imagebase) :
   ptr_fmt_{fmt},
-  imagebase_{imagebase}
-{}
+  imagebase_{imagebase} {}

 RelocationFixup& RelocationFixup::operator=(const RelocationFixup& other) {
   if (this == &other) {
     return *this;
   }
-  ptr_fmt_   = other.ptr_fmt_;
+  ptr_fmt_ = other.ptr_fmt_;
   imagebase_ = other.imagebase_;
-  offset_    = other.offset_;
-  rtypes_    = other.rtypes_;
+  offset_ = other.offset_;
+  rtypes_ = other.rtypes_;

   switch (rtypes_) {
-    case REBASE_TYPES::ARM64E_REBASE:      arm64_rebase_      = new details::dyld_chained_ptr_arm64e_rebase{*other.arm64_rebase_}; break;
-    case REBASE_TYPES::ARM64E_AUTH_REBASE: arm64_auth_rebase_ = new details::dyld_chained_ptr_arm64e_auth_rebase{*other.arm64_auth_rebase_}; break;
-    case REBASE_TYPES::PTR64_REBASE:       p64_rebase_        = new details::dyld_chained_ptr_64_rebase{*other.p64_rebase_}; break;
-    case REBASE_TYPES::PTR32_REBASE:       p32_rebase_        = new details::dyld_chained_ptr_32_rebase{*other.p32_rebase_}; break;
-    case REBASE_TYPES::SEGMENTED:          segmented_rebase_  = new details::dyld_chained_ptr_arm64e_segmented_rebase{*other.segmented_rebase_}; break;
-    case REBASE_TYPES::AUTH_SEGMENTED:     auth_segmented_rebase_  = new details::dyld_chained_ptr_arm64e_auth_segmented_rebase{*other.auth_segmented_rebase_}; break;
-    case REBASE_TYPES::UNKNOWN: {}
+    case REBASE_TYPES::ARM64E_REBASE:
+      arm64_rebase_ =
+          new details::dyld_chained_ptr_arm64e_rebase{*other.arm64_rebase_};
+      break;
+    case REBASE_TYPES::ARM64E_AUTH_REBASE:
+      arm64_auth_rebase_ = new details::dyld_chained_ptr_arm64e_auth_rebase{
+          *other.arm64_auth_rebase_
+      };
+      break;
+    case REBASE_TYPES::PTR64_REBASE:
+      p64_rebase_ = new details::dyld_chained_ptr_64_rebase{*other.p64_rebase_};
+      break;
+    case REBASE_TYPES::PTR32_REBASE:
+      p32_rebase_ = new details::dyld_chained_ptr_32_rebase{*other.p32_rebase_};
+      break;
+    case REBASE_TYPES::SEGMENTED:
+      segmented_rebase_ = new details::dyld_chained_ptr_arm64e_segmented_rebase{
+          *other.segmented_rebase_
+      };
+      break;
+    case REBASE_TYPES::AUTH_SEGMENTED:
+      auth_segmented_rebase_ =
+          new details::dyld_chained_ptr_arm64e_auth_segmented_rebase{
+              *other.auth_segmented_rebase_
+      };
+      break;
+    case REBASE_TYPES::UNKNOWN:
+    {
+    }
   }
   return *this;
 }
@@ -79,16 +103,37 @@ RelocationFixup::RelocationFixup(const RelocationFixup& other) :
   ptr_fmt_{other.ptr_fmt_},
   imagebase_{other.imagebase_},
   offset_{other.offset_},
-  rtypes_{other.rtypes_}
-{
+  rtypes_{other.rtypes_} {
   switch (rtypes_) {
-    case REBASE_TYPES::ARM64E_REBASE:      arm64_rebase_      = new details::dyld_chained_ptr_arm64e_rebase{*other.arm64_rebase_}; break;
-    case REBASE_TYPES::ARM64E_AUTH_REBASE: arm64_auth_rebase_ = new details::dyld_chained_ptr_arm64e_auth_rebase{*other.arm64_auth_rebase_}; break;
-    case REBASE_TYPES::PTR64_REBASE:       p64_rebase_        = new details::dyld_chained_ptr_64_rebase{*other.p64_rebase_}; break;
-    case REBASE_TYPES::PTR32_REBASE:       p32_rebase_        = new details::dyld_chained_ptr_32_rebase{*other.p32_rebase_}; break;
-    case REBASE_TYPES::SEGMENTED:          segmented_rebase_  = new details::dyld_chained_ptr_arm64e_segmented_rebase{*other.segmented_rebase_}; break;
-    case REBASE_TYPES::AUTH_SEGMENTED:     auth_segmented_rebase_ = new details::dyld_chained_ptr_arm64e_auth_segmented_rebase{*other.auth_segmented_rebase_}; break;
-    case REBASE_TYPES::UNKNOWN: {}
+    case REBASE_TYPES::ARM64E_REBASE:
+      arm64_rebase_ =
+          new details::dyld_chained_ptr_arm64e_rebase{*other.arm64_rebase_};
+      break;
+    case REBASE_TYPES::ARM64E_AUTH_REBASE:
+      arm64_auth_rebase_ = new details::dyld_chained_ptr_arm64e_auth_rebase{
+          *other.arm64_auth_rebase_
+      };
+      break;
+    case REBASE_TYPES::PTR64_REBASE:
+      p64_rebase_ = new details::dyld_chained_ptr_64_rebase{*other.p64_rebase_};
+      break;
+    case REBASE_TYPES::PTR32_REBASE:
+      p32_rebase_ = new details::dyld_chained_ptr_32_rebase{*other.p32_rebase_};
+      break;
+    case REBASE_TYPES::SEGMENTED:
+      segmented_rebase_ = new details::dyld_chained_ptr_arm64e_segmented_rebase{
+          *other.segmented_rebase_
+      };
+      break;
+    case REBASE_TYPES::AUTH_SEGMENTED:
+      auth_segmented_rebase_ =
+          new details::dyld_chained_ptr_arm64e_auth_segmented_rebase{
+              *other.auth_segmented_rebase_
+      };
+      break;
+    case REBASE_TYPES::UNKNOWN:
+    {
+    }
   }
 }

@@ -99,7 +144,7 @@ void RelocationFixup::accept(Visitor& visitor) const {


 std::ostream& RelocationFixup::print(std::ostream& os) const {
-  os << fmt::format("0x{:08x}: 0x{:08x}", address(), target());
+  os << fmt::format("{:#010x}: {:#010x}", address(), target());
   if (const Symbol* sym = symbol()) {
     os << fmt::format("({})", sym->name());
   }
@@ -111,43 +156,43 @@ std::ostream& RelocationFixup::print(std::ostream& os) const {
 uint64_t RelocationFixup::target() const {
   switch (rtypes_) {
     case REBASE_TYPES::ARM64E_REBASE:
-      {
-        return imagebase_ + unpack_target(*arm64_rebase_);
-      }
+    {
+      return imagebase_ + unpack_target(*arm64_rebase_);
+    }

     case REBASE_TYPES::ARM64E_AUTH_REBASE:
-      {
-        return imagebase_ + arm64_auth_rebase_->target;
-      }
+    {
+      return imagebase_ + arm64_auth_rebase_->target;
+    }

     case REBASE_TYPES::PTR64_REBASE:
-      {
-        return ptr_fmt_ == DYLD_CHAINED_PTR_FORMAT::PTR_64 ?
-                                        unpack_target(*p64_rebase_) :
-                           imagebase_ + unpack_target(*p64_rebase_);
-      }
+    {
+      return ptr_fmt_ == DYLD_CHAINED_PTR_FORMAT::PTR_64 ?
+                 unpack_target(*p64_rebase_) :
+                 imagebase_ + unpack_target(*p64_rebase_);
+    }

     case REBASE_TYPES::PTR32_REBASE:
-      {
-        /* We tricked the parser to make sure it covers the case
-         * where fixup.rebase.target > seg_info.max_valid_pointer
-         */
-        return imagebase_ + p32_rebase_->target;
-      }
+    {
+      /* We tricked the parser to make sure it covers the case
+       * where fixup.rebase.target > seg_info.max_valid_pointer
+       */
+      return imagebase_ + p32_rebase_->target;
+    }

     case REBASE_TYPES::SEGMENTED:
     case REBASE_TYPES::AUTH_SEGMENTED:
-      {
-        LIEF_ERR("Segmented rebase is not supported");
-        return -1llu;
-      }
+    {
+      LIEF_ERR("Segmented rebase is not supported");
+      return -1llu;
+    }


     case REBASE_TYPES::UNKNOWN:
-      {
-        LIEF_ERR("Can't get target: unknown rebase type");
-        break;
-      }
+    {
+      LIEF_ERR("Unknown rebase type");
+      break;
+    }
   }
   return 0;
 }
@@ -155,98 +200,80 @@ uint64_t RelocationFixup::target() const {
 void RelocationFixup::target(uint64_t target) {
   switch (rtypes_) {
     case REBASE_TYPES::ARM64E_REBASE:
-      {
-        uint64_t rel_target = target;
-        if (rel_target >= imagebase_) {
-          rel_target -= imagebase_;
-        }
-        pack_target(*arm64_rebase_, rel_target);
-        break;
+    {
+      uint64_t rel_target = target;
+      if (rel_target >= imagebase_) {
+        rel_target -= imagebase_;
       }
+      pack_target(*arm64_rebase_, rel_target);
+      break;
+    }

     case REBASE_TYPES::ARM64E_AUTH_REBASE:
-      {
-        uint64_t rel_target = target;
-        if (rel_target >= imagebase_) {
-          rel_target -= imagebase_;
-        }
-        arm64_auth_rebase_->target = rel_target;
-        break;
+    {
+      uint64_t rel_target = target;
+      if (rel_target >= imagebase_) {
+        rel_target -= imagebase_;
       }
+      arm64_auth_rebase_->target = rel_target;
+      break;
+    }

     case REBASE_TYPES::PTR64_REBASE:
+    {
+      uint64_t rel_target = target;
+      if (ptr_fmt_ == DYLD_CHAINED_PTR_FORMAT::PTR_64_OFFSET &&
+          rel_target >= imagebase_)
       {
-        uint64_t rel_target = target;
-        if (ptr_fmt_ == DYLD_CHAINED_PTR_FORMAT::PTR_64_OFFSET && rel_target >= imagebase_) {
-          rel_target -= imagebase_;
-        }
-        pack_target(*p64_rebase_, rel_target);
-        break;
+        rel_target -= imagebase_;
       }
+      pack_target(*p64_rebase_, rel_target);
+      break;
+    }

     case REBASE_TYPES::PTR32_REBASE:
-      {
-        LIEF_WARN("Updating a dyld_chained_ptr_generic32 is not supported yet");
-        return;
-      }
+    {
+      LIEF_WARN("Updating dyld_chained_ptr_generic32 is not yet supported");
+      return;
+    }

     case REBASE_TYPES::SEGMENTED:
     case REBASE_TYPES::AUTH_SEGMENTED:
-      {
-        LIEF_ERR("Segmented rebase is not supported");
-        return;
-      }
+    {
+      LIEF_ERR("Segmented rebase is not supported");
+      return;
+    }

     case REBASE_TYPES::UNKNOWN:
-      {
-        LIEF_ERR("Can't set target: unknown rebase type");
-        break;
-      }
+    {
+      LIEF_ERR("Unknown rebase type");
+      break;
+    }
   }
 }

 uint32_t RelocationFixup::next() const {
   switch (rtypes_) {
-    case REBASE_TYPES::ARM64E_REBASE:
-      return arm64_rebase_->next;
-    case REBASE_TYPES::ARM64E_AUTH_REBASE:
-      return arm64_auth_rebase_->next;
-    case REBASE_TYPES::PTR64_REBASE:
-      return p64_rebase_->next;
-    case REBASE_TYPES::PTR32_REBASE:
-      return p32_rebase_->next;
-    case REBASE_TYPES::SEGMENTED:
-      return segmented_rebase_->next;
-    case REBASE_TYPES::AUTH_SEGMENTED:
-      return auth_segmented_rebase_->next;
-    case REBASE_TYPES::UNKNOWN:
-      return 0;
+    case REBASE_TYPES::ARM64E_REBASE: return arm64_rebase_->next;
+    case REBASE_TYPES::ARM64E_AUTH_REBASE: return arm64_auth_rebase_->next;
+    case REBASE_TYPES::PTR64_REBASE: return p64_rebase_->next;
+    case REBASE_TYPES::PTR32_REBASE: return p32_rebase_->next;
+    case REBASE_TYPES::SEGMENTED: return segmented_rebase_->next;
+    case REBASE_TYPES::AUTH_SEGMENTED: return auth_segmented_rebase_->next;
+    case REBASE_TYPES::UNKNOWN: return 0;
   }
   return 0;
 }

 void RelocationFixup::next(uint32_t value) {
   switch (rtypes_) {
-    case REBASE_TYPES::ARM64E_REBASE:
-      arm64_rebase_->next = value;
-      break;
-    case REBASE_TYPES::ARM64E_AUTH_REBASE:
-      arm64_auth_rebase_->next = value;
-      break;
-    case REBASE_TYPES::PTR64_REBASE:
-      p64_rebase_->next = value;
-      break;
-    case REBASE_TYPES::PTR32_REBASE:
-      p32_rebase_->next = value;
-      break;
-    case REBASE_TYPES::SEGMENTED:
-      segmented_rebase_->next = value;
-      break;
-    case REBASE_TYPES::AUTH_SEGMENTED:
-      auth_segmented_rebase_->next = value;
-      break;
-    case REBASE_TYPES::UNKNOWN:
-      return;
+    case REBASE_TYPES::ARM64E_REBASE: arm64_rebase_->next = value; break;
+    case REBASE_TYPES::ARM64E_AUTH_REBASE: arm64_auth_rebase_->next = value; break;
+    case REBASE_TYPES::PTR64_REBASE: p64_rebase_->next = value; break;
+    case REBASE_TYPES::PTR32_REBASE: p32_rebase_->next = value; break;
+    case REBASE_TYPES::SEGMENTED: segmented_rebase_->next = value; break;
+    case REBASE_TYPES::AUTH_SEGMENTED: auth_segmented_rebase_->next = value; break;
+    case REBASE_TYPES::UNKNOWN: return;
   }
   return;
 }
@@ -256,7 +283,9 @@ void RelocationFixup::set(const details::dyld_chained_ptr_arm64e_rebase& fixup)
   arm64_rebase_ = new details::dyld_chained_ptr_arm64e_rebase(fixup);
 }

-void RelocationFixup::set(const details::dyld_chained_ptr_arm64e_auth_rebase& fixup) {
+void RelocationFixup::set(
+    const details::dyld_chained_ptr_arm64e_auth_rebase& fixup
+) {
   rtypes_ = REBASE_TYPES::ARM64E_AUTH_REBASE;
   arm64_auth_rebase_ = new details::dyld_chained_ptr_arm64e_auth_rebase(fixup);
 }
@@ -271,16 +300,20 @@ void RelocationFixup::set(const details::dyld_chained_ptr_32_rebase& fixup) {
   p32_rebase_ = new details::dyld_chained_ptr_32_rebase(fixup);
 }

-void RelocationFixup::set(const details::dyld_chained_ptr_arm64e_segmented_rebase& fixup) {
+void RelocationFixup::set(
+    const details::dyld_chained_ptr_arm64e_segmented_rebase& fixup
+) {
   rtypes_ = REBASE_TYPES::SEGMENTED;
   segmented_rebase_ = new details::dyld_chained_ptr_arm64e_segmented_rebase(fixup);
 }

-void RelocationFixup::set(const details::dyld_chained_ptr_arm64e_auth_segmented_rebase& fixup) {
+void RelocationFixup::set(
+    const details::dyld_chained_ptr_arm64e_auth_segmented_rebase& fixup
+) {
   rtypes_ = REBASE_TYPES::AUTH_SEGMENTED;
-  auth_segmented_rebase_ = new details::dyld_chained_ptr_arm64e_auth_segmented_rebase(fixup);
+  auth_segmented_rebase_ =
+      new details::dyld_chained_ptr_arm64e_auth_segmented_rebase(fixup);
 }


 }
-}
diff --git a/deps/LIEF/src/MachO/RelocationObject.cpp b/deps/LIEF/src/MachO/RelocationObject.cpp
index 0b2053a8a09..7ee0f63515f 100644
--- a/deps/LIEF/src/MachO/RelocationObject.cpp
+++ b/deps/LIEF/src/MachO/RelocationObject.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -20,33 +20,33 @@
 #include "LIEF/MachO/Section.hpp"
 #include "MachO/Structures.hpp"

-namespace LIEF {
-namespace MachO {
+
+namespace LIEF::MachO {

 RelocationObject::RelocationObject(const details::relocation_info& relocinfo) :
-  is_pcrel_{static_cast<bool>(relocinfo.r_pcrel)}
-{
+  is_pcrel_{static_cast<bool>(relocinfo.r_pcrel)} {
   address_ = static_cast<uint32_t>(relocinfo.r_address);
-  size_    = static_cast<uint8_t>(relocinfo.r_length);
-  type_    = static_cast<uint8_t>(relocinfo.r_type);
+  size_ = static_cast<uint8_t>(relocinfo.r_length);
+  type_ = static_cast<uint8_t>(relocinfo.r_type);
 }

-RelocationObject::RelocationObject(const details::scattered_relocation_info& scattered_relocinfo) :
+RelocationObject::RelocationObject(
+    const details::scattered_relocation_info& scattered_relocinfo
+) :
   is_pcrel_{static_cast<bool>(scattered_relocinfo.r_pcrel)},
   is_scattered_{true},
-  value_{scattered_relocinfo.r_value}
-{
+  value_{scattered_relocinfo.r_value} {
   address_ = scattered_relocinfo.r_address;
-  size_    = static_cast<uint8_t>(scattered_relocinfo.r_length);
-  type_    = static_cast<uint8_t>(scattered_relocinfo.r_type);
+  size_ = static_cast<uint8_t>(scattered_relocinfo.r_length);
+  type_ = static_cast<uint8_t>(scattered_relocinfo.r_type);
 }

 void RelocationObject::swap(RelocationObject& other) noexcept {
   Relocation::swap(other);

-  std::swap(is_pcrel_,     other.is_pcrel_);
+  std::swap(is_pcrel_, other.is_pcrel_);
   std::swap(is_scattered_, other.is_scattered_);
-  std::swap(value_,        other.value_);
+  std::swap(value_, other.value_);
 }

 size_t RelocationObject::size() const {
@@ -68,24 +68,24 @@ uint64_t RelocationObject::address() const {

 int32_t RelocationObject::value() const {
   if (!is_scattered()) {
-    LIEF_ERR("This relocation is not a 'scattered' one");
+    LIEF_ERR("Relocation is not scattered");
     return -1;
   }
   return value_;
 }

 void RelocationObject::size(size_t size) {
-  switch(size) {
-    case 8:  size_ = 0; break;
+  switch (size) {
+    case 8: size_ = 0; break;
     case 16: size_ = 1; break;
     case 32: size_ = 2; break;
-    default: LIEF_ERR("Size must not be bigger than 32 bits");
+    default: LIEF_ERR("Size exceeds 32 bits");
   }
 }

 void RelocationObject::value(int32_t value) {
   if (!is_scattered()) {
-    LIEF_ERR("This relocation is not a 'scattered' one");
+    LIEF_ERR("Relocation is not scattered");
     return;
   }
   value_ = value;
@@ -96,4 +96,3 @@ void RelocationObject::accept(Visitor& visitor) const {
 }

 }
-}
diff --git a/deps/LIEF/src/MachO/Routine.cpp b/deps/LIEF/src/MachO/Routine.cpp
index ea98d07a72c..3354b150d1a 100644
--- a/deps/LIEF/src/MachO/Routine.cpp
+++ b/deps/LIEF/src/MachO/Routine.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -21,8 +21,8 @@

 #include <spdlog/fmt/fmt.h>

-namespace LIEF {
-namespace MachO {
+
+namespace LIEF::MachO {

 template<class T>
 LIEF_LOCAL Routine::Routine(const T& cmd) :
@@ -34,8 +34,7 @@ LIEF_LOCAL Routine::Routine(const T& cmd) :
   reserved3_(cmd.reserved3),
   reserved4_(cmd.reserved4),
   reserved5_(cmd.reserved5),
-  reserved6_(cmd.reserved6)
-{}
+  reserved6_(cmd.reserved6) {}

 void Routine::accept(Visitor& visitor) const {
   visitor.visit(*this);
@@ -43,8 +42,8 @@ void Routine::accept(Visitor& visitor) const {

 std::ostream& Routine::print(std::ostream& os) const {
   LoadCommand::print(os) << '\n';
-  os << fmt::format("init_address=0x{:06x} init_module=0x{:06x}",
-                    init_address(), init_module());
+  os << fmt::format("init_address={:#08x} init_module={:#08x}", init_address(),
+                    init_module());
   return os;
 }

@@ -52,4 +51,3 @@ template Routine::Routine(const details::routines_command_32&);
 template Routine::Routine(const details::routines_command_64&);

 }
-}
diff --git a/deps/LIEF/src/MachO/Section.cpp b/deps/LIEF/src/MachO/Section.cpp
index aa56b81b60a..96c24617f75 100644
--- a/deps/LIEF/src/MachO/Section.cpp
+++ b/deps/LIEF/src/MachO/Section.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -27,57 +27,71 @@
 #include "LIEF/MachO/Section.hpp"
 #include "LIEF/MachO/Relocation.hpp"
 #include "LIEF/MachO/SegmentCommand.hpp"
+#include "LIEF/MachO/ThreadLocalVariables.hpp"
 #include "MachO/Structures.hpp"

 FMT_FORMATTER(LIEF::MachO::Section::FLAGS, LIEF::MachO::to_string);
 FMT_FORMATTER(LIEF::MachO::Section::TYPE, LIEF::MachO::to_string);

-namespace LIEF {
-namespace MachO {
+
+namespace LIEF::MachO {

 static constexpr auto ARRAY_FLAGS = {
-  Section::FLAGS::PURE_INSTRUCTIONS,
-  Section::FLAGS::NO_TOC,
-  Section::FLAGS::STRIP_STATIC_SYMS,
-  Section::FLAGS::NO_DEAD_STRIP,
-  Section::FLAGS::LIVE_SUPPORT,
-  Section::FLAGS::SELF_MODIFYING_CODE,
-  Section::FLAGS::DEBUG_INFO,
-  Section::FLAGS::SOME_INSTRUCTIONS,
-  Section::FLAGS::EXT_RELOC,
-  Section::FLAGS::LOC_RELOC,
+    Section::FLAGS::PURE_INSTRUCTIONS, Section::FLAGS::NO_TOC,
+    Section::FLAGS::STRIP_STATIC_SYMS, Section::FLAGS::NO_DEAD_STRIP,
+    Section::FLAGS::LIVE_SUPPORT,      Section::FLAGS::SELF_MODIFYING_CODE,
+    Section::FLAGS::DEBUG_INFO,        Section::FLAGS::SOME_INSTRUCTIONS,
+    Section::FLAGS::EXT_RELOC,         Section::FLAGS::LOC_RELOC,
 };

+template<class T>
+static std::unique_ptr<Section> create_from_raw(const T& raw) {
+  auto type = (Section::TYPE)(raw.flags & Section::TYPE_MASK);
+  switch (type) {
+    case Section::TYPE::THREAD_LOCAL_VARIABLES:
+      return std::make_unique<ThreadLocalVariables>(raw);
+    default: return std::make_unique<Section>(raw);
+  }
+}
+
 Section::Section() = default;
 Section::~Section() = default;

-Section& Section::operator=(Section other) {
-  swap(other);
-  return *this;
-}
-Section::Section(std::string name) {
-  this->name(std::move(name));
-}
+Section::Section(Section&&) = default;
+Section& Section::operator=(Section&&) = default;

-Section::Section(std::string name, content_t content) {
-  this->name(std::move(name));
-  this->content(std::move(content));
-}
+Section& Section::operator=(const Section& copy) {
+  if (this == &copy) {
+    return *this;
+  }
+  LIEF::Section::operator=(copy);
+
+  segment_name_ = copy.segment_name_;
+  original_size_ = copy.original_size_;
+  align_ = copy.align_;
+  relocations_offset_ = copy.relocations_offset_;
+  nbof_relocations_ = copy.nbof_relocations_;
+  flags_ = copy.flags_;
+  reserved1_ = copy.reserved1_;
+  reserved2_ = copy.reserved2_;
+  reserved3_ = copy.reserved3_;
+  content_ = copy.content_;

-Section::Section(const Section& other) :
-  LIEF::Section{other},
-  segment_name_{other.segment_name_},
-  original_size_{other.original_size_},
-  align_{other.align_},
-  relocations_offset_{other.relocations_offset_},
-  nbof_relocations_{other.nbof_relocations_},
-  flags_{other.flags_},
-  reserved1_{other.reserved1_},
-  reserved2_{other.reserved2_},
-  reserved3_{other.reserved3_},
-  content_{other.content_}
-{}
+  return *this;
+}

+Section::Section(const Section& copy) :
+  LIEF::Section{copy},
+  segment_name_(copy.segment_name_),
+  original_size_(copy.original_size_),
+  align_(copy.align_),
+  relocations_offset_(copy.relocations_offset_),
+  nbof_relocations_(copy.nbof_relocations_),
+  flags_(copy.flags_),
+  reserved1_(copy.reserved1_),
+  reserved2_(copy.reserved2_),
+  reserved3_(copy.reserved3_),
+  content_(copy.content_) {}

 Section::Section(const details::section_32& sec) :
   segment_name_{sec.segname, sizeof(sec.sectname)},
@@ -87,14 +101,13 @@ Section::Section(const details::section_32& sec) :
   nbof_relocations_{sec.nreloc},
   flags_{sec.flags},
   reserved1_{sec.reserved1},
-  reserved2_{sec.reserved2}
-{
-  name_            = {sec.sectname, sizeof(sec.sectname)};
-  size_            = sec.size;
-  offset_          = sec.offset;
+  reserved2_{sec.reserved2} {
+  name_ = {sec.sectname, sizeof(sec.sectname)};
+  size_ = sec.size;
+  offset_ = sec.offset;
   virtual_address_ = sec.addr;

-  name_         = name_.c_str();
+  name_ = name_.c_str();
   segment_name_ = segment_name_.c_str();
 }

@@ -107,36 +120,42 @@ Section::Section(const details::section_64& sec) :
   flags_{sec.flags},
   reserved1_{sec.reserved1},
   reserved2_{sec.reserved2},
-  reserved3_{sec.reserved3}
-{
-  name_            = {sec.sectname, sizeof(sec.sectname)};
-  size_            = sec.size;
-  offset_          = sec.offset;
+  reserved3_{sec.reserved3} {
+  name_ = {sec.sectname, sizeof(sec.sectname)};
+  size_ = sec.size;
+  offset_ = sec.offset;
   virtual_address_ = sec.addr;

-  name_         = name_.c_str();
+  name_ = name_.c_str();
   segment_name_ = segment_name_.c_str();
 }

+std::unique_ptr<Section> Section::create(const details::section_32& sec) {
+  return create_from_raw(sec);
+}

-void Section::swap(Section& other) noexcept {
-  std::swap(name_,            other.name_);
-  std::swap(virtual_address_, other.virtual_address_);
-  std::swap(size_,            other.size_);
-  std::swap(offset_,          other.offset_);
-
-  std::swap(segment_name_,        other.segment_name_);
-  std::swap(original_size_,       other.original_size_);
-  std::swap(align_,               other.align_);
-  std::swap(relocations_offset_,  other.relocations_offset_);
-  std::swap(nbof_relocations_,    other.nbof_relocations_);
-  std::swap(flags_,               other.flags_);
-  std::swap(reserved1_,           other.reserved1_);
-  std::swap(reserved2_,           other.reserved2_);
-  std::swap(reserved3_,           other.reserved3_);
-  std::swap(content_,             other.content_);
-  std::swap(segment_,             other.segment_);
-  std::swap(relocations_,         other.relocations_);
+std::unique_ptr<Section> Section::create(const details::section_64& sec) {
+  return create_from_raw(sec);
+}
+
+std::unique_ptr<Section> Section::create(std::string name,
+                                         const content_t& content, TYPE type) {
+  std::unique_ptr<Section> sec;
+  switch (type) {
+    case TYPE::THREAD_LOCAL_VARIABLES:
+      sec = std::make_unique<ThreadLocalVariables>();
+      break;
+    default: sec = std::unique_ptr<Section>(new Section{});
+  }
+
+  assert(sec != nullptr);
+
+  sec->name(std::move(name));
+
+  if (!content.empty()) {
+    sec->content(content);
+  }
+  return sec;
 }

 span<const uint8_t> Section::content() const {
@@ -156,9 +175,15 @@ span<const uint8_t> Section::content() const {
   if (relative_offset < 0) {
     relative_offset = virtual_address_ - segment_->virtual_address();
   }
+
+  if (relative_offset < 0) {
+    return {};
+  }
   span<const uint8_t> content = segment_->content();
-  if (relative_offset > (int64_t)content.size() || (relative_offset + size_) > content.size()) {
-    LIEF_ERR("Section's size is bigger than segment's size");
+  if (relative_offset > (int64_t)content.size() ||
+      (relative_offset + size_) > content.size())
+  {
+    LIEF_ERR("Section size exceeds segment size");
     return {};
   }
   return content.subspan(relative_offset, size_);
@@ -171,21 +196,22 @@ void Section::content(const content_t& data) {
   }

   if (size_ == 0 || offset_ == 0) { // bss section for instance
-    LIEF_ERR("Offset or size is null");
+    LIEF_ERR("Offset or size is zero");
     return;
   }

   uint64_t relative_offset = offset_ - segment_->file_offset();

-  span<uint8_t> content = segment_->writable_content();
+  span<uint8_t> content = segment_->content();

-  if (relative_offset > content.size() || (relative_offset + data.size()) > content.size()) {
-    LIEF_ERR("New data are bigger than the original one");
+  if (relative_offset > content.size() ||
+      (relative_offset + data.size()) > content.size())
+  {
+    LIEF_ERR("New data exceeds original size");
     return;
   }

-  std::move(std::begin(data), std::end(data),
-            content.data() + relative_offset);
+  std::move(data.begin(), data.end(), content.data() + relative_offset);
 }

 const std::string& Section::segment_name() const {
@@ -199,10 +225,9 @@ const std::string& Section::segment_name() const {
 std::vector<Section::FLAGS> Section::flags_list() const {
   std::vector<FLAGS> flags;

-  std::copy_if(
-      std::begin(ARRAY_FLAGS), std::end(ARRAY_FLAGS),
-      std::inserter(flags, std::begin(flags)),
-      [this] (FLAGS f) { return has(f); });
+  std::copy_if(ARRAY_FLAGS.begin(), ARRAY_FLAGS.end(),
+               std::inserter(flags, flags.begin()),
+               [this](FLAGS f) { return has(f); });

   return flags;
 }
@@ -223,12 +248,7 @@ void Section::add(FLAGS flag) {
 }

 void Section::remove(FLAGS flag) {
-  flags(raw_flags() & (~ uint32_t(flag)));
-}
-
-void Section::clear(uint8_t v) {
-  content_t clear(size(), v);
-  content(std::move(clear));
+  flags(raw_flags() & (~uint32_t(flag)));
 }

 void Section::accept(Visitor& visitor) const {
@@ -242,34 +262,28 @@ std::unique_ptr<SpanStream> Section::stream() const {
 std::ostream& operator<<(std::ostream& os, const Section& section) {
   const auto& flags = section.flags_list();
   os << fmt::format(
-    "name={}, segment={}, address=0x{:06x}, size=0x{:04x} "
-    "offset=0x{:06x}, align={}, type={}, reloc_offset={}, nb_reloc={} "
-    "reserved1={}, reserved2={}, reserved3={}, flags={}",
-    section.name(), section.segment_name(), section.address(),
-    section.size(), section.offset(), section.alignment(), section.type(),
-    section.relocation_offset(), section.numberof_relocations(),
-    section.reserved1(), section.reserved2(), section.reserved3(),
-    flags
+      "name={}, segment={}, address={:#08x}, size={:#06x} "
+      "offset={:#08x}, align={}, type={}, reloc_offset={}, nb_reloc={} "
+      "reserved1={}, reserved2={}, reserved3={}, flags={}",
+      section.name(), section.segment_name(), section.address(), section.size(),
+      section.offset(), section.alignment(), section.type(),
+      section.relocation_offset(), section.numberof_relocations(),
+      section.reserved1(), section.reserved2(), section.reserved3(), flags
   );
   return os;
 }


 const char* to_string(Section::FLAGS e) {
-  #define ENTRY(X) std::pair(Section::FLAGS::X, #X)
-  STRING_MAP enums2str {
-    ENTRY(PURE_INSTRUCTIONS),
-    ENTRY(NO_TOC),
-    ENTRY(STRIP_STATIC_SYMS),
-    ENTRY(NO_DEAD_STRIP),
-    ENTRY(LIVE_SUPPORT),
-    ENTRY(SELF_MODIFYING_CODE),
-    ENTRY(DEBUG_INFO),
-    ENTRY(SOME_INSTRUCTIONS),
-    ENTRY(EXT_RELOC),
-    ENTRY(LOC_RELOC),
+#define ENTRY(X) std::pair(Section::FLAGS::X, #X)
+  STRING_MAP enums2str{
+      ENTRY(PURE_INSTRUCTIONS), ENTRY(NO_TOC),
+      ENTRY(STRIP_STATIC_SYMS), ENTRY(NO_DEAD_STRIP),
+      ENTRY(LIVE_SUPPORT),      ENTRY(SELF_MODIFYING_CODE),
+      ENTRY(DEBUG_INFO),        ENTRY(SOME_INSTRUCTIONS),
+      ENTRY(EXT_RELOC),         ENTRY(LOC_RELOC),
   };
-  #undef ENTRY
+#undef ENTRY

   if (auto it = enums2str.find(e); it != enums2str.end()) {
     return it->second;
@@ -278,33 +292,33 @@ const char* to_string(Section::FLAGS e) {
 }

 const char* to_string(Section::TYPE e) {
-  #define ENTRY(X) std::pair(Section::TYPE::X, #X)
-  STRING_MAP enums2str {
-    ENTRY(REGULAR),
-    ENTRY(ZEROFILL),
-    ENTRY(CSTRING_LITERALS),
-    ENTRY(IS_4BYTE_LITERALS),
-    ENTRY(IS_8BYTE_LITERALS),
-    ENTRY(LITERAL_POINTERS),
-    ENTRY(NON_LAZY_SYMBOL_POINTERS),
-    ENTRY(LAZY_SYMBOL_POINTERS),
-    ENTRY(SYMBOL_STUBS),
-    ENTRY(MOD_INIT_FUNC_POINTERS),
-    ENTRY(MOD_TERM_FUNC_POINTERS),
-    ENTRY(COALESCED),
-    ENTRY(GB_ZEROFILL),
-    ENTRY(INTERPOSING),
-    ENTRY(IS_16BYTE_LITERALS),
-    ENTRY(DTRACE_DOF),
-    ENTRY(LAZY_DYLIB_SYMBOL_POINTERS),
-    ENTRY(THREAD_LOCAL_REGULAR),
-    ENTRY(THREAD_LOCAL_ZEROFILL),
-    ENTRY(THREAD_LOCAL_VARIABLES),
-    ENTRY(THREAD_LOCAL_VARIABLE_POINTERS),
-    ENTRY(THREAD_LOCAL_INIT_FUNCTION_POINTERS),
-    ENTRY(INIT_FUNC_OFFSETS),
+#define ENTRY(X) std::pair(Section::TYPE::X, #X)
+  STRING_MAP enums2str{
+      ENTRY(REGULAR),
+      ENTRY(ZEROFILL),
+      ENTRY(CSTRING_LITERALS),
+      ENTRY(IS_4BYTE_LITERALS),
+      ENTRY(IS_8BYTE_LITERALS),
+      ENTRY(LITERAL_POINTERS),
+      ENTRY(NON_LAZY_SYMBOL_POINTERS),
+      ENTRY(LAZY_SYMBOL_POINTERS),
+      ENTRY(SYMBOL_STUBS),
+      ENTRY(MOD_INIT_FUNC_POINTERS),
+      ENTRY(MOD_TERM_FUNC_POINTERS),
+      ENTRY(COALESCED),
+      ENTRY(GB_ZEROFILL),
+      ENTRY(INTERPOSING),
+      ENTRY(IS_16BYTE_LITERALS),
+      ENTRY(DTRACE_DOF),
+      ENTRY(LAZY_DYLIB_SYMBOL_POINTERS),
+      ENTRY(THREAD_LOCAL_REGULAR),
+      ENTRY(THREAD_LOCAL_ZEROFILL),
+      ENTRY(THREAD_LOCAL_VARIABLES),
+      ENTRY(THREAD_LOCAL_VARIABLE_POINTERS),
+      ENTRY(THREAD_LOCAL_INIT_FUNCTION_POINTERS),
+      ENTRY(INIT_FUNC_OFFSETS),
   };
-  #undef ENTRY
+#undef ENTRY

   if (auto it = enums2str.find(e); it != enums2str.end()) {
     return it->second;
@@ -312,5 +326,4 @@ const char* to_string(Section::TYPE e) {
   return "UNKNOWN";
 }

-} // namespace MachO
-} // namespace LIEF
+} // namespace LIEF::MachO
diff --git a/deps/LIEF/src/MachO/SegmentCommand.cpp b/deps/LIEF/src/MachO/SegmentCommand.cpp
index 243bcff0332..7c11eb9dfa4 100644
--- a/deps/LIEF/src/MachO/SegmentCommand.cpp
+++ b/deps/LIEF/src/MachO/SegmentCommand.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -14,6 +14,7 @@
  * limitations under the License.
  */
 #include <memory>
+#include <algorithm>

 #include "spdlog/fmt/fmt.h"
 #include "LIEF/Visitor.hpp"
@@ -24,20 +25,18 @@
 #include "LIEF/MachO/Relocation.hpp"
 #include "MachO/Structures.hpp"

-namespace LIEF {
-namespace MachO {
+
+namespace LIEF::MachO {

 SegmentCommand::SegmentCommand() = default;
 SegmentCommand::~SegmentCommand() = default;

 SegmentCommand::SegmentCommand(std::string name, content_t content) :
   name_(std::move(name)),
-  data_(std::move(content))
-{}
+  data_(std::move(content)) {}

 SegmentCommand::SegmentCommand(std::string name) :
-  name_(std::move(name))
-{}
+  name_(std::move(name)) {}

 SegmentCommand& SegmentCommand::operator=(SegmentCommand other) {
   swap(other);
@@ -55,25 +54,23 @@ SegmentCommand::SegmentCommand(const SegmentCommand& other) :
   init_protection_{other.init_protection_},
   nb_sections_{other.nb_sections_},
   flags_{other.flags_},
-  data_{other.data_}
-{
+  data_{other.data_} {

   for (const std::unique_ptr<Section>& section : other.sections_) {
-    auto new_section = std::make_unique<Section>(*section);
+    auto new_section = section->clone();
     new_section->segment_ = this;
     new_section->segment_name_ = name();
     sections_.push_back(std::move(new_section));
   }

   // TODO:
-  //for (Relocation* relocation : other.relocations_) {
+  // for (Relocation* relocation : other.relocations_) {
   //  Relocation* new_relocation = relocation->clone();
   //  //relocations_.push_back(new_relocation);
   //}
 }


-
 SegmentCommand::SegmentCommand(const details::segment_command_32& seg) :
   LoadCommand{LoadCommand::TYPE::SEGMENT, seg.cmdsize},
   name_{seg.segname, sizeof(seg.segname)},
@@ -84,8 +81,7 @@ SegmentCommand::SegmentCommand(const details::segment_command_32& seg) :
   max_protection_{seg.maxprot},
   init_protection_{seg.initprot},
   nb_sections_{seg.nsects},
-  flags_{seg.flags}
-{
+  flags_{seg.flags} {
   name_ = std::string{name_.c_str()};
 }

@@ -99,8 +95,7 @@ SegmentCommand::SegmentCommand(const details::segment_command_64& seg) :
   max_protection_{seg.maxprot},
   init_protection_{seg.initprot},
   nb_sections_{seg.nsects},
-  flags_{seg.flags}
-{
+  flags_{seg.flags} {
   name_ = std::string{name_.c_str()};
 }

@@ -108,23 +103,29 @@ void SegmentCommand::swap(SegmentCommand& other) noexcept {
   LoadCommand::swap(other);

   std::swap(virtual_address_, other.virtual_address_);
-  std::swap(virtual_size_,    other.virtual_size_);
-  std::swap(file_offset_,     other.file_offset_);
-  std::swap(file_size_,       other.file_size_);
-  std::swap(max_protection_,  other.max_protection_);
+  std::swap(virtual_size_, other.virtual_size_);
+  std::swap(file_offset_, other.file_offset_);
+  std::swap(file_size_, other.file_size_);
+  std::swap(max_protection_, other.max_protection_);
   std::swap(init_protection_, other.init_protection_);
-  std::swap(nb_sections_,     other.nb_sections_);
-  std::swap(flags_,           other.flags_);
-  std::swap(data_,            other.data_);
-  std::swap(sections_,        other.sections_);
-  std::swap(relocations_,     other.relocations_);
-  //std::swap(dyld_,            other.dyld_);
+  std::swap(nb_sections_, other.nb_sections_);
+  std::swap(flags_, other.flags_);
+  std::swap(data_, other.data_);
+  std::swap(sections_, other.sections_);
+  std::swap(relocations_, other.relocations_);
+  // std::swap(dyld_,            other.dyld_);
 }

 void SegmentCommand::content(SegmentCommand::content_t data) {
-  update_data([data = std::move(data)] (std::vector<uint8_t>& inner_data) mutable {
-                inner_data = std::move(data);
-              });
+  update_data([data = std::move(data)](std::vector<uint8_t>& inner_data) mutable {
+    // If the size is the same, we avoid the std::move that would dangle every
+    // span/iterator referencing this segment
+    if (data.size() == inner_data.size()) {
+      std::copy(data.begin(), data.end(), inner_data.begin());
+    } else {
+      inner_data = std::move(data);
+    }
+  });
 }

 void SegmentCommand::remove_all_sections() {
@@ -133,7 +134,7 @@ void SegmentCommand::remove_all_sections() {
 }

 Section& SegmentCommand::add_section(const Section& section) {
-  auto new_section = std::make_unique<Section>(section);
+  auto new_section = section.clone();

   new_section->segment_ = this;
   new_section->segment_name_ = name();
@@ -151,12 +152,11 @@ Section& SegmentCommand::add_section(const Section& section) {
   const size_t relative_offset = new_section->offset() - file_offset();
   span<const uint8_t> content = section.content();

-  update_data([] (std::vector<uint8_t>& inner_data, size_t w, size_t s) {
-                inner_data.resize(w + s);
-              }, relative_offset, content.size());
+  update_data([](std::vector<uint8_t>& inner_data, size_t w,
+                 size_t s) { inner_data.resize(w + s); },
+              relative_offset, content.size());

-  std::copy(std::begin(content), std::end(content),
-            std::begin(data_) + relative_offset);
+  std::copy(content.begin(), content.end(), data_.begin() + relative_offset);

   file_size(data_.size());
   sections_.push_back(std::move(new_section));
@@ -165,53 +165,55 @@ Section& SegmentCommand::add_section(const Section& section) {
 }

 bool SegmentCommand::has(const Section& section) const {
-  auto it = std::find_if(std::begin(sections_), std::end(sections_),
-      [&section] (const std::unique_ptr<Section>& sec) {
-        return *sec == section;
-      });
-  return it != std::end(sections_);
+  auto it = std::find_if(sections_.begin(), sections_.end(),
+                         [&section](const std::unique_ptr<Section>& sec) {
+                           return *sec == section;
+                         });
+  return it != sections_.end();
 }

 bool SegmentCommand::has_section(const std::string& section_name) const {
-  auto it = std::find_if(std::begin(sections_), std::end(sections_),
-      [&section_name] (const std::unique_ptr<Section>& sec) {
-        return sec->name() == section_name;
-      });
-  return it != std::end(sections_);
+  auto it = std::find_if(sections_.begin(), sections_.end(),
+                         [&section_name](const std::unique_ptr<Section>& sec) {
+                           return sec->name() == section_name;
+                         });
+  return it != sections_.end();
 }


-
 void SegmentCommand::content_resize(size_t size) {
-  update_data([size] (std::vector<uint8_t>& inner_data) {
-                if (inner_data.size() >= size) {
-                  return;
-                }
-                inner_data.resize(size, 0);
-              });
+  update_data([size](std::vector<uint8_t>& inner_data) {
+    if (inner_data.size() >= size) {
+      return;
+    }
+    inner_data.resize(size, 0);
+  });
 }


 void SegmentCommand::content_insert(size_t where, size_t size) {
-  update_data([] (std::vector<uint8_t>& inner_data, size_t w, size_t s) {
-                if (s == 0) {
-                  return;
-                }
-                if (w < inner_data.size()) {
-                  inner_data.insert(std::begin(inner_data) + w, s, 0);
-                } else {
-                  inner_data.resize(inner_data.size() + w + s, 0);
-                }
-              }, where, size);
+  update_data(
+      [](std::vector<uint8_t>& inner_data, size_t w, size_t s) {
+        if (s == 0) {
+          return;
+        }
+        if (w < inner_data.size()) {
+          inner_data.insert(inner_data.begin() + w, s, 0);
+        } else {
+          inner_data.resize(inner_data.size() + w + s, 0);
+        }
+      },
+      where, size
+  );
 }

 const Section* SegmentCommand::get_section(const std::string& name) const {
-  const auto it = std::find_if(std::begin(sections_), std::end(sections_),
-      [&name] (const std::unique_ptr<Section>& sec) {
-        return sec->name() == name;
-      });
+  const auto it = std::find_if(sections_.begin(), sections_.end(),
+                               [&name](const std::unique_ptr<Section>& sec) {
+                                 return sec->name() == name;
+                               });

-  if (it == std::end(sections_)) {
+  if (it == sections_.end()) {
     return nullptr;
   }

@@ -219,7 +221,9 @@ const Section* SegmentCommand::get_section(const std::string& name) const {
 }

 Section* SegmentCommand::get_section(const std::string& name) {
-  return const_cast<Section*>(static_cast<const SegmentCommand*>(this)->get_section(name));
+  return const_cast<Section*>(
+      static_cast<const SegmentCommand*>(this)->get_section(name)
+  );
 }


@@ -234,12 +238,11 @@ void SegmentCommand::accept(Visitor& visitor) const {
 std::ostream& SegmentCommand::print(std::ostream& os) const {
   LoadCommand::print(os) << '\n';
   os << fmt::format(
-    "name={}, vaddr=0x{:06x}, vsize=0x{:04x} "
-    "offset=0x{:06x}, size={}, max protection={}, init protection={} "
-    "flags={}",
-    name(), virtual_address(), virtual_size(),
-    file_offset(), file_size(), max_protection(), init_protection(),
-    flags()
+      "name={}, vaddr={:#08x}, vsize={:#06x} "
+      "offset={:#08x}, size={}, max protection={}, init protection={} "
+      "flags={}",
+      name(), virtual_address(), virtual_size(), file_offset(), file_size(),
+      max_protection(), init_protection(), flags()
   );
   return os;
 }
@@ -249,8 +252,7 @@ void SegmentCommand::update_data(const SegmentCommand::update_fnc_t& f) {
 }

 void SegmentCommand::update_data(const SegmentCommand::update_fnc_ws_t& f,
-                                 size_t where, size_t size)
-{
+                                 size_t where, size_t size) {
   f(data_, where, size);
 }

@@ -275,4 +277,3 @@ const char* to_string(SegmentCommand::VM_PROTECTIONS protection) {
 }

 }
-}
diff --git a/deps/LIEF/src/MachO/SegmentSplitInfo.cpp b/deps/LIEF/src/MachO/SegmentSplitInfo.cpp
index 1f4adcb7126..fa7e1116258 100644
--- a/deps/LIEF/src/MachO/SegmentSplitInfo.cpp
+++ b/deps/LIEF/src/MachO/SegmentSplitInfo.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -19,14 +19,13 @@
 #include "LIEF/MachO/SegmentSplitInfo.hpp"
 #include "MachO/Structures.hpp"

-namespace LIEF {
-namespace MachO {
+
+namespace LIEF::MachO {

 SegmentSplitInfo::SegmentSplitInfo(const details::linkedit_data_command& cmd) :
   LoadCommand::LoadCommand{LoadCommand::TYPE(cmd.cmd), cmd.cmdsize},
   data_offset_{cmd.dataoff},
-  data_size_{cmd.datasize}
-{}
+  data_size_{cmd.datasize} {}

 void SegmentSplitInfo::accept(Visitor& visitor) const {
   visitor.visit(*this);
@@ -34,11 +33,9 @@ void SegmentSplitInfo::accept(Visitor& visitor) const {

 std::ostream& SegmentSplitInfo::print(std::ostream& os) const {
   LoadCommand::print(os) << '\n';
-  os << fmt::format("offset=0x{:06x}, size=0x{:06x}",
-                     data_offset(), data_size());
+  os << fmt::format("offset={:#08x}, size={:#08x}", data_offset(), data_size());
   return os;
 }


 }
-}
diff --git a/deps/LIEF/src/MachO/SourceVersion.cpp b/deps/LIEF/src/MachO/SourceVersion.cpp
index 4d85a972fcb..139cf72b3cd 100644
--- a/deps/LIEF/src/MachO/SourceVersion.cpp
+++ b/deps/LIEF/src/MachO/SourceVersion.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -20,20 +20,17 @@
 #include "LIEF/MachO/SourceVersion.hpp"
 #include "MachO/Structures.hpp"

-namespace LIEF {
-namespace MachO {
+
+namespace LIEF::MachO {


 SourceVersion::SourceVersion(const details::source_version_command& ver) :
   LoadCommand::LoadCommand{LoadCommand::TYPE(ver.cmd), ver.cmdsize},
-  version_{{
-    static_cast<uint32_t>((ver.version >> 40) & 0xffffff),
-    static_cast<uint32_t>((ver.version >> 30) & 0x3ff),
-    static_cast<uint32_t>((ver.version >> 20) & 0x3ff),
-    static_cast<uint32_t>((ver.version >> 10) & 0x3ff),
-    static_cast<uint32_t>((ver.version >>  0) & 0x3ff)
-  }}
-{}
+  version_{{static_cast<uint32_t>((ver.version >> 40) & 0xffffff),
+            static_cast<uint32_t>((ver.version >> 30) & 0x3ff),
+            static_cast<uint32_t>((ver.version >> 20) & 0x3ff),
+            static_cast<uint32_t>((ver.version >> 10) & 0x3ff),
+            static_cast<uint32_t>((ver.version >> 0) & 0x3ff)}} {}

 void SourceVersion::accept(Visitor& visitor) const {
   visitor.visit(*this);
@@ -47,4 +44,3 @@ std::ostream& SourceVersion::print(std::ostream& os) const {


 }
-}
diff --git a/deps/LIEF/src/MachO/Structures.hpp b/deps/LIEF/src/MachO/Structures.hpp
index 6c0db43b6f4..364b6982152 100644
--- a/deps/LIEF/src/MachO/Structures.hpp
+++ b/deps/LIEF/src/MachO/Structures.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2021 - 2025 R. Thomas
+/* Copyright 2021 - 2026 R. Thomas
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -25,32 +25,30 @@


 // Swap 2 byte, 16 bit values:
-#define Swap2Bytes(val) \
- ( (((val) >> 8) & 0x00FF) | (((val) << 8) & 0xFF00) )
+#define Swap2Bytes(val) ((((val) >> 8) & 0x00FF) | (((val) << 8) & 0xFF00))


 // Swap 4 byte, 32 bit values:
-#define Swap4Bytes(val) \
- ( (((val) >> 24) & 0x000000FF) | (((val) >>  8) & 0x0000FF00) | \
-   (((val) <<  8) & 0x00FF0000) | (((val) << 24) & 0xFF000000) )
-
+#define Swap4Bytes(val)                                                           \
+  ((((val) >> 24) & 0x000000FF) | (((val) >> 8) & 0x0000FF00) |                   \
+   (((val) << 8) & 0x00FF0000) | (((val) << 24) & 0xFF000000))


 // Swap 8 byte, 64 bit values:
-#define Swap8Bytes(val) \
- ( (((val) >> 56) & 0x00000000000000FF) | (((val) >> 40) & 0x000000000000FF00) | \
-   (((val) >> 24) & 0x0000000000FF0000) | (((val) >>  8) & 0x00000000FF000000) | \
-   (((val) <<  8) & 0x000000FF00000000) | (((val) << 24) & 0x0000FF0000000000) | \
-   (((val) << 40) & 0x00FF000000000000) | (((val) << 56) & 0xFF00000000000000) )
+#define Swap8Bytes(val)                                                           \
+  ((((val) >> 56) & 0x00000000000000FF) | (((val) >> 40) & 0x000000000000FF00) |  \
+   (((val) >> 24) & 0x0000000000FF0000) | (((val) >> 8) & 0x00000000FF000000) |   \
+   (((val) << 8) & 0x000000FF00000000) | (((val) << 24) & 0x0000FF0000000000) |   \
+   (((val) << 40) & 0x00FF000000000000) | (((val) << 56) & 0xFF00000000000000))
+

-namespace LIEF {
 /// Namespace related to the LIEF's MachO module
-namespace MachO {

-namespace details {
+
+namespace LIEF::MachO::details {

 static constexpr uint32_t INDIRECT_SYMBOL_LOCAL = 0x80000000;
-static constexpr uint32_t INDIRECT_SYMBOL_ABS   = 0x40000000;
+static constexpr uint32_t INDIRECT_SYMBOL_ABS = 0x40000000;

 struct mach_header {
   uint32_t magic;
@@ -60,7 +58,7 @@ struct mach_header {
   uint32_t ncmds;
   uint32_t sizeofcmds;
   uint32_t flags;
-  //uint32_t reserved; not for 32 bits
+  // uint32_t reserved; not for 32 bits
 };

 struct mach_header_64 {
@@ -82,7 +80,7 @@ struct load_command {
 struct segment_command_32 {
   uint32_t cmd;
   uint32_t cmdsize;
-  char     segname[16];
+  char segname[16];
   uint32_t vmaddr;
   uint32_t vmsize;
   uint32_t fileoff;
@@ -96,7 +94,7 @@ struct segment_command_32 {
 struct segment_command_64 {
   uint32_t cmd;
   uint32_t cmdsize;
-  char     segname[16];
+  char segname[16];
   uint64_t vmaddr;
   uint64_t vmsize;
   uint64_t fileoff;
@@ -287,8 +285,7 @@ struct dylib_module_64 {
 };

 struct dylib_reference {
-  uint32_t isym:24,
-           flags:8;
+  uint32_t isym : 24, flags : 8;
 };

 struct twolevel_hints_command {
@@ -299,8 +296,7 @@ struct twolevel_hints_command {
 };

 struct twolevel_hint {
-  uint32_t isub_image:8,
-           itoc:24;
+  uint32_t isub_image : 8, itoc : 24;
 };

 static_assert(sizeof(twolevel_hint) == sizeof(uint32_t), "Wrong size");
@@ -351,11 +347,11 @@ struct encryption_info_command {
 };

 struct version_min_command {
-  uint32_t cmd;       // LC_VERSION_MIN_MACOSX or
-                      // LC_VERSION_MIN_IPHONEOS
-  uint32_t cmdsize;   // sizeof(struct version_min_command)
-  uint32_t version;   // X.Y.Z is encoded in nibbles xxxx.yy.zz
-  uint32_t sdk;       // X.Y.Z is encoded in nibbles xxxx.yy.zz
+  uint32_t cmd;     // LC_VERSION_MIN_MACOSX or
+                    // LC_VERSION_MIN_IPHONEOS
+  uint32_t cmdsize; // sizeof(struct version_min_command)
+  uint32_t version; // X.Y.Z is encoded in nibbles xxxx.yy.zz
+  uint32_t sdk;     // X.Y.Z is encoded in nibbles xxxx.yy.zz
 };


@@ -473,20 +469,12 @@ struct fat_arch {
 // Structs from <mach-o/reloc.h>
 struct relocation_info {
   int32_t r_address;
-  uint32_t r_symbolnum:24,
-           r_pcrel:1,
-           r_length:2,
-           r_extern:1,
-           r_type:4;
+  uint32_t r_symbolnum : 24, r_pcrel : 1, r_length : 2, r_extern : 1, r_type : 4;
 };


 struct scattered_relocation_info {
-  uint32_t r_address:24,
-           r_type:4,
-           r_length:2,
-           r_pcrel:1,
-           r_scattered:1;
+  uint32_t r_address : 24, r_type : 4, r_length : 2, r_pcrel : 1, r_scattered : 1;
   int32_t r_value;
 };

@@ -581,7 +569,7 @@ struct arm_thread_state_t {
   uint32_t r13;
   uint32_t r14;
   uint32_t r15;
-  uint32_t r16;   /* Apple's thread_state has this 17th reg, bug?? */
+  uint32_t r16; /* Apple's thread_state has this 17th reg, bug?? */
 };

 struct arm_thread_state64_t {
@@ -627,10 +615,10 @@ struct code_directory {
   uint32_t nb_special_slots;
   uint32_t nb_code_slots;
   uint32_t code_limit;
-  uint8_t  hash_size;
-  uint8_t  hash_type;
-  uint8_t  reserved;
-  uint8_t  page_size;
+  uint8_t hash_size;
+  uint8_t hash_type;
+  uint8_t reserved;
+  uint8_t page_size;
   uint32_t reserved2;
   uint32_t scatter_offset;
 };
@@ -640,7 +628,7 @@ struct code_directory {
 // =================
 // Taken from libunwind-35.3/include/mach-o/compact_unwind_encoding.h
 struct unwind_info_section_header {
-  uint32_t version;            // unwind_section_version
+  uint32_t version; // unwind_section_version
   uint32_t common_encodings_array_section_offset;
   uint32_t common_encodings_arraycount;
   uint32_t personality_array_section_offset;
@@ -656,8 +644,10 @@ struct unwind_info_section_header {

 struct unwind_info_section_header_index_entry {
   uint32_t function_offset;
-  uint32_t second_level_pages_section_offset;  // section offset to start of regular or compress page
-  uint32_t lsda_index_array_section_offset;    // section offset to start of lsda_index array for this range
+  uint32_t second_level_pages_section_offset; // section offset to start of regular
+                                              // or compress page
+  uint32_t lsda_index_array_section_offset;   // section offset to start of
+                                              // lsda_index array for this range
 };

 struct unwind_info_section_header_lsda_index_entry {
@@ -672,7 +662,7 @@ struct unwind_info_regular_second_level_entry {
 };

 struct unwind_info_regular_second_level_page_header {
-  uint32_t kind;    // UNWIND_SECOND_LEVEL_REGULAR
+  uint32_t kind; // UNWIND_SECOND_LEVEL_REGULAR
   uint16_t entry_page_offset;
   uint16_t entry_count;
   // entry array
@@ -680,7 +670,7 @@ struct unwind_info_regular_second_level_page_header {


 struct unwind_info_compressed_second_level_page_header {
-  uint32_t kind;    // unwind_second_level_compressed
+  uint32_t kind; // unwind_second_level_compressed
   uint16_t entry_page_offset;
   uint16_t entry_count;
   uint16_t encodings_page_offset;
@@ -694,8 +684,7 @@ struct rebase_instruction {
   rebase_instruction(uint8_t opcode, uint64_t op1, uint64_t op2 = 0) :
     opcode{opcode},
     op1{op1},
-    op2{op2}
-  {}
+    op2{op2} {}

   uint8_t opcode;
   uint64_t op1;
@@ -703,12 +692,12 @@ struct rebase_instruction {
 };

 struct binding_instruction {
-  binding_instruction(uint8_t opcode, uint64_t op1, uint64_t op2 = 0, std::string name = "") :
+  binding_instruction(uint8_t opcode, uint64_t op1, uint64_t op2 = 0,
+                      std::string name = "") :
     opcode{opcode},
     op1{op1},
     op2{op2},
-    name{name}
-  {}
+    name{std::move(name)} {}
   binding_instruction(const binding_instruction&) = default;
   binding_instruction& operator=(const binding_instruction&) = default;

@@ -722,28 +711,28 @@ struct binding_instruction {

 class MachO32 {
   public:
-  using header                  = mach_header;
-  using segment_command         = segment_command_32;
-  using section                 = section_32;
-  using routines_command        = routines_command_32;
-  using dylib_module            = dylib_module_32;
-  using nlist                   = nlist_32;
+  using header = mach_header;
+  using segment_command = segment_command_32;
+  using section = section_32;
+  using routines_command = routines_command_32;
+  using dylib_module = dylib_module_32;
+  using nlist = nlist_32;

-  using uint                    = uint32_t;
+  using uint = uint32_t;
 };

 class MachO64 {
   public:
-  using header                  = mach_header_64;
-  using segment_command         = segment_command_64;
-  using section                 = section_64;
-  using routines_command        = routines_command_64;
-  using dylib_module            = dylib_module_64;
-  using nlist                   = nlist_64;
+  using header = mach_header_64;
+  using segment_command = segment_command_64;
+  using section = section_64;
+  using routines_command = routines_command_64;
+  using dylib_module = dylib_module_64;
+  using nlist = nlist_64;

-  using uint                    = uint64_t;
+  using uint = uint64_t;
 };
 }
-} // end namespace MachO
-}
+// end namespace MachO
+
 #endif
diff --git a/deps/LIEF/src/MachO/Stub.cpp b/deps/LIEF/src/MachO/Stub.cpp
index 2281eacd447..499fe367881 100644
--- a/deps/LIEF/src/MachO/Stub.cpp
+++ b/deps/LIEF/src/MachO/Stub.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -30,9 +30,8 @@ inline uint64_t get_offset(size_t pos, const Section& section) {
   return section.reserved2() * pos;
 }

-const Section*
-  Stub::Iterator::find_section_offset(size_t pos, uint64_t& offset) const
-{
+const Section* Stub::Iterator::find_section_offset(size_t pos,
+                                                   uint64_t& offset) const {
   if (stubs_.size() == 1) {
     offset = get_offset(pos, *stubs_.back());
     return stubs_.back();
@@ -58,9 +57,9 @@ const Section*
   uint64_t limit = nb_stubs(*stubs_[0]);
   for (size_t idx = 0; idx < stubs_.size(); ++idx) {
     if (pos < limit) {
-      offset = idx > 0 ?
-               get_offset(pos - (limit - nb_stubs(*stubs_[idx - 1])), *stubs_[idx]) :
-               get_offset(pos, *stubs_[idx]);
+      offset = idx > 0 ? get_offset(pos - (limit - nb_stubs(*stubs_[idx - 1])),
+                                    *stubs_[idx]) :
+                         get_offset(pos, *stubs_[idx]);
       return stubs_[idx];
     }
     if (idx < stubs_.size() - 1) {
@@ -83,9 +82,7 @@ Stub Stub::Iterator::operator*() const {
   }
   LIEF::span<const uint8_t> stub_raw = section->content().subspan(offset, stride);
   const uint64_t addr = section->virtual_address() + offset;
-  return Stub(
-    target_info_, addr, as_vector(stub_raw)
-  );
+  return {target_info_, addr, as_vector(stub_raw)};
 }

 #if !defined(LIEF_EXTENDED)
@@ -97,11 +94,10 @@ result<uint64_t> Stub::target() const {

 std::ostream& operator<<(std::ostream& os, const Stub& stub) {
   if (is_extended()) {
-    os << fmt::format("0x{:010x}: 0x{:010x} ({} bytes)",
-                       stub.address(), stub.target().value_or(0),
-                       stub.raw().size());
+    os << fmt::format("{:#012x}: {:#012x} ({} bytes)", stub.address(),
+                      stub.target().value_or(0), stub.raw().size());
   } else {
-    os << fmt::format("0x{:010x} ({} bytes)", stub.address(), stub.raw().size());
+    os << fmt::format("{:#012x} ({} bytes)", stub.address(), stub.raw().size());
   }
   return os;
 }
diff --git a/deps/LIEF/src/MachO/SubClient.cpp b/deps/LIEF/src/MachO/SubClient.cpp
index 4f0b45c737c..2fa8356339c 100644
--- a/deps/LIEF/src/MachO/SubClient.cpp
+++ b/deps/LIEF/src/MachO/SubClient.cpp
@@ -1,4 +1,4 @@
-/* Copyright 2017 - 2025 R. Thomas
+/* Copyright 2017 - 2026 R. Thomas
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -18,12 +18,11 @@
 #include "LIEF/MachO/SubClient.hpp"
 #include "MachO/Structures.hpp"

-namespace LIEF {
-namespace MachO {
+
+namespace LIEF::MachO {

 SubClient::SubClient(const details::sub_client_command& cmd) :
-  LoadCommand::LoadCommand{LoadCommand::TYPE(cmd.cmd), cmd.cmdsize}
-{}
+  LoadCommand::LoadCommand{LoadCommand::TYPE(cmd.cmd), cmd.cmdsize} {}

 void SubClient::accept(Visitor& visitor) const {
   visitor.visit(*this);
@@ -37,4 +36,3 @@ std::ostream& SubClient::print(std::ostream& os) const {


 }
-}
diff --git a/deps/LIEF/src/MachO/SubFramework.cpp b/deps/LIEF/src/MachO/SubFramework.cpp
index 437dbbefd88..fb4f14436f4 100644
--- a/deps/LIEF/src/MachO/SubFramework.cpp
+++ b/deps/LIEF/src/MachO/SubFramework.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -19,12 +19,11 @@
 #include "LIEF/MachO/SubFramework.hpp"
 #include "MachO/Structures.hpp"

-namespace LIEF {
-namespace MachO {
+
+namespace LIEF::MachO {

 SubFramework::SubFramework(const details::sub_framework_command& cmd) :
-  LoadCommand::LoadCommand{LoadCommand::TYPE(cmd.cmd), cmd.cmdsize}
-{}
+  LoadCommand::LoadCommand{LoadCommand::TYPE(cmd.cmd), cmd.cmdsize} {}

 void SubFramework::accept(Visitor& visitor) const {
   visitor.visit(*this);
@@ -38,4 +37,3 @@ std::ostream& SubFramework::print(std::ostream& os) const {


 }
-}
diff --git a/deps/LIEF/src/MachO/Symbol.cpp b/deps/LIEF/src/MachO/Symbol.cpp
index 1ec1b75d6af..4e26a3749ad 100644
--- a/deps/LIEF/src/MachO/Symbol.cpp
+++ b/deps/LIEF/src/MachO/Symbol.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -28,8 +28,8 @@

 #include "frozen.hpp"

-namespace LIEF {
-namespace MachO {
+
+namespace LIEF::MachO {

 Symbol& Symbol::operator=(Symbol other) {
   swap(other);
@@ -41,16 +41,14 @@ Symbol::Symbol(const Symbol& other) :
   type_{other.type_},
   numberof_sections_{other.numberof_sections_},
   description_{other.description_},
-  origin_{other.origin_}
-{}
+  origin_{other.origin_} {}


 Symbol::Symbol(const details::nlist_32& cmd) :
   type_{cmd.n_type},
   numberof_sections_{cmd.n_sect},
   description_{static_cast<uint16_t>(cmd.n_desc)},
-  origin_{ORIGIN::SYMTAB}
-{
+  origin_{ORIGIN::SYMTAB} {
   value_ = cmd.n_value;
 }

@@ -58,20 +56,19 @@ Symbol::Symbol(const details::nlist_64& cmd) :
   type_{cmd.n_type},
   numberof_sections_{cmd.n_sect},
   description_{cmd.n_desc},
-  origin_{ORIGIN::SYMTAB}
-{
+  origin_{ORIGIN::SYMTAB} {
   value_ = cmd.n_value;
 }

 void Symbol::swap(Symbol& other) noexcept {
   LIEF::Symbol::swap(other);

-  std::swap(type_,              other.type_);
+  std::swap(type_, other.type_);
   std::swap(numberof_sections_, other.numberof_sections_);
-  std::swap(description_,       other.description_);
-  std::swap(binding_info_,      other.binding_info_);
-  std::swap(export_info_,       other.export_info_);
-  std::swap(origin_,            other.origin_);
+  std::swap(description_, other.description_);
+  std::swap(binding_info_, other.binding_info_);
+  std::swap(export_info_, other.export_info_);
+  std::swap(origin_, other.origin_);
 }

 std::string Symbol::demangled_name() const {
@@ -83,18 +80,19 @@ std::string Symbol::demangled_name() const {
     return LIEF::demangle(sym_name).value_or("");
   } else {
 #if defined(__unix__)
-    int status;
+    int status = 0;
     const std::string& name = this->name().c_str();
-    char* demangled_name = abi::__cxa_demangle(name.c_str(), 0, 0, &status);
+    char* demangled_name =
+        abi::__cxa_demangle(name.c_str(), nullptr, nullptr, &status);

     if (status == 0) {
       std::string realname = demangled_name;
-      free(demangled_name);
+      free(demangled_name); // NOLINT(cppcoreguidelines-no-malloc)
       return realname;
     }
     return name;
 #else
-      return "";
+    return "";
 #endif
   }
 }
@@ -119,23 +117,21 @@ const Symbol& Symbol::indirect_abs_local() {
 }

 std::ostream& operator<<(std::ostream& os, const Symbol& symbol) {
-  os << fmt::format(
-    "name={}, type={}, desc={}, value=0x{:08x}, origin={}",
-    symbol.name(), symbol.raw_type(), symbol.description(), symbol.value(),
-    to_string(symbol.origin())
-  );
+  os << fmt::format("name={}, type={}, desc={}, value={:#010x}, origin={}",
+                    symbol.name(), symbol.raw_type(), symbol.description(),
+                    symbol.value(), to_string(symbol.origin()));
   return os;
 }

 const char* to_string(Symbol::ORIGIN e) {
-  #define ENTRY(X) std::pair(Symbol::ORIGIN::X, #X)
-  STRING_MAP enums2str {
-    ENTRY(UNKNOWN),
-    ENTRY(DYLD_EXPORT),
-    ENTRY(DYLD_BIND),
-    ENTRY(SYMTAB),
+#define ENTRY(X) std::pair(Symbol::ORIGIN::X, #X)
+  STRING_MAP enums2str{
+      ENTRY(UNKNOWN),
+      ENTRY(DYLD_EXPORT),
+      ENTRY(DYLD_BIND),
+      ENTRY(SYMTAB),
   };
-  #undef ENTRY
+#undef ENTRY

   if (auto it = enums2str.find(e); it != enums2str.end()) {
     return it->second;
@@ -144,16 +140,12 @@ const char* to_string(Symbol::ORIGIN e) {
 }

 const char* to_string(Symbol::CATEGORY e) {
-  #define ENTRY(X) std::pair(Symbol::CATEGORY::X, #X)
-  STRING_MAP enums2str {
-    ENTRY(NONE),
-    ENTRY(LOCAL),
-    ENTRY(EXTERNAL),
-    ENTRY(UNDEFINED),
-    ENTRY(INDIRECT_ABS),
-    ENTRY(INDIRECT_LOCAL),
+#define ENTRY(X) std::pair(Symbol::CATEGORY::X, #X)
+  STRING_MAP enums2str{
+      ENTRY(NONE),      ENTRY(LOCAL),        ENTRY(EXTERNAL),
+      ENTRY(UNDEFINED), ENTRY(INDIRECT_ABS), ENTRY(INDIRECT_LOCAL),
   };
-  #undef ENTRY
+#undef ENTRY

   if (auto it = enums2str.find(e); it != enums2str.end()) {
     return it->second;
@@ -162,16 +154,12 @@ const char* to_string(Symbol::CATEGORY e) {
 }

 const char* to_string(Symbol::TYPE e) {
-  #define ENTRY(X) std::pair(Symbol::TYPE::X, #X)
-  STRING_MAP enums2str {
-    ENTRY(UNDEFINED),
-    ENTRY(ABSOLUTE_SYM),
-    ENTRY(SECTION),
-    ENTRY(UNDEFINED),
-    ENTRY(PREBOUND),
-    ENTRY(INDIRECT),
+#define ENTRY(X) std::pair(Symbol::TYPE::X, #X)
+  STRING_MAP enums2str{
+      ENTRY(UNDEFINED), ENTRY(ABSOLUTE_SYM), ENTRY(SECTION),
+      ENTRY(UNDEFINED), ENTRY(PREBOUND),     ENTRY(INDIRECT),
   };
-  #undef ENTRY
+#undef ENTRY

   if (auto it = enums2str.find(e); it != enums2str.end()) {
     return it->second;
@@ -179,5 +167,4 @@ const char* to_string(Symbol::TYPE e) {
   return "UNKNOWN";
 }

-} // namespace MachO
-} // namespace LIEF
+} // namespace LIEF::MachO
diff --git a/deps/LIEF/src/MachO/SymbolCommand.cpp b/deps/LIEF/src/MachO/SymbolCommand.cpp
index 59190cffc97..f726f474c93 100644
--- a/deps/LIEF/src/MachO/SymbolCommand.cpp
+++ b/deps/LIEF/src/MachO/SymbolCommand.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -19,16 +19,15 @@
 #include "LIEF/MachO/SymbolCommand.hpp"
 #include "MachO/Structures.hpp"

-namespace LIEF {
-namespace MachO {
+
+namespace LIEF::MachO {

 SymbolCommand::SymbolCommand(const details::symtab_command& cmd) :
   LoadCommand::LoadCommand{LoadCommand::TYPE(cmd.cmd), cmd.cmdsize},
   symbols_offset_{cmd.symoff},
   nb_symbols_{cmd.nsyms},
   strings_offset_{cmd.stroff},
-  strings_size_{cmd.strsize}
-{}
+  strings_size_{cmd.strsize} {}

 void SymbolCommand::accept(Visitor& visitor) const {
   visitor.visit(*this);
@@ -36,13 +35,13 @@ void SymbolCommand::accept(Visitor& visitor) const {

 std::ostream& SymbolCommand::print(std::ostream& os) const {
   LoadCommand::print(os) << '\n';
-  os << fmt::format("symbol offset=0x{:06x}, nb symbols={}",
-                     symbol_offset(), numberof_symbols()) << '\n'
-     << fmt::format("string offset=0x{:06x}, string size={}",
-                     strings_offset(), strings_size());
+  os << fmt::format("symbol offset={:#08x}, nb symbols={}", symbol_offset(),
+                    numberof_symbols())
+     << '\n'
+     << fmt::format("string offset={:#08x}, string size={}", strings_offset(),
+                    strings_size());
   return os;
 }


 }
-}
diff --git a/deps/LIEF/src/MachO/ThreadCommand.cpp b/deps/LIEF/src/MachO/ThreadCommand.cpp
index b494e89b2ff..f4e7b683626 100644
--- a/deps/LIEF/src/MachO/ThreadCommand.cpp
+++ b/deps/LIEF/src/MachO/ThreadCommand.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -13,95 +13,117 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-#include <iomanip>
-
 #include "logging.hpp"
 #include "LIEF/Visitor.hpp"
+#include "LIEF/endianness_support.hpp"

 #include "LIEF/MachO/ThreadCommand.hpp"
 #include "MachO/Structures.hpp"

-namespace LIEF {
-namespace MachO {
+namespace LIEF::MachO {
+
+template<class T>
+inline T from_big_endian(T value) {
+#ifdef __BYTE_ORDER__
+  #if defined(__ORDER_LITTLE_ENDIAN__) &&                                         \
+      (__BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__)
+  return get_swapped_endian<T>(value);
+  #else
+  return value;
+  #endif
+#else
+  // No __BYTE_ORDER__ (e.g. MSVC): assume a little-endian host.
+  return get_swapped_endian<T>(value);
+#endif
+}

-ThreadCommand::ThreadCommand(const details::thread_command& cmd, Header::CPU_TYPE arch) :
+ThreadCommand::ThreadCommand(const details::thread_command& cmd,
+                             Header::CPU_TYPE arch) :
   LoadCommand::LoadCommand{LoadCommand::TYPE(cmd.cmd), cmd.cmdsize},
   flavor_{cmd.flavor},
   count_{cmd.count},
-  architecture_{arch}
-{}
+  architecture_{arch} {}

-ThreadCommand::ThreadCommand(uint32_t flavor, uint32_t count, Header::CPU_TYPE arch) :
+ThreadCommand::ThreadCommand(uint32_t flavor, uint32_t count,
+                             Header::CPU_TYPE arch) :
   LoadCommand::LoadCommand{LoadCommand::TYPE::UNIXTHREAD,
-                           static_cast<uint32_t>(sizeof(details::thread_command) + count * sizeof(uint32_t))},
+                           static_cast<uint32_t>(sizeof(details::thread_command) +
+                                                 count * sizeof(uint32_t))},
   flavor_{flavor},
   count_{count},
   architecture_{arch},
-  state_(size() - sizeof(details::thread_command), 0)
-{
-}
+  state_(size() - sizeof(details::thread_command), 0) {}

 uint64_t ThreadCommand::pc() const {
   uint64_t entry = 0;
-  switch(architecture_) {
+  switch (architecture_) {
     case Header::CPU_TYPE::X86:
-      {
-        if (state_.size() < sizeof(details::x86_thread_state_t)) {
-          return entry;
-        }
-        entry = reinterpret_cast<const details::x86_thread_state_t*>(state_.data())->eip;
-        break;
+    {
+      if (state_.size() < sizeof(details::x86_thread_state_t)) {
+        return entry;
       }
+      entry =
+          reinterpret_cast<const details::x86_thread_state_t*>(state_.data())->eip;
+      break;
+    }

     case Header::CPU_TYPE::X86_64:
-      {
-        if (state_.size() < sizeof(details::x86_thread_state64_t)) {
-          return entry;
-        }
-        entry = reinterpret_cast<const details::x86_thread_state64_t*>(state_.data())->rip;
-        break;
+    {
+      if (state_.size() < sizeof(details::x86_thread_state64_t)) {
+        return entry;
       }
+      entry = reinterpret_cast<const details::x86_thread_state64_t*>(state_.data())
+                  ->rip;
+      break;
+    }

     case Header::CPU_TYPE::ARM:
-      {
-        if (state_.size() < sizeof(details::arm_thread_state_t)) {
-          return entry;
-        }
-        entry = reinterpret_cast<const details::arm_thread_state_t*>(state_.data())->r15;
-        break;
+    {
+      if (state_.size() < sizeof(details::arm_thread_state_t)) {
+        return entry;
       }
+      entry =
+          reinterpret_cast<const details::arm_thread_state_t*>(state_.data())->r15;
+      break;
+    }

     case Header::CPU_TYPE::ARM64:
-      {
-        if (state_.size() < sizeof(details::arm_thread_state64_t)) {
-          return entry;
-        }
-        entry = reinterpret_cast<const details::arm_thread_state64_t*>(state_.data())->pc;
-        break;
+    {
+      if (state_.size() < sizeof(details::arm_thread_state64_t)) {
+        return entry;
       }
+      entry = reinterpret_cast<const details::arm_thread_state64_t*>(state_.data())
+                  ->pc;
+      break;
+    }

     case Header::CPU_TYPE::POWERPC:
-      {
-        if (state_.size() < sizeof(details::ppc_thread_state_t)) {
-          return entry;
-        }
-        entry = reinterpret_cast<const details::ppc_thread_state_t*>(state_.data())->srr0;
-        break;
+    {
+      if (state_.size() < sizeof(details::ppc_thread_state_t)) {
+        return entry;
       }
+      entry = from_big_endian(
+          reinterpret_cast<const details::ppc_thread_state_t*>(state_.data())->srr0
+      );
+      break;
+    }

     case Header::CPU_TYPE::POWERPC64:
-      {
-        if (state_.size() < sizeof(details::ppc_thread_state64_t)) {
-          return entry;
-        }
-        entry = reinterpret_cast<const details::ppc_thread_state64_t*>(state_.data())->srr0;
-        break;
+    {
+      if (state_.size() < sizeof(details::ppc_thread_state64_t)) {
+        return entry;
       }
+      entry = from_big_endian(
+          reinterpret_cast<const details::ppc_thread_state64_t*>(state_.data())
+              ->srr0
+      );
+      break;
+    }

     default:
-      {
-        LIEF_ERR("Unknown architecture");
-      }
+    {
+      LIEF_ERR("Unknown architecture");
+    }
   }
   return entry;
 }
@@ -112,11 +134,10 @@ void ThreadCommand::accept(Visitor& visitor) const {

 std::ostream& ThreadCommand::print(std::ostream& os) const {
   LoadCommand::print(os) << '\n';
-  os << fmt::format("flavor=0x{:x}, count=0x{:x}, pc=0x{:06x}",
-                    flavor(), count(), pc());
+  os << fmt::format("flavor={:#x}, count={:#x}, pc={:#08x}", flavor(), count(),
+                    pc());
   return os;
 }


 }
-}
diff --git a/deps/LIEF/src/MachO/ThreadLocalVariables.cpp b/deps/LIEF/src/MachO/ThreadLocalVariables.cpp
new file mode 100644
index 00000000000..e87875591cd
--- /dev/null
+++ b/deps/LIEF/src/MachO/ThreadLocalVariables.cpp
@@ -0,0 +1,113 @@
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
+ *
+ * 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.
+ */
+#include "LIEF/MachO/ThreadLocalVariables.hpp"
+#include "LIEF/MachO/Relocation.hpp"
+#include "LIEF/MachO/SegmentCommand.hpp"
+#include "logging.hpp"
+
+#include <spdlog/fmt/fmt.h>
+
+namespace LIEF::MachO {
+namespace details {
+template<class T>
+struct Thunk {
+  using ptr_t = T;
+  ptr_t func;
+  ptr_t key;
+  ptr_t offset;
+};
+
+using Thunk32 = Thunk<uint32_t>;
+using Thunk64 = Thunk<uint64_t>;
+
+static_assert(sizeof(Thunk64) == 24);
+static_assert(sizeof(Thunk32) == 12);
+
+template<class T>
+optional<ThreadLocalVariables::Thunk> get_impl(size_t idx,
+                                               span<const uint8_t> buffer) {
+  if (idx >= buffer.size() / sizeof(T)) {
+    return nullopt();
+  }
+
+  const uint64_t offset = idx * sizeof(T);
+  const auto* raw = reinterpret_cast<const T*>(buffer.data() + offset);
+  return ThreadLocalVariables::Thunk{raw->func, raw->key, raw->offset};
+}
+
+template<class T>
+bool set_impl(size_t idx, const ThreadLocalVariables::Thunk& thunk,
+              span<uint8_t> buffer) {
+  using ptr_t = typename T::ptr_t;
+
+  if (idx >= buffer.size() / sizeof(T)) {
+    return false;
+  }
+
+  const uint64_t offset = idx * sizeof(T);
+  auto* raw = reinterpret_cast<T*>(buffer.data() + offset);
+  raw->func = (ptr_t)thunk.func;
+  raw->key = (ptr_t)thunk.key;
+  raw->offset = (ptr_t)thunk.offset;
+  return true;
+}
+
+}
+
+inline bool is_32bit(const ThreadLocalVariables& thiz) {
+  // NOTE(romain): This check is not perfect but it simplifies
+  // the logic to identify which Thunk layout to use.
+  assert(thiz.segment() != nullptr);
+  LoadCommand::TYPE cmd = thiz.segment()->command();
+  assert(cmd == LoadCommand::TYPE::SEGMENT ||
+         cmd == LoadCommand::TYPE::SEGMENT_64);
+
+  return cmd == LoadCommand::TYPE::SEGMENT ? true : false;
+}
+
+
+ThreadLocalVariables::ThreadLocalVariables() :
+  LIEF::MachO::Section() {
+  type(TYPE::THREAD_LOCAL_VARIABLES);
+}
+
+optional<ThreadLocalVariables::Thunk> ThreadLocalVariables::get(size_t idx) const {
+  return is_32bit(*this) ? details::get_impl<details::Thunk32>(idx, content()) :
+                           details::get_impl<details::Thunk64>(idx, content());
+}
+
+
+void ThreadLocalVariables::set(size_t idx, const Thunk& thunk) {
+  bool ok = is_32bit(*this) ?
+                details::set_impl<details::Thunk32>(idx, thunk, content()) :
+                details::set_impl<details::Thunk64>(idx, thunk, content());
+  if (!ok) {
+    LIEF_ERR("Can't set thunk {} at idx #{}", thunk.to_string(), idx);
+  }
+}
+
+size_t ThreadLocalVariables::nb_thunks() const {
+  auto sizeof_ =
+      is_32bit(*this) ? sizeof(details::Thunk32) : sizeof(details::Thunk64);
+  return content().size() / sizeof_;
+}
+
+std::string ThreadLocalVariables::Thunk::to_string() const {
+  return fmt::format("func={:#08x}, key={:#08x}, offset={:#08x}", func, key,
+                     offset);
+}
+
+}
diff --git a/deps/LIEF/src/MachO/TrieNode.cpp b/deps/LIEF/src/MachO/TrieNode.cpp
index 217876c1558..b0d788c0608 100644
--- a/deps/LIEF/src/MachO/TrieNode.cpp
+++ b/deps/LIEF/src/MachO/TrieNode.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2021 - 2025 R. Thomas
- * Copyright 2021 - 2025 Quarkslab
+/* Copyright 2021 - 2026 R. Thomas
+ * Copyright 2021 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -22,15 +22,17 @@
 #include "LIEF/MachO/ExportInfo.hpp"
 #include "LIEF/iostream.hpp"

-namespace LIEF {
-namespace MachO {

+namespace LIEF::MachO {

-// Mainly inspired from LLVM: lld/lib/ReaderWriter/MachO/MachONormalizedFileBinaryWriter.cpp
-TrieNode& TrieNode::add_symbol(const ExportInfo& info, TrieNode::node_list_t& nodes) {
+
+// Mainly inspired from LLVM:
+// lld/lib/ReaderWriter/MachO/MachONormalizedFileBinaryWriter.cpp
+TrieNode::node_list_t TrieNode::add_symbol(const ExportInfo& info) {
+  node_list_t nodes;
   if (!info.has_symbol()) {
-    LIEF_ERR("Missing symbol in the Trie node");
-    return *this;
+    LIEF_ERR("Missing symbol in trie node");
+    return nodes;
   }
   const Symbol& sym = *info.symbol();
   std::string partial_str = sym.name().substr(cummulative_string_.size());
@@ -40,15 +42,18 @@ TrieNode& TrieNode::add_symbol(const ExportInfo& info, TrieNode::node_list_t& no
     std::string edge_string = edge->substr;

     if (partial_str.find(edge_string) == 0) {
-      edge->child->add_symbol(info, nodes);
-      return *this;
+      node_list_t subnodes = edge->child->add_symbol(info);
+      nodes.insert(nodes.end(), std::make_move_iterator(subnodes.begin()),
+                   std::make_move_iterator(subnodes.end()));
+      return nodes;
     }

     for (int n = edge_string.size() - 1; n > 0; --n) {
       if (partial_str.substr(0, n) == edge_string.substr(0, n)) {

         std::string b_node_str = edge->child->cummulative_string_;
-        b_node_str = b_node_str.substr(0, b_node_str.size() + n - edge_string.size()); // drop front
+        b_node_str = b_node_str.substr(0, b_node_str.size() + n -
+                                              edge_string.size()); // drop front

         std::unique_ptr<TrieNode> b_new_node = TrieNode::create(b_node_str);

@@ -64,10 +69,11 @@ TrieNode& TrieNode::add_symbol(const ExportInfo& info, TrieNode::node_list_t& no

         std::unique_ptr<TrieEdge> bc_edge = TrieEdge::create(bc_edge_str, c_node);
         b_new_node->children_.push_back(std::move(bc_edge));
-        b_new_node->add_symbol(info, nodes);
-
+        node_list_t subnodes = b_new_node->add_symbol(info);
+        nodes.insert(nodes.end(), std::make_move_iterator(subnodes.begin()),
+                     std::make_move_iterator(subnodes.end()));
         nodes.push_back(std::move(b_new_node));
-        return *this;
+        return nodes;
       }
     }
   }
@@ -84,8 +90,8 @@ TrieNode& TrieNode::add_symbol(const ExportInfo& info, TrieNode::node_list_t& no
   std::unique_ptr<TrieEdge> new_edge = TrieEdge::create(partial_str, *new_node);

   new_node->address_ = info.address();
-  new_node->flags_   = info.flags();
-  new_node->other_   = info.other();
+  new_node->flags_ = info.flags();
+  new_node->other_ = info.other();

   if (info.has(ExportInfo::FLAGS::REEXPORT)) {
     new_node->imported_name_ = "";
@@ -98,48 +104,55 @@ TrieNode& TrieNode::add_symbol(const ExportInfo& info, TrieNode::node_list_t& no

   children_.push_back(std::move(new_edge));
   nodes.push_back(std::move(new_node));
-  return *this;
+  return nodes;
 }


-// Mainly inspired from LLVM: lld/lib/ReaderWriter/MachO/MachONormalizedFileBinaryWriter.cpp - addOrderedNodes
-// Add info in nodes making sure every parents node is inserted before
-TrieNode& TrieNode::add_ordered_nodes(const ExportInfo& info, std::vector<TrieNode*>& nodes) {
+// Mainly inspired from LLVM:
+// lld/lib/ReaderWriter/MachO/MachONormalizedFileBinaryWriter.cpp - addOrderedNodes
+// Add info in nodes making sure every parent node is inserted before
+std::vector<TrieNode*> TrieNode::add_ordered_nodes(const ExportInfo& info) {
+  std::vector<TrieNode*> nodes;
   if (!ordered_) {
     nodes.push_back(this);
     ordered_ = true;
   }

   if (!info.has_symbol()) {
-    LIEF_ERR("Missing symbol can process add_ordered_nodes");
-    return *this;
+    LIEF_ERR("Missing symbol for add_ordered_nodes");
+    return nodes;
   }

-  std::string partial_str = info.symbol()->name().substr(cummulative_string_.size());
+  std::string partial_str =
+      info.symbol()->name().substr(cummulative_string_.size());
   for (std::unique_ptr<TrieEdge>& edge : children_) {
     std::string edge_string = edge->substr;

     if (partial_str.find(edge_string) == 0) {
-      edge->child->add_ordered_nodes(info, nodes);
-      return *this;
+      std::vector<TrieNode*> subnodes = edge->child->add_ordered_nodes(info);
+      nodes.insert(nodes.end(), subnodes.begin(), subnodes.end());
+      return nodes;
     }
   }
-  return *this;
+  return nodes;
 }


-// Mainly inspired from LLVM: lld/lib/ReaderWriter/MachO/MachONormalizedFileBinaryWriter.cpp - updateOffset
+// Mainly inspired from LLVM:
+// lld/lib/ReaderWriter/MachO/MachONormalizedFileBinaryWriter.cpp - updateOffset
 bool TrieNode::update_offset(uint32_t& offset) {
   uint32_t node_size = 1;
   if (has_export_info_) {
-   if ((flags_ & static_cast<uint64_t>(ExportInfo::FLAGS::REEXPORT)) != 0u) {
+    if ((flags_ & static_cast<uint64_t>(ExportInfo::FLAGS::REEXPORT)) != 0u) {
       node_size = vector_iostream::uleb128_size(flags_);
       node_size += vector_iostream::uleb128_size(other_);
       node_size += imported_name_.size() + 1;
     } else {
       node_size = vector_iostream::uleb128_size(flags_);
       node_size += vector_iostream::uleb128_size(address_);
-      if ((flags_ & static_cast<uint64_t>(ExportInfo::FLAGS::STUB_AND_RESOLVER)) != 0u) {
+      if ((flags_ & static_cast<uint64_t>(ExportInfo::FLAGS::STUB_AND_RESOLVER)) !=
+          0u)
+      {
         node_size += vector_iostream::uleb128_size(other_);
       }
     }
@@ -169,52 +182,48 @@ TrieNode& TrieNode::write(vector_iostream& buffer) {
         node_size += vector_iostream::uleb128_size(other_);
         node_size += imported_name_.size() + 1;

-        buffer
-          .write<uint8_t>(node_size)
-          .write_uleb128(flags_)
-          .write_uleb128(other_)
-          .write(imported_name_);
+        buffer.write<uint8_t>(node_size)
+            .write_uleb128(flags_)
+            .write_uleb128(other_)
+            .write(imported_name_);

       } else {
         uint32_t node_size = 0;
         node_size += vector_iostream::uleb128_size(flags_);
         node_size += vector_iostream::uleb128_size(other_);
         node_size += 1;
-        buffer
-          .write<uint8_t>(node_size)
-          .write_uleb128(flags_)
-          .write_uleb128(other_)
-          .write<uint8_t>('\0');
+        buffer.write<uint8_t>(node_size)
+            .write_uleb128(flags_)
+            .write_uleb128(other_)
+            .write<uint8_t>('\0');
       }
-    }
-    else if ((flags_ & static_cast<uint64_t>(ExportInfo::FLAGS::STUB_AND_RESOLVER)) != 0u) {
+    } else if ((flags_ &
+                static_cast<uint64_t>(ExportInfo::FLAGS::STUB_AND_RESOLVER)) != 0u)
+    {
       uint32_t node_size = 0;
       node_size += vector_iostream::uleb128_size(flags_);
       node_size += vector_iostream::uleb128_size(address_);
       node_size += vector_iostream::uleb128_size(other_);

-      buffer
-        .write<uint8_t>(node_size)
-        .write_uleb128(flags_)
-        .write_uleb128(address_)
-        .write_uleb128(other_);
-    }
-    else {
+      buffer.write<uint8_t>(node_size)
+          .write_uleb128(flags_)
+          .write_uleb128(address_)
+          .write_uleb128(other_);
+    } else {
       uint32_t node_size = 0;
       node_size += vector_iostream::uleb128_size(flags_);
       node_size += vector_iostream::uleb128_size(address_);

-      buffer
-        .write<uint8_t>(node_size)
-        .write_uleb128(flags_)
-        .write_uleb128(address_);
+      buffer.write<uint8_t>(node_size).write_uleb128(flags_).write_uleb128(
+          address_
+      );
     }

   } else { // not has_export_info_
     buffer.write<uint8_t>(0);
   }

-  // Number of childs
+  // Number of children
   if (children_.size() >= 256) {
     LIEF_WARN("Too many children ({:d})", children_.size());
     return *this;
@@ -222,10 +231,8 @@ TrieNode& TrieNode::write(vector_iostream& buffer) {

   buffer.write<uint8_t>(children_.size());
   for (std::unique_ptr<TrieEdge>& edge : children_) {
-    buffer.write(edge->substr)
-          .write_uleb128(edge->child->trie_offset_);
+    buffer.write(edge->substr).write_uleb128(edge->child->trie_offset_);
   }
   return *this;
 }
 }
-}
diff --git a/deps/LIEF/src/MachO/TrieNode.hpp b/deps/LIEF/src/MachO/TrieNode.hpp
index 6bdde9ec6b0..3eb1eec8474 100644
--- a/deps/LIEF/src/MachO/TrieNode.hpp
+++ b/deps/LIEF/src/MachO/TrieNode.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -37,8 +37,7 @@ class LIEF_LOCAL TrieEdge {
   TrieEdge() = delete;
   TrieEdge(std::string str, TrieNode& node) :
     substr(std::move(str)),
-    child(&node)
-  {}
+    child(&node) {}

   ~TrieEdge() = default;

@@ -60,13 +59,12 @@ class LIEF_LOCAL TrieNode {
   TrieNode() = delete;

   TrieNode(std::string str) :
-    cummulative_string_(std::move(str))
-  {}
+    cummulative_string_(std::move(str)) {}

   ~TrieNode() = default;

-  TrieNode& add_symbol(const ExportInfo& info, node_list_t& nodes);
-  TrieNode& add_ordered_nodes(const ExportInfo& info, std::vector<TrieNode*>& nodes);
+  node_list_t add_symbol(const ExportInfo& info);
+  std::vector<TrieNode*> add_ordered_nodes(const ExportInfo& info);
   bool update_offset(uint32_t& offset);

   TrieNode& write(vector_iostream& buffer);
diff --git a/deps/LIEF/src/MachO/TwoLevelHints.cpp b/deps/LIEF/src/MachO/TwoLevelHints.cpp
index a859b6ef561..119f28568c1 100644
--- a/deps/LIEF/src/MachO/TwoLevelHints.cpp
+++ b/deps/LIEF/src/MachO/TwoLevelHints.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -18,14 +18,13 @@
 #include "LIEF/MachO/TwoLevelHints.hpp"
 #include "MachO/Structures.hpp"

-namespace LIEF {
-namespace MachO {
+
+namespace LIEF::MachO {

 TwoLevelHints::TwoLevelHints(const details::twolevel_hints_command& cmd) :
   LoadCommand::LoadCommand{LoadCommand::TYPE(cmd.cmd), cmd.cmdsize},
   offset_{cmd.offset},
-  original_nb_hints_{cmd.nhints}
-{}
+  original_nb_hints_{cmd.nhints} {}

 void TwoLevelHints::accept(Visitor& visitor) const {
   visitor.visit(*this);
@@ -38,4 +37,3 @@ std::ostream& TwoLevelHints::print(std::ostream& os) const {


 }
-}
diff --git a/deps/LIEF/src/MachO/UUIDCommand.cpp b/deps/LIEF/src/MachO/UUIDCommand.cpp
index 4d1a7ebfdf6..f26960fe365 100644
--- a/deps/LIEF/src/MachO/UUIDCommand.cpp
+++ b/deps/LIEF/src/MachO/UUIDCommand.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -19,13 +19,12 @@
 #include "LIEF/MachO/UUIDCommand.hpp"
 #include "MachO/Structures.hpp"

-namespace LIEF {
-namespace MachO {
+
+namespace LIEF::MachO {


 UUIDCommand::UUIDCommand(const details::uuid_command& uuid) :
-  LoadCommand::LoadCommand{LoadCommand::TYPE(uuid.cmd), uuid.cmdsize}
-{
+  LoadCommand::LoadCommand{LoadCommand::TYPE(uuid.cmd), uuid.cmdsize} {
   std::copy(std::begin(uuid.uuid), std::end(uuid.uuid), std::begin(uuid_));
 }

@@ -44,4 +43,3 @@ std::ostream& UUIDCommand::print(std::ostream& os) const {


 }
-}
diff --git a/deps/LIEF/src/MachO/UnknownCommand.cpp b/deps/LIEF/src/MachO/UnknownCommand.cpp
index 9c4301bde71..34d00b92464 100644
--- a/deps/LIEF/src/MachO/UnknownCommand.cpp
+++ b/deps/LIEF/src/MachO/UnknownCommand.cpp
@@ -1,4 +1,4 @@
-/* Copyright 2024 - 2025 R. Thomas
+/* Copyright 2024 - 2026 R. Thomas
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/deps/LIEF/src/MachO/VersionMin.cpp b/deps/LIEF/src/MachO/VersionMin.cpp
index e80509ca4a1..e9571997ac3 100644
--- a/deps/LIEF/src/MachO/VersionMin.cpp
+++ b/deps/LIEF/src/MachO/VersionMin.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -20,23 +20,18 @@
 #include "LIEF/MachO/VersionMin.hpp"
 #include "MachO/Structures.hpp"

-namespace LIEF {
-namespace MachO {
+
+namespace LIEF::MachO {

 VersionMin::VersionMin(const details::version_min_command& version_cmd) :
-  LoadCommand::LoadCommand{LoadCommand::TYPE(version_cmd.cmd), version_cmd.cmdsize},
-  version_{{
-    static_cast<uint32_t>((version_cmd.version >> 16) & 0xFFFF),
-    static_cast<uint32_t>((version_cmd.version >>  8) & 0xFF),
-    static_cast<uint32_t>((version_cmd.version >>  0) & 0xFF)
-  }},
-  sdk_{{
-    static_cast<uint32_t>((version_cmd.sdk >> 16) & 0xFFFF),
-    static_cast<uint32_t>((version_cmd.sdk >>  8) & 0xFF),
-    static_cast<uint32_t>((version_cmd.sdk >>  0) & 0xFF)
-  }}
-{
-}
+  LoadCommand::LoadCommand{LoadCommand::TYPE(version_cmd.cmd),
+                           version_cmd.cmdsize},
+  version_{{static_cast<uint32_t>((version_cmd.version >> 16) & 0xFFFF),
+            static_cast<uint32_t>((version_cmd.version >> 8) & 0xFF),
+            static_cast<uint32_t>((version_cmd.version >> 0) & 0xFF)}},
+  sdk_{{static_cast<uint32_t>((version_cmd.sdk >> 16) & 0xFFFF),
+        static_cast<uint32_t>((version_cmd.sdk >> 8) & 0xFF),
+        static_cast<uint32_t>((version_cmd.sdk >> 0) & 0xFF)}} {}

 void VersionMin::accept(Visitor& visitor) const {
   visitor.visit(*this);
@@ -51,4 +46,3 @@ std::ostream& VersionMin::print(std::ostream& os) const {


 }
-}
diff --git a/deps/LIEF/src/MachO/dyld_opcodes.hpp b/deps/LIEF/src/MachO/dyld_opcodes.hpp
new file mode 100644
index 00000000000..7a945f7acb1
--- /dev/null
+++ b/deps/LIEF/src/MachO/dyld_opcodes.hpp
@@ -0,0 +1,49 @@
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
+ *
+ * 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.
+ */
+#ifndef LIEF_MACHO_DYLD_OPCODES_H
+#define LIEF_MACHO_DYLD_OPCODES_H
+#include <cstdint>
+
+#include "logging.hpp"
+#include "LIEF/MachO/SegmentCommand.hpp"
+
+namespace LIEF::MachO {
+
+template<class T>
+inline T safe_dyld_opcode_count(const SegmentCommand* segment,
+                                uint64_t segment_offset, uint64_t pointer_size,
+                                uint64_t count) {
+  if (segment == nullptr || pointer_size == 0) {
+    return count;
+  }
+  const uint64_t seg_size = segment->content().size();
+  uint64_t remaining = 0;
+  if (segment_offset < seg_size) {
+    remaining = seg_size - segment_offset;
+  }
+
+  const uint64_t max_count = remaining / pointer_size + 1;
+
+  if (count > max_count) {
+    LIEF_WARN("dyld opcode repeat count ({}) is too large ({})", count, max_count);
+    return static_cast<T>(max_count);
+  }
+
+  return static_cast<T>(count);
+}
+
+}
+#endif
diff --git a/deps/LIEF/src/MachO/endianness_support.cpp b/deps/LIEF/src/MachO/endianness_support.cpp
index 426fb958109..1d485729283 100644
--- a/deps/LIEF/src/MachO/endianness_support.cpp
+++ b/deps/LIEF/src/MachO/endianness_support.cpp
@@ -1,4 +1,4 @@
-/* Copyright 2021 - 2025 R. Thomas
+/* Copyright 2021 - 2026 R. Thomas
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -30,7 +30,9 @@ void swap_endian<MachO::details::mach_header>(MachO::details::mach_header* hdr)
 }

 template<>
-void swap_endian<MachO::details::mach_header_64>(MachO::details::mach_header_64* hdr) {
+void swap_endian<MachO::details::mach_header_64>(
+    MachO::details::mach_header_64* hdr
+) {
   swap_endian(&hdr->magic);
   swap_endian(&hdr->cputype);
   swap_endian(&hdr->cpusubtype);
@@ -47,7 +49,7 @@ void swap_endian<MachO::details::load_command>(MachO::details::load_command* hdr
   swap_endian(&hdr->cmdsize);
 }

-template <typename segment_command>
+template<typename segment_command>
 void swap_endian_seg(segment_command* cmd) {
   swap_endian(&cmd->cmd);
   swap_endian(&cmd->cmdsize);
@@ -62,16 +64,20 @@ void swap_endian_seg(segment_command* cmd) {
 }

 template<>
-void swap_endian<MachO::details::segment_command_32>(MachO::details::segment_command_32* hdr) {
+void swap_endian<MachO::details::segment_command_32>(
+    MachO::details::segment_command_32* hdr
+) {
   swap_endian_seg(hdr);
 }

 template<>
-void swap_endian<MachO::details::segment_command_64>(MachO::details::segment_command_64* hdr) {
+void swap_endian<MachO::details::segment_command_64>(
+    MachO::details::segment_command_64* hdr
+) {
   swap_endian_seg(hdr);
 }

-template <typename section>
+template<typename section>
 void swap_endian_sec(section* hdr) {
   swap_endian(&hdr->addr);
   swap_endian(&hdr->size);
@@ -96,7 +102,9 @@ void swap_endian<MachO::details::section_64>(MachO::details::section_64* hdr) {
 }

 template<>
-void swap_endian<MachO::details::dylib_command>(MachO::details::dylib_command* hdr) {
+void swap_endian<MachO::details::dylib_command>(
+    MachO::details::dylib_command* hdr
+) {
   swap_endian(&hdr->cmd);
   swap_endian(&hdr->cmdsize);
   swap_endian(&hdr->name);
@@ -106,35 +114,45 @@ void swap_endian<MachO::details::dylib_command>(MachO::details::dylib_command* h
 }

 template<>
-void swap_endian<MachO::details::sub_framework_command>(MachO::details::sub_framework_command* hdr) {
+void swap_endian<MachO::details::sub_framework_command>(
+    MachO::details::sub_framework_command* hdr
+) {
   swap_endian(&hdr->cmd);
   swap_endian(&hdr->cmdsize);
   swap_endian(&hdr->umbrella);
 }

 template<>
-void swap_endian<MachO::details::sub_client_command>(MachO::details::sub_client_command* hdr) {
+void swap_endian<MachO::details::sub_client_command>(
+    MachO::details::sub_client_command* hdr
+) {
   swap_endian(&hdr->cmd);
   swap_endian(&hdr->cmdsize);
   swap_endian(&hdr->client);
 }

 template<>
-void swap_endian<MachO::details::sub_umbrella_command>(MachO::details::sub_umbrella_command* hdr) {
+void swap_endian<MachO::details::sub_umbrella_command>(
+    MachO::details::sub_umbrella_command* hdr
+) {
   swap_endian(&hdr->cmd);
   swap_endian(&hdr->cmdsize);
   swap_endian(&hdr->sub_umbrella);
 }

 template<>
-void swap_endian<MachO::details::sub_library_command>(MachO::details::sub_library_command* hdr) {
+void swap_endian<MachO::details::sub_library_command>(
+    MachO::details::sub_library_command* hdr
+) {
   swap_endian(&hdr->cmd);
   swap_endian(&hdr->cmdsize);
   swap_endian(&hdr->sub_library);
 }

 template<>
-void swap_endian<MachO::details::prebound_dylib_command>(MachO::details::prebound_dylib_command* hdr) {
+void swap_endian<MachO::details::prebound_dylib_command>(
+    MachO::details::prebound_dylib_command* hdr
+) {
   swap_endian(&hdr->cmd);
   swap_endian(&hdr->cmdsize);
   swap_endian(&hdr->name);
@@ -143,21 +161,25 @@ void swap_endian<MachO::details::prebound_dylib_command>(MachO::details::preboun
 }

 template<>
-void swap_endian<MachO::details::dylinker_command>(MachO::details::dylinker_command* hdr) {
+void swap_endian<MachO::details::dylinker_command>(
+    MachO::details::dylinker_command* hdr
+) {
   swap_endian(&hdr->cmd);
   swap_endian(&hdr->cmdsize);
   swap_endian(&hdr->name);
 }

 template<>
-void swap_endian<MachO::details::thread_command>(MachO::details::thread_command* hdr) {
+void swap_endian<MachO::details::thread_command>(
+    MachO::details::thread_command* hdr
+) {
   swap_endian(&hdr->cmd);
   swap_endian(&hdr->cmdsize);
   swap_endian(&hdr->flavor);
   swap_endian(&hdr->count);
 }

-template <typename routine>
+template<typename routine>
 void swap_endian_routine(routine* hdr) {
   swap_endian(&hdr->cmd);
   swap_endian(&hdr->cmdsize);
@@ -172,17 +194,23 @@ void swap_endian_routine(routine* hdr) {
 }

 template<>
-void swap_endian<MachO::details::routines_command_32>(MachO::details::routines_command_32* hdr) {
+void swap_endian<MachO::details::routines_command_32>(
+    MachO::details::routines_command_32* hdr
+) {
   return swap_endian_routine(hdr);
 }

 template<>
-void swap_endian<MachO::details::routines_command_64>(MachO::details::routines_command_64* hdr) {
+void swap_endian<MachO::details::routines_command_64>(
+    MachO::details::routines_command_64* hdr
+) {
   return swap_endian_routine(hdr);
 }

 template<>
-void swap_endian<MachO::details::symtab_command>(MachO::details::symtab_command* hdr) {
+void swap_endian<MachO::details::symtab_command>(
+    MachO::details::symtab_command* hdr
+) {
   swap_endian(&hdr->cmd);
   swap_endian(&hdr->cmdsize);
   swap_endian(&hdr->symoff);
@@ -192,7 +220,9 @@ void swap_endian<MachO::details::symtab_command>(MachO::details::symtab_command*
 }

 template<>
-void swap_endian<MachO::details::dysymtab_command>(MachO::details::dysymtab_command* hdr) {
+void swap_endian<MachO::details::dysymtab_command>(
+    MachO::details::dysymtab_command* hdr
+) {
   swap_endian(&hdr->cmd);
   swap_endian(&hdr->cmdsize);
   swap_endian(&hdr->ilocalsym);
@@ -216,12 +246,14 @@ void swap_endian<MachO::details::dysymtab_command>(MachO::details::dysymtab_comm
 }

 template<>
-void swap_endian<MachO::details::dylib_table_of_contents>(MachO::details::dylib_table_of_contents* hdr) {
+void swap_endian<MachO::details::dylib_table_of_contents>(
+    MachO::details::dylib_table_of_contents* hdr
+) {
   swap_endian(&hdr->symbol_index);
   swap_endian(&hdr->module_index);
 }

-template <typename dylib_module>
+template<typename dylib_module>
 void swap_endian_module(dylib_module* hdr) {
   swap_endian(&hdr->module_name);
   swap_endian(&hdr->iextdefsym);
@@ -239,22 +271,30 @@ void swap_endian_module(dylib_module* hdr) {
 }

 template<>
-void swap_endian<MachO::details::dylib_module_64>(MachO::details::dylib_module_64* hdr) {
+void swap_endian<MachO::details::dylib_module_64>(
+    MachO::details::dylib_module_64* hdr
+) {
   return swap_endian_module(hdr);
 }

 template<>
-void swap_endian<MachO::details::dylib_module_32>(MachO::details::dylib_module_32* hdr) {
+void swap_endian<MachO::details::dylib_module_32>(
+    MachO::details::dylib_module_32* hdr
+) {
   return swap_endian_module(hdr);
 }

 template<>
-void swap_endian<MachO::details::dylib_reference>(MachO::details::dylib_reference* hdr) {
-  swap_endian((uint32_t*)hdr);
+void swap_endian<MachO::details::dylib_reference>(
+    MachO::details::dylib_reference* hdr
+) {
+  swap_endian(reinterpret_cast<uint32_t*>(hdr));
 }

 template<>
-void swap_endian<MachO::details::twolevel_hints_command>(MachO::details::twolevel_hints_command* hdr) {
+void swap_endian<MachO::details::twolevel_hints_command>(
+    MachO::details::twolevel_hints_command* hdr
+) {
   swap_endian(&hdr->cmd);
   swap_endian(&hdr->cmdsize);
   swap_endian(&hdr->offset);
@@ -262,13 +302,17 @@ void swap_endian<MachO::details::twolevel_hints_command>(MachO::details::twoleve
 }

 template<>
-void swap_endian<MachO::details::twolevel_hint>(MachO::details::twolevel_hint* hdr) {
-  swap_endian((uint32_t*)hdr);
+void swap_endian<MachO::details::twolevel_hint>(
+    MachO::details::twolevel_hint* hdr
+) {
+  swap_endian(reinterpret_cast<uint32_t*>(hdr));
 }


 template<>
-void swap_endian<MachO::details::prebind_cksum_command>(MachO::details::prebind_cksum_command* hdr) {
+void swap_endian<MachO::details::prebind_cksum_command>(
+    MachO::details::prebind_cksum_command* hdr
+) {
   swap_endian(&hdr->cmd);
   swap_endian(&hdr->cmdsize);
   swap_endian(&hdr->cksum);
@@ -281,14 +325,18 @@ void swap_endian<MachO::details::uuid_command>(MachO::details::uuid_command* hdr
 }

 template<>
-void swap_endian<MachO::details::rpath_command>(MachO::details::rpath_command* hdr) {
+void swap_endian<MachO::details::rpath_command>(
+    MachO::details::rpath_command* hdr
+) {
   swap_endian(&hdr->cmd);
   swap_endian(&hdr->cmdsize);
   swap_endian(&hdr->path);
 }

 template<>
-void swap_endian<MachO::details::linkedit_data_command>(MachO::details::linkedit_data_command* hdr) {
+void swap_endian<MachO::details::linkedit_data_command>(
+    MachO::details::linkedit_data_command* hdr
+) {
   swap_endian(&hdr->cmd);
   swap_endian(&hdr->cmdsize);
   swap_endian(&hdr->dataoff);
@@ -296,21 +344,36 @@ void swap_endian<MachO::details::linkedit_data_command>(MachO::details::linkedit
 }

 template<>
-void swap_endian<MachO::details::data_in_code_entry>(MachO::details::data_in_code_entry* hdr) {
+void swap_endian<MachO::details::data_in_code_entry>(
+    MachO::details::data_in_code_entry* hdr
+) {
   swap_endian(&hdr->offset);
   swap_endian(&hdr->length);
   swap_endian(&hdr->kind);
 }

 template<>
-void swap_endian<MachO::details::source_version_command>(MachO::details::source_version_command* hdr) {
+void swap_endian<MachO::details::note_command>(MachO::details::note_command* hdr) {
+  swap_endian(&hdr->cmd);
+  swap_endian(&hdr->cmdsize);
+  // hdr->data_owner is a raw char array: skip byte-swapped.
+  swap_endian(&hdr->offset);
+  swap_endian(&hdr->size);
+}
+
+template<>
+void swap_endian<MachO::details::source_version_command>(
+    MachO::details::source_version_command* hdr
+) {
   swap_endian(&hdr->cmd);
   swap_endian(&hdr->cmdsize);
   swap_endian(&hdr->version);
 }

 template<>
-void swap_endian<MachO::details::encryption_info_command>(MachO::details::encryption_info_command* hdr) {
+void swap_endian<MachO::details::encryption_info_command>(
+    MachO::details::encryption_info_command* hdr
+) {
   swap_endian(&hdr->cmd);
   swap_endian(&hdr->cmdsize);
   swap_endian(&hdr->cryptoff);
@@ -319,7 +382,9 @@ void swap_endian<MachO::details::encryption_info_command>(MachO::details::encryp
 }

 template<>
-void swap_endian<MachO::details::version_min_command>(MachO::details::version_min_command* hdr) {
+void swap_endian<MachO::details::version_min_command>(
+    MachO::details::version_min_command* hdr
+) {
   swap_endian(&hdr->cmd);
   swap_endian(&hdr->cmdsize);
   swap_endian(&hdr->version);
@@ -327,7 +392,9 @@ void swap_endian<MachO::details::version_min_command>(MachO::details::version_mi
 }

 template<>
-void swap_endian<MachO::details::build_version_command>(MachO::details::build_version_command* hdr) {
+void swap_endian<MachO::details::build_version_command>(
+    MachO::details::build_version_command* hdr
+) {
   swap_endian(&hdr->cmd);
   swap_endian(&hdr->cmdsize);
   swap_endian(&hdr->platform);
@@ -337,13 +404,17 @@ void swap_endian<MachO::details::build_version_command>(MachO::details::build_ve
 }

 template<>
-void swap_endian<MachO::details::build_tool_version>(MachO::details::build_tool_version* hdr) {
+void swap_endian<MachO::details::build_tool_version>(
+    MachO::details::build_tool_version* hdr
+) {
   swap_endian(&hdr->tool);
   swap_endian(&hdr->version);
 }

 template<>
-void swap_endian<MachO::details::dyld_info_command>(MachO::details::dyld_info_command* hdr) {
+void swap_endian<MachO::details::dyld_info_command>(
+    MachO::details::dyld_info_command* hdr
+) {
   swap_endian(&hdr->cmd);
   swap_endian(&hdr->cmdsize);
   swap_endian(&hdr->rebase_off);
@@ -359,14 +430,18 @@ void swap_endian<MachO::details::dyld_info_command>(MachO::details::dyld_info_co
 }

 template<>
-void swap_endian<MachO::details::linker_option_command>(MachO::details::linker_option_command* hdr) {
+void swap_endian<MachO::details::linker_option_command>(
+    MachO::details::linker_option_command* hdr
+) {
   swap_endian(&hdr->cmd);
   swap_endian(&hdr->cmdsize);
   swap_endian(&hdr->count);
 }

 template<>
-void swap_endian<MachO::details::symseg_command>(MachO::details::symseg_command* hdr) {
+void swap_endian<MachO::details::symseg_command>(
+    MachO::details::symseg_command* hdr
+) {
   swap_endian(&hdr->cmd);
   swap_endian(&hdr->cmdsize);
   swap_endian(&hdr->offset);
@@ -374,13 +449,17 @@ void swap_endian<MachO::details::symseg_command>(MachO::details::symseg_command*
 }

 template<>
-void swap_endian<MachO::details::ident_command>(MachO::details::ident_command* hdr) {
+void swap_endian<MachO::details::ident_command>(
+    MachO::details::ident_command* hdr
+) {
   swap_endian(&hdr->cmd);
   swap_endian(&hdr->cmdsize);
 }

 template<>
-void swap_endian<MachO::details::fvmfile_command>(MachO::details::fvmfile_command* hdr) {
+void swap_endian<MachO::details::fvmfile_command>(
+    MachO::details::fvmfile_command* hdr
+) {
   swap_endian(&hdr->cmd);
   swap_endian(&hdr->cmdsize);
   swap_endian(&hdr->name);
@@ -388,7 +467,9 @@ void swap_endian<MachO::details::fvmfile_command>(MachO::details::fvmfile_comman
 }

 template<>
-void swap_endian<MachO::details::entry_point_command>(MachO::details::entry_point_command* hdr) {
+void swap_endian<MachO::details::entry_point_command>(
+    MachO::details::entry_point_command* hdr
+) {
   swap_endian(&hdr->cmd);
   swap_endian(&hdr->cmdsize);
   swap_endian(&hdr->entryoff);
@@ -396,7 +477,9 @@ void swap_endian<MachO::details::entry_point_command>(MachO::details::entry_poin
 }

 template<>
-void swap_endian<MachO::details::fileset_entry_command>(MachO::details::fileset_entry_command* hdr) {
+void swap_endian<MachO::details::fileset_entry_command>(
+    MachO::details::fileset_entry_command* hdr
+) {
   swap_endian(&hdr->cmd);
   swap_endian(&hdr->cmdsize);
   swap_endian(&hdr->vmaddr);
@@ -406,7 +489,9 @@ void swap_endian<MachO::details::fileset_entry_command>(MachO::details::fileset_
 }

 template<>
-void swap_endian<MachO::details::relocation_info>(MachO::details::relocation_info* hdr) {
+void swap_endian<MachO::details::relocation_info>(
+    MachO::details::relocation_info* hdr
+) {
   struct mirror_t {
     int32_t A;
     uint32_t B;
@@ -417,7 +502,9 @@ void swap_endian<MachO::details::relocation_info>(MachO::details::relocation_inf
 }

 template<>
-void swap_endian<MachO::details::scattered_relocation_info>(MachO::details::scattered_relocation_info* hdr) {
+void swap_endian<MachO::details::scattered_relocation_info>(
+    MachO::details::scattered_relocation_info* hdr
+) {
   struct mirror_t {
     int32_t A;
     uint32_t B;
@@ -426,7 +513,7 @@ void swap_endian<MachO::details::scattered_relocation_info>(MachO::details::scat
   swap_endian(&mirror->A);
 }

-template <typename nlist>
+template<typename nlist>
 void swap_endian_nlist(nlist* hdr) {
   swap_endian(&hdr->n_strx);
   swap_endian(&hdr->n_type);
@@ -446,7 +533,9 @@ void swap_endian<MachO::details::nlist_64>(MachO::details::nlist_64* hdr) {
 }

 template<>
-void swap_endian<MachO::details::x86_thread_state64_t>(MachO::details::x86_thread_state64_t* hdr) {
+void swap_endian<MachO::details::x86_thread_state64_t>(
+    MachO::details::x86_thread_state64_t* hdr
+) {
   swap_endian(&hdr->rax);
   swap_endian(&hdr->rbx);
   swap_endian(&hdr->rcx);
@@ -471,7 +560,9 @@ void swap_endian<MachO::details::x86_thread_state64_t>(MachO::details::x86_threa
 }

 template<>
-void swap_endian<MachO::details::x86_thread_state_t>(MachO::details::x86_thread_state_t* hdr) {
+void swap_endian<MachO::details::x86_thread_state_t>(
+    MachO::details::x86_thread_state_t* hdr
+) {
   swap_endian(&hdr->eax);
   swap_endian(&hdr->ebx);
   swap_endian(&hdr->ecx);
@@ -491,7 +582,9 @@ void swap_endian<MachO::details::x86_thread_state_t>(MachO::details::x86_thread_
 }

 template<>
-void swap_endian<MachO::details::arm_thread_state_t>(MachO::details::arm_thread_state_t* hdr) {
+void swap_endian<MachO::details::arm_thread_state_t>(
+    MachO::details::arm_thread_state_t* hdr
+) {
   swap_endian(&hdr->r0);
   swap_endian(&hdr->r1);
   swap_endian(&hdr->r2);
@@ -512,9 +605,11 @@ void swap_endian<MachO::details::arm_thread_state_t>(MachO::details::arm_thread_
 }

 template<>
-void swap_endian<MachO::details::arm_thread_state64_t>(MachO::details::arm_thread_state64_t* hdr) {
-  for (size_t i = 0; i < 29; ++i) {
-    swap_endian(&hdr->x[i]);
+void swap_endian<MachO::details::arm_thread_state64_t>(
+    MachO::details::arm_thread_state64_t* hdr
+) {
+  for (uint64_t& i : hdr->x) {
+    swap_endian(&i);
   }
   swap_endian(&hdr->fp);
   swap_endian(&hdr->lr);
@@ -524,11 +619,13 @@ void swap_endian<MachO::details::arm_thread_state64_t>(MachO::details::arm_threa
 }

 template<>
-void swap_endian<MachO::details::ppc_thread_state64_t>(MachO::details::ppc_thread_state64_t* hdr) {
+void swap_endian<MachO::details::ppc_thread_state64_t>(
+    MachO::details::ppc_thread_state64_t* hdr
+) {
   swap_endian(&hdr->srr0);
   swap_endian(&hdr->srr1);
-  for (size_t i = 0; i < 32; ++i) {
-    swap_endian(&hdr->r[i]);
+  for (uint64_t& i : hdr->r) {
+    swap_endian(&i);
   }
   swap_endian(&hdr->cr);
   swap_endian(&hdr->xer);
@@ -538,11 +635,13 @@ void swap_endian<MachO::details::ppc_thread_state64_t>(MachO::details::ppc_threa
 }

 template<>
-void swap_endian<MachO::details::ppc_thread_state_t>(MachO::details::ppc_thread_state_t* hdr) {
+void swap_endian<MachO::details::ppc_thread_state_t>(
+    MachO::details::ppc_thread_state_t* hdr
+) {
   swap_endian(&hdr->srr0);
   swap_endian(&hdr->srr1);
-  for (size_t i = 0; i < 32; ++i) {
-    swap_endian(&hdr->r[i]);
+  for (unsigned int& i : hdr->r) {
+    swap_endian(&i);
   }
   swap_endian(&hdr->cr);
   swap_endian(&hdr->xer);
diff --git a/deps/LIEF/src/MachO/exports_trie.cpp b/deps/LIEF/src/MachO/exports_trie.cpp
index 1bd46e3d2a5..19e4d921a90 100644
--- a/deps/LIEF/src/MachO/exports_trie.cpp
+++ b/deps/LIEF/src/MachO/exports_trie.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -17,16 +17,28 @@
 #include "LIEF/BinaryStream/BinaryStream.hpp"
 #include "LIEF/MachO/ExportInfo.hpp"

+#include <algorithm>
+#include <unordered_set>
+
+#include <spdlog/fmt/fmt.h>
+
 #include "logging.hpp"

 #include "MachO/exports_trie.hpp"
 #include "MachO/TrieNode.hpp"

-namespace LIEF {
-namespace MachO {
-void show_trie(std::ostream& output, std::string output_prefix,
-               BinaryStream& stream, uint64_t start, uint64_t end, const std::string& prefix) {

+namespace LIEF::MachO {
+
+void show_trie_impl(std::ostream& output, std::string output_prefix,
+                    BinaryStream& stream, uint64_t start, uint64_t end,
+                    const std::string& prefix,
+                    std::unordered_set<uint64_t>& visited, size_t depth) {
+  constexpr size_t MAX_TRIE_DEPTH = 60;
+
+  if (depth > MAX_TRIE_DEPTH) {
+    return;
+  }

   if (stream.pos() >= end) {
     return;
@@ -36,22 +48,23 @@ void show_trie(std::ostream& output, std::string output_prefix,
     return;
   }

-  uint8_t terminal_size = 0;
-  if (auto res = stream.read<uint8_t>()) {
-    terminal_size = *res;
-  } else {
-    LIEF_ERR("Can't read terminal size");
+  if (!visited.insert(stream.pos()).second) {
     return;
   }

-  uint64_t children_offset = stream.pos() + terminal_size;
+  auto terminal_size = stream.read<uint8_t>();
+  if (!terminal_size) {
+    LIEF_ERR("Failed to read terminal size");
+    return;
+  }

-  if (terminal_size != 0) {
-    ExportInfo::FLAGS flags;
-    if (auto res = stream.read_uleb128()) {
-      flags = ExportInfo::FLAGS(*res);
-    } else {
-      LIEF_ERR("Can't read flags");
+  uint64_t children_offset = stream.pos() + *terminal_size;
+
+  if (*terminal_size != 0) {
+    auto flags =
+        stream.read_uleb128().map([](uint64_t v) { return (ExportInfo::FLAGS)v; });
+    if (!flags) {
+      LIEF_ERR("Failed to read flags");
       return;
     }
     uint64_t address = 0;
@@ -62,7 +75,7 @@ void show_trie(std::ostream& output, std::string output_prefix,

     // REEXPORT
     // ========
-    if (is_true(flags & ExportInfo::FLAGS::REEXPORT)) {
+    if (is_true(*flags & ExportInfo::FLAGS::REEXPORT)) {
       if (auto res = stream.read_uleb128()) {
         ordinal = *res;
       } else {
@@ -85,10 +98,9 @@ void show_trie(std::ostream& output, std::string output_prefix,
     }


-
     // STUB_AND_RESOLVER
     // =================
-    if (is_true(flags & ExportInfo::FLAGS::STUB_AND_RESOLVER)) {
+    if (is_true(*flags & ExportInfo::FLAGS::STUB_AND_RESOLVER)) {
       if (auto res = stream.read_uleb128()) {
         other = *res;
       } else {
@@ -96,89 +108,89 @@ void show_trie(std::ostream& output, std::string output_prefix,
       }
     }

-    output << output_prefix;
-    output << symbol_name;
-    output << "{";
-    output << "addr: " << std::showbase << std::hex << address << ", ";
-    output << "flags: " << std::showbase << std::hex << static_cast<uint64_t>(flags);
-    if (is_true(flags & ExportInfo::FLAGS::REEXPORT)) {
-      output << ", ";
-      output << "re-exported from #" << std::dec << ordinal << " - " << imported_name;
+    output << fmt::format("{}{}{{addr: {:#x}, flags: {:#x}", output_prefix,
+                          symbol_name, address, (uint64_t)*flags);
+    if (is_true(*flags & ExportInfo::FLAGS::REEXPORT)) {
+      output << fmt::format(", re-exported from #{} - {}", ordinal, imported_name);
     }

-    if (is_true(flags & ExportInfo::FLAGS::STUB_AND_RESOLVER) && other > 0) {
-      output << ", ";
-      output << "other:" << std::showbase << std::hex << other;
+    if (is_true(*flags & ExportInfo::FLAGS::STUB_AND_RESOLVER) && other > 0) {
+      output << fmt::format(", other:{:#x}", other);
     }

-    //if (!binary_->has_symbol(symbol_name)) {
-    //  output << " [NOT REGISTRED]";
-    //}
-
-    output << "}";
-    output << '\n';
-
+    output << "}\n";
   }
   stream.setpos(children_offset);
-  uint32_t nb_children = 0;
-  if (auto res = stream.read_uleb128()) {
-    nb_children = *res;
-  } else {
+  auto nb_children = stream.read_uleb128();
+  if (!nb_children) {
+    return;
+  }
+
+  if (stream.pos() >= end) {
     return;
   }

+  const uint64_t remaining = end - stream.pos();
+  const uint64_t children = std::min<uint64_t>(*nb_children, remaining);
+
   output_prefix += "    ";
-  for (size_t i = 0; i < nb_children; ++i) {
-    std::string suffix;
-    if (auto res = stream.read_string()) {
-      suffix = std::move(*res);
-    } else {
+  for (uint64_t i = 0; i < children; ++i) {
+    auto suffix = stream.read_string();
+    if (!suffix) {
       break;
     }

-    std::string name = prefix + suffix;
-    uint32_t child_node_offet = 0;
-
-    if (auto res = stream.read_uleb128()) {
-      child_node_offet = *res;
-    } else {
+    std::string name = prefix + *suffix;
+    auto child_node_offet = stream.read_uleb128();
+    if (!child_node_offet || *child_node_offet == 0) {
       break;
     }

-    if (child_node_offet == 0) {
+    if (*child_node_offet >= end - start) {
       break;
     }

-    output << output_prefix << name << "@off." << std::hex << std::showbase << stream.pos() << '\n';
+    output << fmt::format("{}{}@off.{:#x}\n", output_prefix, name, stream.pos());

-    size_t current_pos = stream.pos();
-    stream.setpos(start + child_node_offet);
-    show_trie(output, output_prefix, stream, start, end, name);
-    stream.setpos(current_pos);
+    ScopedStream scope(stream, start + *child_node_offet);
+    show_trie_impl(output, output_prefix, *scope, start, end, name, visited,
+                   depth + 1);
   }
+}

+void show_trie(std::ostream& output, std::string output_prefix,
+               BinaryStream& stream, uint64_t start, uint64_t end,
+               const std::string& prefix) {
+  std::unordered_set<uint64_t> visited;
+  show_trie_impl(output, std::move(output_prefix), stream, start, end, prefix,
+                 visited, /*depth=*/0);
 }

-std::vector<uint8_t> create_trie(const exports_list_t& exports, size_t pointer_size) {
+std::vector<uint8_t> create_trie(const exports_list_t& exports,
+                                 size_t pointer_size) {

   std::unique_ptr<TrieNode> start = TrieNode::create("");
   std::vector<std::unique_ptr<TrieNode>> nodes;

-  // Build the tree adding every symbole to the root.
+  // Build the tree by adding every symbol to the root.
   TrieNode* start_ptr = start.get();

   for (const std::unique_ptr<ExportInfo>& info : exports) {
-    start_ptr->add_symbol(*info, nodes);
+    TrieNode::node_list_t sym_node = start_ptr->add_symbol(*info);
+    nodes.insert(nodes.end(), std::make_move_iterator(sym_node.begin()),
+                 std::make_move_iterator(sym_node.end()));
   }

-  // Perform a poor topological sort to have parents before childs in ordered_nodes
+  // Perform a poor topological sort to have parents before children in
+  // ordered_nodes
   std::vector<TrieNode*> ordered_nodes;
   ordered_nodes.reserve(exports.size() * 2);
   for (const std::unique_ptr<ExportInfo>& info : exports) {
-    start_ptr->add_ordered_nodes(*info, ordered_nodes);
+    std::vector<TrieNode*> ord_nodes = start_ptr->add_ordered_nodes(*info);
+    ordered_nodes.insert(ordered_nodes.end(), ord_nodes.begin(), ord_nodes.end());
   }

-  bool more;
+  bool more = false;
   do {
     uint32_t offset = 0;
     more = false;
@@ -200,4 +212,3 @@ std::vector<uint8_t> create_trie(const exports_list_t& exports, size_t pointer_s
   return raw_output.raw();
 }
 }
-}
diff --git a/deps/LIEF/src/MachO/exports_trie.hpp b/deps/LIEF/src/MachO/exports_trie.hpp
index 4b48db3ea04..cf817a4890c 100644
--- a/deps/LIEF/src/MachO/exports_trie.hpp
+++ b/deps/LIEF/src/MachO/exports_trie.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -26,9 +26,11 @@ namespace MachO {
 class ExportInfo;
 using exports_list_t = std::vector<std::unique_ptr<ExportInfo>>;
 void show_trie(std::ostream& output, std::string output_prefix,
-               BinaryStream& stream, uint64_t start, uint64_t end, const std::string& prefix);
+               BinaryStream& stream, uint64_t start, uint64_t end,
+               const std::string& prefix);

-std::vector<uint8_t> create_trie(const exports_list_t& exports, size_t pointer_size);
+std::vector<uint8_t> create_trie(const exports_list_t& exports,
+                                 size_t pointer_size);
 }
 }
 #endif
diff --git a/deps/LIEF/src/MachO/hash.cpp b/deps/LIEF/src/MachO/hash.cpp
index d6069ca1fe1..0fc17272559 100644
--- a/deps/LIEF/src/MachO/hash.cpp
+++ b/deps/LIEF/src/MachO/hash.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -15,11 +15,65 @@
  */

 #include "LIEF/MachO/hash.hpp"
-#include "LIEF/MachO.hpp"
+#include "LIEF/MachO/Binary.hpp"
+#include "LIEF/MachO/BinaryParser.hpp"
+#include "LIEF/MachO/BindingInfo.hpp"
+#include "LIEF/MachO/BindingInfoIterator.hpp"
+#include "LIEF/MachO/BuildToolVersion.hpp"
+#include "LIEF/MachO/BuildVersion.hpp"
+#include "LIEF/MachO/Builder.hpp"
+#include "LIEF/MachO/ChainedBindingInfo.hpp"
+#include "LIEF/MachO/CodeSignature.hpp"
+#include "LIEF/MachO/CodeSignatureDir.hpp"
+#include "LIEF/MachO/DataCodeEntry.hpp"
+#include "LIEF/MachO/DataInCode.hpp"
+#include "LIEF/MachO/DyldBindingInfo.hpp"
+#include "LIEF/MachO/DyldChainedFixups.hpp"
+#include "LIEF/MachO/DyldChainedFixupsCreator.hpp"
+#include "LIEF/MachO/DyldEnvironment.hpp"
+#include "LIEF/MachO/DyldExportsTrie.hpp"
+#include "LIEF/MachO/DyldInfo.hpp"
+#include "LIEF/MachO/DylibCommand.hpp"
+#include "LIEF/MachO/DylinkerCommand.hpp"
+#include "LIEF/MachO/DynamicSymbolCommand.hpp"
+#include "LIEF/MachO/EncryptionInfo.hpp"
+#include "LIEF/MachO/ExportInfo.hpp"
+#include "LIEF/MachO/FatBinary.hpp"
+#include "LIEF/MachO/FilesetCommand.hpp"
+#include "LIEF/MachO/FunctionStarts.hpp"
+#include "LIEF/MachO/Header.hpp"
+#include "LIEF/MachO/LinkEdit.hpp"
+#include "LIEF/MachO/LinkerOptHint.hpp"
+#include "LIEF/MachO/LoadCommand.hpp"
+#include "LIEF/MachO/MainCommand.hpp"
+#include "LIEF/MachO/NoteCommand.hpp"
+#include "LIEF/MachO/Parser.hpp"
+#include "LIEF/MachO/RPathCommand.hpp"
+#include "LIEF/MachO/Relocation.hpp"
+#include "LIEF/MachO/RelocationDyld.hpp"
+#include "LIEF/MachO/RelocationFixup.hpp"
+#include "LIEF/MachO/RelocationObject.hpp"
+#include "LIEF/MachO/Routine.hpp"
+#include "LIEF/MachO/Section.hpp"
+#include "LIEF/MachO/SegmentCommand.hpp"
+#include "LIEF/MachO/SegmentSplitInfo.hpp"
+#include "LIEF/MachO/SourceVersion.hpp"
+#include "LIEF/MachO/Stub.hpp"
+#include "LIEF/MachO/SubFramework.hpp"
+#include "LIEF/MachO/Symbol.hpp"
+#include "LIEF/MachO/SymbolCommand.hpp"
+#include "LIEF/MachO/ThreadCommand.hpp"
+#include "LIEF/MachO/TwoLevelHints.hpp"
+#include "LIEF/MachO/UUIDCommand.hpp"
+#include "LIEF/MachO/UnknownCommand.hpp"
+#include "LIEF/MachO/VersionMin.hpp"
+#include "LIEF/MachO/hash.hpp"
+#include "LIEF/MachO/json.hpp"
+#include "LIEF/MachO/utils.hpp"
+
 #include "Object.tcc"

-namespace LIEF {
-namespace MachO {
+namespace LIEF::MachO {

 Hash::~Hash() = default;

@@ -29,8 +83,8 @@ size_t Hash::hash(const Object& obj) {

 void Hash::visit(const Binary& binary) {
   process(binary.header());
-  process(std::begin(binary.commands()), std::end(binary.commands()));
-  process(std::begin(binary.symbols()), std::end(binary.symbols()));
+  process(binary.commands().begin(), binary.commands().end());
+  process(binary.symbols().begin(), binary.symbols().end());
 }


@@ -79,7 +133,7 @@ void Hash::visit(const SegmentCommand& segment) {
   process(segment.numberof_sections());
   process(segment.flags());
   process(segment.content());
-  process(std::begin(segment.sections()), std::end(segment.sections()));
+  process(segment.sections().begin(), segment.sections().end());
 }

 void Hash::visit(const Section& section) {
@@ -95,7 +149,7 @@ void Hash::visit(const Section& section) {
   process(section.reserved2());
   process(section.reserved3());
   process(section.raw_flags());
-  process(std::begin(section.relocations()), std::end(section.relocations()));
+  process(section.relocations().begin(), section.relocations().end());
 }

 void Hash::visit(const MainCommand& maincmd) {
@@ -179,13 +233,13 @@ void Hash::visit(const Symbol& symbol) {
   process(symbol.numberof_sections());
   process(symbol.description());

-  //if (symbol.has_binding_info()) {
-  //  process(symbol.binding_info());
-  //}
+  // if (symbol.has_binding_info()) {
+  //   process(symbol.binding_info());
+  // }

-  //if (symbol.has_export_info()) {
-  //  process(symbol.export_info());
-  //}
+  // if (symbol.has_export_info()) {
+  //   process(symbol.export_info());
+  // }
 }

 void Hash::visit(const Relocation& relocation) {
@@ -268,7 +322,6 @@ void Hash::visit(const FunctionStarts& fs) {
   process(fs.data_offset());
   process(fs.data_size());
   process(fs.functions());
-
 }

 void Hash::visit(const CodeSignature& cs) {
@@ -281,7 +334,7 @@ void Hash::visit(const DataInCode& dic) {
   visit(*dic.as<LoadCommand>());
   process(dic.data_offset());
   process(dic.data_size());
-  process(std::begin(dic.entries()), std::end(dic.entries()));
+  process(dic.entries().begin(), dic.entries().end());
 }

 void Hash::visit(const DataCodeEntry& dce) {
@@ -336,7 +389,7 @@ void Hash::visit(const BuildVersion& e) {
   process(e.platform());
   process(e.minos());
   process(e.sdk());
-  process(std::begin(tools), std::end(tools));
+  process(tools.begin(), tools.end());
 }

 void Hash::visit(const BuildToolVersion& e) {
@@ -367,9 +420,4 @@ void Hash::visit(const LinkerOptHint& e) {
 }


-
-
-
-} // namespace MachO
-} // namespace LIEF
-
+} // namespace LIEF::MachO
diff --git a/deps/LIEF/src/MachO/json.cpp b/deps/LIEF/src/MachO/json.cpp
index 012ab0b673f..616c6a56519 100644
--- a/deps/LIEF/src/MachO/json.cpp
+++ b/deps/LIEF/src/MachO/json.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -14,15 +14,66 @@
  * limitations under the License.
  */

-
 #include "MachO/json_internal.hpp"
-#include "LIEF/MachO.hpp"
+#include "LIEF/MachO/BinaryParser.hpp"
+#include "LIEF/MachO/BindingInfo.hpp"
+#include "LIEF/MachO/BindingInfoIterator.hpp"
+#include "LIEF/MachO/BuildToolVersion.hpp"
+#include "LIEF/MachO/BuildVersion.hpp"
+#include "LIEF/MachO/Builder.hpp"
+#include "LIEF/MachO/ChainedBindingInfo.hpp"
+#include "LIEF/MachO/CodeSignature.hpp"
+#include "LIEF/MachO/CodeSignatureDir.hpp"
+#include "LIEF/MachO/DataCodeEntry.hpp"
+#include "LIEF/MachO/DataInCode.hpp"
+#include "LIEF/MachO/DyldBindingInfo.hpp"
+#include "LIEF/MachO/DyldChainedFixups.hpp"
+#include "LIEF/MachO/DyldChainedFixupsCreator.hpp"
+#include "LIEF/MachO/DyldEnvironment.hpp"
+#include "LIEF/MachO/DyldExportsTrie.hpp"
+#include "LIEF/MachO/DyldInfo.hpp"
+#include "LIEF/MachO/DylibCommand.hpp"
+#include "LIEF/MachO/DylinkerCommand.hpp"
+#include "LIEF/MachO/DynamicSymbolCommand.hpp"
+#include "LIEF/MachO/EncryptionInfo.hpp"
+#include "LIEF/MachO/ExportInfo.hpp"
+#include "LIEF/MachO/FatBinary.hpp"
+#include "LIEF/MachO/FilesetCommand.hpp"
+#include "LIEF/MachO/FunctionStarts.hpp"
+#include "LIEF/MachO/Header.hpp"
+#include "LIEF/MachO/LinkEdit.hpp"
+#include "LIEF/MachO/LinkerOptHint.hpp"
+#include "LIEF/MachO/LoadCommand.hpp"
+#include "LIEF/MachO/MainCommand.hpp"
+#include "LIEF/MachO/NoteCommand.hpp"
+#include "LIEF/MachO/Parser.hpp"
+#include "LIEF/MachO/RPathCommand.hpp"
+#include "LIEF/MachO/Relocation.hpp"
+#include "LIEF/MachO/RelocationDyld.hpp"
+#include "LIEF/MachO/RelocationFixup.hpp"
+#include "LIEF/MachO/RelocationObject.hpp"
+#include "LIEF/MachO/Routine.hpp"
+#include "LIEF/MachO/Section.hpp"
+#include "LIEF/MachO/SegmentCommand.hpp"
+#include "LIEF/MachO/SegmentSplitInfo.hpp"
+#include "LIEF/MachO/SourceVersion.hpp"
+#include "LIEF/MachO/Stub.hpp"
+#include "LIEF/MachO/SubFramework.hpp"
+#include "LIEF/MachO/Symbol.hpp"
+#include "LIEF/MachO/SymbolCommand.hpp"
+#include "LIEF/MachO/ThreadCommand.hpp"
+#include "LIEF/MachO/TwoLevelHints.hpp"
+#include "LIEF/MachO/UUIDCommand.hpp"
+#include "LIEF/MachO/UnknownCommand.hpp"
+#include "LIEF/MachO/VersionMin.hpp"
+#include "LIEF/MachO/hash.hpp"
+#include "LIEF/MachO/utils.hpp"
+#include "LIEF/MachO/EnumToString.hpp"
+
 #include "Object.tcc"
 #include "MachO/Binary.tcc"

-namespace LIEF {
-namespace MachO {
-
+namespace LIEF::MachO {

 template<class T>
 inline void process_command(json& node, const Binary& bin, const char* key) {
@@ -79,12 +130,12 @@ void JsonVisitor::visit(const Binary& binary) {
   }


-  node_["header"]      = header_visitor.get();
-  node_["sections"]    = sections;
-  node_["segments"]    = segments;
-  node_["symbols"]     = symbols;
+  node_["header"] = header_visitor.get();
+  node_["sections"] = sections;
+  node_["segments"] = segments;
+  node_["symbols"] = symbols;
   node_["relocations"] = relocations;
-  node_["libraries"]   = libraries;
+  node_["libraries"] = libraries;

   process_command<UUIDCommand>(node_, binary, "uuid");
   process_command<MainCommand>(node_, binary, "main_command");
@@ -111,22 +162,22 @@ void JsonVisitor::visit(const Header& header) {
   for (Header::FLAGS f : header.flags_list()) {
     flags.emplace_back(to_string(f));
   }
-  node_["magic"]       = to_string(header.magic());
-  node_["cpu_type"]    = to_string(header.cpu_type());
+  node_["magic"] = to_string(header.magic());
+  node_["cpu_type"] = to_string(header.cpu_type());
   node_["cpu_subtype"] = header.cpu_subtype();
-  node_["file_type"]   = to_string(header.file_type());
-  node_["nb_cmds"]     = header.nb_cmds();
+  node_["file_type"] = to_string(header.file_type());
+  node_["nb_cmds"] = header.nb_cmds();
   node_["sizeof_cmds"] = header.sizeof_cmds();
-  node_["reserved"]    = header.reserved();
-  node_["flags"]       = flags;
+  node_["reserved"] = header.reserved();
+  node_["flags"] = flags;
 }


 void JsonVisitor::visit(const LoadCommand& cmd) {
-  node_["command"]        = to_string(cmd.command());
-  node_["command_size"]   = cmd.size();
+  node_["command"] = to_string(cmd.command());
+  node_["command_size"] = cmd.size();
   node_["command_offset"] = cmd.command_offset();
-  node_["data_hash"]      = LIEF::hash(cmd.data());
+  node_["data_hash"] = LIEF::hash(cmd.data());
 }

 void JsonVisitor::visit(const UUIDCommand& uuid) {
@@ -136,10 +187,10 @@ void JsonVisitor::visit(const UUIDCommand& uuid) {

 void JsonVisitor::visit(const SymbolCommand& symbol) {
   visit(*symbol.as<LoadCommand>());
-  node_["symbol_offset"]    = symbol.symbol_offset();
+  node_["symbol_offset"] = symbol.symbol_offset();
   node_["numberof_symbols"] = symbol.numberof_symbols();
-  node_["strings_offset"]   = symbol.strings_offset();
-  node_["strings_size"]     = symbol.strings_size();
+  node_["strings_offset"] = symbol.strings_offset();
+  node_["strings_size"] = symbol.strings_size();
 }

 void JsonVisitor::visit(const SegmentCommand& segment) {
@@ -150,16 +201,16 @@ void JsonVisitor::visit(const SegmentCommand& segment) {
   }

   visit(*segment.as<LoadCommand>());
-  node_["virtual_address"]   = segment.virtual_address();
-  node_["virtual_size"]      = segment.virtual_size();
-  node_["file_size"]         = segment.file_size();
-  node_["file_offset"]       = segment.file_offset();
-  node_["max_protection"]    = segment.max_protection();
-  node_["init_protection"]   = segment.init_protection();
+  node_["virtual_address"] = segment.virtual_address();
+  node_["virtual_size"] = segment.virtual_size();
+  node_["file_size"] = segment.file_size();
+  node_["file_offset"] = segment.file_offset();
+  node_["max_protection"] = segment.max_protection();
+  node_["init_protection"] = segment.init_protection();
   node_["numberof_sections"] = segment.numberof_sections();
-  node_["flags"]             = segment.flags();
-  node_["sections"]          = sections;
-  node_["content_hash"]      = LIEF::hash(segment.content());
+  node_["flags"] = segment.flags();
+  node_["sections"] = sections;
+  node_["content_hash"] = LIEF::hash(segment.content());
 }

 void JsonVisitor::visit(const Section& section) {
@@ -168,19 +219,19 @@ void JsonVisitor::visit(const Section& section) {
   for (Section::FLAGS f : section.flags_list()) {
     flags.emplace_back(to_string(f));
   }
-  node_["name"]                 = section.name();
-  node_["virtual_address"]      = section.virtual_address();
-  node_["offset"]               = section.offset();
-  node_["size"]                 = section.size();
-  node_["alignment"]            = section.alignment();
-  node_["relocation_offset"]    = section.relocation_offset();
+  node_["name"] = section.name();
+  node_["virtual_address"] = section.virtual_address();
+  node_["offset"] = section.offset();
+  node_["size"] = section.size();
+  node_["alignment"] = section.alignment();
+  node_["relocation_offset"] = section.relocation_offset();
   node_["numberof_relocations"] = section.numberof_relocations();
-  node_["flags"]                = section.flags();
-  node_["type"]                 = to_string(section.type());
-  node_["reserved1"]            = section.reserved1();
-  node_["reserved2"]            = section.reserved2();
-  node_["reserved3"]            = section.reserved3();
-  node_["content_hash"]         = LIEF::hash(section.content());
+  node_["flags"] = section.flags();
+  node_["type"] = to_string(section.type());
+  node_["reserved1"] = section.reserved1();
+  node_["reserved2"] = section.reserved2();
+  node_["reserved3"] = section.reserved3();
+  node_["content_hash"] = LIEF::hash(section.content());
 }

 void JsonVisitor::visit(const MainCommand& maincmd) {
@@ -198,24 +249,29 @@ void JsonVisitor::visit(const NoteCommand& note) {
 void JsonVisitor::visit(const DynamicSymbolCommand& dynamic_symbol) {
   visit(*dynamic_symbol.as<LoadCommand>());

-  node_["idx_local_symbol"]                 = dynamic_symbol.idx_local_symbol();
-  node_["nb_local_symbols"]                 = dynamic_symbol.nb_local_symbols();
-  node_["idx_external_define_symbol"]       = dynamic_symbol.idx_external_define_symbol();
-  node_["nb_external_define_symbols"]       = dynamic_symbol.nb_external_define_symbols();
-  node_["idx_undefined_symbol"]             = dynamic_symbol.idx_undefined_symbol();
-  node_["nb_undefined_symbols"]             = dynamic_symbol.nb_undefined_symbols();
-  node_["toc_offset"]                       = dynamic_symbol.toc_offset();
-  node_["nb_toc"]                           = dynamic_symbol.nb_toc();
-  node_["module_table_offset"]              = dynamic_symbol.module_table_offset();
-  node_["nb_module_table"]                  = dynamic_symbol.nb_module_table();
-  node_["external_reference_symbol_offset"] = dynamic_symbol.external_reference_symbol_offset();
-  node_["nb_external_reference_symbols"]    = dynamic_symbol.nb_external_reference_symbols();
-  node_["indirect_symbol_offset"]           = dynamic_symbol.indirect_symbol_offset();
-  node_["nb_indirect_symbols"]              = dynamic_symbol.nb_indirect_symbols();
-  node_["external_relocation_offset"]       = dynamic_symbol.external_relocation_offset();
-  node_["nb_external_relocations"]          = dynamic_symbol.nb_external_relocations();
-  node_["local_relocation_offset"]          = dynamic_symbol.local_relocation_offset();
-  node_["nb_local_relocations"]             = dynamic_symbol.nb_local_relocations();
+  node_["idx_local_symbol"] = dynamic_symbol.idx_local_symbol();
+  node_["nb_local_symbols"] = dynamic_symbol.nb_local_symbols();
+  node_["idx_external_define_symbol"] =
+      dynamic_symbol.idx_external_define_symbol();
+  node_["nb_external_define_symbols"] =
+      dynamic_symbol.nb_external_define_symbols();
+  node_["idx_undefined_symbol"] = dynamic_symbol.idx_undefined_symbol();
+  node_["nb_undefined_symbols"] = dynamic_symbol.nb_undefined_symbols();
+  node_["toc_offset"] = dynamic_symbol.toc_offset();
+  node_["nb_toc"] = dynamic_symbol.nb_toc();
+  node_["module_table_offset"] = dynamic_symbol.module_table_offset();
+  node_["nb_module_table"] = dynamic_symbol.nb_module_table();
+  node_["external_reference_symbol_offset"] =
+      dynamic_symbol.external_reference_symbol_offset();
+  node_["nb_external_reference_symbols"] =
+      dynamic_symbol.nb_external_reference_symbols();
+  node_["indirect_symbol_offset"] = dynamic_symbol.indirect_symbol_offset();
+  node_["nb_indirect_symbols"] = dynamic_symbol.nb_indirect_symbols();
+  node_["external_relocation_offset"] =
+      dynamic_symbol.external_relocation_offset();
+  node_["nb_external_relocations"] = dynamic_symbol.nb_external_relocations();
+  node_["local_relocation_offset"] = dynamic_symbol.local_relocation_offset();
+  node_["nb_local_relocations"] = dynamic_symbol.nb_local_relocations();
 }

 void JsonVisitor::visit(const DylinkerCommand& dylinker) {
@@ -227,9 +283,9 @@ void JsonVisitor::visit(const DylinkerCommand& dylinker) {
 void JsonVisitor::visit(const DylibCommand& dylib) {
   visit(*dylib.as<LoadCommand>());

-  node_["name"]                  = dylib.name();
-  node_["timestamp"]             = dylib.timestamp();
-  node_["current_version"]       = dylib.current_version();
+  node_["name"] = dylib.name();
+  node_["timestamp"] = dylib.timestamp();
+  node_["current_version"] = dylib.current_version();
   node_["compatibility_version"] = dylib.compatibility_version();
 }

@@ -237,8 +293,8 @@ void JsonVisitor::visit(const ThreadCommand& threadcmd) {
   visit(*threadcmd.as<LoadCommand>());

   node_["flavor"] = threadcmd.flavor();
-  node_["count"]  = threadcmd.count();
-  node_["pc"]     = threadcmd.pc();
+  node_["count"] = threadcmd.count();
+  node_["pc"] = threadcmd.pc();
 }

 void JsonVisitor::visit(const RPathCommand& rpath) {
@@ -261,15 +317,15 @@ void JsonVisitor::visit(const Routine& routine) {
 }

 void JsonVisitor::visit(const Symbol& symbol) {
-  node_["value"]             = symbol.value();
-  node_["size"]              = symbol.size();
-  node_["name"]              = symbol.name();
+  node_["value"] = symbol.value();
+  node_["size"] = symbol.size();
+  node_["name"] = symbol.name();

-  node_["type"]              = symbol.type();
+  node_["type"] = symbol.type();
   node_["numberof_sections"] = symbol.numberof_sections();
-  node_["description"]       = symbol.description();
-  node_["origin"]            = to_string(symbol.origin());
-  node_["is_external"]       = symbol.is_external();
+  node_["description"] = symbol.description();
+  node_["origin"] = to_string(symbol.origin());
+  node_["is_external"] = symbol.is_external();

   if (symbol.has_export_info()) {
     JsonVisitor v;
@@ -287,8 +343,8 @@ void JsonVisitor::visit(const Symbol& symbol) {
 void JsonVisitor::visit(const Relocation& relocation) {

   node_["is_pc_relative"] = relocation.is_pc_relative();
-  node_["architecture"]   = to_string(relocation.architecture());
-  node_["origin"]         = to_string(relocation.origin());
+  node_["architecture"] = to_string(relocation.architecture());
+  node_["origin"] = to_string(relocation.origin());
   if (relocation.has_symbol()) {
     node_["symbol"] = relocation.symbol()->name();
   }
@@ -305,7 +361,7 @@ void JsonVisitor::visit(const Relocation& relocation) {
 void JsonVisitor::visit(const RelocationObject& robject) {
   visit(*robject.as<Relocation>());

-  node_["value"]        = robject.value();
+  node_["value"] = robject.value();
   node_["is_scattered"] = robject.is_scattered();
 }

@@ -319,10 +375,10 @@ void JsonVisitor::visit(const RelocationFixup& fixup) {
 }

 void JsonVisitor::visit(const BindingInfo& binding) {
-  node_["address"]         = binding.address();
+  node_["address"] = binding.address();
   node_["library_ordinal"] = binding.library_ordinal();
-  node_["addend"]          = binding.addend();
-  node_["is_weak_import"]  = binding.is_weak_import();
+  node_["addend"] = binding.addend();
+  node_["is_weak_import"] = binding.is_weak_import();

   if (binding.has_symbol()) {
     node_["symbol"] = binding.symbol()->name();
@@ -339,8 +395,8 @@ void JsonVisitor::visit(const BindingInfo& binding) {

 void JsonVisitor::visit(const DyldBindingInfo& binding) {
   visit(*binding.as<BindingInfo>());
-  node_["binding_class"]   = to_string(binding.binding_class());
-  node_["binding_type"]    = to_string(binding.binding_type());
+  node_["binding_class"] = to_string(binding.binding_class());
+  node_["binding_type"] = to_string(binding.binding_type());
   node_["original_offset"] = binding.original_offset();
 }

@@ -352,12 +408,12 @@ void JsonVisitor::visit(const ChainedBindingInfo& binding) {
 void JsonVisitor::visit(const DyldExportsTrie& trie) {
   visit(*trie.as<LoadCommand>());
   node_["data_offset"] = trie.data_offset();
-  node_["data_size"]   = trie.data_size();
+  node_["data_size"] = trie.data_size();
 }

 void JsonVisitor::visit(const ExportInfo& einfo) {

-  node_["flags"]   = einfo.flags();
+  node_["flags"] = einfo.flags();
   node_["address"] = einfo.address();

   if (einfo.has_symbol()) {
@@ -369,14 +425,14 @@ void JsonVisitor::visit(const FunctionStarts& fs) {
   visit(*fs.as<LoadCommand>());

   node_["data_offset"] = fs.data_offset();
-  node_["data_size"]   = fs.data_size();
-  node_["functions"]   = fs.functions();
+  node_["data_size"] = fs.data_size();
+  node_["functions"] = fs.functions();
 }

 void JsonVisitor::visit(const CodeSignature& cs) {
   visit(*cs.as<LoadCommand>());
   node_["data_offset"] = cs.data_offset();
-  node_["data_size"]   = cs.data_size();
+  node_["data_size"] = cs.data_size();
 }

 void JsonVisitor::visit(const DataInCode& dic) {
@@ -389,14 +445,14 @@ void JsonVisitor::visit(const DataInCode& dic) {
   }

   node_["data_offset"] = dic.data_offset();
-  node_["data_size"]   = dic.data_size();
-  node_["entries"]     = entries;
+  node_["data_size"] = dic.data_size();
+  node_["entries"] = entries;
 }

 void JsonVisitor::visit(const DataCodeEntry& dce) {
   node_["offset"] = dce.offset();
   node_["length"] = dce.length();
-  node_["type"]   = to_string(dce.type());
+  node_["type"] = to_string(dce.type());
 }


@@ -410,7 +466,7 @@ void JsonVisitor::visit(const VersionMin& vmin) {
   visit(*vmin.as<LoadCommand>());

   node_["version"] = vmin.version();
-  node_["sdk"]     = vmin.sdk();
+  node_["sdk"] = vmin.sdk();
 }

 void JsonVisitor::visit(const UnknownCommand& ukn) {
@@ -422,7 +478,7 @@ void JsonVisitor::visit(const UnknownCommand& ukn) {
 void JsonVisitor::visit(const SegmentSplitInfo& ssi) {
   visit(*ssi.as<LoadCommand>());
   node_["data_offset"] = ssi.data_offset();
-  node_["data_size"]   = ssi.data_size();
+  node_["data_size"] = ssi.data_size();
 }

 void JsonVisitor::visit(const SubFramework& sf) {
@@ -439,8 +495,8 @@ void JsonVisitor::visit(const DyldEnvironment& dv) {
 void JsonVisitor::visit(const EncryptionInfo& e) {
   visit(*e.as<LoadCommand>());
   node_["crypt_offset"] = e.crypt_offset();
-  node_["crypt_size"]   = e.crypt_size();
-  node_["crypt_id"]     = e.crypt_id();
+  node_["crypt_size"] = e.crypt_size();
+  node_["crypt_id"] = e.crypt_id();
 }


@@ -448,8 +504,8 @@ void JsonVisitor::visit(const BuildVersion& e) {
   visit(*e.as<LoadCommand>());

   node_["platform"] = to_string(e.platform());
-  node_["minos"]    = e.minos();
-  node_["sdk"]      = e.sdk();
+  node_["minos"] = e.minos();
+  node_["sdk"] = e.sdk();

   std::vector<json> tools;

@@ -463,35 +519,32 @@ void JsonVisitor::visit(const BuildVersion& e) {


 void JsonVisitor::visit(const BuildToolVersion& e) {
-  node_["tool"]    = to_string(e.tool());
+  node_["tool"] = to_string(e.tool());
   node_["version"] = e.version();
 }

 void JsonVisitor::visit(const FilesetCommand& e) {
-  node_["name"]            = e.name();
-  node_["file_offset"]     = e.file_offset();
+  node_["name"] = e.name();
+  node_["file_offset"] = e.file_offset();
   node_["virtual_address"] = e.virtual_address();
 }

 void JsonVisitor::visit(const CodeSignatureDir& e) {
-  node_["data_size"]   = e.data_size();
+  node_["data_size"] = e.data_size();
   node_["data_offset"] = e.data_offset();
 }

 void JsonVisitor::visit(const LinkerOptHint& e) {
-  node_["data_size"]   = e.data_size();
+  node_["data_size"] = e.data_size();
   node_["data_offset"] = e.data_offset();
 }

 void JsonVisitor::visit(const TwoLevelHints& e) {
   auto it_hints = e.hints();
-  std::vector<uint32_t> hints = {std::begin(it_hints), std::end(it_hints)};
+  std::vector<uint32_t> hints = {it_hints.begin(), it_hints.end()};
   node_["offset"] = e.offset();
-  node_["hints"]  = hints;
+  node_["hints"] = hints;
 }


-
-} // namespace MachO
-} // namespace LIEF
-
+} // namespace LIEF::MachO
diff --git a/deps/LIEF/src/MachO/json_api.cpp b/deps/LIEF/src/MachO/json_api.cpp
index 8a5cb07c630..f25fac2ae00 100644
--- a/deps/LIEF/src/MachO/json_api.cpp
+++ b/deps/LIEF/src/MachO/json_api.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -14,17 +14,20 @@
  * limitations under the License.
  */
 #include "LIEF/config.h"
-#include "logging.hpp"
-#include "LIEF/MachO.hpp"

 #ifdef LIEF_JSON_SUPPORT
-#include "MachO/json_internal.hpp"
+  #include "MachO/json_internal.hpp"
+#else
+  #include "logging.hpp"
 #endif

 namespace LIEF {
-namespace MachO {
+class Object;
+}
+
+namespace LIEF::MachO {

-std::string to_json(const Object& v) {
+std::string to_json([[maybe_unused]] const Object& v) {
 #ifdef LIEF_JSON_SUPPORT
   JsonVisitor visitor;
   visitor(v);
@@ -35,5 +38,4 @@ std::string to_json(const Object& v) {
 #endif
 }

-} // namespace MachO
-} // namespace LIEF
+} // namespace LIEF::MachO
diff --git a/deps/LIEF/src/MachO/json_internal.hpp b/deps/LIEF/src/MachO/json_internal.hpp
index 79aa291173b..66237b5be04 100644
--- a/deps/LIEF/src/MachO/json_internal.hpp
+++ b/deps/LIEF/src/MachO/json_internal.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -16,12 +16,9 @@
 #ifndef LIEF_MACHO_JSON_INTERNAL_H
 #define LIEF_MACHO_JSON_INTERNAL_H

-#include "LIEF/visibility.h"
 #include "visitors/json.hpp" // internal
-#include "LIEF/MachO.hpp"

-namespace LIEF {
-namespace MachO {
+namespace LIEF::MachO {

 class Binary;
 class BindingInfo;
@@ -73,51 +70,51 @@ class JsonVisitor : public LIEF::JsonVisitor {
   using LIEF::JsonVisitor::JsonVisitor;

   public:
-  void visit(const Binary& binary)                        override;
-  void visit(const BindingInfo& binding)                  override;
-  void visit(const BuildToolVersion& e)                   override;
-  void visit(const BuildVersion& e)                       override;
-  void visit(const ChainedBindingInfo& binding)           override;
-  void visit(const CodeSignature& cs)                     override;
-  void visit(const CodeSignatureDir& e)                   override;
-  void visit(const DataCodeEntry& dce)                    override;
-  void visit(const DataInCode& dic)                       override;
-  void visit(const DyldBindingInfo& binding)              override;
-  void visit(const DyldEnvironment& sf)                   override;
-  void visit(const DyldExportsTrie& trie)                 override;
-  void visit(const DylibCommand& dylib)                   override;
-  void visit(const DylinkerCommand& dylinker)             override;
-  void visit(const DynamicSymbolCommand& dynamic_symbol)  override;
-  void visit(const EncryptionInfo& e)                     override;
-  void visit(const ExportInfo& einfo)                     override;
-  void visit(const FilesetCommand& e)                     override;
-  void visit(const FunctionStarts& fs)                    override;
-  void visit(const Header& header)                        override;
-  void visit(const LinkerOptHint& e)                      override;
-  void visit(const LoadCommand& cmd)                      override;
-  void visit(const MainCommand& maincmd)                  override;
-  void visit(const NoteCommand& note)                     override;
-  void visit(const Routine& rpath)                        override;
-  void visit(const RPathCommand& rpath)                   override;
-  void visit(const Relocation& relocation)                override;
-  void visit(const RelocationDyld& rdyld)                 override;
-  void visit(const RelocationFixup& fixup)                override;
-  void visit(const RelocationObject& robject)             override;
-  void visit(const Section& section)                      override;
-  void visit(const SegmentCommand& segment)               override;
-  void visit(const SegmentSplitInfo& ssi)                 override;
-  void visit(const SourceVersion& sv)                     override;
-  void visit(const SubFramework& sf)                      override;
-  void visit(const Symbol& symbol)                        override;
-  void visit(const SymbolCommand& symbol)                 override;
-  void visit(const ThreadCommand& threadcmd)              override;
-  void visit(const TwoLevelHints& e)                      override;
-  void visit(const UUIDCommand& uuid)                     override;
-  void visit(const VersionMin& vmin)                      override;
-  void visit(const UnknownCommand& ukn)                   override;
+  void visit(const Binary& binary) override;
+  void visit(const BindingInfo& binding) override;
+  void visit(const BuildToolVersion& e) override;
+  void visit(const BuildVersion& e) override;
+  void visit(const ChainedBindingInfo& binding) override;
+  void visit(const CodeSignature& cs) override;
+  void visit(const CodeSignatureDir& e) override;
+  void visit(const DataCodeEntry& dce) override;
+  void visit(const DataInCode& dic) override;
+  void visit(const DyldBindingInfo& binding) override;
+  void visit(const DyldEnvironment& sf) override;
+  void visit(const DyldExportsTrie& trie) override;
+  void visit(const DylibCommand& dylib) override;
+  void visit(const DylinkerCommand& dylinker) override;
+  void visit(const DynamicSymbolCommand& dynamic_symbol) override;
+  void visit(const EncryptionInfo& e) override;
+  void visit(const ExportInfo& einfo) override;
+  void visit(const FilesetCommand& e) override;
+  void visit(const FunctionStarts& fs) override;
+  void visit(const Header& header) override;
+  void visit(const LinkerOptHint& e) override;
+  void visit(const LoadCommand& cmd) override;
+  void visit(const MainCommand& maincmd) override;
+  void visit(const NoteCommand& note) override;
+  void visit(const Routine& rpath) override;
+  void visit(const RPathCommand& rpath) override;
+  void visit(const Relocation& relocation) override;
+  void visit(const RelocationDyld& rdyld) override;
+  void visit(const RelocationFixup& fixup) override;
+  void visit(const RelocationObject& robject) override;
+  void visit(const Section& section) override;
+  void visit(const SegmentCommand& segment) override;
+  void visit(const SegmentSplitInfo& ssi) override;
+  void visit(const SourceVersion& sv) override;
+  void visit(const SubFramework& sf) override;
+  void visit(const Symbol& symbol) override;
+  void visit(const SymbolCommand& symbol) override;
+  void visit(const ThreadCommand& threadcmd) override;
+  void visit(const TwoLevelHints& e) override;
+  void visit(const UUIDCommand& uuid) override;
+  void visit(const VersionMin& vmin) override;
+  void visit(const UnknownCommand& ukn) override;
 };

 }
-}
+

 #endif
diff --git a/deps/LIEF/src/MachO/layout_check.cpp b/deps/LIEF/src/MachO/layout_check.cpp
index 7fea03c43e0..2c7c03e539b 100644
--- a/deps/LIEF/src/MachO/layout_check.cpp
+++ b/deps/LIEF/src/MachO/layout_check.cpp
@@ -1,4 +1,4 @@
-/* Copyright 2021 - 2025 R. Thomas
+/* Copyright 2021 - 2026 R. Thomas
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -12,9 +12,11 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
+#include <cstddef>
 #include <spdlog/fmt/fmt.h>

 #include "MachO/Structures.hpp"
+#include "LIEF/range.hpp"

 #include "LIEF/BinaryStream/SpanStream.hpp"

@@ -30,17 +32,21 @@
 #include "LIEF/MachO/DyldInfo.hpp"
 #include "LIEF/MachO/DylibCommand.hpp"
 #include "LIEF/MachO/DynamicSymbolCommand.hpp"
+#include "LIEF/MachO/ExportInfo.hpp"
 #include "LIEF/MachO/FunctionStarts.hpp"
 #include "LIEF/MachO/FunctionVariants.hpp"
 #include "LIEF/MachO/FunctionVariantFixups.hpp"
+#include "LIEF/MachO/LazyLoadDylibInfo.hpp"
 #include "LIEF/MachO/LinkerOptHint.hpp"
 #include "LIEF/MachO/MainCommand.hpp"
 #include "LIEF/MachO/RPathCommand.hpp"
 #include "LIEF/MachO/Section.hpp"
 #include "LIEF/MachO/SegmentCommand.hpp"
 #include "LIEF/MachO/SegmentSplitInfo.hpp"
+#include "LIEF/MachO/Symbol.hpp"
 #include "LIEF/MachO/SymbolCommand.hpp"
 #include "LIEF/MachO/ThreadCommand.hpp"
+#include "LIEF/MachO/ThreadLocalVariables.hpp"
 #include "LIEF/MachO/TwoLevelHints.hpp"
 #include "LIEF/MachO/utils.hpp"
 #include "LIEF/utils.hpp"
@@ -50,7 +56,9 @@
 #include "logging.hpp"
 #include "Object.tcc"

+#include <algorithm>
 #include <string>
+#include <unordered_set>

 namespace LIEF::MachO {
 template<typename T, typename U>
@@ -73,8 +81,7 @@ class LayoutChecker {
   public:
   LayoutChecker() = delete;
   LayoutChecker(const Binary& macho) :
-    binary(macho)
-  {}
+    binary(macho) {}


   bool check();
@@ -84,9 +91,9 @@ class LayoutChecker {
     return false;
   }

-  template <typename... Args>
-  bool error(const char *fmt, const Args &... args) {
-    error_msg = fmt::format(fmt, args...);
+  template<typename... Args>
+  bool error(const char* fmt, const Args&... args) {
+    error_msg = fmt::format(fmt::runtime(fmt), args...);
     return false;
   }

@@ -114,6 +121,10 @@ class LayoutChecker {
   // Mirror ChainedFixups::valid
   bool check_chained_fixups();

+  // Mirror of mach_o::ExportsTrie::valid (dyld's mach_o/ExportsTrie.cpp)
+  // combined with the maxVmOffset computation from Image::validLinkedit.
+  bool check_exports_trie();
+
   // Check from PR #1136
   // See: https://github.com/lief-project/LIEF/pull/1136/files#r1882625692
   bool check_section_contiguity();
@@ -121,11 +132,22 @@ class LayoutChecker {
   // From FunctionVariants::valid()
   bool check_function_variants();

+  // Consistency of LC_FUNCTION_VARIANT_FIXUPS (cf. dyld's interpretation of
+  // FunctionVariantFixups::InternalFixup)
+  bool check_function_variant_fixups();
+
+  // Mirror of mach_o::LazyLoadDylib::valid() for LC_LAZY_LOAD_DYLIB_INFO
+  bool check_lazy_load_dylib_infos();
+
   bool check_linkedit_end();

+  bool check_tls();
+
+  bool check_export(uint64_t imagebase, uint64_t max_vm_offset,
+                    const ExportInfo& info);
+
   size_t ptr_size() const {
-    return binary.header().is_32bit() ? sizeof(uint32_t) :
-                                        sizeof(uint64_t);
+    return binary.header().is_32bit() ? sizeof(uint32_t) : sizeof(uint64_t);
   }

   const std::string& get_error() const {
@@ -150,9 +172,9 @@ bool LayoutChecker::check_initializers() {
     using base_t::base_t;

     bool contain(uint64_t addr) const {
-      return std::find_if(begin(), end(), [addr] (const range_t& R) {
-        return R.va_start <= addr && addr < (R.va_start + R.va_end);
-      }) != end();
+      return std::find_if(begin(), end(), [addr](const range_t& R) {
+               return R.va_start <= addr && addr < (R.va_start + R.va_end);
+             }) != end();
     }
   };

@@ -163,10 +185,9 @@ bool LayoutChecker::check_initializers() {
   ranges.reserve(binary.segments().size());
   for (const SegmentCommand& segment : binary.segments()) {
     if (segment.is(SegmentCommand::VM_PROTECTIONS::EXECUTE)) {
-      ranges.push_back({
-        segment.virtual_address(), segment.virtual_address() + segment.virtual_size(),
-        segment.file_size()
-      });
+      ranges.push_back({segment.virtual_address(),
+                        segment.virtual_address() + segment.virtual_size(),
+                        segment.file_size()});
     }
   }

@@ -182,27 +203,30 @@ bool LayoutChecker::check_initializers() {

     uint64_t init_addr = routines->init_address();
     if (!ranges.contain(init_addr)) {
-      return error("LC_ROUTINE/64 initializer 0x{:016x} is not an offset "
-                   "to an executable segment", init_addr);
+      return error("LC_ROUTINE/64 initializer {:#018x} is not an offset "
+                   "to an executable segment",
+                   init_addr);
     }
   }

   for (const Section& section : binary.sections()) {
     const bool contains_init_ptr =
-      section.type() == Section::TYPE::MOD_INIT_FUNC_POINTERS ||
-      section.type() == Section::TYPE::MOD_TERM_FUNC_POINTERS;
+        section.type() == Section::TYPE::MOD_INIT_FUNC_POINTERS ||
+        section.type() == Section::TYPE::MOD_TERM_FUNC_POINTERS;

     if (!contains_init_ptr) {
       continue;
     }

     if (section.size() % ptr_size != 0) {
-      return error("Section '{}' size (0x{:08x}) is not a multiple of pointer-size",
-                   section.name(), section.size());
+      return error(
+          "Section '{}' size ({:#010x}) is not a multiple of pointer-size",
+          section.name(), section.size()
+      );
     }

     if (section.address() % ptr_size != 0) {
-      return error("Section '{}' address (0x{:08x}) is not pointer aligned",
+      return error("Section '{}' address ({:#010x}) is not pointer aligned",
                    section.name(), section.address());
     }

@@ -212,8 +236,8 @@ bool LayoutChecker::check_initializers() {
       if (ptr_size == sizeof(uint32_t)) {
         auto res = stream.read<uint32_t>();
         if (!res) {
-          return error("Can't read pointer at 0x{:04x} in {}",
-                       stream.pos(), section.name());
+          return error("Can't read pointer at {:#06x} in {}", stream.pos(),
+                       section.name());
         }

         // As mentioned in the dyld documentation:
@@ -223,8 +247,8 @@ bool LayoutChecker::check_initializers() {
       } else {
         auto res = stream.read<uint64_t>();
         if (!res) {
-          return error("Can't read pointer at 0x{:04x} in {}",
-                       stream.pos(), section.name());
+          return error("Can't read pointer at {:#06x} in {}", stream.pos(),
+                       section.name());
         }
         // As mentioned in the dyld documentation:
         //  > FIXME: as a quick hack, the low 32-bits with either rebase opcodes
@@ -232,8 +256,10 @@ bool LayoutChecker::check_initializers() {
         ptr = *res & 0x03FFFFFF;
       }
       if (!ranges.contain(imagebase + ptr)) {
-        return error("initializer at 0x{:06x} in {} is not in an executable segment",
-                     stream.pos(), section.name());
+        return error(
+            "initializer at {:#08x} in {} is not in an executable segment",
+            stream.pos(), section.name()
+        );
       }
     }
   }
@@ -244,8 +270,10 @@ bool LayoutChecker::check_initializers() {
       continue;
     }
     if (section.segment()->is(SegmentCommand::VM_PROTECTIONS::WRITE)) {
-      return error("initializer offsets section {}/{} must be in read-only segment",
-                   section.segment_name(), section.name());
+      return error(
+          "initializer offsets section {}/{} must be in read-only segment",
+          section.segment_name(), section.name()
+      );
     }

     if (section.size() % 4 != 0) {
@@ -263,26 +291,28 @@ bool LayoutChecker::check_initializers() {
     while (stream) {
       auto res = stream.read<uint32_t>();
       if (!res) {
-        return error("Can't read pointer at 0x{:04} in {}",
-                     stream.pos(), section.name());
+        return error("Can't read pointer at {:#06x} in {}", stream.pos(),
+                     section.name());
       }

       if (!ranges.contain(imagebase + *res)) {
-        return error("initializer 0x{:08x} is not an offset to an executable "
-                     "segment", *res);
+        return error("initializer {:#010x} is not an offset to an executable "
+                     "segment",
+                     *res);
       }
     }
-
   }
   return true;
 }

 bool LayoutChecker::check_segments() {
   const size_t sizeof_segment_hdr = binary.header().is_32bit() ?
-    sizeof(details::segment_command_32) : sizeof(details::segment_command_64);
+                                        sizeof(details::segment_command_32) :
+                                        sizeof(details::segment_command_64);

   const size_t sizeof_section_hdr = binary.header().is_32bit() ?
-    sizeof(details::section_32) : sizeof(details::section_64);
+                                        sizeof(details::section_32) :
+                                        sizeof(details::section_64);

   for (const SegmentCommand& segment : binary.segments()) {
     int32_t section_space = segment.size() - sizeof_segment_hdr;
@@ -292,17 +322,21 @@ bool LayoutChecker::check_segments() {
     }

     if ((section_space % sizeof_section_hdr) != 0) {
-      return error("segment load command size {}: 0x{:04x} will not fit "
-                   "whole number of sections", segment.name(), segment.size());
+      return error("segment load command size {}: {:#06x} will not fit "
+                   "whole number of sections",
+                   segment.name(), segment.size());
     }

-    if ((uint32_t)section_space != segment.numberof_sections() * sizeof_section_hdr) {
+    if ((uint32_t)section_space !=
+        segment.numberof_sections() * sizeof_section_hdr)
+    {
       return error("segment {} does not match nsects", segment.name(),
                    segment.numberof_sections());
     }

     if ((segment.file_size() > segment.virtual_size()) &&
-        (segment.virtual_size() != 0 || (segment.flags() & (uint32_t)SegmentCommand::FLAGS::NORELOC) != 0))
+        (segment.virtual_size() != 0 ||
+         (segment.flags() & (uint32_t)SegmentCommand::FLAGS::NORELOC) != 0))
     {
       return error("in segment {}, filesize exceeds vmsize", segment.name());
     }
@@ -332,44 +366,56 @@ bool LayoutChecker::check_segments() {

 bool LayoutChecker::check_overlapping() {
   for (const SegmentCommand& lhs : binary.segments()) {
-    const uint64_t lhs_vm_end   = lhs.virtual_address() + lhs.virtual_size();
+    const uint64_t lhs_vm_end = lhs.virtual_address() + lhs.virtual_size();
     const uint64_t lhs_file_end = lhs.file_offset() + lhs.file_size();
     for (const SegmentCommand& rhs : binary.segments()) {
       if (lhs.index() == rhs.index()) {
         continue;
       }
-      const uint64_t rhs_vm_end   = rhs.virtual_address() + rhs.virtual_size();
+      const uint64_t rhs_vm_end = rhs.virtual_address() + rhs.virtual_size();
       const uint64_t rhs_file_end = rhs.file_offset() + rhs.file_size();

-      const bool vm_overalp = (rhs.virtual_address() <= lhs.virtual_address() && rhs_vm_end > lhs.virtual_address() && lhs_vm_end > lhs.virtual_address()) ||
-                              (rhs.virtual_address() >= lhs.virtual_address()  && rhs.virtual_address() < lhs_vm_end && rhs_vm_end > rhs.virtual_address());
+      const bool vm_overalp = (rhs.virtual_address() <= lhs.virtual_address() &&
+                               rhs_vm_end > lhs.virtual_address() &&
+                               lhs_vm_end > lhs.virtual_address()) ||
+                              (rhs.virtual_address() >= lhs.virtual_address() &&
+                               rhs.virtual_address() < lhs_vm_end &&
+                               rhs_vm_end > rhs.virtual_address());
       if (vm_overalp) {
         error(R"delim(
               Segments '{}' and '{}' overlap (virtual addresses):
-              [0x{:08x}, 0x{:08x}] [0x{:08x}, 0x{:08x}]
-              )delim", lhs.name(), rhs.name(),
-              lhs.virtual_address(), lhs_vm_end, rhs.virtual_address(), rhs_vm_end);
+              [{:#010x}, {:#010x}] [{:#010x}, {:#010x}]
+              )delim",
+              lhs.name(), rhs.name(), lhs.virtual_address(), lhs_vm_end,
+              rhs.virtual_address(), rhs_vm_end);
         return true;
       }
-      const bool file_overlap = (rhs.file_offset() <= lhs.file_offset() && rhs_file_end > lhs.file_offset() && lhs_file_end > lhs.file_offset()) ||
-                                (rhs.file_offset() >= lhs.file_offset()  && rhs.file_offset() < lhs_file_end && rhs_file_end > rhs.file_offset());
+      const bool file_overlap =
+          (rhs.file_offset() <= lhs.file_offset() &&
+           rhs_file_end > lhs.file_offset() && lhs_file_end > lhs.file_offset()) ||
+          (rhs.file_offset() >= lhs.file_offset() &&
+           rhs.file_offset() < lhs_file_end && rhs_file_end > rhs.file_offset());
       if (file_overlap) {
         error(R"delim(
               Segments '{}' and '{}' overlap (file offsets):
-              [0x{:08x}, 0x{:08x}] [0x{:08x}, 0x{:08x}]
-              )delim", lhs.name(), rhs.name(),
-              lhs.file_offset(), lhs_file_end, rhs.file_offset(), rhs_file_end);
+              [{:#010x}, {:#010x}] [{:#010x}, {:#010x}]
+              )delim",
+              lhs.name(), rhs.name(), lhs.file_offset(), lhs_file_end,
+              rhs.file_offset(), rhs_file_end);
         return true;
       }

       if (lhs.index() < rhs.index()) {

-        const bool wrong_order = lhs.virtual_address() > rhs.virtual_address() ||
-                                 (lhs.file_offset() > rhs.file_offset() && lhs.file_offset() != 0 && rhs.file_offset() != 0);
+        const bool wrong_order =
+            lhs.virtual_address() > rhs.virtual_address() ||
+            (lhs.file_offset() > rhs.file_offset() && lhs.file_offset() != 0 &&
+             rhs.file_offset() != 0);
         if (wrong_order) {
           error(R"delim(
                 Segments '{}' and '{}' are wrongly ordered
-                )delim", lhs.name(), rhs.name());
+                )delim",
+                lhs.name(), rhs.name());
           return true;
         }
       }
@@ -381,9 +427,9 @@ bool LayoutChecker::check_overlapping() {

 // Mirror MachOAnalyzer::validLoadCommands
 bool LayoutChecker::check_load_commands() {
-  const size_t sizeof_header =
-    binary.header().is_32bit() ? sizeof(details::mach_header) :
-                                 sizeof(details::mach_header_64);
+  const size_t sizeof_header = binary.header().is_32bit() ?
+                                   sizeof(details::mach_header) :
+                                   sizeof(details::mach_header_64);

   const size_t last_cmd_offset = sizeof_header + binary.header().sizeof_cmds();

@@ -426,7 +472,8 @@ bool LayoutChecker::check_load_commands() {
       const auto start = raw.begin() + rpath->path_offset();
       auto it = std::find(start, raw.end(), '\0');
       if (it == raw.end()) {
-        return error("{}: string extends beyond end of load command", rpath->path());
+        return error("{}: string extends beyond end of load command",
+                     rpath->path());
       }
     }
   }
@@ -445,7 +492,8 @@ bool LayoutChecker::check_main() {
   if (const MainCommand* cmd = binary.main_command()) {
     has_main = true;
     uint64_t start_address = binary.imagebase() + cmd->entrypoint();
-    const SegmentCommand* segment = binary.segment_from_virtual_address(start_address);
+    const SegmentCommand* segment =
+        binary.segment_from_virtual_address(start_address);
     if (segment == nullptr) {
       return error("LC_MAIN entryoff is out of range");
     }
@@ -463,7 +511,8 @@ bool LayoutChecker::check_main() {
       return error("LC_UNIXTHREAD not valid for the current arch");
     }

-    const SegmentCommand* segment = binary.segment_from_virtual_address(start_address);
+    const SegmentCommand* segment =
+        binary.segment_from_virtual_address(start_address);
     if (segment == nullptr) {
       return error("LC_MAIN entryoff is out of range");
     }
@@ -487,31 +536,33 @@ bool LayoutChecker::check_main() {
 // Mirror of MachOAnalyzer::validEmbeddedPaths
 bool LayoutChecker::check_valid_paths() {
   bool has_install_name = false;
-  int dependents_count  = 0;
+  int dependents_count = 0;
   for (const LoadCommand& cmd : binary.commands()) {
     switch (cmd.command()) {
       case LoadCommand::TYPE::ID_DYLIB:
-        {
-          has_install_name = true;
-          [[fallthrough]];
-        }
+      {
+        has_install_name = true;
+        [[fallthrough]];
+      }
       case LoadCommand::TYPE::LOAD_DYLIB:
       case LoadCommand::TYPE::LOAD_WEAK_DYLIB:
       case LoadCommand::TYPE::REEXPORT_DYLIB:
       case LoadCommand::TYPE::LOAD_UPWARD_DYLIB:
-        {
-          if (!DylibCommand::classof(&cmd)) {
-            LIEF_ERR("{} is not associated with a DylibCommand which should be the case",
-                     to_string(cmd.command()));
-            break;
-          }
-          auto& dylib = *cmd.as<DylibCommand>();
-          if (dylib.command() != LoadCommand::TYPE::ID_DYLIB) {
-            ++dependents_count;
-          }
+      {
+        if (!DylibCommand::classof(&cmd)) {
+          LIEF_ERR("{} is not associated with a DylibCommand",
+                   to_string(cmd.command()));
           break;
         }
-      default: {}
+        auto& dylib = *cmd.as<DylibCommand>();
+        if (dylib.command() != LoadCommand::TYPE::ID_DYLIB) {
+          ++dependents_count;
+        }
+        break;
+      }
+      default:
+      {
+      }
     }
   }

@@ -525,8 +576,8 @@ bool LayoutChecker::check_valid_paths() {
       return error("LC_ID_DYLIB command found in a non MH_DYLIB file");
     }
   }
-  const bool is_dynamic_exe =
-    ftype == Header::FILE_TYPE::EXECUTE && binary.has(LoadCommand::TYPE::LOAD_DYLINKER);
+  const bool is_dynamic_exe = ftype == Header::FILE_TYPE::EXECUTE &&
+                              binary.has(LoadCommand::TYPE::LOAD_DYLINKER);
   if (dependents_count == 0 && is_dynamic_exe) {
     return error("Missing libraries. It must link with at least one library "
                  "(like libSystem.dylib)");
@@ -539,10 +590,15 @@ bool LayoutChecker::check_linkedit() {
   struct chunk_t {
     enum class KIND {
       UNKNOWN = 0,
-      SYMTAB, SYMTAB_STR,
-      DYSYMTAB_LOC_REL, DYSYMTAB_EXT_REL, DYSYMTAB_INDIRECT_SYM,
-      DYLD_INFO_REBASES, DYLD_INFO_BIND,
-      DYLD_INFO_WEAK_BIND, DYLD_INFO_LAZY_BIND,
+      SYMTAB,
+      SYMTAB_STR,
+      DYSYMTAB_LOC_REL,
+      DYSYMTAB_EXT_REL,
+      DYSYMTAB_INDIRECT_SYM,
+      DYLD_INFO_REBASES,
+      DYLD_INFO_BIND,
+      DYLD_INFO_WEAK_BIND,
+      DYLD_INFO_LAZY_BIND,
       DYLD_INFO_EXPORT,
       SEGMENT_SPLIT_INFO,
       ATOM_INFO,
@@ -550,7 +606,7 @@ bool LayoutChecker::check_linkedit() {
       DATA_IN_CODE,
       CODE_SIGNATURE,
       DYLD_EXPORT_TRIE,
-      DYLD_CHAINED_FIXUPS
+      DYLD_CHAINED_FIXUPS,
     };
     static const char* to_string(KIND kind) {
       switch (kind) {
@@ -577,14 +633,18 @@ bool LayoutChecker::check_linkedit() {
     }
     chunk_t() = delete;
     chunk_t(KIND kind, uint32_t align, uint32_t off, size_t size) :
-      kind(kind), alignment(align), file_offset(off), size(size)
-    {}
+      kind(kind),
+      alignment(align),
+      file_offset(off),
+      size(size) {}
     chunk_t(const chunk_t&) = default;
     chunk_t& operator=(const chunk_t&) = default;

     chunk_t(chunk_t&&) = default;
     chunk_t& operator=(chunk_t&&) = default;

+    ~chunk_t() = default;
+
     KIND kind = KIND::UNKNOWN;
     uint32_t alignment = 0;
     uint32_t file_offset = 0;
@@ -595,7 +655,7 @@ bool LayoutChecker::check_linkedit() {
   chunks_t chunks;
   chunks.reserve(binary.commands().size());

-  static const auto sort_chunks = [] (chunks_t& chunks) {
+  static const auto sort_chunks = [](chunks_t& chunks) {
     const size_t count = chunks.size();
     for (size_t i = 0; i < count; ++i) {
       bool done = true;
@@ -625,12 +685,12 @@ bool LayoutChecker::check_linkedit() {
       if (sym_count > 0x10000000) {
         return error("LC_SYMTAB: symbol table too large ({})", sym_count);
       }
-      chunks.emplace_back(chunk_t::KIND::SYMTAB, ptr_size,
-                            symtab->symbol_offset(), symtab->symbol_table().size());
+      chunks.emplace_back(chunk_t::KIND::SYMTAB, ptr_size, symtab->symbol_offset(),
+                          symtab->symbol_table().size());

       if (symtab->strings_size() > 0) {
-        chunks.emplace_back(chunk_t::KIND::SYMTAB_STR, 1,
-                            symtab->strings_offset(), symtab->strings_size());
+        chunks.emplace_back(chunk_t::KIND::SYMTAB_STR, 1, symtab->strings_offset(),
+                            symtab->strings_size());
       }
     }

@@ -662,17 +722,20 @@ bool LayoutChecker::check_linkedit() {
                      "iundefsym != iextdefsym+nextdefsym");
       }

-      ind_sym_count = dynsym->idx_undefined_symbol() + dynsym->nb_undefined_symbols();
+      ind_sym_count =
+          dynsym->idx_undefined_symbol() + dynsym->nb_undefined_symbols();

       if (dynsym->nb_local_relocations() != 0) {
         chunks.emplace_back(chunk_t::KIND::DYSYMTAB_LOC_REL, ptr_size,
                             dynsym->local_relocation_offset(),
-                            dynsym->nb_local_relocations() * sizeof(details::relocation_info));
+                            dynsym->nb_local_relocations() *
+                                sizeof(details::relocation_info));
       }
       if (dynsym->nb_external_relocations() != 0) {
         chunks.emplace_back(chunk_t::KIND::DYSYMTAB_EXT_REL, ptr_size,
                             dynsym->external_relocation_offset(),
-                            dynsym->nb_external_relocations() * sizeof(details::relocation_info));
+                            dynsym->nb_external_relocations() *
+                                sizeof(details::relocation_info));
       }
       if (dynsym->nb_indirect_symbols() != 0) {
         chunks.emplace_back(chunk_t::KIND::DYSYMTAB_INDIRECT_SYM, 4,
@@ -683,13 +746,13 @@ bool LayoutChecker::check_linkedit() {

     if (const auto* dyldinfo = cmd.cast<DyldInfo>()) {
       if (auto info = dyldinfo->rebase(); info.second != 0) {
-        chunks.emplace_back(chunk_t::KIND::DYLD_INFO_REBASES, ptr_size,
-                            info.first, info.second);
+        chunks.emplace_back(chunk_t::KIND::DYLD_INFO_REBASES, ptr_size, info.first,
+                            info.second);
       }

       if (auto info = dyldinfo->bind(); info.second != 0) {
-        chunks.emplace_back(chunk_t::KIND::DYLD_INFO_BIND, ptr_size,
-                            info.first, info.second);
+        chunks.emplace_back(chunk_t::KIND::DYLD_INFO_BIND, ptr_size, info.first,
+                            info.second);
       }

       if (auto info = dyldinfo->weak_bind(); info.second != 0) {
@@ -703,8 +766,8 @@ bool LayoutChecker::check_linkedit() {
       }

       if (auto info = dyldinfo->export_info(); info.second != 0) {
-        chunks.emplace_back(chunk_t::KIND::DYLD_INFO_EXPORT, ptr_size,
-                            info.first, info.second);
+        chunks.emplace_back(chunk_t::KIND::DYLD_INFO_EXPORT, ptr_size, info.first,
+                            info.second);
       }
     }

@@ -759,11 +822,14 @@ bool LayoutChecker::check_linkedit() {
   }

   if (has_ind_sym_tab && sym_count != ind_sym_count) {
-    return error("symbol count from symbol table and dynamic symbol table differ.");
+    return error(
+        "symbol count from symbol table and dynamic symbol table differ."
+    );
   }

   const bool has_dyld_info = binary.has(LoadCommand::TYPE::DYLD_INFO_ONLY);
-  const bool has_dyld_chained_fixups = binary.has(LoadCommand::TYPE::DYLD_CHAINED_FIXUPS);
+  const bool has_dyld_chained_fixups =
+      binary.has(LoadCommand::TYPE::DYLD_CHAINED_FIXUPS);

   if (has_dyld_info && has_dyld_chained_fixups) {
     return error("Contains LC_DYLD_INFO and LC_DYLD_CHAINED_FIXUPS.");
@@ -786,8 +852,9 @@ bool LayoutChecker::check_linkedit() {
       binary.header().file_type() == Header::FILE_TYPE::PRELOAD)
   {
     for (const Section& section : binary.sections()) {
-      const bool is_zero_fill = section.type() == Section::TYPE::ZEROFILL ||
-                                section.type() == Section::TYPE::THREAD_LOCAL_ZEROFILL;
+      const bool is_zero_fill =
+          section.type() == Section::TYPE::ZEROFILL ||
+          section.type() == Section::TYPE::THREAD_LOCAL_ZEROFILL;
       if (is_zero_fill) {
         continue;
       }
@@ -798,13 +865,14 @@ bool LayoutChecker::check_linkedit() {
       }
       linkedit_file_offset_end = binary.original_size();
       if (linkedit_file_offset_start == 0) {
-        if (const auto* cmd = binary.get(LoadCommand::TYPE::SYMTAB)->cast<SymbolCommand>()) {
+        if (const auto* cmd =
+                binary.get(LoadCommand::TYPE::SYMTAB)->cast<SymbolCommand>())
+        {
           linkedit_file_offset_start = cmd->symbol_offset();
         }
       }
     }
-  }
-  else {
+  } else {
     if (const SegmentCommand* segment = binary.get_segment("__LINKEDIT")) {
       linkedit_file_offset_start = segment->file_offset();
       linkedit_file_offset_end = segment->file_offset() + segment->file_size();
@@ -825,24 +893,24 @@ bool LayoutChecker::check_linkedit() {

   uint64_t prev_end = linkedit_file_offset_start;
   const char* prev_name = "start of __LINKEDIT";
-  for (size_t i = 0; i < chunks.size(); ++i) {
-    const chunk_t& chunk = chunks[i];
+  for (const chunk_t& chunk : chunks) {
     if (chunk.file_offset < prev_end) {
-      return error("LINKEDIT overlap of {} and {}",
-                   prev_name, chunk_t::to_string(chunk.kind));
+      return error("LINKEDIT overlap of {} and {}", prev_name,
+                   chunk_t::to_string(chunk.kind));
     }

-    if (greater_than_add_or_overflow<uint64_t>(
-          chunk.file_offset, chunk.size, linkedit_file_offset_end))
+    if (greater_than_add_or_overflow<uint64_t>(chunk.file_offset, chunk.size,
+                                               linkedit_file_offset_end))
     {
       return error("LINKEDIT content '{}' extends beyond end of segment",
                    chunk_t::to_string(chunk.kind));
     }

     if (chunk.file_offset & (chunk.alignment - 1)) {
-      // In the source code of dyld this is enforced only the provided
-      // policy ask to, but we might want to enforce it by default
-      return error("mis-aligned LINKEDIT content: {}", chunk_t::to_string(chunk.kind));
+      // In the source code of dyld this is enforced only if the provided
+      // policy asks for it, but we might want to enforce it by default
+      return error("mis-aligned LINKEDIT content: {}",
+                   chunk_t::to_string(chunk.kind));
     }

     prev_end = chunk.file_offset + chunk.size;
@@ -878,10 +946,10 @@ bool LayoutChecker::check_section_contiguity() {

   // LIEF allocates space for new/extended sections between the last load command
   // and the first section in the first segment.
-  // We are not willing to change the distance between the end of the `__text` section
-  // and start of `__DATA` segment, keeping `__text` section in a "fixed" position.
-  // Due to above there might happen a "reverse" alignment gap between `__text` section
-  // and a section that was allocated in front of it.
+  // We do not want to change the distance between the end of the `__text`
+  // section and start of `__DATA` segment, keeping `__text` section in a "fixed"
+  // position. Due to the above, there might be a "reverse" alignment gap between
+  // `__text` section and a section that was allocated in front of it.
   auto is_gap_reversed = [](const Section* LHS, const Section* RHS) {
     return align_down(RHS->offset() - LHS->size(), LHS->alignment());
   };
@@ -910,7 +978,7 @@ bool LayoutChecker::check_section_contiguity() {
     }

     std::sort(sections_vec.begin(), sections_vec.end(),
-              [] (const Section* LHS, const Section* RHS) {
+              [](const Section* LHS, const Section* RHS) {
                 return LHS->offset() < RHS->offset();
               });

@@ -920,19 +988,23 @@ bool LayoutChecker::check_section_contiguity() {
       const uint32_t alignment = 1 << section->alignment();
       if ((section->offset() % alignment) != 0) {
         return error("section '{}' offset ({:#06x}) is misaligned (align={:#06x})",
-                     section->name(), section->virtual_address(),
-                     alignment);
+                     section->name(), section->virtual_address(), alignment);
       }

       next_expected_offset = align(next_expected_offset, alignment);

       if (section->offset() != next_expected_offset) {
-        auto message = fmt::format("section '{}' is not at the expected offset: {:#06x} "
-                                   "(expected={:#06x}, align={:#06x})",
-                                   section->name(), section->offset(),
-                                   next_expected_offset, alignment);
-        if (it != sections_vec.begin() && is_gap_reversed(*std::prev(it), *it) && section->name() == "__text") {
-          LIEF_WARN("Permitting section gap which could be caused by LIEF add_section/extend_section: {}", message);
+        auto message =
+            fmt::format("section '{}' is not at the expected offset: {:#06x} "
+                        "(expected={:#06x}, align={:#06x})",
+                        section->name(), section->offset(), next_expected_offset,
+                        alignment);
+        if (it != sections_vec.begin() && is_gap_reversed(*std::prev(it), *it) &&
+            section->name() == "__text")
+        {
+          LIEF_WARN("Permitting section gap (possibly caused by "
+                    "add_section/extend_section): {}",
+                    message);
           next_expected_offset = section->offset();
         } else {
           return error(message);
@@ -981,10 +1053,22 @@ bool LayoutChecker::check() {
     return false;
   }

+  if (!check_exports_trie()) {
+    return false;
+  }
+
   if (!check_function_variants()) {
     return false;
   }

+  if (!check_function_variant_fixups()) {
+    return false;
+  }
+
+  if (!check_lazy_load_dylib_infos()) {
+    return false;
+  }
+
   if (!check_section_contiguity()) {
     return false;
   }
@@ -993,7 +1077,9 @@ bool LayoutChecker::check() {
     return false;
   }

-
+  if (!check_tls()) {
+    return false;
+  }

   // The following checks are only relevant for non-object files
   if (binary.header().file_type() == Header::FILE_TYPE::OBJECT) {
@@ -1013,50 +1099,40 @@ bool LayoutChecker::check() {
       if (dyld_info->rebase().first != offset) {
         return error(R"delim(
         __LINKEDIT does not start with LC_DYLD_INFO.rebase:
-          Expecting offset: 0x{:x} while it is 0x{:x}
-        )delim", offset, dyld_info->rebase().first);
+          Expecting offset: {:#x} while it is {:#x}
+        )delim",
+                     offset, dyld_info->rebase().first);
       }
-    }
-
-    else if (dyld_info->bind().first != 0) {
+    } else if (dyld_info->bind().first != 0) {
       if (dyld_info->bind().first != offset) {
         return error(R"delim(
         __LINKEDIT does not start with LC_DYLD_INFO.bind:
-          Expecting offset: 0x{:x} while it is 0x{:x}
-        )delim", offset, dyld_info->bind().first);
+          Expecting offset: {:#x} while it is {:#x}
+        )delim",
+                     offset, dyld_info->bind().first);
       }
-    }
-
-    else if (dyld_info->export_info().first != 0) {
+    } else if (dyld_info->export_info().first != 0) {
       if (dyld_info->export_info().first != offset &&
-          dyld_info->weak_bind().first   != 0      &&
-          dyld_info->lazy_bind().first   != 0         )
+          dyld_info->weak_bind().first != 0 && dyld_info->lazy_bind().first != 0)
       {
         return error(R"delim(
                      LC_DYLD_INFO.exports out of place:
-                     Expecting offset: 0x{:x} while it is 0x{:x}
-                     )delim", offset, dyld_info->export_info().first);
+                     Expecting offset: {:#x} while it is {:#x}
+                     )delim",
+                     offset, dyld_info->export_info().first);
       }
     }

     // Update Offset to end of dyld_info->contents
     if (dyld_info->export_info().second != 0) {
       offset = dyld_info->export_info().first + dyld_info->export_info().second;
-    }
-
-    else if (dyld_info->lazy_bind().second != 0) {
+    } else if (dyld_info->lazy_bind().second != 0) {
       offset = dyld_info->lazy_bind().first + dyld_info->lazy_bind().second;
-    }
-
-    else if (dyld_info->weak_bind().second != 0) {
+    } else if (dyld_info->weak_bind().second != 0) {
       offset = dyld_info->weak_bind().first + dyld_info->weak_bind().second;
-    }
-
-    else if (dyld_info->bind().second != 0) {
+    } else if (dyld_info->bind().second != 0) {
       offset = dyld_info->bind().first + dyld_info->bind().second;
-    }
-
-    else if (dyld_info->rebase().second != 0) {
+    } else if (dyld_info->rebase().second != 0) {
       offset = dyld_info->rebase().first + dyld_info->rebase().second;
     }
   }
@@ -1067,8 +1143,9 @@ bool LayoutChecker::check() {
       if (fixups->data_offset() != offset) {
         return error(R"delim(
         __LINKEDIT does not start with LC_DYLD_CHAINED_FIXUPS:
-          Expecting offset: 0x{:x} while it is 0x{:x}
-        )delim", offset, fixups->data_offset());
+          Expecting offset: {:#x} while it is {:#x}
+        )delim",
+                     offset, fixups->data_offset());
       }
       offset += fixups->data_size();
     }
@@ -1079,8 +1156,9 @@ bool LayoutChecker::check() {
       if (exports->data_offset() != offset) {
         return error(R"delim(
         LC_DYLD_EXPORTS_TRIE out of place in __LINKEDIT:
-          Expecting offset: 0x{:x} while it is 0x{:x}
-        )delim", offset, exports->data_offset());
+          Expecting offset: {:#x} while it is {:#x}
+        )delim",
+                     offset, exports->data_offset());
       }
     }
     offset += exports->data_size();
@@ -1091,8 +1169,9 @@ bool LayoutChecker::check() {
       if (variants->data_offset() != offset) {
         return error(R"delim(
         LC_FUNCTION_VARIANTS out of place in __LINKEDIT:
-          Expecting offset: 0x{:x} while it is 0x{:x}
-        )delim", offset, variants->data_offset());
+          Expecting offset: {:#x} while it is {:#x}
+        )delim",
+                     offset, variants->data_offset());
       }
     }
     offset += variants->data_size();
@@ -1103,8 +1182,9 @@ bool LayoutChecker::check() {
       if (fixups->data_offset() != offset) {
         return error(R"delim(
         LC_FUNCTION_VARIANT_FIXUPS out of place in __LINKEDIT:
-          Expecting offset: 0x{:x} while it is 0x{:x}
-        )delim", offset, fixups->data_offset());
+          Expecting offset: {:#x} while it is {:#x}
+        )delim",
+                     offset, fixups->data_offset());
       }
     }
     offset += fixups->data_size();
@@ -1119,8 +1199,9 @@ bool LayoutChecker::check() {
     if (dyst->local_relocation_offset() != offset) {
       return error(R"delim(
       LC_DYSYMTAB local relocations out of place:
-        Expecting offset: 0x{:x} while it is 0x{:x}
-      )delim", offset, dyst->local_relocation_offset());
+        Expecting offset: {:#x} while it is {:#x}
+      )delim",
+                   offset, dyst->local_relocation_offset());
     }
     offset += dyst->nb_local_relocations() * sizeof(details::relocation_info);
   }
@@ -1130,19 +1211,38 @@ bool LayoutChecker::check() {
     if (spi->data_offset() != 0 && spi->data_offset() != offset) {
       return error(R"delim(
       LC_SEGMENT_SPLIT_INFO out of place:
-        Expecting offset: 0x{:x} while it is 0x{:x}
-      )delim", offset, spi->data_offset());
+        Expecting offset: {:#x} while it is {:#x}
+      )delim",
+                   offset, spi->data_offset());
     }
     offset += spi->data_size();
   }

+  for (const LoadCommand& cmd : binary.commands()) {
+    const auto* lazy = cmd.cast<LazyLoadDylibInfo>();
+    if (lazy == nullptr) {
+      continue;
+    }
+    if (lazy->data_offset() != 0) {
+      if (lazy->data_offset() != offset) {
+        return error(R"delim(
+        LC_LAZY_LOAD_DYLIB_INFO out of place in __LINKEDIT:
+          Expecting offset: {:#x} while it is {:#x}
+        )delim",
+                     offset, lazy->data_offset());
+      }
+    }
+    offset += lazy->data_size();
+  }
+
   // Check consistency of Function starts
   if (const FunctionStarts* fs = binary.function_starts()) {
     if (fs->data_offset() != 0 && fs->data_offset() != offset) {
       return error(R"delim(
       LC_FUNCTION_STARTS out of place:
-        Expecting offset: 0x{:x} while it is 0x{:x}
-      )delim", offset, fs->data_offset());
+        Expecting offset: {:#x} while it is {:#x}
+      )delim",
+                   offset, fs->data_offset());
     }
     offset += fs->data_size();
   }
@@ -1152,8 +1252,9 @@ bool LayoutChecker::check() {
     if (dic->data_offset() != 0 && dic->data_offset() != offset) {
       return error(R"delim(
       LC_DATA_IN_CODE out of place:
-        Expecting offset: 0x{:x} while it is 0x{:x}
-      )delim", offset, dic->data_offset());
+        Expecting offset: {:#x} while it is {:#x}
+      )delim",
+                   offset, dic->data_offset());
     }
     offset += dic->data_size();
   }
@@ -1162,8 +1263,9 @@ bool LayoutChecker::check() {
     if (info->data_offset() != 0 && info->data_offset() != offset) {
       return error(R"delim(
       LC_ATOM_INFO out of place:
-        Expecting offset: 0x{:x} while it is 0x{:x}
-      )delim", offset, info->data_offset());
+        Expecting offset: {:#x} while it is {:#x}
+      )delim",
+                   offset, info->data_offset());
     }
     offset += info->data_size();
   }
@@ -1172,8 +1274,9 @@ bool LayoutChecker::check() {
     if (cs->data_offset() != 0 && cs->data_offset() != offset) {
       return error(R"delim(
       LC_DYLIB_CODE_SIGN_DRS out of place:
-        Expecting offset: 0x{:x} while it is 0x{:x}
-      )delim", offset, cs->data_offset());
+        Expecting offset: {:#x} while it is {:#x}
+      )delim",
+                   offset, cs->data_offset());
     }
     offset += cs->data_size();
   }
@@ -1182,8 +1285,9 @@ bool LayoutChecker::check() {
     if (opt->data_offset() != 0 && opt->data_offset() != offset) {
       return error(R"delim(
       LC_LINKER_OPTIMIZATION_HINT out of place:
-        Expecting offset: 0x{:x} while it is 0x{:x}
-      )delim", offset, opt->data_offset());
+        Expecting offset: {:#x} while it is {:#x}
+      )delim",
+                   offset, opt->data_offset());
     }
     offset += opt->data_size();
   }
@@ -1198,10 +1302,12 @@ bool LayoutChecker::check() {
     if (st->symbol_offset() != offset) {
       return error(R"delim(
       LC_SYMTAB.nlist out of place:
-        Expecting offset: 0x{:x} while it is 0x{:x}
-      )delim", offset, st->symbol_offset());
+        Expecting offset: {:#x} while it is {:#x}
+      )delim",
+                   offset, st->symbol_offset());
     }
-    offset += st->numberof_symbols() * (is64 ? sizeof(details::nlist_64) : sizeof(details::nlist_32));
+    offset += st->numberof_symbols() *
+              (is64 ? sizeof(details::nlist_64) : sizeof(details::nlist_32));
   }

   size_t isym = 0;
@@ -1211,7 +1317,8 @@ bool LayoutChecker::check() {
       return error(R"delim(
       LC_DYSYMTAB.nlocalsym out of place:
         Expecting index: {} while it is {}
-      )delim", isym, dyst->idx_local_symbol());
+      )delim",
+                   isym, dyst->idx_local_symbol());
     }
     isym += dyst->nb_local_symbols();
   }
@@ -1222,7 +1329,8 @@ bool LayoutChecker::check() {
       return error(R"delim(
       LC_DYSYMTAB.iextdefsym out of place:
         Expecting index: {} while it is {}
-      )delim", isym, dyst->idx_external_define_symbol());
+      )delim",
+                   isym, dyst->idx_external_define_symbol());
     }
     isym += dyst->nb_external_define_symbols();
   }
@@ -1232,7 +1340,8 @@ bool LayoutChecker::check() {
       return error(R"delim(
       LC_DYSYMTAB.nundefsym out of place:
         Expecting index: {} while it is {}
-      )delim", isym, dyst->idx_undefined_symbol());
+      )delim",
+                   isym, dyst->idx_undefined_symbol());
     }
     isym += dyst->nb_undefined_symbols();
   }
@@ -1242,8 +1351,9 @@ bool LayoutChecker::check() {
     if (two->offset() != 0 && two->offset() != offset) {
       return error(R"delim(
       LC_TWOLEVEL_HINTS out of place:
-        Expecting offset: 0x{:x} while it is 0x{:x}
-      )delim", offset, two->offset());
+        Expecting offset: {:#x} while it is {:#x}
+      )delim",
+                   offset, two->offset());
     }
     offset += two->hints().size() * sizeof(details::twolevel_hint);
   }
@@ -1253,8 +1363,9 @@ bool LayoutChecker::check() {
     if (dyst->external_relocation_offset() != offset) {
       return error(R"delim(
       LC_DYSYMTAB.extrel out of place:
-        Expecting offset: 0x{:x} while it is 0x{:x}
-      )delim", offset, dyst->external_relocation_offset());
+        Expecting offset: {:#x} while it is {:#x}
+      )delim",
+                   offset, dyst->external_relocation_offset());
     }

     offset += dyst->nb_external_relocations() * sizeof(details::relocation_info);
@@ -1265,8 +1376,9 @@ bool LayoutChecker::check() {
     if (dyst->indirect_symbol_offset() != offset) {
       return error(R"delim(
       LC_DYSYMTAB.nindirect out of place:
-        Expecting offset: 0x{:x} while it is 0x{:x}
-      )delim", offset, dyst->indirect_symbol_offset());
+        Expecting offset: {:#x} while it is {:#x}
+      )delim",
+                   offset, dyst->indirect_symbol_offset());
     }

     offset += dyst->nb_indirect_symbols() * sizeof(uint32_t);
@@ -1282,63 +1394,71 @@ bool LayoutChecker::check() {
     if (dyst->toc_offset() != offset && dyst->toc_offset() != rounded_offset) {
       return error(R"delim(
       LC_DYSYMTAB.toc out of place:
-        Expecting offsets: 0x{:x} or 0x{:x} while it is 0x{:x}
-      )delim", offset, rounded_offset, dyst->toc_offset());
+        Expecting offsets: {:#x} or {:#x} while it is {:#x}
+      )delim",
+                   offset, rounded_offset, dyst->toc_offset());
     }
     if (dyst->toc_offset() == offset) {
-      offset        += dyst->nb_toc() * sizeof(details::dylib_table_of_contents);
+      offset += dyst->nb_toc() * sizeof(details::dylib_table_of_contents);
       rounded_offset = offset;
-    }
-    else if (dyst->toc_offset() == rounded_offset) {
+    } else if (dyst->toc_offset() == rounded_offset) {
       input_indirectsym_pad = rounded_offset - offset;

       rounded_offset += dyst->nb_toc() * sizeof(details::dylib_table_of_contents);
-      offset          = rounded_offset;
+      offset = rounded_offset;
     }
   }


   if (dyst->nb_module_table() != 0) {
-    if (dyst->module_table_offset() != offset && dyst->module_table_offset() != rounded_offset) {
+    if (dyst->module_table_offset() != offset &&
+        dyst->module_table_offset() != rounded_offset)
+    {
       return error(R"delim(
       LC_DYSYMTAB.modtab out of place:
-        Expecting offsets: 0x{:x} or 0x{:x} while it is 0x{:x}
-      )delim", offset, rounded_offset, dyst->module_table_offset());
+        Expecting offsets: {:#x} or {:#x} while it is {:#x}
+      )delim",
+                   offset, rounded_offset, dyst->module_table_offset());
     }

     if (is64) {
       if (dyst->module_table_offset() == offset) {
-        offset        += dyst->nb_module_table() * sizeof(details::dylib_module_64);
+        offset += dyst->nb_module_table() * sizeof(details::dylib_module_64);
         rounded_offset = offset;
-      }
-      else if (dyst->module_table_offset() == rounded_offset) {
+      } else if (dyst->module_table_offset() == rounded_offset) {
         input_indirectsym_pad = rounded_offset - offset;
-        rounded_offset += dyst->nb_module_table() * sizeof(details::dylib_module_64);
-        offset         = rounded_offset;
+        rounded_offset +=
+            dyst->nb_module_table() * sizeof(details::dylib_module_64);
+        offset = rounded_offset;
       }
     } else {
-      offset        += dyst->nb_module_table() * sizeof(details::dylib_module_32);
+      offset += dyst->nb_module_table() * sizeof(details::dylib_module_32);
       rounded_offset = offset;
     }
   }


   if (dyst->nb_external_reference_symbols() != 0) {
-    if (dyst->external_reference_symbol_offset() != offset && dyst->external_reference_symbol_offset() != rounded_offset) {
+    if (dyst->external_reference_symbol_offset() != offset &&
+        dyst->external_reference_symbol_offset() != rounded_offset)
+    {
       return error(R"delim(
       LC_DYSYMTAB.extrefsym out of place:
-        Expecting offsets: 0x{:x} or 0x{:x} while it is 0x{:x}
-      )delim", offset, rounded_offset, dyst->external_reference_symbol_offset());
+        Expecting offsets: {:#x} or {:#x} while it is {:#x}
+      )delim",
+                   offset, rounded_offset,
+                   dyst->external_reference_symbol_offset());
     }

     if (dyst->external_reference_symbol_offset() == offset) {
-      offset        += dyst->nb_external_reference_symbols() * sizeof(details::dylib_reference);
+      offset +=
+          dyst->nb_external_reference_symbols() * sizeof(details::dylib_reference);
       rounded_offset = offset;
-    }
-    else if (dyst->external_reference_symbol_offset() == rounded_offset) {
+    } else if (dyst->external_reference_symbol_offset() == rounded_offset) {
       input_indirectsym_pad = rounded_offset - offset;
-      rounded_offset += dyst->nb_external_reference_symbols() * sizeof(details::dylib_reference);
-      offset         = rounded_offset;
+      rounded_offset +=
+          dyst->nb_external_reference_symbols() * sizeof(details::dylib_reference);
+      offset = rounded_offset;
     }
   }

@@ -1347,19 +1467,19 @@ bool LayoutChecker::check() {
     if (st->strings_offset() != offset && st->strings_offset() != rounded_offset) {
       return error(R"delim(
       LC_SYMTAB.strings out of place:
-        Expecting offsets: 0x{:x} or 0x{:x} while it is 0x{:x}
-      )delim", offset, rounded_offset, st->strings_offset());
+        Expecting offsets: {:#x} or {:#x} while it is {:#x}
+      )delim",
+                   offset, rounded_offset, st->strings_offset());
     }


     if (st->strings_offset() == offset) {
-      offset        += st->strings_size();
+      offset += st->strings_size();
       rounded_offset = offset;
-    }
-    else if (st->strings_offset() == rounded_offset) {
+    } else if (st->strings_offset() == rounded_offset) {
       input_indirectsym_pad = rounded_offset - offset;
       rounded_offset += st->strings_size();
-      offset         = rounded_offset;
+      offset = rounded_offset;
     }
   }

@@ -1368,8 +1488,9 @@ bool LayoutChecker::check() {
     if (cs->data_offset() != rounded_offset) {
       return error(R"delim(
       LC_CODE_SIGNATURE out of place:
-        Expecting offsets: 0x{:x} while it is 0x{:x}
-      )delim", offset, cs->data_offset());
+        Expecting offsets: {:#x} while it is {:#x}
+      )delim",
+                   offset, cs->data_offset());
     }
     rounded_offset += cs->data_size();
     offset = rounded_offset;
@@ -1379,14 +1500,15 @@ bool LayoutChecker::check() {
   const uint64_t object_size = linkedit->file_offset() + linkedit->file_size();
   if (offset != object_size && rounded_offset != object_size) {
     return error(R"delim(
-    __LINKEDIT.end (0x{:x}) does not match 0x{:x} nor 0x{:x}
-    )delim", object_size, offset, rounded_offset);
+    __LINKEDIT.end ({:#x}) does not match {:#x} nor {:#x}
+    )delim",
+                 object_size, offset, rounded_offset);
   }
   return true;
 }

 bool LayoutChecker::check_chained_fixups() {
-  static constexpr auto DYLD_CHAINED_PTR_START_NONE  = 0xFFFF;
+  static constexpr auto DYLD_CHAINED_PTR_START_NONE = 0xFFFF;
   static constexpr auto DYLD_CHAINED_PTR_START_MULTI = 0x8000;
   const DyldChainedFixups* fixups = binary.dyld_chained_fixups();
   if (fixups == nullptr) {
@@ -1399,11 +1521,15 @@ bool LayoutChecker::check_chained_fixups() {
   }

   if (fixups->starts_offset() >= fixups->data_size()) {
-    return error("chained fixups, starts_offset exceeds LC_DYLD_CHAINED_FIXUPS size");
+    return error(
+        "chained fixups, starts_offset exceeds LC_DYLD_CHAINED_FIXUPS size"
+    );
   }

   if (fixups->imports_offset() >= fixups->data_size()) {
-    return error("chained fixups, starts_offset exceeds LC_DYLD_CHAINED_FIXUPS size");
+    return error(
+        "chained fixups, starts_offset exceeds LC_DYLD_CHAINED_FIXUPS size"
+    );
   }

   uint32_t fmt_entry_size = 0;
@@ -1425,7 +1551,9 @@ bool LayoutChecker::check_chained_fixups() {
   }

   if (greater_than_add_or_overflow<uint32_t>(fixups->imports_offset(),
-        fmt_entry_size * fixups->imports_count(), fixups->symbols_offset()))
+                                             fmt_entry_size *
+                                                 fixups->imports_count(),
+                                             fixups->symbols_offset()))
   {
     return error("chained fixups, imports array overlaps symbols");
   }
@@ -1450,24 +1578,30 @@ bool LayoutChecker::check_chained_fixups() {
   const uint64_t end_of_start = fixups->imports_offset();
   uint32_t max_valid_pointer_seen = 0;
   size_t idx = 0;
-  result<DYLD_CHAINED_PTR_FORMAT> ptr_format_for_all = make_error_code(lief_errors::not_found);
+  result<DYLD_CHAINED_PTR_FORMAT> ptr_format_for_all =
+      make_error_code(lief_errors::not_found);

-  for (const DyldChainedFixups::chained_starts_in_segment& seg_start : starts_info) {
+  for (const DyldChainedFixups::chained_starts_in_segment& seg_start : starts_info)
+  {
     if (seg_start.offset == 0) {
       continue;
     }

     if (seg_start.size > end_of_start - seg_start.offset) {
       return error("chained fixups, dyld_chained_starts_in_segment for segment "
-                   "#{} overruns imports table", idx);
+                   "#{} overruns imports table",
+                   idx);
     }

     if (seg_start.page_size != 0x1000 && seg_start.page_size != 0x4000) {
       return error("chained fixups, page_size not 4KB or 16KB in segment "
-                   "#{} (page_size: 0x{:04x})", idx, seg_start.page_size);
+                   "#{} (page_size: {:#06x})",
+                   idx, seg_start.page_size);
     }

-    if ((int)seg_start.pointer_format > (int)DYLD_CHAINED_PTR_FORMAT::PTR_ARM64E_SHARED_CACHE) {
+    if ((int)seg_start.pointer_format >
+        (int)DYLD_CHAINED_PTR_FORMAT::PTR_ARM64E_SHARED_CACHE)
+    {
       return error("chained fixups, unknown pointer_format in segment #{}", idx);
     }

@@ -1476,16 +1610,18 @@ bool LayoutChecker::check_chained_fixups() {
     }

     if (seg_start.pointer_format != ptr_format_for_all) {
-      return error("chained fixups, pointer_format not same for all segments {} and {}",
-                   to_string(seg_start.pointer_format), to_string(*ptr_format_for_all));
+      return error(
+          "chained fixups, pointer_format not same for all segments {} and {}",
+          to_string(seg_start.pointer_format), to_string(*ptr_format_for_all)
+      );
     }

     if (seg_start.max_valid_pointer != 0) {
       if (max_valid_pointer_seen == 0) {
         max_valid_pointer_seen = seg_start.max_valid_pointer;
-      }
-      else if (max_valid_pointer_seen != seg_start.max_valid_pointer) {
-        return error("chained fixups, different max_valid_pointer values seen in different segments");
+      } else if (max_valid_pointer_seen != seg_start.max_valid_pointer) {
+        return error("chained fixups, different max_valid_pointer values seen in "
+                     "different segments");
       }
     }
     if (seg_start.page_start.size() * sizeof(uint16_t) > seg_start.size) {
@@ -1493,7 +1629,8 @@ bool LayoutChecker::check_chained_fixups() {
     }

     [[maybe_unused]] uint32_t max_overflow_idx =
-        (seg_start.size - sizeof(details::dyld_chained_starts_in_segment)) / sizeof(uint16_t);
+        (seg_start.size - sizeof(details::dyld_chained_starts_in_segment)) /
+        sizeof(uint16_t);

     for (size_t page_idx = 0; page_idx < seg_start.page_count(); ++page_idx) {
       uint16_t offset_in_page = seg_start.page_start[page_idx];
@@ -1503,11 +1640,11 @@ bool LayoutChecker::check_chained_fixups() {

       if ((offset_in_page & DYLD_CHAINED_PTR_START_MULTI) == 0) {
         if (offset_in_page > seg_start.page_size) {
-          return error("chained fixups, in segment #{} page_start[{}]=0x{:04x} exceeds page size",
+          return error("chained fixups, in segment #{} page_start[{}]={:#06x} "
+                       "exceeds page size",
                        idx, page_idx, offset_in_page);
         }
-      }
-      else {
+      } else {
         // TODO(romain): to implement
       }
     }
@@ -1516,47 +1653,379 @@ bool LayoutChecker::check_chained_fixups() {
   return true;
 }

+bool LayoutChecker::check_export(uint64_t imagebase, uint64_t max_vm_offset,
+                                 const ExportInfo& info) {
+  // skip other exports than regular and thread-local
+  if (info.has(ExportInfo::FLAGS::REEXPORT) ||
+      info.kind() == ExportInfo::KIND::ABSOLUTE_KIND)
+  {
+    return true;
+  }
+
+  uint64_t vm_offset = info.address();
+  if ((int64_t)vm_offset < 0) {
+    // Segments with an address lower than __TEXT
+    vm_offset = imagebase - vm_offset;
+  }
+
+  if (vm_offset > max_vm_offset) {
+    return error("vmOffset too large for {}",
+                 info.has_symbol() ? info.symbol()->name() : "<empty>");
+  }
+  return true;
+}
+
+
+bool LayoutChecker::check_exports_trie() {
+  const DyldInfo* dyld_info = binary.dyld_info();
+  const DyldExportsTrie* exports_trie = binary.dyld_exports_trie();
+
+  if (dyld_info == nullptr && exports_trie == nullptr) {
+    return true;
+  }
+
+  // maxVmOffset is computed in Image::validLinkedit as the highest
+  // `runtimeOffset + runtimeSize` over all the segments except __LINKEDIT, with a
+  // lowest value of 0x4000. __PAGEZERO is *not* excluded.
+  uint64_t max_vm_offset = 0x4000;
+  uint64_t text_vmaddr = 0;
+  for (const SegmentCommand& seg : binary.segments()) {
+    if (seg.name() == "__TEXT") {
+      text_vmaddr = seg.virtual_address();
+    }
+    if (seg.name() == "__LINKEDIT") {
+      continue;
+    }
+    const uint64_t runtime_offset = seg.virtual_address() - text_vmaddr;
+    max_vm_offset =
+        std::max<uint64_t>(max_vm_offset, runtime_offset + seg.virtual_size());
+  }
+
+  const uint64_t imagebase = binary.imagebase();
+
+  if (exports_trie != nullptr) {
+    for (const ExportInfo& info : exports_trie->exports()) {
+      if (!check_export(imagebase, max_vm_offset, info)) {
+        return false;
+      }
+    }
+  }
+
+  if (dyld_info != nullptr) {
+    for (const ExportInfo& info : dyld_info->exports()) {
+      if (!check_export(imagebase, max_vm_offset, info)) {
+        return false;
+      }
+    }
+  }
+
+  return true;
+}
+

 bool LayoutChecker::check_function_variants() {
   using KIND = FunctionVariants::RuntimeTable::KIND;
+  using RuntimeTableEntry = FunctionVariants::RuntimeTableEntry;
   const FunctionVariants* variants = binary.function_variants();
   if (variants == nullptr) {
     return true;
   }

+  const FunctionStarts* func_starts = binary.function_starts();
+  const uint64_t imagebase = binary.imagebase();
+
+  // Check that the impl for RuntimeTableEntry target a function that is
+  // listed in LC_FUNCTION_STARTS. This is pretty conservative and dyld could relax
+  // this condition but this can be used to identify malformed modifications.
+  std::unordered_set<uint64_t> starts;
+  if (func_starts != nullptr) {
+    const std::vector<uint64_t>& fn = func_starts->functions();
+    starts.insert(fn.begin(), fn.end());
+  }
+
   for (const FunctionVariants::RuntimeTable& entry : variants->runtime_table()) {
     switch (entry.kind()) {
       case KIND::ARM64:
       case KIND::PER_PROCESS:
       case KIND::SYSTEM_WIDE:
-      case KIND::X86_64:
-        break;
+      case KIND::X86_64: break;
       default:
         return error("unknown FunctionVariants::RuntimeTable::KIND ({})",
-            (uint32_t)entry.kind());
+                     (uint32_t)entry.kind());
     }

     // Check that the last entry is "default"
     auto entries = entry.entries();
     if (entries.empty()) {
-      return error("Missing entries in FunctionVariants::RuntimeTable (offset=0x{:06x})", entry.offset());
+      return error(
+          "Missing entries in FunctionVariants::RuntimeTable (offset={:#08x})",
+          entry.offset()
+      );
     }

-    const FunctionVariants::RuntimeTableEntry& last = entries[entries.size() - 1];
+    const RuntimeTableEntry& last = entries[entries.size() - 1];
     if (last.flag_bit_nums()[0] != 0) {
-      return error("last entry in FunctionVariants::RuntimeTable entries is not 'default'");
+      return error(
+          "last entry in FunctionVariants::RuntimeTable entries is not 'default'"
+      );
+    }
+
+    if (func_starts == nullptr) {
+      continue;
+    }
+
+    for (const RuntimeTableEntry& impl_entry : entries) {
+      if (impl_entry.another_table()) {
+        continue;
+      }
+
+      const uint64_t va = imagebase + impl_entry.impl();
+      if (binary.segment_from_virtual_address(va) == nullptr) {
+        // tolerated
+        continue;
+      }
+
+      if (starts.find(impl_entry.impl()) == starts.end()) {
+        return error(
+            "FunctionVariants impl offset {:#x} (va: {:#x}) does not match any "
+            "LC_FUNCTION_STARTS entry",
+            impl_entry.impl(), va
+        );
+      }
     }
   }
   return true;
 }

+bool LayoutChecker::check_function_variant_fixups() {
+  const FunctionVariantFixups* fixups = binary.function_variant_fixups();
+  if (fixups == nullptr) {
+    return true;
+  }
+
+  // The payload is a bare array of fixed-size entries: a trailing partial
+  // entry would be silently dropped by dyld (it does size / sizeof(entry)).
+  if (fixups->data_size() % sizeof(details::function_variant_fixup_t) != 0) {
+    return error(
+        "LC_FUNCTION_VARIANT_FIXUPS payload size ({:#x}) is not a multiple of "
+        "the fixup entry size ({})",
+        fixups->data_size(), sizeof(details::function_variant_fixup_t)
+    );
+  }
+
+  auto segments = binary.segments();
+  const size_t nb_segments = segments.size();
+
+  // variant_index selects a FunctionVariants runtime table. dyld resolves a
+  // fixup as `image.segment(segIndex) + segOffset` pointing at table
+  // `#variantIndex`, so both indices must be in range.
+  const FunctionVariants* variants = binary.function_variants();
+
+  const size_t nb_tables =
+      variants == nullptr ? 0 : variants->runtime_table().size();
+
+  size_t idx = 0;
+  for (const FunctionVariantFixups::Fixup& fixup : fixups->fixups()) {
+    if (fixup.seg_index() >= nb_segments) {
+      return error(
+          "LC_FUNCTION_VARIANT_FIXUPS fixup #{} references segment #{} but the "
+          "binary only has {} segment(s)",
+          idx, fixup.seg_index(), nb_segments
+      );
+    }
+
+    const SegmentCommand& segment = segments[fixup.seg_index()];
+    if (fixup.seg_offset() + ptr_size() > segment.virtual_size()) {
+      return error(
+          "LC_FUNCTION_VARIANT_FIXUPS fixup #{} points outside of segment '{}' "
+          "(seg_offset={:#x}, vmsize={:#x})",
+          idx, segment.name(), fixup.seg_offset(), segment.virtual_size()
+      );
+    }
+
+    if (fixup.variant_index() >= nb_tables) {
+      return error(
+          "LC_FUNCTION_VARIANT_FIXUPS fixup #{} references function-variant "
+          "table #{} but the binary defines {} table(s)",
+          idx, fixup.variant_index(), nb_tables
+      );
+    }
+    ++idx;
+  }
+
+  return true;
+}
+
+
+bool LayoutChecker::check_lazy_load_dylib_infos() {
+  // clang-format off
+  //
+  // NOTE(romain): this is a 1x1 copy of the definition in dyld (mach_o/LazyLoadDylib.h)
+  struct LazyLoadDylibLinkEdit
+  {
+      uint32_t    loadPathOffset;          // path of dylib to load
+      uint32_t    flagImageOffset;         // image offset to flags global
+      uint16_t    flags;                   // weak linked or not
+      uint16_t    pointerFormat;           // e.g. DYLD_CHAINED_PTR_ARM64E_USERLAND
+      uint32_t    chainStartImageOffset;   // image offset to fixup chain start
+      uint32_t    symbolsCount;            // how many symbol names to bind
+      uint32_t    symbolStringArrayOffset; // offset of each symbol name within blob
+      // room for future fields here
+      // path string
+      // symbols strings
+  };
+  static constexpr size_t HEADER_SIZE = sizeof(LazyLoadDylibLinkEdit);
+  static_assert(HEADER_SIZE == 24);
+  // clang-format on
+
+  // 0x4000 according to Image::validStructureLinkedit
+  uint64_t max_vm_offset = 0x4000;
+  const uint64_t imagebase = binary.imagebase();
+  for (const SegmentCommand& seg : binary.segments()) {
+    if (seg.name() == "__LINKEDIT" || seg.name() == "__PAGEZERO") {
+      continue;
+    }
+    const uint64_t runtime_off =
+        seg.virtual_address() >= imagebase ? seg.virtual_address() - imagebase : 0;
+    max_vm_offset =
+        std::max<uint64_t>(max_vm_offset, runtime_off + seg.virtual_size());
+  }
+
+  for (const LoadCommand& cmd : binary.commands()) {
+    const auto* lazy = cmd.cast<LazyLoadDylibInfo>();
+    if (lazy == nullptr) {
+      continue;
+    }
+
+    span<const uint8_t> content = lazy->content();
+    if (content.size() < HEADER_SIZE) {
+      return error("LC_LAZY_LOAD_DYLIB_INFO payload size ({}) is too small "
+                   "(minimum is {})",
+                   content.size(), HEADER_SIZE);
+    }
+
+    SpanStream stream(content);
+    auto header = stream.peek<LazyLoadDylibLinkEdit>();
+    if (!header) {
+      return error("LC_LAZY_LOAD_DYLIB_INFO failed to read the header");
+    }
+
+    // sanity check loadPathOffset and its string terminator
+    if (header->loadPathOffset > content.size()) {
+      return error("LC_LAZY_LOAD_DYLIB_INFO loadPathOffset ({}) out of range "
+                   "(max {})",
+                   header->loadPathOffset, content.size());
+    }
+
+    const auto path_start = content.begin() + header->loadPathOffset;
+    if (std::find(path_start, content.end(), '\0') == content.end()) {
+      return error("LC_LAZY_LOAD_DYLIB_INFO load path is not null terminated");
+    }
+
+    // Ensure that `flagImageOffset` targets a valid segment.
+    // NOTE(romain): should we check for RW- permission?
+    if (header->flagImageOffset > max_vm_offset) {
+      return error("LC_LAZY_LOAD_DYLIB_INFO flagImageOffset ({:#x}) beyond max "
+                   "vm offset ({:#x})",
+                   header->flagImageOffset, max_vm_offset);
+    }
+
+    if (header->chainStartImageOffset > max_vm_offset) {
+      return error("LC_LAZY_LOAD_DYLIB_INFO chainStartImageOffset ({:#x}) beyond "
+                   "max vm offset ({:#x})",
+                   header->chainStartImageOffset, max_vm_offset);
+    }
+
+    // sanity check the symbol string-offset array bounds
+    const bool overflow = greater_than_add_or_overflow<uint64_t>(
+        header->symbolStringArrayOffset,
+        (uint64_t)header->symbolsCount * sizeof(uint32_t), content.size()
+    );
+    if (overflow) {
+      return error("LC_LAZY_LOAD_DYLIB_INFO symbolsCount ({}) too large to fit "
+                   "in payload (size {})",
+                   header->symbolsCount, content.size());
+    }
+
+    // sanity check each symbol string offset
+    for (uint32_t i = 0; i < header->symbolsCount; ++i) {
+      const uint64_t pos =
+          header->symbolStringArrayOffset + (uint64_t)i * sizeof(uint32_t);
+      auto sym_off = stream.peek<uint32_t>(pos);
+      if (!sym_off || *sym_off > content.size()) {
+        return error("LC_LAZY_LOAD_DYLIB_INFO symbolStringOffsets[{}] ({}) out "
+                     "of range (max {})",
+                     i, sym_off ? *sym_off : 0, content.size());
+      }
+    }
+  }
+
+  return true;
+}
+
+
+bool LayoutChecker::check_tls() {
+  const bool is32 = ptr_size() == sizeof(uint32_t);
+  const bool is64 = ptr_size() == sizeof(uint64_t);
+  assert(is32 || is64);
+  const ThreadLocalVariables* sec_vars = nullptr;
+  const Binary::range_t initial_content = binary.tlv_initial_content_range();
+  for (const Section& S : binary.sections()) {
+    if (const auto* sec = S.cast<ThreadLocalVariables>()) {
+      sec_vars = sec;
+    }
+
+    // See ThreadLocalVariables.cpp
+    const size_t sizeof_ = 3 * ptr_size();
+
+    if (sec_vars != nullptr) {
+      const size_t size = sec_vars->content().size();
+      if (size % sizeof_ != 0) {
+        return error(
+            "size ({}) of thread-locals section {} is not a multiple of {}", size,
+            sec_vars->name(), sizeof_
+        );
+      }
+    }
+  }
+
+  if (is64 && initial_content.size() > 4_GB) {
+    return error("unsupported thread-local, larger than 4GB");
+  }
+
+  if (is32 && initial_content.size() > 4_GB) {
+    return error("unsupported thread-local, larger than 4GB");
+  }
+
+  if (sec_vars != nullptr) {
+    for (const ThreadLocalVariables::Thunk& thunk : sec_vars->thunks()) {
+      if (thunk.offset > initial_content.size()) {
+        return error("malformed thread-local, offset={:#08x} is larger than total "
+                     "size={:#08x}",
+                     thunk.offset, initial_content.size());
+      }
+      if (is64 && thunk.key > std::numeric_limits<uint32_t>::max()) {
+        return error("thread_key_t {}, larger than uint32_t", thunk.key);
+      }
+
+      if (is32 && thunk.key > std::numeric_limits<uint16_t>::max()) {
+        return error("thread_key_t {}, larger than uint16_t", thunk.key);
+      }
+    }
+  }
+
+  return true;
+}
+
 bool check_layout(const FatBinary& fat, std::string* error) {
   bool is_ok = true;
   for (Binary& bin : fat) {
     LayoutChecker checker(bin);
     if (!checker.check()) {
       is_ok = false;
-      if (error) { *error += checker.get_error() + '\n'; }
+      if (error) {
+        *error += checker.get_error() + '\n';
+      }
     }
   }
   return is_ok;
@@ -1566,7 +2035,9 @@ bool check_layout(const FatBinary& fat, std::string* error) {
 bool check_layout(const Binary& binary, std::string* error) {
   LayoutChecker checker(binary);
   if (!checker.check()) {
-    if (error) { *error += checker.get_error() + '\n'; }
+    if (error) {
+      *error += checker.get_error() + '\n';
+    }
     return false;
   }
   return true;
diff --git a/deps/LIEF/src/MachO/utils.cpp b/deps/LIEF/src/MachO/utils.cpp
index b7f3a046aa0..c8665c85260 100644
--- a/deps/LIEF/src/MachO/utils.cpp
+++ b/deps/LIEF/src/MachO/utils.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -31,8 +31,7 @@
 #include "logging.hpp"


-namespace LIEF {
-namespace MachO {
+namespace LIEF::MachO {

 inline result<MACHO_TYPES> magic_from_stream(BinaryStream& stream,
                                              bool keep_offset = false) {
@@ -48,17 +47,47 @@ inline result<MACHO_TYPES> magic_from_stream(BinaryStream& stream,
 }

 bool is_macho(BinaryStream& stream) {
-  if (auto magic_res = magic_from_stream(stream)) {
-    const MACHO_TYPES magic = *magic_res;
-    return (magic == MACHO_TYPES::MAGIC ||
-            magic == MACHO_TYPES::CIGAM ||
-            magic == MACHO_TYPES::MAGIC_64 ||
-            magic == MACHO_TYPES::CIGAM_64 ||
-            magic == MACHO_TYPES::MAGIC_FAT ||
-            magic == MACHO_TYPES::CIGAM_FAT ||
-            magic == MACHO_TYPES::NEURAL_MODEL);
+  ScopedStream scoped(stream, 0);
+
+  std::array<uint8_t, 8> header = {0};
+  if (!scoped->peek_array(header)) {
+    return false;
   }
-  return false;
+
+  // Check for Java class file: CA FE BA BE + valid minor/major version
+  if (header[0] == 0xCA && header[1] == 0xFE && header[2] == 0xBA &&
+      header[3] == 0xBE)
+  {
+    static constexpr auto MIN_JAVA_VERSION = 45;
+    static constexpr auto MAX_JAVA_VERSION = 69;
+
+    // combine bytes 4 & 5 to get the minor version
+    uint16_t minor = (header[4] << 8) | header[5];
+    // combine bytes 6 & 7 to get the major version
+    uint16_t major = (header[6] << 8) | header[7];
+
+    // ranges of current java minor and major versions
+    if (minor <= std::numeric_limits<uint16_t>::max() &&
+        MIN_JAVA_VERSION <= major && major <= MAX_JAVA_VERSION)
+    {
+      // This is a Java file
+      return false;
+    }
+  }
+
+  auto magic_res = MachO::magic_from_stream(*scoped);
+  if (!magic_res) {
+    return false;
+  }
+  const MachO::MACHO_TYPES magic = *magic_res;
+
+  return (magic == MachO::MACHO_TYPES::MAGIC ||
+          magic == MachO::MACHO_TYPES::CIGAM ||
+          magic == MachO::MACHO_TYPES::MAGIC_64 ||
+          magic == MachO::MACHO_TYPES::CIGAM_64 ||
+          magic == MachO::MACHO_TYPES::MAGIC_FAT ||
+          magic == MachO::MACHO_TYPES::CIGAM_FAT ||
+          magic == MachO::MACHO_TYPES::NEURAL_MODEL);
 }

 bool is_macho(const std::string& file) {
@@ -79,8 +108,7 @@ bool is_fat(const std::string& file) {
   if (auto stream = FileStream::from_file(file)) {
     if (auto magic_res = magic_from_stream(*stream)) {
       const MACHO_TYPES magic = *magic_res;
-      return magic == MACHO_TYPES::MAGIC_FAT ||
-             magic == MACHO_TYPES::CIGAM_FAT;
+      return magic == MACHO_TYPES::MAGIC_FAT || magic == MACHO_TYPES::CIGAM_FAT;
     }
   }
   return false;
@@ -90,8 +118,7 @@ bool is_64(BinaryStream& stream) {
   ScopedStream scoped(stream, 0);
   if (auto magic_res = magic_from_stream(*scoped)) {
     const MACHO_TYPES magic = *magic_res;
-    return magic == MACHO_TYPES::MAGIC_64 ||
-           magic == MACHO_TYPES::CIGAM_64;
+    return magic == MACHO_TYPES::MAGIC_64 || magic == MACHO_TYPES::CIGAM_64;
   }
   return false;
 }
@@ -105,7 +132,7 @@ bool is_64(const std::string& file) {


 template<class MACHO_T>
-void foreach_segment_impl(BinaryStream& stream, const segment_callback_t cbk) {
+void foreach_segment_impl(BinaryStream& stream, const segment_callback_t& cbk) {
   using header_t = typename MACHO_T::header;
   using segment_command_t = typename MACHO_T::segment_command;
   auto res_hdr = stream.read<header_t>();
@@ -114,14 +141,25 @@ void foreach_segment_impl(BinaryStream& stream, const segment_callback_t cbk) {
   }
   const auto& hdr = *res_hdr;

+  const uint64_t cmds_start = stream.pos(); // right after the header
+  const uint64_t cmds_end = cmds_start + hdr.sizeofcmds;
+
   for (size_t i = 0; i < hdr.ncmds; ++i) {
+    if ((stream.pos() + sizeof(details::load_command)) > cmds_end) {
+      break;
+    }
     const auto raw_cmd = stream.peek<details::load_command>();
     if (!raw_cmd) {
       break;
     }
+    if (raw_cmd->cmdsize < sizeof(details::load_command) ||
+        (stream.pos() + raw_cmd->cmdsize) > cmds_end)
+    {
+      break;
+    }
     const auto cmd = LoadCommand::TYPE(raw_cmd->cmd);
-    const bool is_segment = cmd == LoadCommand::TYPE::SEGMENT ||
-                            cmd == LoadCommand::TYPE::SEGMENT_64;
+    const bool is_segment =
+        cmd == LoadCommand::TYPE::SEGMENT || cmd == LoadCommand::TYPE::SEGMENT_64;
     if (is_segment) {
       auto res_segment = stream.peek<segment_command_t>();
       if (!res_segment) {
@@ -136,7 +174,7 @@ void foreach_segment_impl(BinaryStream& stream, const segment_callback_t cbk) {
   }
 }

-void foreach_segment(BinaryStream& stream, const segment_callback_t cbk) {
+void foreach_segment(BinaryStream& stream, const segment_callback_t& cbk) {
   ScopedStream scoped(stream);
   auto magic_res = magic_from_stream(*scoped, /*keep_offset=*/true);
   if (!magic_res) {
@@ -146,15 +184,14 @@ void foreach_segment(BinaryStream& stream, const segment_callback_t cbk) {
   const MACHO_TYPES magic = *magic_res;

   if (magic == MACHO_TYPES::MAGIC_FAT || magic == MACHO_TYPES::CIGAM_FAT) {
-    LIEF_WARN("Can't get the file size of a FAT Macho-O");
+    LIEF_WARN("Cannot determine file size of a FAT Mach-O");
     return;
   }

-  const bool is64 = magic == MACHO_TYPES::MAGIC_64 ||
-                    magic == MACHO_TYPES::CIGAM_64;
+  const bool is64 =
+      magic == MACHO_TYPES::MAGIC_64 || magic == MACHO_TYPES::CIGAM_64;

-  const bool is32 = magic == MACHO_TYPES::MAGIC ||
-                    magic == MACHO_TYPES::CIGAM;
+  const bool is32 = magic == MACHO_TYPES::MAGIC || magic == MACHO_TYPES::CIGAM;

   if (!is64 && !is32) {
     return;
@@ -165,5 +202,3 @@ void foreach_segment(BinaryStream& stream, const segment_callback_t cbk) {
 }

 }
-}
-
diff --git a/deps/LIEF/src/OAT/Binary.cpp b/deps/LIEF/src/OAT/Binary.cpp
index 775bd6199a7..cc9b3492983 100644
--- a/deps/LIEF/src/OAT/Binary.cpp
+++ b/deps/LIEF/src/OAT/Binary.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -27,12 +27,11 @@


 #if defined(LIEF_JSON_SUPPORT)
-#include "visitors/json.hpp"
+  #include "visitors/json.hpp"
 #endif


-namespace LIEF {
-namespace OAT {
+namespace LIEF::OAT {

 Binary::Binary() {
   format_ = LIEF::Binary::FORMATS::OAT;
@@ -80,19 +79,22 @@ Binary::it_classes Binary::classes() {
 }

 bool Binary::has_class(const std::string& class_name) const {
-  return classes_.find(DEX::Class::fullname_normalized(class_name)) != std::end(classes_);
+  return classes_.find(DEX::Class::fullname_normalized(class_name)) !=
+         classes_.end();
 }

 const Class* Binary::get_class(const std::string& class_name) const {
   auto it = classes_.find(DEX::Class::fullname_normalized(class_name));
-  if (it == std::end(classes_)) {
+  if (it == classes_.end()) {
     return nullptr;
   }
   return it->second;
 }

 Class* Binary::get_class(const std::string& class_name) {
-  return const_cast<Class*>(static_cast<const Binary*>(this)->get_class(class_name));
+  return const_cast<Class*>(
+      static_cast<const Binary*>(this)->get_class(class_name)
+  );
 }


@@ -101,12 +103,12 @@ const Class* Binary::get_class(size_t index) const {
     return nullptr;
   }

-  const auto it = std::find_if(std::begin(classes_), std::end(classes_),
-      [index] (const std::pair<std::string, Class*>& p) {
-        return p.second->index() == index;
-      });
+  const auto it = std::find_if(classes_.begin(), classes_.end(),
+                               [index](const std::pair<std::string, Class*>& p) {
+                                 return p.second->index() == index;
+                               });

-  if (it == std::end(classes_)) {
+  if (it == classes_.end()) {
     return nullptr;
   }
   return it->second;
@@ -147,7 +149,6 @@ std::string Binary::dex2dex_json_info() {
 #else
   return "";
 #endif
-
 }

 void Binary::add_class(std::unique_ptr<Class> cls) {
@@ -160,7 +161,6 @@ void Binary::accept(Visitor& visitor) const {
 }


-
 std::ostream& operator<<(std::ostream& os, const Binary& binary) {

   os << "Header" << '\n';
@@ -185,4 +185,3 @@ std::ostream& operator<<(std::ostream& os, const Binary& binary) {


 }
-}
diff --git a/deps/LIEF/src/OAT/Class.cpp b/deps/LIEF/src/OAT/Class.cpp
index 5dd62b5afe1..c610d9d06ce 100644
--- a/deps/LIEF/src/OAT/Class.cpp
+++ b/deps/LIEF/src/OAT/Class.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -27,25 +27,24 @@
 #include "logging.hpp"

 #if defined(_MSC_VER)
-#  include <intrin.h>
-#  define __builtin_popcount __popcnt
+  #include <intrin.h>
+  #define __builtin_popcount __popcnt
 #endif

-namespace LIEF {
-namespace OAT {
+
+namespace LIEF::OAT {

 Class::Class(const Class&) = default;
 Class& Class::operator=(const Class&) = default;

 Class::Class() = default;

-Class::Class(OAT_CLASS_STATUS status, OAT_CLASS_TYPES type,
-             DEX::Class* dex_class, std::vector<uint32_t> bitmap) :
+Class::Class(OAT_CLASS_STATUS status, OAT_CLASS_TYPES type, DEX::Class* dex_class,
+             std::vector<uint32_t> bitmap) :
   dex_class_{dex_class},
   status_{status},
   type_{type},
-  method_bitmap_{std::move(bitmap)}
-{}
+  method_bitmap_{std::move(bitmap)} {}


 bool Class::has_dex_class() const {
@@ -110,19 +109,17 @@ bool Class::is_quickened(const DEX::Method& m) const {
   }

   const auto& methods = cls.methods();
-  const auto it_method_index = std::find_if(std::begin(methods), std::end(methods),
-      [&m] (const DEX::Method& mth) {
-        return &m == &mth;
-      });
+  const auto it_method_index =
+      std::find_if(methods.begin(), methods.end(),
+                   [&m](const DEX::Method& mth) { return &m == &mth; });

-  if (it_method_index == std::end(methods)) {
-    LIEF_ERR("Can't find '{}' in {}", m.name(), cls.fullname());
+  if (it_method_index == methods.end()) {
+    LIEF_ERR("Method '{}' not found in {}", m.name(), cls.fullname());
     return false;
   }

-  uint32_t relative_index = std::distance(std::begin(methods), it_method_index);
+  uint32_t relative_index = std::distance(methods.begin(), it_method_index);
   return is_quickened(relative_index);
-
 }

 bool Class::is_quickened(uint32_t relative_index) const {
@@ -135,10 +132,10 @@ bool Class::is_quickened(uint32_t relative_index) const {
   }

   if (type() == OAT_CLASS_TYPES::OAT_CLASS_SOME_COMPILED) {
-    const uint32_t bitmap_idx  = relative_index >> 5;
+    const uint32_t bitmap_idx = relative_index >> 5;
     const uint32_t bitmap_mask = 1 << (relative_index & 0x1F);
     if (bitmap_idx > method_bitmap_.size()) {
-      LIEF_ERR("bitmap_idx: 0x{:x} is corrupted", bitmap_idx);
+      LIEF_ERR("Corrupted bitmap index: {:#x}", bitmap_idx);
       return false;
     }

@@ -154,23 +151,24 @@ uint32_t Class::method_offsets_index(const DEX::Method& m) const {
   const DEX::Class& cls = *dex_class();

   const auto& methods = cls.methods();
-  const auto it_method_index = std::find_if(std::begin(methods), std::end(methods),
-      [&m] (const DEX::Method& mth) {
-        return &m == &mth;
-      });
+  const auto it_method_index =
+      std::find_if(methods.begin(), methods.end(),
+                   [&m](const DEX::Method& mth) { return &m == &mth; });

-  if (it_method_index == std::end(methods)) {
-    LIEF_ERR("Can't find '{}' in {}", m.name(), cls.fullname());
+  if (it_method_index == methods.end()) {
+    LIEF_ERR("Method '{}' not found in {}", m.name(), cls.fullname());
     return UINT_MAX;
   }

-  uint32_t relative_index = std::distance(std::begin(methods), it_method_index);
+  uint32_t relative_index = std::distance(methods.begin(), it_method_index);
   return method_offsets_index(relative_index);
 }

 uint32_t Class::method_offsets_index(uint32_t relative_index) const {

-  if (!is_quickened(relative_index) || type() == OAT_CLASS_TYPES::OAT_CLASS_NONE_COMPILED) {
+  if (!is_quickened(relative_index) ||
+      type() == OAT_CLASS_TYPES::OAT_CLASS_NONE_COMPILED)
+  {
     return UINT_MAX;
   }

@@ -179,7 +177,7 @@ uint32_t Class::method_offsets_index(uint32_t relative_index) const {
   }

   if (type() == OAT_CLASS_TYPES::OAT_CLASS_SOME_COMPILED) {
-    const uint32_t bitmap_end_idx    = relative_index >> 5;
+    const uint32_t bitmap_end_idx = relative_index >> 5;
     const uint32_t partial_word_bits = relative_index & 0x1f;
     uint32_t count = 0;
     for (uint32_t word = 0; word < bitmap_end_idx; ++word) {
@@ -187,7 +185,8 @@ uint32_t Class::method_offsets_index(uint32_t relative_index) const {
     }

     if (partial_word_bits != 0) {
-      count += __builtin_popcount(method_bitmap_[bitmap_end_idx] & ~(0xffffffffu << partial_word_bits));
+      count += __builtin_popcount(method_bitmap_[bitmap_end_idx] &
+                                  ~(0xffffffffu << partial_word_bits));
     }

     return count;
@@ -203,17 +202,16 @@ uint32_t Class::relative_index(const DEX::Method& m) const {
   const DEX::Class& cls = *dex_class();

   const auto& methods = cls.methods();
-  const auto it_method_index = std::find_if(std::begin(methods), std::end(methods),
-      [&m] (const DEX::Method& mth) {
-        return &m == &mth;
-      });
+  const auto it_method_index =
+      std::find_if(methods.begin(), methods.end(),
+                   [&m](const DEX::Method& mth) { return &m == &mth; });

-  if (it_method_index == std::end(methods)) {
-    LIEF_ERR("Can't find '{}' in {}", m.name(), cls.fullname());
+  if (it_method_index == methods.end()) {
+    LIEF_ERR("Method '{}' not found in {}", m.name(), cls.fullname());
     return UINT_MAX;
   }

-  return std::distance(std::begin(methods), it_method_index);
+  return std::distance(methods.begin(), it_method_index);
 }

 uint32_t Class::relative_index(uint32_t method_absolute_index) const {
@@ -223,18 +221,19 @@ uint32_t Class::relative_index(uint32_t method_absolute_index) const {
   const DEX::Class& cls = *dex_class();

   const auto& methods = cls.methods();
-  const auto it_method_index = std::find_if(std::begin(methods), std::end(methods),
-      [method_absolute_index] (const DEX::Method& mth) {
-        return mth.index() == method_absolute_index;
-      });
-
-  if (it_method_index == std::end(methods)) {
-    LIEF_ERR("Can't find find method with index {:d} in {}", method_absolute_index, cls.fullname());
+  const auto it_method_index =
+      std::find_if(methods.begin(), methods.end(),
+                   [method_absolute_index](const DEX::Method& mth) {
+                     return mth.index() == method_absolute_index;
+                   });
+
+  if (it_method_index == methods.end()) {
+    LIEF_ERR("Method index {:d} not found in {}", method_absolute_index,
+             cls.fullname());
     return UINT_MAX;
   }

-  return std::distance(std::begin(methods), it_method_index);
-
+  return std::distance(methods.begin(), it_method_index);
 }


@@ -243,18 +242,14 @@ void Class::accept(Visitor& visitor) const {
 }


-
 std::ostream& operator<<(std::ostream& os, const Class& cls) {
-  os << cls.fullname() << " - "
-     << to_string(cls.status()) << " - "
-     << to_string(cls.type()) << " - "
-     << std::dec << cls.methods().size() << " methods";
+  os << cls.fullname() << " - " << to_string(cls.status()) << " - "
+     << to_string(cls.type()) << " - " << std::dec << cls.methods().size()
+     << " methods";
   return os;
 }

 Class::~Class() = default;


-
-}
 }
diff --git a/deps/LIEF/src/OAT/DexFile.cpp b/deps/LIEF/src/OAT/DexFile.cpp
index e0fb4410ec3..c06fd382cbb 100644
--- a/deps/LIEF/src/OAT/DexFile.cpp
+++ b/deps/LIEF/src/OAT/DexFile.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -18,8 +18,8 @@
 #include "LIEF/OAT/hash.hpp"
 #include <ostream>

-namespace LIEF {
-namespace OAT {
+
+namespace LIEF::OAT {

 DexFile::DexFile(const DexFile&) = default;
 DexFile& DexFile::operator=(const DexFile&) = default;
@@ -83,15 +83,13 @@ void DexFile::accept(Visitor& visitor) const {
 }


-
 std::ostream& operator<<(std::ostream& os, const DexFile& dex_file) {
-  os << dex_file.location() << " - " << std::hex << std::showbase << "(Checksum: " << dex_file.checksum() << ")";
+  os << dex_file.location() << " - " << std::hex << std::showbase
+     << "(Checksum: " << dex_file.checksum() << ")";
   return os;
 }

 DexFile::~DexFile() = default;


-
-}
 }
diff --git a/deps/LIEF/src/OAT/EnumToString.cpp b/deps/LIEF/src/OAT/EnumToString.cpp
index 5647104849d..04df09341ce 100644
--- a/deps/LIEF/src/OAT/EnumToString.cpp
+++ b/deps/LIEF/src/OAT/EnumToString.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -18,14 +18,15 @@

 #include "frozen.hpp"

-namespace LIEF {
-namespace OAT {
+
+namespace LIEF::OAT {

 const char* to_string(OAT_CLASS_TYPES e) {
-  CONST_MAP(OAT_CLASS_TYPES, const char*, 3) enumStrings {
-    { OAT_CLASS_TYPES::OAT_CLASS_ALL_COMPILED,  "ALL_COMPILED"  },
-    { OAT_CLASS_TYPES::OAT_CLASS_SOME_COMPILED, "SOME_COMPILED" },
-    { OAT_CLASS_TYPES::OAT_CLASS_NONE_COMPILED, "NONE_COMPILED" },
+  CONST_MAP(OAT_CLASS_TYPES, const char*, 3)
+  enumStrings{
+      {OAT_CLASS_TYPES::OAT_CLASS_ALL_COMPILED, "ALL_COMPILED"},
+      {OAT_CLASS_TYPES::OAT_CLASS_SOME_COMPILED, "SOME_COMPILED"},
+      {OAT_CLASS_TYPES::OAT_CLASS_NONE_COMPILED, "NONE_COMPILED"},

   };
   const auto it = enumStrings.find(e);
@@ -33,20 +34,22 @@ const char* to_string(OAT_CLASS_TYPES e) {
 }

 const char* to_string(OAT_CLASS_STATUS e) {
-  CONST_MAP(OAT_CLASS_STATUS, const char*, 13) enumStrings {
-    { OAT_CLASS_STATUS::STATUS_RETIRED,                       "RETIRED"                 },
-    { OAT_CLASS_STATUS::STATUS_ERROR,                         "ERROR"                   },
-    { OAT_CLASS_STATUS::STATUS_NOTREADY,                      "NOTREADY"                },
-    { OAT_CLASS_STATUS::STATUS_IDX,                           "IDX"                     },
-    { OAT_CLASS_STATUS::STATUS_LOADED,                        "LOADED"                  },
-    { OAT_CLASS_STATUS::STATUS_RESOLVING,                     "RESOLVING"               },
-    { OAT_CLASS_STATUS::STATUS_RESOLVED,                      "RESOLVED"                },
-    { OAT_CLASS_STATUS::STATUS_VERIFYING,                     "VERIFYING"               },
-    { OAT_CLASS_STATUS::STATUS_RETRY_VERIFICATION_AT_RUNTIME, "VERIFICATION_AT_RUNTIME" },
-    { OAT_CLASS_STATUS::STATUS_VERIFYING_AT_RUNTIME,          "VERIFYING_AT_RUNTIME"    },
-    { OAT_CLASS_STATUS::STATUS_VERIFIED,                      "VERIFIED"                },
-    { OAT_CLASS_STATUS::STATUS_INITIALIZING,                  "INITIALIZING"            },
-    { OAT_CLASS_STATUS::STATUS_INITIALIZED,                   "INITIALIZED"             },
+  CONST_MAP(OAT_CLASS_STATUS, const char*, 13)
+  enumStrings{
+      {OAT_CLASS_STATUS::STATUS_RETIRED, "RETIRED"},
+      {OAT_CLASS_STATUS::STATUS_ERROR, "ERROR"},
+      {OAT_CLASS_STATUS::STATUS_NOTREADY, "NOTREADY"},
+      {OAT_CLASS_STATUS::STATUS_IDX, "IDX"},
+      {OAT_CLASS_STATUS::STATUS_LOADED, "LOADED"},
+      {OAT_CLASS_STATUS::STATUS_RESOLVING, "RESOLVING"},
+      {OAT_CLASS_STATUS::STATUS_RESOLVED, "RESOLVED"},
+      {OAT_CLASS_STATUS::STATUS_VERIFYING, "VERIFYING"},
+      {OAT_CLASS_STATUS::STATUS_RETRY_VERIFICATION_AT_RUNTIME,
+       "VERIFICATION_AT_RUNTIME"},
+      {OAT_CLASS_STATUS::STATUS_VERIFYING_AT_RUNTIME, "VERIFYING_AT_RUNTIME"},
+      {OAT_CLASS_STATUS::STATUS_VERIFIED, "VERIFIED"},
+      {OAT_CLASS_STATUS::STATUS_INITIALIZING, "INITIALIZING"},
+      {OAT_CLASS_STATUS::STATUS_INITIALIZED, "INITIALIZED"},

   };
   const auto it = enumStrings.find(e);
@@ -55,18 +58,19 @@ const char* to_string(OAT_CLASS_STATUS e) {


 const char* to_string(HEADER_KEYS e) {
-  CONST_MAP(HEADER_KEYS, const char*, 11) enumStrings {
-    { HEADER_KEYS::KEY_IMAGE_LOCATION,     "IMAGE_LOCATION"     },
-    { HEADER_KEYS::KEY_DEX2OAT_CMD_LINE,   "DEX2OAT_CMD_LINE"   },
-    { HEADER_KEYS::KEY_DEX2OAT_HOST,       "DEX2OAT_HOST"       },
-    { HEADER_KEYS::KEY_PIC,                "PIC"                },
-    { HEADER_KEYS::KEY_HAS_PATCH_INFO,     "HAS_PATCH_INFO"     },
-    { HEADER_KEYS::KEY_DEBUGGABLE,         "DEBUGGABLE"         },
-    { HEADER_KEYS::KEY_NATIVE_DEBUGGABLE,  "NATIVE_DEBUGGABLE"  },
-    { HEADER_KEYS::KEY_COMPILER_FILTER,    "COMPILER_FILTER"    },
-    { HEADER_KEYS::KEY_CLASS_PATH,         "CLASS_PATH"         },
-    { HEADER_KEYS::KEY_BOOT_CLASS_PATH,    "BOOT_CLASS_PATH"    },
-    { HEADER_KEYS::KEY_CONCURRENT_COPYING, "CONCURRENT_COPYING" },
+  CONST_MAP(HEADER_KEYS, const char*, 11)
+  enumStrings{
+      {HEADER_KEYS::KEY_IMAGE_LOCATION, "IMAGE_LOCATION"},
+      {HEADER_KEYS::KEY_DEX2OAT_CMD_LINE, "DEX2OAT_CMD_LINE"},
+      {HEADER_KEYS::KEY_DEX2OAT_HOST, "DEX2OAT_HOST"},
+      {HEADER_KEYS::KEY_PIC, "PIC"},
+      {HEADER_KEYS::KEY_HAS_PATCH_INFO, "HAS_PATCH_INFO"},
+      {HEADER_KEYS::KEY_DEBUGGABLE, "DEBUGGABLE"},
+      {HEADER_KEYS::KEY_NATIVE_DEBUGGABLE, "NATIVE_DEBUGGABLE"},
+      {HEADER_KEYS::KEY_COMPILER_FILTER, "COMPILER_FILTER"},
+      {HEADER_KEYS::KEY_CLASS_PATH, "CLASS_PATH"},
+      {HEADER_KEYS::KEY_BOOT_CLASS_PATH, "BOOT_CLASS_PATH"},
+      {HEADER_KEYS::KEY_CONCURRENT_COPYING, "CONCURRENT_COPYING"},

   };
   const auto it = enumStrings.find(e);
@@ -75,15 +79,16 @@ const char* to_string(HEADER_KEYS e) {


 const char* to_string(INSTRUCTION_SETS e) {
-  CONST_MAP(INSTRUCTION_SETS, const char*, 8) enumStrings {
-    { INSTRUCTION_SETS::INST_SET_NONE,    "NONE"    },
-    { INSTRUCTION_SETS::INST_SET_ARM,     "ARM"     },
-    { INSTRUCTION_SETS::INST_SET_ARM_64,  "ARM_64"  },
-    { INSTRUCTION_SETS::INST_SET_THUMB2,  "THUMB2"  },
-    { INSTRUCTION_SETS::INST_SET_X86,     "X86"     },
-    { INSTRUCTION_SETS::INST_SET_X86_64,  "X86_64"  },
-    { INSTRUCTION_SETS::INST_SET_MIPS,    "MIPS"    },
-    { INSTRUCTION_SETS::INST_SET_MIPS_64, "MIPS_64" },
+  CONST_MAP(INSTRUCTION_SETS, const char*, 8)
+  enumStrings{
+      {INSTRUCTION_SETS::INST_SET_NONE, "NONE"},
+      {INSTRUCTION_SETS::INST_SET_ARM, "ARM"},
+      {INSTRUCTION_SETS::INST_SET_ARM_64, "ARM_64"},
+      {INSTRUCTION_SETS::INST_SET_THUMB2, "THUMB2"},
+      {INSTRUCTION_SETS::INST_SET_X86, "X86"},
+      {INSTRUCTION_SETS::INST_SET_X86_64, "X86_64"},
+      {INSTRUCTION_SETS::INST_SET_MIPS, "MIPS"},
+      {INSTRUCTION_SETS::INST_SET_MIPS_64, "MIPS_64"},

   };
   const auto it = enumStrings.find(e);
@@ -91,11 +96,4 @@ const char* to_string(INSTRUCTION_SETS e) {
 }


-
-
-
-} // namespace OAT
-} // namespace LIEF
-
-
-
+} // namespace LIEF::OAT
diff --git a/deps/LIEF/src/OAT/Header.cpp b/deps/LIEF/src/OAT/Header.cpp
index aa4e6784d55..5d30b62119b 100644
--- a/deps/LIEF/src/OAT/Header.cpp
+++ b/deps/LIEF/src/OAT/Header.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -22,34 +22,33 @@
 #include <iomanip>
 #include <sstream>

-namespace LIEF {
-namespace OAT {
+
+namespace LIEF::OAT {

 Header::Header(const Header&) = default;
 Header& Header::operator=(const Header&) = default;

 Header::Header() :
-  magic_{{'o', 'a', 't', '\n'}}
-{}
+  magic_{{'o', 'a', 't', '\n'}} {}


 std::string Header::key_to_string(HEADER_KEYS key) {
   const static std::map<HEADER_KEYS, const char*> keys2str = {
-    { HEADER_KEYS::KEY_IMAGE_LOCATION,     "image-location"      },
-    { HEADER_KEYS::KEY_DEX2OAT_CMD_LINE,   "dex2oat-cmdline"     },
-    { HEADER_KEYS::KEY_DEX2OAT_HOST,       "dex2oat-host"        },
-    { HEADER_KEYS::KEY_PIC,                "pic"                 },
-    { HEADER_KEYS::KEY_HAS_PATCH_INFO,     "has-patch-info"      },
-    { HEADER_KEYS::KEY_DEBUGGABLE,         "debuggable"          },
-    { HEADER_KEYS::KEY_NATIVE_DEBUGGABLE,  "native-debuggable"   },
-    { HEADER_KEYS::KEY_COMPILER_FILTER,    "compiler-filter"     },
-    { HEADER_KEYS::KEY_CLASS_PATH,         "classpath"           },
-    { HEADER_KEYS::KEY_BOOT_CLASS_PATH,    "bootclasspath"       },
-    { HEADER_KEYS::KEY_CONCURRENT_COPYING, "concurrent-copying"  },
-    { HEADER_KEYS::KE_COMPILATION_REASON,   "compilation-reason" },
+      {HEADER_KEYS::KEY_IMAGE_LOCATION, "image-location"},
+      {HEADER_KEYS::KEY_DEX2OAT_CMD_LINE, "dex2oat-cmdline"},
+      {HEADER_KEYS::KEY_DEX2OAT_HOST, "dex2oat-host"},
+      {HEADER_KEYS::KEY_PIC, "pic"},
+      {HEADER_KEYS::KEY_HAS_PATCH_INFO, "has-patch-info"},
+      {HEADER_KEYS::KEY_DEBUGGABLE, "debuggable"},
+      {HEADER_KEYS::KEY_NATIVE_DEBUGGABLE, "native-debuggable"},
+      {HEADER_KEYS::KEY_COMPILER_FILTER, "compiler-filter"},
+      {HEADER_KEYS::KEY_CLASS_PATH, "classpath"},
+      {HEADER_KEYS::KEY_BOOT_CLASS_PATH, "bootclasspath"},
+      {HEADER_KEYS::KEY_CONCURRENT_COPYING, "concurrent-copying"},
+      {HEADER_KEYS::KE_COMPILATION_REASON, "compilation-reason"},
   };

-  auto   it  = keys2str.find(key);
+  auto it = keys2str.find(key);
   return it == keys2str.end() ? "UNKNOWN" : it->second;
 }

@@ -132,7 +131,7 @@ Header::it_key_values_t Header::key_values() {
   it_key_values_t::container_type key_values_list;
   key_values_list.reserve(dex2oat_context_.size());

-  for (auto& [k, v] :dex2oat_context_) {
+  for (auto& [k, v] : dex2oat_context_) {
     HEADER_KEYS key = k;
     std::string& value = v;
     key_values_list.emplace_back(key, value);
@@ -145,7 +144,7 @@ Header::it_const_key_values_t Header::key_values() const {
   std::remove_const<it_const_key_values_t::container_type>::type key_values_list;
   key_values_list.reserve(dex2oat_context_.size());

-  for (const auto& [k, v] :dex2oat_context_) {
+  for (const auto& [k, v] : dex2oat_context_) {
     HEADER_KEYS key = k;
     const std::string& value = v;
     key_values_list.emplace_back(key, value);
@@ -175,7 +174,7 @@ Header::values_t Header::values() const {

 const std::string* Header::get(HEADER_KEYS key) const {
   const auto it = dex2oat_context_.find(key);
-  if (it == std::end(dex2oat_context_)) {
+  if (it == dex2oat_context_.end()) {
     return nullptr;
   }
   return &it->second;
@@ -188,8 +187,8 @@ std::string* Header::get(HEADER_KEYS key) {

 Header& Header::set(HEADER_KEYS key, const std::string& value) {
   const auto it = dex2oat_context_.find(key);
-  if (it == std::end(dex2oat_context_)) {
-    LIEF_WARN("Can't find the key {}", to_string(key));
+  if (it == dex2oat_context_.end()) {
+    LIEF_WARN("Key {} not found", to_string(key));
     return *this;
   }

@@ -210,56 +209,76 @@ void Header::accept(Visitor& visitor) const {
 }


-
-
-
 std::ostream& operator<<(std::ostream& os, const Header& hdr) {
   static constexpr size_t WIDTH = 45;
   os << std::hex << std::left << std::showbase;
-  //os << std::setw(33) << std::setfill(' ') << "Version:"   << ident_magic << '\n';
-  //os << std::setw(33) << std::setfill(' ') << "Location:"  << ident_magic << '\n';
-  os << std::setw(WIDTH) << std::setfill(' ') << "Checksum:"  << std::hex << hdr.checksum() << '\n';
-  os << std::setw(WIDTH) << std::setfill(' ') << "Instruction set:"  << to_string(hdr.instruction_set()) << '\n';
-  //os << std::setw(33) << std::setfill(' ') << "Instruction set features:"  << ident_magic << '\n';
-  os << std::setw(WIDTH) << std::setfill(' ') << "Dex file count:"                              << std::dec << hdr.nb_dex_files()      << '\n';
-  os << std::setw(WIDTH) << std::setfill(' ') << "Executable offset:"                           << std::hex << hdr.executable_offset() << '\n';
+  // os << std::setw(33) << std::setfill(' ') << "Version:"   << ident_magic <<
+  // '\n'; os << std::setw(33) << std::setfill(' ') << "Location:"  << ident_magic
+  // << '\n';
+  os << std::setw(WIDTH) << std::setfill(' ') << "Checksum:" << std::hex
+     << hdr.checksum() << '\n';
+  os << std::setw(WIDTH) << std::setfill(' ')
+     << "Instruction set:" << to_string(hdr.instruction_set()) << '\n';
+  // os << std::setw(33) << std::setfill(' ') << "Instruction set features:"  <<
+  // ident_magic << '\n';
+  os << std::setw(WIDTH) << std::setfill(' ') << "Dex file count:" << std::dec
+     << hdr.nb_dex_files() << '\n';
+  os << std::setw(WIDTH) << std::setfill(' ') << "Executable offset:" << std::hex
+     << hdr.executable_offset() << '\n';

   os << '\n';

-  os << std::setw(WIDTH) << std::setfill(' ') << "Interpreter to Interpreter Bridge Offset:"   << std::hex << hdr.i2i_bridge_offset()      << '\n';
-  os << std::setw(WIDTH) << std::setfill(' ') << "Interpreter to Compiled Code Bridge Offset:" << std::hex << hdr.i2c_code_bridge_offset() << '\n';
+  os << std::setw(WIDTH) << std::setfill(' ')
+     << "Interpreter to Interpreter Bridge Offset:" << std::hex
+     << hdr.i2i_bridge_offset() << '\n';
+  os << std::setw(WIDTH) << std::setfill(' ')
+     << "Interpreter to Compiled Code Bridge Offset:" << std::hex
+     << hdr.i2c_code_bridge_offset() << '\n';

   os << '\n';

-  os << std::setw(WIDTH) << std::setfill(' ') << "JNI dlsym lookup offset:" << std::hex << hdr.jni_dlsym_lookup_offset() << '\n';
+  os << std::setw(WIDTH) << std::setfill(' ')
+     << "JNI dlsym lookup offset:" << std::hex << hdr.jni_dlsym_lookup_offset()
+     << '\n';

   os << '\n';

-  os << std::setw(WIDTH) << std::setfill(' ') << "Quick Generic JNI Trampoline Offset:"  << std::hex << hdr.quick_generic_jni_trampoline_offset()  << '\n';
-  os << std::setw(WIDTH) << std::setfill(' ') << "Quick IMT Conflict Trampoline Offset:" << std::hex << hdr.quick_imt_conflict_trampoline_offset() << '\n';
-  os << std::setw(WIDTH) << std::setfill(' ') << "Quick Resolution Trampoline Offset:"   << std::hex << hdr.quick_resolution_trampoline_offset()   << '\n';
-  os << std::setw(WIDTH) << std::setfill(' ') << "Quick to Interpreter Bridge Offset:"   << std::hex << hdr.quick_to_interpreter_bridge_offset()   << '\n';
+  os << std::setw(WIDTH) << std::setfill(' ')
+     << "Quick Generic JNI Trampoline Offset:" << std::hex
+     << hdr.quick_generic_jni_trampoline_offset() << '\n';
+  os << std::setw(WIDTH) << std::setfill(' ')
+     << "Quick IMT Conflict Trampoline Offset:" << std::hex
+     << hdr.quick_imt_conflict_trampoline_offset() << '\n';
+  os << std::setw(WIDTH) << std::setfill(' ')
+     << "Quick Resolution Trampoline Offset:" << std::hex
+     << hdr.quick_resolution_trampoline_offset() << '\n';
+  os << std::setw(WIDTH) << std::setfill(' ')
+     << "Quick to Interpreter Bridge Offset:" << std::hex
+     << hdr.quick_to_interpreter_bridge_offset() << '\n';

   os << '\n';

-  os << std::setw(WIDTH) << std::setfill(' ') << "Image Patch Delta:" << std::dec << hdr.image_patch_delta() << '\n';
+  os << std::setw(WIDTH) << std::setfill(' ') << "Image Patch Delta:" << std::dec
+     << hdr.image_patch_delta() << '\n';

   os << '\n';

-  os << std::setw(WIDTH) << std::setfill(' ') << "Image File Location OAT Checksum:" << std::hex << hdr.image_file_location_oat_checksum()   << '\n';
-  os << std::setw(WIDTH) << std::setfill(' ') << "Image File Location OAT Begin:"    << std::hex << hdr.image_file_location_oat_data_begin() << '\n';
+  os << std::setw(WIDTH) << std::setfill(' ')
+     << "Image File Location OAT Checksum:" << std::hex
+     << hdr.image_file_location_oat_checksum() << '\n';
+  os << std::setw(WIDTH) << std::setfill(' ')
+     << "Image File Location OAT Begin:" << std::hex
+     << hdr.image_file_location_oat_data_begin() << '\n';

   os << '\n';

   for (const auto& p : hdr.key_values()) {
-    os << std::setw(WIDTH) << std::setfill(' ') << Header::key_to_string(p.key) + ":" << *p.value << '\n';
+    os << std::setw(WIDTH) << std::setfill(' ')
+       << Header::key_to_string(p.key) + ":" << *p.value << '\n';
   }

   return os;
 }


-
-
-}
 }
diff --git a/deps/LIEF/src/OAT/Header.tcc b/deps/LIEF/src/OAT/Header.tcc
index a05c122d901..1effa48ec64 100644
--- a/deps/LIEF/src/OAT/Header.tcc
+++ b/deps/LIEF/src/OAT/Header.tcc
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -16,86 +16,88 @@
 #include <string>
 #include "LIEF/OAT/Header.hpp"
 #include "OAT/Structures.hpp"
-namespace LIEF {
-namespace OAT {
+
+namespace LIEF::OAT {

 template<class T>
 Header::Header(const T* header) :
   magic_{},
-  version_{0},
+
   checksum_{header->adler32_checksum},
   instruction_set_{static_cast<INSTRUCTION_SETS>(header->instruction_set)},
   instruction_set_features_bitmap_{header->instruction_set_features_bitmap},
   dex_file_count_{header->dex_file_count},
-  oat_dex_files_offset_{0}, // (OAT 131)
   executable_offset_{header->executable_offset},
   i2i_bridge_offset_{header->i2i_bridge_offset},
   i2c_code_bridge_offset_{header->i2c_code_bridge_offset},
   jni_dlsym_lookup_offset_{header->jni_dlsym_lookup_offset},
-  quick_generic_jni_trampoline_offset_{header->quick_generic_jni_trampoline_offset},
-  quick_imt_conflict_trampoline_offset_{header->quick_imt_conflict_trampoline_offset},
+  quick_generic_jni_trampoline_offset_{
+      header->quick_generic_jni_trampoline_offset
+  },
+  quick_imt_conflict_trampoline_offset_{
+      header->quick_imt_conflict_trampoline_offset
+  },
   quick_resolution_trampoline_offset_{header->quick_resolution_trampoline_offset},
   quick_to_interpreter_bridge_offset_{header->quick_to_interpreter_bridge_offset},
   image_patch_delta_{header->image_patch_delta},
   image_file_location_oat_checksum_{header->image_file_location_oat_checksum},
   image_file_location_oat_data_begin_{header->image_file_location_oat_data_begin},
   key_value_store_size_{header->key_value_store_size},
-  dex2oat_context_{}
-{
+  dex2oat_context_{} {

   std::copy(std::begin(header->magic), std::end(header->magic),
-            std::begin(magic_)
-  );
-  if (std::all_of(std::begin(header->oat_version), std::end(header->oat_version) - 1,
-                  ::isdigit))
+            std::begin(magic_));
+  if (std::all_of(std::begin(header->oat_version),
+                  std::end(header->oat_version) - 1, ::isdigit))
   {
     version_ = static_cast<uint32_t>(
-        std::stoi(
-          std::string{reinterpret_cast<const char*>(header->oat_version), sizeof(header->oat_version)}));
+        std::stoi(std::string{reinterpret_cast<const char*>(header->oat_version),
+                              sizeof(header->oat_version)})
+    );
   }
-
 }


 template<>
 Header::Header(const details::OAT_131::oat_header* header) :
   magic_{},
-  version_{0},
+
   checksum_{header->adler32_checksum},
   instruction_set_{static_cast<INSTRUCTION_SETS>(header->instruction_set)},
   instruction_set_features_bitmap_{header->instruction_set_features_bitmap},
   dex_file_count_{header->dex_file_count},
-  oat_dex_files_offset_{header->oat_dex_files_offset}, // Since OAT 131 / Android 8.1.0
+  oat_dex_files_offset_{
+      header->oat_dex_files_offset
+  }, // Since OAT 131 / Android 8.1.0
   executable_offset_{header->executable_offset},
   i2i_bridge_offset_{header->i2i_bridge_offset},
   i2c_code_bridge_offset_{header->i2c_code_bridge_offset},
   jni_dlsym_lookup_offset_{header->jni_dlsym_lookup_offset},
-  quick_generic_jni_trampoline_offset_{header->quick_generic_jni_trampoline_offset},
-  quick_imt_conflict_trampoline_offset_{header->quick_imt_conflict_trampoline_offset},
+  quick_generic_jni_trampoline_offset_{
+      header->quick_generic_jni_trampoline_offset
+  },
+  quick_imt_conflict_trampoline_offset_{
+      header->quick_imt_conflict_trampoline_offset
+  },
   quick_resolution_trampoline_offset_{header->quick_resolution_trampoline_offset},
   quick_to_interpreter_bridge_offset_{header->quick_to_interpreter_bridge_offset},
   image_patch_delta_{header->image_patch_delta},
   image_file_location_oat_checksum_{header->image_file_location_oat_checksum},
   image_file_location_oat_data_begin_{header->image_file_location_oat_data_begin},
   key_value_store_size_{header->key_value_store_size},
-  dex2oat_context_{}
-{
+  dex2oat_context_{} {

-  std::copy(
-      std::begin(header->magic),
-      std::end(header->magic),
-      std::begin(magic_)
-  );
-  if (std::all_of(
-        std::begin(header->oat_version),
-        std::end(header->oat_version) - 1,
-        ::isdigit))
+  std::copy(std::begin(header->magic), std::end(header->magic),
+            std::begin(magic_));
+  if (std::all_of(std::begin(header->oat_version),
+                  std::end(header->oat_version) - 1, ::isdigit))
   {
-    version_ = static_cast<uint32_t>(std::stoi(std::string{reinterpret_cast<const char*>(header->oat_version), sizeof(header->oat_version)}));
+    version_ = static_cast<uint32_t>(
+        std::stoi(std::string{reinterpret_cast<const char*>(header->oat_version),
+                              sizeof(header->oat_version)})
+    );
   }
-
 }


-} // namespace OAT
-} // namespace LIEF
+} // namespace LIEF::OAT
diff --git a/deps/LIEF/src/OAT/Method.cpp b/deps/LIEF/src/OAT/Method.cpp
index 6209f3ea37e..915d38aa03f 100644
--- a/deps/LIEF/src/OAT/Method.cpp
+++ b/deps/LIEF/src/OAT/Method.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -21,18 +21,18 @@
 #include "LIEF/OAT/Class.hpp"
 #include "LIEF/DEX/Method.hpp"

-namespace LIEF {
-namespace OAT {
+
+namespace LIEF::OAT {

 Method::Method() = default;
 Method::Method(const Method&) = default;
 Method& Method::operator=(const Method&) = default;

-Method::Method(DEX::Method* method, Class* oat_class, std::vector<uint8_t>  quick_code) :
+Method::Method(DEX::Method* method, Class* oat_class,
+               std::vector<uint8_t> quick_code) :
   dex_method_{method},
   class_{oat_class},
-  quick_code_{std::move(quick_code)}
-{}
+  quick_code_{std::move(quick_code)} {}

 const Class* Method::oat_class() const {
   return class_;
@@ -90,7 +90,6 @@ void Method::accept(Visitor& visitor) const {
 }


-
 std::ostream& operator<<(std::ostream& os, const Method& meth) {
   std::string pretty_name = meth.oat_class()->fullname();
   pretty_name = pretty_name.substr(1, pretty_name.size() - 2);
@@ -110,6 +109,4 @@ std::ostream& operator<<(std::ostream& os, const Method& meth) {
 Method::~Method() = default;


-
-}
 }
diff --git a/deps/LIEF/src/OAT/Parser.cpp b/deps/LIEF/src/OAT/Parser.cpp
index 5f3851cf73b..7dfc94383a0 100644
--- a/deps/LIEF/src/OAT/Parser.cpp
+++ b/deps/LIEF/src/OAT/Parser.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2021 - 2025 R. Thomas
- * Copyright 2021 - 2025 Quarkslab
+/* Copyright 2021 - 2026 R. Thomas
+ * Copyright 2021 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -29,28 +29,31 @@

 #include "Parser.tcc"

-namespace LIEF {
-namespace OAT {
+
+namespace LIEF::OAT {

 Parser::~Parser() = default;
-Parser::Parser()  = default;
+Parser::Parser() = default;


 std::unique_ptr<Binary> Parser::parse(const std::string& oat_file) {
   if (!is_oat(oat_file)) {
-    LIEF_ERR("{} is not an OAT", oat_file);
+    LIEF_ERR("'{}' is not an OAT file", oat_file);
     return nullptr;
   }

   Parser parser{oat_file};
   parser.init();

-  std::unique_ptr<Binary> oat_binary{static_cast<Binary*>(parser.binary_.release())};
+  std::unique_ptr<Binary> oat_binary{
+      static_cast<Binary*>(parser.binary_.release())
+  };
   return oat_binary;
 }


-std::unique_ptr<Binary> Parser::parse(const std::string& oat_file, const std::string& vdex_file) {
+std::unique_ptr<Binary> Parser::parse(const std::string& oat_file,
+                                      const std::string& vdex_file) {
   if (!is_oat(oat_file)) {
     return nullptr;
   }
@@ -63,25 +66,28 @@ std::unique_ptr<Binary> Parser::parse(const std::string& oat_file, const std::st
   if (std::unique_ptr<VDEX::File> vdex = VDEX::Parser::parse(vdex_file)) {
     parser.vdex_file_ = std::move(vdex);
   } else {
-    LIEF_WARN("Can't parse the VDEX file '{}'", vdex_file);
+    LIEF_WARN("Failed to parse VDEX file '{}'", vdex_file);
   }
   parser.init();
-  std::unique_ptr<Binary> oat_binary{static_cast<Binary*>(parser.binary_.release())};
+  std::unique_ptr<Binary> oat_binary{
+      static_cast<Binary*>(parser.binary_.release())
+  };
   return oat_binary;
-
 }

 std::unique_ptr<Binary> Parser::parse(std::vector<uint8_t> data) {
   Parser parser{std::move(data)};
   parser.init();
-  std::unique_ptr<Binary> oat_binary{static_cast<Binary*>(parser.binary_.release())};
+  std::unique_ptr<Binary> oat_binary{
+      static_cast<Binary*>(parser.binary_.release())
+  };
   return oat_binary;
 }


 Parser::Parser(std::vector<uint8_t> data) {
-  stream_    = std::make_unique<VectorStream>(std::move(data));
-  binary_    = std::unique_ptr<Binary>(new Binary{});
+  stream_ = std::make_unique<VectorStream>(std::move(data));
+  binary_ = std::unique_ptr<Binary>(new Binary{});
   config_.count_mtd = ELF::ParserConfig::DYNSYM_COUNT::AUTO;
 }

@@ -89,11 +95,27 @@ Parser::Parser(const std::string& file) {
   if (auto s = VectorStream::from_file(file)) {
     stream_ = std::make_unique<VectorStream>(std::move(*s));
   }
-  binary_    = std::unique_ptr<Binary>(new Binary{});
+  binary_ = std::unique_ptr<Binary>(new Binary{});
   config_.count_mtd = ELF::ParserConfig::DYNSYM_COUNT::AUTO;
 }


+result<uint64_t> Parser::oat_data_exec_gap() const {
+  static constexpr uint64_t MAX_GAP = 64_MB;
+
+  const uint64_t data_end = data_address_ + data_size_;
+  if (data_end < data_address_ || exec_start_ < data_end) {
+    return make_error_code(lief_errors::corrupted);
+  }
+
+  const uint64_t gap = exec_start_ - data_end;
+  if (gap > MAX_GAP) {
+    return make_error_code(lief_errors::corrupted);
+  }
+
+  return gap;
+}
+
 bool Parser::has_vdex() const {
   return vdex_file_ != nullptr;
 }
@@ -110,7 +132,7 @@ void Parser::init() {
   oat_bin.vdex_ = std::move(vdex_file_);

   if (!oat_bin.has_vdex() && version > details::OAT_088::oat_version) {
-    LIEF_INFO("No VDEX provided with this OAT file. Parsing will be incomplete");
+    LIEF_INFO("No VDEX provided, OAT parsing will be incomplete");
   }

   if (version <= details::OAT_064::oat_version) {
@@ -136,8 +158,6 @@ void Parser::init() {
   if (version <= details::OAT_138::oat_version) {
     return parse_binary<details::OAT138_t>();
   }
-
 }

-} // namespace OAT
-} // namespace LIEF
+} // namespace LIEF::OAT
diff --git a/deps/LIEF/src/OAT/Parser.tcc b/deps/LIEF/src/OAT/Parser.tcc
index 8149724ccf3..9661b764e35 100644
--- a/deps/LIEF/src/OAT/Parser.tcc
+++ b/deps/LIEF/src/OAT/Parser.tcc
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -37,8 +37,8 @@
 #include "oat_131.tcc"
 #include "LIEF/OAT/Parser.hpp"

-namespace LIEF {
-namespace OAT {
+
+namespace LIEF::OAT {


 template<>
@@ -59,40 +59,47 @@ void Parser::parse_binary<details::OAT64_t>() {

   std::vector<uint8_t> raw_oat;
   auto& oat = oat_binary();
-  const auto* oat_data = oat.get_symbol("oatdata")->as<ELF::Symbol>();
+  const auto* oat_data_sym = oat.get_symbol("oatdata");
+  const auto* oat_data =
+      oat_data_sym != nullptr ? oat_data_sym->as<ELF::Symbol>() : nullptr;
   if (oat_data != nullptr) {
-    raw_oat.reserve(oat_data->size());
-
     span<const uint8_t> raw_data =
-      oat.get_content_from_virtual_address(oat_data->value(), oat_data->size());
+        oat.get_content_from_virtual_address(oat_data->value(), oat_data->size());

-    std::copy(std::begin(raw_data), std::end(raw_data),
-              std::back_inserter(raw_oat));
+    raw_oat.reserve(raw_data.size());
+
+    std::copy(raw_data.begin(), raw_data.end(), std::back_inserter(raw_oat));

     data_address_ = oat_data->value();
-    data_size_    = oat_data->size();
+    data_size_ = oat_data->size();
   }

-  const auto* oat_exec = oat.get_symbol("oatexec")->as<ELF::Symbol>();
+  const auto* oat_exec_sym = oat.get_symbol("oatexec");
+  const auto* oat_exec =
+      oat_exec_sym != nullptr ? oat_exec_sym->as<ELF::Symbol>() : nullptr;
   if (oat_exec != nullptr) {

     exec_start_ = oat_exec->value();
-    exec_size_  = oat_exec->size();
+    exec_size_ = oat_exec->size();

     span<const uint8_t> raw_oatexec =
-      oat.get_content_from_virtual_address(oat_exec->value(), oat_exec->size());
+        oat.get_content_from_virtual_address(oat_exec->value(), oat_exec->size());

-    uint32_t padding = exec_start_ - (data_address_ + data_size_);
+    auto gap = oat_data_exec_gap();
+    if (!gap) {
+      LIEF_WARN("Corrupted OAT layout: inconsistent oatdata/oatexec ranges");
+      return;
+    }
+    const uint64_t padding = *gap;

-    raw_oat.reserve(raw_oat.size() + oat_exec->size() + padding);
-    raw_oat.insert(std::end(raw_oat), padding, 0);
+    raw_oat.reserve(raw_oat.size() + raw_oatexec.size() + padding);
+    raw_oat.insert(raw_oat.end(), padding, 0);

-    std::copy(std::begin(raw_oatexec), std::end(raw_oatexec),
-              std::back_inserter(raw_oat));
+    std::copy(raw_oatexec.begin(), raw_oatexec.end(), std::back_inserter(raw_oat));
   }

   uint32_t padding = align(raw_oat.size(), sizeof(uint32_t) * 8) - raw_oat.size();
-  raw_oat.insert(std::end(raw_oat), padding, 0);
+  raw_oat.insert(raw_oat.end(), padding, 0);

   stream_ = std::make_unique<VectorStream>(std::move(raw_oat));

@@ -106,39 +113,46 @@ void Parser::parse_binary<details::OAT79_t>() {

   std::vector<uint8_t> raw_oat;
   auto& oat = oat_binary();
-  const auto* oat_data = oat.get_symbol("oatdata")->as<ELF::Symbol>();
+  const auto* oat_data_sym = oat.get_symbol("oatdata");
+  const auto* oat_data =
+      oat_data_sym != nullptr ? oat_data_sym->as<ELF::Symbol>() : nullptr;
   if (oat_data != nullptr) {
-    raw_oat.reserve(oat_data->size());
-
     span<const uint8_t> raw_data =
-      oat.get_content_from_virtual_address(oat_data->value(), oat_data->size());
-    std::move(std::begin(raw_data), std::end(raw_data),
-              std::back_inserter(raw_oat));
+        oat.get_content_from_virtual_address(oat_data->value(), oat_data->size());
+
+    raw_oat.reserve(raw_data.size());
+    std::move(raw_data.begin(), raw_data.end(), std::back_inserter(raw_oat));

     data_address_ = oat_data->value();
-    data_size_    = oat_data->size();
+    data_size_ = oat_data->size();
   }

-  const auto* oat_exec = oat.get_symbol("oatexec")->as<ELF::Symbol>();
+  const auto* oat_exec_sym = oat.get_symbol("oatexec");
+  const auto* oat_exec =
+      oat_exec_sym != nullptr ? oat_exec_sym->as<ELF::Symbol>() : nullptr;
   if (oat_exec != nullptr) {

     exec_start_ = oat_exec->value();
-    exec_size_  = oat_exec->size();
+    exec_size_ = oat_exec->size();

     span<const uint8_t> raw_oatexec =
-      oat.get_content_from_virtual_address(oat_exec->value(), oat_exec->size());
+        oat.get_content_from_virtual_address(oat_exec->value(), oat_exec->size());

-    uint32_t padding = exec_start_ - (data_address_ + data_size_);
+    auto gap = oat_data_exec_gap();
+    if (!gap) {
+      LIEF_WARN("Corrupted OAT layout: inconsistent oatdata/oatexec ranges");
+      return;
+    }
+    const uint64_t padding = *gap;

-    raw_oat.reserve(raw_oat.size() + oat_exec->size() + padding);
-    raw_oat.insert(std::end(raw_oat), padding, 0);
+    raw_oat.reserve(raw_oat.size() + raw_oatexec.size() + padding);
+    raw_oat.insert(raw_oat.end(), padding, 0);

-    std::copy(std::begin(raw_oatexec), std::end(raw_oatexec),
-              std::back_inserter(raw_oat));
+    std::copy(raw_oatexec.begin(), raw_oatexec.end(), std::back_inserter(raw_oat));
   }

   uint32_t padding = align(raw_oat.size(), sizeof(uint32_t) * 8) - raw_oat.size();
-  raw_oat.insert(std::end(raw_oat), padding, 0);
+  raw_oat.insert(raw_oat.end(), padding, 0);

   stream_ = std::make_unique<VectorStream>(std::move(raw_oat));

@@ -154,38 +168,45 @@ template<>
 void Parser::parse_binary<details::OAT88_t>() {
   std::vector<uint8_t> raw_oat;
   auto& oat = oat_binary();
-  const auto* oat_data = oat.get_symbol("oatdata")->as<ELF::Symbol>();
+  const auto* oat_data_sym = oat.get_symbol("oatdata");
+  const auto* oat_data =
+      oat_data_sym != nullptr ? oat_data_sym->as<ELF::Symbol>() : nullptr;
   if (oat_data != nullptr) {
-    raw_oat.reserve(oat_data->size());
-
     span<const uint8_t> raw_data =
-      oat.get_content_from_virtual_address(oat_data->value(), oat_data->size());
-    std::copy(std::begin(raw_data), std::end(raw_data),
-              std::back_inserter(raw_oat));
+        oat.get_content_from_virtual_address(oat_data->value(), oat_data->size());
+
+    raw_oat.reserve(raw_data.size());
+    std::copy(raw_data.begin(), raw_data.end(), std::back_inserter(raw_oat));

     data_address_ = oat_data->value();
-    data_size_    = oat_data->size();
+    data_size_ = oat_data->size();
   }

-  const auto* oat_exec = oat.get_symbol("oatexec")->as<ELF::Symbol>();
+  const auto* oat_exec_sym = oat.get_symbol("oatexec");
+  const auto* oat_exec =
+      oat_exec_sym != nullptr ? oat_exec_sym->as<ELF::Symbol>() : nullptr;
   if (oat_exec != nullptr) {
     exec_start_ = oat_exec->value();
-    exec_size_  = oat_exec->size();
+    exec_size_ = oat_exec->size();

     span<const uint8_t> raw_oatexec =
-      oat.get_content_from_virtual_address(oat_exec->value(), oat_exec->size());
+        oat.get_content_from_virtual_address(oat_exec->value(), oat_exec->size());

-    uint32_t padding = exec_start_ - (data_address_ + data_size_);
+    auto gap = oat_data_exec_gap();
+    if (!gap) {
+      LIEF_WARN("Corrupted OAT layout: inconsistent oatdata/oatexec ranges");
+      return;
+    }
+    const uint64_t padding = *gap;

-    raw_oat.reserve(raw_oat.size() + oat_exec->size() + padding);
-    raw_oat.insert(std::end(raw_oat), padding, 0);
+    raw_oat.reserve(raw_oat.size() + raw_oatexec.size() + padding);
+    raw_oat.insert(raw_oat.end(), padding, 0);

-    std::copy(std::begin(raw_oatexec), std::end(raw_oatexec),
-              std::back_inserter(raw_oat));
+    std::copy(raw_oatexec.begin(), raw_oatexec.end(), std::back_inserter(raw_oat));
   }

   uint32_t padding = align(raw_oat.size(), sizeof(uint32_t) * 8) - raw_oat.size();
-  raw_oat.insert(std::end(raw_oat), padding, 0);
+  raw_oat.insert(raw_oat.end(), padding, 0);

   stream_ = std::make_unique<VectorStream>(std::move(raw_oat));

@@ -201,38 +222,45 @@ template<>
 void Parser::parse_binary<details::OAT124_t>() {
   std::vector<uint8_t> raw_oat;
   auto& oat = oat_binary();
-  const auto* oat_data = oat.get_symbol("oatdata")->as<ELF::Symbol>();
+  const auto* oat_data_sym = oat.get_symbol("oatdata");
+  const auto* oat_data =
+      oat_data_sym != nullptr ? oat_data_sym->as<ELF::Symbol>() : nullptr;
   if (oat_data != nullptr) {
-    raw_oat.reserve(oat_data->size());
-
     span<const uint8_t> raw_data =
-      oat.get_content_from_virtual_address(oat_data->value(), oat_data->size());
-    std::copy(std::begin(raw_data), std::end(raw_data),
-              std::back_inserter(raw_oat));
+        oat.get_content_from_virtual_address(oat_data->value(), oat_data->size());
+
+    raw_oat.reserve(raw_data.size());
+    std::copy(raw_data.begin(), raw_data.end(), std::back_inserter(raw_oat));

     data_address_ = oat_data->value();
-    data_size_    = oat_data->size();
+    data_size_ = oat_data->size();
   }

-  const auto* oat_exec = oat.get_symbol("oatexec")->as<ELF::Symbol>();
+  const auto* oat_exec_sym = oat.get_symbol("oatexec");
+  const auto* oat_exec =
+      oat_exec_sym != nullptr ? oat_exec_sym->as<ELF::Symbol>() : nullptr;
   if (oat_exec != nullptr) {
     exec_start_ = oat_exec->value();
-    exec_size_  = oat_exec->size();
+    exec_size_ = oat_exec->size();

     span<const uint8_t> raw_oatexec =
-      oat.get_content_from_virtual_address(oat_exec->value(), oat_exec->size());
+        oat.get_content_from_virtual_address(oat_exec->value(), oat_exec->size());

-    uint32_t padding = exec_start_ - (data_address_ + data_size_);
+    auto gap = oat_data_exec_gap();
+    if (!gap) {
+      LIEF_WARN("Corrupted OAT layout: inconsistent oatdata/oatexec ranges");
+      return;
+    }
+    const uint64_t padding = *gap;

-    raw_oat.reserve(raw_oat.size() + oat_exec->size() + padding);
-    raw_oat.insert(std::end(raw_oat), padding, 0);
+    raw_oat.reserve(raw_oat.size() + raw_oatexec.size() + padding);
+    raw_oat.insert(raw_oat.end(), padding, 0);

-    std::copy(std::begin(raw_oatexec), std::end(raw_oatexec),
-              std::back_inserter(raw_oat));
+    std::copy(raw_oatexec.begin(), raw_oatexec.end(), std::back_inserter(raw_oat));
   }

   uint32_t padding = align(raw_oat.size(), sizeof(uint32_t) * 8) - raw_oat.size();
-  raw_oat.insert(std::end(raw_oat), padding, 0);
+  raw_oat.insert(raw_oat.end(), padding, 0);

   stream_ = std::make_unique<VectorStream>(std::move(raw_oat));

@@ -248,38 +276,45 @@ template<>
 void Parser::parse_binary<details::OAT131_t>() {
   std::vector<uint8_t> raw_oat;
   auto& oat = oat_binary();
-  const auto* oat_data = oat.get_symbol("oatdata")->as<ELF::Symbol>();
+  const auto* oat_data_sym = oat.get_symbol("oatdata");
+  const auto* oat_data =
+      oat_data_sym != nullptr ? oat_data_sym->as<ELF::Symbol>() : nullptr;
   if (oat_data != nullptr) {
-    raw_oat.reserve(oat_data->size());
-
     span<const uint8_t> raw_data =
-      oat.get_content_from_virtual_address(oat_data->value(), oat_data->size());
-    std::copy(std::begin(raw_data), std::end(raw_data),
-              std::back_inserter(raw_oat));
+        oat.get_content_from_virtual_address(oat_data->value(), oat_data->size());
+
+    raw_oat.reserve(raw_data.size());
+    std::copy(raw_data.begin(), raw_data.end(), std::back_inserter(raw_oat));

     data_address_ = oat_data->value();
-    data_size_    = oat_data->size();
+    data_size_ = oat_data->size();
   }

-  const auto* oat_exec = oat.get_symbol("oatexec")->as<ELF::Symbol>();
+  const auto* oat_exec_sym = oat.get_symbol("oatexec");
+  const auto* oat_exec =
+      oat_exec_sym != nullptr ? oat_exec_sym->as<ELF::Symbol>() : nullptr;
   if (oat_exec != nullptr) {
     exec_start_ = oat_exec->value();
-    exec_size_  = oat_exec->size();
+    exec_size_ = oat_exec->size();

     span<const uint8_t> raw_oatexec =
-      oat.get_content_from_virtual_address(oat_exec->value(), oat_exec->size());
+        oat.get_content_from_virtual_address(oat_exec->value(), oat_exec->size());

-    uint32_t padding = exec_start_ - (data_address_ + data_size_);
+    auto gap = oat_data_exec_gap();
+    if (!gap) {
+      LIEF_WARN("Corrupted OAT layout: inconsistent oatdata/oatexec ranges");
+      return;
+    }
+    const uint64_t padding = *gap;

-    raw_oat.reserve(raw_oat.size() + oat_exec->size() + padding);
-    raw_oat.insert(std::end(raw_oat), padding, 0);
+    raw_oat.reserve(raw_oat.size() + raw_oatexec.size() + padding);
+    raw_oat.insert(raw_oat.end(), padding, 0);

-    std::copy(std::begin(raw_oatexec), std::end(raw_oatexec),
-              std::back_inserter(raw_oat));
+    std::copy(raw_oatexec.begin(), raw_oatexec.end(), std::back_inserter(raw_oat));
   }

   uint32_t padding = align(raw_oat.size(), sizeof(uint32_t) * 8) - raw_oat.size();
-  raw_oat.insert(std::end(raw_oat), padding, 0);
+  raw_oat.insert(raw_oat.end(), padding, 0);

   stream_ = std::make_unique<VectorStream>(std::move(raw_oat));

@@ -290,7 +325,7 @@ void Parser::parse_binary<details::OAT131_t>() {
     parse_type_lookup_table<details::OAT131_t>();
     parse_oat_classes<details::OAT131_t>();
   } else {
-    LIEF_WARN("No VDEX found. Can't parse the OAT Classes and the Lookup Table");
+    LIEF_WARN("No VDEX found, cannot parse OAT classes and lookup table");
   }
 }

@@ -301,7 +336,6 @@ void Parser::parse_binary<details::OAT138_t>() {
 }


-
 template<typename OAT_T>
 void Parser::parse_header() {
   using oat_header = typename OAT_T::oat_header;
@@ -314,8 +348,8 @@ void Parser::parse_header() {
   }
   const auto oat_hdr = std::move(*res_oat_hdr);
   oat.header_ = &oat_hdr;
-  LIEF_DEBUG("Nb dex files: #{:d}", oat.header_.nb_dex_files());
-  //LIEF_DEBUG("OAT version: {}", oat_hdr.oat_version);
+  LIEF_DEBUG("DEX file count: #{:d}", oat.header_.nb_dex_files());
+  // LIEF_DEBUG("OAT version: {}", oat_hdr.oat_version);

   parse_header_keys<OAT_T>();
 }
@@ -336,42 +370,55 @@ void Parser::parse_header_keys() {
   }

   for (HEADER_KEYS key : header_keys_list) {
-    std::string key_str = std::string{'\0'} + Header::key_to_string(key);
+    const std::string key_str = std::string{'\0'} + Header::key_to_string(key);

-    size_t pos = key_values.find(key_str);
+    const size_t pos = key_values.find(key_str);
+    if (pos == std::string::npos) {
+      continue;
+    }

-    if (pos != std::string::npos) {
-      std::string value = std::string{key_values.data() + pos + key_str.size() + 1};
-      oat.header_.dex2oat_context_.emplace(key, value);
+    const size_t value_start = pos + key_str.size() + 1;
+    if (value_start > key_values.size()) {
+      continue;
     }
+
+    const size_t value_end = key_values.find('\0', value_start);
+
+    std::string value =
+        value_end == std::string::npos ?
+            key_values.substr(value_start) :
+            key_values.substr(value_start, value_end - value_start);
+    oat.header_.dex2oat_context_.emplace(key, std::move(value));
   }
 }


-
 template<typename OAT_T>
 void Parser::parse_type_lookup_table() {
-  //using oat_header           = typename OAT_T::oat_header;
-  //using dex_file             = typename OAT_T::dex_file;
-  //using lookup_table_entry_t = typename OAT_T::lookup_table_entry_t;
+  // using oat_header           = typename OAT_T::oat_header;
+  // using dex_file             = typename OAT_T::dex_file;
+  // using lookup_table_entry_t = typename OAT_T::lookup_table_entry_t;


-  //VLOG(VDEBUG) << "Parsing TypeLookupTable";
-  //for (size_t i = 0; i < oat.dex_files_.size(); ++i) {
+  // VLOG(VDEBUG) << "Parsing TypeLookupTable";
+  // for (size_t i = 0; i < oat.dex_files_.size(); ++i) {

   //  const DexFile* oat_dex_file = oat.oat_dex_files_[i];
   //  uint64_t tlt_offset = oat_dex_file->lookup_table_offset();

   //  VLOG(VDEBUG) << "Getting TypeLookupTable for DexFile "
   //                << oat_dex_file->location()
-  //                << " (#" << std::dec << oat_dex_file->dex_file().header().nb_classes() << ")";
+  //                << " (#" << std::dec <<
+  //                oat_dex_file->dex_file().header().nb_classes() << ")";
   //  for (size_t j = 0; j < oat_dex_file->dex_file().header().nb_classes();) {
-  //    const lookup_table_entry_t* entry = reinterpret_cast<const lookup_table_entry_t*>(stream_->read(tlt_offset, sizeof(lookup_table_entry_t)));
+  //    const lookup_table_entry_t* entry = reinterpret_cast<const
+  //    lookup_table_entry_t*>(stream_->read(tlt_offset,
+  //    sizeof(lookup_table_entry_t)));

   //    if (entry->str_offset) {
   //      uint64_t string_offset = oat_dex_file->dex_offset() + entry->str_offset;
-  //      std::pair<uint64_t, uint64_t> len_size = stream_->read_uleb128(string_offset);
-  //      string_offset += len_size.second;
+  //      std::pair<uint64_t, uint64_t> len_size =
+  //      stream_->read_uleb128(string_offset); string_offset += len_size.second;
   //      std::string class_name = stream_->get_string(string_offset);
   //      //VLOG(VDEBUG) << "    " << "#" << std::dec << j << " " << class_name;
   //      ++j;
@@ -384,13 +431,13 @@ void Parser::parse_type_lookup_table() {

 template<typename OAT_T>
 void Parser::parse_oat_classes() {
-  LIEF_DEBUG("Parsing OAT Classes");
+  LIEF_DEBUG("Parsing OAT classes");
   auto& oat = oat_binary();
   for (size_t dex_idx = 0; dex_idx < oat.oat_dex_files_.size(); ++dex_idx) {
     std::unique_ptr<DexFile>& oat_dex_file = oat.oat_dex_files_[dex_idx];
     const DEX::File* dex_file_ptr = oat_dex_file->dex_file();
     if (dex_file_ptr == nullptr) {
-      LIEF_ERR("Can't find the original DEX File associated with the OAT DEX File #{}", dex_idx);
+      LIEF_ERR("Original DEX file not found for OAT DEX file #{}", dex_idx);
       continue;
     }

@@ -398,23 +445,23 @@ void Parser::parse_oat_classes() {

     const std::vector<uint32_t>& classes_offsets = oat_dex_file->classes_offsets();
     uint32_t nb_classes = dex_file.header().nb_classes();
-    LIEF_DEBUG("Dealing with DexFile #{:d} (#classes: {:d})", dex_idx, nb_classes);
+    LIEF_DEBUG("Processing DEX file #{:d} ({:d} classes)", dex_idx, nb_classes);

     for (size_t class_idx = 0; class_idx < nb_classes; ++class_idx) {
       const DEX::Class* cls = dex_file.get_class(class_idx);
       if (cls == nullptr) {
-        LIEF_ERR("Can't find the class at index #{}", class_idx);
+        LIEF_ERR("Class not found at index #{}", class_idx);
         continue;
       }
       if (cls->index() >= classes_offsets.size()) {
-        LIEF_WARN("cls.index() is not valid");
+        LIEF_WARN("Invalid class index");
         continue;
       }
       uint32_t oat_class_offset = classes_offsets[cls->index()];
       stream_->setpos(oat_class_offset);

       // OAT Status
-      auto res_status  = stream_->read<int16_t>();
+      auto res_status = stream_->read<int16_t>();
       if (!res_status) {
         break;
       }
@@ -446,7 +493,9 @@ void Parser::parse_oat_classes() {
         }
       }

-      auto oat_class = std::make_unique<Class>(status, type, const_cast<DEX::Class*>(cls), bitmap);
+      auto oat_class =
+          std::make_unique<Class>(status, type, const_cast<DEX::Class*>(cls),
+                                  bitmap);

       Class& oat_cls_ref = *oat_class;
       oat.add_class(std::move(oat_class));
@@ -459,7 +508,8 @@ void Parser::parse_oat_classes() {
 }

 template<typename OAT_T>
-void Parser::parse_oat_methods(uint64_t methods_offsets, Class& clazz, const DEX::Class& dex_class) {
+void Parser::parse_oat_methods(uint64_t methods_offsets, Class& clazz,
+                               const DEX::Class& dex_class) {
   using oat_quick_method_header = typename OAT_T::oat_quick_method_header;
   DEX::Class::it_const_methods methods = dex_class.methods();

@@ -470,7 +520,8 @@ void Parser::parse_oat_methods(uint64_t methods_offsets, Class& clazz, const DEX
     }

     uint32_t computed_index = clazz.method_offsets_index(method);
-    auto code_off = stream_->peek<uint32_t>(methods_offsets + computed_index * sizeof(uint32_t));
+    auto code_off = stream_->peek<uint32_t>(methods_offsets +
+                                            computed_index * sizeof(uint32_t));
     if (!code_off) {
       break;
     }
@@ -479,7 +530,8 @@ void Parser::parse_oat_methods(uint64_t methods_offsets, Class& clazz, const DEX
     uint32_t quick_method_header_off = *code_off - sizeof(oat_quick_method_header);
     quick_method_header_off &= ~1u;

-    const auto res_quick_header = stream_->peek<oat_quick_method_header>(quick_method_header_off);
+    const auto res_quick_header =
+        stream_->peek<oat_quick_method_header>(quick_method_header_off);
     if (!res_quick_header) {
       break;
     }
@@ -488,11 +540,13 @@ void Parser::parse_oat_methods(uint64_t methods_offsets, Class& clazz, const DEX

     uint32_t vmap_table_offset = *code_off - quick_header.vmap_table_offset;

-    auto oat_method = std::make_unique<Method>(const_cast<DEX::Method*>(&method), &clazz);
+    auto oat_method =
+        std::make_unique<Method>(const_cast<DEX::Method*>(&method), &clazz);

     if (quick_header.code_size > 0) {

-      const auto* code = stream_->peek_array<uint8_t>(*code_off, quick_header.code_size);
+      const auto* code =
+          stream_->peek_array<uint8_t>(*code_off, quick_header.code_size);
       if (code != nullptr) {
         oat_method->quick_code_ = {code, code + quick_header.code_size};
       }
@@ -534,13 +588,10 @@ void Parser::parse_oat_methods(uint64_t methods_offsets, Class& clazz, const DEX
         auto index = static_cast<uint32_t>(*res_index);
         oat_method->dex_method()->insert_dex2dex_info(pc, index);
       }
-
     }
     clazz.methods_.push_back(oat_method.get());
     oat.methods_.push_back(std::move(oat_method));
   }
-
 }

 }
-}
diff --git a/deps/LIEF/src/OAT/Structures.hpp b/deps/LIEF/src/OAT/Structures.hpp
index 6d8c3b59eba..58e5e3c21f1 100644
--- a/deps/LIEF/src/OAT/Structures.hpp
+++ b/deps/LIEF/src/OAT/Structures.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -37,14 +37,14 @@
 // Android 9.0.0  OAT 138
 // ======================

-namespace LIEF {
+
 /// Namespace related to the LIEF's OAT module
-namespace OAT {

-namespace details {
+
+namespace LIEF::OAT::details {
 using oat_version_t = uint32_t;

-static constexpr uint8_t oat_magic[]   = { 'o', 'a', 't', '\n' };
+static constexpr uint8_t oat_magic[] = {'o', 'a', 't', '\n'};
 static constexpr oat_version_t oat_version = 0;

 // =======================
@@ -74,7 +74,7 @@ struct oat_header {
   uint32_t image_file_location_oat_data_begin;

   uint32_t key_value_store_size;
-  //uint8_t key_value_store[0];  // note variable width data at end
+  // uint8_t key_value_store[0];  // note variable width data at end
 };

 struct oat_dex_file {
@@ -86,28 +86,28 @@ struct oat_dex_file {

 struct dex_file {
   uint8_t magic[8];
-  uint32_t checksum;      // See also location_checksum_
+  uint32_t checksum; // See also location_checksum_
   uint8_t signature[20];
-  uint32_t file_size;     // size of entire file
-  uint32_t header_size;   // offset to start of next section
+  uint32_t file_size;   // size of entire file
+  uint32_t header_size; // offset to start of next section
   uint32_t endian_tag;
-  uint32_t link_size;     // unused
-  uint32_t link_off;      // unused
-  uint32_t map_off;       // unused
-  uint32_t string_ids_size;  // number of StringIds
+  uint32_t link_size;       // unused
+  uint32_t link_off;        // unused
+  uint32_t map_off;         // unused
+  uint32_t string_ids_size; // number of StringIds
   uint32_t string_ids_off;  // file offset of StringIds array
-  uint32_t type_ids_size;  // number of TypeIds, we don't support more than 65535
-  uint32_t type_ids_off;  // file offset of TypeIds array
+  uint32_t type_ids_size;   // number of TypeIds, we don't support more than 65535
+  uint32_t type_ids_off;    // file offset of TypeIds array
   uint32_t proto_ids_size;  // number of ProtoIds, we don't support more than 65535
-  uint32_t proto_ids_off;  // file offset of ProtoIds array
+  uint32_t proto_ids_off;   // file offset of ProtoIds array
   uint32_t field_ids_size;  // number of FieldIds
-  uint32_t field_ids_off;  // file offset of FieldIds array
-  uint32_t method_ids_size;  // number of MethodIds
+  uint32_t field_ids_off;   // file offset of FieldIds array
+  uint32_t method_ids_size; // number of MethodIds
   uint32_t method_ids_off;  // file offset of MethodIds array
-  uint32_t class_defs_size;  // number of ClassDefs
+  uint32_t class_defs_size; // number of ClassDefs
   uint32_t class_defs_off;  // file offset of ClassDef array
-  uint32_t data_size;  // unused
-  uint32_t data_off;  // unused
+  uint32_t data_size;       // unused
+  uint32_t data_off;        // unused
 };


@@ -125,7 +125,6 @@ struct oat_quick_method_header {
 };


-
 }

 // OAT 079 - Android 7.0.0
@@ -211,7 +210,7 @@ struct oat_header {
   uint32_t instruction_set;
   uint32_t instruction_set_features_bitmap;
   uint32_t dex_file_count;
-  uint32_t oat_dex_files_offset;                      // ADDED in OAT 131
+  uint32_t oat_dex_files_offset; // ADDED in OAT 131
   uint32_t executable_offset;
   uint32_t i2i_bridge_offset;
   uint32_t i2c_code_bridge_offset;
@@ -227,7 +226,7 @@ struct oat_header {
   uint32_t image_file_location_oat_data_begin;

   uint32_t key_value_store_size;
-  //uint8_t key_value_store[0];  // note variable width data at end
+  // uint8_t key_value_store[0];  // note variable width data at end
 };

 using OAT_124::oat_dex_file;
@@ -239,7 +238,7 @@ using OAT_124::lookup_table_entry_t;


 // OAT 138  - Android 9.0.0
-namespace OAT_138  {
+namespace OAT_138 {
 static constexpr oat_version_t oat_version = 138;
 using OAT_131::oat_header;
 using OAT_131::oat_dex_file;
@@ -252,18 +251,18 @@ using OAT_131::lookup_table_entry_t;
 class OAT64_t {
   public:
   static constexpr oat_version_t oat_version = OAT_064::oat_version;
-  using oat_header   = OAT_064::oat_header;
+  using oat_header = OAT_064::oat_header;
   using oat_dex_file = OAT_064::oat_dex_file;
-  using dex_file     = OAT_064::dex_file;
+  using dex_file = OAT_064::dex_file;
   using oat_quick_method_header = OAT_064::oat_quick_method_header;
 };

 class OAT79_t {
   public:
   static constexpr oat_version_t oat_version = OAT_079::oat_version;
-  using oat_header   = OAT_079::oat_header;
+  using oat_header = OAT_079::oat_header;
   using oat_dex_file = OAT_079::oat_dex_file;
-  using dex_file     = OAT_079::dex_file;
+  using dex_file = OAT_079::dex_file;

   using oat_quick_method_header = OAT_079::oat_quick_method_header;
   using lookup_table_entry_t = OAT_079::lookup_table_entry_t;
@@ -272,9 +271,9 @@ class OAT79_t {
 class OAT88_t {
   public:
   static constexpr oat_version_t oat_version = OAT_088::oat_version;
-  using oat_header   = OAT_088::oat_header;
+  using oat_header = OAT_088::oat_header;
   using oat_dex_file = OAT_088::oat_dex_file;
-  using dex_file     = OAT_088::dex_file;
+  using dex_file = OAT_088::dex_file;
   using oat_quick_method_header = OAT_088::oat_quick_method_header;

   using lookup_table_entry_t = OAT_088::lookup_table_entry_t;
@@ -283,9 +282,9 @@ class OAT88_t {
 class OAT124_t {
   public:
   static constexpr oat_version_t oat_version = OAT_124::oat_version;
-  using oat_header   = OAT_124::oat_header;
+  using oat_header = OAT_124::oat_header;
   using oat_dex_file = OAT_124::oat_dex_file;
-  using dex_file     = OAT_124::dex_file;
+  using dex_file = OAT_124::dex_file;
   using oat_quick_method_header = OAT_124::oat_quick_method_header;

   using lookup_table_entry_t = OAT_124::lookup_table_entry_t;
@@ -295,9 +294,9 @@ class OAT124_t {
 class OAT131_t {
   public:
   static constexpr oat_version_t oat_version = OAT_131::oat_version;
-  using oat_header   = OAT_131::oat_header;
+  using oat_header = OAT_131::oat_header;
   using oat_dex_file = OAT_131::oat_dex_file;
-  using dex_file     = OAT_131::dex_file;
+  using dex_file = OAT_131::dex_file;
   using oat_quick_method_header = OAT_124::oat_quick_method_header;

   using lookup_table_entry_t = OAT_131::lookup_table_entry_t;
@@ -306,15 +305,14 @@ class OAT131_t {
 class OAT138_t {
   public:
   static constexpr oat_version_t oat_version = OAT_138::oat_version;
-  using oat_header              = OAT_138::oat_header;
-  using oat_dex_file            = OAT_138::oat_dex_file;
-  using dex_file                = OAT_138::dex_file;
+  using oat_header = OAT_138::oat_header;
+  using oat_dex_file = OAT_138::oat_dex_file;
+  using dex_file = OAT_138::dex_file;
   using oat_quick_method_header = OAT_138::oat_quick_method_header;
-  using lookup_table_entry_t    = OAT_138::lookup_table_entry_t;
+  using lookup_table_entry_t = OAT_138::lookup_table_entry_t;
 };

-} /* end namespace details */
-} /* end namespace OAT */
-} /* end namespace LIEF */
-#endif
+} // namespace LIEF::OAT::details
+

+#endif
diff --git a/deps/LIEF/src/OAT/hash.cpp b/deps/LIEF/src/OAT/hash.cpp
index 6853150c793..972ed3349cf 100644
--- a/deps/LIEF/src/OAT/hash.cpp
+++ b/deps/LIEF/src/OAT/hash.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -27,8 +27,8 @@
 #include "LIEF/DEX/Class.hpp"
 #include "LIEF/DEX/hash.hpp"

-namespace LIEF {
-namespace OAT {
+
+namespace LIEF::OAT {

 Hash::~Hash() = default;

@@ -40,9 +40,9 @@ size_t Hash::hash(const Object& obj) {
 void Hash::visit(const Binary& binary) {
   process(binary.header());

-  process(std::begin(binary.oat_dex_files()), std::end(binary.oat_dex_files()));
-  process(std::begin(binary.classes()), std::end(binary.classes()));
-  process(std::begin(binary.methods()), std::end(binary.methods()));
+  process(binary.oat_dex_files().begin(), binary.oat_dex_files().end());
+  process(binary.classes().begin(), binary.classes().end());
+  process(binary.methods().begin(), binary.methods().end());
 }


@@ -66,8 +66,8 @@ void Hash::visit(const Header& header) {
   process(header.image_file_location_oat_data_begin());
   process(header.key_value_size());

-  process(std::begin(header.keys()), std::end(header.keys()));
-  process(std::begin(header.values()), std::end(header.values()));
+  process(header.keys().begin(), header.keys().end());
+  process(header.values().begin(), header.values().end());
 }


@@ -93,7 +93,7 @@ void Hash::visit(const Class& cls) {
   process(cls.fullname());
   process(cls.bitmap());
   Class::it_const_methods it = cls.methods();
-  process(std::begin(it), std::end(it));
+  process(it.begin(), it.end());
 }


@@ -107,7 +107,4 @@ void Hash::visit(const Method& meth) {
 }


-
-} // namespace OAT
-} // namespace LIEF
-
+} // namespace LIEF::OAT
diff --git a/deps/LIEF/src/OAT/json.cpp b/deps/LIEF/src/OAT/json.cpp
index 826e5d3065f..b0c98476c0e 100644
--- a/deps/LIEF/src/OAT/json.cpp
+++ b/deps/LIEF/src/OAT/json.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -18,8 +18,8 @@
 #include "OAT/json_internal.hpp"
 #include "LIEF/OAT.hpp"

-namespace LIEF {
-namespace OAT {
+
+namespace LIEF::OAT {

 void JsonVisitor::visit(const Binary& binary) {
   JsonVisitor header_visitor;
@@ -46,33 +46,39 @@ void JsonVisitor::visit(const Binary& binary) {
     methods.emplace_back(method_visitor.get());
   }

-  node_["header"]    = header_visitor.get();
+  node_["header"] = header_visitor.get();
   node_["dex_files"] = dex_files;
-  node_["classes"]   = classes;
-  node_["methods"]   = methods;
+  node_["classes"] = classes;
+  node_["methods"] = methods;
 }

 void JsonVisitor::visit(const Header& header) {
-  node_["magic"]                                = header.magic();
-  node_["version"]                              = header.version();
-  node_["checksum"]                             = header.checksum();
-  node_["instruction_set"]                      = to_string(header.instruction_set());
-  node_["nb_dex_files"]                         = header.nb_dex_files();
-  node_["oat_dex_files_offset"]                 = header.oat_dex_files_offset();
-  node_["executable_offset"]                    = header.executable_offset();
-  node_["i2i_bridge_offset"]                    = header.i2i_bridge_offset();
-  node_["i2c_code_bridge_offset"]               = header.i2c_code_bridge_offset();
-  node_["jni_dlsym_lookup_offset"]              = header.jni_dlsym_lookup_offset();
-
-  node_["quick_generic_jni_trampoline_offset"]  = header.quick_generic_jni_trampoline_offset();
-  node_["quick_imt_conflict_trampoline_offset"] = header.quick_imt_conflict_trampoline_offset();
-  node_["quick_resolution_trampoline_offset"]   = header.quick_resolution_trampoline_offset();
-  node_["quick_to_interpreter_bridge_offset"]   = header.quick_to_interpreter_bridge_offset();
-
-  node_["image_patch_delta"]                    = header.image_patch_delta();
-  node_["image_file_location_oat_checksum"]     = header.image_file_location_oat_checksum();
-  node_["image_file_location_oat_data_begin"]   = header.image_file_location_oat_data_begin();
-  node_["key_value_size"]                       = header.key_value_size();
+  node_["magic"] = header.magic();
+  node_["version"] = header.version();
+  node_["checksum"] = header.checksum();
+  node_["instruction_set"] = to_string(header.instruction_set());
+  node_["nb_dex_files"] = header.nb_dex_files();
+  node_["oat_dex_files_offset"] = header.oat_dex_files_offset();
+  node_["executable_offset"] = header.executable_offset();
+  node_["i2i_bridge_offset"] = header.i2i_bridge_offset();
+  node_["i2c_code_bridge_offset"] = header.i2c_code_bridge_offset();
+  node_["jni_dlsym_lookup_offset"] = header.jni_dlsym_lookup_offset();
+
+  node_["quick_generic_jni_trampoline_offset"] =
+      header.quick_generic_jni_trampoline_offset();
+  node_["quick_imt_conflict_trampoline_offset"] =
+      header.quick_imt_conflict_trampoline_offset();
+  node_["quick_resolution_trampoline_offset"] =
+      header.quick_resolution_trampoline_offset();
+  node_["quick_to_interpreter_bridge_offset"] =
+      header.quick_to_interpreter_bridge_offset();
+
+  node_["image_patch_delta"] = header.image_patch_delta();
+  node_["image_file_location_oat_checksum"] =
+      header.image_file_location_oat_checksum();
+  node_["image_file_location_oat_data_begin"] =
+      header.image_file_location_oat_data_begin();
+  node_["key_value_size"] = header.key_value_size();

   node_["keys_values"] = std::vector<json>{};
   for (const auto& key_val : header.key_values()) {
@@ -82,28 +88,26 @@ void JsonVisitor::visit(const Header& header) {
 }

 void JsonVisitor::visit(const DexFile& dex_file) {
-  node_["location"]            = dex_file.location();
-  node_["checksum"]            = dex_file.checksum();
-  node_["dex_offset"]          = dex_file.dex_offset();
-  node_["classes_offsets"]     = dex_file.classes_offsets();
+  node_["location"] = dex_file.location();
+  node_["checksum"] = dex_file.checksum();
+  node_["dex_offset"] = dex_file.dex_offset();
+  node_["classes_offsets"] = dex_file.classes_offsets();
   node_["lookup_table_offset"] = dex_file.lookup_table_offset();
   node_["lookup_table_offset"] = dex_file.lookup_table_offset();
 }

 void JsonVisitor::visit(const Class& cls) {
-  node_["status"]    = to_string(cls.status());
-  node_["type"]      = to_string(cls.type());
-  node_["fullname"]  = cls.fullname();
-  node_["index"]     = cls.index();
+  node_["status"] = to_string(cls.status());
+  node_["type"] = to_string(cls.type());
+  node_["fullname"] = cls.fullname();
+  node_["index"] = cls.index();
 }

 void JsonVisitor::visit(const Method& method) {
-  node_["name"]                 = method.name();
-  node_["is_compiled"]          = method.is_compiled();
+  node_["name"] = method.name();
+  node_["is_compiled"] = method.is_compiled();
   node_["is_dex2dex_optimized"] = method.is_dex2dex_optimized();
 }


-
-} // namespace OAT
-} // namespace LIEF
+} // namespace LIEF::OAT
diff --git a/deps/LIEF/src/OAT/json_api.cpp b/deps/LIEF/src/OAT/json_api.cpp
index f56429186f0..4b895379c71 100644
--- a/deps/LIEF/src/OAT/json_api.cpp
+++ b/deps/LIEF/src/OAT/json_api.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -19,13 +19,13 @@
 #include "LIEF/OAT/json.hpp"

 #ifdef LIEF_JSON_SUPPORT
-#include "OAT/json_internal.hpp"
+  #include "OAT/json_internal.hpp"
 #endif

 #include "LIEF/OAT.hpp"

-namespace LIEF {
-namespace OAT {
+
+namespace LIEF::OAT {

 std::string to_json(const Object& v) {
 #ifdef LIEF_JSON_SUPPORT
@@ -38,5 +38,4 @@ std::string to_json(const Object& v) {
 #endif
 }

-} // namespace OAT
-} // namespace LIEF
+} // namespace LIEF::OAT
diff --git a/deps/LIEF/src/OAT/json_internal.hpp b/deps/LIEF/src/OAT/json_internal.hpp
index 872a5ee12f3..747caf00170 100644
--- a/deps/LIEF/src/OAT/json_internal.hpp
+++ b/deps/LIEF/src/OAT/json_internal.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -20,22 +20,21 @@
 #include "LIEF/visibility.h"
 #include "visitors/json.hpp"

-namespace LIEF {
-namespace OAT {
+
+namespace LIEF::OAT {

 class JsonVisitor : public LIEF::JsonVisitor {
   public:
   using LIEF::JsonVisitor::JsonVisitor;

   public:
-  void visit(const Binary& binary)        override;
-  void visit(const Header& header)        override;
-  void visit(const DexFile& dex_file)     override;
-  void visit(const Class& cls)            override;
-  void visit(const Method& method)        override;
+  void visit(const Binary& binary) override;
+  void visit(const Header& header) override;
+  void visit(const DexFile& dex_file) override;
+  void visit(const Class& cls) override;
+  void visit(const Method& method) override;
 };

 }
-}
-#endif // LIEF_JSON_SUPPORT

+#endif
diff --git a/deps/LIEF/src/OAT/oat_124.tcc b/deps/LIEF/src/OAT/oat_124.tcc
index 91a5858ea1a..a1133a9b82a 100644
--- a/deps/LIEF/src/OAT/oat_124.tcc
+++ b/deps/LIEF/src/OAT/oat_124.tcc
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -14,6 +14,7 @@
  * limitations under the License.
  */

+#include <memory>
 #include <type_traits>

 #include "logging.hpp"
@@ -30,8 +31,8 @@

 #include "OAT/Structures.hpp"

-namespace LIEF {
-namespace OAT {
+
+namespace LIEF::OAT {

 template<>
 void Parser::parse_dex_files<details::OAT124_t>() {
@@ -43,17 +44,22 @@ void Parser::parse_dex_files<details::OAT124_t>() {

   uint64_t dexfiles_offset = sizeof(oat_header) + oat.header_.key_value_size();

-  LIEF_DEBUG("OAT DEX file located at offset: 0x{:x}", dexfiles_offset);
+  LIEF_DEBUG("OAT DEX files offset: {:#x}", dexfiles_offset);

   std::vector<uint32_t> classes_offsets_offset;
-  classes_offsets_offset.reserve(nb_dex_files);
+  if (dexfiles_offset < stream_->size()) {
+    const uint64_t max_records =
+        (stream_->size() - dexfiles_offset) / sizeof(uint32_t);
+    auto reserve = std::min<size_t>(nb_dex_files, max_records);
+    classes_offsets_offset.reserve(reserve);
+  }

   stream_->setpos(dexfiles_offset);
-  for (size_t i = 0; i < nb_dex_files; ++i ) {
+  for (size_t i = 0; i < nb_dex_files; ++i) {

-    LIEF_DEBUG("Dealing with OAT DEX file #{:d}", i);
+    LIEF_DEBUG("Processing OAT DEX file #{:d}", i);

-    std::unique_ptr<DexFile> dex_file{new DexFile{}};
+    std::unique_ptr<DexFile> dex_file = std::make_unique<DexFile>();

     auto location_size = stream_->read<uint32_t>();
     if (!location_size) {
@@ -99,7 +105,7 @@ void Parser::parse_dex_files<details::OAT124_t>() {
   if (oat_binary().has_vdex()) {
     VDEX::File::it_dex_files dexfiles = oat_binary().vdex_->dex_files();
     if (dexfiles.size() != oat.oat_dex_files_.size()) {
-      LIEF_WARN("Inconsistent number of vdex files");
+      LIEF_WARN("Inconsistent VDEX file count");
       return;
     }
     for (size_t i = 0; i < dexfiles.size(); ++i) {
@@ -110,9 +116,19 @@ void Parser::parse_dex_files<details::OAT124_t>() {
       const uint32_t nb_classes = dexfiles[i].header().nb_classes();

       uint32_t classes_offset = classes_offsets_offset[i];
-      oat_dex_file->classes_offsets_.reserve(nb_classes);
+      const uint64_t stream_size = stream_->size();
+
+      if (classes_offset < stream_size) {
+        const uint64_t max_offsets =
+            (stream_size - classes_offset) / sizeof(uint32_t);
+        auto reserve = std::min<size_t>(nb_classes, max_offsets);
+        oat_dex_file->classes_offsets_.reserve(reserve);
+      }
+
       for (size_t cls_idx = 0; cls_idx < nb_classes; ++cls_idx) {
-        if (auto res = stream_->peek<uint32_t>(classes_offset + cls_idx * sizeof(uint32_t))) {
+        if (auto res = stream_->peek<uint32_t>(classes_offset +
+                                               cls_idx * sizeof(uint32_t)))
+        {
           oat_dex_file->classes_offsets_.push_back(*res);
         } else {
           break;
@@ -123,5 +139,4 @@ void Parser::parse_dex_files<details::OAT124_t>() {
 }


-} // Namespace OAT
-} // Namespace LIEF
+} // namespace LIEF::OAT
diff --git a/deps/LIEF/src/OAT/oat_131.tcc b/deps/LIEF/src/OAT/oat_131.tcc
index 17ffcd1f38a..4892255367f 100644
--- a/deps/LIEF/src/OAT/oat_131.tcc
+++ b/deps/LIEF/src/OAT/oat_131.tcc
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -29,8 +29,8 @@
 #include "LIEF/VDEX/File.hpp"
 #include "OAT/Structures.hpp"

-namespace LIEF {
-namespace OAT {
+
+namespace LIEF::OAT {

 template<>
 void Parser::parse_dex_files<details::OAT131_t>() {
@@ -39,15 +39,20 @@ void Parser::parse_dex_files<details::OAT131_t>() {

   uint64_t oat_dex_files_offset = oat.header().oat_dex_files_offset();

-  LIEF_DEBUG("OAT DEX file located at offset: 0x{:x}", oat_dex_files_offset);
+  LIEF_DEBUG("OAT DEX files offset: {:#x}", oat_dex_files_offset);

   std::vector<uint32_t> classes_offsets_offset;
-  classes_offsets_offset.reserve(nb_dex_files);
+  if (oat_dex_files_offset < stream_->size()) {
+    const uint64_t max_records =
+        (stream_->size() - oat_dex_files_offset) / sizeof(uint32_t);
+    const auto reserve = std::min<size_t>(max_records, nb_dex_files);
+    classes_offsets_offset.reserve(reserve);
+  }

   stream_->setpos(oat_dex_files_offset);
   for (size_t i = 0; i < nb_dex_files; ++i) {

-    LIEF_DEBUG("Dealing with OAT DEX file #{:d}", i);
+    LIEF_DEBUG("Processing OAT DEX file #{:d}", i);

     auto dex_file = std::make_unique<DexFile>();

@@ -99,7 +104,7 @@ void Parser::parse_dex_files<details::OAT131_t>() {
   if (oat_binary().has_vdex()) {
     VDEX::File::it_dex_files dexfiles = oat_binary().vdex_->dex_files();
     if (dexfiles.size() != oat.oat_dex_files_.size()) {
-      LIEF_WARN("Inconsistent number of vdex files");
+      LIEF_WARN("Inconsistent VDEX file count");
       return;
     }
     for (size_t i = 0; i < dexfiles.size(); ++i) {
@@ -109,9 +114,18 @@ void Parser::parse_dex_files<details::OAT131_t>() {
       const uint32_t nb_classes = dexfiles[i].header().nb_classes();

       uint32_t classes_offset = classes_offsets_offset[i];
-      oat_dex_file->classes_offsets_.reserve(nb_classes);
+      const uint64_t stream_size = stream_->size();
+      if (classes_offset < stream_size) {
+        const uint64_t max_offsets =
+            (stream_size - classes_offset) / sizeof(uint32_t);
+        const auto reserve = std::min<size_t>(nb_classes, max_offsets);
+        oat_dex_file->classes_offsets_.reserve(reserve);
+      }
+
       for (size_t cls_idx = 0; cls_idx < nb_classes; ++cls_idx) {
-        if (auto off = stream_->peek<uint32_t>(classes_offset + cls_idx * sizeof(uint32_t))) {
+        if (auto off = stream_->peek<uint32_t>(classes_offset +
+                                               cls_idx * sizeof(uint32_t)))
+        {
           oat_dex_file->classes_offsets_.push_back(*off);
         } else {
           break;
@@ -122,10 +136,4 @@ void Parser::parse_dex_files<details::OAT131_t>() {
 }


-
-
-
-
-
-} // Namespace OAT
-} // Namespace LIEF
+} // namespace LIEF::OAT
diff --git a/deps/LIEF/src/OAT/oat_64.tcc b/deps/LIEF/src/OAT/oat_64.tcc
index 9aac23fad54..946bb341c04 100644
--- a/deps/LIEF/src/OAT/oat_64.tcc
+++ b/deps/LIEF/src/OAT/oat_64.tcc
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -28,13 +28,13 @@
 #include "DEX/Structures.hpp"
 #include "OAT/Structures.hpp"

-namespace LIEF {
-namespace OAT {
+
+namespace LIEF::OAT {

 template<>
 void Parser::parse_dex_files<details::OAT64_t>() {
   using oat_header = typename details::OAT64_t::oat_header;
-  using dex35_header_t  = DEX::details::DEX35::dex_header;
+  using dex35_header_t = DEX::details::DEX35::dex_header;

   auto& oat = oat_binary();

@@ -42,12 +42,12 @@ void Parser::parse_dex_files<details::OAT64_t>() {

   uint64_t dexfiles_offset = sizeof(oat_header) + oat.header_.key_value_size();

-  LIEF_DEBUG("OAT DEX file located at offset: 0x{:x}", dexfiles_offset);
+  LIEF_DEBUG("OAT DEX files offset: {:#x}", dexfiles_offset);

   stream_->setpos(dexfiles_offset);
-  for (size_t i = 0; i < nb_dex_files; ++i ) {
+  for (size_t i = 0; i < nb_dex_files; ++i) {

-    LIEF_DEBUG("Dealing with OAT DEX file #{:d}", i);
+    LIEF_DEBUG("Processing OAT DEX file #{:d}", i);
     auto dex_file = std::make_unique<DexFile>();

     auto location_size = stream_->read<uint32_t>();
@@ -81,7 +81,16 @@ void Parser::parse_dex_files<details::OAT64_t>() {

     const auto dex_hdr = *res_dex_hdr;

-    dex_file->classes_offsets_.reserve(dex_hdr.class_defs_size);
+    const uint64_t stream_size = stream_->size();
+    const uint64_t pos = stream_->pos();
+    if (pos < stream_size) {
+      const uint64_t max_offsets = (stream_size - pos) / sizeof(uint32_t);
+
+      const uint64_t nb_class_defs = dex_hdr.class_defs_size;
+      auto reserve = std::min<size_t>(nb_class_defs, max_offsets);
+      dex_file->classes_offsets_.reserve(reserve);
+    }
+
     for (size_t cls_idx = 0; cls_idx < dex_hdr.class_defs_size; ++cls_idx) {
       if (auto res = stream_->read<uint32_t>()) {
         dex_file->classes_offsets_.push_back(*res);
@@ -95,12 +104,12 @@ void Parser::parse_dex_files<details::OAT64_t>() {

   for (size_t i = 0; i < nb_dex_files; ++i) {
     if (i >= oat.oat_dex_files_.size()) {
-      LIEF_WARN("DEX file #{} is out of bound", i);
+      LIEF_WARN("DEX file #{} out of bounds", i);
       break;
     }
     uint64_t offset = oat.oat_dex_files_[i]->dex_offset();

-    LIEF_DEBUG("Dealing with OAT DEX file #{:d} at offset 0x{:x}", i, offset);
+    LIEF_DEBUG("Processing OAT DEX file #{:d} at offset {:#x}", i, offset);

     const auto res_hdr = stream_->peek<dex35_header_t>(offset);
     if (!res_hdr) {
@@ -123,19 +132,17 @@ void Parser::parse_dex_files<details::OAT64_t>() {

     std::unique_ptr<DexFile>& oat_dex_file = oat.oat_dex_files_[i];
     if (DEX::is_dex(data_v)) {
-      std::unique_ptr<DEX::File> dexfile = DEX::Parser::parse(std::move(data_v), name);
+      std::unique_ptr<DEX::File> dexfile =
+          DEX::Parser::parse(std::move(data_v), name);
       dexfile->location(oat_dex_file->location());
       oat_dex_file->dex_file_ = dexfile.get();
       oat.dex_files_.push_back(std::move(dexfile));
     } else {
-      LIEF_WARN("{} ({}) at  0x{:x} is not a DEX file", name, oat_dex_file->location(), stream_->pos());
+      LIEF_WARN("{} ({}) at {:#x} is not a DEX file", name,
+                oat_dex_file->location(), stream_->pos());
     }
   }
 }


-
-
-} // Namespace OAT
-} // Namespace LIEF
-
+} // namespace LIEF::OAT
diff --git a/deps/LIEF/src/OAT/oat_79.tcc b/deps/LIEF/src/OAT/oat_79.tcc
index 0dbc2efdde4..7d24fa09b82 100644
--- a/deps/LIEF/src/OAT/oat_79.tcc
+++ b/deps/LIEF/src/OAT/oat_79.tcc
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -14,6 +14,7 @@
  * limitations under the License.
  */

+#include <memory>
 #include <type_traits>

 #include "logging.hpp"
@@ -28,31 +29,35 @@
 #include "LIEF/OAT/DexFile.hpp"
 #include "LIEF/OAT/Binary.hpp"

-namespace LIEF {
-namespace OAT {
+
+namespace LIEF::OAT {

 template<>
 void Parser::parse_dex_files<details::OAT79_t>() {
   using oat_header = typename details::OAT79_t::oat_header;
-  using dex35_header_t  = DEX::details::DEX35::dex_header;
+  using dex35_header_t = DEX::details::DEX35::dex_header;

   auto& oat = oat_binary();
   size_t nb_dex_files = oat.header_.nb_dex_files();

   uint64_t dexfiles_offset = sizeof(oat_header) + oat.header_.key_value_size();

-  LIEF_DEBUG("OAT DEX file located at offset: 0x{:x}", dexfiles_offset);
+  LIEF_DEBUG("OAT DEX files offset: {:#x}", dexfiles_offset);

   std::vector<uint32_t> classes_offsets_offset;
-  classes_offsets_offset.reserve(nb_dex_files);
-
+  if (dexfiles_offset < stream_->size()) {
+    const uint64_t max_records =
+        (stream_->size() - dexfiles_offset) / sizeof(uint32_t);
+    auto reserve = std::min<size_t>(nb_dex_files, max_records);
+    classes_offsets_offset.reserve(reserve);
+  }

   stream_->setpos(dexfiles_offset);

-  for (size_t i = 0; i < nb_dex_files; ++i ) {
+  for (size_t i = 0; i < nb_dex_files; ++i) {

-    LIEF_DEBUG("Dealing with OAT DEX file #{:d}", i);
-    std::unique_ptr<DexFile> dex_file{new DexFile{}};
+    LIEF_DEBUG("Processing OAT DEX file #{:d}", i);
+    std::unique_ptr<DexFile> dex_file = std::make_unique<DexFile>();
     auto location_size = stream_->read<uint32_t>();
     if (!location_size) {
       break;
@@ -97,12 +102,12 @@ void Parser::parse_dex_files<details::OAT79_t>() {

   for (size_t i = 0; i < nb_dex_files; ++i) {
     if (i >= oat.oat_dex_files_.size()) {
-      LIEF_WARN("DEX file #{} is out of bound", i);
+      LIEF_WARN("DEX file #{} out of bounds", i);
       break;
     }
     uint64_t offset = oat.oat_dex_files_[i]->dex_offset();

-    LIEF_DEBUG("Dealing with DEX file #{:d} at offset 0x{:x}", i, offset);
+    LIEF_DEBUG("Processing DEX file #{:d} at offset {:#x}", i, offset);

     const auto res_dex_hdr = stream_->peek<dex35_header_t>(offset);
     if (!res_dex_hdr) {
@@ -124,7 +129,8 @@ void Parser::parse_dex_files<details::OAT79_t>() {

     std::unique_ptr<DexFile>& oat_dex_file = oat.oat_dex_files_[i];
     if (DEX::is_dex(data_v)) {
-      std::unique_ptr<DEX::File> dexfile = DEX::Parser::parse(std::move(data_v), name);
+      std::unique_ptr<DEX::File> dexfile =
+          DEX::Parser::parse(std::move(data_v), name);
       dexfile->location(oat_dex_file->location());
       const uint32_t nb_classes = dexfile->header().nb_classes();

@@ -132,22 +138,29 @@ void Parser::parse_dex_files<details::OAT79_t>() {
       oat.dex_files_.push_back(std::move(dexfile));

       uint32_t classes_offset = classes_offsets_offset[i];
-      oat_dex_file->classes_offsets_.reserve(nb_classes);
+      const uint64_t stream_size = stream_->size();
+      if (classes_offset < stream_size) {
+        const uint64_t max_offsets =
+            (stream_size - classes_offset) / sizeof(uint32_t);
+        const auto reserve = std::min<size_t>(max_offsets, nb_classes);
+        oat_dex_file->classes_offsets_.reserve(reserve);
+      }

       for (size_t cls_idx = 0; cls_idx < nb_classes; ++cls_idx) {
-        if (auto off = stream_->peek<uint32_t>(classes_offset + cls_idx * sizeof(uint32_t))) {
+        if (auto off = stream_->peek<uint32_t>(classes_offset +
+                                               cls_idx * sizeof(uint32_t)))
+        {
           oat_dex_file->classes_offsets_.push_back(*off);
         } else {
           break;
         }
       }
     } else {
-      LIEF_WARN("{} ({}) at  0x{:x} is not a DEX file", name, oat_dex_file->location(), stream_->pos());
+      LIEF_WARN("{} ({}) at {:#x} is not a DEX file", name,
+                oat_dex_file->location(), stream_->pos());
     }
   }
 }


-
-} // Namespace OAT
-} // Namespace LIEF
+} // namespace LIEF::OAT
diff --git a/deps/LIEF/src/OAT/utils.cpp b/deps/LIEF/src/OAT/utils.cpp
index 81a57f18e8a..815cb207f6e 100644
--- a/deps/LIEF/src/OAT/utils.cpp
+++ b/deps/LIEF/src/OAT/utils.cpp
@@ -1,6 +1,6 @@

-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -23,8 +23,10 @@
 #include "LIEF/ELF/utils.hpp"
 #include "frozen.hpp"

-namespace LIEF {
-namespace OAT {
+#include "internal_utils.hpp"
+
+
+namespace LIEF::OAT {

 bool is_oat(const std::string& file) {
   if (!ELF::is_elf(file)) {
@@ -48,10 +50,10 @@ bool is_oat(const std::vector<uint8_t>& raw) {
 bool is_oat(const ELF::Binary& elf) {
   if (const auto* oatdata = elf.get_dynamic_symbol("oatdata")) {
     span<const uint8_t> header =
-      elf.get_content_from_virtual_address(oatdata->value(), sizeof(details::oat_magic));
+        elf.get_content_from_virtual_address(oatdata->value(),
+                                             sizeof(details::oat_magic));
     return std::equal(std::begin(header), std::end(header),
                       std::begin(details::oat_magic));
-
   }
   return false;
 }
@@ -81,35 +83,36 @@ oat_version_t version(const std::vector<uint8_t>& raw) {

 oat_version_t version(const ELF::Binary& elf) {
   if (const auto* oatdata = elf.get_dynamic_symbol("oatdata")) {
-    span<const uint8_t> header =
-      elf.get_content_from_virtual_address(oatdata->value() + sizeof(details::oat_magic),
-                                           sizeof(details::oat_version));
+    span<const uint8_t> header = elf.get_content_from_virtual_address(
+        oatdata->value() + sizeof(details::oat_magic), sizeof(details::oat_version)
+    );

     if (header.size() != sizeof(details::oat_version)) {
       return 0;
     }
-    return std::stoul(std::string(reinterpret_cast<const char*>(header.data()), 3));
+
+    return static_cast<oat_version_t>(parse_android_version(
+        reinterpret_cast<const char*>(header.data()), header.size()
+    ));
   }
   return 0;
 }

 Android::ANDROID_VERSIONS android_version(oat_version_t version) {
-  CONST_MAP(oat_version_t, Android::ANDROID_VERSIONS, 6) oat2android {
-    { 64,  Android::ANDROID_VERSIONS::VERSION_601 },
-    { 79,  Android::ANDROID_VERSIONS::VERSION_700 },
-    { 88,  Android::ANDROID_VERSIONS::VERSION_712 },
-    { 124, Android::ANDROID_VERSIONS::VERSION_800 },
-    { 131, Android::ANDROID_VERSIONS::VERSION_810 },
-    { 138, Android::ANDROID_VERSIONS::VERSION_900 },
+  CONST_MAP(oat_version_t, Android::ANDROID_VERSIONS, 6)
+  oat2android{
+      {64, Android::ANDROID_VERSIONS::VERSION_601},
+      {79, Android::ANDROID_VERSIONS::VERSION_700},
+      {88, Android::ANDROID_VERSIONS::VERSION_712},
+      {124, Android::ANDROID_VERSIONS::VERSION_800},
+      {131, Android::ANDROID_VERSIONS::VERSION_810},
+      {138, Android::ANDROID_VERSIONS::VERSION_900},

   };
-  auto   it  = oat2android.lower_bound(version);
-  return it == oat2android.end() ?
-               Android::ANDROID_VERSIONS::VERSION_UNKNOWN : it->second;
+  auto it = oat2android.lower_bound(version);
+  return it == oat2android.end() ? Android::ANDROID_VERSIONS::VERSION_UNKNOWN :
+                                   it->second;
 }


-
-
-} // namespace OAT
-} // namespace LIEF
+} // namespace LIEF::OAT
diff --git a/deps/LIEF/src/ObjC/objc.cpp b/deps/LIEF/src/ObjC/objc.cpp
index 509781bd06b..e80fe7a7d0b 100644
--- a/deps/LIEF/src/ObjC/objc.cpp
+++ b/deps/LIEF/src/ObjC/objc.cpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -12,8 +12,10 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
+// NOLINTBEGIN
 #include "LIEF/ObjC/Metadata.hpp"
 #include "LIEF/ObjC/Class.hpp"
+#include "LIEF/ObjC/Category.hpp"
 #include "LIEF/MachO/Binary.hpp"

 #include "logging.hpp"
@@ -43,6 +45,9 @@ class MethodIt {};
 class Protocol {};
 class ProtocolIt {};

+class Category {};
+class CategoryIt {};
+
 class IVar {};
 class IVarIt {};

@@ -54,8 +59,7 @@ class PropertyIt {};
 // ObjC/Metadata.hpp
 // ----------------------------------------------------------------------------
 Metadata::Metadata(std::unique_ptr<details::Metadata>) :
-  impl_(nullptr)
-{}
+  impl_(nullptr) {}

 std::string Metadata::to_decl(const DeclOpt&) const {
   return "";
@@ -69,11 +73,16 @@ Metadata::protocols_it Metadata::protocols() const {
   return make_empty_iterator<Protocol>();
 }

-std::unique_ptr<Class> Metadata::get_class(const std::string&/*name*/) const {
+Metadata::categories_it Metadata::categories() const {
+  return make_empty_iterator<Category>();
+}
+
+std::unique_ptr<Class> Metadata::get_class(const std::string& /*name*/) const {
   return nullptr;
 }

-std::unique_ptr<Protocol> Metadata::get_protocol(const std::string&/*name*/) const {
+std::unique_ptr<Protocol>
+    Metadata::get_protocol(const std::string& /*name*/) const {
   return nullptr;
 }

@@ -82,27 +91,30 @@ Metadata::~Metadata() = default;
 // ----------------------------------------------------------------------------
 // ObjC/Class.hpp
 // ----------------------------------------------------------------------------
+Class::Iterator::Iterator() :
+  impl_(nullptr) {}
+
 Class::Iterator::Iterator(std::unique_ptr<details::ClassIt>) :
-  impl_(nullptr)
-{}
+  impl_(nullptr) {}

 Class::Iterator::Iterator(const Iterator&) :
-  impl_(nullptr)
-{}
+  impl_(nullptr) {}
+
+Class::Iterator& Class::Iterator::operator=(const Iterator&) {
+  return *this;
+}

-Class::Iterator::Iterator(Iterator&&) noexcept :
-  impl_(nullptr)
-{}
+Class::Iterator::Iterator(Iterator&&) noexcept = default;
+Class::Iterator& Class::Iterator::operator=(Iterator&&) noexcept = default;

 Class::Iterator::~Iterator() = default;

-bool operator==(const Class::Iterator&,
-                const Class::Iterator&)
-{
+bool operator==(const Class::Iterator&, const Class::Iterator&) {
   return true;
 }

 Class::Iterator& Class::Iterator::operator++() {
+  cached_.reset();
   return *this;
 }

@@ -110,13 +122,22 @@ Class::Iterator& Class::Iterator::operator--() {
   return *this;
 }

-std::unique_ptr<Class> Class::Iterator::operator*() const {
+void Class::Iterator::load() const {}
+
+const Class& Class::Iterator::operator*() const {
+  return *cached_;
+}
+
+const Class* Class::Iterator::operator->() const {
+  return nullptr;
+}
+
+std::unique_ptr<Class> Class::Iterator::yield() {
   return nullptr;
 }

 Class::Class(std::unique_ptr<details::Class> impl) :
-  impl_(std::move(impl))
-{}
+  impl_(std::move(impl)) {}

 std::string Class::name() const {
   return "";
@@ -135,6 +156,14 @@ std::unique_ptr<Class> Class::super_class() const {
   return nullptr;
 }

+std::string Class::super_name() const {
+  return "";
+}
+
+std::string Class::demangled_super_name() const {
+  return "";
+}
+
 bool Class::is_meta() const {
   return false;
 }
@@ -160,23 +189,25 @@ Class::~Class() = default;
 // ----------------------------------------------------------------------------
 // ObjC/Protocol.hpp
 // ----------------------------------------------------------------------------
+Protocol::Iterator::Iterator() :
+  impl_(nullptr) {}
+
 Protocol::Iterator::Iterator(std::unique_ptr<details::ProtocolIt>) :
-  impl_(nullptr)
-{}
+  impl_(nullptr) {}

 Protocol::Iterator::Iterator(const Iterator&) :
-  impl_(nullptr)
-{}
+  impl_(nullptr) {}
+
+Protocol::Iterator& Protocol::Iterator::operator=(const Iterator&) {
+  return *this;
+}

-Protocol::Iterator::Iterator(Iterator&&) noexcept :
-  impl_(nullptr)
-{}
+Protocol::Iterator::Iterator(Iterator&&) noexcept = default;
+Protocol::Iterator& Protocol::Iterator::operator=(Iterator&&) noexcept = default;

 Protocol::Iterator::~Iterator() = default;

-bool operator==(const Protocol::Iterator&,
-                const Protocol::Iterator&)
-{
+bool operator==(const Protocol::Iterator&, const Protocol::Iterator&) {
   return true;
 }

@@ -188,13 +219,22 @@ Protocol::Iterator& Protocol::Iterator::operator--() {
   return *this;
 }

-std::unique_ptr<Protocol> Protocol::Iterator::operator*() const {
+void Protocol::Iterator::load() const {}
+
+const Protocol& Protocol::Iterator::operator*() const {
+  return *cached_;
+}
+
+const Protocol* Protocol::Iterator::operator->() const {
+  return nullptr;
+}
+
+std::unique_ptr<Protocol> Protocol::Iterator::yield() {
   return nullptr;
 }

 Protocol::Protocol(std::unique_ptr<details::Protocol> impl) :
-  impl_(std::move(impl))
-{}
+  impl_(std::move(impl)) {}

 Protocol::~Protocol() = default;

@@ -202,6 +242,10 @@ std::string Protocol::mangled_name() const {
   return "";
 }

+Protocol::protocols_it Protocol::protocols() const {
+  return make_empty_iterator<Protocol>();
+}
+
 std::string Protocol::to_decl(const DeclOpt&) const {
   return "";
 }
@@ -218,26 +262,104 @@ Protocol::properties_it Protocol::properties() const {
   return make_empty_iterator<Property>();
 }

+// ----------------------------------------------------------------------------
+// ObjC/Category.hpp
+// ----------------------------------------------------------------------------
+Category::Iterator::Iterator() :
+  impl_(nullptr) {}
+
+Category::Iterator::Iterator(std::unique_ptr<details::CategoryIt>) :
+  impl_(nullptr) {}
+
+Category::Iterator::Iterator(const Iterator&) :
+  impl_(nullptr) {}
+
+Category::Iterator& Category::Iterator::operator=(const Iterator&) {
+  return *this;
+}
+
+Category::Iterator::Iterator(Iterator&&) noexcept = default;
+Category::Iterator& Category::Iterator::operator=(Iterator&&) noexcept = default;
+
+Category::Iterator::~Iterator() = default;
+
+bool operator==(const Category::Iterator&, const Category::Iterator&) {
+  return true;
+}
+
+Category::Iterator& Category::Iterator::operator++() {
+  return *this;
+}
+
+Category::Iterator& Category::Iterator::operator--() {
+  return *this;
+}
+
+void Category::Iterator::load() const {}
+
+const Category& Category::Iterator::operator*() const {
+  return *cached_;
+}
+
+const Category* Category::Iterator::operator->() const {
+  return nullptr;
+}
+
+std::unique_ptr<Category> Category::Iterator::yield() {
+  return nullptr;
+}
+
+Category::Category(std::unique_ptr<details::Category> impl) :
+  impl_(std::move(impl)) {}
+
+Category::~Category() = default;
+
+std::string Category::name() const {
+  return "";
+}
+
+std::string Category::class_name() const {
+  return "";
+}
+
+std::string Category::to_decl(const DeclOpt&) const {
+  return "";
+}
+
+Category::methods_t Category::methods() const {
+  return make_empty_iterator<Method>();
+}
+
+Category::protocols_t Category::protocols() const {
+  return make_empty_iterator<Protocol>();
+}
+
+Category::properties_t Category::properties() const {
+  return make_empty_iterator<Property>();
+}
+
 // ----------------------------------------------------------------------------
 // ObjC/Property.hpp
 // ----------------------------------------------------------------------------
+Property::Iterator::Iterator() :
+  impl_(nullptr) {}
+
 Property::Iterator::Iterator(std::unique_ptr<details::PropertyIt>) :
-  impl_(nullptr)
-{}
+  impl_(nullptr) {}

 Property::Iterator::Iterator(const Iterator&) :
-  impl_(nullptr)
-{}
+  impl_(nullptr) {}

-Property::Iterator::Iterator(Iterator&&) noexcept :
-  impl_(nullptr)
-{}
+Property::Iterator& Property::Iterator::operator=(const Iterator&) {
+  return *this;
+}
+
+Property::Iterator::Iterator(Iterator&&) noexcept = default;
+Property::Iterator& Property::Iterator::operator=(Iterator&&) noexcept = default;

 Property::Iterator::~Iterator() = default;

-bool operator==(const Property::Iterator&,
-                const Property::Iterator&)
-{
+bool operator==(const Property::Iterator&, const Property::Iterator&) {
   return true;
 }

@@ -249,13 +371,22 @@ Property::Iterator& Property::Iterator::operator--() {
   return *this;
 }

-std::unique_ptr<Property> Property::Iterator::operator*() const {
+void Property::Iterator::load() const {}
+
+const Property& Property::Iterator::operator*() const {
+  return *cached_;
+}
+
+const Property* Property::Iterator::operator->() const {
+  return nullptr;
+}
+
+std::unique_ptr<Property> Property::Iterator::yield() {
   return nullptr;
 }

 Property::Property(std::unique_ptr<details::Property> impl) :
-  impl_(std::move(impl))
-{}
+  impl_(std::move(impl)) {}

 Property::~Property() = default;

@@ -271,23 +402,25 @@ std::string Property::attribute() const {
 // ----------------------------------------------------------------------------
 // ObjC/Method.hpp
 // ----------------------------------------------------------------------------
+Method::Iterator::Iterator() :
+  impl_(nullptr) {}
+
 Method::Iterator::Iterator(std::unique_ptr<details::MethodIt>) :
-  impl_(nullptr)
-{}
+  impl_(nullptr) {}

 Method::Iterator::Iterator(const Iterator&) :
-  impl_(nullptr)
-{}
+  impl_(nullptr) {}
+
+Method::Iterator& Method::Iterator::operator=(const Iterator&) {
+  return *this;
+}

-Method::Iterator::Iterator(Iterator&&) noexcept :
-  impl_(nullptr)
-{}
+Method::Iterator::Iterator(Iterator&&) noexcept = default;
+Method::Iterator& Method::Iterator::operator=(Iterator&&) noexcept = default;

 Method::Iterator::~Iterator() = default;

-bool operator==(const Method::Iterator&,
-                const Method::Iterator&)
-{
+bool operator==(const Method::Iterator&, const Method::Iterator&) {
   return true;
 }

@@ -299,13 +432,22 @@ Method::Iterator& Method::Iterator::operator--() {
   return *this;
 }

-std::unique_ptr<Method> Method::Iterator::operator*() const {
+void Method::Iterator::load() const {}
+
+const Method& Method::Iterator::operator*() const {
+  return *cached_;
+}
+
+const Method* Method::Iterator::operator->() const {
+  return nullptr;
+}
+
+std::unique_ptr<Method> Method::Iterator::yield() {
   return nullptr;
 }

 Method::Method(std::unique_ptr<details::Method> impl) :
-  impl_(std::move(impl))
-{}
+  impl_(std::move(impl)) {}

 Method::~Method() = default;

@@ -328,23 +470,25 @@ bool Method::is_instance() const {
 // ----------------------------------------------------------------------------
 // ObjC/IVar.hpp
 // ----------------------------------------------------------------------------
+IVar::Iterator::Iterator() :
+  impl_(nullptr) {}
+
 IVar::Iterator::Iterator(std::unique_ptr<details::IVarIt>) :
-  impl_(nullptr)
-{}
+  impl_(nullptr) {}

 IVar::Iterator::Iterator(const Iterator&) :
-  impl_(nullptr)
-{}
+  impl_(nullptr) {}
+
+IVar::Iterator& IVar::Iterator::operator=(const Iterator&) {
+  return *this;
+}

-IVar::Iterator::Iterator(Iterator&&) noexcept :
-  impl_(nullptr)
-{}
+IVar::Iterator::Iterator(Iterator&&) noexcept = default;
+IVar::Iterator& IVar::Iterator::operator=(Iterator&&) noexcept = default;

 IVar::Iterator::~Iterator() = default;

-bool operator==(const IVar::Iterator&,
-                const IVar::Iterator&)
-{
+bool operator==(const IVar::Iterator&, const IVar::Iterator&) {
   return true;
 }

@@ -356,13 +500,22 @@ IVar::Iterator& IVar::Iterator::operator--() {
   return *this;
 }

-std::unique_ptr<IVar> IVar::Iterator::operator*() const {
+void IVar::Iterator::load() const {}
+
+const IVar& IVar::Iterator::operator*() const {
+  return *cached_;
+}
+
+const IVar* IVar::Iterator::operator->() const {
+  return nullptr;
+}
+
+std::unique_ptr<IVar> IVar::Iterator::yield() {
   return nullptr;
 }

 IVar::IVar(std::unique_ptr<details::IVar> impl) :
-  impl_(std::move(impl))
-{}
+  impl_(std::move(impl)) {}

 IVar::~IVar() = default;

@@ -375,3 +528,4 @@ std::string IVar::mangled_type() const {
 }

 }
+// NOLINTEND
diff --git a/deps/LIEF/src/Object.cpp b/deps/LIEF/src/Object.cpp
index 141b5888160..f8e4161f63d 100644
--- a/deps/LIEF/src/Object.cpp
+++ b/deps/LIEF/src/Object.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/deps/LIEF/src/Object.tcc b/deps/LIEF/src/Object.tcc
index ad411d47723..f3ad44ae823 100644
--- a/deps/LIEF/src/Object.tcc
+++ b/deps/LIEF/src/Object.tcc
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -30,4 +30,3 @@ Object::output_const_t<T> Object::as() const {


 } // namespace LIEF
-
diff --git a/deps/LIEF/src/PDB/pdb.cpp b/deps/LIEF/src/PDB/pdb.cpp
index ee323a941e0..1e1d121ab2f 100644
--- a/deps/LIEF/src/PDB/pdb.cpp
+++ b/deps/LIEF/src/PDB/pdb.cpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -12,6 +12,8 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
+
+// NOLINTBEGIN
 #include "LIEF/PDB/DebugInfo.hpp"
 #include "LIEF/PDB/CompilationUnit.hpp"
 #include "LIEF/PDB/PublicSymbol.hpp"
@@ -62,6 +64,8 @@ class AttributeIt {};

 class Method {};
 class MethodIt {};
+
+class EnumEntry {};
 }

 // ----------------------------------------------------------------------------
@@ -79,7 +83,11 @@ DebugInfo::types_it DebugInfo::types() const {
   return make_empty_iterator<Type>();
 }

-std::unique_ptr<Type> DebugInfo::find_type(const std::string&/*name*/) const {
+std::unique_ptr<Type> DebugInfo::find_type(const std::string& /*name*/) const {
+  return nullptr;
+}
+
+std::unique_ptr<Type> DebugInfo::find_type(uint32_t /*index*/) const {
   return nullptr;
 }

@@ -96,7 +104,7 @@ std::string DebugInfo::to_string() const {
 }

 std::unique_ptr<PublicSymbol>
-DebugInfo::find_public_symbol(const std::string&) const {
+    DebugInfo::find_public_symbol(const std::string&) const {
   return nullptr;
 }

@@ -105,7 +113,8 @@ std::unique_ptr<DebugInfo> DebugInfo::from_file(const std::string&) {
   return nullptr;
 }

-optional<uint64_t> DebugInfo::find_function_address(const std::string& /*name*/) const {
+optional<uint64_t>
+    DebugInfo::find_function_address(const std::string& /*name*/) const {
   return nullopt();
 }

@@ -121,8 +130,7 @@ bool is_pdb(const std::string& /*path*/) {
 // PDB/CompilationUnit.hpp
 // ----------------------------------------------------------------------------
 CompilationUnit::CompilationUnit(std::unique_ptr<details::CompilationUnit> impl) :
-  impl_(std::move(impl))
-{}
+  impl_(std::move(impl)) {}

 CompilationUnit::~CompilationUnit() = default;

@@ -148,23 +156,27 @@ std::unique_ptr<BuildMetadata> CompilationUnit::build_metadata() const {
   return nullptr;
 }

+CompilationUnit::Iterator::Iterator() :
+  impl_(nullptr) {}
+
 CompilationUnit::Iterator::Iterator(std::unique_ptr<details::CompilationUnitIt>) :
-  impl_(nullptr)
-{}
+  impl_(nullptr) {}

 CompilationUnit::Iterator::Iterator(const Iterator&) :
-  impl_(nullptr)
-{}
+  impl_(nullptr) {}
+
+CompilationUnit::Iterator& CompilationUnit::Iterator::operator=(const Iterator&) {
+  return *this;
+}

-CompilationUnit::Iterator::Iterator(Iterator&&) :
-  impl_(nullptr)
-{}
+CompilationUnit::Iterator::Iterator(Iterator&&) noexcept = default;
+CompilationUnit::Iterator&
+    CompilationUnit::Iterator::operator=(Iterator&&) noexcept = default;

 CompilationUnit::Iterator::~Iterator() = default;

 bool operator==(const CompilationUnit::Iterator&,
-                const CompilationUnit::Iterator&)
-{
+                const CompilationUnit::Iterator&) {
   return true;
 }

@@ -176,7 +188,17 @@ CompilationUnit::Iterator& CompilationUnit::Iterator::operator--() {
   return *this;
 }

-std::unique_ptr<CompilationUnit> CompilationUnit::Iterator::operator*() const {
+void CompilationUnit::Iterator::load() const {}
+
+const CompilationUnit& CompilationUnit::Iterator::operator*() const {
+  return *cached_;
+}
+
+const CompilationUnit* CompilationUnit::Iterator::operator->() const {
+  return nullptr;
+}
+
+std::unique_ptr<CompilationUnit> CompilationUnit::Iterator::yield() {
   return nullptr;
 }

@@ -184,33 +206,39 @@ std::string CompilationUnit::to_string() const {
   return "";
 }

+std::string CompilationUnit::to_decl(const DeclOpt& /*opt*/) const {
+  return "";
+}
+
 // ----------------------------------------------------------------------------
 // PDB/PublicSymbol.hpp
 // ----------------------------------------------------------------------------
 PublicSymbol::PublicSymbol(std::unique_ptr<details::PublicSymbol> impl) :
-  impl_(std::move(impl))
-{}
+  impl_(std::move(impl)) {}

 PublicSymbol::~PublicSymbol() = default;


+PublicSymbol::Iterator::Iterator() :
+  impl_(nullptr) {}
+
 PublicSymbol::Iterator::Iterator(std::unique_ptr<details::PublicSymbolIt>) :
-  impl_(nullptr)
-{}
+  impl_(nullptr) {}

 PublicSymbol::Iterator::Iterator(const Iterator&) :
-  impl_(nullptr)
-{}
+  impl_(nullptr) {}
+
+PublicSymbol::Iterator& PublicSymbol::Iterator::operator=(const Iterator&) {
+  return *this;
+}

-PublicSymbol::Iterator::Iterator(Iterator&&) :
-  impl_(nullptr)
-{}
+PublicSymbol::Iterator::Iterator(Iterator&&) noexcept = default;
+PublicSymbol::Iterator&
+    PublicSymbol::Iterator::operator=(Iterator&&) noexcept = default;

 PublicSymbol::Iterator::~Iterator() = default;

-bool operator==(const PublicSymbol::Iterator&,
-                const PublicSymbol::Iterator&)
-{
+bool operator==(const PublicSymbol::Iterator&, const PublicSymbol::Iterator&) {
   return true;
 }

@@ -218,7 +246,17 @@ PublicSymbol::Iterator& PublicSymbol::Iterator::operator++() {
   return *this;
 }

-std::unique_ptr<PublicSymbol> PublicSymbol::Iterator::operator*() const {
+void PublicSymbol::Iterator::load() const {}
+
+const PublicSymbol& PublicSymbol::Iterator::operator*() const {
+  return *cached_;
+}
+
+const PublicSymbol* PublicSymbol::Iterator::operator->() const {
+  return nullptr;
+}
+
+std::unique_ptr<PublicSymbol> PublicSymbol::Iterator::yield() {
   return nullptr;
 }

@@ -246,29 +284,30 @@ std::string PublicSymbol::to_string() const {
 // PDB/Function.hpp
 // ----------------------------------------------------------------------------
 Function::Function(std::unique_ptr<details::Function> impl) :
-  impl_(std::move(impl))
-{}
+  impl_(std::move(impl)) {}

 Function::~Function() = default;


+Function::Iterator::Iterator() :
+  impl_(nullptr) {}
+
 Function::Iterator::Iterator(std::unique_ptr<details::FunctionIt>) :
-  impl_(nullptr)
-{}
+  impl_(nullptr) {}

 Function::Iterator::Iterator(const Iterator&) :
-  impl_(nullptr)
-{}
+  impl_(nullptr) {}

-Function::Iterator::Iterator(Iterator&&) :
-  impl_(nullptr)
-{}
+Function::Iterator& Function::Iterator::operator=(const Iterator&) {
+  return *this;
+}
+
+Function::Iterator::Iterator(Iterator&&) noexcept = default;
+Function::Iterator& Function::Iterator::operator=(Iterator&&) noexcept = default;

 Function::Iterator::~Iterator() = default;

-bool operator==(const Function::Iterator&,
-                const Function::Iterator&)
-{
+bool operator==(const Function::Iterator&, const Function::Iterator&) {
   return true;
 }

@@ -276,7 +315,17 @@ Function::Iterator& Function::Iterator::operator++() {
   return *this;
 }

-std::unique_ptr<Function> Function::Iterator::operator*() const {
+void Function::Iterator::load() const {}
+
+const Function& Function::Iterator::operator*() const {
+  return *cached_;
+}
+
+const Function* Function::Iterator::operator->() const {
+  return nullptr;
+}
+
+std::unique_ptr<Function> Function::Iterator::yield() {
   return nullptr;
 }

@@ -304,10 +353,14 @@ std::string Function::to_string() const {
   return "";
 }

+std::string Function::to_decl(const DeclOpt& /*opt*/) const {
+  return "";
+}
+
 // ----------------------------------------------------------------------------
 // PDB/Type.hpp
 // ----------------------------------------------------------------------------
-std::unique_ptr<Type> Type::create(std::unique_ptr<details::Type>/* impl*/) {
+std::unique_ptr<Type> Type::create(std::unique_ptr<details::Type> /* impl*/) {
   return nullptr;
 }

@@ -315,30 +368,43 @@ Type::KIND Type::kind() const {
   return Type::KIND::UNKNOWN;
 }

+optional<std::string> Type::name() const {
+  return nullopt();
+}
+
+optional<uint64_t> Type::size() const {
+  return nullopt();
+}
+
+std::string Type::to_decl(const DeclOpt& /*opt*/) const {
+  return "";
+}
+
 Type::~Type() = default;


 Type::Type(std::unique_ptr<details::Type> impl) :
-  impl_(std::move(impl))
-{}
+  impl_(std::move(impl)) {}
+
+Type::Iterator::Iterator() :
+  impl_(nullptr) {}

 Type::Iterator::Iterator(std::unique_ptr<details::TypeIt>) :
-  impl_(nullptr)
-{}
+  impl_(nullptr) {}

 Type::Iterator::Iterator(const Iterator&) :
-  impl_(nullptr)
-{}
+  impl_(nullptr) {}
+
+Type::Iterator& Type::Iterator::operator=(const Iterator&) {
+  return *this;
+}

-Type::Iterator::Iterator(Iterator&&) noexcept :
-  impl_(nullptr)
-{}
+Type::Iterator::Iterator(Iterator&&) noexcept = default;
+Type::Iterator& Type::Iterator::operator=(Iterator&&) noexcept = default;

 Type::Iterator::~Iterator() = default;

-bool operator==(const Type::Iterator&,
-                const Type::Iterator&)
-{
+bool operator==(const Type::Iterator&, const Type::Iterator&) {
   return true;
 }

@@ -346,7 +412,17 @@ Type::Iterator& Type::Iterator::operator++() {
   return *this;
 }

-std::unique_ptr<Type> Type::Iterator::operator*() const {
+void Type::Iterator::load() const {}
+
+const Type& Type::Iterator::operator*() const {
+  return *cached_;
+}
+
+const Type* Type::Iterator::operator->() const {
+  return nullptr;
+}
+
+std::unique_ptr<Type> Type::Iterator::yield() {
   return nullptr;
 }

@@ -355,11 +431,31 @@ namespace types {
 // ----------------------------------------------------------------------------
 // PDB/types/Simple.hpp
 // ----------------------------------------------------------------------------
+Simple::TYPES Simple::type() const {
+  return TYPES::UNKNOWN;
+}
+
+Simple::MODES Simple::modes() const {
+  return MODES::DIRECT;
+}
+
 Simple::~Simple() = default;

 // ----------------------------------------------------------------------------
 // PDB/types/Array.hpp
 // ----------------------------------------------------------------------------
+size_t Array::numberof_elements() const {
+  return 0;
+}
+
+std::unique_ptr<Type> Array::element_type() const {
+  return nullptr;
+}
+
+std::unique_ptr<Type> Array::index_type() const {
+  return nullptr;
+}
+
 Array::~Array() = default;

 // ----------------------------------------------------------------------------
@@ -378,18 +474,10 @@ ClassLike::methods_iterator ClassLike::methods() const {
   return make_empty_iterator<Method>();
 }

-std::string ClassLike::name() const {
-  return "";
-}
-
 std::string ClassLike::unique_name() const {
   return "";
 }

-uint64_t ClassLike::size() const {
-  return 0;
-}
-
 ClassLike::~ClassLike() = default;

 Class::~Class() = default;
@@ -399,11 +487,51 @@ Interface::~Interface() = default;
 // ----------------------------------------------------------------------------
 // PDB/types/Enum.hpp
 // ----------------------------------------------------------------------------
+Enum::Entry::Entry(Entry&& other) noexcept = default;
+Enum::Entry& Enum::Entry::operator=(Entry&& other) noexcept = default;
+
+Enum::Entry::~Entry() = default;
+
+Enum::Entry::Entry(std::unique_ptr<details::EnumEntry> impl) :
+  impl_(std::move(impl)) {}
+
+std::string Enum::Entry::name() const {
+  return "";
+}
+
+int64_t Enum::Entry::value() const {
+  return 0;
+}
+
+std::string Enum::unique_name() const {
+  return "";
+}
+
+std::vector<Enum::Entry> Enum::entries() const {
+  return {};
+}
+
+const Type* Enum::underlying_type() const {
+  return nullptr;
+}
+
+optional<Enum::Entry> Enum::find_entry(int64_t /*value*/) const {
+  return nullopt();
+}
+
 Enum::~Enum() = default;

 // ----------------------------------------------------------------------------
 // PDB/types/Function.hpp
 // ----------------------------------------------------------------------------
+std::unique_ptr<Type> Function::return_type() const {
+  return nullptr;
+}
+
+Function::parameters_t Function::parameters() const {
+  return {};
+}
+
 Function::~Function() = default;

 // ----------------------------------------------------------------------------
@@ -433,26 +561,27 @@ Union::~Union() = default;
 // PDB/types/Attribute.hpp
 // ----------------------------------------------------------------------------
 Attribute::Attribute(std::unique_ptr<details::Attribute> impl) :
-  impl_(std::move(impl))
-{}
+  impl_(std::move(impl)) {}
+
+Attribute::Iterator::Iterator() :
+  impl_(nullptr) {}

 Attribute::Iterator::Iterator(std::unique_ptr<details::AttributeIt>) :
-  impl_(nullptr)
-{}
+  impl_(nullptr) {}

 Attribute::Iterator::Iterator(const Iterator&) :
-  impl_(nullptr)
-{}
+  impl_(nullptr) {}

-Attribute::Iterator::Iterator(Iterator&&) noexcept :
-  impl_(nullptr)
-{}
+Attribute::Iterator& Attribute::Iterator::operator=(const Iterator&) {
+  return *this;
+}
+
+Attribute::Iterator::Iterator(Iterator&&) noexcept = default;
+Attribute::Iterator& Attribute::Iterator::operator=(Iterator&&) noexcept = default;

 Attribute::Iterator::~Iterator() = default;

-bool operator==(const Attribute::Iterator&,
-                const Attribute::Iterator&)
-{
+bool operator==(const Attribute::Iterator&, const Attribute::Iterator&) {
   return true;
 }

@@ -460,7 +589,17 @@ Attribute::Iterator& Attribute::Iterator::operator++() {
   return *this;
 }

-std::unique_ptr<Attribute> Attribute::Iterator::operator*() const {
+void Attribute::Iterator::load() const {}
+
+const Attribute& Attribute::Iterator::operator*() const {
+  return *cached_;
+}
+
+const Attribute* Attribute::Iterator::operator->() const {
+  return nullptr;
+}
+
+std::unique_ptr<Attribute> Attribute::Iterator::yield() {
   return nullptr;
 }

@@ -482,26 +621,27 @@ Attribute::~Attribute() = default;
 // PDB/types/Method.hpp
 // ----------------------------------------------------------------------------
 Method::Method(std::unique_ptr<details::Method> impl) :
-  impl_(std::move(impl))
-{}
+  impl_(std::move(impl)) {}
+
+Method::Iterator::Iterator() :
+  impl_(nullptr) {}

 Method::Iterator::Iterator(std::unique_ptr<details::MethodIt>) :
-  impl_(nullptr)
-{}
+  impl_(nullptr) {}

 Method::Iterator::Iterator(const Iterator&) :
-  impl_(nullptr)
-{}
+  impl_(nullptr) {}
+
+Method::Iterator& Method::Iterator::operator=(const Iterator&) {
+  return *this;
+}

-Method::Iterator::Iterator(Iterator&&) noexcept :
-  impl_(nullptr)
-{}
+Method::Iterator::Iterator(Iterator&&) noexcept = default;
+Method::Iterator& Method::Iterator::operator=(Iterator&&) noexcept = default;

 Method::Iterator::~Iterator() = default;

-bool operator==(const Method::Iterator&,
-                const Method::Iterator&)
-{
+bool operator==(const Method::Iterator&, const Method::Iterator&) {
   return true;
 }

@@ -509,7 +649,17 @@ Method::Iterator& Method::Iterator::operator++() {
   return *this;
 }

-std::unique_ptr<Method> Method::Iterator::operator*() const {
+void Method::Iterator::load() const {}
+
+const Method& Method::Iterator::operator*() const {
+  return *cached_;
+}
+
+const Method* Method::Iterator::operator->() const {
+  return nullptr;
+}
+
+std::unique_ptr<Method> Method::Iterator::yield() {
   return nullptr;
 }

@@ -517,6 +667,14 @@ std::string Method::name() const {
   return "";
 }

+Method::TYPE Method::type() const {
+  return TYPE::VANILLA;
+}
+
+Method::ACCESS Method::access() const {
+  return ACCESS::NONE;
+}
+
 Method::~Method() = default;

 }
@@ -525,8 +683,7 @@ Method::~Method() = default;
 // PDB/BuildMetadata.hpp
 // ----------------------------------------------------------------------------
 BuildMetadata::BuildMetadata(std::unique_ptr<details::BuildMetadata> /*impl*/) :
-  impl_(nullptr)
-{}
+  impl_(nullptr) {}

 BuildMetadata::~BuildMetadata() = default;

@@ -565,8 +722,11 @@ std::vector<std::string> BuildMetadata::env() const {
 const char* to_string(BuildMetadata::CPU) {
   return "";
 }
+
 const char* to_string(BuildMetadata::LANG) {
   return "";
 }

+// NOLINTEND
+
 }
diff --git a/deps/LIEF/src/PE/Binary.cpp b/deps/LIEF/src/PE/Binary.cpp
index b11a3369b44..43a5d186599 100644
--- a/deps/LIEF/src/PE/Binary.cpp
+++ b/deps/LIEF/src/PE/Binary.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -16,7 +16,6 @@
 #include <utility>
 #include <algorithm>
 #include <iterator>
-#include <map>
 #include <numeric>
 #include <limits>

@@ -25,13 +24,20 @@
 #include "internal_utils.hpp"

 #include "LIEF/utils.hpp"
-#include "LIEF/BinaryStream/SpanStream.hpp"

 #include "LIEF/PE/hash.hpp"
 #include "LIEF/PE/Binary.hpp"
 #include "LIEF/PE/Builder.hpp"
 #include "LIEF/PE/DataDirectory.hpp"
-#include "LIEF/PE/Debug.hpp"
+#include <LIEF/PE/debug/Debug.hpp>
+#include <LIEF/PE/debug/CodeView.hpp>
+#include <LIEF/PE/debug/Pogo.hpp>
+#include <LIEF/PE/debug/PogoEntry.hpp>
+#include <LIEF/PE/debug/Repro.hpp>
+#include <LIEF/PE/debug/CodeViewPDB.hpp>
+#include <LIEF/PE/debug/VCFeature.hpp>
+#include <LIEF/PE/debug/ExDllCharacteristics.hpp>
+#include <LIEF/PE/debug/FPO.hpp>
 #include "LIEF/PE/EnumToString.hpp"
 #include "LIEF/PE/Export.hpp"
 #include "LIEF/PE/ExportEntry.hpp"
@@ -43,11 +49,8 @@
 #include "LIEF/PE/ResourceDirectory.hpp"
 #include "LIEF/PE/ResourcesManager.hpp"
 #include "LIEF/PE/RichHeader.hpp"
-#include "LIEF/PE/RichEntry.hpp"
 #include "LIEF/PE/Section.hpp"
 #include "LIEF/PE/ExceptionInfo.hpp"
-#include "LIEF/PE/LoadConfigurations/VolatileMetadata.hpp"
-#include "LIEF/PE/exceptions_info/RuntimeFunctionAArch64.hpp"
 #include "LIEF/PE/exceptions_info/RuntimeFunctionX64.hpp"
 #include "LIEF/PE/TLS.hpp"
 #include "LIEF/PE/utils.hpp"
@@ -63,13 +66,12 @@

 #include "internal_utils.hpp"

-namespace LIEF {
-namespace PE {
+
+namespace LIEF::PE {

 Binary::~Binary() = default;
 Binary::Binary() :
-   LIEF::Binary(Binary::FORMATS::PE)
-{}
+  LIEF::Binary(Binary::FORMATS::PE) {}

 inline bool has_hybrid_metadata_ptr(const Binary& pe) {
   const LoadConfiguration* LC = pe.load_configuration();
@@ -85,23 +87,20 @@ inline bool has_hybrid_metadata_ptr(const Binary& pe) {

 template<typename T>
 inline std::unique_ptr<Builder>
-  write_impl(Binary& binary, const Builder::config_t& config, T&& dest)
-{
+    write_impl(Binary& binary, const Builder::config_t& config, T&& dest) {
   auto builder = std::make_unique<Builder>(binary, config);
   builder->build();
   builder->write(dest);
   return builder;
 }

-std::unique_ptr<Builder>
-  Binary::write(const std::string& filename, const Builder::config_t& config)
-{
+std::unique_ptr<Builder> Binary::write(const std::string& filename,
+                                       const Builder::config_t& config) {
   return write_impl(*this, config, filename);
 }

-std::unique_ptr<Builder>
-  Binary::write(std::ostream& os, const Builder::config_t& config)
-{
+std::unique_ptr<Builder> Binary::write(std::ostream& os,
+                                       const Builder::config_t& config) {
   return write_impl(*this, config, os);
 }

@@ -119,8 +118,14 @@ void Binary::remove_tls() {
     return;
   }
   DataDirectory* tls_dir = this->tls_dir();
+
+  if (tls_dir == nullptr) {
+    return;
+  }
+
   const size_t ptr_size = optional_header().magic() == PE_TYPE::PE32 ?
-                          sizeof(uint32_t) : sizeof(uint64_t);
+                              sizeof(uint32_t) :
+                              sizeof(uint64_t);

   const uint64_t imagebase = optional_header().imagebase();

@@ -131,12 +136,12 @@ void Binary::remove_tls() {
   uint32_t tls_cbk_end = 0;

   // Clear the TLS header with 0
-  fill_address(tls_dir->RVA(), tls_dir->size(), 0);
+  fill_address(tls_dir->RVA(), tls_dir->size(), /*value=*/0, VA_TYPES::RVA);

   // Clear the callbacks
   if (uint64_t addr = tls_->addressof_callbacks(); addr > 0) {
     const size_t cbk_size = tls_->callbacks().size() * ptr_size;
-    fill_address(addr, cbk_size, 0);
+    fill_address(addr, cbk_size, /*value=*/0, Binary::VA_TYPES::VA);
     tls_cbk_start = addr - imagebase;
     tls_cbk_end = tls_cbk_start + cbk_size;
   }
@@ -144,25 +149,26 @@ void Binary::remove_tls() {
   // Clear the template data
   if (const auto& data = tls_->addressof_raw_data(); data.first > 0) {
     const size_t size = data.second - data.first;
-    fill_address(data.first, size, 0);
+    fill_address(data.first, size, 0, Binary::VA_TYPES::VA);
   }

   // Remove relocations associated with the TLS structure
   for (Relocation& R : relocations()) {
     R.entries_.erase(
-      std::remove_if(R.entries_.begin(), R.entries_.end(),
-        [&] (const std::unique_ptr<RelocationEntry>& E) {
-          const uint32_t addr = E->address();
-          if (tls_cbk_start <= addr && addr < tls_cbk_end) {
-            return true;
-          }
-
-          if (tls_hdr_start <= addr && addr < tls_hdr_end) {
-            return true;
-          }
-          return false;
-        }
-      ), R.entries_.end());
+        std::remove_if(R.entries_.begin(), R.entries_.end(),
+                       [&](const std::unique_ptr<RelocationEntry>& E) {
+                         const uint32_t addr = E->address();
+                         if (tls_cbk_start <= addr && addr < tls_cbk_end) {
+                           return true;
+                         }
+
+                         if (tls_hdr_start <= addr && addr < tls_hdr_end) {
+                           return true;
+                         }
+                         return false;
+                       }),
+        R.entries_.end()
+    );
   }
   // Reset the DataDirectory RVA/size
   tls_dir->RVA(0);
@@ -172,37 +178,32 @@ void Binary::remove_tls() {
   tls_.reset(nullptr);
 }

-result<uint64_t> Binary::offset_to_virtual_address(uint64_t offset, uint64_t slide) const {
-  const auto it_section = std::find_if(std::begin(sections_), std::end(sections_),
-      [offset] (const std::unique_ptr<Section>& section) {
-        return (offset >= section->offset() &&
-                offset < (section->offset() + section->sizeof_raw_data()));
-      });
+result<uint64_t> Binary::offset_to_virtual_address(uint64_t offset,
+                                                   uint64_t slide) const {
+  const uint64_t imagebase = slide > 0 ? slide : optional_header().imagebase();
+  return imagebase + offset_to_rva(offset);
+}

-  if (it_section == std::end(sections_)) {
-    if (slide > 0) {
-      return slide + offset;
-    }
-    return offset;
+uint64_t Binary::offset_to_rva(uint64_t offset) const {
+  if (const Section* section = section_from_offset(offset)) {
+    const uint64_t base_rva = section->virtual_address() - section->offset();
+    return base_rva + offset;
   }
-  const std::unique_ptr<Section>& section = *it_section;
-  const uint64_t base_rva = section->virtual_address() - section->offset();
-  if (slide > 0) {
-    return slide + base_rva + offset;
-  }
-
-  return base_rva + offset;
+  return offset;
 }

 uint64_t Binary::rva_to_offset(uint64_t RVA) const {
-  const auto it_section = std::find_if(std::begin(sections_), std::end(sections_),
-      [RVA] (const std::unique_ptr<Section>& section) {
-        const auto vsize_adj = std::max<uint64_t>(section->virtual_size(), section->sizeof_raw_data());
-        return section->virtual_address() <= RVA &&
-               RVA < (section->virtual_address() + vsize_adj);
-      });
-
-  if (it_section == std::end(sections_)) {
+  const auto it_section =
+      std::find_if(sections_.begin(), sections_.end(),
+                   [RVA](const std::unique_ptr<Section>& section) {
+                     const auto vsize_adj =
+                         std::max<uint64_t>(section->virtual_size(),
+                                            section->sizeof_raw_data());
+                     return section->virtual_address() <= RVA &&
+                            RVA < (section->virtual_address() + vsize_adj);
+                   });
+
+  if (it_section == sections_.end()) {
     // If not found within a section,
     // we assume that rva == offset
     return RVA;
@@ -211,27 +212,29 @@ uint64_t Binary::rva_to_offset(uint64_t RVA) const {

   // rva - virtual_address + pointer_to_raw_data
   uint32_t section_alignment = optional_header().section_alignment();
-  uint32_t file_alignment    = optional_header().file_alignment();
+  uint32_t file_alignment = optional_header().file_alignment();
   if (section_alignment < 0x1000) {
     section_alignment = file_alignment;
   }

-  uint64_t section_va     = section->virtual_address();
+  uint64_t section_va = section->virtual_address();
   uint64_t section_offset = section->pointerto_raw_data();

-  section_va     = align(section_va, section_alignment);
+  section_va = align(section_va, section_alignment);
   section_offset = align(section_offset, file_alignment);
   return ((RVA - section_va) + section_offset);
 }

 const Section* Binary::section_from_offset(uint64_t offset) const {
-  const auto it_section = std::find_if(std::begin(sections_), std::end(sections_),
-      [&offset] (const std::unique_ptr<Section>& section) {
-        return section->pointerto_raw_data() <= offset &&
-               offset < (section->pointerto_raw_data() + section->sizeof_raw_data());
-      });
-
-  if (it_section == std::end(sections_)) {
+  const auto it_section =
+      std::find_if(sections_.begin(), sections_.end(),
+                   [offset](const std::unique_ptr<Section>& section) {
+                     return section->pointerto_raw_data() <= offset &&
+                            offset < (section->pointerto_raw_data() +
+                                      section->sizeof_raw_data());
+                   });
+
+  if (it_section == sections_.end()) {
     return nullptr;
   }

@@ -239,13 +242,15 @@ const Section* Binary::section_from_offset(uint64_t offset) const {
 }

 const Section* Binary::section_from_rva(uint64_t virtual_address) const {
-  const auto it_section = std::find_if(std::begin(sections_), std::end(sections_),
-      [virtual_address] (const std::unique_ptr<Section>& section) {
-        return section->virtual_address() <= virtual_address &&
-               virtual_address < (section->virtual_address() + section->virtual_size());
-      });
-
-  if (it_section == std::end(sections_)) {
+  const auto it_section =
+      std::find_if(sections_.begin(), sections_.end(),
+                   [virtual_address](const std::unique_ptr<Section>& section) {
+                     return section->virtual_address() <= virtual_address &&
+                            virtual_address < (section->virtual_address() +
+                                               section->virtual_size());
+                   });
+
+  if (it_section == sections_.end()) {
     return nullptr;
   }

@@ -254,7 +259,8 @@ const Section* Binary::section_from_rva(uint64_t virtual_address) const {

 const DataDirectory* Binary::data_directory(DataDirectory::TYPES index) const {
   if (static_cast<size_t>(index) < data_directories_.size() &&
-      data_directories_[static_cast<size_t>(index)] != nullptr) {
+      data_directories_[static_cast<size_t>(index)] != nullptr)
+  {
     return data_directories_[static_cast<size_t>(index)].get();
   }
   return nullptr;
@@ -262,9 +268,9 @@ const DataDirectory* Binary::data_directory(DataDirectory::TYPES index) const {

 bool Binary::is_reproducible_build() const {
   const auto it = std::find_if(debug_.begin(), debug_.end(),
-      [] (const std::unique_ptr<Debug>& dbg) {
-        return Repro::classof(dbg.get());
-      });
+                               [](const std::unique_ptr<Debug>& dbg) {
+                                 return Repro::classof(dbg.get());
+                               });
   return it != debug_.end();
 }

@@ -300,26 +306,23 @@ LIEF::Binary::symbols_t Binary::get_abstract_symbols() {
 }


-
 LIEF::Binary::sections_t Binary::get_abstract_sections() {
   LIEF::Binary::sections_t secs;
   secs.reserve(sections_.size());
-  std::transform(std::begin(sections_), std::end(sections_),
-                 std::back_inserter(secs),
-                 [] (const std::unique_ptr<Section>& s) {
-                  return s.get();
-                 });
+  std::transform(sections_.begin(), sections_.end(), std::back_inserter(secs),
+                 [](const std::unique_ptr<Section>& s) { return s.get(); });
   return secs;
 }


 const Section* Binary::get_section(const std::string& name) const {
-  const auto section_it = std::find_if(std::begin(sections_), std::end(sections_),
-      [&name] (const std::unique_ptr<Section>& section) {
-        return section->name() == name;
-      });
+  const auto section_it =
+      std::find_if(sections_.begin(), sections_.end(),
+                   [&name](const std::unique_ptr<Section>& section) {
+                     return section->name() == name;
+                   });

-  if (section_it == std::end(sections_)) {
+  if (section_it == sections_.end()) {
     return nullptr;
   }
   return section_it->get();
@@ -359,7 +362,8 @@ uint32_t Binary::sizeof_headers() const {

   size += sizeof(details::pe_data_directory) * data_directories_.size();
   size += sizeof(details::pe_section) * sections_.size();
-  size = static_cast<uint32_t>(LIEF::align(size, optional_header().file_alignment()));
+  size =
+      static_cast<uint32_t>(LIEF::align(size, optional_header().file_alignment()));

   return size;
 }
@@ -368,7 +372,7 @@ void Binary::remove_section(const std::string& name, bool clear) {
   Section* sec = get_section(name);

   if (sec == nullptr) {
-    LIEF_ERR("Unable to find the section: '{}'", name);
+    LIEF_ERR("Section '{}' not found", name);
     return;
   }

@@ -376,26 +380,29 @@ void Binary::remove_section(const std::string& name, bool clear) {
 }

 void Binary::remove(const Section& section, bool clear) {
-  const auto it_section = std::find_if(std::begin(sections_), std::end(sections_),
-      [&section] (const std::unique_ptr<Section>& s) {
-        return *s == section;
-      });
-
-  if (it_section == std::end(sections_)) {
-    LIEF_ERR("Unable to find section: '{}'", section.name());
+  const auto it_section =
+      std::find_if(sections_.begin(), sections_.end(),
+                   [&section](const std::unique_ptr<Section>& s) {
+                     return *s == section;
+                   });
+
+  if (it_section == sections_.end()) {
+    LIEF_ERR("Section '{}' not found", section.name());
     return;
   }

   std::unique_ptr<Section>& to_remove = *it_section;
-  const size_t section_index = std::distance(std::begin(sections_), it_section);
+  const size_t section_index = std::distance(sections_.begin(), it_section);

   if (section_index < (sections_.size() - 1) && section_index > 0) {
     std::unique_ptr<Section>& previous = sections_[section_index - 1];
-    const size_t raw_size_gap = (to_remove->offset() + to_remove->size()) - (previous->offset() + previous->size());
+    const size_t raw_size_gap = (to_remove->offset() + to_remove->size()) -
+                                (previous->offset() + previous->size());
     previous->size(previous->size() + raw_size_gap);

-    const size_t vsize_size_gap = (to_remove->virtual_address() + to_remove->virtual_size()) -
-                                  (previous->virtual_address() + previous->virtual_size());
+    const size_t vsize_size_gap =
+        (to_remove->virtual_address() + to_remove->virtual_size()) -
+        (previous->virtual_address() + previous->virtual_size());
     previous->virtual_size(previous->virtual_size() + vsize_size_gap);
   }

@@ -413,14 +420,14 @@ void Binary::remove(const Section& section, bool clear) {
 }

 result<uint64_t> Binary::make_space_for_new_section() {
-  const uint32_t shift_value = align(sizeof(details::pe_section), optional_header().file_alignment());
+  const uint32_t shift_value =
+      align(sizeof(details::pe_section), optional_header().file_alignment());

   const uint64_t section_table_offset =
-    dos_header().addressof_new_exeheader() +
-    sizeof(details::pe_header) +
-    header().sizeof_optional_header() +
-    sizeof(details::pe_data_directory) * data_directories_.size() +
-    sizeof(details::pe_section) * sections_.size();
+      dos_header().addressof_new_exeheader() + sizeof(details::pe_header) +
+      header().sizeof_optional_header() +
+      sizeof(details::pe_data_directory) * data_directories_.size() +
+      sizeof(details::pe_section) * sections_.size();

   shift(section_table_offset, shift_value);

@@ -436,10 +443,12 @@ void Binary::shift(uint64_t /*from*/, uint64_t by) {

 uint64_t Binary::last_section_offset() const {
   uint64_t offset = std::accumulate(
-      std::begin(sections_), std::end(sections_), static_cast<uint64_t>(sizeof_headers()),
-      [] (uint64_t offset, const std::unique_ptr<Section>& s) {
-        return std::max<uint64_t>(s->pointerto_raw_data() + s->sizeof_raw_data(), offset);
-      });
+      sections_.begin(), sections_.end(), static_cast<uint64_t>(sizeof_headers()),
+      [](uint64_t offset, const std::unique_ptr<Section>& s) {
+        return std::max<uint64_t>(s->pointerto_raw_data() + s->sizeof_raw_data(),
+                                  offset);
+      }
+  );
   return offset;
 }

@@ -450,29 +459,35 @@ Section* Binary::add_section(const Section& section) {
   }

   auto new_section = std::make_unique<Section>(section);
-  std::vector<uint8_t> content    = as_vector(new_section->content());
-  const auto section_size         = static_cast<uint32_t>(content.size());
-  const auto section_size_aligned = static_cast<uint32_t>(align(section_size, optional_header().file_alignment()));
-  const uint32_t virtual_size     = section_size;
+  std::vector<uint8_t> content = as_vector(new_section->content());
+  const auto section_size = static_cast<uint32_t>(content.size());
+  const auto section_size_aligned =
+      static_cast<uint32_t>(align(section_size,
+                                  optional_header().file_alignment()));
+  const uint32_t virtual_size = section_size;

   content.insert(content.end(), section_size_aligned - section_size, 0);
   new_section->content(content);

   // Compute new section offset
-  uint64_t new_section_offset = align(
-      last_section_offset(), optional_header().file_alignment());
+  uint64_t new_section_offset =
+      align(last_section_offset(), optional_header().file_alignment());

-  LIEF_DEBUG("New section offset: 0x{:010x}", new_section_offset);
+  LIEF_DEBUG("New section offset: {:#012x}", new_section_offset);

   // Compute new section Virtual address
-  const auto section_align = static_cast<uint64_t>(optional_header().section_alignment());
-  const uint64_t new_section_va = align(std::accumulate(
-      std::begin(sections_), std::end(sections_), section_align,
-      [] (uint64_t va, const std::unique_ptr<Section>& s) {
-        return std::max<uint64_t>(s->virtual_address() + s->virtual_size(), va);
-      }), section_align);
-
-  LIEF_DEBUG("New section VA: 0x{:010x}", new_section_va);
+  const auto section_align =
+      static_cast<uint64_t>(optional_header().section_alignment());
+  const uint64_t new_section_va =
+      align(std::accumulate(sections_.begin(), sections_.end(), section_align,
+                            [](uint64_t va, const std::unique_ptr<Section>& s) {
+                              return std::max<uint64_t>(
+                                  s->virtual_address() + s->virtual_size(), va
+                              );
+                            }),
+            section_align);
+
+  LIEF_DEBUG("New section VA: {:#012x}", new_section_va);

   if (new_section->pointerto_raw_data() == 0) {
     new_section->pointerto_raw_data(new_section_offset);
@@ -491,7 +506,7 @@ Section* Binary::add_section(const Section& section) {
   }

   if (sections_.size() >= std::numeric_limits<uint16_t>::max()) {
-    LIEF_INFO("Binary reachs its maximum number of sections");
+    LIEF_INFO("Binary reached maximum number of sections");
     return nullptr;
   }

@@ -533,8 +548,9 @@ LIEF::Binary::relocations_t Binary::get_abstract_relocations() {

 bool Binary::remove_import(const std::string& name) {
   auto it = std::find_if(imports_.begin(), imports_.end(),
-    [&name] (const std::unique_ptr<Import>& imp) { return imp->name() == name; }
-  );
+                         [&name](const std::unique_ptr<Import>& imp) {
+                           return imp->name() == name;
+                         });

   if (it == imports_.end()) {
     return false;
@@ -545,12 +561,13 @@ bool Binary::remove_import(const std::string& name) {
 }

 const Import* Binary::get_import(const std::string& import_name) const {
-  const auto it_import = std::find_if(std::begin(imports_), std::end(imports_),
-      [&import_name] (const std::unique_ptr<Import>& import) {
-        return import->name() == import_name;
-      });
+  const auto it_import =
+      std::find_if(imports_.begin(), imports_.end(),
+                   [&import_name](const std::unique_ptr<Import>& import) {
+                     return import->name() == import_name;
+                   });

-  if (it_import == std::end(imports_)) {
+  if (it_import == imports_.end()) {
     return nullptr;
   }

@@ -567,116 +584,111 @@ ResourceNode* Binary::set_resources(std::unique_ptr<ResourceNode> root) {
 }

 uint32_t Binary::compute_checksum() const {
-  const size_t sizeof_ptr = type_ == PE_TYPE::PE32 ? sizeof(uint32_t) :
-                                                     sizeof(uint64_t);
+  const size_t sizeof_ptr =
+      type_ == PE_TYPE::PE32 ? sizeof(uint32_t) : sizeof(uint64_t);

   ChecksumStream cs(optional_header_.checksum());
   cs // Hash dos header
-    .write(dos_header_.magic())
-    .write(dos_header_.used_bytes_in_last_page())
-    .write(dos_header_.file_size_in_pages())
-    .write(dos_header_.numberof_relocation())
-    .write(dos_header_.header_size_in_paragraphs())
-    .write(dos_header_.minimum_extra_paragraphs())
-    .write(dos_header_.maximum_extra_paragraphs())
-    .write(dos_header_.initial_relative_ss())
-    .write(dos_header_.initial_sp())
-    .write(dos_header_.checksum())
-    .write(dos_header_.initial_ip())
-    .write(dos_header_.initial_relative_cs())
-    .write(dos_header_.addressof_relocation_table())
-    .write(dos_header_.overlay_number())
-    .write(dos_header_.reserved())
-    .write(dos_header_.oem_id())
-    .write(dos_header_.oem_info())
-    .write(dos_header_.reserved2())
-    .write(dos_header_.addressof_new_exeheader())
-    .write(dos_stub_);
+      .write(dos_header_.magic())
+      .write(dos_header_.used_bytes_in_last_page())
+      .write(dos_header_.file_size_in_pages())
+      .write(dos_header_.numberof_relocation())
+      .write(dos_header_.header_size_in_paragraphs())
+      .write(dos_header_.minimum_extra_paragraphs())
+      .write(dos_header_.maximum_extra_paragraphs())
+      .write(dos_header_.initial_relative_ss())
+      .write(dos_header_.initial_sp())
+      .write(dos_header_.checksum())
+      .write(dos_header_.initial_ip())
+      .write(dos_header_.initial_relative_cs())
+      .write(dos_header_.addressof_relocation_table())
+      .write(dos_header_.overlay_number())
+      .write(dos_header_.reserved())
+      .write(dos_header_.oem_id())
+      .write(dos_header_.oem_info())
+      .write(dos_header_.reserved2())
+      .write(dos_header_.addressof_new_exeheader())
+      .write(dos_stub_);

   cs // Hash PE Header
-    .write(header_.signature())
-    .write(static_cast<uint16_t>(header_.machine()))
-    .write(header_.numberof_sections())
-    .write(header_.time_date_stamp())
-    .write(header_.pointerto_symbol_table())
-    .write(header_.numberof_symbols())
-    .write(header_.sizeof_optional_header())
-    .write(static_cast<uint16_t>(header_.characteristics()));
+      .write(header_.signature())
+      .write(static_cast<uint16_t>(header_.machine()))
+      .write(header_.numberof_sections())
+      .write(header_.time_date_stamp())
+      .write(header_.pointerto_symbol_table())
+      .write(header_.numberof_symbols())
+      .write(header_.sizeof_optional_header())
+      .write(static_cast<uint16_t>(header_.characteristics()));

   cs // Hash OptionalHeader
-    .write(static_cast<uint16_t>(optional_header_.magic()))
-    .write(optional_header_.major_linker_version())
-    .write(optional_header_.minor_linker_version())
-    .write(optional_header_.sizeof_code())
-    .write(optional_header_.sizeof_initialized_data())
-    .write(optional_header_.sizeof_uninitialized_data())
-    .write(optional_header_.addressof_entrypoint())
-    .write(optional_header_.baseof_code());
+      .write(static_cast<uint16_t>(optional_header_.magic()))
+      .write(optional_header_.major_linker_version())
+      .write(optional_header_.minor_linker_version())
+      .write(optional_header_.sizeof_code())
+      .write(optional_header_.sizeof_initialized_data())
+      .write(optional_header_.sizeof_uninitialized_data())
+      .write(optional_header_.addressof_entrypoint())
+      .write(optional_header_.baseof_code());

   if (type_ == PE_TYPE::PE32) {
     cs.write(optional_header_.baseof_data());
   }
   cs // Continuation of optional header
-    .write_sized_int(optional_header_.imagebase(), sizeof_ptr)
-    .write(optional_header_.section_alignment())
-    .write(optional_header_.file_alignment())
-    .write(optional_header_.major_operating_system_version())
-    .write(optional_header_.minor_operating_system_version())
-    .write(optional_header_.major_image_version())
-    .write(optional_header_.minor_image_version())
-    .write(optional_header_.major_subsystem_version())
-    .write(optional_header_.minor_subsystem_version())
-    .write(optional_header_.win32_version_value())
-    .write(optional_header_.sizeof_image())
-    .write(optional_header_.sizeof_headers())
-    .write(optional_header_.checksum())
-    .write(static_cast<uint16_t>(optional_header_.subsystem()))
-    .write(static_cast<uint16_t>(optional_header_.dll_characteristics()))
-    .write_sized_int(optional_header_.sizeof_stack_reserve(), sizeof_ptr)
-    .write_sized_int(optional_header_.sizeof_stack_commit(), sizeof_ptr)
-    .write_sized_int(optional_header_.sizeof_heap_reserve(), sizeof_ptr)
-    .write_sized_int(optional_header_.sizeof_heap_commit(), sizeof_ptr)
-    .write(optional_header_.loader_flags())
-    .write(optional_header_.numberof_rva_and_size());
+      .write_sized_int(optional_header_.imagebase(), sizeof_ptr)
+      .write(optional_header_.section_alignment())
+      .write(optional_header_.file_alignment())
+      .write(optional_header_.major_operating_system_version())
+      .write(optional_header_.minor_operating_system_version())
+      .write(optional_header_.major_image_version())
+      .write(optional_header_.minor_image_version())
+      .write(optional_header_.major_subsystem_version())
+      .write(optional_header_.minor_subsystem_version())
+      .write(optional_header_.win32_version_value())
+      .write(optional_header_.sizeof_image())
+      .write(optional_header_.sizeof_headers())
+      .write(optional_header_.checksum())
+      .write(static_cast<uint16_t>(optional_header_.subsystem()))
+      .write(static_cast<uint16_t>(optional_header_.dll_characteristics()))
+      .write_sized_int(optional_header_.sizeof_stack_reserve(), sizeof_ptr)
+      .write_sized_int(optional_header_.sizeof_stack_commit(), sizeof_ptr)
+      .write_sized_int(optional_header_.sizeof_heap_reserve(), sizeof_ptr)
+      .write_sized_int(optional_header_.sizeof_heap_commit(), sizeof_ptr)
+      .write(optional_header_.loader_flags())
+      .write(optional_header_.numberof_rva_and_size());

   for (const std::unique_ptr<DataDirectory>& dir : data_directories_) {
-    cs
-      .write(dir->RVA())
-      .write(dir->size());
+    cs.write(dir->RVA()).write(dir->size());
   }
   // Section headers
   for (const std::unique_ptr<Section>& sec : sections_) {
     std::array<char, 8> name = {0};
     const std::string& sec_name = sec->fullname();
     uint32_t name_length = std::min<uint32_t>(sec_name.size() + 1, sizeof(name));
-    std::copy(sec_name.c_str(), sec_name.c_str() + name_length, std::begin(name));
-    cs
-      .write(name)
-      .write(sec->virtual_size())
-      .write<uint32_t>(sec->virtual_address())
-      .write(sec->sizeof_raw_data())
-      .write(sec->pointerto_raw_data())
-      .write(sec->pointerto_relocation())
-      .write(sec->pointerto_line_numbers())
-      .write(sec->numberof_relocations())
-      .write(sec->numberof_line_numbers())
-      .write(static_cast<uint32_t>(sec->characteristics()));
+    std::copy(sec_name.c_str(), sec_name.c_str() + name_length, name.begin());
+    cs.write(name)
+        .write(sec->virtual_size())
+        .write<uint32_t>(sec->virtual_address())
+        .write(sec->sizeof_raw_data())
+        .write(sec->pointerto_raw_data())
+        .write(sec->pointerto_relocation())
+        .write(sec->pointerto_line_numbers())
+        .write(sec->numberof_relocations())
+        .write(sec->numberof_line_numbers())
+        .write(static_cast<uint32_t>(sec->characteristics()));
   }

   cs.write(section_offset_padding_);

   std::vector<Section*> sections;
   sections.reserve(sections_.size());
-  std::transform(
-    std::begin(sections_), std::end(sections_), std::back_inserter(sections),
-    [] (const std::unique_ptr<Section>& s) { return s.get(); });
+  std::transform(sections_.begin(), sections_.end(), std::back_inserter(sections),
+                 [](const std::unique_ptr<Section>& s) { return s.get(); });

   // Sort by file offset
-  std::sort(std::begin(sections), std::end(sections),
-    [] (const Section* lhs, const Section* rhs) {
-      return  lhs->pointerto_raw_data() < rhs->pointerto_raw_data();
-    }
-  );
+  std::sort(sections.begin(), sections.end(),
+            [](const Section* lhs, const Section* rhs) {
+              return lhs->pointerto_raw_data() < rhs->pointerto_raw_data();
+            });

   uint64_t position = 0;
   for (const Section* sec : sections) {
@@ -690,16 +702,12 @@ uint32_t Binary::compute_checksum() const {
       if (position <= sec->offset() + content.size()) {
         const uint64_t start_p = position - sec->offset();
         const uint64_t size = content.size() - start_p;
-        cs
-          .write(content.data() + start_p, size)
-          .write(pad);
+        cs.write(content.data() + start_p, size).write(pad);
       } else {
-        LIEF_WARN("Overlapping in the padding area");
+        LIEF_WARN("Overlap detected in padding area");
       }
     } else {
-      cs
-        .write(content.data(), content.size())
-        .write(pad);
+      cs.write(content.data(), content.size()).write(pad);
     }
     position = sec->offset() + content.size() + pad.size();
   }
@@ -711,130 +719,125 @@ uint32_t Binary::compute_checksum() const {

 std::vector<uint8_t> Binary::authentihash(ALGORITHMS algo) const {
   CONST_MAP_ALT HMAP = {
-    std::pair(ALGORITHMS::MD5,     hashstream::HASH::MD5),
-    std::pair(ALGORITHMS::SHA_1,   hashstream::HASH::SHA1),
-    std::pair(ALGORITHMS::SHA_256, hashstream::HASH::SHA256),
-    std::pair(ALGORITHMS::SHA_384, hashstream::HASH::SHA384),
-    std::pair(ALGORITHMS::SHA_512, hashstream::HASH::SHA512),
+      std::pair(ALGORITHMS::MD5, hashstream::HASH::MD5),
+      std::pair(ALGORITHMS::SHA_1, hashstream::HASH::SHA1),
+      std::pair(ALGORITHMS::SHA_256, hashstream::HASH::SHA256),
+      std::pair(ALGORITHMS::SHA_384, hashstream::HASH::SHA384),
+      std::pair(ALGORITHMS::SHA_512, hashstream::HASH::SHA512),
   };
   auto it_hash = HMAP.find(algo);
-  if (it_hash == std::end(HMAP)) {
+  if (it_hash == HMAP.end()) {
     LIEF_WARN("Unsupported hash algorithm: {}", to_string(algo));
     return {};
   }
-  const size_t sizeof_ptr = type_ == PE_TYPE::PE32 ? sizeof(uint32_t) : sizeof(uint64_t);
+  const size_t sizeof_ptr =
+      type_ == PE_TYPE::PE32 ? sizeof(uint32_t) : sizeof(uint64_t);
   const hashstream::HASH hash_type = it_hash->second;
   hashstream ios(hash_type);
-  //vector_iostream ios;
+  // vector_iostream ios;
   ios // Hash dos header
-    .write(dos_header_.magic())
-    .write(dos_header_.used_bytes_in_last_page())
-    .write(dos_header_.file_size_in_pages())
-    .write(dos_header_.numberof_relocation())
-    .write(dos_header_.header_size_in_paragraphs())
-    .write(dos_header_.minimum_extra_paragraphs())
-    .write(dos_header_.maximum_extra_paragraphs())
-    .write(dos_header_.initial_relative_ss())
-    .write(dos_header_.initial_sp())
-    .write(dos_header_.checksum())
-    .write(dos_header_.initial_ip())
-    .write(dos_header_.initial_relative_cs())
-    .write(dos_header_.addressof_relocation_table())
-    .write(dos_header_.overlay_number())
-    .write(dos_header_.reserved())
-    .write(dos_header_.oem_id())
-    .write(dos_header_.oem_info())
-    .write(dos_header_.reserved2())
-    .write(dos_header_.addressof_new_exeheader())
-    .write(dos_stub_);
+      .write(dos_header_.magic())
+      .write(dos_header_.used_bytes_in_last_page())
+      .write(dos_header_.file_size_in_pages())
+      .write(dos_header_.numberof_relocation())
+      .write(dos_header_.header_size_in_paragraphs())
+      .write(dos_header_.minimum_extra_paragraphs())
+      .write(dos_header_.maximum_extra_paragraphs())
+      .write(dos_header_.initial_relative_ss())
+      .write(dos_header_.initial_sp())
+      .write(dos_header_.checksum())
+      .write(dos_header_.initial_ip())
+      .write(dos_header_.initial_relative_cs())
+      .write(dos_header_.addressof_relocation_table())
+      .write(dos_header_.overlay_number())
+      .write(dos_header_.reserved())
+      .write(dos_header_.oem_id())
+      .write(dos_header_.oem_info())
+      .write(dos_header_.reserved2())
+      .write(dos_header_.addressof_new_exeheader())
+      .write(dos_stub_);

   ios // Hash PE Header
-    .write(header_.signature())
-    .write(static_cast<uint16_t>(header_.machine()))
-    .write(header_.numberof_sections())
-    .write(header_.time_date_stamp())
-    .write(header_.pointerto_symbol_table())
-    .write(header_.numberof_symbols())
-    .write(header_.sizeof_optional_header())
-    .write(static_cast<uint16_t>(header_.characteristics()));
+      .write(header_.signature())
+      .write(static_cast<uint16_t>(header_.machine()))
+      .write(header_.numberof_sections())
+      .write(header_.time_date_stamp())
+      .write(header_.pointerto_symbol_table())
+      .write(header_.numberof_symbols())
+      .write(header_.sizeof_optional_header())
+      .write(static_cast<uint16_t>(header_.characteristics()));

   ios // Hash OptionalHeader
-    .write(static_cast<uint16_t>(optional_header_.magic()))
-    .write(optional_header_.major_linker_version())
-    .write(optional_header_.minor_linker_version())
-    .write(optional_header_.sizeof_code())
-    .write(optional_header_.sizeof_initialized_data())
-    .write(optional_header_.sizeof_uninitialized_data())
-    .write(optional_header_.addressof_entrypoint())
-    .write(optional_header_.baseof_code());
+      .write(static_cast<uint16_t>(optional_header_.magic()))
+      .write(optional_header_.major_linker_version())
+      .write(optional_header_.minor_linker_version())
+      .write(optional_header_.sizeof_code())
+      .write(optional_header_.sizeof_initialized_data())
+      .write(optional_header_.sizeof_uninitialized_data())
+      .write(optional_header_.addressof_entrypoint())
+      .write(optional_header_.baseof_code());

   if (type_ == PE_TYPE::PE32) {
     ios.write(optional_header_.baseof_data());
   }
   ios // Continuation of optional header
-    .write_sized_int(optional_header_.imagebase(), sizeof_ptr)
-    .write(optional_header_.section_alignment())
-    .write(optional_header_.file_alignment())
-    .write(optional_header_.major_operating_system_version())
-    .write(optional_header_.minor_operating_system_version())
-    .write(optional_header_.major_image_version())
-    .write(optional_header_.minor_image_version())
-    .write(optional_header_.major_subsystem_version())
-    .write(optional_header_.minor_subsystem_version())
-    .write(optional_header_.win32_version_value())
-    .write(optional_header_.sizeof_image())
-    .write(optional_header_.sizeof_headers())
-    // optional_header_.checksum()) is not a part of the hash
-    .write(static_cast<uint16_t>(optional_header_.subsystem()))
-    .write(static_cast<uint16_t>(optional_header_.dll_characteristics()))
-    .write_sized_int(optional_header_.sizeof_stack_reserve(), sizeof_ptr)
-    .write_sized_int(optional_header_.sizeof_stack_commit(), sizeof_ptr)
-    .write_sized_int(optional_header_.sizeof_heap_reserve(), sizeof_ptr)
-    .write_sized_int(optional_header_.sizeof_heap_commit(), sizeof_ptr)
-    .write(optional_header_.loader_flags())
-    .write(optional_header_.numberof_rva_and_size());
+      .write_sized_int(optional_header_.imagebase(), sizeof_ptr)
+      .write(optional_header_.section_alignment())
+      .write(optional_header_.file_alignment())
+      .write(optional_header_.major_operating_system_version())
+      .write(optional_header_.minor_operating_system_version())
+      .write(optional_header_.major_image_version())
+      .write(optional_header_.minor_image_version())
+      .write(optional_header_.major_subsystem_version())
+      .write(optional_header_.minor_subsystem_version())
+      .write(optional_header_.win32_version_value())
+      .write(optional_header_.sizeof_image())
+      .write(optional_header_.sizeof_headers())
+      // optional_header_.checksum() is not part of the hash
+      .write(static_cast<uint16_t>(optional_header_.subsystem()))
+      .write(static_cast<uint16_t>(optional_header_.dll_characteristics()))
+      .write_sized_int(optional_header_.sizeof_stack_reserve(), sizeof_ptr)
+      .write_sized_int(optional_header_.sizeof_stack_commit(), sizeof_ptr)
+      .write_sized_int(optional_header_.sizeof_heap_reserve(), sizeof_ptr)
+      .write_sized_int(optional_header_.sizeof_heap_commit(), sizeof_ptr)
+      .write(optional_header_.loader_flags())
+      .write(optional_header_.numberof_rva_and_size());

   for (const std::unique_ptr<DataDirectory>& dir : data_directories_) {
     if (dir->type() == DataDirectory::TYPES::CERTIFICATE_TABLE) {
       continue;
     }
-    ios
-      .write(dir->RVA())
-      .write(dir->size());
+    ios.write(dir->RVA()).write(dir->size());
   }

   for (const std::unique_ptr<Section>& sec : sections_) {
     std::array<char, 8> name = {0};
     const std::string& sec_name = sec->fullname();
     uint32_t name_length = std::min<uint32_t>(sec_name.size() + 1, sizeof(name));
-    std::copy(sec_name.c_str(), sec_name.c_str() + name_length, std::begin(name));
-    ios
-      .write(name)
-      .write(sec->virtual_size())
-      .write<uint32_t>(sec->virtual_address())
-      .write(sec->sizeof_raw_data())
-      .write(sec->pointerto_raw_data())
-      .write(sec->pointerto_relocation())
-      .write(sec->pointerto_line_numbers())
-      .write(sec->numberof_relocations())
-      .write(sec->numberof_line_numbers())
-      .write(static_cast<uint32_t>(sec->characteristics()));
-  }
-  //LIEF_DEBUG("Section padding at 0x{:x}", ios.tellp());
+    std::copy(sec_name.c_str(), sec_name.c_str() + name_length, name.begin());
+    ios.write(name)
+        .write(sec->virtual_size())
+        .write<uint32_t>(sec->virtual_address())
+        .write(sec->sizeof_raw_data())
+        .write(sec->pointerto_raw_data())
+        .write(sec->pointerto_relocation())
+        .write(sec->pointerto_line_numbers())
+        .write(sec->numberof_relocations())
+        .write(sec->numberof_line_numbers())
+        .write(static_cast<uint32_t>(sec->characteristics()));
+  }
+  // LIEF_DEBUG("Section padding at {:#x}", ios.tellp());
   ios.write(section_offset_padding_);

   std::vector<Section*> sections;
   sections.reserve(sections_.size());
-  std::transform(std::begin(sections_), std::end(sections_),
-                 std::back_inserter(sections),
-                 [] (const std::unique_ptr<Section>& s) {
-                   return s.get();
-                 });
+  std::transform(sections_.begin(), sections_.end(), std::back_inserter(sections),
+                 [](const std::unique_ptr<Section>& s) { return s.get(); });

   // Sort by file offset
-  std::sort(std::begin(sections), std::end(sections),
-            [] (const Section* lhs, const Section* rhs) {
-              return  lhs->pointerto_raw_data() < rhs->pointerto_raw_data();
+  std::sort(sections.begin(), sections.end(),
+            [](const Section* lhs, const Section* rhs) {
+              return lhs->pointerto_raw_data() < rhs->pointerto_raw_data();
             });

   uint64_t position = 0;
@@ -844,48 +847,47 @@ std::vector<uint8_t> Binary::authentihash(ALGORITHMS algo) const {
     }
     span<const uint8_t> pad = sec->padding();
     span<const uint8_t> content = sec->content();
-    LIEF_DEBUG("Authentihash:  Append section {:<8}: [0x{:04x}, 0x{:04x}] + "
-               "[0x{:04x}] = [0x{:04x}, 0x{:04x}]",
-               sec->name(),
-               sec->offset(), sec->offset() + content.size(), pad.size(),
-               sec->offset(), sec->offset() + content.size() + pad.size());
+    LIEF_DEBUG("Authentihash:  Append section {:<8}: [{:#06x}, {:#06x}] + "
+               "[{:#06x}] = [{:#06x}, {:#06x}]",
+               sec->name(), sec->offset(), sec->offset() + content.size(),
+               pad.size(), sec->offset(),
+               sec->offset() + content.size() + pad.size());
     if (/* overlapping */ sec->offset() < position) {
       // Trunc the beginning of the overlap
       if (position <= sec->offset() + content.size()) {
         const uint64_t start_p = position - sec->offset();
         const uint64_t size = content.size() - start_p;
-        ios
-          .write(content.data() + start_p, size)
-          .write(pad);
+        ios.write(content.data() + start_p, size).write(pad);
       } else {
-        LIEF_WARN("Overlapping in the padding area");
+        LIEF_WARN("Overlap detected in padding area");
       }
     } else {
-      ios
-        .write(content.data(), content.size())
-        .write(pad);
+      ios.write(content.data(), content.size()).write(pad);
     }
     position = sec->offset() + content.size() + pad.size();
   }
   if (!overlay_.empty()) {
     const DataDirectory* cert_dir = this->cert_dir();
     if (cert_dir == nullptr) {
-      LIEF_ERR("Can't find the data directory for CERTIFICATE_TABLE");
+      LIEF_ERR("CERTIFICATE_TABLE data directory not found");
       return {};
     }
-    LIEF_DEBUG("Add overlay and omit 0x{:08x} - 0x{:08x}",
-               cert_dir->RVA(), cert_dir->RVA() + cert_dir->size());
-    if (cert_dir->RVA() > 0 && cert_dir->size() > 0 && cert_dir->RVA() >= overlay_offset_) {
+    LIEF_DEBUG("Add overlay and omit {:#010x} - {:#010x}", cert_dir->RVA(),
+               cert_dir->RVA() + cert_dir->size());
+    if (cert_dir->RVA() > 0 && cert_dir->size() > 0 &&
+        cert_dir->RVA() >= overlay_offset_)
+    {
       const uint64_t start_cert_offset = cert_dir->RVA() - overlay_offset_;
-      const uint64_t end_cert_offset   = start_cert_offset + cert_dir->size();
+      const uint64_t end_cert_offset = start_cert_offset + cert_dir->size();
       if (end_cert_offset <= overlay_.size()) {
-        LIEF_DEBUG("Add [0x{:x}, 0x{:x}]", overlay_offset_, overlay_offset_ + start_cert_offset);
-        LIEF_DEBUG("Add [0x{:x}, 0x{:x}]",
-                   overlay_offset_ + end_cert_offset,
-                   overlay_offset_ + end_cert_offset + overlay_.size() - end_cert_offset);
-        ios
-          .write(overlay_.data(), start_cert_offset)
-          .write(overlay_.data() + end_cert_offset, overlay_.size() - end_cert_offset);
+        LIEF_DEBUG("Add [{:#x}, {:#x}]", overlay_offset_,
+                   overlay_offset_ + start_cert_offset);
+        LIEF_DEBUG("Add [{:#x}, {:#x}]", overlay_offset_ + end_cert_offset,
+                   overlay_offset_ + end_cert_offset + overlay_.size() -
+                       end_cert_offset);
+        ios.write(overlay_.data(), start_cert_offset)
+            .write(overlay_.data() + end_cert_offset,
+                   overlay_.size() - end_cert_offset);
       } else {
         ios.write(overlay());
       }
@@ -895,11 +897,11 @@ std::vector<uint8_t> Binary::authentihash(ALGORITHMS algo) const {
   }
   // When something gets wrong with the hash:
   // std::vector<uint8_t> out = ios.raw();
-  // std::ofstream output_file{"/tmp/hash.blob", std::ios::out | std::ios::binary | std::ios::trunc};
-  // if (output_file) {
+  // std::ofstream output_file{"/tmp/hash.blob", std::ios::out | std::ios::binary |
+  // std::ios::trunc}; if (output_file) {
   //   std::copy(
-  //       std::begin(out),
-  //       std::end(out),
+  //       out.begin(),
+  //       out.end(),
   //       std::ostreambuf_iterator<char>(output_file));
   // }
   // std::vector<uint8_t> hash = hashstream(hash_type).write(out).raw();
@@ -909,7 +911,8 @@ std::vector<uint8_t> Binary::authentihash(ALGORITHMS algo) const {
   return hash;
 }

-Signature::VERIFICATION_FLAGS Binary::verify_signature(Signature::VERIFICATION_CHECKS checks) const {
+Signature::VERIFICATION_FLAGS
+    Binary::verify_signature(Signature::VERIFICATION_CHECKS checks) const {
   if (!has_signatures()) {
     return Signature::VERIFICATION_FLAGS::NO_SIGNATURE;
   }
@@ -920,14 +923,17 @@ Signature::VERIFICATION_FLAGS Binary::verify_signature(Signature::VERIFICATION_C
     const Signature& sig = signatures_[i];
     flags |= verify_signature(sig, checks);
     if (flags != Signature::VERIFICATION_FLAGS::OK) {
-      LIEF_INFO("Verification failed for signature #{:d} (0b{:b})", i, static_cast<uintptr_t>(flags));
+      LIEF_INFO("Verification failed for signature #{:d} (0b{:b})", i,
+                static_cast<uintptr_t>(flags));
       break;
     }
   }
   return flags;
 }

-Signature::VERIFICATION_FLAGS Binary::verify_signature(const Signature& sig, Signature::VERIFICATION_CHECKS checks) const {
+Signature::VERIFICATION_FLAGS
+    Binary::verify_signature(const Signature& sig,
+                             Signature::VERIFICATION_CHECKS checks) const {
   Signature::VERIFICATION_FLAGS flags = Signature::VERIFICATION_FLAGS::OK;
   if (!is_true(checks & Signature::VERIFICATION_CHECKS::HASH_ONLY)) {
     const Signature::VERIFICATION_FLAGS value = sig.check(checks);
@@ -940,17 +946,17 @@ Signature::VERIFICATION_FLAGS Binary::verify_signature(const Signature& sig, Sig
   const ContentInfo::Content& content = sig.content_info().value();

   if (!SpcIndirectData::classof(&content)) {
-    LIEF_INFO("Expecting SpcIndirectData");
+    LIEF_INFO("Expected SpcIndirectData content");
     flags |= Signature::VERIFICATION_FLAGS::CORRUPTED_CONTENT_INFO;
     return flags;
   }
   const auto& spc_indirect_data = static_cast<const SpcIndirectData&>(content);

-  // Check that the authentihash matches Content Info's digest
+  // Check that the authentihash matches ContentInfo's digest
   const std::vector<uint8_t>& authhash = authentihash(sig.digest_algorithm());
   const span<const uint8_t> chash = spc_indirect_data.digest();
   if (authhash != std::vector<uint8_t>(chash.begin(), chash.end())) {
-    LIEF_INFO("Authentihash and Content info's digest does not match:\n  {}\n  {}",
+    LIEF_INFO("Authentihash and content info digest mismatch:\n  {}\n  {}",
               hex_dump(authhash), hex_dump(chash));
     flags |= Signature::VERIFICATION_FLAGS::BAD_DIGEST;
   }
@@ -966,7 +972,7 @@ LIEF::Binary::functions_t Binary::get_abstract_exported_functions() const {
   if (const Export* exp = get_export()) {
     for (const ExportEntry& entry : exp->entries()) {
       const std::string& name = entry.name();
-      if(!name.empty()) {
+      if (!name.empty()) {
         result.emplace_back(name, entry.address(), Function::FLAGS::EXPORTED);
       }
     }
@@ -983,7 +989,7 @@ LIEF::Binary::functions_t Binary::get_abstract_imported_functions() const {
     }
     for (const ImportEntry& entry : resolved.entries()) {
       const std::string& name = entry.name();
-      if(!name.empty()) {
+      if (!name.empty()) {
         result.emplace_back(name, entry.iat_address(), Function::FLAGS::IMPORTED);
       }
     }
@@ -996,7 +1002,7 @@ LIEF::Binary::functions_t Binary::get_abstract_imported_functions() const {
         continue;
       }
       const std::string& name = entry.name();
-      if(!name.empty()) {
+      if (!name.empty()) {
         result.emplace_back(name, entry.value(), Function::FLAGS::IMPORTED);
       }
     }
@@ -1017,8 +1023,7 @@ std::vector<std::string> Binary::get_abstract_imported_libraries() const {
 }

 void Binary::fill_address(uint64_t address, size_t size, uint8_t value,
-                          VA_TYPES addr_type)
-{
+                          VA_TYPES addr_type) {
   uint64_t rva = address;

   if (addr_type == VA_TYPES::VA || addr_type == VA_TYPES::AUTO) {
@@ -1031,21 +1036,22 @@ void Binary::fill_address(uint64_t address, size_t size, uint8_t value,

   Section* section_topatch = section_from_rva(rva);
   if (section_topatch == nullptr) {
-    LIEF_ERR("Can't find section with the rva: 0x{:x}", rva);
+    LIEF_ERR("Section not found for RVA {:#x}", rva);
     return;
   }
   const uint64_t offset = rva - section_topatch->virtual_address();
   span<uint8_t> content = section_topatch->writable_content();
   if (offset + size > content.size()) {
-    LIEF_ERR("Can't write {} bytes at 0x{:x} (limit: 0x{:x})",
-             size, offset, content.size());
+    LIEF_ERR("Cannot write {} bytes at {:#x} (limit: {:#x})", size, offset,
+             content.size());
     return;
   }
   std::fill_n(content.begin() + offset, size, value);
 }


-void Binary::patch_address(uint64_t address, const std::vector<uint8_t>& patch_value,
+void Binary::patch_address(uint64_t address,
+                           const std::vector<uint8_t>& patch_value,
                            VA_TYPES addr_type) {
   uint64_t rva = address;

@@ -1060,32 +1066,32 @@ void Binary::patch_address(uint64_t address, const std::vector<uint8_t>& patch_v
   // Find the section associated with the virtual address
   Section* section_topatch = section_from_rva(rva);
   if (section_topatch == nullptr) {
-    LIEF_ERR("Can't find section with the rva: 0x{:x}", rva);
+    LIEF_ERR("Section not found for RVA {:#x}", rva);
     return;
   }
   const uint64_t offset = rva - section_topatch->virtual_address();

   span<uint8_t> content = section_topatch->writable_content();
   if (offset + patch_value.size() > content.size()) {
-    LIEF_ERR("The patch value ({} bytes @0x{:x}) is out of bounds of the section (limit: 0x{:x})",
+    LIEF_ERR("Patch value ({} bytes @{:#x}) out of section bounds (limit: {:#x})",
              patch_value.size(), offset, content.size());
     return;
   }
-  std::copy(std::begin(patch_value), std::end(patch_value),
-            content.data() + offset);
-
+  std::copy(patch_value.begin(), patch_value.end(), content.data() + offset);
 }

-void Binary::patch_address(uint64_t address, uint64_t patch_value,
-                           size_t size, LIEF::Binary::VA_TYPES addr_type) {
+void Binary::patch_address(uint64_t address, uint64_t patch_value, size_t size,
+                           LIEF::Binary::VA_TYPES addr_type) {
   if (size > sizeof(patch_value)) {
-    LIEF_ERR("Invalid size (0x{:x})", size);
+    LIEF_ERR("Invalid size ({:#x})", size);
     return;
   }

   uint64_t rva = address;

-  if (addr_type == LIEF::Binary::VA_TYPES::VA || addr_type == LIEF::Binary::VA_TYPES::AUTO) {
+  if (addr_type == LIEF::Binary::VA_TYPES::VA ||
+      addr_type == LIEF::Binary::VA_TYPES::AUTO)
+  {
     const int64_t delta = address - optional_header().imagebase();

     if (delta > 0 || addr_type == LIEF::Binary::VA_TYPES::VA) {
@@ -1095,58 +1101,61 @@ void Binary::patch_address(uint64_t address, uint64_t patch_value,

   Section* section_topatch = section_from_rva(rva);
   if (section_topatch == nullptr) {
-    LIEF_ERR("Can't find section with the rva: 0x{:x}", rva);
+    LIEF_ERR("Section not found for RVA {:#x}", rva);
     return;
   }
   const uint64_t offset = rva - section_topatch->virtual_address();
   span<uint8_t> content = section_topatch->writable_content();
   if (offset > content.size() || (offset + size) > content.size()) {
-    LIEF_ERR("The patch value ({} bytes @0x{:x}) is out of bounds of the section (limit: 0x{:x})",
+    LIEF_ERR("Patch value ({} bytes @{:#x}) out of section bounds (limit: {:#x})",
              size, offset, content.size());
   }
   switch (size) {
     case sizeof(uint8_t):
-      {
-        auto X = static_cast<uint8_t>(patch_value);
-        memcpy(content.data() + offset, &X, sizeof(uint8_t));
-        break;
-      }
+    {
+      auto X = static_cast<uint8_t>(patch_value);
+      memcpy(content.data() + offset, &X, sizeof(uint8_t));
+      break;
+    }

     case sizeof(uint16_t):
-      {
-        auto X = static_cast<uint16_t>(patch_value);
-        memcpy(content.data() + offset, &X, sizeof(uint16_t));
-        break;
-      }
+    {
+      auto X = static_cast<uint16_t>(patch_value);
+      memcpy(content.data() + offset, &X, sizeof(uint16_t));
+      break;
+    }

     case sizeof(uint32_t):
-      {
-        auto X = static_cast<uint32_t>(patch_value);
-        memcpy(content.data() + offset, &X, sizeof(uint32_t));
-        break;
-      }
+    {
+      auto X = static_cast<uint32_t>(patch_value);
+      memcpy(content.data() + offset, &X, sizeof(uint32_t));
+      break;
+    }

     case sizeof(uint64_t):
-      {
-        auto X = static_cast<uint64_t>(patch_value);
-        memcpy(content.data() + offset, &X, sizeof(uint64_t));
-        break;
-      }
+    {
+      auto X = static_cast<uint64_t>(patch_value);
+      memcpy(content.data() + offset, &X, sizeof(uint64_t));
+      break;
+    }

     default:
-      {
-        LIEF_ERR("The provided size ({}) does not match the size of an integer", size);
-        return;
-      }
+    {
+      LIEF_ERR("Provided size ({}) does not match integer size", size);
+      return;
+    }
   }
 }

-span<const uint8_t> Binary::get_content_from_virtual_address(uint64_t virtual_address,
-    uint64_t size, LIEF::Binary::VA_TYPES addr_type) const {
+span<const uint8_t> Binary::get_content_from_virtual_address(
+    uint64_t virtual_address, uint64_t size, LIEF::Binary::VA_TYPES addr_type
+) const {

   uint64_t rva = virtual_address;

-  if (addr_type == LIEF::Binary::VA_TYPES::VA || addr_type == LIEF::Binary::VA_TYPES::AUTO) {
+  if (addr_type == LIEF::Binary::VA_TYPES::VA ||
+      addr_type == LIEF::Binary::VA_TYPES::AUTO)
+  {
     const int64_t delta = virtual_address - optional_header().imagebase();

     if (delta > 0 || addr_type == LIEF::Binary::VA_TYPES::VA) {
@@ -1155,7 +1164,7 @@ span<const uint8_t> Binary::get_content_from_virtual_address(uint64_t virtual_ad
   }
   const Section* section = section_from_rva(rva);
   if (section == nullptr) {
-    LIEF_ERR("Can't find the section with the rva 0x{:x}", rva);
+    LIEF_ERR("Section not found for RVA {:#x}", rva);
     return {};
   }
   span<const uint8_t> content = section->content();
@@ -1164,14 +1173,13 @@ span<const uint8_t> Binary::get_content_from_virtual_address(uint64_t virtual_ad
   if ((offset + checked_size) > content.size()) {
     uint64_t delta_off = offset + checked_size - content.size();
     if (checked_size < delta_off) {
-        LIEF_ERR("Can't access section data due to a section end overflow.");
-        return {};
+      LIEF_ERR("Section end overflow prevents data access");
+      return {};
     }
     checked_size = checked_size - delta_off;
   }

   return {content.data() + offset, static_cast<size_t>(checked_size)};
-
 }

 void Binary::rich_header(const RichHeader& rich_header) {
@@ -1196,7 +1204,6 @@ LIEF::Binary::functions_t Binary::ctor_functions() const {
     for (size_t i = 0; i < clbs.size(); ++i) {
       functions.emplace_back("tls_" + std::to_string(i), clbs[i],
                              Function::FLAGS::CONSTRUCTOR);
-
     }
   }
   return functions;
@@ -1205,25 +1212,25 @@ LIEF::Binary::functions_t Binary::ctor_functions() const {

 LIEF::Binary::functions_t Binary::functions() const {

-  static const auto func_cmd = [] (const Function& lhs, const Function& rhs) {
+  static const auto func_cmd = [](const Function& lhs, const Function& rhs) {
     return lhs.address() < rhs.address();
   };
   std::set<Function, decltype(func_cmd)> functions_set(func_cmd);

   LIEF::Binary::functions_t exception_functions = this->exception_functions();
-  LIEF::Binary::functions_t exported            = get_abstract_exported_functions();
-  LIEF::Binary::functions_t ctors               = ctor_functions();
+  LIEF::Binary::functions_t exported = get_abstract_exported_functions();
+  LIEF::Binary::functions_t ctors = ctor_functions();

-  std::move(std::begin(exception_functions), std::end(exception_functions),
-            std::inserter(functions_set, std::end(functions_set)));
+  std::move(exception_functions.begin(), exception_functions.end(),
+            std::inserter(functions_set, functions_set.end()));

-  std::move(std::begin(exported), std::end(exported),
-            std::inserter(functions_set, std::end(functions_set)));
+  std::move(exported.begin(), exported.end(),
+            std::inserter(functions_set, functions_set.end()));

-  std::move(std::begin(ctors), std::end(ctors),
-            std::inserter(functions_set, std::end(functions_set)));
+  std::move(ctors.begin(), ctors.end(),
+            std::inserter(functions_set, functions_set.end()));

-  return {std::begin(functions_set), std::end(functions_set)};
+  return {functions_set.begin(), functions_set.end()};
 }

 LIEF::Binary::functions_t Binary::exception_functions() const {
@@ -1243,12 +1250,13 @@ LIEF::Binary::functions_t Binary::exception_functions() const {
 }

 const DelayImport* Binary::get_delay_import(const std::string& import_name) const {
-  const auto it_import = std::find_if(std::begin(delay_imports_), std::end(delay_imports_),
-      [&import_name] (const std::unique_ptr<DelayImport>& import) {
-        return import->name() == import_name;
-      });
+  const auto it_import =
+      std::find_if(delay_imports_.begin(), delay_imports_.end(),
+                   [&import_name](const std::unique_ptr<DelayImport>& import) {
+                     return import->name() == import_name;
+                   });

-  if (it_import == std::end(delay_imports_)) {
+  if (it_import == delay_imports_.end()) {
     return nullptr;
   }

@@ -1261,10 +1269,9 @@ const CodeViewPDB* Binary::codeview_pdb() const {
   }

   const auto it = std::find_if(debug_.begin(), debug_.end(),
-    [] (const std::unique_ptr<Debug>& debug) {
-      return CodeViewPDB::classof(debug.get());
-    }
-  );
+                               [](const std::unique_ptr<Debug>& debug) {
+                                 return CodeViewPDB::classof(debug.get());
+                               });
   if (it == debug_.end()) {
     return nullptr;
   }
@@ -1280,9 +1287,9 @@ Debug* Binary::add_debug_info(const Debug& entry) {

 bool Binary::remove_debug(const Debug& entry) {
   auto it = std::find_if(debug_.begin(), debug_.end(),
-      [&entry] (const std::unique_ptr<Debug>& dbg) {
-        return dbg.get() == &entry;
-      });
+                         [&entry](const std::unique_ptr<Debug>& dbg) {
+                           return dbg.get() == &entry;
+                         });

   if (it == debug_.end()) {
     return false;
@@ -1300,6 +1307,9 @@ bool Binary::remove_debug(const Debug& entry) {

 bool Binary::clear_debug() {
   DataDirectory* dbg_dir = this->debug_dir();
+  if (dbg_dir == nullptr) {
+    return false;
+  }
   for (std::unique_ptr<Debug>& dbg : debug_) {
     span<uint8_t> payload = dbg->payload();
     if (payload.empty()) {
@@ -1309,7 +1319,8 @@ bool Binary::clear_debug() {
   }

   debug_.clear();
-  this->fill_address(dbg_dir->RVA(), dbg_dir->size());
+  fill_address(dbg_dir->RVA(), dbg_dir->size(), /*value=*/0,
+               Binary::VA_TYPES::RVA);
   dbg_dir->RVA(0);
   dbg_dir->size(0);
   return true;
@@ -1318,10 +1329,9 @@ bool Binary::clear_debug() {

 ExceptionInfo* Binary::find_exception_at(uint32_t rva) {
   auto it = std::find_if(exceptions_.begin(), exceptions_.end(),
-    [rva] (const std::unique_ptr<ExceptionInfo>& info) {
-      return info->rva_start() == rva;
-    }
-  );
+                         [rva](const std::unique_ptr<ExceptionInfo>& info) {
+                           return info->rva_start() == rva;
+                         });

   if (it == exceptions_.end()) {
     return nullptr;
@@ -1373,30 +1383,20 @@ void Binary::accept(Visitor& visitor) const {
 }

 std::ostream& Binary::print(std::ostream& os) const {
-  using namespace fmt;
-  os << "DOS Header {\n"
-     << indent(LIEF::to_string(dos_header()), 2)
-     << "}\n";
+  os << "DOS Header {\n" << indent(LIEF::to_string(dos_header()), 2) << "}\n";

   if (auto stub = dos_stub(); !stub.empty()) {
-    os << "DOS Sub {\n"
-       << indent(LIEF::dump(stub), 2)
-       << "}\n";
+    os << "DOS Sub {\n" << indent(LIEF::dump(stub), 2) << "}\n";
   }

   if (const RichHeader* rich = rich_header()) {
-    os << "Rich Header {\n"
-       << indent(LIEF::to_string(*rich), 2)
-       << "}\n";
+    os << "Rich Header {\n" << indent(LIEF::to_string(*rich), 2) << "}\n";
   }

-  os << "Header {\n"
-     << indent(LIEF::to_string(header()), 2)
-     << "}\n";
+  os << "Header {\n" << indent(LIEF::to_string(header()), 2) << "}\n";

   os << "Optional Header {\n"
-     << indent(LIEF::to_string(optional_header()), 2)
-     << "}\n";
+     << indent(LIEF::to_string(optional_header()), 2) << "}\n";

   os << "Data Directories:\n";
   for (const DataDirectory& dir : data_directories()) {
@@ -1407,29 +1407,23 @@ std::ostream& Binary::print(std::ostream& os) const {
     const auto secs = sections();
     for (size_t i = 0; i < secs.size(); ++i) {
       os << fmt::format("Section #{:02} {{\n", i)
-         << indent(LIEF::to_string(secs[i]), 2)
-         << "}\n";
+         << indent(LIEF::to_string(secs[i]), 2) << "}\n";
     }
   }

   if (const TLS* tls_obj = tls()) {
-    os << "TLS: {\n"
-       << indent(LIEF::to_string(*tls_obj), 2)
-       << "}\n";
+    os << "TLS: {\n" << indent(LIEF::to_string(*tls_obj), 2) << "}\n";
   }

   if (const LoadConfiguration* lconf = load_configuration()) {
-    os << "Load Configuration: {\n"
-       << indent(LIEF::to_string(*lconf), 2)
-       << "}\n";
+    os << "Load Configuration: {\n" << indent(LIEF::to_string(*lconf), 2) << "}\n";
   }

   if (auto entries = debug(); !entries.empty()) {
     os << fmt::format("Debug Entries (#{}):\n", entries.size());
     for (size_t i = 0; i < entries.size(); ++i) {
       os << fmt::format("  Entry[{:02}] {{\n", i)
-         << indent(LIEF::to_string(entries[i]), 4)
-         << "  }\n";
+         << indent(LIEF::to_string(entries[i]), 4) << "  }\n";
     }
     os << "}\n";
   }
@@ -1467,16 +1461,14 @@ std::ostream& Binary::print(std::ostream& os) const {
   }

   if (const ResourceNode* root = resources()) {
-    os << "Resources:\n"
-       << indent(LIEF::to_string(*root), 2);
+    os << "Resources:\n" << indent(LIEF::to_string(*root), 2);
   }

   if (auto syms = symbols(); !syms.empty()) {
     os << fmt::format("COFF Symbols (#{})\n", syms.size());
     for (size_t i = 0; i < syms.size(); ++i) {
       os << fmt::format("Symbol[{:02d}] {{\n", i)
-         << indent(LIEF::to_string(syms[i]), 2)
-         << "}\n";
+         << indent(LIEF::to_string(syms[i]), 2) << "}\n";
     }
   }

@@ -1488,13 +1480,10 @@ std::ostream& Binary::print(std::ostream& os) const {
   }

   if (const Binary* nested = nested_pe_binary()) {
-    os << "Nested PE Binary {\n"
-       << indent(LIEF::to_string(*nested), 2)
-       << "}";
+    os << "Nested PE Binary {\n" << indent(LIEF::to_string(*nested), 2) << "}";
   }

   return os;
 }

 } // namesapce PE
-} // namespace LIEF
diff --git a/deps/LIEF/src/PE/Builder.cpp b/deps/LIEF/src/PE/Builder.cpp
index 1b1fe300399..c6fdbfdc474 100644
--- a/deps/LIEF/src/PE/Builder.cpp
+++ b/deps/LIEF/src/PE/Builder.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -21,21 +21,26 @@
 #include "logging.hpp"

 #include "LIEF/PE/Builder.hpp"
-#include "LIEF/PE/ResourceData.hpp"
-#include "LIEF/PE/utils.hpp"
-#include "LIEF/PE/ImportEntry.hpp"
-#include "LIEF/PE/Import.hpp"
-#include "LIEF/PE/Debug.hpp"
-#include "LIEF/PE/debug/PDBChecksum.hpp"
-#include "LIEF/PE/debug/ExDllCharacteristics.hpp"
-#include "LIEF/PE/debug/FPO.hpp"
-#include "LIEF/PE/Section.hpp"
-#include "LIEF/PE/ResourceDirectory.hpp"
 #include "LIEF/PE/DataDirectory.hpp"
-#include "LIEF/PE/Relocation.hpp"
-#include "LIEF/PE/RelocationEntry.hpp"
 #include "LIEF/PE/Export.hpp"
 #include "LIEF/PE/ExportEntry.hpp"
+#include "LIEF/PE/Import.hpp"
+#include "LIEF/PE/ImportEntry.hpp"
+#include "LIEF/PE/Relocation.hpp"
+#include "LIEF/PE/RelocationEntry.hpp"
+#include "LIEF/PE/ResourceData.hpp"
+#include "LIEF/PE/ResourceDirectory.hpp"
+#include "LIEF/PE/Section.hpp"
+#include "LIEF/PE/debug/CodeView.hpp"
+#include "LIEF/PE/debug/CodeViewPDB.hpp"
+#include "LIEF/PE/debug/Debug.hpp"
+#include "LIEF/PE/debug/ExDllCharacteristics.hpp"
+#include "LIEF/PE/debug/PDBChecksum.hpp"
+#include "LIEF/PE/debug/Pogo.hpp"
+#include "LIEF/PE/debug/PogoEntry.hpp"
+#include "LIEF/PE/debug/Repro.hpp"
+#include "LIEF/PE/debug/VCFeature.hpp"
+#include "LIEF/PE/utils.hpp"
 #include "LIEF/utils.hpp"

 #include "PE/Structures.hpp"
@@ -43,18 +48,17 @@
 #include "Builder.tcc"
 #include "internal_utils.hpp"

-namespace LIEF {
-namespace PE {
+
+namespace LIEF::PE {

 Builder::~Builder() = default;

 void Builder::write(const std::string& filename) const {
-  static constexpr auto DEFAULT_MODE = std::ios::out |
-                                       std::ios::binary |
-                                       std::ios::trunc;
+  static constexpr auto DEFAULT_MODE =
+      std::ios::out | std::ios::binary | std::ios::trunc;
   std::ofstream output_file(filename, DEFAULT_MODE);
   if (!output_file) {
-    LIEF_ERR("Can't write in {}", filename);
+    LIEF_ERR("Failed to write to {}", filename);
     return;
   }
   write(output_file);
@@ -74,45 +78,39 @@ ok_error_t Builder::build() {
     // TLS reconstruction could change relocations. Thus, it needs to be done
     // BEFORE build_relocations. Moreover, because of some relocation
     // optimization, it should be done as early as possible.
-    auto res = is_64bit ? build_tls<details::PE64>() :
-                          build_tls<details::PE32>();
+    auto res = is_64bit ? build_tls<details::PE64>() : build_tls<details::PE32>();
     if (!res) {
-      LIEF_WARN("Something went wrong while re-building TLS: {}",
-                to_string(res.error()));
+      LIEF_WARN("Failed to rebuild TLS: {}", to_string(res.error()));
     }
   }

   if (config_.resources) {
     auto is_ok = build_resources();
     if (!is_ok) {
-      LIEF_WARN("Something went wrong while re-building resource tree: {}",
-                to_string(is_ok.error()));
+      LIEF_WARN("Failed to rebuild resource tree: {}", to_string(is_ok.error()));
     }
   }

   if (config_.relocations) {
     auto is_ok = build_relocations();
     if (!is_ok) {
-      LIEF_WARN("Something went wrong while re-building relocations: {}",
-                to_string(is_ok.error()));
+      LIEF_WARN("Failed to rebuild relocations: {}", to_string(is_ok.error()));
     }
   }

   if (config_.imports) {
-    auto is_ok = is_64bit ? build_imports<details::PE64>() :
-                            build_imports<details::PE32>();
+    auto is_ok =
+        is_64bit ? build_imports<details::PE64>() : build_imports<details::PE32>();

     if (!is_ok) {
-      LIEF_WARN("Something went wrong while re-building imports: {}",
-                to_string(is_ok.error()));
+      LIEF_WARN("Failed to rebuild imports: {}", to_string(is_ok.error()));
     }
   }

   if (config_.exports) {
     auto is_ok = build_exports();
     if (!is_ok) {
-      LIEF_WARN("Something went wrong while re-building exports: {}",
-                to_string(is_ok.error()));
+      LIEF_WARN("Failed to rebuild exports: {}", to_string(is_ok.error()));
     }
   }

@@ -121,51 +119,46 @@ ok_error_t Builder::build() {
                             build_load_config<details::PE32>();

     if (!is_ok) {
-      LIEF_WARN("Something went wrong while re-building load config: {}",
-                to_string(is_ok.error()));
+      LIEF_WARN("Failed to rebuild load config: {}", to_string(is_ok.error()));
     }
   }

   if (config_.debug) {
     auto is_ok = build_debug_info();
     if (!is_ok) {
-      LIEF_WARN("Something went wrong while re-building debug entries: {}",
-                to_string(is_ok.error()));
+      LIEF_WARN("Failed to rebuild debug entries: {}", to_string(is_ok.error()));
     }
   }

   auto is_ok = build(binary_->dos_header());
   if (!is_ok) {
-    LIEF_WARN("Something went wrong while re-building DOS header: {}",
-              to_string(is_ok.error()));
+    LIEF_WARN("Failed to rebuild DOS header: {}", to_string(is_ok.error()));
   }
   is_ok = build(binary_->header());

   if (!is_ok) {
-    LIEF_WARN("Something went wrong while re-building regular header: {}",
-              to_string(is_ok.error()));
+    LIEF_WARN("Failed to rebuild header: {}", to_string(is_ok.error()));
   }

   is_ok = build(binary_->optional_header());

   if (!is_ok) {
-    LIEF_WARN("Something went wrong while re-building optional header: {}",
-              to_string(is_ok.error()));
+    LIEF_WARN("Failed to rebuild optional header: {}", to_string(is_ok.error()));
   }

   for (const DataDirectory& dir : binary_->data_directories()) {
     auto is_ok = build(dir);
     if (!is_ok) {
-      LIEF_WARN("Something went wrong while re-building data directory '{}': {}",
-                to_string(dir.type()), to_string(is_ok.error()));
+      LIEF_WARN("Failed to rebuild data directory '{}': {}", to_string(dir.type()),
+                to_string(is_ok.error()));
     }
   }

   for (const Section& sec : binary_->sections()) {
     auto is_ok = build(sec);
     if (!is_ok) {
-      LIEF_WARN("Something went wrong while re-building section '{}': {}",
-                sec.name(), to_string(is_ok.error()));
+      LIEF_WARN("Failed to rebuild section '{}': {}", sec.name(),
+                to_string(is_ok.error()));
     }
   }

@@ -182,27 +175,25 @@ ok_error_t Builder::build(const DosHeader& dos_header) {
   vector_iostream dos_hdr_strm;
   dos_hdr_strm.reserve(sizeof(details::pe_dos_header));

-  dos_hdr_strm
-    .write<uint16_t>(dos_header.magic())
-    .write<uint16_t>(dos_header.used_bytes_in_last_page())
-    .write<uint16_t>(dos_header.file_size_in_pages())
-    .write<uint16_t>(dos_header.numberof_relocation())
-    .write<uint16_t>(dos_header.header_size_in_paragraphs())
-    .write<uint16_t>(dos_header.minimum_extra_paragraphs())
-    .write<uint16_t>(dos_header.maximum_extra_paragraphs())
-    .write<uint16_t>(dos_header.initial_relative_ss())
-    .write<uint16_t>(dos_header.initial_sp())
-    .write<uint16_t>(dos_header.checksum())
-    .write<uint16_t>(dos_header.initial_ip())
-    .write<uint16_t>(dos_header.initial_relative_cs())
-    .write<uint16_t>(dos_header.addressof_relocation_table())
-    .write<uint16_t>(dos_header.overlay_number())
-    .write<uint16_t>(dos_header.reserved())
-    .write<uint16_t>(dos_header.oem_id())
-    .write<uint16_t>(dos_header.oem_info())
-    .write<uint16_t>(dos_header.reserved2())
-    .write<uint32_t>(dos_header.addressof_new_exeheader())
-  ;
+  dos_hdr_strm.write<uint16_t>(dos_header.magic())
+      .write<uint16_t>(dos_header.used_bytes_in_last_page())
+      .write<uint16_t>(dos_header.file_size_in_pages())
+      .write<uint16_t>(dos_header.numberof_relocation())
+      .write<uint16_t>(dos_header.header_size_in_paragraphs())
+      .write<uint16_t>(dos_header.minimum_extra_paragraphs())
+      .write<uint16_t>(dos_header.maximum_extra_paragraphs())
+      .write<uint16_t>(dos_header.initial_relative_ss())
+      .write<uint16_t>(dos_header.initial_sp())
+      .write<uint16_t>(dos_header.checksum())
+      .write<uint16_t>(dos_header.initial_ip())
+      .write<uint16_t>(dos_header.initial_relative_cs())
+      .write<uint16_t>(dos_header.addressof_relocation_table())
+      .write<uint16_t>(dos_header.overlay_number())
+      .write<uint16_t>(dos_header.reserved())
+      .write<uint16_t>(dos_header.oem_id())
+      .write<uint16_t>(dos_header.oem_info())
+      .write<uint16_t>(dos_header.reserved2())
+      .write<uint32_t>(dos_header.addressof_new_exeheader());

   assert(dos_hdr_strm.size() == sizeof(details::pe_dos_header));

@@ -210,10 +201,10 @@ ok_error_t Builder::build(const DosHeader& dos_header) {
   ios_.write(dos_hdr_strm);

   if (!binary_->dos_stub().empty() && config_.dos_stub) {
-    const uint64_t e_lfanew = sizeof(details::pe_dos_header) +
-                              binary_->dos_stub().size();
+    const uint64_t e_lfanew =
+        sizeof(details::pe_dos_header) + binary_->dos_stub().size();
     if (e_lfanew > dos_header.addressof_new_exeheader()) {
-      LIEF_WARN("Inconsistent 'addressof_new_exeheader': 0x{:x}",
+      LIEF_WARN("Inconsistent 'addressof_new_exeheader': {:#x}",
                 dos_header.addressof_new_exeheader());
     } else {
       ios_.write(binary_->dos_stub());
@@ -228,77 +219,66 @@ ok_error_t Builder::build(const Header& header) {
   vector_iostream pe_hdr_strm;
   pe_hdr_strm.reserve(sizeof(details::pe_header));

-  pe_hdr_strm
-    .write(header.signature())
-    .write<uint16_t>((int)header.machine())
-    .write<uint16_t>(binary_->sections_.size())
-    .write<uint32_t>(header.time_date_stamp())
-    .write<uint32_t>(header.pointerto_symbol_table())
-    .write<uint32_t>(header.numberof_symbols())
-    .write<uint16_t>(header.sizeof_optional_header())
-    .write<uint16_t>(header.characteristics())
-  ;
+  pe_hdr_strm.write(header.signature())
+      .write<uint16_t>((int)header.machine())
+      .write<uint16_t>(binary_->sections_.size())
+      .write<uint32_t>(header.time_date_stamp())
+      .write<uint32_t>(header.pointerto_symbol_table())
+      .write<uint32_t>(header.numberof_symbols())
+      .write<uint16_t>(header.sizeof_optional_header())
+      .write<uint16_t>(header.characteristics());

   assert(pe_hdr_strm.size() == sizeof(details::pe_header));

-  ios_
-    .seekp(binary_->dos_header().addressof_new_exeheader())
-    .write(pe_hdr_strm);
+  ios_.seekp(binary_->dos_header().addressof_new_exeheader()).write(pe_hdr_strm);
   return ok();
 }


 ok_error_t Builder::build(const OptionalHeader& optional_header) {
   return binary_->type() == PE_TYPE::PE32 ?
-         build_optional_header<details::PE32>(optional_header) :
-         build_optional_header<details::PE64>(optional_header);
+             build_optional_header<details::PE32>(optional_header) :
+             build_optional_header<details::PE64>(optional_header);
 }


 ok_error_t Builder::build(const DataDirectory& data_directory) {
-  ios_
-    .write<uint32_t>(data_directory.RVA())
-    .write<uint32_t>(data_directory.size());
+  ios_.write<uint32_t>(data_directory.RVA())
+      .write<uint32_t>(data_directory.size());

   return ok();
 }

 ok_error_t Builder::build(const Section& section) {
-  std::array<char, 8> section_name;
-  std::memset(section_name.data(), 0, section_name.size());
+  std::array<char, 8> section_name{};

   const std::string& sec_name = section.fullname();
-  uint32_t name_length = std::min<uint32_t>(sec_name.size() + 1, section_name.size());
+  uint32_t name_length =
+      std::min<uint32_t>(sec_name.size() + 1, section_name.size());
   std::copy(sec_name.c_str(), sec_name.c_str() + name_length,
-            std::begin(section_name));
-  ios_
-    .increase_capacity(sizeof(details::pe_section))
-    .write(section_name)
-    .write<uint32_t>(section.virtual_size())
-    .write<uint32_t>(section.virtual_address())
-    .write<uint32_t>(section.size())
-    .write<uint32_t>(section.pointerto_raw_data())
-    .write<uint32_t>(section.pointerto_relocation())
-    .write<uint32_t>(section.pointerto_line_numbers())
-    .write<uint16_t>(section.numberof_relocations())
-    .write<uint16_t>(section.numberof_line_numbers())
-    .write<uint32_t>(section.characteristics())
-  ;
+            section_name.begin());
+  ios_.increase_capacity(sizeof(details::pe_section))
+      .write(section_name)
+      .write<uint32_t>(section.virtual_size())
+      .write<uint32_t>(section.virtual_address())
+      .write<uint32_t>(section.size())
+      .write<uint32_t>(section.pointerto_raw_data())
+      .write<uint32_t>(section.pointerto_relocation())
+      .write<uint32_t>(section.pointerto_line_numbers())
+      .write<uint16_t>(section.numberof_relocations())
+      .write<uint16_t>(section.numberof_line_numbers())
+      .write<uint32_t>(section.characteristics());

   size_t pad_length = 0;
   if (section.content().size() > section.size()) {
-    LIEF_WARN("{} content size is bigger than section's header size",
-              section.name());
-  }
-  else {
+    LIEF_WARN("{} content size exceeds section header size", section.name());
+  } else {
     pad_length = section.size() - section.content().size();
   }

   {
     ScopeOStream scoped(ios_, section.offset());
-    (*scoped)
-      .write(section.content())
-      .pad(pad_length);
+    (*scoped).write(section.content()).pad(pad_length);
   }

   return ok();
@@ -308,12 +288,11 @@ ok_error_t Builder::build(const Section& section) {
 ok_error_t Builder::build_overlay() {
   const uint64_t last_section_offset = binary_->last_section_offset();

-  LIEF_DEBUG("Overlay offset: 0x{:x}", last_section_offset);
-  LIEF_DEBUG("Overlay size: 0x{:x}", binary_->overlay().size());
+  LIEF_DEBUG("Overlay offset: {:#x}", last_section_offset);
+  LIEF_DEBUG("Overlay size: {:#x}", binary_->overlay().size());

   ScopeOStream scoped(ios_, last_section_offset);
-  (*scoped)
-    .write(binary_->overlay());
+  (*scoped).write(binary_->overlay());

   return ok();
 }
@@ -322,6 +301,10 @@ ok_error_t Builder::build_relocations() {
   vector_iostream ios;
   DataDirectory* reloc_dir = binary_->relocation_dir();

+  if (reloc_dir == nullptr) {
+    return ok();
+  }
+
   const uint32_t original_size = reloc_dir->size();
   ios.reserve(original_size);

@@ -331,44 +314,43 @@ ok_error_t Builder::build_relocations() {
     }

     const uint32_t block_size =
-      static_cast<uint32_t>((reloc.entries().size()) * sizeof(uint16_t) +
-      sizeof(details::pe_base_relocation_block));
+        static_cast<uint32_t>((reloc.entries().size()) * sizeof(uint16_t) +
+                              sizeof(details::pe_base_relocation_block));
+
+    ios.write<uint32_t>(reloc.virtual_address())
+        .write<uint32_t>(align(block_size, sizeof(uint32_t)));

-    ios
-      .write<uint32_t>(reloc.virtual_address())
-      .write<uint32_t>(align(block_size, sizeof(uint32_t)))
-    ;
     for (const RelocationEntry& entry : reloc.entries()) {
       ios.write(entry.data());
     }
+
+    ios.align(sizeof(uint32_t));
   }
-  ios
-    .align(sizeof(uint32_t))
-    .move(reloc_data_);
+
+  ios.align(sizeof(uint32_t)).move(reloc_data_);

   if (reloc_data_.size() > original_size || config_.force_relocating) {
-    LIEF_DEBUG("Need to relocated BASE_RELOCATION_TABLE (0x{:06x} new bytes)",
+    LIEF_DEBUG("Need to relocate BASE_RELOCATION_TABLE ({:#08x} new bytes)",
                reloc_data_.size() - original_size);

     Section reloc_section(config_.reloc_section);
     const size_t relocated_size =
-      align(reloc_data_.size(), binary_->optional_header().file_alignment());
+        align(reloc_data_.size(), binary_->optional_header().file_alignment());

-    reloc_section
-      .reserve(relocated_size)
-      .add_characteristic(Section::CHARACTERISTICS::CNT_INITIALIZED_DATA)
-      .add_characteristic(Section::CHARACTERISTICS::MEM_READ)
-      .add_characteristic(Section::CHARACTERISTICS::MEM_DISCARDABLE);
+    reloc_section.reserve(relocated_size)
+        .add_characteristic(Section::CHARACTERISTICS::CNT_INITIALIZED_DATA)
+        .add_characteristic(Section::CHARACTERISTICS::MEM_READ)
+        .add_characteristic(Section::CHARACTERISTICS::MEM_DISCARDABLE);

     Section* new_reloc_section = binary_->add_section(reloc_section);
     new_reloc_section->edit().write(reloc_data_);
     reloc_dir->RVA(new_reloc_section->virtual_address());
     reloc_dir->size(reloc_data_.size());
   } else {
-    LIEF_DEBUG("BASE_RELOCATION_TABLE -0x{:06x}",
+    LIEF_DEBUG("BASE_RELOCATION_TABLE -{:#08x}",
                original_size - reloc_data_.size());

-    binary_->patch_address(reloc_dir->RVA(), reloc_data_);
+    binary_->patch_address(reloc_dir->RVA(), reloc_data_, Binary::VA_TYPES::RVA);
   }

   return ok();
@@ -376,14 +358,24 @@ ok_error_t Builder::build_relocations() {

 ok_error_t Builder::build_resources() {
   DataDirectory* rsrc_dir = binary_->rsrc_dir();
+
+  if (rsrc_dir == nullptr) {
+    return ok();
+  }
+
   ResourceNode* node = binary_->resources();

   if (node == nullptr) {
+    if (rsrc_dir->section() == nullptr) {
+      return ok(); // No resources, no resources section, nothing to do
+    }
+
     if (rsrc_dir->RVA() == 0 && rsrc_dir->size() == 0) {
       return ok();
     }

-    binary_->fill_address(rsrc_dir->RVA(), rsrc_dir->size());
+    binary_->fill_address(rsrc_dir->RVA(), rsrc_dir->size(), /*value=*/0,
+                          Binary::VA_TYPES::RVA);
     rsrc_dir->RVA(0);
     rsrc_dir->size(0);
     return ok();
@@ -400,30 +392,29 @@ ok_error_t Builder::build_resources() {
   ctx.offset_name = ctx.offset_header + sizes_info.header_size;
   ctx.offset_data = align(ctx.offset_name + sizes_info.name_size, 4);

-  LIEF_DEBUG(".rsrc[header].offset: 0x{:04x}", ctx.offset_header);
-  LIEF_DEBUG(".rsrc[names].offset:  0x{:04x}", ctx.offset_name);
-  LIEF_DEBUG(".rsrc[data].offset:   0x{:04x}", ctx.offset_data);
+  LIEF_DEBUG(".rsrc[header].offset: {:#06x}", ctx.offset_header);
+  LIEF_DEBUG(".rsrc[names].offset:  {:#06x}", ctx.offset_name);
+  LIEF_DEBUG(".rsrc[data].offset:   {:#06x}", ctx.offset_data);

   construct_resource(rsrc_stream, *node, ctx);
   rsrc_stream.align(sizeof(uint32_t));

   const uint32_t original_size = rsrc_dir->size();
   const uint32_t new_size = rsrc_stream.size();
-  const uint32_t expected_size = align(sizes_info.data_size + sizes_info.header_size + sizes_info.name_size, 4);
-  LIEF_DEBUG("New size: new_size=0x{:016x} vs original_size=0x{:016x} vs expected_size=0x{:016x}", new_size, original_size, expected_size);
+  const uint32_t expected_size =
+      align(sizes_info.data_size + sizes_info.header_size + sizes_info.name_size,
+            4);
+  LIEF_DEBUG("New size: new_size={:#018x} vs original_size={:#018x} vs "
+             "expected_size={:#018x}",
+             new_size, original_size, expected_size);

   if (new_size > original_size || config_.force_relocating) {
     const uint64_t delta = new_size - original_size;
-    LIEF_DEBUG("Need to relocate RESOURCE_TABLE (0x{:06x} new bytes)", delta);
-    Section* section = rsrc_dir->section();
-    if (section == nullptr) {
-      LIEF_ERR("Can't find section associated with the RESOURCE_TABLE");
-      return make_error_code(lief_errors::build_error);
-    }
+    LIEF_DEBUG("Need to relocate RESOURCE_TABLE ({:#08x} new bytes)", delta);

     // Note(romain): We could/should leverage this optimization:
     //
-    // If the the `.rsrc` section has some kind of padding that is large
+    // If the `.rsrc` section has some kind of padding that is large
     // enough, then we can use this area to avoid relocating the `.rsrc` location
     //
     // const bool padding_is_large = section->padding().size() >= delta;
@@ -432,9 +423,11 @@ ok_error_t Builder::build_resources() {
     //   // Now check that the rsrc content is at the "end" of the section
     //   const uint64_t rsrc_offset = binary_->rva_to_offset(rsrc_dir->RVA());
     //   const uint64_t section_size = section->virtual_size() > 0 ?
-    //                                 std::min(section->virtual_size(), section->sizeof_raw_data()) :
+    //                                 std::min(section->virtual_size(),
+    //                                 section->sizeof_raw_data()) :
     //                                 section->sizeof_raw_data();
-    //   if ((section->offset() + section_size) - (rsrc_offset + original_size) == 0) {
+    //   if ((section->offset() + section_size) - (rsrc_offset + original_size) ==
+    //   0) {
     //     LIEF_ERR("ok");
     //   }
     // }
@@ -442,15 +435,14 @@ ok_error_t Builder::build_resources() {

     Section rsrc_section(config_.rsrc_section);
     rsrc_section.reserve(rsrc_stream.size());
-    rsrc_section
-      .add_characteristic(Section::CHARACTERISTICS::CNT_INITIALIZED_DATA)
-      .add_characteristic(Section::CHARACTERISTICS::MEM_READ);
+    rsrc_section.add_characteristic(Section::CHARACTERISTICS::CNT_INITIALIZED_DATA)
+        .add_characteristic(Section::CHARACTERISTICS::MEM_READ);

     // TODO(romain): Make sure we add this section before the FIRST
     // MEM_DISCARDABLE section.
     Section* new_rsrc_section = binary_->add_section(rsrc_section);
     if (new_rsrc_section == nullptr) {
-      LIEF_ERR("Can't add a new rsrc section");
+      LIEF_ERR("Failed to add new rsrc section");
       return make_error_code(lief_errors::build_error);
     }

@@ -467,11 +459,11 @@ ok_error_t Builder::build_resources() {
     return ok();
   }

-  LIEF_DEBUG("RESOURCE_TABLE: -0x{:06x}", original_size - new_size);
+  LIEF_DEBUG("RESOURCE_TABLE: -{:#08x}", original_size - new_size);
   // Fill the original content with 0
   const uint64_t rva = rsrc_dir->RVA();
-  binary_->patch_address(
-    rva, std::vector<uint8_t>(original_size, 0), Binary::VA_TYPES::RVA);
+  binary_->patch_address(rva, std::vector<uint8_t>(original_size, 0),
+                         Binary::VA_TYPES::RVA);

   const uint64_t rsrc_rva = rsrc_dir->RVA();
   for (uint64_t fixup : ctx.rva_fixups) {
@@ -485,9 +477,8 @@ ok_error_t Builder::build_resources() {
   return ok();
 }

-ok_error_t Builder::compute_resources_size(
-    const ResourceNode& node, rsrc_sizing_info_t& info)
-{
+ok_error_t Builder::compute_resources_size(const ResourceNode& node,
+                                           rsrc_sizing_info_t& info) {
   if (!node.name().empty() || node.has_name()) {
     LIEF_DEBUG("{}", u16tou8(node.name()));
     info.name_size += sizeof(uint16_t) + node.name().size() * sizeof(char16_t);
@@ -495,8 +486,9 @@ ok_error_t Builder::compute_resources_size(


   if (const auto* _ = node.cast<ResourceDirectory>()) {
-    info.header_size += sizeof(details::pe_resource_directory_table) +
-                        sizeof(details::pe_resource_directory_entries) * node.childs().size();
+    info.header_size +=
+        sizeof(details::pe_resource_directory_table) +
+        sizeof(details::pe_resource_directory_entries) * node.childs().size();
     for (const ResourceNode& child : node.childs()) {
       compute_resources_size(child, info);
     }
@@ -505,53 +497,50 @@ ok_error_t Builder::compute_resources_size(

   if (const auto* data = node.cast<ResourceData>()) {
     info.header_size += sizeof(details::pe_resource_data_entry);
-    info.data_size   += align(data->content().size(), sizeof(uint32_t));
+    info.data_size += align(data->content().size(), sizeof(uint32_t));
     return ok();
   }

   return ok();
 }
-ok_error_t Builder::construct_resource(
-    vector_iostream& ios, ResourceDirectory& dir, rsrc_build_context_t& ctx)
-{
-  LIEF_DEBUG("[rsrc] writing directory header at 0x{:04x} (depth={}, id={}, #children={})",
-             ctx.offset_header, dir.depth(), dir.id(), dir.childs().size());
-  ios
-    .seekp(ctx.offset_header)
-    .increase_capacity(sizeof(details::pe_resource_directory_table))
-    .write<uint32_t>(dir.characteristics())
-    .write<uint32_t>(dir.time_date_stamp())
-    .write<uint16_t>(dir.major_version())
-    .write<uint16_t>(dir.minor_version())
-    .write<uint16_t>(dir.numberof_name_entries())
-    .write<uint16_t>(dir.numberof_id_entries())
-  ;
+ok_error_t Builder::construct_resource(vector_iostream& ios,
+                                       ResourceDirectory& dir,
+                                       rsrc_build_context_t& ctx) {
+  LIEF_DEBUG(
+      "[rsrc] writing directory header at {:#06x} (depth={}, id={}, #children={})",
+      ctx.offset_header, dir.depth(), dir.id(), dir.childs().size()
+  );
+  ios.seekp(ctx.offset_header)
+      .increase_capacity(sizeof(details::pe_resource_directory_table))
+      .write<uint32_t>(dir.characteristics())
+      .write<uint32_t>(dir.time_date_stamp())
+      .write<uint16_t>(dir.major_version())
+      .write<uint16_t>(dir.minor_version())
+      .write<uint16_t>(dir.numberof_name_entries())
+      .write<uint16_t>(dir.numberof_id_entries());
   ctx.offset_header = ios.tellp();

   uint32_t current_offset = ctx.offset_header;
-  ctx.offset_header += dir.childs().size() * sizeof(details::pe_resource_directory_entries);
+  ctx.offset_header +=
+      dir.childs().size() * sizeof(details::pe_resource_directory_entries);

   for (ResourceNode& child : dir.childs()) {
     if (child.has_name() || !child.name().empty()) {
       const std::u16string& name = child.name();
       child.id(0x80000000 | ctx.offset_name);
-      LIEF_DEBUG("[rsrc] writing name '{}' at 0x{:04x} (depth={}, id={})",
-                 u16tou8(child.name()), ctx.offset_name,
-                 dir.depth(), dir.id());
-      ios
-        .seekp(ctx.offset_name)
-        .write<uint16_t>(name.size())
-        .write(name, /*with_null_char=*/false);
+      LIEF_DEBUG("[rsrc] writing name '{}' at {:#06x} (depth={}, id={})",
+                 u16tou8(child.name()), ctx.offset_name, dir.depth(), dir.id());
+      ios.seekp(ctx.offset_name)
+          .write<uint16_t>(name.size())
+          .write(name, /*with_null_char=*/false);
       ctx.offset_name = ios.tellp();
     }

     const uint32_t mask = child.is_directory() ? 0x80000000 : 0;

-    ios
-      .seekp(current_offset)
-      .write<uint32_t>(child.id())
-      .write<uint32_t>(mask | ctx.offset_header)
-    ;
+    ios.seekp(current_offset)
+        .write<uint32_t>(child.id())
+        .write<uint32_t>(mask | ctx.offset_header);
     current_offset = ios.tellp();

     ++ctx.depth;
@@ -561,40 +550,37 @@ ok_error_t Builder::construct_resource(
 }


-ok_error_t Builder::construct_resource(
-    vector_iostream& ios, ResourceData& data, rsrc_build_context_t& ctx)
-{
+ok_error_t Builder::construct_resource(vector_iostream& ios, ResourceData& data,
+                                       rsrc_build_context_t& ctx) {
   span<const uint8_t> content = data.content();

   ctx.rva_fixups.push_back(ctx.offset_header);
-  LIEF_DEBUG("[rsrc] writing data header at 0x{:04x} (depth={}, id={})",
+  LIEF_DEBUG("[rsrc] writing data header at {:#06x} (depth={}, id={})",
              ctx.offset_header, data.depth(), data.id());

-  ios
-    .seekp(ctx.offset_header)
-    .increase_capacity(sizeof(details::pe_resource_data_entry))
-    .write<uint32_t>(ctx.offset_data)
-    .write<uint32_t>(content.size())
-    .write<uint32_t>(data.code_page())
-    .write<uint32_t>(data.reserved())
-  ;
+  ios.seekp(ctx.offset_header)
+      .increase_capacity(sizeof(details::pe_resource_data_entry))
+      .write<uint32_t>(ctx.offset_data)
+      .write<uint32_t>(content.size())
+      .write<uint32_t>(data.code_page())
+      .write<uint32_t>(data.reserved());
   ctx.offset_header = ios.tellp();

-  LIEF_DEBUG("[rsrc] writing data content at 0x{:04x} (depth={}, id={}, size=0x{:04x})",
-             ctx.offset_data, data.depth(), data.id(), content.size());
-  ios
-    .seekp(ctx.offset_data)
-    .write(content.data(), content.size())
-    .align(sizeof(uint32_t));
+  LIEF_DEBUG(
+      "[rsrc] writing data content at {:#06x} (depth={}, id={}, size={:#06x})",
+      ctx.offset_data, data.depth(), data.id(), content.size()
+  );
+  ios.seekp(ctx.offset_data)
+      .write(content.data(), content.size())
+      .align(sizeof(uint32_t));

   ctx.offset_data = ios.tellp();
   return ok();
 }


-ok_error_t Builder::construct_resource(
-    vector_iostream& ios, ResourceNode& node, rsrc_build_context_t& ctx)
-{
+ok_error_t Builder::construct_resource(vector_iostream& ios, ResourceNode& node,
+                                       rsrc_build_context_t& ctx) {
   if (auto* dir = node.cast<ResourceDirectory>()) {
     return construct_resource(ios, *dir, ctx);
   }
@@ -612,43 +598,38 @@ ok_error_t build_codeview(const CodeView& CV, vector_iostream& ios) {
   if (cv_pdb == nullptr) {
     return make_error_code(lief_errors::not_supported);
   }
-  ios
-    .write<uint32_t>((uint32_t)CV.signature())
-    .write(cv_pdb->signature())
-    .write<uint32_t>(cv_pdb->age())
-    .write(cv_pdb->filename())
-  ;
+  ios.write<uint32_t>((uint32_t)CV.signature())
+      .write(cv_pdb->signature())
+      .write<uint32_t>(cv_pdb->age())
+      .write(cv_pdb->filename());
   return ok();
 }

 ok_error_t build_pogo(const Pogo& pgo, vector_iostream& ios) {
   switch (pgo.signature()) {
-    default:
-      return make_error_code(lief_errors::not_supported);
+    default: return make_error_code(lief_errors::not_supported);
     case Pogo::SIGNATURES::ZERO:
     case Pogo::SIGNATURES::LCTG:
-      {
-        ios.write<uint32_t>((uint32_t)pgo.signature());
-        for (const PogoEntry& entry : pgo.entries()) {
-          ios
-            .write<uint32_t>(entry.start_rva())
+    case Pogo::SIGNATURES::SPGO:
+    case Pogo::SIGNATURES::PGI:
+    case Pogo::SIGNATURES::PGU:
+    {
+      ios.write<uint32_t>((uint32_t)pgo.signature());
+      for (const PogoEntry& entry : pgo.entries()) {
+        ios.write<uint32_t>(entry.start_rva())
             .write<uint32_t>(entry.size())
             .write(entry.name())
-            .align(4)
-          ;
-        }
-        return ok();
+            .align(4);
       }
+      return ok();
+    }
   }
   return ok();
 }

 ok_error_t build_repro(const Repro& repro, vector_iostream& ios) {
   span<const uint8_t> hash = repro.hash();
-  ios
-    .write<uint32_t>(hash.size())
-    .write(hash)
-  ;
+  ios.write<uint32_t>(hash.size()).write(hash);
   return ok();
 }

@@ -660,10 +641,7 @@ ok_error_t build_pdbchecksum(const PDBChecksum& checksum, vector_iostream& ios)
   const std::string& algo_name = to_string(checksum.algorithm());
   assert(algo_name != "UNKNOWN");

-  ios
-    .write(algo_name)
-    .write(checksum.hash())
-  ;
+  ios.write(algo_name).write(checksum.hash());
   return ok();
 }

@@ -697,8 +675,7 @@ ok_error_t build_vcfeatures(const VCFeature& vcfeature, vector_iostream& ios) {
 }

 ok_error_t build_exdllcharacteristics(const ExDllCharacteristics& characteristics,
-                                      vector_iostream& ios)
-{
+                                      vector_iostream& ios) {
   if (characteristics.sizeof_data() != sizeof(uint32_t)) {
     return make_error_code(lief_errors::not_supported);
   }
@@ -713,9 +690,14 @@ ok_error_t Builder::build_debug_info() {
   static constexpr auto FX_BASE_OFFSET = 1;
   DataDirectory* debug_dir = binary_->debug_dir();

+  if (debug_dir == nullptr) {
+    return ok();
+  }
+
   if (binary_->debug_.empty()) {
     if (debug_dir->RVA() > 0 && debug_dir->size() > 0) {
-      binary_->fill_address(debug_dir->RVA(), debug_dir->size());
+      binary_->fill_address(debug_dir->RVA(), debug_dir->size(),
+                            /*value=*/0, Binary::VA_TYPES::RVA);
     }
     debug_dir->RVA(0);
     debug_dir->size(0);
@@ -743,27 +725,23 @@ ok_error_t Builder::build_debug_info() {
     uint32_t hdr_pos = hdr_start + i * sizeof(details::pe_debug);
     span<uint8_t> payload = dbg->payload();

-    header_stream
-      .write<uint32_t>(dbg->characteristics())
-      .write<uint32_t>(dbg->timestamp())
-      .write<uint16_t>(dbg->major_version())
-      .write<uint16_t>(dbg->minor_version())
-      .write<uint32_t>((uint32_t)dbg->type())
-    ;
-    LIEF_DEBUG("  - Header pos:  0x{:06x}", hdr_pos);
-    LIEF_DEBUG("  - Payload pos: 0x{:06x}", payload_offset);
+    header_stream.write<uint32_t>(dbg->characteristics())
+        .write<uint32_t>(dbg->timestamp())
+        .write<uint16_t>(dbg->major_version())
+        .write<uint16_t>(dbg->minor_version())
+        .write<uint32_t>((uint32_t)dbg->type());
+    LIEF_DEBUG("  - Header pos:  {:#08x}", hdr_pos);
+    LIEF_DEBUG("  - Payload pos: {:#08x}", payload_offset);

-    const bool has_offset_rva = dbg->addressof_rawdata() != 0 ||
-                                dbg->pointerto_rawdata() != 0;
+    const bool has_offset_rva =
+        dbg->addressof_rawdata() != 0 || dbg->pointerto_rawdata() != 0;

     if (payload.empty() && has_offset_rva) {
-      LIEF_INFO("Empty payload. Can't rebuild the content of {}",
+      LIEF_INFO("Empty payload, cannot rebuild content of {}",
                 to_string(dbg->type()));
-      header_stream
-        .write<uint32_t>(dbg->sizeof_data())
-        .write<uint32_t>(dbg->addressof_rawdata())
-        .write<uint32_t>(dbg->pointerto_rawdata())
-      ;
+      header_stream.write<uint32_t>(dbg->sizeof_data())
+          .write<uint32_t>(dbg->addressof_rawdata())
+          .write<uint32_t>(dbg->pointerto_rawdata());
       continue;
     }

@@ -775,28 +753,24 @@ ok_error_t Builder::build_debug_info() {
       }
       header_stream.write<uint32_t>(ios_cv.size());

-      LIEF_DEBUG("codeview - original size 0x{:06x}", dbg->sizeof_data());
-      LIEF_DEBUG("codeview - new size      0x{:06x}", ios_cv.size());
+      LIEF_DEBUG("Codeview original size: {:#08x}", dbg->sizeof_data());
+      LIEF_DEBUG("Codeview new size:      {:#08x}", ios_cv.size());

       const int32_t delta = (int32_t)ios_cv.size() - dbg->sizeof_data();

       if (delta <= 0) {
         std::memset(payload.data(), 0, payload.size());
         std::copy(ios_cv.begin(), ios_cv.end(), payload.begin());
-        header_stream
-          .write<uint32_t>(dbg->addressof_rawdata())
-          .write<uint32_t>(dbg->pointerto_rawdata())
-        ;
+        header_stream.write<uint32_t>(dbg->addressof_rawdata())
+            .write<uint32_t>(dbg->pointerto_rawdata());
       } else {
         LIEF_DEBUG("Need to relocate entry #{} +{} bytes", i, delta);
         const size_t payload_off = payload_stream.tellp();
         payload_stream.write(ios_cv);
-        header_stream
-          .record_fixup(FX_BASE_RVA)
-          .write<uint32_t>(payload_off)
-          .record_fixup(FX_BASE_OFFSET)
-          .write<uint32_t>(payload_off)
-        ;
+        header_stream.record_fixup(FX_BASE_RVA)
+            .write<uint32_t>(payload_off)
+            .record_fixup(FX_BASE_OFFSET)
+            .write<uint32_t>(payload_off);
       }
       continue;
     }
@@ -809,28 +783,24 @@ ok_error_t Builder::build_debug_info() {
       }
       header_stream.write<uint32_t>(ios_pogo.size());

-      LIEF_DEBUG("pogo - original size 0x{:06x}", dbg->sizeof_data());
-      LIEF_DEBUG("pogo - new size      0x{:06x}", ios_pogo.size());
+      LIEF_DEBUG("POGO original size: {:#08x}", dbg->sizeof_data());
+      LIEF_DEBUG("POGO new size:      {:#08x}", ios_pogo.size());

       const int32_t delta = (int32_t)ios_pogo.size() - dbg->sizeof_data();

       if (delta <= 0) {
         std::memset(payload.data(), 0, payload.size());
         std::copy(ios_pogo.begin(), ios_pogo.end(), payload.begin());
-        header_stream
-          .write<uint32_t>(dbg->addressof_rawdata())
-          .write<uint32_t>(dbg->pointerto_rawdata())
-        ;
+        header_stream.write<uint32_t>(dbg->addressof_rawdata())
+            .write<uint32_t>(dbg->pointerto_rawdata());
       } else {
         LIEF_DEBUG("Need to relocate entry #{} +{} bytes", i, delta);
         const size_t payload_off = payload_stream.tellp();
         payload_stream.write(ios_pogo);
-        header_stream
-          .record_fixup(FX_BASE_RVA)
-          .write<uint32_t>(payload_off)
-          .record_fixup(FX_BASE_OFFSET)
-          .write<uint32_t>(payload_off)
-        ;
+        header_stream.record_fixup(FX_BASE_RVA)
+            .write<uint32_t>(payload_off)
+            .record_fixup(FX_BASE_OFFSET)
+            .write<uint32_t>(payload_off);
       }
       continue;
     }
@@ -843,28 +813,24 @@ ok_error_t Builder::build_debug_info() {
       }
       header_stream.write<uint32_t>(ios_repro.size());

-      LIEF_DEBUG("repro - original size 0x{:06x}", dbg->sizeof_data());
-      LIEF_DEBUG("repro - new size      0x{:06x}", ios_repro.size());
+      LIEF_DEBUG("Repro original size: {:#08x}", dbg->sizeof_data());
+      LIEF_DEBUG("Repro new size:      {:#08x}", ios_repro.size());

       const int32_t delta = (int32_t)ios_repro.size() - dbg->sizeof_data();

       if (delta <= 0) {
         std::memset(payload.data(), 0, payload.size());
         std::copy(ios_repro.begin(), ios_repro.end(), payload.begin());
-        header_stream
-          .write<uint32_t>(dbg->addressof_rawdata())
-          .write<uint32_t>(dbg->pointerto_rawdata())
-        ;
+        header_stream.write<uint32_t>(dbg->addressof_rawdata())
+            .write<uint32_t>(dbg->pointerto_rawdata());
       } else {
         LIEF_DEBUG("Need to relocate entry #{} +{} bytes", i, delta);
         const size_t payload_off = payload_stream.tellp();
         payload_stream.write(ios_repro);
-        header_stream
-          .record_fixup(FX_BASE_RVA)
-          .write<uint32_t>(payload_off)
-          .record_fixup(FX_BASE_OFFSET)
-          .write<uint32_t>(payload_off)
-        ;
+        header_stream.record_fixup(FX_BASE_RVA)
+            .write<uint32_t>(payload_off)
+            .record_fixup(FX_BASE_OFFSET)
+            .write<uint32_t>(payload_off);
       }
       continue;
     }
@@ -877,28 +843,24 @@ ok_error_t Builder::build_debug_info() {
       }
       header_stream.write<uint32_t>(ios_repro.size());

-      LIEF_DEBUG("pdbchecksum - original size 0x{:06x}", dbg->sizeof_data());
-      LIEF_DEBUG("pdbchecksum - new size      0x{:06x}", ios_repro.size());
+      LIEF_DEBUG("PDB checksum original size: {:#08x}", dbg->sizeof_data());
+      LIEF_DEBUG("PDB checksum new size:      {:#08x}", ios_repro.size());

       const int32_t delta = (int32_t)ios_repro.size() - dbg->sizeof_data();

       if (delta <= 0) {
         std::memset(payload.data(), 0, payload.size());
         std::copy(ios_repro.begin(), ios_repro.end(), payload.begin());
-        header_stream
-          .write<uint32_t>(dbg->addressof_rawdata())
-          .write<uint32_t>(dbg->pointerto_rawdata())
-        ;
+        header_stream.write<uint32_t>(dbg->addressof_rawdata())
+            .write<uint32_t>(dbg->pointerto_rawdata());
       } else {
         LIEF_DEBUG("Need to relocate entry #{} +{} bytes", i, delta);
         const size_t payload_off = payload_stream.tellp();
         payload_stream.write(ios_repro);
-        header_stream
-          .record_fixup(FX_BASE_RVA)
-          .write<uint32_t>(payload_off)
-          .record_fixup(FX_BASE_OFFSET)
-          .write<uint32_t>(payload_off)
-        ;
+        header_stream.record_fixup(FX_BASE_RVA)
+            .write<uint32_t>(payload_off)
+            .record_fixup(FX_BASE_OFFSET)
+            .write<uint32_t>(payload_off);
       }
       continue;
     }
@@ -911,28 +873,24 @@ ok_error_t Builder::build_debug_info() {
       }
       header_stream.write<uint32_t>(ios_vcfeat.size());

-      LIEF_DEBUG("vcfeature - original size 0x{:06x}", dbg->sizeof_data());
-      LIEF_DEBUG("vcfeature - new size      0x{:06x}", ios_vcfeat.size());
+      LIEF_DEBUG("VC feature original size: {:#08x}", dbg->sizeof_data());
+      LIEF_DEBUG("VC feature new size:      {:#08x}", ios_vcfeat.size());

       const int32_t delta = (int32_t)ios_vcfeat.size() - dbg->sizeof_data();

       if (delta <= 0) {
         std::memset(payload.data(), 0, payload.size());
         std::copy(ios_vcfeat.begin(), ios_vcfeat.end(), payload.begin());
-        header_stream
-          .write<uint32_t>(dbg->addressof_rawdata())
-          .write<uint32_t>(dbg->pointerto_rawdata())
-        ;
+        header_stream.write<uint32_t>(dbg->addressof_rawdata())
+            .write<uint32_t>(dbg->pointerto_rawdata());
       } else {
         LIEF_DEBUG("Need to relocate entry #{} +{} bytes", i, delta);
         const size_t payload_off = payload_stream.tellp();
         payload_stream.write(ios_vcfeat);
-        header_stream
-          .record_fixup(FX_BASE_RVA)
-          .write<uint32_t>(payload_off)
-          .record_fixup(FX_BASE_OFFSET)
-          .write<uint32_t>(payload_off)
-        ;
+        header_stream.record_fixup(FX_BASE_RVA)
+            .write<uint32_t>(payload_off)
+            .record_fixup(FX_BASE_OFFSET)
+            .write<uint32_t>(payload_off);
       }
       continue;
     }
@@ -945,39 +903,34 @@ ok_error_t Builder::build_debug_info() {
       }
       header_stream.write<uint32_t>(ios_exdll.size());

-      LIEF_DEBUG("ExDllCharacteristics - original size 0x{:06x}", dbg->sizeof_data());
-      LIEF_DEBUG("ExDllCharacteristics - new size      0x{:06x}", ios_exdll.size());
+      LIEF_DEBUG("ExDllCharacteristics - original size {:#08x}",
+                 dbg->sizeof_data());
+      LIEF_DEBUG("ExDllCharacteristics - new size      {:#08x}", ios_exdll.size());

       const int32_t delta = (int32_t)ios_exdll.size() - dbg->sizeof_data();

       if (delta <= 0) {
         std::memset(payload.data(), 0, payload.size());
         std::copy(ios_exdll.begin(), ios_exdll.end(), payload.begin());
-        header_stream
-          .write<uint32_t>(dbg->addressof_rawdata())
-          .write<uint32_t>(dbg->pointerto_rawdata())
-        ;
+        header_stream.write<uint32_t>(dbg->addressof_rawdata())
+            .write<uint32_t>(dbg->pointerto_rawdata());
       } else {
         LIEF_DEBUG("Need to relocate entry #{} +{} bytes", i, delta);
         const size_t payload_off = payload_stream.tellp();
         payload_stream.write(ios_exdll);
-        header_stream
-          .record_fixup(FX_BASE_RVA)
-          .write<uint32_t>(payload_off)
-          .record_fixup(FX_BASE_OFFSET)
-          .write<uint32_t>(payload_off)
-        ;
+        header_stream.record_fixup(FX_BASE_RVA)
+            .write<uint32_t>(payload_off)
+            .record_fixup(FX_BASE_OFFSET)
+            .write<uint32_t>(payload_off);
       }
       continue;
     }

-    LIEF_DEBUG("original size 0x{:06x}", dbg->sizeof_data());
-    LIEF_DEBUG("new size      0x{:06x}", payload.size());
+    LIEF_DEBUG("Original size: {:#08x}", dbg->sizeof_data());
+    LIEF_DEBUG("New size:      {:#08x}", payload.size());
     header_stream.write<uint32_t>(payload.size());
-    header_stream
-      .write<uint32_t>(dbg->addressof_rawdata())
-      .write<uint32_t>(dbg->pointerto_rawdata())
-    ;
+    header_stream.write<uint32_t>(dbg->addressof_rawdata())
+        .write<uint32_t>(dbg->pointerto_rawdata());
     continue;
   }

@@ -987,41 +940,41 @@ ok_error_t Builder::build_debug_info() {
   bool relocate_hdr = false;

   {
-    // Clear the original headers since it will be either: relocated or
+    // Clear the original headers since they will be either relocated or
     // overwritten
     span<uint8_t> raw = debug_dir->content();
     std::memset(raw.data(), 0, raw.size());
   }

   if (hdr_size > debug_dir->size()) {
-    LIEF_DEBUG("Need to relocated debug directory (for headers)");
+    LIEF_DEBUG("Need to relocate debug directory (for headers)");
     relocated_size += header_stream.size();
     relocate_hdr = true;
   }

   if (relocated_size > 0) {
-    relocated_size = align(relocated_size,
-                           binary_->optional_header().file_alignment());
+    relocated_size =
+        align(relocated_size, binary_->optional_header().file_alignment());

     Section dbg_section(config_.debug_section);
     dbg_section.reserve(relocated_size);
-    dbg_section
-      .add_characteristic(Section::CHARACTERISTICS::MEM_DISCARDABLE)
-      .add_characteristic(Section::CHARACTERISTICS::CNT_INITIALIZED_DATA)
-      .add_characteristic(Section::CHARACTERISTICS::MEM_READ);
+    dbg_section.add_characteristic(Section::CHARACTERISTICS::MEM_DISCARDABLE)
+        .add_characteristic(Section::CHARACTERISTICS::CNT_INITIALIZED_DATA)
+        .add_characteristic(Section::CHARACTERISTICS::MEM_READ);

     Section* new_dbg_section = binary_->add_section(dbg_section);
     if (new_dbg_section == nullptr) {
-      LIEF_ERR("Can't add a new dbg section");
+      LIEF_ERR("Failed to add new dbg section");
       return make_error_code(lief_errors::build_error);
     }

-    LIEF_DEBUG("{:10}: VA:  0x{:08x}", new_dbg_section->name(),
+    LIEF_DEBUG("{:10}: VA:  {:#010x}", new_dbg_section->name(),
                new_dbg_section->virtual_address());
-    LIEF_DEBUG("{:10}: OFF: 0x{:08x}", new_dbg_section->name(),
+    LIEF_DEBUG("{:10}: OFF: {:#010x}", new_dbg_section->name(),
                new_dbg_section->offset());

-    header_stream.apply_fixup<uint32_t>(FX_BASE_RVA, new_dbg_section->virtual_address());
+    header_stream.apply_fixup<uint32_t>(FX_BASE_RVA,
+                                        new_dbg_section->virtual_address());
     header_stream.apply_fixup<uint32_t>(FX_BASE_OFFSET, new_dbg_section->offset());

     vector_iostream sec_strm = new_dbg_section->edit();
@@ -1066,11 +1019,16 @@ ok_error_t Builder::build_exports() {
   // +-----------------------------+ <-------+              + Size

   DataDirectory* exp_dir = binary_->export_dir();
+  if (exp_dir == nullptr) {
+    return ok();
+  }
+
   Export* exp = binary_->get_export();

   if (exp == nullptr) {
     if (exp_dir->RVA() > 0 && exp_dir->size() > 0) {
-      binary_->fill_address(exp_dir->RVA(), exp_dir->size());
+      binary_->fill_address(exp_dir->RVA(), exp_dir->size(),
+                            /*value=*/0, Binary::VA_TYPES::RVA);
     }
     exp_dir->RVA(0);
     exp_dir->size(0);
@@ -1088,16 +1046,17 @@ ok_error_t Builder::build_exports() {
   std::vector<ExportEntry*> entries;
   entries.reserve(exp->entries_.size());
   std::transform(exp->entries_.begin(), exp->entries_.end(),
-    std::back_inserter(entries), [] (std::unique_ptr<ExportEntry>& E) { return E.get(); });
+                 std::back_inserter(entries),
+                 [](std::unique_ptr<ExportEntry>& E) { return E.get(); });

   std::stable_sort(entries.begin(), entries.end(),
-    [] (const ExportEntry* lhs, const ExportEntry* rhs) {
-      return lhs->name() < rhs->name();
-    }
-  );
+                   [](const ExportEntry* lhs, const ExportEntry* rhs) {
+                     return lhs->name() < rhs->name();
+                   });

   for (const ExportEntry* entry : entries) {
-    LIEF_DEBUG("{}: 0x{:06x} (ord={})", entry->name(), entry->function_rva(), entry->ordinal());
+    LIEF_DEBUG("{}: {:#08x} (ord={})", entry->name(), entry->function_rva(),
+               entry->ordinal());
     base_ord = std::min<uint32_t>(entry->ordinal(), base_ord);
     max_ord = std::max<uint32_t>(entry->ordinal(), max_ord);
     bool has_name = false;
@@ -1117,31 +1076,37 @@ ok_error_t Builder::build_exports() {
   size_t addr_table_cnt = max_ord;

   size_t offset_counter = 0;
-  std::vector<std::string> strings_opt =
-    optimize(strings, [] (const std::string& s) { return s; }, offset_counter,
-             &strmap_offset);
+  std::vector<std::string> strings_opt = optimize(
+      strings, [](const std::string& s) { return s; }, offset_counter,
+      &strmap_offset
+  );

   uint32_t head_off = 0;
   uint32_t addr_table_off = head_off + sizeof(details::pe_export_directory_table);
   uint32_t names_table_off = addr_table_off + addr_table_cnt * sizeof(uint32_t);
   uint32_t ord_table_off = names_table_off + name_table_cnt * sizeof(uint32_t);
   uint32_t str_table_off = ord_table_off + name_table_cnt * sizeof(uint16_t);
-  const uint32_t tail_off = align(str_table_off + offset_counter, sizeof(uint32_t));
+  const uint32_t tail_off =
+      align(str_table_off + offset_counter, sizeof(uint32_t));

   LIEF_DEBUG("Address table count: #{:03d}", addr_table_cnt);
   LIEF_DEBUG("Name table count:    #{:03d}", name_table_cnt);
   LIEF_DEBUG("Base ordinal:        #{:03d}", base_ord);
   LIEF_DEBUG("Max ordinal:         #{:03d}", max_ord);
-  LIEF_DEBUG("String table size:   0x{:06x}", offset_counter);
-  LIEF_DEBUG("Original size:       0x{:06x}", exp_dir->size());
-  LIEF_DEBUG("New size:            0x{:06x}", tail_off);
-  LIEF_DEBUG("Delta size:          {:d}", (int32_t)tail_off - (int32_t)exp_dir->size());
+  LIEF_DEBUG("String table size:   {:#08x}", offset_counter);
+  LIEF_DEBUG("Original size:       {:#08x}", exp_dir->size());
+  LIEF_DEBUG("New size:            {:#08x}", tail_off);
+  LIEF_DEBUG("Delta size:          {:d}",
+             (int32_t)tail_off - (int32_t)exp_dir->size());
   LIEF_DEBUG("Offsets");
-  LIEF_DEBUG("  - Header:        [0x{:04x}, 0x{:08x}]", head_off, addr_table_off);
-  LIEF_DEBUG("  - Address Table: [0x{:04x}, 0x{:08x}]", addr_table_off, names_table_off);
-  LIEF_DEBUG("  - Names Table:   [0x{:04x}, 0x{:08x}]", names_table_off, ord_table_off);
-  LIEF_DEBUG("  - Ord Table:     [0x{:04x}, 0x{:08x}]", ord_table_off, str_table_off);
-  LIEF_DEBUG("  - Str Table:     [0x{:04x}, 0x{:08x}]", str_table_off, tail_off);
+  LIEF_DEBUG("  - Header:        [{:#06x}, {:#010x}]", head_off, addr_table_off);
+  LIEF_DEBUG("  - Address Table: [{:#06x}, {:#010x}]", addr_table_off,
+             names_table_off);
+  LIEF_DEBUG("  - Names Table:   [{:#06x}, {:#010x}]", names_table_off,
+             ord_table_off);
+  LIEF_DEBUG("  - Ord Table:     [{:#06x}, {:#010x}]", ord_table_off,
+             str_table_off);
+  LIEF_DEBUG("  - Str Table:     [{:#06x}, {:#010x}]", str_table_off, tail_off);

   vector_iostream ios;
   static constexpr auto FX_BASE_RVA = 0;
@@ -1150,28 +1115,27 @@ ok_error_t Builder::build_exports() {
   if (auto it = strmap_offset.find(exp->name()); it != strmap_offset.end()) {
     name_off = str_table_off + it->second;
   } else {
-    LIEF_ERR("Can't find '{}' in the optimized string table");
+    LIEF_ERR("Entry '{}' not found in optimized string table");
     return make_error_code(lief_errors::build_error);
   }

-  ios
-    .reserve(tail_off).init_fixups(1)
-    .write<uint32_t>(exp->export_flags())
-    .write<uint32_t>(exp->timestamp())
-    .write<uint16_t>(exp->major_version())
-    .write<uint16_t>(exp->minor_version())
-    .record_fixup(FX_BASE_RVA)
-    .write<uint32_t>(name_off)
-    .write<uint32_t>(base_ord)
-    .write<uint32_t>(addr_table_cnt)
-    .write<uint32_t>(name_table_cnt)
-    .record_fixup(FX_BASE_RVA)
-    .write<uint32_t>(addr_table_off)
-    .record_fixup(FX_BASE_RVA)
-    .write<uint32_t>(names_table_off)
-    .record_fixup(FX_BASE_RVA)
-    .write<uint32_t>(ord_table_off)
-  ;
+  ios.reserve(tail_off)
+      .init_fixups(1)
+      .write<uint32_t>(exp->export_flags())
+      .write<uint32_t>(exp->timestamp())
+      .write<uint16_t>(exp->major_version())
+      .write<uint16_t>(exp->minor_version())
+      .record_fixup(FX_BASE_RVA)
+      .write<uint32_t>(name_off)
+      .write<uint32_t>(base_ord)
+      .write<uint32_t>(addr_table_cnt)
+      .write<uint32_t>(name_table_cnt)
+      .record_fixup(FX_BASE_RVA)
+      .write<uint32_t>(addr_table_off)
+      .record_fixup(FX_BASE_RVA)
+      .write<uint32_t>(names_table_off)
+      .record_fixup(FX_BASE_RVA)
+      .write<uint32_t>(ord_table_off);
   size_t name_idx = 0;
   for (const ExportEntry* E : entries) {
     int32_t idx = E->ordinal() - base_ord;
@@ -1186,45 +1150,44 @@ ok_error_t Builder::build_exports() {
       LIEF_DEBUG("Writing back fwd: {}", fwd_key);
       auto it = strmap_offset.find(fwd_key);
       if (it == strmap_offset.end()) {
-        LIEF_ERR("Can't find forwarded key '{}' in the optimized string table",
+        LIEF_ERR("Forwarded key '{}' not found in optimized string table",
                  fwd_key);
         return make_error_code(lief_errors::build_error);
       }

       auto it_name = strmap_offset.find(E->name());
       if (it_name == strmap_offset.end()) {
-        LIEF_ERR("Can't find name '{}' in the optimized string table", E->name());
+        LIEF_ERR("Name '{}' not found in optimized string table", E->name());
         return make_error_code(lief_errors::build_error);
       }
       ios
-        // Write addr table
-        .seekp(addr_table_off + idx * sizeof(uint32_t))
-        .record_fixup(FX_BASE_RVA)
-        .write<uint32_t>(str_table_off + it->second)
-        // Write ordinal value
-        .seekp(ord_table_off + name_idx * sizeof(uint16_t))
-        .write<uint16_t>(E->ordinal() - base_ord)
-        // Write name table
-        .seekp(names_table_off + name_idx * sizeof(uint32_t))
-        .record_fixup(FX_BASE_RVA)
-        .write<uint32_t>(str_table_off + it_name->second);
+          // Write addr table
+          .seekp(addr_table_off + idx * sizeof(uint32_t))
+          .record_fixup(FX_BASE_RVA)
+          .write<uint32_t>(str_table_off + it->second)
+          // Write ordinal value
+          .seekp(ord_table_off + name_idx * sizeof(uint16_t))
+          .write<uint16_t>(E->ordinal() - base_ord)
+          // Write name table
+          .seekp(names_table_off + name_idx * sizeof(uint32_t))
+          .record_fixup(FX_BASE_RVA)
+          .write<uint32_t>(str_table_off + it_name->second);
       ++name_idx;
-    } else if (const std::string& name = E->name(); !name.empty()){
+    } else if (const std::string& name = E->name(); !name.empty()) {
       auto it = strmap_offset.find(name);

       if (it == strmap_offset.end()) {
-        LIEF_ERR("Can't find '{}' in the optimized string table", name);
+        LIEF_ERR("Entry '{}' not found in optimized string table", name);
         return make_error_code(lief_errors::build_error);
       }

-      ios
-        .seekp(addr_table_off + idx * sizeof(uint32_t))
-        .write<uint32_t>(rva)
-        .seekp(ord_table_off + name_idx * sizeof(uint16_t))
-        .write<uint16_t>(E->ordinal() - base_ord)
-        .seekp(names_table_off + name_idx * sizeof(uint32_t))
-        .record_fixup(FX_BASE_RVA)
-        .write<uint32_t>(str_table_off + it->second);
+      ios.seekp(addr_table_off + idx * sizeof(uint32_t))
+          .write<uint32_t>(rva)
+          .seekp(ord_table_off + name_idx * sizeof(uint16_t))
+          .write<uint16_t>(E->ordinal() - base_ord)
+          .seekp(names_table_off + name_idx * sizeof(uint32_t))
+          .record_fixup(FX_BASE_RVA)
+          .write<uint32_t>(str_table_off + it->second);
       ;
       ++name_idx;
     }
@@ -1238,19 +1201,18 @@ ok_error_t Builder::build_exports() {

   ios.align(sizeof(uint32_t));

-  const size_t relocated_size = align(tail_off,
-                                      binary_->optional_header().file_alignment());
+  const size_t relocated_size =
+      align(tail_off, binary_->optional_header().file_alignment());

   Section edata_section(config_.export_section);
   edata_section.reserve(relocated_size);
-  edata_section
-    .add_characteristic(Section::CHARACTERISTICS::CNT_INITIALIZED_DATA)
-    .add_characteristic(Section::CHARACTERISTICS::MEM_READ);
+  edata_section.add_characteristic(Section::CHARACTERISTICS::CNT_INITIALIZED_DATA)
+      .add_characteristic(Section::CHARACTERISTICS::MEM_READ);


   Section* new_edata_section = binary_->add_section(edata_section);
   if (new_edata_section == nullptr) {
-    LIEF_ERR("Can't add a new edata section");
+    LIEF_ERR("Failed to add new edata section");
     return make_error_code(lief_errors::build_error);
   }
   exp_dir->RVA(new_edata_section->virtual_address());
@@ -1263,4 +1225,3 @@ ok_error_t Builder::build_exports() {
 }

 }
-}
diff --git a/deps/LIEF/src/PE/Builder.tcc b/deps/LIEF/src/PE/Builder.tcc
index 0f8ec91798b..f0d9d88897a 100644
--- a/deps/LIEF/src/PE/Builder.tcc
+++ b/deps/LIEF/src/PE/Builder.tcc
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -28,71 +28,66 @@
 #include "logging.hpp"
 #include "LIEF/utils.hpp"

-namespace LIEF {
-namespace PE {
+
+namespace LIEF::PE {

 template<typename PE_T>
 ok_error_t Builder::build_optional_header(const OptionalHeader& optional_header) {
-  using uint__             = typename PE_T::uint;
+  using uint__ = typename PE_T::uint;
   using pe_optional_header = typename PE_T::pe_optional_header;

   // Build optional header
-  binary_->optional_header()
-    .sizeof_image(static_cast<uint32_t>(binary_->virtual_size()));
-  binary_->optional_header()
-    .sizeof_headers(static_cast<uint32_t>(binary_->sizeof_headers()));
+  binary_->optional_header().sizeof_image(
+      static_cast<uint32_t>(binary_->virtual_size())
+  );
+  binary_->optional_header().sizeof_headers(
+      static_cast<uint32_t>(binary_->sizeof_headers())
+  );

   vector_iostream pe_opt_hdr_strm;
   pe_opt_hdr_strm.reserve(sizeof(pe_optional_header));

-  pe_opt_hdr_strm
-    .write<uint16_t>((int)optional_header.magic())
-    .write<uint8_t>(optional_header.major_linker_version())
-    .write<uint8_t>(optional_header.minor_linker_version())
-    .write<uint32_t>(optional_header.sizeof_code())
-    .write<uint32_t>(optional_header.sizeof_initialized_data())
-    .write<uint32_t>(optional_header.sizeof_uninitialized_data())
-    .write<uint32_t>(optional_header.addressof_entrypoint())
-    .write<uint32_t>(optional_header.baseof_code())
-  ;
+  pe_opt_hdr_strm.write<uint16_t>((int)optional_header.magic())
+      .write<uint8_t>(optional_header.major_linker_version())
+      .write<uint8_t>(optional_header.minor_linker_version())
+      .write<uint32_t>(optional_header.sizeof_code())
+      .write<uint32_t>(optional_header.sizeof_initialized_data())
+      .write<uint32_t>(optional_header.sizeof_uninitialized_data())
+      .write<uint32_t>(optional_header.addressof_entrypoint())
+      .write<uint32_t>(optional_header.baseof_code());

   if constexpr (std::is_same_v<PE_T, details::PE32>) {
     pe_opt_hdr_strm.write<uint32_t>(optional_header.baseof_data());
   }

-  pe_opt_hdr_strm
-    .template write<uint__>(optional_header.imagebase())
-    .template write<uint32_t>(optional_header.section_alignment())
-    .template write<uint32_t>(optional_header.file_alignment())
-    .template write<uint16_t>(optional_header.major_operating_system_version())
-    .template write<uint16_t>(optional_header.minor_operating_system_version())
-    .template write<uint16_t>(optional_header.major_image_version())
-    .template write<uint16_t>(optional_header.minor_image_version())
-    .template write<uint16_t>(optional_header.major_subsystem_version())
-    .template write<uint16_t>(optional_header.minor_subsystem_version())
-    .template write<uint32_t>(optional_header.win32_version_value())
-    .template write<uint32_t>(optional_header.sizeof_image())
-    .template write<uint32_t>(optional_header.sizeof_headers())
-    .template write<uint32_t>(optional_header.checksum())
-    .template write<uint16_t>((int)optional_header.subsystem())
-    .template write<uint16_t>((int)optional_header.dll_characteristics())
-    .template write<uint__>(optional_header.sizeof_stack_reserve())
-    .template write<uint__>(optional_header.sizeof_stack_commit())
-    .template write<uint__>(optional_header.sizeof_heap_reserve())
-    .template write<uint__>(optional_header.sizeof_heap_commit())
-    .template write<uint32_t>(optional_header.loader_flags())
-    .template write<uint32_t>(optional_header.numberof_rva_and_size())
-  ;
+  pe_opt_hdr_strm.template write<uint__>(optional_header.imagebase())
+      .template write<uint32_t>(optional_header.section_alignment())
+      .template write<uint32_t>(optional_header.file_alignment())
+      .template write<uint16_t>(optional_header.major_operating_system_version())
+      .template write<uint16_t>(optional_header.minor_operating_system_version())
+      .template write<uint16_t>(optional_header.major_image_version())
+      .template write<uint16_t>(optional_header.minor_image_version())
+      .template write<uint16_t>(optional_header.major_subsystem_version())
+      .template write<uint16_t>(optional_header.minor_subsystem_version())
+      .template write<uint32_t>(optional_header.win32_version_value())
+      .template write<uint32_t>(optional_header.sizeof_image())
+      .template write<uint32_t>(optional_header.sizeof_headers())
+      .template write<uint32_t>(optional_header.checksum())
+      .template write<uint16_t>((int)optional_header.subsystem())
+      .template write<uint16_t>((int)optional_header.dll_characteristics())
+      .template write<uint__>(optional_header.sizeof_stack_reserve())
+      .template write<uint__>(optional_header.sizeof_stack_commit())
+      .template write<uint__>(optional_header.sizeof_heap_reserve())
+      .template write<uint__>(optional_header.sizeof_heap_commit())
+      .template write<uint32_t>(optional_header.loader_flags())
+      .template write<uint32_t>(optional_header.numberof_rva_and_size());

   assert(pe_opt_hdr_strm.size() == sizeof(pe_optional_header));

   const uint32_t address_next_header =
-    binary_->dos_header().addressof_new_exeheader() +
-    sizeof(details::pe_header);
+      binary_->dos_header().addressof_new_exeheader() + sizeof(details::pe_header);

-  ios_
-    .seekp(address_next_header)
-    .write(pe_opt_hdr_strm);
+  ios_.seekp(address_next_header).write(pe_opt_hdr_strm);
   return ok();
 }

@@ -110,12 +105,17 @@ ok_error_t Builder::build_tls() {
   const bool is64_bit = binary_->optional_header().magic() == PE_TYPE::PE32_PLUS;

   DataDirectory* tls_dir = binary_->tls_dir();
+  DataDirectory* reloc_dir = binary_->relocation_dir();
+
+  if (tls_dir == nullptr || reloc_dir == nullptr) {
+    return ok();
+  }

   // True if the TLS object has been created and was not
   // originally present in the binary
   const bool is_created = tls_dir->RVA() == 0 || tls_dir->size() == 0;

-  LIEF_DEBUG("TLS: [0x{:08x}, 0x{:08x}]", tls_dir->RVA(),
+  LIEF_DEBUG("TLS: [{:#010x}, {:#010x}]", tls_dir->RVA(),
              tls_dir->RVA() + tls_dir->size());

   vector_iostream ios_callbacks;
@@ -130,11 +130,14 @@ ok_error_t Builder::build_tls() {
   }

   /// 0 ending is on uint32_t not uint64_t
-  const size_t original_callback_size = binary_->sizing_info_.nb_tls_callbacks > 0 ?
-    binary_->sizing_info_.nb_tls_callbacks * sizeof(uint__) + sizeof(uint32_t) : 0;
+  const size_t original_callback_size =
+      binary_->sizing_info_.nb_tls_callbacks > 0 ?
+          binary_->sizing_info_.nb_tls_callbacks * sizeof(uint__) +
+              sizeof(uint32_t) :
+          0;

   const uint64_t imagebase = binary_->optional_header().imagebase();
-  // addressof_callbacks is a VA not a RVA
+  // addressof_callbacks is a VA, not an RVA
   uint32_t tls_callbacks_start = 0;
   uint32_t tls_callbacks_end = 0;

@@ -156,22 +159,18 @@ ok_error_t Builder::build_tls() {
     LIEF_DEBUG("Need to create a TLS section");
     Section tls_section(config_.tls_section);
     const size_t allocated_size =
-      align(tls_data_.callbacks.size() + sizeof(tls_header) +
-            /* index */ sizeof(uint__),
-            binary_->optional_header().file_alignment());
+        align(tls_data_.callbacks.size() + sizeof(tls_header) +
+                  /* index */ sizeof(uint__),
+              binary_->optional_header().file_alignment());

-    tls_section
-      .reserve(allocated_size)
-      .add_characteristic(Section::CHARACTERISTICS::CNT_INITIALIZED_DATA)
-      .add_characteristic(Section::CHARACTERISTICS::MEM_READ)
-      .add_characteristic(Section::CHARACTERISTICS::MEM_WRITE);
+    tls_section.reserve(allocated_size)
+        .add_characteristic(Section::CHARACTERISTICS::CNT_INITIALIZED_DATA)
+        .add_characteristic(Section::CHARACTERISTICS::MEM_READ)
+        .add_characteristic(Section::CHARACTERISTICS::MEM_WRITE);

     Section* new_tls_section = binary_->add_section(tls_section);
     vector_iostream write_strm = new_tls_section->edit();
-    write_strm
-      .write(tls_data_.callbacks)
-      .write(sizeof(tls_header), 0)
-      .write(0);
+    write_strm.write(tls_data_.callbacks).write(sizeof(tls_header), 0).write(0);

     tls_dir->RVA(new_tls_section->virtual_address() + write_strm.tellp());
     tls_dir->size(sizeof(tls_header));
@@ -184,8 +183,8 @@ ok_error_t Builder::build_tls() {

     if (tls->addressof_callbacks() != 0) {
       LIEF_WARN("Replacing existing address of callbacks from "
-                "0x{:016x} to 0x{:016x}", tls->addressof_callbacks(),
-                new_tls_section->virtual_address());
+                "{:#018x} to {:#018x}",
+                tls->addressof_callbacks(), new_tls_section->virtual_address());
     }
     tls->addressof_callbacks(imagebase + new_tls_section->virtual_address());

@@ -198,60 +197,67 @@ ok_error_t Builder::build_tls() {
                                        RelocationEntry::BASE_TYPES::HIGHLOW;

     // Create relocations
-    if (auto addr_raw = tls->addressof_raw_data(); addr_raw.first > 0) {
+    if (auto [raw_start, raw_end] = tls->addressof_raw_data(); raw_start > 0) {
       const size_t pos = tls_header_start + offsetof(tls_header, RawDataStartVA);
-      assert(pos >= r_base_addr && (pos - r_base_addr) < RelocationEntry::MAX_ADDR);
+      assert(pos >= r_base_addr &&
+             (pos - r_base_addr) < RelocationEntry::MAX_ADDR);
       r_base.add_entry({(uint16_t)(pos - r_base_addr), default_ty});
     }

-    if (auto addr_raw = tls->addressof_raw_data(); addr_raw.second > 0) {
+    if (auto [raw_start, raw_end] = tls->addressof_raw_data(); raw_end > 0) {
       const size_t pos = tls_header_start + offsetof(tls_header, RawDataEndVA);
-      assert(pos >= r_base_addr && (pos - r_base_addr) < RelocationEntry::MAX_ADDR);
+      assert(pos >= r_base_addr &&
+             (pos - r_base_addr) < RelocationEntry::MAX_ADDR);
       r_base.add_entry({(uint16_t)(pos - r_base_addr), default_ty});
     }

     if (auto addr = tls->addressof_index(); addr > 0) {
       const size_t pos = tls_header_start + offsetof(tls_header, AddressOfIndex);
-      assert(pos >= r_base_addr && (pos - r_base_addr) < RelocationEntry::MAX_ADDR);
+      assert(pos >= r_base_addr &&
+             (pos - r_base_addr) < RelocationEntry::MAX_ADDR);
       r_base.add_entry({(uint16_t)(pos - r_base_addr), default_ty});
     }

     if (auto addr = tls->addressof_callbacks(); addr > 0) {
-      const size_t pos = tls_header_start + offsetof(tls_header, AddressOfCallback);
-      assert(pos >= r_base_addr && (pos - r_base_addr) < RelocationEntry::MAX_ADDR);
+      const size_t pos =
+          tls_header_start + offsetof(tls_header, AddressOfCallback);
+      assert(pos >= r_base_addr &&
+             (pos - r_base_addr) < RelocationEntry::MAX_ADDR);
       r_base.add_entry({(uint16_t)(pos - r_base_addr), default_ty});
     }

     for (size_t i = 0; i < tls->callbacks().size(); ++i) {
       const size_t pos = tls_cbk_start + i * sizeof(uint__);
-      assert(pos >= r_base_addr && (pos - r_base_addr) < RelocationEntry::MAX_ADDR);
+      assert(pos >= r_base_addr &&
+             (pos - r_base_addr) < RelocationEntry::MAX_ADDR);
       r_base.add_entry({(uint16_t)(pos - r_base_addr), default_ty});
     }
     binary_->add_relocation(r_base);
   }
   // User added new callbacks
-  else if (tls_data_.callbacks.size() > original_callback_size || config_.force_relocating) {
-    LIEF_DEBUG("Need to relocated TLS Callbacks (0x{:06x} new bytes)",
+  else if (tls_data_.callbacks.size() > original_callback_size ||
+           config_.force_relocating)
+  {
+    LIEF_DEBUG("Need to relocate TLS callbacks ({:#08x} new bytes)",
                tls_data_.callbacks.size() - original_callback_size);
     Section tls_section(config_.tls_section);

-    // We don't necessary need to relocate the TLS header but it can be worth
-    // reserving this space ahead of a potential need. In the "worse" case
+    // We don't necessarily need to relocate the TLS header but it can be worth
+    // reserving this space ahead of a potential need. In the worst case
     // of a PE32+, 36 bytes are reserved.
     const size_t relocated_size =
-      align(tls_data_.callbacks.size() + sizeof(tls_header),
-            binary_->optional_header().file_alignment());
+        align(tls_data_.callbacks.size() + sizeof(tls_header),
+              binary_->optional_header().file_alignment());

-    tls_section
-      .reserve(relocated_size)
-      .add_characteristic(Section::CHARACTERISTICS::CNT_INITIALIZED_DATA)
-      .add_characteristic(Section::CHARACTERISTICS::MEM_READ)
-      .add_characteristic(Section::CHARACTERISTICS::MEM_WRITE);
+    tls_section.reserve(relocated_size)
+        .add_characteristic(Section::CHARACTERISTICS::CNT_INITIALIZED_DATA)
+        .add_characteristic(Section::CHARACTERISTICS::MEM_READ)
+        .add_characteristic(Section::CHARACTERISTICS::MEM_WRITE);

     Section* new_tls_section = binary_->add_section(tls_section);
     new_tls_section->edit().write(tls_data_.callbacks);
     tls->addressof_callbacks(imagebase + new_tls_section->virtual_address());
-    LIEF_DEBUG("TLS new callbacks address: 0x{:08x} (0x{:016x})",
+    LIEF_DEBUG("TLS new callbacks address: {:#010x} ({:#018x})",
                new_tls_section->virtual_address(), tls->addressof_callbacks());

     // Process relocations to make sure they are consistent with the new
@@ -269,13 +275,13 @@ ok_error_t Builder::build_tls() {
         bool in_cbk = tls_callbacks_start <= addr && addr < tls_callbacks_end;

         if (in_hdr) {
-          LIEF_DEBUG("{:16}: 0x{:04x} ({})", "TLS reloc header", addr,
+          LIEF_DEBUG("{:16}: {:#06x} ({})", "TLS reloc header", addr,
                      to_string(E->type()));
           hdr_relocations.push_back(E.get());
         }

         if (in_cbk) {
-          LIEF_DEBUG("{:16}: 0x{:04x} ({})", "TLS reloc cbk", addr,
+          LIEF_DEBUG("{:16}: {:#06x} ({})", "TLS reloc cbk", addr,
                      to_string(E->type()));
           cbk_relocations.push_back(E.get());
         }
@@ -286,6 +292,7 @@ ok_error_t Builder::build_tls() {
     LIEF_DEBUG("relocations[callbacks]: #{:04d}", cbk_relocations.size());

     // Erase relocations associated with callbacks
+    size_t rm_entries = 0;
     for (RelocationEntry* E : cbk_relocations) {
       Relocation* parent = E->parent();

@@ -293,15 +300,22 @@ ok_error_t Builder::build_tls() {
         LIEF_WARN("Missing parent relocation");
         continue;
       }
-
+      size_t count = parent->entries_.size();
       parent->entries_.erase(
-        std::remove_if(parent->entries_.begin(), parent->entries_.end(),
-          [E] (std::unique_ptr<RelocationEntry>& F) {
-            return E == F.get();
-        }), parent->entries_.end());
+          std::remove_if(parent->entries_.begin(), parent->entries_.end(),
+                         [E](std::unique_ptr<RelocationEntry>& F) {
+                           return E == F.get();
+                         }),
+          parent->entries_.end()
+      );
+      rm_entries += count - parent->entries_.size();
     }

-    // Relocation that need to be created:
+    uint64_t reloc_size = reloc_dir->size();
+    reloc_size -= rm_entries * sizeof(uint16_t);
+    reloc_dir->size(reloc_size);
+
+    // Relocations that need to be created:
     const size_t req_relocs = tls->callbacks().size();
     LIEF_DEBUG("Need to create #{} relocations", req_relocs);

@@ -312,7 +326,7 @@ ok_error_t Builder::build_tls() {
                                        RelocationEntry::BASE_TYPES::HIGHLOW;
     for (size_t i = 0; i < req_relocs; ++i) {
       const uint16_t pos = i * sizeof(uint__);
-      assert (pos < RelocationEntry::MAX_ADDR);
+      assert(pos < RelocationEntry::MAX_ADDR);
       reloc_base.add_entry(RelocationEntry(pos, default_ty));
     }

@@ -320,51 +334,59 @@ ok_error_t Builder::build_tls() {

   } else /* We can write the TLS callbacks without relocating the table */ {
     [[maybe_unused]]
-      int64_t delta_size = original_callback_size - tls_data_.callbacks.size();
-    LIEF_DEBUG("TLS Callbacks -0x{:06x}", delta_size);
+    int64_t delta_size = original_callback_size - tls_data_.callbacks.size();
+    LIEF_DEBUG("TLS Callbacks -{:#08x}", delta_size);
     if (tls_data_.callbacks.empty() && original_callback_size != 0) {
       // The callbacks have been removed. In this case, we need to remove any
-      // relocation pointing in the current callback section, set addressof_callbacks
-      // to 0 and fill the existing callback bytes with 0
+      // relocation pointing in the current callback section, set
+      // addressof_callbacks to 0 and fill the existing callback bytes with 0
       for (Relocation& R : binary_->relocations()) {
         auto& entries = R.entries_;
         [[maybe_unused]] const size_t S1 = R.entries_.size();
-        entries.erase(
-          std::remove_if(entries.begin(), entries.end(),
-          [tls_callbacks_start, tls_callbacks_end] (std::unique_ptr<RelocationEntry>& E)
-          {
-            uint32_t addr = E->address();
-            return tls_callbacks_start <= addr && addr < tls_callbacks_end;
-          }
-        ), entries.end());
-        [[maybe_unused]] const size_t S2 = R.entries_.size();
-        LIEF_DEBUG("#{} relocation deleted", S1 - S2);
+        entries.erase(std::remove_if(entries.begin(), entries.end(),
+                                     [tls_callbacks_start, tls_callbacks_end](
+                                         std::unique_ptr<RelocationEntry>& E
+                                     ) {
+                                       uint32_t addr = E->address();
+                                       return tls_callbacks_start <= addr &&
+                                              addr < tls_callbacks_end;
+                                     }),
+                      entries.end());
+        const size_t S2 = R.entries_.size();
+        size_t rm_count = S1 - S2;
+        LIEF_DEBUG("#{} relocation deleted", rm_count);
+        uint64_t reloc_size = reloc_dir->size();
+        reloc_size -= rm_count * sizeof(uint16_t);
+        reloc_dir->size(reloc_size);
       }

-      binary_->fill_address(tls_callbacks_start, original_callback_size, 0);
+      binary_->fill_address(tls_callbacks_start, original_callback_size, 0,
+                            Binary::VA_TYPES::RVA);
       tls->addressof_callbacks(0);
     } else {
-      binary_->patch_address(tls_callbacks_start, tls_data_.callbacks);
+      binary_->patch_address(tls_callbacks_start, tls_data_.callbacks,
+                             Binary::VA_TYPES::RVA);
     }
   }

   vector_iostream ios_header;
   ios_header.reserve(sizeof(tls_header));
-  ios_header
-    .template write<uint__>(tls->addressof_raw_data())
-    .template write<uint__>(tls->addressof_index())
-    .template write<uint__>(tls->addressof_callbacks())
-    .template write<uint32_t>(tls->sizeof_zero_fill())
-    .template write<uint32_t>(tls->characteristics())
-  ;
+  ios_header.template write<uint__>(tls->addressof_raw_data())
+      .template write<uint__>(tls->addressof_index())
+      .template write<uint__>(tls->addressof_callbacks())
+      .template write<uint32_t>(tls->sizeof_zero_fill())
+      .template write<uint32_t>(tls->characteristics());

   ios_header.move(tls_data_.header);
-  if (const DataDirectory* dir = binary_->tls_dir(); dir->RVA() > 0) {
+  if (const DataDirectory* dir = binary_->tls_dir();
+      dir != nullptr && dir->RVA() > 0)
+  {
     if (dir->size() < tls_data_.header.size()) {
-      LIEF_WARN("TLS Header is larger than the original. original=0x{:08x}, "
-                "new=0x{:08x}", dir->size(), tls_data_.header.size());
+      LIEF_WARN("TLS header larger than original (original={:#010x}, "
+                "new={:#010x})",
+                dir->size(), tls_data_.header.size());
     }
-    binary_->patch_address(dir->RVA(), tls_data_.header);
+    binary_->patch_address(dir->RVA(), tls_data_.header, Binary::VA_TYPES::RVA);
   }

   return ok();
@@ -428,7 +450,7 @@ ok_error_t Builder::build_imports() {
   // | DLL Names                |
   // +--------------------------+
   //
-  // and the layout for PE compiled with MinGW is also different [...].
+  // and the layout for PE files compiled with MinGW is also different [...].
   // Thus, we can't make any assumptions about a standardized layout of the
   // imports.
   //
@@ -502,6 +524,11 @@ ok_error_t Builder::build_imports() {
   LIEF_DEBUG("Rebuilding imports");

   DataDirectory* import_dir = binary_->import_dir();
+
+  if (import_dir == nullptr) {
+    return ok();
+  }
+
   if (binary_->imports_.empty()) {
     import_dir->RVA(0);
     import_dir->size(0);
@@ -520,28 +547,26 @@ ok_error_t Builder::build_imports() {
     const std::string& imp_name = imp.name();
     if (auto it = names_offset.find(imp_name); it == names_offset.end()) {
       names_offset[imp_name] = names_stream.tellp();
-      names_stream
-        .write(imp_name);
+      names_stream.write(imp_name);
     }
     for (const ImportEntry& entry : imp.entries()) {
       const std::string& entry_name = entry.name();
       if (auto it = names_offset.find(entry_name); it == names_offset.end()) {
         names_offset[entry_name] = names_stream.tellp();
-        names_stream
-          .write<uint16_t>(entry.hint())
-          .write(entry_name)
-          .align(2);
+        names_stream.write<uint16_t>(entry.hint()).write(entry_name).align(2);
       }
     }
-    nb_imported_functions += imp.nb_original_func() > 0 ? imp.nb_original_func() :
-                                                          imp.entries().size();
+    nb_imported_functions +=
+        imp.nb_original_func() > 0 ? imp.nb_original_func() : imp.entries().size();
     ++nb_imported_functions; // For the null entry
   }

   uint32_t headers_offset = 0;
-  uint32_t ilt_offsets    = headers_offset + (binary_->imports().size() + 1) * sizeof(details::pe_import);
+  uint32_t ilt_offsets = headers_offset + (binary_->imports().size() + 1) *
+                                              sizeof(details::pe_import);
   uint32_t strings_offset = ilt_offsets + nb_imported_functions * sizeof(uint__);
-  uint32_t iat_offset     = align(strings_offset + names_stream.size(), sizeof(uint16_t));
+  uint32_t iat_offset =
+      align(strings_offset + names_stream.size(), sizeof(uint16_t));

   headers_ilt.init_fixups(_FX_CNT);
   iat_stream.init_fixups(_FX_CNT);
@@ -553,22 +578,21 @@ ok_error_t Builder::build_imports() {
     const auto it = names_offset.find(imp_name);

     if (it == names_offset.end()) {
-      LIEF_ERR("Can't find offset for name: {}", imp_name);
+      LIEF_ERR("Offset not found for name: {}", imp_name);
       return make_error_code(lief_errors::build_error);
     }
-    uint32_t iat_rva = has_existing_iat ? imp.import_address_table_rva() :
-                                          iat_offset + (uint32_t)iat_stream.tellp();
-    headers_ilt
-      .seekp(headers_offset)
-      .record_fixup(FX_IMPORT_TABLE)
-      .template write<uint32_t>(/*ImportLookupTableRVA=*/ilt_offsets)
-      .template write<uint32_t>(/*TimeDateStamp=*/imp.timedatestamp())
-      .template write<uint32_t>(/*ForwarderChain=*/imp.forwarder_chain())
-      .record_fixup(FX_IMPORT_TABLE)
-      .template write<uint32_t>(/*NameRVA=*/strings_offset + it->second)
-      .record_fixup(FX_IMPORT_TABLE, !has_existing_iat)
-      .template write<uint32_t>(/*ImportAddressTableRVA=*/iat_rva)
-    ;
+    uint32_t iat_rva = has_existing_iat ?
+                           imp.import_address_table_rva() :
+                           iat_offset + (uint32_t)iat_stream.tellp();
+    headers_ilt.seekp(headers_offset)
+        .record_fixup(FX_IMPORT_TABLE)
+        .template write<uint32_t>(ilt_offsets)
+        .template write<uint32_t>(imp.timedatestamp())
+        .template write<uint32_t>(imp.forwarder_chain())
+        .record_fixup(FX_IMPORT_TABLE)
+        .template write<uint32_t>(strings_offset + it->second) // Name RVA
+        .record_fixup(FX_IMPORT_TABLE, !has_existing_iat)
+        .template write<uint32_t>(iat_rva);
     headers_offset = headers_ilt.tellp();
     headers_ilt.seekp(ilt_offsets);

@@ -579,17 +603,18 @@ ok_error_t Builder::build_imports() {
       if (has_existing_iat && entry.iat_address() != IAT_pos) {
         if (entry.iat_address() > IAT_pos) {
           // This case can happen when a function (or multiple functions)
-          // has been removed from the current Import. To fill this gap,
+          // have been removed from the current Import. To fill this gap,
           // we can pad the missing ILT/IAT entries with the current one
           uint64_t delta = entry.iat_address() - IAT_pos;
           assert(delta % sizeof(uint__) == 0);
           count += delta / sizeof(uint__);
-          LIEF_DEBUG("padding count: {}", delta / sizeof(uint__));
+          LIEF_DEBUG("Padding count: {}", delta / sizeof(uint__));
         } else {
           LIEF_WARN("IAT location mismatch for {}:{} "
-                    "(RVA=0x{:08x}, Expected=0x{:08x})",
-                    imp_name, entry.is_ordinal() ?
-                    '#' + std::to_string(entry.ordinal()) : entry.name(),
+                    "(RVA={:#010x}, Expected={:#010x})",
+                    imp_name,
+                    entry.is_ordinal() ? '#' + std::to_string(entry.ordinal()) :
+                                         entry.name(),
                     IAT_pos, entry.iat_address());
         }
       }
@@ -598,7 +623,7 @@ ok_error_t Builder::build_imports() {
       if (!entry.is_ordinal()) {
         auto it_name = names_offset.find(entry.name());
         if (it_name == names_offset.end()) {
-          LIEF_ERR("Can't find name offset for the function: {}", entry.name());
+          LIEF_ERR("Name offset not found for function: {}", entry.name());
         }
         ilt_value = strings_offset + it_name->second;
       }
@@ -607,19 +632,19 @@ ok_error_t Builder::build_imports() {
         const bool is_last = i == (count - 1);

         headers_ilt
-          // ilt_value is the name RVA, hence the FX_IMPORT_TABLE fixup
-          .record_fixup(FX_IMPORT_TABLE, !entry.is_ordinal())
-          .template write<uint__>(ilt_value);
+            // ilt_value is the name RVA, hence the FX_IMPORT_TABLE fixup
+            .record_fixup(FX_IMPORT_TABLE, !entry.is_ordinal())
+            .template write<uint__>(ilt_value);

         if (!has_existing_iat) {
           entry.iat_address((iat_offset + iat_stream.tellp()) | RELOCATED_IAT);
-          iat_stream
-            .record_fixup(FX_IMPORT_TABLE, !entry.is_ordinal())
-            .template write<uint__>(ilt_value);
+          iat_stream.record_fixup(FX_IMPORT_TABLE, !entry.is_ordinal())
+              .template write<uint__>(ilt_value);
         }

         if (!is_last && has_existing_iat) {
-          binary_->patch_address(IAT_pos, entry.iat_value(), sizeof(uint__));
+          binary_->patch_address(IAT_pos, entry.iat_value(), sizeof(uint__),
+                                 Binary::VA_TYPES::RVA);
         }
         IAT_pos += sizeof(uint__);
       }
@@ -628,9 +653,7 @@ ok_error_t Builder::build_imports() {
     }

     // Null entry
-    headers_ilt
-      .seekp(ilt_offsets)
-      .write<uint__>(0);
+    headers_ilt.seekp(ilt_offsets).write<uint__>(0);

     if (!has_existing_iat) {
       iat_stream.write<uint__>(0);
@@ -639,9 +662,7 @@ ok_error_t Builder::build_imports() {
   }

   // Null entry at the end
-  headers_ilt
-    .seekp(headers_offset)
-    .write(sizeof(details::pe_import), 0);
+  headers_ilt.seekp(headers_offset).write(sizeof(details::pe_import), 0);

   headers_offset = headers_ilt.tellp();

@@ -650,9 +671,8 @@ ok_error_t Builder::build_imports() {

   Section idata_section(config_.idata_section);
   idata_section.reserve(relocated_size);
-  idata_section
-    .add_characteristic(Section::CHARACTERISTICS::CNT_INITIALIZED_DATA)
-    .add_characteristic(Section::CHARACTERISTICS::MEM_READ);
+  idata_section.add_characteristic(Section::CHARACTERISTICS::CNT_INITIALIZED_DATA)
+      .add_characteristic(Section::CHARACTERISTICS::MEM_READ);

   if (!iat_stream.empty()) {
     /* The additional (lief-created) IAT associated with imports added by the
@@ -666,7 +686,7 @@ ok_error_t Builder::build_imports() {
      * "Access violation - code c0000005" when the loader tries to write the
      * resolved symbol in our custom IAT.
      *
-     * It seems that windows loader set implicit permissions for the memory
+     * It seems that the Windows loader sets implicit permissions for the memory
      * page wrapped by the IAT DataDirectory:
      *
      *   0:000> !address 0x7ff7bfdb3f00 <--- Address in the genuine IAT
@@ -696,17 +716,16 @@ ok_error_t Builder::build_imports() {
      *   Allocation Protect:     00000080          PAGE_EXECUTE_WRITECOPY
      *
      * To make sure we don't get a memory access violation when the loader
-     * writes the resolved symbol in our IAT, we need to **both**
+     * writes the resolved symbol in our IAT, we need **both**
      * characteristics: MEM_WRITE | CNT_CODE.
      */
-    idata_section
-      .add_characteristic(Section::CHARACTERISTICS::MEM_WRITE)
-      .add_characteristic(Section::CHARACTERISTICS::CNT_CODE);
+    idata_section.add_characteristic(Section::CHARACTERISTICS::MEM_WRITE)
+        .add_characteristic(Section::CHARACTERISTICS::CNT_CODE);
   }

   Section* new_idata_section = binary_->add_section(idata_section);
   if (new_idata_section == nullptr) {
-    LIEF_ERR("Can't add a new idata section");
+    LIEF_ERR("Failed to add new idata section");
     return make_error_code(lief_errors::build_error);
   }
   import_dir->RVA(new_idata_section->virtual_address());
@@ -719,11 +738,10 @@ ok_error_t Builder::build_imports() {
   headers_ilt.apply_fixup<uint32_t>(FX_IMPORT_TABLE, import_dir->RVA());
   iat_stream.apply_fixup<uint32_t>(FX_IMPORT_TABLE, import_dir->RVA());

-  headers_ilt
-    .seekp(strings_offset)
-    .write(names_stream.raw())
-    .align(sizeof(uint16_t))
-    .write(iat_stream.raw());
+  headers_ilt.seekp(strings_offset)
+      .write(names_stream.raw())
+      .align(sizeof(uint16_t))
+      .write(iat_stream.raw());

   new_idata_section->content(headers_ilt.raw());

@@ -745,73 +763,72 @@ ok_error_t Builder::build_imports() {
 }

 template<class PE_T>
-ok_error_t write_load_config(const LoadConfiguration& config, vector_iostream& ios) {
+ok_error_t write_load_config(const LoadConfiguration& config,
+                             vector_iostream& ios) {
   using uint__ = typename PE_T::uint;
-  ios
-    .template write<uint32_t>(config.characteristics())
-    .template write<uint32_t>(config.timedatestamp())
-    .template write<uint16_t>(config.major_version())
-    .template write<uint16_t>(config.minor_version())
-    .template write<uint32_t>(config.global_flags_clear())
-    .template write<uint32_t>(config.global_flags_set())
-    .template write<uint32_t>(config.critical_section_default_timeout())
-    .template write<uint__>(config.decommit_free_block_threshold())
-    .template write<uint__>(config.decommit_total_free_threshold())
-    .template write<uint__>(config.lock_prefix_table())
-    .template write<uint__>(config.maximum_allocation_size())
-    .template write<uint__>(config.virtual_memory_threshold())
-    .template write<uint__>(config.process_affinity_mask())
-    .template write<uint32_t>(config.process_heap_flags())
-    .template write<uint16_t>(config.csd_version())
-    .template write<uint16_t>(config.reserved1())
-    .template write<uint__>(config.editlist())
-    .template write<uint__>(config.security_cookie())
-
-    .template write<uint__>(config.se_handler_table())
-    .template write<uint__>(config.se_handler_count())
-
-    .template write<uint__>(config.guard_cf_check_function_pointer())
-    .template write<uint__>(config.guard_cf_dispatch_function_pointer())
-    .template write<uint__>(config.guard_cf_function_table())
-    .template write<uint__>(config.guard_cf_function_count())
-    .template write<uint32_t>(config.guard_flags())
-  ;
+  ios.template write<uint32_t>(config.characteristics())
+      .template write<uint32_t>(config.timedatestamp())
+      .template write<uint16_t>(config.major_version())
+      .template write<uint16_t>(config.minor_version())
+      .template write<uint32_t>(config.global_flags_clear())
+      .template write<uint32_t>(config.global_flags_set())
+      .template write<uint32_t>(config.critical_section_default_timeout())
+      .template write<uint__>(config.decommit_free_block_threshold())
+      .template write<uint__>(config.decommit_total_free_threshold())
+      .template write<uint__>(config.lock_prefix_table())
+      .template write<uint__>(config.maximum_allocation_size())
+      .template write<uint__>(config.virtual_memory_threshold())
+      .template write<uint__>(config.process_affinity_mask())
+      .template write<uint32_t>(config.process_heap_flags())
+      .template write<uint16_t>(config.csd_version())
+      .template write<uint16_t>(config.reserved1())
+      .template write<uint__>(config.editlist())
+      .template write<uint__>(config.security_cookie())
+
+      .template write<uint__>(config.se_handler_table())
+      .template write<uint__>(config.se_handler_count())
+
+      .template write<uint__>(config.guard_cf_check_function_pointer())
+      .template write<uint__>(config.guard_cf_dispatch_function_pointer())
+      .template write<uint__>(config.guard_cf_function_table())
+      .template write<uint__>(config.guard_cf_function_count())
+      .template write<uint32_t>(config.guard_flags());

   if (const CodeIntegrity* integrity = config.code_integrity()) {
-    ios
-      .write<uint16_t>(integrity->flags())
-      .write<uint16_t>(integrity->catalog())
-      .write<uint32_t>(integrity->catalog_offset())
-      .write<uint32_t>(integrity->reserved());
+    ios.write<uint16_t>(integrity->flags())
+        .write<uint16_t>(integrity->catalog())
+        .write<uint32_t>(integrity->catalog_offset())
+        .write<uint32_t>(integrity->reserved());
   }

-  ios
-    .template write<uint__>(config.guard_address_taken_iat_entry_table())
-    .template write<uint__>(config.guard_address_taken_iat_entry_count())
-    .template write<uint__>(config.guard_long_jump_target_table())
-    .template write<uint__>(config.guard_long_jump_target_count())
-
-    .template write<uint__>(config.dynamic_value_reloc_table())
-    .template write<uint__>(config.hybrid_metadata_pointer())
-
-    .template write<uint__>(config.guard_rf_failure_routine())
-    .template write<uint__>(config.guard_rf_failure_routine_function_pointer())
-    .template write<uint32_t>(config.dynamic_value_reloctable_offset())
-    .template write<uint16_t>(config.dynamic_value_reloctable_section())
-    .template write<uint16_t>(config.reserved2())
-
-    .template write<uint__>(config.guard_rf_verify_stackpointer_function_pointer())
-    .template write<uint32_t>(config.hotpatch_table_offset())
-    .template write<uint32_t>(config.reserved3())
-    .template write<uint__>(config.enclave_configuration_ptr())
-    .template write<uint__>(config.volatile_metadata_pointer())
-    .template write<uint__>(config.guard_eh_continuation_table())
-    .template write<uint__>(config.guard_eh_continuation_count())
-    .template write<uint__>(config.guard_xfg_check_function_pointer())
-    .template write<uint__>(config.guard_xfg_dispatch_function_pointer())
-    .template write<uint__>(config.guard_xfg_table_dispatch_function_pointer())
-    .template write<uint__>(config.cast_guard_os_determined_failure_mode())
-    .template write<uint__>(config.guard_memcpy_function_pointer());
+  ios.template write<uint__>(config.guard_address_taken_iat_entry_table())
+      .template write<uint__>(config.guard_address_taken_iat_entry_count())
+      .template write<uint__>(config.guard_long_jump_target_table())
+      .template write<uint__>(config.guard_long_jump_target_count())
+
+      .template write<uint__>(config.dynamic_value_reloc_table())
+      .template write<uint__>(config.hybrid_metadata_pointer())
+
+      .template write<uint__>(config.guard_rf_failure_routine())
+      .template write<uint__>(config.guard_rf_failure_routine_function_pointer())
+      .template write<uint32_t>(config.dynamic_value_reloctable_offset())
+      .template write<uint16_t>(config.dynamic_value_reloctable_section())
+      .template write<uint16_t>(config.reserved2())
+
+      .template write<uint__>(
+          config.guard_rf_verify_stackpointer_function_pointer()
+      )
+      .template write<uint32_t>(config.hotpatch_table_offset())
+      .template write<uint32_t>(config.reserved3())
+      .template write<uint__>(config.enclave_configuration_ptr())
+      .template write<uint__>(config.volatile_metadata_pointer())
+      .template write<uint__>(config.guard_eh_continuation_table())
+      .template write<uint__>(config.guard_eh_continuation_count())
+      .template write<uint__>(config.guard_xfg_check_function_pointer())
+      .template write<uint__>(config.guard_xfg_dispatch_function_pointer())
+      .template write<uint__>(config.guard_xfg_table_dispatch_function_pointer())
+      .template write<uint__>(config.cast_guard_os_determined_failure_mode())
+      .template write<uint__>(config.guard_memcpy_function_pointer());
   return ok();
 }

@@ -820,12 +837,16 @@ ok_error_t Builder::build_load_config() {

   DataDirectory* lconf_dir = binary_->load_config_dir();
   LoadConfiguration* lconf = binary_->load_configuration();
+  if (lconf_dir == nullptr) {
+    return ok();
+  }

   LIEF_DEBUG("Writing load config");

   if (lconf == nullptr) {
     if (lconf_dir->RVA() > 0 && lconf_dir->size() > 0) {
-      binary_->fill_address(lconf_dir->RVA(), lconf_dir->size());
+      binary_->fill_address(lconf_dir->RVA(), lconf_dir->size(), /*value=*/0,
+                            Binary::VA_TYPES::RVA);
     }
     lconf_dir->RVA(0);
     lconf_dir->size(0);
@@ -836,10 +857,10 @@ ok_error_t Builder::build_load_config() {
     /* Not supported yet since relocating this structure also means
      * patching relocations.
      */
-    LIEF_DEBUG("LoadConfiguration.size:           0x{:08x}", lconf->size());
-    LIEF_DEBUG("IMAGE_DIRECTORY_LOAD_CONFIG.size: 0x{:08x}", lconf_dir->size());
+    LIEF_DEBUG("LoadConfiguration.size:           {:#010x}", lconf->size());
+    LIEF_DEBUG("IMAGE_DIRECTORY_LOAD_CONFIG.size: {:#010x}", lconf_dir->size());

-    LIEF_WARN("Larger load config directory is not supported");
+    LIEF_WARN("Larger load config directory not supported");
     return make_error_code(lief_errors::not_supported);
   }

@@ -860,4 +881,3 @@ ok_error_t Builder::build_load_config() {
 }

 }
-}
diff --git a/deps/LIEF/src/PE/CodeIntegrity.cpp b/deps/LIEF/src/PE/CodeIntegrity.cpp
index c357bbce94d..7a1da94ad0b 100644
--- a/deps/LIEF/src/PE/CodeIntegrity.cpp
+++ b/deps/LIEF/src/PE/CodeIntegrity.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -19,8 +19,8 @@
 #include "LIEF/Visitor.hpp"
 #include "LIEF/BinaryStream/BinaryStream.hpp"

-namespace LIEF {
-namespace PE {
+
+namespace LIEF::PE {

 result<CodeIntegrity> CodeIntegrity::parse(Parser&, BinaryStream& stream) {
   auto flags = stream.read<uint16_t>();
@@ -45,11 +45,10 @@ result<CodeIntegrity> CodeIntegrity::parse(Parser&, BinaryStream& stream) {

   CodeIntegrity code_integrity;

-  code_integrity
-    .flags(*flags)
-    .catalog(*catalog)
-    .catalog_offset(*catalog_offset)
-    .reserved(*reserved);
+  code_integrity.flags(*flags)
+      .catalog(*catalog)
+      .catalog_offset(*catalog_offset)
+      .reserved(*reserved);

   return code_integrity;
 }
@@ -59,12 +58,11 @@ void CodeIntegrity::accept(LIEF::Visitor& visitor) const {
 }

 std::ostream& operator<<(std::ostream& os, const CodeIntegrity& entry) {
-  os << fmt::format("Flags          0x{:x}\n", entry.flags())
-     << fmt::format("Catalog        0x{:x}\n", entry.catalog())
-     << fmt::format("Catalog offset 0x{:x}\n", entry.catalog_offset())
-     << fmt::format("Reserved       0x{:x}\n", entry.reserved());
+  os << fmt::format("Flags          {:#x}\n", entry.flags())
+     << fmt::format("Catalog        {:#x}\n", entry.catalog())
+     << fmt::format("Catalog offset {:#x}\n", entry.catalog_offset())
+     << fmt::format("Reserved       {:#x}\n", entry.reserved());
   return os;
 }

 }
-}
diff --git a/deps/LIEF/src/PE/CodePage.cpp b/deps/LIEF/src/PE/CodePage.cpp
index 55a29231122..97b24b18fc1 100644
--- a/deps/LIEF/src/PE/CodePage.cpp
+++ b/deps/LIEF/src/PE/CodePage.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -18,150 +18,150 @@

 namespace LIEF::PE {
 const char* to_string(CODE_PAGES e) {
-  #define ENTRY(X) std::pair(CODE_PAGES::X, #X)
-  STRING_MAP enums2str {
-    ENTRY(IBM037),
-    ENTRY(IBM437),
-    ENTRY(IBM500),
-    ENTRY(ASMO_708),
-    ENTRY(DOS_720),
-    ENTRY(IBM737),
-    ENTRY(IBM775),
-    ENTRY(IBM850),
-    ENTRY(IBM852),
-    ENTRY(IBM855),
-    ENTRY(IBM857),
-    ENTRY(IBM00858),
-    ENTRY(IBM860),
-    ENTRY(IBM861),
-    ENTRY(DOS_862),
-    ENTRY(IBM863),
-    ENTRY(IBM864),
-    ENTRY(IBM865),
-    ENTRY(CP866),
-    ENTRY(IBM869),
-    ENTRY(IBM870),
-    ENTRY(WINDOWS_874),
-    ENTRY(CP875),
-    ENTRY(SHIFT_JIS),
-    ENTRY(GB2312),
-    ENTRY(KS_C_5601_1987),
-    ENTRY(BIG5),
-    ENTRY(IBM1026),
-    ENTRY(IBM01047),
-    ENTRY(IBM01140),
-    ENTRY(IBM01141),
-    ENTRY(IBM01142),
-    ENTRY(IBM01143),
-    ENTRY(IBM01144),
-    ENTRY(IBM01145),
-    ENTRY(IBM01146),
-    ENTRY(IBM01147),
-    ENTRY(IBM01148),
-    ENTRY(IBM01149),
-    ENTRY(UTF_16),
-    ENTRY(UNICODEFFFE),
-    ENTRY(WINDOWS_1250),
-    ENTRY(WINDOWS_1251),
-    ENTRY(WINDOWS_1252),
-    ENTRY(WINDOWS_1253),
-    ENTRY(WINDOWS_1254),
-    ENTRY(WINDOWS_1255),
-    ENTRY(WINDOWS_1256),
-    ENTRY(WINDOWS_1257),
-    ENTRY(WINDOWS_1258),
-    ENTRY(JOHAB),
-    ENTRY(MACINTOSH),
-    ENTRY(X_MAC_JAPANESE),
-    ENTRY(X_MAC_CHINESETRAD),
-    ENTRY(X_MAC_KOREAN),
-    ENTRY(X_MAC_ARABIC),
-    ENTRY(X_MAC_HEBREW),
-    ENTRY(X_MAC_GREEK),
-    ENTRY(X_MAC_CYRILLIC),
-    ENTRY(X_MAC_CHINESESIMP),
-    ENTRY(X_MAC_ROMANIAN),
-    ENTRY(X_MAC_UKRAINIAN),
-    ENTRY(X_MAC_THAI),
-    ENTRY(X_MAC_CE),
-    ENTRY(X_MAC_ICELANDIC),
-    ENTRY(X_MAC_TURKISH),
-    ENTRY(X_MAC_CROATIAN),
-    ENTRY(UTF_32),
-    ENTRY(UTF_32BE),
-    ENTRY(X_CHINESE_CNS),
-    ENTRY(X_CP20001),
-    ENTRY(X_CHINESE_ETEN),
-    ENTRY(X_CP20003),
-    ENTRY(X_CP20004),
-    ENTRY(X_CP20005),
-    ENTRY(X_IA5),
-    ENTRY(X_IA5_GERMAN),
-    ENTRY(X_IA5_SWEDISH),
-    ENTRY(X_IA5_NORWEGIAN),
-    ENTRY(US_ASCII),
-    ENTRY(X_CP20261),
-    ENTRY(X_CP20269),
-    ENTRY(IBM273),
-    ENTRY(IBM277),
-    ENTRY(IBM278),
-    ENTRY(IBM280),
-    ENTRY(IBM284),
-    ENTRY(IBM285),
-    ENTRY(IBM290),
-    ENTRY(IBM297),
-    ENTRY(IBM420),
-    ENTRY(IBM423),
-    ENTRY(IBM424),
-    ENTRY(X_EBCDIC_KOREANEXTENDED),
-    ENTRY(IBM_THAI),
-    ENTRY(KOI8_R),
-    ENTRY(IBM871),
-    ENTRY(IBM880),
-    ENTRY(IBM905),
-    ENTRY(IBM00924),
-    ENTRY(EUC_JP_JIS),
-    ENTRY(X_CP20936),
-    ENTRY(X_CP20949),
-    ENTRY(CP1025),
-    ENTRY(KOI8_U),
-    ENTRY(ISO_8859_1),
-    ENTRY(ISO_8859_2),
-    ENTRY(ISO_8859_3),
-    ENTRY(ISO_8859_4),
-    ENTRY(ISO_8859_5),
-    ENTRY(ISO_8859_6),
-    ENTRY(ISO_8859_7),
-    ENTRY(ISO_8859_8),
-    ENTRY(ISO_8859_9),
-    ENTRY(ISO_8859_13),
-    ENTRY(ISO_8859_15),
-    ENTRY(X_EUROPA),
-    ENTRY(ISO_8859_8_I),
-    ENTRY(ISO_2022_JP),
-    ENTRY(CSISO2022JP),
-    ENTRY(ISO_2022_JP_JIS),
-    ENTRY(ISO_2022_KR),
-    ENTRY(X_CP50227),
-    ENTRY(EUC_JP),
-    ENTRY(EUC_CN),
-    ENTRY(EUC_KR),
-    ENTRY(HZ_GB_2312),
-    ENTRY(GB18030),
-    ENTRY(X_ISCII_DE),
-    ENTRY(X_ISCII_BE),
-    ENTRY(X_ISCII_TA),
-    ENTRY(X_ISCII_TE),
-    ENTRY(X_ISCII_AS),
-    ENTRY(X_ISCII_OR),
-    ENTRY(X_ISCII_KA),
-    ENTRY(X_ISCII_MA),
-    ENTRY(X_ISCII_GU),
-    ENTRY(X_ISCII_PA),
-    ENTRY(UTF_7),
-    ENTRY(UTF_8),
+#define ENTRY(X) std::pair(CODE_PAGES::X, #X)
+  STRING_MAP enums2str{
+      ENTRY(IBM037),
+      ENTRY(IBM437),
+      ENTRY(IBM500),
+      ENTRY(ASMO_708),
+      ENTRY(DOS_720),
+      ENTRY(IBM737),
+      ENTRY(IBM775),
+      ENTRY(IBM850),
+      ENTRY(IBM852),
+      ENTRY(IBM855),
+      ENTRY(IBM857),
+      ENTRY(IBM00858),
+      ENTRY(IBM860),
+      ENTRY(IBM861),
+      ENTRY(DOS_862),
+      ENTRY(IBM863),
+      ENTRY(IBM864),
+      ENTRY(IBM865),
+      ENTRY(CP866),
+      ENTRY(IBM869),
+      ENTRY(IBM870),
+      ENTRY(WINDOWS_874),
+      ENTRY(CP875),
+      ENTRY(SHIFT_JIS),
+      ENTRY(GB2312),
+      ENTRY(KS_C_5601_1987),
+      ENTRY(BIG5),
+      ENTRY(IBM1026),
+      ENTRY(IBM01047),
+      ENTRY(IBM01140),
+      ENTRY(IBM01141),
+      ENTRY(IBM01142),
+      ENTRY(IBM01143),
+      ENTRY(IBM01144),
+      ENTRY(IBM01145),
+      ENTRY(IBM01146),
+      ENTRY(IBM01147),
+      ENTRY(IBM01148),
+      ENTRY(IBM01149),
+      ENTRY(UTF_16),
+      ENTRY(UNICODEFFFE),
+      ENTRY(WINDOWS_1250),
+      ENTRY(WINDOWS_1251),
+      ENTRY(WINDOWS_1252),
+      ENTRY(WINDOWS_1253),
+      ENTRY(WINDOWS_1254),
+      ENTRY(WINDOWS_1255),
+      ENTRY(WINDOWS_1256),
+      ENTRY(WINDOWS_1257),
+      ENTRY(WINDOWS_1258),
+      ENTRY(JOHAB),
+      ENTRY(MACINTOSH),
+      ENTRY(X_MAC_JAPANESE),
+      ENTRY(X_MAC_CHINESETRAD),
+      ENTRY(X_MAC_KOREAN),
+      ENTRY(X_MAC_ARABIC),
+      ENTRY(X_MAC_HEBREW),
+      ENTRY(X_MAC_GREEK),
+      ENTRY(X_MAC_CYRILLIC),
+      ENTRY(X_MAC_CHINESESIMP),
+      ENTRY(X_MAC_ROMANIAN),
+      ENTRY(X_MAC_UKRAINIAN),
+      ENTRY(X_MAC_THAI),
+      ENTRY(X_MAC_CE),
+      ENTRY(X_MAC_ICELANDIC),
+      ENTRY(X_MAC_TURKISH),
+      ENTRY(X_MAC_CROATIAN),
+      ENTRY(UTF_32),
+      ENTRY(UTF_32BE),
+      ENTRY(X_CHINESE_CNS),
+      ENTRY(X_CP20001),
+      ENTRY(X_CHINESE_ETEN),
+      ENTRY(X_CP20003),
+      ENTRY(X_CP20004),
+      ENTRY(X_CP20005),
+      ENTRY(X_IA5),
+      ENTRY(X_IA5_GERMAN),
+      ENTRY(X_IA5_SWEDISH),
+      ENTRY(X_IA5_NORWEGIAN),
+      ENTRY(US_ASCII),
+      ENTRY(X_CP20261),
+      ENTRY(X_CP20269),
+      ENTRY(IBM273),
+      ENTRY(IBM277),
+      ENTRY(IBM278),
+      ENTRY(IBM280),
+      ENTRY(IBM284),
+      ENTRY(IBM285),
+      ENTRY(IBM290),
+      ENTRY(IBM297),
+      ENTRY(IBM420),
+      ENTRY(IBM423),
+      ENTRY(IBM424),
+      ENTRY(X_EBCDIC_KOREANEXTENDED),
+      ENTRY(IBM_THAI),
+      ENTRY(KOI8_R),
+      ENTRY(IBM871),
+      ENTRY(IBM880),
+      ENTRY(IBM905),
+      ENTRY(IBM00924),
+      ENTRY(EUC_JP_JIS),
+      ENTRY(X_CP20936),
+      ENTRY(X_CP20949),
+      ENTRY(CP1025),
+      ENTRY(KOI8_U),
+      ENTRY(ISO_8859_1),
+      ENTRY(ISO_8859_2),
+      ENTRY(ISO_8859_3),
+      ENTRY(ISO_8859_4),
+      ENTRY(ISO_8859_5),
+      ENTRY(ISO_8859_6),
+      ENTRY(ISO_8859_7),
+      ENTRY(ISO_8859_8),
+      ENTRY(ISO_8859_9),
+      ENTRY(ISO_8859_13),
+      ENTRY(ISO_8859_15),
+      ENTRY(X_EUROPA),
+      ENTRY(ISO_8859_8_I),
+      ENTRY(ISO_2022_JP),
+      ENTRY(CSISO2022JP),
+      ENTRY(ISO_2022_JP_JIS),
+      ENTRY(ISO_2022_KR),
+      ENTRY(X_CP50227),
+      ENTRY(EUC_JP),
+      ENTRY(EUC_CN),
+      ENTRY(EUC_KR),
+      ENTRY(HZ_GB_2312),
+      ENTRY(GB18030),
+      ENTRY(X_ISCII_DE),
+      ENTRY(X_ISCII_BE),
+      ENTRY(X_ISCII_TA),
+      ENTRY(X_ISCII_TE),
+      ENTRY(X_ISCII_AS),
+      ENTRY(X_ISCII_OR),
+      ENTRY(X_ISCII_KA),
+      ENTRY(X_ISCII_MA),
+      ENTRY(X_ISCII_GU),
+      ENTRY(X_ISCII_PA),
+      ENTRY(UTF_7),
+      ENTRY(UTF_8),
   };
-  #undef ENTRY
+#undef ENTRY

   if (auto it = enums2str.find(e); it != enums2str.end()) {
     return it->second;
diff --git a/deps/LIEF/src/PE/DataDirectory.cpp b/deps/LIEF/src/PE/DataDirectory.cpp
index a1a52c17ee2..762706a2245 100644
--- a/deps/LIEF/src/PE/DataDirectory.cpp
+++ b/deps/LIEF/src/PE/DataDirectory.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -25,15 +25,14 @@

 #include <spdlog/fmt/fmt.h>

-namespace LIEF {
-namespace PE {
+
+namespace LIEF::PE {

 DataDirectory::DataDirectory(const details::pe_data_directory& header,
                              DataDirectory::TYPES type) :
   rva_{header.RelativeVirtualAddress},
   size_{header.Size},
-  type_{type}
-{}
+  type_{type} {}

 void DataDirectory::accept(LIEF::Visitor& visitor) const {
   visitor.visit(*this);
@@ -87,9 +86,9 @@ span<uint8_t> DataDirectory::content() {
 }

 std::ostream& operator<<(std::ostream& os, const DataDirectory& entry) {
-  os << fmt::format("[{:>24}] [0x{:08x}, 0x{:08x}] ({} bytes)",
-                    to_string(entry.type()), entry.RVA(), entry.RVA() + entry.size(),
-                    entry.size());
+  os << fmt::format("[{:>24}] [{:#010x}, {:#010x}] ({} bytes)",
+                    to_string(entry.type()), entry.RVA(),
+                    entry.RVA() + entry.size(), entry.size());
   if (const Section* section = entry.section()) {
     os << fmt::format(" section: '{}'", section->name());
   }
@@ -97,27 +96,27 @@ std::ostream& operator<<(std::ostream& os, const DataDirectory& entry) {
 }

 const char* to_string(DataDirectory::TYPES e) {
-  #define ENTRY(X) std::pair(DataDirectory::TYPES::X, #X)
-  STRING_MAP enums2str {
-    ENTRY(EXPORT_TABLE),
-    ENTRY(IMPORT_TABLE),
-    ENTRY(RESOURCE_TABLE),
-    ENTRY(EXCEPTION_TABLE),
-    ENTRY(CERTIFICATE_TABLE),
-    ENTRY(BASE_RELOCATION_TABLE),
-    ENTRY(DEBUG_DIR),
-    ENTRY(ARCHITECTURE),
-    ENTRY(GLOBAL_PTR),
-    ENTRY(TLS_TABLE),
-    ENTRY(LOAD_CONFIG_TABLE),
-    ENTRY(BOUND_IMPORT),
-    ENTRY(IAT),
-    ENTRY(DELAY_IMPORT_DESCRIPTOR),
-    ENTRY(CLR_RUNTIME_HEADER),
-    ENTRY(RESERVED),
-    ENTRY(UNKNOWN),
+#define ENTRY(X) std::pair(DataDirectory::TYPES::X, #X)
+  STRING_MAP enums2str{
+      ENTRY(EXPORT_TABLE),
+      ENTRY(IMPORT_TABLE),
+      ENTRY(RESOURCE_TABLE),
+      ENTRY(EXCEPTION_TABLE),
+      ENTRY(CERTIFICATE_TABLE),
+      ENTRY(BASE_RELOCATION_TABLE),
+      ENTRY(DEBUG_DIR),
+      ENTRY(ARCHITECTURE),
+      ENTRY(GLOBAL_PTR),
+      ENTRY(TLS_TABLE),
+      ENTRY(LOAD_CONFIG_TABLE),
+      ENTRY(BOUND_IMPORT),
+      ENTRY(IAT),
+      ENTRY(DELAY_IMPORT_DESCRIPTOR),
+      ENTRY(CLR_RUNTIME_HEADER),
+      ENTRY(RESERVED),
+      ENTRY(UNKNOWN),
   };
-  #undef ENTRY
+#undef ENTRY
   if (auto it = enums2str.find(e); it != enums2str.end()) {
     return it->second;
   }
@@ -125,4 +124,3 @@ const char* to_string(DataDirectory::TYPES e) {
 }

 }
-}
diff --git a/deps/LIEF/src/PE/DelayImport.cpp b/deps/LIEF/src/PE/DelayImport.cpp
index 80364906088..6f12627fb45 100644
--- a/deps/LIEF/src/PE/DelayImport.cpp
+++ b/deps/LIEF/src/PE/DelayImport.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -21,20 +21,20 @@
 #include "LIEF/PE/DelayImport.hpp"
 #include "PE/Structures.hpp"

-namespace LIEF {
-namespace PE {
+
+namespace LIEF::PE {

 void DelayImport::swap(DelayImport& other) {
-  std::swap(attribute_,   other.attribute_);
-  std::swap(name_,        other.name_);
-  std::swap(handle_,      other.handle_);
-  std::swap(iat_,         other.iat_);
+  std::swap(attribute_, other.attribute_);
+  std::swap(name_, other.name_);
+  std::swap(handle_, other.handle_);
+  std::swap(iat_, other.iat_);
   std::swap(names_table_, other.names_table_);
-  std::swap(bound_iat_,   other.bound_iat_);
-  std::swap(unload_iat_,  other.unload_iat_);
-  std::swap(timestamp_,   other.timestamp_);
-  std::swap(entries_,     other.entries_);
-  std::swap(type_,        other.type_);
+  std::swap(bound_iat_, other.bound_iat_);
+  std::swap(unload_iat_, other.unload_iat_);
+  std::swap(timestamp_, other.timestamp_);
+  std::swap(entries_, other.entries_);
+  std::swap(type_, other.type_);
 }

 DelayImport::DelayImport(const details::delay_imports& import, PE_TYPE type) :
@@ -45,8 +45,7 @@ DelayImport::DelayImport(const details::delay_imports& import, PE_TYPE type) :
   bound_iat_{import.bound_iat},
   unload_iat_{import.unload_iat},
   timestamp_{import.timestamp},
-  type_{type}
-{}
+  type_{type} {}


 DelayImport::DelayImport(const DelayImport& other) :
@@ -59,8 +58,7 @@ DelayImport::DelayImport(const DelayImport& other) :
   bound_iat_(other.bound_iat_),
   unload_iat_(other.unload_iat_),
   timestamp_(other.timestamp_),
-  type_(other.type_)
-{
+  type_(other.type_) {
   if (!other.entries_.empty()) {
     entries_.reserve(other.entries_.size());
     for (const DelayImportEntry& entry : other.entries()) {
@@ -74,15 +72,14 @@ void DelayImport::accept(LIEF::Visitor& visitor) const {
 }

 std::ostream& operator<<(std::ostream& os, const DelayImport& entry) {
-  using namespace fmt;
   os << entry.name() << '\n'
-     << format("  Characteristics:          0x{:08x}\n", entry.attribute())
-     << format("  Address of HMODULE:       0x{:08x}\n", entry.handle())
-     << format("  Import Address Table:     0x{:08x}\n", entry.iat())
-     << format("  Import Name Table:        0x{:08x}\n", entry.names_table())
-     << format("  Bound Import Name Table:  0x{:08x}\n", entry.biat())
-     << format("  Unload Import Name Table: 0x{:08x}\n", entry.uiat())
-     << format("  Timestamp:                {}\n", entry.uiat())
+     << fmt::format("  Characteristics:          {:#010x}\n", entry.attribute())
+     << fmt::format("  Address of HMODULE:       {:#010x}\n", entry.handle())
+     << fmt::format("  Import Address Table:     {:#010x}\n", entry.iat())
+     << fmt::format("  Import Name Table:        {:#010x}\n", entry.names_table())
+     << fmt::format("  Bound Import Name Table:  {:#010x}\n", entry.biat())
+     << fmt::format("  Unload Import Name Table: {:#010x}\n", entry.uiat())
+     << fmt::format("  Timestamp:                {}\n", entry.uiat())
      << "Entries:\n";

   for (const DelayImportEntry& delayed : entry.entries()) {
@@ -91,4 +88,3 @@ std::ostream& operator<<(std::ostream& os, const DelayImport& entry) {
   return os;
 }
 }
-}
diff --git a/deps/LIEF/src/PE/DelayImportEntry.cpp b/deps/LIEF/src/PE/DelayImportEntry.cpp
index 9cb3426a8bb..a444167e257 100644
--- a/deps/LIEF/src/PE/DelayImportEntry.cpp
+++ b/deps/LIEF/src/PE/DelayImportEntry.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -23,8 +23,8 @@

 #include "LIEF/PE/DelayImportEntry.hpp"

-namespace LIEF {
-namespace PE {
+
+namespace LIEF::PE {

 std::string DelayImportEntry::demangled_name() const {
   logging::needs_lief_extended();
@@ -37,8 +37,10 @@ std::string DelayImportEntry::demangled_name() const {
 }

 bool DelayImportEntry::is_ordinal() const {
-  // See: https://docs.microsoft.com/en-us/windows/desktop/debug/pe-format#the-idata-section
-  const uint64_t ORDINAL_MASK = type_ == PE_TYPE::PE32 ? 0x80000000 : 0x8000000000000000;
+  // See:
+  // https://docs.microsoft.com/en-us/windows/desktop/debug/pe-format#the-idata-section
+  const uint64_t ORDINAL_MASK =
+      type_ == PE_TYPE::PE32 ? 0x80000000 : 0x8000000000000000;
   bool ordinal_bit_is_set = static_cast<bool>(data_ & ORDINAL_MASK);

   // Check that bit 31 / 63 is set
@@ -55,12 +57,11 @@ void DelayImportEntry::accept(LIEF::Visitor& visitor) const {
 }

 std::ostream& operator<<(std::ostream& os, const DelayImportEntry& entry) {
-  os << fmt::format("0x{:08x} 0x{:04x} {}",
-                    entry.iat_value(), entry.hint(),
+  os << fmt::format("{:#010x} {:#06x} {}", entry.iat_value(), entry.hint(),
                     entry.is_ordinal() ? std::to_string(entry.ordinal()) :
                                          entry.name());
   return os;
 }

-} // namespace PE
-} // namepsace LIEF
+} // namespace LIEF::PE
+// namespace LIEF
diff --git a/deps/LIEF/src/PE/DosHeader.cpp b/deps/LIEF/src/PE/DosHeader.cpp
index 37c57a96221..4313e477efe 100644
--- a/deps/LIEF/src/PE/DosHeader.cpp
+++ b/deps/LIEF/src/PE/DosHeader.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -16,13 +16,14 @@
 #include "LIEF/Visitor.hpp"

 #include "LIEF/PE/DosHeader.hpp"
+#include "LIEF/PE/enums.hpp"
 #include "PE/Structures.hpp"

 #include "spdlog/fmt/fmt.h"
 #include "spdlog/fmt/ranges.h"

-namespace LIEF {
-namespace PE {
+
+namespace LIEF::PE {

 DosHeader::DosHeader(const details::pe_dos_header& header) :
   magic_{header.Magic},
@@ -41,8 +42,7 @@ DosHeader::DosHeader(const details::pe_dos_header& header) :
   overlay_number_{header.OverlayNumber},
   oem_id_{header.OEMid},
   oem_info_{header.OEMinfo},
-  addr_new_exe_header_{header.AddressOfNewExeHeader}
-{
+  addr_new_exe_header_{header.AddressOfNewExeHeader} {
   std::copy(std::begin(header.Reserved), std::end(header.Reserved),
             std::begin(reserved_));

@@ -69,27 +69,36 @@ DosHeader DosHeader::create(PE_TYPE type) {
 }

 std::ostream& operator<<(std::ostream& os, const DosHeader& entry) {
-  os << fmt::format("Magic:                       0x{:x}\n", entry.magic())
-     << fmt::format("Used bytes in last page:     0x{:x}\n", entry.used_bytes_in_last_page())
-     << fmt::format("File size in pages:          0x{:x}\n", entry.file_size_in_pages())
-     << fmt::format("Number of relocation:        0x{:x}\n", entry.numberof_relocation())
-     << fmt::format("Header size in paragraphs:   0x{:x}\n", entry.header_size_in_paragraphs())
-     << fmt::format("Min extra paragraphs:        0x{:x}\n", entry.minimum_extra_paragraphs())
-     << fmt::format("Max extra paragraphs:        0x{:x}\n", entry.maximum_extra_paragraphs())
-     << fmt::format("Initial relative SS:         0x{:x}\n", entry.initial_relative_ss())
-     << fmt::format("Initial SP:                  0x{:x}\n", entry.initial_sp())
-     << fmt::format("Checksum:                    0x{:x}\n", entry.checksum())
-     << fmt::format("Initial IP:                  0x{:x}\n", entry.initial_ip())
-     << fmt::format("Initial relative CS:         0x{:x}\n", entry.initial_relative_cs())
-     << fmt::format("Address of relocation table: 0x{:x}\n", entry.addressof_relocation_table())
-     << fmt::format("Overlay number:              0x{:x}\n", entry.overlay_number())
-     << fmt::format("OEM id:                      0x{:x}\n", entry.oem_id())
-     << fmt::format("OEM info:                    0x{:x}\n", entry.oem_info())
-     << fmt::format("Address of new exe-header:   0x{:x}\n", entry.addressof_new_exeheader())
+  os << fmt::format("Magic:                       {:#x}\n", entry.magic())
+     << fmt::format("Used bytes in last page:     {:#x}\n",
+                    entry.used_bytes_in_last_page())
+     << fmt::format("File size in pages:          {:#x}\n",
+                    entry.file_size_in_pages())
+     << fmt::format("Number of relocation:        {:#x}\n",
+                    entry.numberof_relocation())
+     << fmt::format("Header size in paragraphs:   {:#x}\n",
+                    entry.header_size_in_paragraphs())
+     << fmt::format("Min extra paragraphs:        {:#x}\n",
+                    entry.minimum_extra_paragraphs())
+     << fmt::format("Max extra paragraphs:        {:#x}\n",
+                    entry.maximum_extra_paragraphs())
+     << fmt::format("Initial relative SS:         {:#x}\n",
+                    entry.initial_relative_ss())
+     << fmt::format("Initial SP:                  {:#x}\n", entry.initial_sp())
+     << fmt::format("Checksum:                    {:#x}\n", entry.checksum())
+     << fmt::format("Initial IP:                  {:#x}\n", entry.initial_ip())
+     << fmt::format("Initial relative CS:         {:#x}\n",
+                    entry.initial_relative_cs())
+     << fmt::format("Address of relocation table: {:#x}\n",
+                    entry.addressof_relocation_table())
+     << fmt::format("Overlay number:              {:#x}\n", entry.overlay_number())
+     << fmt::format("OEM id:                      {:#x}\n", entry.oem_id())
+     << fmt::format("OEM info:                    {:#x}\n", entry.oem_info())
+     << fmt::format("Address of new exe-header:   {:#x}\n",
+                    entry.addressof_new_exeheader())
      << fmt::format("Reserved1:                   {}\n", entry.reserved())
      << fmt::format("Reserved2:                   {}\n", entry.reserved2());
   return os;
 }

 }
-}
diff --git a/deps/LIEF/src/PE/EnumToString.cpp b/deps/LIEF/src/PE/EnumToString.cpp
index 10f30c06a7c..5063378ada7 100644
--- a/deps/LIEF/src/PE/EnumToString.cpp
+++ b/deps/LIEF/src/PE/EnumToString.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -18,51 +18,48 @@

 #include "frozen.hpp"

-namespace LIEF {
-namespace PE {
+
+namespace LIEF::PE {

 const char* to_string(PE_TYPE e) {
   switch (e) {
-    case PE_TYPE::PE32:
-      return "PE32";
-    case PE_TYPE::PE32_PLUS:
-      return "PE32_PLUS";
-    default:
-      return "UNKNOWN";
+    case PE_TYPE::PE32: return "PE32";
+    case PE_TYPE::PE32_PLUS: return "PE32_PLUS";
+    default: return "UNKNOWN";
   }

   return "UNKNOWN";
 }

 const char* to_string(ALGORITHMS e) {
-  CONST_MAP(ALGORITHMS, const char*, 20) enumStrings {
-    { ALGORITHMS::UNKNOWN,  "UNKNOWN"  },
-    { ALGORITHMS::SHA_512,  "SHA_512"  },
-    { ALGORITHMS::SHA_384,  "SHA_384"  },
-    { ALGORITHMS::SHA_256,  "SHA_256"  },
-    { ALGORITHMS::SHA_1,    "SHA_1"    },
+  CONST_MAP(ALGORITHMS, const char*, 20)
+  enumStrings{
+      {ALGORITHMS::UNKNOWN, "UNKNOWN"},
+      {ALGORITHMS::SHA_512, "SHA_512"},
+      {ALGORITHMS::SHA_384, "SHA_384"},
+      {ALGORITHMS::SHA_256, "SHA_256"},
+      {ALGORITHMS::SHA_1, "SHA_1"},

-    { ALGORITHMS::MD5,      "MD5"      },
-    { ALGORITHMS::MD4,      "MD4"      },
-    { ALGORITHMS::MD2,      "MD2"      },
+      {ALGORITHMS::MD5, "MD5"},
+      {ALGORITHMS::MD4, "MD4"},
+      {ALGORITHMS::MD2, "MD2"},

-    { ALGORITHMS::RSA,      "RSA"      },
-    { ALGORITHMS::EC,       "EC"       },
+      {ALGORITHMS::RSA, "RSA"},
+      {ALGORITHMS::EC, "EC"},

-    { ALGORITHMS::MD5_RSA,          "MD5_RSA"       },
-    { ALGORITHMS::SHA1_DSA,         "SHA1_DSA"      },
-    { ALGORITHMS::SHA1_RSA,         "SHA1_RSA"      },
-    { ALGORITHMS::SHA_256_RSA,      "SHA_256_RSA"   },
-    { ALGORITHMS::SHA_384_RSA,      "SHA_384_RSA"   },
-    { ALGORITHMS::SHA_512_RSA,      "SHA_512_RSA"   },
-    { ALGORITHMS::SHA1_ECDSA,       "SHA1_ECDSA"    },
-    { ALGORITHMS::SHA_256_ECDSA,    "SHA_256_ECDSA" },
-    { ALGORITHMS::SHA_384_ECDSA,    "SHA_384_ECDSA" },
-    { ALGORITHMS::SHA_512_ECDSA,    "SHA_512_ECDSA" },
+      {ALGORITHMS::MD5_RSA, "MD5_RSA"},
+      {ALGORITHMS::SHA1_DSA, "SHA1_DSA"},
+      {ALGORITHMS::SHA1_RSA, "SHA1_RSA"},
+      {ALGORITHMS::SHA_256_RSA, "SHA_256_RSA"},
+      {ALGORITHMS::SHA_384_RSA, "SHA_384_RSA"},
+      {ALGORITHMS::SHA_512_RSA, "SHA_512_RSA"},
+      {ALGORITHMS::SHA1_ECDSA, "SHA1_ECDSA"},
+      {ALGORITHMS::SHA_256_ECDSA, "SHA_256_ECDSA"},
+      {ALGORITHMS::SHA_384_ECDSA, "SHA_384_ECDSA"},
+      {ALGORITHMS::SHA_512_ECDSA, "SHA_512_ECDSA"},
   };
   const auto it = enumStrings.find(e);
   return it == enumStrings.end() ? "UNKNOWN" : it->second;
 }

-} // namespace PE
-} // namespace LIEF
+} // namespace LIEF::PE
diff --git a/deps/LIEF/src/PE/ExceptionInfo.cpp b/deps/LIEF/src/PE/ExceptionInfo.cpp
index 13cba84d4d2..4243db71e30 100644
--- a/deps/LIEF/src/PE/ExceptionInfo.cpp
+++ b/deps/LIEF/src/PE/ExceptionInfo.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -23,35 +23,35 @@

 namespace LIEF::PE {

-std::unique_ptr<ExceptionInfo>
-  ExceptionInfo::parse(Parser& ctx, BinaryStream& strm, Header::MACHINE_TYPES arch)
-{
+std::unique_ptr<ExceptionInfo> ExceptionInfo::parse(Parser& ctx,
+                                                    BinaryStream& strm,
+                                                    Header::MACHINE_TYPES arch) {
   uint64_t pos = strm.pos();
   switch (arch) {
     case Header::MACHINE_TYPES::AMD64:
-      {
-        if (auto F = RuntimeFunctionX64::parse(ctx, strm)) {
-          F->offset(pos);
-          return F;
-        }
-        return nullptr;
+    {
+      if (auto F = RuntimeFunctionX64::parse(ctx, strm)) {
+        F->offset(pos);
+        return F;
       }
+      return nullptr;
+    }
     case Header::MACHINE_TYPES::ARM64:
-      {
-        if (auto F = RuntimeFunctionAArch64::parse(ctx, strm)) {
-          F->offset(pos);
-          return F;
-        }
-        return nullptr;
+    {
+      if (auto F = RuntimeFunctionAArch64::parse(ctx, strm)) {
+        F->offset(pos);
+        return F;
       }
-
-    default:
       return nullptr;
+    }
+
+    default: return nullptr;
   }
   return nullptr;
 }

-std::unique_ptr<ExceptionInfo> ExceptionInfo::parse(Parser& ctx, BinaryStream& strm) {
+std::unique_ptr<ExceptionInfo> ExceptionInfo::parse(Parser& ctx,
+                                                    BinaryStream& strm) {
   const Header::MACHINE_TYPES arch = ctx.bin().header().machine();
   return parse(ctx, strm, arch);
 }
diff --git a/deps/LIEF/src/PE/Export.cpp b/deps/LIEF/src/PE/Export.cpp
index a2b9a6433cf..65e3f713066 100644
--- a/deps/LIEF/src/PE/Export.cpp
+++ b/deps/LIEF/src/PE/Export.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -11,8 +11,8 @@
  * 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.
-*/
+ * limitations under the License.
+ */
 #include "LIEF/Visitor.hpp"
 #include "LIEF/config.h"

@@ -24,8 +24,8 @@

 #include <spdlog/fmt/fmt.h>

-namespace LIEF {
-namespace PE {
+
+namespace LIEF::PE {

 Export::Export(const details::pe_export_directory_table& header) :
   export_flags_{header.ExportFlags},
@@ -38,8 +38,7 @@ Export::Export(const details::pe_export_directory_table& header) :
   exp_addr_table_cnt_{header.AddressTableEntries},
   names_addr_table_rva_{header.NamePointerRVA},
   names_addr_table_cnt_{header.NumberOfNamePointers},
-  ord_addr_table_rva_{header.OrdinalTableRVA}
-{}
+  ord_addr_table_rva_{header.OrdinalTableRVA} {}


 Export::Export(const Export& other) :
@@ -56,8 +55,7 @@ Export::Export(const Export& other) :
   names_addr_table_cnt_(other.names_addr_table_cnt_),
   ord_addr_table_rva_(other.ord_addr_table_rva_),
   max_ordinal_(other.max_ordinal_),
-  name_(other.name_)
-{
+  name_(other.name_) {
   if (!other.entries_.empty()) {
     entries_.reserve(other.entries_.size());
     for (const ExportEntry& entry : other.entries()) {
@@ -100,15 +98,15 @@ void Export::accept(Visitor& visitor) const {


 const ExportEntry* Export::find_entry(const std::string& name) const {
-  auto it = std::find_if(entries_.begin(), entries_.end(),
-    [&name] (const std::unique_ptr<ExportEntry>& E) {
-      if constexpr (lief_extended) {
-        return E->name() == name || E->demangled_name() == name;
-      } else {
-        return E->name() == name;
-      }
-    }
-  );
+  auto it =
+      std::find_if(entries_.begin(), entries_.end(),
+                   [&name](const std::unique_ptr<ExportEntry>& E) {
+                     if constexpr (lief_extended) {
+                       return E->name() == name || E->demangled_name() == name;
+                     } else {
+                       return E->name() == name;
+                     }
+                   });

   if (it == entries_.end()) {
     return nullptr;
@@ -119,10 +117,9 @@ const ExportEntry* Export::find_entry(const std::string& name) const {

 const ExportEntry* Export::find_entry(uint32_t ordinal) const {
   auto it = std::find_if(entries_.begin(), entries_.end(),
-    [ordinal] (const std::unique_ptr<ExportEntry>& E) {
-      return E->ordinal() == ordinal;
-    }
-  );
+                         [ordinal](const std::unique_ptr<ExportEntry>& E) {
+                           return E->ordinal() == ordinal;
+                         });

   if (it == entries_.end()) {
     return nullptr;
@@ -133,10 +130,9 @@ const ExportEntry* Export::find_entry(uint32_t ordinal) const {

 const ExportEntry* Export::find_entry_at(uint32_t rva) const {
   auto it = std::find_if(entries_.begin(), entries_.end(),
-    [rva] (const std::unique_ptr<ExportEntry>& E) {
-      return E->address() == rva;
-    }
-  );
+                         [rva](const std::unique_ptr<ExportEntry>& E) {
+                           return E->address() == rva;
+                         });

   if (it == entries_.end()) {
     return nullptr;
@@ -156,8 +152,9 @@ ExportEntry& Export::add_entry(const ExportEntry& exp) {

 bool Export::remove_entry(const ExportEntry& exp) {
   auto it = std::find_if(entries_.begin(), entries_.end(),
-    [&exp] (const std::unique_ptr<ExportEntry>& E) { return &exp == E.get(); }
-  );
+                         [&exp](const std::unique_ptr<ExportEntry>& E) {
+                           return &exp == E.get();
+                         });

   if (it == entries_.end()) {
     return false;
@@ -169,17 +166,19 @@ bool Export::remove_entry(const ExportEntry& exp) {


 std::ostream& operator<<(std::ostream& os, const Export& exp) {
-  using namespace fmt;
   static constexpr auto WIDTH = 20;
-  os << format("DLL Name: {}\n", exp.name())
-     << format("  {:{}} 0x{:08x}\n", "Characteristics", WIDTH, exp.export_flags())
-     << format("  {:{}} {} ({})\n", "Timestamp", WIDTH,
-               exp.timestamp(), ts_to_str(exp.timestamp()))
-     << format("  {:{}} {}.{}\n", "Version", WIDTH, exp.major_version(),
-               exp.minor_version())
-     << format("  {:{}} {}\n", "Ordinal Base", WIDTH, exp.ordinal_base())
-     << format("  {:{}} {}\n", "Number of functions", WIDTH, exp.export_addr_table_cnt())
-     << format("  {:{}} {}\n", "Number of names", WIDTH, exp.names_addr_table_cnt());
+  os << fmt::format("DLL Name: {}\n", exp.name())
+     << fmt::format("  {:{}} {:#010x}\n", "Characteristics", WIDTH,
+                    exp.export_flags())
+     << fmt::format("  {:{}} {} ({})\n", "Timestamp", WIDTH, exp.timestamp(),
+                    ts_to_str(exp.timestamp()))
+     << fmt::format("  {:{}} {}.{}\n", "Version", WIDTH, exp.major_version(),
+                    exp.minor_version())
+     << fmt::format("  {:{}} {}\n", "Ordinal Base", WIDTH, exp.ordinal_base())
+     << fmt::format("  {:{}} {}\n", "Number of functions", WIDTH,
+                    exp.export_addr_table_cnt())
+     << fmt::format("  {:{}} {}\n", "Number of names", WIDTH,
+                    exp.names_addr_table_cnt());
   for (const ExportEntry& E : exp.entries()) {
     os << "    " << E << '\n';
   }
@@ -187,4 +186,3 @@ std::ostream& operator<<(std::ostream& os, const Export& exp) {
 }

 }
-}
diff --git a/deps/LIEF/src/PE/ExportEntry.cpp b/deps/LIEF/src/PE/ExportEntry.cpp
index de3ba00e4b6..d46ea8dc794 100644
--- a/deps/LIEF/src/PE/ExportEntry.cpp
+++ b/deps/LIEF/src/PE/ExportEntry.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -22,8 +22,8 @@

 #include "internal_utils.hpp"

-namespace LIEF {
-namespace PE {
+
+namespace LIEF::PE {
 std::string ExportEntry::demangled_name() const {
   logging::needs_lief_extended();

@@ -39,15 +39,13 @@ void ExportEntry::accept(LIEF::Visitor& visitor) const {
 }

 std::ostream& operator<<(std::ostream& os, const ExportEntry& entry) {
-  using namespace fmt;
-  os << format("{:04d} {:5} 0x{:08x} {}",
-               entry.ordinal(), entry.is_extern() ? "[EXT]" : "",
-               entry.address(), entry.name());
+  os << fmt::format("{:04d} {:5} {:#010x} {}", entry.ordinal(),
+                    entry.is_extern() ? "[EXT]" : "", entry.address(),
+                    entry.name());
   if (entry.is_forwarded()) {
-    os << format(" ({})", LIEF::to_string(entry.forward_information()));
+    os << fmt::format(" ({})", LIEF::to_string(entry.forward_information()));
   }
   return os;
- }
-
 }
+
 }
diff --git a/deps/LIEF/src/PE/Factory.cpp b/deps/LIEF/src/PE/Factory.cpp
index 52cdb0f9445..4e8d63bcd92 100644
--- a/deps/LIEF/src/PE/Factory.cpp
+++ b/deps/LIEF/src/PE/Factory.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -15,14 +15,10 @@
  */
 #include "LIEF/PE/Factory.hpp"
 #include "LIEF/PE/Parser.hpp"
-#include "LIEF/PE/LoadConfigurations.hpp"
 #include "LIEF/PE/TLS.hpp"
-#include "LIEF/PE/RichHeader.hpp"
 #include "LIEF/PE/ResourceNode.hpp"
 #include "LIEF/PE/Export.hpp"
-#include "LIEF/PE/Debug.hpp"
 #include "LIEF/PE/Relocation.hpp"
-#include "LIEF/PE/RelocationEntry.hpp"
 #include "LIEF/PE/Section.hpp"

 #include "PE/Structures.hpp"
@@ -44,17 +40,18 @@ std::unique_ptr<Factory> Factory::create(PE_TYPE type) {
   pe.header_ = Header::create(type);
   pe.optional_header_ = OptionalHeader::create(type);

-  pe.dos_stub_ = {
-    0x0e, 0x1f, 0xba, 0x0e, 0x00, 0xb4, 0x09, 0xcd, 0x21, 0xb8, 0x01, 0x4c,
-    0xcd, 0x21, 0x54, 0x68, 0x69, 0x73, 0x20, 0x70, 0x72, 0x6f, 0x67, 0x72,
-    0x61, 0x6d, 0x20, 0x63, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x20, 0x62, 0x65,
-    0x20, 0x72, 0x75, 0x6e, 0x20, 0x69, 0x6e, 0x20, 0x44, 0x4f, 0x53, 0x20,
-    0x6d, 0x6f, 0x64, 0x65, 0x2e, 0x24, 0x00, 0x00
-  };
+  pe.dos_stub_ = {0x0e, 0x1f, 0xba, 0x0e, 0x00, 0xb4, 0x09, 0xcd, 0x21, 0xb8,
+                  0x01, 0x4c, 0xcd, 0x21, 0x54, 0x68, 0x69, 0x73, 0x20, 0x70,
+                  0x72, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x20, 0x63, 0x61, 0x6e,
+                  0x6e, 0x6f, 0x74, 0x20, 0x62, 0x65, 0x20, 0x72, 0x75, 0x6e,
+                  0x20, 0x69, 0x6e, 0x20, 0x44, 0x4f, 0x53, 0x20, 0x6d, 0x6f,
+                  0x64, 0x65, 0x2e, 0x24, 0x00, 0x00};

   pe.data_directories_.reserve(DataDirectory::DEFAULT_NB);
   for (size_t i = 0; i < DataDirectory::DEFAULT_NB; ++i) {
-    pe.data_directories_.push_back(std::make_unique<DataDirectory>(DataDirectory::TYPES(i)));
+    pe.data_directories_.push_back(
+        std::make_unique<DataDirectory>(DataDirectory::TYPES(i))
+    );
   }

   return factory;
@@ -71,15 +68,19 @@ std::unique_ptr<Binary> Factory::process() {
   pe_->write(oss, config);

   std::string buffer = oss.str();
-  return Parser::parse((const uint8_t*)buffer.data(), buffer.size());
+  return Parser::parse(reinterpret_cast<const uint8_t*>(buffer.data()),
+                       buffer.size());
 }

 ok_error_t Factory::assign_locations() {
   uint64_t last_offset = sizeof_headers();
   uint64_t last_rva = section_align();
   for (std::unique_ptr<Section>& section : sections_) {
-    last_offset = std::max<uint64_t>(section->offset() + section->size(), last_offset);
-    last_rva = std::max<uint64_t>(section->virtual_address() + section->virtual_size(), last_rva);
+    last_offset =
+        std::max<uint64_t>(section->offset() + section->size(), last_offset);
+    last_rva =
+        std::max<uint64_t>(section->virtual_address() + section->virtual_size(),
+                           last_rva);
   }

   last_offset = align(last_offset, file_align());
@@ -104,13 +105,13 @@ ok_error_t Factory::assign_locations() {

 uint32_t Factory::sizeof_headers() const {
   return align(
-    pe_->dos_header().addressof_new_exeheader() +
-    sizeof(details::pe_header) +
-    (is_32bit() ? sizeof(details::pe32_optional_header) :
-                  sizeof(details::pe64_optional_header)) +
-    sizeof(details::pe_data_directory) * pe_->data_directories_.size() +
-    sizeof(details::pe_section) * sections_.size(),
-    file_align());
+      pe_->dos_header().addressof_new_exeheader() + sizeof(details::pe_header) +
+          (is_32bit() ? sizeof(details::pe32_optional_header) :
+                        sizeof(details::pe64_optional_header)) +
+          sizeof(details::pe_data_directory) * pe_->data_directories_.size() +
+          sizeof(details::pe_section) * sections_.size(),
+      file_align()
+  );
 }


@@ -126,7 +127,7 @@ ok_error_t Factory::move_sections() {
 }

 ok_error_t Factory::check_overlapping() const {
-  // check that no section are overlapping
+  // Check that no sections are overlapping
   return ok();
 }
 }
diff --git a/deps/LIEF/src/PE/Header.cpp b/deps/LIEF/src/PE/Header.cpp
index 5719b0cd83f..8b890c23398 100644
--- a/deps/LIEF/src/PE/Header.cpp
+++ b/deps/LIEF/src/PE/Header.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -27,25 +27,25 @@
 #include <spdlog/fmt/fmt.h>
 #include <spdlog/fmt/ranges.h>

-namespace LIEF {
-namespace PE {
+
+namespace LIEF::PE {

 static constexpr std::array CHARACTERISTICS_LIST = {
-  Header::CHARACTERISTICS::RELOCS_STRIPPED,
-  Header::CHARACTERISTICS::EXECUTABLE_IMAGE,
-  Header::CHARACTERISTICS::LINE_NUMS_STRIPPED,
-  Header::CHARACTERISTICS::LOCAL_SYMS_STRIPPED,
-  Header::CHARACTERISTICS::AGGRESSIVE_WS_TRIM,
-  Header::CHARACTERISTICS::LARGE_ADDRESS_AWARE,
-  Header::CHARACTERISTICS::BYTES_REVERSED_LO,
-  Header::CHARACTERISTICS::NEED_32BIT_MACHINE,
-  Header::CHARACTERISTICS::DEBUG_STRIPPED,
-  Header::CHARACTERISTICS::REMOVABLE_RUN_FROM_SWAP,
-  Header::CHARACTERISTICS::NET_RUN_FROM_SWAP,
-  Header::CHARACTERISTICS::SYSTEM,
-  Header::CHARACTERISTICS::DLL,
-  Header::CHARACTERISTICS::UP_SYSTEM_ONLY,
-  Header::CHARACTERISTICS::BYTES_REVERSED_HI
+    Header::CHARACTERISTICS::RELOCS_STRIPPED,
+    Header::CHARACTERISTICS::EXECUTABLE_IMAGE,
+    Header::CHARACTERISTICS::LINE_NUMS_STRIPPED,
+    Header::CHARACTERISTICS::LOCAL_SYMS_STRIPPED,
+    Header::CHARACTERISTICS::AGGRESSIVE_WS_TRIM,
+    Header::CHARACTERISTICS::LARGE_ADDRESS_AWARE,
+    Header::CHARACTERISTICS::BYTES_REVERSED_LO,
+    Header::CHARACTERISTICS::NEED_32BIT_MACHINE,
+    Header::CHARACTERISTICS::DEBUG_STRIPPED,
+    Header::CHARACTERISTICS::REMOVABLE_RUN_FROM_SWAP,
+    Header::CHARACTERISTICS::NET_RUN_FROM_SWAP,
+    Header::CHARACTERISTICS::SYSTEM,
+    Header::CHARACTERISTICS::DLL,
+    Header::CHARACTERISTICS::UP_SYSTEM_ONLY,
+    Header::CHARACTERISTICS::BYTES_REVERSED_HI
 };

 bool Header::is_known_machine(uint16_t machine) {
@@ -56,24 +56,24 @@ Header Header::create(PE_TYPE type) {
   Header hdr;
   const size_t sizeof_dirs = details::DEFAULT_NUMBER_DATA_DIRECTORIES *
                              sizeof(details::pe_data_directory);
-  hdr.signature({ 'P', 'E', '\0', '\0' });
+  hdr.signature({'P', 'E', '\0', '\0'});
   hdr.sizeof_optional_header(type == PE_TYPE::PE32 ?
-                             sizeof(details::pe32_optional_header) :
-                             sizeof(details::pe64_optional_header) + sizeof_dirs);
+                                 sizeof(details::pe32_optional_header) :
+                                 sizeof(details::pe64_optional_header) +
+                                     sizeof_dirs);
   hdr.machine(MACHINE_TYPES::AMD64);
   return hdr;
 }

 Header::Header(const details::pe_header& header) :
+  signature_{},
   machine_(static_cast<MACHINE_TYPES>(header.Machine)),
   nb_sections_(header.NumberOfSections),
   timedatestamp_(header.TimeDateStamp),
   pointerto_symtab_(header.PointerToSymbolTable),
   nb_symbols_(header.NumberOfSymbols),
   sizeof_opt_header_(header.SizeOfOptionalHeader),
-  characteristics_(header.Characteristics)
-
-{
+  characteristics_(header.Characteristics) {
   std::copy(std::begin(header.signature), std::end(header.signature),
             std::begin(signature_));
 }
@@ -83,7 +83,7 @@ std::vector<Header::CHARACTERISTICS> Header::characteristics_list() const {
   list.reserve(3);
   std::copy_if(CHARACTERISTICS_LIST.begin(), CHARACTERISTICS_LIST.end(),
                std::back_inserter(list),
-               [this] (CHARACTERISTICS c) { return has_characteristic(c); });
+               [this](CHARACTERISTICS c) { return has_characteristic(c); });

   return list;
 }
@@ -95,67 +95,43 @@ void Header::accept(LIEF::Visitor& visitor) const {
 std::ostream& operator<<(std::ostream& os, const Header& entry) {
   const Header::signature_t& sig = entry.signature();
   const std::string& signature_str =
-    fmt::format("{:02x} {:02x} {:02x} {:02x}",
-                sig[0], sig[1], sig[2], sig[3]);
+      fmt::format("{:02x} {:02x} {:02x} {:02x}", sig[0], sig[1], sig[2], sig[3]);

   const auto& list = entry.characteristics_list();
   std::vector<std::string> list_str;
   list_str.reserve(list.size());
   std::transform(list.begin(), list.end(), std::back_inserter(list_str),
-                 [] (const auto c) { return to_string(c); });
+                 [](const auto c) { return to_string(c); });

   os << fmt::format("Signature:               {}\n", signature_str)
      << fmt::format("Machine:                 {}\n", to_string(entry.machine()))
      << fmt::format("Number of sections:      {}\n", entry.numberof_sections())
-     << fmt::format("Pointer to symbol table: 0x{:x}\n", entry.pointerto_symbol_table())
+     << fmt::format("Pointer to symbol table: {:#x}\n",
+                    entry.pointerto_symbol_table())
      << fmt::format("Number of symbols:       {}\n", entry.numberof_symbols())
-     << fmt::format("Size of optional header: 0x{:x}\n", entry.sizeof_optional_header())
+     << fmt::format("Size of optional header: {:#x}\n",
+                    entry.sizeof_optional_header())
      << fmt::format("Characteristics:         {}\n", fmt::join(list_str, ", "))
-     << fmt::format("Timtestamp:              {} ({})\n",
-                    entry.time_date_stamp(), ts_to_str(entry.time_date_stamp()));
+     << fmt::format("Timestamp:              {} ({})\n", entry.time_date_stamp(),
+                    ts_to_str(entry.time_date_stamp()));

   return os;
-
 }

 const char* to_string(Header::MACHINE_TYPES e) {
-  #define ENTRY(X) std::pair(Header::MACHINE_TYPES::X, #X)
-  STRING_MAP enums2str {
-    ENTRY(UNKNOWN),
-    ENTRY(ALPHA),
-    ENTRY(ALPHA64),
-    ENTRY(AM33),
-    ENTRY(AMD64),
-    ENTRY(ARM),
-    ENTRY(ARMNT),
-    ENTRY(ARM64),
-    ENTRY(EBC),
-    ENTRY(I386),
-    ENTRY(IA64),
-    ENTRY(LOONGARCH32),
-    ENTRY(LOONGARCH64),
-    ENTRY(M32R),
-    ENTRY(MIPS16),
-    ENTRY(MIPSFPU),
-    ENTRY(MIPSFPU16),
-    ENTRY(POWERPC),
-    ENTRY(POWERPCFP),
-    ENTRY(POWERPCBE),
-    ENTRY(R4000),
-    ENTRY(RISCV32),
-    ENTRY(RISCV64),
-    ENTRY(RISCV128),
-    ENTRY(SH3),
-    ENTRY(SH3DSP),
-    ENTRY(SH4),
-    ENTRY(SH5),
-    ENTRY(THUMB),
-    ENTRY(WCEMIPSV2),
-    ENTRY(ARM64EC),
-    ENTRY(ARM64X),
-    ENTRY(CHPE_X86),
+#define ENTRY(X) std::pair(Header::MACHINE_TYPES::X, #X)
+  STRING_MAP enums2str{
+      ENTRY(UNKNOWN),     ENTRY(ALPHA),     ENTRY(ALPHA64),   ENTRY(AM33),
+      ENTRY(AMD64),       ENTRY(ARM),       ENTRY(ARMNT),     ENTRY(ARM64),
+      ENTRY(EBC),         ENTRY(I386),      ENTRY(IA64),      ENTRY(LOONGARCH32),
+      ENTRY(LOONGARCH64), ENTRY(M32R),      ENTRY(MIPS16),    ENTRY(MIPSFPU),
+      ENTRY(MIPSFPU16),   ENTRY(POWERPC),   ENTRY(POWERPCFP), ENTRY(POWERPCBE),
+      ENTRY(R4000),       ENTRY(RISCV32),   ENTRY(RISCV64),   ENTRY(RISCV128),
+      ENTRY(SH3),         ENTRY(SH3DSP),    ENTRY(SH4),       ENTRY(SH5),
+      ENTRY(THUMB),       ENTRY(WCEMIPSV2), ENTRY(ARM64EC),   ENTRY(ARM64X),
+      ENTRY(CHPE_X86),
   };
-  #undef ENTRY
+#undef ENTRY

   if (auto it = enums2str.find(e); it != enums2str.end()) {
     return it->second;
@@ -164,26 +140,26 @@ const char* to_string(Header::MACHINE_TYPES e) {
 }

 const char* to_string(Header::CHARACTERISTICS e) {
-  #define ENTRY(X) std::pair(Header::CHARACTERISTICS::X, #X)
-  STRING_MAP enums2str {
-    ENTRY(NONE),
-    ENTRY(RELOCS_STRIPPED),
-    ENTRY(EXECUTABLE_IMAGE),
-    ENTRY(LINE_NUMS_STRIPPED),
-    ENTRY(LOCAL_SYMS_STRIPPED),
-    ENTRY(AGGRESSIVE_WS_TRIM),
-    ENTRY(LARGE_ADDRESS_AWARE),
-    ENTRY(BYTES_REVERSED_LO),
-    ENTRY(NEED_32BIT_MACHINE),
-    ENTRY(DEBUG_STRIPPED),
-    ENTRY(REMOVABLE_RUN_FROM_SWAP),
-    ENTRY(NET_RUN_FROM_SWAP),
-    ENTRY(SYSTEM),
-    ENTRY(DLL),
-    ENTRY(UP_SYSTEM_ONLY),
-    ENTRY(BYTES_REVERSED_HI),
+#define ENTRY(X) std::pair(Header::CHARACTERISTICS::X, #X)
+  STRING_MAP enums2str{
+      ENTRY(NONE),
+      ENTRY(RELOCS_STRIPPED),
+      ENTRY(EXECUTABLE_IMAGE),
+      ENTRY(LINE_NUMS_STRIPPED),
+      ENTRY(LOCAL_SYMS_STRIPPED),
+      ENTRY(AGGRESSIVE_WS_TRIM),
+      ENTRY(LARGE_ADDRESS_AWARE),
+      ENTRY(BYTES_REVERSED_LO),
+      ENTRY(NEED_32BIT_MACHINE),
+      ENTRY(DEBUG_STRIPPED),
+      ENTRY(REMOVABLE_RUN_FROM_SWAP),
+      ENTRY(NET_RUN_FROM_SWAP),
+      ENTRY(SYSTEM),
+      ENTRY(DLL),
+      ENTRY(UP_SYSTEM_ONLY),
+      ENTRY(BYTES_REVERSED_HI),
   };
-  #undef ENTRY
+#undef ENTRY

   if (auto it = enums2str.find(e); it != enums2str.end()) {
     return it->second;
@@ -192,7 +168,4 @@ const char* to_string(Header::CHARACTERISTICS e) {
 }


-
-
-}
 }
diff --git a/deps/LIEF/src/PE/Import.cpp b/deps/LIEF/src/PE/Import.cpp
index c23b671998f..6f70c15695d 100644
--- a/deps/LIEF/src/PE/Import.cpp
+++ b/deps/LIEF/src/PE/Import.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -14,7 +14,6 @@
  * limitations under the License.
  */
 #include <algorithm>
-#include <iomanip>

 #include "LIEF/Visitor.hpp"

@@ -24,16 +23,15 @@

 #include <spdlog/fmt/fmt.h>

-namespace LIEF {
-namespace PE {
+
+namespace LIEF::PE {

 Import::Import(const details::pe_import& import) :
   ilt_rva_(import.ImportLookupTableRVA),
   timedatestamp_(import.TimeDateStamp),
   forwarder_chain_(import.ForwarderChain),
   name_rva_(import.NameRVA),
-  iat_rva_(import.ImportAddressTableRVA)
-{}
+  iat_rva_(import.ImportAddressTableRVA) {}


 Import::Import(const Import& other) :
@@ -47,8 +45,7 @@ Import::Import(const Import& other) :
   iat_rva_(other.iat_rva_),
   name_(other.name_),
   type_(other.type_),
-  nb_original_func_(other.nb_original_func_)
-{
+  nb_original_func_(other.nb_original_func_) {
   if (!other.entries_.empty()) {
     entries_.reserve(other.entries_.size());
     for (const ImportEntry& entry : other.entries()) {
@@ -86,10 +83,9 @@ Import& Import::operator=(const Import& other) {

 bool Import::remove_entry(const std::string& name) {
   auto it = std::find_if(entries_.begin(), entries_.end(),
-    [&name] (const std::unique_ptr<ImportEntry>& entry) {
-      return entry->name() == name;
-    }
-  );
+                         [&name](const std::unique_ptr<ImportEntry>& entry) {
+                           return entry->name() == name;
+                         });
   if (it == entries_.end()) {
     return false;
   }
@@ -99,11 +95,11 @@ bool Import::remove_entry(const std::string& name) {
 }

 bool Import::remove_entry(uint32_t ordinal) {
-  auto it = std::find_if(entries_.begin(), entries_.end(),
-    [ordinal] (const std::unique_ptr<ImportEntry>& entry) {
-      return entry->is_ordinal() && entry->ordinal() == ordinal;
-    }
-  );
+  auto it =
+      std::find_if(entries_.begin(), entries_.end(),
+                   [ordinal](const std::unique_ptr<ImportEntry>& entry) {
+                     return entry->is_ordinal() && entry->ordinal() == ordinal;
+                   });
   if (it == entries_.end()) {
     return false;
   }
@@ -113,28 +109,31 @@ bool Import::remove_entry(uint32_t ordinal) {
 }

 const ImportEntry* Import::get_entry(const std::string& name) const {
-  const auto it_entry = std::find_if(std::begin(entries_), std::end(entries_),
-      [&name] (const std::unique_ptr<ImportEntry>& entry) {
-        return entry->name() == name;
-      });
-  if (it_entry == std::end(entries_)) {
+  const auto it_entry =
+      std::find_if(entries_.begin(), entries_.end(),
+                   [&name](const std::unique_ptr<ImportEntry>& entry) {
+                     return entry->name() == name;
+                   });
+  if (it_entry == entries_.end()) {
     return nullptr;
   }
   return &**it_entry;
 }

-result<uint32_t> Import::get_function_rva_from_iat(const std::string& function) const {
-  const auto it_function = std::find_if(std::begin(entries_), std::end(entries_),
-      [&function] (const std::unique_ptr<ImportEntry>& entry) {
-        return entry->name() == function;
-      });
+result<uint32_t>
+    Import::get_function_rva_from_iat(const std::string& function) const {
+  const auto it_function =
+      std::find_if(entries_.begin(), entries_.end(),
+                   [&function](const std::unique_ptr<ImportEntry>& entry) {
+                     return entry->name() == function;
+                   });

-  if (it_function == std::end(entries_)) {
+  if (it_function == entries_.end()) {
     return make_error_code(lief_errors::not_found);
   }

   // Index of the function in the imported functions
-  uint32_t idx = std::distance(std::begin(entries_), it_function);
+  uint32_t idx = std::distance(entries_.begin(), it_function);

   if (type_ == PE_TYPE::PE32) {
     return idx * sizeof(uint32_t);
@@ -148,24 +147,24 @@ void Import::accept(LIEF::Visitor& visitor) const {

 std::ostream& operator<<(std::ostream& os, const Import& entry) {
   os << fmt::format(
-  R"delim(
+      R"delim(
   Name: {} {{
-    Name(RVA): 0x{:06x}
-    IAT(RVA):  0x{:06x}
-    ILT(RVA):  0x{:06x}
-    FWD Chain: 0x{:06x}
-    Timestamp: 0x{:06x}
+    Name(RVA): {:#08x}
+    IAT(RVA):  {:#08x}
+    ILT(RVA):  {:#08x}
+    FWD Chain: {:#08x}
+    Timestamp: {:#08x}
   }}
   )delim",
-  entry.name(), entry.name_rva_, entry.import_address_table_rva(),
-  entry.import_lookup_table_rva(), entry.forwarder_chain(),
-  entry.timedatestamp());
+      entry.name(), entry.name_rva_, entry.import_address_table_rva(),
+      entry.import_lookup_table_rva(), entry.forwarder_chain(),
+      entry.timedatestamp()
+  );
   os << '\n';
-  for (const ImportEntry& functions: entry.entries()) {
+  for (const ImportEntry& functions : entry.entries()) {
     os << "    " << functions << '\n';
   }

   return os;
 }
 }
-}
diff --git a/deps/LIEF/src/PE/ImportEntry.cpp b/deps/LIEF/src/PE/ImportEntry.cpp
index d76c81e1649..93796374c02 100644
--- a/deps/LIEF/src/PE/ImportEntry.cpp
+++ b/deps/LIEF/src/PE/ImportEntry.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -20,8 +20,8 @@
 #include "LIEF/Visitor.hpp"
 #include "LIEF/PE/ImportEntry.hpp"

-namespace LIEF {
-namespace PE {
+
+namespace LIEF::PE {

 std::string ImportEntry::demangled_name() const {
   logging::needs_lief_extended();
@@ -34,8 +34,10 @@ std::string ImportEntry::demangled_name() const {
 }

 bool ImportEntry::is_ordinal() const {
-  // See: https://docs.microsoft.com/en-us/windows/desktop/debug/pe-format#the-idata-section
-  const uint64_t ORDINAL_MASK = (type_ == PE_TYPE::PE32) ? 0x80000000 : 0x8000000000000000;
+  // See:
+  // https://docs.microsoft.com/en-us/windows/desktop/debug/pe-format#the-idata-section
+  const uint64_t ORDINAL_MASK =
+      (type_ == PE_TYPE::PE32) ? 0x80000000 : 0x8000000000000000;
   bool ordinal_bit_is_set = (data_ & ORDINAL_MASK) != 0;

   // Check that bit 31 / 63 is set
@@ -53,12 +55,11 @@ void ImportEntry::accept(LIEF::Visitor& visitor) const {
 }

 std::ostream& operator<<(std::ostream& os, const ImportEntry& entry) {
-  using namespace fmt;
   os << (!entry.is_ordinal() ?
-        format("0x{:04x}: {}", entry.hint(), entry.name()) :
-        format("0x{:04x}: {}", entry.hint(), entry.ordinal()));
+             fmt::format("{:#06x}: {}", entry.hint(), entry.name()) :
+             fmt::format("{:#06x}: {}", entry.hint(), entry.ordinal()));
   return os;
 }

-} // namespace PE
-} // namepsace LIEF
+} // namespace LIEF::PE
+// namespace LIEF
diff --git a/deps/LIEF/src/PE/LoadConfigurations/CHPEMetadata/Metadata.cpp b/deps/LIEF/src/PE/LoadConfigurations/CHPEMetadata/Metadata.cpp
index 09335a23601..e3b2731da3f 100644
--- a/deps/LIEF/src/PE/LoadConfigurations/CHPEMetadata/Metadata.cpp
+++ b/deps/LIEF/src/PE/LoadConfigurations/CHPEMetadata/Metadata.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -25,7 +25,8 @@
 #include "logging.hpp"

 namespace LIEF::PE {
-std::unique_ptr<CHPEMetadata> CHPEMetadata::parse(Parser& ctx, BinaryStream& stream) {
+std::unique_ptr<CHPEMetadata> CHPEMetadata::parse(Parser& ctx,
+                                                  BinaryStream& stream) {
   LIEF_DEBUG("Parsing CHPEMetadata");
   auto version = stream.read<uint32_t>();
   if (!version) {
diff --git a/deps/LIEF/src/PE/LoadConfigurations/CHPEMetadata/MetadataARM64.cpp b/deps/LIEF/src/PE/LoadConfigurations/CHPEMetadata/MetadataARM64.cpp
index a90ff864f4a..889ef45f755 100644
--- a/deps/LIEF/src/PE/LoadConfigurations/CHPEMetadata/MetadataARM64.cpp
+++ b/deps/LIEF/src/PE/LoadConfigurations/CHPEMetadata/MetadataARM64.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -24,8 +24,7 @@

 namespace LIEF::PE {
 std::unique_ptr<CHPEMetadataARM64>
-  CHPEMetadataARM64::parse(Parser& ctx, BinaryStream& stream, uint32_t version)
-{
+    CHPEMetadataARM64::parse(Parser& ctx, BinaryStream& stream, uint32_t version) {
   // The structure defining Hybrid metadata for ARM64(EC) is located in
   // `ntimage.h` and named: `_IMAGE_ARM64EC_METADATA`
   //
@@ -67,49 +66,62 @@ std::unique_ptr<CHPEMetadataARM64>

   auto CodeRangesToEntryPoints = stream.read<uint32_t>();
   if (!CodeRangesToEntryPoints) {
-    LIEF_DEBUG("Failed to read Compiled Hybrid Metadata[ARM64]: CodeRangesToEntryPoints");
+    LIEF_DEBUG(
+        "Failed to read Compiled Hybrid Metadata[ARM64]: CodeRangesToEntryPoints"
+    );
     return nullptr;
   }

   auto RedirectionMetadata = stream.read<uint32_t>();
   if (!RedirectionMetadata) {
-    LIEF_DEBUG("Failed to read Compiled Hybrid Metadata[ARM64]: RedirectionMetadata");
+    LIEF_DEBUG(
+        "Failed to read Compiled Hybrid Metadata[ARM64]: RedirectionMetadata"
+    );
     return nullptr;
   }

   auto __os_arm64x_dispatch_call_no_redirect = stream.read<uint32_t>();
   if (!__os_arm64x_dispatch_call_no_redirect) {
-    LIEF_DEBUG("Failed to read Compiled Hybrid Metadata[ARM64]: __os_arm64x_dispatch_call_no_redirect");
+    LIEF_DEBUG("Failed to read Compiled Hybrid Metadata[ARM64]: "
+               "__os_arm64x_dispatch_call_no_redirect");
     return nullptr;
   }

   auto __os_arm64x_dispatch_ret = stream.read<uint32_t>();
   if (!__os_arm64x_dispatch_ret) {
-    LIEF_DEBUG("Failed to read Compiled Hybrid Metadata[ARM64]: __os_arm64x_dispatch_ret");
+    LIEF_DEBUG(
+        "Failed to read Compiled Hybrid Metadata[ARM64]: __os_arm64x_dispatch_ret"
+    );
     return nullptr;
   }

   auto __os_arm64x_dispatch_call = stream.read<uint32_t>();
   if (!__os_arm64x_dispatch_call) {
-    LIEF_DEBUG("Failed to read Compiled Hybrid Metadata[ARM64]: __os_arm64x_dispatch_call");
+    LIEF_DEBUG(
+        "Failed to read Compiled Hybrid Metadata[ARM64]: __os_arm64x_dispatch_call"
+    );
     return nullptr;
   }

   auto __os_arm64x_dispatch_icall = stream.read<uint32_t>();
   if (!__os_arm64x_dispatch_icall) {
-    LIEF_DEBUG("Failed to read Compiled Hybrid Metadata[ARM64]: __os_arm64x_dispatch_icall");
+    LIEF_DEBUG("Failed to read Compiled Hybrid Metadata[ARM64]: "
+               "__os_arm64x_dispatch_icall");
     return nullptr;
   }

   auto __os_arm64x_dispatch_icall_cfg = stream.read<uint32_t>();
   if (!__os_arm64x_dispatch_icall_cfg) {
-    LIEF_DEBUG("Failed to read Compiled Hybrid Metadata[ARM64]: __os_arm64x_dispatch_icall_cfg");
+    LIEF_DEBUG("Failed to read Compiled Hybrid Metadata[ARM64]: "
+               "__os_arm64x_dispatch_icall_cfg");
     return nullptr;
   }

   auto AlternateEntryPoint = stream.read<uint32_t>();
   if (!AlternateEntryPoint) {
-    LIEF_DEBUG("Failed to read Compiled Hybrid Metadata[ARM64]: AlternateEntryPoint");
+    LIEF_DEBUG(
+        "Failed to read Compiled Hybrid Metadata[ARM64]: AlternateEntryPoint"
+    );
     return nullptr;
   }

@@ -121,25 +133,30 @@ std::unique_ptr<CHPEMetadataARM64>

   auto CodeRangesToEntryPointsCount = stream.read<uint32_t>();
   if (!CodeRangesToEntryPointsCount) {
-    LIEF_DEBUG("Failed to read Compiled Hybrid Metadata[ARM64]: CodeRangesToEntryPointsCount");
+    LIEF_DEBUG("Failed to read Compiled Hybrid Metadata[ARM64]: "
+               "CodeRangesToEntryPointsCount");
     return nullptr;
   }

   auto RedirectionMetadataCount = stream.read<uint32_t>();
   if (!RedirectionMetadataCount) {
-    LIEF_DEBUG("Failed to read Compiled Hybrid Metadata[ARM64]: RedirectionMetadataCount");
+    LIEF_DEBUG(
+        "Failed to read Compiled Hybrid Metadata[ARM64]: RedirectionMetadataCount"
+    );
     return nullptr;
   }

   auto GetX64InformationFunctionPointer = stream.read<uint32_t>();
   if (!GetX64InformationFunctionPointer) {
-    LIEF_DEBUG("Failed to read Compiled Hybrid Metadata[ARM64]: GetX64InformationFunctionPointer");
+    LIEF_DEBUG("Failed to read Compiled Hybrid Metadata[ARM64]: "
+               "GetX64InformationFunctionPointer");
     return nullptr;
   }

   auto SetX64InformationFunctionPointer = stream.read<uint32_t>();
   if (!SetX64InformationFunctionPointer) {
-    LIEF_DEBUG("Failed to read Compiled Hybrid Metadata[ARM64]: SetX64InformationFunctionPointer");
+    LIEF_DEBUG("Failed to read Compiled Hybrid Metadata[ARM64]: "
+               "SetX64InformationFunctionPointer");
     return nullptr;
   }

@@ -151,13 +168,17 @@ std::unique_ptr<CHPEMetadataARM64>

   auto ExtraRFETableSize = stream.read<uint32_t>();
   if (!ExtraRFETableSize) {
-    LIEF_DEBUG("Failed to read Compiled Hybrid Metadata[ARM64]: ExtraRFETableSize");
+    LIEF_DEBUG(
+        "Failed to read Compiled Hybrid Metadata[ARM64]: ExtraRFETableSize"
+    );
     return nullptr;
   }

   auto __os_arm64x_dispatch_fptr = stream.read<uint32_t>();
   if (!__os_arm64x_dispatch_fptr) {
-    LIEF_DEBUG("Failed to read Compiled Hybrid Metadata[ARM64]: __os_arm64x_dispatch_fptr");
+    LIEF_DEBUG(
+        "Failed to read Compiled Hybrid Metadata[ARM64]: __os_arm64x_dispatch_fptr"
+    );
     return nullptr;
   }

@@ -169,13 +190,17 @@ std::unique_ptr<CHPEMetadataARM64>

   auto AuxiliaryDelayImport = stream.read<uint32_t>();
   if (!AuxiliaryDelayImport) {
-    LIEF_DEBUG("Failed to read Compiled Hybrid Metadata[ARM64]: AuxiliaryDelayImport");
+    LIEF_DEBUG(
+        "Failed to read Compiled Hybrid Metadata[ARM64]: AuxiliaryDelayImport"
+    );
     return nullptr;
   }

   auto AuxiliaryDelayImportCopy = stream.read<uint32_t>();
   if (!AuxiliaryDelayImportCopy) {
-    LIEF_DEBUG("Failed to read Compiled Hybrid Metadata[ARM64]: AuxiliaryDelayImportCopy");
+    LIEF_DEBUG(
+        "Failed to read Compiled Hybrid Metadata[ARM64]: AuxiliaryDelayImportCopy"
+    );
     return nullptr;
   }

@@ -188,29 +213,28 @@ std::unique_ptr<CHPEMetadataARM64>
   auto metadata = std::make_unique<CHPEMetadataARM64>(version);

   (*metadata)
-    .code_map(*CodeMap)
-    .code_map_count(*CodeMapCount)
-    .code_ranges_to_entrypoints(*CodeRangesToEntryPoints)
-    .redirection_metadata(*RedirectionMetadata)
-    .os_arm64x_dispatch_call_no_redirect(*__os_arm64x_dispatch_call_no_redirect)
-    .os_arm64x_dispatch_ret(*__os_arm64x_dispatch_ret)
-    .os_arm64x_dispatch_call(*__os_arm64x_dispatch_call)
-    .os_arm64x_dispatch_icall(*__os_arm64x_dispatch_icall)
-    .os_arm64x_dispatch_icall_cfg(*__os_arm64x_dispatch_icall_cfg)
-    .alternate_entry_point(*AlternateEntryPoint)
-    .auxiliary_iat(*AuxiliaryIAT)
-    .code_ranges_to_entry_points_count(*CodeRangesToEntryPointsCount)
-    .redirection_metadata_count(*RedirectionMetadataCount)
-    .get_x64_information_function_pointer(*GetX64InformationFunctionPointer)
-    .set_x64_information_function_pointer(*SetX64InformationFunctionPointer)
-    .extra_rfe_table(*ExtraRFETable)
-    .extra_rfe_table_size(*ExtraRFETableSize)
-    .os_arm64x_dispatch_fptr(*__os_arm64x_dispatch_fptr)
-    .auxiliary_iat_copy(*AuxiliaryIATCopy)
-    .auxiliary_delay_import(*AuxiliaryDelayImport)
-    .auxiliary_delay_import_copy(*AuxiliaryDelayImportCopy)
-    .bitfield_info(*BitfieldInfo)
-  ;
+      .code_map(*CodeMap)
+      .code_map_count(*CodeMapCount)
+      .code_ranges_to_entrypoints(*CodeRangesToEntryPoints)
+      .redirection_metadata(*RedirectionMetadata)
+      .os_arm64x_dispatch_call_no_redirect(*__os_arm64x_dispatch_call_no_redirect)
+      .os_arm64x_dispatch_ret(*__os_arm64x_dispatch_ret)
+      .os_arm64x_dispatch_call(*__os_arm64x_dispatch_call)
+      .os_arm64x_dispatch_icall(*__os_arm64x_dispatch_icall)
+      .os_arm64x_dispatch_icall_cfg(*__os_arm64x_dispatch_icall_cfg)
+      .alternate_entry_point(*AlternateEntryPoint)
+      .auxiliary_iat(*AuxiliaryIAT)
+      .code_ranges_to_entry_points_count(*CodeRangesToEntryPointsCount)
+      .redirection_metadata_count(*RedirectionMetadataCount)
+      .get_x64_information_function_pointer(*GetX64InformationFunctionPointer)
+      .set_x64_information_function_pointer(*SetX64InformationFunctionPointer)
+      .extra_rfe_table(*ExtraRFETable)
+      .extra_rfe_table_size(*ExtraRFETableSize)
+      .os_arm64x_dispatch_fptr(*__os_arm64x_dispatch_fptr)
+      .auxiliary_iat_copy(*AuxiliaryIATCopy)
+      .auxiliary_delay_import(*AuxiliaryDelayImport)
+      .auxiliary_delay_import_copy(*AuxiliaryDelayImportCopy)
+      .bitfield_info(*BitfieldInfo);

   if (metadata->code_map_count() > 0) {
     if (!parse_code_map(ctx, *metadata)) {
@@ -235,18 +259,21 @@ std::unique_ptr<CHPEMetadataARM64>


 ok_error_t CHPEMetadataARM64::parse_code_map(Parser& ctx,
-                                             CHPEMetadataARM64& metadata)
-{
+                                             CHPEMetadataARM64& metadata) {
   uint32_t offset = ctx.bin().rva_to_offset(metadata.code_map());
   const size_t count = metadata.code_map_count();

   ScopedStream stream(ctx.stream(), offset);

-  // std::min to prevent corrupted count
-  size_t reserved = std::min<size_t>(count, 15);
-  metadata.range_entries_.reserve(reserved);
+  // Bound the loop to the number of 8-byte entries the stream can still provide
+  // so a corrupted count can't drive it (and the allocations) past the data.
+  const uint64_t available =
+      stream->size() - std::min<uint64_t>(stream->pos(), stream->size());
+  const uint64_t nb =
+      std::min<uint64_t>(count, available / (2 * sizeof(uint32_t)));
+  metadata.range_entries_.reserve(std::min<uint64_t>(nb, 15));

-  for (size_t i = 0; i < count; ++i) {
+  for (size_t i = 0; i < nb; ++i) {
     auto start_offset = stream->read<uint32_t>();
     if (!start_offset) {
       return make_error_code(start_offset.error());
@@ -265,17 +292,20 @@ ok_error_t CHPEMetadataARM64::parse_code_map(Parser& ctx,


 ok_error_t CHPEMetadataARM64::parse_redirections(Parser& ctx,
-                                                 CHPEMetadataARM64& metadata)
-{
+                                                 CHPEMetadataARM64& metadata) {
   uint32_t offset = ctx.bin().rva_to_offset(metadata.redirection_metadata());
   const size_t count = metadata.redirection_metadata_count();

   ScopedStream stream(ctx.stream(), offset);
-  // std::min to prevent corrupted count
-  size_t reserved = std::min<size_t>(count, 15);
-  metadata.redirection_entries_.reserve(reserved);
-
-  for (size_t i = 0; i < count; ++i) {
+  // Bound the loop to the number of 8-byte entries the stream can still provide
+  // so a corrupted count can't drive it (and the allocations) past the data.
+  const uint64_t available =
+      stream->size() - std::min<uint64_t>(stream->pos(), stream->size());
+  const uint64_t nb =
+      std::min<uint64_t>(count, available / (2 * sizeof(uint32_t)));
+  metadata.redirection_entries_.reserve(std::min<uint64_t>(nb, 15));
+
+  for (size_t i = 0; i < nb; ++i) {
     auto src = stream->read<uint32_t>();
     if (!src) {
       return make_error_code(src.error());
@@ -292,15 +322,20 @@ ok_error_t CHPEMetadataARM64::parse_redirections(Parser& ctx,
 }

 ok_error_t CHPEMetadataARM64::parse_code_ranges_to_entry_points(
-    Parser& ctx, CHPEMetadataARM64& metadata)
-{
+    Parser& ctx, CHPEMetadataARM64& metadata
+) {
   uint32_t offset = ctx.bin().rva_to_offset(metadata.code_ranges_to_entrypoints());
   const size_t count = metadata.code_ranges_to_entry_points_count();

   ScopedStream stream(ctx.stream(), offset);
-  // std::min to prevent corrupted count
-  size_t reserved = std::min<size_t>(count, 15);
-  metadata.redirection_entries_.reserve(reserved);
+  // Each entry is 3 x 4-byte fields (see the struct below). Bound the loop to
+  // what the stream can still provide so a corrupted count can't drive it (and
+  // the allocations) past the data.
+  const uint64_t available =
+      stream->size() - std::min<uint64_t>(stream->pos(), stream->size());
+  const uint64_t nb =
+      std::min<uint64_t>(count, available / (3 * sizeof(uint32_t)));
+  metadata.code_range_entry_point_entries_.reserve(std::min<uint64_t>(nb, 15));

   // Definition in ntimage.h:
   //
@@ -311,7 +346,7 @@ ok_error_t CHPEMetadataARM64::parse_code_ranges_to_entry_points(
   //     ULONG EntryPoint;
   // } IMAGE_ARM64EC_CODE_RANGE_ENTRY_POINT;
   // ```
-  for (size_t i = 0; i < count; ++i) {
+  for (size_t i = 0; i < nb; ++i) {
     auto StartRva = stream->read<uint32_t>();
     if (!StartRva) {
       LIEF_DEBUG("Failed to read IMAGE_ARM64EC_CODE_RANGE_ENTRY_POINT.StartRva");
@@ -331,7 +366,7 @@ ok_error_t CHPEMetadataARM64::parse_code_ranges_to_entry_points(
     }

     metadata.code_range_entry_point_entries_.push_back(
-      code_range_entry_point_t{*StartRva, *EndRva, *EntryPoint}
+        code_range_entry_point_t{*StartRva, *EndRva, *EntryPoint}
     );
   }
   return ok();
@@ -339,68 +374,77 @@ ok_error_t CHPEMetadataARM64::parse_code_ranges_to_entry_points(


 std::string CHPEMetadataARM64::to_string() const {
-  using namespace fmt;
   static constexpr auto WIDTH = 19;
   std::ostringstream oss;
-  oss << format("{:>{}} Version\n", version(), WIDTH);
-  oss << format("{:>#{}x} Arm64X dispatch call function pointer (no redirection)\n",
-                os_arm64x_dispatch_call_no_redirect(), WIDTH);
-  oss << format("{:>#{}x} Arm64X dispatch return function pointer\n",
-                os_arm64x_dispatch_ret(), WIDTH);
-  oss << format("{:>#{}x} Arm64X dispatch call function pointer\n",
-                os_arm64x_dispatch_call(), WIDTH);
-  oss << format("{:>#{}x} Arm64X dispatch indirect call function pointer\n",
-                os_arm64x_dispatch_icall(), WIDTH);
-  oss << format("{:>#{}x} Arm64X dispatch indirect call function pointer (with CFG check)\n",
-                os_arm64x_dispatch_icall_cfg(), WIDTH);
-  oss << format("{:>#{}x} Arm64X alternative entry point\n",
-                alternate_entry_point(), WIDTH);
-  oss << format("{:>#{}x} Arm64X auxiliary import address table\n",
-                auxiliary_iat(), WIDTH);
-  oss << format("{:>#{}x} Get x64 information function pointer\n",
-                get_x64_information_function_pointer(), WIDTH);
-  oss << format("{:>#{}x} Set x64 information function pointer\n",
-                set_x64_information_function_pointer(), WIDTH);
-  oss << format("{:>{}} Arm64X x64 code ranges to entry points table\n",
-                format("{:#x}[{}]", code_ranges_to_entrypoints(),
-                                    code_ranges_to_entry_points_count()), WIDTH);
-  oss << format("{:>{}} Arm64X arm64x redirection metadata table\n",
-                format("{:#x}[{}]", redirection_metadata(),
-                                    redirection_metadata_count()), WIDTH);
-  oss << format("{:>{}} Arm64X extra RFE table\n",
-                format("{:#x}[{:#x}]", extra_rfe_table(),
-                                       extra_rfe_table_size()), WIDTH);
-  oss << format("{:>#{}x} Arm64X dispatch function pointer\n",
-                os_arm64x_dispatch_fptr(), WIDTH);
-  oss << format("{:>#{}x} Arm64X copy of auxiliary import address table\n",
-                auxiliary_iat_copy(), WIDTH);
-  oss << format("{:>#{}x} Arm64X auxiliary delayload import address table\n",
-                auxiliary_delay_import(), WIDTH);
-  oss << format("{:>#{}x} Arm64X auxiliary delayload import address table copy\n",
-                auxiliary_delay_import_copy(), WIDTH);
-  oss << format("{:>#{}x} Arm64X hybrid image info bitfield\n",
-                bitfield_info(), WIDTH);
+  oss << fmt::format("{:>{}} Version\n", version(), WIDTH);
+  oss << fmt::format(
+      "{:>#{}x} Arm64X dispatch call function pointer (no redirection)\n",
+      os_arm64x_dispatch_call_no_redirect(), WIDTH
+  );
+  oss << fmt::format("{:>#{}x} Arm64X dispatch return function pointer\n",
+                     os_arm64x_dispatch_ret(), WIDTH);
+  oss << fmt::format("{:>#{}x} Arm64X dispatch call function pointer\n",
+                     os_arm64x_dispatch_call(), WIDTH);
+  oss << fmt::format("{:>#{}x} Arm64X dispatch indirect call function pointer\n",
+                     os_arm64x_dispatch_icall(), WIDTH);
+  oss << fmt::format(
+      "{:>#{}x} Arm64X dispatch indirect call function pointer (with CFG check)\n",
+      os_arm64x_dispatch_icall_cfg(), WIDTH
+  );
+  oss << fmt::format("{:>#{}x} Arm64X alternative entry point\n",
+                     alternate_entry_point(), WIDTH);
+  oss << fmt::format("{:>#{}x} Arm64X auxiliary import address table\n",
+                     auxiliary_iat(), WIDTH);
+  oss << fmt::format("{:>#{}x} Get x64 information function pointer\n",
+                     get_x64_information_function_pointer(), WIDTH);
+  oss << fmt::format("{:>#{}x} Set x64 information function pointer\n",
+                     set_x64_information_function_pointer(), WIDTH);
+  oss << fmt::format("{:>{}} Arm64X x64 code ranges to entry points table\n",
+                     fmt::format("{:#x}[{}]", code_ranges_to_entrypoints(),
+                                 code_ranges_to_entry_points_count()),
+                     WIDTH);
+  oss << fmt::format("{:>{}} Arm64X arm64x redirection metadata table\n",
+                     fmt::format("{:#x}[{}]", redirection_metadata(),
+                                 redirection_metadata_count()),
+                     WIDTH);
+  oss << fmt::format(
+      "{:>{}} Arm64X extra RFE table\n",
+      fmt::format("{:#x}[{:#x}]", extra_rfe_table(), extra_rfe_table_size()), WIDTH
+  );
+  oss << fmt::format("{:>#{}x} Arm64X dispatch function pointer\n",
+                     os_arm64x_dispatch_fptr(), WIDTH);
+  oss << fmt::format("{:>#{}x} Arm64X copy of auxiliary import address table\n",
+                     auxiliary_iat_copy(), WIDTH);
+  oss << fmt::format("{:>#{}x} Arm64X auxiliary delayload import address table\n",
+                     auxiliary_delay_import(), WIDTH);
+  oss << fmt::format(
+      "{:>#{}x} Arm64X auxiliary delayload import address table copy\n",
+      auxiliary_delay_import_copy(), WIDTH
+  );
+  oss << fmt::format("{:>#{}x} Arm64X hybrid image info bitfield\n",
+                     bitfield_info(), WIDTH);

   if (!range_entries_.empty()) {
     oss << "Address Range:\n";
     for (const range_entry_t& entry : code_ranges()) {
-      oss << format("{:>10} [0x{:08x}, 0x{:08x}]\n",
-                    LIEF::PE::to_string(entry.type()), entry.start(), entry.end());
+      oss << fmt::format("{:>10} [{:#010x}, {:#010x}]\n",
+                         LIEF::PE::to_string(entry.type()), entry.start(),
+                         entry.end());
     }
   }

   if (!redirection_entries_.empty()) {
     oss << "Arm64X Redirection Metadata Table:\n";
     for (const redirection_entry_t& entry : redirections()) {
-      oss << format("  0x{:08x} --> 0x{:08x}\n", entry.src, entry.dst);
+      oss << fmt::format("  {:#010x} --> {:#010x}\n", entry.src, entry.dst);
     }
   }

   if (!code_range_entry_point_entries_.empty()) {
     oss << "Arm64X X64 Code Ranges to Entrypoint:\n";
     for (const code_range_entry_point_t& entry : code_range_entry_point()) {
-      oss << format("  [0x{:08x}, 0x{:08x}] --> 0x{:08x}\n",
-          entry.start_rva, entry.end_rva, entry.entrypoint);
+      oss << fmt::format("  [{:#010x}, {:#010x}] --> {:#010x}\n", entry.start_rva,
+                         entry.end_rva, entry.entrypoint);
     }
   }

diff --git a/deps/LIEF/src/PE/LoadConfigurations/CHPEMetadata/MetadataX86.cpp b/deps/LIEF/src/PE/LoadConfigurations/CHPEMetadata/MetadataX86.cpp
index d1bc2dd1b09..bba781b3e65 100644
--- a/deps/LIEF/src/PE/LoadConfigurations/CHPEMetadata/MetadataX86.cpp
+++ b/deps/LIEF/src/PE/LoadConfigurations/CHPEMetadata/MetadataX86.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -23,9 +23,9 @@
 #include "logging.hpp"

 namespace LIEF::PE {
-std::unique_ptr<CHPEMetadataX86>
-  CHPEMetadataX86::parse(Parser&/*ctx*/, BinaryStream& stream, uint32_t version)
-{
+std::unique_ptr<CHPEMetadataX86> CHPEMetadataX86::parse(Parser& /*ctx*/,
+                                                        BinaryStream& stream,
+                                                        uint32_t version) {
   // The structure defining Hybrid metadata for X86 is located in
   // `ntimage.h` and named: `IMAGE_CHPE_METADATA_X86`
   //
@@ -46,71 +46,89 @@ std::unique_ptr<CHPEMetadataX86>

   auto CHPECodeAddressRangeOffset = stream.read<uint32_t>();
   if (!CHPECodeAddressRangeOffset) {
-    LIEF_DEBUG("Failed to read Compiled Hybrid Metadata[X86]: CHPECodeAddressRangeOffset");
+    LIEF_DEBUG(
+        "Failed to read Compiled Hybrid Metadata[X86]: CHPECodeAddressRangeOffset"
+    );
     return nullptr;
   }

   auto CHPECodeAddressRangeCount = stream.read<uint32_t>();
   if (!CHPECodeAddressRangeCount) {
-    LIEF_DEBUG("Failed to read Compiled Hybrid Metadata[X86]: CHPECodeAddressRangeCount");
+    LIEF_DEBUG(
+        "Failed to read Compiled Hybrid Metadata[X86]: CHPECodeAddressRangeCount"
+    );
     return nullptr;
   }

   auto WowA64ExceptionHandlerFunctionPointer = stream.read<uint32_t>();
   if (!WowA64ExceptionHandlerFunctionPointer) {
-    LIEF_DEBUG("Failed to read Compiled Hybrid Metadata[X86]: WowA64ExceptionHandlerFunctionPointer");
+    LIEF_DEBUG("Failed to read Compiled Hybrid Metadata[X86]: "
+               "WowA64ExceptionHandlerFunctionPointer");
     return nullptr;
   }

   auto WowA64DispatchCallFunctionPointer = stream.read<uint32_t>();
   if (!WowA64DispatchCallFunctionPointer) {
-    LIEF_DEBUG("Failed to read Compiled Hybrid Metadata[X86]: WowA64DispatchCallFunctionPointer");
+    LIEF_DEBUG("Failed to read Compiled Hybrid Metadata[X86]: "
+               "WowA64DispatchCallFunctionPointer");
     return nullptr;
   }

   auto WowA64DispatchIndirectCallFunctionPointer = stream.read<uint32_t>();
   if (!WowA64DispatchIndirectCallFunctionPointer) {
-    LIEF_DEBUG("Failed to read Compiled Hybrid Metadata[X86]: WowA64DispatchIndirectCallFunctionPointer");
+    LIEF_DEBUG("Failed to read Compiled Hybrid Metadata[X86]: "
+               "WowA64DispatchIndirectCallFunctionPointer");
     return nullptr;
   }

   auto WowA64DispatchIndirectCallCfgFunctionPointer = stream.read<uint32_t>();
   if (!WowA64DispatchIndirectCallCfgFunctionPointer) {
-    LIEF_DEBUG("Failed to read Compiled Hybrid Metadata[X86]: WowA64DispatchIndirectCallCfgFunctionPointer");
+    LIEF_DEBUG("Failed to read Compiled Hybrid Metadata[X86]: "
+               "WowA64DispatchIndirectCallCfgFunctionPointer");
     return nullptr;
   }

   auto WowA64DispatchRetFunctionPointer = stream.read<uint32_t>();
   if (!WowA64DispatchRetFunctionPointer) {
-    LIEF_DEBUG("Failed to read Compiled Hybrid Metadata[X86]: WowA64DispatchRetFunctionPointer");
+    LIEF_DEBUG("Failed to read Compiled Hybrid Metadata[X86]: "
+               "WowA64DispatchRetFunctionPointer");
     return nullptr;
   }

   auto WowA64DispatchRetLeafFunctionPointer = stream.read<uint32_t>();
   if (!WowA64DispatchRetLeafFunctionPointer) {
-    LIEF_DEBUG("Failed to read Compiled Hybrid Metadata[X86]: WowA64DispatchRetLeafFunctionPointer");
+    LIEF_DEBUG("Failed to read Compiled Hybrid Metadata[X86]: "
+               "WowA64DispatchRetLeafFunctionPointer");
     return nullptr;
   }

   auto WowA64DispatchJumpFunctionPointer = stream.read<uint32_t>();
   if (!WowA64DispatchJumpFunctionPointer) {
-    LIEF_DEBUG("Failed to read Compiled Hybrid Metadata[X86]: WowA64DispatchJumpFunctionPointer");
+    LIEF_DEBUG("Failed to read Compiled Hybrid Metadata[X86]: "
+               "WowA64DispatchJumpFunctionPointer");
     return nullptr;
   }

   auto metadata = std::make_unique<CHPEMetadataX86>(version);

   (*metadata)
-    .chpe_code_address_range_offset(*CHPECodeAddressRangeOffset)
-    .chpe_code_address_range_count(*CHPECodeAddressRangeCount)
-    .wowa64_exception_handler_function_pointer(*WowA64ExceptionHandlerFunctionPointer)
-    .wowa64_dispatch_call_function_pointer(*WowA64DispatchCallFunctionPointer)
-    .wowa64_dispatch_indirect_call_function_pointer(*WowA64DispatchIndirectCallFunctionPointer)
-    .wowa64_dispatch_indirect_call_cfg_function_pointer(*WowA64DispatchIndirectCallCfgFunctionPointer)
-    .wowa64_dispatch_ret_function_pointer(*WowA64DispatchRetFunctionPointer)
-    .wowa64_dispatch_ret_leaf_function_pointer(*WowA64DispatchRetLeafFunctionPointer)
-    .wowa64_dispatch_jump_function_pointer(*WowA64DispatchJumpFunctionPointer)
-  ;
+      .chpe_code_address_range_offset(*CHPECodeAddressRangeOffset)
+      .chpe_code_address_range_count(*CHPECodeAddressRangeCount)
+      .wowa64_exception_handler_function_pointer(
+          *WowA64ExceptionHandlerFunctionPointer
+      )
+      .wowa64_dispatch_call_function_pointer(*WowA64DispatchCallFunctionPointer)
+      .wowa64_dispatch_indirect_call_function_pointer(
+          *WowA64DispatchIndirectCallFunctionPointer
+      )
+      .wowa64_dispatch_indirect_call_cfg_function_pointer(
+          *WowA64DispatchIndirectCallCfgFunctionPointer
+      )
+      .wowa64_dispatch_ret_function_pointer(*WowA64DispatchRetFunctionPointer)
+      .wowa64_dispatch_ret_leaf_function_pointer(
+          *WowA64DispatchRetLeafFunctionPointer
+      )
+      .wowa64_dispatch_jump_function_pointer(*WowA64DispatchJumpFunctionPointer);

   if (version < 2) {
     return metadata;
@@ -128,43 +146,47 @@ std::unique_ptr<CHPEMetadataX86>

   auto WowA64RdtscFunctionPointer = stream.read<uint32_t>();
   if (!WowA64RdtscFunctionPointer) {
-    LIEF_DEBUG("Failed to read Compiled Hybrid Metadata[X86]: WowA64RdtscFunctionPointer");
+    LIEF_DEBUG(
+        "Failed to read Compiled Hybrid Metadata[X86]: WowA64RdtscFunctionPointer"
+    );
     return metadata;
   }
   return metadata;
 }

 std::string CHPEMetadataX86::to_string() const {
-  using namespace fmt;
   static constexpr auto WIDTH = 19;
   std::ostringstream oss;
-  oss << format("{:>{}} Version\n", version(), WIDTH);
-  oss << format("{:>#{}x} WowA64 exception handler function pointer\n",
-                wowa64_exception_handler_function_pointer(), WIDTH)
-      << format("{:>#{}x} WowA64 dispatch call function pointer\n",
-                wowa64_dispatch_call_function_pointer(), WIDTH)
-      << format("{:>#{}x} WowA64 dispatch indirect call function pointer\n",
-                wowa64_dispatch_indirect_call_function_pointer(), WIDTH)
-      << format("{:>#{}x} WowA64 dispatch indirect call function pointer (with CFG check)\n",
-                wowa64_dispatch_indirect_call_cfg_function_pointer(), WIDTH)
-      << format("{:>#{}x} WowA64 dispatch return function pointer\n",
-                wowa64_dispatch_ret_function_pointer(), WIDTH)
-      << format("{:>#{}x} WowA64 dispatch leaf return function pointer\n",
-                wowa64_dispatch_ret_leaf_function_pointer(), WIDTH)
-      << format("{:>#{}x} WowA64 dispatch jump function pointer\n",
-                wowa64_dispatch_jump_function_pointer(), WIDTH)
-      << format("{:>{}} Hybrid code address range\n",
-                format("{:#x}[{:#x}]", chpe_code_address_range_offset(),
-                                       chpe_code_address_range_count()), WIDTH);
+  oss << fmt::format("{:>{}} Version\n", version(), WIDTH);
+  oss << fmt::format("{:>#{}x} WowA64 exception handler function pointer\n",
+                     wowa64_exception_handler_function_pointer(), WIDTH)
+      << fmt::format("{:>#{}x} WowA64 dispatch call function pointer\n",
+                     wowa64_dispatch_call_function_pointer(), WIDTH)
+      << fmt::format("{:>#{}x} WowA64 dispatch indirect call function pointer\n",
+                     wowa64_dispatch_indirect_call_function_pointer(), WIDTH)
+      << fmt::format(
+             "{:>#{}x} WowA64 dispatch indirect call function pointer (with "
+             "CFG check)\n",
+             wowa64_dispatch_indirect_call_cfg_function_pointer(), WIDTH
+         )
+      << fmt::format("{:>#{}x} WowA64 dispatch return function pointer\n",
+                     wowa64_dispatch_ret_function_pointer(), WIDTH)
+      << fmt::format("{:>#{}x} WowA64 dispatch leaf return function pointer\n",
+                     wowa64_dispatch_ret_leaf_function_pointer(), WIDTH)
+      << fmt::format("{:>#{}x} WowA64 dispatch jump function pointer\n",
+                     wowa64_dispatch_jump_function_pointer(), WIDTH)
+      << fmt::format("{:>{}} Hybrid code address range\n",
+                     fmt::format("{:#x}[{:#x}]", chpe_code_address_range_offset(),
+                                 chpe_code_address_range_count()),
+                     WIDTH);

   if (auto opt = compiler_iat_pointer()) {
-    oss << format("{:>#{}x} WowA64 auxiliary import address table pointer\n",
-                  *opt, WIDTH);
+    oss << fmt::format("{:>#{}x} WowA64 auxiliary import address table pointer\n",
+                       *opt, WIDTH);
   }

   if (auto opt = wowa64_rdtsc_function_pointer()) {
-    oss << format("{:>#{}x} WowA64 RDTSC function pointer\n",
-                  *opt, WIDTH);
+    oss << fmt::format("{:>#{}x} WowA64 RDTSC function pointer\n", *opt, WIDTH);
   }
   std::string output = oss.str();
   output.pop_back();
diff --git a/deps/LIEF/src/PE/LoadConfigurations/DynamicRelocation/DynamicFixup.cpp b/deps/LIEF/src/PE/LoadConfigurations/DynamicRelocation/DynamicFixup.cpp
index d7e611e76e4..ee45023c340 100644
--- a/deps/LIEF/src/PE/LoadConfigurations/DynamicRelocation/DynamicFixup.cpp
+++ b/deps/LIEF/src/PE/LoadConfigurations/DynamicRelocation/DynamicFixup.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -29,7 +29,8 @@ namespace LIEF::PE {

 using IMAGE_DYNAMIC_RELOCATION = DynamicRelocation::IMAGE_DYNAMIC_RELOCATION;

-ok_error_t DynamicFixup::parse(Parser& ctx, SpanStream& stream, DynamicRelocation& R) {
+ok_error_t DynamicFixup::parse(Parser& ctx, SpanStream& stream,
+                               DynamicRelocation& R) {
   auto default_ret = std::make_unique<DynamicFixupUnknown>(stream.content());
   if (R.symbol() == IMAGE_DYNAMIC_RELOCATION::RELOCATION_FUNCTION_OVERRIDE) {
     LIEF_DEBUG("IMAGE_DYNAMIC_RELOCATION_FUNCTION_OVERRIDE");
@@ -55,7 +56,9 @@ ok_error_t DynamicFixup::parse(Parser& ctx, SpanStream& stream, DynamicRelocatio
     return make_error_code(lief_errors::parsing_error);
   }

-  if (R.symbol() == IMAGE_DYNAMIC_RELOCATION::RELOCATION_ARM64_KERNEL_IMPORT_CALL_TRANSFER) {
+  if (R.symbol() ==
+      IMAGE_DYNAMIC_RELOCATION::RELOCATION_ARM64_KERNEL_IMPORT_CALL_TRANSFER)
+  {
     // Note(romain): According to link.exe there is a special processing for
     // this symbol (c.f. 0x140164140 in link.exe from 14.42.34433)
     //
@@ -70,7 +73,9 @@ ok_error_t DynamicFixup::parse(Parser& ctx, SpanStream& stream, DynamicRelocatio
     return make_error_code(lief_errors::parsing_error);
   }

-  if (R.symbol() == IMAGE_DYNAMIC_RELOCATION::RELOCATION_GUARD_IMPORT_CONTROL_TRANSFER) {
+  if (R.symbol() ==
+      IMAGE_DYNAMIC_RELOCATION::RELOCATION_GUARD_IMPORT_CONTROL_TRANSFER)
+  {
     LIEF_DEBUG("IMAGE_DYNAMIC_RELOCATION_GUARD_IMPORT_CONTROL_TRANSFER");
     auto fixups = DynamicFixupControlTransfer::parse(ctx, stream);
     if (fixups != nullptr) {
diff --git a/deps/LIEF/src/PE/LoadConfigurations/DynamicRelocation/DynamicFixupARM64Kernel.cpp b/deps/LIEF/src/PE/LoadConfigurations/DynamicRelocation/DynamicFixupARM64Kernel.cpp
index 49a7c2b0271..e678187c7eb 100644
--- a/deps/LIEF/src/PE/LoadConfigurations/DynamicRelocation/DynamicFixupARM64Kernel.cpp
+++ b/deps/LIEF/src/PE/LoadConfigurations/DynamicRelocation/DynamicFixupARM64Kernel.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -24,35 +24,39 @@ namespace LIEF::PE {
 namespace details {
 // From SDK: 10.0.26100.0
 // typedef struct _IMAGE_IMPORT_CONTROL_TRANSFER_ARM64_RELOCATION {
-//  +00,00 | ULONG PageRelativeOffset : 10;  // Offset to the call instruction shifted right by 2 (4-byte aligned instruction)
-//  +10,0A | ULONG IndirectCall       :  1;  // 0 if target instruction is a BR, 1 if BLR.
-//  +11,0B | ULONG RegisterIndex      :  5;  // Register index used for the indirect call/jump.
-//  +16,10 | ULONG ImportType         :  1;  // 0 if this refers to a static import, 1 for delayload import
-//  +17,11 | ULONG IATIndex           : 15;  // IAT index of the corresponding import.
-//                                     // 0x7FFF is a special value indicating no index.
+//  +00,00 | ULONG PageRelativeOffset : 10;  // Offset to the call instruction
+//  shifted right by 2 (4-byte aligned instruction) +10,0A | ULONG IndirectCall :
+//  1;  // 0 if target instruction is a BR, 1 if BLR. +11,0B | ULONG RegisterIndex
+//  :  5;  // Register index used for the indirect call/jump. +16,10 | ULONG
+//  ImportType         :  1;  // 0 if this refers to a static import, 1 for
+//  delayload import +17,11 | ULONG IATIndex           : 15;  // IAT index of the
+//  corresponding import.
+//                                     // 0x7FFF is a special value indicating no
+//                                     index.
 // } IMAGE_IMPORT_CONTROL_TRANSFER_ARM64_RELOCATION;
-// typedef IMAGE_IMPORT_CONTROL_TRANSFER_ARM64_RELOCATION UNALIGNED * PIMAGE_IMPORT_CONTROL_TRANSFER_ARM64_RELOCATION;
+// typedef IMAGE_IMPORT_CONTROL_TRANSFER_ARM64_RELOCATION UNALIGNED *
+// PIMAGE_IMPORT_CONTROL_TRANSFER_ARM64_RELOCATION;
 struct arm64e_kernel_reloc_t {
   uint32_t page_relative_offset : 10;
-  uint32_t indirect_call        :  1;
-  uint32_t register_index       :  5;
-  uint32_t import_type          :  1;
-  uint32_t iat_index            : 15;
+  uint32_t indirect_call : 1;
+  uint32_t register_index : 5;
+  uint32_t import_type : 1;
+  uint32_t iat_index : 15;
 };

 static_assert(sizeof(arm64e_kernel_reloc_t) == sizeof(uint32_t));
 }

 std::string DynamicFixupARM64Kernel::reloc_entry_t::to_string() const {
-  using namespace fmt;
-  return format("RVA: 0x{:08x} Instr: {:8} delayload: {} IAT index: {:04d}",
-    rva, format("{} x{}", indirect_call ? "blr" : "br", register_index),
-    import_type == IMPORT_TYPE::DELAYED, iat_index);
+  return fmt::format(
+      "RVA: {:#010x} Instr: {:8} delayload: {} IAT index: {:04d}", rva,
+      fmt::format("{} x{}", indirect_call ? "blr" : "br", register_index),
+      import_type == IMPORT_TYPE::DELAYED, iat_index
+  );
 }

 std::unique_ptr<DynamicFixupARM64Kernel>
-  DynamicFixupARM64Kernel::parse(Parser& /*ctx*/, SpanStream& strm)
-{
+    DynamicFixupARM64Kernel::parse(Parser& /*ctx*/, SpanStream& strm) {
   auto fixup = std::make_unique<DynamicFixupARM64Kernel>();
   while (strm) {
     auto PageRVA = strm.read<uint32_t>();
@@ -86,28 +90,30 @@ std::unique_ptr<DynamicFixupARM64Kernel>
       }
       const uint32_t rva = *PageRVA + (value->page_relative_offset << 2);
       fixup->entries_.push_back({
-        /* rva */rva,
-        /* indirect_call */(bool)value->indirect_call,
-        /* register_index */(uint8_t)value->register_index,
-        /* import_type */(IMPORT_TYPE)value->import_type,
-        /* iat_index */(uint16_t)value->iat_index,
+          /* rva */ rva,
+          /* indirect_call */ (bool)value->indirect_call,
+          /* register_index */ (uint8_t)value->register_index,
+          /* import_type */ (IMPORT_TYPE)value->import_type,
+          /* iat_index */ (uint16_t)value->iat_index,
       });

-      LIEF_DEBUG("PAGE=0x{:010x} RVA: 0x{:06x} IndirectCall: {}, RegIndex: {}, ImportType: {}, "
-                 "IATIndex: {}", *PageRVA, *PageRVA + (value->page_relative_offset << 2), value->indirect_call,
-                 value->register_index, value->import_type, value->iat_index);
+      LIEF_DEBUG("PAGE={:#012x} RVA: {:#08x} IndirectCall: {}, RegIndex: {}, "
+                 "ImportType: {}, "
+                 "IATIndex: {}",
+                 *PageRVA, *PageRVA + (value->page_relative_offset << 2),
+                 value->indirect_call, value->register_index, value->import_type,
+                 value->iat_index);
     }
   }
   return fixup;
 }

 std::string DynamicFixupARM64Kernel::to_string() const {
-  using namespace fmt;
   std::ostringstream oss;
   oss << "Fixup RVAs (Control Transfer ARM64 Relocation)\n";
   for (size_t i = 0; i < entries_.size(); ++i) {
     const reloc_entry_t& entry = entries_[i];
-    oss << format("  [{:04d}] {}\n", i, entry.to_string());
+    oss << fmt::format("  [{:04d}] {}\n", i, entry.to_string());
   }
   return oss.str();
 }
diff --git a/deps/LIEF/src/PE/LoadConfigurations/DynamicRelocation/DynamicFixupARM64X.cpp b/deps/LIEF/src/PE/LoadConfigurations/DynamicRelocation/DynamicFixupARM64X.cpp
index 44c12ca5069..a63ff9af405 100644
--- a/deps/LIEF/src/PE/LoadConfigurations/DynamicRelocation/DynamicFixupARM64X.cpp
+++ b/deps/LIEF/src/PE/LoadConfigurations/DynamicRelocation/DynamicFixupARM64X.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -32,24 +32,23 @@ namespace details {
 // } IMAGE_DVRT_ARM64X_FIXUP_RECORD, *PIMAGE_DVRT_ARM64X_FIXUP_RECORD;
 struct fixup_record {
   uint16_t offset : 12;
-  uint16_t type   : 2;
-  uint16_t size   : 2;
+  uint16_t type : 2;
+  uint16_t size : 2;
 };

 static_assert(sizeof(fixup_record) == sizeof(uint16_t));

 struct delta_record {
   uint16_t offset : 12;
-  uint16_t type   :  2;
-  uint16_t sign   :  1;
-  uint16_t scale  :  1;
+  uint16_t type : 2;
+  uint16_t sign : 1;
+  uint16_t scale : 1;
 };

 }

-std::unique_ptr<DynamicFixupARM64X>
-  DynamicFixupARM64X::parse(Parser& ctx, SpanStream& strm)
-{
+std::unique_ptr<DynamicFixupARM64X> DynamicFixupARM64X::parse(Parser& ctx,
+                                                              SpanStream& strm) {
   auto arm64x = std::make_unique<DynamicFixupARM64X>();
   while (strm) {
     auto PageRVA = strm.read<uint32_t>();
@@ -68,6 +67,11 @@ std::unique_ptr<DynamicFixupARM64X>
       continue;
     }

+    if (*BlockSize < 8) {
+      LIEF_WARN("Unexpected BlockSize");
+      break;
+    }
+
     auto block_strm = strm.slice(strm.pos(), (*BlockSize - 8));
     if (!block_strm) {
       LIEF_DEBUG("Error: {}:{}", __FUNCTION__, __LINE__);
@@ -86,65 +90,75 @@ std::unique_ptr<DynamicFixupARM64X>

       switch ((FIXUP_TYPE)record->type) {
         case FIXUP_TYPE::ZEROFILL:
-          {
-            arm64x->entries_.push_back({
-              /*rva=*/RVA, /*type=*/FIXUP_TYPE::ZEROFILL,
-              /*size=*/size_t(1) << record->size, /*bytes=*/{},
+        {
+          arm64x->entries_.push_back({
+              /*rva=*/RVA,
+              /*type=*/FIXUP_TYPE::ZEROFILL,
+              /*size=*/size_t(1) << record->size,
+              /*bytes=*/{},
               /*value=*/0,
-            });
-            break;
-          }
+          });
+          break;
+        }

         case FIXUP_TYPE::VALUE:
-          {
-            std::vector<uint8_t> data;
-            const size_t size = 1 << record->size;
-            if (!block_strm->read_data(data, size)) {
-              LIEF_WARN("Can't read data associated with 'IMAGE_DVRT_ARM64X_FIXUP_TYPE_VALUE");
-              break;
-            }
-            arm64x->entries_.push_back({
-              /*rva=*/RVA, /*type=*/FIXUP_TYPE::VALUE,
-              /*size=*/size, /*bytes=*/std::move(data),
+        {
+          std::vector<uint8_t> data;
+          const size_t size = 1 << record->size;
+          if (!block_strm->read_data(data, size)) {
+            LIEF_WARN(
+                "Failed to read data for IMAGE_DVRT_ARM64X_FIXUP_TYPE_VALUE"
+            );
+            break;
+          }
+          arm64x->entries_.push_back({
+              /*rva=*/RVA,
+              /*type=*/FIXUP_TYPE::VALUE,
+              /*size=*/size,
+              /*bytes=*/std::move(data),
               /*value=*/0,
-            });
+          });

-            const auto& entry = arm64x->entries_.back();
-            if (ctx.config().parse_arm64x_binary) {
-              ctx.record_relocation(entry.rva, entry.bytes);
-            }
-            break;
+          const auto& entry = arm64x->entries_.back();
+          if (ctx.config().parse_arm64x_binary) {
+            ctx.record_relocation(entry.rva, entry.bytes);
           }
+          break;
+        }

         case FIXUP_TYPE::DELTA:
-          {
-            auto value = block_strm->read<uint16_t>();
-            if (!value) {
-              LIEF_WARN("Can't read value for IMAGE_DVRT_ARM64X_FIXUP_TYPE_DELTA");
-              break;
-            }
-
-            auto& opt = *reinterpret_cast<const details::delta_record*>(&*record);
-            const uint8_t size = (opt.scale ? 8llu : 4llu);
-            int64_t delta = (uint64_t)(*value) * size;
-            arm64x->entries_.push_back({
-              /*rva=*/RVA, /*type=*/FIXUP_TYPE::DELTA,
-              /*size=*/size, /*bytes=*/{},
-              /*value=*/opt.sign ? -delta : delta,
-            });
-            const auto& entry = arm64x->entries_.back();
-            if (ctx.config().parse_arm64x_binary) {
-              ctx.record_delta_relocation(entry.rva, entry.value, size);
-            }
+        {
+          auto value = block_strm->read<uint16_t>();
+          if (!value) {
+            LIEF_WARN(
+                "Failed to read value for IMAGE_DVRT_ARM64X_FIXUP_TYPE_DELTA"
+            );
             break;
           }

-        default:
-          {
-            LIEF_WARN("Unsupported fixup type: {} (0x{:06x})",
-                      (int)record->type, (int)record->type);
-            break;
+          auto& opt = *reinterpret_cast<const details::delta_record*>(&*record);
+          const uint8_t size = (opt.scale ? 8llu : 4llu);
+          int64_t delta = (uint64_t)(*value) * size;
+          arm64x->entries_.push_back({
+              /*rva=*/RVA,
+              /*type=*/FIXUP_TYPE::DELTA,
+              /*size=*/size,
+              /*bytes=*/{},
+              /*value=*/opt.sign ? -delta : delta,
+          });
+          const auto& entry = arm64x->entries_.back();
+          if (ctx.config().parse_arm64x_binary) {
+            ctx.record_delta_relocation(entry.rva, entry.value, size);
           }
+          break;
+        }
+
+        default:
+        {
+          LIEF_WARN("Unsupported fixup type: {} ({:#08x})", (int)record->type,
+                    (int)record->type);
+          break;
+        }
       }
     }
   }
@@ -153,29 +167,27 @@ std::unique_ptr<DynamicFixupARM64X>
 }

 std::string DynamicFixupARM64X::reloc_entry_t::to_string() const {
-  using namespace fmt;
   switch (type) {
     case FIXUP_TYPE::ZEROFILL:
-      return format("RVA 0x{:08x}, {} bytes, zero fill", rva, size);
+      return fmt::format("RVA {:#010x}, {} bytes, zero fill", rva, size);

     case FIXUP_TYPE::VALUE:
-      return format("RVA 0x{:08x}, {} bytes, target value {}",
-                    rva, bytes.size(), hex_dump(bytes));
+      return fmt::format("RVA {:#010x}, {} bytes, target value {}", rva,
+                         bytes.size(), hex_dump(bytes));

     case FIXUP_TYPE::DELTA:
-      return format("RVA 0x{:08x}, {} bytes, delta 0x{:08x}",
-                    rva, size, value);
+      return fmt::format("RVA {:#010x}, {} bytes, delta {:#010x}", rva, size,
+                         value);
   }
   return "<unknown>";
 }

 std::string DynamicFixupARM64X::to_string() const {
-  using namespace fmt;
   std::ostringstream oss;
   oss << "Fixup RVAs (ARM64X)\n";
   for (size_t i = 0; i < entries_.size(); ++i) {
     const reloc_entry_t& entry = entries_[i];
-    oss << format("  [{:04d}] {}\n", i, entry.to_string());
+    oss << fmt::format("  [{:04d}] {}\n", i, entry.to_string());
   }
   return oss.str();
 }
diff --git a/deps/LIEF/src/PE/LoadConfigurations/DynamicRelocation/DynamicFixupControlTransfer.cpp b/deps/LIEF/src/PE/LoadConfigurations/DynamicRelocation/DynamicFixupControlTransfer.cpp
index 52e9f37d276..53593331e5d 100644
--- a/deps/LIEF/src/PE/LoadConfigurations/DynamicRelocation/DynamicFixupControlTransfer.cpp
+++ b/deps/LIEF/src/PE/LoadConfigurations/DynamicRelocation/DynamicFixupControlTransfer.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -27,25 +27,24 @@ namespace details {
 //     DWORD       IndirectCall       : 1;
 //     DWORD       IATIndex           : 19;
 // } IMAGE_IMPORT_CONTROL_TRANSFER_DYNAMIC_RELOCATION;
-// typedef IMAGE_IMPORT_CONTROL_TRANSFER_DYNAMIC_RELOCATION UNALIGNED * PIMAGE_IMPORT_CONTROL_TRANSFER_DYNAMIC_RELOCATION;
+// typedef IMAGE_IMPORT_CONTROL_TRANSFER_DYNAMIC_RELOCATION UNALIGNED *
+// PIMAGE_IMPORT_CONTROL_TRANSFER_DYNAMIC_RELOCATION;
 struct control_transfer_reloc_t {
   uint32_t page_relative_offset : 12;
-  uint32_t indirect_call        :  1;
-  uint32_t iat_index            : 19;
+  uint32_t indirect_call : 1;
+  uint32_t iat_index : 19;
 };

 static_assert(sizeof(control_transfer_reloc_t) == sizeof(uint32_t));
 }

 std::string DynamicFixupControlTransfer::reloc_entry_t::to_string() const {
-  using namespace fmt;
-  return format("RVA: 0x{:08x} Instr: {:6} IAT index: {:04d}",
-                rva, is_call ? "call" : "branch", iat_index);
+  return fmt::format("RVA: {:#010x} Instr: {:6} IAT index: {:04d}", rva,
+                     is_call ? "call" : "branch", iat_index);
 }

 std::unique_ptr<DynamicFixupControlTransfer>
-  DynamicFixupControlTransfer::parse(Parser& /*ctx*/, SpanStream& strm)
-{
+    DynamicFixupControlTransfer::parse(Parser& /*ctx*/, SpanStream& strm) {
   auto fixup = std::make_unique<DynamicFixupControlTransfer>();
   while (strm) {
     auto PageRVA = strm.read<uint32_t>();
@@ -79,9 +78,9 @@ std::unique_ptr<DynamicFixupControlTransfer>
       }
       const uint32_t rva = *PageRVA + value->page_relative_offset;
       fixup->entries_.push_back({
-        /* rva */rva,
-        /* indirect_call */(bool)value->indirect_call,
-        /* iat_index */(uint16_t)value->iat_index,
+          /* rva */ rva,
+          /* indirect_call */ (bool)value->indirect_call,
+          /* iat_index */ (uint16_t)value->iat_index,
       });
     }
   }
@@ -89,12 +88,11 @@ std::unique_ptr<DynamicFixupControlTransfer>
 }

 std::string DynamicFixupControlTransfer::to_string() const {
-  using namespace fmt;
   std::ostringstream oss;
   oss << "Fixup RVAs (Guard Import Control Transfer)\n";
   for (size_t i = 0; i < entries_.size(); ++i) {
     const reloc_entry_t& entry = entries_[i];
-    oss << format("  [{:04d}] {}\n", i, entry.to_string());
+    oss << fmt::format("  [{:04d}] {}\n", i, entry.to_string());
   }
   return oss.str();
 }
diff --git a/deps/LIEF/src/PE/LoadConfigurations/DynamicRelocation/DynamicFixupGeneric.cpp b/deps/LIEF/src/PE/LoadConfigurations/DynamicRelocation/DynamicFixupGeneric.cpp
index b54c1daf62d..427d58ec1da 100644
--- a/deps/LIEF/src/PE/LoadConfigurations/DynamicRelocation/DynamicFixupGeneric.cpp
+++ b/deps/LIEF/src/PE/LoadConfigurations/DynamicRelocation/DynamicFixupGeneric.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -25,28 +25,27 @@
 namespace LIEF::PE {

 DynamicFixupGeneric::DynamicFixupGeneric(DynamicFixupGeneric&&) = default;
-DynamicFixupGeneric& DynamicFixupGeneric::operator=(DynamicFixupGeneric&&) = default;
+DynamicFixupGeneric&
+    DynamicFixupGeneric::operator=(DynamicFixupGeneric&&) = default;
 DynamicFixupGeneric::~DynamicFixupGeneric() = default;

 DynamicFixupGeneric::DynamicFixupGeneric() :
-  DynamicFixup(KIND::GENERIC)
-{}
+  DynamicFixup(KIND::GENERIC) {}

 DynamicFixupGeneric::DynamicFixupGeneric(const DynamicFixupGeneric& other) :
-  DynamicFixup(other)
-{
+  DynamicFixup(other) {
   if (!other.relocations_.empty()) {
     relocations_.reserve(other.relocations_.size());
     std::transform(other.relocations_.begin(), other.relocations_.end(),
                    std::back_inserter(relocations_),
-      [] (const std::unique_ptr<Relocation>& R) {
-        return std::make_unique<Relocation>(*R);
-      }
-    );
+                   [](const std::unique_ptr<Relocation>& R) {
+                     return std::make_unique<Relocation>(*R);
+                   });
   }
 }

-DynamicFixupGeneric& DynamicFixupGeneric::operator=(const DynamicFixupGeneric& other) {
+DynamicFixupGeneric&
+    DynamicFixupGeneric::operator=(const DynamicFixupGeneric& other) {
   if (this == &other) {
     return *this;
   }
@@ -56,35 +55,31 @@ DynamicFixupGeneric& DynamicFixupGeneric::operator=(const DynamicFixupGeneric& o
     relocations_.reserve(other.relocations_.size());
     std::transform(other.relocations_.begin(), other.relocations_.end(),
                    std::back_inserter(relocations_),
-      [] (const std::unique_ptr<Relocation>& R) {
-        return std::make_unique<Relocation>(*R);
-      }
-    );
+                   [](const std::unique_ptr<Relocation>& R) {
+                     return std::make_unique<Relocation>(*R);
+                   });
   }

   return *this;
 }

-std::unique_ptr<DynamicFixupGeneric>
-  DynamicFixupGeneric::parse(Parser& ctx, SpanStream& strm)
-{
+std::unique_ptr<DynamicFixupGeneric> DynamicFixupGeneric::parse(Parser& ctx,
+                                                                SpanStream& strm) {
   auto generic = std::make_unique<DynamicFixupGeneric>();
   generic->relocations_ = Relocation::parse(ctx, strm);
   return generic;
 }

 std::string DynamicFixupGeneric::to_string() const {
-  using namespace fmt;
   std::ostringstream oss;
   oss << "Fixup RVAs (Generic)\n";
   size_t idx = 0;
   for (const Relocation& R : relocations()) {
     for (const RelocationEntry& E : R.entries()) {
-      oss << format("  [{:04d}] RVA: 0x{:08x} Type: {}\n", idx++, E.address(),
-                    PE::to_string(E.type()));
+      oss << fmt::format("  [{:04d}] RVA: {:#010x} Type: {}\n", idx++, E.address(),
+                         PE::to_string(E.type()));
     }
   }
   return oss.str();
-
 }
 }
diff --git a/deps/LIEF/src/PE/LoadConfigurations/DynamicRelocation/DynamicRelocationBase.cpp b/deps/LIEF/src/PE/LoadConfigurations/DynamicRelocation/DynamicRelocationBase.cpp
index 8313c10071b..15688ce9b47 100644
--- a/deps/LIEF/src/PE/LoadConfigurations/DynamicRelocation/DynamicRelocationBase.cpp
+++ b/deps/LIEF/src/PE/LoadConfigurations/DynamicRelocation/DynamicRelocationBase.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -19,13 +19,11 @@
 namespace LIEF::PE {

 DynamicRelocation::DynamicRelocation(uint32_t version) :
-  version_(version)
-{}
+  version_(version) {}

 DynamicRelocation::DynamicRelocation(const DynamicRelocation& other) :
   version_(other.version_),
-  symbol_(other.symbol_)
-{
+  symbol_(other.symbol_) {
   if (other.fixups_ != nullptr) {
     fixups_ = other.fixups_->clone();
   }
@@ -57,18 +55,18 @@ DynamicRelocation& DynamicRelocation::fixups(std::unique_ptr<DynamicFixup> F) {
 const char* to_string(DynamicRelocation::IMAGE_DYNAMIC_RELOCATION e) {
   using IMAGE_DYNAMIC_RELOCATION = DynamicRelocation::IMAGE_DYNAMIC_RELOCATION;

-  #define ENTRY(X) std::pair(IMAGE_DYNAMIC_RELOCATION::X, #X)
-  STRING_MAP enums2str {
-    ENTRY(RELOCATION_GUARD_RF_PROLOGUE),
-    ENTRY(RELOCATION_GUARD_RF_EPILOGUE),
-    ENTRY(RELOCATION_GUARD_IMPORT_CONTROL_TRANSFER),
-    ENTRY(RELOCATION_GUARD_INDIR_CONTROL_TRANSFER),
-    ENTRY(RELOCATION_GUARD_SWITCHTABLE_BRANCH),
-    ENTRY(RELOCATION_ARM64X),
-    ENTRY(RELOCATION_FUNCTION_OVERRIDE),
-    ENTRY(RELOCATION_ARM64_KERNEL_IMPORT_CALL_TRANSFER),
+#define ENTRY(X) std::pair(IMAGE_DYNAMIC_RELOCATION::X, #X)
+  STRING_MAP enums2str{
+      ENTRY(RELOCATION_GUARD_RF_PROLOGUE),
+      ENTRY(RELOCATION_GUARD_RF_EPILOGUE),
+      ENTRY(RELOCATION_GUARD_IMPORT_CONTROL_TRANSFER),
+      ENTRY(RELOCATION_GUARD_INDIR_CONTROL_TRANSFER),
+      ENTRY(RELOCATION_GUARD_SWITCHTABLE_BRANCH),
+      ENTRY(RELOCATION_ARM64X),
+      ENTRY(RELOCATION_FUNCTION_OVERRIDE),
+      ENTRY(RELOCATION_ARM64_KERNEL_IMPORT_CALL_TRANSFER),
   };
-  #undef ENTRY
+#undef ENTRY

   if (auto it = enums2str.find(e); it != enums2str.end()) {
     return it->second;
diff --git a/deps/LIEF/src/PE/LoadConfigurations/DynamicRelocation/DynamicRelocationV1.cpp b/deps/LIEF/src/PE/LoadConfigurations/DynamicRelocation/DynamicRelocationV1.cpp
index 3e5ad91313d..af57813aaf1 100644
--- a/deps/LIEF/src/PE/LoadConfigurations/DynamicRelocation/DynamicRelocationV1.cpp
+++ b/deps/LIEF/src/PE/LoadConfigurations/DynamicRelocation/DynamicRelocationV1.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -29,8 +29,7 @@ namespace LIEF::PE {

 template<class PE_T>
 std::unique_ptr<DynamicRelocationV1>
-  DynamicRelocationV1::parse(Parser& ctx, BinaryStream& strm)
-{
+    DynamicRelocationV1::parse(Parser& ctx, BinaryStream& strm) {
   using ptr_t = typename PE_T::uint;
   // typedef struct _IMAGE_DYNAMIC_RELOCATION32 {
   //     DWORD      Symbol;
@@ -67,21 +66,20 @@ std::unique_ptr<DynamicRelocationV1>

   SpanStream payload_strm(buffer);
   if (!DynamicFixup::parse(ctx, payload_strm, *dyn_reloc)) {
-    LIEF_WARN("Dynamic relocation failed to parse fixup (Symbol=0x{:016x})",
+    LIEF_WARN("Dynamic relocation failed to parse fixup (Symbol={:#018x})",
               dyn_reloc->symbol());
   }
   return dyn_reloc;
 }

 std::string DynamicRelocationV1::to_string() const {
-  using namespace fmt;
   std::ostringstream oss;
   oss << "Dynamic Value Relocation Table (version: 1)\n";
   if (symbol() < IMAGE_DYNAMIC_RELOCATION::_RELOC_LAST_ENTRY) {
-    oss << format("Symbol VA: 0x{:016x} ({})\n", symbol(),
-                  PE::to_string((IMAGE_DYNAMIC_RELOCATION)symbol()));
+    oss << fmt::format("Symbol VA: {:#018x} ({})\n", symbol(),
+                       PE::to_string((IMAGE_DYNAMIC_RELOCATION)symbol()));
   } else {
-    oss << format("Symbol VA: 0x{:016x}\n", symbol());
+    oss << fmt::format("Symbol VA: {:#018x}\n", symbol());
   }

   if (const DynamicFixup* F = fixups()) {
@@ -90,11 +88,9 @@ std::string DynamicRelocationV1::to_string() const {
   return oss.str();
 }

-template
-std::unique_ptr<DynamicRelocationV1>
-  DynamicRelocationV1::parse<details::PE32>(Parser& ctx, BinaryStream&);
+template std::unique_ptr<DynamicRelocationV1>
+    DynamicRelocationV1::parse<details::PE32>(Parser& ctx, BinaryStream&);

-template
-std::unique_ptr<DynamicRelocationV1>
-  DynamicRelocationV1::parse<details::PE64>(Parser& ctx, BinaryStream&);
+template std::unique_ptr<DynamicRelocationV1>
+    DynamicRelocationV1::parse<details::PE64>(Parser& ctx, BinaryStream&);
 }
diff --git a/deps/LIEF/src/PE/LoadConfigurations/DynamicRelocation/DynamicRelocationV2.cpp b/deps/LIEF/src/PE/LoadConfigurations/DynamicRelocation/DynamicRelocationV2.cpp
index 0b2a4bfa79a..9477448f3c3 100644
--- a/deps/LIEF/src/PE/LoadConfigurations/DynamicRelocation/DynamicRelocationV2.cpp
+++ b/deps/LIEF/src/PE/LoadConfigurations/DynamicRelocation/DynamicRelocationV2.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -22,8 +22,7 @@ namespace LIEF::PE {

 template<class PE_T>
 std::unique_ptr<DynamicRelocationV2>
-  DynamicRelocationV2::parse(Parser& /*ctx*/, BinaryStream& stream)
-{
+    DynamicRelocationV2::parse(Parser& /*ctx*/, BinaryStream& stream) {
   using ptr_t = typename PE_T::uint;
   auto v2 = std::make_unique<DynamicRelocationV2>();
   // typedef struct _IMAGE_DYNAMIC_RELOCATION32_V2 {
@@ -78,9 +77,7 @@ std::unique_ptr<DynamicRelocationV2>
   {
     // Note(romain): As of now (2024-12) I couldn't find any PE that is using
     // the v2 format. Hence this part is incomplete/not working.
-    stream
-      .increment_pos(*HeaderSize)
-      .increment_pos(*FixupInfoSize);
+    stream.increment_pos(*HeaderSize).increment_pos(*FixupInfoSize);
   }
 }

diff --git a/deps/LIEF/src/PE/LoadConfigurations/DynamicRelocation/FunctionOverride.cpp b/deps/LIEF/src/PE/LoadConfigurations/DynamicRelocation/FunctionOverride.cpp
index 5a0233b5a87..088efa869da 100644
--- a/deps/LIEF/src/PE/LoadConfigurations/DynamicRelocation/FunctionOverride.cpp
+++ b/deps/LIEF/src/PE/LoadConfigurations/DynamicRelocation/FunctionOverride.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -28,22 +28,19 @@ namespace LIEF::PE {
 using image_bdd_info_t = FunctionOverride::image_bdd_info_t;

 FunctionOverride::FunctionOverride() :
-  DynamicFixup(KIND::FUNCTION_OVERRIDE)
-{}
+  DynamicFixup(KIND::FUNCTION_OVERRIDE) {}

 FunctionOverride::FunctionOverride(const FunctionOverride& other) :
   DynamicFixup(other),
-  bdd_info_(other.bdd_info_)
-{
+  bdd_info_(other.bdd_info_) {
   if (!other.overriding_info_.empty()) {
     overriding_info_.reserve(other.overriding_info_.size());
     overriding_info_.reserve(other.overriding_info_.size());
     std::transform(other.overriding_info_.begin(), other.overriding_info_.end(),
                    std::back_inserter(overriding_info_),
-      [] (const std::unique_ptr<FunctionOverrideInfo>& func) {
-        return std::make_unique<FunctionOverrideInfo>(*func);
-      }
-    );
+                   [](const std::unique_ptr<FunctionOverrideInfo>& func) {
+                     return std::make_unique<FunctionOverrideInfo>(*func);
+                   });
   }
 }

@@ -59,10 +56,9 @@ FunctionOverride& FunctionOverride::operator=(const FunctionOverride& other) {
     overriding_info_.reserve(other.overriding_info_.size());
     std::transform(other.overriding_info_.begin(), other.overriding_info_.end(),
                    std::back_inserter(overriding_info_),
-      [] (const std::unique_ptr<FunctionOverrideInfo>& func) {
-        return std::make_unique<FunctionOverrideInfo>(*func);
-      }
-    );
+                   [](const std::unique_ptr<FunctionOverrideInfo>& func) {
+                     return std::make_unique<FunctionOverrideInfo>(*func);
+                   });
   }
   return *this;
 }
@@ -73,19 +69,18 @@ FunctionOverride& FunctionOverride::operator=(FunctionOverride&&) = default;
 FunctionOverride::~FunctionOverride() = default;

 std::string FunctionOverride::to_string() const {
-  using namespace fmt;
   std::ostringstream oss;
-  oss << format("Function Override ({}) {{\n", overriding_info_.size());
+  oss << fmt::format("Function Override ({}) {{\n", overriding_info_.size());
   for (const FunctionOverrideInfo& info : func_overriding_info()) {
     oss << indent(info.to_string(), 2);
     if (const image_bdd_info_t* bdd_info = find_bdd_info(info)) {
-      oss << format("  BDD Version: {} ({} bytes, offset=0x{:08x})\n",
-                    bdd_info->version, bdd_info->original_size,
-                    bdd_info->original_offset);
+      oss << fmt::format("  BDD Version: {} ({} bytes, offset={:#010x})\n",
+                         bdd_info->version, bdd_info->original_size,
+                         bdd_info->original_offset);
       for (size_t i = 0; i < bdd_info->relocations.size(); ++i) {
         const image_bdd_dynamic_relocation_t& R = bdd_info->relocations[i];
-        oss << format("    [{:04d}] L={:04d}, R={:04d}, V=0x{:08x}\n", i,
-                      R.left, R.right, R.value);
+        oss << fmt::format("    [{:04d}] L={:04d}, R={:04d}, V={:#010x}\n", i,
+                           R.left, R.right, R.value);
       }
     } else {
       oss << "  <Missing IMAGE_BDD_INFO>\n";
@@ -95,9 +90,8 @@ std::string FunctionOverride::to_string() const {
   return oss.str();
 }

-std::unique_ptr<FunctionOverride>
-  FunctionOverride::parse(Parser& ctx, SpanStream& strm)
-{
+std::unique_ptr<FunctionOverride> FunctionOverride::parse(Parser& ctx,
+                                                          SpanStream& strm) {
   auto FuncOverrideSize = strm.read<uint32_t>();
   if (!FuncOverrideSize) {
     LIEF_DEBUG("Error: {}: {}", __FUNCTION__, __LINE__);
@@ -108,14 +102,14 @@ std::unique_ptr<FunctionOverride>
   if (FuncOverrideInfo) {
     strm.increment_pos(*FuncOverrideSize);
   } else {
-    LIEF_WARN("Can't slice FuncOverrideInfo");
+    LIEF_WARN("Failed to slice FuncOverrideInfo");
   }

   auto BDDInfo = strm.slice(strm.pos());
   if (BDDInfo) {
     strm.increment_pos(BDDInfo->size());
   } else {
-    LIEF_WARN("Can't slice BDDInfo");
+    LIEF_WARN("Failed to slice BDDInfo");
   }

   auto func = std::make_unique<FunctionOverride>();
@@ -137,30 +131,29 @@ std::unique_ptr<FunctionOverride>
   return func;
 }

-ok_error_t FunctionOverride::parse_bdd_info(
-  Parser&/*ctx*/, SpanStream& strm, FunctionOverride& func)
-{
+ok_error_t FunctionOverride::parse_bdd_info(Parser& /*ctx*/, SpanStream& strm,
+                                            FunctionOverride& func) {
   image_bdd_info_t bdd_info;
   bdd_info.original_offset = strm.pos();

   auto Version = strm.read<uint32_t>();
   if (!Version) {
-    LIEF_WARN("Can't read IMAGE_BDD_INFO.Version");
+    LIEF_WARN("Failed to read IMAGE_BDD_INFO.Version");
     return make_error_code(Version.error());
   }
   bdd_info.version = *Version;

   auto BDDSize = strm.read<uint32_t>();
   if (!BDDSize) {
-    LIEF_WARN("Can't read IMAGE_BDD_INFO.BDDSize");
+    LIEF_WARN("Failed to read IMAGE_BDD_INFO.BDDSize");
     return make_error_code(BDDSize.error());
   }

   if (*Version != 1) {
-    LIEF_DEBUG("IMAGE_BDD_INFO unsupported version: {}", *Version);
+    LIEF_DEBUG("Unsupported IMAGE_BDD_INFO version: {}", *Version);

     if (!strm.read_data(bdd_info.payload, *BDDSize)) {
-      LIEF_WARN("Can't read IMAGE_BDD_INFO payload");
+      LIEF_WARN("Failed to read IMAGE_BDD_INFO payload");
     }
     return ok();
   }
@@ -171,7 +164,7 @@ ok_error_t FunctionOverride::parse_bdd_info(

   auto payload = strm.slice(strm.pos(), *BDDSize);
   if (!payload) {
-    LIEF_WARN("Can't slice IMAGE_BDD_INFO payload");
+    LIEF_WARN("Failed to slice IMAGE_BDD_INFO payload");
     return make_error_code(payload.error());
   }

@@ -204,12 +197,13 @@ image_bdd_info_t* FunctionOverride::find_bdd_info(uint32_t offset) {
   // The current `parse_bdd_info` function parses the bdd_info in sequence
   // with increasing offset on the stream. This means that the func.bdd_info_
   // is already sorted by image_bdd_info_t::original_offset. We can leverage
-  // this property to perform a binary search in O(log2(N)) instead of a O(N)
-  auto it = std::lower_bound(bdd_info_.begin(), bdd_info_.end(),
-    image_bdd_info_t{0, 0, offset, {}, {}},
-    [] (const image_bdd_info_t& LHS, const image_bdd_info_t& RHS) {
-      return LHS.original_offset < RHS.original_offset;
-    });
+  // this property to perform a binary search in O(log2(N)) instead of an O(N)
+  auto it = std::lower_bound(
+      bdd_info_.begin(), bdd_info_.end(), image_bdd_info_t{0, 0, offset, {}, {}},
+      [](const image_bdd_info_t& LHS, const image_bdd_info_t& RHS) {
+        return LHS.original_offset < RHS.original_offset;
+      }
+  );

   if (it == bdd_info_.end()) {
     return nullptr;
@@ -217,7 +211,8 @@ image_bdd_info_t* FunctionOverride::find_bdd_info(uint32_t offset) {
   return &*it;
 }

-image_bdd_info_t* FunctionOverride::find_bdd_info(const FunctionOverrideInfo& info) {
+image_bdd_info_t*
+    FunctionOverride::find_bdd_info(const FunctionOverrideInfo& info) {
   return find_bdd_info(info.bdd_offset());
 }
 }
diff --git a/deps/LIEF/src/PE/LoadConfigurations/DynamicRelocation/FunctionOverrideInfo.cpp b/deps/LIEF/src/PE/LoadConfigurations/DynamicRelocation/FunctionOverrideInfo.cpp
index 9802a4ba3a9..120447d9a59 100644
--- a/deps/LIEF/src/PE/LoadConfigurations/DynamicRelocation/FunctionOverrideInfo.cpp
+++ b/deps/LIEF/src/PE/LoadConfigurations/DynamicRelocation/FunctionOverrideInfo.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -23,32 +23,30 @@

 namespace LIEF::PE {

-FunctionOverrideInfo::FunctionOverrideInfo(
-  uint32_t original_rva, uint32_t bdd_offset, uint32_t base_reloc_size
-) :
+FunctionOverrideInfo::FunctionOverrideInfo(uint32_t original_rva,
+                                           uint32_t bdd_offset,
+                                           uint32_t base_reloc_size) :
   original_rva_(original_rva),
   bdd_offset_(bdd_offset),
-  base_relocsz_(base_reloc_size)
-{}
+  base_relocsz_(base_reloc_size) {}

 FunctionOverrideInfo::FunctionOverrideInfo(const FunctionOverrideInfo& other) :
   original_rva_(other.original_rva_),
   bdd_offset_(other.bdd_offset_),
   base_relocsz_(other.base_relocsz_),
-  rvas_(other.rvas_)
-{
+  rvas_(other.rvas_) {
   if (!other.relocations_.empty()) {
     relocations_.reserve(other.relocations_.size());
     std::transform(other.relocations_.begin(), other.relocations_.end(),
                    std::back_inserter(relocations_),
-      [] (const std::unique_ptr<Relocation>& R) {
-        return std::make_unique<Relocation>(*R);
-      }
-    );
+                   [](const std::unique_ptr<Relocation>& R) {
+                     return std::make_unique<Relocation>(*R);
+                   });
   }
 }

-FunctionOverrideInfo& FunctionOverrideInfo::operator=(const FunctionOverrideInfo& other) {
+FunctionOverrideInfo&
+    FunctionOverrideInfo::operator=(const FunctionOverrideInfo& other) {
   if (&other == this) {
     return *this;
   }
@@ -62,40 +60,40 @@ FunctionOverrideInfo& FunctionOverrideInfo::operator=(const FunctionOverrideInfo
     relocations_.reserve(other.relocations_.size());
     std::transform(other.relocations_.begin(), other.relocations_.end(),
                    std::back_inserter(relocations_),
-      [] (const std::unique_ptr<Relocation>& R) {
-        return std::make_unique<Relocation>(*R);
-      }
-    );
+                   [](const std::unique_ptr<Relocation>& R) {
+                     return std::make_unique<Relocation>(*R);
+                   });
   }

   return *this;
 }

 FunctionOverrideInfo::FunctionOverrideInfo(FunctionOverrideInfo&&) = default;
-FunctionOverrideInfo& FunctionOverrideInfo::operator=(FunctionOverrideInfo&&) = default;
+FunctionOverrideInfo&
+    FunctionOverrideInfo::operator=(FunctionOverrideInfo&&) = default;

 FunctionOverrideInfo::~FunctionOverrideInfo() = default;

 std::string FunctionOverrideInfo::to_string() const {
-  using namespace fmt;
   std::ostringstream oss;
-  oss << format("Original RVA:   0x{:08x}\n", original_rva())
-      << format("BDD Offset:     0x{:08x}\n", bdd_offset())
-      << format("RVA array size: {}\n", rva_size())
-      << format("Reloc size:     0x{:04x}\n", base_reloc_size());
+  oss << fmt::format("Original RVA:   {:#010x}\n", original_rva())
+      << fmt::format("BDD Offset:     {:#010x}\n", bdd_offset())
+      << fmt::format("RVA array size: {}\n", rva_size())
+      << fmt::format("Reloc size:     {:#06x}\n", base_reloc_size());
   if (!rvas_.empty()) {
     oss << "RVAs:\n";
     for (size_t i = 0; i < rvas_.size(); ++i) {
-      oss << format("  [{:04d}]: 0x{:08x}\n", i, rvas_[i]);
+      oss << fmt::format("  [{:04d}]: {:#010x}\n", i, rvas_[i]);
     }
   }
   if (!relocations_.empty()) {
     oss << "Fixup RVAs:\n";
     for (size_t i = 0; i < relocations_.size(); ++i) {
       const Relocation& R = *relocations_[i];
-      oss << format("  [{:04d}]: RVA: 0x{:08x}\n", i, R.virtual_address());
+      oss << fmt::format("  [{:04d}]: RVA: {:#010x}\n", i, R.virtual_address());
       for (const RelocationEntry& E : R.entries()) {
-        oss << format("    0x{:08x} ({})\n", E.address(), PE::to_string(E.type()));
+        oss << fmt::format("    {:#010x} ({})\n", E.address(),
+                           PE::to_string(E.type()));
       }
     }
   }
@@ -103,41 +101,51 @@ std::string FunctionOverrideInfo::to_string() const {
 }

 std::unique_ptr<FunctionOverrideInfo>
-  FunctionOverrideInfo::parse(Parser& ctx, SpanStream& strm)
-{
+    FunctionOverrideInfo::parse(Parser& ctx, SpanStream& strm) {
   auto OriginalRva = strm.read<uint32_t>();
   if (!OriginalRva) {
-    LIEF_DEBUG("Can't read 'IMAGE_FUNCTION_OVERRIDE_DYNAMIC_RELOCATION.OriginalRva");
+    LIEF_DEBUG(
+        "Failed to read IMAGE_FUNCTION_OVERRIDE_DYNAMIC_RELOCATION.OriginalRva"
+    );
     return nullptr;
   }

   auto BDDOffset = strm.read<uint32_t>();
   if (!BDDOffset) {
-    LIEF_DEBUG("Can't read 'IMAGE_FUNCTION_OVERRIDE_DYNAMIC_RELOCATION.BDDOffset");
+    LIEF_DEBUG(
+        "Failed to read IMAGE_FUNCTION_OVERRIDE_DYNAMIC_RELOCATION.BDDOffset"
+    );
     return nullptr;
   }

   auto RvaSize = strm.read<uint32_t>();
   if (!RvaSize) {
-    LIEF_DEBUG("Can't read 'IMAGE_FUNCTION_OVERRIDE_DYNAMIC_RELOCATION.RvaSize");
+    LIEF_DEBUG(
+        "Failed to read IMAGE_FUNCTION_OVERRIDE_DYNAMIC_RELOCATION.RvaSize"
+    );
     return nullptr;
   }

   auto BaseRelocSize = strm.read<uint32_t>();
   if (!BaseRelocSize) {
-    LIEF_DEBUG("Can't read 'IMAGE_FUNCTION_OVERRIDE_DYNAMIC_RELOCATION.BaseRelocSize");
+    LIEF_DEBUG(
+        "Failed to read IMAGE_FUNCTION_OVERRIDE_DYNAMIC_RELOCATION.BaseRelocSize"
+    );
     return nullptr;
   }

-  auto func_override_info = std::make_unique<FunctionOverrideInfo>(
-    *OriginalRva, *BDDOffset, *BaseRelocSize
-  );
+  auto func_override_info =
+      std::make_unique<FunctionOverrideInfo>(*OriginalRva, *BDDOffset,
+                                             *BaseRelocSize);


-  LIEF_DEBUG("OriginalRva: 0x{:08x}", *OriginalRva);
+  LIEF_DEBUG("OriginalRva: {:#010x}", *OriginalRva);

   if (*RvaSize % sizeof(uint32_t) != 0) {
-    LIEF_WARN("IMAGE_FUNCTION_OVERRIDE_DYNAMIC_RELOCATION.RvaSize misaligned: 0x{:08x}", *RvaSize);
+    LIEF_WARN(
+        "IMAGE_FUNCTION_OVERRIDE_DYNAMIC_RELOCATION.RvaSize misaligned: {:#010x}",
+        *RvaSize
+    );
   }

   const size_t count = *RvaSize / sizeof(uint32_t);
@@ -147,16 +155,21 @@ std::unique_ptr<FunctionOverrideInfo>
   for (size_t i = 0; i < count; ++i) {
     auto RVA = strm.read<uint32_t>();
     if (!RVA) {
-      LIEF_WARN("Cant read IMAGE_FUNCTION_OVERRIDE_DYNAMIC_RELOCATION.RVAs[{}]", i);
+      LIEF_WARN(
+          "Failed to read IMAGE_FUNCTION_OVERRIDE_DYNAMIC_RELOCATION.RVAs[{}]", i
+      );
       return func_override_info;
     }
-    LIEF_DEBUG("IMAGE_FUNCTION_OVERRIDE_DYNAMIC_RELOCATION.RVA[{}]: 0x{:08x}", i, *RVA);
+    LIEF_DEBUG("IMAGE_FUNCTION_OVERRIDE_DYNAMIC_RELOCATION.RVA[{}]: {:#010x}", i,
+               *RVA);
     func_override_info->rvas_.push_back(*RVA);
   }

   auto BaseRelocs = strm.slice(strm.pos(), *BaseRelocSize);
   if (!BaseRelocs) {
-    LIEF_WARN("Can't slice IMAGE_FUNCTION_OVERRIDE_DYNAMIC_RELOCATION.BaseRelocs");
+    LIEF_WARN(
+        "Failed to slice IMAGE_FUNCTION_OVERRIDE_DYNAMIC_RELOCATION.BaseRelocs"
+    );
     return func_override_info;
   }

diff --git a/deps/LIEF/src/PE/LoadConfigurations/EnclaveConfiguration.cpp b/deps/LIEF/src/PE/LoadConfigurations/EnclaveConfiguration.cpp
index 451b3486bbc..21c0786150e 100644
--- a/deps/LIEF/src/PE/LoadConfigurations/EnclaveConfiguration.cpp
+++ b/deps/LIEF/src/PE/LoadConfigurations/EnclaveConfiguration.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -13,6 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
+#include <algorithm>
 #include <sstream>
 #include "LIEF/PE/Parser.hpp"
 #include "LIEF/PE/Binary.hpp"
@@ -28,30 +29,29 @@
 namespace LIEF::PE {

 std::string EnclaveConfiguration::to_string() const {
-  using namespace fmt;
   static constexpr auto WIDTH = 39;
   std::ostringstream os;
-  os << format("{:>{}}: 0x{:08x}\n", "Size", WIDTH, size())
-     << format("{:>{}}: 0x{:08x}\n", "Minimum Required Config Size", WIDTH,
-               min_required_config_size())
-     << format("{:>{}}: 0x{:08x} (debuggable={})\n", "Policy Flags", WIDTH,
-               policy_flags(), is_debuggable())
-     << format("{:>{}}: {}\n", "Number of Enclave Import Descriptors", WIDTH,
-               nb_imports())
-     << format("{:>{}}: 0x{:08x}\n", "RVA to enclave imports", WIDTH,
-               import_list_rva())
-     << format("{:>{}}: 0x{:04x}\n", "Size of enclave import", WIDTH,
-               import_entry_size())
-     << format("{:>{}}: {}\n", "Image version", WIDTH, image_version())
-     << format("{:>{}}: {}\n", "Security version", WIDTH, security_version())
-     << format("{:>{}}: 0x{:016x}\n", "Enclave Size", WIDTH, enclave_size())
-     << format("{:>{}}: {}\n", "Number of Threads", WIDTH, nb_threads())
-     << format("{:>{}}: 0x{:08x}\n", "Enclave flags", WIDTH, enclave_flags());
-
-  os << format("{:>{}}: {}\n", "Image ID", WIDTH,
-               hex_dump(image_id(), /*sep=*/" "));
-  os << format("{:>{}}: {}", "Family ID", WIDTH,
-               hex_dump(family_id(), /*sep=*/" "));
+  os << fmt::format("{:>{}}: {:#010x}\n", "Size", WIDTH, size())
+     << fmt::format("{:>{}}: {:#010x}\n", "Minimum Required Config Size", WIDTH,
+                    min_required_config_size())
+     << fmt::format("{:>{}}: {:#010x} (debuggable={})\n", "Policy Flags", WIDTH,
+                    policy_flags(), is_debuggable())
+     << fmt::format("{:>{}}: {}\n", "Number of Enclave Import Descriptors", WIDTH,
+                    nb_imports())
+     << fmt::format("{:>{}}: {:#010x}\n", "RVA to enclave imports", WIDTH,
+                    import_list_rva())
+     << fmt::format("{:>{}}: {:#06x}\n", "Size of enclave import", WIDTH,
+                    import_entry_size())
+     << fmt::format("{:>{}}: {}\n", "Image version", WIDTH, image_version())
+     << fmt::format("{:>{}}: {}\n", "Security version", WIDTH, security_version())
+     << fmt::format("{:>{}}: {:#018x}\n", "Enclave Size", WIDTH, enclave_size())
+     << fmt::format("{:>{}}: {}\n", "Number of Threads", WIDTH, nb_threads())
+     << fmt::format("{:>{}}: {:#010x}\n", "Enclave flags", WIDTH, enclave_flags());
+
+  os << fmt::format("{:>{}}: {}\n", "Image ID", WIDTH,
+                    hex_dump(image_id(), /*sep=*/" "));
+  os << fmt::format("{:>{}}: {}", "Family ID", WIDTH,
+                    hex_dump(family_id(), /*sep=*/" "));

   if (!imports_.empty()) {
     os << '\n';
@@ -66,9 +66,12 @@ std::string EnclaveConfiguration::to_string() const {

 template<class PE_T>
 std::unique_ptr<EnclaveConfiguration>
-  EnclaveConfiguration::parse(Parser& ctx, BinaryStream& stream)
-{
+    EnclaveConfiguration::parse(Parser& ctx, BinaryStream& stream) {
   using ptr_t = typename PE_T::uint;
+
+  static constexpr uint32_t ENCLAVE_IMPORT_SIZE = 0x50;
+  static constexpr uint32_t ENCLAVE_IMPORT_MAX_SIZE = 0x1000;
+
   auto config = std::make_unique<EnclaveConfiguration>();
   auto Size = stream.read<uint32_t>();
   if (!Size) {
@@ -151,30 +154,39 @@ std::unique_ptr<EnclaveConfiguration>
   }

   (*config)
-    .size(*Size)
-    .min_required_config_size(*MinimumRequiredConfigSize)
-    .policy_flags(*PolicyFlags)
-    .import_list_rva(*ImportList)
-    .import_entry_size(*ImportEntrySize)
-    .image_version(*ImageVersion)
-    .security_version(*SecurityVersion)
-    .enclave_size(*EnclaveSize)
-    .nb_threads(*NumberOfThreads)
-    .enclave_flags(*EnclaveFlags)
-  ;
-
-  if (*ImportEntrySize == 0 || *NumberOfImports == 0) {
+      .size(*Size)
+      .min_required_config_size(*MinimumRequiredConfigSize)
+      .policy_flags(*PolicyFlags)
+      .import_list_rva(*ImportList)
+      .import_entry_size(*ImportEntrySize)
+      .image_version(*ImageVersion)
+      .security_version(*SecurityVersion)
+      .enclave_size(*EnclaveSize)
+      .nb_threads(*NumberOfThreads)
+      .enclave_flags(*EnclaveFlags);
+
+  if (*NumberOfImports == 0) {
+    return config;
+  }
+
+  if (*ImportEntrySize < ENCLAVE_IMPORT_SIZE ||
+      *ImportEntrySize > ENCLAVE_IMPORT_MAX_SIZE)
+  {
     return config;
   }

-  if (*ImportEntrySize > 0x1000) {
+  const uint64_t base_offset = ctx.bin().rva_to_offset(*ImportList);
+  const uint64_t stream_size = ctx.stream().size();
+
+  if (base_offset >= stream_size) {
     return config;
   }

-  uint32_t base_offset = ctx.bin().rva_to_offset(*ImportList);
+  const uint64_t max_imports = (stream_size - base_offset) / *ImportEntrySize;
+  const uint64_t nb_imports = std::min<uint64_t>(*NumberOfImports, max_imports);

-  for (size_t i = 0; i < *NumberOfImports; ++i) {
-    uint32_t offset = base_offset + i * (*ImportEntrySize);
+  for (size_t i = 0; i < nb_imports; ++i) {
+    const uint64_t offset = base_offset + i * (uint64_t)*ImportEntrySize;
     ScopedStream scope(ctx.stream(), offset);
     auto import = EnclaveImport::parse(ctx, *scope);
     if (!import) {
@@ -189,9 +201,9 @@ std::unique_ptr<EnclaveConfiguration>
 }

 template std::unique_ptr<EnclaveConfiguration>
-  EnclaveConfiguration::parse<details::PE32>(Parser& ctx, BinaryStream& stream);
+    EnclaveConfiguration::parse<details::PE32>(Parser& ctx, BinaryStream& stream);

 template std::unique_ptr<EnclaveConfiguration>
-  EnclaveConfiguration::parse<details::PE64>(Parser& ctx, BinaryStream& stream);
+    EnclaveConfiguration::parse<details::PE64>(Parser& ctx, BinaryStream& stream);

 }
diff --git a/deps/LIEF/src/PE/LoadConfigurations/EnclaveImport.cpp b/deps/LIEF/src/PE/LoadConfigurations/EnclaveImport.cpp
index 86276a9930c..3dee3070403 100644
--- a/deps/LIEF/src/PE/LoadConfigurations/EnclaveImport.cpp
+++ b/deps/LIEF/src/PE/LoadConfigurations/EnclaveImport.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -19,37 +19,37 @@
 #include "LIEF/PE/LoadConfigurations/EnclaveImport.hpp"
 #include "LIEF/BinaryStream/BinaryStream.hpp"

-#include "logging.hpp"
 #include "internal_utils.hpp"

 namespace LIEF::PE {

 std::string EnclaveImport::to_string() const {
-  using namespace fmt;
   static constexpr auto WIDTH = 26;

   std::ostringstream os;

-  os << format("{} (RVA: 0x{:08x})\n", import_name(), import_name_rva())
-     << format("  {:{}}: {}\n", "Minimum Security Version", WIDTH, min_security_version())
-     << format("  {:{}}: {}\n", "Reserved", WIDTH, reserved())
-     << format("  {:{}}: {}\n", "Type", WIDTH, PE::to_string(type()))
-     << format("  {:{}}: {}\n", "Family ID", WIDTH, hex_dump(family_id(), " "))
-     << format("  {:{}}: {}\n", "Image ID", WIDTH, hex_dump(image_id(), " "));
+  os << fmt::format("{} (RVA: {:#010x})\n", import_name(), import_name_rva())
+     << fmt::format("  {:{}}: {}\n", "Minimum Security Version", WIDTH,
+                    min_security_version())
+     << fmt::format("  {:{}}: {}\n", "Reserved", WIDTH, reserved())
+     << fmt::format("  {:{}}: {}\n", "Type", WIDTH, PE::to_string(type()))
+     << fmt::format("  {:{}}: {}\n", "Family ID", WIDTH,
+                    hex_dump(family_id(), " "))
+     << fmt::format("  {:{}}: {}\n", "Image ID", WIDTH, hex_dump(image_id(), " "));
   {
     span<const uint8_t> id = this->id();
     auto chunk_1 = id.subspan(0, 16);
     auto chunk_2 = id.subspan(16);
-    os << format("  {:{}}: {}\n{:{}}{}", "unique/author ID", WIDTH,
-                 hex_dump(chunk_1, " "), " ", WIDTH + 4, hex_dump(chunk_2, " "));
+    os << fmt::format("  {:{}}: {}\n{:{}}{}", "unique/author ID", WIDTH,
+                      hex_dump(chunk_1, " "), " ", WIDTH + 4,
+                      hex_dump(chunk_2, " "));
   }


   return os.str();
 }

-result<EnclaveImport> EnclaveImport::parse(Parser& ctx, BinaryStream& stream)
-{
+result<EnclaveImport> EnclaveImport::parse(Parser& ctx, BinaryStream& stream) {
   EnclaveImport imp;
   auto MatchType = stream.read<uint32_t>();
   if (!MatchType) {
@@ -83,12 +83,10 @@ result<EnclaveImport> EnclaveImport::parse(Parser& ctx, BinaryStream& stream)
     return make_error_code(Reserved.error());
   }

-  imp
-    .type((TYPE)*MatchType)
-    .min_security_version(*MinimumSecurityVersion)
-    .import_name_rva(*ImportName)
-    .reserved(*Reserved)
-  ;
+  imp.type((TYPE)*MatchType)
+      .min_security_version(*MinimumSecurityVersion)
+      .import_name_rva(*ImportName)
+      .reserved(*Reserved);

   {
     uint32_t name_offset = ctx.bin().rva_to_offset(*ImportName);
diff --git a/deps/LIEF/src/PE/LoadConfigurations/LoadConfiguration.cpp b/deps/LIEF/src/PE/LoadConfigurations/LoadConfiguration.cpp
index 07185e03b3c..4102ea6abec 100644
--- a/deps/LIEF/src/PE/LoadConfigurations/LoadConfiguration.cpp
+++ b/deps/LIEF/src/PE/LoadConfigurations/LoadConfiguration.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -40,8 +40,8 @@

 FMT_FORMATTER(LIEF::PE::LoadConfiguration::IMAGE_GUARD, LIEF::PE::to_string);

-namespace LIEF {
-namespace PE {
+
+namespace LIEF::PE {

 LoadConfiguration::LoadConfiguration() = default;
 LoadConfiguration::LoadConfiguration(LoadConfiguration&&) = default;
@@ -49,21 +49,21 @@ LoadConfiguration& LoadConfiguration::operator=(LoadConfiguration&&) = default;
 LoadConfiguration::~LoadConfiguration() = default;

 static constexpr std::array IMAGE_GUARD_LIST = {
-  LoadConfiguration::IMAGE_GUARD::NONE,
-  LoadConfiguration::IMAGE_GUARD::CF_INSTRUMENTED,
-  LoadConfiguration::IMAGE_GUARD::CFW_INSTRUMENTED,
-  LoadConfiguration::IMAGE_GUARD::CF_FUNCTION_TABLE_PRESENT,
-  LoadConfiguration::IMAGE_GUARD::SECURITY_COOKIE_UNUSED,
-  LoadConfiguration::IMAGE_GUARD::PROTECT_DELAYLOAD_IAT,
-  LoadConfiguration::IMAGE_GUARD::DELAYLOAD_IAT_IN_ITS_OWN_SECTION,
-  LoadConfiguration::IMAGE_GUARD::CF_EXPORT_SUPPRESSION_INFO_PRESENT,
-  LoadConfiguration::IMAGE_GUARD::CF_ENABLE_EXPORT_SUPPRESSION,
-  LoadConfiguration::IMAGE_GUARD::CF_LONGJUMP_TABLE_PRESENT,
-  LoadConfiguration::IMAGE_GUARD::RF_INSTRUMENTED,
-  LoadConfiguration::IMAGE_GUARD::RF_ENABLE,
-  LoadConfiguration::IMAGE_GUARD::RF_STRICT,
-  LoadConfiguration::IMAGE_GUARD::RETPOLINE_PRESENT,
-  LoadConfiguration::IMAGE_GUARD::EH_CONTINUATION_TABLE_PRESENT,
+    LoadConfiguration::IMAGE_GUARD::NONE,
+    LoadConfiguration::IMAGE_GUARD::CF_INSTRUMENTED,
+    LoadConfiguration::IMAGE_GUARD::CFW_INSTRUMENTED,
+    LoadConfiguration::IMAGE_GUARD::CF_FUNCTION_TABLE_PRESENT,
+    LoadConfiguration::IMAGE_GUARD::SECURITY_COOKIE_UNUSED,
+    LoadConfiguration::IMAGE_GUARD::PROTECT_DELAYLOAD_IAT,
+    LoadConfiguration::IMAGE_GUARD::DELAYLOAD_IAT_IN_ITS_OWN_SECTION,
+    LoadConfiguration::IMAGE_GUARD::CF_EXPORT_SUPPRESSION_INFO_PRESENT,
+    LoadConfiguration::IMAGE_GUARD::CF_ENABLE_EXPORT_SUPPRESSION,
+    LoadConfiguration::IMAGE_GUARD::CF_LONGJUMP_TABLE_PRESENT,
+    LoadConfiguration::IMAGE_GUARD::RF_INSTRUMENTED,
+    LoadConfiguration::IMAGE_GUARD::RF_ENABLE,
+    LoadConfiguration::IMAGE_GUARD::RF_STRICT,
+    LoadConfiguration::IMAGE_GUARD::RETPOLINE_PRESENT,
+    LoadConfiguration::IMAGE_GUARD::EH_CONTINUATION_TABLE_PRESENT,
 };

 inline bool should_quit(uint64_t start, BinaryStream& stream, uint32_t size) {
@@ -72,8 +72,7 @@ inline bool should_quit(uint64_t start, BinaryStream& stream, uint32_t size) {

 template<class T, class Func>
 inline bool read_lc(Func f, LoadConfiguration* thiz, BinaryStream& stream,
-                    uint32_t start, uint32_t size)
-{
+                    uint32_t start, uint32_t size) {
   auto value = stream.read<T>();
   if (!value) {
     return false;
@@ -85,9 +84,8 @@ inline bool read_lc(Func f, LoadConfiguration* thiz, BinaryStream& stream,
 }

 template<class PE_T>
-std::unique_ptr<LoadConfiguration>
-  LoadConfiguration::parse(Parser& ctx, BinaryStream& stream)
-{
+std::unique_ptr<LoadConfiguration> LoadConfiguration::parse(Parser& ctx,
+                                                            BinaryStream& stream) {
   using ptr_t = typename PE_T::uint;

   const uint64_t start_off = stream.pos();
@@ -203,77 +201,85 @@ std::unique_ptr<LoadConfiguration>
   auto config = std::make_unique<LoadConfiguration>();

   (*config)
-    .characteristics(*Characteristics)
-    .timedatestamp(*TimeDateStamp)
-    .major_version(*MajorVersion)
-    .minor_version(*MinorVersion)
-    .global_flags_clear(*GlobalFlagsClear)
-    .global_flags_set(*GlobalFlagsSet)
-    .critical_section_default_timeout(*CriticalSectionDefaultTimeout)
-    .decommit_free_block_threshold(*DeCommitFreeBlockThreshold)
-    .decommit_total_free_threshold(*DeCommitTotalFreeThreshold)
-    .lock_prefix_table(*LockPrefixTable)
-    .maximum_allocation_size(*MaximumAllocationSize)
-    .virtual_memory_threshold(*VirtualMemoryThreshold)
-    .process_affinity_mask(*ProcessAffinityMask)
-    .process_heap_flags(*ProcessHeapFlags)
-    .csd_version(*CSDVersion)
-    .dependent_load_flags(*DependentLoadFlags)
-    .editlist(*EditList)
-    .security_cookie(*SecurityCookie)
-  ;
+      .characteristics(*Characteristics)
+      .timedatestamp(*TimeDateStamp)
+      .major_version(*MajorVersion)
+      .minor_version(*MinorVersion)
+      .global_flags_clear(*GlobalFlagsClear)
+      .global_flags_set(*GlobalFlagsSet)
+      .critical_section_default_timeout(*CriticalSectionDefaultTimeout)
+      .decommit_free_block_threshold(*DeCommitFreeBlockThreshold)
+      .decommit_total_free_threshold(*DeCommitTotalFreeThreshold)
+      .lock_prefix_table(*LockPrefixTable)
+      .maximum_allocation_size(*MaximumAllocationSize)
+      .virtual_memory_threshold(*VirtualMemoryThreshold)
+      .process_affinity_mask(*ProcessAffinityMask)
+      .process_heap_flags(*ProcessHeapFlags)
+      .csd_version(*CSDVersion)
+      .dependent_load_flags(*DependentLoadFlags)
+      .editlist(*EditList)
+      .security_cookie(*SecurityCookie);

   if (should_quit(start_off, stream, *Characteristics)) {
     return config;
   }

   /* V0 */ {
-    if (!read_lc<ptr_t>(overload_cast<uint64_t>(&LoadConfiguration::se_handler_table),
-                        config.get(), stream, start_off, *Characteristics))
+    if (!read_lc<ptr_t>(
+            overload_cast<uint64_t>(&LoadConfiguration::se_handler_table),
+            config.get(), stream, start_off, *Characteristics
+        ))
     {
       return config;
     }

-    if (!read_lc<ptr_t>(overload_cast<uint64_t>(&LoadConfiguration::se_handler_count),
-                        config.get(), stream, start_off, *Characteristics))
+    if (!read_lc<ptr_t>(
+            overload_cast<uint64_t>(&LoadConfiguration::se_handler_count),
+            config.get(), stream, start_off, *Characteristics
+        ))
     {
       return config;
     }
   }

   /* V1 */ {
-    if (!read_lc<ptr_t>(
-          overload_cast<uint64_t>(&LoadConfiguration::guard_cf_check_function_pointer),
-          config.get(), stream, start_off, *Characteristics)
-    ) {
+    if (!read_lc<ptr_t>(overload_cast<uint64_t>(
+                            &LoadConfiguration::guard_cf_check_function_pointer
+                        ),
+                        config.get(), stream, start_off, *Characteristics))
+    {
       return config;
     }

-    if (!read_lc<ptr_t>(
-          overload_cast<uint64_t>(&LoadConfiguration::guard_cf_dispatch_function_pointer),
-          config.get(), stream, start_off, *Characteristics)
-    ) {
+    if (!read_lc<ptr_t>(overload_cast<uint64_t>(
+                            &LoadConfiguration::guard_cf_dispatch_function_pointer
+                        ),
+                        config.get(), stream, start_off, *Characteristics))
+    {
       return config;
     }

     if (!read_lc<ptr_t>(
-          overload_cast<uint64_t>(&LoadConfiguration::guard_cf_function_table),
-          config.get(), stream, start_off, *Characteristics)
-    ) {
+            overload_cast<uint64_t>(&LoadConfiguration::guard_cf_function_table),
+            config.get(), stream, start_off, *Characteristics
+        ))
+    {
       return config;
     }

     if (!read_lc<ptr_t>(
-          overload_cast<uint64_t>(&LoadConfiguration::guard_cf_function_count),
-          config.get(), stream, start_off, *Characteristics)
-    ) {
+            overload_cast<uint64_t>(&LoadConfiguration::guard_cf_function_count),
+            config.get(), stream, start_off, *Characteristics
+        ))
+    {
       return config;
     }

     if (!read_lc<uint32_t>(
-          overload_cast<uint32_t>(&LoadConfiguration::guard_flags),
-          config.get(), stream, start_off, *Characteristics)
-    ) {
+            overload_cast<uint32_t>(&LoadConfiguration::guard_flags), config.get(),
+            stream, start_off, *Characteristics
+        ))
+    {
       return config;
     }
   }
@@ -292,210 +298,243 @@ std::unique_ptr<LoadConfiguration>
   }

   /* V3 */ {
-    if (!read_lc<ptr_t>(
-          overload_cast<uint64_t>(&LoadConfiguration::guard_address_taken_iat_entry_table),
-          config.get(), stream, start_off, *Characteristics)
-    ) {
+    if (!read_lc<ptr_t>(overload_cast<uint64_t>(
+                            &LoadConfiguration::guard_address_taken_iat_entry_table
+                        ),
+                        config.get(), stream, start_off, *Characteristics))
+    {
       return config;
     }

-    if (!read_lc<ptr_t>(
-          overload_cast<uint64_t>(&LoadConfiguration::guard_address_taken_iat_entry_count),
-          config.get(), stream, start_off, *Characteristics)
-    ) {
+    if (!read_lc<ptr_t>(overload_cast<uint64_t>(
+                            &LoadConfiguration::guard_address_taken_iat_entry_count
+                        ),
+                        config.get(), stream, start_off, *Characteristics))
+    {
       return config;
     }

-    if (!read_lc<ptr_t>(
-          overload_cast<uint64_t>(&LoadConfiguration::guard_long_jump_target_table),
-          config.get(), stream, start_off, *Characteristics)
-    ) {
+    if (!read_lc<ptr_t>(overload_cast<uint64_t>(
+                            &LoadConfiguration::guard_long_jump_target_table
+                        ),
+                        config.get(), stream, start_off, *Characteristics))
+    {
       return config;
     }

-    if (!read_lc<ptr_t>(
-          overload_cast<uint64_t>(&LoadConfiguration::guard_long_jump_target_count),
-          config.get(), stream, start_off, *Characteristics)
-    ) {
+    if (!read_lc<ptr_t>(overload_cast<uint64_t>(
+                            &LoadConfiguration::guard_long_jump_target_count
+                        ),
+                        config.get(), stream, start_off, *Characteristics))
+    {
       return config;
     }
   }

   /* V4 */ {
     if (!read_lc<ptr_t>(
-          overload_cast<uint64_t>(&LoadConfiguration::dynamic_value_reloc_table),
-          config.get(), stream, start_off, *Characteristics)
-    ) {
+            overload_cast<uint64_t>(&LoadConfiguration::dynamic_value_reloc_table),
+            config.get(), stream, start_off, *Characteristics
+        ))
+    {
       return config;
     }

     if (!read_lc<ptr_t>(
-          overload_cast<uint64_t>(&LoadConfiguration::hybrid_metadata_pointer),
-          config.get(), stream, start_off, *Characteristics)
-    ) {
+            overload_cast<uint64_t>(&LoadConfiguration::hybrid_metadata_pointer),
+            config.get(), stream, start_off, *Characteristics
+        ))
+    {
       return config;
     }
   }

   /* V5 */ {
     if (!read_lc<ptr_t>(
-          overload_cast<uint64_t>(&LoadConfiguration::guard_rf_failure_routine),
-          config.get(), stream, start_off, *Characteristics)
-    ) {
+            overload_cast<uint64_t>(&LoadConfiguration::guard_rf_failure_routine),
+            config.get(), stream, start_off, *Characteristics
+        ))
+    {
       return config;
     }

     if (!read_lc<ptr_t>(
-          overload_cast<uint64_t>(&LoadConfiguration::guard_rf_failure_routine_function_pointer),
-          config.get(), stream, start_off, *Characteristics)
-    ) {
+            overload_cast<uint64_t>(
+                &LoadConfiguration::guard_rf_failure_routine_function_pointer
+            ),
+            config.get(), stream, start_off, *Characteristics
+        ))
+    {
       return config;
     }

-    if (!read_lc<uint32_t>(
-          overload_cast<uint32_t>(&LoadConfiguration::dynamic_value_reloctable_offset),
-          config.get(), stream, start_off, *Characteristics)
-    ) {
+    if (!read_lc<uint32_t>(overload_cast<uint32_t>(
+                               &LoadConfiguration::dynamic_value_reloctable_offset
+                           ),
+                           config.get(), stream, start_off, *Characteristics))
+    {
       return config;
     }

-    if (!read_lc<uint16_t>(
-          overload_cast<uint16_t>(&LoadConfiguration::dynamic_value_reloctable_section),
-          config.get(), stream, start_off, *Characteristics)
-    ) {
+    if (!read_lc<uint16_t>(overload_cast<uint16_t>(
+                               &LoadConfiguration::dynamic_value_reloctable_section
+                           ),
+                           config.get(), stream, start_off, *Characteristics))
+    {
       return config;
     }

-    if (!read_lc<uint16_t>(
-          overload_cast<uint16_t>(&LoadConfiguration::reserved2),
-          config.get(), stream, start_off, *Characteristics)
-    ) {
+    if (!read_lc<uint16_t>(overload_cast<uint16_t>(&LoadConfiguration::reserved2),
+                           config.get(), stream, start_off, *Characteristics))
+    {
       return config;
     }
   }

   /* V6 */ {
     if (!read_lc<ptr_t>(
-          overload_cast<uint64_t>(&LoadConfiguration::guard_rf_verify_stackpointer_function_pointer),
-          config.get(), stream, start_off, *Characteristics)
-    ) {
+            overload_cast<uint64_t>(
+                &LoadConfiguration::guard_rf_verify_stackpointer_function_pointer
+            ),
+            config.get(), stream, start_off, *Characteristics
+        ))
+    {
       return config;
     }

     if (!read_lc<uint32_t>(
-          overload_cast<uint32_t>(&LoadConfiguration::hotpatch_table_offset),
-          config.get(), stream, start_off, *Characteristics)
-    ) {
+            overload_cast<uint32_t>(&LoadConfiguration::hotpatch_table_offset),
+            config.get(), stream, start_off, *Characteristics
+        ))
+    {
       return config;
     }
   }

   /* V7 */ {
-    if (!read_lc<uint32_t>(
-          overload_cast<uint32_t>(&LoadConfiguration::reserved3),
-          config.get(), stream, start_off, *Characteristics)
-    ) {
+    if (!read_lc<uint32_t>(overload_cast<uint32_t>(&LoadConfiguration::reserved3),
+                           config.get(), stream, start_off, *Characteristics))
+    {
       return config;
     }

     if (!read_lc<ptr_t>(
-          overload_cast<uint64_t>(&LoadConfiguration::enclave_configuration_ptr),
-          config.get(), stream, start_off, *Characteristics)
-    ) {
+            overload_cast<uint64_t>(&LoadConfiguration::enclave_configuration_ptr),
+            config.get(), stream, start_off, *Characteristics
+        ))
+    {
       return config;
     }
   }

   /* V8 */ {
     if (!read_lc<ptr_t>(
-          overload_cast<uint64_t>(&LoadConfiguration::volatile_metadata_pointer),
-          config.get(), stream, start_off, *Characteristics)
-    ) {
+            overload_cast<uint64_t>(&LoadConfiguration::volatile_metadata_pointer),
+            config.get(), stream, start_off, *Characteristics
+        ))
+    {
       return config;
     }
   }

   /* V9 */ {
-    if (!read_lc<ptr_t>(
-          overload_cast<uint64_t>(&LoadConfiguration::guard_eh_continuation_table),
-          config.get(), stream, start_off, *Characteristics)
-    ) {
+    if (!read_lc<ptr_t>(overload_cast<uint64_t>(
+                            &LoadConfiguration::guard_eh_continuation_table
+                        ),
+                        config.get(), stream, start_off, *Characteristics))
+    {
       return config;
     }

-    if (!read_lc<ptr_t>(
-          overload_cast<uint64_t>(&LoadConfiguration::guard_eh_continuation_count),
-          config.get(), stream, start_off, *Characteristics)
-    ) {
+    if (!read_lc<ptr_t>(overload_cast<uint64_t>(
+                            &LoadConfiguration::guard_eh_continuation_count
+                        ),
+                        config.get(), stream, start_off, *Characteristics))
+    {
       return config;
     }
   }

   /* V10 */ {
-    if (!read_lc<ptr_t>(
-          overload_cast<uint64_t>(&LoadConfiguration::guard_xfg_check_function_pointer),
-          config.get(), stream, start_off, *Characteristics)
-    ) {
+    if (!read_lc<ptr_t>(overload_cast<uint64_t>(
+                            &LoadConfiguration::guard_xfg_check_function_pointer
+                        ),
+                        config.get(), stream, start_off, *Characteristics))
+    {
       return config;
     }

-    if (!read_lc<ptr_t>(
-          overload_cast<uint64_t>(&LoadConfiguration::guard_xfg_dispatch_function_pointer),
-          config.get(), stream, start_off, *Characteristics)
-    ) {
+    if (!read_lc<ptr_t>(overload_cast<uint64_t>(
+                            &LoadConfiguration::guard_xfg_dispatch_function_pointer
+                        ),
+                        config.get(), stream, start_off, *Characteristics))
+    {
       return config;
     }

     if (!read_lc<ptr_t>(
-          overload_cast<uint64_t>(&LoadConfiguration::guard_xfg_table_dispatch_function_pointer),
-          config.get(), stream, start_off, *Characteristics)
-    ) {
+            overload_cast<uint64_t>(
+                &LoadConfiguration::guard_xfg_table_dispatch_function_pointer
+            ),
+            config.get(), stream, start_off, *Characteristics
+        ))
+    {
       return config;
     }
   }

   /* V11 */ {
     if (!read_lc<ptr_t>(
-          overload_cast<uint64_t>(&LoadConfiguration::cast_guard_os_determined_failure_mode),
-          config.get(), stream, start_off, *Characteristics)
-    ) {
+            overload_cast<uint64_t>(
+                &LoadConfiguration::cast_guard_os_determined_failure_mode
+            ),
+            config.get(), stream, start_off, *Characteristics
+        ))
+    {
       return config;
     }
   }

   /* V12 */ {
-    if (!read_lc<ptr_t>(
-          overload_cast<uint64_t>(&LoadConfiguration::guard_memcpy_function_pointer),
-          config.get(), stream, start_off, *Characteristics)
-    ) {
+    if (!read_lc<ptr_t>(overload_cast<uint64_t>(
+                            &LoadConfiguration::guard_memcpy_function_pointer
+                        ),
+                        config.get(), stream, start_off, *Characteristics))
+    {
       return config;
     }
   }

   /* V13 */ {
     if (!read_lc<ptr_t>(
-          overload_cast<uint64_t>(&LoadConfiguration::uma_function_pointers),
-          config.get(), stream, start_off, *Characteristics)
-    ) {
+            overload_cast<uint64_t>(&LoadConfiguration::uma_function_pointers),
+            config.get(), stream, start_off, *Characteristics
+        ))
+    {
       return config;
     }
   }
   return config;
 }

-ok_error_t LoadConfiguration::parse_seh_table(
-    Parser& /*ctx*/, BinaryStream& stream, LoadConfiguration& config)
-{
+ok_error_t LoadConfiguration::parse_seh_table(Parser& /*ctx*/,
+                                              BinaryStream& stream,
+                                              LoadConfiguration& config) {
   static constexpr auto MAX_RESERVE = 1000;
   const uint64_t count = config.se_handler_count().value_or(0);
   if (count == 0) {
     return ok();
   }

-  LIEF_DEBUG("SEH Table parsing (#{})", count);
+  const uint64_t available =
+      stream.size() - std::min<uint64_t>(stream.pos(), stream.size());
+
+  const uint64_t nb = std::min<uint64_t>(count, available / sizeof(uint32_t));

-  config.seh_rva_.reserve(std::min<uint64_t>(MAX_RESERVE, count));
-  for (size_t i = 0; i < count; ++i) {
+  LIEF_DEBUG("SEH Table parsing (#{}, bounded to #{})", count, nb);
+
+  config.seh_rva_.reserve(std::min<uint64_t>(MAX_RESERVE, nb));
+  for (size_t i = 0; i < nb; ++i) {
     auto rva = stream.read<uint32_t>();
     if (!rva) {
       return make_error_code(rva.error());
@@ -508,9 +547,9 @@ ok_error_t LoadConfiguration::parse_seh_table(
 }

 ok_error_t LoadConfiguration::parse_guard_functions(
-    Parser& /*ctx*/, BinaryStream& stream, LoadConfiguration& config,
-    size_t count, guard_functions_t LoadConfiguration::* dst)
-{
+    Parser& /*ctx*/, BinaryStream& stream, LoadConfiguration& config, size_t count,
+    guard_functions_t LoadConfiguration::* dst
+) {
   static constexpr auto MAX_RESERVE = 1000;
   if (count == 0) {
     return ok();
@@ -518,16 +557,27 @@ ok_error_t LoadConfiguration::parse_guard_functions(

   const uint32_t stride = config.guard_flags().value_or(0) >> 28;

-  LIEF_DEBUG("Parsing GF (#{}, stride={})", count, stride);

-  (config.*dst).reserve(std::min<uint64_t>(MAX_RESERVE, count));
+  uint64_t entry_size = sizeof(uint32_t);
+  if (stride >= 1) {
+    entry_size += stride;
+  }
+
+  const uint64_t available =
+      stream.size() - std::min<uint64_t>(stream.pos(), stream.size());
+
+  const uint64_t nb = std::min<uint64_t>(count, available / entry_size);
+
+  LIEF_DEBUG("Parsing GF (#{}, bounded to #{}, stride={})", count, nb, stride);
+
+  (config.*dst).reserve(std::min<uint64_t>(MAX_RESERVE, nb));

   bool once_stride = false;
-  for (size_t i = 0; i < count; ++i) {
+  for (size_t i = 0; i < nb; ++i) {
     auto rva = stream.read<uint32_t>();
     if (!rva) {
-      LIEF_DEBUG("Can't read RVA index {} ({}:{})", i,
-                 __FUNCTION__, __LINE__);
+      LIEF_DEBUG("Failed to read RVA at index {} ({}:{})", i, __FUNCTION__,
+                 __LINE__);
       return make_error_code(rva.error());
     }

@@ -536,7 +586,7 @@ ok_error_t LoadConfiguration::parse_guard_functions(
     if (stride == 1) {
       auto value = stream.read<uint8_t>();
       if (!value) {
-        LIEF_WARN("Can't read stride for RVA: {:#x}", *rva);
+        LIEF_WARN("Failed to read stride for RVA: {:#x}", *rva);
         return make_error_code(value.error());
       }
       extra = *value;
@@ -557,8 +607,7 @@ ok_error_t LoadConfiguration::parse_guard_functions(
 }

 ok_error_t LoadConfiguration::parse_dyn_relocs(Parser& ctx,
-                                               LoadConfiguration& lconf)
-{
+                                               LoadConfiguration& lconf) {
   auto dyn_reloc_off = lconf.dynamic_value_reloctable_offset();
   uint16_t dyn_reloc_sec = lconf.dynamic_value_reloctable_section().value_or(0);

@@ -606,31 +655,34 @@ ok_error_t LoadConfiguration::parse_dyn_relocs(Parser& ctx,

   if (ctx.bin().type() == PE_TYPE::PE32) {
     return *version == 1 ?
-            parse_dyn_relocs_entries</*version=*/1, details::PE32>(ctx, strm,
-                                                                   lconf, *size) :
-            parse_dyn_relocs_entries</*version=*/2, details::PE32>(ctx, strm,
-                                                                   lconf, *size);
+               parse_dyn_relocs_entries</*version=*/1, details::PE32>(ctx, strm,
+                                                                      lconf,
+                                                                      *size) :
+               parse_dyn_relocs_entries</*version=*/2, details::PE32>(ctx, strm,
+                                                                      lconf,
+                                                                      *size);
   }
   assert(ctx.bin().type() == PE_TYPE::PE32_PLUS);

   return *version == 1 ?
-          parse_dyn_relocs_entries</*version=*/1, details::PE64>(ctx, strm,
-                                                                 lconf, *size) :
-          parse_dyn_relocs_entries</*version=*/2, details::PE64>(ctx, strm,
-                                                                 lconf, *size);
+             parse_dyn_relocs_entries</*version=*/1, details::PE64>(ctx, strm,
+                                                                    lconf, *size) :
+             parse_dyn_relocs_entries</*version=*/2, details::PE64>(ctx, strm,
+                                                                    lconf, *size);
 }


 template<uint8_t version, class PE_T>
-ok_error_t LoadConfiguration::parse_dyn_relocs_entries(
-  Parser& ctx, BinaryStream& stream, LoadConfiguration& config, size_t size)
-{
+ok_error_t LoadConfiguration::parse_dyn_relocs_entries(Parser& ctx,
+                                                       BinaryStream& stream,
+                                                       LoadConfiguration& config,
+                                                       size_t size) {
   const size_t stream_start = stream.pos();
   while (stream && stream.pos() < (stream_start + size)) {
     if constexpr (version == 1) {
       auto v1 = DynamicRelocationV1::parse<PE_T>(ctx, stream);
       if (v1 == nullptr) {
-        LIEF_WARN("Dynamic (v1) relocation parsing failed at offset=0x{:04x}",
+        LIEF_WARN("Dynamic (v1) relocation parsing failed at offset={:#06x}",
                   stream.pos());
         break;
       }
@@ -639,17 +691,18 @@ ok_error_t LoadConfiguration::parse_dyn_relocs_entries(
     }

     if constexpr (version == 2) {
-      continue;
+      LIEF_WARN("Dynamic (v2) dynamic relocation parsing not implemented");
+      break;
     }
   }
   return ok();
 }

 template<class PE_T>
-ok_error_t LoadConfiguration::parse_enclave_config(
-  Parser& ctx, LoadConfiguration& config)
-{
-  const uint64_t enclave_config_ptr = config.enclave_configuration_ptr().value_or(0);
+ok_error_t LoadConfiguration::parse_enclave_config(Parser& ctx,
+                                                   LoadConfiguration& config) {
+  const uint64_t enclave_config_ptr =
+      config.enclave_configuration_ptr().value_or(0);
   if (enclave_config_ptr == 0) {
     return ok();
   }
@@ -674,10 +727,10 @@ ok_error_t LoadConfiguration::parse_enclave_config(
 }


-ok_error_t LoadConfiguration::parse_volatile_metadata(
-  Parser& ctx, LoadConfiguration& config)
-{
-  const uint64_t volatile_metadata = config.volatile_metadata_pointer().value_or(0);
+ok_error_t LoadConfiguration::parse_volatile_metadata(Parser& ctx,
+                                                      LoadConfiguration& config) {
+  const uint64_t volatile_metadata =
+      config.volatile_metadata_pointer().value_or(0);
   if (volatile_metadata == 0) {
     return ok();
   }
@@ -736,11 +789,15 @@ LoadConfiguration::LoadConfiguration(const LoadConfiguration& other) :
   dynamic_value_reloc_table_(other.dynamic_value_reloc_table_),
   hybrid_metadata_pointer_(other.hybrid_metadata_pointer_),
   guard_rf_failure_routine_(other.guard_rf_failure_routine_),
-  guard_rf_failure_routine_function_pointer_(other.guard_rf_failure_routine_function_pointer_),
+  guard_rf_failure_routine_function_pointer_(
+      other.guard_rf_failure_routine_function_pointer_
+  ),
   dynamic_value_reloctable_offset_(other.dynamic_value_reloctable_offset_),
   dynamic_value_reloctable_section_(other.dynamic_value_reloctable_section_),
   reserved2_(other.reserved2_),
-  guardrf_verify_stackpointer_function_pointer_(other.guardrf_verify_stackpointer_function_pointer_),
+  guardrf_verify_stackpointer_function_pointer_(
+      other.guardrf_verify_stackpointer_function_pointer_
+  ),
   hotpatch_table_offset_(other.hotpatch_table_offset_),
   reserved3_(other.reserved3_),
   enclave_configuration_ptr_(other.enclave_configuration_ptr_),
@@ -749,8 +806,12 @@ LoadConfiguration::LoadConfiguration(const LoadConfiguration& other) :
   guard_eh_continuation_count_(other.guard_eh_continuation_count_),
   guard_xfg_check_function_pointer_(other.guard_xfg_check_function_pointer_),
   guard_xfg_dispatch_function_pointer_(other.guard_xfg_dispatch_function_pointer_),
-  guard_xfg_table_dispatch_function_pointer_(other.guard_xfg_table_dispatch_function_pointer_),
-  cast_guard_os_determined_failure_mode_(other.cast_guard_os_determined_failure_mode_),
+  guard_xfg_table_dispatch_function_pointer_(
+      other.guard_xfg_table_dispatch_function_pointer_
+  ),
+  cast_guard_os_determined_failure_mode_(
+      other.cast_guard_os_determined_failure_mode_
+  ),
   guard_memcpy_function_pointer_(other.guard_memcpy_function_pointer_),
   uma_function_pointers_(other.uma_function_pointers_),

@@ -758,8 +819,7 @@ LoadConfiguration::LoadConfiguration(const LoadConfiguration& other) :
   guard_cf_functions_(other.guard_cf_functions_),
   guard_address_taken_iat_entries_(other.guard_address_taken_iat_entries_),
   guard_long_jump_targets_(other.guard_long_jump_targets_),
-  guard_eh_continuation_functions_(other.guard_eh_continuation_functions_)
-{
+  guard_eh_continuation_functions_(other.guard_eh_continuation_functions_) {
   if (other.chpe_ != nullptr) {
     chpe_ = other.chpe_->clone();
   }
@@ -776,8 +836,9 @@ LoadConfiguration::LoadConfiguration(const LoadConfiguration& other) :
     dynamic_relocs_.reserve(other.dynamic_relocs_.size());
     std::transform(other.dynamic_relocs_.begin(), other.dynamic_relocs_.end(),
                    std::back_inserter(dynamic_relocs_),
-      [] (const std::unique_ptr<DynamicRelocation>& R) { return R->clone(); }
-    );
+                   [](const std::unique_ptr<DynamicRelocation>& R) {
+                     return R->clone();
+                   });
   }
 }

@@ -812,18 +873,22 @@ LoadConfiguration& LoadConfiguration::operator=(const LoadConfiguration& other)
   guard_cf_function_count_ = other.guard_cf_function_count_;
   flags_ = other.flags_;
   code_integrity_ = other.code_integrity_;
-  guard_address_taken_iat_entry_table_ = other.guard_address_taken_iat_entry_table_;
-  guard_address_taken_iat_entry_count_ = other.guard_address_taken_iat_entry_count_;
+  guard_address_taken_iat_entry_table_ =
+      other.guard_address_taken_iat_entry_table_;
+  guard_address_taken_iat_entry_count_ =
+      other.guard_address_taken_iat_entry_count_;
   guard_long_jump_target_table_ = other.guard_long_jump_target_table_;
   guard_long_jump_target_count_ = other.guard_long_jump_target_count_;
   dynamic_value_reloc_table_ = other.dynamic_value_reloc_table_;
   hybrid_metadata_pointer_ = other.hybrid_metadata_pointer_;
   guard_rf_failure_routine_ = other.guard_rf_failure_routine_;
-  guard_rf_failure_routine_function_pointer_ = other.guard_rf_failure_routine_function_pointer_;
+  guard_rf_failure_routine_function_pointer_ =
+      other.guard_rf_failure_routine_function_pointer_;
   dynamic_value_reloctable_offset_ = other.dynamic_value_reloctable_offset_;
   dynamic_value_reloctable_section_ = other.dynamic_value_reloctable_section_;
   reserved2_ = other.reserved2_;
-  guardrf_verify_stackpointer_function_pointer_ = other.guardrf_verify_stackpointer_function_pointer_;
+  guardrf_verify_stackpointer_function_pointer_ =
+      other.guardrf_verify_stackpointer_function_pointer_;
   hotpatch_table_offset_ = other.hotpatch_table_offset_;
   reserved3_ = other.reserved3_;
   enclave_configuration_ptr_ = other.enclave_configuration_ptr_;
@@ -831,9 +896,12 @@ LoadConfiguration& LoadConfiguration::operator=(const LoadConfiguration& other)
   guard_eh_continuation_table_ = other.guard_eh_continuation_table_;
   guard_eh_continuation_count_ = other.guard_eh_continuation_count_;
   guard_xfg_check_function_pointer_ = other.guard_xfg_check_function_pointer_;
-  guard_xfg_dispatch_function_pointer_ = other.guard_xfg_dispatch_function_pointer_;
-  guard_xfg_table_dispatch_function_pointer_ = other.guard_xfg_table_dispatch_function_pointer_;
-  cast_guard_os_determined_failure_mode_ = other.cast_guard_os_determined_failure_mode_;
+  guard_xfg_dispatch_function_pointer_ =
+      other.guard_xfg_dispatch_function_pointer_;
+  guard_xfg_table_dispatch_function_pointer_ =
+      other.guard_xfg_table_dispatch_function_pointer_;
+  cast_guard_os_determined_failure_mode_ =
+      other.cast_guard_os_determined_failure_mode_;
   guard_memcpy_function_pointer_ = other.guard_memcpy_function_pointer_;
   uma_function_pointers_ = other.uma_function_pointers_;

@@ -859,8 +927,9 @@ LoadConfiguration& LoadConfiguration::operator=(const LoadConfiguration& other)
     dynamic_relocs_.reserve(other.dynamic_relocs_.size());
     std::transform(other.dynamic_relocs_.begin(), other.dynamic_relocs_.end(),
                    std::back_inserter(dynamic_relocs_),
-      [] (const std::unique_ptr<DynamicRelocation>& R) { return R->clone(); }
-    );
+                   [](const std::unique_ptr<DynamicRelocation>& R) {
+                     return R->clone();
+                   });
   }
   return *this;
 }
@@ -870,200 +939,247 @@ void LoadConfiguration::accept(Visitor& visitor) const {
 }

 std::string LoadConfiguration::to_string() const {
-  using namespace fmt;
   static constexpr auto WIDTH = 65;
   std::ostringstream oss;
-  oss << format("{:{}} 0x{:06x}\n", "Size:", WIDTH, size())
-      << format("{:{}} {}\n", "Timestamp:", WIDTH, timedatestamp())
-      << format("{:{}} {}.{}\n", "version:", WIDTH, major_version(), minor_version())
-      << format("{:{}} {}\n", "GlobalFlags Clear:", WIDTH, global_flags_clear())
-      << format("{:{}} {}\n", "GlobalFlags Set:", WIDTH, global_flags_set())
-      << format("{:{}} {}\n", "Critical Section Default Timeout:", WIDTH, critical_section_default_timeout())
-      << format("{:{}} {}\n", "Decommit Free Block Threshold:", WIDTH, decommit_free_block_threshold())
-      << format("{:{}} {}\n", "Decommit Total Free Threshold:", WIDTH, decommit_total_free_threshold())
-      << format("{:{}} {}\n", "Lock Prefix Table:", WIDTH, lock_prefix_table())
-      << format("{:{}} {}\n", "Maximum Allocation Size:", WIDTH, maximum_allocation_size())
-      << format("{:{}} {}\n", "Virtual Memory Threshold:", WIDTH, virtual_memory_threshold())
-      << format("{:{}} {}\n", "Process Affinity Mask:", WIDTH, process_affinity_mask())
-      << format("{:{}} {}\n", "Process Heap Flags:", WIDTH, process_heap_flags())
-      << format("{:{}} {}\n", "CSD Version:", WIDTH, csd_version())
-      << format("{:{}} {}\n", "Dependent Load Flag:", WIDTH, dependent_load_flags())
-      << format("{:{}} {}\n", "Edit List:", WIDTH, editlist())
-      << format("{:{}} 0x{:016x}\n", "Security Cookie:", WIDTH, security_cookie());
+  oss << fmt::format("{:{}} {:#08x}\n", "Size:", WIDTH, size())
+      << fmt::format("{:{}} {}\n", "Timestamp:", WIDTH, timedatestamp())
+      << fmt::format("{:{}} {}.{}\n", "version:", WIDTH, major_version(),
+                     minor_version())
+      << fmt::format("{:{}} {}\n", "GlobalFlags Clear:", WIDTH,
+                     global_flags_clear())
+      << fmt::format("{:{}} {}\n", "GlobalFlags Set:", WIDTH, global_flags_set())
+      << fmt::format("{:{}} {}\n", "Critical Section Default Timeout:", WIDTH,
+                     critical_section_default_timeout())
+      << fmt::format("{:{}} {}\n", "Decommit Free Block Threshold:", WIDTH,
+                     decommit_free_block_threshold())
+      << fmt::format("{:{}} {}\n", "Decommit Total Free Threshold:", WIDTH,
+                     decommit_total_free_threshold())
+      << fmt::format("{:{}} {}\n", "Lock Prefix Table:", WIDTH,
+                     lock_prefix_table())
+      << fmt::format("{:{}} {}\n", "Maximum Allocation Size:", WIDTH,
+                     maximum_allocation_size())
+      << fmt::format("{:{}} {}\n", "Virtual Memory Threshold:", WIDTH,
+                     virtual_memory_threshold())
+      << fmt::format("{:{}} {}\n", "Process Affinity Mask:", WIDTH,
+                     process_affinity_mask())
+      << fmt::format("{:{}} {}\n", "Process Heap Flags:", WIDTH,
+                     process_heap_flags())
+      << fmt::format("{:{}} {}\n", "CSD Version:", WIDTH, csd_version())
+      << fmt::format("{:{}} {}\n", "Dependent Load Flag:", WIDTH,
+                     dependent_load_flags())
+      << fmt::format("{:{}} {}\n", "Edit List:", WIDTH, editlist())
+      << fmt::format("{:{}} {:#018x}\n", "Security Cookie:", WIDTH,
+                     security_cookie());

   if (auto val = se_handler_table()) {
-    oss << format("{:{}} 0x{:06x}\n", "SEH Table:", WIDTH, *val);
+    oss << fmt::format("{:{}} {:#08x}\n", "SEH Table:", WIDTH, *val);
   }

   if (auto val = se_handler_count()) {
-    oss << format("{:{}} {}\n", "SEH Count:", WIDTH, *val);
+    oss << fmt::format("{:{}} {}\n", "SEH Count:", WIDTH, *val);
   }

   if (auto val = guard_cf_check_function_pointer()) {
-    oss << format("{:{}} 0x{:016x}\n", "Guard CF address of check-function pointer:", WIDTH, *val);
+    oss << fmt::format("{:{}} {:#018x}\n",
+                       "Guard CF address of check-function pointer:", WIDTH, *val);
   }

   if (auto val = guard_cf_dispatch_function_pointer()) {
-    oss << format("{:{}} 0x{:016x}\n", "Guard CF address of dispatch-function pointer:", WIDTH, *val);
+    oss << fmt::format("{:{}} {:#018x}\n",
+                       "Guard CF address of dispatch-function pointer:", WIDTH,
+                       *val);
   }

   if (auto val = guard_cf_function_table()) {
-    oss << format("{:{}} 0x{:016x}\n", "Guard CF function table:", WIDTH, *val);
+    oss << fmt::format("{:{}} {:#018x}\n", "Guard CF function table:", WIDTH,
+                       *val);
   }

   if (auto val = guard_cf_function_count()) {
-    oss << format("{:{}} {}\n", "Guard CF function count:", WIDTH, *val);
+    oss << fmt::format("{:{}} {}\n", "Guard CF function count:", WIDTH, *val);
   }

   if (auto val = guard_flags(); val && *val != 0) {
-    oss << format("{:{}} {}\n", "Guard Flags:", WIDTH,
-                  fmt::join(guard_cf_flags_list(), ","));
+    oss << fmt::format("{:{}} {}\n", "Guard Flags:", WIDTH,
+                       fmt::join(guard_cf_flags_list(), ","));
   }

   if (const CodeIntegrity* CI = code_integrity()) {
-    oss << format("{:{}} {}\n", "Code Integrity Flags:", WIDTH, CI->flags())
-        << format("{:{}} 0x{:08x}\n", "Code Integrity Catalog:", WIDTH, CI->catalog())
-        << format("{:{}} 0x{:08x}\n", "Code Integrity Catalog Offset:", WIDTH, CI->catalog_offset())
-        << format("{:{}} {}\n", "Code Integrity Reserved:", WIDTH, CI->reserved());
+    oss << fmt::format("{:{}} {}\n", "Code Integrity Flags:", WIDTH, CI->flags())
+        << fmt::format("{:{}} {:#010x}\n", "Code Integrity Catalog:", WIDTH,
+                       CI->catalog())
+        << fmt::format("{:{}} {:#010x}\n", "Code Integrity Catalog Offset:", WIDTH,
+                       CI->catalog_offset())
+        << fmt::format("{:{}} {}\n", "Code Integrity Reserved:", WIDTH,
+                       CI->reserved());
   }

   if (auto val = guard_address_taken_iat_entry_table()) {
-    oss << format("{:{}} 0x{:016x}\n", "Guard CF address taken IAT entry table:", WIDTH, *val);
+    oss << fmt::format("{:{}} {:#018x}\n",
+                       "Guard CF address taken IAT entry table:", WIDTH, *val);
   }

   if (auto val = guard_address_taken_iat_entry_count()) {
-    oss << format("{:{}} {}\n", "Guard CF address taken IAT entry count:", WIDTH, *val);
+    oss << fmt::format("{:{}} {}\n",
+                       "Guard CF address taken IAT entry count:", WIDTH, *val);
   }

   if (auto val = guard_long_jump_target_table()) {
-    oss << format("{:{}} 0x{:016x}\n", "Guard CF long jump target table:", WIDTH, *val);
+    oss << fmt::format("{:{}} {:#018x}\n",
+                       "Guard CF long jump target table:", WIDTH, *val);
   }

   if (auto val = guard_long_jump_target_count()) {
-    oss << format("{:{}} {}\n", "Guard CF long jump target count:", WIDTH, *val);
+    oss << fmt::format("{:{}} {}\n", "Guard CF long jump target count:", WIDTH,
+                       *val);
   }

   if (auto val = dynamic_value_reloc_table()) {
-    oss << format("{:{}} 0x{:016x}\n", "Dynamic value relocation table:", WIDTH, *val);
+    oss << fmt::format("{:{}} {:#018x}\n",
+                       "Dynamic value relocation table:", WIDTH, *val);
   }

   if (auto val = hybrid_metadata_pointer()) {
-    oss << format("{:{}} 0x{:016x}\n", "Hybrid metadata pointer:", WIDTH, *val);
+    oss << fmt::format("{:{}} {:#018x}\n", "Hybrid metadata pointer:", WIDTH,
+                       *val);
   }

   if (auto val = guard_rf_failure_routine()) {
-    oss << format("{:{}} 0x{:016x}\n", "Guard RF address of failure-function:", WIDTH, *val);
+    oss << fmt::format("{:{}} {:#018x}\n",
+                       "Guard RF address of failure-function:", WIDTH, *val);
   }

   if (auto val = guard_rf_failure_routine_function_pointer()) {
-    oss << format("{:{}} 0x{:016x}\n", "Guard RF address of failure-function pointer:", WIDTH, *val);
+    oss << fmt::format("{:{}} {:#018x}\n",
+                       "Guard RF address of failure-function pointer:", WIDTH,
+                       *val);
   }

   if (auto val = dynamic_value_reloctable_offset()) {
-    oss << format("{:{}} 0x{:016x}\n", "Dynamic value relocation table offset:", WIDTH, *val);
+    oss << fmt::format("{:{}} {:#018x}\n",
+                       "Dynamic value relocation table offset:", WIDTH, *val);
   }

   if (auto val = dynamic_value_reloctable_section()) {
-    oss << format("{:{}} {}\n", "Dynamic value relocation table section:", WIDTH, *val);
+    oss << fmt::format("{:{}} {}\n",
+                       "Dynamic value relocation table section:", WIDTH, *val);
   }

   if (auto val = reserved2()) {
-    oss << format("{:{}} {}\n", "Reserved2:", WIDTH, *val);
+    oss << fmt::format("{:{}} {}\n", "Reserved2:", WIDTH, *val);
   }

   if (auto val = guard_rf_verify_stackpointer_function_pointer()) {
-    oss << format("{:{}} 0x{:016x}\n", "Guard RF address of stack pointer verification function pointer:", WIDTH, *val);
+    oss << fmt::format(
+        "{:{}} {:#018x}\n",
+        "Guard RF address of stack pointer verification function pointer:", WIDTH,
+        *val
+    );
   }

   if (auto val = hotpatch_table_offset()) {
-    oss << format("{:{}} 0x{:08}\n", "Hot patching table offset:", WIDTH, *val);
+    oss << fmt::format("{:{}} {:#010x}\n", "Hot patching table offset:", WIDTH,
+                       *val);
   }

   if (auto val = reserved3()) {
-    oss << format("{:{}} {}\n", "Reserved3:", WIDTH, *val);
+    oss << fmt::format("{:{}} {}\n", "Reserved3:", WIDTH, *val);
   }

   if (auto val = enclave_configuration_ptr()) {
-    oss << format("{:{}} 0x{:016x}\n", "Enclave configuration pointer", WIDTH, *val);
+    oss << fmt::format("{:{}} {:#018x}\n", "Enclave configuration pointer", WIDTH,
+                       *val);
   }

   if (auto val = volatile_metadata_pointer()) {
-    oss << format("{:{}} 0x{:016x}\n", "Volatile metadata pointer", WIDTH, *val);
+    oss << fmt::format("{:{}} {:#018x}\n", "Volatile metadata pointer", WIDTH,
+                       *val);
   }

   if (auto val = guard_eh_continuation_table()) {
-    oss << format("{:{}} 0x{:016x}\n", "Guard EH continuation table", WIDTH, *val);
+    oss << fmt::format("{:{}} {:#018x}\n", "Guard EH continuation table", WIDTH,
+                       *val);
   }

   if (auto val = guard_eh_continuation_count()) {
-    oss << format("{:{}} {}\n", "Guard EH continuation count", WIDTH, *val);
+    oss << fmt::format("{:{}} {}\n", "Guard EH continuation count", WIDTH, *val);
   }

   if (auto val = guard_xfg_check_function_pointer()) {
-    oss << format("{:{}} 0x{:016x}\n", "Guard XFG address of check-function pointer", WIDTH, *val);
+    oss << fmt::format("{:{}} {:#018x}\n",
+                       "Guard XFG address of check-function pointer", WIDTH, *val);
   }

   if (auto val = guard_xfg_dispatch_function_pointer()) {
-    oss << format("{:{}} 0x{:016x}\n", "Guard XFG address of dispatch-function pointer", WIDTH, *val);
+    oss << fmt::format("{:{}} {:#018x}\n",
+                       "Guard XFG address of dispatch-function pointer", WIDTH,
+                       *val);
   }

   if (auto val = guard_xfg_table_dispatch_function_pointer()) {
-    oss << format("{:{}} 0x{:016x}\n", "Guard XFG address of dispatch-table-function pointer", WIDTH, *val);
+    oss << fmt::format("{:{}} {:#018x}\n",
+                       "Guard XFG address of dispatch-table-function pointer",
+                       WIDTH, *val);
   }

   if (auto val = cast_guard_os_determined_failure_mode()) {
-    oss << format("{:{}} 0x{:016x}\n", "CastGuard OS determined failure mode", WIDTH, *val);
+    oss << fmt::format("{:{}} {:#018x}\n", "CastGuard OS determined failure mode",
+                       WIDTH, *val);
   }

   if (auto val = guard_memcpy_function_pointer()) {
-    oss << format("{:{}} 0x{:016x}\n", "Guard memcpy function pointer", WIDTH, *val);
+    oss << fmt::format("{:{}} {:#018x}\n", "Guard memcpy function pointer", WIDTH,
+                       *val);
   }

   if (auto val = uma_function_pointers()) {
-    oss << format("{:{}} 0x{:016x}\n", "UMA function pointers", WIDTH, *val);
+    oss << fmt::format("{:{}} {:#018x}\n", "UMA function pointers", WIDTH, *val);
   }

   if (const CHPEMetadata* metadata = chpe_metadata()) {
-    oss << "  CHPE Metadata:\n"
-        << indent(metadata->to_string(), 4);
+    oss << "  CHPE Metadata:\n" << indent(metadata->to_string(), 4);
   }

   if (!seh_rva_.empty()) {
-    oss << format("  SEH Table ({}) {{\n", seh_rva_.size()) ;
+    oss << fmt::format("  SEH Table ({}) {{\n", seh_rva_.size());
     for (uint32_t RVA : seh_rva_) {
-      oss << format("    0x{:08x}\n", RVA);
+      oss << fmt::format("    {:#010x}\n", RVA);
     }
     oss << "}\n";
   }

   if (!guard_cf_functions_.empty()) {
-    oss << format("  Guard CF Function ({}) {{\n", guard_cf_functions_.size()) ;
+    oss << fmt::format("  Guard CF Function ({}) {{\n",
+                       guard_cf_functions_.size());
     for (const guard_function_t& F : guard_cf_functions_) {
-      oss << format("    0x{:08x} ({})\n", F.rva, F.extra);
+      oss << fmt::format("    {:#010x} ({})\n", F.rva, F.extra);
     }
     oss << "}\n";
   }

   if (!guard_address_taken_iat_entries_.empty()) {
-    oss << format("  Guard CF Address Taken IAT ({}) {{\n", guard_address_taken_iat_entries_.size()) ;
+    oss << fmt::format("  Guard CF Address Taken IAT ({}) {{\n",
+                       guard_address_taken_iat_entries_.size());
     for (const guard_function_t& F : guard_address_taken_iat_entries_) {
-      oss << format("    0x{:08x} ({})\n", F.rva, F.extra);
+      oss << fmt::format("    {:#010x} ({})\n", F.rva, F.extra);
     }
     oss << "}\n";
   }

   if (!guard_long_jump_targets_.empty()) {
-    oss << format("  Guard CF Long Jump Target ({}) {{\n", guard_long_jump_targets_.size()) ;
+    oss << fmt::format("  Guard CF Long Jump Target ({}) {{\n",
+                       guard_long_jump_targets_.size());
     for (const guard_function_t& F : guard_long_jump_targets_) {
-      oss << format("    0x{:08x} ({})\n", F.rva, F.extra);
+      oss << fmt::format("    {:#010x} ({})\n", F.rva, F.extra);
     }
     oss << "}\n";
   }

   if (!guard_eh_continuation_functions_.empty()) {
-    oss << format("  Guard EH Continuation ({}) {{\n", guard_eh_continuation_functions_.size()) ;
+    oss << fmt::format("  Guard EH Continuation ({}) {{\n",
+                       guard_eh_continuation_functions_.size());
     for (const guard_function_t& F : guard_eh_continuation_functions_) {
-      oss << format("    0x{:08x} ({})\n", F.rva, F.extra);
+      oss << fmt::format("    {:#010x} ({})\n", F.rva, F.extra);
     }
     oss << "}\n";
   }
@@ -1073,41 +1189,39 @@ std::string LoadConfiguration::to_string() const {
   }

   if (const EnclaveConfiguration* enclave = enclave_config()) {
-    oss << "  Enclave Configuration:\n"
-        << indent(enclave->to_string(), 4);
+    oss << "  Enclave Configuration:\n" << indent(enclave->to_string(), 4);
   }

   if (const VolatileMetadata* metadata = volatile_metadata()) {
-    oss << "  Volatile Metadata:\n"
-        << indent(metadata->to_string(), 4);
+    oss << "  Volatile Metadata:\n" << indent(metadata->to_string(), 4);
   }

   return oss.str();
 }

 const char* to_string(LoadConfiguration::IMAGE_GUARD e) {
-  #define ENTRY(X) std::pair(LoadConfiguration::IMAGE_GUARD::X, #X)
-  STRING_MAP enums2str {
-    ENTRY(NONE),
-    ENTRY(CF_INSTRUMENTED),
-    ENTRY(CFW_INSTRUMENTED),
-    ENTRY(CF_FUNCTION_TABLE_PRESENT),
-    ENTRY(SECURITY_COOKIE_UNUSED),
-    ENTRY(PROTECT_DELAYLOAD_IAT),
-    ENTRY(DELAYLOAD_IAT_IN_ITS_OWN_SECTION),
-    ENTRY(CF_EXPORT_SUPPRESSION_INFO_PRESENT),
-    ENTRY(CF_ENABLE_EXPORT_SUPPRESSION),
-    ENTRY(CF_LONGJUMP_TABLE_PRESENT),
-    ENTRY(RF_INSTRUMENTED),
-    ENTRY(RF_ENABLE),
-    ENTRY(RF_STRICT),
-    ENTRY(RETPOLINE_PRESENT),
-    ENTRY(EH_CONTINUATION_TABLE_PRESENT),
-    ENTRY(XFG_ENABLED),
-    ENTRY(CASTGUARD_PRESENT),
-    ENTRY(MEMCPY_PRESENT),
+#define ENTRY(X) std::pair(LoadConfiguration::IMAGE_GUARD::X, #X)
+  STRING_MAP enums2str{
+      ENTRY(NONE),
+      ENTRY(CF_INSTRUMENTED),
+      ENTRY(CFW_INSTRUMENTED),
+      ENTRY(CF_FUNCTION_TABLE_PRESENT),
+      ENTRY(SECURITY_COOKIE_UNUSED),
+      ENTRY(PROTECT_DELAYLOAD_IAT),
+      ENTRY(DELAYLOAD_IAT_IN_ITS_OWN_SECTION),
+      ENTRY(CF_EXPORT_SUPPRESSION_INFO_PRESENT),
+      ENTRY(CF_ENABLE_EXPORT_SUPPRESSION),
+      ENTRY(CF_LONGJUMP_TABLE_PRESENT),
+      ENTRY(RF_INSTRUMENTED),
+      ENTRY(RF_ENABLE),
+      ENTRY(RF_STRICT),
+      ENTRY(RETPOLINE_PRESENT),
+      ENTRY(EH_CONTINUATION_TABLE_PRESENT),
+      ENTRY(XFG_ENABLED),
+      ENTRY(CASTGUARD_PRESENT),
+      ENTRY(MEMCPY_PRESENT),
   };
-  #undef ENTRY
+#undef ENTRY

   if (auto it = enums2str.find(e); it != enums2str.end()) {
     return it->second;
@@ -1116,30 +1230,28 @@ const char* to_string(LoadConfiguration::IMAGE_GUARD e) {
 }

 std::vector<LoadConfiguration::IMAGE_GUARD>
-  LoadConfiguration::guard_cf_flags_list() const
-{
+    LoadConfiguration::guard_cf_flags_list() const {
   std::vector<IMAGE_GUARD> flags_list;
   flags_list.reserve(3);
   std::copy_if(IMAGE_GUARD_LIST.begin(), IMAGE_GUARD_LIST.end(),
                std::back_inserter(flags_list),
-               [this] (IMAGE_GUARD f) { return has(f); });
+               [this](IMAGE_GUARD f) { return has(f); });

   return flags_list;
-
 }

 template std::unique_ptr<LoadConfiguration>
-  LoadConfiguration::parse<details::PE32>(Parser& ctx, BinaryStream& stream);
+    LoadConfiguration::parse<details::PE32>(Parser& ctx, BinaryStream& stream);

 template std::unique_ptr<LoadConfiguration>
-  LoadConfiguration::parse<details::PE64>(Parser& ctx, BinaryStream& stream);
+    LoadConfiguration::parse<details::PE64>(Parser& ctx, BinaryStream& stream);

 template ok_error_t LoadConfiguration::parse_enclave_config<details::PE32>(
-  Parser& ctx, LoadConfiguration& config);
+    Parser& ctx, LoadConfiguration& config
+);

 template ok_error_t LoadConfiguration::parse_enclave_config<details::PE64>(
-  Parser& ctx, LoadConfiguration& config);
-
-} // namespace PE
-} // namespace LIEF
+    Parser& ctx, LoadConfiguration& config
+);

+} // namespace LIEF::PE
diff --git a/deps/LIEF/src/PE/LoadConfigurations/VolatileMetadata.cpp b/deps/LIEF/src/PE/LoadConfigurations/VolatileMetadata.cpp
index a5767316a63..1d7cfe8f9cb 100644
--- a/deps/LIEF/src/PE/LoadConfigurations/VolatileMetadata.cpp
+++ b/deps/LIEF/src/PE/LoadConfigurations/VolatileMetadata.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -19,35 +19,31 @@
 #include "LIEF/PE/LoadConfigurations/VolatileMetadata.hpp"
 #include "LIEF/BinaryStream/BinaryStream.hpp"

-#include "PE/Structures.hpp"
-
 #include "logging.hpp"
-#include "internal_utils.hpp"

 namespace LIEF::PE {

 std::string VolatileMetadata::to_string() const {
-  using namespace fmt;
   static constexpr auto WIDTH = 30;
   std::ostringstream os;
-  os << format("{:{}}: 0x{:08x}\n", "Size", WIDTH, size())
-     << format("{:{}}: {} (0x{:04x})\n", "Min version", WIDTH,
-               min_version() & 0x7FFF, min_version())
-     << format("{:{}}: {} (0x{:04x})\n", "Max version", WIDTH,
-               max_version() & 0x7FFF, max_version())
-     << format("{:{}}: 0x{:08x}\n", "Volatile access table RVA", WIDTH,
-               access_table_rva())
-     << format("{:{}}: {}\n", "Volatile access table size", WIDTH,
-               access_table_size())
-     << format("{:{}}: 0x{:08x}\n", "Volatile range info table RVA", WIDTH,
-               info_range_rva())
-     << format("{:{}}: {}\n", "Volatile range info table size", WIDTH,
-               info_ranges_size());
+  os << fmt::format("{:{}}: {:#010x}\n", "Size", WIDTH, size())
+     << fmt::format("{:{}}: {} ({:#06x})\n", "Min version", WIDTH,
+                    min_version() & 0x7FFF, min_version())
+     << fmt::format("{:{}}: {} ({:#06x})\n", "Max version", WIDTH,
+                    max_version() & 0x7FFF, max_version())
+     << fmt::format("{:{}}: {:#010x}\n", "Volatile access table RVA", WIDTH,
+                    access_table_rva())
+     << fmt::format("{:{}}: {}\n", "Volatile access table size", WIDTH,
+                    access_table_size())
+     << fmt::format("{:{}}: {:#010x}\n", "Volatile range info table RVA", WIDTH,
+                    info_range_rva())
+     << fmt::format("{:{}}: {}\n", "Volatile range info table size", WIDTH,
+                    info_ranges_size());

   if (const auto& rva_table = access_table(); !rva_table.empty()) {
     os << "\nVolatile Access RVA Table: {\n";
     for (uint32_t rva : rva_table) {
-      os << format("  0x{:08x}\n", rva);
+      os << fmt::format("  {:#010x}\n", rva);
     }
     os << "}\n";
   }
@@ -55,8 +51,8 @@ std::string VolatileMetadata::to_string() const {
   if (auto ranges = info_ranges(); !ranges.empty()) {
     os << "\nVolatile Info Range Table: {\n";
     for (const range_t& range : ranges) {
-      os << format("  [0x{:08x}, 0x{:08x}] ({} bytes)\n", range.start,
-                   range.end(), range.size);
+      os << fmt::format("  [{:#010x}, {:#010x}] ({} bytes)\n", range.start,
+                        range.end(), range.size);
     }
     os << "}\n";
   }
@@ -64,9 +60,8 @@ std::string VolatileMetadata::to_string() const {
   return os.str();
 }

-std::unique_ptr<VolatileMetadata>
-    VolatileMetadata::parse(Parser& ctx, BinaryStream& stream)
-{
+std::unique_ptr<VolatileMetadata> VolatileMetadata::parse(Parser& ctx,
+                                                          BinaryStream& stream) {
   auto size = stream.read<uint32_t>();
   if (!size) {
     LIEF_DEBUG("{}:{}", __FUNCTION__, __LINE__);
@@ -111,12 +106,11 @@ std::unique_ptr<VolatileMetadata>

   auto meta = std::make_unique<VolatileMetadata>();
   (*meta)
-    .size(*size)
-    .min_version(*min_version)
-    .max_version(*max_version)
-    .access_table_rva(*access_table_rva)
-    .info_range_rva(*info_range_rva)
-  ;
+      .size(*size)
+      .min_version(*min_version)
+      .max_version(*max_version)
+      .access_table_rva(*access_table_rva)
+      .info_range_rva(*info_range_rva);

   if (*access_table_rva > 0 && *access_table_sz > 0) {
     uint32_t offset = ctx.bin().rva_to_offset(*access_table_rva);
diff --git a/deps/LIEF/src/PE/OptionalHeader.cpp b/deps/LIEF/src/PE/OptionalHeader.cpp
index 6d6cd5f0062..20d3bd73617 100644
--- a/deps/LIEF/src/PE/OptionalHeader.cpp
+++ b/deps/LIEF/src/PE/OptionalHeader.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -25,24 +25,24 @@
 #include <spdlog/fmt/fmt.h>
 #include <spdlog/fmt/ranges.h>

-namespace LIEF {
-namespace PE {
+
+namespace LIEF::PE {

 static constexpr std::array DLL_CHARACTERISTICS_LIST = {
-  OptionalHeader::DLL_CHARACTERISTICS::HIGH_ENTROPY_VA,
-  OptionalHeader::DLL_CHARACTERISTICS::DYNAMIC_BASE,
-  OptionalHeader::DLL_CHARACTERISTICS::FORCE_INTEGRITY,
-  OptionalHeader::DLL_CHARACTERISTICS::NX_COMPAT,
-  OptionalHeader::DLL_CHARACTERISTICS::NO_ISOLATION,
-  OptionalHeader::DLL_CHARACTERISTICS::NO_SEH,
-  OptionalHeader::DLL_CHARACTERISTICS::NO_BIND,
-  OptionalHeader::DLL_CHARACTERISTICS::APPCONTAINER,
-  OptionalHeader::DLL_CHARACTERISTICS::WDM_DRIVER,
-  OptionalHeader::DLL_CHARACTERISTICS::GUARD_CF,
-  OptionalHeader::DLL_CHARACTERISTICS::TERMINAL_SERVER_AWARE,
+    OptionalHeader::DLL_CHARACTERISTICS::HIGH_ENTROPY_VA,
+    OptionalHeader::DLL_CHARACTERISTICS::DYNAMIC_BASE,
+    OptionalHeader::DLL_CHARACTERISTICS::FORCE_INTEGRITY,
+    OptionalHeader::DLL_CHARACTERISTICS::NX_COMPAT,
+    OptionalHeader::DLL_CHARACTERISTICS::NO_ISOLATION,
+    OptionalHeader::DLL_CHARACTERISTICS::NO_SEH,
+    OptionalHeader::DLL_CHARACTERISTICS::NO_BIND,
+    OptionalHeader::DLL_CHARACTERISTICS::APPCONTAINER,
+    OptionalHeader::DLL_CHARACTERISTICS::WDM_DRIVER,
+    OptionalHeader::DLL_CHARACTERISTICS::GUARD_CF,
+    OptionalHeader::DLL_CHARACTERISTICS::TERMINAL_SERVER_AWARE,
 };

-OptionalHeader::OptionalHeader(const details::pe32_optional_header& header):
+OptionalHeader::OptionalHeader(const details::pe32_optional_header& header) :
   magic_(static_cast<PE_TYPE>(header.Magic)),
   major_linker_version_(header.MajorLinkerVersion),
   minor_linker_version_(header.MinorLinkerVersion),
@@ -72,10 +72,9 @@ OptionalHeader::OptionalHeader(const details::pe32_optional_header& header):
   sizeof_heap_reserve_(header.SizeOfHeapReserve),
   sizeof_heap_commit_(header.SizeOfHeapCommit),
   loader_flags_(header.LoaderFlags),
-  nb_rva_size_(header.NumberOfRvaAndSize)
-{}
+  nb_rva_size_(header.NumberOfRvaAndSize) {}

-OptionalHeader::OptionalHeader(const details::pe64_optional_header& header):
+OptionalHeader::OptionalHeader(const details::pe64_optional_header& header) :
   magic_(static_cast<PE_TYPE>(header.Magic)),
   major_linker_version_(header.MajorLinkerVersion),
   minor_linker_version_(header.MinorLinkerVersion),
@@ -84,7 +83,7 @@ OptionalHeader::OptionalHeader(const details::pe64_optional_header& header):
   sizeof_uninitialized_data_(header.SizeOfUninitializedData),
   entrypoint_(header.AddressOfEntryPoint),
   baseof_code_(header.BaseOfCode),
-  baseof_data_(0),
+
   imagebase_(header.ImageBase),
   section_align_(header.SectionAlignment),
   file_align_(header.FileAlignment),
@@ -105,8 +104,7 @@ OptionalHeader::OptionalHeader(const details::pe64_optional_header& header):
   sizeof_heap_reserve_(header.SizeOfHeapReserve),
   sizeof_heap_commit_(header.SizeOfHeapCommit),
   loader_flags_(header.LoaderFlags),
-  nb_rva_size_(header.NumberOfRvaAndSize)
-{}
+  nb_rva_size_(header.NumberOfRvaAndSize) {}


 OptionalHeader OptionalHeader::create(PE_TYPE type) {
@@ -129,12 +127,13 @@ OptionalHeader OptionalHeader::create(PE_TYPE type) {
   return header;
 }

-std::vector<OptionalHeader::DLL_CHARACTERISTICS> OptionalHeader::dll_characteristics_list() const {
+std::vector<OptionalHeader::DLL_CHARACTERISTICS>
+    OptionalHeader::dll_characteristics_list() const {
   std::vector<DLL_CHARACTERISTICS> characteristics;
   characteristics.reserve(3);
   std::copy_if(DLL_CHARACTERISTICS_LIST.begin(), DLL_CHARACTERISTICS_LIST.end(),
                std::back_inserter(characteristics),
-               [this] (DLL_CHARACTERISTICS f) { return has(f); });
+               [this](DLL_CHARACTERISTICS f) { return has(f); });

   return characteristics;
 }
@@ -144,79 +143,103 @@ void OptionalHeader::accept(LIEF::Visitor& visitor) const {
 }

 std::ostream& operator<<(std::ostream& os, const OptionalHeader& entry) {
-  const std::vector<OptionalHeader::DLL_CHARACTERISTICS> list = entry.dll_characteristics_list();
+  const std::vector<OptionalHeader::DLL_CHARACTERISTICS> list =
+      entry.dll_characteristics_list();
   std::vector<std::string> list_str;
   list_str.reserve(list.size());
   std::transform(list.begin(), list.end(), std::back_inserter(list_str),
-                 [] (const auto c) { return to_string(c); });
-
-  os << fmt::format("Magic:                      0x{:04x} ({})\n", (uint32_t)entry.magic(), to_string(entry.magic()))
-     << fmt::format("Linker version:             {}.{}\n", entry.major_linker_version(), entry.minor_linker_version())
-     << fmt::format("Size of code:               0x{:x}\n", entry.sizeof_code())
-     << fmt::format("Size of initialized data:   0x{:x}\n", entry.sizeof_initialized_data())
-     << fmt::format("Size of uninitialized data: 0x{:x}\n", entry.sizeof_uninitialized_data())
-     << fmt::format("Entrypoint:                 0x{:x}\n", entry.addressof_entrypoint())
-     << fmt::format("Base of code:               0x{:x}\n", entry.baseof_code())
-     << fmt::format("Base of data:               0x{:x}\n", entry.baseof_data())
-     << fmt::format("Imagebase:                  0x{:x}\n", entry.imagebase())
-     << fmt::format("Section alignment:          0x{:x}\n", entry.section_alignment())
-     << fmt::format("File alignment:             0x{:x}\n", entry.file_alignment())
-     << fmt::format("Operating system version:   {}.{}\n", entry.major_operating_system_version(), entry.minor_operating_system_version())
-     << fmt::format("Image version:              {}.{}\n", entry.major_image_version(), entry.minor_image_version())
-     << fmt::format("Subsystem version:          {}.{}\n", entry.major_subsystem_version(), entry.minor_subsystem_version())
-     << fmt::format("Win32 Version Value:        0x{:x}\n", entry.win32_version_value())
-     << fmt::format("Size of image:              0x{:x}\n", entry.sizeof_image())
-     << fmt::format("Size of headers:            0x{:x}\n", entry.sizeof_headers())
-     << fmt::format("Checksum:                   0x{:x}\n", entry.checksum())
-     << fmt::format("Subsystem:                  {}\n", to_string(entry.subsystem()))
+                 [](const auto c) { return to_string(c); });
+
+  os << fmt::format("Magic:                      {:#06x} ({})\n",
+                    (uint32_t)entry.magic(), to_string(entry.magic()))
+     << fmt::format("Linker version:             {}.{}\n",
+                    entry.major_linker_version(), entry.minor_linker_version())
+     << fmt::format("Size of code:               {:#x}\n", entry.sizeof_code())
+     << fmt::format("Size of initialized data:   {:#x}\n",
+                    entry.sizeof_initialized_data())
+     << fmt::format("Size of uninitialized data: {:#x}\n",
+                    entry.sizeof_uninitialized_data())
+     << fmt::format("Entrypoint:                 {:#x}\n",
+                    entry.addressof_entrypoint())
+     << fmt::format("Base of code:               {:#x}\n", entry.baseof_code())
+     << fmt::format("Base of data:               {:#x}\n", entry.baseof_data())
+     << fmt::format("Imagebase:                  {:#x}\n", entry.imagebase())
+     << fmt::format("Section alignment:          {:#x}\n",
+                    entry.section_alignment())
+     << fmt::format("File alignment:             {:#x}\n", entry.file_alignment())
+     << fmt::format("Operating system version:   {}.{}\n",
+                    entry.major_operating_system_version(),
+                    entry.minor_operating_system_version())
+     << fmt::format("Image version:              {}.{}\n",
+                    entry.major_image_version(), entry.minor_image_version())
+     << fmt::format("Subsystem version:          {}.{}\n",
+                    entry.major_subsystem_version(),
+                    entry.minor_subsystem_version())
+     << fmt::format("Win32 Version Value:        {:#x}\n",
+                    entry.win32_version_value())
+     << fmt::format("Size of image:              {:#x}\n", entry.sizeof_image())
+     << fmt::format("Size of headers:            {:#x}\n", entry.sizeof_headers())
+     << fmt::format("Checksum:                   {:#x}\n", entry.checksum())
+     << fmt::format("Subsystem:                  {}\n",
+                    to_string(entry.subsystem()))
      << fmt::format("Dll characteristics:        {}\n", fmt::join(list_str, ", "))
-     << fmt::format("Size of stack reserve:      0x{:x}\n", entry.sizeof_stack_reserve())
-     << fmt::format("Size of stack commit:       0x{:x}\n", entry.sizeof_stack_commit())
-     << fmt::format("Size of heap reserve:       0x{:x}\n", entry.sizeof_heap_reserve())
-     << fmt::format("Size of heap commit:        0x{:x}\n", entry.sizeof_heap_commit())
-     << fmt::format("Loader flags:               0x{:x}\n", entry.loader_flags())
-     << fmt::format("Number of directories:      {}\n", entry.numberof_rva_and_size());
+     << fmt::format("Size of stack reserve:      {:#x}\n",
+                    entry.sizeof_stack_reserve())
+     << fmt::format("Size of stack commit:       {:#x}\n",
+                    entry.sizeof_stack_commit())
+     << fmt::format("Size of heap reserve:       {:#x}\n",
+                    entry.sizeof_heap_reserve())
+     << fmt::format("Size of heap commit:        {:#x}\n",
+                    entry.sizeof_heap_commit())
+     << fmt::format("Loader flags:               {:#x}\n", entry.loader_flags())
+     << fmt::format("Number of directories:      {}\n",
+                    entry.numberof_rva_and_size());
   return os;
 }

 const char* to_string(OptionalHeader::DLL_CHARACTERISTICS e) {
-  CONST_MAP(OptionalHeader::DLL_CHARACTERISTICS, const char*, 11) enumStrings {
-    { OptionalHeader::DLL_CHARACTERISTICS::HIGH_ENTROPY_VA,       "HIGH_ENTROPY_VA" },
-    { OptionalHeader::DLL_CHARACTERISTICS::DYNAMIC_BASE,          "DYNAMIC_BASE" },
-    { OptionalHeader::DLL_CHARACTERISTICS::FORCE_INTEGRITY,       "FORCE_INTEGRITY" },
-    { OptionalHeader::DLL_CHARACTERISTICS::NX_COMPAT,             "NX_COMPAT" },
-    { OptionalHeader::DLL_CHARACTERISTICS::NO_ISOLATION,          "NO_ISOLATION" },
-    { OptionalHeader::DLL_CHARACTERISTICS::NO_SEH,                "NO_SEH" },
-    { OptionalHeader::DLL_CHARACTERISTICS::NO_BIND,               "NO_BIND" },
-    { OptionalHeader::DLL_CHARACTERISTICS::APPCONTAINER,          "APPCONTAINER" },
-    { OptionalHeader::DLL_CHARACTERISTICS::WDM_DRIVER,            "WDM_DRIVER" },
-    { OptionalHeader::DLL_CHARACTERISTICS::GUARD_CF,              "GUARD_CF" },
-    { OptionalHeader::DLL_CHARACTERISTICS::TERMINAL_SERVER_AWARE, "TERMINAL_SERVER_AWARE" },
+  CONST_MAP(OptionalHeader::DLL_CHARACTERISTICS, const char*, 11)
+  enumStrings{
+      {OptionalHeader::DLL_CHARACTERISTICS::HIGH_ENTROPY_VA, "HIGH_ENTROPY_VA"},
+      {OptionalHeader::DLL_CHARACTERISTICS::DYNAMIC_BASE, "DYNAMIC_BASE"},
+      {OptionalHeader::DLL_CHARACTERISTICS::FORCE_INTEGRITY, "FORCE_INTEGRITY"},
+      {OptionalHeader::DLL_CHARACTERISTICS::NX_COMPAT, "NX_COMPAT"},
+      {OptionalHeader::DLL_CHARACTERISTICS::NO_ISOLATION, "NO_ISOLATION"},
+      {OptionalHeader::DLL_CHARACTERISTICS::NO_SEH, "NO_SEH"},
+      {OptionalHeader::DLL_CHARACTERISTICS::NO_BIND, "NO_BIND"},
+      {OptionalHeader::DLL_CHARACTERISTICS::APPCONTAINER, "APPCONTAINER"},
+      {OptionalHeader::DLL_CHARACTERISTICS::WDM_DRIVER, "WDM_DRIVER"},
+      {OptionalHeader::DLL_CHARACTERISTICS::GUARD_CF, "GUARD_CF"},
+      {OptionalHeader::DLL_CHARACTERISTICS::TERMINAL_SERVER_AWARE,
+       "TERMINAL_SERVER_AWARE"},
   };
   const auto it = enumStrings.find(e);
   return it == enumStrings.end() ? "UNKNOWN" : it->second;
 }

 const char* to_string(OptionalHeader::SUBSYSTEM e) {
-  CONST_MAP(OptionalHeader::SUBSYSTEM, const char*, 14) enumStrings {
-    { OptionalHeader::SUBSYSTEM::UNKNOWN,                  "UNKNOWN" },
-    { OptionalHeader::SUBSYSTEM::NATIVE,                   "NATIVE" },
-    { OptionalHeader::SUBSYSTEM::WINDOWS_GUI,              "WINDOWS_GUI" },
-    { OptionalHeader::SUBSYSTEM::WINDOWS_CUI,              "WINDOWS_CUI" },
-    { OptionalHeader::SUBSYSTEM::OS2_CUI,                  "OS2_CUI" },
-    { OptionalHeader::SUBSYSTEM::POSIX_CUI,                "POSIX_CUI" },
-    { OptionalHeader::SUBSYSTEM::NATIVE_WINDOWS,           "NATIVE_WINDOWS" },
-    { OptionalHeader::SUBSYSTEM::WINDOWS_CE_GUI,           "WINDOWS_CE_GUI" },
-    { OptionalHeader::SUBSYSTEM::EFI_APPLICATION,          "EFI_APPLICATION" },
-    { OptionalHeader::SUBSYSTEM::EFI_BOOT_SERVICE_DRIVER,  "EFI_BOOT_SERVICE_DRIVER" },
-    { OptionalHeader::SUBSYSTEM::EFI_RUNTIME_DRIVER,       "EFI_RUNTIME_DRIVER" },
-    { OptionalHeader::SUBSYSTEM::EFI_ROM,                  "EFI_ROM" },
-    { OptionalHeader::SUBSYSTEM::XBOX,                     "XBOX" },
-    { OptionalHeader::SUBSYSTEM::WINDOWS_BOOT_APPLICATION, "WINDOWS_BOOT_APPLICATION" },
+  CONST_MAP(OptionalHeader::SUBSYSTEM, const char*, 15)
+  enumStrings{
+      {OptionalHeader::SUBSYSTEM::UNKNOWN, "UNKNOWN"},
+      {OptionalHeader::SUBSYSTEM::NATIVE, "NATIVE"},
+      {OptionalHeader::SUBSYSTEM::WINDOWS_GUI, "WINDOWS_GUI"},
+      {OptionalHeader::SUBSYSTEM::WINDOWS_CUI, "WINDOWS_CUI"},
+      {OptionalHeader::SUBSYSTEM::OS2_CUI, "OS2_CUI"},
+      {OptionalHeader::SUBSYSTEM::POSIX_CUI, "POSIX_CUI"},
+      {OptionalHeader::SUBSYSTEM::NATIVE_WINDOWS, "NATIVE_WINDOWS"},
+      {OptionalHeader::SUBSYSTEM::WINDOWS_CE_GUI, "WINDOWS_CE_GUI"},
+      {OptionalHeader::SUBSYSTEM::EFI_APPLICATION, "EFI_APPLICATION"},
+      {OptionalHeader::SUBSYSTEM::EFI_BOOT_SERVICE_DRIVER,
+       "EFI_BOOT_SERVICE_DRIVER"},
+      {OptionalHeader::SUBSYSTEM::EFI_RUNTIME_DRIVER, "EFI_RUNTIME_DRIVER"},
+      {OptionalHeader::SUBSYSTEM::EFI_ROM, "EFI_ROM"},
+      {OptionalHeader::SUBSYSTEM::XBOX, "XBOX"},
+      {OptionalHeader::SUBSYSTEM::WINDOWS_BOOT_APPLICATION,
+       "WINDOWS_BOOT_APPLICATION"},
+      {OptionalHeader::SUBSYSTEM::XBOX_CODE_CATALOG, "XBOX_CODE_CATALOG"},
   };
   const auto it = enumStrings.find(e);
   return it == enumStrings.end() ? "UNKNOWN" : it->second;
 }

 }
-}
diff --git a/deps/LIEF/src/PE/Parser.cpp b/deps/LIEF/src/PE/Parser.cpp
index 0b230704165..69fbb489e5b 100644
--- a/deps/LIEF/src/PE/Parser.cpp
+++ b/deps/LIEF/src/PE/Parser.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -14,11 +14,14 @@
  * limitations under the License.
  */
 #include <iterator>
+#include <memory>
 #include <string>
 #include <numeric>
 #include "logging.hpp"

 #include "LIEF/BinaryStream/SpanStream.hpp"
+#include "LIEF/BinaryStream/MemoryStream.hpp"
+#include "LIEF/BinaryStream/DumpStream.hpp"

 #include "LIEF/BinaryStream/VectorStream.hpp"
 #include "LIEF/PE/signature/Signature.hpp"
@@ -55,62 +58,60 @@
 #include "overflow_check.hpp"
 #include "Parser.tcc"

-namespace LIEF {
-namespace PE {
+
+namespace LIEF::PE {

 Parser::~Parser() = default;
 Parser::Parser() = default;

 Parser::Parser(const std::string& file) :
-  LIEF::Parser{file}
-{
+  LIEF::Parser{file} {
   if (auto stream = VectorStream::from_file(file)) {
     stream_ = std::make_unique<VectorStream>(std::move(*stream));
   } else {
-    LIEF_ERR("Can't create the stream");
+    LIEF_ERR("Failed to create stream");
   }
 }

 Parser::Parser(std::vector<uint8_t> data) :
-  Parser{std::make_unique<VectorStream>(std::move(data))}
-{}
+  Parser{std::make_unique<VectorStream>(std::move(data))} {}

 Parser::Parser(std::unique_ptr<BinaryStream> stream) :
-  stream_{std::move(stream)}
-{}
+  stream_{std::move(stream)} {}

 ok_error_t Parser::init(const ParserConfig& config) {
   stream_->setpos(0);
   auto type = get_type_from_stream(*stream_);
   if (!type) {
-    LIEF_ERR("Can't determine PE type.");
+    LIEF_ERR("Failed to determine PE type");
     return make_error_code(lief_errors::parsing_error);
   }

-  type_   = type.value();
-  binary_ = std::unique_ptr<Binary>(new Binary{});
+  type_ = type.value();
+  binary_ = std::make_unique<Binary>();
   binary_->type_ = type_;
   binary_->original_size_ = stream_->size();
   config_ = config;

-  return type_ == PE_TYPE::PE32 ? parse<details::PE32>() :
-                                  parse<details::PE64>();
+  return type_ == PE_TYPE::PE32 ? parse<details::PE32>() : parse<details::PE64>();
 }

 ok_error_t Parser::parse_dos_stub() {
   const DosHeader& dos_header = binary_->dos_header();

   if (dos_header.addressof_new_exeheader() < sizeof(details::pe_dos_header)) {
-    LIEF_ERR("Address of new exe header is corrupted");
+    LIEF_ERR("Corrupted new exe header address");
     return make_error_code(lief_errors::corrupted);
   }
-  const uint64_t sizeof_dos_stub = dos_header.addressof_new_exeheader() - sizeof(details::pe_dos_header);
+  const uint64_t sizeof_dos_stub =
+      dos_header.addressof_new_exeheader() - sizeof(details::pe_dos_header);

-  LIEF_DEBUG("DOS stub: @0x{:x}:0x{:x}", sizeof(details::pe_dos_header), sizeof_dos_stub);
+  LIEF_DEBUG("DOS stub: @{:#x}:{:#x}", sizeof(details::pe_dos_header),
+             sizeof_dos_stub);

   const uint64_t dos_stub_offset = sizeof(details::pe_dos_header);
   if (!stream_->peek_data(binary_->dos_stub_, dos_stub_offset, sizeof_dos_stub)) {
-    LIEF_ERR("DOS stub corrupted!");
+    LIEF_ERR("DOS stub corrupted");
     return make_error_code(lief_errors::read_error);
   }
   return ok();
@@ -128,22 +129,24 @@ ok_error_t Parser::parse_rich_header() {
                                     std::end(RichHeader::RICH_MAGIC));

   if (it_rich == std::end(dos_stub)) {
-    LIEF_DEBUG("Rich header not found!");
+    LIEF_DEBUG("Rich header not found");
     return ok();
   }
   auto rich_header = std::make_unique<RichHeader>();

-  const uint64_t end_offset_rich_header = std::distance(std::begin(dos_stub), it_rich);
-  LIEF_DEBUG("Offset to rich header: 0x{:x}", end_offset_rich_header);
+  const uint64_t end_offset_rich_header = std::distance(dos_stub.begin(), it_rich);
+  LIEF_DEBUG("Offset to rich header: {:#x}", end_offset_rich_header);

-  if (auto res_xor_key = stream.peek<uint32_t>(end_offset_rich_header + sizeof(RichHeader::RICH_MAGIC))) {
+  if (auto res_xor_key = stream.peek<uint32_t>(end_offset_rich_header +
+                                               sizeof(RichHeader::RICH_MAGIC)))
+  {
     rich_header->key(*res_xor_key);
   } else {
     return make_error_code(lief_errors::read_error);
   }

   const uint32_t xor_key = rich_header->key();
-  LIEF_DEBUG("XOR key: 0x{:x}", xor_key);
+  LIEF_DEBUG("XOR key: {:#x}", xor_key);

   int64_t curent_offset = end_offset_rich_header - sizeof(RichHeader::RICH_MAGIC);

@@ -151,7 +154,7 @@ ok_error_t Parser::parse_rich_header() {
   values.reserve(dos_stub.size() / sizeof(uint32_t));

   uint32_t count = 0;
-  uint32_t value;
+  uint32_t value = 0;

   while (curent_offset > 0 && stream.pos() < stream.size()) {

@@ -181,11 +184,11 @@ ok_error_t Parser::parse_rich_header() {
     }

     const uint16_t build_number = value & 0xFFFF;
-    const uint16_t id           = (value >> 16) & 0xFFFF;
+    const uint16_t id = (value >> 16) & 0xFFFF;

-    LIEF_DEBUG("ID:           0x{:04x}", id);
-    LIEF_DEBUG("Build Number: 0x{:04x}", build_number);
-    LIEF_DEBUG("Count:        0x{:d}", count);
+    LIEF_DEBUG("ID:           {:#06x}", id);
+    LIEF_DEBUG("Build Number: {:#06x}", build_number);
+    LIEF_DEBUG("Count:        {:d}", count);

     rich_header->add_entry(id, build_number, count);
   }
@@ -194,86 +197,128 @@ ok_error_t Parser::parse_rich_header() {
   return ok();
 }

+
+ok_error_t Parser::read_section_content(const details::pe_section& raw_sec,
+                                        uint32_t index, Section& section) {
+  uint32_t numberof_sections = binary_->header().numberof_sections();
+  uint32_t size_to_read = 0;
+  const uint32_t offset = raw_sec.PointerToRawData;
+
+  const bool is_memory_view = stream_->is_memory_view();
+
+  if (is_memory_view) {
+    size_to_read = raw_sec.VirtualSize;
+  } else {
+    size_to_read = raw_sec.VirtualSize > 0 ?
+                       std::min(raw_sec.VirtualSize,
+                                raw_sec.SizeOfRawData) : // According to Corkami
+                       raw_sec.SizeOfRawData;
+  }
+
+  if (size_to_read == 0) {
+    return ok();
+  }
+
+  const uint64_t peek_target =
+      is_memory_view ? section.virtual_address() : (uint64_t)offset;
+
+  if (peek_target < stream_->size() &&
+      (peek_target + size_to_read) > stream_->size())
+  {
+    size_to_read = static_cast<uint32_t>(stream_->size() - peek_target);
+  }
+
+  if (size_to_read > Parser::MAX_DATA_SIZE) {
+    LIEF_WARN("Section '{}' data too large ({:#x})", section.name(), size_to_read);
+    return make_error_code(lief_errors::data_too_large);
+  }
+
+  if (!stream_->peek_data(section.content_, peek_target, size_to_read,
+                          section.virtual_address()))
+  {
+    LIEF_ERR("Corrupted section #{:d} ({})", index, section.name());
+  }
+
+  uint64_t padding_size = 0;
+  if (size_to_read <= section.size()) {
+    padding_size = section.size() - size_to_read;
+  }
+
+  const uint64_t padding_offset = (uint64_t)offset + size_to_read;
+
+  // Treat content between two sections (that is not wrapped in a section) as
+  // 'padding'
+  uint64_t hole_size = 0;
+  if (!is_memory_view && index < numberof_sections - 1) {
+    // As we *read* at the beginning of the loop, the cursor is already on the next
+    // one
+    auto res_next_section = stream_->peek<details::pe_section>();
+    if (!res_next_section) {
+      LIEF_ERR("Failed to read section #{}", index + 1);
+    } else {
+      const details::pe_section& next_section = *res_next_section;
+      const uint64_t sec_offset = next_section.PointerToRawData;
+      if (padding_offset + padding_size < sec_offset) {
+        hole_size = sec_offset - (padding_offset + padding_size);
+      }
+    }
+  }
+
+  uint64_t padding_to_read = padding_size + hole_size;
+  if (!is_memory_view && padding_to_read > MAX_PADDING_SIZE) {
+    LIEF_WARN("Padding of section '{}' too large, "
+              "limiting to {} bytes",
+              section.name(), Parser::MAX_PADDING_SIZE);
+    padding_to_read = MAX_PADDING_SIZE;
+  }
+
+  if (is_memory_view) {
+    padding_to_read = 0;
+  }
+
+  if (!stream_->peek_data(section.padding_, padding_offset, padding_to_read)) {
+    LIEF_ERR("Failed to read padding of section '{}'", section.name());
+  }
+
+  return ok();
+}
+
 ok_error_t Parser::parse_sections() {
   static constexpr size_t NB_MAX_SECTIONS = 1000;
+  static constexpr uint32_t SENTINEL = std::numeric_limits<uint32_t>::max();
   LIEF_DEBUG("Parsing sections");

-  const uint32_t pe_header_off   = binary_->dos_header().addressof_new_exeheader();
-  const uint32_t opt_header_off  = pe_header_off + sizeof(details::pe_header);
-  const uint32_t sections_offset = opt_header_off + binary_->header().sizeof_optional_header();
+  const uint32_t pe_header_off = binary_->dos_header().addressof_new_exeheader();
+  const uint32_t opt_header_off = pe_header_off + sizeof(details::pe_header);
+  const uint32_t sections_offset =
+      opt_header_off + binary_->header().sizeof_optional_header();

-  uint32_t first_section_offset = UINT_MAX;
+  uint32_t first_section_offset = SENTINEL;

   uint32_t numberof_sections = binary_->header().numberof_sections();
   if (numberof_sections > NB_MAX_SECTIONS) {
-    LIEF_ERR("The PE binary has {} sections while the LIEF limit is {}.\n"
-             "Only the first {} will be parsed", numberof_sections, NB_MAX_SECTIONS, NB_MAX_SECTIONS);
+    LIEF_ERR("PE binary has {} sections, exceeding limit of {}. "
+             "Only the first {} will be parsed",
+             numberof_sections, NB_MAX_SECTIONS, NB_MAX_SECTIONS);
     numberof_sections = NB_MAX_SECTIONS;
   }

   stream_->setpos(sections_offset);
   for (size_t i = 0; i < numberof_sections; ++i) {
-    details::pe_section raw_sec;
+    details::pe_section raw_sec{};
     if (auto res = stream_->read<details::pe_section>()) {
       raw_sec = *res;
     } else {
-      LIEF_ERR("Can't read section at 0x{:x}", stream_->pos());
+      LIEF_ERR("Failed to read section at {:#x}", stream_->pos());
       break;
     }
     auto section = std::make_unique<Section>(raw_sec);
-    uint32_t size_to_read = 0;
     const uint32_t offset = raw_sec.PointerToRawData;
     if (offset > 0) {
       first_section_offset = std::min(first_section_offset, offset);
     }

-    size_to_read = raw_sec.VirtualSize > 0 ?
-                   std::min(raw_sec.VirtualSize, raw_sec.SizeOfRawData) : // According to Corkami
-                   raw_sec.SizeOfRawData;
-
-    if ((offset + size_to_read) > stream_->size()) {
-      const uint32_t delta = (offset + size_to_read) - stream_->size();
-      size_to_read = size_to_read - delta;
-    }
-
-    if (size_to_read > Parser::MAX_DATA_SIZE) {
-      LIEF_WARN("Data of section section '{}' is too large (0x{:x})", section->name(), size_to_read);
-    } else {
-
-      if (!stream_->peek_data(section->content_, offset, size_to_read,
-                              section->virtual_address())) {
-        LIEF_ERR("Section #{:d} ({}) is corrupted", i, section->name());
-      }
-
-      const uint64_t padding_size = section->size() - size_to_read;
-
-      // Treat content between two sections (that is not wrapped in a section) as 'padding'
-      uint64_t hole_size = 0;
-      if (i < numberof_sections - 1) {
-        // As we *read* at the beginning of the loop, the cursor is already on the next one
-        auto res_next_section = stream_->peek<details::pe_section>();
-        if (!res_next_section) {
-          LIEF_ERR("Can't read the {} + 1 section", i + 1);
-        } else {
-          const details::pe_section& next_section = *res_next_section;
-          const uint64_t sec_offset = next_section.PointerToRawData;
-          if (offset + size_to_read + padding_size < sec_offset) {
-            hole_size = sec_offset - (offset + size_to_read + padding_size);
-          }
-        }
-      }
-      uint64_t padding_to_read = padding_size + hole_size;
-      if (padding_to_read > Parser::MAX_PADDING_SIZE) {
-        LIEF_WARN("The padding size of section '{}' is huge. "
-                  "Only the first {} bytes will be taken "
-                  "into account", section->name(), Parser::MAX_PADDING_SIZE);
-        padding_to_read = Parser::MAX_PADDING_SIZE;
-      }
-
-      if (!stream_->peek_data(section->padding_, offset + size_to_read, padding_to_read)) {
-        LIEF_ERR("Can't read the padding content of section '{}'", section->name());
-      }
-    }
+    read_section_content(raw_sec, i, *section);

     if (const std::string& name = section->name();
         name.size() > 1 && name[0] == '/')
@@ -287,13 +332,31 @@ ok_error_t Parser::parse_sections() {
     binary_->sections_.push_back(std::move(section));
   }

-  const uint32_t last_section_header_offset = sections_offset + numberof_sections * sizeof(details::pe_section);
+  // At this point we can bind the binary to the stream (if needed)
+  stream_->bind_binary(*binary_);
+
+  const uint32_t last_section_header_offset =
+      sections_offset + numberof_sections * sizeof(details::pe_section);
+
+  if (first_section_offset == SENTINEL ||
+      first_section_offset < last_section_header_offset)
+  {
+    binary_->available_sections_space_ = -1;
+    LIEF_DEBUG("No usable section header padding (first section offset: {:#x})",
+               first_section_offset);
+    return ok();
+  }
+
   const size_t padding_size = first_section_offset - last_section_header_offset;
-  if (!stream_->peek_data(binary_->section_offset_padding_, last_section_header_offset, padding_size)) {
-    LIEF_ERR("Can't read the padding");
+  if (!stream_->peek_data(binary_->section_offset_padding_,
+                          last_section_header_offset, padding_size))
+  {
+    LIEF_ERR("Failed to read section header padding");
   }
-  binary_->available_sections_space_ = (first_section_offset - last_section_header_offset) / sizeof(details::pe_section) - 1;
-  LIEF_DEBUG("Number of sections that could be added: #{:d}", binary_->available_sections_space_);
+  binary_->available_sections_space_ =
+      (int32_t)(padding_size / sizeof(details::pe_section)) - 1;
+  LIEF_DEBUG("Number of sections that could be added: #{:d}",
+             binary_->available_sections_space_);
   return ok();
 }

@@ -313,33 +376,39 @@ ok_error_t Parser::parse_relocations() {
   const uint32_t max_size = reloc_dir->size();
   const uint32_t max_offset = offset + max_size;

-  auto res_relocation_headers = stream_->peek<details::pe_base_relocation_block>(offset);
+  auto res_relocation_headers =
+      stream_->peek<details::pe_base_relocation_block>(offset);
   if (!res_relocation_headers) {
     return make_error_code(lief_errors::read_error);
   }

   uint32_t current_offset = offset;
-  while (res_relocation_headers && current_offset < max_offset && res_relocation_headers->PageRVA != 0) {
+  while (res_relocation_headers && current_offset < max_offset &&
+         res_relocation_headers->PageRVA != 0)
+  {
     const details::pe_base_relocation_block& raw_struct = *res_relocation_headers;
     auto relocation = std::make_unique<Relocation>(raw_struct);

     if (raw_struct.BlockSize < sizeof(details::pe_base_relocation_block)) {
-      LIEF_ERR("Relocation corrupted: BlockSize is too small ({})",
+      LIEF_ERR("Corrupted relocation: BlockSize too small ({})",
                raw_struct.BlockSize);
       break;
     }

     if (raw_struct.BlockSize > binary_->optional_header().sizeof_image()) {
-      LIEF_ERR("Relocation corrupted: BlockSize is out of bound the "
-               "binary's virtual size: {}", raw_struct.BlockSize);
+      LIEF_ERR("Corrupted relocation: BlockSize exceeds binary virtual size: "
+               "{0} ({0:#10x})",
+               raw_struct.BlockSize);
       break;
     }

-    size_t numberof_entries = (raw_struct.BlockSize - sizeof(details::pe_base_relocation_block)) / sizeof(uint16_t);
+    size_t numberof_entries =
+        (raw_struct.BlockSize - sizeof(details::pe_base_relocation_block)) /
+        sizeof(uint16_t);
     if (numberof_entries > MAX_RELOCATION_ENTRIES) {
-      LIEF_WARN("The number of relocation entries () is larger than the LIEF's limit ({})\n"
-                "Only the first {} will be parsed", numberof_entries,
-                MAX_RELOCATION_ENTRIES, MAX_RELOCATION_ENTRIES);
+      LIEF_WARN("Relocation entry count ({}) exceeds limit ({}), "
+                "only parsing first {}",
+                numberof_entries, MAX_RELOCATION_ENTRIES, MAX_RELOCATION_ENTRIES);
       numberof_entries = MAX_RELOCATION_ENTRIES;
     }

@@ -348,7 +417,7 @@ ok_error_t Parser::parse_relocations() {
     for (size_t i = 0; i < numberof_entries; ++i) {
       auto res_entry = stream_->read<uint16_t>();
       if (!res_entry) {
-        LIEF_ERR("Can't parse relocation entry #{}", i);
+        LIEF_ERR("Failed to parse relocation entry #{}", i);
         break;
       }

@@ -363,7 +432,8 @@ ok_error_t Parser::parse_relocations() {

     binary_->relocations_.push_back(std::move(relocation));
     current_offset += raw_struct.BlockSize;
-    res_relocation_headers = stream_->peek<details::pe_base_relocation_block>(current_offset);
+    res_relocation_headers =
+        stream_->peek<details::pe_base_relocation_block>(current_offset);
   }

   return ok();
@@ -378,16 +448,16 @@ ok_error_t Parser::parse_resources() {
   }

   const uint32_t resources_rva = res_dir->RVA();
-  LIEF_DEBUG("Resources RVA: 0x{:04x}", resources_rva);
+  LIEF_DEBUG("Resources RVA: {:#06x}", resources_rva);

   const uint32_t offset = binary_->rva_to_offset(resources_rva);
-  LIEF_DEBUG("Resources Offset: 0x{:04x}", offset);
+  LIEF_DEBUG("Resources Offset: {:#06x}", offset);

   ScopedStream scoped(*stream_, offset);
   binary_->resources_ = ResourceNode::parse(*scoped, *binary_);

   if (binary_->resources_ == nullptr) {
-    LIEF_WARN("Can't parse resource tree");
+    LIEF_WARN("Failed to parse resource tree");
     return make_error_code(lief_errors::read_error);
   }
   return ok();
@@ -396,6 +466,11 @@ ok_error_t Parser::parse_resources() {
 ok_error_t Parser::parse_string_table() {
   // PE is using the "Symbol16" format
   static constexpr auto SYMBOL16_SZ = 18;
+
+  if (stream_->is_memory_view()) {
+    return ok();
+  }
+
   const Header& hdr = binary_->header();

   if (hdr.pointerto_symbol_table() == 0) {
@@ -403,10 +478,17 @@ ok_error_t Parser::parse_string_table() {
   }
   LIEF_DEBUG("Parsing string table");

-  const uint32_t string_tbl_offset =
-    hdr.pointerto_symbol_table() + hdr.numberof_symbols() * SYMBOL16_SZ;
+  const uint64_t string_tbl_offset =
+      static_cast<uint64_t>(hdr.pointerto_symbol_table()) +
+      static_cast<uint64_t>(hdr.numberof_symbols()) * SYMBOL16_SZ;

-  LIEF_DEBUG("String table offset: 0x{:08x}", string_tbl_offset);
+  if (string_tbl_offset + sizeof(uint32_t) > stream_->size()) {
+    LIEF_DEBUG("COFF string table offset ({:#x}) is out of bounds",
+               string_tbl_offset);
+    return ok();
+  }
+
+  LIEF_DEBUG("String table offset: {:#010x}", string_tbl_offset);
   stream_->setpos(string_tbl_offset);
   auto table_sz = stream_->read<uint32_t>();
   if (!table_sz) {
@@ -431,7 +513,7 @@ ok_error_t Parser::parse_string_table() {
       break;
     }

-    LIEF_DEBUG("string[0x{:06x}]: {}", pos, *str);
+    LIEF_DEBUG("string[{:#08x}]: {}", pos, *str);
     memoize(COFF::String(pos, std::move(*str)));
   }
   LIEF_DEBUG("#{} strings found", binary_->strings_table_.size());
@@ -442,6 +524,11 @@ ok_error_t Parser::parse_string_table() {
 ok_error_t Parser::parse_symbols() {
   LIEF_DEBUG("Parsing symbols");
   const Header& hdr = binary_->header();
+
+  if (stream_->is_memory_view()) {
+    return ok();
+  }
+
   if (hdr.pointerto_symbol_table() == 0 || hdr.numberof_symbols() == 0) {
     return ok();
   }
@@ -450,12 +537,10 @@ ok_error_t Parser::parse_symbols() {
   const uint32_t symtab_off = hdr.pointerto_symbol_table();
   stream_->setpos(symtab_off);

-  COFF::Symbol::parsing_context_t ctx {
-    /*.find_string =*/ [this] (uint32_t offset) {
-      return this->find_coff_string(offset);
-    },
-    /*is_bigobj=*/false
-  };
+  COFF::Symbol::parsing_context_t ctx{/*.find_string =*/[this](uint32_t offset) {
+                                        return this->find_coff_string(offset);
+                                      },
+                                      /*is_bigobj=*/false};

   for (size_t idx = 0; idx < nb_symbols;) {
     std::unique_ptr<COFF::Symbol> sym = COFF::Symbol::parse(ctx, *stream_, &idx);
@@ -469,14 +554,15 @@ ok_error_t Parser::parse_symbols() {
   return ok();
 }

-span<uint8_t> get_payload(Binary& bin, const details::pe_debug& dbg, Section*& sec) {
+span<uint8_t> get_payload(Binary& bin, const details::pe_debug& dbg,
+                          Section*& sec) {
   if (dbg.SizeOfData == 0) {
     return {};
   }

-  LIEF_DEBUG("payload.rva:    0x{:06x}", dbg.AddressOfRawData);
-  LIEF_DEBUG("payload.offset: 0x{:06x}", dbg.PointerToRawData);
-  LIEF_DEBUG("payload.size:   0x{:06x}", dbg.SizeOfData);
+  LIEF_DEBUG("Payload RVA:    {:#08x}", dbg.AddressOfRawData);
+  LIEF_DEBUG("Payload offset: {:#08x}", dbg.PointerToRawData);
+  LIEF_DEBUG("Payload size:   {:#08x}", dbg.SizeOfData);

   sec = bin.section_from_offset(dbg.PointerToRawData);
   if (sec == nullptr) {
@@ -495,7 +581,8 @@ span<uint8_t> get_payload(Binary& bin, const details::pe_debug& dbg, Section*& s
       return {};
     }

-    if (check_overflow<uint64_t>((uint32_t)delta, dbg.SizeOfData, overlay.size())) {
+    if (check_overflow<uint64_t>((uint32_t)delta, dbg.SizeOfData, overlay.size()))
+    {
       return {};
     }

@@ -503,8 +590,9 @@ span<uint8_t> get_payload(Binary& bin, const details::pe_debug& dbg, Section*& s
   }

   if (sec == nullptr) {
-    LIEF_WARN("Can't find section associated with debug payload at offset: "
-              "0x{:08x}, VA: 0x{:08x}", dbg.PointerToRawData, dbg.AddressOfRawData);
+    LIEF_WARN("Section not found for debug payload at offset "
+              "{:#010x}, VA {:#010x}",
+              dbg.PointerToRawData, dbg.AddressOfRawData);
     return {};
   }

@@ -516,7 +604,7 @@ ok_error_t Parser::parse_debug() {

   DataDirectory* dir = binary_->debug_dir();
   if (dir == nullptr) {
-    return make_error_code(lief_errors::not_found);
+    return ok();
   }

   if (dir->RVA() == 0 || dir->size() == 0) {
@@ -524,8 +612,8 @@ ok_error_t Parser::parse_debug() {
   }

   const uint32_t debug_rva = dir->RVA();
-  uint32_t debug_off       = binary_->rva_to_offset(debug_rva);
-  const uint32_t debug_sz  = dir->size();
+  uint32_t debug_off = binary_->rva_to_offset(debug_rva);
+  const uint32_t debug_sz = dir->size();
   const uint32_t debug_end = debug_off + debug_sz;

   if (debug_sz == 0) {
@@ -544,80 +632,86 @@ ok_error_t Parser::parse_debug() {
     LIEF_DEBUG("Type is: {}", to_string(type));
     switch (type) {
       case Debug::TYPES::CODEVIEW:
-        {
-          if (std::unique_ptr<Debug> cv = parse_code_view(*res, sec, payload)) {
-            binary_->debug_.push_back(std::move(cv));
-          } else {
-            LIEF_WARN("Can't parse PE CodeView");
-          }
-          break;
+      {
+        if (std::unique_ptr<Debug> cv = parse_code_view(*res, sec, payload)) {
+          binary_->debug_.push_back(std::move(cv));
+        } else {
+          LIEF_WARN("Failed to parse CodeView debug entry");
         }
+        break;
+      }

       case Debug::TYPES::POGO:
-        {
-          if (std::unique_ptr<Debug> pogo = parse_pogo(*res, sec, payload)) {
-            binary_->debug_.push_back(std::move(pogo));
-          } else {
-            LIEF_WARN("Can't parse PE POGO");
-          }
-          break;
+      {
+        if (std::unique_ptr<Debug> pogo = parse_pogo(*res, sec, payload)) {
+          binary_->debug_.push_back(std::move(pogo));
+        } else {
+          LIEF_WARN("Failed to parse POGO debug entry");
         }
+        break;
+      }

       case Debug::TYPES::REPRO:
-        {
-          if (std::unique_ptr<Debug> repro = parse_repro(*res, sec, payload)) {
-            binary_->debug_.push_back(std::move(repro));
-          } else {
-            LIEF_WARN("Can't parse PE Repro");
-          }
-          break;
+      {
+        if (std::unique_ptr<Debug> repro = parse_repro(*res, sec, payload)) {
+          binary_->debug_.push_back(std::move(repro));
+        } else {
+          LIEF_WARN("Failed to parse Repro debug entry");
         }
+        break;
+      }

       case Debug::TYPES::PDBCHECKSUM:
+      {
+        if (std::unique_ptr<Debug> checksum =
+                PDBChecksum::parse(*res, sec, payload))
         {
-          if (std::unique_ptr<Debug> checksum = PDBChecksum::parse(*res, sec, payload)) {
-            binary_->debug_.push_back(std::move(checksum));
-            break;
-          }
-          LIEF_WARN("Failed to parse PE PDB checksum");
+          binary_->debug_.push_back(std::move(checksum));
           break;
         }
+        LIEF_WARN("Failed to parse PE PDB checksum");
+        break;
+      }

       case Debug::TYPES::VC_FEATURE:
+      {
+        if (std::unique_ptr<Debug> vcfeature =
+                VCFeature::parse(*res, sec, payload))
         {
-          if (std::unique_ptr<Debug> vcfeature = VCFeature::parse(*res, sec, payload)) {
-            binary_->debug_.push_back(std::move(vcfeature));
-            break;
-          }
-          LIEF_WARN("Failed to parse PE VC Feature");
+          binary_->debug_.push_back(std::move(vcfeature));
           break;
         }
+        LIEF_WARN("Failed to parse PE VC Feature");
+        break;
+      }

       case Debug::TYPES::EX_DLLCHARACTERISTICS:
+      {
+        if (std::unique_ptr<Debug> exdll =
+                ExDllCharacteristics::parse(*res, sec, payload))
         {
-          if (std::unique_ptr<Debug> exdll = ExDllCharacteristics::parse(*res, sec, payload)) {
-            binary_->debug_.push_back(std::move(exdll));
-            break;
-          }
-          LIEF_WARN("Failed to parse PE EX_DLLCHARACTERISTICS");
+          binary_->debug_.push_back(std::move(exdll));
           break;
         }
+        LIEF_WARN("Failed to parse PE EX_DLLCHARACTERISTICS");
+        break;
+      }

       case Debug::TYPES::FPO:
-        {
-          if (std::unique_ptr<Debug> fpo = FPO::parse(*res, sec, payload)) {
-            binary_->debug_.push_back(std::move(fpo));
-            break;
-          }
-          LIEF_WARN("Failed to parse PE FPO");
+      {
+        if (std::unique_ptr<Debug> fpo = FPO::parse(*res, sec, payload)) {
+          binary_->debug_.push_back(std::move(fpo));
           break;
         }
+        LIEF_WARN("Failed to parse PE FPO");
+        break;
+      }

       default:
-        {
-          binary_->debug_.push_back(std::make_unique<Debug>(*res, sec));
-          break;
-        }
+      {
+        binary_->debug_.push_back(std::make_unique<Debug>(*res, sec));
+        break;
+      }
     }
   }
   return ok();
@@ -630,11 +724,16 @@ ok_error_t Parser::parse_exceptions() {
   }

   const DataDirectory* exception_dir = binary_->exceptions_dir();
+
+  if (exception_dir == nullptr) {
+    return ok();
+  }
+
   if (exception_dir->RVA() == 0 || exception_dir->size() == 0) {
     return ok();
   }

-  LIEF_DEBUG("Parsing exceptions [0x{:06x}, 0x{:06x}] ({} bytes)",
+  LIEF_DEBUG("Parsing exceptions [{:#08x}, {:#08x}] ({} bytes)",
              exception_dir->RVA(), exception_dir->RVA() + exception_dir->size(),
              exception_dir->size());

@@ -669,20 +768,22 @@ ok_error_t Parser::parse_exceptions() {

   for (auto& [f, rva] : unresolved_chains_) {
     if (auto* func = f->as<RuntimeFunctionX64>()) {
-      auto it = memoize_exception_info_.find(rva);
-      if (it == memoize_exception_info_.end()) {
-        LIEF_DEBUG("RuntimeFunctionX64 0x{:06x}: Can't find linked chained info at 0x{:06x}",
-                  func->rva_start(), rva);
+      if (auto it = memoize_exception_info_.find(rva);
+          it == memoize_exception_info_.end())
+      {
+        LIEF_DEBUG("RuntimeFunctionX64 {:#08x}: chained info not found at {:#08x}",
+                   func->rva_start(), rva);
         continue;
+      } else {
+        assert(func->unwind_info() != nullptr);
+        func->unwind_info()->chained = it->second->as<RuntimeFunctionX64>();
       }
-      assert(func->unwind_info() != nullptr);
-      func->unwind_info()->chained = it->second->as<RuntimeFunctionX64>();
     }
   }
   unresolved_chains_.clear();

   if (!parse_chpe_exceptions()) {
-    LIEF_INFO("CHPE exceptions parsing finished with errors");
+    LIEF_INFO("CHPE exception parsing finished with errors");
   }

   return ok();
@@ -712,7 +813,7 @@ ok_error_t Parser::parse_chpe_exceptions() {
   }

   std::unique_ptr<SpanStream> stream =
-    stream_from_rva(arm64->extra_rfe_table(), arm64->extra_rfe_table_size());
+      stream_from_rva(arm64->extra_rfe_table(), arm64->extra_rfe_table_size());

   if (stream == nullptr) {
     return make_error_code(lief_errors::read_error);
@@ -727,13 +828,13 @@ ok_error_t Parser::parse_chpe_exceptions() {
       target_arch = Header::MACHINE_TYPES::ARM64;
       break;

-    // ARM64X: CHPE is used to refer ARM64EC binary (which uses a AMD64 machine type)
+    // ARM64X: CHPE is used to refer to ARM64EC binary (which uses an AMD64 machine
+    // type)
     case Header::MACHINE_TYPES::ARM64:
       target_arch = Header::MACHINE_TYPES::AMD64;
       break;

-    default:
-      break;
+    default: break;
   }

   [[maybe_unused]] size_t idx = 0;
@@ -752,10 +853,9 @@ ok_error_t Parser::parse_chpe_exceptions() {
   return ok();
 }

-std::unique_ptr<Debug>
-  Parser::parse_code_view(const details::pe_debug& debug_info, Section* sec,
-                          span<uint8_t> payload)
-{
+std::unique_ptr<Debug> Parser::parse_code_view(const details::pe_debug& debug_info,
+                                               Section* sec,
+                                               span<uint8_t> payload) {
   LIEF_DEBUG("Parsing Debug Code View (payload: {} bytes)", payload.size());
   SpanStream stream(payload);

@@ -769,47 +869,45 @@ std::unique_ptr<Debug>

   switch (signature) {
     case CodeView::SIGNATURES::PDB_70:
-      {
-        const auto pdb_s = stream.read<details::pe_pdb_70>();
-        if (!pdb_s) {
-          return default_value;
-        }
+    {
+      const auto pdb_s = stream.read<details::pe_pdb_70>();
+      if (!pdb_s) {
+        return default_value;
+      }

-        auto cv_pdb70 = std::make_unique<CodeViewPDB>(debug_info, *pdb_s, sec);
-        if (auto fname = stream.read_string()) {
-          cv_pdb70->filename(std::move(*fname));
-        }
-        return cv_pdb70;
+      auto cv_pdb70 = std::make_unique<CodeViewPDB>(debug_info, *pdb_s, sec);
+      if (auto fname = stream.read_string()) {
+        cv_pdb70->filename(std::move(*fname));
       }
+      return cv_pdb70;
+    }


     case CodeView::SIGNATURES::PDB_20:
-      {
-        const auto pdb_s = stream.read<details::pe_pdb_20>();
-        if (!pdb_s) {
-          return default_value;
-        }
+    {
+      const auto pdb_s = stream.read<details::pe_pdb_20>();
+      if (!pdb_s) {
+        return default_value;
+      }

-        auto cv_pdb20 = std::make_unique<CodeViewPDB>(debug_info, *pdb_s, sec);
-        if (auto fname = stream.read_string()) {
-          cv_pdb20->filename(std::move(*fname));
-        }
-        return cv_pdb20;
+      auto cv_pdb20 = std::make_unique<CodeViewPDB>(debug_info, *pdb_s, sec);
+      if (auto fname = stream.read_string()) {
+        cv_pdb20->filename(std::move(*fname));
       }
+      return cv_pdb20;
+    }

     default:
-      {
-        LIEF_INFO("CodeView signature '{}' is not implemented yet!",
-                  to_string(signature));
-      }
+    {
+      LIEF_INFO("CodeView signature '{}' not yet implemented",
+                to_string(signature));
+    }
   }
   return default_value;
 }

-std::unique_ptr<Debug>
-  Parser::parse_pogo(const details::pe_debug& debug_info, Section* sec,
-                     span<uint8_t> payload)
-{
+std::unique_ptr<Debug> Parser::parse_pogo(const details::pe_debug& debug_info,
+                                          Section* sec, span<uint8_t> payload) {
   LIEF_DEBUG("Parsing POGO");
   SpanStream stream(payload);

@@ -824,41 +922,42 @@ std::unique_ptr<Debug>
   switch (signature) {
     case Pogo::SIGNATURES::ZERO: // zero-signature may contain valid entries
     case Pogo::SIGNATURES::LCTG:
-      {
-        while (stream) {
-          auto raw = stream.read<details::pe_pogo>();
-          if (!raw) {
-            break;
-          }
-
-          PogoEntry entry{raw->start_rva, raw->size};
-          if (auto name = stream.read_string()) {
-            entry.name(std::move(*name));
-          }
+    case Pogo::SIGNATURES::SPGO:
+    case Pogo::SIGNATURES::PGI:
+    case Pogo::SIGNATURES::PGU:
+    {
+      while (stream) {
+        auto raw = stream.read<details::pe_pogo>();
+        if (!raw) {
+          break;
+        }

-          pogo->add(std::move(entry));
-          stream.align(4);
+        PogoEntry entry{raw->start_rva, raw->size};
+        if (auto name = stream.read_string()) {
+          entry.name(std::move(*name));
         }

-        return pogo;
+        pogo->add(std::move(entry));
+        stream.align(4);
       }

+      return pogo;
+    }
+
     case Pogo::SIGNATURES::UNKNOWN:
     default:
-      {
-        LIEF_INFO("PGO with signature 0x{:x} is not implemented yet!", *res_sig);
-      }
+    {
+      LIEF_WARN("POGO signature {:#x} not yet implemented", *res_sig);
+    }
   }
   return pogo;
 }

-std::unique_ptr<Debug>
-  Parser::parse_repro(const details::pe_debug& debug_info, Section* sec,
-                      span<uint8_t> payload)
-{
+std::unique_ptr<Debug> Parser::parse_repro(const details::pe_debug& debug_info,
+                                           Section* sec, span<uint8_t> payload) {
   LIEF_DEBUG("Parsing Debug Repro");
   if (payload.empty()) {
-    return std::make_unique<Repro>(debug_info,  sec);
+    return std::make_unique<Repro>(debug_info, sec);
   }

   SpanStream stream(payload);
@@ -867,11 +966,11 @@ std::unique_ptr<Debug>
   if (!res_size) {
     return nullptr;
   }
-  LIEF_DEBUG("Size: 0x{:x}", *res_size);
+  LIEF_DEBUG("Size: {:#x}", *res_size);

   std::vector<uint8_t> hash;
   if (!stream.read_data(hash, *res_size)) {
-    LIEF_INFO("Can't read debug reproducible build hash");
+    LIEF_INFO("Failed to read reproducible build hash");
   }

   return std::make_unique<Repro>(debug_info, std::move(hash), sec);
@@ -879,7 +978,8 @@ std::unique_ptr<Debug>


 inline result<uint32_t> address_table_value(BinaryStream& stream,
-                                            uint32_t address_table_offset, size_t i) {
+                                            uint32_t address_table_offset,
+                                            size_t i) {
   using element_t = uint32_t;
   const size_t element_offset = address_table_offset + i * sizeof(element_t);
   if (auto res = stream.peek<element_t>(element_offset)) {
@@ -889,7 +989,8 @@ inline result<uint32_t> address_table_value(BinaryStream& stream,
 }

 inline result<uint16_t> ordinal_table_value(BinaryStream& stream,
-                                            uint32_t ordinal_table_offset, size_t i) {
+                                            uint32_t ordinal_table_offset,
+                                            size_t i) {
   using element_t = uint16_t;

   const size_t element_offset = ordinal_table_offset + i * sizeof(element_t);
@@ -913,7 +1014,7 @@ inline result<uint32_t> name_table_value(BinaryStream& stream,

 ok_error_t Parser::parse_exports() {
   LIEF_DEBUG("Parsing exports");
-  static constexpr uint32_t NB_ENTRIES_LIMIT   = 0x1000000;
+  static constexpr uint32_t NB_ENTRIES_LIMIT = 0x1000000;
   static constexpr size_t MAX_EXPORT_NAME_SIZE = 4096; // Because of C++ mangling

   struct range_t {
@@ -926,49 +1027,55 @@ ok_error_t Parser::parse_exports() {
     return make_error_code(lief_errors::not_found);
   }

-  uint32_t exports_rva    = export_dir->RVA();
-  uint32_t exports_size   = export_dir->size();
+  uint32_t exports_rva = export_dir->RVA();
+  uint32_t exports_size = export_dir->size();
   uint32_t exports_offset = binary_->rva_to_offset(exports_rva);
   range_t range = {exports_rva, exports_rva + exports_size};

   // First Export directory
-  auto export_dir_tbl = stream_->peek<details::pe_export_directory_table>(exports_offset);
+  auto export_dir_tbl =
+      stream_->peek<details::pe_export_directory_table>(exports_offset);

   if (!export_dir_tbl) {
-    LIEF_WARN("Can't read the export table at 0x{:x}", exports_offset);
+    LIEF_WARN("Failed to read export table at {:#x}", exports_offset);
     return make_error_code(lief_errors::read_error);
   }

   auto export_object = std::make_unique<Export>(*export_dir_tbl);
   uint32_t name_offset = binary_->rva_to_offset(export_dir_tbl->NameRVA);
-  if (auto res_name = stream_->peek_string_at(name_offset, Parser::MAX_DLL_NAME_SIZE)) {
+  if (auto res_name =
+          stream_->peek_string_at(name_offset, Parser::MAX_DLL_NAME_SIZE))
+  {
     std::string name = *res_name;
     if (is_valid_dll_name(name)) {
       export_object->name_ = std::move(name);
-      LIEF_DEBUG("Export name {}@0x{:x}", export_object->name_, name_offset);
+      LIEF_DEBUG("Export name {}@{:#x}", export_object->name_, name_offset);
     } else {
       if (name.empty()) {
         LIEF_DEBUG("Export name is empty");
       } else {
-        LIEF_DEBUG("'{}' is not a valid export name", printable_string(name));
+        LIEF_DEBUG("Invalid export name '{}'", printable_string(name));
       }
     }
   } else {
-    LIEF_INFO("DLL name seems corrupted");
+    LIEF_INFO("DLL name appears corrupted");
   }
   const uint32_t nbof_addr_entries = export_dir_tbl->AddressTableEntries;
-  const uint32_t nbof_name_ptr     = export_dir_tbl->NumberOfNamePointers;
+  const uint32_t nbof_name_ptr = export_dir_tbl->NumberOfNamePointers;

   const uint16_t ordinal_base = export_dir_tbl->OrdinalBase;

-  const uint32_t address_table_offset = binary_->rva_to_offset(export_dir_tbl->ExportAddressTableRVA);
-  const uint32_t ordinal_table_offset = binary_->rva_to_offset(export_dir_tbl->OrdinalTableRVA);
-  const uint32_t name_table_offset    = binary_->rva_to_offset(export_dir_tbl->NamePointerRVA);
+  const uint32_t address_table_offset =
+      binary_->rva_to_offset(export_dir_tbl->ExportAddressTableRVA);
+  const uint32_t ordinal_table_offset =
+      binary_->rva_to_offset(export_dir_tbl->OrdinalTableRVA);
+  const uint32_t name_table_offset =
+      binary_->rva_to_offset(export_dir_tbl->NamePointerRVA);

   LIEF_DEBUG("Number of entries:   {}", nbof_addr_entries);
   LIEF_DEBUG("Number of names ptr: {}", nbof_name_ptr);
   LIEF_DEBUG("Ordinal Base:        {}", ordinal_base);
-  LIEF_DEBUG("External Range:      0x{:06x} - 0x{:06x}", range.start, range.end);
+  LIEF_DEBUG("External Range:      {:#08x} - {:#08x}", range.start, range.end);

   if (nbof_addr_entries > NB_ENTRIES_LIMIT) {
     LIEF_WARN("Export.AddressTableEntries is too large ({})", nbof_addr_entries);
@@ -993,15 +1100,16 @@ ok_error_t Parser::parse_exports() {
     if (auto res = address_table_value(*stream_, address_table_offset, i)) {
       addr_value = *res;
     } else {
-      LIEF_WARN("Can't read the Export.address_table[{}]", i);
+      LIEF_WARN("Failed to read Export.address_table[{}]", i);
       break;
     }
-    LIEF_DEBUG("Export.address_table[{}].addr_value: 0x{:04x}", i, addr_value);
+    LIEF_DEBUG("Export.address_table[{}].addr_value: {:#06x}", i, addr_value);
     const uint16_t ordinal = i + ordinal_base;
-    const bool is_extern   = range.start <= addr_value && addr_value < range.end;
+    const bool is_extern = range.start <= addr_value && addr_value < range.end;
     const uint32_t address = is_extern ? 0 : addr_value;

-    auto entry = std::make_unique<ExportEntry>(address, is_extern, ordinal, addr_value);
+    auto entry =
+        std::make_unique<ExportEntry>(address, is_extern, ordinal, addr_value);
     if (addr_value == 0) {
       corrupted_entries.insert(ordinal);
     }
@@ -1010,9 +1118,12 @@ ok_error_t Parser::parse_exports() {
       uint32_t name_offset = binary_->rva_to_offset(addr_value);
       if (auto res = stream_->peek_string_at(name_offset)) {
         entry->name_ = std::move(*res);
-        if (entry->name_.size() > MAX_EXPORT_NAME_SIZE || !is_printable(entry->name_)) {
-          LIEF_INFO("'{}' is not a valid export name", printable_string(entry->name_));
-          entry = std::make_unique<ExportEntry>(address, is_extern, ordinal, addr_value);
+        if (entry->name_.size() > MAX_EXPORT_NAME_SIZE ||
+            !is_printable(entry->name_))
+        {
+          LIEF_INFO("Invalid export name '{}'", printable_string(entry->name_));
+          entry = std::make_unique<ExportEntry>(address, is_extern, ordinal,
+                                                addr_value);
           entry->name_.clear();
         }
       }
@@ -1026,12 +1137,15 @@ ok_error_t Parser::parse_exports() {
     if (auto res = ordinal_table_value(*stream_, ordinal_table_offset, i)) {
       ordinal = *res;
     } else {
-      LIEF_WARN("Can't read the Export.ordinal_table[{}]", i);
+      LIEF_WARN("Failed to read Export.ordinal_table[{}]", i);
       break;
     }

     if (ordinal >= export_entries.size()) {
-      LIEF_WARN("Ordinal value ordinal_table[{}]: {} is out of range the export entries", i, ordinal);
+      LIEF_WARN(
+          "Ordinal value ordinal_table[{}]: {} out of range for export entries", i,
+          ordinal
+      );
       break;
     }

@@ -1042,23 +1156,24 @@ ok_error_t Parser::parse_exports() {
       if (auto res = name_table_value(*stream_, name_table_offset, i)) {
         name_offset = binary_->rva_to_offset(*res);
       } else {
-        LIEF_WARN("Can't read the Export.name_table[{}]", i);
+        LIEF_WARN("Failed to read Export.name_table[{}]", i);
         corrupted_entries.insert(entry.ordinal_);
         continue;
       }
-      LIEF_DEBUG("names[{:03d}]: 0x{:06x}", i, name_offset);
+      LIEF_DEBUG("names[{:03d}]: {:#08x}", i, name_offset);
       if (auto res = stream_->peek_string_at(name_offset)) {
         std::string name = *res;
         if (name.empty() || name.size() > MAX_EXPORT_NAME_SIZE) {
           if (!name.empty()) {
-            LIEF_WARN("'{}' is not a valid export name", printable_string(name));
+            LIEF_WARN("Invalid export name '{}'", printable_string(name));
           }
           corrupted_entries.insert(entry.ordinal_);
         } else {
           entry.name_ = std::move(name);
         }
       } else {
-        LIEF_WARN("Can't read the Export.enries[{}].name at 0x{:x}", i, name_offset);
+        LIEF_WARN("Failed to read Export.entries[{}].name at {:#x}", i,
+                  name_offset);
         corrupted_entries.insert(entry.ordinal_);
       }
     }
@@ -1071,14 +1186,15 @@ ok_error_t Parser::parse_exports() {
       // Split on '.'
       const size_t dot_pos = fwd_str.find('.');
       if (dot_pos != std::string::npos) {
-        library  = fwd_str.substr(0, dot_pos);
+        library = fwd_str.substr(0, dot_pos);
         function = fwd_str.substr(dot_pos + 1);

         if (auto name_rva = name_table_value(*stream_, name_table_offset, i)) {
           uint32_t name_offset = binary_->rva_to_offset(*name_rva);
           if (auto name = stream_->peek_string_at(name_offset)) {
             const bool is_valid = !name->empty() &&
-              name->size() <= MAX_EXPORT_NAME_SIZE && is_printable(*name);
+                                  name->size() <= MAX_EXPORT_NAME_SIZE &&
+                                  is_printable(*name);
             if (is_valid) {
               entry.name_ = std::move(*name);
             }
@@ -1094,7 +1210,7 @@ ok_error_t Parser::parse_exports() {
       continue;
     }
     export_object->max_ordinal_ =
-      std::max<uint32_t>(export_object->max_ordinal_, entry->ordinal());
+        std::max<uint32_t>(export_object->max_ordinal_, entry->ordinal());
     export_object->entries_.push_back(std::move(entry));
   }

@@ -1104,6 +1220,10 @@ ok_error_t Parser::parse_exports() {

 ok_error_t Parser::parse_signature() {
   LIEF_DEBUG("Parsing signature");
+  if (stream_->is_memory_view()) {
+    return ok();
+  }
+
   static constexpr size_t SIZEOF_HEADER = 8;

   /*** /!\ In this data directory, RVA is used as an **OFFSET** /!\ ****/
@@ -1113,12 +1233,12 @@ ok_error_t Parser::parse_signature() {
     return make_error_code(lief_errors::not_found);
   }

-  const uint32_t signature_offset  = cert_dir->RVA();
-  const uint32_t signature_size    = cert_dir->size();
+  const uint32_t signature_offset = cert_dir->RVA();
+  const uint32_t signature_size = cert_dir->size();
   const uint64_t end_p = signature_offset + signature_size;

-  LIEF_DEBUG("Signature Offset: 0x{:04x}", signature_offset);
-  LIEF_DEBUG("Signature Size:   0x{:04x}", signature_size);
+  LIEF_DEBUG("Signature Offset: {:#06x}", signature_offset);
+  LIEF_DEBUG("Signature Size:   {:#06x}", signature_size);

   stream_->setpos(signature_offset);
   while (stream_->pos() < end_p) {
@@ -1135,36 +1255,37 @@ ok_error_t Parser::parse_signature() {
     }

     if (length <= SIZEOF_HEADER) {
-      LIEF_WARN("The signature seems corrupted!");
+      LIEF_WARN("Signature appears corrupted");
       break;
     }

     if (auto res = stream_->read<uint16_t>()) {
       revision = *res;
     } else {
-      LIEF_ERR("Can't parse signature revision");
+      LIEF_ERR("Failed to parse signature revision");
       break;
     }

     if (auto res = stream_->read<uint16_t>()) {
       certificate_type = *res;
     } else {
-      LIEF_ERR("Can't read certificate_type");
+      LIEF_ERR("Failed to read certificate type");
       break;
     }

-    LIEF_DEBUG("Signature {}r0x{:x} (0x{:x} bytes)", certificate_type, revision, length);
+    LIEF_DEBUG("Signature {}r{:#x} ({:#x} bytes)", certificate_type, revision,
+               length);

     std::vector<uint8_t> raw_signature;
     if (!stream_->read_data(raw_signature, length - SIZEOF_HEADER)) {
-      LIEF_INFO("Can't read 0x{:x} bytes", length);
+      LIEF_INFO("Failed to read {:#x} bytes", length);
       break;
     }

     if (auto sign = SignatureParser::parse(std::move(raw_signature))) {
       binary_->signatures_.push_back(std::move(*sign));
     } else {
-      LIEF_INFO("Unable to parse the signature");
+      LIEF_INFO("Failed to parse signature");
     }
     stream_->align(8);
     if (stream_->pos() <= current_p) {
@@ -1177,18 +1298,24 @@ ok_error_t Parser::parse_signature() {

 ok_error_t Parser::parse_overlay() {
   LIEF_DEBUG("Parsing Overlay");
+
+  if (stream_->is_memory_view()) {
+    return ok();
+  }
+
   const uint64_t last_section_offset = std::accumulate(
-      std::begin(binary_->sections_), std::end(binary_->sections_), uint64_t{ 0u },
-      [] (uint64_t offset, const std::unique_ptr<Section>& section) {
+      binary_->sections_.begin(), binary_->sections_.end(), uint64_t{0u},
+      [](uint64_t offset, const std::unique_ptr<Section>& section) {
         return std::max<uint64_t>(section->offset() + section->size(), offset);
-      });
+      }
+  );

-  LIEF_DEBUG("Overlay offset: 0x{:x}", last_section_offset);
+  LIEF_DEBUG("Overlay offset: {:#x}", last_section_offset);

   if (last_section_offset < stream_->size()) {
     const uint64_t overlay_size = stream_->size() - last_section_offset;

-    LIEF_DEBUG("Overlay size: 0x{:x}", overlay_size);
+    LIEF_DEBUG("Overlay size: {:#x}", overlay_size);
     if (stream_->peek_data(binary_->overlay_, last_section_offset, overlay_size)) {
       binary_->overlay_offset_ = last_section_offset;
     }
@@ -1197,7 +1324,6 @@ ok_error_t Parser::parse_overlay() {
 }


-
 std::unique_ptr<Binary> Parser::parse(const std::string& filename,
                                       const ParserConfig& conf) {
   if (!is_pe(filename)) {
@@ -1241,16 +1367,11 @@ std::unique_ptr<Binary> Parser::parse(std::unique_ptr<BinaryStream> stream,

 bool Parser::is_valid_import_name(const std::string& name) {

-  // According to https://stackoverflow.com/a/23340781
-  static constexpr unsigned MAX_IMPORT_NAME_SIZE = 0x1000;
-
   if (name.empty() || name.size() > MAX_IMPORT_NAME_SIZE) {
     return false;
   }
-  const bool valid_chars = std::all_of(std::begin(name), std::end(name),
-      [] (char c) {
-        return ::isprint(c);
-      });
+  const bool valid_chars =
+      std::all_of(name.begin(), name.end(), [](char c) { return ::isprint(c); });
   return valid_chars;
 }

@@ -1283,11 +1404,10 @@ void Parser::memoize(COFF::String str) {


 COFF::String* Parser::find_coff_string(uint32_t offset) const {
-  auto it = memoize_coff_str_.find(offset);
-  if (it == memoize_coff_str_.end()) {
-    return nullptr;
+  if (auto it = memoize_coff_str_.find(offset); it != memoize_coff_str_.end()) {
+    return &binary_->strings_table_[it->second];
   }
-  return &binary_->strings_table_[it->second];
+  return nullptr;
 }

 std::unique_ptr<SpanStream> Parser::stream_from_rva(uint32_t rva, size_t size) {
@@ -1306,7 +1426,9 @@ std::unique_ptr<SpanStream> Parser::stream_from_rva(uint32_t rva, size_t size) {
     return std::make_unique<SpanStream>(nullptr, 0);
   }

-  if ((uint64_t)delta >= content.size() || ((uint64_t)delta + size) > content.size()) {
+  if ((uint64_t)delta >= content.size() ||
+      ((uint64_t)delta + size) > content.size())
+  {
     return std::make_unique<SpanStream>(nullptr, 0);
   }

@@ -1338,76 +1460,125 @@ void Parser::record_relocation(uint32_t rva, span<const uint8_t> data) {
       break;

     default:
-      LIEF_DEBUG("Error: {}:{}: unsupported size ({})", __FUNCTION__,
-                 __LINE__, data.size());
+      LIEF_DEBUG("Error: {}:{}: unsupported size ({})", __FUNCTION__, __LINE__,
+                 data.size());
       return;
   }

   uint32_t offset = bin().rva_to_offset(rva);
-  LIEF_DEBUG("ARM64X[0x{:08x}]: 0x{:08x} ({} bytes)", rva, value, data.size());
+  LIEF_DEBUG("ARM64X[{:#010x}]: {:#010x} ({} bytes)", rva, value, data.size());
   dyn_hdr_relocs_.insert({offset, {data.size(), value}});
 }

-ok_error_t Parser::record_delta_relocation(uint32_t rva, int64_t delta, size_t size) {
+ok_error_t Parser::record_delta_relocation(uint32_t rva, int64_t delta,
+                                           size_t size) {
   uint32_t offset = bin().rva_to_offset(rva);

   switch (size) {
     case sizeof(uint8_t):
-      {
-        auto value = stream_->peek<uint8_t>(offset);
-        if (!value) {
-          return make_error_code(value.error());
-        }
-        LIEF_DEBUG("ARM64X[0x{:08x}]: 0x{:08x} (1 bytes)", rva,
-                   (uint64_t)((int64_t)*value + delta));
-        dyn_hdr_relocs_.insert({offset, {size, (uint64_t)((int64_t)*value + delta)}});
-        return ok();
+    {
+      auto value = stream_->peek<uint8_t>(offset);
+      if (!value) {
+        return make_error_code(value.error());
       }
+      LIEF_DEBUG("ARM64X[{:#010x}]: {:#010x} (1 bytes)", rva,
+                 (uint64_t)((int64_t)*value + delta));
+      dyn_hdr_relocs_.insert({offset,
+                              {size, (uint64_t)((int64_t)*value + delta)}});
+      return ok();
+    }

     case sizeof(uint16_t):
-      {
-        auto value = stream_->peek<uint16_t>(offset);
-        if (!value) {
-          return make_error_code(value.error());
-        }
-        LIEF_DEBUG("ARM64X[0x{:08x}]: 0x{:08x} (2 bytes)", rva,
-                   (uint64_t)((int64_t)*value + delta));
-        dyn_hdr_relocs_.insert({offset, {size, (uint64_t)((int64_t)*value + delta)}});
-        return ok();
+    {
+      auto value = stream_->peek<uint16_t>(offset);
+      if (!value) {
+        return make_error_code(value.error());
       }
+      LIEF_DEBUG("ARM64X[{:#010x}]: {:#010x} (2 bytes)", rva,
+                 (uint64_t)((int64_t)*value + delta));
+      dyn_hdr_relocs_.insert({offset,
+                              {size, (uint64_t)((int64_t)*value + delta)}});
+      return ok();
+    }

     case sizeof(uint32_t):
-      {
-        auto value = stream_->peek<uint32_t>(offset);
-        if (!value) {
-          return make_error_code(value.error());
-        }
-        LIEF_DEBUG("ARM64X[0x{:08x}]: 0x{:08x} (4 bytes)", rva,
-                   (uint64_t)((int64_t)*value + delta));
-        dyn_hdr_relocs_.insert({offset, {size, (uint64_t)((int64_t)*value + delta)}});
-        return ok();
+    {
+      auto value = stream_->peek<uint32_t>(offset);
+      if (!value) {
+        return make_error_code(value.error());
       }
+      LIEF_DEBUG("ARM64X[{:#010x}]: {:#010x} (4 bytes)", rva,
+                 (uint64_t)((int64_t)*value + delta));
+      dyn_hdr_relocs_.insert({offset,
+                              {size, (uint64_t)((int64_t)*value + delta)}});
+      return ok();
+    }

     case sizeof(uint64_t):
-      {
-        auto value = stream_->peek<uint64_t>(offset);
-        if (!value) {
-          return make_error_code(value.error());
-        }
-        LIEF_DEBUG("ARM64X[0x{:08x}]: 0x{:08x} (8 bytes)", rva,
-                   (uint64_t)((int64_t)*value + delta));
-        dyn_hdr_relocs_.insert({offset, {size, (uint64_t)((int64_t)*value + delta)}});
-        return ok();
+    {
+      auto value = stream_->peek<uint64_t>(offset);
+      if (!value) {
+        return make_error_code(value.error());
       }
+      LIEF_DEBUG("ARM64X[{:#010x}]: {:#010x} (8 bytes)", rva,
+                 (uint64_t)((int64_t)*value + delta));
+      dyn_hdr_relocs_.insert({offset,
+                              {size, (uint64_t)((int64_t)*value + delta)}});
+      return ok();
+    }

     default:
-      LIEF_DEBUG("Error: {}:{}: unsupported size ({})", __FUNCTION__,
-                 __LINE__, size);
+      LIEF_DEBUG("Error: {}:{}: unsupported size ({})", __FUNCTION__, __LINE__,
+                 size);
       return make_error_code(lief_errors::not_supported);
   }

   return make_error_code(lief_errors::not_supported);
 }

+
+std::unique_ptr<Binary> Parser::parse_from_memory(uintptr_t address,
+                                                  const ParserConfig& config) {
+  static constexpr size_t MAX_SIZE = std::numeric_limits<size_t>::max() >> 2;
+  return parse_from_memory(address, MAX_SIZE, config);
+}
+
+std::unique_ptr<Binary> Parser::parse_from_memory(uintptr_t address, size_t size,
+                                                  const ParserConfig& config) {
+  auto stream = std::make_unique<MemoryStream>(address, size);
+  if (!is_pe(*stream)) {
+    return nullptr;
+  }
+
+  Parser parser{std::move(stream)};
+  parser.init(config);
+  return std::move(parser.binary_);
+}
+
+std::unique_ptr<Binary> Parser::parse_from_dump(const std::string& filepath,
+                                                uint64_t addr,
+                                                const ParserConfig& config) {
+  auto stream = VectorStream::from_file(filepath);
+  if (!stream) {
+    return nullptr;
+  }
+  return parse_from_dump(std::make_unique<VectorStream>(std::move(*stream)), addr,
+                         config);
+}
+
+std::unique_ptr<Binary> Parser::parse_from_dump(BinaryStream& stream,
+                                                uint64_t addr,
+                                                const ParserConfig& config) {
+  return parse(std::make_unique<DumpStream>(addr, stream), config);
 }
+
+std::unique_ptr<Binary>
+    Parser::parse_from_dump(std::unique_ptr<BinaryStream> stream, uint64_t addr,
+                            const ParserConfig& config) {
+  if (stream == nullptr) {
+    return nullptr;
+  }
+  return parse(std::make_unique<DumpStream>(addr, std::move(stream)), config);
+}
+
 }
diff --git a/deps/LIEF/src/PE/Parser.tcc b/deps/LIEF/src/PE/Parser.tcc
index adaec0c81fc..967d49c7e5e 100644
--- a/deps/LIEF/src/PE/Parser.tcc
+++ b/deps/LIEF/src/PE/Parser.tcc
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -18,25 +18,29 @@
 #include "logging.hpp"

 #include "LIEF/BinaryStream/BinaryStream.hpp"
+#include "LIEF/BinaryStream/MemoryStream.hpp"
 #include "LIEF/BinaryStream/SpanStream.hpp"
 #include "LIEF/PE/LoadConfigurations.hpp"
 #include "LIEF/PE/LoadConfigurations/CHPEMetadata.hpp"
 #include "LIEF/PE/LoadConfigurations/LoadConfiguration.hpp"
 #include "LIEF/PE/Parser.hpp"
+#include "LIEF/PE/TLS.hpp"
 #include "LIEF/PE/Binary.hpp"
 #include "LIEF/PE/DataDirectory.hpp"
-#include "LIEF/PE/DataDirectory.hpp"
+#include "LIEF/PE/Relocation.hpp"
+#include "LIEF/PE/RelocationEntry.hpp"
 #include "LIEF/PE/EnumToString.hpp"
 #include "LIEF/PE/Section.hpp"
 #include "LIEF/PE/ImportEntry.hpp"

-#include "internal_utils.hpp"
-#include "frozen.hpp"
 #include "PE/Structures.hpp"
-#include "LIEF/PE/Parser.hpp"

-namespace LIEF {
-namespace PE {
+namespace LIEF::PE {
+
+inline uint64_t delta(const Parser& parser) {
+  assert(parser.bin().optional_header().imagebase() >= *parser.config().rebase);
+  return parser.bin().optional_header().imagebase() - *parser.config().rebase;
+}

 bool inline warn_missing_section(const DataDirectory& dir) {
   return dir.type() != DataDirectory::TYPES::CERTIFICATE_TABLE &&
@@ -76,11 +80,11 @@ ok_error_t Parser::parse() {
   }

   if (!parse_exceptions()) {
-    LIEF_WARN("Failed to parse exceptions entries");
+    LIEF_WARN("Failed to parse exception entries");
   }

   if (!parse_overlay()) {
-    LIEF_WARN("Failed to parse the overlay");
+    LIEF_WARN("Failed to parse overlay");
   }

   if (!parse_debug()) {
@@ -95,17 +99,248 @@ ok_error_t Parser::parse() {
     LIEF_WARN("Nested PE ARM64X parsed with errors");
   }

+  if (stream_->is_memory_view() && config_.rebase) {
+    const uint64_t imagebase = binary_->optional_header().imagebase();
+    if (imagebase < *config_.rebase) {
+      LIEF_WARN("Can't revert the memory layout: the image base ({:#x}) is "
+                "smaller than the rebase address ({:#x})",
+                imagebase, *config_.rebase);
+    } else {
+      LIEF_DEBUG("Rebase delta: ({0:#010x})", delta(*this));
+      undo_relocations<PE_T>();
+      fix_iat<PE_T>();
+      fix_tls<PE_T>();
+      fix_load_config<PE_T>();
+
+      binary_->optional_header().imagebase(*config_.rebase);
+    }
+  }
+
+  return ok();
+}
+
+template<typename PE_T>
+ok_error_t Parser::fix_load_config() {
+  LoadConfiguration* lconf = binary_->load_configuration();
+  if (lconf == nullptr) {
+    return ok();
+  }
+  const uint64_t D = delta(*this);
+  const uint64_t imagebase = binary_->optional_header().imagebase();
+
+  if (uint64_t addr = lconf->security_cookie(); addr > 0 && addr >= imagebase) {
+    lconf->security_cookie(addr - D);
+  }
+
+  if (uint64_t addr = lconf->lock_prefix_table(); addr > 0 && addr >= imagebase) {
+    lconf->lock_prefix_table(addr - D);
+  }
+
+  if (uint64_t addr = lconf->se_handler_table().value_or(0);
+      addr > 0 && addr >= imagebase)
+  {
+    lconf->se_handler_table(addr - D);
+  }
+
+  if (uint64_t addr = lconf->guard_cf_check_function_pointer().value_or(0);
+      addr > 0 && addr >= imagebase)
+  {
+    lconf->guard_cf_check_function_pointer(addr - D);
+  }
+
+  if (uint64_t addr = lconf->guard_cf_dispatch_function_pointer().value_or(0);
+      addr > 0 && addr >= imagebase)
+  {
+    lconf->guard_cf_dispatch_function_pointer(addr - D);
+  }
+
+  if (uint64_t addr = lconf->guard_address_taken_iat_entry_table().value_or(0);
+      addr > 0 && addr >= imagebase)
+  {
+    lconf->guard_address_taken_iat_entry_table(addr - D);
+  }
+
+  if (uint64_t addr = lconf->guard_long_jump_target_table().value_or(0);
+      addr > 0 && addr >= imagebase)
+  {
+    lconf->guard_long_jump_target_table(addr - D);
+  }
+
+  if (uint64_t addr = lconf->dynamic_value_reloc_table().value_or(0);
+      addr > 0 && addr >= imagebase)
+  {
+    lconf->dynamic_value_reloc_table(addr - D);
+  }
+
+  if (uint64_t addr = lconf->hybrid_metadata_pointer().value_or(0);
+      addr > 0 && addr >= imagebase)
+  {
+    lconf->hybrid_metadata_pointer(addr - D);
+  }
+
+  if (uint64_t addr = lconf->guard_rf_failure_routine().value_or(0);
+      addr > 0 && addr >= imagebase)
+  {
+    lconf->guard_rf_failure_routine(addr - D);
+  }
+
+  if (uint64_t addr =
+          lconf->guard_rf_failure_routine_function_pointer().value_or(0);
+      addr > 0 && addr >= imagebase)
+  {
+    lconf->guard_rf_failure_routine_function_pointer(addr - D);
+  }
+
+  if (uint64_t addr =
+          lconf->guard_rf_verify_stackpointer_function_pointer().value_or(0);
+      addr > 0 && addr >= imagebase)
+  {
+    lconf->guard_rf_verify_stackpointer_function_pointer(addr - D);
+  }
+
+  if (uint64_t addr = lconf->enclave_configuration_ptr().value_or(0);
+      addr > 0 && addr >= imagebase)
+  {
+    lconf->enclave_configuration_ptr(addr - D);
+  }
+
+  if (uint64_t addr = lconf->volatile_metadata_pointer().value_or(0);
+      addr > 0 && addr >= imagebase)
+  {
+    lconf->volatile_metadata_pointer(addr - D);
+  }
+
+  if (uint64_t addr = lconf->guard_eh_continuation_table().value_or(0);
+      addr > 0 && addr >= imagebase)
+  {
+    lconf->guard_eh_continuation_table(addr - D);
+  }
+
+  if (uint64_t addr = lconf->guard_xfg_check_function_pointer().value_or(0);
+      addr > 0 && addr >= imagebase)
+  {
+    lconf->guard_xfg_check_function_pointer(addr - D);
+  }
+
+  if (uint64_t addr = lconf->guard_xfg_dispatch_function_pointer().value_or(0);
+      addr > 0 && addr >= imagebase)
+  {
+    lconf->guard_xfg_dispatch_function_pointer(addr - D);
+  }
+
+  if (uint64_t addr =
+          lconf->guard_xfg_table_dispatch_function_pointer().value_or(0);
+      addr > 0 && addr >= imagebase)
+  {
+    lconf->guard_xfg_table_dispatch_function_pointer(addr - D);
+  }
+
+  if (uint64_t addr = lconf->cast_guard_os_determined_failure_mode().value_or(0);
+      addr > 0 && addr >= imagebase)
+  {
+    lconf->cast_guard_os_determined_failure_mode(addr - D);
+  }
+
+  if (uint64_t addr = lconf->guard_memcpy_function_pointer().value_or(0);
+      addr > 0 && addr >= imagebase)
+  {
+    lconf->guard_memcpy_function_pointer(addr - D);
+  }
+
+  if (uint64_t addr = lconf->uma_function_pointers().value_or(0);
+      addr > 0 && addr >= imagebase)
+  {
+    lconf->uma_function_pointers(addr - D);
+  }
+  return ok();
+}
+
+template<typename PE_T>
+ok_error_t Parser::fix_tls() {
+  TLS* tls = binary_->tls();
+  if (tls == nullptr) {
+    return ok();
+  }
+
+  const uint64_t D = delta(*this);
+  tls->addressof_index(tls->addressof_index() - D);
+  tls->addressof_callbacks(tls->addressof_callbacks() - D);
+  /* Address of raw data */ {
+    const auto& [start, end] = tls->addressof_raw_data();
+    tls->addressof_raw_data(std::make_pair(start - D, end - D));
+  }
+  /* Callbacks */ {
+    std::vector<uint64_t> callbacks = tls->callbacks();
+    for (size_t i = 0; i < callbacks.size(); ++i) {
+      callbacks[i] -= D;
+    }
+    tls->callbacks(std::move(callbacks));
+  }
   return ok();
 }

+template<typename PE_T>
+ok_error_t Parser::fix_iat() {
+  for (Import& imp : binary_->imports()) {
+    for (ImportEntry& entry : imp.entries()) {
+      entry.iat_value(entry.ilt_value());
+    }
+  }
+  return ok();
+}
+
+template<typename PE_T>
+ok_error_t Parser::undo_relocations() {
+  const uint64_t D = delta(*this);
+  for (const Relocation& R : binary_->relocations()) {
+    for (const RelocationEntry& entry : R.entries()) {
+      if (entry.type() == RelocationEntry::BASE_TYPES::ABS) {
+        continue;
+      }
+
+      const uint64_t rva = entry.address();
+      Section* sec = binary_->section_from_rva(rva);
+
+      if (sec == nullptr) {
+        continue;
+      }
+
+      span<uint8_t> buffer = sec->writable_content();
+      const uint64_t rel_offset = rva - sec->virtual_address();
+
+      switch (entry.type()) {
+        case RelocationEntry::BASE_TYPES::DIR64:
+        {
+          if (rel_offset > buffer.size() ||
+              buffer.size() - rel_offset < sizeof(uint64_t))
+          {
+            LIEF_WARN("Relocation at RVA {:#x} is out of the section's "
+                      "content bounds",
+                      rva);
+            continue;
+          }
+          uint64_t value = 0;
+          std::memcpy(&value, buffer.data() + rel_offset, sizeof(value));
+          value -= D;
+          std::memcpy(buffer.data() + rel_offset, &value, sizeof(value));
+          break;
+        }
+
+        default:
+          LIEF_WARN("Unsupported reloc type: {}", to_string(entry.type()));
+          continue;
+      }
+    }
+  }
+  return ok();
+}

 template<typename PE_T>
 ok_error_t Parser::parse_nested_relocated() {
   class RelocatedStream : public BinaryStream {
     public:
     RelocatedStream(Parser& parent) :
-      parent_(&parent)
-    {}
+      parent_(&parent) {}

     ~RelocatedStream() override = default;

@@ -132,8 +367,7 @@ ok_error_t Parser::parse_nested_relocated() {
       }

       // Exact match
-      if (it_value->first == offset && (offset + it_value->second.size) <= size)
-      {
+      if (it_value->first == offset && (offset + it_value->second.size) <= size) {
         const relocation_t& R = it_value->second;

         std::memcpy(dst, &R.value, R.size);
@@ -158,8 +392,7 @@ ok_error_t Parser::parse_nested_relocated() {
     }

     result<const void*> read_at(uint64_t /*offset*/, uint64_t /*size*/,
-                                uint64_t /*va*/) const override
-    {
+                                uint64_t /*va*/) const override {
       return make_error_code(lief_errors::not_supported);
     }

@@ -192,7 +425,7 @@ ok_error_t Parser::parse_headers() {

   auto dos_hdr = stream_->peek<details::pe_dos_header>(0);
   if (!dos_hdr) {
-    LIEF_ERR("Can't read the DOS Header");
+    LIEF_ERR("Failed to read DOS header");
     return make_error_code(dos_hdr.error());
   }

@@ -202,7 +435,7 @@ ok_error_t Parser::parse_headers() {
   {
     auto pe_header = stream_->peek<details::pe_header>(addr_new_exe);
     if (!pe_header) {
-      LIEF_ERR("Can't read the PE header");
+      LIEF_ERR("Failed to read PE header");
       return make_error_code(pe_header.error());
     }
     binary_->header_ = *pe_header;
@@ -212,7 +445,7 @@ ok_error_t Parser::parse_headers() {
     const uint64_t offset = addr_new_exe + sizeof(details::pe_header);
     auto opt_header = stream_->peek<pe_optional_header>(offset);
     if (!opt_header) {
-      LIEF_ERR("Can't read the optional header");
+      LIEF_ERR("Failed to read optional header");
       return make_error_code(opt_header.error());
     }
     binary_->optional_header_ = *opt_header;
@@ -224,27 +457,31 @@ ok_error_t Parser::parse_headers() {
 template<typename PE_T>
 ok_error_t Parser::parse_data_directories() {
   using pe_optional_header = typename PE_T::pe_optional_header;
-  const uint32_t directories_offset = binary_->dos_header().addressof_new_exeheader() +
-                                      sizeof(details::pe_header) + sizeof(pe_optional_header);
-  static constexpr auto NB_DIR = DataDirectory::DEFAULT_NB;
-  binary_->data_directories_.resize(NB_DIR);
-  // Make sure the data_directory array is correctly initialized
-  for (size_t i = 0; i < NB_DIR; ++i) {
-    binary_->data_directories_[i] = std::make_unique<DataDirectory>();
-  }
+  const uint32_t directories_offset =
+      binary_->dos_header().addressof_new_exeheader() +
+      sizeof(details::pe_header) + sizeof(pe_optional_header);
+  static constexpr auto DEFAULT_NB = DataDirectory::DEFAULT_NB;
+  static constexpr auto MAX_DATA_DIRECTORIES = 30;
+  binary_->data_directories_.reserve(DEFAULT_NB);

   stream_->setpos(directories_offset);
-
   // WARNING: The PE specifications require that the data directory table ends
   // with a null entry (RVA / Size, set to 0).
   //
   // Nevertheless it seems that this requirement is not enforced by the PE loader.
-  // The binary bc203f2b6a928f1457e9ca99456747bcb7adbbfff789d1c47e9479aac11598af contains a non-null final
-  // data directory (watermarking?)
-  for (size_t i = 0; i < NB_DIR; ++i) {
+  // The binary bc203f2b6a928f1457e9ca99456747bcb7adbbfff789d1c47e9479aac11598af
+  // contains a non-null final data directory (watermarking?)
+  uint32_t nb_dir = binary_->optional_header().numberof_rva_and_size();
+  if (nb_dir > MAX_DATA_DIRECTORIES) {
+    LIEF_WARN("The number of data directories ({}) is larger than the maximum "
+              "value ({}). The extra entries are ignored",
+              nb_dir, MAX_DATA_DIRECTORIES);
+    nb_dir = MAX_DATA_DIRECTORIES;
+  }
+  for (size_t i = 0; i < nb_dir; ++i) {
     auto raw_dir = stream_->read<details::pe_data_directory>();
     if (!raw_dir) {
-      LIEF_ERR("Can't read data directory at #{}", i);
+      LIEF_ERR("Failed to read data directory #{}", i);
       return make_error_code(lief_errors::read_error);
     }
     const auto dir_type = DataDirectory::TYPES(i);
@@ -252,13 +489,12 @@ ok_error_t Parser::parse_data_directories() {

     if (directory->RVA() > 0) {
       const uint64_t offset = binary_->rva_to_offset(directory->RVA());
-      directory->section_   = binary_->section_from_offset(offset);
+      directory->section_ = binary_->section_from_offset(offset);
       if (directory->section_ == nullptr && warn_missing_section(*directory)) {
-        LIEF_WARN("Unable to find the section associated with {}",
-                  to_string(dir_type));
+        LIEF_WARN("Section not found for {}", to_string(dir_type));
       }
     }
-    binary_->data_directories_[i] = std::move(directory);
+    binary_->data_directories_.push_back(std::move(directory));
   }

   // Import Table
@@ -308,7 +544,7 @@ ok_error_t Parser::parse_data_directories() {
     if (dir->RVA() > 0) {
       auto is_ok = parse_delay_imports<PE_T>();
       if (!is_ok) {
-        LIEF_WARN("The parsing of delay imports has failed or is incomplete ('{}')",
+        LIEF_WARN("Delay imports parsing failed or incomplete ('{}')",
                   to_string(get_error(is_ok)));
       }
     }
@@ -321,82 +557,87 @@ template<typename PE_T>
 ok_error_t Parser::parse_import_table() {
   using uint = typename PE_T::uint;
   DataDirectory* import_dir = binary_->import_dir();
-  DataDirectory* iat_dir    = binary_->iat_dir();
+  DataDirectory* iat_dir = binary_->iat_dir();

   if (import_dir == nullptr || iat_dir == nullptr) {
     return make_error_code(lief_errors::not_found);
   }


-  const uint32_t import_rva    = import_dir->RVA();
+  const uint32_t import_rva = import_dir->RVA();
   const uint64_t import_offset = binary_->rva_to_offset(import_rva);
-  const size_t   import_end    = import_offset + import_dir->size();
+  const size_t import_end = import_offset + import_dir->size();

   uint64_t last_imp_offset = 0;

   stream_->setpos(import_offset);
   result<details::pe_import> imp_res;

-  while (stream_->pos() < import_end && (imp_res = stream_->read<details::pe_import>())) {
+  while (stream_->pos() < import_end &&
+         (imp_res = stream_->read<details::pe_import>()))
+  {
     const auto raw_imp = *imp_res;
     if (BinaryStream::is_all_zero(raw_imp)) {
       break;
     }

     auto import = std::make_unique<Import>(raw_imp);
-    import->directory_       = import_dir;
-    import->iat_directory_   = iat_dir;
-    import->type_            = type_;
+    import->directory_ = import_dir;
+    import->iat_directory_ = iat_dir;
+    import->type_ = type_;

     if (import->name_rva_ == 0) {
-      LIEF_DEBUG("Name's RVA is null");
+      LIEF_DEBUG("Name RVA is null");
       break;
     }

     // Offset to the Import (Library) name
     const uint64_t offset_name = binary_->rva_to_offset(import->name_rva_);

-    if (auto res_name = stream_->peek_string_at(offset_name))  {
+    if (auto res_name = stream_->peek_string_at(offset_name)) {
       import->name_ = std::move(*res_name);
     } else {
-      LIEF_ERR("Can't read the import name (offset: 0x{:x})", offset_name);
+      LIEF_ERR("Failed to read import name (offset: {:#x})", offset_name);
       continue;
     }


-    // We assume that a DLL name should be at least 4 length size and "printable
+    // We assume that a DLL name should be at least 4 characters long and printable
     const std::string& imp_name = import->name();
     if (!is_valid_dll_name(imp_name)) {
       if (!imp_name.empty()) {
-        LIEF_WARN("'{}' is not a valid import name and will be discarded", imp_name);
+        LIEF_WARN("Invalid import name '{}', discarding", imp_name);
         continue;
       }
       continue; // skip
     }

-    last_imp_offset = std::max<uint64_t>(last_imp_offset, offset_name + imp_name.size() + 1);
+    last_imp_offset =
+        std::max<uint64_t>(last_imp_offset, offset_name + imp_name.size() + 1);

     // Offset to import lookup table
-    uint64_t LT_offset = import->import_lookup_table_rva() > 0 ?
-                         binary_->rva_to_offset(import->import_lookup_table_rva()) :
-                         0;
+    uint64_t LT_offset =
+        import->import_lookup_table_rva() > 0 ?
+            binary_->rva_to_offset(import->import_lookup_table_rva()) :
+            0;


     // Offset to the import address table
-    uint64_t IAT_offset = import->import_address_table_rva() > 0 ?
-                          binary_->rva_to_offset(import->import_address_table_rva()) :
-                          0;
-    LIEF_DEBUG("IAT Offset: 0x{:08x}", IAT_offset);
-    LIEF_DEBUG("IAT RVA:    0x{:08x}", import->import_address_table_rva());
-    LIEF_DEBUG("ILT Offset: 0x{:08x}", LT_offset);
-    LIEF_DEBUG("ILT RVA:    0x{:08x}", import->import_lookup_table_rva());
+    uint64_t IAT_offset =
+        import->import_address_table_rva() > 0 ?
+            binary_->rva_to_offset(import->import_address_table_rva()) :
+            0;
+    LIEF_DEBUG("IAT Offset: {:#010x}", IAT_offset);
+    LIEF_DEBUG("IAT RVA:    {:#010x}", import->import_address_table_rva());
+    LIEF_DEBUG("ILT Offset: {:#010x}", LT_offset);
+    LIEF_DEBUG("ILT RVA:    {:#010x}", import->import_lookup_table_rva());

     uint IAT = 0;
     uint table = 0;

     if (IAT_offset > 0) {
       if (auto res_iat = stream_->peek<uint>(IAT_offset)) {
-        IAT   = *res_iat;
+        IAT = *res_iat;
         table = IAT;
         IAT_offset += sizeof(uint);
       }
@@ -404,44 +645,48 @@ ok_error_t Parser::parse_import_table() {

     if (LT_offset > 0) {
       if (auto res_lt = stream_->peek<uint>(LT_offset)) {
-        table      = *res_lt;
+        table = *res_lt;
         LT_offset += sizeof(uint);
       }
     }

     size_t idx = 0;

-    while (table != 0 || IAT != 0) {
+    while ((table != 0 || IAT != 0) && idx < Parser::MAX_IMPORT_ENTRIES) {
       auto entry = std::make_unique<ImportEntry>();
       entry->iat_value_ = IAT;
       entry->ilt_value_ = table;
-      entry->data_      = table > 0 ? table : IAT; // In some cases, ILT can be corrupted
-      entry->type_      = type_;
-      entry->rva_       = import->iat_rva_ + sizeof(uint) * (idx++);
+      entry->data_ =
+          table > 0 ? table : IAT; // In some cases, ILT can be corrupted
+      entry->type_ = type_;
+      entry->rva_ = import->iat_rva_ + sizeof(uint) * (idx++);

-      LIEF_DEBUG("IAT: 0x{:08x} | ILT: 0x{:08x}", IAT, table);
+      LIEF_DEBUG("IAT: {:#010x} | ILT: {:#010x}", IAT, table);

       if (!entry->is_ordinal()) {
         const size_t hint_off = binary_->rva_to_offset(entry->hint_name_rva());
         const size_t name_off = hint_off + sizeof(uint16_t);
-        if (auto entry_name = stream_->peek_string_at(name_off)) {
+        if (auto entry_name =
+                stream_->peek_string_at(name_off, MAX_IMPORT_NAME_SIZE))
+        {
           entry->name_ = std::move(*entry_name);
         } else {
-          LIEF_ERR("Can't read import entry name");
+          LIEF_ERR("Failed to read import entry name");
         }
         if (auto hint = stream_->peek<uint16_t>(hint_off)) {
           entry->hint_ = *hint;
         } else {
-          LIEF_INFO("Can't read hint value @0x{:x}", hint_off);
+          LIEF_INFO("Failed to read hint value @{:#x}", hint_off);
         }

-        last_imp_offset = std::max<uint64_t>(last_imp_offset, name_off + entry->name().size() + 1);
+        last_imp_offset = std::max<uint64_t>(last_imp_offset,
+                                             name_off + entry->name().size() + 1);

         // Check that the import name is valid
         if (is_valid_import_name(entry->name())) {
           import->entries_.push_back(std::move(entry));
-        } else if (!entry->name().empty()){
-          LIEF_INFO("'{}' is an invalid import name and will be discarded", entry->name());
+        } else if (!entry->name().empty()) {
+          LIEF_INFO("Invalid import name '{}', discarding", entry->name());
         }
       } else {
         import->entries_.push_back(std::move(entry));
@@ -452,7 +697,7 @@ ok_error_t Parser::parse_import_table() {
           IAT = *iat;
           IAT_offset += sizeof(uint);
         } else {
-          LIEF_ERR("Can't read the IAT value at 0x{:x}", IAT_offset);
+          LIEF_ERR("Failed to read IAT value at {:#x}", IAT_offset);
           IAT = 0;
         }
       } else {
@@ -465,13 +710,21 @@ ok_error_t Parser::parse_import_table() {
           table = *lt;
           LT_offset += sizeof(uint);
         } else {
-          LIEF_ERR("Can't read the Lookup Table value at 0x{:x}", LT_offset);
+          LIEF_ERR("Failed to read lookup table value at {:#x}", LT_offset);
           table = 0;
         }
       } else {
         table = 0;
       }
     }
+
+    if (idx >= MAX_IMPORT_ENTRIES) {
+      LIEF_WARN(
+          "Import '{}' exceeded max entries ({}), IAT may lack null terminator",
+          import->name(), MAX_IMPORT_ENTRIES
+      );
+    }
+
     import->nb_original_func_ = import->entries_.size();
     binary_->imports_.push_back(std::move(import));
   }
@@ -483,34 +736,42 @@ ok_error_t Parser::parse_import_table() {
 template<class PE_T>
 ok_error_t Parser::parse_delay_names_table(DelayImport& import,
                                            uint32_t names_offset,
-                                           uint32_t iat_offset)
-{
+                                           uint32_t iat_offset) {
   using ptr_t = typename PE_T::uint;
   ScopedStream nstream(*stream_, names_offset);

   auto entry_val = nstream->read<ptr_t>();
   if (!entry_val) {
-    LIEF_ERR("Can't read delay_imports.names_table[0]");
+    LIEF_ERR("Failed to read delay_imports.names_table[0]");
     return make_error_code(entry_val.error());
   }

   while (*nstream && entry_val && *entry_val != 0) {
-    auto entry = std::make_unique<DelayImportEntry>(*entry_val, type_);
     // Index of the current entry (-1 as we start with a read())
     const size_t index = (nstream->pos() - names_offset) / sizeof(ptr_t) - 1;
+
+    if (index >= MAX_IMPORT_ENTRIES) {
+      LIEF_WARN("Delay import '{}' exceeded the max number of entries ({})",
+                import.name(), MAX_IMPORT_ENTRIES);
+      break;
+    }
+
+    auto entry = std::make_unique<DelayImportEntry>(*entry_val, type_);
     const uint32_t iat_pos = index * sizeof(ptr_t);

     if (auto iat_value = stream_->peek<ptr_t>(iat_offset + iat_pos)) {
-      entry->value_ =import.iat() + iat_pos; // Symbol's value for the base class
+      entry->value_ = import.iat() + iat_pos; // Symbol's value for the base class
       entry->iat_value_ = *iat_value;
-      LIEF_DEBUG("  [{}].iat : 0x{:010x}", index, entry->iat_value_);
+      LIEF_DEBUG("  [{}].iat : {:#012x}", index, entry->iat_value_);
     }

     if (!entry->is_ordinal()) {
       uint64_t hint_off = binary_->rva_to_offset(entry->hint_name_rva());
       const uint64_t name_off = hint_off + sizeof(uint16_t);

-      if (auto entry_name = stream_->peek_string_at(name_off)) {
+      if (auto entry_name =
+              stream_->peek_string_at(name_off, MAX_IMPORT_NAME_SIZE))
+      {
         entry->name_ = std::move(*entry_name);
       }

@@ -521,8 +782,7 @@ ok_error_t Parser::parse_delay_names_table(DelayImport& import,
       if (Parser::is_valid_import_name(entry->name())) {
         import.entries_.push_back(std::move(entry));
       }
-    }
-    else /* is ordinal */ {
+    } else /* is ordinal */ {
       import.entries_.push_back(std::move(entry));
     }
     entry_val = nstream->read<ptr_t>();
@@ -554,7 +814,7 @@ ok_error_t Parser::parse_delay_imports() {
   while (stream) {
     auto import = stream->read<details::delay_imports>();
     if (!import) {
-      LIEF_DEBUG("Error: {}:{}", __FUNCTION__, __LINE__);
+      LIEF_DEBUG("Failed to read delay import at {}:{}", __FUNCTION__, __LINE__);
       return make_error_code(import.error());
     }

@@ -571,29 +831,28 @@ ok_error_t Parser::parse_delay_imports() {
       imp->name_ = std::move(*dll_name);
     }

-    LIEF_DEBUG("  delay_imports.name:       {}",       imp->name_);
-    LIEF_DEBUG("  delay_imports.attribute:  {}",       import->attribute);
-    LIEF_DEBUG("  delay_imports.handle:     0x{:04x}", import->handle);
-    LIEF_DEBUG("  delay_imports.iat:        0x{:04x}", import->iat);
-    LIEF_DEBUG("  delay_imports.name_table: 0x{:04x}", import->name_table);
-    LIEF_DEBUG("  delay_imports.bound_iat:  0x{:04x}", import->bound_iat);
-    LIEF_DEBUG("  delay_imports.unload_iat: 0x{:04x}", import->unload_iat);
-    LIEF_DEBUG("  delay_imports.timestamp:  0x{:04x}", import->timestamp);
+    LIEF_DEBUG("  delay_imports.name:       {}", imp->name_);
+    LIEF_DEBUG("  delay_imports.attribute:  {}", import->attribute);
+    LIEF_DEBUG("  delay_imports.handle:     {:#06x}", import->handle);
+    LIEF_DEBUG("  delay_imports.iat:        {:#06x}", import->iat);
+    LIEF_DEBUG("  delay_imports.name_table: {:#06x}", import->name_table);
+    LIEF_DEBUG("  delay_imports.bound_iat:  {:#06x}", import->bound_iat);
+    LIEF_DEBUG("  delay_imports.unload_iat: {:#06x}", import->unload_iat);
+    LIEF_DEBUG("  delay_imports.timestamp:  {:#06x}", import->timestamp);

     // Offset to Delay Import Name Table
     uint64_t names_offset =
-      import->name_table > 0 ? binary_->rva_to_offset(import->name_table) : 0;
+        import->name_table > 0 ? binary_->rva_to_offset(import->name_table) : 0;

     // Offset to the import address table
     uint64_t IAT_offset =
-      import->iat > 0 ? binary_->rva_to_offset(import->iat) : 0;
+        import->iat > 0 ? binary_->rva_to_offset(import->iat) : 0;

-    LIEF_DEBUG("  [IAT  ]: 0x{:04x}", IAT_offset);
-    LIEF_DEBUG("  [Names]: 0x{:04x}", names_offset);
+    LIEF_DEBUG("  [IAT  ]: {:#06x}", IAT_offset);
+    LIEF_DEBUG("  [Names]: {:#06x}", names_offset);

     if (names_offset > 0) {
-      auto is_ok = parse_delay_names_table<PE_T>(*imp, names_offset,
-                                                 IAT_offset);
+      auto is_ok = parse_delay_names_table<PE_T>(*imp, names_offset, IAT_offset);
       if (!is_ok) {
         LIEF_WARN("Delay imports names table parsed with errors ('{}')",
                   to_string(get_error(is_ok)));
@@ -619,7 +878,7 @@ ok_error_t Parser::parse_tls() {
     return make_error_code(lief_errors::not_found);
   }
   const uint32_t tls_rva = tls_dir->RVA();
-  const uint64_t offset  = binary_->rva_to_offset(tls_rva);
+  const uint64_t offset = binary_->rva_to_offset(tls_rva);

   stream_->setpos(offset);

@@ -633,26 +892,31 @@ ok_error_t Parser::parse_tls() {

   const uint64_t imagebase = binary_->optional_header().imagebase();

-  if (tls_header->RawDataStartVA >= imagebase && tls_header->RawDataEndVA > tls_header->RawDataStartVA) {
+  if (tls_header->RawDataStartVA >= imagebase &&
+      tls_header->RawDataEndVA > tls_header->RawDataStartVA)
+  {
     const uint64_t start_data_rva = tls_header->RawDataStartVA - imagebase;
-    const uint64_t stop_data_rva  = tls_header->RawDataEndVA - imagebase;
+    const uint64_t stop_data_rva = tls_header->RawDataEndVA - imagebase;

     const uint start_template_offset = binary_->rva_to_offset(start_data_rva);
-    const uint end_template_offset   = binary_->rva_to_offset(stop_data_rva);
+    const uint end_template_offset = binary_->rva_to_offset(stop_data_rva);

     const size_t size_to_read = end_template_offset - start_template_offset;

     if (size_to_read > Parser::MAX_DATA_SIZE) {
-      LIEF_DEBUG("TLS's template is too large!");
+      LIEF_DEBUG("TLS template is too large");
     } else {
-      if (!stream_->peek_data(tls->data_template_, start_template_offset, size_to_read)) {
-        LIEF_WARN("TLS's template corrupted");
+      if (!stream_->peek_data(tls->data_template_, start_template_offset,
+                              size_to_read))
+      {
+        LIEF_WARN("TLS template corrupted");
       }
     }
   }

   if (tls->addressof_callbacks() > imagebase) {
-    uint64_t callbacks_offset = binary_->rva_to_offset(tls->addressof_callbacks() - imagebase);
+    uint64_t callbacks_offset =
+        binary_->rva_to_offset(tls->addressof_callbacks() - imagebase);
     stream_->setpos(callbacks_offset);
     size_t count = 0;
     while (count++ < Parser::MAX_TLS_CALLBACKS) {
@@ -681,7 +945,9 @@ ok_error_t Parser::parse_tls() {
 template<typename PE_T>
 ok_error_t Parser::parse_load_config() {
   const DataDirectory* lconf_dir = bin().load_config_dir();
-  assert(lconf_dir != nullptr);
+  if (lconf_dir == nullptr) {
+    return ok();
+  }

   if (lconf_dir->RVA() == 0 || lconf_dir->size() == 0) {
     return ok();
@@ -723,52 +989,53 @@ ok_error_t Parser::process_load_config(LoadConfiguration& lconf) {
     auto dst = &LoadConfiguration::guard_cf_functions_;
     const size_t count = lconf.guard_cf_function_count().value_or(0);

-    auto is_ok = LoadConfiguration::parse_guard_functions(
-      *this, *stream, lconf, count, dst);
+    auto is_ok = LoadConfiguration::parse_guard_functions(*this, *stream, lconf,
+                                                          count, dst);
     if (!is_ok) {
       LIEF_WARN("Guard CF table processing finished with errors");
     }
   }

   if (uint64_t addr = lconf.guard_address_taken_iat_entry_table().value_or((0));
-      addr > 0) {
+      addr > 0)
+  {
     uint64_t offset = bin().va_to_offset(addr);
     ScopedStream stream(*stream_, offset);
     auto dst = &LoadConfiguration::guard_address_taken_iat_entries_;
     const size_t count = lconf.guard_address_taken_iat_entry_count().value_or(0);

-    auto is_ok = LoadConfiguration::parse_guard_functions(
-      *this, *stream, lconf, count, dst);
+    auto is_ok = LoadConfiguration::parse_guard_functions(*this, *stream, lconf,
+                                                          count, dst);
     if (!is_ok) {
       LIEF_WARN("Guard CF Address Taken IAT Entry Table processing finished "
                 "with errors");
     }
   }

-  if (uint64_t addr = lconf.guard_long_jump_target_table().value_or((0));
-      addr > 0) {
+  if (uint64_t addr = lconf.guard_long_jump_target_table().value_or((0)); addr > 0)
+  {
     uint64_t offset = bin().va_to_offset(addr);
     ScopedStream stream(*stream_, offset);
     auto dst = &LoadConfiguration::guard_long_jump_targets_;
     const size_t count = lconf.guard_long_jump_target_count().value_or(0);

-    auto is_ok = LoadConfiguration::parse_guard_functions(
-      *this, *stream, lconf, count, dst);
+    auto is_ok = LoadConfiguration::parse_guard_functions(*this, *stream, lconf,
+                                                          count, dst);

     if (!is_ok) {
       LIEF_WARN("Guard CF long jump target processing finished with errors");
     }
   }

-  if (uint64_t addr = lconf.guard_eh_continuation_table().value_or((0));
-      addr > 0) {
+  if (uint64_t addr = lconf.guard_eh_continuation_table().value_or((0)); addr > 0)
+  {
     uint64_t offset = bin().va_to_offset(addr);
     ScopedStream stream(*stream_, offset);
     auto dst = &LoadConfiguration::guard_eh_continuation_functions_;
     const size_t count = lconf.guard_eh_continuation_count().value_or(0);

-    auto is_ok = LoadConfiguration::parse_guard_functions(
-      *this, *stream, lconf, count, dst);
+    auto is_ok = LoadConfiguration::parse_guard_functions(*this, *stream, lconf,
+                                                          count, dst);

     if (!is_ok) {
       LIEF_WARN("Guard EH continuation function processing finished with errors");
@@ -800,4 +1067,3 @@ ok_error_t Parser::process_load_config(LoadConfiguration& lconf) {
 }

 }
-}
diff --git a/deps/LIEF/src/PE/ParserConfig.cpp b/deps/LIEF/src/PE/ParserConfig.cpp
index 0195c5221fd..a3fdfb72a66 100644
--- a/deps/LIEF/src/PE/ParserConfig.cpp
+++ b/deps/LIEF/src/PE/ParserConfig.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -20,16 +20,16 @@
 namespace LIEF::PE {
 std::string ParserConfig::to_string() const {
   static constexpr auto WIDTH = 20;
-  using namespace fmt;
   std::ostringstream os;
   os << "ParserConfig {\n"
-     << format("  {:{}}: {}\n", "parse_signature", WIDTH, parse_signature)
-     << format("  {:{}}: {}\n", "parse_exports", WIDTH, parse_exports)
-     << format("  {:{}}: {}\n", "parse_imports", WIDTH, parse_imports)
-     << format("  {:{}}: {}\n", "parse_rsrc", WIDTH, parse_rsrc)
-     << format("  {:{}}: {}\n", "parse_reloc", WIDTH, parse_reloc)
-     << format("  {:{}}: {}\n", "parse_exceptions", WIDTH, parse_exceptions)
-     << format("  {:{}}: {}\n", "parse_arm64x_binary", WIDTH, parse_arm64x_binary)
+     << fmt::format("  {:{}}: {}\n", "parse_signature", WIDTH, parse_signature)
+     << fmt::format("  {:{}}: {}\n", "parse_exports", WIDTH, parse_exports)
+     << fmt::format("  {:{}}: {}\n", "parse_imports", WIDTH, parse_imports)
+     << fmt::format("  {:{}}: {}\n", "parse_rsrc", WIDTH, parse_rsrc)
+     << fmt::format("  {:{}}: {}\n", "parse_reloc", WIDTH, parse_reloc)
+     << fmt::format("  {:{}}: {}\n", "parse_exceptions", WIDTH, parse_exceptions)
+     << fmt::format("  {:{}}: {}\n", "parse_arm64x_binary", WIDTH,
+                    parse_arm64x_binary)
      << "}\n";
   return os.str();
 }
diff --git a/deps/LIEF/src/PE/Relocation.cpp b/deps/LIEF/src/PE/Relocation.cpp
index d70e5b38ba9..8081dce9ea9 100644
--- a/deps/LIEF/src/PE/Relocation.cpp
+++ b/deps/LIEF/src/PE/Relocation.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -27,8 +27,8 @@

 #include "logging.hpp"

-namespace LIEF {
-namespace PE {
+
+namespace LIEF::PE {

 Relocation::Relocation(Relocation&&) = default;
 Relocation& Relocation::operator=(Relocation&& other) = default;
@@ -39,18 +39,15 @@ Relocation::Relocation() = default;
 Relocation::Relocation(uint32_t base, uint32_t block_size) :
   Object(),
   block_size_(block_size),
-  virtual_address_(base)
-{}
+  virtual_address_(base) {}

 Relocation::Relocation(uint32_t base) :
-  Relocation(base, 0)
-{}
+  Relocation(base, 0) {}

 Relocation::Relocation(const Relocation& other) :
   Object{other},
   block_size_{other.block_size_},
-  virtual_address_{other.virtual_address_}
-{
+  virtual_address_{other.virtual_address_} {
   entries_.reserve(other.entries_.size());
   for (const std::unique_ptr<RelocationEntry>& r : other.entries_) {
     auto copy = std::make_unique<RelocationEntry>(*r);
@@ -66,14 +63,13 @@ Relocation& Relocation::operator=(Relocation other) {

 Relocation::Relocation(const details::pe_base_relocation_block& header) :
   block_size_{header.BlockSize},
-  virtual_address_{header.PageRVA}
-{}
+  virtual_address_{header.PageRVA} {}


 void Relocation::swap(Relocation& other) {
-  std::swap(block_size_,      other.block_size_);
+  std::swap(block_size_, other.block_size_);
   std::swap(virtual_address_, other.virtual_address_);
-  std::swap(entries_,         other.entries_);
+  std::swap(entries_, other.entries_);
 }

 RelocationEntry& Relocation::add_entry(const RelocationEntry& entry) {
@@ -88,9 +84,8 @@ void Relocation::accept(LIEF::Visitor& visitor) const {
 }

 std::ostream& operator<<(std::ostream& os, const Relocation& relocation) {
-  using namespace fmt;
-  os << format("Page RVA: 0x{:08x} (SizeOfBlock: {} bytes)\n",
-               relocation.virtual_address(), relocation.block_size());
+  os << fmt::format("Page RVA: {:#010x} (SizeOfBlock: {} bytes)\n",
+                    relocation.virtual_address(), relocation.block_size());
   for (const RelocationEntry& entry : relocation.entries()) {
     os << "  " << entry << '\n';
   }
@@ -104,13 +99,13 @@ Relocation::relocations_t Relocation::parse(Parser& ctx, BinaryStream& stream) {
   while (stream) {
     auto PageRVA = stream.read<uint32_t>();
     if (!PageRVA) {
-      LIEF_DEBUG("Error: {}:{}", __FUNCTION__, __LINE__);
+      LIEF_DEBUG("Failed to read page RVA at {}:{}", __FUNCTION__, __LINE__);
       return relocs;
     }

     auto BlockSize = stream.read<uint32_t>();
     if (!BlockSize) {
-      LIEF_DEBUG("Error: {}:{}", __FUNCTION__, __LINE__);
+      LIEF_DEBUG("Failed to read block size at {}:{}", __FUNCTION__, __LINE__);
       return relocs;
     }

@@ -127,12 +122,14 @@ Relocation::relocations_t Relocation::parse(Parser& ctx, BinaryStream& stream) {
       for (size_t i = 0; i < nb_entries; ++i) {
         auto data = block_strm->read<uint16_t>();
         if (!data) {
-          LIEF_DEBUG("Error: {}:{} (entry: {})", __FUNCTION__, __LINE__, i);
+          LIEF_DEBUG("Failed to read entry at {}:{} (entry: {})", __FUNCTION__,
+                     __LINE__, i);
           break;
         }

         uint16_t pos = RelocationEntry::get_position(*data);
-        RelocationEntry::BASE_TYPES ty = RelocationEntry::type_from_data(arch, *data);
+        RelocationEntry::BASE_TYPES ty =
+            RelocationEntry::type_from_data(arch, *data);
         auto entry = std::make_unique<RelocationEntry>(pos, ty);
         entry->relocation_ = relocation.get();
         relocation->entries_.push_back(std::move(entry));
@@ -145,4 +142,3 @@ Relocation::relocations_t Relocation::parse(Parser& ctx, BinaryStream& stream) {
 }

 }
-}
diff --git a/deps/LIEF/src/PE/RelocationEntry.cpp b/deps/LIEF/src/PE/RelocationEntry.cpp
index 842de4ff4fc..3671daaac6a 100644
--- a/deps/LIEF/src/PE/RelocationEntry.cpp
+++ b/deps/LIEF/src/PE/RelocationEntry.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -25,14 +25,13 @@

 FMT_FORMATTER(LIEF::PE::RelocationEntry::BASE_TYPES, LIEF::PE::to_string);

-namespace LIEF {
-namespace PE {
+
+namespace LIEF::PE {

 RelocationEntry::BASE_TYPES
-  RelocationEntry::type_from_data(Header::MACHINE_TYPES arch, uint16_t data)
-{
+    RelocationEntry::type_from_data(Header::MACHINE_TYPES arch, uint16_t data) {
   uint8_t raw_type = get_type(data);
-  // Discriminate the type based on the the provided architecture
+  // Discriminate the type based on the provided architecture
   // for the values that depend on the arch.
   if (raw_type == 5) {
     if (Header::is_mips(arch)) {
@@ -84,18 +83,18 @@ uint64_t RelocationEntry::address() const {

 void RelocationEntry::address(uint64_t address) {
   if (relocation_ == nullptr) {
-    LIEF_ERR("parent relocation is not set");
+    LIEF_ERR("Parent relocation is not set");
     return;
   }
   int32_t delta = address - relocation_->virtual_address();
   if (delta < 0) {
-    LIEF_ERR("Invalid address: 0x{:04x} (base address=0x{:04x})",
-             address, relocation_->virtual_address());
+    LIEF_ERR("Invalid address: {:#06x} (base address={:#06x})", address,
+             relocation_->virtual_address());
     return;
   }

   if (delta > MAX_ADDR) {
-    LIEF_ERR("0x{:04x} does not fit in a 12-bit encoding");
+    LIEF_ERR("{:#06x} does not fit in a 12-bit encoding");
     return;
   }

@@ -106,8 +105,7 @@ size_t RelocationEntry::size() const {
   switch (type()) {
     case BASE_TYPES::LOW:
     case BASE_TYPES::HIGH:
-    case BASE_TYPES::HIGHADJ:
-      return 16;
+    case BASE_TYPES::HIGHADJ: return 16;

     case BASE_TYPES::HIGHLOW: // Addr += delta
       return 32;
@@ -116,14 +114,13 @@ size_t RelocationEntry::size() const {
       return 64;

     case BASE_TYPES::ABS:
-    default:
-      return 0;
+    default: return 0;
   }
   return 0;
 }

 void RelocationEntry::size(size_t /*size*/) {
-  LIEF_WARN("Setting size of a PE relocation is not supported!");
+  LIEF_WARN("Setting PE relocation size is not supported");
 }

 void RelocationEntry::accept(Visitor& visitor) const {
@@ -131,32 +128,24 @@ void RelocationEntry::accept(Visitor& visitor) const {
 }

 std::ostream& operator<<(std::ostream& os, const RelocationEntry& entry) {
-  os << fmt::format("0x{:04x} {:14} 0x{:08x}",
-                    entry.data(), PE::to_string(entry.type()), entry.address());
+  os << fmt::format("{:#06x} {:14} {:#010x}", entry.data(),
+                    PE::to_string(entry.type()), entry.address());
   return os;
 }

 const char* to_string(RelocationEntry::BASE_TYPES type) {
-  #define ENTRY(X) std::pair(RelocationEntry::BASE_TYPES::X, #X)
-  STRING_MAP enums2str {
-    ENTRY(UNKNOWN),
-    ENTRY(ABS),
-    ENTRY(HIGH),
-    ENTRY(LOW),
-    ENTRY(HIGHLOW),
-    ENTRY(HIGHADJ),
-    ENTRY(MIPS_JMPADDR),
-    ENTRY(ARM_MOV32),
-    ENTRY(RISCV_HI20),
-    ENTRY(SECTION),
-    ENTRY(THUMB_MOV32),
-    ENTRY(RISCV_LOW12I),
-    ENTRY(RISCV_LOW12S),
-    ENTRY(MIPS_JMPADDR16),
-    ENTRY(DIR64),
-    ENTRY(HIGH3ADJ),
+#define ENTRY(X) std::pair(RelocationEntry::BASE_TYPES::X, #X)
+  STRING_MAP enums2str{
+      ENTRY(UNKNOWN),      ENTRY(ABS),
+      ENTRY(HIGH),         ENTRY(LOW),
+      ENTRY(HIGHLOW),      ENTRY(HIGHADJ),
+      ENTRY(MIPS_JMPADDR), ENTRY(ARM_MOV32),
+      ENTRY(RISCV_HI20),   ENTRY(SECTION),
+      ENTRY(THUMB_MOV32),  ENTRY(RISCV_LOW12I),
+      ENTRY(RISCV_LOW12S), ENTRY(MIPS_JMPADDR16),
+      ENTRY(DIR64),        ENTRY(HIGH3ADJ),
   };
-  #undef ENTRY
+#undef ENTRY

   if (auto it = enums2str.find(type); it != enums2str.end()) {
     return it->second;
@@ -167,4 +156,3 @@ const char* to_string(RelocationEntry::BASE_TYPES type) {


 }
-}
diff --git a/deps/LIEF/src/PE/ResourceData.cpp b/deps/LIEF/src/PE/ResourceData.cpp
index 5e0f002788a..2d1f3fb94f8 100644
--- a/deps/LIEF/src/PE/ResourceData.cpp
+++ b/deps/LIEF/src/PE/ResourceData.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -19,15 +19,15 @@

 #include "LIEF/PE/ResourceData.hpp"

-namespace LIEF {
-namespace PE {
+
+namespace LIEF::PE {

 void ResourceData::swap(ResourceData& other) noexcept {
   ResourceNode::swap(other);

-  std::swap(content_,    other.content_);
-  std::swap(code_page_,  other.code_page_);
-  std::swap(reserved_,   other.reserved_);
+  std::swap(content_, other.content_);
+  std::swap(code_page_, other.code_page_);
+  std::swap(reserved_, other.reserved_);
 }

 void ResourceData::accept(Visitor& visitor) const {
@@ -36,4 +36,3 @@ void ResourceData::accept(Visitor& visitor) const {


 }
-}
diff --git a/deps/LIEF/src/PE/ResourceDirectory.cpp b/deps/LIEF/src/PE/ResourceDirectory.cpp
index ac70107366d..90c266760ed 100644
--- a/deps/LIEF/src/PE/ResourceDirectory.cpp
+++ b/deps/LIEF/src/PE/ResourceDirectory.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -18,32 +18,32 @@
 #include "LIEF/PE/ResourceDirectory.hpp"
 #include "PE/Structures.hpp"

-namespace LIEF {
-namespace PE {
+
+namespace LIEF::PE {

 void ResourceDirectory::swap(ResourceDirectory& other) noexcept {
   ResourceNode::swap(other);
-  std::swap(characteristics_,       other.characteristics_);
-  std::swap(timedatestamp_,         other.timedatestamp_);
-  std::swap(majorversion_,          other.majorversion_);
-  std::swap(numberof_id_entries_,   other.numberof_id_entries_);
+  std::swap(characteristics_, other.characteristics_);
+  std::swap(timedatestamp_, other.timedatestamp_);
+  std::swap(majorversion_, other.majorversion_);
+  std::swap(numberof_id_entries_, other.numberof_id_entries_);
   std::swap(numberof_name_entries_, other.numberof_name_entries_);
-  std::swap(numberof_id_entries_,   other.numberof_id_entries_);
+  std::swap(numberof_id_entries_, other.numberof_id_entries_);
 }

-ResourceDirectory::ResourceDirectory(const details::pe_resource_directory_table& header) :
+ResourceDirectory::ResourceDirectory(
+    const details::pe_resource_directory_table& header
+) :
   ResourceNode(ResourceNode::TYPE::DIRECTORY),
   characteristics_(header.Characteristics),
   timedatestamp_(header.TimeDateStamp),
   majorversion_(header.MajorVersion),
   minorversion_(header.MajorVersion),
   numberof_name_entries_(header.NumberOfNameEntries),
-  numberof_id_entries_(header.NumberOfIDEntries)
-{}
+  numberof_id_entries_(header.NumberOfIDEntries) {}

 void ResourceDirectory::accept(Visitor& visitor) const {
   visitor.visit(*this);
 }

 }
-}
diff --git a/deps/LIEF/src/PE/ResourceNode.cpp b/deps/LIEF/src/PE/ResourceNode.cpp
index e506510f764..f2f45c069a9 100644
--- a/deps/LIEF/src/PE/ResourceNode.cpp
+++ b/deps/LIEF/src/PE/ResourceNode.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -28,11 +28,9 @@

 #include "LIEF/BinaryStream/SpanStream.hpp"

-#include "internal_utils.hpp"
 #include "PE/Structures.hpp"

-namespace LIEF {
-namespace PE {
+namespace LIEF::PE {

 class TreeParser {
   public:
@@ -40,18 +38,17 @@ class TreeParser {
   TreeParser(BinaryStream& stream, uint64_t base_rva) :
     stream_(stream),
     base_offset_(stream.pos()),
-    base_rva_(base_rva)
-  {}
+    base_rva_(base_rva) {}

   TreeParser(BinaryStream& stream, Binary& pe) :
     stream_(stream),
     base_offset_(stream.pos()),
-    base_rva_(0),
-    pe_(&pe)
-  {}
+
+    pe_(&pe) {}

   std::unique_ptr<ResourceNode> parse() {
-    const auto res_directory_table = stream_.peek<details::pe_resource_directory_table>();
+    const auto res_directory_table =
+        stream_.peek<details::pe_resource_directory_table>();
     if (!res_directory_table) {
       return nullptr;
     }
@@ -61,7 +58,8 @@ class TreeParser {

   std::unique_ptr<ResourceNode> parse_resource_node(
       const details::pe_resource_directory_table& directory_table,
-      uint32_t base_offset, uint32_t current_offset, uint32_t depth = 0);
+      uint32_t base_offset, uint32_t current_offset, uint32_t depth = 0
+  );

   result<uint64_t> rva_to_offset(uint64_t rva) const {
     if (pe_ != nullptr) {
@@ -82,84 +80,90 @@ class TreeParser {
 };

 std::unique_ptr<ResourceNode> TreeParser::parse_resource_node(
-  const details::pe_resource_directory_table& directory_table,
-  uint32_t base_offset, uint32_t current_offset, uint32_t depth)
-{
-  const uint32_t numberof_ID_entries   = directory_table.NumberOfIDEntries;
-  const uint32_t numberof_name_entries = directory_table.NumberOfNameEntries;
-
-  size_t directory_array_offset = current_offset + sizeof(details::pe_resource_directory_table);
-  details::pe_resource_directory_entries entries_array;
+    const details::pe_resource_directory_table& directory_table,
+    uint32_t base_offset, uint32_t current_offset, uint32_t depth
+) {
+  static constexpr auto MAX_DEPTH = 60;
+  if (depth > MAX_DEPTH) {
+    LIEF_WARN("Tree max depth reached (max: {})", MAX_DEPTH);
+    return nullptr;
+  }

-  if (auto res_entries_array = stream_.peek<details::pe_resource_directory_entries>(directory_array_offset)) {
-    entries_array = *res_entries_array;
-  } else {
+  if (!visited_.insert(base_offset + current_offset).second) {
+    if (visited_.size() == 1) {
+      // Only print once
+      LIEF_WARN("Infinite loop detected in resources");
+    }
     return nullptr;
   }
+  const uint32_t numberof_ID_entries = directory_table.NumberOfIDEntries;
+  const uint32_t numberof_name_entries = directory_table.NumberOfNameEntries;

+  size_t directory_array_offset =
+      current_offset + sizeof(details::pe_resource_directory_table);
+  auto entries_array =
+      stream_.peek<details::pe_resource_directory_entries>(directory_array_offset);
+  if (!entries_array) {
+    return nullptr;
+  }
   auto directory = std::make_unique<ResourceDirectory>(directory_table);
   directory->set_depth(depth);

-  // Iterate over the childs
-  for (size_t idx = 0; idx < (numberof_name_entries + numberof_ID_entries); ++idx) {
-
-    uint32_t data_rva = entries_array.RVA;
-    uint32_t id       = entries_array.NameID.IntegerID;
-
-    directory_array_offset += sizeof(details::pe_resource_directory_entries);
-    if (auto res_entries_array = stream_.peek<details::pe_resource_directory_entries>(directory_array_offset)) {
-      entries_array = *res_entries_array;
-    } else {
+  // Iterate over the children
+  for (size_t idx = 0; idx < (numberof_name_entries + numberof_ID_entries); ++idx)
+  {
+    auto entry = stream_.peek<details::pe_resource_directory_entries>(
+        directory_array_offset
+    );
+    if (!entry) {
       break;
     }
+    directory_array_offset += sizeof(details::pe_resource_directory_entries);
+
+    uint32_t data_rva = entry->RVA;
+    uint32_t id = entry->NameID.IntegerID;

     result<std::u16string> name;

     // Get the resource name
     if ((id & 0x80000000) != 0u) {
-      uint32_t offset        = id & (~ 0x80000000);
+      uint32_t offset = id & (~0x80000000);
       uint32_t string_offset = base_offset + offset;
-      LIEF_DEBUG("base_offset=0x{:04x}, string_offset=0x{:04x}",
-                 base_offset, string_offset);
+      LIEF_DEBUG("base_offset={:#06x}, string_offset={:#06x}", base_offset,
+                 string_offset);

-      auto res_length = stream_.peek<uint16_t>(string_offset);
-      if (res_length && *res_length <= 100) {
-        name = stream_.peek_u16string_at(string_offset + sizeof(uint16_t), *res_length);
+      auto length = stream_.peek<uint16_t>(string_offset);
+      if (length && *length <= 100) {
+        name =
+            stream_.peek_u16string_at(string_offset + sizeof(uint16_t), *length);
         if (!name) {
-          LIEF_ERR("Node's name for the node id: {} is corrupted", id);
+          LIEF_ERR("Corrupted node name for node id {}", id);
         }
       }
     }

     if ((0x80000000 & data_rva) == 0) { // We are on a leaf
       uint32_t offset = base_offset + data_rva;
-      details::pe_resource_data_entry data_entry;
-
-      if (!visited_.insert(offset).second) {
-        if (visited_.size() == 1) {
-          // Only print once
-          LIEF_WARN("Infinite loop detected on resources");
-        }
+      auto data_entry = stream_.peek<details::pe_resource_data_entry>(offset);
+      if (!data_entry) {
         break;
       }

-      if (auto res_data_entry = stream_.peek<details::pe_resource_data_entry>(offset)) {
-        data_entry = *res_data_entry;
-      } else {
+      if (!visited_.insert(offset).second) {
         break;
       }

-      auto content_offset = rva_to_offset(data_entry.DataRVA);
+      auto content_offset = rva_to_offset(data_entry->DataRVA);

-      uint32_t content_size   = data_entry.Size;
-      uint32_t code_page      = data_entry.Codepage;
+      uint32_t content_size = data_entry->Size;
+      uint32_t code_page = data_entry->Codepage;

       std::vector<uint8_t> leaf_data;
-      if (content_offset &&
-          stream_.peek_data(leaf_data, *content_offset, content_size,
-                            data_entry.DataRVA))
+      if (content_offset && stream_.peek_data(leaf_data, *content_offset,
+                                              content_size, data_entry->DataRVA))
       {
-        auto node = std::make_unique<ResourceData>(std::move(leaf_data), code_page);
+        auto node =
+            std::make_unique<ResourceData>(std::move(leaf_data), code_page);

         node->set_depth(depth + 1);
         node->id(id);
@@ -170,58 +174,48 @@ std::unique_ptr<ResourceNode> TreeParser::parse_resource_node(

         directory->push_child(std::move(node));
       } else {
-        LIEF_DEBUG("The leaf of the node id {} is corrupted", id);
+        LIEF_DEBUG("Corrupted leaf for node id {}", id);
         break;
       }
     } else { // We are on a directory
-      const uint32_t directory_rva = data_rva & (~ 0x80000000);
-      const uint32_t offset        = base_offset + directory_rva;
-      if (!visited_.insert(offset).second) {
-        if (visited_.size() == 1) {
-          // Only print once
-          LIEF_WARN("Infinite loop detected on resources");
-        }
+      const uint32_t directory_rva = data_rva & (~0x80000000);
+      const uint32_t offset = base_offset + directory_rva;
+      auto next_dir_table =
+          stream_.peek<details::pe_resource_directory_table>(offset);
+      if (!next_dir_table) {
+        LIEF_WARN("Corrupted directory for node id {}", id);
         break;
       }
-
-      if (auto res_next_dir_table = stream_.peek<details::pe_resource_directory_table>(offset)) {
-        if (auto node = parse_resource_node(*res_next_dir_table, base_offset, offset, depth + 1)) {
-          if (name) {
-            node->name(*name);
-          }
-          node->id(id);
-          directory->push_child(std::move(node));
-        } else {
-          // node is a nullptr
-          continue;
-        }
-      } else {
-        LIEF_WARN("The directory of the node id {} is corrupted", id);
-        break;
+      auto node =
+          parse_resource_node(*next_dir_table, base_offset, offset, depth + 1);
+      if (node == nullptr) {
+        continue;
       }
+      if (name) {
+        node->name(*name);
+      }
+      node->id(id);
+      directory->push_child(std::move(node));
     }
   }
   return directory;
 }


-std::unique_ptr<ResourceNode>
-  ResourceNode::parse(BinaryStream& stream, uint64_t rva)
-{
+std::unique_ptr<ResourceNode> ResourceNode::parse(BinaryStream& stream,
+                                                  uint64_t rva) {
   TreeParser parser(stream, rva);
   return parser.parse();
 }

-std::unique_ptr<ResourceNode>
-  ResourceNode::parse(const uint8_t* buffer, size_t size, uint64_t rva)
-{
+std::unique_ptr<ResourceNode> ResourceNode::parse(const uint8_t* buffer,
+                                                  size_t size, uint64_t rva) {
   SpanStream stream(buffer, size);
   return parse(stream, rva);
 }

-std::unique_ptr<ResourceNode>
-  ResourceNode::parse(BinaryStream& stream, const Binary& bin)
-{
+std::unique_ptr<ResourceNode> ResourceNode::parse(BinaryStream& stream,
+                                                  const Binary& bin) {
   TreeParser parser(stream, const_cast<Binary&>(bin));
   return parser.parse();
 }
@@ -233,8 +227,7 @@ ResourceNode::ResourceNode(const ResourceNode& other) :
   type_{other.type_},
   id_{other.id_},
   name_{other.name_},
-  depth_{other.depth_}
-{
+  depth_{other.depth_} {
   childs_.reserve(other.childs_.size());
   for (const std::unique_ptr<ResourceNode>& node : other.childs_) {
     childs_.push_back(node->clone());
@@ -245,10 +238,10 @@ ResourceNode& ResourceNode::operator=(const ResourceNode& other) {
   if (this == &other) {
     return *this;
   }
-  type_   = other.type_;
-  id_     = other.id_;
-  name_   = other.name_;
-  depth_  = other.depth_;
+  type_ = other.type_;
+  id_ = other.id_;
+  name_ = other.name_;
+  depth_ = other.depth_;

   childs_.reserve(other.childs_.size());
   for (const std::unique_ptr<ResourceNode>& node : other.childs_) {
@@ -258,11 +251,11 @@ ResourceNode& ResourceNode::operator=(const ResourceNode& other) {
 }

 void ResourceNode::swap(ResourceNode& other) {
-  std::swap(type_,   other.type_);
-  std::swap(id_,     other.id_);
-  std::swap(name_,   other.name_);
+  std::swap(type_, other.type_);
+  std::swap(id_, other.id_);
+  std::swap(name_, other.name_);
   std::swap(childs_, other.childs_);
-  std::swap(depth_,  other.depth_);
+  std::swap(depth_, other.depth_);
 }

 std::string ResourceNode::utf8_name() const {
@@ -273,8 +266,9 @@ ResourceNode& ResourceNode::add_child(std::unique_ptr<ResourceNode> child) {
   child->depth_ = depth_ + 1;

   if (auto* dir = cast<ResourceDirectory>()) {
-    child->has_name() ? dir->numberof_name_entries(dir->numberof_name_entries() + 1) :
-                        dir->numberof_id_entries(dir->numberof_id_entries() + 1);
+    child->has_name() ?
+        dir->numberof_name_entries(dir->numberof_name_entries() + 1) :
+        dir->numberof_id_entries(dir->numberof_id_entries() + 1);
     return **insert_child(std::move(child));
   }

@@ -283,13 +277,14 @@ ResourceNode& ResourceNode::add_child(std::unique_ptr<ResourceNode> child) {
 }

 void ResourceNode::delete_child(uint32_t id) {
-  const auto it_node = std::find_if(std::begin(childs_), std::end(childs_),
-      [id] (const std::unique_ptr<ResourceNode>& node) {
-        return node->id() == id;
-      });
-
-  if (it_node == std::end(childs_)) {
-    LIEF_ERR("Unable to find the node with the id {:d}", id);
+  const auto it_node =
+      std::find_if(childs_.begin(), childs_.end(),
+                   [id](const std::unique_ptr<ResourceNode>& node) {
+                     return node->id() == id;
+                   });
+
+  if (it_node == childs_.end()) {
+    LIEF_ERR("Node with id {:d} not found", id);
     return;
   }

@@ -297,13 +292,14 @@ void ResourceNode::delete_child(uint32_t id) {
 }

 void ResourceNode::delete_child(const ResourceNode& node) {
-  const auto it_node = std::find_if(std::begin(childs_), std::end(childs_),
-      [&node] (const std::unique_ptr<ResourceNode>& intree_node) {
-        return *intree_node == node;
-      });
-
-  if (it_node == std::end(childs_)) {
-    LIEF_ERR("Unable to find the node with id: {}", node.id());
+  const auto it_node =
+      std::find_if(childs_.begin(), childs_.end(),
+                   [&node](const std::unique_ptr<ResourceNode>& intree_node) {
+                     return *intree_node == node;
+                   });
+
+  if (it_node == childs_.end()) {
+    LIEF_ERR("Node with id {} not found", node.id());
     return;
   }

@@ -324,30 +320,35 @@ void ResourceNode::name(const std::string& name) {
   if (auto res = u8tou16(name)) {
     return this->name(std::move(*res));
   }
-  LIEF_WARN("{} can't be converted to a UTF-16 string", name);
+  LIEF_WARN("{} cannot be converted to UTF-16", name);
 }


 // This logic follows the description from the Microsoft documentation at
 // https://docs.microsoft.com/en-us/windows/win32/debug/pe-format#resource-directory-table
 //
-// "(remember that all the Name entries precede all the ID entries for the table). All entries for the table
-// "are sorted in ascending order: the Name entries by case-sensitive string and the ID entries by numeric value."
-ResourceNode::childs_t::iterator ResourceNode::insert_child(std::unique_ptr<ResourceNode> child) {
-  const auto it = std::upper_bound(childs_.begin(), childs_.end(), child,
-      [] (const std::unique_ptr<ResourceNode>& lhs, const std::unique_ptr<ResourceNode>& rhs) {
-        if (lhs->has_name() && rhs->has_name()) {
-          // Case-sensitive string sort
-          return std::lexicographical_compare(
-              lhs->name().begin(), lhs->name().end(),
-              rhs->name().begin(), rhs->name().end());
-        } else if (!lhs->has_name() && !rhs->has_name()) {
-          return lhs->id() < rhs->id();
-        } else {
-          // Named entries come first
-          return lhs->has_name();
-        }
-      });
+// "(remember that all the Name entries precede all the ID entries for the table).
+// All entries for the table "are sorted in ascending order: the Name entries by
+// case-sensitive string and the ID entries by numeric value."
+ResourceNode::childs_t::iterator
+    ResourceNode::insert_child(std::unique_ptr<ResourceNode> child) {
+  const auto it =
+      std::upper_bound(childs_.begin(), childs_.end(), child,
+                       [](const std::unique_ptr<ResourceNode>& lhs,
+                          const std::unique_ptr<ResourceNode>& rhs) {
+                         if (lhs->has_name() && rhs->has_name()) {
+                           // Case-sensitive string sort
+                           return std::lexicographical_compare(lhs->name().begin(),
+                                                               lhs->name().end(),
+                                                               rhs->name().begin(),
+                                                               rhs->name().end());
+                         } else if (!lhs->has_name() && !rhs->has_name()) {
+                           return lhs->id() < rhs->id();
+                         } else {
+                           // Named entries come first
+                           return lhs->has_name();
+                         }
+                       });

   return childs_.insert(it, std::move(child));
 }
@@ -356,10 +357,9 @@ const ResourceNode& ResourceNode::safe_get_at(size_t idx) const {
   class InvalidNode : public ResourceNode {
     public:
     InvalidNode() :
-      ResourceNode(ResourceNode::TYPE::UNKNOWN)
-    {}
+      ResourceNode(ResourceNode::TYPE::UNKNOWN) {}

-    std::unique_ptr<ResourceNode> clone() const {
+    std::unique_ptr<ResourceNode> clone() const override {
       return nullptr;
     }
   };
@@ -453,9 +453,7 @@ std::ostream& operator<<(std::ostream& os, const ResourceNode& node) {
   ResourcesManager manager(const_cast<ResourceNode&>(node));
   os << manager.print();
   return os;
-
 }


 }
-}
diff --git a/deps/LIEF/src/PE/ResourcesManager.cpp b/deps/LIEF/src/PE/ResourcesManager.cpp
index cea6f5ffece..62e7e2798c8 100644
--- a/deps/LIEF/src/PE/ResourcesManager.cpp
+++ b/deps/LIEF/src/PE/ResourcesManager.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -34,35 +34,36 @@

 FMT_FORMATTER(LIEF::PE::ResourcesManager::TYPE, LIEF::PE::to_string);

-namespace LIEF {
-namespace PE {
+
+namespace LIEF::PE {

 static constexpr auto RESOURCE_TYPES = {
-  ResourcesManager::TYPE::CURSOR,         ResourcesManager::TYPE::BITMAP,
-  ResourcesManager::TYPE::ICON,           ResourcesManager::TYPE::MENU,
-  ResourcesManager::TYPE::DIALOG,         ResourcesManager::TYPE::STRING,
-  ResourcesManager::TYPE::FONTDIR,        ResourcesManager::TYPE::FONT,
-  ResourcesManager::TYPE::ACCELERATOR,    ResourcesManager::TYPE::RCDATA,
-  ResourcesManager::TYPE::MESSAGETABLE,   ResourcesManager::TYPE::GROUP_CURSOR,
-  ResourcesManager::TYPE::GROUP_ICON,     ResourcesManager::TYPE::VERSION,
-  ResourcesManager::TYPE::DLGINCLUDE,     ResourcesManager::TYPE::PLUGPLAY,
-  ResourcesManager::TYPE::VXD,            ResourcesManager::TYPE::ANICURSOR,
-  ResourcesManager::TYPE::ANIICON,        ResourcesManager::TYPE::HTML,
-  ResourcesManager::TYPE::MANIFEST,
+    ResourcesManager::TYPE::CURSOR,       ResourcesManager::TYPE::BITMAP,
+    ResourcesManager::TYPE::ICON,         ResourcesManager::TYPE::MENU,
+    ResourcesManager::TYPE::DIALOG,       ResourcesManager::TYPE::STRING,
+    ResourcesManager::TYPE::FONTDIR,      ResourcesManager::TYPE::FONT,
+    ResourcesManager::TYPE::ACCELERATOR,  ResourcesManager::TYPE::RCDATA,
+    ResourcesManager::TYPE::MESSAGETABLE, ResourcesManager::TYPE::GROUP_CURSOR,
+    ResourcesManager::TYPE::GROUP_ICON,   ResourcesManager::TYPE::VERSION,
+    ResourcesManager::TYPE::DLGINCLUDE,   ResourcesManager::TYPE::PLUGPLAY,
+    ResourcesManager::TYPE::VXD,          ResourcesManager::TYPE::ANICURSOR,
+    ResourcesManager::TYPE::ANIICON,      ResourcesManager::TYPE::HTML,
+    ResourcesManager::TYPE::MANIFEST,
 };

 std::string ResourcesManager::string_entry_t::string_u8() const {
   return u16tou8(string);
 }

-const ResourceNode* ResourcesManager::get_node_type(ResourcesManager::TYPE type) const {
+const ResourceNode*
+    ResourcesManager::get_node_type(ResourcesManager::TYPE type) const {
   ResourceNode::it_childs nodes = resources_->childs();
-  const auto it_node = std::find_if(std::begin(nodes), std::end(nodes),
-      [type] (const ResourceNode& node) {
+  const auto it_node =
+      std::find_if(nodes.begin(), nodes.end(), [type](const ResourceNode& node) {
         return TYPE(node.id()) == type;
       });

-  if (it_node == std::end(nodes)) {
+  if (it_node == nodes.end()) {
     return nullptr;
   }

@@ -72,12 +73,10 @@ const ResourceNode* ResourcesManager::get_node_type(ResourcesManager::TYPE type)
 std::vector<ResourcesManager::TYPE> ResourcesManager::get_types() const {
   std::vector<TYPE> types;
   for (const ResourceNode& node : resources_->childs()) {
-    const auto it = std::find_if(std::begin(RESOURCE_TYPES), std::end(RESOURCE_TYPES),
-        [&node] (TYPE t) {
-          return t == TYPE(node.id());
-        });
+    const auto it = std::find_if(RESOURCE_TYPES.begin(), RESOURCE_TYPES.end(),
+                                 [&node](TYPE t) { return t == TYPE(node.id()); });

-    if (it != std::end(RESOURCE_TYPES)) {
+    if (it != RESOURCE_TYPES.end()) {
       types.push_back(*it);
     }
   }
@@ -91,15 +90,15 @@ std::string ResourcesManager::manifest() const {
   }

   const auto* data_node =
-    root_node->safe_get_at(0).safe_get_at(0).cast<ResourceData>();
+      root_node->safe_get_at(0).safe_get_at(0).cast<ResourceData>();

   if (data_node == nullptr) {
-    LIEF_WARN("Manifest node seems corrupted");
+    LIEF_WARN("Corrupted manifest node");
     return "";
   }

   span<const uint8_t> content = data_node->content();
-  return std::string{std::begin(content), std::end(content)};
+  return std::string{content.begin(), content.end()};
 }

 void ResourcesManager::manifest(const std::string& manifest) {
@@ -110,23 +109,23 @@ void ResourcesManager::manifest(const std::string& manifest) {
     auto L3 = std::make_unique<ResourceData>(manifest);

     (*resources_)
-      .add_child(std::move(L1))
-      .add_child(std::move(L2))
-      .add_child(std::move(L3));
+        .add_child(std::move(L1))
+        .add_child(std::move(L2))
+        .add_child(std::move(L3));

     manifest_node = get_node_type(TYPE::MANIFEST);
   }

   if (manifest_node == nullptr) {
-    LIEF_WARN("Manifest node seems corrupted");
+    LIEF_WARN("Corrupted manifest node");
     return;
   }

   auto* data_node =
-    manifest_node->safe_get_at(0).safe_get_at(0).cast<ResourceData>();
+      manifest_node->safe_get_at(0).safe_get_at(0).cast<ResourceData>();

   if (data_node == nullptr) {
-    LIEF_WARN("Manifest node seems corrupted");
+    LIEF_WARN("Corrupted manifest node");
     return;
   }

@@ -160,7 +159,7 @@ std::vector<ResourceVersion> ResourcesManager::version() const {

 ResourcesManager::it_const_icons ResourcesManager::icons() const {
   std::vector<ResourceIcon> icons;
-  const ResourceNode* root_icon     = get_node_type(TYPE::ICON);
+  const ResourceNode* root_icon = get_node_type(TYPE::ICON);
   const ResourceNode* root_grp_icon = get_node_type(TYPE::GROUP_ICON);
   if (root_icon == nullptr) {
     LIEF_ERR("Missing '{}' entry", to_string(TYPE::ICON));
@@ -176,7 +175,7 @@ ResourcesManager::it_const_icons ResourcesManager::icons() const {
     for (const ResourceNode& grp_icon_lvl3 : grp_icon_lvl2.childs()) {
       const auto* icon_group_node = grp_icon_lvl3.cast<ResourceData>();
       if (icon_group_node == nullptr) {
-        LIEF_WARN("Expecting a data node for node id: {}", grp_icon_lvl3.id());
+        LIEF_WARN("Expected data node for node id {}", grp_icon_lvl3.id());
         continue;
       }
       const uint32_t id = icon_group_node->id();
@@ -189,11 +188,11 @@ ResourcesManager::it_const_icons ResourcesManager::icons() const {
       }

       SpanStream stream(icon_group_content);
-      details::pe_resource_icon_dir group_icon_header;
+      details::pe_resource_icon_dir group_icon_header{};
       if (auto res = stream.read<details::pe_resource_icon_dir>()) {
         group_icon_header = *res;
       } else {
-        LIEF_WARN("Can't read GRPICONDIR for resource node id: {}", id);
+        LIEF_WARN("Failed to read GRPICONDIR for resource node id {}", id);
         continue;
       }

@@ -202,16 +201,16 @@ ResourcesManager::it_const_icons ResourcesManager::icons() const {

       // Some checks
       if (group_icon_header.type != 1) {
-        LIEF_ERR("Group icon type should be equal to 1 (vs {})", group_icon_header.type);
+        LIEF_ERR("Group icon type should be 1 (got {})", group_icon_header.type);
         return icons;
       }

       for (size_t i = 0; i < group_icon_header.count; ++i) {
-        details::pe_resource_icon_group entry;
+        details::pe_resource_icon_group entry{};
         if (auto res = stream.read<details::pe_resource_icon_group>()) {
           entry = *res;
         } else {
-          LIEF_WARN("Can't read GRPICONDIR.idEntries[{}]", i);
+          LIEF_WARN("Failed to read GRPICONDIR.idEntries[{}]", i);
           break;
         }

@@ -219,29 +218,31 @@ ResourcesManager::it_const_icons ResourcesManager::icons() const {
         icon.lang_ = lang_from_id(grp_icon_lvl3.id());
         icon.sublang_ = sublang_from_id(grp_icon_lvl3.id());

-        // Find the icon the RESOURCE_TYPES::ICON tree that matched entry.ID
+        // Find the icon in the RESOURCE_TYPES::ICON tree that matches entry.ID
         ResourceNode::it_const_childs sub_nodes_icons = root_icon->childs();
-        const auto it = std::find_if(std::begin(sub_nodes_icons), std::end(sub_nodes_icons),
-            [&entry] (const ResourceNode& node) {
-              return node.id() == entry.ID;
-            });
-        if (it == std::end(sub_nodes_icons)) {
-          LIEF_WARN("Unable to find the icon associated with id: {:d}", entry.ID);
+        const auto it =
+            std::find_if(sub_nodes_icons.begin(), sub_nodes_icons.end(),
+                         [&entry](const ResourceNode& node) {
+                           return node.id() == entry.ID;
+                         });
+        if (it == sub_nodes_icons.end()) {
+          LIEF_WARN("Icon with id {:d} not found", entry.ID);
           continue;
         }

         ResourceNode::it_childs icons_childs = it->childs();
         if (icons_childs.empty()) {
-          LIEF_WARN("Resources nodes looks corrupted");
+          LIEF_WARN("Resource nodes appear corrupted");
           continue;
         }
         const ResourceNode& icon_node = icons_childs[0];
         if (!icon_node.is_data()) {
-          LIEF_WARN("Expecting a Data node for node id: {}", icon_node.id());
+          LIEF_WARN("Expected data node for node id {}", icon_node.id());
           continue;
         }
-        span<const uint8_t> pixels = static_cast<const ResourceData&>(icon_node).content();
-        icon.pixels_ = std::vector<uint8_t>(std::begin(pixels), std::end(pixels));
+        span<const uint8_t> pixels =
+            static_cast<const ResourceData&>(icon_node).content();
+        icon.pixels_ = std::vector<uint8_t>(pixels.begin(), pixels.end());
         icons.push_back(std::move(icon));
       }
     }
@@ -286,11 +287,10 @@ void ResourcesManager::add_icon(const ResourceIcon& icon) {
                 sizeof(details::pe_icon_header));

     ios
-      // pe_resource_icon_dir
-      .write<uint16_t>(/*reserved*/0)
-      .write<uint16_t>(/*type*/1)
-      .write<uint16_t>(/*count*/0)
-    ;
+        // pe_resource_icon_dir
+        .write<uint16_t>(/*reserved*/ 0)
+        .write<uint16_t>(/*type*/ 1)
+        .write<uint16_t>(/*count*/ 0);
     std::vector<uint8_t> raw_header;
     ios.move(raw_header);

@@ -309,48 +309,47 @@ void ResourcesManager::add_icon(const ResourceIcon& icon) {
   }

   auto* icon_group_data =
-    icon_grp_node->safe_get_at(0).safe_get_at(0).cast<ResourceData>();
+      icon_grp_node->safe_get_at(0).safe_get_at(0).cast<ResourceData>();

-  auto* icon_dir =
-    icon_node->safe_get_at(0).cast<ResourceDirectory>();
+  auto* icon_dir = icon_node->safe_get_at(0).cast<ResourceDirectory>();

   if (icon_group_data == nullptr) {
-    LIEF_ERR("Can't find data node for the icon group headers");
+    LIEF_ERR("Icon group headers data node not found");
     return;
   }

   if (icon_dir == nullptr) {
-    LIEF_ERR("Can't find data node for the icon headers");
+    LIEF_ERR("Icon headers data node not found");
     return;
   }

   vector_iostream icon_group = icon_group_data->edit();

-  if (icon_group.size() < /* reserved + type + count */3 * sizeof(uint16_t)) {
+  if (icon_group.size() < /* reserved + type + count */ 3 * sizeof(uint16_t)) {
     LIEF_ERR("Icon group header too small");
     return;
   }

   ++icon_group.edit_as<details::pe_resource_icon_dir>()->count;
-  icon_group
-    .seek_end()
-    .write<uint8_t>(icon.width())
-    .write<uint8_t>(icon.height())
-    .write<uint8_t>(icon.color_count())
-    .write<uint8_t>(icon.reserved())
-    .write<uint16_t>(icon.planes())
-    .write<uint16_t>(icon.bit_count())
-    .write<uint16_t>(icon.size())
-    .write<uint16_t>(new_id)
-  ;
+  icon_group.seek_end()
+      .write<uint8_t>(icon.width())
+      .write<uint8_t>(icon.height())
+      .write<uint8_t>(icon.color_count())
+      .write<uint8_t>(icon.reserved())
+      .write<uint16_t>(icon.planes())
+      .write<uint16_t>(icon.bit_count())
+      .write<uint16_t>(icon.size())
+      .write<uint16_t>(new_id);

   auto pixel_node = std::make_unique<ResourceData>(as_vector(icon.pixels()));
-  pixel_node->id(static_cast<int>(icon.sublang()) << 10 | static_cast<int>(icon.lang()));
+  pixel_node->id(static_cast<int>(icon.sublang()) << 10 |
+                 static_cast<int>(icon.lang()));
   icon_dir->add_child(std::move(pixel_node));
 }


-void ResourcesManager::change_icon(const ResourceIcon& original, const ResourceIcon& newone) {
+void ResourcesManager::change_icon(const ResourceIcon& original,
+                                   const ResourceIcon& newone) {
   ResourceNode* icon_node = get_node_type(TYPE::ICON);
   ResourceNode* icon_grp_node = get_node_type(TYPE::GROUP_ICON);

@@ -364,20 +363,20 @@ void ResourcesManager::change_icon(const ResourceIcon& original, const ResourceI
     return;
   }

-  // Update group in which the icon is registred
+  // Update group in which the icon is registered
   for (ResourceNode& grp_icon_lvl2 : icon_grp_node->childs()) {
     for (ResourceNode& grp_icon_lvl3 : grp_icon_lvl2.childs()) {
       auto* icon_group_node = grp_icon_lvl3.cast<ResourceData>();

       if (icon_group_node == nullptr) {
-        LIEF_WARN("Resource group icon corrupted");
+        LIEF_WARN("Corrupted resource group icon");
         continue;
       }

       vector_iostream editor = icon_group_node->edit();
       SpanStream stream = icon_group_node->content();

-      /* reserved */stream.read<uint16_t>().value_or(0);
+      /* reserved */ stream.read<uint16_t>().value_or(0);
       /* type */ stream.read<uint16_t>().value_or(0);
       size_t count = stream.read<uint16_t>().value_or(0);

@@ -410,11 +409,13 @@ void ResourcesManager::change_icon(const ResourceIcon& original, const ResourceI
   ResourceDirectory new_icon_dir_node(newone.id());
   ResourceData new_icon_data_node(as_vector(newone.pixels()));
   new_icon_data_node.id((int)encode_lang(newone.lang(), newone.sublang()));
-  new_icon_dir_node.add_child(std::move(new_icon_data_node));
-  icon_node->add_child(std::move(new_icon_dir_node));
+  new_icon_dir_node.add_child(new_icon_data_node);
+  icon_node->add_child(new_icon_dir_node);
 }

 ResourcesManager::it_const_dialogs ResourcesManager::dialogs() const {
+  static std::mutex DIALOG_CACHE_MU;
+  std::scoped_lock lock(DIALOG_CACHE_MU);
   dialogs_.clear();
   const ResourceNode* dialog_node = get_node_type(TYPE::DIALOG);
   if (dialog_node == nullptr) {
@@ -424,7 +425,7 @@ ResourcesManager::it_const_dialogs ResourcesManager::dialogs() const {
   const auto* dialog_dir = dialog_node->cast<ResourceDirectory>();

   if (dialog_dir == nullptr) {
-    LIEF_INFO("Expecting a Directory node for the Dialog Node");
+    LIEF_INFO("Expected directory node for dialog node");
     return dialogs_;
   }

@@ -440,7 +441,7 @@ ResourcesManager::it_const_dialogs ResourcesManager::dialogs() const {
     for (size_t j = 0; j < langs.size(); ++j) {
       const auto* data_node = langs[j].cast<ResourceData>();
       if (data_node == nullptr) {
-        LIEF_INFO("Expecting a Data node for child #{}->{}", i, j);
+        LIEF_INFO("Expected data node for child #{}->{}", i, j);
         continue;
       }

@@ -467,7 +468,7 @@ ResourcesManager::strings_table_t ResourcesManager::string_table() const {
     for (const ResourceNode& child_l2 : child_l1.childs()) {
       const auto* data_node = child_l2.cast<ResourceData>();
       if (data_node == nullptr) {
-        LIEF_WARN("Expecting a data not for the string node id {}", child_l2.id());
+        LIEF_WARN("Expected data node for string node id {}", child_l2.id());
         continue;
       }
       span<const uint8_t> content = data_node->content();
@@ -515,17 +516,17 @@ std::vector<std::string> ResourcesManager::html() const {
   for (const ResourceNode& child_l1 : root_node->childs()) {
     for (const ResourceNode& child_l2 : child_l1.childs()) {
       if (!child_l2.is_data()) {
-        LIEF_ERR("html node corrupted");
+        LIEF_ERR("HTML node corrupted");
         continue;
       }
       const auto& html_node = static_cast<const ResourceData&>(child_l2);

       span<const uint8_t> content = html_node.content();
       if (content.empty()) {
-        LIEF_ERR("html content is empty");
+        LIEF_ERR("HTML content is empty");
         continue;
       }
-      html.push_back(std::string{std::begin(content), std::end(content)});
+      html.emplace_back(content.begin(), content.end());
     }
   }

@@ -544,7 +545,7 @@ ResourcesManager::it_const_accelerators ResourcesManager::accelerator() const {
     for (const ResourceNode& child_l2 : child_l1.childs()) {
       const auto* accelerator_node = child_l2.cast<ResourceData>();
       if (accelerator_node == nullptr) {
-        LIEF_ERR("Expecting a Data node for node id: {}", child_l2.id());
+        LIEF_ERR("Expected data node for node id {}", child_l2.id());
         continue;
       }

@@ -560,7 +561,7 @@ ResourcesManager::it_const_accelerators ResourcesManager::accelerator() const {
       while (stream) {
         auto res_entry = stream.read<details::pe_resource_acceltableentry>();
         if (!res_entry) {
-          LIEF_ERR("Can't read pe_resource_acceltableentry");
+          LIEF_ERR("Failed to read pe_resource_acceltableentry");
           break;
         }
         accelerator.emplace_back(*res_entry);
@@ -569,7 +570,7 @@ ResourcesManager::it_const_accelerators ResourcesManager::accelerator() const {
       if (!accelerator.empty()) {
         ResourceAccelerator& acc = accelerator.back();
         if (!acc.has(ResourceAccelerator::FLAGS::END)) {
-          LIEF_ERR("Accelerator resources might be corrupted");
+          LIEF_ERR("Possibly corrupted accelerator resources");
         }
       }
     }
@@ -585,11 +586,11 @@ std::string ResourcesManager::print(uint32_t depth) const {
   return oss.str();
 }

-void ResourcesManager::print_tree(const ResourceNode& node, std::ostringstream& output,
+void ResourcesManager::print_tree(const ResourceNode& node,
+                                  std::ostringstream& output,
                                   uint32_t current_depth, uint32_t max_depth,
-                                  const ResourceNode*/*parent*/, std::string header,
-                                  bool is_last) const
-{
+                                  const ResourceNode* /*parent*/,
+                                  std::string header, bool is_last) const {
   static constexpr auto ELBOW = "└──";
   static constexpr auto PIPE = "│  ";
   static constexpr auto TEE = "├──";
@@ -600,32 +601,31 @@ void ResourcesManager::print_tree(const ResourceNode& node, std::ostringstream&
   }

   std::string type = node.is_directory() ? "Directory" : "Data";
-  std::string info = fmt::format("{} ID: {:04d} (0x{:04x})",
-                                 type, node.id(), node.id());
+  std::string info =
+      fmt::format("{} ID: {:04d} ({:#06x})", type, node.id(), node.id());
   if (node.has_name()) {
     info += fmt::format(" name: {}", u16tou8(node.name()));
   } else if (std::string ty = to_string(TYPE(node.id()));
              ty != "UNKNOWN" && node.depth() == 1)
   {
     info += fmt::format(" type: {}", ty);
-  }
-  else if (current_depth == 3) {
+  } else if (current_depth == 3) {
     uint32_t lang = lang_from_id(node.id());
     uint32_t sub_lang = sublang_from_id(node.id());
-    info += fmt::format(" Lang: 0x{:02x} / Sublang: 0x{:02x}", lang, sub_lang);
+    info += fmt::format(" Lang: {:#04x} / Sublang: {:#04x}", lang, sub_lang);
   }

   if (const auto* data = node.cast<ResourceData>()) {
     const size_t size = data->content().size();
-    info += fmt::format(" length={} (0x{:06x}), offset: 0x{:04x}",
-                        size, size, data->offset());
+    info += fmt::format(" length={} ({:#08x}), offset: {:#06x}", size, size,
+                        data->offset());
   }

   if (const auto* dir = node.cast<ResourceDirectory>()) {
     info += fmt::format(" children={}", dir->childs().size());
   }

-  output << fmt::format("{}{} {}\n", header, is_last ? ELBOW : TEE , info);
+  output << fmt::format("{}{} {}\n", header, is_last ? ELBOW : TEE, info);
   if (const auto* data = node.cast<ResourceData>()) {
     std::string hex_content;
     std::string str_content;
@@ -649,9 +649,8 @@ void ResourcesManager::print_tree(const ResourceNode& node, std::ostringstream&

   auto children = node.childs();
   for (size_t i = 0; i < children.size(); ++i) {
-    print_tree(children[i], output, current_depth + 1, max_depth,
-               &node, header + (is_last ? BLANK : PIPE),
-               i == (children.size() - 1));
+    print_tree(children[i], output, current_depth + 1, max_depth, &node,
+               header + (is_last ? BLANK : PIPE), i == (children.size() - 1));
   }
 }

@@ -695,31 +694,17 @@ std::ostream& operator<<(std::ostream& os, const ResourcesManager& rsrc) {
 }

 const char* to_string(ResourcesManager::TYPE type) {
-  #define ENTRY(X) std::pair(ResourcesManager::TYPE::X, #X)
-  STRING_MAP enums2str {
-    ENTRY(CURSOR),
-    ENTRY(BITMAP),
-    ENTRY(ICON),
-    ENTRY(MENU),
-    ENTRY(DIALOG),
-    ENTRY(STRING),
-    ENTRY(FONTDIR),
-    ENTRY(FONT),
-    ENTRY(ACCELERATOR),
-    ENTRY(RCDATA),
-    ENTRY(MESSAGETABLE),
-    ENTRY(GROUP_CURSOR),
-    ENTRY(GROUP_ICON),
-    ENTRY(VERSION),
-    ENTRY(DLGINCLUDE),
-    ENTRY(PLUGPLAY),
-    ENTRY(VXD),
-    ENTRY(ANICURSOR),
-    ENTRY(ANIICON),
-    ENTRY(HTML),
-    ENTRY(MANIFEST),
+#define ENTRY(X) std::pair(ResourcesManager::TYPE::X, #X)
+  STRING_MAP enums2str{
+      ENTRY(CURSOR),     ENTRY(BITMAP),       ENTRY(ICON),
+      ENTRY(MENU),       ENTRY(DIALOG),       ENTRY(STRING),
+      ENTRY(FONTDIR),    ENTRY(FONT),         ENTRY(ACCELERATOR),
+      ENTRY(RCDATA),     ENTRY(MESSAGETABLE), ENTRY(GROUP_CURSOR),
+      ENTRY(GROUP_ICON), ENTRY(VERSION),      ENTRY(DLGINCLUDE),
+      ENTRY(PLUGPLAY),   ENTRY(VXD),          ENTRY(ANICURSOR),
+      ENTRY(ANIICON),    ENTRY(HTML),         ENTRY(MANIFEST),
   };
-  #undef ENTRY
+#undef ENTRY

   if (auto it = enums2str.find(type); it != enums2str.end()) {
     return it->second;
@@ -729,5 +714,4 @@ const char* to_string(ResourcesManager::TYPE type) {
 }


-} // namespace PE
-} // namespace LIEF
+} // namespace LIEF::PE
diff --git a/deps/LIEF/src/PE/RichEntry.cpp b/deps/LIEF/src/PE/RichEntry.cpp
index c92f09ca181..438194eff45 100644
--- a/deps/LIEF/src/PE/RichEntry.cpp
+++ b/deps/LIEF/src/PE/RichEntry.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -19,19 +19,17 @@

 #include "LIEF/PE/RichEntry.hpp"

-namespace LIEF {
-namespace PE {
+
+namespace LIEF::PE {

 void RichEntry::accept(LIEF::Visitor& visitor) const {
   visitor.visit(*this);
 }

 std::ostream& operator<<(std::ostream& os, const RichEntry& entry) {
-  using namespace fmt;
-  os << format("ID: 0x{:04x}, Build ID: 0x{:04x}, Count: {}",
-               entry.id(), entry.build_id(), entry.count());
+  os << fmt::format("ID: {:#06x}, Build ID: {:#06x}, Count: {}", entry.id(),
+                    entry.build_id(), entry.count());
   return os;
 }

 }
-}
diff --git a/deps/LIEF/src/PE/RichHeader.cpp b/deps/LIEF/src/PE/RichHeader.cpp
index 6f076d1f41f..e26e17a031d 100644
--- a/deps/LIEF/src/PE/RichHeader.cpp
+++ b/deps/LIEF/src/PE/RichHeader.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -13,8 +13,6 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-#include <iomanip>
-
 #include "LIEF/PE/hash.hpp"
 #include "LIEF/PE/RichHeader.hpp"
 #include "LIEF/iostream.hpp"
@@ -25,8 +23,8 @@

 #include "hash_stream.hpp"

-namespace LIEF {
-namespace PE {
+
+namespace LIEF::PE {

 void RichHeader::accept(LIEF::Visitor& visitor) const {
   visitor.visit(*this);
@@ -36,39 +34,39 @@ std::vector<uint8_t> RichHeader::raw(uint32_t xor_key) const {
   vector_iostream wstream;

   wstream
-    .write(DANS_MAGIC_NUMBER ^ xor_key)
-    /*
-     * The first chunk needs to be aligned on 64-bit and padded
-     * with 0-xor. We can't use vector_iostream::align as it would not
-     * be encoded.
-     */
-    .write<uint32_t>(0 ^ xor_key)
-    .write<uint32_t>(0 ^ xor_key)
-    .write<uint32_t>(0 ^ xor_key);
+      .write(DANS_MAGIC_NUMBER ^ xor_key)
+      /*
+       * The first chunk needs to be aligned on 64-bit and padded
+       * with 0-xor. We can't use vector_iostream::align as it would not
+       * be encoded.
+       */
+      .write<uint32_t>(0 ^ xor_key)
+      .write<uint32_t>(0 ^ xor_key)
+      .write<uint32_t>(0 ^ xor_key);

   for (auto it = entries_.crbegin(); it != entries_.crend(); ++it) {
     const RichEntry& entry = *it;
-    const uint32_t value = (static_cast<uint32_t>(entry.id()) << 16) | entry.build_id();
-    wstream
-      .write(value ^ xor_key).write(entry.count() ^ xor_key);
+    const uint32_t value =
+        (static_cast<uint32_t>(entry.id()) << 16) | entry.build_id();
+    wstream.write(value ^ xor_key).write(entry.count() ^ xor_key);
   }
-  wstream
-    .write(RICH_MAGIC, std::size(RICH_MAGIC)).write(xor_key);
+  wstream.write(RICH_MAGIC, std::size(RICH_MAGIC)).write(xor_key);

   return wstream.raw();
 }

 std::vector<uint8_t> RichHeader::hash(ALGORITHMS algo, uint32_t xor_key) const {
-  CONST_MAP(ALGORITHMS, hashstream::HASH, 5) HMAP = {
-    {ALGORITHMS::MD5,     hashstream::HASH::MD5},
-    {ALGORITHMS::SHA_1,   hashstream::HASH::SHA1},
-    {ALGORITHMS::SHA_256, hashstream::HASH::SHA256},
-    {ALGORITHMS::SHA_384, hashstream::HASH::SHA384},
-    {ALGORITHMS::SHA_512, hashstream::HASH::SHA512},
+  CONST_MAP(ALGORITHMS, hashstream::HASH, 5)
+  HMAP = {
+      {ALGORITHMS::MD5, hashstream::HASH::MD5},
+      {ALGORITHMS::SHA_1, hashstream::HASH::SHA1},
+      {ALGORITHMS::SHA_256, hashstream::HASH::SHA256},
+      {ALGORITHMS::SHA_384, hashstream::HASH::SHA384},
+      {ALGORITHMS::SHA_512, hashstream::HASH::SHA512},
   };

   const auto it_hash = HMAP.find(algo);
-  if (it_hash == std::end(HMAP)) {
+  if (it_hash == HMAP.end()) {
     LIEF_WARN("Unsupported hash algorithm: {}", to_string(algo));
     return {};
   }
@@ -81,9 +79,8 @@ std::vector<uint8_t> RichHeader::hash(ALGORITHMS algo, uint32_t xor_key) const {
 }

 std::ostream& operator<<(std::ostream& os, const RichHeader& rich_header) {
-  using namespace fmt;
-  os << format("Key: 0x{:08x} ({} entries)\n", rich_header.key(),
-               rich_header.entries().size());
+  os << fmt::format("Key: {:#010x} ({} entries)\n", rich_header.key(),
+                    rich_header.entries().size());
   for (const RichEntry& entry : rich_header.entries()) {
     os << "  " << entry << '\n';
   }
@@ -91,4 +88,3 @@ std::ostream& operator<<(std::ostream& os, const RichHeader& rich_header) {
 }

 }
-}
diff --git a/deps/LIEF/src/PE/Section.cpp b/deps/LIEF/src/PE/Section.cpp
index 0239855294a..2a5eb1f4f2a 100644
--- a/deps/LIEF/src/PE/Section.cpp
+++ b/deps/LIEF/src/PE/Section.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -27,45 +27,45 @@
 #include "LIEF/PE/Section.hpp"
 #include "LIEF/COFF/String.hpp"

-namespace LIEF {
-namespace PE {
+
+namespace LIEF::PE {

 static constexpr std::array CHARACTERISTICS_LIST = {
-  Section::CHARACTERISTICS::TYPE_NO_PAD,
-  Section::CHARACTERISTICS::CNT_CODE,
-  Section::CHARACTERISTICS::CNT_INITIALIZED_DATA,
-  Section::CHARACTERISTICS::CNT_UNINITIALIZED_DATA,
-  Section::CHARACTERISTICS::LNK_OTHER,
-  Section::CHARACTERISTICS::LNK_INFO,
-  Section::CHARACTERISTICS::LNK_REMOVE,
-  Section::CHARACTERISTICS::LNK_COMDAT,
-  Section::CHARACTERISTICS::GPREL,
-  Section::CHARACTERISTICS::MEM_PURGEABLE,
-  Section::CHARACTERISTICS::MEM_16BIT,
-  Section::CHARACTERISTICS::MEM_LOCKED,
-  Section::CHARACTERISTICS::MEM_PRELOAD,
-  Section::CHARACTERISTICS::ALIGN_1BYTES,
-  Section::CHARACTERISTICS::ALIGN_2BYTES,
-  Section::CHARACTERISTICS::ALIGN_4BYTES,
-  Section::CHARACTERISTICS::ALIGN_8BYTES,
-  Section::CHARACTERISTICS::ALIGN_16BYTES,
-  Section::CHARACTERISTICS::ALIGN_32BYTES,
-  Section::CHARACTERISTICS::ALIGN_64BYTES,
-  Section::CHARACTERISTICS::ALIGN_128BYTES,
-  Section::CHARACTERISTICS::ALIGN_256BYTES,
-  Section::CHARACTERISTICS::ALIGN_512BYTES,
-  Section::CHARACTERISTICS::ALIGN_1024BYTES,
-  Section::CHARACTERISTICS::ALIGN_2048BYTES,
-  Section::CHARACTERISTICS::ALIGN_4096BYTES,
-  Section::CHARACTERISTICS::ALIGN_8192BYTES,
-  Section::CHARACTERISTICS::LNK_NRELOC_OVFL,
-  Section::CHARACTERISTICS::MEM_DISCARDABLE,
-  Section::CHARACTERISTICS::MEM_NOT_CACHED,
-  Section::CHARACTERISTICS::MEM_NOT_PAGED,
-  Section::CHARACTERISTICS::MEM_SHARED,
-  Section::CHARACTERISTICS::MEM_EXECUTE,
-  Section::CHARACTERISTICS::MEM_READ,
-  Section::CHARACTERISTICS::MEM_WRITE,
+    Section::CHARACTERISTICS::TYPE_NO_PAD,
+    Section::CHARACTERISTICS::CNT_CODE,
+    Section::CHARACTERISTICS::CNT_INITIALIZED_DATA,
+    Section::CHARACTERISTICS::CNT_UNINITIALIZED_DATA,
+    Section::CHARACTERISTICS::LNK_OTHER,
+    Section::CHARACTERISTICS::LNK_INFO,
+    Section::CHARACTERISTICS::LNK_REMOVE,
+    Section::CHARACTERISTICS::LNK_COMDAT,
+    Section::CHARACTERISTICS::GPREL,
+    Section::CHARACTERISTICS::MEM_PURGEABLE,
+    Section::CHARACTERISTICS::MEM_16BIT,
+    Section::CHARACTERISTICS::MEM_LOCKED,
+    Section::CHARACTERISTICS::MEM_PRELOAD,
+    Section::CHARACTERISTICS::ALIGN_1BYTES,
+    Section::CHARACTERISTICS::ALIGN_2BYTES,
+    Section::CHARACTERISTICS::ALIGN_4BYTES,
+    Section::CHARACTERISTICS::ALIGN_8BYTES,
+    Section::CHARACTERISTICS::ALIGN_16BYTES,
+    Section::CHARACTERISTICS::ALIGN_32BYTES,
+    Section::CHARACTERISTICS::ALIGN_64BYTES,
+    Section::CHARACTERISTICS::ALIGN_128BYTES,
+    Section::CHARACTERISTICS::ALIGN_256BYTES,
+    Section::CHARACTERISTICS::ALIGN_512BYTES,
+    Section::CHARACTERISTICS::ALIGN_1024BYTES,
+    Section::CHARACTERISTICS::ALIGN_2048BYTES,
+    Section::CHARACTERISTICS::ALIGN_4096BYTES,
+    Section::CHARACTERISTICS::ALIGN_8192BYTES,
+    Section::CHARACTERISTICS::LNK_NRELOC_OVFL,
+    Section::CHARACTERISTICS::MEM_DISCARDABLE,
+    Section::CHARACTERISTICS::MEM_NOT_CACHED,
+    Section::CHARACTERISTICS::MEM_NOT_PAGED,
+    Section::CHARACTERISTICS::MEM_SHARED,
+    Section::CHARACTERISTICS::MEM_EXECUTE,
+    Section::CHARACTERISTICS::MEM_READ,
+    Section::CHARACTERISTICS::MEM_WRITE,
 };

 Section::Section(const details::pe_section& header) :
@@ -74,18 +74,16 @@ Section::Section(const details::pe_section& header) :
   pointer_to_linenumbers_{header.PointerToLineNumbers},
   number_of_relocations_{header.NumberOfRelocations},
   number_of_linenumbers_{header.NumberOfLineNumbers},
-  characteristics_{header.Characteristics}
-{
-  name_            = std::string(header.Name, sizeof(header.Name));
+  characteristics_{header.Characteristics} {
+  name_ = std::string(header.Name, sizeof(header.Name));
   virtual_address_ = header.VirtualAddress;
-  size_            = header.SizeOfRawData;
-  offset_          = header.PointerToRawData;
+  size_ = header.SizeOfRawData;
+  offset_ = header.PointerToRawData;
 }

 void Section::name(std::string name) {
   if (name.size() > MAX_SECTION_NAME) {
-    LIEF_ERR("The max size of a section's name is {} vs {}", MAX_SECTION_NAME,
-             name.size());
+    LIEF_ERR("Section name too long: max {} vs {}", MAX_SECTION_NAME, name.size());
     return;
   }
   name_ = std::move(name);
@@ -99,12 +97,13 @@ uint32_t Section::pointerto_raw_data() const {
   return offset();
 }

-std::vector<Section::CHARACTERISTICS> Section::characteristics_to_list(uint32_t value) {
+std::vector<Section::CHARACTERISTICS>
+    Section::characteristics_to_list(uint32_t value) {
   std::vector<Section::CHARACTERISTICS> list;
   list.reserve(3);
   std::copy_if(CHARACTERISTICS_LIST.begin(), CHARACTERISTICS_LIST.end(),
                std::back_inserter(list),
-               [value] (CHARACTERISTICS c) { return (value & (uint32_t)c) != 0; });
+               [value](CHARACTERISTICS c) { return (value & (uint32_t)c) != 0; });

   return list;
 }
@@ -122,90 +121,99 @@ std::unique_ptr<SpanStream> Section::stream() const {
 }

 void Section::clear(uint8_t c) {
-  std::fill(std::begin(content_), std::end(content_), c);
+  std::fill(content_.begin(), content_.end(), c);
 }

 std::ostream& operator<<(std::ostream& os, const Section& section) {
-  using namespace fmt;
   static constexpr auto WIDTH = 24;
   const auto& list = section.characteristics_list();
   std::vector<std::string> list_str;
   list_str.reserve(list.size());
   std::transform(list.begin(), list.end(), std::back_inserter(list_str),
-                 [] (const auto c) { return to_string(c); });
+                 [](const auto c) { return to_string(c); });

   std::vector<std::string> fullname_hex;
   fullname_hex.reserve(section.name().size());
   std::transform(section.fullname().begin(), section.fullname().end(),
                  std::back_inserter(fullname_hex),
-                 [] (const char c) { return format("{:02x}", c); });
+                 [](const char c) { return fmt::format("{:02x}", c); });

   if (const COFF::String* coff_str = section.coff_string()) {
-    os << format("{:{}} {} ({}, {})\n", "Name:", WIDTH, section.name(),
-                 join(fullname_hex, " "), coff_str->str());
+    os << fmt::format("{:{}} {} ({}, {})\n", "Name:", WIDTH, section.name(),
+                      fmt::join(fullname_hex, " "), coff_str->str());
   } else {
-    os << format("{:{}} {} ({})\n", "Name:", WIDTH, section.name(),
-                 join(fullname_hex, " "));
+    os << fmt::format("{:{}} {} ({})\n", "Name:", WIDTH, section.name(),
+                      fmt::join(fullname_hex, " "));
   }

-  os << format("{:{}} 0x{:x}\n", "Virtual Size", WIDTH, section.virtual_size())
-     << format("{:{}} 0x{:x}\n", "Virtual Address", WIDTH, section.virtual_address())
-     << format("{:{}} [0x{:08x}, 0x{:08x}]\n", "Range", WIDTH,
-               section.virtual_address(), section.virtual_address() + section.virtual_size())
-     << format("{:{}} 0x{:x}\n", "Size of raw data", WIDTH, section.sizeof_raw_data())
-     << format("{:{}} 0x{:x}\n", "Pointer to raw data", WIDTH, section.pointerto_raw_data())
-     << format("{:{}} [0x{:08x}, 0x{:08x}]\n", "Range", WIDTH,
-               section.pointerto_raw_data(), section.pointerto_raw_data() + section.sizeof_raw_data())
-     << format("{:{}} 0x{:x}\n", "Pointer to relocations", WIDTH, section.pointerto_relocation())
-     << format("{:{}} 0x{:x}\n", "Pointer to line numbers", WIDTH, section.pointerto_line_numbers())
-     << format("{:{}} 0x{:x}\n", "Number of relocations", WIDTH, section.numberof_relocations())
-     << format("{:{}} 0x{:x}\n", "Number of lines", WIDTH, section.numberof_line_numbers())
-     << format("{:{}} {}", "Characteristics", WIDTH, join(list_str, ", "));
+  os << fmt::format("{:{}} {:#x}\n", "Virtual Size", WIDTH, section.virtual_size())
+     << fmt::format("{:{}} {:#x}\n", "Virtual Address", WIDTH,
+                    section.virtual_address())
+     << fmt::format("{:{}} [{:#010x}, {:#010x}]\n", "Range", WIDTH,
+                    section.virtual_address(),
+                    section.virtual_address() + section.virtual_size())
+     << fmt::format("{:{}} {:#x}\n", "Size of raw data", WIDTH,
+                    section.sizeof_raw_data())
+     << fmt::format("{:{}} {:#x}\n", "Pointer to raw data", WIDTH,
+                    section.pointerto_raw_data())
+     << fmt::format("{:{}} [{:#010x}, {:#010x}]\n", "Range", WIDTH,
+                    section.pointerto_raw_data(),
+                    section.pointerto_raw_data() + section.sizeof_raw_data())
+     << fmt::format("{:{}} {:#x}\n", "Pointer to relocations", WIDTH,
+                    section.pointerto_relocation())
+     << fmt::format("{:{}} {:#x}\n", "Pointer to line numbers", WIDTH,
+                    section.pointerto_line_numbers())
+     << fmt::format("{:{}} {:#x}\n", "Number of relocations", WIDTH,
+                    section.numberof_relocations())
+     << fmt::format("{:{}} {:#x}\n", "Number of lines", WIDTH,
+                    section.numberof_line_numbers())
+     << fmt::format("{:{}} {}", "Characteristics", WIDTH,
+                    fmt::join(list_str, ", "));
   return os;
 }


 const char* to_string(Section::CHARACTERISTICS e) {
-  CONST_MAP(Section::CHARACTERISTICS, const char*, 35) enumStrings {
-    { Section::CHARACTERISTICS::TYPE_NO_PAD,            "TYPE_NO_PAD" },
-    { Section::CHARACTERISTICS::CNT_CODE,               "CNT_CODE" },
-    { Section::CHARACTERISTICS::CNT_INITIALIZED_DATA,   "CNT_INITIALIZED_DATA" },
-    { Section::CHARACTERISTICS::CNT_UNINITIALIZED_DATA, "CNT_UNINITIALIZED_DATA" },
-    { Section::CHARACTERISTICS::LNK_OTHER,              "LNK_OTHER" },
-    { Section::CHARACTERISTICS::LNK_INFO,               "LNK_INFO" },
-    { Section::CHARACTERISTICS::LNK_REMOVE,             "LNK_REMOVE" },
-    { Section::CHARACTERISTICS::LNK_COMDAT,             "LNK_COMDAT" },
-    { Section::CHARACTERISTICS::GPREL,                  "GPREL" },
-    { Section::CHARACTERISTICS::MEM_PURGEABLE,          "MEM_PURGEABLE" },
-    { Section::CHARACTERISTICS::MEM_16BIT,              "MEM_16BIT" },
-    { Section::CHARACTERISTICS::MEM_LOCKED,             "MEM_LOCKED" },
-    { Section::CHARACTERISTICS::MEM_PRELOAD,            "MEM_PRELOAD" },
-    { Section::CHARACTERISTICS::ALIGN_1BYTES,           "ALIGN_1BYTES" },
-    { Section::CHARACTERISTICS::ALIGN_2BYTES,           "ALIGN_2BYTES" },
-    { Section::CHARACTERISTICS::ALIGN_4BYTES,           "ALIGN_4BYTES" },
-    { Section::CHARACTERISTICS::ALIGN_8BYTES,           "ALIGN_8BYTES" },
-    { Section::CHARACTERISTICS::ALIGN_16BYTES,          "ALIGN_16BYTES" },
-    { Section::CHARACTERISTICS::ALIGN_32BYTES,          "ALIGN_32BYTES" },
-    { Section::CHARACTERISTICS::ALIGN_64BYTES,          "ALIGN_64BYTES" },
-    { Section::CHARACTERISTICS::ALIGN_128BYTES,         "ALIGN_128BYTES" },
-    { Section::CHARACTERISTICS::ALIGN_256BYTES,         "ALIGN_256BYTES" },
-    { Section::CHARACTERISTICS::ALIGN_512BYTES,         "ALIGN_512BYTES" },
-    { Section::CHARACTERISTICS::ALIGN_1024BYTES,        "ALIGN_1024BYTES" },
-    { Section::CHARACTERISTICS::ALIGN_2048BYTES,        "ALIGN_2048BYTES" },
-    { Section::CHARACTERISTICS::ALIGN_4096BYTES,        "ALIGN_4096BYTES" },
-    { Section::CHARACTERISTICS::ALIGN_8192BYTES,        "ALIGN_8192BYTES" },
-    { Section::CHARACTERISTICS::LNK_NRELOC_OVFL,        "LNK_NRELOC_OVFL" },
-    { Section::CHARACTERISTICS::MEM_DISCARDABLE,        "MEM_DISCARDABLE" },
-    { Section::CHARACTERISTICS::MEM_NOT_CACHED,         "MEM_NOT_CACHED" },
-    { Section::CHARACTERISTICS::MEM_NOT_PAGED,          "MEM_NOT_PAGED" },
-    { Section::CHARACTERISTICS::MEM_SHARED,             "MEM_SHARED" },
-    { Section::CHARACTERISTICS::MEM_EXECUTE,            "MEM_EXECUTE" },
-    { Section::CHARACTERISTICS::MEM_READ,               "MEM_READ" },
-    { Section::CHARACTERISTICS::MEM_WRITE,              "MEM_WRITE" }
+  CONST_MAP(Section::CHARACTERISTICS, const char*, 35)
+  enumStrings{
+      {Section::CHARACTERISTICS::TYPE_NO_PAD, "TYPE_NO_PAD"},
+      {Section::CHARACTERISTICS::CNT_CODE, "CNT_CODE"},
+      {Section::CHARACTERISTICS::CNT_INITIALIZED_DATA, "CNT_INITIALIZED_DATA"},
+      {Section::CHARACTERISTICS::CNT_UNINITIALIZED_DATA, "CNT_UNINITIALIZED_DATA"},
+      {Section::CHARACTERISTICS::LNK_OTHER, "LNK_OTHER"},
+      {Section::CHARACTERISTICS::LNK_INFO, "LNK_INFO"},
+      {Section::CHARACTERISTICS::LNK_REMOVE, "LNK_REMOVE"},
+      {Section::CHARACTERISTICS::LNK_COMDAT, "LNK_COMDAT"},
+      {Section::CHARACTERISTICS::GPREL, "GPREL"},
+      {Section::CHARACTERISTICS::MEM_PURGEABLE, "MEM_PURGEABLE"},
+      {Section::CHARACTERISTICS::MEM_16BIT, "MEM_16BIT"},
+      {Section::CHARACTERISTICS::MEM_LOCKED, "MEM_LOCKED"},
+      {Section::CHARACTERISTICS::MEM_PRELOAD, "MEM_PRELOAD"},
+      {Section::CHARACTERISTICS::ALIGN_1BYTES, "ALIGN_1BYTES"},
+      {Section::CHARACTERISTICS::ALIGN_2BYTES, "ALIGN_2BYTES"},
+      {Section::CHARACTERISTICS::ALIGN_4BYTES, "ALIGN_4BYTES"},
+      {Section::CHARACTERISTICS::ALIGN_8BYTES, "ALIGN_8BYTES"},
+      {Section::CHARACTERISTICS::ALIGN_16BYTES, "ALIGN_16BYTES"},
+      {Section::CHARACTERISTICS::ALIGN_32BYTES, "ALIGN_32BYTES"},
+      {Section::CHARACTERISTICS::ALIGN_64BYTES, "ALIGN_64BYTES"},
+      {Section::CHARACTERISTICS::ALIGN_128BYTES, "ALIGN_128BYTES"},
+      {Section::CHARACTERISTICS::ALIGN_256BYTES, "ALIGN_256BYTES"},
+      {Section::CHARACTERISTICS::ALIGN_512BYTES, "ALIGN_512BYTES"},
+      {Section::CHARACTERISTICS::ALIGN_1024BYTES, "ALIGN_1024BYTES"},
+      {Section::CHARACTERISTICS::ALIGN_2048BYTES, "ALIGN_2048BYTES"},
+      {Section::CHARACTERISTICS::ALIGN_4096BYTES, "ALIGN_4096BYTES"},
+      {Section::CHARACTERISTICS::ALIGN_8192BYTES, "ALIGN_8192BYTES"},
+      {Section::CHARACTERISTICS::LNK_NRELOC_OVFL, "LNK_NRELOC_OVFL"},
+      {Section::CHARACTERISTICS::MEM_DISCARDABLE, "MEM_DISCARDABLE"},
+      {Section::CHARACTERISTICS::MEM_NOT_CACHED, "MEM_NOT_CACHED"},
+      {Section::CHARACTERISTICS::MEM_NOT_PAGED, "MEM_NOT_PAGED"},
+      {Section::CHARACTERISTICS::MEM_SHARED, "MEM_SHARED"},
+      {Section::CHARACTERISTICS::MEM_EXECUTE, "MEM_EXECUTE"},
+      {Section::CHARACTERISTICS::MEM_READ, "MEM_READ"},
+      {Section::CHARACTERISTICS::MEM_WRITE, "MEM_WRITE"}
   };
   const auto it = enumStrings.find(e);
   return it == enumStrings.end() ? "UNKNOWN" : it->second;
 }

 }
-}
diff --git a/deps/LIEF/src/PE/Structures.hpp b/deps/LIEF/src/PE/Structures.hpp
index 4adc3e1de9b..b0489b8cfc7 100644
--- a/deps/LIEF/src/PE/Structures.hpp
+++ b/deps/LIEF/src/PE/Structures.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2021 - 2025 R. Thomas
+/* Copyright 2021 - 2026 R. Thomas
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -14,36 +14,23 @@
  */
 #ifndef LIEF_PE_STRUCTURES_H
 #define LIEF_PE_STRUCTURES_H
-#include <type_traits>
-#include <map>
-
-#include "LIEF/types.hpp"
-
-#include "LIEF/PE/enums.hpp"
-
-namespace LIEF {
-
-/// Namespace related to the LIEF's PE module
-///
 /// Some parts come from llvm/Support/COFF.h
-namespace PE {
-
-namespace details {
+namespace LIEF::PE::details {

 /// Sizes in bytes of various things in the COFF format.
 namespace sizes {
-  static constexpr size_t HEADER_16                    = 20;
-  static constexpr size_t HEADER_32                    = 56;
-  static constexpr size_t SECTION_NAME                 = 8;
-  static constexpr size_t SYMBOL_16                    = 18;
-  static constexpr size_t SYMBOL_32                    = 20;
-  static constexpr size_t SECTION                      = 40;
-  static constexpr size_t RELOCATION                   = 10;
-  static constexpr size_t BASE_RELOCATION_BLOCK        = 8;
-  static constexpr size_t IMPORT_DIRECTORY_TABLE_ENTRY = 20;
-  static constexpr size_t RESOURCE_DIRECTORY_TABLE     = 16;
-  static constexpr size_t RESOURCE_DIRECTORY_ENTRIES   = 8;
-  static constexpr size_t RESOURCE_DATA_ENTRY          = 16;
+static constexpr size_t HEADER_16 = 20;
+static constexpr size_t HEADER_32 = 56;
+static constexpr size_t SECTION_NAME = 8;
+static constexpr size_t SYMBOL_16 = 18;
+static constexpr size_t SYMBOL_32 = 20;
+static constexpr size_t SECTION = 40;
+static constexpr size_t RELOCATION = 10;
+static constexpr size_t BASE_RELOCATION_BLOCK = 8;
+static constexpr size_t IMPORT_DIRECTORY_TABLE_ENTRY = 20;
+static constexpr size_t RESOURCE_DIRECTORY_TABLE = 16;
+static constexpr size_t RESOURCE_DIRECTORY_ENTRIES = 8;
+static constexpr size_t RESOURCE_DATA_ENTRY = 16;
 }

 struct delay_imports {
@@ -62,7 +49,7 @@ static_assert(sizeof(delay_imports) == 32, "Wrong sizeof(delay_imports)");
 #include "structures.inc"

 // From Virtualbox - include/iprt/formats/pecoff.h
-template <typename T>
+template<typename T>
 struct load_configuration {
   uint32_t Characteristics;
   uint32_t TimeDateStamp;
@@ -71,20 +58,20 @@ struct load_configuration {
   uint32_t GlobalFlagsClear;
   uint32_t GlobalFlagsSet;
   uint32_t CriticalSectionDefaultTimeout;
-  T        DeCommitFreeBlockThreshold;
-  T        DeCommitTotalFreeThreshold;
-  T        LockPrefixTable;
-  T        MaximumAllocationSize;
-  T        VirtualMemoryThreshold;
-  T        ProcessAffinityMask;
+  T DeCommitFreeBlockThreshold;
+  T DeCommitTotalFreeThreshold;
+  T LockPrefixTable;
+  T MaximumAllocationSize;
+  T VirtualMemoryThreshold;
+  T ProcessAffinityMask;
   uint32_t ProcessHeapFlags;
   uint16_t CSDVersion;
   uint16_t Reserved1;
-  T        EditList;
-  T        SecurityCookie;
+  T EditList;
+  T SecurityCookie;
 };

-template <typename T>
+template<typename T>
 struct load_configuration_v0 : load_configuration<T> {
   T SEHandlerTable;
   T SEHandlerCount;
@@ -94,25 +81,25 @@ struct load_configuration_v0 : load_configuration<T> {
 #pragma pack(4)
 // Windows 10 - 9879

-template <typename T>
+template<typename T>
 struct load_configuration_v1 : load_configuration_v0<T> {
-  T        GuardCFCheckFunctionPointer;
-  T        GuardCFDispatchFunctionPointer;
-  T        GuardCFFunctionTable;
-  T        GuardCFFunctionCount;
+  T GuardCFCheckFunctionPointer;
+  T GuardCFDispatchFunctionPointer;
+  T GuardCFFunctionTable;
+  T GuardCFFunctionCount;
   uint32_t GuardFlags;
 };
 #pragma pack()


 // Windows 10 - 9879
-template <typename T>
+template<typename T>
 struct load_configuration_v2 : load_configuration_v1<T> {
   pe_code_integrity CodeIntegrity;
 };


-template <typename T>
+template<typename T>
 struct load_configuration_v3 : load_configuration_v2<T> {
   T GuardAddressTakenIatEntryTable;
   T GuardAddressTakenIatEntryCount;
@@ -121,17 +108,17 @@ struct load_configuration_v3 : load_configuration_v2<T> {
 };


-template <typename T>
+template<typename T>
 struct load_configuration_v4 : load_configuration_v3<T> {
   T DynamicValueRelocTable;
   T HybridMetadataPointer;
 };


-template <typename T>
+template<typename T>
 struct load_configuration_v5 : load_configuration_v4<T> {
-  T        GuardRFFailureRoutine;
-  T        GuardRFFailureRoutineFunctionPointer;
+  T GuardRFFailureRoutine;
+  T GuardRFFailureRoutineFunctionPointer;
   uint32_t DynamicValueRelocTableOffset;
   uint16_t DynamicValueRelocTableSection;
   uint16_t Reserved2;
@@ -139,38 +126,38 @@ struct load_configuration_v5 : load_configuration_v4<T> {


 #pragma pack(4)
-template <typename T>
+template<typename T>
 struct load_configuration_v6 : load_configuration_v5<T> {
-  T        GuardRFVerifyStackPointerFunctionPointer;
+  T GuardRFVerifyStackPointerFunctionPointer;
   uint32_t HotPatchTableOffset;
 };
 #pragma pack()

-template <typename T>
+template<typename T>
 struct load_configuration_v7 : load_configuration_v6<T> {
   uint32_t Reserved3;
-  T        AddressOfSomeUnicodeString;
+  T AddressOfSomeUnicodeString;
 };

-template <typename T>
+template<typename T>
 struct load_configuration_v8 : load_configuration_v7<T> {
   T VolatileMetadataPointer;
 };

-template <typename T>
+template<typename T>
 struct load_configuration_v9 : load_configuration_v8<T> {
   T GuardEHContinuationTable;
   T GuardEHContinuationCount;
 };

-template <typename T>
+template<typename T>
 struct load_configuration_v10 : load_configuration_v9<T> {
   T GuardXFGCheckFunctionPointer;
   T GuardXFGDispatchFunctionPointer;
   T GuardXFGTableDispatchFunctionPointer;
 };

-template <typename T>
+template<typename T>
 struct load_configuration_v11 : load_configuration_v10<T> {
   T CastGuardOsDeterminedFailureMode;
 };
@@ -178,78 +165,78 @@ struct load_configuration_v11 : load_configuration_v10<T> {

 class PE32 {
   public:
-    using pe_optional_header = pe32_optional_header;
-    using pe_tls             = pe32_tls;
-    using uint               = uint32_t;
-
-    using load_configuration_t     = load_configuration<uint32_t>;
-    using load_configuration_v0_t  = load_configuration_v0<uint32_t>;
-    using load_configuration_v1_t  = load_configuration_v1<uint32_t>;
-    using load_configuration_v2_t  = load_configuration_v2<uint32_t>;
-    using load_configuration_v3_t  = load_configuration_v3<uint32_t>;
-    using load_configuration_v4_t  = load_configuration_v4<uint32_t>;
-    using load_configuration_v5_t  = load_configuration_v5<uint32_t>;
-    using load_configuration_v6_t  = load_configuration_v6<uint32_t>;
-    using load_configuration_v7_t  = load_configuration_v7<uint32_t>;
-    using load_configuration_v8_t  = load_configuration_v8<uint32_t>;
-    using load_configuration_v9_t  = load_configuration_v9<uint32_t>;
-    using load_configuration_v10_t = load_configuration_v10<uint32_t>;
-    using load_configuration_v11_t = load_configuration_v11<uint32_t>;
-
-    static_assert(sizeof(load_configuration_t)     == 0x40);
-    static_assert(sizeof(load_configuration_v0_t)  == 0x48);
-    static_assert(sizeof(load_configuration_v1_t)  == 0x5c);
-    static_assert(sizeof(load_configuration_v2_t)  == 0x68);
-    static_assert(sizeof(load_configuration_v3_t)  == 0x78);
-    static_assert(sizeof(load_configuration_v4_t)  == 0x80);
-    static_assert(sizeof(load_configuration_v5_t)  == 0x90);
-    static_assert(sizeof(load_configuration_v6_t)  == 0x98);
-    static_assert(sizeof(load_configuration_v7_t)  == 0xA0);
-    static_assert(sizeof(load_configuration_v8_t)  == 0xA4);
-    static_assert(sizeof(load_configuration_v9_t)  == 0xAC);
-    static_assert(sizeof(load_configuration_v10_t) == 0xB8);
-    static_assert(sizeof(load_configuration_v11_t) == 0xBC);
- };
+  using pe_optional_header = pe32_optional_header;
+  using pe_tls = pe32_tls;
+  using uint = uint32_t;
+
+  using load_configuration_t = load_configuration<uint32_t>;
+  using load_configuration_v0_t = load_configuration_v0<uint32_t>;
+  using load_configuration_v1_t = load_configuration_v1<uint32_t>;
+  using load_configuration_v2_t = load_configuration_v2<uint32_t>;
+  using load_configuration_v3_t = load_configuration_v3<uint32_t>;
+  using load_configuration_v4_t = load_configuration_v4<uint32_t>;
+  using load_configuration_v5_t = load_configuration_v5<uint32_t>;
+  using load_configuration_v6_t = load_configuration_v6<uint32_t>;
+  using load_configuration_v7_t = load_configuration_v7<uint32_t>;
+  using load_configuration_v8_t = load_configuration_v8<uint32_t>;
+  using load_configuration_v9_t = load_configuration_v9<uint32_t>;
+  using load_configuration_v10_t = load_configuration_v10<uint32_t>;
+  using load_configuration_v11_t = load_configuration_v11<uint32_t>;
+
+  static_assert(sizeof(load_configuration_t) == 0x40);
+  static_assert(sizeof(load_configuration_v0_t) == 0x48);
+  static_assert(sizeof(load_configuration_v1_t) == 0x5c);
+  static_assert(sizeof(load_configuration_v2_t) == 0x68);
+  static_assert(sizeof(load_configuration_v3_t) == 0x78);
+  static_assert(sizeof(load_configuration_v4_t) == 0x80);
+  static_assert(sizeof(load_configuration_v5_t) == 0x90);
+  static_assert(sizeof(load_configuration_v6_t) == 0x98);
+  static_assert(sizeof(load_configuration_v7_t) == 0xA0);
+  static_assert(sizeof(load_configuration_v8_t) == 0xA4);
+  static_assert(sizeof(load_configuration_v9_t) == 0xAC);
+  static_assert(sizeof(load_configuration_v10_t) == 0xB8);
+  static_assert(sizeof(load_configuration_v11_t) == 0xBC);
+};


 class PE64 {
   public:
-    using pe_optional_header = pe64_optional_header;
-    using pe_tls             = pe64_tls;
-    using uint               = uint64_t;
-
-    using load_configuration_t     = load_configuration<uint64_t>;
-    using load_configuration_v0_t  = load_configuration_v0<uint64_t>;
-    using load_configuration_v1_t  = load_configuration_v1<uint64_t>;
-    using load_configuration_v2_t  = load_configuration_v2<uint64_t>;
-    using load_configuration_v3_t  = load_configuration_v3<uint64_t>;
-    using load_configuration_v4_t  = load_configuration_v4<uint64_t>;
-    using load_configuration_v5_t  = load_configuration_v5<uint64_t>;
-    using load_configuration_v6_t  = load_configuration_v6<uint64_t>;
-    using load_configuration_v7_t  = load_configuration_v7<uint64_t>;
-    using load_configuration_v8_t  = load_configuration_v8<uint64_t>;
-    using load_configuration_v9_t  = load_configuration_v9<uint64_t>;
-    using load_configuration_v10_t = load_configuration_v10<uint64_t>;
-    using load_configuration_v11_t = load_configuration_v11<uint64_t>;
-
-    static_assert(sizeof(load_configuration_t)     == 0x60);
-    static_assert(sizeof(load_configuration_v0_t)  == 0x70);
-    static_assert(sizeof(load_configuration_v1_t)  == 0x94);
-    static_assert(sizeof(load_configuration_v2_t)  == 0xA0);
-    static_assert(sizeof(load_configuration_v3_t)  == 0xC0);
-    static_assert(sizeof(load_configuration_v4_t)  == 0xD0);
-    static_assert(sizeof(load_configuration_v5_t)  == 0xE8);
-    static_assert(sizeof(load_configuration_v6_t)  == 0xF4);
-    static_assert(sizeof(load_configuration_v7_t)  == 0x100);
-    static_assert(sizeof(load_configuration_v8_t)  == 0x108);
-    static_assert(sizeof(load_configuration_v9_t)  == 0x118);
-    static_assert(sizeof(load_configuration_v10_t) == 0x130);
-    static_assert(sizeof(load_configuration_v11_t) == 0x138);
+  using pe_optional_header = pe64_optional_header;
+  using pe_tls = pe64_tls;
+  using uint = uint64_t;
+
+  using load_configuration_t = load_configuration<uint64_t>;
+  using load_configuration_v0_t = load_configuration_v0<uint64_t>;
+  using load_configuration_v1_t = load_configuration_v1<uint64_t>;
+  using load_configuration_v2_t = load_configuration_v2<uint64_t>;
+  using load_configuration_v3_t = load_configuration_v3<uint64_t>;
+  using load_configuration_v4_t = load_configuration_v4<uint64_t>;
+  using load_configuration_v5_t = load_configuration_v5<uint64_t>;
+  using load_configuration_v6_t = load_configuration_v6<uint64_t>;
+  using load_configuration_v7_t = load_configuration_v7<uint64_t>;
+  using load_configuration_v8_t = load_configuration_v8<uint64_t>;
+  using load_configuration_v9_t = load_configuration_v9<uint64_t>;
+  using load_configuration_v10_t = load_configuration_v10<uint64_t>;
+  using load_configuration_v11_t = load_configuration_v11<uint64_t>;
+
+  static_assert(sizeof(load_configuration_t) == 0x60);
+  static_assert(sizeof(load_configuration_v0_t) == 0x70);
+  static_assert(sizeof(load_configuration_v1_t) == 0x94);
+  static_assert(sizeof(load_configuration_v2_t) == 0xA0);
+  static_assert(sizeof(load_configuration_v3_t) == 0xC0);
+  static_assert(sizeof(load_configuration_v4_t) == 0xD0);
+  static_assert(sizeof(load_configuration_v5_t) == 0xE8);
+  static_assert(sizeof(load_configuration_v6_t) == 0xF4);
+  static_assert(sizeof(load_configuration_v7_t) == 0x100);
+  static_assert(sizeof(load_configuration_v8_t) == 0x108);
+  static_assert(sizeof(load_configuration_v9_t) == 0x118);
+  static_assert(sizeof(load_configuration_v10_t) == 0x130);
+  static_assert(sizeof(load_configuration_v11_t) == 0x138);
 };
 }


-} // end namesapce PE
-}
+// end namesapce PE
+

 #endif
diff --git a/deps/LIEF/src/PE/TLS.cpp b/deps/LIEF/src/PE/TLS.cpp
index 3207d57703c..05d23ee636d 100644
--- a/deps/LIEF/src/PE/TLS.cpp
+++ b/deps/LIEF/src/PE/TLS.cpp
@@ -1,5 +1,5 @@
- /* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -13,65 +13,60 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-#include <algorithm>
 #include "LIEF/Visitor.hpp"

 #include "LIEF/PE/TLS.hpp"
 #include "LIEF/PE/Section.hpp"
 #include "PE/Structures.hpp"

-#include "spdlog/fmt/fmt.h"
-#include "spdlog/fmt/ranges.h"
+#include <spdlog/fmt/fmt.h>
+#include <spdlog/fmt/ranges.h>

-namespace LIEF {
-namespace PE {
+
+namespace LIEF::PE {

 TLS::TLS(const details::pe32_tls& header) :
   va_rawdata_{header.RawDataStartVA, header.RawDataEndVA},
   addressof_index_{header.AddressOfIndex},
   addressof_callbacks_{header.AddressOfCallback},
   sizeof_zero_fill_{header.SizeOfZeroFill},
-  characteristics_{header.Characteristics}
-{}
+  characteristics_{header.Characteristics} {}

 TLS::TLS(const details::pe64_tls& header) :
   va_rawdata_{header.RawDataStartVA, header.RawDataEndVA},
   addressof_index_{header.AddressOfIndex},
   addressof_callbacks_{header.AddressOfCallback},
   sizeof_zero_fill_{header.SizeOfZeroFill},
-  characteristics_{header.Characteristics}
-{}
+  characteristics_{header.Characteristics} {}

 void TLS::accept(LIEF::Visitor& visitor) const {
   visitor.visit(*this);
 }

 std::ostream& operator<<(std::ostream& os, const TLS& entry) {
-  using namespace fmt;
-  os << format("Address of index:     0x{:016x}\n", entry.addressof_index())
-     << format("Address of callbacks: 0x{:016x}\n", entry.addressof_callbacks())
-     << format("Address of raw data:  [0x{:016x}, 0x{:016x}] ({} bytes)\n",
-               entry.addressof_raw_data().first,
-               entry.addressof_raw_data().second,
-               entry.addressof_raw_data().second -
-               entry.addressof_raw_data().first)
-     << format("Size of zerofill:     {:#x}\n", entry.sizeof_zero_fill())
-     << format("Characteristics:      {:#x}\n", entry.characteristics());
+  os << fmt::format("Address of index:     {:#018x}\n", entry.addressof_index())
+     << fmt::format("Address of callbacks: {:#018x}\n",
+                    entry.addressof_callbacks())
+     << fmt::format("Address of raw data:  [{:#018x}, {:#018x}] ({} bytes)\n",
+                    entry.addressof_raw_data().first,
+                    entry.addressof_raw_data().second,
+                    entry.addressof_raw_data().second -
+                        entry.addressof_raw_data().first)
+     << fmt::format("Size of zerofill:     {:#x}\n", entry.sizeof_zero_fill())
+     << fmt::format("Characteristics:      {:#x}\n", entry.characteristics());

   if (const Section* section = entry.section()) {
-    os << format("Section:              '{}'\n", section->name());
+    os << fmt::format("Section:              '{}'\n", section->name());
   }

   if (const std::vector<uint64_t>& cbk = entry.callbacks(); !cbk.empty()) {
-     os << format("Callbacks (#{}):\n", cbk.size());
-     for (size_t i = 0; i < cbk.size(); ++i) {
-       os << format("  [{:02d}]: 0x{:016x}\n", i, cbk[i]);
-     }
+    os << fmt::format("Callbacks (#{}):\n", cbk.size());
+    for (size_t i = 0; i < cbk.size(); ++i) {
+      os << fmt::format("  [{:02d}]: {:#018x}\n", i, cbk[i]);
+    }
   }

   return os;
 }

-} // namespace PE
-} // namespace LIEF
-
+} // namespace LIEF::PE
diff --git a/deps/LIEF/src/PE/checksum.cpp b/deps/LIEF/src/PE/checksum.cpp
index 3888da778cf..28c23d3b3e8 100644
--- a/deps/LIEF/src/PE/checksum.cpp
+++ b/deps/LIEF/src/PE/checksum.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -34,7 +34,8 @@ ChecksumStream& ChecksumStream::write(BinaryStream& chk_stream) {
   }

   const uint64_t file_length = chk_stream.size() - chk_stream.pos();
-  uint64_t nb_chunk = (file_length + 1) / sizeof(uint16_t); // Number of uint16_t chunks
+  uint64_t nb_chunk =
+      (file_length + 1) / sizeof(uint16_t); // Number of uint16_t chunks

   while (chk_stream) {
     uint16_t chunk = 0;
@@ -66,7 +67,8 @@ uint32_t ChecksumStream::finalize() {
     partial_sum_ = (partial_sum_ >> 16) + (partial_sum_ & 0xffff);
   }

-  auto partial_sum_res = static_cast<uint16_t>(((partial_sum_ >> 16) + partial_sum_) & 0xffff);
+  auto partial_sum_res =
+      static_cast<uint16_t>(((partial_sum_ >> 16) + partial_sum_) & 0xffff);
   const uint32_t binary_checksum = checksum_;
   const uint32_t adjust_sum_lsb = binary_checksum & 0xFFFF;
   const uint32_t adjust_sum_msb = binary_checksum >> 16;
diff --git a/deps/LIEF/src/PE/checksum.hpp b/deps/LIEF/src/PE/checksum.hpp
index c6d4b99a299..1b4115be6a5 100644
--- a/deps/LIEF/src/PE/checksum.hpp
+++ b/deps/LIEF/src/PE/checksum.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2024 - 2025 R. Thomas
+/* Copyright 2024 - 2026 R. Thomas
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -27,8 +27,7 @@ class ChecksumStream {
   static constexpr auto LEFTOVER_BIT = 30;
   ChecksumStream() = default;
   ChecksumStream(uint32_t checksum) :
-    checksum_(checksum)
-  {}
+    checksum_(checksum) {}

   ChecksumStream& put(uint8_t c) {
     write(&c, 1);
@@ -61,9 +60,10 @@ class ChecksumStream {
     return write(reinterpret_cast<const uint8_t*>(&value), size);
   }

-  template<class T, typename = typename std::enable_if<
-    (std::is_standard_layout_v<T> && std::is_trivial_v<T>) || std::is_integral_v<T>
-  >::type>
+  template<class T,
+           typename = typename std::enable_if<(std::is_standard_layout_v<T> &&
+                                               std::is_trivial_v<T>) ||
+                                              std::is_integral_v<T>>::type>
   ChecksumStream& write(const T& t) {
     return write(reinterpret_cast<const uint8_t*>(&t), sizeof(T));
   }
diff --git a/deps/LIEF/src/PE/debug/CodeView.cpp b/deps/LIEF/src/PE/debug/CodeView.cpp
index 87415dcf194..59b42fb454a 100644
--- a/deps/LIEF/src/PE/debug/CodeView.cpp
+++ b/deps/LIEF/src/PE/debug/CodeView.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -20,8 +20,8 @@
 #include "spdlog/fmt/fmt.h"
 #include "frozen.hpp"

-namespace LIEF {
-namespace PE {
+
+namespace LIEF::PE {

 void CodeView::accept(Visitor& visitor) const {
   visitor.visit(*this);
@@ -36,15 +36,11 @@ std::string CodeView::to_string() const {
 }

 const char* to_string(CodeView::SIGNATURES e) {
-  #define ENTRY(X) std::pair(CodeView::SIGNATURES::X, #X)
-  STRING_MAP enums2str {
-    ENTRY(UNKNOWN),
-    ENTRY(PDB_70),
-    ENTRY(PDB_20),
-    ENTRY(CV_50),
-    ENTRY(CV_41),
+#define ENTRY(X) std::pair(CodeView::SIGNATURES::X, #X)
+  STRING_MAP enums2str{
+      ENTRY(UNKNOWN), ENTRY(PDB_70), ENTRY(PDB_20), ENTRY(CV_50), ENTRY(CV_41),
   };
-  #undef ENTRY
+#undef ENTRY
   if (const auto it = enums2str.find(e); it != enums2str.end()) {
     return it->second;
   }
@@ -52,4 +48,3 @@ const char* to_string(CodeView::SIGNATURES e) {
 }

 }
-}
diff --git a/deps/LIEF/src/PE/debug/CodeViewPDB.cpp b/deps/LIEF/src/PE/debug/CodeViewPDB.cpp
index 0d7ab88de04..8e1342e4466 100644
--- a/deps/LIEF/src/PE/debug/CodeViewPDB.cpp
+++ b/deps/LIEF/src/PE/debug/CodeViewPDB.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -18,7 +18,6 @@
 #include "LIEF/PE/debug/CodeViewPDB.hpp"
 #include "LIEF/Visitor.hpp"
 #include "LIEF/BinaryStream/SpanStream.hpp"
-#include "LIEF/endianness_support.hpp"
 #include "internal_utils.hpp"

 #include "spdlog/fmt/fmt.h"
@@ -26,14 +25,13 @@

 #include "PE/Structures.hpp"

-namespace LIEF {
-namespace PE {
+
+namespace LIEF::PE {

 CodeViewPDB::CodeViewPDB(const details::pe_debug& debug_info,
                          const details::pe_pdb_70& pdb_70, Section* sec) :
   CodeView{debug_info, SIGNATURES::PDB_70, sec},
-  age_{pdb_70.age}
-{
+  age_{pdb_70.age} {
   std::move(std::begin(pdb_70.signature), std::end(pdb_70.signature),
             std::begin(signature_));
 }
@@ -41,9 +39,7 @@ CodeViewPDB::CodeViewPDB(const details::pe_debug& debug_info,
 CodeViewPDB::CodeViewPDB(const details::pe_debug& debug_info,
                          const details::pe_pdb_20& pdb_20, Section* sec) :
   CodeView{debug_info, SIGNATURES::PDB_20, sec},
-  age_{pdb_20.age}
-{
-}
+  age_{pdb_20.age} {}

 void CodeViewPDB::accept(Visitor& visitor) const {
   visitor.visit(*this);
@@ -64,21 +60,18 @@ std::string CodeViewPDB::guid() const {
   const auto chunk5 = endian->read<uint16_t>().value_or(0);
   const auto chunk6 = endian->read<uint32_t>().value_or(0);

-  return fmt::format("{:08x}-{:04x}-{:04x}-{:04x}-{:04x}{:08x}",
-      chunk1, chunk2, chunk3, chunk4, chunk5, chunk6
-  );
+  return fmt::format("{:08x}-{:04x}-{:04x}-{:04x}-{:04x}{:08x}", chunk1, chunk2,
+                     chunk3, chunk4, chunk5, chunk6);
 }

 std::string CodeViewPDB::to_string() const {
-  using namespace fmt;
   std::ostringstream os;
   os << CodeView::to_string() << '\n'
-     << format("  age:       {}\n", age())
-     << format("  signature: {}\n", to_hex(signature(), 19))
-     << format("  GUID:      {}\n", guid())
-     << format("  filename:  {}", filename());
+     << fmt::format("  age:       {}\n", age())
+     << fmt::format("  signature: {}\n", to_hex(signature(), 19))
+     << fmt::format("  GUID:      {}\n", guid())
+     << fmt::format("  filename:  {}", filename());
   return os.str();
 }

 }
-}
diff --git a/deps/LIEF/src/PE/debug/Debug.cpp b/deps/LIEF/src/PE/debug/Debug.cpp
index a2bf4facaf7..2119dea831f 100644
--- a/deps/LIEF/src/PE/debug/Debug.cpp
+++ b/deps/LIEF/src/PE/debug/Debug.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -13,22 +13,21 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
+#include <sstream>
 #include "LIEF/Visitor.hpp"
 #include "LIEF/PE/debug/Debug.hpp"
 #include "LIEF/PE/Section.hpp"
 #include "PE/Structures.hpp"

 #include "frozen.hpp"
-#include "logging.hpp"
 #include "spdlog/fmt/fmt.h"
 #include "overflow_check.hpp"

-namespace LIEF {
-namespace PE {
+
+namespace LIEF::PE {

 span<uint8_t> Debug::get_payload(Section& section, uint32_t /*rva*/,
-                                 uint32_t offset, uint32_t size)
-{
+                                 uint32_t offset, uint32_t size) {
   span<uint8_t> content = section.writable_content();
   if (size == 0 || content.empty() || content.size() < size) {
     return {};
@@ -39,7 +38,8 @@ span<uint8_t> Debug::get_payload(Section& section, uint32_t /*rva*/,
     return {};
   }

-  if ((size_t)rel_offset >= content.size() || (rel_offset + size) > content.size()) {
+  if ((size_t)rel_offset >= content.size() || (rel_offset + size) > content.size())
+  {
     return {};
   }

@@ -64,8 +64,7 @@ Debug::Debug(const details::pe_debug& debug_s, Section* sec) :
   sizeof_data_{debug_s.SizeOfData},
   addressof_rawdata_{debug_s.AddressOfRawData},
   pointerto_rawdata_{debug_s.PointerToRawData},
-  section_{sec}
-{}
+  section_{sec} {}

 span<uint8_t> Debug::payload() {
   if (section_ == nullptr) {
@@ -79,42 +78,42 @@ void Debug::accept(Visitor& visitor) const {
 }

 std::string Debug::to_string() const {
-  using namespace fmt;
   std::ostringstream os;
-  os << format("Characteristics:     0x{:x}\n", characteristics())
-     << format("Timestamp:           0x{:x}\n", timestamp())
-     << format("Major/Minor version: {}.{}\n", major_version(), minor_version())
-     << format("Type:                {}\n", PE::to_string(type()))
-     << format("Size of data:        0x{:x}\n", sizeof_data())
-     << format("Address of rawdata:  0x{:x}\n", addressof_rawdata())
-     << format("Pointer to rawdata:  0x{:x}", pointerto_rawdata());
+  os << fmt::format("Characteristics:     {:#x}\n", characteristics())
+     << fmt::format("Timestamp:           {:#x}\n", timestamp())
+     << fmt::format("Major/Minor version: {}.{}\n", major_version(),
+                    minor_version())
+     << fmt::format("Type:                {}\n", PE::to_string(type()))
+     << fmt::format("Size of data:        {:#x}\n", sizeof_data())
+     << fmt::format("Address of rawdata:  {:#x}\n", addressof_rawdata())
+     << fmt::format("Pointer to rawdata:  {:#x}", pointerto_rawdata());
   return os.str();
 }

 const char* to_string(Debug::TYPES e) {
-  #define ENTRY(X) std::pair(Debug::TYPES::X, #X)
-  STRING_MAP enums2str {
-    ENTRY(UNKNOWN),
-    ENTRY(COFF),
-    ENTRY(CODEVIEW),
-    ENTRY(FPO),
-    ENTRY(MISC),
-    ENTRY(EXCEPTION),
-    ENTRY(FIXUP),
-    ENTRY(OMAP_TO_SRC),
-    ENTRY(OMAP_FROM_SRC),
-    ENTRY(BORLAND),
-    ENTRY(RESERVED10),
-    ENTRY(CLSID),
-    ENTRY(VC_FEATURE),
-    ENTRY(POGO),
-    ENTRY(ILTCG),
-    ENTRY(MPX),
-    ENTRY(REPRO),
-    ENTRY(PDBCHECKSUM),
-    ENTRY(EX_DLLCHARACTERISTICS),
+#define ENTRY(X) std::pair(Debug::TYPES::X, #X)
+  STRING_MAP enums2str{
+      ENTRY(UNKNOWN),
+      ENTRY(COFF),
+      ENTRY(CODEVIEW),
+      ENTRY(FPO),
+      ENTRY(MISC),
+      ENTRY(EXCEPTION),
+      ENTRY(FIXUP),
+      ENTRY(OMAP_TO_SRC),
+      ENTRY(OMAP_FROM_SRC),
+      ENTRY(BORLAND),
+      ENTRY(RESERVED10),
+      ENTRY(CLSID),
+      ENTRY(VC_FEATURE),
+      ENTRY(POGO),
+      ENTRY(ILTCG),
+      ENTRY(MPX),
+      ENTRY(REPRO),
+      ENTRY(PDBCHECKSUM),
+      ENTRY(EX_DLLCHARACTERISTICS),
   };
-  #undef ENTRY
+#undef ENTRY

   if (const auto it = enums2str.find(e); it != enums2str.end()) {
     return it->second;
@@ -123,5 +122,3 @@ const char* to_string(Debug::TYPES e) {
 }

 }
-}
-
diff --git a/deps/LIEF/src/PE/debug/ExDllCharacteristics.cpp b/deps/LIEF/src/PE/debug/ExDllCharacteristics.cpp
index e148258b832..216b0f092c3 100644
--- a/deps/LIEF/src/PE/debug/ExDllCharacteristics.cpp
+++ b/deps/LIEF/src/PE/debug/ExDllCharacteristics.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -13,30 +13,33 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
+#include <sstream>
 #include <algorithm>
 #include "LIEF/PE/debug/ExDllCharacteristics.hpp"

-#include "logging.hpp"
 #include "fmt_formatter.hpp"

-FMT_FORMATTER(LIEF::PE::ExDllCharacteristics::CHARACTERISTICS, LIEF::PE::to_string);
+FMT_FORMATTER(LIEF::PE::ExDllCharacteristics::CHARACTERISTICS,
+              LIEF::PE::to_string);

 namespace LIEF::PE {

+using CHARACTERISTICS = ExDllCharacteristics::CHARACTERISTICS;
+
 static constexpr auto CHARACTERISTICS_ARRAY = {
-    ExDllCharacteristics::CHARACTERISTICS::CET_COMPAT,
-    ExDllCharacteristics::CHARACTERISTICS::CET_COMPAT_STRICT_MODE,
-    ExDllCharacteristics::CHARACTERISTICS::CET_SET_CONTEXT_IP_VALIDATION_RELAXED_MODE,
-    ExDllCharacteristics::CHARACTERISTICS::CET_DYNAMIC_APIS_ALLOW_IN_PROC,
-    ExDllCharacteristics::CHARACTERISTICS::CET_RESERVED_1,
-    ExDllCharacteristics::CHARACTERISTICS::CET_RESERVED_2,
-    ExDllCharacteristics::CHARACTERISTICS::FORWARD_CFI_COMPAT,
-    ExDllCharacteristics::CHARACTERISTICS::HOTPATCH_COMPATIBLE,
+    CHARACTERISTICS::CET_COMPAT,
+    CHARACTERISTICS::CET_COMPAT_STRICT_MODE,
+    CHARACTERISTICS::CET_SET_CONTEXT_IP_VALIDATION_RELAXED_MODE,
+    CHARACTERISTICS::CET_DYNAMIC_APIS_ALLOW_IN_PROC,
+    CHARACTERISTICS::CET_RESERVED_1,
+    CHARACTERISTICS::CET_RESERVED_2,
+    CHARACTERISTICS::FORWARD_CFI_COMPAT,
+    CHARACTERISTICS::HOTPATCH_COMPATIBLE,
 };

-std::unique_ptr<ExDllCharacteristics> ExDllCharacteristics::parse(
-  const details::pe_debug& hdr, Section* section, span<uint8_t> payload)
-{
+std::unique_ptr<ExDllCharacteristics>
+    ExDllCharacteristics::parse(const details::pe_debug& hdr, Section* section,
+                                span<uint8_t> payload) {
   if (payload.size() < sizeof(uint32_t)) {
     return nullptr;
   }
@@ -45,45 +48,38 @@ std::unique_ptr<ExDllCharacteristics> ExDllCharacteristics::parse(
   return std::make_unique<ExDllCharacteristics>(hdr, section, value);
 }

-std::vector<ExDllCharacteristics::CHARACTERISTICS> ExDllCharacteristics::characteristics_list() const {
+std::vector<ExDllCharacteristics::CHARACTERISTICS>
+    ExDllCharacteristics::characteristics_list() const {
   std::vector<CHARACTERISTICS> out;
   out.reserve(3);

   std::copy_if(CHARACTERISTICS_ARRAY.begin(), CHARACTERISTICS_ARRAY.end(),
                std::back_inserter(out),
-               [this] (CHARACTERISTICS c) { return has(c); });
+               [this](CHARACTERISTICS c) { return has(c); });
   return out;
 }

 std::string ExDllCharacteristics::to_string() const {
   std::ostringstream os;
-  using namespace fmt;
   os << Debug::to_string() << '\n'
-     << format("  Characteristics: {}", join(characteristics_list(), ", "));
+     << fmt::format("  Characteristics: {}",
+                    fmt::join(characteristics_list(), ", "));
   return os.str();
 }

-const char* to_string(ExDllCharacteristics::CHARACTERISTICS e) {
-  using CHARACTERISTICS = ExDllCharacteristics::CHARACTERISTICS;
+const char* to_string(CHARACTERISTICS e) {
   switch (e) {
-    default:
-      return "UNKNOWN";
-    case CHARACTERISTICS::CET_COMPAT:
-      return "CET_COMPAT";
-    case CHARACTERISTICS::CET_COMPAT_STRICT_MODE:
-      return "CET_COMPAT_STRICT_MODE";
+    default: return "UNKNOWN";
+    case CHARACTERISTICS::CET_COMPAT: return "CET_COMPAT";
+    case CHARACTERISTICS::CET_COMPAT_STRICT_MODE: return "CET_COMPAT_STRICT_MODE";
     case CHARACTERISTICS::CET_SET_CONTEXT_IP_VALIDATION_RELAXED_MODE:
       return "CET_SET_CONTEXT_IP_VALIDATION_RELAXED_MODE";
     case CHARACTERISTICS::CET_DYNAMIC_APIS_ALLOW_IN_PROC:
       return "CET_DYNAMIC_APIS_ALLOW_IN_PROC";
-    case CHARACTERISTICS::CET_RESERVED_1:
-      return "CET_RESERVED_1";
-    case CHARACTERISTICS::CET_RESERVED_2:
-      return "CET_RESERVED_2";
-    case CHARACTERISTICS::FORWARD_CFI_COMPAT:
-      return "FORWARD_CFI_COMPAT";
-    case CHARACTERISTICS::HOTPATCH_COMPATIBLE:
-      return "HOTPATCH_COMPATIBLE";
+    case CHARACTERISTICS::CET_RESERVED_1: return "CET_RESERVED_1";
+    case CHARACTERISTICS::CET_RESERVED_2: return "CET_RESERVED_2";
+    case CHARACTERISTICS::FORWARD_CFI_COMPAT: return "FORWARD_CFI_COMPAT";
+    case CHARACTERISTICS::HOTPATCH_COMPATIBLE: return "HOTPATCH_COMPATIBLE";
   }
   return "UNKNOWN";
 }
diff --git a/deps/LIEF/src/PE/debug/FPO.cpp b/deps/LIEF/src/PE/debug/FPO.cpp
index a59377349c8..d307b41cfd3 100644
--- a/deps/LIEF/src/PE/debug/FPO.cpp
+++ b/deps/LIEF/src/PE/debug/FPO.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -13,10 +13,11 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
+#include <sstream>
+#include <spdlog/fmt/fmt.h>
 #include "LIEF/PE/debug/FPO.hpp"
 #include "LIEF/BinaryStream/SpanStream.hpp"

-#include "logging.hpp"
 #include "PE/Structures.hpp"

 namespace LIEF::PE {
@@ -24,24 +25,23 @@ namespace LIEF::PE {
 namespace details {
 // From um/winnt.h -- typedef struct _FPO_DATA { ... } FPO_DATA, *PFPO_DATA
 struct FPO_DATA {
-    uint32_t  ulOffStart;             // offset 1st byte of function code
-    uint32_t  cbProcSize;             // # bytes in function
-    uint32_t  cdwLocals;              // # bytes in locals/4
-    uint16_t  cdwParams;              // # bytes in params/4
-    uint16_t  cbProlog : 8;           // # bytes in prolog
-    uint16_t  cbRegs   : 3;           // # regs saved
-    uint16_t  fHasSEH  : 1;           // TRUE if SEH in func
-    uint16_t  fUseBP   : 1;           // TRUE if EBP has been allocated
-    uint16_t  reserved : 1;           // reserved for future use
-    uint16_t  cbFrame  : 2;           // frame type
+  uint32_t ulOffStart;   // offset 1st byte of function code
+  uint32_t cbProcSize;   // # bytes in function
+  uint32_t cdwLocals;    // # bytes in locals/4
+  uint16_t cdwParams;    // # bytes in params/4
+  uint16_t cbProlog : 8; // # bytes in prolog
+  uint16_t cbRegs : 3;   // # regs saved
+  uint16_t fHasSEH : 1;  // TRUE if SEH in func
+  uint16_t fUseBP : 1;   // TRUE if EBP has been allocated
+  uint16_t reserved : 1; // reserved for future use
+  uint16_t cbFrame : 2;  // frame type
 };

 static_assert(sizeof(FPO_DATA) == 16, "Wrong size");
 }

-std::unique_ptr<FPO> FPO::parse(
-  const details::pe_debug& hdr, Section* section, span<uint8_t> payload)
-{
+std::unique_ptr<FPO> FPO::parse(const details::pe_debug& hdr, Section* section,
+                                span<uint8_t> payload) {
   SpanStream stream(payload);

   auto fpo = std::make_unique<FPO>(hdr, section);
@@ -52,37 +52,35 @@ std::unique_ptr<FPO> FPO::parse(
       break;
     }
     fpo->entries_.push_back({
-      /*rva=*/ entry->ulOffStart,
-      /*proc_size=*/ entry->cbProcSize,
-      /*nb_locals=*/entry->cdwLocals * 4,
-      /*parameters_size=*/(uint32_t)entry->cdwParams * 4,
-      /*prolog_size=*/(uint16_t)entry->cbProcSize,
-      /*nb_saved_regs=*/(uint16_t)entry->cbRegs,
-      /*use_seh=*/(bool)entry->fHasSEH,
-      /*use_bp=*/(bool)entry->fUseBP,
-      /*reserved=*/(uint16_t)entry->reserved,
-      /*type=*/(FRAME_TYPE)entry->cbFrame,
+        /*rva=*/entry->ulOffStart,
+        /*proc_size=*/entry->cbProcSize,
+        /*nb_locals=*/entry->cdwLocals * 4,
+        /*parameters_size=*/(uint32_t)entry->cdwParams * 4,
+        /*prolog_size=*/(uint16_t)entry->cbProcSize,
+        /*nb_saved_regs=*/(uint16_t)entry->cbRegs,
+        /*use_seh=*/(bool)entry->fHasSEH,
+        /*use_bp=*/(bool)entry->fUseBP,
+        /*reserved=*/(uint16_t)entry->reserved,
+        /*type=*/(FRAME_TYPE)entry->cbFrame,
     });
   }
   return fpo;
 }

 std::string FPO::entry_t::to_string() const {
-  using namespace fmt;
   std::ostringstream os;
-  os << format("{:10} {:<13} {:<9} {:<8} {:<9} {:<5} {:<6} {:<8} {}",
-    format("0x{:08x}", rva),
-    proc_size, nb_locals, nb_saved_regs, prolog_size, use_bp ? 'Y' : 'N',
-    use_seh ? 'Y' : 'N', PE::to_string(type), parameters_size
-  );
+  os << fmt::format("{:10} {:<13} {:<9} {:<8} {:<9} {:<5} {:<6} {:<8} {}",
+                    fmt::format("{:#010x}", rva), proc_size, nb_locals,
+                    nb_saved_regs, prolog_size, use_bp ? 'Y' : 'N',
+                    use_seh ? 'Y' : 'N', PE::to_string(type), parameters_size);
   return os.str();
 }

 std::string FPO::to_string() const {
-  using namespace fmt;
   std::ostringstream os;
-  os << format("{:10} {:13} {:9} {:8} {:9} {:5} {:6} {:8} {}\n", "RVA", "Proc Size",
-               "Locals", "Regs", "Prolog", "BP", "SEH", "Type", "Params");
+  os << fmt::format("{:10} {:13} {:9} {:8} {:9} {:5} {:6} {:8} {}\n", "RVA",
+                    "Proc Size", "Locals", "Regs", "Prolog", "BP", "SEH", "Type",
+                    "Params");
   for (const entry_t& entry : entries()) {
     os << entry.to_string() << '\n';
   }
diff --git a/deps/LIEF/src/PE/debug/PDBChecksum.cpp b/deps/LIEF/src/PE/debug/PDBChecksum.cpp
index 7d631d48a15..f80dcbfe49f 100644
--- a/deps/LIEF/src/PE/debug/PDBChecksum.cpp
+++ b/deps/LIEF/src/PE/debug/PDBChecksum.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -31,9 +31,9 @@ HASH_ALGO from_string(const std::string& str) {
   return HASH_ALGO::UNKNOWN;
 }

-std::unique_ptr<PDBChecksum> PDBChecksum::parse(
-  const details::pe_debug& hdr, Section* section, span<uint8_t> payload
-) {
+std::unique_ptr<PDBChecksum> PDBChecksum::parse(const details::pe_debug& hdr,
+                                                Section* section,
+                                                span<uint8_t> payload) {
   SpanStream strm(payload);
   auto algo_name = strm.read_string();
   if (!algo_name) {
@@ -54,12 +54,11 @@ std::unique_ptr<PDBChecksum> PDBChecksum::parse(
 }

 std::string PDBChecksum::to_string() const {
-  using namespace fmt;
   std::ostringstream os;
   os << Debug::to_string() << '\n'
      << "PDB Checksum:\n"
-     << format("  Algorithm: {}\n", PE::to_string(algorithm()))
-     << format("  Hash: {}", to_hex(hash(), 30));
+     << fmt::format("  Algorithm: {}\n", PE::to_string(algorithm()))
+     << fmt::format("  Hash: {}", to_hex(hash(), 30));

   return os.str();
 }
@@ -67,11 +66,9 @@ std::string PDBChecksum::to_string() const {
 const char* to_string(PDBChecksum::HASH_ALGO e) {
   switch (e) {
     case HASH_ALGO::UNKNOWN:
-    default:
-      return "UNKNOWN";
+    default: return "UNKNOWN";

-    case HASH_ALGO::SHA256:
-      return "SHA256";
+    case HASH_ALGO::SHA256: return "SHA256";
   }
   return "UNKNOWN";
 }
diff --git a/deps/LIEF/src/PE/debug/Pogo.cpp b/deps/LIEF/src/PE/debug/Pogo.cpp
index 1e0bab11ca9..6fd86046939 100644
--- a/deps/LIEF/src/PE/debug/Pogo.cpp
+++ b/deps/LIEF/src/PE/debug/Pogo.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -22,20 +22,19 @@

 #include <spdlog/fmt/fmt.h>

-namespace LIEF {
-namespace PE {
+
+namespace LIEF::PE {

 void Pogo::accept(Visitor& visitor) const {
   visitor.visit(*this);
 }

 std::string Pogo::to_string() const {
-  using namespace fmt;
   std::ostringstream os;
   os << Debug::to_string() << '\n'
      << "Pogo:\n"
-     << format("  Signature: {} (0x{:06x})\n",
-                    PE::to_string(signature()), (uint32_t)signature());
+     << fmt::format("  Signature: {} ({:#08x})\n", PE::to_string(signature()),
+                    (uint32_t)signature());

   for (const PogoEntry& pentry : entries()) {
     os << "    " << pentry << '\n';
@@ -45,19 +44,23 @@ std::string Pogo::to_string() const {
 }

 const char* to_string(Pogo::SIGNATURES e) {
-  #define ENTRY(X) std::pair(Pogo::SIGNATURES::X, #X)
-  STRING_MAP enums2str {
-    ENTRY(UNKNOWN),
-    ENTRY(ZERO),
-    ENTRY(LCTG),
-    ENTRY(PGI),
+  // clang-format off
+#define ENTRY(X) std::pair(Pogo::SIGNATURES::X, #X)
+  STRING_MAP enums2str{
+      ENTRY(UNKNOWN),
+      ENTRY(ZERO),
+      ENTRY(LCTG),
+      ENTRY(PGI),
+      ENTRY(PGO),
+      ENTRY(PGU),
+      ENTRY(SPGO),
   };
-  #undef ENTRY
+#undef ENTRY
+  // clang-format on
   if (const auto it = enums2str.find(e); it != enums2str.end()) {
     return it->second;
   }
   return "UNKNOWN";
 }

-} // namespace PE
-} // namespace LIEF
+} // namespace LIEF::PE
diff --git a/deps/LIEF/src/PE/debug/PogoEntry.cpp b/deps/LIEF/src/PE/debug/PogoEntry.cpp
index 6a73b4cfef9..c1ff37c2062 100644
--- a/deps/LIEF/src/PE/debug/PogoEntry.cpp
+++ b/deps/LIEF/src/PE/debug/PogoEntry.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -18,19 +18,17 @@

 #include "spdlog/fmt/fmt.h"

-namespace LIEF {
-namespace PE {
+
+namespace LIEF::PE {

 void PogoEntry::accept(Visitor& visitor) const {
   visitor.visit(*this);
 }

 std::ostream& operator<<(std::ostream& os, const PogoEntry& entry) {
-  os << fmt::format("[0x{:06x}, 0x{:06x}] {:20} ({} bytes)",
-                    entry.start_rva(), entry.start_rva() + entry.size(),
-                    entry.name(), entry.size());
+  os << fmt::format("[{:#08x}, {:#08x}] {:20} ({} bytes)", entry.start_rva(),
+                    entry.start_rva() + entry.size(), entry.name(), entry.size());
   return os;
 }

-} // namespace PE
-} // namespace LIEF
+} // namespace LIEF::PE
diff --git a/deps/LIEF/src/PE/debug/Repro.cpp b/deps/LIEF/src/PE/debug/Repro.cpp
index 0edec484e4b..b00a249ef3c 100644
--- a/deps/LIEF/src/PE/debug/Repro.cpp
+++ b/deps/LIEF/src/PE/debug/Repro.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -22,8 +22,8 @@
 #include <spdlog/fmt/fmt.h>
 #include <spdlog/fmt/ranges.h>

-namespace LIEF {
-namespace PE {
+
+namespace LIEF::PE {

 void Repro::accept(Visitor& visitor) const {
   visitor.visit(*this);
@@ -40,5 +40,4 @@ std::string Repro::to_string() const {
   return os.str();
 }

-} // namespace PE
-} // namespace LIEF
+} // namespace LIEF::PE
diff --git a/deps/LIEF/src/PE/debug/VCFeature.cpp b/deps/LIEF/src/PE/debug/VCFeature.cpp
index 6dcd211b30b..4b333c202d8 100644
--- a/deps/LIEF/src/PE/debug/VCFeature.cpp
+++ b/deps/LIEF/src/PE/debug/VCFeature.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -13,16 +13,16 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
+#include <sstream>
+#include <spdlog/fmt/fmt.h>
 #include "LIEF/PE/debug/VCFeature.hpp"
 #include "LIEF/BinaryStream/SpanStream.hpp"

-#include "logging.hpp"
-
 namespace LIEF::PE {

-std::unique_ptr<VCFeature> VCFeature::parse(
-  const details::pe_debug& hdr, Section* section, span<uint8_t> payload)
-{
+std::unique_ptr<VCFeature> VCFeature::parse(const details::pe_debug& hdr,
+                                            Section* section,
+                                            span<uint8_t> payload) {
   SpanStream stream(payload);

   auto pre_vc = stream.read<uint32_t>().value_or(0);
@@ -31,15 +31,15 @@ std::unique_ptr<VCFeature> VCFeature::parse(
   auto sdk = stream.read<uint32_t>().value_or(0);
   auto guardn = stream.read<uint32_t>().value_or(0);

-  return std::make_unique<VCFeature>(hdr, section, pre_vc, c_cpp, gs, sdk,
-                                     guardn);
+  return std::make_unique<VCFeature>(hdr, section, pre_vc, c_cpp, gs, sdk, guardn);
 }

 std::string VCFeature::to_string() const {
   std::ostringstream os;
   os << Debug::to_string() << '\n'
      << fmt::format("  Counts: Pre-VC++ 11.00={}, C/C++={}, /GS={}, /sdl={}, "
-                    "guardN={}", pre_vcpp(), c_cpp(), gs(), sdl(), guards());
+                    "guardN={}",
+                    pre_vcpp(), c_cpp(), gs(), sdl(), guards());
   return os.str();
 }

diff --git a/deps/LIEF/src/PE/endianness_support.cpp b/deps/LIEF/src/PE/endianness_support.cpp
index a7033cc8848..d610b38a901 100644
--- a/deps/LIEF/src/PE/endianness_support.cpp
+++ b/deps/LIEF/src/PE/endianness_support.cpp
@@ -1,4 +1,4 @@
-/* Copyright 2021 - 2025 R. Thomas
+/* Copyright 2021 - 2026 R. Thomas
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -12,5 +12,4 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-namespace LIEF::PE {
-}
+namespace LIEF::PE {}
diff --git a/deps/LIEF/src/PE/exceptions_info/AArch64/PackedFunction.cpp b/deps/LIEF/src/PE/exceptions_info/AArch64/PackedFunction.cpp
index db45f56ad85..e4551c89273 100644
--- a/deps/LIEF/src/PE/exceptions_info/AArch64/PackedFunction.cpp
+++ b/deps/LIEF/src/PE/exceptions_info/AArch64/PackedFunction.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -20,40 +20,39 @@
 #include "LIEF/PE/exceptions_info/internal_arm64.hpp"

 namespace LIEF::PE::unwind_aarch64 {
-std::unique_ptr<PackedFunction> PackedFunction::parse(
-  Parser& /*ctx*/, BinaryStream& /*strm*/, uint32_t rva, uint32_t unwind_data
-) {
+std::unique_ptr<PackedFunction> PackedFunction::parse(Parser& /*ctx*/,
+                                                      BinaryStream& /*strm*/,
+                                                      uint32_t rva,
+                                                      uint32_t unwind_data) {
   static constexpr auto WIDTH = 20;
   auto packed_info = details::arm64_packed_t{unwind_data};

-  LIEF_DEBUG("Parsing packed function 0x{:08x}", rva);
+  LIEF_DEBUG("Parsing packed function {:#010x}", rva);
   const auto flag = PACKED_FLAGS(unwind_data & 0x3);
-  auto func = std::make_unique<PackedFunction>(
-    rva, packed_info.function_length(), flag
-  );
+  auto func =
+      std::make_unique<PackedFunction>(rva, packed_info.function_length(), flag);

-  LIEF_DEBUG("  {:{}}: 0x{:08x}", "Raw Data", WIDTH, unwind_data);
-  LIEF_DEBUG("  {:{}}: 0x{:04x}", "Function RVA", WIDTH, rva);
-  LIEF_DEBUG("  {:{}}: 0x{:04x}", "Function Length", WIDTH, packed_info.function_length());
-  LIEF_DEBUG("  {:{}}: 0x{:04x}", "Frame size", WIDTH, packed_info.frame_size());
+  LIEF_DEBUG("  {:{}}: {:#010x}", "Raw Data", WIDTH, unwind_data);
+  LIEF_DEBUG("  {:{}}: {:#010x}", "Function RVA", WIDTH, rva);
+  LIEF_DEBUG("  {:{}}: {:#010x}", "Function Length", WIDTH,
+             packed_info.function_length());
+  LIEF_DEBUG("  {:{}}: {:#010x}", "Frame size", WIDTH, packed_info.frame_size());

   (*func)
-    .reg_F(packed_info.RF())
-    .reg_I(packed_info.RI())
-    .H(packed_info.H())
-    .CR(packed_info.CR())
-    .frame_size(packed_info.frame_size() * 16)
-  ;
+      .reg_F(packed_info.RF())
+      .reg_I(packed_info.RI())
+      .H(packed_info.H())
+      .CR(packed_info.CR())
+      .frame_size(packed_info.frame_size() * 16);
   return func;
 }

 std::string PackedFunction::to_string() const {
-  using namespace fmt;
   std::ostringstream oss;
   oss << "Runtime Packed AArch64 Function {\n"
-      << format("  Range(RVA): 0x{:08x} - 0x{:08x}\n", rva_start(), rva_end())
-      << format("  Length={} FrameSize=0x{:02x} RegF={} RegI={} H={} CR={}\n",
-                length(), frame_size(), reg_F(), reg_I(), H(), CR());
+      << fmt::format("  Range(RVA): {:#010x} - {:#010x}\n", rva_start(), rva_end())
+      << fmt::format("  Length={} FrameSize={:#04x} RegF={} RegI={} H={} CR={}\n",
+                     length(), frame_size(), reg_F(), reg_I(), H(), CR());
   oss << '}';
   return oss.str();
 }
diff --git a/deps/LIEF/src/PE/exceptions_info/AArch64/UnpackedFunction.cpp b/deps/LIEF/src/PE/exceptions_info/AArch64/UnpackedFunction.cpp
index d1ca8861212..8f0788d915e 100644
--- a/deps/LIEF/src/PE/exceptions_info/AArch64/UnpackedFunction.cpp
+++ b/deps/LIEF/src/PE/exceptions_info/AArch64/UnpackedFunction.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -29,19 +29,21 @@ namespace LIEF::PE::unwind_aarch64 {

 using epilog_scope_t = UnpackedFunction::epilog_scope_t;

-std::unique_ptr<UnpackedFunction> UnpackedFunction::parse(
-  Parser& /*ctx*/, BinaryStream& strm, uint32_t xdata_rva, uint32_t rva
-) {
+std::unique_ptr<UnpackedFunction> UnpackedFunction::parse(Parser& /*ctx*/,
+                                                          BinaryStream& strm,
+                                                          uint32_t xdata_rva,
+                                                          uint32_t rva) {
   static constexpr auto WIDTH = 20;
   details::arm64_unpacked_t unpacked;

-  LIEF_DEBUG("Parsing unpacked function 0x{:08x}", rva);
+  LIEF_DEBUG("Parsing unpacked function {:#010x}", rva);

   const uint64_t strm_offset = strm.pos();

   auto word1 = strm.read<uint32_t>();
   if (!word1) {
-    LIEF_WARN("Can't read unpacked exception info (word1, line: {})", __LINE__);
+    LIEF_WARN("Failed to read unpacked exception info (word1, line: {})",
+              __LINE__);
     return nullptr;
   }

@@ -50,7 +52,8 @@ std::unique_ptr<UnpackedFunction> UnpackedFunction::parse(
   if (unpacked.is_extended()) {
     auto word2 = strm.read<uint32_t>();
     if (!word2) {
-      LIEF_WARN("Can't read unpacked exception info (word2, line: {})", __LINE__);
+      LIEF_WARN("Failed to read unpacked exception info (word2, line: {})",
+                __LINE__);
       return nullptr;
     }
     unpacked.data[1] = *word2;
@@ -59,19 +62,19 @@ std::unique_ptr<UnpackedFunction> UnpackedFunction::parse(
   auto func = std::make_unique<UnpackedFunction>(rva, unpacked.function_length());

   (*func)
-    .xdata_rva(xdata_rva)
-    .version(unpacked.version())
-    .X(unpacked.X())
-    .E(unpacked.E())
-    .epilog_cnt_offset(unpacked.epilog_count())
-    .code_words(unpacked.code_words())
-    .is_extended(unpacked.is_extended())
-  ;
+      .xdata_rva(xdata_rva)
+      .version(unpacked.version())
+      .X(unpacked.X())
+      .E(unpacked.E())
+      .epilog_cnt_offset(unpacked.epilog_count())
+      .code_words(unpacked.code_words())
+      .is_extended(unpacked.is_extended());

   LIEF_DEBUG("  {:{}}: {}", "Extended", WIDTH, unpacked.is_extended());
-  LIEF_DEBUG("  {:{}}: 0x{:04x}", "Function RVA", WIDTH, rva);
-  LIEF_DEBUG("  {:{}}: 0x{:04x}", "Function Length", WIDTH, unpacked.function_length());
-  LIEF_DEBUG("  {:{}}: 0x{:04x}", "Version", WIDTH, unpacked.version());
+  LIEF_DEBUG("  {:{}}: {:#06x}", "Function RVA", WIDTH, rva);
+  LIEF_DEBUG("  {:{}}: {:#06x}", "Function Length", WIDTH,
+             unpacked.function_length());
+  LIEF_DEBUG("  {:{}}: {:#06x}", "Version", WIDTH, unpacked.version());
   LIEF_DEBUG("  {:{}}: {}", "Exception Data", WIDTH, unpacked.X());
   LIEF_DEBUG("  {:{}}: {}", "Epilog Packed", WIDTH, unpacked.E());
   LIEF_DEBUG("  {:{}}: {}", "Code Words", WIDTH, unpacked.code_words());
@@ -89,22 +92,22 @@ std::unique_ptr<UnpackedFunction> UnpackedFunction::parse(
   if (unpacked.E() == 0) {
     func->epilog_scopes_offset_ = strm.pos() - strm_offset;
     if (!strm.read_objects(scopes, ecount)) {
-      LIEF_DEBUG("Can't read #{} epilog scopes", ecount);
+      LIEF_DEBUG("Failed to read #{} epilog scopes", ecount);
       return func;
     }
     LIEF_DEBUG("  {:{}}: {}", "Number of scopes (packed)", WIDTH, ecount);
     func->epilog_scopes_.reserve(ecount);
     std::transform(scopes.begin(), scopes.end(),
                    std::back_inserter(func->epilog_scopes_),
-      [] (uint32_t raw) { return epilog_scope_t::from_raw(raw); }
-    );
+                   [](uint32_t raw) { return epilog_scope_t::from_raw(raw); });
   }

   {
     func->unwind_code_offset_ = strm.pos() - strm_offset;
     std::vector<uint8_t> unwind_bytecode;
-    if (!strm.read_data(unwind_bytecode, unpacked.code_words() * sizeof(uint32_t))) {
-      LIEF_DEBUG("Can't read unwind bytecode");
+    if (!strm.read_data(unwind_bytecode, unpacked.code_words() * sizeof(uint32_t)))
+    {
+      LIEF_DEBUG("Failed to read unwind bytecode");
       return func;
     }
     func->unwind_code(std::move(unwind_bytecode));
@@ -114,11 +117,11 @@ std::unique_ptr<UnpackedFunction> UnpackedFunction::parse(
     func->exception_handler_offset_ = strm.pos() - strm_offset;
     auto ehandler_rva = strm.read<uint32_t>();
     if (!ehandler_rva) {
-      LIEF_DEBUG("Can't read Exception Handler RVA");
+      LIEF_DEBUG("Failed to read exception handler RVA");
       return func;
     }

-    LIEF_DEBUG("  {:{}}: 0x{:08x}", "Exception Handler", WIDTH, *ehandler_rva);
+    LIEF_DEBUG("  {:{}}: {:#010x}", "Exception Handler", WIDTH, *ehandler_rva);
     func->exception_handler(*ehandler_rva);
   }

@@ -129,29 +132,29 @@ epilog_scope_t epilog_scope_t::from_raw(uint32_t raw) {
   details::arm64_epilog_scope_t scope{raw};

   return {
-    /* .start_offset = */ scope.start_offset(),
-    /* .start_index = */scope.start_index(),
-    /* .reserved = */scope.reserved(),
+      /* .start_offset = */ scope.start_offset(),
+      /* .start_index = */ scope.start_index(),
+      /* .reserved = */ scope.reserved(),
   };
 }

 std::string UnpackedFunction::to_string() const {
-  using namespace fmt;
   std::ostringstream oss;
   oss << "Runtime Unpacked AArch64 Function {\n";
-  oss << format("  Range(RVA): 0x{:08x} - 0x{:08x}\n", rva_start(), rva_end());
-  oss << format("  Unwind location (RVA): 0x{:08x}\n", xdata_rva());
-  oss << format("  Length={} Vers={} X={} E={}, CodeWords={}\n",
-                length(), version(), X(), E(), code_words());
+  oss << fmt::format("  Range(RVA): {:#010x} - {:#010x}\n", rva_start(),
+                     rva_end());
+  oss << fmt::format("  Unwind location (RVA): {:#010x}\n", xdata_rva());
+  oss << fmt::format("  Length={} Vers={} X={} E={}, CodeWords={}\n", length(),
+                     version(), X(), E(), code_words());

   if (X() == 1) {
-    oss << format("  Exception Handler: 0x{:08x}\n", exception_handler());
+    oss << fmt::format("  Exception Handler: {:#010x}\n", exception_handler());
   }
   if (E() == 0) {
-    oss << format("  Epilogs={}\n", epilog_count());
+    oss << fmt::format("  Epilogs={}\n", epilog_count());
   }
   if (E() == 1) {
-    oss << format("  Epilogs (offset)=0x{:06x}\n", epilog_offset());
+    oss << fmt::format("  Epilogs (offset)={:#08x}\n", epilog_offset());
   }

   if (E() == 0) {
@@ -165,10 +168,13 @@ std::string UnpackedFunction::to_string() const {

     for (size_t i = 0; i < epilog_scopes_.size(); ++i) {
       const epilog_scope_t& scope = epilog_scopes_[i];
-      oss << format("  Epilog #{} unwind:  (Offset={}, Index={}, Reserved={})\n", i + 1,
-                    scope.start_offset, scope.start_index, scope.reserved);
+      oss << fmt::format(
+          "  Epilog #{} unwind:  (Offset={}, Index={}, Reserved={})\n", i + 1,
+          scope.start_offset, scope.start_index, scope.reserved
+      );

-      if (uint32_t offset = scope.start_index; offset > 0 && offset < code.size()) {
+      if (uint32_t offset = scope.start_index; offset > 0 && offset < code.size())
+      {
         span<const uint8_t> epilog_code = code.subspan(scope.start_index);
         SpanStream unwind_stream(epilog_code);
         std::ostringstream pretty_code;
diff --git a/deps/LIEF/src/PE/exceptions_info/RuntimeFunctionAArch64.cpp b/deps/LIEF/src/PE/exceptions_info/RuntimeFunctionAArch64.cpp
index fd405ca3013..bdb652dea95 100644
--- a/deps/LIEF/src/PE/exceptions_info/RuntimeFunctionAArch64.cpp
+++ b/deps/LIEF/src/PE/exceptions_info/RuntimeFunctionAArch64.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -29,17 +29,17 @@
 namespace LIEF::PE {

 std::unique_ptr<RuntimeFunctionAArch64>
-  RuntimeFunctionAArch64::parse(Parser& ctx, BinaryStream& strm)
-{
+    RuntimeFunctionAArch64::parse(Parser& ctx, BinaryStream& strm) {
   auto rva_start = strm.read<uint32_t>();
   if (!rva_start) {
-    LIEF_WARN("Can't read exception info RVA start (line: {})", __LINE__);
+    LIEF_WARN("Failed to read exception info RVA start (line: {})", __LINE__);
     return nullptr;
   }

   auto unwind_data = strm.read<uint32_t>();
   if (!unwind_data) {
-    LIEF_DEBUG("Can't read exception info unwind data (line: {}, RVA=0x{:08x}, pos={}, size={})",
+    LIEF_DEBUG("Failed to read exception info unwind data (line: {}, "
+               "RVA={:#010x}, pos={}, size={})",
                __LINE__, *rva_start, strm.pos(), strm.size());
     return nullptr;
   }
@@ -59,15 +59,14 @@ std::unique_ptr<RuntimeFunctionAArch64>
                                                    *rva_start);
   }

-  return std::make_unique<RuntimeFunctionAArch64>(*rva_start, /*length*/0, flag);
+  return std::make_unique<RuntimeFunctionAArch64>(*rva_start, /*length*/ 0, flag);
 }

 std::string RuntimeFunctionAArch64::to_string() const {
-  using namespace fmt;
   std::ostringstream oss;
   oss << "Runtime Unpacked AArch64 Function {\n"
-      << format("  Start (RVA): 0x{:08x}\n", rva_start())
-      << format("  Flag: {}\n", (int)flag());
+      << fmt::format("  Start (RVA): {:#010x}\n", rva_start())
+      << fmt::format("  Flag: {}\n", (int)flag());
   oss << "}\n";
   return oss.str();
 }
diff --git a/deps/LIEF/src/PE/exceptions_info/RuntimeFunctionX64.cpp b/deps/LIEF/src/PE/exceptions_info/RuntimeFunctionX64.cpp
index 2802d64ae3a..a3e9f496c66 100644
--- a/deps/LIEF/src/PE/exceptions_info/RuntimeFunctionX64.cpp
+++ b/deps/LIEF/src/PE/exceptions_info/RuntimeFunctionX64.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -26,8 +26,6 @@
 #include "frozen.hpp"
 #include "internal_utils.hpp"

-#include "LIEF/PE/exceptions_info/internal_x64.hpp"
-
 namespace LIEF::PE {

 inline bool should_have_handler(const RuntimeFunctionX64::unwind_info_t& info) {
@@ -36,32 +34,31 @@ inline bool should_have_handler(const RuntimeFunctionX64::unwind_info_t& info) {
 }

 std::unique_ptr<RuntimeFunctionX64>
-  RuntimeFunctionX64::parse(Parser& ctx, BinaryStream& strm, bool skip_unwind)
-{
+    RuntimeFunctionX64::parse(Parser& ctx, BinaryStream& strm, bool skip_unwind) {
   // From the documentation:
   // > The RUNTIME_FUNCTION structure must be DWORD aligned in memory.
   strm.align(sizeof(uint32_t));

   auto rva_start = strm.read<uint32_t>();
   if (!rva_start) {
-    LIEF_WARN("Can't read exception info RVA start (line: {})", __LINE__);
+    LIEF_WARN("Failed to read exception info RVA start (line: {})", __LINE__);
     return nullptr;
   }

   auto rva_end = strm.read<uint32_t>();
   if (!rva_end) {
-    LIEF_WARN("Can't read exception info RVA end (line: {})", __LINE__);
+    LIEF_WARN("Failed to read exception info RVA end (line: {})", __LINE__);
     return nullptr;
   }

   auto unwind_rva = strm.read<uint32_t>();
   if (!unwind_rva) {
-    LIEF_WARN("Can't read exception info unwind rva (line: {})", __LINE__);
+    LIEF_WARN("Failed to read exception info unwind RVA (line: {})", __LINE__);
     return nullptr;
   }

   auto rfunc =
-    std::make_unique<RuntimeFunctionX64>(*rva_start, *rva_end, *unwind_rva);
+      std::make_unique<RuntimeFunctionX64>(*rva_start, *rva_end, *unwind_rva);

   if (!skip_unwind) {
     ctx.memoize(*rfunc);
@@ -75,7 +72,7 @@ std::unique_ptr<RuntimeFunctionX64>
   {
     ScopedStream unwind_strm(ctx.stream(), unwind_off);
     if (auto is_ok = parse_unwind(ctx, *unwind_strm, *rfunc); !is_ok) {
-      LIEF_DEBUG("Failed to parse unwind data for function: 0x{:06x}",
+      LIEF_DEBUG("Failed to parse unwind data for function: {:#08x}",
                  rfunc->rva_start());
       return rfunc;
     }
@@ -85,8 +82,7 @@ std::unique_ptr<RuntimeFunctionX64>
 }

 ok_error_t RuntimeFunctionX64::parse_unwind(Parser& ctx, BinaryStream& strm,
-                                            RuntimeFunctionX64& func)
-{
+                                            RuntimeFunctionX64& func) {
   auto VersionFlags = strm.read<uint8_t>();
   if (!VersionFlags) {
     return make_error_code(VersionFlags.error());
@@ -113,7 +109,7 @@ ok_error_t RuntimeFunctionX64::parse_unwind(Parser& ctx, BinaryStream& strm,
   const uint8_t frame_reg = *FrameInfo & 0x0f;
   const uint8_t frame_off = (*VersionFlags >> 4) & 0x0f;

-  LIEF_DEBUG("Parsing unwind info for function 0x{:08x}", func.rva_start());
+  LIEF_DEBUG("Parsing unwind info for function {:#010x}", func.rva_start());
   LIEF_DEBUG("  Version: {}", version);
   LIEF_DEBUG("  Flags: {}", flags);
   LIEF_DEBUG("  SizeOfProlog: {}", *SizeOfProlog);
@@ -143,30 +139,33 @@ ok_error_t RuntimeFunctionX64::parse_unwind(Parser& ctx, BinaryStream& strm,
     if (!handler) {
       return make_error_code(handler.error());
     }
-    LIEF_DEBUG("  Handler: 0x{:06x}", *handler);
+    LIEF_DEBUG("  Handler: {:#08x}", *handler);
     info.handler = *handler;
   }

   if (info.has(UNWIND_FLAGS::CHAIN_INFO)) {
-    LIEF_DEBUG("  Chained!");
-    std::unique_ptr<RuntimeFunctionX64> chained = parse(ctx, strm, /*skip_unwind=*/true);
+    LIEF_DEBUG("  Chained");
+    std::unique_ptr<RuntimeFunctionX64> chained =
+        parse(ctx, strm, /*skip_unwind=*/true);
     if (chained != nullptr) {
-      LIEF_DEBUG("    chain: 0x{:08x} - 0x{:08x} - 0x{:08x}",
-                 chained->rva_start(), chained->rva_end(), chained->unwind_rva());
+      LIEF_DEBUG("    chain: {:#010x} - {:#010x} - {:#010x}", chained->rva_start(),
+                 chained->rva_end(), chained->unwind_rva());
       ExceptionInfo* link = ctx.find_exception_info(chained->rva_start());
       if (link != nullptr) {
-        LIEF_DEBUG("    chain (found): 0x{:08x} - 0x{:08x} - 0x{:08x}",
+        LIEF_DEBUG("    chain (found): {:#010x} - {:#010x} - {:#010x}",
                    link->rva_start(), link->as<RuntimeFunctionX64>()->rva_end(),
                    link->as<RuntimeFunctionX64>()->unwind_rva());
         assert(link->arch() == ExceptionInfo::ARCH::X86_64);
         info.chained = link->as<RuntimeFunctionX64>();
       } else {
-        LIEF_DEBUG("RuntimeFunctionX64 0x{:06x}: Can't find linked chained info",
-                   func.rva_start());
+        LIEF_DEBUG(
+            "RuntimeFunctionX64 {:#08x}: Failed to find linked chained info",
+            func.rva_start()
+        );
         ctx.add_non_resolved(func, chained->rva_start());
       }
     } else {
-      LIEF_WARN("RuntimeFunctionX64 0x{:06x}: chained info corrupted",
+      LIEF_WARN("RuntimeFunctionX64 {:#08x}: chained info corrupted",
                 func.rva_start());
     }
   }
@@ -176,8 +175,7 @@ ok_error_t RuntimeFunctionX64::parse_unwind(Parser& ctx, BinaryStream& strm,
 }

 RuntimeFunctionX64::unwind_info_t::opcodes_t
-  RuntimeFunctionX64::unwind_info_t::opcodes() const
-{
+    RuntimeFunctionX64::unwind_info_t::opcodes() const {
   using namespace unwind_x64;
   opcodes_t out;

@@ -210,9 +208,9 @@ std::string RuntimeFunctionX64::unwind_info_t::to_string() const {
       << "  Flags: " << (int)flags << '\n'
       << "  Size of prologue: " << (int)sizeof_prologue << '\n';

-  opcodes_t opcodes =  this->opcodes();
-  oss
-    << fmt::format("  Nb opcodes: {} ({})\n", (int)count_opcodes, opcodes.size());
+  opcodes_t opcodes = this->opcodes();
+  oss << fmt::format("  Nb opcodes: {} ({})\n", (int)count_opcodes,
+                     opcodes.size());

   if (!opcodes.empty()) {
     oss << "  Opcodes: [\n";
@@ -224,14 +222,14 @@ std::string RuntimeFunctionX64::unwind_info_t::to_string() const {

   if (chained != nullptr) {
     oss << "  Chained: {\n"
-        << fmt::format("    RVA: [0x{:06x}, 0x{:06x}]\n", chained->rva_start(),
+        << fmt::format("    RVA: [{:#08x}, {:#08x}]\n", chained->rva_start(),
                        chained->rva_end())
-        << fmt::format("    Unwind RVA: 0x{:06x}\n", chained->unwind_rva())
+        << fmt::format("    Unwind RVA: {:#08x}\n", chained->unwind_rva())
         << "  }\n";
   }

   if (handler) {
-    oss << fmt::format("  Handler: 0x{:06x}\n", *handler);
+    oss << fmt::format("  Handler: {:#08x}\n", *handler);
   }
   oss << "}";
   return oss.str();
@@ -240,9 +238,9 @@ std::string RuntimeFunctionX64::unwind_info_t::to_string() const {
 std::string RuntimeFunctionX64::to_string() const {
   std::ostringstream oss;
   oss << "RuntimeFunctionX64 {\n";
-  oss << fmt::format("  RVA: [0x{:06x}, 0x{:06x}] ({} bytes)\n",
-                     rva_start(), rva_end(), rva_end() - rva_start())
-      << fmt::format("  Unwind info RVA: 0x{:06x}\n", unwind_rva());
+  oss << fmt::format("  RVA: [{:#08x}, {:#08x}] ({} bytes)\n", rva_start(),
+                     rva_end(), rva_end() - rva_start())
+      << fmt::format("  Unwind info RVA: {:#08x}\n", unwind_rva());
   if (const unwind_info_t* info = unwind_info()) {
     oss << indent(info->to_string(), 2);
   }
@@ -251,21 +249,14 @@ std::string RuntimeFunctionX64::to_string() const {
 }

 const char* to_string(RuntimeFunctionX64::UNWIND_OPCODES e) {
-  #define ENTRY(X) std::pair(RuntimeFunctionX64::UNWIND_OPCODES::X, #X)
-  STRING_MAP enums2str {
-    ENTRY(ALLOC_LARGE),
-    ENTRY(ALLOC_SMALL),
-    ENTRY(EPILOG),
-    ENTRY(PUSH_MACHFRAME),
-    ENTRY(PUSH_NONVOL),
-    ENTRY(SAVE_NONVOL),
-    ENTRY(SAVE_NONVOL_FAR),
-    ENTRY(SAVE_XMM128),
-    ENTRY(SAVE_XMM128_FAR),
-    ENTRY(SET_FPREG),
-    ENTRY(SPARE),
+#define ENTRY(X) std::pair(RuntimeFunctionX64::UNWIND_OPCODES::X, #X)
+  STRING_MAP enums2str{
+      ENTRY(ALLOC_LARGE),     ENTRY(ALLOC_SMALL), ENTRY(EPILOG),
+      ENTRY(PUSH_MACHFRAME),  ENTRY(PUSH_NONVOL), ENTRY(SAVE_NONVOL),
+      ENTRY(SAVE_NONVOL_FAR), ENTRY(SAVE_XMM128), ENTRY(SAVE_XMM128_FAR),
+      ENTRY(SET_FPREG),       ENTRY(SPARE),
   };
-  #undef ENTRY
+#undef ENTRY

   if (auto it = enums2str.find(e); it != enums2str.end()) {
     return it->second;
@@ -274,26 +265,13 @@ const char* to_string(RuntimeFunctionX64::UNWIND_OPCODES e) {
 }

 const char* to_string(RuntimeFunctionX64::UNWIND_REG e) {
-  #define ENTRY(X) std::pair(RuntimeFunctionX64::UNWIND_REG::X, #X)
-  STRING_MAP enums2str {
-    ENTRY(R10),
-    ENTRY(R11),
-    ENTRY(R12),
-    ENTRY(R13),
-    ENTRY(R14),
-    ENTRY(R15),
-    ENTRY(R8),
-    ENTRY(R9),
-    ENTRY(RAX),
-    ENTRY(RBP),
-    ENTRY(RBX),
-    ENTRY(RCX),
-    ENTRY(RDI),
-    ENTRY(RDX),
-    ENTRY(RSI),
-    ENTRY(RSP),
+#define ENTRY(X) std::pair(RuntimeFunctionX64::UNWIND_REG::X, #X)
+  STRING_MAP enums2str{
+      ENTRY(R10), ENTRY(R11), ENTRY(R12), ENTRY(R13), ENTRY(R14), ENTRY(R15),
+      ENTRY(R8),  ENTRY(R9),  ENTRY(RAX), ENTRY(RBP), ENTRY(RBX), ENTRY(RCX),
+      ENTRY(RDI), ENTRY(RDX), ENTRY(RSI), ENTRY(RSP),
   };
-  #undef ENTRY
+#undef ENTRY

   if (auto it = enums2str.find(e); it != enums2str.end()) {
     return it->second;
@@ -303,11 +281,9 @@ const char* to_string(RuntimeFunctionX64::UNWIND_REG e) {


 const char* to_string(RuntimeFunctionX64::UNWIND_FLAGS op) {
-  switch(op) {
-    default:
-      return "UNKNOWN";
-    case RuntimeFunctionX64::UNWIND_FLAGS::CHAIN_INFO:
-      return "CHAIN_INFO";
+  switch (op) {
+    default: return "UNKNOWN";
+    case RuntimeFunctionX64::UNWIND_FLAGS::CHAIN_INFO: return "CHAIN_INFO";
     case RuntimeFunctionX64::UNWIND_FLAGS::EXCEPTION_HANDLER:
       return "EXCEPTION_HANDLER";
     case RuntimeFunctionX64::UNWIND_FLAGS::TERMINATE_HANDLER:
diff --git a/deps/LIEF/src/PE/exceptions_info/UnwindAArch64Decoder.cpp b/deps/LIEF/src/PE/exceptions_info/UnwindAArch64Decoder.cpp
index d71845ea216..620a901b3fb 100644
--- a/deps/LIEF/src/PE/exceptions_info/UnwindAArch64Decoder.cpp
+++ b/deps/LIEF/src/PE/exceptions_info/UnwindAArch64Decoder.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -19,7 +19,6 @@
 #include "logging.hpp"

 namespace LIEF::PE::unwind_aarch64 {
-using namespace fmt;

 template<>
 bool Decoder::decode<OPCODES::ALLOC_S>(bool is_prologue) {
@@ -69,8 +68,7 @@ bool Decoder::decode<OPCODES::SAVE_REGP>(bool is_prologue) {
   uint32_t reg = ((((chunk_1 & 0x03) << 8) | (chunk_2 & 0xC0)) >> 6) + 19;
   uint32_t off = (chunk_2 & 0x3F) << 3;

-  log("{} x{}, x{}, [sp, #{}]", is_prologue ? "stp" : "ldp",
-      reg, reg + 1, off);
+  log("{} x{}, x{}, [sp, #{}]", is_prologue ? "stp" : "ldp", reg, reg + 1, off);

   return false;
 }
@@ -207,8 +205,7 @@ bool Decoder::decode<OPCODES::ALLOC_L>(bool is_prologue) {
 template<>
 bool Decoder::decode<OPCODES::SETFP>(bool is_prologue) {
   [[maybe_unused]] auto _ = read_u8();
-  log("mov {}, {}", is_prologue ? "fp" : "sp",
-                    is_prologue ? "sp" : "fp");
+  log("mov {}, {}", is_prologue ? "fp" : "sp", is_prologue ? "sp" : "fp");
   return false;
 }

@@ -218,21 +215,20 @@ bool Decoder::decode<OPCODES::ADDFP>(bool is_prologue) {
   auto CH1 = read_u8();
   uint32_t nb_bytes = CH1 << 3;

-  log("{} {}, {}, #{}", is_prologue ? "add" : "sub",
-                        is_prologue ? "fp" : "sp",
-                        is_prologue ? "sp" : "fp", nb_bytes);
+  log("{} {}, {}, #{}", is_prologue ? "add" : "sub", is_prologue ? "fp" : "sp",
+      is_prologue ? "sp" : "fp", nb_bytes);
   return false;
 }

 template<>
-bool Decoder::decode<OPCODES::NOP>(bool/*is_prologue*/) {
+bool Decoder::decode<OPCODES::NOP>(bool /*is_prologue*/) {
   [[maybe_unused]] auto _ = read_u8();
   log("nop");
   return false;
 }

 template<>
-bool Decoder::decode<OPCODES::END>(bool/*is_prologue*/) {
+bool Decoder::decode<OPCODES::END>(bool /*is_prologue*/) {
   [[maybe_unused]] auto _ = read_u8();
   log("end");
   return true;
@@ -307,14 +303,13 @@ bool Decoder::decode<OPCODES::SAVE_ANY_REG>(bool is_prologue) {

   if (is_paired) {
     lognf("{} ", is_paired ? (is_prologue ? "stp" : "ldp") :
-                            (is_prologue ? "str" : "ldr"));
+                             (is_prologue ? "str" : "ldr"));
   }

   char reg_prefix = 'x';
   if (reg_kind == 1) {
     reg_prefix = 'd';
-  }
-  else if (reg_kind == 2) {
+  } else if (reg_kind == 2) {
     reg_prefix = 'q';
   }

@@ -325,8 +320,7 @@ bool Decoder::decode<OPCODES::SAVE_ANY_REG>(bool is_prologue) {
   }

   if (write_back) {
-    is_prologue ? log("[sp, #-{}]!", stack_off) :
-                  log("[sp], #{}", stack_off);
+    is_prologue ? log("[sp, #-{}]!", stack_off) : log("[sp], #{}", stack_off);
   } else {
     log("[sp, #{}]", stack_off);
   }
@@ -442,35 +436,36 @@ bool Decoder::decode<OPCODES::PAC_SIGN_LR>(bool is_prologue) {
 }

 static constexpr auto HANDLERS = {
-  std::make_tuple(0xe0, 0x00, 1, &Decoder::decode<OPCODES::ALLOC_S>),
-  std::make_tuple(0xe0, 0x20, 1, &Decoder::decode<OPCODES::SAVE_R19R20_X>),
-  std::make_tuple(0xc0, 0x40, 1, &Decoder::decode<OPCODES::SAVE_FPLR>),
-  std::make_tuple(0xc0, 0x80, 1, &Decoder::decode<OPCODES::SAVE_FPLR_X>),
-  std::make_tuple(0xf8, 0xc0, 2, &Decoder::decode<OPCODES::ALLOC_M>),
-  std::make_tuple(0xfc, 0xc8, 2, &Decoder::decode<OPCODES::SAVE_REGP>),
-  std::make_tuple(0xfc, 0xcc, 2, &Decoder::decode<OPCODES::SAVE_REGP_X>),
-  std::make_tuple(0xfc, 0xd0, 2, &Decoder::decode<OPCODES::SAVE_REG>),
-  std::make_tuple(0xfe, 0xd4, 2, &Decoder::decode<OPCODES::SAVE_REG_X>),
-  std::make_tuple(0xfe, 0xd6, 2, &Decoder::decode<OPCODES::SAVE_LRPAIR>),
-  std::make_tuple(0xfe, 0xd8, 2, &Decoder::decode<OPCODES::SAVE_FREGP>),
-  std::make_tuple(0xfe, 0xda, 2, &Decoder::decode<OPCODES::SAVE_FREGP_X>),
-  std::make_tuple(0xfe, 0xdc, 2, &Decoder::decode<OPCODES::SAVE_FREG>),
-  std::make_tuple(0xff, 0xde, 2, &Decoder::decode<OPCODES::SAVE_FREG_X>),
-  std::make_tuple(0xff, 0xdf, 2, &Decoder::decode<OPCODES::ALLOC_Z>),
-  std::make_tuple(0xff, 0xe0, 4, &Decoder::decode<OPCODES::ALLOC_L>),
-  std::make_tuple(0xff, 0xe1, 1, &Decoder::decode<OPCODES::SETFP>),
-  std::make_tuple(0xff, 0xe2, 2, &Decoder::decode<OPCODES::ADDFP>),
-  std::make_tuple(0xff, 0xe3, 1, &Decoder::decode<OPCODES::NOP>),
-  std::make_tuple(0xff, 0xe4, 1, &Decoder::decode<OPCODES::END>),
-  std::make_tuple(0xff, 0xe5, 1, &Decoder::decode<OPCODES::END_C>),
-  std::make_tuple(0xff, 0xe6, 1, &Decoder::decode<OPCODES::SAVE_NEXT>),
-  std::make_tuple(0xff, 0xe7, 3, &Decoder::decode<OPCODES::E7>),
-  std::make_tuple(0xff, 0xe8, 1, &Decoder::decode<OPCODES::TRAP_FRAME>),
-  std::make_tuple(0xff, 0xe9, 1, &Decoder::decode<OPCODES::MACHINE_FRAME>),
-  std::make_tuple(0xff, 0xea, 1, &Decoder::decode<OPCODES::CONTEXT>),
-  std::make_tuple(0xff, 0xeb, 1, &Decoder::decode<OPCODES::EC_CONTEXT>),
-  std::make_tuple(0xff, 0xec, 1, &Decoder::decode<OPCODES::CLEAR_UNWOUND_TO_CALL>),
-  std::make_tuple(0xff, 0xfc, 1, &Decoder::decode<OPCODES::PAC_SIGN_LR>),
+    std::make_tuple(0xe0, 0x00, 1, &Decoder::decode<OPCODES::ALLOC_S>),
+    std::make_tuple(0xe0, 0x20, 1, &Decoder::decode<OPCODES::SAVE_R19R20_X>),
+    std::make_tuple(0xc0, 0x40, 1, &Decoder::decode<OPCODES::SAVE_FPLR>),
+    std::make_tuple(0xc0, 0x80, 1, &Decoder::decode<OPCODES::SAVE_FPLR_X>),
+    std::make_tuple(0xf8, 0xc0, 2, &Decoder::decode<OPCODES::ALLOC_M>),
+    std::make_tuple(0xfc, 0xc8, 2, &Decoder::decode<OPCODES::SAVE_REGP>),
+    std::make_tuple(0xfc, 0xcc, 2, &Decoder::decode<OPCODES::SAVE_REGP_X>),
+    std::make_tuple(0xfc, 0xd0, 2, &Decoder::decode<OPCODES::SAVE_REG>),
+    std::make_tuple(0xfe, 0xd4, 2, &Decoder::decode<OPCODES::SAVE_REG_X>),
+    std::make_tuple(0xfe, 0xd6, 2, &Decoder::decode<OPCODES::SAVE_LRPAIR>),
+    std::make_tuple(0xfe, 0xd8, 2, &Decoder::decode<OPCODES::SAVE_FREGP>),
+    std::make_tuple(0xfe, 0xda, 2, &Decoder::decode<OPCODES::SAVE_FREGP_X>),
+    std::make_tuple(0xfe, 0xdc, 2, &Decoder::decode<OPCODES::SAVE_FREG>),
+    std::make_tuple(0xff, 0xde, 2, &Decoder::decode<OPCODES::SAVE_FREG_X>),
+    std::make_tuple(0xff, 0xdf, 2, &Decoder::decode<OPCODES::ALLOC_Z>),
+    std::make_tuple(0xff, 0xe0, 4, &Decoder::decode<OPCODES::ALLOC_L>),
+    std::make_tuple(0xff, 0xe1, 1, &Decoder::decode<OPCODES::SETFP>),
+    std::make_tuple(0xff, 0xe2, 2, &Decoder::decode<OPCODES::ADDFP>),
+    std::make_tuple(0xff, 0xe3, 1, &Decoder::decode<OPCODES::NOP>),
+    std::make_tuple(0xff, 0xe4, 1, &Decoder::decode<OPCODES::END>),
+    std::make_tuple(0xff, 0xe5, 1, &Decoder::decode<OPCODES::END_C>),
+    std::make_tuple(0xff, 0xe6, 1, &Decoder::decode<OPCODES::SAVE_NEXT>),
+    std::make_tuple(0xff, 0xe7, 3, &Decoder::decode<OPCODES::E7>),
+    std::make_tuple(0xff, 0xe8, 1, &Decoder::decode<OPCODES::TRAP_FRAME>),
+    std::make_tuple(0xff, 0xe9, 1, &Decoder::decode<OPCODES::MACHINE_FRAME>),
+    std::make_tuple(0xff, 0xea, 1, &Decoder::decode<OPCODES::CONTEXT>),
+    std::make_tuple(0xff, 0xeb, 1, &Decoder::decode<OPCODES::EC_CONTEXT>),
+    std::make_tuple(0xff, 0xec, 1,
+                    &Decoder::decode<OPCODES::CLEAR_UNWOUND_TO_CALL>),
+    std::make_tuple(0xff, 0xfc, 1, &Decoder::decode<OPCODES::PAC_SIGN_LR>),
 };

 ok_error_t Decoder::run(bool prologue) {
@@ -491,7 +486,7 @@ ok_error_t Decoder::run(bool prologue) {

       found = true;

-      lognf("0x{:04x} ", start_pos);
+      lognf("{:#06x} ", start_pos);
       {
         ScopedStream scoped(*stream_);
         std::vector<uint8_t> bytes;
@@ -528,7 +523,6 @@ ok_error_t Decoder::run(bool prologue) {
       LIEF_DEBUG("{}:{}", __FUNCTION__, __LINE__);
       return make_error_code(lief_errors::read_error);
     }
-
   }
   return ok();
 }
diff --git a/deps/LIEF/src/PE/exceptions_info/UnwindAArch64Decoder.hpp b/deps/LIEF/src/PE/exceptions_info/UnwindAArch64Decoder.hpp
index be40cb14242..5618f3a753d 100644
--- a/deps/LIEF/src/PE/exceptions_info/UnwindAArch64Decoder.hpp
+++ b/deps/LIEF/src/PE/exceptions_info/UnwindAArch64Decoder.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -41,20 +41,16 @@ class Decoder {
   };
   Decoder() = delete;
   Decoder(BinaryStream& stream) :
-    ostream_(nullptr),
-    stream_(&stream)
-  {}
+    stream_(&stream) {}

   Decoder(BinaryStream& stream, std::ostream& os) :
     ostream_(&os),
-    stream_(&stream)
-  {}
+    stream_(&stream) {}

   Decoder(BinaryStream& stream, std::ostream& os, const outstream_opt_t& opt) :
     ostream_(&os),
     stream_(&stream),
-    opt_(opt)
-  {}
+    opt_(opt) {}

   ok_error_t run(bool prologue);

@@ -77,13 +73,13 @@ class Decoder {
     return *this;
   }

-  template <typename... Args>
-  Decoder& log(const char *fmt, const Args &... args) {
+  template<typename... Args>
+  Decoder& log(const char* fmt, const Args&... args) {
     return log(fmt::format(fmt::runtime(fmt), args...));
   }

-  template <typename... Args>
-  Decoder& lognf(const char *fmt, const Args &... args) {
+  template<typename... Args>
+  Decoder& lognf(const char* fmt, const Args&... args) {
     return log(fmt::format(fmt::runtime(fmt), args...), /*flush=*/false);
   }

@@ -110,5 +106,3 @@ class Decoder {
 }

 #endif
-
-
diff --git a/deps/LIEF/src/PE/exceptions_info/UnwindCodeX64.cpp b/deps/LIEF/src/PE/exceptions_info/UnwindCodeX64.cpp
index 8c00bc8f2ea..0afba8b800d 100644
--- a/deps/LIEF/src/PE/exceptions_info/UnwindCodeX64.cpp
+++ b/deps/LIEF/src/PE/exceptions_info/UnwindCodeX64.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -22,9 +22,9 @@

 namespace LIEF::PE::unwind_x64 {

-std::unique_ptr<Code> Code::create_from(
-  const RuntimeFunctionX64::unwind_info_t& info, SpanStream& stream)
-{
+std::unique_ptr<Code>
+    Code::create_from(const RuntimeFunctionX64::unwind_info_t& info,
+                      SpanStream& stream) {
   auto op = stream.read<details::unwind_code_t>();
   if (!op) {
     return nullptr;
@@ -37,21 +37,21 @@ std::unique_ptr<Code> Code::create_from(
       return std::make_unique<PushNonVol>(REG(op->op_info()), pos);

     case OPCODE::ALLOC_LARGE:
-      {
-        if (op->op_info() == 0) {
-          auto size = stream.read<uint16_t>();
-          if (!size) {
-            return nullptr;
-          }
-          return std::make_unique<Alloc>(opcode, pos, *size * 8);
-        }
-
-        auto size = stream.read<uint32_t>();
+    {
+      if (op->op_info() == 0) {
+        auto size = stream.read<uint16_t>();
         if (!size) {
           return nullptr;
         }
-        return std::make_unique<Alloc>(opcode, pos, *size);
+        return std::make_unique<Alloc>(opcode, pos, *size * 8);
+      }
+
+      auto size = stream.read<uint32_t>();
+      if (!size) {
+        return nullptr;
       }
+      return std::make_unique<Alloc>(opcode, pos, *size);
+    }

     case OPCODE::ALLOC_SMALL:
       return std::make_unique<Alloc>(opcode, pos, (op->op_info() + 1) * 8);
@@ -60,82 +60,81 @@ std::unique_ptr<Code> Code::create_from(
       return std::make_unique<SetFPReg>(REG(info.frame_reg), pos);

     case OPCODE::SAVE_NONVOL:
-      {
-        auto offset = stream.read<uint16_t>();
-        if (!offset) {
-          return nullptr;
-        }
-        return std::make_unique<SaveNonVolatile>(opcode, REG(op->op_info()),
-                                                 pos, *offset * 8);
+    {
+      auto offset = stream.read<uint16_t>();
+      if (!offset) {
+        return nullptr;
       }
+      return std::make_unique<SaveNonVolatile>(opcode, REG(op->op_info()), pos,
+                                               *offset * 8);
+    }

     case OPCODE::SAVE_NONVOL_FAR:
-      {
-        auto offset = stream.read<uint32_t>();
-        if (!offset) {
-          return nullptr;
-        }
-        return std::make_unique<SaveNonVolatile>(opcode, REG(op->op_info()),
-                                                 pos, *offset);
+    {
+      auto offset = stream.read<uint32_t>();
+      if (!offset) {
+        return nullptr;
       }
+      return std::make_unique<SaveNonVolatile>(opcode, REG(op->op_info()), pos,
+                                               *offset);
+    }

     case OPCODE::SAVE_XMM128:
-      {
-        auto offset = stream.read<uint16_t>();
-        if (!offset) {
-          return nullptr;
-        }
-        return std::make_unique<SaveXMM128>(opcode, op->op_info(), pos, *offset * 16);
+    {
+      auto offset = stream.read<uint16_t>();
+      if (!offset) {
+        return nullptr;
       }
+      return std::make_unique<SaveXMM128>(opcode, op->op_info(), pos,
+                                          *offset * 16);
+    }

     case OPCODE::SAVE_XMM128_FAR:
-      {
-        auto offset = stream.read<uint32_t>();
-        if (!offset) {
-          return nullptr;
-        }
-        return std::make_unique<SaveXMM128>(opcode, op->op_info(), pos, *offset);
+    {
+      auto offset = stream.read<uint32_t>();
+      if (!offset) {
+        return nullptr;
       }
+      return std::make_unique<SaveXMM128>(opcode, op->op_info(), pos, *offset);
+    }

     case OPCODE::PUSH_MACHFRAME:
       return std::make_unique<PushMachFrame>(op->op_info(), pos);

     case OPCODE::EPILOG:
-      {
-        auto offset = stream.read<uint16_t>();
-        if (!offset) {
-          return nullptr;
-        }
+    {
+      auto offset = stream.read<uint16_t>();
+      if (!offset) {
+        return nullptr;
+      }

-        if (info.version == 1) {
-          return std::make_unique<SaveXMM128>(OPCODE::SAVE_XMM128, op->op_info(),
-                                              pos, *offset * 16);
-        }
-        return std::make_unique<Epilog>(op->op_info(), op->opcode.code_offset);
+      if (info.version == 1) {
+        return std::make_unique<SaveXMM128>(OPCODE::SAVE_XMM128, op->op_info(),
+                                            pos, *offset * 16);
       }
+      return std::make_unique<Epilog>(op->op_info(), op->opcode.code_offset);
+    }

     case OPCODE::SPARE:
-      {
-        auto offset = stream.read<uint32_t>();
-        if (!offset) {
-          return nullptr;
-        }
+    {
+      auto offset = stream.read<uint32_t>();
+      if (!offset) {
+        return nullptr;
+      }

-        if (info.version == 1) {
-          return std::make_unique<SaveXMM128>(opcode, op->op_info(), pos, *offset);
-        }
-        return std::make_unique<Spare>();
+      if (info.version == 1) {
+        return std::make_unique<SaveXMM128>(opcode, op->op_info(), pos, *offset);
       }
+      return std::make_unique<Spare>();
+    }

-    default:
-      LIEF_WARN("Unknown opcode: {}", op->op());
-      return nullptr;
+    default: LIEF_WARN("Unknown opcode: {}", op->op()); return nullptr;
   }
   return nullptr;
 }

 std::string Code::to_string() const {
-  return fmt::format("0x{:02x} {}", pos_, LIEF::PE::to_string(opcode_));
+  return fmt::format("{:#04x} {}", pos_, LIEF::PE::to_string(opcode_));
 }

 std::string Alloc::to_string() const {
@@ -143,33 +142,29 @@ std::string Alloc::to_string() const {
 }

 std::string PushNonVol::to_string() const {
-  return fmt::format("{} reg={}", Code::to_string(),
-                     LIEF::PE::to_string(reg()));
+  return fmt::format("{} reg={}", Code::to_string(), LIEF::PE::to_string(reg()));
 }

 std::string PushMachFrame::to_string() const {
-  return fmt::format("{} value={}", Code::to_string(),
-                     (bool)value());
+  return fmt::format("{} value={}", Code::to_string(), (bool)value());
 }

 std::string SetFPReg::to_string() const {
-  return fmt::format("{} reg={} ", Code::to_string(),
-                     LIEF::PE::to_string(reg()));
+  return fmt::format("{} reg={} ", Code::to_string(), LIEF::PE::to_string(reg()));
 }

 std::string SaveNonVolatile::to_string() const {
-  return fmt::format("{} reg={}, offset=0x{:06x}", Code::to_string(),
+  return fmt::format("{} reg={}, offset={:#08x}", Code::to_string(),
                      LIEF::PE::to_string(reg()), offset());
 }

 std::string SaveXMM128::to_string() const {
-  return fmt::format("{} reg=XMM{}, offset=0x{:06x}", Code::to_string(),
-                     num(), offset());
+  return fmt::format("{} reg=XMM{}, offset={:#08x}", Code::to_string(), num(),
+                     offset());
 }

 std::string Epilog::to_string() const {
-  return fmt::format("EPILOG flags={}, size={}",
-                     flags(), size());
+  return fmt::format("EPILOG flags={}, size={}", flags(), size());
 }

 }
diff --git a/deps/LIEF/src/PE/hash.cpp b/deps/LIEF/src/PE/hash.cpp
index 428db39823f..c8b3db625e6 100644
--- a/deps/LIEF/src/PE/hash.cpp
+++ b/deps/LIEF/src/PE/hash.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -15,11 +15,79 @@
  */

 #include "LIEF/PE/hash.hpp"
-#include "LIEF/PE.hpp"
+#include "LIEF/PE/Parser.hpp"
+#include "LIEF/PE/Section.hpp"
+#include "LIEF/PE/TLS.hpp"
+#include "LIEF/PE/Export.hpp"
+#include "LIEF/PE/ExportEntry.hpp"
+#include "LIEF/PE/Import.hpp"
+#include "LIEF/PE/ImportEntry.hpp"
+#include "LIEF/PE/DelayImport.hpp"
+#include "LIEF/PE/DelayImportEntry.hpp"
+#include "LIEF/PE/DataDirectory.hpp"
+#include "LIEF/PE/ResourcesManager.hpp"
+#include "LIEF/PE/ResourceData.hpp"
+#include "LIEF/PE/ResourceNode.hpp"
+#include "LIEF/PE/ResourceDirectory.hpp"
+#include "LIEF/PE/resources/ResourceAccelerator.hpp"
+#include "LIEF/PE/resources/ResourceDialog.hpp"
+#include "LIEF/PE/resources/ResourceDialogRegular.hpp"
+#include "LIEF/PE/resources/ResourceDialogExtended.hpp"
+#include "LIEF/PE/resources/ResourceIcon.hpp"
+#include "LIEF/PE/resources/ResourceStringFileInfo.hpp"
+#include "LIEF/PE/resources/ResourceStringTable.hpp"
+#include "LIEF/PE/resources/ResourceVarFileInfo.hpp"
+#include "LIEF/PE/resources/ResourceVar.hpp"
+#include "LIEF/PE/resources/ResourceVersion.hpp"
+#include "LIEF/PE/RichEntry.hpp"
+#include "LIEF/PE/RichHeader.hpp"
+#include "LIEF/PE/Relocation.hpp"
+#include "LIEF/PE/RelocationEntry.hpp"
+#include "LIEF/PE/Builder.hpp"
+#include "LIEF/PE/Binary.hpp"
+#include "LIEF/PE/debug/Debug.hpp"
+#include "LIEF/PE/debug/CodeView.hpp"
+#include "LIEF/PE/debug/Pogo.hpp"
+#include "LIEF/PE/debug/PogoEntry.hpp"
+#include "LIEF/PE/debug/Repro.hpp"
+#include "LIEF/PE/debug/CodeViewPDB.hpp"
+#include "LIEF/PE/DosHeader.hpp"
+#include "LIEF/PE/Header.hpp"
+#include "LIEF/PE/OptionalHeader.hpp"
+#include "LIEF/PE/LoadConfigurations/LoadConfiguration.hpp"
+#include "LIEF/PE/CodeIntegrity.hpp"
+#include "LIEF/PE/signature/Attribute.hpp"
+#include "LIEF/PE/signature/ContentInfo.hpp"
+#include "LIEF/PE/signature/GenericContent.hpp"
+#include "LIEF/PE/signature/Signature.hpp"
+#include "LIEF/PE/signature/SignerInfo.hpp"
+#include "LIEF/PE/signature/SpcIndirectData.hpp"
+#include "LIEF/PE/signature/attributes/ContentType.hpp"
+#include "LIEF/PE/signature/attributes/GenericType.hpp"
+#include "LIEF/PE/signature/attributes/MsCounterSign.hpp"
+#include "LIEF/PE/signature/attributes/MsManifestBinaryID.hpp"
+#include "LIEF/PE/signature/attributes/MsSpcNestedSignature.hpp"
+#include "LIEF/PE/signature/attributes/MsSpcStatementType.hpp"
+#include "LIEF/PE/signature/attributes/PKCS9AtSequenceNumber.hpp"
+#include "LIEF/PE/signature/attributes/PKCS9CounterSignature.hpp"
+#include "LIEF/PE/signature/attributes/PKCS9MessageDigest.hpp"
+#include "LIEF/PE/signature/attributes/PKCS9SigningTime.hpp"
+#include "LIEF/PE/signature/attributes/SigningCertificateV2.hpp"
+#include "LIEF/PE/signature/attributes/SpcSpOpusInfo.hpp"
+#include "LIEF/PE/signature/attributes/SpcRelaxedPeMarkerCheck.hpp"
+#include "LIEF/PE/signature/x509.hpp"
+#include "LIEF/PE/signature/RsaInfo.hpp"
+#include "LIEF/PE/signature/SpcIndirectData.hpp"
+#include "LIEF/PE/signature/GenericContent.hpp"
+#include "LIEF/PE/hash.hpp"
+#include "LIEF/PE/enums.hpp"
+#include "LIEF/PE/EnumToString.hpp"
+#include "LIEF/PE/utils.hpp"
+
 #include "Object.tcc"

-namespace LIEF {
-namespace PE {
+
+namespace LIEF::PE {

 Hash::~Hash() = default;

@@ -32,14 +100,14 @@ void Hash::visit(const Binary& binary) {
   process(binary.header());
   process(binary.optional_header());

-  process(std::begin(binary.data_directories()), std::end(binary.data_directories()));
-  process(std::begin(binary.sections()), std::end(binary.sections()));
-  process(std::begin(binary.imports()), std::end(binary.imports()));
-  process(std::begin(binary.delay_imports()), std::end(binary.delay_imports()));
-  process(std::begin(binary.relocations()), std::end(binary.relocations()));
+  process(binary.data_directories().begin(), binary.data_directories().end());
+  process(binary.sections().begin(), binary.sections().end());
+  process(binary.imports().begin(), binary.imports().end());
+  process(binary.delay_imports().begin(), binary.delay_imports().end());
+  process(binary.relocations().begin(), binary.relocations().end());

   if (binary.has_debug()) {
-    process(std::begin(binary.debug()), std::end(binary.debug()));
+    process(binary.debug().begin(), binary.debug().end());
   }

   if (const Export* exp = binary.get_export()) {
@@ -53,7 +121,6 @@ void Hash::visit(const Binary& binary) {
   if (const RichHeader* rheader = binary.rich_header()) {
     process(*rheader);
   }
-
 }


@@ -135,7 +202,6 @@ void Hash::visit(const OptionalHeader& optional_header) {
   process(optional_header.sizeof_heap_commit());
   process(optional_header.loader_flags());
   process(optional_header.numberof_rva_and_size());
-
 }

 void Hash::visit(const DataDirectory& data_directory) {
@@ -158,19 +224,17 @@ void Hash::visit(const Section& section) {
   process(section.numberof_line_numbers());
   process(section.characteristics());
   process(section.content());
-
 }

 void Hash::visit(const Relocation& relocation) {
   process(relocation.virtual_address());
-  process(std::begin(relocation.entries()), std::end(relocation.entries()));
+  process(relocation.entries().begin(), relocation.entries().end());
 }

 void Hash::visit(const RelocationEntry& relocation_entry) {
   process(relocation_entry.data());
   process(relocation_entry.position());
   process(relocation_entry.type());
-
 }

 void Hash::visit(const Export& export_) {
@@ -180,7 +244,7 @@ void Hash::visit(const Export& export_) {
   process(export_.minor_version());
   process(export_.ordinal_base());
   process(export_.name());
-  process(std::begin(export_.entries()), std::end(export_.entries()));
+  process(export_.entries().begin(), export_.entries().end());
 }

 void Hash::visit(const ExportEntry& export_entry) {
@@ -230,7 +294,7 @@ void Hash::visit(const Import& import) {
   process(import.import_address_table_rva());
   process(import.import_lookup_table_rva());
   process(import.name());
-  process(std::begin(import.entries()), std::end(import.entries()));
+  process(import.entries().begin(), import.entries().end());
 }

 void Hash::visit(const ImportEntry& import_entry) {
@@ -268,7 +332,7 @@ void Hash::visit(const ResourceNode& resource_node) {
     process(resource_node.name());
   }

-  process(std::begin(resource_node.childs()), std::end(resource_node.childs()));
+  process(resource_node.childs().begin(), resource_node.childs().end());
 }

 void Hash::visit(const ResourceData& resource_data) {
@@ -297,11 +361,12 @@ void Hash::visit(const ResourcesManager& resources_manager) {
   }

   if (resources_manager.has_icons()) {
-    process(std::begin(resources_manager.icons()), std::end(resources_manager.icons()));
+    process(resources_manager.icons().begin(), resources_manager.icons().end());
   }

   if (resources_manager.has_dialogs()) {
-    process(std::begin(resources_manager.dialogs()), std::end(resources_manager.dialogs()));
+    process(resources_manager.dialogs().begin(),
+            resources_manager.dialogs().end());
   }
 }

@@ -369,7 +434,6 @@ void Hash::visit(const ResourceIcon& resource_icon) {
   process(resource_icon.planes());
   process(resource_icon.bit_count());
   process(resource_icon.pixels());
-
 }

 void Hash::visit(const ResourceStringTable& table) {
@@ -390,8 +454,8 @@ void Hash::visit(const Signature& signature) {
   process(signature.version());
   process(signature.digest_algorithm());
   process(signature.content_info());
-  process(std::begin(signature.certificates()), std::end(signature.certificates()));
-  process(std::begin(signature.signers()), std::end(signature.signers()));
+  process(signature.certificates().begin(), signature.certificates().end());
+  process(signature.signers().begin(), signature.signers().end());
 }

 void Hash::visit(const x509& x509) {
@@ -411,8 +475,10 @@ void Hash::visit(const SignerInfo& signerinfo) {
   process(signerinfo.encryption_algorithm());
   process(signerinfo.digest_algorithm());
   process(signerinfo.encrypted_digest());
-  process(std::begin(signerinfo.authenticated_attributes()), std::end(signerinfo.authenticated_attributes()));
-  process(std::begin(signerinfo.unauthenticated_attributes()), std::end(signerinfo.unauthenticated_attributes()));
+  process(signerinfo.authenticated_attributes().begin(),
+          signerinfo.authenticated_attributes().end());
+  process(signerinfo.unauthenticated_attributes().begin(),
+          signerinfo.unauthenticated_attributes().end());
 }

 void Hash::visit(const Attribute& attr) {
@@ -434,7 +500,6 @@ void Hash::visit(const SpcIndirectData& content) {
   process(content.file());
   process(content.digest());
   process(content.digest_algorithm());
-
 }


@@ -502,7 +567,7 @@ void Hash::visit(const SpcRelaxedPeMarkerCheck& attr) {

 void Hash::visit(const SigningCertificateV2& attr) {
   visit(*attr.as<Attribute>());
-  //TODO
+  // TODO
 }

 void Hash::visit(const CodeIntegrity& code_integrity) {
@@ -569,7 +634,7 @@ void Hash::visit(const Pogo& pogo) {
   Pogo::it_const_entries entries = pogo.entries();
   visit(static_cast<const Debug&>(pogo));
   process(pogo.signature());
-  process(std::begin(entries), std::end(entries));
+  process(entries.begin(), entries.end());
 }


@@ -644,9 +709,6 @@ void Hash::visit(const ResourceDialogExtended& dialog) {
     process(item.title().string);
     process(item.creation_data());
   }
-
 }

-} // namespace PE
-} // namespace LIEF
-
+} // namespace LIEF::PE
diff --git a/deps/LIEF/src/PE/json.cpp b/deps/LIEF/src/PE/json.cpp
index 9f6d2b8646a..d6c2cfeb019 100644
--- a/deps/LIEF/src/PE/json.cpp
+++ b/deps/LIEF/src/PE/json.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -13,16 +13,50 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-
-#include "logging.hpp"
-
 #include "PE/json_internal.hpp"
-#include "LIEF/PE.hpp"
+
+#include "LIEF/utils.hpp"
+#include "LIEF/hash.hpp"
+
+#include "LIEF/PE/EnumToString.hpp"
+#include "LIEF/PE/Binary.hpp"
+#include "LIEF/PE/ResourceNode.hpp"
+#include "LIEF/PE/ResourceData.hpp"
+#include "LIEF/PE/ResourceDirectory.hpp"
+#include "LIEF/PE/resources/ResourceDialog.hpp"
+#include "LIEF/PE/resources/ResourceDialogExtended.hpp"
+#include "LIEF/PE/resources/ResourceDialogRegular.hpp"
+#include "LIEF/PE/LoadConfigurations/LoadConfiguration.hpp"
+#include "LIEF/PE/RichHeader.hpp"
+#include "LIEF/PE/Section.hpp"
+#include "LIEF/PE/Relocation.hpp"
+#include "LIEF/PE/RelocationEntry.hpp"
+#include "LIEF/PE/Export.hpp"
+#include "LIEF/PE/TLS.hpp"
+#include "LIEF/PE/debug/Debug.hpp"
+#include "LIEF/PE/debug/CodeView.hpp"
+#include "LIEF/PE/debug/Pogo.hpp"
+#include "LIEF/PE/debug/Repro.hpp"
+#include "LIEF/PE/debug/CodeViewPDB.hpp"
+#include "LIEF/PE/signature/attributes/ContentType.hpp"
+#include "LIEF/PE/signature/attributes/GenericType.hpp"
+#include "LIEF/PE/signature/attributes/MsCounterSign.hpp"
+#include "LIEF/PE/signature/attributes/MsManifestBinaryID.hpp"
+#include "LIEF/PE/signature/attributes/MsSpcNestedSignature.hpp"
+#include "LIEF/PE/signature/attributes/MsSpcStatementType.hpp"
+#include "LIEF/PE/signature/attributes/PKCS9AtSequenceNumber.hpp"
+#include "LIEF/PE/signature/attributes/PKCS9CounterSignature.hpp"
+#include "LIEF/PE/signature/attributes/PKCS9MessageDigest.hpp"
+#include "LIEF/PE/signature/attributes/PKCS9SigningTime.hpp"
+#include "LIEF/PE/signature/attributes/SigningCertificateV2.hpp"
+#include "LIEF/PE/signature/attributes/SpcSpOpusInfo.hpp"
+#include "LIEF/PE/signature/attributes/SpcRelaxedPeMarkerCheck.hpp"
+#include "LIEF/PE/signature/SpcIndirectData.hpp"
+#include "LIEF/PE/signature/GenericContent.hpp"

 #include "Object.tcc"

-namespace LIEF {
-namespace PE {
+namespace LIEF::PE {

 std::string to_hex(const char c) {
   std::stringstream ss;
@@ -45,7 +79,7 @@ std::string escape_non_ascii(const std::string& s) {
 }

 void JsonVisitor::visit(const Binary& binary) {
-  node_["entrypoint"]   = binary.entrypoint();
+  node_["entrypoint"] = binary.entrypoint();
   node_["virtual_size"] = binary.virtual_size();

   // DOS Header
@@ -67,8 +101,8 @@ void JsonVisitor::visit(const Binary& binary) {
   JsonVisitor optional_header_visitor;
   optional_header_visitor(binary.optional_header());

-  node_["dos_header"]      = dos_header_visitor.get();
-  node_["header"]          = header_visitor.get();
+  node_["dos_header"] = dos_header_visitor.get();
+  node_["header"] = header_visitor.get();
   node_["optional_header"] = optional_header_visitor.get();

   // Data directories
@@ -161,7 +195,7 @@ void JsonVisitor::visit(const Binary& binary) {
       manager->accept(manager_visitor);
     }

-    node_["resources_tree"]    = visitor.get();
+    node_["resources_tree"] = visitor.get();
     node_["resources_manager"] = manager_visitor.get();
   }

@@ -184,30 +218,29 @@ void JsonVisitor::visit(const Binary& binary) {
     config->accept(visitor);
     node_["load_configuration"] = visitor.get();
   }
-
 }


 void JsonVisitor::visit(const DosHeader& dos_header) {
-  node_["magic"]                       = dos_header.magic();
-  node_["used_bytes_in_last_page"]     = dos_header.used_bytes_in_last_page();
-  node_["file_size_in_pages"]          = dos_header.file_size_in_pages();
-  node_["numberof_relocation"]         = dos_header.numberof_relocation();
-  node_["header_size_in_paragraphs"]   = dos_header.header_size_in_paragraphs();
-  node_["minimum_extra_paragraphs"]    = dos_header.minimum_extra_paragraphs();
-  node_["maximum_extra_paragraphs"]    = dos_header.maximum_extra_paragraphs();
-  node_["initial_relative_ss"]         = dos_header.initial_relative_ss();
-  node_["initial_sp"]                  = dos_header.initial_sp();
-  node_["checksum"]                    = dos_header.checksum();
-  node_["initial_ip"]                  = dos_header.initial_ip();
-  node_["initial_relative_cs"]         = dos_header.initial_relative_cs();
-  node_["addressof_relocation_table"]  = dos_header.addressof_relocation_table();
-  node_["overlay_number"]              = dos_header.overlay_number();
-  node_["reserved"]                    = dos_header.reserved();
-  node_["oem_id"]                      = dos_header.oem_id();
-  node_["oem_info"]                    = dos_header.oem_info();
-  node_["reserved2"]                   = dos_header.reserved2();
-  node_["addressof_new_exeheader"]     = dos_header.addressof_new_exeheader();
+  node_["magic"] = dos_header.magic();
+  node_["used_bytes_in_last_page"] = dos_header.used_bytes_in_last_page();
+  node_["file_size_in_pages"] = dos_header.file_size_in_pages();
+  node_["numberof_relocation"] = dos_header.numberof_relocation();
+  node_["header_size_in_paragraphs"] = dos_header.header_size_in_paragraphs();
+  node_["minimum_extra_paragraphs"] = dos_header.minimum_extra_paragraphs();
+  node_["maximum_extra_paragraphs"] = dos_header.maximum_extra_paragraphs();
+  node_["initial_relative_ss"] = dos_header.initial_relative_ss();
+  node_["initial_sp"] = dos_header.initial_sp();
+  node_["checksum"] = dos_header.checksum();
+  node_["initial_ip"] = dos_header.initial_ip();
+  node_["initial_relative_cs"] = dos_header.initial_relative_cs();
+  node_["addressof_relocation_table"] = dos_header.addressof_relocation_table();
+  node_["overlay_number"] = dos_header.overlay_number();
+  node_["reserved"] = dos_header.reserved();
+  node_["oem_id"] = dos_header.oem_id();
+  node_["oem_info"] = dos_header.oem_info();
+  node_["reserved2"] = dos_header.reserved2();
+  node_["addressof_new_exeheader"] = dos_header.addressof_new_exeheader();
 }

 void JsonVisitor::visit(const RichHeader& rich_header) {
@@ -218,68 +251,70 @@ void JsonVisitor::visit(const RichHeader& rich_header) {
     entries.emplace_back(visitor.get());
   }

-  node_["key"]     = rich_header.key();
+  node_["key"] = rich_header.key();
   node_["entries"] = entries;
 }

 void JsonVisitor::visit(const RichEntry& rich_entry) {

-  node_["id"]       = rich_entry.id();
+  node_["id"] = rich_entry.id();
   node_["build_id"] = rich_entry.build_id();
-  node_["count"]    = rich_entry.count();
+  node_["count"] = rich_entry.count();
 }

 void JsonVisitor::visit(const Header& header) {

-  node_["signature"]              = header.signature();
-  node_["machine"]                = to_string(header.machine());
-  node_["numberof_sections"]      = header.numberof_sections();
-  node_["time_date_stamp"]        = header.time_date_stamp();
+  node_["signature"] = header.signature();
+  node_["machine"] = to_string(header.machine());
+  node_["numberof_sections"] = header.numberof_sections();
+  node_["time_date_stamp"] = header.time_date_stamp();
   node_["pointerto_symbol_table"] = header.pointerto_symbol_table();
-  node_["numberof_symbols"]       = header.numberof_symbols();
+  node_["numberof_symbols"] = header.numberof_symbols();
   node_["sizeof_optional_header"] = header.sizeof_optional_header();
-  node_["characteristics"]        = static_cast<size_t>(header.characteristics());
+  node_["characteristics"] = static_cast<size_t>(header.characteristics());
 }

 void JsonVisitor::visit(const OptionalHeader& optional_header) {

-  node_["magic"]                          = to_string(optional_header.magic());
-  node_["major_linker_version"]           = optional_header.major_linker_version();
-  node_["minor_linker_version"]           = optional_header.minor_linker_version();
-  node_["sizeof_code"]                    = optional_header.sizeof_code();
-  node_["sizeof_initialized_data"]        = optional_header.sizeof_initialized_data();
-  node_["sizeof_uninitialized_data"]      = optional_header.sizeof_uninitialized_data();
-  node_["addressof_entrypoint"]           = optional_header.addressof_entrypoint();
-  node_["baseof_code"]                    = optional_header.baseof_code();
+  node_["magic"] = to_string(optional_header.magic());
+  node_["major_linker_version"] = optional_header.major_linker_version();
+  node_["minor_linker_version"] = optional_header.minor_linker_version();
+  node_["sizeof_code"] = optional_header.sizeof_code();
+  node_["sizeof_initialized_data"] = optional_header.sizeof_initialized_data();
+  node_["sizeof_uninitialized_data"] = optional_header.sizeof_uninitialized_data();
+  node_["addressof_entrypoint"] = optional_header.addressof_entrypoint();
+  node_["baseof_code"] = optional_header.baseof_code();
   if (optional_header.magic() == PE_TYPE::PE32) {
-    node_["baseof_data"]     = optional_header.baseof_data();
-  }
-  node_["imagebase"]                      = optional_header.imagebase();
-  node_["section_alignment"]              = optional_header.section_alignment();
-  node_["file_alignment"]                 = optional_header.file_alignment();
-  node_["major_operating_system_version"] = optional_header.major_operating_system_version();
-  node_["minor_operating_system_version"] = optional_header.minor_operating_system_version();
-  node_["major_image_version"]            = optional_header.major_image_version();
-  node_["minor_image_version"]            = optional_header.minor_image_version();
-  node_["major_subsystem_version"]        = optional_header.major_subsystem_version();
-  node_["minor_subsystem_version"]        = optional_header.minor_subsystem_version();
-  node_["win32_version_value"]            = optional_header.win32_version_value();
-  node_["sizeof_image"]                   = optional_header.sizeof_image();
-  node_["sizeof_headers"]                 = optional_header.sizeof_headers();
-  node_["checksum"]                       = optional_header.checksum();
-  node_["subsystem"]                      = to_string(optional_header.subsystem());
-  node_["dll_characteristics"]            = optional_header.dll_characteristics();
-  node_["sizeof_stack_reserve"]           = optional_header.sizeof_stack_reserve();
-  node_["sizeof_stack_commit"]            = optional_header.sizeof_stack_commit();
-  node_["sizeof_heap_reserve"]            = optional_header.sizeof_heap_reserve();
-  node_["sizeof_heap_commit"]             = optional_header.sizeof_heap_commit();
-  node_["loader_flags"]                   = optional_header.loader_flags();
-  node_["numberof_rva_and_size"]          = optional_header.numberof_rva_and_size();
+    node_["baseof_data"] = optional_header.baseof_data();
+  }
+  node_["imagebase"] = optional_header.imagebase();
+  node_["section_alignment"] = optional_header.section_alignment();
+  node_["file_alignment"] = optional_header.file_alignment();
+  node_["major_operating_system_version"] =
+      optional_header.major_operating_system_version();
+  node_["minor_operating_system_version"] =
+      optional_header.minor_operating_system_version();
+  node_["major_image_version"] = optional_header.major_image_version();
+  node_["minor_image_version"] = optional_header.minor_image_version();
+  node_["major_subsystem_version"] = optional_header.major_subsystem_version();
+  node_["minor_subsystem_version"] = optional_header.minor_subsystem_version();
+  node_["win32_version_value"] = optional_header.win32_version_value();
+  node_["sizeof_image"] = optional_header.sizeof_image();
+  node_["sizeof_headers"] = optional_header.sizeof_headers();
+  node_["checksum"] = optional_header.checksum();
+  node_["subsystem"] = to_string(optional_header.subsystem());
+  node_["dll_characteristics"] = optional_header.dll_characteristics();
+  node_["sizeof_stack_reserve"] = optional_header.sizeof_stack_reserve();
+  node_["sizeof_stack_commit"] = optional_header.sizeof_stack_commit();
+  node_["sizeof_heap_reserve"] = optional_header.sizeof_heap_reserve();
+  node_["sizeof_heap_commit"] = optional_header.sizeof_heap_commit();
+  node_["loader_flags"] = optional_header.loader_flags();
+  node_["numberof_rva_and_size"] = optional_header.numberof_rva_and_size();
 }

 void JsonVisitor::visit(const DataDirectory& data_directory) {

-  node_["RVA"]  = data_directory.RVA();
+  node_["RVA"] = data_directory.RVA();
   node_["size"] = data_directory.size();
   node_["type"] = to_string(data_directory.type());
   if (data_directory.has_section()) {
@@ -293,13 +328,13 @@ void JsonVisitor::visit(const Section& section) {
     characteristics.emplace_back(to_string(c));
   }

-  node_["name"]                   = escape_non_ascii(section.name());
-  node_["pointerto_relocation"]   = section.pointerto_relocation();
+  node_["name"] = escape_non_ascii(section.name());
+  node_["pointerto_relocation"] = section.pointerto_relocation();
   node_["pointerto_line_numbers"] = section.pointerto_line_numbers();
-  node_["numberof_relocations"]   = section.numberof_relocations();
-  node_["numberof_line_numbers"]  = section.numberof_line_numbers();
-  node_["entropy"]                = section.entropy();
-  node_["characteristics"]        = characteristics;
+  node_["numberof_relocations"] = section.numberof_relocations();
+  node_["numberof_line_numbers"] = section.numberof_line_numbers();
+  node_["entropy"] = section.entropy();
+  node_["characteristics"] = characteristics;
 }

 void JsonVisitor::visit(const Relocation& relocation) {
@@ -312,15 +347,15 @@ void JsonVisitor::visit(const Relocation& relocation) {
   }

   node_["virtual_address"] = relocation.virtual_address();
-  node_["block_size"]      = relocation.block_size();
-  node_["entries"]         = entries;
+  node_["block_size"] = relocation.block_size();
+  node_["entries"] = entries;
 }

 void JsonVisitor::visit(const RelocationEntry& relocation_entry) {

-  node_["data"]     = relocation_entry.data();
+  node_["data"] = relocation_entry.data();
   node_["position"] = relocation_entry.position();
-  node_["type"]     = to_string(relocation_entry.type());
+  node_["type"] = to_string(relocation_entry.type());
 }

 void JsonVisitor::visit(const Export& export_) {
@@ -331,39 +366,42 @@ void JsonVisitor::visit(const Export& export_) {
     visitor(entry);
     entries.emplace_back(visitor.get());
   }
-  node_["export_flags"]  = export_.export_flags();
-  node_["timestamp"]     = export_.timestamp();
+  node_["export_flags"] = export_.export_flags();
+  node_["timestamp"] = export_.timestamp();
   node_["major_version"] = export_.major_version();
   node_["minor_version"] = export_.minor_version();
-  node_["ordinal_base"]  = export_.ordinal_base();
-  node_["name"]          = escape_non_ascii(export_.name());
-  node_["entries"]       = entries;
+  node_["ordinal_base"] = export_.ordinal_base();
+  node_["name"] = escape_non_ascii(export_.name());
+  node_["entries"] = entries;
 }

 void JsonVisitor::visit(const ExportEntry& export_entry) {

-  node_["name"]      = escape_non_ascii(export_entry.name());
-  node_["ordinal"]   = export_entry.ordinal();
-  node_["address"]   = export_entry.address();
+  node_["name"] = escape_non_ascii(export_entry.name());
+  node_["ordinal"] = export_entry.ordinal();
+  node_["address"] = export_entry.address();
   node_["is_extern"] = export_entry.is_extern();

   if (export_entry.is_forwarded()) {
-    const ExportEntry::forward_information_t& fwd_info = export_entry.forward_information();
+    const ExportEntry::forward_information_t& fwd_info =
+        export_entry.forward_information();
     node_["forward_information"] = {
-      {"library",  fwd_info.library},
-      {"function", fwd_info.function},
+        {"library", fwd_info.library},
+        {"function", fwd_info.function},
     };
   }
 }

 void JsonVisitor::visit(const TLS& tls) {

-  node_["callbacks"]           = tls.callbacks();
-  node_["addressof_raw_data"]  = std::vector<uint64_t>{tls.addressof_raw_data().first, tls.addressof_raw_data().second};
-  node_["addressof_index"]     = tls.addressof_index();
+  node_["callbacks"] = tls.callbacks();
+  node_["addressof_raw_data"] =
+      std::vector<uint64_t>{tls.addressof_raw_data().first,
+                            tls.addressof_raw_data().second};
+  node_["addressof_index"] = tls.addressof_index();
   node_["addressof_callbacks"] = tls.addressof_callbacks();
-  node_["sizeof_zero_fill"]    = tls.sizeof_zero_fill();
-  node_["characteristics"]     = tls.characteristics();
+  node_["sizeof_zero_fill"] = tls.sizeof_zero_fill();
+  node_["characteristics"] = tls.characteristics();

   if (tls.has_data_directory()) {
     node_["data_directory"] = to_string(tls.directory()->type());
@@ -375,12 +413,12 @@ void JsonVisitor::visit(const TLS& tls) {
 }

 void JsonVisitor::visit(const Debug& debug) {
-  node_["characteristics"]   = debug.characteristics();
-  node_["timestamp"]         = debug.timestamp();
-  node_["major_version"]     = debug.major_version();
-  node_["minor_version"]     = debug.minor_version();
-  node_["type"]              = to_string(debug.type());
-  node_["sizeof_data"]       = debug.sizeof_data();
+  node_["characteristics"] = debug.characteristics();
+  node_["timestamp"] = debug.timestamp();
+  node_["major_version"] = debug.major_version();
+  node_["minor_version"] = debug.minor_version();
+  node_["type"] = to_string(debug.type());
+  node_["sizeof_data"] = debug.sizeof_data();
   node_["addressof_rawdata"] = debug.addressof_rawdata();
   node_["pointerto_rawdata"] = debug.pointerto_rawdata();
 }
@@ -393,8 +431,8 @@ void JsonVisitor::visit(const CodeView& cv) {
 void JsonVisitor::visit(const CodeViewPDB& cvpdb) {
   visit(static_cast<const CodeView&>(cvpdb));
   node_["signature"] = cvpdb.signature();
-  node_["age"]       = cvpdb.age();
-  node_["filename"]  = escape_non_ascii(cvpdb.filename());
+  node_["age"] = cvpdb.age();
+  node_["filename"] = escape_non_ascii(cvpdb.filename());
 }

 void JsonVisitor::visit(const DelayImport& import) {
@@ -405,15 +443,15 @@ void JsonVisitor::visit(const DelayImport& import) {
     visitor(entry);
     entries.emplace_back(visitor.get());
   }
-  node_["attribute"]   = import.attribute();
-  node_["name"]        = import.name();
-  node_["handle"]      = import.handle();
-  node_["iat"]         = import.iat();
+  node_["attribute"] = import.attribute();
+  node_["name"] = import.name();
+  node_["handle"] = import.handle();
+  node_["iat"] = import.iat();
   node_["names_table"] = import.names_table();
-  node_["biat"]        = import.biat();
-  node_["uiat"]        = import.uiat();
-  node_["timestamp"]   = import.timestamp();
-  node_["entries"]     = entries;
+  node_["biat"] = import.biat();
+  node_["uiat"] = import.uiat();
+  node_["timestamp"] = import.timestamp();
+  node_["entries"] = entries;
 }

 void JsonVisitor::visit(const DelayImportEntry& import_entry) {
@@ -423,10 +461,10 @@ void JsonVisitor::visit(const DelayImportEntry& import_entry) {
     node_["name"] = import_entry.name();
   }

-  node_["value"]       = import_entry.value();
+  node_["value"] = import_entry.value();
   node_["iat_address"] = import_entry.iat_value();
-  node_["data"]        = import_entry.data();
-  node_["hint"]        = import_entry.hint();
+  node_["data"] = import_entry.data();
+  node_["hint"] = import_entry.hint();
 }


@@ -439,13 +477,12 @@ void JsonVisitor::visit(const Import& import) {
     entries.emplace_back(visitor.get());
   }

-  node_["forwarder_chain"]          = import.forwarder_chain();
-  node_["timedatestamp"]            = import.timedatestamp();
+  node_["forwarder_chain"] = import.forwarder_chain();
+  node_["timedatestamp"] = import.timedatestamp();
   node_["import_address_table_rva"] = import.import_address_table_rva();
-  node_["import_lookup_table_rva"]  = import.import_lookup_table_rva();
-  node_["name"]                     = import.name();
-  node_["entries"]                  = entries;
-
+  node_["import_lookup_table_rva"] = import.import_lookup_table_rva();
+  node_["name"] = import.name();
+  node_["entries"] = entries;
 }

 void JsonVisitor::visit(const ImportEntry& import_entry) {
@@ -457,17 +494,16 @@ void JsonVisitor::visit(const ImportEntry& import_entry) {
   }

   node_["iat_address"] = import_entry.iat_address();
-  node_["data"]        = import_entry.data();
-  node_["hint"]        = import_entry.hint();
+  node_["data"] = import_entry.data();
+  node_["hint"] = import_entry.hint();
 }

 void JsonVisitor::visit(const ResourceData& resource_data) {

   node_["code_page"] = resource_data.code_page();
-  node_["reserved"]  = resource_data.reserved();
-  node_["offset"]    = resource_data.offset();
-  node_["hash"]      = Hash::hash(resource_data.content());
-
+  node_["reserved"] = resource_data.reserved();
+  node_["offset"] = resource_data.offset();
+  node_["hash"] = Hash::hash(resource_data.content());
 }

 void JsonVisitor::visit(const ResourceNode& resource_node) {
@@ -488,7 +524,6 @@ void JsonVisitor::visit(const ResourceNode& resource_node) {

     node_["childs"] = childs;
   }
-
 }

 void JsonVisitor::visit(const ResourceDirectory& resource_directory) {
@@ -499,12 +534,12 @@ void JsonVisitor::visit(const ResourceDirectory& resource_directory) {
     node_["name"] = u16tou8(resource_directory.name());
   }

-  node_["characteristics"]       = resource_directory.characteristics();
-  node_["time_date_stamp"]       = resource_directory.time_date_stamp();
-  node_["major_version"]         = resource_directory.major_version();
-  node_["minor_version"]         = resource_directory.minor_version();
+  node_["characteristics"] = resource_directory.characteristics();
+  node_["time_date_stamp"] = resource_directory.time_date_stamp();
+  node_["major_version"] = resource_directory.major_version();
+  node_["minor_version"] = resource_directory.minor_version();
   node_["numberof_name_entries"] = resource_directory.numberof_name_entries();
-  node_["numberof_id_entries"]   = resource_directory.numberof_id_entries();
+  node_["numberof_id_entries"] = resource_directory.numberof_id_entries();

   if (!resource_directory.childs().empty()) {
     std::vector<json> childs;
@@ -522,7 +557,7 @@ void JsonVisitor::visit(const ResourceDirectory& resource_directory) {
 void JsonVisitor::visit(const ResourcesManager& resources_manager) {

   if (resources_manager.has_manifest()) {
-    node_["manifest"] = escape_non_ascii(resources_manager.manifest()) ;
+    node_["manifest"] = escape_non_ascii(resources_manager.manifest());
   }

   if (resources_manager.has_html()) {
@@ -569,8 +604,10 @@ void JsonVisitor::visit(const ResourcesManager& resources_manager) {

   if (resources_manager.has_string_table()) {
     std::vector<json> string_table_json;
-    for (const ResourcesManager::string_entry_t& entry : resources_manager.string_table()) {
-      string_table_json.push_back(std::make_pair(entry.string_u8(), entry.id));
+    for (const ResourcesManager::string_entry_t& entry :
+         resources_manager.string_table())
+    {
+      string_table_json.emplace_back(std::make_pair(entry.string_u8(), entry.id));
     }
     node_["string_table"] = string_table_json;
   }
@@ -601,13 +638,13 @@ void JsonVisitor::visit(const ResourceStringFileInfo& info) {

 void JsonVisitor::visit(const ResourceVarFileInfo& info) {
   node_["type"] = info.type();
-  node_["key"]  = info.key_u8();
+  node_["key"] = info.key_u8();
   std::vector<json> j_vars;
   for (const ResourceVar& var : info.vars()) {
-    j_vars.push_back(std::unordered_map<std::string, json> {
-      std::make_pair("key", json(var.key_u8())),
-      std::make_pair("type", json(var.type())),
-      std::make_pair("values", json(var.values())),
+    j_vars.emplace_back(std::unordered_map<std::string, json>{
+        std::make_pair("key", json(var.key_u8())),
+        std::make_pair("type", json(var.type())),
+        std::make_pair("values", json(var.values())),
     });
   }
   node_["values"] = std::move(j_vars);
@@ -618,20 +655,20 @@ void JsonVisitor::visit(const ResourceVersion& version) {
   node_["key"] = version.key_u8();
   {
     const ResourceVersion::fixed_file_info_t& info = version.file_info();
-    node_["file_info"] = std::unordered_map<std::string, json> {
-      std::make_pair("signature", info.signature),
-      std::make_pair("struct_version", info.struct_version),
-      std::make_pair("file_version_ms", info.file_version_ms),
-      std::make_pair("file_version_ls", info.file_version_ls),
-      std::make_pair("product_version_ms", info.product_version_ms),
-      std::make_pair("product_version_ls", info.product_version_ls),
-      std::make_pair("file_flags_mask", info.file_flags_mask),
-      std::make_pair("file_flags", info.file_flags),
-      std::make_pair("file_os", info.file_os),
-      std::make_pair("file_type", info.file_type),
-      std::make_pair("file_subtype", info.file_subtype),
-      std::make_pair("file_date_ms", info.file_date_ms),
-      std::make_pair("file_date_ls", info.file_date_ls),
+    node_["file_info"] = std::unordered_map<std::string, json>{
+        std::make_pair("signature", info.signature),
+        std::make_pair("struct_version", info.struct_version),
+        std::make_pair("file_version_ms", info.file_version_ms),
+        std::make_pair("file_version_ls", info.file_version_ls),
+        std::make_pair("product_version_ms", info.product_version_ms),
+        std::make_pair("product_version_ls", info.product_version_ls),
+        std::make_pair("file_flags_mask", info.file_flags_mask),
+        std::make_pair("file_flags", info.file_flags),
+        std::make_pair("file_os", info.file_os),
+        std::make_pair("file_type", info.file_type),
+        std::make_pair("file_subtype", info.file_subtype),
+        std::make_pair("file_date_ms", info.file_date_ms),
+        std::make_pair("file_date_ls", info.file_date_ls),
     };
   }

@@ -649,15 +686,15 @@ void JsonVisitor::visit(const ResourceVersion& version) {
 }

 void JsonVisitor::visit(const ResourceIcon& resource_icon) {
-  node_["id"]          = resource_icon.id();
-  node_["lang"]        = resource_icon.lang();
-  node_["sublang"]     = resource_icon.sublang();
-  node_["width"]       = resource_icon.width();
-  node_["height"]      = resource_icon.height();
+  node_["id"] = resource_icon.id();
+  node_["lang"] = resource_icon.lang();
+  node_["sublang"] = resource_icon.sublang();
+  node_["width"] = resource_icon.width();
+  node_["height"] = resource_icon.height();
   node_["color_count"] = resource_icon.color_count();
-  node_["reserved"]    = resource_icon.reserved();
-  node_["planes"]      = resource_icon.planes();
-  node_["bit_count"]   = resource_icon.bit_count();
+  node_["reserved"] = resource_icon.reserved();
+  node_["planes"] = resource_icon.planes();
+  node_["bit_count"] = resource_icon.bit_count();
 }

 void JsonVisitor::visit(const ResourceStringTable& table) {
@@ -666,7 +703,7 @@ void JsonVisitor::visit(const ResourceStringTable& table) {
   node_["type"] = table.type();

   for (const ResourceStringTable::entry_t& entry : table.entries()) {
-    values.push_back(std::make_pair(entry.key_u8(), entry.value_u8()));
+    values.emplace_back(std::make_pair(entry.key_u8(), entry.value_u8()));
   }

   node_["values"] = std::move(values);
@@ -678,9 +715,9 @@ void JsonVisitor::visit(const ResourceAccelerator& acc) {
   for (const ResourceAccelerator::FLAGS c : acc.flags_list()) {
     flags.emplace_back(to_string(c));
   }
-  node_["flags"]   = flags;
-  node_["ansi"]    = acc.ansi_str();
-  node_["id"]      = acc.id();
+  node_["flags"] = flags;
+  node_["ansi"] = acc.ansi_str();
+  node_["id"] = acc.id();
   node_["padding"] = acc.padding();
 }

@@ -704,21 +741,21 @@ void JsonVisitor::visit(const Signature& signature) {
   }

   node_["digest_algorithm"] = to_string(signature.digest_algorithm());
-  node_["version"]          = signature.version();
-  node_["content_info"]     = content_info_visitor.get();
-  node_["signer_info"]      = jsigners;
-  node_["certificates"]     = crts;
+  node_["version"] = signature.version();
+  node_["content_info"] = content_info_visitor.get();
+  node_["signer_info"] = jsigners;
+  node_["certificates"] = crts;
 }

 void JsonVisitor::visit(const x509& x509) {

-  node_["serial_number"]       = x509.serial_number();
-  node_["version"]             = x509.version();
-  node_["issuer"]              = x509.issuer();
-  node_["subject"]             = x509.subject();
+  node_["serial_number"] = x509.serial_number();
+  node_["version"] = x509.version();
+  node_["issuer"] = x509.issuer();
+  node_["subject"] = x509.subject();
   node_["signature_algorithm"] = x509.signature_algorithm();
-  node_["valid_from"]          = x509.valid_from();
-  node_["valid_to"]            = x509.valid_to();
+  node_["valid_from"] = x509.valid_from();
+  node_["valid_to"] = x509.valid_to();
 }

 void JsonVisitor::visit(const SignerInfo& signerinfo) {
@@ -737,13 +774,13 @@ void JsonVisitor::visit(const SignerInfo& signerinfo) {
     auth_attrs.emplace_back(visitor.get());
   }

-  node_["version"]                    = signerinfo.version();
-  node_["digest_algorithm"]           = to_string(signerinfo.digest_algorithm());
-  node_["encryption_algorithm"]       = to_string(signerinfo.encryption_algorithm());
-  node_["encrypted_digest"]           = signerinfo.encrypted_digest();
-  node_["issuer"]                     = signerinfo.issuer();
-  node_["serial_number"]              = signerinfo.serial_number();
-  node_["authenticated_attributes"]   = auth_attrs;
+  node_["version"] = signerinfo.version();
+  node_["digest_algorithm"] = to_string(signerinfo.digest_algorithm());
+  node_["encryption_algorithm"] = to_string(signerinfo.encryption_algorithm());
+  node_["encrypted_digest"] = signerinfo.encrypted_digest();
+  node_["issuer"] = signerinfo.issuer();
+  node_["serial_number"] = signerinfo.serial_number();
+  node_["authenticated_attributes"] = auth_attrs;
   node_["unauthenticated_attributes"] = unauth_attrs;
 }

@@ -757,10 +794,10 @@ void JsonVisitor::visit(const GenericContent& content) {
 }

 void JsonVisitor::visit(const SpcIndirectData& content) {
-  node_["file"]             = content.file();
-  node_["digest"]           = content.digest();
+  node_["file"] = content.file();
+  node_["digest"] = content.digest();
   node_["digest_algorithm"] = to_string(content.digest_algorithm());
-  node_["content_type"]     = content.content_type();
+  node_["content_type"] = content.content_type();
 }

 void JsonVisitor::visit(const Attribute& auth) {
@@ -832,7 +869,7 @@ void JsonVisitor::visit(const PKCS9SigningTime& attr) {
 void JsonVisitor::visit(const SpcSpOpusInfo& attr) {

   visit(*attr.as<Attribute>());
-  node_["more_info"]    = attr.more_info();
+  node_["more_info"] = attr.more_info();
   node_["program_name"] = attr.program_name();
 }

@@ -850,31 +887,32 @@ void JsonVisitor::visit(const SigningCertificateV2& attr) {

 void JsonVisitor::visit(const CodeIntegrity& code_integrity) {

-  node_["flags"]          = code_integrity.flags();
-  node_["catalog"]        = code_integrity.catalog();
+  node_["flags"] = code_integrity.flags();
+  node_["catalog"] = code_integrity.catalog();
   node_["catalog_offset"] = code_integrity.catalog_offset();
-  node_["reserved"]       = code_integrity.reserved();
+  node_["reserved"] = code_integrity.reserved();
 }

 void JsonVisitor::visit(const LoadConfiguration& config) {
-  node_["characteristics"]                  = config.characteristics();
-  node_["timedatestamp"]                    = config.timedatestamp();
-  node_["major_version"]                    = config.major_version();
-  node_["minor_version"]                    = config.minor_version();
-  node_["global_flags_clear"]               = config.global_flags_clear();
-  node_["global_flags_set"]                 = config.global_flags_set();
-  node_["critical_section_default_timeout"] = config.critical_section_default_timeout();
-  node_["decommit_free_block_threshold"]    = config.decommit_free_block_threshold();
-  node_["decommit_total_free_threshold"]    = config.decommit_total_free_threshold();
-  node_["lock_prefix_table"]                = config.lock_prefix_table();
-  node_["maximum_allocation_size"]          = config.maximum_allocation_size();
-  node_["virtual_memory_threshold"]         = config.virtual_memory_threshold();
-  node_["process_affinity_mask"]            = config.process_affinity_mask();
-  node_["process_heap_flags"]               = config.process_heap_flags();
-  node_["csd_version"]                      = config.csd_version();
-  node_["reserved1"]                        = config.reserved1();
-  node_["editlist"]                         = config.editlist();
-  node_["security_cookie"]                  = config.security_cookie();
+  node_["characteristics"] = config.characteristics();
+  node_["timedatestamp"] = config.timedatestamp();
+  node_["major_version"] = config.major_version();
+  node_["minor_version"] = config.minor_version();
+  node_["global_flags_clear"] = config.global_flags_clear();
+  node_["global_flags_set"] = config.global_flags_set();
+  node_["critical_section_default_timeout"] =
+      config.critical_section_default_timeout();
+  node_["decommit_free_block_threshold"] = config.decommit_free_block_threshold();
+  node_["decommit_total_free_threshold"] = config.decommit_total_free_threshold();
+  node_["lock_prefix_table"] = config.lock_prefix_table();
+  node_["maximum_allocation_size"] = config.maximum_allocation_size();
+  node_["virtual_memory_threshold"] = config.virtual_memory_threshold();
+  node_["process_affinity_mask"] = config.process_affinity_mask();
+  node_["process_heap_flags"] = config.process_heap_flags();
+  node_["csd_version"] = config.csd_version();
+  node_["reserved1"] = config.reserved1();
+  node_["editlist"] = config.editlist();
+  node_["security_cookie"] = config.security_cookie();
 }

 void JsonVisitor::visit(const Pogo& pogo) {
@@ -891,9 +929,9 @@ void JsonVisitor::visit(const Pogo& pogo) {
 }

 void JsonVisitor::visit(const PogoEntry& entry) {
-  node_["name"]      = entry.name();
+  node_["name"] = entry.name();
   node_["start_rva"] = entry.start_rva();
-  node_["size"]      = entry.size();
+  node_["size"] = entry.size();
 }

 void JsonVisitor::visit(const Repro& repro) {
@@ -909,12 +947,12 @@ void JsonVisitor::visit(const ResourceDialogRegular& dialog) {
   node_["cx"] = dialog.cx();
   node_["cy"] = dialog.cy();

-  if (const ResourceDialogRegular::font_t& font  = dialog.font()) {
+  if (const ResourceDialogRegular::font_t& font = dialog.font()) {
     node_["font"]["point_size"] = font.point_size;
     node_["font"]["name"] = u16tou8(font.name);
   }

-  if (const ResourceDialog::ordinal_or_str_t& menu  = dialog.menu()) {
+  if (const ResourceDialog::ordinal_or_str_t& menu = dialog.menu()) {
     node_["menu"] = menu.to_string();
   }
   std::vector<json> items;
@@ -939,12 +977,12 @@ void JsonVisitor::visit(const ResourceDialogExtended& dialog) {
   node_["cx"] = dialog.cx();
   node_["cy"] = dialog.cy();

-  if (const ResourceDialogExtended::font_t& font  = dialog.font()) {
+  if (const ResourceDialogExtended::font_t& font = dialog.font()) {
     node_["font"]["point_size"] = font.point_size;
     node_["font"]["name"] = u16tou8(font.typeface);
   }

-  if (const ResourceDialog::ordinal_or_str_t& menu  = dialog.menu()) {
+  if (const ResourceDialog::ordinal_or_str_t& menu = dialog.menu()) {
     node_["menu"] = menu.to_string();
   }
   std::vector<json> items;
@@ -970,6 +1008,4 @@ void JsonVisitor::visit(const LIEF::Section& section) {
   visit(static_cast<const LIEF::PE::Section&>(section));
 }

-} // namespace PE
-} // namespace LIEF
-
+} // namespace LIEF::PE
diff --git a/deps/LIEF/src/PE/json_api.cpp b/deps/LIEF/src/PE/json_api.cpp
index ce94cb5bb22..a6e203d5db4 100644
--- a/deps/LIEF/src/PE/json_api.cpp
+++ b/deps/LIEF/src/PE/json_api.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -13,18 +13,22 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-#include "logging.hpp"

 #include "LIEF/config.h"

 #include "LIEF/PE/json.hpp"

 #ifdef LIEF_JSON_SUPPORT
-#include "PE/json_internal.hpp"
+  #include "PE/json_internal.hpp"
+#else
+  #include "logging.hpp"
 #endif

 namespace LIEF {
-namespace PE {
+class Object;
+}
+
+namespace LIEF::PE {

 std::string to_json([[maybe_unused]] const Object& v) {
 #ifdef LIEF_JSON_SUPPORT
@@ -38,6 +42,4 @@ std::string to_json([[maybe_unused]] const Object& v) {
 }


-} // namespace PE
-} // namespace LIEF
-
+} // namespace LIEF::PE
diff --git a/deps/LIEF/src/PE/json_internal.hpp b/deps/LIEF/src/PE/json_internal.hpp
index a0a96825a4d..33eefe92732 100644
--- a/deps/LIEF/src/PE/json_internal.hpp
+++ b/deps/LIEF/src/PE/json_internal.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -16,7 +16,6 @@
 #ifndef LIEF_PE_JSON_INTERNAL_H
 #define LIEF_PE_JSON_INTERNAL_H

-#include "LIEF/visibility.h"
 #include "visitors/json.hpp"

 namespace LIEF {
@@ -88,66 +87,66 @@ class JsonVisitor : public LIEF::JsonVisitor {
   using LIEF::JsonVisitor::JsonVisitor;

   public:
-  void visit(const Binary& Binary)                        override;
-  void visit(const DosHeader& dos_header)                 override;
-  void visit(const RichHeader& rich_header)               override;
-  void visit(const RichEntry& rich_entry)                 override;
-  void visit(const Header& header)                        override;
-  void visit(const OptionalHeader& optional_header)       override;
-  void visit(const DataDirectory& data_directory)         override;
-  void visit(const Section& section)                      override;
-  void visit(const Relocation& relocation)                override;
-  void visit(const RelocationEntry& relocation_entry)     override;
-  void visit(const Export& export_)                       override;
-  void visit(const ExportEntry& export_entry)             override;
-  void visit(const TLS& tls)                              override;
-  void visit(const Debug& debug)                          override;
-  void visit(const CodeView& dv)                          override;
-  void visit(const CodeViewPDB& cvpdb)                    override;
-  void visit(const Import& import)                        override;
-  void visit(const ImportEntry& import_entry)             override;
-  void visit(const DelayImport& import)                   override;
-  void visit(const DelayImportEntry& import_entry)        override;
-  void visit(const ResourceNode& resource_node)           override;
-  void visit(const ResourceData& resource_data)           override;
+  void visit(const Binary& Binary) override;
+  void visit(const DosHeader& dos_header) override;
+  void visit(const RichHeader& rich_header) override;
+  void visit(const RichEntry& rich_entry) override;
+  void visit(const Header& header) override;
+  void visit(const OptionalHeader& optional_header) override;
+  void visit(const DataDirectory& data_directory) override;
+  void visit(const Section& section) override;
+  void visit(const Relocation& relocation) override;
+  void visit(const RelocationEntry& relocation_entry) override;
+  void visit(const Export& export_) override;
+  void visit(const ExportEntry& export_entry) override;
+  void visit(const TLS& tls) override;
+  void visit(const Debug& debug) override;
+  void visit(const CodeView& dv) override;
+  void visit(const CodeViewPDB& cvpdb) override;
+  void visit(const Import& import) override;
+  void visit(const ImportEntry& import_entry) override;
+  void visit(const DelayImport& import) override;
+  void visit(const DelayImportEntry& import_entry) override;
+  void visit(const ResourceNode& resource_node) override;
+  void visit(const ResourceData& resource_data) override;
   void visit(const ResourceDirectory& resource_directory) override;
-  void visit(const ResourcesManager& resources_manager)   override;
-  void visit(const ResourceVersion& resource_version)     override;
-  void visit(const ResourceStringFileInfo& resource_sfi)  override;
-  void visit(const ResourceVarFileInfo& resource_vfi)     override;
-  void visit(const ResourceStringTable& resource_st)      override;
-  void visit(const ResourceAccelerator& resource_acc)     override;
-  void visit(const ResourceIcon& resource_icon)           override;
-  void visit(const ResourceDialogExtended& dialog)        override;
-  void visit(const ResourceDialogRegular& dialog)         override;
-  void visit(const Signature& signature)                  override;
-  void visit(const x509& x509)                            override;
-  void visit(const SignerInfo& signerinfo)                override;
-  void visit(const ContentInfo& contentinfo)              override;
-  void visit(const GenericContent& content)               override;
-  void visit(const SpcIndirectData& content)              override;
-  void visit(const Attribute& attr)                       override;
-  void visit(const ContentType& attr)                     override;
-  void visit(const GenericType& attr)                     override;
-  void visit(const MsCounterSign& attr)                   override;
-  void visit(const MsSpcNestedSignature& attr)            override;
-  void visit(const MsSpcStatementType& attr)              override;
-  void visit(const MsManifestBinaryID& attr)              override;
-  void visit(const PKCS9AtSequenceNumber& attr)           override;
-  void visit(const PKCS9CounterSignature& attr)           override;
-  void visit(const PKCS9MessageDigest& attr)              override;
-  void visit(const PKCS9SigningTime& attr)                override;
-  void visit(const SpcSpOpusInfo& attr)                   override;
-  void visit(const SpcRelaxedPeMarkerCheck& attr)         override;
-  void visit(const SigningCertificateV2& attr)            override;
-  void visit(const CodeIntegrity& code_integrity)         override;
-  void visit(const LoadConfiguration& config)             override;
+  void visit(const ResourcesManager& resources_manager) override;
+  void visit(const ResourceVersion& resource_version) override;
+  void visit(const ResourceStringFileInfo& resource_sfi) override;
+  void visit(const ResourceVarFileInfo& resource_vfi) override;
+  void visit(const ResourceStringTable& resource_st) override;
+  void visit(const ResourceAccelerator& resource_acc) override;
+  void visit(const ResourceIcon& resource_icon) override;
+  void visit(const ResourceDialogExtended& dialog) override;
+  void visit(const ResourceDialogRegular& dialog) override;
+  void visit(const Signature& signature) override;
+  void visit(const x509& x509) override;
+  void visit(const SignerInfo& signerinfo) override;
+  void visit(const ContentInfo& contentinfo) override;
+  void visit(const GenericContent& content) override;
+  void visit(const SpcIndirectData& content) override;
+  void visit(const Attribute& attr) override;
+  void visit(const ContentType& attr) override;
+  void visit(const GenericType& attr) override;
+  void visit(const MsCounterSign& attr) override;
+  void visit(const MsSpcNestedSignature& attr) override;
+  void visit(const MsSpcStatementType& attr) override;
+  void visit(const MsManifestBinaryID& attr) override;
+  void visit(const PKCS9AtSequenceNumber& attr) override;
+  void visit(const PKCS9CounterSignature& attr) override;
+  void visit(const PKCS9MessageDigest& attr) override;
+  void visit(const PKCS9SigningTime& attr) override;
+  void visit(const SpcSpOpusInfo& attr) override;
+  void visit(const SpcRelaxedPeMarkerCheck& attr) override;
+  void visit(const SigningCertificateV2& attr) override;
+  void visit(const CodeIntegrity& code_integrity) override;
+  void visit(const LoadConfiguration& config) override;

-  void visit(const Pogo& pogo)        override;
-  void visit(const PogoEntry& entry)  override;
-  void visit(const Repro& entry)      override;
+  void visit(const Pogo& pogo) override;
+  void visit(const PogoEntry& entry) override;
+  void visit(const Repro& entry) override;

-  void visit(const LIEF::Binary& binary)   override;
+  void visit(const LIEF::Binary& binary) override;
   void visit(const LIEF::Section& section) override;
 };

diff --git a/deps/LIEF/src/PE/layout_check.cpp b/deps/LIEF/src/PE/layout_check.cpp
index 6d0b526c265..b7b85721538 100644
--- a/deps/LIEF/src/PE/layout_check.cpp
+++ b/deps/LIEF/src/PE/layout_check.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2023 R. Thomas
- * Copyright 2017 - 2023 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -17,7 +17,7 @@
 #include "LIEF/PE/Section.hpp"
 #include "LIEF/PE/Relocation.hpp"
 #include "LIEF/PE/RelocationEntry.hpp"
-#include "LIEF/PE/LoadConfigurations.hpp"
+#include "LIEF/PE/LoadConfigurations/LoadConfiguration.hpp"
 #include "LIEF/PE/TLS.hpp"
 #include "LIEF/utils.hpp"
 #include "LIEF/PE/utils.hpp"
@@ -26,8 +26,10 @@

 #include <spdlog/fmt/fmt.h>

-namespace LIEF {
-namespace PE {
+#include <cstddef>
+
+
+namespace LIEF::PE {

 class LayoutChecker {
   public:
@@ -42,8 +44,9 @@ class LayoutChecker {
     filesz(bin.original_size()),
     section_alignment(bin.optional_header().section_alignment()),
     file_alignment(bin.optional_header().file_alignment()),
-    sizeof_headers(bin.optional_header().sizeof_headers())
-  {}
+    sizeof_headers(bin.optional_header().sizeof_headers()),
+    vaddr_start(bin.imagebase()),
+    vaddr_end(bin.imagebase() + bin.virtual_size()) {}

   bool check_dos_header();
   bool check_header();
@@ -53,6 +56,7 @@ class LayoutChecker {
   bool check_load_config();
   bool check_imports();
   bool check_tls();
+  bool check_relocations();

   bool is_legacy_arch() const {
     return arch == Header::MACHINE_TYPES::I386 ||
@@ -96,6 +100,10 @@ class LayoutChecker {
       return false;
     }

+    if (!check_relocations()) {
+      return false;
+    }
+
     return true;
   }

@@ -104,9 +112,9 @@ class LayoutChecker {
     return false;
   }

-  template <typename... Args>
-  bool error(const char *fmt, const Args &... args) {
-    error_msg = fmt::format(fmt, args...);
+  template<typename... Args>
+  bool error(const char* fmt, const Args&... args) {
+    error_msg = fmt::format(fmt::runtime(fmt), args...);
     return false;
   }

@@ -127,21 +135,34 @@ class LayoutChecker {
     return pe.optional_header().magic() == PE_TYPE::PE32;
   }

+  bool contains(uint64_t va) const {
+    if (va == 0) {
+      return true;
+    }
+    return vaddr_start <= va && va < vaddr_end;
+  }
+
+  bool contains(optional<uint64_t> va) const {
+    return contains(va.value_or(0));
+  }
+
   private:
   std::string error_msg;
   const Binary& pe;
   Header::MACHINE_TYPES arch;
   uint32_t e_lfanew = 0;
   uint64_t filesz = 0;
-  uint32_t section_alignment;
-  uint32_t file_alignment;
-  uint64_t sizeof_headers;
+  uint32_t section_alignment = 0;
+  uint32_t file_alignment = 0;
+  uint64_t sizeof_headers = 0;
+  uint64_t vaddr_start = 0;
+  uint64_t vaddr_end = 0;
 };


 bool LayoutChecker::check_dos_header() {
   const DosHeader& dos = pe.dos_header();
-  if (dos.magic() != /* MZ */0x5A4D) {
+  if (dos.magic() != /* MZ */ 0x5A4D) {
     return error("Invalid DOS Magic");
   }

@@ -165,8 +186,7 @@ bool LayoutChecker::check_dos_header() {

 bool LayoutChecker::check_header() {
   const Header& hdr = pe.header();
-  if (arch == Header::MACHINE_TYPES::UNKNOWN &&
-      hdr.sizeof_optional_header() == 0)
+  if (arch == Header::MACHINE_TYPES::UNKNOWN && hdr.sizeof_optional_header() == 0)
   {
     return error("Header error: invalid machine type and size of optional header");
   }
@@ -207,13 +227,15 @@ bool LayoutChecker::check_header() {
 bool LayoutChecker::check_opt_header() {
   const OptionalHeader& opt_hdr = pe.optional_header();
   if (is_legacy_arch()) {
-    if (!pe.header().has_characteristic(Header::CHARACTERISTICS::RELOCS_STRIPPED)) {
+    if (!pe.header().has_characteristic(Header::CHARACTERISTICS::RELOCS_STRIPPED))
+    {
       if (opt_hdr.has(OptionalHeader::DLL_CHARACTERISTICS::APPCONTAINER)) {
         return error("AppContainer with stripped relocations");
       }
     }
   } else {
-    if (!pe.header().has_characteristic(Header::CHARACTERISTICS::RELOCS_STRIPPED)) {
+    if (!pe.header().has_characteristic(Header::CHARACTERISTICS::RELOCS_STRIPPED))
+    {
       if (!opt_hdr.has(OptionalHeader::DLL_CHARACTERISTICS::DYNAMIC_BASE)) {
         return error("Missing DYNAMIC_BASE characteristic");
       }
@@ -249,15 +271,13 @@ bool LayoutChecker::check_opt_header() {
   }

   // This check is not accurate (c.f. PE64_x86-64_binary_winhello64-mingw.exe)
-  if (0) {
+  if (false) {
     if (opt_hdr.major_linker_version() < 3 && opt_hdr.major_linker_version() < 5) {
       return error("Bad linker version");
     }
   }

-  if ((file_alignment & 0x1ff) != 0 &&
-      file_alignment != section_alignment)
-  {
+  if ((file_alignment & 0x1ff) != 0 && file_alignment != section_alignment) {
     return error("Bad consistency between file/section alignment");
   }

@@ -284,8 +304,10 @@ bool LayoutChecker::check_sections() {

   const uint64_t sizeof_image = pe.optional_header().sizeof_image();
   const uint32_t file_alignment_mask = file_alignment - 1;
-  uint32_t nb_pages =  (sizeof_image >> 12) + ((sizeof_image & (DEFAULT_PAGE_SIZE - 1)) != 0);
-  uint32_t nb_sec_pages = align(sizeof_headers, section_alignment) / DEFAULT_PAGE_SIZE;
+  uint32_t nb_pages =
+      (sizeof_image >> 12) + ((sizeof_image & (DEFAULT_PAGE_SIZE - 1)) != 0);
+  uint32_t nb_sec_pages =
+      align(sizeof_headers, section_alignment) / DEFAULT_PAGE_SIZE;
   uint64_t next_va = 0;

   if (section_alignment >= DEFAULT_PAGE_SIZE) {
@@ -297,7 +319,7 @@ bool LayoutChecker::check_sections() {
       return error("Invalid number of pages");
     }

-    next_va += nb_sec_pages * DEFAULT_PAGE_SIZE;
+    next_va += static_cast<uint64_t>(nb_sec_pages * DEFAULT_PAGE_SIZE);
   } else {
     nb_sec_pages = align(sizeof_image, DEFAULT_PAGE_SIZE) / DEFAULT_PAGE_SIZE;
   }
@@ -307,10 +329,11 @@ bool LayoutChecker::check_sections() {
   for (size_t i = 0; i < sections.size(); ++i) {
     const Section& section = sections[i];

-    uint32_t offset = section.sizeof_raw_data() != 0 ? section.pointerto_raw_data() : 0;
+    uint32_t offset =
+        section.sizeof_raw_data() != 0 ? section.pointerto_raw_data() : 0;
     [[maybe_unused]] uint32_t end_offset = offset + section.sizeof_raw_data();
-    uint32_t vsize =  section.virtual_size() != 0 ? section.virtual_size() :
-                                                    section.sizeof_raw_data();
+    uint32_t vsize = section.virtual_size() != 0 ? section.virtual_size() :
+                                                   section.sizeof_raw_data();

     if (offset + section.size() < offset) {
       return error("Section overflow");
@@ -342,19 +365,23 @@ bool LayoutChecker::check_sections() {

       nb_pages -= nb_sec_pages;

-      if (((offset + section.sizeof_raw_data() + file_alignment_mask) & ~file_alignment_mask) < section.pointerto_raw_data()) {
+      if (((offset + section.sizeof_raw_data() + file_alignment_mask) &
+           ~file_alignment_mask) < section.pointerto_raw_data())
+      {
         return error("Invalid section raw size");
       }

       const bool is_last_section = i == (sections.size() - 1);

       if (is_last_section && section.sizeof_raw_data() != 0) {
-        if (section.pointerto_raw_data() + section.sizeof_raw_data() > pe.original_size()) {
+        if (section.pointerto_raw_data() + section.sizeof_raw_data() >
+            pe.original_size())
+        {
           return error("File is cut");
         }
       }

-      next_va += nb_sec_pages * DEFAULT_PAGE_SIZE;
+      next_va += static_cast<uint64_t>(nb_sec_pages * DEFAULT_PAGE_SIZE);
     }
   }

@@ -366,8 +393,8 @@ bool LayoutChecker::check_code_integrity() {
     return error("{}:{}", __FUNCTION__, __LINE__);
   }

-  const size_t sizeof_nt_headers = sizeof(details::pe_header) +
-                                   sizeof(details::pe32_optional_header);
+  const size_t sizeof_nt_headers =
+      sizeof(details::pe_header) + sizeof(details::pe32_optional_header);
   if ((e_lfanew + sizeof_nt_headers) > section_alignment) {
     return error("{}:{}", __FUNCTION__, __LINE__);
   }
@@ -394,11 +421,9 @@ bool LayoutChecker::check_code_integrity() {
     return error("{}:{}", __FUNCTION__, __LINE__);
   }

-  uint64_t end_of_raw =
-    e_lfanew +
-    sizeof(details::pe_header) +
-    pe.header().sizeof_optional_header() +
-    pe.sections().size() * sizeof(details::pe_section);
+  uint64_t end_of_raw = e_lfanew + sizeof(details::pe_header) +
+                        pe.header().sizeof_optional_header() +
+                        pe.sections().size() * sizeof(details::pe_section);

   if (end_of_raw >= DEFAULT_PAGE_SIZE) {
     return error("{}:{}", __FUNCTION__, __LINE__);
@@ -417,7 +442,9 @@ bool LayoutChecker::check_code_integrity() {
       return error("{}:{}", __FUNCTION__, __LINE__);
     }

-    if ((sec.pointerto_raw_data() + sec.sizeof_raw_data()) < sec.pointerto_raw_data()) {
+    if ((sec.pointerto_raw_data() + sec.sizeof_raw_data()) <
+        sec.pointerto_raw_data())
+    {
       return error("{}:{}", __FUNCTION__, __LINE__);
     }

@@ -425,12 +452,15 @@ bool LayoutChecker::check_code_integrity() {
       return error("{}:{}", __FUNCTION__, __LINE__);
     }

-    if ((sec.virtual_address() + sec.sizeof_raw_data() - 1) < sec.sizeof_raw_data()) {
+    if ((sec.virtual_address() + sec.sizeof_raw_data() - 1) <
+        sec.sizeof_raw_data())
+    {
       return error("{}:{}", __FUNCTION__, __LINE__);
     }

     if (sec.sizeof_raw_data() != 0) {
-      end_of_raw = std::max<uint64_t>(end_of_raw, sec.pointerto_raw_data() + sec.sizeof_raw_data());
+      end_of_raw = std::max<uint64_t>(end_of_raw, sec.pointerto_raw_data() +
+                                                      sec.sizeof_raw_data());
     }
   }
   return true;
@@ -443,8 +473,12 @@ bool LayoutChecker::check_load_config() {
   }

   // NOTE(romain): dynamic_value_reloctable_section starts by indexing from 1
-  if (auto value = config->dynamic_value_reloctable_section(); value.value_or(0) > 0) {
-    if ((*value - 1) < 0 || static_cast<size_t>((*value - 1)) >= pe.sections().size()) {
+  if (auto value = config->dynamic_value_reloctable_section();
+      value.value_or(0) > 0)
+  {
+    if ((*value - 1) < 0 ||
+        static_cast<size_t>((*value - 1)) >= pe.sections().size())
+    {
       return false;
     }
   }
@@ -459,6 +493,149 @@ bool LayoutChecker::check_load_config() {
     }
   }

+  if (!contains(config->security_cookie())) {
+    return error("Security cookie out of range: {:#010x} ([{:#010x}, {:#010x}])",
+                 config->security_cookie(), vaddr_start, vaddr_end);
+  }
+
+  if (!contains(config->lock_prefix_table())) {
+    return error("Lock prefix table out of range: {:#010x} ([{:#010x}, {:#010x}])",
+                 config->lock_prefix_table(), vaddr_start, vaddr_end);
+  }
+
+  if (!contains(config->se_handler_table())) {
+    return error("SE handler table out of range: {:#010x} ([{:#010x}, {:#010x}])",
+                 config->se_handler_table().value_or(0), vaddr_start, vaddr_end);
+  }
+
+  if (!contains(config->guard_cf_check_function_pointer())) {
+    return error("Guard CF check function pointer out of range: {:#010x} "
+                 "([{:#010x}, {:#010x}])",
+                 config->guard_cf_check_function_pointer().value_or(0),
+                 vaddr_start, vaddr_end);
+  }
+
+  if (!contains(config->guard_cf_dispatch_function_pointer())) {
+    return error("Guard CF dispatch function pointer out of range: {:#010x} "
+                 "([{:#010x}, {:#010x}])",
+                 config->guard_cf_dispatch_function_pointer().value_or(0),
+                 vaddr_start, vaddr_end);
+  }
+
+  if (!contains(config->guard_address_taken_iat_entry_table())) {
+    return error("Guard address taken IAT entry table out of range: {:#010x} "
+                 "([{:#010x}, {:#010x}])",
+                 config->guard_address_taken_iat_entry_table().value_or(0),
+                 vaddr_start, vaddr_end);
+  }
+
+  if (!contains(config->guard_long_jump_target_table())) {
+    return error("Guard long jump target table out of range: {:#010x} ([{:#010x}, "
+                 "{:#010x}])",
+                 config->guard_long_jump_target_table().value_or(0), vaddr_start,
+                 vaddr_end);
+  }
+
+  if (!contains(config->dynamic_value_reloc_table())) {
+    return error(
+        "Dynamic value reloc table out of range: {:#010x} ([{:#010x}, {:#010x}])",
+        config->dynamic_value_reloc_table().value_or(0), vaddr_start, vaddr_end
+    );
+  }
+
+  if (!contains(config->hybrid_metadata_pointer())) {
+    return error(
+        "Hybrid metadata pointer out of range: {:#010x} ([{:#010x}, {:#010x}])",
+        config->hybrid_metadata_pointer().value_or(0), vaddr_start, vaddr_end
+    );
+  }
+
+  if (!contains(config->guard_rf_failure_routine())) {
+    return error(
+        "Guard RF failure routine out of range: {:#010x} ([{:#010x}, {:#010x}])",
+        config->guard_rf_failure_routine().value_or(0), vaddr_start, vaddr_end
+    );
+  }
+
+  if (!contains(config->guard_rf_failure_routine_function_pointer())) {
+    return error("Guard RF failure routine function pointer out of range: "
+                 "{:#010x} ([{:#010x}, {:#010x}])",
+                 config->guard_rf_failure_routine_function_pointer().value_or(0),
+                 vaddr_start, vaddr_end);
+  }
+
+  if (!contains(config->guard_rf_verify_stackpointer_function_pointer())) {
+    return error(
+        "Guard RF verify stack pointer function pointer out of range: {:#010x} "
+        "([{:#010x}, {:#010x}])",
+        config->guard_rf_verify_stackpointer_function_pointer().value_or(0),
+        vaddr_start, vaddr_end
+    );
+  }
+
+  if (!contains(config->enclave_configuration_ptr())) {
+    return error("Enclave configuration pointer out of range: {:#010x} "
+                 "([{:#010x}, {:#010x}])",
+                 config->enclave_configuration_ptr().value_or(0), vaddr_start,
+                 vaddr_end);
+  }
+
+  if (!contains(config->volatile_metadata_pointer())) {
+    return error(
+        "Volatile metadata pointer out of range: {:#010x} ([{:#010x}, {:#010x}])",
+        config->volatile_metadata_pointer().value_or(0), vaddr_start, vaddr_end
+    );
+  }
+
+  if (!contains(config->guard_eh_continuation_table())) {
+    return error("Guard EH continuation table out of range: {:#010x} ([{:#010x}, "
+                 "{:#010x}])",
+                 config->guard_eh_continuation_table().value_or(0), vaddr_start,
+                 vaddr_end);
+  }
+
+  if (!contains(config->guard_xfg_check_function_pointer())) {
+    return error("Guard XFG check function pointer out of range: {:#010x} "
+                 "([{:#010x}, {:#010x}])",
+                 config->guard_xfg_check_function_pointer().value_or(0),
+                 vaddr_start, vaddr_end);
+  }
+
+  if (!contains(config->guard_xfg_dispatch_function_pointer())) {
+    return error("Guard XFG dispatch function pointer out of range: {:#010x} "
+                 "([{:#010x}, {:#010x}])",
+                 config->guard_xfg_dispatch_function_pointer().value_or(0),
+                 vaddr_start, vaddr_end);
+  }
+
+  if (!contains(config->guard_xfg_table_dispatch_function_pointer())) {
+    return error("Guard XFG table dispatch function pointer out of range: "
+                 "{:#010x} ([{:#010x}, {:#010x}])",
+                 config->guard_xfg_table_dispatch_function_pointer().value_or(0),
+                 vaddr_start, vaddr_end);
+  }
+
+  if (!contains(config->cast_guard_os_determined_failure_mode())) {
+    return error("Cast guard OS determined failure mode out of range: {:#010x} "
+                 "([{:#010x}, {:#010x}])",
+                 config->cast_guard_os_determined_failure_mode().value_or(0),
+                 vaddr_start, vaddr_end);
+  }
+
+  if (!contains(config->guard_memcpy_function_pointer())) {
+    return error("Guard memcpy function pointer out of range: {:#010x} "
+                 "([{:#010x}, {:#010x}])",
+                 config->guard_memcpy_function_pointer().value_or(0), vaddr_start,
+                 vaddr_end);
+  }
+
+  if (!contains(config->uma_function_pointers())) {
+    return error(
+        "UMA function pointers out of range: {:#010x} ([{:#010x}, {:#010x}])",
+        config->uma_function_pointers().value_or(0), vaddr_start, vaddr_end
+    );
+  }
+
   return true;
 }

@@ -469,17 +646,20 @@ bool LayoutChecker::check_imports() {
   }

   const DataDirectory* iat_dir = pe.iat_dir();
+  if (iat_dir == nullptr) {
+    return true;
+  }

   for (const Import& imp : imports) {
     for (const ImportEntry& entry : imp.entries()) {
       const uint32_t iat_address = entry.iat_address(); // RVA
       std::string entry_name = entry.is_ordinal() ?
-                               fmt::format("#{:04d}", entry.ordinal()) :
-                               entry.name();
-      // 2 bytes alignment seems sufficient
+                                   fmt::format("#{:04d}", entry.ordinal()) :
+                                   entry.name();
+      // 2-byte alignment seems sufficient
       if (iat_address % sizeof(uint16_t) != 0) {
-        return error("{}:{} IAT is wrongly aligned: 0x{:08x}",
-                     imp.name(), entry_name, entry.iat_address());
+        return error("{}:{} IAT is wrongly aligned: {:#010x}", imp.name(),
+                     entry_name, entry.iat_address());
       }

       if (iat_dir->RVA() == 0 || iat_dir->size() == 0) {
@@ -493,54 +673,63 @@ bool LayoutChecker::check_imports() {
         const Section* section = pe.section_from_rva(iat_address);
         if (section == nullptr) {
           return error("Can't find section associated with the IAT "
-                       "address: 0x{:08x}", iat_address);
+                       "address: {:#010x}",
+                       iat_address);
         }
         /* Not a requirement (even though most of the PE have it)
-         * if (!section->has_characteristic(Section::CHARACTERISTICS::CNT_INITIALIZED_DATA)) {
-         *   return error(R"err(
-         *     {}:{} IAT: 0x{:08x} -- Missing CNT_INITIALIZED_DATA in the pointed section ('{}')
-         *   )err", imp.name(), entry_name, iat_address, section->name());
+         * if
+         * (!section->has_characteristic(Section::CHARACTERISTICS::CNT_INITIALIZED_DATA))
+         * { return error(R"err(
+         *     {}:{} IAT: {:#010x} -- Missing CNT_INITIALIZED_DATA in the pointed
+         * section ('{}') )err", imp.name(), entry_name, iat_address,
+         * section->name());
          * }
          */

         if (!section->has_characteristic(Section::CHARACTERISTICS::MEM_READ)) {
           return error(R"err(
-            {}:{} IAT: 0x{:08x} -- Missing MEM_READ in the pointed section ('{}')
-          )err", imp.name(), entry_name, iat_address, section->name());
+            {}:{} IAT: {:#010x} -- Missing MEM_READ in the pointed section ('{}')
+          )err",
+                       imp.name(), entry_name, iat_address, section->name());
         }
       } else {
         const Section* section = pe.section_from_rva(iat_address);
         if (section == nullptr) {
           return error("Can't find section associated with the IAT "
-                       "address: 0x{:08x}", iat_address);
+                       "address: {:#010x}",
+                       iat_address);
         }
         /*
-         * if (!section->has_characteristic(Section::CHARACTERISTICS::CNT_INITIALIZED_DATA)) {
-         *   return error(R"err(
-         *     {}:{} IAT: 0x{:08x} -- Missing CNT_INITIALIZED_DATA in the pointed section ('{}')
-         *   )err", imp.name(), entry_name, iat_address, section->name());
+         * if
+         * (!section->has_characteristic(Section::CHARACTERISTICS::CNT_INITIALIZED_DATA))
+         * { return error(R"err(
+         *     {}:{} IAT: {:#010x} -- Missing CNT_INITIALIZED_DATA in the pointed
+         * section ('{}') )err", imp.name(), entry_name, iat_address,
+         * section->name());
          * }
          */

         if (!section->has_characteristic(Section::CHARACTERISTICS::MEM_READ)) {
           return error(R"err(
-            {}:{} IAT: 0x{:08x} -- Missing MEM_READ in the pointed section ('{}')
-          )err", imp.name(), entry_name, iat_address, section->name());
+            {}:{} IAT: {:#010x} -- Missing MEM_READ in the pointed section ('{}')
+          )err",
+                       imp.name(), entry_name, iat_address, section->name());
         }

         if (!section->has_characteristic(Section::CHARACTERISTICS::MEM_WRITE)) {
           return error(R"err(
-            {}:{} IAT: 0x{:08x} -- Missing MEM_WRITE in the pointed section ('{}')
-          )err", imp.name(), entry_name, iat_address, section->name());
+            {}:{} IAT: {:#010x} -- Missing MEM_WRITE in the pointed section ('{}')
+          )err",
+                       imp.name(), entry_name, iat_address, section->name());
         }

         if (!section->has_characteristic(Section::CHARACTERISTICS::CNT_CODE)) {
           return error(R"err(
-            {}:{} IAT: 0x{:08x} -- Missing CNT_CODE in the pointed section ('{}')
-          )err", imp.name(), entry_name, iat_address, section->name());
+            {}:{} IAT: {:#010x} -- Missing CNT_CODE in the pointed section ('{}')
+          )err",
+                       imp.name(), entry_name, iat_address, section->name());
         }
       }
-
     }
   }
   return true;
@@ -550,7 +739,7 @@ bool LayoutChecker::check_tls() {
   const TLS* tls = pe.tls();
   const DataDirectory* tls_dir = pe.tls_dir();

-  if (tls == nullptr) {
+  if (tls == nullptr || tls_dir == nullptr) {
     return true;
   }
   const size_t ptr_size = this->ptr_size();
@@ -565,8 +754,10 @@ bool LayoutChecker::check_tls() {
     return error("Missing MEM_READ for TLS section: '{}'", tls_sec->name());
   }

-  if (!tls_sec->has_characteristic(Section::CHARACTERISTICS::CNT_INITIALIZED_DATA)) {
-    return error("Missing CNT_INITIALIZED_DATA for TLS section: '{}'", tls_sec->name());
+  if (!tls_sec->has_characteristic(Section::CHARACTERISTICS::CNT_INITIALIZED_DATA))
+  {
+    return error("Missing CNT_INITIALIZED_DATA for TLS section: '{}'",
+                 tls_sec->name());
   }

   if (tls->addressof_index() == 0) {
@@ -575,21 +766,22 @@ bool LayoutChecker::check_tls() {

   for (uint64_t addr : tls->callbacks()) {
     if (addr <= imagebase) {
-      return error("TLS callback: 0x{:016x} not in imagebase range", addr);
+      return error("TLS callback: {:#018x} not in imagebase range", addr);
     }
     const uint64_t rva = addr - imagebase;
     const Section* sec = pe.section_from_rva(rva);
     if (sec == nullptr) {
-      return error("Can't find section associated with TLS callback: 0x{:016x}", addr);
+      return error("Can't find section associated with TLS callback: {:#018x}",
+                   addr);
     }

     if (!sec->has_characteristic(Section::CHARACTERISTICS::MEM_READ)) {
-      return error("Missing MEM_READ for TLS callback: 0x{:016x} ('{}')", addr,
+      return error("Missing MEM_READ for TLS callback: {:#018x} ('{}')", addr,
                    sec->name());
     }

     if (!sec->has_characteristic(Section::CHARACTERISTICS::MEM_EXECUTE)) {
-      return error("Missing MEM_EXECUTE for TLS callback: 0x{:016x} ('{}')", addr,
+      return error("Missing MEM_EXECUTE for TLS callback: {:#018x} ('{}')", addr,
                    sec->name());
     }
   }
@@ -598,13 +790,14 @@ bool LayoutChecker::check_tls() {
   int64_t addr_cbk_rva = addr_cbk - imagebase;

   if (addr_cbk > 0 && addr_cbk_rva < 0) {
-    return error("TLS's address of callbacks should be a VA. Addr=0x{:06x}, "
-                 "Imagebase=0x{:016x}", addr_cbk, imagebase);
+    return error("TLS's address of callbacks should be a VA. Addr={:#08x}, "
+                 "Imagebase={:#018x}",
+                 addr_cbk, imagebase);
   }

   // If the binary is pie, make sure it has relocations for the TLS structures
   if (pe.is_pie()) {
-    auto relocations  = pe.relocations();
+    auto relocations = pe.relocations();
     if (relocations.empty()) {
       return error("Missing relocations for the TLS structures");
     }
@@ -634,8 +827,8 @@ bool LayoutChecker::check_tls() {
     }

     if (nb_cbk_reloc < nb_cbk) {
-      return error("Expecting #{} callback relocations. Found: #{}",
-                   nb_cbk, nb_cbk_reloc);
+      return error("Expecting #{} callback relocations. Found: #{}", nb_cbk,
+                   nb_cbk_reloc);
     }

     size_t expected_hdr_reloc = 0;
@@ -652,6 +845,59 @@ bool LayoutChecker::check_tls() {
   return true;
 }

+
+bool LayoutChecker::check_relocations() {
+  auto relocations = pe.relocations();
+  if (relocations.empty()) {
+    return true;
+  }
+
+  const DataDirectory* reloc_dir = pe.relocation_dir();
+  if (reloc_dir == nullptr) {
+    return false;
+  }
+
+  const uint64_t vsize = pe.virtual_size();
+
+  const uint64_t size = reloc_dir->size();
+  uint64_t computed_size = 0;
+
+  for (const Relocation& R : relocations) {
+    if (R.block_size() % 4) {
+      return error("Relocation block {:#x} is not correctly aligned",
+                   R.virtual_address());
+    }
+
+    if (R.virtual_address() > vsize) {
+      return error("Relocation block {:#x} is beyond the binary virtual size",
+                   R.virtual_address());
+    }
+
+    if (R.entries().size() !=
+        (R.block_size() - sizeof(details::pe_base_relocation_block)) /
+            sizeof(uint16_t))
+    {
+      return error("Relocation block {:#x} is corrupted", R.virtual_address());
+    }
+
+    computed_size += R.block_size();
+
+    for (const RelocationEntry& E : R.entries()) {
+      if (E.address() > vsize) {
+        return error("Relocation {:#x} is beyond the binary virtual size",
+                     E.address());
+      }
+    }
+  }
+
+  if (computed_size != size) {
+    return error("Size mismatch. DataDirectory={:#06x}, Computed={:#06x}", size,
+                 computed_size);
+  }
+
+  return true;
+}
+
 bool check_layout(const Binary& bin, std::string* error_info) {
   LayoutChecker checker(bin);
   if (!checker.check()) {
@@ -663,4 +909,3 @@ bool check_layout(const Binary& bin, std::string* error_info) {
   return true;
 }
 }
-}
diff --git a/deps/LIEF/src/PE/resources/AcceleratorCodes.cpp b/deps/LIEF/src/PE/resources/AcceleratorCodes.cpp
index 525edc6982e..9251cc86588 100644
--- a/deps/LIEF/src/PE/resources/AcceleratorCodes.cpp
+++ b/deps/LIEF/src/PE/resources/AcceleratorCodes.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -18,181 +18,181 @@

 namespace LIEF::PE {
 const char* to_string(ACCELERATOR_CODES code) {
-  #define ENTRY(X) std::pair(ACCELERATOR_CODES::X, #X)
-  STRING_MAP enums2str {
-    ENTRY(LBUTTON),
-    ENTRY(RBUTTON),
-    ENTRY(CANCEL),
-    ENTRY(MBUTTON),
-    ENTRY(XBUTTON1_K),
-    ENTRY(XBUTTON2_K),
-    ENTRY(BACK),
-    ENTRY(TAB),
-    ENTRY(CLEAR),
-    ENTRY(RETURN),
-    ENTRY(SHIFT),
-    ENTRY(CONTROL),
-    ENTRY(MENU),
-    ENTRY(PAUSE),
-    ENTRY(CAPITAL),
-    ENTRY(KANA),
-    ENTRY(IME_ON),
-    ENTRY(JUNJA),
-    ENTRY(FINAL),
-    ENTRY(KANJI),
-    ENTRY(IME_OFF),
-    ENTRY(ESCAPE),
-    ENTRY(CONVERT),
-    ENTRY(NONCONVERT),
-    ENTRY(ACCEPT),
-    ENTRY(MODECHANGE),
-    ENTRY(SPACE),
-    ENTRY(PRIOR),
-    ENTRY(NEXT),
-    ENTRY(END),
-    ENTRY(HOME),
-    ENTRY(LEFT),
-    ENTRY(UP),
-    ENTRY(RIGHT),
-    ENTRY(DOWN),
-    ENTRY(SELECT),
-    ENTRY(PRINT),
-    ENTRY(EXECUTE),
-    ENTRY(SNAPSHOT),
-    ENTRY(INSERT),
-    ENTRY(DELETE_K),
-    ENTRY(HELP),
-    ENTRY(NUM_0),
-    ENTRY(NUM_1),
-    ENTRY(NUM_2),
-    ENTRY(NUM_3),
-    ENTRY(NUM_4),
-    ENTRY(NUM_5),
-    ENTRY(NUM_6),
-    ENTRY(NUM_7),
-    ENTRY(NUM_8),
-    ENTRY(NUM_9),
-    ENTRY(A),
-    ENTRY(B),
-    ENTRY(C),
-    ENTRY(D),
-    ENTRY(E),
-    ENTRY(F),
-    ENTRY(G),
-    ENTRY(H),
-    ENTRY(I),
-    ENTRY(J),
-    ENTRY(K),
-    ENTRY(L),
-    ENTRY(M),
-    ENTRY(N),
-    ENTRY(O),
-    ENTRY(P),
-    ENTRY(Q),
-    ENTRY(R),
-    ENTRY(S),
-    ENTRY(T),
-    ENTRY(U),
-    ENTRY(V),
-    ENTRY(W),
-    ENTRY(X),
-    ENTRY(Y),
-    ENTRY(Z),
-    ENTRY(LWIN),
-    ENTRY(RWIN),
-    ENTRY(APPS),
-    ENTRY(SLEEP),
-    ENTRY(NUMPAD0),
-    ENTRY(NUMPAD1),
-    ENTRY(NUMPAD2),
-    ENTRY(NUMPAD3),
-    ENTRY(NUMPAD4),
-    ENTRY(NUMPAD5),
-    ENTRY(NUMPAD6),
-    ENTRY(NUMPAD7),
-    ENTRY(NUMPAD8),
-    ENTRY(NUMPAD9),
-    ENTRY(MULTIPLY),
-    ENTRY(ADD),
-    ENTRY(SEPARATOR),
-    ENTRY(SUBTRACT),
-    ENTRY(DECIMAL),
-    ENTRY(DIVIDE),
-    ENTRY(F1),
-    ENTRY(F2),
-    ENTRY(F3),
-    ENTRY(F4),
-    ENTRY(F5),
-    ENTRY(F6),
-    ENTRY(F7),
-    ENTRY(F8),
-    ENTRY(F9),
-    ENTRY(F10),
-    ENTRY(F11),
-    ENTRY(F12),
-    ENTRY(F13),
-    ENTRY(F14),
-    ENTRY(F15),
-    ENTRY(F16),
-    ENTRY(F17),
-    ENTRY(F18),
-    ENTRY(F19),
-    ENTRY(F20),
-    ENTRY(F21),
-    ENTRY(F22),
-    ENTRY(F23),
-    ENTRY(F24),
-    ENTRY(NUMLOCK),
-    ENTRY(SCROLL),
-    ENTRY(LSHIFT),
-    ENTRY(RSHIFT),
-    ENTRY(LCONTROL),
-    ENTRY(RCONTROL),
-    ENTRY(LMENU),
-    ENTRY(RMENU),
-    ENTRY(BROWSER_BACK),
-    ENTRY(BROWSER_FORWARD),
-    ENTRY(BROWSER_REFRESH),
-    ENTRY(BROWSER_STOP),
-    ENTRY(BROWSER_SEARCH),
-    ENTRY(BROWSER_FAVORITES),
-    ENTRY(BROWSER_HOME),
-    ENTRY(VOLUME_MUTE),
-    ENTRY(VOLUME_DOWN),
-    ENTRY(VOLUME_UP),
-    ENTRY(MEDIA_NEXT_TRACK),
-    ENTRY(MEDIA_PREV_TRACK),
-    ENTRY(MEDIA_STOP),
-    ENTRY(MEDIA_PLAY_PAUSE),
-    ENTRY(LAUNCH_MAIL),
-    ENTRY(LAUNCH_MEDIA_SELECT),
-    ENTRY(LAUNCH_APP1),
-    ENTRY(LAUNCH_APP2),
-    ENTRY(OEM_1),
-    ENTRY(OEM_PLUS),
-    ENTRY(OEM_COMMA),
-    ENTRY(OEM_MINUS),
-    ENTRY(OEM_PERIOD),
-    ENTRY(OEM_2),
-    ENTRY(OEM_4),
-    ENTRY(OEM_5),
-    ENTRY(OEM_6),
-    ENTRY(OEM_7),
-    ENTRY(OEM_8),
-    ENTRY(OEM_102),
-    ENTRY(PROCESSKEY),
-    ENTRY(PACKET),
-    ENTRY(ATTN),
-    ENTRY(CRSEL),
-    ENTRY(EXSEL),
-    ENTRY(EREOF),
-    ENTRY(PLAY),
-    ENTRY(ZOOM),
-    ENTRY(NONAME),
-    ENTRY(PA1),
-    ENTRY(OEM_CLEAR),
+#define ENTRY(X) std::pair(ACCELERATOR_CODES::X, #X)
+  STRING_MAP enums2str{
+      ENTRY(LBUTTON),
+      ENTRY(RBUTTON),
+      ENTRY(CANCEL),
+      ENTRY(MBUTTON),
+      ENTRY(XBUTTON1_K),
+      ENTRY(XBUTTON2_K),
+      ENTRY(BACK),
+      ENTRY(TAB),
+      ENTRY(CLEAR),
+      ENTRY(RETURN),
+      ENTRY(SHIFT),
+      ENTRY(CONTROL),
+      ENTRY(MENU),
+      ENTRY(PAUSE),
+      ENTRY(CAPITAL),
+      ENTRY(KANA),
+      ENTRY(IME_ON),
+      ENTRY(JUNJA),
+      ENTRY(FINAL),
+      ENTRY(KANJI),
+      ENTRY(IME_OFF),
+      ENTRY(ESCAPE),
+      ENTRY(CONVERT),
+      ENTRY(NONCONVERT),
+      ENTRY(ACCEPT),
+      ENTRY(MODECHANGE),
+      ENTRY(SPACE),
+      ENTRY(PRIOR),
+      ENTRY(NEXT),
+      ENTRY(END),
+      ENTRY(HOME),
+      ENTRY(LEFT),
+      ENTRY(UP),
+      ENTRY(RIGHT),
+      ENTRY(DOWN),
+      ENTRY(SELECT),
+      ENTRY(PRINT),
+      ENTRY(EXECUTE),
+      ENTRY(SNAPSHOT),
+      ENTRY(INSERT),
+      ENTRY(DELETE_K),
+      ENTRY(HELP),
+      ENTRY(NUM_0),
+      ENTRY(NUM_1),
+      ENTRY(NUM_2),
+      ENTRY(NUM_3),
+      ENTRY(NUM_4),
+      ENTRY(NUM_5),
+      ENTRY(NUM_6),
+      ENTRY(NUM_7),
+      ENTRY(NUM_8),
+      ENTRY(NUM_9),
+      ENTRY(A),
+      ENTRY(B),
+      ENTRY(C),
+      ENTRY(D),
+      ENTRY(E),
+      ENTRY(F),
+      ENTRY(G),
+      ENTRY(H),
+      ENTRY(I),
+      ENTRY(J),
+      ENTRY(K),
+      ENTRY(L),
+      ENTRY(M),
+      ENTRY(N),
+      ENTRY(O),
+      ENTRY(P),
+      ENTRY(Q),
+      ENTRY(R),
+      ENTRY(S),
+      ENTRY(T),
+      ENTRY(U),
+      ENTRY(V),
+      ENTRY(W),
+      ENTRY(X),
+      ENTRY(Y),
+      ENTRY(Z),
+      ENTRY(LWIN),
+      ENTRY(RWIN),
+      ENTRY(APPS),
+      ENTRY(SLEEP),
+      ENTRY(NUMPAD0),
+      ENTRY(NUMPAD1),
+      ENTRY(NUMPAD2),
+      ENTRY(NUMPAD3),
+      ENTRY(NUMPAD4),
+      ENTRY(NUMPAD5),
+      ENTRY(NUMPAD6),
+      ENTRY(NUMPAD7),
+      ENTRY(NUMPAD8),
+      ENTRY(NUMPAD9),
+      ENTRY(MULTIPLY),
+      ENTRY(ADD),
+      ENTRY(SEPARATOR),
+      ENTRY(SUBTRACT),
+      ENTRY(DECIMAL),
+      ENTRY(DIVIDE),
+      ENTRY(F1),
+      ENTRY(F2),
+      ENTRY(F3),
+      ENTRY(F4),
+      ENTRY(F5),
+      ENTRY(F6),
+      ENTRY(F7),
+      ENTRY(F8),
+      ENTRY(F9),
+      ENTRY(F10),
+      ENTRY(F11),
+      ENTRY(F12),
+      ENTRY(F13),
+      ENTRY(F14),
+      ENTRY(F15),
+      ENTRY(F16),
+      ENTRY(F17),
+      ENTRY(F18),
+      ENTRY(F19),
+      ENTRY(F20),
+      ENTRY(F21),
+      ENTRY(F22),
+      ENTRY(F23),
+      ENTRY(F24),
+      ENTRY(NUMLOCK),
+      ENTRY(SCROLL),
+      ENTRY(LSHIFT),
+      ENTRY(RSHIFT),
+      ENTRY(LCONTROL),
+      ENTRY(RCONTROL),
+      ENTRY(LMENU),
+      ENTRY(RMENU),
+      ENTRY(BROWSER_BACK),
+      ENTRY(BROWSER_FORWARD),
+      ENTRY(BROWSER_REFRESH),
+      ENTRY(BROWSER_STOP),
+      ENTRY(BROWSER_SEARCH),
+      ENTRY(BROWSER_FAVORITES),
+      ENTRY(BROWSER_HOME),
+      ENTRY(VOLUME_MUTE),
+      ENTRY(VOLUME_DOWN),
+      ENTRY(VOLUME_UP),
+      ENTRY(MEDIA_NEXT_TRACK),
+      ENTRY(MEDIA_PREV_TRACK),
+      ENTRY(MEDIA_STOP),
+      ENTRY(MEDIA_PLAY_PAUSE),
+      ENTRY(LAUNCH_MAIL),
+      ENTRY(LAUNCH_MEDIA_SELECT),
+      ENTRY(LAUNCH_APP1),
+      ENTRY(LAUNCH_APP2),
+      ENTRY(OEM_1),
+      ENTRY(OEM_PLUS),
+      ENTRY(OEM_COMMA),
+      ENTRY(OEM_MINUS),
+      ENTRY(OEM_PERIOD),
+      ENTRY(OEM_2),
+      ENTRY(OEM_4),
+      ENTRY(OEM_5),
+      ENTRY(OEM_6),
+      ENTRY(OEM_7),
+      ENTRY(OEM_8),
+      ENTRY(OEM_102),
+      ENTRY(PROCESSKEY),
+      ENTRY(PACKET),
+      ENTRY(ATTN),
+      ENTRY(CRSEL),
+      ENTRY(EXSEL),
+      ENTRY(EREOF),
+      ENTRY(PLAY),
+      ENTRY(ZOOM),
+      ENTRY(NONAME),
+      ENTRY(PA1),
+      ENTRY(OEM_CLEAR),
   };
-  #undef ENTRY
+#undef ENTRY

   if (auto it = enums2str.find(code); it != enums2str.end()) {
     return it->second;
diff --git a/deps/LIEF/src/PE/resources/ResourceAccelerator.cpp b/deps/LIEF/src/PE/resources/ResourceAccelerator.cpp
index c4fb874153f..f35757d19f2 100644
--- a/deps/LIEF/src/PE/resources/ResourceAccelerator.cpp
+++ b/deps/LIEF/src/PE/resources/ResourceAccelerator.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -25,21 +25,22 @@

 FMT_FORMATTER(LIEF::PE::ResourceAccelerator::FLAGS, LIEF::PE::to_string);

-namespace LIEF {
-namespace PE {
+
+namespace LIEF::PE {

 static constexpr auto ARRAY_FLAGS = {
-  ResourceAccelerator::FLAGS::VIRTKEY, ResourceAccelerator::FLAGS::NOINVERT,
-  ResourceAccelerator::FLAGS::SHIFT, ResourceAccelerator::FLAGS::CONTROL,
-  ResourceAccelerator::FLAGS::ALT, ResourceAccelerator::FLAGS::END,
+    ResourceAccelerator::FLAGS::VIRTKEY, ResourceAccelerator::FLAGS::NOINVERT,
+    ResourceAccelerator::FLAGS::SHIFT,   ResourceAccelerator::FLAGS::CONTROL,
+    ResourceAccelerator::FLAGS::ALT,     ResourceAccelerator::FLAGS::END,
 };

-ResourceAccelerator::ResourceAccelerator(const details::pe_resource_acceltableentry& entry) :
+ResourceAccelerator::ResourceAccelerator(
+    const details::pe_resource_acceltableentry& entry
+) :
   flags_{entry.fFlags},
   ansi_{entry.wAnsi},
   id_{static_cast<uint16_t>(entry.wId)},
-  padding_{entry.padding}
-{}
+  padding_{entry.padding} {}

 void ResourceAccelerator::accept(Visitor& visitor) const {
   visitor.visit(*this);
@@ -47,40 +48,30 @@ void ResourceAccelerator::accept(Visitor& visitor) const {

 std::ostream& operator<<(std::ostream& os, const ResourceAccelerator& acc) {
   const auto& flags = acc.flags_list();
-  os << fmt::format("{} (0x{:04x}) id: 0x{:04x}, flags: {}",
-                    acc.ansi_str(), acc.ansi(), acc.id(),
-                    fmt::to_string(flags));
+  os << fmt::format("{} ({:#06x}) id: {:#06x}, flags: {}", acc.ansi_str(),
+                    acc.ansi(), acc.id(), fmt::to_string(flags));
   return os;
 }

 std::vector<ResourceAccelerator::FLAGS> ResourceAccelerator::flags_list() const {
   std::vector<FLAGS> flags;
-  std::copy_if(std::begin(ARRAY_FLAGS), std::end(ARRAY_FLAGS),
-               std::back_inserter(flags),
-               [this] (FLAGS f) { return has(f); });
+  std::copy_if(ARRAY_FLAGS.begin(), ARRAY_FLAGS.end(), std::back_inserter(flags),
+               [this](FLAGS f) { return has(f); });
   return flags;
 }

 const char* to_string(ResourceAccelerator::FLAGS flag) {
   switch (flag) {
-    case ResourceAccelerator::FLAGS::VIRTKEY:
-      return "VIRTKEY";
-    case ResourceAccelerator::FLAGS::NOINVERT:
-      return "NOINVERT";
-    case ResourceAccelerator::FLAGS::SHIFT:
-      return "SHIFT";
-    case ResourceAccelerator::FLAGS::CONTROL:
-      return "CONTROL";
-    case ResourceAccelerator::FLAGS::ALT:
-      return "ALT";
-    case ResourceAccelerator::FLAGS::END:
-      return "END";
-    default:
-      return "UNKNOWN";
+    case ResourceAccelerator::FLAGS::VIRTKEY: return "VIRTKEY";
+    case ResourceAccelerator::FLAGS::NOINVERT: return "NOINVERT";
+    case ResourceAccelerator::FLAGS::SHIFT: return "SHIFT";
+    case ResourceAccelerator::FLAGS::CONTROL: return "CONTROL";
+    case ResourceAccelerator::FLAGS::ALT: return "ALT";
+    case ResourceAccelerator::FLAGS::END: return "END";
+    default: return "UNKNOWN";
   }

   return "UNKNOWN";
 }

 }
-}
diff --git a/deps/LIEF/src/PE/resources/ResourceDialog.cpp b/deps/LIEF/src/PE/resources/ResourceDialog.cpp
index 5903a23671e..00cbb090a5d 100644
--- a/deps/LIEF/src/PE/resources/ResourceDialog.cpp
+++ b/deps/LIEF/src/PE/resources/ResourceDialog.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -28,7 +28,8 @@
 #include "PE/resources/styles_array.hpp"

 FMT_FORMATTER(LIEF::PE::ResourceDialog::DIALOG_STYLES, LIEF::PE::to_string);
-FMT_FORMATTER(LIEF::PE::ResourceDialog::WINDOW_EXTENDED_STYLES, LIEF::PE::to_string);
+FMT_FORMATTER(LIEF::PE::ResourceDialog::WINDOW_EXTENDED_STYLES,
+              LIEF::PE::to_string);
 FMT_FORMATTER(LIEF::PE::ResourceDialog::WINDOW_STYLES, LIEF::PE::to_string);

 namespace LIEF::PE {
@@ -40,14 +41,15 @@ static bool is_extended(BinaryStream& strm) {
   return version == 1 && signature == 0xFFFF;
 }

-ResourceDialog::dialogs_t ResourceDialog::parse(const uint8_t* buffer, size_t size) {
+ResourceDialog::dialogs_t ResourceDialog::parse(const uint8_t* buffer,
+                                                size_t size) {
   if (size == 0) {
     return {};
   }
   dialogs_t dialogs;

   SpanStream strm(buffer, size);
-  LIEF_DEBUG("Parsing dialogs from stream size: 0x{:08x}", size);
+  LIEF_DEBUG("Parsing dialogs from stream size: {:#010x}", size);
   while (strm) {
     std::unique_ptr<ResourceDialog> dia;
     if (is_extended(strm)) {
@@ -76,76 +78,75 @@ ResourceDialog::dialogs_t ResourceDialog::parse(const ResourceData& node) {
   return parse(content.data(), content.size());
 }

-ok_error_t ResourceDialog::parse_menu(ResourceDialog& dialog, BinaryStream& stream) {
+ok_error_t ResourceDialog::parse_menu(ResourceDialog& dialog,
+                                      BinaryStream& stream) {
   auto menu = stream.read<uint16_t>();
   if (!menu) {
     return make_error_code(menu.error());
   }

   switch (*menu) {
-    case 0x0000:
-      break;
+    case 0x0000: break;
     case 0xFFFF:
-      {
-        auto ordinal = stream.read<uint16_t>();
-        if (!ordinal) {
-          return make_error_code(ordinal.error());
-        }
-        dialog.menu(*ordinal);
-        break;
+    {
+      auto ordinal = stream.read<uint16_t>();
+      if (!ordinal) {
+        return make_error_code(ordinal.error());
       }
+      dialog.menu(*ordinal);
+      break;
+    }

     default:
-      {
-        stream.decrement_pos(2); // because of the first read<uint16_t>
-        auto name = stream.read_u16string();
-        if (!name) {
-          return make_error_code(name.error());
-        }
-        dialog.menu(std::move(*name));
-        break;
+    {
+      stream.decrement_pos(2); // because of the first read<uint16_t>
+      auto name = stream.read_u16string();
+      if (!name) {
+        return make_error_code(name.error());
       }
+      dialog.menu(std::move(*name));
+      break;
+    }
   }
   stream.align(sizeof(uint16_t));
   return ok();
 }

-ok_error_t ResourceDialog::parse_class(ResourceDialog& dialog, BinaryStream& stream) {
+ok_error_t ResourceDialog::parse_class(ResourceDialog& dialog,
+                                       BinaryStream& stream) {
   auto clazz = stream.read<uint16_t>();
   if (!clazz) {
     return make_error_code(clazz.error());
   }

   switch (*clazz) {
-    case 0x0000:
-      break;
+    case 0x0000: break;
     case 0xFFFF:
-      {
-        auto ordinal = stream.read<uint16_t>();
-        if (!ordinal) {
-          return make_error_code(ordinal.error());
-        }
-        dialog.window_class(*ordinal);
-        break;
+    {
+      auto ordinal = stream.read<uint16_t>();
+      if (!ordinal) {
+        return make_error_code(ordinal.error());
       }
+      dialog.window_class(*ordinal);
+      break;
+    }
     default:
-      {
-        stream.decrement_pos(2);
-        auto name = stream.read_u16string();
-        if (!name) {
-          return make_error_code(name.error());
-        }
-        dialog.window_class(std::move(*name));
-        break;
+    {
+      stream.decrement_pos(2);
+      auto name = stream.read_u16string();
+      if (!name) {
+        return make_error_code(name.error());
       }
+      dialog.window_class(std::move(*name));
+      break;
+    }
   }
   stream.align(sizeof(uint16_t));
   return ok();
 }

 ok_error_t ResourceDialog::parse_class(ResourceDialog::Item& item,
-                                       BinaryStream& stream)
-{
+                                       BinaryStream& stream) {
   auto clazz = stream.read<uint16_t>();
   if (!clazz) {
     return make_error_code(clazz.error());
@@ -153,31 +154,32 @@ ok_error_t ResourceDialog::parse_class(ResourceDialog::Item& item,

   switch (*clazz) {
     case 0xFFFF:
-      {
-        auto ordinal = stream.read<uint16_t>();
-        if (!ordinal) {
-          return make_error_code(ordinal.error());
-        }
-        item.clazz(*ordinal);
-        break;
+    {
+      auto ordinal = stream.read<uint16_t>();
+      if (!ordinal) {
+        return make_error_code(ordinal.error());
       }
+      item.clazz(*ordinal);
+      break;
+    }
     default:
-      {
-        stream.decrement_pos(2);
-        auto name = stream.read_u16string();
-        if (!name) {
-          return make_error_code(name.error());
-        }
-        item.clazz(std::move(*name));
-        break;
+    {
+      stream.decrement_pos(2);
+      auto name = stream.read_u16string();
+      if (!name) {
+        return make_error_code(name.error());
       }
+      item.clazz(std::move(*name));
+      break;
+    }
   }
   stream.align(sizeof(uint16_t));
   return ok();
 }


-ok_error_t ResourceDialog::parse_title(ResourceDialog& dialog, BinaryStream& stream) {
+ok_error_t ResourceDialog::parse_title(ResourceDialog& dialog,
+                                       BinaryStream& stream) {
   auto title = stream.read_u16string();

   if (!title) {
@@ -190,8 +192,7 @@ ok_error_t ResourceDialog::parse_title(ResourceDialog& dialog, BinaryStream& str
 }

 ok_error_t ResourceDialog::parse_title(ResourceDialog::Item& item,
-                                       BinaryStream& stream)
-{
+                                       BinaryStream& stream) {
   auto info = stream.read<uint16_t>();
   if (!info) {
     return make_error_code(info.error());
@@ -199,32 +200,31 @@ ok_error_t ResourceDialog::parse_title(ResourceDialog::Item& item,

   switch (*info) {
     case 0xFFFF:
-      {
-        auto ordinal = stream.read<uint16_t>();
-        if (!ordinal) {
-          return make_error_code(ordinal.error());
-        }
-        item.title(*ordinal);
-        break;
+    {
+      auto ordinal = stream.read<uint16_t>();
+      if (!ordinal) {
+        return make_error_code(ordinal.error());
       }
+      item.title(*ordinal);
+      break;
+    }
     default:
-      {
-        stream.decrement_pos(2);
-        auto name = stream.read_u16string();
-        if (!name) {
-          return make_error_code(name.error());
-        }
-        item.title(std::move(*name));
-        break;
+    {
+      stream.decrement_pos(2);
+      auto name = stream.read_u16string();
+      if (!name) {
+        return make_error_code(name.error());
       }
+      item.title(std::move(*name));
+      break;
+    }
   }
   stream.align(sizeof(uint16_t));
   return ok();
 }

-ok_error_t ResourceDialog::parse_creation_data(
-  ResourceDialog::Item& item, BinaryStream& stream)
-{
+ok_error_t ResourceDialog::parse_creation_data(ResourceDialog::Item& item,
+                                               BinaryStream& stream) {
   auto size = stream.read<uint16_t>();
   if (!size) {
     return make_error_code(size.error());
@@ -238,25 +238,27 @@ ok_error_t ResourceDialog::parse_creation_data(

 std::vector<ResourceDialog::DIALOG_STYLES> ResourceDialog::styles_list() const {
   std::vector<DIALOG_STYLES> flags;
-  std::copy_if(std::begin(DIALOG_STYLES_ARRAY), std::end(DIALOG_STYLES_ARRAY),
+  std::copy_if(DIALOG_STYLES_ARRAY.begin(), DIALOG_STYLES_ARRAY.end(),
                std::back_inserter(flags),
-               [this] (DIALOG_STYLES f) { return has(f); });
+               [this](DIALOG_STYLES f) { return has(f); });
   return flags;
 }

-std::vector<ResourceDialog::WINDOW_STYLES> ResourceDialog::windows_styles_list() const {
+std::vector<ResourceDialog::WINDOW_STYLES>
+    ResourceDialog::windows_styles_list() const {
   std::vector<WINDOW_STYLES> flags;
-  std::copy_if(std::begin(WINDOW_STYLES_ARRAY), std::end(WINDOW_STYLES_ARRAY),
+  std::copy_if(WINDOW_STYLES_ARRAY.begin(), WINDOW_STYLES_ARRAY.end(),
                std::back_inserter(flags),
-               [this] (WINDOW_STYLES f) { return has(f); });
+               [this](WINDOW_STYLES f) { return has(f); });
   return flags;
 }

-std::vector<ResourceDialog::WINDOW_EXTENDED_STYLES> ResourceDialog::windows_ext_styles_list() const {
+std::vector<ResourceDialog::WINDOW_EXTENDED_STYLES>
+    ResourceDialog::windows_ext_styles_list() const {
   std::vector<WINDOW_EXTENDED_STYLES> flags;
-  std::copy_if(std::begin(WINDOW_EXTENDED_STYLES_ARRAY), std::end(WINDOW_EXTENDED_STYLES_ARRAY),
-               std::back_inserter(flags),
-               [this] (WINDOW_EXTENDED_STYLES f) { return has(f); });
+  std::copy_if(WINDOW_EXTENDED_STYLES_ARRAY.begin(),
+               WINDOW_EXTENDED_STYLES_ARRAY.end(), std::back_inserter(flags),
+               [this](WINDOW_EXTENDED_STYLES f) { return has(f); });
   return flags;
 }

@@ -273,21 +275,20 @@ std::string ResourceDialog::ordinal_or_str_t::to_string() const {
 }

 std::vector<ResourceDialog::WINDOW_STYLES>
-  ResourceDialog::Item::window_styles() const {
+    ResourceDialog::Item::window_styles() const {
   std::vector<WINDOW_STYLES> flags;
-  std::copy_if(std::begin(WINDOW_STYLES_ARRAY), std::end(WINDOW_STYLES_ARRAY),
+  std::copy_if(WINDOW_STYLES_ARRAY.begin(), WINDOW_STYLES_ARRAY.end(),
                std::back_inserter(flags),
-               [this] (WINDOW_STYLES f) { return has(f); });
+               [this](WINDOW_STYLES f) { return has(f); });
   return flags;
 }

 std::vector<ResourceDialog::CONTROL_STYLES>
-  ResourceDialog::Item::control_styles() const
-{
+    ResourceDialog::Item::control_styles() const {
   std::vector<CONTROL_STYLES> flags;
-  std::copy_if(std::begin(CONTROL_STYLES_ARRAY), std::end(CONTROL_STYLES_ARRAY),
+  std::copy_if(CONTROL_STYLES_ARRAY.begin(), CONTROL_STYLES_ARRAY.end(),
                std::back_inserter(flags),
-               [this] (CONTROL_STYLES f) { return has(f); });
+               [this](CONTROL_STYLES f) { return has(f); });
   return flags;
 }

@@ -300,25 +301,15 @@ ResourceDialog& ResourceDialog::title(const std::string& title) {


 const char* to_string(ResourceDialog::DIALOG_STYLES e) {
-  #define ENTRY(X) std::pair(ResourceDialog::DIALOG_STYLES::X, #X)
-  STRING_MAP enums2str {
-    ENTRY(ABSALIGN),
-    ENTRY(SYSMODAL),
-    ENTRY(LOCALEDIT),
-    ENTRY(SETFONT),
-    ENTRY(MODALFRAME),
-    ENTRY(NOIDLEMSG),
-    ENTRY(SETFOREGROUND),
-    ENTRY(S3DLOOK),
-    ENTRY(FIXEDSYS),
-    ENTRY(NOFAILCREATE),
-    ENTRY(CONTROL),
-    ENTRY(CENTER),
-    ENTRY(CENTERMOUSE),
-    ENTRY(CONTEXTHELP),
-    ENTRY(SHELLFONT),
+#define ENTRY(X) std::pair(ResourceDialog::DIALOG_STYLES::X, #X)
+  STRING_MAP enums2str{
+      ENTRY(ABSALIGN),      ENTRY(SYSMODAL),    ENTRY(LOCALEDIT),
+      ENTRY(SETFONT),       ENTRY(MODALFRAME),  ENTRY(NOIDLEMSG),
+      ENTRY(SETFOREGROUND), ENTRY(S3DLOOK),     ENTRY(FIXEDSYS),
+      ENTRY(NOFAILCREATE),  ENTRY(CONTROL),     ENTRY(CENTER),
+      ENTRY(CENTERMOUSE),   ENTRY(CONTEXTHELP), ENTRY(SHELLFONT),
   };
-  #undef ENTRY
+#undef ENTRY

   if (auto it = enums2str.find(e); it != enums2str.end()) {
     return it->second;
@@ -327,28 +318,15 @@ const char* to_string(ResourceDialog::DIALOG_STYLES e) {
 }

 const char* to_string(ResourceDialog::WINDOW_STYLES e) {
-  #define ENTRY(X) std::pair(ResourceDialog::WINDOW_STYLES::X, #X)
-  STRING_MAP enums2str {
-    ENTRY(OVERLAPPED),
-    ENTRY(POPUP),
-    ENTRY(CHILD),
-    ENTRY(MINIMIZE),
-    ENTRY(VISIBLE),
-    ENTRY(DISABLED),
-    ENTRY(CLIPSIBLINGS),
-    ENTRY(CLIPCHILDREN),
-    ENTRY(MAXIMIZE),
-    ENTRY(CAPTION),
-    ENTRY(BORDER),
-    ENTRY(DLGFRAME),
-    ENTRY(VSCROLL),
-    ENTRY(HSCROLL),
-    ENTRY(SYSMENU),
-    ENTRY(THICKFRAME),
-    ENTRY(GROUP),
-    ENTRY(TABSTOP),
+#define ENTRY(X) std::pair(ResourceDialog::WINDOW_STYLES::X, #X)
+  STRING_MAP enums2str{
+      ENTRY(OVERLAPPED), ENTRY(POPUP),    ENTRY(CHILD),        ENTRY(MINIMIZE),
+      ENTRY(VISIBLE),    ENTRY(DISABLED), ENTRY(CLIPSIBLINGS), ENTRY(CLIPCHILDREN),
+      ENTRY(MAXIMIZE),   ENTRY(CAPTION),  ENTRY(BORDER),       ENTRY(DLGFRAME),
+      ENTRY(VSCROLL),    ENTRY(HSCROLL),  ENTRY(SYSMENU),      ENTRY(THICKFRAME),
+      ENTRY(GROUP),      ENTRY(TABSTOP),
   };
-  #undef ENTRY
+#undef ENTRY

   if (auto it = enums2str.find(e); it != enums2str.end()) {
     return it->second;
@@ -358,27 +336,16 @@ const char* to_string(ResourceDialog::WINDOW_STYLES e) {


 const char* to_string(ResourceDialog::WINDOW_EXTENDED_STYLES e) {
-  #define ENTRY(X) std::pair(ResourceDialog::WINDOW_EXTENDED_STYLES::X, #X)
-  STRING_MAP enums2str {
-    ENTRY(DLGMODALFRAME),
-    ENTRY(NOPARENTNOTIFY),
-    ENTRY(TOPMOST),
-    ENTRY(ACCEPTFILES),
-    ENTRY(TRANSPARENT_STY),
-    ENTRY(MDICHILD),
-    ENTRY(TOOLWINDOW),
-    ENTRY(WINDOWEDGE),
-    ENTRY(CLIENTEDGE),
-    ENTRY(CONTEXTHELP),
-    ENTRY(RIGHT),
-    ENTRY(LEFT),
-    ENTRY(RTLREADING),
-    ENTRY(LEFTSCROLLBAR),
-    ENTRY(CONTROLPARENT),
-    ENTRY(STATICEDGE),
-    ENTRY(APPWINDOW),
+#define ENTRY(X) std::pair(ResourceDialog::WINDOW_EXTENDED_STYLES::X, #X)
+  STRING_MAP enums2str{
+      ENTRY(DLGMODALFRAME), ENTRY(NOPARENTNOTIFY),  ENTRY(TOPMOST),
+      ENTRY(ACCEPTFILES),   ENTRY(TRANSPARENT_STY), ENTRY(MDICHILD),
+      ENTRY(TOOLWINDOW),    ENTRY(WINDOWEDGE),      ENTRY(CLIENTEDGE),
+      ENTRY(CONTEXTHELP),   ENTRY(RIGHT),           ENTRY(LEFT),
+      ENTRY(RTLREADING),    ENTRY(LEFTSCROLLBAR),   ENTRY(CONTROLPARENT),
+      ENTRY(STATICEDGE),    ENTRY(APPWINDOW),
   };
-  #undef ENTRY
+#undef ENTRY

   if (auto it = enums2str.find(e); it != enums2str.end()) {
     return it->second;
@@ -387,21 +354,13 @@ const char* to_string(ResourceDialog::WINDOW_EXTENDED_STYLES e) {
 }

 const char* to_string(ResourceDialog::CONTROL_STYLES e) {
-  #define ENTRY(X) std::pair(ResourceDialog::CONTROL_STYLES::X, #X)
-  STRING_MAP enums2str {
-    ENTRY(TOP),
-    ENTRY(NOMOVEY),
-    ENTRY(BOTTOM),
-    ENTRY(NORESIZE),
-    ENTRY(NOPARENTALIGN),
-    ENTRY(ADJUSTABLE),
-    ENTRY(NODIVIDER),
-    ENTRY(VERT),
-    ENTRY(LEFT),
-    ENTRY(RIGHT),
-    ENTRY(NOMOVEX),
+#define ENTRY(X) std::pair(ResourceDialog::CONTROL_STYLES::X, #X)
+  STRING_MAP enums2str{
+      ENTRY(TOP),           ENTRY(NOMOVEY),    ENTRY(BOTTOM),    ENTRY(NORESIZE),
+      ENTRY(NOPARENTALIGN), ENTRY(ADJUSTABLE), ENTRY(NODIVIDER), ENTRY(VERT),
+      ENTRY(LEFT),          ENTRY(RIGHT),      ENTRY(NOMOVEX),
   };
-  #undef ENTRY
+#undef ENTRY

   if (auto it = enums2str.find(e); it != enums2str.end()) {
     return it->second;
@@ -410,4 +369,3 @@ const char* to_string(ResourceDialog::CONTROL_STYLES e) {
 }

 }
-
diff --git a/deps/LIEF/src/PE/resources/ResourceDialogExtended.cpp b/deps/LIEF/src/PE/resources/ResourceDialogExtended.cpp
index 8cf3b612c4b..f2d41d5a61f 100644
--- a/deps/LIEF/src/PE/resources/ResourceDialogExtended.cpp
+++ b/deps/LIEF/src/PE/resources/ResourceDialogExtended.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -25,13 +25,15 @@
 #include "fmt_formatter.hpp"

 FMT_FORMATTER(LIEF::PE::ResourceDialog::DIALOG_STYLES, LIEF::PE::to_string);
-FMT_FORMATTER(LIEF::PE::ResourceDialog::WINDOW_EXTENDED_STYLES, LIEF::PE::to_string);
+FMT_FORMATTER(LIEF::PE::ResourceDialog::WINDOW_EXTENDED_STYLES,
+              LIEF::PE::to_string);
 FMT_FORMATTER(LIEF::PE::ResourceDialog::WINDOW_STYLES, LIEF::PE::to_string);
 FMT_FORMATTER(LIEF::PE::ResourceDialog::CONTROL_STYLES, LIEF::PE::to_string);

 namespace LIEF::PE {

-result<ResourceDialogExtended::Item> ResourceDialogExtended::Item::parse(BinaryStream& stream) {
+result<ResourceDialogExtended::Item>
+    ResourceDialogExtended::Item::parse(BinaryStream& stream) {
   // typedef struct {
   //   DWORD     helpID;
   //   DWORD     exStyle;
@@ -88,13 +90,14 @@ result<ResourceDialogExtended::Item> ResourceDialogExtended::Item::parse(BinaryS
   }

   ResourceDialogExtended::Item item;
-  item
-    .help_id(*helpID)
-    .style(*style)
-    .extended_style(*exStyle)
-    .x(*x).y(*y)
-    .cx(*cx).cy(*cy)
-    .id(*id);
+  item.help_id(*helpID)
+      .style(*style)
+      .extended_style(*exStyle)
+      .x(*x)
+      .y(*y)
+      .cx(*cx)
+      .cy(*cy)
+      .id(*id);

   stream.align(sizeof(uint16_t));

@@ -147,8 +150,7 @@ ok_error_t parse_typeface(ResourceDialogExtended& dialog, BinaryStream& stream)
     return make_error_code(typeface.error());
   }

-  dialog.font(*point_size, *weight, (bool)*italic,
-              *charset, std::move(*typeface));
+  dialog.font(*point_size, *weight, (bool)*italic, *charset, std::move(*typeface));

   stream.align(sizeof(uint16_t));
   return ok();
@@ -156,8 +158,7 @@ ok_error_t parse_typeface(ResourceDialogExtended& dialog, BinaryStream& stream)


 std::unique_ptr<ResourceDialogExtended>
-  ResourceDialogExtended::create(BinaryStream& stream)
-{
+    ResourceDialogExtended::create(BinaryStream& stream) {
   auto version = stream.read<uint16_t>();
   if (!version) {
     return nullptr;
@@ -211,14 +212,15 @@ std::unique_ptr<ResourceDialogExtended>

   auto dialog = std::make_unique<ResourceDialogExtended>();
   (*dialog)
-    .version(*version)
-    .signature(*signature)
-    .help_id(*help_id)
-    .extended_style(*ext_style)
-    .style(*style)
-    .x(*x).y(*y)
-    .cx(*cx).cy(*cy)
-  ;
+      .version(*version)
+      .signature(*signature)
+      .help_id(*help_id)
+      .extended_style(*ext_style)
+      .style(*style)
+      .x(*x)
+      .y(*y)
+      .cx(*cx)
+      .cy(*cy);

   if (auto is_ok = parse_menu(*dialog, stream); !is_ok) {
     return dialog;
@@ -236,11 +238,11 @@ std::unique_ptr<ResourceDialogExtended>
     return dialog;
   }

-  LIEF_DEBUG("Dialog nb item: #{}", *nb_items);
+  LIEF_DEBUG("Dialog item count: {}", *nb_items);
   for (size_t i = 0; i < *nb_items; ++i) {
     auto item = ResourceDialogExtended::Item::parse(stream);
     if (!item) {
-      LIEF_INFO("Can't parse (regular) Dialog item #{:02d}", i);
+      LIEF_INFO("Failed to parse dialog item #{:02d}", i);
       return dialog;
     }
     dialog->add_item(*item);
@@ -260,27 +262,13 @@ std::string ResourceDialogExtended::Item::to_string() const {
   {
     if (auto ord = clazz().ordinal) {
       switch ((WINDOW_CLASS)*ord) {
-        case WINDOW_CLASS::BUTTON:
-          win_class_str = "Button";
-          break;
-        case WINDOW_CLASS::EDIT:
-          win_class_str = "Edit";
-          break;
-        case WINDOW_CLASS::STATIC:
-          win_class_str = "Static";
-          break;
-        case WINDOW_CLASS::LIST_BOX:
-          win_class_str = "List box";
-          break;
-        case WINDOW_CLASS::SCROLL_BAR:
-          win_class_str = "Scroll bar";
-          break;
-        case WINDOW_CLASS::COMBO_BOX:
-          win_class_str = "Combo box";
-          break;
-        default:
-          win_class_str = fmt::format("unknown (0x{:04x})", *ord);
-          break;
+        case WINDOW_CLASS::BUTTON: win_class_str = "Button"; break;
+        case WINDOW_CLASS::EDIT: win_class_str = "Edit"; break;
+        case WINDOW_CLASS::STATIC: win_class_str = "Static"; break;
+        case WINDOW_CLASS::LIST_BOX: win_class_str = "List box"; break;
+        case WINDOW_CLASS::SCROLL_BAR: win_class_str = "Scroll bar"; break;
+        case WINDOW_CLASS::COMBO_BOX: win_class_str = "Combo box"; break;
+        default: win_class_str = fmt::format("unknown ({:#06x})", *ord); break;
       }
     } else {
       win_class_str = u16tou8(clazz().string);
@@ -290,8 +278,7 @@ std::string ResourceDialogExtended::Item::to_string() const {
   return fmt::format("CONTROL '{}', {}, {}, {} {}, {}, {}, {}, {}",
                      title().to_string(), id(), win_class_str,
                      fmt::join(control_styles(), " | "),
-                     fmt::join(window_styles(), " | "),
-                     x(), y(), cx(), cy());
+                     fmt::join(window_styles(), " | "), x(), y(), cx(), cy());
 }

 std::string ResourceDialogExtended::to_string() const {
diff --git a/deps/LIEF/src/PE/resources/ResourceDialogRegular.cpp b/deps/LIEF/src/PE/resources/ResourceDialogRegular.cpp
index da76f521a6b..3636af6ab37 100644
--- a/deps/LIEF/src/PE/resources/ResourceDialogRegular.cpp
+++ b/deps/LIEF/src/PE/resources/ResourceDialogRegular.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -25,7 +25,8 @@
 #include "fmt_formatter.hpp"

 FMT_FORMATTER(LIEF::PE::ResourceDialog::DIALOG_STYLES, LIEF::PE::to_string);
-FMT_FORMATTER(LIEF::PE::ResourceDialog::WINDOW_EXTENDED_STYLES, LIEF::PE::to_string);
+FMT_FORMATTER(LIEF::PE::ResourceDialog::WINDOW_EXTENDED_STYLES,
+              LIEF::PE::to_string);
 FMT_FORMATTER(LIEF::PE::ResourceDialog::WINDOW_STYLES, LIEF::PE::to_string);
 FMT_FORMATTER(LIEF::PE::ResourceDialog::CONTROL_STYLES, LIEF::PE::to_string);

@@ -55,8 +56,7 @@ ok_error_t parse_font_info(ResourceDialogRegular& dialog, BinaryStream& stream)
 }

 result<ResourceDialogRegular::Item>
-  ResourceDialogRegular::Item::parse(BinaryStream& stream)
-{
+    ResourceDialogRegular::Item::parse(BinaryStream& stream) {
   stream.align(sizeof(uint32_t));

   auto style = stream.read<uint32_t>();
@@ -95,13 +95,13 @@ result<ResourceDialogRegular::Item>
   }

   ResourceDialogRegular::Item item;
-  item
-    .style(*style)
-    .extended_style(*dwExtendedStyle)
-    .x(*x).y(*y)
-    .cx(*cx).cy(*cy)
-    .id((int32_t)*id)
-  ;
+  item.style(*style)
+      .extended_style(*dwExtendedStyle)
+      .x(*x)
+      .y(*y)
+      .cx(*cx)
+      .cy(*cy)
+      .id((int32_t)*id);
   stream.align(sizeof(uint16_t));

   if (auto is_ok = parse_class(item, stream); !is_ok) {
@@ -120,8 +120,7 @@ result<ResourceDialogRegular::Item>
 }

 std::unique_ptr<ResourceDialogRegular>
-  ResourceDialogRegular::create(BinaryStream& stream)
-{
+    ResourceDialogRegular::create(BinaryStream& stream) {
   LIEF_DEBUG("Parsing regular dialog");
   auto style = stream.read<uint32_t>();
   if (!style) {
@@ -161,11 +160,12 @@ std::unique_ptr<ResourceDialogRegular>

   auto dialog = std::make_unique<ResourceDialogRegular>();
   (*dialog)
-    .style(*style)
-    .extended_style(*dwExtendedStyle)
-    .x(*x).y(*y)
-    .cx(*cx).cy(*cy)
-  ;
+      .style(*style)
+      .extended_style(*dwExtendedStyle)
+      .x(*x)
+      .y(*y)
+      .cx(*cx)
+      .cy(*cy);

   if (auto is_ok = parse_menu(*dialog, stream); !is_ok) {
     return dialog;
@@ -183,11 +183,11 @@ std::unique_ptr<ResourceDialogRegular>
     return dialog;
   }

-  LIEF_DEBUG("Dialog nb item: #{}", *nb_items);
+  LIEF_DEBUG("Dialog item count: {}", *nb_items);
   for (size_t i = 0; i < *nb_items; ++i) {
     auto item = ResourceDialogRegular::Item::parse(stream);
     if (!item) {
-      LIEF_INFO("Can't parse (regular) Dialog item #{:02d}", i);
+      LIEF_INFO("Failed to parse dialog item #{:02d}", i);
       return dialog;
     }

@@ -203,27 +203,13 @@ std::string ResourceDialogRegular::Item::to_string() const {
   {
     if (auto ord = clazz().ordinal) {
       switch ((WINDOW_CLASS)*ord) {
-        case WINDOW_CLASS::BUTTON:
-          win_class_str = "Button";
-          break;
-        case WINDOW_CLASS::EDIT:
-          win_class_str = "Edit";
-          break;
-        case WINDOW_CLASS::STATIC:
-          win_class_str = "Static";
-          break;
-        case WINDOW_CLASS::LIST_BOX:
-          win_class_str = "List box";
-          break;
-        case WINDOW_CLASS::SCROLL_BAR:
-          win_class_str = "Scroll bar";
-          break;
-        case WINDOW_CLASS::COMBO_BOX:
-          win_class_str = "Combo box";
-          break;
-        default:
-          win_class_str = fmt::format("unknown (0x{:04x})", *ord);
-          break;
+        case WINDOW_CLASS::BUTTON: win_class_str = "Button"; break;
+        case WINDOW_CLASS::EDIT: win_class_str = "Edit"; break;
+        case WINDOW_CLASS::STATIC: win_class_str = "Static"; break;
+        case WINDOW_CLASS::LIST_BOX: win_class_str = "List box"; break;
+        case WINDOW_CLASS::SCROLL_BAR: win_class_str = "Scroll bar"; break;
+        case WINDOW_CLASS::COMBO_BOX: win_class_str = "Combo box"; break;
+        default: win_class_str = fmt::format("unknown ({:#06x})", *ord); break;
       }
     } else {
       win_class_str = u16tou8(clazz().string);
@@ -233,8 +219,7 @@ std::string ResourceDialogRegular::Item::to_string() const {
   return fmt::format("CONTROL '{}', {}, {}, {} {}, {}, {}, {}, {}",
                      title().to_string(), id(), win_class_str,
                      fmt::join(control_styles(), " | "),
-                     fmt::join(window_styles(), " | "),
-                     x(), y(), cx(), cy());
+                     fmt::join(window_styles(), " | "), x(), y(), cx(), cy());
 }

 std::string ResourceDialogRegular::font_t::to_string() const {
diff --git a/deps/LIEF/src/PE/resources/ResourceIcon.cpp b/deps/LIEF/src/PE/resources/ResourceIcon.cpp
index 56f1bb42704..d6b0ab4006a 100644
--- a/deps/LIEF/src/PE/resources/ResourceIcon.cpp
+++ b/deps/LIEF/src/PE/resources/ResourceIcon.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -25,8 +25,8 @@
 #include "logging.hpp"
 #include <spdlog/fmt/fmt.h>

-namespace LIEF {
-namespace PE {
+
+namespace LIEF::PE {

 ResourceIcon::ResourceIcon(const details::pe_resource_icon_group& header) :
   width_{header.width},
@@ -35,8 +35,7 @@ ResourceIcon::ResourceIcon(const details::pe_resource_icon_group& header) :
   reserved_{header.reserved},
   planes_{header.planes},
   bit_count_{header.bit_count},
-  id_{header.ID}
-{}
+  id_{header.ID} {}


 ResourceIcon::ResourceIcon(const details::pe_icon_header& header) :
@@ -46,18 +45,18 @@ ResourceIcon::ResourceIcon(const details::pe_icon_header& header) :
   reserved_{header.reserved},
   planes_{header.planes},
   bit_count_{header.bit_count},
-  id_{static_cast<uint32_t>(-1)}
-{}
+  id_{static_cast<uint32_t>(-1)} {}

-result<ResourceIcon> ResourceIcon::from_serialization(const uint8_t* buffer, size_t size) {
-  const uint32_t minsz = sizeof(details::pe_resource_icon_dir) +
-                         sizeof(details::pe_icon_header);
+result<ResourceIcon> ResourceIcon::from_serialization(const uint8_t* buffer,
+                                                      size_t size) {
+  const uint32_t minsz =
+      sizeof(details::pe_resource_icon_dir) + sizeof(details::pe_icon_header);
   if (size < minsz) {
     return make_error_code(lief_errors::read_error);
   }

   SpanStream stream(buffer, size);
-  /* reserved */stream.read<uint16_t>();
+  /* reserved */ stream.read<uint16_t>();
   auto type = stream.read<uint16_t>().value_or(0);
   if (type != 1) {
     return make_error_code(lief_errors::corrupted);
@@ -102,35 +101,33 @@ std::vector<uint8_t> ResourceIcon::serialize() const {
               sizeof(details::pe_icon_header) + pixels_.size());

   ios
-    // pe_resource_icon_dir header
-    .write<uint16_t>(/*reserved*/0)
-    .write<uint16_t>(/*type=icon*/1)
-    .write<uint16_t>(/*count*/1)
-    // pe_icon_header header
-    .write<uint8_t>(width())
-    .write<uint8_t>(height())
-    .write<uint8_t>(color_count())
-    .write<uint8_t>(reserved())
-    .write<uint16_t>(planes())
-    .write<uint16_t>(bit_count())
-    .write<uint32_t>(size())
-    .write<uint32_t>((uint32_t)ios.tellp() + sizeof(uint32_t))
-    // Raw pixels
-    .write(pixels())
-  ;
+      // pe_resource_icon_dir header
+      .write<uint16_t>(/*reserved*/ 0)
+      .write<uint16_t>(/*type=icon*/ 1)
+      .write<uint16_t>(/*count*/ 1)
+      // pe_icon_header header
+      .write<uint8_t>(width())
+      .write<uint8_t>(height())
+      .write<uint8_t>(color_count())
+      .write<uint8_t>(reserved())
+      .write<uint16_t>(planes())
+      .write<uint16_t>(bit_count())
+      .write<uint32_t>(size())
+      .write<uint32_t>((uint32_t)ios.tellp() + sizeof(uint32_t))
+      // Raw pixels
+      .write(pixels());
   return ios.raw();
 }

 void ResourceIcon::save(const std::string& filename) const {
   std::ofstream output_file(filename,
-                            std::ios::out | std::ios::binary |
-                            std::ios::trunc);
+                            std::ios::out | std::ios::binary | std::ios::trunc);
   if (!output_file) {
-    LIEF_ERR("Can't open {} for writing", filename);
+    LIEF_ERR("Failed to open {} for writing", filename);
     return;
   }
   std::vector<uint8_t> raw = serialize();
-  output_file.write((const char*)raw.data(), raw.size());
+  output_file.write(reinterpret_cast<const char*>(raw.data()), raw.size());
 }

 void ResourceIcon::accept(Visitor& visitor) const {
@@ -139,18 +136,18 @@ void ResourceIcon::accept(Visitor& visitor) const {

 std::ostream& operator<<(std::ostream& os, const ResourceIcon& icon) {
   static constexpr auto DEFAULT_ALIGN = 13;
-  os << fmt::format("Icon id=0x{:04x}\n", icon.id());
-  os << fmt::format("  {:{}}: {}x{}\n", "size", DEFAULT_ALIGN, icon.width(), icon.height());
-  os << fmt::format("  {:{}}: {}\n", "color count", DEFAULT_ALIGN, icon.color_count());
+  os << fmt::format("Icon id={:#06x}\n", icon.id());
+  os << fmt::format("  {:{}}: {}x{}\n", "size", DEFAULT_ALIGN, icon.width(),
+                    icon.height());
+  os << fmt::format("  {:{}}: {}\n", "color count", DEFAULT_ALIGN,
+                    icon.color_count());
   os << fmt::format("  {:{}}: {}\n", "reserved", DEFAULT_ALIGN, icon.reserved());
   os << fmt::format("  {:{}}: {}\n", "planes", DEFAULT_ALIGN, icon.planes());
   os << fmt::format("  {:{}}: {}\n", "bit count", DEFAULT_ALIGN, icon.bit_count());
-  os << fmt::format("  {:{}}: 0x{:08x}\n", "pixel (hash)", DEFAULT_ALIGN, Hash::hash(icon.pixels()));
+  os << fmt::format("  {:{}}: {:#010x}\n", "pixel (hash)", DEFAULT_ALIGN,
+                    Hash::hash(icon.pixels()));
   return os;
 }


-
 }
-}
-
diff --git a/deps/LIEF/src/PE/resources/ResourceStringFileInfo.cpp b/deps/LIEF/src/PE/resources/ResourceStringFileInfo.cpp
index 636917cb50a..6580ca0472a 100644
--- a/deps/LIEF/src/PE/resources/ResourceStringFileInfo.cpp
+++ b/deps/LIEF/src/PE/resources/ResourceStringFileInfo.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -25,11 +25,12 @@
 #include "logging.hpp"
 #include "internal_utils.hpp"

-namespace LIEF {
-namespace PE {

+namespace LIEF::PE {

-result<ResourceStringFileInfo> ResourceStringFileInfo::parse(BinaryStream& stream) {
+
+result<ResourceStringFileInfo>
+    ResourceStringFileInfo::parse(BinaryStream& stream) {
   // typedef struct {
   //   WORD        wLength;
   //   WORD        wValueLength;
@@ -73,15 +74,14 @@ result<ResourceStringFileInfo> ResourceStringFileInfo::parse(BinaryStream& strea
     return make_error_code(lief_errors::corrupted);
   }

-  info
-    .type(*wType)
-    .key(std::move(*szKey));
+  info.type(*wType).key(std::move(*szKey));

   stream.align(sizeof(uint32_t));
   while (stream) {
     auto item = ResourceStringTable::parse(stream);
     if (!item) {
-      LIEF_WARN("Can't parse StringFileInfo.Children[{}]", info.children_.size());
+      LIEF_WARN("Failed to parse StringFileInfo.Children[{}]",
+                info.children_.size());
       break;
     }
     info.add_child(std::move(*item));
@@ -111,4 +111,3 @@ std::ostream& operator<<(std::ostream& os, const ResourceStringFileInfo& info) {


 }
-}
diff --git a/deps/LIEF/src/PE/resources/ResourceStringTable.cpp b/deps/LIEF/src/PE/resources/ResourceStringTable.cpp
index 3492a60429c..2478bbbdc01 100644
--- a/deps/LIEF/src/PE/resources/ResourceStringTable.cpp
+++ b/deps/LIEF/src/PE/resources/ResourceStringTable.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-
+#include <spdlog/fmt/fmt.h>
 #include <utility>

 #include "LIEF/utils.hpp"
@@ -22,10 +22,7 @@
 #include "LIEF/PE/resources/ResourceStringTable.hpp"
 #include "LIEF/BinaryStream/BinaryStream.hpp"

-#include "logging.hpp"
-
-namespace LIEF {
-namespace PE {
+namespace LIEF::PE {

 result<ResourceStringTable::entry_t> parse_string(BinaryStream& stream) {
   // typedef struct {
@@ -37,7 +34,9 @@ result<ResourceStringTable::entry_t> parse_string(BinaryStream& stream) {
   //   WORD  Value;
   // } String;
   auto wLength = stream.read<uint16_t>();
-  if (!wLength) { return make_error_code(wLength.error()); }
+  if (!wLength) {
+    return make_error_code(wLength.error());
+  }

   if (*wLength == 0) {
     return make_error_code(lief_errors::read_error);
@@ -46,10 +45,14 @@ result<ResourceStringTable::entry_t> parse_string(BinaryStream& stream) {
   const uint32_t end_offset = stream.pos() - sizeof(uint16_t) + *wLength;

   auto wValueLength = stream.read<uint16_t>();
-  if (!wValueLength) { return make_error_code(wValueLength.error()); }
+  if (!wValueLength) {
+    return make_error_code(wValueLength.error());
+  }

   auto wType = stream.read<uint16_t>();
-  if (!wType) { return make_error_code(wType.error()); }
+  if (!wType) {
+    return make_error_code(wType.error());
+  }

   if (*wType != 0 && wType != 1) {
     return make_error_code(lief_errors::corrupted);
@@ -58,7 +61,9 @@ result<ResourceStringTable::entry_t> parse_string(BinaryStream& stream) {
   ResourceStringTable::entry_t entry;

   auto szKey = stream.read_u16string();
-  if (!szKey) { return make_error_code(szKey.error()); }
+  if (!szKey) {
+    return make_error_code(szKey.error());
+  }

   entry.key = std::move(*szKey);

@@ -73,7 +78,9 @@ result<ResourceStringTable::entry_t> parse_string(BinaryStream& stream) {
   }

   auto Value = stream.read_u16string();
-  if (!Value) { return entry; }
+  if (!Value) {
+    return entry;
+  }

   entry.value = std::move(*Value);

@@ -92,20 +99,28 @@ result<ResourceStringTable> ResourceStringTable::parse(BinaryStream& stream) {
   // } StringTable;
   ResourceStringTable table;
   auto wLength = stream.read<uint16_t>();
-  if (!wLength) { return make_error_code(wLength.error()); }
+  if (!wLength) {
+    return make_error_code(wLength.error());
+  }

   auto wValueLength = stream.read<uint16_t>();
-  if (!wValueLength) { return make_error_code(wValueLength.error()); }
+  if (!wValueLength) {
+    return make_error_code(wValueLength.error());
+  }

   auto wType = stream.read<uint16_t>();
-  if (!wType) { return make_error_code(wType.error()); }
+  if (!wType) {
+    return make_error_code(wType.error());
+  }

   if (*wType != 0 && wType != 1) {
     return make_error_code(lief_errors::corrupted);
   }

   auto szKey = stream.read_u16string();
-  if (!szKey) { return make_error_code(szKey.error()); }
+  if (!szKey) {
+    return make_error_code(szKey.error());
+  }

   table.key(std::move(*szKey));

@@ -160,4 +175,3 @@ std::ostream& operator<<(std::ostream& os, const ResourceStringTable& table) {
 }

 }
-}
diff --git a/deps/LIEF/src/PE/resources/ResourceVar.cpp b/deps/LIEF/src/PE/resources/ResourceVar.cpp
index 90c2f14d650..5d8b391d60c 100644
--- a/deps/LIEF/src/PE/resources/ResourceVar.cpp
+++ b/deps/LIEF/src/PE/resources/ResourceVar.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -13,17 +13,15 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-#include <sstream>
 #include "logging.hpp"

 #include "LIEF/utils.hpp"
-#include "LIEF/Visitor.hpp"

 #include "LIEF/PE/resources/ResourceVar.hpp"
 #include "LIEF/BinaryStream/BinaryStream.hpp"

-namespace LIEF {
-namespace PE {
+
+namespace LIEF::PE {

 result<ResourceVar> ResourceVar::parse(BinaryStream& stream) {
   // typedef struct {
@@ -36,7 +34,9 @@ result<ResourceVar> ResourceVar::parse(BinaryStream& stream) {
   // } Var;
   ResourceVar var;
   auto wLength = stream.read<uint16_t>();
-  if (!wLength) { return make_error_code(wLength.error()); }
+  if (!wLength) {
+    return make_error_code(wLength.error());
+  }

   if (*wLength == 0) {
     return make_error_code(lief_errors::read_error);
@@ -45,25 +45,29 @@ result<ResourceVar> ResourceVar::parse(BinaryStream& stream) {
   const uint32_t end_offset = stream.pos() - sizeof(uint16_t) + *wLength;

   auto wValueLength = stream.read<uint16_t>();
-  if (!wValueLength) { return make_error_code(wValueLength.error()); }
+  if (!wValueLength) {
+    return make_error_code(wValueLength.error());
+  }

   auto wType = stream.read<uint16_t>();
-  if (!wType) { return make_error_code(wType.error()); }
+  if (!wType) {
+    return make_error_code(wType.error());
+  }

   if (*wType != 0 && wType != 1) {
     return make_error_code(lief_errors::corrupted);
   }

   auto szKey = stream.read_u16string();
-  if (!szKey) { return make_error_code(wType.error()); }
+  if (!szKey) {
+    return make_error_code(wType.error());
+  }

   if (u16tou8(*szKey) != "Translation") {
     return make_error_code(lief_errors::corrupted);
   }

-  var
-    .key(std::move(*szKey))
-    .type(*wType);
+  var.key(std::move(*szKey)).type(*wType);

   stream.align(sizeof(uint32_t));

@@ -73,7 +77,7 @@ result<ResourceVar> ResourceVar::parse(BinaryStream& stream) {
   for (size_t i = 0; i < nb_values; ++i) {
     auto value = stream.read<uint32_t>();
     if (!value) {
-      LIEF_WARN("Can't parse value #{:02}", i);
+      LIEF_WARN("Failed to parse value #{:02}", i);
       return var;
     }

@@ -93,7 +97,7 @@ std::ostream& operator<<(std::ostream& os, const ResourceVar& var) {
   std::vector<std::string> values;
   values.reserve(var.values_.size());
   for (uint32_t val : var.values()) {
-    values.push_back(fmt::format("0x{:08x}", val));
+    values.push_back(fmt::format("{:#010x}", val));
   }

   os << fmt::format("{}: {}", var.key_u8(), fmt::join(values, ", "));
@@ -102,4 +106,3 @@ std::ostream& operator<<(std::ostream& os, const ResourceVar& var) {


 }
-}
diff --git a/deps/LIEF/src/PE/resources/ResourceVarFileInfo.cpp b/deps/LIEF/src/PE/resources/ResourceVarFileInfo.cpp
index 61d3b1cefcb..3f9cdf9d000 100644
--- a/deps/LIEF/src/PE/resources/ResourceVarFileInfo.cpp
+++ b/deps/LIEF/src/PE/resources/ResourceVarFileInfo.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -25,41 +25,47 @@
 #include "internal_utils.hpp"
 #include "logging.hpp"

-namespace LIEF {
-namespace PE {
+
+namespace LIEF::PE {

 result<ResourceVarFileInfo> ResourceVarFileInfo::parse(BinaryStream& stream) {
   ResourceVarFileInfo info;
   auto wLength = stream.read<uint16_t>();
-  if (!wLength) { return make_error_code(wLength.error()); }
+  if (!wLength) {
+    return make_error_code(wLength.error());
+  }

   auto wValueLength = stream.read<uint16_t>();
-  if (!wValueLength) { return make_error_code(wValueLength.error()); }
+  if (!wValueLength) {
+    return make_error_code(wValueLength.error());
+  }

   auto wType = stream.read<uint16_t>();
-  if (!wType) { return make_error_code(wType.error()); }
+  if (!wType) {
+    return make_error_code(wType.error());
+  }

   if (*wType != 0 && wType != 1) {
     return make_error_code(lief_errors::corrupted);
   }

   auto szKey = stream.read_u16string();
-  if (!szKey) { return make_error_code(wType.error()); }
+  if (!szKey) {
+    return make_error_code(wType.error());
+  }

   if (u16tou8(*szKey) != "VarFileInfo") {
     return make_error_code(lief_errors::corrupted);
   }

-  info
-    .type(*wType)
-    .key(std::move(*szKey));
+  info.type(*wType).key(std::move(*szKey));


   while (stream) {
     stream.align(sizeof(uint32_t));
     auto var = ResourceVar::parse(stream);
     if (!var) {
-      LIEF_WARN("Can't parse resource var #{}", info.vars_.size());
+      LIEF_WARN("Failed to parse resource var #{}", info.vars_.size());
       return info;
     }
     info.add_var(std::move(*var));
@@ -90,4 +96,3 @@ std::ostream& operator<<(std::ostream& os, const ResourceVarFileInfo& info) {


 }
-}
diff --git a/deps/LIEF/src/PE/resources/ResourceVersion.cpp b/deps/LIEF/src/PE/resources/ResourceVersion.cpp
index c3a50f86964..4e383ff690a 100644
--- a/deps/LIEF/src/PE/resources/ResourceVersion.cpp
+++ b/deps/LIEF/src/PE/resources/ResourceVersion.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -30,25 +30,29 @@
 #include "frozen.hpp"
 #include "fmt_formatter.hpp"

-FMT_FORMATTER(LIEF::PE::ResourceVersion::fixed_file_info_t::VERSION_OS, LIEF::PE::to_string);
-FMT_FORMATTER(LIEF::PE::ResourceVersion::fixed_file_info_t::FILE_TYPE, LIEF::PE::to_string);
-FMT_FORMATTER(LIEF::PE::ResourceVersion::fixed_file_info_t::FILE_TYPE_DETAILS, LIEF::PE::to_string);
-FMT_FORMATTER(LIEF::PE::ResourceVersion::fixed_file_info_t::FILE_FLAGS, LIEF::PE::to_string);
+FMT_FORMATTER(LIEF::PE::ResourceVersion::fixed_file_info_t::VERSION_OS,
+              LIEF::PE::to_string);
+FMT_FORMATTER(LIEF::PE::ResourceVersion::fixed_file_info_t::FILE_TYPE,
+              LIEF::PE::to_string);
+FMT_FORMATTER(LIEF::PE::ResourceVersion::fixed_file_info_t::FILE_TYPE_DETAILS,
+              LIEF::PE::to_string);
+FMT_FORMATTER(LIEF::PE::ResourceVersion::fixed_file_info_t::FILE_FLAGS,
+              LIEF::PE::to_string);

-namespace LIEF {
-namespace PE {
+
+namespace LIEF::PE {

 static constexpr auto FILE_FLAGS_ARRAY = {
-  ResourceVersion::fixed_file_info_t::FILE_FLAGS::DEBUG,
-  ResourceVersion::fixed_file_info_t::FILE_FLAGS::INFO_INFERRED,
-  ResourceVersion::fixed_file_info_t::FILE_FLAGS::PATCHED,
-  ResourceVersion::fixed_file_info_t::FILE_FLAGS::PRERELEASE,
-  ResourceVersion::fixed_file_info_t::FILE_FLAGS::PRIVATEBUILD,
-  ResourceVersion::fixed_file_info_t::FILE_FLAGS::SPECIALBUILD,
+    ResourceVersion::fixed_file_info_t::FILE_FLAGS::DEBUG,
+    ResourceVersion::fixed_file_info_t::FILE_FLAGS::INFO_INFERRED,
+    ResourceVersion::fixed_file_info_t::FILE_FLAGS::PATCHED,
+    ResourceVersion::fixed_file_info_t::FILE_FLAGS::PRERELEASE,
+    ResourceVersion::fixed_file_info_t::FILE_FLAGS::PRIVATEBUILD,
+    ResourceVersion::fixed_file_info_t::FILE_FLAGS::SPECIALBUILD,
 };


-// True is the stream points to a StringFileInfo structure
+// True if the stream points to a StringFileInfo structure
 inline bool is_string_file_info(BinaryStream& strm) {
   ScopedStream scope(strm);
   [[maybe_unused]] auto wLength = scope->read<uint16_t>().value_or(0);
@@ -62,7 +66,7 @@ inline bool is_string_file_info(BinaryStream& strm) {
   return u16tou8(szKey) == "StringFileInfo";
 }

-// True is the stream points to a VarFileInfo structure
+// True if the stream points to a VarFileInfo structure
 inline bool is_var_file_info(BinaryStream& strm) {
   ScopedStream scope(strm);
   [[maybe_unused]] auto wLength = scope->read<uint16_t>().value_or(0);
@@ -117,14 +121,15 @@ result<ResourceVersion> ResourceVersion::parse(BinaryStream& stream) {
   }

   // The type of data in the version resource. This member is 1 if the version
-  // resource contains text data and 0 if the version resource contains binary data.
+  // resource contains text data and 0 if the version resource contains binary
+  // data.
   auto wType = stream.read<uint16_t>();
   if (!wType) {
     return make_error_code(wType.error());
   }

   if (*wType != 0 && *wType != 1) {
-    LIEF_WARN("VS_VERSIONINFO.wType should be 0 or 1. Got: {}", *wType);
+    LIEF_WARN("VS_VERSIONINFO.wType should be 0 or 1, got {}", *wType);
     return make_error_code(lief_errors::corrupted);
   }

@@ -136,12 +141,13 @@ result<ResourceVersion> ResourceVersion::parse(BinaryStream& stream) {

   std::string szKey_u8 = u16tou8(*szKey);
   if (szKey_u8 != "VS_VERSION_INFO") {
-    LIEF_WARN("VS_VERSIONINFO.szKey should be 'VS_VERSION_INFO'. Got: {}",
+    LIEF_WARN("VS_VERSIONINFO.szKey should be 'VS_VERSION_INFO', got {}",
               szKey_u8);
     return make_error_code(lief_errors::corrupted);
   }

-  // Contains as many zero words as necessary to align the Value member on a 32-bit boundary.
+  // Contains as many zero words as necessary to align the Value member on a 32-bit
+  // boundary.
   stream.align(sizeof(uint32_t));

   // Type: VS_FIXEDFILEINFO
@@ -155,7 +161,7 @@ result<ResourceVersion> ResourceVersion::parse(BinaryStream& stream) {
     }
     SpanStream fixed_strm(Value);
     if (auto is_ok = parse_fixed_file_info(version, fixed_strm); !is_ok) {
-      LIEF_WARN("Failed to parse the 'VS_FIXEDFILEINFO' structure");
+      LIEF_WARN("Failed to parse VS_FIXEDFILEINFO structure");
     }
   }

@@ -164,16 +170,14 @@ result<ResourceVersion> ResourceVersion::parse(BinaryStream& stream) {
   // This member is optional.
   stream.align(sizeof(uint32_t));

-  version
-    .type(*wType)
-    .key(std::move(*szKey));
+  version.type(*wType).key(std::move(*szKey));

   // Children:
   // An array of zero or one StringFileInfo structures, and zero or one
   // VarFileInfo structures that are children of the current VS_VERSIONINFO
   // structure.
   if (auto is_ok = parse_children(version, stream); !is_ok) {
-    LIEF_WARN("Failed to parse 'VS_VERSIONINFO' children");
+    LIEF_WARN("Failed to parse VS_VERSIONINFO children");
   }

   LIEF_DEBUG("Bytes left: {}", stream.size() - stream.pos());
@@ -182,8 +186,7 @@ result<ResourceVersion> ResourceVersion::parse(BinaryStream& stream) {


 ok_error_t ResourceVersion::parse_fixed_file_info(ResourceVersion& version,
-                                                  BinaryStream& stream)
-{
+                                                  BinaryStream& stream) {
   // typedef struct tagVS_FIXEDFILEINFO {
   //   DWORD dwSignature;
   //   DWORD dwStrucVersion;
@@ -201,50 +204,77 @@ ok_error_t ResourceVersion::parse_fixed_file_info(ResourceVersion& version,
   // } VS_FIXEDFILEINFO;

   // Contains the value 0xFEEF04BD. This is used with the szKey member of the
-  // VS_VERSIONINFO structure when searching a file for the VS_FIXEDFILEINFO structure.
+  // VS_VERSIONINFO structure when searching a file for the VS_FIXEDFILEINFO
+  // structure.
   auto dwSignature = stream.read<uint32_t>();
-  if (!dwSignature) { return make_error_code(dwSignature.error()); }
+  if (!dwSignature) {
+    return make_error_code(dwSignature.error());
+  }

   if (*dwSignature != fixed_file_info_t::SIGNATURE_VALUE) {
-    LIEF_WARN("VS_FIXEDFILEINFO.dwSignature: expecting 0x{:08x}, got: 0x{:08x}",
+    LIEF_WARN("VS_FIXEDFILEINFO.dwSignature: expecting {:#010x}, got: {:#010x}",
               fixed_file_info_t::SIGNATURE_VALUE, *dwSignature);
   }

   auto dwStrucVersion = stream.read<uint32_t>();
-  if (!dwStrucVersion) { return make_error_code(dwStrucVersion.error()); }
+  if (!dwStrucVersion) {
+    return make_error_code(dwStrucVersion.error());
+  }

   auto dwFileVersionMS = stream.read<uint32_t>();
-  if (!dwFileVersionMS) { return make_error_code(dwFileVersionMS.error()); }
+  if (!dwFileVersionMS) {
+    return make_error_code(dwFileVersionMS.error());
+  }

   auto dwFileVersionLS = stream.read<uint32_t>();
-  if (!dwFileVersionLS) { return make_error_code(dwFileVersionLS.error()); }
+  if (!dwFileVersionLS) {
+    return make_error_code(dwFileVersionLS.error());
+  }

   auto dwProductVersionMS = stream.read<uint32_t>();
-  if (!dwProductVersionMS) { return make_error_code(dwProductVersionMS.error()); }
+  if (!dwProductVersionMS) {
+    return make_error_code(dwProductVersionMS.error());
+  }

   auto dwProductVersionLS = stream.read<uint32_t>();
-  if (!dwProductVersionLS) { return make_error_code(dwProductVersionLS.error()); }
+  if (!dwProductVersionLS) {
+    return make_error_code(dwProductVersionLS.error());
+  }

   auto dwFileFlagsMask = stream.read<uint32_t>();
-  if (!dwFileFlagsMask) { return make_error_code(dwFileFlagsMask.error()); }
+  if (!dwFileFlagsMask) {
+    return make_error_code(dwFileFlagsMask.error());
+  }

   auto dwFileFlags = stream.read<uint32_t>();
-  if (!dwFileFlags) { return make_error_code(dwFileFlags.error()); }
+  if (!dwFileFlags) {
+    return make_error_code(dwFileFlags.error());
+  }

   auto dwFileOS = stream.read<uint32_t>();
-  if (!dwFileOS) { return make_error_code(dwFileOS.error()); }
+  if (!dwFileOS) {
+    return make_error_code(dwFileOS.error());
+  }

   auto dwFileType = stream.read<uint32_t>();
-  if (!dwFileType) { return make_error_code(dwFileType.error()); }
+  if (!dwFileType) {
+    return make_error_code(dwFileType.error());
+  }

   auto dwFileSubtype = stream.read<uint32_t>();
-  if (!dwFileSubtype) { return make_error_code(dwFileSubtype.error()); }
+  if (!dwFileSubtype) {
+    return make_error_code(dwFileSubtype.error());
+  }

   auto dwFileDateMS = stream.read<uint32_t>();
-  if (!dwFileDateMS) { return make_error_code(dwFileDateMS.error()); }
+  if (!dwFileDateMS) {
+    return make_error_code(dwFileDateMS.error());
+  }

   auto dwFileDateLS = stream.read<uint32_t>();
-  if (!dwFileDateLS) { return make_error_code(dwFileDateLS.error()); }
+  if (!dwFileDateLS) {
+    return make_error_code(dwFileDateLS.error());
+  }

   version.fixed_file_info_.signature = *dwSignature;
   version.fixed_file_info_.struct_version = *dwStrucVersion;
@@ -272,7 +302,7 @@ inline std::string version_to_str(uint32_t lsb, uint32_t msb) {
 std::string ResourceVersion::fixed_file_info_t::to_string() const {
   static constexpr auto WIDTH = 20;
   std::ostringstream oss;
-  oss << fmt::format("{:{}}: 0x{:06x}\n", "Struct Version", WIDTH, struct_version);
+  oss << fmt::format("{:{}}: {:#08x}\n", "Struct Version", WIDTH, struct_version);
   oss << fmt::format("{:{}}: {}\n", "File version", WIDTH,
                      version_to_str(file_version_ls, file_version_ms));

@@ -280,17 +310,17 @@ std::string ResourceVersion::fixed_file_info_t::to_string() const {
                      version_to_str(product_version_ls, product_version_ms));

   if (file_flags != 0) {
-    oss << fmt::format("{:{}}: {} (0x{:08x})\n", "Flags", WIDTH,
+    oss << fmt::format("{:{}}: {} ({:#010x})\n", "Flags", WIDTH,
                        fmt::to_string(flags()), file_flags);
   }
-  oss << fmt::format("{:{}}: {} (0x{:08x})\n", "File OS", WIDTH,
+  oss << fmt::format("{:{}}: {} ({:#010x})\n", "File OS", WIDTH,
                      VERSION_OS(file_os), file_os);

-  oss << fmt::format("{:{}}: {} (0x{:08x})\n", "File Type", WIDTH,
+  oss << fmt::format("{:{}}: {} ({:#010x})\n", "File Type", WIDTH,
                      FILE_TYPE(file_type), file_type);

   if (file_subtype > 0) {
-    oss << fmt::format("{:{}}: {} (0x{:08x})\n", "File Subtype", WIDTH,
+    oss << fmt::format("{:{}}: {} ({:#010x})\n", "File Subtype", WIDTH,
                        file_type_details(), file_subtype);
   }

@@ -303,18 +333,15 @@ std::string ResourceVersion::fixed_file_info_t::to_string() const {
 }

 std::vector<ResourceVersion::fixed_file_info_t::FILE_FLAGS>
-  ResourceVersion::fixed_file_info_t::flags() const
-{
+    ResourceVersion::fixed_file_info_t::flags() const {
   std::vector<FILE_FLAGS> out;
   std::copy_if(FILE_FLAGS_ARRAY.begin(), FILE_FLAGS_ARRAY.end(),
-               std::back_inserter(out),
-               [this] (FILE_FLAGS c) { return has(c); });
+               std::back_inserter(out), [this](FILE_FLAGS c) { return has(c); });
   return out;
 }

 ok_error_t ResourceVersion::parse_children(ResourceVersion& version,
-                                           BinaryStream& stream)
-{
+                                           BinaryStream& stream) {

   stream.align(sizeof(uint32_t));

@@ -332,7 +359,7 @@ ok_error_t ResourceVersion::parse_children(ResourceVersion& version,

     SpanStream child_strm(payload);
     if (auto is_ok = parse_child(version, child_strm); !is_ok) {
-      LIEF_WARN("Failed to parse the first child");
+      LIEF_WARN("Failed to parse first child");
     }
   }

@@ -350,7 +377,7 @@ ok_error_t ResourceVersion::parse_children(ResourceVersion& version,
     }
     SpanStream child_strm(payload);
     if (auto is_ok = parse_child(version, child_strm); !is_ok) {
-      LIEF_WARN("Failed to parse the second child");
+      LIEF_WARN("Failed to parse second child");
     }
   }
   return ok();
@@ -358,8 +385,7 @@ ok_error_t ResourceVersion::parse_children(ResourceVersion& version,


 ok_error_t ResourceVersion::parse_child(ResourceVersion& version,
-                                        BinaryStream& stream)
-{
+                                        BinaryStream& stream) {
   if (is_var_file_info(stream)) {
     return parse_var_file_info(version, stream);
   }
@@ -372,8 +398,7 @@ ok_error_t ResourceVersion::parse_child(ResourceVersion& version,
 }

 ok_error_t ResourceVersion::parse_str_file_info(ResourceVersion& version,
-                                                BinaryStream& stream)
-{
+                                                BinaryStream& stream) {
   auto info = ResourceStringFileInfo::parse(stream);
   if (!info) {
     LIEF_DEBUG("Error: {}:{}", __FUNCTION__, __LINE__);
@@ -385,8 +410,7 @@ ok_error_t ResourceVersion::parse_str_file_info(ResourceVersion& version,
 }

 ok_error_t ResourceVersion::parse_var_file_info(ResourceVersion& version,
-                                                BinaryStream& stream)
-{
+                                                BinaryStream& stream) {
   auto info = ResourceVarFileInfo::parse(stream);
   if (!info) {
     LIEF_DEBUG("Error: {}:{}", __FUNCTION__, __LINE__);
@@ -420,16 +444,12 @@ std::ostream& operator<<(std::ostream& os, const ResourceVersion& version) {
 }

 const char* to_string(ResourceVersion::fixed_file_info_t::FILE_FLAGS e) {
-  #define ENTRY(X) std::pair(ResourceVersion::fixed_file_info_t::FILE_FLAGS::X, #X)
-  STRING_MAP enums2str {
-    ENTRY(DEBUG),
-    ENTRY(INFO_INFERRED),
-    ENTRY(PATCHED),
-    ENTRY(PRERELEASE),
-    ENTRY(PRIVATEBUILD),
-    ENTRY(SPECIALBUILD),
+#define ENTRY(X) std::pair(ResourceVersion::fixed_file_info_t::FILE_FLAGS::X, #X)
+  STRING_MAP enums2str{
+      ENTRY(DEBUG),      ENTRY(INFO_INFERRED), ENTRY(PATCHED),
+      ENTRY(PRERELEASE), ENTRY(PRIVATEBUILD),  ENTRY(SPECIALBUILD),
   };
-  #undef ENTRY
+#undef ENTRY

   if (auto it = enums2str.find(e); it != enums2str.end()) {
     return it->second;
@@ -438,24 +458,15 @@ const char* to_string(ResourceVersion::fixed_file_info_t::FILE_FLAGS e) {
 }

 const char* to_string(ResourceVersion::fixed_file_info_t::VERSION_OS e) {
-  #define ENTRY(X) std::pair(ResourceVersion::fixed_file_info_t::VERSION_OS::X, #X)
-  STRING_MAP enums2str {
-    ENTRY(DOS_WINDOWS16),
-    ENTRY(DOS_WINDOWS32),
-    ENTRY(NT),
-    ENTRY(NT_WINDOWS32),
-    ENTRY(OS216),
-    ENTRY(OS216_PM16),
-    ENTRY(OS232),
-    ENTRY(OS232_PM32),
-    ENTRY(PM16),
-    ENTRY(PM32),
-    ENTRY(UNKNOWN),
-    ENTRY(WINCE),
-    ENTRY(WINDOWS16),
-    ENTRY(WINDOWS32),
+#define ENTRY(X) std::pair(ResourceVersion::fixed_file_info_t::VERSION_OS::X, #X)
+  STRING_MAP enums2str{
+      ENTRY(DOS_WINDOWS16), ENTRY(DOS_WINDOWS32), ENTRY(NT),
+      ENTRY(NT_WINDOWS32),  ENTRY(OS216),         ENTRY(OS216_PM16),
+      ENTRY(OS232),         ENTRY(OS232_PM32),    ENTRY(PM16),
+      ENTRY(PM32),          ENTRY(UNKNOWN),       ENTRY(WINCE),
+      ENTRY(WINDOWS16),     ENTRY(WINDOWS32),
   };
-  #undef ENTRY
+#undef ENTRY

   if (auto it = enums2str.find(e); it != enums2str.end()) {
     return it->second;
@@ -464,17 +475,12 @@ const char* to_string(ResourceVersion::fixed_file_info_t::VERSION_OS e) {
 }

 const char* to_string(ResourceVersion::fixed_file_info_t::FILE_TYPE e) {
-  #define ENTRY(X) std::pair(ResourceVersion::fixed_file_info_t::FILE_TYPE::X, #X)
-  STRING_MAP enums2str {
-    ENTRY(UNKNOWN),
-    ENTRY(APP),
-    ENTRY(DLL),
-    ENTRY(DRV),
-    ENTRY(FONT),
-    ENTRY(STATIC_LIB),
-    ENTRY(VXD),
+#define ENTRY(X) std::pair(ResourceVersion::fixed_file_info_t::FILE_TYPE::X, #X)
+  STRING_MAP enums2str{
+      ENTRY(UNKNOWN), ENTRY(APP),        ENTRY(DLL), ENTRY(DRV),
+      ENTRY(FONT),    ENTRY(STATIC_LIB), ENTRY(VXD),
   };
-  #undef ENTRY
+#undef ENTRY

   if (auto it = enums2str.find(e); it != enums2str.end()) {
     return it->second;
@@ -483,26 +489,17 @@ const char* to_string(ResourceVersion::fixed_file_info_t::FILE_TYPE e) {
 }

 const char* to_string(ResourceVersion::fixed_file_info_t::FILE_TYPE_DETAILS e) {
-  #define ENTRY(X) std::pair(ResourceVersion::fixed_file_info_t::FILE_TYPE_DETAILS::X, #X)
-  STRING_MAP enums2str {
-    ENTRY(DRV_COMM),
-    ENTRY(DRV_DISPLAY),
-    ENTRY(DRV_INPUTMETHOD),
-    ENTRY(DRV_INSTALLABLE),
-    ENTRY(DRV_KEYBOARD),
-    ENTRY(DRV_LANGUAGE),
-    ENTRY(DRV_MOUSE),
-    ENTRY(DRV_NETWORK),
-    ENTRY(DRV_PRINTER),
-    ENTRY(DRV_SOUND),
-    ENTRY(DRV_SYSTEM),
-    ENTRY(DRV_VERSIONED_PRINTER),
-    ENTRY(FONT_RASTER),
-    ENTRY(FONT_TRUETYPE),
-    ENTRY(FONT_VECTOR),
-    ENTRY(UNKNOWN),
+#define ENTRY(X)                                                                  \
+  std::pair(ResourceVersion::fixed_file_info_t::FILE_TYPE_DETAILS::X, #X)
+  STRING_MAP enums2str{
+      ENTRY(DRV_COMM),        ENTRY(DRV_DISPLAY),   ENTRY(DRV_INPUTMETHOD),
+      ENTRY(DRV_INSTALLABLE), ENTRY(DRV_KEYBOARD),  ENTRY(DRV_LANGUAGE),
+      ENTRY(DRV_MOUSE),       ENTRY(DRV_NETWORK),   ENTRY(DRV_PRINTER),
+      ENTRY(DRV_SOUND),       ENTRY(DRV_SYSTEM),    ENTRY(DRV_VERSIONED_PRINTER),
+      ENTRY(FONT_RASTER),     ENTRY(FONT_TRUETYPE), ENTRY(FONT_VECTOR),
+      ENTRY(UNKNOWN),
   };
-  #undef ENTRY
+#undef ENTRY

   if (auto it = enums2str.find(e); it != enums2str.end()) {
     return it->second;
@@ -511,4 +508,3 @@ const char* to_string(ResourceVersion::fixed_file_info_t::FILE_TYPE_DETAILS e) {
 }

 }
-}
diff --git a/deps/LIEF/src/PE/resources/styles_array.hpp b/deps/LIEF/src/PE/resources/styles_array.hpp
index 8a5c4fb4067..eba0903134f 100644
--- a/deps/LIEF/src/PE/resources/styles_array.hpp
+++ b/deps/LIEF/src/PE/resources/styles_array.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -19,76 +19,76 @@

 namespace LIEF::PE {
 static constexpr auto DIALOG_STYLES_ARRAY = {
-  ResourceDialog::DIALOG_STYLES::ABSALIGN,
-  ResourceDialog::DIALOG_STYLES::SYSMODAL,
-  ResourceDialog::DIALOG_STYLES::LOCALEDIT,
-  ResourceDialog::DIALOG_STYLES::SETFONT,
-  ResourceDialog::DIALOG_STYLES::MODALFRAME,
-  ResourceDialog::DIALOG_STYLES::NOIDLEMSG,
-  ResourceDialog::DIALOG_STYLES::SETFOREGROUND,
-  ResourceDialog::DIALOG_STYLES::S3DLOOK,
-  ResourceDialog::DIALOG_STYLES::FIXEDSYS,
-  ResourceDialog::DIALOG_STYLES::NOFAILCREATE,
-  ResourceDialog::DIALOG_STYLES::CONTROL,
-  ResourceDialog::DIALOG_STYLES::CENTER,
-  ResourceDialog::DIALOG_STYLES::CENTERMOUSE,
-  ResourceDialog::DIALOG_STYLES::CONTEXTHELP,
-  ResourceDialog::DIALOG_STYLES::SHELLFONT,
+    ResourceDialog::DIALOG_STYLES::ABSALIGN,
+    ResourceDialog::DIALOG_STYLES::SYSMODAL,
+    ResourceDialog::DIALOG_STYLES::LOCALEDIT,
+    ResourceDialog::DIALOG_STYLES::SETFONT,
+    ResourceDialog::DIALOG_STYLES::MODALFRAME,
+    ResourceDialog::DIALOG_STYLES::NOIDLEMSG,
+    ResourceDialog::DIALOG_STYLES::SETFOREGROUND,
+    ResourceDialog::DIALOG_STYLES::S3DLOOK,
+    ResourceDialog::DIALOG_STYLES::FIXEDSYS,
+    ResourceDialog::DIALOG_STYLES::NOFAILCREATE,
+    ResourceDialog::DIALOG_STYLES::CONTROL,
+    ResourceDialog::DIALOG_STYLES::CENTER,
+    ResourceDialog::DIALOG_STYLES::CENTERMOUSE,
+    ResourceDialog::DIALOG_STYLES::CONTEXTHELP,
+    ResourceDialog::DIALOG_STYLES::SHELLFONT,
 };

 static constexpr auto WINDOW_STYLES_ARRAY = {
-  ResourceDialog::WINDOW_STYLES::OVERLAPPED,
-  ResourceDialog::WINDOW_STYLES::POPUP,
-  ResourceDialog::WINDOW_STYLES::CHILD,
-  ResourceDialog::WINDOW_STYLES::MINIMIZE,
-  ResourceDialog::WINDOW_STYLES::VISIBLE,
-  ResourceDialog::WINDOW_STYLES::DISABLED,
-  ResourceDialog::WINDOW_STYLES::CLIPSIBLINGS,
-  ResourceDialog::WINDOW_STYLES::CLIPCHILDREN,
-  ResourceDialog::WINDOW_STYLES::MAXIMIZE,
-  ResourceDialog::WINDOW_STYLES::CAPTION,
-  ResourceDialog::WINDOW_STYLES::BORDER,
-  ResourceDialog::WINDOW_STYLES::DLGFRAME,
-  ResourceDialog::WINDOW_STYLES::VSCROLL,
-  ResourceDialog::WINDOW_STYLES::HSCROLL,
-  ResourceDialog::WINDOW_STYLES::SYSMENU,
-  ResourceDialog::WINDOW_STYLES::THICKFRAME,
-  ResourceDialog::WINDOW_STYLES::GROUP,
-  ResourceDialog::WINDOW_STYLES::TABSTOP,
+    ResourceDialog::WINDOW_STYLES::OVERLAPPED,
+    ResourceDialog::WINDOW_STYLES::POPUP,
+    ResourceDialog::WINDOW_STYLES::CHILD,
+    ResourceDialog::WINDOW_STYLES::MINIMIZE,
+    ResourceDialog::WINDOW_STYLES::VISIBLE,
+    ResourceDialog::WINDOW_STYLES::DISABLED,
+    ResourceDialog::WINDOW_STYLES::CLIPSIBLINGS,
+    ResourceDialog::WINDOW_STYLES::CLIPCHILDREN,
+    ResourceDialog::WINDOW_STYLES::MAXIMIZE,
+    ResourceDialog::WINDOW_STYLES::CAPTION,
+    ResourceDialog::WINDOW_STYLES::BORDER,
+    ResourceDialog::WINDOW_STYLES::DLGFRAME,
+    ResourceDialog::WINDOW_STYLES::VSCROLL,
+    ResourceDialog::WINDOW_STYLES::HSCROLL,
+    ResourceDialog::WINDOW_STYLES::SYSMENU,
+    ResourceDialog::WINDOW_STYLES::THICKFRAME,
+    ResourceDialog::WINDOW_STYLES::GROUP,
+    ResourceDialog::WINDOW_STYLES::TABSTOP,
 };

 static constexpr auto WINDOW_EXTENDED_STYLES_ARRAY = {
-  ResourceDialog::WINDOW_EXTENDED_STYLES::DLGMODALFRAME,
-  ResourceDialog::WINDOW_EXTENDED_STYLES::NOPARENTNOTIFY,
-  ResourceDialog::WINDOW_EXTENDED_STYLES::TOPMOST,
-  ResourceDialog::WINDOW_EXTENDED_STYLES::ACCEPTFILES,
-  ResourceDialog::WINDOW_EXTENDED_STYLES::TRANSPARENT_STY,
-  ResourceDialog::WINDOW_EXTENDED_STYLES::MDICHILD,
-  ResourceDialog::WINDOW_EXTENDED_STYLES::TOOLWINDOW,
-  ResourceDialog::WINDOW_EXTENDED_STYLES::WINDOWEDGE,
-  ResourceDialog::WINDOW_EXTENDED_STYLES::CLIENTEDGE,
-  ResourceDialog::WINDOW_EXTENDED_STYLES::CONTEXTHELP,
-  ResourceDialog::WINDOW_EXTENDED_STYLES::RIGHT,
-  ResourceDialog::WINDOW_EXTENDED_STYLES::LEFT,
-  ResourceDialog::WINDOW_EXTENDED_STYLES::RTLREADING,
-  ResourceDialog::WINDOW_EXTENDED_STYLES::LEFTSCROLLBAR,
-  ResourceDialog::WINDOW_EXTENDED_STYLES::CONTROLPARENT,
-  ResourceDialog::WINDOW_EXTENDED_STYLES::STATICEDGE,
-  ResourceDialog::WINDOW_EXTENDED_STYLES::APPWINDOW,
+    ResourceDialog::WINDOW_EXTENDED_STYLES::DLGMODALFRAME,
+    ResourceDialog::WINDOW_EXTENDED_STYLES::NOPARENTNOTIFY,
+    ResourceDialog::WINDOW_EXTENDED_STYLES::TOPMOST,
+    ResourceDialog::WINDOW_EXTENDED_STYLES::ACCEPTFILES,
+    ResourceDialog::WINDOW_EXTENDED_STYLES::TRANSPARENT_STY,
+    ResourceDialog::WINDOW_EXTENDED_STYLES::MDICHILD,
+    ResourceDialog::WINDOW_EXTENDED_STYLES::TOOLWINDOW,
+    ResourceDialog::WINDOW_EXTENDED_STYLES::WINDOWEDGE,
+    ResourceDialog::WINDOW_EXTENDED_STYLES::CLIENTEDGE,
+    ResourceDialog::WINDOW_EXTENDED_STYLES::CONTEXTHELP,
+    ResourceDialog::WINDOW_EXTENDED_STYLES::RIGHT,
+    ResourceDialog::WINDOW_EXTENDED_STYLES::LEFT,
+    ResourceDialog::WINDOW_EXTENDED_STYLES::RTLREADING,
+    ResourceDialog::WINDOW_EXTENDED_STYLES::LEFTSCROLLBAR,
+    ResourceDialog::WINDOW_EXTENDED_STYLES::CONTROLPARENT,
+    ResourceDialog::WINDOW_EXTENDED_STYLES::STATICEDGE,
+    ResourceDialog::WINDOW_EXTENDED_STYLES::APPWINDOW,
 };

 static constexpr auto CONTROL_STYLES_ARRAY = {
-  ResourceDialog::CONTROL_STYLES::TOP,
-  ResourceDialog::CONTROL_STYLES::NOMOVEY,
-  ResourceDialog::CONTROL_STYLES::BOTTOM,
-  ResourceDialog::CONTROL_STYLES::NORESIZE,
-  ResourceDialog::CONTROL_STYLES::NOPARENTALIGN,
-  ResourceDialog::CONTROL_STYLES::ADJUSTABLE,
-  ResourceDialog::CONTROL_STYLES::NODIVIDER,
-  ResourceDialog::CONTROL_STYLES::VERT,
-  ResourceDialog::CONTROL_STYLES::LEFT,
-  ResourceDialog::CONTROL_STYLES::RIGHT,
-  ResourceDialog::CONTROL_STYLES::NOMOVEX,
+    ResourceDialog::CONTROL_STYLES::TOP,
+    ResourceDialog::CONTROL_STYLES::NOMOVEY,
+    ResourceDialog::CONTROL_STYLES::BOTTOM,
+    ResourceDialog::CONTROL_STYLES::NORESIZE,
+    ResourceDialog::CONTROL_STYLES::NOPARENTALIGN,
+    ResourceDialog::CONTROL_STYLES::ADJUSTABLE,
+    ResourceDialog::CONTROL_STYLES::NODIVIDER,
+    ResourceDialog::CONTROL_STYLES::VERT,
+    ResourceDialog::CONTROL_STYLES::LEFT,
+    ResourceDialog::CONTROL_STYLES::RIGHT,
+    ResourceDialog::CONTROL_STYLES::NOMOVEX,
 };
 }

diff --git a/deps/LIEF/src/PE/signature/Attribute.cpp b/deps/LIEF/src/PE/signature/Attribute.cpp
index 90108a0d79d..9a532d11f89 100644
--- a/deps/LIEF/src/PE/signature/Attribute.cpp
+++ b/deps/LIEF/src/PE/signature/Attribute.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -13,40 +13,37 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-#include <string>
-#include <ostream>
-
 #include "frozen.hpp"

 #include "LIEF/Visitor.hpp"
 #include "LIEF/PE/signature/Attribute.hpp"

-namespace LIEF {
-namespace PE {
+
+namespace LIEF::PE {

 void Attribute::accept(Visitor& visitor) const {
   visitor.visit(*this);
 }

 const char* to_string(Attribute::TYPE e) {
-  #define ENTRY(X) std::pair(Attribute::TYPE::X, #X)
-  STRING_MAP enums2str {
-    ENTRY(UNKNOWN),
-    ENTRY(CONTENT_TYPE),
-    ENTRY(GENERIC_TYPE),
-    ENTRY(SIGNING_CERTIFICATE_V2),
-    ENTRY(SPC_SP_OPUS_INFO),
-    ENTRY(SPC_RELAXED_PE_MARKER_CHECK),
-    ENTRY(MS_COUNTER_SIGN),
-    ENTRY(MS_SPC_NESTED_SIGN),
-    ENTRY(MS_SPC_STATEMENT_TYPE),
-    ENTRY(MS_PLATFORM_MANIFEST_BINARY_ID),
-    ENTRY(PKCS9_AT_SEQUENCE_NUMBER),
-    ENTRY(PKCS9_COUNTER_SIGNATURE),
-    ENTRY(PKCS9_MESSAGE_DIGEST),
-    ENTRY(PKCS9_SIGNING_TIME),
+#define ENTRY(X) std::pair(Attribute::TYPE::X, #X)
+  STRING_MAP enums2str{
+      ENTRY(UNKNOWN),
+      ENTRY(CONTENT_TYPE),
+      ENTRY(GENERIC_TYPE),
+      ENTRY(SIGNING_CERTIFICATE_V2),
+      ENTRY(SPC_SP_OPUS_INFO),
+      ENTRY(SPC_RELAXED_PE_MARKER_CHECK),
+      ENTRY(MS_COUNTER_SIGN),
+      ENTRY(MS_SPC_NESTED_SIGN),
+      ENTRY(MS_SPC_STATEMENT_TYPE),
+      ENTRY(MS_PLATFORM_MANIFEST_BINARY_ID),
+      ENTRY(PKCS9_AT_SEQUENCE_NUMBER),
+      ENTRY(PKCS9_COUNTER_SIGNATURE),
+      ENTRY(PKCS9_MESSAGE_DIGEST),
+      ENTRY(PKCS9_SIGNING_TIME),
   };
-  #undef ENTRY
+#undef ENTRY

   if (auto it = enums2str.find(e); it != enums2str.end()) {
     return it->second;
@@ -56,4 +53,3 @@ const char* to_string(Attribute::TYPE e) {
 }

 }
-}
diff --git a/deps/LIEF/src/PE/signature/ContentInfo.cpp b/deps/LIEF/src/PE/signature/ContentInfo.cpp
index 33a0c74826a..7ca92f5ea4d 100644
--- a/deps/LIEF/src/PE/signature/ContentInfo.cpp
+++ b/deps/LIEF/src/PE/signature/ContentInfo.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -24,18 +24,16 @@

 #include <ostream>

-namespace LIEF {
-namespace PE {
+
+namespace LIEF::PE {


 ContentInfo::ContentInfo() :
-  value_(std::make_unique<GenericContent>())
-{}
+  value_(std::make_unique<GenericContent>()) {}

 ContentInfo::ContentInfo(const ContentInfo& other) :
   Object::Object(other),
-  value_{other.value_->clone()}
-{}
+  value_{other.value_->clone()} {}

 ContentInfo& ContentInfo::operator=(ContentInfo other) {
   swap(other);
@@ -70,4 +68,3 @@ std::ostream& operator<<(std::ostream& os, const ContentInfo& content_info) {
 }

 }
-}
diff --git a/deps/LIEF/src/PE/signature/GenericContent.cpp b/deps/LIEF/src/PE/signature/GenericContent.cpp
index cbf50445b56..3b97ca2a7f1 100644
--- a/deps/LIEF/src/PE/signature/GenericContent.cpp
+++ b/deps/LIEF/src/PE/signature/GenericContent.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -18,19 +18,17 @@

 #include <spdlog/fmt/fmt.h>

-namespace LIEF {
-namespace PE {
+
+namespace LIEF::PE {

 static constexpr const char GENERIC_OBJID[] = "LIEF_CONTENT_GENERIC";

 GenericContent::GenericContent() :
-  ContentInfo::Content(GENERIC_OBJID)
-{}
+  ContentInfo::Content(GENERIC_OBJID) {}

 GenericContent::GenericContent(oid_t oid) :
   ContentInfo::Content(GENERIC_OBJID),
-  oid_(std::move(oid))
-{}
+  oid_(std::move(oid)) {}

 GenericContent::~GenericContent() = default;

@@ -48,4 +46,3 @@ void GenericContent::print(std::ostream& os) const {


 }
-}
diff --git a/deps/LIEF/src/PE/signature/OIDToString.cpp b/deps/LIEF/src/PE/signature/OIDToString.cpp
index 8fe4dd49510..e64c5d861ee 100644
--- a/deps/LIEF/src/PE/signature/OIDToString.cpp
+++ b/deps/LIEF/src/PE/signature/OIDToString.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -17,2237 +17,2238 @@

 #include "LIEF/PE/signature/OIDToString.hpp"

-namespace LIEF {
-namespace PE {
+
+namespace LIEF::PE {
 const char* oid_to_string(const oid_t& oid) {
-  static const std::unordered_map<oid_t, const char*> oid_to_str  {
-    { "0.2.262.1.10",                     "TELESEC" },
-    { "0.2.262.1.10.0",                   "EXTENSION" },
-    { "0.2.262.1.10.1",                   "MECHANISM" },
-    { "0.2.262.1.10.1.0",                 "AUTHENTICATION" },
-    { "0.2.262.1.10.1.0.1",               "PASSWORD_AUTHENTICATION" },
-    { "0.2.262.1.10.1.0.2",               "PROTECTED_PASSWORD_AUTHENTICATION" },
-    { "0.2.262.1.10.1.0.3",               "ONE_WAY_X509_AUTHENTICATION" },
-    { "0.2.262.1.10.1.0.4",               "TWO_WAY_X509_AUTHENTICATION" },
-    { "0.2.262.1.10.1.0.5",               "THREE_WAY_X509_AUTHENTICATION" },
-    { "0.2.262.1.10.1.0.6",               "ONE_WAY_ISO9798_AUTHENTICATION" },
-    { "0.2.262.1.10.1.0.7",               "TWO_WAY_ISO9798_AUTHENTICATION" },
-    { "0.2.262.1.10.1.0.8",               "TELEKOM_AUTHENTICATION" },
-    { "0.2.262.1.10.1.1",                 "SIGNATURE" },
-    { "0.2.262.1.10.1.1.1",               "MD4_WITH_RSA_AND_ISO9697" },
-    { "0.2.262.1.10.1.1.2",               "MD4_WITH_RSA_AND_TELESEC_SIGNATURE_STANDARD" },
-    { "0.2.262.1.10.1.1.3",               "MD5_WITH_RSA_AND_ISO9697" },
-    { "0.2.262.1.10.1.1.4",               "MD5_WITH_RSA_AND_TELESEC_SIGNATURE_STANDARD" },
-    { "0.2.262.1.10.1.1.5",               "RIPEMD160_WITH_RSA_AND_TELEKOM_SIGNATURE_STANDARD" },
-    { "0.2.262.1.10.1.1.9",               "HBCI_RSA_SIGNATURE" },
-    { "0.2.262.1.10.1.2",                 "ENCRYPTION" },
-    { "0.2.262.1.10.1.2.0",               "NONE" },
-    { "0.2.262.1.10.1.2.1",               "RSA_TELESEC" },
-    { "0.2.262.1.10.1.2.2",               "DES" },
-    { "0.2.262.1.10.1.2.2.1",             "DES_ECB" },
-    { "0.2.262.1.10.1.2.2.2",             "DES_CBC" },
-    { "0.2.262.1.10.1.2.2.3",             "DES_OFB" },
-    { "0.2.262.1.10.1.2.2.4",             "DES_CFB8" },
-    { "0.2.262.1.10.1.2.2.5",             "DES_CFB64" },
-    { "0.2.262.1.10.1.2.3",               "DES3" },
-    { "0.2.262.1.10.1.2.3.1",             "DES3_ECB" },
-    { "0.2.262.1.10.1.2.3.2",             "DES3_CBC" },
-    { "0.2.262.1.10.1.2.3.3",             "DES3_OFB" },
-    { "0.2.262.1.10.1.2.3.4",             "DES3_CFB8" },
-    { "0.2.262.1.10.1.2.3.5",             "DES3_CFB64" },
-    { "0.2.262.1.10.1.2.4",               "MAGENTA" },
-    { "0.2.262.1.10.1.2.5",               "IDEA" },
-    { "0.2.262.1.10.1.2.5.1",             "IDEA_ECB" },
-    { "0.2.262.1.10.1.2.5.2",             "IDEA_CBC" },
-    { "0.2.262.1.10.1.2.5.3",             "IDEA_OFB" },
-    { "0.2.262.1.10.1.2.5.4",             "IDEA_CFB8" },
-    { "0.2.262.1.10.1.2.5.5",             "IDEA_CFB64" },
-    { "0.2.262.1.10.1.3",                 "ONE_WAY_FUNCTION" },
-    { "0.2.262.1.10.1.3.1",               "MD4" },
-    { "0.2.262.1.10.1.3.2",               "MD5" },
-    { "0.2.262.1.10.1.3.3",               "SQ_MOD_NX509" },
-    { "0.2.262.1.10.1.3.4",               "SQ_MOD_NISO" },
-    { "0.2.262.1.10.1.3.5",               "RIPEMD128" },
-    { "0.2.262.1.10.1.3.6",               "HASH_USING_BLOCK_CIPHER" },
-    { "0.2.262.1.10.1.3.7",               "MAC" },
-    { "0.2.262.1.10.1.3.8",               "RIPEMD160" },
-    { "0.2.262.1.10.1.4",                 "FEC_FUNCTION" },
-    { "0.2.262.1.10.1.4.1",               "REED_SOLOMON" },
-    { "0.2.262.1.10.2",                   "MODULE" },
-    { "0.2.262.1.10.2.0",                 "ALGORITHMS" },
-    { "0.2.262.1.10.2.1",                 "ATTRIBUTE_TYPES" },
-    { "0.2.262.1.10.2.2",                 "CERTIFICATE_TYPES" },
-    { "0.2.262.1.10.2.3",                 "MESSAGE_TYPES" },
-    { "0.2.262.1.10.2.4",                 "PL_PROTOCOL" },
-    { "0.2.262.1.10.2.5",                 "SME_AND_COMPONENTS_OF_SME" },
-    { "0.2.262.1.10.2.6",                 "FEC" },
-    { "0.2.262.1.10.2.7",                 "USEFUL_DEFINITIONS" },
-    { "0.2.262.1.10.2.8",                 "STEFILES" },
-    { "0.2.262.1.10.2.9",                 "SADMIB" },
-    { "0.2.262.1.10.2.10",                "ELECTRONIC_ORDER" },
-    { "0.2.262.1.10.2.11",                "TELESEC_TTP_ASYMMETRIC_APPLICATION" },
-    { "0.2.262.1.10.2.12",                "TELESEC_TTP_BASIS_APPLICATION" },
-    { "0.2.262.1.10.2.13",                "TELESEC_TTP_MESSAGES" },
-    { "0.2.262.1.10.2.14",                "TELESEC_TTP_TIME_STAMP_APPLICATION" },
-    { "0.2.262.1.10.3",                   "OBJECT_CLASS" },
-    { "0.2.262.1.10.3.0",                 "TELESEC_OTHER_NAME" },
-    { "0.2.262.1.10.3.1",                 "DIRECTORY" },
-    { "0.2.262.1.10.3.2",                 "DIRECTORY_TYPE" },
-    { "0.2.262.1.10.3.3",                 "DIRECTORY_GROUP" },
-    { "0.2.262.1.10.3.4",                 "DIRECTORY_USER" },
-    { "0.2.262.1.10.3.5",                 "SYMMETRIC_KEY_ENTRY" },
-    { "0.2.262.1.10.4",                   "PACKAGE" },
-    { "0.2.262.1.10.5",                   "PARAMETER" },
-    { "0.2.262.1.10.6",                   "NAME_BINDING" },
-    { "0.2.262.1.10.7",                   "ATTRIBUTE" },
-    { "0.2.262.1.10.7.0",                 "APPLICATION_GROUP_IDENTIFIER" },
-    { "0.2.262.1.10.7.1",                 "CERTIFICATE_TYPE" },
-    { "0.2.262.1.10.7.2",                 "TELESEC_CERTIFICATE" },
-    { "0.2.262.1.10.7.3",                 "CERTIFICATE_NUMBER" },
-    { "0.2.262.1.10.7.4",                 "CERTIFICATE_REVOCATION_LIST" },
-    { "0.2.262.1.10.7.5",                 "CREATION_DATE" },
-    { "0.2.262.1.10.7.6",                 "ISSUER" },
-    { "0.2.262.1.10.7.7",                 "NAMING_AUTHORITY" },
-    { "0.2.262.1.10.7.8",                 "PUBLIC_KEY_DIRECTORY" },
-    { "0.2.262.1.10.7.9",                 "SECURITY_DOMAIN" },
-    { "0.2.262.1.10.7.10",                "SUBJECT" },
-    { "0.2.262.1.10.7.11",                "TIME_OF_REVOCATION" },
-    { "0.2.262.1.10.7.12",                "USER_GROUP_REFERENCE" },
-    { "0.2.262.1.10.7.13",                "VALIDITY" },
-    { "0.2.262.1.10.7.14",                "ZERT93" },
-    { "0.2.262.1.10.7.15",                "SECURITY_MESS_ENV" },
-    { "0.2.262.1.10.7.16",                "ANONYMIZED_PUBLIC_KEY_DIRECTORY" },
-    { "0.2.262.1.10.7.17",                "TELESEC_GIVEN_NAME" },
-    { "0.2.262.1.10.7.18",                "NAME_ADDITIONS" },
-    { "0.2.262.1.10.7.19",                "TELESEC_POSTAL_CODE" },
-    { "0.2.262.1.10.7.20",                "NAME_DISTINGUISHER" },
-    { "0.2.262.1.10.7.21",                "TELESEC_CERTIFICATE_LIST" },
-    { "0.2.262.1.10.7.22",                "TELETRUST_CERTIFICATE_LIST" },
-    { "0.2.262.1.10.7.23",                "X509_CERTIFICATE_LIST" },
-    { "0.2.262.1.10.7.24",                "TIME_OF_ISSUE" },
-    { "0.2.262.1.10.7.25",                "PHYSICAL_CARD_NUMBER" },
-    { "0.2.262.1.10.7.26",                "FILE_TYPE" },
-    { "0.2.262.1.10.7.27",                "CTL_FILE_IS_ARCHIVE" },
-    { "0.2.262.1.10.7.28",                "EMAIL_ADDRESS" },
-    { "0.2.262.1.10.7.29",                "CERTIFICATE_TEMPLATE_LIST" },
-    { "0.2.262.1.10.7.30",                "DIRECTORY_NAME" },
-    { "0.2.262.1.10.7.31",                "DIRECTORY_TYPE_NAME" },
-    { "0.2.262.1.10.7.32",                "DIRECTORY_GROUP_NAME" },
-    { "0.2.262.1.10.7.33",                "DIRECTORY_USER_NAME" },
-    { "0.2.262.1.10.7.34",                "REVOCATION_FLAG" },
-    { "0.2.262.1.10.7.35",                "SYMMETRIC_KEY_ENTRY_NAME" },
-    { "0.2.262.1.10.7.36",                "GL_NUMBER" },
-    { "0.2.262.1.10.7.37",                "GO_NUMBER" },
-    { "0.2.262.1.10.7.38",                "G_KEY_DATA" },
-    { "0.2.262.1.10.7.39",                "Z_KEY_DATA" },
-    { "0.2.262.1.10.7.40",                "KT_KEY_DATA" },
-    { "0.2.262.1.10.7.41",                "KT_KEY_NUMBER" },
-    { "0.2.262.1.10.7.51",                "TIME_OF_REVOCATION_GEN" },
-    { "0.2.262.1.10.7.52",                "LIABILITY_TEXT" },
-    { "0.2.262.1.10.8",                   "ATTRIBUTE_GROUP" },
-    { "0.2.262.1.10.9",                   "ACTION" },
-    { "0.2.262.1.10.10",                  "NOTIFICATION" },
-    { "0.2.262.1.10.11",                  "SNMP_MIBS" },
-    { "0.2.262.1.10.11.1",                "SECURITY_APPLICATION" },
-    { "0.2.262.1.10.12",                  "CERT_AND_CRL_EXTENSION_DEFINITIONS" },
-    { "0.2.262.1.10.12.0",                "LIABILITY_LIMITATION_FLAG" },
-    { "0.2.262.1.10.12.1",                "TELESEC_CERT_ID_EXT" },
-    { "0.2.262.1.10.12.2",                "TELESEC_POLICY_IDENTIFIER" },
-    { "0.2.262.1.10.12.3",                "TELESEC_POLICY_QUALIFIER_ID" },
-    { "0.2.262.1.10.12.4",                "TELESEC_CRL_FILTERED_EXT" },
-    { "0.2.262.1.10.12.5",                "TELESEC_CRL_FILTER_EXT" },
-    { "0.2.262.1.10.12.6",                "TELESEC_NAMING_AUTHORITY_EXT" },
-    { "0.4.0.127.0.7",                    "BSI" },
-    { "0.4.0.127.0.7.1",                  "BSI_ECC" },
-    { "0.4.0.127.0.7.1.1",                "BSIFIELD_TYPE" },
-    { "0.4.0.127.0.7.1.1.1",              "BSI_PRIME_FIELD" },
-    { "0.4.0.127.0.7.1.1.2",              "BSI_CHARACTERISTIC_TWO_FIELD" },
-    { "0.4.0.127.0.7.1.1.2.2",            "BSI_ECTLV_KEY_FORMAT" },
-    { "0.4.0.127.0.7.1.1.2.2.1",          "BSI_ECTLV_PUBLIC_KEY" },
-    { "0.4.0.127.0.7.1.1.2.3",            "BSI_CHARACTERISTIC_TWO_BASIS" },
-    { "0.4.0.127.0.7.1.1.2.3.1",          "BSI_GN_BASIS" },
-    { "0.4.0.127.0.7.1.1.2.3.2",          "BSI_TP_BASIS" },
-    { "0.4.0.127.0.7.1.1.2.3.3",          "BSI_PP_BASIS" },
-    { "0.4.0.127.0.7.1.1.4.1",            "BSI_ECDSA_SIGNATURES" },
-    { "0.4.0.127.0.7.1.1.4.1.1",          "BSI_ECDSA_WITH_SHA1" },
-    { "0.4.0.127.0.7.1.1.4.1.2",          "BSI_ECDSA_WITH_SHA224" },
-    { "0.4.0.127.0.7.1.1.4.1.3",          "BSI_ECDSA_WITH_SHA256" },
-    { "0.4.0.127.0.7.1.1.4.1.4",          "BSI_ECDSA_WITH_SHA384" },
-    { "0.4.0.127.0.7.1.1.4.1.5",          "BSI_ECDSA_WITH_SHA512" },
-    { "0.4.0.127.0.7.1.1.4.1.6",          "BSI_ECDSA_WITH_RIPEMD160" },
-    { "0.4.0.127.0.7.1.1.5.1.1",          "BSI_ECKA_EG_X963_KDF" },
-    { "0.4.0.127.0.7.1.1.5.1.1.1",        "BSI_ECKA_EG_X963_KDF_WITH_SHA1" },
-    { "0.4.0.127.0.7.1.1.5.1.1.2",        "BSI_ECKA_EG_X963_KDF_WITH_SHA224" },
-    { "0.4.0.127.0.7.1.1.5.1.1.3",        "BSI_ECKA_EG_X963_KDF_WITH_SHA256" },
-    { "0.4.0.127.0.7.1.1.5.1.1.4",        "BSI_ECKA_EG_X963_KDF_WITH_SHA384" },
-    { "0.4.0.127.0.7.1.1.5.1.1.5",        "BSI_ECKA_EG_X963_KDF_WITH_SHA512" },
-    { "0.4.0.127.0.7.1.1.5.1.1.6",        "BSI_ECKA_EG_X963_KDF_WITH_RIPEMD160" },
-    { "0.4.0.127.0.7.1.1.5.1.2",          "BSI_ECKA_EG_SESSION_KDF" },
-    { "0.4.0.127.0.7.1.1.5.1.2.1",        "BSI_ECKA_EG_SESSION_KDF_WITH3_DES" },
-    { "0.4.0.127.0.7.1.1.5.1.2.2",        "BSI_ECKA_EG_SESSION_KDF_WITH_AES128" },
-    { "0.4.0.127.0.7.1.1.5.1.2.3",        "BSI_ECKA_EG_SESSION_KDF_WITH_AES192" },
-    { "0.4.0.127.0.7.1.1.5.1.2.4",        "BSI_ECKA_EG_SESSION_KDF_WITH_AES256" },
-    { "0.4.0.127.0.7.1.1.5.2",            "BSI_ECKA_DH" },
-    { "0.4.0.127.0.7.1.1.5.2.1",          "BSI_ECKA_DHX963_KDF" },
-    { "0.4.0.127.0.7.1.1.5.2.1.1",        "BSI_ECKA_DHX963_KDF_WITH_SHA1" },
-    { "0.4.0.127.0.7.1.1.5.2.1.2",        "BSI_ECKA_DHX963_KDF_WITH_SHA224" },
-    { "0.4.0.127.0.7.1.1.5.2.1.3",        "BSI_ECKA_DHX963_KDF_WITH_SHA256" },
-    { "0.4.0.127.0.7.1.1.5.2.1.4",        "BSI_ECKA_DHX963_KDF_WITH_SHA384" },
-    { "0.4.0.127.0.7.1.1.5.2.1.5",        "BSI_ECKA_DHX963_KDF_WITH_SHA512" },
-    { "0.4.0.127.0.7.1.1.5.2.1.6",        "BSI_ECKA_DHX963_KDF_WITH_RIPEMD160" },
-    { "0.4.0.127.0.7.1.1.5.2.2",          "BSI_ECKA_DH_SESSION_KDF" },
-    { "0.4.0.127.0.7.1.1.5.2.2.1",        "BSI_ECKA_DH_SESSION_KDF_WITH3_DES" },
-    { "0.4.0.127.0.7.1.1.5.2.2.2",        "BSI_ECKA_DH_SESSION_KDF_WITH_AES128" },
-    { "0.4.0.127.0.7.1.1.5.2.2.3",        "BSI_ECKA_DH_SESSION_KDF_WITH_AES192" },
-    { "0.4.0.127.0.7.1.1.5.2.2.4",        "BSI_ECKA_DH_SESSION_KDF_WITH_AES256" },
-    { "0.4.0.127.0.7.1.2",                "BSI_EC_KEY_TYPE" },
-    { "0.4.0.127.0.7.1.2.1",              "BSI_EC_PUBLIC_KEY" },
-    { "0.4.0.127.0.7.1.5.1",              "BSI_KAEG" },
-    { "0.4.0.127.0.7.1.5.1.1",            "BSI_KAEG_WITH_X963_KDF" },
-    { "0.4.0.127.0.7.1.5.1.2",            "BSI_KAEG_WITH3_DESKDF" },
-    { "0.4.0.127.0.7.2.2.1",              "BSI_PK" },
-    { "0.4.0.127.0.7.2.2.1.1",            "BSI_PK_DH" },
-    { "0.4.0.127.0.7.2.2.1.2",            "BSI_PK_ECDH" },
-    { "0.4.0.127.0.7.2.2.2",              "BSI_TA" },
-    { "0.4.0.127.0.7.2.2.2.1",            "BSI_TA_RSA" },
-    { "0.4.0.127.0.7.2.2.2.1.1",          "BSI_TA_RS_AV1_5_SHA1" },
-    { "0.4.0.127.0.7.2.2.2.1.2",          "BSI_TA_RS_AV1_5_SHA256" },
-    { "0.4.0.127.0.7.2.2.2.1.3",          "BSI_TA_RSAPSS_SHA1" },
-    { "0.4.0.127.0.7.2.2.2.1.4",          "BSI_TA_RSAPSS_SHA256" },
-    { "0.4.0.127.0.7.2.2.2.1.5",          "BSI_TA_RS_AV1_5_SHA512" },
-    { "0.4.0.127.0.7.2.2.2.1.6",          "BSI_TA_RSAPSS_SHA512" },
-    { "0.4.0.127.0.7.2.2.2.2",            "BSI_TA_ECDSA" },
-    { "0.4.0.127.0.7.2.2.2.2.1",          "BSI_TA_ECDSA_SHA1" },
-    { "0.4.0.127.0.7.2.2.2.2.2",          "BSI_TA_ECDSA_SHA224" },
-    { "0.4.0.127.0.7.2.2.2.2.3",          "BSI_TA_ECDSA_SHA256" },
-    { "0.4.0.127.0.7.2.2.2.2.4",          "BSI_TA_ECDSA_SHA384" },
-    { "0.4.0.127.0.7.2.2.2.2.5",          "BSI_TA_ECDSA_SHA512" },
-    { "0.4.0.127.0.7.2.2.3",              "BSI_CA" },
-    { "0.4.0.127.0.7.2.2.3.1",            "BSI_CA_DH" },
-    { "0.4.0.127.0.7.2.2.3.1.1",          "BSI_CA_DH_3_DES_CBC_CBC" },
-    { "0.4.0.127.0.7.2.2.3.1.2",          "BSI_CA_DH_AES_CBC_CMAC_128" },
-    { "0.4.0.127.0.7.2.2.3.1.3",          "BSI_CA_DH_AES_CBC_CMAC_192" },
-    { "0.4.0.127.0.7.2.2.3.1.4",          "BSI_CA_DH_AES_CBC_CMAC_256" },
-    { "0.4.0.127.0.7.2.2.3.2",            "BSI_CA_ECDH" },
-    { "0.4.0.127.0.7.2.2.3.2.1",          "BSI_CA_ECDH_3_DES_CBC_CBC" },
-    { "0.4.0.127.0.7.2.2.3.2.2",          "BSI_CA_ECDH_AES_CBC_CMAC_128" },
-    { "0.4.0.127.0.7.2.2.3.2.3",          "BSI_CA_ECDH_AES_CBC_CMAC_192" },
-    { "0.4.0.127.0.7.2.2.3.2.4",          "BSI_CA_ECDH_AES_CBC_CMAC_256" },
-    { "0.4.0.127.0.7.2.2.4",              "BSI_PACE" },
-    { "0.4.0.127.0.7.2.2.4.1",            "BSI_PACE_DH_GM" },
-    { "0.4.0.127.0.7.2.2.4.1.1",          "BSI_PACE_DH_GM_3_DES_CBC_CBC" },
-    { "0.4.0.127.0.7.2.2.4.1.2",          "BSI_PACE_DH_GM_AES_CBC_CMAC_128" },
-    { "0.4.0.127.0.7.2.2.4.1.3",          "BSI_PACE_DH_GM_AES_CBC_CMAC_192" },
-    { "0.4.0.127.0.7.2.2.4.1.4",          "BSI_PACE_DH_GM_AES_CBC_CMAC_256" },
-    { "0.4.0.127.0.7.2.2.4.2",            "BSI_PACE_ECDH_GM" },
-    { "0.4.0.127.0.7.2.2.4.2.1",          "BSI_PACE_ECDH_GM_3_DES_CBC_CBC" },
-    { "0.4.0.127.0.7.2.2.4.2.2",          "BSI_PACE_ECDH_GM_AES_CBC_CMAC_128" },
-    { "0.4.0.127.0.7.2.2.4.2.3",          "BSI_PACE_ECDH_GM_AES_CBC_CMAC_192" },
-    { "0.4.0.127.0.7.2.2.4.2.4",          "BSI_PACE_ECDH_GM_AES_CBC_CMAC_256" },
-    { "0.4.0.127.0.7.2.2.4.3",            "BSI_PACE_DH_IM" },
-    { "0.4.0.127.0.7.2.2.4.3.1",          "BSI_PACE_DH_IM_3_DES_CBC_CBC" },
-    { "0.4.0.127.0.7.2.2.4.3.2",          "BSI_PACE_DH_IM_AES_CBC_CMAC_128" },
-    { "0.4.0.127.0.7.2.2.4.3.3",          "BSI_PACE_DH_IM_AES_CBC_CMAC_192" },
-    { "0.4.0.127.0.7.2.2.4.3.4",          "BSI_PACE_DH_IM_AES_CBC_CMAC_256" },
-    { "0.4.0.127.0.7.2.2.4.4",            "BSI_PACE_ECDH_IM" },
-    { "0.4.0.127.0.7.2.2.4.4.1",          "BSI_PACE_ECDH_IM_3_DES_CBC_CBC" },
-    { "0.4.0.127.0.7.2.2.4.4.2",          "BSI_PACE_ECDH_IM_AES_CBC_CMAC_128" },
-    { "0.4.0.127.0.7.2.2.4.4.3",          "BSI_PACE_ECDH_IM_AES_CBC_CMAC_192" },
-    { "0.4.0.127.0.7.2.2.4.4.4",          "BSI_PACE_ECDH_IM_AES_CBC_CMAC_256" },
-    { "0.4.0.127.0.7.2.2.5",              "BSI_RI" },
-    { "0.4.0.127.0.7.2.2.5.1",            "BSI_RI_DH" },
-    { "0.4.0.127.0.7.2.2.5.1.1",          "BSI_RI_DH_SHA1" },
-    { "0.4.0.127.0.7.2.2.5.1.2",          "BSI_RI_DH_SHA224" },
-    { "0.4.0.127.0.7.2.2.5.1.3",          "BSI_RI_DH_SHA256" },
-    { "0.4.0.127.0.7.2.2.5.1.4",          "BSI_RI_DH_SHA384" },
-    { "0.4.0.127.0.7.2.2.5.1.5",          "BSI_RI_DH_SHA512" },
-    { "0.4.0.127.0.7.2.2.5.2",            "BSI_RI_ECDH" },
-    { "0.4.0.127.0.7.2.2.5.2.1",          "BSI_RI_ECDH_SHA1" },
-    { "0.4.0.127.0.7.2.2.5.2.2",          "BSI_RI_ECDH_SHA224" },
-    { "0.4.0.127.0.7.2.2.5.2.3",          "BSI_RI_ECDH_SHA256" },
-    { "0.4.0.127.0.7.2.2.5.2.4",          "BSI_RI_ECDH_SHA384" },
-    { "0.4.0.127.0.7.2.2.5.2.5",          "BSI_RI_ECDH_SHA512" },
-    { "0.4.0.127.0.7.2.2.6",              "BSI_CARD_INFO" },
-    { "0.4.0.127.0.7.2.2.7",              "BSI_EID_SECURITY" },
-    { "0.4.0.127.0.7.2.2.8",              "BSI_PT" },
-    { "0.4.0.127.0.7.3.1.2",              "BSI_EAC_ROLES" },
-    { "0.4.0.127.0.7.3.1.2.1",            "BSI_EAC_ROLES_IS" },
-    { "0.4.0.127.0.7.3.1.2.2",            "BSI_EAC_ROLES_AT" },
-    { "0.4.0.127.0.7.3.1.2.3",            "BSI_EAC_ROLES_ST" },
-    { "0.4.0.127.0.7.3.1.3",              "BSI_T_AV2CE" },
-    { "0.4.0.127.0.7.3.1.3.1",            "BSI_T_AV2CE_DESCRIPTION" },
-    { "0.4.0.127.0.7.3.1.3.1.1",          "BSI_T_AV2CE_DESCRIPTION_PLAIN_TEXT" },
-    { "0.4.0.127.0.7.3.1.3.1.2",          "BSI_T_AV2CE_DESCRIPTION_IA5_STRING" },
-    { "0.4.0.127.0.7.3.1.3.1.3",          "BSI_T_AV2CE_DESCRIPTION_OCTET_STRING" },
-    { "0.4.0.127.0.7.3.1.3.2",            "BSI_T_AV2CE_TERMINAL_SECTOR" },
-    { "0.4.0.127.0.7.3.1.4",              "BSI_AUX_DATA" },
-    { "0.4.0.127.0.7.3.1.4.1",            "BSI_AUX_DATA_BIRTHDAY" },
-    { "0.4.0.127.0.7.3.1.4.2",            "BSI_AUX_DATA_EXPIRE_DATE" },
-    { "0.4.0.127.0.7.3.1.4.3",            "BSI_AUX_DATA_COMMUNITY_ID" },
-    { "0.4.0.127.0.7.3.1.5",              "BSI_DEFECT_LIST" },
-    { "0.4.0.127.0.7.3.1.5.1",            "BSI_DEFECT_AUTH_DEFECT" },
-    { "0.4.0.127.0.7.3.1.5.1.1",          "BSI_DEFECT_CERT_REVOKED" },
-    { "0.4.0.127.0.7.3.1.5.1.2",          "BSI_DEFECT_CERT_REPLACED" },
-    { "0.4.0.127.0.7.3.1.5.1.3",          "BSI_DEFECT_CHIP_AUTH_KEY_REVOKED" },
-    { "0.4.0.127.0.7.3.1.5.1.4",          "BSI_DEFECT_ACTIVE_AUTH_KEY_REVOKED" },
-    { "0.4.0.127.0.7.3.1.5.2",            "BSI_DEFECT_E_PASSPORT_DEFECT" },
-    { "0.4.0.127.0.7.3.1.5.2.1",          "BSI_DEFECT_E_PASSPORT_DG_MALFORMED" },
-    { "0.4.0.127.0.7.3.1.5.2.2",          "BSI_DEFECT_SOD_INVALID" },
-    { "0.4.0.127.0.7.3.1.5.3",            "BSI_DEFECT_EID_DEFECT" },
-    { "0.4.0.127.0.7.3.1.5.3.1",          "BSI_DEFECT_EIDDG_MALFORMED" },
-    { "0.4.0.127.0.7.3.1.5.3.2",          "BSI_DEFECT_EID_INTEGRITY" },
-    { "0.4.0.127.0.7.3.1.5.4",            "BSI_DEFECT_DOCUMENT_DEFECT" },
-    { "0.4.0.127.0.7.3.1.5.4.1",          "BSI_DEFECT_CARD_SECURITY_MALFORMED" },
-    { "0.4.0.127.0.7.3.1.5.4.2",          "BSI_DEFECT_CHIP_SECURITY_MALFORMED" },
-    { "0.4.0.127.0.7.3.1.5.4.3",          "BSI_DEFECT_POWER_DOWN_REQ" },
-    { "0.4.0.127.0.7.3.1.6",              "BSI_LIST_CONTENT_DESCRIPTION" },
-    { "0.4.0.127.0.7.3.2.1",              "BSI_SECURITY_OBJECT" },
-    { "0.4.0.127.0.7.3.2.2",              "BSI_BLACK_LIST" },
-    { "0.4.0.1862",                       "ETSI_QCS_PROFILE" },
-    { "0.4.0.1862.1",                     "ETSI_QCS" },
-    { "0.4.0.1862.1.1",                   "ETSI_QCS_COMPLIANCE" },
-    { "0.4.0.1862.1.2",                   "ETSI_QCS_LIMIT_VALUE" },
-    { "0.4.0.1862.1.3",                   "ETSI_QCS_RETENTION_PERIOD" },
-    { "0.4.0.1862.1.4",                   "ETSI_QCS_QC_SSCD" },
-    { "0.9.2342.19200300.100.1.1",        "USER_ID" },
-    { "0.9.2342.19200300.100.1.3",        "RFC822_MAILBOX" },
-    { "0.9.2342.19200300.100.1.25",       "DOMAIN_COMPONENT" },
-    { "1.0.10118.3.0.49",                 "RIPEMD160" },
-    { "1.0.10118.3.0.50",                 "RIPEMD128" },
-    { "1.0.10118.3.0.55",                 "WHIRLPOOL" },
-    { "1.2.36.1.3.1.1.1",                 "QGPKI" },
-    { "1.2.36.1.3.1.1.1.1",               "QGPKI_POLICIES" },
-    { "1.2.36.1.3.1.1.1.1.1",             "QGPKI_MED_INTERMED_CA" },
-    { "1.2.36.1.3.1.1.1.1.1.1",           "QGPKI_MED_INTERMED_INDIVIDUAL" },
-    { "1.2.36.1.3.1.1.1.1.1.2",           "QGPKI_MED_INTERMED_DEVICE_CONTROL" },
-    { "1.2.36.1.3.1.1.1.1.1.3",           "QGPKI_MED_INTERMED_DEVICE" },
-    { "1.2.36.1.3.1.1.1.1.1.4",           "QGPKI_MED_INTERMED_AUTHORISED_PARTY" },
-    { "1.2.36.1.3.1.1.1.1.1.5",           "QGPKI_MED_INTERMED_DEVICE_SYSTEM" },
-    { "1.2.36.1.3.1.1.1.1.2",             "QGPKI_MED_ISSUING_CA" },
-    { "1.2.36.1.3.1.1.1.1.2.1",           "QGPKI_MED_ISSUING_INDIVIDUAL" },
-    { "1.2.36.1.3.1.1.1.1.2.2",           "QGPKI_MED_ISSUING_DEVICE_CONTROL" },
-    { "1.2.36.1.3.1.1.1.1.2.3",           "QGPKI_MED_ISSUING_DEVICE" },
-    { "1.2.36.1.3.1.1.1.1.2.4",           "QGPKI_MED_ISSUING_AUTHORISED_PARTY" },
-    { "1.2.36.1.3.1.1.1.1.2.5",           "QGPKI_MED_ISSUING_CLIENT_AUTH" },
-    { "1.2.36.1.3.1.1.1.1.2.6",           "QGPKI_MED_ISSUING_SERVER_AUTH" },
-    { "1.2.36.1.3.1.1.1.1.2.7",           "QGPKI_MED_ISSUING_DATA_PROT" },
-    { "1.2.36.1.3.1.1.1.1.2.8",           "QGPKI_MED_ISSUING_TOKEN_AUTH" },
-    { "1.2.36.1.3.1.1.1.1.3",             "QGPKI_BASIC_INTERMED_CA" },
-    { "1.2.36.1.3.1.1.1.1.3.1",           "QGPKI_BASIC_INTERMED_DEVICE_SYSTEM" },
-    { "1.2.36.1.3.1.1.1.1.4",             "QGPKI_BASIC_ISSUING_CA" },
-    { "1.2.36.1.3.1.1.1.1.4.1",           "QGPKI_BASIC_ISSUING_CLIENT_AUTH" },
-    { "1.2.36.1.3.1.1.1.1.4.2",           "QGPKI_BASIC_ISSUING_SERVER_AUTH" },
-    { "1.2.36.1.3.1.1.1.1.4.3",           "QGPKI_BASIC_ISSUING_DATA_SIGNING" },
-    { "1.2.36.1.3.1.1.1.2",               "QGPKI_ASSURANCE_LEVEL" },
-    { "1.2.36.1.3.1.1.1.2.1",             "QGPKI_ASSURANCE_RUDIMENTARY" },
-    { "1.2.36.1.3.1.1.1.2.2",             "QGPKI_ASSURANCE_BASIC" },
-    { "1.2.36.1.3.1.1.1.2.3",             "QGPKI_ASSURANCE_MEDIUM" },
-    { "1.2.36.1.3.1.1.1.2.4",             "QGPKI_ASSURANCE_HIGH" },
-    { "1.2.36.1.3.1.1.1.3",               "QGPKI_CERT_FUNCTION" },
-    { "1.2.36.1.3.1.1.1.3.1",             "QGPKI_FUNCTION_INDIVIDUAL" },
-    { "1.2.36.1.3.1.1.1.3.2",             "QGPKI_FUNCTION_DEVICE" },
-    { "1.2.36.1.3.1.1.1.3.3",             "QGPKI_FUNCTION_AUTHORISED_PARTY" },
-    { "1.2.36.1.3.1.1.1.3.4",             "QGPKI_FUNCTION_DEVICE_CONTROL" },
-    { "1.2.36.1.3.1.2",                   "QPSPKI" },
-    { "1.2.36.1.3.1.2.1",                 "QPSPKI_POLICIES" },
-    { "1.2.36.1.3.1.2.1.2",               "QPSPKI_POLICY_BASIC" },
-    { "1.2.36.1.3.1.2.1.3",               "QPSPKI_POLICY_MEDIUM" },
-    { "1.2.36.1.3.1.2.1.4",               "QPSPKI_POLICY_HIGH" },
-    { "1.2.36.1.3.1.3.2",                 "QTMRPKI" },
-    { "1.2.36.1.3.1.3.2.1",               "QTMRPKI_POLICIES" },
-    { "1.2.36.1.3.1.3.2.2",               "QTMRPKI_PURPOSE" },
-    { "1.2.36.1.3.1.3.2.2.1",             "QTMRPKI_INDIVIDUAL" },
-    { "1.2.36.1.3.1.3.2.2.2",             "QTMRPKI_DEVICE_CONTROL" },
-    { "1.2.36.1.3.1.3.2.2.3",             "QTMRPKI_DEVICE" },
-    { "1.2.36.1.3.1.3.2.2.4",             "QTMRPKI_AUTHORISED_PARTY" },
-    { "1.2.36.1.3.1.3.2.2.5",             "QTMRPKI_DEVICE_SYSTEM" },
-    { "1.2.36.1.3.1.3.2.3",               "QTMRPKI_DEVICE" },
-    { "1.2.36.1.3.1.3.2.3.1",             "QTMRPKI_DRIVER_LICENSE" },
-    { "1.2.36.1.3.1.3.2.3.2",             "QTMRPKI_INDUSTRY_AUTHORITY" },
-    { "1.2.36.1.3.1.3.2.3.3",             "QTMRPKI_MARINE_LICENSE" },
-    { "1.2.36.1.3.1.3.2.3.4",             "QTMRPKI_ADULT_PROOF_OF_AGE" },
-    { "1.2.36.1.3.1.3.2.3.5",             "QTMRPKI_SAM" },
-    { "1.2.36.1.3.1.3.2.4",               "QTMRPKI_AUTHORISED_PARTY" },
-    { "1.2.36.1.3.1.3.2.4.1",             "QTMRPKI_TRANSPORT_INSPECTOR" },
-    { "1.2.36.1.3.1.3.2.4.2",             "QTMRPKI_POLICE_OFFICER" },
-    { "1.2.36.1.3.1.3.2.4.3",             "QTMRPKI_SYSTEM" },
-    { "1.2.36.1.3.1.3.2.4.4",             "QTMRPKI_LIQUOR_LICENSING_INSPECTOR" },
-    { "1.2.36.1.3.1.3.2.4.5",             "QTMRPKI_MARINE_ENFORCEMENT_OFFICER" },
-    { "1.2.36.1.333.1",                   "AUSTRALIAN_BUSINESS_NUMBER" },
-    { "1.2.36.68980861.1.1.2",            "SIGNET_PERSONAL" },
-    { "1.2.36.68980861.1.1.3",            "SIGNET_BUSINESS" },
-    { "1.2.36.68980861.1.1.4",            "SIGNET_LEGAL" },
-    { "1.2.36.68980861.1.1.10",           "SIGNET_PILOT" },
-    { "1.2.36.68980861.1.1.11",           "SIGNET_INTRA_NET" },
-    { "1.2.36.68980861.1.1.20",           "SIGNET_POLICY" },
-    { "1.2.36.75878867.1.100.1.1",        "CERTIFICATES_AUSTRALIA_POLICY" },
-    { "1.2.392.200011.61.1.1.1",          "MITSUBISHI_SECURITY_ALGORITHM" },
-    { "1.2.392.200011.61.1.1.1.1",        "MISTY1_CBC" },
-    { "1.2.410.200004.1",                 "KISA_ALGORITHM" },
-    { "1.2.410.200004.1.1",               "KCDSA" },
-    { "1.2.410.200004.1.2",               "HAS160" },
-    { "1.2.410.200004.1.3",               "SEED_ECB" },
-    { "1.2.410.200004.1.4",               "SEED_CBC" },
-    { "1.2.410.200004.1.5",               "SEED_OFB" },
-    { "1.2.410.200004.1.6",               "SEED_CFB" },
-    { "1.2.410.200004.1.7",               "SEED_MAC" },
-    { "1.2.410.200004.1.8",               "KCDSA_WITH_HAS160" },
-    { "1.2.410.200004.1.9",               "KCDSA_WITH_SHA1" },
-    { "1.2.410.200004.1.10",              "PBE_WITH_HAS160_AND_SEED_ECB" },
-    { "1.2.410.200004.1.11",              "PBE_WITH_HAS160_AND_SEED_CBC" },
-    { "1.2.410.200004.1.12",              "PBE_WITH_HAS160_AND_SEED_CFB" },
-    { "1.2.410.200004.1.13",              "PBE_WITH_HAS160_AND_SEED_OFB" },
-    { "1.2.410.200004.1.14",              "PBE_WITH_SHA1_AND_SEED_ECB" },
-    { "1.2.410.200004.1.15",              "PBE_WITH_SHA1_AND_SEED_CBC" },
-    { "1.2.410.200004.1.16",              "PBE_WITH_SHA1_AND_SEED_CFB" },
-    { "1.2.410.200004.1.17",              "PBE_WITH_SHA1_AND_SEED_OFB" },
-    { "1.2.410.200004.1.20",              "RSA_WITH_HAS160" },
-    { "1.2.410.200004.1.21",              "KCDSA1" },
-    { "1.2.410.200004.2",                 "NPKI_CP" },
-    { "1.2.410.200004.2.1",               "NPKI_SIGNATURE_POLICY" },
-    { "1.2.410.200004.3",                 "NPKI_KP" },
-    { "1.2.410.200004.4",                 "NPKI_AT" },
-    { "1.2.410.200004.5",                 "NPKI_LCA" },
-    { "1.2.410.200004.5.1",               "NPKI_SIGN_KOREA" },
-    { "1.2.410.200004.5.2",               "NPKI_SIGN_GATE" },
-    { "1.2.410.200004.5.3",               "NPKI_NCA_SIGN" },
-    { "1.2.410.200004.6",                 "NPKI_ON" },
-    { "1.2.410.200004.7",                 "NPKI_APP" },
-    { "1.2.410.200004.7.1",               "NPKI_SMIME" },
-    { "1.2.410.200004.7.1.1",             "NPKI_SMIME_ALGO" },
-    { "1.2.410.200004.7.1.1.1",           "NPKI_CMS_SEED_WRAP" },
-    { "1.2.410.200004.10",                "NPKI" },
-    { "1.2.410.200004.10.1",              "NPKI_ATTRIBUTE" },
-    { "1.2.410.200004.10.1.1",            "NPKI_IDENTIFY_DATA" },
-    { "1.2.410.200004.10.1.1.1",          "NPKI_VID" },
-    { "1.2.410.200004.10.1.1.2",          "NPKI_ENCRYPTED_VID" },
-    { "1.2.410.200004.10.1.1.3",          "NPKI_RANDOM_NUM" },
-    { "1.2.410.200004.10.1.1.4",          "NPKI_VID" },
-    { "1.2.410.200046.1.1",               "ARIA1_ALGORITHM_MODES" },
-    { "1.2.410.200046.1.1.1",             "ARIA128_ECB" },
-    { "1.2.410.200046.1.1.2",             "ARIA128_CBC" },
-    { "1.2.410.200046.1.1.3",             "ARIA128_CFB" },
-    { "1.2.410.200046.1.1.4",             "ARIA128_OFB" },
-    { "1.2.410.200046.1.1.5",             "ARIA128_CTR" },
-    { "1.2.410.200046.1.1.6",             "ARIA192_ECB" },
-    { "1.2.410.200046.1.1.7",             "ARIA192_CBC" },
-    { "1.2.410.200046.1.1.8",             "ARIA192_CFB" },
-    { "1.2.410.200046.1.1.9",             "ARIA192_OFB" },
-    { "1.2.410.200046.1.1.10",            "ARIA192_CTR" },
-    { "1.2.410.200046.1.1.11",            "ARIA256_ECB" },
-    { "1.2.410.200046.1.1.12",            "ARIA256_CBC" },
-    { "1.2.410.200046.1.1.13",            "ARIA256_CFB" },
-    { "1.2.410.200046.1.1.14",            "ARIA256_OFB" },
-    { "1.2.410.200046.1.1.15",            "ARIA256_CTR" },
-    { "1.2.410.200046.1.1.21",            "ARIA128_CMAC" },
-    { "1.2.410.200046.1.1.22",            "ARIA192_CMAC" },
-    { "1.2.410.200046.1.1.23",            "ARIA256_CMAC" },
-    { "1.2.410.200046.1.1.31",            "ARIA128_OCB2" },
-    { "1.2.410.200046.1.1.32",            "ARIA192_OCB2" },
-    { "1.2.410.200046.1.1.33",            "ARIA256_OCB2" },
-    { "1.2.410.200046.1.1.34",            "ARIA128_GCM" },
-    { "1.2.410.200046.1.1.35",            "ARIA192_GCM" },
-    { "1.2.410.200046.1.1.36",            "ARIA256_GCM" },
-    { "1.2.410.200046.1.1.37",            "ARIA128_CCM" },
-    { "1.2.410.200046.1.1.38",            "ARIA192_CCM" },
-    { "1.2.410.200046.1.1.39",            "ARIA256_CCM" },
-    { "1.2.410.200046.1.1.40",            "ARIA128_KEYWRAP" },
-    { "1.2.410.200046.1.1.41",            "ARIA192_KEYWRAP" },
-    { "1.2.410.200046.1.1.42",            "ARIA256_KEYWRAP" },
-    { "1.2.410.200046.1.1.43",            "ARIA128_KEYWRAP_WITH_PAD" },
-    { "1.2.410.200046.1.1.44",            "ARIA192_KEYWRAP_WITH_PAD" },
-    { "1.2.410.200046.1.1.45",            "ARIA256_KEYWRAP_WITH_PAD" },
-    { "1.2.643.2.2.3",                    "GOST_SIGNATURE" },
-    { "1.2.643.2.2.4",                    "GOST94_SIGNATURE" },
-    { "1.2.643.2.2.19",                   "GOST_PUBLIC_KEY" },
-    { "1.2.643.2.2.20",                   "GOST94_PUBLIC_KEY" },
-    { "1.2.643.2.2.21",                   "GOST_CIPHER" },
-    { "1.2.643.2.2.31.0",                 "TEST_CIPHER_PARAMS" },
-    { "1.2.643.2.2.31.1",                 "CRYPTO_PRO_CIPHER_A" },
-    { "1.2.643.2.2.31.2",                 "CRYPTO_PRO_CIPHER_B" },
-    { "1.2.643.2.2.31.3",                 "CRYPTO_PRO_CIPHER_C" },
-    { "1.2.643.2.2.31.4",                 "CRYPTO_PRO_CIPHER_D" },
-    { "1.2.643.2.2.31.5",                 "OSCAR11_CIPHER" },
-    { "1.2.643.2.2.31.6",                 "OSCAR10_CIPHER" },
-    { "1.2.643.2.2.31.7",                 "RIC1_CIPHER" },
-    { "1.2.643.2.2.9",                    "GOST_DIGEST" },
-    { "1.2.643.2.2.30.0",                 "TEST_DIGEST_PARAMS" },
-    { "1.2.643.2.2.30.1",                 "CRYPTO_PRO_DIGEST_A" },
-    { "1.2.643.2.2.35.0",                 "TEST_SIGN_PARAMS" },
-    { "1.2.643.2.2.35.1",                 "CRYPTO_PRO_SIGN_A" },
-    { "1.2.643.2.2.35.2",                 "CRYPTO_PRO_SIGN_B" },
-    { "1.2.643.2.2.35.3",                 "CRYPTO_PRO_SIGN_C" },
-    { "1.2.643.2.2.36.0",                 "CRYPTO_PRO_SIGN_XA" },
-    { "1.2.643.2.2.36.1",                 "CRYPTO_PRO_SIGN_XB" },
-    { "1.2.643.2.2.14.0",                 "NULL_MESHING" },
-    { "1.2.643.2.2.14.1",                 "CRYPTO_PRO_MESHING" },
-    { "1.2.643.2.2.10",                   "HMAC_GOST" },
-    { "1.2.643.2.2.13.0",                 "GOST_WRAP" },
-    { "1.2.643.2.2.13.1",                 "CRYPTO_PRO_WRAP" },
-    { "1.2.643.2.2.96",                   "CRYPTO_PRO_ECDH_WRAP" },
-    { "1.2.752.34.1",                     "SEIS_CP" },
-    { "1.2.752.34.1.1",                   "SEIS_HIGH_ASSURANCE_POLICY_IDENTIFIER" },
-    { "1.2.752.34.1.2",                   "SEIS_GAK_POLICY_IDENTIFIER" },
-    { "1.2.752.34.2",                     "SEIS_PE" },
-    { "1.2.752.34.3",                     "SEIS_AT" },
-    { "1.2.752.34.3.1",                   "SEIS_AT_PERSONAL_IDENTIFIER" },
-    { "1.2.840.10040.1",                  "MODULE" },
-    { "1.2.840.10040.1.1",                "X9F1_CERT_MGMT" },
-    { "1.2.840.10040.2",                  "HOLDINSTRUCTION" },
-    { "1.2.840.10040.2.1",                "HOLDINSTRUCTION_NONE" },
-    { "1.2.840.10040.2.2",                "CALLISSUER" },
-    { "1.2.840.10040.2.3",                "REJECT" },
-    { "1.2.840.10040.2.4",                "PICKUP_TOKEN" },
-    { "1.2.840.10040.3",                  "ATTRIBUTE" },
-    { "1.2.840.10040.3.1",                "COUNTER_SIGNATURE" },
-    { "1.2.840.10040.3.2",                "ATTRIBUTE_CERT" },
-    { "1.2.840.10040.4",                  "ALGORITHM" },
-    { "1.2.840.10040.4.1",                "DSA" },
-    { "1.2.840.10040.4.2",                "DSA_MATCH" },
-    { "1.2.840.10040.4.3",                "DSA_WITH_SHA1" },
-    { "1.2.840.10045.1",                  "FIELD_TYPE" },
-    { "1.2.840.10045.1.1",                "PRIME_FIELD" },
-    { "1.2.840.10045.1.2",                "CHARACTERISTIC_TWO_FIELD" },
-    { "1.2.840.10045.1.2.3",              "CHARACTERISTIC_TWO_BASIS" },
-    { "1.2.840.10045.1.2.3.1",            "ON_BASIS" },
-    { "1.2.840.10045.1.2.3.2",            "TP_BASIS" },
-    { "1.2.840.10045.1.2.3.3",            "PP_BASIS" },
-    { "1.2.840.10045.2",                  "PUBLIC_KEY_TYPE" },
-    { "1.2.840.10045.2.1",                "EC_PUBLIC_KEY" },
-    { "1.2.840.10045.3.0.1",              "C2PNB163V1" },
-    { "1.2.840.10045.3.0.2",              "C2PNB163V2" },
-    { "1.2.840.10045.3.0.3",              "C2PNB163V3" },
-    { "1.2.840.10045.3.0.5",              "C2TNB191V1" },
-    { "1.2.840.10045.3.0.6",              "C2TNB191V2" },
-    { "1.2.840.10045.3.0.7",              "C2TNB191V3" },
-    { "1.2.840.10045.3.0.10",             "C2PNB208W1" },
-    { "1.2.840.10045.3.0.11",             "C2TNB239V1" },
-    { "1.2.840.10045.3.0.12",             "C2TNB239V2" },
-    { "1.2.840.10045.3.0.13",             "C2TNB239V3" },
-    { "1.2.840.10045.3.0.16",             "C2PNB272W1" },
-    { "1.2.840.10045.3.0.18",             "C2TNB359V1" },
-    { "1.2.840.10045.3.0.19",             "C2PNB368W1" },
-    { "1.2.840.10045.3.0.20",             "C2TNB431R1" },
-    { "1.2.840.10045.3.1.1",              "PRIME192V1" },
-    { "1.2.840.10045.3.1.2",              "PRIME192V2" },
-    { "1.2.840.10045.3.1.3",              "PRIME192V3" },
-    { "1.2.840.10045.3.1.4",              "PRIME239V1" },
-    { "1.2.840.10045.3.1.5",              "PRIME239V2" },
-    { "1.2.840.10045.3.1.6",              "PRIME239V3" },
-    { "1.2.840.10045.3.1.7",              "PRIME256V1" },
-    { "1.2.840.10045.4.1",                "ECDSA_WITH_SHA1" },
-    { "1.2.840.10045.4.2",                "ECDSA_WITH_RECOMMENDED" },
-    { "1.2.840.10045.4.3",                "ECDSA_WITH_SPECIFIED" },
-    { "1.2.840.10045.4.3.1",              "ECDSA_WITH_SHA224" },
-    { "1.2.840.10045.4.3.2",              "ECDSA_WITH_SHA256" },
-    { "1.2.840.10045.4.3.3",              "ECDSA_WITH_SHA384" },
-    { "1.2.840.10045.4.3.4",              "ECDSA_WITH_SHA512" },
-    { "1.2.840.10046.1",                  "FIELD_TYPE" },
-    { "1.2.840.10046.1.1",                "GF_PRIME" },
-    { "1.2.840.10046.2",                  "NUMBER_TYPE" },
-    { "1.2.840.10046.2.1",                "DH_PUBLIC_KEY" },
-    { "1.2.840.10046.3",                  "SCHEME" },
-    { "1.2.840.10046.3.1",                "DH_STATIC" },
-    { "1.2.840.10046.3.2",                "DH_EPHEM" },
-    { "1.2.840.10046.3.3",                "DH_HYBRID1" },
-    { "1.2.840.10046.3.4",                "DH_HYBRID2" },
-    { "1.2.840.10046.3.5",                "MQV2" },
-    { "1.2.840.10046.3.6",                "MQV1" },
-    { "1.2.840.10065.2.2",                "?" },
-    { "1.2.840.10065.2.3",                "HEALTHCARE_LICENSE" },
-    { "1.2.840.10065.2.3.1.1",            "LICENSE?" },
-    { "1.2.840.10070.",                   "IEC62351" },
-    { "1.2.840.10070.8",                  "IEC62351_8" },
-    { "1.2.840.10070.8.1",                "IEC_USER_ROLES" },
-    { "1.2.840.113533.7",                 "NSN" },
-    { "1.2.840.113533.7.65",              "NSN_CE" },
-    { "1.2.840.113533.7.65.0",            "ENTRUST_VERS_INFO" },
-    { "1.2.840.113533.7.66",              "NSN_ALG" },
-    { "1.2.840.113533.7.66.3",            "CAST3_CBC" },
-    { "1.2.840.113533.7.66.10",           "CAST5_CBC" },
-    { "1.2.840.113533.7.66.11",           "CAST5_MAC" },
-    { "1.2.840.113533.7.66.12",           "PBE_WITH_MD5_AND_CAST5_CBC" },
-    { "1.2.840.113533.7.66.13",           "PASSWORD_BASED_MAC" },
-    { "1.2.840.113533.7.67",              "NSN_OC" },
-    { "1.2.840.113533.7.67.0",            "ENTRUST_USER" },
-    { "1.2.840.113533.7.68",              "NSN_AT" },
-    { "1.2.840.113533.7.68.0",            "ENTRUST_CA_INFO" },
-    { "1.2.840.113533.7.68.10",           "ATTRIBUTE_CERTIFICATE" },
-    { "1.2.840.113549.1.1",               "PKCS_1" },
-    { "1.2.840.113549.1.1.1",             "RSA_ENCRYPTION" },
-    { "1.2.840.113549.1.1.2",             "MD2_WITH_RSA_ENCRYPTION" },
-    { "1.2.840.113549.1.1.3",             "MD4_WITH_RSA_ENCRYPTION" },
-    { "1.2.840.113549.1.1.4",             "MD5_WITH_RSA_ENCRYPTION" },
-    { "1.2.840.113549.1.1.5",             "SHA1_WITH_RSA_ENCRYPTION" },
-    { "1.2.840.113549.1.1.7",             "RSA_OAEP" },
-    { "1.2.840.113549.1.1.8",             "PKCS1_MGF" },
-    { "1.2.840.113549.1.1.9",             "RSA_OAEP_P_SPECIFIED" },
-    { "1.2.840.113549.1.1.10",            "RSA_PSS" },
-    { "1.2.840.113549.1.1.11",            "SHA256_WITH_RSA_ENCRYPTION" },
-    { "1.2.840.113549.1.1.12",            "SHA384_WITH_RSA_ENCRYPTION" },
-    { "1.2.840.113549.1.1.13",            "SHA512_WITH_RSA_ENCRYPTION" },
-    { "1.2.840.113549.1.1.14",            "SHA224_WITH_RSA_ENCRYPTION" },
-    { "1.2.840.113549.1.1.6",             "RSA_OAEP_ENCRYPTION_SET" },
-    { "1.2.840.113549.1.2",               "BSAFE_RSA_ENCR" },
-    { "1.2.840.113549.1.3",               "PKCS_3" },
-    { "1.2.840.113549.1.3.1",             "DH_KEY_AGREEMENT" },
-    { "1.2.840.113549.1.5",               "PKCS_5" },
-    { "1.2.840.113549.1.5.1",             "PBE_WITH_MD2_AND_DES_CBC" },
-    { "1.2.840.113549.1.5.3",             "PBE_WITH_MD5_AND_DES_CBC" },
-    { "1.2.840.113549.1.5.4",             "PBE_WITH_MD2_AND_RC2_CBC" },
-    { "1.2.840.113549.1.5.6",             "PBE_WITH_MD5_AND_RC2_CBC" },
-    { "1.2.840.113549.1.5.9",             "PBE_WITH_MD5_AND_XOR" },
-    { "1.2.840.113549.1.5.10",            "PBE_WITH_SHA_AND_DES_CBC" },
-    { "1.2.840.113549.1.5.12",            "PKCS5_PBKDF2" },
-    { "1.2.840.113549.1.5.13",            "PKCS5_PBES2" },
-    { "1.2.840.113549.1.5.14",            "PKCS5_PBMAC1" },
-    { "1.2.840.113549.1.7",               "PKCS_7" },
-    { "1.2.840.113549.1.7.1",             "DATA" },
-    { "1.2.840.113549.1.7.2",             "SIGNED_DATA" },
-    { "1.2.840.113549.1.7.3",             "ENVELOPED_DATA" },
-    { "1.2.840.113549.1.7.4",             "SIGNED_AND_ENVELOPED_DATA" },
-    { "1.2.840.113549.1.7.5",             "DIGESTED_DATA" },
-    { "1.2.840.113549.1.7.6",             "ENCRYPTED_DATA" },
-    { "1.2.840.113549.1.7.7",             "DATA_WITH_ATTRIBUTES" },
-    { "1.2.840.113549.1.7.8",             "ENCRYPTED_PRIVATE_KEY_INFO" },
-    { "1.2.840.113549.1.9",               "PKCS_9" },
-    { "1.2.840.113549.1.9.1",             "EMAIL_ADDRESS" },
-    { "1.2.840.113549.1.9.2",             "UNSTRUCTURED_NAME" },
-    { "1.2.840.113549.1.9.3",             "CONTENT_TYPE" },
-    { "1.2.840.113549.1.9.4",             "MESSAGE_DIGEST" },
-    { "1.2.840.113549.1.9.5",             "SIGNING_TIME" },
-    { "1.2.840.113549.1.9.6",             "COUNTER_SIGNATURE" },
-    { "1.2.840.113549.1.9.7",             "CHALLENGE_PASSWORD" },
-    { "1.2.840.113549.1.9.8",             "UNSTRUCTURED_ADDRESS" },
-    { "1.2.840.113549.1.9.9",             "EXTENDED_CERTIFICATE_ATTRIBUTES" },
-    { "1.2.840.113549.1.9.10",            "ISSUER_AND_SERIAL_NUMBER" },
-    { "1.2.840.113549.1.9.11",            "PASSWORD_CHECK" },
-    { "1.2.840.113549.1.9.12",            "PUBLIC_KEY" },
-    { "1.2.840.113549.1.9.13",            "SIGNING_DESCRIPTION" },
-    { "1.2.840.113549.1.9.14",            "EXTENSION_REQUEST" },
-    { "1.2.840.113549.1.9.15",            "S_MIME_CAPABILITIES" },
-    { "1.2.840.113549.1.9.15.1",          "PREFER_SIGNED_DATA" },
-    { "1.2.840.113549.1.9.15.2",          "CAN_NOT_DECRYPT_ANY" },
-    { "1.2.840.113549.1.9.15.3",          "RECEIPT_REQUEST" },
-    { "1.2.840.113549.1.9.15.4",          "RECEIPT" },
-    { "1.2.840.113549.1.9.15.5",          "CONTENT_HINTS" },
-    { "1.2.840.113549.1.9.15.6",          "ML_EXPANSION_HISTORY" },
-    { "1.2.840.113549.1.9.16",            "ID_S_MIME" },
-    { "1.2.840.113549.1.9.16.0",          "ID_MOD" },
-    { "1.2.840.113549.1.9.16.0.1",        "ID_MOD_CMS" },
-    { "1.2.840.113549.1.9.16.0.2",        "ID_MOD_ESS" },
-    { "1.2.840.113549.1.9.16.0.3",        "ID_MOD_OID" },
-    { "1.2.840.113549.1.9.16.0.4",        "ID_MOD_MSG_V3" },
-    { "1.2.840.113549.1.9.16.0.5",        "ID_MOD_ETS_E_SIGNATURE_88" },
-    { "1.2.840.113549.1.9.16.0.6",        "ID_MOD_ETS_E_SIGNATURE_97" },
-    { "1.2.840.113549.1.9.16.0.7",        "ID_MOD_ETS_E_SIG_POLICY_88" },
-    { "1.2.840.113549.1.9.16.0.8",        "ID_MOD_ETS_E_SIG_POLICY_88" },
-    { "1.2.840.113549.1.9.16.1",          "CONTENT_TYPE" },
-    { "1.2.840.113549.1.9.16.1.1",        "RECEIPT" },
-    { "1.2.840.113549.1.9.16.1.2",        "AUTH_DATA" },
-    { "1.2.840.113549.1.9.16.1.3",        "PUBLISH_CERT" },
-    { "1.2.840.113549.1.9.16.1.4",        "T_ST_INFO" },
-    { "1.2.840.113549.1.9.16.1.5",        "T_DT_INFO" },
-    { "1.2.840.113549.1.9.16.1.6",        "CONTENT_INFO" },
-    { "1.2.840.113549.1.9.16.1.7",        "D_VCS_REQUEST_DATA" },
-    { "1.2.840.113549.1.9.16.1.8",        "D_VCS_RESPONSE_DATA" },
-    { "1.2.840.113549.1.9.16.1.9",        "COMPRESSED_DATA" },
-    { "1.2.840.113549.1.9.16.1.10",       "SCVP_CERT_VAL_REQUEST" },
-    { "1.2.840.113549.1.9.16.1.11",       "SCVP_CERT_VAL_RESPONSE" },
-    { "1.2.840.113549.1.9.16.1.12",       "SCVP_VAL_POL_REQUEST" },
-    { "1.2.840.113549.1.9.16.1.13",       "SCVP_VAL_POL_RESPONSE" },
-    { "1.2.840.113549.1.9.16.1.14",       "ATTR_CERT_ENC_ATTRS" },
-    { "1.2.840.113549.1.9.16.1.15",       "T_S_REQ" },
-    { "1.2.840.113549.1.9.16.1.16",       "FIRMWARE_PACKAGE" },
-    { "1.2.840.113549.1.9.16.1.17",       "FIRMWARE_LOAD_RECEIPT" },
-    { "1.2.840.113549.1.9.16.1.18",       "FIRMWARE_LOAD_ERROR" },
-    { "1.2.840.113549.1.9.16.1.19",       "CONTENT_COLLECTION" },
-    { "1.2.840.113549.1.9.16.1.20",       "CONTENT_WITH_ATTRS" },
-    { "1.2.840.113549.1.9.16.1.21",       "ENC_KEY_WITH_ID" },
-    { "1.2.840.113549.1.9.16.1.22",       "ENC_PEPSI" },
-    { "1.2.840.113549.1.9.16.1.23",       "AUTH_ENVELOPED_DATA" },
-    { "1.2.840.113549.1.9.16.1.24",       "ROUTE_ORIGIN_ATTEST" },
-    { "1.2.840.113549.1.9.16.1.25",       "SYMMETRIC_KEY_PACKAGE" },
-    { "1.2.840.113549.1.9.16.1.26",       "RPKI_MANIFEST" },
-    { "1.2.840.113549.1.9.16.1.27",       "ASCII_TEXT_WITH_CRLF" },
-    { "1.2.840.113549.1.9.16.1.28",       "XML" },
-    { "1.2.840.113549.1.9.16.1.29",       "PDF" },
-    { "1.2.840.113549.1.9.16.1.30",       "POSTSCRIPT" },
-    { "1.2.840.113549.1.9.16.1.31",       "TIMESTAMPED_DATA" },
-    { "1.2.840.113549.1.9.16.1.32",       "AS_ADJACENCY_ATTEST" },
-    { "1.2.840.113549.1.9.16.1.33",       "RPKI_TRUST_ANCHOR" },
-    { "1.2.840.113549.1.9.16.1.34",       "TRUST_ANCHOR_LIST" },
-    { "1.2.840.113549.1.9.16.2",          "AUTHENTICATED_ATTRIBUTES" },
-    { "1.2.840.113549.1.9.16.2.1",        "RECEIPT_REQUEST" },
-    { "1.2.840.113549.1.9.16.2.2",        "SECURITY_LABEL" },
-    { "1.2.840.113549.1.9.16.2.3",        "ML_EXPAND_HISTORY" },
-    { "1.2.840.113549.1.9.16.2.4",        "CONTENT_HINT" },
-    { "1.2.840.113549.1.9.16.2.5",        "MSG_SIG_DIGEST" },
-    { "1.2.840.113549.1.9.16.2.6",        "ENCAP_CONTENT_TYPE" },
-    { "1.2.840.113549.1.9.16.2.7",        "CONTENT_IDENTIFIER" },
-    { "1.2.840.113549.1.9.16.2.8",        "MAC_VALUE" },
-    { "1.2.840.113549.1.9.16.2.9",        "EQUIVALENT_LABELS" },
-    { "1.2.840.113549.1.9.16.2.10",       "CONTENT_REFERENCE" },
-    { "1.2.840.113549.1.9.16.2.11",       "ENCRYP_KEY_PREF" },
-    { "1.2.840.113549.1.9.16.2.12",       "SIGNING_CERTIFICATE" },
-    { "1.2.840.113549.1.9.16.2.13",       "SMIME_ENCRYPT_CERTS" },
-    { "1.2.840.113549.1.9.16.2.14",       "TIME_STAMP_TOKEN" },
-    { "1.2.840.113549.1.9.16.2.15",       "SIG_POLICY_ID" },
-    { "1.2.840.113549.1.9.16.2.16",       "COMMITMENT_TYPE" },
-    { "1.2.840.113549.1.9.16.2.17",       "SIGNER_LOCATION" },
-    { "1.2.840.113549.1.9.16.2.18",       "SIGNER_ATTR" },
-    { "1.2.840.113549.1.9.16.2.19",       "OTHER_SIG_CERT" },
-    { "1.2.840.113549.1.9.16.2.20",       "CONTENT_TIMESTAMP" },
-    { "1.2.840.113549.1.9.16.2.21",       "CERTIFICATE_REFS" },
-    { "1.2.840.113549.1.9.16.2.22",       "REVOCATION_REFS" },
-    { "1.2.840.113549.1.9.16.2.23",       "CERT_VALUES" },
-    { "1.2.840.113549.1.9.16.2.24",       "REVOCATION_VALUES" },
-    { "1.2.840.113549.1.9.16.2.25",       "ESC_TIME_STAMP" },
-    { "1.2.840.113549.1.9.16.2.26",       "CERT_CRL_TIMESTAMP" },
-    { "1.2.840.113549.1.9.16.2.27",       "ARCHIVE_TIME_STAMP" },
-    { "1.2.840.113549.1.9.16.2.28",       "SIGNATURE_TYPE" },
-    { "1.2.840.113549.1.9.16.2.29",       "DVCS_DVC" },
-    { "1.2.840.113549.1.9.16.2.30",       "CEK_REFERENCE" },
-    { "1.2.840.113549.1.9.16.2.31",       "MAX_CEK_DECRYPTS" },
-    { "1.2.840.113549.1.9.16.2.32",       "KEK_DERIVATION_ALG" },
-    { "1.2.840.113549.1.9.16.2.33",       "INTENDED_RECIPIENTS" },
-    { "1.2.840.113549.1.9.16.2.34",       "CMC_UNSIGNED_DATA" },
-    { "1.2.840.113549.1.9.16.2.35",       "FW_PACKAGE_ID" },
-    { "1.2.840.113549.1.9.16.2.36",       "FW_TARGET_HARDWARE_I_DS" },
-    { "1.2.840.113549.1.9.16.2.37",       "FW_DECRYPT_KEY_ID" },
-    { "1.2.840.113549.1.9.16.2.38",       "FW_IMPL_CRYPT_ALGS" },
-    { "1.2.840.113549.1.9.16.2.39",       "FW_WRAPPED_FIRMWARE_KEY" },
-    { "1.2.840.113549.1.9.16.2.40",       "FW_COMMUNITY_IDENTIFIERS" },
-    { "1.2.840.113549.1.9.16.2.41",       "FW_PKG_MESSAGE_DIGEST" },
-    { "1.2.840.113549.1.9.16.2.42",       "FW_PACKAGE_INFO" },
-    { "1.2.840.113549.1.9.16.2.43",       "FW_IMPL_COMPRESS_ALGS" },
-    { "1.2.840.113549.1.9.16.2.44",       "ETS_ATTR_CERTIFICATE_REFS" },
-    { "1.2.840.113549.1.9.16.2.45",       "ETS_ATTR_REVOCATION_REFS" },
-    { "1.2.840.113549.1.9.16.2.46",       "BINARY_SIGNING_TIME" },
-    { "1.2.840.113549.1.9.16.2.47",       "SIGNING_CERTIFICATE_V2" },
-    { "1.2.840.113549.1.9.16.2.48",       "ETS_ARCHIVE_TIME_STAMP_V2" },
-    { "1.2.840.113549.1.9.16.2.49",       "ER_INTERNAL" },
-    { "1.2.840.113549.1.9.16.2.50",       "ER_EXTERNAL" },
-    { "1.2.840.113549.1.9.16.2.51",       "MULTIPLE_SIGNATURES" },
-    { "1.2.840.113549.1.9.16.3.1",        "ES_D_HWITH3_DES" },
-    { "1.2.840.113549.1.9.16.3.2",        "ES_D_HWITH_RC2" },
-    { "1.2.840.113549.1.9.16.3.3",        "3DES_WRAP" },
-    { "1.2.840.113549.1.9.16.3.4",        "RC2_WRAP" },
-    { "1.2.840.113549.1.9.16.3.5",        "ES_DH" },
-    { "1.2.840.113549.1.9.16.3.6",        "CMS3_DE_SWRAP" },
-    { "1.2.840.113549.1.9.16.3.7",        "CMS_RC2WRAP" },
-    { "1.2.840.113549.1.9.16.3.8",        "ZLIB" },
-    { "1.2.840.113549.1.9.16.3.9",        "PWRI_KEK" },
-    { "1.2.840.113549.1.9.16.3.10",       "SS_DH" },
-    { "1.2.840.113549.1.9.16.3.11",       "HMAC_WITH3_DE_SWRAP" },
-    { "1.2.840.113549.1.9.16.3.12",       "HMAC_WITH_AE_SWRAP" },
-    { "1.2.840.113549.1.9.16.3.13",       "MD5_XOR_EXPERIMENT" },
-    { "1.2.840.113549.1.9.16.3.14",       "RSA_KEM" },
-    { "1.2.840.113549.1.9.16.3.15",       "AUTH_ENC128" },
-    { "1.2.840.113549.1.9.16.3.16",       "AUTH_ENC256" },
-    { "1.2.840.113549.1.9.16.4.1",        "CERT_DIST_LDAP" },
-    { "1.2.840.113549.1.9.16.5.1",        "SIG_POLICY_QUALIFIER_SPURI_X" },
-    { "1.2.840.113549.1.9.16.5.2",        "SIG_POLICY_QUALIFIER_SP_USER_NOTICE" },
-    { "1.2.840.113549.1.9.16.6.1",        "PROOF_OF_ORIGIN" },
-    { "1.2.840.113549.1.9.16.6.2",        "PROOF_OF_RECEIPT" },
-    { "1.2.840.113549.1.9.16.6.3",        "PROOF_OF_DELIVERY" },
-    { "1.2.840.113549.1.9.16.6.4",        "PROOF_OF_SENDER" },
-    { "1.2.840.113549.1.9.16.6.5",        "PROOF_OF_APPROVAL" },
-    { "1.2.840.113549.1.9.16.6.6",        "PROOF_OF_CREATION" },
-    { "1.2.840.113549.1.9.16.8.1",        "GL_USE_KEK" },
-    { "1.2.840.113549.1.9.16.8.2",        "GL_DELETE" },
-    { "1.2.840.113549.1.9.16.8.3",        "GL_ADD_MEMBER" },
-    { "1.2.840.113549.1.9.16.8.4",        "GL_DELETE_MEMBER" },
-    { "1.2.840.113549.1.9.16.8.5",        "GL_REKEY" },
-    { "1.2.840.113549.1.9.16.8.6",        "GL_ADD_OWNER" },
-    { "1.2.840.113549.1.9.16.8.7",        "GL_REMOVE_OWNER" },
-    { "1.2.840.113549.1.9.16.8.8",        "GLK_COMPROMISE" },
-    { "1.2.840.113549.1.9.16.8.9",        "GLK_REFRESH" },
-    { "1.2.840.113549.1.9.16.8.10",       "GL_FAIL_INFO" },
-    { "1.2.840.113549.1.9.16.8.11",       "GLA_QUERY_REQUEST" },
-    { "1.2.840.113549.1.9.16.8.12",       "GLA_QUERY_RESPONSE" },
-    { "1.2.840.113549.1.9.16.8.13",       "GL_PROVIDE_CERT" },
-    { "1.2.840.113549.1.9.16.8.14",       "GL_UPDATE_CERT" },
-    { "1.2.840.113549.1.9.16.8.15",       "GL_KEY" },
-    { "1.2.840.113549.1.9.16.9",          "SIGNATURE_TYPE_IDENTIFIER" },
-    { "1.2.840.113549.1.9.16.9.1",        "ORIGINATOR_SIG" },
-    { "1.2.840.113549.1.9.16.9.2",        "DOMAIN_SIG" },
-    { "1.2.840.113549.1.9.16.9.3",        "ADDITIONAL_ATTRIBUTES_SIG" },
-    { "1.2.840.113549.1.9.16.9.4",        "REVIEW_SIG" },
-    { "1.2.840.113549.1.9.16.11",         "CAPABILITIES" },
-    { "1.2.840.113549.1.9.16.11.1",       "PREFER_BINARY_INSIDE" },
-    { "1.2.840.113549.1.9.20",            "FRIENDLY_NAME_(FOR_PKCS_#12)" },
-    { "1.2.840.113549.1.9.21",            "LOCAL_KEY_ID_(FOR_PKCS_#12)" },
-    { "1.2.840.113549.1.9.22",            "CERT_TYPES_(FOR_PKCS_#12)" },
-    { "1.2.840.113549.1.9.22.1",          "X509_CERTIFICATE_(FOR_PKCS_#12)" },
-    { "1.2.840.113549.1.9.22.2",          "SDSI_CERTIFICATE_(FOR_PKCS_#12)" },
-    { "1.2.840.113549.1.9.23",            "CRL_TYPES_(FOR_PKCS_#12)" },
-    { "1.2.840.113549.1.9.23.1",          "X509_CRL_(FOR_PKCS_#12)" },
-    { "1.2.840.113549.1.9.24",            "PKCS9OBJECT_CLASS" },
-    { "1.2.840.113549.1.9.25",            "PKCS9ATTRIBUTES" },
-    { "1.2.840.113549.1.9.25.1",          "PKCS15_TOKEN" },
-    { "1.2.840.113549.1.9.25.2",          "ENCRYPTED_PRIVATE_KEY_INFO" },
-    { "1.2.840.113549.1.9.25.3",          "RANDOM_NONCE" },
-    { "1.2.840.113549.1.9.25.4",          "SEQUENCE_NUMBER" },
-    { "1.2.840.113549.1.9.25.5",          "PKCS7_PDU" },
-    { "1.2.840.113549.1.9.26",            "PKCS9SYNTAX" },
-    { "1.2.840.113549.1.9.27",            "PKCS9MATCHING_RULES" },
-    { "1.2.840.113549.1.12",              "PKCS_12" },
-    { "1.2.840.113549.1.12.1",            "PKCS_12_PBE_IDS" },
-    { "1.2.840.113549.1.12.1.1",          "PBE_WITH_SHA_AND128_BIT_RC4" },
-    { "1.2.840.113549.1.12.1.2",          "PBE_WITH_SHA_AND40_BIT_RC4" },
-    { "1.2.840.113549.1.12.1.3",          "PBE_WITH_SHA_AND3_KEY_TRIPLE_DES_CBC" },
-    { "1.2.840.113549.1.12.1.4",          "PBE_WITH_SHA_AND2_KEY_TRIPLE_DES_CBC" },
-    { "1.2.840.113549.1.12.1.5",          "PBE_WITH_SHA_AND128_BIT_RC2_CBC" },
-    { "1.2.840.113549.1.12.1.6",          "PBE_WITH_SHA_AND40_BIT_RC2_CBC" },
-    { "1.2.840.113549.1.12.2",            "PKCS_12_ESPVKID" },
-    { "1.2.840.113549.1.12.2.1",          "PKCS_12_PKCS8_KEY_SHROUDING" },
-    { "1.2.840.113549.1.12.3",            "PKCS_12_BAG_IDS" },
-    { "1.2.840.113549.1.12.3.1",          "PKCS_12_KEY_BAG_ID" },
-    { "1.2.840.113549.1.12.3.2",          "PKCS_12_CERT_AND_CRL_BAG_ID" },
-    { "1.2.840.113549.1.12.3.3",          "PKCS_12_SECRET_BAG_ID" },
-    { "1.2.840.113549.1.12.3.4",          "PKCS_12_SAFE_CONTENTS_ID" },
-    { "1.2.840.113549.1.12.3.5",          "PKCS_12_PKCS_8_SHROUDED_KEY_BAG_ID" },
-    { "1.2.840.113549.1.12.4",            "PKCS_12_CERT_BAG_ID" },
-    { "1.2.840.113549.1.12.4.1",          "PKCS_12_X509_CERT_CRL_BAG_ID" },
-    { "1.2.840.113549.1.12.4.2",          "PKCS_12_SDSI_CERT_BAG_ID" },
-    { "1.2.840.113549.1.12.5",            "PKCS_12_OID" },
-    { "1.2.840.113549.1.12.5.1",          "PKCS_12_PBEID" },
-    { "1.2.840.113549.1.12.5.1.1",        "PKCS_12_PBE_WITH_SHA1_AND128_BIT_RC4" },
-    { "1.2.840.113549.1.12.5.1.2",        "PKCS_12_PBE_WITH_SHA1_AND40_BIT_RC4" },
-    { "1.2.840.113549.1.12.5.1.3",        "PKCS_12_PBE_WITH_SHA1_AND_TRIPLE_DESCBC" },
-    { "1.2.840.113549.1.12.5.1.4",        "PKCS_12_PBE_WITH_SHA1_AND128_BIT_RC2_CBC" },
-    { "1.2.840.113549.1.12.5.1.5",        "PKCS_12_PBE_WITH_SHA1_AND40_BIT_RC2_CBC" },
-    { "1.2.840.113549.1.12.5.1.6",        "PKCS_12_PBE_WITH_SHA1_AND_RC4" },
-    { "1.2.840.113549.1.12.5.1.7",        "PKCS_12_PBE_WITH_SHA1_AND_RC2_CBC" },
-    { "1.2.840.113549.1.12.5.2",          "PKCS_12_ENVELOPING_ID" },
-    { "1.2.840.113549.1.12.5.2.1",        "PKCS_12_RSA_ENCRYPTION_WITH128_BIT_RC4" },
-    { "1.2.840.113549.1.12.5.2.2",        "PKCS_12_RSA_ENCRYPTION_WITH40_BIT_RC4" },
-    { "1.2.840.113549.1.12.5.2.3",        "PKCS_12_RSA_ENCRYPTION_WITH_TRIPLE_DES" },
-    { "1.2.840.113549.1.12.5.3",          "PKCS_12_SIGNATURE_ID" },
-    { "1.2.840.113549.1.12.5.3.1",        "PKCS_12_RSA_SIGNATURE_WITH_SHA1_DIGEST" },
-    { "1.2.840.113549.1.12.10",           "PKCS_12_VERSION1" },
-    { "1.2.840.113549.1.12.10.1",         "PKCS_12_BAD_IDS" },
-    { "1.2.840.113549.1.12.10.1.1",       "PKCS_12_KEY_BAG" },
-    { "1.2.840.113549.1.12.10.1.2",       "PKCS_12_PKCS_8_SHROUDED_KEY_BAG" },
-    { "1.2.840.113549.1.12.10.1.3",       "PKCS_12_CERT_BAG" },
-    { "1.2.840.113549.1.12.10.1.4",       "PKCS_12_CRL_BAG" },
-    { "1.2.840.113549.1.12.10.1.5",       "PKCS_12_SECRET_BAG" },
-    { "1.2.840.113549.1.12.10.1.6",       "PKCS_12_SAFE_CONTENTS_BAG" },
-    { "1.2.840.113549.1.15.1",            "PKCS15MODULES" },
-    { "1.2.840.113549.1.15.2",            "PKCS15ATTRIBUTES" },
-    { "1.2.840.113549.1.15.3",            "PKCS15CONTENT_TYPE" },
-    { "1.2.840.113549.1.15.3.1",          "PKCS15CONTENT" },
-    { "1.2.840.113549.2",                 "DIGEST_ALGORITHM" },
-    { "1.2.840.113549.2.2",               "MD2" },
-    { "1.2.840.113549.2.4",               "MD4" },
-    { "1.2.840.113549.2.5",               "MD5" },
-    { "1.2.840.113549.2.7",               "HMAC_WITH_SHA1" },
-    { "1.2.840.113549.2.8",               "HMAC_WITH_SHA224" },
-    { "1.2.840.113549.2.9",               "HMAC_WITH_SHA256" },
-    { "1.2.840.113549.2.10",              "HMAC_WITH_SHA384" },
-    { "1.2.840.113549.2.11",              "HMAC_WITH_SHA512" },
-    { "1.2.840.113549.3",                 "ENCRYPTION_ALGORITHM" },
-    { "1.2.840.113549.3.2",               "RC2_CBC" },
-    { "1.2.840.113549.3.3",               "RC2_ECB" },
-    { "1.2.840.113549.3.4",               "RC4" },
-    { "1.2.840.113549.3.5",               "RC4_WITH_MAC" },
-    { "1.2.840.113549.3.6",               "DESX_CBC" },
-    { "1.2.840.113549.3.7",               "DES_EDE3_CBC" },
-    { "1.2.840.113549.3.8",               "RC5_CBC" },
-    { "1.2.840.113549.3.9",               "RC5_CBC_PAD" },
-    { "1.2.840.113549.3.10",              "DES_CDMF" },
-    { "1.2.840.114021.1.6.1",             "IDENTRUS_UNKNOWN_POLICY_IDENTIFIER" },
-    { "1.2.840.114021.4.1",               "IDENTRUS_OCSP" },
-    { "1.2.840.113556.1.2.241",           "DELIVERY_MECHANISM" },
-    { "1.2.840.113556.1.2.281",           "NT_SECURITY_DESCRIPTOR" },
-    { "1.2.840.113556.1.3.0",             "SITE_ADDRESSING" },
-    { "1.2.840.113556.1.3.13",            "CLASS_SCHEMA" },
-    { "1.2.840.113556.1.3.14",            "ATTRIBUTE_SCHEMA" },
-    { "1.2.840.113556.1.3.17",            "MAILBOX_AGENT" },
-    { "1.2.840.113556.1.3.22",            "MAILBOX" },
-    { "1.2.840.113556.1.3.23",            "CONTAINER" },
-    { "1.2.840.113556.1.3.46",            "MAIL_RECIPIENT" },
-    { "1.2.840.113556.1.4.145",           "REVISION" },
-    { "1.2.840.113556.1.4.1327",          "P_KI_DEFAULT_KEY_SPEC" },
-    { "1.2.840.113556.1.4.1328",          "P_KI_KEY_USAGE" },
-    { "1.2.840.113556.1.4.1329",          "P_KI_MAX_ISSUING_DEPTH" },
-    { "1.2.840.113556.1.4.1330",          "P_KI_CRITICAL_EXTENSIONS" },
-    { "1.2.840.113556.1.4.1331",          "P_KI_EXPIRATION_PERIOD" },
-    { "1.2.840.113556.1.4.1332",          "P_KI_OVERLAP_PERIOD" },
-    { "1.2.840.113556.1.4.1333",          "P_KI_EXTENDED_KEY_USAGE" },
-    { "1.2.840.113556.1.4.1334",          "P_KI_DEFAULT_CS_PS" },
-    { "1.2.840.113556.1.4.1335",          "P_KI_ENROLLMENT_ACCESS" },
-    { "1.2.840.113556.1.4.1429",          "MS_PKI_RA_SIGNATURE" },
-    { "1.2.840.113556.1.4.1430",          "MS_PKI_ENROLLMENT_FLAG" },
-    { "1.2.840.113556.1.4.1431",          "MS_PKI_PRIVATE_KEY_FLAG" },
-    { "1.2.840.113556.1.4.1432",          "MS_PKI_CERTIFICATE_NAME_FLAG" },
-    { "1.2.840.113556.1.4.1433",          "MS_PKI_MINIMAL_KEY_SIZE" },
-    { "1.2.840.113556.1.4.1434",          "MS_PKI_TEMPLATE_SCHEMA_VERSION" },
-    { "1.2.840.113556.1.4.1435",          "MS_PKI_TEMPLATE_MINOR_REVISION" },
-    { "1.2.840.113556.1.4.1436",          "MS_PKI_CERT_TEMPLATE_OID" },
-    { "1.2.840.113556.1.4.1437",          "MS_PKI_SUPERSEDE_TEMPLATES" },
-    { "1.2.840.113556.1.4.1438",          "MS_PKI_RA_POLICIES" },
-    { "1.2.840.113556.1.4.1439",          "MS_PKI_CERTIFICATE_POLICY" },
-    { "1.2.840.113556.1.4.1674",          "MS_PKI_CERTIFICATE_APPLICATION_POLICY" },
-    { "1.2.840.113556.1.4.1675",          "MS_PKI_RA_APPLICATION_POLICIES" },
-    { "1.2.840.113556.4.3",               "MICROSOFT_EXCEL" },
-    { "1.2.840.113556.4.4",               "TITLED_WITH_OID" },
-    { "1.2.840.113556.4.5",               "MICROSOFT_POWER_POINT" },
-    { "1.2.840.113583.1",                 "ADOBE_ACROBAT" },
-    { "1.2.840.113583.1.1",               "ACROBAT_SECURITY" },
-    { "1.2.840.113583.1.1.1",             "PDF_PASSWORD" },
-    { "1.2.840.113583.1.1.2",             "PDF_DEFAULT_SIGNING_CREDENTIAL" },
-    { "1.2.840.113583.1.1.3",             "PDF_DEFAULT_ENCRYPTION_CREDENTIAL" },
-    { "1.2.840.113583.1.1.4",             "PDF_PASSWORD_TIMEOUT" },
-    { "1.2.840.113583.1.1.5",             "PDF_AUTHENTIC_DOCUMENTS_TRUST" },
-    { "1.2.840.113583.1.1.6",             "PDF_DYNAMIC_CONTENT_TRUST" },
-    { "1.2.840.113583.1.1.7",             "PDF_UBIQUITY_TRUST" },
-    { "1.2.840.113583.1.1.8",             "PDF_REVOCATION_INFO_ARCHIVAL" },
-    { "1.2.840.113583.1.1.9",             "PDF_X509_EXTENSION" },
-    { "1.2.840.113583.1.1.9.1",           "PDF_TIME_STAMP" },
-    { "1.2.840.113583.1.1.9.2",           "PDF_ARCHIVE_REV_INFO" },
-    { "1.2.840.113583.1.1.10",            "PDF_PPLK_LITE_CREDENTIAL" },
-    { "1.2.840.113583.1.2.",              "ACROBAT_CPS" },
-    { "1.2.840.113583.1.2.1",             "PDF_AUTHENTIC_DOCUMENTS_CPS" },
-    { "1.2.840.113583.1.2.2",             "PDF_TEST_CPS" },
-    { "1.2.840.113583.1.2.3",             "PDF_UBIQUITY_CPS" },
-    { "1.2.840.113583.1.2.4",             "PDF_ADHOC_CPS" },
-    { "1.2.840.113583.1.7",               "ACROBAT_UBIQUITY" },
-    { "1.2.840.113583.1.7.1",             "PDF_UBIQUITY_SUB_RIGHTS" },
-    { "1.2.840.113583.1.9",               "ACROBAT_EXTENSION" },
-    { "1.2.840.113628.114.1.7",           "ADOBE_PKCS7" },
-    { "1.2.840.113635.100",               "APPLE_DATA_SECURITY" },
-    { "1.2.840.113635.100.1",             "APPLE_TRUST_POLICY" },
-    { "1.2.840.113635.100.1.1",           "APPLE_I_SIGN_TP" },
-    { "1.2.840.113635.100.1.2",           "APPLE_X509_BASIC" },
-    { "1.2.840.113635.100.1.3",           "APPLE_SSL_POLICY" },
-    { "1.2.840.113635.100.1.4",           "APPLE_LOCAL_CERT_GEN_POLICY" },
-    { "1.2.840.113635.100.1.5",           "APPLE_CSR_GEN_POLICY" },
-    { "1.2.840.113635.100.1.6",           "APPLE_CRL_POLICY" },
-    { "1.2.840.113635.100.1.7",           "APPLE_OCSP_POLICY" },
-    { "1.2.840.113635.100.1.8",           "APPLE_SMIME_POLICY" },
-    { "1.2.840.113635.100.1.9",           "APPLE_EAP_POLICY" },
-    { "1.2.840.113635.100.1.10",          "APPLE_SW_UPDATE_SIGNING_POLICY" },
-    { "1.2.840.113635.100.1.11",          "APPLE_IP_SEC_POLICY" },
-    { "1.2.840.113635.100.1.12",          "APPLE_I_CHAT_POLICY" },
-    { "1.2.840.113635.100.1.13",          "APPLE_RESOURCE_SIGN_POLICY" },
-    { "1.2.840.113635.100.1.14",          "APPLE_PKINIT_CLIENT_POLICY" },
-    { "1.2.840.113635.100.1.15",          "APPLE_PKINIT_SERVER_POLICY" },
-    { "1.2.840.113635.100.1.16",          "APPLE_CODE_SIGNING_POLICY" },
-    { "1.2.840.113635.100.1.17",          "APPLE_PACKAGE_SIGNING_POLICY" },
-    { "1.2.840.113635.100.2",             "APPLE_SECURITY_ALGORITHM" },
-    { "1.2.840.113635.100.2.1",           "APPLE_FEE" },
-    { "1.2.840.113635.100.2.2",           "APPLE_ASC" },
-    { "1.2.840.113635.100.2.3",           "APPLE_FEE_MD5" },
-    { "1.2.840.113635.100.2.4",           "APPLE_FEE_SHA1" },
-    { "1.2.840.113635.100.2.5",           "APPLE_FEED" },
-    { "1.2.840.113635.100.2.6",           "APPLE_FEEDEXP" },
-    { "1.2.840.113635.100.2.7",           "APPLE_ECDSA" },
-    { "1.2.840.113635.100.3",             "APPLE_DOT_MAC_CERTIFICATE" },
-    { "1.2.840.113635.100.3.1",           "APPLE_DOT_MAC_CERTIFICATE_REQUEST" },
-    { "1.2.840.113635.100.3.2",           "APPLE_DOT_MAC_CERTIFICATE_EXTENSION" },
-    { "1.2.840.113635.100.3.3",           "APPLE_DOT_MAC_CERTIFICATE_REQUEST_VALUES" },
-    { "1.2.840.113635.100.4",             "APPLE_EXTENDED_KEY_USAGE" },
-    { "1.2.840.113635.100.4.1",           "APPLE_CODE_SIGNING" },
-    { "1.2.840.113635.100.4.1.1",         "APPLE_CODE_SIGNING_DEVELOPMENT" },
-    { "1.2.840.113635.100.4.1.2",         "APPLE_SOFTWARE_UPDATE_SIGNING" },
-    { "1.2.840.113635.100.4.1.3",         "APPLE_CODE_SIGNING_THIRD_PARTY" },
-    { "1.2.840.113635.100.4.1.4",         "APPLE_RESOURCE_SIGNING" },
-    { "1.2.840.113635.100.4.2",           "APPLE_I_CHAT_SIGNING" },
-    { "1.2.840.113635.100.4.3",           "APPLE_I_CHAT_ENCRYPTION" },
-    { "1.2.840.113635.100.4.4",           "APPLE_SYSTEM_IDENTITY" },
-    { "1.2.840.113635.100.4.5",           "APPLE_CRYPTO_ENV" },
-    { "1.2.840.113635.100.4.5.1",         "APPLE_CRYPTO_PRODUCTION_ENV" },
-    { "1.2.840.113635.100.4.5.2",         "APPLE_CRYPTO_MAINTENANCE_ENV" },
-    { "1.2.840.113635.100.4.5.3",         "APPLE_CRYPTO_TEST_ENV" },
-    { "1.2.840.113635.100.4.5.4",         "APPLE_CRYPTO_DEVELOPMENT_ENV" },
-    { "1.2.840.113635.100.4.6",           "APPLE_CRYPTO_QO_S" },
-    { "1.2.840.113635.100.4.6.1",         "APPLE_CRYPTO_TIER0_QO_S" },
-    { "1.2.840.113635.100.4.6.2",         "APPLE_CRYPTO_TIER1_QO_S" },
-    { "1.2.840.113635.100.4.6.3",         "APPLE_CRYPTO_TIER2_QO_S" },
-    { "1.2.840.113635.100.4.6.4",         "APPLE_CRYPTO_TIER3_QO_S" },
-    { "1.2.840.113635.100.5",             "APPLE_CERTIFICATE_POLICIES" },
-    { "1.2.840.113635.100.5.1",           "APPLE_CERTIFICATE_POLICY_ID" },
-    { "1.2.840.113635.100.5.2",           "APPLE_DOT_MAC_CERTIFICATE_POLICY_ID" },
-    { "1.2.840.113635.100.5.3",           "APPLE_ADC_CERTIFICATE_POLICY_ID" },
-    { "1.2.840.113635.100.6",             "APPLE_CERTIFICATE_EXTENSIONS" },
-    { "1.2.840.113635.100.6.1",           "APPLE_CERTIFICATE_EXTENSION_CODE_SIGNING" },
-    { "1.2.840.113635.100.6.1.1",         "APPLE_CERTIFICATE_EXTENSION_APPLE_SIGNING" },
-    { "1.2.840.113635.100.6.1.2",         "APPLE_CERTIFICATE_EXTENSION_ADC_DEVELOPER_SIGNING" },
-    { "1.2.840.113635.100.6.1.3",         "APPLE_CERTIFICATE_EXTENSION_ADC_APPLE_SIGNING" },
-    { "1.3.6.1.4.1.311.2.1.4",            "SPC_INDIRECT_DATA_CONTENT" },
-    { "1.3.6.1.4.1.311.2.1.10",           "SPC_AGENCY_INFO" },
-    { "1.3.6.1.4.1.311.2.1.11",           "SPC_STATEMENT_TYPE" },
-    { "1.3.6.1.4.1.311.2.1.12",           "SPC_SP_OPUS_INFO" },
-    { "1.3.6.1.4.1.311.2.1.14",           "CERT_REQ_EXTENSIONS" },
-    { "1.3.6.1.4.1.311.2.1.15",           "SPC_PE_IMAGE_DATA" },
-    { "1.3.6.1.4.1.311.2.1.18",           "SPC_RAW_FILE_DATA" },
-    { "1.3.6.1.4.1.311.2.1.19",           "SPC_STRUCTURED_STORAGE_DATA" },
-    { "1.3.6.1.4.1.311.2.1.20",           "SPC_JAVA_CLASS_DATA_(TYPE_1)" },
-    { "1.3.6.1.4.1.311.2.1.21",           "INDIVIDUAL_CODE_SIGNING" },
-    { "1.3.6.1.4.1.311.2.1.22",           "COMMERCIAL_CODE_SIGNING" },
-    { "1.3.6.1.4.1.311.2.1.25",           "SPC_LINK_(TYPE_2)" },
-    { "1.3.6.1.4.1.311.2.1.26",           "SPC_MINIMAL_CRITERIA_INFO" },
-    { "1.3.6.1.4.1.311.2.1.27",           "SPC_FINANCIAL_CRITERIA_INFO" },
-    { "1.3.6.1.4.1.311.2.1.28",           "SPC_LINK_(TYPE_3)" },
-    { "1.3.6.1.4.1.311.2.1.29",           "SPC_HASH_INFO_OBJ_ID" },
-    { "1.3.6.1.4.1.311.2.1.30",           "SPC_SIP_INFO_OBJ_ID" },
-    { "1.3.6.1.4.1.311.2.2",              "CTL" },
-    { "1.3.6.1.4.1.311.2.2.1",            "CTL_TRUSTED_CODESIGNING_CA_LIST" },
-    { "1.3.6.1.4.1.311.2.2.2",            "CTL_TRUSTED_CLIENT_AUTH_CA_LIST" },
-    { "1.3.6.1.4.1.311.2.2.3",            "CTL_TRUSTED_SERVER_AUTH_CA_LIST" },
-    { "1.3.6.1.4.1.311.2.4.1",            "SPC_NESTED_SIGNATURES" },
-    { "1.3.6.1.4.1.311.3.2.1",            "TIMESTAMP_REQUEST" },
-    { "1.3.6.1.4.1.311.10.1",             "CERT_TRUST_LIST" },
-    { "1.3.6.1.4.1.311.10.1.1",           "SORTED_CTL" },
-    { "1.3.6.1.4.1.311.10.2",             "NEXT_UPDATE_LOCATION" },
-    { "1.3.6.1.4.1.311.10.3.1",           "CERT_TRUST_LIST_SIGNING" },
-    { "1.3.6.1.4.1.311.10.3.2",           "TIME_STAMP_SIGNING" },
-    { "1.3.6.1.4.1.311.10.3.3",           "SERVER_GATED_CRYPTO" },
-    { "1.3.6.1.4.1.311.10.3.3.1",         "SERIALIZED" },
-    { "1.3.6.1.4.1.311.10.3.4",           "ENCRYPTED_FILE_SYSTEM" },
-    { "1.3.6.1.4.1.311.10.3.5",           "WHQL_CRYPTO" },
-    { "1.3.6.1.4.1.311.10.3.6",           "NT5_CRYPTO" },
-    { "1.3.6.1.4.1.311.10.3.7",           "OEM_WHQL_CRYPTO" },
-    { "1.3.6.1.4.1.311.10.3.8",           "EMBEDDED_NT_CRYPTO" },
-    { "1.3.6.1.4.1.311.10.3.9",           "ROOT_LIST_SIGNER" },
-    { "1.3.6.1.4.1.311.10.3.10",          "QUALIFIED_SUBORDINATION" },
-    { "1.3.6.1.4.1.311.10.3.11",          "KEY_RECOVERY" },
-    { "1.3.6.1.4.1.311.10.3.12",          "DOCUMENT_SIGNING" },
-    { "1.3.6.1.4.1.311.10.3.13",          "LIFETIME_SIGNING" },
-    { "1.3.6.1.4.1.311.10.3.14",          "MOBILE_DEVICE_SOFTWARE" },
-    { "1.3.6.1.4.1.311.10.3.15",          "SMART_DISPLAY" },
-    { "1.3.6.1.4.1.311.10.3.16",          "CSP_SIGNATURE" },
-    { "1.3.6.1.4.1.311.10.3.4.1",         "EFS_RECOVERY" },
-    { "1.3.6.1.4.1.311.10.4.1",           "YESNO_TRUST_ATTR" },
-    { "1.3.6.1.4.1.311.10.5.1",           "DRM" },
-    { "1.3.6.1.4.1.311.10.5.2",           "DRM_INDIVIDUALIZATION" },
-    { "1.3.6.1.4.1.311.10.6.1",           "LICENSES" },
-    { "1.3.6.1.4.1.311.10.6.2",           "LICENSE_SERVER" },
-    { "1.3.6.1.4.1.311.10.7.1",           "KEYID_RDN" },
-    { "1.3.6.1.4.1.311.10.8.1",           "REMOVE_CERTIFICATE" },
-    { "1.3.6.1.4.1.311.10.9.1",           "CROSS_CERT_DIST_POINTS" },
-    { "1.3.6.1.4.1.311.10.10.1",          "CMC_ADD_ATTRIBUTES" },
-    { "1.3.6.1.4.1.311.10.11",            "CERT_PROP_ID_PREFIX" },
-    { "1.3.6.1.4.1.311.10.11.4",          "CERT_MD5_HASH_PROP_ID" },
-    { "1.3.6.1.4.1.311.10.11.20",         "CERT_KEY_IDENTIFIER_PROP_ID" },
-    { "1.3.6.1.4.1.311.10.11.28",         "CERT_ISSUER_SERIAL_NUMBER_MD5_HASH_PROP_ID" },
-    { "1.3.6.1.4.1.311.10.11.29",         "CERT_SUBJECT_NAME_MD5_HASH_PROP_ID" },
-    { "1.3.6.1.4.1.311.10.12.1",          "ANY_APPLICATION_POLICY" },
-    { "1.3.6.1.4.1.311.12",               "CATALOG" },
-    { "1.3.6.1.4.1.311.12.1.1",           "CATALOG_LIST" },
-    { "1.3.6.1.4.1.311.12.1.2",           "CATALOG_LIST_MEMBER" },
-    { "1.3.6.1.4.1.311.12.2.1",           "CATALOG_NAME_VALUE_OBJ_ID" },
-    { "1.3.6.1.4.1.311.12.2.2",           "CATALOG_MEMBER_INFO_OBJ_ID" },
-    { "1.3.6.1.4.1.311.13.1",             "RENEWAL_CERTIFICATE" },
-    { "1.3.6.1.4.1.311.13.2.1",           "ENROLMENT_NAME_VALUE_PAIR" },
-    { "1.3.6.1.4.1.311.13.2.2",           "ENROLMENT_CSP" },
-    { "1.3.6.1.4.1.311.13.2.3",           "OS_VERSION" },
-    { "1.3.6.1.4.1.311.16.4",             "MICROSOFT_RECIPIENT_INFO" },
-    { "1.3.6.1.4.1.311.17.1",             "PKCS12_KEY_PROVIDER_NAME_ATTR" },
-    { "1.3.6.1.4.1.311.17.2",             "LOCAL_MACHINE_KEYSET" },
-    { "1.3.6.1.4.1.311.17.3",             "PKCS12_EXTENDED_ATTRIBUTES" },
-    { "1.3.6.1.4.1.311.20.1",             "AUTO_ENROLL_CTL_USAGE" },
-    { "1.3.6.1.4.1.311.20.2",             "ENROLL_CERTTYPE_EXTENSION" },
-    { "1.3.6.1.4.1.311.20.2.1",           "ENROLLMENT_AGENT" },
-    { "1.3.6.1.4.1.311.20.2.2",           "SMARTCARD_LOGON" },
-    { "1.3.6.1.4.1.311.20.2.3",           "UNIVERSAL_PRINCIPAL_NAME" },
-    { "1.3.6.1.4.1.311.20.3",             "CERT_MANIFOLD" },
-    { "1.3.6.1.4.1.311.21.1",             "C_A_KEY_CERT_INDEX_PAIR" },
-    { "1.3.6.1.4.1.311.21.2",             "CERT_SRV_PREVIOUS_CERT_HASH" },
-    { "1.3.6.1.4.1.311.21.3",             "CRL_VIRTUAL_BASE" },
-    { "1.3.6.1.4.1.311.21.4",             "CRL_NEXT_PUBLISH" },
-    { "1.3.6.1.4.1.311.21.5",             "CA_EXCHANGE" },
-    { "1.3.6.1.4.1.311.21.6",             "KEY_RECOVERY" },
-    { "1.3.6.1.4.1.311.21.7",             "CERTIFICATE_TEMPLATE" },
-    { "1.3.6.1.4.1.311.21.9",             "RDN_DUMMY_SIGNER" },
-    { "1.3.6.1.4.1.311.21.10",            "APPLICATION_CERT_POLICIES" },
-    { "1.3.6.1.4.1.311.21.11",            "APPLICATION_POLICY_MAPPINGS" },
-    { "1.3.6.1.4.1.311.21.12",            "APPLICATION_POLICY_CONSTRAINTS" },
-    { "1.3.6.1.4.1.311.21.13",            "ARCHIVED_KEY" },
-    { "1.3.6.1.4.1.311.21.14",            "CRL_SELF_CDP" },
-    { "1.3.6.1.4.1.311.21.15",            "REQUIRE_CERT_CHAIN_POLICY" },
-    { "1.3.6.1.4.1.311.21.16",            "ARCHIVED_KEY_CERT_HASH" },
-    { "1.3.6.1.4.1.311.21.17",            "ISSUED_CERT_HASH" },
-    { "1.3.6.1.4.1.311.21.19",            "DS_EMAIL_REPLICATION" },
-    { "1.3.6.1.4.1.311.21.20",            "REQUEST_CLIENT_INFO" },
-    { "1.3.6.1.4.1.311.21.21",            "ENCRYPTED_KEY_HASH" },
-    { "1.3.6.1.4.1.311.21.22",            "CERTSRV_CROSS_CA_VERSION" },
-    { "1.3.6.1.4.1.311.25.1",             "NTDS_REPLICATION" },
-    { "1.3.6.1.4.1.311.31.1",             "PRODUCT_UPDATE" },
-    { "1.3.6.1.4.1.311.47.1.1",           "SYSTEM_HEALTH" },
-    { "1.3.6.1.4.1.311.47.1.3",           "SYSTEM_HEALTH_LOOPHOLE" },
-    { "1.3.6.1.4.1.311.60.1.1",           "ROOT_PROGRAM_FLAGS" },
-    { "1.3.6.1.4.1.311.61.1.1",           "KERNEL_MODE_CODE_SIGNING" },
-    { "1.3.6.1.4.1.311.60.2.1.1",         "JURISDICTION_OF_INCORPORATION_L" },
-    { "1.3.6.1.4.1.311.60.2.1.2",         "JURISDICTION_OF_INCORPORATION_SP" },
-    { "1.3.6.1.4.1.311.60.2.1.3",         "JURISDICTION_OF_INCORPORATION_C" },
-    { "1.3.6.1.4.1.311.88",               "CAPI_COM" },
-    { "1.3.6.1.4.1.311.88.1",             "CAPI_COM_VERSION" },
-    { "1.3.6.1.4.1.311.88.2",             "CAPI_COM_ATTRIBUTE" },
-    { "1.3.6.1.4.1.311.88.2.1",           "CAPI_COM_DOCUMENT_NAME" },
-    { "1.3.6.1.4.1.311.88.2.2",           "CAPI_COM_DOCUMENT_DESCRIPTION" },
-    { "1.3.6.1.4.1.311.88.3",             "CAPI_COM_ENCRYPTED_DATA" },
-    { "1.3.6.1.4.1.311.88.3.1",           "CAPI_COM_ENCRYPTED_CONTENT" },
-    { "1.3.6.1.4.1.188.7.1.1",            "ASCOM" },
-    { "1.3.6.1.4.1.188.7.1.1.1",          "IDEA_ECB" },
-    { "1.3.6.1.4.1.188.7.1.1.2",          "IDEA_CBC" },
-    { "1.3.6.1.4.1.188.7.1.1.3",          "IDEA_CFB" },
-    { "1.3.6.1.4.1.188.7.1.1.4",          "IDEA_OFB" },
-    { "1.3.6.1.4.1.2428.10.1.1",          "UNINETT_POLICY_IDENTIFIER" },
-    { "1.3.6.1.4.1.2712.10",              "ICE_TEL_POLICY_IDENTIFIER" },
-    { "1.3.6.1.4.1.2786.1.1.1",           "ICE_TEL_ITALIAN_POLICY_IDENTIFIER" },
-    { "1.3.6.1.4.1.3029.1.1.1",           "BLOWFISH_ECB" },
-    { "1.3.6.1.4.1.3029.1.1.2",           "BLOWFISH_CBC" },
-    { "1.3.6.1.4.1.3029.1.1.3",           "BLOWFISH_CFB" },
-    { "1.3.6.1.4.1.3029.1.1.4",           "BLOWFISH_OFB" },
-    { "1.3.6.1.4.1.3029.1.2.1",           "ELGAMAL" },
-    { "1.3.6.1.4.1.3029.1.2.1.1",         "ELGAMAL_WITH_SHA_1" },
-    { "1.3.6.1.4.1.3029.1.2.1.2",         "ELGAMAL_WITH_RIPEMD_160" },
-    { "1.3.6.1.4.1.3029.3.1.1",           "CRYPTLIB_PRESENCE_CHECK" },
-    { "1.3.6.1.4.1.3029.3.1.2",           "PKI_BOOT" },
-    { "1.3.6.1.4.1.3029.3.1.4",           "CRL_EXT_REASON" },
-    { "1.3.6.1.4.1.3029.3.1.5",           "KEY_FEATURES" },
-    { "1.3.6.1.4.1.3029.4.1",             "CRYPTLIB_CONTENT" },
-    { "1.3.6.1.4.1.3029.4.1.1",           "CRYPTLIB_CONFIG_DATA" },
-    { "1.3.6.1.4.1.3029.4.1.2",           "CRYPTLIB_USER_INDEX" },
-    { "1.3.6.1.4.1.3029.4.1.3",           "CRYPTLIB_USER_INFO" },
-    { "1.3.6.1.4.1.3029.4.1.4",           "RTCS_REQUEST" },
-    { "1.3.6.1.4.1.3029.4.1.5",           "RTCS_RESPONSE" },
-    { "1.3.6.1.4.1.3029.4.1.6",           "RTCS_RESPONSE_EXT" },
-    { "1.3.6.1.4.1.3029.42.11172.1",      "MPEG_1" },
-    { "1.3.6.1.4.1.3029.54.11940.54",     "TSA_POLICY" },
-    { "1.3.6.1.4.1.3029.88.89.90.90.89",  "X_YZZY_POLICY_IDENTIFIER" },
-    { "1.3.6.1.4.1.3401.8.1.1",           "PGP_EXTENSION" },
-    { "1.3.6.1.4.1.3576.7",               "ECIA_ASC_X12_EDI" },
-    { "1.3.6.1.4.1.3576.7.1",             "PLAIN_ED_IMESSAGE" },
-    { "1.3.6.1.4.1.3576.7.2",             "SIGNED_ED_IMESSAGE" },
-    { "1.3.6.1.4.1.3576.7.5",             "INTEGRITY_ED_IMESSAGE" },
-    { "1.3.6.1.4.1.3576.7.65",            "IA_RECEIPT_MESSAGE" },
-    { "1.3.6.1.4.1.3576.7.97",            "IA_STATUS_MESSAGE" },
-    { "1.3.6.1.4.1.3576.8",               "ECIA_EDIFACT" },
-    { "1.3.6.1.4.1.3576.9",               "ECIA_NON_EDI" },
-    { "1.3.6.1.4.1.4146",                 "GLOBALSIGN" },
-    { "1.3.6.1.4.1.4146.1",               "GLOBALSIGN_POLICY" },
-    { "1.3.6.1.4.1.4146.1.10",            "GLOBALSIGN_DV_POLICY" },
-    { "1.3.6.1.4.1.4146.1.20",            "GLOBALSIGN_OV_POLICY" },
-    { "1.3.6.1.4.1.4146.1.30",            "GLOBALSIGN_TSA_POLICY" },
-    { "1.3.6.1.4.1.4146.1.40",            "GLOBALSIGN_CLIENT_CERT_POLICY" },
-    { "1.3.6.1.4.1.4146.1.50",            "GLOBALSIGN_CODE_SIGN_POLICY" },
-    { "1.3.6.1.4.1.4146.1.60",            "GLOBALSIGN_ROOT_SIGN_POLICY" },
-    { "1.3.6.1.4.1.4146.1.70",            "GLOBALSIGN_TRUSTED_ROOT_POLICY" },
-    { "1.3.6.1.4.1.4146.1.80",            "GLOBALSIGN_EDI_CLIENT_POLICY" },
-    { "1.3.6.1.4.1.4146.1.81",            "GLOBALSIGN_EDI_SERVER_POLICY" },
-    { "1.3.6.1.4.1.4146.1.90",            "GLOBALSIGN_TPM_ROOT_POLICY" },
-    { "1.3.6.1.4.1.4146.1.95",            "GLOBALSIGN_OCSP_POLICY" },
-    { "1.3.6.1.4.1.5309.1",               "EDEL_WEB_POLICY" },
-    { "1.3.6.1.4.1.5309.1.2",             "EDEL_WEB_CUSTOMER_POLICY" },
-    { "1.3.6.1.4.1.5309.1.2.1",           "EDEL_WEB_CLEPSYDRE_POLICY" },
-    { "1.3.6.1.4.1.5309.1.2.2",           "EDEL_WEB_EXPERIMENTAL_TSA_POLICY" },
-    { "1.3.6.1.4.1.5309.1.2.3",           "EDEL_WEB_OPEN_EVIDENCE_TSA_POLICY" },
-    { "1.3.6.1.4.1.5472",                 "TIMEPROOF" },
-    { "1.3.6.1.4.1.5472.1",               "TSS" },
-    { "1.3.6.1.4.1.5472.1.1",             "TSS80" },
-    { "1.3.6.1.4.1.5472.1.2",             "TSS380" },
-    { "1.3.6.1.4.1.5472.1.3",             "TSS400" },
-    { "1.3.6.1.4.1.5770.0.3",             "SECONDARY_PRACTICES" },
-    { "1.3.6.1.4.1.5770.0.4",             "PHYSICIAN_IDENTIFIERS" },
-    { "1.3.6.1.4.1.6449.1.2.1.3.1",       "COMODO_POLICY" },
-    { "1.3.6.1.4.1.6449.1.2.2.15",        "WOTRUST_POLICY" },
-    { "1.3.6.1.4.1.6449.1.3.5.2",         "COMODO_CERTIFIED_DELIVERY_SERVICE" },
-    { "1.3.6.1.4.1.6449.2.1.1",           "COMODO_TIMESTAMPING_POLICY" },
-    { "1.3.6.1.4.1.8301.3.5.1",           "VALIDITY_MODEL_CHAIN" },
-    { "1.3.6.1.4.1.8301.3.5.2",           "VALIDITY_MODEL_SHELL" },
-    { "1.3.6.1.4.1.8231.1",               "ROL_UNICO_NACIONAL" },
-    { "1.3.6.1.4.1.11591",                "GNU" },
-    { "1.3.6.1.4.1.11591.1",              "GNU_RADIUS" },
-    { "1.3.6.1.4.1.11591.3",              "GNU_RADAR" },
-    { "1.3.6.1.4.1.11591.12",             "GNU_DIGEST_ALGORITHM" },
-    { "1.3.6.1.4.1.11591.12.2",           "TIGER" },
-    { "1.3.6.1.4.1.11591.13",             "GNU_ENCRYPTION_ALGORITHM" },
-    { "1.3.6.1.4.1.11591.13.2",           "SERPENT" },
-    { "1.3.6.1.4.1.11591.13.2.1",         "SERPENT128_ECB" },
-    { "1.3.6.1.4.1.11591.13.2.2",         "SERPENT128_CBC" },
-    { "1.3.6.1.4.1.11591.13.2.3",         "SERPENT128_OFB" },
-    { "1.3.6.1.4.1.11591.13.2.4",         "SERPENT128_CFB" },
-    { "1.3.6.1.4.1.11591.13.2.21",        "SERPENT192_ECB" },
-    { "1.3.6.1.4.1.11591.13.2.22",        "SERPENT192_CBC" },
-    { "1.3.6.1.4.1.11591.13.2.23",        "SERPENT192_OFB" },
-    { "1.3.6.1.4.1.11591.13.2.24",        "SERPENT192_CFB" },
-    { "1.3.6.1.4.1.11591.13.2.41",        "SERPENT256_ECB" },
-    { "1.3.6.1.4.1.11591.13.2.42",        "SERPENT256_CBC" },
-    { "1.3.6.1.4.1.11591.13.2.43",        "SERPENT256_OFB" },
-    { "1.3.6.1.4.1.11591.13.2.44",        "SERPENT256_CFB" },
-    { "1.3.6.1.4.1.16334.509.1.1",        "NORTHROP_GRUMMAN_EXT_KEY_USAGE?" },
-    { "1.3.6.1.4.1.16334.509.2.1",        "NGC_CLASS1" },
-    { "1.3.6.1.4.1.16334.509.2.2",        "NGC_CLASS2" },
-    { "1.3.6.1.4.1.16334.509.2.3",        "NGC_CLASS3" },
-    { "1.3.6.1.4.1.23629.1.4.2.1.1",      "SAFENET_USAGE_LIMIT" },
-    { "1.3.6.1.4.1.23629.1.4.2.1.2",      "SAFENET_END_DATE" },
-    { "1.3.6.1.4.1.23629.1.4.2.1.3",      "SAFENET_START_DATE" },
-    { "1.3.6.1.4.1.23629.1.4.2.1.4",      "SAFENET_ADMIN_CERT" },
-    { "1.3.6.1.4.1.23629.1.4.2.2.1",      "SAFENET_KEY_DIGEST" },
-    { "1.3.6.1.5.5.7",                    "PKIX" },
-    { "1.3.6.1.5.5.7.0.12",               "ATTRIBUTE_CERT" },
-    { "1.3.6.1.5.5.7.1",                  "PRIVATE_EXTENSION" },
-    { "1.3.6.1.5.5.7.1.1",                "AUTHORITY_INFO_ACCESS" },
-    { "1.3.6.1.5.5.7.1.2",                "BIOMETRIC_INFO" },
-    { "1.3.6.1.5.5.7.1.3",                "QC_STATEMENTS" },
-    { "1.3.6.1.5.5.7.1.4",                "AC_AUDIT_IDENTITY" },
-    { "1.3.6.1.5.5.7.1.5",                "AC_TARGETING" },
-    { "1.3.6.1.5.5.7.1.6",                "AC_AA_CONTROLS" },
-    { "1.3.6.1.5.5.7.1.7",                "IP_ADDR_BLOCKS" },
-    { "1.3.6.1.5.5.7.1.8",                "AUTONOMOUS_SYS_IDS" },
-    { "1.3.6.1.5.5.7.1.9",                "ROUTER_IDENTIFIER" },
-    { "1.3.6.1.5.5.7.1.10",               "AC_PROXYING" },
-    { "1.3.6.1.5.5.7.1.11",               "SUBJECT_INFO_ACCESS" },
-    { "1.3.6.1.5.5.7.1.12",               "LOGO_TYPE" },
-    { "1.3.6.1.5.5.7.1.13",               "WLAN_SSID" },
-    { "1.3.6.1.5.5.7.2",                  "POLICY_QUALIFIER_IDS" },
-    { "1.3.6.1.5.5.7.2.1",                "CPS" },
-    { "1.3.6.1.5.5.7.2.2",                "UNOTICE" },
-    { "1.3.6.1.5.5.7.2.3",                "TEXT_NOTICE" },
-    { "1.3.6.1.5.5.7.3",                  "KEY_PURPOSE" },
-    { "1.3.6.1.5.5.7.3.1",                "SERVER_AUTH" },
-    { "1.3.6.1.5.5.7.3.2",                "CLIENT_AUTH" },
-    { "1.3.6.1.5.5.7.3.3",                "CODE_SIGNING" },
-    { "1.3.6.1.5.5.7.3.4",                "EMAIL_PROTECTION" },
-    { "1.3.6.1.5.5.7.3.5",                "IPSEC_END_SYSTEM" },
-    { "1.3.6.1.5.5.7.3.6",                "IPSEC_TUNNEL" },
-    { "1.3.6.1.5.5.7.3.7",                "IPSEC_USER" },
-    { "1.3.6.1.5.5.7.3.8",                "TIME_STAMPING" },
-    { "1.3.6.1.5.5.7.3.9",                "OCSP_SIGNING" },
-    { "1.3.6.1.5.5.7.3.10",               "DVCS" },
-    { "1.3.6.1.5.5.7.3.11",               "SBGP_CERT_AA_SERVER_AUTH" },
-    { "1.3.6.1.5.5.7.3.13",               "EAP_OVER_PPP" },
-    { "1.3.6.1.5.5.7.3.14",               "EAP_OVER_LAN" },
-    { "1.3.6.1.5.5.7.4",                  "CMP_INFORMATION_TYPES" },
-    { "1.3.6.1.5.5.7.4.1",                "CA_PROT_ENC_CERT" },
-    { "1.3.6.1.5.5.7.4.2",                "SIGN_KEY_PAIR_TYPES" },
-    { "1.3.6.1.5.5.7.4.3",                "ENC_KEY_PAIR_TYPES" },
-    { "1.3.6.1.5.5.7.4.4",                "PREFERRED_SYMM_ALG" },
-    { "1.3.6.1.5.5.7.4.5",                "CA_KEY_UPDATE_INFO" },
-    { "1.3.6.1.5.5.7.4.6",                "CURRENT_CRL" },
-    { "1.3.6.1.5.5.7.4.7",                "UNSUPPORTED_OI_DS" },
-    { "1.3.6.1.5.5.7.4.10",               "KEY_PAIR_PARAM_REQ" },
-    { "1.3.6.1.5.5.7.4.11",               "KEY_PAIR_PARAM_REP" },
-    { "1.3.6.1.5.5.7.4.12",               "REV_PASSPHRASE" },
-    { "1.3.6.1.5.5.7.4.13",               "IMPLICIT_CONFIRM" },
-    { "1.3.6.1.5.5.7.4.14",               "CONFIRM_WAIT_TIME" },
-    { "1.3.6.1.5.5.7.4.15",               "ORIG_PKI_MESSAGE" },
-    { "1.3.6.1.5.5.7.4.16",               "SUPP_LANG_TAGS" },
-    { "1.3.6.1.5.5.7.5",                  "CRMF_REGISTRATION" },
-    { "1.3.6.1.5.5.7.5.1",                "REG_CTRL" },
-    { "1.3.6.1.5.5.7.5.1.1",              "REG_TOKEN" },
-    { "1.3.6.1.5.5.7.5.1.2",              "AUTHENTICATOR" },
-    { "1.3.6.1.5.5.7.5.1.3",              "PKI_PUBLICATION_INFO" },
-    { "1.3.6.1.5.5.7.5.1.4",              "PKI_ARCHIVE_OPTIONS" },
-    { "1.3.6.1.5.5.7.5.1.5",              "OLD_CERT_ID" },
-    { "1.3.6.1.5.5.7.5.1.6",              "PROTOCOL_ENCR_KEY" },
-    { "1.3.6.1.5.5.7.5.1.7",              "ALT_CERT_TEMPLATE" },
-    { "1.3.6.1.5.5.7.5.1.8",              "WTLS_TEMPLATE" },
-    { "1.3.6.1.5.5.7.5.2",                "UTF8_PAIRS" },
-    { "1.3.6.1.5.5.7.5.2.1",              "UTF8_PAIRS" },
-    { "1.3.6.1.5.5.7.5.2.2",              "CERT_REQ" },
-    { "1.3.6.1.5.5.7.6",                  "ALGORITHMS" },
-    { "1.3.6.1.5.5.7.6.1",                "DES40" },
-    { "1.3.6.1.5.5.7.6.2",                "NO_SIGNATURE" },
-    { "1.3.6.1.5.5.7.6.3",                "DH_SIG_HMAC_SHA1" },
-    { "1.3.6.1.5.5.7.6.4",                "DH_POP" },
-    { "1.3.6.1.5.5.7.7",                  "CMC_CONTROLS" },
-    { "1.3.6.1.5.5.7.8",                  "OTHER_NAMES" },
-    { "1.3.6.1.5.5.7.8.1",                "PERSONAL_DATA" },
-    { "1.3.6.1.5.5.7.8.2",                "USER_GROUP" },
-    { "1.3.6.1.5.5.7.8.5",                "XMPP_ADDR" },
-    { "1.3.6.1.5.5.7.9",                  "PERSONAL_DATA" },
-    { "1.3.6.1.5.5.7.9.1",                "DATE_OF_BIRTH" },
-    { "1.3.6.1.5.5.7.9.2",                "PLACE_OF_BIRTH" },
-    { "1.3.6.1.5.5.7.9.3",                "GENDER" },
-    { "1.3.6.1.5.5.7.9.4",                "COUNTRY_OF_CITIZENSHIP" },
-    { "1.3.6.1.5.5.7.9.5",                "COUNTRY_OF_RESIDENCE" },
-    { "1.3.6.1.5.5.7.10",                 "ATTRIBUTE_CERTIFICATE" },
-    { "1.3.6.1.5.5.7.10.1",               "AUTHENTICATION_INFO" },
-    { "1.3.6.1.5.5.7.10.2",               "ACCESS_IDENTITY" },
-    { "1.3.6.1.5.5.7.10.3",               "CHARGING_IDENTITY" },
-    { "1.3.6.1.5.5.7.10.4",               "GROUP" },
-    { "1.3.6.1.5.5.7.10.5",               "ROLE" },
-    { "1.3.6.1.5.5.7.10.6",               "WLAN_SSID" },
-    { "1.3.6.1.5.5.7.11",                 "PERSONAL_DATA" },
-    { "1.3.6.1.5.5.7.11.1",               "PKIX_QC_SYNTAX_V1" },
-    { "1.3.6.1.5.5.7.14.2",               "RESOURCE_CERTIFICATE_POLICY" },
-    { "1.3.6.1.5.5.7.20",                 "LOGO" },
-    { "1.3.6.1.5.5.7.20.1",               "LOGO_LOYALTY" },
-    { "1.3.6.1.5.5.7.20.2",               "LOGO_BACKGROUND" },
-    { "1.3.6.1.5.5.7.48.1",               "OCSP" },
-    { "1.3.6.1.5.5.7.48.1.1",             "OCSP_BASIC" },
-    { "1.3.6.1.5.5.7.48.1.2",             "OCSP_NONCE" },
-    { "1.3.6.1.5.5.7.48.1.3",             "OCSP_CRL" },
-    { "1.3.6.1.5.5.7.48.1.4",             "OCSP_RESPONSE" },
-    { "1.3.6.1.5.5.7.48.1.5",             "OCSP_NO_CHECK" },
-    { "1.3.6.1.5.5.7.48.1.6",             "OCSP_ARCHIVE_CUTOFF" },
-    { "1.3.6.1.5.5.7.48.1.7",             "OCSP_SERVICE_LOCATOR" },
-    { "1.3.6.1.5.5.7.48.2",               "CA_ISSUERS" },
-    { "1.3.6.1.5.5.7.48.3",               "TIME_STAMPING" },
-    { "1.3.6.1.5.5.7.48.4",               "DVCS" },
-    { "1.3.6.1.5.5.7.48.5",               "CA_REPOSITORY" },
-    { "1.3.6.1.5.5.7.48.7",               "SIGNED_OBJECT_REPOSITORY" },
-    { "1.3.6.1.5.5.7.48.10",              "RPKI_MANIFEST" },
-    { "1.3.6.1.5.5.7.48.11",              "SIGNED_OBJECT" },
-    { "1.3.6.1.5.5.8.1.1",                "HMAC_MD5" },
-    { "1.3.6.1.5.5.8.1.2",                "HMAC_SHA" },
-    { "1.3.6.1.5.5.8.1.3",                "HMAC_TIGER" },
-    { "1.3.6.1.5.5.8.2.2",                "I_KE_INTERMEDIATE" },
-    { "1.3.12.2.1011.7.1",                "DEC_ENCRYPTION_ALGORITHM" },
-    { "1.3.12.2.1011.7.1.2",              "DEC_DEA" },
-    { "1.3.12.2.1011.7.2",                "DEC_HASH_ALGORITHM" },
-    { "1.3.12.2.1011.7.2.1",              "DEC_MD2" },
-    { "1.3.12.2.1011.7.2.2",              "DEC_MD4" },
-    { "1.3.12.2.1011.7.3",                "DEC_SIGNATURE_ALGORITHM" },
-    { "1.3.12.2.1011.7.3.1",              "DEC_MD2WITH_RSA" },
-    { "1.3.12.2.1011.7.3.2",              "DEC_MD4WITH_RSA" },
-    { "1.3.12.2.1011.7.3.3",              "DEC_DEAMAC" },
-    { "1.3.14.2.26.5",                    "SHA" },
-    { "1.3.14.3.2.1.1",                   "RSA" },
-    { "1.3.14.3.2.2",                     "MD4_WIT_RSA" },
-    { "1.3.14.3.2.3",                     "MD5_WITH_RSA" },
-    { "1.3.14.3.2.4",                     "MD4_WITH_RSA_ENCRYPTION" },
-    { "1.3.14.3.2.2.1",                   "SQMOD_N" },
-    { "1.3.14.3.2.3.1",                   "SQMOD_NWITH_RSA" },
-    { "1.3.14.3.2.6",                     "DES_ECB" },
-    { "1.3.14.3.2.7",                     "DES_CBC" },
-    { "1.3.14.3.2.8",                     "DES_OFB" },
-    { "1.3.14.3.2.9",                     "DES_CFB" },
-    { "1.3.14.3.2.10",                    "DES_MAC" },
-    { "1.3.14.3.2.11",                    "RSA_SIGNATURE" },
-    { "1.3.14.3.2.12",                    "DSA" },
-    { "1.3.14.3.2.13",                    "DSA_WITH_SHA" },
-    { "1.3.14.3.2.14",                    "MDC2_WITH_RSA_SIGNATURE" },
-    { "1.3.14.3.2.15",                    "SHA_WITH_RSA_SIGNATURE" },
-    { "1.3.14.3.2.16",                    "DH_WITH_COMMON_MODULUS" },
-    { "1.3.14.3.2.17",                    "DES_EDE" },
-    { "1.3.14.3.2.18",                    "SHA" },
-    { "1.3.14.3.2.19",                    "MDC_2" },
-    { "1.3.14.3.2.20",                    "DSA_COMMON" },
-    { "1.3.14.3.2.21",                    "DSA_COMMON_WITH_SHA" },
-    { "1.3.14.3.2.22",                    "RSA_KEY_TRANSPORT" },
-    { "1.3.14.3.2.23",                    "KEYED_HASH_SEAL" },
-    { "1.3.14.3.2.24",                    "MD2_WITH_RSA_SIGNATURE" },
-    { "1.3.14.3.2.25",                    "MD5_WITH_RSA_SIGNATURE" },
-    { "1.3.14.3.2.26",                    "SHA1" },
-    { "1.3.14.3.2.27",                    "DSA_WITH_SHA1" },
-    { "1.3.14.3.2.28",                    "DSA_WITH_COMMON_SHA1" },
-    { "1.3.14.3.2.29",                    "SHA_1_WITH_RSA_ENCRYPTION" },
-    { "1.3.14.3.3.1",                     "SIMPLE_STRONG_AUTH_MECHANISM" },
-    { "1.3.14.7.2.1.1",                   "EL_GAMAL" },
-    { "1.3.14.7.2.3.1",                   "MD2_WITH_RSA" },
-    { "1.3.14.7.2.3.2",                   "MD2_WITH_EL_GAMAL" },
-    { "1.3.36.1",                         "DOCUMENT" },
-    { "1.3.36.1.1",                       "FINAL_VERSION" },
-    { "1.3.36.1.2",                       "DRAFT" },
-    { "1.3.36.2",                         "SIO" },
-    { "1.3.36.2.1",                       "SEDU" },
-    { "1.3.36.3",                         "ALGORITHM" },
-    { "1.3.36.3.1",                       "ENCRYPTION_ALGORITHM" },
-    { "1.3.36.3.1.1",                     "DES" },
-    { "1.3.36.3.1.1.1",                   "DES_ECB_PAD" },
-    { "1.3.36.3.1.1.1.1",                 "DES_ECB_IS_OPAD" },
-    { "1.3.36.3.1.1.2.1",                 "DES_CBC_PAD" },
-    { "1.3.36.3.1.1.2.1.1",               "DES_CBC_IS_OPAD" },
-    { "1.3.36.3.1.3",                     "DES_3" },
-    { "1.3.36.3.1.3.1.1",                 "DES_3_ECB_PAD" },
-    { "1.3.36.3.1.3.1.1.1",               "DES_3_ECB_IS_OPAD" },
-    { "1.3.36.3.1.3.2.1",                 "DES_3_CBC_PAD" },
-    { "1.3.36.3.1.3.2.1.1",               "DES_3_CBC_IS_OPAD" },
-    { "1.3.36.3.1.2",                     "IDEA" },
-    { "1.3.36.3.1.2.1",                   "IDEA_ECB" },
-    { "1.3.36.3.1.2.1.1",                 "IDEA_ECB_PAD" },
-    { "1.3.36.3.1.2.1.1.1",               "IDEA_ECB_IS_OPAD" },
-    { "1.3.36.3.1.2.2",                   "IDEA_CBC" },
-    { "1.3.36.3.1.2.2.1",                 "IDEA_CBC_PAD" },
-    { "1.3.36.3.1.2.2.1.1",               "IDEA_CBC_IS_OPAD" },
-    { "1.3.36.3.1.2.3",                   "IDEA_OFB" },
-    { "1.3.36.3.1.2.4",                   "IDEA_CFB" },
-    { "1.3.36.3.1.4",                     "RSA_ENCRYPTION" },
-    { "1.3.36.3.1.4.512.17",              "RSA_ENCRYPTION_WITHLMOD512EXPE17" },
-    { "1.3.36.3.1.5",                     "BSI_1" },
-    { "1.3.36.3.1.5.1",                   "BSI_1_ECB_PAD" },
-    { "1.3.36.3.1.5.2",                   "BSI_1_CBC_PAD" },
-    { "1.3.36.3.1.5.2.1",                 "BSI_1_CBC_PE_MPAD" },
-    { "1.3.36.3.2",                       "HASH_ALGORITHM" },
-    { "1.3.36.3.2.1",                     "RIPEMD160" },
-    { "1.3.36.3.2.2",                     "RIPEMD128" },
-    { "1.3.36.3.2.3",                     "RIPEMD256" },
-    { "1.3.36.3.2.4",                     "MDC2SINGLE_LENGTH" },
-    { "1.3.36.3.2.5",                     "MDC2DOUBLE_LENGTH" },
-    { "1.3.36.3.3",                       "SIGNATURE_ALGORITHM" },
-    { "1.3.36.3.3.1",                     "RSA_SIGNATURE" },
-    { "1.3.36.3.3.1.1",                   "RSA_SIGNATURE_WITHSHA1" },
-    { "1.3.36.3.3.1.1.1024.11",           "RSA_SIGNATURE_WITHSHA1_L1024_L11" },
-    { "1.3.36.3.3.1.2",                   "RSA_SIGNATURE_WITHRIPEMD160" },
-    { "1.3.36.3.3.1.2.1024.11",           "RSA_SIGNATURE_WITHRIPEMD160_L1024_L11" },
-    { "1.3.36.3.3.1.3",                   "RSA_SIGNATURE_WITHRIMPEMD128" },
-    { "1.3.36.3.3.1.4",                   "RSA_SIGNATURE_WITHRIMPEMD256" },
-    { "1.3.36.3.3.2",                     "ECSIE_SIGN" },
-    { "1.3.36.3.3.2.1",                   "ECSIE_SIGN_WITHSHA1" },
-    { "1.3.36.3.3.2.2",                   "ECSIE_SIGN_WITHRIPEMD160" },
-    { "1.3.36.3.3.2.3",                   "ECSIE_SIGN_WITHMD2" },
-    { "1.3.36.3.3.2.4",                   "ECSIE_SIGN_WITHMD5" },
-    { "1.3.36.3.3.2.8.1.1.1",             "BRAINPOOL_P160R1" },
-    { "1.3.36.3.3.2.8.1.1.2",             "BRAINPOOL_P160T1" },
-    { "1.3.36.3.3.2.8.1.1.3",             "BRAINPOOL_P192R1" },
-    { "1.3.36.3.3.2.8.1.1.4",             "BRAINPOOL_P192T1" },
-    { "1.3.36.3.3.2.8.1.1.5",             "BRAINPOOL_P224R1" },
-    { "1.3.36.3.3.2.8.1.1.6",             "BRAINPOOL_P224T1" },
-    { "1.3.36.3.3.2.8.1.1.7",             "BRAINPOOL_P256R1" },
-    { "1.3.36.3.3.2.8.1.1.8",             "BRAINPOOL_P256T1" },
-    { "1.3.36.3.3.2.8.1.1.9",             "BRAINPOOL_P320R1" },
-    { "1.3.36.3.3.2.8.1.1.10",            "BRAINPOOL_P320T1" },
-    { "1.3.36.3.3.2.8.1.1.11",            "BRAINPOOL_P384R1" },
-    { "1.3.36.3.3.2.8.1.1.12",            "BRAINPOOL_P384T1" },
-    { "1.3.36.3.3.2.8.1.1.13",            "BRAINPOOL_P512R1" },
-    { "1.3.36.3.3.2.8.1.1.14",            "BRAINPOOL_P512T1" },
-    { "1.3.36.3.4",                       "SIGNATURE_SCHEME" },
-    { "1.3.36.3.4.1",                     "SIG_S_ISO9796_1" },
-    { "1.3.36.3.4.2",                     "SIG_S_ISO9796_2" },
-    { "1.3.36.3.4.2.1",                   "SIG_S_ISO9796_2_WITHRED" },
-    { "1.3.36.3.4.2.2",                   "SIG_S_ISO9796_2_WITHRSA" },
-    { "1.3.36.3.4.2.3",                   "SIG_S_ISO9796_2_WITHRND" },
-    { "1.3.36.4",                         "ATTRIBUTE" },
-    { "1.3.36.5",                         "POLICY" },
-    { "1.3.36.6",                         "API" },
-    { "1.3.36.6.1",                       "MANUFACTURER_SPECIFIC_API" },
-    { "1.3.36.6.1.1",                     "UTIMACO_API" },
-    { "1.3.36.6.2",                       "FUNCTIONALITY_SPECIFIC_API" },
-    { "1.3.36.7",                         "KEYMGMNT" },
-    { "1.3.36.7.1",                       "KEYAGREE" },
-    { "1.3.36.7.1.1",                     "BSI_PKE" },
-    { "1.3.36.7.2",                       "KEYTRANS" },
-    { "1.3.36.7.2.1",                     "ENC_ISO9796_2_WITHRSA" },
-    { "1.3.36.8.1.1",                     "TELETRUST_SIG_G_CONFORM_POLICY_IDENTIFIER" },
-    { "1.3.36.8.2.1",                     "DIRECTORY_SERVICE" },
-    { "1.3.36.8.3.1",                     "DATE_OF_CERT_GEN" },
-    { "1.3.36.8.3.2",                     "PROCURATION" },
-    { "1.3.36.8.3.3",                     "ADMISSION" },
-    { "1.3.36.8.3.4",                     "MONETARY_LIMIT" },
-    { "1.3.36.8.3.5",                     "DECLARATION_OF_MAJORITY" },
-    { "1.3.36.8.3.6",                     "INTEGRATED_CIRCUIT_CARD_SERIAL_NUMBER" },
-    { "1.3.36.8.3.7",                     "P_K_REFERENCE" },
-    { "1.3.36.8.3.8",                     "RESTRICTION" },
-    { "1.3.36.8.3.9",                     "RETRIEVE_IF_ALLOWED" },
-    { "1.3.36.8.3.10",                    "REQUESTED_CERTIFICATE" },
-    { "1.3.36.8.3.11",                    "NAMING_AUTHORITIES" },
-    { "1.3.36.8.3.11.1",                  "RECHT_WIRTSCHAFT_STEUERN" },
-    { "1.3.36.8.3.11.1.1",                "RECHTSANWAELTIN" },
-    { "1.3.36.8.3.11.1.2",                "RECHTSANWALT" },
-    { "1.3.36.8.3.11.1.3",                "RECHTS_BEISTAND" },
-    { "1.3.36.8.3.11.1.4",                "STEUER_BERATERIN" },
-    { "1.3.36.8.3.11.1.5",                "STEUER_BERATER" },
-    { "1.3.36.8.3.11.1.6",                "STEUER_BEVOLLMAECHTIGTE" },
-    { "1.3.36.8.3.11.1.7",                "STEUER_BEVOLLMAECHTIGTER" },
-    { "1.3.36.8.3.11.1.8",                "NOTARIN" },
-    { "1.3.36.8.3.11.1.9",                "NOTAR" },
-    { "1.3.36.8.3.11.1.10",               "NOTAR_VERTRETERIN" },
-    { "1.3.36.8.3.11.1.11",               "NOTAR_VERTRETER" },
-    { "1.3.36.8.3.11.1.12",               "NOTARIATS_VERWALTERIN" },
-    { "1.3.36.8.3.11.1.13",               "NOTARIATS_VERWALTER" },
-    { "1.3.36.8.3.11.1.14",               "WIRTSCHAFTS_PRUEFERIN" },
-    { "1.3.36.8.3.11.1.15",               "WIRTSCHAFTS_PRUEFER" },
-    { "1.3.36.8.3.11.1.16",               "VEREIDIGTE_BUCHPRUEFERIN" },
-    { "1.3.36.8.3.11.1.17",               "VEREIDIGTER_BUCHPRUEFER" },
-    { "1.3.36.8.3.11.1.18",               "PATENT_ANWAELTIN" },
-    { "1.3.36.8.3.11.1.19",               "PATENT_ANWALT" },
-    { "1.3.36.8.3.12",                    "CERT_IN_DIR_SINCE" },
-    { "1.3.36.8.3.13",                    "CERT_HASH" },
-    { "1.3.36.8.3.14",                    "NAME_AT_BIRTH" },
-    { "1.3.36.8.3.15",                    "ADDITIONAL_INFORMATION" },
-    { "1.3.36.8.4.1",                     "PERSONAL_DATA" },
-    { "1.3.36.8.4.8",                     "RESTRICTION" },
-    { "1.3.36.8.5.1.1.1",                 "RSA_INDICATE_SHA1" },
-    { "1.3.36.8.5.1.1.2",                 "RSA_INDICATE_RIPEMD160" },
-    { "1.3.36.8.5.1.1.3",                 "RSA_WITH_SHA1" },
-    { "1.3.36.8.5.1.1.4",                 "RSA_WITH_RIPEMD160" },
-    { "1.3.36.8.5.1.2.1",                 "DSA_EXTENDED" },
-    { "1.3.36.8.5.1.2.2",                 "DSA_WITH_RIPEMD160" },
-    { "1.3.36.8.6.1",                     "CERT" },
-    { "1.3.36.8.6.2",                     "CERT_REF" },
-    { "1.3.36.8.6.3",                     "ATTR_CERT" },
-    { "1.3.36.8.6.4",                     "ATTR_REF" },
-    { "1.3.36.8.6.5",                     "FILE_NAME" },
-    { "1.3.36.8.6.6",                     "STORAGE_TIME" },
-    { "1.3.36.8.6.7",                     "FILE_SIZE" },
-    { "1.3.36.8.6.8",                     "LOCATION" },
-    { "1.3.36.8.6.9",                     "SIG_NUMBER" },
-    { "1.3.36.8.6.10",                    "AUTO_GEN" },
-    { "1.3.36.8.7.1.1",                   "PT_ADOBE_ILL" },
-    { "1.3.36.8.7.1.2",                   "PT_AMI_PRO" },
-    { "1.3.36.8.7.1.3",                   "PT_AUTO_CAD" },
-    { "1.3.36.8.7.1.4",                   "PT_BINARY" },
-    { "1.3.36.8.7.1.5",                   "PT_BMP" },
-    { "1.3.36.8.7.1.6",                   "PT_CGM" },
-    { "1.3.36.8.7.1.7",                   "PT_COREL_CRT" },
-    { "1.3.36.8.7.1.8",                   "PT_COREL_DRW" },
-    { "1.3.36.8.7.1.9",                   "PT_COREL_EXC" },
-    { "1.3.36.8.7.1.10",                  "PT_COREL_PHT" },
-    { "1.3.36.8.7.1.11",                  "PT_DRAW" },
-    { "1.3.36.8.7.1.12",                  "PT_DVI" },
-    { "1.3.36.8.7.1.13",                  "PT_EPS" },
-    { "1.3.36.8.7.1.14",                  "PT_EXCEL" },
-    { "1.3.36.8.7.1.15",                  "PT_GEM" },
-    { "1.3.36.8.7.1.16",                  "PT_GIF" },
-    { "1.3.36.8.7.1.17",                  "PT_HPGL" },
-    { "1.3.36.8.7.1.18",                  "PT_JPEG" },
-    { "1.3.36.8.7.1.19",                  "PT_KODAK" },
-    { "1.3.36.8.7.1.20",                  "PT_LA_TE_X" },
-    { "1.3.36.8.7.1.21",                  "PT_LOTUS" },
-    { "1.3.36.8.7.1.22",                  "PT_LOTUS_PIC" },
-    { "1.3.36.8.7.1.23",                  "PT_MAC_PICT" },
-    { "1.3.36.8.7.1.24",                  "PT_MAC_WORD" },
-    { "1.3.36.8.7.1.25",                  "PT_MS_WF_D" },
-    { "1.3.36.8.7.1.26",                  "PT_MS_WORD" },
-    { "1.3.36.8.7.1.27",                  "PT_MS_WORD2" },
-    { "1.3.36.8.7.1.28",                  "PT_MS_WORD6" },
-    { "1.3.36.8.7.1.29",                  "PT_MS_WORD8" },
-    { "1.3.36.8.7.1.30",                  "PT_PDF" },
-    { "1.3.36.8.7.1.31",                  "PT_PIF" },
-    { "1.3.36.8.7.1.32",                  "PT_POSTSCRIPT" },
-    { "1.3.36.8.7.1.33",                  "PT_RTF" },
-    { "1.3.36.8.7.1.34",                  "PT_SCITEX" },
-    { "1.3.36.8.7.1.35",                  "PT_TAR" },
-    { "1.3.36.8.7.1.36",                  "PT_TARGA" },
-    { "1.3.36.8.7.1.37",                  "PT_TE_X" },
-    { "1.3.36.8.7.1.38",                  "PT_TEXT" },
-    { "1.3.36.8.7.1.39",                  "PT_TIFF" },
-    { "1.3.36.8.7.1.40",                  "PT_TIFF_FC" },
-    { "1.3.36.8.7.1.41",                  "PT_UID" },
-    { "1.3.36.8.7.1.42",                  "PT_UU_ENCODE" },
-    { "1.3.36.8.7.1.43",                  "PT_WMF" },
-    { "1.3.36.8.7.1.44",                  "PT_WORD_PERFECT" },
-    { "1.3.36.8.7.1.45",                  "PT_WP_GRPH" },
-    { "1.3.101.1.4",                      "THAWTE_CE" },
-    { "1.3.101.1.4.1",                    "STRONG_EXTRANET" },
-    { "1.3.132.0.1",                      "SECT163K1" },
-    { "1.3.132.0.2",                      "SECT163R1" },
-    { "1.3.132.0.3",                      "SECT239K1" },
-    { "1.3.132.0.4",                      "SECT113R1" },
-    { "1.3.132.0.5",                      "SECT113R2" },
-    { "1.3.132.0.6",                      "SECP112R1" },
-    { "1.3.132.0.7",                      "SECP112R2" },
-    { "1.3.132.0.8",                      "SECP160R1" },
-    { "1.3.132.0.9",                      "SECP160K1" },
-    { "1.3.132.0.10",                     "SECP256K1" },
-    { "1.3.132.0.15",                     "SECT163R2" },
-    { "1.3.132.0.16",                     "SECT283K1" },
-    { "1.3.132.0.17",                     "SECT283R1" },
-    { "1.3.132.0.22",                     "SECT131R1" },
-    { "1.3.132.0.23",                     "SECT131R2" },
-    { "1.3.132.0.24",                     "SECT193R1" },
-    { "1.3.132.0.25",                     "SECT193R2" },
-    { "1.3.132.0.26",                     "SECT233K1" },
-    { "1.3.132.0.27",                     "SECT233R1" },
-    { "1.3.132.0.28",                     "SECP128R1" },
-    { "1.3.132.0.29",                     "SECP128R2" },
-    { "1.3.132.0.30",                     "SECP160R2" },
-    { "1.3.132.0.31",                     "SECP192K1" },
-    { "1.3.132.0.32",                     "SECP224K1" },
-    { "1.3.132.0.33",                     "SECP224R1" },
-    { "1.3.132.0.34",                     "SECP384R1" },
-    { "1.3.132.0.35",                     "SECP521R1" },
-    { "1.3.132.0.36",                     "SECT409K1" },
-    { "1.3.132.0.37",                     "SECT409R1" },
-    { "1.3.132.0.38",                     "SECT571K1" },
-    { "1.3.132.0.39",                     "SECT571R1" },
-    { "1.3.133.16.840.9.84",              "X984" },
-    { "1.3.133.16.840.9.84.0",            "X984_MODULE" },
-    { "1.3.133.16.840.9.84.0.1",          "X984_BIOMETRICS" },
-    { "1.3.133.16.840.9.84.0.2",          "X984_CMS" },
-    { "1.3.133.16.840.9.84.0.3",          "X984_IDENTIFIERS" },
-    { "1.3.133.16.840.9.84.1",            "X984_BIOMETRIC" },
-    { "1.3.133.16.840.9.84.1.0",          "BIOMETRIC_UNKNOWN_TYPE" },
-    { "1.3.133.16.840.9.84.1.1",          "BIOMETRIC_BODY_ODOR" },
-    { "1.3.133.16.840.9.84.1.2",          "BIOMETRIC_DNA" },
-    { "1.3.133.16.840.9.84.1.3",          "BIOMETRIC_EAR_SHAPE" },
-    { "1.3.133.16.840.9.84.1.4",          "BIOMETRIC_FACIAL_FEATURES" },
-    { "1.3.133.16.840.9.84.1.5",          "BIOMETRIC_FINGER_IMAGE" },
-    { "1.3.133.16.840.9.84.1.6",          "BIOMETRIC_FINGER_GEOMETRY" },
-    { "1.3.133.16.840.9.84.1.7",          "BIOMETRIC_HAND_GEOMETRY" },
-    { "1.3.133.16.840.9.84.1.8",          "BIOMETRIC_IRIS_FEATURES" },
-    { "1.3.133.16.840.9.84.1.9",          "BIOMETRIC_KEYSTROKE_DYNAMICS" },
-    { "1.3.133.16.840.9.84.1.10",         "BIOMETRIC_PALM" },
-    { "1.3.133.16.840.9.84.1.11",         "BIOMETRIC_RETINA" },
-    { "1.3.133.16.840.9.84.1.12",         "BIOMETRIC_SIGNATURE" },
-    { "1.3.133.16.840.9.84.1.13",         "BIOMETRIC_SPEECH_PATTERN" },
-    { "1.3.133.16.840.9.84.1.14",         "BIOMETRIC_THERMAL_IMAGE" },
-    { "1.3.133.16.840.9.84.1.15",         "BIOMETRIC_VEIN_PATTERN" },
-    { "1.3.133.16.840.9.84.1.16",         "BIOMETRIC_THERMAL_FACE_IMAGE" },
-    { "1.3.133.16.840.9.84.1.17",         "BIOMETRIC_THERMAL_HAND_IMAGE" },
-    { "1.3.133.16.840.9.84.1.18",         "BIOMETRIC_LIP_MOVEMENT" },
-    { "1.3.133.16.840.9.84.1.19",         "BIOMETRIC_GAIT" },
-    { "1.3.133.16.840.9.84.3",            "X984_MATCHING_METHOD" },
-    { "1.3.133.16.840.9.84.4",            "X984_FORMAT_OWNER" },
-    { "1.3.133.16.840.9.84.4.0",          "X984_CBEFF_OWNER" },
-    { "1.3.133.16.840.9.84.4.1",          "X984_IBIA_OWNER" },
-    { "1.3.133.16.840.9.84.4.1.1",        "IBIA_OWNER_SAFLINK" },
-    { "1.3.133.16.840.9.84.4.1.2",        "IBIA_OWNER_BIOSCRYPT" },
-    { "1.3.133.16.840.9.84.4.1.3",        "IBIA_OWNER_VISIONICS" },
-    { "1.3.133.16.840.9.84.4.1.4",        "IBIA_OWNER_INFINEON_TECHNOLOGIES_AG" },
-    { "1.3.133.16.840.9.84.4.1.5",        "IBIA_OWNER_IRIDIAN_TECHNOLOGIES" },
-    { "1.3.133.16.840.9.84.4.1.6",        "IBIA_OWNER_VERIDICOM" },
-    { "1.3.133.16.840.9.84.4.1.7",        "IBIA_OWNER_CYBER_SIGN" },
-    { "1.3.133.16.840.9.84.4.1.8",        "IBIA_OWNERE_CRYP" },
-    { "1.3.133.16.840.9.84.4.1.9",        "IBIA_OWNER_FINGERPRINT_CARDS_AB" },
-    { "1.3.133.16.840.9.84.4.1.10",       "IBIA_OWNER_SECU_GEN" },
-    { "1.3.133.16.840.9.84.4.1.11",       "IBIA_OWNER_PRECISE_BIOMETRIC" },
-    { "1.3.133.16.840.9.84.4.1.12",       "IBIA_OWNER_IDENTIX" },
-    { "1.3.133.16.840.9.84.4.1.13",       "IBIA_OWNER_DERMALOG" },
-    { "1.3.133.16.840.9.84.4.1.14",       "IBIA_OWNER_LOGICO" },
-    { "1.3.133.16.840.9.84.4.1.15",       "IBIA_OWNER_NIST" },
-    { "1.3.133.16.840.9.84.4.1.16",       "IBIA_OWNER_A3_VISION" },
-    { "1.3.133.16.840.9.84.4.1.17",       "IBIA_OWNER_NEC" },
-    { "1.3.133.16.840.9.84.4.1.18",       "IBIA_OWNER_ST_MICROELECTRONICS" },
-    { "2.5.4.0",                          "OBJECT_CLASS" },
-    { "2.5.4.1",                          "ALIASED_ENTRY_NAME" },
-    { "2.5.4.2",                          "KNOWLEDGE_INFORMATION" },
-    { "2.5.4.3",                          "COMMON_NAME" },
-    { "2.5.4.4",                          "SURNAME" },
-    { "2.5.4.5",                          "SERIAL_NUMBER" },
-    { "2.5.4.6",                          "COUNTRY_NAME" },
-    { "2.5.4.7",                          "LOCALITY_NAME" },
-    { "2.5.4.7.1",                        "COLLECTIVE_LOCALITY_NAME" },
-    { "2.5.4.8",                          "STATE_OR_PROVINCE_NAME" },
-    { "2.5.4.8.1",                        "COLLECTIVE_STATE_OR_PROVINCE_NAME" },
-    { "2.5.4.9",                          "STREET_ADDRESS" },
-    { "2.5.4.9.1",                        "COLLECTIVE_STREET_ADDRESS" },
-    { "2.5.4.10",                         "ORGANIZATION_NAME" },
-    { "2.5.4.10.1",                       "COLLECTIVE_ORGANIZATION_NAME" },
-    { "2.5.4.11",                         "ORGANIZATIONAL_UNIT_NAME" },
-    { "2.5.4.11.1",                       "COLLECTIVE_ORGANIZATIONAL_UNIT_NAME" },
-    { "2.5.4.12",                         "TITLE" },
-    { "2.5.4.13",                         "DESCRIPTION" },
-    { "2.5.4.14",                         "SEARCH_GUIDE" },
-    { "2.5.4.15",                         "BUSINESS_CATEGORY" },
-    { "2.5.4.16",                         "POSTAL_ADDRESS" },
-    { "2.5.4.16.1",                       "COLLECTIVE_POSTAL_ADDRESS" },
-    { "2.5.4.17",                         "POSTAL_CODE" },
-    { "2.5.4.17.1",                       "COLLECTIVE_POSTAL_CODE" },
-    { "2.5.4.18",                         "POST_OFFICE_BOX" },
-    { "2.5.4.18.1",                       "COLLECTIVE_POST_OFFICE_BOX" },
-    { "2.5.4.19",                         "PHYSICAL_DELIVERY_OFFICE_NAME" },
-    { "2.5.4.19.1",                       "COLLECTIVE_PHYSICAL_DELIVERY_OFFICE_NAME" },
-    { "2.5.4.20",                         "TELEPHONE_NUMBER" },
-    { "2.5.4.20.1",                       "COLLECTIVE_TELEPHONE_NUMBER" },
-    { "2.5.4.21",                         "TELEX_NUMBER" },
-    { "2.5.4.21.1",                       "COLLECTIVE_TELEX_NUMBER" },
-    { "2.5.4.22",                         "TELETEX_TERMINAL_IDENTIFIER" },
-    { "2.5.4.22.1",                       "COLLECTIVE_TELETEX_TERMINAL_IDENTIFIER" },
-    { "2.5.4.23",                         "FACSIMILE_TELEPHONE_NUMBER" },
-    { "2.5.4.23.1",                       "COLLECTIVE_FACSIMILE_TELEPHONE_NUMBER" },
-    { "2.5.4.24",                         "X121_ADDRESS" },
-    { "2.5.4.25",                         "INTERNATIONAL_ISDN_NUMBER" },
-    { "2.5.4.25.1",                       "COLLECTIVE_INTERNATIONAL_ISDN_NUMBER" },
-    { "2.5.4.26",                         "REGISTERED_ADDRESS" },
-    { "2.5.4.27",                         "DESTINATION_INDICATOR" },
-    { "2.5.4.28",                         "PREFERRED_DELIVERY_MEHTOD" },
-    { "2.5.4.29",                         "PRESENTATION_ADDRESS" },
-    { "2.5.4.30",                         "SUPPORTED_APPLICATION_CONTEXT" },
-    { "2.5.4.31",                         "MEMBER" },
-    { "2.5.4.32",                         "OWNER" },
-    { "2.5.4.33",                         "ROLE_OCCUPANT" },
-    { "2.5.4.34",                         "SEE_ALSO" },
-    { "2.5.4.35",                         "USER_PASSWORD" },
-    { "2.5.4.36",                         "USER_CERTIFICATE" },
-    { "2.5.4.37",                         "CA_CERTIFICATE" },
-    { "2.5.4.38",                         "AUTHORITY_REVOCATION_LIST" },
-    { "2.5.4.39",                         "CERTIFICATE_REVOCATION_LIST" },
-    { "2.5.4.40",                         "CROSS_CERTIFICATE_PAIR" },
-    { "2.5.4.41",                         "NAME" },
-    { "2.5.4.42",                         "GIVEN_NAME" },
-    { "2.5.4.43",                         "INITIALS" },
-    { "2.5.4.44",                         "GENERATION_QUALIFIER" },
-    { "2.5.4.45",                         "UNIQUE_IDENTIFIER" },
-    { "2.5.4.46",                         "DN_QUALIFIER" },
-    { "2.5.4.47",                         "ENHANCED_SEARCH_GUIDE" },
-    { "2.5.4.48",                         "PROTOCOL_INFORMATION" },
-    { "2.5.4.49",                         "DISTINGUISHED_NAME" },
-    { "2.5.4.50",                         "UNIQUE_MEMBER" },
-    { "2.5.4.51",                         "HOUSE_IDENTIFIER" },
-    { "2.5.4.52",                         "SUPPORTED_ALGORITHMS" },
-    { "2.5.4.53",                         "DELTA_REVOCATION_LIST" },
-    { "2.5.4.54",                         "DMD_NAME" },
-    { "2.5.4.55",                         "CLEARANCE" },
-    { "2.5.4.56",                         "DEFAULT_DIR_QOP" },
-    { "2.5.4.57",                         "ATTRIBUTE_INTEGRITY_INFO" },
-    { "2.5.4.58",                         "ATTRIBUTE_CERTIFICATE" },
-    { "2.5.4.59",                         "ATTRIBUTE_CERTIFICATE_REVOCATION_LIST" },
-    { "2.5.4.60",                         "CONF_KEY_INFO" },
-    { "2.5.4.61",                         "A_A_CERTIFICATE" },
-    { "2.5.4.62",                         "ATTRIBUTE_DESCRIPTOR_CERTIFICATE" },
-    { "2.5.4.63",                         "ATTRIBUTE_AUTHORITY_REVOCATION_LIST" },
-    { "2.5.4.64",                         "FAMILY_INFORMATION" },
-    { "2.5.4.65",                         "PSEUDONYM" },
-    { "2.5.4.66",                         "COMMUNICATIONS_SERVICE" },
-    { "2.5.4.67",                         "COMMUNICATIONS_NETWORK" },
-    { "2.5.4.68",                         "CERTIFICATION_PRACTICE_STMT" },
-    { "2.5.4.69",                         "CERTIFICATE_POLICY" },
-    { "2.5.4.70",                         "PKI_PATH" },
-    { "2.5.4.71",                         "PRIV_POLICY" },
-    { "2.5.4.72",                         "ROLE" },
-    { "2.5.4.73",                         "DELEGATION_PATH" },
-    { "2.5.4.74",                         "PROT_PRIV_POLICY" },
-    { "2.5.4.75",                         "X_ML_PRIVILEGE_INFO" },
-    { "2.5.4.76",                         "XML_PRIV_POLICY" },
-    { "2.5.4.82",                         "PERMISSION" },
-    { "2.5.6.0",                          "TOP" },
-    { "2.5.6.1",                          "ALIAS" },
-    { "2.5.6.2",                          "COUNTRY" },
-    { "2.5.6.3",                          "LOCALITY" },
-    { "2.5.6.4",                          "ORGANIZATION" },
-    { "2.5.6.5",                          "ORGANIZATIONAL_UNIT" },
-    { "2.5.6.6",                          "PERSON" },
-    { "2.5.6.7",                          "ORGANIZATIONAL_PERSON" },
-    { "2.5.6.8",                          "ORGANIZATIONAL_ROLE" },
-    { "2.5.6.9",                          "GROUP_OF_NAMES" },
-    { "2.5.6.10",                         "RESIDENTIAL_PERSON" },
-    { "2.5.6.11",                         "APPLICATION_PROCESS" },
-    { "2.5.6.12",                         "APPLICATION_ENTITY" },
-    { "2.5.6.13",                         "D_SA" },
-    { "2.5.6.14",                         "DEVICE" },
-    { "2.5.6.15",                         "STRONG_AUTHENTICATION_USER" },
-    { "2.5.6.16",                         "CERTIFICATE_AUTHORITY" },
-    { "2.5.6.17",                         "GROUP_OF_UNIQUE_NAMES" },
-    { "2.5.6.21",                         "PKI_USER" },
-    { "2.5.6.22",                         "PKI_CA" },
-    { "2.5.8.1.1",                        "RSA" },
-    { "2.5.29.1",                         "AUTHORITY_KEY_IDENTIFIER" },
-    { "2.5.29.2",                         "KEY_ATTRIBUTES" },
-    { "2.5.29.3",                         "CERTIFICATE_POLICIES" },
-    { "2.5.29.4",                         "KEY_USAGE_RESTRICTION" },
-    { "2.5.29.5",                         "POLICY_MAPPING" },
-    { "2.5.29.6",                         "SUBTREES_CONSTRAINT" },
-    { "2.5.29.7",                         "SUBJECT_ALT_NAME" },
-    { "2.5.29.8",                         "ISSUER_ALT_NAME" },
-    { "2.5.29.9",                         "SUBJECT_DIRECTORY_ATTRIBUTES" },
-    { "2.5.29.10",                        "BASIC_CONSTRAINTS" },
-    { "2.5.29.11",                        "NAME_CONSTRAINTS" },
-    { "2.5.29.12",                        "POLICY_CONSTRAINTS" },
-    { "2.5.29.13",                        "BASIC_CONSTRAINTS" },
-    { "2.5.29.14",                        "SUBJECT_KEY_IDENTIFIER" },
-    { "2.5.29.15",                        "KEY_USAGE" },
-    { "2.5.29.16",                        "PRIVATE_KEY_USAGE_PERIOD" },
-    { "2.5.29.17",                        "SUBJECT_ALT_NAME" },
-    { "2.5.29.18",                        "ISSUER_ALT_NAME" },
-    { "2.5.29.19",                        "BASIC_CONSTRAINTS" },
-    { "2.5.29.20",                        "C_RL_NUMBER" },
-    { "2.5.29.21",                        "C_RL_REASON" },
-    { "2.5.29.22",                        "EXPIRATION_DATE" },
-    { "2.5.29.23",                        "INSTRUCTION_CODE" },
-    { "2.5.29.24",                        "INVALIDITY_DATE" },
-    { "2.5.29.25",                        "C_RL_DISTRIBUTION_POINTS" },
-    { "2.5.29.26",                        "ISSUING_DISTRIBUTION_POINT" },
-    { "2.5.29.27",                        "DELTA_CRL_INDICATOR" },
-    { "2.5.29.28",                        "ISSUING_DISTRIBUTION_POINT" },
-    { "2.5.29.29",                        "CERTIFICATE_ISSUER" },
-    { "2.5.29.30",                        "NAME_CONSTRAINTS" },
-    { "2.5.29.31",                        "C_RL_DISTRIBUTION_POINTS" },
-    { "2.5.29.32",                        "CERTIFICATE_POLICIES" },
-    { "2.5.29.32.0",                      "ANY_POLICY" },
-    { "2.5.29.33",                        "POLICY_MAPPINGS" },
-    { "2.5.29.34",                        "POLICY_CONSTRAINTS" },
-    { "2.5.29.35",                        "AUTHORITY_KEY_IDENTIFIER" },
-    { "2.5.29.36",                        "POLICY_CONSTRAINTS" },
-    { "2.5.29.37",                        "EXT_KEY_USAGE" },
-    { "2.5.29.37.0",                      "ANY_EXTENDED_KEY_USAGE" },
-    { "2.5.29.38",                        "AUTHORITY_ATTRIBUTE_IDENTIFIER" },
-    { "2.5.29.39",                        "ROLE_SPEC_CERT_IDENTIFIER" },
-    { "2.5.29.40",                        "C_RL_STREAM_IDENTIFIER" },
-    { "2.5.29.41",                        "BASIC_ATT_CONSTRAINTS" },
-    { "2.5.29.42",                        "DELEGATED_NAME_CONSTRAINTS" },
-    { "2.5.29.43",                        "TIME_SPECIFICATION" },
-    { "2.5.29.44",                        "C_RL_SCOPE" },
-    { "2.5.29.45",                        "STATUS_REFERRALS" },
-    { "2.5.29.46",                        "FRESHEST_CRL" },
-    { "2.5.29.47",                        "ORDERED_LIST" },
-    { "2.5.29.48",                        "ATTRIBUTE_DESCRIPTOR" },
-    { "2.5.29.49",                        "USER_NOTICE" },
-    { "2.5.29.50",                        "S_OA_IDENTIFIER" },
-    { "2.5.29.51",                        "BASE_UPDATE_TIME" },
-    { "2.5.29.52",                        "ACCEPTABLE_CERT_POLICIES" },
-    { "2.5.29.53",                        "DELTA_INFO" },
-    { "2.5.29.54",                        "INHIBIT_ANY_POLICY" },
-    { "2.5.29.55",                        "TARGET_INFORMATION" },
-    { "2.5.29.56",                        "NO_REV_AVAIL" },
-    { "2.5.29.57",                        "ACCEPTABLE_PRIVILEGE_POLICIES" },
-    { "2.5.29.58",                        "TO_BE_REVOKED" },
-    { "2.5.29.59",                        "REVOKED_GROUPS" },
-    { "2.5.29.60",                        "EXPIRED_CERTS_ON_CRL" },
-    { "2.5.29.61",                        "INDIRECT_ISSUER" },
-    { "2.5.29.62",                        "NO_ASSERTION" },
-    { "2.5.29.63",                        "A_AISSUING_DISTRIBUTION_POINT" },
-    { "2.5.29.64",                        "ISSUED_ON_BEHALF_OF" },
-    { "2.5.29.65",                        "SINGLE_USE" },
-    { "2.5.29.66",                        "GROUP_AC" },
-    { "2.5.29.67",                        "ALLOWED_ATT_ASS" },
-    { "2.5.29.68",                        "ATTRIBUTE_MAPPINGS" },
-    { "2.5.29.69",                        "HOLDER_NAME_CONSTRAINTS" },
-    { "2.16.724.1.2.2.4.1",               "PERSONAL_DATA_INFO" },
-    { "2.16.840.1.101.2.1.1.1",           "SDNS_SIGNATURE_ALGORITHM" },
-    { "2.16.840.1.101.2.1.1.2",           "FORTEZZA_SIGNATURE_ALGORITHM" },
-    { "2.16.840.1.101.2.1.1.3",           "SDNS_CONFIDENTIALITY_ALGORITHM" },
-    { "2.16.840.1.101.2.1.1.4",           "FORTEZZA_CONFIDENTIALITY_ALGORITHM" },
-    { "2.16.840.1.101.2.1.1.5",           "SDNS_INTEGRITY_ALGORITHM" },
-    { "2.16.840.1.101.2.1.1.6",           "FORTEZZA_INTEGRITY_ALGORITHM" },
-    { "2.16.840.1.101.2.1.1.7",           "SDNS_TOKEN_PROTECTION_ALGORITHM" },
-    { "2.16.840.1.101.2.1.1.8",           "FORTEZZA_TOKEN_PROTECTION_ALGORITHM" },
-    { "2.16.840.1.101.2.1.1.9",           "SDNS_KEY_MANAGEMENT_ALGORITHM" },
-    { "2.16.840.1.101.2.1.1.10",          "FORTEZZA_KEY_MANAGEMENT_ALGORITHM" },
-    { "2.16.840.1.101.2.1.1.11",          "SDNS_K_MAND_SIG_ALGORITHM" },
-    { "2.16.840.1.101.2.1.1.12",          "FORTEZZA_K_MAND_SIG_ALGORITHM" },
-    { "2.16.840.1.101.2.1.1.13",          "SUITE_A_SIGNATURE_ALGORITHM" },
-    { "2.16.840.1.101.2.1.1.14",          "SUITE_A_CONFIDENTIALITY_ALGORITHM" },
-    { "2.16.840.1.101.2.1.1.15",          "SUITE_A_INTEGRITY_ALGORITHM" },
-    { "2.16.840.1.101.2.1.1.16",          "SUITE_A_TOKEN_PROTECTION_ALGORITHM" },
-    { "2.16.840.1.101.2.1.1.17",          "SUITE_A_KEY_MANAGEMENT_ALGORITHM" },
-    { "2.16.840.1.101.2.1.1.18",          "SUITE_AK_MAND_SIG_ALGORITHM" },
-    { "2.16.840.1.101.2.1.1.19",          "FORTEZZA_UPDATED_SIG_ALGORITHM" },
-    { "2.16.840.1.101.2.1.1.20",          "FORTEZZA_K_MAND_UPD_SIG_ALGORITHMS" },
-    { "2.16.840.1.101.2.1.1.21",          "FORTEZZA_UPDATED_INTEG_ALGORITHM" },
-    { "2.16.840.1.101.2.1.1.22",          "KEY_EXCHANGE_ALGORITHM" },
-    { "2.16.840.1.101.2.1.1.23",          "FORTEZZA_WRAP80_ALGORITHM" },
-    { "2.16.840.1.101.2.1.1.24",          "K_EA_KEY_ENCRYPTION_ALGORITHM" },
-    { "2.16.840.1.101.2.1.2.1",           "RFC822_MESSAGE_FORMAT" },
-    { "2.16.840.1.101.2.1.2.2",           "EMPTY_CONTENT" },
-    { "2.16.840.1.101.2.1.2.3",           "CSP_CONTENT_TYPE" },
-    { "2.16.840.1.101.2.1.2.42",          "MSP_REV3_CONTENT_TYPE" },
-    { "2.16.840.1.101.2.1.2.48",          "MSP_CONTENT_TYPE" },
-    { "2.16.840.1.101.2.1.2.49",          "MSP_REKEY_AGENT_PROTOCOL" },
-    { "2.16.840.1.101.2.1.2.50",          "MSP_MMP" },
-    { "2.16.840.1.101.2.1.2.66",          "MSP_REV3_1_CONTENT_TYPE" },
-    { "2.16.840.1.101.2.1.2.72",          "FORWARDED_MSP_MESSAGE_BODY_PART" },
-    { "2.16.840.1.101.2.1.2.73",          "MSP_FORWARDED_MESSAGE_PARAMETERS" },
-    { "2.16.840.1.101.2.1.2.74",          "FORWARDED_CSP_MSG_BODY_PART" },
-    { "2.16.840.1.101.2.1.2.75",          "CSP_FORWARDED_MESSAGE_PARAMETERS" },
-    { "2.16.840.1.101.2.1.2.76",          "MSP_MMP2" },
-    { "2.16.840.1.101.2.1.3.1",           "SDNS_SECURITY_POLICY" },
-    { "2.16.840.1.101.2.1.3.2",           "SDNS_PRBAC" },
-    { "2.16.840.1.101.2.1.3.3",           "MOSAIC_PRBAC" },
-    { "2.16.840.1.101.2.1.3.10",          "SI_SECURITY_POLICY" },
-    { "2.16.840.1.101.2.1.3.10.0",        "SI_NASP" },
-    { "2.16.840.1.101.2.1.3.10.1",        "SI_ELCO" },
-    { "2.16.840.1.101.2.1.3.10.2",        "SI_TK" },
-    { "2.16.840.1.101.2.1.3.10.3",        "SI_DSAP" },
-    { "2.16.840.1.101.2.1.3.10.4",        "SI_SSSS" },
-    { "2.16.840.1.101.2.1.3.10.5",        "SI_DNASP" },
-    { "2.16.840.1.101.2.1.3.10.6",        "SI_BYEMAN" },
-    { "2.16.840.1.101.2.1.3.10.7",        "SI_REL_US" },
-    { "2.16.840.1.101.2.1.3.10.8",        "SI_REL_AUS" },
-    { "2.16.840.1.101.2.1.3.10.9",        "SI_REL_CAN" },
-    { "2.16.840.1.101.2.1.3.10.10",       "SI_REL_UK" },
-    { "2.16.840.1.101.2.1.3.10.11",       "SI_REL_NZ" },
-    { "2.16.840.1.101.2.1.3.10.12",       "SI_GENERIC" },
-    { "2.16.840.1.101.2.1.3.11",          "GENSER" },
-    { "2.16.840.1.101.2.1.3.11.0",        "GENSER_NATIONS" },
-    { "2.16.840.1.101.2.1.3.11.1",        "GENSER_COMSEC" },
-    { "2.16.840.1.101.2.1.3.11.2",        "GENSER_ACQUISITION" },
-    { "2.16.840.1.101.2.1.3.11.3",        "GENSER_SECURITY_CATEGORIES" },
-    { "2.16.840.1.101.2.1.3.11.3.0",      "GENSER_TAG_SET_NAME" },
-    { "2.16.840.1.101.2.1.3.12",          "DEFAULT_SECURITY_POLICY" },
-    { "2.16.840.1.101.2.1.3.13",          "CAPCO_MARKINGS" },
-    { "2.16.840.1.101.2.1.3.13.0",        "CAPCO_SECURITY_CATEGORIES" },
-    { "2.16.840.1.101.2.1.3.13.0.1",      "CAPCO_TAG_SET_NAME1" },
-    { "2.16.840.1.101.2.1.3.13.0.2",      "CAPCO_TAG_SET_NAME2" },
-    { "2.16.840.1.101.2.1.3.13.0.3",      "CAPCO_TAG_SET_NAME3" },
-    { "2.16.840.1.101.2.1.3.13.0.4",      "CAPCO_TAG_SET_NAME4" },
-    { "2.16.840.1.101.2.1.5.1",           "SDNS_KEY_MANAGEMENT_CERTIFICATE" },
-    { "2.16.840.1.101.2.1.5.2",           "SDNS_USER_SIGNATURE_CERTIFICATE" },
-    { "2.16.840.1.101.2.1.5.3",           "SDNS_K_MAND_SIG_CERTIFICATE" },
-    { "2.16.840.1.101.2.1.5.4",           "FORTEZZA_KEY_MANAGEMENT_CERTIFICATE" },
-    { "2.16.840.1.101.2.1.5.5",           "FORTEZZA_K_MAND_SIG_CERTIFICATE" },
-    { "2.16.840.1.101.2.1.5.6",           "FORTEZZA_USER_SIGNATURE_CERTIFICATE" },
-    { "2.16.840.1.101.2.1.5.7",           "FORTEZZA_CA_SIGNATURE_CERTIFICATE" },
-    { "2.16.840.1.101.2.1.5.8",           "SDNS_CA_SIGNATURE_CERTIFICATE" },
-    { "2.16.840.1.101.2.1.5.10",          "AUXILIARY_VECTOR" },
-    { "2.16.840.1.101.2.1.5.11",          "ML_RECEIPT_POLICY" },
-    { "2.16.840.1.101.2.1.5.12",          "ML_MEMBERSHIP" },
-    { "2.16.840.1.101.2.1.5.13",          "ML_ADMINISTRATORS" },
-    { "2.16.840.1.101.2.1.5.14",          "ALID" },
-    { "2.16.840.1.101.2.1.5.20",          "JAN_UK_MS" },
-    { "2.16.840.1.101.2.1.5.21",          "FEB_UK_MS" },
-    { "2.16.840.1.101.2.1.5.22",          "MAR_UK_MS" },
-    { "2.16.840.1.101.2.1.5.23",          "APR_UK_MS" },
-    { "2.16.840.1.101.2.1.5.24",          "MAY_UK_MS" },
-    { "2.16.840.1.101.2.1.5.25",          "JUN_UK_MS" },
-    { "2.16.840.1.101.2.1.5.26",          "JUL_UK_MS" },
-    { "2.16.840.1.101.2.1.5.27",          "AUG_UK_MS" },
-    { "2.16.840.1.101.2.1.5.28",          "SEP_UK_MS" },
-    { "2.16.840.1.101.2.1.5.29",          "OCT_UK_MS" },
-    { "2.16.840.1.101.2.1.5.30",          "NOV_UK_MS" },
-    { "2.16.840.1.101.2.1.5.31",          "DEC_UK_MS" },
-    { "2.16.840.1.101.2.1.5.40",          "META_SDN_SCKL" },
-    { "2.16.840.1.101.2.1.5.41",          "SDNS_CKL" },
-    { "2.16.840.1.101.2.1.5.42",          "META_SDN_SSIGNATURE_CKL" },
-    { "2.16.840.1.101.2.1.5.43",          "SDNS_SIGNATURE_CKL" },
-    { "2.16.840.1.101.2.1.5.44",          "SDNS_CERTIFICATE_REVOCATION_LIST" },
-    { "2.16.840.1.101.2.1.5.45",          "FORTEZZA_CERTIFICATE_REVOCATION_LIST" },
-    { "2.16.840.1.101.2.1.5.46",          "FORTEZZA_CKL" },
-    { "2.16.840.1.101.2.1.5.47",          "AL_EXEMPTED_ADDRESS_PROCESSOR" },
-    { "2.16.840.1.101.2.1.5.48",          "GUARD" },
-    { "2.16.840.1.101.2.1.5.49",          "ALGORITHMS_SUPPORTED" },
-    { "2.16.840.1.101.2.1.5.50",          "SUITE_A_KEY_MANAGEMENT_CERTIFICATE" },
-    { "2.16.840.1.101.2.1.5.51",          "SUITE_AK_MAND_SIG_CERTIFICATE" },
-    { "2.16.840.1.101.2.1.5.52",          "SUITE_A_USER_SIGNATURE_CERTIFICATE" },
-    { "2.16.840.1.101.2.1.5.53",          "PRBAC_INFO" },
-    { "2.16.840.1.101.2.1.5.54",          "PRBAC_CA_CONSTRAINTS" },
-    { "2.16.840.1.101.2.1.5.55",          "SIG_OR_KM_PRIVILEGES" },
-    { "2.16.840.1.101.2.1.5.56",          "COMM_PRIVILEGES" },
-    { "2.16.840.1.101.2.1.5.57",          "LABELED_ATTRIBUTE" },
-    { "2.16.840.1.101.2.1.5.58",          "POLICY_INFORMATION_FILE" },
-    { "2.16.840.1.101.2.1.5.59",          "SEC_POLICY_INFORMATION_FILE" },
-    { "2.16.840.1.101.2.1.5.60",          "C_A_CLEARANCE_CONSTRAINT" },
-    { "2.16.840.1.101.2.1.7.1",           "CSP_EXTNS" },
-    { "2.16.840.1.101.2.1.7.1.0",         "CSP_CS_EXTN" },
-    { "2.16.840.1.101.2.1.8.1",           "M_ISSI_SECURITY_CATEGORIES" },
-    { "2.16.840.1.101.2.1.8.2",           "STANDARD_SECURITY_LABEL_PRIVILEGES" },
-    { "2.16.840.1.101.2.1.10.1",          "SIG_PRIVILEGES" },
-    { "2.16.840.1.101.2.1.10.2",          "KM_PRIVILEGES" },
-    { "2.16.840.1.101.2.1.10.3",          "NAMED_TAG_SET_PRIVILEGE" },
-    { "2.16.840.1.101.2.1.11.1",          "UK_DEMO" },
-    { "2.16.840.1.101.2.1.11.2",          "US_DOD_CLASS2" },
-    { "2.16.840.1.101.2.1.11.3",          "US_MEDIUM_PILOT" },
-    { "2.16.840.1.101.2.1.11.4",          "US_DOD_CLASS4" },
-    { "2.16.840.1.101.2.1.11.5",          "US_DOD_CLASS3" },
-    { "2.16.840.1.101.2.1.11.6",          "US_DOD_CLASS5" },
-    { "2.16.840.1.101.2.1.12.0",          "TEST_SECURITY_POLICY" },
-    { "2.16.840.1.101.2.1.12.0.1",        "TSP1" },
-    { "2.16.840.1.101.2.1.12.0.1.0",      "TSP1_SECURITY_CATEGORIES" },
-    { "2.16.840.1.101.2.1.12.0.1.0.0",    "TSP1_TAG_SET_ZERO" },
-    { "2.16.840.1.101.2.1.12.0.1.0.1",    "TSP1_TAG_SET_ONE" },
-    { "2.16.840.1.101.2.1.12.0.1.0.2",    "TSP1_TAG_SET_TWO" },
-    { "2.16.840.1.101.2.1.12.0.2",        "TSP2" },
-    { "2.16.840.1.101.2.1.12.0.2.0",      "TSP2_SECURITY_CATEGORIES" },
-    { "2.16.840.1.101.2.1.12.0.2.0.0",    "TSP2_TAG_SET_ZERO" },
-    { "2.16.840.1.101.2.1.12.0.2.0.1",    "TSP2_TAG_SET_ONE" },
-    { "2.16.840.1.101.2.1.12.0.2.0.2",    "TSP2_TAG_SET_TWO" },
-    { "2.16.840.1.101.2.1.12.0.3",        "KAFKA" },
-    { "2.16.840.1.101.2.1.12.0.3.0",      "KAFKA_SECURITY_CATEGORIES" },
-    { "2.16.840.1.101.2.1.12.0.3.0.1",    "KAFKA_TAG_SET_NAME1" },
-    { "2.16.840.1.101.2.1.12.0.3.0.2",    "KAFKA_TAG_SET_NAME2" },
-    { "2.16.840.1.101.2.1.12.0.3.0.3",    "KAFKA_TAG_SET_NAME3" },
-    { "2.16.840.1.101.2.1.12.1.1",        "TCP1" },
-    { "2.16.840.1.101.3.1",               "SLABEL" },
-    { "2.16.840.1.101.3.2",               "PKI" },
-    { "2.16.840.1.101.3.2.1",             "NIST_POLICY_IDENTIFIER" },
-    { "2.16.840.1.101.3.2.1.3.1",         "FBCA_RUDIMENTARY_POLICY" },
-    { "2.16.840.1.101.3.2.1.3.2",         "FBCA_BASIC_POLICY" },
-    { "2.16.840.1.101.3.2.1.3.3",         "FBCA_MEDIUM_POLICY" },
-    { "2.16.840.1.101.3.2.1.3.4",         "FBCA_HIGH_POLICY" },
-    { "2.16.840.1.101.3.2.1.48.1",        "NIST_TEST_POLICY1" },
-    { "2.16.840.1.101.3.2.1.48.2",        "NIST_TEST_POLICY2" },
-    { "2.16.840.1.101.3.2.1.48.3",        "NIST_TEST_POLICY3" },
-    { "2.16.840.1.101.3.2.1.48.4",        "NIST_TEST_POLICY4" },
-    { "2.16.840.1.101.3.2.1.48.5",        "NIST_TEST_POLICY5" },
-    { "2.16.840.1.101.3.2.1.48.6",        "NIST_TEST_POLICY6" },
-    { "2.16.840.1.101.3.2.2",             "GAK" },
-    { "2.16.840.1.101.3.2.2.1",           "K_RA_KEY" },
-    { "2.16.840.1.101.3.2.3",             "EXTENSIONS" },
-    { "2.16.840.1.101.3.2.3.1",           "K_R_TECHNIQUE" },
-    { "2.16.840.1.101.3.2.3.2",           "K_RECOVERY_CAPABLE" },
-    { "2.16.840.1.101.3.2.3.3",           "K_R" },
-    { "2.16.840.1.101.3.2.4",             "KEY_RECOVERY_SCHEMES" },
-    { "2.16.840.1.101.3.2.5",             "KRAPOLA" },
-    { "2.16.840.1.101.3.3",               "ARPA" },
-    { "2.16.840.1.101.3.4",               "NIST_ALGORITHM" },
-    { "2.16.840.1.101.3.4.1",             "AES" },
-    { "2.16.840.1.101.3.4.1.1",           "AES128_ECB" },
-    { "2.16.840.1.101.3.4.1.2",           "AES128_CBC" },
-    { "2.16.840.1.101.3.4.1.3",           "AES128_OFB" },
-    { "2.16.840.1.101.3.4.1.4",           "AES128_CFB" },
-    { "2.16.840.1.101.3.4.1.5",           "AES128_WRAP" },
-    { "2.16.840.1.101.3.4.1.6",           "AES128_GCM" },
-    { "2.16.840.1.101.3.4.1.7",           "AES128_CCM" },
-    { "2.16.840.1.101.3.4.1.8",           "AES128_WRAP_PAD" },
-    { "2.16.840.1.101.3.4.1.21",          "AES192_ECB" },
-    { "2.16.840.1.101.3.4.1.22",          "AES192_CBC" },
-    { "2.16.840.1.101.3.4.1.23",          "AES192_OFB" },
-    { "2.16.840.1.101.3.4.1.24",          "AES192_CFB" },
-    { "2.16.840.1.101.3.4.1.25",          "AES192_WRAP" },
-    { "2.16.840.1.101.3.4.1.26",          "AES192_GCM" },
-    { "2.16.840.1.101.3.4.1.27",          "AES192_CCM" },
-    { "2.16.840.1.101.3.4.1.28",          "AES192_WRAP_PAD" },
-    { "2.16.840.1.101.3.4.1.41",          "AES256_ECB" },
-    { "2.16.840.1.101.3.4.1.42",          "AES256_CBC" },
-    { "2.16.840.1.101.3.4.1.43",          "AES256_OFB" },
-    { "2.16.840.1.101.3.4.1.44",          "AES256_CFB" },
-    { "2.16.840.1.101.3.4.1.45",          "AES256_WRAP" },
-    { "2.16.840.1.101.3.4.1.46",          "AES256_GCM" },
-    { "2.16.840.1.101.3.4.1.47",          "AES256_CCM" },
-    { "2.16.840.1.101.3.4.1.48",          "AES256_WRAP_PAD" },
-    { "2.16.840.1.101.3.4.2",             "HASH_ALGOS" },
-    { "2.16.840.1.101.3.4.2.1",           "SHA_256" },
-    { "2.16.840.1.101.3.4.2.2",           "SHA_384" },
-    { "2.16.840.1.101.3.4.2.3",           "SHA_512" },
-    { "2.16.840.1.101.3.4.2.4",           "SHA_224" },
-    { "2.16.840.1.101.3.4.3.1",           "DSA_WITH_SHA224" },
-    { "2.16.840.1.101.3.4.3.2",           "DSA_WITH_SHA256" },
-    { "2.16.840.1.113719.1.2.8",          "NOVELL_ALGORITHM" },
-    { "2.16.840.1.113719.1.2.8.22",       "DES_CBC_IV8" },
-    { "2.16.840.1.113719.1.2.8.23",       "DES_CBC_PAD_IV8" },
-    { "2.16.840.1.113719.1.2.8.24",       "DES_EDE2_CBC_IV8" },
-    { "2.16.840.1.113719.1.2.8.25",       "DES_EDE2_CBC_PAD_IV8" },
-    { "2.16.840.1.113719.1.2.8.26",       "DES_EDE3_CBC_IV8" },
-    { "2.16.840.1.113719.1.2.8.27",       "DES_EDE3_CBC_PAD_IV8" },
-    { "2.16.840.1.113719.1.2.8.28",       "RC5_CBC_PAD" },
-    { "2.16.840.1.113719.1.2.8.29",       "MD2_WITH_RSA_ENCRYPTION_B_SAFE1" },
-    { "2.16.840.1.113719.1.2.8.30",       "MD5_WITH_RSA_ENCRYPTION_B_SAFE1" },
-    { "2.16.840.1.113719.1.2.8.31",       "SHA1_WITH_RSA_ENCRYPTION_B_SAFE1" },
-    { "2.16.840.1.113719.1.2.8.32",       "LM_DIGEST" },
-    { "2.16.840.1.113719.1.2.8.40",       "MD2" },
-    { "2.16.840.1.113719.1.2.8.50",       "MD5" },
-    { "2.16.840.1.113719.1.2.8.51",       "IKE_HMAC_WITH_SHA1_RSA" },
-    { "2.16.840.1.113719.1.2.8.52",       "IKE_HMAC_WITH_MD5_RSA" },
-    { "2.16.840.1.113719.1.2.8.69",       "RC2_CBC_PAD" },
-    { "2.16.840.1.113719.1.2.8.82",       "SHA_1" },
-    { "2.16.840.1.113719.1.2.8.92",       "RC2_B_SAFE1_CBC" },
-    { "2.16.840.1.113719.1.2.8.95",       "MD4" },
-    { "2.16.840.1.113719.1.2.8.130",      "MD4_PACKET" },
-    { "2.16.840.1.113719.1.2.8.131",      "RSA_ENCRYPTION_BSAFE1" },
-    { "2.16.840.1.113719.1.2.8.132",      "NW_PASSWORD" },
-    { "2.16.840.1.113719.1.2.8.133",      "NOVELL_OBFUSCATE_1" },
-    { "2.16.840.1.113719.1.9",            "PKI" },
-    { "2.16.840.1.113719.1.9.4",          "PKI_ATTRIBUTE_TYPE" },
-    { "2.16.840.1.113719.1.9.4.1",        "SECURITY_ATTRIBUTES" },
-    { "2.16.840.1.113719.1.9.4.2",        "RELIANCE_LIMIT" },
-    { "2.16.840.1.113730.1",              "CERT_EXTENSION" },
-    { "2.16.840.1.113730.1.1",            "NETSCAPE_CERT_TYPE" },
-    { "2.16.840.1.113730.1.2",            "NETSCAPE_BASE_URL" },
-    { "2.16.840.1.113730.1.3",            "NETSCAPE_REVOCATION_URL" },
-    { "2.16.840.1.113730.1.4",            "NETSCAPE_CA_REVOCATION_URL" },
-    { "2.16.840.1.113730.1.7",            "NETSCAPE_CERT_RENEWAL_URL" },
-    { "2.16.840.1.113730.1.8",            "NETSCAPE_CA_POLICY_URL" },
-    { "2.16.840.1.113730.1.9",            "HOME_PAGE_URL" },
-    { "2.16.840.1.113730.1.10",           "ENTITY_LOGO" },
-    { "2.16.840.1.113730.1.11",           "USER_PICTURE" },
-    { "2.16.840.1.113730.1.12",           "NETSCAPE_SSL_SERVER_NAME" },
-    { "2.16.840.1.113730.1.13",           "NETSCAPE_COMMENT" },
-    { "2.16.840.1.113730.2",              "DATA_TYPE" },
-    { "2.16.840.1.113730.2.1",            "DATA_GIF" },
-    { "2.16.840.1.113730.2.2",            "DATA_JPEG" },
-    { "2.16.840.1.113730.2.3",            "DATA_URL" },
-    { "2.16.840.1.113730.2.4",            "DATA_HTML" },
-    { "2.16.840.1.113730.2.5",            "CERT_SEQUENCE" },
-    { "2.16.840.1.113730.2.6",            "CERT_URL" },
-    { "2.16.840.1.113730.3",              "DIRECTORY" },
-    { "2.16.840.1.113730.3.1",            "LDAP_DEFINITIONS" },
-    { "2.16.840.1.113730.3.1.1",          "CAR_LICENSE" },
-    { "2.16.840.1.113730.3.1.2",          "DEPARTMENT_NUMBER" },
-    { "2.16.840.1.113730.3.1.3",          "EMPLOYEE_NUMBER" },
-    { "2.16.840.1.113730.3.1.4",          "EMPLOYEE_TYPE" },
-    { "2.16.840.1.113730.3.2.2",          "INET_ORG_PERSON" },
-    { "2.16.840.1.113730.4.1",            "SERVER_GATED_CRYPTO" },
-    { "2.16.840.1.113733.1.6.3",          "VERISIGN_CZAG" },
-    { "2.16.840.1.113733.1.6.6",          "VERISIGN_IN_BOX" },
-    { "2.16.840.1.113733.1.6.11",         "VERISIGN_ONSITE_JURISDICTION_HASH" },
-    { "2.16.840.1.113733.1.6.13",         "UNKNOWN_VERISIGN_VPN_EXTENSION" },
-    { "2.16.840.1.113733.1.6.15",         "VERISIGN_SERVER_ID" },
-    { "2.16.840.1.113733.1.7.1.1",        "VERISIGN_CERT_POLICIES95_QUALIFIER1" },
-    { "2.16.840.1.113733.1.7.1.1.1",      "VERISIGN_CP_SV1NOTICE" },
-    { "2.16.840.1.113733.1.7.1.1.2",      "VERISIGN_CP_SV1NSI" },
-    { "2.16.840.1.113733.1.8.1",          "VERISIGN_ISS_STRONG_CRYPTO" },
-    { "2.16.840.1.113733.1",              "PKI" },
-    { "2.16.840.1.113733.1.9",            "PKCS7_ATTRIBUTE" },
-    { "2.16.840.1.113733.1.9.2",          "MESSAGE_TYPE" },
-    { "2.16.840.1.113733.1.9.3",          "PKI_STATUS" },
-    { "2.16.840.1.113733.1.9.4",          "FAIL_INFO" },
-    { "2.16.840.1.113733.1.9.5",          "SENDER_NONCE" },
-    { "2.16.840.1.113733.1.9.6",          "RECIPIENT_NONCE" },
-    { "2.16.840.1.113733.1.9.7",          "TRANS_ID" },
-    { "2.16.840.1.113733.1.9.8",          "EXTENSION_REQ" },
-    { "2.16.840.1.113741.2",              "INTEL_CDSA" },
-    { "2.16.840.1.114412.1",              "DIGI_CERT_NON_EV_CERTS" },
-    { "2.16.840.1.114412.1.1",            "DIGI_CERT_OV_CERT" },
-    { "2.16.840.1.114412.1.2",            "DIGI_CERT_DV_CERT" },
-    { "2.16.840.1.114412.1.11",           "DIGI_CERT_FEDERATED_DEVICE_CERT" },
-    { "2.16.840.1.114412.1.3.0.1",        "DIGI_CERT_GLOBAL_CA_POLICY" },
-    { "2.16.840.1.114412.1.3.0.2",        "DIGI_CERT_HIGH_ASSURANCE_EVCA_POLICY" },
-    { "2.16.840.1.114412.1.3.0.3",        "DIGI_CERT_GLOBAL_ROOT_CA_POLICY" },
-    { "2.16.840.1.114412.1.3.0.4",        "DIGI_CERT_ASSURED_ID_ROOT_CA_POLICY" },
-    { "2.16.840.1.114412.2.2",            "DIGI_CERT_EV_CERT" },
-    { "2.16.840.1.114412.2.3",            "DIGI_CERT_OBJECT_SIGNING_CERT" },
-    { "2.16.840.1.114412.2.3.1",          "DIGI_CERT_CODE_SIGNING_CERT" },
-    { "2.16.840.1.114412.2.3.2",          "DIGI_CERT_EV_CODE_SIGNING_CERT" },
-    { "2.16.840.1.114412.2.3.11",         "DIGI_CERT_KERNEL_CODE_SIGNING_CERT" },
-    { "2.16.840.1.114412.2.3.21",         "DIGI_CERT_DOCUMENT_SIGNING_CERT" },
-    { "2.16.840.1.114412.2.4",            "DIGI_CERT_CLIENT_CERT" },
-    { "2.16.840.1.114412.2.4.1.1",        "DIGI_CERT_LEVEL1_PERSONAL_CLIENT_CERT" },
-    { "2.16.840.1.114412.2.4.1.2",        "DIGI_CERT_LEVEL1_ENTERPRISE_CLIENT_CERT" },
-    { "2.16.840.1.114412.2.4.2",          "DIGI_CERT_LEVEL2_CLIENT_CERT" },
-    { "2.16.840.1.114412.2.4.3.1",        "DIGI_CERT_LEVEL3_US_CLIENT_CERT" },
-    { "2.16.840.1.114412.2.4.3.2",        "DIGI_CERT_LEVEL3_CBP_CLIENT_CERT" },
-    { "2.16.840.1.114412.2.4.4.1",        "DIGI_CERT_LEVEL4_US_CLIENT_CERT" },
-    { "2.16.840.1.114412.2.4.4.2",        "DIGI_CERT_LEVEL4_CBP_CLIENT_CERT" },
-    { "2.16.840.1.114412.2.4.5.1",        "DIGI_CERT_PIV_HARDWARE_CERT" },
-    { "2.16.840.1.114412.2.4.5.2",        "DIGI_CERT_PIV_CARD_AUTH_CERT" },
-    { "2.16.840.1.114412.2.4.5.3",        "DIGI_CERT_PIV_CONTENT_SIGNING_CERT" },
-    { "2.16.840.1.114412.4.31",           "DIGI_CERT_GRID_CLASSIC_CERT" },
-    { "2.16.840.1.114412.4.31.5",         "DIGI_CERT_GRID_INTEGRATED_CERT" },
-    { "2.16.840.1.114412.31.4.31.1",      "DIGI_CERT_GRID_HOST_CERT" },
-    { "2.23.42.0",                        "CONTENT_TYPE" },
-    { "2.23.42.0.0",                      "PAN_DATA" },
-    { "2.23.42.0.1",                      "PAN_TOKEN" },
-    { "2.23.42.0.2",                      "PAN_ONLY" },
-    { "2.23.42.1",                        "MSG_EXT" },
-    { "2.23.42.2",                        "FIELD" },
-    { "2.23.42.2.0",                      "FULL_NAME" },
-    { "2.23.42.2.1",                      "GIVEN_NAME" },
-    { "2.23.42.2.2",                      "FAMILY_NAME" },
-    { "2.23.42.2.3",                      "BIRTH_FAMILY_NAME" },
-    { "2.23.42.2.4",                      "PLACE_NAME" },
-    { "2.23.42.2.5",                      "IDENTIFICATION_NUMBER" },
-    { "2.23.42.2.6",                      "MONTH" },
-    { "2.23.42.2.7",                      "DATE" },
-    { "2.23.42.2.8",                      "ADDRESS" },
-    { "2.23.42.2.9",                      "TELEPHONE" },
-    { "2.23.42.2.10",                     "AMOUNT" },
-    { "2.23.42.2.11",                     "ACCOUNT_NUMBER" },
-    { "2.23.42.2.12",                     "PASS_PHRASE" },
-    { "2.23.42.3",                        "ATTRIBUTE" },
-    { "2.23.42.3.0",                      "CERT" },
-    { "2.23.42.3.0.0",                    "ROOT_KEY_THUMB" },
-    { "2.23.42.3.0.1",                    "ADDITIONAL_POLICY" },
-    { "2.23.42.4",                        "ALGORITHM" },
-    { "2.23.42.5",                        "POLICY" },
-    { "2.23.42.5.0",                      "ROOT" },
-    { "2.23.42.6",                        "MODULE" },
-    { "2.23.42.7",                        "CERT_EXT" },
-    { "2.23.42.7.0",                      "HASHED_ROOT_KEY" },
-    { "2.23.42.7.1",                      "CERTIFICATE_TYPE" },
-    { "2.23.42.7.2",                      "MERCHANT_DATA" },
-    { "2.23.42.7.3",                      "CARD_CERT_REQUIRED" },
-    { "2.23.42.7.4",                      "TUNNELING" },
-    { "2.23.42.7.5",                      "SET_EXTENSIONS" },
-    { "2.23.42.7.6",                      "SET_QUALIFIER" },
-    { "2.23.42.8",                        "BRAND" },
-    { "2.23.42.8.1",                      "IATA_ATA" },
-    { "2.23.42.8.4",                      "VISA" },
-    { "2.23.42.8.5",                      "MASTER_CARD" },
-    { "2.23.42.8.30",                     "DINERS" },
-    { "2.23.42.8.34",                     "AMERICAN_EXPRESS" },
-    { "2.23.42.8.6011",                   "NOVUS" },
-    { "2.23.42.9",                        "VENDOR" },
-    { "2.23.42.9.0",                      "GLOBE_SET" },
-    { "2.23.42.9.1",                      "IBM" },
-    { "2.23.42.9.2",                      "CYBER_CASH" },
-    { "2.23.42.9.3",                      "TERISA" },
-    { "2.23.42.9.4",                      "RSADSI" },
-    { "2.23.42.9.5",                      "VERI_FONE" },
-    { "2.23.42.9.6",                      "TRIN_TECH" },
-    { "2.23.42.9.7",                      "BANK_GATE" },
-    { "2.23.42.9.8",                      "GTE" },
-    { "2.23.42.9.9",                      "COMPU_SOURCE" },
-    { "2.23.42.9.10",                     "GRIFFIN" },
-    { "2.23.42.9.11",                     "CERTICOM" },
-    { "2.23.42.9.12",                     "OSS" },
-    { "2.23.42.9.13",                     "TENTH_MOUNTAIN" },
-    { "2.23.42.9.14",                     "ANTARES" },
-    { "2.23.42.9.15",                     "ECC" },
-    { "2.23.42.9.16",                     "MAITHEAN" },
-    { "2.23.42.9.17",                     "NETSCAPE" },
-    { "2.23.42.9.18",                     "VERISIGN" },
-    { "2.23.42.9.19",                     "BLUE_MONEY" },
-    { "2.23.42.9.20",                     "LACERTE" },
-    { "2.23.42.9.21",                     "FUJITSU" },
-    { "2.23.42.9.22",                     "E_LAB" },
-    { "2.23.42.9.23",                     "ENTRUST" },
-    { "2.23.42.9.24",                     "VI_ANET" },
-    { "2.23.42.9.25",                     "III" },
-    { "2.23.42.9.26",                     "OPEN_MARKET" },
-    { "2.23.42.9.27",                     "LEXEM" },
-    { "2.23.42.9.28",                     "INTERTRADER" },
-    { "2.23.42.9.29",                     "PERSIMMON" },
-    { "2.23.42.9.30",                     "NABLE" },
-    { "2.23.42.9.31",                     "ESPACE_NET" },
-    { "2.23.42.9.32",                     "HITACHI" },
-    { "2.23.42.9.33",                     "MICROSOFT" },
-    { "2.23.42.9.34",                     "NEC" },
-    { "2.23.42.9.35",                     "MITSUBISHI" },
-    { "2.23.42.9.36",                     "NCR" },
-    { "2.23.42.9.37",                     "E_COMM" },
-    { "2.23.42.9.38",                     "GEMPLUS" },
-    { "2.23.42.10",                       "NATIONAL" },
-    { "2.23.42.10.392",                   "JAPAN" },
-    { "2.23.43.1.4",                      "W_TLS_ECC" },
-    { "2.23.43.1.4.1",                    "W_TLS_ECC_CURVE1" },
-    { "2.23.43.1.4.6",                    "W_TLS_ECC_CURVE6" },
-    { "2.23.43.1.4.8",                    "W_TLS_ECC_CURVE8" },
-    { "2.23.43.1.4.9",                    "W_TLS_ECC_CURVE9" },
-    { "2.23.133",                         "T_CPA" },
-    { "2.23.133.1",                       "TCPA_SPEC_VERSION" },
-    { "2.23.133.2",                       "TCPA_ATTRIBUTE" },
-    { "2.23.133.2.1",                     "TCPA_TPM_MANUFACTURER" },
-    { "2.23.133.2.2",                     "TCPA_TPM_MODEL" },
-    { "2.23.133.2.3",                     "TCPA_TPM_VERSION" },
-    { "2.23.133.2.4",                     "TCPA_PLATFORM_MANUFACTURER" },
-    { "2.23.133.2.5",                     "TCPA_PLATFORM_MODEL" },
-    { "2.23.133.2.6",                     "TCPA_PLATFORM_VERSION" },
-    { "2.23.133.2.7",                     "TCPA_COMPONENT_MANUFACTURER" },
-    { "2.23.133.2.8",                     "TCPA_COMPONENT_MODEL" },
-    { "2.23.133.2.9",                     "TCPA_COMPONENT_VERSION" },
-    { "2.23.133.2.10",                    "TCPA_SECURITY_QUALITIES" },
-    { "2.23.133.2.11",                    "TCPA_TPM_PROTECTION_PROFILE" },
-    { "2.23.133.2.12",                    "TCPA_TPM_SECURITY_TARGET" },
-    { "2.23.133.2.13",                    "TCPA_FOUNDATION_PROTECTION_PROFILE" },
-    { "2.23.133.2.14",                    "TCPA_FOUNDATION_SECURITY_TARGET" },
-    { "2.23.133.2.15",                    "TCPA_TPM_ID_LABEL" },
-    { "2.23.133.3",                       "TCPA_PROTOCOL" },
-    { "2.23.133.3.1",                     "TCPA_PRTT_TPM_ID_PROTOCOL" },
-    { "2.23.134.1.4.2.1",                 "POST_SIGNUM_ROOT_QCA" },
-    { "2.23.134.1.2.2.3",                 "POST_SIGNUM_PUBLIC_CA" },
-    { "2.23.134.1.2.1.8.210",             "POST_SIGNUM_COMMERCIAL_SERVER_POLICY" },
-    { "2.23.136.1.1.1",                   "M_RTD_SIGNATURE_DATA" },
-    { "2.54.1775.2",                      "HASHED_ROOT_KEY" },
-    { "2.54.1775.3",                      "CERTIFICATE_TYPE" },
-    { "2.54.1775.4",                      "MERCHANT_DATA" },
-    { "2.54.1775.5",                      "CARD_CERT_REQUIRED" },
-    { "2.54.1775.6",                      "TUNNELING" },
-    { "2.54.1775.7",                      "SET_QUALIFIER" },
-    { "2.54.1775.99",                     "SET_DATA" },
-    { "1.2.40.0.17.1.22",                 "A_TRUST_EV_POLICY" },
-    { "1.3.6.1.4.1.34697.2.1",            "AFFIRM_TRUST_EV_POLICY" },
-    { "1.3.6.1.4.1.34697.2.2",            "AFFIRM_TRUST_EV_POLICY" },
-    { "1.3.6.1.4.1.34697.2.3",            "AFFIRM_TRUST_EV_POLICY" },
-    { "1.3.6.1.4.1.34697.2.4",            "AFFIRM_TRUST_EV_POLICY" },
-    { "2.16.578.1.26.1.3.3",              "BUY_PASS_EV_POLICY" },
-    { "1.3.6.1.4.1.17326.10.14.2.1.2",    "CAMERFIRMA_EV_POLICY" },
-    { "1.3.6.1.4.1.17326.10.8.12.1.2",    "CAMERFIRMA_EV_POLICY" },
-    { "1.3.6.1.4.1.22234.2.5.2.3.1",      "CERT_PLUS_EV_POLICY" },
-    { "1.3.6.1.4.1.6449.1.2.1.5.1",       "COMODO_EV_POLICY" },
-    { "1.3.6.1.4.1.6334.1.100.1",         "CYBERTRUST_EV_POLICY" },
-    { "1.3.6.1.4.1.4788.2.202.1",         "D_TRUST_EV_POLICY" },
-    { "2.16.840.1.114412.2.1",            "DIGI_CERT_EV_POLICY" },
-    { "2.16.528.1.1001.1.1.1.12.6.1.1.1", "DIGI_NOTAR_EV_POLICY" },
-    { "2.16.840.1.114028.10.1.2",         "ENTRUST_EV_POLICY" },
-    { "1.3.6.1.4.1.14370.1.6",            "GEO_TRUST_EV_POLICY" },
-    { "1.3.6.1.4.1.4146.1.1",             "GLOBAL_SIGN_EV_POLICY" },
-    { "2.16.840.1.114413.1.7.23.3",       "GO_DADDY_EV_POLICY" },
-    { "1.3.6.1.4.1.14777.6.1.1",          "IZENPE_EV_POLICY" },
-    { "1.3.6.1.4.1.14777.6.1.2",          "IZENPE_EV_POLICY" },
-    { "1.3.6.1.4.1.782.1.2.1.8.1",        "NETWORK_SOLUTIONS_EV_POLICY" },
-    { "1.3.6.1.4.1.8024.0.2.100.1.2",     "QUO_VADIS_EV_POLICY" },
-    { "1.2.392.200091.100.721.1",         "SECURITY_COMMUNICATION_(SECOM)_EV_POLICY" },
-    { "2.16.840.1.114414.1.7.23.3",       "STARFIELD_EV_POLICY" },
-    { "1.3.6.1.4.1.23223.1.1.1",          "START_COM_EV_POLICY" },
-    { "2.16.756.1.89.1.2.1.1",            "SWISS_SIGN_EV_POLICY" },
-    { "1.3.6.1.4.1.7879.13.24.1",         "T_TELE_SEC_EV_POLICY" },
-    { "2.16.840.1.113733.1.7.48.1",       "THAWTE_EV_POLICY" },
-    { "2.16.840.1.114404.1.1.2.4.1",      "TRUST_WAVE_EV_POLICY" },
-    { "1.3.6.1.4.1.40869.1.1.22.3",       "TWCA_EV_POLICY" },
-    { "2.16.840.1.113733.1.7.23.6",       "VERI_SIGN_EV_POLICY" },
-    { "2.16.840.1.114171.500.9",          "WELLS_FARGO_EV_POLICY" },
-    { "1.3.6.1.4.1.311.3.3.1",            "MS_COUNTER_SIGN" },
-    { "1.3.6.1.4.1.311.10.3.28",          "szOID_PLATFORM_MANIFEST_BINARY_ID" },
-    { "1.3.6.1.4.1.311.2.6.1",            "SPC_RELAXED_PE_MARKER_CHECK_OBJID" },
+  static const std::unordered_map<oid_t, const char*> oid_to_str{
+      {"0.2.262.1.10", "TELESEC"},
+      {"0.2.262.1.10.0", "EXTENSION"},
+      {"0.2.262.1.10.1", "MECHANISM"},
+      {"0.2.262.1.10.1.0", "AUTHENTICATION"},
+      {"0.2.262.1.10.1.0.1", "PASSWORD_AUTHENTICATION"},
+      {"0.2.262.1.10.1.0.2", "PROTECTED_PASSWORD_AUTHENTICATION"},
+      {"0.2.262.1.10.1.0.3", "ONE_WAY_X509_AUTHENTICATION"},
+      {"0.2.262.1.10.1.0.4", "TWO_WAY_X509_AUTHENTICATION"},
+      {"0.2.262.1.10.1.0.5", "THREE_WAY_X509_AUTHENTICATION"},
+      {"0.2.262.1.10.1.0.6", "ONE_WAY_ISO9798_AUTHENTICATION"},
+      {"0.2.262.1.10.1.0.7", "TWO_WAY_ISO9798_AUTHENTICATION"},
+      {"0.2.262.1.10.1.0.8", "TELEKOM_AUTHENTICATION"},
+      {"0.2.262.1.10.1.1", "SIGNATURE"},
+      {"0.2.262.1.10.1.1.1", "MD4_WITH_RSA_AND_ISO9697"},
+      {"0.2.262.1.10.1.1.2", "MD4_WITH_RSA_AND_TELESEC_SIGNATURE_STANDARD"},
+      {"0.2.262.1.10.1.1.3", "MD5_WITH_RSA_AND_ISO9697"},
+      {"0.2.262.1.10.1.1.4", "MD5_WITH_RSA_AND_TELESEC_SIGNATURE_STANDARD"},
+      {"0.2.262.1.10.1.1.5", "RIPEMD160_WITH_RSA_AND_TELEKOM_SIGNATURE_STANDARD"},
+      {"0.2.262.1.10.1.1.9", "HBCI_RSA_SIGNATURE"},
+      {"0.2.262.1.10.1.2", "ENCRYPTION"},
+      {"0.2.262.1.10.1.2.0", "NONE"},
+      {"0.2.262.1.10.1.2.1", "RSA_TELESEC"},
+      {"0.2.262.1.10.1.2.2", "DES"},
+      {"0.2.262.1.10.1.2.2.1", "DES_ECB"},
+      {"0.2.262.1.10.1.2.2.2", "DES_CBC"},
+      {"0.2.262.1.10.1.2.2.3", "DES_OFB"},
+      {"0.2.262.1.10.1.2.2.4", "DES_CFB8"},
+      {"0.2.262.1.10.1.2.2.5", "DES_CFB64"},
+      {"0.2.262.1.10.1.2.3", "DES3"},
+      {"0.2.262.1.10.1.2.3.1", "DES3_ECB"},
+      {"0.2.262.1.10.1.2.3.2", "DES3_CBC"},
+      {"0.2.262.1.10.1.2.3.3", "DES3_OFB"},
+      {"0.2.262.1.10.1.2.3.4", "DES3_CFB8"},
+      {"0.2.262.1.10.1.2.3.5", "DES3_CFB64"},
+      {"0.2.262.1.10.1.2.4", "MAGENTA"},
+      {"0.2.262.1.10.1.2.5", "IDEA"},
+      {"0.2.262.1.10.1.2.5.1", "IDEA_ECB"},
+      {"0.2.262.1.10.1.2.5.2", "IDEA_CBC"},
+      {"0.2.262.1.10.1.2.5.3", "IDEA_OFB"},
+      {"0.2.262.1.10.1.2.5.4", "IDEA_CFB8"},
+      {"0.2.262.1.10.1.2.5.5", "IDEA_CFB64"},
+      {"0.2.262.1.10.1.3", "ONE_WAY_FUNCTION"},
+      {"0.2.262.1.10.1.3.1", "MD4"},
+      {"0.2.262.1.10.1.3.2", "MD5"},
+      {"0.2.262.1.10.1.3.3", "SQ_MOD_NX509"},
+      {"0.2.262.1.10.1.3.4", "SQ_MOD_NISO"},
+      {"0.2.262.1.10.1.3.5", "RIPEMD128"},
+      {"0.2.262.1.10.1.3.6", "HASH_USING_BLOCK_CIPHER"},
+      {"0.2.262.1.10.1.3.7", "MAC"},
+      {"0.2.262.1.10.1.3.8", "RIPEMD160"},
+      {"0.2.262.1.10.1.4", "FEC_FUNCTION"},
+      {"0.2.262.1.10.1.4.1", "REED_SOLOMON"},
+      {"0.2.262.1.10.2", "MODULE"},
+      {"0.2.262.1.10.2.0", "ALGORITHMS"},
+      {"0.2.262.1.10.2.1", "ATTRIBUTE_TYPES"},
+      {"0.2.262.1.10.2.2", "CERTIFICATE_TYPES"},
+      {"0.2.262.1.10.2.3", "MESSAGE_TYPES"},
+      {"0.2.262.1.10.2.4", "PL_PROTOCOL"},
+      {"0.2.262.1.10.2.5", "SME_AND_COMPONENTS_OF_SME"},
+      {"0.2.262.1.10.2.6", "FEC"},
+      {"0.2.262.1.10.2.7", "USEFUL_DEFINITIONS"},
+      {"0.2.262.1.10.2.8", "STEFILES"},
+      {"0.2.262.1.10.2.9", "SADMIB"},
+      {"0.2.262.1.10.2.10", "ELECTRONIC_ORDER"},
+      {"0.2.262.1.10.2.11", "TELESEC_TTP_ASYMMETRIC_APPLICATION"},
+      {"0.2.262.1.10.2.12", "TELESEC_TTP_BASIS_APPLICATION"},
+      {"0.2.262.1.10.2.13", "TELESEC_TTP_MESSAGES"},
+      {"0.2.262.1.10.2.14", "TELESEC_TTP_TIME_STAMP_APPLICATION"},
+      {"0.2.262.1.10.3", "OBJECT_CLASS"},
+      {"0.2.262.1.10.3.0", "TELESEC_OTHER_NAME"},
+      {"0.2.262.1.10.3.1", "DIRECTORY"},
+      {"0.2.262.1.10.3.2", "DIRECTORY_TYPE"},
+      {"0.2.262.1.10.3.3", "DIRECTORY_GROUP"},
+      {"0.2.262.1.10.3.4", "DIRECTORY_USER"},
+      {"0.2.262.1.10.3.5", "SYMMETRIC_KEY_ENTRY"},
+      {"0.2.262.1.10.4", "PACKAGE"},
+      {"0.2.262.1.10.5", "PARAMETER"},
+      {"0.2.262.1.10.6", "NAME_BINDING"},
+      {"0.2.262.1.10.7", "ATTRIBUTE"},
+      {"0.2.262.1.10.7.0", "APPLICATION_GROUP_IDENTIFIER"},
+      {"0.2.262.1.10.7.1", "CERTIFICATE_TYPE"},
+      {"0.2.262.1.10.7.2", "TELESEC_CERTIFICATE"},
+      {"0.2.262.1.10.7.3", "CERTIFICATE_NUMBER"},
+      {"0.2.262.1.10.7.4", "CERTIFICATE_REVOCATION_LIST"},
+      {"0.2.262.1.10.7.5", "CREATION_DATE"},
+      {"0.2.262.1.10.7.6", "ISSUER"},
+      {"0.2.262.1.10.7.7", "NAMING_AUTHORITY"},
+      {"0.2.262.1.10.7.8", "PUBLIC_KEY_DIRECTORY"},
+      {"0.2.262.1.10.7.9", "SECURITY_DOMAIN"},
+      {"0.2.262.1.10.7.10", "SUBJECT"},
+      {"0.2.262.1.10.7.11", "TIME_OF_REVOCATION"},
+      {"0.2.262.1.10.7.12", "USER_GROUP_REFERENCE"},
+      {"0.2.262.1.10.7.13", "VALIDITY"},
+      {"0.2.262.1.10.7.14", "ZERT93"},
+      {"0.2.262.1.10.7.15", "SECURITY_MESS_ENV"},
+      {"0.2.262.1.10.7.16", "ANONYMIZED_PUBLIC_KEY_DIRECTORY"},
+      {"0.2.262.1.10.7.17", "TELESEC_GIVEN_NAME"},
+      {"0.2.262.1.10.7.18", "NAME_ADDITIONS"},
+      {"0.2.262.1.10.7.19", "TELESEC_POSTAL_CODE"},
+      {"0.2.262.1.10.7.20", "NAME_DISTINGUISHER"},
+      {"0.2.262.1.10.7.21", "TELESEC_CERTIFICATE_LIST"},
+      {"0.2.262.1.10.7.22", "TELETRUST_CERTIFICATE_LIST"},
+      {"0.2.262.1.10.7.23", "X509_CERTIFICATE_LIST"},
+      {"0.2.262.1.10.7.24", "TIME_OF_ISSUE"},
+      {"0.2.262.1.10.7.25", "PHYSICAL_CARD_NUMBER"},
+      {"0.2.262.1.10.7.26", "FILE_TYPE"},
+      {"0.2.262.1.10.7.27", "CTL_FILE_IS_ARCHIVE"},
+      {"0.2.262.1.10.7.28", "EMAIL_ADDRESS"},
+      {"0.2.262.1.10.7.29", "CERTIFICATE_TEMPLATE_LIST"},
+      {"0.2.262.1.10.7.30", "DIRECTORY_NAME"},
+      {"0.2.262.1.10.7.31", "DIRECTORY_TYPE_NAME"},
+      {"0.2.262.1.10.7.32", "DIRECTORY_GROUP_NAME"},
+      {"0.2.262.1.10.7.33", "DIRECTORY_USER_NAME"},
+      {"0.2.262.1.10.7.34", "REVOCATION_FLAG"},
+      {"0.2.262.1.10.7.35", "SYMMETRIC_KEY_ENTRY_NAME"},
+      {"0.2.262.1.10.7.36", "GL_NUMBER"},
+      {"0.2.262.1.10.7.37", "GO_NUMBER"},
+      {"0.2.262.1.10.7.38", "G_KEY_DATA"},
+      {"0.2.262.1.10.7.39", "Z_KEY_DATA"},
+      {"0.2.262.1.10.7.40", "KT_KEY_DATA"},
+      {"0.2.262.1.10.7.41", "KT_KEY_NUMBER"},
+      {"0.2.262.1.10.7.51", "TIME_OF_REVOCATION_GEN"},
+      {"0.2.262.1.10.7.52", "LIABILITY_TEXT"},
+      {"0.2.262.1.10.8", "ATTRIBUTE_GROUP"},
+      {"0.2.262.1.10.9", "ACTION"},
+      {"0.2.262.1.10.10", "NOTIFICATION"},
+      {"0.2.262.1.10.11", "SNMP_MIBS"},
+      {"0.2.262.1.10.11.1", "SECURITY_APPLICATION"},
+      {"0.2.262.1.10.12", "CERT_AND_CRL_EXTENSION_DEFINITIONS"},
+      {"0.2.262.1.10.12.0", "LIABILITY_LIMITATION_FLAG"},
+      {"0.2.262.1.10.12.1", "TELESEC_CERT_ID_EXT"},
+      {"0.2.262.1.10.12.2", "TELESEC_POLICY_IDENTIFIER"},
+      {"0.2.262.1.10.12.3", "TELESEC_POLICY_QUALIFIER_ID"},
+      {"0.2.262.1.10.12.4", "TELESEC_CRL_FILTERED_EXT"},
+      {"0.2.262.1.10.12.5", "TELESEC_CRL_FILTER_EXT"},
+      {"0.2.262.1.10.12.6", "TELESEC_NAMING_AUTHORITY_EXT"},
+      {"0.4.0.127.0.7", "BSI"},
+      {"0.4.0.127.0.7.1", "BSI_ECC"},
+      {"0.4.0.127.0.7.1.1", "BSIFIELD_TYPE"},
+      {"0.4.0.127.0.7.1.1.1", "BSI_PRIME_FIELD"},
+      {"0.4.0.127.0.7.1.1.2", "BSI_CHARACTERISTIC_TWO_FIELD"},
+      {"0.4.0.127.0.7.1.1.2.2", "BSI_ECTLV_KEY_FORMAT"},
+      {"0.4.0.127.0.7.1.1.2.2.1", "BSI_ECTLV_PUBLIC_KEY"},
+      {"0.4.0.127.0.7.1.1.2.3", "BSI_CHARACTERISTIC_TWO_BASIS"},
+      {"0.4.0.127.0.7.1.1.2.3.1", "BSI_GN_BASIS"},
+      {"0.4.0.127.0.7.1.1.2.3.2", "BSI_TP_BASIS"},
+      {"0.4.0.127.0.7.1.1.2.3.3", "BSI_PP_BASIS"},
+      {"0.4.0.127.0.7.1.1.4.1", "BSI_ECDSA_SIGNATURES"},
+      {"0.4.0.127.0.7.1.1.4.1.1", "BSI_ECDSA_WITH_SHA1"},
+      {"0.4.0.127.0.7.1.1.4.1.2", "BSI_ECDSA_WITH_SHA224"},
+      {"0.4.0.127.0.7.1.1.4.1.3", "BSI_ECDSA_WITH_SHA256"},
+      {"0.4.0.127.0.7.1.1.4.1.4", "BSI_ECDSA_WITH_SHA384"},
+      {"0.4.0.127.0.7.1.1.4.1.5", "BSI_ECDSA_WITH_SHA512"},
+      {"0.4.0.127.0.7.1.1.4.1.6", "BSI_ECDSA_WITH_RIPEMD160"},
+      {"0.4.0.127.0.7.1.1.5.1.1", "BSI_ECKA_EG_X963_KDF"},
+      {"0.4.0.127.0.7.1.1.5.1.1.1", "BSI_ECKA_EG_X963_KDF_WITH_SHA1"},
+      {"0.4.0.127.0.7.1.1.5.1.1.2", "BSI_ECKA_EG_X963_KDF_WITH_SHA224"},
+      {"0.4.0.127.0.7.1.1.5.1.1.3", "BSI_ECKA_EG_X963_KDF_WITH_SHA256"},
+      {"0.4.0.127.0.7.1.1.5.1.1.4", "BSI_ECKA_EG_X963_KDF_WITH_SHA384"},
+      {"0.4.0.127.0.7.1.1.5.1.1.5", "BSI_ECKA_EG_X963_KDF_WITH_SHA512"},
+      {"0.4.0.127.0.7.1.1.5.1.1.6", "BSI_ECKA_EG_X963_KDF_WITH_RIPEMD160"},
+      {"0.4.0.127.0.7.1.1.5.1.2", "BSI_ECKA_EG_SESSION_KDF"},
+      {"0.4.0.127.0.7.1.1.5.1.2.1", "BSI_ECKA_EG_SESSION_KDF_WITH3_DES"},
+      {"0.4.0.127.0.7.1.1.5.1.2.2", "BSI_ECKA_EG_SESSION_KDF_WITH_AES128"},
+      {"0.4.0.127.0.7.1.1.5.1.2.3", "BSI_ECKA_EG_SESSION_KDF_WITH_AES192"},
+      {"0.4.0.127.0.7.1.1.5.1.2.4", "BSI_ECKA_EG_SESSION_KDF_WITH_AES256"},
+      {"0.4.0.127.0.7.1.1.5.2", "BSI_ECKA_DH"},
+      {"0.4.0.127.0.7.1.1.5.2.1", "BSI_ECKA_DHX963_KDF"},
+      {"0.4.0.127.0.7.1.1.5.2.1.1", "BSI_ECKA_DHX963_KDF_WITH_SHA1"},
+      {"0.4.0.127.0.7.1.1.5.2.1.2", "BSI_ECKA_DHX963_KDF_WITH_SHA224"},
+      {"0.4.0.127.0.7.1.1.5.2.1.3", "BSI_ECKA_DHX963_KDF_WITH_SHA256"},
+      {"0.4.0.127.0.7.1.1.5.2.1.4", "BSI_ECKA_DHX963_KDF_WITH_SHA384"},
+      {"0.4.0.127.0.7.1.1.5.2.1.5", "BSI_ECKA_DHX963_KDF_WITH_SHA512"},
+      {"0.4.0.127.0.7.1.1.5.2.1.6", "BSI_ECKA_DHX963_KDF_WITH_RIPEMD160"},
+      {"0.4.0.127.0.7.1.1.5.2.2", "BSI_ECKA_DH_SESSION_KDF"},
+      {"0.4.0.127.0.7.1.1.5.2.2.1", "BSI_ECKA_DH_SESSION_KDF_WITH3_DES"},
+      {"0.4.0.127.0.7.1.1.5.2.2.2", "BSI_ECKA_DH_SESSION_KDF_WITH_AES128"},
+      {"0.4.0.127.0.7.1.1.5.2.2.3", "BSI_ECKA_DH_SESSION_KDF_WITH_AES192"},
+      {"0.4.0.127.0.7.1.1.5.2.2.4", "BSI_ECKA_DH_SESSION_KDF_WITH_AES256"},
+      {"0.4.0.127.0.7.1.2", "BSI_EC_KEY_TYPE"},
+      {"0.4.0.127.0.7.1.2.1", "BSI_EC_PUBLIC_KEY"},
+      {"0.4.0.127.0.7.1.5.1", "BSI_KAEG"},
+      {"0.4.0.127.0.7.1.5.1.1", "BSI_KAEG_WITH_X963_KDF"},
+      {"0.4.0.127.0.7.1.5.1.2", "BSI_KAEG_WITH3_DESKDF"},
+      {"0.4.0.127.0.7.2.2.1", "BSI_PK"},
+      {"0.4.0.127.0.7.2.2.1.1", "BSI_PK_DH"},
+      {"0.4.0.127.0.7.2.2.1.2", "BSI_PK_ECDH"},
+      {"0.4.0.127.0.7.2.2.2", "BSI_TA"},
+      {"0.4.0.127.0.7.2.2.2.1", "BSI_TA_RSA"},
+      {"0.4.0.127.0.7.2.2.2.1.1", "BSI_TA_RS_AV1_5_SHA1"},
+      {"0.4.0.127.0.7.2.2.2.1.2", "BSI_TA_RS_AV1_5_SHA256"},
+      {"0.4.0.127.0.7.2.2.2.1.3", "BSI_TA_RSAPSS_SHA1"},
+      {"0.4.0.127.0.7.2.2.2.1.4", "BSI_TA_RSAPSS_SHA256"},
+      {"0.4.0.127.0.7.2.2.2.1.5", "BSI_TA_RS_AV1_5_SHA512"},
+      {"0.4.0.127.0.7.2.2.2.1.6", "BSI_TA_RSAPSS_SHA512"},
+      {"0.4.0.127.0.7.2.2.2.2", "BSI_TA_ECDSA"},
+      {"0.4.0.127.0.7.2.2.2.2.1", "BSI_TA_ECDSA_SHA1"},
+      {"0.4.0.127.0.7.2.2.2.2.2", "BSI_TA_ECDSA_SHA224"},
+      {"0.4.0.127.0.7.2.2.2.2.3", "BSI_TA_ECDSA_SHA256"},
+      {"0.4.0.127.0.7.2.2.2.2.4", "BSI_TA_ECDSA_SHA384"},
+      {"0.4.0.127.0.7.2.2.2.2.5", "BSI_TA_ECDSA_SHA512"},
+      {"0.4.0.127.0.7.2.2.3", "BSI_CA"},
+      {"0.4.0.127.0.7.2.2.3.1", "BSI_CA_DH"},
+      {"0.4.0.127.0.7.2.2.3.1.1", "BSI_CA_DH_3_DES_CBC_CBC"},
+      {"0.4.0.127.0.7.2.2.3.1.2", "BSI_CA_DH_AES_CBC_CMAC_128"},
+      {"0.4.0.127.0.7.2.2.3.1.3", "BSI_CA_DH_AES_CBC_CMAC_192"},
+      {"0.4.0.127.0.7.2.2.3.1.4", "BSI_CA_DH_AES_CBC_CMAC_256"},
+      {"0.4.0.127.0.7.2.2.3.2", "BSI_CA_ECDH"},
+      {"0.4.0.127.0.7.2.2.3.2.1", "BSI_CA_ECDH_3_DES_CBC_CBC"},
+      {"0.4.0.127.0.7.2.2.3.2.2", "BSI_CA_ECDH_AES_CBC_CMAC_128"},
+      {"0.4.0.127.0.7.2.2.3.2.3", "BSI_CA_ECDH_AES_CBC_CMAC_192"},
+      {"0.4.0.127.0.7.2.2.3.2.4", "BSI_CA_ECDH_AES_CBC_CMAC_256"},
+      {"0.4.0.127.0.7.2.2.4", "BSI_PACE"},
+      {"0.4.0.127.0.7.2.2.4.1", "BSI_PACE_DH_GM"},
+      {"0.4.0.127.0.7.2.2.4.1.1", "BSI_PACE_DH_GM_3_DES_CBC_CBC"},
+      {"0.4.0.127.0.7.2.2.4.1.2", "BSI_PACE_DH_GM_AES_CBC_CMAC_128"},
+      {"0.4.0.127.0.7.2.2.4.1.3", "BSI_PACE_DH_GM_AES_CBC_CMAC_192"},
+      {"0.4.0.127.0.7.2.2.4.1.4", "BSI_PACE_DH_GM_AES_CBC_CMAC_256"},
+      {"0.4.0.127.0.7.2.2.4.2", "BSI_PACE_ECDH_GM"},
+      {"0.4.0.127.0.7.2.2.4.2.1", "BSI_PACE_ECDH_GM_3_DES_CBC_CBC"},
+      {"0.4.0.127.0.7.2.2.4.2.2", "BSI_PACE_ECDH_GM_AES_CBC_CMAC_128"},
+      {"0.4.0.127.0.7.2.2.4.2.3", "BSI_PACE_ECDH_GM_AES_CBC_CMAC_192"},
+      {"0.4.0.127.0.7.2.2.4.2.4", "BSI_PACE_ECDH_GM_AES_CBC_CMAC_256"},
+      {"0.4.0.127.0.7.2.2.4.3", "BSI_PACE_DH_IM"},
+      {"0.4.0.127.0.7.2.2.4.3.1", "BSI_PACE_DH_IM_3_DES_CBC_CBC"},
+      {"0.4.0.127.0.7.2.2.4.3.2", "BSI_PACE_DH_IM_AES_CBC_CMAC_128"},
+      {"0.4.0.127.0.7.2.2.4.3.3", "BSI_PACE_DH_IM_AES_CBC_CMAC_192"},
+      {"0.4.0.127.0.7.2.2.4.3.4", "BSI_PACE_DH_IM_AES_CBC_CMAC_256"},
+      {"0.4.0.127.0.7.2.2.4.4", "BSI_PACE_ECDH_IM"},
+      {"0.4.0.127.0.7.2.2.4.4.1", "BSI_PACE_ECDH_IM_3_DES_CBC_CBC"},
+      {"0.4.0.127.0.7.2.2.4.4.2", "BSI_PACE_ECDH_IM_AES_CBC_CMAC_128"},
+      {"0.4.0.127.0.7.2.2.4.4.3", "BSI_PACE_ECDH_IM_AES_CBC_CMAC_192"},
+      {"0.4.0.127.0.7.2.2.4.4.4", "BSI_PACE_ECDH_IM_AES_CBC_CMAC_256"},
+      {"0.4.0.127.0.7.2.2.5", "BSI_RI"},
+      {"0.4.0.127.0.7.2.2.5.1", "BSI_RI_DH"},
+      {"0.4.0.127.0.7.2.2.5.1.1", "BSI_RI_DH_SHA1"},
+      {"0.4.0.127.0.7.2.2.5.1.2", "BSI_RI_DH_SHA224"},
+      {"0.4.0.127.0.7.2.2.5.1.3", "BSI_RI_DH_SHA256"},
+      {"0.4.0.127.0.7.2.2.5.1.4", "BSI_RI_DH_SHA384"},
+      {"0.4.0.127.0.7.2.2.5.1.5", "BSI_RI_DH_SHA512"},
+      {"0.4.0.127.0.7.2.2.5.2", "BSI_RI_ECDH"},
+      {"0.4.0.127.0.7.2.2.5.2.1", "BSI_RI_ECDH_SHA1"},
+      {"0.4.0.127.0.7.2.2.5.2.2", "BSI_RI_ECDH_SHA224"},
+      {"0.4.0.127.0.7.2.2.5.2.3", "BSI_RI_ECDH_SHA256"},
+      {"0.4.0.127.0.7.2.2.5.2.4", "BSI_RI_ECDH_SHA384"},
+      {"0.4.0.127.0.7.2.2.5.2.5", "BSI_RI_ECDH_SHA512"},
+      {"0.4.0.127.0.7.2.2.6", "BSI_CARD_INFO"},
+      {"0.4.0.127.0.7.2.2.7", "BSI_EID_SECURITY"},
+      {"0.4.0.127.0.7.2.2.8", "BSI_PT"},
+      {"0.4.0.127.0.7.3.1.2", "BSI_EAC_ROLES"},
+      {"0.4.0.127.0.7.3.1.2.1", "BSI_EAC_ROLES_IS"},
+      {"0.4.0.127.0.7.3.1.2.2", "BSI_EAC_ROLES_AT"},
+      {"0.4.0.127.0.7.3.1.2.3", "BSI_EAC_ROLES_ST"},
+      {"0.4.0.127.0.7.3.1.3", "BSI_T_AV2CE"},
+      {"0.4.0.127.0.7.3.1.3.1", "BSI_T_AV2CE_DESCRIPTION"},
+      {"0.4.0.127.0.7.3.1.3.1.1", "BSI_T_AV2CE_DESCRIPTION_PLAIN_TEXT"},
+      {"0.4.0.127.0.7.3.1.3.1.2", "BSI_T_AV2CE_DESCRIPTION_IA5_STRING"},
+      {"0.4.0.127.0.7.3.1.3.1.3", "BSI_T_AV2CE_DESCRIPTION_OCTET_STRING"},
+      {"0.4.0.127.0.7.3.1.3.2", "BSI_T_AV2CE_TERMINAL_SECTOR"},
+      {"0.4.0.127.0.7.3.1.4", "BSI_AUX_DATA"},
+      {"0.4.0.127.0.7.3.1.4.1", "BSI_AUX_DATA_BIRTHDAY"},
+      {"0.4.0.127.0.7.3.1.4.2", "BSI_AUX_DATA_EXPIRE_DATE"},
+      {"0.4.0.127.0.7.3.1.4.3", "BSI_AUX_DATA_COMMUNITY_ID"},
+      {"0.4.0.127.0.7.3.1.5", "BSI_DEFECT_LIST"},
+      {"0.4.0.127.0.7.3.1.5.1", "BSI_DEFECT_AUTH_DEFECT"},
+      {"0.4.0.127.0.7.3.1.5.1.1", "BSI_DEFECT_CERT_REVOKED"},
+      {"0.4.0.127.0.7.3.1.5.1.2", "BSI_DEFECT_CERT_REPLACED"},
+      {"0.4.0.127.0.7.3.1.5.1.3", "BSI_DEFECT_CHIP_AUTH_KEY_REVOKED"},
+      {"0.4.0.127.0.7.3.1.5.1.4", "BSI_DEFECT_ACTIVE_AUTH_KEY_REVOKED"},
+      {"0.4.0.127.0.7.3.1.5.2", "BSI_DEFECT_E_PASSPORT_DEFECT"},
+      {"0.4.0.127.0.7.3.1.5.2.1", "BSI_DEFECT_E_PASSPORT_DG_MALFORMED"},
+      {"0.4.0.127.0.7.3.1.5.2.2", "BSI_DEFECT_SOD_INVALID"},
+      {"0.4.0.127.0.7.3.1.5.3", "BSI_DEFECT_EID_DEFECT"},
+      {"0.4.0.127.0.7.3.1.5.3.1", "BSI_DEFECT_EIDDG_MALFORMED"},
+      {"0.4.0.127.0.7.3.1.5.3.2", "BSI_DEFECT_EID_INTEGRITY"},
+      {"0.4.0.127.0.7.3.1.5.4", "BSI_DEFECT_DOCUMENT_DEFECT"},
+      {"0.4.0.127.0.7.3.1.5.4.1", "BSI_DEFECT_CARD_SECURITY_MALFORMED"},
+      {"0.4.0.127.0.7.3.1.5.4.2", "BSI_DEFECT_CHIP_SECURITY_MALFORMED"},
+      {"0.4.0.127.0.7.3.1.5.4.3", "BSI_DEFECT_POWER_DOWN_REQ"},
+      {"0.4.0.127.0.7.3.1.6", "BSI_LIST_CONTENT_DESCRIPTION"},
+      {"0.4.0.127.0.7.3.2.1", "BSI_SECURITY_OBJECT"},
+      {"0.4.0.127.0.7.3.2.2", "BSI_BLACK_LIST"},
+      {"0.4.0.1862", "ETSI_QCS_PROFILE"},
+      {"0.4.0.1862.1", "ETSI_QCS"},
+      {"0.4.0.1862.1.1", "ETSI_QCS_COMPLIANCE"},
+      {"0.4.0.1862.1.2", "ETSI_QCS_LIMIT_VALUE"},
+      {"0.4.0.1862.1.3", "ETSI_QCS_RETENTION_PERIOD"},
+      {"0.4.0.1862.1.4", "ETSI_QCS_QC_SSCD"},
+      {"0.9.2342.19200300.100.1.1", "USER_ID"},
+      {"0.9.2342.19200300.100.1.3", "RFC822_MAILBOX"},
+      {"0.9.2342.19200300.100.1.25", "DOMAIN_COMPONENT"},
+      {"1.0.10118.3.0.49", "RIPEMD160"},
+      {"1.0.10118.3.0.50", "RIPEMD128"},
+      {"1.0.10118.3.0.55", "WHIRLPOOL"},
+      {"1.2.36.1.3.1.1.1", "QGPKI"},
+      {"1.2.36.1.3.1.1.1.1", "QGPKI_POLICIES"},
+      {"1.2.36.1.3.1.1.1.1.1", "QGPKI_MED_INTERMED_CA"},
+      {"1.2.36.1.3.1.1.1.1.1.1", "QGPKI_MED_INTERMED_INDIVIDUAL"},
+      {"1.2.36.1.3.1.1.1.1.1.2", "QGPKI_MED_INTERMED_DEVICE_CONTROL"},
+      {"1.2.36.1.3.1.1.1.1.1.3", "QGPKI_MED_INTERMED_DEVICE"},
+      {"1.2.36.1.3.1.1.1.1.1.4", "QGPKI_MED_INTERMED_AUTHORISED_PARTY"},
+      {"1.2.36.1.3.1.1.1.1.1.5", "QGPKI_MED_INTERMED_DEVICE_SYSTEM"},
+      {"1.2.36.1.3.1.1.1.1.2", "QGPKI_MED_ISSUING_CA"},
+      {"1.2.36.1.3.1.1.1.1.2.1", "QGPKI_MED_ISSUING_INDIVIDUAL"},
+      {"1.2.36.1.3.1.1.1.1.2.2", "QGPKI_MED_ISSUING_DEVICE_CONTROL"},
+      {"1.2.36.1.3.1.1.1.1.2.3", "QGPKI_MED_ISSUING_DEVICE"},
+      {"1.2.36.1.3.1.1.1.1.2.4", "QGPKI_MED_ISSUING_AUTHORISED_PARTY"},
+      {"1.2.36.1.3.1.1.1.1.2.5", "QGPKI_MED_ISSUING_CLIENT_AUTH"},
+      {"1.2.36.1.3.1.1.1.1.2.6", "QGPKI_MED_ISSUING_SERVER_AUTH"},
+      {"1.2.36.1.3.1.1.1.1.2.7", "QGPKI_MED_ISSUING_DATA_PROT"},
+      {"1.2.36.1.3.1.1.1.1.2.8", "QGPKI_MED_ISSUING_TOKEN_AUTH"},
+      {"1.2.36.1.3.1.1.1.1.3", "QGPKI_BASIC_INTERMED_CA"},
+      {"1.2.36.1.3.1.1.1.1.3.1", "QGPKI_BASIC_INTERMED_DEVICE_SYSTEM"},
+      {"1.2.36.1.3.1.1.1.1.4", "QGPKI_BASIC_ISSUING_CA"},
+      {"1.2.36.1.3.1.1.1.1.4.1", "QGPKI_BASIC_ISSUING_CLIENT_AUTH"},
+      {"1.2.36.1.3.1.1.1.1.4.2", "QGPKI_BASIC_ISSUING_SERVER_AUTH"},
+      {"1.2.36.1.3.1.1.1.1.4.3", "QGPKI_BASIC_ISSUING_DATA_SIGNING"},
+      {"1.2.36.1.3.1.1.1.2", "QGPKI_ASSURANCE_LEVEL"},
+      {"1.2.36.1.3.1.1.1.2.1", "QGPKI_ASSURANCE_RUDIMENTARY"},
+      {"1.2.36.1.3.1.1.1.2.2", "QGPKI_ASSURANCE_BASIC"},
+      {"1.2.36.1.3.1.1.1.2.3", "QGPKI_ASSURANCE_MEDIUM"},
+      {"1.2.36.1.3.1.1.1.2.4", "QGPKI_ASSURANCE_HIGH"},
+      {"1.2.36.1.3.1.1.1.3", "QGPKI_CERT_FUNCTION"},
+      {"1.2.36.1.3.1.1.1.3.1", "QGPKI_FUNCTION_INDIVIDUAL"},
+      {"1.2.36.1.3.1.1.1.3.2", "QGPKI_FUNCTION_DEVICE"},
+      {"1.2.36.1.3.1.1.1.3.3", "QGPKI_FUNCTION_AUTHORISED_PARTY"},
+      {"1.2.36.1.3.1.1.1.3.4", "QGPKI_FUNCTION_DEVICE_CONTROL"},
+      {"1.2.36.1.3.1.2", "QPSPKI"},
+      {"1.2.36.1.3.1.2.1", "QPSPKI_POLICIES"},
+      {"1.2.36.1.3.1.2.1.2", "QPSPKI_POLICY_BASIC"},
+      {"1.2.36.1.3.1.2.1.3", "QPSPKI_POLICY_MEDIUM"},
+      {"1.2.36.1.3.1.2.1.4", "QPSPKI_POLICY_HIGH"},
+      {"1.2.36.1.3.1.3.2", "QTMRPKI"},
+      {"1.2.36.1.3.1.3.2.1", "QTMRPKI_POLICIES"},
+      {"1.2.36.1.3.1.3.2.2", "QTMRPKI_PURPOSE"},
+      {"1.2.36.1.3.1.3.2.2.1", "QTMRPKI_INDIVIDUAL"},
+      {"1.2.36.1.3.1.3.2.2.2", "QTMRPKI_DEVICE_CONTROL"},
+      {"1.2.36.1.3.1.3.2.2.3", "QTMRPKI_DEVICE"},
+      {"1.2.36.1.3.1.3.2.2.4", "QTMRPKI_AUTHORISED_PARTY"},
+      {"1.2.36.1.3.1.3.2.2.5", "QTMRPKI_DEVICE_SYSTEM"},
+      {"1.2.36.1.3.1.3.2.3", "QTMRPKI_DEVICE"},
+      {"1.2.36.1.3.1.3.2.3.1", "QTMRPKI_DRIVER_LICENSE"},
+      {"1.2.36.1.3.1.3.2.3.2", "QTMRPKI_INDUSTRY_AUTHORITY"},
+      {"1.2.36.1.3.1.3.2.3.3", "QTMRPKI_MARINE_LICENSE"},
+      {"1.2.36.1.3.1.3.2.3.4", "QTMRPKI_ADULT_PROOF_OF_AGE"},
+      {"1.2.36.1.3.1.3.2.3.5", "QTMRPKI_SAM"},
+      {"1.2.36.1.3.1.3.2.4", "QTMRPKI_AUTHORISED_PARTY"},
+      {"1.2.36.1.3.1.3.2.4.1", "QTMRPKI_TRANSPORT_INSPECTOR"},
+      {"1.2.36.1.3.1.3.2.4.2", "QTMRPKI_POLICE_OFFICER"},
+      {"1.2.36.1.3.1.3.2.4.3", "QTMRPKI_SYSTEM"},
+      {"1.2.36.1.3.1.3.2.4.4", "QTMRPKI_LIQUOR_LICENSING_INSPECTOR"},
+      {"1.2.36.1.3.1.3.2.4.5", "QTMRPKI_MARINE_ENFORCEMENT_OFFICER"},
+      {"1.2.36.1.333.1", "AUSTRALIAN_BUSINESS_NUMBER"},
+      {"1.2.36.68980861.1.1.2", "SIGNET_PERSONAL"},
+      {"1.2.36.68980861.1.1.3", "SIGNET_BUSINESS"},
+      {"1.2.36.68980861.1.1.4", "SIGNET_LEGAL"},
+      {"1.2.36.68980861.1.1.10", "SIGNET_PILOT"},
+      {"1.2.36.68980861.1.1.11", "SIGNET_INTRA_NET"},
+      {"1.2.36.68980861.1.1.20", "SIGNET_POLICY"},
+      {"1.2.36.75878867.1.100.1.1", "CERTIFICATES_AUSTRALIA_POLICY"},
+      {"1.2.392.200011.61.1.1.1", "MITSUBISHI_SECURITY_ALGORITHM"},
+      {"1.2.392.200011.61.1.1.1.1", "MISTY1_CBC"},
+      {"1.2.410.200004.1", "KISA_ALGORITHM"},
+      {"1.2.410.200004.1.1", "KCDSA"},
+      {"1.2.410.200004.1.2", "HAS160"},
+      {"1.2.410.200004.1.3", "SEED_ECB"},
+      {"1.2.410.200004.1.4", "SEED_CBC"},
+      {"1.2.410.200004.1.5", "SEED_OFB"},
+      {"1.2.410.200004.1.6", "SEED_CFB"},
+      {"1.2.410.200004.1.7", "SEED_MAC"},
+      {"1.2.410.200004.1.8", "KCDSA_WITH_HAS160"},
+      {"1.2.410.200004.1.9", "KCDSA_WITH_SHA1"},
+      {"1.2.410.200004.1.10", "PBE_WITH_HAS160_AND_SEED_ECB"},
+      {"1.2.410.200004.1.11", "PBE_WITH_HAS160_AND_SEED_CBC"},
+      {"1.2.410.200004.1.12", "PBE_WITH_HAS160_AND_SEED_CFB"},
+      {"1.2.410.200004.1.13", "PBE_WITH_HAS160_AND_SEED_OFB"},
+      {"1.2.410.200004.1.14", "PBE_WITH_SHA1_AND_SEED_ECB"},
+      {"1.2.410.200004.1.15", "PBE_WITH_SHA1_AND_SEED_CBC"},
+      {"1.2.410.200004.1.16", "PBE_WITH_SHA1_AND_SEED_CFB"},
+      {"1.2.410.200004.1.17", "PBE_WITH_SHA1_AND_SEED_OFB"},
+      {"1.2.410.200004.1.20", "RSA_WITH_HAS160"},
+      {"1.2.410.200004.1.21", "KCDSA1"},
+      {"1.2.410.200004.2", "NPKI_CP"},
+      {"1.2.410.200004.2.1", "NPKI_SIGNATURE_POLICY"},
+      {"1.2.410.200004.3", "NPKI_KP"},
+      {"1.2.410.200004.4", "NPKI_AT"},
+      {"1.2.410.200004.5", "NPKI_LCA"},
+      {"1.2.410.200004.5.1", "NPKI_SIGN_KOREA"},
+      {"1.2.410.200004.5.2", "NPKI_SIGN_GATE"},
+      {"1.2.410.200004.5.3", "NPKI_NCA_SIGN"},
+      {"1.2.410.200004.6", "NPKI_ON"},
+      {"1.2.410.200004.7", "NPKI_APP"},
+      {"1.2.410.200004.7.1", "NPKI_SMIME"},
+      {"1.2.410.200004.7.1.1", "NPKI_SMIME_ALGO"},
+      {"1.2.410.200004.7.1.1.1", "NPKI_CMS_SEED_WRAP"},
+      {"1.2.410.200004.10", "NPKI"},
+      {"1.2.410.200004.10.1", "NPKI_ATTRIBUTE"},
+      {"1.2.410.200004.10.1.1", "NPKI_IDENTIFY_DATA"},
+      {"1.2.410.200004.10.1.1.1", "NPKI_VID"},
+      {"1.2.410.200004.10.1.1.2", "NPKI_ENCRYPTED_VID"},
+      {"1.2.410.200004.10.1.1.3", "NPKI_RANDOM_NUM"},
+      {"1.2.410.200004.10.1.1.4", "NPKI_VID"},
+      {"1.2.410.200046.1.1", "ARIA1_ALGORITHM_MODES"},
+      {"1.2.410.200046.1.1.1", "ARIA128_ECB"},
+      {"1.2.410.200046.1.1.2", "ARIA128_CBC"},
+      {"1.2.410.200046.1.1.3", "ARIA128_CFB"},
+      {"1.2.410.200046.1.1.4", "ARIA128_OFB"},
+      {"1.2.410.200046.1.1.5", "ARIA128_CTR"},
+      {"1.2.410.200046.1.1.6", "ARIA192_ECB"},
+      {"1.2.410.200046.1.1.7", "ARIA192_CBC"},
+      {"1.2.410.200046.1.1.8", "ARIA192_CFB"},
+      {"1.2.410.200046.1.1.9", "ARIA192_OFB"},
+      {"1.2.410.200046.1.1.10", "ARIA192_CTR"},
+      {"1.2.410.200046.1.1.11", "ARIA256_ECB"},
+      {"1.2.410.200046.1.1.12", "ARIA256_CBC"},
+      {"1.2.410.200046.1.1.13", "ARIA256_CFB"},
+      {"1.2.410.200046.1.1.14", "ARIA256_OFB"},
+      {"1.2.410.200046.1.1.15", "ARIA256_CTR"},
+      {"1.2.410.200046.1.1.21", "ARIA128_CMAC"},
+      {"1.2.410.200046.1.1.22", "ARIA192_CMAC"},
+      {"1.2.410.200046.1.1.23", "ARIA256_CMAC"},
+      {"1.2.410.200046.1.1.31", "ARIA128_OCB2"},
+      {"1.2.410.200046.1.1.32", "ARIA192_OCB2"},
+      {"1.2.410.200046.1.1.33", "ARIA256_OCB2"},
+      {"1.2.410.200046.1.1.34", "ARIA128_GCM"},
+      {"1.2.410.200046.1.1.35", "ARIA192_GCM"},
+      {"1.2.410.200046.1.1.36", "ARIA256_GCM"},
+      {"1.2.410.200046.1.1.37", "ARIA128_CCM"},
+      {"1.2.410.200046.1.1.38", "ARIA192_CCM"},
+      {"1.2.410.200046.1.1.39", "ARIA256_CCM"},
+      {"1.2.410.200046.1.1.40", "ARIA128_KEYWRAP"},
+      {"1.2.410.200046.1.1.41", "ARIA192_KEYWRAP"},
+      {"1.2.410.200046.1.1.42", "ARIA256_KEYWRAP"},
+      {"1.2.410.200046.1.1.43", "ARIA128_KEYWRAP_WITH_PAD"},
+      {"1.2.410.200046.1.1.44", "ARIA192_KEYWRAP_WITH_PAD"},
+      {"1.2.410.200046.1.1.45", "ARIA256_KEYWRAP_WITH_PAD"},
+      {"1.2.643.2.2.3", "GOST_SIGNATURE"},
+      {"1.2.643.2.2.4", "GOST94_SIGNATURE"},
+      {"1.2.643.2.2.19", "GOST_PUBLIC_KEY"},
+      {"1.2.643.2.2.20", "GOST94_PUBLIC_KEY"},
+      {"1.2.643.2.2.21", "GOST_CIPHER"},
+      {"1.2.643.2.2.31.0", "TEST_CIPHER_PARAMS"},
+      {"1.2.643.2.2.31.1", "CRYPTO_PRO_CIPHER_A"},
+      {"1.2.643.2.2.31.2", "CRYPTO_PRO_CIPHER_B"},
+      {"1.2.643.2.2.31.3", "CRYPTO_PRO_CIPHER_C"},
+      {"1.2.643.2.2.31.4", "CRYPTO_PRO_CIPHER_D"},
+      {"1.2.643.2.2.31.5", "OSCAR11_CIPHER"},
+      {"1.2.643.2.2.31.6", "OSCAR10_CIPHER"},
+      {"1.2.643.2.2.31.7", "RIC1_CIPHER"},
+      {"1.2.643.2.2.9", "GOST_DIGEST"},
+      {"1.2.643.2.2.30.0", "TEST_DIGEST_PARAMS"},
+      {"1.2.643.2.2.30.1", "CRYPTO_PRO_DIGEST_A"},
+      {"1.2.643.2.2.35.0", "TEST_SIGN_PARAMS"},
+      {"1.2.643.2.2.35.1", "CRYPTO_PRO_SIGN_A"},
+      {"1.2.643.2.2.35.2", "CRYPTO_PRO_SIGN_B"},
+      {"1.2.643.2.2.35.3", "CRYPTO_PRO_SIGN_C"},
+      {"1.2.643.2.2.36.0", "CRYPTO_PRO_SIGN_XA"},
+      {"1.2.643.2.2.36.1", "CRYPTO_PRO_SIGN_XB"},
+      {"1.2.643.2.2.14.0", "NULL_MESHING"},
+      {"1.2.643.2.2.14.1", "CRYPTO_PRO_MESHING"},
+      {"1.2.643.2.2.10", "HMAC_GOST"},
+      {"1.2.643.2.2.13.0", "GOST_WRAP"},
+      {"1.2.643.2.2.13.1", "CRYPTO_PRO_WRAP"},
+      {"1.2.643.2.2.96", "CRYPTO_PRO_ECDH_WRAP"},
+      {"1.2.752.34.1", "SEIS_CP"},
+      {"1.2.752.34.1.1", "SEIS_HIGH_ASSURANCE_POLICY_IDENTIFIER"},
+      {"1.2.752.34.1.2", "SEIS_GAK_POLICY_IDENTIFIER"},
+      {"1.2.752.34.2", "SEIS_PE"},
+      {"1.2.752.34.3", "SEIS_AT"},
+      {"1.2.752.34.3.1", "SEIS_AT_PERSONAL_IDENTIFIER"},
+      {"1.2.840.10040.1", "MODULE"},
+      {"1.2.840.10040.1.1", "X9F1_CERT_MGMT"},
+      {"1.2.840.10040.2", "HOLDINSTRUCTION"},
+      {"1.2.840.10040.2.1", "HOLDINSTRUCTION_NONE"},
+      {"1.2.840.10040.2.2", "CALLISSUER"},
+      {"1.2.840.10040.2.3", "REJECT"},
+      {"1.2.840.10040.2.4", "PICKUP_TOKEN"},
+      {"1.2.840.10040.3", "ATTRIBUTE"},
+      {"1.2.840.10040.3.1", "COUNTER_SIGNATURE"},
+      {"1.2.840.10040.3.2", "ATTRIBUTE_CERT"},
+      {"1.2.840.10040.4", "ALGORITHM"},
+      {"1.2.840.10040.4.1", "DSA"},
+      {"1.2.840.10040.4.2", "DSA_MATCH"},
+      {"1.2.840.10040.4.3", "DSA_WITH_SHA1"},
+      {"1.2.840.10045.1", "FIELD_TYPE"},
+      {"1.2.840.10045.1.1", "PRIME_FIELD"},
+      {"1.2.840.10045.1.2", "CHARACTERISTIC_TWO_FIELD"},
+      {"1.2.840.10045.1.2.3", "CHARACTERISTIC_TWO_BASIS"},
+      {"1.2.840.10045.1.2.3.1", "ON_BASIS"},
+      {"1.2.840.10045.1.2.3.2", "TP_BASIS"},
+      {"1.2.840.10045.1.2.3.3", "PP_BASIS"},
+      {"1.2.840.10045.2", "PUBLIC_KEY_TYPE"},
+      {"1.2.840.10045.2.1", "EC_PUBLIC_KEY"},
+      {"1.2.840.10045.3.0.1", "C2PNB163V1"},
+      {"1.2.840.10045.3.0.2", "C2PNB163V2"},
+      {"1.2.840.10045.3.0.3", "C2PNB163V3"},
+      {"1.2.840.10045.3.0.5", "C2TNB191V1"},
+      {"1.2.840.10045.3.0.6", "C2TNB191V2"},
+      {"1.2.840.10045.3.0.7", "C2TNB191V3"},
+      {"1.2.840.10045.3.0.10", "C2PNB208W1"},
+      {"1.2.840.10045.3.0.11", "C2TNB239V1"},
+      {"1.2.840.10045.3.0.12", "C2TNB239V2"},
+      {"1.2.840.10045.3.0.13", "C2TNB239V3"},
+      {"1.2.840.10045.3.0.16", "C2PNB272W1"},
+      {"1.2.840.10045.3.0.18", "C2TNB359V1"},
+      {"1.2.840.10045.3.0.19", "C2PNB368W1"},
+      {"1.2.840.10045.3.0.20", "C2TNB431R1"},
+      {"1.2.840.10045.3.1.1", "PRIME192V1"},
+      {"1.2.840.10045.3.1.2", "PRIME192V2"},
+      {"1.2.840.10045.3.1.3", "PRIME192V3"},
+      {"1.2.840.10045.3.1.4", "PRIME239V1"},
+      {"1.2.840.10045.3.1.5", "PRIME239V2"},
+      {"1.2.840.10045.3.1.6", "PRIME239V3"},
+      {"1.2.840.10045.3.1.7", "PRIME256V1"},
+      {"1.2.840.10045.4.1", "ECDSA_WITH_SHA1"},
+      {"1.2.840.10045.4.2", "ECDSA_WITH_RECOMMENDED"},
+      {"1.2.840.10045.4.3", "ECDSA_WITH_SPECIFIED"},
+      {"1.2.840.10045.4.3.1", "ECDSA_WITH_SHA224"},
+      {"1.2.840.10045.4.3.2", "ECDSA_WITH_SHA256"},
+      {"1.2.840.10045.4.3.3", "ECDSA_WITH_SHA384"},
+      {"1.2.840.10045.4.3.4", "ECDSA_WITH_SHA512"},
+      {"1.2.840.10046.1", "FIELD_TYPE"},
+      {"1.2.840.10046.1.1", "GF_PRIME"},
+      {"1.2.840.10046.2", "NUMBER_TYPE"},
+      {"1.2.840.10046.2.1", "DH_PUBLIC_KEY"},
+      {"1.2.840.10046.3", "SCHEME"},
+      {"1.2.840.10046.3.1", "DH_STATIC"},
+      {"1.2.840.10046.3.2", "DH_EPHEM"},
+      {"1.2.840.10046.3.3", "DH_HYBRID1"},
+      {"1.2.840.10046.3.4", "DH_HYBRID2"},
+      {"1.2.840.10046.3.5", "MQV2"},
+      {"1.2.840.10046.3.6", "MQV1"},
+      {"1.2.840.10065.2.2", "?"},
+      {"1.2.840.10065.2.3", "HEALTHCARE_LICENSE"},
+      {"1.2.840.10065.2.3.1.1", "LICENSE?"},
+      {"1.2.840.10070.", "IEC62351"},
+      {"1.2.840.10070.8", "IEC62351_8"},
+      {"1.2.840.10070.8.1", "IEC_USER_ROLES"},
+      {"1.2.840.113533.7", "NSN"},
+      {"1.2.840.113533.7.65", "NSN_CE"},
+      {"1.2.840.113533.7.65.0", "ENTRUST_VERS_INFO"},
+      {"1.2.840.113533.7.66", "NSN_ALG"},
+      {"1.2.840.113533.7.66.3", "CAST3_CBC"},
+      {"1.2.840.113533.7.66.10", "CAST5_CBC"},
+      {"1.2.840.113533.7.66.11", "CAST5_MAC"},
+      {"1.2.840.113533.7.66.12", "PBE_WITH_MD5_AND_CAST5_CBC"},
+      {"1.2.840.113533.7.66.13", "PASSWORD_BASED_MAC"},
+      {"1.2.840.113533.7.67", "NSN_OC"},
+      {"1.2.840.113533.7.67.0", "ENTRUST_USER"},
+      {"1.2.840.113533.7.68", "NSN_AT"},
+      {"1.2.840.113533.7.68.0", "ENTRUST_CA_INFO"},
+      {"1.2.840.113533.7.68.10", "ATTRIBUTE_CERTIFICATE"},
+      {"1.2.840.113549.1.1", "PKCS_1"},
+      {"1.2.840.113549.1.1.1", "RSA_ENCRYPTION"},
+      {"1.2.840.113549.1.1.2", "MD2_WITH_RSA_ENCRYPTION"},
+      {"1.2.840.113549.1.1.3", "MD4_WITH_RSA_ENCRYPTION"},
+      {"1.2.840.113549.1.1.4", "MD5_WITH_RSA_ENCRYPTION"},
+      {"1.2.840.113549.1.1.5", "SHA1_WITH_RSA_ENCRYPTION"},
+      {"1.2.840.113549.1.1.7", "RSA_OAEP"},
+      {"1.2.840.113549.1.1.8", "PKCS1_MGF"},
+      {"1.2.840.113549.1.1.9", "RSA_OAEP_P_SPECIFIED"},
+      {"1.2.840.113549.1.1.10", "RSA_PSS"},
+      {"1.2.840.113549.1.1.11", "SHA256_WITH_RSA_ENCRYPTION"},
+      {"1.2.840.113549.1.1.12", "SHA384_WITH_RSA_ENCRYPTION"},
+      {"1.2.840.113549.1.1.13", "SHA512_WITH_RSA_ENCRYPTION"},
+      {"1.2.840.113549.1.1.14", "SHA224_WITH_RSA_ENCRYPTION"},
+      {"1.2.840.113549.1.1.6", "RSA_OAEP_ENCRYPTION_SET"},
+      {"1.2.840.113549.1.2", "BSAFE_RSA_ENCR"},
+      {"1.2.840.113549.1.3", "PKCS_3"},
+      {"1.2.840.113549.1.3.1", "DH_KEY_AGREEMENT"},
+      {"1.2.840.113549.1.5", "PKCS_5"},
+      {"1.2.840.113549.1.5.1", "PBE_WITH_MD2_AND_DES_CBC"},
+      {"1.2.840.113549.1.5.3", "PBE_WITH_MD5_AND_DES_CBC"},
+      {"1.2.840.113549.1.5.4", "PBE_WITH_MD2_AND_RC2_CBC"},
+      {"1.2.840.113549.1.5.6", "PBE_WITH_MD5_AND_RC2_CBC"},
+      {"1.2.840.113549.1.5.9", "PBE_WITH_MD5_AND_XOR"},
+      {"1.2.840.113549.1.5.10", "PBE_WITH_SHA_AND_DES_CBC"},
+      {"1.2.840.113549.1.5.12", "PKCS5_PBKDF2"},
+      {"1.2.840.113549.1.5.13", "PKCS5_PBES2"},
+      {"1.2.840.113549.1.5.14", "PKCS5_PBMAC1"},
+      {"1.2.840.113549.1.7", "PKCS_7"},
+      {"1.2.840.113549.1.7.1", "DATA"},
+      {"1.2.840.113549.1.7.2", "SIGNED_DATA"},
+      {"1.2.840.113549.1.7.3", "ENVELOPED_DATA"},
+      {"1.2.840.113549.1.7.4", "SIGNED_AND_ENVELOPED_DATA"},
+      {"1.2.840.113549.1.7.5", "DIGESTED_DATA"},
+      {"1.2.840.113549.1.7.6", "ENCRYPTED_DATA"},
+      {"1.2.840.113549.1.7.7", "DATA_WITH_ATTRIBUTES"},
+      {"1.2.840.113549.1.7.8", "ENCRYPTED_PRIVATE_KEY_INFO"},
+      {"1.2.840.113549.1.9", "PKCS_9"},
+      {"1.2.840.113549.1.9.1", "EMAIL_ADDRESS"},
+      {"1.2.840.113549.1.9.2", "UNSTRUCTURED_NAME"},
+      {"1.2.840.113549.1.9.3", "CONTENT_TYPE"},
+      {"1.2.840.113549.1.9.4", "MESSAGE_DIGEST"},
+      {"1.2.840.113549.1.9.5", "SIGNING_TIME"},
+      {"1.2.840.113549.1.9.6", "COUNTER_SIGNATURE"},
+      {"1.2.840.113549.1.9.7", "CHALLENGE_PASSWORD"},
+      {"1.2.840.113549.1.9.8", "UNSTRUCTURED_ADDRESS"},
+      {"1.2.840.113549.1.9.9", "EXTENDED_CERTIFICATE_ATTRIBUTES"},
+      {"1.2.840.113549.1.9.10", "ISSUER_AND_SERIAL_NUMBER"},
+      {"1.2.840.113549.1.9.11", "PASSWORD_CHECK"},
+      {"1.2.840.113549.1.9.12", "PUBLIC_KEY"},
+      {"1.2.840.113549.1.9.13", "SIGNING_DESCRIPTION"},
+      {"1.2.840.113549.1.9.14", "EXTENSION_REQUEST"},
+      {"1.2.840.113549.1.9.15", "S_MIME_CAPABILITIES"},
+      {"1.2.840.113549.1.9.15.1", "PREFER_SIGNED_DATA"},
+      {"1.2.840.113549.1.9.15.2", "CAN_NOT_DECRYPT_ANY"},
+      {"1.2.840.113549.1.9.15.3", "RECEIPT_REQUEST"},
+      {"1.2.840.113549.1.9.15.4", "RECEIPT"},
+      {"1.2.840.113549.1.9.15.5", "CONTENT_HINTS"},
+      {"1.2.840.113549.1.9.15.6", "ML_EXPANSION_HISTORY"},
+      {"1.2.840.113549.1.9.16", "ID_S_MIME"},
+      {"1.2.840.113549.1.9.16.0", "ID_MOD"},
+      {"1.2.840.113549.1.9.16.0.1", "ID_MOD_CMS"},
+      {"1.2.840.113549.1.9.16.0.2", "ID_MOD_ESS"},
+      {"1.2.840.113549.1.9.16.0.3", "ID_MOD_OID"},
+      {"1.2.840.113549.1.9.16.0.4", "ID_MOD_MSG_V3"},
+      {"1.2.840.113549.1.9.16.0.5", "ID_MOD_ETS_E_SIGNATURE_88"},
+      {"1.2.840.113549.1.9.16.0.6", "ID_MOD_ETS_E_SIGNATURE_97"},
+      {"1.2.840.113549.1.9.16.0.7", "ID_MOD_ETS_E_SIG_POLICY_88"},
+      {"1.2.840.113549.1.9.16.0.8", "ID_MOD_ETS_E_SIG_POLICY_88"},
+      {"1.2.840.113549.1.9.16.1", "CONTENT_TYPE"},
+      {"1.2.840.113549.1.9.16.1.1", "RECEIPT"},
+      {"1.2.840.113549.1.9.16.1.2", "AUTH_DATA"},
+      {"1.2.840.113549.1.9.16.1.3", "PUBLISH_CERT"},
+      {"1.2.840.113549.1.9.16.1.4", "T_ST_INFO"},
+      {"1.2.840.113549.1.9.16.1.5", "T_DT_INFO"},
+      {"1.2.840.113549.1.9.16.1.6", "CONTENT_INFO"},
+      {"1.2.840.113549.1.9.16.1.7", "D_VCS_REQUEST_DATA"},
+      {"1.2.840.113549.1.9.16.1.8", "D_VCS_RESPONSE_DATA"},
+      {"1.2.840.113549.1.9.16.1.9", "COMPRESSED_DATA"},
+      {"1.2.840.113549.1.9.16.1.10", "SCVP_CERT_VAL_REQUEST"},
+      {"1.2.840.113549.1.9.16.1.11", "SCVP_CERT_VAL_RESPONSE"},
+      {"1.2.840.113549.1.9.16.1.12", "SCVP_VAL_POL_REQUEST"},
+      {"1.2.840.113549.1.9.16.1.13", "SCVP_VAL_POL_RESPONSE"},
+      {"1.2.840.113549.1.9.16.1.14", "ATTR_CERT_ENC_ATTRS"},
+      {"1.2.840.113549.1.9.16.1.15", "T_S_REQ"},
+      {"1.2.840.113549.1.9.16.1.16", "FIRMWARE_PACKAGE"},
+      {"1.2.840.113549.1.9.16.1.17", "FIRMWARE_LOAD_RECEIPT"},
+      {"1.2.840.113549.1.9.16.1.18", "FIRMWARE_LOAD_ERROR"},
+      {"1.2.840.113549.1.9.16.1.19", "CONTENT_COLLECTION"},
+      {"1.2.840.113549.1.9.16.1.20", "CONTENT_WITH_ATTRS"},
+      {"1.2.840.113549.1.9.16.1.21", "ENC_KEY_WITH_ID"},
+      {"1.2.840.113549.1.9.16.1.22", "ENC_PEPSI"},
+      {"1.2.840.113549.1.9.16.1.23", "AUTH_ENVELOPED_DATA"},
+      {"1.2.840.113549.1.9.16.1.24", "ROUTE_ORIGIN_ATTEST"},
+      {"1.2.840.113549.1.9.16.1.25", "SYMMETRIC_KEY_PACKAGE"},
+      {"1.2.840.113549.1.9.16.1.26", "RPKI_MANIFEST"},
+      {"1.2.840.113549.1.9.16.1.27", "ASCII_TEXT_WITH_CRLF"},
+      {"1.2.840.113549.1.9.16.1.28", "XML"},
+      {"1.2.840.113549.1.9.16.1.29", "PDF"},
+      {"1.2.840.113549.1.9.16.1.30", "POSTSCRIPT"},
+      {"1.2.840.113549.1.9.16.1.31", "TIMESTAMPED_DATA"},
+      {"1.2.840.113549.1.9.16.1.32", "AS_ADJACENCY_ATTEST"},
+      {"1.2.840.113549.1.9.16.1.33", "RPKI_TRUST_ANCHOR"},
+      {"1.2.840.113549.1.9.16.1.34", "TRUST_ANCHOR_LIST"},
+      {"1.2.840.113549.1.9.16.2", "AUTHENTICATED_ATTRIBUTES"},
+      {"1.2.840.113549.1.9.16.2.1", "RECEIPT_REQUEST"},
+      {"1.2.840.113549.1.9.16.2.2", "SECURITY_LABEL"},
+      {"1.2.840.113549.1.9.16.2.3", "ML_EXPAND_HISTORY"},
+      {"1.2.840.113549.1.9.16.2.4", "CONTENT_HINT"},
+      {"1.2.840.113549.1.9.16.2.5", "MSG_SIG_DIGEST"},
+      {"1.2.840.113549.1.9.16.2.6", "ENCAP_CONTENT_TYPE"},
+      {"1.2.840.113549.1.9.16.2.7", "CONTENT_IDENTIFIER"},
+      {"1.2.840.113549.1.9.16.2.8", "MAC_VALUE"},
+      {"1.2.840.113549.1.9.16.2.9", "EQUIVALENT_LABELS"},
+      {"1.2.840.113549.1.9.16.2.10", "CONTENT_REFERENCE"},
+      {"1.2.840.113549.1.9.16.2.11", "ENCRYP_KEY_PREF"},
+      {"1.2.840.113549.1.9.16.2.12", "SIGNING_CERTIFICATE"},
+      {"1.2.840.113549.1.9.16.2.13", "SMIME_ENCRYPT_CERTS"},
+      {"1.2.840.113549.1.9.16.2.14", "TIME_STAMP_TOKEN"},
+      {"1.2.840.113549.1.9.16.2.15", "SIG_POLICY_ID"},
+      {"1.2.840.113549.1.9.16.2.16", "COMMITMENT_TYPE"},
+      {"1.2.840.113549.1.9.16.2.17", "SIGNER_LOCATION"},
+      {"1.2.840.113549.1.9.16.2.18", "SIGNER_ATTR"},
+      {"1.2.840.113549.1.9.16.2.19", "OTHER_SIG_CERT"},
+      {"1.2.840.113549.1.9.16.2.20", "CONTENT_TIMESTAMP"},
+      {"1.2.840.113549.1.9.16.2.21", "CERTIFICATE_REFS"},
+      {"1.2.840.113549.1.9.16.2.22", "REVOCATION_REFS"},
+      {"1.2.840.113549.1.9.16.2.23", "CERT_VALUES"},
+      {"1.2.840.113549.1.9.16.2.24", "REVOCATION_VALUES"},
+      {"1.2.840.113549.1.9.16.2.25", "ESC_TIME_STAMP"},
+      {"1.2.840.113549.1.9.16.2.26", "CERT_CRL_TIMESTAMP"},
+      {"1.2.840.113549.1.9.16.2.27", "ARCHIVE_TIME_STAMP"},
+      {"1.2.840.113549.1.9.16.2.28", "SIGNATURE_TYPE"},
+      {"1.2.840.113549.1.9.16.2.29", "DVCS_DVC"},
+      {"1.2.840.113549.1.9.16.2.30", "CEK_REFERENCE"},
+      {"1.2.840.113549.1.9.16.2.31", "MAX_CEK_DECRYPTS"},
+      {"1.2.840.113549.1.9.16.2.32", "KEK_DERIVATION_ALG"},
+      {"1.2.840.113549.1.9.16.2.33", "INTENDED_RECIPIENTS"},
+      {"1.2.840.113549.1.9.16.2.34", "CMC_UNSIGNED_DATA"},
+      {"1.2.840.113549.1.9.16.2.35", "FW_PACKAGE_ID"},
+      {"1.2.840.113549.1.9.16.2.36", "FW_TARGET_HARDWARE_I_DS"},
+      {"1.2.840.113549.1.9.16.2.37", "FW_DECRYPT_KEY_ID"},
+      {"1.2.840.113549.1.9.16.2.38", "FW_IMPL_CRYPT_ALGS"},
+      {"1.2.840.113549.1.9.16.2.39", "FW_WRAPPED_FIRMWARE_KEY"},
+      {"1.2.840.113549.1.9.16.2.40", "FW_COMMUNITY_IDENTIFIERS"},
+      {"1.2.840.113549.1.9.16.2.41", "FW_PKG_MESSAGE_DIGEST"},
+      {"1.2.840.113549.1.9.16.2.42", "FW_PACKAGE_INFO"},
+      {"1.2.840.113549.1.9.16.2.43", "FW_IMPL_COMPRESS_ALGS"},
+      {"1.2.840.113549.1.9.16.2.44", "ETS_ATTR_CERTIFICATE_REFS"},
+      {"1.2.840.113549.1.9.16.2.45", "ETS_ATTR_REVOCATION_REFS"},
+      {"1.2.840.113549.1.9.16.2.46", "BINARY_SIGNING_TIME"},
+      {"1.2.840.113549.1.9.16.2.47", "SIGNING_CERTIFICATE_V2"},
+      {"1.2.840.113549.1.9.16.2.48", "ETS_ARCHIVE_TIME_STAMP_V2"},
+      {"1.2.840.113549.1.9.16.2.49", "ER_INTERNAL"},
+      {"1.2.840.113549.1.9.16.2.50", "ER_EXTERNAL"},
+      {"1.2.840.113549.1.9.16.2.51", "MULTIPLE_SIGNATURES"},
+      {"1.2.840.113549.1.9.16.3.1", "ES_D_HWITH3_DES"},
+      {"1.2.840.113549.1.9.16.3.2", "ES_D_HWITH_RC2"},
+      {"1.2.840.113549.1.9.16.3.3", "3DES_WRAP"},
+      {"1.2.840.113549.1.9.16.3.4", "RC2_WRAP"},
+      {"1.2.840.113549.1.9.16.3.5", "ES_DH"},
+      {"1.2.840.113549.1.9.16.3.6", "CMS3_DE_SWRAP"},
+      {"1.2.840.113549.1.9.16.3.7", "CMS_RC2WRAP"},
+      {"1.2.840.113549.1.9.16.3.8", "ZLIB"},
+      {"1.2.840.113549.1.9.16.3.9", "PWRI_KEK"},
+      {"1.2.840.113549.1.9.16.3.10", "SS_DH"},
+      {"1.2.840.113549.1.9.16.3.11", "HMAC_WITH3_DE_SWRAP"},
+      {"1.2.840.113549.1.9.16.3.12", "HMAC_WITH_AE_SWRAP"},
+      {"1.2.840.113549.1.9.16.3.13", "MD5_XOR_EXPERIMENT"},
+      {"1.2.840.113549.1.9.16.3.14", "RSA_KEM"},
+      {"1.2.840.113549.1.9.16.3.15", "AUTH_ENC128"},
+      {"1.2.840.113549.1.9.16.3.16", "AUTH_ENC256"},
+      {"1.2.840.113549.1.9.16.4.1", "CERT_DIST_LDAP"},
+      {"1.2.840.113549.1.9.16.5.1", "SIG_POLICY_QUALIFIER_SPURI_X"},
+      {"1.2.840.113549.1.9.16.5.2", "SIG_POLICY_QUALIFIER_SP_USER_NOTICE"},
+      {"1.2.840.113549.1.9.16.6.1", "PROOF_OF_ORIGIN"},
+      {"1.2.840.113549.1.9.16.6.2", "PROOF_OF_RECEIPT"},
+      {"1.2.840.113549.1.9.16.6.3", "PROOF_OF_DELIVERY"},
+      {"1.2.840.113549.1.9.16.6.4", "PROOF_OF_SENDER"},
+      {"1.2.840.113549.1.9.16.6.5", "PROOF_OF_APPROVAL"},
+      {"1.2.840.113549.1.9.16.6.6", "PROOF_OF_CREATION"},
+      {"1.2.840.113549.1.9.16.8.1", "GL_USE_KEK"},
+      {"1.2.840.113549.1.9.16.8.2", "GL_DELETE"},
+      {"1.2.840.113549.1.9.16.8.3", "GL_ADD_MEMBER"},
+      {"1.2.840.113549.1.9.16.8.4", "GL_DELETE_MEMBER"},
+      {"1.2.840.113549.1.9.16.8.5", "GL_REKEY"},
+      {"1.2.840.113549.1.9.16.8.6", "GL_ADD_OWNER"},
+      {"1.2.840.113549.1.9.16.8.7", "GL_REMOVE_OWNER"},
+      {"1.2.840.113549.1.9.16.8.8", "GLK_COMPROMISE"},
+      {"1.2.840.113549.1.9.16.8.9", "GLK_REFRESH"},
+      {"1.2.840.113549.1.9.16.8.10", "GL_FAIL_INFO"},
+      {"1.2.840.113549.1.9.16.8.11", "GLA_QUERY_REQUEST"},
+      {"1.2.840.113549.1.9.16.8.12", "GLA_QUERY_RESPONSE"},
+      {"1.2.840.113549.1.9.16.8.13", "GL_PROVIDE_CERT"},
+      {"1.2.840.113549.1.9.16.8.14", "GL_UPDATE_CERT"},
+      {"1.2.840.113549.1.9.16.8.15", "GL_KEY"},
+      {"1.2.840.113549.1.9.16.9", "SIGNATURE_TYPE_IDENTIFIER"},
+      {"1.2.840.113549.1.9.16.9.1", "ORIGINATOR_SIG"},
+      {"1.2.840.113549.1.9.16.9.2", "DOMAIN_SIG"},
+      {"1.2.840.113549.1.9.16.9.3", "ADDITIONAL_ATTRIBUTES_SIG"},
+      {"1.2.840.113549.1.9.16.9.4", "REVIEW_SIG"},
+      {"1.2.840.113549.1.9.16.11", "CAPABILITIES"},
+      {"1.2.840.113549.1.9.16.11.1", "PREFER_BINARY_INSIDE"},
+      {"1.2.840.113549.1.9.20", "FRIENDLY_NAME_(FOR_PKCS_#12)"},
+      {"1.2.840.113549.1.9.21", "LOCAL_KEY_ID_(FOR_PKCS_#12)"},
+      {"1.2.840.113549.1.9.22", "CERT_TYPES_(FOR_PKCS_#12)"},
+      {"1.2.840.113549.1.9.22.1", "X509_CERTIFICATE_(FOR_PKCS_#12)"},
+      {"1.2.840.113549.1.9.22.2", "SDSI_CERTIFICATE_(FOR_PKCS_#12)"},
+      {"1.2.840.113549.1.9.23", "CRL_TYPES_(FOR_PKCS_#12)"},
+      {"1.2.840.113549.1.9.23.1", "X509_CRL_(FOR_PKCS_#12)"},
+      {"1.2.840.113549.1.9.24", "PKCS9OBJECT_CLASS"},
+      {"1.2.840.113549.1.9.25", "PKCS9ATTRIBUTES"},
+      {"1.2.840.113549.1.9.25.1", "PKCS15_TOKEN"},
+      {"1.2.840.113549.1.9.25.2", "ENCRYPTED_PRIVATE_KEY_INFO"},
+      {"1.2.840.113549.1.9.25.3", "RANDOM_NONCE"},
+      {"1.2.840.113549.1.9.25.4", "SEQUENCE_NUMBER"},
+      {"1.2.840.113549.1.9.25.5", "PKCS7_PDU"},
+      {"1.2.840.113549.1.9.26", "PKCS9SYNTAX"},
+      {"1.2.840.113549.1.9.27", "PKCS9MATCHING_RULES"},
+      {"1.2.840.113549.1.12", "PKCS_12"},
+      {"1.2.840.113549.1.12.1", "PKCS_12_PBE_IDS"},
+      {"1.2.840.113549.1.12.1.1", "PBE_WITH_SHA_AND128_BIT_RC4"},
+      {"1.2.840.113549.1.12.1.2", "PBE_WITH_SHA_AND40_BIT_RC4"},
+      {"1.2.840.113549.1.12.1.3", "PBE_WITH_SHA_AND3_KEY_TRIPLE_DES_CBC"},
+      {"1.2.840.113549.1.12.1.4", "PBE_WITH_SHA_AND2_KEY_TRIPLE_DES_CBC"},
+      {"1.2.840.113549.1.12.1.5", "PBE_WITH_SHA_AND128_BIT_RC2_CBC"},
+      {"1.2.840.113549.1.12.1.6", "PBE_WITH_SHA_AND40_BIT_RC2_CBC"},
+      {"1.2.840.113549.1.12.2", "PKCS_12_ESPVKID"},
+      {"1.2.840.113549.1.12.2.1", "PKCS_12_PKCS8_KEY_SHROUDING"},
+      {"1.2.840.113549.1.12.3", "PKCS_12_BAG_IDS"},
+      {"1.2.840.113549.1.12.3.1", "PKCS_12_KEY_BAG_ID"},
+      {"1.2.840.113549.1.12.3.2", "PKCS_12_CERT_AND_CRL_BAG_ID"},
+      {"1.2.840.113549.1.12.3.3", "PKCS_12_SECRET_BAG_ID"},
+      {"1.2.840.113549.1.12.3.4", "PKCS_12_SAFE_CONTENTS_ID"},
+      {"1.2.840.113549.1.12.3.5", "PKCS_12_PKCS_8_SHROUDED_KEY_BAG_ID"},
+      {"1.2.840.113549.1.12.4", "PKCS_12_CERT_BAG_ID"},
+      {"1.2.840.113549.1.12.4.1", "PKCS_12_X509_CERT_CRL_BAG_ID"},
+      {"1.2.840.113549.1.12.4.2", "PKCS_12_SDSI_CERT_BAG_ID"},
+      {"1.2.840.113549.1.12.5", "PKCS_12_OID"},
+      {"1.2.840.113549.1.12.5.1", "PKCS_12_PBEID"},
+      {"1.2.840.113549.1.12.5.1.1", "PKCS_12_PBE_WITH_SHA1_AND128_BIT_RC4"},
+      {"1.2.840.113549.1.12.5.1.2", "PKCS_12_PBE_WITH_SHA1_AND40_BIT_RC4"},
+      {"1.2.840.113549.1.12.5.1.3", "PKCS_12_PBE_WITH_SHA1_AND_TRIPLE_DESCBC"},
+      {"1.2.840.113549.1.12.5.1.4", "PKCS_12_PBE_WITH_SHA1_AND128_BIT_RC2_CBC"},
+      {"1.2.840.113549.1.12.5.1.5", "PKCS_12_PBE_WITH_SHA1_AND40_BIT_RC2_CBC"},
+      {"1.2.840.113549.1.12.5.1.6", "PKCS_12_PBE_WITH_SHA1_AND_RC4"},
+      {"1.2.840.113549.1.12.5.1.7", "PKCS_12_PBE_WITH_SHA1_AND_RC2_CBC"},
+      {"1.2.840.113549.1.12.5.2", "PKCS_12_ENVELOPING_ID"},
+      {"1.2.840.113549.1.12.5.2.1", "PKCS_12_RSA_ENCRYPTION_WITH128_BIT_RC4"},
+      {"1.2.840.113549.1.12.5.2.2", "PKCS_12_RSA_ENCRYPTION_WITH40_BIT_RC4"},
+      {"1.2.840.113549.1.12.5.2.3", "PKCS_12_RSA_ENCRYPTION_WITH_TRIPLE_DES"},
+      {"1.2.840.113549.1.12.5.3", "PKCS_12_SIGNATURE_ID"},
+      {"1.2.840.113549.1.12.5.3.1", "PKCS_12_RSA_SIGNATURE_WITH_SHA1_DIGEST"},
+      {"1.2.840.113549.1.12.10", "PKCS_12_VERSION1"},
+      {"1.2.840.113549.1.12.10.1", "PKCS_12_BAD_IDS"},
+      {"1.2.840.113549.1.12.10.1.1", "PKCS_12_KEY_BAG"},
+      {"1.2.840.113549.1.12.10.1.2", "PKCS_12_PKCS_8_SHROUDED_KEY_BAG"},
+      {"1.2.840.113549.1.12.10.1.3", "PKCS_12_CERT_BAG"},
+      {"1.2.840.113549.1.12.10.1.4", "PKCS_12_CRL_BAG"},
+      {"1.2.840.113549.1.12.10.1.5", "PKCS_12_SECRET_BAG"},
+      {"1.2.840.113549.1.12.10.1.6", "PKCS_12_SAFE_CONTENTS_BAG"},
+      {"1.2.840.113549.1.15.1", "PKCS15MODULES"},
+      {"1.2.840.113549.1.15.2", "PKCS15ATTRIBUTES"},
+      {"1.2.840.113549.1.15.3", "PKCS15CONTENT_TYPE"},
+      {"1.2.840.113549.1.15.3.1", "PKCS15CONTENT"},
+      {"1.2.840.113549.2", "DIGEST_ALGORITHM"},
+      {"1.2.840.113549.2.2", "MD2"},
+      {"1.2.840.113549.2.4", "MD4"},
+      {"1.2.840.113549.2.5", "MD5"},
+      {"1.2.840.113549.2.7", "HMAC_WITH_SHA1"},
+      {"1.2.840.113549.2.8", "HMAC_WITH_SHA224"},
+      {"1.2.840.113549.2.9", "HMAC_WITH_SHA256"},
+      {"1.2.840.113549.2.10", "HMAC_WITH_SHA384"},
+      {"1.2.840.113549.2.11", "HMAC_WITH_SHA512"},
+      {"1.2.840.113549.3", "ENCRYPTION_ALGORITHM"},
+      {"1.2.840.113549.3.2", "RC2_CBC"},
+      {"1.2.840.113549.3.3", "RC2_ECB"},
+      {"1.2.840.113549.3.4", "RC4"},
+      {"1.2.840.113549.3.5", "RC4_WITH_MAC"},
+      {"1.2.840.113549.3.6", "DESX_CBC"},
+      {"1.2.840.113549.3.7", "DES_EDE3_CBC"},
+      {"1.2.840.113549.3.8", "RC5_CBC"},
+      {"1.2.840.113549.3.9", "RC5_CBC_PAD"},
+      {"1.2.840.113549.3.10", "DES_CDMF"},
+      {"1.2.840.114021.1.6.1", "IDENTRUS_UNKNOWN_POLICY_IDENTIFIER"},
+      {"1.2.840.114021.4.1", "IDENTRUS_OCSP"},
+      {"1.2.840.113556.1.2.241", "DELIVERY_MECHANISM"},
+      {"1.2.840.113556.1.2.281", "NT_SECURITY_DESCRIPTOR"},
+      {"1.2.840.113556.1.3.0", "SITE_ADDRESSING"},
+      {"1.2.840.113556.1.3.13", "CLASS_SCHEMA"},
+      {"1.2.840.113556.1.3.14", "ATTRIBUTE_SCHEMA"},
+      {"1.2.840.113556.1.3.17", "MAILBOX_AGENT"},
+      {"1.2.840.113556.1.3.22", "MAILBOX"},
+      {"1.2.840.113556.1.3.23", "CONTAINER"},
+      {"1.2.840.113556.1.3.46", "MAIL_RECIPIENT"},
+      {"1.2.840.113556.1.4.145", "REVISION"},
+      {"1.2.840.113556.1.4.1327", "P_KI_DEFAULT_KEY_SPEC"},
+      {"1.2.840.113556.1.4.1328", "P_KI_KEY_USAGE"},
+      {"1.2.840.113556.1.4.1329", "P_KI_MAX_ISSUING_DEPTH"},
+      {"1.2.840.113556.1.4.1330", "P_KI_CRITICAL_EXTENSIONS"},
+      {"1.2.840.113556.1.4.1331", "P_KI_EXPIRATION_PERIOD"},
+      {"1.2.840.113556.1.4.1332", "P_KI_OVERLAP_PERIOD"},
+      {"1.2.840.113556.1.4.1333", "P_KI_EXTENDED_KEY_USAGE"},
+      {"1.2.840.113556.1.4.1334", "P_KI_DEFAULT_CS_PS"},
+      {"1.2.840.113556.1.4.1335", "P_KI_ENROLLMENT_ACCESS"},
+      {"1.2.840.113556.1.4.1429", "MS_PKI_RA_SIGNATURE"},
+      {"1.2.840.113556.1.4.1430", "MS_PKI_ENROLLMENT_FLAG"},
+      {"1.2.840.113556.1.4.1431", "MS_PKI_PRIVATE_KEY_FLAG"},
+      {"1.2.840.113556.1.4.1432", "MS_PKI_CERTIFICATE_NAME_FLAG"},
+      {"1.2.840.113556.1.4.1433", "MS_PKI_MINIMAL_KEY_SIZE"},
+      {"1.2.840.113556.1.4.1434", "MS_PKI_TEMPLATE_SCHEMA_VERSION"},
+      {"1.2.840.113556.1.4.1435", "MS_PKI_TEMPLATE_MINOR_REVISION"},
+      {"1.2.840.113556.1.4.1436", "MS_PKI_CERT_TEMPLATE_OID"},
+      {"1.2.840.113556.1.4.1437", "MS_PKI_SUPERSEDE_TEMPLATES"},
+      {"1.2.840.113556.1.4.1438", "MS_PKI_RA_POLICIES"},
+      {"1.2.840.113556.1.4.1439", "MS_PKI_CERTIFICATE_POLICY"},
+      {"1.2.840.113556.1.4.1674", "MS_PKI_CERTIFICATE_APPLICATION_POLICY"},
+      {"1.2.840.113556.1.4.1675", "MS_PKI_RA_APPLICATION_POLICIES"},
+      {"1.2.840.113556.4.3", "MICROSOFT_EXCEL"},
+      {"1.2.840.113556.4.4", "TITLED_WITH_OID"},
+      {"1.2.840.113556.4.5", "MICROSOFT_POWER_POINT"},
+      {"1.2.840.113583.1", "ADOBE_ACROBAT"},
+      {"1.2.840.113583.1.1", "ACROBAT_SECURITY"},
+      {"1.2.840.113583.1.1.1", "PDF_PASSWORD"},
+      {"1.2.840.113583.1.1.2", "PDF_DEFAULT_SIGNING_CREDENTIAL"},
+      {"1.2.840.113583.1.1.3", "PDF_DEFAULT_ENCRYPTION_CREDENTIAL"},
+      {"1.2.840.113583.1.1.4", "PDF_PASSWORD_TIMEOUT"},
+      {"1.2.840.113583.1.1.5", "PDF_AUTHENTIC_DOCUMENTS_TRUST"},
+      {"1.2.840.113583.1.1.6", "PDF_DYNAMIC_CONTENT_TRUST"},
+      {"1.2.840.113583.1.1.7", "PDF_UBIQUITY_TRUST"},
+      {"1.2.840.113583.1.1.8", "PDF_REVOCATION_INFO_ARCHIVAL"},
+      {"1.2.840.113583.1.1.9", "PDF_X509_EXTENSION"},
+      {"1.2.840.113583.1.1.9.1", "PDF_TIME_STAMP"},
+      {"1.2.840.113583.1.1.9.2", "PDF_ARCHIVE_REV_INFO"},
+      {"1.2.840.113583.1.1.10", "PDF_PPLK_LITE_CREDENTIAL"},
+      {"1.2.840.113583.1.2.", "ACROBAT_CPS"},
+      {"1.2.840.113583.1.2.1", "PDF_AUTHENTIC_DOCUMENTS_CPS"},
+      {"1.2.840.113583.1.2.2", "PDF_TEST_CPS"},
+      {"1.2.840.113583.1.2.3", "PDF_UBIQUITY_CPS"},
+      {"1.2.840.113583.1.2.4", "PDF_ADHOC_CPS"},
+      {"1.2.840.113583.1.7", "ACROBAT_UBIQUITY"},
+      {"1.2.840.113583.1.7.1", "PDF_UBIQUITY_SUB_RIGHTS"},
+      {"1.2.840.113583.1.9", "ACROBAT_EXTENSION"},
+      {"1.2.840.113628.114.1.7", "ADOBE_PKCS7"},
+      {"1.2.840.113635.100", "APPLE_DATA_SECURITY"},
+      {"1.2.840.113635.100.1", "APPLE_TRUST_POLICY"},
+      {"1.2.840.113635.100.1.1", "APPLE_I_SIGN_TP"},
+      {"1.2.840.113635.100.1.2", "APPLE_X509_BASIC"},
+      {"1.2.840.113635.100.1.3", "APPLE_SSL_POLICY"},
+      {"1.2.840.113635.100.1.4", "APPLE_LOCAL_CERT_GEN_POLICY"},
+      {"1.2.840.113635.100.1.5", "APPLE_CSR_GEN_POLICY"},
+      {"1.2.840.113635.100.1.6", "APPLE_CRL_POLICY"},
+      {"1.2.840.113635.100.1.7", "APPLE_OCSP_POLICY"},
+      {"1.2.840.113635.100.1.8", "APPLE_SMIME_POLICY"},
+      {"1.2.840.113635.100.1.9", "APPLE_EAP_POLICY"},
+      {"1.2.840.113635.100.1.10", "APPLE_SW_UPDATE_SIGNING_POLICY"},
+      {"1.2.840.113635.100.1.11", "APPLE_IP_SEC_POLICY"},
+      {"1.2.840.113635.100.1.12", "APPLE_I_CHAT_POLICY"},
+      {"1.2.840.113635.100.1.13", "APPLE_RESOURCE_SIGN_POLICY"},
+      {"1.2.840.113635.100.1.14", "APPLE_PKINIT_CLIENT_POLICY"},
+      {"1.2.840.113635.100.1.15", "APPLE_PKINIT_SERVER_POLICY"},
+      {"1.2.840.113635.100.1.16", "APPLE_CODE_SIGNING_POLICY"},
+      {"1.2.840.113635.100.1.17", "APPLE_PACKAGE_SIGNING_POLICY"},
+      {"1.2.840.113635.100.2", "APPLE_SECURITY_ALGORITHM"},
+      {"1.2.840.113635.100.2.1", "APPLE_FEE"},
+      {"1.2.840.113635.100.2.2", "APPLE_ASC"},
+      {"1.2.840.113635.100.2.3", "APPLE_FEE_MD5"},
+      {"1.2.840.113635.100.2.4", "APPLE_FEE_SHA1"},
+      {"1.2.840.113635.100.2.5", "APPLE_FEED"},
+      {"1.2.840.113635.100.2.6", "APPLE_FEEDEXP"},
+      {"1.2.840.113635.100.2.7", "APPLE_ECDSA"},
+      {"1.2.840.113635.100.3", "APPLE_DOT_MAC_CERTIFICATE"},
+      {"1.2.840.113635.100.3.1", "APPLE_DOT_MAC_CERTIFICATE_REQUEST"},
+      {"1.2.840.113635.100.3.2", "APPLE_DOT_MAC_CERTIFICATE_EXTENSION"},
+      {"1.2.840.113635.100.3.3", "APPLE_DOT_MAC_CERTIFICATE_REQUEST_VALUES"},
+      {"1.2.840.113635.100.4", "APPLE_EXTENDED_KEY_USAGE"},
+      {"1.2.840.113635.100.4.1", "APPLE_CODE_SIGNING"},
+      {"1.2.840.113635.100.4.1.1", "APPLE_CODE_SIGNING_DEVELOPMENT"},
+      {"1.2.840.113635.100.4.1.2", "APPLE_SOFTWARE_UPDATE_SIGNING"},
+      {"1.2.840.113635.100.4.1.3", "APPLE_CODE_SIGNING_THIRD_PARTY"},
+      {"1.2.840.113635.100.4.1.4", "APPLE_RESOURCE_SIGNING"},
+      {"1.2.840.113635.100.4.2", "APPLE_I_CHAT_SIGNING"},
+      {"1.2.840.113635.100.4.3", "APPLE_I_CHAT_ENCRYPTION"},
+      {"1.2.840.113635.100.4.4", "APPLE_SYSTEM_IDENTITY"},
+      {"1.2.840.113635.100.4.5", "APPLE_CRYPTO_ENV"},
+      {"1.2.840.113635.100.4.5.1", "APPLE_CRYPTO_PRODUCTION_ENV"},
+      {"1.2.840.113635.100.4.5.2", "APPLE_CRYPTO_MAINTENANCE_ENV"},
+      {"1.2.840.113635.100.4.5.3", "APPLE_CRYPTO_TEST_ENV"},
+      {"1.2.840.113635.100.4.5.4", "APPLE_CRYPTO_DEVELOPMENT_ENV"},
+      {"1.2.840.113635.100.4.6", "APPLE_CRYPTO_QO_S"},
+      {"1.2.840.113635.100.4.6.1", "APPLE_CRYPTO_TIER0_QO_S"},
+      {"1.2.840.113635.100.4.6.2", "APPLE_CRYPTO_TIER1_QO_S"},
+      {"1.2.840.113635.100.4.6.3", "APPLE_CRYPTO_TIER2_QO_S"},
+      {"1.2.840.113635.100.4.6.4", "APPLE_CRYPTO_TIER3_QO_S"},
+      {"1.2.840.113635.100.5", "APPLE_CERTIFICATE_POLICIES"},
+      {"1.2.840.113635.100.5.1", "APPLE_CERTIFICATE_POLICY_ID"},
+      {"1.2.840.113635.100.5.2", "APPLE_DOT_MAC_CERTIFICATE_POLICY_ID"},
+      {"1.2.840.113635.100.5.3", "APPLE_ADC_CERTIFICATE_POLICY_ID"},
+      {"1.2.840.113635.100.6", "APPLE_CERTIFICATE_EXTENSIONS"},
+      {"1.2.840.113635.100.6.1", "APPLE_CERTIFICATE_EXTENSION_CODE_SIGNING"},
+      {"1.2.840.113635.100.6.1.1", "APPLE_CERTIFICATE_EXTENSION_APPLE_SIGNING"},
+      {"1.2.840.113635.100.6.1.2",
+       "APPLE_CERTIFICATE_EXTENSION_ADC_DEVELOPER_SIGNING"},
+      {"1.2.840.113635.100.6.1.3",
+       "APPLE_CERTIFICATE_EXTENSION_ADC_APPLE_SIGNING"},
+      {"1.3.6.1.4.1.311.2.1.4", "SPC_INDIRECT_DATA_CONTENT"},
+      {"1.3.6.1.4.1.311.2.1.10", "SPC_AGENCY_INFO"},
+      {"1.3.6.1.4.1.311.2.1.11", "SPC_STATEMENT_TYPE"},
+      {"1.3.6.1.4.1.311.2.1.12", "SPC_SP_OPUS_INFO"},
+      {"1.3.6.1.4.1.311.2.1.14", "CERT_REQ_EXTENSIONS"},
+      {"1.3.6.1.4.1.311.2.1.15", "SPC_PE_IMAGE_DATA"},
+      {"1.3.6.1.4.1.311.2.1.18", "SPC_RAW_FILE_DATA"},
+      {"1.3.6.1.4.1.311.2.1.19", "SPC_STRUCTURED_STORAGE_DATA"},
+      {"1.3.6.1.4.1.311.2.1.20", "SPC_JAVA_CLASS_DATA_(TYPE_1)"},
+      {"1.3.6.1.4.1.311.2.1.21", "INDIVIDUAL_CODE_SIGNING"},
+      {"1.3.6.1.4.1.311.2.1.22", "COMMERCIAL_CODE_SIGNING"},
+      {"1.3.6.1.4.1.311.2.1.25", "SPC_LINK_(TYPE_2)"},
+      {"1.3.6.1.4.1.311.2.1.26", "SPC_MINIMAL_CRITERIA_INFO"},
+      {"1.3.6.1.4.1.311.2.1.27", "SPC_FINANCIAL_CRITERIA_INFO"},
+      {"1.3.6.1.4.1.311.2.1.28", "SPC_LINK_(TYPE_3)"},
+      {"1.3.6.1.4.1.311.2.1.29", "SPC_HASH_INFO_OBJ_ID"},
+      {"1.3.6.1.4.1.311.2.1.30", "SPC_SIP_INFO_OBJ_ID"},
+      {"1.3.6.1.4.1.311.2.2", "CTL"},
+      {"1.3.6.1.4.1.311.2.2.1", "CTL_TRUSTED_CODESIGNING_CA_LIST"},
+      {"1.3.6.1.4.1.311.2.2.2", "CTL_TRUSTED_CLIENT_AUTH_CA_LIST"},
+      {"1.3.6.1.4.1.311.2.2.3", "CTL_TRUSTED_SERVER_AUTH_CA_LIST"},
+      {"1.3.6.1.4.1.311.2.4.1", "SPC_NESTED_SIGNATURES"},
+      {"1.3.6.1.4.1.311.3.2.1", "TIMESTAMP_REQUEST"},
+      {"1.3.6.1.4.1.311.10.1", "CERT_TRUST_LIST"},
+      {"1.3.6.1.4.1.311.10.1.1", "SORTED_CTL"},
+      {"1.3.6.1.4.1.311.10.2", "NEXT_UPDATE_LOCATION"},
+      {"1.3.6.1.4.1.311.10.3.1", "CERT_TRUST_LIST_SIGNING"},
+      {"1.3.6.1.4.1.311.10.3.2", "TIME_STAMP_SIGNING"},
+      {"1.3.6.1.4.1.311.10.3.3", "SERVER_GATED_CRYPTO"},
+      {"1.3.6.1.4.1.311.10.3.3.1", "SERIALIZED"},
+      {"1.3.6.1.4.1.311.10.3.4", "ENCRYPTED_FILE_SYSTEM"},
+      {"1.3.6.1.4.1.311.10.3.5", "WHQL_CRYPTO"},
+      {"1.3.6.1.4.1.311.10.3.6", "NT5_CRYPTO"},
+      {"1.3.6.1.4.1.311.10.3.7", "OEM_WHQL_CRYPTO"},
+      {"1.3.6.1.4.1.311.10.3.8", "EMBEDDED_NT_CRYPTO"},
+      {"1.3.6.1.4.1.311.10.3.9", "ROOT_LIST_SIGNER"},
+      {"1.3.6.1.4.1.311.10.3.10", "QUALIFIED_SUBORDINATION"},
+      {"1.3.6.1.4.1.311.10.3.11", "KEY_RECOVERY"},
+      {"1.3.6.1.4.1.311.10.3.12", "DOCUMENT_SIGNING"},
+      {"1.3.6.1.4.1.311.10.3.13", "LIFETIME_SIGNING"},
+      {"1.3.6.1.4.1.311.10.3.14", "MOBILE_DEVICE_SOFTWARE"},
+      {"1.3.6.1.4.1.311.10.3.15", "SMART_DISPLAY"},
+      {"1.3.6.1.4.1.311.10.3.16", "CSP_SIGNATURE"},
+      {"1.3.6.1.4.1.311.10.3.4.1", "EFS_RECOVERY"},
+      {"1.3.6.1.4.1.311.10.4.1", "YESNO_TRUST_ATTR"},
+      {"1.3.6.1.4.1.311.10.5.1", "DRM"},
+      {"1.3.6.1.4.1.311.10.5.2", "DRM_INDIVIDUALIZATION"},
+      {"1.3.6.1.4.1.311.10.6.1", "LICENSES"},
+      {"1.3.6.1.4.1.311.10.6.2", "LICENSE_SERVER"},
+      {"1.3.6.1.4.1.311.10.7.1", "KEYID_RDN"},
+      {"1.3.6.1.4.1.311.10.8.1", "REMOVE_CERTIFICATE"},
+      {"1.3.6.1.4.1.311.10.9.1", "CROSS_CERT_DIST_POINTS"},
+      {"1.3.6.1.4.1.311.10.10.1", "CMC_ADD_ATTRIBUTES"},
+      {"1.3.6.1.4.1.311.10.11", "CERT_PROP_ID_PREFIX"},
+      {"1.3.6.1.4.1.311.10.11.4", "CERT_MD5_HASH_PROP_ID"},
+      {"1.3.6.1.4.1.311.10.11.20", "CERT_KEY_IDENTIFIER_PROP_ID"},
+      {"1.3.6.1.4.1.311.10.11.28", "CERT_ISSUER_SERIAL_NUMBER_MD5_HASH_PROP_ID"},
+      {"1.3.6.1.4.1.311.10.11.29", "CERT_SUBJECT_NAME_MD5_HASH_PROP_ID"},
+      {"1.3.6.1.4.1.311.10.12.1", "ANY_APPLICATION_POLICY"},
+      {"1.3.6.1.4.1.311.12", "CATALOG"},
+      {"1.3.6.1.4.1.311.12.1.1", "CATALOG_LIST"},
+      {"1.3.6.1.4.1.311.12.1.2", "CATALOG_LIST_MEMBER"},
+      {"1.3.6.1.4.1.311.12.2.1", "CATALOG_NAME_VALUE_OBJ_ID"},
+      {"1.3.6.1.4.1.311.12.2.2", "CATALOG_MEMBER_INFO_OBJ_ID"},
+      {"1.3.6.1.4.1.311.13.1", "RENEWAL_CERTIFICATE"},
+      {"1.3.6.1.4.1.311.13.2.1", "ENROLMENT_NAME_VALUE_PAIR"},
+      {"1.3.6.1.4.1.311.13.2.2", "ENROLMENT_CSP"},
+      {"1.3.6.1.4.1.311.13.2.3", "OS_VERSION"},
+      {"1.3.6.1.4.1.311.16.4", "MICROSOFT_RECIPIENT_INFO"},
+      {"1.3.6.1.4.1.311.17.1", "PKCS12_KEY_PROVIDER_NAME_ATTR"},
+      {"1.3.6.1.4.1.311.17.2", "LOCAL_MACHINE_KEYSET"},
+      {"1.3.6.1.4.1.311.17.3", "PKCS12_EXTENDED_ATTRIBUTES"},
+      {"1.3.6.1.4.1.311.20.1", "AUTO_ENROLL_CTL_USAGE"},
+      {"1.3.6.1.4.1.311.20.2", "ENROLL_CERTTYPE_EXTENSION"},
+      {"1.3.6.1.4.1.311.20.2.1", "ENROLLMENT_AGENT"},
+      {"1.3.6.1.4.1.311.20.2.2", "SMARTCARD_LOGON"},
+      {"1.3.6.1.4.1.311.20.2.3", "UNIVERSAL_PRINCIPAL_NAME"},
+      {"1.3.6.1.4.1.311.20.3", "CERT_MANIFOLD"},
+      {"1.3.6.1.4.1.311.21.1", "C_A_KEY_CERT_INDEX_PAIR"},
+      {"1.3.6.1.4.1.311.21.2", "CERT_SRV_PREVIOUS_CERT_HASH"},
+      {"1.3.6.1.4.1.311.21.3", "CRL_VIRTUAL_BASE"},
+      {"1.3.6.1.4.1.311.21.4", "CRL_NEXT_PUBLISH"},
+      {"1.3.6.1.4.1.311.21.5", "CA_EXCHANGE"},
+      {"1.3.6.1.4.1.311.21.6", "KEY_RECOVERY"},
+      {"1.3.6.1.4.1.311.21.7", "CERTIFICATE_TEMPLATE"},
+      {"1.3.6.1.4.1.311.21.9", "RDN_DUMMY_SIGNER"},
+      {"1.3.6.1.4.1.311.21.10", "APPLICATION_CERT_POLICIES"},
+      {"1.3.6.1.4.1.311.21.11", "APPLICATION_POLICY_MAPPINGS"},
+      {"1.3.6.1.4.1.311.21.12", "APPLICATION_POLICY_CONSTRAINTS"},
+      {"1.3.6.1.4.1.311.21.13", "ARCHIVED_KEY"},
+      {"1.3.6.1.4.1.311.21.14", "CRL_SELF_CDP"},
+      {"1.3.6.1.4.1.311.21.15", "REQUIRE_CERT_CHAIN_POLICY"},
+      {"1.3.6.1.4.1.311.21.16", "ARCHIVED_KEY_CERT_HASH"},
+      {"1.3.6.1.4.1.311.21.17", "ISSUED_CERT_HASH"},
+      {"1.3.6.1.4.1.311.21.19", "DS_EMAIL_REPLICATION"},
+      {"1.3.6.1.4.1.311.21.20", "REQUEST_CLIENT_INFO"},
+      {"1.3.6.1.4.1.311.21.21", "ENCRYPTED_KEY_HASH"},
+      {"1.3.6.1.4.1.311.21.22", "CERTSRV_CROSS_CA_VERSION"},
+      {"1.3.6.1.4.1.311.25.1", "NTDS_REPLICATION"},
+      {"1.3.6.1.4.1.311.31.1", "PRODUCT_UPDATE"},
+      {"1.3.6.1.4.1.311.47.1.1", "SYSTEM_HEALTH"},
+      {"1.3.6.1.4.1.311.47.1.3", "SYSTEM_HEALTH_LOOPHOLE"},
+      {"1.3.6.1.4.1.311.60.1.1", "ROOT_PROGRAM_FLAGS"},
+      {"1.3.6.1.4.1.311.61.1.1", "KERNEL_MODE_CODE_SIGNING"},
+      {"1.3.6.1.4.1.311.60.2.1.1", "JURISDICTION_OF_INCORPORATION_L"},
+      {"1.3.6.1.4.1.311.60.2.1.2", "JURISDICTION_OF_INCORPORATION_SP"},
+      {"1.3.6.1.4.1.311.60.2.1.3", "JURISDICTION_OF_INCORPORATION_C"},
+      {"1.3.6.1.4.1.311.88", "CAPI_COM"},
+      {"1.3.6.1.4.1.311.88.1", "CAPI_COM_VERSION"},
+      {"1.3.6.1.4.1.311.88.2", "CAPI_COM_ATTRIBUTE"},
+      {"1.3.6.1.4.1.311.88.2.1", "CAPI_COM_DOCUMENT_NAME"},
+      {"1.3.6.1.4.1.311.88.2.2", "CAPI_COM_DOCUMENT_DESCRIPTION"},
+      {"1.3.6.1.4.1.311.88.3", "CAPI_COM_ENCRYPTED_DATA"},
+      {"1.3.6.1.4.1.311.88.3.1", "CAPI_COM_ENCRYPTED_CONTENT"},
+      {"1.3.6.1.4.1.188.7.1.1", "ASCOM"},
+      {"1.3.6.1.4.1.188.7.1.1.1", "IDEA_ECB"},
+      {"1.3.6.1.4.1.188.7.1.1.2", "IDEA_CBC"},
+      {"1.3.6.1.4.1.188.7.1.1.3", "IDEA_CFB"},
+      {"1.3.6.1.4.1.188.7.1.1.4", "IDEA_OFB"},
+      {"1.3.6.1.4.1.2428.10.1.1", "UNINETT_POLICY_IDENTIFIER"},
+      {"1.3.6.1.4.1.2712.10", "ICE_TEL_POLICY_IDENTIFIER"},
+      {"1.3.6.1.4.1.2786.1.1.1", "ICE_TEL_ITALIAN_POLICY_IDENTIFIER"},
+      {"1.3.6.1.4.1.3029.1.1.1", "BLOWFISH_ECB"},
+      {"1.3.6.1.4.1.3029.1.1.2", "BLOWFISH_CBC"},
+      {"1.3.6.1.4.1.3029.1.1.3", "BLOWFISH_CFB"},
+      {"1.3.6.1.4.1.3029.1.1.4", "BLOWFISH_OFB"},
+      {"1.3.6.1.4.1.3029.1.2.1", "ELGAMAL"},
+      {"1.3.6.1.4.1.3029.1.2.1.1", "ELGAMAL_WITH_SHA_1"},
+      {"1.3.6.1.4.1.3029.1.2.1.2", "ELGAMAL_WITH_RIPEMD_160"},
+      {"1.3.6.1.4.1.3029.3.1.1", "CRYPTLIB_PRESENCE_CHECK"},
+      {"1.3.6.1.4.1.3029.3.1.2", "PKI_BOOT"},
+      {"1.3.6.1.4.1.3029.3.1.4", "CRL_EXT_REASON"},
+      {"1.3.6.1.4.1.3029.3.1.5", "KEY_FEATURES"},
+      {"1.3.6.1.4.1.3029.4.1", "CRYPTLIB_CONTENT"},
+      {"1.3.6.1.4.1.3029.4.1.1", "CRYPTLIB_CONFIG_DATA"},
+      {"1.3.6.1.4.1.3029.4.1.2", "CRYPTLIB_USER_INDEX"},
+      {"1.3.6.1.4.1.3029.4.1.3", "CRYPTLIB_USER_INFO"},
+      {"1.3.6.1.4.1.3029.4.1.4", "RTCS_REQUEST"},
+      {"1.3.6.1.4.1.3029.4.1.5", "RTCS_RESPONSE"},
+      {"1.3.6.1.4.1.3029.4.1.6", "RTCS_RESPONSE_EXT"},
+      {"1.3.6.1.4.1.3029.42.11172.1", "MPEG_1"},
+      {"1.3.6.1.4.1.3029.54.11940.54", "TSA_POLICY"},
+      {"1.3.6.1.4.1.3029.88.89.90.90.89", "X_YZZY_POLICY_IDENTIFIER"},
+      {"1.3.6.1.4.1.3401.8.1.1", "PGP_EXTENSION"},
+      {"1.3.6.1.4.1.3576.7", "ECIA_ASC_X12_EDI"},
+      {"1.3.6.1.4.1.3576.7.1", "PLAIN_ED_IMESSAGE"},
+      {"1.3.6.1.4.1.3576.7.2", "SIGNED_ED_IMESSAGE"},
+      {"1.3.6.1.4.1.3576.7.5", "INTEGRITY_ED_IMESSAGE"},
+      {"1.3.6.1.4.1.3576.7.65", "IA_RECEIPT_MESSAGE"},
+      {"1.3.6.1.4.1.3576.7.97", "IA_STATUS_MESSAGE"},
+      {"1.3.6.1.4.1.3576.8", "ECIA_EDIFACT"},
+      {"1.3.6.1.4.1.3576.9", "ECIA_NON_EDI"},
+      {"1.3.6.1.4.1.4146", "GLOBALSIGN"},
+      {"1.3.6.1.4.1.4146.1", "GLOBALSIGN_POLICY"},
+      {"1.3.6.1.4.1.4146.1.10", "GLOBALSIGN_DV_POLICY"},
+      {"1.3.6.1.4.1.4146.1.20", "GLOBALSIGN_OV_POLICY"},
+      {"1.3.6.1.4.1.4146.1.30", "GLOBALSIGN_TSA_POLICY"},
+      {"1.3.6.1.4.1.4146.1.40", "GLOBALSIGN_CLIENT_CERT_POLICY"},
+      {"1.3.6.1.4.1.4146.1.50", "GLOBALSIGN_CODE_SIGN_POLICY"},
+      {"1.3.6.1.4.1.4146.1.60", "GLOBALSIGN_ROOT_SIGN_POLICY"},
+      {"1.3.6.1.4.1.4146.1.70", "GLOBALSIGN_TRUSTED_ROOT_POLICY"},
+      {"1.3.6.1.4.1.4146.1.80", "GLOBALSIGN_EDI_CLIENT_POLICY"},
+      {"1.3.6.1.4.1.4146.1.81", "GLOBALSIGN_EDI_SERVER_POLICY"},
+      {"1.3.6.1.4.1.4146.1.90", "GLOBALSIGN_TPM_ROOT_POLICY"},
+      {"1.3.6.1.4.1.4146.1.95", "GLOBALSIGN_OCSP_POLICY"},
+      {"1.3.6.1.4.1.5309.1", "EDEL_WEB_POLICY"},
+      {"1.3.6.1.4.1.5309.1.2", "EDEL_WEB_CUSTOMER_POLICY"},
+      {"1.3.6.1.4.1.5309.1.2.1", "EDEL_WEB_CLEPSYDRE_POLICY"},
+      {"1.3.6.1.4.1.5309.1.2.2", "EDEL_WEB_EXPERIMENTAL_TSA_POLICY"},
+      {"1.3.6.1.4.1.5309.1.2.3", "EDEL_WEB_OPEN_EVIDENCE_TSA_POLICY"},
+      {"1.3.6.1.4.1.5472", "TIMEPROOF"},
+      {"1.3.6.1.4.1.5472.1", "TSS"},
+      {"1.3.6.1.4.1.5472.1.1", "TSS80"},
+      {"1.3.6.1.4.1.5472.1.2", "TSS380"},
+      {"1.3.6.1.4.1.5472.1.3", "TSS400"},
+      {"1.3.6.1.4.1.5770.0.3", "SECONDARY_PRACTICES"},
+      {"1.3.6.1.4.1.5770.0.4", "PHYSICIAN_IDENTIFIERS"},
+      {"1.3.6.1.4.1.6449.1.2.1.3.1", "COMODO_POLICY"},
+      {"1.3.6.1.4.1.6449.1.2.2.15", "WOTRUST_POLICY"},
+      {"1.3.6.1.4.1.6449.1.3.5.2", "COMODO_CERTIFIED_DELIVERY_SERVICE"},
+      {"1.3.6.1.4.1.6449.2.1.1", "COMODO_TIMESTAMPING_POLICY"},
+      {"1.3.6.1.4.1.8301.3.5.1", "VALIDITY_MODEL_CHAIN"},
+      {"1.3.6.1.4.1.8301.3.5.2", "VALIDITY_MODEL_SHELL"},
+      {"1.3.6.1.4.1.8231.1", "ROL_UNICO_NACIONAL"},
+      {"1.3.6.1.4.1.11591", "GNU"},
+      {"1.3.6.1.4.1.11591.1", "GNU_RADIUS"},
+      {"1.3.6.1.4.1.11591.3", "GNU_RADAR"},
+      {"1.3.6.1.4.1.11591.12", "GNU_DIGEST_ALGORITHM"},
+      {"1.3.6.1.4.1.11591.12.2", "TIGER"},
+      {"1.3.6.1.4.1.11591.13", "GNU_ENCRYPTION_ALGORITHM"},
+      {"1.3.6.1.4.1.11591.13.2", "SERPENT"},
+      {"1.3.6.1.4.1.11591.13.2.1", "SERPENT128_ECB"},
+      {"1.3.6.1.4.1.11591.13.2.2", "SERPENT128_CBC"},
+      {"1.3.6.1.4.1.11591.13.2.3", "SERPENT128_OFB"},
+      {"1.3.6.1.4.1.11591.13.2.4", "SERPENT128_CFB"},
+      {"1.3.6.1.4.1.11591.13.2.21", "SERPENT192_ECB"},
+      {"1.3.6.1.4.1.11591.13.2.22", "SERPENT192_CBC"},
+      {"1.3.6.1.4.1.11591.13.2.23", "SERPENT192_OFB"},
+      {"1.3.6.1.4.1.11591.13.2.24", "SERPENT192_CFB"},
+      {"1.3.6.1.4.1.11591.13.2.41", "SERPENT256_ECB"},
+      {"1.3.6.1.4.1.11591.13.2.42", "SERPENT256_CBC"},
+      {"1.3.6.1.4.1.11591.13.2.43", "SERPENT256_OFB"},
+      {"1.3.6.1.4.1.11591.13.2.44", "SERPENT256_CFB"},
+      {"1.3.6.1.4.1.16334.509.1.1", "NORTHROP_GRUMMAN_EXT_KEY_USAGE?"},
+      {"1.3.6.1.4.1.16334.509.2.1", "NGC_CLASS1"},
+      {"1.3.6.1.4.1.16334.509.2.2", "NGC_CLASS2"},
+      {"1.3.6.1.4.1.16334.509.2.3", "NGC_CLASS3"},
+      {"1.3.6.1.4.1.23629.1.4.2.1.1", "SAFENET_USAGE_LIMIT"},
+      {"1.3.6.1.4.1.23629.1.4.2.1.2", "SAFENET_END_DATE"},
+      {"1.3.6.1.4.1.23629.1.4.2.1.3", "SAFENET_START_DATE"},
+      {"1.3.6.1.4.1.23629.1.4.2.1.4", "SAFENET_ADMIN_CERT"},
+      {"1.3.6.1.4.1.23629.1.4.2.2.1", "SAFENET_KEY_DIGEST"},
+      {"1.3.6.1.5.5.7", "PKIX"},
+      {"1.3.6.1.5.5.7.0.12", "ATTRIBUTE_CERT"},
+      {"1.3.6.1.5.5.7.1", "PRIVATE_EXTENSION"},
+      {"1.3.6.1.5.5.7.1.1", "AUTHORITY_INFO_ACCESS"},
+      {"1.3.6.1.5.5.7.1.2", "BIOMETRIC_INFO"},
+      {"1.3.6.1.5.5.7.1.3", "QC_STATEMENTS"},
+      {"1.3.6.1.5.5.7.1.4", "AC_AUDIT_IDENTITY"},
+      {"1.3.6.1.5.5.7.1.5", "AC_TARGETING"},
+      {"1.3.6.1.5.5.7.1.6", "AC_AA_CONTROLS"},
+      {"1.3.6.1.5.5.7.1.7", "IP_ADDR_BLOCKS"},
+      {"1.3.6.1.5.5.7.1.8", "AUTONOMOUS_SYS_IDS"},
+      {"1.3.6.1.5.5.7.1.9", "ROUTER_IDENTIFIER"},
+      {"1.3.6.1.5.5.7.1.10", "AC_PROXYING"},
+      {"1.3.6.1.5.5.7.1.11", "SUBJECT_INFO_ACCESS"},
+      {"1.3.6.1.5.5.7.1.12", "LOGO_TYPE"},
+      {"1.3.6.1.5.5.7.1.13", "WLAN_SSID"},
+      {"1.3.6.1.5.5.7.2", "POLICY_QUALIFIER_IDS"},
+      {"1.3.6.1.5.5.7.2.1", "CPS"},
+      {"1.3.6.1.5.5.7.2.2", "UNOTICE"},
+      {"1.3.6.1.5.5.7.2.3", "TEXT_NOTICE"},
+      {"1.3.6.1.5.5.7.3", "KEY_PURPOSE"},
+      {"1.3.6.1.5.5.7.3.1", "SERVER_AUTH"},
+      {"1.3.6.1.5.5.7.3.2", "CLIENT_AUTH"},
+      {"1.3.6.1.5.5.7.3.3", "CODE_SIGNING"},
+      {"1.3.6.1.5.5.7.3.4", "EMAIL_PROTECTION"},
+      {"1.3.6.1.5.5.7.3.5", "IPSEC_END_SYSTEM"},
+      {"1.3.6.1.5.5.7.3.6", "IPSEC_TUNNEL"},
+      {"1.3.6.1.5.5.7.3.7", "IPSEC_USER"},
+      {"1.3.6.1.5.5.7.3.8", "TIME_STAMPING"},
+      {"1.3.6.1.5.5.7.3.9", "OCSP_SIGNING"},
+      {"1.3.6.1.5.5.7.3.10", "DVCS"},
+      {"1.3.6.1.5.5.7.3.11", "SBGP_CERT_AA_SERVER_AUTH"},
+      {"1.3.6.1.5.5.7.3.13", "EAP_OVER_PPP"},
+      {"1.3.6.1.5.5.7.3.14", "EAP_OVER_LAN"},
+      {"1.3.6.1.5.5.7.4", "CMP_INFORMATION_TYPES"},
+      {"1.3.6.1.5.5.7.4.1", "CA_PROT_ENC_CERT"},
+      {"1.3.6.1.5.5.7.4.2", "SIGN_KEY_PAIR_TYPES"},
+      {"1.3.6.1.5.5.7.4.3", "ENC_KEY_PAIR_TYPES"},
+      {"1.3.6.1.5.5.7.4.4", "PREFERRED_SYMM_ALG"},
+      {"1.3.6.1.5.5.7.4.5", "CA_KEY_UPDATE_INFO"},
+      {"1.3.6.1.5.5.7.4.6", "CURRENT_CRL"},
+      {"1.3.6.1.5.5.7.4.7", "UNSUPPORTED_OI_DS"},
+      {"1.3.6.1.5.5.7.4.10", "KEY_PAIR_PARAM_REQ"},
+      {"1.3.6.1.5.5.7.4.11", "KEY_PAIR_PARAM_REP"},
+      {"1.3.6.1.5.5.7.4.12", "REV_PASSPHRASE"},
+      {"1.3.6.1.5.5.7.4.13", "IMPLICIT_CONFIRM"},
+      {"1.3.6.1.5.5.7.4.14", "CONFIRM_WAIT_TIME"},
+      {"1.3.6.1.5.5.7.4.15", "ORIG_PKI_MESSAGE"},
+      {"1.3.6.1.5.5.7.4.16", "SUPP_LANG_TAGS"},
+      {"1.3.6.1.5.5.7.5", "CRMF_REGISTRATION"},
+      {"1.3.6.1.5.5.7.5.1", "REG_CTRL"},
+      {"1.3.6.1.5.5.7.5.1.1", "REG_TOKEN"},
+      {"1.3.6.1.5.5.7.5.1.2", "AUTHENTICATOR"},
+      {"1.3.6.1.5.5.7.5.1.3", "PKI_PUBLICATION_INFO"},
+      {"1.3.6.1.5.5.7.5.1.4", "PKI_ARCHIVE_OPTIONS"},
+      {"1.3.6.1.5.5.7.5.1.5", "OLD_CERT_ID"},
+      {"1.3.6.1.5.5.7.5.1.6", "PROTOCOL_ENCR_KEY"},
+      {"1.3.6.1.5.5.7.5.1.7", "ALT_CERT_TEMPLATE"},
+      {"1.3.6.1.5.5.7.5.1.8", "WTLS_TEMPLATE"},
+      {"1.3.6.1.5.5.7.5.2", "UTF8_PAIRS"},
+      {"1.3.6.1.5.5.7.5.2.1", "UTF8_PAIRS"},
+      {"1.3.6.1.5.5.7.5.2.2", "CERT_REQ"},
+      {"1.3.6.1.5.5.7.6", "ALGORITHMS"},
+      {"1.3.6.1.5.5.7.6.1", "DES40"},
+      {"1.3.6.1.5.5.7.6.2", "NO_SIGNATURE"},
+      {"1.3.6.1.5.5.7.6.3", "DH_SIG_HMAC_SHA1"},
+      {"1.3.6.1.5.5.7.6.4", "DH_POP"},
+      {"1.3.6.1.5.5.7.7", "CMC_CONTROLS"},
+      {"1.3.6.1.5.5.7.8", "OTHER_NAMES"},
+      {"1.3.6.1.5.5.7.8.1", "PERSONAL_DATA"},
+      {"1.3.6.1.5.5.7.8.2", "USER_GROUP"},
+      {"1.3.6.1.5.5.7.8.5", "XMPP_ADDR"},
+      {"1.3.6.1.5.5.7.9", "PERSONAL_DATA"},
+      {"1.3.6.1.5.5.7.9.1", "DATE_OF_BIRTH"},
+      {"1.3.6.1.5.5.7.9.2", "PLACE_OF_BIRTH"},
+      {"1.3.6.1.5.5.7.9.3", "GENDER"},
+      {"1.3.6.1.5.5.7.9.4", "COUNTRY_OF_CITIZENSHIP"},
+      {"1.3.6.1.5.5.7.9.5", "COUNTRY_OF_RESIDENCE"},
+      {"1.3.6.1.5.5.7.10", "ATTRIBUTE_CERTIFICATE"},
+      {"1.3.6.1.5.5.7.10.1", "AUTHENTICATION_INFO"},
+      {"1.3.6.1.5.5.7.10.2", "ACCESS_IDENTITY"},
+      {"1.3.6.1.5.5.7.10.3", "CHARGING_IDENTITY"},
+      {"1.3.6.1.5.5.7.10.4", "GROUP"},
+      {"1.3.6.1.5.5.7.10.5", "ROLE"},
+      {"1.3.6.1.5.5.7.10.6", "WLAN_SSID"},
+      {"1.3.6.1.5.5.7.11", "PERSONAL_DATA"},
+      {"1.3.6.1.5.5.7.11.1", "PKIX_QC_SYNTAX_V1"},
+      {"1.3.6.1.5.5.7.14.2", "RESOURCE_CERTIFICATE_POLICY"},
+      {"1.3.6.1.5.5.7.20", "LOGO"},
+      {"1.3.6.1.5.5.7.20.1", "LOGO_LOYALTY"},
+      {"1.3.6.1.5.5.7.20.2", "LOGO_BACKGROUND"},
+      {"1.3.6.1.5.5.7.48.1", "OCSP"},
+      {"1.3.6.1.5.5.7.48.1.1", "OCSP_BASIC"},
+      {"1.3.6.1.5.5.7.48.1.2", "OCSP_NONCE"},
+      {"1.3.6.1.5.5.7.48.1.3", "OCSP_CRL"},
+      {"1.3.6.1.5.5.7.48.1.4", "OCSP_RESPONSE"},
+      {"1.3.6.1.5.5.7.48.1.5", "OCSP_NO_CHECK"},
+      {"1.3.6.1.5.5.7.48.1.6", "OCSP_ARCHIVE_CUTOFF"},
+      {"1.3.6.1.5.5.7.48.1.7", "OCSP_SERVICE_LOCATOR"},
+      {"1.3.6.1.5.5.7.48.2", "CA_ISSUERS"},
+      {"1.3.6.1.5.5.7.48.3", "TIME_STAMPING"},
+      {"1.3.6.1.5.5.7.48.4", "DVCS"},
+      {"1.3.6.1.5.5.7.48.5", "CA_REPOSITORY"},
+      {"1.3.6.1.5.5.7.48.7", "SIGNED_OBJECT_REPOSITORY"},
+      {"1.3.6.1.5.5.7.48.10", "RPKI_MANIFEST"},
+      {"1.3.6.1.5.5.7.48.11", "SIGNED_OBJECT"},
+      {"1.3.6.1.5.5.8.1.1", "HMAC_MD5"},
+      {"1.3.6.1.5.5.8.1.2", "HMAC_SHA"},
+      {"1.3.6.1.5.5.8.1.3", "HMAC_TIGER"},
+      {"1.3.6.1.5.5.8.2.2", "I_KE_INTERMEDIATE"},
+      {"1.3.12.2.1011.7.1", "DEC_ENCRYPTION_ALGORITHM"},
+      {"1.3.12.2.1011.7.1.2", "DEC_DEA"},
+      {"1.3.12.2.1011.7.2", "DEC_HASH_ALGORITHM"},
+      {"1.3.12.2.1011.7.2.1", "DEC_MD2"},
+      {"1.3.12.2.1011.7.2.2", "DEC_MD4"},
+      {"1.3.12.2.1011.7.3", "DEC_SIGNATURE_ALGORITHM"},
+      {"1.3.12.2.1011.7.3.1", "DEC_MD2WITH_RSA"},
+      {"1.3.12.2.1011.7.3.2", "DEC_MD4WITH_RSA"},
+      {"1.3.12.2.1011.7.3.3", "DEC_DEAMAC"},
+      {"1.3.14.2.26.5", "SHA"},
+      {"1.3.14.3.2.1.1", "RSA"},
+      {"1.3.14.3.2.2", "MD4_WIT_RSA"},
+      {"1.3.14.3.2.3", "MD5_WITH_RSA"},
+      {"1.3.14.3.2.4", "MD4_WITH_RSA_ENCRYPTION"},
+      {"1.3.14.3.2.2.1", "SQMOD_N"},
+      {"1.3.14.3.2.3.1", "SQMOD_NWITH_RSA"},
+      {"1.3.14.3.2.6", "DES_ECB"},
+      {"1.3.14.3.2.7", "DES_CBC"},
+      {"1.3.14.3.2.8", "DES_OFB"},
+      {"1.3.14.3.2.9", "DES_CFB"},
+      {"1.3.14.3.2.10", "DES_MAC"},
+      {"1.3.14.3.2.11", "RSA_SIGNATURE"},
+      {"1.3.14.3.2.12", "DSA"},
+      {"1.3.14.3.2.13", "DSA_WITH_SHA"},
+      {"1.3.14.3.2.14", "MDC2_WITH_RSA_SIGNATURE"},
+      {"1.3.14.3.2.15", "SHA_WITH_RSA_SIGNATURE"},
+      {"1.3.14.3.2.16", "DH_WITH_COMMON_MODULUS"},
+      {"1.3.14.3.2.17", "DES_EDE"},
+      {"1.3.14.3.2.18", "SHA"},
+      {"1.3.14.3.2.19", "MDC_2"},
+      {"1.3.14.3.2.20", "DSA_COMMON"},
+      {"1.3.14.3.2.21", "DSA_COMMON_WITH_SHA"},
+      {"1.3.14.3.2.22", "RSA_KEY_TRANSPORT"},
+      {"1.3.14.3.2.23", "KEYED_HASH_SEAL"},
+      {"1.3.14.3.2.24", "MD2_WITH_RSA_SIGNATURE"},
+      {"1.3.14.3.2.25", "MD5_WITH_RSA_SIGNATURE"},
+      {"1.3.14.3.2.26", "SHA1"},
+      {"1.3.14.3.2.27", "DSA_WITH_SHA1"},
+      {"1.3.14.3.2.28", "DSA_WITH_COMMON_SHA1"},
+      {"1.3.14.3.2.29", "SHA_1_WITH_RSA_ENCRYPTION"},
+      {"1.3.14.3.3.1", "SIMPLE_STRONG_AUTH_MECHANISM"},
+      {"1.3.14.7.2.1.1", "EL_GAMAL"},
+      {"1.3.14.7.2.3.1", "MD2_WITH_RSA"},
+      {"1.3.14.7.2.3.2", "MD2_WITH_EL_GAMAL"},
+      {"1.3.36.1", "DOCUMENT"},
+      {"1.3.36.1.1", "FINAL_VERSION"},
+      {"1.3.36.1.2", "DRAFT"},
+      {"1.3.36.2", "SIO"},
+      {"1.3.36.2.1", "SEDU"},
+      {"1.3.36.3", "ALGORITHM"},
+      {"1.3.36.3.1", "ENCRYPTION_ALGORITHM"},
+      {"1.3.36.3.1.1", "DES"},
+      {"1.3.36.3.1.1.1", "DES_ECB_PAD"},
+      {"1.3.36.3.1.1.1.1", "DES_ECB_IS_OPAD"},
+      {"1.3.36.3.1.1.2.1", "DES_CBC_PAD"},
+      {"1.3.36.3.1.1.2.1.1", "DES_CBC_IS_OPAD"},
+      {"1.3.36.3.1.3", "DES_3"},
+      {"1.3.36.3.1.3.1.1", "DES_3_ECB_PAD"},
+      {"1.3.36.3.1.3.1.1.1", "DES_3_ECB_IS_OPAD"},
+      {"1.3.36.3.1.3.2.1", "DES_3_CBC_PAD"},
+      {"1.3.36.3.1.3.2.1.1", "DES_3_CBC_IS_OPAD"},
+      {"1.3.36.3.1.2", "IDEA"},
+      {"1.3.36.3.1.2.1", "IDEA_ECB"},
+      {"1.3.36.3.1.2.1.1", "IDEA_ECB_PAD"},
+      {"1.3.36.3.1.2.1.1.1", "IDEA_ECB_IS_OPAD"},
+      {"1.3.36.3.1.2.2", "IDEA_CBC"},
+      {"1.3.36.3.1.2.2.1", "IDEA_CBC_PAD"},
+      {"1.3.36.3.1.2.2.1.1", "IDEA_CBC_IS_OPAD"},
+      {"1.3.36.3.1.2.3", "IDEA_OFB"},
+      {"1.3.36.3.1.2.4", "IDEA_CFB"},
+      {"1.3.36.3.1.4", "RSA_ENCRYPTION"},
+      {"1.3.36.3.1.4.512.17", "RSA_ENCRYPTION_WITHLMOD512EXPE17"},
+      {"1.3.36.3.1.5", "BSI_1"},
+      {"1.3.36.3.1.5.1", "BSI_1_ECB_PAD"},
+      {"1.3.36.3.1.5.2", "BSI_1_CBC_PAD"},
+      {"1.3.36.3.1.5.2.1", "BSI_1_CBC_PE_MPAD"},
+      {"1.3.36.3.2", "HASH_ALGORITHM"},
+      {"1.3.36.3.2.1", "RIPEMD160"},
+      {"1.3.36.3.2.2", "RIPEMD128"},
+      {"1.3.36.3.2.3", "RIPEMD256"},
+      {"1.3.36.3.2.4", "MDC2SINGLE_LENGTH"},
+      {"1.3.36.3.2.5", "MDC2DOUBLE_LENGTH"},
+      {"1.3.36.3.3", "SIGNATURE_ALGORITHM"},
+      {"1.3.36.3.3.1", "RSA_SIGNATURE"},
+      {"1.3.36.3.3.1.1", "RSA_SIGNATURE_WITHSHA1"},
+      {"1.3.36.3.3.1.1.1024.11", "RSA_SIGNATURE_WITHSHA1_L1024_L11"},
+      {"1.3.36.3.3.1.2", "RSA_SIGNATURE_WITHRIPEMD160"},
+      {"1.3.36.3.3.1.2.1024.11", "RSA_SIGNATURE_WITHRIPEMD160_L1024_L11"},
+      {"1.3.36.3.3.1.3", "RSA_SIGNATURE_WITHRIMPEMD128"},
+      {"1.3.36.3.3.1.4", "RSA_SIGNATURE_WITHRIMPEMD256"},
+      {"1.3.36.3.3.2", "ECSIE_SIGN"},
+      {"1.3.36.3.3.2.1", "ECSIE_SIGN_WITHSHA1"},
+      {"1.3.36.3.3.2.2", "ECSIE_SIGN_WITHRIPEMD160"},
+      {"1.3.36.3.3.2.3", "ECSIE_SIGN_WITHMD2"},
+      {"1.3.36.3.3.2.4", "ECSIE_SIGN_WITHMD5"},
+      {"1.3.36.3.3.2.8.1.1.1", "BRAINPOOL_P160R1"},
+      {"1.3.36.3.3.2.8.1.1.2", "BRAINPOOL_P160T1"},
+      {"1.3.36.3.3.2.8.1.1.3", "BRAINPOOL_P192R1"},
+      {"1.3.36.3.3.2.8.1.1.4", "BRAINPOOL_P192T1"},
+      {"1.3.36.3.3.2.8.1.1.5", "BRAINPOOL_P224R1"},
+      {"1.3.36.3.3.2.8.1.1.6", "BRAINPOOL_P224T1"},
+      {"1.3.36.3.3.2.8.1.1.7", "BRAINPOOL_P256R1"},
+      {"1.3.36.3.3.2.8.1.1.8", "BRAINPOOL_P256T1"},
+      {"1.3.36.3.3.2.8.1.1.9", "BRAINPOOL_P320R1"},
+      {"1.3.36.3.3.2.8.1.1.10", "BRAINPOOL_P320T1"},
+      {"1.3.36.3.3.2.8.1.1.11", "BRAINPOOL_P384R1"},
+      {"1.3.36.3.3.2.8.1.1.12", "BRAINPOOL_P384T1"},
+      {"1.3.36.3.3.2.8.1.1.13", "BRAINPOOL_P512R1"},
+      {"1.3.36.3.3.2.8.1.1.14", "BRAINPOOL_P512T1"},
+      {"1.3.36.3.4", "SIGNATURE_SCHEME"},
+      {"1.3.36.3.4.1", "SIG_S_ISO9796_1"},
+      {"1.3.36.3.4.2", "SIG_S_ISO9796_2"},
+      {"1.3.36.3.4.2.1", "SIG_S_ISO9796_2_WITHRED"},
+      {"1.3.36.3.4.2.2", "SIG_S_ISO9796_2_WITHRSA"},
+      {"1.3.36.3.4.2.3", "SIG_S_ISO9796_2_WITHRND"},
+      {"1.3.36.4", "ATTRIBUTE"},
+      {"1.3.36.5", "POLICY"},
+      {"1.3.36.6", "API"},
+      {"1.3.36.6.1", "MANUFACTURER_SPECIFIC_API"},
+      {"1.3.36.6.1.1", "UTIMACO_API"},
+      {"1.3.36.6.2", "FUNCTIONALITY_SPECIFIC_API"},
+      {"1.3.36.7", "KEYMGMNT"},
+      {"1.3.36.7.1", "KEYAGREE"},
+      {"1.3.36.7.1.1", "BSI_PKE"},
+      {"1.3.36.7.2", "KEYTRANS"},
+      {"1.3.36.7.2.1", "ENC_ISO9796_2_WITHRSA"},
+      {"1.3.36.8.1.1", "TELETRUST_SIG_G_CONFORM_POLICY_IDENTIFIER"},
+      {"1.3.36.8.2.1", "DIRECTORY_SERVICE"},
+      {"1.3.36.8.3.1", "DATE_OF_CERT_GEN"},
+      {"1.3.36.8.3.2", "PROCURATION"},
+      {"1.3.36.8.3.3", "ADMISSION"},
+      {"1.3.36.8.3.4", "MONETARY_LIMIT"},
+      {"1.3.36.8.3.5", "DECLARATION_OF_MAJORITY"},
+      {"1.3.36.8.3.6", "INTEGRATED_CIRCUIT_CARD_SERIAL_NUMBER"},
+      {"1.3.36.8.3.7", "P_K_REFERENCE"},
+      {"1.3.36.8.3.8", "RESTRICTION"},
+      {"1.3.36.8.3.9", "RETRIEVE_IF_ALLOWED"},
+      {"1.3.36.8.3.10", "REQUESTED_CERTIFICATE"},
+      {"1.3.36.8.3.11", "NAMING_AUTHORITIES"},
+      {"1.3.36.8.3.11.1", "RECHT_WIRTSCHAFT_STEUERN"},
+      {"1.3.36.8.3.11.1.1", "RECHTSANWAELTIN"},
+      {"1.3.36.8.3.11.1.2", "RECHTSANWALT"},
+      {"1.3.36.8.3.11.1.3", "RECHTS_BEISTAND"},
+      {"1.3.36.8.3.11.1.4", "STEUER_BERATERIN"},
+      {"1.3.36.8.3.11.1.5", "STEUER_BERATER"},
+      {"1.3.36.8.3.11.1.6", "STEUER_BEVOLLMAECHTIGTE"},
+      {"1.3.36.8.3.11.1.7", "STEUER_BEVOLLMAECHTIGTER"},
+      {"1.3.36.8.3.11.1.8", "NOTARIN"},
+      {"1.3.36.8.3.11.1.9", "NOTAR"},
+      {"1.3.36.8.3.11.1.10", "NOTAR_VERTRETERIN"},
+      {"1.3.36.8.3.11.1.11", "NOTAR_VERTRETER"},
+      {"1.3.36.8.3.11.1.12", "NOTARIATS_VERWALTERIN"},
+      {"1.3.36.8.3.11.1.13", "NOTARIATS_VERWALTER"},
+      {"1.3.36.8.3.11.1.14", "WIRTSCHAFTS_PRUEFERIN"},
+      {"1.3.36.8.3.11.1.15", "WIRTSCHAFTS_PRUEFER"},
+      {"1.3.36.8.3.11.1.16", "VEREIDIGTE_BUCHPRUEFERIN"},
+      {"1.3.36.8.3.11.1.17", "VEREIDIGTER_BUCHPRUEFER"},
+      {"1.3.36.8.3.11.1.18", "PATENT_ANWAELTIN"},
+      {"1.3.36.8.3.11.1.19", "PATENT_ANWALT"},
+      {"1.3.36.8.3.12", "CERT_IN_DIR_SINCE"},
+      {"1.3.36.8.3.13", "CERT_HASH"},
+      {"1.3.36.8.3.14", "NAME_AT_BIRTH"},
+      {"1.3.36.8.3.15", "ADDITIONAL_INFORMATION"},
+      {"1.3.36.8.4.1", "PERSONAL_DATA"},
+      {"1.3.36.8.4.8", "RESTRICTION"},
+      {"1.3.36.8.5.1.1.1", "RSA_INDICATE_SHA1"},
+      {"1.3.36.8.5.1.1.2", "RSA_INDICATE_RIPEMD160"},
+      {"1.3.36.8.5.1.1.3", "RSA_WITH_SHA1"},
+      {"1.3.36.8.5.1.1.4", "RSA_WITH_RIPEMD160"},
+      {"1.3.36.8.5.1.2.1", "DSA_EXTENDED"},
+      {"1.3.36.8.5.1.2.2", "DSA_WITH_RIPEMD160"},
+      {"1.3.36.8.6.1", "CERT"},
+      {"1.3.36.8.6.2", "CERT_REF"},
+      {"1.3.36.8.6.3", "ATTR_CERT"},
+      {"1.3.36.8.6.4", "ATTR_REF"},
+      {"1.3.36.8.6.5", "FILE_NAME"},
+      {"1.3.36.8.6.6", "STORAGE_TIME"},
+      {"1.3.36.8.6.7", "FILE_SIZE"},
+      {"1.3.36.8.6.8", "LOCATION"},
+      {"1.3.36.8.6.9", "SIG_NUMBER"},
+      {"1.3.36.8.6.10", "AUTO_GEN"},
+      {"1.3.36.8.7.1.1", "PT_ADOBE_ILL"},
+      {"1.3.36.8.7.1.2", "PT_AMI_PRO"},
+      {"1.3.36.8.7.1.3", "PT_AUTO_CAD"},
+      {"1.3.36.8.7.1.4", "PT_BINARY"},
+      {"1.3.36.8.7.1.5", "PT_BMP"},
+      {"1.3.36.8.7.1.6", "PT_CGM"},
+      {"1.3.36.8.7.1.7", "PT_COREL_CRT"},
+      {"1.3.36.8.7.1.8", "PT_COREL_DRW"},
+      {"1.3.36.8.7.1.9", "PT_COREL_EXC"},
+      {"1.3.36.8.7.1.10", "PT_COREL_PHT"},
+      {"1.3.36.8.7.1.11", "PT_DRAW"},
+      {"1.3.36.8.7.1.12", "PT_DVI"},
+      {"1.3.36.8.7.1.13", "PT_EPS"},
+      {"1.3.36.8.7.1.14", "PT_EXCEL"},
+      {"1.3.36.8.7.1.15", "PT_GEM"},
+      {"1.3.36.8.7.1.16", "PT_GIF"},
+      {"1.3.36.8.7.1.17", "PT_HPGL"},
+      {"1.3.36.8.7.1.18", "PT_JPEG"},
+      {"1.3.36.8.7.1.19", "PT_KODAK"},
+      {"1.3.36.8.7.1.20", "PT_LA_TE_X"},
+      {"1.3.36.8.7.1.21", "PT_LOTUS"},
+      {"1.3.36.8.7.1.22", "PT_LOTUS_PIC"},
+      {"1.3.36.8.7.1.23", "PT_MAC_PICT"},
+      {"1.3.36.8.7.1.24", "PT_MAC_WORD"},
+      {"1.3.36.8.7.1.25", "PT_MS_WF_D"},
+      {"1.3.36.8.7.1.26", "PT_MS_WORD"},
+      {"1.3.36.8.7.1.27", "PT_MS_WORD2"},
+      {"1.3.36.8.7.1.28", "PT_MS_WORD6"},
+      {"1.3.36.8.7.1.29", "PT_MS_WORD8"},
+      {"1.3.36.8.7.1.30", "PT_PDF"},
+      {"1.3.36.8.7.1.31", "PT_PIF"},
+      {"1.3.36.8.7.1.32", "PT_POSTSCRIPT"},
+      {"1.3.36.8.7.1.33", "PT_RTF"},
+      {"1.3.36.8.7.1.34", "PT_SCITEX"},
+      {"1.3.36.8.7.1.35", "PT_TAR"},
+      {"1.3.36.8.7.1.36", "PT_TARGA"},
+      {"1.3.36.8.7.1.37", "PT_TE_X"},
+      {"1.3.36.8.7.1.38", "PT_TEXT"},
+      {"1.3.36.8.7.1.39", "PT_TIFF"},
+      {"1.3.36.8.7.1.40", "PT_TIFF_FC"},
+      {"1.3.36.8.7.1.41", "PT_UID"},
+      {"1.3.36.8.7.1.42", "PT_UU_ENCODE"},
+      {"1.3.36.8.7.1.43", "PT_WMF"},
+      {"1.3.36.8.7.1.44", "PT_WORD_PERFECT"},
+      {"1.3.36.8.7.1.45", "PT_WP_GRPH"},
+      {"1.3.101.1.4", "THAWTE_CE"},
+      {"1.3.101.1.4.1", "STRONG_EXTRANET"},
+      {"1.3.132.0.1", "SECT163K1"},
+      {"1.3.132.0.2", "SECT163R1"},
+      {"1.3.132.0.3", "SECT239K1"},
+      {"1.3.132.0.4", "SECT113R1"},
+      {"1.3.132.0.5", "SECT113R2"},
+      {"1.3.132.0.6", "SECP112R1"},
+      {"1.3.132.0.7", "SECP112R2"},
+      {"1.3.132.0.8", "SECP160R1"},
+      {"1.3.132.0.9", "SECP160K1"},
+      {"1.3.132.0.10", "SECP256K1"},
+      {"1.3.132.0.15", "SECT163R2"},
+      {"1.3.132.0.16", "SECT283K1"},
+      {"1.3.132.0.17", "SECT283R1"},
+      {"1.3.132.0.22", "SECT131R1"},
+      {"1.3.132.0.23", "SECT131R2"},
+      {"1.3.132.0.24", "SECT193R1"},
+      {"1.3.132.0.25", "SECT193R2"},
+      {"1.3.132.0.26", "SECT233K1"},
+      {"1.3.132.0.27", "SECT233R1"},
+      {"1.3.132.0.28", "SECP128R1"},
+      {"1.3.132.0.29", "SECP128R2"},
+      {"1.3.132.0.30", "SECP160R2"},
+      {"1.3.132.0.31", "SECP192K1"},
+      {"1.3.132.0.32", "SECP224K1"},
+      {"1.3.132.0.33", "SECP224R1"},
+      {"1.3.132.0.34", "SECP384R1"},
+      {"1.3.132.0.35", "SECP521R1"},
+      {"1.3.132.0.36", "SECT409K1"},
+      {"1.3.132.0.37", "SECT409R1"},
+      {"1.3.132.0.38", "SECT571K1"},
+      {"1.3.132.0.39", "SECT571R1"},
+      {"1.3.133.16.840.9.84", "X984"},
+      {"1.3.133.16.840.9.84.0", "X984_MODULE"},
+      {"1.3.133.16.840.9.84.0.1", "X984_BIOMETRICS"},
+      {"1.3.133.16.840.9.84.0.2", "X984_CMS"},
+      {"1.3.133.16.840.9.84.0.3", "X984_IDENTIFIERS"},
+      {"1.3.133.16.840.9.84.1", "X984_BIOMETRIC"},
+      {"1.3.133.16.840.9.84.1.0", "BIOMETRIC_UNKNOWN_TYPE"},
+      {"1.3.133.16.840.9.84.1.1", "BIOMETRIC_BODY_ODOR"},
+      {"1.3.133.16.840.9.84.1.2", "BIOMETRIC_DNA"},
+      {"1.3.133.16.840.9.84.1.3", "BIOMETRIC_EAR_SHAPE"},
+      {"1.3.133.16.840.9.84.1.4", "BIOMETRIC_FACIAL_FEATURES"},
+      {"1.3.133.16.840.9.84.1.5", "BIOMETRIC_FINGER_IMAGE"},
+      {"1.3.133.16.840.9.84.1.6", "BIOMETRIC_FINGER_GEOMETRY"},
+      {"1.3.133.16.840.9.84.1.7", "BIOMETRIC_HAND_GEOMETRY"},
+      {"1.3.133.16.840.9.84.1.8", "BIOMETRIC_IRIS_FEATURES"},
+      {"1.3.133.16.840.9.84.1.9", "BIOMETRIC_KEYSTROKE_DYNAMICS"},
+      {"1.3.133.16.840.9.84.1.10", "BIOMETRIC_PALM"},
+      {"1.3.133.16.840.9.84.1.11", "BIOMETRIC_RETINA"},
+      {"1.3.133.16.840.9.84.1.12", "BIOMETRIC_SIGNATURE"},
+      {"1.3.133.16.840.9.84.1.13", "BIOMETRIC_SPEECH_PATTERN"},
+      {"1.3.133.16.840.9.84.1.14", "BIOMETRIC_THERMAL_IMAGE"},
+      {"1.3.133.16.840.9.84.1.15", "BIOMETRIC_VEIN_PATTERN"},
+      {"1.3.133.16.840.9.84.1.16", "BIOMETRIC_THERMAL_FACE_IMAGE"},
+      {"1.3.133.16.840.9.84.1.17", "BIOMETRIC_THERMAL_HAND_IMAGE"},
+      {"1.3.133.16.840.9.84.1.18", "BIOMETRIC_LIP_MOVEMENT"},
+      {"1.3.133.16.840.9.84.1.19", "BIOMETRIC_GAIT"},
+      {"1.3.133.16.840.9.84.3", "X984_MATCHING_METHOD"},
+      {"1.3.133.16.840.9.84.4", "X984_FORMAT_OWNER"},
+      {"1.3.133.16.840.9.84.4.0", "X984_CBEFF_OWNER"},
+      {"1.3.133.16.840.9.84.4.1", "X984_IBIA_OWNER"},
+      {"1.3.133.16.840.9.84.4.1.1", "IBIA_OWNER_SAFLINK"},
+      {"1.3.133.16.840.9.84.4.1.2", "IBIA_OWNER_BIOSCRYPT"},
+      {"1.3.133.16.840.9.84.4.1.3", "IBIA_OWNER_VISIONICS"},
+      {"1.3.133.16.840.9.84.4.1.4", "IBIA_OWNER_INFINEON_TECHNOLOGIES_AG"},
+      {"1.3.133.16.840.9.84.4.1.5", "IBIA_OWNER_IRIDIAN_TECHNOLOGIES"},
+      {"1.3.133.16.840.9.84.4.1.6", "IBIA_OWNER_VERIDICOM"},
+      {"1.3.133.16.840.9.84.4.1.7", "IBIA_OWNER_CYBER_SIGN"},
+      {"1.3.133.16.840.9.84.4.1.8", "IBIA_OWNERE_CRYP"},
+      {"1.3.133.16.840.9.84.4.1.9", "IBIA_OWNER_FINGERPRINT_CARDS_AB"},
+      {"1.3.133.16.840.9.84.4.1.10", "IBIA_OWNER_SECU_GEN"},
+      {"1.3.133.16.840.9.84.4.1.11", "IBIA_OWNER_PRECISE_BIOMETRIC"},
+      {"1.3.133.16.840.9.84.4.1.12", "IBIA_OWNER_IDENTIX"},
+      {"1.3.133.16.840.9.84.4.1.13", "IBIA_OWNER_DERMALOG"},
+      {"1.3.133.16.840.9.84.4.1.14", "IBIA_OWNER_LOGICO"},
+      {"1.3.133.16.840.9.84.4.1.15", "IBIA_OWNER_NIST"},
+      {"1.3.133.16.840.9.84.4.1.16", "IBIA_OWNER_A3_VISION"},
+      {"1.3.133.16.840.9.84.4.1.17", "IBIA_OWNER_NEC"},
+      {"1.3.133.16.840.9.84.4.1.18", "IBIA_OWNER_ST_MICROELECTRONICS"},
+      {"2.5.4.0", "OBJECT_CLASS"},
+      {"2.5.4.1", "ALIASED_ENTRY_NAME"},
+      {"2.5.4.2", "KNOWLEDGE_INFORMATION"},
+      {"2.5.4.3", "COMMON_NAME"},
+      {"2.5.4.4", "SURNAME"},
+      {"2.5.4.5", "SERIAL_NUMBER"},
+      {"2.5.4.6", "COUNTRY_NAME"},
+      {"2.5.4.7", "LOCALITY_NAME"},
+      {"2.5.4.7.1", "COLLECTIVE_LOCALITY_NAME"},
+      {"2.5.4.8", "STATE_OR_PROVINCE_NAME"},
+      {"2.5.4.8.1", "COLLECTIVE_STATE_OR_PROVINCE_NAME"},
+      {"2.5.4.9", "STREET_ADDRESS"},
+      {"2.5.4.9.1", "COLLECTIVE_STREET_ADDRESS"},
+      {"2.5.4.10", "ORGANIZATION_NAME"},
+      {"2.5.4.10.1", "COLLECTIVE_ORGANIZATION_NAME"},
+      {"2.5.4.11", "ORGANIZATIONAL_UNIT_NAME"},
+      {"2.5.4.11.1", "COLLECTIVE_ORGANIZATIONAL_UNIT_NAME"},
+      {"2.5.4.12", "TITLE"},
+      {"2.5.4.13", "DESCRIPTION"},
+      {"2.5.4.14", "SEARCH_GUIDE"},
+      {"2.5.4.15", "BUSINESS_CATEGORY"},
+      {"2.5.4.16", "POSTAL_ADDRESS"},
+      {"2.5.4.16.1", "COLLECTIVE_POSTAL_ADDRESS"},
+      {"2.5.4.17", "POSTAL_CODE"},
+      {"2.5.4.17.1", "COLLECTIVE_POSTAL_CODE"},
+      {"2.5.4.18", "POST_OFFICE_BOX"},
+      {"2.5.4.18.1", "COLLECTIVE_POST_OFFICE_BOX"},
+      {"2.5.4.19", "PHYSICAL_DELIVERY_OFFICE_NAME"},
+      {"2.5.4.19.1", "COLLECTIVE_PHYSICAL_DELIVERY_OFFICE_NAME"},
+      {"2.5.4.20", "TELEPHONE_NUMBER"},
+      {"2.5.4.20.1", "COLLECTIVE_TELEPHONE_NUMBER"},
+      {"2.5.4.21", "TELEX_NUMBER"},
+      {"2.5.4.21.1", "COLLECTIVE_TELEX_NUMBER"},
+      {"2.5.4.22", "TELETEX_TERMINAL_IDENTIFIER"},
+      {"2.5.4.22.1", "COLLECTIVE_TELETEX_TERMINAL_IDENTIFIER"},
+      {"2.5.4.23", "FACSIMILE_TELEPHONE_NUMBER"},
+      {"2.5.4.23.1", "COLLECTIVE_FACSIMILE_TELEPHONE_NUMBER"},
+      {"2.5.4.24", "X121_ADDRESS"},
+      {"2.5.4.25", "INTERNATIONAL_ISDN_NUMBER"},
+      {"2.5.4.25.1", "COLLECTIVE_INTERNATIONAL_ISDN_NUMBER"},
+      {"2.5.4.26", "REGISTERED_ADDRESS"},
+      {"2.5.4.27", "DESTINATION_INDICATOR"},
+      {"2.5.4.28", "PREFERRED_DELIVERY_MEHTOD"},
+      {"2.5.4.29", "PRESENTATION_ADDRESS"},
+      {"2.5.4.30", "SUPPORTED_APPLICATION_CONTEXT"},
+      {"2.5.4.31", "MEMBER"},
+      {"2.5.4.32", "OWNER"},
+      {"2.5.4.33", "ROLE_OCCUPANT"},
+      {"2.5.4.34", "SEE_ALSO"},
+      {"2.5.4.35", "USER_PASSWORD"},
+      {"2.5.4.36", "USER_CERTIFICATE"},
+      {"2.5.4.37", "CA_CERTIFICATE"},
+      {"2.5.4.38", "AUTHORITY_REVOCATION_LIST"},
+      {"2.5.4.39", "CERTIFICATE_REVOCATION_LIST"},
+      {"2.5.4.40", "CROSS_CERTIFICATE_PAIR"},
+      {"2.5.4.41", "NAME"},
+      {"2.5.4.42", "GIVEN_NAME"},
+      {"2.5.4.43", "INITIALS"},
+      {"2.5.4.44", "GENERATION_QUALIFIER"},
+      {"2.5.4.45", "UNIQUE_IDENTIFIER"},
+      {"2.5.4.46", "DN_QUALIFIER"},
+      {"2.5.4.47", "ENHANCED_SEARCH_GUIDE"},
+      {"2.5.4.48", "PROTOCOL_INFORMATION"},
+      {"2.5.4.49", "DISTINGUISHED_NAME"},
+      {"2.5.4.50", "UNIQUE_MEMBER"},
+      {"2.5.4.51", "HOUSE_IDENTIFIER"},
+      {"2.5.4.52", "SUPPORTED_ALGORITHMS"},
+      {"2.5.4.53", "DELTA_REVOCATION_LIST"},
+      {"2.5.4.54", "DMD_NAME"},
+      {"2.5.4.55", "CLEARANCE"},
+      {"2.5.4.56", "DEFAULT_DIR_QOP"},
+      {"2.5.4.57", "ATTRIBUTE_INTEGRITY_INFO"},
+      {"2.5.4.58", "ATTRIBUTE_CERTIFICATE"},
+      {"2.5.4.59", "ATTRIBUTE_CERTIFICATE_REVOCATION_LIST"},
+      {"2.5.4.60", "CONF_KEY_INFO"},
+      {"2.5.4.61", "A_A_CERTIFICATE"},
+      {"2.5.4.62", "ATTRIBUTE_DESCRIPTOR_CERTIFICATE"},
+      {"2.5.4.63", "ATTRIBUTE_AUTHORITY_REVOCATION_LIST"},
+      {"2.5.4.64", "FAMILY_INFORMATION"},
+      {"2.5.4.65", "PSEUDONYM"},
+      {"2.5.4.66", "COMMUNICATIONS_SERVICE"},
+      {"2.5.4.67", "COMMUNICATIONS_NETWORK"},
+      {"2.5.4.68", "CERTIFICATION_PRACTICE_STMT"},
+      {"2.5.4.69", "CERTIFICATE_POLICY"},
+      {"2.5.4.70", "PKI_PATH"},
+      {"2.5.4.71", "PRIV_POLICY"},
+      {"2.5.4.72", "ROLE"},
+      {"2.5.4.73", "DELEGATION_PATH"},
+      {"2.5.4.74", "PROT_PRIV_POLICY"},
+      {"2.5.4.75", "X_ML_PRIVILEGE_INFO"},
+      {"2.5.4.76", "XML_PRIV_POLICY"},
+      {"2.5.4.82", "PERMISSION"},
+      {"2.5.6.0", "TOP"},
+      {"2.5.6.1", "ALIAS"},
+      {"2.5.6.2", "COUNTRY"},
+      {"2.5.6.3", "LOCALITY"},
+      {"2.5.6.4", "ORGANIZATION"},
+      {"2.5.6.5", "ORGANIZATIONAL_UNIT"},
+      {"2.5.6.6", "PERSON"},
+      {"2.5.6.7", "ORGANIZATIONAL_PERSON"},
+      {"2.5.6.8", "ORGANIZATIONAL_ROLE"},
+      {"2.5.6.9", "GROUP_OF_NAMES"},
+      {"2.5.6.10", "RESIDENTIAL_PERSON"},
+      {"2.5.6.11", "APPLICATION_PROCESS"},
+      {"2.5.6.12", "APPLICATION_ENTITY"},
+      {"2.5.6.13", "D_SA"},
+      {"2.5.6.14", "DEVICE"},
+      {"2.5.6.15", "STRONG_AUTHENTICATION_USER"},
+      {"2.5.6.16", "CERTIFICATE_AUTHORITY"},
+      {"2.5.6.17", "GROUP_OF_UNIQUE_NAMES"},
+      {"2.5.6.21", "PKI_USER"},
+      {"2.5.6.22", "PKI_CA"},
+      {"2.5.8.1.1", "RSA"},
+      {"2.5.29.1", "AUTHORITY_KEY_IDENTIFIER"},
+      {"2.5.29.2", "KEY_ATTRIBUTES"},
+      {"2.5.29.3", "CERTIFICATE_POLICIES"},
+      {"2.5.29.4", "KEY_USAGE_RESTRICTION"},
+      {"2.5.29.5", "POLICY_MAPPING"},
+      {"2.5.29.6", "SUBTREES_CONSTRAINT"},
+      {"2.5.29.7", "SUBJECT_ALT_NAME"},
+      {"2.5.29.8", "ISSUER_ALT_NAME"},
+      {"2.5.29.9", "SUBJECT_DIRECTORY_ATTRIBUTES"},
+      {"2.5.29.10", "BASIC_CONSTRAINTS"},
+      {"2.5.29.11", "NAME_CONSTRAINTS"},
+      {"2.5.29.12", "POLICY_CONSTRAINTS"},
+      {"2.5.29.13", "BASIC_CONSTRAINTS"},
+      {"2.5.29.14", "SUBJECT_KEY_IDENTIFIER"},
+      {"2.5.29.15", "KEY_USAGE"},
+      {"2.5.29.16", "PRIVATE_KEY_USAGE_PERIOD"},
+      {"2.5.29.17", "SUBJECT_ALT_NAME"},
+      {"2.5.29.18", "ISSUER_ALT_NAME"},
+      {"2.5.29.19", "BASIC_CONSTRAINTS"},
+      {"2.5.29.20", "C_RL_NUMBER"},
+      {"2.5.29.21", "C_RL_REASON"},
+      {"2.5.29.22", "EXPIRATION_DATE"},
+      {"2.5.29.23", "INSTRUCTION_CODE"},
+      {"2.5.29.24", "INVALIDITY_DATE"},
+      {"2.5.29.25", "C_RL_DISTRIBUTION_POINTS"},
+      {"2.5.29.26", "ISSUING_DISTRIBUTION_POINT"},
+      {"2.5.29.27", "DELTA_CRL_INDICATOR"},
+      {"2.5.29.28", "ISSUING_DISTRIBUTION_POINT"},
+      {"2.5.29.29", "CERTIFICATE_ISSUER"},
+      {"2.5.29.30", "NAME_CONSTRAINTS"},
+      {"2.5.29.31", "C_RL_DISTRIBUTION_POINTS"},
+      {"2.5.29.32", "CERTIFICATE_POLICIES"},
+      {"2.5.29.32.0", "ANY_POLICY"},
+      {"2.5.29.33", "POLICY_MAPPINGS"},
+      {"2.5.29.34", "POLICY_CONSTRAINTS"},
+      {"2.5.29.35", "AUTHORITY_KEY_IDENTIFIER"},
+      {"2.5.29.36", "POLICY_CONSTRAINTS"},
+      {"2.5.29.37", "EXT_KEY_USAGE"},
+      {"2.5.29.37.0", "ANY_EXTENDED_KEY_USAGE"},
+      {"2.5.29.38", "AUTHORITY_ATTRIBUTE_IDENTIFIER"},
+      {"2.5.29.39", "ROLE_SPEC_CERT_IDENTIFIER"},
+      {"2.5.29.40", "C_RL_STREAM_IDENTIFIER"},
+      {"2.5.29.41", "BASIC_ATT_CONSTRAINTS"},
+      {"2.5.29.42", "DELEGATED_NAME_CONSTRAINTS"},
+      {"2.5.29.43", "TIME_SPECIFICATION"},
+      {"2.5.29.44", "C_RL_SCOPE"},
+      {"2.5.29.45", "STATUS_REFERRALS"},
+      {"2.5.29.46", "FRESHEST_CRL"},
+      {"2.5.29.47", "ORDERED_LIST"},
+      {"2.5.29.48", "ATTRIBUTE_DESCRIPTOR"},
+      {"2.5.29.49", "USER_NOTICE"},
+      {"2.5.29.50", "S_OA_IDENTIFIER"},
+      {"2.5.29.51", "BASE_UPDATE_TIME"},
+      {"2.5.29.52", "ACCEPTABLE_CERT_POLICIES"},
+      {"2.5.29.53", "DELTA_INFO"},
+      {"2.5.29.54", "INHIBIT_ANY_POLICY"},
+      {"2.5.29.55", "TARGET_INFORMATION"},
+      {"2.5.29.56", "NO_REV_AVAIL"},
+      {"2.5.29.57", "ACCEPTABLE_PRIVILEGE_POLICIES"},
+      {"2.5.29.58", "TO_BE_REVOKED"},
+      {"2.5.29.59", "REVOKED_GROUPS"},
+      {"2.5.29.60", "EXPIRED_CERTS_ON_CRL"},
+      {"2.5.29.61", "INDIRECT_ISSUER"},
+      {"2.5.29.62", "NO_ASSERTION"},
+      {"2.5.29.63", "A_AISSUING_DISTRIBUTION_POINT"},
+      {"2.5.29.64", "ISSUED_ON_BEHALF_OF"},
+      {"2.5.29.65", "SINGLE_USE"},
+      {"2.5.29.66", "GROUP_AC"},
+      {"2.5.29.67", "ALLOWED_ATT_ASS"},
+      {"2.5.29.68", "ATTRIBUTE_MAPPINGS"},
+      {"2.5.29.69", "HOLDER_NAME_CONSTRAINTS"},
+      {"2.16.724.1.2.2.4.1", "PERSONAL_DATA_INFO"},
+      {"2.16.840.1.101.2.1.1.1", "SDNS_SIGNATURE_ALGORITHM"},
+      {"2.16.840.1.101.2.1.1.2", "FORTEZZA_SIGNATURE_ALGORITHM"},
+      {"2.16.840.1.101.2.1.1.3", "SDNS_CONFIDENTIALITY_ALGORITHM"},
+      {"2.16.840.1.101.2.1.1.4", "FORTEZZA_CONFIDENTIALITY_ALGORITHM"},
+      {"2.16.840.1.101.2.1.1.5", "SDNS_INTEGRITY_ALGORITHM"},
+      {"2.16.840.1.101.2.1.1.6", "FORTEZZA_INTEGRITY_ALGORITHM"},
+      {"2.16.840.1.101.2.1.1.7", "SDNS_TOKEN_PROTECTION_ALGORITHM"},
+      {"2.16.840.1.101.2.1.1.8", "FORTEZZA_TOKEN_PROTECTION_ALGORITHM"},
+      {"2.16.840.1.101.2.1.1.9", "SDNS_KEY_MANAGEMENT_ALGORITHM"},
+      {"2.16.840.1.101.2.1.1.10", "FORTEZZA_KEY_MANAGEMENT_ALGORITHM"},
+      {"2.16.840.1.101.2.1.1.11", "SDNS_K_MAND_SIG_ALGORITHM"},
+      {"2.16.840.1.101.2.1.1.12", "FORTEZZA_K_MAND_SIG_ALGORITHM"},
+      {"2.16.840.1.101.2.1.1.13", "SUITE_A_SIGNATURE_ALGORITHM"},
+      {"2.16.840.1.101.2.1.1.14", "SUITE_A_CONFIDENTIALITY_ALGORITHM"},
+      {"2.16.840.1.101.2.1.1.15", "SUITE_A_INTEGRITY_ALGORITHM"},
+      {"2.16.840.1.101.2.1.1.16", "SUITE_A_TOKEN_PROTECTION_ALGORITHM"},
+      {"2.16.840.1.101.2.1.1.17", "SUITE_A_KEY_MANAGEMENT_ALGORITHM"},
+      {"2.16.840.1.101.2.1.1.18", "SUITE_AK_MAND_SIG_ALGORITHM"},
+      {"2.16.840.1.101.2.1.1.19", "FORTEZZA_UPDATED_SIG_ALGORITHM"},
+      {"2.16.840.1.101.2.1.1.20", "FORTEZZA_K_MAND_UPD_SIG_ALGORITHMS"},
+      {"2.16.840.1.101.2.1.1.21", "FORTEZZA_UPDATED_INTEG_ALGORITHM"},
+      {"2.16.840.1.101.2.1.1.22", "KEY_EXCHANGE_ALGORITHM"},
+      {"2.16.840.1.101.2.1.1.23", "FORTEZZA_WRAP80_ALGORITHM"},
+      {"2.16.840.1.101.2.1.1.24", "K_EA_KEY_ENCRYPTION_ALGORITHM"},
+      {"2.16.840.1.101.2.1.2.1", "RFC822_MESSAGE_FORMAT"},
+      {"2.16.840.1.101.2.1.2.2", "EMPTY_CONTENT"},
+      {"2.16.840.1.101.2.1.2.3", "CSP_CONTENT_TYPE"},
+      {"2.16.840.1.101.2.1.2.42", "MSP_REV3_CONTENT_TYPE"},
+      {"2.16.840.1.101.2.1.2.48", "MSP_CONTENT_TYPE"},
+      {"2.16.840.1.101.2.1.2.49", "MSP_REKEY_AGENT_PROTOCOL"},
+      {"2.16.840.1.101.2.1.2.50", "MSP_MMP"},
+      {"2.16.840.1.101.2.1.2.66", "MSP_REV3_1_CONTENT_TYPE"},
+      {"2.16.840.1.101.2.1.2.72", "FORWARDED_MSP_MESSAGE_BODY_PART"},
+      {"2.16.840.1.101.2.1.2.73", "MSP_FORWARDED_MESSAGE_PARAMETERS"},
+      {"2.16.840.1.101.2.1.2.74", "FORWARDED_CSP_MSG_BODY_PART"},
+      {"2.16.840.1.101.2.1.2.75", "CSP_FORWARDED_MESSAGE_PARAMETERS"},
+      {"2.16.840.1.101.2.1.2.76", "MSP_MMP2"},
+      {"2.16.840.1.101.2.1.3.1", "SDNS_SECURITY_POLICY"},
+      {"2.16.840.1.101.2.1.3.2", "SDNS_PRBAC"},
+      {"2.16.840.1.101.2.1.3.3", "MOSAIC_PRBAC"},
+      {"2.16.840.1.101.2.1.3.10", "SI_SECURITY_POLICY"},
+      {"2.16.840.1.101.2.1.3.10.0", "SI_NASP"},
+      {"2.16.840.1.101.2.1.3.10.1", "SI_ELCO"},
+      {"2.16.840.1.101.2.1.3.10.2", "SI_TK"},
+      {"2.16.840.1.101.2.1.3.10.3", "SI_DSAP"},
+      {"2.16.840.1.101.2.1.3.10.4", "SI_SSSS"},
+      {"2.16.840.1.101.2.1.3.10.5", "SI_DNASP"},
+      {"2.16.840.1.101.2.1.3.10.6", "SI_BYEMAN"},
+      {"2.16.840.1.101.2.1.3.10.7", "SI_REL_US"},
+      {"2.16.840.1.101.2.1.3.10.8", "SI_REL_AUS"},
+      {"2.16.840.1.101.2.1.3.10.9", "SI_REL_CAN"},
+      {"2.16.840.1.101.2.1.3.10.10", "SI_REL_UK"},
+      {"2.16.840.1.101.2.1.3.10.11", "SI_REL_NZ"},
+      {"2.16.840.1.101.2.1.3.10.12", "SI_GENERIC"},
+      {"2.16.840.1.101.2.1.3.11", "GENSER"},
+      {"2.16.840.1.101.2.1.3.11.0", "GENSER_NATIONS"},
+      {"2.16.840.1.101.2.1.3.11.1", "GENSER_COMSEC"},
+      {"2.16.840.1.101.2.1.3.11.2", "GENSER_ACQUISITION"},
+      {"2.16.840.1.101.2.1.3.11.3", "GENSER_SECURITY_CATEGORIES"},
+      {"2.16.840.1.101.2.1.3.11.3.0", "GENSER_TAG_SET_NAME"},
+      {"2.16.840.1.101.2.1.3.12", "DEFAULT_SECURITY_POLICY"},
+      {"2.16.840.1.101.2.1.3.13", "CAPCO_MARKINGS"},
+      {"2.16.840.1.101.2.1.3.13.0", "CAPCO_SECURITY_CATEGORIES"},
+      {"2.16.840.1.101.2.1.3.13.0.1", "CAPCO_TAG_SET_NAME1"},
+      {"2.16.840.1.101.2.1.3.13.0.2", "CAPCO_TAG_SET_NAME2"},
+      {"2.16.840.1.101.2.1.3.13.0.3", "CAPCO_TAG_SET_NAME3"},
+      {"2.16.840.1.101.2.1.3.13.0.4", "CAPCO_TAG_SET_NAME4"},
+      {"2.16.840.1.101.2.1.5.1", "SDNS_KEY_MANAGEMENT_CERTIFICATE"},
+      {"2.16.840.1.101.2.1.5.2", "SDNS_USER_SIGNATURE_CERTIFICATE"},
+      {"2.16.840.1.101.2.1.5.3", "SDNS_K_MAND_SIG_CERTIFICATE"},
+      {"2.16.840.1.101.2.1.5.4", "FORTEZZA_KEY_MANAGEMENT_CERTIFICATE"},
+      {"2.16.840.1.101.2.1.5.5", "FORTEZZA_K_MAND_SIG_CERTIFICATE"},
+      {"2.16.840.1.101.2.1.5.6", "FORTEZZA_USER_SIGNATURE_CERTIFICATE"},
+      {"2.16.840.1.101.2.1.5.7", "FORTEZZA_CA_SIGNATURE_CERTIFICATE"},
+      {"2.16.840.1.101.2.1.5.8", "SDNS_CA_SIGNATURE_CERTIFICATE"},
+      {"2.16.840.1.101.2.1.5.10", "AUXILIARY_VECTOR"},
+      {"2.16.840.1.101.2.1.5.11", "ML_RECEIPT_POLICY"},
+      {"2.16.840.1.101.2.1.5.12", "ML_MEMBERSHIP"},
+      {"2.16.840.1.101.2.1.5.13", "ML_ADMINISTRATORS"},
+      {"2.16.840.1.101.2.1.5.14", "ALID"},
+      {"2.16.840.1.101.2.1.5.20", "JAN_UK_MS"},
+      {"2.16.840.1.101.2.1.5.21", "FEB_UK_MS"},
+      {"2.16.840.1.101.2.1.5.22", "MAR_UK_MS"},
+      {"2.16.840.1.101.2.1.5.23", "APR_UK_MS"},
+      {"2.16.840.1.101.2.1.5.24", "MAY_UK_MS"},
+      {"2.16.840.1.101.2.1.5.25", "JUN_UK_MS"},
+      {"2.16.840.1.101.2.1.5.26", "JUL_UK_MS"},
+      {"2.16.840.1.101.2.1.5.27", "AUG_UK_MS"},
+      {"2.16.840.1.101.2.1.5.28", "SEP_UK_MS"},
+      {"2.16.840.1.101.2.1.5.29", "OCT_UK_MS"},
+      {"2.16.840.1.101.2.1.5.30", "NOV_UK_MS"},
+      {"2.16.840.1.101.2.1.5.31", "DEC_UK_MS"},
+      {"2.16.840.1.101.2.1.5.40", "META_SDN_SCKL"},
+      {"2.16.840.1.101.2.1.5.41", "SDNS_CKL"},
+      {"2.16.840.1.101.2.1.5.42", "META_SDN_SSIGNATURE_CKL"},
+      {"2.16.840.1.101.2.1.5.43", "SDNS_SIGNATURE_CKL"},
+      {"2.16.840.1.101.2.1.5.44", "SDNS_CERTIFICATE_REVOCATION_LIST"},
+      {"2.16.840.1.101.2.1.5.45", "FORTEZZA_CERTIFICATE_REVOCATION_LIST"},
+      {"2.16.840.1.101.2.1.5.46", "FORTEZZA_CKL"},
+      {"2.16.840.1.101.2.1.5.47", "AL_EXEMPTED_ADDRESS_PROCESSOR"},
+      {"2.16.840.1.101.2.1.5.48", "GUARD"},
+      {"2.16.840.1.101.2.1.5.49", "ALGORITHMS_SUPPORTED"},
+      {"2.16.840.1.101.2.1.5.50", "SUITE_A_KEY_MANAGEMENT_CERTIFICATE"},
+      {"2.16.840.1.101.2.1.5.51", "SUITE_AK_MAND_SIG_CERTIFICATE"},
+      {"2.16.840.1.101.2.1.5.52", "SUITE_A_USER_SIGNATURE_CERTIFICATE"},
+      {"2.16.840.1.101.2.1.5.53", "PRBAC_INFO"},
+      {"2.16.840.1.101.2.1.5.54", "PRBAC_CA_CONSTRAINTS"},
+      {"2.16.840.1.101.2.1.5.55", "SIG_OR_KM_PRIVILEGES"},
+      {"2.16.840.1.101.2.1.5.56", "COMM_PRIVILEGES"},
+      {"2.16.840.1.101.2.1.5.57", "LABELED_ATTRIBUTE"},
+      {"2.16.840.1.101.2.1.5.58", "POLICY_INFORMATION_FILE"},
+      {"2.16.840.1.101.2.1.5.59", "SEC_POLICY_INFORMATION_FILE"},
+      {"2.16.840.1.101.2.1.5.60", "C_A_CLEARANCE_CONSTRAINT"},
+      {"2.16.840.1.101.2.1.7.1", "CSP_EXTNS"},
+      {"2.16.840.1.101.2.1.7.1.0", "CSP_CS_EXTN"},
+      {"2.16.840.1.101.2.1.8.1", "M_ISSI_SECURITY_CATEGORIES"},
+      {"2.16.840.1.101.2.1.8.2", "STANDARD_SECURITY_LABEL_PRIVILEGES"},
+      {"2.16.840.1.101.2.1.10.1", "SIG_PRIVILEGES"},
+      {"2.16.840.1.101.2.1.10.2", "KM_PRIVILEGES"},
+      {"2.16.840.1.101.2.1.10.3", "NAMED_TAG_SET_PRIVILEGE"},
+      {"2.16.840.1.101.2.1.11.1", "UK_DEMO"},
+      {"2.16.840.1.101.2.1.11.2", "US_DOD_CLASS2"},
+      {"2.16.840.1.101.2.1.11.3", "US_MEDIUM_PILOT"},
+      {"2.16.840.1.101.2.1.11.4", "US_DOD_CLASS4"},
+      {"2.16.840.1.101.2.1.11.5", "US_DOD_CLASS3"},
+      {"2.16.840.1.101.2.1.11.6", "US_DOD_CLASS5"},
+      {"2.16.840.1.101.2.1.12.0", "TEST_SECURITY_POLICY"},
+      {"2.16.840.1.101.2.1.12.0.1", "TSP1"},
+      {"2.16.840.1.101.2.1.12.0.1.0", "TSP1_SECURITY_CATEGORIES"},
+      {"2.16.840.1.101.2.1.12.0.1.0.0", "TSP1_TAG_SET_ZERO"},
+      {"2.16.840.1.101.2.1.12.0.1.0.1", "TSP1_TAG_SET_ONE"},
+      {"2.16.840.1.101.2.1.12.0.1.0.2", "TSP1_TAG_SET_TWO"},
+      {"2.16.840.1.101.2.1.12.0.2", "TSP2"},
+      {"2.16.840.1.101.2.1.12.0.2.0", "TSP2_SECURITY_CATEGORIES"},
+      {"2.16.840.1.101.2.1.12.0.2.0.0", "TSP2_TAG_SET_ZERO"},
+      {"2.16.840.1.101.2.1.12.0.2.0.1", "TSP2_TAG_SET_ONE"},
+      {"2.16.840.1.101.2.1.12.0.2.0.2", "TSP2_TAG_SET_TWO"},
+      {"2.16.840.1.101.2.1.12.0.3", "KAFKA"},
+      {"2.16.840.1.101.2.1.12.0.3.0", "KAFKA_SECURITY_CATEGORIES"},
+      {"2.16.840.1.101.2.1.12.0.3.0.1", "KAFKA_TAG_SET_NAME1"},
+      {"2.16.840.1.101.2.1.12.0.3.0.2", "KAFKA_TAG_SET_NAME2"},
+      {"2.16.840.1.101.2.1.12.0.3.0.3", "KAFKA_TAG_SET_NAME3"},
+      {"2.16.840.1.101.2.1.12.1.1", "TCP1"},
+      {"2.16.840.1.101.3.1", "SLABEL"},
+      {"2.16.840.1.101.3.2", "PKI"},
+      {"2.16.840.1.101.3.2.1", "NIST_POLICY_IDENTIFIER"},
+      {"2.16.840.1.101.3.2.1.3.1", "FBCA_RUDIMENTARY_POLICY"},
+      {"2.16.840.1.101.3.2.1.3.2", "FBCA_BASIC_POLICY"},
+      {"2.16.840.1.101.3.2.1.3.3", "FBCA_MEDIUM_POLICY"},
+      {"2.16.840.1.101.3.2.1.3.4", "FBCA_HIGH_POLICY"},
+      {"2.16.840.1.101.3.2.1.48.1", "NIST_TEST_POLICY1"},
+      {"2.16.840.1.101.3.2.1.48.2", "NIST_TEST_POLICY2"},
+      {"2.16.840.1.101.3.2.1.48.3", "NIST_TEST_POLICY3"},
+      {"2.16.840.1.101.3.2.1.48.4", "NIST_TEST_POLICY4"},
+      {"2.16.840.1.101.3.2.1.48.5", "NIST_TEST_POLICY5"},
+      {"2.16.840.1.101.3.2.1.48.6", "NIST_TEST_POLICY6"},
+      {"2.16.840.1.101.3.2.2", "GAK"},
+      {"2.16.840.1.101.3.2.2.1", "K_RA_KEY"},
+      {"2.16.840.1.101.3.2.3", "EXTENSIONS"},
+      {"2.16.840.1.101.3.2.3.1", "K_R_TECHNIQUE"},
+      {"2.16.840.1.101.3.2.3.2", "K_RECOVERY_CAPABLE"},
+      {"2.16.840.1.101.3.2.3.3", "K_R"},
+      {"2.16.840.1.101.3.2.4", "KEY_RECOVERY_SCHEMES"},
+      {"2.16.840.1.101.3.2.5", "KRAPOLA"},
+      {"2.16.840.1.101.3.3", "ARPA"},
+      {"2.16.840.1.101.3.4", "NIST_ALGORITHM"},
+      {"2.16.840.1.101.3.4.1", "AES"},
+      {"2.16.840.1.101.3.4.1.1", "AES128_ECB"},
+      {"2.16.840.1.101.3.4.1.2", "AES128_CBC"},
+      {"2.16.840.1.101.3.4.1.3", "AES128_OFB"},
+      {"2.16.840.1.101.3.4.1.4", "AES128_CFB"},
+      {"2.16.840.1.101.3.4.1.5", "AES128_WRAP"},
+      {"2.16.840.1.101.3.4.1.6", "AES128_GCM"},
+      {"2.16.840.1.101.3.4.1.7", "AES128_CCM"},
+      {"2.16.840.1.101.3.4.1.8", "AES128_WRAP_PAD"},
+      {"2.16.840.1.101.3.4.1.21", "AES192_ECB"},
+      {"2.16.840.1.101.3.4.1.22", "AES192_CBC"},
+      {"2.16.840.1.101.3.4.1.23", "AES192_OFB"},
+      {"2.16.840.1.101.3.4.1.24", "AES192_CFB"},
+      {"2.16.840.1.101.3.4.1.25", "AES192_WRAP"},
+      {"2.16.840.1.101.3.4.1.26", "AES192_GCM"},
+      {"2.16.840.1.101.3.4.1.27", "AES192_CCM"},
+      {"2.16.840.1.101.3.4.1.28", "AES192_WRAP_PAD"},
+      {"2.16.840.1.101.3.4.1.41", "AES256_ECB"},
+      {"2.16.840.1.101.3.4.1.42", "AES256_CBC"},
+      {"2.16.840.1.101.3.4.1.43", "AES256_OFB"},
+      {"2.16.840.1.101.3.4.1.44", "AES256_CFB"},
+      {"2.16.840.1.101.3.4.1.45", "AES256_WRAP"},
+      {"2.16.840.1.101.3.4.1.46", "AES256_GCM"},
+      {"2.16.840.1.101.3.4.1.47", "AES256_CCM"},
+      {"2.16.840.1.101.3.4.1.48", "AES256_WRAP_PAD"},
+      {"2.16.840.1.101.3.4.2", "HASH_ALGOS"},
+      {"2.16.840.1.101.3.4.2.1", "SHA_256"},
+      {"2.16.840.1.101.3.4.2.2", "SHA_384"},
+      {"2.16.840.1.101.3.4.2.3", "SHA_512"},
+      {"2.16.840.1.101.3.4.2.4", "SHA_224"},
+      {"2.16.840.1.101.3.4.3.1", "DSA_WITH_SHA224"},
+      {"2.16.840.1.101.3.4.3.2", "DSA_WITH_SHA256"},
+      {"2.16.840.1.113719.1.2.8", "NOVELL_ALGORITHM"},
+      {"2.16.840.1.113719.1.2.8.22", "DES_CBC_IV8"},
+      {"2.16.840.1.113719.1.2.8.23", "DES_CBC_PAD_IV8"},
+      {"2.16.840.1.113719.1.2.8.24", "DES_EDE2_CBC_IV8"},
+      {"2.16.840.1.113719.1.2.8.25", "DES_EDE2_CBC_PAD_IV8"},
+      {"2.16.840.1.113719.1.2.8.26", "DES_EDE3_CBC_IV8"},
+      {"2.16.840.1.113719.1.2.8.27", "DES_EDE3_CBC_PAD_IV8"},
+      {"2.16.840.1.113719.1.2.8.28", "RC5_CBC_PAD"},
+      {"2.16.840.1.113719.1.2.8.29", "MD2_WITH_RSA_ENCRYPTION_B_SAFE1"},
+      {"2.16.840.1.113719.1.2.8.30", "MD5_WITH_RSA_ENCRYPTION_B_SAFE1"},
+      {"2.16.840.1.113719.1.2.8.31", "SHA1_WITH_RSA_ENCRYPTION_B_SAFE1"},
+      {"2.16.840.1.113719.1.2.8.32", "LM_DIGEST"},
+      {"2.16.840.1.113719.1.2.8.40", "MD2"},
+      {"2.16.840.1.113719.1.2.8.50", "MD5"},
+      {"2.16.840.1.113719.1.2.8.51", "IKE_HMAC_WITH_SHA1_RSA"},
+      {"2.16.840.1.113719.1.2.8.52", "IKE_HMAC_WITH_MD5_RSA"},
+      {"2.16.840.1.113719.1.2.8.69", "RC2_CBC_PAD"},
+      {"2.16.840.1.113719.1.2.8.82", "SHA_1"},
+      {"2.16.840.1.113719.1.2.8.92", "RC2_B_SAFE1_CBC"},
+      {"2.16.840.1.113719.1.2.8.95", "MD4"},
+      {"2.16.840.1.113719.1.2.8.130", "MD4_PACKET"},
+      {"2.16.840.1.113719.1.2.8.131", "RSA_ENCRYPTION_BSAFE1"},
+      {"2.16.840.1.113719.1.2.8.132", "NW_PASSWORD"},
+      {"2.16.840.1.113719.1.2.8.133", "NOVELL_OBFUSCATE_1"},
+      {"2.16.840.1.113719.1.9", "PKI"},
+      {"2.16.840.1.113719.1.9.4", "PKI_ATTRIBUTE_TYPE"},
+      {"2.16.840.1.113719.1.9.4.1", "SECURITY_ATTRIBUTES"},
+      {"2.16.840.1.113719.1.9.4.2", "RELIANCE_LIMIT"},
+      {"2.16.840.1.113730.1", "CERT_EXTENSION"},
+      {"2.16.840.1.113730.1.1", "NETSCAPE_CERT_TYPE"},
+      {"2.16.840.1.113730.1.2", "NETSCAPE_BASE_URL"},
+      {"2.16.840.1.113730.1.3", "NETSCAPE_REVOCATION_URL"},
+      {"2.16.840.1.113730.1.4", "NETSCAPE_CA_REVOCATION_URL"},
+      {"2.16.840.1.113730.1.7", "NETSCAPE_CERT_RENEWAL_URL"},
+      {"2.16.840.1.113730.1.8", "NETSCAPE_CA_POLICY_URL"},
+      {"2.16.840.1.113730.1.9", "HOME_PAGE_URL"},
+      {"2.16.840.1.113730.1.10", "ENTITY_LOGO"},
+      {"2.16.840.1.113730.1.11", "USER_PICTURE"},
+      {"2.16.840.1.113730.1.12", "NETSCAPE_SSL_SERVER_NAME"},
+      {"2.16.840.1.113730.1.13", "NETSCAPE_COMMENT"},
+      {"2.16.840.1.113730.2", "DATA_TYPE"},
+      {"2.16.840.1.113730.2.1", "DATA_GIF"},
+      {"2.16.840.1.113730.2.2", "DATA_JPEG"},
+      {"2.16.840.1.113730.2.3", "DATA_URL"},
+      {"2.16.840.1.113730.2.4", "DATA_HTML"},
+      {"2.16.840.1.113730.2.5", "CERT_SEQUENCE"},
+      {"2.16.840.1.113730.2.6", "CERT_URL"},
+      {"2.16.840.1.113730.3", "DIRECTORY"},
+      {"2.16.840.1.113730.3.1", "LDAP_DEFINITIONS"},
+      {"2.16.840.1.113730.3.1.1", "CAR_LICENSE"},
+      {"2.16.840.1.113730.3.1.2", "DEPARTMENT_NUMBER"},
+      {"2.16.840.1.113730.3.1.3", "EMPLOYEE_NUMBER"},
+      {"2.16.840.1.113730.3.1.4", "EMPLOYEE_TYPE"},
+      {"2.16.840.1.113730.3.2.2", "INET_ORG_PERSON"},
+      {"2.16.840.1.113730.4.1", "SERVER_GATED_CRYPTO"},
+      {"2.16.840.1.113733.1.6.3", "VERISIGN_CZAG"},
+      {"2.16.840.1.113733.1.6.6", "VERISIGN_IN_BOX"},
+      {"2.16.840.1.113733.1.6.11", "VERISIGN_ONSITE_JURISDICTION_HASH"},
+      {"2.16.840.1.113733.1.6.13", "UNKNOWN_VERISIGN_VPN_EXTENSION"},
+      {"2.16.840.1.113733.1.6.15", "VERISIGN_SERVER_ID"},
+      {"2.16.840.1.113733.1.7.1.1", "VERISIGN_CERT_POLICIES95_QUALIFIER1"},
+      {"2.16.840.1.113733.1.7.1.1.1", "VERISIGN_CP_SV1NOTICE"},
+      {"2.16.840.1.113733.1.7.1.1.2", "VERISIGN_CP_SV1NSI"},
+      {"2.16.840.1.113733.1.8.1", "VERISIGN_ISS_STRONG_CRYPTO"},
+      {"2.16.840.1.113733.1", "PKI"},
+      {"2.16.840.1.113733.1.9", "PKCS7_ATTRIBUTE"},
+      {"2.16.840.1.113733.1.9.2", "MESSAGE_TYPE"},
+      {"2.16.840.1.113733.1.9.3", "PKI_STATUS"},
+      {"2.16.840.1.113733.1.9.4", "FAIL_INFO"},
+      {"2.16.840.1.113733.1.9.5", "SENDER_NONCE"},
+      {"2.16.840.1.113733.1.9.6", "RECIPIENT_NONCE"},
+      {"2.16.840.1.113733.1.9.7", "TRANS_ID"},
+      {"2.16.840.1.113733.1.9.8", "EXTENSION_REQ"},
+      {"2.16.840.1.113741.2", "INTEL_CDSA"},
+      {"2.16.840.1.114412.1", "DIGI_CERT_NON_EV_CERTS"},
+      {"2.16.840.1.114412.1.1", "DIGI_CERT_OV_CERT"},
+      {"2.16.840.1.114412.1.2", "DIGI_CERT_DV_CERT"},
+      {"2.16.840.1.114412.1.11", "DIGI_CERT_FEDERATED_DEVICE_CERT"},
+      {"2.16.840.1.114412.1.3.0.1", "DIGI_CERT_GLOBAL_CA_POLICY"},
+      {"2.16.840.1.114412.1.3.0.2", "DIGI_CERT_HIGH_ASSURANCE_EVCA_POLICY"},
+      {"2.16.840.1.114412.1.3.0.3", "DIGI_CERT_GLOBAL_ROOT_CA_POLICY"},
+      {"2.16.840.1.114412.1.3.0.4", "DIGI_CERT_ASSURED_ID_ROOT_CA_POLICY"},
+      {"2.16.840.1.114412.2.2", "DIGI_CERT_EV_CERT"},
+      {"2.16.840.1.114412.2.3", "DIGI_CERT_OBJECT_SIGNING_CERT"},
+      {"2.16.840.1.114412.2.3.1", "DIGI_CERT_CODE_SIGNING_CERT"},
+      {"2.16.840.1.114412.2.3.2", "DIGI_CERT_EV_CODE_SIGNING_CERT"},
+      {"2.16.840.1.114412.2.3.11", "DIGI_CERT_KERNEL_CODE_SIGNING_CERT"},
+      {"2.16.840.1.114412.2.3.21", "DIGI_CERT_DOCUMENT_SIGNING_CERT"},
+      {"2.16.840.1.114412.2.4", "DIGI_CERT_CLIENT_CERT"},
+      {"2.16.840.1.114412.2.4.1.1", "DIGI_CERT_LEVEL1_PERSONAL_CLIENT_CERT"},
+      {"2.16.840.1.114412.2.4.1.2", "DIGI_CERT_LEVEL1_ENTERPRISE_CLIENT_CERT"},
+      {"2.16.840.1.114412.2.4.2", "DIGI_CERT_LEVEL2_CLIENT_CERT"},
+      {"2.16.840.1.114412.2.4.3.1", "DIGI_CERT_LEVEL3_US_CLIENT_CERT"},
+      {"2.16.840.1.114412.2.4.3.2", "DIGI_CERT_LEVEL3_CBP_CLIENT_CERT"},
+      {"2.16.840.1.114412.2.4.4.1", "DIGI_CERT_LEVEL4_US_CLIENT_CERT"},
+      {"2.16.840.1.114412.2.4.4.2", "DIGI_CERT_LEVEL4_CBP_CLIENT_CERT"},
+      {"2.16.840.1.114412.2.4.5.1", "DIGI_CERT_PIV_HARDWARE_CERT"},
+      {"2.16.840.1.114412.2.4.5.2", "DIGI_CERT_PIV_CARD_AUTH_CERT"},
+      {"2.16.840.1.114412.2.4.5.3", "DIGI_CERT_PIV_CONTENT_SIGNING_CERT"},
+      {"2.16.840.1.114412.4.31", "DIGI_CERT_GRID_CLASSIC_CERT"},
+      {"2.16.840.1.114412.4.31.5", "DIGI_CERT_GRID_INTEGRATED_CERT"},
+      {"2.16.840.1.114412.31.4.31.1", "DIGI_CERT_GRID_HOST_CERT"},
+      {"2.23.42.0", "CONTENT_TYPE"},
+      {"2.23.42.0.0", "PAN_DATA"},
+      {"2.23.42.0.1", "PAN_TOKEN"},
+      {"2.23.42.0.2", "PAN_ONLY"},
+      {"2.23.42.1", "MSG_EXT"},
+      {"2.23.42.2", "FIELD"},
+      {"2.23.42.2.0", "FULL_NAME"},
+      {"2.23.42.2.1", "GIVEN_NAME"},
+      {"2.23.42.2.2", "FAMILY_NAME"},
+      {"2.23.42.2.3", "BIRTH_FAMILY_NAME"},
+      {"2.23.42.2.4", "PLACE_NAME"},
+      {"2.23.42.2.5", "IDENTIFICATION_NUMBER"},
+      {"2.23.42.2.6", "MONTH"},
+      {"2.23.42.2.7", "DATE"},
+      {"2.23.42.2.8", "ADDRESS"},
+      {"2.23.42.2.9", "TELEPHONE"},
+      {"2.23.42.2.10", "AMOUNT"},
+      {"2.23.42.2.11", "ACCOUNT_NUMBER"},
+      {"2.23.42.2.12", "PASS_PHRASE"},
+      {"2.23.42.3", "ATTRIBUTE"},
+      {"2.23.42.3.0", "CERT"},
+      {"2.23.42.3.0.0", "ROOT_KEY_THUMB"},
+      {"2.23.42.3.0.1", "ADDITIONAL_POLICY"},
+      {"2.23.42.4", "ALGORITHM"},
+      {"2.23.42.5", "POLICY"},
+      {"2.23.42.5.0", "ROOT"},
+      {"2.23.42.6", "MODULE"},
+      {"2.23.42.7", "CERT_EXT"},
+      {"2.23.42.7.0", "HASHED_ROOT_KEY"},
+      {"2.23.42.7.1", "CERTIFICATE_TYPE"},
+      {"2.23.42.7.2", "MERCHANT_DATA"},
+      {"2.23.42.7.3", "CARD_CERT_REQUIRED"},
+      {"2.23.42.7.4", "TUNNELING"},
+      {"2.23.42.7.5", "SET_EXTENSIONS"},
+      {"2.23.42.7.6", "SET_QUALIFIER"},
+      {"2.23.42.8", "BRAND"},
+      {"2.23.42.8.1", "IATA_ATA"},
+      {"2.23.42.8.4", "VISA"},
+      {"2.23.42.8.5", "MASTER_CARD"},
+      {"2.23.42.8.30", "DINERS"},
+      {"2.23.42.8.34", "AMERICAN_EXPRESS"},
+      {"2.23.42.8.6011", "NOVUS"},
+      {"2.23.42.9", "VENDOR"},
+      {"2.23.42.9.0", "GLOBE_SET"},
+      {"2.23.42.9.1", "IBM"},
+      {"2.23.42.9.2", "CYBER_CASH"},
+      {"2.23.42.9.3", "TERISA"},
+      {"2.23.42.9.4", "RSADSI"},
+      {"2.23.42.9.5", "VERI_FONE"},
+      {"2.23.42.9.6", "TRIN_TECH"},
+      {"2.23.42.9.7", "BANK_GATE"},
+      {"2.23.42.9.8", "GTE"},
+      {"2.23.42.9.9", "COMPU_SOURCE"},
+      {"2.23.42.9.10", "GRIFFIN"},
+      {"2.23.42.9.11", "CERTICOM"},
+      {"2.23.42.9.12", "OSS"},
+      {"2.23.42.9.13", "TENTH_MOUNTAIN"},
+      {"2.23.42.9.14", "ANTARES"},
+      {"2.23.42.9.15", "ECC"},
+      {"2.23.42.9.16", "MAITHEAN"},
+      {"2.23.42.9.17", "NETSCAPE"},
+      {"2.23.42.9.18", "VERISIGN"},
+      {"2.23.42.9.19", "BLUE_MONEY"},
+      {"2.23.42.9.20", "LACERTE"},
+      {"2.23.42.9.21", "FUJITSU"},
+      {"2.23.42.9.22", "E_LAB"},
+      {"2.23.42.9.23", "ENTRUST"},
+      {"2.23.42.9.24", "VI_ANET"},
+      {"2.23.42.9.25", "III"},
+      {"2.23.42.9.26", "OPEN_MARKET"},
+      {"2.23.42.9.27", "LEXEM"},
+      {"2.23.42.9.28", "INTERTRADER"},
+      {"2.23.42.9.29", "PERSIMMON"},
+      {"2.23.42.9.30", "NABLE"},
+      {"2.23.42.9.31", "ESPACE_NET"},
+      {"2.23.42.9.32", "HITACHI"},
+      {"2.23.42.9.33", "MICROSOFT"},
+      {"2.23.42.9.34", "NEC"},
+      {"2.23.42.9.35", "MITSUBISHI"},
+      {"2.23.42.9.36", "NCR"},
+      {"2.23.42.9.37", "E_COMM"},
+      {"2.23.42.9.38", "GEMPLUS"},
+      {"2.23.42.10", "NATIONAL"},
+      {"2.23.42.10.392", "JAPAN"},
+      {"2.23.43.1.4", "W_TLS_ECC"},
+      {"2.23.43.1.4.1", "W_TLS_ECC_CURVE1"},
+      {"2.23.43.1.4.6", "W_TLS_ECC_CURVE6"},
+      {"2.23.43.1.4.8", "W_TLS_ECC_CURVE8"},
+      {"2.23.43.1.4.9", "W_TLS_ECC_CURVE9"},
+      {"2.23.133", "T_CPA"},
+      {"2.23.133.1", "TCPA_SPEC_VERSION"},
+      {"2.23.133.2", "TCPA_ATTRIBUTE"},
+      {"2.23.133.2.1", "TCPA_TPM_MANUFACTURER"},
+      {"2.23.133.2.2", "TCPA_TPM_MODEL"},
+      {"2.23.133.2.3", "TCPA_TPM_VERSION"},
+      {"2.23.133.2.4", "TCPA_PLATFORM_MANUFACTURER"},
+      {"2.23.133.2.5", "TCPA_PLATFORM_MODEL"},
+      {"2.23.133.2.6", "TCPA_PLATFORM_VERSION"},
+      {"2.23.133.2.7", "TCPA_COMPONENT_MANUFACTURER"},
+      {"2.23.133.2.8", "TCPA_COMPONENT_MODEL"},
+      {"2.23.133.2.9", "TCPA_COMPONENT_VERSION"},
+      {"2.23.133.2.10", "TCPA_SECURITY_QUALITIES"},
+      {"2.23.133.2.11", "TCPA_TPM_PROTECTION_PROFILE"},
+      {"2.23.133.2.12", "TCPA_TPM_SECURITY_TARGET"},
+      {"2.23.133.2.13", "TCPA_FOUNDATION_PROTECTION_PROFILE"},
+      {"2.23.133.2.14", "TCPA_FOUNDATION_SECURITY_TARGET"},
+      {"2.23.133.2.15", "TCPA_TPM_ID_LABEL"},
+      {"2.23.133.3", "TCPA_PROTOCOL"},
+      {"2.23.133.3.1", "TCPA_PRTT_TPM_ID_PROTOCOL"},
+      {"2.23.134.1.4.2.1", "POST_SIGNUM_ROOT_QCA"},
+      {"2.23.134.1.2.2.3", "POST_SIGNUM_PUBLIC_CA"},
+      {"2.23.134.1.2.1.8.210", "POST_SIGNUM_COMMERCIAL_SERVER_POLICY"},
+      {"2.23.136.1.1.1", "M_RTD_SIGNATURE_DATA"},
+      {"2.54.1775.2", "HASHED_ROOT_KEY"},
+      {"2.54.1775.3", "CERTIFICATE_TYPE"},
+      {"2.54.1775.4", "MERCHANT_DATA"},
+      {"2.54.1775.5", "CARD_CERT_REQUIRED"},
+      {"2.54.1775.6", "TUNNELING"},
+      {"2.54.1775.7", "SET_QUALIFIER"},
+      {"2.54.1775.99", "SET_DATA"},
+      {"1.2.40.0.17.1.22", "A_TRUST_EV_POLICY"},
+      {"1.3.6.1.4.1.34697.2.1", "AFFIRM_TRUST_EV_POLICY"},
+      {"1.3.6.1.4.1.34697.2.2", "AFFIRM_TRUST_EV_POLICY"},
+      {"1.3.6.1.4.1.34697.2.3", "AFFIRM_TRUST_EV_POLICY"},
+      {"1.3.6.1.4.1.34697.2.4", "AFFIRM_TRUST_EV_POLICY"},
+      {"2.16.578.1.26.1.3.3", "BUY_PASS_EV_POLICY"},
+      {"1.3.6.1.4.1.17326.10.14.2.1.2", "CAMERFIRMA_EV_POLICY"},
+      {"1.3.6.1.4.1.17326.10.8.12.1.2", "CAMERFIRMA_EV_POLICY"},
+      {"1.3.6.1.4.1.22234.2.5.2.3.1", "CERT_PLUS_EV_POLICY"},
+      {"1.3.6.1.4.1.6449.1.2.1.5.1", "COMODO_EV_POLICY"},
+      {"1.3.6.1.4.1.6334.1.100.1", "CYBERTRUST_EV_POLICY"},
+      {"1.3.6.1.4.1.4788.2.202.1", "D_TRUST_EV_POLICY"},
+      {"2.16.840.1.114412.2.1", "DIGI_CERT_EV_POLICY"},
+      {"2.16.528.1.1001.1.1.1.12.6.1.1.1", "DIGI_NOTAR_EV_POLICY"},
+      {"2.16.840.1.114028.10.1.2", "ENTRUST_EV_POLICY"},
+      {"1.3.6.1.4.1.14370.1.6", "GEO_TRUST_EV_POLICY"},
+      {"1.3.6.1.4.1.4146.1.1", "GLOBAL_SIGN_EV_POLICY"},
+      {"2.16.840.1.114413.1.7.23.3", "GO_DADDY_EV_POLICY"},
+      {"1.3.6.1.4.1.14777.6.1.1", "IZENPE_EV_POLICY"},
+      {"1.3.6.1.4.1.14777.6.1.2", "IZENPE_EV_POLICY"},
+      {"1.3.6.1.4.1.782.1.2.1.8.1", "NETWORK_SOLUTIONS_EV_POLICY"},
+      {"1.3.6.1.4.1.8024.0.2.100.1.2", "QUO_VADIS_EV_POLICY"},
+      {"1.2.392.200091.100.721.1", "SECURITY_COMMUNICATION_(SECOM)_EV_POLICY"},
+      {"2.16.840.1.114414.1.7.23.3", "STARFIELD_EV_POLICY"},
+      {"1.3.6.1.4.1.23223.1.1.1", "START_COM_EV_POLICY"},
+      {"2.16.756.1.89.1.2.1.1", "SWISS_SIGN_EV_POLICY"},
+      {"1.3.6.1.4.1.7879.13.24.1", "T_TELE_SEC_EV_POLICY"},
+      {"2.16.840.1.113733.1.7.48.1", "THAWTE_EV_POLICY"},
+      {"2.16.840.1.114404.1.1.2.4.1", "TRUST_WAVE_EV_POLICY"},
+      {"1.3.6.1.4.1.40869.1.1.22.3", "TWCA_EV_POLICY"},
+      {"2.16.840.1.113733.1.7.23.6", "VERI_SIGN_EV_POLICY"},
+      {"2.16.840.1.114171.500.9", "WELLS_FARGO_EV_POLICY"},
+      {"1.3.6.1.4.1.311.3.3.1", "MS_COUNTER_SIGN"},
+      {"1.3.6.1.4.1.311.10.3.28", "szOID_PLATFORM_MANIFEST_BINARY_ID"},
+      {"1.3.6.1.4.1.311.2.6.1", "SPC_RELAXED_PE_MARKER_CHECK_OBJID"},
   };
-  auto   it  = oid_to_str.find(oid);
+  auto it = oid_to_str.find(oid);
   return it == oid_to_str.end() ? oid.c_str() : it->second;
 }
 }
-}
diff --git a/deps/LIEF/src/PE/signature/PKCS9TSTInfo.cpp b/deps/LIEF/src/PE/signature/PKCS9TSTInfo.cpp
index 459642da6da..9237e796646 100644
--- a/deps/LIEF/src/PE/signature/PKCS9TSTInfo.cpp
+++ b/deps/LIEF/src/PE/signature/PKCS9TSTInfo.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -15,12 +15,11 @@
  */
 #include "LIEF/PE/signature/PKCS9TSTInfo.hpp"

-namespace LIEF {
-namespace PE {
+
+namespace LIEF::PE {

 void PKCS9TSTInfo::accept(Visitor& visitor) const {
   visitor.visit(*this);
 }

 }
-}
diff --git a/deps/LIEF/src/PE/signature/RsaInfo.cpp b/deps/LIEF/src/PE/signature/RsaInfo.cpp
index f24c650d3df..a1d2263d79b 100644
--- a/deps/LIEF/src/PE/signature/RsaInfo.cpp
+++ b/deps/LIEF/src/PE/signature/RsaInfo.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2021 - 2025 R. Thomas
- * Copyright 2021 - 2025 Quarkslab
+/* Copyright 2021 - 2026 R. Thomas
+ * Copyright 2021 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -16,13 +16,17 @@

 #include "LIEF/PE/signature/RsaInfo.hpp"

-#include <mbedtls/bignum.h>
+#ifndef MBEDTLS_DECLARE_PRIVATE_IDENTIFIERS
+  #define MBEDTLS_DECLARE_PRIVATE_IDENTIFIERS
+#endif
+
+#include <mbedtls/private/bignum.h>
 #include <mbedtls/md.h>
-#include <mbedtls/rsa.h>
+#include <mbedtls/private/rsa.h>
 #include <utility>

-namespace LIEF {
-namespace PE {
+
+namespace LIEF::PE {

 RsaInfo::RsaInfo() = default;

@@ -37,8 +41,7 @@ RsaInfo::RsaInfo(const RsaInfo::rsa_ctx_handle ctx) {
   ctx_ = reinterpret_cast<RsaInfo::rsa_ctx_handle>(local_ctx);
 }

-RsaInfo::RsaInfo(const RsaInfo& other)
-{
+RsaInfo::RsaInfo(const RsaInfo& other) {
   if (other.ctx_ != nullptr) {
     const auto* octx = reinterpret_cast<const mbedtls_rsa_context*>(other.ctx_);
     auto* local_ctx = new mbedtls_rsa_context{};
@@ -53,8 +56,7 @@ RsaInfo::RsaInfo(const RsaInfo& other)


 RsaInfo::RsaInfo(RsaInfo&& other) :
-  ctx_{other.ctx_}
-{}
+  ctx_{other.ctx_} {}

 RsaInfo& RsaInfo::operator=(RsaInfo other) {
   swap(other);
@@ -141,4 +143,3 @@ std::ostream& operator<<(std::ostream& os, const RsaInfo& info) {
 }

 }
-}
diff --git a/deps/LIEF/src/PE/signature/Signature.cpp b/deps/LIEF/src/PE/signature/Signature.cpp
index 5b0c2809282..2d2c5891a6e 100644
--- a/deps/LIEF/src/PE/signature/Signature.cpp
+++ b/deps/LIEF/src/PE/signature/Signature.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -15,6 +15,8 @@
  */
 #include "logging.hpp"

+#include "mbedtls_wraps.h"
+
 #include "LIEF/utils.hpp"
 #include "LIEF/Visitor.hpp"

@@ -25,18 +27,15 @@
 #include "LIEF/PE/signature/Attribute.hpp"
 #include "LIEF/PE/signature/attributes.hpp"
 #include "LIEF/PE/signature/SpcIndirectData.hpp"
+#include "LIEF/PE/signature/RsaInfo.hpp"

-#include <mbedtls/sha512.h>
-#include <mbedtls/sha256.h>
-#include <mbedtls/sha1.h>
-
-#include <mbedtls/md5.h>
+#include <psa/crypto_builtin_primitives.h>

 #include "frozen.hpp"
 #include "internal_utils.hpp"

-namespace LIEF {
-namespace PE {
+
+namespace LIEF::PE {

 Signature::Signature() = default;
 Signature::Signature(const Signature&) = default;
@@ -47,42 +46,49 @@ Signature& Signature::operator=(Signature&&) = default;


 inline std::string time_to_string(const x509::date_t& date) {
-  return fmt::format("{:d}/{:02d}/{:02d} - {:02d}:{:02d}:{:02d}",
-      date[0], date[1], date[2],
-      date[3], date[4], date[5]);
+  return fmt::format("{:d}/{:02d}/{:02d} - {:02d}:{:02d}:{:02d}", date[0], date[1],
+                     date[2], date[3], date[4], date[5]);
 }

 std::string Signature::flag_to_string(Signature::VERIFICATION_FLAGS flag) {
-  CONST_MAP(VERIFICATION_FLAGS, const char*, 13) enumStrings {
-    { Signature::VERIFICATION_FLAGS::OK,                            "OK"},
-    { Signature::VERIFICATION_FLAGS::INVALID_SIGNER,                "INVALID_SIGNER"},
-    { Signature::VERIFICATION_FLAGS::UNSUPPORTED_ALGORITHM,         "UNSUPPORTED_ALGORITHM"},
-    { Signature::VERIFICATION_FLAGS::INCONSISTENT_DIGEST_ALGORITHM, "INCONSISTENT_DIGEST_ALGORITHM"},
-    { Signature::VERIFICATION_FLAGS::CERT_NOT_FOUND,                "CERT_NOT_FOUND"},
-    { Signature::VERIFICATION_FLAGS::CORRUPTED_CONTENT_INFO,        "CORRUPTED_CONTENT_INFO"},
-    { Signature::VERIFICATION_FLAGS::CORRUPTED_AUTH_DATA,           "CORRUPTED_AUTH_DATA"},
-    { Signature::VERIFICATION_FLAGS::MISSING_PKCS9_MESSAGE_DIGEST,  "MISSING_PKCS9_MESSAGE_DIGEST"},
-    { Signature::VERIFICATION_FLAGS::BAD_DIGEST,                    "BAD_DIGEST"},
-    { Signature::VERIFICATION_FLAGS::BAD_SIGNATURE,                 "BAD_SIGNATURE"},
-    { Signature::VERIFICATION_FLAGS::NO_SIGNATURE,                  "NO_SIGNATURE"},
-    { Signature::VERIFICATION_FLAGS::CERT_EXPIRED,                  "CERT_EXPIRED"},
-    { Signature::VERIFICATION_FLAGS::CERT_FUTURE,                   "CERT_FUTURE"},
+  CONST_MAP(VERIFICATION_FLAGS, const char*, 13)
+  enumStrings{
+      {Signature::VERIFICATION_FLAGS::OK, "OK"},
+      {Signature::VERIFICATION_FLAGS::INVALID_SIGNER, "INVALID_SIGNER"},
+      {Signature::VERIFICATION_FLAGS::UNSUPPORTED_ALGORITHM,
+       "UNSUPPORTED_ALGORITHM"},
+      {Signature::VERIFICATION_FLAGS::INCONSISTENT_DIGEST_ALGORITHM,
+       "INCONSISTENT_DIGEST_ALGORITHM"},
+      {Signature::VERIFICATION_FLAGS::CERT_NOT_FOUND, "CERT_NOT_FOUND"},
+      {Signature::VERIFICATION_FLAGS::CORRUPTED_CONTENT_INFO,
+       "CORRUPTED_CONTENT_INFO"},
+      {Signature::VERIFICATION_FLAGS::CORRUPTED_AUTH_DATA, "CORRUPTED_AUTH_DATA"},
+      {Signature::VERIFICATION_FLAGS::MISSING_PKCS9_MESSAGE_DIGEST,
+       "MISSING_PKCS9_MESSAGE_DIGEST"},
+      {Signature::VERIFICATION_FLAGS::BAD_DIGEST, "BAD_DIGEST"},
+      {Signature::VERIFICATION_FLAGS::BAD_SIGNATURE, "BAD_SIGNATURE"},
+      {Signature::VERIFICATION_FLAGS::NO_SIGNATURE, "NO_SIGNATURE"},
+      {Signature::VERIFICATION_FLAGS::CERT_EXPIRED, "CERT_EXPIRED"},
+      {Signature::VERIFICATION_FLAGS::CERT_FUTURE, "CERT_FUTURE"},
   };
   const auto it = enumStrings.find(flag);
   return it == enumStrings.end() ? "UNDEFINED" : it->second;
 }

-Signature::VERIFICATION_FLAGS verify_ts_counter_signature(const SignerInfo& signer,
-    const PKCS9CounterSignature& cs, Signature::VERIFICATION_CHECKS checks) {
+Signature::VERIFICATION_FLAGS
+    verify_ts_counter_signature(const SignerInfo& signer,
+                                const PKCS9CounterSignature& cs,
+                                Signature::VERIFICATION_CHECKS checks) {
   LIEF_DEBUG("PKCS #9 Counter signature found");
   Signature::VERIFICATION_FLAGS flags = Signature::VERIFICATION_FLAGS::OK;
-   const SignerInfo& cs_signer = cs.signer();
+  const SignerInfo& cs_signer = cs.signer();
   if (cs_signer.cert() == nullptr) {
-    LIEF_WARN("Can't find x509 certificate associated with Counter Signature's signer");
+    LIEF_WARN("Failed to find x509 certificate for counter signature's signer");
     return flags | Signature::VERIFICATION_FLAGS::CERT_NOT_FOUND;
   }
   const x509& cs_cert = *cs_signer.cert();
-  const SignerInfo::encrypted_digest_t& cs_enc_digest = cs_signer.encrypted_digest();
+  const SignerInfo::encrypted_digest_t& cs_enc_digest =
+      cs_signer.encrypted_digest();

   std::vector<uint8_t> cs_auth_data = as_vector(cs_signer.raw_auth_data());
   // According to the RFC:
@@ -91,20 +97,24 @@ Signature::VERIFICATION_FLAGS verify_ts_counter_signature(const SignerInfo& sign
   // the SET OF tag, rather than of the IMPLICIT [0] tag [...]"
   cs_auth_data[0] = /* SET OF */ 0x31;
   const ALGORITHMS cs_digest_algo = cs_signer.digest_algorithm();
-  const std::vector<uint8_t>& cs_hash = Signature::hash(cs_auth_data, cs_digest_algo);
+  const std::vector<uint8_t>& cs_hash =
+      Signature::hash(cs_auth_data, cs_digest_algo);
   LIEF_DEBUG("Signed data digest: {}", hex_dump(cs_hash));
   bool check_sig = cs_cert.check_signature(cs_hash, cs_enc_digest, cs_digest_algo);

   if (!check_sig) {
     LIEF_WARN("Authenticated signature (counter signature) mismatch");
-    //return flags | VERIFICATION_FLAGS::BAD_SIGNATURE;
+    // return flags | VERIFICATION_FLAGS::BAD_SIGNATURE;
   }


   /* According to Microsoft documentation:
-   * The Authenticode timestamp SignerInfo structure contains the following authenticated attributes values:
-   * 1. ContentType (1.2.840.113549.1.9.3) is set to PKCS #7 Data (1.2.840.113549.1.7.1).
-   * 2. Signing Time (1.2.840.113549.1.9.5) is set to the UTC time of timestamp generation time.
+   * The Authenticode timestamp SignerInfo structure contains the following
+   * authenticated attributes values:
+   * 1. ContentType (1.2.840.113549.1.9.3) is set to PKCS #7 Data
+   * (1.2.840.113549.1.7.1).
+   * 2. Signing Time (1.2.840.113549.1.9.5) is set to the UTC time of timestamp
+   * generation time.
    * 3. Message Digest (1.2.840.113549.1.9.4) is set to the hash value of the
    *    SignerInfo structure's encryptedDigest value. The hash algorithm that
    *    is used to calculate the hash value is the same as that specified in the
@@ -112,26 +122,34 @@ Signature::VERIFICATION_FLAGS verify_ts_counter_signature(const SignerInfo& sign
    */

   // Verify 1.
-  const auto* content_type_data = static_cast<const ContentType*>(cs_signer.get_auth_attribute(Attribute::TYPE::CONTENT_TYPE));
+  const auto* content_type_data = static_cast<const ContentType*>(
+      cs_signer.get_auth_attribute(Attribute::TYPE::CONTENT_TYPE)
+  );
   if (content_type_data == nullptr) {
-    LIEF_WARN("Missing ContentType in authenticated attributes in the counter signature's signer");
+    LIEF_WARN("Missing ContentType in authenticated attributes in the counter "
+              "signature's signer");
     return flags | Signature::VERIFICATION_FLAGS::INVALID_SIGNER;
   }

   if (content_type_data->oid() != /* PKCS #7 Data */ "1.2.840.113549.1.7.1") {
-    LIEF_WARN("Bad OID for ContentType in authenticated attributes in the counter signature's signer ({})",
-               content_type_data->oid());
+    LIEF_WARN("Bad OID for ContentType in authenticated attributes in the counter "
+              "signature's signer ({})",
+              content_type_data->oid());
     return flags | Signature::VERIFICATION_FLAGS::INVALID_SIGNER;
   }

   // Verify 3.
-  const auto* message_dg = static_cast<const PKCS9MessageDigest*>(cs_signer.get_auth_attribute(Attribute::TYPE::PKCS9_MESSAGE_DIGEST));
+  const auto* message_dg = static_cast<const PKCS9MessageDigest*>(
+      cs_signer.get_auth_attribute(Attribute::TYPE::PKCS9_MESSAGE_DIGEST)
+  );
   if (message_dg == nullptr) {
-    LIEF_WARN("Missing MessageDigest in authenticated attributes in the counter signature's signer");
+    LIEF_WARN("Missing MessageDigest in authenticated attributes in the counter "
+              "signature's signer");
     return flags | Signature::VERIFICATION_FLAGS::INVALID_SIGNER;
   }
   const std::vector<uint8_t>& dg_value = as_vector(message_dg->digest());
-  const std::vector<uint8_t> dg_cs_hash = Signature::hash(signer.encrypted_digest(), cs_digest_algo);
+  const std::vector<uint8_t> dg_cs_hash =
+      Signature::hash(signer.encrypted_digest(), cs_digest_algo);
   if (dg_value != dg_cs_hash) {
     LIEF_WARN("MessageDigest mismatch with Hash(signer ED)");
     return flags | Signature::VERIFICATION_FLAGS::INVALID_SIGNER;
@@ -141,8 +159,12 @@ Signature::VERIFICATION_FLAGS verify_ts_counter_signature(const SignerInfo& sign
    * Verify that signing's time is valid within the signer's certificate
    * validity window.
    */
-  const auto* signing_time = static_cast<const PKCS9SigningTime*>(cs_signer.get_auth_attribute(Attribute::TYPE::PKCS9_SIGNING_TIME));
-  if (signing_time != nullptr && !is_true(checks & Signature::VERIFICATION_CHECKS::SKIP_CERT_TIME)) {
+  const auto* signing_time = static_cast<const PKCS9SigningTime*>(
+      cs_signer.get_auth_attribute(Attribute::TYPE::PKCS9_SIGNING_TIME)
+  );
+  if (signing_time != nullptr &&
+      !is_true(checks & Signature::VERIFICATION_CHECKS::SKIP_CERT_TIME))
+  {
     LIEF_DEBUG("PKCS #9 signing time found");
     PKCS9SigningTime::time_t time = signing_time->time();
     if (!x509::check_time(time, cs_cert.valid_to())) {
@@ -161,69 +183,70 @@ Signature::VERIFICATION_FLAGS verify_ts_counter_signature(const SignerInfo& sign
 }


-std::vector<uint8_t> Signature::hash(const uint8_t* buffer, size_t size, ALGORITHMS algo) {
+std::vector<uint8_t> Signature::hash(const uint8_t* buffer, size_t size,
+                                     ALGORITHMS algo) {
   switch (algo) {

     case ALGORITHMS::SHA_512:
-      {
-        std::vector<uint8_t> out(64);
-        int ret = mbedtls_sha512(buffer, size, out.data(), /* is384 */ 0);
-        if (ret != 0) {
-          LIEF_ERR("Hashing {} bytes with SHA-512 failed! (ret: 0x{:x})", size, ret);
-          return {};
-        }
-        return out;
+    {
+      std::vector<uint8_t> out(64);
+      int ret = mbedtls_sha512(buffer, size, out.data(), /* is384 */ 0);
+      if (ret != 0) {
+        LIEF_ERR("Hashing {} bytes with SHA-512 failed (ret: {:#x})", size, ret);
+        return {};
       }
+      return out;
+    }

     case ALGORITHMS::SHA_384:
-      {
-        std::vector<uint8_t> out(64);
-        int ret = mbedtls_sha512(buffer, size, out.data(), /* is384 */ 1);
-        if (ret != 0) {
-          LIEF_ERR("Hashing {} bytes with SHA-384 failed! (ret: 0x{:x})", size, ret);
-          return {};
-        }
-        out.resize(48);
-        return out;
+    {
+      std::vector<uint8_t> out(64);
+      int ret = mbedtls_sha512(buffer, size, out.data(), /* is384 */ 1);
+      if (ret != 0) {
+        LIEF_ERR("Hashing {} bytes with SHA-384 failed (ret: {:#x})", size, ret);
+        return {};
       }
+      out.resize(48);
+      return out;
+    }

     case ALGORITHMS::SHA_256:
-      {
-        std::vector<uint8_t> out(32);
-        int ret = mbedtls_sha256(buffer, size, out.data(), /* is224 */ 0);
-        if (ret != 0) {
-          LIEF_ERR("Hashing {} bytes with SHA-256 failed! (ret: 0x{:x})", size, ret);
-          return {};
-        }
-        return out;
+    {
+      std::vector<uint8_t> out(32);
+      int ret = mbedtls_sha256(buffer, size, out.data(), /* is224 */ 0);
+      if (ret != 0) {
+        LIEF_ERR("Hashing {} bytes with SHA-256 failed (ret: {:#x})", size, ret);
+        return {};
       }
+      return out;
+    }

     case ALGORITHMS::SHA_1:
-      {
-        std::vector<uint8_t> out(20);
-        int ret = mbedtls_sha1(buffer, size, out.data());
-        if (ret != 0) {
-          LIEF_ERR("Hashing {} bytes with SHA-1 failed! (ret: 0x{:x})", size, ret);
-          return {};
-        }
-        return out;
+    {
+      std::vector<uint8_t> out(20);
+      int ret = mbedtls_sha1(buffer, size, out.data());
+      if (ret != 0) {
+        LIEF_ERR("Hashing {} bytes with SHA-1 failed (ret: {:#x})", size, ret);
+        return {};
       }
+      return out;
+    }

     case ALGORITHMS::MD5:
-      {
-        std::vector<uint8_t> out(16);
-        int ret = mbedtls_md5(buffer, size, out.data());
-        if (ret != 0) {
-          LIEF_ERR("Hashing {} bytes with MD5 failed! (ret: 0x{:x})", size, ret);
-          return {};
-        }
-        return out;
+    {
+      std::vector<uint8_t> out(16);
+      int ret = mbedtls_md5(buffer, size, out.data());
+      if (ret != 0) {
+        LIEF_ERR("Hashing {} bytes with MD5 failed (ret: {:#x})", size, ret);
+        return {};
       }
+      return out;
+    }

     default:
-      {
-        LIEF_ERR("Unsupported hash algorithm {}", to_string(algo));
-      }
+    {
+      LIEF_ERR("Unsupported hash algorithm {}", to_string(algo));
+    }
   }
   return {};
 }
@@ -239,7 +262,7 @@ Signature::VERIFICATION_FLAGS Signature::check(VERIFICATION_CHECKS checks) const
   }

   if (nb_signers > 1) {
-    LIEF_WARN("More than ONE signer ({:d} signers)", nb_signers);
+    LIEF_WARN("More than one signer ({:d} signers)", nb_signers);
     return flags | VERIFICATION_FLAGS::INVALID_SIGNER;
   }
   const SignerInfo& signer = signers_.back();
@@ -248,7 +271,8 @@ Signature::VERIFICATION_FLAGS Signature::check(VERIFICATION_CHECKS checks) const
     LIEF_WARN("ContentInfo type is not SpcIndirectData");
     return flags | VERIFICATION_FLAGS::CORRUPTED_CONTENT_INFO;
   }
-  const auto& spc_indirect_data = static_cast<const SpcIndirectData&>(content_info_.value());
+  const auto& spc_indirect_data =
+      static_cast<const SpcIndirectData&>(content_info_.value());

   // Check that Signature.digest_algorithm matches:
   // - SignerInfo.digest_algorithm
@@ -272,7 +296,7 @@ Signature::VERIFICATION_FLAGS Signature::check(VERIFICATION_CHECKS checks) const
   const ALGORITHMS digest_algo = spc_indirect_data.digest_algorithm();

   if (signer.cert() == nullptr) {
-    LIEF_WARN("Can't find certificate for which the issuer is {}", signer.issuer());
+    LIEF_WARN("Failed to find certificate for issuer {}", signer.issuer());
     return flags | VERIFICATION_FLAGS::CERT_NOT_FOUND;
   }
   const x509& cert = *signer.cert();
@@ -284,7 +308,7 @@ Signature::VERIFICATION_FLAGS Signature::check(VERIFICATION_CHECKS checks) const
    *   value for code signing, or the entire certificate chain must contain no
    *   EKUs. The following is the EKU value for code signing"
    */
-  //TODO(romain)
+  // TODO(romain)

   /*
    * Verify certificate validity
@@ -300,11 +324,12 @@ Signature::VERIFICATION_FLAGS Signature::check(VERIFICATION_CHECKS checks) const
   }

   std::vector<uint8_t> raw_content_info = {
-    std::begin(original_raw_signature_) + content_info_start_,
-    std::begin(original_raw_signature_) + content_info_end_
+      original_raw_signature_.begin() + content_info_start_,
+      original_raw_signature_.begin() + content_info_end_
   };

-  const std::vector<uint8_t> content_info_hash = Signature::hash(raw_content_info, digest_algo);
+  const std::vector<uint8_t> content_info_hash =
+      Signature::hash(raw_content_info, digest_algo);


   // Copy authenticated attributes
@@ -318,7 +343,8 @@ Signature::VERIFICATION_FLAGS Signature::check(VERIFICATION_CHECKS checks) const
     // the SET OF tag, rather than of the IMPLICIT [0] tag [...]"
     auth_data[0] = /* SET OF */ 0x31;

-    const std::vector<uint8_t> auth_attr_hash = Signature::hash(auth_data, digest_algo);
+    const std::vector<uint8_t> auth_attr_hash =
+        Signature::hash(auth_data, digest_algo);
     LIEF_DEBUG("Authenticated attribute digest: {}", hex_dump(auth_attr_hash));
     bool check_sig = cert.check_signature(auth_attr_hash, enc_digest, digest_algo);

@@ -328,24 +354,28 @@ Signature::VERIFICATION_FLAGS Signature::check(VERIFICATION_CHECKS checks) const
     }

     // Check that content_info_hash matches pkcs9-message-digest
-    auto it_pkcs9_digest = std::find_if(std::begin(auth_attrs), std::end(auth_attrs),
-        [] (const Attribute& attr) {
-          return attr.type() == Attribute::TYPE::PKCS9_MESSAGE_DIGEST;
-        });
-
-    if (it_pkcs9_digest == std::end(auth_attrs)) {
-      LIEF_WARN("Can't find the authenticated attribute: 'pkcs9-message-digest'");
+    auto it_pkcs9_digest =
+        std::find_if(auth_attrs.begin(), auth_attrs.end(),
+                     [](const Attribute& attr) {
+                       return attr.type() == Attribute::TYPE::PKCS9_MESSAGE_DIGEST;
+                     });
+
+    if (it_pkcs9_digest == auth_attrs.end()) {
+      LIEF_WARN("Missing authenticated attribute 'pkcs9-message-digest'");
       return flags | VERIFICATION_FLAGS::MISSING_PKCS9_MESSAGE_DIGEST;
     }

-    const auto& digest_attr = static_cast<const PKCS9MessageDigest&>(*it_pkcs9_digest);
-    LIEF_DEBUG("pkcs9-message-digest:\n  {}\n  {}", hex_dump(digest_attr.digest()), hex_dump(content_info_hash));
+    const auto& digest_attr =
+        static_cast<const PKCS9MessageDigest&>(*it_pkcs9_digest);
+    LIEF_DEBUG("PKCS9 message digest:\n  {}\n  {}", hex_dump(digest_attr.digest()),
+               hex_dump(content_info_hash));
     if (as_vector(digest_attr.digest()) != content_info_hash) {
       return flags | VERIFICATION_FLAGS::BAD_DIGEST;
     }
   } else {
     /*
-     * If there is no authenticated attributes, then the encrypted digested should match ENC(content_info_hash)
+     * If there is no authenticated attributes, then the encrypted digested should
+     * match ENC(content_info_hash)
      */
     if (!cert.check_signature(content_info_hash, enc_digest, digest_algo)) {
       return flags | VERIFICATION_FLAGS::BAD_SIGNATURE;
@@ -355,21 +385,27 @@ Signature::VERIFICATION_FLAGS Signature::check(VERIFICATION_CHECKS checks) const
   /*
    * CounterSignature Checks
    */
-  const auto* counter = static_cast<const PKCS9CounterSignature*>(signer.get_unauth_attribute(Attribute::TYPE::PKCS9_COUNTER_SIGNATURE));
-  bool has_ms_counter_sig = signer.get_unauth_attribute(Attribute::TYPE::MS_COUNTER_SIGN) != nullptr;
+  const auto* counter = static_cast<const PKCS9CounterSignature*>(
+      signer.get_unauth_attribute(Attribute::TYPE::PKCS9_COUNTER_SIGNATURE)
+  );
+  bool has_ms_counter_sig =
+      signer.get_unauth_attribute(Attribute::TYPE::MS_COUNTER_SIGN) != nullptr;

   bool timeless_signature = false;
   if (counter != nullptr) {
-    VERIFICATION_FLAGS cs_flags = verify_ts_counter_signature(signer, *counter, checks);
+    VERIFICATION_FLAGS cs_flags =
+        verify_ts_counter_signature(signer, *counter, checks);
     if (cs_flags == VERIFICATION_FLAGS::OK) {
       timeless_signature = true;
     }
   } else if (has_ms_counter_sig) {
     timeless_signature = true;
   }
-  bool should_check_cert_time = !timeless_signature || is_true(checks & VERIFICATION_CHECKS::LIFETIME_SIGNING);
+  bool should_check_cert_time =
+      !timeless_signature ||
+      is_true(checks & VERIFICATION_CHECKS::LIFETIME_SIGNING);
   if (is_true(checks & VERIFICATION_CHECKS::SKIP_CERT_TIME)) {
-      should_check_cert_time = false;
+    should_check_cert_time = false;
   }
   if (should_check_cert_time) {
     /*
@@ -382,18 +418,17 @@ Signature::VERIFICATION_FLAGS Signature::check(VERIFICATION_CHECKS checks) const
     if (x509::time_is_future(cert.valid_from())) {
       return flags | VERIFICATION_FLAGS::CERT_FUTURE;
     }
-
   }
   return flags;
 }


 const x509* Signature::find_crt(const std::vector<uint8_t>& serialno) const {
-  auto it_cert = std::find_if(std::begin(certificates_), std::end(certificates_),
-      [&serialno] (const x509& cert) {
-        return cert.serial_number() == serialno;
-      });
-  if (it_cert == std::end(certificates_)) {
+  auto it_cert = std::find_if(certificates_.begin(), certificates_.end(),
+                              [&serialno](const x509& cert) {
+                                return cert.serial_number() == serialno;
+                              });
+  if (it_cert == certificates_.end()) {
     return nullptr;
   }
   return &(*it_cert);
@@ -401,44 +436,50 @@ const x509* Signature::find_crt(const std::vector<uint8_t>& serialno) const {


 const x509* Signature::find_crt_subject(const std::string& subject) const {
-  auto it_cert = std::find_if(std::begin(certificates_), std::end(certificates_),
-      [&subject] (const x509& cert) {
-        return cert.subject() == subject;
-      });
-  if (it_cert == std::end(certificates_)) {
+  auto it_cert = std::find_if(certificates_.begin(), certificates_.end(),
+                              [&subject](const x509& cert) {
+                                return cert.subject() == subject;
+                              });
+  if (it_cert == certificates_.end()) {
     return nullptr;
   }
   return &(*it_cert);
 }

-const x509* Signature::find_crt_subject(const std::string& subject, const std::vector<uint8_t>& serialno) const {
-  auto it_cert = std::find_if(std::begin(certificates_), std::end(certificates_),
-      [&subject, &serialno] (const x509& cert) {
-        return cert.subject() == subject && cert.serial_number() == serialno;
-      });
-  if (it_cert == std::end(certificates_)) {
+const x509*
+    Signature::find_crt_subject(const std::string& subject,
+                                const std::vector<uint8_t>& serialno) const {
+  auto it_cert = std::find_if(certificates_.begin(), certificates_.end(),
+                              [&subject, &serialno](const x509& cert) {
+                                return cert.subject() == subject &&
+                                       cert.serial_number() == serialno;
+                              });
+  if (it_cert == certificates_.end()) {
     return nullptr;
   }
   return &(*it_cert);
 }

 const x509* Signature::find_crt_issuer(const std::string& issuer) const {
-  auto it_cert = std::find_if(std::begin(certificates_), std::end(certificates_),
-      [&issuer] (const x509& cert) {
-        return cert.issuer() == issuer;
-      });
-  if (it_cert == std::end(certificates_)) {
+  auto it_cert = std::find_if(certificates_.begin(), certificates_.end(),
+                              [&issuer](const x509& cert) {
+                                return cert.issuer() == issuer;
+                              });
+  if (it_cert == certificates_.end()) {
     return nullptr;
   }
   return &(*it_cert);
 }

-const x509* Signature::find_crt_issuer(const std::string& issuer, const std::vector<uint8_t>& serialno) const {
-  auto it_cert = std::find_if(std::begin(certificates_), std::end(certificates_),
-      [&issuer, &serialno] (const x509& cert) {
-        return cert.issuer() == issuer && cert.serial_number() == serialno;
-      });
-  if (it_cert == std::end(certificates_)) {
+const x509*
+    Signature::find_crt_issuer(const std::string& issuer,
+                               const std::vector<uint8_t>& serialno) const {
+  auto it_cert = std::find_if(certificates_.begin(), certificates_.end(),
+                              [&issuer, &serialno](const x509& cert) {
+                                return cert.issuer() == issuer &&
+                                       cert.serial_number() == serialno;
+                              });
+  if (it_cert == certificates_.end()) {
     return nullptr;
   }
   return &(*it_cert);
@@ -448,106 +489,108 @@ void Signature::accept(Visitor& visitor) const {
   visitor.visit(*this);
 }

-inline void print_attr(SignerInfo::it_const_attributes_t& attrs, std::ostream& os) {
+inline void print_attr(SignerInfo::it_const_attributes_t& attrs,
+                       std::ostream& os) {
   for (const Attribute& attr : attrs) {
     std::string suffix;
     switch (attr.type()) {
       case Attribute::TYPE::CONTENT_TYPE:
-        {
-          const auto& ct = static_cast<const ContentType&>(attr);
-          suffix = ct.oid() + " (" + oid_to_string(ct.oid()) + ")";
-          break;
-        }
+      {
+        const auto& ct = static_cast<const ContentType&>(attr);
+        suffix = ct.oid() + " (" + oid_to_string(ct.oid()) + ")";
+        break;
+      }

       case Attribute::TYPE::MS_SPC_STATEMENT_TYPE:
-        {
-          const auto& ct = static_cast<const MsSpcStatementType&>(attr);
-          suffix = ct.oid() + " (" + oid_to_string(ct.oid()) + ")";
-          break;
-        }
+      {
+        const auto& ct = static_cast<const MsSpcStatementType&>(attr);
+        suffix = ct.oid() + " (" + oid_to_string(ct.oid()) + ")";
+        break;
+      }

       case Attribute::TYPE::SPC_SP_OPUS_INFO:
-        {
-          const auto& ct = static_cast<const SpcSpOpusInfo&>(attr);
-          if (!ct.program_name().empty()) {
-            suffix = ct.program_name();
-          }
-          if (!ct.more_info().empty()) {
-            if (!suffix.empty()) {
-              suffix += " - ";
-            }
-            suffix += ct.more_info();
+      {
+        const auto& ct = static_cast<const SpcSpOpusInfo&>(attr);
+        if (!ct.program_name().empty()) {
+          suffix = ct.program_name();
+        }
+        if (!ct.more_info().empty()) {
+          if (!suffix.empty()) {
+            suffix += " - ";
           }
-          break;
+          suffix += ct.more_info();
         }
+        break;
+      }

       case Attribute::TYPE::PKCS9_MESSAGE_DIGEST:
-        {
-          const auto& ct = static_cast<const PKCS9MessageDigest&>(attr);
-          suffix = hex_dump(ct.digest()).substr(0, 41) + "...";
-          break;
-        }
+      {
+        const auto& ct = static_cast<const PKCS9MessageDigest&>(attr);
+        suffix = hex_dump(ct.digest()).substr(0, 41) + "...";
+        break;
+      }

       case Attribute::TYPE::MS_SPC_NESTED_SIGN:
-        {
-          const auto& nested_attr = static_cast<const MsSpcNestedSignature&>(attr);
-          const Signature& ct = nested_attr.sig();
-          auto signers = ct.signers();
-          auto crts = ct.certificates();
-          if (!signers.empty()) {
-            suffix = signers[0].issuer();
-          } else if (!crts.empty()) {
-            suffix = crts[0].issuer();
-          }
-          break;
+      {
+        const auto& nested_attr = static_cast<const MsSpcNestedSignature&>(attr);
+        const Signature& ct = nested_attr.sig();
+        auto signers = ct.signers();
+        auto crts = ct.certificates();
+        if (!signers.empty()) {
+          suffix = signers[0].issuer();
+        } else if (!crts.empty()) {
+          suffix = crts[0].issuer();
         }
+        break;
+      }

       case Attribute::TYPE::GENERIC_TYPE:
-        {
-          const auto& ct = static_cast<const GenericType&>(attr);
-          suffix = ct.oid();
-          break;
-        }
+      {
+        const auto& ct = static_cast<const GenericType&>(attr);
+        suffix = ct.oid();
+        break;
+      }

       case Attribute::TYPE::PKCS9_AT_SEQUENCE_NUMBER:
-        {
-          const auto& ct = static_cast<const PKCS9AtSequenceNumber&>(attr);
-          suffix = std::to_string(ct.number());
-          break;
-        }
+      {
+        const auto& ct = static_cast<const PKCS9AtSequenceNumber&>(attr);
+        suffix = std::to_string(ct.number());
+        break;
+      }

       case Attribute::TYPE::PKCS9_COUNTER_SIGNATURE:
-        {
-          const auto& ct = static_cast<const PKCS9CounterSignature&>(attr);
-          const SignerInfo& signer = ct.signer();
-          suffix = signer.issuer();
-          break;
-        }
+      {
+        const auto& ct = static_cast<const PKCS9CounterSignature&>(attr);
+        const SignerInfo& signer = ct.signer();
+        suffix = signer.issuer();
+        break;
+      }

       case Attribute::TYPE::PKCS9_SIGNING_TIME:
-        {
-          const auto& ct = static_cast<const PKCS9SigningTime&>(attr);
-          const PKCS9SigningTime::time_t time = ct.time();
-          suffix = fmt::format("{}/{}/{} - {}:{}:{}",
-                              time[0], time[1], time[2], time[3], time[4], time[5]);
-          break;
-        }
+      {
+        const auto& ct = static_cast<const PKCS9SigningTime&>(attr);
+        const PKCS9SigningTime::time_t time = ct.time();
+        suffix = fmt::format("{}/{}/{} - {}:{}:{}", time[0], time[1], time[2],
+                             time[3], time[4], time[5]);
+        break;
+      }

       default:
-        {
-        }
+      {
+      }
     }
     os << fmt::format("  {}: {}\n", to_string(attr.type()), suffix);
-
   }
 }

 std::ostream& operator<<(std::ostream& os, const Signature& signature) {
   const ContentInfo& cinfo = signature.content_info();
   os << fmt::format("Version:             {:d}\n", signature.version());
-  os << fmt::format("Digest Algorithm:    {}\n", to_string(signature.digest_algorithm()));
+  os << fmt::format("Digest Algorithm:    {}\n",
+                    to_string(signature.digest_algorithm()));
   if (const auto* spc_indirect_data = cinfo.value().cast<SpcIndirectData>()) {
-    os << fmt::format("Content Info Digest: {}\n", hex_dump(spc_indirect_data->digest()));
+    os << fmt::format("Content Info Digest: {}\n",
+                      hex_dump(spc_indirect_data->digest()));
     if (!spc_indirect_data->file().empty()) {
       os << fmt::format("Content Info File:   {}\n", spc_indirect_data->file());
     }
@@ -556,7 +599,26 @@ std::ostream& operator<<(std::ostream& os, const Signature& signature) {
   Signature::it_const_crt certs = signature.certificates();
   os << fmt::format("#{:d} certificate(s):\n", certs.size());
   for (const x509& crt : certs) {
-    os << fmt::format("  - {}\n", crt.issuer()); // TODO(romain): RSA-2048, ...
+    std::string key_info;
+    switch (crt.key_type()) {
+      case x509::KEY_TYPES::RSA:
+      case x509::KEY_TYPES::RSA_ALT:
+      case x509::KEY_TYPES::RSASSA_PSS:
+      {
+        std::unique_ptr<RsaInfo> rsa = crt.rsa_info();
+        key_info = rsa != nullptr ? fmt::format("RSA-{}", rsa->key_size()) : "RSA";
+        break;
+      }
+      case x509::KEY_TYPES::ECKEY:
+      case x509::KEY_TYPES::ECKEY_DH:
+      case x509::KEY_TYPES::ECDSA: key_info = "EC"; break;
+      default: break;
+    }
+    if (key_info.empty()) {
+      os << fmt::format("  - {}\n", crt.issuer());
+    } else {
+      os << fmt::format("  - {} ({})\n", crt.issuer(), key_info);
+    }
   }

   Signature::it_const_signers_t signers = signature.signers();
@@ -564,24 +626,27 @@ std::ostream& operator<<(std::ostream& os, const Signature& signature) {
   for (const SignerInfo& signer : signers) {
     os << fmt::format("Issuer:       {}\n", signer.issuer());
     os << fmt::format("Digest:       {}\n", to_string(signer.digest_algorithm()));
-    os << fmt::format("Encryption:   {}\n", to_string(signer.encryption_algorithm()));
-    os << fmt::format("Encrypted DG: {} ...\n", hex_dump(signer.encrypted_digest()).substr(0, 41));
-    SignerInfo::it_const_attributes_t auth_attr = signer.authenticated_attributes();
+    os << fmt::format("Encryption:   {}\n",
+                      to_string(signer.encryption_algorithm()));
+    os << fmt::format("Encrypted DG: {} ...\n",
+                      hex_dump(signer.encrypted_digest()).substr(0, 41));
+    SignerInfo::it_const_attributes_t auth_attr =
+        signer.authenticated_attributes();
     if (!auth_attr.empty()) {
       os << fmt::format("#{:d} authenticated attributes:\n", auth_attr.size());
       print_attr(auth_attr, os);
     }

-    SignerInfo::it_const_attributes_t unauth_attr = signer.unauthenticated_attributes();
+    SignerInfo::it_const_attributes_t unauth_attr =
+        signer.unauthenticated_attributes();
     if (!unauth_attr.empty()) {
-      os << fmt::format("#{:d} un-authenticated attributes:\n", unauth_attr.size());
+      os << fmt::format("#{:d} un-authenticated attributes:\n",
+                        unauth_attr.size());
       print_attr(unauth_attr, os);
     }
-
   }
   return os;
 }


 }
-}
diff --git a/deps/LIEF/src/PE/signature/SignatureParser.cpp b/deps/LIEF/src/PE/signature/SignatureParser.cpp
index bc654b8ed3b..99fe18357b3 100644
--- a/deps/LIEF/src/PE/signature/SignatureParser.cpp
+++ b/deps/LIEF/src/PE/signature/SignatureParser.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -53,11 +53,10 @@
 #include "LIEF/PE/signature/OIDToString.hpp"

 #include "logging.hpp"
-#include "messages.hpp"
 #include "internal_utils.hpp"
+#include "mbedtls_init.hpp"

-namespace LIEF {
-namespace PE {
+namespace LIEF::PE {

 inline uint8_t stream_get_tag(BinaryStream& stream) {
   if (auto tag = stream.peek<uint8_t>()) {
@@ -69,7 +68,7 @@ inline uint8_t stream_get_tag(BinaryStream& stream) {
 result<Signature> SignatureParser::parse(const std::string& path) {
   std::ifstream binary(path, std::ios::in | std::ios::binary);
   if (!binary) {
-    LIEF_ERR("Can't open {}", path);
+    LIEF_ERR("Failed to open {}", path);
     return make_error_code(lief_errors::file_error);
   }
   binary.unsetf(std::ios::skipws);
@@ -81,7 +80,8 @@ result<Signature> SignatureParser::parse(const std::string& path) {
   return SignatureParser::parse(std::move(raw_blob));
 }

-result<Signature> SignatureParser::parse(std::vector<uint8_t> data, bool skip_header) {
+result<Signature> SignatureParser::parse(std::vector<uint8_t> data,
+                                         bool skip_header) {
   if (data.size() < 10) {
     return make_error_code(lief_errors::read_error);
   }
@@ -92,7 +92,7 @@ result<Signature> SignatureParser::parse(std::vector<uint8_t> data, bool skip_he

   auto sig = SignatureParser::parse_signature(*stream);
   if (!sig) {
-    LIEF_ERR("Error while parsing the signature");
+    LIEF_ERR("Failed to parse signature");
     return make_error_code(sig.error());
   }
   return sig.value();
@@ -107,9 +107,12 @@ result<Signature> SignatureParser::parse(BinaryStream& stream, bool skip_header)
 }

 result<Signature> SignatureParser::parse_signature(BinaryStream& stream) {
+  mbedtls_init();
+
   Signature signature;
   if (VectorStream::classof(stream)) {
-    signature.original_raw_signature_ = static_cast<VectorStream&>(stream).content();
+    signature.original_raw_signature_ =
+        static_cast<VectorStream&>(stream).content();
   } else if (SpanStream::classof(stream)) {
     signature.original_raw_signature_ = static_cast<SpanStream&>(stream).content();
   }
@@ -122,18 +125,19 @@ result<Signature> SignatureParser::parse_signature(BinaryStream& stream) {

   auto oid = asn1r.read_oid();
   if (!oid) {
-    LIEF_INFO("Can't read OID value (pos: {})", stream.pos());
+    LIEF_INFO("Failed to read OID value (pos: {})", stream.pos());
     return make_error_code(oid.error());
   }
   std::string& oid_str = oid.value();

   if (oid_str != /* pkcs7-signedData */ "1.2.840.113549.1.7.2") {
-    LIEF_INFO("Expecting OID pkcs7-signed-data at {:d} but got {}",
-              stream.pos(), oid_to_string(oid_str));
+    LIEF_INFO("Expected OID pkcs7-signed-data at {:d} but got {}", stream.pos(),
+              oid_to_string(oid_str));
     return make_error_code(lief_errors::read_error);
   }

-  tag = asn1r.read_tag(MBEDTLS_ASN1_CONTEXT_SPECIFIC | MBEDTLS_ASN1_CONSTRUCTED | 0);
+  tag =
+      asn1r.read_tag(MBEDTLS_ASN1_CONTEXT_SPECIFIC | MBEDTLS_ASN1_CONSTRUCTED | 0);
   if (!tag) {
     LIEF_INFO("Wrong tag: {} (pos: {:d})", asn1r.get_str_tag(), stream.pos());
     return make_error_code(tag.error());
@@ -184,13 +188,13 @@ result<Signature> SignatureParser::parse_signature(BinaryStream& stream) {
   // ==============================================================================
   auto version = asn1r.read_int();
   if (!version) {
-    LIEF_INFO("Can't parse version (pos: {:d})", stream.pos());
+    LIEF_INFO("Failed to parse version (pos: {:d})", stream.pos());
     return make_error_code(version.error());
   }
   const int32_t version_val = version.value();
-  LIEF_DEBUG("pkcs7-signed-data.version: {:d}", version_val);
+  LIEF_DEBUG("PKCS7 signed data version: {:d}", version_val);
   if (version_val != 1) {
-    LIEF_INFO("pkcs7-signed-data.version is not 1 ({:d})", version_val);
+    LIEF_INFO("PKCS7 signed data version is not 1 ({:d})", version_val);
     return make_error_code(lief_errors::not_supported);
   }
   signature.version_ = version_val;
@@ -211,23 +215,27 @@ result<Signature> SignatureParser::parse_signature(BinaryStream& stream) {
     const size_t current_p = stream.pos();
     auto alg = asn1r.read_alg();
     if (!alg) {
-      LIEF_INFO("Can't parse signed data digest algorithm (pos: {:d})", stream.pos());
+      LIEF_INFO("Failed to parse signed data digest algorithm (pos: {:d})",
+                stream.pos());
       break;
     }
     if (stream.pos() == current_p) {
       break;
     }
-    LIEF_DEBUG("pkcs7-signed-data.digest-algorithms: {}", oid_to_string(alg.value()));
+    LIEF_DEBUG("PKCS7 signed data digest algorithms: {}",
+               oid_to_string(alg.value()));
     algorithms.push_back(std::move(alg.value()));
   }

   if (algorithms.empty()) {
-    LIEF_INFO("pkcs7-signed-data.digest-algorithms no algorithms found");
+    LIEF_INFO("PKCS7 signed data digest algorithms: No algorithms found");
     return make_error_code(lief_errors::read_error);
   }

   if (algorithms.size() > 1) {
-    LIEF_INFO("pkcs7-signed-data.digest-algorithms {:d} algorithms found. Expecting only 1", algorithms.size());
+    LIEF_INFO("PKCS7 signed data digest algorithms: {:d} algorithms found, "
+              "expecting only 1",
+              algorithms.size());
     return make_error_code(lief_errors::read_error);
   }

@@ -243,7 +251,7 @@ result<Signature> SignatureParser::parse_signature(BinaryStream& stream) {
   // =========================================================
   tag = asn1r.read_tag(MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE);
   if (!tag) {
-    LIEF_INFO("Wrong tag: {} can't parse content info (pos: {:d})",
+    LIEF_INFO("Wrong tag: {}, failed to parse content info (pos: {:d})",
               asn1r.get_str_tag(), stream.pos());
     return make_error_code(tag.error());
   }
@@ -258,18 +266,21 @@ result<Signature> SignatureParser::parse_signature(BinaryStream& stream) {
         content_info_stream.setpos(0);
         ASN1Reader asn1r(content_info_stream);
         auto content_type = asn1r.read_oid();
+        if (!content_type) {
+          return make_error_code(content_type.error());
+        }
         const std::string& ctype_str = content_type.value();
-        LIEF_WARN("Expecting SPC_INDIRECT_DATA at {:d} but got {}",
-                  stream.pos(), oid_to_string(ctype_str));
+        LIEF_WARN("Expecting SPC_INDIRECT_DATA at {:d} but got {}", stream.pos(),
+                  oid_to_string(ctype_str));
         return make_error_code(lief_errors::read_error);
       }
-      signature.content_info_       = std::move(*content_info);
+      signature.content_info_ = std::move(*content_info);
       signature.content_info_start_ = stream.pos() + range.start;
-      signature.content_info_end_   = stream.pos() + range.end;
-      LIEF_DEBUG("ContentInfo range: {:d} -> {:d}",
-                 signature.content_info_start_, signature.content_info_end_);
+      signature.content_info_end_ = stream.pos() + range.end;
+      LIEF_DEBUG("ContentInfo range: {:d} -> {:d}", signature.content_info_start_,
+                 signature.content_info_end_);
     } else {
-      LIEF_INFO("Fail to parse pkcs7-signed-data.content-info");
+      LIEF_INFO("Failed to parse pkcs7-signed-data.content-info");
     }
     stream.increment_pos(raw_content_size);
   }
@@ -278,7 +289,8 @@ result<Signature> SignatureParser::parse_signature(BinaryStream& stream) {
   // =========================================================

   tag = asn1r.read_tag(/* certificates */
-                       MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_CONTEXT_SPECIFIC);
+                       MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_CONTEXT_SPECIFIC
+  );
   if (tag) {
     LIEF_DEBUG("Parse pkcs7-signed-data.certificates offset: {:d}", stream.pos());
     SpanStream certificate_stream{stream.p(), tag.value()};
@@ -289,14 +301,15 @@ result<Signature> SignatureParser::parse_signature(BinaryStream& stream) {
       // Makes chain
       signature.certificates_ = std::move(*certificates);
     } else {
-      LIEF_INFO("Fail to parse pkcs7-signed-data.certificates");
+      LIEF_INFO("Failed to parse pkcs7-signed-data.certificates");
     }
   }

   // CRLS (optional)
   // =========================================================
   tag = asn1r.read_tag(/* certificates */
-                       MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_CONTEXT_SPECIFIC | 1);
+                       MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_CONTEXT_SPECIFIC | 1
+  );
   if (tag) {
     LIEF_DEBUG("Parse pkcs7-signed-data.crls offset: {:d}", stream.pos());
     const size_t crls_size = tag.value();
@@ -314,7 +327,7 @@ result<Signature> SignatureParser::parse_signature(BinaryStream& stream) {
     stream.increment_pos(raw_content_size);
     auto signer_info = parse_signer_infos(signers_stream);
     if (!signer_info) {
-      LIEF_INFO("Fail to parse pkcs7-signed-data.signer-infos");
+      LIEF_INFO("Failed to parse pkcs7-signed-data.signer-infos");
     } else {
       signature.signers_ = std::move(signer_info.value());
     }
@@ -322,20 +335,27 @@ result<Signature> SignatureParser::parse_signature(BinaryStream& stream) {

   // Tied signer info with x509 certificates
   for (SignerInfo& signer : signature.signers_) {
-    const x509* crt = signature.find_crt_issuer(signer.issuer(), as_vector(signer.serial_number()));
+    const x509* crt = signature.find_crt_issuer(signer.issuer(),
+                                                as_vector(signer.serial_number()));
     if (crt != nullptr) {
       signer.cert_ = std::make_unique<x509>(*crt);
     } else {
-      LIEF_INFO("Can't find x509 certificate associated with signer '{}'", signer.issuer());
+      LIEF_INFO("Failed to find x509 certificate associated with signer '{}'",
+                signer.issuer());
     }
-    const auto* cs = static_cast<const PKCS9CounterSignature*>(signer.get_attribute(Attribute::TYPE::PKCS9_COUNTER_SIGNATURE));
+    const auto* cs = static_cast<const PKCS9CounterSignature*>(
+        signer.get_attribute(Attribute::TYPE::PKCS9_COUNTER_SIGNATURE)
+    );
     if (cs != nullptr) {
       SignerInfo& cs_signer = const_cast<PKCS9CounterSignature*>(cs)->signer_;
-      const x509* crt = signature.find_crt_issuer(cs_signer.issuer(), as_vector(cs_signer.serial_number()));
+      const x509* crt =
+          signature.find_crt_issuer(cs_signer.issuer(),
+                                    as_vector(cs_signer.serial_number()));
       if (crt != nullptr) {
         cs_signer.cert_ = std::make_unique<x509>(*crt);
       } else {
-        LIEF_INFO("Can't find x509 certificate associated with signer '{}'", signer.issuer());
+        LIEF_INFO("Failed to find x509 certificate associated with signer '{}'",
+                  signer.issuer());
       }
     }
   }
@@ -343,8 +363,8 @@ result<Signature> SignatureParser::parse_signature(BinaryStream& stream) {
   return signature;
 }

-result<ContentInfo>
-SignatureParser::parse_content_info(BinaryStream& stream, range_t& range) {
+result<ContentInfo> SignatureParser::parse_content_info(BinaryStream& stream,
+                                                        range_t& range) {
   // ==============================================================================
   // ContentInfo
   // ContentInfo ::= SEQUENCE {
@@ -358,12 +378,13 @@ SignatureParser::parse_content_info(BinaryStream& stream, range_t& range) {

   auto content_type = asn1r.read_oid();
   if (!content_type) {
-    LIEF_INFO("Can't parse content-info.content-type (pos: {:d})", stream.pos());
+    LIEF_INFO("Failed to parse content-info.content-type (pos: {:d})",
+              stream.pos());
     return make_error_code(content_type.error());
   }

   const std::string& ctype_str = content_type.value();
-  LIEF_DEBUG("content-info.content-type: {}", oid_to_string(ctype_str));
+  LIEF_DEBUG("Content info content type: {}", oid_to_string(ctype_str));

   if (ctype_str == /* SPC_INDIRECT_DATA_CONTEXT */ "1.3.6.1.4.1.311.2.1.4") {
     auto spc_indirect_data = parse_spc_indirect_data(stream, range);
@@ -372,7 +393,7 @@ SignatureParser::parse_content_info(BinaryStream& stream, range_t& range) {
       return content_info;
     }

-    LIEF_WARN("Can't parse SPC_INDIRECT_DATA (pos={})", stream.pos());
+    LIEF_WARN("Failed to parse SPC_INDIRECT_DATA (pos={})", stream.pos());
     auto generic = std::make_unique<GenericContent>(ctype_str);
     stream.setpos(0);
     generic->raw_ = {stream.p(), stream.end()};
@@ -386,7 +407,7 @@ SignatureParser::parse_content_info(BinaryStream& stream, range_t& range) {
       content_info.value_ = std::move(*tstinfo);
       return content_info;
     }
-    LIEF_WARN("Can't parse PKCS9 TSTInfo (pos={})", stream.pos());
+    LIEF_WARN("Failed to parse PKCS9 TSTInfo (pos={})", stream.pos());
     auto generic = std::make_unique<GenericContent>(ctype_str);
     stream.setpos(0);
     generic->raw_ = {stream.p(), stream.end()};
@@ -402,7 +423,8 @@ SignatureParser::parse_content_info(BinaryStream& stream, range_t& range) {
 }

 result<std::unique_ptr<SpcIndirectData>>
-SignatureParser::parse_spc_indirect_data(BinaryStream& stream, range_t& range) {
+    SignatureParser::parse_spc_indirect_data(BinaryStream& stream,
+                                             range_t& range) {
   // ==============================================================================
   // Then process SpcIndirectDataContent, which has this structure:
   //
@@ -428,16 +450,19 @@ SignatureParser::parse_spc_indirect_data(BinaryStream& stream, range_t& range) {
   // ==============================================================================
   ASN1Reader asn1r(stream);
   auto indirect_data = std::make_unique<SpcIndirectData>();
-  auto tag = asn1r.read_tag(/* [0] EXPLICIT ANY DEFINED BY contentType OPTIONAL */
-                            MBEDTLS_ASN1_CONTEXT_SPECIFIC | MBEDTLS_ASN1_CONSTRUCTED);
+  auto tag =
+      asn1r.read_tag(/* [0] EXPLICIT ANY DEFINED BY contentType OPTIONAL */
+                     MBEDTLS_ASN1_CONTEXT_SPECIFIC | MBEDTLS_ASN1_CONSTRUCTED
+      );
   if (!tag) {
     LIEF_INFO("Wrong tag: {} (pos: {:d})", asn1r.get_str_tag(), stream.pos());
     return make_error_code(tag.error());
   }
-  range.end   = stream.size();
+  range.end = stream.size();

   tag = asn1r.read_tag(/* SpcIndirectDataContent */
-                       MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE);
+                       MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE
+  );
   if (!tag) {
     LIEF_INFO("Wrong tag: {} (pos: {:d})", asn1r.get_str_tag(), stream.pos());
     return make_error_code(tag.error());
@@ -445,7 +470,8 @@ SignatureParser::parse_spc_indirect_data(BinaryStream& stream, range_t& range) {

   range.start = stream.pos();
   tag = asn1r.read_tag(/* SpcAttributeTypeAndOptionalValue */
-                       MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE);
+                       MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE
+  );
   if (!tag) {
     LIEF_INFO("Wrong tag: {} (pos: {:d})", asn1r.get_str_tag(), stream.pos());
     return make_error_code(tag.error());
@@ -454,14 +480,19 @@ SignatureParser::parse_spc_indirect_data(BinaryStream& stream, range_t& range) {
   // SpcAttributeTypeAndOptionalValue.type
   auto spc_attr_type = asn1r.read_oid();
   if (!spc_attr_type) {
-    LIEF_INFO("Can't parse spc-attribute-type-and-optional-value.type (pos: {:d})", stream.pos());
+    LIEF_INFO(
+        "Failed to parse spc-attribute-type-and-optional-value.type (pos: {:d})",
+        stream.pos()
+    );
     return make_error_code(spc_attr_type.error());
   }
   const std::string& spc_attr_type_str = spc_attr_type.value();
-  LIEF_DEBUG("spc-attribute-type-and-optional-value.type: {}", oid_to_string(spc_attr_type_str));
+  LIEF_DEBUG("SPC attribute type and optional value type: {}",
+             oid_to_string(spc_attr_type_str));
   if (spc_attr_type_str == /* SPC_PE_IMAGE_DATA */ "1.3.6.1.4.1.311.2.1.15") {
     tag = asn1r.read_tag(/* SpcPeImageData ::= SEQUENCE */
-                         MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE);
+                         MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE
+    );

     if (!tag) {
       LIEF_INFO("Wrong tag: {} (pos: {:d})", asn1r.get_str_tag(), stream.pos());
@@ -470,40 +501,40 @@ SignatureParser::parse_spc_indirect_data(BinaryStream& stream, range_t& range) {

     /* SpcPeImageData */ {
       const size_t length = tag.value();
-      SpanStream spc_data_stream{ stream.p(), length };
+      SpanStream spc_data_stream{stream.p(), length};
       stream.increment_pos(spc_data_stream.size());
       if (auto spc_data = parse_spc_pe_image_data(spc_data_stream)) {
         const SpcPeImageData& spc_data_value = *spc_data;
         indirect_data->file_ = spc_data_value.file;
         indirect_data->flags_ = spc_data_value.flags;
-      }
-      else {
-        LIEF_INFO("Can't parse SpcPeImageData");
+      } else {
+        LIEF_INFO("Failed to parse SpcPeImageData");
       }
     }
-  }
-  else if (spc_attr_type_str == /* SPC_LINK_(TYPE_2) */ "1.3.6.1.4.1.311.2.1.25" ||
-           spc_attr_type_str == /* SPC_LINK_(TYPE_3) */ "1.3.6.1.4.1.311.2.1.28")
+  } else if (spc_attr_type_str ==
+                 /* SPC_LINK_(TYPE_2) */ "1.3.6.1.4.1.311.2.1.25" ||
+             spc_attr_type_str == /* SPC_LINK_(TYPE_3) */ "1.3.6.1.4.1.311.2.1.28")
   {

     tag = asn1r.read_tag(/* SpcLink / URL ::= STRING */
-                         MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_CONTEXT_SPECIFIC | MBEDTLS_ASN1_INTEGER);
+                         MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_CONTEXT_SPECIFIC |
+                         MBEDTLS_ASN1_INTEGER
+    );

     if (!tag) {
       LIEF_INFO("Wrong tag: {} (pos: {:d})", asn1r.get_str_tag(), stream.pos());
       return make_error_code(tag.error());
     }
     const size_t length = tag.value();
-    SpanStream spc_data_stream{ stream.p(), length };
+    SpanStream spc_data_stream{stream.p(), length};
     stream.increment_pos(spc_data_stream.size());
     if (auto link = parse_spc_link(spc_data_stream)) {
       LIEF_DEBUG("SpcIndirectData.url = {}", *link);
       indirect_data->url_ = link.value();
     } else {
-      LIEF_INFO("Can't parse SpcLink");
+      LIEF_INFO("Failed to parse SpcLink");
     }
-  }
-  else {
+  } else {
     LIEF_WARN("Expecting OID SPC_PE_IMAGE_DATA or SPC_LINK at {:d} but got {}",
               stream.pos(), oid_to_string(spc_attr_type_str));
     return make_error_code(lief_errors::read_error);
@@ -513,7 +544,8 @@ SignatureParser::parse_spc_indirect_data(BinaryStream& stream, range_t& range) {
   // DigestInfo ::= SEQUENCE
   // ================================================
   tag = asn1r.read_tag(/* DigestInfo */
-                       MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE);
+                       MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE
+  );

   if (!tag) {
     LIEF_INFO("Wrong tag {} for DigestInfo ::= SEQUENCE (pos: {:d})",
@@ -523,12 +555,14 @@ SignatureParser::parse_spc_indirect_data(BinaryStream& stream, range_t& range) {

   auto alg_identifier = asn1r.read_alg();
   if (!alg_identifier) {
-    LIEF_INFO("Can't parse SignedData.contentInfo.messageDigest.digestAlgorithm (pos: {:d})",
+    LIEF_INFO("Failed to parse "
+              "SignedData.contentInfo.messageDigest.digestAlgorithm (pos: {:d})",
               stream.pos());
     return make_error_code(alg_identifier.error());
   }

-  LIEF_DEBUG("spc-indirect-data-content.digest-algorithm {}", oid_to_string(alg_identifier.value()));
+  LIEF_DEBUG("SPC indirect data content digest algorithm: {}",
+             oid_to_string(alg_identifier.value()));
   ALGORITHMS algo = algo_from_oid(alg_identifier.value());
   if (algo == ALGORITHMS::UNKNOWN) {
     LIEF_WARN("LIEF does not handle {}", alg_identifier.value());
@@ -541,25 +575,50 @@ SignatureParser::parse_spc_indirect_data(BinaryStream& stream, range_t& range) {
   //  in SignerInfo and the parent PKCS #7 digestAlgorithms fields.
   auto digest = asn1r.read_octet_string();
   if (!digest) {
-    LIEF_INFO("Can't parse SignedData.contentInfo.messageDigest.digest (pos={})",
-              stream.pos());
+    LIEF_INFO(
+        "Failed to parse SignedData.contentInfo.messageDigest.digest (pos={})",
+        stream.pos()
+    );
     return make_error_code(digest.error());
   }
   indirect_data->digest_ = std::move(digest.value());
-  LIEF_DEBUG("spc-indirect-data-content.digest: {}",
+  LIEF_DEBUG("SPC indirect data content digest: {}",
              hex_dump(indirect_data->digest_));
   return indirect_data;
 }

-result<SignatureParser::x509_certificates_t> SignatureParser::parse_certificates(BinaryStream& stream) {
+result<SignatureParser::x509_certificates_t>
+    SignatureParser::parse_certificates(BinaryStream& stream) {
   ASN1Reader asn1r(stream);

   x509_certificates_t certificates;
   const uint64_t cert_end_p = stream.size();
   while (stream.pos() < cert_end_p) {
+    // CMS CertificateChoices (RFC 5652) allows non-X509 entries
+    // tagged [0]..[3] IMPLICIT (extendedCertificate, v1AttrCert, v2AttrCert,
+    // otherCertificateFormat). mbedtls only handles the plain X509 SEQUENCE,
+    // so peek the tag and skip those alternates.
+    const uint8_t tag = stream_get_tag(stream);
+    if ((tag & MBEDTLS_ASN1_CONTEXT_SPECIFIC) == MBEDTLS_ASN1_CONTEXT_SPECIFIC) {
+      // TODO(romain): We might want to process these certificates
+      auto skipped = asn1r.read_tag(tag);
+      if (!skipped) {
+        LIEF_WARN("Failed to skip non-X509 CertificateChoices entry "
+                  "(tag: {:#04x}, pos: {:d}, idx: {})",
+                  tag, stream.pos(), certificates.size());
+        return certificates;
+      }
+      LIEF_DEBUG("Skipping non-X509 CertificateChoices entry "
+                 "(tag: {:#04x}, size: {}, idx: {})",
+                 tag, *skipped, certificates.size());
+      stream.increment_pos(*skipped);
+      continue;
+    }
     auto cert = asn1r.read_cert();
     if (!cert) {
-      LIEF_INFO("Can't parse X509 cert pkcs7-signed-data.certificates (pos: {:d})", stream.pos());
+      LIEF_WARN("Failed to parse X509 cert pkcs7-signed-data.certificates (pos: "
+                "{:d}, idx: {})",
+                stream.pos(), certificates.size());
       return certificates;
     }

@@ -576,7 +635,8 @@ result<SignatureParser::x509_certificates_t> SignatureParser::parse_certificates
 }


-result<SignatureParser::signer_infos_t> SignatureParser::parse_signer_infos(BinaryStream& stream) {
+result<SignatureParser::signer_infos_t>
+    SignatureParser::parse_signer_infos(BinaryStream& stream) {
   const uintptr_t end_set = stream.size();

   signer_infos_t infos;
@@ -588,10 +648,13 @@ result<SignatureParser::signer_infos_t> SignatureParser::parse_signer_infos(Bina
     const size_t current_p = stream.pos();

     auto tag = asn1r.read_tag(/* SignerInfo */
-                              MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE);
+                              MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE
+    );
     if (!tag) {
-      LIEF_INFO("Wrong tag: {} for pkcs7-signed-data.signer-infos SEQUENCE (pos: {:d})",
-                asn1r.get_str_tag(), stream.pos());
+      LIEF_INFO(
+          "Wrong tag: {} for pkcs7-signed-data.signer-infos SEQUENCE (pos: {:d})",
+          asn1r.get_str_tag(), stream.pos()
+      );
       break;
     }

@@ -600,14 +663,18 @@ result<SignatureParser::signer_infos_t> SignatureParser::parse_signer_infos(Bina
     // =======================================================
     auto version = asn1r.read_int();
     if (!version) {
-      LIEF_INFO("Can't parse pkcs7-signed-data.signer-info.version (pos: {:d})", stream.pos());
+      LIEF_INFO(
+          "Failed to parse pkcs7-signed-data.signer-info.version (pos: {:d})",
+          stream.pos()
+      );
       break;
     }

     int32_t version_val = version.value();
-    LIEF_DEBUG("pkcs7-signed-data.signer-info.version: {}", version_val);
+    LIEF_DEBUG("PKCS7 signed data signer info version: {}", version_val);
     if (version_val != 1) {
-      LIEF_DEBUG("pkcs7-signed-data.signer-info.version: Bad version ({:d})", version_val);
+      LIEF_DEBUG("PKCS7 signed data signer info version: Bad version ({:d})",
+                 version_val);
       break;
     }
     signer.version_ = version_val;
@@ -618,36 +685,47 @@ result<SignatureParser::signer_infos_t> SignatureParser::parse_signer_infos(Bina
     //   serialNumber CertificateSerialNumber
     // }
     //
-    // For Name see: https://github.com/ARMmbed/mbedtls/blob/9e4d4387f07326fff227a40f76c25e5181b1b1e2/library/x509_crt.c#L1180
+    // For Name see:
+    // https://github.com/ARMmbed/mbedtls/blob/9e4d4387f07326fff227a40f76c25e5181b1b1e2/library/x509_crt.c#L1180
     // =======================================================
     tag = asn1r.read_tag(/* Name */
-                         MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE);
+                         MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE
+    );
     if (!tag) {
       LIEF_INFO("Wrong tag: {} for "
-                "pkcs7-signed-data.signer-infos.issuer-and-serial-number.issuer (pos: {:d})",
+                "pkcs7-signed-data.signer-infos.issuer-and-serial-number.issuer "
+                "(pos: {:d})",
                 asn1r.get_str_tag(), stream.pos());
       break;
     }

     auto issuer = asn1r.x509_read_names();
     if (!issuer) {
-      LIEF_INFO("Can't parse pkcs7-signed-data.signer-infos.issuer-and-serial-number.issuer (pos: {:d})",
+      LIEF_INFO("Failed to parse "
+                "pkcs7-signed-data.signer-infos.issuer-and-serial-number.issuer "
+                "(pos: {:d})",
                 stream.pos());
       break;
     }

-    LIEF_DEBUG("pkcs7-signed-data.signer-infos.issuer-and-serial-number.issuer: {} (pos: {:d})",
+    LIEF_DEBUG("PKCS7 signed data signer infos issuer and serial number issuer: "
+               "{} (pos: {:d})",
                issuer.value(), stream.pos());
     signer.issuer_ = std::move(issuer.value());

     auto sn = asn1r.x509_read_serial();
     if (!sn) {
-      LIEF_INFO("Can't parse pkcs7-signed-data.signer-infos.issuer-and-serial-number.serial-number (pos: {:d})",
+      LIEF_INFO("Failed to parse "
+                "pkcs7-signed-data.signer-infos.issuer-and-serial-number.serial-"
+                "number (pos: {:d})",
                 stream.pos());
       break;
     }

-    LIEF_DEBUG("pkcs7-signed-data.signer-infos.issuer-and-serial-number.serial-number {}", hex_dump(sn.value()));
+    LIEF_DEBUG(
+        "pkcs7-signed-data.signer-infos.issuer-and-serial-number.serial-number {}",
+        hex_dump(sn.value())
+    );
     signer.serialno_ = std::move(sn.value());

     // =======================================================
@@ -657,10 +735,13 @@ result<SignatureParser::signer_infos_t> SignatureParser::parse_signer_infos(Bina
       auto digest_alg = asn1r.read_alg();

       if (!digest_alg) {
-        LIEF_INFO("Can't parse pkcs7-signed-data.signer-infos.digest-algorithm (pos: {:d})", stream.pos());
+        LIEF_INFO("Failed to parse "
+                  "pkcs7-signed-data.signer-infos.digest-algorithm (pos: {:d})",
+                  stream.pos());
         break;
       }
-      LIEF_DEBUG("pkcs7-signed-data.signer-infos.digest-algorithm: {}", oid_to_string(digest_alg.value()));
+      LIEF_DEBUG("PKCS7 signed data signer infos digest algorithm: {}",
+                 oid_to_string(digest_alg.value()));

       ALGORITHMS dg_algo = algo_from_oid(digest_alg.value());
       if (dg_algo == ALGORITHMS::UNKNOWN) {
@@ -675,19 +756,24 @@ result<SignatureParser::signer_infos_t> SignatureParser::parse_signer_infos(Bina
     // =======================================================
     {
       const uint64_t auth_attr_start = stream.pos();
-      tag = asn1r.read_tag(/* authenticatedAttributes [0] IMPLICIT Attributes OPTIONAL */
-                           MBEDTLS_ASN1_CONSTRUCTED      |
-                           MBEDTLS_ASN1_CONTEXT_SPECIFIC | 0);
+      tag = asn1r.read_tag(/* authenticatedAttributes [0] IMPLICIT Attributes
+                              OPTIONAL */
+                           MBEDTLS_ASN1_CONSTRUCTED |
+                           MBEDTLS_ASN1_CONTEXT_SPECIFIC | 0
+      );
       if (tag) {
         const uint64_t auth_attr_end = stream.pos() + tag.value();
         SpanStream auth_stream(stream.p(), tag.value());
         stream.increment_pos(auth_stream.size());
         auto authenticated_attributes = parse_attributes(auth_stream);
         if (!authenticated_attributes) {
-          LIEF_INFO("Fail to parse pkcs7-signed-data.signer-infos.authenticated-attributes");
+          LIEF_INFO("Failed to parse "
+                    "pkcs7-signed-data.signer-infos.authenticated-attributes");
         } else {
-          signer.raw_auth_data_ = {stream.start() + auth_attr_start, stream.start() + auth_attr_end};
-          signer.authenticated_attributes_ = std::move(authenticated_attributes.value());
+          signer.raw_auth_data_ = {stream.start() + auth_attr_start,
+                                   stream.start() + auth_attr_end};
+          signer.authenticated_attributes_ =
+              std::move(authenticated_attributes.value());
         }
       }
     }
@@ -698,11 +784,13 @@ result<SignatureParser::signer_infos_t> SignatureParser::parse_signer_infos(Bina
     {
       auto digest_enc_alg = asn1r.read_alg();
       if (!digest_enc_alg) {
-        LIEF_INFO("Can't parse pkcs7-signed-data.signer-infos.digest-encryption-algorithm (pos: {:d})",
+        LIEF_INFO("Failed to parse "
+                  "pkcs7-signed-data.signer-infos.digest-encryption-algorithm "
+                  "(pos: {:d})",
                   stream.pos());
         return make_error_code(digest_enc_alg.error());
       }
-      LIEF_DEBUG("pkcs7-signed-data.signer-infos.digest-encryption-algorithm: {}",
+      LIEF_DEBUG("PKCS7 signed data signer infos digest encryption algorithm: {}",
                  oid_to_string(digest_enc_alg.value()));

       ALGORITHMS dg_enc_algo = algo_from_oid(digest_enc_alg.value());
@@ -719,10 +807,12 @@ result<SignatureParser::signer_infos_t> SignatureParser::parse_signer_infos(Bina
     {
       auto enc_digest = asn1r.read_octet_string();
       if (!enc_digest) {
-        LIEF_INFO("Can't parse pkcs7-signed-data.signer-infos.encrypted-digest (pos: {:d})", stream.pos());
+        LIEF_INFO("Failed to parse "
+                  "pkcs7-signed-data.signer-infos.encrypted-digest (pos: {:d})",
+                  stream.pos());
         return make_error_code(enc_digest.error());
       }
-      LIEF_DEBUG("pkcs7-signed-data.signer-infos.encrypted-digest: {}",
+      LIEF_DEBUG("PKCS7 signed data signer infos encrypted digest: {}",
                  hex_dump(enc_digest.value()).substr(0, 10));
       signer.encrypted_digest_ = enc_digest.value();
     }
@@ -731,17 +821,21 @@ result<SignatureParser::signer_infos_t> SignatureParser::parse_signer_infos(Bina
     // Unauthenticated Attributes
     // =======================================================
     {
-      tag = asn1r.read_tag(/* unauthenticatedAttributes [1] IMPLICIT Attributes OPTIONAL */
-                           MBEDTLS_ASN1_CONSTRUCTED      |
-                           MBEDTLS_ASN1_CONTEXT_SPECIFIC | 1);
+      tag = asn1r.read_tag(/* unauthenticatedAttributes [1] IMPLICIT Attributes
+                              OPTIONAL */
+                           MBEDTLS_ASN1_CONSTRUCTED |
+                           MBEDTLS_ASN1_CONTEXT_SPECIFIC | 1
+      );
       if (tag) {
         SpanStream unauth_stream(stream.p(), tag.value());
         stream.increment_pos(unauth_stream.size());
         auto unauthenticated_attributes = parse_attributes(unauth_stream);
         if (!unauthenticated_attributes) {
-          LIEF_INFO("Fail to parse pkcs7-signed-data.signer-infos.unauthenticated-attributes");
+          LIEF_INFO("Failed to parse "
+                    "pkcs7-signed-data.signer-infos.unauthenticated-attributes");
         } else {
-          signer.unauthenticated_attributes_ = std::move(unauthenticated_attributes.value());
+          signer.unauthenticated_attributes_ =
+              std::move(unauthenticated_attributes.value());
         }
       }
     }
@@ -756,7 +850,7 @@ result<SignatureParser::signer_infos_t> SignatureParser::parse_signer_infos(Bina


 result<SignatureParser::attributes_t>
-SignatureParser::parse_attributes(BinaryStream& stream) {
+    SignatureParser::parse_attributes(BinaryStream& stream) {
   // Attributes ::= SET OF Attribute
   //
   // Attribute ::= SEQUENCE
@@ -769,25 +863,28 @@ SignatureParser::parse_attributes(BinaryStream& stream) {

   while (stream) {
     auto tag = asn1r.read_tag(/* Attribute ::= SEQUENCE */
-                              MBEDTLS_ASN1_SEQUENCE | MBEDTLS_ASN1_CONSTRUCTED);
+                              MBEDTLS_ASN1_SEQUENCE | MBEDTLS_ASN1_CONSTRUCTED
+    );
     if (!tag) {
-      LIEF_INFO("Can't parse attribute (pos: {:d})", stream.pos());
+      LIEF_INFO("Failed to parse attribute (pos: {:d})", stream.pos());
       break;
     }

     auto oid = asn1r.read_oid();
     if (!oid) {
-      LIEF_INFO("Can't parse attribute.type (pos: {:d})", stream.pos());
+      LIEF_INFO("Failed to parse attribute.type (pos: {:d})", stream.pos());
       break;
     }
     tag = asn1r.read_tag(/* AttributeSetValue */
-                         MBEDTLS_ASN1_SET | MBEDTLS_ASN1_CONSTRUCTED);
+                         MBEDTLS_ASN1_SET | MBEDTLS_ASN1_CONSTRUCTED
+    );
     if (!tag) {
-      LIEF_DEBUG("attribute.values: Unable to get set for {}", oid.value());
+      LIEF_DEBUG("Attribute values: Failed to get set for {}", oid.value());
       break;
     }
     const size_t value_set_size = tag.value();
-    LIEF_DEBUG("attribute.values: {} ({:d} bytes)", oid_to_string(oid.value()), value_set_size);
+    LIEF_DEBUG("Attribute values: {} ({:d} bytes)", oid_to_string(oid.value()),
+               value_set_size);

     SpanStream value_stream(stream.p(), value_set_size);

@@ -798,124 +895,121 @@ SignatureParser::parse_attributes(BinaryStream& stream) {
       if (oid_str == /* contentType */ "1.2.840.113549.1.9.3") {
         auto res = parse_content_type(value_stream);
         if (!res || res.value() == nullptr) {
-          LIEF_INFO("Can't parse content-type attribute");
+          LIEF_INFO("Failed to parse content-type attribute");
         } else {
           attributes.push_back(std::move(res.value()));
         }
-      }
-
-      else if (oid_str == /* SpcSpOpusInfo */ "1.3.6.1.4.1.311.2.1.12") {
+      } else if (oid_str == /* SpcSpOpusInfo */ "1.3.6.1.4.1.311.2.1.12") {
         auto res = parse_spc_sp_opus_info(value_stream);
         if (!res) {
-          LIEF_INFO("Can't parse spc-sp-opus-info attribute");
+          LIEF_INFO("Failed to parse spc-sp-opus-info attribute");
         } else {
           SpcSpOpusInfo info = std::move(res.value());
-          attributes.push_back(std::make_unique<PE::SpcSpOpusInfo>(std::move(info.program_name),
-                                                                   std::move(info.more_info)));
+          attributes.push_back(std::make_unique<PE::SpcSpOpusInfo>(
+              std::move(info.program_name), std::move(info.more_info)
+          ));
         }
-      }
-
-      else if (oid_str == /* Ms-CounterSign */ "1.3.6.1.4.1.311.3.3.1") {
+      } else if (oid_str == /* Ms-CounterSign */ "1.3.6.1.4.1.311.3.3.1") {
         if (auto res = parse_ms_counter_sign(value_stream)) {
           attributes.push_back(std::move(*res));
         } else {
-          LIEF_INFO("Can't parse ms-counter-sign attribute");
+          LIEF_INFO("Failed to parse ms-counter-sign attribute");
         }
-      }
-
-      else if (oid_str == /* pkcs9-CounterSignature */ "1.2.840.113549.1.9.6") {
+      } else if (oid_str == /* pkcs9-CounterSignature */ "1.2.840.113549.1.9.6") {
         auto res = parse_pkcs9_counter_sign(value_stream);
         if (!res) {
-          LIEF_INFO("Can't parse pkcs9-counter-sign attribute");
+          LIEF_INFO("Failed to parse pkcs9-counter-sign attribute");
         } else {
           const std::vector<SignerInfo>& signers = res.value();
           if (signers.empty()) {
-            LIEF_INFO("Can't parse signer info associated with the pkcs9-counter-sign");
+            LIEF_INFO("No signer info in pkcs9-counter-sign");
           } else if (signers.size() > 1) {
-            LIEF_INFO("More than one signer info associated with the pkcs9-counter-sign");
+            LIEF_INFO(
+                "More than one signer info associated with the pkcs9-counter-sign"
+            );
           } else {
-            attributes.push_back(std::make_unique<PKCS9CounterSignature>(signers.back()));
+            attributes.push_back(
+                std::make_unique<PKCS9CounterSignature>(signers.back())
+            );
           }
         }
-      }
-
-      else if (oid_str == /* Ms-SpcNestedSignature */ "1.3.6.1.4.1.311.2.4.1") {
+      } else if (oid_str == /* Ms-SpcNestedSignature */ "1.3.6.1.4.1.311.2.4.1") {
         auto res = parse_ms_spc_nested_signature(value_stream);
         if (!res) {
-          LIEF_INFO("Can't parse ms-spc-nested-signature attribute");
+          LIEF_INFO("Failed to parse ms-spc-nested-signature attribute");
         } else {
-          attributes.push_back(std::make_unique<MsSpcNestedSignature>(std::move(res.value())));
+          attributes.push_back(
+              std::make_unique<MsSpcNestedSignature>(std::move(res.value()))
+          );
         }
-      }
-
-      else if (oid_str == /* pkcs9-MessageDigest */ "1.2.840.113549.1.9.4") {
+      } else if (oid_str == /* pkcs9-MessageDigest */ "1.2.840.113549.1.9.4") {
         auto res = parse_pkcs9_message_digest(value_stream);
         if (!res) {
-          LIEF_INFO("Can't parse pkcs9-message-digest attribute");
+          LIEF_INFO("Failed to parse pkcs9-message-digest attribute");
         } else {
-          attributes.push_back(std::make_unique<PKCS9MessageDigest>(std::move(res.value())));
+          attributes.push_back(
+              std::make_unique<PKCS9MessageDigest>(std::move(res.value()))
+          );
         }
-      }
-
-      else if (oid_str == /* Ms-SpcStatementType */ "1.3.6.1.4.1.311.2.1.11") {
+      } else if (oid_str == /* Ms-SpcStatementType */ "1.3.6.1.4.1.311.2.1.11") {
         auto res = parse_ms_spc_statement_type(value_stream);
         if (!res) {
-          LIEF_INFO("Can't parse ms-spc-statement-type attribute");
+          LIEF_INFO("Failed to parse ms-spc-statement-type attribute");
         } else {
-          attributes.push_back(std::make_unique<MsSpcStatementType>(std::move(res.value())));
+          attributes.push_back(
+              std::make_unique<MsSpcStatementType>(std::move(res.value()))
+          );
         }
-      }
-
-      else if (oid_str == /* pkcs9-at-SequenceNumber */ "1.2.840.113549.1.9.25.4") {
+      } else if (oid_str ==
+                 /* pkcs9-at-SequenceNumber */ "1.2.840.113549.1.9.25.4")
+      {
         auto res = parse_pkcs9_at_sequence_number(value_stream);
         if (!res) {
-          LIEF_INFO("Can't parse pkcs9-at-SequenceNumber attribute");
+          LIEF_INFO("Failed to parse pkcs9-at-SequenceNumber attribute");
         } else {
           attributes.push_back(std::make_unique<PKCS9AtSequenceNumber>(*res));
         }
-      }
-
-      else if (oid_str == /* pkcs9-signing-time */ "1.2.840.113549.1.9.5") {
+      } else if (oid_str == /* pkcs9-signing-time */ "1.2.840.113549.1.9.5") {
         auto res = parse_pkcs9_signing_time(value_stream);
         if (!res) {
-          LIEF_INFO("Can't parse pkcs9-signing-time attribute");
+          LIEF_INFO("Failed to parse pkcs9-signing-time attribute");
         } else {
           attributes.push_back(std::make_unique<PKCS9SigningTime>(*res));
         }
-      }
-
-      else if (oid_str == /* szOID_PLATFORM_MANIFEST_BINARY_ID */ "1.3.6.1.4.1.311.10.3.28") {
+      } else if (oid_str ==
+                 /* szOID_PLATFORM_MANIFEST_BINARY_ID */ "1.3.6.1.4.1.311.10.3.28")
+      {
         if (auto res = parse_ms_platform_manifest_binary_id(value_stream)) {
           attributes.push_back(std::move(*res));
         } else {
-          LIEF_INFO("Can't parse ms-szoid-platform-manifest-binary-id");
+          LIEF_INFO("Failed to parse ms-szoid-platform-manifest-binary-id");
         }
-      }
-
-      else if (oid_str == /* SPC_RELAXED_PE_MARKER_CHECK_OBJID */ "1.3.6.1.4.1.311.2.6.1") {
+      } else if (oid_str ==
+                 /* SPC_RELAXED_PE_MARKER_CHECK_OBJID */ "1.3.6.1.4.1.311.2.6.1")
+      {
         if (auto res = parse_spc_relaxed_pe_marker_check(value_stream)) {
           attributes.push_back(std::move(*res));
         } else {
-          LIEF_INFO("Can't parse spc-relaxed-pe-marker-check");
+          LIEF_INFO("Failed to parse spc-relaxed-pe-marker-check");
         }
-      }
-
-      else if (oid_str == /* SIGNING_CERTIFICATE_V2 */ "1.2.840.113549.1.9.16.2.47") {
+      } else if (oid_str ==
+                 /* SIGNING_CERTIFICATE_V2 */ "1.2.840.113549.1.9.16.2.47")
+      {
         if (auto res = parse_signing_certificate_v2(value_stream)) {
           attributes.push_back(std::move(*res));
         } else {
-          LIEF_INFO("Can't parse signing-certificate-v2");
+          LIEF_INFO("Failed to parse signing-certificate-v2");
         }
-      }
-
-      else {
+      } else {
         LIEF_INFO("Unknown OID: {}", oid_str);
-        attributes.push_back(std::make_unique<GenericType>(oid_str, value_stream.content()));
+        attributes.push_back(
+            std::make_unique<GenericType>(oid_str, value_stream.content())
+        );
         break;
       }

       if (current_p >= value_stream.pos()) {
-        LIEF_INFO("Endless loop detected!");
+        LIEF_INFO("Endless loop detected");
         break;
       }

@@ -929,7 +1023,8 @@ SignatureParser::parse_attributes(BinaryStream& stream) {
   return attributes;
 }

-result<std::unique_ptr<Attribute>> SignatureParser::parse_content_type(BinaryStream& stream) {
+result<std::unique_ptr<Attribute>>
+    SignatureParser::parse_content_type(BinaryStream& stream) {
   /*
    *
    * ContentType ::= OBJECT IDENTIFIER
@@ -939,16 +1034,17 @@ result<std::unique_ptr<Attribute>> SignatureParser::parse_content_type(BinaryStr
   ASN1Reader asn1r(stream);
   auto oid = asn1r.read_oid();
   if (!oid) {
-    LIEF_INFO("Can't parse content-type.oid (pos: {:d})", stream.pos());
+    LIEF_INFO("Failed to parse content-type.oid (pos: {:d})", stream.pos());
     return make_error_code(oid.error());
   }
   const std::string& oid_str = oid.value();
-  LIEF_DEBUG("content-type.oid: {}", oid_to_string(oid_str));
-  LIEF_DEBUG("content-type remaining bytes: {}", stream.size() - stream.pos());
+  LIEF_DEBUG("Content type OID: {}", oid_to_string(oid_str));
+  LIEF_DEBUG("Content type remaining bytes: {}", stream.size() - stream.pos());
   return std::unique_ptr<Attribute>{new ContentType{oid_str}};
 }

-result<SignatureParser::SpcSpOpusInfo> SignatureParser::parse_spc_sp_opus_info(BinaryStream& stream) {
+result<SignatureParser::SpcSpOpusInfo>
+    SignatureParser::parse_spc_sp_opus_info(BinaryStream& stream) {
   // SpcSpOpusInfo ::= SEQUENCE {
   //   programName        [0] EXPLICIT SpcString OPTIONAL,
   //   moreInfo           [1] EXPLICIT SpcLink   OPTIONAL
@@ -957,32 +1053,35 @@ result<SignatureParser::SpcSpOpusInfo> SignatureParser::parse_spc_sp_opus_info(B
   ASN1Reader asn1r(stream);
   SpcSpOpusInfo info;
   auto tag = asn1r.read_tag(/* SpcSpOpusInfo ::= SEQUENCE */
-                            MBEDTLS_ASN1_SEQUENCE | MBEDTLS_ASN1_CONSTRUCTED);
+                            MBEDTLS_ASN1_SEQUENCE | MBEDTLS_ASN1_CONSTRUCTED
+  );
   if (!tag) {
-    LIEF_INFO("Wrong tag for  spc-sp-opus-info SEQUENCE : {} (pos: {:d})",
+    LIEF_INFO("Wrong tag for spc-sp-opus-info SEQUENCE: {} (pos: {:d})",
               asn1r.get_str_tag(), stream.pos());
     return make_error_code(tag.error());
   }

   tag = asn1r.read_tag(/* programName [0] EXPLICIT SpcString OPTIONAL */
-                       MBEDTLS_ASN1_CONTEXT_SPECIFIC | MBEDTLS_ASN1_CONSTRUCTED);
+                       MBEDTLS_ASN1_CONTEXT_SPECIFIC | MBEDTLS_ASN1_CONSTRUCTED
+  );
   if (tag) {
     SpanStream spc_string_stream(stream.p(), tag.value());
     auto program_name = parse_spc_string(spc_string_stream);
     if (!program_name) {
-      LIEF_INFO("Fail to parse spc-sp-opus-info.program-name");
+      LIEF_INFO("Failed to parse spc-sp-opus-info.program-name");
     } else {
       info.program_name = program_name.value();
     }
     stream.increment_pos(spc_string_stream.size());
   }
   tag = asn1r.read_tag(/* moreInfo [1] EXPLICIT SpcLink OPTIONAL */
-                       MBEDTLS_ASN1_CONTEXT_SPECIFIC | MBEDTLS_ASN1_CONSTRUCTED | 1);
+                       MBEDTLS_ASN1_CONTEXT_SPECIFIC | MBEDTLS_ASN1_CONSTRUCTED | 1
+  );
   if (tag) {
     SpanStream spc_link_stream(stream.p(), tag.value());
     auto more_info = parse_spc_link(spc_link_stream);
     if (!more_info) {
-      LIEF_INFO("Fail to parse spc-sp-opus-info.more-info");
+      LIEF_INFO("Failed to parse spc-sp-opus-info.more-info");
     } else {
       info.more_info = more_info.value();
     }
@@ -991,7 +1090,8 @@ result<SignatureParser::SpcSpOpusInfo> SignatureParser::parse_spc_sp_opus_info(B
   return info;
 }

-result<std::unique_ptr<Attribute>> SignatureParser::parse_ms_counter_sign(BinaryStream& stream) {
+result<std::unique_ptr<Attribute>>
+    SignatureParser::parse_ms_counter_sign(BinaryStream& stream) {
   /*
    *
    * SignedData ::= SEQUENCE {
@@ -1017,18 +1117,19 @@ result<std::unique_ptr<Attribute>> SignatureParser::parse_ms_counter_sign(Binary

   auto oid = asn1r.read_oid();
   if (!oid) {
-    LIEF_INFO("Can't read OID value (pos: {})", stream.pos());
+    LIEF_INFO("Failed to read OID value (pos: {})", stream.pos());
     return make_error_code(oid.error());
   }
   std::string& oid_str = oid.value();

   if (oid_str != /* pkcs7-signedData */ "1.2.840.113549.1.7.2") {
-    LIEF_INFO("Expecting OID pkcs7-signed-data at {:d} but got {}",
-              stream.pos(), oid_to_string(oid_str));
+    LIEF_INFO("Expected OID pkcs7-signed-data at {:d} but got {}", stream.pos(),
+              oid_to_string(oid_str));
     return make_error_code(lief_errors::read_error);
   }

-  tag = asn1r.read_tag(MBEDTLS_ASN1_CONTEXT_SPECIFIC | MBEDTLS_ASN1_CONSTRUCTED | 0);
+  tag =
+      asn1r.read_tag(MBEDTLS_ASN1_CONTEXT_SPECIFIC | MBEDTLS_ASN1_CONSTRUCTED | 0);
   if (!tag) {
     LIEF_INFO("Wrong tag: {} (pos: {:d})", asn1r.get_str_tag(), stream.pos());
     return make_error_code(tag.error());
@@ -1050,11 +1151,12 @@ result<std::unique_ptr<Attribute>> SignatureParser::parse_ms_counter_sign(Binary
   {
     auto version = asn1r.read_int();
     if (!version) {
-      LIEF_INFO("Can't parse version (pos: {:d})", stream.pos());
+      LIEF_INFO("Failed to parse version (pos: {:d})", stream.pos());
       return make_error_code(version.error());
     }
     const int32_t version_val = version.value();
-    LIEF_DEBUG("ms_counter_sig.pkcs7-signed-data.version: {:d}", version_val);
+    LIEF_DEBUG("MS counter signature PKCS7 signed data version: {:d}",
+               version_val);
     counter_sig->version_ = version.value();
   }

@@ -1080,24 +1182,30 @@ result<std::unique_ptr<Attribute>> SignatureParser::parse_ms_counter_sign(Binary
       const size_t current_p = stream.pos();
       auto alg = asn1r.read_alg();
       if (!alg) {
-        LIEF_INFO("Can't parse signed data digest algorithm (pos: {:d})", stream.pos());
+        LIEF_INFO("Failed to parse signed data digest algorithm (pos: {:d})",
+                  stream.pos());
         break;
       }

       if (stream.pos() == current_p) {
         break;
       }
-      LIEF_DEBUG("ms_counter_sig.pkcs7-signed-data.digest-algorithms: {}", oid_to_string(alg.value()));
+      LIEF_DEBUG("MS counter signature PKCS7 signed data digest algorithms: {}",
+                 oid_to_string(alg.value()));
       algorithms.push_back(std::move(alg.value()));
     }

     if (algorithms.empty()) {
-      LIEF_INFO("ms_counter_sig.pkcs7-signed-data.digest-algorithms no algorithms found");
+      LIEF_INFO(
+          "ms_counter_sig.pkcs7-signed-data.digest-algorithms no algorithms found"
+      );
       return make_error_code(lief_errors::read_error);
     }

     if (algorithms.size() > 1) {
-      LIEF_INFO("ms_counter_sig.pkcs7-signed-data.digest-algorithms multiple algorithms");
+      LIEF_INFO(
+          "ms_counter_sig.pkcs7-signed-data.digest-algorithms multiple algorithms"
+      );
       return make_error_code(lief_errors::read_error);
     }
     counter_sig->digest_algorithm_ = algo_from_oid(algorithms.back());
@@ -1114,7 +1222,7 @@ result<std::unique_ptr<Attribute>> SignatureParser::parse_ms_counter_sign(Binary
   {
     auto tag = asn1r.read_tag(MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE);
     if (!tag) {
-      LIEF_INFO("Wrong tag: {} can't parse content info (pos: {:d})",
+      LIEF_INFO("Wrong tag: {}, failed to parse content info (pos: {:d})",
                 asn1r.get_str_tag(), stream.pos());
       return make_error_code(tag.error());
     }
@@ -1124,11 +1232,11 @@ result<std::unique_ptr<Attribute>> SignatureParser::parse_ms_counter_sign(Binary
     range_t range = {0, 0};
     if (auto content_info = parse_content_info(content_info_stream, range)) {
       counter_sig->content_info_ = std::move(*content_info);
-      //signature.content_info_start_ = stream.pos() + range.start;
-      //signature.content_info_end_   = stream.pos() + range.end;
+      // signature.content_info_start_ = stream.pos() + range.start;
+      // signature.content_info_end_   = stream.pos() + range.end;
       LIEF_DEBUG("ContentInfo range: {} -> {}", range.start, range.end);
     } else {
-      LIEF_INFO("Fail to parse ms_counter_sig.pkcs7-signed-data.content-info");
+      LIEF_INFO("Failed to parse ms_counter_sig.pkcs7-signed-data.content-info");
     }
     stream.increment_pos(raw_content_size);
   }
@@ -1145,8 +1253,10 @@ result<std::unique_ptr<Attribute>> SignatureParser::parse_ms_counter_sign(Binary
     auto tag = asn1r.read_tag(MBEDTLS_ASN1_CONSTRUCTED |
                               MBEDTLS_ASN1_CONTEXT_SPECIFIC | 0);
     if (tag) {
-      LIEF_DEBUG("ms_counter_sig.pkcs7-signed-data.certificates (offset={}, size={})",
-                 stream.pos(), *tag);
+      LIEF_DEBUG(
+          "ms_counter_sig.pkcs7-signed-data.certificates (offset={}, size={})",
+          stream.pos(), *tag
+      );
       SpanStream certificate_stream{stream.p(), *tag};
       stream.increment_pos(*tag);

@@ -1154,7 +1264,7 @@ result<std::unique_ptr<Attribute>> SignatureParser::parse_ms_counter_sign(Binary
       if (certificates) {
         counter_sig->certificates_ = std::move(*certificates);
       } else {
-        LIEF_INFO("Fail to parse ms_counter_sig.pkcs7-signed-data.certificates");
+        LIEF_INFO("Failed to parse ms_counter_sig.pkcs7-signed-data.certificates");
       }
     }
   }
@@ -1170,7 +1280,8 @@ result<std::unique_ptr<Attribute>> SignatureParser::parse_ms_counter_sign(Binary
     auto tag = asn1r.read_tag(MBEDTLS_ASN1_CONSTRUCTED |
                               MBEDTLS_ASN1_CONTEXT_SPECIFIC | 1);
     if (tag) {
-      LIEF_DEBUG("ms_counter_sig.pkcs7-signed-data.crls offset: {:d}", stream.pos());
+      LIEF_DEBUG("MS counter signature PKCS7 signed data CRLs offset: {:d}",
+                 stream.pos());
       // TODO(romain): process
       SpanStream crls_stream{stream.p(), tag.value()};
       stream.increment_pos(tag.value());
@@ -1189,23 +1300,28 @@ result<std::unique_ptr<Attribute>> SignatureParser::parse_ms_counter_sign(Binary
   {
     auto tag = asn1r.read_tag(MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SET);
     if (tag) {
-      LIEF_DEBUG("ms_counter_sig.pkcs7-signed-data.signer-infos offset: {:d}", stream.pos());
+      LIEF_DEBUG(
+          "MS counter signature PKCS7 signed data signer infos offset: {:d}",
+          stream.pos()
+      );
       const size_t raw_content_size = tag.value();
       SpanStream signers_stream{stream.p(), raw_content_size};
       stream.increment_pos(raw_content_size);
       if (auto signer_info = parse_signer_infos(signers_stream)) {
         counter_sig->signers_ = std::move(signer_info.value());
       } else {
-        LIEF_INFO("Fail to parse ms_counter_sig.pkcs7-signed-data.signer-infos");
+        LIEF_INFO("Failed to parse ms_counter_sig.pkcs7-signed-data.signer-infos");
       }
     }
   }

-  LIEF_DEBUG("Ms-CounterSignature remaining bytes: {}", stream.size() - stream.pos());
+  LIEF_DEBUG("Ms-CounterSignature remaining bytes: {}",
+             stream.size() - stream.pos());
   return counter_sig;
 }

-result<SignatureParser::signer_infos_t> SignatureParser::parse_pkcs9_counter_sign(BinaryStream& stream) {
+result<SignatureParser::signer_infos_t>
+    SignatureParser::parse_pkcs9_counter_sign(BinaryStream& stream) {
   // counterSignature ATTRIBUTE ::= {
   //          WITH SYNTAX SignerInfo
   //          ID pkcs-9-at-counterSignature
@@ -1213,36 +1329,42 @@ result<SignatureParser::signer_infos_t> SignatureParser::parse_pkcs9_counter_sig
   LIEF_DEBUG("Parsing pkcs9-CounterSign ({} bytes)", stream.size());
   auto counter_sig = parse_signer_infos(stream);
   if (!counter_sig) {
-    LIEF_INFO("Fail to parse pkcs9-counter-signature");
+    LIEF_INFO("Failed to parse pkcs9-counter-signature");
     return make_error_code(counter_sig.error());
   }
-  LIEF_DEBUG("pkcs9-counter-signature remaining bytes: {}", stream.size() - stream.pos());
+  LIEF_DEBUG("PKCS9 counter signature remaining bytes: {}",
+             stream.size() - stream.pos());
   return counter_sig.value();
 }

-result<Signature> SignatureParser::parse_ms_spc_nested_signature(BinaryStream& stream) {
+result<Signature>
+    SignatureParser::parse_ms_spc_nested_signature(BinaryStream& stream) {
   // SET of pkcs7-signed data
   LIEF_DEBUG("Parsing Ms-SpcNestedSignature ({} bytes)", stream.size());
   auto sign = SignatureParser::parse(stream, /* skip header */ false);
   if (!sign) {
-    LIEF_INFO("Ms-SpcNestedSignature finished with errors");
+    LIEF_INFO("Failed to parse Ms-SpcNestedSignature");
     return make_error_code(sign.error());
   }
-  LIEF_DEBUG("ms-spc-nested-signature remaining bytes: {}", stream.size() - stream.pos());
+  LIEF_DEBUG("MS SPC nested signature remaining bytes: {}",
+             stream.size() - stream.pos());
   return sign.value();
 }

-result<std::vector<uint8_t>> SignatureParser::parse_pkcs9_message_digest(BinaryStream& stream) {
+result<std::vector<uint8_t>>
+    SignatureParser::parse_pkcs9_message_digest(BinaryStream& stream) {
   ASN1Reader asn1r(stream);
   auto digest = asn1r.read_octet_string();
   if (!digest) {
-    LIEF_INFO("Can't process OCTET STREAM for attribute.pkcs9-message-digest (pos: {})",
+    LIEF_INFO("Failed to process OCTET STREAM for attribute.pkcs9-message-digest "
+              "(pos: {})",
               stream.pos());
     return make_error_code(digest.error());
   }
   const std::vector<uint8_t>& raw_digest = digest.value();
-  LIEF_DEBUG("attribute.pkcs9-message-digest {}", hex_dump(raw_digest));
-  LIEF_DEBUG("pkcs9-message-digest remaining bytes: {}", stream.size() - stream.pos());
+  LIEF_DEBUG("Attribute PKCS9 message digest: {}", hex_dump(raw_digest));
+  LIEF_DEBUG("PKCS9 message digest remaining bytes: {}",
+             stream.size() - stream.pos());
   return raw_digest;
 }

@@ -1259,25 +1381,29 @@ result<oid_t> SignatureParser::parse_ms_spc_statement_type(BinaryStream& stream)

   auto oid = asn1r.read_oid();
   if (!oid) {
-    LIEF_INFO("Can't parse ms-spc-statement-type.oid (pos: {:d})", stream.pos());
+    LIEF_INFO("Failed to parse ms-spc-statement-type.oid (pos: {:d})",
+              stream.pos());
     return make_error_code(oid.error());
   }
   const oid_t& oid_str = oid.value();
-  LIEF_DEBUG("ms-spc-statement-type.oid: {}", oid_to_string(oid_str));
-  LIEF_DEBUG("ms-spc-statement-type remaining bytes: {}", stream.size() - stream.pos());
+  LIEF_DEBUG("MS SPC statement type OID: {}", oid_to_string(oid_str));
+  LIEF_DEBUG("MS SPC statement type remaining bytes: {}",
+             stream.size() - stream.pos());
   return oid_str;
 }

-result<int32_t> SignatureParser::parse_pkcs9_at_sequence_number(BinaryStream& stream) {
+result<int32_t>
+    SignatureParser::parse_pkcs9_at_sequence_number(BinaryStream& stream) {
   LIEF_DEBUG("Parsing pkcs9-at-SequenceNumber ({} bytes)", stream.size());
   ASN1Reader asn1r(stream);
   auto value = asn1r.read_int();
   if (!value) {
-    LIEF_INFO("pkcs9-at-sequence-number: Can't parse integer");
+    LIEF_INFO("PKCS9 at sequence number: Failed to parse integer");
     return make_error_code(value.error());
   }
-  LIEF_DEBUG("pkcs9-at-sequence-number.int: {}", value.value());
-  LIEF_DEBUG("pkcs9-at-sequence-number remaining bytes: {}", stream.size() - stream.pos());
+  LIEF_DEBUG("PKCS9 at sequence number int: {}", value.value());
+  LIEF_DEBUG("PKCS9 at sequence number remaining bytes: {}",
+             stream.size() - stream.pos());
   return value.value();
 }

@@ -1292,37 +1418,39 @@ result<std::string> SignatureParser::parse_spc_string(BinaryStream& stream) {
   if (choice) {
     LIEF_DEBUG("SpcString: Unicode choice");
     const size_t length = choice.value();
-    LIEF_DEBUG("spc-string.program-name length: {} (pos: {})", length, stream.pos());
+    LIEF_DEBUG("SPC string program name length: {} (pos: {})", length,
+               stream.pos());

     if (!stream.can_read<char16_t>(length / sizeof(char16_t))) {
-      LIEF_INFO("Can't read spc-string.program-name");
+      LIEF_INFO("Failed to read spc-string.program-name");
       return make_error_code(lief_errors::read_error);
     }
     ToggleEndianness endian(stream);

     auto progname = endian->read_u16string(length / sizeof(char16_t));
     if (!progname) {
-      LIEF_INFO("Can't read spc-string.program-name");
+      LIEF_INFO("Failed to read spc-string.program-name");
       return make_error_code(lief_errors::read_error);
     }

     return u16tou8(*progname);
   }

+  // NOLINTNEXTLINE(bugprone-assignment-in-if-condition)
   if ((choice = asn1r.read_tag(MBEDTLS_ASN1_CONTEXT_SPECIFIC | 1))) {
     LIEF_DEBUG("SpcString: ASCII choice");
     const size_t length = choice.value();
     const char* str = stream.read_array<char>(length);
     if (str == nullptr) {
-      LIEF_INFO("Can't read spc-string.program-name");
+      LIEF_INFO("Failed to read spc-string.program-name");
       return make_error_code(lief_errors::read_error);
     }
     std::string u8progname{str, str + length};
-    LIEF_DEBUG("spc-string.program-name: {}", u8progname);
+    LIEF_DEBUG("SPC string program name: {}", u8progname);
     return u8progname;
   }

-  LIEF_INFO("Can't select choice for SpcString (pos: {})", stream.pos());
+  LIEF_INFO("Failed to select choice for SpcString (pos: {})", stream.pos());
   return make_error_code(lief_errors::read_error);
 }

@@ -1339,76 +1467,86 @@ result<std::string> SignatureParser::parse_spc_link(BinaryStream& stream) {
     const size_t length = choice.value();
     const char* str = stream.read_array<char>(length);
     if (str == nullptr) {
-      LIEF_INFO("Can't read spc-link.url");
+      LIEF_INFO("Failed to read spc-link.url");
       return make_error_code(lief_errors::read_error);
     }
     std::string url{str, str + length};
-    LIEF_DEBUG("spc-link.url: {}", url);
+    LIEF_DEBUG("SPC link URL: {}", url);
     return url;
   }

+  // NOLINTNEXTLINE(bugprone-assignment-in-if-condition)
   if ((choice = asn1r.read_tag(/* moniker */ MBEDTLS_ASN1_CONTEXT_SPECIFIC | 1))) {
     LIEF_INFO("Parsing spc-link.moniker is not supported");
     return make_error_code(lief_errors::not_supported);
   }

+  // NOLINTNEXTLINE(bugprone-assignment-in-if-condition)
   if ((choice = asn1r.read_tag(/* file */ MBEDTLS_ASN1_CONTEXT_SPECIFIC | 2))) {
     LIEF_INFO("Parsing spc-link.file is not supported");
     return make_error_code(lief_errors::not_supported);
   }

-  LIEF_INFO("Corrupted choice for spc-link (choice: 0x{:x})", stream_get_tag(stream));
+  LIEF_INFO("Corrupted choice for spc-link (choice: {:#x})",
+            stream_get_tag(stream));
   return make_error_code(lief_errors::corrupted);
 }


-result<SignatureParser::time_t> SignatureParser::parse_pkcs9_signing_time(BinaryStream& stream) {
+result<SignatureParser::time_t>
+    SignatureParser::parse_pkcs9_signing_time(BinaryStream& stream) {
   // See: https://tools.ietf.org/html/rfc2985#page-20
   // UTCTIME           :171116220536Z
   ASN1Reader asn1r(stream);
   auto tm = asn1r.x509_read_time();
   if (!tm) {
-    LIEF_INFO("Can't read pkcs9-signing-time (pos: {})", stream.pos());
+    LIEF_INFO("Failed to read pkcs9-signing-time (pos: {})", stream.pos());
     return make_error_code(tm.error());
   }
   std::unique_ptr<mbedtls_x509_time> time = std::move(tm.value());
-  LIEF_DEBUG("pkcs9-signing-time {}/{}/{}", time->day, time->mon, time->year);
+  LIEF_DEBUG("PKCS9 signing time {}/{}/{}", time->day, time->mon, time->year);
   return SignatureParser::time_t{time->year, time->mon, time->day,
                                  time->hour, time->min, time->sec};
 }

-result<std::unique_ptr<Attribute>> SignatureParser::parse_ms_platform_manifest_binary_id(BinaryStream& stream) {
+result<std::unique_ptr<Attribute>>
+    SignatureParser::parse_ms_platform_manifest_binary_id(BinaryStream& stream) {
   // SET of UTF8STRING
-  LIEF_DEBUG("Parsing szOID_PLATFORM_MANIFEST_BINARY_ID ({} bytes)", stream.size());
+  LIEF_DEBUG("Parsing szOID_PLATFORM_MANIFEST_BINARY_ID ({} bytes)",
+             stream.size());
   ASN1Reader asn1r(stream);
   auto res = asn1r.read_utf8_string();
   if (res) {
     LIEF_DEBUG("  ID: {} (pos={})", *res, stream.pos());
-    LIEF_DEBUG("ms-platform-manifest-binary-id remaining bytes: {}", stream.size() - stream.pos());
+    LIEF_DEBUG("MS platform manifest binary ID remaining bytes: {}",
+               stream.size() - stream.pos());
     return std::make_unique<MsManifestBinaryID>(std::move(*res));
   }
   return make_error_code(res.error());
 }

-result<std::unique_ptr<PKCS9TSTInfo>> SignatureParser::parse_pkcs9_tstinfo(BinaryStream& stream) {
+result<std::unique_ptr<PKCS9TSTInfo>>
+    SignatureParser::parse_pkcs9_tstinfo(BinaryStream& stream) {
   // TODO(romain): Expose an API for this structure
   auto tstinfo = std::make_unique<PKCS9TSTInfo>();

   ASN1Reader asn1r(stream);
   {
-    auto tag = asn1r.read_tag(/* [0] EXPLICIT ANY DEFINED BY contentType OPTIONAL */
-                              MBEDTLS_ASN1_CONTEXT_SPECIFIC | MBEDTLS_ASN1_CONSTRUCTED);
+    auto tag =
+        asn1r.read_tag(/* [0] EXPLICIT ANY DEFINED BY contentType OPTIONAL */
+                       MBEDTLS_ASN1_CONTEXT_SPECIFIC | MBEDTLS_ASN1_CONSTRUCTED
+        );

     if (!tag) {
-      LIEF_INFO("Wrong tag for pkcs9-tstinfo: {} (pos: {:d})",
-                asn1r.get_str_tag(), stream.pos());
+      LIEF_INFO("Wrong tag for pkcs9-tstinfo: {} (pos: {:d})", asn1r.get_str_tag(),
+                stream.pos());
       return make_error_code(tag.error());
     }
   }

   auto raw = asn1r.read_octet_string();
   if (!raw) {
-    LIEF_INFO("Can't read pkcs9-tstinfo encapsulated content");
+    LIEF_INFO("Failed to read pkcs9-tstinfo encapsulated content");
     return make_error_code(raw.error());
   }
   SpanStream substream(*raw);
@@ -1417,25 +1555,25 @@ result<std::unique_ptr<PKCS9TSTInfo>> SignatureParser::parse_pkcs9_tstinfo(Binar
   auto tag = reader.read_tag(MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE);

   if (!tag) {
-    LIEF_INFO("Wrong tag for pkcs9-tstinfo: {} (pos: {:d})",
-              reader.get_str_tag(), substream.pos());
+    LIEF_INFO("Wrong tag for pkcs9-tstinfo: {} (pos: {:d})", reader.get_str_tag(),
+              substream.pos());
     return make_error_code(tag.error());
   }
   /* version INTEGER  { v1(1) } */ {
     if (auto res = reader.read_int()) {
       uint32_t version = *res;
-      LIEF_DEBUG("pkcs9-tstinfo.version: {}", version);
+      LIEF_DEBUG("PKCS9 TST info version: {}", version);
     } else {
-      LIEF_INFO("Can't read pkcs9-tstinfo.version (pos: {})", substream.pos());
+      LIEF_INFO("Failed to read pkcs9-tstinfo.version (pos: {})", substream.pos());
       return make_error_code(res.error());
     }
   }

   /* policy TSAPolicyId */ {
     if (auto res = reader.read_oid()) {
-      LIEF_DEBUG("pkcs9-tstinfo.policy: {}", *res);
+      LIEF_DEBUG("PKCS9 TST info policy: {}", *res);
     } else {
-      LIEF_INFO("Can't read pkcs9-tstinfo.policy (pos: {})", substream.pos());
+      LIEF_INFO("Failed to read pkcs9-tstinfo.policy (pos: {})", substream.pos());
       return make_error_code(res.error());
     }
   }
@@ -1449,31 +1587,36 @@ result<std::unique_ptr<PKCS9TSTInfo>> SignatureParser::parse_pkcs9_tstinfo(Binar
     }

     if (auto res = reader.read_alg()) {
-      LIEF_DEBUG("pkcs9-tstinfo.message_imprint.hash_algorithm: {}", *res);
+      LIEF_DEBUG("PKCS9 TST info message imprint hash algorithm: {}", *res);
       // TODO
     } else {
-      LIEF_INFO("Can't read pkcs9-tstinfo.message_imprint.hash_algorithm (pos: {})",
-                 substream.pos());
+      LIEF_INFO(
+          "Failed to read pkcs9-tstinfo.message_imprint.hash_algorithm (pos: {})",
+          substream.pos()
+      );
       return make_error_code(res.error());
     }

     if (auto res = reader.read_octet_string()) {
-      LIEF_DEBUG("pkcs9-tstinfo.message_imprint.hash_message: {}", hex_dump(*res));
+      LIEF_DEBUG("PKCS9 TST info message imprint hash message: {}",
+                 hex_dump(*res));
       // TODO
     } else {
-      LIEF_INFO("Can't read pkcs9-tstinfo.message_imprint.hash_message (pos: {})",
-                 substream.pos());
+      LIEF_INFO(
+          "Failed to read pkcs9-tstinfo.message_imprint.hash_message (pos: {})",
+          substream.pos()
+      );
       return make_error_code(res.error());
     }
   }

   /* serial_number INTEGER */ {
     if (auto res = reader.read_large_int()) {
-      LIEF_DEBUG("pkcs9-tstinfo.serial_number: {}", hex_dump(*res));
+      LIEF_DEBUG("PKCS9 TST info serial number: {}", hex_dump(*res));
       // TODO
     } else {
-      LIEF_INFO("Can't read pkcs9-tstinfo.serial_number (pos: {} {} {})",
-                 substream.pos(), to_string(get_error(res)), substream.size());
+      LIEF_INFO("Failed to read pkcs9-tstinfo.serial_number (pos: {} {} {})",
+                substream.pos(), to_string(get_error(res)), substream.size());
       return make_error_code(res.error());
     }
   }
@@ -1481,13 +1624,13 @@ result<std::unique_ptr<PKCS9TSTInfo>> SignatureParser::parse_pkcs9_tstinfo(Binar
   /* genTime GeneralizedTime */ {
     if (auto tag = reader.read_tag(MBEDTLS_ASN1_GENERALIZED_TIME)) {
       substream.increment_pos(*tag);
-      //std::unique_ptr<mbedtls_x509_time> time = std::move(*res);
-      //LIEF_DEBUG("pkcs9-tstinfo.gen_time {}/{}/{}",
-      //           time->day, time->mon, time->year);
-      // TODO
+      // std::unique_ptr<mbedtls_x509_time> time = std::move(*res);
+      // LIEF_DEBUG("pkcs9-tstinfo.gen_time {}/{}/{}",
+      //            time->day, time->mon, time->year);
+      //  TODO
     } else {
-      LIEF_INFO("Can't read pkcs9-tstinfo.gen_time (pos: {})",
-                 substream.pos());
+      LIEF_INFO("Failed to read pkcs9-tstinfo.gen_time (pos: {})",
+                substream.pos());
       return make_error_code(tag.error());
     }
   }
@@ -1500,11 +1643,14 @@ result<std::unique_ptr<PKCS9TSTInfo>> SignatureParser::parse_pkcs9_tstinfo(Binar
   /* accuracy Accuracy (OPTIONAL) */ {
     auto res = reader.is_tag(MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE);
     if (res && *res) {
-      if (auto tag = reader.read_tag(MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE)) {
+      if (auto tag =
+              reader.read_tag(MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE))
+      {
         substream.increment_pos(*tag);
         // TODO(romain): Read accuracy
       } else {
-        LIEF_INFO("Can't read pkcs9-tstinfo.accuracy (pos: {})", substream.pos());
+        LIEF_INFO("Failed to read pkcs9-tstinfo.accuracy (pos: {})",
+                  substream.pos());
         return make_error_code(tag.error());
       }
     }
@@ -1514,10 +1660,11 @@ result<std::unique_ptr<PKCS9TSTInfo>> SignatureParser::parse_pkcs9_tstinfo(Binar
     auto res = reader.is_tag(MBEDTLS_ASN1_BOOLEAN);
     if (res && *res) {
       if (auto ordering = reader.read_bool()) {
-        LIEF_DEBUG("pkcs9-tstinfo.ordering: {}", *ordering);
+        LIEF_DEBUG("PKCS9 TST info ordering: {}", *ordering);
         // TODO(romain): add field
       } else {
-        LIEF_INFO("Can't read pkcs9-tstinfo.ordering (pos: {})", substream.pos());
+        LIEF_INFO("Failed to read pkcs9-tstinfo.ordering (pos: {})",
+                  substream.pos());
         return make_error_code(ordering.error());
       }
     }
@@ -1527,61 +1674,67 @@ result<std::unique_ptr<PKCS9TSTInfo>> SignatureParser::parse_pkcs9_tstinfo(Binar
     auto res = reader.is_tag(MBEDTLS_ASN1_INTEGER);
     if (res && *res) {
       if (auto nonce = reader.read_int64()) {
-        LIEF_DEBUG("pkcs9-tstinfo.nonce: {}", *nonce);
+        LIEF_DEBUG("PKCS9 TST info nonce: {}", *nonce);
         // TODO(romain): add field
       } else {
-        LIEF_INFO("Can't read pkcs9-tstinfo.nonce (pos: {})", substream.pos());
+        LIEF_INFO("Failed to read pkcs9-tstinfo.nonce (pos: {})", substream.pos());
         return make_error_code(nonce.error());
       }
     }
   }

   /* tsa [0] GeneralName (OPTIONAL) */ {
-    static constexpr auto CTX_SPEC_0 = MBEDTLS_ASN1_CONSTRUCTED |
-                                       MBEDTLS_ASN1_CONTEXT_SPECIFIC | 0;
+    static constexpr auto CTX_SPEC_0 =
+        MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_CONTEXT_SPECIFIC | 0;
     auto res = reader.is_tag(CTX_SPEC_0);
     if (/* optional check */ res && *res) {
       if (auto ctx = reader.read_tag(CTX_SPEC_0)) {
-        //LIEF_ERR("LEN: {} ({} / {})", *ctx, substream.pos(), substream.size());
-        //LIEF_ERR("pos: {} {:b}", substream.pos(), *substream.peek<uint8_t>());
-        //LIEF_ERR("foo: {:b}", MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_CONTEXT_SPECIFIC | 4);
-        if (auto choice = asn1r.read_tag(MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_CONTEXT_SPECIFIC | 4)) {
+        // LIEF_ERR("LEN: {} ({} / {})", *ctx, substream.pos(), substream.size());
+        // LIEF_ERR("pos: {} {:b}", substream.pos(), *substream.peek<uint8_t>());
+        // LIEF_ERR("foo: {:b}", MBEDTLS_ASN1_CONSTRUCTED |
+        // MBEDTLS_ASN1_CONTEXT_SPECIFIC | 4);
+        if (auto choice = asn1r.read_tag(MBEDTLS_ASN1_CONSTRUCTED |
+                                         MBEDTLS_ASN1_CONTEXT_SPECIFIC | 4))
+        {

         } else {
-          LIEF_INFO("error: {}", to_string(get_error(choice)));
+          LIEF_INFO("Error: {}", to_string(get_error(choice)));
         }
         substream.increment_pos(*ctx);
         // TODO
       } else {
-        LIEF_INFO("Can't read pkcs9-tstinfo.tsa (pos: {})", substream.pos());
+        LIEF_INFO("Failed to read pkcs9-tstinfo.tsa (pos: {})", substream.pos());
         return make_error_code(ctx.error());
       }
     }
   }

-  LIEF_DEBUG("pkcs9-tstinfo remaining bytes: {}", substream.size() - substream.pos());
+  LIEF_DEBUG("PKCS9 TST info remaining bytes: {}",
+             substream.size() - substream.pos());
   return tstinfo;
 }

-result<std::unique_ptr<Attribute>> SignatureParser::parse_spc_relaxed_pe_marker_check(BinaryStream& stream) {
+result<std::unique_ptr<Attribute>>
+    SignatureParser::parse_spc_relaxed_pe_marker_check(BinaryStream& stream) {
   auto attr = std::make_unique<SpcRelaxedPeMarkerCheck>();
   ASN1Reader asn1r(stream);
   if (auto res = asn1r.read_int()) {
     int value = *res;
     attr->value(value);
-    LIEF_DEBUG("spc-relaxed-pe-marker-check: {}", value);
+    LIEF_DEBUG("SPC relaxed PE marker check: {}", value);
   } else {
-    LIEF_INFO("Fail to read spc-relaxed-pe-marker-check");
+    LIEF_INFO("Failed to read spc-relaxed-pe-marker-check");
     return make_error_code(res.error());
   }

-  LIEF_DEBUG("spc-relaxed-pe-marker-check remaining bytes: {}", stream.size() - stream.pos());
+  LIEF_DEBUG("SPC relaxed PE marker check remaining bytes: {}",
+             stream.size() - stream.pos());
   return attr;
 }


 result<std::unique_ptr<Attribute>>
-SignatureParser::parse_signing_certificate_v2(BinaryStream& stream) {
+    SignatureParser::parse_signing_certificate_v2(BinaryStream& stream) {
   auto scertv2 = std::make_unique<SigningCertificateV2>();
   ASN1Reader asn1r(stream);
   uint64_t nextpos = stream.pos();
@@ -1608,7 +1761,8 @@ SignatureParser::parse_signing_certificate_v2(BinaryStream& stream) {
       } else {
         // Empty -> default value
         if (!asn1r.read_tag(MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE)) {
-          LIEF_INFO("Wrong tag: {} (pos: {:d})", asn1r.get_str_tag(), stream.pos());
+          LIEF_INFO("Wrong tag: {} (pos: {:d})", asn1r.get_str_tag(),
+                    stream.pos());
           return make_error_code(lief_errors::read_error);
         }
         // Default is algorithm id-sha256
@@ -1617,8 +1771,10 @@ SignatureParser::parse_signing_certificate_v2(BinaryStream& stream) {
       if (auto res = asn1r.read_octet_string()) {
         LIEF_DEBUG("SigningCertificateV2.certs.certHash: {}", hex_dump(*res));
       } else {
-        LIEF_INFO("Can't read SigningCertificateV2.certs.certHash. {} (pos: {:d})",
-                  asn1r.get_str_tag(), stream.pos());
+        LIEF_INFO(
+            "Failed to read SigningCertificateV2.certs.certHash: {} (pos: {:d})",
+            asn1r.get_str_tag(), stream.pos()
+        );
         return make_error_code(res.error());
       }

@@ -1626,12 +1782,17 @@ SignatureParser::parse_signing_certificate_v2(BinaryStream& stream) {
       tag = asn1r.read_tag(MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE);
       if (tag && *tag) {
         /* issuer       GeneralNames */
-        if (auto tag = asn1r.read_tag(MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE)) {
+        if (auto tag =
+                asn1r.read_tag(MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE))
+        {
           // TODO(romain): Parse "GeneralNames"
           stream.increment_pos(*tag);
         } else {
-          LIEF_INFO("Can't read SigningCertificateV2.certs.issuerSerial.issuer {} (pos: {:d})",
-                    asn1r.get_str_tag(), stream.pos());
+          LIEF_INFO(
+              "Failed to read SigningCertificateV2.certs.issuerSerial.issuer {} "
+              "(pos: {:d})",
+              asn1r.get_str_tag(), stream.pos()
+          );
           return make_error_code(tag.error());
         }
         /* serialNumber CertificateSerialNumber := INTEGER */
@@ -1639,8 +1800,11 @@ SignatureParser::parse_signing_certificate_v2(BinaryStream& stream) {
           LIEF_DEBUG("SigningCertificateV2.certs.issuerSerial.serial: {}",
                      hex_dump(*serial));
         } else {
-          LIEF_INFO("Can't read SigningCertificateV2.certs.issuerSerial.serial {} (pos: {:d})",
-                    asn1r.get_str_tag(), stream.pos());
+          LIEF_INFO(
+              "Failed to read SigningCertificateV2.certs.issuerSerial.serial {} "
+              "(pos: {:d})",
+              asn1r.get_str_tag(), stream.pos()
+          );
           return make_error_code(serial.error());
         }
       }
@@ -1651,13 +1815,14 @@ SignatureParser::parse_signing_certificate_v2(BinaryStream& stream) {
     /* policies SEQUENCE OF PolicyInformation OPTIONAL */
     // TODO(romain): to parse
   }
-  //auto res = reader.is_tag(MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE);
-  LIEF_DEBUG("signing-certificate-v2 remaining bytes: {}", stream.size() - stream.pos());
+  // auto res = reader.is_tag(MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE);
+  LIEF_DEBUG("Signing certificate v2 remaining bytes: {}",
+             stream.size() - stream.pos());
   return scertv2;
 }

 result<SignatureParser::SpcPeImageData>
-SignatureParser::parse_spc_pe_image_data(BinaryStream& stream) {
+    SignatureParser::parse_spc_pe_image_data(BinaryStream& stream) {
   LIEF_DEBUG("Parsing SpcPeImageData");
   ASN1Reader asn1r(stream);

@@ -1670,39 +1835,31 @@ SignatureParser::parse_spc_pe_image_data(BinaryStream& stream) {
   /* file SpcLink [0] Optional. /!\ According to the documentation, it is not
    * optional.
    */
-  if (auto file = asn1r.read_tag(MBEDTLS_ASN1_CONSTRUCTED      |
+  if (auto file = asn1r.read_tag(MBEDTLS_ASN1_CONSTRUCTED |
                                  MBEDTLS_ASN1_CONTEXT_SPECIFIC | 0))
   {
-    if (auto url = asn1r.read_tag(MBEDTLS_ASN1_CONTEXT_SPECIFIC | 0))
-    {
+    if (auto url = asn1r.read_tag(MBEDTLS_ASN1_CONTEXT_SPECIFIC | 0)) {
       LIEF_DEBUG("SpcPeImageData.url");
-      //LIEF_WARN(SUBMISSION_MSG);
-    }
-    else if (auto moniker = asn1r.read_tag(MBEDTLS_ASN1_CONTEXT_SPECIFIC | 1))
-    {
+      // LIEF_WARN(SUBMISSION_MSG);
+    } else if (auto moniker = asn1r.read_tag(MBEDTLS_ASN1_CONTEXT_SPECIFIC | 1)) {
       LIEF_DEBUG("SpcPeImageData.moniker");
-      //LIEF_WARN(SUBMISSION_MSG);
-    }
-    else if (auto file = asn1r.read_tag(MBEDTLS_ASN1_CONSTRUCTED      |
-                                        MBEDTLS_ASN1_CONTEXT_SPECIFIC | 2))
+      // LIEF_WARN(SUBMISSION_MSG);
+    } else if (auto file = asn1r.read_tag(MBEDTLS_ASN1_CONSTRUCTED |
+                                          MBEDTLS_ASN1_CONTEXT_SPECIFIC | 2))
     {
       LIEF_DEBUG("SpcPeImageData.file");
-      if (auto unicode = asn1r.read_tag(MBEDTLS_ASN1_CONTEXT_SPECIFIC | 0))
-      {
+      if (auto unicode = asn1r.read_tag(MBEDTLS_ASN1_CONTEXT_SPECIFIC | 0)) {
         size_t len = *unicode;
         LIEF_DEBUG("SpcPeImageData.file.unicode (len: {})", len);
         if (len > 0) {
-          //LIEF_WARN(SUBMISSION_MSG);
+          // LIEF_WARN(SUBMISSION_MSG);
         }
-      }
-      else if (auto ascii = asn1r.read_tag(MBEDTLS_ASN1_CONTEXT_SPECIFIC | 1))
-      {
+      } else if (auto ascii = asn1r.read_tag(MBEDTLS_ASN1_CONTEXT_SPECIFIC | 1)) {
         LIEF_DEBUG("SpcPeImageData.file.ascii");
-        //LIEF_WARN(SUBMISSION_MSG);
+        // LIEF_WARN(SUBMISSION_MSG);
       } else {
         LIEF_INFO("SpcPeImageData.file: unknown type");
       }
-
     }
   }

@@ -1732,4 +1889,3 @@ SignatureParser::parse_spc_pe_image_data(BinaryStream& stream) {


 }
-}
diff --git a/deps/LIEF/src/PE/signature/SignerInfo.cpp b/deps/LIEF/src/PE/signature/SignerInfo.cpp
index f8d78b0f3fc..7e9b4d1ee80 100644
--- a/deps/LIEF/src/PE/signature/SignerInfo.cpp
+++ b/deps/LIEF/src/PE/signature/SignerInfo.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -14,7 +14,6 @@
  * limitations under the License.
  */
 #include <memory>
-#include <sstream>

 #include <spdlog/fmt/fmt.h>

@@ -26,8 +25,8 @@

 #include "LIEF/PE/EnumToString.hpp"

-namespace LIEF {
-namespace PE {
+
+namespace LIEF::PE {

 SignerInfo::SignerInfo() = default;
 SignerInfo::~SignerInfo() = default;
@@ -43,13 +42,13 @@ SignerInfo::SignerInfo(const SignerInfo& other) :
   digest_algorithm_{other.digest_algorithm_},
   digest_enc_algorithm_{other.digest_enc_algorithm_},
   encrypted_digest_{other.encrypted_digest_},
-  raw_auth_data_{other.raw_auth_data_}
-{
+  raw_auth_data_{other.raw_auth_data_} {
   for (const std::unique_ptr<Attribute>& attr : other.authenticated_attributes_) {
     authenticated_attributes_.push_back(attr->clone());
   }

-  for (const std::unique_ptr<Attribute>& attr : other.unauthenticated_attributes_) {
+  for (const std::unique_ptr<Attribute>& attr : other.unauthenticated_attributes_)
+  {
     unauthenticated_attributes_.push_back(attr->clone());
   }

@@ -64,16 +63,16 @@ SignerInfo& SignerInfo::operator=(SignerInfo other) {
 }

 void SignerInfo::swap(SignerInfo& other) {
-  std::swap(version_,                    other.version_);
-  std::swap(issuer_,                     other.issuer_);
-  std::swap(serialno_,                   other.serialno_);
-  std::swap(digest_algorithm_,           other.digest_algorithm_);
-  std::swap(digest_enc_algorithm_,       other.digest_enc_algorithm_);
-  std::swap(encrypted_digest_,           other.encrypted_digest_);
-  std::swap(raw_auth_data_,              other.raw_auth_data_);
-  std::swap(authenticated_attributes_,   other.authenticated_attributes_);
+  std::swap(version_, other.version_);
+  std::swap(issuer_, other.issuer_);
+  std::swap(serialno_, other.serialno_);
+  std::swap(digest_algorithm_, other.digest_algorithm_);
+  std::swap(digest_enc_algorithm_, other.digest_enc_algorithm_);
+  std::swap(encrypted_digest_, other.encrypted_digest_);
+  std::swap(raw_auth_data_, other.raw_auth_data_);
+  std::swap(authenticated_attributes_, other.authenticated_attributes_);
   std::swap(unauthenticated_attributes_, other.unauthenticated_attributes_);
-  std::swap(cert_,                       other.cert_);
+  std::swap(cert_, other.cert_);
 }

 const Attribute* SignerInfo::get_attribute(Attribute::TYPE type) const {
@@ -90,24 +89,24 @@ const Attribute* SignerInfo::get_attribute(Attribute::TYPE type) const {
 }

 const Attribute* SignerInfo::get_auth_attribute(Attribute::TYPE type) const {
-  auto it_auth = std::find_if(
-      std::begin(authenticated_attributes_), std::end(authenticated_attributes_),
-      [type] (const std::unique_ptr<Attribute>& attr) {
-        return attr->type() == type;
-      });
-  if (it_auth != std::end(authenticated_attributes_)) {
+  auto it_auth = std::find_if(authenticated_attributes_.begin(),
+                              authenticated_attributes_.end(),
+                              [type](const std::unique_ptr<Attribute>& attr) {
+                                return attr->type() == type;
+                              });
+  if (it_auth != authenticated_attributes_.end()) {
     return it_auth->get();
   }
   return nullptr;
 }

 const Attribute* SignerInfo::get_unauth_attribute(Attribute::TYPE type) const {
-  auto it_uauth = std::find_if(
-      std::begin(unauthenticated_attributes_), std::end(unauthenticated_attributes_),
-      [type] (const std::unique_ptr<Attribute>& attr) {
-        return attr->type() == type;
-      });
-  if (it_uauth != std::end(unauthenticated_attributes_)) {
+  auto it_uauth = std::find_if(unauthenticated_attributes_.begin(),
+                               unauthenticated_attributes_.end(),
+                               [type](const std::unique_ptr<Attribute>& attr) {
+                                 return attr->type() == type;
+                               });
+  if (it_uauth != unauthenticated_attributes_.end()) {
     return it_uauth->get();
   }
   return nullptr;
@@ -121,13 +120,12 @@ void SignerInfo::accept(Visitor& visitor) const {

 std::ostream& operator<<(std::ostream& os, const SignerInfo& signer_info) {
   os << fmt::format("{}/{} - {} - {:d} auth attr - {:d} unauth attr",
-      to_string(signer_info.digest_algorithm()),
-      to_string(signer_info.encryption_algorithm()),
-      signer_info.issuer(),
-      signer_info.authenticated_attributes().size(),
-      signer_info.unauthenticated_attributes().size());
+                    to_string(signer_info.digest_algorithm()),
+                    to_string(signer_info.encryption_algorithm()),
+                    signer_info.issuer(),
+                    signer_info.authenticated_attributes().size(),
+                    signer_info.unauthenticated_attributes().size());
   return os;
 }

 }
-}
diff --git a/deps/LIEF/src/PE/signature/SpcIndirectData.cpp b/deps/LIEF/src/PE/signature/SpcIndirectData.cpp
index c249a6f5e75..7c59a822c7c 100644
--- a/deps/LIEF/src/PE/signature/SpcIndirectData.cpp
+++ b/deps/LIEF/src/PE/signature/SpcIndirectData.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -21,8 +21,8 @@

 #include <spdlog/fmt/fmt.h>

-namespace LIEF {
-namespace PE {
+
+namespace LIEF::PE {

 void SpcIndirectData::accept(Visitor& visitor) const {
   visitor.visit(*this);
@@ -30,12 +30,12 @@ void SpcIndirectData::accept(Visitor& visitor) const {

 void SpcIndirectData::print(std::ostream& os) const {
   if (!file().empty()) {
-    os << fmt::format("{} - {} - {}\n", to_string(digest_algorithm()),
-                      file(), hex_dump(digest()));
+    os << fmt::format("{} - {} - {}\n", to_string(digest_algorithm()), file(),
+                      hex_dump(digest()));
   } else {
-    os << fmt::format("{}: {}\n", to_string(digest_algorithm()), hex_dump(digest()));
+    os << fmt::format("{}: {}\n", to_string(digest_algorithm()),
+                      hex_dump(digest()));
   }
 }

 }
-}
diff --git a/deps/LIEF/src/PE/signature/attributes/ContentType.cpp b/deps/LIEF/src/PE/signature/attributes/ContentType.cpp
index fdb8dcf4f30..7c0265ee398 100644
--- a/deps/LIEF/src/PE/signature/attributes/ContentType.cpp
+++ b/deps/LIEF/src/PE/signature/attributes/ContentType.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2021 - 2025 R. Thomas
- * Copyright 2021 - 2025 Quarkslab
+/* Copyright 2021 - 2026 R. Thomas
+ * Copyright 2021 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -18,8 +18,8 @@

 #include "LIEF/Visitor.hpp"

-namespace LIEF {
-namespace PE {
+
+namespace LIEF::PE {

 void ContentType::accept(Visitor& visitor) const {
   visitor.visit(*this);
@@ -30,4 +30,3 @@ std::string ContentType::print() const {
 }

 }
-}
diff --git a/deps/LIEF/src/PE/signature/attributes/GenericType.cpp b/deps/LIEF/src/PE/signature/attributes/GenericType.cpp
index 5df987abcf2..d998efff81c 100644
--- a/deps/LIEF/src/PE/signature/attributes/GenericType.cpp
+++ b/deps/LIEF/src/PE/signature/attributes/GenericType.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2021 - 2025 R. Thomas
- * Copyright 2021 - 2025 Quarkslab
+/* Copyright 2021 - 2026 R. Thomas
+ * Copyright 2021 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -16,8 +16,8 @@
 #include "LIEF/Visitor.hpp"
 #include "LIEF/PE/signature/attributes/GenericType.hpp"

-namespace LIEF {
-namespace PE {
+
+namespace LIEF::PE {

 void GenericType::accept(Visitor& visitor) const {
   visitor.visit(*this);
@@ -28,4 +28,3 @@ std::string GenericType::print() const {
 }

 }
-}
diff --git a/deps/LIEF/src/PE/signature/attributes/MsCounterSign.cpp b/deps/LIEF/src/PE/signature/attributes/MsCounterSign.cpp
index fe84f1709be..cc108aea38a 100644
--- a/deps/LIEF/src/PE/signature/attributes/MsCounterSign.cpp
+++ b/deps/LIEF/src/PE/signature/attributes/MsCounterSign.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2021 - 2025 R. Thomas
- * Copyright 2021 - 2025 Quarkslab
+/* Copyright 2021 - 2026 R. Thomas
+ * Copyright 2021 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -17,8 +17,8 @@
 #include "LIEF/PE/signature/attributes/MsCounterSign.hpp"
 #include <sstream>

-namespace LIEF {
-namespace PE {
+
+namespace LIEF::PE {

 void MsCounterSign::accept(Visitor& visitor) const {
   visitor.visit(*this);
@@ -33,4 +33,3 @@ std::string MsCounterSign::print() const {
 }

 }
-}
diff --git a/deps/LIEF/src/PE/signature/attributes/MsManifestBinaryID.cpp b/deps/LIEF/src/PE/signature/attributes/MsManifestBinaryID.cpp
index 10c609a690e..3f7bb4e667b 100644
--- a/deps/LIEF/src/PE/signature/attributes/MsManifestBinaryID.cpp
+++ b/deps/LIEF/src/PE/signature/attributes/MsManifestBinaryID.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2021 - 2025 R. Thomas
- * Copyright 2021 - 2025 Quarkslab
+/* Copyright 2021 - 2026 R. Thomas
+ * Copyright 2021 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -15,12 +15,11 @@
  */
 #include "LIEF/Visitor.hpp"
 #include "LIEF/PE/signature/attributes/MsManifestBinaryID.hpp"
-namespace LIEF {
-namespace PE {
+
+namespace LIEF::PE {

 void MsManifestBinaryID::accept(Visitor& visitor) const {
   visitor.visit(*this);
 }

 }
-}
diff --git a/deps/LIEF/src/PE/signature/attributes/MsSpcNestedSignature.cpp b/deps/LIEF/src/PE/signature/attributes/MsSpcNestedSignature.cpp
index 1eb95b96568..155693e275c 100644
--- a/deps/LIEF/src/PE/signature/attributes/MsSpcNestedSignature.cpp
+++ b/deps/LIEF/src/PE/signature/attributes/MsSpcNestedSignature.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2021 - 2025 R. Thomas
- * Copyright 2021 - 2025 Quarkslab
+/* Copyright 2021 - 2026 R. Thomas
+ * Copyright 2021 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -18,8 +18,8 @@
 #include "LIEF/Visitor.hpp"
 #include "LIEF/PE/signature/attributes/MsSpcNestedSignature.hpp"

-namespace LIEF {
-namespace PE {
+
+namespace LIEF::PE {

 void MsSpcNestedSignature::accept(Visitor& visitor) const {
   visitor.visit(*this);
@@ -34,4 +34,3 @@ std::string MsSpcNestedSignature::print() const {


 }
-}
diff --git a/deps/LIEF/src/PE/signature/attributes/MsSpcStatementType.cpp b/deps/LIEF/src/PE/signature/attributes/MsSpcStatementType.cpp
index f1a070a26e9..1bc7cae9404 100644
--- a/deps/LIEF/src/PE/signature/attributes/MsSpcStatementType.cpp
+++ b/deps/LIEF/src/PE/signature/attributes/MsSpcStatementType.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2021 - 2025 R. Thomas
- * Copyright 2021 - 2025 Quarkslab
+/* Copyright 2021 - 2026 R. Thomas
+ * Copyright 2021 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -16,8 +16,8 @@
 #include "LIEF/Visitor.hpp"
 #include "LIEF/PE/signature/attributes/MsSpcStatementType.hpp"
 #include "LIEF/PE/signature/OIDToString.hpp"
-namespace LIEF {
-namespace PE {
+
+namespace LIEF::PE {

 void MsSpcStatementType::accept(Visitor& visitor) const {
   visitor.visit(*this);
@@ -27,4 +27,3 @@ std::string MsSpcStatementType::print() const {
   return oid() + " (" + oid_to_string(oid()) + ")";
 }
 }
-}
diff --git a/deps/LIEF/src/PE/signature/attributes/PKCS9AtSequenceNumber.cpp b/deps/LIEF/src/PE/signature/attributes/PKCS9AtSequenceNumber.cpp
index 20f6738c02c..e4844696b91 100644
--- a/deps/LIEF/src/PE/signature/attributes/PKCS9AtSequenceNumber.cpp
+++ b/deps/LIEF/src/PE/signature/attributes/PKCS9AtSequenceNumber.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2021 - 2025 R. Thomas
- * Copyright 2021 - 2025 Quarkslab
+/* Copyright 2021 - 2026 R. Thomas
+ * Copyright 2021 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -16,8 +16,8 @@
 #include "LIEF/Visitor.hpp"
 #include "LIEF/PE/signature/attributes/PKCS9AtSequenceNumber.hpp"

-namespace LIEF {
-namespace PE {
+
+namespace LIEF::PE {

 void PKCS9AtSequenceNumber::accept(Visitor& visitor) const {
   visitor.visit(*this);
@@ -28,4 +28,3 @@ std::string PKCS9AtSequenceNumber::print() const {
 }

 }
-}
diff --git a/deps/LIEF/src/PE/signature/attributes/PKCS9CounterSignature.cpp b/deps/LIEF/src/PE/signature/attributes/PKCS9CounterSignature.cpp
index 599706a7d3d..9d02c131568 100644
--- a/deps/LIEF/src/PE/signature/attributes/PKCS9CounterSignature.cpp
+++ b/deps/LIEF/src/PE/signature/attributes/PKCS9CounterSignature.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2021 - 2025 R. Thomas
- * Copyright 2021 - 2025 Quarkslab
+/* Copyright 2021 - 2026 R. Thomas
+ * Copyright 2021 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -17,8 +17,8 @@
 #include "LIEF/Visitor.hpp"

 #include <sstream>
-namespace LIEF {
-namespace PE {
+
+namespace LIEF::PE {

 void PKCS9CounterSignature::accept(Visitor& visitor) const {
   visitor.visit(*this);
@@ -32,4 +32,3 @@ std::string PKCS9CounterSignature::print() const {


 }
-}
diff --git a/deps/LIEF/src/PE/signature/attributes/PKCS9MessageDigest.cpp b/deps/LIEF/src/PE/signature/attributes/PKCS9MessageDigest.cpp
index c6e73fc3965..f45a911a4f8 100644
--- a/deps/LIEF/src/PE/signature/attributes/PKCS9MessageDigest.cpp
+++ b/deps/LIEF/src/PE/signature/attributes/PKCS9MessageDigest.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2021 - 2025 R. Thomas
- * Copyright 2021 - 2025 Quarkslab
+/* Copyright 2021 - 2026 R. Thomas
+ * Copyright 2021 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -17,8 +17,8 @@
 #include "LIEF/PE/signature/attributes/PKCS9MessageDigest.hpp"
 #include "internal_utils.hpp"

-namespace LIEF {
-namespace PE {
+
+namespace LIEF::PE {

 void PKCS9MessageDigest::accept(Visitor& visitor) const {
   visitor.visit(*this);
@@ -28,4 +28,3 @@ std::string PKCS9MessageDigest::print() const {
   return hex_dump(digest());
 }
 }
-}
diff --git a/deps/LIEF/src/PE/signature/attributes/PKCS9SigningTime.cpp b/deps/LIEF/src/PE/signature/attributes/PKCS9SigningTime.cpp
index 2e7158907b5..145fc9200a9 100644
--- a/deps/LIEF/src/PE/signature/attributes/PKCS9SigningTime.cpp
+++ b/deps/LIEF/src/PE/signature/attributes/PKCS9SigningTime.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2021 - 2025 R. Thomas
- * Copyright 2021 - 2025 Quarkslab
+/* Copyright 2021 - 2026 R. Thomas
+ * Copyright 2021 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -16,8 +16,8 @@
 #include <spdlog/fmt/fmt.h>
 #include "LIEF/Visitor.hpp"
 #include "LIEF/PE/signature/attributes/PKCS9SigningTime.hpp"
-namespace LIEF {
-namespace PE {
+
+namespace LIEF::PE {

 void PKCS9SigningTime::accept(Visitor& visitor) const {
   visitor.visit(*this);
@@ -25,9 +25,8 @@ void PKCS9SigningTime::accept(Visitor& visitor) const {

 std::string PKCS9SigningTime::print() const {
   const time_t& time = this->time();
-  return fmt::format("{}/{}/{} - {}:{}:{}",
-                       time[0], time[1], time[2], time[3], time[4], time[5]);
+  return fmt::format("{}/{}/{} - {}:{}:{}", time[0], time[1], time[2], time[3],
+                     time[4], time[5]);
 }

 }
-}
diff --git a/deps/LIEF/src/PE/signature/attributes/SigningCertificateV2.cpp b/deps/LIEF/src/PE/signature/attributes/SigningCertificateV2.cpp
index 02a8fbb1b1c..77aceadb8e8 100644
--- a/deps/LIEF/src/PE/signature/attributes/SigningCertificateV2.cpp
+++ b/deps/LIEF/src/PE/signature/attributes/SigningCertificateV2.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2021 - 2025 R. Thomas
- * Copyright 2021 - 2025 Quarkslab
+/* Copyright 2021 - 2026 R. Thomas
+ * Copyright 2021 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -16,8 +16,8 @@
 #include "LIEF/Visitor.hpp"
 #include "LIEF/PE/signature/attributes/SigningCertificateV2.hpp"

-namespace LIEF {
-namespace PE {
+
+namespace LIEF::PE {

 void SigningCertificateV2::accept(Visitor& visitor) const {
   visitor.visit(*this);
@@ -28,5 +28,3 @@ std::string SigningCertificateV2::print() const {
 }

 }
-}
-
diff --git a/deps/LIEF/src/PE/signature/attributes/SpcRelaxedPeMarkerCheck.cpp b/deps/LIEF/src/PE/signature/attributes/SpcRelaxedPeMarkerCheck.cpp
index f2fb1cd33e6..31a4dba5a26 100644
--- a/deps/LIEF/src/PE/signature/attributes/SpcRelaxedPeMarkerCheck.cpp
+++ b/deps/LIEF/src/PE/signature/attributes/SpcRelaxedPeMarkerCheck.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2021 - 2025 R. Thomas
- * Copyright 2021 - 2025 Quarkslab
+/* Copyright 2021 - 2026 R. Thomas
+ * Copyright 2021 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -15,13 +15,11 @@
  */
 #include "LIEF/Visitor.hpp"
 #include "LIEF/PE/signature/attributes/SpcRelaxedPeMarkerCheck.hpp"
-namespace LIEF {
-namespace PE {
+
+namespace LIEF::PE {

 void SpcRelaxedPeMarkerCheck::accept(Visitor& visitor) const {
   visitor.visit(*this);
 }

 }
-}
-
diff --git a/deps/LIEF/src/PE/signature/attributes/SpcSpOpusInfo.cpp b/deps/LIEF/src/PE/signature/attributes/SpcSpOpusInfo.cpp
index 3ec3f298f4d..2e74a88ef15 100644
--- a/deps/LIEF/src/PE/signature/attributes/SpcSpOpusInfo.cpp
+++ b/deps/LIEF/src/PE/signature/attributes/SpcSpOpusInfo.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2021 - 2025 R. Thomas
- * Copyright 2021 - 2025 Quarkslab
+/* Copyright 2021 - 2026 R. Thomas
+ * Copyright 2021 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -15,8 +15,8 @@
  */
 #include "LIEF/Visitor.hpp"
 #include "LIEF/PE/signature/attributes/SpcSpOpusInfo.hpp"
-namespace LIEF {
-namespace PE {
+
+namespace LIEF::PE {

 void SpcSpOpusInfo::accept(Visitor& visitor) const {
   visitor.visit(*this);
@@ -38,4 +38,3 @@ std::string SpcSpOpusInfo::print() const {


 }
-}
diff --git a/deps/LIEF/src/PE/signature/pkcs7.h b/deps/LIEF/src/PE/signature/pkcs7.h
index 619b00f35dc..371a4fb5e24 100644
--- a/deps/LIEF/src/PE/signature/pkcs7.h
+++ b/deps/LIEF/src/PE/signature/pkcs7.h
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -18,28 +18,38 @@

 #include "mbedtls/oid.h"

-#define MBEDTLS_OID_PKCS7 MBEDTLS_OID_PKCS "\x07" /**< pkcs-7 OBJECT IDENTIFIER ::= { iso(1) member-body(2) US(840) rsadsi(113549) pkcs(1) 7 } */
+#define MBEDTLS_OID_PKCS7                                                         \
+  MBEDTLS_OID_PKCS "\x07" /**< pkcs-7 OBJECT IDENTIFIER ::= { iso(1)              \
+                             member-body(2) US(840) rsadsi(113549) pkcs(1) 7 } */

 /*
  * PKCS#7 OIDs
  */
-#define MBEDTLS_OID_PKCS7_DATA                      MBEDTLS_OID_PKCS7 "\x01" /**< data OBJECT IDENTIFIER ::= { pkcs-7 1 } */
-#define MBEDTLS_OID_PKCS7_SIGNED_DATA               MBEDTLS_OID_PKCS7 "\x02" /**< signedData OBJECT IDENTIFIER ::= { pkcs-7 2 } */
-#define MBEDTLS_OID_PKCS7_ENVELOPED_DATA            MBEDTLS_OID_PKCS7 "\x03" /**< data OBJECT IDENTIFIER ::= { pkcs-7 1 } */
-#define MBEDTLS_OID_PKCS7_SIGNED_AND_ENVELOPED_DATA MBEDTLS_OID_PKCS7 "\x04" /**< data OBJECT IDENTIFIER ::= { pkcs-7 1 } */
-#define MBEDTLS_OID_PKCS7_DIGESTED_DATA             MBEDTLS_OID_PKCS7 "\x05" /**< data OBJECT IDENTIFIER ::= { pkcs-7 1 } */
-#define MBEDTLS_OID_PKCS7_ENCRYPTED_DATA            MBEDTLS_OID_PKCS7 "\x06" /**< data OBJECT IDENTIFIER ::= { pkcs-7 1 } */
+#define MBEDTLS_OID_PKCS7_DATA                                                    \
+  MBEDTLS_OID_PKCS7 "\x01" /**< data OBJECT IDENTIFIER ::= { pkcs-7 1 } */
+#define MBEDTLS_OID_PKCS7_SIGNED_DATA                                             \
+  MBEDTLS_OID_PKCS7 "\x02" /**< signedData OBJECT IDENTIFIER ::= { pkcs-7 2 } */
+#define MBEDTLS_OID_PKCS7_ENVELOPED_DATA                                          \
+  MBEDTLS_OID_PKCS7 "\x03" /**< data OBJECT IDENTIFIER ::= { pkcs-7 1 } */
+#define MBEDTLS_OID_PKCS7_SIGNED_AND_ENVELOPED_DATA                               \
+  MBEDTLS_OID_PKCS7 "\x04" /**< data OBJECT IDENTIFIER ::= { pkcs-7 1 } */
+#define MBEDTLS_OID_PKCS7_DIGESTED_DATA                                           \
+  MBEDTLS_OID_PKCS7 "\x05" /**< data OBJECT IDENTIFIER ::= { pkcs-7 1 } */
+#define MBEDTLS_OID_PKCS7_ENCRYPTED_DATA                                          \
+  MBEDTLS_OID_PKCS7 "\x06" /**< data OBJECT IDENTIFIER ::= { pkcs-7 1 } */


 /*
  * PE Authenticode OID
  */
-#define MBEDTLS_SPC_INDIRECT_DATA_OBJID     "\x2B\x06\x01\x04\x01\x82\x37\x02\x01\x04"
-#define MBEDTLS_SPC_SP_OPUS_INFO_OBJID      "\x2B\x06\x01\x04\x01\x82\x37\x02\x01\x0C"
-#define MBEDTLS_SPC_PE_IMAGE_DATAOBJ_OBJID  "\x2B\x06\x01\x04\x01\x82\x37\x02\x01\x0F"
+#define MBEDTLS_SPC_INDIRECT_DATA_OBJID "\x2B\x06\x01\x04\x01\x82\x37\x02\x01\x04"
+#define MBEDTLS_SPC_SP_OPUS_INFO_OBJID  "\x2B\x06\x01\x04\x01\x82\x37\x02\x01\x0C"
+#define MBEDTLS_SPC_PE_IMAGE_DATAOBJ_OBJID                                        \
+  "\x2B\x06\x01\x04\x01\x82\x37\x02\x01\x0F"

 /* MS Specific OID */
-#define MS_SZOID_PLATFORM_MANIFEST_BINARY_ID "\x06\x0A\x2B\x06\x01\x04\x01\x82\x37\x0A\x03\x1C"
-#define MS_COUNTER_SIGNATURE                 "\x06\x0A\x2B\x06\x01\x04\x01\x82\x37\x03\x03\x01"
+#define MS_SZOID_PLATFORM_MANIFEST_BINARY_ID                                      \
+  "\x06\x0A\x2B\x06\x01\x04\x01\x82\x37\x0A\x03\x1C"
+#define MS_COUNTER_SIGNATURE "\x06\x0A\x2B\x06\x01\x04\x01\x82\x37\x03\x03\x01"

 #endif
diff --git a/deps/LIEF/src/PE/signature/x509.cpp b/deps/LIEF/src/PE/signature/x509.cpp
index 6c49eaf3194..2eb8334f71c 100644
--- a/deps/LIEF/src/PE/signature/x509.cpp
+++ b/deps/LIEF/src/PE/signature/x509.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -16,12 +16,13 @@
 #include <cstring>
 #include <map>
 #include <fstream>
+#include <memory>

 #include <mbedtls/platform.h>
-#include "mbedtls/x509_crt.h"
-#include "mbedtls/asn1.h"
-#include "mbedtls/oid.h"
-#include "mbedtls/error.h"
+#include <mbedtls/x509_crt.h>
+#include <mbedtls/asn1.h>
+#include <mbedtls/asn1write.h>
+#include <mbedtls/error.h>

 #include "logging.hpp"
 #include "frozen.hpp"
@@ -37,37 +38,40 @@
 #include "LIEF/PE/EnumToString.hpp"
 #include "LIEF/PE/signature/OIDToString.hpp"

-namespace {
-  // Copy this function from mbedtls since it is not exported
-  inline int x509_get_current_time( mbedtls_x509_time *now )
-  {
-      struct tm *lt, tm_buf;
-      mbedtls_time_t tt;
-      int ret = 0;
-
-      tt = mbedtls_time(nullptr);
-      lt = mbedtls_platform_gmtime_r( &tt, &tm_buf );
-
-      if (lt == nullptr) {
-          ret = -1;
-      } else {
-          now->year = lt->tm_year + 1900;
-          now->mon  = lt->tm_mon  + 1;
-          now->day  = lt->tm_mday;
-          now->hour = lt->tm_hour;
-          now->min  = lt->tm_min;
-          now->sec  = lt->tm_sec;
-      }
-
-      return( ret );
-  }
+#include "mbedtls_wraps.h"

-/* mbedtls escapes non printable character with '?' which can be an issue as described
- * in https://github.com/lief-project/LIEF/issues/703.
- * As there is no way to programmatically tweak this behavior, here is a copy
- * of the original function (from <src>/library/x509.c) which skips the non printable character.
- * It seems that Windows follows this behavior as descbied in the Github's issue
+namespace {
+// Copied from mbedtls since this function is not exported
+inline int x509_get_current_time(mbedtls_x509_time* now) {
+  struct tm *lt = nullptr, tm_buf{};
+  mbedtls_time_t tt{};
+  int ret = 0;
+
+  tt = mbedtls_time(nullptr);
+  lt = mbedtls_platform_gmtime_r(&tt, &tm_buf);
+
+  if (lt == nullptr) {
+    ret = -1;
+  } else {
+    now->year = lt->tm_year + 1900;
+    now->mon = lt->tm_mon + 1;
+    now->day = lt->tm_mday;
+    now->hour = lt->tm_hour;
+    now->min = lt->tm_min;
+    now->sec = lt->tm_sec;
+  }
+
+  return (ret);
+}
+
+/* mbedtls escapes non-printable characters with '?' which can be an issue as
+ * described in https://github.com/lief-project/LIEF/issues/703. As there is no way
+ * to programmatically tweak this behavior, here is a copy of the original function
+ * (from <src>/library/x509.c) which skips non-printable characters. It seems
+ * that Windows follows this behavior as described in the GitHub issue
  */
+// NOLINTBEGIN
+// clang-format off
 int lief_mbedtls_x509_dn_gets( char *buf, size_t size, const mbedtls_x509_name *dn )
 {
     int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
@@ -98,7 +102,7 @@ int lief_mbedtls_x509_dn_gets( char *buf, size_t size, const mbedtls_x509_name *
             MBEDTLS_X509_SAFE_SNPRINTF;
         }

-        ret = mbedtls_oid_get_attr_short_name( &name->oid, &short_name );
+        ret = mbedtls_x509_oid_get_attr_short_name( &name->oid, &short_name );

         if( ret == 0 ) {
             ret = mbedtls_snprintf( p, n, "%s=", short_name );
@@ -106,7 +110,7 @@ int lief_mbedtls_x509_dn_gets( char *buf, size_t size, const mbedtls_x509_name *
             // Get OID numeric string and return x509 friendly name or OID numeric string
             std::string oid_str(64, 0);
             int size = mbedtls_oid_get_numeric_string(oid_str.data(), oid_str.size(), &name->oid);
-            if (size >= 0 && size != MBEDTLS_ERR_OID_BUF_TOO_SMALL) {
+            if (size >= 0 && size != PSA_ERROR_BUFFER_TOO_SMALL) {
               oid_str.resize(size);
               const char* friendly_name = LIEF::PE::oid_to_string(oid_str);
               ret = mbedtls_snprintf(p, n, "%s=", friendly_name);
@@ -149,34 +153,43 @@ int lief_mbedtls_x509_dn_gets( char *buf, size_t size, const mbedtls_x509_name *
     return( (int) ( size - n ) );
 }

+// clang-format on
+// NOLINTEND
 }


-namespace LIEF {
-namespace PE {
+namespace LIEF::PE {

 inline x509::VERIFICATION_FLAGS from_mbedtls_err(uint32_t err) {
-  CONST_MAP(uint32_t, x509::VERIFICATION_FLAGS, 20) MBEDTLS_ERR_TO_LIEF = {
-    { MBEDTLS_X509_BADCERT_EXPIRED,       x509::VERIFICATION_FLAGS::BADCERT_EXPIRED},
-    { MBEDTLS_X509_BADCERT_REVOKED,       x509::VERIFICATION_FLAGS::BADCERT_REVOKED},
-    { MBEDTLS_X509_BADCERT_CN_MISMATCH,   x509::VERIFICATION_FLAGS::BADCERT_CN_MISMATCH},
-    { MBEDTLS_X509_BADCERT_NOT_TRUSTED,   x509::VERIFICATION_FLAGS::BADCERT_NOT_TRUSTED},
-    { MBEDTLS_X509_BADCRL_NOT_TRUSTED,    x509::VERIFICATION_FLAGS::BADCRL_NOT_TRUSTED},
-    { MBEDTLS_X509_BADCRL_EXPIRED,        x509::VERIFICATION_FLAGS::BADCRL_EXPIRED},
-    { MBEDTLS_X509_BADCERT_MISSING,       x509::VERIFICATION_FLAGS::BADCERT_MISSING},
-    { MBEDTLS_X509_BADCERT_SKIP_VERIFY,   x509::VERIFICATION_FLAGS::BADCERT_SKIP_VERIFY},
-    { MBEDTLS_X509_BADCERT_OTHER,         x509::VERIFICATION_FLAGS::BADCERT_OTHER},
-    { MBEDTLS_X509_BADCERT_FUTURE,        x509::VERIFICATION_FLAGS::BADCERT_FUTURE},
-    { MBEDTLS_X509_BADCRL_FUTURE,         x509::VERIFICATION_FLAGS::BADCRL_FUTURE},
-    { MBEDTLS_X509_BADCERT_KEY_USAGE,     x509::VERIFICATION_FLAGS::BADCERT_KEY_USAGE},
-    { MBEDTLS_X509_BADCERT_EXT_KEY_USAGE, x509::VERIFICATION_FLAGS::BADCERT_EXT_KEY_USAGE},
-    { MBEDTLS_X509_BADCERT_NS_CERT_TYPE,  x509::VERIFICATION_FLAGS::BADCERT_NS_CERT_TYPE},
-    { MBEDTLS_X509_BADCERT_BAD_MD,        x509::VERIFICATION_FLAGS::BADCERT_BAD_MD},
-    { MBEDTLS_X509_BADCERT_BAD_PK,        x509::VERIFICATION_FLAGS::BADCERT_BAD_PK},
-    { MBEDTLS_X509_BADCERT_BAD_KEY,       x509::VERIFICATION_FLAGS::BADCERT_BAD_KEY},
-    { MBEDTLS_X509_BADCRL_BAD_MD,         x509::VERIFICATION_FLAGS::BADCRL_BAD_MD},
-    { MBEDTLS_X509_BADCRL_BAD_PK,         x509::VERIFICATION_FLAGS::BADCRL_BAD_PK},
-    { MBEDTLS_X509_BADCRL_BAD_KEY,        x509::VERIFICATION_FLAGS::BADCRL_BAD_KEY},
+  CONST_MAP(uint32_t, x509::VERIFICATION_FLAGS, 20)
+  MBEDTLS_ERR_TO_LIEF = {
+      {MBEDTLS_X509_BADCERT_EXPIRED, x509::VERIFICATION_FLAGS::BADCERT_EXPIRED},
+      {MBEDTLS_X509_BADCERT_REVOKED, x509::VERIFICATION_FLAGS::BADCERT_REVOKED},
+      {MBEDTLS_X509_BADCERT_CN_MISMATCH,
+       x509::VERIFICATION_FLAGS::BADCERT_CN_MISMATCH},
+      {MBEDTLS_X509_BADCERT_NOT_TRUSTED,
+       x509::VERIFICATION_FLAGS::BADCERT_NOT_TRUSTED},
+      {MBEDTLS_X509_BADCRL_NOT_TRUSTED,
+       x509::VERIFICATION_FLAGS::BADCRL_NOT_TRUSTED},
+      {MBEDTLS_X509_BADCRL_EXPIRED, x509::VERIFICATION_FLAGS::BADCRL_EXPIRED},
+      {MBEDTLS_X509_BADCERT_MISSING, x509::VERIFICATION_FLAGS::BADCERT_MISSING},
+      {MBEDTLS_X509_BADCERT_SKIP_VERIFY,
+       x509::VERIFICATION_FLAGS::BADCERT_SKIP_VERIFY},
+      {MBEDTLS_X509_BADCERT_OTHER, x509::VERIFICATION_FLAGS::BADCERT_OTHER},
+      {MBEDTLS_X509_BADCERT_FUTURE, x509::VERIFICATION_FLAGS::BADCERT_FUTURE},
+      {MBEDTLS_X509_BADCRL_FUTURE, x509::VERIFICATION_FLAGS::BADCRL_FUTURE},
+      {MBEDTLS_X509_BADCERT_KEY_USAGE,
+       x509::VERIFICATION_FLAGS::BADCERT_KEY_USAGE},
+      {MBEDTLS_X509_BADCERT_EXT_KEY_USAGE,
+       x509::VERIFICATION_FLAGS::BADCERT_EXT_KEY_USAGE},
+      {MBEDTLS_X509_BADCERT_NS_CERT_TYPE,
+       x509::VERIFICATION_FLAGS::BADCERT_NS_CERT_TYPE},
+      {MBEDTLS_X509_BADCERT_BAD_MD, x509::VERIFICATION_FLAGS::BADCERT_BAD_MD},
+      {MBEDTLS_X509_BADCERT_BAD_PK, x509::VERIFICATION_FLAGS::BADCERT_BAD_PK},
+      {MBEDTLS_X509_BADCERT_BAD_KEY, x509::VERIFICATION_FLAGS::BADCERT_BAD_KEY},
+      {MBEDTLS_X509_BADCRL_BAD_MD, x509::VERIFICATION_FLAGS::BADCRL_BAD_MD},
+      {MBEDTLS_X509_BADCRL_BAD_PK, x509::VERIFICATION_FLAGS::BADCRL_BAD_PK},
+      {MBEDTLS_X509_BADCRL_BAD_KEY, x509::VERIFICATION_FLAGS::BADCRL_BAD_KEY},
   };
   x509::VERIFICATION_FLAGS flags = x509::VERIFICATION_FLAGS::OK;
   for (const auto& p : MBEDTLS_ERR_TO_LIEF) {
@@ -188,21 +201,14 @@ inline x509::VERIFICATION_FLAGS from_mbedtls_err(uint32_t err) {
 }

 inline x509::date_t from_mbedtls(const mbedtls_x509_time& time) {
-  return {
-    time.year,
-    time.mon,
-    time.day,
-    time.hour,
-    time.min,
-    time.sec
-  };
+  return {time.year, time.mon, time.day, time.hour, time.min, time.sec};
 }

 x509::certificates_t x509::parse(const std::string& path) {

   std::ifstream cert_fs(path);
   if (!cert_fs) {
-    LIEF_WARN("Can't open {}", path);
+    LIEF_WARN("Failed to open {}", path);
     return {};
   }
   cert_fs.unsetf(std::ios::skipws);
@@ -216,7 +222,7 @@ x509::certificates_t x509::parse(const std::string& path) {
 }

 x509::certificates_t x509::parse(const std::vector<uint8_t>& content) {
-  std::unique_ptr<mbedtls_x509_crt> ca{new mbedtls_x509_crt{}};
+  auto ca = std::make_unique<mbedtls_x509_crt>(mbedtls_x509_crt{});
   mbedtls_x509_crt_init(ca.get());
   int ret = mbedtls_x509_crt_parse(ca.get(), content.data(), content.size());
   if (ret != 0) {
@@ -228,7 +234,7 @@ x509::certificates_t x509::parse(const std::vector<uint8_t>& content) {
     }
     // If ret > 0, it contains the number of certificates that the parser did not
     // manage to parse
-    LIEF_WARN("{} certificates are not parsed", ret);
+    LIEF_WARN("{} certificates were not parsed", ret);
   }
   std::vector<x509> crts;

@@ -246,77 +252,47 @@ x509::certificates_t x509::parse(const std::vector<uint8_t>& content) {


 bool x509::check_time(const date_t& before, const date_t& after) {
-  // Implementation taken
-  // from https://github.com/ARMmbed/mbedtls/blob/1c54b5410fd48d6bcada97e30cac417c5c7eea67/library/x509.c#L926-L962
+  // Implementation taken from
+  // https://github.com/ARMmbed/mbedtls/blob/1c54b5410fd48d6bcada97e30cac417c5c7eea67/library/x509.c#L926-L962
   if (before[0] > after[0]) {
     LIEF_DEBUG("{} > {}", before[0], after[0]);
     return false;
   }

-  if (
-      before[0] == after[0] &&
-      before[1]  > after[1]
-     )
-  {
+  if (before[0] == after[0] && before[1] > after[1]) {
     LIEF_DEBUG("{} > {}", before[1], after[1]);
     return false;
   }

-  if (
-      before[0] == after[0] &&
-      before[1] == after[1] &&
-      before[2]  > after[2]
-     )
-  {
+  if (before[0] == after[0] && before[1] == after[1] && before[2] > after[2]) {
     LIEF_DEBUG("{} > {}", before[2], after[2]);
     return false;
   }

-  if (
-      before[0] == after[0] &&
-      before[1] == after[1] &&
-      before[2] == after[2] &&
-      before[3]  > after[3]
-     )
+  if (before[0] == after[0] && before[1] == after[1] && before[2] == after[2] &&
+      before[3] > after[3])
   {
     LIEF_DEBUG("{} > {}", before[3], after[3]);
     return false;
   }

-  if (
-      before[0] == after[0] &&
-      before[1] == after[1] &&
-      before[2] == after[2] &&
-      before[3] == after[3] &&
-      before[4]  > after[4]
-     )
+  if (before[0] == after[0] && before[1] == after[1] && before[2] == after[2] &&
+      before[3] == after[3] && before[4] > after[4])
   {
     LIEF_DEBUG("{} > {}", before[4], after[4]);
     return false;
   }

-  if (
-      before[0] == after[0] &&
-      before[1] == after[1] &&
-      before[2] == after[2] &&
-      before[3] == after[3] &&
-      before[4] == after[4] &&
-      before[5]  > after[5]
-     )
+  if (before[0] == after[0] && before[1] == after[1] && before[2] == after[2] &&
+      before[3] == after[3] && before[4] == after[4] && before[5] > after[5])
   {
     LIEF_DEBUG("{} > {}", before[5], after[5]);
     return false;
   }

-  if (
-      before[0] == after[0] &&
-      before[1] == after[1] &&
-      before[2] == after[2] &&
-      before[3] == after[3] &&
-      before[4] == after[4] &&
-      before[5] == after[5] &&
-      before[6]  > after[6]
-     )
+  if (before[0] == after[0] && before[1] == after[1] && before[2] == after[2] &&
+      before[3] == after[3] && before[4] == after[4] && before[5] == after[5] &&
+      before[6] > after[6])
   {
     LIEF_DEBUG("{} > {}", before[6], after[6]);
     return false;
@@ -347,12 +323,10 @@ bool x509::time_is_future(const date_t& from) {
 x509::x509() = default;

 x509::x509(mbedtls_x509_crt* ca) :
-  x509_cert_{ca}
-{}
+  x509_cert_{ca} {}

 x509::x509(const x509& other) :
-  Object::Object{other}
-{
+  Object::Object{other} {
   auto* crt = new mbedtls_x509_crt{};
   mbedtls_x509_crt_init(crt);
   int ret = mbedtls_x509_crt_parse_der(crt, other.x509_cert_->raw.p,
@@ -381,15 +355,14 @@ uint32_t x509::version() const {
 }

 std::vector<uint8_t> x509::serial_number() const {
-  return {x509_cert_->serial.p,
-          x509_cert_->serial.p + x509_cert_->serial.len};
+  return {x509_cert_->serial.p, x509_cert_->serial.p + x509_cert_->serial.len};
 }

 oid_t x509::signature_algorithm() const {
-  std::array<char, 256> oid_str;
-  mbedtls_oid_get_numeric_string(oid_str.data(), oid_str.size(), &x509_cert_->sig_oid);
+  std::array<char, 256> oid_str{};
+  mbedtls_oid_get_numeric_string(oid_str.data(), oid_str.size(),
+                                 &x509_cert_->sig_oid);
   return oid_t{oid_str.data()};
-
 }

 x509::date_t x509::valid_from() const {
@@ -402,39 +375,38 @@ x509::date_t x509::valid_to() const {


 std::string x509::issuer() const {
-  std::array<char, 1024> buffer;
+  std::array<char, 1024> buffer{};
   lief_mbedtls_x509_dn_gets(buffer.data(), buffer.size(), &x509_cert_->issuer);
   return buffer.data();
 }

 std::string x509::subject() const {
-  std::array<char, 1024> buffer;
+  std::array<char, 1024> buffer{};
   lief_mbedtls_x509_dn_gets(buffer.data(), buffer.size(), &x509_cert_->subject);
   return buffer.data();
 }

 std::vector<uint8_t> x509::raw() const {
-  return {x509_cert_->raw.p,
-          x509_cert_->raw.p + x509_cert_->raw.len};
+  return {x509_cert_->raw.p, x509_cert_->raw.p + x509_cert_->raw.len};
 }


 x509::KEY_TYPES x509::key_type() const {
-  CONST_MAP(mbedtls_pk_type_t, x509::KEY_TYPES, 7) mtype2asi = {
-    {MBEDTLS_PK_NONE,       KEY_TYPES::NONE       },
-    {MBEDTLS_PK_RSA,        KEY_TYPES::RSA        },
-    {MBEDTLS_PK_ECKEY,      KEY_TYPES::ECKEY      },
-    {MBEDTLS_PK_ECKEY_DH,   KEY_TYPES::ECKEY_DH   },
-    {MBEDTLS_PK_ECDSA,      KEY_TYPES::ECDSA      },
-    {MBEDTLS_PK_RSA_ALT,    KEY_TYPES::RSA_ALT    },
-    {MBEDTLS_PK_RSASSA_PSS, KEY_TYPES::RSASSA_PSS },
+  CONST_MAP(mbedtls_pk_type_t, x509::KEY_TYPES, 6)
+  mtype2asi = {
+      {MBEDTLS_PK_NONE, KEY_TYPES::NONE},
+      {MBEDTLS_PK_RSA, KEY_TYPES::RSA},
+      {MBEDTLS_PK_ECKEY, KEY_TYPES::ECKEY},
+      {MBEDTLS_PK_ECKEY_DH, KEY_TYPES::ECKEY_DH},
+      {MBEDTLS_PK_ECDSA, KEY_TYPES::ECDSA},
+      {MBEDTLS_PK_RSASSA_PSS, KEY_TYPES::RSASSA_PSS},
   };

   mbedtls_pk_context* ctx = &(x509_cert_->pk);
-  mbedtls_pk_type_t type  = mbedtls_pk_get_type(ctx);
+  mbedtls_pk_type_t type = mbedtls_pk_get_type(ctx);

   const auto it_key = mtype2asi.find(type);
-  if (it_key != std::end(mtype2asi)) {
+  if (it_key != mtype2asi.end()) {
     return it_key->second;
   }
   return KEY_TYPES::NONE;
@@ -443,8 +415,12 @@ x509::KEY_TYPES x509::key_type() const {

 std::unique_ptr<RsaInfo> x509::rsa_info() const {
   if (key_type() == KEY_TYPES::RSA) {
-    mbedtls_rsa_context* rsa_ctx = mbedtls_pk_rsa(x509_cert_->pk);
-    return std::unique_ptr<RsaInfo>{new RsaInfo{rsa_ctx}};
+    mbedtls_rsa_context ctx_rsa;
+    mbedtls_rsa_init(&ctx_rsa);
+    rsa_from_pk(&x509_cert_->pk, &ctx_rsa);
+    auto info = std::unique_ptr<RsaInfo>{new RsaInfo{&ctx_rsa}};
+    mbedtls_rsa_free(&ctx_rsa);
+    return info;
   }
   return nullptr;
 }
@@ -455,7 +431,7 @@ std::vector<uint8_t> pkcs1_15_unpad(const std::vector<uint8_t>& input) {
     return {};
   }

-  // According ot the RFC, the leading byte must be 0:
+  // According to the RFC, the leading byte must be 0:
   if (input[0] != 0x00) {
     return {};
   }
@@ -471,13 +447,13 @@ std::vector<uint8_t> pkcs1_15_unpad(const std::vector<uint8_t>& input) {

   auto padding_start = input.begin() + 2;
   auto padding_end = std::find_if(padding_start, input.end(),
-                                  [] (uint8_t x) { return x != 0xFF; });
+                                  [](uint8_t x) { return x != 0xFF; });
   if (padding_end == input.end()) {
     return {};
   }

   auto content_start = padding_end + 1;
-  size_t content_size  = input.size() - (content_start - input.begin());
+  size_t content_size = input.size() - (content_start - input.begin());
   if (content_start == input.end()) {
     return {};
   }
@@ -513,51 +489,62 @@ std::vector<uint8_t> pkcs1_15_unpad(const std::vector<uint8_t>& input) {
   return stream.content();
 }

-bool x509::check_signature(const std::vector<uint8_t>& hash, const std::vector<uint8_t>& signature, ALGORITHMS algo) const {
-  CONST_MAP(ALGORITHMS, mbedtls_md_type_t, 5) LIEF2MBED_MD = {
-    //{ALGORITHMS::MD2, MBEDTLS_MD_MD2},
-    //{ALGORITHMS::MD4, MBEDTLS_MD_MD4},
-    {ALGORITHMS::MD5, MBEDTLS_MD_MD5},
+bool x509::check_signature(const std::vector<uint8_t>& hash,
+                           const std::vector<uint8_t>& signature,
+                           ALGORITHMS algo) const {
+  CONST_MAP(ALGORITHMS, mbedtls_md_type_t, 5)
+  LIEF2MBED_MD = {
+      //{ALGORITHMS::MD2, MBEDTLS_MD_MD2},
+      //{ALGORITHMS::MD4, MBEDTLS_MD_MD4},
+      {ALGORITHMS::MD5, MBEDTLS_MD_MD5},

-    {ALGORITHMS::SHA_1,   MBEDTLS_MD_SHA1},
-    {ALGORITHMS::SHA_256, MBEDTLS_MD_SHA256},
-    {ALGORITHMS::SHA_384, MBEDTLS_MD_SHA384},
-    {ALGORITHMS::SHA_512, MBEDTLS_MD_SHA512},
+      {ALGORITHMS::SHA_1, MBEDTLS_MD_SHA1},
+      {ALGORITHMS::SHA_256, MBEDTLS_MD_SHA256},
+      {ALGORITHMS::SHA_384, MBEDTLS_MD_SHA384},
+      {ALGORITHMS::SHA_512, MBEDTLS_MD_SHA512},
   };

   auto it_md = LIEF2MBED_MD.find(algo);
-  if (it_md == std::end(LIEF2MBED_MD)) {
-    LIEF_ERR("Can't find algorithm {}", to_string(algo));
+  if (it_md == LIEF2MBED_MD.end()) {
+    LIEF_ERR("Unsupported algorithm {}", to_string(algo));
     return false;
   }
   mbedtls_pk_context& ctx = x509_cert_->pk;
   int ret = mbedtls_pk_verify(&ctx,
-    /* MD_HASH_ALGO       */ it_md->second,
-    /* Input Hash         */ hash.data(), hash.size(),
-    /* Signature provided */ signature.data(), signature.size());
+                              /* MD_HASH_ALGO       */ it_md->second,
+                              /* Input Hash         */ hash.data(), hash.size(),
+                              /* Signature provided */ signature.data(),
+                              signature.size());

   /* If the verification failed with mbedtls_pk_verify it
-   * does notnecessity means that the signatures don't match.
+   * does not necessarily mean that the signatures don't match.
    *
-   * For RSA public-key scheme, mbedtls encodes the hash with rsa_rsassa_pkcs1_v15_encode() so that it expands
-   * the hash value with encoded data. On some samples, this encoding failed.
+   * For RSA public-key scheme, mbedtls encodes the hash with
+   * rsa_rsassa_pkcs1_v15_encode() so that it expands the hash value with encoded
+   * data. On some samples, this encoding failed.
    *
-   * In the approach below, we manually decrypt and unpad the output of the DEC(signature)
-   * as defined in the RFC #2313
+   * In the approach below, we manually decrypt and unpad the output of the
+   * DEC(signature) as defined in the RFC #2313
    */
   if (ret != 0) {
     if (mbedtls_pk_get_type(&ctx) == MBEDTLS_PK_RSA) {
-      auto* ctx_rsa = reinterpret_cast<mbedtls_rsa_context*>(ctx.private_pk_ctx);
-      if ((ctx_rsa->private_len * 8) < 100 || (ctx_rsa->private_len * 8) > 2048llu * 10) {
-        LIEF_INFO("RSA Key length is not valid ({} bits)", ctx_rsa->private_len * 8);
+      size_t bitlen = mbedtls_pk_get_bitlen(&ctx);
+      if ((bitlen * 8) < 100 || (bitlen * 8) > 2048llu * 10) {
+        LIEF_INFO("Invalid RSA key length ({} bits)", bitlen * 8);
         return false;
       }
-      std::vector<uint8_t> decrypted(ctx_rsa->private_len);
+      std::vector<uint8_t> decrypted(bitlen);
+      mbedtls_rsa_context ctx_rsa;
+      rsa_from_pk(&ctx, &ctx_rsa);
+
+      int ret_rsa_public =
+          mbedtls_rsa_public(&ctx_rsa, signature.data(), decrypted.data());
+      mbedtls_rsa_free(&ctx_rsa);

-      int ret_rsa_public = mbedtls_rsa_public(ctx_rsa, signature.data(), decrypted.data());
       if (ret_rsa_public != 0) {
         std::string strerr(1024, 0);
-        mbedtls_strerror(ret_rsa_public, const_cast<char*>(strerr.data()), strerr.size());
+        mbedtls_strerror(ret_rsa_public, const_cast<char*>(strerr.data()),
+                         strerr.size());
         LIEF_INFO("RSA public key operation failed: '{}'", strerr);
         return false;
       }
@@ -585,7 +572,10 @@ x509::VERIFICATION_FLAGS x509::is_trusted_by(const std::vector<x509>& ca) const
     LIEF_WARN("Certificate chain is empty");
     return VERIFICATION_FLAGS::BADCERT_MISSING;
   }
-  std::vector<x509> ca_list = ca; // Explicit copy since we will modify mbedtls_x509_crt->next
+  // Explicit copy since we will modify mbedtls_x509_crt->next
+  // NOLINTNEXTLINE(performance-unnecessary-copy-initialization)
+  std::vector<x509> ca_list = ca;
+
   for (size_t i = 0; i < ca_list.size() - 1; ++i) {
     ca_list[i].x509_cert_->next = ca_list[i + 1].x509_cert_;
   }
@@ -593,15 +583,15 @@ x509::VERIFICATION_FLAGS x509::is_trusted_by(const std::vector<x509>& ca) const
   VERIFICATION_FLAGS result = VERIFICATION_FLAGS::OK;
   uint32_t flags = 0;
   mbedtls_x509_crt_profile profile = {
-    MBEDTLS_X509_ID_FLAG(MBEDTLS_MD_MD5)   |
-    MBEDTLS_X509_ID_FLAG(MBEDTLS_MD_SHA1)   |
-    MBEDTLS_X509_ID_FLAG(MBEDTLS_MD_SHA224) |
-    MBEDTLS_X509_ID_FLAG(MBEDTLS_MD_SHA256) |
-    MBEDTLS_X509_ID_FLAG(MBEDTLS_MD_SHA384) |
-    MBEDTLS_X509_ID_FLAG(MBEDTLS_MD_SHA512),
-    0xFFFFFFF, /* Any PK alg    */
-    0xFFFFFFF, /* Any curve     */
-    1          /* Min RSA key   */,
+      MBEDTLS_X509_ID_FLAG(MBEDTLS_MD_MD5) |
+          MBEDTLS_X509_ID_FLAG(MBEDTLS_MD_SHA1) |
+          MBEDTLS_X509_ID_FLAG(MBEDTLS_MD_SHA224) |
+          MBEDTLS_X509_ID_FLAG(MBEDTLS_MD_SHA256) |
+          MBEDTLS_X509_ID_FLAG(MBEDTLS_MD_SHA384) |
+          MBEDTLS_X509_ID_FLAG(MBEDTLS_MD_SHA512),
+      0xFFFFFFF, /* Any PK alg    */
+      0xFFFFFFF, /* Any curve     */
+      1 /* Min RSA key   */,
   };

   int ret = mbedtls_x509_crt_verify_with_profile(
@@ -612,19 +602,21 @@ x509::VERIFICATION_FLAGS x509::is_trusted_by(const std::vector<x509>& ca) const
       /* Common Name  */ nullptr,
       /* Verification */ &flags,
       /* verification function */ nullptr,
-      /* verification params   */ nullptr);
+      /* verification params   */ nullptr
+  );

   if (ret != 0) {
     std::string strerr(1024, 0);
     mbedtls_strerror(ret, const_cast<char*>(strerr.data()), strerr.size());
     std::string out(1024, 0);
-    mbedtls_x509_crt_verify_info(const_cast<char*>(out.data()), out.size(), "", flags);
-    LIEF_WARN("X509 verify failed with: {} (0x{:x})\n{}", strerr, ret, out);
+    mbedtls_x509_crt_verify_info(const_cast<char*>(out.data()), out.size(), "",
+                                 flags);
+    LIEF_WARN("X509 verify failed with: {} ({:#x})\n{}", strerr, ret, out);
     result = from_mbedtls_err(flags);
   }

   // Clear the chain since ~x509() will delete each object
-  for (size_t i = 0; i < ca_list.size(); ++i) {
+  for (size_t i = 0; i < ca_list.size(); ++i) { // NOLINT(modernize-loop-convert)
     ca_list[i].x509_cert_->next = nullptr;
   }
   return result;
@@ -634,14 +626,14 @@ x509::VERIFICATION_FLAGS x509::verify(const x509& ca) const {
   uint32_t flags = 0;
   VERIFICATION_FLAGS result = VERIFICATION_FLAGS::OK;
   mbedtls_x509_crt_profile profile = {
-    MBEDTLS_X509_ID_FLAG(MBEDTLS_MD_SHA1)   |
-    MBEDTLS_X509_ID_FLAG(MBEDTLS_MD_SHA224) |
-    MBEDTLS_X509_ID_FLAG(MBEDTLS_MD_SHA256) |
-    MBEDTLS_X509_ID_FLAG(MBEDTLS_MD_SHA384) |
-    MBEDTLS_X509_ID_FLAG(MBEDTLS_MD_SHA512),
-    0xFFFFFFF, /* Any PK alg    */
-    0xFFFFFFF, /* Any curve     */
-    1          /* Min RSA key */,
+      MBEDTLS_X509_ID_FLAG(MBEDTLS_MD_SHA1) |
+          MBEDTLS_X509_ID_FLAG(MBEDTLS_MD_SHA224) |
+          MBEDTLS_X509_ID_FLAG(MBEDTLS_MD_SHA256) |
+          MBEDTLS_X509_ID_FLAG(MBEDTLS_MD_SHA384) |
+          MBEDTLS_X509_ID_FLAG(MBEDTLS_MD_SHA512),
+      0xFFFFFFF, /* Any PK alg    */
+      0xFFFFFFF, /* Any curve     */
+      1 /* Min RSA key */,
   };

   int ret = mbedtls_x509_crt_verify_with_profile(
@@ -652,14 +644,16 @@ x509::VERIFICATION_FLAGS x509::verify(const x509& ca) const {
       /* Common Name  */ nullptr,
       /* Verification */ &flags,
       /* verification function */ nullptr,
-      /* verification params   */ nullptr);
+      /* verification params   */ nullptr
+  );

   if (ret != 0) {
     std::string strerr(1024, 0);
     mbedtls_strerror(ret, const_cast<char*>(strerr.data()), strerr.size());
     std::string out(1024, 0);
-    mbedtls_x509_crt_verify_info(const_cast<char*>(out.data()), out.size(), "", flags);
-    LIEF_WARN("X509 verify failed with: {} (0x{:x})\n{}", strerr, ret, out);
+    mbedtls_x509_crt_verify_info(const_cast<char*>(out.data()), out.size(), "",
+                                 flags);
+    LIEF_WARN("X509 verify failed with: {} ({:#x})\n{}", strerr, ret, out);
     result = from_mbedtls_err(flags);
   }
   return result;
@@ -673,8 +667,9 @@ std::vector<oid_t> x509::ext_key_usage() const {
   std::vector<oid_t> oids;
   while (current != nullptr) {
     char oid_str[256] = {0};
-    int ret = mbedtls_oid_get_numeric_string(oid_str, sizeof(oid_str), &current->buf);
-    if (ret != MBEDTLS_ERR_OID_BUF_TOO_SMALL) {
+    int ret =
+        mbedtls_oid_get_numeric_string(oid_str, sizeof(oid_str), &current->buf);
+    if (ret != MBEDTLS_ERR_ASN1_BUF_TOO_SMALL) {
       LIEF_DEBUG("OID: {}", oid_str);
       oids.emplace_back(oid_str);
     } else {
@@ -691,7 +686,8 @@ std::vector<oid_t> x509::ext_key_usage() const {
 }

 std::vector<oid_t> x509::certificate_policies() const {
-  if ((x509_cert_->private_ext_types & MBEDTLS_OID_X509_EXT_CERTIFICATE_POLICIES) == 0) {
+  if ((x509_cert_->private_ext_types & MBEDTLS_X509_EXT_CERTIFICATE_POLICIES) == 0)
+  {
     return {};
   }

@@ -700,8 +696,9 @@ std::vector<oid_t> x509::certificate_policies() const {
   std::vector<oid_t> oids;
   while (current != nullptr) {
     char oid_str[256] = {0};
-    int ret = mbedtls_oid_get_numeric_string(oid_str, sizeof(oid_str), &current->buf);
-    if (ret != MBEDTLS_ERR_OID_BUF_TOO_SMALL) {
+    int ret =
+        mbedtls_oid_get_numeric_string(oid_str, sizeof(oid_str), &current->buf);
+    if (ret != MBEDTLS_ERR_ASN1_BUF_TOO_SMALL) {
       oids.emplace_back(oid_str);
     } else {
       std::string strerr(1024, 0);
@@ -725,15 +722,15 @@ bool x509::is_ca() const {

 std::vector<x509::KEY_USAGE> x509::key_usage() const {
   static const std::map<uint32_t, KEY_USAGE> MBEDTLS_MAP = {
-    {MBEDTLS_X509_KU_DIGITAL_SIGNATURE, KEY_USAGE::DIGITAL_SIGNATURE},
-    {MBEDTLS_X509_KU_NON_REPUDIATION,   KEY_USAGE::NON_REPUDIATION},
-    {MBEDTLS_X509_KU_KEY_ENCIPHERMENT,  KEY_USAGE::KEY_ENCIPHERMENT},
-    {MBEDTLS_X509_KU_DATA_ENCIPHERMENT, KEY_USAGE::DATA_ENCIPHERMENT},
-    {MBEDTLS_X509_KU_KEY_AGREEMENT,     KEY_USAGE::KEY_AGREEMENT},
-    {MBEDTLS_X509_KU_KEY_CERT_SIGN,     KEY_USAGE::KEY_CERT_SIGN},
-    {MBEDTLS_X509_KU_CRL_SIGN,          KEY_USAGE::CRL_SIGN},
-    {MBEDTLS_X509_KU_ENCIPHER_ONLY,     KEY_USAGE::ENCIPHER_ONLY},
-    {MBEDTLS_X509_KU_DECIPHER_ONLY,     KEY_USAGE::DECIPHER_ONLY},
+      {MBEDTLS_X509_KU_DIGITAL_SIGNATURE, KEY_USAGE::DIGITAL_SIGNATURE},
+      {MBEDTLS_X509_KU_NON_REPUDIATION, KEY_USAGE::NON_REPUDIATION},
+      {MBEDTLS_X509_KU_KEY_ENCIPHERMENT, KEY_USAGE::KEY_ENCIPHERMENT},
+      {MBEDTLS_X509_KU_DATA_ENCIPHERMENT, KEY_USAGE::DATA_ENCIPHERMENT},
+      {MBEDTLS_X509_KU_KEY_AGREEMENT, KEY_USAGE::KEY_AGREEMENT},
+      {MBEDTLS_X509_KU_KEY_CERT_SIGN, KEY_USAGE::KEY_CERT_SIGN},
+      {MBEDTLS_X509_KU_CRL_SIGN, KEY_USAGE::CRL_SIGN},
+      {MBEDTLS_X509_KU_ENCIPHER_ONLY, KEY_USAGE::ENCIPHER_ONLY},
+      {MBEDTLS_X509_KU_DECIPHER_ONLY, KEY_USAGE::DECIPHER_ONLY},
   };

   if ((x509_cert_->private_ext_types & MBEDTLS_X509_EXT_KEY_USAGE) == 0) {
@@ -751,7 +748,7 @@ std::vector<x509::KEY_USAGE> x509::key_usage() const {
 }

 std::vector<uint8_t> x509::signature() const {
-  mbedtls_x509_buf sig =  x509_cert_->private_sig;
+  mbedtls_x509_buf sig = x509_cert_->private_sig;
   return {sig.p, sig.p + sig.len};
 }

@@ -766,7 +763,8 @@ x509::~x509() {

 std::ostream& operator<<(std::ostream& os, const x509& x509_cert) {
   std::vector<char> buffer(2048, 0);
-  int ret = mbedtls_x509_crt_info(buffer.data(), buffer.size(), "", x509_cert.x509_cert_);
+  int ret = mbedtls_x509_crt_info(buffer.data(), buffer.size(), "",
+                                  x509_cert.x509_cert_);
   if (ret < 0) {
     os << "Can't print certificate information\n";
     return os;
@@ -777,4 +775,3 @@ std::ostream& operator<<(std::ostream& os, const x509& x509_cert) {
 }

 }
-}
diff --git a/deps/LIEF/src/PE/utils.cpp b/deps/LIEF/src/PE/utils.cpp
index e24c48579d9..0c44521557a 100644
--- a/deps/LIEF/src/PE/utils.cpp
+++ b/deps/LIEF/src/PE/utils.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -16,8 +16,12 @@
 #include <algorithm>
 #include <iterator>

+#ifndef MBEDTLS_DECLARE_PRIVATE_IDENTIFIERS
+  #define MBEDTLS_DECLARE_PRIVATE_IDENTIFIERS
+#endif
+
 #include "logging.hpp"
-#include "mbedtls/md5.h"
+#include "psa/crypto_builtin_primitives.h"

 #include "LIEF/PE/utils.hpp"
 #include "LIEF/PE/Binary.hpp"
@@ -36,16 +40,15 @@
 #include "hash_stream.hpp"
 #include "internal_utils.hpp"

-namespace LIEF {
-namespace PE {
+
+namespace LIEF::PE {

 static constexpr size_t SIZEOF_OPT_HEADER_32 = 0xE0;
 static constexpr size_t SIZEOF_OPT_HEADER_64 = 0xF0;

 inline std::string to_lower(std::string str) {
   std::string lower = str;
-  std::transform(std::begin(str), std::end(str),
-                 std::begin(lower), ::tolower);
+  std::transform(str.begin(), str.end(), lower.begin(), ::tolower);
   return lower;
 }

@@ -53,7 +56,7 @@ bool is_pe(BinaryStream& stream) {
   using signature_t = std::array<char, sizeof(details::PE_Magic)>;
   ScopedStream scoped(stream, 0);
   if (auto dos_header = scoped->read<details::pe_dos_header>()) {
-    if (dos_header->Magic != /* MZ */0x5a4d) {
+    if (dos_header->Magic != /* MZ */ 0x5a4d) {
       return false;
     }
     scoped->setpos(dos_header->AddressOfNewExeHeader);
@@ -87,30 +90,34 @@ result<PE_TYPE> get_type_from_stream(BinaryStream& stream) {
   stream.setpos(0);
   auto dos_hdr = stream.read<details::pe_dos_header>();
   if (!dos_hdr) {
-    LIEF_ERR("Can't read the DOS Header structure");
+    LIEF_ERR("Failed to read the DOS header structure");
     return make_error_code(dos_hdr.error());
   }
   stream.setpos(dos_hdr->AddressOfNewExeHeader);
   if (!stream.can_read<details::pe_header>()) {
-    LIEF_ERR("Can't read the PE header");
+    LIEF_ERR("Failed to read the PE header");
     return make_error_code(lief_errors::read_error);
   }

   auto header = stream.read<details::pe_header>();
   if (!header) {
-    LIEF_ERR("Can't read the PE header");
+    LIEF_ERR("Failed to read the PE header");
     return make_error_code(header.error());
   }

   const size_t sizeof_opt_header = header->SizeOfOptionalHeader;
   if (sizeof_opt_header != SIZEOF_OPT_HEADER_32 &&
-      sizeof_opt_header != SIZEOF_OPT_HEADER_64) {
-    LIEF_WARN("The value of the SizeOfOptionalHeader in the PE header seems corrupted 0x{:x}", sizeof_opt_header);
+      sizeof_opt_header != SIZEOF_OPT_HEADER_64)
+  {
+    LIEF_WARN(
+        "SizeOfOptionalHeader seems invalid: {:#x}. Expecting {:#x} or {:#x}",
+        sizeof_opt_header, SIZEOF_OPT_HEADER_32, SIZEOF_OPT_HEADER_64
+    );
   }

   auto opt_hdr = stream.read<details::pe32_optional_header>();
   if (!opt_hdr) {
-    LIEF_ERR("Can't read the PE optional header");
+    LIEF_ERR("Failed to read the PE optional header");
     return make_error_code(opt_hdr.error());
   }
   const auto type = static_cast<PE_TYPE>(opt_hdr->Magic);
@@ -136,7 +143,7 @@ result<PE_TYPE> get_type_from_stream(BinaryStream& stream) {
     return PE_TYPE::PE32_PLUS;
   }

-  LIEF_ERR("Can't determine the PE's type (PE32 / PE32+)");
+  LIEF_ERR("Failed to determine PE type (PE32 / PE32+)");
   return make_error_code(lief_errors::file_format_error);
 }

@@ -166,7 +173,9 @@ std::string get_imphash_std(const Binary& binary) {
   hashstream hs(hashstream::HASH::MD5);
   for (const Import& imp : binary.imports()) {
     Import resolved = imp;
-    if (auto resolution = resolve_ordinals(imp, /* strict */ false, /* use_std */ true)) {
+    if (auto resolution =
+            resolve_ordinals(imp, /* strict */ false, /* use_std */ true))
+    {
       resolved = std::move(*resolution);
     }

@@ -176,7 +185,7 @@ std::string get_imphash_std(const Binary& binary) {
     if (ext_idx != std::string::npos) {
       ext = to_lower(resolved.name().substr(ext_idx + 1));
     }
-    if (ALLOWED_EXT.find(ext) != std::end(ALLOWED_EXT)) {
+    if (ALLOWED_EXT.find(ext) != ALLOWED_EXT.end()) {
       name = name.substr(0, ext_idx);
     }

@@ -201,7 +210,8 @@ std::string get_imphash_std(const Binary& binary) {
     }
     lstr += to_lower(entries_string);

-    // use write(uint8_t*, size_t) instead of write(const std::string&) to avoid null char
+    // Use write(uint8_t*, size_t) instead of write(const std::string&) to avoid
+    // including the null terminator
     hs.write(reinterpret_cast<const uint8_t*>(lstr.data()), lstr.size());
     lstr.clear();
   }
@@ -236,79 +246,73 @@ std::string get_imphash_lief(const Binary& binary) {
     for (const ImportEntry& e : resolved.entries()) {
       if (e.is_ordinal()) {
         entries_string.append(name_without_ext)
-                      .append(".#")
-                      .append(std::to_string(e.ordinal()));
+            .append(".#")
+            .append(std::to_string(e.ordinal()));
       } else {
-        entries_string.append(name_without_ext)
-                      .append(".")
-                      .append(e.name());
+        entries_string.append(name_without_ext).append(".").append(e.name());
       }
     }
     import_list += to_lower(entries_string);
   }

-  std::sort(std::begin(import_list), std::end(import_list),
-            std::less<>());
+  std::sort(import_list.begin(), import_list.end(), std::less<>());

-  mbedtls_md5(
-      reinterpret_cast<const uint8_t*>(import_list.data()),
-      import_list.size(),
-      md5_buffer.data());
+  mbedtls_md5(reinterpret_cast<const uint8_t*>(import_list.data()),
+              import_list.size(), md5_buffer.data());
   return hex_dump(md5_buffer, "");
 }

 std::string get_imphash(const Binary& binary, IMPHASH_MODE mode) {
   switch (mode) {
     case IMPHASH_MODE::LIEF:
-      {
-        return get_imphash_lief(binary);
-      }
+    {
+      return get_imphash_lief(binary);
+    }
     case IMPHASH_MODE::PEFILE:
-      {
-        return get_imphash_std(binary);
-      }
+    {
+      return get_imphash_std(binary);
+    }
   }
   return "";
 }

 result<Import> resolve_ordinals(const Import& import, bool strict, bool use_std) {
   static const std::unordered_map<std::string, const char* (*)(uint32_t)>
-  ordinals_library_tables =
-  {
-    { "kernel32.dll",   &kernel32_dll_lookup },
-    { "ntdll.dll",      &ntdll_dll_lookup    },
-    { "advapi32.dll",   &advapi32_dll_lookup },
-    { "msvcp110.dll",   &msvcp110_dll_lookup },
-    { "msvcp120.dll",   &msvcp120_dll_lookup },
-    { "msvcr100.dll",   &msvcr100_dll_lookup },
-    { "msvcr110.dll",   &msvcr110_dll_lookup },
-    { "msvcr120.dll",   &msvcr120_dll_lookup },
-    { "user32.dll",     &user32_dll_lookup   },
-    { "comctl32.dll",   &comctl32_dll_lookup },
-    { "ws2_32.dll",     &ws2_32_dll_lookup   },
-    { "shcore.dll",     &shcore_dll_lookup   },
-    { "oleaut32.dll",   &oleaut32_dll_lookup },
-    { "mfc42u.dll",     &mfc42u_dll_lookup   },
-    { "shlwapi.dll",    &shlwapi_dll_lookup  },
-    { "gdi32.dll",      &gdi32_dll_lookup    },
-    { "shell32.dll",    &shell32_dll_lookup  },
+      ordinals_library_tables = {
+          {"kernel32.dll", &kernel32_dll_lookup},
+          {"ntdll.dll", &ntdll_dll_lookup},
+          {"advapi32.dll", &advapi32_dll_lookup},
+          {"msvcp110.dll", &msvcp110_dll_lookup},
+          {"msvcp120.dll", &msvcp120_dll_lookup},
+          {"msvcr100.dll", &msvcr100_dll_lookup},
+          {"msvcr110.dll", &msvcr110_dll_lookup},
+          {"msvcr120.dll", &msvcr120_dll_lookup},
+          {"user32.dll", &user32_dll_lookup},
+          {"comctl32.dll", &comctl32_dll_lookup},
+          {"ws2_32.dll", &ws2_32_dll_lookup},
+          {"shcore.dll", &shcore_dll_lookup},
+          {"oleaut32.dll", &oleaut32_dll_lookup},
+          {"mfc42u.dll", &mfc42u_dll_lookup},
+          {"shlwapi.dll", &shlwapi_dll_lookup},
+          {"gdi32.dll", &gdi32_dll_lookup},
+          {"shell32.dll", &shell32_dll_lookup},
   };

   static const std::unordered_map<std::string, const char* (*)(uint32_t)>
-  imphashstd_ordinals_library_tables =
-  {
-    { "ws2_32.dll",     &ws2_32_dll_lookup   },
-    { "wsock32.dll",    &ws2_32_dll_lookup   },
-    { "oleaut32.dll",   &oleaut32_dll_lookup },
+      imphashstd_ordinals_library_tables = {
+          {"ws2_32.dll", &ws2_32_dll_lookup},
+          {"wsock32.dll", &ws2_32_dll_lookup},
+          {"oleaut32.dll", &oleaut32_dll_lookup},
   };

-  using ordinal_resolver_t = const char*(*)(uint32_t);
+  using ordinal_resolver_t = const char* (*)(uint32_t);

   Import::it_const_entries entries = import.entries();

-  if (std::all_of(std::begin(entries), std::end(entries),
-                  [] (const ImportEntry& entry) { return !entry.is_ordinal(); })) {
-    //LIEF_DEBUG("All imports use name. No ordinal!");
+  if (std::all_of(entries.begin(), entries.end(),
+                  [](const ImportEntry& entry) { return !entry.is_ordinal(); }))
+  {
+    // LIEF_DEBUG("All imports use name. No ordinal!");
     return import;
   }

@@ -317,12 +321,12 @@ result<Import> resolve_ordinals(const Import& import, bool strict, bool use_std)
   ordinal_resolver_t ordinal_resolver = nullptr;
   if (use_std) {
     auto it = imphashstd_ordinals_library_tables.find(name);
-    if (it != std::end(imphashstd_ordinals_library_tables)) {
+    if (it != imphashstd_ordinals_library_tables.end()) {
       ordinal_resolver = it->second;
     }
   } else {
     auto it = ordinals_library_tables.find(name);
-    if (it != std::end(ordinals_library_tables)) {
+    if (it != ordinals_library_tables.end()) {
       ordinal_resolver = it->second;
     }
   }
@@ -339,12 +343,13 @@ result<Import> resolve_ordinals(const Import& import, bool strict, bool use_std)
   for (ImportEntry& entry : resolved_import.entries()) {
     if (entry.is_ordinal()) {
       LIEF_DEBUG("Dealing with: {}", to_string(entry));
-      const char* entry_name = ordinal_resolver(static_cast<uint32_t>(entry.ordinal()));
+      const char* entry_name =
+          ordinal_resolver(static_cast<uint32_t>(entry.ordinal()));
       if (entry_name == nullptr) {
         if (strict) {
           return make_error_code(lief_errors::not_supported);
         }
-        LIEF_DEBUG("Unable to resolve ordinal: #{:d}", entry.ordinal());
+        LIEF_DEBUG("Failed to resolve ordinal: #{:d}", entry.ordinal());
         continue;
       }
       entry.data(0);
@@ -356,37 +361,36 @@ result<Import> resolve_ordinals(const Import& import, bool strict, bool use_std)
 }
 ALGORITHMS algo_from_oid(const std::string& oid) {
   static const std::unordered_map<std::string, ALGORITHMS> OID_MAP = {
-    { "2.16.840.1.101.3.4.2.3", ALGORITHMS::SHA_512 },
-    { "2.16.840.1.101.3.4.2.2", ALGORITHMS::SHA_384 },
-    { "2.16.840.1.101.3.4.2.1", ALGORITHMS::SHA_256 },
-    { "1.3.14.3.2.26",          ALGORITHMS::SHA_1   },
-
-    { "1.2.840.113549.2.5",     ALGORITHMS::MD5 },
-    { "1.2.840.113549.2.4",     ALGORITHMS::MD4 },
-    { "1.2.840.113549.2.2",     ALGORITHMS::MD2 },
-
-    { "1.2.840.113549.1.1.1",   ALGORITHMS::RSA },
-    { "1.2.840.10045.2.1",      ALGORITHMS::EC  },
-
-    { "1.2.840.113549.1.1.4",   ALGORITHMS::MD5_RSA        },
-    { "1.2.840.10040.4.3",      ALGORITHMS::SHA1_DSA       },
-    { "1.2.840.113549.1.1.5",   ALGORITHMS::SHA1_RSA       },
-    { "1.2.840.113549.1.1.11",  ALGORITHMS::SHA_256_RSA    },
-    { "1.2.840.113549.1.1.12",  ALGORITHMS::SHA_384_RSA    },
-    { "1.2.840.113549.1.1.13",  ALGORITHMS::SHA_512_RSA    },
-    { "1.2.840.10045.4.1",      ALGORITHMS::SHA1_ECDSA     },
-    { "1.2.840.10045.4.3.2",    ALGORITHMS::SHA_256_ECDSA  },
-    { "1.2.840.10045.4.3.3",    ALGORITHMS::SHA_384_ECDSA  },
-    { "1.2.840.10045.4.3.4",    ALGORITHMS::SHA_512_ECDSA  },
+      {"2.16.840.1.101.3.4.2.3", ALGORITHMS::SHA_512},
+      {"2.16.840.1.101.3.4.2.2", ALGORITHMS::SHA_384},
+      {"2.16.840.1.101.3.4.2.1", ALGORITHMS::SHA_256},
+      {"1.3.14.3.2.26", ALGORITHMS::SHA_1},
+
+      {"1.2.840.113549.2.5", ALGORITHMS::MD5},
+      {"1.2.840.113549.2.4", ALGORITHMS::MD4},
+      {"1.2.840.113549.2.2", ALGORITHMS::MD2},
+
+      {"1.2.840.113549.1.1.1", ALGORITHMS::RSA},
+      {"1.2.840.10045.2.1", ALGORITHMS::EC},
+
+      {"1.2.840.113549.1.1.4", ALGORITHMS::MD5_RSA},
+      {"1.2.840.10040.4.3", ALGORITHMS::SHA1_DSA},
+      {"1.2.840.113549.1.1.5", ALGORITHMS::SHA1_RSA},
+      {"1.2.840.113549.1.1.11", ALGORITHMS::SHA_256_RSA},
+      {"1.2.840.113549.1.1.12", ALGORITHMS::SHA_384_RSA},
+      {"1.2.840.113549.1.1.13", ALGORITHMS::SHA_512_RSA},
+      {"1.2.840.10045.4.1", ALGORITHMS::SHA1_ECDSA},
+      {"1.2.840.10045.4.3.2", ALGORITHMS::SHA_256_ECDSA},
+      {"1.2.840.10045.4.3.3", ALGORITHMS::SHA_384_ECDSA},
+      {"1.2.840.10045.4.3.4", ALGORITHMS::SHA_512_ECDSA},
   };


   const auto it = OID_MAP.find(oid.c_str());
-  if (it == std::end(OID_MAP)) {
+  if (it == OID_MAP.end()) {
     return ALGORITHMS::UNKNOWN;
   }
   return it->second;
 }

 }
-}
diff --git a/deps/LIEF/src/PE/utils/ordinals_lookup_tables/advapi32_dll_lookup.hpp b/deps/LIEF/src/PE/utils/ordinals_lookup_tables/advapi32_dll_lookup.hpp
index f47dc5300eb..2c9eea818d2 100644
--- a/deps/LIEF/src/PE/utils/ordinals_lookup_tables/advapi32_dll_lookup.hpp
+++ b/deps/LIEF/src/PE/utils/ordinals_lookup_tables/advapi32_dll_lookup.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -17,693 +17,692 @@
 #define LIEF_PE_ADVAPI32_DLL_LOOKUP_H
 #include <cstdint>

-namespace LIEF {
-namespace PE {
+
+namespace LIEF::PE {

 inline const char* advapi32_dll_lookup(uint32_t i) {
-  switch(i) {
-  case 0x0002: return "A_SHAFinal";
-  case 0x0003: return "A_SHAInit";
-  case 0x0004: return "A_SHAUpdate";
-  case 0x0005: return "AbortSystemShutdownA";
-  case 0x0006: return "AbortSystemShutdownW";
-  case 0x0007: return "AccessCheck";
-  case 0x0008: return "AccessCheckAndAuditAlarmA";
-  case 0x0009: return "AccessCheckAndAuditAlarmW";
-  case 0x000a: return "AccessCheckByType";
-  case 0x000b: return "AccessCheckByTypeAndAuditAlarmA";
-  case 0x000c: return "AccessCheckByTypeAndAuditAlarmW";
-  case 0x000d: return "AccessCheckByTypeResultList";
-  case 0x000e: return "AccessCheckByTypeResultListAndAuditAlarmA";
-  case 0x000f: return "AccessCheckByTypeResultListAndAuditAlarmByHandleA";
-  case 0x0010: return "AccessCheckByTypeResultListAndAuditAlarmByHandleW";
-  case 0x0011: return "AccessCheckByTypeResultListAndAuditAlarmW";
-  case 0x0012: return "AddAccessAllowedAce";
-  case 0x0013: return "AddAccessAllowedAceEx";
-  case 0x0014: return "AddAccessAllowedObjectAce";
-  case 0x0015: return "AddAccessDeniedAce";
-  case 0x0016: return "AddAccessDeniedAceEx";
-  case 0x0017: return "AddAccessDeniedObjectAce";
-  case 0x0018: return "AddAce";
-  case 0x0019: return "AddAuditAccessAce";
-  case 0x001a: return "AddAuditAccessAceEx";
-  case 0x001b: return "AddAuditAccessObjectAce";
-  case 0x001c: return "AddUsersToEncryptedFile";
-  case 0x001d: return "AdjustTokenGroups";
-  case 0x001e: return "AdjustTokenPrivileges";
-  case 0x001f: return "AllocateAndInitializeSid";
-  case 0x0020: return "AllocateLocallyUniqueId";
-  case 0x0021: return "AreAllAccessesGranted";
-  case 0x0022: return "AreAnyAccessesGranted";
-  case 0x0023: return "BackupEventLogA";
-  case 0x0024: return "BackupEventLogW";
-  case 0x0025: return "BuildExplicitAccessWithNameA";
-  case 0x0026: return "BuildExplicitAccessWithNameW";
-  case 0x0027: return "BuildImpersonateExplicitAccessWithNameA";
-  case 0x0028: return "BuildImpersonateExplicitAccessWithNameW";
-  case 0x0029: return "BuildImpersonateTrusteeA";
-  case 0x002a: return "BuildImpersonateTrusteeW";
-  case 0x002b: return "BuildSecurityDescriptorA";
-  case 0x002c: return "BuildSecurityDescriptorW";
-  case 0x002d: return "BuildTrusteeWithNameA";
-  case 0x002e: return "BuildTrusteeWithNameW";
-  case 0x002f: return "BuildTrusteeWithObjectsAndNameA";
-  case 0x0030: return "BuildTrusteeWithObjectsAndNameW";
-  case 0x0031: return "BuildTrusteeWithObjectsAndSidA";
-  case 0x0032: return "BuildTrusteeWithObjectsAndSidW";
-  case 0x0033: return "BuildTrusteeWithSidA";
-  case 0x0034: return "BuildTrusteeWithSidW";
-  case 0x0035: return "CancelOverlappedAccess";
-  case 0x0036: return "ChangeServiceConfig2A";
-  case 0x0037: return "ChangeServiceConfig2W";
-  case 0x0038: return "ChangeServiceConfigA";
-  case 0x0039: return "ChangeServiceConfigW";
-  case 0x003a: return "CheckTokenMembership";
-  case 0x003b: return "ClearEventLogA";
-  case 0x003c: return "ClearEventLogW";
-  case 0x003d: return "CloseCodeAuthzLevel";
-  case 0x003e: return "CloseEncryptedFileRaw";
-  case 0x003f: return "CloseEventLog";
-  case 0x0040: return "CloseServiceHandle";
-  case 0x0041: return "CloseTrace";
-  case 0x0042: return "CommandLineFromMsiDescriptor";
-  case 0x0043: return "ComputeAccessTokenFromCodeAuthzLevel";
-  case 0x0044: return "ControlService";
-  case 0x0045: return "ControlTraceA";
-  case 0x0046: return "ControlTraceW";
-  case 0x0047: return "ConvertAccessToSecurityDescriptorA";
-  case 0x0048: return "ConvertAccessToSecurityDescriptorW";
-  case 0x0049: return "ConvertSDToStringSDRootDomainA";
-  case 0x004a: return "ConvertSDToStringSDRootDomainW";
-  case 0x004b: return "ConvertSecurityDescriptorToAccessA";
-  case 0x004c: return "ConvertSecurityDescriptorToAccessNamedA";
-  case 0x004d: return "ConvertSecurityDescriptorToAccessNamedW";
-  case 0x004e: return "ConvertSecurityDescriptorToAccessW";
-  case 0x004f: return "ConvertSecurityDescriptorToStringSecurityDescriptorA";
-  case 0x0050: return "ConvertSecurityDescriptorToStringSecurityDescriptorW";
-  case 0x0051: return "ConvertSidToStringSidA";
-  case 0x0052: return "ConvertSidToStringSidW";
-  case 0x0053: return "ConvertStringSDToSDDomainA";
-  case 0x0054: return "ConvertStringSDToSDDomainW";
-  case 0x0055: return "ConvertStringSDToSDRootDomainA";
-  case 0x0056: return "ConvertStringSDToSDRootDomainW";
-  case 0x0057: return "ConvertStringSecurityDescriptorToSecurityDescriptorA";
-  case 0x0058: return "ConvertStringSecurityDescriptorToSecurityDescriptorW";
-  case 0x0059: return "ConvertStringSidToSidA";
-  case 0x005a: return "ConvertStringSidToSidW";
-  case 0x005b: return "ConvertToAutoInheritPrivateObjectSecurity";
-  case 0x005c: return "CopySid";
-  case 0x005d: return "CreateCodeAuthzLevel";
-  case 0x005e: return "CreatePrivateObjectSecurity";
-  case 0x005f: return "CreatePrivateObjectSecurityEx";
-  case 0x0060: return "CreatePrivateObjectSecurityWithMultipleInheritance";
-  case 0x0061: return "CreateProcessAsUserA";
-  case 0x0062: return "CreateProcessAsUserSecure";
-  case 0x0063: return "CreateProcessAsUserW";
-  case 0x0064: return "CreateProcessWithLogonW";
-  case 0x0065: return "CreateRestrictedToken";
-  case 0x0066: return "CreateServiceA";
-  case 0x0067: return "CreateServiceW";
-  case 0x0068: return "CreateTraceInstanceId";
-  case 0x0069: return "CreateWellKnownSid";
-  case 0x006a: return "CredDeleteA";
-  case 0x006b: return "CredDeleteW";
-  case 0x006c: return "CredEnumerateA";
-  case 0x006d: return "CredEnumerateW";
-  case 0x006e: return "CredFree";
-  case 0x006f: return "CredGetSessionTypes";
-  case 0x0070: return "CredGetTargetInfoA";
-  case 0x0071: return "CredGetTargetInfoW";
-  case 0x0072: return "CredIsMarshaledCredentialA";
-  case 0x0073: return "CredIsMarshaledCredentialW";
-  case 0x0074: return "CredMarshalCredentialA";
-  case 0x0075: return "CredMarshalCredentialW";
-  case 0x0076: return "CredProfileLoaded";
-  case 0x0077: return "CredReadA";
-  case 0x0078: return "CredReadDomainCredentialsA";
-  case 0x0079: return "CredReadDomainCredentialsW";
-  case 0x007a: return "CredReadW";
-  case 0x007b: return "CredRenameA";
-  case 0x007c: return "CredRenameW";
-  case 0x007d: return "CredUnmarshalCredentialA";
-  case 0x007e: return "CredUnmarshalCredentialW";
-  case 0x007f: return "CredWriteA";
-  case 0x0080: return "CredWriteDomainCredentialsA";
-  case 0x0081: return "CredWriteDomainCredentialsW";
-  case 0x0082: return "CredWriteW";
-  case 0x0083: return "CredpConvertCredential";
-  case 0x0084: return "CredpConvertTargetInfo";
-  case 0x0085: return "CredpDecodeCredential";
-  case 0x0086: return "CredpEncodeCredential";
-  case 0x0087: return "CryptAcquireContextA";
-  case 0x0088: return "CryptAcquireContextW";
-  case 0x0089: return "CryptContextAddRef";
-  case 0x008a: return "CryptCreateHash";
-  case 0x008b: return "CryptDecrypt";
-  case 0x008c: return "CryptDeriveKey";
-  case 0x008d: return "CryptDestroyHash";
-  case 0x008e: return "CryptDestroyKey";
-  case 0x008f: return "CryptDuplicateHash";
-  case 0x0090: return "CryptDuplicateKey";
-  case 0x0091: return "CryptEncrypt";
-  case 0x0092: return "CryptEnumProviderTypesA";
-  case 0x0093: return "CryptEnumProviderTypesW";
-  case 0x0094: return "CryptEnumProvidersA";
-  case 0x0095: return "CryptEnumProvidersW";
-  case 0x0096: return "CryptExportKey";
-  case 0x0097: return "CryptGenKey";
-  case 0x0098: return "CryptGenRandom";
-  case 0x0099: return "CryptGetDefaultProviderA";
-  case 0x009a: return "CryptGetDefaultProviderW";
-  case 0x009b: return "CryptGetHashParam";
-  case 0x009c: return "CryptGetKeyParam";
-  case 0x009d: return "CryptGetProvParam";
-  case 0x009e: return "CryptGetUserKey";
-  case 0x009f: return "CryptHashData";
-  case 0x00a0: return "CryptHashSessionKey";
-  case 0x00a1: return "CryptImportKey";
-  case 0x00a2: return "CryptReleaseContext";
-  case 0x00a3: return "CryptSetHashParam";
-  case 0x00a4: return "CryptSetKeyParam";
-  case 0x00a5: return "CryptSetProvParam";
-  case 0x00a6: return "CryptSetProviderA";
-  case 0x00a7: return "CryptSetProviderExA";
-  case 0x00a8: return "CryptSetProviderExW";
-  case 0x00a9: return "CryptSetProviderW";
-  case 0x00aa: return "CryptSignHashA";
-  case 0x00ab: return "CryptSignHashW";
-  case 0x00ac: return "CryptVerifySignatureA";
-  case 0x00ad: return "CryptVerifySignatureW";
-  case 0x00ae: return "DecryptFileA";
-  case 0x00af: return "DecryptFileW";
-  case 0x00b0: return "DeleteAce";
-  case 0x00b1: return "DeleteService";
-  case 0x00b2: return "DeregisterEventSource";
-  case 0x00b3: return "DestroyPrivateObjectSecurity";
-  case 0x00b4: return "DuplicateEncryptionInfoFile";
-  case 0x00b5: return "DuplicateToken";
-  case 0x00b6: return "DuplicateTokenEx";
-  case 0x00b7: return "ElfBackupEventLogFileA";
-  case 0x00b8: return "ElfBackupEventLogFileW";
-  case 0x00b9: return "ElfChangeNotify";
-  case 0x00ba: return "ElfClearEventLogFileA";
-  case 0x00bb: return "ElfClearEventLogFileW";
-  case 0x00bc: return "ElfCloseEventLog";
-  case 0x00bd: return "ElfDeregisterEventSource";
-  case 0x00be: return "ElfFlushEventLog";
-  case 0x00bf: return "ElfNumberOfRecords";
-  case 0x00c0: return "ElfOldestRecord";
-  case 0x00c1: return "ElfOpenBackupEventLogA";
-  case 0x00c2: return "ElfOpenBackupEventLogW";
-  case 0x00c3: return "ElfOpenEventLogA";
-  case 0x00c4: return "ElfOpenEventLogW";
-  case 0x00c5: return "ElfReadEventLogA";
-  case 0x00c6: return "ElfReadEventLogW";
-  case 0x00c7: return "ElfRegisterEventSourceA";
-  case 0x00c8: return "ElfRegisterEventSourceW";
-  case 0x00c9: return "ElfReportEventA";
-  case 0x00ca: return "ElfReportEventW";
-  case 0x00cb: return "EnableTrace";
-  case 0x00cc: return "EncryptFileA";
-  case 0x00cd: return "EncryptFileW";
-  case 0x00ce: return "EncryptedFileKeyInfo";
-  case 0x00cf: return "EncryptionDisable";
-  case 0x00d0: return "EnumDependentServicesA";
-  case 0x00d1: return "EnumDependentServicesW";
-  case 0x00d2: return "EnumServiceGroupW";
-  case 0x00d3: return "EnumServicesStatusA";
-  case 0x00d4: return "EnumServicesStatusExA";
-  case 0x00d5: return "EnumServicesStatusExW";
-  case 0x00d6: return "EnumServicesStatusW";
-  case 0x00d7: return "EnumerateTraceGuids";
-  case 0x00d8: return "EqualDomainSid";
-  case 0x00d9: return "EqualPrefixSid";
-  case 0x00da: return "EqualSid";
-  case 0x00db: return "FileEncryptionStatusA";
-  case 0x00dc: return "FileEncryptionStatusW";
-  case 0x00dd: return "FindFirstFreeAce";
-  case 0x00de: return "FlushTraceA";
-  case 0x00df: return "FlushTraceW";
-  case 0x00e0: return "FreeEncryptedFileKeyInfo";
-  case 0x00e1: return "FreeEncryptionCertificateHashList";
-  case 0x00e2: return "FreeInheritedFromArray";
-  case 0x00e3: return "FreeSid";
-  case 0x00e4: return "GetAccessPermissionsForObjectA";
-  case 0x00e5: return "GetAccessPermissionsForObjectW";
-  case 0x00e6: return "GetAce";
-  case 0x00e7: return "GetAclInformation";
-  case 0x00e8: return "GetAuditedPermissionsFromAclA";
-  case 0x00e9: return "GetAuditedPermissionsFromAclW";
-  case 0x00ea: return "GetCurrentHwProfileA";
-  case 0x00eb: return "GetCurrentHwProfileW";
-  case 0x00ec: return "GetEffectiveRightsFromAclA";
-  case 0x00ed: return "GetEffectiveRightsFromAclW";
-  case 0x00ee: return "GetEventLogInformation";
-  case 0x00ef: return "GetExplicitEntriesFromAclA";
-  case 0x00f0: return "GetExplicitEntriesFromAclW";
-  case 0x00f1: return "GetFileSecurityA";
-  case 0x00f2: return "GetFileSecurityW";
-  case 0x00f3: return "GetInformationCodeAuthzLevelW";
-  case 0x00f4: return "GetInformationCodeAuthzPolicyW";
-  case 0x00f5: return "GetInheritanceSourceA";
-  case 0x00f6: return "GetInheritanceSourceW";
-  case 0x00f7: return "GetKernelObjectSecurity";
-  case 0x00f8: return "GetLengthSid";
-  case 0x00f9: return "GetLocalManagedApplicationData";
-  case 0x00fa: return "GetLocalManagedApplications";
-  case 0x00fb: return "GetManagedApplicationCategories";
-  case 0x00fc: return "GetManagedApplications";
-  case 0x00fd: return "GetMultipleTrusteeA";
-  case 0x00fe: return "GetMultipleTrusteeOperationA";
-  case 0x00ff: return "GetMultipleTrusteeOperationW";
-  case 0x0100: return "GetMultipleTrusteeW";
-  case 0x0101: return "GetNamedSecurityInfoA";
-  case 0x0102: return "GetNamedSecurityInfoExA";
-  case 0x0103: return "GetNamedSecurityInfoExW";
-  case 0x0104: return "GetNamedSecurityInfoW";
-  case 0x0105: return "GetNumberOfEventLogRecords";
-  case 0x0106: return "GetOldestEventLogRecord";
-  case 0x0107: return "GetOverlappedAccessResults";
-  case 0x0108: return "GetPrivateObjectSecurity";
-  case 0x0109: return "GetSecurityDescriptorControl";
-  case 0x010a: return "GetSecurityDescriptorDacl";
-  case 0x010b: return "GetSecurityDescriptorGroup";
-  case 0x010c: return "GetSecurityDescriptorLength";
-  case 0x010d: return "GetSecurityDescriptorOwner";
-  case 0x010e: return "GetSecurityDescriptorRMControl";
-  case 0x010f: return "GetSecurityDescriptorSacl";
-  case 0x0110: return "GetSecurityInfo";
-  case 0x0111: return "GetSecurityInfoExA";
-  case 0x0112: return "GetSecurityInfoExW";
-  case 0x0113: return "GetServiceDisplayNameA";
-  case 0x0114: return "GetServiceDisplayNameW";
-  case 0x0115: return "GetServiceKeyNameA";
-  case 0x0116: return "GetServiceKeyNameW";
-  case 0x0117: return "GetSidIdentifierAuthority";
-  case 0x0118: return "GetSidLengthRequired";
-  case 0x0119: return "GetSidSubAuthority";
-  case 0x011a: return "GetSidSubAuthorityCount";
-  case 0x011b: return "GetTokenInformation";
-  case 0x011c: return "GetTraceEnableFlags";
-  case 0x011d: return "GetTraceEnableLevel";
-  case 0x011e: return "GetTraceLoggerHandle";
-  case 0x011f: return "GetTrusteeFormA";
-  case 0x0120: return "GetTrusteeFormW";
-  case 0x0121: return "GetTrusteeNameA";
-  case 0x0122: return "GetTrusteeNameW";
-  case 0x0123: return "GetTrusteeTypeA";
-  case 0x0124: return "GetTrusteeTypeW";
-  case 0x0125: return "GetUserNameA";
-  case 0x0126: return "GetUserNameW";
-  case 0x0127: return "GetWindowsAccountDomainSid";
-  case 0x0001: return "I_ScGetCurrentGroupStateW";
-  case 0x0128: return "I_ScIsSecurityProcess";
-  case 0x0129: return "I_ScPnPGetServiceName";
-  case 0x012a: return "I_ScSendTSMessage";
-  case 0x012b: return "I_ScSetServiceBitsA";
-  case 0x012c: return "I_ScSetServiceBitsW";
-  case 0x012d: return "IdentifyCodeAuthzLevelW";
-  case 0x012e: return "ImpersonateAnonymousToken";
-  case 0x012f: return "ImpersonateLoggedOnUser";
-  case 0x0130: return "ImpersonateNamedPipeClient";
-  case 0x0131: return "ImpersonateSelf";
-  case 0x0132: return "InitializeAcl";
-  case 0x0133: return "InitializeSecurityDescriptor";
-  case 0x0134: return "InitializeSid";
-  case 0x0135: return "InitiateSystemShutdownA";
-  case 0x0136: return "InitiateSystemShutdownExA";
-  case 0x0137: return "InitiateSystemShutdownExW";
-  case 0x0138: return "InitiateSystemShutdownW";
-  case 0x0139: return "InstallApplication";
-  case 0x013a: return "IsTextUnicode";
-  case 0x013b: return "IsTokenRestricted";
-  case 0x013c: return "IsTokenUntrusted";
-  case 0x013d: return "IsValidAcl";
-  case 0x013e: return "IsValidSecurityDescriptor";
-  case 0x013f: return "IsValidSid";
-  case 0x0140: return "IsWellKnownSid";
-  case 0x0141: return "LockServiceDatabase";
-  case 0x0142: return "LogonUserA";
-  case 0x0143: return "LogonUserExA";
-  case 0x0144: return "LogonUserExW";
-  case 0x0145: return "LogonUserW";
-  case 0x0146: return "LookupAccountNameA";
-  case 0x0147: return "LookupAccountNameW";
-  case 0x0148: return "LookupAccountSidA";
-  case 0x0149: return "LookupAccountSidW";
-  case 0x014a: return "LookupPrivilegeDisplayNameA";
-  case 0x014b: return "LookupPrivilegeDisplayNameW";
-  case 0x014c: return "LookupPrivilegeNameA";
-  case 0x014d: return "LookupPrivilegeNameW";
-  case 0x014e: return "LookupPrivilegeValueA";
-  case 0x014f: return "LookupPrivilegeValueW";
-  case 0x0150: return "LookupSecurityDescriptorPartsA";
-  case 0x0151: return "LookupSecurityDescriptorPartsW";
-  case 0x0152: return "LsaAddAccountRights";
-  case 0x0153: return "LsaAddPrivilegesToAccount";
-  case 0x0154: return "LsaClearAuditLog";
-  case 0x0155: return "LsaClose";
-  case 0x0156: return "LsaCreateAccount";
-  case 0x0157: return "LsaCreateSecret";
-  case 0x0158: return "LsaCreateTrustedDomain";
-  case 0x0159: return "LsaCreateTrustedDomainEx";
-  case 0x015a: return "LsaDelete";
-  case 0x015b: return "LsaDeleteTrustedDomain";
-  case 0x015c: return "LsaEnumerateAccountRights";
-  case 0x015d: return "LsaEnumerateAccounts";
-  case 0x015e: return "LsaEnumerateAccountsWithUserRight";
-  case 0x015f: return "LsaEnumeratePrivileges";
-  case 0x0160: return "LsaEnumeratePrivilegesOfAccount";
-  case 0x0161: return "LsaEnumerateTrustedDomains";
-  case 0x0162: return "LsaEnumerateTrustedDomainsEx";
-  case 0x0163: return "LsaFreeMemory";
-  case 0x0164: return "LsaGetQuotasForAccount";
-  case 0x0165: return "LsaGetRemoteUserName";
-  case 0x0166: return "LsaGetSystemAccessAccount";
-  case 0x0167: return "LsaGetUserName";
-  case 0x0168: return "LsaICLookupNames";
-  case 0x0169: return "LsaICLookupNamesWithCreds";
-  case 0x016a: return "LsaICLookupSids";
-  case 0x016b: return "LsaICLookupSidsWithCreds";
-  case 0x016d: return "LsaLookupNames";
-  case 0x016c: return "LsaLookupNames2";
-  case 0x016e: return "LsaLookupPrivilegeDisplayName";
-  case 0x016f: return "LsaLookupPrivilegeName";
-  case 0x0170: return "LsaLookupPrivilegeValue";
-  case 0x0171: return "LsaLookupSids";
-  case 0x0172: return "LsaNtStatusToWinError";
-  case 0x0173: return "LsaOpenAccount";
-  case 0x0174: return "LsaOpenPolicy";
-  case 0x0175: return "LsaOpenPolicySce";
-  case 0x0176: return "LsaOpenSecret";
-  case 0x0177: return "LsaOpenTrustedDomain";
-  case 0x0178: return "LsaOpenTrustedDomainByName";
-  case 0x0179: return "LsaQueryDomainInformationPolicy";
-  case 0x017a: return "LsaQueryForestTrustInformation";
-  case 0x017b: return "LsaQueryInfoTrustedDomain";
-  case 0x017c: return "LsaQueryInformationPolicy";
-  case 0x017d: return "LsaQuerySecret";
-  case 0x017e: return "LsaQuerySecurityObject";
-  case 0x017f: return "LsaQueryTrustedDomainInfo";
-  case 0x0180: return "LsaQueryTrustedDomainInfoByName";
-  case 0x0181: return "LsaRemoveAccountRights";
-  case 0x0182: return "LsaRemovePrivilegesFromAccount";
-  case 0x0183: return "LsaRetrievePrivateData";
-  case 0x0184: return "LsaSetDomainInformationPolicy";
-  case 0x0185: return "LsaSetForestTrustInformation";
-  case 0x0186: return "LsaSetInformationPolicy";
-  case 0x0187: return "LsaSetInformationTrustedDomain";
-  case 0x0188: return "LsaSetQuotasForAccount";
-  case 0x0189: return "LsaSetSecret";
-  case 0x018a: return "LsaSetSecurityObject";
-  case 0x018b: return "LsaSetSystemAccessAccount";
-  case 0x018c: return "LsaSetTrustedDomainInfoByName";
-  case 0x018d: return "LsaSetTrustedDomainInformation";
-  case 0x018e: return "LsaStorePrivateData";
-  case 0x018f: return "MD4Final";
-  case 0x0190: return "MD4Init";
-  case 0x0191: return "MD4Update";
-  case 0x0192: return "MD5Final";
-  case 0x0193: return "MD5Init";
-  case 0x0194: return "MD5Update";
-  case 0x0196: return "MSChapSrvChangePassword";
-  case 0x0195: return "MSChapSrvChangePassword2";
-  case 0x0198: return "MakeAbsoluteSD";
-  case 0x0197: return "MakeAbsoluteSD2";
-  case 0x0199: return "MakeSelfRelativeSD";
-  case 0x019a: return "MapGenericMask";
-  case 0x019b: return "NotifyBootConfigStatus";
-  case 0x019c: return "NotifyChangeEventLog";
-  case 0x019d: return "ObjectCloseAuditAlarmA";
-  case 0x019e: return "ObjectCloseAuditAlarmW";
-  case 0x019f: return "ObjectDeleteAuditAlarmA";
-  case 0x01a0: return "ObjectDeleteAuditAlarmW";
-  case 0x01a1: return "ObjectOpenAuditAlarmA";
-  case 0x01a2: return "ObjectOpenAuditAlarmW";
-  case 0x01a3: return "ObjectPrivilegeAuditAlarmA";
-  case 0x01a4: return "ObjectPrivilegeAuditAlarmW";
-  case 0x01a5: return "OpenBackupEventLogA";
-  case 0x01a6: return "OpenBackupEventLogW";
-  case 0x01a7: return "OpenEncryptedFileRawA";
-  case 0x01a8: return "OpenEncryptedFileRawW";
-  case 0x01a9: return "OpenEventLogA";
-  case 0x01aa: return "OpenEventLogW";
-  case 0x01ab: return "OpenProcessToken";
-  case 0x01ac: return "OpenSCManagerA";
-  case 0x01ad: return "OpenSCManagerW";
-  case 0x01ae: return "OpenServiceA";
-  case 0x01af: return "OpenServiceW";
-  case 0x01b0: return "OpenThreadToken";
-  case 0x01b1: return "OpenTraceA";
-  case 0x01b2: return "OpenTraceW";
-  case 0x01b3: return "PrivilegeCheck";
-  case 0x01b4: return "PrivilegedServiceAuditAlarmA";
-  case 0x01b5: return "PrivilegedServiceAuditAlarmW";
-  case 0x01b6: return "ProcessIdleTasks";
-  case 0x01b7: return "ProcessTrace";
-  case 0x01b8: return "QueryAllTracesA";
-  case 0x01b9: return "QueryAllTracesW";
-  case 0x01ba: return "QueryRecoveryAgentsOnEncryptedFile";
-  case 0x01bb: return "QueryServiceConfig2A";
-  case 0x01bc: return "QueryServiceConfig2W";
-  case 0x01bd: return "QueryServiceConfigA";
-  case 0x01be: return "QueryServiceConfigW";
-  case 0x01bf: return "QueryServiceLockStatusA";
-  case 0x01c0: return "QueryServiceLockStatusW";
-  case 0x01c1: return "QueryServiceObjectSecurity";
-  case 0x01c2: return "QueryServiceStatus";
-  case 0x01c3: return "QueryServiceStatusEx";
-  case 0x01c4: return "QueryTraceA";
-  case 0x01c5: return "QueryTraceW";
-  case 0x01c6: return "QueryUsersOnEncryptedFile";
-  case 0x01c7: return "QueryWindows31FilesMigration";
-  case 0x01c8: return "ReadEncryptedFileRaw";
-  case 0x01c9: return "ReadEventLogA";
-  case 0x01ca: return "ReadEventLogW";
-  case 0x01cb: return "RegCloseKey";
-  case 0x01cc: return "RegConnectRegistryA";
-  case 0x01cd: return "RegConnectRegistryW";
-  case 0x01ce: return "RegCreateKeyA";
-  case 0x01cf: return "RegCreateKeyExA";
-  case 0x01d0: return "RegCreateKeyExW";
-  case 0x01d1: return "RegCreateKeyW";
-  case 0x01d2: return "RegDeleteKeyA";
-  case 0x01d3: return "RegDeleteKeyW";
-  case 0x01d4: return "RegDeleteValueA";
-  case 0x01d5: return "RegDeleteValueW";
-  case 0x01d6: return "RegDisablePredefinedCache";
-  case 0x01d7: return "RegEnumKeyA";
-  case 0x01d8: return "RegEnumKeyExA";
-  case 0x01d9: return "RegEnumKeyExW";
-  case 0x01da: return "RegEnumKeyW";
-  case 0x01db: return "RegEnumValueA";
-  case 0x01dc: return "RegEnumValueW";
-  case 0x01dd: return "RegFlushKey";
-  case 0x01de: return "RegGetKeySecurity";
-  case 0x01df: return "RegLoadKeyA";
-  case 0x01e0: return "RegLoadKeyW";
-  case 0x01e1: return "RegNotifyChangeKeyValue";
-  case 0x01e2: return "RegOpenCurrentUser";
-  case 0x01e3: return "RegOpenKeyA";
-  case 0x01e4: return "RegOpenKeyExA";
-  case 0x01e5: return "RegOpenKeyExW";
-  case 0x01e6: return "RegOpenKeyW";
-  case 0x01e7: return "RegOpenUserClassesRoot";
-  case 0x01e8: return "RegOverridePredefKey";
-  case 0x01e9: return "RegQueryInfoKeyA";
-  case 0x01ea: return "RegQueryInfoKeyW";
-  case 0x01eb: return "RegQueryMultipleValuesA";
-  case 0x01ec: return "RegQueryMultipleValuesW";
-  case 0x01ed: return "RegQueryValueA";
-  case 0x01ee: return "RegQueryValueExA";
-  case 0x01ef: return "RegQueryValueExW";
-  case 0x01f0: return "RegQueryValueW";
-  case 0x01f1: return "RegReplaceKeyA";
-  case 0x01f2: return "RegReplaceKeyW";
-  case 0x01f3: return "RegRestoreKeyA";
-  case 0x01f4: return "RegRestoreKeyW";
-  case 0x01f5: return "RegSaveKeyA";
-  case 0x01f6: return "RegSaveKeyExA";
-  case 0x01f7: return "RegSaveKeyExW";
-  case 0x01f8: return "RegSaveKeyW";
-  case 0x01f9: return "RegSetKeySecurity";
-  case 0x01fa: return "RegSetValueA";
-  case 0x01fb: return "RegSetValueExA";
-  case 0x01fc: return "RegSetValueExW";
-  case 0x01fd: return "RegSetValueW";
-  case 0x01fe: return "RegUnLoadKeyA";
-  case 0x01ff: return "RegUnLoadKeyW";
-  case 0x0200: return "RegisterEventSourceA";
-  case 0x0201: return "RegisterEventSourceW";
-  case 0x0202: return "RegisterIdleTask";
-  case 0x0203: return "RegisterServiceCtrlHandlerA";
-  case 0x0204: return "RegisterServiceCtrlHandlerExA";
-  case 0x0205: return "RegisterServiceCtrlHandlerExW";
-  case 0x0206: return "RegisterServiceCtrlHandlerW";
-  case 0x0207: return "RegisterTraceGuidsA";
-  case 0x0208: return "RegisterTraceGuidsW";
-  case 0x0209: return "RemoveTraceCallback";
-  case 0x020a: return "RemoveUsersFromEncryptedFile";
-  case 0x020b: return "ReportEventA";
-  case 0x020c: return "ReportEventW";
-  case 0x020d: return "RevertToSelf";
-  case 0x020e: return "SaferCloseLevel";
-  case 0x020f: return "SaferComputeTokenFromLevel";
-  case 0x0210: return "SaferCreateLevel";
-  case 0x0211: return "SaferGetLevelInformation";
-  case 0x0212: return "SaferGetPolicyInformation";
-  case 0x0213: return "SaferIdentifyLevel";
-  case 0x0214: return "SaferRecordEventLogEntry";
-  case 0x0215: return "SaferSetLevelInformation";
-  case 0x0216: return "SaferSetPolicyInformation";
-  case 0x0217: return "SaferiChangeRegistryScope";
-  case 0x0218: return "SaferiCompareTokenLevels";
-  case 0x0219: return "SaferiIsExecutableFileType";
-  case 0x021a: return "SaferiPopulateDefaultsInRegistry";
-  case 0x021b: return "SaferiRecordEventLogEntry";
-  case 0x021c: return "SaferiReplaceProcessThreadTokens";
-  case 0x021d: return "SaferiSearchMatchingHashRules";
-  case 0x021e: return "SetAclInformation";
-  case 0x021f: return "SetEntriesInAccessListA";
-  case 0x0220: return "SetEntriesInAccessListW";
-  case 0x0221: return "SetEntriesInAclA";
-  case 0x0222: return "SetEntriesInAclW";
-  case 0x0223: return "SetEntriesInAuditListA";
-  case 0x0224: return "SetEntriesInAuditListW";
-  case 0x0225: return "SetFileSecurityA";
-  case 0x0226: return "SetFileSecurityW";
-  case 0x0227: return "SetInformationCodeAuthzLevelW";
-  case 0x0228: return "SetInformationCodeAuthzPolicyW";
-  case 0x0229: return "SetKernelObjectSecurity";
-  case 0x022a: return "SetNamedSecurityInfoA";
-  case 0x022b: return "SetNamedSecurityInfoExA";
-  case 0x022c: return "SetNamedSecurityInfoExW";
-  case 0x022d: return "SetNamedSecurityInfoW";
-  case 0x022e: return "SetPrivateObjectSecurity";
-  case 0x022f: return "SetPrivateObjectSecurityEx";
-  case 0x0230: return "SetSecurityDescriptorControl";
-  case 0x0231: return "SetSecurityDescriptorDacl";
-  case 0x0232: return "SetSecurityDescriptorGroup";
-  case 0x0233: return "SetSecurityDescriptorOwner";
-  case 0x0234: return "SetSecurityDescriptorRMControl";
-  case 0x0235: return "SetSecurityDescriptorSacl";
-  case 0x0236: return "SetSecurityInfo";
-  case 0x0237: return "SetSecurityInfoExA";
-  case 0x0238: return "SetSecurityInfoExW";
-  case 0x0239: return "SetServiceBits";
-  case 0x023a: return "SetServiceObjectSecurity";
-  case 0x023b: return "SetServiceStatus";
-  case 0x023c: return "SetThreadToken";
-  case 0x023d: return "SetTokenInformation";
-  case 0x023e: return "SetTraceCallback";
-  case 0x023f: return "SetUserFileEncryptionKey";
-  case 0x0240: return "StartServiceA";
-  case 0x0241: return "StartServiceCtrlDispatcherA";
-  case 0x0242: return "StartServiceCtrlDispatcherW";
-  case 0x0243: return "StartServiceW";
-  case 0x0244: return "StartTraceA";
-  case 0x0245: return "StartTraceW";
-  case 0x0246: return "StopTraceA";
-  case 0x0247: return "StopTraceW";
-  case 0x0248: return "SynchronizeWindows31FilesAndWindowsNTRegistry";
-  case 0x0249: return "SystemFunction001";
-  case 0x024a: return "SystemFunction002";
-  case 0x024b: return "SystemFunction003";
-  case 0x024c: return "SystemFunction004";
-  case 0x024d: return "SystemFunction005";
-  case 0x024e: return "SystemFunction006";
-  case 0x024f: return "SystemFunction007";
-  case 0x0250: return "SystemFunction008";
-  case 0x0251: return "SystemFunction009";
-  case 0x0252: return "SystemFunction010";
-  case 0x0253: return "SystemFunction011";
-  case 0x0254: return "SystemFunction012";
-  case 0x0255: return "SystemFunction013";
-  case 0x0256: return "SystemFunction014";
-  case 0x0257: return "SystemFunction015";
-  case 0x0258: return "SystemFunction016";
-  case 0x0259: return "SystemFunction017";
-  case 0x025a: return "SystemFunction018";
-  case 0x025b: return "SystemFunction019";
-  case 0x025c: return "SystemFunction020";
-  case 0x025d: return "SystemFunction021";
-  case 0x025e: return "SystemFunction022";
-  case 0x025f: return "SystemFunction023";
-  case 0x0260: return "SystemFunction024";
-  case 0x0261: return "SystemFunction025";
-  case 0x0262: return "SystemFunction026";
-  case 0x0263: return "SystemFunction027";
-  case 0x0264: return "SystemFunction028";
-  case 0x0265: return "SystemFunction029";
-  case 0x0266: return "SystemFunction030";
-  case 0x0267: return "SystemFunction031";
-  case 0x0268: return "SystemFunction032";
-  case 0x0269: return "SystemFunction033";
-  case 0x026a: return "SystemFunction034";
-  case 0x026b: return "SystemFunction035";
-  case 0x026c: return "SystemFunction036";
-  case 0x026d: return "SystemFunction040";
-  case 0x026e: return "SystemFunction041";
-  case 0x026f: return "TraceEvent";
-  case 0x0270: return "TraceEventInstance";
-  case 0x0271: return "TraceMessage";
-  case 0x0272: return "TraceMessageVa";
-  case 0x0273: return "TreeResetNamedSecurityInfoA";
-  case 0x0274: return "TreeResetNamedSecurityInfoW";
-  case 0x0275: return "TrusteeAccessToObjectA";
-  case 0x0276: return "TrusteeAccessToObjectW";
-  case 0x0277: return "UninstallApplication";
-  case 0x0278: return "UnlockServiceDatabase";
-  case 0x0279: return "UnregisterIdleTask";
-  case 0x027a: return "UnregisterTraceGuids";
-  case 0x027b: return "UpdateTraceA";
-  case 0x027c: return "UpdateTraceW";
-  case 0x027d: return "WdmWmiServiceMain";
-  case 0x027e: return "WmiCloseBlock";
-  case 0x027f: return "WmiCloseTraceWithCursor";
-  case 0x0280: return "WmiConvertTimestamp";
-  case 0x0281: return "WmiDevInstToInstanceNameA";
-  case 0x0282: return "WmiDevInstToInstanceNameW";
-  case 0x0283: return "WmiEnumerateGuids";
-  case 0x0284: return "WmiExecuteMethodA";
-  case 0x0285: return "WmiExecuteMethodW";
-  case 0x0286: return "WmiFileHandleToInstanceNameA";
-  case 0x0287: return "WmiFileHandleToInstanceNameW";
-  case 0x0288: return "WmiFreeBuffer";
-  case 0x0289: return "WmiGetFirstTraceOffset";
-  case 0x028a: return "WmiGetNextEvent";
-  case 0x028b: return "WmiGetTraceHeader";
-  case 0x028c: return "WmiMofEnumerateResourcesA";
-  case 0x028d: return "WmiMofEnumerateResourcesW";
-  case 0x028e: return "WmiNotificationRegistrationA";
-  case 0x028f: return "WmiNotificationRegistrationW";
-  case 0x0290: return "WmiOpenBlock";
-  case 0x0291: return "WmiOpenTraceWithCursor";
-  case 0x0292: return "WmiParseTraceEvent";
-  case 0x0293: return "WmiQueryAllDataA";
-  case 0x0294: return "WmiQueryAllDataMultipleA";
-  case 0x0295: return "WmiQueryAllDataMultipleW";
-  case 0x0296: return "WmiQueryAllDataW";
-  case 0x0297: return "WmiQueryGuidInformation";
-  case 0x0298: return "WmiQuerySingleInstanceA";
-  case 0x0299: return "WmiQuerySingleInstanceMultipleA";
-  case 0x029a: return "WmiQuerySingleInstanceMultipleW";
-  case 0x029b: return "WmiQuerySingleInstanceW";
-  case 0x029c: return "WmiReceiveNotificationsA";
-  case 0x029d: return "WmiReceiveNotificationsW";
-  case 0x029e: return "WmiSetSingleInstanceA";
-  case 0x029f: return "WmiSetSingleInstanceW";
-  case 0x02a0: return "WmiSetSingleItemA";
-  case 0x02a1: return "WmiSetSingleItemW";
-  case 0x02a2: return "Wow64Win32ApiEntry";
-  case 0x02a3: return "WriteEncryptedFileRaw";
+  switch (i) {
+    case 0x0002: return "A_SHAFinal";
+    case 0x0003: return "A_SHAInit";
+    case 0x0004: return "A_SHAUpdate";
+    case 0x0005: return "AbortSystemShutdownA";
+    case 0x0006: return "AbortSystemShutdownW";
+    case 0x0007: return "AccessCheck";
+    case 0x0008: return "AccessCheckAndAuditAlarmA";
+    case 0x0009: return "AccessCheckAndAuditAlarmW";
+    case 0x000a: return "AccessCheckByType";
+    case 0x000b: return "AccessCheckByTypeAndAuditAlarmA";
+    case 0x000c: return "AccessCheckByTypeAndAuditAlarmW";
+    case 0x000d: return "AccessCheckByTypeResultList";
+    case 0x000e: return "AccessCheckByTypeResultListAndAuditAlarmA";
+    case 0x000f: return "AccessCheckByTypeResultListAndAuditAlarmByHandleA";
+    case 0x0010: return "AccessCheckByTypeResultListAndAuditAlarmByHandleW";
+    case 0x0011: return "AccessCheckByTypeResultListAndAuditAlarmW";
+    case 0x0012: return "AddAccessAllowedAce";
+    case 0x0013: return "AddAccessAllowedAceEx";
+    case 0x0014: return "AddAccessAllowedObjectAce";
+    case 0x0015: return "AddAccessDeniedAce";
+    case 0x0016: return "AddAccessDeniedAceEx";
+    case 0x0017: return "AddAccessDeniedObjectAce";
+    case 0x0018: return "AddAce";
+    case 0x0019: return "AddAuditAccessAce";
+    case 0x001a: return "AddAuditAccessAceEx";
+    case 0x001b: return "AddAuditAccessObjectAce";
+    case 0x001c: return "AddUsersToEncryptedFile";
+    case 0x001d: return "AdjustTokenGroups";
+    case 0x001e: return "AdjustTokenPrivileges";
+    case 0x001f: return "AllocateAndInitializeSid";
+    case 0x0020: return "AllocateLocallyUniqueId";
+    case 0x0021: return "AreAllAccessesGranted";
+    case 0x0022: return "AreAnyAccessesGranted";
+    case 0x0023: return "BackupEventLogA";
+    case 0x0024: return "BackupEventLogW";
+    case 0x0025: return "BuildExplicitAccessWithNameA";
+    case 0x0026: return "BuildExplicitAccessWithNameW";
+    case 0x0027: return "BuildImpersonateExplicitAccessWithNameA";
+    case 0x0028: return "BuildImpersonateExplicitAccessWithNameW";
+    case 0x0029: return "BuildImpersonateTrusteeA";
+    case 0x002a: return "BuildImpersonateTrusteeW";
+    case 0x002b: return "BuildSecurityDescriptorA";
+    case 0x002c: return "BuildSecurityDescriptorW";
+    case 0x002d: return "BuildTrusteeWithNameA";
+    case 0x002e: return "BuildTrusteeWithNameW";
+    case 0x002f: return "BuildTrusteeWithObjectsAndNameA";
+    case 0x0030: return "BuildTrusteeWithObjectsAndNameW";
+    case 0x0031: return "BuildTrusteeWithObjectsAndSidA";
+    case 0x0032: return "BuildTrusteeWithObjectsAndSidW";
+    case 0x0033: return "BuildTrusteeWithSidA";
+    case 0x0034: return "BuildTrusteeWithSidW";
+    case 0x0035: return "CancelOverlappedAccess";
+    case 0x0036: return "ChangeServiceConfig2A";
+    case 0x0037: return "ChangeServiceConfig2W";
+    case 0x0038: return "ChangeServiceConfigA";
+    case 0x0039: return "ChangeServiceConfigW";
+    case 0x003a: return "CheckTokenMembership";
+    case 0x003b: return "ClearEventLogA";
+    case 0x003c: return "ClearEventLogW";
+    case 0x003d: return "CloseCodeAuthzLevel";
+    case 0x003e: return "CloseEncryptedFileRaw";
+    case 0x003f: return "CloseEventLog";
+    case 0x0040: return "CloseServiceHandle";
+    case 0x0041: return "CloseTrace";
+    case 0x0042: return "CommandLineFromMsiDescriptor";
+    case 0x0043: return "ComputeAccessTokenFromCodeAuthzLevel";
+    case 0x0044: return "ControlService";
+    case 0x0045: return "ControlTraceA";
+    case 0x0046: return "ControlTraceW";
+    case 0x0047: return "ConvertAccessToSecurityDescriptorA";
+    case 0x0048: return "ConvertAccessToSecurityDescriptorW";
+    case 0x0049: return "ConvertSDToStringSDRootDomainA";
+    case 0x004a: return "ConvertSDToStringSDRootDomainW";
+    case 0x004b: return "ConvertSecurityDescriptorToAccessA";
+    case 0x004c: return "ConvertSecurityDescriptorToAccessNamedA";
+    case 0x004d: return "ConvertSecurityDescriptorToAccessNamedW";
+    case 0x004e: return "ConvertSecurityDescriptorToAccessW";
+    case 0x004f: return "ConvertSecurityDescriptorToStringSecurityDescriptorA";
+    case 0x0050: return "ConvertSecurityDescriptorToStringSecurityDescriptorW";
+    case 0x0051: return "ConvertSidToStringSidA";
+    case 0x0052: return "ConvertSidToStringSidW";
+    case 0x0053: return "ConvertStringSDToSDDomainA";
+    case 0x0054: return "ConvertStringSDToSDDomainW";
+    case 0x0055: return "ConvertStringSDToSDRootDomainA";
+    case 0x0056: return "ConvertStringSDToSDRootDomainW";
+    case 0x0057: return "ConvertStringSecurityDescriptorToSecurityDescriptorA";
+    case 0x0058: return "ConvertStringSecurityDescriptorToSecurityDescriptorW";
+    case 0x0059: return "ConvertStringSidToSidA";
+    case 0x005a: return "ConvertStringSidToSidW";
+    case 0x005b: return "ConvertToAutoInheritPrivateObjectSecurity";
+    case 0x005c: return "CopySid";
+    case 0x005d: return "CreateCodeAuthzLevel";
+    case 0x005e: return "CreatePrivateObjectSecurity";
+    case 0x005f: return "CreatePrivateObjectSecurityEx";
+    case 0x0060: return "CreatePrivateObjectSecurityWithMultipleInheritance";
+    case 0x0061: return "CreateProcessAsUserA";
+    case 0x0062: return "CreateProcessAsUserSecure";
+    case 0x0063: return "CreateProcessAsUserW";
+    case 0x0064: return "CreateProcessWithLogonW";
+    case 0x0065: return "CreateRestrictedToken";
+    case 0x0066: return "CreateServiceA";
+    case 0x0067: return "CreateServiceW";
+    case 0x0068: return "CreateTraceInstanceId";
+    case 0x0069: return "CreateWellKnownSid";
+    case 0x006a: return "CredDeleteA";
+    case 0x006b: return "CredDeleteW";
+    case 0x006c: return "CredEnumerateA";
+    case 0x006d: return "CredEnumerateW";
+    case 0x006e: return "CredFree";
+    case 0x006f: return "CredGetSessionTypes";
+    case 0x0070: return "CredGetTargetInfoA";
+    case 0x0071: return "CredGetTargetInfoW";
+    case 0x0072: return "CredIsMarshaledCredentialA";
+    case 0x0073: return "CredIsMarshaledCredentialW";
+    case 0x0074: return "CredMarshalCredentialA";
+    case 0x0075: return "CredMarshalCredentialW";
+    case 0x0076: return "CredProfileLoaded";
+    case 0x0077: return "CredReadA";
+    case 0x0078: return "CredReadDomainCredentialsA";
+    case 0x0079: return "CredReadDomainCredentialsW";
+    case 0x007a: return "CredReadW";
+    case 0x007b: return "CredRenameA";
+    case 0x007c: return "CredRenameW";
+    case 0x007d: return "CredUnmarshalCredentialA";
+    case 0x007e: return "CredUnmarshalCredentialW";
+    case 0x007f: return "CredWriteA";
+    case 0x0080: return "CredWriteDomainCredentialsA";
+    case 0x0081: return "CredWriteDomainCredentialsW";
+    case 0x0082: return "CredWriteW";
+    case 0x0083: return "CredpConvertCredential";
+    case 0x0084: return "CredpConvertTargetInfo";
+    case 0x0085: return "CredpDecodeCredential";
+    case 0x0086: return "CredpEncodeCredential";
+    case 0x0087: return "CryptAcquireContextA";
+    case 0x0088: return "CryptAcquireContextW";
+    case 0x0089: return "CryptContextAddRef";
+    case 0x008a: return "CryptCreateHash";
+    case 0x008b: return "CryptDecrypt";
+    case 0x008c: return "CryptDeriveKey";
+    case 0x008d: return "CryptDestroyHash";
+    case 0x008e: return "CryptDestroyKey";
+    case 0x008f: return "CryptDuplicateHash";
+    case 0x0090: return "CryptDuplicateKey";
+    case 0x0091: return "CryptEncrypt";
+    case 0x0092: return "CryptEnumProviderTypesA";
+    case 0x0093: return "CryptEnumProviderTypesW";
+    case 0x0094: return "CryptEnumProvidersA";
+    case 0x0095: return "CryptEnumProvidersW";
+    case 0x0096: return "CryptExportKey";
+    case 0x0097: return "CryptGenKey";
+    case 0x0098: return "CryptGenRandom";
+    case 0x0099: return "CryptGetDefaultProviderA";
+    case 0x009a: return "CryptGetDefaultProviderW";
+    case 0x009b: return "CryptGetHashParam";
+    case 0x009c: return "CryptGetKeyParam";
+    case 0x009d: return "CryptGetProvParam";
+    case 0x009e: return "CryptGetUserKey";
+    case 0x009f: return "CryptHashData";
+    case 0x00a0: return "CryptHashSessionKey";
+    case 0x00a1: return "CryptImportKey";
+    case 0x00a2: return "CryptReleaseContext";
+    case 0x00a3: return "CryptSetHashParam";
+    case 0x00a4: return "CryptSetKeyParam";
+    case 0x00a5: return "CryptSetProvParam";
+    case 0x00a6: return "CryptSetProviderA";
+    case 0x00a7: return "CryptSetProviderExA";
+    case 0x00a8: return "CryptSetProviderExW";
+    case 0x00a9: return "CryptSetProviderW";
+    case 0x00aa: return "CryptSignHashA";
+    case 0x00ab: return "CryptSignHashW";
+    case 0x00ac: return "CryptVerifySignatureA";
+    case 0x00ad: return "CryptVerifySignatureW";
+    case 0x00ae: return "DecryptFileA";
+    case 0x00af: return "DecryptFileW";
+    case 0x00b0: return "DeleteAce";
+    case 0x00b1: return "DeleteService";
+    case 0x00b2: return "DeregisterEventSource";
+    case 0x00b3: return "DestroyPrivateObjectSecurity";
+    case 0x00b4: return "DuplicateEncryptionInfoFile";
+    case 0x00b5: return "DuplicateToken";
+    case 0x00b6: return "DuplicateTokenEx";
+    case 0x00b7: return "ElfBackupEventLogFileA";
+    case 0x00b8: return "ElfBackupEventLogFileW";
+    case 0x00b9: return "ElfChangeNotify";
+    case 0x00ba: return "ElfClearEventLogFileA";
+    case 0x00bb: return "ElfClearEventLogFileW";
+    case 0x00bc: return "ElfCloseEventLog";
+    case 0x00bd: return "ElfDeregisterEventSource";
+    case 0x00be: return "ElfFlushEventLog";
+    case 0x00bf: return "ElfNumberOfRecords";
+    case 0x00c0: return "ElfOldestRecord";
+    case 0x00c1: return "ElfOpenBackupEventLogA";
+    case 0x00c2: return "ElfOpenBackupEventLogW";
+    case 0x00c3: return "ElfOpenEventLogA";
+    case 0x00c4: return "ElfOpenEventLogW";
+    case 0x00c5: return "ElfReadEventLogA";
+    case 0x00c6: return "ElfReadEventLogW";
+    case 0x00c7: return "ElfRegisterEventSourceA";
+    case 0x00c8: return "ElfRegisterEventSourceW";
+    case 0x00c9: return "ElfReportEventA";
+    case 0x00ca: return "ElfReportEventW";
+    case 0x00cb: return "EnableTrace";
+    case 0x00cc: return "EncryptFileA";
+    case 0x00cd: return "EncryptFileW";
+    case 0x00ce: return "EncryptedFileKeyInfo";
+    case 0x00cf: return "EncryptionDisable";
+    case 0x00d0: return "EnumDependentServicesA";
+    case 0x00d1: return "EnumDependentServicesW";
+    case 0x00d2: return "EnumServiceGroupW";
+    case 0x00d3: return "EnumServicesStatusA";
+    case 0x00d4: return "EnumServicesStatusExA";
+    case 0x00d5: return "EnumServicesStatusExW";
+    case 0x00d6: return "EnumServicesStatusW";
+    case 0x00d7: return "EnumerateTraceGuids";
+    case 0x00d8: return "EqualDomainSid";
+    case 0x00d9: return "EqualPrefixSid";
+    case 0x00da: return "EqualSid";
+    case 0x00db: return "FileEncryptionStatusA";
+    case 0x00dc: return "FileEncryptionStatusW";
+    case 0x00dd: return "FindFirstFreeAce";
+    case 0x00de: return "FlushTraceA";
+    case 0x00df: return "FlushTraceW";
+    case 0x00e0: return "FreeEncryptedFileKeyInfo";
+    case 0x00e1: return "FreeEncryptionCertificateHashList";
+    case 0x00e2: return "FreeInheritedFromArray";
+    case 0x00e3: return "FreeSid";
+    case 0x00e4: return "GetAccessPermissionsForObjectA";
+    case 0x00e5: return "GetAccessPermissionsForObjectW";
+    case 0x00e6: return "GetAce";
+    case 0x00e7: return "GetAclInformation";
+    case 0x00e8: return "GetAuditedPermissionsFromAclA";
+    case 0x00e9: return "GetAuditedPermissionsFromAclW";
+    case 0x00ea: return "GetCurrentHwProfileA";
+    case 0x00eb: return "GetCurrentHwProfileW";
+    case 0x00ec: return "GetEffectiveRightsFromAclA";
+    case 0x00ed: return "GetEffectiveRightsFromAclW";
+    case 0x00ee: return "GetEventLogInformation";
+    case 0x00ef: return "GetExplicitEntriesFromAclA";
+    case 0x00f0: return "GetExplicitEntriesFromAclW";
+    case 0x00f1: return "GetFileSecurityA";
+    case 0x00f2: return "GetFileSecurityW";
+    case 0x00f3: return "GetInformationCodeAuthzLevelW";
+    case 0x00f4: return "GetInformationCodeAuthzPolicyW";
+    case 0x00f5: return "GetInheritanceSourceA";
+    case 0x00f6: return "GetInheritanceSourceW";
+    case 0x00f7: return "GetKernelObjectSecurity";
+    case 0x00f8: return "GetLengthSid";
+    case 0x00f9: return "GetLocalManagedApplicationData";
+    case 0x00fa: return "GetLocalManagedApplications";
+    case 0x00fb: return "GetManagedApplicationCategories";
+    case 0x00fc: return "GetManagedApplications";
+    case 0x00fd: return "GetMultipleTrusteeA";
+    case 0x00fe: return "GetMultipleTrusteeOperationA";
+    case 0x00ff: return "GetMultipleTrusteeOperationW";
+    case 0x0100: return "GetMultipleTrusteeW";
+    case 0x0101: return "GetNamedSecurityInfoA";
+    case 0x0102: return "GetNamedSecurityInfoExA";
+    case 0x0103: return "GetNamedSecurityInfoExW";
+    case 0x0104: return "GetNamedSecurityInfoW";
+    case 0x0105: return "GetNumberOfEventLogRecords";
+    case 0x0106: return "GetOldestEventLogRecord";
+    case 0x0107: return "GetOverlappedAccessResults";
+    case 0x0108: return "GetPrivateObjectSecurity";
+    case 0x0109: return "GetSecurityDescriptorControl";
+    case 0x010a: return "GetSecurityDescriptorDacl";
+    case 0x010b: return "GetSecurityDescriptorGroup";
+    case 0x010c: return "GetSecurityDescriptorLength";
+    case 0x010d: return "GetSecurityDescriptorOwner";
+    case 0x010e: return "GetSecurityDescriptorRMControl";
+    case 0x010f: return "GetSecurityDescriptorSacl";
+    case 0x0110: return "GetSecurityInfo";
+    case 0x0111: return "GetSecurityInfoExA";
+    case 0x0112: return "GetSecurityInfoExW";
+    case 0x0113: return "GetServiceDisplayNameA";
+    case 0x0114: return "GetServiceDisplayNameW";
+    case 0x0115: return "GetServiceKeyNameA";
+    case 0x0116: return "GetServiceKeyNameW";
+    case 0x0117: return "GetSidIdentifierAuthority";
+    case 0x0118: return "GetSidLengthRequired";
+    case 0x0119: return "GetSidSubAuthority";
+    case 0x011a: return "GetSidSubAuthorityCount";
+    case 0x011b: return "GetTokenInformation";
+    case 0x011c: return "GetTraceEnableFlags";
+    case 0x011d: return "GetTraceEnableLevel";
+    case 0x011e: return "GetTraceLoggerHandle";
+    case 0x011f: return "GetTrusteeFormA";
+    case 0x0120: return "GetTrusteeFormW";
+    case 0x0121: return "GetTrusteeNameA";
+    case 0x0122: return "GetTrusteeNameW";
+    case 0x0123: return "GetTrusteeTypeA";
+    case 0x0124: return "GetTrusteeTypeW";
+    case 0x0125: return "GetUserNameA";
+    case 0x0126: return "GetUserNameW";
+    case 0x0127: return "GetWindowsAccountDomainSid";
+    case 0x0001: return "I_ScGetCurrentGroupStateW";
+    case 0x0128: return "I_ScIsSecurityProcess";
+    case 0x0129: return "I_ScPnPGetServiceName";
+    case 0x012a: return "I_ScSendTSMessage";
+    case 0x012b: return "I_ScSetServiceBitsA";
+    case 0x012c: return "I_ScSetServiceBitsW";
+    case 0x012d: return "IdentifyCodeAuthzLevelW";
+    case 0x012e: return "ImpersonateAnonymousToken";
+    case 0x012f: return "ImpersonateLoggedOnUser";
+    case 0x0130: return "ImpersonateNamedPipeClient";
+    case 0x0131: return "ImpersonateSelf";
+    case 0x0132: return "InitializeAcl";
+    case 0x0133: return "InitializeSecurityDescriptor";
+    case 0x0134: return "InitializeSid";
+    case 0x0135: return "InitiateSystemShutdownA";
+    case 0x0136: return "InitiateSystemShutdownExA";
+    case 0x0137: return "InitiateSystemShutdownExW";
+    case 0x0138: return "InitiateSystemShutdownW";
+    case 0x0139: return "InstallApplication";
+    case 0x013a: return "IsTextUnicode";
+    case 0x013b: return "IsTokenRestricted";
+    case 0x013c: return "IsTokenUntrusted";
+    case 0x013d: return "IsValidAcl";
+    case 0x013e: return "IsValidSecurityDescriptor";
+    case 0x013f: return "IsValidSid";
+    case 0x0140: return "IsWellKnownSid";
+    case 0x0141: return "LockServiceDatabase";
+    case 0x0142: return "LogonUserA";
+    case 0x0143: return "LogonUserExA";
+    case 0x0144: return "LogonUserExW";
+    case 0x0145: return "LogonUserW";
+    case 0x0146: return "LookupAccountNameA";
+    case 0x0147: return "LookupAccountNameW";
+    case 0x0148: return "LookupAccountSidA";
+    case 0x0149: return "LookupAccountSidW";
+    case 0x014a: return "LookupPrivilegeDisplayNameA";
+    case 0x014b: return "LookupPrivilegeDisplayNameW";
+    case 0x014c: return "LookupPrivilegeNameA";
+    case 0x014d: return "LookupPrivilegeNameW";
+    case 0x014e: return "LookupPrivilegeValueA";
+    case 0x014f: return "LookupPrivilegeValueW";
+    case 0x0150: return "LookupSecurityDescriptorPartsA";
+    case 0x0151: return "LookupSecurityDescriptorPartsW";
+    case 0x0152: return "LsaAddAccountRights";
+    case 0x0153: return "LsaAddPrivilegesToAccount";
+    case 0x0154: return "LsaClearAuditLog";
+    case 0x0155: return "LsaClose";
+    case 0x0156: return "LsaCreateAccount";
+    case 0x0157: return "LsaCreateSecret";
+    case 0x0158: return "LsaCreateTrustedDomain";
+    case 0x0159: return "LsaCreateTrustedDomainEx";
+    case 0x015a: return "LsaDelete";
+    case 0x015b: return "LsaDeleteTrustedDomain";
+    case 0x015c: return "LsaEnumerateAccountRights";
+    case 0x015d: return "LsaEnumerateAccounts";
+    case 0x015e: return "LsaEnumerateAccountsWithUserRight";
+    case 0x015f: return "LsaEnumeratePrivileges";
+    case 0x0160: return "LsaEnumeratePrivilegesOfAccount";
+    case 0x0161: return "LsaEnumerateTrustedDomains";
+    case 0x0162: return "LsaEnumerateTrustedDomainsEx";
+    case 0x0163: return "LsaFreeMemory";
+    case 0x0164: return "LsaGetQuotasForAccount";
+    case 0x0165: return "LsaGetRemoteUserName";
+    case 0x0166: return "LsaGetSystemAccessAccount";
+    case 0x0167: return "LsaGetUserName";
+    case 0x0168: return "LsaICLookupNames";
+    case 0x0169: return "LsaICLookupNamesWithCreds";
+    case 0x016a: return "LsaICLookupSids";
+    case 0x016b: return "LsaICLookupSidsWithCreds";
+    case 0x016d: return "LsaLookupNames";
+    case 0x016c: return "LsaLookupNames2";
+    case 0x016e: return "LsaLookupPrivilegeDisplayName";
+    case 0x016f: return "LsaLookupPrivilegeName";
+    case 0x0170: return "LsaLookupPrivilegeValue";
+    case 0x0171: return "LsaLookupSids";
+    case 0x0172: return "LsaNtStatusToWinError";
+    case 0x0173: return "LsaOpenAccount";
+    case 0x0174: return "LsaOpenPolicy";
+    case 0x0175: return "LsaOpenPolicySce";
+    case 0x0176: return "LsaOpenSecret";
+    case 0x0177: return "LsaOpenTrustedDomain";
+    case 0x0178: return "LsaOpenTrustedDomainByName";
+    case 0x0179: return "LsaQueryDomainInformationPolicy";
+    case 0x017a: return "LsaQueryForestTrustInformation";
+    case 0x017b: return "LsaQueryInfoTrustedDomain";
+    case 0x017c: return "LsaQueryInformationPolicy";
+    case 0x017d: return "LsaQuerySecret";
+    case 0x017e: return "LsaQuerySecurityObject";
+    case 0x017f: return "LsaQueryTrustedDomainInfo";
+    case 0x0180: return "LsaQueryTrustedDomainInfoByName";
+    case 0x0181: return "LsaRemoveAccountRights";
+    case 0x0182: return "LsaRemovePrivilegesFromAccount";
+    case 0x0183: return "LsaRetrievePrivateData";
+    case 0x0184: return "LsaSetDomainInformationPolicy";
+    case 0x0185: return "LsaSetForestTrustInformation";
+    case 0x0186: return "LsaSetInformationPolicy";
+    case 0x0187: return "LsaSetInformationTrustedDomain";
+    case 0x0188: return "LsaSetQuotasForAccount";
+    case 0x0189: return "LsaSetSecret";
+    case 0x018a: return "LsaSetSecurityObject";
+    case 0x018b: return "LsaSetSystemAccessAccount";
+    case 0x018c: return "LsaSetTrustedDomainInfoByName";
+    case 0x018d: return "LsaSetTrustedDomainInformation";
+    case 0x018e: return "LsaStorePrivateData";
+    case 0x018f: return "MD4Final";
+    case 0x0190: return "MD4Init";
+    case 0x0191: return "MD4Update";
+    case 0x0192: return "MD5Final";
+    case 0x0193: return "MD5Init";
+    case 0x0194: return "MD5Update";
+    case 0x0196: return "MSChapSrvChangePassword";
+    case 0x0195: return "MSChapSrvChangePassword2";
+    case 0x0198: return "MakeAbsoluteSD";
+    case 0x0197: return "MakeAbsoluteSD2";
+    case 0x0199: return "MakeSelfRelativeSD";
+    case 0x019a: return "MapGenericMask";
+    case 0x019b: return "NotifyBootConfigStatus";
+    case 0x019c: return "NotifyChangeEventLog";
+    case 0x019d: return "ObjectCloseAuditAlarmA";
+    case 0x019e: return "ObjectCloseAuditAlarmW";
+    case 0x019f: return "ObjectDeleteAuditAlarmA";
+    case 0x01a0: return "ObjectDeleteAuditAlarmW";
+    case 0x01a1: return "ObjectOpenAuditAlarmA";
+    case 0x01a2: return "ObjectOpenAuditAlarmW";
+    case 0x01a3: return "ObjectPrivilegeAuditAlarmA";
+    case 0x01a4: return "ObjectPrivilegeAuditAlarmW";
+    case 0x01a5: return "OpenBackupEventLogA";
+    case 0x01a6: return "OpenBackupEventLogW";
+    case 0x01a7: return "OpenEncryptedFileRawA";
+    case 0x01a8: return "OpenEncryptedFileRawW";
+    case 0x01a9: return "OpenEventLogA";
+    case 0x01aa: return "OpenEventLogW";
+    case 0x01ab: return "OpenProcessToken";
+    case 0x01ac: return "OpenSCManagerA";
+    case 0x01ad: return "OpenSCManagerW";
+    case 0x01ae: return "OpenServiceA";
+    case 0x01af: return "OpenServiceW";
+    case 0x01b0: return "OpenThreadToken";
+    case 0x01b1: return "OpenTraceA";
+    case 0x01b2: return "OpenTraceW";
+    case 0x01b3: return "PrivilegeCheck";
+    case 0x01b4: return "PrivilegedServiceAuditAlarmA";
+    case 0x01b5: return "PrivilegedServiceAuditAlarmW";
+    case 0x01b6: return "ProcessIdleTasks";
+    case 0x01b7: return "ProcessTrace";
+    case 0x01b8: return "QueryAllTracesA";
+    case 0x01b9: return "QueryAllTracesW";
+    case 0x01ba: return "QueryRecoveryAgentsOnEncryptedFile";
+    case 0x01bb: return "QueryServiceConfig2A";
+    case 0x01bc: return "QueryServiceConfig2W";
+    case 0x01bd: return "QueryServiceConfigA";
+    case 0x01be: return "QueryServiceConfigW";
+    case 0x01bf: return "QueryServiceLockStatusA";
+    case 0x01c0: return "QueryServiceLockStatusW";
+    case 0x01c1: return "QueryServiceObjectSecurity";
+    case 0x01c2: return "QueryServiceStatus";
+    case 0x01c3: return "QueryServiceStatusEx";
+    case 0x01c4: return "QueryTraceA";
+    case 0x01c5: return "QueryTraceW";
+    case 0x01c6: return "QueryUsersOnEncryptedFile";
+    case 0x01c7: return "QueryWindows31FilesMigration";
+    case 0x01c8: return "ReadEncryptedFileRaw";
+    case 0x01c9: return "ReadEventLogA";
+    case 0x01ca: return "ReadEventLogW";
+    case 0x01cb: return "RegCloseKey";
+    case 0x01cc: return "RegConnectRegistryA";
+    case 0x01cd: return "RegConnectRegistryW";
+    case 0x01ce: return "RegCreateKeyA";
+    case 0x01cf: return "RegCreateKeyExA";
+    case 0x01d0: return "RegCreateKeyExW";
+    case 0x01d1: return "RegCreateKeyW";
+    case 0x01d2: return "RegDeleteKeyA";
+    case 0x01d3: return "RegDeleteKeyW";
+    case 0x01d4: return "RegDeleteValueA";
+    case 0x01d5: return "RegDeleteValueW";
+    case 0x01d6: return "RegDisablePredefinedCache";
+    case 0x01d7: return "RegEnumKeyA";
+    case 0x01d8: return "RegEnumKeyExA";
+    case 0x01d9: return "RegEnumKeyExW";
+    case 0x01da: return "RegEnumKeyW";
+    case 0x01db: return "RegEnumValueA";
+    case 0x01dc: return "RegEnumValueW";
+    case 0x01dd: return "RegFlushKey";
+    case 0x01de: return "RegGetKeySecurity";
+    case 0x01df: return "RegLoadKeyA";
+    case 0x01e0: return "RegLoadKeyW";
+    case 0x01e1: return "RegNotifyChangeKeyValue";
+    case 0x01e2: return "RegOpenCurrentUser";
+    case 0x01e3: return "RegOpenKeyA";
+    case 0x01e4: return "RegOpenKeyExA";
+    case 0x01e5: return "RegOpenKeyExW";
+    case 0x01e6: return "RegOpenKeyW";
+    case 0x01e7: return "RegOpenUserClassesRoot";
+    case 0x01e8: return "RegOverridePredefKey";
+    case 0x01e9: return "RegQueryInfoKeyA";
+    case 0x01ea: return "RegQueryInfoKeyW";
+    case 0x01eb: return "RegQueryMultipleValuesA";
+    case 0x01ec: return "RegQueryMultipleValuesW";
+    case 0x01ed: return "RegQueryValueA";
+    case 0x01ee: return "RegQueryValueExA";
+    case 0x01ef: return "RegQueryValueExW";
+    case 0x01f0: return "RegQueryValueW";
+    case 0x01f1: return "RegReplaceKeyA";
+    case 0x01f2: return "RegReplaceKeyW";
+    case 0x01f3: return "RegRestoreKeyA";
+    case 0x01f4: return "RegRestoreKeyW";
+    case 0x01f5: return "RegSaveKeyA";
+    case 0x01f6: return "RegSaveKeyExA";
+    case 0x01f7: return "RegSaveKeyExW";
+    case 0x01f8: return "RegSaveKeyW";
+    case 0x01f9: return "RegSetKeySecurity";
+    case 0x01fa: return "RegSetValueA";
+    case 0x01fb: return "RegSetValueExA";
+    case 0x01fc: return "RegSetValueExW";
+    case 0x01fd: return "RegSetValueW";
+    case 0x01fe: return "RegUnLoadKeyA";
+    case 0x01ff: return "RegUnLoadKeyW";
+    case 0x0200: return "RegisterEventSourceA";
+    case 0x0201: return "RegisterEventSourceW";
+    case 0x0202: return "RegisterIdleTask";
+    case 0x0203: return "RegisterServiceCtrlHandlerA";
+    case 0x0204: return "RegisterServiceCtrlHandlerExA";
+    case 0x0205: return "RegisterServiceCtrlHandlerExW";
+    case 0x0206: return "RegisterServiceCtrlHandlerW";
+    case 0x0207: return "RegisterTraceGuidsA";
+    case 0x0208: return "RegisterTraceGuidsW";
+    case 0x0209: return "RemoveTraceCallback";
+    case 0x020a: return "RemoveUsersFromEncryptedFile";
+    case 0x020b: return "ReportEventA";
+    case 0x020c: return "ReportEventW";
+    case 0x020d: return "RevertToSelf";
+    case 0x020e: return "SaferCloseLevel";
+    case 0x020f: return "SaferComputeTokenFromLevel";
+    case 0x0210: return "SaferCreateLevel";
+    case 0x0211: return "SaferGetLevelInformation";
+    case 0x0212: return "SaferGetPolicyInformation";
+    case 0x0213: return "SaferIdentifyLevel";
+    case 0x0214: return "SaferRecordEventLogEntry";
+    case 0x0215: return "SaferSetLevelInformation";
+    case 0x0216: return "SaferSetPolicyInformation";
+    case 0x0217: return "SaferiChangeRegistryScope";
+    case 0x0218: return "SaferiCompareTokenLevels";
+    case 0x0219: return "SaferiIsExecutableFileType";
+    case 0x021a: return "SaferiPopulateDefaultsInRegistry";
+    case 0x021b: return "SaferiRecordEventLogEntry";
+    case 0x021c: return "SaferiReplaceProcessThreadTokens";
+    case 0x021d: return "SaferiSearchMatchingHashRules";
+    case 0x021e: return "SetAclInformation";
+    case 0x021f: return "SetEntriesInAccessListA";
+    case 0x0220: return "SetEntriesInAccessListW";
+    case 0x0221: return "SetEntriesInAclA";
+    case 0x0222: return "SetEntriesInAclW";
+    case 0x0223: return "SetEntriesInAuditListA";
+    case 0x0224: return "SetEntriesInAuditListW";
+    case 0x0225: return "SetFileSecurityA";
+    case 0x0226: return "SetFileSecurityW";
+    case 0x0227: return "SetInformationCodeAuthzLevelW";
+    case 0x0228: return "SetInformationCodeAuthzPolicyW";
+    case 0x0229: return "SetKernelObjectSecurity";
+    case 0x022a: return "SetNamedSecurityInfoA";
+    case 0x022b: return "SetNamedSecurityInfoExA";
+    case 0x022c: return "SetNamedSecurityInfoExW";
+    case 0x022d: return "SetNamedSecurityInfoW";
+    case 0x022e: return "SetPrivateObjectSecurity";
+    case 0x022f: return "SetPrivateObjectSecurityEx";
+    case 0x0230: return "SetSecurityDescriptorControl";
+    case 0x0231: return "SetSecurityDescriptorDacl";
+    case 0x0232: return "SetSecurityDescriptorGroup";
+    case 0x0233: return "SetSecurityDescriptorOwner";
+    case 0x0234: return "SetSecurityDescriptorRMControl";
+    case 0x0235: return "SetSecurityDescriptorSacl";
+    case 0x0236: return "SetSecurityInfo";
+    case 0x0237: return "SetSecurityInfoExA";
+    case 0x0238: return "SetSecurityInfoExW";
+    case 0x0239: return "SetServiceBits";
+    case 0x023a: return "SetServiceObjectSecurity";
+    case 0x023b: return "SetServiceStatus";
+    case 0x023c: return "SetThreadToken";
+    case 0x023d: return "SetTokenInformation";
+    case 0x023e: return "SetTraceCallback";
+    case 0x023f: return "SetUserFileEncryptionKey";
+    case 0x0240: return "StartServiceA";
+    case 0x0241: return "StartServiceCtrlDispatcherA";
+    case 0x0242: return "StartServiceCtrlDispatcherW";
+    case 0x0243: return "StartServiceW";
+    case 0x0244: return "StartTraceA";
+    case 0x0245: return "StartTraceW";
+    case 0x0246: return "StopTraceA";
+    case 0x0247: return "StopTraceW";
+    case 0x0248: return "SynchronizeWindows31FilesAndWindowsNTRegistry";
+    case 0x0249: return "SystemFunction001";
+    case 0x024a: return "SystemFunction002";
+    case 0x024b: return "SystemFunction003";
+    case 0x024c: return "SystemFunction004";
+    case 0x024d: return "SystemFunction005";
+    case 0x024e: return "SystemFunction006";
+    case 0x024f: return "SystemFunction007";
+    case 0x0250: return "SystemFunction008";
+    case 0x0251: return "SystemFunction009";
+    case 0x0252: return "SystemFunction010";
+    case 0x0253: return "SystemFunction011";
+    case 0x0254: return "SystemFunction012";
+    case 0x0255: return "SystemFunction013";
+    case 0x0256: return "SystemFunction014";
+    case 0x0257: return "SystemFunction015";
+    case 0x0258: return "SystemFunction016";
+    case 0x0259: return "SystemFunction017";
+    case 0x025a: return "SystemFunction018";
+    case 0x025b: return "SystemFunction019";
+    case 0x025c: return "SystemFunction020";
+    case 0x025d: return "SystemFunction021";
+    case 0x025e: return "SystemFunction022";
+    case 0x025f: return "SystemFunction023";
+    case 0x0260: return "SystemFunction024";
+    case 0x0261: return "SystemFunction025";
+    case 0x0262: return "SystemFunction026";
+    case 0x0263: return "SystemFunction027";
+    case 0x0264: return "SystemFunction028";
+    case 0x0265: return "SystemFunction029";
+    case 0x0266: return "SystemFunction030";
+    case 0x0267: return "SystemFunction031";
+    case 0x0268: return "SystemFunction032";
+    case 0x0269: return "SystemFunction033";
+    case 0x026a: return "SystemFunction034";
+    case 0x026b: return "SystemFunction035";
+    case 0x026c: return "SystemFunction036";
+    case 0x026d: return "SystemFunction040";
+    case 0x026e: return "SystemFunction041";
+    case 0x026f: return "TraceEvent";
+    case 0x0270: return "TraceEventInstance";
+    case 0x0271: return "TraceMessage";
+    case 0x0272: return "TraceMessageVa";
+    case 0x0273: return "TreeResetNamedSecurityInfoA";
+    case 0x0274: return "TreeResetNamedSecurityInfoW";
+    case 0x0275: return "TrusteeAccessToObjectA";
+    case 0x0276: return "TrusteeAccessToObjectW";
+    case 0x0277: return "UninstallApplication";
+    case 0x0278: return "UnlockServiceDatabase";
+    case 0x0279: return "UnregisterIdleTask";
+    case 0x027a: return "UnregisterTraceGuids";
+    case 0x027b: return "UpdateTraceA";
+    case 0x027c: return "UpdateTraceW";
+    case 0x027d: return "WdmWmiServiceMain";
+    case 0x027e: return "WmiCloseBlock";
+    case 0x027f: return "WmiCloseTraceWithCursor";
+    case 0x0280: return "WmiConvertTimestamp";
+    case 0x0281: return "WmiDevInstToInstanceNameA";
+    case 0x0282: return "WmiDevInstToInstanceNameW";
+    case 0x0283: return "WmiEnumerateGuids";
+    case 0x0284: return "WmiExecuteMethodA";
+    case 0x0285: return "WmiExecuteMethodW";
+    case 0x0286: return "WmiFileHandleToInstanceNameA";
+    case 0x0287: return "WmiFileHandleToInstanceNameW";
+    case 0x0288: return "WmiFreeBuffer";
+    case 0x0289: return "WmiGetFirstTraceOffset";
+    case 0x028a: return "WmiGetNextEvent";
+    case 0x028b: return "WmiGetTraceHeader";
+    case 0x028c: return "WmiMofEnumerateResourcesA";
+    case 0x028d: return "WmiMofEnumerateResourcesW";
+    case 0x028e: return "WmiNotificationRegistrationA";
+    case 0x028f: return "WmiNotificationRegistrationW";
+    case 0x0290: return "WmiOpenBlock";
+    case 0x0291: return "WmiOpenTraceWithCursor";
+    case 0x0292: return "WmiParseTraceEvent";
+    case 0x0293: return "WmiQueryAllDataA";
+    case 0x0294: return "WmiQueryAllDataMultipleA";
+    case 0x0295: return "WmiQueryAllDataMultipleW";
+    case 0x0296: return "WmiQueryAllDataW";
+    case 0x0297: return "WmiQueryGuidInformation";
+    case 0x0298: return "WmiQuerySingleInstanceA";
+    case 0x0299: return "WmiQuerySingleInstanceMultipleA";
+    case 0x029a: return "WmiQuerySingleInstanceMultipleW";
+    case 0x029b: return "WmiQuerySingleInstanceW";
+    case 0x029c: return "WmiReceiveNotificationsA";
+    case 0x029d: return "WmiReceiveNotificationsW";
+    case 0x029e: return "WmiSetSingleInstanceA";
+    case 0x029f: return "WmiSetSingleInstanceW";
+    case 0x02a0: return "WmiSetSingleItemA";
+    case 0x02a1: return "WmiSetSingleItemW";
+    case 0x02a2: return "Wow64Win32ApiEntry";
+    case 0x02a3: return "WriteEncryptedFileRaw";
   }
   return nullptr;
 }


-}
 }

-#endif

+#endif
diff --git a/deps/LIEF/src/PE/utils/ordinals_lookup_tables/comctl32_dll_lookup.hpp b/deps/LIEF/src/PE/utils/ordinals_lookup_tables/comctl32_dll_lookup.hpp
index 27d7c4840f9..765251ba4ac 100644
--- a/deps/LIEF/src/PE/utils/ordinals_lookup_tables/comctl32_dll_lookup.hpp
+++ b/deps/LIEF/src/PE/utils/ordinals_lookup_tables/comctl32_dll_lookup.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -17,166 +17,165 @@
 #define LIEF_PE_COMCTL32_DLL_LOOKUP_H
 #include <cstdint>

-namespace LIEF {
-namespace PE {
+
+namespace LIEF::PE {

 inline const char* comctl32_dll_lookup(uint32_t i) {
-  switch(i) {
-  case 0x0191: return "AddMRUStringW";
-  case 0x00cf: return "AttachScrollBars";
-  case 0x00d2: return "CCEnableScrollBar";
-  case 0x00d1: return "CCGetScrollInfo";
-  case 0x00d0: return "CCSetScrollInfo";
-  case 0x0190: return "CreateMRUListW";
-  case 0x0008: return "CreateMappedBitmap";
-  case 0x000c: return "CreatePropertySheetPage";
-  case 0x0013: return "CreatePropertySheetPageA";
-  case 0x0014: return "CreatePropertySheetPageW";
-  case 0x0015: return "CreateStatusWindow";
-  case 0x0006: return "CreateStatusWindowA";
-  case 0x0016: return "CreateStatusWindowW";
-  case 0x0007: return "CreateToolbar";
-  case 0x0017: return "CreateToolbarEx";
-  case 0x0010: return "CreateUpDownControl";
-  case 0x014b: return "DPA_Clone";
-  case 0x0148: return "DPA_Create";
-  case 0x0154: return "DPA_CreateEx";
-  case 0x0151: return "DPA_DeleteAllPtrs";
-  case 0x0150: return "DPA_DeletePtr";
-  case 0x0149: return "DPA_Destroy";
-  case 0x0182: return "DPA_DestroyCallback";
-  case 0x0181: return "DPA_EnumCallback";
-  case 0x014c: return "DPA_GetPtr";
-  case 0x014d: return "DPA_GetPtrIndex";
-  case 0x015b: return "DPA_GetSize";
-  case 0x014a: return "DPA_Grow";
-  case 0x014e: return "DPA_InsertPtr";
-  case 0x0009: return "DPA_LoadStream";
-  case 0x000b: return "DPA_Merge";
-  case 0x000a: return "DPA_SaveStream";
-  case 0x0153: return "DPA_Search";
-  case 0x014f: return "DPA_SetPtr";
-  case 0x0152: return "DPA_Sort";
-  case 0x0157: return "DSA_Clone";
-  case 0x0140: return "DSA_Create";
-  case 0x0147: return "DSA_DeleteAllItems";
-  case 0x0146: return "DSA_DeleteItem";
-  case 0x0141: return "DSA_Destroy";
-  case 0x0184: return "DSA_DestroyCallback";
-  case 0x0183: return "DSA_EnumCallback";
-  case 0x0142: return "DSA_GetItem";
-  case 0x0143: return "DSA_GetItemPtr";
-  case 0x015c: return "DSA_GetSize";
-  case 0x0144: return "DSA_InsertItem";
-  case 0x0145: return "DSA_SetItem";
-  case 0x015a: return "DSA_Sort";
-  case 0x019d: return "DefSubclassProc";
-  case 0x0018: return "DestroyPropertySheetPage";
-  case 0x00ce: return "DetachScrollBars";
-  case 0x0019: return "DllGetVersion";
-  case 0x001a: return "DllInstall";
-  case 0x000f: return "DrawInsert";
-  case 0x00c9: return "DrawScrollBar";
-  case 0x001b: return "DrawShadowText";
-  case 0x00c8: return "DrawSizeBox";
-  case 0x001c: return "DrawStatusText";
-  case 0x0005: return "DrawStatusTextA";
-  case 0x001d: return "DrawStatusTextW";
-  case 0x0193: return "EnumMRUListW";
-  case 0x001e: return "FlatSB_EnableScrollBar";
-  case 0x001f: return "FlatSB_GetScrollInfo";
-  case 0x0020: return "FlatSB_GetScrollPos";
-  case 0x0021: return "FlatSB_GetScrollProp";
-  case 0x0022: return "FlatSB_GetScrollPropPtr";
-  case 0x0023: return "FlatSB_GetScrollRange";
-  case 0x0024: return "FlatSB_SetScrollInfo";
-  case 0x0025: return "FlatSB_SetScrollPos";
-  case 0x0026: return "FlatSB_SetScrollProp";
-  case 0x0027: return "FlatSB_SetScrollRange";
-  case 0x0028: return "FlatSB_ShowScrollBar";
-  case 0x0098: return "FreeMRUList";
-  case 0x0004: return "GetEffectiveClientRect";
-  case 0x0029: return "GetMUILanguage";
-  case 0x019b: return "GetWindowSubclass";
-  case 0x002a: return "HIMAGELIST_QueryInterface";
-  case 0x00cd: return "HandleScrollCmd";
-  case 0x002b: return "ImageList_Add";
-  case 0x002c: return "ImageList_AddIcon";
-  case 0x002d: return "ImageList_AddMasked";
-  case 0x002e: return "ImageList_BeginDrag";
-  case 0x002f: return "ImageList_CoCreateInstance";
-  case 0x0030: return "ImageList_Copy";
-  case 0x0031: return "ImageList_Create";
-  case 0x0032: return "ImageList_Destroy";
-  case 0x0033: return "ImageList_DestroyShared";
-  case 0x0034: return "ImageList_DragEnter";
-  case 0x0035: return "ImageList_DragLeave";
-  case 0x0036: return "ImageList_DragMove";
-  case 0x0037: return "ImageList_DragShowNolock";
-  case 0x0038: return "ImageList_Draw";
-  case 0x0039: return "ImageList_DrawEx";
-  case 0x003a: return "ImageList_DrawIndirect";
-  case 0x003b: return "ImageList_Duplicate";
-  case 0x003c: return "ImageList_EndDrag";
-  case 0x003d: return "ImageList_GetBkColor";
-  case 0x003e: return "ImageList_GetDragImage";
-  case 0x003f: return "ImageList_GetFlags";
-  case 0x0040: return "ImageList_GetIcon";
-  case 0x0041: return "ImageList_GetIconSize";
-  case 0x0042: return "ImageList_GetImageCount";
-  case 0x0043: return "ImageList_GetImageInfo";
-  case 0x0044: return "ImageList_GetImageRect";
-  case 0x0045: return "ImageList_LoadImage";
-  case 0x0046: return "ImageList_LoadImageA";
-  case 0x004b: return "ImageList_LoadImageW";
-  case 0x004c: return "ImageList_Merge";
-  case 0x004d: return "ImageList_Read";
-  case 0x004e: return "ImageList_ReadEx";
-  case 0x004f: return "ImageList_Remove";
-  case 0x0050: return "ImageList_Replace";
-  case 0x0051: return "ImageList_ReplaceIcon";
-  case 0x0052: return "ImageList_Resize";
-  case 0x0053: return "ImageList_SetBkColor";
-  case 0x0054: return "ImageList_SetDragCursorImage";
-  case 0x0055: return "ImageList_SetFilter";
-  case 0x0056: return "ImageList_SetFlags";
-  case 0x0057: return "ImageList_SetIconSize";
-  case 0x0058: return "ImageList_SetImageCount";
-  case 0x0059: return "ImageList_SetOverlayImage";
-  case 0x005a: return "ImageList_Write";
-  case 0x005b: return "ImageList_WriteEx";
-  case 0x0011: return "InitCommonControls";
-  case 0x005c: return "InitCommonControlsEx";
-  case 0x005d: return "InitMUILanguage";
-  case 0x005e: return "InitializeFlatSB";
-  case 0x000e: return "LBItemFromPt";
-  case 0x017c: return "LoadIconMetric";
-  case 0x017d: return "LoadIconWithScaleDown";
-  case 0x000d: return "MakeDragList";
-  case 0x0002: return "MenuHelp";
-  case 0x005f: return "PropertySheet";
-  case 0x0060: return "PropertySheetA";
-  case 0x0061: return "PropertySheetW";
-  case 0x018a: return "QuerySystemGestureStatus";
-  case 0x0062: return "RegisterClassNameW";
-  case 0x019c: return "RemoveWindowSubclass";
-  case 0x00cc: return "ScrollBar_Menu";
-  case 0x00cb: return "ScrollBar_MouseMove";
-  case 0x019a: return "SetWindowSubclass";
-  case 0x0003: return "ShowHideMenuCtl";
-  case 0x00ca: return "SizeBoxHwnd";
-  case 0x00ec: return "Str_SetPtrW";
-  case 0x0158: return "TaskDialog";
-  case 0x0159: return "TaskDialogIndirect";
-  case 0x0063: return "UninitializeFlatSB";
-  case 0x0064: return "_TrackMouseEvent";
+  switch (i) {
+    case 0x0191: return "AddMRUStringW";
+    case 0x00cf: return "AttachScrollBars";
+    case 0x00d2: return "CCEnableScrollBar";
+    case 0x00d1: return "CCGetScrollInfo";
+    case 0x00d0: return "CCSetScrollInfo";
+    case 0x0190: return "CreateMRUListW";
+    case 0x0008: return "CreateMappedBitmap";
+    case 0x000c: return "CreatePropertySheetPage";
+    case 0x0013: return "CreatePropertySheetPageA";
+    case 0x0014: return "CreatePropertySheetPageW";
+    case 0x0015: return "CreateStatusWindow";
+    case 0x0006: return "CreateStatusWindowA";
+    case 0x0016: return "CreateStatusWindowW";
+    case 0x0007: return "CreateToolbar";
+    case 0x0017: return "CreateToolbarEx";
+    case 0x0010: return "CreateUpDownControl";
+    case 0x014b: return "DPA_Clone";
+    case 0x0148: return "DPA_Create";
+    case 0x0154: return "DPA_CreateEx";
+    case 0x0151: return "DPA_DeleteAllPtrs";
+    case 0x0150: return "DPA_DeletePtr";
+    case 0x0149: return "DPA_Destroy";
+    case 0x0182: return "DPA_DestroyCallback";
+    case 0x0181: return "DPA_EnumCallback";
+    case 0x014c: return "DPA_GetPtr";
+    case 0x014d: return "DPA_GetPtrIndex";
+    case 0x015b: return "DPA_GetSize";
+    case 0x014a: return "DPA_Grow";
+    case 0x014e: return "DPA_InsertPtr";
+    case 0x0009: return "DPA_LoadStream";
+    case 0x000b: return "DPA_Merge";
+    case 0x000a: return "DPA_SaveStream";
+    case 0x0153: return "DPA_Search";
+    case 0x014f: return "DPA_SetPtr";
+    case 0x0152: return "DPA_Sort";
+    case 0x0157: return "DSA_Clone";
+    case 0x0140: return "DSA_Create";
+    case 0x0147: return "DSA_DeleteAllItems";
+    case 0x0146: return "DSA_DeleteItem";
+    case 0x0141: return "DSA_Destroy";
+    case 0x0184: return "DSA_DestroyCallback";
+    case 0x0183: return "DSA_EnumCallback";
+    case 0x0142: return "DSA_GetItem";
+    case 0x0143: return "DSA_GetItemPtr";
+    case 0x015c: return "DSA_GetSize";
+    case 0x0144: return "DSA_InsertItem";
+    case 0x0145: return "DSA_SetItem";
+    case 0x015a: return "DSA_Sort";
+    case 0x019d: return "DefSubclassProc";
+    case 0x0018: return "DestroyPropertySheetPage";
+    case 0x00ce: return "DetachScrollBars";
+    case 0x0019: return "DllGetVersion";
+    case 0x001a: return "DllInstall";
+    case 0x000f: return "DrawInsert";
+    case 0x00c9: return "DrawScrollBar";
+    case 0x001b: return "DrawShadowText";
+    case 0x00c8: return "DrawSizeBox";
+    case 0x001c: return "DrawStatusText";
+    case 0x0005: return "DrawStatusTextA";
+    case 0x001d: return "DrawStatusTextW";
+    case 0x0193: return "EnumMRUListW";
+    case 0x001e: return "FlatSB_EnableScrollBar";
+    case 0x001f: return "FlatSB_GetScrollInfo";
+    case 0x0020: return "FlatSB_GetScrollPos";
+    case 0x0021: return "FlatSB_GetScrollProp";
+    case 0x0022: return "FlatSB_GetScrollPropPtr";
+    case 0x0023: return "FlatSB_GetScrollRange";
+    case 0x0024: return "FlatSB_SetScrollInfo";
+    case 0x0025: return "FlatSB_SetScrollPos";
+    case 0x0026: return "FlatSB_SetScrollProp";
+    case 0x0027: return "FlatSB_SetScrollRange";
+    case 0x0028: return "FlatSB_ShowScrollBar";
+    case 0x0098: return "FreeMRUList";
+    case 0x0004: return "GetEffectiveClientRect";
+    case 0x0029: return "GetMUILanguage";
+    case 0x019b: return "GetWindowSubclass";
+    case 0x002a: return "HIMAGELIST_QueryInterface";
+    case 0x00cd: return "HandleScrollCmd";
+    case 0x002b: return "ImageList_Add";
+    case 0x002c: return "ImageList_AddIcon";
+    case 0x002d: return "ImageList_AddMasked";
+    case 0x002e: return "ImageList_BeginDrag";
+    case 0x002f: return "ImageList_CoCreateInstance";
+    case 0x0030: return "ImageList_Copy";
+    case 0x0031: return "ImageList_Create";
+    case 0x0032: return "ImageList_Destroy";
+    case 0x0033: return "ImageList_DestroyShared";
+    case 0x0034: return "ImageList_DragEnter";
+    case 0x0035: return "ImageList_DragLeave";
+    case 0x0036: return "ImageList_DragMove";
+    case 0x0037: return "ImageList_DragShowNolock";
+    case 0x0038: return "ImageList_Draw";
+    case 0x0039: return "ImageList_DrawEx";
+    case 0x003a: return "ImageList_DrawIndirect";
+    case 0x003b: return "ImageList_Duplicate";
+    case 0x003c: return "ImageList_EndDrag";
+    case 0x003d: return "ImageList_GetBkColor";
+    case 0x003e: return "ImageList_GetDragImage";
+    case 0x003f: return "ImageList_GetFlags";
+    case 0x0040: return "ImageList_GetIcon";
+    case 0x0041: return "ImageList_GetIconSize";
+    case 0x0042: return "ImageList_GetImageCount";
+    case 0x0043: return "ImageList_GetImageInfo";
+    case 0x0044: return "ImageList_GetImageRect";
+    case 0x0045: return "ImageList_LoadImage";
+    case 0x0046: return "ImageList_LoadImageA";
+    case 0x004b: return "ImageList_LoadImageW";
+    case 0x004c: return "ImageList_Merge";
+    case 0x004d: return "ImageList_Read";
+    case 0x004e: return "ImageList_ReadEx";
+    case 0x004f: return "ImageList_Remove";
+    case 0x0050: return "ImageList_Replace";
+    case 0x0051: return "ImageList_ReplaceIcon";
+    case 0x0052: return "ImageList_Resize";
+    case 0x0053: return "ImageList_SetBkColor";
+    case 0x0054: return "ImageList_SetDragCursorImage";
+    case 0x0055: return "ImageList_SetFilter";
+    case 0x0056: return "ImageList_SetFlags";
+    case 0x0057: return "ImageList_SetIconSize";
+    case 0x0058: return "ImageList_SetImageCount";
+    case 0x0059: return "ImageList_SetOverlayImage";
+    case 0x005a: return "ImageList_Write";
+    case 0x005b: return "ImageList_WriteEx";
+    case 0x0011: return "InitCommonControls";
+    case 0x005c: return "InitCommonControlsEx";
+    case 0x005d: return "InitMUILanguage";
+    case 0x005e: return "InitializeFlatSB";
+    case 0x000e: return "LBItemFromPt";
+    case 0x017c: return "LoadIconMetric";
+    case 0x017d: return "LoadIconWithScaleDown";
+    case 0x000d: return "MakeDragList";
+    case 0x0002: return "MenuHelp";
+    case 0x005f: return "PropertySheet";
+    case 0x0060: return "PropertySheetA";
+    case 0x0061: return "PropertySheetW";
+    case 0x018a: return "QuerySystemGestureStatus";
+    case 0x0062: return "RegisterClassNameW";
+    case 0x019c: return "RemoveWindowSubclass";
+    case 0x00cc: return "ScrollBar_Menu";
+    case 0x00cb: return "ScrollBar_MouseMove";
+    case 0x019a: return "SetWindowSubclass";
+    case 0x0003: return "ShowHideMenuCtl";
+    case 0x00ca: return "SizeBoxHwnd";
+    case 0x00ec: return "Str_SetPtrW";
+    case 0x0158: return "TaskDialog";
+    case 0x0159: return "TaskDialogIndirect";
+    case 0x0063: return "UninitializeFlatSB";
+    case 0x0064: return "_TrackMouseEvent";
   }
   return nullptr;
 }


-}
 }

-#endif

+#endif
diff --git a/deps/LIEF/src/PE/utils/ordinals_lookup_tables/gdi32_dll_lookup.hpp b/deps/LIEF/src/PE/utils/ordinals_lookup_tables/gdi32_dll_lookup.hpp
index 9f978e88caa..436660f2036 100644
--- a/deps/LIEF/src/PE/utils/ordinals_lookup_tables/gdi32_dll_lookup.hpp
+++ b/deps/LIEF/src/PE/utils/ordinals_lookup_tables/gdi32_dll_lookup.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -17,627 +17,626 @@
 #define LIEF_PE_GDI32_DLL_LOOKUP_H
 #include <cstdint>

-namespace LIEF {
-namespace PE {
+
+namespace LIEF::PE {

 inline const char* gdi32_dll_lookup(uint32_t i) {
-  switch(i) {
-  case 0x0001: return "AbortDoc";
-  case 0x0002: return "AbortPath";
-  case 0x0003: return "AddFontMemResourceEx";
-  case 0x0004: return "AddFontResourceA";
-  case 0x0005: return "AddFontResourceExA";
-  case 0x0006: return "AddFontResourceExW";
-  case 0x0007: return "AddFontResourceTracking";
-  case 0x0008: return "AddFontResourceW";
-  case 0x0009: return "AngleArc";
-  case 0x000a: return "AnimatePalette";
-  case 0x000b: return "AnyLinkedFonts";
-  case 0x000c: return "Arc";
-  case 0x000d: return "ArcTo";
-  case 0x000e: return "BRUSHOBJ_hGetColorTransform";
-  case 0x000f: return "BRUSHOBJ_pvAllocRbrush";
-  case 0x0010: return "BRUSHOBJ_pvGetRbrush";
-  case 0x0011: return "BRUSHOBJ_ulGetBrushColor";
-  case 0x0012: return "BeginPath";
-  case 0x0013: return "BitBlt";
-  case 0x0014: return "CLIPOBJ_bEnum";
-  case 0x0015: return "CLIPOBJ_cEnumStart";
-  case 0x0016: return "CLIPOBJ_ppoGetPath";
-  case 0x0017: return "CancelDC";
-  case 0x0018: return "CheckColorsInGamut";
-  case 0x0019: return "ChoosePixelFormat";
-  case 0x001a: return "Chord";
-  case 0x001b: return "ClearBitmapAttributes";
-  case 0x001c: return "ClearBrushAttributes";
-  case 0x001d: return "CloseEnhMetaFile";
-  case 0x001e: return "CloseFigure";
-  case 0x001f: return "CloseMetaFile";
-  case 0x0020: return "ColorCorrectPalette";
-  case 0x0021: return "ColorMatchToTarget";
-  case 0x0022: return "CombineRgn";
-  case 0x0023: return "CombineTransform";
-  case 0x0024: return "CopyEnhMetaFileA";
-  case 0x0025: return "CopyEnhMetaFileW";
-  case 0x0026: return "CopyMetaFileA";
-  case 0x0027: return "CopyMetaFileW";
-  case 0x0028: return "CreateBitmap";
-  case 0x0029: return "CreateBitmapIndirect";
-  case 0x002a: return "CreateBrushIndirect";
-  case 0x002b: return "CreateColorSpaceA";
-  case 0x002c: return "CreateColorSpaceW";
-  case 0x002d: return "CreateCompatibleBitmap";
-  case 0x002e: return "CreateCompatibleDC";
-  case 0x002f: return "CreateDCA";
-  case 0x0030: return "CreateDCW";
-  case 0x0031: return "CreateDIBPatternBrush";
-  case 0x0032: return "CreateDIBPatternBrushPt";
-  case 0x0033: return "CreateDIBSection";
-  case 0x0034: return "CreateDIBitmap";
-  case 0x0035: return "CreateDiscardableBitmap";
-  case 0x0036: return "CreateEllipticRgn";
-  case 0x0037: return "CreateEllipticRgnIndirect";
-  case 0x0038: return "CreateEnhMetaFileA";
-  case 0x0039: return "CreateEnhMetaFileW";
-  case 0x003a: return "CreateFontA";
-  case 0x003b: return "CreateFontIndirectA";
-  case 0x003c: return "CreateFontIndirectExA";
-  case 0x003d: return "CreateFontIndirectExW";
-  case 0x003e: return "CreateFontIndirectW";
-  case 0x003f: return "CreateFontW";
-  case 0x0040: return "CreateHalftonePalette";
-  case 0x0041: return "CreateHatchBrush";
-  case 0x0042: return "CreateICA";
-  case 0x0043: return "CreateICW";
-  case 0x0044: return "CreateMetaFileA";
-  case 0x0045: return "CreateMetaFileW";
-  case 0x0046: return "CreatePalette";
-  case 0x0047: return "CreatePatternBrush";
-  case 0x0048: return "CreatePen";
-  case 0x0049: return "CreatePenIndirect";
-  case 0x004a: return "CreatePolyPolygonRgn";
-  case 0x004b: return "CreatePolygonRgn";
-  case 0x004c: return "CreateRectRgn";
-  case 0x004d: return "CreateRectRgnIndirect";
-  case 0x004e: return "CreateRoundRectRgn";
-  case 0x004f: return "CreateScalableFontResourceA";
-  case 0x0050: return "CreateScalableFontResourceW";
-  case 0x0051: return "CreateSolidBrush";
-  case 0x0052: return "DPtoLP";
-  case 0x0053: return "DdEntry0";
-  case 0x005e: return "DdEntry1";
-  case 0x0054: return "DdEntry10";
-  case 0x0055: return "DdEntry11";
-  case 0x0056: return "DdEntry12";
-  case 0x0057: return "DdEntry13";
-  case 0x0058: return "DdEntry14";
-  case 0x0059: return "DdEntry15";
-  case 0x005a: return "DdEntry16";
-  case 0x005b: return "DdEntry17";
-  case 0x005c: return "DdEntry18";
-  case 0x005d: return "DdEntry19";
-  case 0x0069: return "DdEntry2";
-  case 0x005f: return "DdEntry20";
-  case 0x0060: return "DdEntry21";
-  case 0x0061: return "DdEntry22";
-  case 0x0062: return "DdEntry23";
-  case 0x0063: return "DdEntry24";
-  case 0x0064: return "DdEntry25";
-  case 0x0065: return "DdEntry26";
-  case 0x0066: return "DdEntry27";
-  case 0x0067: return "DdEntry28";
-  case 0x0068: return "DdEntry29";
-  case 0x0074: return "DdEntry3";
-  case 0x006a: return "DdEntry30";
-  case 0x006b: return "DdEntry31";
-  case 0x006c: return "DdEntry32";
-  case 0x006d: return "DdEntry33";
-  case 0x006e: return "DdEntry34";
-  case 0x006f: return "DdEntry35";
-  case 0x0070: return "DdEntry36";
-  case 0x0071: return "DdEntry37";
-  case 0x0072: return "DdEntry38";
-  case 0x0073: return "DdEntry39";
-  case 0x007f: return "DdEntry4";
-  case 0x0075: return "DdEntry40";
-  case 0x0076: return "DdEntry41";
-  case 0x0077: return "DdEntry42";
-  case 0x0078: return "DdEntry43";
-  case 0x0079: return "DdEntry44";
-  case 0x007a: return "DdEntry45";
-  case 0x007b: return "DdEntry46";
-  case 0x007c: return "DdEntry47";
-  case 0x007d: return "DdEntry48";
-  case 0x007e: return "DdEntry49";
-  case 0x0087: return "DdEntry5";
-  case 0x0080: return "DdEntry50";
-  case 0x0081: return "DdEntry51";
-  case 0x0082: return "DdEntry52";
-  case 0x0083: return "DdEntry53";
-  case 0x0084: return "DdEntry54";
-  case 0x0085: return "DdEntry55";
-  case 0x0086: return "DdEntry56";
-  case 0x0088: return "DdEntry6";
-  case 0x0089: return "DdEntry7";
-  case 0x008a: return "DdEntry8";
-  case 0x008b: return "DdEntry9";
-  case 0x008c: return "DeleteColorSpace";
-  case 0x008d: return "DeleteDC";
-  case 0x008e: return "DeleteEnhMetaFile";
-  case 0x008f: return "DeleteMetaFile";
-  case 0x0090: return "DeleteObject";
-  case 0x0091: return "DescribePixelFormat";
-  case 0x0092: return "DeviceCapabilitiesExA";
-  case 0x0093: return "DeviceCapabilitiesExW";
-  case 0x0094: return "DrawEscape";
-  case 0x0095: return "Ellipse";
-  case 0x0096: return "EnableEUDC";
-  case 0x0097: return "EndDoc";
-  case 0x0098: return "EndFormPage";
-  case 0x0099: return "EndPage";
-  case 0x009a: return "EndPath";
-  case 0x009b: return "EngAcquireSemaphore";
-  case 0x009c: return "EngAlphaBlend";
-  case 0x009d: return "EngAssociateSurface";
-  case 0x009e: return "EngBitBlt";
-  case 0x009f: return "EngCheckAbort";
-  case 0x00a0: return "EngComputeGlyphSet";
-  case 0x00a1: return "EngCopyBits";
-  case 0x00a2: return "EngCreateBitmap";
-  case 0x00a3: return "EngCreateClip";
-  case 0x00a4: return "EngCreateDeviceBitmap";
-  case 0x00a5: return "EngCreateDeviceSurface";
-  case 0x00a6: return "EngCreatePalette";
-  case 0x00a7: return "EngCreateSemaphore";
-  case 0x00a8: return "EngDeleteClip";
-  case 0x00a9: return "EngDeletePalette";
-  case 0x00aa: return "EngDeletePath";
-  case 0x00ab: return "EngDeleteSemaphore";
-  case 0x00ac: return "EngDeleteSurface";
-  case 0x00ad: return "EngEraseSurface";
-  case 0x00ae: return "EngFillPath";
-  case 0x00af: return "EngFindResource";
-  case 0x00b0: return "EngFreeModule";
-  case 0x00b1: return "EngGetCurrentCodePage";
-  case 0x00b2: return "EngGetDriverName";
-  case 0x00b3: return "EngGetPrinterDataFileName";
-  case 0x00b4: return "EngGradientFill";
-  case 0x00b5: return "EngLineTo";
-  case 0x00b6: return "EngLoadModule";
-  case 0x00b7: return "EngLockSurface";
-  case 0x00b8: return "EngMarkBandingSurface";
-  case 0x00b9: return "EngMultiByteToUnicodeN";
-  case 0x00ba: return "EngMultiByteToWideChar";
-  case 0x00bb: return "EngPaint";
-  case 0x00bc: return "EngPlgBlt";
-  case 0x00bd: return "EngQueryEMFInfo";
-  case 0x00be: return "EngQueryLocalTime";
-  case 0x00bf: return "EngReleaseSemaphore";
-  case 0x00c0: return "EngStretchBlt";
-  case 0x00c1: return "EngStretchBltROP";
-  case 0x00c2: return "EngStrokeAndFillPath";
-  case 0x00c3: return "EngStrokePath";
-  case 0x00c4: return "EngTextOut";
-  case 0x00c5: return "EngTransparentBlt";
-  case 0x00c6: return "EngUnicodeToMultiByteN";
-  case 0x00c7: return "EngUnlockSurface";
-  case 0x00c8: return "EngWideCharToMultiByte";
-  case 0x00c9: return "EnumEnhMetaFile";
-  case 0x00ca: return "EnumFontFamiliesA";
-  case 0x00cb: return "EnumFontFamiliesExA";
-  case 0x00cc: return "EnumFontFamiliesExW";
-  case 0x00cd: return "EnumFontFamiliesW";
-  case 0x00ce: return "EnumFontsA";
-  case 0x00cf: return "EnumFontsW";
-  case 0x00d0: return "EnumICMProfilesA";
-  case 0x00d1: return "EnumICMProfilesW";
-  case 0x00d2: return "EnumMetaFile";
-  case 0x00d3: return "EnumObjects";
-  case 0x00d4: return "EqualRgn";
-  case 0x00d5: return "Escape";
-  case 0x00d6: return "EudcLoadLinkW";
-  case 0x00d7: return "EudcUnloadLinkW";
-  case 0x00d8: return "ExcludeClipRect";
-  case 0x00d9: return "ExtCreatePen";
-  case 0x00da: return "ExtCreateRegion";
-  case 0x00db: return "ExtEscape";
-  case 0x00dc: return "ExtFloodFill";
-  case 0x00dd: return "ExtSelectClipRgn";
-  case 0x00de: return "ExtTextOutA";
-  case 0x00df: return "ExtTextOutW";
-  case 0x00e0: return "FONTOBJ_cGetAllGlyphHandles";
-  case 0x00e1: return "FONTOBJ_cGetGlyphs";
-  case 0x00e2: return "FONTOBJ_pQueryGlyphAttrs";
-  case 0x00e3: return "FONTOBJ_pfdg";
-  case 0x00e4: return "FONTOBJ_pifi";
-  case 0x00e5: return "FONTOBJ_pvTrueTypeFontFile";
-  case 0x00e6: return "FONTOBJ_pxoGetXform";
-  case 0x00e7: return "FONTOBJ_vGetInfo";
-  case 0x00e8: return "FillPath";
-  case 0x00e9: return "FillRgn";
-  case 0x00ea: return "FixBrushOrgEx";
-  case 0x00eb: return "FlattenPath";
-  case 0x00ec: return "FloodFill";
-  case 0x00ed: return "FontIsLinked";
-  case 0x00ee: return "FrameRgn";
-  case 0x00ef: return "GdiAddFontResourceW";
-  case 0x00f0: return "GdiAddGlsBounds";
-  case 0x00f1: return "GdiAddGlsRecord";
-  case 0x00f2: return "GdiAlphaBlend";
-  case 0x00f3: return "GdiArtificialDecrementDriver";
-  case 0x00f4: return "GdiCleanCacheDC";
-  case 0x00f5: return "GdiComment";
-  case 0x00f6: return "GdiConsoleTextOut";
-  case 0x00f7: return "GdiConvertAndCheckDC";
-  case 0x00f8: return "GdiConvertBitmap";
-  case 0x00f9: return "GdiConvertBitmapV5";
-  case 0x00fa: return "GdiConvertBrush";
-  case 0x00fb: return "GdiConvertDC";
-  case 0x00fc: return "GdiConvertEnhMetaFile";
-  case 0x00fd: return "GdiConvertFont";
-  case 0x00fe: return "GdiConvertMetaFilePict";
-  case 0x00ff: return "GdiConvertPalette";
-  case 0x0100: return "GdiConvertRegion";
-  case 0x0101: return "GdiConvertToDevmodeW";
-  case 0x0102: return "GdiCreateLocalEnhMetaFile";
-  case 0x0103: return "GdiCreateLocalMetaFilePict";
-  case 0x0104: return "GdiDeleteLocalDC";
-  case 0x0105: return "GdiDeleteSpoolFileHandle";
-  case 0x0106: return "GdiDescribePixelFormat";
-  case 0x0107: return "GdiDllInitialize";
-  case 0x0108: return "GdiDrawStream";
-  case 0x0109: return "GdiEndDocEMF";
-  case 0x010a: return "GdiEndPageEMF";
-  case 0x0112: return "GdiEntry1";
-  case 0x010b: return "GdiEntry10";
-  case 0x010c: return "GdiEntry11";
-  case 0x010d: return "GdiEntry12";
-  case 0x010e: return "GdiEntry13";
-  case 0x010f: return "GdiEntry14";
-  case 0x0110: return "GdiEntry15";
-  case 0x0111: return "GdiEntry16";
-  case 0x0113: return "GdiEntry2";
-  case 0x0114: return "GdiEntry3";
-  case 0x0115: return "GdiEntry4";
-  case 0x0116: return "GdiEntry5";
-  case 0x0117: return "GdiEntry6";
-  case 0x0118: return "GdiEntry7";
-  case 0x0119: return "GdiEntry8";
-  case 0x011a: return "GdiEntry9";
-  case 0x011b: return "GdiFixUpHandle";
-  case 0x011c: return "GdiFlush";
-  case 0x011d: return "GdiFullscreenControl";
-  case 0x011e: return "GdiGetBatchLimit";
-  case 0x011f: return "GdiGetCharDimensions";
-  case 0x0120: return "GdiGetCodePage";
-  case 0x0121: return "GdiGetDC";
-  case 0x0122: return "GdiGetDevmodeForPage";
-  case 0x0123: return "GdiGetLocalBrush";
-  case 0x0124: return "GdiGetLocalDC";
-  case 0x0125: return "GdiGetLocalFont";
-  case 0x0126: return "GdiGetPageCount";
-  case 0x0127: return "GdiGetPageHandle";
-  case 0x0128: return "GdiGetSpoolFileHandle";
-  case 0x0129: return "GdiGetSpoolMessage";
-  case 0x012a: return "GdiGradientFill";
-  case 0x012b: return "GdiInitSpool";
-  case 0x012c: return "GdiInitializeLanguagePack";
-  case 0x012d: return "GdiIsMetaFileDC";
-  case 0x012e: return "GdiIsMetaPrintDC";
-  case 0x012f: return "GdiIsPlayMetafileDC";
-  case 0x0130: return "GdiPlayDCScript";
-  case 0x0131: return "GdiPlayEMF";
-  case 0x0132: return "GdiPlayJournal";
-  case 0x0133: return "GdiPlayPageEMF";
-  case 0x0134: return "GdiPlayPrivatePageEMF";
-  case 0x0135: return "GdiPlayScript";
-  case 0x0136: return "GdiPrinterThunk";
-  case 0x0137: return "GdiProcessSetup";
-  case 0x0138: return "GdiQueryFonts";
-  case 0x0139: return "GdiQueryTable";
-  case 0x013a: return "GdiRealizationInfo";
-  case 0x013b: return "GdiReleaseDC";
-  case 0x013c: return "GdiReleaseLocalDC";
-  case 0x013d: return "GdiResetDCEMF";
-  case 0x013e: return "GdiSetAttrs";
-  case 0x013f: return "GdiSetBatchLimit";
-  case 0x0140: return "GdiSetLastError";
-  case 0x0141: return "GdiSetPixelFormat";
-  case 0x0142: return "GdiSetServerAttr";
-  case 0x0143: return "GdiStartDocEMF";
-  case 0x0144: return "GdiStartPageEMF";
-  case 0x0145: return "GdiSwapBuffers";
-  case 0x0146: return "GdiTransparentBlt";
-  case 0x0147: return "GdiValidateHandle";
-  case 0x0148: return "GetArcDirection";
-  case 0x0149: return "GetAspectRatioFilterEx";
-  case 0x014a: return "GetBitmapAttributes";
-  case 0x014b: return "GetBitmapBits";
-  case 0x014c: return "GetBitmapDimensionEx";
-  case 0x014d: return "GetBkColor";
-  case 0x014e: return "GetBkMode";
-  case 0x014f: return "GetBoundsRect";
-  case 0x0150: return "GetBrushAttributes";
-  case 0x0151: return "GetBrushOrgEx";
-  case 0x0152: return "GetCharABCWidthsA";
-  case 0x0153: return "GetCharABCWidthsFloatA";
-  case 0x0154: return "GetCharABCWidthsFloatW";
-  case 0x0155: return "GetCharABCWidthsI";
-  case 0x0156: return "GetCharABCWidthsW";
-  case 0x0157: return "GetCharWidth32A";
-  case 0x0158: return "GetCharWidth32W";
-  case 0x0159: return "GetCharWidthA";
-  case 0x015a: return "GetCharWidthFloatA";
-  case 0x015b: return "GetCharWidthFloatW";
-  case 0x015c: return "GetCharWidthI";
-  case 0x015d: return "GetCharWidthInfo";
-  case 0x015e: return "GetCharWidthW";
-  case 0x015f: return "GetCharacterPlacementA";
-  case 0x0160: return "GetCharacterPlacementW";
-  case 0x0161: return "GetClipBox";
-  case 0x0162: return "GetClipRgn";
-  case 0x0163: return "GetColorAdjustment";
-  case 0x0164: return "GetColorSpace";
-  case 0x0165: return "GetCurrentObject";
-  case 0x0166: return "GetCurrentPositionEx";
-  case 0x0167: return "GetDCBrushColor";
-  case 0x0168: return "GetDCOrgEx";
-  case 0x0169: return "GetDCPenColor";
-  case 0x016a: return "GetDIBColorTable";
-  case 0x016b: return "GetDIBits";
-  case 0x016c: return "GetDeviceCaps";
-  case 0x016d: return "GetDeviceGammaRamp";
-  case 0x016e: return "GetETM";
-  case 0x016f: return "GetEUDCTimeStamp";
-  case 0x0170: return "GetEUDCTimeStampExW";
-  case 0x0171: return "GetEnhMetaFileA";
-  case 0x0172: return "GetEnhMetaFileBits";
-  case 0x0173: return "GetEnhMetaFileDescriptionA";
-  case 0x0174: return "GetEnhMetaFileDescriptionW";
-  case 0x0175: return "GetEnhMetaFileHeader";
-  case 0x0176: return "GetEnhMetaFilePaletteEntries";
-  case 0x0177: return "GetEnhMetaFilePixelFormat";
-  case 0x0178: return "GetEnhMetaFileW";
-  case 0x0179: return "GetFontAssocStatus";
-  case 0x017a: return "GetFontData";
-  case 0x017b: return "GetFontLanguageInfo";
-  case 0x017c: return "GetFontResourceInfoW";
-  case 0x017d: return "GetFontUnicodeRanges";
-  case 0x017e: return "GetGlyphIndicesA";
-  case 0x017f: return "GetGlyphIndicesW";
-  case 0x0180: return "GetGlyphOutline";
-  case 0x0181: return "GetGlyphOutlineA";
-  case 0x0182: return "GetGlyphOutlineW";
-  case 0x0183: return "GetGlyphOutlineWow";
-  case 0x0184: return "GetGraphicsMode";
-  case 0x0185: return "GetHFONT";
-  case 0x0186: return "GetICMProfileA";
-  case 0x0187: return "GetICMProfileW";
-  case 0x0188: return "GetKerningPairs";
-  case 0x0189: return "GetKerningPairsA";
-  case 0x018a: return "GetKerningPairsW";
-  case 0x018b: return "GetLayout";
-  case 0x018c: return "GetLogColorSpaceA";
-  case 0x018d: return "GetLogColorSpaceW";
-  case 0x018e: return "GetMapMode";
-  case 0x018f: return "GetMetaFileA";
-  case 0x0190: return "GetMetaFileBitsEx";
-  case 0x0191: return "GetMetaFileW";
-  case 0x0192: return "GetMetaRgn";
-  case 0x0193: return "GetMiterLimit";
-  case 0x0194: return "GetNearestColor";
-  case 0x0195: return "GetNearestPaletteIndex";
-  case 0x0196: return "GetObjectA";
-  case 0x0197: return "GetObjectType";
-  case 0x0198: return "GetObjectW";
-  case 0x0199: return "GetOutlineTextMetricsA";
-  case 0x019a: return "GetOutlineTextMetricsW";
-  case 0x019b: return "GetPaletteEntries";
-  case 0x019c: return "GetPath";
-  case 0x019d: return "GetPixel";
-  case 0x019e: return "GetPixelFormat";
-  case 0x019f: return "GetPolyFillMode";
-  case 0x01a0: return "GetROP2";
-  case 0x01a1: return "GetRandomRgn";
-  case 0x01a2: return "GetRasterizerCaps";
-  case 0x01a3: return "GetRegionData";
-  case 0x01a4: return "GetRelAbs";
-  case 0x01a5: return "GetRgnBox";
-  case 0x01a6: return "GetStockObject";
-  case 0x01a7: return "GetStretchBltMode";
-  case 0x01a8: return "GetStringBitmapA";
-  case 0x01a9: return "GetStringBitmapW";
-  case 0x01aa: return "GetSystemPaletteEntries";
-  case 0x01ab: return "GetSystemPaletteUse";
-  case 0x01ac: return "GetTextAlign";
-  case 0x01ad: return "GetTextCharacterExtra";
-  case 0x01ae: return "GetTextCharset";
-  case 0x01af: return "GetTextCharsetInfo";
-  case 0x01b0: return "GetTextColor";
-  case 0x01b1: return "GetTextExtentExPointA";
-  case 0x01b2: return "GetTextExtentExPointI";
-  case 0x01b3: return "GetTextExtentExPointW";
-  case 0x01b4: return "GetTextExtentExPointWPri";
-  case 0x01b5: return "GetTextExtentPoint32A";
-  case 0x01b6: return "GetTextExtentPoint32W";
-  case 0x01b7: return "GetTextExtentPointA";
-  case 0x01b8: return "GetTextExtentPointI";
-  case 0x01b9: return "GetTextExtentPointW";
-  case 0x01ba: return "GetTextFaceA";
-  case 0x01bb: return "GetTextFaceAliasW";
-  case 0x01bc: return "GetTextFaceW";
-  case 0x01bd: return "GetTextMetricsA";
-  case 0x01be: return "GetTextMetricsW";
-  case 0x01bf: return "GetTransform";
-  case 0x01c0: return "GetViewportExtEx";
-  case 0x01c1: return "GetViewportOrgEx";
-  case 0x01c2: return "GetWinMetaFileBits";
-  case 0x01c3: return "GetWindowExtEx";
-  case 0x01c4: return "GetWindowOrgEx";
-  case 0x01c5: return "GetWorldTransform";
-  case 0x01c6: return "HT_Get8BPPFormatPalette";
-  case 0x01c7: return "HT_Get8BPPMaskPalette";
-  case 0x01c8: return "IntersectClipRect";
-  case 0x01c9: return "InvertRgn";
-  case 0x01ca: return "IsValidEnhMetaRecord";
-  case 0x01cb: return "IsValidEnhMetaRecordOffExt";
-  case 0x01cc: return "LPtoDP";
-  case 0x01cd: return "LineDDA";
-  case 0x01ce: return "LineTo";
-  case 0x01cf: return "MaskBlt";
-  case 0x01d0: return "MirrorRgn";
-  case 0x01d1: return "ModifyWorldTransform";
-  case 0x01d2: return "MoveToEx";
-  case 0x01d3: return "NamedEscape";
-  case 0x01d4: return "OffsetClipRgn";
-  case 0x01d5: return "OffsetRgn";
-  case 0x01d6: return "OffsetViewportOrgEx";
-  case 0x01d7: return "OffsetWindowOrgEx";
-  case 0x01d8: return "PATHOBJ_bEnum";
-  case 0x01d9: return "PATHOBJ_bEnumClipLines";
-  case 0x01da: return "PATHOBJ_vEnumStart";
-  case 0x01db: return "PATHOBJ_vEnumStartClipLines";
-  case 0x01dc: return "PATHOBJ_vGetBounds";
-  case 0x01dd: return "PaintRgn";
-  case 0x01de: return "PatBlt";
-  case 0x01df: return "PathToRegion";
-  case 0x01e0: return "Pie";
-  case 0x01e1: return "PlayEnhMetaFile";
-  case 0x01e2: return "PlayEnhMetaFileRecord";
-  case 0x01e3: return "PlayMetaFile";
-  case 0x01e4: return "PlayMetaFileRecord";
-  case 0x01e5: return "PlgBlt";
-  case 0x01e6: return "PolyBezier";
-  case 0x01e7: return "PolyBezierTo";
-  case 0x01e8: return "PolyDraw";
-  case 0x01e9: return "PolyPatBlt";
-  case 0x01ea: return "PolyPolygon";
-  case 0x01eb: return "PolyPolyline";
-  case 0x01ec: return "PolyTextOutA";
-  case 0x01ed: return "PolyTextOutW";
-  case 0x01ee: return "Polygon";
-  case 0x01ef: return "Polyline";
-  case 0x01f0: return "PolylineTo";
-  case 0x01f1: return "PtInRegion";
-  case 0x01f2: return "PtVisible";
-  case 0x01f3: return "QueryFontAssocStatus";
-  case 0x01f4: return "RealizePalette";
-  case 0x01f5: return "RectInRegion";
-  case 0x01f6: return "RectVisible";
-  case 0x01f7: return "Rectangle";
-  case 0x01f8: return "RemoveFontMemResourceEx";
-  case 0x01f9: return "RemoveFontResourceA";
-  case 0x01fa: return "RemoveFontResourceExA";
-  case 0x01fb: return "RemoveFontResourceExW";
-  case 0x01fc: return "RemoveFontResourceTracking";
-  case 0x01fd: return "RemoveFontResourceW";
-  case 0x01fe: return "ResetDCA";
-  case 0x01ff: return "ResetDCW";
-  case 0x0200: return "ResizePalette";
-  case 0x0201: return "RestoreDC";
-  case 0x0202: return "RoundRect";
-  case 0x0203: return "STROBJ_bEnum";
-  case 0x0204: return "STROBJ_bEnumPositionsOnly";
-  case 0x0205: return "STROBJ_bGetAdvanceWidths";
-  case 0x0206: return "STROBJ_dwGetCodePage";
-  case 0x0207: return "STROBJ_vEnumStart";
-  case 0x0208: return "SaveDC";
-  case 0x0209: return "ScaleViewportExtEx";
-  case 0x020a: return "ScaleWindowExtEx";
-  case 0x020b: return "SelectBrushLocal";
-  case 0x020c: return "SelectClipPath";
-  case 0x020d: return "SelectClipRgn";
-  case 0x020e: return "SelectFontLocal";
-  case 0x020f: return "SelectObject";
-  case 0x0210: return "SelectPalette";
-  case 0x0211: return "SetAbortProc";
-  case 0x0212: return "SetArcDirection";
-  case 0x0213: return "SetBitmapAttributes";
-  case 0x0214: return "SetBitmapBits";
-  case 0x0215: return "SetBitmapDimensionEx";
-  case 0x0216: return "SetBkColor";
-  case 0x0217: return "SetBkMode";
-  case 0x0218: return "SetBoundsRect";
-  case 0x0219: return "SetBrushAttributes";
-  case 0x021a: return "SetBrushOrgEx";
-  case 0x021b: return "SetColorAdjustment";
-  case 0x021c: return "SetColorSpace";
-  case 0x021d: return "SetDCBrushColor";
-  case 0x021e: return "SetDCPenColor";
-  case 0x021f: return "SetDIBColorTable";
-  case 0x0220: return "SetDIBits";
-  case 0x0221: return "SetDIBitsToDevice";
-  case 0x0222: return "SetDeviceGammaRamp";
-  case 0x0223: return "SetEnhMetaFileBits";
-  case 0x0224: return "SetFontEnumeration";
-  case 0x0225: return "SetGraphicsMode";
-  case 0x0226: return "SetICMMode";
-  case 0x0227: return "SetICMProfileA";
-  case 0x0228: return "SetICMProfileW";
-  case 0x0229: return "SetLayout";
-  case 0x022a: return "SetLayoutWidth";
-  case 0x022b: return "SetMagicColors";
-  case 0x022c: return "SetMapMode";
-  case 0x022d: return "SetMapperFlags";
-  case 0x022e: return "SetMetaFileBitsEx";
-  case 0x022f: return "SetMetaRgn";
-  case 0x0230: return "SetMiterLimit";
-  case 0x0231: return "SetPaletteEntries";
-  case 0x0232: return "SetPixel";
-  case 0x0233: return "SetPixelFormat";
-  case 0x0234: return "SetPixelV";
-  case 0x0235: return "SetPolyFillMode";
-  case 0x0236: return "SetROP2";
-  case 0x0237: return "SetRectRgn";
-  case 0x0238: return "SetRelAbs";
-  case 0x0239: return "SetStretchBltMode";
-  case 0x023a: return "SetSystemPaletteUse";
-  case 0x023b: return "SetTextAlign";
-  case 0x023c: return "SetTextCharacterExtra";
-  case 0x023d: return "SetTextColor";
-  case 0x023e: return "SetTextJustification";
-  case 0x023f: return "SetViewportExtEx";
-  case 0x0240: return "SetViewportOrgEx";
-  case 0x0241: return "SetVirtualResolution";
-  case 0x0242: return "SetWinMetaFileBits";
-  case 0x0243: return "SetWindowExtEx";
-  case 0x0244: return "SetWindowOrgEx";
-  case 0x0245: return "SetWorldTransform";
-  case 0x0246: return "StartDocA";
-  case 0x0247: return "StartDocW";
-  case 0x0248: return "StartFormPage";
-  case 0x0249: return "StartPage";
-  case 0x024a: return "StretchBlt";
-  case 0x024b: return "StretchDIBits";
-  case 0x024c: return "StrokeAndFillPath";
-  case 0x024d: return "StrokePath";
-  case 0x024e: return "SwapBuffers";
-  case 0x024f: return "TextOutA";
-  case 0x0250: return "TextOutW";
-  case 0x0251: return "TranslateCharsetInfo";
-  case 0x0252: return "UnloadNetworkFonts";
-  case 0x0253: return "UnrealizeObject";
-  case 0x0254: return "UpdateColors";
-  case 0x0255: return "UpdateICMRegKeyA";
-  case 0x0256: return "UpdateICMRegKeyW";
-  case 0x0257: return "WidenPath";
-  case 0x0258: return "XFORMOBJ_bApplyXform";
-  case 0x0259: return "XFORMOBJ_iGetXform";
-  case 0x025a: return "XLATEOBJ_cGetPalette";
-  case 0x025b: return "XLATEOBJ_hGetColorTransform";
-  case 0x025c: return "XLATEOBJ_iXlate";
-  case 0x025d: return "XLATEOBJ_piVector";
-  case 0x025e: return "bInitSystemAndFontsDirectoriesW";
-  case 0x025f: return "bMakePathNameW";
-  case 0x0260: return "cGetTTFFromFOT";
-  case 0x0261: return "gdiPlaySpoolStream";
+  switch (i) {
+    case 0x0001: return "AbortDoc";
+    case 0x0002: return "AbortPath";
+    case 0x0003: return "AddFontMemResourceEx";
+    case 0x0004: return "AddFontResourceA";
+    case 0x0005: return "AddFontResourceExA";
+    case 0x0006: return "AddFontResourceExW";
+    case 0x0007: return "AddFontResourceTracking";
+    case 0x0008: return "AddFontResourceW";
+    case 0x0009: return "AngleArc";
+    case 0x000a: return "AnimatePalette";
+    case 0x000b: return "AnyLinkedFonts";
+    case 0x000c: return "Arc";
+    case 0x000d: return "ArcTo";
+    case 0x000e: return "BRUSHOBJ_hGetColorTransform";
+    case 0x000f: return "BRUSHOBJ_pvAllocRbrush";
+    case 0x0010: return "BRUSHOBJ_pvGetRbrush";
+    case 0x0011: return "BRUSHOBJ_ulGetBrushColor";
+    case 0x0012: return "BeginPath";
+    case 0x0013: return "BitBlt";
+    case 0x0014: return "CLIPOBJ_bEnum";
+    case 0x0015: return "CLIPOBJ_cEnumStart";
+    case 0x0016: return "CLIPOBJ_ppoGetPath";
+    case 0x0017: return "CancelDC";
+    case 0x0018: return "CheckColorsInGamut";
+    case 0x0019: return "ChoosePixelFormat";
+    case 0x001a: return "Chord";
+    case 0x001b: return "ClearBitmapAttributes";
+    case 0x001c: return "ClearBrushAttributes";
+    case 0x001d: return "CloseEnhMetaFile";
+    case 0x001e: return "CloseFigure";
+    case 0x001f: return "CloseMetaFile";
+    case 0x0020: return "ColorCorrectPalette";
+    case 0x0021: return "ColorMatchToTarget";
+    case 0x0022: return "CombineRgn";
+    case 0x0023: return "CombineTransform";
+    case 0x0024: return "CopyEnhMetaFileA";
+    case 0x0025: return "CopyEnhMetaFileW";
+    case 0x0026: return "CopyMetaFileA";
+    case 0x0027: return "CopyMetaFileW";
+    case 0x0028: return "CreateBitmap";
+    case 0x0029: return "CreateBitmapIndirect";
+    case 0x002a: return "CreateBrushIndirect";
+    case 0x002b: return "CreateColorSpaceA";
+    case 0x002c: return "CreateColorSpaceW";
+    case 0x002d: return "CreateCompatibleBitmap";
+    case 0x002e: return "CreateCompatibleDC";
+    case 0x002f: return "CreateDCA";
+    case 0x0030: return "CreateDCW";
+    case 0x0031: return "CreateDIBPatternBrush";
+    case 0x0032: return "CreateDIBPatternBrushPt";
+    case 0x0033: return "CreateDIBSection";
+    case 0x0034: return "CreateDIBitmap";
+    case 0x0035: return "CreateDiscardableBitmap";
+    case 0x0036: return "CreateEllipticRgn";
+    case 0x0037: return "CreateEllipticRgnIndirect";
+    case 0x0038: return "CreateEnhMetaFileA";
+    case 0x0039: return "CreateEnhMetaFileW";
+    case 0x003a: return "CreateFontA";
+    case 0x003b: return "CreateFontIndirectA";
+    case 0x003c: return "CreateFontIndirectExA";
+    case 0x003d: return "CreateFontIndirectExW";
+    case 0x003e: return "CreateFontIndirectW";
+    case 0x003f: return "CreateFontW";
+    case 0x0040: return "CreateHalftonePalette";
+    case 0x0041: return "CreateHatchBrush";
+    case 0x0042: return "CreateICA";
+    case 0x0043: return "CreateICW";
+    case 0x0044: return "CreateMetaFileA";
+    case 0x0045: return "CreateMetaFileW";
+    case 0x0046: return "CreatePalette";
+    case 0x0047: return "CreatePatternBrush";
+    case 0x0048: return "CreatePen";
+    case 0x0049: return "CreatePenIndirect";
+    case 0x004a: return "CreatePolyPolygonRgn";
+    case 0x004b: return "CreatePolygonRgn";
+    case 0x004c: return "CreateRectRgn";
+    case 0x004d: return "CreateRectRgnIndirect";
+    case 0x004e: return "CreateRoundRectRgn";
+    case 0x004f: return "CreateScalableFontResourceA";
+    case 0x0050: return "CreateScalableFontResourceW";
+    case 0x0051: return "CreateSolidBrush";
+    case 0x0052: return "DPtoLP";
+    case 0x0053: return "DdEntry0";
+    case 0x005e: return "DdEntry1";
+    case 0x0054: return "DdEntry10";
+    case 0x0055: return "DdEntry11";
+    case 0x0056: return "DdEntry12";
+    case 0x0057: return "DdEntry13";
+    case 0x0058: return "DdEntry14";
+    case 0x0059: return "DdEntry15";
+    case 0x005a: return "DdEntry16";
+    case 0x005b: return "DdEntry17";
+    case 0x005c: return "DdEntry18";
+    case 0x005d: return "DdEntry19";
+    case 0x0069: return "DdEntry2";
+    case 0x005f: return "DdEntry20";
+    case 0x0060: return "DdEntry21";
+    case 0x0061: return "DdEntry22";
+    case 0x0062: return "DdEntry23";
+    case 0x0063: return "DdEntry24";
+    case 0x0064: return "DdEntry25";
+    case 0x0065: return "DdEntry26";
+    case 0x0066: return "DdEntry27";
+    case 0x0067: return "DdEntry28";
+    case 0x0068: return "DdEntry29";
+    case 0x0074: return "DdEntry3";
+    case 0x006a: return "DdEntry30";
+    case 0x006b: return "DdEntry31";
+    case 0x006c: return "DdEntry32";
+    case 0x006d: return "DdEntry33";
+    case 0x006e: return "DdEntry34";
+    case 0x006f: return "DdEntry35";
+    case 0x0070: return "DdEntry36";
+    case 0x0071: return "DdEntry37";
+    case 0x0072: return "DdEntry38";
+    case 0x0073: return "DdEntry39";
+    case 0x007f: return "DdEntry4";
+    case 0x0075: return "DdEntry40";
+    case 0x0076: return "DdEntry41";
+    case 0x0077: return "DdEntry42";
+    case 0x0078: return "DdEntry43";
+    case 0x0079: return "DdEntry44";
+    case 0x007a: return "DdEntry45";
+    case 0x007b: return "DdEntry46";
+    case 0x007c: return "DdEntry47";
+    case 0x007d: return "DdEntry48";
+    case 0x007e: return "DdEntry49";
+    case 0x0087: return "DdEntry5";
+    case 0x0080: return "DdEntry50";
+    case 0x0081: return "DdEntry51";
+    case 0x0082: return "DdEntry52";
+    case 0x0083: return "DdEntry53";
+    case 0x0084: return "DdEntry54";
+    case 0x0085: return "DdEntry55";
+    case 0x0086: return "DdEntry56";
+    case 0x0088: return "DdEntry6";
+    case 0x0089: return "DdEntry7";
+    case 0x008a: return "DdEntry8";
+    case 0x008b: return "DdEntry9";
+    case 0x008c: return "DeleteColorSpace";
+    case 0x008d: return "DeleteDC";
+    case 0x008e: return "DeleteEnhMetaFile";
+    case 0x008f: return "DeleteMetaFile";
+    case 0x0090: return "DeleteObject";
+    case 0x0091: return "DescribePixelFormat";
+    case 0x0092: return "DeviceCapabilitiesExA";
+    case 0x0093: return "DeviceCapabilitiesExW";
+    case 0x0094: return "DrawEscape";
+    case 0x0095: return "Ellipse";
+    case 0x0096: return "EnableEUDC";
+    case 0x0097: return "EndDoc";
+    case 0x0098: return "EndFormPage";
+    case 0x0099: return "EndPage";
+    case 0x009a: return "EndPath";
+    case 0x009b: return "EngAcquireSemaphore";
+    case 0x009c: return "EngAlphaBlend";
+    case 0x009d: return "EngAssociateSurface";
+    case 0x009e: return "EngBitBlt";
+    case 0x009f: return "EngCheckAbort";
+    case 0x00a0: return "EngComputeGlyphSet";
+    case 0x00a1: return "EngCopyBits";
+    case 0x00a2: return "EngCreateBitmap";
+    case 0x00a3: return "EngCreateClip";
+    case 0x00a4: return "EngCreateDeviceBitmap";
+    case 0x00a5: return "EngCreateDeviceSurface";
+    case 0x00a6: return "EngCreatePalette";
+    case 0x00a7: return "EngCreateSemaphore";
+    case 0x00a8: return "EngDeleteClip";
+    case 0x00a9: return "EngDeletePalette";
+    case 0x00aa: return "EngDeletePath";
+    case 0x00ab: return "EngDeleteSemaphore";
+    case 0x00ac: return "EngDeleteSurface";
+    case 0x00ad: return "EngEraseSurface";
+    case 0x00ae: return "EngFillPath";
+    case 0x00af: return "EngFindResource";
+    case 0x00b0: return "EngFreeModule";
+    case 0x00b1: return "EngGetCurrentCodePage";
+    case 0x00b2: return "EngGetDriverName";
+    case 0x00b3: return "EngGetPrinterDataFileName";
+    case 0x00b4: return "EngGradientFill";
+    case 0x00b5: return "EngLineTo";
+    case 0x00b6: return "EngLoadModule";
+    case 0x00b7: return "EngLockSurface";
+    case 0x00b8: return "EngMarkBandingSurface";
+    case 0x00b9: return "EngMultiByteToUnicodeN";
+    case 0x00ba: return "EngMultiByteToWideChar";
+    case 0x00bb: return "EngPaint";
+    case 0x00bc: return "EngPlgBlt";
+    case 0x00bd: return "EngQueryEMFInfo";
+    case 0x00be: return "EngQueryLocalTime";
+    case 0x00bf: return "EngReleaseSemaphore";
+    case 0x00c0: return "EngStretchBlt";
+    case 0x00c1: return "EngStretchBltROP";
+    case 0x00c2: return "EngStrokeAndFillPath";
+    case 0x00c3: return "EngStrokePath";
+    case 0x00c4: return "EngTextOut";
+    case 0x00c5: return "EngTransparentBlt";
+    case 0x00c6: return "EngUnicodeToMultiByteN";
+    case 0x00c7: return "EngUnlockSurface";
+    case 0x00c8: return "EngWideCharToMultiByte";
+    case 0x00c9: return "EnumEnhMetaFile";
+    case 0x00ca: return "EnumFontFamiliesA";
+    case 0x00cb: return "EnumFontFamiliesExA";
+    case 0x00cc: return "EnumFontFamiliesExW";
+    case 0x00cd: return "EnumFontFamiliesW";
+    case 0x00ce: return "EnumFontsA";
+    case 0x00cf: return "EnumFontsW";
+    case 0x00d0: return "EnumICMProfilesA";
+    case 0x00d1: return "EnumICMProfilesW";
+    case 0x00d2: return "EnumMetaFile";
+    case 0x00d3: return "EnumObjects";
+    case 0x00d4: return "EqualRgn";
+    case 0x00d5: return "Escape";
+    case 0x00d6: return "EudcLoadLinkW";
+    case 0x00d7: return "EudcUnloadLinkW";
+    case 0x00d8: return "ExcludeClipRect";
+    case 0x00d9: return "ExtCreatePen";
+    case 0x00da: return "ExtCreateRegion";
+    case 0x00db: return "ExtEscape";
+    case 0x00dc: return "ExtFloodFill";
+    case 0x00dd: return "ExtSelectClipRgn";
+    case 0x00de: return "ExtTextOutA";
+    case 0x00df: return "ExtTextOutW";
+    case 0x00e0: return "FONTOBJ_cGetAllGlyphHandles";
+    case 0x00e1: return "FONTOBJ_cGetGlyphs";
+    case 0x00e2: return "FONTOBJ_pQueryGlyphAttrs";
+    case 0x00e3: return "FONTOBJ_pfdg";
+    case 0x00e4: return "FONTOBJ_pifi";
+    case 0x00e5: return "FONTOBJ_pvTrueTypeFontFile";
+    case 0x00e6: return "FONTOBJ_pxoGetXform";
+    case 0x00e7: return "FONTOBJ_vGetInfo";
+    case 0x00e8: return "FillPath";
+    case 0x00e9: return "FillRgn";
+    case 0x00ea: return "FixBrushOrgEx";
+    case 0x00eb: return "FlattenPath";
+    case 0x00ec: return "FloodFill";
+    case 0x00ed: return "FontIsLinked";
+    case 0x00ee: return "FrameRgn";
+    case 0x00ef: return "GdiAddFontResourceW";
+    case 0x00f0: return "GdiAddGlsBounds";
+    case 0x00f1: return "GdiAddGlsRecord";
+    case 0x00f2: return "GdiAlphaBlend";
+    case 0x00f3: return "GdiArtificialDecrementDriver";
+    case 0x00f4: return "GdiCleanCacheDC";
+    case 0x00f5: return "GdiComment";
+    case 0x00f6: return "GdiConsoleTextOut";
+    case 0x00f7: return "GdiConvertAndCheckDC";
+    case 0x00f8: return "GdiConvertBitmap";
+    case 0x00f9: return "GdiConvertBitmapV5";
+    case 0x00fa: return "GdiConvertBrush";
+    case 0x00fb: return "GdiConvertDC";
+    case 0x00fc: return "GdiConvertEnhMetaFile";
+    case 0x00fd: return "GdiConvertFont";
+    case 0x00fe: return "GdiConvertMetaFilePict";
+    case 0x00ff: return "GdiConvertPalette";
+    case 0x0100: return "GdiConvertRegion";
+    case 0x0101: return "GdiConvertToDevmodeW";
+    case 0x0102: return "GdiCreateLocalEnhMetaFile";
+    case 0x0103: return "GdiCreateLocalMetaFilePict";
+    case 0x0104: return "GdiDeleteLocalDC";
+    case 0x0105: return "GdiDeleteSpoolFileHandle";
+    case 0x0106: return "GdiDescribePixelFormat";
+    case 0x0107: return "GdiDllInitialize";
+    case 0x0108: return "GdiDrawStream";
+    case 0x0109: return "GdiEndDocEMF";
+    case 0x010a: return "GdiEndPageEMF";
+    case 0x0112: return "GdiEntry1";
+    case 0x010b: return "GdiEntry10";
+    case 0x010c: return "GdiEntry11";
+    case 0x010d: return "GdiEntry12";
+    case 0x010e: return "GdiEntry13";
+    case 0x010f: return "GdiEntry14";
+    case 0x0110: return "GdiEntry15";
+    case 0x0111: return "GdiEntry16";
+    case 0x0113: return "GdiEntry2";
+    case 0x0114: return "GdiEntry3";
+    case 0x0115: return "GdiEntry4";
+    case 0x0116: return "GdiEntry5";
+    case 0x0117: return "GdiEntry6";
+    case 0x0118: return "GdiEntry7";
+    case 0x0119: return "GdiEntry8";
+    case 0x011a: return "GdiEntry9";
+    case 0x011b: return "GdiFixUpHandle";
+    case 0x011c: return "GdiFlush";
+    case 0x011d: return "GdiFullscreenControl";
+    case 0x011e: return "GdiGetBatchLimit";
+    case 0x011f: return "GdiGetCharDimensions";
+    case 0x0120: return "GdiGetCodePage";
+    case 0x0121: return "GdiGetDC";
+    case 0x0122: return "GdiGetDevmodeForPage";
+    case 0x0123: return "GdiGetLocalBrush";
+    case 0x0124: return "GdiGetLocalDC";
+    case 0x0125: return "GdiGetLocalFont";
+    case 0x0126: return "GdiGetPageCount";
+    case 0x0127: return "GdiGetPageHandle";
+    case 0x0128: return "GdiGetSpoolFileHandle";
+    case 0x0129: return "GdiGetSpoolMessage";
+    case 0x012a: return "GdiGradientFill";
+    case 0x012b: return "GdiInitSpool";
+    case 0x012c: return "GdiInitializeLanguagePack";
+    case 0x012d: return "GdiIsMetaFileDC";
+    case 0x012e: return "GdiIsMetaPrintDC";
+    case 0x012f: return "GdiIsPlayMetafileDC";
+    case 0x0130: return "GdiPlayDCScript";
+    case 0x0131: return "GdiPlayEMF";
+    case 0x0132: return "GdiPlayJournal";
+    case 0x0133: return "GdiPlayPageEMF";
+    case 0x0134: return "GdiPlayPrivatePageEMF";
+    case 0x0135: return "GdiPlayScript";
+    case 0x0136: return "GdiPrinterThunk";
+    case 0x0137: return "GdiProcessSetup";
+    case 0x0138: return "GdiQueryFonts";
+    case 0x0139: return "GdiQueryTable";
+    case 0x013a: return "GdiRealizationInfo";
+    case 0x013b: return "GdiReleaseDC";
+    case 0x013c: return "GdiReleaseLocalDC";
+    case 0x013d: return "GdiResetDCEMF";
+    case 0x013e: return "GdiSetAttrs";
+    case 0x013f: return "GdiSetBatchLimit";
+    case 0x0140: return "GdiSetLastError";
+    case 0x0141: return "GdiSetPixelFormat";
+    case 0x0142: return "GdiSetServerAttr";
+    case 0x0143: return "GdiStartDocEMF";
+    case 0x0144: return "GdiStartPageEMF";
+    case 0x0145: return "GdiSwapBuffers";
+    case 0x0146: return "GdiTransparentBlt";
+    case 0x0147: return "GdiValidateHandle";
+    case 0x0148: return "GetArcDirection";
+    case 0x0149: return "GetAspectRatioFilterEx";
+    case 0x014a: return "GetBitmapAttributes";
+    case 0x014b: return "GetBitmapBits";
+    case 0x014c: return "GetBitmapDimensionEx";
+    case 0x014d: return "GetBkColor";
+    case 0x014e: return "GetBkMode";
+    case 0x014f: return "GetBoundsRect";
+    case 0x0150: return "GetBrushAttributes";
+    case 0x0151: return "GetBrushOrgEx";
+    case 0x0152: return "GetCharABCWidthsA";
+    case 0x0153: return "GetCharABCWidthsFloatA";
+    case 0x0154: return "GetCharABCWidthsFloatW";
+    case 0x0155: return "GetCharABCWidthsI";
+    case 0x0156: return "GetCharABCWidthsW";
+    case 0x0157: return "GetCharWidth32A";
+    case 0x0158: return "GetCharWidth32W";
+    case 0x0159: return "GetCharWidthA";
+    case 0x015a: return "GetCharWidthFloatA";
+    case 0x015b: return "GetCharWidthFloatW";
+    case 0x015c: return "GetCharWidthI";
+    case 0x015d: return "GetCharWidthInfo";
+    case 0x015e: return "GetCharWidthW";
+    case 0x015f: return "GetCharacterPlacementA";
+    case 0x0160: return "GetCharacterPlacementW";
+    case 0x0161: return "GetClipBox";
+    case 0x0162: return "GetClipRgn";
+    case 0x0163: return "GetColorAdjustment";
+    case 0x0164: return "GetColorSpace";
+    case 0x0165: return "GetCurrentObject";
+    case 0x0166: return "GetCurrentPositionEx";
+    case 0x0167: return "GetDCBrushColor";
+    case 0x0168: return "GetDCOrgEx";
+    case 0x0169: return "GetDCPenColor";
+    case 0x016a: return "GetDIBColorTable";
+    case 0x016b: return "GetDIBits";
+    case 0x016c: return "GetDeviceCaps";
+    case 0x016d: return "GetDeviceGammaRamp";
+    case 0x016e: return "GetETM";
+    case 0x016f: return "GetEUDCTimeStamp";
+    case 0x0170: return "GetEUDCTimeStampExW";
+    case 0x0171: return "GetEnhMetaFileA";
+    case 0x0172: return "GetEnhMetaFileBits";
+    case 0x0173: return "GetEnhMetaFileDescriptionA";
+    case 0x0174: return "GetEnhMetaFileDescriptionW";
+    case 0x0175: return "GetEnhMetaFileHeader";
+    case 0x0176: return "GetEnhMetaFilePaletteEntries";
+    case 0x0177: return "GetEnhMetaFilePixelFormat";
+    case 0x0178: return "GetEnhMetaFileW";
+    case 0x0179: return "GetFontAssocStatus";
+    case 0x017a: return "GetFontData";
+    case 0x017b: return "GetFontLanguageInfo";
+    case 0x017c: return "GetFontResourceInfoW";
+    case 0x017d: return "GetFontUnicodeRanges";
+    case 0x017e: return "GetGlyphIndicesA";
+    case 0x017f: return "GetGlyphIndicesW";
+    case 0x0180: return "GetGlyphOutline";
+    case 0x0181: return "GetGlyphOutlineA";
+    case 0x0182: return "GetGlyphOutlineW";
+    case 0x0183: return "GetGlyphOutlineWow";
+    case 0x0184: return "GetGraphicsMode";
+    case 0x0185: return "GetHFONT";
+    case 0x0186: return "GetICMProfileA";
+    case 0x0187: return "GetICMProfileW";
+    case 0x0188: return "GetKerningPairs";
+    case 0x0189: return "GetKerningPairsA";
+    case 0x018a: return "GetKerningPairsW";
+    case 0x018b: return "GetLayout";
+    case 0x018c: return "GetLogColorSpaceA";
+    case 0x018d: return "GetLogColorSpaceW";
+    case 0x018e: return "GetMapMode";
+    case 0x018f: return "GetMetaFileA";
+    case 0x0190: return "GetMetaFileBitsEx";
+    case 0x0191: return "GetMetaFileW";
+    case 0x0192: return "GetMetaRgn";
+    case 0x0193: return "GetMiterLimit";
+    case 0x0194: return "GetNearestColor";
+    case 0x0195: return "GetNearestPaletteIndex";
+    case 0x0196: return "GetObjectA";
+    case 0x0197: return "GetObjectType";
+    case 0x0198: return "GetObjectW";
+    case 0x0199: return "GetOutlineTextMetricsA";
+    case 0x019a: return "GetOutlineTextMetricsW";
+    case 0x019b: return "GetPaletteEntries";
+    case 0x019c: return "GetPath";
+    case 0x019d: return "GetPixel";
+    case 0x019e: return "GetPixelFormat";
+    case 0x019f: return "GetPolyFillMode";
+    case 0x01a0: return "GetROP2";
+    case 0x01a1: return "GetRandomRgn";
+    case 0x01a2: return "GetRasterizerCaps";
+    case 0x01a3: return "GetRegionData";
+    case 0x01a4: return "GetRelAbs";
+    case 0x01a5: return "GetRgnBox";
+    case 0x01a6: return "GetStockObject";
+    case 0x01a7: return "GetStretchBltMode";
+    case 0x01a8: return "GetStringBitmapA";
+    case 0x01a9: return "GetStringBitmapW";
+    case 0x01aa: return "GetSystemPaletteEntries";
+    case 0x01ab: return "GetSystemPaletteUse";
+    case 0x01ac: return "GetTextAlign";
+    case 0x01ad: return "GetTextCharacterExtra";
+    case 0x01ae: return "GetTextCharset";
+    case 0x01af: return "GetTextCharsetInfo";
+    case 0x01b0: return "GetTextColor";
+    case 0x01b1: return "GetTextExtentExPointA";
+    case 0x01b2: return "GetTextExtentExPointI";
+    case 0x01b3: return "GetTextExtentExPointW";
+    case 0x01b4: return "GetTextExtentExPointWPri";
+    case 0x01b5: return "GetTextExtentPoint32A";
+    case 0x01b6: return "GetTextExtentPoint32W";
+    case 0x01b7: return "GetTextExtentPointA";
+    case 0x01b8: return "GetTextExtentPointI";
+    case 0x01b9: return "GetTextExtentPointW";
+    case 0x01ba: return "GetTextFaceA";
+    case 0x01bb: return "GetTextFaceAliasW";
+    case 0x01bc: return "GetTextFaceW";
+    case 0x01bd: return "GetTextMetricsA";
+    case 0x01be: return "GetTextMetricsW";
+    case 0x01bf: return "GetTransform";
+    case 0x01c0: return "GetViewportExtEx";
+    case 0x01c1: return "GetViewportOrgEx";
+    case 0x01c2: return "GetWinMetaFileBits";
+    case 0x01c3: return "GetWindowExtEx";
+    case 0x01c4: return "GetWindowOrgEx";
+    case 0x01c5: return "GetWorldTransform";
+    case 0x01c6: return "HT_Get8BPPFormatPalette";
+    case 0x01c7: return "HT_Get8BPPMaskPalette";
+    case 0x01c8: return "IntersectClipRect";
+    case 0x01c9: return "InvertRgn";
+    case 0x01ca: return "IsValidEnhMetaRecord";
+    case 0x01cb: return "IsValidEnhMetaRecordOffExt";
+    case 0x01cc: return "LPtoDP";
+    case 0x01cd: return "LineDDA";
+    case 0x01ce: return "LineTo";
+    case 0x01cf: return "MaskBlt";
+    case 0x01d0: return "MirrorRgn";
+    case 0x01d1: return "ModifyWorldTransform";
+    case 0x01d2: return "MoveToEx";
+    case 0x01d3: return "NamedEscape";
+    case 0x01d4: return "OffsetClipRgn";
+    case 0x01d5: return "OffsetRgn";
+    case 0x01d6: return "OffsetViewportOrgEx";
+    case 0x01d7: return "OffsetWindowOrgEx";
+    case 0x01d8: return "PATHOBJ_bEnum";
+    case 0x01d9: return "PATHOBJ_bEnumClipLines";
+    case 0x01da: return "PATHOBJ_vEnumStart";
+    case 0x01db: return "PATHOBJ_vEnumStartClipLines";
+    case 0x01dc: return "PATHOBJ_vGetBounds";
+    case 0x01dd: return "PaintRgn";
+    case 0x01de: return "PatBlt";
+    case 0x01df: return "PathToRegion";
+    case 0x01e0: return "Pie";
+    case 0x01e1: return "PlayEnhMetaFile";
+    case 0x01e2: return "PlayEnhMetaFileRecord";
+    case 0x01e3: return "PlayMetaFile";
+    case 0x01e4: return "PlayMetaFileRecord";
+    case 0x01e5: return "PlgBlt";
+    case 0x01e6: return "PolyBezier";
+    case 0x01e7: return "PolyBezierTo";
+    case 0x01e8: return "PolyDraw";
+    case 0x01e9: return "PolyPatBlt";
+    case 0x01ea: return "PolyPolygon";
+    case 0x01eb: return "PolyPolyline";
+    case 0x01ec: return "PolyTextOutA";
+    case 0x01ed: return "PolyTextOutW";
+    case 0x01ee: return "Polygon";
+    case 0x01ef: return "Polyline";
+    case 0x01f0: return "PolylineTo";
+    case 0x01f1: return "PtInRegion";
+    case 0x01f2: return "PtVisible";
+    case 0x01f3: return "QueryFontAssocStatus";
+    case 0x01f4: return "RealizePalette";
+    case 0x01f5: return "RectInRegion";
+    case 0x01f6: return "RectVisible";
+    case 0x01f7: return "Rectangle";
+    case 0x01f8: return "RemoveFontMemResourceEx";
+    case 0x01f9: return "RemoveFontResourceA";
+    case 0x01fa: return "RemoveFontResourceExA";
+    case 0x01fb: return "RemoveFontResourceExW";
+    case 0x01fc: return "RemoveFontResourceTracking";
+    case 0x01fd: return "RemoveFontResourceW";
+    case 0x01fe: return "ResetDCA";
+    case 0x01ff: return "ResetDCW";
+    case 0x0200: return "ResizePalette";
+    case 0x0201: return "RestoreDC";
+    case 0x0202: return "RoundRect";
+    case 0x0203: return "STROBJ_bEnum";
+    case 0x0204: return "STROBJ_bEnumPositionsOnly";
+    case 0x0205: return "STROBJ_bGetAdvanceWidths";
+    case 0x0206: return "STROBJ_dwGetCodePage";
+    case 0x0207: return "STROBJ_vEnumStart";
+    case 0x0208: return "SaveDC";
+    case 0x0209: return "ScaleViewportExtEx";
+    case 0x020a: return "ScaleWindowExtEx";
+    case 0x020b: return "SelectBrushLocal";
+    case 0x020c: return "SelectClipPath";
+    case 0x020d: return "SelectClipRgn";
+    case 0x020e: return "SelectFontLocal";
+    case 0x020f: return "SelectObject";
+    case 0x0210: return "SelectPalette";
+    case 0x0211: return "SetAbortProc";
+    case 0x0212: return "SetArcDirection";
+    case 0x0213: return "SetBitmapAttributes";
+    case 0x0214: return "SetBitmapBits";
+    case 0x0215: return "SetBitmapDimensionEx";
+    case 0x0216: return "SetBkColor";
+    case 0x0217: return "SetBkMode";
+    case 0x0218: return "SetBoundsRect";
+    case 0x0219: return "SetBrushAttributes";
+    case 0x021a: return "SetBrushOrgEx";
+    case 0x021b: return "SetColorAdjustment";
+    case 0x021c: return "SetColorSpace";
+    case 0x021d: return "SetDCBrushColor";
+    case 0x021e: return "SetDCPenColor";
+    case 0x021f: return "SetDIBColorTable";
+    case 0x0220: return "SetDIBits";
+    case 0x0221: return "SetDIBitsToDevice";
+    case 0x0222: return "SetDeviceGammaRamp";
+    case 0x0223: return "SetEnhMetaFileBits";
+    case 0x0224: return "SetFontEnumeration";
+    case 0x0225: return "SetGraphicsMode";
+    case 0x0226: return "SetICMMode";
+    case 0x0227: return "SetICMProfileA";
+    case 0x0228: return "SetICMProfileW";
+    case 0x0229: return "SetLayout";
+    case 0x022a: return "SetLayoutWidth";
+    case 0x022b: return "SetMagicColors";
+    case 0x022c: return "SetMapMode";
+    case 0x022d: return "SetMapperFlags";
+    case 0x022e: return "SetMetaFileBitsEx";
+    case 0x022f: return "SetMetaRgn";
+    case 0x0230: return "SetMiterLimit";
+    case 0x0231: return "SetPaletteEntries";
+    case 0x0232: return "SetPixel";
+    case 0x0233: return "SetPixelFormat";
+    case 0x0234: return "SetPixelV";
+    case 0x0235: return "SetPolyFillMode";
+    case 0x0236: return "SetROP2";
+    case 0x0237: return "SetRectRgn";
+    case 0x0238: return "SetRelAbs";
+    case 0x0239: return "SetStretchBltMode";
+    case 0x023a: return "SetSystemPaletteUse";
+    case 0x023b: return "SetTextAlign";
+    case 0x023c: return "SetTextCharacterExtra";
+    case 0x023d: return "SetTextColor";
+    case 0x023e: return "SetTextJustification";
+    case 0x023f: return "SetViewportExtEx";
+    case 0x0240: return "SetViewportOrgEx";
+    case 0x0241: return "SetVirtualResolution";
+    case 0x0242: return "SetWinMetaFileBits";
+    case 0x0243: return "SetWindowExtEx";
+    case 0x0244: return "SetWindowOrgEx";
+    case 0x0245: return "SetWorldTransform";
+    case 0x0246: return "StartDocA";
+    case 0x0247: return "StartDocW";
+    case 0x0248: return "StartFormPage";
+    case 0x0249: return "StartPage";
+    case 0x024a: return "StretchBlt";
+    case 0x024b: return "StretchDIBits";
+    case 0x024c: return "StrokeAndFillPath";
+    case 0x024d: return "StrokePath";
+    case 0x024e: return "SwapBuffers";
+    case 0x024f: return "TextOutA";
+    case 0x0250: return "TextOutW";
+    case 0x0251: return "TranslateCharsetInfo";
+    case 0x0252: return "UnloadNetworkFonts";
+    case 0x0253: return "UnrealizeObject";
+    case 0x0254: return "UpdateColors";
+    case 0x0255: return "UpdateICMRegKeyA";
+    case 0x0256: return "UpdateICMRegKeyW";
+    case 0x0257: return "WidenPath";
+    case 0x0258: return "XFORMOBJ_bApplyXform";
+    case 0x0259: return "XFORMOBJ_iGetXform";
+    case 0x025a: return "XLATEOBJ_cGetPalette";
+    case 0x025b: return "XLATEOBJ_hGetColorTransform";
+    case 0x025c: return "XLATEOBJ_iXlate";
+    case 0x025d: return "XLATEOBJ_piVector";
+    case 0x025e: return "bInitSystemAndFontsDirectoriesW";
+    case 0x025f: return "bMakePathNameW";
+    case 0x0260: return "cGetTTFFromFOT";
+    case 0x0261: return "gdiPlaySpoolStream";
   }
   return nullptr;
 }


-}
 }

-#endif

+#endif
diff --git a/deps/LIEF/src/PE/utils/ordinals_lookup_tables/kernel32_dll_lookup.hpp b/deps/LIEF/src/PE/utils/ordinals_lookup_tables/kernel32_dll_lookup.hpp
index e6020c43e03..b9a13208965 100644
--- a/deps/LIEF/src/PE/utils/ordinals_lookup_tables/kernel32_dll_lookup.hpp
+++ b/deps/LIEF/src/PE/utils/ordinals_lookup_tables/kernel32_dll_lookup.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -17,967 +17,966 @@
 #define LIEF_PE_KERNEL32_DLL_LOOKUP_H
 #include <cstdint>

-namespace LIEF {
-namespace PE {
+
+namespace LIEF::PE {

 inline const char* kernel32_dll_lookup(uint32_t i) {
-  switch(i) {
-  case 0x0001: return "ActivateActCtx";
-  case 0x0002: return "AddAtomA";
-  case 0x0003: return "AddAtomW";
-  case 0x0004: return "AddConsoleAliasA";
-  case 0x0005: return "AddConsoleAliasW";
-  case 0x0006: return "AddLocalAlternateComputerNameA";
-  case 0x0007: return "AddLocalAlternateComputerNameW";
-  case 0x0008: return "AddRefActCtx";
-  case 0x0009: return "AddVectoredExceptionHandler";
-  case 0x000a: return "AllocConsole";
-  case 0x000b: return "AllocateUserPhysicalPages";
-  case 0x000c: return "AreFileApisANSI";
-  case 0x000d: return "AssignProcessToJobObject";
-  case 0x000e: return "AttachConsole";
-  case 0x000f: return "BackupRead";
-  case 0x0010: return "BackupSeek";
-  case 0x0011: return "BackupWrite";
-  case 0x0012: return "BaseCheckAppcompatCache";
-  case 0x0013: return "BaseCleanupAppcompatCache";
-  case 0x0014: return "BaseCleanupAppcompatCacheSupport";
-  case 0x0015: return "BaseDumpAppcompatCache";
-  case 0x0016: return "BaseFlushAppcompatCache";
-  case 0x0017: return "BaseInitAppcompatCache";
-  case 0x0018: return "BaseInitAppcompatCacheSupport";
-  case 0x0019: return "BaseProcessInitPostImport";
-  case 0x001a: return "BaseQueryModuleData";
-  case 0x001b: return "BaseUpdateAppcompatCache";
-  case 0x001c: return "BasepCheckWinSaferRestrictions";
-  case 0x001d: return "Beep";
-  case 0x001e: return "BeginUpdateResourceA";
-  case 0x001f: return "BeginUpdateResourceW";
-  case 0x0020: return "BindIoCompletionCallback";
-  case 0x0021: return "BuildCommDCBA";
-  case 0x0022: return "BuildCommDCBAndTimeoutsA";
-  case 0x0023: return "BuildCommDCBAndTimeoutsW";
-  case 0x0024: return "BuildCommDCBW";
-  case 0x0025: return "CallNamedPipeA";
-  case 0x0026: return "CallNamedPipeW";
-  case 0x0027: return "CancelDeviceWakeupRequest";
-  case 0x0028: return "CancelIo";
-  case 0x0029: return "CancelTimerQueueTimer";
-  case 0x002a: return "CancelWaitableTimer";
-  case 0x002b: return "ChangeTimerQueueTimer";
-  case 0x002c: return "CheckNameLegalDOS8Dot3A";
-  case 0x002d: return "CheckNameLegalDOS8Dot3W";
-  case 0x002e: return "CheckRemoteDebuggerPresent";
-  case 0x002f: return "ClearCommBreak";
-  case 0x0030: return "ClearCommError";
-  case 0x0031: return "CloseConsoleHandle";
-  case 0x0032: return "CloseHandle";
-  case 0x0033: return "CloseProfileUserMapping";
-  case 0x0034: return "CmdBatNotification";
-  case 0x0035: return "CommConfigDialogA";
-  case 0x0036: return "CommConfigDialogW";
-  case 0x0037: return "CompareFileTime";
-  case 0x0038: return "CompareStringA";
-  case 0x0039: return "CompareStringW";
-  case 0x003a: return "ConnectNamedPipe";
-  case 0x003b: return "ConsoleMenuControl";
-  case 0x003c: return "ContinueDebugEvent";
-  case 0x003d: return "ConvertDefaultLocale";
-  case 0x003e: return "ConvertFiberToThread";
-  case 0x003f: return "ConvertThreadToFiber";
-  case 0x0040: return "CopyFileA";
-  case 0x0041: return "CopyFileExA";
-  case 0x0042: return "CopyFileExW";
-  case 0x0043: return "CopyFileW";
-  case 0x0044: return "CopyLZFile";
-  case 0x0045: return "CreateActCtxA";
-  case 0x0046: return "CreateActCtxW";
-  case 0x0047: return "CreateConsoleScreenBuffer";
-  case 0x0048: return "CreateDirectoryA";
-  case 0x0049: return "CreateDirectoryExA";
-  case 0x004a: return "CreateDirectoryExW";
-  case 0x004b: return "CreateDirectoryW";
-  case 0x004c: return "CreateEventA";
-  case 0x004d: return "CreateEventW";
-  case 0x004e: return "CreateFiber";
-  case 0x004f: return "CreateFiberEx";
-  case 0x0050: return "CreateFileA";
-  case 0x0051: return "CreateFileMappingA";
-  case 0x0052: return "CreateFileMappingW";
-  case 0x0053: return "CreateFileW";
-  case 0x0054: return "CreateHardLinkA";
-  case 0x0055: return "CreateHardLinkW";
-  case 0x0056: return "CreateIoCompletionPort";
-  case 0x0057: return "CreateJobObjectA";
-  case 0x0058: return "CreateJobObjectW";
-  case 0x0059: return "CreateJobSet";
-  case 0x005a: return "CreateMailslotA";
-  case 0x005b: return "CreateMailslotW";
-  case 0x005c: return "CreateMemoryResourceNotification";
-  case 0x005d: return "CreateMutexA";
-  case 0x005e: return "CreateMutexW";
-  case 0x005f: return "CreateNamedPipeA";
-  case 0x0060: return "CreateNamedPipeW";
-  case 0x0061: return "CreateNlsSecurityDescriptor";
-  case 0x0062: return "CreatePipe";
-  case 0x0063: return "CreateProcessA";
-  case 0x0064: return "CreateProcessInternalA";
-  case 0x0065: return "CreateProcessInternalW";
-  case 0x0066: return "CreateProcessInternalWSecure";
-  case 0x0067: return "CreateProcessW";
-  case 0x0068: return "CreateRemoteThread";
-  case 0x0069: return "CreateSemaphoreA";
-  case 0x006a: return "CreateSemaphoreW";
-  case 0x006b: return "CreateSocketHandle";
-  case 0x006c: return "CreateTapePartition";
-  case 0x006d: return "CreateThread";
-  case 0x006e: return "CreateTimerQueue";
-  case 0x006f: return "CreateTimerQueueTimer";
-  case 0x0070: return "CreateToolhelp32Snapshot";
-  case 0x0071: return "CreateVirtualBuffer";
-  case 0x0072: return "CreateWaitableTimerA";
-  case 0x0073: return "CreateWaitableTimerW";
-  case 0x0074: return "DeactivateActCtx";
-  case 0x0075: return "DebugActiveProcess";
-  case 0x0076: return "DebugActiveProcessStop";
-  case 0x0077: return "DebugBreak";
-  case 0x0078: return "DebugBreakProcess";
-  case 0x0079: return "DebugSetProcessKillOnExit";
-  case 0x007a: return "DecodePointer";
-  case 0x007b: return "DecodeSystemPointer";
-  case 0x007c: return "DefineDosDeviceA";
-  case 0x007d: return "DefineDosDeviceW";
-  case 0x007e: return "DelayLoadFailureHook";
-  case 0x007f: return "DeleteAtom";
-  case 0x0080: return "DeleteCriticalSection";
-  case 0x0081: return "DeleteFiber";
-  case 0x0082: return "DeleteFileA";
-  case 0x0083: return "DeleteFileW";
-  case 0x0084: return "DeleteTimerQueue";
-  case 0x0085: return "DeleteTimerQueueEx";
-  case 0x0086: return "DeleteTimerQueueTimer";
-  case 0x0087: return "DeleteVolumeMountPointA";
-  case 0x0088: return "DeleteVolumeMountPointW";
-  case 0x0089: return "DeviceIoControl";
-  case 0x008a: return "DisableThreadLibraryCalls";
-  case 0x008b: return "DisconnectNamedPipe";
-  case 0x008c: return "DnsHostnameToComputerNameA";
-  case 0x008d: return "DnsHostnameToComputerNameW";
-  case 0x008e: return "DosDateTimeToFileTime";
-  case 0x008f: return "DosPathToSessionPathA";
-  case 0x0090: return "DosPathToSessionPathW";
-  case 0x0091: return "DuplicateConsoleHandle";
-  case 0x0092: return "DuplicateHandle";
-  case 0x0093: return "EncodePointer";
-  case 0x0094: return "EncodeSystemPointer";
-  case 0x0095: return "EndUpdateResourceA";
-  case 0x0096: return "EndUpdateResourceW";
-  case 0x0097: return "EnterCriticalSection";
-  case 0x0098: return "EnumCalendarInfoA";
-  case 0x0099: return "EnumCalendarInfoExA";
-  case 0x009a: return "EnumCalendarInfoExW";
-  case 0x009b: return "EnumCalendarInfoW";
-  case 0x009c: return "EnumDateFormatsA";
-  case 0x009d: return "EnumDateFormatsExA";
-  case 0x009e: return "EnumDateFormatsExW";
-  case 0x009f: return "EnumDateFormatsW";
-  case 0x00a0: return "EnumLanguageGroupLocalesA";
-  case 0x00a1: return "EnumLanguageGroupLocalesW";
-  case 0x00a2: return "EnumResourceLanguagesA";
-  case 0x00a3: return "EnumResourceLanguagesW";
-  case 0x00a4: return "EnumResourceNamesA";
-  case 0x00a5: return "EnumResourceNamesW";
-  case 0x00a6: return "EnumResourceTypesA";
-  case 0x00a7: return "EnumResourceTypesW";
-  case 0x00a8: return "EnumSystemCodePagesA";
-  case 0x00a9: return "EnumSystemCodePagesW";
-  case 0x00aa: return "EnumSystemGeoID";
-  case 0x00ab: return "EnumSystemLanguageGroupsA";
-  case 0x00ac: return "EnumSystemLanguageGroupsW";
-  case 0x00ad: return "EnumSystemLocalesA";
-  case 0x00ae: return "EnumSystemLocalesW";
-  case 0x00af: return "EnumTimeFormatsA";
-  case 0x00b0: return "EnumTimeFormatsW";
-  case 0x00b1: return "EnumUILanguagesA";
-  case 0x00b2: return "EnumUILanguagesW";
-  case 0x00b3: return "EnumerateLocalComputerNamesA";
-  case 0x00b4: return "EnumerateLocalComputerNamesW";
-  case 0x00b5: return "EraseTape";
-  case 0x00b6: return "EscapeCommFunction";
-  case 0x00b7: return "ExitProcess";
-  case 0x00b8: return "ExitThread";
-  case 0x00b9: return "ExitVDM";
-  case 0x00ba: return "ExpandEnvironmentStringsA";
-  case 0x00bb: return "ExpandEnvironmentStringsW";
-  case 0x00bc: return "ExpungeConsoleCommandHistoryA";
-  case 0x00bd: return "ExpungeConsoleCommandHistoryW";
-  case 0x00be: return "ExtendVirtualBuffer";
-  case 0x00bf: return "FatalAppExitA";
-  case 0x00c0: return "FatalAppExitW";
-  case 0x00c1: return "FatalExit";
-  case 0x00c2: return "FileTimeToDosDateTime";
-  case 0x00c3: return "FileTimeToLocalFileTime";
-  case 0x00c4: return "FileTimeToSystemTime";
-  case 0x00c5: return "FillConsoleOutputAttribute";
-  case 0x00c6: return "FillConsoleOutputCharacterA";
-  case 0x00c7: return "FillConsoleOutputCharacterW";
-  case 0x00c8: return "FindActCtxSectionGuid";
-  case 0x00c9: return "FindActCtxSectionStringA";
-  case 0x00ca: return "FindActCtxSectionStringW";
-  case 0x00cb: return "FindAtomA";
-  case 0x00cc: return "FindAtomW";
-  case 0x00cd: return "FindClose";
-  case 0x00ce: return "FindCloseChangeNotification";
-  case 0x00cf: return "FindFirstChangeNotificationA";
-  case 0x00d0: return "FindFirstChangeNotificationW";
-  case 0x00d1: return "FindFirstFileA";
-  case 0x00d2: return "FindFirstFileExA";
-  case 0x00d3: return "FindFirstFileExW";
-  case 0x00d4: return "FindFirstFileW";
-  case 0x00d5: return "FindFirstVolumeA";
-  case 0x00d6: return "FindFirstVolumeMountPointA";
-  case 0x00d7: return "FindFirstVolumeMountPointW";
-  case 0x00d8: return "FindFirstVolumeW";
-  case 0x00d9: return "FindNextChangeNotification";
-  case 0x00da: return "FindNextFileA";
-  case 0x00db: return "FindNextFileW";
-  case 0x00dc: return "FindNextVolumeA";
-  case 0x00dd: return "FindNextVolumeMountPointA";
-  case 0x00de: return "FindNextVolumeMountPointW";
-  case 0x00df: return "FindNextVolumeW";
-  case 0x00e0: return "FindResourceA";
-  case 0x00e1: return "FindResourceExA";
-  case 0x00e2: return "FindResourceExW";
-  case 0x00e3: return "FindResourceW";
-  case 0x00e4: return "FindVolumeClose";
-  case 0x00e5: return "FindVolumeMountPointClose";
-  case 0x00e6: return "FlushConsoleInputBuffer";
-  case 0x00e7: return "FlushFileBuffers";
-  case 0x00e8: return "FlushInstructionCache";
-  case 0x00e9: return "FlushViewOfFile";
-  case 0x00ea: return "FoldStringA";
-  case 0x00eb: return "FoldStringW";
-  case 0x00ec: return "FormatMessageA";
-  case 0x00ed: return "FormatMessageW";
-  case 0x00ee: return "FreeConsole";
-  case 0x00ef: return "FreeEnvironmentStringsA";
-  case 0x00f0: return "FreeEnvironmentStringsW";
-  case 0x00f1: return "FreeLibrary";
-  case 0x00f2: return "FreeLibraryAndExitThread";
-  case 0x00f3: return "FreeResource";
-  case 0x00f4: return "FreeUserPhysicalPages";
-  case 0x00f5: return "FreeVirtualBuffer";
-  case 0x00f6: return "GenerateConsoleCtrlEvent";
-  case 0x00f7: return "GetACP";
-  case 0x00f8: return "GetAtomNameA";
-  case 0x00f9: return "GetAtomNameW";
-  case 0x00fa: return "GetBinaryType";
-  case 0x00fb: return "GetBinaryTypeA";
-  case 0x00fc: return "GetBinaryTypeW";
-  case 0x00fd: return "GetCPFileNameFromRegistry";
-  case 0x00fe: return "GetCPInfo";
-  case 0x00ff: return "GetCPInfoExA";
-  case 0x0100: return "GetCPInfoExW";
-  case 0x0101: return "GetCalendarInfoA";
-  case 0x0102: return "GetCalendarInfoW";
-  case 0x0103: return "GetComPlusPackageInstallStatus";
-  case 0x0104: return "GetCommConfig";
-  case 0x0105: return "GetCommMask";
-  case 0x0106: return "GetCommModemStatus";
-  case 0x0107: return "GetCommProperties";
-  case 0x0108: return "GetCommState";
-  case 0x0109: return "GetCommTimeouts";
-  case 0x010a: return "GetCommandLineA";
-  case 0x010b: return "GetCommandLineW";
-  case 0x010c: return "GetCompressedFileSizeA";
-  case 0x010d: return "GetCompressedFileSizeW";
-  case 0x010e: return "GetComputerNameA";
-  case 0x010f: return "GetComputerNameExA";
-  case 0x0110: return "GetComputerNameExW";
-  case 0x0111: return "GetComputerNameW";
-  case 0x0112: return "GetConsoleAliasA";
-  case 0x0113: return "GetConsoleAliasExesA";
-  case 0x0114: return "GetConsoleAliasExesLengthA";
-  case 0x0115: return "GetConsoleAliasExesLengthW";
-  case 0x0116: return "GetConsoleAliasExesW";
-  case 0x0117: return "GetConsoleAliasW";
-  case 0x0118: return "GetConsoleAliasesA";
-  case 0x0119: return "GetConsoleAliasesLengthA";
-  case 0x011a: return "GetConsoleAliasesLengthW";
-  case 0x011b: return "GetConsoleAliasesW";
-  case 0x011c: return "GetConsoleCP";
-  case 0x011d: return "GetConsoleCharType";
-  case 0x011e: return "GetConsoleCommandHistoryA";
-  case 0x011f: return "GetConsoleCommandHistoryLengthA";
-  case 0x0120: return "GetConsoleCommandHistoryLengthW";
-  case 0x0121: return "GetConsoleCommandHistoryW";
-  case 0x0122: return "GetConsoleCursorInfo";
-  case 0x0123: return "GetConsoleCursorMode";
-  case 0x0124: return "GetConsoleDisplayMode";
-  case 0x0125: return "GetConsoleFontInfo";
-  case 0x0126: return "GetConsoleFontSize";
-  case 0x0127: return "GetConsoleHardwareState";
-  case 0x0128: return "GetConsoleInputExeNameA";
-  case 0x0129: return "GetConsoleInputExeNameW";
-  case 0x012a: return "GetConsoleInputWaitHandle";
-  case 0x012b: return "GetConsoleKeyboardLayoutNameA";
-  case 0x012c: return "GetConsoleKeyboardLayoutNameW";
-  case 0x012d: return "GetConsoleMode";
-  case 0x012e: return "GetConsoleNlsMode";
-  case 0x012f: return "GetConsoleOutputCP";
-  case 0x0130: return "GetConsoleProcessList";
-  case 0x0131: return "GetConsoleScreenBufferInfo";
-  case 0x0132: return "GetConsoleSelectionInfo";
-  case 0x0133: return "GetConsoleTitleA";
-  case 0x0134: return "GetConsoleTitleW";
-  case 0x0135: return "GetConsoleWindow";
-  case 0x0136: return "GetCurrencyFormatA";
-  case 0x0137: return "GetCurrencyFormatW";
-  case 0x0138: return "GetCurrentActCtx";
-  case 0x0139: return "GetCurrentConsoleFont";
-  case 0x013a: return "GetCurrentDirectoryA";
-  case 0x013b: return "GetCurrentDirectoryW";
-  case 0x013c: return "GetCurrentProcess";
-  case 0x013d: return "GetCurrentProcessId";
-  case 0x013e: return "GetCurrentThread";
-  case 0x013f: return "GetCurrentThreadId";
-  case 0x0140: return "GetDateFormatA";
-  case 0x0141: return "GetDateFormatW";
-  case 0x0142: return "GetDefaultCommConfigA";
-  case 0x0143: return "GetDefaultCommConfigW";
-  case 0x0144: return "GetDefaultSortkeySize";
-  case 0x0145: return "GetDevicePowerState";
-  case 0x0146: return "GetDiskFreeSpaceA";
-  case 0x0147: return "GetDiskFreeSpaceExA";
-  case 0x0148: return "GetDiskFreeSpaceExW";
-  case 0x0149: return "GetDiskFreeSpaceW";
-  case 0x014a: return "GetDllDirectoryA";
-  case 0x014b: return "GetDllDirectoryW";
-  case 0x014c: return "GetDriveTypeA";
-  case 0x014d: return "GetDriveTypeW";
-  case 0x014e: return "GetEnvironmentStrings";
-  case 0x014f: return "GetEnvironmentStringsA";
-  case 0x0150: return "GetEnvironmentStringsW";
-  case 0x0151: return "GetEnvironmentVariableA";
-  case 0x0152: return "GetEnvironmentVariableW";
-  case 0x0153: return "GetExitCodeProcess";
-  case 0x0154: return "GetExitCodeThread";
-  case 0x0155: return "GetExpandedNameA";
-  case 0x0156: return "GetExpandedNameW";
-  case 0x0157: return "GetFileAttributesA";
-  case 0x0158: return "GetFileAttributesExA";
-  case 0x0159: return "GetFileAttributesExW";
-  case 0x015a: return "GetFileAttributesW";
-  case 0x015b: return "GetFileInformationByHandle";
-  case 0x015c: return "GetFileSize";
-  case 0x015d: return "GetFileSizeEx";
-  case 0x015e: return "GetFileTime";
-  case 0x015f: return "GetFileType";
-  case 0x0160: return "GetFirmwareEnvironmentVariableA";
-  case 0x0161: return "GetFirmwareEnvironmentVariableW";
-  case 0x0162: return "GetFullPathNameA";
-  case 0x0163: return "GetFullPathNameW";
-  case 0x0164: return "GetGeoInfoA";
-  case 0x0165: return "GetGeoInfoW";
-  case 0x0166: return "GetHandleContext";
-  case 0x0167: return "GetHandleInformation";
-  case 0x0168: return "GetLargestConsoleWindowSize";
-  case 0x0169: return "GetLastError";
-  case 0x016a: return "GetLinguistLangSize";
-  case 0x016b: return "GetLocalTime";
-  case 0x016c: return "GetLocaleInfoA";
-  case 0x016d: return "GetLocaleInfoW";
-  case 0x016e: return "GetLogicalDriveStringsA";
-  case 0x016f: return "GetLogicalDriveStringsW";
-  case 0x0170: return "GetLogicalDrives";
-  case 0x0171: return "GetLongPathNameA";
-  case 0x0172: return "GetLongPathNameW";
-  case 0x0173: return "GetMailslotInfo";
-  case 0x0174: return "GetModuleFileNameA";
-  case 0x0175: return "GetModuleFileNameW";
-  case 0x0176: return "GetModuleHandleA";
-  case 0x0177: return "GetModuleHandleExA";
-  case 0x0178: return "GetModuleHandleExW";
-  case 0x0179: return "GetModuleHandleW";
-  case 0x017a: return "GetNamedPipeHandleStateA";
-  case 0x017b: return "GetNamedPipeHandleStateW";
-  case 0x017c: return "GetNamedPipeInfo";
-  case 0x017d: return "GetNativeSystemInfo";
-  case 0x017e: return "GetNextVDMCommand";
-  case 0x017f: return "GetNlsSectionName";
-  case 0x0180: return "GetNumaAvailableMemory";
-  case 0x0181: return "GetNumaAvailableMemoryNode";
-  case 0x0182: return "GetNumaHighestNodeNumber";
-  case 0x0183: return "GetNumaNodeProcessorMask";
-  case 0x0184: return "GetNumaProcessorMap";
-  case 0x0185: return "GetNumaProcessorNode";
-  case 0x0186: return "GetNumberFormatA";
-  case 0x0187: return "GetNumberFormatW";
-  case 0x0188: return "GetNumberOfConsoleFonts";
-  case 0x0189: return "GetNumberOfConsoleInputEvents";
-  case 0x018a: return "GetNumberOfConsoleMouseButtons";
-  case 0x018b: return "GetOEMCP";
-  case 0x018c: return "GetOverlappedResult";
-  case 0x018d: return "GetPriorityClass";
-  case 0x018e: return "GetPrivateProfileIntA";
-  case 0x018f: return "GetPrivateProfileIntW";
-  case 0x0190: return "GetPrivateProfileSectionA";
-  case 0x0191: return "GetPrivateProfileSectionNamesA";
-  case 0x0192: return "GetPrivateProfileSectionNamesW";
-  case 0x0193: return "GetPrivateProfileSectionW";
-  case 0x0194: return "GetPrivateProfileStringA";
-  case 0x0195: return "GetPrivateProfileStringW";
-  case 0x0196: return "GetPrivateProfileStructA";
-  case 0x0197: return "GetPrivateProfileStructW";
-  case 0x0198: return "GetProcAddress";
-  case 0x0199: return "GetProcessAffinityMask";
-  case 0x019a: return "GetProcessHandleCount";
-  case 0x019b: return "GetProcessHeap";
-  case 0x019c: return "GetProcessHeaps";
-  case 0x019d: return "GetProcessId";
-  case 0x019e: return "GetProcessIoCounters";
-  case 0x019f: return "GetProcessPriorityBoost";
-  case 0x01a0: return "GetProcessShutdownParameters";
-  case 0x01a1: return "GetProcessTimes";
-  case 0x01a2: return "GetProcessVersion";
-  case 0x01a3: return "GetProcessWorkingSetSize";
-  case 0x01a4: return "GetProfileIntA";
-  case 0x01a5: return "GetProfileIntW";
-  case 0x01a6: return "GetProfileSectionA";
-  case 0x01a7: return "GetProfileSectionW";
-  case 0x01a8: return "GetProfileStringA";
-  case 0x01a9: return "GetProfileStringW";
-  case 0x01aa: return "GetQueuedCompletionStatus";
-  case 0x01ab: return "GetShortPathNameA";
-  case 0x01ac: return "GetShortPathNameW";
-  case 0x01ad: return "GetStartupInfoA";
-  case 0x01ae: return "GetStartupInfoW";
-  case 0x01af: return "GetStdHandle";
-  case 0x01b0: return "GetStringTypeA";
-  case 0x01b1: return "GetStringTypeExA";
-  case 0x01b2: return "GetStringTypeExW";
-  case 0x01b3: return "GetStringTypeW";
-  case 0x01b4: return "GetSystemDefaultLCID";
-  case 0x01b5: return "GetSystemDefaultLangID";
-  case 0x01b6: return "GetSystemDefaultUILanguage";
-  case 0x01b7: return "GetSystemDirectoryA";
-  case 0x01b8: return "GetSystemDirectoryW";
-  case 0x01b9: return "GetSystemInfo";
-  case 0x01ba: return "GetSystemPowerStatus";
-  case 0x01bb: return "GetSystemRegistryQuota";
-  case 0x01bc: return "GetSystemTime";
-  case 0x01bd: return "GetSystemTimeAdjustment";
-  case 0x01be: return "GetSystemTimeAsFileTime";
-  case 0x01bf: return "GetSystemTimes";
-  case 0x01c0: return "GetSystemWindowsDirectoryA";
-  case 0x01c1: return "GetSystemWindowsDirectoryW";
-  case 0x01c2: return "GetSystemWow64DirectoryA";
-  case 0x01c3: return "GetSystemWow64DirectoryW";
-  case 0x01c4: return "GetTapeParameters";
-  case 0x01c5: return "GetTapePosition";
-  case 0x01c6: return "GetTapeStatus";
-  case 0x01c7: return "GetTempFileNameA";
-  case 0x01c8: return "GetTempFileNameW";
-  case 0x01c9: return "GetTempPathA";
-  case 0x01ca: return "GetTempPathW";
-  case 0x01cb: return "GetThreadContext";
-  case 0x01cc: return "GetThreadIOPendingFlag";
-  case 0x01cd: return "GetThreadLocale";
-  case 0x01ce: return "GetThreadPriority";
-  case 0x01cf: return "GetThreadPriorityBoost";
-  case 0x01d0: return "GetThreadSelectorEntry";
-  case 0x01d1: return "GetThreadTimes";
-  case 0x01d2: return "GetTickCount";
-  case 0x01d3: return "GetTimeFormatA";
-  case 0x01d4: return "GetTimeFormatW";
-  case 0x01d5: return "GetTimeZoneInformation";
-  case 0x01d6: return "GetUserDefaultLCID";
-  case 0x01d7: return "GetUserDefaultLangID";
-  case 0x01d8: return "GetUserDefaultUILanguage";
-  case 0x01d9: return "GetUserGeoID";
-  case 0x01da: return "GetVDMCurrentDirectories";
-  case 0x01db: return "GetVersion";
-  case 0x01dc: return "GetVersionExA";
-  case 0x01dd: return "GetVersionExW";
-  case 0x01de: return "GetVolumeInformationA";
-  case 0x01df: return "GetVolumeInformationW";
-  case 0x01e0: return "GetVolumeNameForVolumeMountPointA";
-  case 0x01e1: return "GetVolumeNameForVolumeMountPointW";
-  case 0x01e2: return "GetVolumePathNameA";
-  case 0x01e3: return "GetVolumePathNameW";
-  case 0x01e4: return "GetVolumePathNamesForVolumeNameA";
-  case 0x01e5: return "GetVolumePathNamesForVolumeNameW";
-  case 0x01e6: return "GetWindowsDirectoryA";
-  case 0x01e7: return "GetWindowsDirectoryW";
-  case 0x01e8: return "GetWriteWatch";
-  case 0x01e9: return "GlobalAddAtomA";
-  case 0x01ea: return "GlobalAddAtomW";
-  case 0x01eb: return "GlobalAlloc";
-  case 0x01ec: return "GlobalCompact";
-  case 0x01ed: return "GlobalDeleteAtom";
-  case 0x01ee: return "GlobalFindAtomA";
-  case 0x01ef: return "GlobalFindAtomW";
-  case 0x01f0: return "GlobalFix";
-  case 0x01f1: return "GlobalFlags";
-  case 0x01f2: return "GlobalFree";
-  case 0x01f3: return "GlobalGetAtomNameA";
-  case 0x01f4: return "GlobalGetAtomNameW";
-  case 0x01f5: return "GlobalHandle";
-  case 0x01f6: return "GlobalLock";
-  case 0x01f7: return "GlobalMemoryStatus";
-  case 0x01f8: return "GlobalMemoryStatusEx";
-  case 0x01f9: return "GlobalReAlloc";
-  case 0x01fa: return "GlobalSize";
-  case 0x01fb: return "GlobalUnWire";
-  case 0x01fc: return "GlobalUnfix";
-  case 0x01fd: return "GlobalUnlock";
-  case 0x01fe: return "GlobalWire";
-  case 0x01ff: return "Heap32First";
-  case 0x0200: return "Heap32ListFirst";
-  case 0x0201: return "Heap32ListNext";
-  case 0x0202: return "Heap32Next";
-  case 0x0203: return "HeapAlloc";
-  case 0x0204: return "HeapCompact";
-  case 0x0205: return "HeapCreate";
-  case 0x0206: return "HeapCreateTagsW";
-  case 0x0207: return "HeapDestroy";
-  case 0x0208: return "HeapExtend";
-  case 0x0209: return "HeapFree";
-  case 0x020a: return "HeapLock";
-  case 0x020b: return "HeapQueryInformation";
-  case 0x020c: return "HeapQueryTagW";
-  case 0x020d: return "HeapReAlloc";
-  case 0x020e: return "HeapSetInformation";
-  case 0x020f: return "HeapSize";
-  case 0x0210: return "HeapSummary";
-  case 0x0211: return "HeapUnlock";
-  case 0x0212: return "HeapUsage";
-  case 0x0213: return "HeapValidate";
-  case 0x0214: return "HeapWalk";
-  case 0x0215: return "InitAtomTable";
-  case 0x0216: return "InitializeCriticalSection";
-  case 0x0217: return "InitializeCriticalSectionAndSpinCount";
-  case 0x0218: return "InitializeSListHead";
-  case 0x0219: return "InterlockedCompareExchange";
-  case 0x021a: return "InterlockedDecrement";
-  case 0x021b: return "InterlockedExchange";
-  case 0x021c: return "InterlockedExchangeAdd";
-  case 0x021d: return "InterlockedFlushSList";
-  case 0x021e: return "InterlockedIncrement";
-  case 0x021f: return "InterlockedPopEntrySList";
-  case 0x0220: return "InterlockedPushEntrySList";
-  case 0x0221: return "InvalidateConsoleDIBits";
-  case 0x0222: return "IsBadCodePtr";
-  case 0x0223: return "IsBadHugeReadPtr";
-  case 0x0224: return "IsBadHugeWritePtr";
-  case 0x0225: return "IsBadReadPtr";
-  case 0x0226: return "IsBadStringPtrA";
-  case 0x0227: return "IsBadStringPtrW";
-  case 0x0228: return "IsBadWritePtr";
-  case 0x0229: return "IsDBCSLeadByte";
-  case 0x022a: return "IsDBCSLeadByteEx";
-  case 0x022b: return "IsDebuggerPresent";
-  case 0x022c: return "IsProcessInJob";
-  case 0x022d: return "IsProcessorFeaturePresent";
-  case 0x022e: return "IsSystemResumeAutomatic";
-  case 0x022f: return "IsValidCodePage";
-  case 0x0230: return "IsValidLanguageGroup";
-  case 0x0231: return "IsValidLocale";
-  case 0x0232: return "IsValidUILanguage";
-  case 0x0233: return "IsWow64Process";
-  case 0x0234: return "LCMapStringA";
-  case 0x0235: return "LCMapStringW";
-  case 0x0236: return "LZClose";
-  case 0x0237: return "LZCloseFile";
-  case 0x0238: return "LZCopy";
-  case 0x0239: return "LZCreateFileW";
-  case 0x023a: return "LZDone";
-  case 0x023b: return "LZInit";
-  case 0x023c: return "LZOpenFileA";
-  case 0x023d: return "LZOpenFileW";
-  case 0x023e: return "LZRead";
-  case 0x023f: return "LZSeek";
-  case 0x0240: return "LZStart";
-  case 0x0241: return "LeaveCriticalSection";
-  case 0x0242: return "LoadLibraryA";
-  case 0x0243: return "LoadLibraryExA";
-  case 0x0244: return "LoadLibraryExW";
-  case 0x0245: return "LoadLibraryW";
-  case 0x0246: return "LoadModule";
-  case 0x0247: return "LoadResource";
-  case 0x0248: return "LocalAlloc";
-  case 0x0249: return "LocalCompact";
-  case 0x024a: return "LocalFileTimeToFileTime";
-  case 0x024b: return "LocalFlags";
-  case 0x024c: return "LocalFree";
-  case 0x024d: return "LocalHandle";
-  case 0x024e: return "LocalLock";
-  case 0x024f: return "LocalReAlloc";
-  case 0x0250: return "LocalShrink";
-  case 0x0251: return "LocalSize";
-  case 0x0252: return "LocalUnlock";
-  case 0x0253: return "LockFile";
-  case 0x0254: return "LockFileEx";
-  case 0x0255: return "LockResource";
-  case 0x0256: return "MapUserPhysicalPages";
-  case 0x0257: return "MapUserPhysicalPagesScatter";
-  case 0x0258: return "MapViewOfFile";
-  case 0x0259: return "MapViewOfFileEx";
-  case 0x025a: return "Module32First";
-  case 0x025b: return "Module32FirstW";
-  case 0x025c: return "Module32Next";
-  case 0x025d: return "Module32NextW";
-  case 0x025e: return "MoveFileA";
-  case 0x025f: return "MoveFileExA";
-  case 0x0260: return "MoveFileExW";
-  case 0x0261: return "MoveFileW";
-  case 0x0262: return "MoveFileWithProgressA";
-  case 0x0263: return "MoveFileWithProgressW";
-  case 0x0264: return "MulDiv";
-  case 0x0265: return "MultiByteToWideChar";
-  case 0x0266: return "NlsConvertIntegerToString";
-  case 0x0267: return "NlsGetCacheUpdateCount";
-  case 0x0268: return "NlsResetProcessLocale";
-  case 0x0269: return "NumaVirtualQueryNode";
-  case 0x026a: return "OpenConsoleW";
-  case 0x026b: return "OpenDataFile";
-  case 0x026c: return "OpenEventA";
-  case 0x026d: return "OpenEventW";
-  case 0x026e: return "OpenFile";
-  case 0x026f: return "OpenFileMappingA";
-  case 0x0270: return "OpenFileMappingW";
-  case 0x0271: return "OpenJobObjectA";
-  case 0x0272: return "OpenJobObjectW";
-  case 0x0273: return "OpenMutexA";
-  case 0x0274: return "OpenMutexW";
-  case 0x0275: return "OpenProcess";
-  case 0x0276: return "OpenProfileUserMapping";
-  case 0x0277: return "OpenSemaphoreA";
-  case 0x0278: return "OpenSemaphoreW";
-  case 0x0279: return "OpenThread";
-  case 0x027a: return "OpenWaitableTimerA";
-  case 0x027b: return "OpenWaitableTimerW";
-  case 0x027c: return "OutputDebugStringA";
-  case 0x027d: return "OutputDebugStringW";
-  case 0x027e: return "PeekConsoleInputA";
-  case 0x027f: return "PeekConsoleInputW";
-  case 0x0280: return "PeekNamedPipe";
-  case 0x0281: return "PostQueuedCompletionStatus";
-  case 0x0282: return "PrepareTape";
-  case 0x0283: return "PrivCopyFileExW";
-  case 0x0284: return "PrivMoveFileIdentityW";
-  case 0x0285: return "Process32First";
-  case 0x0286: return "Process32FirstW";
-  case 0x0287: return "Process32Next";
-  case 0x0288: return "Process32NextW";
-  case 0x0289: return "ProcessIdToSessionId";
-  case 0x028a: return "PulseEvent";
-  case 0x028b: return "PurgeComm";
-  case 0x028c: return "QueryActCtxW";
-  case 0x028d: return "QueryDepthSList";
-  case 0x028e: return "QueryDosDeviceA";
-  case 0x028f: return "QueryDosDeviceW";
-  case 0x0290: return "QueryInformationJobObject";
-  case 0x0291: return "QueryMemoryResourceNotification";
-  case 0x0292: return "QueryPerformanceCounter";
-  case 0x0293: return "QueryPerformanceFrequency";
-  case 0x0294: return "QueryWin31IniFilesMappedToRegistry";
-  case 0x0295: return "QueueUserAPC";
-  case 0x0296: return "QueueUserWorkItem";
-  case 0x0297: return "RaiseException";
-  case 0x0298: return "ReadConsoleA";
-  case 0x0299: return "ReadConsoleInputA";
-  case 0x029a: return "ReadConsoleInputExA";
-  case 0x029b: return "ReadConsoleInputExW";
-  case 0x029c: return "ReadConsoleInputW";
-  case 0x029d: return "ReadConsoleOutputA";
-  case 0x029e: return "ReadConsoleOutputAttribute";
-  case 0x029f: return "ReadConsoleOutputCharacterA";
-  case 0x02a0: return "ReadConsoleOutputCharacterW";
-  case 0x02a1: return "ReadConsoleOutputW";
-  case 0x02a2: return "ReadConsoleW";
-  case 0x02a3: return "ReadDirectoryChangesW";
-  case 0x02a4: return "ReadFile";
-  case 0x02a5: return "ReadFileEx";
-  case 0x02a6: return "ReadFileScatter";
-  case 0x02a7: return "ReadProcessMemory";
-  case 0x02a8: return "RegisterConsoleIME";
-  case 0x02a9: return "RegisterConsoleOS2";
-  case 0x02aa: return "RegisterConsoleVDM";
-  case 0x02ab: return "RegisterWaitForInputIdle";
-  case 0x02ac: return "RegisterWaitForSingleObject";
-  case 0x02ad: return "RegisterWaitForSingleObjectEx";
-  case 0x02ae: return "RegisterWowBaseHandlers";
-  case 0x02af: return "RegisterWowExec";
-  case 0x02b0: return "ReleaseActCtx";
-  case 0x02b1: return "ReleaseMutex";
-  case 0x02b2: return "ReleaseSemaphore";
-  case 0x02b3: return "RemoveDirectoryA";
-  case 0x02b4: return "RemoveDirectoryW";
-  case 0x02b5: return "RemoveLocalAlternateComputerNameA";
-  case 0x02b6: return "RemoveLocalAlternateComputerNameW";
-  case 0x02b7: return "RemoveVectoredExceptionHandler";
-  case 0x02b8: return "ReplaceFile";
-  case 0x02b9: return "ReplaceFileA";
-  case 0x02ba: return "ReplaceFileW";
-  case 0x02bb: return "RequestDeviceWakeup";
-  case 0x02bc: return "RequestWakeupLatency";
-  case 0x02bd: return "ResetEvent";
-  case 0x02be: return "ResetWriteWatch";
-  case 0x02bf: return "RestoreLastError";
-  case 0x02c0: return "ResumeThread";
-  case 0x02c1: return "RtlCaptureContext";
-  case 0x02c2: return "RtlCaptureStackBackTrace";
-  case 0x02c3: return "RtlFillMemory";
-  case 0x02c4: return "RtlMoveMemory";
-  case 0x02c5: return "RtlUnwind";
-  case 0x02c6: return "RtlZeroMemory";
-  case 0x02c7: return "ScrollConsoleScreenBufferA";
-  case 0x02c8: return "ScrollConsoleScreenBufferW";
-  case 0x02c9: return "SearchPathA";
-  case 0x02ca: return "SearchPathW";
-  case 0x02cb: return "SetCPGlobal";
-  case 0x02cc: return "SetCalendarInfoA";
-  case 0x02cd: return "SetCalendarInfoW";
-  case 0x02ce: return "SetClientTimeZoneInformation";
-  case 0x02cf: return "SetComPlusPackageInstallStatus";
-  case 0x02d0: return "SetCommBreak";
-  case 0x02d1: return "SetCommConfig";
-  case 0x02d2: return "SetCommMask";
-  case 0x02d3: return "SetCommState";
-  case 0x02d4: return "SetCommTimeouts";
-  case 0x02d5: return "SetComputerNameA";
-  case 0x02d6: return "SetComputerNameExA";
-  case 0x02d7: return "SetComputerNameExW";
-  case 0x02d8: return "SetComputerNameW";
-  case 0x02d9: return "SetConsoleActiveScreenBuffer";
-  case 0x02da: return "SetConsoleCP";
-  case 0x02db: return "SetConsoleCommandHistoryMode";
-  case 0x02dc: return "SetConsoleCtrlHandler";
-  case 0x02dd: return "SetConsoleCursor";
-  case 0x02de: return "SetConsoleCursorInfo";
-  case 0x02df: return "SetConsoleCursorMode";
-  case 0x02e0: return "SetConsoleCursorPosition";
-  case 0x02e1: return "SetConsoleDisplayMode";
-  case 0x02e2: return "SetConsoleFont";
-  case 0x02e3: return "SetConsoleHardwareState";
-  case 0x02e4: return "SetConsoleIcon";
-  case 0x02e5: return "SetConsoleInputExeNameA";
-  case 0x02e6: return "SetConsoleInputExeNameW";
-  case 0x02e7: return "SetConsoleKeyShortcuts";
-  case 0x02e8: return "SetConsoleLocalEUDC";
-  case 0x02e9: return "SetConsoleMaximumWindowSize";
-  case 0x02ea: return "SetConsoleMenuClose";
-  case 0x02eb: return "SetConsoleMode";
-  case 0x02ec: return "SetConsoleNlsMode";
-  case 0x02ed: return "SetConsoleNumberOfCommandsA";
-  case 0x02ee: return "SetConsoleNumberOfCommandsW";
-  case 0x02ef: return "SetConsoleOS2OemFormat";
-  case 0x02f0: return "SetConsoleOutputCP";
-  case 0x02f1: return "SetConsolePalette";
-  case 0x02f2: return "SetConsoleScreenBufferSize";
-  case 0x02f3: return "SetConsoleTextAttribute";
-  case 0x02f4: return "SetConsoleTitleA";
-  case 0x02f5: return "SetConsoleTitleW";
-  case 0x02f6: return "SetConsoleWindowInfo";
-  case 0x02f7: return "SetCriticalSectionSpinCount";
-  case 0x02f8: return "SetCurrentDirectoryA";
-  case 0x02f9: return "SetCurrentDirectoryW";
-  case 0x02fa: return "SetDefaultCommConfigA";
-  case 0x02fb: return "SetDefaultCommConfigW";
-  case 0x02fc: return "SetDllDirectoryA";
-  case 0x02fd: return "SetDllDirectoryW";
-  case 0x02fe: return "SetEndOfFile";
-  case 0x02ff: return "SetEnvironmentVariableA";
-  case 0x0300: return "SetEnvironmentVariableW";
-  case 0x0301: return "SetErrorMode";
-  case 0x0302: return "SetEvent";
-  case 0x0303: return "SetFileApisToANSI";
-  case 0x0304: return "SetFileApisToOEM";
-  case 0x0305: return "SetFileAttributesA";
-  case 0x0306: return "SetFileAttributesW";
-  case 0x0307: return "SetFilePointer";
-  case 0x0308: return "SetFilePointerEx";
-  case 0x0309: return "SetFileShortNameA";
-  case 0x030a: return "SetFileShortNameW";
-  case 0x030b: return "SetFileTime";
-  case 0x030c: return "SetFileValidData";
-  case 0x030d: return "SetFirmwareEnvironmentVariableA";
-  case 0x030e: return "SetFirmwareEnvironmentVariableW";
-  case 0x030f: return "SetHandleContext";
-  case 0x0310: return "SetHandleCount";
-  case 0x0311: return "SetHandleInformation";
-  case 0x0312: return "SetInformationJobObject";
-  case 0x0313: return "SetLastConsoleEventActive";
-  case 0x0314: return "SetLastError";
-  case 0x0315: return "SetLocalPrimaryComputerNameA";
-  case 0x0316: return "SetLocalPrimaryComputerNameW";
-  case 0x0317: return "SetLocalTime";
-  case 0x0318: return "SetLocaleInfoA";
-  case 0x0319: return "SetLocaleInfoW";
-  case 0x031a: return "SetMailslotInfo";
-  case 0x031b: return "SetMessageWaitingIndicator";
-  case 0x031c: return "SetNamedPipeHandleState";
-  case 0x031d: return "SetPriorityClass";
-  case 0x031e: return "SetProcessAffinityMask";
-  case 0x031f: return "SetProcessPriorityBoost";
-  case 0x0320: return "SetProcessShutdownParameters";
-  case 0x0321: return "SetProcessWorkingSetSize";
-  case 0x0322: return "SetStdHandle";
-  case 0x0323: return "SetSystemPowerState";
-  case 0x0324: return "SetSystemTime";
-  case 0x0325: return "SetSystemTimeAdjustment";
-  case 0x0326: return "SetTapeParameters";
-  case 0x0327: return "SetTapePosition";
-  case 0x0328: return "SetTermsrvAppInstallMode";
-  case 0x0329: return "SetThreadAffinityMask";
-  case 0x032a: return "SetThreadContext";
-  case 0x032b: return "SetThreadExecutionState";
-  case 0x032c: return "SetThreadIdealProcessor";
-  case 0x032d: return "SetThreadLocale";
-  case 0x032e: return "SetThreadPriority";
-  case 0x032f: return "SetThreadPriorityBoost";
-  case 0x0330: return "SetThreadUILanguage";
-  case 0x0331: return "SetTimeZoneInformation";
-  case 0x0332: return "SetTimerQueueTimer";
-  case 0x0333: return "SetUnhandledExceptionFilter";
-  case 0x0334: return "SetUserGeoID";
-  case 0x0335: return "SetVDMCurrentDirectories";
-  case 0x0336: return "SetVolumeLabelA";
-  case 0x0337: return "SetVolumeLabelW";
-  case 0x0338: return "SetVolumeMountPointA";
-  case 0x0339: return "SetVolumeMountPointW";
-  case 0x033a: return "SetWaitableTimer";
-  case 0x033b: return "SetupComm";
-  case 0x033c: return "ShowConsoleCursor";
-  case 0x033d: return "SignalObjectAndWait";
-  case 0x033e: return "SizeofResource";
-  case 0x033f: return "Sleep";
-  case 0x0340: return "SleepEx";
-  case 0x0341: return "SuspendThread";
-  case 0x0342: return "SwitchToFiber";
-  case 0x0343: return "SwitchToThread";
-  case 0x0344: return "SystemTimeToFileTime";
-  case 0x0345: return "SystemTimeToTzSpecificLocalTime";
-  case 0x0346: return "TerminateJobObject";
-  case 0x0347: return "TerminateProcess";
-  case 0x0348: return "TerminateThread";
-  case 0x0349: return "TermsrvAppInstallMode";
-  case 0x034a: return "Thread32First";
-  case 0x034b: return "Thread32Next";
-  case 0x034c: return "TlsAlloc";
-  case 0x034d: return "TlsFree";
-  case 0x034e: return "TlsGetValue";
-  case 0x034f: return "TlsSetValue";
-  case 0x0350: return "Toolhelp32ReadProcessMemory";
-  case 0x0351: return "TransactNamedPipe";
-  case 0x0352: return "TransmitCommChar";
-  case 0x0353: return "TrimVirtualBuffer";
-  case 0x0354: return "TryEnterCriticalSection";
-  case 0x0355: return "TzSpecificLocalTimeToSystemTime";
-  case 0x0356: return "UTRegister";
-  case 0x0357: return "UTUnRegister";
-  case 0x0358: return "UnhandledExceptionFilter";
-  case 0x0359: return "UnlockFile";
-  case 0x035a: return "UnlockFileEx";
-  case 0x035b: return "UnmapViewOfFile";
-  case 0x035c: return "UnregisterConsoleIME";
-  case 0x035d: return "UnregisterWait";
-  case 0x035e: return "UnregisterWaitEx";
-  case 0x035f: return "UpdateResourceA";
-  case 0x0360: return "UpdateResourceW";
-  case 0x0361: return "VDMConsoleOperation";
-  case 0x0362: return "VDMOperationStarted";
-  case 0x0363: return "ValidateLCType";
-  case 0x0364: return "ValidateLocale";
-  case 0x0365: return "VerLanguageNameA";
-  case 0x0366: return "VerLanguageNameW";
-  case 0x0367: return "VerSetConditionMask";
-  case 0x0368: return "VerifyConsoleIoHandle";
-  case 0x0369: return "VerifyVersionInfoA";
-  case 0x036a: return "VerifyVersionInfoW";
-  case 0x036b: return "VirtualAlloc";
-  case 0x036c: return "VirtualAllocEx";
-  case 0x036d: return "VirtualBufferExceptionHandler";
-  case 0x036e: return "VirtualFree";
-  case 0x036f: return "VirtualFreeEx";
-  case 0x0370: return "VirtualLock";
-  case 0x0371: return "VirtualProtect";
-  case 0x0372: return "VirtualProtectEx";
-  case 0x0373: return "VirtualQuery";
-  case 0x0374: return "VirtualQueryEx";
-  case 0x0375: return "VirtualUnlock";
-  case 0x0376: return "WTSGetActiveConsoleSessionId";
-  case 0x0377: return "WaitCommEvent";
-  case 0x0378: return "WaitForDebugEvent";
-  case 0x0379: return "WaitForMultipleObjects";
-  case 0x037a: return "WaitForMultipleObjectsEx";
-  case 0x037b: return "WaitForSingleObject";
-  case 0x037c: return "WaitForSingleObjectEx";
-  case 0x037d: return "WaitNamedPipeA";
-  case 0x037e: return "WaitNamedPipeW";
-  case 0x037f: return "WideCharToMultiByte";
-  case 0x0380: return "WinExec";
-  case 0x0381: return "WriteConsoleA";
-  case 0x0382: return "WriteConsoleInputA";
-  case 0x0383: return "WriteConsoleInputVDMA";
-  case 0x0384: return "WriteConsoleInputVDMW";
-  case 0x0385: return "WriteConsoleInputW";
-  case 0x0386: return "WriteConsoleOutputA";
-  case 0x0387: return "WriteConsoleOutputAttribute";
-  case 0x0388: return "WriteConsoleOutputCharacterA";
-  case 0x0389: return "WriteConsoleOutputCharacterW";
-  case 0x038a: return "WriteConsoleOutputW";
-  case 0x038b: return "WriteConsoleW";
-  case 0x038c: return "WriteFile";
-  case 0x038d: return "WriteFileEx";
-  case 0x038e: return "WriteFileGather";
-  case 0x038f: return "WritePrivateProfileSectionA";
-  case 0x0390: return "WritePrivateProfileSectionW";
-  case 0x0391: return "WritePrivateProfileStringA";
-  case 0x0392: return "WritePrivateProfileStringW";
-  case 0x0393: return "WritePrivateProfileStructA";
-  case 0x0394: return "WritePrivateProfileStructW";
-  case 0x0395: return "WriteProcessMemory";
-  case 0x0396: return "WriteProfileSectionA";
-  case 0x0397: return "WriteProfileSectionW";
-  case 0x0398: return "WriteProfileStringA";
-  case 0x0399: return "WriteProfileStringW";
-  case 0x039a: return "WriteTapemark";
-  case 0x039b: return "ZombifyActCtx";
-  case 0x039c: return "_hread";
-  case 0x039d: return "_hwrite";
-  case 0x039e: return "_lclose";
-  case 0x039f: return "_lcreat";
-  case 0x03a0: return "_llseek";
-  case 0x03a1: return "_lopen";
-  case 0x03a2: return "_lread";
-  case 0x03a3: return "_lwrite";
-  case 0x03a4: return "lstrcat";
-  case 0x03a5: return "lstrcatA";
-  case 0x03a6: return "lstrcatW";
-  case 0x03a7: return "lstrcmp";
-  case 0x03a8: return "lstrcmpA";
-  case 0x03a9: return "lstrcmpW";
-  case 0x03aa: return "lstrcmpi";
-  case 0x03ab: return "lstrcmpiA";
-  case 0x03ac: return "lstrcmpiW";
-  case 0x03ad: return "lstrcpy";
-  case 0x03ae: return "lstrcpyA";
-  case 0x03af: return "lstrcpyW";
-  case 0x03b0: return "lstrcpyn";
-  case 0x03b1: return "lstrcpynA";
-  case 0x03b2: return "lstrcpynW";
-  case 0x03b3: return "lstrlen";
-  case 0x03b4: return "lstrlenA";
-  case 0x03b5: return "lstrlenW";
+  switch (i) {
+    case 0x0001: return "ActivateActCtx";
+    case 0x0002: return "AddAtomA";
+    case 0x0003: return "AddAtomW";
+    case 0x0004: return "AddConsoleAliasA";
+    case 0x0005: return "AddConsoleAliasW";
+    case 0x0006: return "AddLocalAlternateComputerNameA";
+    case 0x0007: return "AddLocalAlternateComputerNameW";
+    case 0x0008: return "AddRefActCtx";
+    case 0x0009: return "AddVectoredExceptionHandler";
+    case 0x000a: return "AllocConsole";
+    case 0x000b: return "AllocateUserPhysicalPages";
+    case 0x000c: return "AreFileApisANSI";
+    case 0x000d: return "AssignProcessToJobObject";
+    case 0x000e: return "AttachConsole";
+    case 0x000f: return "BackupRead";
+    case 0x0010: return "BackupSeek";
+    case 0x0011: return "BackupWrite";
+    case 0x0012: return "BaseCheckAppcompatCache";
+    case 0x0013: return "BaseCleanupAppcompatCache";
+    case 0x0014: return "BaseCleanupAppcompatCacheSupport";
+    case 0x0015: return "BaseDumpAppcompatCache";
+    case 0x0016: return "BaseFlushAppcompatCache";
+    case 0x0017: return "BaseInitAppcompatCache";
+    case 0x0018: return "BaseInitAppcompatCacheSupport";
+    case 0x0019: return "BaseProcessInitPostImport";
+    case 0x001a: return "BaseQueryModuleData";
+    case 0x001b: return "BaseUpdateAppcompatCache";
+    case 0x001c: return "BasepCheckWinSaferRestrictions";
+    case 0x001d: return "Beep";
+    case 0x001e: return "BeginUpdateResourceA";
+    case 0x001f: return "BeginUpdateResourceW";
+    case 0x0020: return "BindIoCompletionCallback";
+    case 0x0021: return "BuildCommDCBA";
+    case 0x0022: return "BuildCommDCBAndTimeoutsA";
+    case 0x0023: return "BuildCommDCBAndTimeoutsW";
+    case 0x0024: return "BuildCommDCBW";
+    case 0x0025: return "CallNamedPipeA";
+    case 0x0026: return "CallNamedPipeW";
+    case 0x0027: return "CancelDeviceWakeupRequest";
+    case 0x0028: return "CancelIo";
+    case 0x0029: return "CancelTimerQueueTimer";
+    case 0x002a: return "CancelWaitableTimer";
+    case 0x002b: return "ChangeTimerQueueTimer";
+    case 0x002c: return "CheckNameLegalDOS8Dot3A";
+    case 0x002d: return "CheckNameLegalDOS8Dot3W";
+    case 0x002e: return "CheckRemoteDebuggerPresent";
+    case 0x002f: return "ClearCommBreak";
+    case 0x0030: return "ClearCommError";
+    case 0x0031: return "CloseConsoleHandle";
+    case 0x0032: return "CloseHandle";
+    case 0x0033: return "CloseProfileUserMapping";
+    case 0x0034: return "CmdBatNotification";
+    case 0x0035: return "CommConfigDialogA";
+    case 0x0036: return "CommConfigDialogW";
+    case 0x0037: return "CompareFileTime";
+    case 0x0038: return "CompareStringA";
+    case 0x0039: return "CompareStringW";
+    case 0x003a: return "ConnectNamedPipe";
+    case 0x003b: return "ConsoleMenuControl";
+    case 0x003c: return "ContinueDebugEvent";
+    case 0x003d: return "ConvertDefaultLocale";
+    case 0x003e: return "ConvertFiberToThread";
+    case 0x003f: return "ConvertThreadToFiber";
+    case 0x0040: return "CopyFileA";
+    case 0x0041: return "CopyFileExA";
+    case 0x0042: return "CopyFileExW";
+    case 0x0043: return "CopyFileW";
+    case 0x0044: return "CopyLZFile";
+    case 0x0045: return "CreateActCtxA";
+    case 0x0046: return "CreateActCtxW";
+    case 0x0047: return "CreateConsoleScreenBuffer";
+    case 0x0048: return "CreateDirectoryA";
+    case 0x0049: return "CreateDirectoryExA";
+    case 0x004a: return "CreateDirectoryExW";
+    case 0x004b: return "CreateDirectoryW";
+    case 0x004c: return "CreateEventA";
+    case 0x004d: return "CreateEventW";
+    case 0x004e: return "CreateFiber";
+    case 0x004f: return "CreateFiberEx";
+    case 0x0050: return "CreateFileA";
+    case 0x0051: return "CreateFileMappingA";
+    case 0x0052: return "CreateFileMappingW";
+    case 0x0053: return "CreateFileW";
+    case 0x0054: return "CreateHardLinkA";
+    case 0x0055: return "CreateHardLinkW";
+    case 0x0056: return "CreateIoCompletionPort";
+    case 0x0057: return "CreateJobObjectA";
+    case 0x0058: return "CreateJobObjectW";
+    case 0x0059: return "CreateJobSet";
+    case 0x005a: return "CreateMailslotA";
+    case 0x005b: return "CreateMailslotW";
+    case 0x005c: return "CreateMemoryResourceNotification";
+    case 0x005d: return "CreateMutexA";
+    case 0x005e: return "CreateMutexW";
+    case 0x005f: return "CreateNamedPipeA";
+    case 0x0060: return "CreateNamedPipeW";
+    case 0x0061: return "CreateNlsSecurityDescriptor";
+    case 0x0062: return "CreatePipe";
+    case 0x0063: return "CreateProcessA";
+    case 0x0064: return "CreateProcessInternalA";
+    case 0x0065: return "CreateProcessInternalW";
+    case 0x0066: return "CreateProcessInternalWSecure";
+    case 0x0067: return "CreateProcessW";
+    case 0x0068: return "CreateRemoteThread";
+    case 0x0069: return "CreateSemaphoreA";
+    case 0x006a: return "CreateSemaphoreW";
+    case 0x006b: return "CreateSocketHandle";
+    case 0x006c: return "CreateTapePartition";
+    case 0x006d: return "CreateThread";
+    case 0x006e: return "CreateTimerQueue";
+    case 0x006f: return "CreateTimerQueueTimer";
+    case 0x0070: return "CreateToolhelp32Snapshot";
+    case 0x0071: return "CreateVirtualBuffer";
+    case 0x0072: return "CreateWaitableTimerA";
+    case 0x0073: return "CreateWaitableTimerW";
+    case 0x0074: return "DeactivateActCtx";
+    case 0x0075: return "DebugActiveProcess";
+    case 0x0076: return "DebugActiveProcessStop";
+    case 0x0077: return "DebugBreak";
+    case 0x0078: return "DebugBreakProcess";
+    case 0x0079: return "DebugSetProcessKillOnExit";
+    case 0x007a: return "DecodePointer";
+    case 0x007b: return "DecodeSystemPointer";
+    case 0x007c: return "DefineDosDeviceA";
+    case 0x007d: return "DefineDosDeviceW";
+    case 0x007e: return "DelayLoadFailureHook";
+    case 0x007f: return "DeleteAtom";
+    case 0x0080: return "DeleteCriticalSection";
+    case 0x0081: return "DeleteFiber";
+    case 0x0082: return "DeleteFileA";
+    case 0x0083: return "DeleteFileW";
+    case 0x0084: return "DeleteTimerQueue";
+    case 0x0085: return "DeleteTimerQueueEx";
+    case 0x0086: return "DeleteTimerQueueTimer";
+    case 0x0087: return "DeleteVolumeMountPointA";
+    case 0x0088: return "DeleteVolumeMountPointW";
+    case 0x0089: return "DeviceIoControl";
+    case 0x008a: return "DisableThreadLibraryCalls";
+    case 0x008b: return "DisconnectNamedPipe";
+    case 0x008c: return "DnsHostnameToComputerNameA";
+    case 0x008d: return "DnsHostnameToComputerNameW";
+    case 0x008e: return "DosDateTimeToFileTime";
+    case 0x008f: return "DosPathToSessionPathA";
+    case 0x0090: return "DosPathToSessionPathW";
+    case 0x0091: return "DuplicateConsoleHandle";
+    case 0x0092: return "DuplicateHandle";
+    case 0x0093: return "EncodePointer";
+    case 0x0094: return "EncodeSystemPointer";
+    case 0x0095: return "EndUpdateResourceA";
+    case 0x0096: return "EndUpdateResourceW";
+    case 0x0097: return "EnterCriticalSection";
+    case 0x0098: return "EnumCalendarInfoA";
+    case 0x0099: return "EnumCalendarInfoExA";
+    case 0x009a: return "EnumCalendarInfoExW";
+    case 0x009b: return "EnumCalendarInfoW";
+    case 0x009c: return "EnumDateFormatsA";
+    case 0x009d: return "EnumDateFormatsExA";
+    case 0x009e: return "EnumDateFormatsExW";
+    case 0x009f: return "EnumDateFormatsW";
+    case 0x00a0: return "EnumLanguageGroupLocalesA";
+    case 0x00a1: return "EnumLanguageGroupLocalesW";
+    case 0x00a2: return "EnumResourceLanguagesA";
+    case 0x00a3: return "EnumResourceLanguagesW";
+    case 0x00a4: return "EnumResourceNamesA";
+    case 0x00a5: return "EnumResourceNamesW";
+    case 0x00a6: return "EnumResourceTypesA";
+    case 0x00a7: return "EnumResourceTypesW";
+    case 0x00a8: return "EnumSystemCodePagesA";
+    case 0x00a9: return "EnumSystemCodePagesW";
+    case 0x00aa: return "EnumSystemGeoID";
+    case 0x00ab: return "EnumSystemLanguageGroupsA";
+    case 0x00ac: return "EnumSystemLanguageGroupsW";
+    case 0x00ad: return "EnumSystemLocalesA";
+    case 0x00ae: return "EnumSystemLocalesW";
+    case 0x00af: return "EnumTimeFormatsA";
+    case 0x00b0: return "EnumTimeFormatsW";
+    case 0x00b1: return "EnumUILanguagesA";
+    case 0x00b2: return "EnumUILanguagesW";
+    case 0x00b3: return "EnumerateLocalComputerNamesA";
+    case 0x00b4: return "EnumerateLocalComputerNamesW";
+    case 0x00b5: return "EraseTape";
+    case 0x00b6: return "EscapeCommFunction";
+    case 0x00b7: return "ExitProcess";
+    case 0x00b8: return "ExitThread";
+    case 0x00b9: return "ExitVDM";
+    case 0x00ba: return "ExpandEnvironmentStringsA";
+    case 0x00bb: return "ExpandEnvironmentStringsW";
+    case 0x00bc: return "ExpungeConsoleCommandHistoryA";
+    case 0x00bd: return "ExpungeConsoleCommandHistoryW";
+    case 0x00be: return "ExtendVirtualBuffer";
+    case 0x00bf: return "FatalAppExitA";
+    case 0x00c0: return "FatalAppExitW";
+    case 0x00c1: return "FatalExit";
+    case 0x00c2: return "FileTimeToDosDateTime";
+    case 0x00c3: return "FileTimeToLocalFileTime";
+    case 0x00c4: return "FileTimeToSystemTime";
+    case 0x00c5: return "FillConsoleOutputAttribute";
+    case 0x00c6: return "FillConsoleOutputCharacterA";
+    case 0x00c7: return "FillConsoleOutputCharacterW";
+    case 0x00c8: return "FindActCtxSectionGuid";
+    case 0x00c9: return "FindActCtxSectionStringA";
+    case 0x00ca: return "FindActCtxSectionStringW";
+    case 0x00cb: return "FindAtomA";
+    case 0x00cc: return "FindAtomW";
+    case 0x00cd: return "FindClose";
+    case 0x00ce: return "FindCloseChangeNotification";
+    case 0x00cf: return "FindFirstChangeNotificationA";
+    case 0x00d0: return "FindFirstChangeNotificationW";
+    case 0x00d1: return "FindFirstFileA";
+    case 0x00d2: return "FindFirstFileExA";
+    case 0x00d3: return "FindFirstFileExW";
+    case 0x00d4: return "FindFirstFileW";
+    case 0x00d5: return "FindFirstVolumeA";
+    case 0x00d6: return "FindFirstVolumeMountPointA";
+    case 0x00d7: return "FindFirstVolumeMountPointW";
+    case 0x00d8: return "FindFirstVolumeW";
+    case 0x00d9: return "FindNextChangeNotification";
+    case 0x00da: return "FindNextFileA";
+    case 0x00db: return "FindNextFileW";
+    case 0x00dc: return "FindNextVolumeA";
+    case 0x00dd: return "FindNextVolumeMountPointA";
+    case 0x00de: return "FindNextVolumeMountPointW";
+    case 0x00df: return "FindNextVolumeW";
+    case 0x00e0: return "FindResourceA";
+    case 0x00e1: return "FindResourceExA";
+    case 0x00e2: return "FindResourceExW";
+    case 0x00e3: return "FindResourceW";
+    case 0x00e4: return "FindVolumeClose";
+    case 0x00e5: return "FindVolumeMountPointClose";
+    case 0x00e6: return "FlushConsoleInputBuffer";
+    case 0x00e7: return "FlushFileBuffers";
+    case 0x00e8: return "FlushInstructionCache";
+    case 0x00e9: return "FlushViewOfFile";
+    case 0x00ea: return "FoldStringA";
+    case 0x00eb: return "FoldStringW";
+    case 0x00ec: return "FormatMessageA";
+    case 0x00ed: return "FormatMessageW";
+    case 0x00ee: return "FreeConsole";
+    case 0x00ef: return "FreeEnvironmentStringsA";
+    case 0x00f0: return "FreeEnvironmentStringsW";
+    case 0x00f1: return "FreeLibrary";
+    case 0x00f2: return "FreeLibraryAndExitThread";
+    case 0x00f3: return "FreeResource";
+    case 0x00f4: return "FreeUserPhysicalPages";
+    case 0x00f5: return "FreeVirtualBuffer";
+    case 0x00f6: return "GenerateConsoleCtrlEvent";
+    case 0x00f7: return "GetACP";
+    case 0x00f8: return "GetAtomNameA";
+    case 0x00f9: return "GetAtomNameW";
+    case 0x00fa: return "GetBinaryType";
+    case 0x00fb: return "GetBinaryTypeA";
+    case 0x00fc: return "GetBinaryTypeW";
+    case 0x00fd: return "GetCPFileNameFromRegistry";
+    case 0x00fe: return "GetCPInfo";
+    case 0x00ff: return "GetCPInfoExA";
+    case 0x0100: return "GetCPInfoExW";
+    case 0x0101: return "GetCalendarInfoA";
+    case 0x0102: return "GetCalendarInfoW";
+    case 0x0103: return "GetComPlusPackageInstallStatus";
+    case 0x0104: return "GetCommConfig";
+    case 0x0105: return "GetCommMask";
+    case 0x0106: return "GetCommModemStatus";
+    case 0x0107: return "GetCommProperties";
+    case 0x0108: return "GetCommState";
+    case 0x0109: return "GetCommTimeouts";
+    case 0x010a: return "GetCommandLineA";
+    case 0x010b: return "GetCommandLineW";
+    case 0x010c: return "GetCompressedFileSizeA";
+    case 0x010d: return "GetCompressedFileSizeW";
+    case 0x010e: return "GetComputerNameA";
+    case 0x010f: return "GetComputerNameExA";
+    case 0x0110: return "GetComputerNameExW";
+    case 0x0111: return "GetComputerNameW";
+    case 0x0112: return "GetConsoleAliasA";
+    case 0x0113: return "GetConsoleAliasExesA";
+    case 0x0114: return "GetConsoleAliasExesLengthA";
+    case 0x0115: return "GetConsoleAliasExesLengthW";
+    case 0x0116: return "GetConsoleAliasExesW";
+    case 0x0117: return "GetConsoleAliasW";
+    case 0x0118: return "GetConsoleAliasesA";
+    case 0x0119: return "GetConsoleAliasesLengthA";
+    case 0x011a: return "GetConsoleAliasesLengthW";
+    case 0x011b: return "GetConsoleAliasesW";
+    case 0x011c: return "GetConsoleCP";
+    case 0x011d: return "GetConsoleCharType";
+    case 0x011e: return "GetConsoleCommandHistoryA";
+    case 0x011f: return "GetConsoleCommandHistoryLengthA";
+    case 0x0120: return "GetConsoleCommandHistoryLengthW";
+    case 0x0121: return "GetConsoleCommandHistoryW";
+    case 0x0122: return "GetConsoleCursorInfo";
+    case 0x0123: return "GetConsoleCursorMode";
+    case 0x0124: return "GetConsoleDisplayMode";
+    case 0x0125: return "GetConsoleFontInfo";
+    case 0x0126: return "GetConsoleFontSize";
+    case 0x0127: return "GetConsoleHardwareState";
+    case 0x0128: return "GetConsoleInputExeNameA";
+    case 0x0129: return "GetConsoleInputExeNameW";
+    case 0x012a: return "GetConsoleInputWaitHandle";
+    case 0x012b: return "GetConsoleKeyboardLayoutNameA";
+    case 0x012c: return "GetConsoleKeyboardLayoutNameW";
+    case 0x012d: return "GetConsoleMode";
+    case 0x012e: return "GetConsoleNlsMode";
+    case 0x012f: return "GetConsoleOutputCP";
+    case 0x0130: return "GetConsoleProcessList";
+    case 0x0131: return "GetConsoleScreenBufferInfo";
+    case 0x0132: return "GetConsoleSelectionInfo";
+    case 0x0133: return "GetConsoleTitleA";
+    case 0x0134: return "GetConsoleTitleW";
+    case 0x0135: return "GetConsoleWindow";
+    case 0x0136: return "GetCurrencyFormatA";
+    case 0x0137: return "GetCurrencyFormatW";
+    case 0x0138: return "GetCurrentActCtx";
+    case 0x0139: return "GetCurrentConsoleFont";
+    case 0x013a: return "GetCurrentDirectoryA";
+    case 0x013b: return "GetCurrentDirectoryW";
+    case 0x013c: return "GetCurrentProcess";
+    case 0x013d: return "GetCurrentProcessId";
+    case 0x013e: return "GetCurrentThread";
+    case 0x013f: return "GetCurrentThreadId";
+    case 0x0140: return "GetDateFormatA";
+    case 0x0141: return "GetDateFormatW";
+    case 0x0142: return "GetDefaultCommConfigA";
+    case 0x0143: return "GetDefaultCommConfigW";
+    case 0x0144: return "GetDefaultSortkeySize";
+    case 0x0145: return "GetDevicePowerState";
+    case 0x0146: return "GetDiskFreeSpaceA";
+    case 0x0147: return "GetDiskFreeSpaceExA";
+    case 0x0148: return "GetDiskFreeSpaceExW";
+    case 0x0149: return "GetDiskFreeSpaceW";
+    case 0x014a: return "GetDllDirectoryA";
+    case 0x014b: return "GetDllDirectoryW";
+    case 0x014c: return "GetDriveTypeA";
+    case 0x014d: return "GetDriveTypeW";
+    case 0x014e: return "GetEnvironmentStrings";
+    case 0x014f: return "GetEnvironmentStringsA";
+    case 0x0150: return "GetEnvironmentStringsW";
+    case 0x0151: return "GetEnvironmentVariableA";
+    case 0x0152: return "GetEnvironmentVariableW";
+    case 0x0153: return "GetExitCodeProcess";
+    case 0x0154: return "GetExitCodeThread";
+    case 0x0155: return "GetExpandedNameA";
+    case 0x0156: return "GetExpandedNameW";
+    case 0x0157: return "GetFileAttributesA";
+    case 0x0158: return "GetFileAttributesExA";
+    case 0x0159: return "GetFileAttributesExW";
+    case 0x015a: return "GetFileAttributesW";
+    case 0x015b: return "GetFileInformationByHandle";
+    case 0x015c: return "GetFileSize";
+    case 0x015d: return "GetFileSizeEx";
+    case 0x015e: return "GetFileTime";
+    case 0x015f: return "GetFileType";
+    case 0x0160: return "GetFirmwareEnvironmentVariableA";
+    case 0x0161: return "GetFirmwareEnvironmentVariableW";
+    case 0x0162: return "GetFullPathNameA";
+    case 0x0163: return "GetFullPathNameW";
+    case 0x0164: return "GetGeoInfoA";
+    case 0x0165: return "GetGeoInfoW";
+    case 0x0166: return "GetHandleContext";
+    case 0x0167: return "GetHandleInformation";
+    case 0x0168: return "GetLargestConsoleWindowSize";
+    case 0x0169: return "GetLastError";
+    case 0x016a: return "GetLinguistLangSize";
+    case 0x016b: return "GetLocalTime";
+    case 0x016c: return "GetLocaleInfoA";
+    case 0x016d: return "GetLocaleInfoW";
+    case 0x016e: return "GetLogicalDriveStringsA";
+    case 0x016f: return "GetLogicalDriveStringsW";
+    case 0x0170: return "GetLogicalDrives";
+    case 0x0171: return "GetLongPathNameA";
+    case 0x0172: return "GetLongPathNameW";
+    case 0x0173: return "GetMailslotInfo";
+    case 0x0174: return "GetModuleFileNameA";
+    case 0x0175: return "GetModuleFileNameW";
+    case 0x0176: return "GetModuleHandleA";
+    case 0x0177: return "GetModuleHandleExA";
+    case 0x0178: return "GetModuleHandleExW";
+    case 0x0179: return "GetModuleHandleW";
+    case 0x017a: return "GetNamedPipeHandleStateA";
+    case 0x017b: return "GetNamedPipeHandleStateW";
+    case 0x017c: return "GetNamedPipeInfo";
+    case 0x017d: return "GetNativeSystemInfo";
+    case 0x017e: return "GetNextVDMCommand";
+    case 0x017f: return "GetNlsSectionName";
+    case 0x0180: return "GetNumaAvailableMemory";
+    case 0x0181: return "GetNumaAvailableMemoryNode";
+    case 0x0182: return "GetNumaHighestNodeNumber";
+    case 0x0183: return "GetNumaNodeProcessorMask";
+    case 0x0184: return "GetNumaProcessorMap";
+    case 0x0185: return "GetNumaProcessorNode";
+    case 0x0186: return "GetNumberFormatA";
+    case 0x0187: return "GetNumberFormatW";
+    case 0x0188: return "GetNumberOfConsoleFonts";
+    case 0x0189: return "GetNumberOfConsoleInputEvents";
+    case 0x018a: return "GetNumberOfConsoleMouseButtons";
+    case 0x018b: return "GetOEMCP";
+    case 0x018c: return "GetOverlappedResult";
+    case 0x018d: return "GetPriorityClass";
+    case 0x018e: return "GetPrivateProfileIntA";
+    case 0x018f: return "GetPrivateProfileIntW";
+    case 0x0190: return "GetPrivateProfileSectionA";
+    case 0x0191: return "GetPrivateProfileSectionNamesA";
+    case 0x0192: return "GetPrivateProfileSectionNamesW";
+    case 0x0193: return "GetPrivateProfileSectionW";
+    case 0x0194: return "GetPrivateProfileStringA";
+    case 0x0195: return "GetPrivateProfileStringW";
+    case 0x0196: return "GetPrivateProfileStructA";
+    case 0x0197: return "GetPrivateProfileStructW";
+    case 0x0198: return "GetProcAddress";
+    case 0x0199: return "GetProcessAffinityMask";
+    case 0x019a: return "GetProcessHandleCount";
+    case 0x019b: return "GetProcessHeap";
+    case 0x019c: return "GetProcessHeaps";
+    case 0x019d: return "GetProcessId";
+    case 0x019e: return "GetProcessIoCounters";
+    case 0x019f: return "GetProcessPriorityBoost";
+    case 0x01a0: return "GetProcessShutdownParameters";
+    case 0x01a1: return "GetProcessTimes";
+    case 0x01a2: return "GetProcessVersion";
+    case 0x01a3: return "GetProcessWorkingSetSize";
+    case 0x01a4: return "GetProfileIntA";
+    case 0x01a5: return "GetProfileIntW";
+    case 0x01a6: return "GetProfileSectionA";
+    case 0x01a7: return "GetProfileSectionW";
+    case 0x01a8: return "GetProfileStringA";
+    case 0x01a9: return "GetProfileStringW";
+    case 0x01aa: return "GetQueuedCompletionStatus";
+    case 0x01ab: return "GetShortPathNameA";
+    case 0x01ac: return "GetShortPathNameW";
+    case 0x01ad: return "GetStartupInfoA";
+    case 0x01ae: return "GetStartupInfoW";
+    case 0x01af: return "GetStdHandle";
+    case 0x01b0: return "GetStringTypeA";
+    case 0x01b1: return "GetStringTypeExA";
+    case 0x01b2: return "GetStringTypeExW";
+    case 0x01b3: return "GetStringTypeW";
+    case 0x01b4: return "GetSystemDefaultLCID";
+    case 0x01b5: return "GetSystemDefaultLangID";
+    case 0x01b6: return "GetSystemDefaultUILanguage";
+    case 0x01b7: return "GetSystemDirectoryA";
+    case 0x01b8: return "GetSystemDirectoryW";
+    case 0x01b9: return "GetSystemInfo";
+    case 0x01ba: return "GetSystemPowerStatus";
+    case 0x01bb: return "GetSystemRegistryQuota";
+    case 0x01bc: return "GetSystemTime";
+    case 0x01bd: return "GetSystemTimeAdjustment";
+    case 0x01be: return "GetSystemTimeAsFileTime";
+    case 0x01bf: return "GetSystemTimes";
+    case 0x01c0: return "GetSystemWindowsDirectoryA";
+    case 0x01c1: return "GetSystemWindowsDirectoryW";
+    case 0x01c2: return "GetSystemWow64DirectoryA";
+    case 0x01c3: return "GetSystemWow64DirectoryW";
+    case 0x01c4: return "GetTapeParameters";
+    case 0x01c5: return "GetTapePosition";
+    case 0x01c6: return "GetTapeStatus";
+    case 0x01c7: return "GetTempFileNameA";
+    case 0x01c8: return "GetTempFileNameW";
+    case 0x01c9: return "GetTempPathA";
+    case 0x01ca: return "GetTempPathW";
+    case 0x01cb: return "GetThreadContext";
+    case 0x01cc: return "GetThreadIOPendingFlag";
+    case 0x01cd: return "GetThreadLocale";
+    case 0x01ce: return "GetThreadPriority";
+    case 0x01cf: return "GetThreadPriorityBoost";
+    case 0x01d0: return "GetThreadSelectorEntry";
+    case 0x01d1: return "GetThreadTimes";
+    case 0x01d2: return "GetTickCount";
+    case 0x01d3: return "GetTimeFormatA";
+    case 0x01d4: return "GetTimeFormatW";
+    case 0x01d5: return "GetTimeZoneInformation";
+    case 0x01d6: return "GetUserDefaultLCID";
+    case 0x01d7: return "GetUserDefaultLangID";
+    case 0x01d8: return "GetUserDefaultUILanguage";
+    case 0x01d9: return "GetUserGeoID";
+    case 0x01da: return "GetVDMCurrentDirectories";
+    case 0x01db: return "GetVersion";
+    case 0x01dc: return "GetVersionExA";
+    case 0x01dd: return "GetVersionExW";
+    case 0x01de: return "GetVolumeInformationA";
+    case 0x01df: return "GetVolumeInformationW";
+    case 0x01e0: return "GetVolumeNameForVolumeMountPointA";
+    case 0x01e1: return "GetVolumeNameForVolumeMountPointW";
+    case 0x01e2: return "GetVolumePathNameA";
+    case 0x01e3: return "GetVolumePathNameW";
+    case 0x01e4: return "GetVolumePathNamesForVolumeNameA";
+    case 0x01e5: return "GetVolumePathNamesForVolumeNameW";
+    case 0x01e6: return "GetWindowsDirectoryA";
+    case 0x01e7: return "GetWindowsDirectoryW";
+    case 0x01e8: return "GetWriteWatch";
+    case 0x01e9: return "GlobalAddAtomA";
+    case 0x01ea: return "GlobalAddAtomW";
+    case 0x01eb: return "GlobalAlloc";
+    case 0x01ec: return "GlobalCompact";
+    case 0x01ed: return "GlobalDeleteAtom";
+    case 0x01ee: return "GlobalFindAtomA";
+    case 0x01ef: return "GlobalFindAtomW";
+    case 0x01f0: return "GlobalFix";
+    case 0x01f1: return "GlobalFlags";
+    case 0x01f2: return "GlobalFree";
+    case 0x01f3: return "GlobalGetAtomNameA";
+    case 0x01f4: return "GlobalGetAtomNameW";
+    case 0x01f5: return "GlobalHandle";
+    case 0x01f6: return "GlobalLock";
+    case 0x01f7: return "GlobalMemoryStatus";
+    case 0x01f8: return "GlobalMemoryStatusEx";
+    case 0x01f9: return "GlobalReAlloc";
+    case 0x01fa: return "GlobalSize";
+    case 0x01fb: return "GlobalUnWire";
+    case 0x01fc: return "GlobalUnfix";
+    case 0x01fd: return "GlobalUnlock";
+    case 0x01fe: return "GlobalWire";
+    case 0x01ff: return "Heap32First";
+    case 0x0200: return "Heap32ListFirst";
+    case 0x0201: return "Heap32ListNext";
+    case 0x0202: return "Heap32Next";
+    case 0x0203: return "HeapAlloc";
+    case 0x0204: return "HeapCompact";
+    case 0x0205: return "HeapCreate";
+    case 0x0206: return "HeapCreateTagsW";
+    case 0x0207: return "HeapDestroy";
+    case 0x0208: return "HeapExtend";
+    case 0x0209: return "HeapFree";
+    case 0x020a: return "HeapLock";
+    case 0x020b: return "HeapQueryInformation";
+    case 0x020c: return "HeapQueryTagW";
+    case 0x020d: return "HeapReAlloc";
+    case 0x020e: return "HeapSetInformation";
+    case 0x020f: return "HeapSize";
+    case 0x0210: return "HeapSummary";
+    case 0x0211: return "HeapUnlock";
+    case 0x0212: return "HeapUsage";
+    case 0x0213: return "HeapValidate";
+    case 0x0214: return "HeapWalk";
+    case 0x0215: return "InitAtomTable";
+    case 0x0216: return "InitializeCriticalSection";
+    case 0x0217: return "InitializeCriticalSectionAndSpinCount";
+    case 0x0218: return "InitializeSListHead";
+    case 0x0219: return "InterlockedCompareExchange";
+    case 0x021a: return "InterlockedDecrement";
+    case 0x021b: return "InterlockedExchange";
+    case 0x021c: return "InterlockedExchangeAdd";
+    case 0x021d: return "InterlockedFlushSList";
+    case 0x021e: return "InterlockedIncrement";
+    case 0x021f: return "InterlockedPopEntrySList";
+    case 0x0220: return "InterlockedPushEntrySList";
+    case 0x0221: return "InvalidateConsoleDIBits";
+    case 0x0222: return "IsBadCodePtr";
+    case 0x0223: return "IsBadHugeReadPtr";
+    case 0x0224: return "IsBadHugeWritePtr";
+    case 0x0225: return "IsBadReadPtr";
+    case 0x0226: return "IsBadStringPtrA";
+    case 0x0227: return "IsBadStringPtrW";
+    case 0x0228: return "IsBadWritePtr";
+    case 0x0229: return "IsDBCSLeadByte";
+    case 0x022a: return "IsDBCSLeadByteEx";
+    case 0x022b: return "IsDebuggerPresent";
+    case 0x022c: return "IsProcessInJob";
+    case 0x022d: return "IsProcessorFeaturePresent";
+    case 0x022e: return "IsSystemResumeAutomatic";
+    case 0x022f: return "IsValidCodePage";
+    case 0x0230: return "IsValidLanguageGroup";
+    case 0x0231: return "IsValidLocale";
+    case 0x0232: return "IsValidUILanguage";
+    case 0x0233: return "IsWow64Process";
+    case 0x0234: return "LCMapStringA";
+    case 0x0235: return "LCMapStringW";
+    case 0x0236: return "LZClose";
+    case 0x0237: return "LZCloseFile";
+    case 0x0238: return "LZCopy";
+    case 0x0239: return "LZCreateFileW";
+    case 0x023a: return "LZDone";
+    case 0x023b: return "LZInit";
+    case 0x023c: return "LZOpenFileA";
+    case 0x023d: return "LZOpenFileW";
+    case 0x023e: return "LZRead";
+    case 0x023f: return "LZSeek";
+    case 0x0240: return "LZStart";
+    case 0x0241: return "LeaveCriticalSection";
+    case 0x0242: return "LoadLibraryA";
+    case 0x0243: return "LoadLibraryExA";
+    case 0x0244: return "LoadLibraryExW";
+    case 0x0245: return "LoadLibraryW";
+    case 0x0246: return "LoadModule";
+    case 0x0247: return "LoadResource";
+    case 0x0248: return "LocalAlloc";
+    case 0x0249: return "LocalCompact";
+    case 0x024a: return "LocalFileTimeToFileTime";
+    case 0x024b: return "LocalFlags";
+    case 0x024c: return "LocalFree";
+    case 0x024d: return "LocalHandle";
+    case 0x024e: return "LocalLock";
+    case 0x024f: return "LocalReAlloc";
+    case 0x0250: return "LocalShrink";
+    case 0x0251: return "LocalSize";
+    case 0x0252: return "LocalUnlock";
+    case 0x0253: return "LockFile";
+    case 0x0254: return "LockFileEx";
+    case 0x0255: return "LockResource";
+    case 0x0256: return "MapUserPhysicalPages";
+    case 0x0257: return "MapUserPhysicalPagesScatter";
+    case 0x0258: return "MapViewOfFile";
+    case 0x0259: return "MapViewOfFileEx";
+    case 0x025a: return "Module32First";
+    case 0x025b: return "Module32FirstW";
+    case 0x025c: return "Module32Next";
+    case 0x025d: return "Module32NextW";
+    case 0x025e: return "MoveFileA";
+    case 0x025f: return "MoveFileExA";
+    case 0x0260: return "MoveFileExW";
+    case 0x0261: return "MoveFileW";
+    case 0x0262: return "MoveFileWithProgressA";
+    case 0x0263: return "MoveFileWithProgressW";
+    case 0x0264: return "MulDiv";
+    case 0x0265: return "MultiByteToWideChar";
+    case 0x0266: return "NlsConvertIntegerToString";
+    case 0x0267: return "NlsGetCacheUpdateCount";
+    case 0x0268: return "NlsResetProcessLocale";
+    case 0x0269: return "NumaVirtualQueryNode";
+    case 0x026a: return "OpenConsoleW";
+    case 0x026b: return "OpenDataFile";
+    case 0x026c: return "OpenEventA";
+    case 0x026d: return "OpenEventW";
+    case 0x026e: return "OpenFile";
+    case 0x026f: return "OpenFileMappingA";
+    case 0x0270: return "OpenFileMappingW";
+    case 0x0271: return "OpenJobObjectA";
+    case 0x0272: return "OpenJobObjectW";
+    case 0x0273: return "OpenMutexA";
+    case 0x0274: return "OpenMutexW";
+    case 0x0275: return "OpenProcess";
+    case 0x0276: return "OpenProfileUserMapping";
+    case 0x0277: return "OpenSemaphoreA";
+    case 0x0278: return "OpenSemaphoreW";
+    case 0x0279: return "OpenThread";
+    case 0x027a: return "OpenWaitableTimerA";
+    case 0x027b: return "OpenWaitableTimerW";
+    case 0x027c: return "OutputDebugStringA";
+    case 0x027d: return "OutputDebugStringW";
+    case 0x027e: return "PeekConsoleInputA";
+    case 0x027f: return "PeekConsoleInputW";
+    case 0x0280: return "PeekNamedPipe";
+    case 0x0281: return "PostQueuedCompletionStatus";
+    case 0x0282: return "PrepareTape";
+    case 0x0283: return "PrivCopyFileExW";
+    case 0x0284: return "PrivMoveFileIdentityW";
+    case 0x0285: return "Process32First";
+    case 0x0286: return "Process32FirstW";
+    case 0x0287: return "Process32Next";
+    case 0x0288: return "Process32NextW";
+    case 0x0289: return "ProcessIdToSessionId";
+    case 0x028a: return "PulseEvent";
+    case 0x028b: return "PurgeComm";
+    case 0x028c: return "QueryActCtxW";
+    case 0x028d: return "QueryDepthSList";
+    case 0x028e: return "QueryDosDeviceA";
+    case 0x028f: return "QueryDosDeviceW";
+    case 0x0290: return "QueryInformationJobObject";
+    case 0x0291: return "QueryMemoryResourceNotification";
+    case 0x0292: return "QueryPerformanceCounter";
+    case 0x0293: return "QueryPerformanceFrequency";
+    case 0x0294: return "QueryWin31IniFilesMappedToRegistry";
+    case 0x0295: return "QueueUserAPC";
+    case 0x0296: return "QueueUserWorkItem";
+    case 0x0297: return "RaiseException";
+    case 0x0298: return "ReadConsoleA";
+    case 0x0299: return "ReadConsoleInputA";
+    case 0x029a: return "ReadConsoleInputExA";
+    case 0x029b: return "ReadConsoleInputExW";
+    case 0x029c: return "ReadConsoleInputW";
+    case 0x029d: return "ReadConsoleOutputA";
+    case 0x029e: return "ReadConsoleOutputAttribute";
+    case 0x029f: return "ReadConsoleOutputCharacterA";
+    case 0x02a0: return "ReadConsoleOutputCharacterW";
+    case 0x02a1: return "ReadConsoleOutputW";
+    case 0x02a2: return "ReadConsoleW";
+    case 0x02a3: return "ReadDirectoryChangesW";
+    case 0x02a4: return "ReadFile";
+    case 0x02a5: return "ReadFileEx";
+    case 0x02a6: return "ReadFileScatter";
+    case 0x02a7: return "ReadProcessMemory";
+    case 0x02a8: return "RegisterConsoleIME";
+    case 0x02a9: return "RegisterConsoleOS2";
+    case 0x02aa: return "RegisterConsoleVDM";
+    case 0x02ab: return "RegisterWaitForInputIdle";
+    case 0x02ac: return "RegisterWaitForSingleObject";
+    case 0x02ad: return "RegisterWaitForSingleObjectEx";
+    case 0x02ae: return "RegisterWowBaseHandlers";
+    case 0x02af: return "RegisterWowExec";
+    case 0x02b0: return "ReleaseActCtx";
+    case 0x02b1: return "ReleaseMutex";
+    case 0x02b2: return "ReleaseSemaphore";
+    case 0x02b3: return "RemoveDirectoryA";
+    case 0x02b4: return "RemoveDirectoryW";
+    case 0x02b5: return "RemoveLocalAlternateComputerNameA";
+    case 0x02b6: return "RemoveLocalAlternateComputerNameW";
+    case 0x02b7: return "RemoveVectoredExceptionHandler";
+    case 0x02b8: return "ReplaceFile";
+    case 0x02b9: return "ReplaceFileA";
+    case 0x02ba: return "ReplaceFileW";
+    case 0x02bb: return "RequestDeviceWakeup";
+    case 0x02bc: return "RequestWakeupLatency";
+    case 0x02bd: return "ResetEvent";
+    case 0x02be: return "ResetWriteWatch";
+    case 0x02bf: return "RestoreLastError";
+    case 0x02c0: return "ResumeThread";
+    case 0x02c1: return "RtlCaptureContext";
+    case 0x02c2: return "RtlCaptureStackBackTrace";
+    case 0x02c3: return "RtlFillMemory";
+    case 0x02c4: return "RtlMoveMemory";
+    case 0x02c5: return "RtlUnwind";
+    case 0x02c6: return "RtlZeroMemory";
+    case 0x02c7: return "ScrollConsoleScreenBufferA";
+    case 0x02c8: return "ScrollConsoleScreenBufferW";
+    case 0x02c9: return "SearchPathA";
+    case 0x02ca: return "SearchPathW";
+    case 0x02cb: return "SetCPGlobal";
+    case 0x02cc: return "SetCalendarInfoA";
+    case 0x02cd: return "SetCalendarInfoW";
+    case 0x02ce: return "SetClientTimeZoneInformation";
+    case 0x02cf: return "SetComPlusPackageInstallStatus";
+    case 0x02d0: return "SetCommBreak";
+    case 0x02d1: return "SetCommConfig";
+    case 0x02d2: return "SetCommMask";
+    case 0x02d3: return "SetCommState";
+    case 0x02d4: return "SetCommTimeouts";
+    case 0x02d5: return "SetComputerNameA";
+    case 0x02d6: return "SetComputerNameExA";
+    case 0x02d7: return "SetComputerNameExW";
+    case 0x02d8: return "SetComputerNameW";
+    case 0x02d9: return "SetConsoleActiveScreenBuffer";
+    case 0x02da: return "SetConsoleCP";
+    case 0x02db: return "SetConsoleCommandHistoryMode";
+    case 0x02dc: return "SetConsoleCtrlHandler";
+    case 0x02dd: return "SetConsoleCursor";
+    case 0x02de: return "SetConsoleCursorInfo";
+    case 0x02df: return "SetConsoleCursorMode";
+    case 0x02e0: return "SetConsoleCursorPosition";
+    case 0x02e1: return "SetConsoleDisplayMode";
+    case 0x02e2: return "SetConsoleFont";
+    case 0x02e3: return "SetConsoleHardwareState";
+    case 0x02e4: return "SetConsoleIcon";
+    case 0x02e5: return "SetConsoleInputExeNameA";
+    case 0x02e6: return "SetConsoleInputExeNameW";
+    case 0x02e7: return "SetConsoleKeyShortcuts";
+    case 0x02e8: return "SetConsoleLocalEUDC";
+    case 0x02e9: return "SetConsoleMaximumWindowSize";
+    case 0x02ea: return "SetConsoleMenuClose";
+    case 0x02eb: return "SetConsoleMode";
+    case 0x02ec: return "SetConsoleNlsMode";
+    case 0x02ed: return "SetConsoleNumberOfCommandsA";
+    case 0x02ee: return "SetConsoleNumberOfCommandsW";
+    case 0x02ef: return "SetConsoleOS2OemFormat";
+    case 0x02f0: return "SetConsoleOutputCP";
+    case 0x02f1: return "SetConsolePalette";
+    case 0x02f2: return "SetConsoleScreenBufferSize";
+    case 0x02f3: return "SetConsoleTextAttribute";
+    case 0x02f4: return "SetConsoleTitleA";
+    case 0x02f5: return "SetConsoleTitleW";
+    case 0x02f6: return "SetConsoleWindowInfo";
+    case 0x02f7: return "SetCriticalSectionSpinCount";
+    case 0x02f8: return "SetCurrentDirectoryA";
+    case 0x02f9: return "SetCurrentDirectoryW";
+    case 0x02fa: return "SetDefaultCommConfigA";
+    case 0x02fb: return "SetDefaultCommConfigW";
+    case 0x02fc: return "SetDllDirectoryA";
+    case 0x02fd: return "SetDllDirectoryW";
+    case 0x02fe: return "SetEndOfFile";
+    case 0x02ff: return "SetEnvironmentVariableA";
+    case 0x0300: return "SetEnvironmentVariableW";
+    case 0x0301: return "SetErrorMode";
+    case 0x0302: return "SetEvent";
+    case 0x0303: return "SetFileApisToANSI";
+    case 0x0304: return "SetFileApisToOEM";
+    case 0x0305: return "SetFileAttributesA";
+    case 0x0306: return "SetFileAttributesW";
+    case 0x0307: return "SetFilePointer";
+    case 0x0308: return "SetFilePointerEx";
+    case 0x0309: return "SetFileShortNameA";
+    case 0x030a: return "SetFileShortNameW";
+    case 0x030b: return "SetFileTime";
+    case 0x030c: return "SetFileValidData";
+    case 0x030d: return "SetFirmwareEnvironmentVariableA";
+    case 0x030e: return "SetFirmwareEnvironmentVariableW";
+    case 0x030f: return "SetHandleContext";
+    case 0x0310: return "SetHandleCount";
+    case 0x0311: return "SetHandleInformation";
+    case 0x0312: return "SetInformationJobObject";
+    case 0x0313: return "SetLastConsoleEventActive";
+    case 0x0314: return "SetLastError";
+    case 0x0315: return "SetLocalPrimaryComputerNameA";
+    case 0x0316: return "SetLocalPrimaryComputerNameW";
+    case 0x0317: return "SetLocalTime";
+    case 0x0318: return "SetLocaleInfoA";
+    case 0x0319: return "SetLocaleInfoW";
+    case 0x031a: return "SetMailslotInfo";
+    case 0x031b: return "SetMessageWaitingIndicator";
+    case 0x031c: return "SetNamedPipeHandleState";
+    case 0x031d: return "SetPriorityClass";
+    case 0x031e: return "SetProcessAffinityMask";
+    case 0x031f: return "SetProcessPriorityBoost";
+    case 0x0320: return "SetProcessShutdownParameters";
+    case 0x0321: return "SetProcessWorkingSetSize";
+    case 0x0322: return "SetStdHandle";
+    case 0x0323: return "SetSystemPowerState";
+    case 0x0324: return "SetSystemTime";
+    case 0x0325: return "SetSystemTimeAdjustment";
+    case 0x0326: return "SetTapeParameters";
+    case 0x0327: return "SetTapePosition";
+    case 0x0328: return "SetTermsrvAppInstallMode";
+    case 0x0329: return "SetThreadAffinityMask";
+    case 0x032a: return "SetThreadContext";
+    case 0x032b: return "SetThreadExecutionState";
+    case 0x032c: return "SetThreadIdealProcessor";
+    case 0x032d: return "SetThreadLocale";
+    case 0x032e: return "SetThreadPriority";
+    case 0x032f: return "SetThreadPriorityBoost";
+    case 0x0330: return "SetThreadUILanguage";
+    case 0x0331: return "SetTimeZoneInformation";
+    case 0x0332: return "SetTimerQueueTimer";
+    case 0x0333: return "SetUnhandledExceptionFilter";
+    case 0x0334: return "SetUserGeoID";
+    case 0x0335: return "SetVDMCurrentDirectories";
+    case 0x0336: return "SetVolumeLabelA";
+    case 0x0337: return "SetVolumeLabelW";
+    case 0x0338: return "SetVolumeMountPointA";
+    case 0x0339: return "SetVolumeMountPointW";
+    case 0x033a: return "SetWaitableTimer";
+    case 0x033b: return "SetupComm";
+    case 0x033c: return "ShowConsoleCursor";
+    case 0x033d: return "SignalObjectAndWait";
+    case 0x033e: return "SizeofResource";
+    case 0x033f: return "Sleep";
+    case 0x0340: return "SleepEx";
+    case 0x0341: return "SuspendThread";
+    case 0x0342: return "SwitchToFiber";
+    case 0x0343: return "SwitchToThread";
+    case 0x0344: return "SystemTimeToFileTime";
+    case 0x0345: return "SystemTimeToTzSpecificLocalTime";
+    case 0x0346: return "TerminateJobObject";
+    case 0x0347: return "TerminateProcess";
+    case 0x0348: return "TerminateThread";
+    case 0x0349: return "TermsrvAppInstallMode";
+    case 0x034a: return "Thread32First";
+    case 0x034b: return "Thread32Next";
+    case 0x034c: return "TlsAlloc";
+    case 0x034d: return "TlsFree";
+    case 0x034e: return "TlsGetValue";
+    case 0x034f: return "TlsSetValue";
+    case 0x0350: return "Toolhelp32ReadProcessMemory";
+    case 0x0351: return "TransactNamedPipe";
+    case 0x0352: return "TransmitCommChar";
+    case 0x0353: return "TrimVirtualBuffer";
+    case 0x0354: return "TryEnterCriticalSection";
+    case 0x0355: return "TzSpecificLocalTimeToSystemTime";
+    case 0x0356: return "UTRegister";
+    case 0x0357: return "UTUnRegister";
+    case 0x0358: return "UnhandledExceptionFilter";
+    case 0x0359: return "UnlockFile";
+    case 0x035a: return "UnlockFileEx";
+    case 0x035b: return "UnmapViewOfFile";
+    case 0x035c: return "UnregisterConsoleIME";
+    case 0x035d: return "UnregisterWait";
+    case 0x035e: return "UnregisterWaitEx";
+    case 0x035f: return "UpdateResourceA";
+    case 0x0360: return "UpdateResourceW";
+    case 0x0361: return "VDMConsoleOperation";
+    case 0x0362: return "VDMOperationStarted";
+    case 0x0363: return "ValidateLCType";
+    case 0x0364: return "ValidateLocale";
+    case 0x0365: return "VerLanguageNameA";
+    case 0x0366: return "VerLanguageNameW";
+    case 0x0367: return "VerSetConditionMask";
+    case 0x0368: return "VerifyConsoleIoHandle";
+    case 0x0369: return "VerifyVersionInfoA";
+    case 0x036a: return "VerifyVersionInfoW";
+    case 0x036b: return "VirtualAlloc";
+    case 0x036c: return "VirtualAllocEx";
+    case 0x036d: return "VirtualBufferExceptionHandler";
+    case 0x036e: return "VirtualFree";
+    case 0x036f: return "VirtualFreeEx";
+    case 0x0370: return "VirtualLock";
+    case 0x0371: return "VirtualProtect";
+    case 0x0372: return "VirtualProtectEx";
+    case 0x0373: return "VirtualQuery";
+    case 0x0374: return "VirtualQueryEx";
+    case 0x0375: return "VirtualUnlock";
+    case 0x0376: return "WTSGetActiveConsoleSessionId";
+    case 0x0377: return "WaitCommEvent";
+    case 0x0378: return "WaitForDebugEvent";
+    case 0x0379: return "WaitForMultipleObjects";
+    case 0x037a: return "WaitForMultipleObjectsEx";
+    case 0x037b: return "WaitForSingleObject";
+    case 0x037c: return "WaitForSingleObjectEx";
+    case 0x037d: return "WaitNamedPipeA";
+    case 0x037e: return "WaitNamedPipeW";
+    case 0x037f: return "WideCharToMultiByte";
+    case 0x0380: return "WinExec";
+    case 0x0381: return "WriteConsoleA";
+    case 0x0382: return "WriteConsoleInputA";
+    case 0x0383: return "WriteConsoleInputVDMA";
+    case 0x0384: return "WriteConsoleInputVDMW";
+    case 0x0385: return "WriteConsoleInputW";
+    case 0x0386: return "WriteConsoleOutputA";
+    case 0x0387: return "WriteConsoleOutputAttribute";
+    case 0x0388: return "WriteConsoleOutputCharacterA";
+    case 0x0389: return "WriteConsoleOutputCharacterW";
+    case 0x038a: return "WriteConsoleOutputW";
+    case 0x038b: return "WriteConsoleW";
+    case 0x038c: return "WriteFile";
+    case 0x038d: return "WriteFileEx";
+    case 0x038e: return "WriteFileGather";
+    case 0x038f: return "WritePrivateProfileSectionA";
+    case 0x0390: return "WritePrivateProfileSectionW";
+    case 0x0391: return "WritePrivateProfileStringA";
+    case 0x0392: return "WritePrivateProfileStringW";
+    case 0x0393: return "WritePrivateProfileStructA";
+    case 0x0394: return "WritePrivateProfileStructW";
+    case 0x0395: return "WriteProcessMemory";
+    case 0x0396: return "WriteProfileSectionA";
+    case 0x0397: return "WriteProfileSectionW";
+    case 0x0398: return "WriteProfileStringA";
+    case 0x0399: return "WriteProfileStringW";
+    case 0x039a: return "WriteTapemark";
+    case 0x039b: return "ZombifyActCtx";
+    case 0x039c: return "_hread";
+    case 0x039d: return "_hwrite";
+    case 0x039e: return "_lclose";
+    case 0x039f: return "_lcreat";
+    case 0x03a0: return "_llseek";
+    case 0x03a1: return "_lopen";
+    case 0x03a2: return "_lread";
+    case 0x03a3: return "_lwrite";
+    case 0x03a4: return "lstrcat";
+    case 0x03a5: return "lstrcatA";
+    case 0x03a6: return "lstrcatW";
+    case 0x03a7: return "lstrcmp";
+    case 0x03a8: return "lstrcmpA";
+    case 0x03a9: return "lstrcmpW";
+    case 0x03aa: return "lstrcmpi";
+    case 0x03ab: return "lstrcmpiA";
+    case 0x03ac: return "lstrcmpiW";
+    case 0x03ad: return "lstrcpy";
+    case 0x03ae: return "lstrcpyA";
+    case 0x03af: return "lstrcpyW";
+    case 0x03b0: return "lstrcpyn";
+    case 0x03b1: return "lstrcpynA";
+    case 0x03b2: return "lstrcpynW";
+    case 0x03b3: return "lstrlen";
+    case 0x03b4: return "lstrlenA";
+    case 0x03b5: return "lstrlenW";
   }
   return nullptr;
 }


-}
 }

-#endif

+#endif
diff --git a/deps/LIEF/src/PE/utils/ordinals_lookup_tables/libraries_table.hpp b/deps/LIEF/src/PE/utils/ordinals_lookup_tables/libraries_table.hpp
index a933614b92f..0647c55e49a 100644
--- a/deps/LIEF/src/PE/utils/ordinals_lookup_tables/libraries_table.hpp
+++ b/deps/LIEF/src/PE/utils/ordinals_lookup_tables/libraries_table.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/deps/LIEF/src/PE/utils/ordinals_lookup_tables/mfc42u_dll_lookup.hpp b/deps/LIEF/src/PE/utils/ordinals_lookup_tables/mfc42u_dll_lookup.hpp
index ebc0b734fb6..b46e3764f3c 100644
--- a/deps/LIEF/src/PE/utils/ordinals_lookup_tables/mfc42u_dll_lookup.hpp
+++ b/deps/LIEF/src/PE/utils/ordinals_lookup_tables/mfc42u_dll_lookup.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -17,24 +17,26 @@
 #define LIEF_PE_MFC42U_DLL_LOOKUP_H
 #include <cstdint>

-namespace LIEF {
-namespace PE {
+
+namespace LIEF::PE {

 inline const char* mfc42u_dll_lookup(uint32_t i) {
-  switch(i) {
-  case 0x0005: return "?classCCachedDataPathProperty@CCachedDataPathProperty@@2UCRuntimeClass@@B";
-  case 0x0006: return "?classCDataPathProperty@CDataPathProperty@@2UCRuntimeClass@@B";
-  case 0x0002: return "DllCanUnloadNow";
-  case 0x0001: return "DllGetClassObject";
-  case 0x0003: return "DllRegisterServer";
-  case 0x0004: return "DllUnregisterServer";
+  switch (i) {
+    case 0x0005:
+      return "?classCCachedDataPathProperty@CCachedDataPathProperty@@"
+             "2UCRuntimeClass@@B";
+    case 0x0006:
+      return "?classCDataPathProperty@CDataPathProperty@@2UCRuntimeClass@@B";
+    case 0x0002: return "DllCanUnloadNow";
+    case 0x0001: return "DllGetClassObject";
+    case 0x0003: return "DllRegisterServer";
+    case 0x0004: return "DllUnregisterServer";
   }
   return nullptr;
 }


-}
 }

-#endif

+#endif
diff --git a/deps/LIEF/src/PE/utils/ordinals_lookup_tables/msvcp110_dll_lookup.hpp b/deps/LIEF/src/PE/utils/ordinals_lookup_tables/msvcp110_dll_lookup.hpp
index 68fa9bfc1de..8ee076d4fde 100644
--- a/deps/LIEF/src/PE/utils/ordinals_lookup_tables/msvcp110_dll_lookup.hpp
+++ b/deps/LIEF/src/PE/utils/ordinals_lookup_tables/msvcp110_dll_lookup.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -17,1609 +17,3290 @@
 #define LIEF_PE_MSVCP110_DLL_LOOKUP_H
 #include <cstdint>

-namespace LIEF {
-namespace PE {
+
+namespace LIEF::PE {

 inline const char* msvcp110_dll_lookup(uint32_t i) {
-  switch(i) {
-  case 0x0001: return "??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z";
-  case 0x0002: return "??$_Getvals@_W@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z";
-  case 0x0003: return "??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z";
-  case 0x0004: return "??0?$_Yarn@D@std@@QEAA@AEBV01@@Z";
-  case 0x0005: return "??0?$_Yarn@D@std@@QEAA@PEBD@Z";
-  case 0x0006: return "??0?$_Yarn@D@std@@QEAA@XZ";
-  case 0x0007: return "??0?$_Yarn@_W@std@@QEAA@XZ";
-  case 0x0008: return "??0?$basic_ios@DU?$char_traits@D@std@@@std@@IEAA@XZ";
-  case 0x0009: return "??0?$basic_ios@DU?$char_traits@D@std@@@std@@QEAA@PEAV?$basic_streambuf@DU?$char_traits@D@std@@@1@@Z";
-  case 0x000a: return "??0?$basic_ios@GU?$char_traits@G@std@@@std@@IEAA@XZ";
-  case 0x000b: return "??0?$basic_ios@GU?$char_traits@G@std@@@std@@QEAA@PEAV?$basic_streambuf@GU?$char_traits@G@std@@@1@@Z";
-  case 0x000c: return "??0?$basic_ios@_WU?$char_traits@_W@std@@@std@@IEAA@XZ";
-  case 0x000d: return "??0?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAA@PEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@@Z";
-  case 0x000e: return "??0?$basic_iostream@DU?$char_traits@D@std@@@std@@IEAA@$$QEAV01@@Z";
-  case 0x000f: return "??0?$basic_iostream@DU?$char_traits@D@std@@@std@@QEAA@PEAV?$basic_streambuf@DU?$char_traits@D@std@@@1@@Z";
-  case 0x0010: return "??0?$basic_iostream@GU?$char_traits@G@std@@@std@@IEAA@$$QEAV01@@Z";
-  case 0x0011: return "??0?$basic_iostream@GU?$char_traits@G@std@@@std@@QEAA@PEAV?$basic_streambuf@GU?$char_traits@G@std@@@1@@Z";
-  case 0x0012: return "??0?$basic_iostream@_WU?$char_traits@_W@std@@@std@@IEAA@$$QEAV01@@Z";
-  case 0x0013: return "??0?$basic_iostream@_WU?$char_traits@_W@std@@@std@@QEAA@PEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@@Z";
-  case 0x0014: return "??0?$basic_istream@DU?$char_traits@D@std@@@std@@IEAA@$$QEAV01@@Z";
-  case 0x0015: return "??0?$basic_istream@DU?$char_traits@D@std@@@std@@QEAA@PEAV?$basic_streambuf@DU?$char_traits@D@std@@@1@_N1@Z";
-  case 0x0016: return "??0?$basic_istream@DU?$char_traits@D@std@@@std@@QEAA@PEAV?$basic_streambuf@DU?$char_traits@D@std@@@1@_N@Z";
-  case 0x0017: return "??0?$basic_istream@DU?$char_traits@D@std@@@std@@QEAA@W4_Uninitialized@1@@Z";
-  case 0x0018: return "??0?$basic_istream@GU?$char_traits@G@std@@@std@@IEAA@$$QEAV01@@Z";
-  case 0x0019: return "??0?$basic_istream@GU?$char_traits@G@std@@@std@@QEAA@PEAV?$basic_streambuf@GU?$char_traits@G@std@@@1@_N1@Z";
-  case 0x001a: return "??0?$basic_istream@GU?$char_traits@G@std@@@std@@QEAA@PEAV?$basic_streambuf@GU?$char_traits@G@std@@@1@_N@Z";
-  case 0x001b: return "??0?$basic_istream@GU?$char_traits@G@std@@@std@@QEAA@W4_Uninitialized@1@@Z";
-  case 0x001c: return "??0?$basic_istream@_WU?$char_traits@_W@std@@@std@@IEAA@$$QEAV01@@Z";
-  case 0x001d: return "??0?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAA@PEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@_N1@Z";
-  case 0x001e: return "??0?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAA@PEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@_N@Z";
-  case 0x001f: return "??0?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAA@W4_Uninitialized@1@@Z";
-  case 0x0020: return "??0?$basic_ostream@DU?$char_traits@D@std@@@std@@IEAA@$$QEAV01@@Z";
-  case 0x0021: return "??0?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@PEAV?$basic_streambuf@DU?$char_traits@D@std@@@1@_N@Z";
-  case 0x0022: return "??0?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@W4_Uninitialized@1@_N@Z";
-  case 0x0023: return "??0?$basic_ostream@GU?$char_traits@G@std@@@std@@IEAA@$$QEAV01@@Z";
-  case 0x0024: return "??0?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAA@PEAV?$basic_streambuf@GU?$char_traits@G@std@@@1@_N@Z";
-  case 0x0025: return "??0?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAA@W4_Uninitialized@1@_N@Z";
-  case 0x0026: return "??0?$basic_ostream@_WU?$char_traits@_W@std@@@std@@IEAA@$$QEAV01@@Z";
-  case 0x0027: return "??0?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAA@PEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@_N@Z";
-  case 0x0028: return "??0?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAA@W4_Uninitialized@1@_N@Z";
-  case 0x0029: return "??0?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAA@AEBV01@@Z";
-  case 0x002a: return "??0?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAA@W4_Uninitialized@1@@Z";
-  case 0x002b: return "??0?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAA@XZ";
-  case 0x002c: return "??0?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAA@AEBV01@@Z";
-  case 0x002d: return "??0?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAA@W4_Uninitialized@1@@Z";
-  case 0x002e: return "??0?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAA@XZ";
-  case 0x002f: return "??0?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAA@AEBV01@@Z";
-  case 0x0030: return "??0?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAA@W4_Uninitialized@1@@Z";
-  case 0x0031: return "??0?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAA@XZ";
-  case 0x0032: return "??0?$codecvt@DDH@std@@QEAA@AEBV_Locinfo@1@_K@Z";
-  case 0x0033: return "??0?$codecvt@DDH@std@@QEAA@_K@Z";
-  case 0x0034: return "??0?$codecvt@GDH@std@@QEAA@AEBV_Locinfo@1@_K@Z";
-  case 0x0035: return "??0?$codecvt@GDH@std@@QEAA@_K@Z";
-  case 0x0036: return "??0?$codecvt@_WDH@std@@QEAA@AEBV_Locinfo@1@_K@Z";
-  case 0x0037: return "??0?$codecvt@_WDH@std@@QEAA@_K@Z";
-  case 0x0038: return "??0?$ctype@D@std@@QEAA@AEBV_Locinfo@1@_K@Z";
-  case 0x0039: return "??0?$ctype@D@std@@QEAA@PEBF_N_K@Z";
-  case 0x003a: return "??0?$ctype@G@std@@QEAA@AEBV_Locinfo@1@_K@Z";
-  case 0x003b: return "??0?$ctype@G@std@@QEAA@_K@Z";
-  case 0x003c: return "??0?$ctype@_W@std@@QEAA@AEBV_Locinfo@1@_K@Z";
-  case 0x003d: return "??0?$ctype@_W@std@@QEAA@_K@Z";
-  case 0x003e: return "??0?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEAA@AEBV_Locinfo@1@_K@Z";
-  case 0x003f: return "??0?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEAA@_K@Z";
-  case 0x0040: return "??0?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEAA@AEBV_Locinfo@1@_K@Z";
-  case 0x0041: return "??0?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEAA@_K@Z";
-  case 0x0042: return "??0?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEAA@AEBV_Locinfo@1@_K@Z";
-  case 0x0043: return "??0?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEAA@_K@Z";
-  case 0x0044: return "??0?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEAA@AEBV_Locinfo@1@_K@Z";
-  case 0x0045: return "??0?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEAA@_K@Z";
-  case 0x0046: return "??0?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEAA@AEBV_Locinfo@1@_K@Z";
-  case 0x0047: return "??0?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEAA@_K@Z";
-  case 0x0048: return "??0?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEAA@AEBV_Locinfo@1@_K@Z";
-  case 0x0049: return "??0?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEAA@_K@Z";
-  case 0x004a: return "??0?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAA@PEBD_K@Z";
-  case 0x004b: return "??0?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEAA@AEBV_Locinfo@1@_K@Z";
-  case 0x004c: return "??0?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEAA@_K@Z";
-  case 0x004d: return "??0?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@IEAA@PEBD_K@Z";
-  case 0x004e: return "??0?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEAA@AEBV_Locinfo@1@_K@Z";
-  case 0x004f: return "??0?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEAA@_K@Z";
-  case 0x0050: return "??0?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAA@PEBD_K@Z";
-  case 0x0051: return "??0?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEAA@AEBV_Locinfo@1@_K@Z";
-  case 0x0052: return "??0?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEAA@_K@Z";
-  case 0x0053: return "??0?$time_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEAA@AEBV_Locinfo@1@_K@Z";
-  case 0x0054: return "??0?$time_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEAA@_K@Z";
-  case 0x0055: return "??0?$time_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@IEAA@PEBD_K@Z";
-  case 0x0056: return "??0?$time_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEAA@AEBV_Locinfo@1@_K@Z";
-  case 0x0057: return "??0?$time_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEAA@_K@Z";
-  case 0x0058: return "??0?$time_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAA@PEBD_K@Z";
-  case 0x0059: return "??0?$time_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEAA@AEBV_Locinfo@1@_K@Z";
-  case 0x005a: return "??0?$time_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEAA@_K@Z";
-  case 0x005b: return "??0Init@ios_base@std@@QEAA@XZ";
-  case 0x005c: return "??0_Concurrent_queue_base_v4@details@Concurrency@@IEAA@_K@Z";
-  case 0x005d: return "??0_Concurrent_queue_iterator_base_v4@details@Concurrency@@IEAA@AEBV_Concurrent_queue_base_v4@12@@Z";
-  case 0x005e: return "??0_Container_base12@std@@QEAA@AEBU01@@Z";
-  case 0x005f: return "??0_Container_base12@std@@QEAA@XZ";
-  case 0x0060: return "??0_Facet_base@std@@QEAA@AEBV01@@Z";
-  case 0x0061: return "??0_Facet_base@std@@QEAA@XZ";
-  case 0x0062: return "??0_Init_locks@std@@QEAA@XZ";
-  case 0x0063: return "??0_Locimp@locale@std@@AEAA@AEBV012@@Z";
-  case 0x0064: return "??0_Locimp@locale@std@@AEAA@_N@Z";
-  case 0x0065: return "??0_Locinfo@std@@QEAA@HPEBD@Z";
-  case 0x0066: return "??0_Locinfo@std@@QEAA@PEBD@Z";
-  case 0x0067: return "??0_Lockit@std@@QEAA@H@Z";
-  case 0x0068: return "??0_Lockit@std@@QEAA@XZ";
-  case 0x0069: return "??0_Pad@std@@QEAA@AEBV01@@Z";
-  case 0x006a: return "??0_Pad@std@@QEAA@XZ";
-  case 0x006b: return "??0_Runtime_object@details@Concurrency@@QEAA@H@Z";
-  case 0x006c: return "??0_Runtime_object@details@Concurrency@@QEAA@XZ";
-  case 0x006d: return "??0_Timevec@std@@QEAA@AEBV01@@Z";
-  case 0x006e: return "??0_Timevec@std@@QEAA@PEAX@Z";
-  case 0x006f: return "??0_UShinit@std@@QEAA@XZ";
-  case 0x0070: return "??0_Winit@std@@QEAA@XZ";
-  case 0x0071: return "??0agent@Concurrency@@QEAA@AEAVScheduleGroup@1@@Z";
-  case 0x0072: return "??0agent@Concurrency@@QEAA@AEAVScheduler@1@@Z";
-  case 0x0073: return "??0agent@Concurrency@@QEAA@XZ";
-  case 0x0074: return "??0codecvt_base@std@@QEAA@_K@Z";
-  case 0x0075: return "??0ctype_base@std@@QEAA@_K@Z";
-  case 0x0076: return "??0facet@locale@std@@IEAA@_K@Z";
-  case 0x0077: return "??0id@locale@std@@QEAA@_K@Z";
-  case 0x0078: return "??0ios_base@std@@IEAA@XZ";
-  case 0x0079: return "??0time_base@std@@QEAA@_K@Z";
-  case 0x007a: return "??1?$_Yarn@D@std@@QEAA@XZ";
-  case 0x007b: return "??1?$_Yarn@_W@std@@QEAA@XZ";
-  case 0x007c: return "??1?$basic_ios@DU?$char_traits@D@std@@@std@@UEAA@XZ";
-  case 0x007d: return "??1?$basic_ios@GU?$char_traits@G@std@@@std@@UEAA@XZ";
-  case 0x007e: return "??1?$basic_ios@_WU?$char_traits@_W@std@@@std@@UEAA@XZ";
-  case 0x007f: return "??1?$basic_iostream@DU?$char_traits@D@std@@@std@@UEAA@XZ";
-  case 0x0080: return "??1?$basic_iostream@GU?$char_traits@G@std@@@std@@UEAA@XZ";
-  case 0x0081: return "??1?$basic_iostream@_WU?$char_traits@_W@std@@@std@@UEAA@XZ";
-  case 0x0082: return "??1?$basic_istream@DU?$char_traits@D@std@@@std@@UEAA@XZ";
-  case 0x0083: return "??1?$basic_istream@GU?$char_traits@G@std@@@std@@UEAA@XZ";
-  case 0x0084: return "??1?$basic_istream@_WU?$char_traits@_W@std@@@std@@UEAA@XZ";
-  case 0x0085: return "??1?$basic_ostream@DU?$char_traits@D@std@@@std@@UEAA@XZ";
-  case 0x0086: return "??1?$basic_ostream@GU?$char_traits@G@std@@@std@@UEAA@XZ";
-  case 0x0087: return "??1?$basic_ostream@_WU?$char_traits@_W@std@@@std@@UEAA@XZ";
-  case 0x0088: return "??1?$basic_streambuf@DU?$char_traits@D@std@@@std@@UEAA@XZ";
-  case 0x0089: return "??1?$basic_streambuf@GU?$char_traits@G@std@@@std@@UEAA@XZ";
-  case 0x008a: return "??1?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@UEAA@XZ";
-  case 0x008b: return "??1?$codecvt@DDH@std@@MEAA@XZ";
-  case 0x008c: return "??1?$codecvt@GDH@std@@MEAA@XZ";
-  case 0x008d: return "??1?$codecvt@_WDH@std@@MEAA@XZ";
-  case 0x008e: return "??1?$ctype@D@std@@MEAA@XZ";
-  case 0x008f: return "??1?$ctype@G@std@@MEAA@XZ";
-  case 0x0090: return "??1?$ctype@_W@std@@MEAA@XZ";
-  case 0x0091: return "??1?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MEAA@XZ";
-  case 0x0092: return "??1?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@MEAA@XZ";
-  case 0x0093: return "??1?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@MEAA@XZ";
-  case 0x0094: return "??1?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MEAA@XZ";
-  case 0x0095: return "??1?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@MEAA@XZ";
-  case 0x0096: return "??1?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@MEAA@XZ";
-  case 0x0097: return "??1?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MEAA@XZ";
-  case 0x0098: return "??1?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@MEAA@XZ";
-  case 0x0099: return "??1?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@MEAA@XZ";
-  case 0x009a: return "??1?$time_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MEAA@XZ";
-  case 0x009b: return "??1?$time_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@MEAA@XZ";
-  case 0x009c: return "??1?$time_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@MEAA@XZ";
-  case 0x009d: return "??1Init@ios_base@std@@QEAA@XZ";
-  case 0x009e: return "??1_Concurrent_queue_base_v4@details@Concurrency@@MEAA@XZ";
-  case 0x009f: return "??1_Concurrent_queue_iterator_base_v4@details@Concurrency@@IEAA@XZ";
-  case 0x00a0: return "??1_Concurrent_vector_base_v4@details@Concurrency@@IEAA@XZ";
-  case 0x00a1: return "??1_Container_base12@std@@QEAA@XZ";
-  case 0x00a2: return "??1_Facet_base@std@@UEAA@XZ";
-  case 0x00a3: return "??1_Init_locks@std@@QEAA@XZ";
-  case 0x00a4: return "??1_Locimp@locale@std@@MEAA@XZ";
-  case 0x00a5: return "??1_Locinfo@std@@QEAA@XZ";
-  case 0x00a6: return "??1_Lockit@std@@QEAA@XZ";
-  case 0x00a7: return "??1_Pad@std@@QEAA@XZ";
-  case 0x00a8: return "??1_Timevec@std@@QEAA@XZ";
-  case 0x00a9: return "??1_UShinit@std@@QEAA@XZ";
-  case 0x00aa: return "??1_Winit@std@@QEAA@XZ";
-  case 0x00ab: return "??1agent@Concurrency@@UEAA@XZ";
-  case 0x00ac: return "??1codecvt_base@std@@UEAA@XZ";
-  case 0x00ad: return "??1ctype_base@std@@UEAA@XZ";
-  case 0x00ae: return "??1facet@locale@std@@MEAA@XZ";
-  case 0x00af: return "??1ios_base@std@@UEAA@XZ";
-  case 0x00b0: return "??1time_base@std@@UEAA@XZ";
-  case 0x00b1: return "??4?$_Iosb@H@std@@QEAAAEAV01@AEBV01@@Z";
-  case 0x00b2: return "??4?$_Yarn@D@std@@QEAAAEAV01@AEBV01@@Z";
-  case 0x00b3: return "??4?$_Yarn@D@std@@QEAAAEAV01@PEBD@Z";
-  case 0x00b4: return "??4?$_Yarn@_W@std@@QEAAAEAV01@PEB_W@Z";
-  case 0x00b5: return "??4?$basic_iostream@DU?$char_traits@D@std@@@std@@IEAAAEAV01@$$QEAV01@@Z";
-  case 0x00b6: return "??4?$basic_iostream@GU?$char_traits@G@std@@@std@@IEAAAEAV01@$$QEAV01@@Z";
-  case 0x00b7: return "??4?$basic_iostream@_WU?$char_traits@_W@std@@@std@@IEAAAEAV01@$$QEAV01@@Z";
-  case 0x00b8: return "??4?$basic_istream@DU?$char_traits@D@std@@@std@@IEAAAEAV01@$$QEAV01@@Z";
-  case 0x00b9: return "??4?$basic_istream@GU?$char_traits@G@std@@@std@@IEAAAEAV01@$$QEAV01@@Z";
-  case 0x00ba: return "??4?$basic_istream@_WU?$char_traits@_W@std@@@std@@IEAAAEAV01@$$QEAV01@@Z";
-  case 0x00bb: return "??4?$basic_ostream@DU?$char_traits@D@std@@@std@@IEAAAEAV01@$$QEAV01@@Z";
-  case 0x00bc: return "??4?$basic_ostream@GU?$char_traits@G@std@@@std@@IEAAAEAV01@$$QEAV01@@Z";
-  case 0x00bd: return "??4?$basic_ostream@_WU?$char_traits@_W@std@@@std@@IEAAAEAV01@$$QEAV01@@Z";
-  case 0x00be: return "??4?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAAEAV01@AEBV01@@Z";
-  case 0x00bf: return "??4?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAAEAV01@AEBV01@@Z";
-  case 0x00c0: return "??4?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAAEAV01@AEBV01@@Z";
-  case 0x00c1: return "??4Init@ios_base@std@@QEAAAEAV012@AEBV012@@Z";
-  case 0x00c2: return "??4_Container_base0@std@@QEAAAEAU01@AEBU01@@Z";
-  case 0x00c3: return "??4_Container_base12@std@@QEAAAEAU01@AEBU01@@Z";
-  case 0x00c4: return "??4_Facet_base@std@@QEAAAEAV01@AEBV01@@Z";
-  case 0x00c5: return "??4_Init_locks@std@@QEAAAEAV01@AEBV01@@Z";
-  case 0x00c6: return "??4_Pad@std@@QEAAAEAV01@AEBV01@@Z";
-  case 0x00c7: return "??4_Timevec@std@@QEAAAEAV01@AEBV01@@Z";
-  case 0x00c8: return "??4_UShinit@std@@QEAAAEAV01@AEBV01@@Z";
-  case 0x00c9: return "??4_Winit@std@@QEAAAEAV01@AEBV01@@Z";
-  case 0x00ca: return "??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAF@Z";
-  case 0x00cb: return "??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAG@Z";
-  case 0x00cc: return "??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAH@Z";
-  case 0x00cd: return "??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAI@Z";
-  case 0x00ce: return "??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAJ@Z";
-  case 0x00cf: return "??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAK@Z";
-  case 0x00d0: return "??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAM@Z";
-  case 0x00d1: return "??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAN@Z";
-  case 0x00d2: return "??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAO@Z";
-  case 0x00d3: return "??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAPEAX@Z";
-  case 0x00d4: return "??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEA_J@Z";
-  case 0x00d5: return "??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEA_K@Z";
-  case 0x00d6: return "??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEA_N@Z";
-  case 0x00d7: return "??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@P6AAEAV01@AEAV01@@Z@Z";
-  case 0x00d8: return "??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@P6AAEAV?$basic_ios@DU?$char_traits@D@std@@@1@AEAV21@@Z@Z";
-  case 0x00d9: return "??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@P6AAEAVios_base@1@AEAV21@@Z@Z";
-  case 0x00da: return "??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@PEAV?$basic_streambuf@DU?$char_traits@D@std@@@1@@Z";
-  case 0x00db: return "??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEAF@Z";
-  case 0x00dc: return "??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEAG@Z";
-  case 0x00dd: return "??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEAH@Z";
-  case 0x00de: return "??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEAI@Z";
-  case 0x00df: return "??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEAJ@Z";
-  case 0x00e0: return "??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEAK@Z";
-  case 0x00e1: return "??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEAM@Z";
-  case 0x00e2: return "??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEAN@Z";
-  case 0x00e3: return "??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEAO@Z";
-  case 0x00e4: return "??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEAPEAX@Z";
-  case 0x00e5: return "??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEA_J@Z";
-  case 0x00e6: return "??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEA_K@Z";
-  case 0x00e7: return "??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEA_N@Z";
-  case 0x00e8: return "??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@P6AAEAV01@AEAV01@@Z@Z";
-  case 0x00e9: return "??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@P6AAEAV?$basic_ios@GU?$char_traits@G@std@@@1@AEAV21@@Z@Z";
-  case 0x00ea: return "??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@P6AAEAVios_base@1@AEAV21@@Z@Z";
-  case 0x00eb: return "??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@PEAV?$basic_streambuf@GU?$char_traits@G@std@@@1@@Z";
-  case 0x00ec: return "??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEAF@Z";
-  case 0x00ed: return "??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEAG@Z";
-  case 0x00ee: return "??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEAH@Z";
-  case 0x00ef: return "??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEAI@Z";
-  case 0x00f0: return "??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEAJ@Z";
-  case 0x00f1: return "??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEAK@Z";
-  case 0x00f2: return "??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEAM@Z";
-  case 0x00f3: return "??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEAN@Z";
-  case 0x00f4: return "??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEAO@Z";
-  case 0x00f5: return "??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEAPEAX@Z";
-  case 0x00f6: return "??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEA_J@Z";
-  case 0x00f7: return "??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEA_K@Z";
-  case 0x00f8: return "??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEA_N@Z";
-  case 0x00f9: return "??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@P6AAEAV01@AEAV01@@Z@Z";
-  case 0x00fa: return "??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@P6AAEAV?$basic_ios@_WU?$char_traits@_W@std@@@1@AEAV21@@Z@Z";
-  case 0x00fb: return "??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@P6AAEAVios_base@1@AEAV21@@Z@Z";
-  case 0x00fc: return "??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@PEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@@Z";
-  case 0x00fd: return "??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@F@Z";
-  case 0x00fe: return "??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@G@Z";
-  case 0x00ff: return "??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@H@Z";
-  case 0x0100: return "??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@I@Z";
-  case 0x0101: return "??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@J@Z";
-  case 0x0102: return "??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@K@Z";
-  case 0x0103: return "??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@M@Z";
-  case 0x0104: return "??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@N@Z";
-  case 0x0105: return "??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@O@Z";
-  case 0x0106: return "??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@P6AAEAV01@AEAV01@@Z@Z";
-  case 0x0107: return "??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@P6AAEAV?$basic_ios@DU?$char_traits@D@std@@@1@AEAV21@@Z@Z";
-  case 0x0108: return "??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@P6AAEAVios_base@1@AEAV21@@Z@Z";
-  case 0x0109: return "??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@PEAV?$basic_streambuf@DU?$char_traits@D@std@@@1@@Z";
-  case 0x010a: return "??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@PEBX@Z";
-  case 0x010b: return "??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@_J@Z";
-  case 0x010c: return "??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@_K@Z";
-  case 0x010d: return "??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@_N@Z";
-  case 0x010e: return "??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@F@Z";
-  case 0x010f: return "??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@G@Z";
-  case 0x0110: return "??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@H@Z";
-  case 0x0111: return "??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@I@Z";
-  case 0x0112: return "??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@J@Z";
-  case 0x0113: return "??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@K@Z";
-  case 0x0114: return "??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@M@Z";
-  case 0x0115: return "??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@N@Z";
-  case 0x0116: return "??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@O@Z";
-  case 0x0117: return "??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@P6AAEAV01@AEAV01@@Z@Z";
-  case 0x0118: return "??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@P6AAEAV?$basic_ios@GU?$char_traits@G@std@@@1@AEAV21@@Z@Z";
-  case 0x0119: return "??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@P6AAEAVios_base@1@AEAV21@@Z@Z";
-  case 0x011a: return "??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@PEAV?$basic_streambuf@GU?$char_traits@G@std@@@1@@Z";
-  case 0x011b: return "??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@PEBX@Z";
-  case 0x011c: return "??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@_J@Z";
-  case 0x011d: return "??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@_K@Z";
-  case 0x011e: return "??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@_N@Z";
-  case 0x011f: return "??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@F@Z";
-  case 0x0120: return "??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@G@Z";
-  case 0x0121: return "??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@H@Z";
-  case 0x0122: return "??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@I@Z";
-  case 0x0123: return "??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@J@Z";
-  case 0x0124: return "??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@K@Z";
-  case 0x0125: return "??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@M@Z";
-  case 0x0126: return "??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@N@Z";
-  case 0x0127: return "??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@O@Z";
-  case 0x0128: return "??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@P6AAEAV01@AEAV01@@Z@Z";
-  case 0x0129: return "??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@P6AAEAV?$basic_ios@_WU?$char_traits@_W@std@@@1@AEAV21@@Z@Z";
-  case 0x012a: return "??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@P6AAEAVios_base@1@AEAV21@@Z@Z";
-  case 0x012b: return "??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@PEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@@Z";
-  case 0x012c: return "??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@PEBX@Z";
-  case 0x012d: return "??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@_J@Z";
-  case 0x012e: return "??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@_K@Z";
-  case 0x012f: return "??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@_N@Z";
-  case 0x0130: return "??7ios_base@std@@QEBA_NXZ";
-  case 0x0131: return "??Bid@locale@std@@QEAA_KXZ";
-  case 0x0132: return "??Bios_base@std@@QEBAPEAXXZ";
-  case 0x0133: return "??_7?$basic_ios@DU?$char_traits@D@std@@@std@@6B@";
-  case 0x0134: return "??_7?$basic_ios@GU?$char_traits@G@std@@@std@@6B@";
-  case 0x0135: return "??_7?$basic_ios@_WU?$char_traits@_W@std@@@std@@6B@";
-  case 0x0136: return "??_7?$basic_iostream@DU?$char_traits@D@std@@@std@@6B@";
-  case 0x0137: return "??_7?$basic_iostream@GU?$char_traits@G@std@@@std@@6B@";
-  case 0x0138: return "??_7?$basic_iostream@_WU?$char_traits@_W@std@@@std@@6B@";
-  case 0x0139: return "??_7?$basic_istream@DU?$char_traits@D@std@@@std@@6B@";
-  case 0x013a: return "??_7?$basic_istream@GU?$char_traits@G@std@@@std@@6B@";
-  case 0x013b: return "??_7?$basic_istream@_WU?$char_traits@_W@std@@@std@@6B@";
-  case 0x013c: return "??_7?$basic_ostream@DU?$char_traits@D@std@@@std@@6B@";
-  case 0x013d: return "??_7?$basic_ostream@GU?$char_traits@G@std@@@std@@6B@";
-  case 0x013e: return "??_7?$basic_ostream@_WU?$char_traits@_W@std@@@std@@6B@";
-  case 0x013f: return "??_7?$basic_streambuf@DU?$char_traits@D@std@@@std@@6B@";
-  case 0x0140: return "??_7?$basic_streambuf@GU?$char_traits@G@std@@@std@@6B@";
-  case 0x0141: return "??_7?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@6B@";
-  case 0x0142: return "??_7?$codecvt@DDH@std@@6B@";
-  case 0x0143: return "??_7?$codecvt@GDH@std@@6B@";
-  case 0x0144: return "??_7?$codecvt@_WDH@std@@6B@";
-  case 0x0145: return "??_7?$ctype@D@std@@6B@";
-  case 0x0146: return "??_7?$ctype@G@std@@6B@";
-  case 0x0147: return "??_7?$ctype@_W@std@@6B@";
-  case 0x0148: return "??_7?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@6B@";
-  case 0x0149: return "??_7?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@6B@";
-  case 0x014a: return "??_7?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@6B@";
-  case 0x014b: return "??_7?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@6B@";
-  case 0x014c: return "??_7?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@6B@";
-  case 0x014d: return "??_7?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@6B@";
-  case 0x014e: return "??_7?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@6B@";
-  case 0x014f: return "??_7?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@6B@";
-  case 0x0150: return "??_7?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@6B@";
-  case 0x0151: return "??_7?$time_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@6B@";
-  case 0x0152: return "??_7?$time_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@6B@";
-  case 0x0153: return "??_7?$time_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@6B@";
-  case 0x0154: return "??_7_Facet_base@std@@6B@";
-  case 0x0155: return "??_7_Locimp@locale@std@@6B@";
-  case 0x0156: return "??_7_Pad@std@@6B@";
-  case 0x0157: return "??_7codecvt_base@std@@6B@";
-  case 0x0158: return "??_7ctype_base@std@@6B@";
-  case 0x0159: return "??_7facet@locale@std@@6B@";
-  case 0x015a: return "??_7ios_base@std@@6B@";
-  case 0x015b: return "??_7time_base@std@@6B@";
-  case 0x015c: return "??_8?$basic_iostream@DU?$char_traits@D@std@@@std@@7B?$basic_istream@DU?$char_traits@D@std@@@1@@";
-  case 0x015d: return "??_8?$basic_iostream@DU?$char_traits@D@std@@@std@@7B?$basic_ostream@DU?$char_traits@D@std@@@1@@";
-  case 0x015e: return "??_8?$basic_iostream@GU?$char_traits@G@std@@@std@@7B?$basic_istream@GU?$char_traits@G@std@@@1@@";
-  case 0x015f: return "??_8?$basic_iostream@GU?$char_traits@G@std@@@std@@7B?$basic_ostream@GU?$char_traits@G@std@@@1@@";
-  case 0x0160: return "??_8?$basic_iostream@_WU?$char_traits@_W@std@@@std@@7B?$basic_istream@_WU?$char_traits@_W@std@@@1@@";
-  case 0x0161: return "??_8?$basic_iostream@_WU?$char_traits@_W@std@@@std@@7B?$basic_ostream@_WU?$char_traits@_W@std@@@1@@";
-  case 0x0162: return "??_8?$basic_istream@DU?$char_traits@D@std@@@std@@7B@";
-  case 0x0163: return "??_8?$basic_istream@GU?$char_traits@G@std@@@std@@7B@";
-  case 0x0164: return "??_8?$basic_istream@_WU?$char_traits@_W@std@@@std@@7B@";
-  case 0x0165: return "??_8?$basic_ostream@DU?$char_traits@D@std@@@std@@7B@";
-  case 0x0166: return "??_8?$basic_ostream@GU?$char_traits@G@std@@@std@@7B@";
-  case 0x0167: return "??_8?$basic_ostream@_WU?$char_traits@_W@std@@@std@@7B@";
-  case 0x0168: return "??_D?$basic_iostream@DU?$char_traits@D@std@@@std@@QEAAXXZ";
-  case 0x0169: return "??_D?$basic_iostream@GU?$char_traits@G@std@@@std@@QEAAXXZ";
-  case 0x016a: return "??_D?$basic_iostream@_WU?$char_traits@_W@std@@@std@@QEAAXXZ";
-  case 0x016b: return "??_D?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAXXZ";
-  case 0x016c: return "??_D?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAXXZ";
-  case 0x016d: return "??_D?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAXXZ";
-  case 0x016e: return "??_D?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAXXZ";
-  case 0x016f: return "??_D?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAXXZ";
-  case 0x0170: return "??_D?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAXXZ";
-  case 0x0171: return "??_F?$codecvt@DDH@std@@QEAAXXZ";
-  case 0x0172: return "??_F?$codecvt@GDH@std@@QEAAXXZ";
-  case 0x0173: return "??_F?$codecvt@_WDH@std@@QEAAXXZ";
-  case 0x0174: return "??_F?$ctype@D@std@@QEAAXXZ";
-  case 0x0175: return "??_F?$ctype@G@std@@QEAAXXZ";
-  case 0x0176: return "??_F?$ctype@_W@std@@QEAAXXZ";
-  case 0x0177: return "??_F?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEAAXXZ";
-  case 0x0178: return "??_F?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEAAXXZ";
-  case 0x0179: return "??_F?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEAAXXZ";
-  case 0x017a: return "??_F?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEAAXXZ";
-  case 0x017b: return "??_F?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEAAXXZ";
-  case 0x017c: return "??_F?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEAAXXZ";
-  case 0x017d: return "??_F?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEAAXXZ";
-  case 0x017e: return "??_F?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEAAXXZ";
-  case 0x017f: return "??_F?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEAAXXZ";
-  case 0x0180: return "??_F?$time_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEAAXXZ";
-  case 0x0181: return "??_F?$time_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEAAXXZ";
-  case 0x0182: return "??_F?$time_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEAAXXZ";
-  case 0x0183: return "??_F_Locinfo@std@@QEAAXXZ";
-  case 0x0184: return "??_F_Timevec@std@@QEAAXXZ";
-  case 0x0185: return "??_Fcodecvt_base@std@@QEAAXXZ";
-  case 0x0186: return "??_Fctype_base@std@@QEAAXXZ";
-  case 0x0187: return "??_Ffacet@locale@std@@QEAAXXZ";
-  case 0x0188: return "??_Fid@locale@std@@QEAAXXZ";
-  case 0x0189: return "??_Ftime_base@std@@QEAAXXZ";
-  case 0x018a: return "?NFS_Allocate@details@Concurrency@@YAPEAX_K0PEAX@Z";
-  case 0x018b: return "?NFS_Free@details@Concurrency@@YAXPEAX@Z";
-  case 0x018c: return "?NFS_GetLineSize@details@Concurrency@@YA_KXZ";
-  case 0x018d: return "?_10@placeholders@std@@3V?$_Ph@$09@2@A";
-  case 0x018e: return "?_11@placeholders@std@@3V?$_Ph@$0L@@2@A";
-  case 0x018f: return "?_12@placeholders@std@@3V?$_Ph@$0M@@2@A";
-  case 0x0190: return "?_13@placeholders@std@@3V?$_Ph@$0N@@2@A";
-  case 0x0191: return "?_14@placeholders@std@@3V?$_Ph@$0O@@2@A";
-  case 0x0192: return "?_15@placeholders@std@@3V?$_Ph@$0P@@2@A";
-  case 0x0193: return "?_16@placeholders@std@@3V?$_Ph@$0BA@@2@A";
-  case 0x0194: return "?_17@placeholders@std@@3V?$_Ph@$0BB@@2@A";
-  case 0x0195: return "?_18@placeholders@std@@3V?$_Ph@$0BC@@2@A";
-  case 0x0196: return "?_19@placeholders@std@@3V?$_Ph@$0BD@@2@A";
-  case 0x0197: return "?_1@placeholders@std@@3V?$_Ph@$00@2@A";
-  case 0x0198: return "?_20@placeholders@std@@3V?$_Ph@$0BE@@2@A";
-  case 0x0199: return "?_2@placeholders@std@@3V?$_Ph@$01@2@A";
-  case 0x019a: return "?_3@placeholders@std@@3V?$_Ph@$02@2@A";
-  case 0x019b: return "?_4@placeholders@std@@3V?$_Ph@$03@2@A";
-  case 0x019c: return "?_5@placeholders@std@@3V?$_Ph@$04@2@A";
-  case 0x019d: return "?_6@placeholders@std@@3V?$_Ph@$05@2@A";
-  case 0x019e: return "?_7@placeholders@std@@3V?$_Ph@$06@2@A";
-  case 0x019f: return "?_8@placeholders@std@@3V?$_Ph@$07@2@A";
-  case 0x01a0: return "?_9@placeholders@std@@3V?$_Ph@$08@2@A";
-  case 0x01a1: return "?_Add_vtordisp1@?$basic_ios@DU?$char_traits@D@std@@@std@@UEAAXXZ";
-  case 0x01a2: return "?_Add_vtordisp1@?$basic_ios@GU?$char_traits@G@std@@@std@@UEAAXXZ";
-  case 0x01a3: return "?_Add_vtordisp1@?$basic_ios@_WU?$char_traits@_W@std@@@std@@UEAAXXZ";
-  case 0x01a4: return "?_Add_vtordisp1@?$basic_istream@DU?$char_traits@D@std@@@std@@UEAAXXZ";
-  case 0x01a5: return "?_Add_vtordisp1@?$basic_istream@GU?$char_traits@G@std@@@std@@UEAAXXZ";
-  case 0x01a6: return "?_Add_vtordisp1@?$basic_istream@_WU?$char_traits@_W@std@@@std@@UEAAXXZ";
-  case 0x01a7: return "?_Add_vtordisp2@?$basic_ios@DU?$char_traits@D@std@@@std@@UEAAXXZ";
-  case 0x01a8: return "?_Add_vtordisp2@?$basic_ios@GU?$char_traits@G@std@@@std@@UEAAXXZ";
-  case 0x01a9: return "?_Add_vtordisp2@?$basic_ios@_WU?$char_traits@_W@std@@@std@@UEAAXXZ";
-  case 0x01aa: return "?_Add_vtordisp2@?$basic_ostream@DU?$char_traits@D@std@@@std@@UEAAXXZ";
-  case 0x01ab: return "?_Add_vtordisp2@?$basic_ostream@GU?$char_traits@G@std@@@std@@UEAAXXZ";
-  case 0x01ac: return "?_Add_vtordisp2@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@UEAAXXZ";
-  case 0x01ad: return "?_Addcats@_Locinfo@std@@QEAAAEAV12@HPEBD@Z";
-  case 0x01ae: return "?_Addfac@_Locimp@locale@std@@AEAAXPEAVfacet@23@_K@Z";
-  case 0x01af: return "?_Addstd@ios_base@std@@SAXPEAV12@@Z";
-  case 0x01b0: return "?_Advance@_Concurrent_queue_iterator_base_v4@details@Concurrency@@IEAAXXZ";
-  case 0x01b1: return "?_Assign@_Concurrent_queue_iterator_base_v4@details@Concurrency@@IEAAXAEBV123@@Z";
-  case 0x01b2: return "?_Atexit@@YAXP6AXXZ@Z";
-  case 0x01b3: return "?_BADOFF@std@@3_JB";
-  case 0x01b4: return "?_Byte_reverse_table@details@Concurrency@@3QBEB";
-  case 0x01b5: return "?_C_str@?$_Yarn@D@std@@QEBAPEBDXZ";
-  case 0x01b6: return "?_C_str@?$_Yarn@_W@std@@QEBAPEB_WXZ";
-  case 0x01b7: return "?_Callfns@ios_base@std@@AEAAXW4event@12@@Z";
-  case 0x01b8: return "?_Clocptr@_Locimp@locale@std@@0PEAV123@EA";
-  case 0x01b9: return "?_Close_dir@sys@tr2@std@@YAXPEAX@Z";
-  case 0x01ba: return "?_Copy_file@sys@tr2@std@@YAHPEBD0_N@Z";
-  case 0x01bb: return "?_Copy_file@sys@tr2@std@@YAHPEB_W0_N@Z";
-  case 0x01bc: return "?_Current_get@sys@tr2@std@@YAPEADPEAD@Z";
-  case 0x01bd: return "?_Current_get@sys@tr2@std@@YAPEA_WPEA_W@Z";
-  case 0x01be: return "?_Current_set@sys@tr2@std@@YA_NPEBD@Z";
-  case 0x01bf: return "?_Current_set@sys@tr2@std@@YA_NPEB_W@Z";
-  case 0x01c0: return "?_Decref@facet@locale@std@@UEAAPEAV_Facet_base@3@XZ";
-  case 0x01c1: return "?_Donarrow@?$ctype@G@std@@IEBADGD@Z";
-  case 0x01c2: return "?_Donarrow@?$ctype@_W@std@@IEBAD_WD@Z";
-  case 0x01c3: return "?_Dowiden@?$ctype@G@std@@IEBAGD@Z";
-  case 0x01c4: return "?_Dowiden@?$ctype@_W@std@@IEBA_WD@Z";
-  case 0x01c5: return "?_Empty@?$_Yarn@D@std@@QEBA_NXZ";
-  case 0x01c6: return "?_Empty@?$_Yarn@_W@std@@QEBA_NXZ";
-  case 0x01c7: return "?_Equivalent@sys@tr2@std@@YAHPEBD0@Z";
-  case 0x01c8: return "?_Equivalent@sys@tr2@std@@YAHPEB_W0@Z";
-  case 0x01c9: return "?_Ffmt@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@AEBAPEADPEADDH@Z";
-  case 0x01ca: return "?_Ffmt@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@AEBAPEADPEADDH@Z";
-  case 0x01cb: return "?_Ffmt@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@AEBAPEADPEADDH@Z";
-  case 0x01cc: return "?_File_size@sys@tr2@std@@YA_KPEBD@Z";
-  case 0x01cd: return "?_File_size@sys@tr2@std@@YA_KPEB_W@Z";
-  case 0x01ce: return "?_Findarr@ios_base@std@@AEAAAEAU_Iosarray@12@H@Z";
-  case 0x01cf: return "?_Fiopen@std@@YAPEAU_iobuf@@PEBDHH@Z";
-  case 0x01d0: return "?_Fiopen@std@@YAPEAU_iobuf@@PEBGHH@Z";
-  case 0x01d1: return "?_Fiopen@std@@YAPEAU_iobuf@@PEB_WHH@Z";
-  case 0x01d2: return "?_Fput@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@AEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@V32@AEAVios_base@2@DPEBD_K333@Z";
-  case 0x01d3: return "?_Fput@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@AEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@V32@AEAVios_base@2@GPEBD_K333@Z";
-  case 0x01d4: return "?_Fput@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@AEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@AEAVios_base@2@_WPEBD_K444@Z";
-  case 0x01d5: return "?_Future_error_map@std@@YAPEBDH@Z";
-  case 0x01d6: return "?_GetCombinableSize@details@Concurrency@@YA_KXZ";
-  case 0x01d7: return "?_GetCurrentThreadId@details@Concurrency@@YAKXZ";
-  case 0x01d8: return "?_GetNextAsyncId@details@Concurrency@@YAIXZ";
-  case 0x01d9: return "?_Get_future_error_what@std@@YAPEBDH@Z";
-  case 0x01da: return "?_Getcat@?$codecvt@DDH@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z";
-  case 0x01db: return "?_Getcat@?$codecvt@GDH@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z";
-  case 0x01dc: return "?_Getcat@?$codecvt@_WDH@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z";
-  case 0x01dd: return "?_Getcat@?$ctype@D@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z";
-  case 0x01de: return "?_Getcat@?$ctype@G@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z";
-  case 0x01df: return "?_Getcat@?$ctype@_W@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z";
-  case 0x01e0: return "?_Getcat@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z";
-  case 0x01e1: return "?_Getcat@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z";
-  case 0x01e2: return "?_Getcat@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z";
-  case 0x01e3: return "?_Getcat@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z";
-  case 0x01e4: return "?_Getcat@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z";
-  case 0x01e5: return "?_Getcat@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z";
-  case 0x01e6: return "?_Getcat@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z";
-  case 0x01e7: return "?_Getcat@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z";
-  case 0x01e8: return "?_Getcat@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z";
-  case 0x01e9: return "?_Getcat@?$time_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z";
-  case 0x01ea: return "?_Getcat@?$time_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z";
-  case 0x01eb: return "?_Getcat@?$time_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z";
-  case 0x01ec: return "?_Getcat@facet@locale@std@@SA_KPEAPEBV123@PEBV23@@Z";
-  case 0x01ed: return "?_Getcoll@_Locinfo@std@@QEBA?AU_Collvec@@XZ";
-  case 0x01ee: return "?_Getctype@_Locinfo@std@@QEBA?AU_Ctypevec@@XZ";
-  case 0x01ef: return "?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ";
-  case 0x01f0: return "?_Getdateorder@_Locinfo@std@@QEBAHXZ";
-  case 0x01f1: return "?_Getdays@_Locinfo@std@@QEBAPEBDXZ";
-  case 0x01f2: return "?_Getfalse@_Locinfo@std@@QEBAPEBDXZ";
-  case 0x01f3: return "?_Getffld@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@AEBAHPEADAEAV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@1AEAVios_base@2@PEAH@Z";
-  case 0x01f4: return "?_Getffld@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@AEBAHPEADAEAV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@1AEAVios_base@2@PEAH@Z";
-  case 0x01f5: return "?_Getffld@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@AEBAHPEADAEAV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@1AEAVios_base@2@PEAH@Z";
-  case 0x01f6: return "?_Getffldx@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@AEBAHPEADAEAV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@1AEAVios_base@2@PEAH@Z";
-  case 0x01f7: return "?_Getffldx@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@AEBAHPEADAEAV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@1AEAVios_base@2@PEAH@Z";
-  case 0x01f8: return "?_Getffldx@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@AEBAHPEADAEAV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@1AEAVios_base@2@PEAH@Z";
-  case 0x01f9: return "?_Getfmt@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@PEBD@Z";
-  case 0x01fa: return "?_Getfmt@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@IEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@PEBD@Z";
-  case 0x01fb: return "?_Getfmt@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@PEBD@Z";
-  case 0x01fc: return "?_Getgloballocale@locale@std@@CAPEAV_Locimp@12@XZ";
-  case 0x01fd: return "?_Getifld@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@AEBAHPEADAEAV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@1HAEBVlocale@2@@Z";
-  case 0x01fe: return "?_Getifld@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@AEBAHPEADAEAV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@1HAEBVlocale@2@@Z";
-  case 0x01ff: return "?_Getifld@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@AEBAHPEADAEAV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@1HAEBVlocale@2@@Z";
-  case 0x0200: return "?_Getint@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@AEBAHAEAV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@0HHAEAHAEBV?$ctype@D@2@@Z";
-  case 0x0201: return "?_Getint@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@AEBAHAEAV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@0HHAEAHAEBV?$ctype@G@2@@Z";
-  case 0x0202: return "?_Getint@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@AEBAHAEAV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@0HHAEAHAEBV?$ctype@_W@2@@Z";
-  case 0x0203: return "?_Getlconv@_Locinfo@std@@QEBAPEBUlconv@@XZ";
-  case 0x0204: return "?_Getmonths@_Locinfo@std@@QEBAPEBDXZ";
-  case 0x0205: return "?_Getname@_Locinfo@std@@QEBAPEBDXZ";
-  case 0x0206: return "?_Getpfirst@_Container_base12@std@@QEBAPEAPEAU_Iterator_base12@2@XZ";
-  case 0x0207: return "?_Getptr@_Timevec@std@@QEBAPEAXXZ";
-  case 0x0208: return "?_Gettnames@_Locinfo@std@@QEBA?AV_Timevec@2@XZ";
-  case 0x0209: return "?_Gettrue@_Locinfo@std@@QEBAPEBDXZ";
-  case 0x020a: return "?_Gnavail@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBA_JXZ";
-  case 0x020b: return "?_Gnavail@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEBA_JXZ";
-  case 0x020c: return "?_Gnavail@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEBA_JXZ";
-  case 0x020d: return "?_Gndec@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAPEADXZ";
-  case 0x020e: return "?_Gndec@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAPEAGXZ";
-  case 0x020f: return "?_Gndec@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAPEA_WXZ";
-  case 0x0210: return "?_Gninc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAPEADXZ";
-  case 0x0211: return "?_Gninc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAPEAGXZ";
-  case 0x0212: return "?_Gninc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAPEA_WXZ";
-  case 0x0213: return "?_Gnpreinc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAPEADXZ";
-  case 0x0214: return "?_Gnpreinc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAPEAGXZ";
-  case 0x0215: return "?_Gnpreinc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAPEA_WXZ";
-  case 0x0216: return "?_Id_cnt@id@locale@std@@0HA";
-  case 0x0217: return "?_Ifmt@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@AEBAPEADPEADPEBDH@Z";
-  case 0x0218: return "?_Ifmt@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@AEBAPEADPEADPEBDH@Z";
-  case 0x0219: return "?_Ifmt@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@AEBAPEADPEADPEBDH@Z";
-  case 0x021a: return "?_Incref@facet@locale@std@@UEAAXXZ";
-  case 0x021b: return "?_Index@ios_base@std@@0HA";
-  case 0x021c: return "?_Init@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXPEAPEAD0PEAH001@Z";
-  case 0x021d: return "?_Init@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXXZ";
-  case 0x021e: return "?_Init@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAXPEAPEAG0PEAH001@Z";
-  case 0x021f: return "?_Init@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAXXZ";
-  case 0x0220: return "?_Init@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAXPEAPEA_W0PEAH001@Z";
-  case 0x0221: return "?_Init@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAXXZ";
-  case 0x0222: return "?_Init@?$codecvt@DDH@std@@IEAAXAEBV_Locinfo@2@@Z";
-  case 0x0223: return "?_Init@?$codecvt@GDH@std@@IEAAXAEBV_Locinfo@2@@Z";
-  case 0x0224: return "?_Init@?$codecvt@_WDH@std@@IEAAXAEBV_Locinfo@2@@Z";
-  case 0x0225: return "?_Init@?$ctype@D@std@@IEAAXAEBV_Locinfo@2@@Z";
-  case 0x0226: return "?_Init@?$ctype@G@std@@IEAAXAEBV_Locinfo@2@@Z";
-  case 0x0227: return "?_Init@?$ctype@_W@std@@IEAAXAEBV_Locinfo@2@@Z";
-  case 0x0228: return "?_Init@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAXAEBV_Locinfo@2@@Z";
-  case 0x0229: return "?_Init@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@IEAAXAEBV_Locinfo@2@@Z";
-  case 0x022a: return "?_Init@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAXAEBV_Locinfo@2@@Z";
-  case 0x022b: return "?_Init@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAXAEBV_Locinfo@2@@Z";
-  case 0x022c: return "?_Init@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@IEAAXAEBV_Locinfo@2@@Z";
-  case 0x022d: return "?_Init@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAXAEBV_Locinfo@2@@Z";
-  case 0x022e: return "?_Init@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAXAEBV_Locinfo@2@@Z";
-  case 0x022f: return "?_Init@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@IEAAXAEBV_Locinfo@2@@Z";
-  case 0x0230: return "?_Init@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAXAEBV_Locinfo@2@@Z";
-  case 0x0231: return "?_Init@?$time_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAXAEBV_Locinfo@2@@Z";
-  case 0x0232: return "?_Init@?$time_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@IEAAXAEBV_Locinfo@2@@Z";
-  case 0x0233: return "?_Init@?$time_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAXAEBV_Locinfo@2@@Z";
-  case 0x0234: return "?_Init@ios_base@std@@IEAAXXZ";
-  case 0x0235: return "?_Init@locale@std@@CAPEAV_Locimp@12@_N@Z";
-  case 0x0236: return "?_Init_cnt@Init@ios_base@std@@0HA";
-  case 0x0237: return "?_Init_cnt@_UShinit@std@@0HA";
-  case 0x0238: return "?_Init_cnt@_Winit@std@@0HA";
-  case 0x0239: return "?_Init_cnt_func@Init@ios_base@std@@CAAEAHXZ";
-  case 0x023a: return "?_Init_ctor@Init@ios_base@std@@CAXPEAV123@@Z";
-  case 0x023b: return "?_Init_dtor@Init@ios_base@std@@CAXPEAV123@@Z";
-  case 0x023c: return "?_Init_locks_ctor@_Init_locks@std@@CAXPEAV12@@Z";
-  case 0x023d: return "?_Init_locks_dtor@_Init_locks@std@@CAXPEAV12@@Z";
-  case 0x023e: return "?_Internal_assign@_Concurrent_vector_base_v4@details@Concurrency@@IEAAXAEBV123@_KP6AXPEAX1@ZP6AX2PEBX1@Z5@Z";
-  case 0x023f: return "?_Internal_capacity@_Concurrent_vector_base_v4@details@Concurrency@@IEBA_KXZ";
-  case 0x0240: return "?_Internal_clear@_Concurrent_vector_base_v4@details@Concurrency@@IEAA_KP6AXPEAX_K@Z@Z";
-  case 0x0241: return "?_Internal_compact@_Concurrent_vector_base_v4@details@Concurrency@@IEAAPEAX_KPEAXP6AX10@ZP6AX1PEBX0@Z@Z";
-  case 0x0242: return "?_Internal_copy@_Concurrent_vector_base_v4@details@Concurrency@@IEAAXAEBV123@_KP6AXPEAXPEBX1@Z@Z";
-  case 0x0243: return "?_Internal_empty@_Concurrent_queue_base_v4@details@Concurrency@@IEBA_NXZ";
-  case 0x0244: return "?_Internal_finish_clear@_Concurrent_queue_base_v4@details@Concurrency@@IEAAXXZ";
-  case 0x0245: return "?_Internal_grow_by@_Concurrent_vector_base_v4@details@Concurrency@@IEAA_K_K0P6AXPEAXPEBX0@Z2@Z";
-  case 0x0246: return "?_Internal_grow_to_at_least_with_result@_Concurrent_vector_base_v4@details@Concurrency@@IEAA_K_K0P6AXPEAXPEBX0@Z2@Z";
-  case 0x0247: return "?_Internal_move_push@_Concurrent_queue_base_v4@details@Concurrency@@IEAAXPEAX@Z";
-  case 0x0248: return "?_Internal_pop_if_present@_Concurrent_queue_base_v4@details@Concurrency@@IEAA_NPEAX@Z";
-  case 0x0249: return "?_Internal_push@_Concurrent_queue_base_v4@details@Concurrency@@IEAAXPEBX@Z";
-  case 0x024a: return "?_Internal_push_back@_Concurrent_vector_base_v4@details@Concurrency@@IEAAPEAX_KAEA_K@Z";
-  case 0x024b: return "?_Internal_reserve@_Concurrent_vector_base_v4@details@Concurrency@@IEAAX_K00@Z";
-  case 0x024c: return "?_Internal_resize@_Concurrent_vector_base_v4@details@Concurrency@@IEAAX_K00P6AXPEAX0@ZP6AX1PEBX0@Z3@Z";
-  case 0x024d: return "?_Internal_size@_Concurrent_queue_base_v4@details@Concurrency@@IEBA_KXZ";
-  case 0x024e: return "?_Internal_swap@_Concurrent_queue_base_v4@details@Concurrency@@IEAAXAEAV123@@Z";
-  case 0x024f: return "?_Internal_swap@_Concurrent_vector_base_v4@details@Concurrency@@IEAAXAEAV123@@Z";
-  case 0x0250: return "?_Internal_throw_exception@_Concurrent_queue_base_v4@details@Concurrency@@IEBAXXZ";
-  case 0x0251: return "?_Internal_throw_exception@_Concurrent_vector_base_v4@details@Concurrency@@IEBAX_K@Z";
-  case 0x0252: return "?_Ios_base_dtor@ios_base@std@@CAXPEAV12@@Z";
-  case 0x0253: return "?_Ipfx@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAA_N_N@Z";
-  case 0x0254: return "?_Ipfx@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAA_N_N@Z";
-  case 0x0255: return "?_Ipfx@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAA_N_N@Z";
-  case 0x0256: return "?_Iput@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@AEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@V32@AEAVios_base@2@DPEAD_K@Z";
-  case 0x0257: return "?_Iput@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@AEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@V32@AEAVios_base@2@GPEAD_K@Z";
-  case 0x0258: return "?_Iput@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@AEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@AEAVios_base@2@_WPEAD_K@Z";
-  case 0x0259: return "?_Last_write_time@sys@tr2@std@@YAXPEBD_J@Z";
-  case 0x025a: return "?_Last_write_time@sys@tr2@std@@YAXPEB_W_J@Z";
-  case 0x025b: return "?_Last_write_time@sys@tr2@std@@YA_JPEBD@Z";
-  case 0x025c: return "?_Last_write_time@sys@tr2@std@@YA_JPEB_W@Z";
-  case 0x025d: return "?_Launch@_Pad@std@@QEAAXPEAU_Thrd_imp_t@@@Z";
-  case 0x025e: return "?_Link@sys@tr2@std@@YAHPEBD0@Z";
-  case 0x025f: return "?_Link@sys@tr2@std@@YAHPEB_W0@Z";
-  case 0x0260: return "?_Locimp_Addfac@_Locimp@locale@std@@CAXPEAV123@PEAVfacet@23@_K@Z";
-  case 0x0261: return "?_Locimp_ctor@_Locimp@locale@std@@CAXPEAV123@AEBV123@@Z";
-  case 0x0262: return "?_Locimp_dtor@_Locimp@locale@std@@CAXPEAV123@@Z";
-  case 0x0263: return "?_Locinfo_Addcats@_Locinfo@std@@SAAEAV12@PEAV12@HPEBD@Z";
-  case 0x0264: return "?_Locinfo_ctor@_Locinfo@std@@SAXPEAV12@HPEBD@Z";
-  case 0x0265: return "?_Locinfo_ctor@_Locinfo@std@@SAXPEAV12@PEBD@Z";
-  case 0x0266: return "?_Locinfo_dtor@_Locinfo@std@@SAXPEAV12@@Z";
-  case 0x0267: return "?_Lock@?$basic_streambuf@DU?$char_traits@D@std@@@std@@UEAAXXZ";
-  case 0x0268: return "?_Lock@?$basic_streambuf@GU?$char_traits@G@std@@@std@@UEAAXXZ";
-  case 0x0269: return "?_Lock@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@UEAAXXZ";
-  case 0x026a: return "?_Lockit_ctor@_Lockit@std@@CAXPEAV12@@Z";
-  case 0x026b: return "?_Lockit_ctor@_Lockit@std@@CAXPEAV12@H@Z";
-  case 0x026c: return "?_Lockit_ctor@_Lockit@std@@SAXH@Z";
-  case 0x026d: return "?_Lockit_dtor@_Lockit@std@@CAXPEAV12@@Z";
-  case 0x026e: return "?_Lockit_dtor@_Lockit@std@@SAXH@Z";
-  case 0x026f: return "?_Lstat@sys@tr2@std@@YA?AW4file_type@123@PEBDAEAH@Z";
-  case 0x0270: return "?_Lstat@sys@tr2@std@@YA?AW4file_type@123@PEB_WAEAH@Z";
-  case 0x0271: return "?_MP_Add@std@@YAXQEA_K_K@Z";
-  case 0x0272: return "?_MP_Get@std@@YA_KQEA_K@Z";
-  case 0x0273: return "?_MP_Mul@std@@YAXQEA_K_K1@Z";
-  case 0x0274: return "?_MP_Rem@std@@YAXQEA_K_K@Z";
-  case 0x0275: return "?_Make_dir@sys@tr2@std@@YAHPEBD@Z";
-  case 0x0276: return "?_Make_dir@sys@tr2@std@@YAHPEB_W@Z";
-  case 0x0277: return "?_Makeloc@_Locimp@locale@std@@CAPEAV123@AEBV_Locinfo@3@HPEAV123@PEBV23@@Z";
-  case 0x0278: return "?_Makeushloc@_Locimp@locale@std@@CAXAEBV_Locinfo@3@HPEAV123@PEBV23@@Z";
-  case 0x0279: return "?_Makewloc@_Locimp@locale@std@@CAXAEBV_Locinfo@3@HPEAV123@PEBV23@@Z";
-  case 0x027a: return "?_Makexloc@_Locimp@locale@std@@CAXAEBV_Locinfo@3@HPEAV123@PEBV23@@Z";
-  case 0x027b: return "?_Mtx_delete@threads@stdext@@YAXPEAX@Z";
-  case 0x027c: return "?_Mtx_lock@threads@stdext@@YAXPEAX@Z";
-  case 0x027d: return "?_Mtx_new@threads@stdext@@YAXAEAPEAX@Z";
-  case 0x027e: return "?_Mtx_unlock@threads@stdext@@YAXPEAX@Z";
-  case 0x027f: return "?_New_Locimp@_Locimp@locale@std@@CAPEAV123@AEBV123@@Z";
-  case 0x0280: return "?_New_Locimp@_Locimp@locale@std@@CAPEAV123@_N@Z";
-  case 0x0281: return "?_Open_dir@sys@tr2@std@@YAPEAXPEADPEBDAEAHAEAW4file_type@123@@Z";
-  case 0x0282: return "?_Open_dir@sys@tr2@std@@YAPEAXPEA_WPEB_WAEAHAEAW4file_type@123@@Z";
-  case 0x0283: return "?_Orphan_all@_Container_base0@std@@QEAAXXZ";
-  case 0x0284: return "?_Orphan_all@_Container_base12@std@@QEAAXXZ";
-  case 0x0285: return "?_Osfx@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAXXZ";
-  case 0x0286: return "?_Osfx@?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAXXZ";
-  case 0x0287: return "?_Osfx@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAXXZ";
-  case 0x0288: return "?_Pnavail@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBA_JXZ";
-  case 0x0289: return "?_Pnavail@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEBA_JXZ";
-  case 0x028a: return "?_Pnavail@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEBA_JXZ";
-  case 0x028b: return "?_Pninc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAPEADXZ";
-  case 0x028c: return "?_Pninc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAPEAGXZ";
-  case 0x028d: return "?_Pninc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAPEA_WXZ";
-  case 0x028e: return "?_Ptr_cerr@std@@3PEAV?$basic_ostream@DU?$char_traits@D@std@@@1@EA";
-  case 0x028f: return "?_Ptr_cin@std@@3PEAV?$basic_istream@DU?$char_traits@D@std@@@1@EA";
-  case 0x0290: return "?_Ptr_clog@std@@3PEAV?$basic_ostream@DU?$char_traits@D@std@@@1@EA";
-  case 0x0291: return "?_Ptr_cout@std@@3PEAV?$basic_ostream@DU?$char_traits@D@std@@@1@EA";
-  case 0x0292: return "?_Ptr_wcerr@std@@3PEAV?$basic_ostream@GU?$char_traits@G@std@@@1@EA";
-  case 0x0293: return "?_Ptr_wcerr@std@@3PEAV?$basic_ostream@_WU?$char_traits@_W@std@@@1@EA";
-  case 0x0294: return "?_Ptr_wcin@std@@3PEAV?$basic_istream@GU?$char_traits@G@std@@@1@EA";
-  case 0x0295: return "?_Ptr_wcin@std@@3PEAV?$basic_istream@_WU?$char_traits@_W@std@@@1@EA";
-  case 0x0296: return "?_Ptr_wclog@std@@3PEAV?$basic_ostream@GU?$char_traits@G@std@@@1@EA";
-  case 0x0297: return "?_Ptr_wclog@std@@3PEAV?$basic_ostream@_WU?$char_traits@_W@std@@@1@EA";
-  case 0x0298: return "?_Ptr_wcout@std@@3PEAV?$basic_ostream@GU?$char_traits@G@std@@@1@EA";
-  case 0x0299: return "?_Ptr_wcout@std@@3PEAV?$basic_ostream@_WU?$char_traits@_W@std@@@1@EA";
-  case 0x029a: return "?_Put@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@AEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@V32@PEBD_K@Z";
-  case 0x029b: return "?_Put@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@AEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@V32@PEBG_K@Z";
-  case 0x029c: return "?_Put@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@AEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@PEB_W_K@Z";
-  case 0x029d: return "?_Raise_handler@std@@3P6AXAEBVexception@stdext@@@ZEA";
-  case 0x029e: return "?_Random_device@std@@YAIXZ";
-  case 0x029f: return "?_Read_dir@sys@tr2@std@@YAPEADPEADPEAXAEAW4file_type@123@@Z";
-  case 0x02a0: return "?_Read_dir@sys@tr2@std@@YAPEA_WPEA_WPEAXAEAW4file_type@123@@Z";
-  case 0x02a1: return "?_Release@_Pad@std@@QEAAXXZ";
-  case 0x02a2: return "?_Remove_dir@sys@tr2@std@@YA_NPEBD@Z";
-  case 0x02a3: return "?_Remove_dir@sys@tr2@std@@YA_NPEB_W@Z";
-  case 0x02a4: return "?_Rename@sys@tr2@std@@YAHPEBD0@Z";
-  case 0x02a5: return "?_Rename@sys@tr2@std@@YAHPEB_W0@Z";
-  case 0x02a6: return "?_Rep@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@AEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@V32@D_K@Z";
-  case 0x02a7: return "?_Rep@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@AEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@V32@G_K@Z";
-  case 0x02a8: return "?_Rep@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@AEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@_W_K@Z";
-  case 0x02a9: return "?_Rethrow_future_exception@std@@YAXVexception_ptr@1@@Z";
-  case 0x02aa: return "?_Rng_abort@std@@YAXPEBD@Z";
-  case 0x02ab: return "?_Segment_index_of@_Concurrent_vector_base_v4@details@Concurrency@@KA_K_K@Z";
-  case 0x02ac: return "?_Setgloballocale@locale@std@@CAXPEAX@Z";
-  case 0x02ad: return "?_Src@?1??_Getffldx@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@AEBAHPEADAEAV?$istreambuf_iterator@DU?$char_traits@D@std@@@3@1AEAVios_base@3@PEAH@Z@4QBDB";
-  case 0x02ae: return "?_Src@?1??_Getffldx@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@AEBAHPEADAEAV?$istreambuf_iterator@GU?$char_traits@G@std@@@3@1AEAVios_base@3@PEAH@Z@4QBDB";
-  case 0x02af: return "?_Src@?1??_Getffldx@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@AEBAHPEADAEAV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@3@1AEAVios_base@3@PEAH@Z@4QBDB";
-  case 0x02b0: return "?_Src@?1??_Getifld@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@AEBAHPEADAEAV?$istreambuf_iterator@DU?$char_traits@D@std@@@3@1HAEBVlocale@3@@Z@4QBDB";
-  case 0x02b1: return "?_Src@?1??_Getifld@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@AEBAHPEADAEAV?$istreambuf_iterator@GU?$char_traits@G@std@@@3@1HAEBVlocale@3@@Z@4QBDB";
-  case 0x02b2: return "?_Src@?1??_Getifld@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@AEBAHPEADAEAV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@3@1HAEBVlocale@3@@Z@4QBDB";
-  case 0x02b3: return "?_Src@?3??_Getffld@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@AEBAHPEADAEAV?$istreambuf_iterator@DU?$char_traits@D@std@@@3@1AEAVios_base@3@PEAH@Z@4QBDB";
-  case 0x02b4: return "?_Src@?3??_Getffld@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@AEBAHPEADAEAV?$istreambuf_iterator@GU?$char_traits@G@std@@@3@1AEAVios_base@3@PEAH@Z@4QBDB";
-  case 0x02b5: return "?_Src@?3??_Getffld@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@AEBAHPEADAEAV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@3@1AEAVios_base@3@PEAH@Z@4QBDB";
-  case 0x02b6: return "?_Stat@sys@tr2@std@@YA?AW4file_type@123@PEBDAEAH@Z";
-  case 0x02b7: return "?_Stat@sys@tr2@std@@YA?AW4file_type@123@PEB_WAEAH@Z";
-  case 0x02b8: return "?_Statvfs@sys@tr2@std@@YA?AUspace_info@123@PEBD@Z";
-  case 0x02b9: return "?_Statvfs@sys@tr2@std@@YA?AUspace_info@123@PEB_W@Z";
-  case 0x02ba: return "?_Swap_all@_Container_base0@std@@QEAAXAEAU12@@Z";
-  case 0x02bb: return "?_Swap_all@_Container_base12@std@@QEAAXAEAU12@@Z";
-  case 0x02bc: return "?_Symlink@sys@tr2@std@@YAHPEBD0@Z";
-  case 0x02bd: return "?_Symlink@sys@tr2@std@@YAHPEB_W0@Z";
-  case 0x02be: return "?_Sync@ios_base@std@@0_NA";
-  case 0x02bf: return "?_Syserror_map@std@@YAPEBDH@Z";
-  case 0x02c0: return "?_Throw_C_error@std@@YAXH@Z";
-  case 0x02c1: return "?_Throw_Cpp_error@std@@YAXH@Z";
-  case 0x02c2: return "?_Throw_future_error@std@@YAXAEBVerror_code@1@@Z";
-  case 0x02c3: return "?_Throw_lock_error@threads@stdext@@YAXXZ";
-  case 0x02c4: return "?_Throw_resource_error@threads@stdext@@YAXXZ";
-  case 0x02c5: return "?_Tidy@?$_Yarn@D@std@@AEAAXXZ";
-  case 0x02c6: return "?_Tidy@?$_Yarn@_W@std@@AEAAXXZ";
-  case 0x02c7: return "?_Tidy@?$ctype@D@std@@IEAAXXZ";
-  case 0x02c8: return "?_Tidy@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@AEAAXXZ";
-  case 0x02c9: return "?_Tidy@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@AEAAXXZ";
-  case 0x02ca: return "?_Tidy@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@AEAAXXZ";
-  case 0x02cb: return "?_Tidy@ios_base@std@@AEAAXXZ";
-  case 0x02cc: return "?_Unlink@sys@tr2@std@@YAHPEBD@Z";
-  case 0x02cd: return "?_Unlink@sys@tr2@std@@YAHPEB_W@Z";
-  case 0x02ce: return "?_Unlock@?$basic_streambuf@DU?$char_traits@D@std@@@std@@UEAAXXZ";
-  case 0x02cf: return "?_Unlock@?$basic_streambuf@GU?$char_traits@G@std@@@std@@UEAAXXZ";
-  case 0x02d0: return "?_Unlock@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@UEAAXXZ";
-  case 0x02d1: return "?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ";
-  case 0x02d2: return "?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ";
-  case 0x02d3: return "?_W_Gettnames@_Locinfo@std@@QEBA?AV_Timevec@2@XZ";
-  case 0x02d4: return "?_Winerror_map@std@@YAPEBDH@Z";
-  case 0x02d5: return "?_XLgamma@std@@YAMM@Z";
-  case 0x02d6: return "?_XLgamma@std@@YANN@Z";
-  case 0x02d7: return "?_XLgamma@std@@YAOO@Z";
-  case 0x02d8: return "?_Xbad_alloc@std@@YAXXZ";
-  case 0x02d9: return "?_Xbad_function_call@std@@YAXXZ";
-  case 0x02da: return "?_Xinvalid_argument@std@@YAXPEBD@Z";
-  case 0x02db: return "?_Xlength_error@std@@YAXPEBD@Z";
-  case 0x02dc: return "?_Xout_of_range@std@@YAXPEBD@Z";
-  case 0x02dd: return "?_Xoverflow_error@std@@YAXPEBD@Z";
-  case 0x02de: return "?_Xregex_error@std@@YAXW4error_type@regex_constants@1@@Z";
-  case 0x02df: return "?_Xruntime_error@std@@YAXPEBD@Z";
-  case 0x02e0: return "?adopt_lock@std@@3Uadopt_lock_t@1@B";
-  case 0x02e1: return "?always_noconv@codecvt_base@std@@QEBA_NXZ";
-  case 0x02e2: return "?bad@ios_base@std@@QEBA_NXZ";
-  case 0x02e3: return "?c_str@?$_Yarn@D@std@@QEBAPEBDXZ";
-  case 0x02e4: return "?cancel@agent@Concurrency@@QEAA_NXZ";
-  case 0x02e5: return "?cancel_current_task@Concurrency@@YAXXZ";
-  case 0x02e6: return "?cerr@std@@3V?$basic_ostream@DU?$char_traits@D@std@@@1@A";
-  case 0x02e7: return "?cin@std@@3V?$basic_istream@DU?$char_traits@D@std@@@1@A";
-  case 0x02e8: return "?classic@locale@std@@SAAEBV12@XZ";
-  case 0x02e9: return "?classic_table@?$ctype@D@std@@SAPEBFXZ";
-  case 0x02ea: return "?clear@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAXH_N@Z";
-  case 0x02eb: return "?clear@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAXI@Z";
-  case 0x02ec: return "?clear@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAXH_N@Z";
-  case 0x02ed: return "?clear@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAXI@Z";
-  case 0x02ee: return "?clear@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAXH_N@Z";
-  case 0x02ef: return "?clear@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAXI@Z";
-  case 0x02f0: return "?clear@ios_base@std@@QEAAXH@Z";
-  case 0x02f1: return "?clear@ios_base@std@@QEAAXH_N@Z";
-  case 0x02f2: return "?clear@ios_base@std@@QEAAXI@Z";
-  case 0x02f3: return "?clog@std@@3V?$basic_ostream@DU?$char_traits@D@std@@@1@A";
-  case 0x02f4: return "?copyfmt@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAAEAV12@AEBV12@@Z";
-  case 0x02f5: return "?copyfmt@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAAEAV12@AEBV12@@Z";
-  case 0x02f6: return "?copyfmt@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@AEBV12@@Z";
-  case 0x02f7: return "?copyfmt@ios_base@std@@QEAAAEAV12@AEBV12@@Z";
-  case 0x02f8: return "?cout@std@@3V?$basic_ostream@DU?$char_traits@D@std@@@1@A";
-  case 0x02f9: return "?date_order@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEBA?AW4dateorder@time_base@2@XZ";
-  case 0x02fa: return "?date_order@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEBA?AW4dateorder@time_base@2@XZ";
-  case 0x02fb: return "?date_order@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEBA?AW4dateorder@time_base@2@XZ";
-  case 0x02fc: return "?defer_lock@std@@3Udefer_lock_t@1@B";
-  case 0x02fd: return "?do_always_noconv@?$codecvt@DDH@std@@MEBA_NXZ";
-  case 0x02fe: return "?do_always_noconv@?$codecvt@GDH@std@@MEBA_NXZ";
-  case 0x02ff: return "?do_always_noconv@?$codecvt@_WDH@std@@MEBA_NXZ";
-  case 0x0300: return "?do_always_noconv@codecvt_base@std@@MEBA_NXZ";
-  case 0x0301: return "?do_date_order@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MEBA?AW4dateorder@time_base@2@XZ";
-  case 0x0302: return "?do_date_order@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@MEBA?AW4dateorder@time_base@2@XZ";
-  case 0x0303: return "?do_date_order@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@MEBA?AW4dateorder@time_base@2@XZ";
-  case 0x0304: return "?do_encoding@?$codecvt@GDH@std@@MEBAHXZ";
-  case 0x0305: return "?do_encoding@?$codecvt@_WDH@std@@MEBAHXZ";
-  case 0x0306: return "?do_encoding@codecvt_base@std@@MEBAHXZ";
-  case 0x0307: return "?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHAEAG@Z";
-  case 0x0308: return "?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHAEAI@Z";
-  case 0x0309: return "?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHAEAJ@Z";
-  case 0x030a: return "?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHAEAK@Z";
-  case 0x030b: return "?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHAEAM@Z";
-  case 0x030c: return "?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHAEAN@Z";
-  case 0x030d: return "?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHAEAO@Z";
-  case 0x030e: return "?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHAEAPEAX@Z";
-  case 0x030f: return "?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHAEA_J@Z";
-  case 0x0310: return "?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHAEA_K@Z";
-  case 0x0311: return "?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHAEA_N@Z";
-  case 0x0312: return "?do_get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHAEAG@Z";
-  case 0x0313: return "?do_get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHAEAI@Z";
-  case 0x0314: return "?do_get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHAEAJ@Z";
-  case 0x0315: return "?do_get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHAEAK@Z";
-  case 0x0316: return "?do_get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHAEAM@Z";
-  case 0x0317: return "?do_get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHAEAN@Z";
-  case 0x0318: return "?do_get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHAEAO@Z";
-  case 0x0319: return "?do_get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHAEAPEAX@Z";
-  case 0x031a: return "?do_get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHAEA_J@Z";
-  case 0x031b: return "?do_get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHAEA_K@Z";
-  case 0x031c: return "?do_get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHAEA_N@Z";
-  case 0x031d: return "?do_get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHAEAG@Z";
-  case 0x031e: return "?do_get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHAEAI@Z";
-  case 0x031f: return "?do_get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHAEAJ@Z";
-  case 0x0320: return "?do_get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHAEAK@Z";
-  case 0x0321: return "?do_get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHAEAM@Z";
-  case 0x0322: return "?do_get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHAEAN@Z";
-  case 0x0323: return "?do_get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHAEAO@Z";
-  case 0x0324: return "?do_get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHAEAPEAX@Z";
-  case 0x0325: return "?do_get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHAEA_J@Z";
-  case 0x0326: return "?do_get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHAEA_K@Z";
-  case 0x0327: return "?do_get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHAEA_N@Z";
-  case 0x0328: return "?do_get@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@DD@Z";
-  case 0x0329: return "?do_get@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@DD@Z";
-  case 0x032a: return "?do_get@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@DD@Z";
-  case 0x032b: return "?do_get_date@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
-  case 0x032c: return "?do_get_date@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
-  case 0x032d: return "?do_get_date@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
-  case 0x032e: return "?do_get_monthname@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
-  case 0x032f: return "?do_get_monthname@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
-  case 0x0330: return "?do_get_monthname@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
-  case 0x0331: return "?do_get_time@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
-  case 0x0332: return "?do_get_time@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
-  case 0x0333: return "?do_get_time@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
-  case 0x0334: return "?do_get_weekday@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
-  case 0x0335: return "?do_get_weekday@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
-  case 0x0336: return "?do_get_weekday@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
-  case 0x0337: return "?do_get_year@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
-  case 0x0338: return "?do_get_year@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
-  case 0x0339: return "?do_get_year@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
-  case 0x033a: return "?do_in@?$codecvt@DDH@std@@MEBAHAEAHPEBD1AEAPEBDPEAD3AEAPEAD@Z";
-  case 0x033b: return "?do_in@?$codecvt@GDH@std@@MEBAHAEAHPEBD1AEAPEBDPEAG3AEAPEAG@Z";
-  case 0x033c: return "?do_in@?$codecvt@_WDH@std@@MEBAHAEAHPEBD1AEAPEBDPEA_W3AEAPEA_W@Z";
-  case 0x033d: return "?do_is@?$ctype@G@std@@MEBAPEBGPEBG0PEAF@Z";
-  case 0x033e: return "?do_is@?$ctype@G@std@@MEBA_NFG@Z";
-  case 0x033f: return "?do_is@?$ctype@_W@std@@MEBAPEB_WPEB_W0PEAF@Z";
-  case 0x0340: return "?do_is@?$ctype@_W@std@@MEBA_NF_W@Z";
-  case 0x0341: return "?do_length@?$codecvt@DDH@std@@MEBAHAEAHPEBD1_K@Z";
-  case 0x0342: return "?do_length@?$codecvt@GDH@std@@MEBAHAEAHPEBD1_K@Z";
-  case 0x0343: return "?do_length@?$codecvt@_WDH@std@@MEBAHAEAHPEBD1_K@Z";
-  case 0x0344: return "?do_max_length@?$codecvt@GDH@std@@MEBAHXZ";
-  case 0x0345: return "?do_max_length@?$codecvt@_WDH@std@@MEBAHXZ";
-  case 0x0346: return "?do_max_length@codecvt_base@std@@MEBAHXZ";
-  case 0x0347: return "?do_narrow@?$ctype@D@std@@MEBADDD@Z";
-  case 0x0348: return "?do_narrow@?$ctype@D@std@@MEBAPEBDPEBD0DPEAD@Z";
-  case 0x0349: return "?do_narrow@?$ctype@G@std@@MEBADGD@Z";
-  case 0x034a: return "?do_narrow@?$ctype@G@std@@MEBAPEBGPEBG0DPEAD@Z";
-  case 0x034b: return "?do_narrow@?$ctype@_W@std@@MEBAD_WD@Z";
-  case 0x034c: return "?do_narrow@?$ctype@_W@std@@MEBAPEB_WPEB_W0DPEAD@Z";
-  case 0x034d: return "?do_out@?$codecvt@DDH@std@@MEBAHAEAHPEBD1AEAPEBDPEAD3AEAPEAD@Z";
-  case 0x034e: return "?do_out@?$codecvt@GDH@std@@MEBAHAEAHPEBG1AEAPEBGPEAD3AEAPEAD@Z";
-  case 0x034f: return "?do_out@?$codecvt@_WDH@std@@MEBAHAEAHPEB_W1AEAPEB_WPEAD3AEAPEAD@Z";
-  case 0x0350: return "?do_put@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@V32@AEAVios_base@2@DJ@Z";
-  case 0x0351: return "?do_put@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@V32@AEAVios_base@2@DK@Z";
-  case 0x0352: return "?do_put@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@V32@AEAVios_base@2@DN@Z";
-  case 0x0353: return "?do_put@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@V32@AEAVios_base@2@DO@Z";
-  case 0x0354: return "?do_put@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@V32@AEAVios_base@2@DPEBX@Z";
-  case 0x0355: return "?do_put@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@V32@AEAVios_base@2@D_J@Z";
-  case 0x0356: return "?do_put@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@V32@AEAVios_base@2@D_K@Z";
-  case 0x0357: return "?do_put@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@V32@AEAVios_base@2@D_N@Z";
-  case 0x0358: return "?do_put@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@MEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@V32@AEAVios_base@2@GJ@Z";
-  case 0x0359: return "?do_put@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@MEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@V32@AEAVios_base@2@GK@Z";
-  case 0x035a: return "?do_put@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@MEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@V32@AEAVios_base@2@GN@Z";
-  case 0x035b: return "?do_put@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@MEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@V32@AEAVios_base@2@GO@Z";
-  case 0x035c: return "?do_put@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@MEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@V32@AEAVios_base@2@GPEBX@Z";
-  case 0x035d: return "?do_put@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@MEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@V32@AEAVios_base@2@G_J@Z";
-  case 0x035e: return "?do_put@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@MEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@V32@AEAVios_base@2@G_K@Z";
-  case 0x035f: return "?do_put@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@MEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@V32@AEAVios_base@2@G_N@Z";
-  case 0x0360: return "?do_put@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@MEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@AEAVios_base@2@_WJ@Z";
-  case 0x0361: return "?do_put@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@MEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@AEAVios_base@2@_WK@Z";
-  case 0x0362: return "?do_put@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@MEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@AEAVios_base@2@_WN@Z";
-  case 0x0363: return "?do_put@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@MEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@AEAVios_base@2@_WO@Z";
-  case 0x0364: return "?do_put@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@MEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@AEAVios_base@2@_WPEBX@Z";
-  case 0x0365: return "?do_put@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@MEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@AEAVios_base@2@_W_J@Z";
-  case 0x0366: return "?do_put@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@MEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@AEAVios_base@2@_W_K@Z";
-  case 0x0367: return "?do_put@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@MEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@AEAVios_base@2@_W_N@Z";
-  case 0x0368: return "?do_put@?$time_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@V32@AEAVios_base@2@DPEBUtm@@DD@Z";
-  case 0x0369: return "?do_put@?$time_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@MEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@V32@AEAVios_base@2@GPEBUtm@@DD@Z";
-  case 0x036a: return "?do_put@?$time_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@MEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@AEAVios_base@2@_WPEBUtm@@DD@Z";
-  case 0x036b: return "?do_scan_is@?$ctype@G@std@@MEBAPEBGFPEBG0@Z";
-  case 0x036c: return "?do_scan_is@?$ctype@_W@std@@MEBAPEB_WFPEB_W0@Z";
-  case 0x036d: return "?do_scan_not@?$ctype@G@std@@MEBAPEBGFPEBG0@Z";
-  case 0x036e: return "?do_scan_not@?$ctype@_W@std@@MEBAPEB_WFPEB_W0@Z";
-  case 0x036f: return "?do_tolower@?$ctype@D@std@@MEBADD@Z";
-  case 0x0370: return "?do_tolower@?$ctype@D@std@@MEBAPEBDPEADPEBD@Z";
-  case 0x0371: return "?do_tolower@?$ctype@G@std@@MEBAGG@Z";
-  case 0x0372: return "?do_tolower@?$ctype@G@std@@MEBAPEBGPEAGPEBG@Z";
-  case 0x0373: return "?do_tolower@?$ctype@_W@std@@MEBAPEB_WPEA_WPEB_W@Z";
-  case 0x0374: return "?do_tolower@?$ctype@_W@std@@MEBA_W_W@Z";
-  case 0x0375: return "?do_toupper@?$ctype@D@std@@MEBADD@Z";
-  case 0x0376: return "?do_toupper@?$ctype@D@std@@MEBAPEBDPEADPEBD@Z";
-  case 0x0377: return "?do_toupper@?$ctype@G@std@@MEBAGG@Z";
-  case 0x0378: return "?do_toupper@?$ctype@G@std@@MEBAPEBGPEAGPEBG@Z";
-  case 0x0379: return "?do_toupper@?$ctype@_W@std@@MEBAPEB_WPEA_WPEB_W@Z";
-  case 0x037a: return "?do_toupper@?$ctype@_W@std@@MEBA_W_W@Z";
-  case 0x037b: return "?do_unshift@?$codecvt@DDH@std@@MEBAHAEAHPEAD1AEAPEAD@Z";
-  case 0x037c: return "?do_unshift@?$codecvt@GDH@std@@MEBAHAEAHPEAD1AEAPEAD@Z";
-  case 0x037d: return "?do_unshift@?$codecvt@_WDH@std@@MEBAHAEAHPEAD1AEAPEAD@Z";
-  case 0x037e: return "?do_widen@?$ctype@D@std@@MEBADD@Z";
-  case 0x037f: return "?do_widen@?$ctype@D@std@@MEBAPEBDPEBD0PEAD@Z";
-  case 0x0380: return "?do_widen@?$ctype@G@std@@MEBAGD@Z";
-  case 0x0381: return "?do_widen@?$ctype@G@std@@MEBAPEBDPEBD0PEAG@Z";
-  case 0x0382: return "?do_widen@?$ctype@_W@std@@MEBAPEBDPEBD0PEA_W@Z";
-  case 0x0383: return "?do_widen@?$ctype@_W@std@@MEBA_WD@Z";
-  case 0x0384: return "?done@agent@Concurrency@@IEAA_NXZ";
-  case 0x0385: return "?eback@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ";
-  case 0x0386: return "?eback@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEBAPEAGXZ";
-  case 0x0387: return "?eback@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEBAPEA_WXZ";
-  case 0x0388: return "?egptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ";
-  case 0x0389: return "?egptr@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEBAPEAGXZ";
-  case 0x038a: return "?egptr@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEBAPEA_WXZ";
-  case 0x038b: return "?empty@?$_Yarn@D@std@@QEBA_NXZ";
-  case 0x038c: return "?empty@locale@std@@SA?AV12@XZ";
-  case 0x038d: return "?encoding@codecvt_base@std@@QEBAHXZ";
-  case 0x038e: return "?endl@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@1@AEAV21@@Z";
-  case 0x038f: return "?endl@std@@YAAEAV?$basic_ostream@GU?$char_traits@G@std@@@1@AEAV21@@Z";
-  case 0x0390: return "?endl@std@@YAAEAV?$basic_ostream@_WU?$char_traits@_W@std@@@1@AEAV21@@Z";
-  case 0x0391: return "?ends@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@1@AEAV21@@Z";
-  case 0x0392: return "?ends@std@@YAAEAV?$basic_ostream@GU?$char_traits@G@std@@@1@AEAV21@@Z";
-  case 0x0393: return "?ends@std@@YAAEAV?$basic_ostream@_WU?$char_traits@_W@std@@@1@AEAV21@@Z";
-  case 0x0394: return "?eof@ios_base@std@@QEBA_NXZ";
-  case 0x0395: return "?epptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ";
-  case 0x0396: return "?epptr@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEBAPEAGXZ";
-  case 0x0397: return "?epptr@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEBAPEA_WXZ";
-  case 0x0398: return "?exceptions@ios_base@std@@QEAAXH@Z";
-  case 0x0399: return "?exceptions@ios_base@std@@QEAAXI@Z";
-  case 0x039a: return "?exceptions@ios_base@std@@QEBAHXZ";
-  case 0x039b: return "?fail@ios_base@std@@QEBA_NXZ";
-  case 0x039c: return "?fill@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAADD@Z";
-  case 0x039d: return "?fill@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBADXZ";
-  case 0x039e: return "?fill@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAGG@Z";
-  case 0x039f: return "?fill@?$basic_ios@GU?$char_traits@G@std@@@std@@QEBAGXZ";
-  case 0x03a0: return "?fill@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAA_W_W@Z";
-  case 0x03a1: return "?fill@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEBA_WXZ";
-  case 0x03a2: return "?flags@ios_base@std@@QEAAHH@Z";
-  case 0x03a3: return "?flags@ios_base@std@@QEBAHXZ";
-  case 0x03a4: return "?flush@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@XZ";
-  case 0x03a5: return "?flush@?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@XZ";
-  case 0x03a6: return "?flush@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@XZ";
-  case 0x03a7: return "?flush@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@1@AEAV21@@Z";
-  case 0x03a8: return "?flush@std@@YAAEAV?$basic_ostream@GU?$char_traits@G@std@@@1@AEAV21@@Z";
-  case 0x03a9: return "?flush@std@@YAAEAV?$basic_ostream@_WU?$char_traits@_W@std@@@1@AEAV21@@Z";
-  case 0x03aa: return "?gbump@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXH@Z";
-  case 0x03ab: return "?gbump@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAXH@Z";
-  case 0x03ac: return "?gbump@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAXH@Z";
-  case 0x03ad: return "?gcount@?$basic_istream@DU?$char_traits@D@std@@@std@@QEBA_JXZ";
-  case 0x03ae: return "?gcount@?$basic_istream@GU?$char_traits@G@std@@@std@@QEBA_JXZ";
-  case 0x03af: return "?gcount@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEBA_JXZ";
-  case 0x03b0: return "?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@AEAD@Z";
-  case 0x03b1: return "?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@AEAV?$basic_streambuf@DU?$char_traits@D@std@@@2@@Z";
-  case 0x03b2: return "?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@AEAV?$basic_streambuf@DU?$char_traits@D@std@@@2@D@Z";
-  case 0x03b3: return "?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@PEAD_J@Z";
-  case 0x03b4: return "?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@PEAD_JD@Z";
-  case 0x03b5: return "?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAHXZ";
-  case 0x03b6: return "?get@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@AEAG@Z";
-  case 0x03b7: return "?get@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@AEAV?$basic_streambuf@GU?$char_traits@G@std@@@2@@Z";
-  case 0x03b8: return "?get@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@AEAV?$basic_streambuf@GU?$char_traits@G@std@@@2@G@Z";
-  case 0x03b9: return "?get@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@PEAG_J@Z";
-  case 0x03ba: return "?get@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@PEAG_JG@Z";
-  case 0x03bb: return "?get@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAGXZ";
-  case 0x03bc: return "?get@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@AEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@2@@Z";
-  case 0x03bd: return "?get@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@AEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@2@_W@Z";
-  case 0x03be: return "?get@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@AEA_W@Z";
-  case 0x03bf: return "?get@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@PEA_W_J@Z";
-  case 0x03c0: return "?get@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@PEA_W_J_W@Z";
-  case 0x03c1: return "?get@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAGXZ";
-  case 0x03c2: return "?get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHAEAG@Z";
-  case 0x03c3: return "?get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHAEAI@Z";
-  case 0x03c4: return "?get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHAEAJ@Z";
-  case 0x03c5: return "?get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHAEAK@Z";
-  case 0x03c6: return "?get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHAEAM@Z";
-  case 0x03c7: return "?get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHAEAN@Z";
-  case 0x03c8: return "?get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHAEAO@Z";
-  case 0x03c9: return "?get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHAEAPEAX@Z";
-  case 0x03ca: return "?get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHAEA_J@Z";
-  case 0x03cb: return "?get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHAEA_K@Z";
-  case 0x03cc: return "?get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHAEA_N@Z";
-  case 0x03cd: return "?get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHAEAG@Z";
-  case 0x03ce: return "?get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHAEAI@Z";
-  case 0x03cf: return "?get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHAEAJ@Z";
-  case 0x03d0: return "?get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHAEAK@Z";
-  case 0x03d1: return "?get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHAEAM@Z";
-  case 0x03d2: return "?get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHAEAN@Z";
-  case 0x03d3: return "?get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHAEAO@Z";
-  case 0x03d4: return "?get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHAEAPEAX@Z";
-  case 0x03d5: return "?get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHAEA_J@Z";
-  case 0x03d6: return "?get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHAEA_K@Z";
-  case 0x03d7: return "?get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHAEA_N@Z";
-  case 0x03d8: return "?get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHAEAG@Z";
-  case 0x03d9: return "?get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHAEAI@Z";
-  case 0x03da: return "?get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHAEAJ@Z";
-  case 0x03db: return "?get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHAEAK@Z";
-  case 0x03dc: return "?get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHAEAM@Z";
-  case 0x03dd: return "?get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHAEAN@Z";
-  case 0x03de: return "?get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHAEAO@Z";
-  case 0x03df: return "?get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHAEAPEAX@Z";
-  case 0x03e0: return "?get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHAEA_J@Z";
-  case 0x03e1: return "?get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHAEA_K@Z";
-  case 0x03e2: return "?get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHAEA_N@Z";
-  case 0x03e3: return "?get@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@DD@Z";
-  case 0x03e4: return "?get@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@PEBD4@Z";
-  case 0x03e5: return "?get@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@DD@Z";
-  case 0x03e6: return "?get@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@PEBG4@Z";
-  case 0x03e7: return "?get@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@DD@Z";
-  case 0x03e8: return "?get@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@PEB_W4@Z";
-  case 0x03e9: return "?get_date@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
-  case 0x03ea: return "?get_date@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
-  case 0x03eb: return "?get_date@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
-  case 0x03ec: return "?get_monthname@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
-  case 0x03ed: return "?get_monthname@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
-  case 0x03ee: return "?get_monthname@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
-  case 0x03ef: return "?get_new_handler@std@@YAP6AXXZXZ";
-  case 0x03f0: return "?get_time@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
-  case 0x03f1: return "?get_time@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
-  case 0x03f2: return "?get_time@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
-  case 0x03f3: return "?get_weekday@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
-  case 0x03f4: return "?get_weekday@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
-  case 0x03f5: return "?get_weekday@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
-  case 0x03f6: return "?get_year@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
-  case 0x03f7: return "?get_year@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
-  case 0x03f8: return "?get_year@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
-  case 0x03f9: return "?getline@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@PEAD_J@Z";
-  case 0x03fa: return "?getline@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@PEAD_JD@Z";
-  case 0x03fb: return "?getline@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@PEAG_J@Z";
-  case 0x03fc: return "?getline@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@PEAG_JG@Z";
-  case 0x03fd: return "?getline@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@PEA_W_J@Z";
-  case 0x03fe: return "?getline@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@PEA_W_J_W@Z";
-  case 0x03ff: return "?getloc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEBA?AVlocale@2@XZ";
-  case 0x0400: return "?getloc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEBA?AVlocale@2@XZ";
-  case 0x0401: return "?getloc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEBA?AVlocale@2@XZ";
-  case 0x0402: return "?getloc@ios_base@std@@QEBA?AVlocale@2@XZ";
-  case 0x0403: return "?global@locale@std@@SA?AV12@AEBV12@@Z";
-  case 0x0404: return "?good@ios_base@std@@QEBA_NXZ";
-  case 0x0405: return "?gptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ";
-  case 0x0406: return "?gptr@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEBAPEAGXZ";
-  case 0x0407: return "?gptr@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEBAPEA_WXZ";
-  case 0x0408: return "?id@?$codecvt@DDH@std@@2V0locale@2@A";
-  case 0x0409: return "?id@?$codecvt@GDH@std@@2V0locale@2@A";
-  case 0x040a: return "?id@?$codecvt@_WDH@std@@2V0locale@2@A";
-  case 0x040b: return "?id@?$collate@D@std@@2V0locale@2@A";
-  case 0x040c: return "?id@?$collate@G@std@@2V0locale@2@A";
-  case 0x040d: return "?id@?$collate@_W@std@@2V0locale@2@A";
-  case 0x040e: return "?id@?$ctype@D@std@@2V0locale@2@A";
-  case 0x040f: return "?id@?$ctype@G@std@@2V0locale@2@A";
-  case 0x0410: return "?id@?$ctype@_W@std@@2V0locale@2@A";
-  case 0x0411: return "?id@?$messages@D@std@@2V0locale@2@A";
-  case 0x0412: return "?id@?$messages@G@std@@2V0locale@2@A";
-  case 0x0413: return "?id@?$messages@_W@std@@2V0locale@2@A";
-  case 0x0414: return "?id@?$money_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@2V0locale@2@A";
-  case 0x0415: return "?id@?$money_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@2V0locale@2@A";
-  case 0x0416: return "?id@?$money_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@2V0locale@2@A";
-  case 0x0417: return "?id@?$money_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@2V0locale@2@A";
-  case 0x0418: return "?id@?$money_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@2V0locale@2@A";
-  case 0x0419: return "?id@?$money_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@2V0locale@2@A";
-  case 0x041a: return "?id@?$moneypunct@D$00@std@@2V0locale@2@A";
-  case 0x041b: return "?id@?$moneypunct@D$0A@@std@@2V0locale@2@A";
-  case 0x041c: return "?id@?$moneypunct@G$00@std@@2V0locale@2@A";
-  case 0x041d: return "?id@?$moneypunct@G$0A@@std@@2V0locale@2@A";
-  case 0x041e: return "?id@?$moneypunct@_W$00@std@@2V0locale@2@A";
-  case 0x041f: return "?id@?$moneypunct@_W$0A@@std@@2V0locale@2@A";
-  case 0x0420: return "?id@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@2V0locale@2@A";
-  case 0x0421: return "?id@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@2V0locale@2@A";
-  case 0x0422: return "?id@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@2V0locale@2@A";
-  case 0x0423: return "?id@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@2V0locale@2@A";
-  case 0x0424: return "?id@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@2V0locale@2@A";
-  case 0x0425: return "?id@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@2V0locale@2@A";
-  case 0x0426: return "?id@?$numpunct@D@std@@2V0locale@2@A";
-  case 0x0427: return "?id@?$numpunct@G@std@@2V0locale@2@A";
-  case 0x0428: return "?id@?$numpunct@_W@std@@2V0locale@2@A";
-  case 0x0429: return "?id@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@2V0locale@2@A";
-  case 0x042a: return "?id@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@2V0locale@2@A";
-  case 0x042b: return "?id@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@2V0locale@2@A";
-  case 0x042c: return "?id@?$time_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@2V0locale@2@A";
-  case 0x042d: return "?id@?$time_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@2V0locale@2@A";
-  case 0x042e: return "?id@?$time_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@2V0locale@2@A";
-  case 0x042f: return "?ignore@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@_JH@Z";
-  case 0x0430: return "?ignore@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@_JG@Z";
-  case 0x0431: return "?ignore@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@_JG@Z";
-  case 0x0432: return "?imbue@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAA?AVlocale@2@AEBV32@@Z";
-  case 0x0433: return "?imbue@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAA?AVlocale@2@AEBV32@@Z";
-  case 0x0434: return "?imbue@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAA?AVlocale@2@AEBV32@@Z";
-  case 0x0435: return "?imbue@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAAXAEBVlocale@2@@Z";
-  case 0x0436: return "?imbue@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAAXAEBVlocale@2@@Z";
-  case 0x0437: return "?imbue@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAAXAEBVlocale@2@@Z";
-  case 0x0438: return "?imbue@ios_base@std@@QEAA?AVlocale@2@AEBV32@@Z";
-  case 0x0439: return "?in@?$codecvt@DDH@std@@QEBAHAEAHPEBD1AEAPEBDPEAD3AEAPEAD@Z";
-  case 0x043a: return "?in@?$codecvt@GDH@std@@QEBAHAEAHPEBD1AEAPEBDPEAG3AEAPEAG@Z";
-  case 0x043b: return "?in@?$codecvt@_WDH@std@@QEBAHAEAHPEBD1AEAPEBDPEA_W3AEAPEA_W@Z";
-  case 0x043c: return "?in_avail@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA_JXZ";
-  case 0x043d: return "?in_avail@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA_JXZ";
-  case 0x043e: return "?in_avail@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAA_JXZ";
-  case 0x043f: return "?init@?$basic_ios@DU?$char_traits@D@std@@@std@@IEAAXPEAV?$basic_streambuf@DU?$char_traits@D@std@@@2@_N@Z";
-  case 0x0440: return "?init@?$basic_ios@GU?$char_traits@G@std@@@std@@IEAAXPEAV?$basic_streambuf@GU?$char_traits@G@std@@@2@_N@Z";
-  case 0x0441: return "?init@?$basic_ios@_WU?$char_traits@_W@std@@@std@@IEAAXPEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@2@_N@Z";
-  case 0x0442: return "?intl@?$moneypunct@D$00@std@@2_NB";
-  case 0x0443: return "?intl@?$moneypunct@D$0A@@std@@2_NB";
-  case 0x0444: return "?intl@?$moneypunct@G$00@std@@2_NB";
-  case 0x0445: return "?intl@?$moneypunct@G$0A@@std@@2_NB";
-  case 0x0446: return "?intl@?$moneypunct@_W$00@std@@2_NB";
-  case 0x0447: return "?intl@?$moneypunct@_W$0A@@std@@2_NB";
-  case 0x0448: return "?ipfx@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAA_N_N@Z";
-  case 0x0449: return "?ipfx@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAA_N_N@Z";
-  case 0x044a: return "?ipfx@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAA_N_N@Z";
-  case 0x044b: return "?is@?$ctype@D@std@@QEBAPEBDPEBD0PEAF@Z";
-  case 0x044c: return "?is@?$ctype@D@std@@QEBA_NFD@Z";
-  case 0x044d: return "?is@?$ctype@G@std@@QEBAPEBGPEBG0PEAF@Z";
-  case 0x044e: return "?is@?$ctype@G@std@@QEBA_NFG@Z";
-  case 0x044f: return "?is@?$ctype@_W@std@@QEBAPEB_WPEB_W0PEAF@Z";
-  case 0x0450: return "?is@?$ctype@_W@std@@QEBA_NF_W@Z";
-  case 0x0451: return "?is_current_task_group_canceling@Concurrency@@YA_NXZ";
-  case 0x0452: return "?is_task_cancellation_requested@Concurrency@@YA_NXZ";
-  case 0x0453: return "?isfx@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAXXZ";
-  case 0x0454: return "?isfx@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAXXZ";
-  case 0x0455: return "?isfx@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAXXZ";
-  case 0x0456: return "?iword@ios_base@std@@QEAAAEAJH@Z";
-  case 0x0457: return "?length@?$codecvt@DDH@std@@QEBAHAEAHPEBD1_K@Z";
-  case 0x0458: return "?length@?$codecvt@GDH@std@@QEBAHAEAHPEBD1_K@Z";
-  case 0x0459: return "?length@?$codecvt@_WDH@std@@QEBAHAEAHPEBD1_K@Z";
-  case 0x045a: return "?max_length@codecvt_base@std@@QEBAHXZ";
-  case 0x045b: return "?move@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAX$$QEAV12@@Z";
-  case 0x045c: return "?move@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAXAEAV12@@Z";
-  case 0x045d: return "?move@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAX$$QEAV12@@Z";
-  case 0x045e: return "?move@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAXAEAV12@@Z";
-  case 0x045f: return "?move@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAX$$QEAV12@@Z";
-  case 0x0460: return "?move@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAXAEAV12@@Z";
-  case 0x0461: return "?narrow@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBADDD@Z";
-  case 0x0462: return "?narrow@?$basic_ios@GU?$char_traits@G@std@@@std@@QEBADGD@Z";
-  case 0x0463: return "?narrow@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEBAD_WD@Z";
-  case 0x0464: return "?narrow@?$ctype@D@std@@QEBADDD@Z";
-  case 0x0465: return "?narrow@?$ctype@D@std@@QEBAPEBDPEBD0DPEAD@Z";
-  case 0x0466: return "?narrow@?$ctype@G@std@@QEBADGD@Z";
-  case 0x0467: return "?narrow@?$ctype@G@std@@QEBAPEBGPEBG0DPEAD@Z";
-  case 0x0468: return "?narrow@?$ctype@_W@std@@QEBAD_WD@Z";
-  case 0x0469: return "?narrow@?$ctype@_W@std@@QEBAPEB_WPEB_W0DPEAD@Z";
-  case 0x046a: return "?opfx@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA_NXZ";
-  case 0x046b: return "?opfx@?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAA_NXZ";
-  case 0x046c: return "?opfx@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAA_NXZ";
-  case 0x046d: return "?osfx@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAXXZ";
-  case 0x046e: return "?osfx@?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAXXZ";
-  case 0x046f: return "?osfx@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAXXZ";
-  case 0x0470: return "?out@?$codecvt@DDH@std@@QEBAHAEAHPEBD1AEAPEBDPEAD3AEAPEAD@Z";
-  case 0x0471: return "?out@?$codecvt@GDH@std@@QEBAHAEAHPEBG1AEAPEBGPEAD3AEAPEAD@Z";
-  case 0x0472: return "?out@?$codecvt@_WDH@std@@QEBAHAEAHPEB_W1AEAPEB_WPEAD3AEAPEAD@Z";
-  case 0x0473: return "?overflow@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAAHH@Z";
-  case 0x0474: return "?overflow@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAAGG@Z";
-  case 0x0475: return "?overflow@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAAGG@Z";
-  case 0x0476: return "?pbackfail@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAAHH@Z";
-  case 0x0477: return "?pbackfail@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAAGG@Z";
-  case 0x0478: return "?pbackfail@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAAGG@Z";
-  case 0x0479: return "?pbase@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ";
-  case 0x047a: return "?pbase@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEBAPEAGXZ";
-  case 0x047b: return "?pbase@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEBAPEA_WXZ";
-  case 0x047c: return "?pbump@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXH@Z";
-  case 0x047d: return "?pbump@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAXH@Z";
-  case 0x047e: return "?pbump@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAXH@Z";
-  case 0x047f: return "?peek@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAHXZ";
-  case 0x0480: return "?peek@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAGXZ";
-  case 0x0481: return "?peek@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAGXZ";
-  case 0x0482: return "?pptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ";
-  case 0x0483: return "?pptr@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEBAPEAGXZ";
-  case 0x0484: return "?pptr@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEBAPEA_WXZ";
-  case 0x0485: return "?precision@ios_base@std@@QEAA_J_J@Z";
-  case 0x0486: return "?precision@ios_base@std@@QEBA_JXZ";
-  case 0x0487: return "?pubimbue@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA?AVlocale@2@AEBV32@@Z";
-  case 0x0488: return "?pubimbue@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA?AVlocale@2@AEBV32@@Z";
-  case 0x0489: return "?pubimbue@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAA?AVlocale@2@AEBV32@@Z";
-  case 0x048a: return "?pubseekoff@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA?AV?$fpos@H@2@_JHH@Z";
-  case 0x048b: return "?pubseekoff@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA?AV?$fpos@H@2@_JII@Z";
-  case 0x048c: return "?pubseekoff@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA?AV?$fpos@H@2@_JHH@Z";
-  case 0x048d: return "?pubseekoff@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA?AV?$fpos@H@2@_JII@Z";
-  case 0x048e: return "?pubseekoff@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAA?AV?$fpos@H@2@_JHH@Z";
-  case 0x048f: return "?pubseekoff@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAA?AV?$fpos@H@2@_JII@Z";
-  case 0x0490: return "?pubseekpos@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA?AV?$fpos@H@2@V32@H@Z";
-  case 0x0491: return "?pubseekpos@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA?AV?$fpos@H@2@V32@I@Z";
-  case 0x0492: return "?pubseekpos@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA?AV?$fpos@H@2@V32@H@Z";
-  case 0x0493: return "?pubseekpos@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA?AV?$fpos@H@2@V32@I@Z";
-  case 0x0494: return "?pubseekpos@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAA?AV?$fpos@H@2@V32@H@Z";
-  case 0x0495: return "?pubseekpos@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAA?AV?$fpos@H@2@V32@I@Z";
-  case 0x0496: return "?pubsetbuf@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAPEAV12@PEAD_J@Z";
-  case 0x0497: return "?pubsetbuf@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAPEAV12@PEAG_J@Z";
-  case 0x0498: return "?pubsetbuf@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAPEAV12@PEA_W_J@Z";
-  case 0x0499: return "?pubsync@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHXZ";
-  case 0x049a: return "?pubsync@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAHXZ";
-  case 0x049b: return "?pubsync@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAHXZ";
-  case 0x049c: return "?put@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@D@Z";
-  case 0x049d: return "?put@?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@G@Z";
-  case 0x049e: return "?put@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@_W@Z";
-  case 0x049f: return "?put@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@V32@AEAVios_base@2@DJ@Z";
-  case 0x04a0: return "?put@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@V32@AEAVios_base@2@DK@Z";
-  case 0x04a1: return "?put@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@V32@AEAVios_base@2@DN@Z";
-  case 0x04a2: return "?put@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@V32@AEAVios_base@2@DO@Z";
-  case 0x04a3: return "?put@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@V32@AEAVios_base@2@DPEBX@Z";
-  case 0x04a4: return "?put@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@V32@AEAVios_base@2@D_J@Z";
-  case 0x04a5: return "?put@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@V32@AEAVios_base@2@D_K@Z";
-  case 0x04a6: return "?put@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@V32@AEAVios_base@2@D_N@Z";
-  case 0x04a7: return "?put@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@V32@AEAVios_base@2@GJ@Z";
-  case 0x04a8: return "?put@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@V32@AEAVios_base@2@GK@Z";
-  case 0x04a9: return "?put@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@V32@AEAVios_base@2@GN@Z";
-  case 0x04aa: return "?put@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@V32@AEAVios_base@2@GO@Z";
-  case 0x04ab: return "?put@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@V32@AEAVios_base@2@GPEBX@Z";
-  case 0x04ac: return "?put@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@V32@AEAVios_base@2@G_J@Z";
-  case 0x04ad: return "?put@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@V32@AEAVios_base@2@G_K@Z";
-  case 0x04ae: return "?put@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@V32@AEAVios_base@2@G_N@Z";
-  case 0x04af: return "?put@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@AEAVios_base@2@_WJ@Z";
-  case 0x04b0: return "?put@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@AEAVios_base@2@_WK@Z";
-  case 0x04b1: return "?put@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@AEAVios_base@2@_WN@Z";
-  case 0x04b2: return "?put@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@AEAVios_base@2@_WO@Z";
-  case 0x04b3: return "?put@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@AEAVios_base@2@_WPEBX@Z";
-  case 0x04b4: return "?put@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@AEAVios_base@2@_W_J@Z";
-  case 0x04b5: return "?put@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@AEAVios_base@2@_W_K@Z";
-  case 0x04b6: return "?put@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@AEAVios_base@2@_W_N@Z";
-  case 0x04b7: return "?put@?$time_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@V32@AEAVios_base@2@DPEBUtm@@DD@Z";
-  case 0x04b8: return "?put@?$time_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@V32@AEAVios_base@2@DPEBUtm@@PEBD3@Z";
-  case 0x04b9: return "?put@?$time_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@V32@AEAVios_base@2@GPEBUtm@@DD@Z";
-  case 0x04ba: return "?put@?$time_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@V32@AEAVios_base@2@GPEBUtm@@PEBG3@Z";
-  case 0x04bb: return "?put@?$time_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@AEAVios_base@2@_WPEBUtm@@DD@Z";
-  case 0x04bc: return "?put@?$time_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@AEAVios_base@2@_WPEBUtm@@PEB_W4@Z";
-  case 0x04bd: return "?putback@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@D@Z";
-  case 0x04be: return "?putback@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@G@Z";
-  case 0x04bf: return "?putback@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@_W@Z";
-  case 0x04c0: return "?pword@ios_base@std@@QEAAAEAPEAXH@Z";
-  case 0x04c1: return "?rdbuf@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAPEAV?$basic_streambuf@DU?$char_traits@D@std@@@2@PEAV32@@Z";
-  case 0x04c2: return "?rdbuf@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBAPEAV?$basic_streambuf@DU?$char_traits@D@std@@@2@XZ";
-  case 0x04c3: return "?rdbuf@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAPEAV?$basic_streambuf@GU?$char_traits@G@std@@@2@PEAV32@@Z";
-  case 0x04c4: return "?rdbuf@?$basic_ios@GU?$char_traits@G@std@@@std@@QEBAPEAV?$basic_streambuf@GU?$char_traits@G@std@@@2@XZ";
-  case 0x04c5: return "?rdbuf@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAPEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@2@PEAV32@@Z";
-  case 0x04c6: return "?rdbuf@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEBAPEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@2@XZ";
-  case 0x04c7: return "?rdstate@ios_base@std@@QEBAHXZ";
-  case 0x04c8: return "?read@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@PEAD_J@Z";
-  case 0x04c9: return "?read@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@PEAG_J@Z";
-  case 0x04ca: return "?read@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@PEA_W_J@Z";
-  case 0x04cb: return "?readsome@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAA_JPEAD_J@Z";
-  case 0x04cc: return "?readsome@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAA_JPEAG_J@Z";
-  case 0x04cd: return "?readsome@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAA_JPEA_W_J@Z";
-  case 0x04ce: return "?register_callback@ios_base@std@@QEAAXP6AXW4event@12@AEAV12@H@ZH@Z";
-  case 0x04cf: return "?resetiosflags@std@@YA?AU?$_Smanip@H@1@H@Z";
-  case 0x04d0: return "?sbumpc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHXZ";
-  case 0x04d1: return "?sbumpc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAGXZ";
-  case 0x04d2: return "?sbumpc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAGXZ";
-  case 0x04d3: return "?scan_is@?$ctype@D@std@@QEBAPEBDFPEBD0@Z";
-  case 0x04d4: return "?scan_is@?$ctype@G@std@@QEBAPEBGFPEBG0@Z";
-  case 0x04d5: return "?scan_is@?$ctype@_W@std@@QEBAPEB_WFPEB_W0@Z";
-  case 0x04d6: return "?scan_not@?$ctype@D@std@@QEBAPEBDFPEBD0@Z";
-  case 0x04d7: return "?scan_not@?$ctype@G@std@@QEBAPEBGFPEBG0@Z";
-  case 0x04d8: return "?scan_not@?$ctype@_W@std@@QEBAPEB_WFPEB_W0@Z";
-  case 0x04d9: return "?seekg@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@V?$fpos@H@2@@Z";
-  case 0x04da: return "?seekg@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@_JH@Z";
-  case 0x04db: return "?seekg@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@V?$fpos@H@2@@Z";
-  case 0x04dc: return "?seekg@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@_JH@Z";
-  case 0x04dd: return "?seekg@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@V?$fpos@H@2@@Z";
-  case 0x04de: return "?seekg@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@_JH@Z";
-  case 0x04df: return "?seekoff@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAA?AV?$fpos@H@2@_JHH@Z";
-  case 0x04e0: return "?seekoff@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAA?AV?$fpos@H@2@_JHH@Z";
-  case 0x04e1: return "?seekoff@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAA?AV?$fpos@H@2@_JHH@Z";
-  case 0x04e2: return "?seekp@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@V?$fpos@H@2@@Z";
-  case 0x04e3: return "?seekp@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@_JH@Z";
-  case 0x04e4: return "?seekp@?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@V?$fpos@H@2@@Z";
-  case 0x04e5: return "?seekp@?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@_JH@Z";
-  case 0x04e6: return "?seekp@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@V?$fpos@H@2@@Z";
-  case 0x04e7: return "?seekp@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@_JH@Z";
-  case 0x04e8: return "?seekpos@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAA?AV?$fpos@H@2@V32@H@Z";
-  case 0x04e9: return "?seekpos@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAA?AV?$fpos@H@2@V32@H@Z";
-  case 0x04ea: return "?seekpos@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAA?AV?$fpos@H@2@V32@H@Z";
-  case 0x04eb: return "?set_new_handler@std@@YAP6AXXZP6AXXZ@Z";
-  case 0x04ec: return "?set_rdbuf@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAXPEAV?$basic_streambuf@DU?$char_traits@D@std@@@2@@Z";
-  case 0x04ed: return "?set_rdbuf@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAXPEAV?$basic_streambuf@GU?$char_traits@G@std@@@2@@Z";
-  case 0x04ee: return "?set_rdbuf@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAXPEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@2@@Z";
-  case 0x04ef: return "?setbase@std@@YA?AU?$_Smanip@H@1@H@Z";
-  case 0x04f0: return "?setbuf@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAAPEAV12@PEAD_J@Z";
-  case 0x04f1: return "?setbuf@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAAPEAV12@PEAG_J@Z";
-  case 0x04f2: return "?setbuf@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAAPEAV12@PEA_W_J@Z";
-  case 0x04f3: return "?setf@ios_base@std@@QEAAHH@Z";
-  case 0x04f4: return "?setf@ios_base@std@@QEAAHHH@Z";
-  case 0x04f5: return "?setg@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXPEAD00@Z";
-  case 0x04f6: return "?setg@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAXPEAG00@Z";
-  case 0x04f7: return "?setg@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAXPEA_W00@Z";
-  case 0x04f8: return "?setiosflags@std@@YA?AU?$_Smanip@H@1@H@Z";
-  case 0x04f9: return "?setp@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXPEAD00@Z";
-  case 0x04fa: return "?setp@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXPEAD0@Z";
-  case 0x04fb: return "?setp@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAXPEAG00@Z";
-  case 0x04fc: return "?setp@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAXPEAG0@Z";
-  case 0x04fd: return "?setp@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAXPEA_W00@Z";
-  case 0x04fe: return "?setp@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAXPEA_W0@Z";
-  case 0x04ff: return "?setprecision@std@@YA?AU?$_Smanip@_J@1@_J@Z";
-  case 0x0500: return "?setstate@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAXH_N@Z";
-  case 0x0501: return "?setstate@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAXI@Z";
-  case 0x0502: return "?setstate@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAXH_N@Z";
-  case 0x0503: return "?setstate@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAXI@Z";
-  case 0x0504: return "?setstate@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAXH_N@Z";
-  case 0x0505: return "?setstate@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAXI@Z";
-  case 0x0506: return "?setstate@ios_base@std@@QEAAXH@Z";
-  case 0x0507: return "?setstate@ios_base@std@@QEAAXH_N@Z";
-  case 0x0508: return "?setstate@ios_base@std@@QEAAXI@Z";
-  case 0x0509: return "?setw@std@@YA?AU?$_Smanip@_J@1@_J@Z";
-  case 0x050a: return "?sgetc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHXZ";
-  case 0x050b: return "?sgetc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAGXZ";
-  case 0x050c: return "?sgetc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAGXZ";
-  case 0x050d: return "?sgetn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA_JPEAD_J@Z";
-  case 0x050e: return "?sgetn@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA_JPEAG_J@Z";
-  case 0x050f: return "?sgetn@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAA_JPEA_W_J@Z";
-  case 0x0510: return "?showmanyc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAA_JXZ";
-  case 0x0511: return "?showmanyc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAA_JXZ";
-  case 0x0512: return "?showmanyc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAA_JXZ";
-  case 0x0513: return "?snextc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHXZ";
-  case 0x0514: return "?snextc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAGXZ";
-  case 0x0515: return "?snextc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAGXZ";
-  case 0x0516: return "?sputbackc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHD@Z";
-  case 0x0517: return "?sputbackc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAGG@Z";
-  case 0x0518: return "?sputbackc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAG_W@Z";
-  case 0x0519: return "?sputc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHD@Z";
-  case 0x051a: return "?sputc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAGG@Z";
-  case 0x051b: return "?sputc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAG_W@Z";
-  case 0x051c: return "?sputn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA_JPEBD_J@Z";
-  case 0x051d: return "?sputn@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA_JPEBG_J@Z";
-  case 0x051e: return "?sputn@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAA_JPEB_W_J@Z";
-  case 0x051f: return "?start@agent@Concurrency@@QEAA_NXZ";
-  case 0x0520: return "?status@agent@Concurrency@@QEAA?AW4agent_status@2@XZ";
-  case 0x0521: return "?status_port@agent@Concurrency@@QEAAPEAV?$ISource@W4agent_status@Concurrency@@@2@XZ";
-  case 0x0522: return "?stossc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAXXZ";
-  case 0x0523: return "?stossc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAXXZ";
-  case 0x0524: return "?stossc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAXXZ";
-  case 0x0525: return "?sungetc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHXZ";
-  case 0x0526: return "?sungetc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAGXZ";
-  case 0x0527: return "?sungetc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAGXZ";
-  case 0x0528: return "?swap@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAXAEAV12@@Z";
-  case 0x0529: return "?swap@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAXAEAV12@@Z";
-  case 0x052a: return "?swap@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAXAEAV12@@Z";
-  case 0x052b: return "?swap@?$basic_iostream@DU?$char_traits@D@std@@@std@@IEAAXAEAV12@@Z";
-  case 0x052c: return "?swap@?$basic_iostream@GU?$char_traits@G@std@@@std@@IEAAXAEAV12@@Z";
-  case 0x052d: return "?swap@?$basic_iostream@_WU?$char_traits@_W@std@@@std@@IEAAXAEAV12@@Z";
-  case 0x052e: return "?swap@?$basic_istream@DU?$char_traits@D@std@@@std@@IEAAXAEAV12@@Z";
-  case 0x052f: return "?swap@?$basic_istream@GU?$char_traits@G@std@@@std@@IEAAXAEAV12@@Z";
-  case 0x0530: return "?swap@?$basic_istream@_WU?$char_traits@_W@std@@@std@@IEAAXAEAV12@@Z";
-  case 0x0531: return "?swap@?$basic_ostream@DU?$char_traits@D@std@@@std@@IEAAXAEAV12@@Z";
-  case 0x0532: return "?swap@?$basic_ostream@GU?$char_traits@G@std@@@std@@IEAAXAEAV12@@Z";
-  case 0x0533: return "?swap@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@IEAAXAEAV12@@Z";
-  case 0x0534: return "?swap@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXAEAV12@@Z";
-  case 0x0535: return "?swap@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAXAEAV12@@Z";
-  case 0x0536: return "?swap@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAXAEAV12@@Z";
-  case 0x0537: return "?swap@ios_base@std@@QEAAXAEAV12@@Z";
-  case 0x0538: return "?sync@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAHXZ";
-  case 0x0539: return "?sync@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAHXZ";
-  case 0x053a: return "?sync@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAHXZ";
-  case 0x053b: return "?sync@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAAHXZ";
-  case 0x053c: return "?sync@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAAHXZ";
-  case 0x053d: return "?sync@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAAHXZ";
-  case 0x053e: return "?sync_with_stdio@ios_base@std@@SA_N_N@Z";
-  case 0x053f: return "?table@?$ctype@D@std@@QEBAPEBFXZ";
-  case 0x0540: return "?table_size@?$ctype@D@std@@2_KB";
-  case 0x0541: return "?tellg@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAA?AV?$fpos@H@2@XZ";
-  case 0x0542: return "?tellg@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAA?AV?$fpos@H@2@XZ";
-  case 0x0543: return "?tellg@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAA?AV?$fpos@H@2@XZ";
-  case 0x0544: return "?tellp@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA?AV?$fpos@H@2@XZ";
-  case 0x0545: return "?tellp@?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAA?AV?$fpos@H@2@XZ";
-  case 0x0546: return "?tellp@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAA?AV?$fpos@H@2@XZ";
-  case 0x0547: return "?tie@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAPEAV?$basic_ostream@DU?$char_traits@D@std@@@2@PEAV32@@Z";
-  case 0x0548: return "?tie@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBAPEAV?$basic_ostream@DU?$char_traits@D@std@@@2@XZ";
-  case 0x0549: return "?tie@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAPEAV?$basic_ostream@GU?$char_traits@G@std@@@2@PEAV32@@Z";
-  case 0x054a: return "?tie@?$basic_ios@GU?$char_traits@G@std@@@std@@QEBAPEAV?$basic_ostream@GU?$char_traits@G@std@@@2@XZ";
-  case 0x054b: return "?tie@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAPEAV?$basic_ostream@_WU?$char_traits@_W@std@@@2@PEAV32@@Z";
-  case 0x054c: return "?tie@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEBAPEAV?$basic_ostream@_WU?$char_traits@_W@std@@@2@XZ";
-  case 0x054d: return "?tolower@?$ctype@D@std@@QEBADD@Z";
-  case 0x054e: return "?tolower@?$ctype@D@std@@QEBAPEBDPEADPEBD@Z";
-  case 0x054f: return "?tolower@?$ctype@G@std@@QEBAGG@Z";
-  case 0x0550: return "?tolower@?$ctype@G@std@@QEBAPEBGPEAGPEBG@Z";
-  case 0x0551: return "?tolower@?$ctype@_W@std@@QEBAPEB_WPEA_WPEB_W@Z";
-  case 0x0552: return "?tolower@?$ctype@_W@std@@QEBA_W_W@Z";
-  case 0x0553: return "?toupper@?$ctype@D@std@@QEBADD@Z";
-  case 0x0554: return "?toupper@?$ctype@D@std@@QEBAPEBDPEADPEBD@Z";
-  case 0x0555: return "?toupper@?$ctype@G@std@@QEBAGG@Z";
-  case 0x0556: return "?toupper@?$ctype@G@std@@QEBAPEBGPEAGPEBG@Z";
-  case 0x0557: return "?toupper@?$ctype@_W@std@@QEBAPEB_WPEA_WPEB_W@Z";
-  case 0x0558: return "?toupper@?$ctype@_W@std@@QEBA_W_W@Z";
-  case 0x0559: return "?try_to_lock@std@@3Utry_to_lock_t@1@B";
-  case 0x055a: return "?uflow@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAAHXZ";
-  case 0x055b: return "?uflow@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAAGXZ";
-  case 0x055c: return "?uflow@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAAGXZ";
-  case 0x055d: return "?uncaught_exception@std@@YA_NXZ";
-  case 0x055e: return "?underflow@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAAHXZ";
-  case 0x055f: return "?underflow@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAAGXZ";
-  case 0x0560: return "?underflow@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAAGXZ";
-  case 0x0561: return "?unget@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@XZ";
-  case 0x0562: return "?unget@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@XZ";
-  case 0x0563: return "?unget@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@XZ";
-  case 0x0564: return "?unsetf@ios_base@std@@QEAAXH@Z";
-  case 0x0565: return "?unshift@?$codecvt@DDH@std@@QEBAHAEAHPEAD1AEAPEAD@Z";
-  case 0x0566: return "?unshift@?$codecvt@GDH@std@@QEBAHAEAHPEAD1AEAPEAD@Z";
-  case 0x0567: return "?unshift@?$codecvt@_WDH@std@@QEBAHAEAHPEAD1AEAPEAD@Z";
-  case 0x0568: return "?wait@agent@Concurrency@@SA?AW4agent_status@2@PEAV12@I@Z";
-  case 0x0569: return "?wait_for_all@agent@Concurrency@@SAX_KPEAPEAV12@PEAW4agent_status@2@I@Z";
-  case 0x056a: return "?wait_for_one@agent@Concurrency@@SAX_KPEAPEAV12@AEAW4agent_status@2@AEA_KI@Z";
-  case 0x056b: return "?wcerr@std@@3V?$basic_ostream@GU?$char_traits@G@std@@@1@A";
-  case 0x056c: return "?wcerr@std@@3V?$basic_ostream@_WU?$char_traits@_W@std@@@1@A";
-  case 0x056d: return "?wcin@std@@3V?$basic_istream@GU?$char_traits@G@std@@@1@A";
-  case 0x056e: return "?wcin@std@@3V?$basic_istream@_WU?$char_traits@_W@std@@@1@A";
-  case 0x056f: return "?wclog@std@@3V?$basic_ostream@GU?$char_traits@G@std@@@1@A";
-  case 0x0570: return "?wclog@std@@3V?$basic_ostream@_WU?$char_traits@_W@std@@@1@A";
-  case 0x0571: return "?wcout@std@@3V?$basic_ostream@GU?$char_traits@G@std@@@1@A";
-  case 0x0572: return "?wcout@std@@3V?$basic_ostream@_WU?$char_traits@_W@std@@@1@A";
-  case 0x0573: return "?widen@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBADD@Z";
-  case 0x0574: return "?widen@?$basic_ios@GU?$char_traits@G@std@@@std@@QEBAGD@Z";
-  case 0x0575: return "?widen@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEBA_WD@Z";
-  case 0x0576: return "?widen@?$ctype@D@std@@QEBADD@Z";
-  case 0x0577: return "?widen@?$ctype@D@std@@QEBAPEBDPEBD0PEAD@Z";
-  case 0x0578: return "?widen@?$ctype@G@std@@QEBAGD@Z";
-  case 0x0579: return "?widen@?$ctype@G@std@@QEBAPEBDPEBD0PEAG@Z";
-  case 0x057a: return "?widen@?$ctype@_W@std@@QEBAPEBDPEBD0PEA_W@Z";
-  case 0x057b: return "?widen@?$ctype@_W@std@@QEBA_WD@Z";
-  case 0x057c: return "?width@ios_base@std@@QEAA_J_J@Z";
-  case 0x057d: return "?width@ios_base@std@@QEBA_JXZ";
-  case 0x057e: return "?write@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@PEBD_J@Z";
-  case 0x057f: return "?write@?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@PEBG_J@Z";
-  case 0x0580: return "?write@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@PEB_W_J@Z";
-  case 0x0581: return "?ws@std@@YAAEAV?$basic_istream@DU?$char_traits@D@std@@@1@AEAV21@@Z";
-  case 0x0582: return "?ws@std@@YAAEAV?$basic_istream@GU?$char_traits@G@std@@@1@AEAV21@@Z";
-  case 0x0583: return "?ws@std@@YAAEAV?$basic_istream@_WU?$char_traits@_W@std@@@1@AEAV21@@Z";
-  case 0x0584: return "?xalloc@ios_base@std@@SAHXZ";
-  case 0x0585: return "?xsgetn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAA_JPEAD_J@Z";
-  case 0x0586: return "?xsgetn@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAA_JPEAG_J@Z";
-  case 0x0587: return "?xsgetn@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAA_JPEA_W_J@Z";
-  case 0x0588: return "?xsputn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAA_JPEBD_J@Z";
-  case 0x0589: return "?xsputn@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAA_JPEBG_J@Z";
-  case 0x058a: return "?xsputn@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAA_JPEB_W_J@Z";
-  case 0x058b: return "_Call_once";
-  case 0x058c: return "_Call_onceEx";
-  case 0x058d: return "_Cnd_broadcast";
-  case 0x058e: return "_Cnd_destroy";
-  case 0x058f: return "_Cnd_do_broadcast_at_thread_exit";
-  case 0x0590: return "_Cnd_init";
-  case 0x0591: return "_Cnd_register_at_thread_exit";
-  case 0x0592: return "_Cnd_signal";
-  case 0x0593: return "_Cnd_timedwait";
-  case 0x0594: return "_Cnd_unregister_at_thread_exit";
-  case 0x0595: return "_Cnd_wait";
-  case 0x0596: return "_Cosh";
-  case 0x0597: return "_Denorm";
-  case 0x0598: return "_Dint";
-  case 0x0599: return "_Dnorm";
-  case 0x059a: return "_Do_call";
-  case 0x059b: return "_Dscale";
-  case 0x059c: return "_Dtento";
-  case 0x059d: return "_Dtest";
-  case 0x059e: return "_Dunscale";
-  case 0x059f: return "_Eps";
-  case 0x05a0: return "_Exp";
-  case 0x05a1: return "_FCosh";
-  case 0x05a2: return "_FDenorm";
-  case 0x05a3: return "_FDint";
-  case 0x05a4: return "_FDnorm";
-  case 0x05a5: return "_FDscale";
-  case 0x05a6: return "_FDtento";
-  case 0x05a7: return "_FDtest";
-  case 0x05a8: return "_FDunscale";
-  case 0x05a9: return "_FEps";
-  case 0x05aa: return "_FExp";
-  case 0x05ab: return "_FInf";
-  case 0x05ac: return "_FNan";
-  case 0x05ad: return "_FRteps";
-  case 0x05ae: return "_FSinh";
-  case 0x05af: return "_FSnan";
-  case 0x05b0: return "_FXbig";
-  case 0x05b1: return "_FXp_addh";
-  case 0x05b2: return "_FXp_addx";
-  case 0x05b3: return "_FXp_getw";
-  case 0x05b4: return "_FXp_invx";
-  case 0x05b5: return "_FXp_ldexpx";
-  case 0x05b6: return "_FXp_movx";
-  case 0x05b7: return "_FXp_mulh";
-  case 0x05b8: return "_FXp_mulx";
-  case 0x05b9: return "_FXp_setn";
-  case 0x05ba: return "_FXp_setw";
-  case 0x05bb: return "_FXp_sqrtx";
-  case 0x05bc: return "_FXp_subx";
-  case 0x05bd: return "_FZero";
-  case 0x05be: return "_Getcoll";
-  case 0x05bf: return "_Getctype";
-  case 0x05c0: return "_Getcvt";
-  case 0x05c1: return "_Getdateorder";
-  case 0x05c2: return "_Getwctype";
-  case 0x05c3: return "_Getwctypes";
-  case 0x05c4: return "_Hugeval";
-  case 0x05c5: return "_Inf";
-  case 0x05c6: return "_LCosh";
-  case 0x05c7: return "_LDenorm";
-  case 0x05c8: return "_LDint";
-  case 0x05c9: return "_LDscale";
-  case 0x05ca: return "_LDtento";
-  case 0x05cb: return "_LDtest";
-  case 0x05cc: return "_LDunscale";
-  case 0x05cd: return "_LEps";
-  case 0x05ce: return "_LExp";
-  case 0x05cf: return "_LInf";
-  case 0x05d0: return "_LNan";
-  case 0x05d1: return "_LPoly";
-  case 0x05d2: return "_LRteps";
-  case 0x05d3: return "_LSinh";
-  case 0x05d4: return "_LSnan";
-  case 0x05d5: return "_LXbig";
-  case 0x05d6: return "_LXp_addh";
-  case 0x05d7: return "_LXp_addx";
-  case 0x05d8: return "_LXp_getw";
-  case 0x05d9: return "_LXp_invx";
-  case 0x05da: return "_LXp_ldexpx";
-  case 0x05db: return "_LXp_movx";
-  case 0x05dc: return "_LXp_mulh";
-  case 0x05dd: return "_LXp_mulx";
-  case 0x05de: return "_LXp_setn";
-  case 0x05df: return "_LXp_setw";
-  case 0x05e0: return "_LXp_sqrtx";
-  case 0x05e1: return "_LXp_subx";
-  case 0x05e2: return "_LZero";
-  case 0x05e3: return "_Lock_shared_ptr_spin_lock";
-  case 0x05e4: return "_Mbrtowc";
-  case 0x05e5: return "_Mtx_clear_owner";
-  case 0x05e6: return "_Mtx_current_owns";
-  case 0x05e7: return "_Mtx_destroy";
-  case 0x05e8: return "_Mtx_getconcrtcs";
-  case 0x05e9: return "_Mtx_init";
-  case 0x05ea: return "_Mtx_lock";
-  case 0x05eb: return "_Mtx_reset_owner";
-  case 0x05ec: return "_Mtx_timedlock";
-  case 0x05ed: return "_Mtx_trylock";
-  case 0x05ee: return "_Mtx_unlock";
-  case 0x05ef: return "_Mtxdst";
-  case 0x05f0: return "_Mtxinit";
-  case 0x05f1: return "_Mtxlock";
-  case 0x05f2: return "_Mtxunlock";
-  case 0x05f3: return "_Nan";
-  case 0x05f4: return "_Once";
-  case 0x05f5: return "_Poly";
-  case 0x05f6: return "_Rteps";
-  case 0x05f7: return "_Sinh";
-  case 0x05f8: return "_Snan";
-  case 0x05f9: return "_Stod";
-  case 0x05fa: return "_Stodx";
-  case 0x05fb: return "_Stof";
-  case 0x05fc: return "_Stoflt";
-  case 0x05fd: return "_Stofx";
-  case 0x05fe: return "_Stold";
-  case 0x05ff: return "_Stoldx";
-  case 0x0600: return "_Stoll";
-  case 0x0601: return "_Stollx";
-  case 0x0602: return "_Stolx";
-  case 0x0603: return "_Stopfx";
-  case 0x0604: return "_Stoul";
-  case 0x0605: return "_Stoull";
-  case 0x0606: return "_Stoullx";
-  case 0x0607: return "_Stoulx";
-  case 0x0608: return "_Stoxflt";
-  case 0x0609: return "_Strcoll";
-  case 0x060a: return "_Strxfrm";
-  case 0x060b: return "_Thrd_abort";
-  case 0x060c: return "_Thrd_create";
-  case 0x060d: return "_Thrd_current";
-  case 0x060e: return "_Thrd_detach";
-  case 0x060f: return "_Thrd_equal";
-  case 0x0610: return "_Thrd_exit";
-  case 0x0611: return "_Thrd_join";
-  case 0x0612: return "_Thrd_lt";
-  case 0x0613: return "_Thrd_sleep";
-  case 0x0614: return "_Thrd_start";
-  case 0x0615: return "_Thrd_yield";
-  case 0x0616: return "_Tolower";
-  case 0x0617: return "_Toupper";
-  case 0x0618: return "_Towlower";
-  case 0x0619: return "_Towupper";
-  case 0x061a: return "_Tss_create";
-  case 0x061b: return "_Tss_delete";
-  case 0x061c: return "_Tss_get";
-  case 0x061d: return "_Tss_set";
-  case 0x061e: return "_Unlock_shared_ptr_spin_lock";
-  case 0x061f: return "_Wcrtomb";
-  case 0x0620: return "_Wcscoll";
-  case 0x0621: return "_Wcsxfrm";
-  case 0x0622: return "_Xbig";
-  case 0x0623: return "_Xp_addh";
-  case 0x0624: return "_Xp_addx";
-  case 0x0625: return "_Xp_getw";
-  case 0x0626: return "_Xp_invx";
-  case 0x0627: return "_Xp_ldexpx";
-  case 0x0628: return "_Xp_movx";
-  case 0x0629: return "_Xp_mulh";
-  case 0x062a: return "_Xp_mulx";
-  case 0x062b: return "_Xp_setn";
-  case 0x062c: return "_Xp_setw";
-  case 0x062d: return "_Xp_sqrtx";
-  case 0x062e: return "_Xp_subx";
-  case 0x062f: return "_Xtime_diff_to_millis";
-  case 0x0630: return "_Xtime_diff_to_millis2";
-  case 0x0631: return "_Xtime_get_ticks";
-  case 0x0632: return "_Zero";
-  case 0x0633: return "__Wcrtomb_lk";
-  case 0x0634: return "towctrans";
-  case 0x0635: return "wctrans";
-  case 0x0636: return "wctype";
-  case 0x0637: return "xtime_get";
+  switch (i) {
+    case 0x0001:
+      return "??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@"
+             "std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z";
+    case 0x0002:
+      return "??$_Getvals@_W@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@"
+             "std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z";
+    case 0x0003:
+      return "??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@"
+             "_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z";
+    case 0x0004: return "??0?$_Yarn@D@std@@QEAA@AEBV01@@Z";
+    case 0x0005: return "??0?$_Yarn@D@std@@QEAA@PEBD@Z";
+    case 0x0006: return "??0?$_Yarn@D@std@@QEAA@XZ";
+    case 0x0007: return "??0?$_Yarn@_W@std@@QEAA@XZ";
+    case 0x0008: return "??0?$basic_ios@DU?$char_traits@D@std@@@std@@IEAA@XZ";
+    case 0x0009:
+      return "??0?$basic_ios@DU?$char_traits@D@std@@@std@@QEAA@PEAV?$basic_"
+             "streambuf@DU?$char_traits@D@std@@@1@@Z";
+    case 0x000a: return "??0?$basic_ios@GU?$char_traits@G@std@@@std@@IEAA@XZ";
+    case 0x000b:
+      return "??0?$basic_ios@GU?$char_traits@G@std@@@std@@QEAA@PEAV?$basic_"
+             "streambuf@GU?$char_traits@G@std@@@1@@Z";
+    case 0x000c: return "??0?$basic_ios@_WU?$char_traits@_W@std@@@std@@IEAA@XZ";
+    case 0x000d:
+      return "??0?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAA@PEAV?$basic_"
+             "streambuf@_WU?$char_traits@_W@std@@@1@@Z";
+    case 0x000e:
+      return "??0?$basic_iostream@DU?$char_traits@D@std@@@std@@IEAA@$$QEAV01@@Z";
+    case 0x000f:
+      return "??0?$basic_iostream@DU?$char_traits@D@std@@@std@@QEAA@PEAV?$basic_"
+             "streambuf@DU?$char_traits@D@std@@@1@@Z";
+    case 0x0010:
+      return "??0?$basic_iostream@GU?$char_traits@G@std@@@std@@IEAA@$$QEAV01@@Z";
+    case 0x0011:
+      return "??0?$basic_iostream@GU?$char_traits@G@std@@@std@@QEAA@PEAV?$basic_"
+             "streambuf@GU?$char_traits@G@std@@@1@@Z";
+    case 0x0012:
+      return "??0?$basic_iostream@_WU?$char_traits@_W@std@@@std@@IEAA@$$QEAV01@@Z";
+    case 0x0013:
+      return "??0?$basic_iostream@_WU?$char_traits@_W@std@@@std@@QEAA@PEAV?$basic_"
+             "streambuf@_WU?$char_traits@_W@std@@@1@@Z";
+    case 0x0014:
+      return "??0?$basic_istream@DU?$char_traits@D@std@@@std@@IEAA@$$QEAV01@@Z";
+    case 0x0015:
+      return "??0?$basic_istream@DU?$char_traits@D@std@@@std@@QEAA@PEAV?$basic_"
+             "streambuf@DU?$char_traits@D@std@@@1@_N1@Z";
+    case 0x0016:
+      return "??0?$basic_istream@DU?$char_traits@D@std@@@std@@QEAA@PEAV?$basic_"
+             "streambuf@DU?$char_traits@D@std@@@1@_N@Z";
+    case 0x0017:
+      return "??0?$basic_istream@DU?$char_traits@D@std@@@std@@QEAA@W4_"
+             "Uninitialized@1@@Z";
+    case 0x0018:
+      return "??0?$basic_istream@GU?$char_traits@G@std@@@std@@IEAA@$$QEAV01@@Z";
+    case 0x0019:
+      return "??0?$basic_istream@GU?$char_traits@G@std@@@std@@QEAA@PEAV?$basic_"
+             "streambuf@GU?$char_traits@G@std@@@1@_N1@Z";
+    case 0x001a:
+      return "??0?$basic_istream@GU?$char_traits@G@std@@@std@@QEAA@PEAV?$basic_"
+             "streambuf@GU?$char_traits@G@std@@@1@_N@Z";
+    case 0x001b:
+      return "??0?$basic_istream@GU?$char_traits@G@std@@@std@@QEAA@W4_"
+             "Uninitialized@1@@Z";
+    case 0x001c:
+      return "??0?$basic_istream@_WU?$char_traits@_W@std@@@std@@IEAA@$$QEAV01@@Z";
+    case 0x001d:
+      return "??0?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAA@PEAV?$basic_"
+             "streambuf@_WU?$char_traits@_W@std@@@1@_N1@Z";
+    case 0x001e:
+      return "??0?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAA@PEAV?$basic_"
+             "streambuf@_WU?$char_traits@_W@std@@@1@_N@Z";
+    case 0x001f:
+      return "??0?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAA@W4_"
+             "Uninitialized@1@@Z";
+    case 0x0020:
+      return "??0?$basic_ostream@DU?$char_traits@D@std@@@std@@IEAA@$$QEAV01@@Z";
+    case 0x0021:
+      return "??0?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@PEAV?$basic_"
+             "streambuf@DU?$char_traits@D@std@@@1@_N@Z";
+    case 0x0022:
+      return "??0?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@W4_"
+             "Uninitialized@1@_N@Z";
+    case 0x0023:
+      return "??0?$basic_ostream@GU?$char_traits@G@std@@@std@@IEAA@$$QEAV01@@Z";
+    case 0x0024:
+      return "??0?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAA@PEAV?$basic_"
+             "streambuf@GU?$char_traits@G@std@@@1@_N@Z";
+    case 0x0025:
+      return "??0?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAA@W4_"
+             "Uninitialized@1@_N@Z";
+    case 0x0026:
+      return "??0?$basic_ostream@_WU?$char_traits@_W@std@@@std@@IEAA@$$QEAV01@@Z";
+    case 0x0027:
+      return "??0?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAA@PEAV?$basic_"
+             "streambuf@_WU?$char_traits@_W@std@@@1@_N@Z";
+    case 0x0028:
+      return "??0?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAA@W4_"
+             "Uninitialized@1@_N@Z";
+    case 0x0029:
+      return "??0?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAA@AEBV01@@Z";
+    case 0x002a:
+      return "??0?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAA@W4_"
+             "Uninitialized@1@@Z";
+    case 0x002b:
+      return "??0?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAA@XZ";
+    case 0x002c:
+      return "??0?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAA@AEBV01@@Z";
+    case 0x002d:
+      return "??0?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAA@W4_"
+             "Uninitialized@1@@Z";
+    case 0x002e:
+      return "??0?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAA@XZ";
+    case 0x002f:
+      return "??0?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAA@AEBV01@@Z";
+    case 0x0030:
+      return "??0?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAA@W4_"
+             "Uninitialized@1@@Z";
+    case 0x0031:
+      return "??0?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAA@XZ";
+    case 0x0032: return "??0?$codecvt@DDH@std@@QEAA@AEBV_Locinfo@1@_K@Z";
+    case 0x0033: return "??0?$codecvt@DDH@std@@QEAA@_K@Z";
+    case 0x0034: return "??0?$codecvt@GDH@std@@QEAA@AEBV_Locinfo@1@_K@Z";
+    case 0x0035: return "??0?$codecvt@GDH@std@@QEAA@_K@Z";
+    case 0x0036: return "??0?$codecvt@_WDH@std@@QEAA@AEBV_Locinfo@1@_K@Z";
+    case 0x0037: return "??0?$codecvt@_WDH@std@@QEAA@_K@Z";
+    case 0x0038: return "??0?$ctype@D@std@@QEAA@AEBV_Locinfo@1@_K@Z";
+    case 0x0039: return "??0?$ctype@D@std@@QEAA@PEBF_N_K@Z";
+    case 0x003a: return "??0?$ctype@G@std@@QEAA@AEBV_Locinfo@1@_K@Z";
+    case 0x003b: return "??0?$ctype@G@std@@QEAA@_K@Z";
+    case 0x003c: return "??0?$ctype@_W@std@@QEAA@AEBV_Locinfo@1@_K@Z";
+    case 0x003d: return "??0?$ctype@_W@std@@QEAA@_K@Z";
+    case 0x003e:
+      return "??0?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@"
+             "std@@QEAA@AEBV_Locinfo@1@_K@Z";
+    case 0x003f:
+      return "??0?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@"
+             "std@@QEAA@_K@Z";
+    case 0x0040:
+      return "??0?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@"
+             "std@@QEAA@AEBV_Locinfo@1@_K@Z";
+    case 0x0041:
+      return "??0?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@"
+             "std@@QEAA@_K@Z";
+    case 0x0042:
+      return "??0?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@"
+             "@@std@@QEAA@AEBV_Locinfo@1@_K@Z";
+    case 0x0043:
+      return "??0?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@"
+             "@@std@@QEAA@_K@Z";
+    case 0x0044:
+      return "??0?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@"
+             "std@@QEAA@AEBV_Locinfo@1@_K@Z";
+    case 0x0045:
+      return "??0?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@"
+             "std@@QEAA@_K@Z";
+    case 0x0046:
+      return "??0?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@"
+             "std@@QEAA@AEBV_Locinfo@1@_K@Z";
+    case 0x0047:
+      return "??0?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@"
+             "std@@QEAA@_K@Z";
+    case 0x0048:
+      return "??0?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@"
+             "@@std@@QEAA@AEBV_Locinfo@1@_K@Z";
+    case 0x0049:
+      return "??0?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@"
+             "@@std@@QEAA@_K@Z";
+    case 0x004a:
+      return "??0?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@"
+             "std@@IEAA@PEBD_K@Z";
+    case 0x004b:
+      return "??0?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@"
+             "std@@QEAA@AEBV_Locinfo@1@_K@Z";
+    case 0x004c:
+      return "??0?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@"
+             "std@@QEAA@_K@Z";
+    case 0x004d:
+      return "??0?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@"
+             "std@@IEAA@PEBD_K@Z";
+    case 0x004e:
+      return "??0?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@"
+             "std@@QEAA@AEBV_Locinfo@1@_K@Z";
+    case 0x004f:
+      return "??0?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@"
+             "std@@QEAA@_K@Z";
+    case 0x0050:
+      return "??0?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@"
+             "std@@@std@@IEAA@PEBD_K@Z";
+    case 0x0051:
+      return "??0?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@"
+             "std@@@std@@QEAA@AEBV_Locinfo@1@_K@Z";
+    case 0x0052:
+      return "??0?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@"
+             "std@@@std@@QEAA@_K@Z";
+    case 0x0053:
+      return "??0?$time_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@"
+             "std@@QEAA@AEBV_Locinfo@1@_K@Z";
+    case 0x0054:
+      return "??0?$time_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@"
+             "std@@QEAA@_K@Z";
+    case 0x0055:
+      return "??0?$time_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@"
+             "std@@IEAA@PEBD_K@Z";
+    case 0x0056:
+      return "??0?$time_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@"
+             "std@@QEAA@AEBV_Locinfo@1@_K@Z";
+    case 0x0057:
+      return "??0?$time_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@"
+             "std@@QEAA@_K@Z";
+    case 0x0058:
+      return "??0?$time_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@"
+             "std@@@std@@IEAA@PEBD_K@Z";
+    case 0x0059:
+      return "??0?$time_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@"
+             "std@@@std@@QEAA@AEBV_Locinfo@1@_K@Z";
+    case 0x005a:
+      return "??0?$time_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@"
+             "std@@@std@@QEAA@_K@Z";
+    case 0x005b: return "??0Init@ios_base@std@@QEAA@XZ";
+    case 0x005c:
+      return "??0_Concurrent_queue_base_v4@details@Concurrency@@IEAA@_K@Z";
+    case 0x005d:
+      return "??0_Concurrent_queue_iterator_base_v4@details@Concurrency@@IEAA@"
+             "AEBV_Concurrent_queue_base_v4@12@@Z";
+    case 0x005e: return "??0_Container_base12@std@@QEAA@AEBU01@@Z";
+    case 0x005f: return "??0_Container_base12@std@@QEAA@XZ";
+    case 0x0060: return "??0_Facet_base@std@@QEAA@AEBV01@@Z";
+    case 0x0061: return "??0_Facet_base@std@@QEAA@XZ";
+    case 0x0062: return "??0_Init_locks@std@@QEAA@XZ";
+    case 0x0063: return "??0_Locimp@locale@std@@AEAA@AEBV012@@Z";
+    case 0x0064: return "??0_Locimp@locale@std@@AEAA@_N@Z";
+    case 0x0065: return "??0_Locinfo@std@@QEAA@HPEBD@Z";
+    case 0x0066: return "??0_Locinfo@std@@QEAA@PEBD@Z";
+    case 0x0067: return "??0_Lockit@std@@QEAA@H@Z";
+    case 0x0068: return "??0_Lockit@std@@QEAA@XZ";
+    case 0x0069: return "??0_Pad@std@@QEAA@AEBV01@@Z";
+    case 0x006a: return "??0_Pad@std@@QEAA@XZ";
+    case 0x006b: return "??0_Runtime_object@details@Concurrency@@QEAA@H@Z";
+    case 0x006c: return "??0_Runtime_object@details@Concurrency@@QEAA@XZ";
+    case 0x006d: return "??0_Timevec@std@@QEAA@AEBV01@@Z";
+    case 0x006e: return "??0_Timevec@std@@QEAA@PEAX@Z";
+    case 0x006f: return "??0_UShinit@std@@QEAA@XZ";
+    case 0x0070: return "??0_Winit@std@@QEAA@XZ";
+    case 0x0071: return "??0agent@Concurrency@@QEAA@AEAVScheduleGroup@1@@Z";
+    case 0x0072: return "??0agent@Concurrency@@QEAA@AEAVScheduler@1@@Z";
+    case 0x0073: return "??0agent@Concurrency@@QEAA@XZ";
+    case 0x0074: return "??0codecvt_base@std@@QEAA@_K@Z";
+    case 0x0075: return "??0ctype_base@std@@QEAA@_K@Z";
+    case 0x0076: return "??0facet@locale@std@@IEAA@_K@Z";
+    case 0x0077: return "??0id@locale@std@@QEAA@_K@Z";
+    case 0x0078: return "??0ios_base@std@@IEAA@XZ";
+    case 0x0079: return "??0time_base@std@@QEAA@_K@Z";
+    case 0x007a: return "??1?$_Yarn@D@std@@QEAA@XZ";
+    case 0x007b: return "??1?$_Yarn@_W@std@@QEAA@XZ";
+    case 0x007c: return "??1?$basic_ios@DU?$char_traits@D@std@@@std@@UEAA@XZ";
+    case 0x007d: return "??1?$basic_ios@GU?$char_traits@G@std@@@std@@UEAA@XZ";
+    case 0x007e: return "??1?$basic_ios@_WU?$char_traits@_W@std@@@std@@UEAA@XZ";
+    case 0x007f: return "??1?$basic_iostream@DU?$char_traits@D@std@@@std@@UEAA@XZ";
+    case 0x0080: return "??1?$basic_iostream@GU?$char_traits@G@std@@@std@@UEAA@XZ";
+    case 0x0081:
+      return "??1?$basic_iostream@_WU?$char_traits@_W@std@@@std@@UEAA@XZ";
+    case 0x0082: return "??1?$basic_istream@DU?$char_traits@D@std@@@std@@UEAA@XZ";
+    case 0x0083: return "??1?$basic_istream@GU?$char_traits@G@std@@@std@@UEAA@XZ";
+    case 0x0084:
+      return "??1?$basic_istream@_WU?$char_traits@_W@std@@@std@@UEAA@XZ";
+    case 0x0085: return "??1?$basic_ostream@DU?$char_traits@D@std@@@std@@UEAA@XZ";
+    case 0x0086: return "??1?$basic_ostream@GU?$char_traits@G@std@@@std@@UEAA@XZ";
+    case 0x0087:
+      return "??1?$basic_ostream@_WU?$char_traits@_W@std@@@std@@UEAA@XZ";
+    case 0x0088:
+      return "??1?$basic_streambuf@DU?$char_traits@D@std@@@std@@UEAA@XZ";
+    case 0x0089:
+      return "??1?$basic_streambuf@GU?$char_traits@G@std@@@std@@UEAA@XZ";
+    case 0x008a:
+      return "??1?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@UEAA@XZ";
+    case 0x008b: return "??1?$codecvt@DDH@std@@MEAA@XZ";
+    case 0x008c: return "??1?$codecvt@GDH@std@@MEAA@XZ";
+    case 0x008d: return "??1?$codecvt@_WDH@std@@MEAA@XZ";
+    case 0x008e: return "??1?$ctype@D@std@@MEAA@XZ";
+    case 0x008f: return "??1?$ctype@G@std@@MEAA@XZ";
+    case 0x0090: return "??1?$ctype@_W@std@@MEAA@XZ";
+    case 0x0091:
+      return "??1?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@"
+             "std@@MEAA@XZ";
+    case 0x0092:
+      return "??1?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@"
+             "std@@MEAA@XZ";
+    case 0x0093:
+      return "??1?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@"
+             "@@std@@MEAA@XZ";
+    case 0x0094:
+      return "??1?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@"
+             "std@@MEAA@XZ";
+    case 0x0095:
+      return "??1?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@"
+             "std@@MEAA@XZ";
+    case 0x0096:
+      return "??1?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@"
+             "@@std@@MEAA@XZ";
+    case 0x0097:
+      return "??1?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@"
+             "std@@MEAA@XZ";
+    case 0x0098:
+      return "??1?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@"
+             "std@@MEAA@XZ";
+    case 0x0099:
+      return "??1?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@"
+             "std@@@std@@MEAA@XZ";
+    case 0x009a:
+      return "??1?$time_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@"
+             "std@@MEAA@XZ";
+    case 0x009b:
+      return "??1?$time_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@"
+             "std@@MEAA@XZ";
+    case 0x009c:
+      return "??1?$time_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@"
+             "std@@@std@@MEAA@XZ";
+    case 0x009d: return "??1Init@ios_base@std@@QEAA@XZ";
+    case 0x009e:
+      return "??1_Concurrent_queue_base_v4@details@Concurrency@@MEAA@XZ";
+    case 0x009f:
+      return "??1_Concurrent_queue_iterator_base_v4@details@Concurrency@@IEAA@XZ";
+    case 0x00a0:
+      return "??1_Concurrent_vector_base_v4@details@Concurrency@@IEAA@XZ";
+    case 0x00a1: return "??1_Container_base12@std@@QEAA@XZ";
+    case 0x00a2: return "??1_Facet_base@std@@UEAA@XZ";
+    case 0x00a3: return "??1_Init_locks@std@@QEAA@XZ";
+    case 0x00a4: return "??1_Locimp@locale@std@@MEAA@XZ";
+    case 0x00a5: return "??1_Locinfo@std@@QEAA@XZ";
+    case 0x00a6: return "??1_Lockit@std@@QEAA@XZ";
+    case 0x00a7: return "??1_Pad@std@@QEAA@XZ";
+    case 0x00a8: return "??1_Timevec@std@@QEAA@XZ";
+    case 0x00a9: return "??1_UShinit@std@@QEAA@XZ";
+    case 0x00aa: return "??1_Winit@std@@QEAA@XZ";
+    case 0x00ab: return "??1agent@Concurrency@@UEAA@XZ";
+    case 0x00ac: return "??1codecvt_base@std@@UEAA@XZ";
+    case 0x00ad: return "??1ctype_base@std@@UEAA@XZ";
+    case 0x00ae: return "??1facet@locale@std@@MEAA@XZ";
+    case 0x00af: return "??1ios_base@std@@UEAA@XZ";
+    case 0x00b0: return "??1time_base@std@@UEAA@XZ";
+    case 0x00b1: return "??4?$_Iosb@H@std@@QEAAAEAV01@AEBV01@@Z";
+    case 0x00b2: return "??4?$_Yarn@D@std@@QEAAAEAV01@AEBV01@@Z";
+    case 0x00b3: return "??4?$_Yarn@D@std@@QEAAAEAV01@PEBD@Z";
+    case 0x00b4: return "??4?$_Yarn@_W@std@@QEAAAEAV01@PEB_W@Z";
+    case 0x00b5:
+      return "??4?$basic_iostream@DU?$char_traits@D@std@@@std@@IEAAAEAV01@$$"
+             "QEAV01@@Z";
+    case 0x00b6:
+      return "??4?$basic_iostream@GU?$char_traits@G@std@@@std@@IEAAAEAV01@$$"
+             "QEAV01@@Z";
+    case 0x00b7:
+      return "??4?$basic_iostream@_WU?$char_traits@_W@std@@@std@@IEAAAEAV01@$$"
+             "QEAV01@@Z";
+    case 0x00b8:
+      return "??4?$basic_istream@DU?$char_traits@D@std@@@std@@IEAAAEAV01@$$QEAV01@"
+             "@Z";
+    case 0x00b9:
+      return "??4?$basic_istream@GU?$char_traits@G@std@@@std@@IEAAAEAV01@$$QEAV01@"
+             "@Z";
+    case 0x00ba:
+      return "??4?$basic_istream@_WU?$char_traits@_W@std@@@std@@IEAAAEAV01@$$"
+             "QEAV01@@Z";
+    case 0x00bb:
+      return "??4?$basic_ostream@DU?$char_traits@D@std@@@std@@IEAAAEAV01@$$QEAV01@"
+             "@Z";
+    case 0x00bc:
+      return "??4?$basic_ostream@GU?$char_traits@G@std@@@std@@IEAAAEAV01@$$QEAV01@"
+             "@Z";
+    case 0x00bd:
+      return "??4?$basic_ostream@_WU?$char_traits@_W@std@@@std@@IEAAAEAV01@$$"
+             "QEAV01@@Z";
+    case 0x00be:
+      return "??4?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAAEAV01@AEBV01@"
+             "@Z";
+    case 0x00bf:
+      return "??4?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAAEAV01@AEBV01@"
+             "@Z";
+    case 0x00c0:
+      return "??4?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAAEAV01@"
+             "AEBV01@@Z";
+    case 0x00c1: return "??4Init@ios_base@std@@QEAAAEAV012@AEBV012@@Z";
+    case 0x00c2: return "??4_Container_base0@std@@QEAAAEAU01@AEBU01@@Z";
+    case 0x00c3: return "??4_Container_base12@std@@QEAAAEAU01@AEBU01@@Z";
+    case 0x00c4: return "??4_Facet_base@std@@QEAAAEAV01@AEBV01@@Z";
+    case 0x00c5: return "??4_Init_locks@std@@QEAAAEAV01@AEBV01@@Z";
+    case 0x00c6: return "??4_Pad@std@@QEAAAEAV01@AEBV01@@Z";
+    case 0x00c7: return "??4_Timevec@std@@QEAAAEAV01@AEBV01@@Z";
+    case 0x00c8: return "??4_UShinit@std@@QEAAAEAV01@AEBV01@@Z";
+    case 0x00c9: return "??4_Winit@std@@QEAAAEAV01@AEBV01@@Z";
+    case 0x00ca:
+      return "??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAF@Z";
+    case 0x00cb:
+      return "??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAG@Z";
+    case 0x00cc:
+      return "??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAH@Z";
+    case 0x00cd:
+      return "??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAI@Z";
+    case 0x00ce:
+      return "??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAJ@Z";
+    case 0x00cf:
+      return "??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAK@Z";
+    case 0x00d0:
+      return "??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAM@Z";
+    case 0x00d1:
+      return "??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAN@Z";
+    case 0x00d2:
+      return "??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAO@Z";
+    case 0x00d3:
+      return "??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAPEAX@"
+             "Z";
+    case 0x00d4:
+      return "??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEA_J@Z";
+    case 0x00d5:
+      return "??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEA_K@Z";
+    case 0x00d6:
+      return "??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEA_N@Z";
+    case 0x00d7:
+      return "??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@"
+             "P6AAEAV01@AEAV01@@Z@Z";
+    case 0x00d8:
+      return "??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@P6AAEAV?$"
+             "basic_ios@DU?$char_traits@D@std@@@1@AEAV21@@Z@Z";
+    case 0x00d9:
+      return "??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@"
+             "P6AAEAVios_base@1@AEAV21@@Z@Z";
+    case 0x00da:
+      return "??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@PEAV?$"
+             "basic_streambuf@DU?$char_traits@D@std@@@1@@Z";
+    case 0x00db:
+      return "??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEAF@Z";
+    case 0x00dc:
+      return "??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEAG@Z";
+    case 0x00dd:
+      return "??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEAH@Z";
+    case 0x00de:
+      return "??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEAI@Z";
+    case 0x00df:
+      return "??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEAJ@Z";
+    case 0x00e0:
+      return "??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEAK@Z";
+    case 0x00e1:
+      return "??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEAM@Z";
+    case 0x00e2:
+      return "??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEAN@Z";
+    case 0x00e3:
+      return "??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEAO@Z";
+    case 0x00e4:
+      return "??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEAPEAX@"
+             "Z";
+    case 0x00e5:
+      return "??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEA_J@Z";
+    case 0x00e6:
+      return "??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEA_K@Z";
+    case 0x00e7:
+      return "??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEA_N@Z";
+    case 0x00e8:
+      return "??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@"
+             "P6AAEAV01@AEAV01@@Z@Z";
+    case 0x00e9:
+      return "??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@P6AAEAV?$"
+             "basic_ios@GU?$char_traits@G@std@@@1@AEAV21@@Z@Z";
+    case 0x00ea:
+      return "??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@"
+             "P6AAEAVios_base@1@AEAV21@@Z@Z";
+    case 0x00eb:
+      return "??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@PEAV?$"
+             "basic_streambuf@GU?$char_traits@G@std@@@1@@Z";
+    case 0x00ec:
+      return "??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEAF@Z";
+    case 0x00ed:
+      return "??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEAG@Z";
+    case 0x00ee:
+      return "??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEAH@Z";
+    case 0x00ef:
+      return "??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEAI@Z";
+    case 0x00f0:
+      return "??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEAJ@Z";
+    case 0x00f1:
+      return "??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEAK@Z";
+    case 0x00f2:
+      return "??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEAM@Z";
+    case 0x00f3:
+      return "??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEAN@Z";
+    case 0x00f4:
+      return "??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEAO@Z";
+    case 0x00f5:
+      return "??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@"
+             "AEAPEAX@Z";
+    case 0x00f6:
+      return "??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEA_J@"
+             "Z";
+    case 0x00f7:
+      return "??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEA_K@"
+             "Z";
+    case 0x00f8:
+      return "??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEA_N@"
+             "Z";
+    case 0x00f9:
+      return "??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@"
+             "P6AAEAV01@AEAV01@@Z@Z";
+    case 0x00fa:
+      return "??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@"
+             "P6AAEAV?$basic_ios@_WU?$char_traits@_W@std@@@1@AEAV21@@Z@Z";
+    case 0x00fb:
+      return "??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@"
+             "P6AAEAVios_base@1@AEAV21@@Z@Z";
+    case 0x00fc:
+      return "??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@PEAV?$"
+             "basic_streambuf@_WU?$char_traits@_W@std@@@1@@Z";
+    case 0x00fd:
+      return "??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@F@Z";
+    case 0x00fe:
+      return "??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@G@Z";
+    case 0x00ff:
+      return "??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@H@Z";
+    case 0x0100:
+      return "??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@I@Z";
+    case 0x0101:
+      return "??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@J@Z";
+    case 0x0102:
+      return "??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@K@Z";
+    case 0x0103:
+      return "??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@M@Z";
+    case 0x0104:
+      return "??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@N@Z";
+    case 0x0105:
+      return "??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@O@Z";
+    case 0x0106:
+      return "??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@"
+             "P6AAEAV01@AEAV01@@Z@Z";
+    case 0x0107:
+      return "??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@P6AAEAV?$"
+             "basic_ios@DU?$char_traits@D@std@@@1@AEAV21@@Z@Z";
+    case 0x0108:
+      return "??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@"
+             "P6AAEAVios_base@1@AEAV21@@Z@Z";
+    case 0x0109:
+      return "??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@PEAV?$"
+             "basic_streambuf@DU?$char_traits@D@std@@@1@@Z";
+    case 0x010a:
+      return "??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@PEBX@Z";
+    case 0x010b:
+      return "??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@_J@Z";
+    case 0x010c:
+      return "??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@_K@Z";
+    case 0x010d:
+      return "??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@_N@Z";
+    case 0x010e:
+      return "??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@F@Z";
+    case 0x010f:
+      return "??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@G@Z";
+    case 0x0110:
+      return "??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@H@Z";
+    case 0x0111:
+      return "??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@I@Z";
+    case 0x0112:
+      return "??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@J@Z";
+    case 0x0113:
+      return "??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@K@Z";
+    case 0x0114:
+      return "??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@M@Z";
+    case 0x0115:
+      return "??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@N@Z";
+    case 0x0116:
+      return "??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@O@Z";
+    case 0x0117:
+      return "??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@"
+             "P6AAEAV01@AEAV01@@Z@Z";
+    case 0x0118:
+      return "??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@P6AAEAV?$"
+             "basic_ios@GU?$char_traits@G@std@@@1@AEAV21@@Z@Z";
+    case 0x0119:
+      return "??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@"
+             "P6AAEAVios_base@1@AEAV21@@Z@Z";
+    case 0x011a:
+      return "??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@PEAV?$"
+             "basic_streambuf@GU?$char_traits@G@std@@@1@@Z";
+    case 0x011b:
+      return "??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@PEBX@Z";
+    case 0x011c:
+      return "??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@_J@Z";
+    case 0x011d:
+      return "??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@_K@Z";
+    case 0x011e:
+      return "??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@_N@Z";
+    case 0x011f:
+      return "??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@F@Z";
+    case 0x0120:
+      return "??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@G@Z";
+    case 0x0121:
+      return "??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@H@Z";
+    case 0x0122:
+      return "??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@I@Z";
+    case 0x0123:
+      return "??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@J@Z";
+    case 0x0124:
+      return "??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@K@Z";
+    case 0x0125:
+      return "??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@M@Z";
+    case 0x0126:
+      return "??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@N@Z";
+    case 0x0127:
+      return "??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@O@Z";
+    case 0x0128:
+      return "??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@"
+             "P6AAEAV01@AEAV01@@Z@Z";
+    case 0x0129:
+      return "??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@"
+             "P6AAEAV?$basic_ios@_WU?$char_traits@_W@std@@@1@AEAV21@@Z@Z";
+    case 0x012a:
+      return "??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@"
+             "P6AAEAVios_base@1@AEAV21@@Z@Z";
+    case 0x012b:
+      return "??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@PEAV?$"
+             "basic_streambuf@_WU?$char_traits@_W@std@@@1@@Z";
+    case 0x012c:
+      return "??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@PEBX@Z";
+    case 0x012d:
+      return "??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@_J@Z";
+    case 0x012e:
+      return "??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@_K@Z";
+    case 0x012f:
+      return "??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@_N@Z";
+    case 0x0130: return "??7ios_base@std@@QEBA_NXZ";
+    case 0x0131: return "??Bid@locale@std@@QEAA_KXZ";
+    case 0x0132: return "??Bios_base@std@@QEBAPEAXXZ";
+    case 0x0133: return "??_7?$basic_ios@DU?$char_traits@D@std@@@std@@6B@";
+    case 0x0134: return "??_7?$basic_ios@GU?$char_traits@G@std@@@std@@6B@";
+    case 0x0135: return "??_7?$basic_ios@_WU?$char_traits@_W@std@@@std@@6B@";
+    case 0x0136: return "??_7?$basic_iostream@DU?$char_traits@D@std@@@std@@6B@";
+    case 0x0137: return "??_7?$basic_iostream@GU?$char_traits@G@std@@@std@@6B@";
+    case 0x0138: return "??_7?$basic_iostream@_WU?$char_traits@_W@std@@@std@@6B@";
+    case 0x0139: return "??_7?$basic_istream@DU?$char_traits@D@std@@@std@@6B@";
+    case 0x013a: return "??_7?$basic_istream@GU?$char_traits@G@std@@@std@@6B@";
+    case 0x013b: return "??_7?$basic_istream@_WU?$char_traits@_W@std@@@std@@6B@";
+    case 0x013c: return "??_7?$basic_ostream@DU?$char_traits@D@std@@@std@@6B@";
+    case 0x013d: return "??_7?$basic_ostream@GU?$char_traits@G@std@@@std@@6B@";
+    case 0x013e: return "??_7?$basic_ostream@_WU?$char_traits@_W@std@@@std@@6B@";
+    case 0x013f: return "??_7?$basic_streambuf@DU?$char_traits@D@std@@@std@@6B@";
+    case 0x0140: return "??_7?$basic_streambuf@GU?$char_traits@G@std@@@std@@6B@";
+    case 0x0141: return "??_7?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@6B@";
+    case 0x0142: return "??_7?$codecvt@DDH@std@@6B@";
+    case 0x0143: return "??_7?$codecvt@GDH@std@@6B@";
+    case 0x0144: return "??_7?$codecvt@_WDH@std@@6B@";
+    case 0x0145: return "??_7?$ctype@D@std@@6B@";
+    case 0x0146: return "??_7?$ctype@G@std@@6B@";
+    case 0x0147: return "??_7?$ctype@_W@std@@6B@";
+    case 0x0148:
+      return "??_7?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@"
+             "std@@6B@";
+    case 0x0149:
+      return "??_7?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@"
+             "std@@6B@";
+    case 0x014a:
+      return "??_7?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@"
+             "std@@@std@@6B@";
+    case 0x014b:
+      return "??_7?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@"
+             "std@@6B@";
+    case 0x014c:
+      return "??_7?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@"
+             "std@@6B@";
+    case 0x014d:
+      return "??_7?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@"
+             "std@@@std@@6B@";
+    case 0x014e:
+      return "??_7?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@"
+             "@std@@6B@";
+    case 0x014f:
+      return "??_7?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@"
+             "@std@@6B@";
+    case 0x0150:
+      return "??_7?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@"
+             "std@@@std@@6B@";
+    case 0x0151:
+      return "??_7?$time_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@"
+             "@std@@6B@";
+    case 0x0152:
+      return "??_7?$time_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@"
+             "@std@@6B@";
+    case 0x0153:
+      return "??_7?$time_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@"
+             "std@@@std@@6B@";
+    case 0x0154: return "??_7_Facet_base@std@@6B@";
+    case 0x0155: return "??_7_Locimp@locale@std@@6B@";
+    case 0x0156: return "??_7_Pad@std@@6B@";
+    case 0x0157: return "??_7codecvt_base@std@@6B@";
+    case 0x0158: return "??_7ctype_base@std@@6B@";
+    case 0x0159: return "??_7facet@locale@std@@6B@";
+    case 0x015a: return "??_7ios_base@std@@6B@";
+    case 0x015b: return "??_7time_base@std@@6B@";
+    case 0x015c:
+      return "??_8?$basic_iostream@DU?$char_traits@D@std@@@std@@7B?$basic_istream@"
+             "DU?$char_traits@D@std@@@1@@";
+    case 0x015d:
+      return "??_8?$basic_iostream@DU?$char_traits@D@std@@@std@@7B?$basic_ostream@"
+             "DU?$char_traits@D@std@@@1@@";
+    case 0x015e:
+      return "??_8?$basic_iostream@GU?$char_traits@G@std@@@std@@7B?$basic_istream@"
+             "GU?$char_traits@G@std@@@1@@";
+    case 0x015f:
+      return "??_8?$basic_iostream@GU?$char_traits@G@std@@@std@@7B?$basic_ostream@"
+             "GU?$char_traits@G@std@@@1@@";
+    case 0x0160:
+      return "??_8?$basic_iostream@_WU?$char_traits@_W@std@@@std@@7B?$basic_"
+             "istream@_WU?$char_traits@_W@std@@@1@@";
+    case 0x0161:
+      return "??_8?$basic_iostream@_WU?$char_traits@_W@std@@@std@@7B?$basic_"
+             "ostream@_WU?$char_traits@_W@std@@@1@@";
+    case 0x0162: return "??_8?$basic_istream@DU?$char_traits@D@std@@@std@@7B@";
+    case 0x0163: return "??_8?$basic_istream@GU?$char_traits@G@std@@@std@@7B@";
+    case 0x0164: return "??_8?$basic_istream@_WU?$char_traits@_W@std@@@std@@7B@";
+    case 0x0165: return "??_8?$basic_ostream@DU?$char_traits@D@std@@@std@@7B@";
+    case 0x0166: return "??_8?$basic_ostream@GU?$char_traits@G@std@@@std@@7B@";
+    case 0x0167: return "??_8?$basic_ostream@_WU?$char_traits@_W@std@@@std@@7B@";
+    case 0x0168:
+      return "??_D?$basic_iostream@DU?$char_traits@D@std@@@std@@QEAAXXZ";
+    case 0x0169:
+      return "??_D?$basic_iostream@GU?$char_traits@G@std@@@std@@QEAAXXZ";
+    case 0x016a:
+      return "??_D?$basic_iostream@_WU?$char_traits@_W@std@@@std@@QEAAXXZ";
+    case 0x016b: return "??_D?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAXXZ";
+    case 0x016c: return "??_D?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAXXZ";
+    case 0x016d:
+      return "??_D?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAXXZ";
+    case 0x016e: return "??_D?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAXXZ";
+    case 0x016f: return "??_D?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAXXZ";
+    case 0x0170:
+      return "??_D?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAXXZ";
+    case 0x0171: return "??_F?$codecvt@DDH@std@@QEAAXXZ";
+    case 0x0172: return "??_F?$codecvt@GDH@std@@QEAAXXZ";
+    case 0x0173: return "??_F?$codecvt@_WDH@std@@QEAAXXZ";
+    case 0x0174: return "??_F?$ctype@D@std@@QEAAXXZ";
+    case 0x0175: return "??_F?$ctype@G@std@@QEAAXXZ";
+    case 0x0176: return "??_F?$ctype@_W@std@@QEAAXXZ";
+    case 0x0177:
+      return "??_F?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@"
+             "std@@QEAAXXZ";
+    case 0x0178:
+      return "??_F?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@"
+             "std@@QEAAXXZ";
+    case 0x0179:
+      return "??_F?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@"
+             "std@@@std@@QEAAXXZ";
+    case 0x017a:
+      return "??_F?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@"
+             "std@@QEAAXXZ";
+    case 0x017b:
+      return "??_F?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@"
+             "std@@QEAAXXZ";
+    case 0x017c:
+      return "??_F?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@"
+             "std@@@std@@QEAAXXZ";
+    case 0x017d:
+      return "??_F?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@"
+             "@std@@QEAAXXZ";
+    case 0x017e:
+      return "??_F?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@"
+             "@std@@QEAAXXZ";
+    case 0x017f:
+      return "??_F?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@"
+             "std@@@std@@QEAAXXZ";
+    case 0x0180:
+      return "??_F?$time_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@"
+             "@std@@QEAAXXZ";
+    case 0x0181:
+      return "??_F?$time_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@"
+             "@std@@QEAAXXZ";
+    case 0x0182:
+      return "??_F?$time_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@"
+             "std@@@std@@QEAAXXZ";
+    case 0x0183: return "??_F_Locinfo@std@@QEAAXXZ";
+    case 0x0184: return "??_F_Timevec@std@@QEAAXXZ";
+    case 0x0185: return "??_Fcodecvt_base@std@@QEAAXXZ";
+    case 0x0186: return "??_Fctype_base@std@@QEAAXXZ";
+    case 0x0187: return "??_Ffacet@locale@std@@QEAAXXZ";
+    case 0x0188: return "??_Fid@locale@std@@QEAAXXZ";
+    case 0x0189: return "??_Ftime_base@std@@QEAAXXZ";
+    case 0x018a: return "?NFS_Allocate@details@Concurrency@@YAPEAX_K0PEAX@Z";
+    case 0x018b: return "?NFS_Free@details@Concurrency@@YAXPEAX@Z";
+    case 0x018c: return "?NFS_GetLineSize@details@Concurrency@@YA_KXZ";
+    case 0x018d: return "?_10@placeholders@std@@3V?$_Ph@$09@2@A";
+    case 0x018e: return "?_11@placeholders@std@@3V?$_Ph@$0L@@2@A";
+    case 0x018f: return "?_12@placeholders@std@@3V?$_Ph@$0M@@2@A";
+    case 0x0190: return "?_13@placeholders@std@@3V?$_Ph@$0N@@2@A";
+    case 0x0191: return "?_14@placeholders@std@@3V?$_Ph@$0O@@2@A";
+    case 0x0192: return "?_15@placeholders@std@@3V?$_Ph@$0P@@2@A";
+    case 0x0193: return "?_16@placeholders@std@@3V?$_Ph@$0BA@@2@A";
+    case 0x0194: return "?_17@placeholders@std@@3V?$_Ph@$0BB@@2@A";
+    case 0x0195: return "?_18@placeholders@std@@3V?$_Ph@$0BC@@2@A";
+    case 0x0196: return "?_19@placeholders@std@@3V?$_Ph@$0BD@@2@A";
+    case 0x0197: return "?_1@placeholders@std@@3V?$_Ph@$00@2@A";
+    case 0x0198: return "?_20@placeholders@std@@3V?$_Ph@$0BE@@2@A";
+    case 0x0199: return "?_2@placeholders@std@@3V?$_Ph@$01@2@A";
+    case 0x019a: return "?_3@placeholders@std@@3V?$_Ph@$02@2@A";
+    case 0x019b: return "?_4@placeholders@std@@3V?$_Ph@$03@2@A";
+    case 0x019c: return "?_5@placeholders@std@@3V?$_Ph@$04@2@A";
+    case 0x019d: return "?_6@placeholders@std@@3V?$_Ph@$05@2@A";
+    case 0x019e: return "?_7@placeholders@std@@3V?$_Ph@$06@2@A";
+    case 0x019f: return "?_8@placeholders@std@@3V?$_Ph@$07@2@A";
+    case 0x01a0: return "?_9@placeholders@std@@3V?$_Ph@$08@2@A";
+    case 0x01a1:
+      return "?_Add_vtordisp1@?$basic_ios@DU?$char_traits@D@std@@@std@@UEAAXXZ";
+    case 0x01a2:
+      return "?_Add_vtordisp1@?$basic_ios@GU?$char_traits@G@std@@@std@@UEAAXXZ";
+    case 0x01a3:
+      return "?_Add_vtordisp1@?$basic_ios@_WU?$char_traits@_W@std@@@std@@UEAAXXZ";
+    case 0x01a4:
+      return "?_Add_vtordisp1@?$basic_istream@DU?$char_traits@D@std@@@std@@"
+             "UEAAXXZ";
+    case 0x01a5:
+      return "?_Add_vtordisp1@?$basic_istream@GU?$char_traits@G@std@@@std@@"
+             "UEAAXXZ";
+    case 0x01a6:
+      return "?_Add_vtordisp1@?$basic_istream@_WU?$char_traits@_W@std@@@std@@"
+             "UEAAXXZ";
+    case 0x01a7:
+      return "?_Add_vtordisp2@?$basic_ios@DU?$char_traits@D@std@@@std@@UEAAXXZ";
+    case 0x01a8:
+      return "?_Add_vtordisp2@?$basic_ios@GU?$char_traits@G@std@@@std@@UEAAXXZ";
+    case 0x01a9:
+      return "?_Add_vtordisp2@?$basic_ios@_WU?$char_traits@_W@std@@@std@@UEAAXXZ";
+    case 0x01aa:
+      return "?_Add_vtordisp2@?$basic_ostream@DU?$char_traits@D@std@@@std@@"
+             "UEAAXXZ";
+    case 0x01ab:
+      return "?_Add_vtordisp2@?$basic_ostream@GU?$char_traits@G@std@@@std@@"
+             "UEAAXXZ";
+    case 0x01ac:
+      return "?_Add_vtordisp2@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@"
+             "UEAAXXZ";
+    case 0x01ad: return "?_Addcats@_Locinfo@std@@QEAAAEAV12@HPEBD@Z";
+    case 0x01ae: return "?_Addfac@_Locimp@locale@std@@AEAAXPEAVfacet@23@_K@Z";
+    case 0x01af: return "?_Addstd@ios_base@std@@SAXPEAV12@@Z";
+    case 0x01b0:
+      return "?_Advance@_Concurrent_queue_iterator_base_v4@details@Concurrency@@"
+             "IEAAXXZ";
+    case 0x01b1:
+      return "?_Assign@_Concurrent_queue_iterator_base_v4@details@Concurrency@@"
+             "IEAAXAEBV123@@Z";
+    case 0x01b2: return "?_Atexit@@YAXP6AXXZ@Z";
+    case 0x01b3: return "?_BADOFF@std@@3_JB";
+    case 0x01b4: return "?_Byte_reverse_table@details@Concurrency@@3QBEB";
+    case 0x01b5: return "?_C_str@?$_Yarn@D@std@@QEBAPEBDXZ";
+    case 0x01b6: return "?_C_str@?$_Yarn@_W@std@@QEBAPEB_WXZ";
+    case 0x01b7: return "?_Callfns@ios_base@std@@AEAAXW4event@12@@Z";
+    case 0x01b8: return "?_Clocptr@_Locimp@locale@std@@0PEAV123@EA";
+    case 0x01b9: return "?_Close_dir@sys@tr2@std@@YAXPEAX@Z";
+    case 0x01ba: return "?_Copy_file@sys@tr2@std@@YAHPEBD0_N@Z";
+    case 0x01bb: return "?_Copy_file@sys@tr2@std@@YAHPEB_W0_N@Z";
+    case 0x01bc: return "?_Current_get@sys@tr2@std@@YAPEADPEAD@Z";
+    case 0x01bd: return "?_Current_get@sys@tr2@std@@YAPEA_WPEA_W@Z";
+    case 0x01be: return "?_Current_set@sys@tr2@std@@YA_NPEBD@Z";
+    case 0x01bf: return "?_Current_set@sys@tr2@std@@YA_NPEB_W@Z";
+    case 0x01c0: return "?_Decref@facet@locale@std@@UEAAPEAV_Facet_base@3@XZ";
+    case 0x01c1: return "?_Donarrow@?$ctype@G@std@@IEBADGD@Z";
+    case 0x01c2: return "?_Donarrow@?$ctype@_W@std@@IEBAD_WD@Z";
+    case 0x01c3: return "?_Dowiden@?$ctype@G@std@@IEBAGD@Z";
+    case 0x01c4: return "?_Dowiden@?$ctype@_W@std@@IEBA_WD@Z";
+    case 0x01c5: return "?_Empty@?$_Yarn@D@std@@QEBA_NXZ";
+    case 0x01c6: return "?_Empty@?$_Yarn@_W@std@@QEBA_NXZ";
+    case 0x01c7: return "?_Equivalent@sys@tr2@std@@YAHPEBD0@Z";
+    case 0x01c8: return "?_Equivalent@sys@tr2@std@@YAHPEB_W0@Z";
+    case 0x01c9:
+      return "?_Ffmt@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@"
+             "std@@@std@@AEBAPEADPEADDH@Z";
+    case 0x01ca:
+      return "?_Ffmt@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@"
+             "std@@@std@@AEBAPEADPEADDH@Z";
+    case 0x01cb:
+      return "?_Ffmt@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@"
+             "std@@@std@@AEBAPEADPEADDH@Z";
+    case 0x01cc: return "?_File_size@sys@tr2@std@@YA_KPEBD@Z";
+    case 0x01cd: return "?_File_size@sys@tr2@std@@YA_KPEB_W@Z";
+    case 0x01ce: return "?_Findarr@ios_base@std@@AEAAAEAU_Iosarray@12@H@Z";
+    case 0x01cf: return "?_Fiopen@std@@YAPEAU_iobuf@@PEBDHH@Z";
+    case 0x01d0: return "?_Fiopen@std@@YAPEAU_iobuf@@PEBGHH@Z";
+    case 0x01d1: return "?_Fiopen@std@@YAPEAU_iobuf@@PEB_WHH@Z";
+    case 0x01d2:
+      return "?_Fput@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@"
+             "std@@@std@@AEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@"
+             "V32@AEAVios_base@2@DPEBD_K333@Z";
+    case 0x01d3:
+      return "?_Fput@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@"
+             "std@@@std@@AEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@"
+             "V32@AEAVios_base@2@GPEBD_K333@Z";
+    case 0x01d4:
+      return "?_Fput@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@"
+             "std@@@std@@AEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@2@"
+             "V32@AEAVios_base@2@_WPEBD_K444@Z";
+    case 0x01d5: return "?_Future_error_map@std@@YAPEBDH@Z";
+    case 0x01d6: return "?_GetCombinableSize@details@Concurrency@@YA_KXZ";
+    case 0x01d7: return "?_GetCurrentThreadId@details@Concurrency@@YAKXZ";
+    case 0x01d8: return "?_GetNextAsyncId@details@Concurrency@@YAIXZ";
+    case 0x01d9: return "?_Get_future_error_what@std@@YAPEBDH@Z";
+    case 0x01da:
+      return "?_Getcat@?$codecvt@DDH@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z";
+    case 0x01db:
+      return "?_Getcat@?$codecvt@GDH@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z";
+    case 0x01dc:
+      return "?_Getcat@?$codecvt@_WDH@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z";
+    case 0x01dd:
+      return "?_Getcat@?$ctype@D@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z";
+    case 0x01de:
+      return "?_Getcat@?$ctype@G@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z";
+    case 0x01df:
+      return "?_Getcat@?$ctype@_W@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z";
+    case 0x01e0:
+      return "?_Getcat@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@"
+             "std@@@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z";
+    case 0x01e1:
+      return "?_Getcat@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@"
+             "std@@@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z";
+    case 0x01e2:
+      return "?_Getcat@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@"
+             "@@std@@@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z";
+    case 0x01e3:
+      return "?_Getcat@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@"
+             "std@@@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z";
+    case 0x01e4:
+      return "?_Getcat@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@"
+             "std@@@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z";
+    case 0x01e5:
+      return "?_Getcat@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@"
+             "@@std@@@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z";
+    case 0x01e6:
+      return "?_Getcat@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@"
+             "std@@@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z";
+    case 0x01e7:
+      return "?_Getcat@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@"
+             "std@@@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z";
+    case 0x01e8:
+      return "?_Getcat@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@"
+             "std@@@std@@@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z";
+    case 0x01e9:
+      return "?_Getcat@?$time_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@"
+             "std@@@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z";
+    case 0x01ea:
+      return "?_Getcat@?$time_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@"
+             "std@@@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z";
+    case 0x01eb:
+      return "?_Getcat@?$time_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@"
+             "std@@@std@@@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z";
+    case 0x01ec: return "?_Getcat@facet@locale@std@@SA_KPEAPEBV123@PEBV23@@Z";
+    case 0x01ed: return "?_Getcoll@_Locinfo@std@@QEBA?AU_Collvec@@XZ";
+    case 0x01ee: return "?_Getctype@_Locinfo@std@@QEBA?AU_Ctypevec@@XZ";
+    case 0x01ef: return "?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ";
+    case 0x01f0: return "?_Getdateorder@_Locinfo@std@@QEBAHXZ";
+    case 0x01f1: return "?_Getdays@_Locinfo@std@@QEBAPEBDXZ";
+    case 0x01f2: return "?_Getfalse@_Locinfo@std@@QEBAPEBDXZ";
+    case 0x01f3:
+      return "?_Getffld@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@"
+             "std@@@std@@AEBAHPEADAEAV?$istreambuf_iterator@DU?$char_traits@D@std@"
+             "@@2@1AEAVios_base@2@PEAH@Z";
+    case 0x01f4:
+      return "?_Getffld@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@"
+             "std@@@std@@AEBAHPEADAEAV?$istreambuf_iterator@GU?$char_traits@G@std@"
+             "@@2@1AEAVios_base@2@PEAH@Z";
+    case 0x01f5:
+      return "?_Getffld@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@"
+             "std@@@std@@@std@@AEBAHPEADAEAV?$istreambuf_iterator@_WU?$char_"
+             "traits@_W@std@@@2@1AEAVios_base@2@PEAH@Z";
+    case 0x01f6:
+      return "?_Getffldx@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@"
+             "@std@@@std@@AEBAHPEADAEAV?$istreambuf_iterator@DU?$char_traits@D@"
+             "std@@@2@1AEAVios_base@2@PEAH@Z";
+    case 0x01f7:
+      return "?_Getffldx@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@"
+             "@std@@@std@@AEBAHPEADAEAV?$istreambuf_iterator@GU?$char_traits@G@"
+             "std@@@2@1AEAVios_base@2@PEAH@Z";
+    case 0x01f8:
+      return "?_Getffldx@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@"
+             "std@@@std@@@std@@AEBAHPEADAEAV?$istreambuf_iterator@_WU?$char_"
+             "traits@_W@std@@@2@1AEAVios_base@2@PEAH@Z";
+    case 0x01f9:
+      return "?_Getfmt@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@"
+             "std@@@std@@IEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@"
+             "V32@0AEAVios_base@2@AEAHPEAUtm@@PEBD@Z";
+    case 0x01fa:
+      return "?_Getfmt@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@"
+             "std@@@std@@IEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@"
+             "V32@0AEAVios_base@2@AEAHPEAUtm@@PEBD@Z";
+    case 0x01fb:
+      return "?_Getfmt@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@"
+             "std@@@std@@@std@@IEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@"
+             "std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@PEBD@Z";
+    case 0x01fc: return "?_Getgloballocale@locale@std@@CAPEAV_Locimp@12@XZ";
+    case 0x01fd:
+      return "?_Getifld@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@"
+             "std@@@std@@AEBAHPEADAEAV?$istreambuf_iterator@DU?$char_traits@D@std@"
+             "@@2@1HAEBVlocale@2@@Z";
+    case 0x01fe:
+      return "?_Getifld@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@"
+             "std@@@std@@AEBAHPEADAEAV?$istreambuf_iterator@GU?$char_traits@G@std@"
+             "@@2@1HAEBVlocale@2@@Z";
+    case 0x01ff:
+      return "?_Getifld@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@"
+             "std@@@std@@@std@@AEBAHPEADAEAV?$istreambuf_iterator@_WU?$char_"
+             "traits@_W@std@@@2@1HAEBVlocale@2@@Z";
+    case 0x0200:
+      return "?_Getint@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@"
+             "std@@@std@@AEBAHAEAV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@"
+             "0HHAEAHAEBV?$ctype@D@2@@Z";
+    case 0x0201:
+      return "?_Getint@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@"
+             "std@@@std@@AEBAHAEAV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@"
+             "0HHAEAHAEBV?$ctype@G@2@@Z";
+    case 0x0202:
+      return "?_Getint@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@"
+             "std@@@std@@@std@@AEBAHAEAV?$istreambuf_iterator@_WU?$char_traits@_W@"
+             "std@@@2@0HHAEAHAEBV?$ctype@_W@2@@Z";
+    case 0x0203: return "?_Getlconv@_Locinfo@std@@QEBAPEBUlconv@@XZ";
+    case 0x0204: return "?_Getmonths@_Locinfo@std@@QEBAPEBDXZ";
+    case 0x0205: return "?_Getname@_Locinfo@std@@QEBAPEBDXZ";
+    case 0x0206:
+      return "?_Getpfirst@_Container_base12@std@@QEBAPEAPEAU_Iterator_base12@2@XZ";
+    case 0x0207: return "?_Getptr@_Timevec@std@@QEBAPEAXXZ";
+    case 0x0208: return "?_Gettnames@_Locinfo@std@@QEBA?AV_Timevec@2@XZ";
+    case 0x0209: return "?_Gettrue@_Locinfo@std@@QEBAPEBDXZ";
+    case 0x020a:
+      return "?_Gnavail@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBA_JXZ";
+    case 0x020b:
+      return "?_Gnavail@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEBA_JXZ";
+    case 0x020c:
+      return "?_Gnavail@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEBA_JXZ";
+    case 0x020d:
+      return "?_Gndec@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAPEADXZ";
+    case 0x020e:
+      return "?_Gndec@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAPEAGXZ";
+    case 0x020f:
+      return "?_Gndec@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAPEA_"
+             "WXZ";
+    case 0x0210:
+      return "?_Gninc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAPEADXZ";
+    case 0x0211:
+      return "?_Gninc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAPEAGXZ";
+    case 0x0212:
+      return "?_Gninc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAPEA_"
+             "WXZ";
+    case 0x0213:
+      return "?_Gnpreinc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@"
+             "IEAAPEADXZ";
+    case 0x0214:
+      return "?_Gnpreinc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@"
+             "IEAAPEAGXZ";
+    case 0x0215:
+      return "?_Gnpreinc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAPEA_"
+             "WXZ";
+    case 0x0216: return "?_Id_cnt@id@locale@std@@0HA";
+    case 0x0217:
+      return "?_Ifmt@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@"
+             "std@@@std@@AEBAPEADPEADPEBDH@Z";
+    case 0x0218:
+      return "?_Ifmt@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@"
+             "std@@@std@@AEBAPEADPEADPEBDH@Z";
+    case 0x0219:
+      return "?_Ifmt@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@"
+             "std@@@std@@AEBAPEADPEADPEBDH@Z";
+    case 0x021a: return "?_Incref@facet@locale@std@@UEAAXXZ";
+    case 0x021b: return "?_Index@ios_base@std@@0HA";
+    case 0x021c:
+      return "?_Init@?$basic_streambuf@DU?$char_traits@D@std@@@std@@"
+             "IEAAXPEAPEAD0PEAH001@Z";
+    case 0x021d:
+      return "?_Init@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXXZ";
+    case 0x021e:
+      return "?_Init@?$basic_streambuf@GU?$char_traits@G@std@@@std@@"
+             "IEAAXPEAPEAG0PEAH001@Z";
+    case 0x021f:
+      return "?_Init@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAXXZ";
+    case 0x0220:
+      return "?_Init@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAXPEAPEA_"
+             "W0PEAH001@Z";
+    case 0x0221:
+      return "?_Init@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAXXZ";
+    case 0x0222: return "?_Init@?$codecvt@DDH@std@@IEAAXAEBV_Locinfo@2@@Z";
+    case 0x0223: return "?_Init@?$codecvt@GDH@std@@IEAAXAEBV_Locinfo@2@@Z";
+    case 0x0224: return "?_Init@?$codecvt@_WDH@std@@IEAAXAEBV_Locinfo@2@@Z";
+    case 0x0225: return "?_Init@?$ctype@D@std@@IEAAXAEBV_Locinfo@2@@Z";
+    case 0x0226: return "?_Init@?$ctype@G@std@@IEAAXAEBV_Locinfo@2@@Z";
+    case 0x0227: return "?_Init@?$ctype@_W@std@@IEAAXAEBV_Locinfo@2@@Z";
+    case 0x0228:
+      return "?_Init@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@"
+             "std@@@std@@IEAAXAEBV_Locinfo@2@@Z";
+    case 0x0229:
+      return "?_Init@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@"
+             "std@@@std@@IEAAXAEBV_Locinfo@2@@Z";
+    case 0x022a:
+      return "?_Init@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@"
+             "std@@@std@@IEAAXAEBV_Locinfo@2@@Z";
+    case 0x022b:
+      return "?_Init@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@"
+             "std@@@std@@IEAAXAEBV_Locinfo@2@@Z";
+    case 0x022c:
+      return "?_Init@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@"
+             "std@@@std@@IEAAXAEBV_Locinfo@2@@Z";
+    case 0x022d:
+      return "?_Init@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@"
+             "std@@@std@@IEAAXAEBV_Locinfo@2@@Z";
+    case 0x022e:
+      return "?_Init@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@"
+             "std@@@std@@IEAAXAEBV_Locinfo@2@@Z";
+    case 0x022f:
+      return "?_Init@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@"
+             "std@@@std@@IEAAXAEBV_Locinfo@2@@Z";
+    case 0x0230:
+      return "?_Init@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@"
+             "@std@@@std@@IEAAXAEBV_Locinfo@2@@Z";
+    case 0x0231:
+      return "?_Init@?$time_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@"
+             "std@@@std@@IEAAXAEBV_Locinfo@2@@Z";
+    case 0x0232:
+      return "?_Init@?$time_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@"
+             "std@@@std@@IEAAXAEBV_Locinfo@2@@Z";
+    case 0x0233:
+      return "?_Init@?$time_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@"
+             "@std@@@std@@IEAAXAEBV_Locinfo@2@@Z";
+    case 0x0234: return "?_Init@ios_base@std@@IEAAXXZ";
+    case 0x0235: return "?_Init@locale@std@@CAPEAV_Locimp@12@_N@Z";
+    case 0x0236: return "?_Init_cnt@Init@ios_base@std@@0HA";
+    case 0x0237: return "?_Init_cnt@_UShinit@std@@0HA";
+    case 0x0238: return "?_Init_cnt@_Winit@std@@0HA";
+    case 0x0239: return "?_Init_cnt_func@Init@ios_base@std@@CAAEAHXZ";
+    case 0x023a: return "?_Init_ctor@Init@ios_base@std@@CAXPEAV123@@Z";
+    case 0x023b: return "?_Init_dtor@Init@ios_base@std@@CAXPEAV123@@Z";
+    case 0x023c: return "?_Init_locks_ctor@_Init_locks@std@@CAXPEAV12@@Z";
+    case 0x023d: return "?_Init_locks_dtor@_Init_locks@std@@CAXPEAV12@@Z";
+    case 0x023e:
+      return "?_Internal_assign@_Concurrent_vector_base_v4@details@Concurrency@@"
+             "IEAAXAEBV123@_KP6AXPEAX1@ZP6AX2PEBX1@Z5@Z";
+    case 0x023f:
+      return "?_Internal_capacity@_Concurrent_vector_base_v4@details@Concurrency@@"
+             "IEBA_KXZ";
+    case 0x0240:
+      return "?_Internal_clear@_Concurrent_vector_base_v4@details@Concurrency@@"
+             "IEAA_KP6AXPEAX_K@Z@Z";
+    case 0x0241:
+      return "?_Internal_compact@_Concurrent_vector_base_v4@details@Concurrency@@"
+             "IEAAPEAX_KPEAXP6AX10@ZP6AX1PEBX0@Z@Z";
+    case 0x0242:
+      return "?_Internal_copy@_Concurrent_vector_base_v4@details@Concurrency@@"
+             "IEAAXAEBV123@_KP6AXPEAXPEBX1@Z@Z";
+    case 0x0243:
+      return "?_Internal_empty@_Concurrent_queue_base_v4@details@Concurrency@@"
+             "IEBA_NXZ";
+    case 0x0244:
+      return "?_Internal_finish_clear@_Concurrent_queue_base_v4@details@"
+             "Concurrency@@IEAAXXZ";
+    case 0x0245:
+      return "?_Internal_grow_by@_Concurrent_vector_base_v4@details@Concurrency@@"
+             "IEAA_K_K0P6AXPEAXPEBX0@Z2@Z";
+    case 0x0246:
+      return "?_Internal_grow_to_at_least_with_result@_Concurrent_vector_base_v4@"
+             "details@Concurrency@@IEAA_K_K0P6AXPEAXPEBX0@Z2@Z";
+    case 0x0247:
+      return "?_Internal_move_push@_Concurrent_queue_base_v4@details@Concurrency@@"
+             "IEAAXPEAX@Z";
+    case 0x0248:
+      return "?_Internal_pop_if_present@_Concurrent_queue_base_v4@details@"
+             "Concurrency@@IEAA_NPEAX@Z";
+    case 0x0249:
+      return "?_Internal_push@_Concurrent_queue_base_v4@details@Concurrency@@"
+             "IEAAXPEBX@Z";
+    case 0x024a:
+      return "?_Internal_push_back@_Concurrent_vector_base_v4@details@Concurrency@"
+             "@IEAAPEAX_KAEA_K@Z";
+    case 0x024b:
+      return "?_Internal_reserve@_Concurrent_vector_base_v4@details@Concurrency@@"
+             "IEAAX_K00@Z";
+    case 0x024c:
+      return "?_Internal_resize@_Concurrent_vector_base_v4@details@Concurrency@@"
+             "IEAAX_K00P6AXPEAX0@ZP6AX1PEBX0@Z3@Z";
+    case 0x024d:
+      return "?_Internal_size@_Concurrent_queue_base_v4@details@Concurrency@@IEBA_"
+             "KXZ";
+    case 0x024e:
+      return "?_Internal_swap@_Concurrent_queue_base_v4@details@Concurrency@@"
+             "IEAAXAEAV123@@Z";
+    case 0x024f:
+      return "?_Internal_swap@_Concurrent_vector_base_v4@details@Concurrency@@"
+             "IEAAXAEAV123@@Z";
+    case 0x0250:
+      return "?_Internal_throw_exception@_Concurrent_queue_base_v4@details@"
+             "Concurrency@@IEBAXXZ";
+    case 0x0251:
+      return "?_Internal_throw_exception@_Concurrent_vector_base_v4@details@"
+             "Concurrency@@IEBAX_K@Z";
+    case 0x0252: return "?_Ios_base_dtor@ios_base@std@@CAXPEAV12@@Z";
+    case 0x0253:
+      return "?_Ipfx@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAA_N_N@Z";
+    case 0x0254:
+      return "?_Ipfx@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAA_N_N@Z";
+    case 0x0255:
+      return "?_Ipfx@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAA_N_N@Z";
+    case 0x0256:
+      return "?_Iput@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@"
+             "std@@@std@@AEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@"
+             "V32@AEAVios_base@2@DPEAD_K@Z";
+    case 0x0257:
+      return "?_Iput@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@"
+             "std@@@std@@AEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@"
+             "V32@AEAVios_base@2@GPEAD_K@Z";
+    case 0x0258:
+      return "?_Iput@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@"
+             "std@@@std@@AEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@2@"
+             "V32@AEAVios_base@2@_WPEAD_K@Z";
+    case 0x0259: return "?_Last_write_time@sys@tr2@std@@YAXPEBD_J@Z";
+    case 0x025a: return "?_Last_write_time@sys@tr2@std@@YAXPEB_W_J@Z";
+    case 0x025b: return "?_Last_write_time@sys@tr2@std@@YA_JPEBD@Z";
+    case 0x025c: return "?_Last_write_time@sys@tr2@std@@YA_JPEB_W@Z";
+    case 0x025d: return "?_Launch@_Pad@std@@QEAAXPEAU_Thrd_imp_t@@@Z";
+    case 0x025e: return "?_Link@sys@tr2@std@@YAHPEBD0@Z";
+    case 0x025f: return "?_Link@sys@tr2@std@@YAHPEB_W0@Z";
+    case 0x0260:
+      return "?_Locimp_Addfac@_Locimp@locale@std@@CAXPEAV123@PEAVfacet@23@_K@Z";
+    case 0x0261: return "?_Locimp_ctor@_Locimp@locale@std@@CAXPEAV123@AEBV123@@Z";
+    case 0x0262: return "?_Locimp_dtor@_Locimp@locale@std@@CAXPEAV123@@Z";
+    case 0x0263: return "?_Locinfo_Addcats@_Locinfo@std@@SAAEAV12@PEAV12@HPEBD@Z";
+    case 0x0264: return "?_Locinfo_ctor@_Locinfo@std@@SAXPEAV12@HPEBD@Z";
+    case 0x0265: return "?_Locinfo_ctor@_Locinfo@std@@SAXPEAV12@PEBD@Z";
+    case 0x0266: return "?_Locinfo_dtor@_Locinfo@std@@SAXPEAV12@@Z";
+    case 0x0267:
+      return "?_Lock@?$basic_streambuf@DU?$char_traits@D@std@@@std@@UEAAXXZ";
+    case 0x0268:
+      return "?_Lock@?$basic_streambuf@GU?$char_traits@G@std@@@std@@UEAAXXZ";
+    case 0x0269:
+      return "?_Lock@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@UEAAXXZ";
+    case 0x026a: return "?_Lockit_ctor@_Lockit@std@@CAXPEAV12@@Z";
+    case 0x026b: return "?_Lockit_ctor@_Lockit@std@@CAXPEAV12@H@Z";
+    case 0x026c: return "?_Lockit_ctor@_Lockit@std@@SAXH@Z";
+    case 0x026d: return "?_Lockit_dtor@_Lockit@std@@CAXPEAV12@@Z";
+    case 0x026e: return "?_Lockit_dtor@_Lockit@std@@SAXH@Z";
+    case 0x026f: return "?_Lstat@sys@tr2@std@@YA?AW4file_type@123@PEBDAEAH@Z";
+    case 0x0270: return "?_Lstat@sys@tr2@std@@YA?AW4file_type@123@PEB_WAEAH@Z";
+    case 0x0271: return "?_MP_Add@std@@YAXQEA_K_K@Z";
+    case 0x0272: return "?_MP_Get@std@@YA_KQEA_K@Z";
+    case 0x0273: return "?_MP_Mul@std@@YAXQEA_K_K1@Z";
+    case 0x0274: return "?_MP_Rem@std@@YAXQEA_K_K@Z";
+    case 0x0275: return "?_Make_dir@sys@tr2@std@@YAHPEBD@Z";
+    case 0x0276: return "?_Make_dir@sys@tr2@std@@YAHPEB_W@Z";
+    case 0x0277:
+      return "?_Makeloc@_Locimp@locale@std@@CAPEAV123@AEBV_Locinfo@3@HPEAV123@"
+             "PEBV23@@Z";
+    case 0x0278:
+      return "?_Makeushloc@_Locimp@locale@std@@CAXAEBV_Locinfo@3@HPEAV123@PEBV23@@"
+             "Z";
+    case 0x0279:
+      return "?_Makewloc@_Locimp@locale@std@@CAXAEBV_Locinfo@3@HPEAV123@PEBV23@@Z";
+    case 0x027a:
+      return "?_Makexloc@_Locimp@locale@std@@CAXAEBV_Locinfo@3@HPEAV123@PEBV23@@Z";
+    case 0x027b: return "?_Mtx_delete@threads@stdext@@YAXPEAX@Z";
+    case 0x027c: return "?_Mtx_lock@threads@stdext@@YAXPEAX@Z";
+    case 0x027d: return "?_Mtx_new@threads@stdext@@YAXAEAPEAX@Z";
+    case 0x027e: return "?_Mtx_unlock@threads@stdext@@YAXPEAX@Z";
+    case 0x027f: return "?_New_Locimp@_Locimp@locale@std@@CAPEAV123@AEBV123@@Z";
+    case 0x0280: return "?_New_Locimp@_Locimp@locale@std@@CAPEAV123@_N@Z";
+    case 0x0281:
+      return "?_Open_dir@sys@tr2@std@@YAPEAXPEADPEBDAEAHAEAW4file_type@123@@Z";
+    case 0x0282:
+      return "?_Open_dir@sys@tr2@std@@YAPEAXPEA_WPEB_WAEAHAEAW4file_type@123@@Z";
+    case 0x0283: return "?_Orphan_all@_Container_base0@std@@QEAAXXZ";
+    case 0x0284: return "?_Orphan_all@_Container_base12@std@@QEAAXXZ";
+    case 0x0285:
+      return "?_Osfx@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAXXZ";
+    case 0x0286:
+      return "?_Osfx@?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAXXZ";
+    case 0x0287:
+      return "?_Osfx@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAXXZ";
+    case 0x0288:
+      return "?_Pnavail@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBA_JXZ";
+    case 0x0289:
+      return "?_Pnavail@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEBA_JXZ";
+    case 0x028a:
+      return "?_Pnavail@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEBA_JXZ";
+    case 0x028b:
+      return "?_Pninc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAPEADXZ";
+    case 0x028c:
+      return "?_Pninc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAPEAGXZ";
+    case 0x028d:
+      return "?_Pninc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAPEA_"
+             "WXZ";
+    case 0x028e:
+      return "?_Ptr_cerr@std@@3PEAV?$basic_ostream@DU?$char_traits@D@std@@@1@EA";
+    case 0x028f:
+      return "?_Ptr_cin@std@@3PEAV?$basic_istream@DU?$char_traits@D@std@@@1@EA";
+    case 0x0290:
+      return "?_Ptr_clog@std@@3PEAV?$basic_ostream@DU?$char_traits@D@std@@@1@EA";
+    case 0x0291:
+      return "?_Ptr_cout@std@@3PEAV?$basic_ostream@DU?$char_traits@D@std@@@1@EA";
+    case 0x0292:
+      return "?_Ptr_wcerr@std@@3PEAV?$basic_ostream@GU?$char_traits@G@std@@@1@EA";
+    case 0x0293:
+      return "?_Ptr_wcerr@std@@3PEAV?$basic_ostream@_WU?$char_traits@_W@std@@@1@"
+             "EA";
+    case 0x0294:
+      return "?_Ptr_wcin@std@@3PEAV?$basic_istream@GU?$char_traits@G@std@@@1@EA";
+    case 0x0295:
+      return "?_Ptr_wcin@std@@3PEAV?$basic_istream@_WU?$char_traits@_W@std@@@1@EA";
+    case 0x0296:
+      return "?_Ptr_wclog@std@@3PEAV?$basic_ostream@GU?$char_traits@G@std@@@1@EA";
+    case 0x0297:
+      return "?_Ptr_wclog@std@@3PEAV?$basic_ostream@_WU?$char_traits@_W@std@@@1@"
+             "EA";
+    case 0x0298:
+      return "?_Ptr_wcout@std@@3PEAV?$basic_ostream@GU?$char_traits@G@std@@@1@EA";
+    case 0x0299:
+      return "?_Ptr_wcout@std@@3PEAV?$basic_ostream@_WU?$char_traits@_W@std@@@1@"
+             "EA";
+    case 0x029a:
+      return "?_Put@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@"
+             "@@std@@AEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@V32@"
+             "PEBD_K@Z";
+    case 0x029b:
+      return "?_Put@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@"
+             "@@std@@AEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@V32@"
+             "PEBG_K@Z";
+    case 0x029c:
+      return "?_Put@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@"
+             "std@@@std@@AEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@2@"
+             "V32@PEB_W_K@Z";
+    case 0x029d: return "?_Raise_handler@std@@3P6AXAEBVexception@stdext@@@ZEA";
+    case 0x029e: return "?_Random_device@std@@YAIXZ";
+    case 0x029f:
+      return "?_Read_dir@sys@tr2@std@@YAPEADPEADPEAXAEAW4file_type@123@@Z";
+    case 0x02a0:
+      return "?_Read_dir@sys@tr2@std@@YAPEA_WPEA_WPEAXAEAW4file_type@123@@Z";
+    case 0x02a1: return "?_Release@_Pad@std@@QEAAXXZ";
+    case 0x02a2: return "?_Remove_dir@sys@tr2@std@@YA_NPEBD@Z";
+    case 0x02a3: return "?_Remove_dir@sys@tr2@std@@YA_NPEB_W@Z";
+    case 0x02a4: return "?_Rename@sys@tr2@std@@YAHPEBD0@Z";
+    case 0x02a5: return "?_Rename@sys@tr2@std@@YAHPEB_W0@Z";
+    case 0x02a6:
+      return "?_Rep@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@"
+             "@@std@@AEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@V32@D_"
+             "K@Z";
+    case 0x02a7:
+      return "?_Rep@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@"
+             "@@std@@AEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@V32@G_"
+             "K@Z";
+    case 0x02a8:
+      return "?_Rep@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@"
+             "std@@@std@@AEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@2@"
+             "V32@_W_K@Z";
+    case 0x02a9: return "?_Rethrow_future_exception@std@@YAXVexception_ptr@1@@Z";
+    case 0x02aa: return "?_Rng_abort@std@@YAXPEBD@Z";
+    case 0x02ab:
+      return "?_Segment_index_of@_Concurrent_vector_base_v4@details@Concurrency@@"
+             "KA_K_K@Z";
+    case 0x02ac: return "?_Setgloballocale@locale@std@@CAXPEAX@Z";
+    case 0x02ad:
+      return "?_Src@?1??_Getffldx@?$num_get@DV?$istreambuf_iterator@DU?$char_"
+             "traits@D@std@@@std@@@std@@AEBAHPEADAEAV?$istreambuf_iterator@DU?$"
+             "char_traits@D@std@@@3@1AEAVios_base@3@PEAH@Z@4QBDB";
+    case 0x02ae:
+      return "?_Src@?1??_Getffldx@?$num_get@GV?$istreambuf_iterator@GU?$char_"
+             "traits@G@std@@@std@@@std@@AEBAHPEADAEAV?$istreambuf_iterator@GU?$"
+             "char_traits@G@std@@@3@1AEAVios_base@3@PEAH@Z@4QBDB";
+    case 0x02af:
+      return "?_Src@?1??_Getffldx@?$num_get@_WV?$istreambuf_iterator@_WU?$char_"
+             "traits@_W@std@@@std@@@std@@AEBAHPEADAEAV?$istreambuf_iterator@_WU?$"
+             "char_traits@_W@std@@@3@1AEAVios_base@3@PEAH@Z@4QBDB";
+    case 0x02b0:
+      return "?_Src@?1??_Getifld@?$num_get@DV?$istreambuf_iterator@DU?$char_"
+             "traits@D@std@@@std@@@std@@AEBAHPEADAEAV?$istreambuf_iterator@DU?$"
+             "char_traits@D@std@@@3@1HAEBVlocale@3@@Z@4QBDB";
+    case 0x02b1:
+      return "?_Src@?1??_Getifld@?$num_get@GV?$istreambuf_iterator@GU?$char_"
+             "traits@G@std@@@std@@@std@@AEBAHPEADAEAV?$istreambuf_iterator@GU?$"
+             "char_traits@G@std@@@3@1HAEBVlocale@3@@Z@4QBDB";
+    case 0x02b2:
+      return "?_Src@?1??_Getifld@?$num_get@_WV?$istreambuf_iterator@_WU?$char_"
+             "traits@_W@std@@@std@@@std@@AEBAHPEADAEAV?$istreambuf_iterator@_WU?$"
+             "char_traits@_W@std@@@3@1HAEBVlocale@3@@Z@4QBDB";
+    case 0x02b3:
+      return "?_Src@?3??_Getffld@?$num_get@DV?$istreambuf_iterator@DU?$char_"
+             "traits@D@std@@@std@@@std@@AEBAHPEADAEAV?$istreambuf_iterator@DU?$"
+             "char_traits@D@std@@@3@1AEAVios_base@3@PEAH@Z@4QBDB";
+    case 0x02b4:
+      return "?_Src@?3??_Getffld@?$num_get@GV?$istreambuf_iterator@GU?$char_"
+             "traits@G@std@@@std@@@std@@AEBAHPEADAEAV?$istreambuf_iterator@GU?$"
+             "char_traits@G@std@@@3@1AEAVios_base@3@PEAH@Z@4QBDB";
+    case 0x02b5:
+      return "?_Src@?3??_Getffld@?$num_get@_WV?$istreambuf_iterator@_WU?$char_"
+             "traits@_W@std@@@std@@@std@@AEBAHPEADAEAV?$istreambuf_iterator@_WU?$"
+             "char_traits@_W@std@@@3@1AEAVios_base@3@PEAH@Z@4QBDB";
+    case 0x02b6: return "?_Stat@sys@tr2@std@@YA?AW4file_type@123@PEBDAEAH@Z";
+    case 0x02b7: return "?_Stat@sys@tr2@std@@YA?AW4file_type@123@PEB_WAEAH@Z";
+    case 0x02b8: return "?_Statvfs@sys@tr2@std@@YA?AUspace_info@123@PEBD@Z";
+    case 0x02b9: return "?_Statvfs@sys@tr2@std@@YA?AUspace_info@123@PEB_W@Z";
+    case 0x02ba: return "?_Swap_all@_Container_base0@std@@QEAAXAEAU12@@Z";
+    case 0x02bb: return "?_Swap_all@_Container_base12@std@@QEAAXAEAU12@@Z";
+    case 0x02bc: return "?_Symlink@sys@tr2@std@@YAHPEBD0@Z";
+    case 0x02bd: return "?_Symlink@sys@tr2@std@@YAHPEB_W0@Z";
+    case 0x02be: return "?_Sync@ios_base@std@@0_NA";
+    case 0x02bf: return "?_Syserror_map@std@@YAPEBDH@Z";
+    case 0x02c0: return "?_Throw_C_error@std@@YAXH@Z";
+    case 0x02c1: return "?_Throw_Cpp_error@std@@YAXH@Z";
+    case 0x02c2: return "?_Throw_future_error@std@@YAXAEBVerror_code@1@@Z";
+    case 0x02c3: return "?_Throw_lock_error@threads@stdext@@YAXXZ";
+    case 0x02c4: return "?_Throw_resource_error@threads@stdext@@YAXXZ";
+    case 0x02c5: return "?_Tidy@?$_Yarn@D@std@@AEAAXXZ";
+    case 0x02c6: return "?_Tidy@?$_Yarn@_W@std@@AEAAXXZ";
+    case 0x02c7: return "?_Tidy@?$ctype@D@std@@IEAAXXZ";
+    case 0x02c8:
+      return "?_Tidy@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@"
+             "std@@@std@@AEAAXXZ";
+    case 0x02c9:
+      return "?_Tidy@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@"
+             "std@@@std@@AEAAXXZ";
+    case 0x02ca:
+      return "?_Tidy@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@"
+             "@std@@@std@@AEAAXXZ";
+    case 0x02cb: return "?_Tidy@ios_base@std@@AEAAXXZ";
+    case 0x02cc: return "?_Unlink@sys@tr2@std@@YAHPEBD@Z";
+    case 0x02cd: return "?_Unlink@sys@tr2@std@@YAHPEB_W@Z";
+    case 0x02ce:
+      return "?_Unlock@?$basic_streambuf@DU?$char_traits@D@std@@@std@@UEAAXXZ";
+    case 0x02cf:
+      return "?_Unlock@?$basic_streambuf@GU?$char_traits@G@std@@@std@@UEAAXXZ";
+    case 0x02d0:
+      return "?_Unlock@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@UEAAXXZ";
+    case 0x02d1: return "?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ";
+    case 0x02d2: return "?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ";
+    case 0x02d3: return "?_W_Gettnames@_Locinfo@std@@QEBA?AV_Timevec@2@XZ";
+    case 0x02d4: return "?_Winerror_map@std@@YAPEBDH@Z";
+    case 0x02d5: return "?_XLgamma@std@@YAMM@Z";
+    case 0x02d6: return "?_XLgamma@std@@YANN@Z";
+    case 0x02d7: return "?_XLgamma@std@@YAOO@Z";
+    case 0x02d8: return "?_Xbad_alloc@std@@YAXXZ";
+    case 0x02d9: return "?_Xbad_function_call@std@@YAXXZ";
+    case 0x02da: return "?_Xinvalid_argument@std@@YAXPEBD@Z";
+    case 0x02db: return "?_Xlength_error@std@@YAXPEBD@Z";
+    case 0x02dc: return "?_Xout_of_range@std@@YAXPEBD@Z";
+    case 0x02dd: return "?_Xoverflow_error@std@@YAXPEBD@Z";
+    case 0x02de: return "?_Xregex_error@std@@YAXW4error_type@regex_constants@1@@Z";
+    case 0x02df: return "?_Xruntime_error@std@@YAXPEBD@Z";
+    case 0x02e0: return "?adopt_lock@std@@3Uadopt_lock_t@1@B";
+    case 0x02e1: return "?always_noconv@codecvt_base@std@@QEBA_NXZ";
+    case 0x02e2: return "?bad@ios_base@std@@QEBA_NXZ";
+    case 0x02e3: return "?c_str@?$_Yarn@D@std@@QEBAPEBDXZ";
+    case 0x02e4: return "?cancel@agent@Concurrency@@QEAA_NXZ";
+    case 0x02e5: return "?cancel_current_task@Concurrency@@YAXXZ";
+    case 0x02e6: return "?cerr@std@@3V?$basic_ostream@DU?$char_traits@D@std@@@1@A";
+    case 0x02e7: return "?cin@std@@3V?$basic_istream@DU?$char_traits@D@std@@@1@A";
+    case 0x02e8: return "?classic@locale@std@@SAAEBV12@XZ";
+    case 0x02e9: return "?classic_table@?$ctype@D@std@@SAPEBFXZ";
+    case 0x02ea:
+      return "?clear@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAXH_N@Z";
+    case 0x02eb: return "?clear@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAXI@Z";
+    case 0x02ec:
+      return "?clear@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAXH_N@Z";
+    case 0x02ed: return "?clear@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAXI@Z";
+    case 0x02ee:
+      return "?clear@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAXH_N@Z";
+    case 0x02ef:
+      return "?clear@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAXI@Z";
+    case 0x02f0: return "?clear@ios_base@std@@QEAAXH@Z";
+    case 0x02f1: return "?clear@ios_base@std@@QEAAXH_N@Z";
+    case 0x02f2: return "?clear@ios_base@std@@QEAAXI@Z";
+    case 0x02f3: return "?clog@std@@3V?$basic_ostream@DU?$char_traits@D@std@@@1@A";
+    case 0x02f4:
+      return "?copyfmt@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAAEAV12@AEBV12@"
+             "@Z";
+    case 0x02f5:
+      return "?copyfmt@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAAEAV12@AEBV12@"
+             "@Z";
+    case 0x02f6:
+      return "?copyfmt@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@"
+             "AEBV12@@Z";
+    case 0x02f7: return "?copyfmt@ios_base@std@@QEAAAEAV12@AEBV12@@Z";
+    case 0x02f8: return "?cout@std@@3V?$basic_ostream@DU?$char_traits@D@std@@@1@A";
+    case 0x02f9:
+      return "?date_order@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@"
+             "std@@@std@@@std@@QEBA?AW4dateorder@time_base@2@XZ";
+    case 0x02fa:
+      return "?date_order@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@"
+             "std@@@std@@@std@@QEBA?AW4dateorder@time_base@2@XZ";
+    case 0x02fb:
+      return "?date_order@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@"
+             "std@@@std@@@std@@QEBA?AW4dateorder@time_base@2@XZ";
+    case 0x02fc: return "?defer_lock@std@@3Udefer_lock_t@1@B";
+    case 0x02fd: return "?do_always_noconv@?$codecvt@DDH@std@@MEBA_NXZ";
+    case 0x02fe: return "?do_always_noconv@?$codecvt@GDH@std@@MEBA_NXZ";
+    case 0x02ff: return "?do_always_noconv@?$codecvt@_WDH@std@@MEBA_NXZ";
+    case 0x0300: return "?do_always_noconv@codecvt_base@std@@MEBA_NXZ";
+    case 0x0301:
+      return "?do_date_order@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@"
+             "std@@@std@@@std@@MEBA?AW4dateorder@time_base@2@XZ";
+    case 0x0302:
+      return "?do_date_order@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@"
+             "std@@@std@@@std@@MEBA?AW4dateorder@time_base@2@XZ";
+    case 0x0303:
+      return "?do_date_order@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@"
+             "_W@std@@@std@@@std@@MEBA?AW4dateorder@time_base@2@XZ";
+    case 0x0304: return "?do_encoding@?$codecvt@GDH@std@@MEBAHXZ";
+    case 0x0305: return "?do_encoding@?$codecvt@_WDH@std@@MEBAHXZ";
+    case 0x0306: return "?do_encoding@codecvt_base@std@@MEBAHXZ";
+    case 0x0307:
+      return "?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@"
+             "std@@@std@@MEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@"
+             "V32@0AEAVios_base@2@AEAHAEAG@Z";
+    case 0x0308:
+      return "?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@"
+             "std@@@std@@MEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@"
+             "V32@0AEAVios_base@2@AEAHAEAI@Z";
+    case 0x0309:
+      return "?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@"
+             "std@@@std@@MEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@"
+             "V32@0AEAVios_base@2@AEAHAEAJ@Z";
+    case 0x030a:
+      return "?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@"
+             "std@@@std@@MEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@"
+             "V32@0AEAVios_base@2@AEAHAEAK@Z";
+    case 0x030b:
+      return "?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@"
+             "std@@@std@@MEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@"
+             "V32@0AEAVios_base@2@AEAHAEAM@Z";
+    case 0x030c:
+      return "?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@"
+             "std@@@std@@MEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@"
+             "V32@0AEAVios_base@2@AEAHAEAN@Z";
+    case 0x030d:
+      return "?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@"
+             "std@@@std@@MEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@"
+             "V32@0AEAVios_base@2@AEAHAEAO@Z";
+    case 0x030e:
+      return "?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@"
+             "std@@@std@@MEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@"
+             "V32@0AEAVios_base@2@AEAHAEAPEAX@Z";
+    case 0x030f:
+      return "?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@"
+             "std@@@std@@MEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@"
+             "V32@0AEAVios_base@2@AEAHAEA_J@Z";
+    case 0x0310:
+      return "?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@"
+             "std@@@std@@MEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@"
+             "V32@0AEAVios_base@2@AEAHAEA_K@Z";
+    case 0x0311:
+      return "?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@"
+             "std@@@std@@MEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@"
+             "V32@0AEAVios_base@2@AEAHAEA_N@Z";
+    case 0x0312:
+      return "?do_get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@"
+             "std@@@std@@MEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@"
+             "V32@0AEAVios_base@2@AEAHAEAG@Z";
+    case 0x0313:
+      return "?do_get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@"
+             "std@@@std@@MEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@"
+             "V32@0AEAVios_base@2@AEAHAEAI@Z";
+    case 0x0314:
+      return "?do_get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@"
+             "std@@@std@@MEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@"
+             "V32@0AEAVios_base@2@AEAHAEAJ@Z";
+    case 0x0315:
+      return "?do_get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@"
+             "std@@@std@@MEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@"
+             "V32@0AEAVios_base@2@AEAHAEAK@Z";
+    case 0x0316:
+      return "?do_get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@"
+             "std@@@std@@MEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@"
+             "V32@0AEAVios_base@2@AEAHAEAM@Z";
+    case 0x0317:
+      return "?do_get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@"
+             "std@@@std@@MEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@"
+             "V32@0AEAVios_base@2@AEAHAEAN@Z";
+    case 0x0318:
+      return "?do_get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@"
+             "std@@@std@@MEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@"
+             "V32@0AEAVios_base@2@AEAHAEAO@Z";
+    case 0x0319:
+      return "?do_get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@"
+             "std@@@std@@MEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@"
+             "V32@0AEAVios_base@2@AEAHAEAPEAX@Z";
+    case 0x031a:
+      return "?do_get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@"
+             "std@@@std@@MEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@"
+             "V32@0AEAVios_base@2@AEAHAEA_J@Z";
+    case 0x031b:
+      return "?do_get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@"
+             "std@@@std@@MEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@"
+             "V32@0AEAVios_base@2@AEAHAEA_K@Z";
+    case 0x031c:
+      return "?do_get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@"
+             "std@@@std@@MEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@"
+             "V32@0AEAVios_base@2@AEAHAEA_N@Z";
+    case 0x031d:
+      return "?do_get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@"
+             "@std@@@std@@MEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@"
+             "2@V32@0AEAVios_base@2@AEAHAEAG@Z";
+    case 0x031e:
+      return "?do_get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@"
+             "@std@@@std@@MEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@"
+             "2@V32@0AEAVios_base@2@AEAHAEAI@Z";
+    case 0x031f:
+      return "?do_get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@"
+             "@std@@@std@@MEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@"
+             "2@V32@0AEAVios_base@2@AEAHAEAJ@Z";
+    case 0x0320:
+      return "?do_get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@"
+             "@std@@@std@@MEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@"
+             "2@V32@0AEAVios_base@2@AEAHAEAK@Z";
+    case 0x0321:
+      return "?do_get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@"
+             "@std@@@std@@MEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@"
+             "2@V32@0AEAVios_base@2@AEAHAEAM@Z";
+    case 0x0322:
+      return "?do_get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@"
+             "@std@@@std@@MEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@"
+             "2@V32@0AEAVios_base@2@AEAHAEAN@Z";
+    case 0x0323:
+      return "?do_get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@"
+             "@std@@@std@@MEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@"
+             "2@V32@0AEAVios_base@2@AEAHAEAO@Z";
+    case 0x0324:
+      return "?do_get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@"
+             "@std@@@std@@MEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@"
+             "2@V32@0AEAVios_base@2@AEAHAEAPEAX@Z";
+    case 0x0325:
+      return "?do_get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@"
+             "@std@@@std@@MEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@"
+             "2@V32@0AEAVios_base@2@AEAHAEA_J@Z";
+    case 0x0326:
+      return "?do_get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@"
+             "@std@@@std@@MEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@"
+             "2@V32@0AEAVios_base@2@AEAHAEA_K@Z";
+    case 0x0327:
+      return "?do_get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@"
+             "@std@@@std@@MEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@"
+             "2@V32@0AEAVios_base@2@AEAHAEA_N@Z";
+    case 0x0328:
+      return "?do_get@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@"
+             "std@@@std@@MEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@"
+             "V32@0AEAVios_base@2@AEAHPEAUtm@@DD@Z";
+    case 0x0329:
+      return "?do_get@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@"
+             "std@@@std@@MEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@"
+             "V32@0AEAVios_base@2@AEAHPEAUtm@@DD@Z";
+    case 0x032a:
+      return "?do_get@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@"
+             "@@std@@@std@@MEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@"
+             "2@V32@0AEAVios_base@2@AEAHPEAUtm@@DD@Z";
+    case 0x032b:
+      return "?do_get_date@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@"
+             "std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@"
+             "@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
+    case 0x032c:
+      return "?do_get_date@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@"
+             "std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@"
+             "@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
+    case 0x032d:
+      return "?do_get_date@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_"
+             "W@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@"
+             "std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
+    case 0x032e:
+      return "?do_get_monthname@?$time_get@DV?$istreambuf_iterator@DU?$char_"
+             "traits@D@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@DU?$char_"
+             "traits@D@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
+    case 0x032f:
+      return "?do_get_monthname@?$time_get@GV?$istreambuf_iterator@GU?$char_"
+             "traits@G@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@GU?$char_"
+             "traits@G@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
+    case 0x0330:
+      return "?do_get_monthname@?$time_get@_WV?$istreambuf_iterator@_WU?$char_"
+             "traits@_W@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@_WU?$char_"
+             "traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
+    case 0x0331:
+      return "?do_get_time@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@"
+             "std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@"
+             "@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
+    case 0x0332:
+      return "?do_get_time@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@"
+             "std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@"
+             "@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
+    case 0x0333:
+      return "?do_get_time@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_"
+             "W@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@"
+             "std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
+    case 0x0334:
+      return "?do_get_weekday@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@"
+             "D@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@DU?$char_traits@D@"
+             "std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
+    case 0x0335:
+      return "?do_get_weekday@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@"
+             "G@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@GU?$char_traits@G@"
+             "std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
+    case 0x0336:
+      return "?do_get_weekday@?$time_get@_WV?$istreambuf_iterator@_WU?$char_"
+             "traits@_W@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@_WU?$char_"
+             "traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
+    case 0x0337:
+      return "?do_get_year@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@"
+             "std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@"
+             "@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
+    case 0x0338:
+      return "?do_get_year@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@"
+             "std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@"
+             "@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
+    case 0x0339:
+      return "?do_get_year@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_"
+             "W@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@"
+             "std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
+    case 0x033a:
+      return "?do_in@?$codecvt@DDH@std@@MEBAHAEAHPEBD1AEAPEBDPEAD3AEAPEAD@Z";
+    case 0x033b:
+      return "?do_in@?$codecvt@GDH@std@@MEBAHAEAHPEBD1AEAPEBDPEAG3AEAPEAG@Z";
+    case 0x033c:
+      return "?do_in@?$codecvt@_WDH@std@@MEBAHAEAHPEBD1AEAPEBDPEA_W3AEAPEA_W@Z";
+    case 0x033d: return "?do_is@?$ctype@G@std@@MEBAPEBGPEBG0PEAF@Z";
+    case 0x033e: return "?do_is@?$ctype@G@std@@MEBA_NFG@Z";
+    case 0x033f: return "?do_is@?$ctype@_W@std@@MEBAPEB_WPEB_W0PEAF@Z";
+    case 0x0340: return "?do_is@?$ctype@_W@std@@MEBA_NF_W@Z";
+    case 0x0341: return "?do_length@?$codecvt@DDH@std@@MEBAHAEAHPEBD1_K@Z";
+    case 0x0342: return "?do_length@?$codecvt@GDH@std@@MEBAHAEAHPEBD1_K@Z";
+    case 0x0343: return "?do_length@?$codecvt@_WDH@std@@MEBAHAEAHPEBD1_K@Z";
+    case 0x0344: return "?do_max_length@?$codecvt@GDH@std@@MEBAHXZ";
+    case 0x0345: return "?do_max_length@?$codecvt@_WDH@std@@MEBAHXZ";
+    case 0x0346: return "?do_max_length@codecvt_base@std@@MEBAHXZ";
+    case 0x0347: return "?do_narrow@?$ctype@D@std@@MEBADDD@Z";
+    case 0x0348: return "?do_narrow@?$ctype@D@std@@MEBAPEBDPEBD0DPEAD@Z";
+    case 0x0349: return "?do_narrow@?$ctype@G@std@@MEBADGD@Z";
+    case 0x034a: return "?do_narrow@?$ctype@G@std@@MEBAPEBGPEBG0DPEAD@Z";
+    case 0x034b: return "?do_narrow@?$ctype@_W@std@@MEBAD_WD@Z";
+    case 0x034c: return "?do_narrow@?$ctype@_W@std@@MEBAPEB_WPEB_W0DPEAD@Z";
+    case 0x034d:
+      return "?do_out@?$codecvt@DDH@std@@MEBAHAEAHPEBD1AEAPEBDPEAD3AEAPEAD@Z";
+    case 0x034e:
+      return "?do_out@?$codecvt@GDH@std@@MEBAHAEAHPEBG1AEAPEBGPEAD3AEAPEAD@Z";
+    case 0x034f:
+      return "?do_out@?$codecvt@_WDH@std@@MEBAHAEAHPEB_W1AEAPEB_WPEAD3AEAPEAD@Z";
+    case 0x0350:
+      return "?do_put@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@"
+             "std@@@std@@MEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@"
+             "V32@AEAVios_base@2@DJ@Z";
+    case 0x0351:
+      return "?do_put@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@"
+             "std@@@std@@MEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@"
+             "V32@AEAVios_base@2@DK@Z";
+    case 0x0352:
+      return "?do_put@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@"
+             "std@@@std@@MEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@"
+             "V32@AEAVios_base@2@DN@Z";
+    case 0x0353:
+      return "?do_put@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@"
+             "std@@@std@@MEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@"
+             "V32@AEAVios_base@2@DO@Z";
+    case 0x0354:
+      return "?do_put@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@"
+             "std@@@std@@MEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@"
+             "V32@AEAVios_base@2@DPEBX@Z";
+    case 0x0355:
+      return "?do_put@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@"
+             "std@@@std@@MEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@"
+             "V32@AEAVios_base@2@D_J@Z";
+    case 0x0356:
+      return "?do_put@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@"
+             "std@@@std@@MEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@"
+             "V32@AEAVios_base@2@D_K@Z";
+    case 0x0357:
+      return "?do_put@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@"
+             "std@@@std@@MEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@"
+             "V32@AEAVios_base@2@D_N@Z";
+    case 0x0358:
+      return "?do_put@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@"
+             "std@@@std@@MEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@"
+             "V32@AEAVios_base@2@GJ@Z";
+    case 0x0359:
+      return "?do_put@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@"
+             "std@@@std@@MEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@"
+             "V32@AEAVios_base@2@GK@Z";
+    case 0x035a:
+      return "?do_put@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@"
+             "std@@@std@@MEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@"
+             "V32@AEAVios_base@2@GN@Z";
+    case 0x035b:
+      return "?do_put@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@"
+             "std@@@std@@MEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@"
+             "V32@AEAVios_base@2@GO@Z";
+    case 0x035c:
+      return "?do_put@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@"
+             "std@@@std@@MEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@"
+             "V32@AEAVios_base@2@GPEBX@Z";
+    case 0x035d:
+      return "?do_put@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@"
+             "std@@@std@@MEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@"
+             "V32@AEAVios_base@2@G_J@Z";
+    case 0x035e:
+      return "?do_put@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@"
+             "std@@@std@@MEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@"
+             "V32@AEAVios_base@2@G_K@Z";
+    case 0x035f:
+      return "?do_put@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@"
+             "std@@@std@@MEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@"
+             "V32@AEAVios_base@2@G_N@Z";
+    case 0x0360:
+      return "?do_put@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@"
+             "@std@@@std@@MEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@"
+             "2@V32@AEAVios_base@2@_WJ@Z";
+    case 0x0361:
+      return "?do_put@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@"
+             "@std@@@std@@MEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@"
+             "2@V32@AEAVios_base@2@_WK@Z";
+    case 0x0362:
+      return "?do_put@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@"
+             "@std@@@std@@MEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@"
+             "2@V32@AEAVios_base@2@_WN@Z";
+    case 0x0363:
+      return "?do_put@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@"
+             "@std@@@std@@MEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@"
+             "2@V32@AEAVios_base@2@_WO@Z";
+    case 0x0364:
+      return "?do_put@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@"
+             "@std@@@std@@MEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@"
+             "2@V32@AEAVios_base@2@_WPEBX@Z";
+    case 0x0365:
+      return "?do_put@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@"
+             "@std@@@std@@MEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@"
+             "2@V32@AEAVios_base@2@_W_J@Z";
+    case 0x0366:
+      return "?do_put@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@"
+             "@std@@@std@@MEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@"
+             "2@V32@AEAVios_base@2@_W_K@Z";
+    case 0x0367:
+      return "?do_put@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@"
+             "@std@@@std@@MEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@"
+             "2@V32@AEAVios_base@2@_W_N@Z";
+    case 0x0368:
+      return "?do_put@?$time_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@"
+             "std@@@std@@MEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@"
+             "V32@AEAVios_base@2@DPEBUtm@@DD@Z";
+    case 0x0369:
+      return "?do_put@?$time_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@"
+             "std@@@std@@MEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@"
+             "V32@AEAVios_base@2@GPEBUtm@@DD@Z";
+    case 0x036a:
+      return "?do_put@?$time_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@"
+             "@@std@@@std@@MEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@"
+             "2@V32@AEAVios_base@2@_WPEBUtm@@DD@Z";
+    case 0x036b: return "?do_scan_is@?$ctype@G@std@@MEBAPEBGFPEBG0@Z";
+    case 0x036c: return "?do_scan_is@?$ctype@_W@std@@MEBAPEB_WFPEB_W0@Z";
+    case 0x036d: return "?do_scan_not@?$ctype@G@std@@MEBAPEBGFPEBG0@Z";
+    case 0x036e: return "?do_scan_not@?$ctype@_W@std@@MEBAPEB_WFPEB_W0@Z";
+    case 0x036f: return "?do_tolower@?$ctype@D@std@@MEBADD@Z";
+    case 0x0370: return "?do_tolower@?$ctype@D@std@@MEBAPEBDPEADPEBD@Z";
+    case 0x0371: return "?do_tolower@?$ctype@G@std@@MEBAGG@Z";
+    case 0x0372: return "?do_tolower@?$ctype@G@std@@MEBAPEBGPEAGPEBG@Z";
+    case 0x0373: return "?do_tolower@?$ctype@_W@std@@MEBAPEB_WPEA_WPEB_W@Z";
+    case 0x0374: return "?do_tolower@?$ctype@_W@std@@MEBA_W_W@Z";
+    case 0x0375: return "?do_toupper@?$ctype@D@std@@MEBADD@Z";
+    case 0x0376: return "?do_toupper@?$ctype@D@std@@MEBAPEBDPEADPEBD@Z";
+    case 0x0377: return "?do_toupper@?$ctype@G@std@@MEBAGG@Z";
+    case 0x0378: return "?do_toupper@?$ctype@G@std@@MEBAPEBGPEAGPEBG@Z";
+    case 0x0379: return "?do_toupper@?$ctype@_W@std@@MEBAPEB_WPEA_WPEB_W@Z";
+    case 0x037a: return "?do_toupper@?$ctype@_W@std@@MEBA_W_W@Z";
+    case 0x037b: return "?do_unshift@?$codecvt@DDH@std@@MEBAHAEAHPEAD1AEAPEAD@Z";
+    case 0x037c: return "?do_unshift@?$codecvt@GDH@std@@MEBAHAEAHPEAD1AEAPEAD@Z";
+    case 0x037d: return "?do_unshift@?$codecvt@_WDH@std@@MEBAHAEAHPEAD1AEAPEAD@Z";
+    case 0x037e: return "?do_widen@?$ctype@D@std@@MEBADD@Z";
+    case 0x037f: return "?do_widen@?$ctype@D@std@@MEBAPEBDPEBD0PEAD@Z";
+    case 0x0380: return "?do_widen@?$ctype@G@std@@MEBAGD@Z";
+    case 0x0381: return "?do_widen@?$ctype@G@std@@MEBAPEBDPEBD0PEAG@Z";
+    case 0x0382: return "?do_widen@?$ctype@_W@std@@MEBAPEBDPEBD0PEA_W@Z";
+    case 0x0383: return "?do_widen@?$ctype@_W@std@@MEBA_WD@Z";
+    case 0x0384: return "?done@agent@Concurrency@@IEAA_NXZ";
+    case 0x0385:
+      return "?eback@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ";
+    case 0x0386:
+      return "?eback@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEBAPEAGXZ";
+    case 0x0387:
+      return "?eback@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEBAPEA_WXZ";
+    case 0x0388:
+      return "?egptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ";
+    case 0x0389:
+      return "?egptr@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEBAPEAGXZ";
+    case 0x038a:
+      return "?egptr@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEBAPEA_WXZ";
+    case 0x038b: return "?empty@?$_Yarn@D@std@@QEBA_NXZ";
+    case 0x038c: return "?empty@locale@std@@SA?AV12@XZ";
+    case 0x038d: return "?encoding@codecvt_base@std@@QEBAHXZ";
+    case 0x038e:
+      return "?endl@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@1@AEAV21@@"
+             "Z";
+    case 0x038f:
+      return "?endl@std@@YAAEAV?$basic_ostream@GU?$char_traits@G@std@@@1@AEAV21@@"
+             "Z";
+    case 0x0390:
+      return "?endl@std@@YAAEAV?$basic_ostream@_WU?$char_traits@_W@std@@@1@AEAV21@"
+             "@Z";
+    case 0x0391:
+      return "?ends@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@1@AEAV21@@"
+             "Z";
+    case 0x0392:
+      return "?ends@std@@YAAEAV?$basic_ostream@GU?$char_traits@G@std@@@1@AEAV21@@"
+             "Z";
+    case 0x0393:
+      return "?ends@std@@YAAEAV?$basic_ostream@_WU?$char_traits@_W@std@@@1@AEAV21@"
+             "@Z";
+    case 0x0394: return "?eof@ios_base@std@@QEBA_NXZ";
+    case 0x0395:
+      return "?epptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ";
+    case 0x0396:
+      return "?epptr@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEBAPEAGXZ";
+    case 0x0397:
+      return "?epptr@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEBAPEA_WXZ";
+    case 0x0398: return "?exceptions@ios_base@std@@QEAAXH@Z";
+    case 0x0399: return "?exceptions@ios_base@std@@QEAAXI@Z";
+    case 0x039a: return "?exceptions@ios_base@std@@QEBAHXZ";
+    case 0x039b: return "?fail@ios_base@std@@QEBA_NXZ";
+    case 0x039c: return "?fill@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAADD@Z";
+    case 0x039d: return "?fill@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBADXZ";
+    case 0x039e: return "?fill@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAGG@Z";
+    case 0x039f: return "?fill@?$basic_ios@GU?$char_traits@G@std@@@std@@QEBAGXZ";
+    case 0x03a0:
+      return "?fill@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAA_W_W@Z";
+    case 0x03a1:
+      return "?fill@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEBA_WXZ";
+    case 0x03a2: return "?flags@ios_base@std@@QEAAHH@Z";
+    case 0x03a3: return "?flags@ios_base@std@@QEBAHXZ";
+    case 0x03a4:
+      return "?flush@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@XZ";
+    case 0x03a5:
+      return "?flush@?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@XZ";
+    case 0x03a6:
+      return "?flush@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@XZ";
+    case 0x03a7:
+      return "?flush@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@1@AEAV21@@"
+             "Z";
+    case 0x03a8:
+      return "?flush@std@@YAAEAV?$basic_ostream@GU?$char_traits@G@std@@@1@AEAV21@@"
+             "Z";
+    case 0x03a9:
+      return "?flush@std@@YAAEAV?$basic_ostream@_WU?$char_traits@_W@std@@@1@"
+             "AEAV21@@Z";
+    case 0x03aa:
+      return "?gbump@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXH@Z";
+    case 0x03ab:
+      return "?gbump@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAXH@Z";
+    case 0x03ac:
+      return "?gbump@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAXH@Z";
+    case 0x03ad:
+      return "?gcount@?$basic_istream@DU?$char_traits@D@std@@@std@@QEBA_JXZ";
+    case 0x03ae:
+      return "?gcount@?$basic_istream@GU?$char_traits@G@std@@@std@@QEBA_JXZ";
+    case 0x03af:
+      return "?gcount@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEBA_JXZ";
+    case 0x03b0:
+      return "?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@AEAD@Z";
+    case 0x03b1:
+      return "?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@AEAV?$"
+             "basic_streambuf@DU?$char_traits@D@std@@@2@@Z";
+    case 0x03b2:
+      return "?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@AEAV?$"
+             "basic_streambuf@DU?$char_traits@D@std@@@2@D@Z";
+    case 0x03b3:
+      return "?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@PEAD_J@"
+             "Z";
+    case 0x03b4:
+      return "?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@PEAD_"
+             "JD@Z";
+    case 0x03b5:
+      return "?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAHXZ";
+    case 0x03b6:
+      return "?get@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@AEAG@Z";
+    case 0x03b7:
+      return "?get@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@AEAV?$"
+             "basic_streambuf@GU?$char_traits@G@std@@@2@@Z";
+    case 0x03b8:
+      return "?get@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@AEAV?$"
+             "basic_streambuf@GU?$char_traits@G@std@@@2@G@Z";
+    case 0x03b9:
+      return "?get@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@PEAG_J@"
+             "Z";
+    case 0x03ba:
+      return "?get@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@PEAG_"
+             "JG@Z";
+    case 0x03bb:
+      return "?get@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAGXZ";
+    case 0x03bc:
+      return "?get@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@AEAV?"
+             "$basic_streambuf@_WU?$char_traits@_W@std@@@2@@Z";
+    case 0x03bd:
+      return "?get@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@AEAV?"
+             "$basic_streambuf@_WU?$char_traits@_W@std@@@2@_W@Z";
+    case 0x03be:
+      return "?get@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@AEA_"
+             "W@Z";
+    case 0x03bf:
+      return "?get@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@PEA_"
+             "W_J@Z";
+    case 0x03c0:
+      return "?get@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@PEA_"
+             "W_J_W@Z";
+    case 0x03c1:
+      return "?get@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAGXZ";
+    case 0x03c2:
+      return "?get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@"
+             "@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@"
+             "0AEAVios_base@2@AEAHAEAG@Z";
+    case 0x03c3:
+      return "?get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@"
+             "@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@"
+             "0AEAVios_base@2@AEAHAEAI@Z";
+    case 0x03c4:
+      return "?get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@"
+             "@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@"
+             "0AEAVios_base@2@AEAHAEAJ@Z";
+    case 0x03c5:
+      return "?get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@"
+             "@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@"
+             "0AEAVios_base@2@AEAHAEAK@Z";
+    case 0x03c6:
+      return "?get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@"
+             "@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@"
+             "0AEAVios_base@2@AEAHAEAM@Z";
+    case 0x03c7:
+      return "?get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@"
+             "@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@"
+             "0AEAVios_base@2@AEAHAEAN@Z";
+    case 0x03c8:
+      return "?get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@"
+             "@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@"
+             "0AEAVios_base@2@AEAHAEAO@Z";
+    case 0x03c9:
+      return "?get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@"
+             "@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@"
+             "0AEAVios_base@2@AEAHAEAPEAX@Z";
+    case 0x03ca:
+      return "?get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@"
+             "@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@"
+             "0AEAVios_base@2@AEAHAEA_J@Z";
+    case 0x03cb:
+      return "?get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@"
+             "@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@"
+             "0AEAVios_base@2@AEAHAEA_K@Z";
+    case 0x03cc:
+      return "?get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@"
+             "@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@"
+             "0AEAVios_base@2@AEAHAEA_N@Z";
+    case 0x03cd:
+      return "?get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@"
+             "@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@"
+             "0AEAVios_base@2@AEAHAEAG@Z";
+    case 0x03ce:
+      return "?get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@"
+             "@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@"
+             "0AEAVios_base@2@AEAHAEAI@Z";
+    case 0x03cf:
+      return "?get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@"
+             "@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@"
+             "0AEAVios_base@2@AEAHAEAJ@Z";
+    case 0x03d0:
+      return "?get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@"
+             "@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@"
+             "0AEAVios_base@2@AEAHAEAK@Z";
+    case 0x03d1:
+      return "?get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@"
+             "@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@"
+             "0AEAVios_base@2@AEAHAEAM@Z";
+    case 0x03d2:
+      return "?get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@"
+             "@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@"
+             "0AEAVios_base@2@AEAHAEAN@Z";
+    case 0x03d3:
+      return "?get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@"
+             "@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@"
+             "0AEAVios_base@2@AEAHAEAO@Z";
+    case 0x03d4:
+      return "?get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@"
+             "@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@"
+             "0AEAVios_base@2@AEAHAEAPEAX@Z";
+    case 0x03d5:
+      return "?get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@"
+             "@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@"
+             "0AEAVios_base@2@AEAHAEA_J@Z";
+    case 0x03d6:
+      return "?get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@"
+             "@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@"
+             "0AEAVios_base@2@AEAHAEA_K@Z";
+    case 0x03d7:
+      return "?get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@"
+             "@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@"
+             "0AEAVios_base@2@AEAHAEA_N@Z";
+    case 0x03d8:
+      return "?get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@"
+             "std@@@std@@QEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@"
+             "V32@0AEAVios_base@2@AEAHAEAG@Z";
+    case 0x03d9:
+      return "?get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@"
+             "std@@@std@@QEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@"
+             "V32@0AEAVios_base@2@AEAHAEAI@Z";
+    case 0x03da:
+      return "?get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@"
+             "std@@@std@@QEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@"
+             "V32@0AEAVios_base@2@AEAHAEAJ@Z";
+    case 0x03db:
+      return "?get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@"
+             "std@@@std@@QEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@"
+             "V32@0AEAVios_base@2@AEAHAEAK@Z";
+    case 0x03dc:
+      return "?get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@"
+             "std@@@std@@QEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@"
+             "V32@0AEAVios_base@2@AEAHAEAM@Z";
+    case 0x03dd:
+      return "?get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@"
+             "std@@@std@@QEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@"
+             "V32@0AEAVios_base@2@AEAHAEAN@Z";
+    case 0x03de:
+      return "?get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@"
+             "std@@@std@@QEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@"
+             "V32@0AEAVios_base@2@AEAHAEAO@Z";
+    case 0x03df:
+      return "?get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@"
+             "std@@@std@@QEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@"
+             "V32@0AEAVios_base@2@AEAHAEAPEAX@Z";
+    case 0x03e0:
+      return "?get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@"
+             "std@@@std@@QEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@"
+             "V32@0AEAVios_base@2@AEAHAEA_J@Z";
+    case 0x03e1:
+      return "?get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@"
+             "std@@@std@@QEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@"
+             "V32@0AEAVios_base@2@AEAHAEA_K@Z";
+    case 0x03e2:
+      return "?get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@"
+             "std@@@std@@QEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@"
+             "V32@0AEAVios_base@2@AEAHAEA_N@Z";
+    case 0x03e3:
+      return "?get@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@"
+             "@@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@"
+             "0AEAVios_base@2@AEAHPEAUtm@@DD@Z";
+    case 0x03e4:
+      return "?get@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@"
+             "@@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@"
+             "0AEAVios_base@2@AEAHPEAUtm@@PEBD4@Z";
+    case 0x03e5:
+      return "?get@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@"
+             "@@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@"
+             "0AEAVios_base@2@AEAHPEAUtm@@DD@Z";
+    case 0x03e6:
+      return "?get@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@"
+             "@@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@"
+             "0AEAVios_base@2@AEAHPEAUtm@@PEBG4@Z";
+    case 0x03e7:
+      return "?get@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@"
+             "std@@@std@@QEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@"
+             "V32@0AEAVios_base@2@AEAHPEAUtm@@DD@Z";
+    case 0x03e8:
+      return "?get@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@"
+             "std@@@std@@QEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@"
+             "V32@0AEAVios_base@2@AEAHPEAUtm@@PEB_W4@Z";
+    case 0x03e9:
+      return "?get_date@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@"
+             "@std@@@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@"
+             "V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
+    case 0x03ea:
+      return "?get_date@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@"
+             "@std@@@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@"
+             "V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
+    case 0x03eb:
+      return "?get_date@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@"
+             "std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@"
+             "std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
+    case 0x03ec:
+      return "?get_monthname@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@"
+             "std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@"
+             "@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
+    case 0x03ed:
+      return "?get_monthname@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@"
+             "std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@"
+             "@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
+    case 0x03ee:
+      return "?get_monthname@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@"
+             "_W@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@_WU?$char_traits@_"
+             "W@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
+    case 0x03ef: return "?get_new_handler@std@@YAP6AXXZXZ";
+    case 0x03f0:
+      return "?get_time@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@"
+             "@std@@@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@"
+             "V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
+    case 0x03f1:
+      return "?get_time@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@"
+             "@std@@@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@"
+             "V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
+    case 0x03f2:
+      return "?get_time@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@"
+             "std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@"
+             "std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
+    case 0x03f3:
+      return "?get_weekday@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@"
+             "std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@"
+             "@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
+    case 0x03f4:
+      return "?get_weekday@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@"
+             "std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@"
+             "@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
+    case 0x03f5:
+      return "?get_weekday@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_"
+             "W@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@"
+             "std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
+    case 0x03f6:
+      return "?get_year@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@"
+             "@std@@@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@"
+             "V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
+    case 0x03f7:
+      return "?get_year@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@"
+             "@std@@@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@"
+             "V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
+    case 0x03f8:
+      return "?get_year@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@"
+             "std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@"
+             "std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
+    case 0x03f9:
+      return "?getline@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@"
+             "PEAD_J@Z";
+    case 0x03fa:
+      return "?getline@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@"
+             "PEAD_JD@Z";
+    case 0x03fb:
+      return "?getline@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@"
+             "PEAG_J@Z";
+    case 0x03fc:
+      return "?getline@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@"
+             "PEAG_JG@Z";
+    case 0x03fd:
+      return "?getline@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@"
+             "PEA_W_J@Z";
+    case 0x03fe:
+      return "?getline@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@"
+             "PEA_W_J_W@Z";
+    case 0x03ff:
+      return "?getloc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEBA?"
+             "AVlocale@2@XZ";
+    case 0x0400:
+      return "?getloc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEBA?"
+             "AVlocale@2@XZ";
+    case 0x0401:
+      return "?getloc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEBA?"
+             "AVlocale@2@XZ";
+    case 0x0402: return "?getloc@ios_base@std@@QEBA?AVlocale@2@XZ";
+    case 0x0403: return "?global@locale@std@@SA?AV12@AEBV12@@Z";
+    case 0x0404: return "?good@ios_base@std@@QEBA_NXZ";
+    case 0x0405:
+      return "?gptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ";
+    case 0x0406:
+      return "?gptr@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEBAPEAGXZ";
+    case 0x0407:
+      return "?gptr@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEBAPEA_WXZ";
+    case 0x0408: return "?id@?$codecvt@DDH@std@@2V0locale@2@A";
+    case 0x0409: return "?id@?$codecvt@GDH@std@@2V0locale@2@A";
+    case 0x040a: return "?id@?$codecvt@_WDH@std@@2V0locale@2@A";
+    case 0x040b: return "?id@?$collate@D@std@@2V0locale@2@A";
+    case 0x040c: return "?id@?$collate@G@std@@2V0locale@2@A";
+    case 0x040d: return "?id@?$collate@_W@std@@2V0locale@2@A";
+    case 0x040e: return "?id@?$ctype@D@std@@2V0locale@2@A";
+    case 0x040f: return "?id@?$ctype@G@std@@2V0locale@2@A";
+    case 0x0410: return "?id@?$ctype@_W@std@@2V0locale@2@A";
+    case 0x0411: return "?id@?$messages@D@std@@2V0locale@2@A";
+    case 0x0412: return "?id@?$messages@G@std@@2V0locale@2@A";
+    case 0x0413: return "?id@?$messages@_W@std@@2V0locale@2@A";
+    case 0x0414:
+      return "?id@?$money_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@"
+             "@@std@@2V0locale@2@A";
+    case 0x0415:
+      return "?id@?$money_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@"
+             "@@std@@2V0locale@2@A";
+    case 0x0416:
+      return "?id@?$money_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@"
+             "std@@@std@@2V0locale@2@A";
+    case 0x0417:
+      return "?id@?$money_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@"
+             "@@std@@2V0locale@2@A";
+    case 0x0418:
+      return "?id@?$money_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@"
+             "@@std@@2V0locale@2@A";
+    case 0x0419:
+      return "?id@?$money_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@"
+             "std@@@std@@2V0locale@2@A";
+    case 0x041a: return "?id@?$moneypunct@D$00@std@@2V0locale@2@A";
+    case 0x041b: return "?id@?$moneypunct@D$0A@@std@@2V0locale@2@A";
+    case 0x041c: return "?id@?$moneypunct@G$00@std@@2V0locale@2@A";
+    case 0x041d: return "?id@?$moneypunct@G$0A@@std@@2V0locale@2@A";
+    case 0x041e: return "?id@?$moneypunct@_W$00@std@@2V0locale@2@A";
+    case 0x041f: return "?id@?$moneypunct@_W$0A@@std@@2V0locale@2@A";
+    case 0x0420:
+      return "?id@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@"
+             "std@@2V0locale@2@A";
+    case 0x0421:
+      return "?id@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@"
+             "std@@2V0locale@2@A";
+    case 0x0422:
+      return "?id@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@"
+             "std@@@std@@2V0locale@2@A";
+    case 0x0423:
+      return "?id@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@"
+             "std@@2V0locale@2@A";
+    case 0x0424:
+      return "?id@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@"
+             "std@@2V0locale@2@A";
+    case 0x0425:
+      return "?id@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@"
+             "std@@@std@@2V0locale@2@A";
+    case 0x0426: return "?id@?$numpunct@D@std@@2V0locale@2@A";
+    case 0x0427: return "?id@?$numpunct@G@std@@2V0locale@2@A";
+    case 0x0428: return "?id@?$numpunct@_W@std@@2V0locale@2@A";
+    case 0x0429:
+      return "?id@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@"
+             "@std@@2V0locale@2@A";
+    case 0x042a:
+      return "?id@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@"
+             "@std@@2V0locale@2@A";
+    case 0x042b:
+      return "?id@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@"
+             "std@@@std@@2V0locale@2@A";
+    case 0x042c:
+      return "?id@?$time_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@"
+             "@std@@2V0locale@2@A";
+    case 0x042d:
+      return "?id@?$time_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@"
+             "@std@@2V0locale@2@A";
+    case 0x042e:
+      return "?id@?$time_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@"
+             "std@@@std@@2V0locale@2@A";
+    case 0x042f:
+      return "?ignore@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@_JH@"
+             "Z";
+    case 0x0430:
+      return "?ignore@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@_JG@"
+             "Z";
+    case 0x0431:
+      return "?ignore@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@_"
+             "JG@Z";
+    case 0x0432:
+      return "?imbue@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAA?AVlocale@2@"
+             "AEBV32@@Z";
+    case 0x0433:
+      return "?imbue@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAA?AVlocale@2@"
+             "AEBV32@@Z";
+    case 0x0434:
+      return "?imbue@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAA?AVlocale@2@"
+             "AEBV32@@Z";
+    case 0x0435:
+      return "?imbue@?$basic_streambuf@DU?$char_traits@D@std@@@std@@"
+             "MEAAXAEBVlocale@2@@Z";
+    case 0x0436:
+      return "?imbue@?$basic_streambuf@GU?$char_traits@G@std@@@std@@"
+             "MEAAXAEBVlocale@2@@Z";
+    case 0x0437:
+      return "?imbue@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@"
+             "MEAAXAEBVlocale@2@@Z";
+    case 0x0438: return "?imbue@ios_base@std@@QEAA?AVlocale@2@AEBV32@@Z";
+    case 0x0439:
+      return "?in@?$codecvt@DDH@std@@QEBAHAEAHPEBD1AEAPEBDPEAD3AEAPEAD@Z";
+    case 0x043a:
+      return "?in@?$codecvt@GDH@std@@QEBAHAEAHPEBD1AEAPEBDPEAG3AEAPEAG@Z";
+    case 0x043b:
+      return "?in@?$codecvt@_WDH@std@@QEBAHAEAHPEBD1AEAPEBDPEA_W3AEAPEA_W@Z";
+    case 0x043c:
+      return "?in_avail@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA_JXZ";
+    case 0x043d:
+      return "?in_avail@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA_JXZ";
+    case 0x043e:
+      return "?in_avail@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAA_JXZ";
+    case 0x043f:
+      return "?init@?$basic_ios@DU?$char_traits@D@std@@@std@@IEAAXPEAV?$basic_"
+             "streambuf@DU?$char_traits@D@std@@@2@_N@Z";
+    case 0x0440:
+      return "?init@?$basic_ios@GU?$char_traits@G@std@@@std@@IEAAXPEAV?$basic_"
+             "streambuf@GU?$char_traits@G@std@@@2@_N@Z";
+    case 0x0441:
+      return "?init@?$basic_ios@_WU?$char_traits@_W@std@@@std@@IEAAXPEAV?$basic_"
+             "streambuf@_WU?$char_traits@_W@std@@@2@_N@Z";
+    case 0x0442: return "?intl@?$moneypunct@D$00@std@@2_NB";
+    case 0x0443: return "?intl@?$moneypunct@D$0A@@std@@2_NB";
+    case 0x0444: return "?intl@?$moneypunct@G$00@std@@2_NB";
+    case 0x0445: return "?intl@?$moneypunct@G$0A@@std@@2_NB";
+    case 0x0446: return "?intl@?$moneypunct@_W$00@std@@2_NB";
+    case 0x0447: return "?intl@?$moneypunct@_W$0A@@std@@2_NB";
+    case 0x0448:
+      return "?ipfx@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAA_N_N@Z";
+    case 0x0449:
+      return "?ipfx@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAA_N_N@Z";
+    case 0x044a:
+      return "?ipfx@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAA_N_N@Z";
+    case 0x044b: return "?is@?$ctype@D@std@@QEBAPEBDPEBD0PEAF@Z";
+    case 0x044c: return "?is@?$ctype@D@std@@QEBA_NFD@Z";
+    case 0x044d: return "?is@?$ctype@G@std@@QEBAPEBGPEBG0PEAF@Z";
+    case 0x044e: return "?is@?$ctype@G@std@@QEBA_NFG@Z";
+    case 0x044f: return "?is@?$ctype@_W@std@@QEBAPEB_WPEB_W0PEAF@Z";
+    case 0x0450: return "?is@?$ctype@_W@std@@QEBA_NF_W@Z";
+    case 0x0451: return "?is_current_task_group_canceling@Concurrency@@YA_NXZ";
+    case 0x0452: return "?is_task_cancellation_requested@Concurrency@@YA_NXZ";
+    case 0x0453:
+      return "?isfx@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAXXZ";
+    case 0x0454:
+      return "?isfx@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAXXZ";
+    case 0x0455:
+      return "?isfx@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAXXZ";
+    case 0x0456: return "?iword@ios_base@std@@QEAAAEAJH@Z";
+    case 0x0457: return "?length@?$codecvt@DDH@std@@QEBAHAEAHPEBD1_K@Z";
+    case 0x0458: return "?length@?$codecvt@GDH@std@@QEBAHAEAHPEBD1_K@Z";
+    case 0x0459: return "?length@?$codecvt@_WDH@std@@QEBAHAEAHPEBD1_K@Z";
+    case 0x045a: return "?max_length@codecvt_base@std@@QEBAHXZ";
+    case 0x045b:
+      return "?move@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAX$$QEAV12@@Z";
+    case 0x045c:
+      return "?move@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAXAEAV12@@Z";
+    case 0x045d:
+      return "?move@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAX$$QEAV12@@Z";
+    case 0x045e:
+      return "?move@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAXAEAV12@@Z";
+    case 0x045f:
+      return "?move@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAX$$QEAV12@@Z";
+    case 0x0460:
+      return "?move@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAXAEAV12@@Z";
+    case 0x0461:
+      return "?narrow@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBADDD@Z";
+    case 0x0462:
+      return "?narrow@?$basic_ios@GU?$char_traits@G@std@@@std@@QEBADGD@Z";
+    case 0x0463:
+      return "?narrow@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEBAD_WD@Z";
+    case 0x0464: return "?narrow@?$ctype@D@std@@QEBADDD@Z";
+    case 0x0465: return "?narrow@?$ctype@D@std@@QEBAPEBDPEBD0DPEAD@Z";
+    case 0x0466: return "?narrow@?$ctype@G@std@@QEBADGD@Z";
+    case 0x0467: return "?narrow@?$ctype@G@std@@QEBAPEBGPEBG0DPEAD@Z";
+    case 0x0468: return "?narrow@?$ctype@_W@std@@QEBAD_WD@Z";
+    case 0x0469: return "?narrow@?$ctype@_W@std@@QEBAPEB_WPEB_W0DPEAD@Z";
+    case 0x046a:
+      return "?opfx@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA_NXZ";
+    case 0x046b:
+      return "?opfx@?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAA_NXZ";
+    case 0x046c:
+      return "?opfx@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAA_NXZ";
+    case 0x046d:
+      return "?osfx@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAXXZ";
+    case 0x046e:
+      return "?osfx@?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAXXZ";
+    case 0x046f:
+      return "?osfx@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAXXZ";
+    case 0x0470:
+      return "?out@?$codecvt@DDH@std@@QEBAHAEAHPEBD1AEAPEBDPEAD3AEAPEAD@Z";
+    case 0x0471:
+      return "?out@?$codecvt@GDH@std@@QEBAHAEAHPEBG1AEAPEBGPEAD3AEAPEAD@Z";
+    case 0x0472:
+      return "?out@?$codecvt@_WDH@std@@QEBAHAEAHPEB_W1AEAPEB_WPEAD3AEAPEAD@Z";
+    case 0x0473:
+      return "?overflow@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAAHH@Z";
+    case 0x0474:
+      return "?overflow@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAAGG@Z";
+    case 0x0475:
+      return "?overflow@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAAGG@Z";
+    case 0x0476:
+      return "?pbackfail@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAAHH@Z";
+    case 0x0477:
+      return "?pbackfail@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAAGG@Z";
+    case 0x0478:
+      return "?pbackfail@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAAGG@"
+             "Z";
+    case 0x0479:
+      return "?pbase@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ";
+    case 0x047a:
+      return "?pbase@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEBAPEAGXZ";
+    case 0x047b:
+      return "?pbase@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEBAPEA_WXZ";
+    case 0x047c:
+      return "?pbump@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXH@Z";
+    case 0x047d:
+      return "?pbump@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAXH@Z";
+    case 0x047e:
+      return "?pbump@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAXH@Z";
+    case 0x047f:
+      return "?peek@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAHXZ";
+    case 0x0480:
+      return "?peek@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAGXZ";
+    case 0x0481:
+      return "?peek@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAGXZ";
+    case 0x0482:
+      return "?pptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ";
+    case 0x0483:
+      return "?pptr@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEBAPEAGXZ";
+    case 0x0484:
+      return "?pptr@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEBAPEA_WXZ";
+    case 0x0485: return "?precision@ios_base@std@@QEAA_J_J@Z";
+    case 0x0486: return "?precision@ios_base@std@@QEBA_JXZ";
+    case 0x0487:
+      return "?pubimbue@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA?"
+             "AVlocale@2@AEBV32@@Z";
+    case 0x0488:
+      return "?pubimbue@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA?"
+             "AVlocale@2@AEBV32@@Z";
+    case 0x0489:
+      return "?pubimbue@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAA?"
+             "AVlocale@2@AEBV32@@Z";
+    case 0x048a:
+      return "?pubseekoff@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA?AV?$"
+             "fpos@H@2@_JHH@Z";
+    case 0x048b:
+      return "?pubseekoff@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA?AV?$"
+             "fpos@H@2@_JII@Z";
+    case 0x048c:
+      return "?pubseekoff@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA?AV?$"
+             "fpos@H@2@_JHH@Z";
+    case 0x048d:
+      return "?pubseekoff@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA?AV?$"
+             "fpos@H@2@_JII@Z";
+    case 0x048e:
+      return "?pubseekoff@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAA?"
+             "AV?$fpos@H@2@_JHH@Z";
+    case 0x048f:
+      return "?pubseekoff@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAA?"
+             "AV?$fpos@H@2@_JII@Z";
+    case 0x0490:
+      return "?pubseekpos@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA?AV?$"
+             "fpos@H@2@V32@H@Z";
+    case 0x0491:
+      return "?pubseekpos@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA?AV?$"
+             "fpos@H@2@V32@I@Z";
+    case 0x0492:
+      return "?pubseekpos@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA?AV?$"
+             "fpos@H@2@V32@H@Z";
+    case 0x0493:
+      return "?pubseekpos@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA?AV?$"
+             "fpos@H@2@V32@I@Z";
+    case 0x0494:
+      return "?pubseekpos@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAA?"
+             "AV?$fpos@H@2@V32@H@Z";
+    case 0x0495:
+      return "?pubseekpos@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAA?"
+             "AV?$fpos@H@2@V32@I@Z";
+    case 0x0496:
+      return "?pubsetbuf@?$basic_streambuf@DU?$char_traits@D@std@@@std@@"
+             "QEAAPEAV12@PEAD_J@Z";
+    case 0x0497:
+      return "?pubsetbuf@?$basic_streambuf@GU?$char_traits@G@std@@@std@@"
+             "QEAAPEAV12@PEAG_J@Z";
+    case 0x0498:
+      return "?pubsetbuf@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@"
+             "QEAAPEAV12@PEA_W_J@Z";
+    case 0x0499:
+      return "?pubsync@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHXZ";
+    case 0x049a:
+      return "?pubsync@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAHXZ";
+    case 0x049b:
+      return "?pubsync@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAHXZ";
+    case 0x049c:
+      return "?put@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@D@Z";
+    case 0x049d:
+      return "?put@?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@G@Z";
+    case 0x049e:
+      return "?put@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@_W@Z";
+    case 0x049f:
+      return "?put@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@"
+             "@std@@QEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@V32@"
+             "AEAVios_base@2@DJ@Z";
+    case 0x04a0:
+      return "?put@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@"
+             "@std@@QEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@V32@"
+             "AEAVios_base@2@DK@Z";
+    case 0x04a1:
+      return "?put@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@"
+             "@std@@QEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@V32@"
+             "AEAVios_base@2@DN@Z";
+    case 0x04a2:
+      return "?put@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@"
+             "@std@@QEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@V32@"
+             "AEAVios_base@2@DO@Z";
+    case 0x04a3:
+      return "?put@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@"
+             "@std@@QEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@V32@"
+             "AEAVios_base@2@DPEBX@Z";
+    case 0x04a4:
+      return "?put@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@"
+             "@std@@QEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@V32@"
+             "AEAVios_base@2@D_J@Z";
+    case 0x04a5:
+      return "?put@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@"
+             "@std@@QEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@V32@"
+             "AEAVios_base@2@D_K@Z";
+    case 0x04a6:
+      return "?put@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@"
+             "@std@@QEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@V32@"
+             "AEAVios_base@2@D_N@Z";
+    case 0x04a7:
+      return "?put@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@"
+             "@std@@QEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@V32@"
+             "AEAVios_base@2@GJ@Z";
+    case 0x04a8:
+      return "?put@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@"
+             "@std@@QEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@V32@"
+             "AEAVios_base@2@GK@Z";
+    case 0x04a9:
+      return "?put@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@"
+             "@std@@QEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@V32@"
+             "AEAVios_base@2@GN@Z";
+    case 0x04aa:
+      return "?put@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@"
+             "@std@@QEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@V32@"
+             "AEAVios_base@2@GO@Z";
+    case 0x04ab:
+      return "?put@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@"
+             "@std@@QEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@V32@"
+             "AEAVios_base@2@GPEBX@Z";
+    case 0x04ac:
+      return "?put@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@"
+             "@std@@QEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@V32@"
+             "AEAVios_base@2@G_J@Z";
+    case 0x04ad:
+      return "?put@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@"
+             "@std@@QEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@V32@"
+             "AEAVios_base@2@G_K@Z";
+    case 0x04ae:
+      return "?put@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@"
+             "@std@@QEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@V32@"
+             "AEAVios_base@2@G_N@Z";
+    case 0x04af:
+      return "?put@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@"
+             "std@@@std@@QEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@2@"
+             "V32@AEAVios_base@2@_WJ@Z";
+    case 0x04b0:
+      return "?put@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@"
+             "std@@@std@@QEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@2@"
+             "V32@AEAVios_base@2@_WK@Z";
+    case 0x04b1:
+      return "?put@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@"
+             "std@@@std@@QEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@2@"
+             "V32@AEAVios_base@2@_WN@Z";
+    case 0x04b2:
+      return "?put@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@"
+             "std@@@std@@QEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@2@"
+             "V32@AEAVios_base@2@_WO@Z";
+    case 0x04b3:
+      return "?put@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@"
+             "std@@@std@@QEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@2@"
+             "V32@AEAVios_base@2@_WPEBX@Z";
+    case 0x04b4:
+      return "?put@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@"
+             "std@@@std@@QEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@2@"
+             "V32@AEAVios_base@2@_W_J@Z";
+    case 0x04b5:
+      return "?put@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@"
+             "std@@@std@@QEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@2@"
+             "V32@AEAVios_base@2@_W_K@Z";
+    case 0x04b6:
+      return "?put@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@"
+             "std@@@std@@QEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@2@"
+             "V32@AEAVios_base@2@_W_N@Z";
+    case 0x04b7:
+      return "?put@?$time_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@"
+             "@@std@@QEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@V32@"
+             "AEAVios_base@2@DPEBUtm@@DD@Z";
+    case 0x04b8:
+      return "?put@?$time_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@"
+             "@@std@@QEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@V32@"
+             "AEAVios_base@2@DPEBUtm@@PEBD3@Z";
+    case 0x04b9:
+      return "?put@?$time_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@"
+             "@@std@@QEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@V32@"
+             "AEAVios_base@2@GPEBUtm@@DD@Z";
+    case 0x04ba:
+      return "?put@?$time_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@"
+             "@@std@@QEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@V32@"
+             "AEAVios_base@2@GPEBUtm@@PEBG3@Z";
+    case 0x04bb:
+      return "?put@?$time_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@"
+             "std@@@std@@QEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@2@"
+             "V32@AEAVios_base@2@_WPEBUtm@@DD@Z";
+    case 0x04bc:
+      return "?put@?$time_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@"
+             "std@@@std@@QEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@2@"
+             "V32@AEAVios_base@2@_WPEBUtm@@PEB_W4@Z";
+    case 0x04bd:
+      return "?putback@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@D@"
+             "Z";
+    case 0x04be:
+      return "?putback@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@G@"
+             "Z";
+    case 0x04bf:
+      return "?putback@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@_"
+             "W@Z";
+    case 0x04c0: return "?pword@ios_base@std@@QEAAAEAPEAXH@Z";
+    case 0x04c1:
+      return "?rdbuf@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAPEAV?$basic_"
+             "streambuf@DU?$char_traits@D@std@@@2@PEAV32@@Z";
+    case 0x04c2:
+      return "?rdbuf@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBAPEAV?$basic_"
+             "streambuf@DU?$char_traits@D@std@@@2@XZ";
+    case 0x04c3:
+      return "?rdbuf@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAPEAV?$basic_"
+             "streambuf@GU?$char_traits@G@std@@@2@PEAV32@@Z";
+    case 0x04c4:
+      return "?rdbuf@?$basic_ios@GU?$char_traits@G@std@@@std@@QEBAPEAV?$basic_"
+             "streambuf@GU?$char_traits@G@std@@@2@XZ";
+    case 0x04c5:
+      return "?rdbuf@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAPEAV?$basic_"
+             "streambuf@_WU?$char_traits@_W@std@@@2@PEAV32@@Z";
+    case 0x04c6:
+      return "?rdbuf@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEBAPEAV?$basic_"
+             "streambuf@_WU?$char_traits@_W@std@@@2@XZ";
+    case 0x04c7: return "?rdstate@ios_base@std@@QEBAHXZ";
+    case 0x04c8:
+      return "?read@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@PEAD_"
+             "J@Z";
+    case 0x04c9:
+      return "?read@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@PEAG_"
+             "J@Z";
+    case 0x04ca:
+      return "?read@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@PEA_"
+             "W_J@Z";
+    case 0x04cb:
+      return "?readsome@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAA_JPEAD_J@"
+             "Z";
+    case 0x04cc:
+      return "?readsome@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAA_JPEAG_J@"
+             "Z";
+    case 0x04cd:
+      return "?readsome@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAA_JPEA_"
+             "W_J@Z";
+    case 0x04ce:
+      return "?register_callback@ios_base@std@@QEAAXP6AXW4event@12@AEAV12@H@ZH@Z";
+    case 0x04cf: return "?resetiosflags@std@@YA?AU?$_Smanip@H@1@H@Z";
+    case 0x04d0:
+      return "?sbumpc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHXZ";
+    case 0x04d1:
+      return "?sbumpc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAGXZ";
+    case 0x04d2:
+      return "?sbumpc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAGXZ";
+    case 0x04d3: return "?scan_is@?$ctype@D@std@@QEBAPEBDFPEBD0@Z";
+    case 0x04d4: return "?scan_is@?$ctype@G@std@@QEBAPEBGFPEBG0@Z";
+    case 0x04d5: return "?scan_is@?$ctype@_W@std@@QEBAPEB_WFPEB_W0@Z";
+    case 0x04d6: return "?scan_not@?$ctype@D@std@@QEBAPEBDFPEBD0@Z";
+    case 0x04d7: return "?scan_not@?$ctype@G@std@@QEBAPEBGFPEBG0@Z";
+    case 0x04d8: return "?scan_not@?$ctype@_W@std@@QEBAPEB_WFPEB_W0@Z";
+    case 0x04d9:
+      return "?seekg@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@V?$"
+             "fpos@H@2@@Z";
+    case 0x04da:
+      return "?seekg@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@_JH@"
+             "Z";
+    case 0x04db:
+      return "?seekg@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@V?$"
+             "fpos@H@2@@Z";
+    case 0x04dc:
+      return "?seekg@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@_JH@"
+             "Z";
+    case 0x04dd:
+      return "?seekg@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@V?$"
+             "fpos@H@2@@Z";
+    case 0x04de:
+      return "?seekg@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@_"
+             "JH@Z";
+    case 0x04df:
+      return "?seekoff@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAA?AV?$"
+             "fpos@H@2@_JHH@Z";
+    case 0x04e0:
+      return "?seekoff@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAA?AV?$"
+             "fpos@H@2@_JHH@Z";
+    case 0x04e1:
+      return "?seekoff@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAA?AV?$"
+             "fpos@H@2@_JHH@Z";
+    case 0x04e2:
+      return "?seekp@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@V?$"
+             "fpos@H@2@@Z";
+    case 0x04e3:
+      return "?seekp@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@_JH@"
+             "Z";
+    case 0x04e4:
+      return "?seekp@?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@V?$"
+             "fpos@H@2@@Z";
+    case 0x04e5:
+      return "?seekp@?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@_JH@"
+             "Z";
+    case 0x04e6:
+      return "?seekp@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@V?$"
+             "fpos@H@2@@Z";
+    case 0x04e7:
+      return "?seekp@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@_"
+             "JH@Z";
+    case 0x04e8:
+      return "?seekpos@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAA?AV?$"
+             "fpos@H@2@V32@H@Z";
+    case 0x04e9:
+      return "?seekpos@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAA?AV?$"
+             "fpos@H@2@V32@H@Z";
+    case 0x04ea:
+      return "?seekpos@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAA?AV?$"
+             "fpos@H@2@V32@H@Z";
+    case 0x04eb: return "?set_new_handler@std@@YAP6AXXZP6AXXZ@Z";
+    case 0x04ec:
+      return "?set_rdbuf@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAXPEAV?$"
+             "basic_streambuf@DU?$char_traits@D@std@@@2@@Z";
+    case 0x04ed:
+      return "?set_rdbuf@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAXPEAV?$"
+             "basic_streambuf@GU?$char_traits@G@std@@@2@@Z";
+    case 0x04ee:
+      return "?set_rdbuf@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAXPEAV?$"
+             "basic_streambuf@_WU?$char_traits@_W@std@@@2@@Z";
+    case 0x04ef: return "?setbase@std@@YA?AU?$_Smanip@H@1@H@Z";
+    case 0x04f0:
+      return "?setbuf@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAAPEAV12@"
+             "PEAD_J@Z";
+    case 0x04f1:
+      return "?setbuf@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAAPEAV12@"
+             "PEAG_J@Z";
+    case 0x04f2:
+      return "?setbuf@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAAPEAV12@"
+             "PEA_W_J@Z";
+    case 0x04f3: return "?setf@ios_base@std@@QEAAHH@Z";
+    case 0x04f4: return "?setf@ios_base@std@@QEAAHHH@Z";
+    case 0x04f5:
+      return "?setg@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXPEAD00@Z";
+    case 0x04f6:
+      return "?setg@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAXPEAG00@Z";
+    case 0x04f7:
+      return "?setg@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAXPEA_W00@"
+             "Z";
+    case 0x04f8: return "?setiosflags@std@@YA?AU?$_Smanip@H@1@H@Z";
+    case 0x04f9:
+      return "?setp@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXPEAD00@Z";
+    case 0x04fa:
+      return "?setp@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXPEAD0@Z";
+    case 0x04fb:
+      return "?setp@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAXPEAG00@Z";
+    case 0x04fc:
+      return "?setp@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAXPEAG0@Z";
+    case 0x04fd:
+      return "?setp@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAXPEA_W00@"
+             "Z";
+    case 0x04fe:
+      return "?setp@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAXPEA_W0@"
+             "Z";
+    case 0x04ff: return "?setprecision@std@@YA?AU?$_Smanip@_J@1@_J@Z";
+    case 0x0500:
+      return "?setstate@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAXH_N@Z";
+    case 0x0501:
+      return "?setstate@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAXI@Z";
+    case 0x0502:
+      return "?setstate@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAXH_N@Z";
+    case 0x0503:
+      return "?setstate@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAXI@Z";
+    case 0x0504:
+      return "?setstate@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAXH_N@Z";
+    case 0x0505:
+      return "?setstate@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAXI@Z";
+    case 0x0506: return "?setstate@ios_base@std@@QEAAXH@Z";
+    case 0x0507: return "?setstate@ios_base@std@@QEAAXH_N@Z";
+    case 0x0508: return "?setstate@ios_base@std@@QEAAXI@Z";
+    case 0x0509: return "?setw@std@@YA?AU?$_Smanip@_J@1@_J@Z";
+    case 0x050a:
+      return "?sgetc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHXZ";
+    case 0x050b:
+      return "?sgetc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAGXZ";
+    case 0x050c:
+      return "?sgetc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAGXZ";
+    case 0x050d:
+      return "?sgetn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA_JPEAD_J@"
+             "Z";
+    case 0x050e:
+      return "?sgetn@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA_JPEAG_J@"
+             "Z";
+    case 0x050f:
+      return "?sgetn@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAA_JPEA_W_"
+             "J@Z";
+    case 0x0510:
+      return "?showmanyc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAA_JXZ";
+    case 0x0511:
+      return "?showmanyc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAA_JXZ";
+    case 0x0512:
+      return "?showmanyc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAA_"
+             "JXZ";
+    case 0x0513:
+      return "?snextc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHXZ";
+    case 0x0514:
+      return "?snextc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAGXZ";
+    case 0x0515:
+      return "?snextc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAGXZ";
+    case 0x0516:
+      return "?sputbackc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHD@Z";
+    case 0x0517:
+      return "?sputbackc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAGG@Z";
+    case 0x0518:
+      return "?sputbackc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAG_W@"
+             "Z";
+    case 0x0519:
+      return "?sputc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHD@Z";
+    case 0x051a:
+      return "?sputc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAGG@Z";
+    case 0x051b:
+      return "?sputc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAG_W@Z";
+    case 0x051c:
+      return "?sputn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA_JPEBD_J@"
+             "Z";
+    case 0x051d:
+      return "?sputn@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA_JPEBG_J@"
+             "Z";
+    case 0x051e:
+      return "?sputn@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAA_JPEB_W_"
+             "J@Z";
+    case 0x051f: return "?start@agent@Concurrency@@QEAA_NXZ";
+    case 0x0520: return "?status@agent@Concurrency@@QEAA?AW4agent_status@2@XZ";
+    case 0x0521:
+      return "?status_port@agent@Concurrency@@QEAAPEAV?$ISource@W4agent_status@"
+             "Concurrency@@@2@XZ";
+    case 0x0522:
+      return "?stossc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAXXZ";
+    case 0x0523:
+      return "?stossc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAXXZ";
+    case 0x0524:
+      return "?stossc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAXXZ";
+    case 0x0525:
+      return "?sungetc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHXZ";
+    case 0x0526:
+      return "?sungetc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAGXZ";
+    case 0x0527:
+      return "?sungetc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAGXZ";
+    case 0x0528:
+      return "?swap@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAXAEAV12@@Z";
+    case 0x0529:
+      return "?swap@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAXAEAV12@@Z";
+    case 0x052a:
+      return "?swap@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAXAEAV12@@Z";
+    case 0x052b:
+      return "?swap@?$basic_iostream@DU?$char_traits@D@std@@@std@@IEAAXAEAV12@@Z";
+    case 0x052c:
+      return "?swap@?$basic_iostream@GU?$char_traits@G@std@@@std@@IEAAXAEAV12@@Z";
+    case 0x052d:
+      return "?swap@?$basic_iostream@_WU?$char_traits@_W@std@@@std@@IEAAXAEAV12@@"
+             "Z";
+    case 0x052e:
+      return "?swap@?$basic_istream@DU?$char_traits@D@std@@@std@@IEAAXAEAV12@@Z";
+    case 0x052f:
+      return "?swap@?$basic_istream@GU?$char_traits@G@std@@@std@@IEAAXAEAV12@@Z";
+    case 0x0530:
+      return "?swap@?$basic_istream@_WU?$char_traits@_W@std@@@std@@IEAAXAEAV12@@Z";
+    case 0x0531:
+      return "?swap@?$basic_ostream@DU?$char_traits@D@std@@@std@@IEAAXAEAV12@@Z";
+    case 0x0532:
+      return "?swap@?$basic_ostream@GU?$char_traits@G@std@@@std@@IEAAXAEAV12@@Z";
+    case 0x0533:
+      return "?swap@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@IEAAXAEAV12@@Z";
+    case 0x0534:
+      return "?swap@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXAEAV12@@Z";
+    case 0x0535:
+      return "?swap@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAXAEAV12@@Z";
+    case 0x0536:
+      return "?swap@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAXAEAV12@@"
+             "Z";
+    case 0x0537: return "?swap@ios_base@std@@QEAAXAEAV12@@Z";
+    case 0x0538:
+      return "?sync@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAHXZ";
+    case 0x0539:
+      return "?sync@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAHXZ";
+    case 0x053a:
+      return "?sync@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAHXZ";
+    case 0x053b:
+      return "?sync@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAAHXZ";
+    case 0x053c:
+      return "?sync@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAAHXZ";
+    case 0x053d:
+      return "?sync@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAAHXZ";
+    case 0x053e: return "?sync_with_stdio@ios_base@std@@SA_N_N@Z";
+    case 0x053f: return "?table@?$ctype@D@std@@QEBAPEBFXZ";
+    case 0x0540: return "?table_size@?$ctype@D@std@@2_KB";
+    case 0x0541:
+      return "?tellg@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAA?AV?$fpos@H@"
+             "2@XZ";
+    case 0x0542:
+      return "?tellg@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAA?AV?$fpos@H@"
+             "2@XZ";
+    case 0x0543:
+      return "?tellg@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAA?AV?$fpos@"
+             "H@2@XZ";
+    case 0x0544:
+      return "?tellp@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA?AV?$fpos@H@"
+             "2@XZ";
+    case 0x0545:
+      return "?tellp@?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAA?AV?$fpos@H@"
+             "2@XZ";
+    case 0x0546:
+      return "?tellp@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAA?AV?$fpos@"
+             "H@2@XZ";
+    case 0x0547:
+      return "?tie@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAPEAV?$basic_"
+             "ostream@DU?$char_traits@D@std@@@2@PEAV32@@Z";
+    case 0x0548:
+      return "?tie@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBAPEAV?$basic_"
+             "ostream@DU?$char_traits@D@std@@@2@XZ";
+    case 0x0549:
+      return "?tie@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAPEAV?$basic_"
+             "ostream@GU?$char_traits@G@std@@@2@PEAV32@@Z";
+    case 0x054a:
+      return "?tie@?$basic_ios@GU?$char_traits@G@std@@@std@@QEBAPEAV?$basic_"
+             "ostream@GU?$char_traits@G@std@@@2@XZ";
+    case 0x054b:
+      return "?tie@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAPEAV?$basic_"
+             "ostream@_WU?$char_traits@_W@std@@@2@PEAV32@@Z";
+    case 0x054c:
+      return "?tie@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEBAPEAV?$basic_"
+             "ostream@_WU?$char_traits@_W@std@@@2@XZ";
+    case 0x054d: return "?tolower@?$ctype@D@std@@QEBADD@Z";
+    case 0x054e: return "?tolower@?$ctype@D@std@@QEBAPEBDPEADPEBD@Z";
+    case 0x054f: return "?tolower@?$ctype@G@std@@QEBAGG@Z";
+    case 0x0550: return "?tolower@?$ctype@G@std@@QEBAPEBGPEAGPEBG@Z";
+    case 0x0551: return "?tolower@?$ctype@_W@std@@QEBAPEB_WPEA_WPEB_W@Z";
+    case 0x0552: return "?tolower@?$ctype@_W@std@@QEBA_W_W@Z";
+    case 0x0553: return "?toupper@?$ctype@D@std@@QEBADD@Z";
+    case 0x0554: return "?toupper@?$ctype@D@std@@QEBAPEBDPEADPEBD@Z";
+    case 0x0555: return "?toupper@?$ctype@G@std@@QEBAGG@Z";
+    case 0x0556: return "?toupper@?$ctype@G@std@@QEBAPEBGPEAGPEBG@Z";
+    case 0x0557: return "?toupper@?$ctype@_W@std@@QEBAPEB_WPEA_WPEB_W@Z";
+    case 0x0558: return "?toupper@?$ctype@_W@std@@QEBA_W_W@Z";
+    case 0x0559: return "?try_to_lock@std@@3Utry_to_lock_t@1@B";
+    case 0x055a:
+      return "?uflow@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAAHXZ";
+    case 0x055b:
+      return "?uflow@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAAGXZ";
+    case 0x055c:
+      return "?uflow@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAAGXZ";
+    case 0x055d: return "?uncaught_exception@std@@YA_NXZ";
+    case 0x055e:
+      return "?underflow@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAAHXZ";
+    case 0x055f:
+      return "?underflow@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAAGXZ";
+    case 0x0560:
+      return "?underflow@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAAGXZ";
+    case 0x0561:
+      return "?unget@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@XZ";
+    case 0x0562:
+      return "?unget@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@XZ";
+    case 0x0563:
+      return "?unget@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@XZ";
+    case 0x0564: return "?unsetf@ios_base@std@@QEAAXH@Z";
+    case 0x0565: return "?unshift@?$codecvt@DDH@std@@QEBAHAEAHPEAD1AEAPEAD@Z";
+    case 0x0566: return "?unshift@?$codecvt@GDH@std@@QEBAHAEAHPEAD1AEAPEAD@Z";
+    case 0x0567: return "?unshift@?$codecvt@_WDH@std@@QEBAHAEAHPEAD1AEAPEAD@Z";
+    case 0x0568: return "?wait@agent@Concurrency@@SA?AW4agent_status@2@PEAV12@I@Z";
+    case 0x0569:
+      return "?wait_for_all@agent@Concurrency@@SAX_KPEAPEAV12@PEAW4agent_status@2@"
+             "I@Z";
+    case 0x056a:
+      return "?wait_for_one@agent@Concurrency@@SAX_KPEAPEAV12@AEAW4agent_status@2@"
+             "AEA_KI@Z";
+    case 0x056b:
+      return "?wcerr@std@@3V?$basic_ostream@GU?$char_traits@G@std@@@1@A";
+    case 0x056c:
+      return "?wcerr@std@@3V?$basic_ostream@_WU?$char_traits@_W@std@@@1@A";
+    case 0x056d: return "?wcin@std@@3V?$basic_istream@GU?$char_traits@G@std@@@1@A";
+    case 0x056e:
+      return "?wcin@std@@3V?$basic_istream@_WU?$char_traits@_W@std@@@1@A";
+    case 0x056f:
+      return "?wclog@std@@3V?$basic_ostream@GU?$char_traits@G@std@@@1@A";
+    case 0x0570:
+      return "?wclog@std@@3V?$basic_ostream@_WU?$char_traits@_W@std@@@1@A";
+    case 0x0571:
+      return "?wcout@std@@3V?$basic_ostream@GU?$char_traits@G@std@@@1@A";
+    case 0x0572:
+      return "?wcout@std@@3V?$basic_ostream@_WU?$char_traits@_W@std@@@1@A";
+    case 0x0573: return "?widen@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBADD@Z";
+    case 0x0574: return "?widen@?$basic_ios@GU?$char_traits@G@std@@@std@@QEBAGD@Z";
+    case 0x0575:
+      return "?widen@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEBA_WD@Z";
+    case 0x0576: return "?widen@?$ctype@D@std@@QEBADD@Z";
+    case 0x0577: return "?widen@?$ctype@D@std@@QEBAPEBDPEBD0PEAD@Z";
+    case 0x0578: return "?widen@?$ctype@G@std@@QEBAGD@Z";
+    case 0x0579: return "?widen@?$ctype@G@std@@QEBAPEBDPEBD0PEAG@Z";
+    case 0x057a: return "?widen@?$ctype@_W@std@@QEBAPEBDPEBD0PEA_W@Z";
+    case 0x057b: return "?widen@?$ctype@_W@std@@QEBA_WD@Z";
+    case 0x057c: return "?width@ios_base@std@@QEAA_J_J@Z";
+    case 0x057d: return "?width@ios_base@std@@QEBA_JXZ";
+    case 0x057e:
+      return "?write@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@PEBD_"
+             "J@Z";
+    case 0x057f:
+      return "?write@?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@PEBG_"
+             "J@Z";
+    case 0x0580:
+      return "?write@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@"
+             "PEB_W_J@Z";
+    case 0x0581:
+      return "?ws@std@@YAAEAV?$basic_istream@DU?$char_traits@D@std@@@1@AEAV21@@Z";
+    case 0x0582:
+      return "?ws@std@@YAAEAV?$basic_istream@GU?$char_traits@G@std@@@1@AEAV21@@Z";
+    case 0x0583:
+      return "?ws@std@@YAAEAV?$basic_istream@_WU?$char_traits@_W@std@@@1@AEAV21@@"
+             "Z";
+    case 0x0584: return "?xalloc@ios_base@std@@SAHXZ";
+    case 0x0585:
+      return "?xsgetn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAA_JPEAD_J@"
+             "Z";
+    case 0x0586:
+      return "?xsgetn@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAA_JPEAG_J@"
+             "Z";
+    case 0x0587:
+      return "?xsgetn@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAA_JPEA_"
+             "W_J@Z";
+    case 0x0588:
+      return "?xsputn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAA_JPEBD_J@"
+             "Z";
+    case 0x0589:
+      return "?xsputn@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAA_JPEBG_J@"
+             "Z";
+    case 0x058a:
+      return "?xsputn@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAA_JPEB_"
+             "W_J@Z";
+    case 0x058b: return "_Call_once";
+    case 0x058c: return "_Call_onceEx";
+    case 0x058d: return "_Cnd_broadcast";
+    case 0x058e: return "_Cnd_destroy";
+    case 0x058f: return "_Cnd_do_broadcast_at_thread_exit";
+    case 0x0590: return "_Cnd_init";
+    case 0x0591: return "_Cnd_register_at_thread_exit";
+    case 0x0592: return "_Cnd_signal";
+    case 0x0593: return "_Cnd_timedwait";
+    case 0x0594: return "_Cnd_unregister_at_thread_exit";
+    case 0x0595: return "_Cnd_wait";
+    case 0x0596: return "_Cosh";
+    case 0x0597: return "_Denorm";
+    case 0x0598: return "_Dint";
+    case 0x0599: return "_Dnorm";
+    case 0x059a: return "_Do_call";
+    case 0x059b: return "_Dscale";
+    case 0x059c: return "_Dtento";
+    case 0x059d: return "_Dtest";
+    case 0x059e: return "_Dunscale";
+    case 0x059f: return "_Eps";
+    case 0x05a0: return "_Exp";
+    case 0x05a1: return "_FCosh";
+    case 0x05a2: return "_FDenorm";
+    case 0x05a3: return "_FDint";
+    case 0x05a4: return "_FDnorm";
+    case 0x05a5: return "_FDscale";
+    case 0x05a6: return "_FDtento";
+    case 0x05a7: return "_FDtest";
+    case 0x05a8: return "_FDunscale";
+    case 0x05a9: return "_FEps";
+    case 0x05aa: return "_FExp";
+    case 0x05ab: return "_FInf";
+    case 0x05ac: return "_FNan";
+    case 0x05ad: return "_FRteps";
+    case 0x05ae: return "_FSinh";
+    case 0x05af: return "_FSnan";
+    case 0x05b0: return "_FXbig";
+    case 0x05b1: return "_FXp_addh";
+    case 0x05b2: return "_FXp_addx";
+    case 0x05b3: return "_FXp_getw";
+    case 0x05b4: return "_FXp_invx";
+    case 0x05b5: return "_FXp_ldexpx";
+    case 0x05b6: return "_FXp_movx";
+    case 0x05b7: return "_FXp_mulh";
+    case 0x05b8: return "_FXp_mulx";
+    case 0x05b9: return "_FXp_setn";
+    case 0x05ba: return "_FXp_setw";
+    case 0x05bb: return "_FXp_sqrtx";
+    case 0x05bc: return "_FXp_subx";
+    case 0x05bd: return "_FZero";
+    case 0x05be: return "_Getcoll";
+    case 0x05bf: return "_Getctype";
+    case 0x05c0: return "_Getcvt";
+    case 0x05c1: return "_Getdateorder";
+    case 0x05c2: return "_Getwctype";
+    case 0x05c3: return "_Getwctypes";
+    case 0x05c4: return "_Hugeval";
+    case 0x05c5: return "_Inf";
+    case 0x05c6: return "_LCosh";
+    case 0x05c7: return "_LDenorm";
+    case 0x05c8: return "_LDint";
+    case 0x05c9: return "_LDscale";
+    case 0x05ca: return "_LDtento";
+    case 0x05cb: return "_LDtest";
+    case 0x05cc: return "_LDunscale";
+    case 0x05cd: return "_LEps";
+    case 0x05ce: return "_LExp";
+    case 0x05cf: return "_LInf";
+    case 0x05d0: return "_LNan";
+    case 0x05d1: return "_LPoly";
+    case 0x05d2: return "_LRteps";
+    case 0x05d3: return "_LSinh";
+    case 0x05d4: return "_LSnan";
+    case 0x05d5: return "_LXbig";
+    case 0x05d6: return "_LXp_addh";
+    case 0x05d7: return "_LXp_addx";
+    case 0x05d8: return "_LXp_getw";
+    case 0x05d9: return "_LXp_invx";
+    case 0x05da: return "_LXp_ldexpx";
+    case 0x05db: return "_LXp_movx";
+    case 0x05dc: return "_LXp_mulh";
+    case 0x05dd: return "_LXp_mulx";
+    case 0x05de: return "_LXp_setn";
+    case 0x05df: return "_LXp_setw";
+    case 0x05e0: return "_LXp_sqrtx";
+    case 0x05e1: return "_LXp_subx";
+    case 0x05e2: return "_LZero";
+    case 0x05e3: return "_Lock_shared_ptr_spin_lock";
+    case 0x05e4: return "_Mbrtowc";
+    case 0x05e5: return "_Mtx_clear_owner";
+    case 0x05e6: return "_Mtx_current_owns";
+    case 0x05e7: return "_Mtx_destroy";
+    case 0x05e8: return "_Mtx_getconcrtcs";
+    case 0x05e9: return "_Mtx_init";
+    case 0x05ea: return "_Mtx_lock";
+    case 0x05eb: return "_Mtx_reset_owner";
+    case 0x05ec: return "_Mtx_timedlock";
+    case 0x05ed: return "_Mtx_trylock";
+    case 0x05ee: return "_Mtx_unlock";
+    case 0x05ef: return "_Mtxdst";
+    case 0x05f0: return "_Mtxinit";
+    case 0x05f1: return "_Mtxlock";
+    case 0x05f2: return "_Mtxunlock";
+    case 0x05f3: return "_Nan";
+    case 0x05f4: return "_Once";
+    case 0x05f5: return "_Poly";
+    case 0x05f6: return "_Rteps";
+    case 0x05f7: return "_Sinh";
+    case 0x05f8: return "_Snan";
+    case 0x05f9: return "_Stod";
+    case 0x05fa: return "_Stodx";
+    case 0x05fb: return "_Stof";
+    case 0x05fc: return "_Stoflt";
+    case 0x05fd: return "_Stofx";
+    case 0x05fe: return "_Stold";
+    case 0x05ff: return "_Stoldx";
+    case 0x0600: return "_Stoll";
+    case 0x0601: return "_Stollx";
+    case 0x0602: return "_Stolx";
+    case 0x0603: return "_Stopfx";
+    case 0x0604: return "_Stoul";
+    case 0x0605: return "_Stoull";
+    case 0x0606: return "_Stoullx";
+    case 0x0607: return "_Stoulx";
+    case 0x0608: return "_Stoxflt";
+    case 0x0609: return "_Strcoll";
+    case 0x060a: return "_Strxfrm";
+    case 0x060b: return "_Thrd_abort";
+    case 0x060c: return "_Thrd_create";
+    case 0x060d: return "_Thrd_current";
+    case 0x060e: return "_Thrd_detach";
+    case 0x060f: return "_Thrd_equal";
+    case 0x0610: return "_Thrd_exit";
+    case 0x0611: return "_Thrd_join";
+    case 0x0612: return "_Thrd_lt";
+    case 0x0613: return "_Thrd_sleep";
+    case 0x0614: return "_Thrd_start";
+    case 0x0615: return "_Thrd_yield";
+    case 0x0616: return "_Tolower";
+    case 0x0617: return "_Toupper";
+    case 0x0618: return "_Towlower";
+    case 0x0619: return "_Towupper";
+    case 0x061a: return "_Tss_create";
+    case 0x061b: return "_Tss_delete";
+    case 0x061c: return "_Tss_get";
+    case 0x061d: return "_Tss_set";
+    case 0x061e: return "_Unlock_shared_ptr_spin_lock";
+    case 0x061f: return "_Wcrtomb";
+    case 0x0620: return "_Wcscoll";
+    case 0x0621: return "_Wcsxfrm";
+    case 0x0622: return "_Xbig";
+    case 0x0623: return "_Xp_addh";
+    case 0x0624: return "_Xp_addx";
+    case 0x0625: return "_Xp_getw";
+    case 0x0626: return "_Xp_invx";
+    case 0x0627: return "_Xp_ldexpx";
+    case 0x0628: return "_Xp_movx";
+    case 0x0629: return "_Xp_mulh";
+    case 0x062a: return "_Xp_mulx";
+    case 0x062b: return "_Xp_setn";
+    case 0x062c: return "_Xp_setw";
+    case 0x062d: return "_Xp_sqrtx";
+    case 0x062e: return "_Xp_subx";
+    case 0x062f: return "_Xtime_diff_to_millis";
+    case 0x0630: return "_Xtime_diff_to_millis2";
+    case 0x0631: return "_Xtime_get_ticks";
+    case 0x0632: return "_Zero";
+    case 0x0633: return "__Wcrtomb_lk";
+    case 0x0634: return "towctrans";
+    case 0x0635: return "wctrans";
+    case 0x0636: return "wctype";
+    case 0x0637: return "xtime_get";
   }
   return nullptr;
 }


-}
 }

-#endif

+#endif
diff --git a/deps/LIEF/src/PE/utils/ordinals_lookup_tables/msvcp120_dll_lookup.hpp b/deps/LIEF/src/PE/utils/ordinals_lookup_tables/msvcp120_dll_lookup.hpp
index b8c18066860..5fec596a78b 100644
--- a/deps/LIEF/src/PE/utils/ordinals_lookup_tables/msvcp120_dll_lookup.hpp
+++ b/deps/LIEF/src/PE/utils/ordinals_lookup_tables/msvcp120_dll_lookup.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -17,1587 +17,3234 @@
 #define LIEF_PE_MSVCP120_DLL_LOOKUP_H
 #include <cstdint>

-namespace LIEF {
-namespace PE {
+
+namespace LIEF::PE {

 inline const char* msvcp120_dll_lookup(uint32_t i) {
-  switch(i) {
-  case 0x0001: return "??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z";
-  case 0x0002: return "??$_Getvals@_W@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z";
-  case 0x0003: return "??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z";
-  case 0x0004: return "??0?$_Yarn@D@std@@QEAA@AEBV01@@Z";
-  case 0x0005: return "??0?$_Yarn@D@std@@QEAA@PEBD@Z";
-  case 0x0006: return "??0?$_Yarn@D@std@@QEAA@XZ";
-  case 0x0007: return "??0?$_Yarn@_W@std@@QEAA@XZ";
-  case 0x0008: return "??0?$basic_ios@DU?$char_traits@D@std@@@std@@IEAA@XZ";
-  case 0x0009: return "??0?$basic_ios@DU?$char_traits@D@std@@@std@@QEAA@PEAV?$basic_streambuf@DU?$char_traits@D@std@@@1@@Z";
-  case 0x000a: return "??0?$basic_ios@GU?$char_traits@G@std@@@std@@IEAA@XZ";
-  case 0x000b: return "??0?$basic_ios@GU?$char_traits@G@std@@@std@@QEAA@PEAV?$basic_streambuf@GU?$char_traits@G@std@@@1@@Z";
-  case 0x000c: return "??0?$basic_ios@_WU?$char_traits@_W@std@@@std@@IEAA@XZ";
-  case 0x000d: return "??0?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAA@PEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@@Z";
-  case 0x000e: return "??0?$basic_iostream@DU?$char_traits@D@std@@@std@@IEAA@$$QEAV01@@Z";
-  case 0x000f: return "??0?$basic_iostream@DU?$char_traits@D@std@@@std@@QEAA@PEAV?$basic_streambuf@DU?$char_traits@D@std@@@1@@Z";
-  case 0x0010: return "??0?$basic_iostream@GU?$char_traits@G@std@@@std@@IEAA@$$QEAV01@@Z";
-  case 0x0011: return "??0?$basic_iostream@GU?$char_traits@G@std@@@std@@QEAA@PEAV?$basic_streambuf@GU?$char_traits@G@std@@@1@@Z";
-  case 0x0012: return "??0?$basic_iostream@_WU?$char_traits@_W@std@@@std@@IEAA@$$QEAV01@@Z";
-  case 0x0013: return "??0?$basic_iostream@_WU?$char_traits@_W@std@@@std@@QEAA@PEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@@Z";
-  case 0x0014: return "??0?$basic_istream@DU?$char_traits@D@std@@@std@@IEAA@$$QEAV01@@Z";
-  case 0x0015: return "??0?$basic_istream@DU?$char_traits@D@std@@@std@@QEAA@PEAV?$basic_streambuf@DU?$char_traits@D@std@@@1@_N1@Z";
-  case 0x0016: return "??0?$basic_istream@DU?$char_traits@D@std@@@std@@QEAA@PEAV?$basic_streambuf@DU?$char_traits@D@std@@@1@_N@Z";
-  case 0x0017: return "??0?$basic_istream@DU?$char_traits@D@std@@@std@@QEAA@W4_Uninitialized@1@@Z";
-  case 0x0018: return "??0?$basic_istream@GU?$char_traits@G@std@@@std@@IEAA@$$QEAV01@@Z";
-  case 0x0019: return "??0?$basic_istream@GU?$char_traits@G@std@@@std@@QEAA@PEAV?$basic_streambuf@GU?$char_traits@G@std@@@1@_N1@Z";
-  case 0x001a: return "??0?$basic_istream@GU?$char_traits@G@std@@@std@@QEAA@PEAV?$basic_streambuf@GU?$char_traits@G@std@@@1@_N@Z";
-  case 0x001b: return "??0?$basic_istream@GU?$char_traits@G@std@@@std@@QEAA@W4_Uninitialized@1@@Z";
-  case 0x001c: return "??0?$basic_istream@_WU?$char_traits@_W@std@@@std@@IEAA@$$QEAV01@@Z";
-  case 0x001d: return "??0?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAA@PEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@_N1@Z";
-  case 0x001e: return "??0?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAA@PEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@_N@Z";
-  case 0x001f: return "??0?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAA@W4_Uninitialized@1@@Z";
-  case 0x0020: return "??0?$basic_ostream@DU?$char_traits@D@std@@@std@@IEAA@$$QEAV01@@Z";
-  case 0x0021: return "??0?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@PEAV?$basic_streambuf@DU?$char_traits@D@std@@@1@_N@Z";
-  case 0x0022: return "??0?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@W4_Uninitialized@1@_N@Z";
-  case 0x0023: return "??0?$basic_ostream@GU?$char_traits@G@std@@@std@@IEAA@$$QEAV01@@Z";
-  case 0x0024: return "??0?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAA@PEAV?$basic_streambuf@GU?$char_traits@G@std@@@1@_N@Z";
-  case 0x0025: return "??0?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAA@W4_Uninitialized@1@_N@Z";
-  case 0x0026: return "??0?$basic_ostream@_WU?$char_traits@_W@std@@@std@@IEAA@$$QEAV01@@Z";
-  case 0x0027: return "??0?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAA@PEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@_N@Z";
-  case 0x0028: return "??0?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAA@W4_Uninitialized@1@_N@Z";
-  case 0x0029: return "??0?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAA@AEBV01@@Z";
-  case 0x002a: return "??0?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAA@W4_Uninitialized@1@@Z";
-  case 0x002b: return "??0?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAA@XZ";
-  case 0x002c: return "??0?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAA@AEBV01@@Z";
-  case 0x002d: return "??0?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAA@W4_Uninitialized@1@@Z";
-  case 0x002e: return "??0?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAA@XZ";
-  case 0x002f: return "??0?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAA@AEBV01@@Z";
-  case 0x0030: return "??0?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAA@W4_Uninitialized@1@@Z";
-  case 0x0031: return "??0?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAA@XZ";
-  case 0x0032: return "??0?$codecvt@DDH@std@@QEAA@AEBV_Locinfo@1@_K@Z";
-  case 0x0033: return "??0?$codecvt@DDH@std@@QEAA@_K@Z";
-  case 0x0034: return "??0?$codecvt@GDH@std@@QEAA@AEBV_Locinfo@1@_K@Z";
-  case 0x0035: return "??0?$codecvt@GDH@std@@QEAA@_K@Z";
-  case 0x0036: return "??0?$codecvt@_WDH@std@@QEAA@AEBV_Locinfo@1@_K@Z";
-  case 0x0037: return "??0?$codecvt@_WDH@std@@QEAA@_K@Z";
-  case 0x0038: return "??0?$ctype@D@std@@QEAA@AEBV_Locinfo@1@_K@Z";
-  case 0x0039: return "??0?$ctype@D@std@@QEAA@PEBF_N_K@Z";
-  case 0x003a: return "??0?$ctype@G@std@@QEAA@AEBV_Locinfo@1@_K@Z";
-  case 0x003b: return "??0?$ctype@G@std@@QEAA@_K@Z";
-  case 0x003c: return "??0?$ctype@_W@std@@QEAA@AEBV_Locinfo@1@_K@Z";
-  case 0x003d: return "??0?$ctype@_W@std@@QEAA@_K@Z";
-  case 0x003e: return "??0?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEAA@AEBV_Locinfo@1@_K@Z";
-  case 0x003f: return "??0?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEAA@_K@Z";
-  case 0x0040: return "??0?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEAA@AEBV_Locinfo@1@_K@Z";
-  case 0x0041: return "??0?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEAA@_K@Z";
-  case 0x0042: return "??0?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEAA@AEBV_Locinfo@1@_K@Z";
-  case 0x0043: return "??0?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEAA@_K@Z";
-  case 0x0044: return "??0?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEAA@AEBV_Locinfo@1@_K@Z";
-  case 0x0045: return "??0?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEAA@_K@Z";
-  case 0x0046: return "??0?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEAA@AEBV_Locinfo@1@_K@Z";
-  case 0x0047: return "??0?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEAA@_K@Z";
-  case 0x0048: return "??0?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEAA@AEBV_Locinfo@1@_K@Z";
-  case 0x0049: return "??0?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEAA@_K@Z";
-  case 0x004a: return "??0?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAA@PEBD_K@Z";
-  case 0x004b: return "??0?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEAA@AEBV_Locinfo@1@_K@Z";
-  case 0x004c: return "??0?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEAA@_K@Z";
-  case 0x004d: return "??0?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@IEAA@PEBD_K@Z";
-  case 0x004e: return "??0?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEAA@AEBV_Locinfo@1@_K@Z";
-  case 0x004f: return "??0?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEAA@_K@Z";
-  case 0x0050: return "??0?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAA@PEBD_K@Z";
-  case 0x0051: return "??0?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEAA@AEBV_Locinfo@1@_K@Z";
-  case 0x0052: return "??0?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEAA@_K@Z";
-  case 0x0053: return "??0?$time_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEAA@AEBV_Locinfo@1@_K@Z";
-  case 0x0054: return "??0?$time_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEAA@_K@Z";
-  case 0x0055: return "??0?$time_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@IEAA@PEBD_K@Z";
-  case 0x0056: return "??0?$time_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEAA@AEBV_Locinfo@1@_K@Z";
-  case 0x0057: return "??0?$time_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEAA@_K@Z";
-  case 0x0058: return "??0?$time_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAA@PEBD_K@Z";
-  case 0x0059: return "??0?$time_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEAA@AEBV_Locinfo@1@_K@Z";
-  case 0x005a: return "??0?$time_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEAA@_K@Z";
-  case 0x005b: return "??0Init@ios_base@std@@QEAA@XZ";
-  case 0x005c: return "??0_Concurrent_queue_base_v4@details@Concurrency@@IEAA@_K@Z";
-  case 0x005d: return "??0_Concurrent_queue_iterator_base_v4@details@Concurrency@@IEAA@AEBV_Concurrent_queue_base_v4@12@@Z";
-  case 0x005e: return "??0_Container_base12@std@@QEAA@AEBU01@@Z";
-  case 0x005f: return "??0_Container_base12@std@@QEAA@XZ";
-  case 0x0060: return "??0_Facet_base@std@@QEAA@AEBV01@@Z";
-  case 0x0061: return "??0_Facet_base@std@@QEAA@XZ";
-  case 0x0062: return "??0_Init_locks@std@@QEAA@XZ";
-  case 0x0063: return "??0_Locimp@locale@std@@AEAA@AEBV012@@Z";
-  case 0x0064: return "??0_Locimp@locale@std@@AEAA@_N@Z";
-  case 0x0065: return "??0_Locinfo@std@@QEAA@HPEBD@Z";
-  case 0x0066: return "??0_Locinfo@std@@QEAA@PEBD@Z";
-  case 0x0067: return "??0_Lockit@std@@QEAA@H@Z";
-  case 0x0068: return "??0_Lockit@std@@QEAA@XZ";
-  case 0x0069: return "??0_Pad@std@@QEAA@AEBV01@@Z";
-  case 0x006a: return "??0_Pad@std@@QEAA@XZ";
-  case 0x006b: return "??0_Runtime_object@details@Concurrency@@QEAA@H@Z";
-  case 0x006c: return "??0_Runtime_object@details@Concurrency@@QEAA@XZ";
-  case 0x006d: return "??0_Timevec@std@@QEAA@AEBV01@@Z";
-  case 0x006e: return "??0_Timevec@std@@QEAA@PEAX@Z";
-  case 0x006f: return "??0_UShinit@std@@QEAA@XZ";
-  case 0x0070: return "??0_Winit@std@@QEAA@XZ";
-  case 0x0071: return "??0agent@Concurrency@@QEAA@AEAVScheduleGroup@1@@Z";
-  case 0x0072: return "??0agent@Concurrency@@QEAA@AEAVScheduler@1@@Z";
-  case 0x0073: return "??0agent@Concurrency@@QEAA@XZ";
-  case 0x0074: return "??0codecvt_base@std@@QEAA@_K@Z";
-  case 0x0075: return "??0ctype_base@std@@QEAA@_K@Z";
-  case 0x0076: return "??0facet@locale@std@@IEAA@_K@Z";
-  case 0x0077: return "??0id@locale@std@@QEAA@_K@Z";
-  case 0x0078: return "??0ios_base@std@@IEAA@XZ";
-  case 0x0079: return "??0time_base@std@@QEAA@_K@Z";
-  case 0x007a: return "??1?$_Yarn@D@std@@QEAA@XZ";
-  case 0x007b: return "??1?$_Yarn@_W@std@@QEAA@XZ";
-  case 0x007c: return "??1?$basic_ios@DU?$char_traits@D@std@@@std@@UEAA@XZ";
-  case 0x007d: return "??1?$basic_ios@GU?$char_traits@G@std@@@std@@UEAA@XZ";
-  case 0x007e: return "??1?$basic_ios@_WU?$char_traits@_W@std@@@std@@UEAA@XZ";
-  case 0x007f: return "??1?$basic_iostream@DU?$char_traits@D@std@@@std@@UEAA@XZ";
-  case 0x0080: return "??1?$basic_iostream@GU?$char_traits@G@std@@@std@@UEAA@XZ";
-  case 0x0081: return "??1?$basic_iostream@_WU?$char_traits@_W@std@@@std@@UEAA@XZ";
-  case 0x0082: return "??1?$basic_istream@DU?$char_traits@D@std@@@std@@UEAA@XZ";
-  case 0x0083: return "??1?$basic_istream@GU?$char_traits@G@std@@@std@@UEAA@XZ";
-  case 0x0084: return "??1?$basic_istream@_WU?$char_traits@_W@std@@@std@@UEAA@XZ";
-  case 0x0085: return "??1?$basic_ostream@DU?$char_traits@D@std@@@std@@UEAA@XZ";
-  case 0x0086: return "??1?$basic_ostream@GU?$char_traits@G@std@@@std@@UEAA@XZ";
-  case 0x0087: return "??1?$basic_ostream@_WU?$char_traits@_W@std@@@std@@UEAA@XZ";
-  case 0x0088: return "??1?$basic_streambuf@DU?$char_traits@D@std@@@std@@UEAA@XZ";
-  case 0x0089: return "??1?$basic_streambuf@GU?$char_traits@G@std@@@std@@UEAA@XZ";
-  case 0x008a: return "??1?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@UEAA@XZ";
-  case 0x008b: return "??1?$codecvt@DDH@std@@MEAA@XZ";
-  case 0x008c: return "??1?$codecvt@GDH@std@@MEAA@XZ";
-  case 0x008d: return "??1?$codecvt@_WDH@std@@MEAA@XZ";
-  case 0x008e: return "??1?$ctype@D@std@@MEAA@XZ";
-  case 0x008f: return "??1?$ctype@G@std@@MEAA@XZ";
-  case 0x0090: return "??1?$ctype@_W@std@@MEAA@XZ";
-  case 0x0091: return "??1?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MEAA@XZ";
-  case 0x0092: return "??1?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@MEAA@XZ";
-  case 0x0093: return "??1?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@MEAA@XZ";
-  case 0x0094: return "??1?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MEAA@XZ";
-  case 0x0095: return "??1?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@MEAA@XZ";
-  case 0x0096: return "??1?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@MEAA@XZ";
-  case 0x0097: return "??1?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MEAA@XZ";
-  case 0x0098: return "??1?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@MEAA@XZ";
-  case 0x0099: return "??1?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@MEAA@XZ";
-  case 0x009a: return "??1?$time_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MEAA@XZ";
-  case 0x009b: return "??1?$time_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@MEAA@XZ";
-  case 0x009c: return "??1?$time_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@MEAA@XZ";
-  case 0x009d: return "??1Init@ios_base@std@@QEAA@XZ";
-  case 0x009e: return "??1_Concurrent_queue_base_v4@details@Concurrency@@MEAA@XZ";
-  case 0x009f: return "??1_Concurrent_queue_iterator_base_v4@details@Concurrency@@IEAA@XZ";
-  case 0x00a0: return "??1_Concurrent_vector_base_v4@details@Concurrency@@IEAA@XZ";
-  case 0x00a1: return "??1_Container_base12@std@@QEAA@XZ";
-  case 0x00a2: return "??1_Facet_base@std@@UEAA@XZ";
-  case 0x00a3: return "??1_Init_locks@std@@QEAA@XZ";
-  case 0x00a4: return "??1_Locimp@locale@std@@MEAA@XZ";
-  case 0x00a5: return "??1_Locinfo@std@@QEAA@XZ";
-  case 0x00a6: return "??1_Lockit@std@@QEAA@XZ";
-  case 0x00a7: return "??1_Pad@std@@QEAA@XZ";
-  case 0x00a8: return "??1_Timevec@std@@QEAA@XZ";
-  case 0x00a9: return "??1_UShinit@std@@QEAA@XZ";
-  case 0x00aa: return "??1_Winit@std@@QEAA@XZ";
-  case 0x00ab: return "??1agent@Concurrency@@UEAA@XZ";
-  case 0x00ac: return "??1codecvt_base@std@@UEAA@XZ";
-  case 0x00ad: return "??1ctype_base@std@@UEAA@XZ";
-  case 0x00ae: return "??1facet@locale@std@@MEAA@XZ";
-  case 0x00af: return "??1ios_base@std@@UEAA@XZ";
-  case 0x00b0: return "??1time_base@std@@UEAA@XZ";
-  case 0x00b1: return "??4?$_Iosb@H@std@@QEAAAEAV01@AEBV01@@Z";
-  case 0x00b2: return "??4?$_Yarn@D@std@@QEAAAEAV01@AEBV01@@Z";
-  case 0x00b3: return "??4?$_Yarn@D@std@@QEAAAEAV01@PEBD@Z";
-  case 0x00b4: return "??4?$_Yarn@_W@std@@QEAAAEAV01@PEB_W@Z";
-  case 0x00b5: return "??4?$basic_iostream@DU?$char_traits@D@std@@@std@@IEAAAEAV01@$$QEAV01@@Z";
-  case 0x00b6: return "??4?$basic_iostream@GU?$char_traits@G@std@@@std@@IEAAAEAV01@$$QEAV01@@Z";
-  case 0x00b7: return "??4?$basic_iostream@_WU?$char_traits@_W@std@@@std@@IEAAAEAV01@$$QEAV01@@Z";
-  case 0x00b8: return "??4?$basic_istream@DU?$char_traits@D@std@@@std@@IEAAAEAV01@$$QEAV01@@Z";
-  case 0x00b9: return "??4?$basic_istream@GU?$char_traits@G@std@@@std@@IEAAAEAV01@$$QEAV01@@Z";
-  case 0x00ba: return "??4?$basic_istream@_WU?$char_traits@_W@std@@@std@@IEAAAEAV01@$$QEAV01@@Z";
-  case 0x00bb: return "??4?$basic_ostream@DU?$char_traits@D@std@@@std@@IEAAAEAV01@$$QEAV01@@Z";
-  case 0x00bc: return "??4?$basic_ostream@GU?$char_traits@G@std@@@std@@IEAAAEAV01@$$QEAV01@@Z";
-  case 0x00bd: return "??4?$basic_ostream@_WU?$char_traits@_W@std@@@std@@IEAAAEAV01@$$QEAV01@@Z";
-  case 0x00be: return "??4?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAAEAV01@AEBV01@@Z";
-  case 0x00bf: return "??4?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAAEAV01@AEBV01@@Z";
-  case 0x00c0: return "??4?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAAEAV01@AEBV01@@Z";
-  case 0x00c1: return "??4Init@ios_base@std@@QEAAAEAV012@AEBV012@@Z";
-  case 0x00c2: return "??4_Container_base0@std@@QEAAAEAU01@AEBU01@@Z";
-  case 0x00c3: return "??4_Container_base12@std@@QEAAAEAU01@AEBU01@@Z";
-  case 0x00c4: return "??4_Facet_base@std@@QEAAAEAV01@AEBV01@@Z";
-  case 0x00c5: return "??4_Init_locks@std@@QEAAAEAV01@AEBV01@@Z";
-  case 0x00c6: return "??4_Pad@std@@QEAAAEAV01@AEBV01@@Z";
-  case 0x00c7: return "??4_Timevec@std@@QEAAAEAV01@AEBV01@@Z";
-  case 0x00c8: return "??4_UShinit@std@@QEAAAEAV01@AEBV01@@Z";
-  case 0x00c9: return "??4_Winit@std@@QEAAAEAV01@AEBV01@@Z";
-  case 0x00ca: return "??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAF@Z";
-  case 0x00cb: return "??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAG@Z";
-  case 0x00cc: return "??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAH@Z";
-  case 0x00cd: return "??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAI@Z";
-  case 0x00ce: return "??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAJ@Z";
-  case 0x00cf: return "??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAK@Z";
-  case 0x00d0: return "??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAM@Z";
-  case 0x00d1: return "??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAN@Z";
-  case 0x00d2: return "??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAO@Z";
-  case 0x00d3: return "??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAPEAX@Z";
-  case 0x00d4: return "??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEA_J@Z";
-  case 0x00d5: return "??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEA_K@Z";
-  case 0x00d6: return "??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEA_N@Z";
-  case 0x00d7: return "??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@P6AAEAV01@AEAV01@@Z@Z";
-  case 0x00d8: return "??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@P6AAEAV?$basic_ios@DU?$char_traits@D@std@@@1@AEAV21@@Z@Z";
-  case 0x00d9: return "??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@P6AAEAVios_base@1@AEAV21@@Z@Z";
-  case 0x00da: return "??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@PEAV?$basic_streambuf@DU?$char_traits@D@std@@@1@@Z";
-  case 0x00db: return "??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEAF@Z";
-  case 0x00dc: return "??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEAG@Z";
-  case 0x00dd: return "??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEAH@Z";
-  case 0x00de: return "??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEAI@Z";
-  case 0x00df: return "??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEAJ@Z";
-  case 0x00e0: return "??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEAK@Z";
-  case 0x00e1: return "??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEAM@Z";
-  case 0x00e2: return "??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEAN@Z";
-  case 0x00e3: return "??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEAO@Z";
-  case 0x00e4: return "??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEAPEAX@Z";
-  case 0x00e5: return "??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEA_J@Z";
-  case 0x00e6: return "??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEA_K@Z";
-  case 0x00e7: return "??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEA_N@Z";
-  case 0x00e8: return "??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@P6AAEAV01@AEAV01@@Z@Z";
-  case 0x00e9: return "??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@P6AAEAV?$basic_ios@GU?$char_traits@G@std@@@1@AEAV21@@Z@Z";
-  case 0x00ea: return "??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@P6AAEAVios_base@1@AEAV21@@Z@Z";
-  case 0x00eb: return "??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@PEAV?$basic_streambuf@GU?$char_traits@G@std@@@1@@Z";
-  case 0x00ec: return "??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEAF@Z";
-  case 0x00ed: return "??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEAG@Z";
-  case 0x00ee: return "??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEAH@Z";
-  case 0x00ef: return "??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEAI@Z";
-  case 0x00f0: return "??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEAJ@Z";
-  case 0x00f1: return "??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEAK@Z";
-  case 0x00f2: return "??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEAM@Z";
-  case 0x00f3: return "??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEAN@Z";
-  case 0x00f4: return "??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEAO@Z";
-  case 0x00f5: return "??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEAPEAX@Z";
-  case 0x00f6: return "??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEA_J@Z";
-  case 0x00f7: return "??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEA_K@Z";
-  case 0x00f8: return "??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEA_N@Z";
-  case 0x00f9: return "??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@P6AAEAV01@AEAV01@@Z@Z";
-  case 0x00fa: return "??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@P6AAEAV?$basic_ios@_WU?$char_traits@_W@std@@@1@AEAV21@@Z@Z";
-  case 0x00fb: return "??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@P6AAEAVios_base@1@AEAV21@@Z@Z";
-  case 0x00fc: return "??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@PEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@@Z";
-  case 0x00fd: return "??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@F@Z";
-  case 0x00fe: return "??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@G@Z";
-  case 0x00ff: return "??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@H@Z";
-  case 0x0100: return "??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@I@Z";
-  case 0x0101: return "??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@J@Z";
-  case 0x0102: return "??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@K@Z";
-  case 0x0103: return "??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@M@Z";
-  case 0x0104: return "??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@N@Z";
-  case 0x0105: return "??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@O@Z";
-  case 0x0106: return "??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@P6AAEAV01@AEAV01@@Z@Z";
-  case 0x0107: return "??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@P6AAEAV?$basic_ios@DU?$char_traits@D@std@@@1@AEAV21@@Z@Z";
-  case 0x0108: return "??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@P6AAEAVios_base@1@AEAV21@@Z@Z";
-  case 0x0109: return "??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@PEAV?$basic_streambuf@DU?$char_traits@D@std@@@1@@Z";
-  case 0x010a: return "??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@PEBX@Z";
-  case 0x010b: return "??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@_J@Z";
-  case 0x010c: return "??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@_K@Z";
-  case 0x010d: return "??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@_N@Z";
-  case 0x010e: return "??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@F@Z";
-  case 0x010f: return "??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@G@Z";
-  case 0x0110: return "??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@H@Z";
-  case 0x0111: return "??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@I@Z";
-  case 0x0112: return "??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@J@Z";
-  case 0x0113: return "??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@K@Z";
-  case 0x0114: return "??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@M@Z";
-  case 0x0115: return "??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@N@Z";
-  case 0x0116: return "??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@O@Z";
-  case 0x0117: return "??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@P6AAEAV01@AEAV01@@Z@Z";
-  case 0x0118: return "??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@P6AAEAV?$basic_ios@GU?$char_traits@G@std@@@1@AEAV21@@Z@Z";
-  case 0x0119: return "??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@P6AAEAVios_base@1@AEAV21@@Z@Z";
-  case 0x011a: return "??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@PEAV?$basic_streambuf@GU?$char_traits@G@std@@@1@@Z";
-  case 0x011b: return "??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@PEBX@Z";
-  case 0x011c: return "??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@_J@Z";
-  case 0x011d: return "??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@_K@Z";
-  case 0x011e: return "??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@_N@Z";
-  case 0x011f: return "??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@F@Z";
-  case 0x0120: return "??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@G@Z";
-  case 0x0121: return "??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@H@Z";
-  case 0x0122: return "??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@I@Z";
-  case 0x0123: return "??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@J@Z";
-  case 0x0124: return "??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@K@Z";
-  case 0x0125: return "??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@M@Z";
-  case 0x0126: return "??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@N@Z";
-  case 0x0127: return "??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@O@Z";
-  case 0x0128: return "??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@P6AAEAV01@AEAV01@@Z@Z";
-  case 0x0129: return "??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@P6AAEAV?$basic_ios@_WU?$char_traits@_W@std@@@1@AEAV21@@Z@Z";
-  case 0x012a: return "??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@P6AAEAVios_base@1@AEAV21@@Z@Z";
-  case 0x012b: return "??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@PEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@@Z";
-  case 0x012c: return "??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@PEBX@Z";
-  case 0x012d: return "??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@_J@Z";
-  case 0x012e: return "??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@_K@Z";
-  case 0x012f: return "??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@_N@Z";
-  case 0x0130: return "??7ios_base@std@@QEBA_NXZ";
-  case 0x0131: return "??Bid@locale@std@@QEAA_KXZ";
-  case 0x0132: return "??Bios_base@std@@QEBA_NXZ";
-  case 0x0133: return "??_7?$basic_ios@DU?$char_traits@D@std@@@std@@6B@";
-  case 0x0134: return "??_7?$basic_ios@GU?$char_traits@G@std@@@std@@6B@";
-  case 0x0135: return "??_7?$basic_ios@_WU?$char_traits@_W@std@@@std@@6B@";
-  case 0x0136: return "??_7?$basic_iostream@DU?$char_traits@D@std@@@std@@6B@";
-  case 0x0137: return "??_7?$basic_iostream@GU?$char_traits@G@std@@@std@@6B@";
-  case 0x0138: return "??_7?$basic_iostream@_WU?$char_traits@_W@std@@@std@@6B@";
-  case 0x0139: return "??_7?$basic_istream@DU?$char_traits@D@std@@@std@@6B@";
-  case 0x013a: return "??_7?$basic_istream@GU?$char_traits@G@std@@@std@@6B@";
-  case 0x013b: return "??_7?$basic_istream@_WU?$char_traits@_W@std@@@std@@6B@";
-  case 0x013c: return "??_7?$basic_ostream@DU?$char_traits@D@std@@@std@@6B@";
-  case 0x013d: return "??_7?$basic_ostream@GU?$char_traits@G@std@@@std@@6B@";
-  case 0x013e: return "??_7?$basic_ostream@_WU?$char_traits@_W@std@@@std@@6B@";
-  case 0x013f: return "??_7?$basic_streambuf@DU?$char_traits@D@std@@@std@@6B@";
-  case 0x0140: return "??_7?$basic_streambuf@GU?$char_traits@G@std@@@std@@6B@";
-  case 0x0141: return "??_7?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@6B@";
-  case 0x0142: return "??_7?$codecvt@DDH@std@@6B@";
-  case 0x0143: return "??_7?$codecvt@GDH@std@@6B@";
-  case 0x0144: return "??_7?$codecvt@_WDH@std@@6B@";
-  case 0x0145: return "??_7?$ctype@D@std@@6B@";
-  case 0x0146: return "??_7?$ctype@G@std@@6B@";
-  case 0x0147: return "??_7?$ctype@_W@std@@6B@";
-  case 0x0148: return "??_7?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@6B@";
-  case 0x0149: return "??_7?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@6B@";
-  case 0x014a: return "??_7?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@6B@";
-  case 0x014b: return "??_7?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@6B@";
-  case 0x014c: return "??_7?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@6B@";
-  case 0x014d: return "??_7?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@6B@";
-  case 0x014e: return "??_7?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@6B@";
-  case 0x014f: return "??_7?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@6B@";
-  case 0x0150: return "??_7?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@6B@";
-  case 0x0151: return "??_7?$time_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@6B@";
-  case 0x0152: return "??_7?$time_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@6B@";
-  case 0x0153: return "??_7?$time_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@6B@";
-  case 0x0154: return "??_7_Facet_base@std@@6B@";
-  case 0x0155: return "??_7_Locimp@locale@std@@6B@";
-  case 0x0156: return "??_7_Pad@std@@6B@";
-  case 0x0157: return "??_7codecvt_base@std@@6B@";
-  case 0x0158: return "??_7ctype_base@std@@6B@";
-  case 0x0159: return "??_7facet@locale@std@@6B@";
-  case 0x015a: return "??_7ios_base@std@@6B@";
-  case 0x015b: return "??_7time_base@std@@6B@";
-  case 0x015c: return "??_8?$basic_iostream@DU?$char_traits@D@std@@@std@@7B?$basic_istream@DU?$char_traits@D@std@@@1@@";
-  case 0x015d: return "??_8?$basic_iostream@DU?$char_traits@D@std@@@std@@7B?$basic_ostream@DU?$char_traits@D@std@@@1@@";
-  case 0x015e: return "??_8?$basic_iostream@GU?$char_traits@G@std@@@std@@7B?$basic_istream@GU?$char_traits@G@std@@@1@@";
-  case 0x015f: return "??_8?$basic_iostream@GU?$char_traits@G@std@@@std@@7B?$basic_ostream@GU?$char_traits@G@std@@@1@@";
-  case 0x0160: return "??_8?$basic_iostream@_WU?$char_traits@_W@std@@@std@@7B?$basic_istream@_WU?$char_traits@_W@std@@@1@@";
-  case 0x0161: return "??_8?$basic_iostream@_WU?$char_traits@_W@std@@@std@@7B?$basic_ostream@_WU?$char_traits@_W@std@@@1@@";
-  case 0x0162: return "??_8?$basic_istream@DU?$char_traits@D@std@@@std@@7B@";
-  case 0x0163: return "??_8?$basic_istream@GU?$char_traits@G@std@@@std@@7B@";
-  case 0x0164: return "??_8?$basic_istream@_WU?$char_traits@_W@std@@@std@@7B@";
-  case 0x0165: return "??_8?$basic_ostream@DU?$char_traits@D@std@@@std@@7B@";
-  case 0x0166: return "??_8?$basic_ostream@GU?$char_traits@G@std@@@std@@7B@";
-  case 0x0167: return "??_8?$basic_ostream@_WU?$char_traits@_W@std@@@std@@7B@";
-  case 0x0168: return "??_D?$basic_iostream@DU?$char_traits@D@std@@@std@@QEAAXXZ";
-  case 0x0169: return "??_D?$basic_iostream@GU?$char_traits@G@std@@@std@@QEAAXXZ";
-  case 0x016a: return "??_D?$basic_iostream@_WU?$char_traits@_W@std@@@std@@QEAAXXZ";
-  case 0x016b: return "??_D?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAXXZ";
-  case 0x016c: return "??_D?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAXXZ";
-  case 0x016d: return "??_D?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAXXZ";
-  case 0x016e: return "??_D?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAXXZ";
-  case 0x016f: return "??_D?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAXXZ";
-  case 0x0170: return "??_D?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAXXZ";
-  case 0x0171: return "??_F?$codecvt@DDH@std@@QEAAXXZ";
-  case 0x0172: return "??_F?$codecvt@GDH@std@@QEAAXXZ";
-  case 0x0173: return "??_F?$codecvt@_WDH@std@@QEAAXXZ";
-  case 0x0174: return "??_F?$ctype@D@std@@QEAAXXZ";
-  case 0x0175: return "??_F?$ctype@G@std@@QEAAXXZ";
-  case 0x0176: return "??_F?$ctype@_W@std@@QEAAXXZ";
-  case 0x0177: return "??_F?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEAAXXZ";
-  case 0x0178: return "??_F?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEAAXXZ";
-  case 0x0179: return "??_F?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEAAXXZ";
-  case 0x017a: return "??_F?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEAAXXZ";
-  case 0x017b: return "??_F?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEAAXXZ";
-  case 0x017c: return "??_F?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEAAXXZ";
-  case 0x017d: return "??_F?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEAAXXZ";
-  case 0x017e: return "??_F?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEAAXXZ";
-  case 0x017f: return "??_F?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEAAXXZ";
-  case 0x0180: return "??_F?$time_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEAAXXZ";
-  case 0x0181: return "??_F?$time_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEAAXXZ";
-  case 0x0182: return "??_F?$time_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEAAXXZ";
-  case 0x0183: return "??_F_Locinfo@std@@QEAAXXZ";
-  case 0x0184: return "??_F_Timevec@std@@QEAAXXZ";
-  case 0x0185: return "??_Fcodecvt_base@std@@QEAAXXZ";
-  case 0x0186: return "??_Fctype_base@std@@QEAAXXZ";
-  case 0x0187: return "??_Ffacet@locale@std@@QEAAXXZ";
-  case 0x0188: return "??_Fid@locale@std@@QEAAXXZ";
-  case 0x0189: return "??_Ftime_base@std@@QEAAXXZ";
-  case 0x018a: return "?GetNextAsyncId@platform@details@Concurrency@@YAIXZ";
-  case 0x018b: return "?NFS_Allocate@details@Concurrency@@YAPEAX_K0PEAX@Z";
-  case 0x018c: return "?NFS_Free@details@Concurrency@@YAXPEAX@Z";
-  case 0x018d: return "?NFS_GetLineSize@details@Concurrency@@YA_KXZ";
-  case 0x018e: return "?_10@placeholders@std@@3V?$_Ph@$09@2@A";
-  case 0x018f: return "?_11@placeholders@std@@3V?$_Ph@$0L@@2@A";
-  case 0x0190: return "?_12@placeholders@std@@3V?$_Ph@$0M@@2@A";
-  case 0x0191: return "?_13@placeholders@std@@3V?$_Ph@$0N@@2@A";
-  case 0x0192: return "?_14@placeholders@std@@3V?$_Ph@$0O@@2@A";
-  case 0x0193: return "?_15@placeholders@std@@3V?$_Ph@$0P@@2@A";
-  case 0x0194: return "?_16@placeholders@std@@3V?$_Ph@$0BA@@2@A";
-  case 0x0195: return "?_17@placeholders@std@@3V?$_Ph@$0BB@@2@A";
-  case 0x0196: return "?_18@placeholders@std@@3V?$_Ph@$0BC@@2@A";
-  case 0x0197: return "?_19@placeholders@std@@3V?$_Ph@$0BD@@2@A";
-  case 0x0198: return "?_1@placeholders@std@@3V?$_Ph@$00@2@A";
-  case 0x0199: return "?_20@placeholders@std@@3V?$_Ph@$0BE@@2@A";
-  case 0x019a: return "?_2@placeholders@std@@3V?$_Ph@$01@2@A";
-  case 0x019b: return "?_3@placeholders@std@@3V?$_Ph@$02@2@A";
-  case 0x019c: return "?_4@placeholders@std@@3V?$_Ph@$03@2@A";
-  case 0x019d: return "?_5@placeholders@std@@3V?$_Ph@$04@2@A";
-  case 0x019e: return "?_6@placeholders@std@@3V?$_Ph@$05@2@A";
-  case 0x019f: return "?_7@placeholders@std@@3V?$_Ph@$06@2@A";
-  case 0x01a0: return "?_8@placeholders@std@@3V?$_Ph@$07@2@A";
-  case 0x01a1: return "?_9@placeholders@std@@3V?$_Ph@$08@2@A";
-  case 0x01a2: return "?_Addcats@_Locinfo@std@@QEAAAEAV12@HPEBD@Z";
-  case 0x01a3: return "?_Addfac@_Locimp@locale@std@@AEAAXPEAVfacet@23@_K@Z";
-  case 0x01a4: return "?_Addstd@ios_base@std@@SAXPEAV12@@Z";
-  case 0x01a5: return "?_Advance@_Concurrent_queue_iterator_base_v4@details@Concurrency@@IEAAXXZ";
-  case 0x01a6: return "?_Assign@_Concurrent_queue_iterator_base_v4@details@Concurrency@@IEAAXAEBV123@@Z";
-  case 0x01a7: return "?_Atexit@@YAXP6AXXZ@Z";
-  case 0x01a8: return "?_BADOFF@std@@3_JB";
-  case 0x01a9: return "?_Byte_reverse_table@details@Concurrency@@3QBEB";
-  case 0x01aa: return "?_C_str@?$_Yarn@D@std@@QEBAPEBDXZ";
-  case 0x01ab: return "?_C_str@?$_Yarn@_W@std@@QEBAPEB_WXZ";
-  case 0x01ac: return "?_Callfns@ios_base@std@@AEAAXW4event@12@@Z";
-  case 0x01ad: return "?_Clocptr@_Locimp@locale@std@@0PEAV123@EA";
-  case 0x01ae: return "?_Close_dir@sys@tr2@std@@YAXPEAX@Z";
-  case 0x01af: return "?_Copy_file@sys@tr2@std@@YAHPEBD0_N@Z";
-  case 0x01b0: return "?_Copy_file@sys@tr2@std@@YAHPEB_W0_N@Z";
-  case 0x01b1: return "?_Current_get@sys@tr2@std@@YAPEADAEAY0BAE@D@Z";
-  case 0x01b2: return "?_Current_get@sys@tr2@std@@YAPEA_WAEAY0BAE@_W@Z";
-  case 0x01b3: return "?_Current_set@sys@tr2@std@@YA_NPEBD@Z";
-  case 0x01b4: return "?_Current_set@sys@tr2@std@@YA_NPEB_W@Z";
-  case 0x01b5: return "?_Decref@facet@locale@std@@UEAAPEAV_Facet_base@3@XZ";
-  case 0x01b6: return "?_Donarrow@?$ctype@G@std@@IEBADGD@Z";
-  case 0x01b7: return "?_Donarrow@?$ctype@_W@std@@IEBAD_WD@Z";
-  case 0x01b8: return "?_Dowiden@?$ctype@G@std@@IEBAGD@Z";
-  case 0x01b9: return "?_Dowiden@?$ctype@_W@std@@IEBA_WD@Z";
-  case 0x01ba: return "?_Empty@?$_Yarn@D@std@@QEBA_NXZ";
-  case 0x01bb: return "?_Empty@?$_Yarn@_W@std@@QEBA_NXZ";
-  case 0x01bc: return "?_Equivalent@sys@tr2@std@@YAHPEBD0@Z";
-  case 0x01bd: return "?_Equivalent@sys@tr2@std@@YAHPEB_W0@Z";
-  case 0x01be: return "?_Ffmt@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@AEBAPEADPEADDH@Z";
-  case 0x01bf: return "?_Ffmt@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@AEBAPEADPEADDH@Z";
-  case 0x01c0: return "?_Ffmt@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@AEBAPEADPEADDH@Z";
-  case 0x01c1: return "?_File_size@sys@tr2@std@@YA_KPEBD@Z";
-  case 0x01c2: return "?_File_size@sys@tr2@std@@YA_KPEB_W@Z";
-  case 0x01c3: return "?_Findarr@ios_base@std@@AEAAAEAU_Iosarray@12@H@Z";
-  case 0x01c4: return "?_Fiopen@std@@YAPEAU_iobuf@@PEBDHH@Z";
-  case 0x01c5: return "?_Fiopen@std@@YAPEAU_iobuf@@PEBGHH@Z";
-  case 0x01c6: return "?_Fiopen@std@@YAPEAU_iobuf@@PEB_WHH@Z";
-  case 0x01c7: return "?_Fput@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@AEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@V32@AEAVios_base@2@DPEBD_K333@Z";
-  case 0x01c8: return "?_Fput@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@AEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@V32@AEAVios_base@2@GPEBD_K333@Z";
-  case 0x01c9: return "?_Fput@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@AEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@AEAVios_base@2@_WPEBD_K444@Z";
-  case 0x01ca: return "?_Future_error_map@std@@YAPEBDH@Z";
-  case 0x01cb: return "?_GetCombinableSize@details@Concurrency@@YA_KXZ";
-  case 0x01cc: return "?_Getcat@?$codecvt@DDH@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z";
-  case 0x01cd: return "?_Getcat@?$codecvt@GDH@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z";
-  case 0x01ce: return "?_Getcat@?$codecvt@_WDH@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z";
-  case 0x01cf: return "?_Getcat@?$ctype@D@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z";
-  case 0x01d0: return "?_Getcat@?$ctype@G@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z";
-  case 0x01d1: return "?_Getcat@?$ctype@_W@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z";
-  case 0x01d2: return "?_Getcat@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z";
-  case 0x01d3: return "?_Getcat@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z";
-  case 0x01d4: return "?_Getcat@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z";
-  case 0x01d5: return "?_Getcat@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z";
-  case 0x01d6: return "?_Getcat@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z";
-  case 0x01d7: return "?_Getcat@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z";
-  case 0x01d8: return "?_Getcat@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z";
-  case 0x01d9: return "?_Getcat@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z";
-  case 0x01da: return "?_Getcat@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z";
-  case 0x01db: return "?_Getcat@?$time_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z";
-  case 0x01dc: return "?_Getcat@?$time_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z";
-  case 0x01dd: return "?_Getcat@?$time_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z";
-  case 0x01de: return "?_Getcat@facet@locale@std@@SA_KPEAPEBV123@PEBV23@@Z";
-  case 0x01df: return "?_Getcoll@_Locinfo@std@@QEBA?AU_Collvec@@XZ";
-  case 0x01e0: return "?_Getctype@_Locinfo@std@@QEBA?AU_Ctypevec@@XZ";
-  case 0x01e1: return "?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ";
-  case 0x01e2: return "?_Getdateorder@_Locinfo@std@@QEBAHXZ";
-  case 0x01e3: return "?_Getdays@_Locinfo@std@@QEBAPEBDXZ";
-  case 0x01e4: return "?_Getfalse@_Locinfo@std@@QEBAPEBDXZ";
-  case 0x01e5: return "?_Getffld@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@AEBAHPEADAEAV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@1AEAVios_base@2@PEAH@Z";
-  case 0x01e6: return "?_Getffld@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@AEBAHPEADAEAV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@1AEAVios_base@2@PEAH@Z";
-  case 0x01e7: return "?_Getffld@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@AEBAHPEADAEAV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@1AEAVios_base@2@PEAH@Z";
-  case 0x01e8: return "?_Getffldx@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@AEBAHPEADAEAV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@1AEAVios_base@2@PEAH@Z";
-  case 0x01e9: return "?_Getffldx@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@AEBAHPEADAEAV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@1AEAVios_base@2@PEAH@Z";
-  case 0x01ea: return "?_Getffldx@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@AEBAHPEADAEAV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@1AEAVios_base@2@PEAH@Z";
-  case 0x01eb: return "?_Getfmt@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@PEBD@Z";
-  case 0x01ec: return "?_Getfmt@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@IEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@PEBD@Z";
-  case 0x01ed: return "?_Getfmt@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@PEBD@Z";
-  case 0x01ee: return "?_Getgloballocale@locale@std@@CAPEAV_Locimp@12@XZ";
-  case 0x01ef: return "?_Getifld@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@AEBAHPEADAEAV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@1HAEBVlocale@2@@Z";
-  case 0x01f0: return "?_Getifld@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@AEBAHPEADAEAV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@1HAEBVlocale@2@@Z";
-  case 0x01f1: return "?_Getifld@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@AEBAHPEADAEAV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@1HAEBVlocale@2@@Z";
-  case 0x01f2: return "?_Getint@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@AEBAHAEAV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@0HHAEAHAEBV?$ctype@D@2@@Z";
-  case 0x01f3: return "?_Getint@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@AEBAHAEAV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@0HHAEAHAEBV?$ctype@G@2@@Z";
-  case 0x01f4: return "?_Getint@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@AEBAHAEAV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@0HHAEAHAEBV?$ctype@_W@2@@Z";
-  case 0x01f5: return "?_Getlconv@_Locinfo@std@@QEBAPEBUlconv@@XZ";
-  case 0x01f6: return "?_Getmonths@_Locinfo@std@@QEBAPEBDXZ";
-  case 0x01f7: return "?_Getname@_Locinfo@std@@QEBAPEBDXZ";
-  case 0x01f8: return "?_Getpfirst@_Container_base12@std@@QEBAPEAPEAU_Iterator_base12@2@XZ";
-  case 0x01f9: return "?_Getptr@_Timevec@std@@QEBAPEAXXZ";
-  case 0x01fa: return "?_Gettnames@_Locinfo@std@@QEBA?AV_Timevec@2@XZ";
-  case 0x01fb: return "?_Gettrue@_Locinfo@std@@QEBAPEBDXZ";
-  case 0x01fc: return "?_Gnavail@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBA_JXZ";
-  case 0x01fd: return "?_Gnavail@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEBA_JXZ";
-  case 0x01fe: return "?_Gnavail@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEBA_JXZ";
-  case 0x01ff: return "?_Gndec@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAPEADXZ";
-  case 0x0200: return "?_Gndec@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAPEAGXZ";
-  case 0x0201: return "?_Gndec@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAPEA_WXZ";
-  case 0x0202: return "?_Gninc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAPEADXZ";
-  case 0x0203: return "?_Gninc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAPEAGXZ";
-  case 0x0204: return "?_Gninc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAPEA_WXZ";
-  case 0x0205: return "?_Gnpreinc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAPEADXZ";
-  case 0x0206: return "?_Gnpreinc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAPEAGXZ";
-  case 0x0207: return "?_Gnpreinc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAPEA_WXZ";
-  case 0x0208: return "?_Id_cnt@id@locale@std@@0HA";
-  case 0x0209: return "?_Ifmt@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@AEBAPEADPEADPEBDH@Z";
-  case 0x020a: return "?_Ifmt@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@AEBAPEADPEADPEBDH@Z";
-  case 0x020b: return "?_Ifmt@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@AEBAPEADPEADPEBDH@Z";
-  case 0x020c: return "?_Incref@facet@locale@std@@UEAAXXZ";
-  case 0x020d: return "?_Index@ios_base@std@@0HA";
-  case 0x020e: return "?_Init@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXPEAPEAD0PEAH001@Z";
-  case 0x020f: return "?_Init@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXXZ";
-  case 0x0210: return "?_Init@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAXPEAPEAG0PEAH001@Z";
-  case 0x0211: return "?_Init@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAXXZ";
-  case 0x0212: return "?_Init@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAXPEAPEA_W0PEAH001@Z";
-  case 0x0213: return "?_Init@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAXXZ";
-  case 0x0214: return "?_Init@?$codecvt@DDH@std@@IEAAXAEBV_Locinfo@2@@Z";
-  case 0x0215: return "?_Init@?$codecvt@GDH@std@@IEAAXAEBV_Locinfo@2@@Z";
-  case 0x0216: return "?_Init@?$codecvt@_WDH@std@@IEAAXAEBV_Locinfo@2@@Z";
-  case 0x0217: return "?_Init@?$ctype@D@std@@IEAAXAEBV_Locinfo@2@@Z";
-  case 0x0218: return "?_Init@?$ctype@G@std@@IEAAXAEBV_Locinfo@2@@Z";
-  case 0x0219: return "?_Init@?$ctype@_W@std@@IEAAXAEBV_Locinfo@2@@Z";
-  case 0x021a: return "?_Init@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAXAEBV_Locinfo@2@@Z";
-  case 0x021b: return "?_Init@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@IEAAXAEBV_Locinfo@2@@Z";
-  case 0x021c: return "?_Init@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAXAEBV_Locinfo@2@@Z";
-  case 0x021d: return "?_Init@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAXAEBV_Locinfo@2@@Z";
-  case 0x021e: return "?_Init@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@IEAAXAEBV_Locinfo@2@@Z";
-  case 0x021f: return "?_Init@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAXAEBV_Locinfo@2@@Z";
-  case 0x0220: return "?_Init@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAXAEBV_Locinfo@2@@Z";
-  case 0x0221: return "?_Init@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@IEAAXAEBV_Locinfo@2@@Z";
-  case 0x0222: return "?_Init@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAXAEBV_Locinfo@2@@Z";
-  case 0x0223: return "?_Init@?$time_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAXAEBV_Locinfo@2@@Z";
-  case 0x0224: return "?_Init@?$time_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@IEAAXAEBV_Locinfo@2@@Z";
-  case 0x0225: return "?_Init@?$time_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAXAEBV_Locinfo@2@@Z";
-  case 0x0226: return "?_Init@ios_base@std@@IEAAXXZ";
-  case 0x0227: return "?_Init@locale@std@@CAPEAV_Locimp@12@_N@Z";
-  case 0x0228: return "?_Init_cnt@Init@ios_base@std@@0HA";
-  case 0x0229: return "?_Init_cnt@_UShinit@std@@0HA";
-  case 0x022a: return "?_Init_cnt@_Winit@std@@0HA";
-  case 0x022b: return "?_Init_cnt_func@Init@ios_base@std@@CAAEAHXZ";
-  case 0x022c: return "?_Init_ctor@Init@ios_base@std@@CAXPEAV123@@Z";
-  case 0x022d: return "?_Init_dtor@Init@ios_base@std@@CAXPEAV123@@Z";
-  case 0x022e: return "?_Init_locks_ctor@_Init_locks@std@@CAXPEAV12@@Z";
-  case 0x022f: return "?_Init_locks_dtor@_Init_locks@std@@CAXPEAV12@@Z";
-  case 0x0230: return "?_Internal_assign@_Concurrent_vector_base_v4@details@Concurrency@@IEAAXAEBV123@_KP6AXPEAX1@ZP6AX2PEBX1@Z5@Z";
-  case 0x0231: return "?_Internal_capacity@_Concurrent_vector_base_v4@details@Concurrency@@IEBA_KXZ";
-  case 0x0232: return "?_Internal_clear@_Concurrent_vector_base_v4@details@Concurrency@@IEAA_KP6AXPEAX_K@Z@Z";
-  case 0x0233: return "?_Internal_compact@_Concurrent_vector_base_v4@details@Concurrency@@IEAAPEAX_KPEAXP6AX10@ZP6AX1PEBX0@Z@Z";
-  case 0x0234: return "?_Internal_copy@_Concurrent_vector_base_v4@details@Concurrency@@IEAAXAEBV123@_KP6AXPEAXPEBX1@Z@Z";
-  case 0x0235: return "?_Internal_empty@_Concurrent_queue_base_v4@details@Concurrency@@IEBA_NXZ";
-  case 0x0236: return "?_Internal_finish_clear@_Concurrent_queue_base_v4@details@Concurrency@@IEAAXXZ";
-  case 0x0237: return "?_Internal_grow_by@_Concurrent_vector_base_v4@details@Concurrency@@IEAA_K_K0P6AXPEAXPEBX0@Z2@Z";
-  case 0x0238: return "?_Internal_grow_to_at_least_with_result@_Concurrent_vector_base_v4@details@Concurrency@@IEAA_K_K0P6AXPEAXPEBX0@Z2@Z";
-  case 0x0239: return "?_Internal_move_push@_Concurrent_queue_base_v4@details@Concurrency@@IEAAXPEAX@Z";
-  case 0x023a: return "?_Internal_pop_if_present@_Concurrent_queue_base_v4@details@Concurrency@@IEAA_NPEAX@Z";
-  case 0x023b: return "?_Internal_push@_Concurrent_queue_base_v4@details@Concurrency@@IEAAXPEBX@Z";
-  case 0x023c: return "?_Internal_push_back@_Concurrent_vector_base_v4@details@Concurrency@@IEAAPEAX_KAEA_K@Z";
-  case 0x023d: return "?_Internal_reserve@_Concurrent_vector_base_v4@details@Concurrency@@IEAAX_K00@Z";
-  case 0x023e: return "?_Internal_resize@_Concurrent_vector_base_v4@details@Concurrency@@IEAAX_K00P6AXPEAX0@ZP6AX1PEBX0@Z3@Z";
-  case 0x023f: return "?_Internal_size@_Concurrent_queue_base_v4@details@Concurrency@@IEBA_KXZ";
-  case 0x0240: return "?_Internal_swap@_Concurrent_queue_base_v4@details@Concurrency@@IEAAXAEAV123@@Z";
-  case 0x0241: return "?_Internal_swap@_Concurrent_vector_base_v4@details@Concurrency@@IEAAXAEAV123@@Z";
-  case 0x0242: return "?_Internal_throw_exception@_Concurrent_queue_base_v4@details@Concurrency@@IEBAXXZ";
-  case 0x0243: return "?_Internal_throw_exception@_Concurrent_vector_base_v4@details@Concurrency@@IEBAX_K@Z";
-  case 0x0244: return "?_Ios_base_dtor@ios_base@std@@CAXPEAV12@@Z";
-  case 0x0245: return "?_Ipfx@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAA_N_N@Z";
-  case 0x0246: return "?_Ipfx@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAA_N_N@Z";
-  case 0x0247: return "?_Ipfx@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAA_N_N@Z";
-  case 0x0248: return "?_Iput@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@AEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@V32@AEAVios_base@2@DPEAD_K@Z";
-  case 0x0249: return "?_Iput@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@AEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@V32@AEAVios_base@2@GPEAD_K@Z";
-  case 0x024a: return "?_Iput@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@AEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@AEAVios_base@2@_WPEAD_K@Z";
-  case 0x024b: return "?_Last_write_time@sys@tr2@std@@YAXPEBD_J@Z";
-  case 0x024c: return "?_Last_write_time@sys@tr2@std@@YAXPEB_W_J@Z";
-  case 0x024d: return "?_Last_write_time@sys@tr2@std@@YA_JPEBD@Z";
-  case 0x024e: return "?_Last_write_time@sys@tr2@std@@YA_JPEB_W@Z";
-  case 0x024f: return "?_Launch@_Pad@std@@QEAAXPEAU_Thrd_imp_t@@@Z";
-  case 0x0250: return "?_Link@sys@tr2@std@@YAHPEBD0@Z";
-  case 0x0251: return "?_Link@sys@tr2@std@@YAHPEB_W0@Z";
-  case 0x0252: return "?_Locimp_Addfac@_Locimp@locale@std@@CAXPEAV123@PEAVfacet@23@_K@Z";
-  case 0x0253: return "?_Locimp_ctor@_Locimp@locale@std@@CAXPEAV123@AEBV123@@Z";
-  case 0x0254: return "?_Locimp_dtor@_Locimp@locale@std@@CAXPEAV123@@Z";
-  case 0x0255: return "?_Locinfo_Addcats@_Locinfo@std@@SAAEAV12@PEAV12@HPEBD@Z";
-  case 0x0256: return "?_Locinfo_ctor@_Locinfo@std@@SAXPEAV12@HPEBD@Z";
-  case 0x0257: return "?_Locinfo_ctor@_Locinfo@std@@SAXPEAV12@PEBD@Z";
-  case 0x0258: return "?_Locinfo_dtor@_Locinfo@std@@SAXPEAV12@@Z";
-  case 0x0259: return "?_Lock@?$basic_streambuf@DU?$char_traits@D@std@@@std@@UEAAXXZ";
-  case 0x025a: return "?_Lock@?$basic_streambuf@GU?$char_traits@G@std@@@std@@UEAAXXZ";
-  case 0x025b: return "?_Lock@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@UEAAXXZ";
-  case 0x025c: return "?_Lockit_ctor@_Lockit@std@@CAXPEAV12@@Z";
-  case 0x025d: return "?_Lockit_ctor@_Lockit@std@@CAXPEAV12@H@Z";
-  case 0x025e: return "?_Lockit_ctor@_Lockit@std@@SAXH@Z";
-  case 0x025f: return "?_Lockit_dtor@_Lockit@std@@CAXPEAV12@@Z";
-  case 0x0260: return "?_Lockit_dtor@_Lockit@std@@SAXH@Z";
-  case 0x0261: return "?_Lstat@sys@tr2@std@@YA?AW4file_type@123@PEBDAEAH@Z";
-  case 0x0262: return "?_Lstat@sys@tr2@std@@YA?AW4file_type@123@PEB_WAEAH@Z";
-  case 0x0263: return "?_MP_Add@std@@YAXQEA_K_K@Z";
-  case 0x0264: return "?_MP_Get@std@@YA_KQEA_K@Z";
-  case 0x0265: return "?_MP_Mul@std@@YAXQEA_K_K1@Z";
-  case 0x0266: return "?_MP_Rem@std@@YAXQEA_K_K@Z";
-  case 0x0267: return "?_Make_dir@sys@tr2@std@@YAHPEBD@Z";
-  case 0x0268: return "?_Make_dir@sys@tr2@std@@YAHPEB_W@Z";
-  case 0x0269: return "?_Makeloc@_Locimp@locale@std@@CAPEAV123@AEBV_Locinfo@3@HPEAV123@PEBV23@@Z";
-  case 0x026a: return "?_Makeushloc@_Locimp@locale@std@@CAXAEBV_Locinfo@3@HPEAV123@PEBV23@@Z";
-  case 0x026b: return "?_Makewloc@_Locimp@locale@std@@CAXAEBV_Locinfo@3@HPEAV123@PEBV23@@Z";
-  case 0x026c: return "?_Makexloc@_Locimp@locale@std@@CAXAEBV_Locinfo@3@HPEAV123@PEBV23@@Z";
-  case 0x026d: return "?_Mtx_delete@threads@stdext@@YAXPEAX@Z";
-  case 0x026e: return "?_Mtx_lock@threads@stdext@@YAXPEAX@Z";
-  case 0x026f: return "?_Mtx_new@threads@stdext@@YAXAEAPEAX@Z";
-  case 0x0270: return "?_Mtx_unlock@threads@stdext@@YAXPEAX@Z";
-  case 0x0271: return "?_New_Locimp@_Locimp@locale@std@@CAPEAV123@AEBV123@@Z";
-  case 0x0272: return "?_New_Locimp@_Locimp@locale@std@@CAPEAV123@_N@Z";
-  case 0x0273: return "?_Open_dir@sys@tr2@std@@YAPEAXAEAY0BAE@DPEBDAEAHAEAW4file_type@123@@Z";
-  case 0x0274: return "?_Open_dir@sys@tr2@std@@YAPEAXAEAY0BAE@_WPEB_WAEAHAEAW4file_type@123@@Z";
-  case 0x0275: return "?_Orphan_all@_Container_base0@std@@QEAAXXZ";
-  case 0x0276: return "?_Orphan_all@_Container_base12@std@@QEAAXXZ";
-  case 0x0277: return "?_Osfx@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAXXZ";
-  case 0x0278: return "?_Osfx@?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAXXZ";
-  case 0x0279: return "?_Osfx@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAXXZ";
-  case 0x027a: return "?_Pnavail@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBA_JXZ";
-  case 0x027b: return "?_Pnavail@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEBA_JXZ";
-  case 0x027c: return "?_Pnavail@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEBA_JXZ";
-  case 0x027d: return "?_Pninc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAPEADXZ";
-  case 0x027e: return "?_Pninc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAPEAGXZ";
-  case 0x027f: return "?_Pninc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAPEA_WXZ";
-  case 0x0280: return "?_Ptr_cerr@std@@3PEAV?$basic_ostream@DU?$char_traits@D@std@@@1@EA";
-  case 0x0281: return "?_Ptr_cin@std@@3PEAV?$basic_istream@DU?$char_traits@D@std@@@1@EA";
-  case 0x0282: return "?_Ptr_clog@std@@3PEAV?$basic_ostream@DU?$char_traits@D@std@@@1@EA";
-  case 0x0283: return "?_Ptr_cout@std@@3PEAV?$basic_ostream@DU?$char_traits@D@std@@@1@EA";
-  case 0x0284: return "?_Ptr_wcerr@std@@3PEAV?$basic_ostream@GU?$char_traits@G@std@@@1@EA";
-  case 0x0285: return "?_Ptr_wcerr@std@@3PEAV?$basic_ostream@_WU?$char_traits@_W@std@@@1@EA";
-  case 0x0286: return "?_Ptr_wcin@std@@3PEAV?$basic_istream@GU?$char_traits@G@std@@@1@EA";
-  case 0x0287: return "?_Ptr_wcin@std@@3PEAV?$basic_istream@_WU?$char_traits@_W@std@@@1@EA";
-  case 0x0288: return "?_Ptr_wclog@std@@3PEAV?$basic_ostream@GU?$char_traits@G@std@@@1@EA";
-  case 0x0289: return "?_Ptr_wclog@std@@3PEAV?$basic_ostream@_WU?$char_traits@_W@std@@@1@EA";
-  case 0x028a: return "?_Ptr_wcout@std@@3PEAV?$basic_ostream@GU?$char_traits@G@std@@@1@EA";
-  case 0x028b: return "?_Ptr_wcout@std@@3PEAV?$basic_ostream@_WU?$char_traits@_W@std@@@1@EA";
-  case 0x028c: return "?_Put@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@AEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@V32@PEBD_K@Z";
-  case 0x028d: return "?_Put@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@AEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@V32@PEBG_K@Z";
-  case 0x028e: return "?_Put@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@AEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@PEB_W_K@Z";
-  case 0x028f: return "?_Raise_handler@std@@3P6AXAEBVexception@stdext@@@ZEA";
-  case 0x0290: return "?_Random_device@std@@YAIXZ";
-  case 0x0291: return "?_Read_dir@sys@tr2@std@@YAPEADAEAY0BAE@DPEAXAEAW4file_type@123@@Z";
-  case 0x0292: return "?_Read_dir@sys@tr2@std@@YAPEA_WAEAY0BAE@_WPEAXAEAW4file_type@123@@Z";
-  case 0x0293: return "?_Release@_Pad@std@@QEAAXXZ";
-  case 0x0294: return "?_Remove_dir@sys@tr2@std@@YA_NPEBD@Z";
-  case 0x0295: return "?_Remove_dir@sys@tr2@std@@YA_NPEB_W@Z";
-  case 0x0296: return "?_Rename@sys@tr2@std@@YAHPEBD0@Z";
-  case 0x0297: return "?_Rename@sys@tr2@std@@YAHPEB_W0@Z";
-  case 0x0298: return "?_Rep@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@AEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@V32@D_K@Z";
-  case 0x0299: return "?_Rep@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@AEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@V32@G_K@Z";
-  case 0x029a: return "?_Rep@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@AEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@_W_K@Z";
-  case 0x029b: return "?_Rethrow_future_exception@std@@YAXVexception_ptr@1@@Z";
-  case 0x029c: return "?_Rng_abort@std@@YAXPEBD@Z";
-  case 0x029d: return "?_Segment_index_of@_Concurrent_vector_base_v4@details@Concurrency@@KA_K_K@Z";
-  case 0x029e: return "?_Setgloballocale@locale@std@@CAXPEAX@Z";
-  case 0x029f: return "?_Src@?1??_Getffldx@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@AEBAHPEADAEAV?$istreambuf_iterator@DU?$char_traits@D@std@@@3@1AEAVios_base@3@PEAH@Z@4QBDB";
-  case 0x02a0: return "?_Src@?1??_Getffldx@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@AEBAHPEADAEAV?$istreambuf_iterator@GU?$char_traits@G@std@@@3@1AEAVios_base@3@PEAH@Z@4QBDB";
-  case 0x02a1: return "?_Src@?1??_Getffldx@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@AEBAHPEADAEAV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@3@1AEAVios_base@3@PEAH@Z@4QBDB";
-  case 0x02a2: return "?_Src@?1??_Getifld@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@AEBAHPEADAEAV?$istreambuf_iterator@DU?$char_traits@D@std@@@3@1HAEBVlocale@3@@Z@4QBDB";
-  case 0x02a3: return "?_Src@?1??_Getifld@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@AEBAHPEADAEAV?$istreambuf_iterator@GU?$char_traits@G@std@@@3@1HAEBVlocale@3@@Z@4QBDB";
-  case 0x02a4: return "?_Src@?1??_Getifld@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@AEBAHPEADAEAV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@3@1HAEBVlocale@3@@Z@4QBDB";
-  case 0x02a5: return "?_Src@?3??_Getffld@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@AEBAHPEADAEAV?$istreambuf_iterator@DU?$char_traits@D@std@@@3@1AEAVios_base@3@PEAH@Z@4QBDB";
-  case 0x02a6: return "?_Src@?3??_Getffld@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@AEBAHPEADAEAV?$istreambuf_iterator@GU?$char_traits@G@std@@@3@1AEAVios_base@3@PEAH@Z@4QBDB";
-  case 0x02a7: return "?_Src@?3??_Getffld@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@AEBAHPEADAEAV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@3@1AEAVios_base@3@PEAH@Z@4QBDB";
-  case 0x02a8: return "?_Stat@sys@tr2@std@@YA?AW4file_type@123@PEBDAEAH@Z";
-  case 0x02a9: return "?_Stat@sys@tr2@std@@YA?AW4file_type@123@PEB_WAEAH@Z";
-  case 0x02aa: return "?_Statvfs@sys@tr2@std@@YA?AUspace_info@123@PEBD@Z";
-  case 0x02ab: return "?_Statvfs@sys@tr2@std@@YA?AUspace_info@123@PEB_W@Z";
-  case 0x02ac: return "?_Swap_all@_Container_base0@std@@QEAAXAEAU12@@Z";
-  case 0x02ad: return "?_Swap_all@_Container_base12@std@@QEAAXAEAU12@@Z";
-  case 0x02ae: return "?_Symlink@sys@tr2@std@@YAHPEBD0@Z";
-  case 0x02af: return "?_Symlink@sys@tr2@std@@YAHPEB_W0@Z";
-  case 0x02b0: return "?_Sync@ios_base@std@@0_NA";
-  case 0x02b1: return "?_Syserror_map@std@@YAPEBDH@Z";
-  case 0x02b2: return "?_Throw_C_error@std@@YAXH@Z";
-  case 0x02b3: return "?_Throw_Cpp_error@std@@YAXH@Z";
-  case 0x02b4: return "?_Throw_future_error@std@@YAXAEBVerror_code@1@@Z";
-  case 0x02b5: return "?_Throw_lock_error@threads@stdext@@YAXXZ";
-  case 0x02b6: return "?_Throw_resource_error@threads@stdext@@YAXXZ";
-  case 0x02b7: return "?_Tidy@?$_Yarn@D@std@@AEAAXXZ";
-  case 0x02b8: return "?_Tidy@?$_Yarn@_W@std@@AEAAXXZ";
-  case 0x02b9: return "?_Tidy@?$ctype@D@std@@IEAAXXZ";
-  case 0x02ba: return "?_Tidy@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@AEAAXXZ";
-  case 0x02bb: return "?_Tidy@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@AEAAXXZ";
-  case 0x02bc: return "?_Tidy@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@AEAAXXZ";
-  case 0x02bd: return "?_Tidy@ios_base@std@@AEAAXXZ";
-  case 0x02be: return "?_Unlink@sys@tr2@std@@YAHPEBD@Z";
-  case 0x02bf: return "?_Unlink@sys@tr2@std@@YAHPEB_W@Z";
-  case 0x02c0: return "?_Unlock@?$basic_streambuf@DU?$char_traits@D@std@@@std@@UEAAXXZ";
-  case 0x02c1: return "?_Unlock@?$basic_streambuf@GU?$char_traits@G@std@@@std@@UEAAXXZ";
-  case 0x02c2: return "?_Unlock@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@UEAAXXZ";
-  case 0x02c3: return "?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ";
-  case 0x02c4: return "?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ";
-  case 0x02c5: return "?_W_Gettnames@_Locinfo@std@@QEBA?AV_Timevec@2@XZ";
-  case 0x02c6: return "?_Winerror_map@std@@YAPEBDH@Z";
-  case 0x02c7: return "?_XLgamma@std@@YAMM@Z";
-  case 0x02c8: return "?_XLgamma@std@@YANN@Z";
-  case 0x02c9: return "?_XLgamma@std@@YAOO@Z";
-  case 0x02ca: return "?_Xbad_alloc@std@@YAXXZ";
-  case 0x02cb: return "?_Xbad_function_call@std@@YAXXZ";
-  case 0x02cc: return "?_Xinvalid_argument@std@@YAXPEBD@Z";
-  case 0x02cd: return "?_Xlength_error@std@@YAXPEBD@Z";
-  case 0x02ce: return "?_Xout_of_range@std@@YAXPEBD@Z";
-  case 0x02cf: return "?_Xoverflow_error@std@@YAXPEBD@Z";
-  case 0x02d0: return "?_Xregex_error@std@@YAXW4error_type@regex_constants@1@@Z";
-  case 0x02d1: return "?_Xruntime_error@std@@YAXPEBD@Z";
-  case 0x02d2: return "?adopt_lock@std@@3Uadopt_lock_t@1@B";
-  case 0x02d3: return "?always_noconv@codecvt_base@std@@QEBA_NXZ";
-  case 0x02d4: return "?bad@ios_base@std@@QEBA_NXZ";
-  case 0x02d5: return "?c_str@?$_Yarn@D@std@@QEBAPEBDXZ";
-  case 0x02d6: return "?cancel@agent@Concurrency@@QEAA_NXZ";
-  case 0x02d7: return "?cerr@std@@3V?$basic_ostream@DU?$char_traits@D@std@@@1@A";
-  case 0x02d8: return "?cin@std@@3V?$basic_istream@DU?$char_traits@D@std@@@1@A";
-  case 0x02d9: return "?classic@locale@std@@SAAEBV12@XZ";
-  case 0x02da: return "?classic_table@?$ctype@D@std@@SAPEBFXZ";
-  case 0x02db: return "?clear@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAXH_N@Z";
-  case 0x02dc: return "?clear@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAXI@Z";
-  case 0x02dd: return "?clear@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAXH_N@Z";
-  case 0x02de: return "?clear@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAXI@Z";
-  case 0x02df: return "?clear@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAXH_N@Z";
-  case 0x02e0: return "?clear@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAXI@Z";
-  case 0x02e1: return "?clear@ios_base@std@@QEAAXH@Z";
-  case 0x02e2: return "?clear@ios_base@std@@QEAAXH_N@Z";
-  case 0x02e3: return "?clear@ios_base@std@@QEAAXI@Z";
-  case 0x02e4: return "?clog@std@@3V?$basic_ostream@DU?$char_traits@D@std@@@1@A";
-  case 0x02e5: return "?copyfmt@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAAEAV12@AEBV12@@Z";
-  case 0x02e6: return "?copyfmt@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAAEAV12@AEBV12@@Z";
-  case 0x02e7: return "?copyfmt@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@AEBV12@@Z";
-  case 0x02e8: return "?copyfmt@ios_base@std@@QEAAAEAV12@AEBV12@@Z";
-  case 0x02e9: return "?cout@std@@3V?$basic_ostream@DU?$char_traits@D@std@@@1@A";
-  case 0x02ea: return "?date_order@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEBA?AW4dateorder@time_base@2@XZ";
-  case 0x02eb: return "?date_order@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEBA?AW4dateorder@time_base@2@XZ";
-  case 0x02ec: return "?date_order@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEBA?AW4dateorder@time_base@2@XZ";
-  case 0x02ed: return "?defer_lock@std@@3Udefer_lock_t@1@B";
-  case 0x02ee: return "?do_always_noconv@?$codecvt@DDH@std@@MEBA_NXZ";
-  case 0x02ef: return "?do_always_noconv@?$codecvt@GDH@std@@MEBA_NXZ";
-  case 0x02f0: return "?do_always_noconv@?$codecvt@_WDH@std@@MEBA_NXZ";
-  case 0x02f1: return "?do_always_noconv@codecvt_base@std@@MEBA_NXZ";
-  case 0x02f2: return "?do_date_order@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MEBA?AW4dateorder@time_base@2@XZ";
-  case 0x02f3: return "?do_date_order@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@MEBA?AW4dateorder@time_base@2@XZ";
-  case 0x02f4: return "?do_date_order@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@MEBA?AW4dateorder@time_base@2@XZ";
-  case 0x02f5: return "?do_encoding@?$codecvt@GDH@std@@MEBAHXZ";
-  case 0x02f6: return "?do_encoding@?$codecvt@_WDH@std@@MEBAHXZ";
-  case 0x02f7: return "?do_encoding@codecvt_base@std@@MEBAHXZ";
-  case 0x02f8: return "?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHAEAG@Z";
-  case 0x02f9: return "?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHAEAI@Z";
-  case 0x02fa: return "?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHAEAJ@Z";
-  case 0x02fb: return "?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHAEAK@Z";
-  case 0x02fc: return "?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHAEAM@Z";
-  case 0x02fd: return "?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHAEAN@Z";
-  case 0x02fe: return "?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHAEAO@Z";
-  case 0x02ff: return "?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHAEAPEAX@Z";
-  case 0x0300: return "?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHAEA_J@Z";
-  case 0x0301: return "?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHAEA_K@Z";
-  case 0x0302: return "?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHAEA_N@Z";
-  case 0x0303: return "?do_get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHAEAG@Z";
-  case 0x0304: return "?do_get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHAEAI@Z";
-  case 0x0305: return "?do_get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHAEAJ@Z";
-  case 0x0306: return "?do_get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHAEAK@Z";
-  case 0x0307: return "?do_get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHAEAM@Z";
-  case 0x0308: return "?do_get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHAEAN@Z";
-  case 0x0309: return "?do_get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHAEAO@Z";
-  case 0x030a: return "?do_get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHAEAPEAX@Z";
-  case 0x030b: return "?do_get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHAEA_J@Z";
-  case 0x030c: return "?do_get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHAEA_K@Z";
-  case 0x030d: return "?do_get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHAEA_N@Z";
-  case 0x030e: return "?do_get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHAEAG@Z";
-  case 0x030f: return "?do_get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHAEAI@Z";
-  case 0x0310: return "?do_get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHAEAJ@Z";
-  case 0x0311: return "?do_get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHAEAK@Z";
-  case 0x0312: return "?do_get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHAEAM@Z";
-  case 0x0313: return "?do_get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHAEAN@Z";
-  case 0x0314: return "?do_get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHAEAO@Z";
-  case 0x0315: return "?do_get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHAEAPEAX@Z";
-  case 0x0316: return "?do_get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHAEA_J@Z";
-  case 0x0317: return "?do_get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHAEA_K@Z";
-  case 0x0318: return "?do_get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHAEA_N@Z";
-  case 0x0319: return "?do_get@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@DD@Z";
-  case 0x031a: return "?do_get@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@DD@Z";
-  case 0x031b: return "?do_get@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@DD@Z";
-  case 0x031c: return "?do_get_date@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
-  case 0x031d: return "?do_get_date@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
-  case 0x031e: return "?do_get_date@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
-  case 0x031f: return "?do_get_monthname@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
-  case 0x0320: return "?do_get_monthname@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
-  case 0x0321: return "?do_get_monthname@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
-  case 0x0322: return "?do_get_time@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
-  case 0x0323: return "?do_get_time@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
-  case 0x0324: return "?do_get_time@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
-  case 0x0325: return "?do_get_weekday@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
-  case 0x0326: return "?do_get_weekday@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
-  case 0x0327: return "?do_get_weekday@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
-  case 0x0328: return "?do_get_year@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
-  case 0x0329: return "?do_get_year@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
-  case 0x032a: return "?do_get_year@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
-  case 0x032b: return "?do_in@?$codecvt@DDH@std@@MEBAHAEAHPEBD1AEAPEBDPEAD3AEAPEAD@Z";
-  case 0x032c: return "?do_in@?$codecvt@GDH@std@@MEBAHAEAHPEBD1AEAPEBDPEAG3AEAPEAG@Z";
-  case 0x032d: return "?do_in@?$codecvt@_WDH@std@@MEBAHAEAHPEBD1AEAPEBDPEA_W3AEAPEA_W@Z";
-  case 0x032e: return "?do_is@?$ctype@G@std@@MEBAPEBGPEBG0PEAF@Z";
-  case 0x032f: return "?do_is@?$ctype@G@std@@MEBA_NFG@Z";
-  case 0x0330: return "?do_is@?$ctype@_W@std@@MEBAPEB_WPEB_W0PEAF@Z";
-  case 0x0331: return "?do_is@?$ctype@_W@std@@MEBA_NF_W@Z";
-  case 0x0332: return "?do_length@?$codecvt@DDH@std@@MEBAHAEAHPEBD1_K@Z";
-  case 0x0333: return "?do_length@?$codecvt@GDH@std@@MEBAHAEAHPEBD1_K@Z";
-  case 0x0334: return "?do_length@?$codecvt@_WDH@std@@MEBAHAEAHPEBD1_K@Z";
-  case 0x0335: return "?do_max_length@?$codecvt@GDH@std@@MEBAHXZ";
-  case 0x0336: return "?do_max_length@?$codecvt@_WDH@std@@MEBAHXZ";
-  case 0x0337: return "?do_max_length@codecvt_base@std@@MEBAHXZ";
-  case 0x0338: return "?do_narrow@?$ctype@D@std@@MEBADDD@Z";
-  case 0x0339: return "?do_narrow@?$ctype@D@std@@MEBAPEBDPEBD0DPEAD@Z";
-  case 0x033a: return "?do_narrow@?$ctype@G@std@@MEBADGD@Z";
-  case 0x033b: return "?do_narrow@?$ctype@G@std@@MEBAPEBGPEBG0DPEAD@Z";
-  case 0x033c: return "?do_narrow@?$ctype@_W@std@@MEBAD_WD@Z";
-  case 0x033d: return "?do_narrow@?$ctype@_W@std@@MEBAPEB_WPEB_W0DPEAD@Z";
-  case 0x033e: return "?do_out@?$codecvt@DDH@std@@MEBAHAEAHPEBD1AEAPEBDPEAD3AEAPEAD@Z";
-  case 0x033f: return "?do_out@?$codecvt@GDH@std@@MEBAHAEAHPEBG1AEAPEBGPEAD3AEAPEAD@Z";
-  case 0x0340: return "?do_out@?$codecvt@_WDH@std@@MEBAHAEAHPEB_W1AEAPEB_WPEAD3AEAPEAD@Z";
-  case 0x0341: return "?do_put@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@V32@AEAVios_base@2@DJ@Z";
-  case 0x0342: return "?do_put@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@V32@AEAVios_base@2@DK@Z";
-  case 0x0343: return "?do_put@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@V32@AEAVios_base@2@DN@Z";
-  case 0x0344: return "?do_put@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@V32@AEAVios_base@2@DO@Z";
-  case 0x0345: return "?do_put@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@V32@AEAVios_base@2@DPEBX@Z";
-  case 0x0346: return "?do_put@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@V32@AEAVios_base@2@D_J@Z";
-  case 0x0347: return "?do_put@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@V32@AEAVios_base@2@D_K@Z";
-  case 0x0348: return "?do_put@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@V32@AEAVios_base@2@D_N@Z";
-  case 0x0349: return "?do_put@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@MEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@V32@AEAVios_base@2@GJ@Z";
-  case 0x034a: return "?do_put@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@MEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@V32@AEAVios_base@2@GK@Z";
-  case 0x034b: return "?do_put@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@MEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@V32@AEAVios_base@2@GN@Z";
-  case 0x034c: return "?do_put@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@MEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@V32@AEAVios_base@2@GO@Z";
-  case 0x034d: return "?do_put@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@MEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@V32@AEAVios_base@2@GPEBX@Z";
-  case 0x034e: return "?do_put@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@MEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@V32@AEAVios_base@2@G_J@Z";
-  case 0x034f: return "?do_put@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@MEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@V32@AEAVios_base@2@G_K@Z";
-  case 0x0350: return "?do_put@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@MEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@V32@AEAVios_base@2@G_N@Z";
-  case 0x0351: return "?do_put@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@MEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@AEAVios_base@2@_WJ@Z";
-  case 0x0352: return "?do_put@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@MEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@AEAVios_base@2@_WK@Z";
-  case 0x0353: return "?do_put@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@MEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@AEAVios_base@2@_WN@Z";
-  case 0x0354: return "?do_put@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@MEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@AEAVios_base@2@_WO@Z";
-  case 0x0355: return "?do_put@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@MEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@AEAVios_base@2@_WPEBX@Z";
-  case 0x0356: return "?do_put@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@MEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@AEAVios_base@2@_W_J@Z";
-  case 0x0357: return "?do_put@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@MEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@AEAVios_base@2@_W_K@Z";
-  case 0x0358: return "?do_put@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@MEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@AEAVios_base@2@_W_N@Z";
-  case 0x0359: return "?do_put@?$time_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@V32@AEAVios_base@2@DPEBUtm@@DD@Z";
-  case 0x035a: return "?do_put@?$time_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@MEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@V32@AEAVios_base@2@GPEBUtm@@DD@Z";
-  case 0x035b: return "?do_put@?$time_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@MEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@AEAVios_base@2@_WPEBUtm@@DD@Z";
-  case 0x035c: return "?do_scan_is@?$ctype@G@std@@MEBAPEBGFPEBG0@Z";
-  case 0x035d: return "?do_scan_is@?$ctype@_W@std@@MEBAPEB_WFPEB_W0@Z";
-  case 0x035e: return "?do_scan_not@?$ctype@G@std@@MEBAPEBGFPEBG0@Z";
-  case 0x035f: return "?do_scan_not@?$ctype@_W@std@@MEBAPEB_WFPEB_W0@Z";
-  case 0x0360: return "?do_tolower@?$ctype@D@std@@MEBADD@Z";
-  case 0x0361: return "?do_tolower@?$ctype@D@std@@MEBAPEBDPEADPEBD@Z";
-  case 0x0362: return "?do_tolower@?$ctype@G@std@@MEBAGG@Z";
-  case 0x0363: return "?do_tolower@?$ctype@G@std@@MEBAPEBGPEAGPEBG@Z";
-  case 0x0364: return "?do_tolower@?$ctype@_W@std@@MEBAPEB_WPEA_WPEB_W@Z";
-  case 0x0365: return "?do_tolower@?$ctype@_W@std@@MEBA_W_W@Z";
-  case 0x0366: return "?do_toupper@?$ctype@D@std@@MEBADD@Z";
-  case 0x0367: return "?do_toupper@?$ctype@D@std@@MEBAPEBDPEADPEBD@Z";
-  case 0x0368: return "?do_toupper@?$ctype@G@std@@MEBAGG@Z";
-  case 0x0369: return "?do_toupper@?$ctype@G@std@@MEBAPEBGPEAGPEBG@Z";
-  case 0x036a: return "?do_toupper@?$ctype@_W@std@@MEBAPEB_WPEA_WPEB_W@Z";
-  case 0x036b: return "?do_toupper@?$ctype@_W@std@@MEBA_W_W@Z";
-  case 0x036c: return "?do_unshift@?$codecvt@DDH@std@@MEBAHAEAHPEAD1AEAPEAD@Z";
-  case 0x036d: return "?do_unshift@?$codecvt@GDH@std@@MEBAHAEAHPEAD1AEAPEAD@Z";
-  case 0x036e: return "?do_unshift@?$codecvt@_WDH@std@@MEBAHAEAHPEAD1AEAPEAD@Z";
-  case 0x036f: return "?do_widen@?$ctype@D@std@@MEBADD@Z";
-  case 0x0370: return "?do_widen@?$ctype@D@std@@MEBAPEBDPEBD0PEAD@Z";
-  case 0x0371: return "?do_widen@?$ctype@G@std@@MEBAGD@Z";
-  case 0x0372: return "?do_widen@?$ctype@G@std@@MEBAPEBDPEBD0PEAG@Z";
-  case 0x0373: return "?do_widen@?$ctype@_W@std@@MEBAPEBDPEBD0PEA_W@Z";
-  case 0x0374: return "?do_widen@?$ctype@_W@std@@MEBA_WD@Z";
-  case 0x0375: return "?done@agent@Concurrency@@IEAA_NXZ";
-  case 0x0376: return "?eback@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ";
-  case 0x0377: return "?eback@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEBAPEAGXZ";
-  case 0x0378: return "?eback@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEBAPEA_WXZ";
-  case 0x0379: return "?egptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ";
-  case 0x037a: return "?egptr@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEBAPEAGXZ";
-  case 0x037b: return "?egptr@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEBAPEA_WXZ";
-  case 0x037c: return "?empty@?$_Yarn@D@std@@QEBA_NXZ";
-  case 0x037d: return "?empty@locale@std@@SA?AV12@XZ";
-  case 0x037e: return "?encoding@codecvt_base@std@@QEBAHXZ";
-  case 0x037f: return "?eof@ios_base@std@@QEBA_NXZ";
-  case 0x0380: return "?epptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ";
-  case 0x0381: return "?epptr@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEBAPEAGXZ";
-  case 0x0382: return "?epptr@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEBAPEA_WXZ";
-  case 0x0383: return "?exceptions@ios_base@std@@QEAAXH@Z";
-  case 0x0384: return "?exceptions@ios_base@std@@QEAAXI@Z";
-  case 0x0385: return "?exceptions@ios_base@std@@QEBAHXZ";
-  case 0x0386: return "?fail@ios_base@std@@QEBA_NXZ";
-  case 0x0387: return "?fill@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAADD@Z";
-  case 0x0388: return "?fill@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBADXZ";
-  case 0x0389: return "?fill@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAGG@Z";
-  case 0x038a: return "?fill@?$basic_ios@GU?$char_traits@G@std@@@std@@QEBAGXZ";
-  case 0x038b: return "?fill@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAA_W_W@Z";
-  case 0x038c: return "?fill@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEBA_WXZ";
-  case 0x038d: return "?flags@ios_base@std@@QEAAHH@Z";
-  case 0x038e: return "?flags@ios_base@std@@QEBAHXZ";
-  case 0x038f: return "?flush@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@XZ";
-  case 0x0390: return "?flush@?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@XZ";
-  case 0x0391: return "?flush@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@XZ";
-  case 0x0392: return "?gbump@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXH@Z";
-  case 0x0393: return "?gbump@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAXH@Z";
-  case 0x0394: return "?gbump@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAXH@Z";
-  case 0x0395: return "?gcount@?$basic_istream@DU?$char_traits@D@std@@@std@@QEBA_JXZ";
-  case 0x0396: return "?gcount@?$basic_istream@GU?$char_traits@G@std@@@std@@QEBA_JXZ";
-  case 0x0397: return "?gcount@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEBA_JXZ";
-  case 0x0398: return "?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@AEAD@Z";
-  case 0x0399: return "?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@AEAV?$basic_streambuf@DU?$char_traits@D@std@@@2@@Z";
-  case 0x039a: return "?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@AEAV?$basic_streambuf@DU?$char_traits@D@std@@@2@D@Z";
-  case 0x039b: return "?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@PEAD_J@Z";
-  case 0x039c: return "?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@PEAD_JD@Z";
-  case 0x039d: return "?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAHXZ";
-  case 0x039e: return "?get@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@AEAG@Z";
-  case 0x039f: return "?get@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@AEAV?$basic_streambuf@GU?$char_traits@G@std@@@2@@Z";
-  case 0x03a0: return "?get@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@AEAV?$basic_streambuf@GU?$char_traits@G@std@@@2@G@Z";
-  case 0x03a1: return "?get@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@PEAG_J@Z";
-  case 0x03a2: return "?get@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@PEAG_JG@Z";
-  case 0x03a3: return "?get@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAGXZ";
-  case 0x03a4: return "?get@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@AEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@2@@Z";
-  case 0x03a5: return "?get@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@AEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@2@_W@Z";
-  case 0x03a6: return "?get@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@AEA_W@Z";
-  case 0x03a7: return "?get@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@PEA_W_J@Z";
-  case 0x03a8: return "?get@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@PEA_W_J_W@Z";
-  case 0x03a9: return "?get@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAGXZ";
-  case 0x03aa: return "?get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHAEAG@Z";
-  case 0x03ab: return "?get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHAEAI@Z";
-  case 0x03ac: return "?get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHAEAJ@Z";
-  case 0x03ad: return "?get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHAEAK@Z";
-  case 0x03ae: return "?get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHAEAM@Z";
-  case 0x03af: return "?get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHAEAN@Z";
-  case 0x03b0: return "?get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHAEAO@Z";
-  case 0x03b1: return "?get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHAEAPEAX@Z";
-  case 0x03b2: return "?get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHAEA_J@Z";
-  case 0x03b3: return "?get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHAEA_K@Z";
-  case 0x03b4: return "?get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHAEA_N@Z";
-  case 0x03b5: return "?get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHAEAG@Z";
-  case 0x03b6: return "?get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHAEAI@Z";
-  case 0x03b7: return "?get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHAEAJ@Z";
-  case 0x03b8: return "?get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHAEAK@Z";
-  case 0x03b9: return "?get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHAEAM@Z";
-  case 0x03ba: return "?get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHAEAN@Z";
-  case 0x03bb: return "?get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHAEAO@Z";
-  case 0x03bc: return "?get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHAEAPEAX@Z";
-  case 0x03bd: return "?get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHAEA_J@Z";
-  case 0x03be: return "?get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHAEA_K@Z";
-  case 0x03bf: return "?get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHAEA_N@Z";
-  case 0x03c0: return "?get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHAEAG@Z";
-  case 0x03c1: return "?get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHAEAI@Z";
-  case 0x03c2: return "?get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHAEAJ@Z";
-  case 0x03c3: return "?get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHAEAK@Z";
-  case 0x03c4: return "?get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHAEAM@Z";
-  case 0x03c5: return "?get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHAEAN@Z";
-  case 0x03c6: return "?get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHAEAO@Z";
-  case 0x03c7: return "?get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHAEAPEAX@Z";
-  case 0x03c8: return "?get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHAEA_J@Z";
-  case 0x03c9: return "?get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHAEA_K@Z";
-  case 0x03ca: return "?get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHAEA_N@Z";
-  case 0x03cb: return "?get@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@DD@Z";
-  case 0x03cc: return "?get@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@PEBD4@Z";
-  case 0x03cd: return "?get@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@DD@Z";
-  case 0x03ce: return "?get@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@PEBG4@Z";
-  case 0x03cf: return "?get@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@DD@Z";
-  case 0x03d0: return "?get@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@PEB_W4@Z";
-  case 0x03d1: return "?get_date@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
-  case 0x03d2: return "?get_date@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
-  case 0x03d3: return "?get_date@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
-  case 0x03d4: return "?get_monthname@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
-  case 0x03d5: return "?get_monthname@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
-  case 0x03d6: return "?get_monthname@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
-  case 0x03d7: return "?get_new_handler@std@@YAP6AXXZXZ";
-  case 0x03d8: return "?get_time@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
-  case 0x03d9: return "?get_time@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
-  case 0x03da: return "?get_time@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
-  case 0x03db: return "?get_weekday@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
-  case 0x03dc: return "?get_weekday@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
-  case 0x03dd: return "?get_weekday@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
-  case 0x03de: return "?get_year@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
-  case 0x03df: return "?get_year@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
-  case 0x03e0: return "?get_year@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
-  case 0x03e1: return "?getline@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@PEAD_J@Z";
-  case 0x03e2: return "?getline@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@PEAD_JD@Z";
-  case 0x03e3: return "?getline@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@PEAG_J@Z";
-  case 0x03e4: return "?getline@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@PEAG_JG@Z";
-  case 0x03e5: return "?getline@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@PEA_W_J@Z";
-  case 0x03e6: return "?getline@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@PEA_W_J_W@Z";
-  case 0x03e7: return "?getloc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEBA?AVlocale@2@XZ";
-  case 0x03e8: return "?getloc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEBA?AVlocale@2@XZ";
-  case 0x03e9: return "?getloc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEBA?AVlocale@2@XZ";
-  case 0x03ea: return "?getloc@ios_base@std@@QEBA?AVlocale@2@XZ";
-  case 0x03eb: return "?global@locale@std@@SA?AV12@AEBV12@@Z";
-  case 0x03ec: return "?good@ios_base@std@@QEBA_NXZ";
-  case 0x03ed: return "?gptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ";
-  case 0x03ee: return "?gptr@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEBAPEAGXZ";
-  case 0x03ef: return "?gptr@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEBAPEA_WXZ";
-  case 0x03f0: return "?id@?$codecvt@DDH@std@@2V0locale@2@A";
-  case 0x03f1: return "?id@?$codecvt@GDH@std@@2V0locale@2@A";
-  case 0x03f2: return "?id@?$codecvt@_WDH@std@@2V0locale@2@A";
-  case 0x03f3: return "?id@?$collate@D@std@@2V0locale@2@A";
-  case 0x03f4: return "?id@?$collate@G@std@@2V0locale@2@A";
-  case 0x03f5: return "?id@?$collate@_W@std@@2V0locale@2@A";
-  case 0x03f6: return "?id@?$ctype@D@std@@2V0locale@2@A";
-  case 0x03f7: return "?id@?$ctype@G@std@@2V0locale@2@A";
-  case 0x03f8: return "?id@?$ctype@_W@std@@2V0locale@2@A";
-  case 0x03f9: return "?id@?$messages@D@std@@2V0locale@2@A";
-  case 0x03fa: return "?id@?$messages@G@std@@2V0locale@2@A";
-  case 0x03fb: return "?id@?$messages@_W@std@@2V0locale@2@A";
-  case 0x03fc: return "?id@?$money_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@2V0locale@2@A";
-  case 0x03fd: return "?id@?$money_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@2V0locale@2@A";
-  case 0x03fe: return "?id@?$money_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@2V0locale@2@A";
-  case 0x03ff: return "?id@?$money_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@2V0locale@2@A";
-  case 0x0400: return "?id@?$money_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@2V0locale@2@A";
-  case 0x0401: return "?id@?$money_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@2V0locale@2@A";
-  case 0x0402: return "?id@?$moneypunct@D$00@std@@2V0locale@2@A";
-  case 0x0403: return "?id@?$moneypunct@D$0A@@std@@2V0locale@2@A";
-  case 0x0404: return "?id@?$moneypunct@G$00@std@@2V0locale@2@A";
-  case 0x0405: return "?id@?$moneypunct@G$0A@@std@@2V0locale@2@A";
-  case 0x0406: return "?id@?$moneypunct@_W$00@std@@2V0locale@2@A";
-  case 0x0407: return "?id@?$moneypunct@_W$0A@@std@@2V0locale@2@A";
-  case 0x0408: return "?id@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@2V0locale@2@A";
-  case 0x0409: return "?id@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@2V0locale@2@A";
-  case 0x040a: return "?id@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@2V0locale@2@A";
-  case 0x040b: return "?id@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@2V0locale@2@A";
-  case 0x040c: return "?id@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@2V0locale@2@A";
-  case 0x040d: return "?id@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@2V0locale@2@A";
-  case 0x040e: return "?id@?$numpunct@D@std@@2V0locale@2@A";
-  case 0x040f: return "?id@?$numpunct@G@std@@2V0locale@2@A";
-  case 0x0410: return "?id@?$numpunct@_W@std@@2V0locale@2@A";
-  case 0x0411: return "?id@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@2V0locale@2@A";
-  case 0x0412: return "?id@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@2V0locale@2@A";
-  case 0x0413: return "?id@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@2V0locale@2@A";
-  case 0x0414: return "?id@?$time_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@2V0locale@2@A";
-  case 0x0415: return "?id@?$time_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@2V0locale@2@A";
-  case 0x0416: return "?id@?$time_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@2V0locale@2@A";
-  case 0x0417: return "?ignore@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@_JH@Z";
-  case 0x0418: return "?ignore@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@_JG@Z";
-  case 0x0419: return "?ignore@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@_JG@Z";
-  case 0x041a: return "?imbue@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAA?AVlocale@2@AEBV32@@Z";
-  case 0x041b: return "?imbue@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAA?AVlocale@2@AEBV32@@Z";
-  case 0x041c: return "?imbue@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAA?AVlocale@2@AEBV32@@Z";
-  case 0x041d: return "?imbue@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAAXAEBVlocale@2@@Z";
-  case 0x041e: return "?imbue@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAAXAEBVlocale@2@@Z";
-  case 0x041f: return "?imbue@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAAXAEBVlocale@2@@Z";
-  case 0x0420: return "?imbue@ios_base@std@@QEAA?AVlocale@2@AEBV32@@Z";
-  case 0x0421: return "?in@?$codecvt@DDH@std@@QEBAHAEAHPEBD1AEAPEBDPEAD3AEAPEAD@Z";
-  case 0x0422: return "?in@?$codecvt@GDH@std@@QEBAHAEAHPEBD1AEAPEBDPEAG3AEAPEAG@Z";
-  case 0x0423: return "?in@?$codecvt@_WDH@std@@QEBAHAEAHPEBD1AEAPEBDPEA_W3AEAPEA_W@Z";
-  case 0x0424: return "?in_avail@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA_JXZ";
-  case 0x0425: return "?in_avail@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA_JXZ";
-  case 0x0426: return "?in_avail@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAA_JXZ";
-  case 0x0427: return "?init@?$basic_ios@DU?$char_traits@D@std@@@std@@IEAAXPEAV?$basic_streambuf@DU?$char_traits@D@std@@@2@_N@Z";
-  case 0x0428: return "?init@?$basic_ios@GU?$char_traits@G@std@@@std@@IEAAXPEAV?$basic_streambuf@GU?$char_traits@G@std@@@2@_N@Z";
-  case 0x0429: return "?init@?$basic_ios@_WU?$char_traits@_W@std@@@std@@IEAAXPEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@2@_N@Z";
-  case 0x042a: return "?intl@?$moneypunct@D$00@std@@2_NB";
-  case 0x042b: return "?intl@?$moneypunct@D$0A@@std@@2_NB";
-  case 0x042c: return "?intl@?$moneypunct@G$00@std@@2_NB";
-  case 0x042d: return "?intl@?$moneypunct@G$0A@@std@@2_NB";
-  case 0x042e: return "?intl@?$moneypunct@_W$00@std@@2_NB";
-  case 0x042f: return "?intl@?$moneypunct@_W$0A@@std@@2_NB";
-  case 0x0430: return "?ipfx@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAA_N_N@Z";
-  case 0x0431: return "?ipfx@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAA_N_N@Z";
-  case 0x0432: return "?ipfx@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAA_N_N@Z";
-  case 0x0433: return "?is@?$ctype@D@std@@QEBAPEBDPEBD0PEAF@Z";
-  case 0x0434: return "?is@?$ctype@D@std@@QEBA_NFD@Z";
-  case 0x0435: return "?is@?$ctype@G@std@@QEBAPEBGPEBG0PEAF@Z";
-  case 0x0436: return "?is@?$ctype@G@std@@QEBA_NFG@Z";
-  case 0x0437: return "?is@?$ctype@_W@std@@QEBAPEB_WPEB_W0PEAF@Z";
-  case 0x0438: return "?is@?$ctype@_W@std@@QEBA_NF_W@Z";
-  case 0x0439: return "?is_current_task_group_canceling@Concurrency@@YA_NXZ";
-  case 0x043a: return "?isfx@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAXXZ";
-  case 0x043b: return "?isfx@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAXXZ";
-  case 0x043c: return "?isfx@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAXXZ";
-  case 0x043d: return "?iword@ios_base@std@@QEAAAEAJH@Z";
-  case 0x043e: return "?length@?$codecvt@DDH@std@@QEBAHAEAHPEBD1_K@Z";
-  case 0x043f: return "?length@?$codecvt@GDH@std@@QEBAHAEAHPEBD1_K@Z";
-  case 0x0440: return "?length@?$codecvt@_WDH@std@@QEBAHAEAHPEBD1_K@Z";
-  case 0x0441: return "?max_length@codecvt_base@std@@QEBAHXZ";
-  case 0x0442: return "?move@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAX$$QEAV12@@Z";
-  case 0x0443: return "?move@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAXAEAV12@@Z";
-  case 0x0444: return "?move@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAX$$QEAV12@@Z";
-  case 0x0445: return "?move@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAXAEAV12@@Z";
-  case 0x0446: return "?move@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAX$$QEAV12@@Z";
-  case 0x0447: return "?move@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAXAEAV12@@Z";
-  case 0x0448: return "?narrow@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBADDD@Z";
-  case 0x0449: return "?narrow@?$basic_ios@GU?$char_traits@G@std@@@std@@QEBADGD@Z";
-  case 0x044a: return "?narrow@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEBAD_WD@Z";
-  case 0x044b: return "?narrow@?$ctype@D@std@@QEBADDD@Z";
-  case 0x044c: return "?narrow@?$ctype@D@std@@QEBAPEBDPEBD0DPEAD@Z";
-  case 0x044d: return "?narrow@?$ctype@G@std@@QEBADGD@Z";
-  case 0x044e: return "?narrow@?$ctype@G@std@@QEBAPEBGPEBG0DPEAD@Z";
-  case 0x044f: return "?narrow@?$ctype@_W@std@@QEBAD_WD@Z";
-  case 0x0450: return "?narrow@?$ctype@_W@std@@QEBAPEB_WPEB_W0DPEAD@Z";
-  case 0x0451: return "?opfx@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA_NXZ";
-  case 0x0452: return "?opfx@?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAA_NXZ";
-  case 0x0453: return "?opfx@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAA_NXZ";
-  case 0x0454: return "?osfx@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAXXZ";
-  case 0x0455: return "?osfx@?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAXXZ";
-  case 0x0456: return "?osfx@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAXXZ";
-  case 0x0457: return "?out@?$codecvt@DDH@std@@QEBAHAEAHPEBD1AEAPEBDPEAD3AEAPEAD@Z";
-  case 0x0458: return "?out@?$codecvt@GDH@std@@QEBAHAEAHPEBG1AEAPEBGPEAD3AEAPEAD@Z";
-  case 0x0459: return "?out@?$codecvt@_WDH@std@@QEBAHAEAHPEB_W1AEAPEB_WPEAD3AEAPEAD@Z";
-  case 0x045a: return "?overflow@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAAHH@Z";
-  case 0x045b: return "?overflow@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAAGG@Z";
-  case 0x045c: return "?overflow@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAAGG@Z";
-  case 0x045d: return "?pbackfail@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAAHH@Z";
-  case 0x045e: return "?pbackfail@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAAGG@Z";
-  case 0x045f: return "?pbackfail@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAAGG@Z";
-  case 0x0460: return "?pbase@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ";
-  case 0x0461: return "?pbase@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEBAPEAGXZ";
-  case 0x0462: return "?pbase@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEBAPEA_WXZ";
-  case 0x0463: return "?pbump@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXH@Z";
-  case 0x0464: return "?pbump@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAXH@Z";
-  case 0x0465: return "?pbump@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAXH@Z";
-  case 0x0466: return "?peek@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAHXZ";
-  case 0x0467: return "?peek@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAGXZ";
-  case 0x0468: return "?peek@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAGXZ";
-  case 0x0469: return "?pptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ";
-  case 0x046a: return "?pptr@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEBAPEAGXZ";
-  case 0x046b: return "?pptr@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEBAPEA_WXZ";
-  case 0x046c: return "?precision@ios_base@std@@QEAA_J_J@Z";
-  case 0x046d: return "?precision@ios_base@std@@QEBA_JXZ";
-  case 0x046e: return "?pubimbue@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA?AVlocale@2@AEBV32@@Z";
-  case 0x046f: return "?pubimbue@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA?AVlocale@2@AEBV32@@Z";
-  case 0x0470: return "?pubimbue@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAA?AVlocale@2@AEBV32@@Z";
-  case 0x0471: return "?pubseekoff@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA?AV?$fpos@H@2@_JHH@Z";
-  case 0x0472: return "?pubseekoff@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA?AV?$fpos@H@2@_JII@Z";
-  case 0x0473: return "?pubseekoff@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA?AV?$fpos@H@2@_JHH@Z";
-  case 0x0474: return "?pubseekoff@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA?AV?$fpos@H@2@_JII@Z";
-  case 0x0475: return "?pubseekoff@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAA?AV?$fpos@H@2@_JHH@Z";
-  case 0x0476: return "?pubseekoff@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAA?AV?$fpos@H@2@_JII@Z";
-  case 0x0477: return "?pubseekpos@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA?AV?$fpos@H@2@V32@H@Z";
-  case 0x0478: return "?pubseekpos@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA?AV?$fpos@H@2@V32@I@Z";
-  case 0x0479: return "?pubseekpos@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA?AV?$fpos@H@2@V32@H@Z";
-  case 0x047a: return "?pubseekpos@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA?AV?$fpos@H@2@V32@I@Z";
-  case 0x047b: return "?pubseekpos@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAA?AV?$fpos@H@2@V32@H@Z";
-  case 0x047c: return "?pubseekpos@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAA?AV?$fpos@H@2@V32@I@Z";
-  case 0x047d: return "?pubsetbuf@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAPEAV12@PEAD_J@Z";
-  case 0x047e: return "?pubsetbuf@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAPEAV12@PEAG_J@Z";
-  case 0x047f: return "?pubsetbuf@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAPEAV12@PEA_W_J@Z";
-  case 0x0480: return "?pubsync@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHXZ";
-  case 0x0481: return "?pubsync@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAHXZ";
-  case 0x0482: return "?pubsync@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAHXZ";
-  case 0x0483: return "?put@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@D@Z";
-  case 0x0484: return "?put@?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@G@Z";
-  case 0x0485: return "?put@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@_W@Z";
-  case 0x0486: return "?put@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@V32@AEAVios_base@2@DJ@Z";
-  case 0x0487: return "?put@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@V32@AEAVios_base@2@DK@Z";
-  case 0x0488: return "?put@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@V32@AEAVios_base@2@DN@Z";
-  case 0x0489: return "?put@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@V32@AEAVios_base@2@DO@Z";
-  case 0x048a: return "?put@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@V32@AEAVios_base@2@DPEBX@Z";
-  case 0x048b: return "?put@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@V32@AEAVios_base@2@D_J@Z";
-  case 0x048c: return "?put@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@V32@AEAVios_base@2@D_K@Z";
-  case 0x048d: return "?put@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@V32@AEAVios_base@2@D_N@Z";
-  case 0x048e: return "?put@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@V32@AEAVios_base@2@GJ@Z";
-  case 0x048f: return "?put@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@V32@AEAVios_base@2@GK@Z";
-  case 0x0490: return "?put@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@V32@AEAVios_base@2@GN@Z";
-  case 0x0491: return "?put@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@V32@AEAVios_base@2@GO@Z";
-  case 0x0492: return "?put@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@V32@AEAVios_base@2@GPEBX@Z";
-  case 0x0493: return "?put@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@V32@AEAVios_base@2@G_J@Z";
-  case 0x0494: return "?put@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@V32@AEAVios_base@2@G_K@Z";
-  case 0x0495: return "?put@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@V32@AEAVios_base@2@G_N@Z";
-  case 0x0496: return "?put@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@AEAVios_base@2@_WJ@Z";
-  case 0x0497: return "?put@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@AEAVios_base@2@_WK@Z";
-  case 0x0498: return "?put@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@AEAVios_base@2@_WN@Z";
-  case 0x0499: return "?put@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@AEAVios_base@2@_WO@Z";
-  case 0x049a: return "?put@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@AEAVios_base@2@_WPEBX@Z";
-  case 0x049b: return "?put@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@AEAVios_base@2@_W_J@Z";
-  case 0x049c: return "?put@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@AEAVios_base@2@_W_K@Z";
-  case 0x049d: return "?put@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@AEAVios_base@2@_W_N@Z";
-  case 0x049e: return "?put@?$time_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@V32@AEAVios_base@2@DPEBUtm@@DD@Z";
-  case 0x049f: return "?put@?$time_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@V32@AEAVios_base@2@DPEBUtm@@PEBD3@Z";
-  case 0x04a0: return "?put@?$time_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@V32@AEAVios_base@2@GPEBUtm@@DD@Z";
-  case 0x04a1: return "?put@?$time_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@V32@AEAVios_base@2@GPEBUtm@@PEBG3@Z";
-  case 0x04a2: return "?put@?$time_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@AEAVios_base@2@_WPEBUtm@@DD@Z";
-  case 0x04a3: return "?put@?$time_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@AEAVios_base@2@_WPEBUtm@@PEB_W4@Z";
-  case 0x04a4: return "?putback@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@D@Z";
-  case 0x04a5: return "?putback@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@G@Z";
-  case 0x04a6: return "?putback@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@_W@Z";
-  case 0x04a7: return "?pword@ios_base@std@@QEAAAEAPEAXH@Z";
-  case 0x04a8: return "?rdbuf@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAPEAV?$basic_streambuf@DU?$char_traits@D@std@@@2@PEAV32@@Z";
-  case 0x04a9: return "?rdbuf@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBAPEAV?$basic_streambuf@DU?$char_traits@D@std@@@2@XZ";
-  case 0x04aa: return "?rdbuf@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAPEAV?$basic_streambuf@GU?$char_traits@G@std@@@2@PEAV32@@Z";
-  case 0x04ab: return "?rdbuf@?$basic_ios@GU?$char_traits@G@std@@@std@@QEBAPEAV?$basic_streambuf@GU?$char_traits@G@std@@@2@XZ";
-  case 0x04ac: return "?rdbuf@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAPEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@2@PEAV32@@Z";
-  case 0x04ad: return "?rdbuf@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEBAPEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@2@XZ";
-  case 0x04ae: return "?rdstate@ios_base@std@@QEBAHXZ";
-  case 0x04af: return "?read@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@PEAD_J@Z";
-  case 0x04b0: return "?read@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@PEAG_J@Z";
-  case 0x04b1: return "?read@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@PEA_W_J@Z";
-  case 0x04b2: return "?readsome@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAA_JPEAD_J@Z";
-  case 0x04b3: return "?readsome@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAA_JPEAG_J@Z";
-  case 0x04b4: return "?readsome@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAA_JPEA_W_J@Z";
-  case 0x04b5: return "?register_callback@ios_base@std@@QEAAXP6AXW4event@12@AEAV12@H@ZH@Z";
-  case 0x04b6: return "?resetiosflags@std@@YA?AU?$_Smanip@H@1@H@Z";
-  case 0x04b7: return "?sbumpc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHXZ";
-  case 0x04b8: return "?sbumpc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAGXZ";
-  case 0x04b9: return "?sbumpc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAGXZ";
-  case 0x04ba: return "?scan_is@?$ctype@D@std@@QEBAPEBDFPEBD0@Z";
-  case 0x04bb: return "?scan_is@?$ctype@G@std@@QEBAPEBGFPEBG0@Z";
-  case 0x04bc: return "?scan_is@?$ctype@_W@std@@QEBAPEB_WFPEB_W0@Z";
-  case 0x04bd: return "?scan_not@?$ctype@D@std@@QEBAPEBDFPEBD0@Z";
-  case 0x04be: return "?scan_not@?$ctype@G@std@@QEBAPEBGFPEBG0@Z";
-  case 0x04bf: return "?scan_not@?$ctype@_W@std@@QEBAPEB_WFPEB_W0@Z";
-  case 0x04c0: return "?seekg@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@V?$fpos@H@2@@Z";
-  case 0x04c1: return "?seekg@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@_JH@Z";
-  case 0x04c2: return "?seekg@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@V?$fpos@H@2@@Z";
-  case 0x04c3: return "?seekg@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@_JH@Z";
-  case 0x04c4: return "?seekg@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@V?$fpos@H@2@@Z";
-  case 0x04c5: return "?seekg@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@_JH@Z";
-  case 0x04c6: return "?seekoff@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAA?AV?$fpos@H@2@_JHH@Z";
-  case 0x04c7: return "?seekoff@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAA?AV?$fpos@H@2@_JHH@Z";
-  case 0x04c8: return "?seekoff@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAA?AV?$fpos@H@2@_JHH@Z";
-  case 0x04c9: return "?seekp@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@V?$fpos@H@2@@Z";
-  case 0x04ca: return "?seekp@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@_JH@Z";
-  case 0x04cb: return "?seekp@?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@V?$fpos@H@2@@Z";
-  case 0x04cc: return "?seekp@?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@_JH@Z";
-  case 0x04cd: return "?seekp@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@V?$fpos@H@2@@Z";
-  case 0x04ce: return "?seekp@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@_JH@Z";
-  case 0x04cf: return "?seekpos@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAA?AV?$fpos@H@2@V32@H@Z";
-  case 0x04d0: return "?seekpos@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAA?AV?$fpos@H@2@V32@H@Z";
-  case 0x04d1: return "?seekpos@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAA?AV?$fpos@H@2@V32@H@Z";
-  case 0x04d2: return "?set_new_handler@std@@YAP6AXXZP6AXXZ@Z";
-  case 0x04d3: return "?set_rdbuf@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAXPEAV?$basic_streambuf@DU?$char_traits@D@std@@@2@@Z";
-  case 0x04d4: return "?set_rdbuf@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAXPEAV?$basic_streambuf@GU?$char_traits@G@std@@@2@@Z";
-  case 0x04d5: return "?set_rdbuf@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAXPEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@2@@Z";
-  case 0x04d6: return "?setbase@std@@YA?AU?$_Smanip@H@1@H@Z";
-  case 0x04d7: return "?setbuf@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAAPEAV12@PEAD_J@Z";
-  case 0x04d8: return "?setbuf@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAAPEAV12@PEAG_J@Z";
-  case 0x04d9: return "?setbuf@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAAPEAV12@PEA_W_J@Z";
-  case 0x04da: return "?setf@ios_base@std@@QEAAHH@Z";
-  case 0x04db: return "?setf@ios_base@std@@QEAAHHH@Z";
-  case 0x04dc: return "?setg@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXPEAD00@Z";
-  case 0x04dd: return "?setg@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAXPEAG00@Z";
-  case 0x04de: return "?setg@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAXPEA_W00@Z";
-  case 0x04df: return "?setiosflags@std@@YA?AU?$_Smanip@H@1@H@Z";
-  case 0x04e0: return "?setp@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXPEAD00@Z";
-  case 0x04e1: return "?setp@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXPEAD0@Z";
-  case 0x04e2: return "?setp@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAXPEAG00@Z";
-  case 0x04e3: return "?setp@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAXPEAG0@Z";
-  case 0x04e4: return "?setp@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAXPEA_W00@Z";
-  case 0x04e5: return "?setp@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAXPEA_W0@Z";
-  case 0x04e6: return "?setprecision@std@@YA?AU?$_Smanip@_J@1@_J@Z";
-  case 0x04e7: return "?setstate@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAXH_N@Z";
-  case 0x04e8: return "?setstate@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAXI@Z";
-  case 0x04e9: return "?setstate@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAXH_N@Z";
-  case 0x04ea: return "?setstate@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAXI@Z";
-  case 0x04eb: return "?setstate@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAXH_N@Z";
-  case 0x04ec: return "?setstate@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAXI@Z";
-  case 0x04ed: return "?setstate@ios_base@std@@QEAAXH@Z";
-  case 0x04ee: return "?setstate@ios_base@std@@QEAAXH_N@Z";
-  case 0x04ef: return "?setstate@ios_base@std@@QEAAXI@Z";
-  case 0x04f0: return "?setw@std@@YA?AU?$_Smanip@_J@1@_J@Z";
-  case 0x04f1: return "?sgetc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHXZ";
-  case 0x04f2: return "?sgetc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAGXZ";
-  case 0x04f3: return "?sgetc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAGXZ";
-  case 0x04f4: return "?sgetn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA_JPEAD_J@Z";
-  case 0x04f5: return "?sgetn@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA_JPEAG_J@Z";
-  case 0x04f6: return "?sgetn@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAA_JPEA_W_J@Z";
-  case 0x04f7: return "?showmanyc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAA_JXZ";
-  case 0x04f8: return "?showmanyc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAA_JXZ";
-  case 0x04f9: return "?showmanyc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAA_JXZ";
-  case 0x04fa: return "?snextc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHXZ";
-  case 0x04fb: return "?snextc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAGXZ";
-  case 0x04fc: return "?snextc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAGXZ";
-  case 0x04fd: return "?sputbackc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHD@Z";
-  case 0x04fe: return "?sputbackc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAGG@Z";
-  case 0x04ff: return "?sputbackc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAG_W@Z";
-  case 0x0500: return "?sputc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHD@Z";
-  case 0x0501: return "?sputc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAGG@Z";
-  case 0x0502: return "?sputc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAG_W@Z";
-  case 0x0503: return "?sputn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA_JPEBD_J@Z";
-  case 0x0504: return "?sputn@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA_JPEBG_J@Z";
-  case 0x0505: return "?sputn@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAA_JPEB_W_J@Z";
-  case 0x0506: return "?start@agent@Concurrency@@QEAA_NXZ";
-  case 0x0507: return "?status@agent@Concurrency@@QEAA?AW4agent_status@2@XZ";
-  case 0x0508: return "?status_port@agent@Concurrency@@QEAAPEAV?$ISource@W4agent_status@Concurrency@@@2@XZ";
-  case 0x0509: return "?stossc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAXXZ";
-  case 0x050a: return "?stossc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAXXZ";
-  case 0x050b: return "?stossc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAXXZ";
-  case 0x050c: return "?sungetc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHXZ";
-  case 0x050d: return "?sungetc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAGXZ";
-  case 0x050e: return "?sungetc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAGXZ";
-  case 0x050f: return "?swap@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAXAEAV12@@Z";
-  case 0x0510: return "?swap@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAXAEAV12@@Z";
-  case 0x0511: return "?swap@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAXAEAV12@@Z";
-  case 0x0512: return "?swap@?$basic_iostream@DU?$char_traits@D@std@@@std@@IEAAXAEAV12@@Z";
-  case 0x0513: return "?swap@?$basic_iostream@GU?$char_traits@G@std@@@std@@IEAAXAEAV12@@Z";
-  case 0x0514: return "?swap@?$basic_iostream@_WU?$char_traits@_W@std@@@std@@IEAAXAEAV12@@Z";
-  case 0x0515: return "?swap@?$basic_istream@DU?$char_traits@D@std@@@std@@IEAAXAEAV12@@Z";
-  case 0x0516: return "?swap@?$basic_istream@GU?$char_traits@G@std@@@std@@IEAAXAEAV12@@Z";
-  case 0x0517: return "?swap@?$basic_istream@_WU?$char_traits@_W@std@@@std@@IEAAXAEAV12@@Z";
-  case 0x0518: return "?swap@?$basic_ostream@DU?$char_traits@D@std@@@std@@IEAAXAEAV12@@Z";
-  case 0x0519: return "?swap@?$basic_ostream@GU?$char_traits@G@std@@@std@@IEAAXAEAV12@@Z";
-  case 0x051a: return "?swap@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@IEAAXAEAV12@@Z";
-  case 0x051b: return "?swap@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXAEAV12@@Z";
-  case 0x051c: return "?swap@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAXAEAV12@@Z";
-  case 0x051d: return "?swap@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAXAEAV12@@Z";
-  case 0x051e: return "?swap@ios_base@std@@QEAAXAEAV12@@Z";
-  case 0x051f: return "?sync@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAHXZ";
-  case 0x0520: return "?sync@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAHXZ";
-  case 0x0521: return "?sync@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAHXZ";
-  case 0x0522: return "?sync@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAAHXZ";
-  case 0x0523: return "?sync@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAAHXZ";
-  case 0x0524: return "?sync@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAAHXZ";
-  case 0x0525: return "?sync_with_stdio@ios_base@std@@SA_N_N@Z";
-  case 0x0526: return "?table@?$ctype@D@std@@QEBAPEBFXZ";
-  case 0x0527: return "?table_size@?$ctype@D@std@@2_KB";
-  case 0x0528: return "?tellg@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAA?AV?$fpos@H@2@XZ";
-  case 0x0529: return "?tellg@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAA?AV?$fpos@H@2@XZ";
-  case 0x052a: return "?tellg@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAA?AV?$fpos@H@2@XZ";
-  case 0x052b: return "?tellp@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA?AV?$fpos@H@2@XZ";
-  case 0x052c: return "?tellp@?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAA?AV?$fpos@H@2@XZ";
-  case 0x052d: return "?tellp@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAA?AV?$fpos@H@2@XZ";
-  case 0x052e: return "?tie@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAPEAV?$basic_ostream@DU?$char_traits@D@std@@@2@PEAV32@@Z";
-  case 0x052f: return "?tie@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBAPEAV?$basic_ostream@DU?$char_traits@D@std@@@2@XZ";
-  case 0x0530: return "?tie@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAPEAV?$basic_ostream@GU?$char_traits@G@std@@@2@PEAV32@@Z";
-  case 0x0531: return "?tie@?$basic_ios@GU?$char_traits@G@std@@@std@@QEBAPEAV?$basic_ostream@GU?$char_traits@G@std@@@2@XZ";
-  case 0x0532: return "?tie@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAPEAV?$basic_ostream@_WU?$char_traits@_W@std@@@2@PEAV32@@Z";
-  case 0x0533: return "?tie@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEBAPEAV?$basic_ostream@_WU?$char_traits@_W@std@@@2@XZ";
-  case 0x0534: return "?tolower@?$ctype@D@std@@QEBADD@Z";
-  case 0x0535: return "?tolower@?$ctype@D@std@@QEBAPEBDPEADPEBD@Z";
-  case 0x0536: return "?tolower@?$ctype@G@std@@QEBAGG@Z";
-  case 0x0537: return "?tolower@?$ctype@G@std@@QEBAPEBGPEAGPEBG@Z";
-  case 0x0538: return "?tolower@?$ctype@_W@std@@QEBAPEB_WPEA_WPEB_W@Z";
-  case 0x0539: return "?tolower@?$ctype@_W@std@@QEBA_W_W@Z";
-  case 0x053a: return "?toupper@?$ctype@D@std@@QEBADD@Z";
-  case 0x053b: return "?toupper@?$ctype@D@std@@QEBAPEBDPEADPEBD@Z";
-  case 0x053c: return "?toupper@?$ctype@G@std@@QEBAGG@Z";
-  case 0x053d: return "?toupper@?$ctype@G@std@@QEBAPEBGPEAGPEBG@Z";
-  case 0x053e: return "?toupper@?$ctype@_W@std@@QEBAPEB_WPEA_WPEB_W@Z";
-  case 0x053f: return "?toupper@?$ctype@_W@std@@QEBA_W_W@Z";
-  case 0x0540: return "?try_to_lock@std@@3Utry_to_lock_t@1@B";
-  case 0x0541: return "?uflow@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAAHXZ";
-  case 0x0542: return "?uflow@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAAGXZ";
-  case 0x0543: return "?uflow@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAAGXZ";
-  case 0x0544: return "?uncaught_exception@std@@YA_NXZ";
-  case 0x0545: return "?underflow@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAAHXZ";
-  case 0x0546: return "?underflow@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAAGXZ";
-  case 0x0547: return "?underflow@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAAGXZ";
-  case 0x0548: return "?unget@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@XZ";
-  case 0x0549: return "?unget@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@XZ";
-  case 0x054a: return "?unget@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@XZ";
-  case 0x054b: return "?unsetf@ios_base@std@@QEAAXH@Z";
-  case 0x054c: return "?unshift@?$codecvt@DDH@std@@QEBAHAEAHPEAD1AEAPEAD@Z";
-  case 0x054d: return "?unshift@?$codecvt@GDH@std@@QEBAHAEAHPEAD1AEAPEAD@Z";
-  case 0x054e: return "?unshift@?$codecvt@_WDH@std@@QEBAHAEAHPEAD1AEAPEAD@Z";
-  case 0x054f: return "?wait@agent@Concurrency@@SA?AW4agent_status@2@PEAV12@I@Z";
-  case 0x0550: return "?wait_for_all@agent@Concurrency@@SAX_KPEAPEAV12@PEAW4agent_status@2@I@Z";
-  case 0x0551: return "?wait_for_one@agent@Concurrency@@SAX_KPEAPEAV12@AEAW4agent_status@2@AEA_KI@Z";
-  case 0x0552: return "?wcerr@std@@3V?$basic_ostream@GU?$char_traits@G@std@@@1@A";
-  case 0x0553: return "?wcerr@std@@3V?$basic_ostream@_WU?$char_traits@_W@std@@@1@A";
-  case 0x0554: return "?wcin@std@@3V?$basic_istream@GU?$char_traits@G@std@@@1@A";
-  case 0x0555: return "?wcin@std@@3V?$basic_istream@_WU?$char_traits@_W@std@@@1@A";
-  case 0x0556: return "?wclog@std@@3V?$basic_ostream@GU?$char_traits@G@std@@@1@A";
-  case 0x0557: return "?wclog@std@@3V?$basic_ostream@_WU?$char_traits@_W@std@@@1@A";
-  case 0x0558: return "?wcout@std@@3V?$basic_ostream@GU?$char_traits@G@std@@@1@A";
-  case 0x0559: return "?wcout@std@@3V?$basic_ostream@_WU?$char_traits@_W@std@@@1@A";
-  case 0x055a: return "?widen@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBADD@Z";
-  case 0x055b: return "?widen@?$basic_ios@GU?$char_traits@G@std@@@std@@QEBAGD@Z";
-  case 0x055c: return "?widen@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEBA_WD@Z";
-  case 0x055d: return "?widen@?$ctype@D@std@@QEBADD@Z";
-  case 0x055e: return "?widen@?$ctype@D@std@@QEBAPEBDPEBD0PEAD@Z";
-  case 0x055f: return "?widen@?$ctype@G@std@@QEBAGD@Z";
-  case 0x0560: return "?widen@?$ctype@G@std@@QEBAPEBDPEBD0PEAG@Z";
-  case 0x0561: return "?widen@?$ctype@_W@std@@QEBAPEBDPEBD0PEA_W@Z";
-  case 0x0562: return "?widen@?$ctype@_W@std@@QEBA_WD@Z";
-  case 0x0563: return "?width@ios_base@std@@QEAA_J_J@Z";
-  case 0x0564: return "?width@ios_base@std@@QEBA_JXZ";
-  case 0x0565: return "?write@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@PEBD_J@Z";
-  case 0x0566: return "?write@?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@PEBG_J@Z";
-  case 0x0567: return "?write@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@PEB_W_J@Z";
-  case 0x0568: return "?ws@std@@YAAEAV?$basic_istream@DU?$char_traits@D@std@@@1@AEAV21@@Z";
-  case 0x0569: return "?ws@std@@YAAEAV?$basic_istream@GU?$char_traits@G@std@@@1@AEAV21@@Z";
-  case 0x056a: return "?ws@std@@YAAEAV?$basic_istream@_WU?$char_traits@_W@std@@@1@AEAV21@@Z";
-  case 0x056b: return "?xalloc@ios_base@std@@SAHXZ";
-  case 0x056c: return "?xsgetn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAA_JPEAD_J@Z";
-  case 0x056d: return "?xsgetn@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAA_JPEAG_J@Z";
-  case 0x056e: return "?xsgetn@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAA_JPEA_W_J@Z";
-  case 0x056f: return "?xsputn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAA_JPEBD_J@Z";
-  case 0x0570: return "?xsputn@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAA_JPEBG_J@Z";
-  case 0x0571: return "?xsputn@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAA_JPEB_W_J@Z";
-  case 0x0572: return "_Call_once";
-  case 0x0573: return "_Call_onceEx";
-  case 0x0574: return "_Cnd_broadcast";
-  case 0x0575: return "_Cnd_destroy";
-  case 0x0576: return "_Cnd_do_broadcast_at_thread_exit";
-  case 0x0577: return "_Cnd_init";
-  case 0x0578: return "_Cnd_register_at_thread_exit";
-  case 0x0579: return "_Cnd_signal";
-  case 0x057a: return "_Cnd_timedwait";
-  case 0x057b: return "_Cnd_unregister_at_thread_exit";
-  case 0x057c: return "_Cnd_wait";
-  case 0x057d: return "_Cosh";
-  case 0x057e: return "_Denorm";
-  case 0x057f: return "_Dint";
-  case 0x0580: return "_Dnorm";
-  case 0x0581: return "_Do_call";
-  case 0x0582: return "_Dscale";
-  case 0x0583: return "_Dtento";
-  case 0x0584: return "_Dtest";
-  case 0x0585: return "_Dunscale";
-  case 0x0586: return "_Eps";
-  case 0x0587: return "_Exp";
-  case 0x0588: return "_FCosh";
-  case 0x0589: return "_FDenorm";
-  case 0x058a: return "_FDint";
-  case 0x058b: return "_FDnorm";
-  case 0x058c: return "_FDscale";
-  case 0x058d: return "_FDtento";
-  case 0x058e: return "_FDtest";
-  case 0x058f: return "_FDunscale";
-  case 0x0590: return "_FEps";
-  case 0x0591: return "_FExp";
-  case 0x0592: return "_FInf";
-  case 0x0593: return "_FNan";
-  case 0x0594: return "_FPlsw";
-  case 0x0595: return "_FPmsw";
-  case 0x0596: return "_FRteps";
-  case 0x0597: return "_FSinh";
-  case 0x0598: return "_FSnan";
-  case 0x0599: return "_FXbig";
-  case 0x059a: return "_FXp_addh";
-  case 0x059b: return "_FXp_addx";
-  case 0x059c: return "_FXp_getw";
-  case 0x059d: return "_FXp_invx";
-  case 0x059e: return "_FXp_ldexpx";
-  case 0x059f: return "_FXp_movx";
-  case 0x05a0: return "_FXp_mulh";
-  case 0x05a1: return "_FXp_mulx";
-  case 0x05a2: return "_FXp_setn";
-  case 0x05a3: return "_FXp_setw";
-  case 0x05a4: return "_FXp_sqrtx";
-  case 0x05a5: return "_FXp_subx";
-  case 0x05a6: return "_FZero";
-  case 0x05a7: return "_Getcoll";
-  case 0x05a8: return "_Getctype";
-  case 0x05a9: return "_Getcvt";
-  case 0x05aa: return "_Getdateorder";
-  case 0x05ab: return "_Getwctype";
-  case 0x05ac: return "_Getwctypes";
-  case 0x05ad: return "_Hugeval";
-  case 0x05ae: return "_Inf";
-  case 0x05af: return "_LCosh";
-  case 0x05b0: return "_LDenorm";
-  case 0x05b1: return "_LDint";
-  case 0x05b2: return "_LDscale";
-  case 0x05b3: return "_LDtento";
-  case 0x05b4: return "_LDtest";
-  case 0x05b5: return "_LDunscale";
-  case 0x05b6: return "_LEps";
-  case 0x05b7: return "_LExp";
-  case 0x05b8: return "_LInf";
-  case 0x05b9: return "_LNan";
-  case 0x05ba: return "_LPlsw";
-  case 0x05bb: return "_LPmsw";
-  case 0x05bc: return "_LPoly";
-  case 0x05bd: return "_LRteps";
-  case 0x05be: return "_LSinh";
-  case 0x05bf: return "_LSnan";
-  case 0x05c0: return "_LXbig";
-  case 0x05c1: return "_LXp_addh";
-  case 0x05c2: return "_LXp_addx";
-  case 0x05c3: return "_LXp_getw";
-  case 0x05c4: return "_LXp_invx";
-  case 0x05c5: return "_LXp_ldexpx";
-  case 0x05c6: return "_LXp_movx";
-  case 0x05c7: return "_LXp_mulh";
-  case 0x05c8: return "_LXp_mulx";
-  case 0x05c9: return "_LXp_setn";
-  case 0x05ca: return "_LXp_setw";
-  case 0x05cb: return "_LXp_sqrtx";
-  case 0x05cc: return "_LXp_subx";
-  case 0x05cd: return "_LZero";
-  case 0x05ce: return "_Lock_shared_ptr_spin_lock";
-  case 0x05cf: return "_Mbrtowc";
-  case 0x05d0: return "_Mtx_clear_owner";
-  case 0x05d1: return "_Mtx_current_owns";
-  case 0x05d2: return "_Mtx_destroy";
-  case 0x05d3: return "_Mtx_getconcrtcs";
-  case 0x05d4: return "_Mtx_init";
-  case 0x05d5: return "_Mtx_lock";
-  case 0x05d6: return "_Mtx_reset_owner";
-  case 0x05d7: return "_Mtx_timedlock";
-  case 0x05d8: return "_Mtx_trylock";
-  case 0x05d9: return "_Mtx_unlock";
-  case 0x05da: return "_Mtxdst";
-  case 0x05db: return "_Mtxinit";
-  case 0x05dc: return "_Mtxlock";
-  case 0x05dd: return "_Mtxunlock";
-  case 0x05de: return "_Nan";
-  case 0x05df: return "_Once";
-  case 0x05e0: return "_Plsw";
-  case 0x05e1: return "_Pmsw";
-  case 0x05e2: return "_Poly";
-  case 0x05e3: return "_Rteps";
-  case 0x05e4: return "_Sinh";
-  case 0x05e5: return "_Snan";
-  case 0x05e6: return "_Stod";
-  case 0x05e7: return "_Stodx";
-  case 0x05e8: return "_Stof";
-  case 0x05e9: return "_Stoflt";
-  case 0x05ea: return "_Stofx";
-  case 0x05eb: return "_Stold";
-  case 0x05ec: return "_Stoldx";
-  case 0x05ed: return "_Stoll";
-  case 0x05ee: return "_Stollx";
-  case 0x05ef: return "_Stolx";
-  case 0x05f0: return "_Stopfx";
-  case 0x05f1: return "_Stoul";
-  case 0x05f2: return "_Stoull";
-  case 0x05f3: return "_Stoullx";
-  case 0x05f4: return "_Stoulx";
-  case 0x05f5: return "_Stoxflt";
-  case 0x05f6: return "_Strcoll";
-  case 0x05f7: return "_Strxfrm";
-  case 0x05f8: return "_Thrd_abort";
-  case 0x05f9: return "_Thrd_create";
-  case 0x05fa: return "_Thrd_current";
-  case 0x05fb: return "_Thrd_detach";
-  case 0x05fc: return "_Thrd_equal";
-  case 0x05fd: return "_Thrd_exit";
-  case 0x05fe: return "_Thrd_join";
-  case 0x05ff: return "_Thrd_lt";
-  case 0x0600: return "_Thrd_sleep";
-  case 0x0601: return "_Thrd_start";
-  case 0x0602: return "_Thrd_yield";
-  case 0x0603: return "_Tolower";
-  case 0x0604: return "_Toupper";
-  case 0x0605: return "_Towlower";
-  case 0x0606: return "_Towupper";
-  case 0x0607: return "_Tss_create";
-  case 0x0608: return "_Tss_delete";
-  case 0x0609: return "_Tss_get";
-  case 0x060a: return "_Tss_set";
-  case 0x060b: return "_Unlock_shared_ptr_spin_lock";
-  case 0x060c: return "_Wcrtomb";
-  case 0x060d: return "_Wcscoll";
-  case 0x060e: return "_Wcsxfrm";
-  case 0x060f: return "_Xbig";
-  case 0x0610: return "_Xp_addh";
-  case 0x0611: return "_Xp_addx";
-  case 0x0612: return "_Xp_getw";
-  case 0x0613: return "_Xp_invx";
-  case 0x0614: return "_Xp_ldexpx";
-  case 0x0615: return "_Xp_movx";
-  case 0x0616: return "_Xp_mulh";
-  case 0x0617: return "_Xp_mulx";
-  case 0x0618: return "_Xp_setn";
-  case 0x0619: return "_Xp_setw";
-  case 0x061a: return "_Xp_sqrtx";
-  case 0x061b: return "_Xp_subx";
-  case 0x061c: return "_Xtime_diff_to_millis";
-  case 0x061d: return "_Xtime_diff_to_millis2";
-  case 0x061e: return "_Xtime_get_ticks";
-  case 0x061f: return "_Zero";
-  case 0x0620: return "__Wcrtomb_lk";
-  case 0x0621: return "xtime_get";
+  switch (i) {
+    case 0x0001:
+      return "??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@"
+             "std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z";
+    case 0x0002:
+      return "??$_Getvals@_W@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@"
+             "std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z";
+    case 0x0003:
+      return "??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@"
+             "_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z";
+    case 0x0004: return "??0?$_Yarn@D@std@@QEAA@AEBV01@@Z";
+    case 0x0005: return "??0?$_Yarn@D@std@@QEAA@PEBD@Z";
+    case 0x0006: return "??0?$_Yarn@D@std@@QEAA@XZ";
+    case 0x0007: return "??0?$_Yarn@_W@std@@QEAA@XZ";
+    case 0x0008: return "??0?$basic_ios@DU?$char_traits@D@std@@@std@@IEAA@XZ";
+    case 0x0009:
+      return "??0?$basic_ios@DU?$char_traits@D@std@@@std@@QEAA@PEAV?$basic_"
+             "streambuf@DU?$char_traits@D@std@@@1@@Z";
+    case 0x000a: return "??0?$basic_ios@GU?$char_traits@G@std@@@std@@IEAA@XZ";
+    case 0x000b:
+      return "??0?$basic_ios@GU?$char_traits@G@std@@@std@@QEAA@PEAV?$basic_"
+             "streambuf@GU?$char_traits@G@std@@@1@@Z";
+    case 0x000c: return "??0?$basic_ios@_WU?$char_traits@_W@std@@@std@@IEAA@XZ";
+    case 0x000d:
+      return "??0?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAA@PEAV?$basic_"
+             "streambuf@_WU?$char_traits@_W@std@@@1@@Z";
+    case 0x000e:
+      return "??0?$basic_iostream@DU?$char_traits@D@std@@@std@@IEAA@$$QEAV01@@Z";
+    case 0x000f:
+      return "??0?$basic_iostream@DU?$char_traits@D@std@@@std@@QEAA@PEAV?$basic_"
+             "streambuf@DU?$char_traits@D@std@@@1@@Z";
+    case 0x0010:
+      return "??0?$basic_iostream@GU?$char_traits@G@std@@@std@@IEAA@$$QEAV01@@Z";
+    case 0x0011:
+      return "??0?$basic_iostream@GU?$char_traits@G@std@@@std@@QEAA@PEAV?$basic_"
+             "streambuf@GU?$char_traits@G@std@@@1@@Z";
+    case 0x0012:
+      return "??0?$basic_iostream@_WU?$char_traits@_W@std@@@std@@IEAA@$$QEAV01@@Z";
+    case 0x0013:
+      return "??0?$basic_iostream@_WU?$char_traits@_W@std@@@std@@QEAA@PEAV?$basic_"
+             "streambuf@_WU?$char_traits@_W@std@@@1@@Z";
+    case 0x0014:
+      return "??0?$basic_istream@DU?$char_traits@D@std@@@std@@IEAA@$$QEAV01@@Z";
+    case 0x0015:
+      return "??0?$basic_istream@DU?$char_traits@D@std@@@std@@QEAA@PEAV?$basic_"
+             "streambuf@DU?$char_traits@D@std@@@1@_N1@Z";
+    case 0x0016:
+      return "??0?$basic_istream@DU?$char_traits@D@std@@@std@@QEAA@PEAV?$basic_"
+             "streambuf@DU?$char_traits@D@std@@@1@_N@Z";
+    case 0x0017:
+      return "??0?$basic_istream@DU?$char_traits@D@std@@@std@@QEAA@W4_"
+             "Uninitialized@1@@Z";
+    case 0x0018:
+      return "??0?$basic_istream@GU?$char_traits@G@std@@@std@@IEAA@$$QEAV01@@Z";
+    case 0x0019:
+      return "??0?$basic_istream@GU?$char_traits@G@std@@@std@@QEAA@PEAV?$basic_"
+             "streambuf@GU?$char_traits@G@std@@@1@_N1@Z";
+    case 0x001a:
+      return "??0?$basic_istream@GU?$char_traits@G@std@@@std@@QEAA@PEAV?$basic_"
+             "streambuf@GU?$char_traits@G@std@@@1@_N@Z";
+    case 0x001b:
+      return "??0?$basic_istream@GU?$char_traits@G@std@@@std@@QEAA@W4_"
+             "Uninitialized@1@@Z";
+    case 0x001c:
+      return "??0?$basic_istream@_WU?$char_traits@_W@std@@@std@@IEAA@$$QEAV01@@Z";
+    case 0x001d:
+      return "??0?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAA@PEAV?$basic_"
+             "streambuf@_WU?$char_traits@_W@std@@@1@_N1@Z";
+    case 0x001e:
+      return "??0?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAA@PEAV?$basic_"
+             "streambuf@_WU?$char_traits@_W@std@@@1@_N@Z";
+    case 0x001f:
+      return "??0?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAA@W4_"
+             "Uninitialized@1@@Z";
+    case 0x0020:
+      return "??0?$basic_ostream@DU?$char_traits@D@std@@@std@@IEAA@$$QEAV01@@Z";
+    case 0x0021:
+      return "??0?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@PEAV?$basic_"
+             "streambuf@DU?$char_traits@D@std@@@1@_N@Z";
+    case 0x0022:
+      return "??0?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@W4_"
+             "Uninitialized@1@_N@Z";
+    case 0x0023:
+      return "??0?$basic_ostream@GU?$char_traits@G@std@@@std@@IEAA@$$QEAV01@@Z";
+    case 0x0024:
+      return "??0?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAA@PEAV?$basic_"
+             "streambuf@GU?$char_traits@G@std@@@1@_N@Z";
+    case 0x0025:
+      return "??0?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAA@W4_"
+             "Uninitialized@1@_N@Z";
+    case 0x0026:
+      return "??0?$basic_ostream@_WU?$char_traits@_W@std@@@std@@IEAA@$$QEAV01@@Z";
+    case 0x0027:
+      return "??0?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAA@PEAV?$basic_"
+             "streambuf@_WU?$char_traits@_W@std@@@1@_N@Z";
+    case 0x0028:
+      return "??0?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAA@W4_"
+             "Uninitialized@1@_N@Z";
+    case 0x0029:
+      return "??0?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAA@AEBV01@@Z";
+    case 0x002a:
+      return "??0?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAA@W4_"
+             "Uninitialized@1@@Z";
+    case 0x002b:
+      return "??0?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAA@XZ";
+    case 0x002c:
+      return "??0?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAA@AEBV01@@Z";
+    case 0x002d:
+      return "??0?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAA@W4_"
+             "Uninitialized@1@@Z";
+    case 0x002e:
+      return "??0?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAA@XZ";
+    case 0x002f:
+      return "??0?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAA@AEBV01@@Z";
+    case 0x0030:
+      return "??0?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAA@W4_"
+             "Uninitialized@1@@Z";
+    case 0x0031:
+      return "??0?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAA@XZ";
+    case 0x0032: return "??0?$codecvt@DDH@std@@QEAA@AEBV_Locinfo@1@_K@Z";
+    case 0x0033: return "??0?$codecvt@DDH@std@@QEAA@_K@Z";
+    case 0x0034: return "??0?$codecvt@GDH@std@@QEAA@AEBV_Locinfo@1@_K@Z";
+    case 0x0035: return "??0?$codecvt@GDH@std@@QEAA@_K@Z";
+    case 0x0036: return "??0?$codecvt@_WDH@std@@QEAA@AEBV_Locinfo@1@_K@Z";
+    case 0x0037: return "??0?$codecvt@_WDH@std@@QEAA@_K@Z";
+    case 0x0038: return "??0?$ctype@D@std@@QEAA@AEBV_Locinfo@1@_K@Z";
+    case 0x0039: return "??0?$ctype@D@std@@QEAA@PEBF_N_K@Z";
+    case 0x003a: return "??0?$ctype@G@std@@QEAA@AEBV_Locinfo@1@_K@Z";
+    case 0x003b: return "??0?$ctype@G@std@@QEAA@_K@Z";
+    case 0x003c: return "??0?$ctype@_W@std@@QEAA@AEBV_Locinfo@1@_K@Z";
+    case 0x003d: return "??0?$ctype@_W@std@@QEAA@_K@Z";
+    case 0x003e:
+      return "??0?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@"
+             "std@@QEAA@AEBV_Locinfo@1@_K@Z";
+    case 0x003f:
+      return "??0?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@"
+             "std@@QEAA@_K@Z";
+    case 0x0040:
+      return "??0?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@"
+             "std@@QEAA@AEBV_Locinfo@1@_K@Z";
+    case 0x0041:
+      return "??0?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@"
+             "std@@QEAA@_K@Z";
+    case 0x0042:
+      return "??0?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@"
+             "@@std@@QEAA@AEBV_Locinfo@1@_K@Z";
+    case 0x0043:
+      return "??0?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@"
+             "@@std@@QEAA@_K@Z";
+    case 0x0044:
+      return "??0?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@"
+             "std@@QEAA@AEBV_Locinfo@1@_K@Z";
+    case 0x0045:
+      return "??0?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@"
+             "std@@QEAA@_K@Z";
+    case 0x0046:
+      return "??0?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@"
+             "std@@QEAA@AEBV_Locinfo@1@_K@Z";
+    case 0x0047:
+      return "??0?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@"
+             "std@@QEAA@_K@Z";
+    case 0x0048:
+      return "??0?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@"
+             "@@std@@QEAA@AEBV_Locinfo@1@_K@Z";
+    case 0x0049:
+      return "??0?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@"
+             "@@std@@QEAA@_K@Z";
+    case 0x004a:
+      return "??0?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@"
+             "std@@IEAA@PEBD_K@Z";
+    case 0x004b:
+      return "??0?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@"
+             "std@@QEAA@AEBV_Locinfo@1@_K@Z";
+    case 0x004c:
+      return "??0?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@"
+             "std@@QEAA@_K@Z";
+    case 0x004d:
+      return "??0?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@"
+             "std@@IEAA@PEBD_K@Z";
+    case 0x004e:
+      return "??0?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@"
+             "std@@QEAA@AEBV_Locinfo@1@_K@Z";
+    case 0x004f:
+      return "??0?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@"
+             "std@@QEAA@_K@Z";
+    case 0x0050:
+      return "??0?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@"
+             "std@@@std@@IEAA@PEBD_K@Z";
+    case 0x0051:
+      return "??0?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@"
+             "std@@@std@@QEAA@AEBV_Locinfo@1@_K@Z";
+    case 0x0052:
+      return "??0?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@"
+             "std@@@std@@QEAA@_K@Z";
+    case 0x0053:
+      return "??0?$time_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@"
+             "std@@QEAA@AEBV_Locinfo@1@_K@Z";
+    case 0x0054:
+      return "??0?$time_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@"
+             "std@@QEAA@_K@Z";
+    case 0x0055:
+      return "??0?$time_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@"
+             "std@@IEAA@PEBD_K@Z";
+    case 0x0056:
+      return "??0?$time_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@"
+             "std@@QEAA@AEBV_Locinfo@1@_K@Z";
+    case 0x0057:
+      return "??0?$time_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@"
+             "std@@QEAA@_K@Z";
+    case 0x0058:
+      return "??0?$time_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@"
+             "std@@@std@@IEAA@PEBD_K@Z";
+    case 0x0059:
+      return "??0?$time_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@"
+             "std@@@std@@QEAA@AEBV_Locinfo@1@_K@Z";
+    case 0x005a:
+      return "??0?$time_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@"
+             "std@@@std@@QEAA@_K@Z";
+    case 0x005b: return "??0Init@ios_base@std@@QEAA@XZ";
+    case 0x005c:
+      return "??0_Concurrent_queue_base_v4@details@Concurrency@@IEAA@_K@Z";
+    case 0x005d:
+      return "??0_Concurrent_queue_iterator_base_v4@details@Concurrency@@IEAA@"
+             "AEBV_Concurrent_queue_base_v4@12@@Z";
+    case 0x005e: return "??0_Container_base12@std@@QEAA@AEBU01@@Z";
+    case 0x005f: return "??0_Container_base12@std@@QEAA@XZ";
+    case 0x0060: return "??0_Facet_base@std@@QEAA@AEBV01@@Z";
+    case 0x0061: return "??0_Facet_base@std@@QEAA@XZ";
+    case 0x0062: return "??0_Init_locks@std@@QEAA@XZ";
+    case 0x0063: return "??0_Locimp@locale@std@@AEAA@AEBV012@@Z";
+    case 0x0064: return "??0_Locimp@locale@std@@AEAA@_N@Z";
+    case 0x0065: return "??0_Locinfo@std@@QEAA@HPEBD@Z";
+    case 0x0066: return "??0_Locinfo@std@@QEAA@PEBD@Z";
+    case 0x0067: return "??0_Lockit@std@@QEAA@H@Z";
+    case 0x0068: return "??0_Lockit@std@@QEAA@XZ";
+    case 0x0069: return "??0_Pad@std@@QEAA@AEBV01@@Z";
+    case 0x006a: return "??0_Pad@std@@QEAA@XZ";
+    case 0x006b: return "??0_Runtime_object@details@Concurrency@@QEAA@H@Z";
+    case 0x006c: return "??0_Runtime_object@details@Concurrency@@QEAA@XZ";
+    case 0x006d: return "??0_Timevec@std@@QEAA@AEBV01@@Z";
+    case 0x006e: return "??0_Timevec@std@@QEAA@PEAX@Z";
+    case 0x006f: return "??0_UShinit@std@@QEAA@XZ";
+    case 0x0070: return "??0_Winit@std@@QEAA@XZ";
+    case 0x0071: return "??0agent@Concurrency@@QEAA@AEAVScheduleGroup@1@@Z";
+    case 0x0072: return "??0agent@Concurrency@@QEAA@AEAVScheduler@1@@Z";
+    case 0x0073: return "??0agent@Concurrency@@QEAA@XZ";
+    case 0x0074: return "??0codecvt_base@std@@QEAA@_K@Z";
+    case 0x0075: return "??0ctype_base@std@@QEAA@_K@Z";
+    case 0x0076: return "??0facet@locale@std@@IEAA@_K@Z";
+    case 0x0077: return "??0id@locale@std@@QEAA@_K@Z";
+    case 0x0078: return "??0ios_base@std@@IEAA@XZ";
+    case 0x0079: return "??0time_base@std@@QEAA@_K@Z";
+    case 0x007a: return "??1?$_Yarn@D@std@@QEAA@XZ";
+    case 0x007b: return "??1?$_Yarn@_W@std@@QEAA@XZ";
+    case 0x007c: return "??1?$basic_ios@DU?$char_traits@D@std@@@std@@UEAA@XZ";
+    case 0x007d: return "??1?$basic_ios@GU?$char_traits@G@std@@@std@@UEAA@XZ";
+    case 0x007e: return "??1?$basic_ios@_WU?$char_traits@_W@std@@@std@@UEAA@XZ";
+    case 0x007f: return "??1?$basic_iostream@DU?$char_traits@D@std@@@std@@UEAA@XZ";
+    case 0x0080: return "??1?$basic_iostream@GU?$char_traits@G@std@@@std@@UEAA@XZ";
+    case 0x0081:
+      return "??1?$basic_iostream@_WU?$char_traits@_W@std@@@std@@UEAA@XZ";
+    case 0x0082: return "??1?$basic_istream@DU?$char_traits@D@std@@@std@@UEAA@XZ";
+    case 0x0083: return "??1?$basic_istream@GU?$char_traits@G@std@@@std@@UEAA@XZ";
+    case 0x0084:
+      return "??1?$basic_istream@_WU?$char_traits@_W@std@@@std@@UEAA@XZ";
+    case 0x0085: return "??1?$basic_ostream@DU?$char_traits@D@std@@@std@@UEAA@XZ";
+    case 0x0086: return "??1?$basic_ostream@GU?$char_traits@G@std@@@std@@UEAA@XZ";
+    case 0x0087:
+      return "??1?$basic_ostream@_WU?$char_traits@_W@std@@@std@@UEAA@XZ";
+    case 0x0088:
+      return "??1?$basic_streambuf@DU?$char_traits@D@std@@@std@@UEAA@XZ";
+    case 0x0089:
+      return "??1?$basic_streambuf@GU?$char_traits@G@std@@@std@@UEAA@XZ";
+    case 0x008a:
+      return "??1?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@UEAA@XZ";
+    case 0x008b: return "??1?$codecvt@DDH@std@@MEAA@XZ";
+    case 0x008c: return "??1?$codecvt@GDH@std@@MEAA@XZ";
+    case 0x008d: return "??1?$codecvt@_WDH@std@@MEAA@XZ";
+    case 0x008e: return "??1?$ctype@D@std@@MEAA@XZ";
+    case 0x008f: return "??1?$ctype@G@std@@MEAA@XZ";
+    case 0x0090: return "??1?$ctype@_W@std@@MEAA@XZ";
+    case 0x0091:
+      return "??1?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@"
+             "std@@MEAA@XZ";
+    case 0x0092:
+      return "??1?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@"
+             "std@@MEAA@XZ";
+    case 0x0093:
+      return "??1?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@"
+             "@@std@@MEAA@XZ";
+    case 0x0094:
+      return "??1?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@"
+             "std@@MEAA@XZ";
+    case 0x0095:
+      return "??1?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@"
+             "std@@MEAA@XZ";
+    case 0x0096:
+      return "??1?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@"
+             "@@std@@MEAA@XZ";
+    case 0x0097:
+      return "??1?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@"
+             "std@@MEAA@XZ";
+    case 0x0098:
+      return "??1?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@"
+             "std@@MEAA@XZ";
+    case 0x0099:
+      return "??1?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@"
+             "std@@@std@@MEAA@XZ";
+    case 0x009a:
+      return "??1?$time_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@"
+             "std@@MEAA@XZ";
+    case 0x009b:
+      return "??1?$time_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@"
+             "std@@MEAA@XZ";
+    case 0x009c:
+      return "??1?$time_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@"
+             "std@@@std@@MEAA@XZ";
+    case 0x009d: return "??1Init@ios_base@std@@QEAA@XZ";
+    case 0x009e:
+      return "??1_Concurrent_queue_base_v4@details@Concurrency@@MEAA@XZ";
+    case 0x009f:
+      return "??1_Concurrent_queue_iterator_base_v4@details@Concurrency@@IEAA@XZ";
+    case 0x00a0:
+      return "??1_Concurrent_vector_base_v4@details@Concurrency@@IEAA@XZ";
+    case 0x00a1: return "??1_Container_base12@std@@QEAA@XZ";
+    case 0x00a2: return "??1_Facet_base@std@@UEAA@XZ";
+    case 0x00a3: return "??1_Init_locks@std@@QEAA@XZ";
+    case 0x00a4: return "??1_Locimp@locale@std@@MEAA@XZ";
+    case 0x00a5: return "??1_Locinfo@std@@QEAA@XZ";
+    case 0x00a6: return "??1_Lockit@std@@QEAA@XZ";
+    case 0x00a7: return "??1_Pad@std@@QEAA@XZ";
+    case 0x00a8: return "??1_Timevec@std@@QEAA@XZ";
+    case 0x00a9: return "??1_UShinit@std@@QEAA@XZ";
+    case 0x00aa: return "??1_Winit@std@@QEAA@XZ";
+    case 0x00ab: return "??1agent@Concurrency@@UEAA@XZ";
+    case 0x00ac: return "??1codecvt_base@std@@UEAA@XZ";
+    case 0x00ad: return "??1ctype_base@std@@UEAA@XZ";
+    case 0x00ae: return "??1facet@locale@std@@MEAA@XZ";
+    case 0x00af: return "??1ios_base@std@@UEAA@XZ";
+    case 0x00b0: return "??1time_base@std@@UEAA@XZ";
+    case 0x00b1: return "??4?$_Iosb@H@std@@QEAAAEAV01@AEBV01@@Z";
+    case 0x00b2: return "??4?$_Yarn@D@std@@QEAAAEAV01@AEBV01@@Z";
+    case 0x00b3: return "??4?$_Yarn@D@std@@QEAAAEAV01@PEBD@Z";
+    case 0x00b4: return "??4?$_Yarn@_W@std@@QEAAAEAV01@PEB_W@Z";
+    case 0x00b5:
+      return "??4?$basic_iostream@DU?$char_traits@D@std@@@std@@IEAAAEAV01@$$"
+             "QEAV01@@Z";
+    case 0x00b6:
+      return "??4?$basic_iostream@GU?$char_traits@G@std@@@std@@IEAAAEAV01@$$"
+             "QEAV01@@Z";
+    case 0x00b7:
+      return "??4?$basic_iostream@_WU?$char_traits@_W@std@@@std@@IEAAAEAV01@$$"
+             "QEAV01@@Z";
+    case 0x00b8:
+      return "??4?$basic_istream@DU?$char_traits@D@std@@@std@@IEAAAEAV01@$$QEAV01@"
+             "@Z";
+    case 0x00b9:
+      return "??4?$basic_istream@GU?$char_traits@G@std@@@std@@IEAAAEAV01@$$QEAV01@"
+             "@Z";
+    case 0x00ba:
+      return "??4?$basic_istream@_WU?$char_traits@_W@std@@@std@@IEAAAEAV01@$$"
+             "QEAV01@@Z";
+    case 0x00bb:
+      return "??4?$basic_ostream@DU?$char_traits@D@std@@@std@@IEAAAEAV01@$$QEAV01@"
+             "@Z";
+    case 0x00bc:
+      return "??4?$basic_ostream@GU?$char_traits@G@std@@@std@@IEAAAEAV01@$$QEAV01@"
+             "@Z";
+    case 0x00bd:
+      return "??4?$basic_ostream@_WU?$char_traits@_W@std@@@std@@IEAAAEAV01@$$"
+             "QEAV01@@Z";
+    case 0x00be:
+      return "??4?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAAEAV01@AEBV01@"
+             "@Z";
+    case 0x00bf:
+      return "??4?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAAEAV01@AEBV01@"
+             "@Z";
+    case 0x00c0:
+      return "??4?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAAEAV01@"
+             "AEBV01@@Z";
+    case 0x00c1: return "??4Init@ios_base@std@@QEAAAEAV012@AEBV012@@Z";
+    case 0x00c2: return "??4_Container_base0@std@@QEAAAEAU01@AEBU01@@Z";
+    case 0x00c3: return "??4_Container_base12@std@@QEAAAEAU01@AEBU01@@Z";
+    case 0x00c4: return "??4_Facet_base@std@@QEAAAEAV01@AEBV01@@Z";
+    case 0x00c5: return "??4_Init_locks@std@@QEAAAEAV01@AEBV01@@Z";
+    case 0x00c6: return "??4_Pad@std@@QEAAAEAV01@AEBV01@@Z";
+    case 0x00c7: return "??4_Timevec@std@@QEAAAEAV01@AEBV01@@Z";
+    case 0x00c8: return "??4_UShinit@std@@QEAAAEAV01@AEBV01@@Z";
+    case 0x00c9: return "??4_Winit@std@@QEAAAEAV01@AEBV01@@Z";
+    case 0x00ca:
+      return "??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAF@Z";
+    case 0x00cb:
+      return "??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAG@Z";
+    case 0x00cc:
+      return "??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAH@Z";
+    case 0x00cd:
+      return "??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAI@Z";
+    case 0x00ce:
+      return "??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAJ@Z";
+    case 0x00cf:
+      return "??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAK@Z";
+    case 0x00d0:
+      return "??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAM@Z";
+    case 0x00d1:
+      return "??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAN@Z";
+    case 0x00d2:
+      return "??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAO@Z";
+    case 0x00d3:
+      return "??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAPEAX@"
+             "Z";
+    case 0x00d4:
+      return "??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEA_J@Z";
+    case 0x00d5:
+      return "??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEA_K@Z";
+    case 0x00d6:
+      return "??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEA_N@Z";
+    case 0x00d7:
+      return "??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@"
+             "P6AAEAV01@AEAV01@@Z@Z";
+    case 0x00d8:
+      return "??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@P6AAEAV?$"
+             "basic_ios@DU?$char_traits@D@std@@@1@AEAV21@@Z@Z";
+    case 0x00d9:
+      return "??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@"
+             "P6AAEAVios_base@1@AEAV21@@Z@Z";
+    case 0x00da:
+      return "??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@PEAV?$"
+             "basic_streambuf@DU?$char_traits@D@std@@@1@@Z";
+    case 0x00db:
+      return "??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEAF@Z";
+    case 0x00dc:
+      return "??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEAG@Z";
+    case 0x00dd:
+      return "??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEAH@Z";
+    case 0x00de:
+      return "??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEAI@Z";
+    case 0x00df:
+      return "??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEAJ@Z";
+    case 0x00e0:
+      return "??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEAK@Z";
+    case 0x00e1:
+      return "??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEAM@Z";
+    case 0x00e2:
+      return "??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEAN@Z";
+    case 0x00e3:
+      return "??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEAO@Z";
+    case 0x00e4:
+      return "??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEAPEAX@"
+             "Z";
+    case 0x00e5:
+      return "??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEA_J@Z";
+    case 0x00e6:
+      return "??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEA_K@Z";
+    case 0x00e7:
+      return "??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEA_N@Z";
+    case 0x00e8:
+      return "??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@"
+             "P6AAEAV01@AEAV01@@Z@Z";
+    case 0x00e9:
+      return "??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@P6AAEAV?$"
+             "basic_ios@GU?$char_traits@G@std@@@1@AEAV21@@Z@Z";
+    case 0x00ea:
+      return "??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@"
+             "P6AAEAVios_base@1@AEAV21@@Z@Z";
+    case 0x00eb:
+      return "??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@PEAV?$"
+             "basic_streambuf@GU?$char_traits@G@std@@@1@@Z";
+    case 0x00ec:
+      return "??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEAF@Z";
+    case 0x00ed:
+      return "??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEAG@Z";
+    case 0x00ee:
+      return "??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEAH@Z";
+    case 0x00ef:
+      return "??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEAI@Z";
+    case 0x00f0:
+      return "??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEAJ@Z";
+    case 0x00f1:
+      return "??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEAK@Z";
+    case 0x00f2:
+      return "??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEAM@Z";
+    case 0x00f3:
+      return "??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEAN@Z";
+    case 0x00f4:
+      return "??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEAO@Z";
+    case 0x00f5:
+      return "??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@"
+             "AEAPEAX@Z";
+    case 0x00f6:
+      return "??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEA_J@"
+             "Z";
+    case 0x00f7:
+      return "??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEA_K@"
+             "Z";
+    case 0x00f8:
+      return "??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEA_N@"
+             "Z";
+    case 0x00f9:
+      return "??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@"
+             "P6AAEAV01@AEAV01@@Z@Z";
+    case 0x00fa:
+      return "??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@"
+             "P6AAEAV?$basic_ios@_WU?$char_traits@_W@std@@@1@AEAV21@@Z@Z";
+    case 0x00fb:
+      return "??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@"
+             "P6AAEAVios_base@1@AEAV21@@Z@Z";
+    case 0x00fc:
+      return "??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@PEAV?$"
+             "basic_streambuf@_WU?$char_traits@_W@std@@@1@@Z";
+    case 0x00fd:
+      return "??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@F@Z";
+    case 0x00fe:
+      return "??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@G@Z";
+    case 0x00ff:
+      return "??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@H@Z";
+    case 0x0100:
+      return "??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@I@Z";
+    case 0x0101:
+      return "??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@J@Z";
+    case 0x0102:
+      return "??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@K@Z";
+    case 0x0103:
+      return "??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@M@Z";
+    case 0x0104:
+      return "??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@N@Z";
+    case 0x0105:
+      return "??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@O@Z";
+    case 0x0106:
+      return "??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@"
+             "P6AAEAV01@AEAV01@@Z@Z";
+    case 0x0107:
+      return "??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@P6AAEAV?$"
+             "basic_ios@DU?$char_traits@D@std@@@1@AEAV21@@Z@Z";
+    case 0x0108:
+      return "??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@"
+             "P6AAEAVios_base@1@AEAV21@@Z@Z";
+    case 0x0109:
+      return "??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@PEAV?$"
+             "basic_streambuf@DU?$char_traits@D@std@@@1@@Z";
+    case 0x010a:
+      return "??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@PEBX@Z";
+    case 0x010b:
+      return "??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@_J@Z";
+    case 0x010c:
+      return "??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@_K@Z";
+    case 0x010d:
+      return "??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@_N@Z";
+    case 0x010e:
+      return "??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@F@Z";
+    case 0x010f:
+      return "??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@G@Z";
+    case 0x0110:
+      return "??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@H@Z";
+    case 0x0111:
+      return "??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@I@Z";
+    case 0x0112:
+      return "??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@J@Z";
+    case 0x0113:
+      return "??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@K@Z";
+    case 0x0114:
+      return "??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@M@Z";
+    case 0x0115:
+      return "??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@N@Z";
+    case 0x0116:
+      return "??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@O@Z";
+    case 0x0117:
+      return "??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@"
+             "P6AAEAV01@AEAV01@@Z@Z";
+    case 0x0118:
+      return "??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@P6AAEAV?$"
+             "basic_ios@GU?$char_traits@G@std@@@1@AEAV21@@Z@Z";
+    case 0x0119:
+      return "??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@"
+             "P6AAEAVios_base@1@AEAV21@@Z@Z";
+    case 0x011a:
+      return "??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@PEAV?$"
+             "basic_streambuf@GU?$char_traits@G@std@@@1@@Z";
+    case 0x011b:
+      return "??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@PEBX@Z";
+    case 0x011c:
+      return "??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@_J@Z";
+    case 0x011d:
+      return "??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@_K@Z";
+    case 0x011e:
+      return "??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@_N@Z";
+    case 0x011f:
+      return "??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@F@Z";
+    case 0x0120:
+      return "??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@G@Z";
+    case 0x0121:
+      return "??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@H@Z";
+    case 0x0122:
+      return "??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@I@Z";
+    case 0x0123:
+      return "??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@J@Z";
+    case 0x0124:
+      return "??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@K@Z";
+    case 0x0125:
+      return "??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@M@Z";
+    case 0x0126:
+      return "??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@N@Z";
+    case 0x0127:
+      return "??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@O@Z";
+    case 0x0128:
+      return "??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@"
+             "P6AAEAV01@AEAV01@@Z@Z";
+    case 0x0129:
+      return "??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@"
+             "P6AAEAV?$basic_ios@_WU?$char_traits@_W@std@@@1@AEAV21@@Z@Z";
+    case 0x012a:
+      return "??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@"
+             "P6AAEAVios_base@1@AEAV21@@Z@Z";
+    case 0x012b:
+      return "??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@PEAV?$"
+             "basic_streambuf@_WU?$char_traits@_W@std@@@1@@Z";
+    case 0x012c:
+      return "??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@PEBX@Z";
+    case 0x012d:
+      return "??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@_J@Z";
+    case 0x012e:
+      return "??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@_K@Z";
+    case 0x012f:
+      return "??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@_N@Z";
+    case 0x0130: return "??7ios_base@std@@QEBA_NXZ";
+    case 0x0131: return "??Bid@locale@std@@QEAA_KXZ";
+    case 0x0132: return "??Bios_base@std@@QEBA_NXZ";
+    case 0x0133: return "??_7?$basic_ios@DU?$char_traits@D@std@@@std@@6B@";
+    case 0x0134: return "??_7?$basic_ios@GU?$char_traits@G@std@@@std@@6B@";
+    case 0x0135: return "??_7?$basic_ios@_WU?$char_traits@_W@std@@@std@@6B@";
+    case 0x0136: return "??_7?$basic_iostream@DU?$char_traits@D@std@@@std@@6B@";
+    case 0x0137: return "??_7?$basic_iostream@GU?$char_traits@G@std@@@std@@6B@";
+    case 0x0138: return "??_7?$basic_iostream@_WU?$char_traits@_W@std@@@std@@6B@";
+    case 0x0139: return "??_7?$basic_istream@DU?$char_traits@D@std@@@std@@6B@";
+    case 0x013a: return "??_7?$basic_istream@GU?$char_traits@G@std@@@std@@6B@";
+    case 0x013b: return "??_7?$basic_istream@_WU?$char_traits@_W@std@@@std@@6B@";
+    case 0x013c: return "??_7?$basic_ostream@DU?$char_traits@D@std@@@std@@6B@";
+    case 0x013d: return "??_7?$basic_ostream@GU?$char_traits@G@std@@@std@@6B@";
+    case 0x013e: return "??_7?$basic_ostream@_WU?$char_traits@_W@std@@@std@@6B@";
+    case 0x013f: return "??_7?$basic_streambuf@DU?$char_traits@D@std@@@std@@6B@";
+    case 0x0140: return "??_7?$basic_streambuf@GU?$char_traits@G@std@@@std@@6B@";
+    case 0x0141: return "??_7?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@6B@";
+    case 0x0142: return "??_7?$codecvt@DDH@std@@6B@";
+    case 0x0143: return "??_7?$codecvt@GDH@std@@6B@";
+    case 0x0144: return "??_7?$codecvt@_WDH@std@@6B@";
+    case 0x0145: return "??_7?$ctype@D@std@@6B@";
+    case 0x0146: return "??_7?$ctype@G@std@@6B@";
+    case 0x0147: return "??_7?$ctype@_W@std@@6B@";
+    case 0x0148:
+      return "??_7?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@"
+             "std@@6B@";
+    case 0x0149:
+      return "??_7?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@"
+             "std@@6B@";
+    case 0x014a:
+      return "??_7?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@"
+             "std@@@std@@6B@";
+    case 0x014b:
+      return "??_7?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@"
+             "std@@6B@";
+    case 0x014c:
+      return "??_7?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@"
+             "std@@6B@";
+    case 0x014d:
+      return "??_7?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@"
+             "std@@@std@@6B@";
+    case 0x014e:
+      return "??_7?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@"
+             "@std@@6B@";
+    case 0x014f:
+      return "??_7?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@"
+             "@std@@6B@";
+    case 0x0150:
+      return "??_7?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@"
+             "std@@@std@@6B@";
+    case 0x0151:
+      return "??_7?$time_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@"
+             "@std@@6B@";
+    case 0x0152:
+      return "??_7?$time_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@"
+             "@std@@6B@";
+    case 0x0153:
+      return "??_7?$time_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@"
+             "std@@@std@@6B@";
+    case 0x0154: return "??_7_Facet_base@std@@6B@";
+    case 0x0155: return "??_7_Locimp@locale@std@@6B@";
+    case 0x0156: return "??_7_Pad@std@@6B@";
+    case 0x0157: return "??_7codecvt_base@std@@6B@";
+    case 0x0158: return "??_7ctype_base@std@@6B@";
+    case 0x0159: return "??_7facet@locale@std@@6B@";
+    case 0x015a: return "??_7ios_base@std@@6B@";
+    case 0x015b: return "??_7time_base@std@@6B@";
+    case 0x015c:
+      return "??_8?$basic_iostream@DU?$char_traits@D@std@@@std@@7B?$basic_istream@"
+             "DU?$char_traits@D@std@@@1@@";
+    case 0x015d:
+      return "??_8?$basic_iostream@DU?$char_traits@D@std@@@std@@7B?$basic_ostream@"
+             "DU?$char_traits@D@std@@@1@@";
+    case 0x015e:
+      return "??_8?$basic_iostream@GU?$char_traits@G@std@@@std@@7B?$basic_istream@"
+             "GU?$char_traits@G@std@@@1@@";
+    case 0x015f:
+      return "??_8?$basic_iostream@GU?$char_traits@G@std@@@std@@7B?$basic_ostream@"
+             "GU?$char_traits@G@std@@@1@@";
+    case 0x0160:
+      return "??_8?$basic_iostream@_WU?$char_traits@_W@std@@@std@@7B?$basic_"
+             "istream@_WU?$char_traits@_W@std@@@1@@";
+    case 0x0161:
+      return "??_8?$basic_iostream@_WU?$char_traits@_W@std@@@std@@7B?$basic_"
+             "ostream@_WU?$char_traits@_W@std@@@1@@";
+    case 0x0162: return "??_8?$basic_istream@DU?$char_traits@D@std@@@std@@7B@";
+    case 0x0163: return "??_8?$basic_istream@GU?$char_traits@G@std@@@std@@7B@";
+    case 0x0164: return "??_8?$basic_istream@_WU?$char_traits@_W@std@@@std@@7B@";
+    case 0x0165: return "??_8?$basic_ostream@DU?$char_traits@D@std@@@std@@7B@";
+    case 0x0166: return "??_8?$basic_ostream@GU?$char_traits@G@std@@@std@@7B@";
+    case 0x0167: return "??_8?$basic_ostream@_WU?$char_traits@_W@std@@@std@@7B@";
+    case 0x0168:
+      return "??_D?$basic_iostream@DU?$char_traits@D@std@@@std@@QEAAXXZ";
+    case 0x0169:
+      return "??_D?$basic_iostream@GU?$char_traits@G@std@@@std@@QEAAXXZ";
+    case 0x016a:
+      return "??_D?$basic_iostream@_WU?$char_traits@_W@std@@@std@@QEAAXXZ";
+    case 0x016b: return "??_D?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAXXZ";
+    case 0x016c: return "??_D?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAXXZ";
+    case 0x016d:
+      return "??_D?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAXXZ";
+    case 0x016e: return "??_D?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAXXZ";
+    case 0x016f: return "??_D?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAXXZ";
+    case 0x0170:
+      return "??_D?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAXXZ";
+    case 0x0171: return "??_F?$codecvt@DDH@std@@QEAAXXZ";
+    case 0x0172: return "??_F?$codecvt@GDH@std@@QEAAXXZ";
+    case 0x0173: return "??_F?$codecvt@_WDH@std@@QEAAXXZ";
+    case 0x0174: return "??_F?$ctype@D@std@@QEAAXXZ";
+    case 0x0175: return "??_F?$ctype@G@std@@QEAAXXZ";
+    case 0x0176: return "??_F?$ctype@_W@std@@QEAAXXZ";
+    case 0x0177:
+      return "??_F?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@"
+             "std@@QEAAXXZ";
+    case 0x0178:
+      return "??_F?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@"
+             "std@@QEAAXXZ";
+    case 0x0179:
+      return "??_F?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@"
+             "std@@@std@@QEAAXXZ";
+    case 0x017a:
+      return "??_F?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@"
+             "std@@QEAAXXZ";
+    case 0x017b:
+      return "??_F?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@"
+             "std@@QEAAXXZ";
+    case 0x017c:
+      return "??_F?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@"
+             "std@@@std@@QEAAXXZ";
+    case 0x017d:
+      return "??_F?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@"
+             "@std@@QEAAXXZ";
+    case 0x017e:
+      return "??_F?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@"
+             "@std@@QEAAXXZ";
+    case 0x017f:
+      return "??_F?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@"
+             "std@@@std@@QEAAXXZ";
+    case 0x0180:
+      return "??_F?$time_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@"
+             "@std@@QEAAXXZ";
+    case 0x0181:
+      return "??_F?$time_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@"
+             "@std@@QEAAXXZ";
+    case 0x0182:
+      return "??_F?$time_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@"
+             "std@@@std@@QEAAXXZ";
+    case 0x0183: return "??_F_Locinfo@std@@QEAAXXZ";
+    case 0x0184: return "??_F_Timevec@std@@QEAAXXZ";
+    case 0x0185: return "??_Fcodecvt_base@std@@QEAAXXZ";
+    case 0x0186: return "??_Fctype_base@std@@QEAAXXZ";
+    case 0x0187: return "??_Ffacet@locale@std@@QEAAXXZ";
+    case 0x0188: return "??_Fid@locale@std@@QEAAXXZ";
+    case 0x0189: return "??_Ftime_base@std@@QEAAXXZ";
+    case 0x018a: return "?GetNextAsyncId@platform@details@Concurrency@@YAIXZ";
+    case 0x018b: return "?NFS_Allocate@details@Concurrency@@YAPEAX_K0PEAX@Z";
+    case 0x018c: return "?NFS_Free@details@Concurrency@@YAXPEAX@Z";
+    case 0x018d: return "?NFS_GetLineSize@details@Concurrency@@YA_KXZ";
+    case 0x018e: return "?_10@placeholders@std@@3V?$_Ph@$09@2@A";
+    case 0x018f: return "?_11@placeholders@std@@3V?$_Ph@$0L@@2@A";
+    case 0x0190: return "?_12@placeholders@std@@3V?$_Ph@$0M@@2@A";
+    case 0x0191: return "?_13@placeholders@std@@3V?$_Ph@$0N@@2@A";
+    case 0x0192: return "?_14@placeholders@std@@3V?$_Ph@$0O@@2@A";
+    case 0x0193: return "?_15@placeholders@std@@3V?$_Ph@$0P@@2@A";
+    case 0x0194: return "?_16@placeholders@std@@3V?$_Ph@$0BA@@2@A";
+    case 0x0195: return "?_17@placeholders@std@@3V?$_Ph@$0BB@@2@A";
+    case 0x0196: return "?_18@placeholders@std@@3V?$_Ph@$0BC@@2@A";
+    case 0x0197: return "?_19@placeholders@std@@3V?$_Ph@$0BD@@2@A";
+    case 0x0198: return "?_1@placeholders@std@@3V?$_Ph@$00@2@A";
+    case 0x0199: return "?_20@placeholders@std@@3V?$_Ph@$0BE@@2@A";
+    case 0x019a: return "?_2@placeholders@std@@3V?$_Ph@$01@2@A";
+    case 0x019b: return "?_3@placeholders@std@@3V?$_Ph@$02@2@A";
+    case 0x019c: return "?_4@placeholders@std@@3V?$_Ph@$03@2@A";
+    case 0x019d: return "?_5@placeholders@std@@3V?$_Ph@$04@2@A";
+    case 0x019e: return "?_6@placeholders@std@@3V?$_Ph@$05@2@A";
+    case 0x019f: return "?_7@placeholders@std@@3V?$_Ph@$06@2@A";
+    case 0x01a0: return "?_8@placeholders@std@@3V?$_Ph@$07@2@A";
+    case 0x01a1: return "?_9@placeholders@std@@3V?$_Ph@$08@2@A";
+    case 0x01a2: return "?_Addcats@_Locinfo@std@@QEAAAEAV12@HPEBD@Z";
+    case 0x01a3: return "?_Addfac@_Locimp@locale@std@@AEAAXPEAVfacet@23@_K@Z";
+    case 0x01a4: return "?_Addstd@ios_base@std@@SAXPEAV12@@Z";
+    case 0x01a5:
+      return "?_Advance@_Concurrent_queue_iterator_base_v4@details@Concurrency@@"
+             "IEAAXXZ";
+    case 0x01a6:
+      return "?_Assign@_Concurrent_queue_iterator_base_v4@details@Concurrency@@"
+             "IEAAXAEBV123@@Z";
+    case 0x01a7: return "?_Atexit@@YAXP6AXXZ@Z";
+    case 0x01a8: return "?_BADOFF@std@@3_JB";
+    case 0x01a9: return "?_Byte_reverse_table@details@Concurrency@@3QBEB";
+    case 0x01aa: return "?_C_str@?$_Yarn@D@std@@QEBAPEBDXZ";
+    case 0x01ab: return "?_C_str@?$_Yarn@_W@std@@QEBAPEB_WXZ";
+    case 0x01ac: return "?_Callfns@ios_base@std@@AEAAXW4event@12@@Z";
+    case 0x01ad: return "?_Clocptr@_Locimp@locale@std@@0PEAV123@EA";
+    case 0x01ae: return "?_Close_dir@sys@tr2@std@@YAXPEAX@Z";
+    case 0x01af: return "?_Copy_file@sys@tr2@std@@YAHPEBD0_N@Z";
+    case 0x01b0: return "?_Copy_file@sys@tr2@std@@YAHPEB_W0_N@Z";
+    case 0x01b1: return "?_Current_get@sys@tr2@std@@YAPEADAEAY0BAE@D@Z";
+    case 0x01b2: return "?_Current_get@sys@tr2@std@@YAPEA_WAEAY0BAE@_W@Z";
+    case 0x01b3: return "?_Current_set@sys@tr2@std@@YA_NPEBD@Z";
+    case 0x01b4: return "?_Current_set@sys@tr2@std@@YA_NPEB_W@Z";
+    case 0x01b5: return "?_Decref@facet@locale@std@@UEAAPEAV_Facet_base@3@XZ";
+    case 0x01b6: return "?_Donarrow@?$ctype@G@std@@IEBADGD@Z";
+    case 0x01b7: return "?_Donarrow@?$ctype@_W@std@@IEBAD_WD@Z";
+    case 0x01b8: return "?_Dowiden@?$ctype@G@std@@IEBAGD@Z";
+    case 0x01b9: return "?_Dowiden@?$ctype@_W@std@@IEBA_WD@Z";
+    case 0x01ba: return "?_Empty@?$_Yarn@D@std@@QEBA_NXZ";
+    case 0x01bb: return "?_Empty@?$_Yarn@_W@std@@QEBA_NXZ";
+    case 0x01bc: return "?_Equivalent@sys@tr2@std@@YAHPEBD0@Z";
+    case 0x01bd: return "?_Equivalent@sys@tr2@std@@YAHPEB_W0@Z";
+    case 0x01be:
+      return "?_Ffmt@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@"
+             "std@@@std@@AEBAPEADPEADDH@Z";
+    case 0x01bf:
+      return "?_Ffmt@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@"
+             "std@@@std@@AEBAPEADPEADDH@Z";
+    case 0x01c0:
+      return "?_Ffmt@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@"
+             "std@@@std@@AEBAPEADPEADDH@Z";
+    case 0x01c1: return "?_File_size@sys@tr2@std@@YA_KPEBD@Z";
+    case 0x01c2: return "?_File_size@sys@tr2@std@@YA_KPEB_W@Z";
+    case 0x01c3: return "?_Findarr@ios_base@std@@AEAAAEAU_Iosarray@12@H@Z";
+    case 0x01c4: return "?_Fiopen@std@@YAPEAU_iobuf@@PEBDHH@Z";
+    case 0x01c5: return "?_Fiopen@std@@YAPEAU_iobuf@@PEBGHH@Z";
+    case 0x01c6: return "?_Fiopen@std@@YAPEAU_iobuf@@PEB_WHH@Z";
+    case 0x01c7:
+      return "?_Fput@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@"
+             "std@@@std@@AEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@"
+             "V32@AEAVios_base@2@DPEBD_K333@Z";
+    case 0x01c8:
+      return "?_Fput@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@"
+             "std@@@std@@AEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@"
+             "V32@AEAVios_base@2@GPEBD_K333@Z";
+    case 0x01c9:
+      return "?_Fput@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@"
+             "std@@@std@@AEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@2@"
+             "V32@AEAVios_base@2@_WPEBD_K444@Z";
+    case 0x01ca: return "?_Future_error_map@std@@YAPEBDH@Z";
+    case 0x01cb: return "?_GetCombinableSize@details@Concurrency@@YA_KXZ";
+    case 0x01cc:
+      return "?_Getcat@?$codecvt@DDH@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z";
+    case 0x01cd:
+      return "?_Getcat@?$codecvt@GDH@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z";
+    case 0x01ce:
+      return "?_Getcat@?$codecvt@_WDH@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z";
+    case 0x01cf:
+      return "?_Getcat@?$ctype@D@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z";
+    case 0x01d0:
+      return "?_Getcat@?$ctype@G@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z";
+    case 0x01d1:
+      return "?_Getcat@?$ctype@_W@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z";
+    case 0x01d2:
+      return "?_Getcat@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@"
+             "std@@@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z";
+    case 0x01d3:
+      return "?_Getcat@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@"
+             "std@@@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z";
+    case 0x01d4:
+      return "?_Getcat@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@"
+             "@@std@@@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z";
+    case 0x01d5:
+      return "?_Getcat@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@"
+             "std@@@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z";
+    case 0x01d6:
+      return "?_Getcat@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@"
+             "std@@@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z";
+    case 0x01d7:
+      return "?_Getcat@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@"
+             "@@std@@@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z";
+    case 0x01d8:
+      return "?_Getcat@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@"
+             "std@@@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z";
+    case 0x01d9:
+      return "?_Getcat@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@"
+             "std@@@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z";
+    case 0x01da:
+      return "?_Getcat@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@"
+             "std@@@std@@@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z";
+    case 0x01db:
+      return "?_Getcat@?$time_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@"
+             "std@@@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z";
+    case 0x01dc:
+      return "?_Getcat@?$time_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@"
+             "std@@@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z";
+    case 0x01dd:
+      return "?_Getcat@?$time_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@"
+             "std@@@std@@@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z";
+    case 0x01de: return "?_Getcat@facet@locale@std@@SA_KPEAPEBV123@PEBV23@@Z";
+    case 0x01df: return "?_Getcoll@_Locinfo@std@@QEBA?AU_Collvec@@XZ";
+    case 0x01e0: return "?_Getctype@_Locinfo@std@@QEBA?AU_Ctypevec@@XZ";
+    case 0x01e1: return "?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ";
+    case 0x01e2: return "?_Getdateorder@_Locinfo@std@@QEBAHXZ";
+    case 0x01e3: return "?_Getdays@_Locinfo@std@@QEBAPEBDXZ";
+    case 0x01e4: return "?_Getfalse@_Locinfo@std@@QEBAPEBDXZ";
+    case 0x01e5:
+      return "?_Getffld@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@"
+             "std@@@std@@AEBAHPEADAEAV?$istreambuf_iterator@DU?$char_traits@D@std@"
+             "@@2@1AEAVios_base@2@PEAH@Z";
+    case 0x01e6:
+      return "?_Getffld@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@"
+             "std@@@std@@AEBAHPEADAEAV?$istreambuf_iterator@GU?$char_traits@G@std@"
+             "@@2@1AEAVios_base@2@PEAH@Z";
+    case 0x01e7:
+      return "?_Getffld@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@"
+             "std@@@std@@@std@@AEBAHPEADAEAV?$istreambuf_iterator@_WU?$char_"
+             "traits@_W@std@@@2@1AEAVios_base@2@PEAH@Z";
+    case 0x01e8:
+      return "?_Getffldx@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@"
+             "@std@@@std@@AEBAHPEADAEAV?$istreambuf_iterator@DU?$char_traits@D@"
+             "std@@@2@1AEAVios_base@2@PEAH@Z";
+    case 0x01e9:
+      return "?_Getffldx@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@"
+             "@std@@@std@@AEBAHPEADAEAV?$istreambuf_iterator@GU?$char_traits@G@"
+             "std@@@2@1AEAVios_base@2@PEAH@Z";
+    case 0x01ea:
+      return "?_Getffldx@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@"
+             "std@@@std@@@std@@AEBAHPEADAEAV?$istreambuf_iterator@_WU?$char_"
+             "traits@_W@std@@@2@1AEAVios_base@2@PEAH@Z";
+    case 0x01eb:
+      return "?_Getfmt@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@"
+             "std@@@std@@IEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@"
+             "V32@0AEAVios_base@2@AEAHPEAUtm@@PEBD@Z";
+    case 0x01ec:
+      return "?_Getfmt@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@"
+             "std@@@std@@IEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@"
+             "V32@0AEAVios_base@2@AEAHPEAUtm@@PEBD@Z";
+    case 0x01ed:
+      return "?_Getfmt@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@"
+             "std@@@std@@@std@@IEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@"
+             "std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@PEBD@Z";
+    case 0x01ee: return "?_Getgloballocale@locale@std@@CAPEAV_Locimp@12@XZ";
+    case 0x01ef:
+      return "?_Getifld@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@"
+             "std@@@std@@AEBAHPEADAEAV?$istreambuf_iterator@DU?$char_traits@D@std@"
+             "@@2@1HAEBVlocale@2@@Z";
+    case 0x01f0:
+      return "?_Getifld@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@"
+             "std@@@std@@AEBAHPEADAEAV?$istreambuf_iterator@GU?$char_traits@G@std@"
+             "@@2@1HAEBVlocale@2@@Z";
+    case 0x01f1:
+      return "?_Getifld@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@"
+             "std@@@std@@@std@@AEBAHPEADAEAV?$istreambuf_iterator@_WU?$char_"
+             "traits@_W@std@@@2@1HAEBVlocale@2@@Z";
+    case 0x01f2:
+      return "?_Getint@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@"
+             "std@@@std@@AEBAHAEAV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@"
+             "0HHAEAHAEBV?$ctype@D@2@@Z";
+    case 0x01f3:
+      return "?_Getint@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@"
+             "std@@@std@@AEBAHAEAV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@"
+             "0HHAEAHAEBV?$ctype@G@2@@Z";
+    case 0x01f4:
+      return "?_Getint@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@"
+             "std@@@std@@@std@@AEBAHAEAV?$istreambuf_iterator@_WU?$char_traits@_W@"
+             "std@@@2@0HHAEAHAEBV?$ctype@_W@2@@Z";
+    case 0x01f5: return "?_Getlconv@_Locinfo@std@@QEBAPEBUlconv@@XZ";
+    case 0x01f6: return "?_Getmonths@_Locinfo@std@@QEBAPEBDXZ";
+    case 0x01f7: return "?_Getname@_Locinfo@std@@QEBAPEBDXZ";
+    case 0x01f8:
+      return "?_Getpfirst@_Container_base12@std@@QEBAPEAPEAU_Iterator_base12@2@XZ";
+    case 0x01f9: return "?_Getptr@_Timevec@std@@QEBAPEAXXZ";
+    case 0x01fa: return "?_Gettnames@_Locinfo@std@@QEBA?AV_Timevec@2@XZ";
+    case 0x01fb: return "?_Gettrue@_Locinfo@std@@QEBAPEBDXZ";
+    case 0x01fc:
+      return "?_Gnavail@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBA_JXZ";
+    case 0x01fd:
+      return "?_Gnavail@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEBA_JXZ";
+    case 0x01fe:
+      return "?_Gnavail@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEBA_JXZ";
+    case 0x01ff:
+      return "?_Gndec@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAPEADXZ";
+    case 0x0200:
+      return "?_Gndec@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAPEAGXZ";
+    case 0x0201:
+      return "?_Gndec@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAPEA_"
+             "WXZ";
+    case 0x0202:
+      return "?_Gninc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAPEADXZ";
+    case 0x0203:
+      return "?_Gninc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAPEAGXZ";
+    case 0x0204:
+      return "?_Gninc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAPEA_"
+             "WXZ";
+    case 0x0205:
+      return "?_Gnpreinc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@"
+             "IEAAPEADXZ";
+    case 0x0206:
+      return "?_Gnpreinc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@"
+             "IEAAPEAGXZ";
+    case 0x0207:
+      return "?_Gnpreinc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAPEA_"
+             "WXZ";
+    case 0x0208: return "?_Id_cnt@id@locale@std@@0HA";
+    case 0x0209:
+      return "?_Ifmt@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@"
+             "std@@@std@@AEBAPEADPEADPEBDH@Z";
+    case 0x020a:
+      return "?_Ifmt@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@"
+             "std@@@std@@AEBAPEADPEADPEBDH@Z";
+    case 0x020b:
+      return "?_Ifmt@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@"
+             "std@@@std@@AEBAPEADPEADPEBDH@Z";
+    case 0x020c: return "?_Incref@facet@locale@std@@UEAAXXZ";
+    case 0x020d: return "?_Index@ios_base@std@@0HA";
+    case 0x020e:
+      return "?_Init@?$basic_streambuf@DU?$char_traits@D@std@@@std@@"
+             "IEAAXPEAPEAD0PEAH001@Z";
+    case 0x020f:
+      return "?_Init@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXXZ";
+    case 0x0210:
+      return "?_Init@?$basic_streambuf@GU?$char_traits@G@std@@@std@@"
+             "IEAAXPEAPEAG0PEAH001@Z";
+    case 0x0211:
+      return "?_Init@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAXXZ";
+    case 0x0212:
+      return "?_Init@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAXPEAPEA_"
+             "W0PEAH001@Z";
+    case 0x0213:
+      return "?_Init@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAXXZ";
+    case 0x0214: return "?_Init@?$codecvt@DDH@std@@IEAAXAEBV_Locinfo@2@@Z";
+    case 0x0215: return "?_Init@?$codecvt@GDH@std@@IEAAXAEBV_Locinfo@2@@Z";
+    case 0x0216: return "?_Init@?$codecvt@_WDH@std@@IEAAXAEBV_Locinfo@2@@Z";
+    case 0x0217: return "?_Init@?$ctype@D@std@@IEAAXAEBV_Locinfo@2@@Z";
+    case 0x0218: return "?_Init@?$ctype@G@std@@IEAAXAEBV_Locinfo@2@@Z";
+    case 0x0219: return "?_Init@?$ctype@_W@std@@IEAAXAEBV_Locinfo@2@@Z";
+    case 0x021a:
+      return "?_Init@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@"
+             "std@@@std@@IEAAXAEBV_Locinfo@2@@Z";
+    case 0x021b:
+      return "?_Init@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@"
+             "std@@@std@@IEAAXAEBV_Locinfo@2@@Z";
+    case 0x021c:
+      return "?_Init@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@"
+             "std@@@std@@IEAAXAEBV_Locinfo@2@@Z";
+    case 0x021d:
+      return "?_Init@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@"
+             "std@@@std@@IEAAXAEBV_Locinfo@2@@Z";
+    case 0x021e:
+      return "?_Init@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@"
+             "std@@@std@@IEAAXAEBV_Locinfo@2@@Z";
+    case 0x021f:
+      return "?_Init@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@"
+             "std@@@std@@IEAAXAEBV_Locinfo@2@@Z";
+    case 0x0220:
+      return "?_Init@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@"
+             "std@@@std@@IEAAXAEBV_Locinfo@2@@Z";
+    case 0x0221:
+      return "?_Init@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@"
+             "std@@@std@@IEAAXAEBV_Locinfo@2@@Z";
+    case 0x0222:
+      return "?_Init@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@"
+             "@std@@@std@@IEAAXAEBV_Locinfo@2@@Z";
+    case 0x0223:
+      return "?_Init@?$time_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@"
+             "std@@@std@@IEAAXAEBV_Locinfo@2@@Z";
+    case 0x0224:
+      return "?_Init@?$time_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@"
+             "std@@@std@@IEAAXAEBV_Locinfo@2@@Z";
+    case 0x0225:
+      return "?_Init@?$time_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@"
+             "@std@@@std@@IEAAXAEBV_Locinfo@2@@Z";
+    case 0x0226: return "?_Init@ios_base@std@@IEAAXXZ";
+    case 0x0227: return "?_Init@locale@std@@CAPEAV_Locimp@12@_N@Z";
+    case 0x0228: return "?_Init_cnt@Init@ios_base@std@@0HA";
+    case 0x0229: return "?_Init_cnt@_UShinit@std@@0HA";
+    case 0x022a: return "?_Init_cnt@_Winit@std@@0HA";
+    case 0x022b: return "?_Init_cnt_func@Init@ios_base@std@@CAAEAHXZ";
+    case 0x022c: return "?_Init_ctor@Init@ios_base@std@@CAXPEAV123@@Z";
+    case 0x022d: return "?_Init_dtor@Init@ios_base@std@@CAXPEAV123@@Z";
+    case 0x022e: return "?_Init_locks_ctor@_Init_locks@std@@CAXPEAV12@@Z";
+    case 0x022f: return "?_Init_locks_dtor@_Init_locks@std@@CAXPEAV12@@Z";
+    case 0x0230:
+      return "?_Internal_assign@_Concurrent_vector_base_v4@details@Concurrency@@"
+             "IEAAXAEBV123@_KP6AXPEAX1@ZP6AX2PEBX1@Z5@Z";
+    case 0x0231:
+      return "?_Internal_capacity@_Concurrent_vector_base_v4@details@Concurrency@@"
+             "IEBA_KXZ";
+    case 0x0232:
+      return "?_Internal_clear@_Concurrent_vector_base_v4@details@Concurrency@@"
+             "IEAA_KP6AXPEAX_K@Z@Z";
+    case 0x0233:
+      return "?_Internal_compact@_Concurrent_vector_base_v4@details@Concurrency@@"
+             "IEAAPEAX_KPEAXP6AX10@ZP6AX1PEBX0@Z@Z";
+    case 0x0234:
+      return "?_Internal_copy@_Concurrent_vector_base_v4@details@Concurrency@@"
+             "IEAAXAEBV123@_KP6AXPEAXPEBX1@Z@Z";
+    case 0x0235:
+      return "?_Internal_empty@_Concurrent_queue_base_v4@details@Concurrency@@"
+             "IEBA_NXZ";
+    case 0x0236:
+      return "?_Internal_finish_clear@_Concurrent_queue_base_v4@details@"
+             "Concurrency@@IEAAXXZ";
+    case 0x0237:
+      return "?_Internal_grow_by@_Concurrent_vector_base_v4@details@Concurrency@@"
+             "IEAA_K_K0P6AXPEAXPEBX0@Z2@Z";
+    case 0x0238:
+      return "?_Internal_grow_to_at_least_with_result@_Concurrent_vector_base_v4@"
+             "details@Concurrency@@IEAA_K_K0P6AXPEAXPEBX0@Z2@Z";
+    case 0x0239:
+      return "?_Internal_move_push@_Concurrent_queue_base_v4@details@Concurrency@@"
+             "IEAAXPEAX@Z";
+    case 0x023a:
+      return "?_Internal_pop_if_present@_Concurrent_queue_base_v4@details@"
+             "Concurrency@@IEAA_NPEAX@Z";
+    case 0x023b:
+      return "?_Internal_push@_Concurrent_queue_base_v4@details@Concurrency@@"
+             "IEAAXPEBX@Z";
+    case 0x023c:
+      return "?_Internal_push_back@_Concurrent_vector_base_v4@details@Concurrency@"
+             "@IEAAPEAX_KAEA_K@Z";
+    case 0x023d:
+      return "?_Internal_reserve@_Concurrent_vector_base_v4@details@Concurrency@@"
+             "IEAAX_K00@Z";
+    case 0x023e:
+      return "?_Internal_resize@_Concurrent_vector_base_v4@details@Concurrency@@"
+             "IEAAX_K00P6AXPEAX0@ZP6AX1PEBX0@Z3@Z";
+    case 0x023f:
+      return "?_Internal_size@_Concurrent_queue_base_v4@details@Concurrency@@IEBA_"
+             "KXZ";
+    case 0x0240:
+      return "?_Internal_swap@_Concurrent_queue_base_v4@details@Concurrency@@"
+             "IEAAXAEAV123@@Z";
+    case 0x0241:
+      return "?_Internal_swap@_Concurrent_vector_base_v4@details@Concurrency@@"
+             "IEAAXAEAV123@@Z";
+    case 0x0242:
+      return "?_Internal_throw_exception@_Concurrent_queue_base_v4@details@"
+             "Concurrency@@IEBAXXZ";
+    case 0x0243:
+      return "?_Internal_throw_exception@_Concurrent_vector_base_v4@details@"
+             "Concurrency@@IEBAX_K@Z";
+    case 0x0244: return "?_Ios_base_dtor@ios_base@std@@CAXPEAV12@@Z";
+    case 0x0245:
+      return "?_Ipfx@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAA_N_N@Z";
+    case 0x0246:
+      return "?_Ipfx@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAA_N_N@Z";
+    case 0x0247:
+      return "?_Ipfx@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAA_N_N@Z";
+    case 0x0248:
+      return "?_Iput@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@"
+             "std@@@std@@AEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@"
+             "V32@AEAVios_base@2@DPEAD_K@Z";
+    case 0x0249:
+      return "?_Iput@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@"
+             "std@@@std@@AEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@"
+             "V32@AEAVios_base@2@GPEAD_K@Z";
+    case 0x024a:
+      return "?_Iput@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@"
+             "std@@@std@@AEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@2@"
+             "V32@AEAVios_base@2@_WPEAD_K@Z";
+    case 0x024b: return "?_Last_write_time@sys@tr2@std@@YAXPEBD_J@Z";
+    case 0x024c: return "?_Last_write_time@sys@tr2@std@@YAXPEB_W_J@Z";
+    case 0x024d: return "?_Last_write_time@sys@tr2@std@@YA_JPEBD@Z";
+    case 0x024e: return "?_Last_write_time@sys@tr2@std@@YA_JPEB_W@Z";
+    case 0x024f: return "?_Launch@_Pad@std@@QEAAXPEAU_Thrd_imp_t@@@Z";
+    case 0x0250: return "?_Link@sys@tr2@std@@YAHPEBD0@Z";
+    case 0x0251: return "?_Link@sys@tr2@std@@YAHPEB_W0@Z";
+    case 0x0252:
+      return "?_Locimp_Addfac@_Locimp@locale@std@@CAXPEAV123@PEAVfacet@23@_K@Z";
+    case 0x0253: return "?_Locimp_ctor@_Locimp@locale@std@@CAXPEAV123@AEBV123@@Z";
+    case 0x0254: return "?_Locimp_dtor@_Locimp@locale@std@@CAXPEAV123@@Z";
+    case 0x0255: return "?_Locinfo_Addcats@_Locinfo@std@@SAAEAV12@PEAV12@HPEBD@Z";
+    case 0x0256: return "?_Locinfo_ctor@_Locinfo@std@@SAXPEAV12@HPEBD@Z";
+    case 0x0257: return "?_Locinfo_ctor@_Locinfo@std@@SAXPEAV12@PEBD@Z";
+    case 0x0258: return "?_Locinfo_dtor@_Locinfo@std@@SAXPEAV12@@Z";
+    case 0x0259:
+      return "?_Lock@?$basic_streambuf@DU?$char_traits@D@std@@@std@@UEAAXXZ";
+    case 0x025a:
+      return "?_Lock@?$basic_streambuf@GU?$char_traits@G@std@@@std@@UEAAXXZ";
+    case 0x025b:
+      return "?_Lock@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@UEAAXXZ";
+    case 0x025c: return "?_Lockit_ctor@_Lockit@std@@CAXPEAV12@@Z";
+    case 0x025d: return "?_Lockit_ctor@_Lockit@std@@CAXPEAV12@H@Z";
+    case 0x025e: return "?_Lockit_ctor@_Lockit@std@@SAXH@Z";
+    case 0x025f: return "?_Lockit_dtor@_Lockit@std@@CAXPEAV12@@Z";
+    case 0x0260: return "?_Lockit_dtor@_Lockit@std@@SAXH@Z";
+    case 0x0261: return "?_Lstat@sys@tr2@std@@YA?AW4file_type@123@PEBDAEAH@Z";
+    case 0x0262: return "?_Lstat@sys@tr2@std@@YA?AW4file_type@123@PEB_WAEAH@Z";
+    case 0x0263: return "?_MP_Add@std@@YAXQEA_K_K@Z";
+    case 0x0264: return "?_MP_Get@std@@YA_KQEA_K@Z";
+    case 0x0265: return "?_MP_Mul@std@@YAXQEA_K_K1@Z";
+    case 0x0266: return "?_MP_Rem@std@@YAXQEA_K_K@Z";
+    case 0x0267: return "?_Make_dir@sys@tr2@std@@YAHPEBD@Z";
+    case 0x0268: return "?_Make_dir@sys@tr2@std@@YAHPEB_W@Z";
+    case 0x0269:
+      return "?_Makeloc@_Locimp@locale@std@@CAPEAV123@AEBV_Locinfo@3@HPEAV123@"
+             "PEBV23@@Z";
+    case 0x026a:
+      return "?_Makeushloc@_Locimp@locale@std@@CAXAEBV_Locinfo@3@HPEAV123@PEBV23@@"
+             "Z";
+    case 0x026b:
+      return "?_Makewloc@_Locimp@locale@std@@CAXAEBV_Locinfo@3@HPEAV123@PEBV23@@Z";
+    case 0x026c:
+      return "?_Makexloc@_Locimp@locale@std@@CAXAEBV_Locinfo@3@HPEAV123@PEBV23@@Z";
+    case 0x026d: return "?_Mtx_delete@threads@stdext@@YAXPEAX@Z";
+    case 0x026e: return "?_Mtx_lock@threads@stdext@@YAXPEAX@Z";
+    case 0x026f: return "?_Mtx_new@threads@stdext@@YAXAEAPEAX@Z";
+    case 0x0270: return "?_Mtx_unlock@threads@stdext@@YAXPEAX@Z";
+    case 0x0271: return "?_New_Locimp@_Locimp@locale@std@@CAPEAV123@AEBV123@@Z";
+    case 0x0272: return "?_New_Locimp@_Locimp@locale@std@@CAPEAV123@_N@Z";
+    case 0x0273:
+      return "?_Open_dir@sys@tr2@std@@YAPEAXAEAY0BAE@DPEBDAEAHAEAW4file_type@123@@"
+             "Z";
+    case 0x0274:
+      return "?_Open_dir@sys@tr2@std@@YAPEAXAEAY0BAE@_WPEB_WAEAHAEAW4file_type@"
+             "123@@Z";
+    case 0x0275: return "?_Orphan_all@_Container_base0@std@@QEAAXXZ";
+    case 0x0276: return "?_Orphan_all@_Container_base12@std@@QEAAXXZ";
+    case 0x0277:
+      return "?_Osfx@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAXXZ";
+    case 0x0278:
+      return "?_Osfx@?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAXXZ";
+    case 0x0279:
+      return "?_Osfx@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAXXZ";
+    case 0x027a:
+      return "?_Pnavail@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBA_JXZ";
+    case 0x027b:
+      return "?_Pnavail@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEBA_JXZ";
+    case 0x027c:
+      return "?_Pnavail@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEBA_JXZ";
+    case 0x027d:
+      return "?_Pninc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAPEADXZ";
+    case 0x027e:
+      return "?_Pninc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAPEAGXZ";
+    case 0x027f:
+      return "?_Pninc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAPEA_"
+             "WXZ";
+    case 0x0280:
+      return "?_Ptr_cerr@std@@3PEAV?$basic_ostream@DU?$char_traits@D@std@@@1@EA";
+    case 0x0281:
+      return "?_Ptr_cin@std@@3PEAV?$basic_istream@DU?$char_traits@D@std@@@1@EA";
+    case 0x0282:
+      return "?_Ptr_clog@std@@3PEAV?$basic_ostream@DU?$char_traits@D@std@@@1@EA";
+    case 0x0283:
+      return "?_Ptr_cout@std@@3PEAV?$basic_ostream@DU?$char_traits@D@std@@@1@EA";
+    case 0x0284:
+      return "?_Ptr_wcerr@std@@3PEAV?$basic_ostream@GU?$char_traits@G@std@@@1@EA";
+    case 0x0285:
+      return "?_Ptr_wcerr@std@@3PEAV?$basic_ostream@_WU?$char_traits@_W@std@@@1@"
+             "EA";
+    case 0x0286:
+      return "?_Ptr_wcin@std@@3PEAV?$basic_istream@GU?$char_traits@G@std@@@1@EA";
+    case 0x0287:
+      return "?_Ptr_wcin@std@@3PEAV?$basic_istream@_WU?$char_traits@_W@std@@@1@EA";
+    case 0x0288:
+      return "?_Ptr_wclog@std@@3PEAV?$basic_ostream@GU?$char_traits@G@std@@@1@EA";
+    case 0x0289:
+      return "?_Ptr_wclog@std@@3PEAV?$basic_ostream@_WU?$char_traits@_W@std@@@1@"
+             "EA";
+    case 0x028a:
+      return "?_Ptr_wcout@std@@3PEAV?$basic_ostream@GU?$char_traits@G@std@@@1@EA";
+    case 0x028b:
+      return "?_Ptr_wcout@std@@3PEAV?$basic_ostream@_WU?$char_traits@_W@std@@@1@"
+             "EA";
+    case 0x028c:
+      return "?_Put@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@"
+             "@@std@@AEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@V32@"
+             "PEBD_K@Z";
+    case 0x028d:
+      return "?_Put@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@"
+             "@@std@@AEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@V32@"
+             "PEBG_K@Z";
+    case 0x028e:
+      return "?_Put@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@"
+             "std@@@std@@AEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@2@"
+             "V32@PEB_W_K@Z";
+    case 0x028f: return "?_Raise_handler@std@@3P6AXAEBVexception@stdext@@@ZEA";
+    case 0x0290: return "?_Random_device@std@@YAIXZ";
+    case 0x0291:
+      return "?_Read_dir@sys@tr2@std@@YAPEADAEAY0BAE@DPEAXAEAW4file_type@123@@Z";
+    case 0x0292:
+      return "?_Read_dir@sys@tr2@std@@YAPEA_WAEAY0BAE@_WPEAXAEAW4file_type@123@@Z";
+    case 0x0293: return "?_Release@_Pad@std@@QEAAXXZ";
+    case 0x0294: return "?_Remove_dir@sys@tr2@std@@YA_NPEBD@Z";
+    case 0x0295: return "?_Remove_dir@sys@tr2@std@@YA_NPEB_W@Z";
+    case 0x0296: return "?_Rename@sys@tr2@std@@YAHPEBD0@Z";
+    case 0x0297: return "?_Rename@sys@tr2@std@@YAHPEB_W0@Z";
+    case 0x0298:
+      return "?_Rep@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@"
+             "@@std@@AEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@V32@D_"
+             "K@Z";
+    case 0x0299:
+      return "?_Rep@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@"
+             "@@std@@AEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@V32@G_"
+             "K@Z";
+    case 0x029a:
+      return "?_Rep@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@"
+             "std@@@std@@AEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@2@"
+             "V32@_W_K@Z";
+    case 0x029b: return "?_Rethrow_future_exception@std@@YAXVexception_ptr@1@@Z";
+    case 0x029c: return "?_Rng_abort@std@@YAXPEBD@Z";
+    case 0x029d:
+      return "?_Segment_index_of@_Concurrent_vector_base_v4@details@Concurrency@@"
+             "KA_K_K@Z";
+    case 0x029e: return "?_Setgloballocale@locale@std@@CAXPEAX@Z";
+    case 0x029f:
+      return "?_Src@?1??_Getffldx@?$num_get@DV?$istreambuf_iterator@DU?$char_"
+             "traits@D@std@@@std@@@std@@AEBAHPEADAEAV?$istreambuf_iterator@DU?$"
+             "char_traits@D@std@@@3@1AEAVios_base@3@PEAH@Z@4QBDB";
+    case 0x02a0:
+      return "?_Src@?1??_Getffldx@?$num_get@GV?$istreambuf_iterator@GU?$char_"
+             "traits@G@std@@@std@@@std@@AEBAHPEADAEAV?$istreambuf_iterator@GU?$"
+             "char_traits@G@std@@@3@1AEAVios_base@3@PEAH@Z@4QBDB";
+    case 0x02a1:
+      return "?_Src@?1??_Getffldx@?$num_get@_WV?$istreambuf_iterator@_WU?$char_"
+             "traits@_W@std@@@std@@@std@@AEBAHPEADAEAV?$istreambuf_iterator@_WU?$"
+             "char_traits@_W@std@@@3@1AEAVios_base@3@PEAH@Z@4QBDB";
+    case 0x02a2:
+      return "?_Src@?1??_Getifld@?$num_get@DV?$istreambuf_iterator@DU?$char_"
+             "traits@D@std@@@std@@@std@@AEBAHPEADAEAV?$istreambuf_iterator@DU?$"
+             "char_traits@D@std@@@3@1HAEBVlocale@3@@Z@4QBDB";
+    case 0x02a3:
+      return "?_Src@?1??_Getifld@?$num_get@GV?$istreambuf_iterator@GU?$char_"
+             "traits@G@std@@@std@@@std@@AEBAHPEADAEAV?$istreambuf_iterator@GU?$"
+             "char_traits@G@std@@@3@1HAEBVlocale@3@@Z@4QBDB";
+    case 0x02a4:
+      return "?_Src@?1??_Getifld@?$num_get@_WV?$istreambuf_iterator@_WU?$char_"
+             "traits@_W@std@@@std@@@std@@AEBAHPEADAEAV?$istreambuf_iterator@_WU?$"
+             "char_traits@_W@std@@@3@1HAEBVlocale@3@@Z@4QBDB";
+    case 0x02a5:
+      return "?_Src@?3??_Getffld@?$num_get@DV?$istreambuf_iterator@DU?$char_"
+             "traits@D@std@@@std@@@std@@AEBAHPEADAEAV?$istreambuf_iterator@DU?$"
+             "char_traits@D@std@@@3@1AEAVios_base@3@PEAH@Z@4QBDB";
+    case 0x02a6:
+      return "?_Src@?3??_Getffld@?$num_get@GV?$istreambuf_iterator@GU?$char_"
+             "traits@G@std@@@std@@@std@@AEBAHPEADAEAV?$istreambuf_iterator@GU?$"
+             "char_traits@G@std@@@3@1AEAVios_base@3@PEAH@Z@4QBDB";
+    case 0x02a7:
+      return "?_Src@?3??_Getffld@?$num_get@_WV?$istreambuf_iterator@_WU?$char_"
+             "traits@_W@std@@@std@@@std@@AEBAHPEADAEAV?$istreambuf_iterator@_WU?$"
+             "char_traits@_W@std@@@3@1AEAVios_base@3@PEAH@Z@4QBDB";
+    case 0x02a8: return "?_Stat@sys@tr2@std@@YA?AW4file_type@123@PEBDAEAH@Z";
+    case 0x02a9: return "?_Stat@sys@tr2@std@@YA?AW4file_type@123@PEB_WAEAH@Z";
+    case 0x02aa: return "?_Statvfs@sys@tr2@std@@YA?AUspace_info@123@PEBD@Z";
+    case 0x02ab: return "?_Statvfs@sys@tr2@std@@YA?AUspace_info@123@PEB_W@Z";
+    case 0x02ac: return "?_Swap_all@_Container_base0@std@@QEAAXAEAU12@@Z";
+    case 0x02ad: return "?_Swap_all@_Container_base12@std@@QEAAXAEAU12@@Z";
+    case 0x02ae: return "?_Symlink@sys@tr2@std@@YAHPEBD0@Z";
+    case 0x02af: return "?_Symlink@sys@tr2@std@@YAHPEB_W0@Z";
+    case 0x02b0: return "?_Sync@ios_base@std@@0_NA";
+    case 0x02b1: return "?_Syserror_map@std@@YAPEBDH@Z";
+    case 0x02b2: return "?_Throw_C_error@std@@YAXH@Z";
+    case 0x02b3: return "?_Throw_Cpp_error@std@@YAXH@Z";
+    case 0x02b4: return "?_Throw_future_error@std@@YAXAEBVerror_code@1@@Z";
+    case 0x02b5: return "?_Throw_lock_error@threads@stdext@@YAXXZ";
+    case 0x02b6: return "?_Throw_resource_error@threads@stdext@@YAXXZ";
+    case 0x02b7: return "?_Tidy@?$_Yarn@D@std@@AEAAXXZ";
+    case 0x02b8: return "?_Tidy@?$_Yarn@_W@std@@AEAAXXZ";
+    case 0x02b9: return "?_Tidy@?$ctype@D@std@@IEAAXXZ";
+    case 0x02ba:
+      return "?_Tidy@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@"
+             "std@@@std@@AEAAXXZ";
+    case 0x02bb:
+      return "?_Tidy@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@"
+             "std@@@std@@AEAAXXZ";
+    case 0x02bc:
+      return "?_Tidy@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@"
+             "@std@@@std@@AEAAXXZ";
+    case 0x02bd: return "?_Tidy@ios_base@std@@AEAAXXZ";
+    case 0x02be: return "?_Unlink@sys@tr2@std@@YAHPEBD@Z";
+    case 0x02bf: return "?_Unlink@sys@tr2@std@@YAHPEB_W@Z";
+    case 0x02c0:
+      return "?_Unlock@?$basic_streambuf@DU?$char_traits@D@std@@@std@@UEAAXXZ";
+    case 0x02c1:
+      return "?_Unlock@?$basic_streambuf@GU?$char_traits@G@std@@@std@@UEAAXXZ";
+    case 0x02c2:
+      return "?_Unlock@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@UEAAXXZ";
+    case 0x02c3: return "?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ";
+    case 0x02c4: return "?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ";
+    case 0x02c5: return "?_W_Gettnames@_Locinfo@std@@QEBA?AV_Timevec@2@XZ";
+    case 0x02c6: return "?_Winerror_map@std@@YAPEBDH@Z";
+    case 0x02c7: return "?_XLgamma@std@@YAMM@Z";
+    case 0x02c8: return "?_XLgamma@std@@YANN@Z";
+    case 0x02c9: return "?_XLgamma@std@@YAOO@Z";
+    case 0x02ca: return "?_Xbad_alloc@std@@YAXXZ";
+    case 0x02cb: return "?_Xbad_function_call@std@@YAXXZ";
+    case 0x02cc: return "?_Xinvalid_argument@std@@YAXPEBD@Z";
+    case 0x02cd: return "?_Xlength_error@std@@YAXPEBD@Z";
+    case 0x02ce: return "?_Xout_of_range@std@@YAXPEBD@Z";
+    case 0x02cf: return "?_Xoverflow_error@std@@YAXPEBD@Z";
+    case 0x02d0: return "?_Xregex_error@std@@YAXW4error_type@regex_constants@1@@Z";
+    case 0x02d1: return "?_Xruntime_error@std@@YAXPEBD@Z";
+    case 0x02d2: return "?adopt_lock@std@@3Uadopt_lock_t@1@B";
+    case 0x02d3: return "?always_noconv@codecvt_base@std@@QEBA_NXZ";
+    case 0x02d4: return "?bad@ios_base@std@@QEBA_NXZ";
+    case 0x02d5: return "?c_str@?$_Yarn@D@std@@QEBAPEBDXZ";
+    case 0x02d6: return "?cancel@agent@Concurrency@@QEAA_NXZ";
+    case 0x02d7: return "?cerr@std@@3V?$basic_ostream@DU?$char_traits@D@std@@@1@A";
+    case 0x02d8: return "?cin@std@@3V?$basic_istream@DU?$char_traits@D@std@@@1@A";
+    case 0x02d9: return "?classic@locale@std@@SAAEBV12@XZ";
+    case 0x02da: return "?classic_table@?$ctype@D@std@@SAPEBFXZ";
+    case 0x02db:
+      return "?clear@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAXH_N@Z";
+    case 0x02dc: return "?clear@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAXI@Z";
+    case 0x02dd:
+      return "?clear@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAXH_N@Z";
+    case 0x02de: return "?clear@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAXI@Z";
+    case 0x02df:
+      return "?clear@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAXH_N@Z";
+    case 0x02e0:
+      return "?clear@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAXI@Z";
+    case 0x02e1: return "?clear@ios_base@std@@QEAAXH@Z";
+    case 0x02e2: return "?clear@ios_base@std@@QEAAXH_N@Z";
+    case 0x02e3: return "?clear@ios_base@std@@QEAAXI@Z";
+    case 0x02e4: return "?clog@std@@3V?$basic_ostream@DU?$char_traits@D@std@@@1@A";
+    case 0x02e5:
+      return "?copyfmt@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAAEAV12@AEBV12@"
+             "@Z";
+    case 0x02e6:
+      return "?copyfmt@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAAEAV12@AEBV12@"
+             "@Z";
+    case 0x02e7:
+      return "?copyfmt@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@"
+             "AEBV12@@Z";
+    case 0x02e8: return "?copyfmt@ios_base@std@@QEAAAEAV12@AEBV12@@Z";
+    case 0x02e9: return "?cout@std@@3V?$basic_ostream@DU?$char_traits@D@std@@@1@A";
+    case 0x02ea:
+      return "?date_order@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@"
+             "std@@@std@@@std@@QEBA?AW4dateorder@time_base@2@XZ";
+    case 0x02eb:
+      return "?date_order@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@"
+             "std@@@std@@@std@@QEBA?AW4dateorder@time_base@2@XZ";
+    case 0x02ec:
+      return "?date_order@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@"
+             "std@@@std@@@std@@QEBA?AW4dateorder@time_base@2@XZ";
+    case 0x02ed: return "?defer_lock@std@@3Udefer_lock_t@1@B";
+    case 0x02ee: return "?do_always_noconv@?$codecvt@DDH@std@@MEBA_NXZ";
+    case 0x02ef: return "?do_always_noconv@?$codecvt@GDH@std@@MEBA_NXZ";
+    case 0x02f0: return "?do_always_noconv@?$codecvt@_WDH@std@@MEBA_NXZ";
+    case 0x02f1: return "?do_always_noconv@codecvt_base@std@@MEBA_NXZ";
+    case 0x02f2:
+      return "?do_date_order@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@"
+             "std@@@std@@@std@@MEBA?AW4dateorder@time_base@2@XZ";
+    case 0x02f3:
+      return "?do_date_order@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@"
+             "std@@@std@@@std@@MEBA?AW4dateorder@time_base@2@XZ";
+    case 0x02f4:
+      return "?do_date_order@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@"
+             "_W@std@@@std@@@std@@MEBA?AW4dateorder@time_base@2@XZ";
+    case 0x02f5: return "?do_encoding@?$codecvt@GDH@std@@MEBAHXZ";
+    case 0x02f6: return "?do_encoding@?$codecvt@_WDH@std@@MEBAHXZ";
+    case 0x02f7: return "?do_encoding@codecvt_base@std@@MEBAHXZ";
+    case 0x02f8:
+      return "?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@"
+             "std@@@std@@MEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@"
+             "V32@0AEAVios_base@2@AEAHAEAG@Z";
+    case 0x02f9:
+      return "?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@"
+             "std@@@std@@MEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@"
+             "V32@0AEAVios_base@2@AEAHAEAI@Z";
+    case 0x02fa:
+      return "?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@"
+             "std@@@std@@MEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@"
+             "V32@0AEAVios_base@2@AEAHAEAJ@Z";
+    case 0x02fb:
+      return "?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@"
+             "std@@@std@@MEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@"
+             "V32@0AEAVios_base@2@AEAHAEAK@Z";
+    case 0x02fc:
+      return "?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@"
+             "std@@@std@@MEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@"
+             "V32@0AEAVios_base@2@AEAHAEAM@Z";
+    case 0x02fd:
+      return "?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@"
+             "std@@@std@@MEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@"
+             "V32@0AEAVios_base@2@AEAHAEAN@Z";
+    case 0x02fe:
+      return "?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@"
+             "std@@@std@@MEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@"
+             "V32@0AEAVios_base@2@AEAHAEAO@Z";
+    case 0x02ff:
+      return "?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@"
+             "std@@@std@@MEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@"
+             "V32@0AEAVios_base@2@AEAHAEAPEAX@Z";
+    case 0x0300:
+      return "?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@"
+             "std@@@std@@MEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@"
+             "V32@0AEAVios_base@2@AEAHAEA_J@Z";
+    case 0x0301:
+      return "?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@"
+             "std@@@std@@MEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@"
+             "V32@0AEAVios_base@2@AEAHAEA_K@Z";
+    case 0x0302:
+      return "?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@"
+             "std@@@std@@MEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@"
+             "V32@0AEAVios_base@2@AEAHAEA_N@Z";
+    case 0x0303:
+      return "?do_get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@"
+             "std@@@std@@MEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@"
+             "V32@0AEAVios_base@2@AEAHAEAG@Z";
+    case 0x0304:
+      return "?do_get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@"
+             "std@@@std@@MEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@"
+             "V32@0AEAVios_base@2@AEAHAEAI@Z";
+    case 0x0305:
+      return "?do_get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@"
+             "std@@@std@@MEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@"
+             "V32@0AEAVios_base@2@AEAHAEAJ@Z";
+    case 0x0306:
+      return "?do_get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@"
+             "std@@@std@@MEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@"
+             "V32@0AEAVios_base@2@AEAHAEAK@Z";
+    case 0x0307:
+      return "?do_get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@"
+             "std@@@std@@MEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@"
+             "V32@0AEAVios_base@2@AEAHAEAM@Z";
+    case 0x0308:
+      return "?do_get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@"
+             "std@@@std@@MEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@"
+             "V32@0AEAVios_base@2@AEAHAEAN@Z";
+    case 0x0309:
+      return "?do_get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@"
+             "std@@@std@@MEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@"
+             "V32@0AEAVios_base@2@AEAHAEAO@Z";
+    case 0x030a:
+      return "?do_get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@"
+             "std@@@std@@MEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@"
+             "V32@0AEAVios_base@2@AEAHAEAPEAX@Z";
+    case 0x030b:
+      return "?do_get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@"
+             "std@@@std@@MEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@"
+             "V32@0AEAVios_base@2@AEAHAEA_J@Z";
+    case 0x030c:
+      return "?do_get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@"
+             "std@@@std@@MEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@"
+             "V32@0AEAVios_base@2@AEAHAEA_K@Z";
+    case 0x030d:
+      return "?do_get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@"
+             "std@@@std@@MEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@"
+             "V32@0AEAVios_base@2@AEAHAEA_N@Z";
+    case 0x030e:
+      return "?do_get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@"
+             "@std@@@std@@MEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@"
+             "2@V32@0AEAVios_base@2@AEAHAEAG@Z";
+    case 0x030f:
+      return "?do_get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@"
+             "@std@@@std@@MEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@"
+             "2@V32@0AEAVios_base@2@AEAHAEAI@Z";
+    case 0x0310:
+      return "?do_get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@"
+             "@std@@@std@@MEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@"
+             "2@V32@0AEAVios_base@2@AEAHAEAJ@Z";
+    case 0x0311:
+      return "?do_get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@"
+             "@std@@@std@@MEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@"
+             "2@V32@0AEAVios_base@2@AEAHAEAK@Z";
+    case 0x0312:
+      return "?do_get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@"
+             "@std@@@std@@MEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@"
+             "2@V32@0AEAVios_base@2@AEAHAEAM@Z";
+    case 0x0313:
+      return "?do_get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@"
+             "@std@@@std@@MEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@"
+             "2@V32@0AEAVios_base@2@AEAHAEAN@Z";
+    case 0x0314:
+      return "?do_get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@"
+             "@std@@@std@@MEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@"
+             "2@V32@0AEAVios_base@2@AEAHAEAO@Z";
+    case 0x0315:
+      return "?do_get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@"
+             "@std@@@std@@MEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@"
+             "2@V32@0AEAVios_base@2@AEAHAEAPEAX@Z";
+    case 0x0316:
+      return "?do_get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@"
+             "@std@@@std@@MEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@"
+             "2@V32@0AEAVios_base@2@AEAHAEA_J@Z";
+    case 0x0317:
+      return "?do_get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@"
+             "@std@@@std@@MEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@"
+             "2@V32@0AEAVios_base@2@AEAHAEA_K@Z";
+    case 0x0318:
+      return "?do_get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@"
+             "@std@@@std@@MEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@"
+             "2@V32@0AEAVios_base@2@AEAHAEA_N@Z";
+    case 0x0319:
+      return "?do_get@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@"
+             "std@@@std@@MEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@"
+             "V32@0AEAVios_base@2@AEAHPEAUtm@@DD@Z";
+    case 0x031a:
+      return "?do_get@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@"
+             "std@@@std@@MEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@"
+             "V32@0AEAVios_base@2@AEAHPEAUtm@@DD@Z";
+    case 0x031b:
+      return "?do_get@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@"
+             "@@std@@@std@@MEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@"
+             "2@V32@0AEAVios_base@2@AEAHPEAUtm@@DD@Z";
+    case 0x031c:
+      return "?do_get_date@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@"
+             "std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@"
+             "@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
+    case 0x031d:
+      return "?do_get_date@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@"
+             "std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@"
+             "@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
+    case 0x031e:
+      return "?do_get_date@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_"
+             "W@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@"
+             "std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
+    case 0x031f:
+      return "?do_get_monthname@?$time_get@DV?$istreambuf_iterator@DU?$char_"
+             "traits@D@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@DU?$char_"
+             "traits@D@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
+    case 0x0320:
+      return "?do_get_monthname@?$time_get@GV?$istreambuf_iterator@GU?$char_"
+             "traits@G@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@GU?$char_"
+             "traits@G@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
+    case 0x0321:
+      return "?do_get_monthname@?$time_get@_WV?$istreambuf_iterator@_WU?$char_"
+             "traits@_W@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@_WU?$char_"
+             "traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
+    case 0x0322:
+      return "?do_get_time@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@"
+             "std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@"
+             "@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
+    case 0x0323:
+      return "?do_get_time@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@"
+             "std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@"
+             "@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
+    case 0x0324:
+      return "?do_get_time@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_"
+             "W@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@"
+             "std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
+    case 0x0325:
+      return "?do_get_weekday@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@"
+             "D@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@DU?$char_traits@D@"
+             "std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
+    case 0x0326:
+      return "?do_get_weekday@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@"
+             "G@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@GU?$char_traits@G@"
+             "std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
+    case 0x0327:
+      return "?do_get_weekday@?$time_get@_WV?$istreambuf_iterator@_WU?$char_"
+             "traits@_W@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@_WU?$char_"
+             "traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
+    case 0x0328:
+      return "?do_get_year@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@"
+             "std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@"
+             "@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
+    case 0x0329:
+      return "?do_get_year@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@"
+             "std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@"
+             "@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
+    case 0x032a:
+      return "?do_get_year@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_"
+             "W@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@"
+             "std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
+    case 0x032b:
+      return "?do_in@?$codecvt@DDH@std@@MEBAHAEAHPEBD1AEAPEBDPEAD3AEAPEAD@Z";
+    case 0x032c:
+      return "?do_in@?$codecvt@GDH@std@@MEBAHAEAHPEBD1AEAPEBDPEAG3AEAPEAG@Z";
+    case 0x032d:
+      return "?do_in@?$codecvt@_WDH@std@@MEBAHAEAHPEBD1AEAPEBDPEA_W3AEAPEA_W@Z";
+    case 0x032e: return "?do_is@?$ctype@G@std@@MEBAPEBGPEBG0PEAF@Z";
+    case 0x032f: return "?do_is@?$ctype@G@std@@MEBA_NFG@Z";
+    case 0x0330: return "?do_is@?$ctype@_W@std@@MEBAPEB_WPEB_W0PEAF@Z";
+    case 0x0331: return "?do_is@?$ctype@_W@std@@MEBA_NF_W@Z";
+    case 0x0332: return "?do_length@?$codecvt@DDH@std@@MEBAHAEAHPEBD1_K@Z";
+    case 0x0333: return "?do_length@?$codecvt@GDH@std@@MEBAHAEAHPEBD1_K@Z";
+    case 0x0334: return "?do_length@?$codecvt@_WDH@std@@MEBAHAEAHPEBD1_K@Z";
+    case 0x0335: return "?do_max_length@?$codecvt@GDH@std@@MEBAHXZ";
+    case 0x0336: return "?do_max_length@?$codecvt@_WDH@std@@MEBAHXZ";
+    case 0x0337: return "?do_max_length@codecvt_base@std@@MEBAHXZ";
+    case 0x0338: return "?do_narrow@?$ctype@D@std@@MEBADDD@Z";
+    case 0x0339: return "?do_narrow@?$ctype@D@std@@MEBAPEBDPEBD0DPEAD@Z";
+    case 0x033a: return "?do_narrow@?$ctype@G@std@@MEBADGD@Z";
+    case 0x033b: return "?do_narrow@?$ctype@G@std@@MEBAPEBGPEBG0DPEAD@Z";
+    case 0x033c: return "?do_narrow@?$ctype@_W@std@@MEBAD_WD@Z";
+    case 0x033d: return "?do_narrow@?$ctype@_W@std@@MEBAPEB_WPEB_W0DPEAD@Z";
+    case 0x033e:
+      return "?do_out@?$codecvt@DDH@std@@MEBAHAEAHPEBD1AEAPEBDPEAD3AEAPEAD@Z";
+    case 0x033f:
+      return "?do_out@?$codecvt@GDH@std@@MEBAHAEAHPEBG1AEAPEBGPEAD3AEAPEAD@Z";
+    case 0x0340:
+      return "?do_out@?$codecvt@_WDH@std@@MEBAHAEAHPEB_W1AEAPEB_WPEAD3AEAPEAD@Z";
+    case 0x0341:
+      return "?do_put@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@"
+             "std@@@std@@MEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@"
+             "V32@AEAVios_base@2@DJ@Z";
+    case 0x0342:
+      return "?do_put@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@"
+             "std@@@std@@MEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@"
+             "V32@AEAVios_base@2@DK@Z";
+    case 0x0343:
+      return "?do_put@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@"
+             "std@@@std@@MEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@"
+             "V32@AEAVios_base@2@DN@Z";
+    case 0x0344:
+      return "?do_put@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@"
+             "std@@@std@@MEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@"
+             "V32@AEAVios_base@2@DO@Z";
+    case 0x0345:
+      return "?do_put@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@"
+             "std@@@std@@MEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@"
+             "V32@AEAVios_base@2@DPEBX@Z";
+    case 0x0346:
+      return "?do_put@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@"
+             "std@@@std@@MEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@"
+             "V32@AEAVios_base@2@D_J@Z";
+    case 0x0347:
+      return "?do_put@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@"
+             "std@@@std@@MEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@"
+             "V32@AEAVios_base@2@D_K@Z";
+    case 0x0348:
+      return "?do_put@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@"
+             "std@@@std@@MEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@"
+             "V32@AEAVios_base@2@D_N@Z";
+    case 0x0349:
+      return "?do_put@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@"
+             "std@@@std@@MEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@"
+             "V32@AEAVios_base@2@GJ@Z";
+    case 0x034a:
+      return "?do_put@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@"
+             "std@@@std@@MEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@"
+             "V32@AEAVios_base@2@GK@Z";
+    case 0x034b:
+      return "?do_put@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@"
+             "std@@@std@@MEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@"
+             "V32@AEAVios_base@2@GN@Z";
+    case 0x034c:
+      return "?do_put@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@"
+             "std@@@std@@MEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@"
+             "V32@AEAVios_base@2@GO@Z";
+    case 0x034d:
+      return "?do_put@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@"
+             "std@@@std@@MEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@"
+             "V32@AEAVios_base@2@GPEBX@Z";
+    case 0x034e:
+      return "?do_put@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@"
+             "std@@@std@@MEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@"
+             "V32@AEAVios_base@2@G_J@Z";
+    case 0x034f:
+      return "?do_put@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@"
+             "std@@@std@@MEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@"
+             "V32@AEAVios_base@2@G_K@Z";
+    case 0x0350:
+      return "?do_put@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@"
+             "std@@@std@@MEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@"
+             "V32@AEAVios_base@2@G_N@Z";
+    case 0x0351:
+      return "?do_put@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@"
+             "@std@@@std@@MEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@"
+             "2@V32@AEAVios_base@2@_WJ@Z";
+    case 0x0352:
+      return "?do_put@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@"
+             "@std@@@std@@MEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@"
+             "2@V32@AEAVios_base@2@_WK@Z";
+    case 0x0353:
+      return "?do_put@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@"
+             "@std@@@std@@MEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@"
+             "2@V32@AEAVios_base@2@_WN@Z";
+    case 0x0354:
+      return "?do_put@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@"
+             "@std@@@std@@MEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@"
+             "2@V32@AEAVios_base@2@_WO@Z";
+    case 0x0355:
+      return "?do_put@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@"
+             "@std@@@std@@MEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@"
+             "2@V32@AEAVios_base@2@_WPEBX@Z";
+    case 0x0356:
+      return "?do_put@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@"
+             "@std@@@std@@MEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@"
+             "2@V32@AEAVios_base@2@_W_J@Z";
+    case 0x0357:
+      return "?do_put@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@"
+             "@std@@@std@@MEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@"
+             "2@V32@AEAVios_base@2@_W_K@Z";
+    case 0x0358:
+      return "?do_put@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@"
+             "@std@@@std@@MEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@"
+             "2@V32@AEAVios_base@2@_W_N@Z";
+    case 0x0359:
+      return "?do_put@?$time_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@"
+             "std@@@std@@MEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@"
+             "V32@AEAVios_base@2@DPEBUtm@@DD@Z";
+    case 0x035a:
+      return "?do_put@?$time_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@"
+             "std@@@std@@MEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@"
+             "V32@AEAVios_base@2@GPEBUtm@@DD@Z";
+    case 0x035b:
+      return "?do_put@?$time_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@"
+             "@@std@@@std@@MEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@"
+             "2@V32@AEAVios_base@2@_WPEBUtm@@DD@Z";
+    case 0x035c: return "?do_scan_is@?$ctype@G@std@@MEBAPEBGFPEBG0@Z";
+    case 0x035d: return "?do_scan_is@?$ctype@_W@std@@MEBAPEB_WFPEB_W0@Z";
+    case 0x035e: return "?do_scan_not@?$ctype@G@std@@MEBAPEBGFPEBG0@Z";
+    case 0x035f: return "?do_scan_not@?$ctype@_W@std@@MEBAPEB_WFPEB_W0@Z";
+    case 0x0360: return "?do_tolower@?$ctype@D@std@@MEBADD@Z";
+    case 0x0361: return "?do_tolower@?$ctype@D@std@@MEBAPEBDPEADPEBD@Z";
+    case 0x0362: return "?do_tolower@?$ctype@G@std@@MEBAGG@Z";
+    case 0x0363: return "?do_tolower@?$ctype@G@std@@MEBAPEBGPEAGPEBG@Z";
+    case 0x0364: return "?do_tolower@?$ctype@_W@std@@MEBAPEB_WPEA_WPEB_W@Z";
+    case 0x0365: return "?do_tolower@?$ctype@_W@std@@MEBA_W_W@Z";
+    case 0x0366: return "?do_toupper@?$ctype@D@std@@MEBADD@Z";
+    case 0x0367: return "?do_toupper@?$ctype@D@std@@MEBAPEBDPEADPEBD@Z";
+    case 0x0368: return "?do_toupper@?$ctype@G@std@@MEBAGG@Z";
+    case 0x0369: return "?do_toupper@?$ctype@G@std@@MEBAPEBGPEAGPEBG@Z";
+    case 0x036a: return "?do_toupper@?$ctype@_W@std@@MEBAPEB_WPEA_WPEB_W@Z";
+    case 0x036b: return "?do_toupper@?$ctype@_W@std@@MEBA_W_W@Z";
+    case 0x036c: return "?do_unshift@?$codecvt@DDH@std@@MEBAHAEAHPEAD1AEAPEAD@Z";
+    case 0x036d: return "?do_unshift@?$codecvt@GDH@std@@MEBAHAEAHPEAD1AEAPEAD@Z";
+    case 0x036e: return "?do_unshift@?$codecvt@_WDH@std@@MEBAHAEAHPEAD1AEAPEAD@Z";
+    case 0x036f: return "?do_widen@?$ctype@D@std@@MEBADD@Z";
+    case 0x0370: return "?do_widen@?$ctype@D@std@@MEBAPEBDPEBD0PEAD@Z";
+    case 0x0371: return "?do_widen@?$ctype@G@std@@MEBAGD@Z";
+    case 0x0372: return "?do_widen@?$ctype@G@std@@MEBAPEBDPEBD0PEAG@Z";
+    case 0x0373: return "?do_widen@?$ctype@_W@std@@MEBAPEBDPEBD0PEA_W@Z";
+    case 0x0374: return "?do_widen@?$ctype@_W@std@@MEBA_WD@Z";
+    case 0x0375: return "?done@agent@Concurrency@@IEAA_NXZ";
+    case 0x0376:
+      return "?eback@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ";
+    case 0x0377:
+      return "?eback@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEBAPEAGXZ";
+    case 0x0378:
+      return "?eback@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEBAPEA_WXZ";
+    case 0x0379:
+      return "?egptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ";
+    case 0x037a:
+      return "?egptr@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEBAPEAGXZ";
+    case 0x037b:
+      return "?egptr@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEBAPEA_WXZ";
+    case 0x037c: return "?empty@?$_Yarn@D@std@@QEBA_NXZ";
+    case 0x037d: return "?empty@locale@std@@SA?AV12@XZ";
+    case 0x037e: return "?encoding@codecvt_base@std@@QEBAHXZ";
+    case 0x037f: return "?eof@ios_base@std@@QEBA_NXZ";
+    case 0x0380:
+      return "?epptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ";
+    case 0x0381:
+      return "?epptr@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEBAPEAGXZ";
+    case 0x0382:
+      return "?epptr@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEBAPEA_WXZ";
+    case 0x0383: return "?exceptions@ios_base@std@@QEAAXH@Z";
+    case 0x0384: return "?exceptions@ios_base@std@@QEAAXI@Z";
+    case 0x0385: return "?exceptions@ios_base@std@@QEBAHXZ";
+    case 0x0386: return "?fail@ios_base@std@@QEBA_NXZ";
+    case 0x0387: return "?fill@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAADD@Z";
+    case 0x0388: return "?fill@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBADXZ";
+    case 0x0389: return "?fill@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAGG@Z";
+    case 0x038a: return "?fill@?$basic_ios@GU?$char_traits@G@std@@@std@@QEBAGXZ";
+    case 0x038b:
+      return "?fill@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAA_W_W@Z";
+    case 0x038c:
+      return "?fill@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEBA_WXZ";
+    case 0x038d: return "?flags@ios_base@std@@QEAAHH@Z";
+    case 0x038e: return "?flags@ios_base@std@@QEBAHXZ";
+    case 0x038f:
+      return "?flush@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@XZ";
+    case 0x0390:
+      return "?flush@?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@XZ";
+    case 0x0391:
+      return "?flush@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@XZ";
+    case 0x0392:
+      return "?gbump@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXH@Z";
+    case 0x0393:
+      return "?gbump@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAXH@Z";
+    case 0x0394:
+      return "?gbump@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAXH@Z";
+    case 0x0395:
+      return "?gcount@?$basic_istream@DU?$char_traits@D@std@@@std@@QEBA_JXZ";
+    case 0x0396:
+      return "?gcount@?$basic_istream@GU?$char_traits@G@std@@@std@@QEBA_JXZ";
+    case 0x0397:
+      return "?gcount@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEBA_JXZ";
+    case 0x0398:
+      return "?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@AEAD@Z";
+    case 0x0399:
+      return "?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@AEAV?$"
+             "basic_streambuf@DU?$char_traits@D@std@@@2@@Z";
+    case 0x039a:
+      return "?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@AEAV?$"
+             "basic_streambuf@DU?$char_traits@D@std@@@2@D@Z";
+    case 0x039b:
+      return "?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@PEAD_J@"
+             "Z";
+    case 0x039c:
+      return "?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@PEAD_"
+             "JD@Z";
+    case 0x039d:
+      return "?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAHXZ";
+    case 0x039e:
+      return "?get@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@AEAG@Z";
+    case 0x039f:
+      return "?get@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@AEAV?$"
+             "basic_streambuf@GU?$char_traits@G@std@@@2@@Z";
+    case 0x03a0:
+      return "?get@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@AEAV?$"
+             "basic_streambuf@GU?$char_traits@G@std@@@2@G@Z";
+    case 0x03a1:
+      return "?get@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@PEAG_J@"
+             "Z";
+    case 0x03a2:
+      return "?get@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@PEAG_"
+             "JG@Z";
+    case 0x03a3:
+      return "?get@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAGXZ";
+    case 0x03a4:
+      return "?get@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@AEAV?"
+             "$basic_streambuf@_WU?$char_traits@_W@std@@@2@@Z";
+    case 0x03a5:
+      return "?get@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@AEAV?"
+             "$basic_streambuf@_WU?$char_traits@_W@std@@@2@_W@Z";
+    case 0x03a6:
+      return "?get@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@AEA_"
+             "W@Z";
+    case 0x03a7:
+      return "?get@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@PEA_"
+             "W_J@Z";
+    case 0x03a8:
+      return "?get@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@PEA_"
+             "W_J_W@Z";
+    case 0x03a9:
+      return "?get@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAGXZ";
+    case 0x03aa:
+      return "?get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@"
+             "@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@"
+             "0AEAVios_base@2@AEAHAEAG@Z";
+    case 0x03ab:
+      return "?get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@"
+             "@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@"
+             "0AEAVios_base@2@AEAHAEAI@Z";
+    case 0x03ac:
+      return "?get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@"
+             "@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@"
+             "0AEAVios_base@2@AEAHAEAJ@Z";
+    case 0x03ad:
+      return "?get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@"
+             "@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@"
+             "0AEAVios_base@2@AEAHAEAK@Z";
+    case 0x03ae:
+      return "?get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@"
+             "@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@"
+             "0AEAVios_base@2@AEAHAEAM@Z";
+    case 0x03af:
+      return "?get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@"
+             "@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@"
+             "0AEAVios_base@2@AEAHAEAN@Z";
+    case 0x03b0:
+      return "?get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@"
+             "@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@"
+             "0AEAVios_base@2@AEAHAEAO@Z";
+    case 0x03b1:
+      return "?get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@"
+             "@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@"
+             "0AEAVios_base@2@AEAHAEAPEAX@Z";
+    case 0x03b2:
+      return "?get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@"
+             "@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@"
+             "0AEAVios_base@2@AEAHAEA_J@Z";
+    case 0x03b3:
+      return "?get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@"
+             "@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@"
+             "0AEAVios_base@2@AEAHAEA_K@Z";
+    case 0x03b4:
+      return "?get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@"
+             "@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@"
+             "0AEAVios_base@2@AEAHAEA_N@Z";
+    case 0x03b5:
+      return "?get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@"
+             "@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@"
+             "0AEAVios_base@2@AEAHAEAG@Z";
+    case 0x03b6:
+      return "?get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@"
+             "@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@"
+             "0AEAVios_base@2@AEAHAEAI@Z";
+    case 0x03b7:
+      return "?get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@"
+             "@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@"
+             "0AEAVios_base@2@AEAHAEAJ@Z";
+    case 0x03b8:
+      return "?get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@"
+             "@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@"
+             "0AEAVios_base@2@AEAHAEAK@Z";
+    case 0x03b9:
+      return "?get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@"
+             "@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@"
+             "0AEAVios_base@2@AEAHAEAM@Z";
+    case 0x03ba:
+      return "?get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@"
+             "@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@"
+             "0AEAVios_base@2@AEAHAEAN@Z";
+    case 0x03bb:
+      return "?get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@"
+             "@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@"
+             "0AEAVios_base@2@AEAHAEAO@Z";
+    case 0x03bc:
+      return "?get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@"
+             "@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@"
+             "0AEAVios_base@2@AEAHAEAPEAX@Z";
+    case 0x03bd:
+      return "?get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@"
+             "@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@"
+             "0AEAVios_base@2@AEAHAEA_J@Z";
+    case 0x03be:
+      return "?get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@"
+             "@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@"
+             "0AEAVios_base@2@AEAHAEA_K@Z";
+    case 0x03bf:
+      return "?get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@"
+             "@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@"
+             "0AEAVios_base@2@AEAHAEA_N@Z";
+    case 0x03c0:
+      return "?get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@"
+             "std@@@std@@QEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@"
+             "V32@0AEAVios_base@2@AEAHAEAG@Z";
+    case 0x03c1:
+      return "?get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@"
+             "std@@@std@@QEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@"
+             "V32@0AEAVios_base@2@AEAHAEAI@Z";
+    case 0x03c2:
+      return "?get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@"
+             "std@@@std@@QEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@"
+             "V32@0AEAVios_base@2@AEAHAEAJ@Z";
+    case 0x03c3:
+      return "?get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@"
+             "std@@@std@@QEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@"
+             "V32@0AEAVios_base@2@AEAHAEAK@Z";
+    case 0x03c4:
+      return "?get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@"
+             "std@@@std@@QEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@"
+             "V32@0AEAVios_base@2@AEAHAEAM@Z";
+    case 0x03c5:
+      return "?get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@"
+             "std@@@std@@QEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@"
+             "V32@0AEAVios_base@2@AEAHAEAN@Z";
+    case 0x03c6:
+      return "?get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@"
+             "std@@@std@@QEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@"
+             "V32@0AEAVios_base@2@AEAHAEAO@Z";
+    case 0x03c7:
+      return "?get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@"
+             "std@@@std@@QEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@"
+             "V32@0AEAVios_base@2@AEAHAEAPEAX@Z";
+    case 0x03c8:
+      return "?get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@"
+             "std@@@std@@QEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@"
+             "V32@0AEAVios_base@2@AEAHAEA_J@Z";
+    case 0x03c9:
+      return "?get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@"
+             "std@@@std@@QEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@"
+             "V32@0AEAVios_base@2@AEAHAEA_K@Z";
+    case 0x03ca:
+      return "?get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@"
+             "std@@@std@@QEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@"
+             "V32@0AEAVios_base@2@AEAHAEA_N@Z";
+    case 0x03cb:
+      return "?get@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@"
+             "@@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@"
+             "0AEAVios_base@2@AEAHPEAUtm@@DD@Z";
+    case 0x03cc:
+      return "?get@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@"
+             "@@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@"
+             "0AEAVios_base@2@AEAHPEAUtm@@PEBD4@Z";
+    case 0x03cd:
+      return "?get@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@"
+             "@@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@"
+             "0AEAVios_base@2@AEAHPEAUtm@@DD@Z";
+    case 0x03ce:
+      return "?get@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@"
+             "@@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@"
+             "0AEAVios_base@2@AEAHPEAUtm@@PEBG4@Z";
+    case 0x03cf:
+      return "?get@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@"
+             "std@@@std@@QEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@"
+             "V32@0AEAVios_base@2@AEAHPEAUtm@@DD@Z";
+    case 0x03d0:
+      return "?get@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@"
+             "std@@@std@@QEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@"
+             "V32@0AEAVios_base@2@AEAHPEAUtm@@PEB_W4@Z";
+    case 0x03d1:
+      return "?get_date@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@"
+             "@std@@@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@"
+             "V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
+    case 0x03d2:
+      return "?get_date@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@"
+             "@std@@@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@"
+             "V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
+    case 0x03d3:
+      return "?get_date@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@"
+             "std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@"
+             "std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
+    case 0x03d4:
+      return "?get_monthname@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@"
+             "std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@"
+             "@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
+    case 0x03d5:
+      return "?get_monthname@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@"
+             "std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@"
+             "@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
+    case 0x03d6:
+      return "?get_monthname@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@"
+             "_W@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@_WU?$char_traits@_"
+             "W@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
+    case 0x03d7: return "?get_new_handler@std@@YAP6AXXZXZ";
+    case 0x03d8:
+      return "?get_time@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@"
+             "@std@@@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@"
+             "V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
+    case 0x03d9:
+      return "?get_time@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@"
+             "@std@@@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@"
+             "V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
+    case 0x03da:
+      return "?get_time@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@"
+             "std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@"
+             "std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
+    case 0x03db:
+      return "?get_weekday@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@"
+             "std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@"
+             "@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
+    case 0x03dc:
+      return "?get_weekday@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@"
+             "std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@"
+             "@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
+    case 0x03dd:
+      return "?get_weekday@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_"
+             "W@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@"
+             "std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
+    case 0x03de:
+      return "?get_year@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@"
+             "@std@@@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@"
+             "V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
+    case 0x03df:
+      return "?get_year@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@"
+             "@std@@@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@"
+             "V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
+    case 0x03e0:
+      return "?get_year@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@"
+             "std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@"
+             "std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
+    case 0x03e1:
+      return "?getline@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@"
+             "PEAD_J@Z";
+    case 0x03e2:
+      return "?getline@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@"
+             "PEAD_JD@Z";
+    case 0x03e3:
+      return "?getline@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@"
+             "PEAG_J@Z";
+    case 0x03e4:
+      return "?getline@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@"
+             "PEAG_JG@Z";
+    case 0x03e5:
+      return "?getline@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@"
+             "PEA_W_J@Z";
+    case 0x03e6:
+      return "?getline@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@"
+             "PEA_W_J_W@Z";
+    case 0x03e7:
+      return "?getloc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEBA?"
+             "AVlocale@2@XZ";
+    case 0x03e8:
+      return "?getloc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEBA?"
+             "AVlocale@2@XZ";
+    case 0x03e9:
+      return "?getloc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEBA?"
+             "AVlocale@2@XZ";
+    case 0x03ea: return "?getloc@ios_base@std@@QEBA?AVlocale@2@XZ";
+    case 0x03eb: return "?global@locale@std@@SA?AV12@AEBV12@@Z";
+    case 0x03ec: return "?good@ios_base@std@@QEBA_NXZ";
+    case 0x03ed:
+      return "?gptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ";
+    case 0x03ee:
+      return "?gptr@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEBAPEAGXZ";
+    case 0x03ef:
+      return "?gptr@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEBAPEA_WXZ";
+    case 0x03f0: return "?id@?$codecvt@DDH@std@@2V0locale@2@A";
+    case 0x03f1: return "?id@?$codecvt@GDH@std@@2V0locale@2@A";
+    case 0x03f2: return "?id@?$codecvt@_WDH@std@@2V0locale@2@A";
+    case 0x03f3: return "?id@?$collate@D@std@@2V0locale@2@A";
+    case 0x03f4: return "?id@?$collate@G@std@@2V0locale@2@A";
+    case 0x03f5: return "?id@?$collate@_W@std@@2V0locale@2@A";
+    case 0x03f6: return "?id@?$ctype@D@std@@2V0locale@2@A";
+    case 0x03f7: return "?id@?$ctype@G@std@@2V0locale@2@A";
+    case 0x03f8: return "?id@?$ctype@_W@std@@2V0locale@2@A";
+    case 0x03f9: return "?id@?$messages@D@std@@2V0locale@2@A";
+    case 0x03fa: return "?id@?$messages@G@std@@2V0locale@2@A";
+    case 0x03fb: return "?id@?$messages@_W@std@@2V0locale@2@A";
+    case 0x03fc:
+      return "?id@?$money_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@"
+             "@@std@@2V0locale@2@A";
+    case 0x03fd:
+      return "?id@?$money_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@"
+             "@@std@@2V0locale@2@A";
+    case 0x03fe:
+      return "?id@?$money_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@"
+             "std@@@std@@2V0locale@2@A";
+    case 0x03ff:
+      return "?id@?$money_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@"
+             "@@std@@2V0locale@2@A";
+    case 0x0400:
+      return "?id@?$money_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@"
+             "@@std@@2V0locale@2@A";
+    case 0x0401:
+      return "?id@?$money_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@"
+             "std@@@std@@2V0locale@2@A";
+    case 0x0402: return "?id@?$moneypunct@D$00@std@@2V0locale@2@A";
+    case 0x0403: return "?id@?$moneypunct@D$0A@@std@@2V0locale@2@A";
+    case 0x0404: return "?id@?$moneypunct@G$00@std@@2V0locale@2@A";
+    case 0x0405: return "?id@?$moneypunct@G$0A@@std@@2V0locale@2@A";
+    case 0x0406: return "?id@?$moneypunct@_W$00@std@@2V0locale@2@A";
+    case 0x0407: return "?id@?$moneypunct@_W$0A@@std@@2V0locale@2@A";
+    case 0x0408:
+      return "?id@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@"
+             "std@@2V0locale@2@A";
+    case 0x0409:
+      return "?id@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@"
+             "std@@2V0locale@2@A";
+    case 0x040a:
+      return "?id@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@"
+             "std@@@std@@2V0locale@2@A";
+    case 0x040b:
+      return "?id@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@"
+             "std@@2V0locale@2@A";
+    case 0x040c:
+      return "?id@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@"
+             "std@@2V0locale@2@A";
+    case 0x040d:
+      return "?id@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@"
+             "std@@@std@@2V0locale@2@A";
+    case 0x040e: return "?id@?$numpunct@D@std@@2V0locale@2@A";
+    case 0x040f: return "?id@?$numpunct@G@std@@2V0locale@2@A";
+    case 0x0410: return "?id@?$numpunct@_W@std@@2V0locale@2@A";
+    case 0x0411:
+      return "?id@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@"
+             "@std@@2V0locale@2@A";
+    case 0x0412:
+      return "?id@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@"
+             "@std@@2V0locale@2@A";
+    case 0x0413:
+      return "?id@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@"
+             "std@@@std@@2V0locale@2@A";
+    case 0x0414:
+      return "?id@?$time_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@"
+             "@std@@2V0locale@2@A";
+    case 0x0415:
+      return "?id@?$time_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@"
+             "@std@@2V0locale@2@A";
+    case 0x0416:
+      return "?id@?$time_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@"
+             "std@@@std@@2V0locale@2@A";
+    case 0x0417:
+      return "?ignore@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@_JH@"
+             "Z";
+    case 0x0418:
+      return "?ignore@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@_JG@"
+             "Z";
+    case 0x0419:
+      return "?ignore@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@_"
+             "JG@Z";
+    case 0x041a:
+      return "?imbue@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAA?AVlocale@2@"
+             "AEBV32@@Z";
+    case 0x041b:
+      return "?imbue@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAA?AVlocale@2@"
+             "AEBV32@@Z";
+    case 0x041c:
+      return "?imbue@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAA?AVlocale@2@"
+             "AEBV32@@Z";
+    case 0x041d:
+      return "?imbue@?$basic_streambuf@DU?$char_traits@D@std@@@std@@"
+             "MEAAXAEBVlocale@2@@Z";
+    case 0x041e:
+      return "?imbue@?$basic_streambuf@GU?$char_traits@G@std@@@std@@"
+             "MEAAXAEBVlocale@2@@Z";
+    case 0x041f:
+      return "?imbue@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@"
+             "MEAAXAEBVlocale@2@@Z";
+    case 0x0420: return "?imbue@ios_base@std@@QEAA?AVlocale@2@AEBV32@@Z";
+    case 0x0421:
+      return "?in@?$codecvt@DDH@std@@QEBAHAEAHPEBD1AEAPEBDPEAD3AEAPEAD@Z";
+    case 0x0422:
+      return "?in@?$codecvt@GDH@std@@QEBAHAEAHPEBD1AEAPEBDPEAG3AEAPEAG@Z";
+    case 0x0423:
+      return "?in@?$codecvt@_WDH@std@@QEBAHAEAHPEBD1AEAPEBDPEA_W3AEAPEA_W@Z";
+    case 0x0424:
+      return "?in_avail@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA_JXZ";
+    case 0x0425:
+      return "?in_avail@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA_JXZ";
+    case 0x0426:
+      return "?in_avail@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAA_JXZ";
+    case 0x0427:
+      return "?init@?$basic_ios@DU?$char_traits@D@std@@@std@@IEAAXPEAV?$basic_"
+             "streambuf@DU?$char_traits@D@std@@@2@_N@Z";
+    case 0x0428:
+      return "?init@?$basic_ios@GU?$char_traits@G@std@@@std@@IEAAXPEAV?$basic_"
+             "streambuf@GU?$char_traits@G@std@@@2@_N@Z";
+    case 0x0429:
+      return "?init@?$basic_ios@_WU?$char_traits@_W@std@@@std@@IEAAXPEAV?$basic_"
+             "streambuf@_WU?$char_traits@_W@std@@@2@_N@Z";
+    case 0x042a: return "?intl@?$moneypunct@D$00@std@@2_NB";
+    case 0x042b: return "?intl@?$moneypunct@D$0A@@std@@2_NB";
+    case 0x042c: return "?intl@?$moneypunct@G$00@std@@2_NB";
+    case 0x042d: return "?intl@?$moneypunct@G$0A@@std@@2_NB";
+    case 0x042e: return "?intl@?$moneypunct@_W$00@std@@2_NB";
+    case 0x042f: return "?intl@?$moneypunct@_W$0A@@std@@2_NB";
+    case 0x0430:
+      return "?ipfx@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAA_N_N@Z";
+    case 0x0431:
+      return "?ipfx@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAA_N_N@Z";
+    case 0x0432:
+      return "?ipfx@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAA_N_N@Z";
+    case 0x0433: return "?is@?$ctype@D@std@@QEBAPEBDPEBD0PEAF@Z";
+    case 0x0434: return "?is@?$ctype@D@std@@QEBA_NFD@Z";
+    case 0x0435: return "?is@?$ctype@G@std@@QEBAPEBGPEBG0PEAF@Z";
+    case 0x0436: return "?is@?$ctype@G@std@@QEBA_NFG@Z";
+    case 0x0437: return "?is@?$ctype@_W@std@@QEBAPEB_WPEB_W0PEAF@Z";
+    case 0x0438: return "?is@?$ctype@_W@std@@QEBA_NF_W@Z";
+    case 0x0439: return "?is_current_task_group_canceling@Concurrency@@YA_NXZ";
+    case 0x043a:
+      return "?isfx@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAXXZ";
+    case 0x043b:
+      return "?isfx@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAXXZ";
+    case 0x043c:
+      return "?isfx@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAXXZ";
+    case 0x043d: return "?iword@ios_base@std@@QEAAAEAJH@Z";
+    case 0x043e: return "?length@?$codecvt@DDH@std@@QEBAHAEAHPEBD1_K@Z";
+    case 0x043f: return "?length@?$codecvt@GDH@std@@QEBAHAEAHPEBD1_K@Z";
+    case 0x0440: return "?length@?$codecvt@_WDH@std@@QEBAHAEAHPEBD1_K@Z";
+    case 0x0441: return "?max_length@codecvt_base@std@@QEBAHXZ";
+    case 0x0442:
+      return "?move@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAX$$QEAV12@@Z";
+    case 0x0443:
+      return "?move@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAXAEAV12@@Z";
+    case 0x0444:
+      return "?move@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAX$$QEAV12@@Z";
+    case 0x0445:
+      return "?move@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAXAEAV12@@Z";
+    case 0x0446:
+      return "?move@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAX$$QEAV12@@Z";
+    case 0x0447:
+      return "?move@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAXAEAV12@@Z";
+    case 0x0448:
+      return "?narrow@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBADDD@Z";
+    case 0x0449:
+      return "?narrow@?$basic_ios@GU?$char_traits@G@std@@@std@@QEBADGD@Z";
+    case 0x044a:
+      return "?narrow@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEBAD_WD@Z";
+    case 0x044b: return "?narrow@?$ctype@D@std@@QEBADDD@Z";
+    case 0x044c: return "?narrow@?$ctype@D@std@@QEBAPEBDPEBD0DPEAD@Z";
+    case 0x044d: return "?narrow@?$ctype@G@std@@QEBADGD@Z";
+    case 0x044e: return "?narrow@?$ctype@G@std@@QEBAPEBGPEBG0DPEAD@Z";
+    case 0x044f: return "?narrow@?$ctype@_W@std@@QEBAD_WD@Z";
+    case 0x0450: return "?narrow@?$ctype@_W@std@@QEBAPEB_WPEB_W0DPEAD@Z";
+    case 0x0451:
+      return "?opfx@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA_NXZ";
+    case 0x0452:
+      return "?opfx@?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAA_NXZ";
+    case 0x0453:
+      return "?opfx@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAA_NXZ";
+    case 0x0454:
+      return "?osfx@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAXXZ";
+    case 0x0455:
+      return "?osfx@?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAXXZ";
+    case 0x0456:
+      return "?osfx@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAXXZ";
+    case 0x0457:
+      return "?out@?$codecvt@DDH@std@@QEBAHAEAHPEBD1AEAPEBDPEAD3AEAPEAD@Z";
+    case 0x0458:
+      return "?out@?$codecvt@GDH@std@@QEBAHAEAHPEBG1AEAPEBGPEAD3AEAPEAD@Z";
+    case 0x0459:
+      return "?out@?$codecvt@_WDH@std@@QEBAHAEAHPEB_W1AEAPEB_WPEAD3AEAPEAD@Z";
+    case 0x045a:
+      return "?overflow@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAAHH@Z";
+    case 0x045b:
+      return "?overflow@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAAGG@Z";
+    case 0x045c:
+      return "?overflow@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAAGG@Z";
+    case 0x045d:
+      return "?pbackfail@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAAHH@Z";
+    case 0x045e:
+      return "?pbackfail@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAAGG@Z";
+    case 0x045f:
+      return "?pbackfail@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAAGG@"
+             "Z";
+    case 0x0460:
+      return "?pbase@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ";
+    case 0x0461:
+      return "?pbase@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEBAPEAGXZ";
+    case 0x0462:
+      return "?pbase@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEBAPEA_WXZ";
+    case 0x0463:
+      return "?pbump@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXH@Z";
+    case 0x0464:
+      return "?pbump@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAXH@Z";
+    case 0x0465:
+      return "?pbump@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAXH@Z";
+    case 0x0466:
+      return "?peek@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAHXZ";
+    case 0x0467:
+      return "?peek@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAGXZ";
+    case 0x0468:
+      return "?peek@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAGXZ";
+    case 0x0469:
+      return "?pptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ";
+    case 0x046a:
+      return "?pptr@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEBAPEAGXZ";
+    case 0x046b:
+      return "?pptr@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEBAPEA_WXZ";
+    case 0x046c: return "?precision@ios_base@std@@QEAA_J_J@Z";
+    case 0x046d: return "?precision@ios_base@std@@QEBA_JXZ";
+    case 0x046e:
+      return "?pubimbue@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA?"
+             "AVlocale@2@AEBV32@@Z";
+    case 0x046f:
+      return "?pubimbue@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA?"
+             "AVlocale@2@AEBV32@@Z";
+    case 0x0470:
+      return "?pubimbue@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAA?"
+             "AVlocale@2@AEBV32@@Z";
+    case 0x0471:
+      return "?pubseekoff@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA?AV?$"
+             "fpos@H@2@_JHH@Z";
+    case 0x0472:
+      return "?pubseekoff@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA?AV?$"
+             "fpos@H@2@_JII@Z";
+    case 0x0473:
+      return "?pubseekoff@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA?AV?$"
+             "fpos@H@2@_JHH@Z";
+    case 0x0474:
+      return "?pubseekoff@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA?AV?$"
+             "fpos@H@2@_JII@Z";
+    case 0x0475:
+      return "?pubseekoff@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAA?"
+             "AV?$fpos@H@2@_JHH@Z";
+    case 0x0476:
+      return "?pubseekoff@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAA?"
+             "AV?$fpos@H@2@_JII@Z";
+    case 0x0477:
+      return "?pubseekpos@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA?AV?$"
+             "fpos@H@2@V32@H@Z";
+    case 0x0478:
+      return "?pubseekpos@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA?AV?$"
+             "fpos@H@2@V32@I@Z";
+    case 0x0479:
+      return "?pubseekpos@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA?AV?$"
+             "fpos@H@2@V32@H@Z";
+    case 0x047a:
+      return "?pubseekpos@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA?AV?$"
+             "fpos@H@2@V32@I@Z";
+    case 0x047b:
+      return "?pubseekpos@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAA?"
+             "AV?$fpos@H@2@V32@H@Z";
+    case 0x047c:
+      return "?pubseekpos@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAA?"
+             "AV?$fpos@H@2@V32@I@Z";
+    case 0x047d:
+      return "?pubsetbuf@?$basic_streambuf@DU?$char_traits@D@std@@@std@@"
+             "QEAAPEAV12@PEAD_J@Z";
+    case 0x047e:
+      return "?pubsetbuf@?$basic_streambuf@GU?$char_traits@G@std@@@std@@"
+             "QEAAPEAV12@PEAG_J@Z";
+    case 0x047f:
+      return "?pubsetbuf@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@"
+             "QEAAPEAV12@PEA_W_J@Z";
+    case 0x0480:
+      return "?pubsync@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHXZ";
+    case 0x0481:
+      return "?pubsync@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAHXZ";
+    case 0x0482:
+      return "?pubsync@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAHXZ";
+    case 0x0483:
+      return "?put@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@D@Z";
+    case 0x0484:
+      return "?put@?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@G@Z";
+    case 0x0485:
+      return "?put@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@_W@Z";
+    case 0x0486:
+      return "?put@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@"
+             "@std@@QEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@V32@"
+             "AEAVios_base@2@DJ@Z";
+    case 0x0487:
+      return "?put@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@"
+             "@std@@QEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@V32@"
+             "AEAVios_base@2@DK@Z";
+    case 0x0488:
+      return "?put@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@"
+             "@std@@QEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@V32@"
+             "AEAVios_base@2@DN@Z";
+    case 0x0489:
+      return "?put@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@"
+             "@std@@QEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@V32@"
+             "AEAVios_base@2@DO@Z";
+    case 0x048a:
+      return "?put@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@"
+             "@std@@QEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@V32@"
+             "AEAVios_base@2@DPEBX@Z";
+    case 0x048b:
+      return "?put@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@"
+             "@std@@QEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@V32@"
+             "AEAVios_base@2@D_J@Z";
+    case 0x048c:
+      return "?put@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@"
+             "@std@@QEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@V32@"
+             "AEAVios_base@2@D_K@Z";
+    case 0x048d:
+      return "?put@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@"
+             "@std@@QEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@V32@"
+             "AEAVios_base@2@D_N@Z";
+    case 0x048e:
+      return "?put@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@"
+             "@std@@QEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@V32@"
+             "AEAVios_base@2@GJ@Z";
+    case 0x048f:
+      return "?put@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@"
+             "@std@@QEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@V32@"
+             "AEAVios_base@2@GK@Z";
+    case 0x0490:
+      return "?put@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@"
+             "@std@@QEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@V32@"
+             "AEAVios_base@2@GN@Z";
+    case 0x0491:
+      return "?put@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@"
+             "@std@@QEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@V32@"
+             "AEAVios_base@2@GO@Z";
+    case 0x0492:
+      return "?put@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@"
+             "@std@@QEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@V32@"
+             "AEAVios_base@2@GPEBX@Z";
+    case 0x0493:
+      return "?put@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@"
+             "@std@@QEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@V32@"
+             "AEAVios_base@2@G_J@Z";
+    case 0x0494:
+      return "?put@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@"
+             "@std@@QEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@V32@"
+             "AEAVios_base@2@G_K@Z";
+    case 0x0495:
+      return "?put@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@"
+             "@std@@QEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@V32@"
+             "AEAVios_base@2@G_N@Z";
+    case 0x0496:
+      return "?put@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@"
+             "std@@@std@@QEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@2@"
+             "V32@AEAVios_base@2@_WJ@Z";
+    case 0x0497:
+      return "?put@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@"
+             "std@@@std@@QEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@2@"
+             "V32@AEAVios_base@2@_WK@Z";
+    case 0x0498:
+      return "?put@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@"
+             "std@@@std@@QEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@2@"
+             "V32@AEAVios_base@2@_WN@Z";
+    case 0x0499:
+      return "?put@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@"
+             "std@@@std@@QEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@2@"
+             "V32@AEAVios_base@2@_WO@Z";
+    case 0x049a:
+      return "?put@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@"
+             "std@@@std@@QEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@2@"
+             "V32@AEAVios_base@2@_WPEBX@Z";
+    case 0x049b:
+      return "?put@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@"
+             "std@@@std@@QEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@2@"
+             "V32@AEAVios_base@2@_W_J@Z";
+    case 0x049c:
+      return "?put@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@"
+             "std@@@std@@QEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@2@"
+             "V32@AEAVios_base@2@_W_K@Z";
+    case 0x049d:
+      return "?put@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@"
+             "std@@@std@@QEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@2@"
+             "V32@AEAVios_base@2@_W_N@Z";
+    case 0x049e:
+      return "?put@?$time_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@"
+             "@@std@@QEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@V32@"
+             "AEAVios_base@2@DPEBUtm@@DD@Z";
+    case 0x049f:
+      return "?put@?$time_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@"
+             "@@std@@QEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@V32@"
+             "AEAVios_base@2@DPEBUtm@@PEBD3@Z";
+    case 0x04a0:
+      return "?put@?$time_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@"
+             "@@std@@QEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@V32@"
+             "AEAVios_base@2@GPEBUtm@@DD@Z";
+    case 0x04a1:
+      return "?put@?$time_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@"
+             "@@std@@QEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@V32@"
+             "AEAVios_base@2@GPEBUtm@@PEBG3@Z";
+    case 0x04a2:
+      return "?put@?$time_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@"
+             "std@@@std@@QEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@2@"
+             "V32@AEAVios_base@2@_WPEBUtm@@DD@Z";
+    case 0x04a3:
+      return "?put@?$time_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@"
+             "std@@@std@@QEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@2@"
+             "V32@AEAVios_base@2@_WPEBUtm@@PEB_W4@Z";
+    case 0x04a4:
+      return "?putback@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@D@"
+             "Z";
+    case 0x04a5:
+      return "?putback@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@G@"
+             "Z";
+    case 0x04a6:
+      return "?putback@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@_"
+             "W@Z";
+    case 0x04a7: return "?pword@ios_base@std@@QEAAAEAPEAXH@Z";
+    case 0x04a8:
+      return "?rdbuf@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAPEAV?$basic_"
+             "streambuf@DU?$char_traits@D@std@@@2@PEAV32@@Z";
+    case 0x04a9:
+      return "?rdbuf@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBAPEAV?$basic_"
+             "streambuf@DU?$char_traits@D@std@@@2@XZ";
+    case 0x04aa:
+      return "?rdbuf@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAPEAV?$basic_"
+             "streambuf@GU?$char_traits@G@std@@@2@PEAV32@@Z";
+    case 0x04ab:
+      return "?rdbuf@?$basic_ios@GU?$char_traits@G@std@@@std@@QEBAPEAV?$basic_"
+             "streambuf@GU?$char_traits@G@std@@@2@XZ";
+    case 0x04ac:
+      return "?rdbuf@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAPEAV?$basic_"
+             "streambuf@_WU?$char_traits@_W@std@@@2@PEAV32@@Z";
+    case 0x04ad:
+      return "?rdbuf@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEBAPEAV?$basic_"
+             "streambuf@_WU?$char_traits@_W@std@@@2@XZ";
+    case 0x04ae: return "?rdstate@ios_base@std@@QEBAHXZ";
+    case 0x04af:
+      return "?read@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@PEAD_"
+             "J@Z";
+    case 0x04b0:
+      return "?read@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@PEAG_"
+             "J@Z";
+    case 0x04b1:
+      return "?read@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@PEA_"
+             "W_J@Z";
+    case 0x04b2:
+      return "?readsome@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAA_JPEAD_J@"
+             "Z";
+    case 0x04b3:
+      return "?readsome@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAA_JPEAG_J@"
+             "Z";
+    case 0x04b4:
+      return "?readsome@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAA_JPEA_"
+             "W_J@Z";
+    case 0x04b5:
+      return "?register_callback@ios_base@std@@QEAAXP6AXW4event@12@AEAV12@H@ZH@Z";
+    case 0x04b6: return "?resetiosflags@std@@YA?AU?$_Smanip@H@1@H@Z";
+    case 0x04b7:
+      return "?sbumpc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHXZ";
+    case 0x04b8:
+      return "?sbumpc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAGXZ";
+    case 0x04b9:
+      return "?sbumpc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAGXZ";
+    case 0x04ba: return "?scan_is@?$ctype@D@std@@QEBAPEBDFPEBD0@Z";
+    case 0x04bb: return "?scan_is@?$ctype@G@std@@QEBAPEBGFPEBG0@Z";
+    case 0x04bc: return "?scan_is@?$ctype@_W@std@@QEBAPEB_WFPEB_W0@Z";
+    case 0x04bd: return "?scan_not@?$ctype@D@std@@QEBAPEBDFPEBD0@Z";
+    case 0x04be: return "?scan_not@?$ctype@G@std@@QEBAPEBGFPEBG0@Z";
+    case 0x04bf: return "?scan_not@?$ctype@_W@std@@QEBAPEB_WFPEB_W0@Z";
+    case 0x04c0:
+      return "?seekg@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@V?$"
+             "fpos@H@2@@Z";
+    case 0x04c1:
+      return "?seekg@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@_JH@"
+             "Z";
+    case 0x04c2:
+      return "?seekg@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@V?$"
+             "fpos@H@2@@Z";
+    case 0x04c3:
+      return "?seekg@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@_JH@"
+             "Z";
+    case 0x04c4:
+      return "?seekg@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@V?$"
+             "fpos@H@2@@Z";
+    case 0x04c5:
+      return "?seekg@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@_"
+             "JH@Z";
+    case 0x04c6:
+      return "?seekoff@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAA?AV?$"
+             "fpos@H@2@_JHH@Z";
+    case 0x04c7:
+      return "?seekoff@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAA?AV?$"
+             "fpos@H@2@_JHH@Z";
+    case 0x04c8:
+      return "?seekoff@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAA?AV?$"
+             "fpos@H@2@_JHH@Z";
+    case 0x04c9:
+      return "?seekp@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@V?$"
+             "fpos@H@2@@Z";
+    case 0x04ca:
+      return "?seekp@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@_JH@"
+             "Z";
+    case 0x04cb:
+      return "?seekp@?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@V?$"
+             "fpos@H@2@@Z";
+    case 0x04cc:
+      return "?seekp@?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@_JH@"
+             "Z";
+    case 0x04cd:
+      return "?seekp@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@V?$"
+             "fpos@H@2@@Z";
+    case 0x04ce:
+      return "?seekp@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@_"
+             "JH@Z";
+    case 0x04cf:
+      return "?seekpos@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAA?AV?$"
+             "fpos@H@2@V32@H@Z";
+    case 0x04d0:
+      return "?seekpos@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAA?AV?$"
+             "fpos@H@2@V32@H@Z";
+    case 0x04d1:
+      return "?seekpos@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAA?AV?$"
+             "fpos@H@2@V32@H@Z";
+    case 0x04d2: return "?set_new_handler@std@@YAP6AXXZP6AXXZ@Z";
+    case 0x04d3:
+      return "?set_rdbuf@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAXPEAV?$"
+             "basic_streambuf@DU?$char_traits@D@std@@@2@@Z";
+    case 0x04d4:
+      return "?set_rdbuf@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAXPEAV?$"
+             "basic_streambuf@GU?$char_traits@G@std@@@2@@Z";
+    case 0x04d5:
+      return "?set_rdbuf@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAXPEAV?$"
+             "basic_streambuf@_WU?$char_traits@_W@std@@@2@@Z";
+    case 0x04d6: return "?setbase@std@@YA?AU?$_Smanip@H@1@H@Z";
+    case 0x04d7:
+      return "?setbuf@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAAPEAV12@"
+             "PEAD_J@Z";
+    case 0x04d8:
+      return "?setbuf@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAAPEAV12@"
+             "PEAG_J@Z";
+    case 0x04d9:
+      return "?setbuf@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAAPEAV12@"
+             "PEA_W_J@Z";
+    case 0x04da: return "?setf@ios_base@std@@QEAAHH@Z";
+    case 0x04db: return "?setf@ios_base@std@@QEAAHHH@Z";
+    case 0x04dc:
+      return "?setg@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXPEAD00@Z";
+    case 0x04dd:
+      return "?setg@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAXPEAG00@Z";
+    case 0x04de:
+      return "?setg@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAXPEA_W00@"
+             "Z";
+    case 0x04df: return "?setiosflags@std@@YA?AU?$_Smanip@H@1@H@Z";
+    case 0x04e0:
+      return "?setp@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXPEAD00@Z";
+    case 0x04e1:
+      return "?setp@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXPEAD0@Z";
+    case 0x04e2:
+      return "?setp@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAXPEAG00@Z";
+    case 0x04e3:
+      return "?setp@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAXPEAG0@Z";
+    case 0x04e4:
+      return "?setp@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAXPEA_W00@"
+             "Z";
+    case 0x04e5:
+      return "?setp@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAXPEA_W0@"
+             "Z";
+    case 0x04e6: return "?setprecision@std@@YA?AU?$_Smanip@_J@1@_J@Z";
+    case 0x04e7:
+      return "?setstate@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAXH_N@Z";
+    case 0x04e8:
+      return "?setstate@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAXI@Z";
+    case 0x04e9:
+      return "?setstate@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAXH_N@Z";
+    case 0x04ea:
+      return "?setstate@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAXI@Z";
+    case 0x04eb:
+      return "?setstate@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAXH_N@Z";
+    case 0x04ec:
+      return "?setstate@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAXI@Z";
+    case 0x04ed: return "?setstate@ios_base@std@@QEAAXH@Z";
+    case 0x04ee: return "?setstate@ios_base@std@@QEAAXH_N@Z";
+    case 0x04ef: return "?setstate@ios_base@std@@QEAAXI@Z";
+    case 0x04f0: return "?setw@std@@YA?AU?$_Smanip@_J@1@_J@Z";
+    case 0x04f1:
+      return "?sgetc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHXZ";
+    case 0x04f2:
+      return "?sgetc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAGXZ";
+    case 0x04f3:
+      return "?sgetc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAGXZ";
+    case 0x04f4:
+      return "?sgetn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA_JPEAD_J@"
+             "Z";
+    case 0x04f5:
+      return "?sgetn@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA_JPEAG_J@"
+             "Z";
+    case 0x04f6:
+      return "?sgetn@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAA_JPEA_W_"
+             "J@Z";
+    case 0x04f7:
+      return "?showmanyc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAA_JXZ";
+    case 0x04f8:
+      return "?showmanyc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAA_JXZ";
+    case 0x04f9:
+      return "?showmanyc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAA_"
+             "JXZ";
+    case 0x04fa:
+      return "?snextc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHXZ";
+    case 0x04fb:
+      return "?snextc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAGXZ";
+    case 0x04fc:
+      return "?snextc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAGXZ";
+    case 0x04fd:
+      return "?sputbackc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHD@Z";
+    case 0x04fe:
+      return "?sputbackc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAGG@Z";
+    case 0x04ff:
+      return "?sputbackc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAG_W@"
+             "Z";
+    case 0x0500:
+      return "?sputc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHD@Z";
+    case 0x0501:
+      return "?sputc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAGG@Z";
+    case 0x0502:
+      return "?sputc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAG_W@Z";
+    case 0x0503:
+      return "?sputn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA_JPEBD_J@"
+             "Z";
+    case 0x0504:
+      return "?sputn@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA_JPEBG_J@"
+             "Z";
+    case 0x0505:
+      return "?sputn@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAA_JPEB_W_"
+             "J@Z";
+    case 0x0506: return "?start@agent@Concurrency@@QEAA_NXZ";
+    case 0x0507: return "?status@agent@Concurrency@@QEAA?AW4agent_status@2@XZ";
+    case 0x0508:
+      return "?status_port@agent@Concurrency@@QEAAPEAV?$ISource@W4agent_status@"
+             "Concurrency@@@2@XZ";
+    case 0x0509:
+      return "?stossc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAXXZ";
+    case 0x050a:
+      return "?stossc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAXXZ";
+    case 0x050b:
+      return "?stossc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAXXZ";
+    case 0x050c:
+      return "?sungetc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHXZ";
+    case 0x050d:
+      return "?sungetc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAGXZ";
+    case 0x050e:
+      return "?sungetc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAGXZ";
+    case 0x050f:
+      return "?swap@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAXAEAV12@@Z";
+    case 0x0510:
+      return "?swap@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAXAEAV12@@Z";
+    case 0x0511:
+      return "?swap@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAXAEAV12@@Z";
+    case 0x0512:
+      return "?swap@?$basic_iostream@DU?$char_traits@D@std@@@std@@IEAAXAEAV12@@Z";
+    case 0x0513:
+      return "?swap@?$basic_iostream@GU?$char_traits@G@std@@@std@@IEAAXAEAV12@@Z";
+    case 0x0514:
+      return "?swap@?$basic_iostream@_WU?$char_traits@_W@std@@@std@@IEAAXAEAV12@@"
+             "Z";
+    case 0x0515:
+      return "?swap@?$basic_istream@DU?$char_traits@D@std@@@std@@IEAAXAEAV12@@Z";
+    case 0x0516:
+      return "?swap@?$basic_istream@GU?$char_traits@G@std@@@std@@IEAAXAEAV12@@Z";
+    case 0x0517:
+      return "?swap@?$basic_istream@_WU?$char_traits@_W@std@@@std@@IEAAXAEAV12@@Z";
+    case 0x0518:
+      return "?swap@?$basic_ostream@DU?$char_traits@D@std@@@std@@IEAAXAEAV12@@Z";
+    case 0x0519:
+      return "?swap@?$basic_ostream@GU?$char_traits@G@std@@@std@@IEAAXAEAV12@@Z";
+    case 0x051a:
+      return "?swap@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@IEAAXAEAV12@@Z";
+    case 0x051b:
+      return "?swap@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXAEAV12@@Z";
+    case 0x051c:
+      return "?swap@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAXAEAV12@@Z";
+    case 0x051d:
+      return "?swap@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAXAEAV12@@"
+             "Z";
+    case 0x051e: return "?swap@ios_base@std@@QEAAXAEAV12@@Z";
+    case 0x051f:
+      return "?sync@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAHXZ";
+    case 0x0520:
+      return "?sync@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAHXZ";
+    case 0x0521:
+      return "?sync@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAHXZ";
+    case 0x0522:
+      return "?sync@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAAHXZ";
+    case 0x0523:
+      return "?sync@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAAHXZ";
+    case 0x0524:
+      return "?sync@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAAHXZ";
+    case 0x0525: return "?sync_with_stdio@ios_base@std@@SA_N_N@Z";
+    case 0x0526: return "?table@?$ctype@D@std@@QEBAPEBFXZ";
+    case 0x0527: return "?table_size@?$ctype@D@std@@2_KB";
+    case 0x0528:
+      return "?tellg@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAA?AV?$fpos@H@"
+             "2@XZ";
+    case 0x0529:
+      return "?tellg@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAA?AV?$fpos@H@"
+             "2@XZ";
+    case 0x052a:
+      return "?tellg@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAA?AV?$fpos@"
+             "H@2@XZ";
+    case 0x052b:
+      return "?tellp@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA?AV?$fpos@H@"
+             "2@XZ";
+    case 0x052c:
+      return "?tellp@?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAA?AV?$fpos@H@"
+             "2@XZ";
+    case 0x052d:
+      return "?tellp@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAA?AV?$fpos@"
+             "H@2@XZ";
+    case 0x052e:
+      return "?tie@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAPEAV?$basic_"
+             "ostream@DU?$char_traits@D@std@@@2@PEAV32@@Z";
+    case 0x052f:
+      return "?tie@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBAPEAV?$basic_"
+             "ostream@DU?$char_traits@D@std@@@2@XZ";
+    case 0x0530:
+      return "?tie@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAPEAV?$basic_"
+             "ostream@GU?$char_traits@G@std@@@2@PEAV32@@Z";
+    case 0x0531:
+      return "?tie@?$basic_ios@GU?$char_traits@G@std@@@std@@QEBAPEAV?$basic_"
+             "ostream@GU?$char_traits@G@std@@@2@XZ";
+    case 0x0532:
+      return "?tie@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAPEAV?$basic_"
+             "ostream@_WU?$char_traits@_W@std@@@2@PEAV32@@Z";
+    case 0x0533:
+      return "?tie@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEBAPEAV?$basic_"
+             "ostream@_WU?$char_traits@_W@std@@@2@XZ";
+    case 0x0534: return "?tolower@?$ctype@D@std@@QEBADD@Z";
+    case 0x0535: return "?tolower@?$ctype@D@std@@QEBAPEBDPEADPEBD@Z";
+    case 0x0536: return "?tolower@?$ctype@G@std@@QEBAGG@Z";
+    case 0x0537: return "?tolower@?$ctype@G@std@@QEBAPEBGPEAGPEBG@Z";
+    case 0x0538: return "?tolower@?$ctype@_W@std@@QEBAPEB_WPEA_WPEB_W@Z";
+    case 0x0539: return "?tolower@?$ctype@_W@std@@QEBA_W_W@Z";
+    case 0x053a: return "?toupper@?$ctype@D@std@@QEBADD@Z";
+    case 0x053b: return "?toupper@?$ctype@D@std@@QEBAPEBDPEADPEBD@Z";
+    case 0x053c: return "?toupper@?$ctype@G@std@@QEBAGG@Z";
+    case 0x053d: return "?toupper@?$ctype@G@std@@QEBAPEBGPEAGPEBG@Z";
+    case 0x053e: return "?toupper@?$ctype@_W@std@@QEBAPEB_WPEA_WPEB_W@Z";
+    case 0x053f: return "?toupper@?$ctype@_W@std@@QEBA_W_W@Z";
+    case 0x0540: return "?try_to_lock@std@@3Utry_to_lock_t@1@B";
+    case 0x0541:
+      return "?uflow@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAAHXZ";
+    case 0x0542:
+      return "?uflow@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAAGXZ";
+    case 0x0543:
+      return "?uflow@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAAGXZ";
+    case 0x0544: return "?uncaught_exception@std@@YA_NXZ";
+    case 0x0545:
+      return "?underflow@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAAHXZ";
+    case 0x0546:
+      return "?underflow@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAAGXZ";
+    case 0x0547:
+      return "?underflow@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAAGXZ";
+    case 0x0548:
+      return "?unget@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@XZ";
+    case 0x0549:
+      return "?unget@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@XZ";
+    case 0x054a:
+      return "?unget@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@XZ";
+    case 0x054b: return "?unsetf@ios_base@std@@QEAAXH@Z";
+    case 0x054c: return "?unshift@?$codecvt@DDH@std@@QEBAHAEAHPEAD1AEAPEAD@Z";
+    case 0x054d: return "?unshift@?$codecvt@GDH@std@@QEBAHAEAHPEAD1AEAPEAD@Z";
+    case 0x054e: return "?unshift@?$codecvt@_WDH@std@@QEBAHAEAHPEAD1AEAPEAD@Z";
+    case 0x054f: return "?wait@agent@Concurrency@@SA?AW4agent_status@2@PEAV12@I@Z";
+    case 0x0550:
+      return "?wait_for_all@agent@Concurrency@@SAX_KPEAPEAV12@PEAW4agent_status@2@"
+             "I@Z";
+    case 0x0551:
+      return "?wait_for_one@agent@Concurrency@@SAX_KPEAPEAV12@AEAW4agent_status@2@"
+             "AEA_KI@Z";
+    case 0x0552:
+      return "?wcerr@std@@3V?$basic_ostream@GU?$char_traits@G@std@@@1@A";
+    case 0x0553:
+      return "?wcerr@std@@3V?$basic_ostream@_WU?$char_traits@_W@std@@@1@A";
+    case 0x0554: return "?wcin@std@@3V?$basic_istream@GU?$char_traits@G@std@@@1@A";
+    case 0x0555:
+      return "?wcin@std@@3V?$basic_istream@_WU?$char_traits@_W@std@@@1@A";
+    case 0x0556:
+      return "?wclog@std@@3V?$basic_ostream@GU?$char_traits@G@std@@@1@A";
+    case 0x0557:
+      return "?wclog@std@@3V?$basic_ostream@_WU?$char_traits@_W@std@@@1@A";
+    case 0x0558:
+      return "?wcout@std@@3V?$basic_ostream@GU?$char_traits@G@std@@@1@A";
+    case 0x0559:
+      return "?wcout@std@@3V?$basic_ostream@_WU?$char_traits@_W@std@@@1@A";
+    case 0x055a: return "?widen@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBADD@Z";
+    case 0x055b: return "?widen@?$basic_ios@GU?$char_traits@G@std@@@std@@QEBAGD@Z";
+    case 0x055c:
+      return "?widen@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEBA_WD@Z";
+    case 0x055d: return "?widen@?$ctype@D@std@@QEBADD@Z";
+    case 0x055e: return "?widen@?$ctype@D@std@@QEBAPEBDPEBD0PEAD@Z";
+    case 0x055f: return "?widen@?$ctype@G@std@@QEBAGD@Z";
+    case 0x0560: return "?widen@?$ctype@G@std@@QEBAPEBDPEBD0PEAG@Z";
+    case 0x0561: return "?widen@?$ctype@_W@std@@QEBAPEBDPEBD0PEA_W@Z";
+    case 0x0562: return "?widen@?$ctype@_W@std@@QEBA_WD@Z";
+    case 0x0563: return "?width@ios_base@std@@QEAA_J_J@Z";
+    case 0x0564: return "?width@ios_base@std@@QEBA_JXZ";
+    case 0x0565:
+      return "?write@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@PEBD_"
+             "J@Z";
+    case 0x0566:
+      return "?write@?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@PEBG_"
+             "J@Z";
+    case 0x0567:
+      return "?write@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@"
+             "PEB_W_J@Z";
+    case 0x0568:
+      return "?ws@std@@YAAEAV?$basic_istream@DU?$char_traits@D@std@@@1@AEAV21@@Z";
+    case 0x0569:
+      return "?ws@std@@YAAEAV?$basic_istream@GU?$char_traits@G@std@@@1@AEAV21@@Z";
+    case 0x056a:
+      return "?ws@std@@YAAEAV?$basic_istream@_WU?$char_traits@_W@std@@@1@AEAV21@@"
+             "Z";
+    case 0x056b: return "?xalloc@ios_base@std@@SAHXZ";
+    case 0x056c:
+      return "?xsgetn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAA_JPEAD_J@"
+             "Z";
+    case 0x056d:
+      return "?xsgetn@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAA_JPEAG_J@"
+             "Z";
+    case 0x056e:
+      return "?xsgetn@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAA_JPEA_"
+             "W_J@Z";
+    case 0x056f:
+      return "?xsputn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAA_JPEBD_J@"
+             "Z";
+    case 0x0570:
+      return "?xsputn@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAA_JPEBG_J@"
+             "Z";
+    case 0x0571:
+      return "?xsputn@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAA_JPEB_"
+             "W_J@Z";
+    case 0x0572: return "_Call_once";
+    case 0x0573: return "_Call_onceEx";
+    case 0x0574: return "_Cnd_broadcast";
+    case 0x0575: return "_Cnd_destroy";
+    case 0x0576: return "_Cnd_do_broadcast_at_thread_exit";
+    case 0x0577: return "_Cnd_init";
+    case 0x0578: return "_Cnd_register_at_thread_exit";
+    case 0x0579: return "_Cnd_signal";
+    case 0x057a: return "_Cnd_timedwait";
+    case 0x057b: return "_Cnd_unregister_at_thread_exit";
+    case 0x057c: return "_Cnd_wait";
+    case 0x057d: return "_Cosh";
+    case 0x057e: return "_Denorm";
+    case 0x057f: return "_Dint";
+    case 0x0580: return "_Dnorm";
+    case 0x0581: return "_Do_call";
+    case 0x0582: return "_Dscale";
+    case 0x0583: return "_Dtento";
+    case 0x0584: return "_Dtest";
+    case 0x0585: return "_Dunscale";
+    case 0x0586: return "_Eps";
+    case 0x0587: return "_Exp";
+    case 0x0588: return "_FCosh";
+    case 0x0589: return "_FDenorm";
+    case 0x058a: return "_FDint";
+    case 0x058b: return "_FDnorm";
+    case 0x058c: return "_FDscale";
+    case 0x058d: return "_FDtento";
+    case 0x058e: return "_FDtest";
+    case 0x058f: return "_FDunscale";
+    case 0x0590: return "_FEps";
+    case 0x0591: return "_FExp";
+    case 0x0592: return "_FInf";
+    case 0x0593: return "_FNan";
+    case 0x0594: return "_FPlsw";
+    case 0x0595: return "_FPmsw";
+    case 0x0596: return "_FRteps";
+    case 0x0597: return "_FSinh";
+    case 0x0598: return "_FSnan";
+    case 0x0599: return "_FXbig";
+    case 0x059a: return "_FXp_addh";
+    case 0x059b: return "_FXp_addx";
+    case 0x059c: return "_FXp_getw";
+    case 0x059d: return "_FXp_invx";
+    case 0x059e: return "_FXp_ldexpx";
+    case 0x059f: return "_FXp_movx";
+    case 0x05a0: return "_FXp_mulh";
+    case 0x05a1: return "_FXp_mulx";
+    case 0x05a2: return "_FXp_setn";
+    case 0x05a3: return "_FXp_setw";
+    case 0x05a4: return "_FXp_sqrtx";
+    case 0x05a5: return "_FXp_subx";
+    case 0x05a6: return "_FZero";
+    case 0x05a7: return "_Getcoll";
+    case 0x05a8: return "_Getctype";
+    case 0x05a9: return "_Getcvt";
+    case 0x05aa: return "_Getdateorder";
+    case 0x05ab: return "_Getwctype";
+    case 0x05ac: return "_Getwctypes";
+    case 0x05ad: return "_Hugeval";
+    case 0x05ae: return "_Inf";
+    case 0x05af: return "_LCosh";
+    case 0x05b0: return "_LDenorm";
+    case 0x05b1: return "_LDint";
+    case 0x05b2: return "_LDscale";
+    case 0x05b3: return "_LDtento";
+    case 0x05b4: return "_LDtest";
+    case 0x05b5: return "_LDunscale";
+    case 0x05b6: return "_LEps";
+    case 0x05b7: return "_LExp";
+    case 0x05b8: return "_LInf";
+    case 0x05b9: return "_LNan";
+    case 0x05ba: return "_LPlsw";
+    case 0x05bb: return "_LPmsw";
+    case 0x05bc: return "_LPoly";
+    case 0x05bd: return "_LRteps";
+    case 0x05be: return "_LSinh";
+    case 0x05bf: return "_LSnan";
+    case 0x05c0: return "_LXbig";
+    case 0x05c1: return "_LXp_addh";
+    case 0x05c2: return "_LXp_addx";
+    case 0x05c3: return "_LXp_getw";
+    case 0x05c4: return "_LXp_invx";
+    case 0x05c5: return "_LXp_ldexpx";
+    case 0x05c6: return "_LXp_movx";
+    case 0x05c7: return "_LXp_mulh";
+    case 0x05c8: return "_LXp_mulx";
+    case 0x05c9: return "_LXp_setn";
+    case 0x05ca: return "_LXp_setw";
+    case 0x05cb: return "_LXp_sqrtx";
+    case 0x05cc: return "_LXp_subx";
+    case 0x05cd: return "_LZero";
+    case 0x05ce: return "_Lock_shared_ptr_spin_lock";
+    case 0x05cf: return "_Mbrtowc";
+    case 0x05d0: return "_Mtx_clear_owner";
+    case 0x05d1: return "_Mtx_current_owns";
+    case 0x05d2: return "_Mtx_destroy";
+    case 0x05d3: return "_Mtx_getconcrtcs";
+    case 0x05d4: return "_Mtx_init";
+    case 0x05d5: return "_Mtx_lock";
+    case 0x05d6: return "_Mtx_reset_owner";
+    case 0x05d7: return "_Mtx_timedlock";
+    case 0x05d8: return "_Mtx_trylock";
+    case 0x05d9: return "_Mtx_unlock";
+    case 0x05da: return "_Mtxdst";
+    case 0x05db: return "_Mtxinit";
+    case 0x05dc: return "_Mtxlock";
+    case 0x05dd: return "_Mtxunlock";
+    case 0x05de: return "_Nan";
+    case 0x05df: return "_Once";
+    case 0x05e0: return "_Plsw";
+    case 0x05e1: return "_Pmsw";
+    case 0x05e2: return "_Poly";
+    case 0x05e3: return "_Rteps";
+    case 0x05e4: return "_Sinh";
+    case 0x05e5: return "_Snan";
+    case 0x05e6: return "_Stod";
+    case 0x05e7: return "_Stodx";
+    case 0x05e8: return "_Stof";
+    case 0x05e9: return "_Stoflt";
+    case 0x05ea: return "_Stofx";
+    case 0x05eb: return "_Stold";
+    case 0x05ec: return "_Stoldx";
+    case 0x05ed: return "_Stoll";
+    case 0x05ee: return "_Stollx";
+    case 0x05ef: return "_Stolx";
+    case 0x05f0: return "_Stopfx";
+    case 0x05f1: return "_Stoul";
+    case 0x05f2: return "_Stoull";
+    case 0x05f3: return "_Stoullx";
+    case 0x05f4: return "_Stoulx";
+    case 0x05f5: return "_Stoxflt";
+    case 0x05f6: return "_Strcoll";
+    case 0x05f7: return "_Strxfrm";
+    case 0x05f8: return "_Thrd_abort";
+    case 0x05f9: return "_Thrd_create";
+    case 0x05fa: return "_Thrd_current";
+    case 0x05fb: return "_Thrd_detach";
+    case 0x05fc: return "_Thrd_equal";
+    case 0x05fd: return "_Thrd_exit";
+    case 0x05fe: return "_Thrd_join";
+    case 0x05ff: return "_Thrd_lt";
+    case 0x0600: return "_Thrd_sleep";
+    case 0x0601: return "_Thrd_start";
+    case 0x0602: return "_Thrd_yield";
+    case 0x0603: return "_Tolower";
+    case 0x0604: return "_Toupper";
+    case 0x0605: return "_Towlower";
+    case 0x0606: return "_Towupper";
+    case 0x0607: return "_Tss_create";
+    case 0x0608: return "_Tss_delete";
+    case 0x0609: return "_Tss_get";
+    case 0x060a: return "_Tss_set";
+    case 0x060b: return "_Unlock_shared_ptr_spin_lock";
+    case 0x060c: return "_Wcrtomb";
+    case 0x060d: return "_Wcscoll";
+    case 0x060e: return "_Wcsxfrm";
+    case 0x060f: return "_Xbig";
+    case 0x0610: return "_Xp_addh";
+    case 0x0611: return "_Xp_addx";
+    case 0x0612: return "_Xp_getw";
+    case 0x0613: return "_Xp_invx";
+    case 0x0614: return "_Xp_ldexpx";
+    case 0x0615: return "_Xp_movx";
+    case 0x0616: return "_Xp_mulh";
+    case 0x0617: return "_Xp_mulx";
+    case 0x0618: return "_Xp_setn";
+    case 0x0619: return "_Xp_setw";
+    case 0x061a: return "_Xp_sqrtx";
+    case 0x061b: return "_Xp_subx";
+    case 0x061c: return "_Xtime_diff_to_millis";
+    case 0x061d: return "_Xtime_diff_to_millis2";
+    case 0x061e: return "_Xtime_get_ticks";
+    case 0x061f: return "_Zero";
+    case 0x0620: return "__Wcrtomb_lk";
+    case 0x0621: return "xtime_get";
   }
   return nullptr;
 }


-}
 }

-#endif

+#endif
diff --git a/deps/LIEF/src/PE/utils/ordinals_lookup_tables/msvcr100_dll_lookup.hpp b/deps/LIEF/src/PE/utils/ordinals_lookup_tables/msvcr100_dll_lookup.hpp
index d4e0c0aa1f3..d177334e4bb 100644
--- a/deps/LIEF/src/PE/utils/ordinals_lookup_tables/msvcr100_dll_lookup.hpp
+++ b/deps/LIEF/src/PE/utils/ordinals_lookup_tables/msvcr100_dll_lookup.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -17,1639 +17,1720 @@
 #define LIEF_PE_MSVCR100_DLL_LOOKUP_H
 #include <cstdint>

-namespace LIEF {
-namespace PE {
+
+namespace LIEF::PE {

 inline const char* msvcr100_dll_lookup(uint32_t i) {
-  switch(i) {
-  case 0x010f: return "$I10_OUTPUT";
-  case 0x0001: return "??0?$_SpinWait@$00@details@Concurrency@@QAE@P6AXXZ@Z";
-  case 0x0002: return "??0?$_SpinWait@$0A@@details@Concurrency@@QAE@P6AXXZ@Z";
-  case 0x0003: return "??0SchedulerPolicy@Concurrency@@QAA@IZZ";
-  case 0x0004: return "??0SchedulerPolicy@Concurrency@@QAE@ABV01@@Z";
-  case 0x0005: return "??0SchedulerPolicy@Concurrency@@QAE@XZ";
-  case 0x0006: return "??0_NonReentrantBlockingLock@details@Concurrency@@QAE@XZ";
-  case 0x0007: return "??0_NonReentrantPPLLock@details@Concurrency@@QAE@XZ";
-  case 0x0008: return "??0_ReaderWriterLock@details@Concurrency@@QAE@XZ";
-  case 0x0009: return "??0_ReentrantBlockingLock@details@Concurrency@@QAE@XZ";
-  case 0x000a: return "??0_ReentrantLock@details@Concurrency@@QAE@XZ";
-  case 0x000b: return "??0_ReentrantPPLLock@details@Concurrency@@QAE@XZ";
-  case 0x000c: return "??0_Scoped_lock@_NonReentrantPPLLock@details@Concurrency@@QAE@AAV123@@Z";
-  case 0x000d: return "??0_Scoped_lock@_ReentrantPPLLock@details@Concurrency@@QAE@AAV123@@Z";
-  case 0x000e: return "??0_SpinLock@details@Concurrency@@QAE@ACJ@Z";
-  case 0x000f: return "??0_TaskCollection@details@Concurrency@@QAE@XZ";
-  case 0x0010: return "??0_Timer@details@Concurrency@@IAE@I_N@Z";
-  case 0x0011: return "??0__non_rtti_object@std@@QAE@ABV01@@Z";
-  case 0x0012: return "??0__non_rtti_object@std@@QAE@PBD@Z";
-  case 0x0013: return "??0bad_cast@std@@AAE@PBQBD@Z";
-  case 0x0014: return "??0bad_cast@std@@QAE@ABV01@@Z";
-  case 0x0015: return "??0bad_cast@std@@QAE@PBD@Z";
-  case 0x0016: return "??0bad_target@Concurrency@@QAE@PBD@Z";
-  case 0x0017: return "??0bad_target@Concurrency@@QAE@XZ";
-  case 0x0018: return "??0bad_typeid@std@@QAE@ABV01@@Z";
-  case 0x0019: return "??0bad_typeid@std@@QAE@PBD@Z";
-  case 0x001a: return "??0context_self_unblock@Concurrency@@QAE@PBD@Z";
-  case 0x001b: return "??0context_self_unblock@Concurrency@@QAE@XZ";
-  case 0x001c: return "??0context_unblock_unbalanced@Concurrency@@QAE@PBD@Z";
-  case 0x001d: return "??0context_unblock_unbalanced@Concurrency@@QAE@XZ";
-  case 0x001e: return "??0critical_section@Concurrency@@QAE@XZ";
-  case 0x001f: return "??0default_scheduler_exists@Concurrency@@QAE@PBD@Z";
-  case 0x0020: return "??0default_scheduler_exists@Concurrency@@QAE@XZ";
-  case 0x0021: return "??0event@Concurrency@@QAE@XZ";
-  case 0x0022: return "??0exception@std@@QAE@ABQBD@Z";
-  case 0x0023: return "??0exception@std@@QAE@ABQBDH@Z";
-  case 0x0024: return "??0exception@std@@QAE@ABV01@@Z";
-  case 0x0025: return "??0exception@std@@QAE@XZ";
-  case 0x0026: return "??0improper_lock@Concurrency@@QAE@PBD@Z";
-  case 0x0027: return "??0improper_lock@Concurrency@@QAE@XZ";
-  case 0x0028: return "??0improper_scheduler_attach@Concurrency@@QAE@PBD@Z";
-  case 0x0029: return "??0improper_scheduler_attach@Concurrency@@QAE@XZ";
-  case 0x002a: return "??0improper_scheduler_detach@Concurrency@@QAE@PBD@Z";
-  case 0x002b: return "??0improper_scheduler_detach@Concurrency@@QAE@XZ";
-  case 0x002c: return "??0improper_scheduler_reference@Concurrency@@QAE@PBD@Z";
-  case 0x002d: return "??0improper_scheduler_reference@Concurrency@@QAE@XZ";
-  case 0x002e: return "??0invalid_link_target@Concurrency@@QAE@PBD@Z";
-  case 0x002f: return "??0invalid_link_target@Concurrency@@QAE@XZ";
-  case 0x0030: return "??0invalid_multiple_scheduling@Concurrency@@QAE@PBD@Z";
-  case 0x0031: return "??0invalid_multiple_scheduling@Concurrency@@QAE@XZ";
-  case 0x0032: return "??0invalid_operation@Concurrency@@QAE@PBD@Z";
-  case 0x0033: return "??0invalid_operation@Concurrency@@QAE@XZ";
-  case 0x0034: return "??0invalid_oversubscribe_operation@Concurrency@@QAE@PBD@Z";
-  case 0x0035: return "??0invalid_oversubscribe_operation@Concurrency@@QAE@XZ";
-  case 0x0036: return "??0invalid_scheduler_policy_key@Concurrency@@QAE@PBD@Z";
-  case 0x0037: return "??0invalid_scheduler_policy_key@Concurrency@@QAE@XZ";
-  case 0x0038: return "??0invalid_scheduler_policy_thread_specification@Concurrency@@QAE@PBD@Z";
-  case 0x0039: return "??0invalid_scheduler_policy_thread_specification@Concurrency@@QAE@XZ";
-  case 0x003a: return "??0invalid_scheduler_policy_value@Concurrency@@QAE@PBD@Z";
-  case 0x003b: return "??0invalid_scheduler_policy_value@Concurrency@@QAE@XZ";
-  case 0x003c: return "??0message_not_found@Concurrency@@QAE@PBD@Z";
-  case 0x003d: return "??0message_not_found@Concurrency@@QAE@XZ";
-  case 0x003e: return "??0missing_wait@Concurrency@@QAE@PBD@Z";
-  case 0x003f: return "??0missing_wait@Concurrency@@QAE@XZ";
-  case 0x0040: return "??0nested_scheduler_missing_detach@Concurrency@@QAE@PBD@Z";
-  case 0x0041: return "??0nested_scheduler_missing_detach@Concurrency@@QAE@XZ";
-  case 0x0042: return "??0operation_timed_out@Concurrency@@QAE@PBD@Z";
-  case 0x0043: return "??0operation_timed_out@Concurrency@@QAE@XZ";
-  case 0x0044: return "??0reader_writer_lock@Concurrency@@QAE@XZ";
-  case 0x0045: return "??0scheduler_not_attached@Concurrency@@QAE@PBD@Z";
-  case 0x0046: return "??0scheduler_not_attached@Concurrency@@QAE@XZ";
-  case 0x0047: return "??0scheduler_resource_allocation_error@Concurrency@@QAE@J@Z";
-  case 0x0048: return "??0scheduler_resource_allocation_error@Concurrency@@QAE@PBDJ@Z";
-  case 0x0049: return "??0scoped_lock@critical_section@Concurrency@@QAE@AAV12@@Z";
-  case 0x004a: return "??0scoped_lock@reader_writer_lock@Concurrency@@QAE@AAV12@@Z";
-  case 0x004b: return "??0scoped_lock_read@reader_writer_lock@Concurrency@@QAE@AAV12@@Z";
-  case 0x004c: return "??0task_canceled@details@Concurrency@@QAE@PBD@Z";
-  case 0x004d: return "??0task_canceled@details@Concurrency@@QAE@XZ";
-  case 0x004e: return "??0unsupported_os@Concurrency@@QAE@PBD@Z";
-  case 0x004f: return "??0unsupported_os@Concurrency@@QAE@XZ";
-  case 0x0050: return "??1SchedulerPolicy@Concurrency@@QAE@XZ";
-  case 0x0051: return "??1_NonReentrantBlockingLock@details@Concurrency@@QAE@XZ";
-  case 0x0052: return "??1_ReentrantBlockingLock@details@Concurrency@@QAE@XZ";
-  case 0x0053: return "??1_Scoped_lock@_NonReentrantPPLLock@details@Concurrency@@QAE@XZ";
-  case 0x0054: return "??1_Scoped_lock@_ReentrantPPLLock@details@Concurrency@@QAE@XZ";
-  case 0x0055: return "??1_SpinLock@details@Concurrency@@QAE@XZ";
-  case 0x0056: return "??1_TaskCollection@details@Concurrency@@QAE@XZ";
-  case 0x0057: return "??1_Timer@details@Concurrency@@IAE@XZ";
-  case 0x0058: return "??1__non_rtti_object@std@@UAE@XZ";
-  case 0x0059: return "??1bad_cast@std@@UAE@XZ";
-  case 0x005a: return "??1bad_typeid@std@@UAE@XZ";
-  case 0x005b: return "??1critical_section@Concurrency@@QAE@XZ";
-  case 0x005c: return "??1event@Concurrency@@QAE@XZ";
-  case 0x005d: return "??1exception@std@@UAE@XZ";
-  case 0x005e: return "??1reader_writer_lock@Concurrency@@QAE@XZ";
-  case 0x005f: return "??1scoped_lock@critical_section@Concurrency@@QAE@XZ";
-  case 0x0060: return "??1scoped_lock@reader_writer_lock@Concurrency@@QAE@XZ";
-  case 0x0061: return "??1scoped_lock_read@reader_writer_lock@Concurrency@@QAE@XZ";
-  case 0x0062: return "??1type_info@@UAE@XZ";
-  case 0x0063: return "??2@YAPAXI@Z";
-  case 0x0064: return "??2@YAPAXIHPBDH@Z";
-  case 0x0065: return "??3@YAXPAX@Z";
-  case 0x0066: return "??4?$_SpinWait@$00@details@Concurrency@@QAEAAV012@ABV012@@Z";
-  case 0x0067: return "??4?$_SpinWait@$0A@@details@Concurrency@@QAEAAV012@ABV012@@Z";
-  case 0x0068: return "??4SchedulerPolicy@Concurrency@@QAEAAV01@ABV01@@Z";
-  case 0x0069: return "??4__non_rtti_object@std@@QAEAAV01@ABV01@@Z";
-  case 0x006a: return "??4bad_cast@std@@QAEAAV01@ABV01@@Z";
-  case 0x006b: return "??4bad_typeid@std@@QAEAAV01@ABV01@@Z";
-  case 0x006c: return "??4exception@std@@QAEAAV01@ABV01@@Z";
-  case 0x006d: return "??8type_info@@QBE_NABV0@@Z";
-  case 0x006e: return "??9type_info@@QBE_NABV0@@Z";
-  case 0x006f: return "??_7__non_rtti_object@std@@6B@";
-  case 0x0070: return "??_7bad_cast@std@@6B@";
-  case 0x0071: return "??_7bad_typeid@std@@6B@";
-  case 0x0072: return "??_7exception@@6B@";
-  case 0x0073: return "??_7exception@std@@6B@";
-  case 0x0074: return "??_F?$_SpinWait@$00@details@Concurrency@@QAEXXZ";
-  case 0x0075: return "??_F?$_SpinWait@$0A@@details@Concurrency@@QAEXXZ";
-  case 0x0076: return "??_Fbad_cast@std@@QAEXXZ";
-  case 0x0077: return "??_Fbad_typeid@std@@QAEXXZ";
-  case 0x0078: return "??_U@YAPAXI@Z";
-  case 0x0079: return "??_U@YAPAXIHPBDH@Z";
-  case 0x007a: return "??_V@YAXPAX@Z";
-  case 0x007b: return "?Alloc@Concurrency@@YAPAXI@Z";
-  case 0x007c: return "?Block@Context@Concurrency@@SAXXZ";
-  case 0x007d: return "?Create@CurrentScheduler@Concurrency@@SAXABVSchedulerPolicy@2@@Z";
-  case 0x007e: return "?Create@Scheduler@Concurrency@@SAPAV12@ABVSchedulerPolicy@2@@Z";
-  case 0x007f: return "?CreateResourceManager@Concurrency@@YAPAUIResourceManager@1@XZ";
-  case 0x0080: return "?CreateScheduleGroup@CurrentScheduler@Concurrency@@SAPAVScheduleGroup@2@XZ";
-  case 0x0081: return "?CurrentContext@Context@Concurrency@@SAPAV12@XZ";
-  case 0x0082: return "?Detach@CurrentScheduler@Concurrency@@SAXXZ";
-  case 0x0083: return "?DisableTracing@Concurrency@@YAJXZ";
-  case 0x0084: return "?EnableTracing@Concurrency@@YAJXZ";
-  case 0x0085: return "?Free@Concurrency@@YAXPAX@Z";
-  case 0x0086: return "?Get@CurrentScheduler@Concurrency@@SAPAVScheduler@2@XZ";
-  case 0x0087: return "?GetExecutionContextId@Concurrency@@YAIXZ";
-  case 0x0088: return "?GetNumberOfVirtualProcessors@CurrentScheduler@Concurrency@@SAIXZ";
-  case 0x0089: return "?GetOSVersion@Concurrency@@YA?AW4OSVersion@IResourceManager@1@XZ";
-  case 0x008a: return "?GetPolicy@CurrentScheduler@Concurrency@@SA?AVSchedulerPolicy@2@XZ";
-  case 0x008b: return "?GetPolicyValue@SchedulerPolicy@Concurrency@@QBEIW4PolicyElementKey@2@@Z";
-  case 0x008c: return "?GetProcessorCount@Concurrency@@YAIXZ";
-  case 0x008d: return "?GetProcessorNodeCount@Concurrency@@YAIXZ";
-  case 0x008e: return "?GetSchedulerId@Concurrency@@YAIXZ";
-  case 0x008f: return "?GetSharedTimerQueue@details@Concurrency@@YAPAXXZ";
-  case 0x0090: return "?Id@Context@Concurrency@@SAIXZ";
-  case 0x0091: return "?Id@CurrentScheduler@Concurrency@@SAIXZ";
-  case 0x0092: return "?IsCurrentTaskCollectionCanceling@Context@Concurrency@@SA_NXZ";
-  case 0x0093: return "?Log2@details@Concurrency@@YAKI@Z";
-  case 0x0094: return "?Oversubscribe@Context@Concurrency@@SAX_N@Z";
-  case 0x0095: return "?RegisterShutdownEvent@CurrentScheduler@Concurrency@@SAXPAX@Z";
-  case 0x0096: return "?ResetDefaultSchedulerPolicy@Scheduler@Concurrency@@SAXXZ";
-  case 0x0097: return "?ScheduleGroupId@Context@Concurrency@@SAIXZ";
-  case 0x0098: return "?ScheduleTask@CurrentScheduler@Concurrency@@SAXP6AXPAX@Z0@Z";
-  case 0x0099: return "?SetConcurrencyLimits@SchedulerPolicy@Concurrency@@QAEXII@Z";
-  case 0x009a: return "?SetDefaultSchedulerPolicy@Scheduler@Concurrency@@SAXABVSchedulerPolicy@2@@Z";
-  case 0x009b: return "?SetPolicyValue@SchedulerPolicy@Concurrency@@QAEIW4PolicyElementKey@2@I@Z";
-  case 0x009c: return "?VirtualProcessorId@Context@Concurrency@@SAIXZ";
-  case 0x009d: return "?Yield@Context@Concurrency@@SAXXZ";
-  case 0x009e: return "?_Abort@_StructuredTaskCollection@details@Concurrency@@AAEXXZ";
-  case 0x009f: return "?_Acquire@_NonReentrantBlockingLock@details@Concurrency@@QAEXXZ";
-  case 0x00a0: return "?_Acquire@_NonReentrantPPLLock@details@Concurrency@@QAEXPAX@Z";
-  case 0x00a1: return "?_Acquire@_ReentrantBlockingLock@details@Concurrency@@QAEXXZ";
-  case 0x00a2: return "?_Acquire@_ReentrantLock@details@Concurrency@@QAEXXZ";
-  case 0x00a3: return "?_Acquire@_ReentrantPPLLock@details@Concurrency@@QAEXPAX@Z";
-  case 0x00a4: return "?_AcquireRead@_ReaderWriterLock@details@Concurrency@@QAEXXZ";
-  case 0x00a5: return "?_AcquireWrite@_ReaderWriterLock@details@Concurrency@@QAEXXZ";
-  case 0x00a6: return "?_Cancel@_StructuredTaskCollection@details@Concurrency@@QAEXXZ";
-  case 0x00a7: return "?_Cancel@_TaskCollection@details@Concurrency@@QAEXXZ";
-  case 0x00a8: return "?_CheckTaskCollection@_UnrealizedChore@details@Concurrency@@IAEXXZ";
-  case 0x00a9: return "?_ConcRT_Assert@details@Concurrency@@YAXPBD0H@Z";
-  case 0x00aa: return "?_ConcRT_CoreAssert@details@Concurrency@@YAXPBD0H@Z";
-  case 0x00ab: return "?_ConcRT_DumpMessage@details@Concurrency@@YAXPB_WZZ";
-  case 0x00ac: return "?_ConcRT_Trace@details@Concurrency@@YAXHPB_WZZ";
-  case 0x00ad: return "?_Copy_str@exception@std@@AAEXPBD@Z";
-  case 0x00ae: return "?_DoYield@?$_SpinWait@$00@details@Concurrency@@IAEXXZ";
-  case 0x00af: return "?_DoYield@?$_SpinWait@$0A@@details@Concurrency@@IAEXXZ";
-  case 0x00b0: return "?_IsCanceling@_StructuredTaskCollection@details@Concurrency@@QAE_NXZ";
-  case 0x00b1: return "?_IsCanceling@_TaskCollection@details@Concurrency@@QAE_NXZ";
-  case 0x00b2: return "?_Name_base@type_info@@CAPBDPBV1@PAU__type_info_node@@@Z";
-  case 0x00b3: return "?_Name_base_internal@type_info@@CAPBDPBV1@PAU__type_info_node@@@Z";
-  case 0x00b4: return "?_NumberOfSpins@?$_SpinWait@$00@details@Concurrency@@IAEKXZ";
-  case 0x00b5: return "?_NumberOfSpins@?$_SpinWait@$0A@@details@Concurrency@@IAEKXZ";
-  case 0x00b6: return "?_Release@_NonReentrantBlockingLock@details@Concurrency@@QAEXXZ";
-  case 0x00b7: return "?_Release@_NonReentrantPPLLock@details@Concurrency@@QAEXXZ";
-  case 0x00b8: return "?_Release@_ReentrantBlockingLock@details@Concurrency@@QAEXXZ";
-  case 0x00b9: return "?_Release@_ReentrantLock@details@Concurrency@@QAEXXZ";
-  case 0x00ba: return "?_Release@_ReentrantPPLLock@details@Concurrency@@QAEXXZ";
-  case 0x00bb: return "?_ReleaseRead@_ReaderWriterLock@details@Concurrency@@QAEXXZ";
-  case 0x00bc: return "?_ReleaseWrite@_ReaderWriterLock@details@Concurrency@@QAEXXZ";
-  case 0x00bd: return "?_Reset@?$_SpinWait@$00@details@Concurrency@@IAEXXZ";
-  case 0x00be: return "?_Reset@?$_SpinWait@$0A@@details@Concurrency@@IAEXXZ";
-  case 0x00bf: return "?_RunAndWait@_StructuredTaskCollection@details@Concurrency@@QAG?AW4_TaskCollectionStatus@23@PAV_UnrealizedChore@23@@Z";
-  case 0x00c0: return "?_RunAndWait@_TaskCollection@details@Concurrency@@QAG?AW4_TaskCollectionStatus@23@PAV_UnrealizedChore@23@@Z";
-  case 0x00c1: return "?_Schedule@_StructuredTaskCollection@details@Concurrency@@QAEXPAV_UnrealizedChore@23@@Z";
-  case 0x00c2: return "?_Schedule@_TaskCollection@details@Concurrency@@QAEXPAV_UnrealizedChore@23@@Z";
-  case 0x00c3: return "?_SetSpinCount@?$_SpinWait@$00@details@Concurrency@@QAEXI@Z";
-  case 0x00c4: return "?_SetSpinCount@?$_SpinWait@$0A@@details@Concurrency@@QAEXI@Z";
-  case 0x00c5: return "?_ShouldSpinAgain@?$_SpinWait@$00@details@Concurrency@@IAE_NXZ";
-  case 0x00c6: return "?_ShouldSpinAgain@?$_SpinWait@$0A@@details@Concurrency@@IAE_NXZ";
-  case 0x00c7: return "?_SpinOnce@?$_SpinWait@$00@details@Concurrency@@QAE_NXZ";
-  case 0x00c8: return "?_SpinOnce@?$_SpinWait@$0A@@details@Concurrency@@QAE_NXZ";
-  case 0x00c9: return "?_SpinYield@Context@Concurrency@@SAXXZ";
-  case 0x00ca: return "?_Start@_Timer@details@Concurrency@@IAEXXZ";
-  case 0x00cb: return "?_Stop@_Timer@details@Concurrency@@IAEXXZ";
-  case 0x00cc: return "?_Tidy@exception@std@@AAEXXZ";
-  case 0x00cd: return "?_Trace_ppl_function@Concurrency@@YAXABU_GUID@@EW4ConcRT_EventType@1@@Z";
-  case 0x00ce: return "?_TryAcquire@_NonReentrantBlockingLock@details@Concurrency@@QAE_NXZ";
-  case 0x00cf: return "?_TryAcquire@_ReentrantBlockingLock@details@Concurrency@@QAE_NXZ";
-  case 0x00d0: return "?_TryAcquire@_ReentrantLock@details@Concurrency@@QAE_NXZ";
-  case 0x00d1: return "?_TryAcquireWrite@_ReaderWriterLock@details@Concurrency@@QAE_NXZ";
-  case 0x00d2: return "?_Type_info_dtor@type_info@@CAXPAV1@@Z";
-  case 0x00d3: return "?_Type_info_dtor_internal@type_info@@CAXPAV1@@Z";
-  case 0x00d4: return "?_UnderlyingYield@details@Concurrency@@YAXXZ";
-  case 0x00d5: return "?_ValidateExecute@@YAHP6GHXZ@Z";
-  case 0x00d6: return "?_ValidateRead@@YAHPBXI@Z";
-  case 0x00d7: return "?_ValidateWrite@@YAHPAXI@Z";
-  case 0x00d8: return "?_Value@_SpinCount@details@Concurrency@@SAIXZ";
-  case 0x00d9: return "?__ExceptionPtrAssign@@YAXPAXPBX@Z";
-  case 0x00da: return "?__ExceptionPtrCompare@@YA_NPBX0@Z";
-  case 0x00db: return "?__ExceptionPtrCopy@@YAXPAXPBX@Z";
-  case 0x00dc: return "?__ExceptionPtrCopyException@@YAXPAXPBX1@Z";
-  case 0x00dd: return "?__ExceptionPtrCreate@@YAXPAX@Z";
-  case 0x00de: return "?__ExceptionPtrCurrentException@@YAXPAX@Z";
-  case 0x00df: return "?__ExceptionPtrDestroy@@YAXPAX@Z";
-  case 0x00e0: return "?__ExceptionPtrRethrow@@YAXPBX@Z";
-  case 0x00e2: return "?_inconsistency@@YAXXZ";
-  case 0x00e3: return "?_invalid_parameter@@YAXPBG00II@Z";
-  case 0x00e4: return "?_is_exception_typeof@@YAHABVtype_info@@PAU_EXCEPTION_POINTERS@@@Z";
-  case 0x00e5: return "?_name_internal_method@type_info@@QBEPBDPAU__type_info_node@@@Z";
-  case 0x00e6: return "?_open@@YAHPBDHH@Z";
-  case 0x00e7: return "?_query_new_handler@@YAP6AHI@ZXZ";
-  case 0x00e8: return "?_query_new_mode@@YAHXZ";
-  case 0x00e9: return "?_set_new_handler@@YAP6AHI@ZH@Z";
-  case 0x00ea: return "?_set_new_handler@@YAP6AHI@ZP6AHI@Z@Z";
-  case 0x00eb: return "?_set_new_mode@@YAHH@Z";
-  case 0x00ec: return "?_set_se_translator@@YAP6AXIPAU_EXCEPTION_POINTERS@@@ZH@Z";
-  case 0x00ed: return "?_set_se_translator@@YAP6AXIPAU_EXCEPTION_POINTERS@@@ZP6AXI0@Z@Z";
-  case 0x00ee: return "?_sopen@@YAHPBDHHH@Z";
-  case 0x00ef: return "?_type_info_dtor_internal_method@type_info@@QAEXXZ";
-  case 0x00f0: return "?_wopen@@YAHPB_WHH@Z";
-  case 0x00f1: return "?_wsopen@@YAHPB_WHHH@Z";
-  case 0x00f2: return "?before@type_info@@QBEHABV1@@Z";
-  case 0x00f3: return "?get_error_code@scheduler_resource_allocation_error@Concurrency@@QBEJXZ";
-  case 0x00f4: return "?lock@critical_section@Concurrency@@QAEXXZ";
-  case 0x00f5: return "?lock@reader_writer_lock@Concurrency@@QAEXXZ";
-  case 0x00f6: return "?lock_read@reader_writer_lock@Concurrency@@QAEXXZ";
-  case 0x00f7: return "?name@type_info@@QBEPBDPAU__type_info_node@@@Z";
-  case 0x00f8: return "?native_handle@critical_section@Concurrency@@QAEAAV12@XZ";
-  case 0x00f9: return "?raw_name@type_info@@QBEPBDXZ";
-  case 0x00fa: return "?reset@event@Concurrency@@QAEXXZ";
-  case 0x00fb: return "?set@event@Concurrency@@QAEXXZ";
-  case 0x00fc: return "?set_new_handler@@YAP6AXXZP6AXXZ@Z";
-  case 0x00fd: return "?set_terminate@@YAP6AXXZH@Z";
-  case 0x00fe: return "?set_terminate@@YAP6AXXZP6AXXZ@Z";
-  case 0x00ff: return "?set_unexpected@@YAP6AXXZH@Z";
-  case 0x0100: return "?set_unexpected@@YAP6AXXZP6AXXZ@Z";
-  case 0x0101: return "?swprintf@@YAHPAGIPBGZZ";
-  case 0x0102: return "?swprintf@@YAHPA_WIPB_WZZ";
-  case 0x0103: return "?terminate@@YAXXZ";
-  case 0x0104: return "?try_lock@critical_section@Concurrency@@QAE_NXZ";
-  case 0x0105: return "?try_lock@reader_writer_lock@Concurrency@@QAE_NXZ";
-  case 0x0106: return "?try_lock_read@reader_writer_lock@Concurrency@@QAE_NXZ";
-  case 0x0107: return "?unexpected@@YAXXZ";
-  case 0x0108: return "?unlock@critical_section@Concurrency@@QAEXXZ";
-  case 0x0109: return "?unlock@reader_writer_lock@Concurrency@@QAEXXZ";
-  case 0x010a: return "?vswprintf@@YAHPA_WIPB_WPAD@Z";
-  case 0x010b: return "?wait@Concurrency@@YAXI@Z";
-  case 0x010c: return "?wait@event@Concurrency@@QAEII@Z";
-  case 0x010d: return "?wait_for_multiple@event@Concurrency@@SAIPAPAV12@I_NI@Z";
-  case 0x010e: return "?what@exception@std@@UBEPBDXZ";
-  case 0x0110: return "_CIacos";
-  case 0x0111: return "_CIasin";
-  case 0x0112: return "_CIatan";
-  case 0x0113: return "_CIatan2";
-  case 0x0114: return "_CIcos";
-  case 0x0115: return "_CIcosh";
-  case 0x0116: return "_CIexp";
-  case 0x0117: return "_CIfmod";
-  case 0x0118: return "_CIlog";
-  case 0x0119: return "_CIlog10";
-  case 0x011a: return "_CIpow";
-  case 0x011b: return "_CIsin";
-  case 0x011c: return "_CIsinh";
-  case 0x011d: return "_CIsqrt";
-  case 0x011e: return "_CItan";
-  case 0x011f: return "_CItanh";
-  case 0x0120: return "_CRT_RTC_INIT";
-  case 0x0121: return "_CRT_RTC_INITW";
-  case 0x0122: return "_CreateFrameInfo";
-  case 0x0123: return "_CxxThrowException";
-  case 0x0124: return "_EH_prolog";
-  case 0x0125: return "_FindAndUnlinkFrame";
-  case 0x0126: return "_Getdays";
-  case 0x0127: return "_Getmonths";
-  case 0x0128: return "_Gettnames";
-  case 0x0129: return "_HUGE";
-  case 0x012a: return "_IsExceptionObjectToBeDestroyed";
-  case 0x012b: return "_NLG_Dispatch2";
-  case 0x012c: return "_NLG_Return";
-  case 0x012d: return "_NLG_Return2";
-  case 0x012e: return "_Strftime";
-  case 0x012f: return "_XcptFilter";
-  case 0x0130: return "__AdjustPointer";
-  case 0x0131: return "__BuildCatchObject";
-  case 0x0132: return "__BuildCatchObjectHelper";
-  case 0x0133: return "__CppXcptFilter";
-  case 0x0134: return "__CxxCallUnwindDelDtor";
-  case 0x0135: return "__CxxCallUnwindDtor";
-  case 0x0136: return "__CxxCallUnwindStdDelDtor";
-  case 0x0137: return "__CxxCallUnwindVecDtor";
-  case 0x0138: return "__CxxDetectRethrow";
-  case 0x0139: return "__CxxExceptionFilter";
-  case 0x013a: return "__CxxFrameHandler";
-  case 0x013b: return "__CxxFrameHandler2";
-  case 0x013c: return "__CxxFrameHandler3";
-  case 0x013d: return "__CxxLongjmpUnwind";
-  case 0x013e: return "__CxxQueryExceptionSize";
-  case 0x013f: return "__CxxRegisterExceptionObject";
-  case 0x0140: return "__CxxUnregisterExceptionObject";
-  case 0x0141: return "__DestructExceptionObject";
-  case 0x0142: return "__FrameUnwindFilter";
-  case 0x0143: return "__RTCastToVoid";
-  case 0x0144: return "__RTDynamicCast";
-  case 0x0145: return "__RTtypeid";
-  case 0x0146: return "__STRINGTOLD";
-  case 0x0147: return "__STRINGTOLD_L";
-  case 0x0148: return "__TypeMatch";
-  case 0x015e: return "___fls_getvalue@4";
-  case 0x015f: return "___fls_setvalue@8";
-  case 0x0149: return "___lc_codepage_func";
-  case 0x014a: return "___lc_collate_cp_func";
-  case 0x014b: return "___lc_handle_func";
-  case 0x014c: return "___mb_cur_max_func";
-  case 0x014d: return "___mb_cur_max_l_func";
-  case 0x014e: return "___setlc_active_func";
-  case 0x014f: return "___unguarded_readlc_active_add_func";
-  case 0x0150: return "__argc";
-  case 0x0151: return "__argv";
-  case 0x0152: return "__badioinfo";
-  case 0x0153: return "__clean_type_info_names_internal";
-  case 0x0154: return "__control87_2";
-  case 0x0155: return "__create_locale";
-  case 0x0156: return "__crtCompareStringA";
-  case 0x0157: return "__crtCompareStringW";
-  case 0x0158: return "__crtLCMapStringA";
-  case 0x0159: return "__crtLCMapStringW";
-  case 0x015a: return "__daylight";
-  case 0x015b: return "__dllonexit";
-  case 0x015c: return "__doserrno";
-  case 0x015d: return "__dstbias";
-  case 0x0160: return "__fpecode";
-  case 0x0161: return "__free_locale";
-  case 0x0162: return "__get_current_locale";
-  case 0x0163: return "__get_flsindex";
-  case 0x0164: return "__get_tlsindex";
-  case 0x0165: return "__getmainargs";
-  case 0x0166: return "__initenv";
-  case 0x0167: return "__iob_func";
-  case 0x0168: return "__isascii";
-  case 0x0169: return "__iscsym";
-  case 0x016a: return "__iscsymf";
-  case 0x016b: return "__iswcsym";
-  case 0x016c: return "__iswcsymf";
-  case 0x016d: return "__lconv";
-  case 0x016e: return "__lconv_init";
-  case 0x016f: return "__libm_sse2_acos";
-  case 0x0170: return "__libm_sse2_acosf";
-  case 0x0171: return "__libm_sse2_asin";
-  case 0x0172: return "__libm_sse2_asinf";
-  case 0x0173: return "__libm_sse2_atan";
-  case 0x0174: return "__libm_sse2_atan2";
-  case 0x0175: return "__libm_sse2_atanf";
-  case 0x0176: return "__libm_sse2_cos";
-  case 0x0177: return "__libm_sse2_cosf";
-  case 0x0178: return "__libm_sse2_exp";
-  case 0x0179: return "__libm_sse2_expf";
-  case 0x017a: return "__libm_sse2_log";
-  case 0x017b: return "__libm_sse2_log10";
-  case 0x017c: return "__libm_sse2_log10f";
-  case 0x017d: return "__libm_sse2_logf";
-  case 0x017e: return "__libm_sse2_pow";
-  case 0x017f: return "__libm_sse2_powf";
-  case 0x0180: return "__libm_sse2_sin";
-  case 0x0181: return "__libm_sse2_sinf";
-  case 0x0182: return "__libm_sse2_tan";
-  case 0x0183: return "__libm_sse2_tanf";
-  case 0x0184: return "__mb_cur_max";
-  case 0x0185: return "__p___argc";
-  case 0x0186: return "__p___argv";
-  case 0x0187: return "__p___initenv";
-  case 0x0188: return "__p___mb_cur_max";
-  case 0x0189: return "__p___wargv";
-  case 0x018a: return "__p___winitenv";
-  case 0x018b: return "__p__acmdln";
-  case 0x018c: return "__p__commode";
-  case 0x018d: return "__p__daylight";
-  case 0x018e: return "__p__dstbias";
-  case 0x018f: return "__p__environ";
-  case 0x0190: return "__p__fmode";
-  case 0x0191: return "__p__iob";
-  case 0x0192: return "__p__mbcasemap";
-  case 0x0193: return "__p__mbctype";
-  case 0x0194: return "__p__pctype";
-  case 0x0195: return "__p__pgmptr";
-  case 0x0196: return "__p__pwctype";
-  case 0x0197: return "__p__timezone";
-  case 0x0198: return "__p__tzname";
-  case 0x0199: return "__p__wcmdln";
-  case 0x019a: return "__p__wenviron";
-  case 0x019b: return "__p__wpgmptr";
-  case 0x019c: return "__pctype_func";
-  case 0x019d: return "__pioinfo";
-  case 0x019e: return "__pwctype_func";
-  case 0x019f: return "__pxcptinfoptrs";
-  case 0x01a0: return "__report_gsfailure";
-  case 0x01a1: return "__set_app_type";
-  case 0x01a2: return "__set_flsgetvalue";
-  case 0x01a3: return "__setlc_active";
-  case 0x01a4: return "__setusermatherr";
-  case 0x01a5: return "__strncnt";
-  case 0x01a6: return "__swprintf_l";
-  case 0x01a7: return "__sys_errlist";
-  case 0x01a8: return "__sys_nerr";
-  case 0x01a9: return "__threadhandle";
-  case 0x01aa: return "__threadid";
-  case 0x01ab: return "__timezone";
-  case 0x01ac: return "__toascii";
-  case 0x01ad: return "__tzname";
-  case 0x01ae: return "__unDName";
-  case 0x01af: return "__unDNameEx";
-  case 0x01b0: return "__unDNameHelper";
-  case 0x00e1: return "__uncaught_exception";
-  case 0x01b1: return "__unguarded_readlc_active";
-  case 0x01b2: return "__vswprintf_l";
-  case 0x01b3: return "__wargv";
-  case 0x01b4: return "__wcserror";
-  case 0x01b5: return "__wcserror_s";
-  case 0x01b6: return "__wcsncnt";
-  case 0x01b7: return "__wgetmainargs";
-  case 0x01b8: return "__winitenv";
-  case 0x01b9: return "_abnormal_termination";
-  case 0x01ba: return "_abs64";
-  case 0x01bb: return "_access";
-  case 0x01bc: return "_access_s";
-  case 0x01bd: return "_acmdln";
-  case 0x01be: return "_aligned_free";
-  case 0x01bf: return "_aligned_malloc";
-  case 0x01c0: return "_aligned_msize";
-  case 0x01c1: return "_aligned_offset_malloc";
-  case 0x01c2: return "_aligned_offset_realloc";
-  case 0x01c3: return "_aligned_offset_recalloc";
-  case 0x01c4: return "_aligned_realloc";
-  case 0x01c5: return "_aligned_recalloc";
-  case 0x01c6: return "_amsg_exit";
-  case 0x01c7: return "_assert";
-  case 0x01c8: return "_atodbl";
-  case 0x01c9: return "_atodbl_l";
-  case 0x01ca: return "_atof_l";
-  case 0x01cb: return "_atoflt";
-  case 0x01cc: return "_atoflt_l";
-  case 0x01cd: return "_atoi64";
-  case 0x01ce: return "_atoi64_l";
-  case 0x01cf: return "_atoi_l";
-  case 0x01d0: return "_atol_l";
-  case 0x01d1: return "_atoldbl";
-  case 0x01d2: return "_atoldbl_l";
-  case 0x01d3: return "_beep";
-  case 0x01d4: return "_beginthread";
-  case 0x01d5: return "_beginthreadex";
-  case 0x01d6: return "_byteswap_uint64";
-  case 0x01d7: return "_byteswap_ulong";
-  case 0x01d8: return "_byteswap_ushort";
-  case 0x01d9: return "_c_exit";
-  case 0x01da: return "_cabs";
-  case 0x01db: return "_callnewh";
-  case 0x01dc: return "_calloc_crt";
-  case 0x01dd: return "_cexit";
-  case 0x01de: return "_cgets";
-  case 0x01df: return "_cgets_s";
-  case 0x01e0: return "_cgetws";
-  case 0x01e1: return "_cgetws_s";
-  case 0x01e2: return "_chdir";
-  case 0x01e3: return "_chdrive";
-  case 0x01e4: return "_chgsign";
-  case 0x01e5: return "_chkesp";
-  case 0x01e6: return "_chmod";
-  case 0x01e7: return "_chsize";
-  case 0x01e8: return "_chsize_s";
-  case 0x01e9: return "_clearfp";
-  case 0x01ea: return "_close";
-  case 0x01eb: return "_commit";
-  case 0x01ec: return "_commode";
-  case 0x01ed: return "_configthreadlocale";
-  case 0x01ee: return "_control87";
-  case 0x01ef: return "_controlfp";
-  case 0x01f0: return "_controlfp_s";
-  case 0x01f1: return "_copysign";
-  case 0x01f2: return "_cprintf";
-  case 0x01f3: return "_cprintf_l";
-  case 0x01f4: return "_cprintf_p";
-  case 0x01f5: return "_cprintf_p_l";
-  case 0x01f6: return "_cprintf_s";
-  case 0x01f7: return "_cprintf_s_l";
-  case 0x01f8: return "_cputs";
-  case 0x01f9: return "_cputws";
-  case 0x01fa: return "_creat";
-  case 0x01fb: return "_create_locale";
-  case 0x01fc: return "_crt_debugger_hook";
-  case 0x01fd: return "_cscanf";
-  case 0x01fe: return "_cscanf_l";
-  case 0x01ff: return "_cscanf_s";
-  case 0x0200: return "_cscanf_s_l";
-  case 0x0201: return "_ctime32";
-  case 0x0202: return "_ctime32_s";
-  case 0x0203: return "_ctime64";
-  case 0x0204: return "_ctime64_s";
-  case 0x0205: return "_cwait";
-  case 0x0206: return "_cwprintf";
-  case 0x0207: return "_cwprintf_l";
-  case 0x0208: return "_cwprintf_p";
-  case 0x0209: return "_cwprintf_p_l";
-  case 0x020a: return "_cwprintf_s";
-  case 0x020b: return "_cwprintf_s_l";
-  case 0x020c: return "_cwscanf";
-  case 0x020d: return "_cwscanf_l";
-  case 0x020e: return "_cwscanf_s";
-  case 0x020f: return "_cwscanf_s_l";
-  case 0x0210: return "_daylight";
-  case 0x0211: return "_difftime32";
-  case 0x0212: return "_difftime64";
-  case 0x0213: return "_dosmaperr";
-  case 0x0214: return "_dstbias";
-  case 0x0215: return "_dup";
-  case 0x0216: return "_dup2";
-  case 0x0217: return "_dupenv_s";
-  case 0x0218: return "_ecvt";
-  case 0x0219: return "_ecvt_s";
-  case 0x021a: return "_encoded_null";
-  case 0x021b: return "_endthread";
-  case 0x021c: return "_endthreadex";
-  case 0x021d: return "_environ";
-  case 0x021e: return "_eof";
-  case 0x021f: return "_errno";
-  case 0x0220: return "_except_handler2";
-  case 0x0221: return "_except_handler3";
-  case 0x0222: return "_except_handler4_common";
-  case 0x0223: return "_execl";
-  case 0x0224: return "_execle";
-  case 0x0225: return "_execlp";
-  case 0x0226: return "_execlpe";
-  case 0x0227: return "_execv";
-  case 0x0228: return "_execve";
-  case 0x0229: return "_execvp";
-  case 0x022a: return "_execvpe";
-  case 0x022b: return "_exit";
-  case 0x022c: return "_expand";
-  case 0x022d: return "_fclose_nolock";
-  case 0x022e: return "_fcloseall";
-  case 0x022f: return "_fcvt";
-  case 0x0230: return "_fcvt_s";
-  case 0x0231: return "_fdopen";
-  case 0x0232: return "_fflush_nolock";
-  case 0x0233: return "_fgetchar";
-  case 0x0234: return "_fgetwc_nolock";
-  case 0x0235: return "_fgetwchar";
-  case 0x0236: return "_filbuf";
-  case 0x0237: return "_filelength";
-  case 0x0238: return "_filelengthi64";
-  case 0x0239: return "_fileno";
-  case 0x023a: return "_findclose";
-  case 0x023b: return "_findfirst32";
-  case 0x023c: return "_findfirst32i64";
-  case 0x023d: return "_findfirst64";
-  case 0x023e: return "_findfirst64i32";
-  case 0x023f: return "_findnext32";
-  case 0x0240: return "_findnext32i64";
-  case 0x0241: return "_findnext64";
-  case 0x0242: return "_findnext64i32";
-  case 0x0243: return "_finite";
-  case 0x0244: return "_flsbuf";
-  case 0x0245: return "_flushall";
-  case 0x0246: return "_fmode";
-  case 0x0247: return "_fpclass";
-  case 0x0248: return "_fpieee_flt";
-  case 0x0249: return "_fpreset";
-  case 0x024a: return "_fprintf_l";
-  case 0x024b: return "_fprintf_p";
-  case 0x024c: return "_fprintf_p_l";
-  case 0x024d: return "_fprintf_s_l";
-  case 0x024e: return "_fputchar";
-  case 0x024f: return "_fputwc_nolock";
-  case 0x0250: return "_fputwchar";
-  case 0x0251: return "_fread_nolock";
-  case 0x0252: return "_fread_nolock_s";
-  case 0x0253: return "_free_locale";
-  case 0x0254: return "_freea";
-  case 0x0255: return "_freea_s";
-  case 0x0256: return "_freefls";
-  case 0x0257: return "_fscanf_l";
-  case 0x0258: return "_fscanf_s_l";
-  case 0x0259: return "_fseek_nolock";
-  case 0x025a: return "_fseeki64";
-  case 0x025b: return "_fseeki64_nolock";
-  case 0x025c: return "_fsopen";
-  case 0x025d: return "_fstat32";
-  case 0x025e: return "_fstat32i64";
-  case 0x025f: return "_fstat64";
-  case 0x0260: return "_fstat64i32";
-  case 0x0261: return "_ftell_nolock";
-  case 0x0262: return "_ftelli64";
-  case 0x0263: return "_ftelli64_nolock";
-  case 0x0264: return "_ftime32";
-  case 0x0265: return "_ftime32_s";
-  case 0x0266: return "_ftime64";
-  case 0x0267: return "_ftime64_s";
-  case 0x0268: return "_ftol";
-  case 0x0269: return "_fullpath";
-  case 0x026a: return "_futime32";
-  case 0x026b: return "_futime64";
-  case 0x026c: return "_fwprintf_l";
-  case 0x026d: return "_fwprintf_p";
-  case 0x026e: return "_fwprintf_p_l";
-  case 0x026f: return "_fwprintf_s_l";
-  case 0x0270: return "_fwrite_nolock";
-  case 0x0271: return "_fwscanf_l";
-  case 0x0272: return "_fwscanf_s_l";
-  case 0x0273: return "_gcvt";
-  case 0x0274: return "_gcvt_s";
-  case 0x0275: return "_get_current_locale";
-  case 0x0276: return "_get_daylight";
-  case 0x0277: return "_get_doserrno";
-  case 0x0278: return "_get_dstbias";
-  case 0x0279: return "_get_errno";
-  case 0x027a: return "_get_fmode";
-  case 0x027b: return "_get_heap_handle";
-  case 0x027c: return "_get_invalid_parameter_handler";
-  case 0x027d: return "_get_osfhandle";
-  case 0x027e: return "_get_output_format";
-  case 0x027f: return "_get_pgmptr";
-  case 0x0280: return "_get_printf_count_output";
-  case 0x0281: return "_get_purecall_handler";
-  case 0x0282: return "_get_terminate";
-  case 0x0283: return "_get_timezone";
-  case 0x0284: return "_get_tzname";
-  case 0x0285: return "_get_unexpected";
-  case 0x0286: return "_get_wpgmptr";
-  case 0x0287: return "_getc_nolock";
-  case 0x0288: return "_getch";
-  case 0x0289: return "_getch_nolock";
-  case 0x028a: return "_getche";
-  case 0x028b: return "_getche_nolock";
-  case 0x028c: return "_getcwd";
-  case 0x028d: return "_getdcwd";
-  case 0x028e: return "_getdcwd_nolock";
-  case 0x028f: return "_getdiskfree";
-  case 0x0290: return "_getdllprocaddr";
-  case 0x0291: return "_getdrive";
-  case 0x0292: return "_getdrives";
-  case 0x0293: return "_getmaxstdio";
-  case 0x0294: return "_getmbcp";
-  case 0x0295: return "_getpid";
-  case 0x0296: return "_getptd";
-  case 0x0297: return "_getsystime";
-  case 0x0298: return "_getw";
-  case 0x0299: return "_getwch";
-  case 0x029a: return "_getwch_nolock";
-  case 0x029b: return "_getwche";
-  case 0x029c: return "_getwche_nolock";
-  case 0x029d: return "_getws";
-  case 0x029e: return "_getws_s";
-  case 0x029f: return "_global_unwind2";
-  case 0x02a0: return "_gmtime32";
-  case 0x02a1: return "_gmtime32_s";
-  case 0x02a2: return "_gmtime64";
-  case 0x02a3: return "_gmtime64_s";
-  case 0x02a4: return "_heapadd";
-  case 0x02a5: return "_heapchk";
-  case 0x02a6: return "_heapmin";
-  case 0x02a7: return "_heapset";
-  case 0x02a8: return "_heapused";
-  case 0x02a9: return "_heapwalk";
-  case 0x02aa: return "_hypot";
-  case 0x02ab: return "_hypotf";
-  case 0x02ac: return "_i64toa";
-  case 0x02ad: return "_i64toa_s";
-  case 0x02ae: return "_i64tow";
-  case 0x02af: return "_i64tow_s";
-  case 0x02b0: return "_initptd";
-  case 0x02b1: return "_initterm";
-  case 0x02b2: return "_initterm_e";
-  case 0x02b3: return "_inp";
-  case 0x02b4: return "_inpd";
-  case 0x02b5: return "_inpw";
-  case 0x02b6: return "_invalid_parameter";
-  case 0x02b7: return "_invalid_parameter_noinfo";
-  case 0x02b8: return "_invalid_parameter_noinfo_noreturn";
-  case 0x02b9: return "_invoke_watson";
-  case 0x02ba: return "_iob";
-  case 0x02bb: return "_isalnum_l";
-  case 0x02bc: return "_isalpha_l";
-  case 0x02bd: return "_isatty";
-  case 0x02be: return "_iscntrl_l";
-  case 0x02bf: return "_isctype";
-  case 0x02c0: return "_isctype_l";
-  case 0x02c1: return "_isdigit_l";
-  case 0x02c2: return "_isgraph_l";
-  case 0x02c3: return "_isleadbyte_l";
-  case 0x02c4: return "_islower_l";
-  case 0x02c5: return "_ismbbalnum";
-  case 0x02c6: return "_ismbbalnum_l";
-  case 0x02c7: return "_ismbbalpha";
-  case 0x02c8: return "_ismbbalpha_l";
-  case 0x02c9: return "_ismbbgraph";
-  case 0x02ca: return "_ismbbgraph_l";
-  case 0x02cb: return "_ismbbkalnum";
-  case 0x02cc: return "_ismbbkalnum_l";
-  case 0x02cd: return "_ismbbkana";
-  case 0x02ce: return "_ismbbkana_l";
-  case 0x02cf: return "_ismbbkprint";
-  case 0x02d0: return "_ismbbkprint_l";
-  case 0x02d1: return "_ismbbkpunct";
-  case 0x02d2: return "_ismbbkpunct_l";
-  case 0x02d3: return "_ismbblead";
-  case 0x02d4: return "_ismbblead_l";
-  case 0x02d5: return "_ismbbprint";
-  case 0x02d6: return "_ismbbprint_l";
-  case 0x02d7: return "_ismbbpunct";
-  case 0x02d8: return "_ismbbpunct_l";
-  case 0x02d9: return "_ismbbtrail";
-  case 0x02da: return "_ismbbtrail_l";
-  case 0x02db: return "_ismbcalnum";
-  case 0x02dc: return "_ismbcalnum_l";
-  case 0x02dd: return "_ismbcalpha";
-  case 0x02de: return "_ismbcalpha_l";
-  case 0x02df: return "_ismbcdigit";
-  case 0x02e0: return "_ismbcdigit_l";
-  case 0x02e1: return "_ismbcgraph";
-  case 0x02e2: return "_ismbcgraph_l";
-  case 0x02e3: return "_ismbchira";
-  case 0x02e4: return "_ismbchira_l";
-  case 0x02e5: return "_ismbckata";
-  case 0x02e6: return "_ismbckata_l";
-  case 0x02e7: return "_ismbcl0";
-  case 0x02e8: return "_ismbcl0_l";
-  case 0x02e9: return "_ismbcl1";
-  case 0x02ea: return "_ismbcl1_l";
-  case 0x02eb: return "_ismbcl2";
-  case 0x02ec: return "_ismbcl2_l";
-  case 0x02ed: return "_ismbclegal";
-  case 0x02ee: return "_ismbclegal_l";
-  case 0x02ef: return "_ismbclower";
-  case 0x02f0: return "_ismbclower_l";
-  case 0x02f1: return "_ismbcprint";
-  case 0x02f2: return "_ismbcprint_l";
-  case 0x02f3: return "_ismbcpunct";
-  case 0x02f4: return "_ismbcpunct_l";
-  case 0x02f5: return "_ismbcspace";
-  case 0x02f6: return "_ismbcspace_l";
-  case 0x02f7: return "_ismbcsymbol";
-  case 0x02f8: return "_ismbcsymbol_l";
-  case 0x02f9: return "_ismbcupper";
-  case 0x02fa: return "_ismbcupper_l";
-  case 0x02fb: return "_ismbslead";
-  case 0x02fc: return "_ismbslead_l";
-  case 0x02fd: return "_ismbstrail";
-  case 0x02fe: return "_ismbstrail_l";
-  case 0x02ff: return "_isnan";
-  case 0x0300: return "_isprint_l";
-  case 0x0301: return "_ispunct_l";
-  case 0x0302: return "_isspace_l";
-  case 0x0303: return "_isupper_l";
-  case 0x0304: return "_iswalnum_l";
-  case 0x0305: return "_iswalpha_l";
-  case 0x0306: return "_iswcntrl_l";
-  case 0x0307: return "_iswcsym_l";
-  case 0x0308: return "_iswcsymf_l";
-  case 0x0309: return "_iswctype_l";
-  case 0x030a: return "_iswdigit_l";
-  case 0x030b: return "_iswgraph_l";
-  case 0x030c: return "_iswlower_l";
-  case 0x030d: return "_iswprint_l";
-  case 0x030e: return "_iswpunct_l";
-  case 0x030f: return "_iswspace_l";
-  case 0x0310: return "_iswupper_l";
-  case 0x0311: return "_iswxdigit_l";
-  case 0x0312: return "_isxdigit_l";
-  case 0x0313: return "_itoa";
-  case 0x0314: return "_itoa_s";
-  case 0x0315: return "_itow";
-  case 0x0316: return "_itow_s";
-  case 0x0317: return "_j0";
-  case 0x0318: return "_j1";
-  case 0x0319: return "_jn";
-  case 0x031a: return "_kbhit";
-  case 0x031b: return "_lfind";
-  case 0x031c: return "_lfind_s";
-  case 0x031d: return "_loaddll";
-  case 0x031e: return "_local_unwind2";
-  case 0x031f: return "_local_unwind4";
-  case 0x0320: return "_localtime32";
-  case 0x0321: return "_localtime32_s";
-  case 0x0322: return "_localtime64";
-  case 0x0323: return "_localtime64_s";
-  case 0x0324: return "_lock";
-  case 0x0325: return "_lock_file";
-  case 0x0326: return "_locking";
-  case 0x0327: return "_logb";
-  case 0x0328: return "_longjmpex";
-  case 0x0329: return "_lrotl";
-  case 0x032a: return "_lrotr";
-  case 0x032b: return "_lsearch";
-  case 0x032c: return "_lsearch_s";
-  case 0x032d: return "_lseek";
-  case 0x032e: return "_lseeki64";
-  case 0x032f: return "_ltoa";
-  case 0x0330: return "_ltoa_s";
-  case 0x0331: return "_ltow";
-  case 0x0332: return "_ltow_s";
-  case 0x0333: return "_makepath";
-  case 0x0334: return "_makepath_s";
-  case 0x0335: return "_malloc_crt";
-  case 0x0336: return "_mbbtombc";
-  case 0x0337: return "_mbbtombc_l";
-  case 0x0338: return "_mbbtype";
-  case 0x0339: return "_mbbtype_l";
-  case 0x033a: return "_mbcasemap";
-  case 0x033b: return "_mbccpy";
-  case 0x033c: return "_mbccpy_l";
-  case 0x033d: return "_mbccpy_s";
-  case 0x033e: return "_mbccpy_s_l";
-  case 0x033f: return "_mbcjistojms";
-  case 0x0340: return "_mbcjistojms_l";
-  case 0x0341: return "_mbcjmstojis";
-  case 0x0342: return "_mbcjmstojis_l";
-  case 0x0343: return "_mbclen";
-  case 0x0344: return "_mbclen_l";
-  case 0x0345: return "_mbctohira";
-  case 0x0346: return "_mbctohira_l";
-  case 0x0347: return "_mbctokata";
-  case 0x0348: return "_mbctokata_l";
-  case 0x0349: return "_mbctolower";
-  case 0x034a: return "_mbctolower_l";
-  case 0x034b: return "_mbctombb";
-  case 0x034c: return "_mbctombb_l";
-  case 0x034d: return "_mbctoupper";
-  case 0x034e: return "_mbctoupper_l";
-  case 0x034f: return "_mbctype";
-  case 0x0350: return "_mblen_l";
-  case 0x0351: return "_mbsbtype";
-  case 0x0352: return "_mbsbtype_l";
-  case 0x0353: return "_mbscat_s";
-  case 0x0354: return "_mbscat_s_l";
-  case 0x0355: return "_mbschr";
-  case 0x0356: return "_mbschr_l";
-  case 0x0357: return "_mbscmp";
-  case 0x0358: return "_mbscmp_l";
-  case 0x0359: return "_mbscoll";
-  case 0x035a: return "_mbscoll_l";
-  case 0x035b: return "_mbscpy_s";
-  case 0x035c: return "_mbscpy_s_l";
-  case 0x035d: return "_mbscspn";
-  case 0x035e: return "_mbscspn_l";
-  case 0x035f: return "_mbsdec";
-  case 0x0360: return "_mbsdec_l";
-  case 0x0361: return "_mbsicmp";
-  case 0x0362: return "_mbsicmp_l";
-  case 0x0363: return "_mbsicoll";
-  case 0x0364: return "_mbsicoll_l";
-  case 0x0365: return "_mbsinc";
-  case 0x0366: return "_mbsinc_l";
-  case 0x0367: return "_mbslen";
-  case 0x0368: return "_mbslen_l";
-  case 0x0369: return "_mbslwr";
-  case 0x036a: return "_mbslwr_l";
-  case 0x036b: return "_mbslwr_s";
-  case 0x036c: return "_mbslwr_s_l";
-  case 0x036d: return "_mbsnbcat";
-  case 0x036e: return "_mbsnbcat_l";
-  case 0x036f: return "_mbsnbcat_s";
-  case 0x0370: return "_mbsnbcat_s_l";
-  case 0x0371: return "_mbsnbcmp";
-  case 0x0372: return "_mbsnbcmp_l";
-  case 0x0373: return "_mbsnbcnt";
-  case 0x0374: return "_mbsnbcnt_l";
-  case 0x0375: return "_mbsnbcoll";
-  case 0x0376: return "_mbsnbcoll_l";
-  case 0x0377: return "_mbsnbcpy";
-  case 0x0378: return "_mbsnbcpy_l";
-  case 0x0379: return "_mbsnbcpy_s";
-  case 0x037a: return "_mbsnbcpy_s_l";
-  case 0x037b: return "_mbsnbicmp";
-  case 0x037c: return "_mbsnbicmp_l";
-  case 0x037d: return "_mbsnbicoll";
-  case 0x037e: return "_mbsnbicoll_l";
-  case 0x037f: return "_mbsnbset";
-  case 0x0380: return "_mbsnbset_l";
-  case 0x0381: return "_mbsnbset_s";
-  case 0x0382: return "_mbsnbset_s_l";
-  case 0x0383: return "_mbsncat";
-  case 0x0384: return "_mbsncat_l";
-  case 0x0385: return "_mbsncat_s";
-  case 0x0386: return "_mbsncat_s_l";
-  case 0x0387: return "_mbsnccnt";
-  case 0x0388: return "_mbsnccnt_l";
-  case 0x0389: return "_mbsncmp";
-  case 0x038a: return "_mbsncmp_l";
-  case 0x038b: return "_mbsncoll";
-  case 0x038c: return "_mbsncoll_l";
-  case 0x038d: return "_mbsncpy";
-  case 0x038e: return "_mbsncpy_l";
-  case 0x038f: return "_mbsncpy_s";
-  case 0x0390: return "_mbsncpy_s_l";
-  case 0x0391: return "_mbsnextc";
-  case 0x0392: return "_mbsnextc_l";
-  case 0x0393: return "_mbsnicmp";
-  case 0x0394: return "_mbsnicmp_l";
-  case 0x0395: return "_mbsnicoll";
-  case 0x0396: return "_mbsnicoll_l";
-  case 0x0397: return "_mbsninc";
-  case 0x0398: return "_mbsninc_l";
-  case 0x0399: return "_mbsnlen";
-  case 0x039a: return "_mbsnlen_l";
-  case 0x039b: return "_mbsnset";
-  case 0x039c: return "_mbsnset_l";
-  case 0x039d: return "_mbsnset_s";
-  case 0x039e: return "_mbsnset_s_l";
-  case 0x039f: return "_mbspbrk";
-  case 0x03a0: return "_mbspbrk_l";
-  case 0x03a1: return "_mbsrchr";
-  case 0x03a2: return "_mbsrchr_l";
-  case 0x03a3: return "_mbsrev";
-  case 0x03a4: return "_mbsrev_l";
-  case 0x03a5: return "_mbsset";
-  case 0x03a6: return "_mbsset_l";
-  case 0x03a7: return "_mbsset_s";
-  case 0x03a8: return "_mbsset_s_l";
-  case 0x03a9: return "_mbsspn";
-  case 0x03aa: return "_mbsspn_l";
-  case 0x03ab: return "_mbsspnp";
-  case 0x03ac: return "_mbsspnp_l";
-  case 0x03ad: return "_mbsstr";
-  case 0x03ae: return "_mbsstr_l";
-  case 0x03af: return "_mbstok";
-  case 0x03b0: return "_mbstok_l";
-  case 0x03b1: return "_mbstok_s";
-  case 0x03b2: return "_mbstok_s_l";
-  case 0x03b3: return "_mbstowcs_l";
-  case 0x03b4: return "_mbstowcs_s_l";
-  case 0x03b5: return "_mbstrlen";
-  case 0x03b6: return "_mbstrlen_l";
-  case 0x03b7: return "_mbstrnlen";
-  case 0x03b8: return "_mbstrnlen_l";
-  case 0x03b9: return "_mbsupr";
-  case 0x03ba: return "_mbsupr_l";
-  case 0x03bb: return "_mbsupr_s";
-  case 0x03bc: return "_mbsupr_s_l";
-  case 0x03bd: return "_mbtowc_l";
-  case 0x03be: return "_memccpy";
-  case 0x03bf: return "_memicmp";
-  case 0x03c0: return "_memicmp_l";
-  case 0x03c1: return "_mkdir";
-  case 0x03c2: return "_mkgmtime32";
-  case 0x03c3: return "_mkgmtime64";
-  case 0x03c4: return "_mktemp";
-  case 0x03c5: return "_mktemp_s";
-  case 0x03c6: return "_mktime32";
-  case 0x03c7: return "_mktime64";
-  case 0x03c8: return "_msize";
-  case 0x03c9: return "_nextafter";
-  case 0x03ca: return "_onexit";
-  case 0x03cb: return "_open";
-  case 0x03cc: return "_open_osfhandle";
-  case 0x03cd: return "_outp";
-  case 0x03ce: return "_outpd";
-  case 0x03cf: return "_outpw";
-  case 0x03d0: return "_pclose";
-  case 0x03d1: return "_pctype";
-  case 0x03d2: return "_pgmptr";
-  case 0x03d3: return "_pipe";
-  case 0x03d4: return "_popen";
-  case 0x03d5: return "_printf_l";
-  case 0x03d6: return "_printf_p";
-  case 0x03d7: return "_printf_p_l";
-  case 0x03d8: return "_printf_s_l";
-  case 0x03d9: return "_purecall";
-  case 0x03da: return "_putch";
-  case 0x03db: return "_putch_nolock";
-  case 0x03dc: return "_putenv";
-  case 0x03dd: return "_putenv_s";
-  case 0x03de: return "_putw";
-  case 0x03df: return "_putwch";
-  case 0x03e0: return "_putwch_nolock";
-  case 0x03e1: return "_putws";
-  case 0x03e2: return "_pwctype";
-  case 0x03e3: return "_read";
-  case 0x03e4: return "_realloc_crt";
-  case 0x03e5: return "_recalloc";
-  case 0x03e6: return "_recalloc_crt";
-  case 0x03e7: return "_resetstkoflw";
-  case 0x03e8: return "_rmdir";
-  case 0x03e9: return "_rmtmp";
-  case 0x03ea: return "_rotl";
-  case 0x03eb: return "_rotl64";
-  case 0x03ec: return "_rotr";
-  case 0x03ed: return "_rotr64";
-  case 0x03ee: return "_scalb";
-  case 0x03ef: return "_scanf_l";
-  case 0x03f0: return "_scanf_s_l";
-  case 0x03f1: return "_scprintf";
-  case 0x03f2: return "_scprintf_l";
-  case 0x03f3: return "_scprintf_p";
-  case 0x03f4: return "_scprintf_p_l";
-  case 0x03f5: return "_scwprintf";
-  case 0x03f6: return "_scwprintf_l";
-  case 0x03f7: return "_scwprintf_p";
-  case 0x03f8: return "_scwprintf_p_l";
-  case 0x03f9: return "_searchenv";
-  case 0x03fa: return "_searchenv_s";
-  case 0x03fc: return "_seh_longjmp_unwind";
-  case 0x03fb: return "_seh_longjmp_unwind4";
-  case 0x03fd: return "_set_SSE2_enable";
-  case 0x03fe: return "_set_abort_behavior";
-  case 0x03ff: return "_set_controlfp";
-  case 0x0400: return "_set_doserrno";
-  case 0x0401: return "_set_errno";
-  case 0x0402: return "_set_error_mode";
-  case 0x0403: return "_set_fmode";
-  case 0x0404: return "_set_invalid_parameter_handler";
-  case 0x0405: return "_set_malloc_crt_max_wait";
-  case 0x0406: return "_set_output_format";
-  case 0x0407: return "_set_printf_count_output";
-  case 0x0408: return "_set_purecall_handler";
-  case 0x0409: return "_seterrormode";
-  case 0x040a: return "_setjmp";
-  case 0x040b: return "_setjmp3";
-  case 0x040c: return "_setmaxstdio";
-  case 0x040d: return "_setmbcp";
-  case 0x040e: return "_setmode";
-  case 0x040f: return "_setsystime";
-  case 0x0410: return "_sleep";
-  case 0x0411: return "_snprintf";
-  case 0x0412: return "_snprintf_c";
-  case 0x0413: return "_snprintf_c_l";
-  case 0x0414: return "_snprintf_l";
-  case 0x0415: return "_snprintf_s";
-  case 0x0416: return "_snprintf_s_l";
-  case 0x0417: return "_snscanf";
-  case 0x0418: return "_snscanf_l";
-  case 0x0419: return "_snscanf_s";
-  case 0x041a: return "_snscanf_s_l";
-  case 0x041b: return "_snwprintf";
-  case 0x041c: return "_snwprintf_l";
-  case 0x041d: return "_snwprintf_s";
-  case 0x041e: return "_snwprintf_s_l";
-  case 0x041f: return "_snwscanf";
-  case 0x0420: return "_snwscanf_l";
-  case 0x0421: return "_snwscanf_s";
-  case 0x0422: return "_snwscanf_s_l";
-  case 0x0423: return "_sopen";
-  case 0x0424: return "_sopen_s";
-  case 0x0425: return "_spawnl";
-  case 0x0426: return "_spawnle";
-  case 0x0427: return "_spawnlp";
-  case 0x0428: return "_spawnlpe";
-  case 0x0429: return "_spawnv";
-  case 0x042a: return "_spawnve";
-  case 0x042b: return "_spawnvp";
-  case 0x042c: return "_spawnvpe";
-  case 0x042d: return "_splitpath";
-  case 0x042e: return "_splitpath_s";
-  case 0x042f: return "_sprintf_l";
-  case 0x0430: return "_sprintf_p";
-  case 0x0431: return "_sprintf_p_l";
-  case 0x0432: return "_sprintf_s_l";
-  case 0x0433: return "_sscanf_l";
-  case 0x0434: return "_sscanf_s_l";
-  case 0x0435: return "_stat32";
-  case 0x0436: return "_stat32i64";
-  case 0x0437: return "_stat64";
-  case 0x0438: return "_stat64i32";
-  case 0x0439: return "_statusfp";
-  case 0x043a: return "_statusfp2";
-  case 0x043b: return "_strcoll_l";
-  case 0x043c: return "_strdate";
-  case 0x043d: return "_strdate_s";
-  case 0x043e: return "_strdup";
-  case 0x043f: return "_strerror";
-  case 0x0440: return "_strerror_s";
-  case 0x0441: return "_strftime_l";
-  case 0x0442: return "_stricmp";
-  case 0x0443: return "_stricmp_l";
-  case 0x0444: return "_stricoll";
-  case 0x0445: return "_stricoll_l";
-  case 0x0446: return "_strlwr";
-  case 0x0447: return "_strlwr_l";
-  case 0x0448: return "_strlwr_s";
-  case 0x0449: return "_strlwr_s_l";
-  case 0x044a: return "_strncoll";
-  case 0x044b: return "_strncoll_l";
-  case 0x044c: return "_strnicmp";
-  case 0x044d: return "_strnicmp_l";
-  case 0x044e: return "_strnicoll";
-  case 0x044f: return "_strnicoll_l";
-  case 0x0450: return "_strnset";
-  case 0x0451: return "_strnset_s";
-  case 0x0452: return "_strrev";
-  case 0x0453: return "_strset";
-  case 0x0454: return "_strset_s";
-  case 0x0455: return "_strtime";
-  case 0x0456: return "_strtime_s";
-  case 0x0457: return "_strtod_l";
-  case 0x0458: return "_strtoi64";
-  case 0x0459: return "_strtoi64_l";
-  case 0x045a: return "_strtol_l";
-  case 0x045b: return "_strtoui64";
-  case 0x045c: return "_strtoui64_l";
-  case 0x045d: return "_strtoul_l";
-  case 0x045e: return "_strupr";
-  case 0x045f: return "_strupr_l";
-  case 0x0460: return "_strupr_s";
-  case 0x0461: return "_strupr_s_l";
-  case 0x0462: return "_strxfrm_l";
-  case 0x0463: return "_swab";
-  case 0x0464: return "_swprintf";
-  case 0x0465: return "_swprintf_c";
-  case 0x0466: return "_swprintf_c_l";
-  case 0x0467: return "_swprintf_p";
-  case 0x0468: return "_swprintf_p_l";
-  case 0x0469: return "_swprintf_s_l";
-  case 0x046a: return "_swscanf_l";
-  case 0x046b: return "_swscanf_s_l";
-  case 0x046c: return "_sys_errlist";
-  case 0x046d: return "_sys_nerr";
-  case 0x046e: return "_tell";
-  case 0x046f: return "_telli64";
-  case 0x0470: return "_tempnam";
-  case 0x0471: return "_time32";
-  case 0x0472: return "_time64";
-  case 0x0473: return "_timezone";
-  case 0x0474: return "_tolower";
-  case 0x0475: return "_tolower_l";
-  case 0x0476: return "_toupper";
-  case 0x0477: return "_toupper_l";
-  case 0x0478: return "_towlower_l";
-  case 0x0479: return "_towupper_l";
-  case 0x047a: return "_tzname";
-  case 0x047b: return "_tzset";
-  case 0x047c: return "_ui64toa";
-  case 0x047d: return "_ui64toa_s";
-  case 0x047e: return "_ui64tow";
-  case 0x047f: return "_ui64tow_s";
-  case 0x0480: return "_ultoa";
-  case 0x0481: return "_ultoa_s";
-  case 0x0482: return "_ultow";
-  case 0x0483: return "_ultow_s";
-  case 0x0484: return "_umask";
-  case 0x0485: return "_umask_s";
-  case 0x0486: return "_ungetc_nolock";
-  case 0x0487: return "_ungetch";
-  case 0x0488: return "_ungetch_nolock";
-  case 0x0489: return "_ungetwc_nolock";
-  case 0x048a: return "_ungetwch";
-  case 0x048b: return "_ungetwch_nolock";
-  case 0x048c: return "_unlink";
-  case 0x048d: return "_unloaddll";
-  case 0x048e: return "_unlock";
-  case 0x048f: return "_unlock_file";
-  case 0x0490: return "_utime32";
-  case 0x0491: return "_utime64";
-  case 0x0492: return "_vcprintf";
-  case 0x0493: return "_vcprintf_l";
-  case 0x0494: return "_vcprintf_p";
-  case 0x0495: return "_vcprintf_p_l";
-  case 0x0496: return "_vcprintf_s";
-  case 0x0497: return "_vcprintf_s_l";
-  case 0x0498: return "_vcwprintf";
-  case 0x0499: return "_vcwprintf_l";
-  case 0x049a: return "_vcwprintf_p";
-  case 0x049b: return "_vcwprintf_p_l";
-  case 0x049c: return "_vcwprintf_s";
-  case 0x049d: return "_vcwprintf_s_l";
-  case 0x049e: return "_vfprintf_l";
-  case 0x049f: return "_vfprintf_p";
-  case 0x04a0: return "_vfprintf_p_l";
-  case 0x04a1: return "_vfprintf_s_l";
-  case 0x04a2: return "_vfwprintf_l";
-  case 0x04a3: return "_vfwprintf_p";
-  case 0x04a4: return "_vfwprintf_p_l";
-  case 0x04a5: return "_vfwprintf_s_l";
-  case 0x04a6: return "_vprintf_l";
-  case 0x04a7: return "_vprintf_p";
-  case 0x04a8: return "_vprintf_p_l";
-  case 0x04a9: return "_vprintf_s_l";
-  case 0x04aa: return "_vscprintf";
-  case 0x04ab: return "_vscprintf_l";
-  case 0x04ac: return "_vscprintf_p";
-  case 0x04ad: return "_vscprintf_p_l";
-  case 0x04ae: return "_vscwprintf";
-  case 0x04af: return "_vscwprintf_l";
-  case 0x04b0: return "_vscwprintf_p";
-  case 0x04b1: return "_vscwprintf_p_l";
-  case 0x04b2: return "_vsnprintf";
-  case 0x04b3: return "_vsnprintf_c";
-  case 0x04b4: return "_vsnprintf_c_l";
-  case 0x04b5: return "_vsnprintf_l";
-  case 0x04b6: return "_vsnprintf_s";
-  case 0x04b7: return "_vsnprintf_s_l";
-  case 0x04b8: return "_vsnwprintf";
-  case 0x04b9: return "_vsnwprintf_l";
-  case 0x04ba: return "_vsnwprintf_s";
-  case 0x04bb: return "_vsnwprintf_s_l";
-  case 0x04bc: return "_vsprintf_l";
-  case 0x04bd: return "_vsprintf_p";
-  case 0x04be: return "_vsprintf_p_l";
-  case 0x04bf: return "_vsprintf_s_l";
-  case 0x04c0: return "_vswprintf";
-  case 0x04c1: return "_vswprintf_c";
-  case 0x04c2: return "_vswprintf_c_l";
-  case 0x04c3: return "_vswprintf_l";
-  case 0x04c4: return "_vswprintf_p";
-  case 0x04c5: return "_vswprintf_p_l";
-  case 0x04c6: return "_vswprintf_s_l";
-  case 0x04c7: return "_vwprintf_l";
-  case 0x04c8: return "_vwprintf_p";
-  case 0x04c9: return "_vwprintf_p_l";
-  case 0x04ca: return "_vwprintf_s_l";
-  case 0x04cb: return "_waccess";
-  case 0x04cc: return "_waccess_s";
-  case 0x04cd: return "_wasctime";
-  case 0x04ce: return "_wasctime_s";
-  case 0x04cf: return "_wassert";
-  case 0x04d0: return "_wchdir";
-  case 0x04d1: return "_wchmod";
-  case 0x04d2: return "_wcmdln";
-  case 0x04d3: return "_wcreat";
-  case 0x04d4: return "_wcscoll_l";
-  case 0x04d5: return "_wcsdup";
-  case 0x04d6: return "_wcserror";
-  case 0x04d7: return "_wcserror_s";
-  case 0x04d8: return "_wcsftime_l";
-  case 0x04d9: return "_wcsicmp";
-  case 0x04da: return "_wcsicmp_l";
-  case 0x04db: return "_wcsicoll";
-  case 0x04dc: return "_wcsicoll_l";
-  case 0x04dd: return "_wcslwr";
-  case 0x04de: return "_wcslwr_l";
-  case 0x04df: return "_wcslwr_s";
-  case 0x04e0: return "_wcslwr_s_l";
-  case 0x04e1: return "_wcsncoll";
-  case 0x04e2: return "_wcsncoll_l";
-  case 0x04e3: return "_wcsnicmp";
-  case 0x04e4: return "_wcsnicmp_l";
-  case 0x04e5: return "_wcsnicoll";
-  case 0x04e6: return "_wcsnicoll_l";
-  case 0x04e7: return "_wcsnset";
-  case 0x04e8: return "_wcsnset_s";
-  case 0x04e9: return "_wcsrev";
-  case 0x04ea: return "_wcsset";
-  case 0x04eb: return "_wcsset_s";
-  case 0x04ec: return "_wcstod_l";
-  case 0x04ed: return "_wcstoi64";
-  case 0x04ee: return "_wcstoi64_l";
-  case 0x04ef: return "_wcstol_l";
-  case 0x04f0: return "_wcstombs_l";
-  case 0x04f1: return "_wcstombs_s_l";
-  case 0x04f2: return "_wcstoui64";
-  case 0x04f3: return "_wcstoui64_l";
-  case 0x04f4: return "_wcstoul_l";
-  case 0x04f5: return "_wcsupr";
-  case 0x04f6: return "_wcsupr_l";
-  case 0x04f7: return "_wcsupr_s";
-  case 0x04f8: return "_wcsupr_s_l";
-  case 0x04f9: return "_wcsxfrm_l";
-  case 0x04fa: return "_wctime32";
-  case 0x04fb: return "_wctime32_s";
-  case 0x04fc: return "_wctime64";
-  case 0x04fd: return "_wctime64_s";
-  case 0x04fe: return "_wctomb_l";
-  case 0x04ff: return "_wctomb_s_l";
-  case 0x0500: return "_wctype";
-  case 0x0501: return "_wdupenv_s";
-  case 0x0502: return "_wenviron";
-  case 0x0503: return "_wexecl";
-  case 0x0504: return "_wexecle";
-  case 0x0505: return "_wexeclp";
-  case 0x0506: return "_wexeclpe";
-  case 0x0507: return "_wexecv";
-  case 0x0508: return "_wexecve";
-  case 0x0509: return "_wexecvp";
-  case 0x050a: return "_wexecvpe";
-  case 0x050b: return "_wfdopen";
-  case 0x050c: return "_wfindfirst32";
-  case 0x050d: return "_wfindfirst32i64";
-  case 0x050e: return "_wfindfirst64";
-  case 0x050f: return "_wfindfirst64i32";
-  case 0x0510: return "_wfindnext32";
-  case 0x0511: return "_wfindnext32i64";
-  case 0x0512: return "_wfindnext64";
-  case 0x0513: return "_wfindnext64i32";
-  case 0x0514: return "_wfopen";
-  case 0x0515: return "_wfopen_s";
-  case 0x0516: return "_wfreopen";
-  case 0x0517: return "_wfreopen_s";
-  case 0x0518: return "_wfsopen";
-  case 0x0519: return "_wfullpath";
-  case 0x051a: return "_wgetcwd";
-  case 0x051b: return "_wgetdcwd";
-  case 0x051c: return "_wgetdcwd_nolock";
-  case 0x051d: return "_wgetenv";
-  case 0x051e: return "_wgetenv_s";
-  case 0x051f: return "_wmakepath";
-  case 0x0520: return "_wmakepath_s";
-  case 0x0521: return "_wmkdir";
-  case 0x0522: return "_wmktemp";
-  case 0x0523: return "_wmktemp_s";
-  case 0x0524: return "_wopen";
-  case 0x0525: return "_wperror";
-  case 0x0526: return "_wpgmptr";
-  case 0x0527: return "_wpopen";
-  case 0x0528: return "_wprintf_l";
-  case 0x0529: return "_wprintf_p";
-  case 0x052a: return "_wprintf_p_l";
-  case 0x052b: return "_wprintf_s_l";
-  case 0x052c: return "_wputenv";
-  case 0x052d: return "_wputenv_s";
-  case 0x052e: return "_wremove";
-  case 0x052f: return "_wrename";
-  case 0x0530: return "_write";
-  case 0x0531: return "_wrmdir";
-  case 0x0532: return "_wscanf_l";
-  case 0x0533: return "_wscanf_s_l";
-  case 0x0534: return "_wsearchenv";
-  case 0x0535: return "_wsearchenv_s";
-  case 0x0536: return "_wsetlocale";
-  case 0x0537: return "_wsopen";
-  case 0x0538: return "_wsopen_s";
-  case 0x0539: return "_wspawnl";
-  case 0x053a: return "_wspawnle";
-  case 0x053b: return "_wspawnlp";
-  case 0x053c: return "_wspawnlpe";
-  case 0x053d: return "_wspawnv";
-  case 0x053e: return "_wspawnve";
-  case 0x053f: return "_wspawnvp";
-  case 0x0540: return "_wspawnvpe";
-  case 0x0541: return "_wsplitpath";
-  case 0x0542: return "_wsplitpath_s";
-  case 0x0543: return "_wstat32";
-  case 0x0544: return "_wstat32i64";
-  case 0x0545: return "_wstat64";
-  case 0x0546: return "_wstat64i32";
-  case 0x0547: return "_wstrdate";
-  case 0x0548: return "_wstrdate_s";
-  case 0x0549: return "_wstrtime";
-  case 0x054a: return "_wstrtime_s";
-  case 0x054b: return "_wsystem";
-  case 0x054c: return "_wtempnam";
-  case 0x054d: return "_wtmpnam";
-  case 0x054e: return "_wtmpnam_s";
-  case 0x054f: return "_wtof";
-  case 0x0550: return "_wtof_l";
-  case 0x0551: return "_wtoi";
-  case 0x0552: return "_wtoi64";
-  case 0x0553: return "_wtoi64_l";
-  case 0x0554: return "_wtoi_l";
-  case 0x0555: return "_wtol";
-  case 0x0556: return "_wtol_l";
-  case 0x0557: return "_wunlink";
-  case 0x0558: return "_wutime32";
-  case 0x0559: return "_wutime64";
-  case 0x055a: return "_y0";
-  case 0x055b: return "_y1";
-  case 0x055c: return "_yn";
-  case 0x055d: return "abort";
-  case 0x055e: return "abs";
-  case 0x055f: return "acos";
-  case 0x0560: return "asctime";
-  case 0x0561: return "asctime_s";
-  case 0x0562: return "asin";
-  case 0x0563: return "atan";
-  case 0x0564: return "atan2";
-  case 0x0565: return "atexit";
-  case 0x0566: return "atof";
-  case 0x0567: return "atoi";
-  case 0x0568: return "atol";
-  case 0x0569: return "bsearch";
-  case 0x056a: return "bsearch_s";
-  case 0x056b: return "btowc";
-  case 0x056c: return "calloc";
-  case 0x056d: return "ceil";
-  case 0x056e: return "clearerr";
-  case 0x056f: return "clearerr_s";
-  case 0x0570: return "clock";
-  case 0x0571: return "cos";
-  case 0x0572: return "cosh";
-  case 0x0573: return "div";
-  case 0x0574: return "exit";
-  case 0x0575: return "exp";
-  case 0x0576: return "fabs";
-  case 0x0577: return "fclose";
-  case 0x0578: return "feof";
-  case 0x0579: return "ferror";
-  case 0x057a: return "fflush";
-  case 0x057b: return "fgetc";
-  case 0x057c: return "fgetpos";
-  case 0x057d: return "fgets";
-  case 0x057e: return "fgetwc";
-  case 0x057f: return "fgetws";
-  case 0x0580: return "floor";
-  case 0x0581: return "fmod";
-  case 0x0582: return "fopen";
-  case 0x0583: return "fopen_s";
-  case 0x0584: return "fprintf";
-  case 0x0585: return "fprintf_s";
-  case 0x0586: return "fputc";
-  case 0x0587: return "fputs";
-  case 0x0588: return "fputwc";
-  case 0x0589: return "fputws";
-  case 0x058a: return "fread";
-  case 0x058b: return "fread_s";
-  case 0x058c: return "free";
-  case 0x058d: return "freopen";
-  case 0x058e: return "freopen_s";
-  case 0x058f: return "frexp";
-  case 0x0590: return "fscanf";
-  case 0x0591: return "fscanf_s";
-  case 0x0592: return "fseek";
-  case 0x0593: return "fsetpos";
-  case 0x0594: return "ftell";
-  case 0x0595: return "fwprintf";
-  case 0x0596: return "fwprintf_s";
-  case 0x0597: return "fwrite";
-  case 0x0598: return "fwscanf";
-  case 0x0599: return "fwscanf_s";
-  case 0x059a: return "getc";
-  case 0x059b: return "getchar";
-  case 0x059c: return "getenv";
-  case 0x059d: return "getenv_s";
-  case 0x059e: return "gets";
-  case 0x059f: return "gets_s";
-  case 0x05a0: return "getwc";
-  case 0x05a1: return "getwchar";
-  case 0x05a2: return "is_wctype";
-  case 0x05a3: return "isalnum";
-  case 0x05a4: return "isalpha";
-  case 0x05a5: return "iscntrl";
-  case 0x05a6: return "isdigit";
-  case 0x05a7: return "isgraph";
-  case 0x05a8: return "isleadbyte";
-  case 0x05a9: return "islower";
-  case 0x05aa: return "isprint";
-  case 0x05ab: return "ispunct";
-  case 0x05ac: return "isspace";
-  case 0x05ad: return "isupper";
-  case 0x05ae: return "iswalnum";
-  case 0x05af: return "iswalpha";
-  case 0x05b0: return "iswascii";
-  case 0x05b1: return "iswcntrl";
-  case 0x05b2: return "iswctype";
-  case 0x05b3: return "iswdigit";
-  case 0x05b4: return "iswgraph";
-  case 0x05b5: return "iswlower";
-  case 0x05b6: return "iswprint";
-  case 0x05b7: return "iswpunct";
-  case 0x05b8: return "iswspace";
-  case 0x05b9: return "iswupper";
-  case 0x05ba: return "iswxdigit";
-  case 0x05bb: return "isxdigit";
-  case 0x05bc: return "labs";
-  case 0x05bd: return "ldexp";
-  case 0x05be: return "ldiv";
-  case 0x05bf: return "llabs";
-  case 0x05c0: return "lldiv";
-  case 0x05c1: return "localeconv";
-  case 0x05c2: return "log";
-  case 0x05c3: return "log10";
-  case 0x05c4: return "longjmp";
-  case 0x05c5: return "malloc";
-  case 0x05c6: return "mblen";
-  case 0x05c7: return "mbrlen";
-  case 0x05c8: return "mbrtowc";
-  case 0x05c9: return "mbsrtowcs";
-  case 0x05ca: return "mbsrtowcs_s";
-  case 0x05cb: return "mbstowcs";
-  case 0x05cc: return "mbstowcs_s";
-  case 0x05cd: return "mbtowc";
-  case 0x05ce: return "memchr";
-  case 0x05cf: return "memcmp";
-  case 0x05d0: return "memcpy";
-  case 0x05d1: return "memcpy_s";
-  case 0x05d2: return "memmove";
-  case 0x05d3: return "memmove_s";
-  case 0x05d4: return "memset";
-  case 0x05d5: return "modf";
-  case 0x05d6: return "perror";
-  case 0x05d7: return "pow";
-  case 0x05d8: return "printf";
-  case 0x05d9: return "printf_s";
-  case 0x05da: return "putc";
-  case 0x05db: return "putchar";
-  case 0x05dc: return "puts";
-  case 0x05dd: return "putwc";
-  case 0x05de: return "putwchar";
-  case 0x05df: return "qsort";
-  case 0x05e0: return "qsort_s";
-  case 0x05e1: return "raise";
-  case 0x05e2: return "rand";
-  case 0x05e3: return "rand_s";
-  case 0x05e4: return "realloc";
-  case 0x05e5: return "remove";
-  case 0x05e6: return "rename";
-  case 0x05e7: return "rewind";
-  case 0x05e8: return "scanf";
-  case 0x05e9: return "scanf_s";
-  case 0x05ea: return "setbuf";
-  case 0x05eb: return "setlocale";
-  case 0x05ec: return "setvbuf";
-  case 0x05ed: return "signal";
-  case 0x05ee: return "sin";
-  case 0x05ef: return "sinh";
-  case 0x05f0: return "sprintf";
-  case 0x05f1: return "sprintf_s";
-  case 0x05f2: return "sqrt";
-  case 0x05f3: return "srand";
-  case 0x05f4: return "sscanf";
-  case 0x05f5: return "sscanf_s";
-  case 0x05f6: return "strcat";
-  case 0x05f7: return "strcat_s";
-  case 0x05f8: return "strchr";
-  case 0x05f9: return "strcmp";
-  case 0x05fa: return "strcoll";
-  case 0x05fb: return "strcpy";
-  case 0x05fc: return "strcpy_s";
-  case 0x05fd: return "strcspn";
-  case 0x05fe: return "strerror";
-  case 0x05ff: return "strerror_s";
-  case 0x0600: return "strftime";
-  case 0x0601: return "strlen";
-  case 0x0602: return "strncat";
-  case 0x0603: return "strncat_s";
-  case 0x0604: return "strncmp";
-  case 0x0605: return "strncpy";
-  case 0x0606: return "strncpy_s";
-  case 0x0607: return "strnlen";
-  case 0x0608: return "strpbrk";
-  case 0x0609: return "strrchr";
-  case 0x060a: return "strspn";
-  case 0x060b: return "strstr";
-  case 0x060c: return "strtod";
-  case 0x060d: return "strtok";
-  case 0x060e: return "strtok_s";
-  case 0x060f: return "strtol";
-  case 0x0610: return "strtoul";
-  case 0x0611: return "strxfrm";
-  case 0x0612: return "swprintf_s";
-  case 0x0613: return "swscanf";
-  case 0x0614: return "swscanf_s";
-  case 0x0615: return "system";
-  case 0x0616: return "tan";
-  case 0x0617: return "tanh";
-  case 0x0618: return "tmpfile";
-  case 0x0619: return "tmpfile_s";
-  case 0x061a: return "tmpnam";
-  case 0x061b: return "tmpnam_s";
-  case 0x061c: return "tolower";
-  case 0x061d: return "toupper";
-  case 0x061e: return "towlower";
-  case 0x061f: return "towupper";
-  case 0x0620: return "ungetc";
-  case 0x0621: return "ungetwc";
-  case 0x0622: return "vfprintf";
-  case 0x0623: return "vfprintf_s";
-  case 0x0624: return "vfwprintf";
-  case 0x0625: return "vfwprintf_s";
-  case 0x0626: return "vprintf";
-  case 0x0627: return "vprintf_s";
-  case 0x0628: return "vsprintf";
-  case 0x0629: return "vsprintf_s";
-  case 0x062a: return "vswprintf_s";
-  case 0x062b: return "vwprintf";
-  case 0x062c: return "vwprintf_s";
-  case 0x062d: return "wcrtomb";
-  case 0x062e: return "wcrtomb_s";
-  case 0x062f: return "wcscat";
-  case 0x0630: return "wcscat_s";
-  case 0x0631: return "wcschr";
-  case 0x0632: return "wcscmp";
-  case 0x0633: return "wcscoll";
-  case 0x0634: return "wcscpy";
-  case 0x0635: return "wcscpy_s";
-  case 0x0636: return "wcscspn";
-  case 0x0637: return "wcsftime";
-  case 0x0638: return "wcslen";
-  case 0x0639: return "wcsncat";
-  case 0x063a: return "wcsncat_s";
-  case 0x063b: return "wcsncmp";
-  case 0x063c: return "wcsncpy";
-  case 0x063d: return "wcsncpy_s";
-  case 0x063e: return "wcsnlen";
-  case 0x063f: return "wcspbrk";
-  case 0x0640: return "wcsrchr";
-  case 0x0641: return "wcsrtombs";
-  case 0x0642: return "wcsrtombs_s";
-  case 0x0643: return "wcsspn";
-  case 0x0644: return "wcsstr";
-  case 0x0645: return "wcstod";
-  case 0x0646: return "wcstok";
-  case 0x0647: return "wcstok_s";
-  case 0x0648: return "wcstol";
-  case 0x0649: return "wcstombs";
-  case 0x064a: return "wcstombs_s";
-  case 0x064b: return "wcstoul";
-  case 0x064c: return "wcsxfrm";
-  case 0x064d: return "wctob";
-  case 0x064e: return "wctomb";
-  case 0x064f: return "wctomb_s";
-  case 0x0650: return "wmemcpy_s";
-  case 0x0651: return "wmemmove_s";
-  case 0x0652: return "wprintf";
-  case 0x0653: return "wprintf_s";
-  case 0x0654: return "wscanf";
-  case 0x0655: return "wscanf_s";
+  switch (i) {
+    case 0x010f: return "$I10_OUTPUT";
+    case 0x0001: return "??0?$_SpinWait@$00@details@Concurrency@@QAE@P6AXXZ@Z";
+    case 0x0002: return "??0?$_SpinWait@$0A@@details@Concurrency@@QAE@P6AXXZ@Z";
+    case 0x0003: return "??0SchedulerPolicy@Concurrency@@QAA@IZZ";
+    case 0x0004: return "??0SchedulerPolicy@Concurrency@@QAE@ABV01@@Z";
+    case 0x0005: return "??0SchedulerPolicy@Concurrency@@QAE@XZ";
+    case 0x0006: return "??0_NonReentrantBlockingLock@details@Concurrency@@QAE@XZ";
+    case 0x0007: return "??0_NonReentrantPPLLock@details@Concurrency@@QAE@XZ";
+    case 0x0008: return "??0_ReaderWriterLock@details@Concurrency@@QAE@XZ";
+    case 0x0009: return "??0_ReentrantBlockingLock@details@Concurrency@@QAE@XZ";
+    case 0x000a: return "??0_ReentrantLock@details@Concurrency@@QAE@XZ";
+    case 0x000b: return "??0_ReentrantPPLLock@details@Concurrency@@QAE@XZ";
+    case 0x000c:
+      return "??0_Scoped_lock@_NonReentrantPPLLock@details@Concurrency@@QAE@"
+             "AAV123@@Z";
+    case 0x000d:
+      return "??0_Scoped_lock@_ReentrantPPLLock@details@Concurrency@@QAE@AAV123@@"
+             "Z";
+    case 0x000e: return "??0_SpinLock@details@Concurrency@@QAE@ACJ@Z";
+    case 0x000f: return "??0_TaskCollection@details@Concurrency@@QAE@XZ";
+    case 0x0010: return "??0_Timer@details@Concurrency@@IAE@I_N@Z";
+    case 0x0011: return "??0__non_rtti_object@std@@QAE@ABV01@@Z";
+    case 0x0012: return "??0__non_rtti_object@std@@QAE@PBD@Z";
+    case 0x0013: return "??0bad_cast@std@@AAE@PBQBD@Z";
+    case 0x0014: return "??0bad_cast@std@@QAE@ABV01@@Z";
+    case 0x0015: return "??0bad_cast@std@@QAE@PBD@Z";
+    case 0x0016: return "??0bad_target@Concurrency@@QAE@PBD@Z";
+    case 0x0017: return "??0bad_target@Concurrency@@QAE@XZ";
+    case 0x0018: return "??0bad_typeid@std@@QAE@ABV01@@Z";
+    case 0x0019: return "??0bad_typeid@std@@QAE@PBD@Z";
+    case 0x001a: return "??0context_self_unblock@Concurrency@@QAE@PBD@Z";
+    case 0x001b: return "??0context_self_unblock@Concurrency@@QAE@XZ";
+    case 0x001c: return "??0context_unblock_unbalanced@Concurrency@@QAE@PBD@Z";
+    case 0x001d: return "??0context_unblock_unbalanced@Concurrency@@QAE@XZ";
+    case 0x001e: return "??0critical_section@Concurrency@@QAE@XZ";
+    case 0x001f: return "??0default_scheduler_exists@Concurrency@@QAE@PBD@Z";
+    case 0x0020: return "??0default_scheduler_exists@Concurrency@@QAE@XZ";
+    case 0x0021: return "??0event@Concurrency@@QAE@XZ";
+    case 0x0022: return "??0exception@std@@QAE@ABQBD@Z";
+    case 0x0023: return "??0exception@std@@QAE@ABQBDH@Z";
+    case 0x0024: return "??0exception@std@@QAE@ABV01@@Z";
+    case 0x0025: return "??0exception@std@@QAE@XZ";
+    case 0x0026: return "??0improper_lock@Concurrency@@QAE@PBD@Z";
+    case 0x0027: return "??0improper_lock@Concurrency@@QAE@XZ";
+    case 0x0028: return "??0improper_scheduler_attach@Concurrency@@QAE@PBD@Z";
+    case 0x0029: return "??0improper_scheduler_attach@Concurrency@@QAE@XZ";
+    case 0x002a: return "??0improper_scheduler_detach@Concurrency@@QAE@PBD@Z";
+    case 0x002b: return "??0improper_scheduler_detach@Concurrency@@QAE@XZ";
+    case 0x002c: return "??0improper_scheduler_reference@Concurrency@@QAE@PBD@Z";
+    case 0x002d: return "??0improper_scheduler_reference@Concurrency@@QAE@XZ";
+    case 0x002e: return "??0invalid_link_target@Concurrency@@QAE@PBD@Z";
+    case 0x002f: return "??0invalid_link_target@Concurrency@@QAE@XZ";
+    case 0x0030: return "??0invalid_multiple_scheduling@Concurrency@@QAE@PBD@Z";
+    case 0x0031: return "??0invalid_multiple_scheduling@Concurrency@@QAE@XZ";
+    case 0x0032: return "??0invalid_operation@Concurrency@@QAE@PBD@Z";
+    case 0x0033: return "??0invalid_operation@Concurrency@@QAE@XZ";
+    case 0x0034:
+      return "??0invalid_oversubscribe_operation@Concurrency@@QAE@PBD@Z";
+    case 0x0035: return "??0invalid_oversubscribe_operation@Concurrency@@QAE@XZ";
+    case 0x0036: return "??0invalid_scheduler_policy_key@Concurrency@@QAE@PBD@Z";
+    case 0x0037: return "??0invalid_scheduler_policy_key@Concurrency@@QAE@XZ";
+    case 0x0038:
+      return "??0invalid_scheduler_policy_thread_specification@Concurrency@@QAE@"
+             "PBD@Z";
+    case 0x0039:
+      return "??0invalid_scheduler_policy_thread_specification@Concurrency@@QAE@"
+             "XZ";
+    case 0x003a: return "??0invalid_scheduler_policy_value@Concurrency@@QAE@PBD@Z";
+    case 0x003b: return "??0invalid_scheduler_policy_value@Concurrency@@QAE@XZ";
+    case 0x003c: return "??0message_not_found@Concurrency@@QAE@PBD@Z";
+    case 0x003d: return "??0message_not_found@Concurrency@@QAE@XZ";
+    case 0x003e: return "??0missing_wait@Concurrency@@QAE@PBD@Z";
+    case 0x003f: return "??0missing_wait@Concurrency@@QAE@XZ";
+    case 0x0040:
+      return "??0nested_scheduler_missing_detach@Concurrency@@QAE@PBD@Z";
+    case 0x0041: return "??0nested_scheduler_missing_detach@Concurrency@@QAE@XZ";
+    case 0x0042: return "??0operation_timed_out@Concurrency@@QAE@PBD@Z";
+    case 0x0043: return "??0operation_timed_out@Concurrency@@QAE@XZ";
+    case 0x0044: return "??0reader_writer_lock@Concurrency@@QAE@XZ";
+    case 0x0045: return "??0scheduler_not_attached@Concurrency@@QAE@PBD@Z";
+    case 0x0046: return "??0scheduler_not_attached@Concurrency@@QAE@XZ";
+    case 0x0047:
+      return "??0scheduler_resource_allocation_error@Concurrency@@QAE@J@Z";
+    case 0x0048:
+      return "??0scheduler_resource_allocation_error@Concurrency@@QAE@PBDJ@Z";
+    case 0x0049:
+      return "??0scoped_lock@critical_section@Concurrency@@QAE@AAV12@@Z";
+    case 0x004a:
+      return "??0scoped_lock@reader_writer_lock@Concurrency@@QAE@AAV12@@Z";
+    case 0x004b:
+      return "??0scoped_lock_read@reader_writer_lock@Concurrency@@QAE@AAV12@@Z";
+    case 0x004c: return "??0task_canceled@details@Concurrency@@QAE@PBD@Z";
+    case 0x004d: return "??0task_canceled@details@Concurrency@@QAE@XZ";
+    case 0x004e: return "??0unsupported_os@Concurrency@@QAE@PBD@Z";
+    case 0x004f: return "??0unsupported_os@Concurrency@@QAE@XZ";
+    case 0x0050: return "??1SchedulerPolicy@Concurrency@@QAE@XZ";
+    case 0x0051: return "??1_NonReentrantBlockingLock@details@Concurrency@@QAE@XZ";
+    case 0x0052: return "??1_ReentrantBlockingLock@details@Concurrency@@QAE@XZ";
+    case 0x0053:
+      return "??1_Scoped_lock@_NonReentrantPPLLock@details@Concurrency@@QAE@XZ";
+    case 0x0054:
+      return "??1_Scoped_lock@_ReentrantPPLLock@details@Concurrency@@QAE@XZ";
+    case 0x0055: return "??1_SpinLock@details@Concurrency@@QAE@XZ";
+    case 0x0056: return "??1_TaskCollection@details@Concurrency@@QAE@XZ";
+    case 0x0057: return "??1_Timer@details@Concurrency@@IAE@XZ";
+    case 0x0058: return "??1__non_rtti_object@std@@UAE@XZ";
+    case 0x0059: return "??1bad_cast@std@@UAE@XZ";
+    case 0x005a: return "??1bad_typeid@std@@UAE@XZ";
+    case 0x005b: return "??1critical_section@Concurrency@@QAE@XZ";
+    case 0x005c: return "??1event@Concurrency@@QAE@XZ";
+    case 0x005d: return "??1exception@std@@UAE@XZ";
+    case 0x005e: return "??1reader_writer_lock@Concurrency@@QAE@XZ";
+    case 0x005f: return "??1scoped_lock@critical_section@Concurrency@@QAE@XZ";
+    case 0x0060: return "??1scoped_lock@reader_writer_lock@Concurrency@@QAE@XZ";
+    case 0x0061:
+      return "??1scoped_lock_read@reader_writer_lock@Concurrency@@QAE@XZ";
+    case 0x0062: return "??1type_info@@UAE@XZ";
+    case 0x0063: return "??2@YAPAXI@Z";
+    case 0x0064: return "??2@YAPAXIHPBDH@Z";
+    case 0x0065: return "??3@YAXPAX@Z";
+    case 0x0066:
+      return "??4?$_SpinWait@$00@details@Concurrency@@QAEAAV012@ABV012@@Z";
+    case 0x0067:
+      return "??4?$_SpinWait@$0A@@details@Concurrency@@QAEAAV012@ABV012@@Z";
+    case 0x0068: return "??4SchedulerPolicy@Concurrency@@QAEAAV01@ABV01@@Z";
+    case 0x0069: return "??4__non_rtti_object@std@@QAEAAV01@ABV01@@Z";
+    case 0x006a: return "??4bad_cast@std@@QAEAAV01@ABV01@@Z";
+    case 0x006b: return "??4bad_typeid@std@@QAEAAV01@ABV01@@Z";
+    case 0x006c: return "??4exception@std@@QAEAAV01@ABV01@@Z";
+    case 0x006d: return "??8type_info@@QBE_NABV0@@Z";
+    case 0x006e: return "??9type_info@@QBE_NABV0@@Z";
+    case 0x006f: return "??_7__non_rtti_object@std@@6B@";
+    case 0x0070: return "??_7bad_cast@std@@6B@";
+    case 0x0071: return "??_7bad_typeid@std@@6B@";
+    case 0x0072: return "??_7exception@@6B@";
+    case 0x0073: return "??_7exception@std@@6B@";
+    case 0x0074: return "??_F?$_SpinWait@$00@details@Concurrency@@QAEXXZ";
+    case 0x0075: return "??_F?$_SpinWait@$0A@@details@Concurrency@@QAEXXZ";
+    case 0x0076: return "??_Fbad_cast@std@@QAEXXZ";
+    case 0x0077: return "??_Fbad_typeid@std@@QAEXXZ";
+    case 0x0078: return "??_U@YAPAXI@Z";
+    case 0x0079: return "??_U@YAPAXIHPBDH@Z";
+    case 0x007a: return "??_V@YAXPAX@Z";
+    case 0x007b: return "?Alloc@Concurrency@@YAPAXI@Z";
+    case 0x007c: return "?Block@Context@Concurrency@@SAXXZ";
+    case 0x007d:
+      return "?Create@CurrentScheduler@Concurrency@@SAXABVSchedulerPolicy@2@@Z";
+    case 0x007e:
+      return "?Create@Scheduler@Concurrency@@SAPAV12@ABVSchedulerPolicy@2@@Z";
+    case 0x007f:
+      return "?CreateResourceManager@Concurrency@@YAPAUIResourceManager@1@XZ";
+    case 0x0080:
+      return "?CreateScheduleGroup@CurrentScheduler@Concurrency@@"
+             "SAPAVScheduleGroup@2@XZ";
+    case 0x0081: return "?CurrentContext@Context@Concurrency@@SAPAV12@XZ";
+    case 0x0082: return "?Detach@CurrentScheduler@Concurrency@@SAXXZ";
+    case 0x0083: return "?DisableTracing@Concurrency@@YAJXZ";
+    case 0x0084: return "?EnableTracing@Concurrency@@YAJXZ";
+    case 0x0085: return "?Free@Concurrency@@YAXPAX@Z";
+    case 0x0086: return "?Get@CurrentScheduler@Concurrency@@SAPAVScheduler@2@XZ";
+    case 0x0087: return "?GetExecutionContextId@Concurrency@@YAIXZ";
+    case 0x0088:
+      return "?GetNumberOfVirtualProcessors@CurrentScheduler@Concurrency@@SAIXZ";
+    case 0x0089:
+      return "?GetOSVersion@Concurrency@@YA?AW4OSVersion@IResourceManager@1@XZ";
+    case 0x008a:
+      return "?GetPolicy@CurrentScheduler@Concurrency@@SA?AVSchedulerPolicy@2@XZ";
+    case 0x008b:
+      return "?GetPolicyValue@SchedulerPolicy@Concurrency@@QBEIW4PolicyElementKey@"
+             "2@@Z";
+    case 0x008c: return "?GetProcessorCount@Concurrency@@YAIXZ";
+    case 0x008d: return "?GetProcessorNodeCount@Concurrency@@YAIXZ";
+    case 0x008e: return "?GetSchedulerId@Concurrency@@YAIXZ";
+    case 0x008f: return "?GetSharedTimerQueue@details@Concurrency@@YAPAXXZ";
+    case 0x0090: return "?Id@Context@Concurrency@@SAIXZ";
+    case 0x0091: return "?Id@CurrentScheduler@Concurrency@@SAIXZ";
+    case 0x0092:
+      return "?IsCurrentTaskCollectionCanceling@Context@Concurrency@@SA_NXZ";
+    case 0x0093: return "?Log2@details@Concurrency@@YAKI@Z";
+    case 0x0094: return "?Oversubscribe@Context@Concurrency@@SAX_N@Z";
+    case 0x0095:
+      return "?RegisterShutdownEvent@CurrentScheduler@Concurrency@@SAXPAX@Z";
+    case 0x0096:
+      return "?ResetDefaultSchedulerPolicy@Scheduler@Concurrency@@SAXXZ";
+    case 0x0097: return "?ScheduleGroupId@Context@Concurrency@@SAIXZ";
+    case 0x0098:
+      return "?ScheduleTask@CurrentScheduler@Concurrency@@SAXP6AXPAX@Z0@Z";
+    case 0x0099:
+      return "?SetConcurrencyLimits@SchedulerPolicy@Concurrency@@QAEXII@Z";
+    case 0x009a:
+      return "?SetDefaultSchedulerPolicy@Scheduler@Concurrency@@"
+             "SAXABVSchedulerPolicy@2@@Z";
+    case 0x009b:
+      return "?SetPolicyValue@SchedulerPolicy@Concurrency@@QAEIW4PolicyElementKey@"
+             "2@I@Z";
+    case 0x009c: return "?VirtualProcessorId@Context@Concurrency@@SAIXZ";
+    case 0x009d: return "?Yield@Context@Concurrency@@SAXXZ";
+    case 0x009e:
+      return "?_Abort@_StructuredTaskCollection@details@Concurrency@@AAEXXZ";
+    case 0x009f:
+      return "?_Acquire@_NonReentrantBlockingLock@details@Concurrency@@QAEXXZ";
+    case 0x00a0:
+      return "?_Acquire@_NonReentrantPPLLock@details@Concurrency@@QAEXPAX@Z";
+    case 0x00a1:
+      return "?_Acquire@_ReentrantBlockingLock@details@Concurrency@@QAEXXZ";
+    case 0x00a2: return "?_Acquire@_ReentrantLock@details@Concurrency@@QAEXXZ";
+    case 0x00a3:
+      return "?_Acquire@_ReentrantPPLLock@details@Concurrency@@QAEXPAX@Z";
+    case 0x00a4:
+      return "?_AcquireRead@_ReaderWriterLock@details@Concurrency@@QAEXXZ";
+    case 0x00a5:
+      return "?_AcquireWrite@_ReaderWriterLock@details@Concurrency@@QAEXXZ";
+    case 0x00a6:
+      return "?_Cancel@_StructuredTaskCollection@details@Concurrency@@QAEXXZ";
+    case 0x00a7: return "?_Cancel@_TaskCollection@details@Concurrency@@QAEXXZ";
+    case 0x00a8:
+      return "?_CheckTaskCollection@_UnrealizedChore@details@Concurrency@@IAEXXZ";
+    case 0x00a9: return "?_ConcRT_Assert@details@Concurrency@@YAXPBD0H@Z";
+    case 0x00aa: return "?_ConcRT_CoreAssert@details@Concurrency@@YAXPBD0H@Z";
+    case 0x00ab: return "?_ConcRT_DumpMessage@details@Concurrency@@YAXPB_WZZ";
+    case 0x00ac: return "?_ConcRT_Trace@details@Concurrency@@YAXHPB_WZZ";
+    case 0x00ad: return "?_Copy_str@exception@std@@AAEXPBD@Z";
+    case 0x00ae: return "?_DoYield@?$_SpinWait@$00@details@Concurrency@@IAEXXZ";
+    case 0x00af: return "?_DoYield@?$_SpinWait@$0A@@details@Concurrency@@IAEXXZ";
+    case 0x00b0:
+      return "?_IsCanceling@_StructuredTaskCollection@details@Concurrency@@QAE_"
+             "NXZ";
+    case 0x00b1:
+      return "?_IsCanceling@_TaskCollection@details@Concurrency@@QAE_NXZ";
+    case 0x00b2: return "?_Name_base@type_info@@CAPBDPBV1@PAU__type_info_node@@@Z";
+    case 0x00b3:
+      return "?_Name_base_internal@type_info@@CAPBDPBV1@PAU__type_info_node@@@Z";
+    case 0x00b4:
+      return "?_NumberOfSpins@?$_SpinWait@$00@details@Concurrency@@IAEKXZ";
+    case 0x00b5:
+      return "?_NumberOfSpins@?$_SpinWait@$0A@@details@Concurrency@@IAEKXZ";
+    case 0x00b6:
+      return "?_Release@_NonReentrantBlockingLock@details@Concurrency@@QAEXXZ";
+    case 0x00b7:
+      return "?_Release@_NonReentrantPPLLock@details@Concurrency@@QAEXXZ";
+    case 0x00b8:
+      return "?_Release@_ReentrantBlockingLock@details@Concurrency@@QAEXXZ";
+    case 0x00b9: return "?_Release@_ReentrantLock@details@Concurrency@@QAEXXZ";
+    case 0x00ba: return "?_Release@_ReentrantPPLLock@details@Concurrency@@QAEXXZ";
+    case 0x00bb:
+      return "?_ReleaseRead@_ReaderWriterLock@details@Concurrency@@QAEXXZ";
+    case 0x00bc:
+      return "?_ReleaseWrite@_ReaderWriterLock@details@Concurrency@@QAEXXZ";
+    case 0x00bd: return "?_Reset@?$_SpinWait@$00@details@Concurrency@@IAEXXZ";
+    case 0x00be: return "?_Reset@?$_SpinWait@$0A@@details@Concurrency@@IAEXXZ";
+    case 0x00bf:
+      return "?_RunAndWait@_StructuredTaskCollection@details@Concurrency@@QAG?AW4_"
+             "TaskCollectionStatus@23@PAV_UnrealizedChore@23@@Z";
+    case 0x00c0:
+      return "?_RunAndWait@_TaskCollection@details@Concurrency@@QAG?AW4_"
+             "TaskCollectionStatus@23@PAV_UnrealizedChore@23@@Z";
+    case 0x00c1:
+      return "?_Schedule@_StructuredTaskCollection@details@Concurrency@@QAEXPAV_"
+             "UnrealizedChore@23@@Z";
+    case 0x00c2:
+      return "?_Schedule@_TaskCollection@details@Concurrency@@QAEXPAV_"
+             "UnrealizedChore@23@@Z";
+    case 0x00c3:
+      return "?_SetSpinCount@?$_SpinWait@$00@details@Concurrency@@QAEXI@Z";
+    case 0x00c4:
+      return "?_SetSpinCount@?$_SpinWait@$0A@@details@Concurrency@@QAEXI@Z";
+    case 0x00c5:
+      return "?_ShouldSpinAgain@?$_SpinWait@$00@details@Concurrency@@IAE_NXZ";
+    case 0x00c6:
+      return "?_ShouldSpinAgain@?$_SpinWait@$0A@@details@Concurrency@@IAE_NXZ";
+    case 0x00c7: return "?_SpinOnce@?$_SpinWait@$00@details@Concurrency@@QAE_NXZ";
+    case 0x00c8: return "?_SpinOnce@?$_SpinWait@$0A@@details@Concurrency@@QAE_NXZ";
+    case 0x00c9: return "?_SpinYield@Context@Concurrency@@SAXXZ";
+    case 0x00ca: return "?_Start@_Timer@details@Concurrency@@IAEXXZ";
+    case 0x00cb: return "?_Stop@_Timer@details@Concurrency@@IAEXXZ";
+    case 0x00cc: return "?_Tidy@exception@std@@AAEXXZ";
+    case 0x00cd:
+      return "?_Trace_ppl_function@Concurrency@@YAXABU_GUID@@EW4ConcRT_EventType@"
+             "1@@Z";
+    case 0x00ce:
+      return "?_TryAcquire@_NonReentrantBlockingLock@details@Concurrency@@QAE_NXZ";
+    case 0x00cf:
+      return "?_TryAcquire@_ReentrantBlockingLock@details@Concurrency@@QAE_NXZ";
+    case 0x00d0: return "?_TryAcquire@_ReentrantLock@details@Concurrency@@QAE_NXZ";
+    case 0x00d1:
+      return "?_TryAcquireWrite@_ReaderWriterLock@details@Concurrency@@QAE_NXZ";
+    case 0x00d2: return "?_Type_info_dtor@type_info@@CAXPAV1@@Z";
+    case 0x00d3: return "?_Type_info_dtor_internal@type_info@@CAXPAV1@@Z";
+    case 0x00d4: return "?_UnderlyingYield@details@Concurrency@@YAXXZ";
+    case 0x00d5: return "?_ValidateExecute@@YAHP6GHXZ@Z";
+    case 0x00d6: return "?_ValidateRead@@YAHPBXI@Z";
+    case 0x00d7: return "?_ValidateWrite@@YAHPAXI@Z";
+    case 0x00d8: return "?_Value@_SpinCount@details@Concurrency@@SAIXZ";
+    case 0x00d9: return "?__ExceptionPtrAssign@@YAXPAXPBX@Z";
+    case 0x00da: return "?__ExceptionPtrCompare@@YA_NPBX0@Z";
+    case 0x00db: return "?__ExceptionPtrCopy@@YAXPAXPBX@Z";
+    case 0x00dc: return "?__ExceptionPtrCopyException@@YAXPAXPBX1@Z";
+    case 0x00dd: return "?__ExceptionPtrCreate@@YAXPAX@Z";
+    case 0x00de: return "?__ExceptionPtrCurrentException@@YAXPAX@Z";
+    case 0x00df: return "?__ExceptionPtrDestroy@@YAXPAX@Z";
+    case 0x00e0: return "?__ExceptionPtrRethrow@@YAXPBX@Z";
+    case 0x00e2: return "?_inconsistency@@YAXXZ";
+    case 0x00e3: return "?_invalid_parameter@@YAXPBG00II@Z";
+    case 0x00e4:
+      return "?_is_exception_typeof@@YAHABVtype_info@@PAU_EXCEPTION_POINTERS@@@Z";
+    case 0x00e5:
+      return "?_name_internal_method@type_info@@QBEPBDPAU__type_info_node@@@Z";
+    case 0x00e6: return "?_open@@YAHPBDHH@Z";
+    case 0x00e7: return "?_query_new_handler@@YAP6AHI@ZXZ";
+    case 0x00e8: return "?_query_new_mode@@YAHXZ";
+    case 0x00e9: return "?_set_new_handler@@YAP6AHI@ZH@Z";
+    case 0x00ea: return "?_set_new_handler@@YAP6AHI@ZP6AHI@Z@Z";
+    case 0x00eb: return "?_set_new_mode@@YAHH@Z";
+    case 0x00ec:
+      return "?_set_se_translator@@YAP6AXIPAU_EXCEPTION_POINTERS@@@ZH@Z";
+    case 0x00ed:
+      return "?_set_se_translator@@YAP6AXIPAU_EXCEPTION_POINTERS@@@ZP6AXI0@Z@Z";
+    case 0x00ee: return "?_sopen@@YAHPBDHHH@Z";
+    case 0x00ef: return "?_type_info_dtor_internal_method@type_info@@QAEXXZ";
+    case 0x00f0: return "?_wopen@@YAHPB_WHH@Z";
+    case 0x00f1: return "?_wsopen@@YAHPB_WHHH@Z";
+    case 0x00f2: return "?before@type_info@@QBEHABV1@@Z";
+    case 0x00f3:
+      return "?get_error_code@scheduler_resource_allocation_error@Concurrency@@"
+             "QBEJXZ";
+    case 0x00f4: return "?lock@critical_section@Concurrency@@QAEXXZ";
+    case 0x00f5: return "?lock@reader_writer_lock@Concurrency@@QAEXXZ";
+    case 0x00f6: return "?lock_read@reader_writer_lock@Concurrency@@QAEXXZ";
+    case 0x00f7: return "?name@type_info@@QBEPBDPAU__type_info_node@@@Z";
+    case 0x00f8: return "?native_handle@critical_section@Concurrency@@QAEAAV12@XZ";
+    case 0x00f9: return "?raw_name@type_info@@QBEPBDXZ";
+    case 0x00fa: return "?reset@event@Concurrency@@QAEXXZ";
+    case 0x00fb: return "?set@event@Concurrency@@QAEXXZ";
+    case 0x00fc: return "?set_new_handler@@YAP6AXXZP6AXXZ@Z";
+    case 0x00fd: return "?set_terminate@@YAP6AXXZH@Z";
+    case 0x00fe: return "?set_terminate@@YAP6AXXZP6AXXZ@Z";
+    case 0x00ff: return "?set_unexpected@@YAP6AXXZH@Z";
+    case 0x0100: return "?set_unexpected@@YAP6AXXZP6AXXZ@Z";
+    case 0x0101: return "?swprintf@@YAHPAGIPBGZZ";
+    case 0x0102: return "?swprintf@@YAHPA_WIPB_WZZ";
+    case 0x0103: return "?terminate@@YAXXZ";
+    case 0x0104: return "?try_lock@critical_section@Concurrency@@QAE_NXZ";
+    case 0x0105: return "?try_lock@reader_writer_lock@Concurrency@@QAE_NXZ";
+    case 0x0106: return "?try_lock_read@reader_writer_lock@Concurrency@@QAE_NXZ";
+    case 0x0107: return "?unexpected@@YAXXZ";
+    case 0x0108: return "?unlock@critical_section@Concurrency@@QAEXXZ";
+    case 0x0109: return "?unlock@reader_writer_lock@Concurrency@@QAEXXZ";
+    case 0x010a: return "?vswprintf@@YAHPA_WIPB_WPAD@Z";
+    case 0x010b: return "?wait@Concurrency@@YAXI@Z";
+    case 0x010c: return "?wait@event@Concurrency@@QAEII@Z";
+    case 0x010d: return "?wait_for_multiple@event@Concurrency@@SAIPAPAV12@I_NI@Z";
+    case 0x010e: return "?what@exception@std@@UBEPBDXZ";
+    case 0x0110: return "_CIacos";
+    case 0x0111: return "_CIasin";
+    case 0x0112: return "_CIatan";
+    case 0x0113: return "_CIatan2";
+    case 0x0114: return "_CIcos";
+    case 0x0115: return "_CIcosh";
+    case 0x0116: return "_CIexp";
+    case 0x0117: return "_CIfmod";
+    case 0x0118: return "_CIlog";
+    case 0x0119: return "_CIlog10";
+    case 0x011a: return "_CIpow";
+    case 0x011b: return "_CIsin";
+    case 0x011c: return "_CIsinh";
+    case 0x011d: return "_CIsqrt";
+    case 0x011e: return "_CItan";
+    case 0x011f: return "_CItanh";
+    case 0x0120: return "_CRT_RTC_INIT";
+    case 0x0121: return "_CRT_RTC_INITW";
+    case 0x0122: return "_CreateFrameInfo";
+    case 0x0123: return "_CxxThrowException";
+    case 0x0124: return "_EH_prolog";
+    case 0x0125: return "_FindAndUnlinkFrame";
+    case 0x0126: return "_Getdays";
+    case 0x0127: return "_Getmonths";
+    case 0x0128: return "_Gettnames";
+    case 0x0129: return "_HUGE";
+    case 0x012a: return "_IsExceptionObjectToBeDestroyed";
+    case 0x012b: return "_NLG_Dispatch2";
+    case 0x012c: return "_NLG_Return";
+    case 0x012d: return "_NLG_Return2";
+    case 0x012e: return "_Strftime";
+    case 0x012f: return "_XcptFilter";
+    case 0x0130: return "__AdjustPointer";
+    case 0x0131: return "__BuildCatchObject";
+    case 0x0132: return "__BuildCatchObjectHelper";
+    case 0x0133: return "__CppXcptFilter";
+    case 0x0134: return "__CxxCallUnwindDelDtor";
+    case 0x0135: return "__CxxCallUnwindDtor";
+    case 0x0136: return "__CxxCallUnwindStdDelDtor";
+    case 0x0137: return "__CxxCallUnwindVecDtor";
+    case 0x0138: return "__CxxDetectRethrow";
+    case 0x0139: return "__CxxExceptionFilter";
+    case 0x013a: return "__CxxFrameHandler";
+    case 0x013b: return "__CxxFrameHandler2";
+    case 0x013c: return "__CxxFrameHandler3";
+    case 0x013d: return "__CxxLongjmpUnwind";
+    case 0x013e: return "__CxxQueryExceptionSize";
+    case 0x013f: return "__CxxRegisterExceptionObject";
+    case 0x0140: return "__CxxUnregisterExceptionObject";
+    case 0x0141: return "__DestructExceptionObject";
+    case 0x0142: return "__FrameUnwindFilter";
+    case 0x0143: return "__RTCastToVoid";
+    case 0x0144: return "__RTDynamicCast";
+    case 0x0145: return "__RTtypeid";
+    case 0x0146: return "__STRINGTOLD";
+    case 0x0147: return "__STRINGTOLD_L";
+    case 0x0148: return "__TypeMatch";
+    case 0x015e: return "___fls_getvalue@4";
+    case 0x015f: return "___fls_setvalue@8";
+    case 0x0149: return "___lc_codepage_func";
+    case 0x014a: return "___lc_collate_cp_func";
+    case 0x014b: return "___lc_handle_func";
+    case 0x014c: return "___mb_cur_max_func";
+    case 0x014d: return "___mb_cur_max_l_func";
+    case 0x014e: return "___setlc_active_func";
+    case 0x014f: return "___unguarded_readlc_active_add_func";
+    case 0x0150: return "__argc";
+    case 0x0151: return "__argv";
+    case 0x0152: return "__badioinfo";
+    case 0x0153: return "__clean_type_info_names_internal";
+    case 0x0154: return "__control87_2";
+    case 0x0155: return "__create_locale";
+    case 0x0156: return "__crtCompareStringA";
+    case 0x0157: return "__crtCompareStringW";
+    case 0x0158: return "__crtLCMapStringA";
+    case 0x0159: return "__crtLCMapStringW";
+    case 0x015a: return "__daylight";
+    case 0x015b: return "__dllonexit";
+    case 0x015c: return "__doserrno";
+    case 0x015d: return "__dstbias";
+    case 0x0160: return "__fpecode";
+    case 0x0161: return "__free_locale";
+    case 0x0162: return "__get_current_locale";
+    case 0x0163: return "__get_flsindex";
+    case 0x0164: return "__get_tlsindex";
+    case 0x0165: return "__getmainargs";
+    case 0x0166: return "__initenv";
+    case 0x0167: return "__iob_func";
+    case 0x0168: return "__isascii";
+    case 0x0169: return "__iscsym";
+    case 0x016a: return "__iscsymf";
+    case 0x016b: return "__iswcsym";
+    case 0x016c: return "__iswcsymf";
+    case 0x016d: return "__lconv";
+    case 0x016e: return "__lconv_init";
+    case 0x016f: return "__libm_sse2_acos";
+    case 0x0170: return "__libm_sse2_acosf";
+    case 0x0171: return "__libm_sse2_asin";
+    case 0x0172: return "__libm_sse2_asinf";
+    case 0x0173: return "__libm_sse2_atan";
+    case 0x0174: return "__libm_sse2_atan2";
+    case 0x0175: return "__libm_sse2_atanf";
+    case 0x0176: return "__libm_sse2_cos";
+    case 0x0177: return "__libm_sse2_cosf";
+    case 0x0178: return "__libm_sse2_exp";
+    case 0x0179: return "__libm_sse2_expf";
+    case 0x017a: return "__libm_sse2_log";
+    case 0x017b: return "__libm_sse2_log10";
+    case 0x017c: return "__libm_sse2_log10f";
+    case 0x017d: return "__libm_sse2_logf";
+    case 0x017e: return "__libm_sse2_pow";
+    case 0x017f: return "__libm_sse2_powf";
+    case 0x0180: return "__libm_sse2_sin";
+    case 0x0181: return "__libm_sse2_sinf";
+    case 0x0182: return "__libm_sse2_tan";
+    case 0x0183: return "__libm_sse2_tanf";
+    case 0x0184: return "__mb_cur_max";
+    case 0x0185: return "__p___argc";
+    case 0x0186: return "__p___argv";
+    case 0x0187: return "__p___initenv";
+    case 0x0188: return "__p___mb_cur_max";
+    case 0x0189: return "__p___wargv";
+    case 0x018a: return "__p___winitenv";
+    case 0x018b: return "__p__acmdln";
+    case 0x018c: return "__p__commode";
+    case 0x018d: return "__p__daylight";
+    case 0x018e: return "__p__dstbias";
+    case 0x018f: return "__p__environ";
+    case 0x0190: return "__p__fmode";
+    case 0x0191: return "__p__iob";
+    case 0x0192: return "__p__mbcasemap";
+    case 0x0193: return "__p__mbctype";
+    case 0x0194: return "__p__pctype";
+    case 0x0195: return "__p__pgmptr";
+    case 0x0196: return "__p__pwctype";
+    case 0x0197: return "__p__timezone";
+    case 0x0198: return "__p__tzname";
+    case 0x0199: return "__p__wcmdln";
+    case 0x019a: return "__p__wenviron";
+    case 0x019b: return "__p__wpgmptr";
+    case 0x019c: return "__pctype_func";
+    case 0x019d: return "__pioinfo";
+    case 0x019e: return "__pwctype_func";
+    case 0x019f: return "__pxcptinfoptrs";
+    case 0x01a0: return "__report_gsfailure";
+    case 0x01a1: return "__set_app_type";
+    case 0x01a2: return "__set_flsgetvalue";
+    case 0x01a3: return "__setlc_active";
+    case 0x01a4: return "__setusermatherr";
+    case 0x01a5: return "__strncnt";
+    case 0x01a6: return "__swprintf_l";
+    case 0x01a7: return "__sys_errlist";
+    case 0x01a8: return "__sys_nerr";
+    case 0x01a9: return "__threadhandle";
+    case 0x01aa: return "__threadid";
+    case 0x01ab: return "__timezone";
+    case 0x01ac: return "__toascii";
+    case 0x01ad: return "__tzname";
+    case 0x01ae: return "__unDName";
+    case 0x01af: return "__unDNameEx";
+    case 0x01b0: return "__unDNameHelper";
+    case 0x00e1: return "__uncaught_exception";
+    case 0x01b1: return "__unguarded_readlc_active";
+    case 0x01b2: return "__vswprintf_l";
+    case 0x01b3: return "__wargv";
+    case 0x01b4: return "__wcserror";
+    case 0x01b5: return "__wcserror_s";
+    case 0x01b6: return "__wcsncnt";
+    case 0x01b7: return "__wgetmainargs";
+    case 0x01b8: return "__winitenv";
+    case 0x01b9: return "_abnormal_termination";
+    case 0x01ba: return "_abs64";
+    case 0x01bb: return "_access";
+    case 0x01bc: return "_access_s";
+    case 0x01bd: return "_acmdln";
+    case 0x01be: return "_aligned_free";
+    case 0x01bf: return "_aligned_malloc";
+    case 0x01c0: return "_aligned_msize";
+    case 0x01c1: return "_aligned_offset_malloc";
+    case 0x01c2: return "_aligned_offset_realloc";
+    case 0x01c3: return "_aligned_offset_recalloc";
+    case 0x01c4: return "_aligned_realloc";
+    case 0x01c5: return "_aligned_recalloc";
+    case 0x01c6: return "_amsg_exit";
+    case 0x01c7: return "_assert";
+    case 0x01c8: return "_atodbl";
+    case 0x01c9: return "_atodbl_l";
+    case 0x01ca: return "_atof_l";
+    case 0x01cb: return "_atoflt";
+    case 0x01cc: return "_atoflt_l";
+    case 0x01cd: return "_atoi64";
+    case 0x01ce: return "_atoi64_l";
+    case 0x01cf: return "_atoi_l";
+    case 0x01d0: return "_atol_l";
+    case 0x01d1: return "_atoldbl";
+    case 0x01d2: return "_atoldbl_l";
+    case 0x01d3: return "_beep";
+    case 0x01d4: return "_beginthread";
+    case 0x01d5: return "_beginthreadex";
+    case 0x01d6: return "_byteswap_uint64";
+    case 0x01d7: return "_byteswap_ulong";
+    case 0x01d8: return "_byteswap_ushort";
+    case 0x01d9: return "_c_exit";
+    case 0x01da: return "_cabs";
+    case 0x01db: return "_callnewh";
+    case 0x01dc: return "_calloc_crt";
+    case 0x01dd: return "_cexit";
+    case 0x01de: return "_cgets";
+    case 0x01df: return "_cgets_s";
+    case 0x01e0: return "_cgetws";
+    case 0x01e1: return "_cgetws_s";
+    case 0x01e2: return "_chdir";
+    case 0x01e3: return "_chdrive";
+    case 0x01e4: return "_chgsign";
+    case 0x01e5: return "_chkesp";
+    case 0x01e6: return "_chmod";
+    case 0x01e7: return "_chsize";
+    case 0x01e8: return "_chsize_s";
+    case 0x01e9: return "_clearfp";
+    case 0x01ea: return "_close";
+    case 0x01eb: return "_commit";
+    case 0x01ec: return "_commode";
+    case 0x01ed: return "_configthreadlocale";
+    case 0x01ee: return "_control87";
+    case 0x01ef: return "_controlfp";
+    case 0x01f0: return "_controlfp_s";
+    case 0x01f1: return "_copysign";
+    case 0x01f2: return "_cprintf";
+    case 0x01f3: return "_cprintf_l";
+    case 0x01f4: return "_cprintf_p";
+    case 0x01f5: return "_cprintf_p_l";
+    case 0x01f6: return "_cprintf_s";
+    case 0x01f7: return "_cprintf_s_l";
+    case 0x01f8: return "_cputs";
+    case 0x01f9: return "_cputws";
+    case 0x01fa: return "_creat";
+    case 0x01fb: return "_create_locale";
+    case 0x01fc: return "_crt_debugger_hook";
+    case 0x01fd: return "_cscanf";
+    case 0x01fe: return "_cscanf_l";
+    case 0x01ff: return "_cscanf_s";
+    case 0x0200: return "_cscanf_s_l";
+    case 0x0201: return "_ctime32";
+    case 0x0202: return "_ctime32_s";
+    case 0x0203: return "_ctime64";
+    case 0x0204: return "_ctime64_s";
+    case 0x0205: return "_cwait";
+    case 0x0206: return "_cwprintf";
+    case 0x0207: return "_cwprintf_l";
+    case 0x0208: return "_cwprintf_p";
+    case 0x0209: return "_cwprintf_p_l";
+    case 0x020a: return "_cwprintf_s";
+    case 0x020b: return "_cwprintf_s_l";
+    case 0x020c: return "_cwscanf";
+    case 0x020d: return "_cwscanf_l";
+    case 0x020e: return "_cwscanf_s";
+    case 0x020f: return "_cwscanf_s_l";
+    case 0x0210: return "_daylight";
+    case 0x0211: return "_difftime32";
+    case 0x0212: return "_difftime64";
+    case 0x0213: return "_dosmaperr";
+    case 0x0214: return "_dstbias";
+    case 0x0215: return "_dup";
+    case 0x0216: return "_dup2";
+    case 0x0217: return "_dupenv_s";
+    case 0x0218: return "_ecvt";
+    case 0x0219: return "_ecvt_s";
+    case 0x021a: return "_encoded_null";
+    case 0x021b: return "_endthread";
+    case 0x021c: return "_endthreadex";
+    case 0x021d: return "_environ";
+    case 0x021e: return "_eof";
+    case 0x021f: return "_errno";
+    case 0x0220: return "_except_handler2";
+    case 0x0221: return "_except_handler3";
+    case 0x0222: return "_except_handler4_common";
+    case 0x0223: return "_execl";
+    case 0x0224: return "_execle";
+    case 0x0225: return "_execlp";
+    case 0x0226: return "_execlpe";
+    case 0x0227: return "_execv";
+    case 0x0228: return "_execve";
+    case 0x0229: return "_execvp";
+    case 0x022a: return "_execvpe";
+    case 0x022b: return "_exit";
+    case 0x022c: return "_expand";
+    case 0x022d: return "_fclose_nolock";
+    case 0x022e: return "_fcloseall";
+    case 0x022f: return "_fcvt";
+    case 0x0230: return "_fcvt_s";
+    case 0x0231: return "_fdopen";
+    case 0x0232: return "_fflush_nolock";
+    case 0x0233: return "_fgetchar";
+    case 0x0234: return "_fgetwc_nolock";
+    case 0x0235: return "_fgetwchar";
+    case 0x0236: return "_filbuf";
+    case 0x0237: return "_filelength";
+    case 0x0238: return "_filelengthi64";
+    case 0x0239: return "_fileno";
+    case 0x023a: return "_findclose";
+    case 0x023b: return "_findfirst32";
+    case 0x023c: return "_findfirst32i64";
+    case 0x023d: return "_findfirst64";
+    case 0x023e: return "_findfirst64i32";
+    case 0x023f: return "_findnext32";
+    case 0x0240: return "_findnext32i64";
+    case 0x0241: return "_findnext64";
+    case 0x0242: return "_findnext64i32";
+    case 0x0243: return "_finite";
+    case 0x0244: return "_flsbuf";
+    case 0x0245: return "_flushall";
+    case 0x0246: return "_fmode";
+    case 0x0247: return "_fpclass";
+    case 0x0248: return "_fpieee_flt";
+    case 0x0249: return "_fpreset";
+    case 0x024a: return "_fprintf_l";
+    case 0x024b: return "_fprintf_p";
+    case 0x024c: return "_fprintf_p_l";
+    case 0x024d: return "_fprintf_s_l";
+    case 0x024e: return "_fputchar";
+    case 0x024f: return "_fputwc_nolock";
+    case 0x0250: return "_fputwchar";
+    case 0x0251: return "_fread_nolock";
+    case 0x0252: return "_fread_nolock_s";
+    case 0x0253: return "_free_locale";
+    case 0x0254: return "_freea";
+    case 0x0255: return "_freea_s";
+    case 0x0256: return "_freefls";
+    case 0x0257: return "_fscanf_l";
+    case 0x0258: return "_fscanf_s_l";
+    case 0x0259: return "_fseek_nolock";
+    case 0x025a: return "_fseeki64";
+    case 0x025b: return "_fseeki64_nolock";
+    case 0x025c: return "_fsopen";
+    case 0x025d: return "_fstat32";
+    case 0x025e: return "_fstat32i64";
+    case 0x025f: return "_fstat64";
+    case 0x0260: return "_fstat64i32";
+    case 0x0261: return "_ftell_nolock";
+    case 0x0262: return "_ftelli64";
+    case 0x0263: return "_ftelli64_nolock";
+    case 0x0264: return "_ftime32";
+    case 0x0265: return "_ftime32_s";
+    case 0x0266: return "_ftime64";
+    case 0x0267: return "_ftime64_s";
+    case 0x0268: return "_ftol";
+    case 0x0269: return "_fullpath";
+    case 0x026a: return "_futime32";
+    case 0x026b: return "_futime64";
+    case 0x026c: return "_fwprintf_l";
+    case 0x026d: return "_fwprintf_p";
+    case 0x026e: return "_fwprintf_p_l";
+    case 0x026f: return "_fwprintf_s_l";
+    case 0x0270: return "_fwrite_nolock";
+    case 0x0271: return "_fwscanf_l";
+    case 0x0272: return "_fwscanf_s_l";
+    case 0x0273: return "_gcvt";
+    case 0x0274: return "_gcvt_s";
+    case 0x0275: return "_get_current_locale";
+    case 0x0276: return "_get_daylight";
+    case 0x0277: return "_get_doserrno";
+    case 0x0278: return "_get_dstbias";
+    case 0x0279: return "_get_errno";
+    case 0x027a: return "_get_fmode";
+    case 0x027b: return "_get_heap_handle";
+    case 0x027c: return "_get_invalid_parameter_handler";
+    case 0x027d: return "_get_osfhandle";
+    case 0x027e: return "_get_output_format";
+    case 0x027f: return "_get_pgmptr";
+    case 0x0280: return "_get_printf_count_output";
+    case 0x0281: return "_get_purecall_handler";
+    case 0x0282: return "_get_terminate";
+    case 0x0283: return "_get_timezone";
+    case 0x0284: return "_get_tzname";
+    case 0x0285: return "_get_unexpected";
+    case 0x0286: return "_get_wpgmptr";
+    case 0x0287: return "_getc_nolock";
+    case 0x0288: return "_getch";
+    case 0x0289: return "_getch_nolock";
+    case 0x028a: return "_getche";
+    case 0x028b: return "_getche_nolock";
+    case 0x028c: return "_getcwd";
+    case 0x028d: return "_getdcwd";
+    case 0x028e: return "_getdcwd_nolock";
+    case 0x028f: return "_getdiskfree";
+    case 0x0290: return "_getdllprocaddr";
+    case 0x0291: return "_getdrive";
+    case 0x0292: return "_getdrives";
+    case 0x0293: return "_getmaxstdio";
+    case 0x0294: return "_getmbcp";
+    case 0x0295: return "_getpid";
+    case 0x0296: return "_getptd";
+    case 0x0297: return "_getsystime";
+    case 0x0298: return "_getw";
+    case 0x0299: return "_getwch";
+    case 0x029a: return "_getwch_nolock";
+    case 0x029b: return "_getwche";
+    case 0x029c: return "_getwche_nolock";
+    case 0x029d: return "_getws";
+    case 0x029e: return "_getws_s";
+    case 0x029f: return "_global_unwind2";
+    case 0x02a0: return "_gmtime32";
+    case 0x02a1: return "_gmtime32_s";
+    case 0x02a2: return "_gmtime64";
+    case 0x02a3: return "_gmtime64_s";
+    case 0x02a4: return "_heapadd";
+    case 0x02a5: return "_heapchk";
+    case 0x02a6: return "_heapmin";
+    case 0x02a7: return "_heapset";
+    case 0x02a8: return "_heapused";
+    case 0x02a9: return "_heapwalk";
+    case 0x02aa: return "_hypot";
+    case 0x02ab: return "_hypotf";
+    case 0x02ac: return "_i64toa";
+    case 0x02ad: return "_i64toa_s";
+    case 0x02ae: return "_i64tow";
+    case 0x02af: return "_i64tow_s";
+    case 0x02b0: return "_initptd";
+    case 0x02b1: return "_initterm";
+    case 0x02b2: return "_initterm_e";
+    case 0x02b3: return "_inp";
+    case 0x02b4: return "_inpd";
+    case 0x02b5: return "_inpw";
+    case 0x02b6: return "_invalid_parameter";
+    case 0x02b7: return "_invalid_parameter_noinfo";
+    case 0x02b8: return "_invalid_parameter_noinfo_noreturn";
+    case 0x02b9: return "_invoke_watson";
+    case 0x02ba: return "_iob";
+    case 0x02bb: return "_isalnum_l";
+    case 0x02bc: return "_isalpha_l";
+    case 0x02bd: return "_isatty";
+    case 0x02be: return "_iscntrl_l";
+    case 0x02bf: return "_isctype";
+    case 0x02c0: return "_isctype_l";
+    case 0x02c1: return "_isdigit_l";
+    case 0x02c2: return "_isgraph_l";
+    case 0x02c3: return "_isleadbyte_l";
+    case 0x02c4: return "_islower_l";
+    case 0x02c5: return "_ismbbalnum";
+    case 0x02c6: return "_ismbbalnum_l";
+    case 0x02c7: return "_ismbbalpha";
+    case 0x02c8: return "_ismbbalpha_l";
+    case 0x02c9: return "_ismbbgraph";
+    case 0x02ca: return "_ismbbgraph_l";
+    case 0x02cb: return "_ismbbkalnum";
+    case 0x02cc: return "_ismbbkalnum_l";
+    case 0x02cd: return "_ismbbkana";
+    case 0x02ce: return "_ismbbkana_l";
+    case 0x02cf: return "_ismbbkprint";
+    case 0x02d0: return "_ismbbkprint_l";
+    case 0x02d1: return "_ismbbkpunct";
+    case 0x02d2: return "_ismbbkpunct_l";
+    case 0x02d3: return "_ismbblead";
+    case 0x02d4: return "_ismbblead_l";
+    case 0x02d5: return "_ismbbprint";
+    case 0x02d6: return "_ismbbprint_l";
+    case 0x02d7: return "_ismbbpunct";
+    case 0x02d8: return "_ismbbpunct_l";
+    case 0x02d9: return "_ismbbtrail";
+    case 0x02da: return "_ismbbtrail_l";
+    case 0x02db: return "_ismbcalnum";
+    case 0x02dc: return "_ismbcalnum_l";
+    case 0x02dd: return "_ismbcalpha";
+    case 0x02de: return "_ismbcalpha_l";
+    case 0x02df: return "_ismbcdigit";
+    case 0x02e0: return "_ismbcdigit_l";
+    case 0x02e1: return "_ismbcgraph";
+    case 0x02e2: return "_ismbcgraph_l";
+    case 0x02e3: return "_ismbchira";
+    case 0x02e4: return "_ismbchira_l";
+    case 0x02e5: return "_ismbckata";
+    case 0x02e6: return "_ismbckata_l";
+    case 0x02e7: return "_ismbcl0";
+    case 0x02e8: return "_ismbcl0_l";
+    case 0x02e9: return "_ismbcl1";
+    case 0x02ea: return "_ismbcl1_l";
+    case 0x02eb: return "_ismbcl2";
+    case 0x02ec: return "_ismbcl2_l";
+    case 0x02ed: return "_ismbclegal";
+    case 0x02ee: return "_ismbclegal_l";
+    case 0x02ef: return "_ismbclower";
+    case 0x02f0: return "_ismbclower_l";
+    case 0x02f1: return "_ismbcprint";
+    case 0x02f2: return "_ismbcprint_l";
+    case 0x02f3: return "_ismbcpunct";
+    case 0x02f4: return "_ismbcpunct_l";
+    case 0x02f5: return "_ismbcspace";
+    case 0x02f6: return "_ismbcspace_l";
+    case 0x02f7: return "_ismbcsymbol";
+    case 0x02f8: return "_ismbcsymbol_l";
+    case 0x02f9: return "_ismbcupper";
+    case 0x02fa: return "_ismbcupper_l";
+    case 0x02fb: return "_ismbslead";
+    case 0x02fc: return "_ismbslead_l";
+    case 0x02fd: return "_ismbstrail";
+    case 0x02fe: return "_ismbstrail_l";
+    case 0x02ff: return "_isnan";
+    case 0x0300: return "_isprint_l";
+    case 0x0301: return "_ispunct_l";
+    case 0x0302: return "_isspace_l";
+    case 0x0303: return "_isupper_l";
+    case 0x0304: return "_iswalnum_l";
+    case 0x0305: return "_iswalpha_l";
+    case 0x0306: return "_iswcntrl_l";
+    case 0x0307: return "_iswcsym_l";
+    case 0x0308: return "_iswcsymf_l";
+    case 0x0309: return "_iswctype_l";
+    case 0x030a: return "_iswdigit_l";
+    case 0x030b: return "_iswgraph_l";
+    case 0x030c: return "_iswlower_l";
+    case 0x030d: return "_iswprint_l";
+    case 0x030e: return "_iswpunct_l";
+    case 0x030f: return "_iswspace_l";
+    case 0x0310: return "_iswupper_l";
+    case 0x0311: return "_iswxdigit_l";
+    case 0x0312: return "_isxdigit_l";
+    case 0x0313: return "_itoa";
+    case 0x0314: return "_itoa_s";
+    case 0x0315: return "_itow";
+    case 0x0316: return "_itow_s";
+    case 0x0317: return "_j0";
+    case 0x0318: return "_j1";
+    case 0x0319: return "_jn";
+    case 0x031a: return "_kbhit";
+    case 0x031b: return "_lfind";
+    case 0x031c: return "_lfind_s";
+    case 0x031d: return "_loaddll";
+    case 0x031e: return "_local_unwind2";
+    case 0x031f: return "_local_unwind4";
+    case 0x0320: return "_localtime32";
+    case 0x0321: return "_localtime32_s";
+    case 0x0322: return "_localtime64";
+    case 0x0323: return "_localtime64_s";
+    case 0x0324: return "_lock";
+    case 0x0325: return "_lock_file";
+    case 0x0326: return "_locking";
+    case 0x0327: return "_logb";
+    case 0x0328: return "_longjmpex";
+    case 0x0329: return "_lrotl";
+    case 0x032a: return "_lrotr";
+    case 0x032b: return "_lsearch";
+    case 0x032c: return "_lsearch_s";
+    case 0x032d: return "_lseek";
+    case 0x032e: return "_lseeki64";
+    case 0x032f: return "_ltoa";
+    case 0x0330: return "_ltoa_s";
+    case 0x0331: return "_ltow";
+    case 0x0332: return "_ltow_s";
+    case 0x0333: return "_makepath";
+    case 0x0334: return "_makepath_s";
+    case 0x0335: return "_malloc_crt";
+    case 0x0336: return "_mbbtombc";
+    case 0x0337: return "_mbbtombc_l";
+    case 0x0338: return "_mbbtype";
+    case 0x0339: return "_mbbtype_l";
+    case 0x033a: return "_mbcasemap";
+    case 0x033b: return "_mbccpy";
+    case 0x033c: return "_mbccpy_l";
+    case 0x033d: return "_mbccpy_s";
+    case 0x033e: return "_mbccpy_s_l";
+    case 0x033f: return "_mbcjistojms";
+    case 0x0340: return "_mbcjistojms_l";
+    case 0x0341: return "_mbcjmstojis";
+    case 0x0342: return "_mbcjmstojis_l";
+    case 0x0343: return "_mbclen";
+    case 0x0344: return "_mbclen_l";
+    case 0x0345: return "_mbctohira";
+    case 0x0346: return "_mbctohira_l";
+    case 0x0347: return "_mbctokata";
+    case 0x0348: return "_mbctokata_l";
+    case 0x0349: return "_mbctolower";
+    case 0x034a: return "_mbctolower_l";
+    case 0x034b: return "_mbctombb";
+    case 0x034c: return "_mbctombb_l";
+    case 0x034d: return "_mbctoupper";
+    case 0x034e: return "_mbctoupper_l";
+    case 0x034f: return "_mbctype";
+    case 0x0350: return "_mblen_l";
+    case 0x0351: return "_mbsbtype";
+    case 0x0352: return "_mbsbtype_l";
+    case 0x0353: return "_mbscat_s";
+    case 0x0354: return "_mbscat_s_l";
+    case 0x0355: return "_mbschr";
+    case 0x0356: return "_mbschr_l";
+    case 0x0357: return "_mbscmp";
+    case 0x0358: return "_mbscmp_l";
+    case 0x0359: return "_mbscoll";
+    case 0x035a: return "_mbscoll_l";
+    case 0x035b: return "_mbscpy_s";
+    case 0x035c: return "_mbscpy_s_l";
+    case 0x035d: return "_mbscspn";
+    case 0x035e: return "_mbscspn_l";
+    case 0x035f: return "_mbsdec";
+    case 0x0360: return "_mbsdec_l";
+    case 0x0361: return "_mbsicmp";
+    case 0x0362: return "_mbsicmp_l";
+    case 0x0363: return "_mbsicoll";
+    case 0x0364: return "_mbsicoll_l";
+    case 0x0365: return "_mbsinc";
+    case 0x0366: return "_mbsinc_l";
+    case 0x0367: return "_mbslen";
+    case 0x0368: return "_mbslen_l";
+    case 0x0369: return "_mbslwr";
+    case 0x036a: return "_mbslwr_l";
+    case 0x036b: return "_mbslwr_s";
+    case 0x036c: return "_mbslwr_s_l";
+    case 0x036d: return "_mbsnbcat";
+    case 0x036e: return "_mbsnbcat_l";
+    case 0x036f: return "_mbsnbcat_s";
+    case 0x0370: return "_mbsnbcat_s_l";
+    case 0x0371: return "_mbsnbcmp";
+    case 0x0372: return "_mbsnbcmp_l";
+    case 0x0373: return "_mbsnbcnt";
+    case 0x0374: return "_mbsnbcnt_l";
+    case 0x0375: return "_mbsnbcoll";
+    case 0x0376: return "_mbsnbcoll_l";
+    case 0x0377: return "_mbsnbcpy";
+    case 0x0378: return "_mbsnbcpy_l";
+    case 0x0379: return "_mbsnbcpy_s";
+    case 0x037a: return "_mbsnbcpy_s_l";
+    case 0x037b: return "_mbsnbicmp";
+    case 0x037c: return "_mbsnbicmp_l";
+    case 0x037d: return "_mbsnbicoll";
+    case 0x037e: return "_mbsnbicoll_l";
+    case 0x037f: return "_mbsnbset";
+    case 0x0380: return "_mbsnbset_l";
+    case 0x0381: return "_mbsnbset_s";
+    case 0x0382: return "_mbsnbset_s_l";
+    case 0x0383: return "_mbsncat";
+    case 0x0384: return "_mbsncat_l";
+    case 0x0385: return "_mbsncat_s";
+    case 0x0386: return "_mbsncat_s_l";
+    case 0x0387: return "_mbsnccnt";
+    case 0x0388: return "_mbsnccnt_l";
+    case 0x0389: return "_mbsncmp";
+    case 0x038a: return "_mbsncmp_l";
+    case 0x038b: return "_mbsncoll";
+    case 0x038c: return "_mbsncoll_l";
+    case 0x038d: return "_mbsncpy";
+    case 0x038e: return "_mbsncpy_l";
+    case 0x038f: return "_mbsncpy_s";
+    case 0x0390: return "_mbsncpy_s_l";
+    case 0x0391: return "_mbsnextc";
+    case 0x0392: return "_mbsnextc_l";
+    case 0x0393: return "_mbsnicmp";
+    case 0x0394: return "_mbsnicmp_l";
+    case 0x0395: return "_mbsnicoll";
+    case 0x0396: return "_mbsnicoll_l";
+    case 0x0397: return "_mbsninc";
+    case 0x0398: return "_mbsninc_l";
+    case 0x0399: return "_mbsnlen";
+    case 0x039a: return "_mbsnlen_l";
+    case 0x039b: return "_mbsnset";
+    case 0x039c: return "_mbsnset_l";
+    case 0x039d: return "_mbsnset_s";
+    case 0x039e: return "_mbsnset_s_l";
+    case 0x039f: return "_mbspbrk";
+    case 0x03a0: return "_mbspbrk_l";
+    case 0x03a1: return "_mbsrchr";
+    case 0x03a2: return "_mbsrchr_l";
+    case 0x03a3: return "_mbsrev";
+    case 0x03a4: return "_mbsrev_l";
+    case 0x03a5: return "_mbsset";
+    case 0x03a6: return "_mbsset_l";
+    case 0x03a7: return "_mbsset_s";
+    case 0x03a8: return "_mbsset_s_l";
+    case 0x03a9: return "_mbsspn";
+    case 0x03aa: return "_mbsspn_l";
+    case 0x03ab: return "_mbsspnp";
+    case 0x03ac: return "_mbsspnp_l";
+    case 0x03ad: return "_mbsstr";
+    case 0x03ae: return "_mbsstr_l";
+    case 0x03af: return "_mbstok";
+    case 0x03b0: return "_mbstok_l";
+    case 0x03b1: return "_mbstok_s";
+    case 0x03b2: return "_mbstok_s_l";
+    case 0x03b3: return "_mbstowcs_l";
+    case 0x03b4: return "_mbstowcs_s_l";
+    case 0x03b5: return "_mbstrlen";
+    case 0x03b6: return "_mbstrlen_l";
+    case 0x03b7: return "_mbstrnlen";
+    case 0x03b8: return "_mbstrnlen_l";
+    case 0x03b9: return "_mbsupr";
+    case 0x03ba: return "_mbsupr_l";
+    case 0x03bb: return "_mbsupr_s";
+    case 0x03bc: return "_mbsupr_s_l";
+    case 0x03bd: return "_mbtowc_l";
+    case 0x03be: return "_memccpy";
+    case 0x03bf: return "_memicmp";
+    case 0x03c0: return "_memicmp_l";
+    case 0x03c1: return "_mkdir";
+    case 0x03c2: return "_mkgmtime32";
+    case 0x03c3: return "_mkgmtime64";
+    case 0x03c4: return "_mktemp";
+    case 0x03c5: return "_mktemp_s";
+    case 0x03c6: return "_mktime32";
+    case 0x03c7: return "_mktime64";
+    case 0x03c8: return "_msize";
+    case 0x03c9: return "_nextafter";
+    case 0x03ca: return "_onexit";
+    case 0x03cb: return "_open";
+    case 0x03cc: return "_open_osfhandle";
+    case 0x03cd: return "_outp";
+    case 0x03ce: return "_outpd";
+    case 0x03cf: return "_outpw";
+    case 0x03d0: return "_pclose";
+    case 0x03d1: return "_pctype";
+    case 0x03d2: return "_pgmptr";
+    case 0x03d3: return "_pipe";
+    case 0x03d4: return "_popen";
+    case 0x03d5: return "_printf_l";
+    case 0x03d6: return "_printf_p";
+    case 0x03d7: return "_printf_p_l";
+    case 0x03d8: return "_printf_s_l";
+    case 0x03d9: return "_purecall";
+    case 0x03da: return "_putch";
+    case 0x03db: return "_putch_nolock";
+    case 0x03dc: return "_putenv";
+    case 0x03dd: return "_putenv_s";
+    case 0x03de: return "_putw";
+    case 0x03df: return "_putwch";
+    case 0x03e0: return "_putwch_nolock";
+    case 0x03e1: return "_putws";
+    case 0x03e2: return "_pwctype";
+    case 0x03e3: return "_read";
+    case 0x03e4: return "_realloc_crt";
+    case 0x03e5: return "_recalloc";
+    case 0x03e6: return "_recalloc_crt";
+    case 0x03e7: return "_resetstkoflw";
+    case 0x03e8: return "_rmdir";
+    case 0x03e9: return "_rmtmp";
+    case 0x03ea: return "_rotl";
+    case 0x03eb: return "_rotl64";
+    case 0x03ec: return "_rotr";
+    case 0x03ed: return "_rotr64";
+    case 0x03ee: return "_scalb";
+    case 0x03ef: return "_scanf_l";
+    case 0x03f0: return "_scanf_s_l";
+    case 0x03f1: return "_scprintf";
+    case 0x03f2: return "_scprintf_l";
+    case 0x03f3: return "_scprintf_p";
+    case 0x03f4: return "_scprintf_p_l";
+    case 0x03f5: return "_scwprintf";
+    case 0x03f6: return "_scwprintf_l";
+    case 0x03f7: return "_scwprintf_p";
+    case 0x03f8: return "_scwprintf_p_l";
+    case 0x03f9: return "_searchenv";
+    case 0x03fa: return "_searchenv_s";
+    case 0x03fc: return "_seh_longjmp_unwind";
+    case 0x03fb: return "_seh_longjmp_unwind4";
+    case 0x03fd: return "_set_SSE2_enable";
+    case 0x03fe: return "_set_abort_behavior";
+    case 0x03ff: return "_set_controlfp";
+    case 0x0400: return "_set_doserrno";
+    case 0x0401: return "_set_errno";
+    case 0x0402: return "_set_error_mode";
+    case 0x0403: return "_set_fmode";
+    case 0x0404: return "_set_invalid_parameter_handler";
+    case 0x0405: return "_set_malloc_crt_max_wait";
+    case 0x0406: return "_set_output_format";
+    case 0x0407: return "_set_printf_count_output";
+    case 0x0408: return "_set_purecall_handler";
+    case 0x0409: return "_seterrormode";
+    case 0x040a: return "_setjmp";
+    case 0x040b: return "_setjmp3";
+    case 0x040c: return "_setmaxstdio";
+    case 0x040d: return "_setmbcp";
+    case 0x040e: return "_setmode";
+    case 0x040f: return "_setsystime";
+    case 0x0410: return "_sleep";
+    case 0x0411: return "_snprintf";
+    case 0x0412: return "_snprintf_c";
+    case 0x0413: return "_snprintf_c_l";
+    case 0x0414: return "_snprintf_l";
+    case 0x0415: return "_snprintf_s";
+    case 0x0416: return "_snprintf_s_l";
+    case 0x0417: return "_snscanf";
+    case 0x0418: return "_snscanf_l";
+    case 0x0419: return "_snscanf_s";
+    case 0x041a: return "_snscanf_s_l";
+    case 0x041b: return "_snwprintf";
+    case 0x041c: return "_snwprintf_l";
+    case 0x041d: return "_snwprintf_s";
+    case 0x041e: return "_snwprintf_s_l";
+    case 0x041f: return "_snwscanf";
+    case 0x0420: return "_snwscanf_l";
+    case 0x0421: return "_snwscanf_s";
+    case 0x0422: return "_snwscanf_s_l";
+    case 0x0423: return "_sopen";
+    case 0x0424: return "_sopen_s";
+    case 0x0425: return "_spawnl";
+    case 0x0426: return "_spawnle";
+    case 0x0427: return "_spawnlp";
+    case 0x0428: return "_spawnlpe";
+    case 0x0429: return "_spawnv";
+    case 0x042a: return "_spawnve";
+    case 0x042b: return "_spawnvp";
+    case 0x042c: return "_spawnvpe";
+    case 0x042d: return "_splitpath";
+    case 0x042e: return "_splitpath_s";
+    case 0x042f: return "_sprintf_l";
+    case 0x0430: return "_sprintf_p";
+    case 0x0431: return "_sprintf_p_l";
+    case 0x0432: return "_sprintf_s_l";
+    case 0x0433: return "_sscanf_l";
+    case 0x0434: return "_sscanf_s_l";
+    case 0x0435: return "_stat32";
+    case 0x0436: return "_stat32i64";
+    case 0x0437: return "_stat64";
+    case 0x0438: return "_stat64i32";
+    case 0x0439: return "_statusfp";
+    case 0x043a: return "_statusfp2";
+    case 0x043b: return "_strcoll_l";
+    case 0x043c: return "_strdate";
+    case 0x043d: return "_strdate_s";
+    case 0x043e: return "_strdup";
+    case 0x043f: return "_strerror";
+    case 0x0440: return "_strerror_s";
+    case 0x0441: return "_strftime_l";
+    case 0x0442: return "_stricmp";
+    case 0x0443: return "_stricmp_l";
+    case 0x0444: return "_stricoll";
+    case 0x0445: return "_stricoll_l";
+    case 0x0446: return "_strlwr";
+    case 0x0447: return "_strlwr_l";
+    case 0x0448: return "_strlwr_s";
+    case 0x0449: return "_strlwr_s_l";
+    case 0x044a: return "_strncoll";
+    case 0x044b: return "_strncoll_l";
+    case 0x044c: return "_strnicmp";
+    case 0x044d: return "_strnicmp_l";
+    case 0x044e: return "_strnicoll";
+    case 0x044f: return "_strnicoll_l";
+    case 0x0450: return "_strnset";
+    case 0x0451: return "_strnset_s";
+    case 0x0452: return "_strrev";
+    case 0x0453: return "_strset";
+    case 0x0454: return "_strset_s";
+    case 0x0455: return "_strtime";
+    case 0x0456: return "_strtime_s";
+    case 0x0457: return "_strtod_l";
+    case 0x0458: return "_strtoi64";
+    case 0x0459: return "_strtoi64_l";
+    case 0x045a: return "_strtol_l";
+    case 0x045b: return "_strtoui64";
+    case 0x045c: return "_strtoui64_l";
+    case 0x045d: return "_strtoul_l";
+    case 0x045e: return "_strupr";
+    case 0x045f: return "_strupr_l";
+    case 0x0460: return "_strupr_s";
+    case 0x0461: return "_strupr_s_l";
+    case 0x0462: return "_strxfrm_l";
+    case 0x0463: return "_swab";
+    case 0x0464: return "_swprintf";
+    case 0x0465: return "_swprintf_c";
+    case 0x0466: return "_swprintf_c_l";
+    case 0x0467: return "_swprintf_p";
+    case 0x0468: return "_swprintf_p_l";
+    case 0x0469: return "_swprintf_s_l";
+    case 0x046a: return "_swscanf_l";
+    case 0x046b: return "_swscanf_s_l";
+    case 0x046c: return "_sys_errlist";
+    case 0x046d: return "_sys_nerr";
+    case 0x046e: return "_tell";
+    case 0x046f: return "_telli64";
+    case 0x0470: return "_tempnam";
+    case 0x0471: return "_time32";
+    case 0x0472: return "_time64";
+    case 0x0473: return "_timezone";
+    case 0x0474: return "_tolower";
+    case 0x0475: return "_tolower_l";
+    case 0x0476: return "_toupper";
+    case 0x0477: return "_toupper_l";
+    case 0x0478: return "_towlower_l";
+    case 0x0479: return "_towupper_l";
+    case 0x047a: return "_tzname";
+    case 0x047b: return "_tzset";
+    case 0x047c: return "_ui64toa";
+    case 0x047d: return "_ui64toa_s";
+    case 0x047e: return "_ui64tow";
+    case 0x047f: return "_ui64tow_s";
+    case 0x0480: return "_ultoa";
+    case 0x0481: return "_ultoa_s";
+    case 0x0482: return "_ultow";
+    case 0x0483: return "_ultow_s";
+    case 0x0484: return "_umask";
+    case 0x0485: return "_umask_s";
+    case 0x0486: return "_ungetc_nolock";
+    case 0x0487: return "_ungetch";
+    case 0x0488: return "_ungetch_nolock";
+    case 0x0489: return "_ungetwc_nolock";
+    case 0x048a: return "_ungetwch";
+    case 0x048b: return "_ungetwch_nolock";
+    case 0x048c: return "_unlink";
+    case 0x048d: return "_unloaddll";
+    case 0x048e: return "_unlock";
+    case 0x048f: return "_unlock_file";
+    case 0x0490: return "_utime32";
+    case 0x0491: return "_utime64";
+    case 0x0492: return "_vcprintf";
+    case 0x0493: return "_vcprintf_l";
+    case 0x0494: return "_vcprintf_p";
+    case 0x0495: return "_vcprintf_p_l";
+    case 0x0496: return "_vcprintf_s";
+    case 0x0497: return "_vcprintf_s_l";
+    case 0x0498: return "_vcwprintf";
+    case 0x0499: return "_vcwprintf_l";
+    case 0x049a: return "_vcwprintf_p";
+    case 0x049b: return "_vcwprintf_p_l";
+    case 0x049c: return "_vcwprintf_s";
+    case 0x049d: return "_vcwprintf_s_l";
+    case 0x049e: return "_vfprintf_l";
+    case 0x049f: return "_vfprintf_p";
+    case 0x04a0: return "_vfprintf_p_l";
+    case 0x04a1: return "_vfprintf_s_l";
+    case 0x04a2: return "_vfwprintf_l";
+    case 0x04a3: return "_vfwprintf_p";
+    case 0x04a4: return "_vfwprintf_p_l";
+    case 0x04a5: return "_vfwprintf_s_l";
+    case 0x04a6: return "_vprintf_l";
+    case 0x04a7: return "_vprintf_p";
+    case 0x04a8: return "_vprintf_p_l";
+    case 0x04a9: return "_vprintf_s_l";
+    case 0x04aa: return "_vscprintf";
+    case 0x04ab: return "_vscprintf_l";
+    case 0x04ac: return "_vscprintf_p";
+    case 0x04ad: return "_vscprintf_p_l";
+    case 0x04ae: return "_vscwprintf";
+    case 0x04af: return "_vscwprintf_l";
+    case 0x04b0: return "_vscwprintf_p";
+    case 0x04b1: return "_vscwprintf_p_l";
+    case 0x04b2: return "_vsnprintf";
+    case 0x04b3: return "_vsnprintf_c";
+    case 0x04b4: return "_vsnprintf_c_l";
+    case 0x04b5: return "_vsnprintf_l";
+    case 0x04b6: return "_vsnprintf_s";
+    case 0x04b7: return "_vsnprintf_s_l";
+    case 0x04b8: return "_vsnwprintf";
+    case 0x04b9: return "_vsnwprintf_l";
+    case 0x04ba: return "_vsnwprintf_s";
+    case 0x04bb: return "_vsnwprintf_s_l";
+    case 0x04bc: return "_vsprintf_l";
+    case 0x04bd: return "_vsprintf_p";
+    case 0x04be: return "_vsprintf_p_l";
+    case 0x04bf: return "_vsprintf_s_l";
+    case 0x04c0: return "_vswprintf";
+    case 0x04c1: return "_vswprintf_c";
+    case 0x04c2: return "_vswprintf_c_l";
+    case 0x04c3: return "_vswprintf_l";
+    case 0x04c4: return "_vswprintf_p";
+    case 0x04c5: return "_vswprintf_p_l";
+    case 0x04c6: return "_vswprintf_s_l";
+    case 0x04c7: return "_vwprintf_l";
+    case 0x04c8: return "_vwprintf_p";
+    case 0x04c9: return "_vwprintf_p_l";
+    case 0x04ca: return "_vwprintf_s_l";
+    case 0x04cb: return "_waccess";
+    case 0x04cc: return "_waccess_s";
+    case 0x04cd: return "_wasctime";
+    case 0x04ce: return "_wasctime_s";
+    case 0x04cf: return "_wassert";
+    case 0x04d0: return "_wchdir";
+    case 0x04d1: return "_wchmod";
+    case 0x04d2: return "_wcmdln";
+    case 0x04d3: return "_wcreat";
+    case 0x04d4: return "_wcscoll_l";
+    case 0x04d5: return "_wcsdup";
+    case 0x04d6: return "_wcserror";
+    case 0x04d7: return "_wcserror_s";
+    case 0x04d8: return "_wcsftime_l";
+    case 0x04d9: return "_wcsicmp";
+    case 0x04da: return "_wcsicmp_l";
+    case 0x04db: return "_wcsicoll";
+    case 0x04dc: return "_wcsicoll_l";
+    case 0x04dd: return "_wcslwr";
+    case 0x04de: return "_wcslwr_l";
+    case 0x04df: return "_wcslwr_s";
+    case 0x04e0: return "_wcslwr_s_l";
+    case 0x04e1: return "_wcsncoll";
+    case 0x04e2: return "_wcsncoll_l";
+    case 0x04e3: return "_wcsnicmp";
+    case 0x04e4: return "_wcsnicmp_l";
+    case 0x04e5: return "_wcsnicoll";
+    case 0x04e6: return "_wcsnicoll_l";
+    case 0x04e7: return "_wcsnset";
+    case 0x04e8: return "_wcsnset_s";
+    case 0x04e9: return "_wcsrev";
+    case 0x04ea: return "_wcsset";
+    case 0x04eb: return "_wcsset_s";
+    case 0x04ec: return "_wcstod_l";
+    case 0x04ed: return "_wcstoi64";
+    case 0x04ee: return "_wcstoi64_l";
+    case 0x04ef: return "_wcstol_l";
+    case 0x04f0: return "_wcstombs_l";
+    case 0x04f1: return "_wcstombs_s_l";
+    case 0x04f2: return "_wcstoui64";
+    case 0x04f3: return "_wcstoui64_l";
+    case 0x04f4: return "_wcstoul_l";
+    case 0x04f5: return "_wcsupr";
+    case 0x04f6: return "_wcsupr_l";
+    case 0x04f7: return "_wcsupr_s";
+    case 0x04f8: return "_wcsupr_s_l";
+    case 0x04f9: return "_wcsxfrm_l";
+    case 0x04fa: return "_wctime32";
+    case 0x04fb: return "_wctime32_s";
+    case 0x04fc: return "_wctime64";
+    case 0x04fd: return "_wctime64_s";
+    case 0x04fe: return "_wctomb_l";
+    case 0x04ff: return "_wctomb_s_l";
+    case 0x0500: return "_wctype";
+    case 0x0501: return "_wdupenv_s";
+    case 0x0502: return "_wenviron";
+    case 0x0503: return "_wexecl";
+    case 0x0504: return "_wexecle";
+    case 0x0505: return "_wexeclp";
+    case 0x0506: return "_wexeclpe";
+    case 0x0507: return "_wexecv";
+    case 0x0508: return "_wexecve";
+    case 0x0509: return "_wexecvp";
+    case 0x050a: return "_wexecvpe";
+    case 0x050b: return "_wfdopen";
+    case 0x050c: return "_wfindfirst32";
+    case 0x050d: return "_wfindfirst32i64";
+    case 0x050e: return "_wfindfirst64";
+    case 0x050f: return "_wfindfirst64i32";
+    case 0x0510: return "_wfindnext32";
+    case 0x0511: return "_wfindnext32i64";
+    case 0x0512: return "_wfindnext64";
+    case 0x0513: return "_wfindnext64i32";
+    case 0x0514: return "_wfopen";
+    case 0x0515: return "_wfopen_s";
+    case 0x0516: return "_wfreopen";
+    case 0x0517: return "_wfreopen_s";
+    case 0x0518: return "_wfsopen";
+    case 0x0519: return "_wfullpath";
+    case 0x051a: return "_wgetcwd";
+    case 0x051b: return "_wgetdcwd";
+    case 0x051c: return "_wgetdcwd_nolock";
+    case 0x051d: return "_wgetenv";
+    case 0x051e: return "_wgetenv_s";
+    case 0x051f: return "_wmakepath";
+    case 0x0520: return "_wmakepath_s";
+    case 0x0521: return "_wmkdir";
+    case 0x0522: return "_wmktemp";
+    case 0x0523: return "_wmktemp_s";
+    case 0x0524: return "_wopen";
+    case 0x0525: return "_wperror";
+    case 0x0526: return "_wpgmptr";
+    case 0x0527: return "_wpopen";
+    case 0x0528: return "_wprintf_l";
+    case 0x0529: return "_wprintf_p";
+    case 0x052a: return "_wprintf_p_l";
+    case 0x052b: return "_wprintf_s_l";
+    case 0x052c: return "_wputenv";
+    case 0x052d: return "_wputenv_s";
+    case 0x052e: return "_wremove";
+    case 0x052f: return "_wrename";
+    case 0x0530: return "_write";
+    case 0x0531: return "_wrmdir";
+    case 0x0532: return "_wscanf_l";
+    case 0x0533: return "_wscanf_s_l";
+    case 0x0534: return "_wsearchenv";
+    case 0x0535: return "_wsearchenv_s";
+    case 0x0536: return "_wsetlocale";
+    case 0x0537: return "_wsopen";
+    case 0x0538: return "_wsopen_s";
+    case 0x0539: return "_wspawnl";
+    case 0x053a: return "_wspawnle";
+    case 0x053b: return "_wspawnlp";
+    case 0x053c: return "_wspawnlpe";
+    case 0x053d: return "_wspawnv";
+    case 0x053e: return "_wspawnve";
+    case 0x053f: return "_wspawnvp";
+    case 0x0540: return "_wspawnvpe";
+    case 0x0541: return "_wsplitpath";
+    case 0x0542: return "_wsplitpath_s";
+    case 0x0543: return "_wstat32";
+    case 0x0544: return "_wstat32i64";
+    case 0x0545: return "_wstat64";
+    case 0x0546: return "_wstat64i32";
+    case 0x0547: return "_wstrdate";
+    case 0x0548: return "_wstrdate_s";
+    case 0x0549: return "_wstrtime";
+    case 0x054a: return "_wstrtime_s";
+    case 0x054b: return "_wsystem";
+    case 0x054c: return "_wtempnam";
+    case 0x054d: return "_wtmpnam";
+    case 0x054e: return "_wtmpnam_s";
+    case 0x054f: return "_wtof";
+    case 0x0550: return "_wtof_l";
+    case 0x0551: return "_wtoi";
+    case 0x0552: return "_wtoi64";
+    case 0x0553: return "_wtoi64_l";
+    case 0x0554: return "_wtoi_l";
+    case 0x0555: return "_wtol";
+    case 0x0556: return "_wtol_l";
+    case 0x0557: return "_wunlink";
+    case 0x0558: return "_wutime32";
+    case 0x0559: return "_wutime64";
+    case 0x055a: return "_y0";
+    case 0x055b: return "_y1";
+    case 0x055c: return "_yn";
+    case 0x055d: return "abort";
+    case 0x055e: return "abs";
+    case 0x055f: return "acos";
+    case 0x0560: return "asctime";
+    case 0x0561: return "asctime_s";
+    case 0x0562: return "asin";
+    case 0x0563: return "atan";
+    case 0x0564: return "atan2";
+    case 0x0565: return "atexit";
+    case 0x0566: return "atof";
+    case 0x0567: return "atoi";
+    case 0x0568: return "atol";
+    case 0x0569: return "bsearch";
+    case 0x056a: return "bsearch_s";
+    case 0x056b: return "btowc";
+    case 0x056c: return "calloc";
+    case 0x056d: return "ceil";
+    case 0x056e: return "clearerr";
+    case 0x056f: return "clearerr_s";
+    case 0x0570: return "clock";
+    case 0x0571: return "cos";
+    case 0x0572: return "cosh";
+    case 0x0573: return "div";
+    case 0x0574: return "exit";
+    case 0x0575: return "exp";
+    case 0x0576: return "fabs";
+    case 0x0577: return "fclose";
+    case 0x0578: return "feof";
+    case 0x0579: return "ferror";
+    case 0x057a: return "fflush";
+    case 0x057b: return "fgetc";
+    case 0x057c: return "fgetpos";
+    case 0x057d: return "fgets";
+    case 0x057e: return "fgetwc";
+    case 0x057f: return "fgetws";
+    case 0x0580: return "floor";
+    case 0x0581: return "fmod";
+    case 0x0582: return "fopen";
+    case 0x0583: return "fopen_s";
+    case 0x0584: return "fprintf";
+    case 0x0585: return "fprintf_s";
+    case 0x0586: return "fputc";
+    case 0x0587: return "fputs";
+    case 0x0588: return "fputwc";
+    case 0x0589: return "fputws";
+    case 0x058a: return "fread";
+    case 0x058b: return "fread_s";
+    case 0x058c: return "free";
+    case 0x058d: return "freopen";
+    case 0x058e: return "freopen_s";
+    case 0x058f: return "frexp";
+    case 0x0590: return "fscanf";
+    case 0x0591: return "fscanf_s";
+    case 0x0592: return "fseek";
+    case 0x0593: return "fsetpos";
+    case 0x0594: return "ftell";
+    case 0x0595: return "fwprintf";
+    case 0x0596: return "fwprintf_s";
+    case 0x0597: return "fwrite";
+    case 0x0598: return "fwscanf";
+    case 0x0599: return "fwscanf_s";
+    case 0x059a: return "getc";
+    case 0x059b: return "getchar";
+    case 0x059c: return "getenv";
+    case 0x059d: return "getenv_s";
+    case 0x059e: return "gets";
+    case 0x059f: return "gets_s";
+    case 0x05a0: return "getwc";
+    case 0x05a1: return "getwchar";
+    case 0x05a2: return "is_wctype";
+    case 0x05a3: return "isalnum";
+    case 0x05a4: return "isalpha";
+    case 0x05a5: return "iscntrl";
+    case 0x05a6: return "isdigit";
+    case 0x05a7: return "isgraph";
+    case 0x05a8: return "isleadbyte";
+    case 0x05a9: return "islower";
+    case 0x05aa: return "isprint";
+    case 0x05ab: return "ispunct";
+    case 0x05ac: return "isspace";
+    case 0x05ad: return "isupper";
+    case 0x05ae: return "iswalnum";
+    case 0x05af: return "iswalpha";
+    case 0x05b0: return "iswascii";
+    case 0x05b1: return "iswcntrl";
+    case 0x05b2: return "iswctype";
+    case 0x05b3: return "iswdigit";
+    case 0x05b4: return "iswgraph";
+    case 0x05b5: return "iswlower";
+    case 0x05b6: return "iswprint";
+    case 0x05b7: return "iswpunct";
+    case 0x05b8: return "iswspace";
+    case 0x05b9: return "iswupper";
+    case 0x05ba: return "iswxdigit";
+    case 0x05bb: return "isxdigit";
+    case 0x05bc: return "labs";
+    case 0x05bd: return "ldexp";
+    case 0x05be: return "ldiv";
+    case 0x05bf: return "llabs";
+    case 0x05c0: return "lldiv";
+    case 0x05c1: return "localeconv";
+    case 0x05c2: return "log";
+    case 0x05c3: return "log10";
+    case 0x05c4: return "longjmp";
+    case 0x05c5: return "malloc";
+    case 0x05c6: return "mblen";
+    case 0x05c7: return "mbrlen";
+    case 0x05c8: return "mbrtowc";
+    case 0x05c9: return "mbsrtowcs";
+    case 0x05ca: return "mbsrtowcs_s";
+    case 0x05cb: return "mbstowcs";
+    case 0x05cc: return "mbstowcs_s";
+    case 0x05cd: return "mbtowc";
+    case 0x05ce: return "memchr";
+    case 0x05cf: return "memcmp";
+    case 0x05d0: return "memcpy";
+    case 0x05d1: return "memcpy_s";
+    case 0x05d2: return "memmove";
+    case 0x05d3: return "memmove_s";
+    case 0x05d4: return "memset";
+    case 0x05d5: return "modf";
+    case 0x05d6: return "perror";
+    case 0x05d7: return "pow";
+    case 0x05d8: return "printf";
+    case 0x05d9: return "printf_s";
+    case 0x05da: return "putc";
+    case 0x05db: return "putchar";
+    case 0x05dc: return "puts";
+    case 0x05dd: return "putwc";
+    case 0x05de: return "putwchar";
+    case 0x05df: return "qsort";
+    case 0x05e0: return "qsort_s";
+    case 0x05e1: return "raise";
+    case 0x05e2: return "rand";
+    case 0x05e3: return "rand_s";
+    case 0x05e4: return "realloc";
+    case 0x05e5: return "remove";
+    case 0x05e6: return "rename";
+    case 0x05e7: return "rewind";
+    case 0x05e8: return "scanf";
+    case 0x05e9: return "scanf_s";
+    case 0x05ea: return "setbuf";
+    case 0x05eb: return "setlocale";
+    case 0x05ec: return "setvbuf";
+    case 0x05ed: return "signal";
+    case 0x05ee: return "sin";
+    case 0x05ef: return "sinh";
+    case 0x05f0: return "sprintf";
+    case 0x05f1: return "sprintf_s";
+    case 0x05f2: return "sqrt";
+    case 0x05f3: return "srand";
+    case 0x05f4: return "sscanf";
+    case 0x05f5: return "sscanf_s";
+    case 0x05f6: return "strcat";
+    case 0x05f7: return "strcat_s";
+    case 0x05f8: return "strchr";
+    case 0x05f9: return "strcmp";
+    case 0x05fa: return "strcoll";
+    case 0x05fb: return "strcpy";
+    case 0x05fc: return "strcpy_s";
+    case 0x05fd: return "strcspn";
+    case 0x05fe: return "strerror";
+    case 0x05ff: return "strerror_s";
+    case 0x0600: return "strftime";
+    case 0x0601: return "strlen";
+    case 0x0602: return "strncat";
+    case 0x0603: return "strncat_s";
+    case 0x0604: return "strncmp";
+    case 0x0605: return "strncpy";
+    case 0x0606: return "strncpy_s";
+    case 0x0607: return "strnlen";
+    case 0x0608: return "strpbrk";
+    case 0x0609: return "strrchr";
+    case 0x060a: return "strspn";
+    case 0x060b: return "strstr";
+    case 0x060c: return "strtod";
+    case 0x060d: return "strtok";
+    case 0x060e: return "strtok_s";
+    case 0x060f: return "strtol";
+    case 0x0610: return "strtoul";
+    case 0x0611: return "strxfrm";
+    case 0x0612: return "swprintf_s";
+    case 0x0613: return "swscanf";
+    case 0x0614: return "swscanf_s";
+    case 0x0615: return "system";
+    case 0x0616: return "tan";
+    case 0x0617: return "tanh";
+    case 0x0618: return "tmpfile";
+    case 0x0619: return "tmpfile_s";
+    case 0x061a: return "tmpnam";
+    case 0x061b: return "tmpnam_s";
+    case 0x061c: return "tolower";
+    case 0x061d: return "toupper";
+    case 0x061e: return "towlower";
+    case 0x061f: return "towupper";
+    case 0x0620: return "ungetc";
+    case 0x0621: return "ungetwc";
+    case 0x0622: return "vfprintf";
+    case 0x0623: return "vfprintf_s";
+    case 0x0624: return "vfwprintf";
+    case 0x0625: return "vfwprintf_s";
+    case 0x0626: return "vprintf";
+    case 0x0627: return "vprintf_s";
+    case 0x0628: return "vsprintf";
+    case 0x0629: return "vsprintf_s";
+    case 0x062a: return "vswprintf_s";
+    case 0x062b: return "vwprintf";
+    case 0x062c: return "vwprintf_s";
+    case 0x062d: return "wcrtomb";
+    case 0x062e: return "wcrtomb_s";
+    case 0x062f: return "wcscat";
+    case 0x0630: return "wcscat_s";
+    case 0x0631: return "wcschr";
+    case 0x0632: return "wcscmp";
+    case 0x0633: return "wcscoll";
+    case 0x0634: return "wcscpy";
+    case 0x0635: return "wcscpy_s";
+    case 0x0636: return "wcscspn";
+    case 0x0637: return "wcsftime";
+    case 0x0638: return "wcslen";
+    case 0x0639: return "wcsncat";
+    case 0x063a: return "wcsncat_s";
+    case 0x063b: return "wcsncmp";
+    case 0x063c: return "wcsncpy";
+    case 0x063d: return "wcsncpy_s";
+    case 0x063e: return "wcsnlen";
+    case 0x063f: return "wcspbrk";
+    case 0x0640: return "wcsrchr";
+    case 0x0641: return "wcsrtombs";
+    case 0x0642: return "wcsrtombs_s";
+    case 0x0643: return "wcsspn";
+    case 0x0644: return "wcsstr";
+    case 0x0645: return "wcstod";
+    case 0x0646: return "wcstok";
+    case 0x0647: return "wcstok_s";
+    case 0x0648: return "wcstol";
+    case 0x0649: return "wcstombs";
+    case 0x064a: return "wcstombs_s";
+    case 0x064b: return "wcstoul";
+    case 0x064c: return "wcsxfrm";
+    case 0x064d: return "wctob";
+    case 0x064e: return "wctomb";
+    case 0x064f: return "wctomb_s";
+    case 0x0650: return "wmemcpy_s";
+    case 0x0651: return "wmemmove_s";
+    case 0x0652: return "wprintf";
+    case 0x0653: return "wprintf_s";
+    case 0x0654: return "wscanf";
+    case 0x0655: return "wscanf_s";
   }
   return nullptr;
 }


-}
 }

-#endif

+#endif
diff --git a/deps/LIEF/src/PE/utils/ordinals_lookup_tables/msvcr110_dll_lookup.hpp b/deps/LIEF/src/PE/utils/ordinals_lookup_tables/msvcr110_dll_lookup.hpp
index 4ed5bc57fda..3f15846288b 100644
--- a/deps/LIEF/src/PE/utils/ordinals_lookup_tables/msvcr110_dll_lookup.hpp
+++ b/deps/LIEF/src/PE/utils/ordinals_lookup_tables/msvcr110_dll_lookup.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -17,1728 +17,1862 @@
 #define LIEF_PE_MSVCR110_DLL_LOOKUP_H
 #include <cstdint>

-namespace LIEF {
-namespace PE {
+
+namespace LIEF::PE {

 inline const char* msvcr110_dll_lookup(uint32_t i) {
-  switch(i) {
-  case 0x014b: return "$I10_OUTPUT";
-  case 0x0001: return "??0?$_SpinWait@$00@details@Concurrency@@QAE@P6AXXZ@Z";
-  case 0x0002: return "??0?$_SpinWait@$0A@@details@Concurrency@@QAE@P6AXXZ@Z";
-  case 0x0003: return "??0SchedulerPolicy@Concurrency@@QAA@IZZ";
-  case 0x0004: return "??0SchedulerPolicy@Concurrency@@QAE@ABV01@@Z";
-  case 0x0005: return "??0SchedulerPolicy@Concurrency@@QAE@XZ";
-  case 0x0006: return "??0_CancellationTokenState@details@Concurrency@@AAE@XZ";
-  case 0x0007: return "??0_Cancellation_beacon@details@Concurrency@@QAE@XZ";
-  case 0x0008: return "??0_Condition_variable@details@Concurrency@@QAE@XZ";
-  case 0x0009: return "??0_Context@details@Concurrency@@QAE@PAVContext@2@@Z";
-  case 0x000a: return "??0_Interruption_exception@details@Concurrency@@QAE@PBD@Z";
-  case 0x000b: return "??0_Interruption_exception@details@Concurrency@@QAE@XZ";
-  case 0x000c: return "??0_NonReentrantBlockingLock@details@Concurrency@@QAE@XZ";
-  case 0x000d: return "??0_NonReentrantPPLLock@details@Concurrency@@QAE@XZ";
-  case 0x000e: return "??0_ReaderWriterLock@details@Concurrency@@QAE@XZ";
-  case 0x000f: return "??0_ReentrantBlockingLock@details@Concurrency@@QAE@XZ";
-  case 0x0010: return "??0_ReentrantLock@details@Concurrency@@QAE@XZ";
-  case 0x0011: return "??0_ReentrantPPLLock@details@Concurrency@@QAE@XZ";
-  case 0x0012: return "??0_Scheduler@details@Concurrency@@QAE@PAVScheduler@2@@Z";
-  case 0x0013: return "??0_Scoped_lock@_NonReentrantPPLLock@details@Concurrency@@QAE@AAV123@@Z";
-  case 0x0014: return "??0_Scoped_lock@_ReentrantPPLLock@details@Concurrency@@QAE@AAV123@@Z";
-  case 0x0015: return "??0_SpinLock@details@Concurrency@@QAE@ACJ@Z";
-  case 0x0016: return "??0_StructuredTaskCollection@details@Concurrency@@QAE@PAV_CancellationTokenState@12@@Z";
-  case 0x0017: return "??0_TaskCollection@details@Concurrency@@QAE@PAV_CancellationTokenState@12@@Z";
-  case 0x0018: return "??0_TaskCollection@details@Concurrency@@QAE@XZ";
-  case 0x0019: return "??0_Timer@details@Concurrency@@IAE@I_N@Z";
-  case 0x001a: return "??0__non_rtti_object@std@@QAE@ABV01@@Z";
-  case 0x001b: return "??0__non_rtti_object@std@@QAE@PBD@Z";
-  case 0x001c: return "??0bad_cast@std@@AAE@PBQBD@Z";
-  case 0x001d: return "??0bad_cast@std@@QAE@ABV01@@Z";
-  case 0x001e: return "??0bad_cast@std@@QAE@PBD@Z";
-  case 0x001f: return "??0bad_target@Concurrency@@QAE@PBD@Z";
-  case 0x0020: return "??0bad_target@Concurrency@@QAE@XZ";
-  case 0x0021: return "??0bad_typeid@std@@QAE@ABV01@@Z";
-  case 0x0022: return "??0bad_typeid@std@@QAE@PBD@Z";
-  case 0x0023: return "??0context_self_unblock@Concurrency@@QAE@PBD@Z";
-  case 0x0024: return "??0context_self_unblock@Concurrency@@QAE@XZ";
-  case 0x0025: return "??0context_unblock_unbalanced@Concurrency@@QAE@PBD@Z";
-  case 0x0026: return "??0context_unblock_unbalanced@Concurrency@@QAE@XZ";
-  case 0x0027: return "??0critical_section@Concurrency@@QAE@XZ";
-  case 0x0028: return "??0default_scheduler_exists@Concurrency@@QAE@PBD@Z";
-  case 0x0029: return "??0default_scheduler_exists@Concurrency@@QAE@XZ";
-  case 0x002a: return "??0event@Concurrency@@QAE@XZ";
-  case 0x002b: return "??0exception@std@@QAE@ABQBD@Z";
-  case 0x002c: return "??0exception@std@@QAE@ABQBDH@Z";
-  case 0x002d: return "??0exception@std@@QAE@ABV01@@Z";
-  case 0x002e: return "??0exception@std@@QAE@XZ";
-  case 0x002f: return "??0improper_lock@Concurrency@@QAE@PBD@Z";
-  case 0x0030: return "??0improper_lock@Concurrency@@QAE@XZ";
-  case 0x0031: return "??0improper_scheduler_attach@Concurrency@@QAE@PBD@Z";
-  case 0x0032: return "??0improper_scheduler_attach@Concurrency@@QAE@XZ";
-  case 0x0033: return "??0improper_scheduler_detach@Concurrency@@QAE@PBD@Z";
-  case 0x0034: return "??0improper_scheduler_detach@Concurrency@@QAE@XZ";
-  case 0x0035: return "??0improper_scheduler_reference@Concurrency@@QAE@PBD@Z";
-  case 0x0036: return "??0improper_scheduler_reference@Concurrency@@QAE@XZ";
-  case 0x0037: return "??0invalid_link_target@Concurrency@@QAE@PBD@Z";
-  case 0x0038: return "??0invalid_link_target@Concurrency@@QAE@XZ";
-  case 0x0039: return "??0invalid_multiple_scheduling@Concurrency@@QAE@PBD@Z";
-  case 0x003a: return "??0invalid_multiple_scheduling@Concurrency@@QAE@XZ";
-  case 0x003b: return "??0invalid_operation@Concurrency@@QAE@PBD@Z";
-  case 0x003c: return "??0invalid_operation@Concurrency@@QAE@XZ";
-  case 0x003d: return "??0invalid_oversubscribe_operation@Concurrency@@QAE@PBD@Z";
-  case 0x003e: return "??0invalid_oversubscribe_operation@Concurrency@@QAE@XZ";
-  case 0x003f: return "??0invalid_scheduler_policy_key@Concurrency@@QAE@PBD@Z";
-  case 0x0040: return "??0invalid_scheduler_policy_key@Concurrency@@QAE@XZ";
-  case 0x0041: return "??0invalid_scheduler_policy_thread_specification@Concurrency@@QAE@PBD@Z";
-  case 0x0042: return "??0invalid_scheduler_policy_thread_specification@Concurrency@@QAE@XZ";
-  case 0x0043: return "??0invalid_scheduler_policy_value@Concurrency@@QAE@PBD@Z";
-  case 0x0044: return "??0invalid_scheduler_policy_value@Concurrency@@QAE@XZ";
-  case 0x0045: return "??0message_not_found@Concurrency@@QAE@PBD@Z";
-  case 0x0046: return "??0message_not_found@Concurrency@@QAE@XZ";
-  case 0x0047: return "??0missing_wait@Concurrency@@QAE@PBD@Z";
-  case 0x0048: return "??0missing_wait@Concurrency@@QAE@XZ";
-  case 0x0049: return "??0nested_scheduler_missing_detach@Concurrency@@QAE@PBD@Z";
-  case 0x004a: return "??0nested_scheduler_missing_detach@Concurrency@@QAE@XZ";
-  case 0x004b: return "??0operation_timed_out@Concurrency@@QAE@PBD@Z";
-  case 0x004c: return "??0operation_timed_out@Concurrency@@QAE@XZ";
-  case 0x004d: return "??0reader_writer_lock@Concurrency@@QAE@XZ";
-  case 0x004e: return "??0scheduler_not_attached@Concurrency@@QAE@PBD@Z";
-  case 0x004f: return "??0scheduler_not_attached@Concurrency@@QAE@XZ";
-  case 0x0050: return "??0scheduler_resource_allocation_error@Concurrency@@QAE@J@Z";
-  case 0x0051: return "??0scheduler_resource_allocation_error@Concurrency@@QAE@PBDJ@Z";
-  case 0x0052: return "??0scheduler_worker_creation_error@Concurrency@@QAE@J@Z";
-  case 0x0053: return "??0scheduler_worker_creation_error@Concurrency@@QAE@PBDJ@Z";
-  case 0x0054: return "??0scoped_lock@critical_section@Concurrency@@QAE@AAV12@@Z";
-  case 0x0055: return "??0scoped_lock@reader_writer_lock@Concurrency@@QAE@AAV12@@Z";
-  case 0x0056: return "??0scoped_lock_read@reader_writer_lock@Concurrency@@QAE@AAV12@@Z";
-  case 0x0057: return "??0task_canceled@Concurrency@@QAE@PBD@Z";
-  case 0x0058: return "??0task_canceled@Concurrency@@QAE@XZ";
-  case 0x0059: return "??0unsupported_os@Concurrency@@QAE@PBD@Z";
-  case 0x005a: return "??0unsupported_os@Concurrency@@QAE@XZ";
-  case 0x005b: return "??1SchedulerPolicy@Concurrency@@QAE@XZ";
-  case 0x005c: return "??1_CancellationTokenState@details@Concurrency@@UAE@XZ";
-  case 0x005d: return "??1_Cancellation_beacon@details@Concurrency@@QAE@XZ";
-  case 0x005e: return "??1_Condition_variable@details@Concurrency@@QAE@XZ";
-  case 0x005f: return "??1_NonReentrantBlockingLock@details@Concurrency@@QAE@XZ";
-  case 0x0060: return "??1_ReentrantBlockingLock@details@Concurrency@@QAE@XZ";
-  case 0x0061: return "??1_Scoped_lock@_NonReentrantPPLLock@details@Concurrency@@QAE@XZ";
-  case 0x0062: return "??1_Scoped_lock@_ReentrantPPLLock@details@Concurrency@@QAE@XZ";
-  case 0x0063: return "??1_SpinLock@details@Concurrency@@QAE@XZ";
-  case 0x0064: return "??1_TaskCollection@details@Concurrency@@QAE@XZ";
-  case 0x0065: return "??1_Timer@details@Concurrency@@MAE@XZ";
-  case 0x0066: return "??1__non_rtti_object@std@@UAE@XZ";
-  case 0x0067: return "??1bad_cast@std@@UAE@XZ";
-  case 0x0068: return "??1bad_typeid@std@@UAE@XZ";
-  case 0x0069: return "??1critical_section@Concurrency@@QAE@XZ";
-  case 0x006a: return "??1event@Concurrency@@QAE@XZ";
-  case 0x006b: return "??1exception@std@@UAE@XZ";
-  case 0x006c: return "??1reader_writer_lock@Concurrency@@QAE@XZ";
-  case 0x006d: return "??1scoped_lock@critical_section@Concurrency@@QAE@XZ";
-  case 0x006e: return "??1scoped_lock@reader_writer_lock@Concurrency@@QAE@XZ";
-  case 0x006f: return "??1scoped_lock_read@reader_writer_lock@Concurrency@@QAE@XZ";
-  case 0x0070: return "??1type_info@@UAE@XZ";
-  case 0x0071: return "??2@YAPAXI@Z";
-  case 0x0072: return "??2@YAPAXIHPBDH@Z";
-  case 0x0073: return "??3@YAXPAX@Z";
-  case 0x0074: return "??3@YAXPAXHPBDH@Z";
-  case 0x0075: return "??4?$_SpinWait@$00@details@Concurrency@@QAEAAV012@ABV012@@Z";
-  case 0x0076: return "??4?$_SpinWait@$0A@@details@Concurrency@@QAEAAV012@ABV012@@Z";
-  case 0x0077: return "??4SchedulerPolicy@Concurrency@@QAEAAV01@ABV01@@Z";
-  case 0x0078: return "??4__non_rtti_object@std@@QAEAAV01@ABV01@@Z";
-  case 0x0079: return "??4bad_cast@std@@QAEAAV01@ABV01@@Z";
-  case 0x007a: return "??4bad_typeid@std@@QAEAAV01@ABV01@@Z";
-  case 0x007b: return "??4exception@std@@QAEAAV01@ABV01@@Z";
-  case 0x007c: return "??8type_info@@QBE_NABV0@@Z";
-  case 0x007d: return "??9type_info@@QBE_NABV0@@Z";
-  case 0x007e: return "??_7__non_rtti_object@std@@6B@";
-  case 0x007f: return "??_7bad_cast@std@@6B@";
-  case 0x0080: return "??_7bad_typeid@std@@6B@";
-  case 0x0081: return "??_7exception@std@@6B@";
-  case 0x0082: return "??_F?$_SpinWait@$00@details@Concurrency@@QAEXXZ";
-  case 0x0083: return "??_F?$_SpinWait@$0A@@details@Concurrency@@QAEXXZ";
-  case 0x0084: return "??_F_Context@details@Concurrency@@QAEXXZ";
-  case 0x0085: return "??_F_Scheduler@details@Concurrency@@QAEXXZ";
-  case 0x0086: return "??_Fbad_cast@std@@QAEXXZ";
-  case 0x0087: return "??_Fbad_typeid@std@@QAEXXZ";
-  case 0x0088: return "??_U@YAPAXI@Z";
-  case 0x0089: return "??_U@YAPAXIHPBDH@Z";
-  case 0x008a: return "??_V@YAXPAX@Z";
-  case 0x008b: return "??_V@YAXPAXHPBDH@Z";
-  case 0x008c: return "?Alloc@Concurrency@@YAPAXI@Z";
-  case 0x008d: return "?Block@Context@Concurrency@@SAXXZ";
-  case 0x008e: return "?Create@CurrentScheduler@Concurrency@@SAXABVSchedulerPolicy@2@@Z";
-  case 0x008f: return "?Create@Scheduler@Concurrency@@SAPAV12@ABVSchedulerPolicy@2@@Z";
-  case 0x0090: return "?CreateResourceManager@Concurrency@@YAPAUIResourceManager@1@XZ";
-  case 0x0091: return "?CreateScheduleGroup@CurrentScheduler@Concurrency@@SAPAVScheduleGroup@2@AAVlocation@2@@Z";
-  case 0x0092: return "?CreateScheduleGroup@CurrentScheduler@Concurrency@@SAPAVScheduleGroup@2@XZ";
-  case 0x0093: return "?CurrentContext@Context@Concurrency@@SAPAV12@XZ";
-  case 0x0094: return "?Detach@CurrentScheduler@Concurrency@@SAXXZ";
-  case 0x0095: return "?DisableTracing@Concurrency@@YAJXZ";
-  case 0x0096: return "?EnableTracing@Concurrency@@YAJXZ";
-  case 0x0097: return "?Free@Concurrency@@YAXPAX@Z";
-  case 0x0098: return "?Get@CurrentScheduler@Concurrency@@SAPAVScheduler@2@XZ";
-  case 0x0099: return "?GetExecutionContextId@Concurrency@@YAIXZ";
-  case 0x009a: return "?GetNumberOfVirtualProcessors@CurrentScheduler@Concurrency@@SAIXZ";
-  case 0x009b: return "?GetOSVersion@Concurrency@@YA?AW4OSVersion@IResourceManager@1@XZ";
-  case 0x009c: return "?GetPolicy@CurrentScheduler@Concurrency@@SA?AVSchedulerPolicy@2@XZ";
-  case 0x009d: return "?GetPolicyValue@SchedulerPolicy@Concurrency@@QBEIW4PolicyElementKey@2@@Z";
-  case 0x009e: return "?GetProcessorCount@Concurrency@@YAIXZ";
-  case 0x009f: return "?GetProcessorNodeCount@Concurrency@@YAIXZ";
-  case 0x00a0: return "?GetSchedulerId@Concurrency@@YAIXZ";
-  case 0x00a1: return "?GetSharedTimerQueue@details@Concurrency@@YAPAXXZ";
-  case 0x00a2: return "?Id@Context@Concurrency@@SAIXZ";
-  case 0x00a3: return "?Id@CurrentScheduler@Concurrency@@SAIXZ";
-  case 0x00a4: return "?IsAvailableLocation@CurrentScheduler@Concurrency@@SA_NABVlocation@2@@Z";
-  case 0x00a5: return "?IsCurrentTaskCollectionCanceling@Context@Concurrency@@SA_NXZ";
-  case 0x00a6: return "?Log2@details@Concurrency@@YAKI@Z";
-  case 0x00a7: return "?Oversubscribe@Context@Concurrency@@SAX_N@Z";
-  case 0x00a8: return "?RegisterShutdownEvent@CurrentScheduler@Concurrency@@SAXPAX@Z";
-  case 0x00a9: return "?ResetDefaultSchedulerPolicy@Scheduler@Concurrency@@SAXXZ";
-  case 0x00aa: return "?ScheduleGroupId@Context@Concurrency@@SAIXZ";
-  case 0x00ab: return "?ScheduleTask@CurrentScheduler@Concurrency@@SAXP6AXPAX@Z0@Z";
-  case 0x00ac: return "?ScheduleTask@CurrentScheduler@Concurrency@@SAXP6AXPAX@Z0AAVlocation@2@@Z";
-  case 0x00ad: return "?SetConcurrencyLimits@SchedulerPolicy@Concurrency@@QAEXII@Z";
-  case 0x00ae: return "?SetDefaultSchedulerPolicy@Scheduler@Concurrency@@SAXABVSchedulerPolicy@2@@Z";
-  case 0x00af: return "?SetPolicyValue@SchedulerPolicy@Concurrency@@QAEIW4PolicyElementKey@2@I@Z";
-  case 0x00b0: return "?VirtualProcessorId@Context@Concurrency@@SAIXZ";
-  case 0x00b1: return "?Yield@Context@Concurrency@@SAXXZ";
-  case 0x00b2: return "?_Abort@_StructuredTaskCollection@details@Concurrency@@AAEXXZ";
-  case 0x00b3: return "?_Acquire@_NonReentrantBlockingLock@details@Concurrency@@QAEXXZ";
-  case 0x00b4: return "?_Acquire@_NonReentrantPPLLock@details@Concurrency@@QAEXPAX@Z";
-  case 0x00b5: return "?_Acquire@_ReentrantBlockingLock@details@Concurrency@@QAEXXZ";
-  case 0x00b6: return "?_Acquire@_ReentrantLock@details@Concurrency@@QAEXXZ";
-  case 0x00b7: return "?_Acquire@_ReentrantPPLLock@details@Concurrency@@QAEXPAX@Z";
-  case 0x00b8: return "?_AcquireRead@_ReaderWriterLock@details@Concurrency@@QAEXXZ";
-  case 0x00b9: return "?_AcquireWrite@_ReaderWriterLock@details@Concurrency@@QAEXXZ";
-  case 0x00ba: return "?_Cancel@_CancellationTokenState@details@Concurrency@@QAEXXZ";
-  case 0x00bb: return "?_Cancel@_StructuredTaskCollection@details@Concurrency@@QAEXXZ";
-  case 0x00bc: return "?_Cancel@_TaskCollection@details@Concurrency@@QAEXXZ";
-  case 0x00bd: return "?_CheckTaskCollection@_UnrealizedChore@details@Concurrency@@IAEXXZ";
-  case 0x00be: return "?_CleanupToken@_StructuredTaskCollection@details@Concurrency@@AAEXXZ";
-  case 0x00bf: return "?_ConcRT_CoreAssert@details@Concurrency@@YAXPBD0H@Z";
-  case 0x00c0: return "?_ConcRT_Trace@details@Concurrency@@YAXHPB_WZZ";
-  case 0x00c1: return "?_Confirm_cancel@_Cancellation_beacon@details@Concurrency@@QAE_NXZ";
-  case 0x00c2: return "?_Copy_str@exception@std@@AAEXPBD@Z";
-  case 0x00c3: return "?_CurrentContext@_Context@details@Concurrency@@SA?AV123@XZ";
-  case 0x00c4: return "?_Current_node@location@Concurrency@@SA?AV12@XZ";
-  case 0x00c5: return "?_DeregisterCallback@_CancellationTokenState@details@Concurrency@@QAEXPAV_CancellationTokenRegistration@23@@Z";
-  case 0x00c6: return "?_Destroy@_AsyncTaskCollection@details@Concurrency@@EAEXXZ";
-  case 0x00c7: return "?_Destroy@_CancellationTokenState@details@Concurrency@@EAEXXZ";
-  case 0x00c8: return "?_DoYield@?$_SpinWait@$00@details@Concurrency@@IAEXXZ";
-  case 0x00c9: return "?_DoYield@?$_SpinWait@$0A@@details@Concurrency@@IAEXXZ";
-  case 0x00ca: return "?_Get@_CurrentScheduler@details@Concurrency@@SA?AV_Scheduler@23@XZ";
-  case 0x00cb: return "?_GetConcRTTraceInfo@Concurrency@@YAPBU_CONCRT_TRACE_INFO@details@1@XZ";
-  case 0x00cc: return "?_GetConcurrency@details@Concurrency@@YAIXZ";
-  case 0x00cd: return "?_GetCurrentInlineDepth@_StackGuard@details@Concurrency@@CAAAIXZ";
-  case 0x00ce: return "?_GetNumberOfVirtualProcessors@_CurrentScheduler@details@Concurrency@@SAIXZ";
-  case 0x00cf: return "?_GetScheduler@_Scheduler@details@Concurrency@@QAEPAVScheduler@3@XZ";
-  case 0x00d0: return "?_Id@_CurrentScheduler@details@Concurrency@@SAIXZ";
-  case 0x00d1: return "?_Invoke@_CancellationTokenRegistration@details@Concurrency@@AAEXXZ";
-  case 0x00d2: return "?_IsCanceling@_StructuredTaskCollection@details@Concurrency@@QAE_NXZ";
-  case 0x00d3: return "?_IsCanceling@_TaskCollection@details@Concurrency@@QAE_NXZ";
-  case 0x00d4: return "?_IsSynchronouslyBlocked@_Context@details@Concurrency@@QBE_NXZ";
-  case 0x00d5: return "?_Name_base@type_info@@CAPBDPBV1@PAU__type_info_node@@@Z";
-  case 0x00d6: return "?_Name_base_internal@type_info@@CAPBDPBV1@PAU__type_info_node@@@Z";
-  case 0x00d7: return "?_NewCollection@_AsyncTaskCollection@details@Concurrency@@SAPAV123@PAV_CancellationTokenState@23@@Z";
-  case 0x00d8: return "?_NewTokenState@_CancellationTokenState@details@Concurrency@@SAPAV123@XZ";
-  case 0x00d9: return "?_NumberOfSpins@?$_SpinWait@$00@details@Concurrency@@IAEKXZ";
-  case 0x00da: return "?_NumberOfSpins@?$_SpinWait@$0A@@details@Concurrency@@IAEKXZ";
-  case 0x00db: return "?_Oversubscribe@_Context@details@Concurrency@@SAX_N@Z";
-  case 0x00dc: return "?_Reference@_Scheduler@details@Concurrency@@QAEIXZ";
-  case 0x00dd: return "?_RegisterCallback@_CancellationTokenState@details@Concurrency@@QAEPAV_CancellationTokenRegistration@23@P6AXPAX@Z0H@Z";
-  case 0x00de: return "?_RegisterCallback@_CancellationTokenState@details@Concurrency@@QAEXPAV_CancellationTokenRegistration@23@@Z";
-  case 0x00df: return "?_Release@_NonReentrantBlockingLock@details@Concurrency@@QAEXXZ";
-  case 0x00e0: return "?_Release@_NonReentrantPPLLock@details@Concurrency@@QAEXXZ";
-  case 0x00e1: return "?_Release@_ReentrantBlockingLock@details@Concurrency@@QAEXXZ";
-  case 0x00e2: return "?_Release@_ReentrantLock@details@Concurrency@@QAEXXZ";
-  case 0x00e3: return "?_Release@_ReentrantPPLLock@details@Concurrency@@QAEXXZ";
-  case 0x00e4: return "?_Release@_Scheduler@details@Concurrency@@QAEIXZ";
-  case 0x00e5: return "?_ReleaseRead@_ReaderWriterLock@details@Concurrency@@QAEXXZ";
-  case 0x00e6: return "?_ReleaseWrite@_ReaderWriterLock@details@Concurrency@@QAEXXZ";
-  case 0x00e7: return "?_ReportUnobservedException@details@Concurrency@@YAXXZ";
-  case 0x00e8: return "?_Reset@?$_SpinWait@$00@details@Concurrency@@IAEXXZ";
-  case 0x00e9: return "?_Reset@?$_SpinWait@$0A@@details@Concurrency@@IAEXXZ";
-  case 0x00ea: return "?_RunAndWait@_StructuredTaskCollection@details@Concurrency@@QAG?AW4_TaskCollectionStatus@23@PAV_UnrealizedChore@23@@Z";
-  case 0x00eb: return "?_RunAndWait@_TaskCollection@details@Concurrency@@QAG?AW4_TaskCollectionStatus@23@PAV_UnrealizedChore@23@@Z";
-  case 0x00ec: return "?_Schedule@_StructuredTaskCollection@details@Concurrency@@QAEXPAV_UnrealizedChore@23@@Z";
-  case 0x00ed: return "?_Schedule@_StructuredTaskCollection@details@Concurrency@@QAEXPAV_UnrealizedChore@23@PAVlocation@3@@Z";
-  case 0x00ee: return "?_Schedule@_TaskCollection@details@Concurrency@@QAEXPAV_UnrealizedChore@23@@Z";
-  case 0x00ef: return "?_Schedule@_TaskCollection@details@Concurrency@@QAEXPAV_UnrealizedChore@23@PAVlocation@3@@Z";
-  case 0x00f0: return "?_ScheduleTask@_CurrentScheduler@details@Concurrency@@SAXP6AXPAX@Z0@Z";
-  case 0x00f1: return "?_SetSpinCount@?$_SpinWait@$00@details@Concurrency@@QAEXI@Z";
-  case 0x00f2: return "?_SetSpinCount@?$_SpinWait@$0A@@details@Concurrency@@QAEXI@Z";
-  case 0x00f3: return "?_SetUnobservedExceptionHandler@details@Concurrency@@YAXP6AXXZ@Z";
-  case 0x00f4: return "?_ShouldSpinAgain@?$_SpinWait@$00@details@Concurrency@@IAE_NXZ";
-  case 0x00f5: return "?_ShouldSpinAgain@?$_SpinWait@$0A@@details@Concurrency@@IAE_NXZ";
-  case 0x00f6: return "?_SpinOnce@?$_SpinWait@$00@details@Concurrency@@QAE_NXZ";
-  case 0x00f7: return "?_SpinOnce@?$_SpinWait@$0A@@details@Concurrency@@QAE_NXZ";
-  case 0x00f8: return "?_SpinYield@Context@Concurrency@@SAXXZ";
-  case 0x00f9: return "?_Start@_Timer@details@Concurrency@@IAEXXZ";
-  case 0x00fa: return "?_Stop@_Timer@details@Concurrency@@IAEXXZ";
-  case 0x00fb: return "?_Tidy@exception@std@@AAEXXZ";
-  case 0x00fc: return "?_Trace_agents@Concurrency@@YAXW4Agents_EventType@1@_JZZ";
-  case 0x00fd: return "?_Trace_ppl_function@Concurrency@@YAXABU_GUID@@EW4ConcRT_EventType@1@@Z";
-  case 0x00fe: return "?_TryAcquire@_NonReentrantBlockingLock@details@Concurrency@@QAE_NXZ";
-  case 0x00ff: return "?_TryAcquire@_ReentrantBlockingLock@details@Concurrency@@QAE_NXZ";
-  case 0x0100: return "?_TryAcquire@_ReentrantLock@details@Concurrency@@QAE_NXZ";
-  case 0x0101: return "?_TryAcquireWrite@_ReaderWriterLock@details@Concurrency@@QAE_NXZ";
-  case 0x0102: return "?_Type_info_dtor@type_info@@CAXPAV1@@Z";
-  case 0x0103: return "?_Type_info_dtor_internal@type_info@@CAXPAV1@@Z";
-  case 0x0104: return "?_UnderlyingYield@details@Concurrency@@YAXXZ";
-  case 0x0105: return "?_ValidateExecute@@YAHP6GHXZ@Z";
-  case 0x0106: return "?_ValidateRead@@YAHPBXI@Z";
-  case 0x0107: return "?_ValidateWrite@@YAHPAXI@Z";
-  case 0x0108: return "?_Value@_SpinCount@details@Concurrency@@SAIXZ";
-  case 0x0109: return "?_Yield@_Context@details@Concurrency@@SAXXZ";
-  case 0x010a: return "?__ExceptionPtrAssign@@YAXPAXPBX@Z";
-  case 0x010b: return "?__ExceptionPtrCompare@@YA_NPBX0@Z";
-  case 0x010c: return "?__ExceptionPtrCopy@@YAXPAXPBX@Z";
-  case 0x010d: return "?__ExceptionPtrCopyException@@YAXPAXPBX1@Z";
-  case 0x010e: return "?__ExceptionPtrCreate@@YAXPAX@Z";
-  case 0x010f: return "?__ExceptionPtrCurrentException@@YAXPAX@Z";
-  case 0x0110: return "?__ExceptionPtrDestroy@@YAXPAX@Z";
-  case 0x0111: return "?__ExceptionPtrRethrow@@YAXPBX@Z";
-  case 0x0112: return "?__ExceptionPtrSwap@@YAXPAX0@Z";
-  case 0x0113: return "?__ExceptionPtrToBool@@YA_NPBX@Z";
-  case 0x0115: return "?_inconsistency@@YAXXZ";
-  case 0x0116: return "?_invalid_parameter@@YAXPBG00II@Z";
-  case 0x0117: return "?_is_exception_typeof@@YAHABVtype_info@@PAU_EXCEPTION_POINTERS@@@Z";
-  case 0x0118: return "?_name_internal_method@type_info@@QBEPBDPAU__type_info_node@@@Z";
-  case 0x0119: return "?_open@@YAHPBDHH@Z";
-  case 0x011a: return "?_query_new_handler@@YAP6AHI@ZXZ";
-  case 0x011b: return "?_query_new_mode@@YAHXZ";
-  case 0x011c: return "?_set_new_handler@@YAP6AHI@ZH@Z";
-  case 0x011d: return "?_set_new_handler@@YAP6AHI@ZP6AHI@Z@Z";
-  case 0x011e: return "?_set_new_mode@@YAHH@Z";
-  case 0x011f: return "?_set_se_translator@@YAP6AXIPAU_EXCEPTION_POINTERS@@@ZH@Z";
-  case 0x0120: return "?_set_se_translator@@YAP6AXIPAU_EXCEPTION_POINTERS@@@ZP6AXI0@Z@Z";
-  case 0x0121: return "?_sopen@@YAHPBDHHH@Z";
-  case 0x0122: return "?_type_info_dtor_internal_method@type_info@@QAEXXZ";
-  case 0x0123: return "?_wopen@@YAHPB_WHH@Z";
-  case 0x0124: return "?_wsopen@@YAHPB_WHHH@Z";
-  case 0x0125: return "?before@type_info@@QBE_NABV1@@Z";
-  case 0x0126: return "?current@location@Concurrency@@SA?AV12@XZ";
-  case 0x0127: return "?from_numa_node@location@Concurrency@@SA?AV12@G@Z";
-  case 0x0128: return "?get_error_code@scheduler_resource_allocation_error@Concurrency@@QBEJXZ";
-  case 0x0129: return "?lock@critical_section@Concurrency@@QAEXXZ";
-  case 0x012a: return "?lock@reader_writer_lock@Concurrency@@QAEXXZ";
-  case 0x012b: return "?lock_read@reader_writer_lock@Concurrency@@QAEXXZ";
-  case 0x012c: return "?name@type_info@@QBEPBDPAU__type_info_node@@@Z";
-  case 0x012d: return "?native_handle@critical_section@Concurrency@@QAEAAV12@XZ";
-  case 0x012e: return "?notify_all@_Condition_variable@details@Concurrency@@QAEXXZ";
-  case 0x012f: return "?notify_one@_Condition_variable@details@Concurrency@@QAEXXZ";
-  case 0x0130: return "?raw_name@type_info@@QBEPBDXZ";
-  case 0x0131: return "?reset@event@Concurrency@@QAEXXZ";
-  case 0x0132: return "?set@event@Concurrency@@QAEXXZ";
-  case 0x0133: return "?set_new_handler@@YAP6AXXZP6AXXZ@Z";
-  case 0x0134: return "?set_task_execution_resources@Concurrency@@YAXGPAU_GROUP_AFFINITY@@@Z";
-  case 0x0135: return "?set_task_execution_resources@Concurrency@@YAXK@Z";
-  case 0x0136: return "?set_terminate@@YAP6AXXZH@Z";
-  case 0x0137: return "?set_terminate@@YAP6AXXZP6AXXZ@Z";
-  case 0x0138: return "?set_unexpected@@YAP6AXXZH@Z";
-  case 0x0139: return "?set_unexpected@@YAP6AXXZP6AXXZ@Z";
-  case 0x013a: return "?swprintf@@YAHPAGIPBGZZ";
-  case 0x013b: return "?swprintf@@YAHPA_WIPB_WZZ";
-  case 0x013c: return "?terminate@@YAXXZ";
-  case 0x013d: return "?try_lock@critical_section@Concurrency@@QAE_NXZ";
-  case 0x013e: return "?try_lock@reader_writer_lock@Concurrency@@QAE_NXZ";
-  case 0x013f: return "?try_lock_for@critical_section@Concurrency@@QAE_NI@Z";
-  case 0x0140: return "?try_lock_read@reader_writer_lock@Concurrency@@QAE_NXZ";
-  case 0x0141: return "?unexpected@@YAXXZ";
-  case 0x0142: return "?unlock@critical_section@Concurrency@@QAEXXZ";
-  case 0x0143: return "?unlock@reader_writer_lock@Concurrency@@QAEXXZ";
-  case 0x0144: return "?vswprintf@@YAHPA_WIPB_WPAD@Z";
-  case 0x0145: return "?wait@Concurrency@@YAXI@Z";
-  case 0x0146: return "?wait@_Condition_variable@details@Concurrency@@QAEXAAVcritical_section@3@@Z";
-  case 0x0147: return "?wait@event@Concurrency@@QAEII@Z";
-  case 0x0148: return "?wait_for@_Condition_variable@details@Concurrency@@QAE_NAAVcritical_section@3@I@Z";
-  case 0x0149: return "?wait_for_multiple@event@Concurrency@@SAIPAPAV12@I_NI@Z";
-  case 0x014a: return "?what@exception@std@@UBEPBDXZ";
-  case 0x014c: return "_CIacos";
-  case 0x014d: return "_CIasin";
-  case 0x014e: return "_CIatan";
-  case 0x014f: return "_CIatan2";
-  case 0x0150: return "_CIcos";
-  case 0x0151: return "_CIcosh";
-  case 0x0152: return "_CIexp";
-  case 0x0153: return "_CIfmod";
-  case 0x0154: return "_CIlog";
-  case 0x0155: return "_CIlog10";
-  case 0x0156: return "_CIpow";
-  case 0x0157: return "_CIsin";
-  case 0x0158: return "_CIsinh";
-  case 0x0159: return "_CIsqrt";
-  case 0x015a: return "_CItan";
-  case 0x015b: return "_CItanh";
-  case 0x015c: return "_CRT_RTC_INIT";
-  case 0x015d: return "_CRT_RTC_INITW";
-  case 0x015e: return "_CreateFrameInfo";
-  case 0x015f: return "_CxxThrowException";
-  case 0x0160: return "_EH_prolog";
-  case 0x0161: return "_FindAndUnlinkFrame";
-  case 0x0162: return "_Getdays";
-  case 0x0163: return "_Getmonths";
-  case 0x0164: return "_Gettnames";
-  case 0x0165: return "_HUGE";
-  case 0x0166: return "_IsExceptionObjectToBeDestroyed";
-  case 0x0167: return "_Lock_shared_ptr_spin_lock";
-  case 0x0168: return "_NLG_Dispatch2";
-  case 0x0169: return "_NLG_Return";
-  case 0x016a: return "_NLG_Return2";
-  case 0x016b: return "_Strftime";
-  case 0x016c: return "_Unlock_shared_ptr_spin_lock";
-  case 0x016d: return "_W_Getdays";
-  case 0x016e: return "_W_Getmonths";
-  case 0x016f: return "_W_Gettnames";
-  case 0x0170: return "_Wcsftime";
-  case 0x0171: return "_XcptFilter";
-  case 0x0172: return "__AdjustPointer";
-  case 0x0173: return "__BuildCatchObject";
-  case 0x0174: return "__BuildCatchObjectHelper";
-  case 0x0175: return "__CppXcptFilter";
-  case 0x0176: return "__CxxDetectRethrow";
-  case 0x0177: return "__CxxExceptionFilter";
-  case 0x0178: return "__CxxFrameHandler";
-  case 0x0179: return "__CxxFrameHandler2";
-  case 0x017a: return "__CxxFrameHandler3";
-  case 0x017b: return "__CxxLongjmpUnwind";
-  case 0x017c: return "__CxxQueryExceptionSize";
-  case 0x017d: return "__CxxRegisterExceptionObject";
-  case 0x017e: return "__CxxUnregisterExceptionObject";
-  case 0x017f: return "__DestructExceptionObject";
-  case 0x0180: return "__FrameUnwindFilter";
-  case 0x0181: return "__RTCastToVoid";
-  case 0x0182: return "__RTDynamicCast";
-  case 0x0183: return "__RTtypeid";
-  case 0x0184: return "__STRINGTOLD";
-  case 0x0185: return "__STRINGTOLD_L";
-  case 0x0186: return "__TypeMatch";
-  case 0x0197: return "___crtCreateSemaphoreExW@24";
-  case 0x0187: return "___lc_codepage_func";
-  case 0x0188: return "___lc_collate_cp_func";
-  case 0x0189: return "___lc_locale_name_func";
-  case 0x018a: return "___mb_cur_max_func";
-  case 0x018b: return "___mb_cur_max_l_func";
-  case 0x018c: return "___setlc_active_func";
-  case 0x018d: return "___unguarded_readlc_active_add_func";
-  case 0x018e: return "__argc";
-  case 0x018f: return "__argv";
-  case 0x0190: return "__badioinfo";
-  case 0x0191: return "__clean_type_info_names_internal";
-  case 0x0192: return "__control87_2";
-  case 0x0193: return "__create_locale";
-  case 0x0194: return "__crtCompareStringA";
-  case 0x0195: return "__crtCompareStringEx";
-  case 0x0196: return "__crtCompareStringW";
-  case 0x0198: return "__crtCreateSymbolicLinkW";
-  case 0x0199: return "__crtEnumSystemLocalesEx";
-  case 0x019a: return "__crtFlsAlloc";
-  case 0x019b: return "__crtFlsFree";
-  case 0x019c: return "__crtFlsGetValue";
-  case 0x019d: return "__crtFlsSetValue";
-  case 0x019e: return "__crtGetDateFormatEx";
-  case 0x019f: return "__crtGetLocaleInfoEx";
-  case 0x01a0: return "__crtGetShowWindowMode";
-  case 0x01a1: return "__crtGetTimeFormatEx";
-  case 0x01a2: return "__crtGetUserDefaultLocaleName";
-  case 0x01a3: return "__crtInitializeCriticalSectionEx";
-  case 0x01a4: return "__crtIsPackagedApp";
-  case 0x01a5: return "__crtIsValidLocaleName";
-  case 0x01a6: return "__crtLCMapStringA";
-  case 0x01a7: return "__crtLCMapStringEx";
-  case 0x01a8: return "__crtLCMapStringW";
-  case 0x01a9: return "__crtSetThreadStackGuarantee";
-  case 0x01aa: return "__crtSetUnhandledExceptionFilter";
-  case 0x01ab: return "__crtTerminateProcess";
-  case 0x01ac: return "__crtUnhandledException";
-  case 0x01ad: return "__daylight";
-  case 0x01ae: return "__dllonexit";
-  case 0x01af: return "__doserrno";
-  case 0x01b0: return "__dstbias";
-  case 0x01b1: return "__fpecode";
-  case 0x01b2: return "__free_locale";
-  case 0x01b3: return "__get_current_locale";
-  case 0x01b4: return "__get_flsindex";
-  case 0x01b5: return "__get_tlsindex";
-  case 0x01b6: return "__getmainargs";
-  case 0x01b7: return "__initenv";
-  case 0x01b8: return "__iob_func";
-  case 0x01b9: return "__isascii";
-  case 0x01ba: return "__iscsym";
-  case 0x01bb: return "__iscsymf";
-  case 0x01bc: return "__iswcsym";
-  case 0x01bd: return "__iswcsymf";
-  case 0x01be: return "__lconv";
-  case 0x01bf: return "__lconv_init";
-  case 0x01c0: return "__libm_sse2_acos";
-  case 0x01c1: return "__libm_sse2_acosf";
-  case 0x01c2: return "__libm_sse2_asin";
-  case 0x01c3: return "__libm_sse2_asinf";
-  case 0x01c4: return "__libm_sse2_atan";
-  case 0x01c5: return "__libm_sse2_atan2";
-  case 0x01c6: return "__libm_sse2_atanf";
-  case 0x01c7: return "__libm_sse2_cos";
-  case 0x01c8: return "__libm_sse2_cosf";
-  case 0x01c9: return "__libm_sse2_exp";
-  case 0x01ca: return "__libm_sse2_expf";
-  case 0x01cb: return "__libm_sse2_log";
-  case 0x01cc: return "__libm_sse2_log10";
-  case 0x01cd: return "__libm_sse2_log10f";
-  case 0x01ce: return "__libm_sse2_logf";
-  case 0x01cf: return "__libm_sse2_pow";
-  case 0x01d0: return "__libm_sse2_powf";
-  case 0x01d1: return "__libm_sse2_sin";
-  case 0x01d2: return "__libm_sse2_sinf";
-  case 0x01d3: return "__libm_sse2_tan";
-  case 0x01d4: return "__libm_sse2_tanf";
-  case 0x01d5: return "__mb_cur_max";
-  case 0x01d6: return "__p___argc";
-  case 0x01d7: return "__p___argv";
-  case 0x01d8: return "__p___initenv";
-  case 0x01d9: return "__p___mb_cur_max";
-  case 0x01da: return "__p___wargv";
-  case 0x01db: return "__p___winitenv";
-  case 0x01dc: return "__p__acmdln";
-  case 0x01dd: return "__p__commode";
-  case 0x01de: return "__p__daylight";
-  case 0x01df: return "__p__dstbias";
-  case 0x01e0: return "__p__environ";
-  case 0x01e1: return "__p__fmode";
-  case 0x01e2: return "__p__iob";
-  case 0x01e3: return "__p__mbcasemap";
-  case 0x01e4: return "__p__mbctype";
-  case 0x01e5: return "__p__pctype";
-  case 0x01e6: return "__p__pgmptr";
-  case 0x01e7: return "__p__pwctype";
-  case 0x01e8: return "__p__timezone";
-  case 0x01e9: return "__p__tzname";
-  case 0x01ea: return "__p__wcmdln";
-  case 0x01eb: return "__p__wenviron";
-  case 0x01ec: return "__p__wpgmptr";
-  case 0x01ed: return "__pctype_func";
-  case 0x01ee: return "__pioinfo";
-  case 0x01ef: return "__pwctype_func";
-  case 0x01f0: return "__pxcptinfoptrs";
-  case 0x01f1: return "__report_gsfailure";
-  case 0x01f2: return "__set_app_type";
-  case 0x01f3: return "__setlc_active";
-  case 0x01f4: return "__setusermatherr";
-  case 0x01f5: return "__strncnt";
-  case 0x01f6: return "__swprintf_l";
-  case 0x01f7: return "__sys_errlist";
-  case 0x01f8: return "__sys_nerr";
-  case 0x01f9: return "__threadhandle";
-  case 0x01fa: return "__threadid";
-  case 0x01fb: return "__timezone";
-  case 0x01fc: return "__toascii";
-  case 0x01fd: return "__tzname";
-  case 0x01fe: return "__unDName";
-  case 0x01ff: return "__unDNameEx";
-  case 0x0200: return "__unDNameHelper";
-  case 0x0114: return "__uncaught_exception";
-  case 0x0201: return "__unguarded_readlc_active";
-  case 0x0202: return "__vswprintf_l";
-  case 0x0203: return "__wargv";
-  case 0x0204: return "__wcserror";
-  case 0x0205: return "__wcserror_s";
-  case 0x0206: return "__wcsncnt";
-  case 0x0207: return "__wgetmainargs";
-  case 0x0208: return "__winitenv";
-  case 0x0209: return "_abnormal_termination";
-  case 0x020a: return "_abs64";
-  case 0x020b: return "_access";
-  case 0x020c: return "_access_s";
-  case 0x020d: return "_acmdln";
-  case 0x020e: return "_aligned_free";
-  case 0x020f: return "_aligned_malloc";
-  case 0x0210: return "_aligned_msize";
-  case 0x0211: return "_aligned_offset_malloc";
-  case 0x0212: return "_aligned_offset_realloc";
-  case 0x0213: return "_aligned_offset_recalloc";
-  case 0x0214: return "_aligned_realloc";
-  case 0x0215: return "_aligned_recalloc";
-  case 0x0216: return "_amsg_exit";
-  case 0x0217: return "_assert";
-  case 0x0218: return "_atodbl";
-  case 0x0219: return "_atodbl_l";
-  case 0x021a: return "_atof_l";
-  case 0x021b: return "_atoflt";
-  case 0x021c: return "_atoflt_l";
-  case 0x021d: return "_atoi64";
-  case 0x021e: return "_atoi64_l";
-  case 0x021f: return "_atoi_l";
-  case 0x0220: return "_atol_l";
-  case 0x0221: return "_atoldbl";
-  case 0x0222: return "_atoldbl_l";
-  case 0x0223: return "_beep";
-  case 0x0224: return "_beginthread";
-  case 0x0225: return "_beginthreadex";
-  case 0x0226: return "_byteswap_uint64";
-  case 0x0227: return "_byteswap_ulong";
-  case 0x0228: return "_byteswap_ushort";
-  case 0x0229: return "_c_exit";
-  case 0x022a: return "_cabs";
-  case 0x022b: return "_callnewh";
-  case 0x022c: return "_calloc_crt";
-  case 0x022d: return "_cexit";
-  case 0x022e: return "_cgets";
-  case 0x022f: return "_cgets_s";
-  case 0x0230: return "_cgetws";
-  case 0x0231: return "_cgetws_s";
-  case 0x0232: return "_chdir";
-  case 0x0233: return "_chdrive";
-  case 0x0234: return "_chgsign";
-  case 0x0235: return "_chkesp";
-  case 0x0236: return "_chmod";
-  case 0x0237: return "_chsize";
-  case 0x0238: return "_chsize_s";
-  case 0x0239: return "_clearfp";
-  case 0x023a: return "_close";
-  case 0x023b: return "_commit";
-  case 0x023c: return "_commode";
-  case 0x023d: return "_configthreadlocale";
-  case 0x023e: return "_control87";
-  case 0x023f: return "_controlfp";
-  case 0x0240: return "_controlfp_s";
-  case 0x0241: return "_copysign";
-  case 0x0242: return "_cprintf";
-  case 0x0243: return "_cprintf_l";
-  case 0x0244: return "_cprintf_p";
-  case 0x0245: return "_cprintf_p_l";
-  case 0x0246: return "_cprintf_s";
-  case 0x0247: return "_cprintf_s_l";
-  case 0x0248: return "_cputs";
-  case 0x0249: return "_cputws";
-  case 0x024a: return "_creat";
-  case 0x024b: return "_create_locale";
-  case 0x024c: return "_crt_debugger_hook";
-  case 0x024d: return "_cscanf";
-  case 0x024e: return "_cscanf_l";
-  case 0x024f: return "_cscanf_s";
-  case 0x0250: return "_cscanf_s_l";
-  case 0x0251: return "_ctime32";
-  case 0x0252: return "_ctime32_s";
-  case 0x0253: return "_ctime64";
-  case 0x0254: return "_ctime64_s";
-  case 0x0255: return "_cwait";
-  case 0x0256: return "_cwprintf";
-  case 0x0257: return "_cwprintf_l";
-  case 0x0258: return "_cwprintf_p";
-  case 0x0259: return "_cwprintf_p_l";
-  case 0x025a: return "_cwprintf_s";
-  case 0x025b: return "_cwprintf_s_l";
-  case 0x025c: return "_cwscanf";
-  case 0x025d: return "_cwscanf_l";
-  case 0x025e: return "_cwscanf_s";
-  case 0x025f: return "_cwscanf_s_l";
-  case 0x0260: return "_daylight";
-  case 0x0261: return "_difftime32";
-  case 0x0262: return "_difftime64";
-  case 0x0263: return "_dosmaperr";
-  case 0x0264: return "_dstbias";
-  case 0x0265: return "_dup";
-  case 0x0266: return "_dup2";
-  case 0x0267: return "_dupenv_s";
-  case 0x0268: return "_ecvt";
-  case 0x0269: return "_ecvt_s";
-  case 0x026a: return "_endthread";
-  case 0x026b: return "_endthreadex";
-  case 0x026c: return "_environ";
-  case 0x026d: return "_eof";
-  case 0x026e: return "_errno";
-  case 0x026f: return "_except_handler2";
-  case 0x0270: return "_except_handler3";
-  case 0x0271: return "_except_handler4_common";
-  case 0x0272: return "_execl";
-  case 0x0273: return "_execle";
-  case 0x0274: return "_execlp";
-  case 0x0275: return "_execlpe";
-  case 0x0276: return "_execv";
-  case 0x0277: return "_execve";
-  case 0x0278: return "_execvp";
-  case 0x0279: return "_execvpe";
-  case 0x027a: return "_exit";
-  case 0x027b: return "_expand";
-  case 0x027c: return "_fclose_nolock";
-  case 0x027d: return "_fcloseall";
-  case 0x027e: return "_fcvt";
-  case 0x027f: return "_fcvt_s";
-  case 0x0280: return "_fdopen";
-  case 0x0281: return "_fflush_nolock";
-  case 0x0282: return "_fgetchar";
-  case 0x0283: return "_fgetwc_nolock";
-  case 0x0284: return "_fgetwchar";
-  case 0x0285: return "_filbuf";
-  case 0x0286: return "_filelength";
-  case 0x0287: return "_filelengthi64";
-  case 0x0288: return "_fileno";
-  case 0x0289: return "_findclose";
-  case 0x028a: return "_findfirst32";
-  case 0x028b: return "_findfirst32i64";
-  case 0x028c: return "_findfirst64";
-  case 0x028d: return "_findfirst64i32";
-  case 0x028e: return "_findnext32";
-  case 0x028f: return "_findnext32i64";
-  case 0x0290: return "_findnext64";
-  case 0x0291: return "_findnext64i32";
-  case 0x0292: return "_finite";
-  case 0x0293: return "_flsbuf";
-  case 0x0294: return "_flushall";
-  case 0x0295: return "_fmode";
-  case 0x0296: return "_fpclass";
-  case 0x0297: return "_fpieee_flt";
-  case 0x0298: return "_fpreset";
-  case 0x0299: return "_fprintf_l";
-  case 0x029a: return "_fprintf_p";
-  case 0x029b: return "_fprintf_p_l";
-  case 0x029c: return "_fprintf_s_l";
-  case 0x029d: return "_fputchar";
-  case 0x029e: return "_fputwc_nolock";
-  case 0x029f: return "_fputwchar";
-  case 0x02a0: return "_fread_nolock";
-  case 0x02a1: return "_fread_nolock_s";
-  case 0x02a2: return "_free_locale";
-  case 0x02a3: return "_freea";
-  case 0x02a4: return "_freea_s";
-  case 0x02a5: return "_freefls";
-  case 0x02a6: return "_fscanf_l";
-  case 0x02a7: return "_fscanf_s_l";
-  case 0x02a8: return "_fseek_nolock";
-  case 0x02a9: return "_fseeki64";
-  case 0x02aa: return "_fseeki64_nolock";
-  case 0x02ab: return "_fsopen";
-  case 0x02ac: return "_fstat32";
-  case 0x02ad: return "_fstat32i64";
-  case 0x02ae: return "_fstat64";
-  case 0x02af: return "_fstat64i32";
-  case 0x02b0: return "_ftell_nolock";
-  case 0x02b1: return "_ftelli64";
-  case 0x02b2: return "_ftelli64_nolock";
-  case 0x02b3: return "_ftime32";
-  case 0x02b4: return "_ftime32_s";
-  case 0x02b5: return "_ftime64";
-  case 0x02b6: return "_ftime64_s";
-  case 0x02b7: return "_ftol";
-  case 0x02b8: return "_fullpath";
-  case 0x02b9: return "_futime32";
-  case 0x02ba: return "_futime64";
-  case 0x02bb: return "_fwprintf_l";
-  case 0x02bc: return "_fwprintf_p";
-  case 0x02bd: return "_fwprintf_p_l";
-  case 0x02be: return "_fwprintf_s_l";
-  case 0x02bf: return "_fwrite_nolock";
-  case 0x02c0: return "_fwscanf_l";
-  case 0x02c1: return "_fwscanf_s_l";
-  case 0x02c2: return "_gcvt";
-  case 0x02c3: return "_gcvt_s";
-  case 0x02c4: return "_get_current_locale";
-  case 0x02c5: return "_get_daylight";
-  case 0x02c6: return "_get_doserrno";
-  case 0x02c7: return "_get_dstbias";
-  case 0x02c8: return "_get_errno";
-  case 0x02c9: return "_get_fmode";
-  case 0x02ca: return "_get_heap_handle";
-  case 0x02cb: return "_get_invalid_parameter_handler";
-  case 0x02cc: return "_get_osfhandle";
-  case 0x02cd: return "_get_output_format";
-  case 0x02ce: return "_get_pgmptr";
-  case 0x02cf: return "_get_printf_count_output";
-  case 0x02d0: return "_get_purecall_handler";
-  case 0x02d1: return "_get_terminate";
-  case 0x02d2: return "_get_timezone";
-  case 0x02d3: return "_get_tzname";
-  case 0x02d4: return "_get_unexpected";
-  case 0x02d5: return "_get_wpgmptr";
-  case 0x02d6: return "_getc_nolock";
-  case 0x02d7: return "_getch";
-  case 0x02d8: return "_getch_nolock";
-  case 0x02d9: return "_getche";
-  case 0x02da: return "_getche_nolock";
-  case 0x02db: return "_getcwd";
-  case 0x02dc: return "_getdcwd";
-  case 0x02dd: return "_getdiskfree";
-  case 0x02de: return "_getdllprocaddr";
-  case 0x02df: return "_getdrive";
-  case 0x02e0: return "_getdrives";
-  case 0x02e1: return "_getmaxstdio";
-  case 0x02e2: return "_getmbcp";
-  case 0x02e3: return "_getpid";
-  case 0x02e4: return "_getptd";
-  case 0x02e5: return "_getsystime";
-  case 0x02e6: return "_getw";
-  case 0x02e7: return "_getwch";
-  case 0x02e8: return "_getwch_nolock";
-  case 0x02e9: return "_getwche";
-  case 0x02ea: return "_getwche_nolock";
-  case 0x02eb: return "_getws";
-  case 0x02ec: return "_getws_s";
-  case 0x02ed: return "_global_unwind2";
-  case 0x02ee: return "_gmtime32";
-  case 0x02ef: return "_gmtime32_s";
-  case 0x02f0: return "_gmtime64";
-  case 0x02f1: return "_gmtime64_s";
-  case 0x02f2: return "_heapadd";
-  case 0x02f3: return "_heapchk";
-  case 0x02f4: return "_heapmin";
-  case 0x02f5: return "_heapset";
-  case 0x02f6: return "_heapused";
-  case 0x02f7: return "_heapwalk";
-  case 0x02f8: return "_hypot";
-  case 0x02f9: return "_hypotf";
-  case 0x02fa: return "_i64toa";
-  case 0x02fb: return "_i64toa_s";
-  case 0x02fc: return "_i64tow";
-  case 0x02fd: return "_i64tow_s";
-  case 0x02fe: return "_initptd";
-  case 0x02ff: return "_initterm";
-  case 0x0300: return "_initterm_e";
-  case 0x0301: return "_inp";
-  case 0x0302: return "_inpd";
-  case 0x0303: return "_inpw";
-  case 0x0304: return "_invalid_parameter";
-  case 0x0305: return "_invalid_parameter_noinfo";
-  case 0x0306: return "_invalid_parameter_noinfo_noreturn";
-  case 0x0307: return "_invoke_watson";
-  case 0x0308: return "_iob";
-  case 0x0309: return "_isalnum_l";
-  case 0x030a: return "_isalpha_l";
-  case 0x030b: return "_isatty";
-  case 0x030c: return "_iscntrl_l";
-  case 0x030d: return "_isctype";
-  case 0x030e: return "_isctype_l";
-  case 0x030f: return "_isdigit_l";
-  case 0x0310: return "_isgraph_l";
-  case 0x0311: return "_isleadbyte_l";
-  case 0x0312: return "_islower_l";
-  case 0x0313: return "_ismbbalnum";
-  case 0x0314: return "_ismbbalnum_l";
-  case 0x0315: return "_ismbbalpha";
-  case 0x0316: return "_ismbbalpha_l";
-  case 0x0317: return "_ismbbgraph";
-  case 0x0318: return "_ismbbgraph_l";
-  case 0x0319: return "_ismbbkalnum";
-  case 0x031a: return "_ismbbkalnum_l";
-  case 0x031b: return "_ismbbkana";
-  case 0x031c: return "_ismbbkana_l";
-  case 0x031d: return "_ismbbkprint";
-  case 0x031e: return "_ismbbkprint_l";
-  case 0x031f: return "_ismbbkpunct";
-  case 0x0320: return "_ismbbkpunct_l";
-  case 0x0321: return "_ismbblead";
-  case 0x0322: return "_ismbblead_l";
-  case 0x0323: return "_ismbbprint";
-  case 0x0324: return "_ismbbprint_l";
-  case 0x0325: return "_ismbbpunct";
-  case 0x0326: return "_ismbbpunct_l";
-  case 0x0327: return "_ismbbtrail";
-  case 0x0328: return "_ismbbtrail_l";
-  case 0x0329: return "_ismbcalnum";
-  case 0x032a: return "_ismbcalnum_l";
-  case 0x032b: return "_ismbcalpha";
-  case 0x032c: return "_ismbcalpha_l";
-  case 0x032d: return "_ismbcdigit";
-  case 0x032e: return "_ismbcdigit_l";
-  case 0x032f: return "_ismbcgraph";
-  case 0x0330: return "_ismbcgraph_l";
-  case 0x0331: return "_ismbchira";
-  case 0x0332: return "_ismbchira_l";
-  case 0x0333: return "_ismbckata";
-  case 0x0334: return "_ismbckata_l";
-  case 0x0335: return "_ismbcl0";
-  case 0x0336: return "_ismbcl0_l";
-  case 0x0337: return "_ismbcl1";
-  case 0x0338: return "_ismbcl1_l";
-  case 0x0339: return "_ismbcl2";
-  case 0x033a: return "_ismbcl2_l";
-  case 0x033b: return "_ismbclegal";
-  case 0x033c: return "_ismbclegal_l";
-  case 0x033d: return "_ismbclower";
-  case 0x033e: return "_ismbclower_l";
-  case 0x033f: return "_ismbcprint";
-  case 0x0340: return "_ismbcprint_l";
-  case 0x0341: return "_ismbcpunct";
-  case 0x0342: return "_ismbcpunct_l";
-  case 0x0343: return "_ismbcspace";
-  case 0x0344: return "_ismbcspace_l";
-  case 0x0345: return "_ismbcsymbol";
-  case 0x0346: return "_ismbcsymbol_l";
-  case 0x0347: return "_ismbcupper";
-  case 0x0348: return "_ismbcupper_l";
-  case 0x0349: return "_ismbslead";
-  case 0x034a: return "_ismbslead_l";
-  case 0x034b: return "_ismbstrail";
-  case 0x034c: return "_ismbstrail_l";
-  case 0x034d: return "_isnan";
-  case 0x034e: return "_isprint_l";
-  case 0x034f: return "_ispunct_l";
-  case 0x0350: return "_isspace_l";
-  case 0x0351: return "_isupper_l";
-  case 0x0352: return "_iswalnum_l";
-  case 0x0353: return "_iswalpha_l";
-  case 0x0354: return "_iswcntrl_l";
-  case 0x0355: return "_iswcsym_l";
-  case 0x0356: return "_iswcsymf_l";
-  case 0x0357: return "_iswctype_l";
-  case 0x0358: return "_iswdigit_l";
-  case 0x0359: return "_iswgraph_l";
-  case 0x035a: return "_iswlower_l";
-  case 0x035b: return "_iswprint_l";
-  case 0x035c: return "_iswpunct_l";
-  case 0x035d: return "_iswspace_l";
-  case 0x035e: return "_iswupper_l";
-  case 0x035f: return "_iswxdigit_l";
-  case 0x0360: return "_isxdigit_l";
-  case 0x0361: return "_itoa";
-  case 0x0362: return "_itoa_s";
-  case 0x0363: return "_itow";
-  case 0x0364: return "_itow_s";
-  case 0x0365: return "_j0";
-  case 0x0366: return "_j1";
-  case 0x0367: return "_jn";
-  case 0x0368: return "_kbhit";
-  case 0x0369: return "_lfind";
-  case 0x036a: return "_lfind_s";
-  case 0x036b: return "_libm_sse2_acos_precise";
-  case 0x036c: return "_libm_sse2_asin_precise";
-  case 0x036d: return "_libm_sse2_atan_precise";
-  case 0x036e: return "_libm_sse2_cos_precise";
-  case 0x036f: return "_libm_sse2_exp_precise";
-  case 0x0370: return "_libm_sse2_log10_precise";
-  case 0x0371: return "_libm_sse2_log_precise";
-  case 0x0372: return "_libm_sse2_pow_precise";
-  case 0x0373: return "_libm_sse2_sin_precise";
-  case 0x0374: return "_libm_sse2_sqrt_precise";
-  case 0x0375: return "_libm_sse2_tan_precise";
-  case 0x0376: return "_loaddll";
-  case 0x0377: return "_local_unwind2";
-  case 0x0378: return "_local_unwind4";
-  case 0x0379: return "_localtime32";
-  case 0x037a: return "_localtime32_s";
-  case 0x037b: return "_localtime64";
-  case 0x037c: return "_localtime64_s";
-  case 0x037d: return "_lock";
-  case 0x037e: return "_lock_file";
-  case 0x037f: return "_locking";
-  case 0x0380: return "_logb";
-  case 0x0381: return "_longjmpex";
-  case 0x0382: return "_lrotl";
-  case 0x0383: return "_lrotr";
-  case 0x0384: return "_lsearch";
-  case 0x0385: return "_lsearch_s";
-  case 0x0386: return "_lseek";
-  case 0x0387: return "_lseeki64";
-  case 0x0388: return "_ltoa";
-  case 0x0389: return "_ltoa_s";
-  case 0x038a: return "_ltow";
-  case 0x038b: return "_ltow_s";
-  case 0x038c: return "_makepath";
-  case 0x038d: return "_makepath_s";
-  case 0x038e: return "_malloc_crt";
-  case 0x038f: return "_mbbtombc";
-  case 0x0390: return "_mbbtombc_l";
-  case 0x0391: return "_mbbtype";
-  case 0x0392: return "_mbbtype_l";
-  case 0x0393: return "_mbcasemap";
-  case 0x0394: return "_mbccpy";
-  case 0x0395: return "_mbccpy_l";
-  case 0x0396: return "_mbccpy_s";
-  case 0x0397: return "_mbccpy_s_l";
-  case 0x0398: return "_mbcjistojms";
-  case 0x0399: return "_mbcjistojms_l";
-  case 0x039a: return "_mbcjmstojis";
-  case 0x039b: return "_mbcjmstojis_l";
-  case 0x039c: return "_mbclen";
-  case 0x039d: return "_mbclen_l";
-  case 0x039e: return "_mbctohira";
-  case 0x039f: return "_mbctohira_l";
-  case 0x03a0: return "_mbctokata";
-  case 0x03a1: return "_mbctokata_l";
-  case 0x03a2: return "_mbctolower";
-  case 0x03a3: return "_mbctolower_l";
-  case 0x03a4: return "_mbctombb";
-  case 0x03a5: return "_mbctombb_l";
-  case 0x03a6: return "_mbctoupper";
-  case 0x03a7: return "_mbctoupper_l";
-  case 0x03a8: return "_mbctype";
-  case 0x03a9: return "_mblen_l";
-  case 0x03aa: return "_mbsbtype";
-  case 0x03ab: return "_mbsbtype_l";
-  case 0x03ac: return "_mbscat_s";
-  case 0x03ad: return "_mbscat_s_l";
-  case 0x03ae: return "_mbschr";
-  case 0x03af: return "_mbschr_l";
-  case 0x03b0: return "_mbscmp";
-  case 0x03b1: return "_mbscmp_l";
-  case 0x03b2: return "_mbscoll";
-  case 0x03b3: return "_mbscoll_l";
-  case 0x03b4: return "_mbscpy_s";
-  case 0x03b5: return "_mbscpy_s_l";
-  case 0x03b6: return "_mbscspn";
-  case 0x03b7: return "_mbscspn_l";
-  case 0x03b8: return "_mbsdec";
-  case 0x03b9: return "_mbsdec_l";
-  case 0x03ba: return "_mbsicmp";
-  case 0x03bb: return "_mbsicmp_l";
-  case 0x03bc: return "_mbsicoll";
-  case 0x03bd: return "_mbsicoll_l";
-  case 0x03be: return "_mbsinc";
-  case 0x03bf: return "_mbsinc_l";
-  case 0x03c0: return "_mbslen";
-  case 0x03c1: return "_mbslen_l";
-  case 0x03c2: return "_mbslwr";
-  case 0x03c3: return "_mbslwr_l";
-  case 0x03c4: return "_mbslwr_s";
-  case 0x03c5: return "_mbslwr_s_l";
-  case 0x03c6: return "_mbsnbcat";
-  case 0x03c7: return "_mbsnbcat_l";
-  case 0x03c8: return "_mbsnbcat_s";
-  case 0x03c9: return "_mbsnbcat_s_l";
-  case 0x03ca: return "_mbsnbcmp";
-  case 0x03cb: return "_mbsnbcmp_l";
-  case 0x03cc: return "_mbsnbcnt";
-  case 0x03cd: return "_mbsnbcnt_l";
-  case 0x03ce: return "_mbsnbcoll";
-  case 0x03cf: return "_mbsnbcoll_l";
-  case 0x03d0: return "_mbsnbcpy";
-  case 0x03d1: return "_mbsnbcpy_l";
-  case 0x03d2: return "_mbsnbcpy_s";
-  case 0x03d3: return "_mbsnbcpy_s_l";
-  case 0x03d4: return "_mbsnbicmp";
-  case 0x03d5: return "_mbsnbicmp_l";
-  case 0x03d6: return "_mbsnbicoll";
-  case 0x03d7: return "_mbsnbicoll_l";
-  case 0x03d8: return "_mbsnbset";
-  case 0x03d9: return "_mbsnbset_l";
-  case 0x03da: return "_mbsnbset_s";
-  case 0x03db: return "_mbsnbset_s_l";
-  case 0x03dc: return "_mbsncat";
-  case 0x03dd: return "_mbsncat_l";
-  case 0x03de: return "_mbsncat_s";
-  case 0x03df: return "_mbsncat_s_l";
-  case 0x03e0: return "_mbsnccnt";
-  case 0x03e1: return "_mbsnccnt_l";
-  case 0x03e2: return "_mbsncmp";
-  case 0x03e3: return "_mbsncmp_l";
-  case 0x03e4: return "_mbsncoll";
-  case 0x03e5: return "_mbsncoll_l";
-  case 0x03e6: return "_mbsncpy";
-  case 0x03e7: return "_mbsncpy_l";
-  case 0x03e8: return "_mbsncpy_s";
-  case 0x03e9: return "_mbsncpy_s_l";
-  case 0x03ea: return "_mbsnextc";
-  case 0x03eb: return "_mbsnextc_l";
-  case 0x03ec: return "_mbsnicmp";
-  case 0x03ed: return "_mbsnicmp_l";
-  case 0x03ee: return "_mbsnicoll";
-  case 0x03ef: return "_mbsnicoll_l";
-  case 0x03f0: return "_mbsninc";
-  case 0x03f1: return "_mbsninc_l";
-  case 0x03f2: return "_mbsnlen";
-  case 0x03f3: return "_mbsnlen_l";
-  case 0x03f4: return "_mbsnset";
-  case 0x03f5: return "_mbsnset_l";
-  case 0x03f6: return "_mbsnset_s";
-  case 0x03f7: return "_mbsnset_s_l";
-  case 0x03f8: return "_mbspbrk";
-  case 0x03f9: return "_mbspbrk_l";
-  case 0x03fa: return "_mbsrchr";
-  case 0x03fb: return "_mbsrchr_l";
-  case 0x03fc: return "_mbsrev";
-  case 0x03fd: return "_mbsrev_l";
-  case 0x03fe: return "_mbsset";
-  case 0x03ff: return "_mbsset_l";
-  case 0x0400: return "_mbsset_s";
-  case 0x0401: return "_mbsset_s_l";
-  case 0x0402: return "_mbsspn";
-  case 0x0403: return "_mbsspn_l";
-  case 0x0404: return "_mbsspnp";
-  case 0x0405: return "_mbsspnp_l";
-  case 0x0406: return "_mbsstr";
-  case 0x0407: return "_mbsstr_l";
-  case 0x0408: return "_mbstok";
-  case 0x0409: return "_mbstok_l";
-  case 0x040a: return "_mbstok_s";
-  case 0x040b: return "_mbstok_s_l";
-  case 0x040c: return "_mbstowcs_l";
-  case 0x040d: return "_mbstowcs_s_l";
-  case 0x040e: return "_mbstrlen";
-  case 0x040f: return "_mbstrlen_l";
-  case 0x0410: return "_mbstrnlen";
-  case 0x0411: return "_mbstrnlen_l";
-  case 0x0412: return "_mbsupr";
-  case 0x0413: return "_mbsupr_l";
-  case 0x0414: return "_mbsupr_s";
-  case 0x0415: return "_mbsupr_s_l";
-  case 0x0416: return "_mbtowc_l";
-  case 0x0417: return "_memccpy";
-  case 0x0418: return "_memicmp";
-  case 0x0419: return "_memicmp_l";
-  case 0x041a: return "_mkdir";
-  case 0x041b: return "_mkgmtime32";
-  case 0x041c: return "_mkgmtime64";
-  case 0x041d: return "_mktemp";
-  case 0x041e: return "_mktemp_s";
-  case 0x041f: return "_mktime32";
-  case 0x0420: return "_mktime64";
-  case 0x0421: return "_msize";
-  case 0x0422: return "_nextafter";
-  case 0x0423: return "_onexit";
-  case 0x0424: return "_open";
-  case 0x0425: return "_open_osfhandle";
-  case 0x0426: return "_outp";
-  case 0x0427: return "_outpd";
-  case 0x0428: return "_outpw";
-  case 0x0429: return "_pclose";
-  case 0x042a: return "_pctype";
-  case 0x042b: return "_pgmptr";
-  case 0x042c: return "_pipe";
-  case 0x042d: return "_popen";
-  case 0x042e: return "_printf_l";
-  case 0x042f: return "_printf_p";
-  case 0x0430: return "_printf_p_l";
-  case 0x0431: return "_printf_s_l";
-  case 0x0432: return "_purecall";
-  case 0x0433: return "_putch";
-  case 0x0434: return "_putch_nolock";
-  case 0x0435: return "_putenv";
-  case 0x0436: return "_putenv_s";
-  case 0x0437: return "_putw";
-  case 0x0438: return "_putwch";
-  case 0x0439: return "_putwch_nolock";
-  case 0x043a: return "_putws";
-  case 0x043b: return "_pwctype";
-  case 0x043c: return "_read";
-  case 0x043d: return "_realloc_crt";
-  case 0x043e: return "_recalloc";
-  case 0x043f: return "_recalloc_crt";
-  case 0x0440: return "_resetstkoflw";
-  case 0x0441: return "_rmdir";
-  case 0x0442: return "_rmtmp";
-  case 0x0443: return "_rotl";
-  case 0x0444: return "_rotl64";
-  case 0x0445: return "_rotr";
-  case 0x0446: return "_rotr64";
-  case 0x0447: return "_scalb";
-  case 0x0448: return "_scanf_l";
-  case 0x0449: return "_scanf_s_l";
-  case 0x044a: return "_scprintf";
-  case 0x044b: return "_scprintf_l";
-  case 0x044c: return "_scprintf_p";
-  case 0x044d: return "_scprintf_p_l";
-  case 0x044e: return "_scwprintf";
-  case 0x044f: return "_scwprintf_l";
-  case 0x0450: return "_scwprintf_p";
-  case 0x0451: return "_scwprintf_p_l";
-  case 0x0452: return "_searchenv";
-  case 0x0453: return "_searchenv_s";
-  case 0x0455: return "_seh_longjmp_unwind";
-  case 0x0454: return "_seh_longjmp_unwind4";
-  case 0x0456: return "_set_SSE2_enable";
-  case 0x0457: return "_set_abort_behavior";
-  case 0x0458: return "_set_controlfp";
-  case 0x0459: return "_set_doserrno";
-  case 0x045a: return "_set_errno";
-  case 0x045b: return "_set_error_mode";
-  case 0x045c: return "_set_fmode";
-  case 0x045d: return "_set_invalid_parameter_handler";
-  case 0x045e: return "_set_malloc_crt_max_wait";
-  case 0x045f: return "_set_output_format";
-  case 0x0460: return "_set_printf_count_output";
-  case 0x0461: return "_set_purecall_handler";
-  case 0x0462: return "_seterrormode";
-  case 0x0463: return "_setjmp";
-  case 0x0464: return "_setjmp3";
-  case 0x0465: return "_setmaxstdio";
-  case 0x0466: return "_setmbcp";
-  case 0x0467: return "_setmode";
-  case 0x0468: return "_setsystime";
-  case 0x0469: return "_sleep";
-  case 0x046a: return "_snprintf";
-  case 0x046b: return "_snprintf_c";
-  case 0x046c: return "_snprintf_c_l";
-  case 0x046d: return "_snprintf_l";
-  case 0x046e: return "_snprintf_s";
-  case 0x046f: return "_snprintf_s_l";
-  case 0x0470: return "_snscanf";
-  case 0x0471: return "_snscanf_l";
-  case 0x0472: return "_snscanf_s";
-  case 0x0473: return "_snscanf_s_l";
-  case 0x0474: return "_snwprintf";
-  case 0x0475: return "_snwprintf_l";
-  case 0x0476: return "_snwprintf_s";
-  case 0x0477: return "_snwprintf_s_l";
-  case 0x0478: return "_snwscanf";
-  case 0x0479: return "_snwscanf_l";
-  case 0x047a: return "_snwscanf_s";
-  case 0x047b: return "_snwscanf_s_l";
-  case 0x047c: return "_sopen";
-  case 0x047d: return "_sopen_s";
-  case 0x047e: return "_spawnl";
-  case 0x047f: return "_spawnle";
-  case 0x0480: return "_spawnlp";
-  case 0x0481: return "_spawnlpe";
-  case 0x0482: return "_spawnv";
-  case 0x0483: return "_spawnve";
-  case 0x0484: return "_spawnvp";
-  case 0x0485: return "_spawnvpe";
-  case 0x0486: return "_splitpath";
-  case 0x0487: return "_splitpath_s";
-  case 0x0488: return "_sprintf_l";
-  case 0x0489: return "_sprintf_p";
-  case 0x048a: return "_sprintf_p_l";
-  case 0x048b: return "_sprintf_s_l";
-  case 0x048c: return "_sscanf_l";
-  case 0x048d: return "_sscanf_s_l";
-  case 0x048e: return "_stat32";
-  case 0x048f: return "_stat32i64";
-  case 0x0490: return "_stat64";
-  case 0x0491: return "_stat64i32";
-  case 0x0492: return "_statusfp";
-  case 0x0493: return "_statusfp2";
-  case 0x0494: return "_strcoll_l";
-  case 0x0495: return "_strdate";
-  case 0x0496: return "_strdate_s";
-  case 0x0497: return "_strdup";
-  case 0x0498: return "_strerror";
-  case 0x0499: return "_strerror_s";
-  case 0x049a: return "_strftime_l";
-  case 0x049b: return "_stricmp";
-  case 0x049c: return "_stricmp_l";
-  case 0x049d: return "_stricoll";
-  case 0x049e: return "_stricoll_l";
-  case 0x049f: return "_strlwr";
-  case 0x04a0: return "_strlwr_l";
-  case 0x04a1: return "_strlwr_s";
-  case 0x04a2: return "_strlwr_s_l";
-  case 0x04a3: return "_strncoll";
-  case 0x04a4: return "_strncoll_l";
-  case 0x04a5: return "_strnicmp";
-  case 0x04a6: return "_strnicmp_l";
-  case 0x04a7: return "_strnicoll";
-  case 0x04a8: return "_strnicoll_l";
-  case 0x04a9: return "_strnset";
-  case 0x04aa: return "_strnset_s";
-  case 0x04ab: return "_strrev";
-  case 0x04ac: return "_strset";
-  case 0x04ad: return "_strset_s";
-  case 0x04ae: return "_strtime";
-  case 0x04af: return "_strtime_s";
-  case 0x04b0: return "_strtod_l";
-  case 0x04b1: return "_strtoi64";
-  case 0x04b2: return "_strtoi64_l";
-  case 0x04b3: return "_strtol_l";
-  case 0x04b4: return "_strtoui64";
-  case 0x04b5: return "_strtoui64_l";
-  case 0x04b6: return "_strtoul_l";
-  case 0x04b7: return "_strupr";
-  case 0x04b8: return "_strupr_l";
-  case 0x04b9: return "_strupr_s";
-  case 0x04ba: return "_strupr_s_l";
-  case 0x04bb: return "_strxfrm_l";
-  case 0x04bc: return "_swab";
-  case 0x04bd: return "_swprintf";
-  case 0x04be: return "_swprintf_c";
-  case 0x04bf: return "_swprintf_c_l";
-  case 0x04c0: return "_swprintf_p";
-  case 0x04c1: return "_swprintf_p_l";
-  case 0x04c2: return "_swprintf_s_l";
-  case 0x04c3: return "_swscanf_l";
-  case 0x04c4: return "_swscanf_s_l";
-  case 0x04c5: return "_sys_errlist";
-  case 0x04c6: return "_sys_nerr";
-  case 0x04c7: return "_tell";
-  case 0x04c8: return "_telli64";
-  case 0x04c9: return "_tempnam";
-  case 0x04ca: return "_time32";
-  case 0x04cb: return "_time64";
-  case 0x04cc: return "_timezone";
-  case 0x04cd: return "_tolower";
-  case 0x04ce: return "_tolower_l";
-  case 0x04cf: return "_toupper";
-  case 0x04d0: return "_toupper_l";
-  case 0x04d1: return "_towlower_l";
-  case 0x04d2: return "_towupper_l";
-  case 0x04d3: return "_tzname";
-  case 0x04d4: return "_tzset";
-  case 0x04d5: return "_ui64toa";
-  case 0x04d6: return "_ui64toa_s";
-  case 0x04d7: return "_ui64tow";
-  case 0x04d8: return "_ui64tow_s";
-  case 0x04d9: return "_ultoa";
-  case 0x04da: return "_ultoa_s";
-  case 0x04db: return "_ultow";
-  case 0x04dc: return "_ultow_s";
-  case 0x04dd: return "_umask";
-  case 0x04de: return "_umask_s";
-  case 0x04df: return "_ungetc_nolock";
-  case 0x04e0: return "_ungetch";
-  case 0x04e1: return "_ungetch_nolock";
-  case 0x04e2: return "_ungetwc_nolock";
-  case 0x04e3: return "_ungetwch";
-  case 0x04e4: return "_ungetwch_nolock";
-  case 0x04e5: return "_unlink";
-  case 0x04e6: return "_unloaddll";
-  case 0x04e7: return "_unlock";
-  case 0x04e8: return "_unlock_file";
-  case 0x04e9: return "_utime32";
-  case 0x04ea: return "_utime64";
-  case 0x04eb: return "_vcprintf";
-  case 0x04ec: return "_vcprintf_l";
-  case 0x04ed: return "_vcprintf_p";
-  case 0x04ee: return "_vcprintf_p_l";
-  case 0x04ef: return "_vcprintf_s";
-  case 0x04f0: return "_vcprintf_s_l";
-  case 0x04f1: return "_vcwprintf";
-  case 0x04f2: return "_vcwprintf_l";
-  case 0x04f3: return "_vcwprintf_p";
-  case 0x04f4: return "_vcwprintf_p_l";
-  case 0x04f5: return "_vcwprintf_s";
-  case 0x04f6: return "_vcwprintf_s_l";
-  case 0x04f7: return "_vfprintf_l";
-  case 0x04f8: return "_vfprintf_p";
-  case 0x04f9: return "_vfprintf_p_l";
-  case 0x04fa: return "_vfprintf_s_l";
-  case 0x04fb: return "_vfwprintf_l";
-  case 0x04fc: return "_vfwprintf_p";
-  case 0x04fd: return "_vfwprintf_p_l";
-  case 0x04fe: return "_vfwprintf_s_l";
-  case 0x04ff: return "_vprintf_l";
-  case 0x0500: return "_vprintf_p";
-  case 0x0501: return "_vprintf_p_l";
-  case 0x0502: return "_vprintf_s_l";
-  case 0x0503: return "_vscprintf";
-  case 0x0504: return "_vscprintf_l";
-  case 0x0505: return "_vscprintf_p";
-  case 0x0506: return "_vscprintf_p_l";
-  case 0x0507: return "_vscwprintf";
-  case 0x0508: return "_vscwprintf_l";
-  case 0x0509: return "_vscwprintf_p";
-  case 0x050a: return "_vscwprintf_p_l";
-  case 0x050b: return "_vsnprintf";
-  case 0x050c: return "_vsnprintf_c";
-  case 0x050d: return "_vsnprintf_c_l";
-  case 0x050e: return "_vsnprintf_l";
-  case 0x050f: return "_vsnprintf_s";
-  case 0x0510: return "_vsnprintf_s_l";
-  case 0x0511: return "_vsnwprintf";
-  case 0x0512: return "_vsnwprintf_l";
-  case 0x0513: return "_vsnwprintf_s";
-  case 0x0514: return "_vsnwprintf_s_l";
-  case 0x0515: return "_vsprintf_l";
-  case 0x0516: return "_vsprintf_p";
-  case 0x0517: return "_vsprintf_p_l";
-  case 0x0518: return "_vsprintf_s_l";
-  case 0x0519: return "_vswprintf";
-  case 0x051a: return "_vswprintf_c";
-  case 0x051b: return "_vswprintf_c_l";
-  case 0x051c: return "_vswprintf_l";
-  case 0x051d: return "_vswprintf_p";
-  case 0x051e: return "_vswprintf_p_l";
-  case 0x051f: return "_vswprintf_s_l";
-  case 0x0520: return "_vwprintf_l";
-  case 0x0521: return "_vwprintf_p";
-  case 0x0522: return "_vwprintf_p_l";
-  case 0x0523: return "_vwprintf_s_l";
-  case 0x0524: return "_waccess";
-  case 0x0525: return "_waccess_s";
-  case 0x0526: return "_wasctime";
-  case 0x0527: return "_wasctime_s";
-  case 0x0528: return "_wassert";
-  case 0x0529: return "_wchdir";
-  case 0x052a: return "_wchmod";
-  case 0x052b: return "_wcmdln";
-  case 0x052c: return "_wcreat";
-  case 0x052d: return "_wcreate_locale";
-  case 0x052e: return "_wcscoll_l";
-  case 0x052f: return "_wcsdup";
-  case 0x0530: return "_wcserror";
-  case 0x0531: return "_wcserror_s";
-  case 0x0532: return "_wcsftime_l";
-  case 0x0533: return "_wcsicmp";
-  case 0x0534: return "_wcsicmp_l";
-  case 0x0535: return "_wcsicoll";
-  case 0x0536: return "_wcsicoll_l";
-  case 0x0537: return "_wcslwr";
-  case 0x0538: return "_wcslwr_l";
-  case 0x0539: return "_wcslwr_s";
-  case 0x053a: return "_wcslwr_s_l";
-  case 0x053b: return "_wcsncoll";
-  case 0x053c: return "_wcsncoll_l";
-  case 0x053d: return "_wcsnicmp";
-  case 0x053e: return "_wcsnicmp_l";
-  case 0x053f: return "_wcsnicoll";
-  case 0x0540: return "_wcsnicoll_l";
-  case 0x0541: return "_wcsnset";
-  case 0x0542: return "_wcsnset_s";
-  case 0x0543: return "_wcsrev";
-  case 0x0544: return "_wcsset";
-  case 0x0545: return "_wcsset_s";
-  case 0x0546: return "_wcstod_l";
-  case 0x0547: return "_wcstoi64";
-  case 0x0548: return "_wcstoi64_l";
-  case 0x0549: return "_wcstol_l";
-  case 0x054a: return "_wcstombs_l";
-  case 0x054b: return "_wcstombs_s_l";
-  case 0x054c: return "_wcstoui64";
-  case 0x054d: return "_wcstoui64_l";
-  case 0x054e: return "_wcstoul_l";
-  case 0x054f: return "_wcsupr";
-  case 0x0550: return "_wcsupr_l";
-  case 0x0551: return "_wcsupr_s";
-  case 0x0552: return "_wcsupr_s_l";
-  case 0x0553: return "_wcsxfrm_l";
-  case 0x0554: return "_wctime32";
-  case 0x0555: return "_wctime32_s";
-  case 0x0556: return "_wctime64";
-  case 0x0557: return "_wctime64_s";
-  case 0x0558: return "_wctomb_l";
-  case 0x0559: return "_wctomb_s_l";
-  case 0x055a: return "_wctype";
-  case 0x055b: return "_wdupenv_s";
-  case 0x055c: return "_wenviron";
-  case 0x055d: return "_wexecl";
-  case 0x055e: return "_wexecle";
-  case 0x055f: return "_wexeclp";
-  case 0x0560: return "_wexeclpe";
-  case 0x0561: return "_wexecv";
-  case 0x0562: return "_wexecve";
-  case 0x0563: return "_wexecvp";
-  case 0x0564: return "_wexecvpe";
-  case 0x0565: return "_wfdopen";
-  case 0x0566: return "_wfindfirst32";
-  case 0x0567: return "_wfindfirst32i64";
-  case 0x0568: return "_wfindfirst64";
-  case 0x0569: return "_wfindfirst64i32";
-  case 0x056a: return "_wfindnext32";
-  case 0x056b: return "_wfindnext32i64";
-  case 0x056c: return "_wfindnext64";
-  case 0x056d: return "_wfindnext64i32";
-  case 0x056e: return "_wfopen";
-  case 0x056f: return "_wfopen_s";
-  case 0x0570: return "_wfreopen";
-  case 0x0571: return "_wfreopen_s";
-  case 0x0572: return "_wfsopen";
-  case 0x0573: return "_wfullpath";
-  case 0x0574: return "_wgetcwd";
-  case 0x0575: return "_wgetdcwd";
-  case 0x0576: return "_wgetenv";
-  case 0x0577: return "_wgetenv_s";
-  case 0x0578: return "_wmakepath";
-  case 0x0579: return "_wmakepath_s";
-  case 0x057a: return "_wmkdir";
-  case 0x057b: return "_wmktemp";
-  case 0x057c: return "_wmktemp_s";
-  case 0x057d: return "_wopen";
-  case 0x057e: return "_wperror";
-  case 0x057f: return "_wpgmptr";
-  case 0x0580: return "_wpopen";
-  case 0x0581: return "_wprintf_l";
-  case 0x0582: return "_wprintf_p";
-  case 0x0583: return "_wprintf_p_l";
-  case 0x0584: return "_wprintf_s_l";
-  case 0x0585: return "_wputenv";
-  case 0x0586: return "_wputenv_s";
-  case 0x0587: return "_wremove";
-  case 0x0588: return "_wrename";
-  case 0x0589: return "_write";
-  case 0x058a: return "_wrmdir";
-  case 0x058b: return "_wscanf_l";
-  case 0x058c: return "_wscanf_s_l";
-  case 0x058d: return "_wsearchenv";
-  case 0x058e: return "_wsearchenv_s";
-  case 0x058f: return "_wsetlocale";
-  case 0x0590: return "_wsopen";
-  case 0x0591: return "_wsopen_s";
-  case 0x0592: return "_wspawnl";
-  case 0x0593: return "_wspawnle";
-  case 0x0594: return "_wspawnlp";
-  case 0x0595: return "_wspawnlpe";
-  case 0x0596: return "_wspawnv";
-  case 0x0597: return "_wspawnve";
-  case 0x0598: return "_wspawnvp";
-  case 0x0599: return "_wspawnvpe";
-  case 0x059a: return "_wsplitpath";
-  case 0x059b: return "_wsplitpath_s";
-  case 0x059c: return "_wstat32";
-  case 0x059d: return "_wstat32i64";
-  case 0x059e: return "_wstat64";
-  case 0x059f: return "_wstat64i32";
-  case 0x05a0: return "_wstrdate";
-  case 0x05a1: return "_wstrdate_s";
-  case 0x05a2: return "_wstrtime";
-  case 0x05a3: return "_wstrtime_s";
-  case 0x05a4: return "_wsystem";
-  case 0x05a5: return "_wtempnam";
-  case 0x05a6: return "_wtmpnam";
-  case 0x05a7: return "_wtmpnam_s";
-  case 0x05a8: return "_wtof";
-  case 0x05a9: return "_wtof_l";
-  case 0x05aa: return "_wtoi";
-  case 0x05ab: return "_wtoi64";
-  case 0x05ac: return "_wtoi64_l";
-  case 0x05ad: return "_wtoi_l";
-  case 0x05ae: return "_wtol";
-  case 0x05af: return "_wtol_l";
-  case 0x05b0: return "_wunlink";
-  case 0x05b1: return "_wutime32";
-  case 0x05b2: return "_wutime64";
-  case 0x05b3: return "_y0";
-  case 0x05b4: return "_y1";
-  case 0x05b5: return "_yn";
-  case 0x05b6: return "abort";
-  case 0x05b7: return "abs";
-  case 0x05b8: return "acos";
-  case 0x05b9: return "asctime";
-  case 0x05ba: return "asctime_s";
-  case 0x05bb: return "asin";
-  case 0x05bc: return "atan";
-  case 0x05bd: return "atan2";
-  case 0x05be: return "atexit";
-  case 0x05bf: return "atof";
-  case 0x05c0: return "atoi";
-  case 0x05c1: return "atol";
-  case 0x05c2: return "bsearch";
-  case 0x05c3: return "bsearch_s";
-  case 0x05c4: return "btowc";
-  case 0x05c5: return "calloc";
-  case 0x05c6: return "ceil";
-  case 0x05c7: return "clearerr";
-  case 0x05c8: return "clearerr_s";
-  case 0x05c9: return "clock";
-  case 0x05ca: return "cos";
-  case 0x05cb: return "cosh";
-  case 0x05cc: return "div";
-  case 0x05cd: return "exit";
-  case 0x05ce: return "exp";
-  case 0x05cf: return "fabs";
-  case 0x05d0: return "fclose";
-  case 0x05d1: return "feof";
-  case 0x05d2: return "ferror";
-  case 0x05d3: return "fflush";
-  case 0x05d4: return "fgetc";
-  case 0x05d5: return "fgetpos";
-  case 0x05d6: return "fgets";
-  case 0x05d7: return "fgetwc";
-  case 0x05d8: return "fgetws";
-  case 0x05d9: return "floor";
-  case 0x05da: return "fmod";
-  case 0x05db: return "fopen";
-  case 0x05dc: return "fopen_s";
-  case 0x05dd: return "fprintf";
-  case 0x05de: return "fprintf_s";
-  case 0x05df: return "fputc";
-  case 0x05e0: return "fputs";
-  case 0x05e1: return "fputwc";
-  case 0x05e2: return "fputws";
-  case 0x05e3: return "fread";
-  case 0x05e4: return "fread_s";
-  case 0x05e5: return "free";
-  case 0x05e6: return "freopen";
-  case 0x05e7: return "freopen_s";
-  case 0x05e8: return "frexp";
-  case 0x05e9: return "fscanf";
-  case 0x05ea: return "fscanf_s";
-  case 0x05eb: return "fseek";
-  case 0x05ec: return "fsetpos";
-  case 0x05ed: return "ftell";
-  case 0x05ee: return "fwprintf";
-  case 0x05ef: return "fwprintf_s";
-  case 0x05f0: return "fwrite";
-  case 0x05f1: return "fwscanf";
-  case 0x05f2: return "fwscanf_s";
-  case 0x05f3: return "getc";
-  case 0x05f4: return "getchar";
-  case 0x05f5: return "getenv";
-  case 0x05f6: return "getenv_s";
-  case 0x05f7: return "gets";
-  case 0x05f8: return "gets_s";
-  case 0x05f9: return "getwc";
-  case 0x05fa: return "getwchar";
-  case 0x05fb: return "is_wctype";
-  case 0x05fc: return "isalnum";
-  case 0x05fd: return "isalpha";
-  case 0x05fe: return "iscntrl";
-  case 0x05ff: return "isdigit";
-  case 0x0600: return "isgraph";
-  case 0x0601: return "isleadbyte";
-  case 0x0602: return "islower";
-  case 0x0603: return "isprint";
-  case 0x0604: return "ispunct";
-  case 0x0605: return "isspace";
-  case 0x0606: return "isupper";
-  case 0x0607: return "iswalnum";
-  case 0x0608: return "iswalpha";
-  case 0x0609: return "iswascii";
-  case 0x060a: return "iswcntrl";
-  case 0x060b: return "iswctype";
-  case 0x060c: return "iswdigit";
-  case 0x060d: return "iswgraph";
-  case 0x060e: return "iswlower";
-  case 0x060f: return "iswprint";
-  case 0x0610: return "iswpunct";
-  case 0x0611: return "iswspace";
-  case 0x0612: return "iswupper";
-  case 0x0613: return "iswxdigit";
-  case 0x0614: return "isxdigit";
-  case 0x0615: return "labs";
-  case 0x0616: return "ldexp";
-  case 0x0617: return "ldiv";
-  case 0x0618: return "llabs";
-  case 0x0619: return "lldiv";
-  case 0x061a: return "localeconv";
-  case 0x061b: return "log";
-  case 0x061c: return "log10";
-  case 0x061d: return "longjmp";
-  case 0x061e: return "malloc";
-  case 0x061f: return "mblen";
-  case 0x0620: return "mbrlen";
-  case 0x0621: return "mbrtowc";
-  case 0x0622: return "mbsrtowcs";
-  case 0x0623: return "mbsrtowcs_s";
-  case 0x0624: return "mbstowcs";
-  case 0x0625: return "mbstowcs_s";
-  case 0x0626: return "mbtowc";
-  case 0x0627: return "memchr";
-  case 0x0628: return "memcmp";
-  case 0x0629: return "memcpy";
-  case 0x062a: return "memcpy_s";
-  case 0x062b: return "memmove";
-  case 0x062c: return "memmove_s";
-  case 0x062d: return "memset";
-  case 0x062e: return "modf";
-  case 0x062f: return "perror";
-  case 0x0630: return "pow";
-  case 0x0631: return "printf";
-  case 0x0632: return "printf_s";
-  case 0x0633: return "putc";
-  case 0x0634: return "putchar";
-  case 0x0635: return "puts";
-  case 0x0636: return "putwc";
-  case 0x0637: return "putwchar";
-  case 0x0638: return "qsort";
-  case 0x0639: return "qsort_s";
-  case 0x063a: return "raise";
-  case 0x063b: return "rand";
-  case 0x063c: return "rand_s";
-  case 0x063d: return "realloc";
-  case 0x063e: return "remove";
-  case 0x063f: return "rename";
-  case 0x0640: return "rewind";
-  case 0x0641: return "scanf";
-  case 0x0642: return "scanf_s";
-  case 0x0643: return "setbuf";
-  case 0x0644: return "setlocale";
-  case 0x0645: return "setvbuf";
-  case 0x0646: return "signal";
-  case 0x0647: return "sin";
-  case 0x0648: return "sinh";
-  case 0x0649: return "sprintf";
-  case 0x064a: return "sprintf_s";
-  case 0x064b: return "sqrt";
-  case 0x064c: return "srand";
-  case 0x064d: return "sscanf";
-  case 0x064e: return "sscanf_s";
-  case 0x064f: return "strcat";
-  case 0x0650: return "strcat_s";
-  case 0x0651: return "strchr";
-  case 0x0652: return "strcmp";
-  case 0x0653: return "strcoll";
-  case 0x0654: return "strcpy";
-  case 0x0655: return "strcpy_s";
-  case 0x0656: return "strcspn";
-  case 0x0657: return "strerror";
-  case 0x0658: return "strerror_s";
-  case 0x0659: return "strftime";
-  case 0x065a: return "strlen";
-  case 0x065b: return "strncat";
-  case 0x065c: return "strncat_s";
-  case 0x065d: return "strncmp";
-  case 0x065e: return "strncpy";
-  case 0x065f: return "strncpy_s";
-  case 0x0660: return "strnlen";
-  case 0x0661: return "strpbrk";
-  case 0x0662: return "strrchr";
-  case 0x0663: return "strspn";
-  case 0x0664: return "strstr";
-  case 0x0665: return "strtod";
-  case 0x0666: return "strtok";
-  case 0x0667: return "strtok_s";
-  case 0x0668: return "strtol";
-  case 0x0669: return "strtoul";
-  case 0x066a: return "strxfrm";
-  case 0x066b: return "swprintf_s";
-  case 0x066c: return "swscanf";
-  case 0x066d: return "swscanf_s";
-  case 0x066e: return "system";
-  case 0x066f: return "tan";
-  case 0x0670: return "tanh";
-  case 0x0671: return "tmpfile";
-  case 0x0672: return "tmpfile_s";
-  case 0x0673: return "tmpnam";
-  case 0x0674: return "tmpnam_s";
-  case 0x0675: return "tolower";
-  case 0x0676: return "toupper";
-  case 0x0677: return "towlower";
-  case 0x0678: return "towupper";
-  case 0x0679: return "ungetc";
-  case 0x067a: return "ungetwc";
-  case 0x067b: return "vfprintf";
-  case 0x067c: return "vfprintf_s";
-  case 0x067d: return "vfwprintf";
-  case 0x067e: return "vfwprintf_s";
-  case 0x067f: return "vprintf";
-  case 0x0680: return "vprintf_s";
-  case 0x0681: return "vsprintf";
-  case 0x0682: return "vsprintf_s";
-  case 0x0683: return "vswprintf_s";
-  case 0x0684: return "vwprintf";
-  case 0x0685: return "vwprintf_s";
-  case 0x0686: return "wcrtomb";
-  case 0x0687: return "wcrtomb_s";
-  case 0x0688: return "wcscat";
-  case 0x0689: return "wcscat_s";
-  case 0x068a: return "wcschr";
-  case 0x068b: return "wcscmp";
-  case 0x068c: return "wcscoll";
-  case 0x068d: return "wcscpy";
-  case 0x068e: return "wcscpy_s";
-  case 0x068f: return "wcscspn";
-  case 0x0690: return "wcsftime";
-  case 0x0691: return "wcslen";
-  case 0x0692: return "wcsncat";
-  case 0x0693: return "wcsncat_s";
-  case 0x0694: return "wcsncmp";
-  case 0x0695: return "wcsncpy";
-  case 0x0696: return "wcsncpy_s";
-  case 0x0697: return "wcsnlen";
-  case 0x0698: return "wcspbrk";
-  case 0x0699: return "wcsrchr";
-  case 0x069a: return "wcsrtombs";
-  case 0x069b: return "wcsrtombs_s";
-  case 0x069c: return "wcsspn";
-  case 0x069d: return "wcsstr";
-  case 0x069e: return "wcstod";
-  case 0x069f: return "wcstok";
-  case 0x06a0: return "wcstok_s";
-  case 0x06a1: return "wcstol";
-  case 0x06a2: return "wcstombs";
-  case 0x06a3: return "wcstombs_s";
-  case 0x06a4: return "wcstoul";
-  case 0x06a5: return "wcsxfrm";
-  case 0x06a6: return "wctob";
-  case 0x06a7: return "wctomb";
-  case 0x06a8: return "wctomb_s";
-  case 0x06a9: return "wmemcpy_s";
-  case 0x06aa: return "wmemmove_s";
-  case 0x06ab: return "wprintf";
-  case 0x06ac: return "wprintf_s";
-  case 0x06ad: return "wscanf";
-  case 0x06ae: return "wscanf_s";
+  switch (i) {
+    case 0x014b: return "$I10_OUTPUT";
+    case 0x0001: return "??0?$_SpinWait@$00@details@Concurrency@@QAE@P6AXXZ@Z";
+    case 0x0002: return "??0?$_SpinWait@$0A@@details@Concurrency@@QAE@P6AXXZ@Z";
+    case 0x0003: return "??0SchedulerPolicy@Concurrency@@QAA@IZZ";
+    case 0x0004: return "??0SchedulerPolicy@Concurrency@@QAE@ABV01@@Z";
+    case 0x0005: return "??0SchedulerPolicy@Concurrency@@QAE@XZ";
+    case 0x0006: return "??0_CancellationTokenState@details@Concurrency@@AAE@XZ";
+    case 0x0007: return "??0_Cancellation_beacon@details@Concurrency@@QAE@XZ";
+    case 0x0008: return "??0_Condition_variable@details@Concurrency@@QAE@XZ";
+    case 0x0009: return "??0_Context@details@Concurrency@@QAE@PAVContext@2@@Z";
+    case 0x000a:
+      return "??0_Interruption_exception@details@Concurrency@@QAE@PBD@Z";
+    case 0x000b: return "??0_Interruption_exception@details@Concurrency@@QAE@XZ";
+    case 0x000c: return "??0_NonReentrantBlockingLock@details@Concurrency@@QAE@XZ";
+    case 0x000d: return "??0_NonReentrantPPLLock@details@Concurrency@@QAE@XZ";
+    case 0x000e: return "??0_ReaderWriterLock@details@Concurrency@@QAE@XZ";
+    case 0x000f: return "??0_ReentrantBlockingLock@details@Concurrency@@QAE@XZ";
+    case 0x0010: return "??0_ReentrantLock@details@Concurrency@@QAE@XZ";
+    case 0x0011: return "??0_ReentrantPPLLock@details@Concurrency@@QAE@XZ";
+    case 0x0012: return "??0_Scheduler@details@Concurrency@@QAE@PAVScheduler@2@@Z";
+    case 0x0013:
+      return "??0_Scoped_lock@_NonReentrantPPLLock@details@Concurrency@@QAE@"
+             "AAV123@@Z";
+    case 0x0014:
+      return "??0_Scoped_lock@_ReentrantPPLLock@details@Concurrency@@QAE@AAV123@@"
+             "Z";
+    case 0x0015: return "??0_SpinLock@details@Concurrency@@QAE@ACJ@Z";
+    case 0x0016:
+      return "??0_StructuredTaskCollection@details@Concurrency@@QAE@PAV_"
+             "CancellationTokenState@12@@Z";
+    case 0x0017:
+      return "??0_TaskCollection@details@Concurrency@@QAE@PAV_"
+             "CancellationTokenState@12@@Z";
+    case 0x0018: return "??0_TaskCollection@details@Concurrency@@QAE@XZ";
+    case 0x0019: return "??0_Timer@details@Concurrency@@IAE@I_N@Z";
+    case 0x001a: return "??0__non_rtti_object@std@@QAE@ABV01@@Z";
+    case 0x001b: return "??0__non_rtti_object@std@@QAE@PBD@Z";
+    case 0x001c: return "??0bad_cast@std@@AAE@PBQBD@Z";
+    case 0x001d: return "??0bad_cast@std@@QAE@ABV01@@Z";
+    case 0x001e: return "??0bad_cast@std@@QAE@PBD@Z";
+    case 0x001f: return "??0bad_target@Concurrency@@QAE@PBD@Z";
+    case 0x0020: return "??0bad_target@Concurrency@@QAE@XZ";
+    case 0x0021: return "??0bad_typeid@std@@QAE@ABV01@@Z";
+    case 0x0022: return "??0bad_typeid@std@@QAE@PBD@Z";
+    case 0x0023: return "??0context_self_unblock@Concurrency@@QAE@PBD@Z";
+    case 0x0024: return "??0context_self_unblock@Concurrency@@QAE@XZ";
+    case 0x0025: return "??0context_unblock_unbalanced@Concurrency@@QAE@PBD@Z";
+    case 0x0026: return "??0context_unblock_unbalanced@Concurrency@@QAE@XZ";
+    case 0x0027: return "??0critical_section@Concurrency@@QAE@XZ";
+    case 0x0028: return "??0default_scheduler_exists@Concurrency@@QAE@PBD@Z";
+    case 0x0029: return "??0default_scheduler_exists@Concurrency@@QAE@XZ";
+    case 0x002a: return "??0event@Concurrency@@QAE@XZ";
+    case 0x002b: return "??0exception@std@@QAE@ABQBD@Z";
+    case 0x002c: return "??0exception@std@@QAE@ABQBDH@Z";
+    case 0x002d: return "??0exception@std@@QAE@ABV01@@Z";
+    case 0x002e: return "??0exception@std@@QAE@XZ";
+    case 0x002f: return "??0improper_lock@Concurrency@@QAE@PBD@Z";
+    case 0x0030: return "??0improper_lock@Concurrency@@QAE@XZ";
+    case 0x0031: return "??0improper_scheduler_attach@Concurrency@@QAE@PBD@Z";
+    case 0x0032: return "??0improper_scheduler_attach@Concurrency@@QAE@XZ";
+    case 0x0033: return "??0improper_scheduler_detach@Concurrency@@QAE@PBD@Z";
+    case 0x0034: return "??0improper_scheduler_detach@Concurrency@@QAE@XZ";
+    case 0x0035: return "??0improper_scheduler_reference@Concurrency@@QAE@PBD@Z";
+    case 0x0036: return "??0improper_scheduler_reference@Concurrency@@QAE@XZ";
+    case 0x0037: return "??0invalid_link_target@Concurrency@@QAE@PBD@Z";
+    case 0x0038: return "??0invalid_link_target@Concurrency@@QAE@XZ";
+    case 0x0039: return "??0invalid_multiple_scheduling@Concurrency@@QAE@PBD@Z";
+    case 0x003a: return "??0invalid_multiple_scheduling@Concurrency@@QAE@XZ";
+    case 0x003b: return "??0invalid_operation@Concurrency@@QAE@PBD@Z";
+    case 0x003c: return "??0invalid_operation@Concurrency@@QAE@XZ";
+    case 0x003d:
+      return "??0invalid_oversubscribe_operation@Concurrency@@QAE@PBD@Z";
+    case 0x003e: return "??0invalid_oversubscribe_operation@Concurrency@@QAE@XZ";
+    case 0x003f: return "??0invalid_scheduler_policy_key@Concurrency@@QAE@PBD@Z";
+    case 0x0040: return "??0invalid_scheduler_policy_key@Concurrency@@QAE@XZ";
+    case 0x0041:
+      return "??0invalid_scheduler_policy_thread_specification@Concurrency@@QAE@"
+             "PBD@Z";
+    case 0x0042:
+      return "??0invalid_scheduler_policy_thread_specification@Concurrency@@QAE@"
+             "XZ";
+    case 0x0043: return "??0invalid_scheduler_policy_value@Concurrency@@QAE@PBD@Z";
+    case 0x0044: return "??0invalid_scheduler_policy_value@Concurrency@@QAE@XZ";
+    case 0x0045: return "??0message_not_found@Concurrency@@QAE@PBD@Z";
+    case 0x0046: return "??0message_not_found@Concurrency@@QAE@XZ";
+    case 0x0047: return "??0missing_wait@Concurrency@@QAE@PBD@Z";
+    case 0x0048: return "??0missing_wait@Concurrency@@QAE@XZ";
+    case 0x0049:
+      return "??0nested_scheduler_missing_detach@Concurrency@@QAE@PBD@Z";
+    case 0x004a: return "??0nested_scheduler_missing_detach@Concurrency@@QAE@XZ";
+    case 0x004b: return "??0operation_timed_out@Concurrency@@QAE@PBD@Z";
+    case 0x004c: return "??0operation_timed_out@Concurrency@@QAE@XZ";
+    case 0x004d: return "??0reader_writer_lock@Concurrency@@QAE@XZ";
+    case 0x004e: return "??0scheduler_not_attached@Concurrency@@QAE@PBD@Z";
+    case 0x004f: return "??0scheduler_not_attached@Concurrency@@QAE@XZ";
+    case 0x0050:
+      return "??0scheduler_resource_allocation_error@Concurrency@@QAE@J@Z";
+    case 0x0051:
+      return "??0scheduler_resource_allocation_error@Concurrency@@QAE@PBDJ@Z";
+    case 0x0052: return "??0scheduler_worker_creation_error@Concurrency@@QAE@J@Z";
+    case 0x0053:
+      return "??0scheduler_worker_creation_error@Concurrency@@QAE@PBDJ@Z";
+    case 0x0054:
+      return "??0scoped_lock@critical_section@Concurrency@@QAE@AAV12@@Z";
+    case 0x0055:
+      return "??0scoped_lock@reader_writer_lock@Concurrency@@QAE@AAV12@@Z";
+    case 0x0056:
+      return "??0scoped_lock_read@reader_writer_lock@Concurrency@@QAE@AAV12@@Z";
+    case 0x0057: return "??0task_canceled@Concurrency@@QAE@PBD@Z";
+    case 0x0058: return "??0task_canceled@Concurrency@@QAE@XZ";
+    case 0x0059: return "??0unsupported_os@Concurrency@@QAE@PBD@Z";
+    case 0x005a: return "??0unsupported_os@Concurrency@@QAE@XZ";
+    case 0x005b: return "??1SchedulerPolicy@Concurrency@@QAE@XZ";
+    case 0x005c: return "??1_CancellationTokenState@details@Concurrency@@UAE@XZ";
+    case 0x005d: return "??1_Cancellation_beacon@details@Concurrency@@QAE@XZ";
+    case 0x005e: return "??1_Condition_variable@details@Concurrency@@QAE@XZ";
+    case 0x005f: return "??1_NonReentrantBlockingLock@details@Concurrency@@QAE@XZ";
+    case 0x0060: return "??1_ReentrantBlockingLock@details@Concurrency@@QAE@XZ";
+    case 0x0061:
+      return "??1_Scoped_lock@_NonReentrantPPLLock@details@Concurrency@@QAE@XZ";
+    case 0x0062:
+      return "??1_Scoped_lock@_ReentrantPPLLock@details@Concurrency@@QAE@XZ";
+    case 0x0063: return "??1_SpinLock@details@Concurrency@@QAE@XZ";
+    case 0x0064: return "??1_TaskCollection@details@Concurrency@@QAE@XZ";
+    case 0x0065: return "??1_Timer@details@Concurrency@@MAE@XZ";
+    case 0x0066: return "??1__non_rtti_object@std@@UAE@XZ";
+    case 0x0067: return "??1bad_cast@std@@UAE@XZ";
+    case 0x0068: return "??1bad_typeid@std@@UAE@XZ";
+    case 0x0069: return "??1critical_section@Concurrency@@QAE@XZ";
+    case 0x006a: return "??1event@Concurrency@@QAE@XZ";
+    case 0x006b: return "??1exception@std@@UAE@XZ";
+    case 0x006c: return "??1reader_writer_lock@Concurrency@@QAE@XZ";
+    case 0x006d: return "??1scoped_lock@critical_section@Concurrency@@QAE@XZ";
+    case 0x006e: return "??1scoped_lock@reader_writer_lock@Concurrency@@QAE@XZ";
+    case 0x006f:
+      return "??1scoped_lock_read@reader_writer_lock@Concurrency@@QAE@XZ";
+    case 0x0070: return "??1type_info@@UAE@XZ";
+    case 0x0071: return "??2@YAPAXI@Z";
+    case 0x0072: return "??2@YAPAXIHPBDH@Z";
+    case 0x0073: return "??3@YAXPAX@Z";
+    case 0x0074: return "??3@YAXPAXHPBDH@Z";
+    case 0x0075:
+      return "??4?$_SpinWait@$00@details@Concurrency@@QAEAAV012@ABV012@@Z";
+    case 0x0076:
+      return "??4?$_SpinWait@$0A@@details@Concurrency@@QAEAAV012@ABV012@@Z";
+    case 0x0077: return "??4SchedulerPolicy@Concurrency@@QAEAAV01@ABV01@@Z";
+    case 0x0078: return "??4__non_rtti_object@std@@QAEAAV01@ABV01@@Z";
+    case 0x0079: return "??4bad_cast@std@@QAEAAV01@ABV01@@Z";
+    case 0x007a: return "??4bad_typeid@std@@QAEAAV01@ABV01@@Z";
+    case 0x007b: return "??4exception@std@@QAEAAV01@ABV01@@Z";
+    case 0x007c: return "??8type_info@@QBE_NABV0@@Z";
+    case 0x007d: return "??9type_info@@QBE_NABV0@@Z";
+    case 0x007e: return "??_7__non_rtti_object@std@@6B@";
+    case 0x007f: return "??_7bad_cast@std@@6B@";
+    case 0x0080: return "??_7bad_typeid@std@@6B@";
+    case 0x0081: return "??_7exception@std@@6B@";
+    case 0x0082: return "??_F?$_SpinWait@$00@details@Concurrency@@QAEXXZ";
+    case 0x0083: return "??_F?$_SpinWait@$0A@@details@Concurrency@@QAEXXZ";
+    case 0x0084: return "??_F_Context@details@Concurrency@@QAEXXZ";
+    case 0x0085: return "??_F_Scheduler@details@Concurrency@@QAEXXZ";
+    case 0x0086: return "??_Fbad_cast@std@@QAEXXZ";
+    case 0x0087: return "??_Fbad_typeid@std@@QAEXXZ";
+    case 0x0088: return "??_U@YAPAXI@Z";
+    case 0x0089: return "??_U@YAPAXIHPBDH@Z";
+    case 0x008a: return "??_V@YAXPAX@Z";
+    case 0x008b: return "??_V@YAXPAXHPBDH@Z";
+    case 0x008c: return "?Alloc@Concurrency@@YAPAXI@Z";
+    case 0x008d: return "?Block@Context@Concurrency@@SAXXZ";
+    case 0x008e:
+      return "?Create@CurrentScheduler@Concurrency@@SAXABVSchedulerPolicy@2@@Z";
+    case 0x008f:
+      return "?Create@Scheduler@Concurrency@@SAPAV12@ABVSchedulerPolicy@2@@Z";
+    case 0x0090:
+      return "?CreateResourceManager@Concurrency@@YAPAUIResourceManager@1@XZ";
+    case 0x0091:
+      return "?CreateScheduleGroup@CurrentScheduler@Concurrency@@"
+             "SAPAVScheduleGroup@2@AAVlocation@2@@Z";
+    case 0x0092:
+      return "?CreateScheduleGroup@CurrentScheduler@Concurrency@@"
+             "SAPAVScheduleGroup@2@XZ";
+    case 0x0093: return "?CurrentContext@Context@Concurrency@@SAPAV12@XZ";
+    case 0x0094: return "?Detach@CurrentScheduler@Concurrency@@SAXXZ";
+    case 0x0095: return "?DisableTracing@Concurrency@@YAJXZ";
+    case 0x0096: return "?EnableTracing@Concurrency@@YAJXZ";
+    case 0x0097: return "?Free@Concurrency@@YAXPAX@Z";
+    case 0x0098: return "?Get@CurrentScheduler@Concurrency@@SAPAVScheduler@2@XZ";
+    case 0x0099: return "?GetExecutionContextId@Concurrency@@YAIXZ";
+    case 0x009a:
+      return "?GetNumberOfVirtualProcessors@CurrentScheduler@Concurrency@@SAIXZ";
+    case 0x009b:
+      return "?GetOSVersion@Concurrency@@YA?AW4OSVersion@IResourceManager@1@XZ";
+    case 0x009c:
+      return "?GetPolicy@CurrentScheduler@Concurrency@@SA?AVSchedulerPolicy@2@XZ";
+    case 0x009d:
+      return "?GetPolicyValue@SchedulerPolicy@Concurrency@@QBEIW4PolicyElementKey@"
+             "2@@Z";
+    case 0x009e: return "?GetProcessorCount@Concurrency@@YAIXZ";
+    case 0x009f: return "?GetProcessorNodeCount@Concurrency@@YAIXZ";
+    case 0x00a0: return "?GetSchedulerId@Concurrency@@YAIXZ";
+    case 0x00a1: return "?GetSharedTimerQueue@details@Concurrency@@YAPAXXZ";
+    case 0x00a2: return "?Id@Context@Concurrency@@SAIXZ";
+    case 0x00a3: return "?Id@CurrentScheduler@Concurrency@@SAIXZ";
+    case 0x00a4:
+      return "?IsAvailableLocation@CurrentScheduler@Concurrency@@SA_NABVlocation@"
+             "2@@Z";
+    case 0x00a5:
+      return "?IsCurrentTaskCollectionCanceling@Context@Concurrency@@SA_NXZ";
+    case 0x00a6: return "?Log2@details@Concurrency@@YAKI@Z";
+    case 0x00a7: return "?Oversubscribe@Context@Concurrency@@SAX_N@Z";
+    case 0x00a8:
+      return "?RegisterShutdownEvent@CurrentScheduler@Concurrency@@SAXPAX@Z";
+    case 0x00a9:
+      return "?ResetDefaultSchedulerPolicy@Scheduler@Concurrency@@SAXXZ";
+    case 0x00aa: return "?ScheduleGroupId@Context@Concurrency@@SAIXZ";
+    case 0x00ab:
+      return "?ScheduleTask@CurrentScheduler@Concurrency@@SAXP6AXPAX@Z0@Z";
+    case 0x00ac:
+      return "?ScheduleTask@CurrentScheduler@Concurrency@@SAXP6AXPAX@"
+             "Z0AAVlocation@2@@Z";
+    case 0x00ad:
+      return "?SetConcurrencyLimits@SchedulerPolicy@Concurrency@@QAEXII@Z";
+    case 0x00ae:
+      return "?SetDefaultSchedulerPolicy@Scheduler@Concurrency@@"
+             "SAXABVSchedulerPolicy@2@@Z";
+    case 0x00af:
+      return "?SetPolicyValue@SchedulerPolicy@Concurrency@@QAEIW4PolicyElementKey@"
+             "2@I@Z";
+    case 0x00b0: return "?VirtualProcessorId@Context@Concurrency@@SAIXZ";
+    case 0x00b1: return "?Yield@Context@Concurrency@@SAXXZ";
+    case 0x00b2:
+      return "?_Abort@_StructuredTaskCollection@details@Concurrency@@AAEXXZ";
+    case 0x00b3:
+      return "?_Acquire@_NonReentrantBlockingLock@details@Concurrency@@QAEXXZ";
+    case 0x00b4:
+      return "?_Acquire@_NonReentrantPPLLock@details@Concurrency@@QAEXPAX@Z";
+    case 0x00b5:
+      return "?_Acquire@_ReentrantBlockingLock@details@Concurrency@@QAEXXZ";
+    case 0x00b6: return "?_Acquire@_ReentrantLock@details@Concurrency@@QAEXXZ";
+    case 0x00b7:
+      return "?_Acquire@_ReentrantPPLLock@details@Concurrency@@QAEXPAX@Z";
+    case 0x00b8:
+      return "?_AcquireRead@_ReaderWriterLock@details@Concurrency@@QAEXXZ";
+    case 0x00b9:
+      return "?_AcquireWrite@_ReaderWriterLock@details@Concurrency@@QAEXXZ";
+    case 0x00ba:
+      return "?_Cancel@_CancellationTokenState@details@Concurrency@@QAEXXZ";
+    case 0x00bb:
+      return "?_Cancel@_StructuredTaskCollection@details@Concurrency@@QAEXXZ";
+    case 0x00bc: return "?_Cancel@_TaskCollection@details@Concurrency@@QAEXXZ";
+    case 0x00bd:
+      return "?_CheckTaskCollection@_UnrealizedChore@details@Concurrency@@IAEXXZ";
+    case 0x00be:
+      return "?_CleanupToken@_StructuredTaskCollection@details@Concurrency@@"
+             "AAEXXZ";
+    case 0x00bf: return "?_ConcRT_CoreAssert@details@Concurrency@@YAXPBD0H@Z";
+    case 0x00c0: return "?_ConcRT_Trace@details@Concurrency@@YAXHPB_WZZ";
+    case 0x00c1:
+      return "?_Confirm_cancel@_Cancellation_beacon@details@Concurrency@@QAE_NXZ";
+    case 0x00c2: return "?_Copy_str@exception@std@@AAEXPBD@Z";
+    case 0x00c3:
+      return "?_CurrentContext@_Context@details@Concurrency@@SA?AV123@XZ";
+    case 0x00c4: return "?_Current_node@location@Concurrency@@SA?AV12@XZ";
+    case 0x00c5:
+      return "?_DeregisterCallback@_CancellationTokenState@details@Concurrency@@"
+             "QAEXPAV_CancellationTokenRegistration@23@@Z";
+    case 0x00c6:
+      return "?_Destroy@_AsyncTaskCollection@details@Concurrency@@EAEXXZ";
+    case 0x00c7:
+      return "?_Destroy@_CancellationTokenState@details@Concurrency@@EAEXXZ";
+    case 0x00c8: return "?_DoYield@?$_SpinWait@$00@details@Concurrency@@IAEXXZ";
+    case 0x00c9: return "?_DoYield@?$_SpinWait@$0A@@details@Concurrency@@IAEXXZ";
+    case 0x00ca:
+      return "?_Get@_CurrentScheduler@details@Concurrency@@SA?AV_Scheduler@23@XZ";
+    case 0x00cb:
+      return "?_GetConcRTTraceInfo@Concurrency@@YAPBU_CONCRT_TRACE_INFO@details@1@"
+             "XZ";
+    case 0x00cc: return "?_GetConcurrency@details@Concurrency@@YAIXZ";
+    case 0x00cd:
+      return "?_GetCurrentInlineDepth@_StackGuard@details@Concurrency@@CAAAIXZ";
+    case 0x00ce:
+      return "?_GetNumberOfVirtualProcessors@_CurrentScheduler@details@"
+             "Concurrency@@SAIXZ";
+    case 0x00cf:
+      return "?_GetScheduler@_Scheduler@details@Concurrency@@QAEPAVScheduler@3@XZ";
+    case 0x00d0: return "?_Id@_CurrentScheduler@details@Concurrency@@SAIXZ";
+    case 0x00d1:
+      return "?_Invoke@_CancellationTokenRegistration@details@Concurrency@@AAEXXZ";
+    case 0x00d2:
+      return "?_IsCanceling@_StructuredTaskCollection@details@Concurrency@@QAE_"
+             "NXZ";
+    case 0x00d3:
+      return "?_IsCanceling@_TaskCollection@details@Concurrency@@QAE_NXZ";
+    case 0x00d4:
+      return "?_IsSynchronouslyBlocked@_Context@details@Concurrency@@QBE_NXZ";
+    case 0x00d5: return "?_Name_base@type_info@@CAPBDPBV1@PAU__type_info_node@@@Z";
+    case 0x00d6:
+      return "?_Name_base_internal@type_info@@CAPBDPBV1@PAU__type_info_node@@@Z";
+    case 0x00d7:
+      return "?_NewCollection@_AsyncTaskCollection@details@Concurrency@@SAPAV123@"
+             "PAV_CancellationTokenState@23@@Z";
+    case 0x00d8:
+      return "?_NewTokenState@_CancellationTokenState@details@Concurrency@@"
+             "SAPAV123@XZ";
+    case 0x00d9:
+      return "?_NumberOfSpins@?$_SpinWait@$00@details@Concurrency@@IAEKXZ";
+    case 0x00da:
+      return "?_NumberOfSpins@?$_SpinWait@$0A@@details@Concurrency@@IAEKXZ";
+    case 0x00db: return "?_Oversubscribe@_Context@details@Concurrency@@SAX_N@Z";
+    case 0x00dc: return "?_Reference@_Scheduler@details@Concurrency@@QAEIXZ";
+    case 0x00dd:
+      return "?_RegisterCallback@_CancellationTokenState@details@Concurrency@@"
+             "QAEPAV_CancellationTokenRegistration@23@P6AXPAX@Z0H@Z";
+    case 0x00de:
+      return "?_RegisterCallback@_CancellationTokenState@details@Concurrency@@"
+             "QAEXPAV_CancellationTokenRegistration@23@@Z";
+    case 0x00df:
+      return "?_Release@_NonReentrantBlockingLock@details@Concurrency@@QAEXXZ";
+    case 0x00e0:
+      return "?_Release@_NonReentrantPPLLock@details@Concurrency@@QAEXXZ";
+    case 0x00e1:
+      return "?_Release@_ReentrantBlockingLock@details@Concurrency@@QAEXXZ";
+    case 0x00e2: return "?_Release@_ReentrantLock@details@Concurrency@@QAEXXZ";
+    case 0x00e3: return "?_Release@_ReentrantPPLLock@details@Concurrency@@QAEXXZ";
+    case 0x00e4: return "?_Release@_Scheduler@details@Concurrency@@QAEIXZ";
+    case 0x00e5:
+      return "?_ReleaseRead@_ReaderWriterLock@details@Concurrency@@QAEXXZ";
+    case 0x00e6:
+      return "?_ReleaseWrite@_ReaderWriterLock@details@Concurrency@@QAEXXZ";
+    case 0x00e7: return "?_ReportUnobservedException@details@Concurrency@@YAXXZ";
+    case 0x00e8: return "?_Reset@?$_SpinWait@$00@details@Concurrency@@IAEXXZ";
+    case 0x00e9: return "?_Reset@?$_SpinWait@$0A@@details@Concurrency@@IAEXXZ";
+    case 0x00ea:
+      return "?_RunAndWait@_StructuredTaskCollection@details@Concurrency@@QAG?AW4_"
+             "TaskCollectionStatus@23@PAV_UnrealizedChore@23@@Z";
+    case 0x00eb:
+      return "?_RunAndWait@_TaskCollection@details@Concurrency@@QAG?AW4_"
+             "TaskCollectionStatus@23@PAV_UnrealizedChore@23@@Z";
+    case 0x00ec:
+      return "?_Schedule@_StructuredTaskCollection@details@Concurrency@@QAEXPAV_"
+             "UnrealizedChore@23@@Z";
+    case 0x00ed:
+      return "?_Schedule@_StructuredTaskCollection@details@Concurrency@@QAEXPAV_"
+             "UnrealizedChore@23@PAVlocation@3@@Z";
+    case 0x00ee:
+      return "?_Schedule@_TaskCollection@details@Concurrency@@QAEXPAV_"
+             "UnrealizedChore@23@@Z";
+    case 0x00ef:
+      return "?_Schedule@_TaskCollection@details@Concurrency@@QAEXPAV_"
+             "UnrealizedChore@23@PAVlocation@3@@Z";
+    case 0x00f0:
+      return "?_ScheduleTask@_CurrentScheduler@details@Concurrency@@SAXP6AXPAX@Z0@"
+             "Z";
+    case 0x00f1:
+      return "?_SetSpinCount@?$_SpinWait@$00@details@Concurrency@@QAEXI@Z";
+    case 0x00f2:
+      return "?_SetSpinCount@?$_SpinWait@$0A@@details@Concurrency@@QAEXI@Z";
+    case 0x00f3:
+      return "?_SetUnobservedExceptionHandler@details@Concurrency@@YAXP6AXXZ@Z";
+    case 0x00f4:
+      return "?_ShouldSpinAgain@?$_SpinWait@$00@details@Concurrency@@IAE_NXZ";
+    case 0x00f5:
+      return "?_ShouldSpinAgain@?$_SpinWait@$0A@@details@Concurrency@@IAE_NXZ";
+    case 0x00f6: return "?_SpinOnce@?$_SpinWait@$00@details@Concurrency@@QAE_NXZ";
+    case 0x00f7: return "?_SpinOnce@?$_SpinWait@$0A@@details@Concurrency@@QAE_NXZ";
+    case 0x00f8: return "?_SpinYield@Context@Concurrency@@SAXXZ";
+    case 0x00f9: return "?_Start@_Timer@details@Concurrency@@IAEXXZ";
+    case 0x00fa: return "?_Stop@_Timer@details@Concurrency@@IAEXXZ";
+    case 0x00fb: return "?_Tidy@exception@std@@AAEXXZ";
+    case 0x00fc: return "?_Trace_agents@Concurrency@@YAXW4Agents_EventType@1@_JZZ";
+    case 0x00fd:
+      return "?_Trace_ppl_function@Concurrency@@YAXABU_GUID@@EW4ConcRT_EventType@"
+             "1@@Z";
+    case 0x00fe:
+      return "?_TryAcquire@_NonReentrantBlockingLock@details@Concurrency@@QAE_NXZ";
+    case 0x00ff:
+      return "?_TryAcquire@_ReentrantBlockingLock@details@Concurrency@@QAE_NXZ";
+    case 0x0100: return "?_TryAcquire@_ReentrantLock@details@Concurrency@@QAE_NXZ";
+    case 0x0101:
+      return "?_TryAcquireWrite@_ReaderWriterLock@details@Concurrency@@QAE_NXZ";
+    case 0x0102: return "?_Type_info_dtor@type_info@@CAXPAV1@@Z";
+    case 0x0103: return "?_Type_info_dtor_internal@type_info@@CAXPAV1@@Z";
+    case 0x0104: return "?_UnderlyingYield@details@Concurrency@@YAXXZ";
+    case 0x0105: return "?_ValidateExecute@@YAHP6GHXZ@Z";
+    case 0x0106: return "?_ValidateRead@@YAHPBXI@Z";
+    case 0x0107: return "?_ValidateWrite@@YAHPAXI@Z";
+    case 0x0108: return "?_Value@_SpinCount@details@Concurrency@@SAIXZ";
+    case 0x0109: return "?_Yield@_Context@details@Concurrency@@SAXXZ";
+    case 0x010a: return "?__ExceptionPtrAssign@@YAXPAXPBX@Z";
+    case 0x010b: return "?__ExceptionPtrCompare@@YA_NPBX0@Z";
+    case 0x010c: return "?__ExceptionPtrCopy@@YAXPAXPBX@Z";
+    case 0x010d: return "?__ExceptionPtrCopyException@@YAXPAXPBX1@Z";
+    case 0x010e: return "?__ExceptionPtrCreate@@YAXPAX@Z";
+    case 0x010f: return "?__ExceptionPtrCurrentException@@YAXPAX@Z";
+    case 0x0110: return "?__ExceptionPtrDestroy@@YAXPAX@Z";
+    case 0x0111: return "?__ExceptionPtrRethrow@@YAXPBX@Z";
+    case 0x0112: return "?__ExceptionPtrSwap@@YAXPAX0@Z";
+    case 0x0113: return "?__ExceptionPtrToBool@@YA_NPBX@Z";
+    case 0x0115: return "?_inconsistency@@YAXXZ";
+    case 0x0116: return "?_invalid_parameter@@YAXPBG00II@Z";
+    case 0x0117:
+      return "?_is_exception_typeof@@YAHABVtype_info@@PAU_EXCEPTION_POINTERS@@@Z";
+    case 0x0118:
+      return "?_name_internal_method@type_info@@QBEPBDPAU__type_info_node@@@Z";
+    case 0x0119: return "?_open@@YAHPBDHH@Z";
+    case 0x011a: return "?_query_new_handler@@YAP6AHI@ZXZ";
+    case 0x011b: return "?_query_new_mode@@YAHXZ";
+    case 0x011c: return "?_set_new_handler@@YAP6AHI@ZH@Z";
+    case 0x011d: return "?_set_new_handler@@YAP6AHI@ZP6AHI@Z@Z";
+    case 0x011e: return "?_set_new_mode@@YAHH@Z";
+    case 0x011f:
+      return "?_set_se_translator@@YAP6AXIPAU_EXCEPTION_POINTERS@@@ZH@Z";
+    case 0x0120:
+      return "?_set_se_translator@@YAP6AXIPAU_EXCEPTION_POINTERS@@@ZP6AXI0@Z@Z";
+    case 0x0121: return "?_sopen@@YAHPBDHHH@Z";
+    case 0x0122: return "?_type_info_dtor_internal_method@type_info@@QAEXXZ";
+    case 0x0123: return "?_wopen@@YAHPB_WHH@Z";
+    case 0x0124: return "?_wsopen@@YAHPB_WHHH@Z";
+    case 0x0125: return "?before@type_info@@QBE_NABV1@@Z";
+    case 0x0126: return "?current@location@Concurrency@@SA?AV12@XZ";
+    case 0x0127: return "?from_numa_node@location@Concurrency@@SA?AV12@G@Z";
+    case 0x0128:
+      return "?get_error_code@scheduler_resource_allocation_error@Concurrency@@"
+             "QBEJXZ";
+    case 0x0129: return "?lock@critical_section@Concurrency@@QAEXXZ";
+    case 0x012a: return "?lock@reader_writer_lock@Concurrency@@QAEXXZ";
+    case 0x012b: return "?lock_read@reader_writer_lock@Concurrency@@QAEXXZ";
+    case 0x012c: return "?name@type_info@@QBEPBDPAU__type_info_node@@@Z";
+    case 0x012d: return "?native_handle@critical_section@Concurrency@@QAEAAV12@XZ";
+    case 0x012e:
+      return "?notify_all@_Condition_variable@details@Concurrency@@QAEXXZ";
+    case 0x012f:
+      return "?notify_one@_Condition_variable@details@Concurrency@@QAEXXZ";
+    case 0x0130: return "?raw_name@type_info@@QBEPBDXZ";
+    case 0x0131: return "?reset@event@Concurrency@@QAEXXZ";
+    case 0x0132: return "?set@event@Concurrency@@QAEXXZ";
+    case 0x0133: return "?set_new_handler@@YAP6AXXZP6AXXZ@Z";
+    case 0x0134:
+      return "?set_task_execution_resources@Concurrency@@YAXGPAU_GROUP_AFFINITY@@@"
+             "Z";
+    case 0x0135: return "?set_task_execution_resources@Concurrency@@YAXK@Z";
+    case 0x0136: return "?set_terminate@@YAP6AXXZH@Z";
+    case 0x0137: return "?set_terminate@@YAP6AXXZP6AXXZ@Z";
+    case 0x0138: return "?set_unexpected@@YAP6AXXZH@Z";
+    case 0x0139: return "?set_unexpected@@YAP6AXXZP6AXXZ@Z";
+    case 0x013a: return "?swprintf@@YAHPAGIPBGZZ";
+    case 0x013b: return "?swprintf@@YAHPA_WIPB_WZZ";
+    case 0x013c: return "?terminate@@YAXXZ";
+    case 0x013d: return "?try_lock@critical_section@Concurrency@@QAE_NXZ";
+    case 0x013e: return "?try_lock@reader_writer_lock@Concurrency@@QAE_NXZ";
+    case 0x013f: return "?try_lock_for@critical_section@Concurrency@@QAE_NI@Z";
+    case 0x0140: return "?try_lock_read@reader_writer_lock@Concurrency@@QAE_NXZ";
+    case 0x0141: return "?unexpected@@YAXXZ";
+    case 0x0142: return "?unlock@critical_section@Concurrency@@QAEXXZ";
+    case 0x0143: return "?unlock@reader_writer_lock@Concurrency@@QAEXXZ";
+    case 0x0144: return "?vswprintf@@YAHPA_WIPB_WPAD@Z";
+    case 0x0145: return "?wait@Concurrency@@YAXI@Z";
+    case 0x0146:
+      return "?wait@_Condition_variable@details@Concurrency@@QAEXAAVcritical_"
+             "section@3@@Z";
+    case 0x0147: return "?wait@event@Concurrency@@QAEII@Z";
+    case 0x0148:
+      return "?wait_for@_Condition_variable@details@Concurrency@@QAE_NAAVcritical_"
+             "section@3@I@Z";
+    case 0x0149: return "?wait_for_multiple@event@Concurrency@@SAIPAPAV12@I_NI@Z";
+    case 0x014a: return "?what@exception@std@@UBEPBDXZ";
+    case 0x014c: return "_CIacos";
+    case 0x014d: return "_CIasin";
+    case 0x014e: return "_CIatan";
+    case 0x014f: return "_CIatan2";
+    case 0x0150: return "_CIcos";
+    case 0x0151: return "_CIcosh";
+    case 0x0152: return "_CIexp";
+    case 0x0153: return "_CIfmod";
+    case 0x0154: return "_CIlog";
+    case 0x0155: return "_CIlog10";
+    case 0x0156: return "_CIpow";
+    case 0x0157: return "_CIsin";
+    case 0x0158: return "_CIsinh";
+    case 0x0159: return "_CIsqrt";
+    case 0x015a: return "_CItan";
+    case 0x015b: return "_CItanh";
+    case 0x015c: return "_CRT_RTC_INIT";
+    case 0x015d: return "_CRT_RTC_INITW";
+    case 0x015e: return "_CreateFrameInfo";
+    case 0x015f: return "_CxxThrowException";
+    case 0x0160: return "_EH_prolog";
+    case 0x0161: return "_FindAndUnlinkFrame";
+    case 0x0162: return "_Getdays";
+    case 0x0163: return "_Getmonths";
+    case 0x0164: return "_Gettnames";
+    case 0x0165: return "_HUGE";
+    case 0x0166: return "_IsExceptionObjectToBeDestroyed";
+    case 0x0167: return "_Lock_shared_ptr_spin_lock";
+    case 0x0168: return "_NLG_Dispatch2";
+    case 0x0169: return "_NLG_Return";
+    case 0x016a: return "_NLG_Return2";
+    case 0x016b: return "_Strftime";
+    case 0x016c: return "_Unlock_shared_ptr_spin_lock";
+    case 0x016d: return "_W_Getdays";
+    case 0x016e: return "_W_Getmonths";
+    case 0x016f: return "_W_Gettnames";
+    case 0x0170: return "_Wcsftime";
+    case 0x0171: return "_XcptFilter";
+    case 0x0172: return "__AdjustPointer";
+    case 0x0173: return "__BuildCatchObject";
+    case 0x0174: return "__BuildCatchObjectHelper";
+    case 0x0175: return "__CppXcptFilter";
+    case 0x0176: return "__CxxDetectRethrow";
+    case 0x0177: return "__CxxExceptionFilter";
+    case 0x0178: return "__CxxFrameHandler";
+    case 0x0179: return "__CxxFrameHandler2";
+    case 0x017a: return "__CxxFrameHandler3";
+    case 0x017b: return "__CxxLongjmpUnwind";
+    case 0x017c: return "__CxxQueryExceptionSize";
+    case 0x017d: return "__CxxRegisterExceptionObject";
+    case 0x017e: return "__CxxUnregisterExceptionObject";
+    case 0x017f: return "__DestructExceptionObject";
+    case 0x0180: return "__FrameUnwindFilter";
+    case 0x0181: return "__RTCastToVoid";
+    case 0x0182: return "__RTDynamicCast";
+    case 0x0183: return "__RTtypeid";
+    case 0x0184: return "__STRINGTOLD";
+    case 0x0185: return "__STRINGTOLD_L";
+    case 0x0186: return "__TypeMatch";
+    case 0x0197: return "___crtCreateSemaphoreExW@24";
+    case 0x0187: return "___lc_codepage_func";
+    case 0x0188: return "___lc_collate_cp_func";
+    case 0x0189: return "___lc_locale_name_func";
+    case 0x018a: return "___mb_cur_max_func";
+    case 0x018b: return "___mb_cur_max_l_func";
+    case 0x018c: return "___setlc_active_func";
+    case 0x018d: return "___unguarded_readlc_active_add_func";
+    case 0x018e: return "__argc";
+    case 0x018f: return "__argv";
+    case 0x0190: return "__badioinfo";
+    case 0x0191: return "__clean_type_info_names_internal";
+    case 0x0192: return "__control87_2";
+    case 0x0193: return "__create_locale";
+    case 0x0194: return "__crtCompareStringA";
+    case 0x0195: return "__crtCompareStringEx";
+    case 0x0196: return "__crtCompareStringW";
+    case 0x0198: return "__crtCreateSymbolicLinkW";
+    case 0x0199: return "__crtEnumSystemLocalesEx";
+    case 0x019a: return "__crtFlsAlloc";
+    case 0x019b: return "__crtFlsFree";
+    case 0x019c: return "__crtFlsGetValue";
+    case 0x019d: return "__crtFlsSetValue";
+    case 0x019e: return "__crtGetDateFormatEx";
+    case 0x019f: return "__crtGetLocaleInfoEx";
+    case 0x01a0: return "__crtGetShowWindowMode";
+    case 0x01a1: return "__crtGetTimeFormatEx";
+    case 0x01a2: return "__crtGetUserDefaultLocaleName";
+    case 0x01a3: return "__crtInitializeCriticalSectionEx";
+    case 0x01a4: return "__crtIsPackagedApp";
+    case 0x01a5: return "__crtIsValidLocaleName";
+    case 0x01a6: return "__crtLCMapStringA";
+    case 0x01a7: return "__crtLCMapStringEx";
+    case 0x01a8: return "__crtLCMapStringW";
+    case 0x01a9: return "__crtSetThreadStackGuarantee";
+    case 0x01aa: return "__crtSetUnhandledExceptionFilter";
+    case 0x01ab: return "__crtTerminateProcess";
+    case 0x01ac: return "__crtUnhandledException";
+    case 0x01ad: return "__daylight";
+    case 0x01ae: return "__dllonexit";
+    case 0x01af: return "__doserrno";
+    case 0x01b0: return "__dstbias";
+    case 0x01b1: return "__fpecode";
+    case 0x01b2: return "__free_locale";
+    case 0x01b3: return "__get_current_locale";
+    case 0x01b4: return "__get_flsindex";
+    case 0x01b5: return "__get_tlsindex";
+    case 0x01b6: return "__getmainargs";
+    case 0x01b7: return "__initenv";
+    case 0x01b8: return "__iob_func";
+    case 0x01b9: return "__isascii";
+    case 0x01ba: return "__iscsym";
+    case 0x01bb: return "__iscsymf";
+    case 0x01bc: return "__iswcsym";
+    case 0x01bd: return "__iswcsymf";
+    case 0x01be: return "__lconv";
+    case 0x01bf: return "__lconv_init";
+    case 0x01c0: return "__libm_sse2_acos";
+    case 0x01c1: return "__libm_sse2_acosf";
+    case 0x01c2: return "__libm_sse2_asin";
+    case 0x01c3: return "__libm_sse2_asinf";
+    case 0x01c4: return "__libm_sse2_atan";
+    case 0x01c5: return "__libm_sse2_atan2";
+    case 0x01c6: return "__libm_sse2_atanf";
+    case 0x01c7: return "__libm_sse2_cos";
+    case 0x01c8: return "__libm_sse2_cosf";
+    case 0x01c9: return "__libm_sse2_exp";
+    case 0x01ca: return "__libm_sse2_expf";
+    case 0x01cb: return "__libm_sse2_log";
+    case 0x01cc: return "__libm_sse2_log10";
+    case 0x01cd: return "__libm_sse2_log10f";
+    case 0x01ce: return "__libm_sse2_logf";
+    case 0x01cf: return "__libm_sse2_pow";
+    case 0x01d0: return "__libm_sse2_powf";
+    case 0x01d1: return "__libm_sse2_sin";
+    case 0x01d2: return "__libm_sse2_sinf";
+    case 0x01d3: return "__libm_sse2_tan";
+    case 0x01d4: return "__libm_sse2_tanf";
+    case 0x01d5: return "__mb_cur_max";
+    case 0x01d6: return "__p___argc";
+    case 0x01d7: return "__p___argv";
+    case 0x01d8: return "__p___initenv";
+    case 0x01d9: return "__p___mb_cur_max";
+    case 0x01da: return "__p___wargv";
+    case 0x01db: return "__p___winitenv";
+    case 0x01dc: return "__p__acmdln";
+    case 0x01dd: return "__p__commode";
+    case 0x01de: return "__p__daylight";
+    case 0x01df: return "__p__dstbias";
+    case 0x01e0: return "__p__environ";
+    case 0x01e1: return "__p__fmode";
+    case 0x01e2: return "__p__iob";
+    case 0x01e3: return "__p__mbcasemap";
+    case 0x01e4: return "__p__mbctype";
+    case 0x01e5: return "__p__pctype";
+    case 0x01e6: return "__p__pgmptr";
+    case 0x01e7: return "__p__pwctype";
+    case 0x01e8: return "__p__timezone";
+    case 0x01e9: return "__p__tzname";
+    case 0x01ea: return "__p__wcmdln";
+    case 0x01eb: return "__p__wenviron";
+    case 0x01ec: return "__p__wpgmptr";
+    case 0x01ed: return "__pctype_func";
+    case 0x01ee: return "__pioinfo";
+    case 0x01ef: return "__pwctype_func";
+    case 0x01f0: return "__pxcptinfoptrs";
+    case 0x01f1: return "__report_gsfailure";
+    case 0x01f2: return "__set_app_type";
+    case 0x01f3: return "__setlc_active";
+    case 0x01f4: return "__setusermatherr";
+    case 0x01f5: return "__strncnt";
+    case 0x01f6: return "__swprintf_l";
+    case 0x01f7: return "__sys_errlist";
+    case 0x01f8: return "__sys_nerr";
+    case 0x01f9: return "__threadhandle";
+    case 0x01fa: return "__threadid";
+    case 0x01fb: return "__timezone";
+    case 0x01fc: return "__toascii";
+    case 0x01fd: return "__tzname";
+    case 0x01fe: return "__unDName";
+    case 0x01ff: return "__unDNameEx";
+    case 0x0200: return "__unDNameHelper";
+    case 0x0114: return "__uncaught_exception";
+    case 0x0201: return "__unguarded_readlc_active";
+    case 0x0202: return "__vswprintf_l";
+    case 0x0203: return "__wargv";
+    case 0x0204: return "__wcserror";
+    case 0x0205: return "__wcserror_s";
+    case 0x0206: return "__wcsncnt";
+    case 0x0207: return "__wgetmainargs";
+    case 0x0208: return "__winitenv";
+    case 0x0209: return "_abnormal_termination";
+    case 0x020a: return "_abs64";
+    case 0x020b: return "_access";
+    case 0x020c: return "_access_s";
+    case 0x020d: return "_acmdln";
+    case 0x020e: return "_aligned_free";
+    case 0x020f: return "_aligned_malloc";
+    case 0x0210: return "_aligned_msize";
+    case 0x0211: return "_aligned_offset_malloc";
+    case 0x0212: return "_aligned_offset_realloc";
+    case 0x0213: return "_aligned_offset_recalloc";
+    case 0x0214: return "_aligned_realloc";
+    case 0x0215: return "_aligned_recalloc";
+    case 0x0216: return "_amsg_exit";
+    case 0x0217: return "_assert";
+    case 0x0218: return "_atodbl";
+    case 0x0219: return "_atodbl_l";
+    case 0x021a: return "_atof_l";
+    case 0x021b: return "_atoflt";
+    case 0x021c: return "_atoflt_l";
+    case 0x021d: return "_atoi64";
+    case 0x021e: return "_atoi64_l";
+    case 0x021f: return "_atoi_l";
+    case 0x0220: return "_atol_l";
+    case 0x0221: return "_atoldbl";
+    case 0x0222: return "_atoldbl_l";
+    case 0x0223: return "_beep";
+    case 0x0224: return "_beginthread";
+    case 0x0225: return "_beginthreadex";
+    case 0x0226: return "_byteswap_uint64";
+    case 0x0227: return "_byteswap_ulong";
+    case 0x0228: return "_byteswap_ushort";
+    case 0x0229: return "_c_exit";
+    case 0x022a: return "_cabs";
+    case 0x022b: return "_callnewh";
+    case 0x022c: return "_calloc_crt";
+    case 0x022d: return "_cexit";
+    case 0x022e: return "_cgets";
+    case 0x022f: return "_cgets_s";
+    case 0x0230: return "_cgetws";
+    case 0x0231: return "_cgetws_s";
+    case 0x0232: return "_chdir";
+    case 0x0233: return "_chdrive";
+    case 0x0234: return "_chgsign";
+    case 0x0235: return "_chkesp";
+    case 0x0236: return "_chmod";
+    case 0x0237: return "_chsize";
+    case 0x0238: return "_chsize_s";
+    case 0x0239: return "_clearfp";
+    case 0x023a: return "_close";
+    case 0x023b: return "_commit";
+    case 0x023c: return "_commode";
+    case 0x023d: return "_configthreadlocale";
+    case 0x023e: return "_control87";
+    case 0x023f: return "_controlfp";
+    case 0x0240: return "_controlfp_s";
+    case 0x0241: return "_copysign";
+    case 0x0242: return "_cprintf";
+    case 0x0243: return "_cprintf_l";
+    case 0x0244: return "_cprintf_p";
+    case 0x0245: return "_cprintf_p_l";
+    case 0x0246: return "_cprintf_s";
+    case 0x0247: return "_cprintf_s_l";
+    case 0x0248: return "_cputs";
+    case 0x0249: return "_cputws";
+    case 0x024a: return "_creat";
+    case 0x024b: return "_create_locale";
+    case 0x024c: return "_crt_debugger_hook";
+    case 0x024d: return "_cscanf";
+    case 0x024e: return "_cscanf_l";
+    case 0x024f: return "_cscanf_s";
+    case 0x0250: return "_cscanf_s_l";
+    case 0x0251: return "_ctime32";
+    case 0x0252: return "_ctime32_s";
+    case 0x0253: return "_ctime64";
+    case 0x0254: return "_ctime64_s";
+    case 0x0255: return "_cwait";
+    case 0x0256: return "_cwprintf";
+    case 0x0257: return "_cwprintf_l";
+    case 0x0258: return "_cwprintf_p";
+    case 0x0259: return "_cwprintf_p_l";
+    case 0x025a: return "_cwprintf_s";
+    case 0x025b: return "_cwprintf_s_l";
+    case 0x025c: return "_cwscanf";
+    case 0x025d: return "_cwscanf_l";
+    case 0x025e: return "_cwscanf_s";
+    case 0x025f: return "_cwscanf_s_l";
+    case 0x0260: return "_daylight";
+    case 0x0261: return "_difftime32";
+    case 0x0262: return "_difftime64";
+    case 0x0263: return "_dosmaperr";
+    case 0x0264: return "_dstbias";
+    case 0x0265: return "_dup";
+    case 0x0266: return "_dup2";
+    case 0x0267: return "_dupenv_s";
+    case 0x0268: return "_ecvt";
+    case 0x0269: return "_ecvt_s";
+    case 0x026a: return "_endthread";
+    case 0x026b: return "_endthreadex";
+    case 0x026c: return "_environ";
+    case 0x026d: return "_eof";
+    case 0x026e: return "_errno";
+    case 0x026f: return "_except_handler2";
+    case 0x0270: return "_except_handler3";
+    case 0x0271: return "_except_handler4_common";
+    case 0x0272: return "_execl";
+    case 0x0273: return "_execle";
+    case 0x0274: return "_execlp";
+    case 0x0275: return "_execlpe";
+    case 0x0276: return "_execv";
+    case 0x0277: return "_execve";
+    case 0x0278: return "_execvp";
+    case 0x0279: return "_execvpe";
+    case 0x027a: return "_exit";
+    case 0x027b: return "_expand";
+    case 0x027c: return "_fclose_nolock";
+    case 0x027d: return "_fcloseall";
+    case 0x027e: return "_fcvt";
+    case 0x027f: return "_fcvt_s";
+    case 0x0280: return "_fdopen";
+    case 0x0281: return "_fflush_nolock";
+    case 0x0282: return "_fgetchar";
+    case 0x0283: return "_fgetwc_nolock";
+    case 0x0284: return "_fgetwchar";
+    case 0x0285: return "_filbuf";
+    case 0x0286: return "_filelength";
+    case 0x0287: return "_filelengthi64";
+    case 0x0288: return "_fileno";
+    case 0x0289: return "_findclose";
+    case 0x028a: return "_findfirst32";
+    case 0x028b: return "_findfirst32i64";
+    case 0x028c: return "_findfirst64";
+    case 0x028d: return "_findfirst64i32";
+    case 0x028e: return "_findnext32";
+    case 0x028f: return "_findnext32i64";
+    case 0x0290: return "_findnext64";
+    case 0x0291: return "_findnext64i32";
+    case 0x0292: return "_finite";
+    case 0x0293: return "_flsbuf";
+    case 0x0294: return "_flushall";
+    case 0x0295: return "_fmode";
+    case 0x0296: return "_fpclass";
+    case 0x0297: return "_fpieee_flt";
+    case 0x0298: return "_fpreset";
+    case 0x0299: return "_fprintf_l";
+    case 0x029a: return "_fprintf_p";
+    case 0x029b: return "_fprintf_p_l";
+    case 0x029c: return "_fprintf_s_l";
+    case 0x029d: return "_fputchar";
+    case 0x029e: return "_fputwc_nolock";
+    case 0x029f: return "_fputwchar";
+    case 0x02a0: return "_fread_nolock";
+    case 0x02a1: return "_fread_nolock_s";
+    case 0x02a2: return "_free_locale";
+    case 0x02a3: return "_freea";
+    case 0x02a4: return "_freea_s";
+    case 0x02a5: return "_freefls";
+    case 0x02a6: return "_fscanf_l";
+    case 0x02a7: return "_fscanf_s_l";
+    case 0x02a8: return "_fseek_nolock";
+    case 0x02a9: return "_fseeki64";
+    case 0x02aa: return "_fseeki64_nolock";
+    case 0x02ab: return "_fsopen";
+    case 0x02ac: return "_fstat32";
+    case 0x02ad: return "_fstat32i64";
+    case 0x02ae: return "_fstat64";
+    case 0x02af: return "_fstat64i32";
+    case 0x02b0: return "_ftell_nolock";
+    case 0x02b1: return "_ftelli64";
+    case 0x02b2: return "_ftelli64_nolock";
+    case 0x02b3: return "_ftime32";
+    case 0x02b4: return "_ftime32_s";
+    case 0x02b5: return "_ftime64";
+    case 0x02b6: return "_ftime64_s";
+    case 0x02b7: return "_ftol";
+    case 0x02b8: return "_fullpath";
+    case 0x02b9: return "_futime32";
+    case 0x02ba: return "_futime64";
+    case 0x02bb: return "_fwprintf_l";
+    case 0x02bc: return "_fwprintf_p";
+    case 0x02bd: return "_fwprintf_p_l";
+    case 0x02be: return "_fwprintf_s_l";
+    case 0x02bf: return "_fwrite_nolock";
+    case 0x02c0: return "_fwscanf_l";
+    case 0x02c1: return "_fwscanf_s_l";
+    case 0x02c2: return "_gcvt";
+    case 0x02c3: return "_gcvt_s";
+    case 0x02c4: return "_get_current_locale";
+    case 0x02c5: return "_get_daylight";
+    case 0x02c6: return "_get_doserrno";
+    case 0x02c7: return "_get_dstbias";
+    case 0x02c8: return "_get_errno";
+    case 0x02c9: return "_get_fmode";
+    case 0x02ca: return "_get_heap_handle";
+    case 0x02cb: return "_get_invalid_parameter_handler";
+    case 0x02cc: return "_get_osfhandle";
+    case 0x02cd: return "_get_output_format";
+    case 0x02ce: return "_get_pgmptr";
+    case 0x02cf: return "_get_printf_count_output";
+    case 0x02d0: return "_get_purecall_handler";
+    case 0x02d1: return "_get_terminate";
+    case 0x02d2: return "_get_timezone";
+    case 0x02d3: return "_get_tzname";
+    case 0x02d4: return "_get_unexpected";
+    case 0x02d5: return "_get_wpgmptr";
+    case 0x02d6: return "_getc_nolock";
+    case 0x02d7: return "_getch";
+    case 0x02d8: return "_getch_nolock";
+    case 0x02d9: return "_getche";
+    case 0x02da: return "_getche_nolock";
+    case 0x02db: return "_getcwd";
+    case 0x02dc: return "_getdcwd";
+    case 0x02dd: return "_getdiskfree";
+    case 0x02de: return "_getdllprocaddr";
+    case 0x02df: return "_getdrive";
+    case 0x02e0: return "_getdrives";
+    case 0x02e1: return "_getmaxstdio";
+    case 0x02e2: return "_getmbcp";
+    case 0x02e3: return "_getpid";
+    case 0x02e4: return "_getptd";
+    case 0x02e5: return "_getsystime";
+    case 0x02e6: return "_getw";
+    case 0x02e7: return "_getwch";
+    case 0x02e8: return "_getwch_nolock";
+    case 0x02e9: return "_getwche";
+    case 0x02ea: return "_getwche_nolock";
+    case 0x02eb: return "_getws";
+    case 0x02ec: return "_getws_s";
+    case 0x02ed: return "_global_unwind2";
+    case 0x02ee: return "_gmtime32";
+    case 0x02ef: return "_gmtime32_s";
+    case 0x02f0: return "_gmtime64";
+    case 0x02f1: return "_gmtime64_s";
+    case 0x02f2: return "_heapadd";
+    case 0x02f3: return "_heapchk";
+    case 0x02f4: return "_heapmin";
+    case 0x02f5: return "_heapset";
+    case 0x02f6: return "_heapused";
+    case 0x02f7: return "_heapwalk";
+    case 0x02f8: return "_hypot";
+    case 0x02f9: return "_hypotf";
+    case 0x02fa: return "_i64toa";
+    case 0x02fb: return "_i64toa_s";
+    case 0x02fc: return "_i64tow";
+    case 0x02fd: return "_i64tow_s";
+    case 0x02fe: return "_initptd";
+    case 0x02ff: return "_initterm";
+    case 0x0300: return "_initterm_e";
+    case 0x0301: return "_inp";
+    case 0x0302: return "_inpd";
+    case 0x0303: return "_inpw";
+    case 0x0304: return "_invalid_parameter";
+    case 0x0305: return "_invalid_parameter_noinfo";
+    case 0x0306: return "_invalid_parameter_noinfo_noreturn";
+    case 0x0307: return "_invoke_watson";
+    case 0x0308: return "_iob";
+    case 0x0309: return "_isalnum_l";
+    case 0x030a: return "_isalpha_l";
+    case 0x030b: return "_isatty";
+    case 0x030c: return "_iscntrl_l";
+    case 0x030d: return "_isctype";
+    case 0x030e: return "_isctype_l";
+    case 0x030f: return "_isdigit_l";
+    case 0x0310: return "_isgraph_l";
+    case 0x0311: return "_isleadbyte_l";
+    case 0x0312: return "_islower_l";
+    case 0x0313: return "_ismbbalnum";
+    case 0x0314: return "_ismbbalnum_l";
+    case 0x0315: return "_ismbbalpha";
+    case 0x0316: return "_ismbbalpha_l";
+    case 0x0317: return "_ismbbgraph";
+    case 0x0318: return "_ismbbgraph_l";
+    case 0x0319: return "_ismbbkalnum";
+    case 0x031a: return "_ismbbkalnum_l";
+    case 0x031b: return "_ismbbkana";
+    case 0x031c: return "_ismbbkana_l";
+    case 0x031d: return "_ismbbkprint";
+    case 0x031e: return "_ismbbkprint_l";
+    case 0x031f: return "_ismbbkpunct";
+    case 0x0320: return "_ismbbkpunct_l";
+    case 0x0321: return "_ismbblead";
+    case 0x0322: return "_ismbblead_l";
+    case 0x0323: return "_ismbbprint";
+    case 0x0324: return "_ismbbprint_l";
+    case 0x0325: return "_ismbbpunct";
+    case 0x0326: return "_ismbbpunct_l";
+    case 0x0327: return "_ismbbtrail";
+    case 0x0328: return "_ismbbtrail_l";
+    case 0x0329: return "_ismbcalnum";
+    case 0x032a: return "_ismbcalnum_l";
+    case 0x032b: return "_ismbcalpha";
+    case 0x032c: return "_ismbcalpha_l";
+    case 0x032d: return "_ismbcdigit";
+    case 0x032e: return "_ismbcdigit_l";
+    case 0x032f: return "_ismbcgraph";
+    case 0x0330: return "_ismbcgraph_l";
+    case 0x0331: return "_ismbchira";
+    case 0x0332: return "_ismbchira_l";
+    case 0x0333: return "_ismbckata";
+    case 0x0334: return "_ismbckata_l";
+    case 0x0335: return "_ismbcl0";
+    case 0x0336: return "_ismbcl0_l";
+    case 0x0337: return "_ismbcl1";
+    case 0x0338: return "_ismbcl1_l";
+    case 0x0339: return "_ismbcl2";
+    case 0x033a: return "_ismbcl2_l";
+    case 0x033b: return "_ismbclegal";
+    case 0x033c: return "_ismbclegal_l";
+    case 0x033d: return "_ismbclower";
+    case 0x033e: return "_ismbclower_l";
+    case 0x033f: return "_ismbcprint";
+    case 0x0340: return "_ismbcprint_l";
+    case 0x0341: return "_ismbcpunct";
+    case 0x0342: return "_ismbcpunct_l";
+    case 0x0343: return "_ismbcspace";
+    case 0x0344: return "_ismbcspace_l";
+    case 0x0345: return "_ismbcsymbol";
+    case 0x0346: return "_ismbcsymbol_l";
+    case 0x0347: return "_ismbcupper";
+    case 0x0348: return "_ismbcupper_l";
+    case 0x0349: return "_ismbslead";
+    case 0x034a: return "_ismbslead_l";
+    case 0x034b: return "_ismbstrail";
+    case 0x034c: return "_ismbstrail_l";
+    case 0x034d: return "_isnan";
+    case 0x034e: return "_isprint_l";
+    case 0x034f: return "_ispunct_l";
+    case 0x0350: return "_isspace_l";
+    case 0x0351: return "_isupper_l";
+    case 0x0352: return "_iswalnum_l";
+    case 0x0353: return "_iswalpha_l";
+    case 0x0354: return "_iswcntrl_l";
+    case 0x0355: return "_iswcsym_l";
+    case 0x0356: return "_iswcsymf_l";
+    case 0x0357: return "_iswctype_l";
+    case 0x0358: return "_iswdigit_l";
+    case 0x0359: return "_iswgraph_l";
+    case 0x035a: return "_iswlower_l";
+    case 0x035b: return "_iswprint_l";
+    case 0x035c: return "_iswpunct_l";
+    case 0x035d: return "_iswspace_l";
+    case 0x035e: return "_iswupper_l";
+    case 0x035f: return "_iswxdigit_l";
+    case 0x0360: return "_isxdigit_l";
+    case 0x0361: return "_itoa";
+    case 0x0362: return "_itoa_s";
+    case 0x0363: return "_itow";
+    case 0x0364: return "_itow_s";
+    case 0x0365: return "_j0";
+    case 0x0366: return "_j1";
+    case 0x0367: return "_jn";
+    case 0x0368: return "_kbhit";
+    case 0x0369: return "_lfind";
+    case 0x036a: return "_lfind_s";
+    case 0x036b: return "_libm_sse2_acos_precise";
+    case 0x036c: return "_libm_sse2_asin_precise";
+    case 0x036d: return "_libm_sse2_atan_precise";
+    case 0x036e: return "_libm_sse2_cos_precise";
+    case 0x036f: return "_libm_sse2_exp_precise";
+    case 0x0370: return "_libm_sse2_log10_precise";
+    case 0x0371: return "_libm_sse2_log_precise";
+    case 0x0372: return "_libm_sse2_pow_precise";
+    case 0x0373: return "_libm_sse2_sin_precise";
+    case 0x0374: return "_libm_sse2_sqrt_precise";
+    case 0x0375: return "_libm_sse2_tan_precise";
+    case 0x0376: return "_loaddll";
+    case 0x0377: return "_local_unwind2";
+    case 0x0378: return "_local_unwind4";
+    case 0x0379: return "_localtime32";
+    case 0x037a: return "_localtime32_s";
+    case 0x037b: return "_localtime64";
+    case 0x037c: return "_localtime64_s";
+    case 0x037d: return "_lock";
+    case 0x037e: return "_lock_file";
+    case 0x037f: return "_locking";
+    case 0x0380: return "_logb";
+    case 0x0381: return "_longjmpex";
+    case 0x0382: return "_lrotl";
+    case 0x0383: return "_lrotr";
+    case 0x0384: return "_lsearch";
+    case 0x0385: return "_lsearch_s";
+    case 0x0386: return "_lseek";
+    case 0x0387: return "_lseeki64";
+    case 0x0388: return "_ltoa";
+    case 0x0389: return "_ltoa_s";
+    case 0x038a: return "_ltow";
+    case 0x038b: return "_ltow_s";
+    case 0x038c: return "_makepath";
+    case 0x038d: return "_makepath_s";
+    case 0x038e: return "_malloc_crt";
+    case 0x038f: return "_mbbtombc";
+    case 0x0390: return "_mbbtombc_l";
+    case 0x0391: return "_mbbtype";
+    case 0x0392: return "_mbbtype_l";
+    case 0x0393: return "_mbcasemap";
+    case 0x0394: return "_mbccpy";
+    case 0x0395: return "_mbccpy_l";
+    case 0x0396: return "_mbccpy_s";
+    case 0x0397: return "_mbccpy_s_l";
+    case 0x0398: return "_mbcjistojms";
+    case 0x0399: return "_mbcjistojms_l";
+    case 0x039a: return "_mbcjmstojis";
+    case 0x039b: return "_mbcjmstojis_l";
+    case 0x039c: return "_mbclen";
+    case 0x039d: return "_mbclen_l";
+    case 0x039e: return "_mbctohira";
+    case 0x039f: return "_mbctohira_l";
+    case 0x03a0: return "_mbctokata";
+    case 0x03a1: return "_mbctokata_l";
+    case 0x03a2: return "_mbctolower";
+    case 0x03a3: return "_mbctolower_l";
+    case 0x03a4: return "_mbctombb";
+    case 0x03a5: return "_mbctombb_l";
+    case 0x03a6: return "_mbctoupper";
+    case 0x03a7: return "_mbctoupper_l";
+    case 0x03a8: return "_mbctype";
+    case 0x03a9: return "_mblen_l";
+    case 0x03aa: return "_mbsbtype";
+    case 0x03ab: return "_mbsbtype_l";
+    case 0x03ac: return "_mbscat_s";
+    case 0x03ad: return "_mbscat_s_l";
+    case 0x03ae: return "_mbschr";
+    case 0x03af: return "_mbschr_l";
+    case 0x03b0: return "_mbscmp";
+    case 0x03b1: return "_mbscmp_l";
+    case 0x03b2: return "_mbscoll";
+    case 0x03b3: return "_mbscoll_l";
+    case 0x03b4: return "_mbscpy_s";
+    case 0x03b5: return "_mbscpy_s_l";
+    case 0x03b6: return "_mbscspn";
+    case 0x03b7: return "_mbscspn_l";
+    case 0x03b8: return "_mbsdec";
+    case 0x03b9: return "_mbsdec_l";
+    case 0x03ba: return "_mbsicmp";
+    case 0x03bb: return "_mbsicmp_l";
+    case 0x03bc: return "_mbsicoll";
+    case 0x03bd: return "_mbsicoll_l";
+    case 0x03be: return "_mbsinc";
+    case 0x03bf: return "_mbsinc_l";
+    case 0x03c0: return "_mbslen";
+    case 0x03c1: return "_mbslen_l";
+    case 0x03c2: return "_mbslwr";
+    case 0x03c3: return "_mbslwr_l";
+    case 0x03c4: return "_mbslwr_s";
+    case 0x03c5: return "_mbslwr_s_l";
+    case 0x03c6: return "_mbsnbcat";
+    case 0x03c7: return "_mbsnbcat_l";
+    case 0x03c8: return "_mbsnbcat_s";
+    case 0x03c9: return "_mbsnbcat_s_l";
+    case 0x03ca: return "_mbsnbcmp";
+    case 0x03cb: return "_mbsnbcmp_l";
+    case 0x03cc: return "_mbsnbcnt";
+    case 0x03cd: return "_mbsnbcnt_l";
+    case 0x03ce: return "_mbsnbcoll";
+    case 0x03cf: return "_mbsnbcoll_l";
+    case 0x03d0: return "_mbsnbcpy";
+    case 0x03d1: return "_mbsnbcpy_l";
+    case 0x03d2: return "_mbsnbcpy_s";
+    case 0x03d3: return "_mbsnbcpy_s_l";
+    case 0x03d4: return "_mbsnbicmp";
+    case 0x03d5: return "_mbsnbicmp_l";
+    case 0x03d6: return "_mbsnbicoll";
+    case 0x03d7: return "_mbsnbicoll_l";
+    case 0x03d8: return "_mbsnbset";
+    case 0x03d9: return "_mbsnbset_l";
+    case 0x03da: return "_mbsnbset_s";
+    case 0x03db: return "_mbsnbset_s_l";
+    case 0x03dc: return "_mbsncat";
+    case 0x03dd: return "_mbsncat_l";
+    case 0x03de: return "_mbsncat_s";
+    case 0x03df: return "_mbsncat_s_l";
+    case 0x03e0: return "_mbsnccnt";
+    case 0x03e1: return "_mbsnccnt_l";
+    case 0x03e2: return "_mbsncmp";
+    case 0x03e3: return "_mbsncmp_l";
+    case 0x03e4: return "_mbsncoll";
+    case 0x03e5: return "_mbsncoll_l";
+    case 0x03e6: return "_mbsncpy";
+    case 0x03e7: return "_mbsncpy_l";
+    case 0x03e8: return "_mbsncpy_s";
+    case 0x03e9: return "_mbsncpy_s_l";
+    case 0x03ea: return "_mbsnextc";
+    case 0x03eb: return "_mbsnextc_l";
+    case 0x03ec: return "_mbsnicmp";
+    case 0x03ed: return "_mbsnicmp_l";
+    case 0x03ee: return "_mbsnicoll";
+    case 0x03ef: return "_mbsnicoll_l";
+    case 0x03f0: return "_mbsninc";
+    case 0x03f1: return "_mbsninc_l";
+    case 0x03f2: return "_mbsnlen";
+    case 0x03f3: return "_mbsnlen_l";
+    case 0x03f4: return "_mbsnset";
+    case 0x03f5: return "_mbsnset_l";
+    case 0x03f6: return "_mbsnset_s";
+    case 0x03f7: return "_mbsnset_s_l";
+    case 0x03f8: return "_mbspbrk";
+    case 0x03f9: return "_mbspbrk_l";
+    case 0x03fa: return "_mbsrchr";
+    case 0x03fb: return "_mbsrchr_l";
+    case 0x03fc: return "_mbsrev";
+    case 0x03fd: return "_mbsrev_l";
+    case 0x03fe: return "_mbsset";
+    case 0x03ff: return "_mbsset_l";
+    case 0x0400: return "_mbsset_s";
+    case 0x0401: return "_mbsset_s_l";
+    case 0x0402: return "_mbsspn";
+    case 0x0403: return "_mbsspn_l";
+    case 0x0404: return "_mbsspnp";
+    case 0x0405: return "_mbsspnp_l";
+    case 0x0406: return "_mbsstr";
+    case 0x0407: return "_mbsstr_l";
+    case 0x0408: return "_mbstok";
+    case 0x0409: return "_mbstok_l";
+    case 0x040a: return "_mbstok_s";
+    case 0x040b: return "_mbstok_s_l";
+    case 0x040c: return "_mbstowcs_l";
+    case 0x040d: return "_mbstowcs_s_l";
+    case 0x040e: return "_mbstrlen";
+    case 0x040f: return "_mbstrlen_l";
+    case 0x0410: return "_mbstrnlen";
+    case 0x0411: return "_mbstrnlen_l";
+    case 0x0412: return "_mbsupr";
+    case 0x0413: return "_mbsupr_l";
+    case 0x0414: return "_mbsupr_s";
+    case 0x0415: return "_mbsupr_s_l";
+    case 0x0416: return "_mbtowc_l";
+    case 0x0417: return "_memccpy";
+    case 0x0418: return "_memicmp";
+    case 0x0419: return "_memicmp_l";
+    case 0x041a: return "_mkdir";
+    case 0x041b: return "_mkgmtime32";
+    case 0x041c: return "_mkgmtime64";
+    case 0x041d: return "_mktemp";
+    case 0x041e: return "_mktemp_s";
+    case 0x041f: return "_mktime32";
+    case 0x0420: return "_mktime64";
+    case 0x0421: return "_msize";
+    case 0x0422: return "_nextafter";
+    case 0x0423: return "_onexit";
+    case 0x0424: return "_open";
+    case 0x0425: return "_open_osfhandle";
+    case 0x0426: return "_outp";
+    case 0x0427: return "_outpd";
+    case 0x0428: return "_outpw";
+    case 0x0429: return "_pclose";
+    case 0x042a: return "_pctype";
+    case 0x042b: return "_pgmptr";
+    case 0x042c: return "_pipe";
+    case 0x042d: return "_popen";
+    case 0x042e: return "_printf_l";
+    case 0x042f: return "_printf_p";
+    case 0x0430: return "_printf_p_l";
+    case 0x0431: return "_printf_s_l";
+    case 0x0432: return "_purecall";
+    case 0x0433: return "_putch";
+    case 0x0434: return "_putch_nolock";
+    case 0x0435: return "_putenv";
+    case 0x0436: return "_putenv_s";
+    case 0x0437: return "_putw";
+    case 0x0438: return "_putwch";
+    case 0x0439: return "_putwch_nolock";
+    case 0x043a: return "_putws";
+    case 0x043b: return "_pwctype";
+    case 0x043c: return "_read";
+    case 0x043d: return "_realloc_crt";
+    case 0x043e: return "_recalloc";
+    case 0x043f: return "_recalloc_crt";
+    case 0x0440: return "_resetstkoflw";
+    case 0x0441: return "_rmdir";
+    case 0x0442: return "_rmtmp";
+    case 0x0443: return "_rotl";
+    case 0x0444: return "_rotl64";
+    case 0x0445: return "_rotr";
+    case 0x0446: return "_rotr64";
+    case 0x0447: return "_scalb";
+    case 0x0448: return "_scanf_l";
+    case 0x0449: return "_scanf_s_l";
+    case 0x044a: return "_scprintf";
+    case 0x044b: return "_scprintf_l";
+    case 0x044c: return "_scprintf_p";
+    case 0x044d: return "_scprintf_p_l";
+    case 0x044e: return "_scwprintf";
+    case 0x044f: return "_scwprintf_l";
+    case 0x0450: return "_scwprintf_p";
+    case 0x0451: return "_scwprintf_p_l";
+    case 0x0452: return "_searchenv";
+    case 0x0453: return "_searchenv_s";
+    case 0x0455: return "_seh_longjmp_unwind";
+    case 0x0454: return "_seh_longjmp_unwind4";
+    case 0x0456: return "_set_SSE2_enable";
+    case 0x0457: return "_set_abort_behavior";
+    case 0x0458: return "_set_controlfp";
+    case 0x0459: return "_set_doserrno";
+    case 0x045a: return "_set_errno";
+    case 0x045b: return "_set_error_mode";
+    case 0x045c: return "_set_fmode";
+    case 0x045d: return "_set_invalid_parameter_handler";
+    case 0x045e: return "_set_malloc_crt_max_wait";
+    case 0x045f: return "_set_output_format";
+    case 0x0460: return "_set_printf_count_output";
+    case 0x0461: return "_set_purecall_handler";
+    case 0x0462: return "_seterrormode";
+    case 0x0463: return "_setjmp";
+    case 0x0464: return "_setjmp3";
+    case 0x0465: return "_setmaxstdio";
+    case 0x0466: return "_setmbcp";
+    case 0x0467: return "_setmode";
+    case 0x0468: return "_setsystime";
+    case 0x0469: return "_sleep";
+    case 0x046a: return "_snprintf";
+    case 0x046b: return "_snprintf_c";
+    case 0x046c: return "_snprintf_c_l";
+    case 0x046d: return "_snprintf_l";
+    case 0x046e: return "_snprintf_s";
+    case 0x046f: return "_snprintf_s_l";
+    case 0x0470: return "_snscanf";
+    case 0x0471: return "_snscanf_l";
+    case 0x0472: return "_snscanf_s";
+    case 0x0473: return "_snscanf_s_l";
+    case 0x0474: return "_snwprintf";
+    case 0x0475: return "_snwprintf_l";
+    case 0x0476: return "_snwprintf_s";
+    case 0x0477: return "_snwprintf_s_l";
+    case 0x0478: return "_snwscanf";
+    case 0x0479: return "_snwscanf_l";
+    case 0x047a: return "_snwscanf_s";
+    case 0x047b: return "_snwscanf_s_l";
+    case 0x047c: return "_sopen";
+    case 0x047d: return "_sopen_s";
+    case 0x047e: return "_spawnl";
+    case 0x047f: return "_spawnle";
+    case 0x0480: return "_spawnlp";
+    case 0x0481: return "_spawnlpe";
+    case 0x0482: return "_spawnv";
+    case 0x0483: return "_spawnve";
+    case 0x0484: return "_spawnvp";
+    case 0x0485: return "_spawnvpe";
+    case 0x0486: return "_splitpath";
+    case 0x0487: return "_splitpath_s";
+    case 0x0488: return "_sprintf_l";
+    case 0x0489: return "_sprintf_p";
+    case 0x048a: return "_sprintf_p_l";
+    case 0x048b: return "_sprintf_s_l";
+    case 0x048c: return "_sscanf_l";
+    case 0x048d: return "_sscanf_s_l";
+    case 0x048e: return "_stat32";
+    case 0x048f: return "_stat32i64";
+    case 0x0490: return "_stat64";
+    case 0x0491: return "_stat64i32";
+    case 0x0492: return "_statusfp";
+    case 0x0493: return "_statusfp2";
+    case 0x0494: return "_strcoll_l";
+    case 0x0495: return "_strdate";
+    case 0x0496: return "_strdate_s";
+    case 0x0497: return "_strdup";
+    case 0x0498: return "_strerror";
+    case 0x0499: return "_strerror_s";
+    case 0x049a: return "_strftime_l";
+    case 0x049b: return "_stricmp";
+    case 0x049c: return "_stricmp_l";
+    case 0x049d: return "_stricoll";
+    case 0x049e: return "_stricoll_l";
+    case 0x049f: return "_strlwr";
+    case 0x04a0: return "_strlwr_l";
+    case 0x04a1: return "_strlwr_s";
+    case 0x04a2: return "_strlwr_s_l";
+    case 0x04a3: return "_strncoll";
+    case 0x04a4: return "_strncoll_l";
+    case 0x04a5: return "_strnicmp";
+    case 0x04a6: return "_strnicmp_l";
+    case 0x04a7: return "_strnicoll";
+    case 0x04a8: return "_strnicoll_l";
+    case 0x04a9: return "_strnset";
+    case 0x04aa: return "_strnset_s";
+    case 0x04ab: return "_strrev";
+    case 0x04ac: return "_strset";
+    case 0x04ad: return "_strset_s";
+    case 0x04ae: return "_strtime";
+    case 0x04af: return "_strtime_s";
+    case 0x04b0: return "_strtod_l";
+    case 0x04b1: return "_strtoi64";
+    case 0x04b2: return "_strtoi64_l";
+    case 0x04b3: return "_strtol_l";
+    case 0x04b4: return "_strtoui64";
+    case 0x04b5: return "_strtoui64_l";
+    case 0x04b6: return "_strtoul_l";
+    case 0x04b7: return "_strupr";
+    case 0x04b8: return "_strupr_l";
+    case 0x04b9: return "_strupr_s";
+    case 0x04ba: return "_strupr_s_l";
+    case 0x04bb: return "_strxfrm_l";
+    case 0x04bc: return "_swab";
+    case 0x04bd: return "_swprintf";
+    case 0x04be: return "_swprintf_c";
+    case 0x04bf: return "_swprintf_c_l";
+    case 0x04c0: return "_swprintf_p";
+    case 0x04c1: return "_swprintf_p_l";
+    case 0x04c2: return "_swprintf_s_l";
+    case 0x04c3: return "_swscanf_l";
+    case 0x04c4: return "_swscanf_s_l";
+    case 0x04c5: return "_sys_errlist";
+    case 0x04c6: return "_sys_nerr";
+    case 0x04c7: return "_tell";
+    case 0x04c8: return "_telli64";
+    case 0x04c9: return "_tempnam";
+    case 0x04ca: return "_time32";
+    case 0x04cb: return "_time64";
+    case 0x04cc: return "_timezone";
+    case 0x04cd: return "_tolower";
+    case 0x04ce: return "_tolower_l";
+    case 0x04cf: return "_toupper";
+    case 0x04d0: return "_toupper_l";
+    case 0x04d1: return "_towlower_l";
+    case 0x04d2: return "_towupper_l";
+    case 0x04d3: return "_tzname";
+    case 0x04d4: return "_tzset";
+    case 0x04d5: return "_ui64toa";
+    case 0x04d6: return "_ui64toa_s";
+    case 0x04d7: return "_ui64tow";
+    case 0x04d8: return "_ui64tow_s";
+    case 0x04d9: return "_ultoa";
+    case 0x04da: return "_ultoa_s";
+    case 0x04db: return "_ultow";
+    case 0x04dc: return "_ultow_s";
+    case 0x04dd: return "_umask";
+    case 0x04de: return "_umask_s";
+    case 0x04df: return "_ungetc_nolock";
+    case 0x04e0: return "_ungetch";
+    case 0x04e1: return "_ungetch_nolock";
+    case 0x04e2: return "_ungetwc_nolock";
+    case 0x04e3: return "_ungetwch";
+    case 0x04e4: return "_ungetwch_nolock";
+    case 0x04e5: return "_unlink";
+    case 0x04e6: return "_unloaddll";
+    case 0x04e7: return "_unlock";
+    case 0x04e8: return "_unlock_file";
+    case 0x04e9: return "_utime32";
+    case 0x04ea: return "_utime64";
+    case 0x04eb: return "_vcprintf";
+    case 0x04ec: return "_vcprintf_l";
+    case 0x04ed: return "_vcprintf_p";
+    case 0x04ee: return "_vcprintf_p_l";
+    case 0x04ef: return "_vcprintf_s";
+    case 0x04f0: return "_vcprintf_s_l";
+    case 0x04f1: return "_vcwprintf";
+    case 0x04f2: return "_vcwprintf_l";
+    case 0x04f3: return "_vcwprintf_p";
+    case 0x04f4: return "_vcwprintf_p_l";
+    case 0x04f5: return "_vcwprintf_s";
+    case 0x04f6: return "_vcwprintf_s_l";
+    case 0x04f7: return "_vfprintf_l";
+    case 0x04f8: return "_vfprintf_p";
+    case 0x04f9: return "_vfprintf_p_l";
+    case 0x04fa: return "_vfprintf_s_l";
+    case 0x04fb: return "_vfwprintf_l";
+    case 0x04fc: return "_vfwprintf_p";
+    case 0x04fd: return "_vfwprintf_p_l";
+    case 0x04fe: return "_vfwprintf_s_l";
+    case 0x04ff: return "_vprintf_l";
+    case 0x0500: return "_vprintf_p";
+    case 0x0501: return "_vprintf_p_l";
+    case 0x0502: return "_vprintf_s_l";
+    case 0x0503: return "_vscprintf";
+    case 0x0504: return "_vscprintf_l";
+    case 0x0505: return "_vscprintf_p";
+    case 0x0506: return "_vscprintf_p_l";
+    case 0x0507: return "_vscwprintf";
+    case 0x0508: return "_vscwprintf_l";
+    case 0x0509: return "_vscwprintf_p";
+    case 0x050a: return "_vscwprintf_p_l";
+    case 0x050b: return "_vsnprintf";
+    case 0x050c: return "_vsnprintf_c";
+    case 0x050d: return "_vsnprintf_c_l";
+    case 0x050e: return "_vsnprintf_l";
+    case 0x050f: return "_vsnprintf_s";
+    case 0x0510: return "_vsnprintf_s_l";
+    case 0x0511: return "_vsnwprintf";
+    case 0x0512: return "_vsnwprintf_l";
+    case 0x0513: return "_vsnwprintf_s";
+    case 0x0514: return "_vsnwprintf_s_l";
+    case 0x0515: return "_vsprintf_l";
+    case 0x0516: return "_vsprintf_p";
+    case 0x0517: return "_vsprintf_p_l";
+    case 0x0518: return "_vsprintf_s_l";
+    case 0x0519: return "_vswprintf";
+    case 0x051a: return "_vswprintf_c";
+    case 0x051b: return "_vswprintf_c_l";
+    case 0x051c: return "_vswprintf_l";
+    case 0x051d: return "_vswprintf_p";
+    case 0x051e: return "_vswprintf_p_l";
+    case 0x051f: return "_vswprintf_s_l";
+    case 0x0520: return "_vwprintf_l";
+    case 0x0521: return "_vwprintf_p";
+    case 0x0522: return "_vwprintf_p_l";
+    case 0x0523: return "_vwprintf_s_l";
+    case 0x0524: return "_waccess";
+    case 0x0525: return "_waccess_s";
+    case 0x0526: return "_wasctime";
+    case 0x0527: return "_wasctime_s";
+    case 0x0528: return "_wassert";
+    case 0x0529: return "_wchdir";
+    case 0x052a: return "_wchmod";
+    case 0x052b: return "_wcmdln";
+    case 0x052c: return "_wcreat";
+    case 0x052d: return "_wcreate_locale";
+    case 0x052e: return "_wcscoll_l";
+    case 0x052f: return "_wcsdup";
+    case 0x0530: return "_wcserror";
+    case 0x0531: return "_wcserror_s";
+    case 0x0532: return "_wcsftime_l";
+    case 0x0533: return "_wcsicmp";
+    case 0x0534: return "_wcsicmp_l";
+    case 0x0535: return "_wcsicoll";
+    case 0x0536: return "_wcsicoll_l";
+    case 0x0537: return "_wcslwr";
+    case 0x0538: return "_wcslwr_l";
+    case 0x0539: return "_wcslwr_s";
+    case 0x053a: return "_wcslwr_s_l";
+    case 0x053b: return "_wcsncoll";
+    case 0x053c: return "_wcsncoll_l";
+    case 0x053d: return "_wcsnicmp";
+    case 0x053e: return "_wcsnicmp_l";
+    case 0x053f: return "_wcsnicoll";
+    case 0x0540: return "_wcsnicoll_l";
+    case 0x0541: return "_wcsnset";
+    case 0x0542: return "_wcsnset_s";
+    case 0x0543: return "_wcsrev";
+    case 0x0544: return "_wcsset";
+    case 0x0545: return "_wcsset_s";
+    case 0x0546: return "_wcstod_l";
+    case 0x0547: return "_wcstoi64";
+    case 0x0548: return "_wcstoi64_l";
+    case 0x0549: return "_wcstol_l";
+    case 0x054a: return "_wcstombs_l";
+    case 0x054b: return "_wcstombs_s_l";
+    case 0x054c: return "_wcstoui64";
+    case 0x054d: return "_wcstoui64_l";
+    case 0x054e: return "_wcstoul_l";
+    case 0x054f: return "_wcsupr";
+    case 0x0550: return "_wcsupr_l";
+    case 0x0551: return "_wcsupr_s";
+    case 0x0552: return "_wcsupr_s_l";
+    case 0x0553: return "_wcsxfrm_l";
+    case 0x0554: return "_wctime32";
+    case 0x0555: return "_wctime32_s";
+    case 0x0556: return "_wctime64";
+    case 0x0557: return "_wctime64_s";
+    case 0x0558: return "_wctomb_l";
+    case 0x0559: return "_wctomb_s_l";
+    case 0x055a: return "_wctype";
+    case 0x055b: return "_wdupenv_s";
+    case 0x055c: return "_wenviron";
+    case 0x055d: return "_wexecl";
+    case 0x055e: return "_wexecle";
+    case 0x055f: return "_wexeclp";
+    case 0x0560: return "_wexeclpe";
+    case 0x0561: return "_wexecv";
+    case 0x0562: return "_wexecve";
+    case 0x0563: return "_wexecvp";
+    case 0x0564: return "_wexecvpe";
+    case 0x0565: return "_wfdopen";
+    case 0x0566: return "_wfindfirst32";
+    case 0x0567: return "_wfindfirst32i64";
+    case 0x0568: return "_wfindfirst64";
+    case 0x0569: return "_wfindfirst64i32";
+    case 0x056a: return "_wfindnext32";
+    case 0x056b: return "_wfindnext32i64";
+    case 0x056c: return "_wfindnext64";
+    case 0x056d: return "_wfindnext64i32";
+    case 0x056e: return "_wfopen";
+    case 0x056f: return "_wfopen_s";
+    case 0x0570: return "_wfreopen";
+    case 0x0571: return "_wfreopen_s";
+    case 0x0572: return "_wfsopen";
+    case 0x0573: return "_wfullpath";
+    case 0x0574: return "_wgetcwd";
+    case 0x0575: return "_wgetdcwd";
+    case 0x0576: return "_wgetenv";
+    case 0x0577: return "_wgetenv_s";
+    case 0x0578: return "_wmakepath";
+    case 0x0579: return "_wmakepath_s";
+    case 0x057a: return "_wmkdir";
+    case 0x057b: return "_wmktemp";
+    case 0x057c: return "_wmktemp_s";
+    case 0x057d: return "_wopen";
+    case 0x057e: return "_wperror";
+    case 0x057f: return "_wpgmptr";
+    case 0x0580: return "_wpopen";
+    case 0x0581: return "_wprintf_l";
+    case 0x0582: return "_wprintf_p";
+    case 0x0583: return "_wprintf_p_l";
+    case 0x0584: return "_wprintf_s_l";
+    case 0x0585: return "_wputenv";
+    case 0x0586: return "_wputenv_s";
+    case 0x0587: return "_wremove";
+    case 0x0588: return "_wrename";
+    case 0x0589: return "_write";
+    case 0x058a: return "_wrmdir";
+    case 0x058b: return "_wscanf_l";
+    case 0x058c: return "_wscanf_s_l";
+    case 0x058d: return "_wsearchenv";
+    case 0x058e: return "_wsearchenv_s";
+    case 0x058f: return "_wsetlocale";
+    case 0x0590: return "_wsopen";
+    case 0x0591: return "_wsopen_s";
+    case 0x0592: return "_wspawnl";
+    case 0x0593: return "_wspawnle";
+    case 0x0594: return "_wspawnlp";
+    case 0x0595: return "_wspawnlpe";
+    case 0x0596: return "_wspawnv";
+    case 0x0597: return "_wspawnve";
+    case 0x0598: return "_wspawnvp";
+    case 0x0599: return "_wspawnvpe";
+    case 0x059a: return "_wsplitpath";
+    case 0x059b: return "_wsplitpath_s";
+    case 0x059c: return "_wstat32";
+    case 0x059d: return "_wstat32i64";
+    case 0x059e: return "_wstat64";
+    case 0x059f: return "_wstat64i32";
+    case 0x05a0: return "_wstrdate";
+    case 0x05a1: return "_wstrdate_s";
+    case 0x05a2: return "_wstrtime";
+    case 0x05a3: return "_wstrtime_s";
+    case 0x05a4: return "_wsystem";
+    case 0x05a5: return "_wtempnam";
+    case 0x05a6: return "_wtmpnam";
+    case 0x05a7: return "_wtmpnam_s";
+    case 0x05a8: return "_wtof";
+    case 0x05a9: return "_wtof_l";
+    case 0x05aa: return "_wtoi";
+    case 0x05ab: return "_wtoi64";
+    case 0x05ac: return "_wtoi64_l";
+    case 0x05ad: return "_wtoi_l";
+    case 0x05ae: return "_wtol";
+    case 0x05af: return "_wtol_l";
+    case 0x05b0: return "_wunlink";
+    case 0x05b1: return "_wutime32";
+    case 0x05b2: return "_wutime64";
+    case 0x05b3: return "_y0";
+    case 0x05b4: return "_y1";
+    case 0x05b5: return "_yn";
+    case 0x05b6: return "abort";
+    case 0x05b7: return "abs";
+    case 0x05b8: return "acos";
+    case 0x05b9: return "asctime";
+    case 0x05ba: return "asctime_s";
+    case 0x05bb: return "asin";
+    case 0x05bc: return "atan";
+    case 0x05bd: return "atan2";
+    case 0x05be: return "atexit";
+    case 0x05bf: return "atof";
+    case 0x05c0: return "atoi";
+    case 0x05c1: return "atol";
+    case 0x05c2: return "bsearch";
+    case 0x05c3: return "bsearch_s";
+    case 0x05c4: return "btowc";
+    case 0x05c5: return "calloc";
+    case 0x05c6: return "ceil";
+    case 0x05c7: return "clearerr";
+    case 0x05c8: return "clearerr_s";
+    case 0x05c9: return "clock";
+    case 0x05ca: return "cos";
+    case 0x05cb: return "cosh";
+    case 0x05cc: return "div";
+    case 0x05cd: return "exit";
+    case 0x05ce: return "exp";
+    case 0x05cf: return "fabs";
+    case 0x05d0: return "fclose";
+    case 0x05d1: return "feof";
+    case 0x05d2: return "ferror";
+    case 0x05d3: return "fflush";
+    case 0x05d4: return "fgetc";
+    case 0x05d5: return "fgetpos";
+    case 0x05d6: return "fgets";
+    case 0x05d7: return "fgetwc";
+    case 0x05d8: return "fgetws";
+    case 0x05d9: return "floor";
+    case 0x05da: return "fmod";
+    case 0x05db: return "fopen";
+    case 0x05dc: return "fopen_s";
+    case 0x05dd: return "fprintf";
+    case 0x05de: return "fprintf_s";
+    case 0x05df: return "fputc";
+    case 0x05e0: return "fputs";
+    case 0x05e1: return "fputwc";
+    case 0x05e2: return "fputws";
+    case 0x05e3: return "fread";
+    case 0x05e4: return "fread_s";
+    case 0x05e5: return "free";
+    case 0x05e6: return "freopen";
+    case 0x05e7: return "freopen_s";
+    case 0x05e8: return "frexp";
+    case 0x05e9: return "fscanf";
+    case 0x05ea: return "fscanf_s";
+    case 0x05eb: return "fseek";
+    case 0x05ec: return "fsetpos";
+    case 0x05ed: return "ftell";
+    case 0x05ee: return "fwprintf";
+    case 0x05ef: return "fwprintf_s";
+    case 0x05f0: return "fwrite";
+    case 0x05f1: return "fwscanf";
+    case 0x05f2: return "fwscanf_s";
+    case 0x05f3: return "getc";
+    case 0x05f4: return "getchar";
+    case 0x05f5: return "getenv";
+    case 0x05f6: return "getenv_s";
+    case 0x05f7: return "gets";
+    case 0x05f8: return "gets_s";
+    case 0x05f9: return "getwc";
+    case 0x05fa: return "getwchar";
+    case 0x05fb: return "is_wctype";
+    case 0x05fc: return "isalnum";
+    case 0x05fd: return "isalpha";
+    case 0x05fe: return "iscntrl";
+    case 0x05ff: return "isdigit";
+    case 0x0600: return "isgraph";
+    case 0x0601: return "isleadbyte";
+    case 0x0602: return "islower";
+    case 0x0603: return "isprint";
+    case 0x0604: return "ispunct";
+    case 0x0605: return "isspace";
+    case 0x0606: return "isupper";
+    case 0x0607: return "iswalnum";
+    case 0x0608: return "iswalpha";
+    case 0x0609: return "iswascii";
+    case 0x060a: return "iswcntrl";
+    case 0x060b: return "iswctype";
+    case 0x060c: return "iswdigit";
+    case 0x060d: return "iswgraph";
+    case 0x060e: return "iswlower";
+    case 0x060f: return "iswprint";
+    case 0x0610: return "iswpunct";
+    case 0x0611: return "iswspace";
+    case 0x0612: return "iswupper";
+    case 0x0613: return "iswxdigit";
+    case 0x0614: return "isxdigit";
+    case 0x0615: return "labs";
+    case 0x0616: return "ldexp";
+    case 0x0617: return "ldiv";
+    case 0x0618: return "llabs";
+    case 0x0619: return "lldiv";
+    case 0x061a: return "localeconv";
+    case 0x061b: return "log";
+    case 0x061c: return "log10";
+    case 0x061d: return "longjmp";
+    case 0x061e: return "malloc";
+    case 0x061f: return "mblen";
+    case 0x0620: return "mbrlen";
+    case 0x0621: return "mbrtowc";
+    case 0x0622: return "mbsrtowcs";
+    case 0x0623: return "mbsrtowcs_s";
+    case 0x0624: return "mbstowcs";
+    case 0x0625: return "mbstowcs_s";
+    case 0x0626: return "mbtowc";
+    case 0x0627: return "memchr";
+    case 0x0628: return "memcmp";
+    case 0x0629: return "memcpy";
+    case 0x062a: return "memcpy_s";
+    case 0x062b: return "memmove";
+    case 0x062c: return "memmove_s";
+    case 0x062d: return "memset";
+    case 0x062e: return "modf";
+    case 0x062f: return "perror";
+    case 0x0630: return "pow";
+    case 0x0631: return "printf";
+    case 0x0632: return "printf_s";
+    case 0x0633: return "putc";
+    case 0x0634: return "putchar";
+    case 0x0635: return "puts";
+    case 0x0636: return "putwc";
+    case 0x0637: return "putwchar";
+    case 0x0638: return "qsort";
+    case 0x0639: return "qsort_s";
+    case 0x063a: return "raise";
+    case 0x063b: return "rand";
+    case 0x063c: return "rand_s";
+    case 0x063d: return "realloc";
+    case 0x063e: return "remove";
+    case 0x063f: return "rename";
+    case 0x0640: return "rewind";
+    case 0x0641: return "scanf";
+    case 0x0642: return "scanf_s";
+    case 0x0643: return "setbuf";
+    case 0x0644: return "setlocale";
+    case 0x0645: return "setvbuf";
+    case 0x0646: return "signal";
+    case 0x0647: return "sin";
+    case 0x0648: return "sinh";
+    case 0x0649: return "sprintf";
+    case 0x064a: return "sprintf_s";
+    case 0x064b: return "sqrt";
+    case 0x064c: return "srand";
+    case 0x064d: return "sscanf";
+    case 0x064e: return "sscanf_s";
+    case 0x064f: return "strcat";
+    case 0x0650: return "strcat_s";
+    case 0x0651: return "strchr";
+    case 0x0652: return "strcmp";
+    case 0x0653: return "strcoll";
+    case 0x0654: return "strcpy";
+    case 0x0655: return "strcpy_s";
+    case 0x0656: return "strcspn";
+    case 0x0657: return "strerror";
+    case 0x0658: return "strerror_s";
+    case 0x0659: return "strftime";
+    case 0x065a: return "strlen";
+    case 0x065b: return "strncat";
+    case 0x065c: return "strncat_s";
+    case 0x065d: return "strncmp";
+    case 0x065e: return "strncpy";
+    case 0x065f: return "strncpy_s";
+    case 0x0660: return "strnlen";
+    case 0x0661: return "strpbrk";
+    case 0x0662: return "strrchr";
+    case 0x0663: return "strspn";
+    case 0x0664: return "strstr";
+    case 0x0665: return "strtod";
+    case 0x0666: return "strtok";
+    case 0x0667: return "strtok_s";
+    case 0x0668: return "strtol";
+    case 0x0669: return "strtoul";
+    case 0x066a: return "strxfrm";
+    case 0x066b: return "swprintf_s";
+    case 0x066c: return "swscanf";
+    case 0x066d: return "swscanf_s";
+    case 0x066e: return "system";
+    case 0x066f: return "tan";
+    case 0x0670: return "tanh";
+    case 0x0671: return "tmpfile";
+    case 0x0672: return "tmpfile_s";
+    case 0x0673: return "tmpnam";
+    case 0x0674: return "tmpnam_s";
+    case 0x0675: return "tolower";
+    case 0x0676: return "toupper";
+    case 0x0677: return "towlower";
+    case 0x0678: return "towupper";
+    case 0x0679: return "ungetc";
+    case 0x067a: return "ungetwc";
+    case 0x067b: return "vfprintf";
+    case 0x067c: return "vfprintf_s";
+    case 0x067d: return "vfwprintf";
+    case 0x067e: return "vfwprintf_s";
+    case 0x067f: return "vprintf";
+    case 0x0680: return "vprintf_s";
+    case 0x0681: return "vsprintf";
+    case 0x0682: return "vsprintf_s";
+    case 0x0683: return "vswprintf_s";
+    case 0x0684: return "vwprintf";
+    case 0x0685: return "vwprintf_s";
+    case 0x0686: return "wcrtomb";
+    case 0x0687: return "wcrtomb_s";
+    case 0x0688: return "wcscat";
+    case 0x0689: return "wcscat_s";
+    case 0x068a: return "wcschr";
+    case 0x068b: return "wcscmp";
+    case 0x068c: return "wcscoll";
+    case 0x068d: return "wcscpy";
+    case 0x068e: return "wcscpy_s";
+    case 0x068f: return "wcscspn";
+    case 0x0690: return "wcsftime";
+    case 0x0691: return "wcslen";
+    case 0x0692: return "wcsncat";
+    case 0x0693: return "wcsncat_s";
+    case 0x0694: return "wcsncmp";
+    case 0x0695: return "wcsncpy";
+    case 0x0696: return "wcsncpy_s";
+    case 0x0697: return "wcsnlen";
+    case 0x0698: return "wcspbrk";
+    case 0x0699: return "wcsrchr";
+    case 0x069a: return "wcsrtombs";
+    case 0x069b: return "wcsrtombs_s";
+    case 0x069c: return "wcsspn";
+    case 0x069d: return "wcsstr";
+    case 0x069e: return "wcstod";
+    case 0x069f: return "wcstok";
+    case 0x06a0: return "wcstok_s";
+    case 0x06a1: return "wcstol";
+    case 0x06a2: return "wcstombs";
+    case 0x06a3: return "wcstombs_s";
+    case 0x06a4: return "wcstoul";
+    case 0x06a5: return "wcsxfrm";
+    case 0x06a6: return "wctob";
+    case 0x06a7: return "wctomb";
+    case 0x06a8: return "wctomb_s";
+    case 0x06a9: return "wmemcpy_s";
+    case 0x06aa: return "wmemmove_s";
+    case 0x06ab: return "wprintf";
+    case 0x06ac: return "wprintf_s";
+    case 0x06ad: return "wscanf";
+    case 0x06ae: return "wscanf_s";
   }
   return nullptr;
 }


-}
 }

-#endif

+#endif
diff --git a/deps/LIEF/src/PE/utils/ordinals_lookup_tables/msvcr120_dll_lookup.hpp b/deps/LIEF/src/PE/utils/ordinals_lookup_tables/msvcr120_dll_lookup.hpp
index 00f43df3112..bd3d2ae2bd7 100644
--- a/deps/LIEF/src/PE/utils/ordinals_lookup_tables/msvcr120_dll_lookup.hpp
+++ b/deps/LIEF/src/PE/utils/ordinals_lookup_tables/msvcr120_dll_lookup.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -17,1984 +17,2108 @@
 #define LIEF_PE_MSVCR120_DLL_LOOKUP_H
 #include <cstdint>

-namespace LIEF {
-namespace PE {
+
+namespace LIEF::PE {

 inline const char* msvcr120_dll_lookup(uint32_t i) {
-  switch(i) {
-  case 0x0145: return "$I10_OUTPUT";
-  case 0x0001: return "??0?$_SpinWait@$00@details@Concurrency@@QAE@P6AXXZ@Z";
-  case 0x0002: return "??0?$_SpinWait@$0A@@details@Concurrency@@QAE@P6AXXZ@Z";
-  case 0x0003: return "??0SchedulerPolicy@Concurrency@@QAA@IZZ";
-  case 0x0004: return "??0SchedulerPolicy@Concurrency@@QAE@ABV01@@Z";
-  case 0x0005: return "??0SchedulerPolicy@Concurrency@@QAE@XZ";
-  case 0x0006: return "??0_Cancellation_beacon@details@Concurrency@@QAE@XZ";
-  case 0x0007: return "??0_Condition_variable@details@Concurrency@@QAE@XZ";
-  case 0x0008: return "??0_Context@details@Concurrency@@QAE@PAVContext@2@@Z";
-  case 0x0009: return "??0_Interruption_exception@details@Concurrency@@QAE@PBD@Z";
-  case 0x000a: return "??0_Interruption_exception@details@Concurrency@@QAE@XZ";
-  case 0x000b: return "??0_NonReentrantBlockingLock@details@Concurrency@@QAE@XZ";
-  case 0x000c: return "??0_NonReentrantPPLLock@details@Concurrency@@QAE@XZ";
-  case 0x000d: return "??0_ReaderWriterLock@details@Concurrency@@QAE@XZ";
-  case 0x000e: return "??0_ReentrantBlockingLock@details@Concurrency@@QAE@XZ";
-  case 0x000f: return "??0_ReentrantLock@details@Concurrency@@QAE@XZ";
-  case 0x0010: return "??0_ReentrantPPLLock@details@Concurrency@@QAE@XZ";
-  case 0x0011: return "??0_Scheduler@details@Concurrency@@QAE@PAVScheduler@2@@Z";
-  case 0x0012: return "??0_Scoped_lock@_NonReentrantPPLLock@details@Concurrency@@QAE@AAV123@@Z";
-  case 0x0013: return "??0_Scoped_lock@_ReentrantPPLLock@details@Concurrency@@QAE@AAV123@@Z";
-  case 0x0014: return "??0_SpinLock@details@Concurrency@@QAE@ACJ@Z";
-  case 0x0015: return "??0_StructuredTaskCollection@details@Concurrency@@QAE@PAV_CancellationTokenState@12@@Z";
-  case 0x0016: return "??0_TaskCollection@details@Concurrency@@QAE@PAV_CancellationTokenState@12@@Z";
-  case 0x0017: return "??0_TaskCollection@details@Concurrency@@QAE@XZ";
-  case 0x0018: return "??0_Timer@details@Concurrency@@IAE@I_N@Z";
-  case 0x0019: return "??0__non_rtti_object@std@@QAE@ABV01@@Z";
-  case 0x001a: return "??0__non_rtti_object@std@@QAE@PBD@Z";
-  case 0x001b: return "??0bad_cast@std@@AAE@PBQBD@Z";
-  case 0x001c: return "??0bad_cast@std@@QAE@ABV01@@Z";
-  case 0x001d: return "??0bad_cast@std@@QAE@PBD@Z";
-  case 0x001e: return "??0bad_target@Concurrency@@QAE@PBD@Z";
-  case 0x001f: return "??0bad_target@Concurrency@@QAE@XZ";
-  case 0x0020: return "??0bad_typeid@std@@QAE@ABV01@@Z";
-  case 0x0021: return "??0bad_typeid@std@@QAE@PBD@Z";
-  case 0x0022: return "??0context_self_unblock@Concurrency@@QAE@PBD@Z";
-  case 0x0023: return "??0context_self_unblock@Concurrency@@QAE@XZ";
-  case 0x0024: return "??0context_unblock_unbalanced@Concurrency@@QAE@PBD@Z";
-  case 0x0025: return "??0context_unblock_unbalanced@Concurrency@@QAE@XZ";
-  case 0x0026: return "??0critical_section@Concurrency@@QAE@XZ";
-  case 0x0027: return "??0default_scheduler_exists@Concurrency@@QAE@PBD@Z";
-  case 0x0028: return "??0default_scheduler_exists@Concurrency@@QAE@XZ";
-  case 0x0029: return "??0event@Concurrency@@QAE@XZ";
-  case 0x002a: return "??0exception@std@@QAE@ABQBD@Z";
-  case 0x002b: return "??0exception@std@@QAE@ABQBDH@Z";
-  case 0x002c: return "??0exception@std@@QAE@ABV01@@Z";
-  case 0x002d: return "??0exception@std@@QAE@XZ";
-  case 0x002e: return "??0improper_lock@Concurrency@@QAE@PBD@Z";
-  case 0x002f: return "??0improper_lock@Concurrency@@QAE@XZ";
-  case 0x0030: return "??0improper_scheduler_attach@Concurrency@@QAE@PBD@Z";
-  case 0x0031: return "??0improper_scheduler_attach@Concurrency@@QAE@XZ";
-  case 0x0032: return "??0improper_scheduler_detach@Concurrency@@QAE@PBD@Z";
-  case 0x0033: return "??0improper_scheduler_detach@Concurrency@@QAE@XZ";
-  case 0x0034: return "??0improper_scheduler_reference@Concurrency@@QAE@PBD@Z";
-  case 0x0035: return "??0improper_scheduler_reference@Concurrency@@QAE@XZ";
-  case 0x0036: return "??0invalid_link_target@Concurrency@@QAE@PBD@Z";
-  case 0x0037: return "??0invalid_link_target@Concurrency@@QAE@XZ";
-  case 0x0038: return "??0invalid_multiple_scheduling@Concurrency@@QAE@PBD@Z";
-  case 0x0039: return "??0invalid_multiple_scheduling@Concurrency@@QAE@XZ";
-  case 0x003a: return "??0invalid_operation@Concurrency@@QAE@PBD@Z";
-  case 0x003b: return "??0invalid_operation@Concurrency@@QAE@XZ";
-  case 0x003c: return "??0invalid_oversubscribe_operation@Concurrency@@QAE@PBD@Z";
-  case 0x003d: return "??0invalid_oversubscribe_operation@Concurrency@@QAE@XZ";
-  case 0x003e: return "??0invalid_scheduler_policy_key@Concurrency@@QAE@PBD@Z";
-  case 0x003f: return "??0invalid_scheduler_policy_key@Concurrency@@QAE@XZ";
-  case 0x0040: return "??0invalid_scheduler_policy_thread_specification@Concurrency@@QAE@PBD@Z";
-  case 0x0041: return "??0invalid_scheduler_policy_thread_specification@Concurrency@@QAE@XZ";
-  case 0x0042: return "??0invalid_scheduler_policy_value@Concurrency@@QAE@PBD@Z";
-  case 0x0043: return "??0invalid_scheduler_policy_value@Concurrency@@QAE@XZ";
-  case 0x0044: return "??0message_not_found@Concurrency@@QAE@PBD@Z";
-  case 0x0045: return "??0message_not_found@Concurrency@@QAE@XZ";
-  case 0x0046: return "??0missing_wait@Concurrency@@QAE@PBD@Z";
-  case 0x0047: return "??0missing_wait@Concurrency@@QAE@XZ";
-  case 0x0048: return "??0nested_scheduler_missing_detach@Concurrency@@QAE@PBD@Z";
-  case 0x0049: return "??0nested_scheduler_missing_detach@Concurrency@@QAE@XZ";
-  case 0x004a: return "??0operation_timed_out@Concurrency@@QAE@PBD@Z";
-  case 0x004b: return "??0operation_timed_out@Concurrency@@QAE@XZ";
-  case 0x004c: return "??0reader_writer_lock@Concurrency@@QAE@XZ";
-  case 0x004d: return "??0scheduler_not_attached@Concurrency@@QAE@PBD@Z";
-  case 0x004e: return "??0scheduler_not_attached@Concurrency@@QAE@XZ";
-  case 0x004f: return "??0scheduler_resource_allocation_error@Concurrency@@QAE@J@Z";
-  case 0x0050: return "??0scheduler_resource_allocation_error@Concurrency@@QAE@PBDJ@Z";
-  case 0x0051: return "??0scheduler_worker_creation_error@Concurrency@@QAE@J@Z";
-  case 0x0052: return "??0scheduler_worker_creation_error@Concurrency@@QAE@PBDJ@Z";
-  case 0x0053: return "??0scoped_lock@critical_section@Concurrency@@QAE@AAV12@@Z";
-  case 0x0054: return "??0scoped_lock@reader_writer_lock@Concurrency@@QAE@AAV12@@Z";
-  case 0x0055: return "??0scoped_lock_read@reader_writer_lock@Concurrency@@QAE@AAV12@@Z";
-  case 0x0056: return "??0task_canceled@Concurrency@@QAE@PBD@Z";
-  case 0x0057: return "??0task_canceled@Concurrency@@QAE@XZ";
-  case 0x0058: return "??0unsupported_os@Concurrency@@QAE@PBD@Z";
-  case 0x0059: return "??0unsupported_os@Concurrency@@QAE@XZ";
-  case 0x005a: return "??1SchedulerPolicy@Concurrency@@QAE@XZ";
-  case 0x005b: return "??1_Cancellation_beacon@details@Concurrency@@QAE@XZ";
-  case 0x005c: return "??1_Condition_variable@details@Concurrency@@QAE@XZ";
-  case 0x005d: return "??1_NonReentrantBlockingLock@details@Concurrency@@QAE@XZ";
-  case 0x005e: return "??1_ReentrantBlockingLock@details@Concurrency@@QAE@XZ";
-  case 0x005f: return "??1_Scoped_lock@_NonReentrantPPLLock@details@Concurrency@@QAE@XZ";
-  case 0x0060: return "??1_Scoped_lock@_ReentrantPPLLock@details@Concurrency@@QAE@XZ";
-  case 0x0061: return "??1_SpinLock@details@Concurrency@@QAE@XZ";
-  case 0x0062: return "??1_StructuredTaskCollection@details@Concurrency@@QAE@XZ";
-  case 0x0063: return "??1_TaskCollection@details@Concurrency@@QAE@XZ";
-  case 0x0064: return "??1_Timer@details@Concurrency@@MAE@XZ";
-  case 0x0065: return "??1__non_rtti_object@std@@UAE@XZ";
-  case 0x0066: return "??1bad_cast@std@@UAE@XZ";
-  case 0x0067: return "??1bad_typeid@std@@UAE@XZ";
-  case 0x0068: return "??1critical_section@Concurrency@@QAE@XZ";
-  case 0x0069: return "??1event@Concurrency@@QAE@XZ";
-  case 0x006a: return "??1exception@std@@UAE@XZ";
-  case 0x006b: return "??1reader_writer_lock@Concurrency@@QAE@XZ";
-  case 0x006c: return "??1scoped_lock@critical_section@Concurrency@@QAE@XZ";
-  case 0x006d: return "??1scoped_lock@reader_writer_lock@Concurrency@@QAE@XZ";
-  case 0x006e: return "??1scoped_lock_read@reader_writer_lock@Concurrency@@QAE@XZ";
-  case 0x006f: return "??1type_info@@UAE@XZ";
-  case 0x0070: return "??2@YAPAXI@Z";
-  case 0x0071: return "??2@YAPAXIHPBDH@Z";
-  case 0x0072: return "??3@YAXPAX@Z";
-  case 0x0073: return "??3@YAXPAXHPBDH@Z";
-  case 0x0074: return "??4?$_SpinWait@$00@details@Concurrency@@QAEAAV012@ABV012@@Z";
-  case 0x0075: return "??4?$_SpinWait@$0A@@details@Concurrency@@QAEAAV012@ABV012@@Z";
-  case 0x0076: return "??4SchedulerPolicy@Concurrency@@QAEAAV01@ABV01@@Z";
-  case 0x0077: return "??4__non_rtti_object@std@@QAEAAV01@ABV01@@Z";
-  case 0x0078: return "??4bad_cast@std@@QAEAAV01@ABV01@@Z";
-  case 0x0079: return "??4bad_typeid@std@@QAEAAV01@ABV01@@Z";
-  case 0x007a: return "??4exception@std@@QAEAAV01@ABV01@@Z";
-  case 0x007b: return "??8type_info@@QBE_NABV0@@Z";
-  case 0x007c: return "??9type_info@@QBE_NABV0@@Z";
-  case 0x007d: return "??_7__non_rtti_object@std@@6B@";
-  case 0x007e: return "??_7bad_cast@std@@6B@";
-  case 0x007f: return "??_7bad_typeid@std@@6B@";
-  case 0x0080: return "??_7exception@std@@6B@";
-  case 0x0081: return "??_F?$_SpinWait@$00@details@Concurrency@@QAEXXZ";
-  case 0x0082: return "??_F?$_SpinWait@$0A@@details@Concurrency@@QAEXXZ";
-  case 0x0083: return "??_F_Context@details@Concurrency@@QAEXXZ";
-  case 0x0084: return "??_F_Scheduler@details@Concurrency@@QAEXXZ";
-  case 0x0085: return "??_Fbad_cast@std@@QAEXXZ";
-  case 0x0086: return "??_Fbad_typeid@std@@QAEXXZ";
-  case 0x0087: return "??_U@YAPAXI@Z";
-  case 0x0088: return "??_U@YAPAXIHPBDH@Z";
-  case 0x0089: return "??_V@YAXPAX@Z";
-  case 0x008a: return "??_V@YAXPAXHPBDH@Z";
-  case 0x008b: return "?Alloc@Concurrency@@YAPAXI@Z";
-  case 0x008c: return "?Block@Context@Concurrency@@SAXXZ";
-  case 0x008d: return "?CaptureCallstack@platform@details@Concurrency@@YAIPAPAXII@Z";
-  case 0x008e: return "?Create@CurrentScheduler@Concurrency@@SAXABVSchedulerPolicy@2@@Z";
-  case 0x008f: return "?Create@Scheduler@Concurrency@@SAPAV12@ABVSchedulerPolicy@2@@Z";
-  case 0x0090: return "?CreateResourceManager@Concurrency@@YAPAUIResourceManager@1@XZ";
-  case 0x0091: return "?CreateScheduleGroup@CurrentScheduler@Concurrency@@SAPAVScheduleGroup@2@AAVlocation@2@@Z";
-  case 0x0092: return "?CreateScheduleGroup@CurrentScheduler@Concurrency@@SAPAVScheduleGroup@2@XZ";
-  case 0x0093: return "?CurrentContext@Context@Concurrency@@SAPAV12@XZ";
-  case 0x0094: return "?Detach@CurrentScheduler@Concurrency@@SAXXZ";
-  case 0x0095: return "?DisableTracing@Concurrency@@YAJXZ";
-  case 0x0096: return "?EnableTracing@Concurrency@@YAJXZ";
-  case 0x0097: return "?Free@Concurrency@@YAXPAX@Z";
-  case 0x0098: return "?Get@CurrentScheduler@Concurrency@@SAPAVScheduler@2@XZ";
-  case 0x0099: return "?GetCurrentThreadId@platform@details@Concurrency@@YAJXZ";
-  case 0x009a: return "?GetExecutionContextId@Concurrency@@YAIXZ";
-  case 0x009b: return "?GetNumberOfVirtualProcessors@CurrentScheduler@Concurrency@@SAIXZ";
-  case 0x009c: return "?GetOSVersion@Concurrency@@YA?AW4OSVersion@IResourceManager@1@XZ";
-  case 0x009d: return "?GetPolicy@CurrentScheduler@Concurrency@@SA?AVSchedulerPolicy@2@XZ";
-  case 0x009e: return "?GetPolicyValue@SchedulerPolicy@Concurrency@@QBEIW4PolicyElementKey@2@@Z";
-  case 0x009f: return "?GetProcessorCount@Concurrency@@YAIXZ";
-  case 0x00a0: return "?GetProcessorNodeCount@Concurrency@@YAIXZ";
-  case 0x00a1: return "?GetSchedulerId@Concurrency@@YAIXZ";
-  case 0x00a2: return "?GetSharedTimerQueue@details@Concurrency@@YAPAXXZ";
-  case 0x00a3: return "?Id@Context@Concurrency@@SAIXZ";
-  case 0x00a4: return "?Id@CurrentScheduler@Concurrency@@SAIXZ";
-  case 0x00a5: return "?IsAvailableLocation@CurrentScheduler@Concurrency@@SA_NABVlocation@2@@Z";
-  case 0x00a6: return "?IsCurrentTaskCollectionCanceling@Context@Concurrency@@SA_NXZ";
-  case 0x00a7: return "?Log2@details@Concurrency@@YAKI@Z";
-  case 0x00a8: return "?Oversubscribe@Context@Concurrency@@SAX_N@Z";
-  case 0x00a9: return "?RegisterShutdownEvent@CurrentScheduler@Concurrency@@SAXPAX@Z";
-  case 0x00aa: return "?ResetDefaultSchedulerPolicy@Scheduler@Concurrency@@SAXXZ";
-  case 0x00ab: return "?ScheduleGroupId@Context@Concurrency@@SAIXZ";
-  case 0x00ac: return "?ScheduleTask@CurrentScheduler@Concurrency@@SAXP6AXPAX@Z0@Z";
-  case 0x00ad: return "?ScheduleTask@CurrentScheduler@Concurrency@@SAXP6AXPAX@Z0AAVlocation@2@@Z";
-  case 0x00ae: return "?SetConcurrencyLimits@SchedulerPolicy@Concurrency@@QAEXII@Z";
-  case 0x00af: return "?SetDefaultSchedulerPolicy@Scheduler@Concurrency@@SAXABVSchedulerPolicy@2@@Z";
-  case 0x00b0: return "?SetPolicyValue@SchedulerPolicy@Concurrency@@QAEIW4PolicyElementKey@2@I@Z";
-  case 0x00b1: return "?VirtualProcessorId@Context@Concurrency@@SAIXZ";
-  case 0x00b2: return "?Yield@Context@Concurrency@@SAXXZ";
-  case 0x00b3: return "?_Abort@_StructuredTaskCollection@details@Concurrency@@AAEXXZ";
-  case 0x00b4: return "?_Acquire@_NonReentrantBlockingLock@details@Concurrency@@QAEXXZ";
-  case 0x00b5: return "?_Acquire@_NonReentrantPPLLock@details@Concurrency@@QAEXPAX@Z";
-  case 0x00b6: return "?_Acquire@_ReentrantBlockingLock@details@Concurrency@@QAEXXZ";
-  case 0x00b7: return "?_Acquire@_ReentrantLock@details@Concurrency@@QAEXXZ";
-  case 0x00b8: return "?_Acquire@_ReentrantPPLLock@details@Concurrency@@QAEXPAX@Z";
-  case 0x00b9: return "?_AcquireRead@_ReaderWriterLock@details@Concurrency@@QAEXXZ";
-  case 0x00ba: return "?_AcquireWrite@_ReaderWriterLock@details@Concurrency@@QAEXXZ";
-  case 0x00bb: return "?_Cancel@_StructuredTaskCollection@details@Concurrency@@QAEXXZ";
-  case 0x00bc: return "?_Cancel@_TaskCollection@details@Concurrency@@QAEXXZ";
-  case 0x00bd: return "?_CheckTaskCollection@_UnrealizedChore@details@Concurrency@@IAEXXZ";
-  case 0x00be: return "?_CleanupToken@_StructuredTaskCollection@details@Concurrency@@AAEXXZ";
-  case 0x00bf: return "?_ConcRT_CoreAssert@details@Concurrency@@YAXPBD0H@Z";
-  case 0x00c0: return "?_ConcRT_Trace@details@Concurrency@@YAXHPB_WZZ";
-  case 0x00c1: return "?_Confirm_cancel@_Cancellation_beacon@details@Concurrency@@QAE_NXZ";
-  case 0x00c2: return "?_Copy_str@exception@std@@AAEXPBD@Z";
-  case 0x00c3: return "?_CurrentContext@_Context@details@Concurrency@@SA?AV123@XZ";
-  case 0x00c4: return "?_Current_node@location@Concurrency@@SA?AV12@XZ";
-  case 0x00c5: return "?_Destroy@_AsyncTaskCollection@details@Concurrency@@EAEXXZ";
-  case 0x00c6: return "?_DoYield@?$_SpinWait@$00@details@Concurrency@@IAEXXZ";
-  case 0x00c7: return "?_DoYield@?$_SpinWait@$0A@@details@Concurrency@@IAEXXZ";
-  case 0x00c8: return "?_Get@_CurrentScheduler@details@Concurrency@@SA?AV_Scheduler@23@XZ";
-  case 0x00c9: return "?_GetConcRTTraceInfo@Concurrency@@YAPBU_CONCRT_TRACE_INFO@details@1@XZ";
-  case 0x00ca: return "?_GetConcurrency@details@Concurrency@@YAIXZ";
-  case 0x00cb: return "?_GetCurrentInlineDepth@_StackGuard@details@Concurrency@@CAAAIXZ";
-  case 0x00cc: return "?_GetNumberOfVirtualProcessors@_CurrentScheduler@details@Concurrency@@SAIXZ";
-  case 0x00cd: return "?_GetScheduler@_Scheduler@details@Concurrency@@QAEPAVScheduler@3@XZ";
-  case 0x00ce: return "?_Id@_CurrentScheduler@details@Concurrency@@SAIXZ";
-  case 0x00cf: return "?_IsCanceling@_StructuredTaskCollection@details@Concurrency@@QAE_NXZ";
-  case 0x00d0: return "?_IsCanceling@_TaskCollection@details@Concurrency@@QAE_NXZ";
-  case 0x00d1: return "?_IsSynchronouslyBlocked@_Context@details@Concurrency@@QBE_NXZ";
-  case 0x00d2: return "?_Name_base@type_info@@CAPBDPBV1@PAU__type_info_node@@@Z";
-  case 0x00d3: return "?_Name_base_internal@type_info@@CAPBDPBV1@PAU__type_info_node@@@Z";
-  case 0x00d4: return "?_NewCollection@_AsyncTaskCollection@details@Concurrency@@SAPAV123@PAV_CancellationTokenState@23@@Z";
-  case 0x00d5: return "?_NumberOfSpins@?$_SpinWait@$00@details@Concurrency@@IAEKXZ";
-  case 0x00d6: return "?_NumberOfSpins@?$_SpinWait@$0A@@details@Concurrency@@IAEKXZ";
-  case 0x00d7: return "?_Oversubscribe@_Context@details@Concurrency@@SAX_N@Z";
-  case 0x00d8: return "?_Reference@_Scheduler@details@Concurrency@@QAEIXZ";
-  case 0x00d9: return "?_Release@_NonReentrantBlockingLock@details@Concurrency@@QAEXXZ";
-  case 0x00da: return "?_Release@_NonReentrantPPLLock@details@Concurrency@@QAEXXZ";
-  case 0x00db: return "?_Release@_ReentrantBlockingLock@details@Concurrency@@QAEXXZ";
-  case 0x00dc: return "?_Release@_ReentrantLock@details@Concurrency@@QAEXXZ";
-  case 0x00dd: return "?_Release@_ReentrantPPLLock@details@Concurrency@@QAEXXZ";
-  case 0x00de: return "?_Release@_Scheduler@details@Concurrency@@QAEIXZ";
-  case 0x00df: return "?_ReleaseRead@_ReaderWriterLock@details@Concurrency@@QAEXXZ";
-  case 0x00e0: return "?_ReleaseWrite@_ReaderWriterLock@details@Concurrency@@QAEXXZ";
-  case 0x00e1: return "?_ReportUnobservedException@details@Concurrency@@YAXXZ";
-  case 0x00e2: return "?_Reset@?$_SpinWait@$00@details@Concurrency@@IAEXXZ";
-  case 0x00e3: return "?_Reset@?$_SpinWait@$0A@@details@Concurrency@@IAEXXZ";
-  case 0x00e4: return "?_RunAndWait@_StructuredTaskCollection@details@Concurrency@@QAG?AW4_TaskCollectionStatus@23@PAV_UnrealizedChore@23@@Z";
-  case 0x00e5: return "?_RunAndWait@_TaskCollection@details@Concurrency@@QAG?AW4_TaskCollectionStatus@23@PAV_UnrealizedChore@23@@Z";
-  case 0x00e6: return "?_Schedule@_StructuredTaskCollection@details@Concurrency@@QAEXPAV_UnrealizedChore@23@@Z";
-  case 0x00e7: return "?_Schedule@_StructuredTaskCollection@details@Concurrency@@QAEXPAV_UnrealizedChore@23@PAVlocation@3@@Z";
-  case 0x00e8: return "?_Schedule@_TaskCollection@details@Concurrency@@QAEXPAV_UnrealizedChore@23@@Z";
-  case 0x00e9: return "?_Schedule@_TaskCollection@details@Concurrency@@QAEXPAV_UnrealizedChore@23@PAVlocation@3@@Z";
-  case 0x00ea: return "?_ScheduleTask@_CurrentScheduler@details@Concurrency@@SAXP6AXPAX@Z0@Z";
-  case 0x00eb: return "?_SetSpinCount@?$_SpinWait@$00@details@Concurrency@@QAEXI@Z";
-  case 0x00ec: return "?_SetSpinCount@?$_SpinWait@$0A@@details@Concurrency@@QAEXI@Z";
-  case 0x00ed: return "?_SetUnobservedExceptionHandler@details@Concurrency@@YAXP6AXXZ@Z";
-  case 0x00ee: return "?_ShouldSpinAgain@?$_SpinWait@$00@details@Concurrency@@IAE_NXZ";
-  case 0x00ef: return "?_ShouldSpinAgain@?$_SpinWait@$0A@@details@Concurrency@@IAE_NXZ";
-  case 0x00f0: return "?_SpinOnce@?$_SpinWait@$00@details@Concurrency@@QAE_NXZ";
-  case 0x00f1: return "?_SpinOnce@?$_SpinWait@$0A@@details@Concurrency@@QAE_NXZ";
-  case 0x00f2: return "?_SpinYield@Context@Concurrency@@SAXXZ";
-  case 0x00f3: return "?_Start@_Timer@details@Concurrency@@IAEXXZ";
-  case 0x00f4: return "?_Stop@_Timer@details@Concurrency@@IAEXXZ";
-  case 0x00f5: return "?_Tidy@exception@std@@AAEXXZ";
-  case 0x00f6: return "?_Trace_agents@Concurrency@@YAXW4Agents_EventType@1@_JZZ";
-  case 0x00f7: return "?_Trace_ppl_function@Concurrency@@YAXABU_GUID@@EW4ConcRT_EventType@1@@Z";
-  case 0x00f8: return "?_TryAcquire@_NonReentrantBlockingLock@details@Concurrency@@QAE_NXZ";
-  case 0x00f9: return "?_TryAcquire@_ReentrantBlockingLock@details@Concurrency@@QAE_NXZ";
-  case 0x00fa: return "?_TryAcquire@_ReentrantLock@details@Concurrency@@QAE_NXZ";
-  case 0x00fb: return "?_TryAcquireWrite@_ReaderWriterLock@details@Concurrency@@QAE_NXZ";
-  case 0x00fc: return "?_Type_info_dtor@type_info@@CAXPAV1@@Z";
-  case 0x00fd: return "?_Type_info_dtor_internal@type_info@@CAXPAV1@@Z";
-  case 0x00fe: return "?_UnderlyingYield@details@Concurrency@@YAXXZ";
-  case 0x00ff: return "?_ValidateExecute@@YAHP6GHXZ@Z";
-  case 0x0100: return "?_ValidateRead@@YAHPBXI@Z";
-  case 0x0101: return "?_ValidateWrite@@YAHPAXI@Z";
-  case 0x0102: return "?_Value@_SpinCount@details@Concurrency@@SAIXZ";
-  case 0x0103: return "?_Yield@_Context@details@Concurrency@@SAXXZ";
-  case 0x0104: return "?__ExceptionPtrAssign@@YAXPAXPBX@Z";
-  case 0x0105: return "?__ExceptionPtrCompare@@YA_NPBX0@Z";
-  case 0x0106: return "?__ExceptionPtrCopy@@YAXPAXPBX@Z";
-  case 0x0107: return "?__ExceptionPtrCopyException@@YAXPAXPBX1@Z";
-  case 0x0108: return "?__ExceptionPtrCreate@@YAXPAX@Z";
-  case 0x0109: return "?__ExceptionPtrCurrentException@@YAXPAX@Z";
-  case 0x010a: return "?__ExceptionPtrDestroy@@YAXPAX@Z";
-  case 0x010b: return "?__ExceptionPtrRethrow@@YAXPBX@Z";
-  case 0x010c: return "?__ExceptionPtrSwap@@YAXPAX0@Z";
-  case 0x010d: return "?__ExceptionPtrToBool@@YA_NPBX@Z";
-  case 0x010f: return "?_inconsistency@@YAXXZ";
-  case 0x0110: return "?_invalid_parameter@@YAXPBG00II@Z";
-  case 0x0111: return "?_is_exception_typeof@@YAHABVtype_info@@PAU_EXCEPTION_POINTERS@@@Z";
-  case 0x0112: return "?_name_internal_method@type_info@@QBEPBDPAU__type_info_node@@@Z";
-  case 0x0113: return "?_open@@YAHPBDHH@Z";
-  case 0x0114: return "?_query_new_handler@@YAP6AHI@ZXZ";
-  case 0x0115: return "?_query_new_mode@@YAHXZ";
-  case 0x0116: return "?_set_new_handler@@YAP6AHI@ZH@Z";
-  case 0x0117: return "?_set_new_handler@@YAP6AHI@ZP6AHI@Z@Z";
-  case 0x0118: return "?_set_new_mode@@YAHH@Z";
-  case 0x0119: return "?_set_se_translator@@YAP6AXIPAU_EXCEPTION_POINTERS@@@ZH@Z";
-  case 0x011a: return "?_set_se_translator@@YAP6AXIPAU_EXCEPTION_POINTERS@@@ZP6AXI0@Z@Z";
-  case 0x011b: return "?_sopen@@YAHPBDHHH@Z";
-  case 0x011c: return "?_type_info_dtor_internal_method@type_info@@QAEXXZ";
-  case 0x011d: return "?_wopen@@YAHPB_WHH@Z";
-  case 0x011e: return "?_wsopen@@YAHPB_WHHH@Z";
-  case 0x011f: return "?before@type_info@@QBE_NABV1@@Z";
-  case 0x0120: return "?current@location@Concurrency@@SA?AV12@XZ";
-  case 0x0121: return "?from_numa_node@location@Concurrency@@SA?AV12@G@Z";
-  case 0x0122: return "?get_error_code@scheduler_resource_allocation_error@Concurrency@@QBEJXZ";
-  case 0x0123: return "?lock@critical_section@Concurrency@@QAEXXZ";
-  case 0x0124: return "?lock@reader_writer_lock@Concurrency@@QAEXXZ";
-  case 0x0125: return "?lock_read@reader_writer_lock@Concurrency@@QAEXXZ";
-  case 0x0126: return "?name@type_info@@QBEPBDPAU__type_info_node@@@Z";
-  case 0x0127: return "?native_handle@critical_section@Concurrency@@QAEAAV12@XZ";
-  case 0x0128: return "?notify_all@_Condition_variable@details@Concurrency@@QAEXXZ";
-  case 0x0129: return "?notify_one@_Condition_variable@details@Concurrency@@QAEXXZ";
-  case 0x012a: return "?raw_name@type_info@@QBEPBDXZ";
-  case 0x012b: return "?reset@event@Concurrency@@QAEXXZ";
-  case 0x012c: return "?set@event@Concurrency@@QAEXXZ";
-  case 0x012d: return "?set_new_handler@@YAP6AXXZP6AXXZ@Z";
-  case 0x012e: return "?set_task_execution_resources@Concurrency@@YAXGPAU_GROUP_AFFINITY@@@Z";
-  case 0x012f: return "?set_task_execution_resources@Concurrency@@YAXK@Z";
-  case 0x0130: return "?set_terminate@@YAP6AXXZH@Z";
-  case 0x0131: return "?set_terminate@@YAP6AXXZP6AXXZ@Z";
-  case 0x0132: return "?set_unexpected@@YAP6AXXZH@Z";
-  case 0x0133: return "?set_unexpected@@YAP6AXXZP6AXXZ@Z";
-  case 0x0134: return "?swprintf@@YAHPAGIPBGZZ";
-  case 0x0135: return "?swprintf@@YAHPA_WIPB_WZZ";
-  case 0x0136: return "?terminate@@YAXXZ";
-  case 0x0137: return "?try_lock@critical_section@Concurrency@@QAE_NXZ";
-  case 0x0138: return "?try_lock@reader_writer_lock@Concurrency@@QAE_NXZ";
-  case 0x0139: return "?try_lock_for@critical_section@Concurrency@@QAE_NI@Z";
-  case 0x013a: return "?try_lock_read@reader_writer_lock@Concurrency@@QAE_NXZ";
-  case 0x013b: return "?unexpected@@YAXXZ";
-  case 0x013c: return "?unlock@critical_section@Concurrency@@QAEXXZ";
-  case 0x013d: return "?unlock@reader_writer_lock@Concurrency@@QAEXXZ";
-  case 0x013e: return "?vswprintf@@YAHPA_WIPB_WPAD@Z";
-  case 0x013f: return "?wait@Concurrency@@YAXI@Z";
-  case 0x0140: return "?wait@_Condition_variable@details@Concurrency@@QAEXAAVcritical_section@3@@Z";
-  case 0x0141: return "?wait@event@Concurrency@@QAEII@Z";
-  case 0x0142: return "?wait_for@_Condition_variable@details@Concurrency@@QAE_NAAVcritical_section@3@I@Z";
-  case 0x0143: return "?wait_for_multiple@event@Concurrency@@SAIPAPAV12@I_NI@Z";
-  case 0x0144: return "?what@exception@std@@UBEPBDXZ";
-  case 0x0146: return "_CIacos";
-  case 0x0147: return "_CIasin";
-  case 0x0148: return "_CIatan";
-  case 0x0149: return "_CIatan2";
-  case 0x014a: return "_CIcos";
-  case 0x014b: return "_CIcosh";
-  case 0x014c: return "_CIexp";
-  case 0x014d: return "_CIfmod";
-  case 0x014e: return "_CIlog";
-  case 0x014f: return "_CIlog10";
-  case 0x0150: return "_CIpow";
-  case 0x0151: return "_CIsin";
-  case 0x0152: return "_CIsinh";
-  case 0x0153: return "_CIsqrt";
-  case 0x0154: return "_CItan";
-  case 0x0155: return "_CItanh";
-  case 0x0156: return "_CRT_RTC_INIT";
-  case 0x0157: return "_CRT_RTC_INITW";
-  case 0x0158: return "_Cbuild";
-  case 0x0159: return "_CreateFrameInfo";
-  case 0x015a: return "_CxxThrowException";
-  case 0x015b: return "_EH_prolog";
-  case 0x015c: return "_FCbuild";
-  case 0x015d: return "_FindAndUnlinkFrame";
-  case 0x015e: return "_Getdays";
-  case 0x015f: return "_Getmonths";
-  case 0x0160: return "_Gettnames";
-  case 0x0161: return "_HUGE";
-  case 0x0162: return "_IsExceptionObjectToBeDestroyed";
-  case 0x0163: return "_LCbuild";
-  case 0x0164: return "_NLG_Dispatch2";
-  case 0x0165: return "_NLG_Return";
-  case 0x0166: return "_NLG_Return2";
-  case 0x0167: return "_SetWinRTOutOfMemoryExceptionCallback";
-  case 0x0168: return "_Strftime";
-  case 0x0169: return "_W_Getdays";
-  case 0x016a: return "_W_Getmonths";
-  case 0x016b: return "_W_Gettnames";
-  case 0x016c: return "_Wcsftime";
-  case 0x016d: return "_XcptFilter";
-  case 0x016e: return "__AdjustPointer";
-  case 0x016f: return "__BuildCatchObject";
-  case 0x0170: return "__BuildCatchObjectHelper";
-  case 0x0171: return "__CppXcptFilter";
-  case 0x0172: return "__CxxDetectRethrow";
-  case 0x0173: return "__CxxExceptionFilter";
-  case 0x0174: return "__CxxFrameHandler";
-  case 0x0175: return "__CxxFrameHandler2";
-  case 0x0176: return "__CxxFrameHandler3";
-  case 0x0177: return "__CxxLongjmpUnwind";
-  case 0x0178: return "__CxxQueryExceptionSize";
-  case 0x0179: return "__CxxRegisterExceptionObject";
-  case 0x017a: return "__CxxUnregisterExceptionObject";
-  case 0x017b: return "__DestructExceptionObject";
-  case 0x017c: return "__FrameUnwindFilter";
-  case 0x017d: return "__GetPlatformExceptionInfo";
-  case 0x017e: return "__RTCastToVoid";
-  case 0x017f: return "__RTDynamicCast";
-  case 0x0180: return "__RTtypeid";
-  case 0x0181: return "__STRINGTOLD";
-  case 0x0182: return "__STRINGTOLD_L";
-  case 0x0183: return "__TypeMatch";
-  case 0x0184: return "___lc_codepage_func";
-  case 0x0185: return "___lc_collate_cp_func";
-  case 0x0186: return "___lc_locale_name_func";
-  case 0x0187: return "___mb_cur_max_func";
-  case 0x0188: return "___mb_cur_max_l_func";
-  case 0x0189: return "___setlc_active_func";
-  case 0x018a: return "___unguarded_readlc_active_add_func";
-  case 0x018b: return "__argc";
-  case 0x018c: return "__argv";
-  case 0x018d: return "__badioinfo";
-  case 0x018e: return "__clean_type_info_names_internal";
-  case 0x018f: return "__control87_2";
-  case 0x0190: return "__create_locale";
-  case 0x0191: return "__crtCompareStringA";
-  case 0x0192: return "__crtCompareStringEx";
-  case 0x0193: return "__crtCompareStringW";
-  case 0x0194: return "__crtCreateEventExW";
-  case 0x0195: return "__crtCreateSemaphoreExW";
-  case 0x0196: return "__crtCreateSymbolicLinkW";
-  case 0x0197: return "__crtEnumSystemLocalesEx";
-  case 0x0198: return "__crtFlsAlloc";
-  case 0x0199: return "__crtFlsFree";
-  case 0x019a: return "__crtFlsGetValue";
-  case 0x019b: return "__crtFlsSetValue";
-  case 0x019c: return "__crtGetDateFormatEx";
-  case 0x019d: return "__crtGetFileInformationByHandleEx";
-  case 0x019e: return "__crtGetLocaleInfoEx";
-  case 0x019f: return "__crtGetShowWindowMode";
-  case 0x01a0: return "__crtGetTickCount64";
-  case 0x01a1: return "__crtGetTimeFormatEx";
-  case 0x01a2: return "__crtGetUserDefaultLocaleName";
-  case 0x01a3: return "__crtInitializeCriticalSectionEx";
-  case 0x01a4: return "__crtIsPackagedApp";
-  case 0x01a5: return "__crtIsValidLocaleName";
-  case 0x01a6: return "__crtLCMapStringA";
-  case 0x01a7: return "__crtLCMapStringEx";
-  case 0x01a8: return "__crtLCMapStringW";
-  case 0x01a9: return "__crtSetFileInformationByHandle";
-  case 0x01aa: return "__crtSetThreadStackGuarantee";
-  case 0x01ab: return "__crtSetUnhandledExceptionFilter";
-  case 0x01ac: return "__crtSleep";
-  case 0x01ad: return "__crtTerminateProcess";
-  case 0x01ae: return "__crtUnhandledException";
-  case 0x01af: return "__daylight";
-  case 0x01b0: return "__dllonexit";
-  case 0x01b1: return "__doserrno";
-  case 0x01b2: return "__dstbias";
-  case 0x01b3: return "__fpecode";
-  case 0x01b4: return "__free_locale";
-  case 0x01b5: return "__get_current_locale";
-  case 0x01b6: return "__get_flsindex";
-  case 0x01b7: return "__get_tlsindex";
-  case 0x01b8: return "__getmainargs";
-  case 0x01b9: return "__initenv";
-  case 0x01ba: return "__iob_func";
-  case 0x01bb: return "__isascii";
-  case 0x01bc: return "__iscsym";
-  case 0x01bd: return "__iscsymf";
-  case 0x01be: return "__iswcsym";
-  case 0x01bf: return "__iswcsymf";
-  case 0x01c0: return "__lconv";
-  case 0x01c1: return "__lconv_init";
-  case 0x01c2: return "__libm_sse2_acos";
-  case 0x01c3: return "__libm_sse2_acosf";
-  case 0x01c4: return "__libm_sse2_asin";
-  case 0x01c5: return "__libm_sse2_asinf";
-  case 0x01c6: return "__libm_sse2_atan";
-  case 0x01c7: return "__libm_sse2_atan2";
-  case 0x01c8: return "__libm_sse2_atanf";
-  case 0x01c9: return "__libm_sse2_cos";
-  case 0x01ca: return "__libm_sse2_cosf";
-  case 0x01cb: return "__libm_sse2_exp";
-  case 0x01cc: return "__libm_sse2_expf";
-  case 0x01cd: return "__libm_sse2_log";
-  case 0x01ce: return "__libm_sse2_log10";
-  case 0x01cf: return "__libm_sse2_log10f";
-  case 0x01d0: return "__libm_sse2_logf";
-  case 0x01d1: return "__libm_sse2_pow";
-  case 0x01d2: return "__libm_sse2_powf";
-  case 0x01d3: return "__libm_sse2_sin";
-  case 0x01d4: return "__libm_sse2_sinf";
-  case 0x01d5: return "__libm_sse2_tan";
-  case 0x01d6: return "__libm_sse2_tanf";
-  case 0x01d7: return "__mb_cur_max";
-  case 0x01d8: return "__p___argc";
-  case 0x01d9: return "__p___argv";
-  case 0x01da: return "__p___initenv";
-  case 0x01db: return "__p___mb_cur_max";
-  case 0x01dc: return "__p___wargv";
-  case 0x01dd: return "__p___winitenv";
-  case 0x01de: return "__p__acmdln";
-  case 0x01df: return "__p__commode";
-  case 0x01e0: return "__p__daylight";
-  case 0x01e1: return "__p__dstbias";
-  case 0x01e2: return "__p__environ";
-  case 0x01e3: return "__p__fmode";
-  case 0x01e4: return "__p__iob";
-  case 0x01e5: return "__p__mbcasemap";
-  case 0x01e6: return "__p__mbctype";
-  case 0x01e7: return "__p__pctype";
-  case 0x01e8: return "__p__pgmptr";
-  case 0x01e9: return "__p__pwctype";
-  case 0x01ea: return "__p__timezone";
-  case 0x01eb: return "__p__tzname";
-  case 0x01ec: return "__p__wcmdln";
-  case 0x01ed: return "__p__wenviron";
-  case 0x01ee: return "__p__wpgmptr";
-  case 0x01ef: return "__pctype_func";
-  case 0x01f0: return "__pioinfo";
-  case 0x01f1: return "__pwctype_func";
-  case 0x01f2: return "__pxcptinfoptrs";
-  case 0x01f3: return "__report_gsfailure";
-  case 0x01f4: return "__set_app_type";
-  case 0x01f5: return "__setlc_active";
-  case 0x01f6: return "__setusermatherr";
-  case 0x01f7: return "__strncnt";
-  case 0x01f8: return "__swprintf_l";
-  case 0x01f9: return "__sys_errlist";
-  case 0x01fa: return "__sys_nerr";
-  case 0x01fb: return "__threadhandle";
-  case 0x01fc: return "__threadid";
-  case 0x01fd: return "__timezone";
-  case 0x01fe: return "__toascii";
-  case 0x01ff: return "__tzname";
-  case 0x0200: return "__unDName";
-  case 0x0201: return "__unDNameEx";
-  case 0x0202: return "__unDNameHelper";
-  case 0x010e: return "__uncaught_exception";
-  case 0x0203: return "__unguarded_readlc_active";
-  case 0x0204: return "__vswprintf_l";
-  case 0x0205: return "__wargv";
-  case 0x0206: return "__wcserror";
-  case 0x0207: return "__wcserror_s";
-  case 0x0208: return "__wcsncnt";
-  case 0x0209: return "__wgetmainargs";
-  case 0x020a: return "__winitenv";
-  case 0x020b: return "_abnormal_termination";
-  case 0x020c: return "_abs64";
-  case 0x020d: return "_access";
-  case 0x020e: return "_access_s";
-  case 0x020f: return "_acmdln";
-  case 0x0210: return "_aligned_free";
-  case 0x0211: return "_aligned_malloc";
-  case 0x0212: return "_aligned_msize";
-  case 0x0213: return "_aligned_offset_malloc";
-  case 0x0214: return "_aligned_offset_realloc";
-  case 0x0215: return "_aligned_offset_recalloc";
-  case 0x0216: return "_aligned_realloc";
-  case 0x0217: return "_aligned_recalloc";
-  case 0x0218: return "_amsg_exit";
-  case 0x0219: return "_assert";
-  case 0x021a: return "_atodbl";
-  case 0x021b: return "_atodbl_l";
-  case 0x021c: return "_atof_l";
-  case 0x021d: return "_atoflt";
-  case 0x021e: return "_atoflt_l";
-  case 0x021f: return "_atoi64";
-  case 0x0220: return "_atoi64_l";
-  case 0x0221: return "_atoi_l";
-  case 0x0222: return "_atol_l";
-  case 0x0223: return "_atoldbl";
-  case 0x0224: return "_atoldbl_l";
-  case 0x0225: return "_atoll_l";
-  case 0x0226: return "_beep";
-  case 0x0227: return "_beginthread";
-  case 0x0228: return "_beginthreadex";
-  case 0x0229: return "_byteswap_uint64";
-  case 0x022a: return "_byteswap_ulong";
-  case 0x022b: return "_byteswap_ushort";
-  case 0x022c: return "_c_exit";
-  case 0x022d: return "_cabs";
-  case 0x022e: return "_callnewh";
-  case 0x022f: return "_calloc_crt";
-  case 0x0230: return "_cexit";
-  case 0x0231: return "_cgets";
-  case 0x0232: return "_cgets_s";
-  case 0x0233: return "_cgetws";
-  case 0x0234: return "_cgetws_s";
-  case 0x0235: return "_chdir";
-  case 0x0236: return "_chdrive";
-  case 0x0237: return "_chgsign";
-  case 0x0238: return "_chgsignf";
-  case 0x0239: return "_chkesp";
-  case 0x023a: return "_chmod";
-  case 0x023b: return "_chsize";
-  case 0x023c: return "_chsize_s";
-  case 0x023d: return "_clearfp";
-  case 0x023e: return "_close";
-  case 0x023f: return "_commit";
-  case 0x0240: return "_commode";
-  case 0x0241: return "_configthreadlocale";
-  case 0x0242: return "_control87";
-  case 0x0243: return "_controlfp";
-  case 0x0244: return "_controlfp_s";
-  case 0x0245: return "_copysign";
-  case 0x0246: return "_copysignf";
-  case 0x0247: return "_cprintf";
-  case 0x0248: return "_cprintf_l";
-  case 0x0249: return "_cprintf_p";
-  case 0x024a: return "_cprintf_p_l";
-  case 0x024b: return "_cprintf_s";
-  case 0x024c: return "_cprintf_s_l";
-  case 0x024d: return "_cputs";
-  case 0x024e: return "_cputws";
-  case 0x024f: return "_creat";
-  case 0x0250: return "_create_locale";
-  case 0x0251: return "_crt_debugger_hook";
-  case 0x0252: return "_cscanf";
-  case 0x0253: return "_cscanf_l";
-  case 0x0254: return "_cscanf_s";
-  case 0x0255: return "_cscanf_s_l";
-  case 0x0256: return "_ctime32";
-  case 0x0257: return "_ctime32_s";
-  case 0x0258: return "_ctime64";
-  case 0x0259: return "_ctime64_s";
-  case 0x025a: return "_cwait";
-  case 0x025b: return "_cwprintf";
-  case 0x025c: return "_cwprintf_l";
-  case 0x025d: return "_cwprintf_p";
-  case 0x025e: return "_cwprintf_p_l";
-  case 0x025f: return "_cwprintf_s";
-  case 0x0260: return "_cwprintf_s_l";
-  case 0x0261: return "_cwscanf";
-  case 0x0262: return "_cwscanf_l";
-  case 0x0263: return "_cwscanf_s";
-  case 0x0264: return "_cwscanf_s_l";
-  case 0x0265: return "_daylight";
-  case 0x0266: return "_dclass";
-  case 0x0267: return "_difftime32";
-  case 0x0268: return "_difftime64";
-  case 0x0269: return "_dosmaperr";
-  case 0x026a: return "_dpcomp";
-  case 0x026b: return "_dsign";
-  case 0x026c: return "_dstbias";
-  case 0x026d: return "_dtest";
-  case 0x026e: return "_dup";
-  case 0x026f: return "_dup2";
-  case 0x0270: return "_dupenv_s";
-  case 0x0271: return "_ecvt";
-  case 0x0272: return "_ecvt_s";
-  case 0x0273: return "_endthread";
-  case 0x0274: return "_endthreadex";
-  case 0x0275: return "_environ";
-  case 0x0276: return "_eof";
-  case 0x0277: return "_errno";
-  case 0x0278: return "_except1";
-  case 0x0279: return "_except_handler2";
-  case 0x027a: return "_except_handler3";
-  case 0x027b: return "_except_handler4_common";
-  case 0x027c: return "_execl";
-  case 0x027d: return "_execle";
-  case 0x027e: return "_execlp";
-  case 0x027f: return "_execlpe";
-  case 0x0280: return "_execv";
-  case 0x0281: return "_execve";
-  case 0x0282: return "_execvp";
-  case 0x0283: return "_execvpe";
-  case 0x0284: return "_exit";
-  case 0x0285: return "_expand";
-  case 0x0286: return "_fclose_nolock";
-  case 0x0287: return "_fcloseall";
-  case 0x0288: return "_fcvt";
-  case 0x0289: return "_fcvt_s";
-  case 0x028a: return "_fdclass";
-  case 0x028b: return "_fdopen";
-  case 0x028c: return "_fdpcomp";
-  case 0x028d: return "_fdsign";
-  case 0x028e: return "_fdtest";
-  case 0x028f: return "_fflush_nolock";
-  case 0x0290: return "_fgetchar";
-  case 0x0291: return "_fgetwc_nolock";
-  case 0x0292: return "_fgetwchar";
-  case 0x0293: return "_filbuf";
-  case 0x0294: return "_filelength";
-  case 0x0295: return "_filelengthi64";
-  case 0x0296: return "_fileno";
-  case 0x0297: return "_findclose";
-  case 0x0298: return "_findfirst32";
-  case 0x0299: return "_findfirst32i64";
-  case 0x029a: return "_findfirst64";
-  case 0x029b: return "_findfirst64i32";
-  case 0x029c: return "_findnext32";
-  case 0x029d: return "_findnext32i64";
-  case 0x029e: return "_findnext64";
-  case 0x029f: return "_findnext64i32";
-  case 0x02a0: return "_finite";
-  case 0x02a1: return "_flsbuf";
-  case 0x02a2: return "_flushall";
-  case 0x02a3: return "_fmode";
-  case 0x02a4: return "_fpclass";
-  case 0x02a5: return "_fpieee_flt";
-  case 0x02a6: return "_fpreset";
-  case 0x02a7: return "_fprintf_l";
-  case 0x02a8: return "_fprintf_p";
-  case 0x02a9: return "_fprintf_p_l";
-  case 0x02aa: return "_fprintf_s_l";
-  case 0x02ab: return "_fputchar";
-  case 0x02ac: return "_fputwc_nolock";
-  case 0x02ad: return "_fputwchar";
-  case 0x02ae: return "_fread_nolock";
-  case 0x02af: return "_fread_nolock_s";
-  case 0x02b0: return "_free_locale";
-  case 0x02b1: return "_freea";
-  case 0x02b2: return "_freea_s";
-  case 0x02b3: return "_freefls";
-  case 0x02b4: return "_fscanf_l";
-  case 0x02b5: return "_fscanf_s_l";
-  case 0x02b6: return "_fseek_nolock";
-  case 0x02b7: return "_fseeki64";
-  case 0x02b8: return "_fseeki64_nolock";
-  case 0x02b9: return "_fsopen";
-  case 0x02ba: return "_fstat32";
-  case 0x02bb: return "_fstat32i64";
-  case 0x02bc: return "_fstat64";
-  case 0x02bd: return "_fstat64i32";
-  case 0x02be: return "_ftell_nolock";
-  case 0x02bf: return "_ftelli64";
-  case 0x02c0: return "_ftelli64_nolock";
-  case 0x02c1: return "_ftime32";
-  case 0x02c2: return "_ftime32_s";
-  case 0x02c3: return "_ftime64";
-  case 0x02c4: return "_ftime64_s";
-  case 0x02c5: return "_ftol";
-  case 0x02c6: return "_fullpath";
-  case 0x02c7: return "_futime32";
-  case 0x02c8: return "_futime64";
-  case 0x02c9: return "_fwprintf_l";
-  case 0x02ca: return "_fwprintf_p";
-  case 0x02cb: return "_fwprintf_p_l";
-  case 0x02cc: return "_fwprintf_s_l";
-  case 0x02cd: return "_fwrite_nolock";
-  case 0x02ce: return "_fwscanf_l";
-  case 0x02cf: return "_fwscanf_s_l";
-  case 0x02d0: return "_gcvt";
-  case 0x02d1: return "_gcvt_s";
-  case 0x02d2: return "_get_current_locale";
-  case 0x02d3: return "_get_daylight";
-  case 0x02d4: return "_get_doserrno";
-  case 0x02d5: return "_get_dstbias";
-  case 0x02d6: return "_get_errno";
-  case 0x02d7: return "_get_fmode";
-  case 0x02d8: return "_get_heap_handle";
-  case 0x02d9: return "_get_invalid_parameter_handler";
-  case 0x02da: return "_get_osfhandle";
-  case 0x02db: return "_get_output_format";
-  case 0x02dc: return "_get_pgmptr";
-  case 0x02dd: return "_get_printf_count_output";
-  case 0x02de: return "_get_purecall_handler";
-  case 0x02df: return "_get_terminate";
-  case 0x02e0: return "_get_timezone";
-  case 0x02e1: return "_get_tzname";
-  case 0x02e2: return "_get_unexpected";
-  case 0x02e3: return "_get_wpgmptr";
-  case 0x02e4: return "_getc_nolock";
-  case 0x02e5: return "_getch";
-  case 0x02e6: return "_getch_nolock";
-  case 0x02e7: return "_getche";
-  case 0x02e8: return "_getche_nolock";
-  case 0x02e9: return "_getcwd";
-  case 0x02ea: return "_getdcwd";
-  case 0x02eb: return "_getdiskfree";
-  case 0x02ec: return "_getdllprocaddr";
-  case 0x02ed: return "_getdrive";
-  case 0x02ee: return "_getdrives";
-  case 0x02ef: return "_getmaxstdio";
-  case 0x02f0: return "_getmbcp";
-  case 0x02f1: return "_getpid";
-  case 0x02f2: return "_getptd";
-  case 0x02f3: return "_getsystime";
-  case 0x02f4: return "_getw";
-  case 0x02f5: return "_getwch";
-  case 0x02f6: return "_getwch_nolock";
-  case 0x02f7: return "_getwche";
-  case 0x02f8: return "_getwche_nolock";
-  case 0x02f9: return "_getws";
-  case 0x02fa: return "_getws_s";
-  case 0x02fb: return "_global_unwind2";
-  case 0x02fc: return "_gmtime32";
-  case 0x02fd: return "_gmtime32_s";
-  case 0x02fe: return "_gmtime64";
-  case 0x02ff: return "_gmtime64_s";
-  case 0x0300: return "_heapadd";
-  case 0x0301: return "_heapchk";
-  case 0x0302: return "_heapmin";
-  case 0x0303: return "_heapset";
-  case 0x0304: return "_heapused";
-  case 0x0305: return "_heapwalk";
-  case 0x0306: return "_hypot";
-  case 0x0307: return "_hypotf";
-  case 0x0308: return "_i64toa";
-  case 0x0309: return "_i64toa_s";
-  case 0x030a: return "_i64tow";
-  case 0x030b: return "_i64tow_s";
-  case 0x030c: return "_initptd";
-  case 0x030d: return "_initterm";
-  case 0x030e: return "_initterm_e";
-  case 0x030f: return "_inp";
-  case 0x0310: return "_inpd";
-  case 0x0311: return "_inpw";
-  case 0x0312: return "_invalid_parameter";
-  case 0x0313: return "_invalid_parameter_noinfo";
-  case 0x0314: return "_invalid_parameter_noinfo_noreturn";
-  case 0x0315: return "_invoke_watson";
-  case 0x0316: return "_iob";
-  case 0x0317: return "_isalnum_l";
-  case 0x0318: return "_isalpha_l";
-  case 0x0319: return "_isatty";
-  case 0x031a: return "_isblank_l";
-  case 0x031b: return "_iscntrl_l";
-  case 0x031c: return "_isctype";
-  case 0x031d: return "_isctype_l";
-  case 0x031e: return "_isdigit_l";
-  case 0x031f: return "_isgraph_l";
-  case 0x0320: return "_isleadbyte_l";
-  case 0x0321: return "_islower_l";
-  case 0x0322: return "_ismbbalnum";
-  case 0x0323: return "_ismbbalnum_l";
-  case 0x0324: return "_ismbbalpha";
-  case 0x0325: return "_ismbbalpha_l";
-  case 0x0326: return "_ismbbblank";
-  case 0x0327: return "_ismbbblank_l";
-  case 0x0328: return "_ismbbgraph";
-  case 0x0329: return "_ismbbgraph_l";
-  case 0x032a: return "_ismbbkalnum";
-  case 0x032b: return "_ismbbkalnum_l";
-  case 0x032c: return "_ismbbkana";
-  case 0x032d: return "_ismbbkana_l";
-  case 0x032e: return "_ismbbkprint";
-  case 0x032f: return "_ismbbkprint_l";
-  case 0x0330: return "_ismbbkpunct";
-  case 0x0331: return "_ismbbkpunct_l";
-  case 0x0332: return "_ismbblead";
-  case 0x0333: return "_ismbblead_l";
-  case 0x0334: return "_ismbbprint";
-  case 0x0335: return "_ismbbprint_l";
-  case 0x0336: return "_ismbbpunct";
-  case 0x0337: return "_ismbbpunct_l";
-  case 0x0338: return "_ismbbtrail";
-  case 0x0339: return "_ismbbtrail_l";
-  case 0x033a: return "_ismbcalnum";
-  case 0x033b: return "_ismbcalnum_l";
-  case 0x033c: return "_ismbcalpha";
-  case 0x033d: return "_ismbcalpha_l";
-  case 0x033e: return "_ismbcblank";
-  case 0x033f: return "_ismbcblank_l";
-  case 0x0340: return "_ismbcdigit";
-  case 0x0341: return "_ismbcdigit_l";
-  case 0x0342: return "_ismbcgraph";
-  case 0x0343: return "_ismbcgraph_l";
-  case 0x0344: return "_ismbchira";
-  case 0x0345: return "_ismbchira_l";
-  case 0x0346: return "_ismbckata";
-  case 0x0347: return "_ismbckata_l";
-  case 0x0348: return "_ismbcl0";
-  case 0x0349: return "_ismbcl0_l";
-  case 0x034a: return "_ismbcl1";
-  case 0x034b: return "_ismbcl1_l";
-  case 0x034c: return "_ismbcl2";
-  case 0x034d: return "_ismbcl2_l";
-  case 0x034e: return "_ismbclegal";
-  case 0x034f: return "_ismbclegal_l";
-  case 0x0350: return "_ismbclower";
-  case 0x0351: return "_ismbclower_l";
-  case 0x0352: return "_ismbcprint";
-  case 0x0353: return "_ismbcprint_l";
-  case 0x0354: return "_ismbcpunct";
-  case 0x0355: return "_ismbcpunct_l";
-  case 0x0356: return "_ismbcspace";
-  case 0x0357: return "_ismbcspace_l";
-  case 0x0358: return "_ismbcsymbol";
-  case 0x0359: return "_ismbcsymbol_l";
-  case 0x035a: return "_ismbcupper";
-  case 0x035b: return "_ismbcupper_l";
-  case 0x035c: return "_ismbslead";
-  case 0x035d: return "_ismbslead_l";
-  case 0x035e: return "_ismbstrail";
-  case 0x035f: return "_ismbstrail_l";
-  case 0x0360: return "_isnan";
-  case 0x0361: return "_isprint_l";
-  case 0x0362: return "_ispunct_l";
-  case 0x0363: return "_isspace_l";
-  case 0x0364: return "_isupper_l";
-  case 0x0365: return "_iswalnum_l";
-  case 0x0366: return "_iswalpha_l";
-  case 0x0367: return "_iswblank_l";
-  case 0x0368: return "_iswcntrl_l";
-  case 0x0369: return "_iswcsym_l";
-  case 0x036a: return "_iswcsymf_l";
-  case 0x036b: return "_iswctype_l";
-  case 0x036c: return "_iswdigit_l";
-  case 0x036d: return "_iswgraph_l";
-  case 0x036e: return "_iswlower_l";
-  case 0x036f: return "_iswprint_l";
-  case 0x0370: return "_iswpunct_l";
-  case 0x0371: return "_iswspace_l";
-  case 0x0372: return "_iswupper_l";
-  case 0x0373: return "_iswxdigit_l";
-  case 0x0374: return "_isxdigit_l";
-  case 0x0375: return "_itoa";
-  case 0x0376: return "_itoa_s";
-  case 0x0377: return "_itow";
-  case 0x0378: return "_itow_s";
-  case 0x0379: return "_j0";
-  case 0x037a: return "_j1";
-  case 0x037b: return "_jn";
-  case 0x037c: return "_kbhit";
-  case 0x037d: return "_ldclass";
-  case 0x037e: return "_ldpcomp";
-  case 0x037f: return "_ldsign";
-  case 0x0380: return "_ldtest";
-  case 0x0381: return "_lfind";
-  case 0x0382: return "_lfind_s";
-  case 0x0383: return "_libm_sse2_acos_precise";
-  case 0x0384: return "_libm_sse2_asin_precise";
-  case 0x0385: return "_libm_sse2_atan_precise";
-  case 0x0386: return "_libm_sse2_cos_precise";
-  case 0x0387: return "_libm_sse2_exp_precise";
-  case 0x0388: return "_libm_sse2_log10_precise";
-  case 0x0389: return "_libm_sse2_log_precise";
-  case 0x038a: return "_libm_sse2_pow_precise";
-  case 0x038b: return "_libm_sse2_sin_precise";
-  case 0x038c: return "_libm_sse2_sqrt_precise";
-  case 0x038d: return "_libm_sse2_tan_precise";
-  case 0x038e: return "_loaddll";
-  case 0x038f: return "_local_unwind2";
-  case 0x0390: return "_local_unwind4";
-  case 0x0391: return "_localtime32";
-  case 0x0392: return "_localtime32_s";
-  case 0x0393: return "_localtime64";
-  case 0x0394: return "_localtime64_s";
-  case 0x0395: return "_lock";
-  case 0x0396: return "_lock_file";
-  case 0x0397: return "_locking";
-  case 0x0398: return "_logb";
-  case 0x0399: return "_longjmpex";
-  case 0x039a: return "_lrotl";
-  case 0x039b: return "_lrotr";
-  case 0x039c: return "_lsearch";
-  case 0x039d: return "_lsearch_s";
-  case 0x039e: return "_lseek";
-  case 0x039f: return "_lseeki64";
-  case 0x03a0: return "_ltoa";
-  case 0x03a1: return "_ltoa_s";
-  case 0x03a2: return "_ltow";
-  case 0x03a3: return "_ltow_s";
-  case 0x03a4: return "_makepath";
-  case 0x03a5: return "_makepath_s";
-  case 0x03a6: return "_malloc_crt";
-  case 0x03a7: return "_mbbtombc";
-  case 0x03a8: return "_mbbtombc_l";
-  case 0x03a9: return "_mbbtype";
-  case 0x03aa: return "_mbbtype_l";
-  case 0x03ab: return "_mbcasemap";
-  case 0x03ac: return "_mbccpy";
-  case 0x03ad: return "_mbccpy_l";
-  case 0x03ae: return "_mbccpy_s";
-  case 0x03af: return "_mbccpy_s_l";
-  case 0x03b0: return "_mbcjistojms";
-  case 0x03b1: return "_mbcjistojms_l";
-  case 0x03b2: return "_mbcjmstojis";
-  case 0x03b3: return "_mbcjmstojis_l";
-  case 0x03b4: return "_mbclen";
-  case 0x03b5: return "_mbclen_l";
-  case 0x03b6: return "_mbctohira";
-  case 0x03b7: return "_mbctohira_l";
-  case 0x03b8: return "_mbctokata";
-  case 0x03b9: return "_mbctokata_l";
-  case 0x03ba: return "_mbctolower";
-  case 0x03bb: return "_mbctolower_l";
-  case 0x03bc: return "_mbctombb";
-  case 0x03bd: return "_mbctombb_l";
-  case 0x03be: return "_mbctoupper";
-  case 0x03bf: return "_mbctoupper_l";
-  case 0x03c0: return "_mbctype";
-  case 0x03c1: return "_mblen_l";
-  case 0x03c2: return "_mbsbtype";
-  case 0x03c3: return "_mbsbtype_l";
-  case 0x03c4: return "_mbscat_s";
-  case 0x03c5: return "_mbscat_s_l";
-  case 0x03c6: return "_mbschr";
-  case 0x03c7: return "_mbschr_l";
-  case 0x03c8: return "_mbscmp";
-  case 0x03c9: return "_mbscmp_l";
-  case 0x03ca: return "_mbscoll";
-  case 0x03cb: return "_mbscoll_l";
-  case 0x03cc: return "_mbscpy_s";
-  case 0x03cd: return "_mbscpy_s_l";
-  case 0x03ce: return "_mbscspn";
-  case 0x03cf: return "_mbscspn_l";
-  case 0x03d0: return "_mbsdec";
-  case 0x03d1: return "_mbsdec_l";
-  case 0x03d2: return "_mbsicmp";
-  case 0x03d3: return "_mbsicmp_l";
-  case 0x03d4: return "_mbsicoll";
-  case 0x03d5: return "_mbsicoll_l";
-  case 0x03d6: return "_mbsinc";
-  case 0x03d7: return "_mbsinc_l";
-  case 0x03d8: return "_mbslen";
-  case 0x03d9: return "_mbslen_l";
-  case 0x03da: return "_mbslwr";
-  case 0x03db: return "_mbslwr_l";
-  case 0x03dc: return "_mbslwr_s";
-  case 0x03dd: return "_mbslwr_s_l";
-  case 0x03de: return "_mbsnbcat";
-  case 0x03df: return "_mbsnbcat_l";
-  case 0x03e0: return "_mbsnbcat_s";
-  case 0x03e1: return "_mbsnbcat_s_l";
-  case 0x03e2: return "_mbsnbcmp";
-  case 0x03e3: return "_mbsnbcmp_l";
-  case 0x03e4: return "_mbsnbcnt";
-  case 0x03e5: return "_mbsnbcnt_l";
-  case 0x03e6: return "_mbsnbcoll";
-  case 0x03e7: return "_mbsnbcoll_l";
-  case 0x03e8: return "_mbsnbcpy";
-  case 0x03e9: return "_mbsnbcpy_l";
-  case 0x03ea: return "_mbsnbcpy_s";
-  case 0x03eb: return "_mbsnbcpy_s_l";
-  case 0x03ec: return "_mbsnbicmp";
-  case 0x03ed: return "_mbsnbicmp_l";
-  case 0x03ee: return "_mbsnbicoll";
-  case 0x03ef: return "_mbsnbicoll_l";
-  case 0x03f0: return "_mbsnbset";
-  case 0x03f1: return "_mbsnbset_l";
-  case 0x03f2: return "_mbsnbset_s";
-  case 0x03f3: return "_mbsnbset_s_l";
-  case 0x03f4: return "_mbsncat";
-  case 0x03f5: return "_mbsncat_l";
-  case 0x03f6: return "_mbsncat_s";
-  case 0x03f7: return "_mbsncat_s_l";
-  case 0x03f8: return "_mbsnccnt";
-  case 0x03f9: return "_mbsnccnt_l";
-  case 0x03fa: return "_mbsncmp";
-  case 0x03fb: return "_mbsncmp_l";
-  case 0x03fc: return "_mbsncoll";
-  case 0x03fd: return "_mbsncoll_l";
-  case 0x03fe: return "_mbsncpy";
-  case 0x03ff: return "_mbsncpy_l";
-  case 0x0400: return "_mbsncpy_s";
-  case 0x0401: return "_mbsncpy_s_l";
-  case 0x0402: return "_mbsnextc";
-  case 0x0403: return "_mbsnextc_l";
-  case 0x0404: return "_mbsnicmp";
-  case 0x0405: return "_mbsnicmp_l";
-  case 0x0406: return "_mbsnicoll";
-  case 0x0407: return "_mbsnicoll_l";
-  case 0x0408: return "_mbsninc";
-  case 0x0409: return "_mbsninc_l";
-  case 0x040a: return "_mbsnlen";
-  case 0x040b: return "_mbsnlen_l";
-  case 0x040c: return "_mbsnset";
-  case 0x040d: return "_mbsnset_l";
-  case 0x040e: return "_mbsnset_s";
-  case 0x040f: return "_mbsnset_s_l";
-  case 0x0410: return "_mbspbrk";
-  case 0x0411: return "_mbspbrk_l";
-  case 0x0412: return "_mbsrchr";
-  case 0x0413: return "_mbsrchr_l";
-  case 0x0414: return "_mbsrev";
-  case 0x0415: return "_mbsrev_l";
-  case 0x0416: return "_mbsset";
-  case 0x0417: return "_mbsset_l";
-  case 0x0418: return "_mbsset_s";
-  case 0x0419: return "_mbsset_s_l";
-  case 0x041a: return "_mbsspn";
-  case 0x041b: return "_mbsspn_l";
-  case 0x041c: return "_mbsspnp";
-  case 0x041d: return "_mbsspnp_l";
-  case 0x041e: return "_mbsstr";
-  case 0x041f: return "_mbsstr_l";
-  case 0x0420: return "_mbstok";
-  case 0x0421: return "_mbstok_l";
-  case 0x0422: return "_mbstok_s";
-  case 0x0423: return "_mbstok_s_l";
-  case 0x0424: return "_mbstowcs_l";
-  case 0x0425: return "_mbstowcs_s_l";
-  case 0x0426: return "_mbstrlen";
-  case 0x0427: return "_mbstrlen_l";
-  case 0x0428: return "_mbstrnlen";
-  case 0x0429: return "_mbstrnlen_l";
-  case 0x042a: return "_mbsupr";
-  case 0x042b: return "_mbsupr_l";
-  case 0x042c: return "_mbsupr_s";
-  case 0x042d: return "_mbsupr_s_l";
-  case 0x042e: return "_mbtowc_l";
-  case 0x042f: return "_memccpy";
-  case 0x0430: return "_memicmp";
-  case 0x0431: return "_memicmp_l";
-  case 0x0432: return "_mkdir";
-  case 0x0433: return "_mkgmtime32";
-  case 0x0434: return "_mkgmtime64";
-  case 0x0435: return "_mktemp";
-  case 0x0436: return "_mktemp_s";
-  case 0x0437: return "_mktime32";
-  case 0x0438: return "_mktime64";
-  case 0x0439: return "_msize";
-  case 0x043a: return "_nextafter";
-  case 0x043b: return "_onexit";
-  case 0x043c: return "_open";
-  case 0x043d: return "_open_osfhandle";
-  case 0x043e: return "_outp";
-  case 0x043f: return "_outpd";
-  case 0x0440: return "_outpw";
-  case 0x0441: return "_pclose";
-  case 0x0442: return "_pctype";
-  case 0x0443: return "_pgmptr";
-  case 0x0444: return "_pipe";
-  case 0x0445: return "_popen";
-  case 0x0446: return "_printf_l";
-  case 0x0447: return "_printf_p";
-  case 0x0448: return "_printf_p_l";
-  case 0x0449: return "_printf_s_l";
-  case 0x044a: return "_purecall";
-  case 0x044b: return "_putch";
-  case 0x044c: return "_putch_nolock";
-  case 0x044d: return "_putenv";
-  case 0x044e: return "_putenv_s";
-  case 0x044f: return "_putw";
-  case 0x0450: return "_putwch";
-  case 0x0451: return "_putwch_nolock";
-  case 0x0452: return "_putws";
-  case 0x0453: return "_pwctype";
-  case 0x0454: return "_read";
-  case 0x0455: return "_realloc_crt";
-  case 0x0456: return "_recalloc";
-  case 0x0457: return "_recalloc_crt";
-  case 0x0458: return "_resetstkoflw";
-  case 0x0459: return "_rmdir";
-  case 0x045a: return "_rmtmp";
-  case 0x045b: return "_rotl";
-  case 0x045c: return "_rotl64";
-  case 0x045d: return "_rotr";
-  case 0x045e: return "_rotr64";
-  case 0x045f: return "_scalb";
-  case 0x0460: return "_scanf_l";
-  case 0x0461: return "_scanf_s_l";
-  case 0x0462: return "_scprintf";
-  case 0x0463: return "_scprintf_l";
-  case 0x0464: return "_scprintf_p";
-  case 0x0465: return "_scprintf_p_l";
-  case 0x0466: return "_scwprintf";
-  case 0x0467: return "_scwprintf_l";
-  case 0x0468: return "_scwprintf_p";
-  case 0x0469: return "_scwprintf_p_l";
-  case 0x046a: return "_searchenv";
-  case 0x046b: return "_searchenv_s";
-  case 0x046d: return "_seh_longjmp_unwind";
-  case 0x046c: return "_seh_longjmp_unwind4";
-  case 0x046e: return "_set_SSE2_enable";
-  case 0x046f: return "_set_abort_behavior";
-  case 0x0470: return "_set_controlfp";
-  case 0x0471: return "_set_doserrno";
-  case 0x0472: return "_set_errno";
-  case 0x0473: return "_set_error_mode";
-  case 0x0474: return "_set_fmode";
-  case 0x0475: return "_set_invalid_parameter_handler";
-  case 0x0476: return "_set_malloc_crt_max_wait";
-  case 0x0477: return "_set_output_format";
-  case 0x0478: return "_set_printf_count_output";
-  case 0x0479: return "_set_purecall_handler";
-  case 0x047a: return "_seterrormode";
-  case 0x047b: return "_setjmp";
-  case 0x047c: return "_setjmp3";
-  case 0x047d: return "_setmaxstdio";
-  case 0x047e: return "_setmbcp";
-  case 0x047f: return "_setmode";
-  case 0x0480: return "_setsystime";
-  case 0x0481: return "_sleep";
-  case 0x0482: return "_snprintf";
-  case 0x0483: return "_snprintf_c";
-  case 0x0484: return "_snprintf_c_l";
-  case 0x0485: return "_snprintf_l";
-  case 0x0486: return "_snprintf_s";
-  case 0x0487: return "_snprintf_s_l";
-  case 0x0488: return "_snscanf";
-  case 0x0489: return "_snscanf_l";
-  case 0x048a: return "_snscanf_s";
-  case 0x048b: return "_snscanf_s_l";
-  case 0x048c: return "_snwprintf";
-  case 0x048d: return "_snwprintf_l";
-  case 0x048e: return "_snwprintf_s";
-  case 0x048f: return "_snwprintf_s_l";
-  case 0x0490: return "_snwscanf";
-  case 0x0491: return "_snwscanf_l";
-  case 0x0492: return "_snwscanf_s";
-  case 0x0493: return "_snwscanf_s_l";
-  case 0x0494: return "_sopen";
-  case 0x0495: return "_sopen_s";
-  case 0x0496: return "_spawnl";
-  case 0x0497: return "_spawnle";
-  case 0x0498: return "_spawnlp";
-  case 0x0499: return "_spawnlpe";
-  case 0x049a: return "_spawnv";
-  case 0x049b: return "_spawnve";
-  case 0x049c: return "_spawnvp";
-  case 0x049d: return "_spawnvpe";
-  case 0x049e: return "_splitpath";
-  case 0x049f: return "_splitpath_s";
-  case 0x04a0: return "_sprintf_l";
-  case 0x04a1: return "_sprintf_p";
-  case 0x04a2: return "_sprintf_p_l";
-  case 0x04a3: return "_sprintf_s_l";
-  case 0x04a4: return "_sscanf_l";
-  case 0x04a5: return "_sscanf_s_l";
-  case 0x04a6: return "_stat32";
-  case 0x04a7: return "_stat32i64";
-  case 0x04a8: return "_stat64";
-  case 0x04a9: return "_stat64i32";
-  case 0x04aa: return "_statusfp";
-  case 0x04ab: return "_statusfp2";
-  case 0x04ac: return "_strcoll_l";
-  case 0x04ad: return "_strdate";
-  case 0x04ae: return "_strdate_s";
-  case 0x04af: return "_strdup";
-  case 0x04b0: return "_strerror";
-  case 0x04b1: return "_strerror_s";
-  case 0x04b2: return "_strftime_l";
-  case 0x04b3: return "_stricmp";
-  case 0x04b4: return "_stricmp_l";
-  case 0x04b5: return "_stricoll";
-  case 0x04b6: return "_stricoll_l";
-  case 0x04b7: return "_strlwr";
-  case 0x04b8: return "_strlwr_l";
-  case 0x04b9: return "_strlwr_s";
-  case 0x04ba: return "_strlwr_s_l";
-  case 0x04bb: return "_strncoll";
-  case 0x04bc: return "_strncoll_l";
-  case 0x04bd: return "_strnicmp";
-  case 0x04be: return "_strnicmp_l";
-  case 0x04bf: return "_strnicoll";
-  case 0x04c0: return "_strnicoll_l";
-  case 0x04c1: return "_strnset";
-  case 0x04c2: return "_strnset_s";
-  case 0x04c3: return "_strrev";
-  case 0x04c4: return "_strset";
-  case 0x04c5: return "_strset_s";
-  case 0x04c6: return "_strtime";
-  case 0x04c7: return "_strtime_s";
-  case 0x04c8: return "_strtod_l";
-  case 0x04c9: return "_strtof_l";
-  case 0x04ca: return "_strtoi64";
-  case 0x04cb: return "_strtoi64_l";
-  case 0x04cc: return "_strtoimax_l";
-  case 0x04cd: return "_strtol_l";
-  case 0x04ce: return "_strtold_l";
-  case 0x04cf: return "_strtoll_l";
-  case 0x04d0: return "_strtoui64";
-  case 0x04d1: return "_strtoui64_l";
-  case 0x04d2: return "_strtoul_l";
-  case 0x04d3: return "_strtoull_l";
-  case 0x04d4: return "_strtoumax_l";
-  case 0x04d5: return "_strupr";
-  case 0x04d6: return "_strupr_l";
-  case 0x04d7: return "_strupr_s";
-  case 0x04d8: return "_strupr_s_l";
-  case 0x04d9: return "_strxfrm_l";
-  case 0x04da: return "_swab";
-  case 0x04db: return "_swprintf";
-  case 0x04dc: return "_swprintf_c";
-  case 0x04dd: return "_swprintf_c_l";
-  case 0x04de: return "_swprintf_p";
-  case 0x04df: return "_swprintf_p_l";
-  case 0x04e0: return "_swprintf_s_l";
-  case 0x04e1: return "_swscanf_l";
-  case 0x04e2: return "_swscanf_s_l";
-  case 0x04e3: return "_sys_errlist";
-  case 0x04e4: return "_sys_nerr";
-  case 0x04e5: return "_tell";
-  case 0x04e6: return "_telli64";
-  case 0x04e7: return "_tempnam";
-  case 0x04e8: return "_time32";
-  case 0x04e9: return "_time64";
-  case 0x04ea: return "_timezone";
-  case 0x04eb: return "_tolower";
-  case 0x04ec: return "_tolower_l";
-  case 0x04ed: return "_toupper";
-  case 0x04ee: return "_toupper_l";
-  case 0x04ef: return "_towlower_l";
-  case 0x04f0: return "_towupper_l";
-  case 0x04f1: return "_tzname";
-  case 0x04f2: return "_tzset";
-  case 0x04f3: return "_ui64toa";
-  case 0x04f4: return "_ui64toa_s";
-  case 0x04f5: return "_ui64tow";
-  case 0x04f6: return "_ui64tow_s";
-  case 0x04f7: return "_ultoa";
-  case 0x04f8: return "_ultoa_s";
-  case 0x04f9: return "_ultow";
-  case 0x04fa: return "_ultow_s";
-  case 0x04fb: return "_umask";
-  case 0x04fc: return "_umask_s";
-  case 0x04fd: return "_ungetc_nolock";
-  case 0x04fe: return "_ungetch";
-  case 0x04ff: return "_ungetch_nolock";
-  case 0x0500: return "_ungetwc_nolock";
-  case 0x0501: return "_ungetwch";
-  case 0x0502: return "_ungetwch_nolock";
-  case 0x0503: return "_unlink";
-  case 0x0504: return "_unloaddll";
-  case 0x0505: return "_unlock";
-  case 0x0506: return "_unlock_file";
-  case 0x0507: return "_utime32";
-  case 0x0508: return "_utime64";
-  case 0x0509: return "_vacopy";
-  case 0x050a: return "_vcprintf";
-  case 0x050b: return "_vcprintf_l";
-  case 0x050c: return "_vcprintf_p";
-  case 0x050d: return "_vcprintf_p_l";
-  case 0x050e: return "_vcprintf_s";
-  case 0x050f: return "_vcprintf_s_l";
-  case 0x0510: return "_vcwprintf";
-  case 0x0511: return "_vcwprintf_l";
-  case 0x0512: return "_vcwprintf_p";
-  case 0x0513: return "_vcwprintf_p_l";
-  case 0x0514: return "_vcwprintf_s";
-  case 0x0515: return "_vcwprintf_s_l";
-  case 0x0516: return "_vfprintf_l";
-  case 0x0517: return "_vfprintf_p";
-  case 0x0518: return "_vfprintf_p_l";
-  case 0x0519: return "_vfprintf_s_l";
-  case 0x051a: return "_vfwprintf_l";
-  case 0x051b: return "_vfwprintf_p";
-  case 0x051c: return "_vfwprintf_p_l";
-  case 0x051d: return "_vfwprintf_s_l";
-  case 0x051e: return "_vprintf_l";
-  case 0x051f: return "_vprintf_p";
-  case 0x0520: return "_vprintf_p_l";
-  case 0x0521: return "_vprintf_s_l";
-  case 0x0522: return "_vscprintf";
-  case 0x0523: return "_vscprintf_l";
-  case 0x0524: return "_vscprintf_p";
-  case 0x0525: return "_vscprintf_p_l";
-  case 0x0526: return "_vscwprintf";
-  case 0x0527: return "_vscwprintf_l";
-  case 0x0528: return "_vscwprintf_p";
-  case 0x0529: return "_vscwprintf_p_l";
-  case 0x052a: return "_vsnprintf";
-  case 0x052b: return "_vsnprintf_c";
-  case 0x052c: return "_vsnprintf_c_l";
-  case 0x052d: return "_vsnprintf_l";
-  case 0x052e: return "_vsnprintf_s";
-  case 0x052f: return "_vsnprintf_s_l";
-  case 0x0530: return "_vsnwprintf";
-  case 0x0531: return "_vsnwprintf_l";
-  case 0x0532: return "_vsnwprintf_s";
-  case 0x0533: return "_vsnwprintf_s_l";
-  case 0x0534: return "_vsprintf_l";
-  case 0x0535: return "_vsprintf_p";
-  case 0x0536: return "_vsprintf_p_l";
-  case 0x0537: return "_vsprintf_s_l";
-  case 0x0538: return "_vswprintf";
-  case 0x0539: return "_vswprintf_c";
-  case 0x053a: return "_vswprintf_c_l";
-  case 0x053b: return "_vswprintf_l";
-  case 0x053c: return "_vswprintf_p";
-  case 0x053d: return "_vswprintf_p_l";
-  case 0x053e: return "_vswprintf_s_l";
-  case 0x053f: return "_vwprintf_l";
-  case 0x0540: return "_vwprintf_p";
-  case 0x0541: return "_vwprintf_p_l";
-  case 0x0542: return "_vwprintf_s_l";
-  case 0x0543: return "_waccess";
-  case 0x0544: return "_waccess_s";
-  case 0x0545: return "_wasctime";
-  case 0x0546: return "_wasctime_s";
-  case 0x0547: return "_wassert";
-  case 0x0548: return "_wchdir";
-  case 0x0549: return "_wchmod";
-  case 0x054a: return "_wcmdln";
-  case 0x054b: return "_wcreat";
-  case 0x054c: return "_wcreate_locale";
-  case 0x054d: return "_wcscoll_l";
-  case 0x054e: return "_wcsdup";
-  case 0x054f: return "_wcserror";
-  case 0x0550: return "_wcserror_s";
-  case 0x0551: return "_wcsftime_l";
-  case 0x0552: return "_wcsicmp";
-  case 0x0553: return "_wcsicmp_l";
-  case 0x0554: return "_wcsicoll";
-  case 0x0555: return "_wcsicoll_l";
-  case 0x0556: return "_wcslwr";
-  case 0x0557: return "_wcslwr_l";
-  case 0x0558: return "_wcslwr_s";
-  case 0x0559: return "_wcslwr_s_l";
-  case 0x055a: return "_wcsncoll";
-  case 0x055b: return "_wcsncoll_l";
-  case 0x055c: return "_wcsnicmp";
-  case 0x055d: return "_wcsnicmp_l";
-  case 0x055e: return "_wcsnicoll";
-  case 0x055f: return "_wcsnicoll_l";
-  case 0x0560: return "_wcsnset";
-  case 0x0561: return "_wcsnset_s";
-  case 0x0562: return "_wcsrev";
-  case 0x0563: return "_wcsset";
-  case 0x0564: return "_wcsset_s";
-  case 0x0565: return "_wcstod_l";
-  case 0x0566: return "_wcstof_l";
-  case 0x0567: return "_wcstoi64";
-  case 0x0568: return "_wcstoi64_l";
-  case 0x0569: return "_wcstoimax_l";
-  case 0x056a: return "_wcstol_l";
-  case 0x056b: return "_wcstold_l";
-  case 0x056c: return "_wcstoll_l";
-  case 0x056d: return "_wcstombs_l";
-  case 0x056e: return "_wcstombs_s_l";
-  case 0x056f: return "_wcstoui64";
-  case 0x0570: return "_wcstoui64_l";
-  case 0x0571: return "_wcstoul_l";
-  case 0x0572: return "_wcstoull_l";
-  case 0x0573: return "_wcstoumax_l";
-  case 0x0574: return "_wcsupr";
-  case 0x0575: return "_wcsupr_l";
-  case 0x0576: return "_wcsupr_s";
-  case 0x0577: return "_wcsupr_s_l";
-  case 0x0578: return "_wcsxfrm_l";
-  case 0x0579: return "_wctime32";
-  case 0x057a: return "_wctime32_s";
-  case 0x057b: return "_wctime64";
-  case 0x057c: return "_wctime64_s";
-  case 0x057d: return "_wctomb_l";
-  case 0x057e: return "_wctomb_s_l";
-  case 0x057f: return "_wctype";
-  case 0x0580: return "_wdupenv_s";
-  case 0x0581: return "_wenviron";
-  case 0x0582: return "_wexecl";
-  case 0x0583: return "_wexecle";
-  case 0x0584: return "_wexeclp";
-  case 0x0585: return "_wexeclpe";
-  case 0x0586: return "_wexecv";
-  case 0x0587: return "_wexecve";
-  case 0x0588: return "_wexecvp";
-  case 0x0589: return "_wexecvpe";
-  case 0x058a: return "_wfdopen";
-  case 0x058b: return "_wfindfirst32";
-  case 0x058c: return "_wfindfirst32i64";
-  case 0x058d: return "_wfindfirst64";
-  case 0x058e: return "_wfindfirst64i32";
-  case 0x058f: return "_wfindnext32";
-  case 0x0590: return "_wfindnext32i64";
-  case 0x0591: return "_wfindnext64";
-  case 0x0592: return "_wfindnext64i32";
-  case 0x0593: return "_wfopen";
-  case 0x0594: return "_wfopen_s";
-  case 0x0595: return "_wfreopen";
-  case 0x0596: return "_wfreopen_s";
-  case 0x0597: return "_wfsopen";
-  case 0x0598: return "_wfullpath";
-  case 0x0599: return "_wgetcwd";
-  case 0x059a: return "_wgetdcwd";
-  case 0x059b: return "_wgetenv";
-  case 0x059c: return "_wgetenv_s";
-  case 0x059d: return "_wmakepath";
-  case 0x059e: return "_wmakepath_s";
-  case 0x059f: return "_wmkdir";
-  case 0x05a0: return "_wmktemp";
-  case 0x05a1: return "_wmktemp_s";
-  case 0x05a2: return "_wopen";
-  case 0x05a3: return "_wperror";
-  case 0x05a4: return "_wpgmptr";
-  case 0x05a5: return "_wpopen";
-  case 0x05a6: return "_wprintf_l";
-  case 0x05a7: return "_wprintf_p";
-  case 0x05a8: return "_wprintf_p_l";
-  case 0x05a9: return "_wprintf_s_l";
-  case 0x05aa: return "_wputenv";
-  case 0x05ab: return "_wputenv_s";
-  case 0x05ac: return "_wremove";
-  case 0x05ad: return "_wrename";
-  case 0x05ae: return "_write";
-  case 0x05af: return "_wrmdir";
-  case 0x05b0: return "_wscanf_l";
-  case 0x05b1: return "_wscanf_s_l";
-  case 0x05b2: return "_wsearchenv";
-  case 0x05b3: return "_wsearchenv_s";
-  case 0x05b4: return "_wsetlocale";
-  case 0x05b5: return "_wsopen";
-  case 0x05b6: return "_wsopen_s";
-  case 0x05b7: return "_wspawnl";
-  case 0x05b8: return "_wspawnle";
-  case 0x05b9: return "_wspawnlp";
-  case 0x05ba: return "_wspawnlpe";
-  case 0x05bb: return "_wspawnv";
-  case 0x05bc: return "_wspawnve";
-  case 0x05bd: return "_wspawnvp";
-  case 0x05be: return "_wspawnvpe";
-  case 0x05bf: return "_wsplitpath";
-  case 0x05c0: return "_wsplitpath_s";
-  case 0x05c1: return "_wstat32";
-  case 0x05c2: return "_wstat32i64";
-  case 0x05c3: return "_wstat64";
-  case 0x05c4: return "_wstat64i32";
-  case 0x05c5: return "_wstrdate";
-  case 0x05c6: return "_wstrdate_s";
-  case 0x05c7: return "_wstrtime";
-  case 0x05c8: return "_wstrtime_s";
-  case 0x05c9: return "_wsystem";
-  case 0x05ca: return "_wtempnam";
-  case 0x05cb: return "_wtmpnam";
-  case 0x05cc: return "_wtmpnam_s";
-  case 0x05cd: return "_wtof";
-  case 0x05ce: return "_wtof_l";
-  case 0x05cf: return "_wtoi";
-  case 0x05d0: return "_wtoi64";
-  case 0x05d1: return "_wtoi64_l";
-  case 0x05d2: return "_wtoi_l";
-  case 0x05d3: return "_wtol";
-  case 0x05d4: return "_wtol_l";
-  case 0x05d5: return "_wtoll";
-  case 0x05d6: return "_wtoll_l";
-  case 0x05d7: return "_wunlink";
-  case 0x05d8: return "_wutime32";
-  case 0x05d9: return "_wutime64";
-  case 0x05da: return "_y0";
-  case 0x05db: return "_y1";
-  case 0x05dc: return "_yn";
-  case 0x05dd: return "abort";
-  case 0x05de: return "abs";
-  case 0x05df: return "acos";
-  case 0x05e0: return "acosh";
-  case 0x05e1: return "acoshf";
-  case 0x05e2: return "acoshl";
-  case 0x05e3: return "asctime";
-  case 0x05e4: return "asctime_s";
-  case 0x05e5: return "asin";
-  case 0x05e6: return "asinh";
-  case 0x05e7: return "asinhf";
-  case 0x05e8: return "asinhl";
-  case 0x05e9: return "atan";
-  case 0x05ea: return "atan2";
-  case 0x05eb: return "atanh";
-  case 0x05ec: return "atanhf";
-  case 0x05ed: return "atanhl";
-  case 0x05ee: return "atexit";
-  case 0x05ef: return "atof";
-  case 0x05f0: return "atoi";
-  case 0x05f1: return "atol";
-  case 0x05f2: return "atoll";
-  case 0x05f3: return "bsearch";
-  case 0x05f4: return "bsearch_s";
-  case 0x05f5: return "btowc";
-  case 0x05f6: return "cabs";
-  case 0x05f7: return "cabsf";
-  case 0x05f8: return "cabsl";
-  case 0x05f9: return "cacos";
-  case 0x05fa: return "cacosf";
-  case 0x05fb: return "cacosh";
-  case 0x05fc: return "cacoshf";
-  case 0x05fd: return "cacoshl";
-  case 0x05fe: return "cacosl";
-  case 0x05ff: return "calloc";
-  case 0x0600: return "carg";
-  case 0x0601: return "cargf";
-  case 0x0602: return "cargl";
-  case 0x0603: return "casin";
-  case 0x0604: return "casinf";
-  case 0x0605: return "casinh";
-  case 0x0606: return "casinhf";
-  case 0x0607: return "casinhl";
-  case 0x0608: return "casinl";
-  case 0x0609: return "catan";
-  case 0x060a: return "catanf";
-  case 0x060b: return "catanh";
-  case 0x060c: return "catanhf";
-  case 0x060d: return "catanhl";
-  case 0x060e: return "catanl";
-  case 0x060f: return "cbrt";
-  case 0x0610: return "cbrtf";
-  case 0x0611: return "cbrtl";
-  case 0x0612: return "ccos";
-  case 0x0613: return "ccosf";
-  case 0x0614: return "ccosh";
-  case 0x0615: return "ccoshf";
-  case 0x0616: return "ccoshl";
-  case 0x0617: return "ccosl";
-  case 0x0618: return "ceil";
-  case 0x0619: return "cexp";
-  case 0x061a: return "cexpf";
-  case 0x061b: return "cexpl";
-  case 0x061c: return "cimag";
-  case 0x061d: return "cimagf";
-  case 0x061e: return "cimagl";
-  case 0x061f: return "clearerr";
-  case 0x0620: return "clearerr_s";
-  case 0x0621: return "clock";
-  case 0x0622: return "clog";
-  case 0x0623: return "clog10";
-  case 0x0624: return "clog10f";
-  case 0x0625: return "clog10l";
-  case 0x0626: return "clogf";
-  case 0x0627: return "clogl";
-  case 0x0628: return "conj";
-  case 0x0629: return "conjf";
-  case 0x062a: return "conjl";
-  case 0x062b: return "copysign";
-  case 0x062c: return "copysignf";
-  case 0x062d: return "copysignl";
-  case 0x062e: return "cos";
-  case 0x062f: return "cosh";
-  case 0x0630: return "cpow";
-  case 0x0631: return "cpowf";
-  case 0x0632: return "cpowl";
-  case 0x0633: return "cproj";
-  case 0x0634: return "cprojf";
-  case 0x0635: return "cprojl";
-  case 0x0636: return "creal";
-  case 0x0637: return "crealf";
-  case 0x0638: return "creall";
-  case 0x0639: return "csin";
-  case 0x063a: return "csinf";
-  case 0x063b: return "csinh";
-  case 0x063c: return "csinhf";
-  case 0x063d: return "csinhl";
-  case 0x063e: return "csinl";
-  case 0x063f: return "csqrt";
-  case 0x0640: return "csqrtf";
-  case 0x0641: return "csqrtl";
-  case 0x0642: return "ctan";
-  case 0x0643: return "ctanf";
-  case 0x0644: return "ctanh";
-  case 0x0645: return "ctanhf";
-  case 0x0646: return "ctanhl";
-  case 0x0647: return "ctanl";
-  case 0x0648: return "div";
-  case 0x0649: return "erf";
-  case 0x064a: return "erfc";
-  case 0x064b: return "erfcf";
-  case 0x064c: return "erfcl";
-  case 0x064d: return "erff";
-  case 0x064e: return "erfl";
-  case 0x064f: return "exit";
-  case 0x0650: return "exp";
-  case 0x0651: return "exp2";
-  case 0x0652: return "exp2f";
-  case 0x0653: return "exp2l";
-  case 0x0654: return "expm1";
-  case 0x0655: return "expm1f";
-  case 0x0656: return "expm1l";
-  case 0x0657: return "fabs";
-  case 0x0658: return "fclose";
-  case 0x0659: return "fdim";
-  case 0x065a: return "fdimf";
-  case 0x065b: return "fdiml";
-  case 0x065c: return "feclearexcept";
-  case 0x065d: return "fegetenv";
-  case 0x065e: return "fegetexceptflag";
-  case 0x065f: return "fegetround";
-  case 0x0660: return "feholdexcept";
-  case 0x0661: return "feof";
-  case 0x0662: return "feraiseexcept";
-  case 0x0663: return "ferror";
-  case 0x0664: return "fesetenv";
-  case 0x0665: return "fesetexceptflag";
-  case 0x0666: return "fesetround";
-  case 0x0667: return "fetestexcept";
-  case 0x0668: return "feupdateenv";
-  case 0x0669: return "fflush";
-  case 0x066a: return "fgetc";
-  case 0x066b: return "fgetpos";
-  case 0x066c: return "fgets";
-  case 0x066d: return "fgetwc";
-  case 0x066e: return "fgetws";
-  case 0x066f: return "floor";
-  case 0x0670: return "fma";
-  case 0x0671: return "fmaf";
-  case 0x0672: return "fmal";
-  case 0x0673: return "fmax";
-  case 0x0674: return "fmaxf";
-  case 0x0675: return "fmaxl";
-  case 0x0676: return "fmin";
-  case 0x0677: return "fminf";
-  case 0x0678: return "fminl";
-  case 0x0679: return "fmod";
-  case 0x067a: return "fopen";
-  case 0x067b: return "fopen_s";
-  case 0x067c: return "fprintf";
-  case 0x067d: return "fprintf_s";
-  case 0x067e: return "fputc";
-  case 0x067f: return "fputs";
-  case 0x0680: return "fputwc";
-  case 0x0681: return "fputws";
-  case 0x0682: return "fread";
-  case 0x0683: return "fread_s";
-  case 0x0684: return "free";
-  case 0x0685: return "freopen";
-  case 0x0686: return "freopen_s";
-  case 0x0687: return "frexp";
-  case 0x0688: return "fscanf";
-  case 0x0689: return "fscanf_s";
-  case 0x068a: return "fseek";
-  case 0x068b: return "fsetpos";
-  case 0x068c: return "ftell";
-  case 0x068d: return "fwprintf";
-  case 0x068e: return "fwprintf_s";
-  case 0x068f: return "fwrite";
-  case 0x0690: return "fwscanf";
-  case 0x0691: return "fwscanf_s";
-  case 0x0692: return "getc";
-  case 0x0693: return "getchar";
-  case 0x0694: return "getenv";
-  case 0x0695: return "getenv_s";
-  case 0x0696: return "gets";
-  case 0x0697: return "gets_s";
-  case 0x0698: return "getwc";
-  case 0x0699: return "getwchar";
-  case 0x069a: return "ilogb";
-  case 0x069b: return "ilogbf";
-  case 0x069c: return "ilogbl";
-  case 0x069d: return "imaxabs";
-  case 0x069e: return "imaxdiv";
-  case 0x069f: return "is_wctype";
-  case 0x06a0: return "isalnum";
-  case 0x06a1: return "isalpha";
-  case 0x06a2: return "isblank";
-  case 0x06a3: return "iscntrl";
-  case 0x06a4: return "isdigit";
-  case 0x06a5: return "isgraph";
-  case 0x06a6: return "isleadbyte";
-  case 0x06a7: return "islower";
-  case 0x06a8: return "isprint";
-  case 0x06a9: return "ispunct";
-  case 0x06aa: return "isspace";
-  case 0x06ab: return "isupper";
-  case 0x06ac: return "iswalnum";
-  case 0x06ad: return "iswalpha";
-  case 0x06ae: return "iswascii";
-  case 0x06af: return "iswblank";
-  case 0x06b0: return "iswcntrl";
-  case 0x06b1: return "iswctype";
-  case 0x06b2: return "iswdigit";
-  case 0x06b3: return "iswgraph";
-  case 0x06b4: return "iswlower";
-  case 0x06b5: return "iswprint";
-  case 0x06b6: return "iswpunct";
-  case 0x06b7: return "iswspace";
-  case 0x06b8: return "iswupper";
-  case 0x06b9: return "iswxdigit";
-  case 0x06ba: return "isxdigit";
-  case 0x06bb: return "labs";
-  case 0x06bc: return "ldexp";
-  case 0x06bd: return "ldiv";
-  case 0x06be: return "lgamma";
-  case 0x06bf: return "lgammaf";
-  case 0x06c0: return "lgammal";
-  case 0x06c1: return "llabs";
-  case 0x06c2: return "lldiv";
-  case 0x06c3: return "llrint";
-  case 0x06c4: return "llrintf";
-  case 0x06c5: return "llrintl";
-  case 0x06c6: return "llround";
-  case 0x06c7: return "llroundf";
-  case 0x06c8: return "llroundl";
-  case 0x06c9: return "localeconv";
-  case 0x06ca: return "log";
-  case 0x06cb: return "log10";
-  case 0x06cc: return "log1p";
-  case 0x06cd: return "log1pf";
-  case 0x06ce: return "log1pl";
-  case 0x06cf: return "log2";
-  case 0x06d0: return "log2f";
-  case 0x06d1: return "log2l";
-  case 0x06d2: return "logb";
-  case 0x06d3: return "logbf";
-  case 0x06d4: return "logbl";
-  case 0x06d5: return "longjmp";
-  case 0x06d6: return "lrint";
-  case 0x06d7: return "lrintf";
-  case 0x06d8: return "lrintl";
-  case 0x06d9: return "lround";
-  case 0x06da: return "lroundf";
-  case 0x06db: return "lroundl";
-  case 0x06dc: return "malloc";
-  case 0x06dd: return "mblen";
-  case 0x06de: return "mbrlen";
-  case 0x06df: return "mbrtowc";
-  case 0x06e0: return "mbsrtowcs";
-  case 0x06e1: return "mbsrtowcs_s";
-  case 0x06e2: return "mbstowcs";
-  case 0x06e3: return "mbstowcs_s";
-  case 0x06e4: return "mbtowc";
-  case 0x06e5: return "memchr";
-  case 0x06e6: return "memcmp";
-  case 0x06e7: return "memcpy";
-  case 0x06e8: return "memcpy_s";
-  case 0x06e9: return "memmove";
-  case 0x06ea: return "memmove_s";
-  case 0x06eb: return "memset";
-  case 0x06ec: return "modf";
-  case 0x06ed: return "nan";
-  case 0x06ee: return "nanf";
-  case 0x06ef: return "nanl";
-  case 0x06f0: return "nearbyint";
-  case 0x06f1: return "nearbyintf";
-  case 0x06f2: return "nearbyintl";
-  case 0x06f3: return "nextafter";
-  case 0x06f4: return "nextafterf";
-  case 0x06f5: return "nextafterl";
-  case 0x06f6: return "nexttoward";
-  case 0x06f7: return "nexttowardf";
-  case 0x06f8: return "nexttowardl";
-  case 0x06f9: return "norm";
-  case 0x06fa: return "normf";
-  case 0x06fb: return "norml";
-  case 0x06fc: return "perror";
-  case 0x06fd: return "pow";
-  case 0x06fe: return "printf";
-  case 0x06ff: return "printf_s";
-  case 0x0700: return "putc";
-  case 0x0701: return "putchar";
-  case 0x0702: return "puts";
-  case 0x0703: return "putwc";
-  case 0x0704: return "putwchar";
-  case 0x0705: return "qsort";
-  case 0x0706: return "qsort_s";
-  case 0x0707: return "raise";
-  case 0x0708: return "rand";
-  case 0x0709: return "rand_s";
-  case 0x070a: return "realloc";
-  case 0x070b: return "remainder";
-  case 0x070c: return "remainderf";
-  case 0x070d: return "remainderl";
-  case 0x070e: return "remove";
-  case 0x070f: return "remquo";
-  case 0x0710: return "remquof";
-  case 0x0711: return "remquol";
-  case 0x0712: return "rename";
-  case 0x0713: return "rewind";
-  case 0x0714: return "rint";
-  case 0x0715: return "rintf";
-  case 0x0716: return "rintl";
-  case 0x0717: return "round";
-  case 0x0718: return "roundf";
-  case 0x0719: return "roundl";
-  case 0x071a: return "scalbln";
-  case 0x071b: return "scalblnf";
-  case 0x071c: return "scalblnl";
-  case 0x071d: return "scalbn";
-  case 0x071e: return "scalbnf";
-  case 0x071f: return "scalbnl";
-  case 0x0720: return "scanf";
-  case 0x0721: return "scanf_s";
-  case 0x0722: return "setbuf";
-  case 0x0723: return "setlocale";
-  case 0x0724: return "setvbuf";
-  case 0x0725: return "signal";
-  case 0x0726: return "sin";
-  case 0x0727: return "sinh";
-  case 0x0728: return "sprintf";
-  case 0x0729: return "sprintf_s";
-  case 0x072a: return "sqrt";
-  case 0x072b: return "srand";
-  case 0x072c: return "sscanf";
-  case 0x072d: return "sscanf_s";
-  case 0x072e: return "strcat";
-  case 0x072f: return "strcat_s";
-  case 0x0730: return "strchr";
-  case 0x0731: return "strcmp";
-  case 0x0732: return "strcoll";
-  case 0x0733: return "strcpy";
-  case 0x0734: return "strcpy_s";
-  case 0x0735: return "strcspn";
-  case 0x0736: return "strerror";
-  case 0x0737: return "strerror_s";
-  case 0x0738: return "strftime";
-  case 0x0739: return "strlen";
-  case 0x073a: return "strncat";
-  case 0x073b: return "strncat_s";
-  case 0x073c: return "strncmp";
-  case 0x073d: return "strncpy";
-  case 0x073e: return "strncpy_s";
-  case 0x073f: return "strnlen";
-  case 0x0740: return "strpbrk";
-  case 0x0741: return "strrchr";
-  case 0x0742: return "strspn";
-  case 0x0743: return "strstr";
-  case 0x0744: return "strtod";
-  case 0x0745: return "strtof";
-  case 0x0746: return "strtoimax";
-  case 0x0747: return "strtok";
-  case 0x0748: return "strtok_s";
-  case 0x0749: return "strtol";
-  case 0x074a: return "strtold";
-  case 0x074b: return "strtoll";
-  case 0x074c: return "strtoul";
-  case 0x074d: return "strtoull";
-  case 0x074e: return "strtoumax";
-  case 0x074f: return "strxfrm";
-  case 0x0750: return "swprintf_s";
-  case 0x0751: return "swscanf";
-  case 0x0752: return "swscanf_s";
-  case 0x0753: return "system";
-  case 0x0754: return "tan";
-  case 0x0755: return "tanh";
-  case 0x0756: return "tgamma";
-  case 0x0757: return "tgammaf";
-  case 0x0758: return "tgammal";
-  case 0x0759: return "tmpfile";
-  case 0x075a: return "tmpfile_s";
-  case 0x075b: return "tmpnam";
-  case 0x075c: return "tmpnam_s";
-  case 0x075d: return "tolower";
-  case 0x075e: return "toupper";
-  case 0x075f: return "towctrans";
-  case 0x0760: return "towlower";
-  case 0x0761: return "towupper";
-  case 0x0762: return "trunc";
-  case 0x0763: return "truncf";
-  case 0x0764: return "truncl";
-  case 0x0765: return "ungetc";
-  case 0x0766: return "ungetwc";
-  case 0x0767: return "vfprintf";
-  case 0x0768: return "vfprintf_s";
-  case 0x0769: return "vfscanf";
-  case 0x076a: return "vfscanf_s";
-  case 0x076b: return "vfwprintf";
-  case 0x076c: return "vfwprintf_s";
-  case 0x076d: return "vfwscanf";
-  case 0x076e: return "vfwscanf_s";
-  case 0x076f: return "vprintf";
-  case 0x0770: return "vprintf_s";
-  case 0x0771: return "vscanf";
-  case 0x0772: return "vscanf_s";
-  case 0x0773: return "vsprintf";
-  case 0x0774: return "vsprintf_s";
-  case 0x0775: return "vsscanf";
-  case 0x0776: return "vsscanf_s";
-  case 0x0777: return "vswprintf_s";
-  case 0x0778: return "vswscanf";
-  case 0x0779: return "vswscanf_s";
-  case 0x077a: return "vwprintf";
-  case 0x077b: return "vwprintf_s";
-  case 0x077c: return "vwscanf";
-  case 0x077d: return "vwscanf_s";
-  case 0x077e: return "wcrtomb";
-  case 0x077f: return "wcrtomb_s";
-  case 0x0780: return "wcscat";
-  case 0x0781: return "wcscat_s";
-  case 0x0782: return "wcschr";
-  case 0x0783: return "wcscmp";
-  case 0x0784: return "wcscoll";
-  case 0x0785: return "wcscpy";
-  case 0x0786: return "wcscpy_s";
-  case 0x0787: return "wcscspn";
-  case 0x0788: return "wcsftime";
-  case 0x0789: return "wcslen";
-  case 0x078a: return "wcsncat";
-  case 0x078b: return "wcsncat_s";
-  case 0x078c: return "wcsncmp";
-  case 0x078d: return "wcsncpy";
-  case 0x078e: return "wcsncpy_s";
-  case 0x078f: return "wcsnlen";
-  case 0x0790: return "wcspbrk";
-  case 0x0791: return "wcsrchr";
-  case 0x0792: return "wcsrtombs";
-  case 0x0793: return "wcsrtombs_s";
-  case 0x0794: return "wcsspn";
-  case 0x0795: return "wcsstr";
-  case 0x0796: return "wcstod";
-  case 0x0797: return "wcstof";
-  case 0x0798: return "wcstoimax";
-  case 0x0799: return "wcstok";
-  case 0x079a: return "wcstok_s";
-  case 0x079b: return "wcstol";
-  case 0x079c: return "wcstold";
-  case 0x079d: return "wcstoll";
-  case 0x079e: return "wcstombs";
-  case 0x079f: return "wcstombs_s";
-  case 0x07a0: return "wcstoul";
-  case 0x07a1: return "wcstoull";
-  case 0x07a2: return "wcstoumax";
-  case 0x07a3: return "wcsxfrm";
-  case 0x07a4: return "wctob";
-  case 0x07a5: return "wctomb";
-  case 0x07a6: return "wctomb_s";
-  case 0x07a7: return "wctrans";
-  case 0x07a8: return "wctype";
-  case 0x07a9: return "wmemcpy_s";
-  case 0x07aa: return "wmemmove_s";
-  case 0x07ab: return "wprintf";
-  case 0x07ac: return "wprintf_s";
-  case 0x07ad: return "wscanf";
-  case 0x07ae: return "wscanf_s";
+  switch (i) {
+    case 0x0145: return "$I10_OUTPUT";
+    case 0x0001: return "??0?$_SpinWait@$00@details@Concurrency@@QAE@P6AXXZ@Z";
+    case 0x0002: return "??0?$_SpinWait@$0A@@details@Concurrency@@QAE@P6AXXZ@Z";
+    case 0x0003: return "??0SchedulerPolicy@Concurrency@@QAA@IZZ";
+    case 0x0004: return "??0SchedulerPolicy@Concurrency@@QAE@ABV01@@Z";
+    case 0x0005: return "??0SchedulerPolicy@Concurrency@@QAE@XZ";
+    case 0x0006: return "??0_Cancellation_beacon@details@Concurrency@@QAE@XZ";
+    case 0x0007: return "??0_Condition_variable@details@Concurrency@@QAE@XZ";
+    case 0x0008: return "??0_Context@details@Concurrency@@QAE@PAVContext@2@@Z";
+    case 0x0009:
+      return "??0_Interruption_exception@details@Concurrency@@QAE@PBD@Z";
+    case 0x000a: return "??0_Interruption_exception@details@Concurrency@@QAE@XZ";
+    case 0x000b: return "??0_NonReentrantBlockingLock@details@Concurrency@@QAE@XZ";
+    case 0x000c: return "??0_NonReentrantPPLLock@details@Concurrency@@QAE@XZ";
+    case 0x000d: return "??0_ReaderWriterLock@details@Concurrency@@QAE@XZ";
+    case 0x000e: return "??0_ReentrantBlockingLock@details@Concurrency@@QAE@XZ";
+    case 0x000f: return "??0_ReentrantLock@details@Concurrency@@QAE@XZ";
+    case 0x0010: return "??0_ReentrantPPLLock@details@Concurrency@@QAE@XZ";
+    case 0x0011: return "??0_Scheduler@details@Concurrency@@QAE@PAVScheduler@2@@Z";
+    case 0x0012:
+      return "??0_Scoped_lock@_NonReentrantPPLLock@details@Concurrency@@QAE@"
+             "AAV123@@Z";
+    case 0x0013:
+      return "??0_Scoped_lock@_ReentrantPPLLock@details@Concurrency@@QAE@AAV123@@"
+             "Z";
+    case 0x0014: return "??0_SpinLock@details@Concurrency@@QAE@ACJ@Z";
+    case 0x0015:
+      return "??0_StructuredTaskCollection@details@Concurrency@@QAE@PAV_"
+             "CancellationTokenState@12@@Z";
+    case 0x0016:
+      return "??0_TaskCollection@details@Concurrency@@QAE@PAV_"
+             "CancellationTokenState@12@@Z";
+    case 0x0017: return "??0_TaskCollection@details@Concurrency@@QAE@XZ";
+    case 0x0018: return "??0_Timer@details@Concurrency@@IAE@I_N@Z";
+    case 0x0019: return "??0__non_rtti_object@std@@QAE@ABV01@@Z";
+    case 0x001a: return "??0__non_rtti_object@std@@QAE@PBD@Z";
+    case 0x001b: return "??0bad_cast@std@@AAE@PBQBD@Z";
+    case 0x001c: return "??0bad_cast@std@@QAE@ABV01@@Z";
+    case 0x001d: return "??0bad_cast@std@@QAE@PBD@Z";
+    case 0x001e: return "??0bad_target@Concurrency@@QAE@PBD@Z";
+    case 0x001f: return "??0bad_target@Concurrency@@QAE@XZ";
+    case 0x0020: return "??0bad_typeid@std@@QAE@ABV01@@Z";
+    case 0x0021: return "??0bad_typeid@std@@QAE@PBD@Z";
+    case 0x0022: return "??0context_self_unblock@Concurrency@@QAE@PBD@Z";
+    case 0x0023: return "??0context_self_unblock@Concurrency@@QAE@XZ";
+    case 0x0024: return "??0context_unblock_unbalanced@Concurrency@@QAE@PBD@Z";
+    case 0x0025: return "??0context_unblock_unbalanced@Concurrency@@QAE@XZ";
+    case 0x0026: return "??0critical_section@Concurrency@@QAE@XZ";
+    case 0x0027: return "??0default_scheduler_exists@Concurrency@@QAE@PBD@Z";
+    case 0x0028: return "??0default_scheduler_exists@Concurrency@@QAE@XZ";
+    case 0x0029: return "??0event@Concurrency@@QAE@XZ";
+    case 0x002a: return "??0exception@std@@QAE@ABQBD@Z";
+    case 0x002b: return "??0exception@std@@QAE@ABQBDH@Z";
+    case 0x002c: return "??0exception@std@@QAE@ABV01@@Z";
+    case 0x002d: return "??0exception@std@@QAE@XZ";
+    case 0x002e: return "??0improper_lock@Concurrency@@QAE@PBD@Z";
+    case 0x002f: return "??0improper_lock@Concurrency@@QAE@XZ";
+    case 0x0030: return "??0improper_scheduler_attach@Concurrency@@QAE@PBD@Z";
+    case 0x0031: return "??0improper_scheduler_attach@Concurrency@@QAE@XZ";
+    case 0x0032: return "??0improper_scheduler_detach@Concurrency@@QAE@PBD@Z";
+    case 0x0033: return "??0improper_scheduler_detach@Concurrency@@QAE@XZ";
+    case 0x0034: return "??0improper_scheduler_reference@Concurrency@@QAE@PBD@Z";
+    case 0x0035: return "??0improper_scheduler_reference@Concurrency@@QAE@XZ";
+    case 0x0036: return "??0invalid_link_target@Concurrency@@QAE@PBD@Z";
+    case 0x0037: return "??0invalid_link_target@Concurrency@@QAE@XZ";
+    case 0x0038: return "??0invalid_multiple_scheduling@Concurrency@@QAE@PBD@Z";
+    case 0x0039: return "??0invalid_multiple_scheduling@Concurrency@@QAE@XZ";
+    case 0x003a: return "??0invalid_operation@Concurrency@@QAE@PBD@Z";
+    case 0x003b: return "??0invalid_operation@Concurrency@@QAE@XZ";
+    case 0x003c:
+      return "??0invalid_oversubscribe_operation@Concurrency@@QAE@PBD@Z";
+    case 0x003d: return "??0invalid_oversubscribe_operation@Concurrency@@QAE@XZ";
+    case 0x003e: return "??0invalid_scheduler_policy_key@Concurrency@@QAE@PBD@Z";
+    case 0x003f: return "??0invalid_scheduler_policy_key@Concurrency@@QAE@XZ";
+    case 0x0040:
+      return "??0invalid_scheduler_policy_thread_specification@Concurrency@@QAE@"
+             "PBD@Z";
+    case 0x0041:
+      return "??0invalid_scheduler_policy_thread_specification@Concurrency@@QAE@"
+             "XZ";
+    case 0x0042: return "??0invalid_scheduler_policy_value@Concurrency@@QAE@PBD@Z";
+    case 0x0043: return "??0invalid_scheduler_policy_value@Concurrency@@QAE@XZ";
+    case 0x0044: return "??0message_not_found@Concurrency@@QAE@PBD@Z";
+    case 0x0045: return "??0message_not_found@Concurrency@@QAE@XZ";
+    case 0x0046: return "??0missing_wait@Concurrency@@QAE@PBD@Z";
+    case 0x0047: return "??0missing_wait@Concurrency@@QAE@XZ";
+    case 0x0048:
+      return "??0nested_scheduler_missing_detach@Concurrency@@QAE@PBD@Z";
+    case 0x0049: return "??0nested_scheduler_missing_detach@Concurrency@@QAE@XZ";
+    case 0x004a: return "??0operation_timed_out@Concurrency@@QAE@PBD@Z";
+    case 0x004b: return "??0operation_timed_out@Concurrency@@QAE@XZ";
+    case 0x004c: return "??0reader_writer_lock@Concurrency@@QAE@XZ";
+    case 0x004d: return "??0scheduler_not_attached@Concurrency@@QAE@PBD@Z";
+    case 0x004e: return "??0scheduler_not_attached@Concurrency@@QAE@XZ";
+    case 0x004f:
+      return "??0scheduler_resource_allocation_error@Concurrency@@QAE@J@Z";
+    case 0x0050:
+      return "??0scheduler_resource_allocation_error@Concurrency@@QAE@PBDJ@Z";
+    case 0x0051: return "??0scheduler_worker_creation_error@Concurrency@@QAE@J@Z";
+    case 0x0052:
+      return "??0scheduler_worker_creation_error@Concurrency@@QAE@PBDJ@Z";
+    case 0x0053:
+      return "??0scoped_lock@critical_section@Concurrency@@QAE@AAV12@@Z";
+    case 0x0054:
+      return "??0scoped_lock@reader_writer_lock@Concurrency@@QAE@AAV12@@Z";
+    case 0x0055:
+      return "??0scoped_lock_read@reader_writer_lock@Concurrency@@QAE@AAV12@@Z";
+    case 0x0056: return "??0task_canceled@Concurrency@@QAE@PBD@Z";
+    case 0x0057: return "??0task_canceled@Concurrency@@QAE@XZ";
+    case 0x0058: return "??0unsupported_os@Concurrency@@QAE@PBD@Z";
+    case 0x0059: return "??0unsupported_os@Concurrency@@QAE@XZ";
+    case 0x005a: return "??1SchedulerPolicy@Concurrency@@QAE@XZ";
+    case 0x005b: return "??1_Cancellation_beacon@details@Concurrency@@QAE@XZ";
+    case 0x005c: return "??1_Condition_variable@details@Concurrency@@QAE@XZ";
+    case 0x005d: return "??1_NonReentrantBlockingLock@details@Concurrency@@QAE@XZ";
+    case 0x005e: return "??1_ReentrantBlockingLock@details@Concurrency@@QAE@XZ";
+    case 0x005f:
+      return "??1_Scoped_lock@_NonReentrantPPLLock@details@Concurrency@@QAE@XZ";
+    case 0x0060:
+      return "??1_Scoped_lock@_ReentrantPPLLock@details@Concurrency@@QAE@XZ";
+    case 0x0061: return "??1_SpinLock@details@Concurrency@@QAE@XZ";
+    case 0x0062: return "??1_StructuredTaskCollection@details@Concurrency@@QAE@XZ";
+    case 0x0063: return "??1_TaskCollection@details@Concurrency@@QAE@XZ";
+    case 0x0064: return "??1_Timer@details@Concurrency@@MAE@XZ";
+    case 0x0065: return "??1__non_rtti_object@std@@UAE@XZ";
+    case 0x0066: return "??1bad_cast@std@@UAE@XZ";
+    case 0x0067: return "??1bad_typeid@std@@UAE@XZ";
+    case 0x0068: return "??1critical_section@Concurrency@@QAE@XZ";
+    case 0x0069: return "??1event@Concurrency@@QAE@XZ";
+    case 0x006a: return "??1exception@std@@UAE@XZ";
+    case 0x006b: return "??1reader_writer_lock@Concurrency@@QAE@XZ";
+    case 0x006c: return "??1scoped_lock@critical_section@Concurrency@@QAE@XZ";
+    case 0x006d: return "??1scoped_lock@reader_writer_lock@Concurrency@@QAE@XZ";
+    case 0x006e:
+      return "??1scoped_lock_read@reader_writer_lock@Concurrency@@QAE@XZ";
+    case 0x006f: return "??1type_info@@UAE@XZ";
+    case 0x0070: return "??2@YAPAXI@Z";
+    case 0x0071: return "??2@YAPAXIHPBDH@Z";
+    case 0x0072: return "??3@YAXPAX@Z";
+    case 0x0073: return "??3@YAXPAXHPBDH@Z";
+    case 0x0074:
+      return "??4?$_SpinWait@$00@details@Concurrency@@QAEAAV012@ABV012@@Z";
+    case 0x0075:
+      return "??4?$_SpinWait@$0A@@details@Concurrency@@QAEAAV012@ABV012@@Z";
+    case 0x0076: return "??4SchedulerPolicy@Concurrency@@QAEAAV01@ABV01@@Z";
+    case 0x0077: return "??4__non_rtti_object@std@@QAEAAV01@ABV01@@Z";
+    case 0x0078: return "??4bad_cast@std@@QAEAAV01@ABV01@@Z";
+    case 0x0079: return "??4bad_typeid@std@@QAEAAV01@ABV01@@Z";
+    case 0x007a: return "??4exception@std@@QAEAAV01@ABV01@@Z";
+    case 0x007b: return "??8type_info@@QBE_NABV0@@Z";
+    case 0x007c: return "??9type_info@@QBE_NABV0@@Z";
+    case 0x007d: return "??_7__non_rtti_object@std@@6B@";
+    case 0x007e: return "??_7bad_cast@std@@6B@";
+    case 0x007f: return "??_7bad_typeid@std@@6B@";
+    case 0x0080: return "??_7exception@std@@6B@";
+    case 0x0081: return "??_F?$_SpinWait@$00@details@Concurrency@@QAEXXZ";
+    case 0x0082: return "??_F?$_SpinWait@$0A@@details@Concurrency@@QAEXXZ";
+    case 0x0083: return "??_F_Context@details@Concurrency@@QAEXXZ";
+    case 0x0084: return "??_F_Scheduler@details@Concurrency@@QAEXXZ";
+    case 0x0085: return "??_Fbad_cast@std@@QAEXXZ";
+    case 0x0086: return "??_Fbad_typeid@std@@QAEXXZ";
+    case 0x0087: return "??_U@YAPAXI@Z";
+    case 0x0088: return "??_U@YAPAXIHPBDH@Z";
+    case 0x0089: return "??_V@YAXPAX@Z";
+    case 0x008a: return "??_V@YAXPAXHPBDH@Z";
+    case 0x008b: return "?Alloc@Concurrency@@YAPAXI@Z";
+    case 0x008c: return "?Block@Context@Concurrency@@SAXXZ";
+    case 0x008d:
+      return "?CaptureCallstack@platform@details@Concurrency@@YAIPAPAXII@Z";
+    case 0x008e:
+      return "?Create@CurrentScheduler@Concurrency@@SAXABVSchedulerPolicy@2@@Z";
+    case 0x008f:
+      return "?Create@Scheduler@Concurrency@@SAPAV12@ABVSchedulerPolicy@2@@Z";
+    case 0x0090:
+      return "?CreateResourceManager@Concurrency@@YAPAUIResourceManager@1@XZ";
+    case 0x0091:
+      return "?CreateScheduleGroup@CurrentScheduler@Concurrency@@"
+             "SAPAVScheduleGroup@2@AAVlocation@2@@Z";
+    case 0x0092:
+      return "?CreateScheduleGroup@CurrentScheduler@Concurrency@@"
+             "SAPAVScheduleGroup@2@XZ";
+    case 0x0093: return "?CurrentContext@Context@Concurrency@@SAPAV12@XZ";
+    case 0x0094: return "?Detach@CurrentScheduler@Concurrency@@SAXXZ";
+    case 0x0095: return "?DisableTracing@Concurrency@@YAJXZ";
+    case 0x0096: return "?EnableTracing@Concurrency@@YAJXZ";
+    case 0x0097: return "?Free@Concurrency@@YAXPAX@Z";
+    case 0x0098: return "?Get@CurrentScheduler@Concurrency@@SAPAVScheduler@2@XZ";
+    case 0x0099: return "?GetCurrentThreadId@platform@details@Concurrency@@YAJXZ";
+    case 0x009a: return "?GetExecutionContextId@Concurrency@@YAIXZ";
+    case 0x009b:
+      return "?GetNumberOfVirtualProcessors@CurrentScheduler@Concurrency@@SAIXZ";
+    case 0x009c:
+      return "?GetOSVersion@Concurrency@@YA?AW4OSVersion@IResourceManager@1@XZ";
+    case 0x009d:
+      return "?GetPolicy@CurrentScheduler@Concurrency@@SA?AVSchedulerPolicy@2@XZ";
+    case 0x009e:
+      return "?GetPolicyValue@SchedulerPolicy@Concurrency@@QBEIW4PolicyElementKey@"
+             "2@@Z";
+    case 0x009f: return "?GetProcessorCount@Concurrency@@YAIXZ";
+    case 0x00a0: return "?GetProcessorNodeCount@Concurrency@@YAIXZ";
+    case 0x00a1: return "?GetSchedulerId@Concurrency@@YAIXZ";
+    case 0x00a2: return "?GetSharedTimerQueue@details@Concurrency@@YAPAXXZ";
+    case 0x00a3: return "?Id@Context@Concurrency@@SAIXZ";
+    case 0x00a4: return "?Id@CurrentScheduler@Concurrency@@SAIXZ";
+    case 0x00a5:
+      return "?IsAvailableLocation@CurrentScheduler@Concurrency@@SA_NABVlocation@"
+             "2@@Z";
+    case 0x00a6:
+      return "?IsCurrentTaskCollectionCanceling@Context@Concurrency@@SA_NXZ";
+    case 0x00a7: return "?Log2@details@Concurrency@@YAKI@Z";
+    case 0x00a8: return "?Oversubscribe@Context@Concurrency@@SAX_N@Z";
+    case 0x00a9:
+      return "?RegisterShutdownEvent@CurrentScheduler@Concurrency@@SAXPAX@Z";
+    case 0x00aa:
+      return "?ResetDefaultSchedulerPolicy@Scheduler@Concurrency@@SAXXZ";
+    case 0x00ab: return "?ScheduleGroupId@Context@Concurrency@@SAIXZ";
+    case 0x00ac:
+      return "?ScheduleTask@CurrentScheduler@Concurrency@@SAXP6AXPAX@Z0@Z";
+    case 0x00ad:
+      return "?ScheduleTask@CurrentScheduler@Concurrency@@SAXP6AXPAX@"
+             "Z0AAVlocation@2@@Z";
+    case 0x00ae:
+      return "?SetConcurrencyLimits@SchedulerPolicy@Concurrency@@QAEXII@Z";
+    case 0x00af:
+      return "?SetDefaultSchedulerPolicy@Scheduler@Concurrency@@"
+             "SAXABVSchedulerPolicy@2@@Z";
+    case 0x00b0:
+      return "?SetPolicyValue@SchedulerPolicy@Concurrency@@QAEIW4PolicyElementKey@"
+             "2@I@Z";
+    case 0x00b1: return "?VirtualProcessorId@Context@Concurrency@@SAIXZ";
+    case 0x00b2: return "?Yield@Context@Concurrency@@SAXXZ";
+    case 0x00b3:
+      return "?_Abort@_StructuredTaskCollection@details@Concurrency@@AAEXXZ";
+    case 0x00b4:
+      return "?_Acquire@_NonReentrantBlockingLock@details@Concurrency@@QAEXXZ";
+    case 0x00b5:
+      return "?_Acquire@_NonReentrantPPLLock@details@Concurrency@@QAEXPAX@Z";
+    case 0x00b6:
+      return "?_Acquire@_ReentrantBlockingLock@details@Concurrency@@QAEXXZ";
+    case 0x00b7: return "?_Acquire@_ReentrantLock@details@Concurrency@@QAEXXZ";
+    case 0x00b8:
+      return "?_Acquire@_ReentrantPPLLock@details@Concurrency@@QAEXPAX@Z";
+    case 0x00b9:
+      return "?_AcquireRead@_ReaderWriterLock@details@Concurrency@@QAEXXZ";
+    case 0x00ba:
+      return "?_AcquireWrite@_ReaderWriterLock@details@Concurrency@@QAEXXZ";
+    case 0x00bb:
+      return "?_Cancel@_StructuredTaskCollection@details@Concurrency@@QAEXXZ";
+    case 0x00bc: return "?_Cancel@_TaskCollection@details@Concurrency@@QAEXXZ";
+    case 0x00bd:
+      return "?_CheckTaskCollection@_UnrealizedChore@details@Concurrency@@IAEXXZ";
+    case 0x00be:
+      return "?_CleanupToken@_StructuredTaskCollection@details@Concurrency@@"
+             "AAEXXZ";
+    case 0x00bf: return "?_ConcRT_CoreAssert@details@Concurrency@@YAXPBD0H@Z";
+    case 0x00c0: return "?_ConcRT_Trace@details@Concurrency@@YAXHPB_WZZ";
+    case 0x00c1:
+      return "?_Confirm_cancel@_Cancellation_beacon@details@Concurrency@@QAE_NXZ";
+    case 0x00c2: return "?_Copy_str@exception@std@@AAEXPBD@Z";
+    case 0x00c3:
+      return "?_CurrentContext@_Context@details@Concurrency@@SA?AV123@XZ";
+    case 0x00c4: return "?_Current_node@location@Concurrency@@SA?AV12@XZ";
+    case 0x00c5:
+      return "?_Destroy@_AsyncTaskCollection@details@Concurrency@@EAEXXZ";
+    case 0x00c6: return "?_DoYield@?$_SpinWait@$00@details@Concurrency@@IAEXXZ";
+    case 0x00c7: return "?_DoYield@?$_SpinWait@$0A@@details@Concurrency@@IAEXXZ";
+    case 0x00c8:
+      return "?_Get@_CurrentScheduler@details@Concurrency@@SA?AV_Scheduler@23@XZ";
+    case 0x00c9:
+      return "?_GetConcRTTraceInfo@Concurrency@@YAPBU_CONCRT_TRACE_INFO@details@1@"
+             "XZ";
+    case 0x00ca: return "?_GetConcurrency@details@Concurrency@@YAIXZ";
+    case 0x00cb:
+      return "?_GetCurrentInlineDepth@_StackGuard@details@Concurrency@@CAAAIXZ";
+    case 0x00cc:
+      return "?_GetNumberOfVirtualProcessors@_CurrentScheduler@details@"
+             "Concurrency@@SAIXZ";
+    case 0x00cd:
+      return "?_GetScheduler@_Scheduler@details@Concurrency@@QAEPAVScheduler@3@XZ";
+    case 0x00ce: return "?_Id@_CurrentScheduler@details@Concurrency@@SAIXZ";
+    case 0x00cf:
+      return "?_IsCanceling@_StructuredTaskCollection@details@Concurrency@@QAE_"
+             "NXZ";
+    case 0x00d0:
+      return "?_IsCanceling@_TaskCollection@details@Concurrency@@QAE_NXZ";
+    case 0x00d1:
+      return "?_IsSynchronouslyBlocked@_Context@details@Concurrency@@QBE_NXZ";
+    case 0x00d2: return "?_Name_base@type_info@@CAPBDPBV1@PAU__type_info_node@@@Z";
+    case 0x00d3:
+      return "?_Name_base_internal@type_info@@CAPBDPBV1@PAU__type_info_node@@@Z";
+    case 0x00d4:
+      return "?_NewCollection@_AsyncTaskCollection@details@Concurrency@@SAPAV123@"
+             "PAV_CancellationTokenState@23@@Z";
+    case 0x00d5:
+      return "?_NumberOfSpins@?$_SpinWait@$00@details@Concurrency@@IAEKXZ";
+    case 0x00d6:
+      return "?_NumberOfSpins@?$_SpinWait@$0A@@details@Concurrency@@IAEKXZ";
+    case 0x00d7: return "?_Oversubscribe@_Context@details@Concurrency@@SAX_N@Z";
+    case 0x00d8: return "?_Reference@_Scheduler@details@Concurrency@@QAEIXZ";
+    case 0x00d9:
+      return "?_Release@_NonReentrantBlockingLock@details@Concurrency@@QAEXXZ";
+    case 0x00da:
+      return "?_Release@_NonReentrantPPLLock@details@Concurrency@@QAEXXZ";
+    case 0x00db:
+      return "?_Release@_ReentrantBlockingLock@details@Concurrency@@QAEXXZ";
+    case 0x00dc: return "?_Release@_ReentrantLock@details@Concurrency@@QAEXXZ";
+    case 0x00dd: return "?_Release@_ReentrantPPLLock@details@Concurrency@@QAEXXZ";
+    case 0x00de: return "?_Release@_Scheduler@details@Concurrency@@QAEIXZ";
+    case 0x00df:
+      return "?_ReleaseRead@_ReaderWriterLock@details@Concurrency@@QAEXXZ";
+    case 0x00e0:
+      return "?_ReleaseWrite@_ReaderWriterLock@details@Concurrency@@QAEXXZ";
+    case 0x00e1: return "?_ReportUnobservedException@details@Concurrency@@YAXXZ";
+    case 0x00e2: return "?_Reset@?$_SpinWait@$00@details@Concurrency@@IAEXXZ";
+    case 0x00e3: return "?_Reset@?$_SpinWait@$0A@@details@Concurrency@@IAEXXZ";
+    case 0x00e4:
+      return "?_RunAndWait@_StructuredTaskCollection@details@Concurrency@@QAG?AW4_"
+             "TaskCollectionStatus@23@PAV_UnrealizedChore@23@@Z";
+    case 0x00e5:
+      return "?_RunAndWait@_TaskCollection@details@Concurrency@@QAG?AW4_"
+             "TaskCollectionStatus@23@PAV_UnrealizedChore@23@@Z";
+    case 0x00e6:
+      return "?_Schedule@_StructuredTaskCollection@details@Concurrency@@QAEXPAV_"
+             "UnrealizedChore@23@@Z";
+    case 0x00e7:
+      return "?_Schedule@_StructuredTaskCollection@details@Concurrency@@QAEXPAV_"
+             "UnrealizedChore@23@PAVlocation@3@@Z";
+    case 0x00e8:
+      return "?_Schedule@_TaskCollection@details@Concurrency@@QAEXPAV_"
+             "UnrealizedChore@23@@Z";
+    case 0x00e9:
+      return "?_Schedule@_TaskCollection@details@Concurrency@@QAEXPAV_"
+             "UnrealizedChore@23@PAVlocation@3@@Z";
+    case 0x00ea:
+      return "?_ScheduleTask@_CurrentScheduler@details@Concurrency@@SAXP6AXPAX@Z0@"
+             "Z";
+    case 0x00eb:
+      return "?_SetSpinCount@?$_SpinWait@$00@details@Concurrency@@QAEXI@Z";
+    case 0x00ec:
+      return "?_SetSpinCount@?$_SpinWait@$0A@@details@Concurrency@@QAEXI@Z";
+    case 0x00ed:
+      return "?_SetUnobservedExceptionHandler@details@Concurrency@@YAXP6AXXZ@Z";
+    case 0x00ee:
+      return "?_ShouldSpinAgain@?$_SpinWait@$00@details@Concurrency@@IAE_NXZ";
+    case 0x00ef:
+      return "?_ShouldSpinAgain@?$_SpinWait@$0A@@details@Concurrency@@IAE_NXZ";
+    case 0x00f0: return "?_SpinOnce@?$_SpinWait@$00@details@Concurrency@@QAE_NXZ";
+    case 0x00f1: return "?_SpinOnce@?$_SpinWait@$0A@@details@Concurrency@@QAE_NXZ";
+    case 0x00f2: return "?_SpinYield@Context@Concurrency@@SAXXZ";
+    case 0x00f3: return "?_Start@_Timer@details@Concurrency@@IAEXXZ";
+    case 0x00f4: return "?_Stop@_Timer@details@Concurrency@@IAEXXZ";
+    case 0x00f5: return "?_Tidy@exception@std@@AAEXXZ";
+    case 0x00f6: return "?_Trace_agents@Concurrency@@YAXW4Agents_EventType@1@_JZZ";
+    case 0x00f7:
+      return "?_Trace_ppl_function@Concurrency@@YAXABU_GUID@@EW4ConcRT_EventType@"
+             "1@@Z";
+    case 0x00f8:
+      return "?_TryAcquire@_NonReentrantBlockingLock@details@Concurrency@@QAE_NXZ";
+    case 0x00f9:
+      return "?_TryAcquire@_ReentrantBlockingLock@details@Concurrency@@QAE_NXZ";
+    case 0x00fa: return "?_TryAcquire@_ReentrantLock@details@Concurrency@@QAE_NXZ";
+    case 0x00fb:
+      return "?_TryAcquireWrite@_ReaderWriterLock@details@Concurrency@@QAE_NXZ";
+    case 0x00fc: return "?_Type_info_dtor@type_info@@CAXPAV1@@Z";
+    case 0x00fd: return "?_Type_info_dtor_internal@type_info@@CAXPAV1@@Z";
+    case 0x00fe: return "?_UnderlyingYield@details@Concurrency@@YAXXZ";
+    case 0x00ff: return "?_ValidateExecute@@YAHP6GHXZ@Z";
+    case 0x0100: return "?_ValidateRead@@YAHPBXI@Z";
+    case 0x0101: return "?_ValidateWrite@@YAHPAXI@Z";
+    case 0x0102: return "?_Value@_SpinCount@details@Concurrency@@SAIXZ";
+    case 0x0103: return "?_Yield@_Context@details@Concurrency@@SAXXZ";
+    case 0x0104: return "?__ExceptionPtrAssign@@YAXPAXPBX@Z";
+    case 0x0105: return "?__ExceptionPtrCompare@@YA_NPBX0@Z";
+    case 0x0106: return "?__ExceptionPtrCopy@@YAXPAXPBX@Z";
+    case 0x0107: return "?__ExceptionPtrCopyException@@YAXPAXPBX1@Z";
+    case 0x0108: return "?__ExceptionPtrCreate@@YAXPAX@Z";
+    case 0x0109: return "?__ExceptionPtrCurrentException@@YAXPAX@Z";
+    case 0x010a: return "?__ExceptionPtrDestroy@@YAXPAX@Z";
+    case 0x010b: return "?__ExceptionPtrRethrow@@YAXPBX@Z";
+    case 0x010c: return "?__ExceptionPtrSwap@@YAXPAX0@Z";
+    case 0x010d: return "?__ExceptionPtrToBool@@YA_NPBX@Z";
+    case 0x010f: return "?_inconsistency@@YAXXZ";
+    case 0x0110: return "?_invalid_parameter@@YAXPBG00II@Z";
+    case 0x0111:
+      return "?_is_exception_typeof@@YAHABVtype_info@@PAU_EXCEPTION_POINTERS@@@Z";
+    case 0x0112:
+      return "?_name_internal_method@type_info@@QBEPBDPAU__type_info_node@@@Z";
+    case 0x0113: return "?_open@@YAHPBDHH@Z";
+    case 0x0114: return "?_query_new_handler@@YAP6AHI@ZXZ";
+    case 0x0115: return "?_query_new_mode@@YAHXZ";
+    case 0x0116: return "?_set_new_handler@@YAP6AHI@ZH@Z";
+    case 0x0117: return "?_set_new_handler@@YAP6AHI@ZP6AHI@Z@Z";
+    case 0x0118: return "?_set_new_mode@@YAHH@Z";
+    case 0x0119:
+      return "?_set_se_translator@@YAP6AXIPAU_EXCEPTION_POINTERS@@@ZH@Z";
+    case 0x011a:
+      return "?_set_se_translator@@YAP6AXIPAU_EXCEPTION_POINTERS@@@ZP6AXI0@Z@Z";
+    case 0x011b: return "?_sopen@@YAHPBDHHH@Z";
+    case 0x011c: return "?_type_info_dtor_internal_method@type_info@@QAEXXZ";
+    case 0x011d: return "?_wopen@@YAHPB_WHH@Z";
+    case 0x011e: return "?_wsopen@@YAHPB_WHHH@Z";
+    case 0x011f: return "?before@type_info@@QBE_NABV1@@Z";
+    case 0x0120: return "?current@location@Concurrency@@SA?AV12@XZ";
+    case 0x0121: return "?from_numa_node@location@Concurrency@@SA?AV12@G@Z";
+    case 0x0122:
+      return "?get_error_code@scheduler_resource_allocation_error@Concurrency@@"
+             "QBEJXZ";
+    case 0x0123: return "?lock@critical_section@Concurrency@@QAEXXZ";
+    case 0x0124: return "?lock@reader_writer_lock@Concurrency@@QAEXXZ";
+    case 0x0125: return "?lock_read@reader_writer_lock@Concurrency@@QAEXXZ";
+    case 0x0126: return "?name@type_info@@QBEPBDPAU__type_info_node@@@Z";
+    case 0x0127: return "?native_handle@critical_section@Concurrency@@QAEAAV12@XZ";
+    case 0x0128:
+      return "?notify_all@_Condition_variable@details@Concurrency@@QAEXXZ";
+    case 0x0129:
+      return "?notify_one@_Condition_variable@details@Concurrency@@QAEXXZ";
+    case 0x012a: return "?raw_name@type_info@@QBEPBDXZ";
+    case 0x012b: return "?reset@event@Concurrency@@QAEXXZ";
+    case 0x012c: return "?set@event@Concurrency@@QAEXXZ";
+    case 0x012d: return "?set_new_handler@@YAP6AXXZP6AXXZ@Z";
+    case 0x012e:
+      return "?set_task_execution_resources@Concurrency@@YAXGPAU_GROUP_AFFINITY@@@"
+             "Z";
+    case 0x012f: return "?set_task_execution_resources@Concurrency@@YAXK@Z";
+    case 0x0130: return "?set_terminate@@YAP6AXXZH@Z";
+    case 0x0131: return "?set_terminate@@YAP6AXXZP6AXXZ@Z";
+    case 0x0132: return "?set_unexpected@@YAP6AXXZH@Z";
+    case 0x0133: return "?set_unexpected@@YAP6AXXZP6AXXZ@Z";
+    case 0x0134: return "?swprintf@@YAHPAGIPBGZZ";
+    case 0x0135: return "?swprintf@@YAHPA_WIPB_WZZ";
+    case 0x0136: return "?terminate@@YAXXZ";
+    case 0x0137: return "?try_lock@critical_section@Concurrency@@QAE_NXZ";
+    case 0x0138: return "?try_lock@reader_writer_lock@Concurrency@@QAE_NXZ";
+    case 0x0139: return "?try_lock_for@critical_section@Concurrency@@QAE_NI@Z";
+    case 0x013a: return "?try_lock_read@reader_writer_lock@Concurrency@@QAE_NXZ";
+    case 0x013b: return "?unexpected@@YAXXZ";
+    case 0x013c: return "?unlock@critical_section@Concurrency@@QAEXXZ";
+    case 0x013d: return "?unlock@reader_writer_lock@Concurrency@@QAEXXZ";
+    case 0x013e: return "?vswprintf@@YAHPA_WIPB_WPAD@Z";
+    case 0x013f: return "?wait@Concurrency@@YAXI@Z";
+    case 0x0140:
+      return "?wait@_Condition_variable@details@Concurrency@@QAEXAAVcritical_"
+             "section@3@@Z";
+    case 0x0141: return "?wait@event@Concurrency@@QAEII@Z";
+    case 0x0142:
+      return "?wait_for@_Condition_variable@details@Concurrency@@QAE_NAAVcritical_"
+             "section@3@I@Z";
+    case 0x0143: return "?wait_for_multiple@event@Concurrency@@SAIPAPAV12@I_NI@Z";
+    case 0x0144: return "?what@exception@std@@UBEPBDXZ";
+    case 0x0146: return "_CIacos";
+    case 0x0147: return "_CIasin";
+    case 0x0148: return "_CIatan";
+    case 0x0149: return "_CIatan2";
+    case 0x014a: return "_CIcos";
+    case 0x014b: return "_CIcosh";
+    case 0x014c: return "_CIexp";
+    case 0x014d: return "_CIfmod";
+    case 0x014e: return "_CIlog";
+    case 0x014f: return "_CIlog10";
+    case 0x0150: return "_CIpow";
+    case 0x0151: return "_CIsin";
+    case 0x0152: return "_CIsinh";
+    case 0x0153: return "_CIsqrt";
+    case 0x0154: return "_CItan";
+    case 0x0155: return "_CItanh";
+    case 0x0156: return "_CRT_RTC_INIT";
+    case 0x0157: return "_CRT_RTC_INITW";
+    case 0x0158: return "_Cbuild";
+    case 0x0159: return "_CreateFrameInfo";
+    case 0x015a: return "_CxxThrowException";
+    case 0x015b: return "_EH_prolog";
+    case 0x015c: return "_FCbuild";
+    case 0x015d: return "_FindAndUnlinkFrame";
+    case 0x015e: return "_Getdays";
+    case 0x015f: return "_Getmonths";
+    case 0x0160: return "_Gettnames";
+    case 0x0161: return "_HUGE";
+    case 0x0162: return "_IsExceptionObjectToBeDestroyed";
+    case 0x0163: return "_LCbuild";
+    case 0x0164: return "_NLG_Dispatch2";
+    case 0x0165: return "_NLG_Return";
+    case 0x0166: return "_NLG_Return2";
+    case 0x0167: return "_SetWinRTOutOfMemoryExceptionCallback";
+    case 0x0168: return "_Strftime";
+    case 0x0169: return "_W_Getdays";
+    case 0x016a: return "_W_Getmonths";
+    case 0x016b: return "_W_Gettnames";
+    case 0x016c: return "_Wcsftime";
+    case 0x016d: return "_XcptFilter";
+    case 0x016e: return "__AdjustPointer";
+    case 0x016f: return "__BuildCatchObject";
+    case 0x0170: return "__BuildCatchObjectHelper";
+    case 0x0171: return "__CppXcptFilter";
+    case 0x0172: return "__CxxDetectRethrow";
+    case 0x0173: return "__CxxExceptionFilter";
+    case 0x0174: return "__CxxFrameHandler";
+    case 0x0175: return "__CxxFrameHandler2";
+    case 0x0176: return "__CxxFrameHandler3";
+    case 0x0177: return "__CxxLongjmpUnwind";
+    case 0x0178: return "__CxxQueryExceptionSize";
+    case 0x0179: return "__CxxRegisterExceptionObject";
+    case 0x017a: return "__CxxUnregisterExceptionObject";
+    case 0x017b: return "__DestructExceptionObject";
+    case 0x017c: return "__FrameUnwindFilter";
+    case 0x017d: return "__GetPlatformExceptionInfo";
+    case 0x017e: return "__RTCastToVoid";
+    case 0x017f: return "__RTDynamicCast";
+    case 0x0180: return "__RTtypeid";
+    case 0x0181: return "__STRINGTOLD";
+    case 0x0182: return "__STRINGTOLD_L";
+    case 0x0183: return "__TypeMatch";
+    case 0x0184: return "___lc_codepage_func";
+    case 0x0185: return "___lc_collate_cp_func";
+    case 0x0186: return "___lc_locale_name_func";
+    case 0x0187: return "___mb_cur_max_func";
+    case 0x0188: return "___mb_cur_max_l_func";
+    case 0x0189: return "___setlc_active_func";
+    case 0x018a: return "___unguarded_readlc_active_add_func";
+    case 0x018b: return "__argc";
+    case 0x018c: return "__argv";
+    case 0x018d: return "__badioinfo";
+    case 0x018e: return "__clean_type_info_names_internal";
+    case 0x018f: return "__control87_2";
+    case 0x0190: return "__create_locale";
+    case 0x0191: return "__crtCompareStringA";
+    case 0x0192: return "__crtCompareStringEx";
+    case 0x0193: return "__crtCompareStringW";
+    case 0x0194: return "__crtCreateEventExW";
+    case 0x0195: return "__crtCreateSemaphoreExW";
+    case 0x0196: return "__crtCreateSymbolicLinkW";
+    case 0x0197: return "__crtEnumSystemLocalesEx";
+    case 0x0198: return "__crtFlsAlloc";
+    case 0x0199: return "__crtFlsFree";
+    case 0x019a: return "__crtFlsGetValue";
+    case 0x019b: return "__crtFlsSetValue";
+    case 0x019c: return "__crtGetDateFormatEx";
+    case 0x019d: return "__crtGetFileInformationByHandleEx";
+    case 0x019e: return "__crtGetLocaleInfoEx";
+    case 0x019f: return "__crtGetShowWindowMode";
+    case 0x01a0: return "__crtGetTickCount64";
+    case 0x01a1: return "__crtGetTimeFormatEx";
+    case 0x01a2: return "__crtGetUserDefaultLocaleName";
+    case 0x01a3: return "__crtInitializeCriticalSectionEx";
+    case 0x01a4: return "__crtIsPackagedApp";
+    case 0x01a5: return "__crtIsValidLocaleName";
+    case 0x01a6: return "__crtLCMapStringA";
+    case 0x01a7: return "__crtLCMapStringEx";
+    case 0x01a8: return "__crtLCMapStringW";
+    case 0x01a9: return "__crtSetFileInformationByHandle";
+    case 0x01aa: return "__crtSetThreadStackGuarantee";
+    case 0x01ab: return "__crtSetUnhandledExceptionFilter";
+    case 0x01ac: return "__crtSleep";
+    case 0x01ad: return "__crtTerminateProcess";
+    case 0x01ae: return "__crtUnhandledException";
+    case 0x01af: return "__daylight";
+    case 0x01b0: return "__dllonexit";
+    case 0x01b1: return "__doserrno";
+    case 0x01b2: return "__dstbias";
+    case 0x01b3: return "__fpecode";
+    case 0x01b4: return "__free_locale";
+    case 0x01b5: return "__get_current_locale";
+    case 0x01b6: return "__get_flsindex";
+    case 0x01b7: return "__get_tlsindex";
+    case 0x01b8: return "__getmainargs";
+    case 0x01b9: return "__initenv";
+    case 0x01ba: return "__iob_func";
+    case 0x01bb: return "__isascii";
+    case 0x01bc: return "__iscsym";
+    case 0x01bd: return "__iscsymf";
+    case 0x01be: return "__iswcsym";
+    case 0x01bf: return "__iswcsymf";
+    case 0x01c0: return "__lconv";
+    case 0x01c1: return "__lconv_init";
+    case 0x01c2: return "__libm_sse2_acos";
+    case 0x01c3: return "__libm_sse2_acosf";
+    case 0x01c4: return "__libm_sse2_asin";
+    case 0x01c5: return "__libm_sse2_asinf";
+    case 0x01c6: return "__libm_sse2_atan";
+    case 0x01c7: return "__libm_sse2_atan2";
+    case 0x01c8: return "__libm_sse2_atanf";
+    case 0x01c9: return "__libm_sse2_cos";
+    case 0x01ca: return "__libm_sse2_cosf";
+    case 0x01cb: return "__libm_sse2_exp";
+    case 0x01cc: return "__libm_sse2_expf";
+    case 0x01cd: return "__libm_sse2_log";
+    case 0x01ce: return "__libm_sse2_log10";
+    case 0x01cf: return "__libm_sse2_log10f";
+    case 0x01d0: return "__libm_sse2_logf";
+    case 0x01d1: return "__libm_sse2_pow";
+    case 0x01d2: return "__libm_sse2_powf";
+    case 0x01d3: return "__libm_sse2_sin";
+    case 0x01d4: return "__libm_sse2_sinf";
+    case 0x01d5: return "__libm_sse2_tan";
+    case 0x01d6: return "__libm_sse2_tanf";
+    case 0x01d7: return "__mb_cur_max";
+    case 0x01d8: return "__p___argc";
+    case 0x01d9: return "__p___argv";
+    case 0x01da: return "__p___initenv";
+    case 0x01db: return "__p___mb_cur_max";
+    case 0x01dc: return "__p___wargv";
+    case 0x01dd: return "__p___winitenv";
+    case 0x01de: return "__p__acmdln";
+    case 0x01df: return "__p__commode";
+    case 0x01e0: return "__p__daylight";
+    case 0x01e1: return "__p__dstbias";
+    case 0x01e2: return "__p__environ";
+    case 0x01e3: return "__p__fmode";
+    case 0x01e4: return "__p__iob";
+    case 0x01e5: return "__p__mbcasemap";
+    case 0x01e6: return "__p__mbctype";
+    case 0x01e7: return "__p__pctype";
+    case 0x01e8: return "__p__pgmptr";
+    case 0x01e9: return "__p__pwctype";
+    case 0x01ea: return "__p__timezone";
+    case 0x01eb: return "__p__tzname";
+    case 0x01ec: return "__p__wcmdln";
+    case 0x01ed: return "__p__wenviron";
+    case 0x01ee: return "__p__wpgmptr";
+    case 0x01ef: return "__pctype_func";
+    case 0x01f0: return "__pioinfo";
+    case 0x01f1: return "__pwctype_func";
+    case 0x01f2: return "__pxcptinfoptrs";
+    case 0x01f3: return "__report_gsfailure";
+    case 0x01f4: return "__set_app_type";
+    case 0x01f5: return "__setlc_active";
+    case 0x01f6: return "__setusermatherr";
+    case 0x01f7: return "__strncnt";
+    case 0x01f8: return "__swprintf_l";
+    case 0x01f9: return "__sys_errlist";
+    case 0x01fa: return "__sys_nerr";
+    case 0x01fb: return "__threadhandle";
+    case 0x01fc: return "__threadid";
+    case 0x01fd: return "__timezone";
+    case 0x01fe: return "__toascii";
+    case 0x01ff: return "__tzname";
+    case 0x0200: return "__unDName";
+    case 0x0201: return "__unDNameEx";
+    case 0x0202: return "__unDNameHelper";
+    case 0x010e: return "__uncaught_exception";
+    case 0x0203: return "__unguarded_readlc_active";
+    case 0x0204: return "__vswprintf_l";
+    case 0x0205: return "__wargv";
+    case 0x0206: return "__wcserror";
+    case 0x0207: return "__wcserror_s";
+    case 0x0208: return "__wcsncnt";
+    case 0x0209: return "__wgetmainargs";
+    case 0x020a: return "__winitenv";
+    case 0x020b: return "_abnormal_termination";
+    case 0x020c: return "_abs64";
+    case 0x020d: return "_access";
+    case 0x020e: return "_access_s";
+    case 0x020f: return "_acmdln";
+    case 0x0210: return "_aligned_free";
+    case 0x0211: return "_aligned_malloc";
+    case 0x0212: return "_aligned_msize";
+    case 0x0213: return "_aligned_offset_malloc";
+    case 0x0214: return "_aligned_offset_realloc";
+    case 0x0215: return "_aligned_offset_recalloc";
+    case 0x0216: return "_aligned_realloc";
+    case 0x0217: return "_aligned_recalloc";
+    case 0x0218: return "_amsg_exit";
+    case 0x0219: return "_assert";
+    case 0x021a: return "_atodbl";
+    case 0x021b: return "_atodbl_l";
+    case 0x021c: return "_atof_l";
+    case 0x021d: return "_atoflt";
+    case 0x021e: return "_atoflt_l";
+    case 0x021f: return "_atoi64";
+    case 0x0220: return "_atoi64_l";
+    case 0x0221: return "_atoi_l";
+    case 0x0222: return "_atol_l";
+    case 0x0223: return "_atoldbl";
+    case 0x0224: return "_atoldbl_l";
+    case 0x0225: return "_atoll_l";
+    case 0x0226: return "_beep";
+    case 0x0227: return "_beginthread";
+    case 0x0228: return "_beginthreadex";
+    case 0x0229: return "_byteswap_uint64";
+    case 0x022a: return "_byteswap_ulong";
+    case 0x022b: return "_byteswap_ushort";
+    case 0x022c: return "_c_exit";
+    case 0x022d: return "_cabs";
+    case 0x022e: return "_callnewh";
+    case 0x022f: return "_calloc_crt";
+    case 0x0230: return "_cexit";
+    case 0x0231: return "_cgets";
+    case 0x0232: return "_cgets_s";
+    case 0x0233: return "_cgetws";
+    case 0x0234: return "_cgetws_s";
+    case 0x0235: return "_chdir";
+    case 0x0236: return "_chdrive";
+    case 0x0237: return "_chgsign";
+    case 0x0238: return "_chgsignf";
+    case 0x0239: return "_chkesp";
+    case 0x023a: return "_chmod";
+    case 0x023b: return "_chsize";
+    case 0x023c: return "_chsize_s";
+    case 0x023d: return "_clearfp";
+    case 0x023e: return "_close";
+    case 0x023f: return "_commit";
+    case 0x0240: return "_commode";
+    case 0x0241: return "_configthreadlocale";
+    case 0x0242: return "_control87";
+    case 0x0243: return "_controlfp";
+    case 0x0244: return "_controlfp_s";
+    case 0x0245: return "_copysign";
+    case 0x0246: return "_copysignf";
+    case 0x0247: return "_cprintf";
+    case 0x0248: return "_cprintf_l";
+    case 0x0249: return "_cprintf_p";
+    case 0x024a: return "_cprintf_p_l";
+    case 0x024b: return "_cprintf_s";
+    case 0x024c: return "_cprintf_s_l";
+    case 0x024d: return "_cputs";
+    case 0x024e: return "_cputws";
+    case 0x024f: return "_creat";
+    case 0x0250: return "_create_locale";
+    case 0x0251: return "_crt_debugger_hook";
+    case 0x0252: return "_cscanf";
+    case 0x0253: return "_cscanf_l";
+    case 0x0254: return "_cscanf_s";
+    case 0x0255: return "_cscanf_s_l";
+    case 0x0256: return "_ctime32";
+    case 0x0257: return "_ctime32_s";
+    case 0x0258: return "_ctime64";
+    case 0x0259: return "_ctime64_s";
+    case 0x025a: return "_cwait";
+    case 0x025b: return "_cwprintf";
+    case 0x025c: return "_cwprintf_l";
+    case 0x025d: return "_cwprintf_p";
+    case 0x025e: return "_cwprintf_p_l";
+    case 0x025f: return "_cwprintf_s";
+    case 0x0260: return "_cwprintf_s_l";
+    case 0x0261: return "_cwscanf";
+    case 0x0262: return "_cwscanf_l";
+    case 0x0263: return "_cwscanf_s";
+    case 0x0264: return "_cwscanf_s_l";
+    case 0x0265: return "_daylight";
+    case 0x0266: return "_dclass";
+    case 0x0267: return "_difftime32";
+    case 0x0268: return "_difftime64";
+    case 0x0269: return "_dosmaperr";
+    case 0x026a: return "_dpcomp";
+    case 0x026b: return "_dsign";
+    case 0x026c: return "_dstbias";
+    case 0x026d: return "_dtest";
+    case 0x026e: return "_dup";
+    case 0x026f: return "_dup2";
+    case 0x0270: return "_dupenv_s";
+    case 0x0271: return "_ecvt";
+    case 0x0272: return "_ecvt_s";
+    case 0x0273: return "_endthread";
+    case 0x0274: return "_endthreadex";
+    case 0x0275: return "_environ";
+    case 0x0276: return "_eof";
+    case 0x0277: return "_errno";
+    case 0x0278: return "_except1";
+    case 0x0279: return "_except_handler2";
+    case 0x027a: return "_except_handler3";
+    case 0x027b: return "_except_handler4_common";
+    case 0x027c: return "_execl";
+    case 0x027d: return "_execle";
+    case 0x027e: return "_execlp";
+    case 0x027f: return "_execlpe";
+    case 0x0280: return "_execv";
+    case 0x0281: return "_execve";
+    case 0x0282: return "_execvp";
+    case 0x0283: return "_execvpe";
+    case 0x0284: return "_exit";
+    case 0x0285: return "_expand";
+    case 0x0286: return "_fclose_nolock";
+    case 0x0287: return "_fcloseall";
+    case 0x0288: return "_fcvt";
+    case 0x0289: return "_fcvt_s";
+    case 0x028a: return "_fdclass";
+    case 0x028b: return "_fdopen";
+    case 0x028c: return "_fdpcomp";
+    case 0x028d: return "_fdsign";
+    case 0x028e: return "_fdtest";
+    case 0x028f: return "_fflush_nolock";
+    case 0x0290: return "_fgetchar";
+    case 0x0291: return "_fgetwc_nolock";
+    case 0x0292: return "_fgetwchar";
+    case 0x0293: return "_filbuf";
+    case 0x0294: return "_filelength";
+    case 0x0295: return "_filelengthi64";
+    case 0x0296: return "_fileno";
+    case 0x0297: return "_findclose";
+    case 0x0298: return "_findfirst32";
+    case 0x0299: return "_findfirst32i64";
+    case 0x029a: return "_findfirst64";
+    case 0x029b: return "_findfirst64i32";
+    case 0x029c: return "_findnext32";
+    case 0x029d: return "_findnext32i64";
+    case 0x029e: return "_findnext64";
+    case 0x029f: return "_findnext64i32";
+    case 0x02a0: return "_finite";
+    case 0x02a1: return "_flsbuf";
+    case 0x02a2: return "_flushall";
+    case 0x02a3: return "_fmode";
+    case 0x02a4: return "_fpclass";
+    case 0x02a5: return "_fpieee_flt";
+    case 0x02a6: return "_fpreset";
+    case 0x02a7: return "_fprintf_l";
+    case 0x02a8: return "_fprintf_p";
+    case 0x02a9: return "_fprintf_p_l";
+    case 0x02aa: return "_fprintf_s_l";
+    case 0x02ab: return "_fputchar";
+    case 0x02ac: return "_fputwc_nolock";
+    case 0x02ad: return "_fputwchar";
+    case 0x02ae: return "_fread_nolock";
+    case 0x02af: return "_fread_nolock_s";
+    case 0x02b0: return "_free_locale";
+    case 0x02b1: return "_freea";
+    case 0x02b2: return "_freea_s";
+    case 0x02b3: return "_freefls";
+    case 0x02b4: return "_fscanf_l";
+    case 0x02b5: return "_fscanf_s_l";
+    case 0x02b6: return "_fseek_nolock";
+    case 0x02b7: return "_fseeki64";
+    case 0x02b8: return "_fseeki64_nolock";
+    case 0x02b9: return "_fsopen";
+    case 0x02ba: return "_fstat32";
+    case 0x02bb: return "_fstat32i64";
+    case 0x02bc: return "_fstat64";
+    case 0x02bd: return "_fstat64i32";
+    case 0x02be: return "_ftell_nolock";
+    case 0x02bf: return "_ftelli64";
+    case 0x02c0: return "_ftelli64_nolock";
+    case 0x02c1: return "_ftime32";
+    case 0x02c2: return "_ftime32_s";
+    case 0x02c3: return "_ftime64";
+    case 0x02c4: return "_ftime64_s";
+    case 0x02c5: return "_ftol";
+    case 0x02c6: return "_fullpath";
+    case 0x02c7: return "_futime32";
+    case 0x02c8: return "_futime64";
+    case 0x02c9: return "_fwprintf_l";
+    case 0x02ca: return "_fwprintf_p";
+    case 0x02cb: return "_fwprintf_p_l";
+    case 0x02cc: return "_fwprintf_s_l";
+    case 0x02cd: return "_fwrite_nolock";
+    case 0x02ce: return "_fwscanf_l";
+    case 0x02cf: return "_fwscanf_s_l";
+    case 0x02d0: return "_gcvt";
+    case 0x02d1: return "_gcvt_s";
+    case 0x02d2: return "_get_current_locale";
+    case 0x02d3: return "_get_daylight";
+    case 0x02d4: return "_get_doserrno";
+    case 0x02d5: return "_get_dstbias";
+    case 0x02d6: return "_get_errno";
+    case 0x02d7: return "_get_fmode";
+    case 0x02d8: return "_get_heap_handle";
+    case 0x02d9: return "_get_invalid_parameter_handler";
+    case 0x02da: return "_get_osfhandle";
+    case 0x02db: return "_get_output_format";
+    case 0x02dc: return "_get_pgmptr";
+    case 0x02dd: return "_get_printf_count_output";
+    case 0x02de: return "_get_purecall_handler";
+    case 0x02df: return "_get_terminate";
+    case 0x02e0: return "_get_timezone";
+    case 0x02e1: return "_get_tzname";
+    case 0x02e2: return "_get_unexpected";
+    case 0x02e3: return "_get_wpgmptr";
+    case 0x02e4: return "_getc_nolock";
+    case 0x02e5: return "_getch";
+    case 0x02e6: return "_getch_nolock";
+    case 0x02e7: return "_getche";
+    case 0x02e8: return "_getche_nolock";
+    case 0x02e9: return "_getcwd";
+    case 0x02ea: return "_getdcwd";
+    case 0x02eb: return "_getdiskfree";
+    case 0x02ec: return "_getdllprocaddr";
+    case 0x02ed: return "_getdrive";
+    case 0x02ee: return "_getdrives";
+    case 0x02ef: return "_getmaxstdio";
+    case 0x02f0: return "_getmbcp";
+    case 0x02f1: return "_getpid";
+    case 0x02f2: return "_getptd";
+    case 0x02f3: return "_getsystime";
+    case 0x02f4: return "_getw";
+    case 0x02f5: return "_getwch";
+    case 0x02f6: return "_getwch_nolock";
+    case 0x02f7: return "_getwche";
+    case 0x02f8: return "_getwche_nolock";
+    case 0x02f9: return "_getws";
+    case 0x02fa: return "_getws_s";
+    case 0x02fb: return "_global_unwind2";
+    case 0x02fc: return "_gmtime32";
+    case 0x02fd: return "_gmtime32_s";
+    case 0x02fe: return "_gmtime64";
+    case 0x02ff: return "_gmtime64_s";
+    case 0x0300: return "_heapadd";
+    case 0x0301: return "_heapchk";
+    case 0x0302: return "_heapmin";
+    case 0x0303: return "_heapset";
+    case 0x0304: return "_heapused";
+    case 0x0305: return "_heapwalk";
+    case 0x0306: return "_hypot";
+    case 0x0307: return "_hypotf";
+    case 0x0308: return "_i64toa";
+    case 0x0309: return "_i64toa_s";
+    case 0x030a: return "_i64tow";
+    case 0x030b: return "_i64tow_s";
+    case 0x030c: return "_initptd";
+    case 0x030d: return "_initterm";
+    case 0x030e: return "_initterm_e";
+    case 0x030f: return "_inp";
+    case 0x0310: return "_inpd";
+    case 0x0311: return "_inpw";
+    case 0x0312: return "_invalid_parameter";
+    case 0x0313: return "_invalid_parameter_noinfo";
+    case 0x0314: return "_invalid_parameter_noinfo_noreturn";
+    case 0x0315: return "_invoke_watson";
+    case 0x0316: return "_iob";
+    case 0x0317: return "_isalnum_l";
+    case 0x0318: return "_isalpha_l";
+    case 0x0319: return "_isatty";
+    case 0x031a: return "_isblank_l";
+    case 0x031b: return "_iscntrl_l";
+    case 0x031c: return "_isctype";
+    case 0x031d: return "_isctype_l";
+    case 0x031e: return "_isdigit_l";
+    case 0x031f: return "_isgraph_l";
+    case 0x0320: return "_isleadbyte_l";
+    case 0x0321: return "_islower_l";
+    case 0x0322: return "_ismbbalnum";
+    case 0x0323: return "_ismbbalnum_l";
+    case 0x0324: return "_ismbbalpha";
+    case 0x0325: return "_ismbbalpha_l";
+    case 0x0326: return "_ismbbblank";
+    case 0x0327: return "_ismbbblank_l";
+    case 0x0328: return "_ismbbgraph";
+    case 0x0329: return "_ismbbgraph_l";
+    case 0x032a: return "_ismbbkalnum";
+    case 0x032b: return "_ismbbkalnum_l";
+    case 0x032c: return "_ismbbkana";
+    case 0x032d: return "_ismbbkana_l";
+    case 0x032e: return "_ismbbkprint";
+    case 0x032f: return "_ismbbkprint_l";
+    case 0x0330: return "_ismbbkpunct";
+    case 0x0331: return "_ismbbkpunct_l";
+    case 0x0332: return "_ismbblead";
+    case 0x0333: return "_ismbblead_l";
+    case 0x0334: return "_ismbbprint";
+    case 0x0335: return "_ismbbprint_l";
+    case 0x0336: return "_ismbbpunct";
+    case 0x0337: return "_ismbbpunct_l";
+    case 0x0338: return "_ismbbtrail";
+    case 0x0339: return "_ismbbtrail_l";
+    case 0x033a: return "_ismbcalnum";
+    case 0x033b: return "_ismbcalnum_l";
+    case 0x033c: return "_ismbcalpha";
+    case 0x033d: return "_ismbcalpha_l";
+    case 0x033e: return "_ismbcblank";
+    case 0x033f: return "_ismbcblank_l";
+    case 0x0340: return "_ismbcdigit";
+    case 0x0341: return "_ismbcdigit_l";
+    case 0x0342: return "_ismbcgraph";
+    case 0x0343: return "_ismbcgraph_l";
+    case 0x0344: return "_ismbchira";
+    case 0x0345: return "_ismbchira_l";
+    case 0x0346: return "_ismbckata";
+    case 0x0347: return "_ismbckata_l";
+    case 0x0348: return "_ismbcl0";
+    case 0x0349: return "_ismbcl0_l";
+    case 0x034a: return "_ismbcl1";
+    case 0x034b: return "_ismbcl1_l";
+    case 0x034c: return "_ismbcl2";
+    case 0x034d: return "_ismbcl2_l";
+    case 0x034e: return "_ismbclegal";
+    case 0x034f: return "_ismbclegal_l";
+    case 0x0350: return "_ismbclower";
+    case 0x0351: return "_ismbclower_l";
+    case 0x0352: return "_ismbcprint";
+    case 0x0353: return "_ismbcprint_l";
+    case 0x0354: return "_ismbcpunct";
+    case 0x0355: return "_ismbcpunct_l";
+    case 0x0356: return "_ismbcspace";
+    case 0x0357: return "_ismbcspace_l";
+    case 0x0358: return "_ismbcsymbol";
+    case 0x0359: return "_ismbcsymbol_l";
+    case 0x035a: return "_ismbcupper";
+    case 0x035b: return "_ismbcupper_l";
+    case 0x035c: return "_ismbslead";
+    case 0x035d: return "_ismbslead_l";
+    case 0x035e: return "_ismbstrail";
+    case 0x035f: return "_ismbstrail_l";
+    case 0x0360: return "_isnan";
+    case 0x0361: return "_isprint_l";
+    case 0x0362: return "_ispunct_l";
+    case 0x0363: return "_isspace_l";
+    case 0x0364: return "_isupper_l";
+    case 0x0365: return "_iswalnum_l";
+    case 0x0366: return "_iswalpha_l";
+    case 0x0367: return "_iswblank_l";
+    case 0x0368: return "_iswcntrl_l";
+    case 0x0369: return "_iswcsym_l";
+    case 0x036a: return "_iswcsymf_l";
+    case 0x036b: return "_iswctype_l";
+    case 0x036c: return "_iswdigit_l";
+    case 0x036d: return "_iswgraph_l";
+    case 0x036e: return "_iswlower_l";
+    case 0x036f: return "_iswprint_l";
+    case 0x0370: return "_iswpunct_l";
+    case 0x0371: return "_iswspace_l";
+    case 0x0372: return "_iswupper_l";
+    case 0x0373: return "_iswxdigit_l";
+    case 0x0374: return "_isxdigit_l";
+    case 0x0375: return "_itoa";
+    case 0x0376: return "_itoa_s";
+    case 0x0377: return "_itow";
+    case 0x0378: return "_itow_s";
+    case 0x0379: return "_j0";
+    case 0x037a: return "_j1";
+    case 0x037b: return "_jn";
+    case 0x037c: return "_kbhit";
+    case 0x037d: return "_ldclass";
+    case 0x037e: return "_ldpcomp";
+    case 0x037f: return "_ldsign";
+    case 0x0380: return "_ldtest";
+    case 0x0381: return "_lfind";
+    case 0x0382: return "_lfind_s";
+    case 0x0383: return "_libm_sse2_acos_precise";
+    case 0x0384: return "_libm_sse2_asin_precise";
+    case 0x0385: return "_libm_sse2_atan_precise";
+    case 0x0386: return "_libm_sse2_cos_precise";
+    case 0x0387: return "_libm_sse2_exp_precise";
+    case 0x0388: return "_libm_sse2_log10_precise";
+    case 0x0389: return "_libm_sse2_log_precise";
+    case 0x038a: return "_libm_sse2_pow_precise";
+    case 0x038b: return "_libm_sse2_sin_precise";
+    case 0x038c: return "_libm_sse2_sqrt_precise";
+    case 0x038d: return "_libm_sse2_tan_precise";
+    case 0x038e: return "_loaddll";
+    case 0x038f: return "_local_unwind2";
+    case 0x0390: return "_local_unwind4";
+    case 0x0391: return "_localtime32";
+    case 0x0392: return "_localtime32_s";
+    case 0x0393: return "_localtime64";
+    case 0x0394: return "_localtime64_s";
+    case 0x0395: return "_lock";
+    case 0x0396: return "_lock_file";
+    case 0x0397: return "_locking";
+    case 0x0398: return "_logb";
+    case 0x0399: return "_longjmpex";
+    case 0x039a: return "_lrotl";
+    case 0x039b: return "_lrotr";
+    case 0x039c: return "_lsearch";
+    case 0x039d: return "_lsearch_s";
+    case 0x039e: return "_lseek";
+    case 0x039f: return "_lseeki64";
+    case 0x03a0: return "_ltoa";
+    case 0x03a1: return "_ltoa_s";
+    case 0x03a2: return "_ltow";
+    case 0x03a3: return "_ltow_s";
+    case 0x03a4: return "_makepath";
+    case 0x03a5: return "_makepath_s";
+    case 0x03a6: return "_malloc_crt";
+    case 0x03a7: return "_mbbtombc";
+    case 0x03a8: return "_mbbtombc_l";
+    case 0x03a9: return "_mbbtype";
+    case 0x03aa: return "_mbbtype_l";
+    case 0x03ab: return "_mbcasemap";
+    case 0x03ac: return "_mbccpy";
+    case 0x03ad: return "_mbccpy_l";
+    case 0x03ae: return "_mbccpy_s";
+    case 0x03af: return "_mbccpy_s_l";
+    case 0x03b0: return "_mbcjistojms";
+    case 0x03b1: return "_mbcjistojms_l";
+    case 0x03b2: return "_mbcjmstojis";
+    case 0x03b3: return "_mbcjmstojis_l";
+    case 0x03b4: return "_mbclen";
+    case 0x03b5: return "_mbclen_l";
+    case 0x03b6: return "_mbctohira";
+    case 0x03b7: return "_mbctohira_l";
+    case 0x03b8: return "_mbctokata";
+    case 0x03b9: return "_mbctokata_l";
+    case 0x03ba: return "_mbctolower";
+    case 0x03bb: return "_mbctolower_l";
+    case 0x03bc: return "_mbctombb";
+    case 0x03bd: return "_mbctombb_l";
+    case 0x03be: return "_mbctoupper";
+    case 0x03bf: return "_mbctoupper_l";
+    case 0x03c0: return "_mbctype";
+    case 0x03c1: return "_mblen_l";
+    case 0x03c2: return "_mbsbtype";
+    case 0x03c3: return "_mbsbtype_l";
+    case 0x03c4: return "_mbscat_s";
+    case 0x03c5: return "_mbscat_s_l";
+    case 0x03c6: return "_mbschr";
+    case 0x03c7: return "_mbschr_l";
+    case 0x03c8: return "_mbscmp";
+    case 0x03c9: return "_mbscmp_l";
+    case 0x03ca: return "_mbscoll";
+    case 0x03cb: return "_mbscoll_l";
+    case 0x03cc: return "_mbscpy_s";
+    case 0x03cd: return "_mbscpy_s_l";
+    case 0x03ce: return "_mbscspn";
+    case 0x03cf: return "_mbscspn_l";
+    case 0x03d0: return "_mbsdec";
+    case 0x03d1: return "_mbsdec_l";
+    case 0x03d2: return "_mbsicmp";
+    case 0x03d3: return "_mbsicmp_l";
+    case 0x03d4: return "_mbsicoll";
+    case 0x03d5: return "_mbsicoll_l";
+    case 0x03d6: return "_mbsinc";
+    case 0x03d7: return "_mbsinc_l";
+    case 0x03d8: return "_mbslen";
+    case 0x03d9: return "_mbslen_l";
+    case 0x03da: return "_mbslwr";
+    case 0x03db: return "_mbslwr_l";
+    case 0x03dc: return "_mbslwr_s";
+    case 0x03dd: return "_mbslwr_s_l";
+    case 0x03de: return "_mbsnbcat";
+    case 0x03df: return "_mbsnbcat_l";
+    case 0x03e0: return "_mbsnbcat_s";
+    case 0x03e1: return "_mbsnbcat_s_l";
+    case 0x03e2: return "_mbsnbcmp";
+    case 0x03e3: return "_mbsnbcmp_l";
+    case 0x03e4: return "_mbsnbcnt";
+    case 0x03e5: return "_mbsnbcnt_l";
+    case 0x03e6: return "_mbsnbcoll";
+    case 0x03e7: return "_mbsnbcoll_l";
+    case 0x03e8: return "_mbsnbcpy";
+    case 0x03e9: return "_mbsnbcpy_l";
+    case 0x03ea: return "_mbsnbcpy_s";
+    case 0x03eb: return "_mbsnbcpy_s_l";
+    case 0x03ec: return "_mbsnbicmp";
+    case 0x03ed: return "_mbsnbicmp_l";
+    case 0x03ee: return "_mbsnbicoll";
+    case 0x03ef: return "_mbsnbicoll_l";
+    case 0x03f0: return "_mbsnbset";
+    case 0x03f1: return "_mbsnbset_l";
+    case 0x03f2: return "_mbsnbset_s";
+    case 0x03f3: return "_mbsnbset_s_l";
+    case 0x03f4: return "_mbsncat";
+    case 0x03f5: return "_mbsncat_l";
+    case 0x03f6: return "_mbsncat_s";
+    case 0x03f7: return "_mbsncat_s_l";
+    case 0x03f8: return "_mbsnccnt";
+    case 0x03f9: return "_mbsnccnt_l";
+    case 0x03fa: return "_mbsncmp";
+    case 0x03fb: return "_mbsncmp_l";
+    case 0x03fc: return "_mbsncoll";
+    case 0x03fd: return "_mbsncoll_l";
+    case 0x03fe: return "_mbsncpy";
+    case 0x03ff: return "_mbsncpy_l";
+    case 0x0400: return "_mbsncpy_s";
+    case 0x0401: return "_mbsncpy_s_l";
+    case 0x0402: return "_mbsnextc";
+    case 0x0403: return "_mbsnextc_l";
+    case 0x0404: return "_mbsnicmp";
+    case 0x0405: return "_mbsnicmp_l";
+    case 0x0406: return "_mbsnicoll";
+    case 0x0407: return "_mbsnicoll_l";
+    case 0x0408: return "_mbsninc";
+    case 0x0409: return "_mbsninc_l";
+    case 0x040a: return "_mbsnlen";
+    case 0x040b: return "_mbsnlen_l";
+    case 0x040c: return "_mbsnset";
+    case 0x040d: return "_mbsnset_l";
+    case 0x040e: return "_mbsnset_s";
+    case 0x040f: return "_mbsnset_s_l";
+    case 0x0410: return "_mbspbrk";
+    case 0x0411: return "_mbspbrk_l";
+    case 0x0412: return "_mbsrchr";
+    case 0x0413: return "_mbsrchr_l";
+    case 0x0414: return "_mbsrev";
+    case 0x0415: return "_mbsrev_l";
+    case 0x0416: return "_mbsset";
+    case 0x0417: return "_mbsset_l";
+    case 0x0418: return "_mbsset_s";
+    case 0x0419: return "_mbsset_s_l";
+    case 0x041a: return "_mbsspn";
+    case 0x041b: return "_mbsspn_l";
+    case 0x041c: return "_mbsspnp";
+    case 0x041d: return "_mbsspnp_l";
+    case 0x041e: return "_mbsstr";
+    case 0x041f: return "_mbsstr_l";
+    case 0x0420: return "_mbstok";
+    case 0x0421: return "_mbstok_l";
+    case 0x0422: return "_mbstok_s";
+    case 0x0423: return "_mbstok_s_l";
+    case 0x0424: return "_mbstowcs_l";
+    case 0x0425: return "_mbstowcs_s_l";
+    case 0x0426: return "_mbstrlen";
+    case 0x0427: return "_mbstrlen_l";
+    case 0x0428: return "_mbstrnlen";
+    case 0x0429: return "_mbstrnlen_l";
+    case 0x042a: return "_mbsupr";
+    case 0x042b: return "_mbsupr_l";
+    case 0x042c: return "_mbsupr_s";
+    case 0x042d: return "_mbsupr_s_l";
+    case 0x042e: return "_mbtowc_l";
+    case 0x042f: return "_memccpy";
+    case 0x0430: return "_memicmp";
+    case 0x0431: return "_memicmp_l";
+    case 0x0432: return "_mkdir";
+    case 0x0433: return "_mkgmtime32";
+    case 0x0434: return "_mkgmtime64";
+    case 0x0435: return "_mktemp";
+    case 0x0436: return "_mktemp_s";
+    case 0x0437: return "_mktime32";
+    case 0x0438: return "_mktime64";
+    case 0x0439: return "_msize";
+    case 0x043a: return "_nextafter";
+    case 0x043b: return "_onexit";
+    case 0x043c: return "_open";
+    case 0x043d: return "_open_osfhandle";
+    case 0x043e: return "_outp";
+    case 0x043f: return "_outpd";
+    case 0x0440: return "_outpw";
+    case 0x0441: return "_pclose";
+    case 0x0442: return "_pctype";
+    case 0x0443: return "_pgmptr";
+    case 0x0444: return "_pipe";
+    case 0x0445: return "_popen";
+    case 0x0446: return "_printf_l";
+    case 0x0447: return "_printf_p";
+    case 0x0448: return "_printf_p_l";
+    case 0x0449: return "_printf_s_l";
+    case 0x044a: return "_purecall";
+    case 0x044b: return "_putch";
+    case 0x044c: return "_putch_nolock";
+    case 0x044d: return "_putenv";
+    case 0x044e: return "_putenv_s";
+    case 0x044f: return "_putw";
+    case 0x0450: return "_putwch";
+    case 0x0451: return "_putwch_nolock";
+    case 0x0452: return "_putws";
+    case 0x0453: return "_pwctype";
+    case 0x0454: return "_read";
+    case 0x0455: return "_realloc_crt";
+    case 0x0456: return "_recalloc";
+    case 0x0457: return "_recalloc_crt";
+    case 0x0458: return "_resetstkoflw";
+    case 0x0459: return "_rmdir";
+    case 0x045a: return "_rmtmp";
+    case 0x045b: return "_rotl";
+    case 0x045c: return "_rotl64";
+    case 0x045d: return "_rotr";
+    case 0x045e: return "_rotr64";
+    case 0x045f: return "_scalb";
+    case 0x0460: return "_scanf_l";
+    case 0x0461: return "_scanf_s_l";
+    case 0x0462: return "_scprintf";
+    case 0x0463: return "_scprintf_l";
+    case 0x0464: return "_scprintf_p";
+    case 0x0465: return "_scprintf_p_l";
+    case 0x0466: return "_scwprintf";
+    case 0x0467: return "_scwprintf_l";
+    case 0x0468: return "_scwprintf_p";
+    case 0x0469: return "_scwprintf_p_l";
+    case 0x046a: return "_searchenv";
+    case 0x046b: return "_searchenv_s";
+    case 0x046d: return "_seh_longjmp_unwind";
+    case 0x046c: return "_seh_longjmp_unwind4";
+    case 0x046e: return "_set_SSE2_enable";
+    case 0x046f: return "_set_abort_behavior";
+    case 0x0470: return "_set_controlfp";
+    case 0x0471: return "_set_doserrno";
+    case 0x0472: return "_set_errno";
+    case 0x0473: return "_set_error_mode";
+    case 0x0474: return "_set_fmode";
+    case 0x0475: return "_set_invalid_parameter_handler";
+    case 0x0476: return "_set_malloc_crt_max_wait";
+    case 0x0477: return "_set_output_format";
+    case 0x0478: return "_set_printf_count_output";
+    case 0x0479: return "_set_purecall_handler";
+    case 0x047a: return "_seterrormode";
+    case 0x047b: return "_setjmp";
+    case 0x047c: return "_setjmp3";
+    case 0x047d: return "_setmaxstdio";
+    case 0x047e: return "_setmbcp";
+    case 0x047f: return "_setmode";
+    case 0x0480: return "_setsystime";
+    case 0x0481: return "_sleep";
+    case 0x0482: return "_snprintf";
+    case 0x0483: return "_snprintf_c";
+    case 0x0484: return "_snprintf_c_l";
+    case 0x0485: return "_snprintf_l";
+    case 0x0486: return "_snprintf_s";
+    case 0x0487: return "_snprintf_s_l";
+    case 0x0488: return "_snscanf";
+    case 0x0489: return "_snscanf_l";
+    case 0x048a: return "_snscanf_s";
+    case 0x048b: return "_snscanf_s_l";
+    case 0x048c: return "_snwprintf";
+    case 0x048d: return "_snwprintf_l";
+    case 0x048e: return "_snwprintf_s";
+    case 0x048f: return "_snwprintf_s_l";
+    case 0x0490: return "_snwscanf";
+    case 0x0491: return "_snwscanf_l";
+    case 0x0492: return "_snwscanf_s";
+    case 0x0493: return "_snwscanf_s_l";
+    case 0x0494: return "_sopen";
+    case 0x0495: return "_sopen_s";
+    case 0x0496: return "_spawnl";
+    case 0x0497: return "_spawnle";
+    case 0x0498: return "_spawnlp";
+    case 0x0499: return "_spawnlpe";
+    case 0x049a: return "_spawnv";
+    case 0x049b: return "_spawnve";
+    case 0x049c: return "_spawnvp";
+    case 0x049d: return "_spawnvpe";
+    case 0x049e: return "_splitpath";
+    case 0x049f: return "_splitpath_s";
+    case 0x04a0: return "_sprintf_l";
+    case 0x04a1: return "_sprintf_p";
+    case 0x04a2: return "_sprintf_p_l";
+    case 0x04a3: return "_sprintf_s_l";
+    case 0x04a4: return "_sscanf_l";
+    case 0x04a5: return "_sscanf_s_l";
+    case 0x04a6: return "_stat32";
+    case 0x04a7: return "_stat32i64";
+    case 0x04a8: return "_stat64";
+    case 0x04a9: return "_stat64i32";
+    case 0x04aa: return "_statusfp";
+    case 0x04ab: return "_statusfp2";
+    case 0x04ac: return "_strcoll_l";
+    case 0x04ad: return "_strdate";
+    case 0x04ae: return "_strdate_s";
+    case 0x04af: return "_strdup";
+    case 0x04b0: return "_strerror";
+    case 0x04b1: return "_strerror_s";
+    case 0x04b2: return "_strftime_l";
+    case 0x04b3: return "_stricmp";
+    case 0x04b4: return "_stricmp_l";
+    case 0x04b5: return "_stricoll";
+    case 0x04b6: return "_stricoll_l";
+    case 0x04b7: return "_strlwr";
+    case 0x04b8: return "_strlwr_l";
+    case 0x04b9: return "_strlwr_s";
+    case 0x04ba: return "_strlwr_s_l";
+    case 0x04bb: return "_strncoll";
+    case 0x04bc: return "_strncoll_l";
+    case 0x04bd: return "_strnicmp";
+    case 0x04be: return "_strnicmp_l";
+    case 0x04bf: return "_strnicoll";
+    case 0x04c0: return "_strnicoll_l";
+    case 0x04c1: return "_strnset";
+    case 0x04c2: return "_strnset_s";
+    case 0x04c3: return "_strrev";
+    case 0x04c4: return "_strset";
+    case 0x04c5: return "_strset_s";
+    case 0x04c6: return "_strtime";
+    case 0x04c7: return "_strtime_s";
+    case 0x04c8: return "_strtod_l";
+    case 0x04c9: return "_strtof_l";
+    case 0x04ca: return "_strtoi64";
+    case 0x04cb: return "_strtoi64_l";
+    case 0x04cc: return "_strtoimax_l";
+    case 0x04cd: return "_strtol_l";
+    case 0x04ce: return "_strtold_l";
+    case 0x04cf: return "_strtoll_l";
+    case 0x04d0: return "_strtoui64";
+    case 0x04d1: return "_strtoui64_l";
+    case 0x04d2: return "_strtoul_l";
+    case 0x04d3: return "_strtoull_l";
+    case 0x04d4: return "_strtoumax_l";
+    case 0x04d5: return "_strupr";
+    case 0x04d6: return "_strupr_l";
+    case 0x04d7: return "_strupr_s";
+    case 0x04d8: return "_strupr_s_l";
+    case 0x04d9: return "_strxfrm_l";
+    case 0x04da: return "_swab";
+    case 0x04db: return "_swprintf";
+    case 0x04dc: return "_swprintf_c";
+    case 0x04dd: return "_swprintf_c_l";
+    case 0x04de: return "_swprintf_p";
+    case 0x04df: return "_swprintf_p_l";
+    case 0x04e0: return "_swprintf_s_l";
+    case 0x04e1: return "_swscanf_l";
+    case 0x04e2: return "_swscanf_s_l";
+    case 0x04e3: return "_sys_errlist";
+    case 0x04e4: return "_sys_nerr";
+    case 0x04e5: return "_tell";
+    case 0x04e6: return "_telli64";
+    case 0x04e7: return "_tempnam";
+    case 0x04e8: return "_time32";
+    case 0x04e9: return "_time64";
+    case 0x04ea: return "_timezone";
+    case 0x04eb: return "_tolower";
+    case 0x04ec: return "_tolower_l";
+    case 0x04ed: return "_toupper";
+    case 0x04ee: return "_toupper_l";
+    case 0x04ef: return "_towlower_l";
+    case 0x04f0: return "_towupper_l";
+    case 0x04f1: return "_tzname";
+    case 0x04f2: return "_tzset";
+    case 0x04f3: return "_ui64toa";
+    case 0x04f4: return "_ui64toa_s";
+    case 0x04f5: return "_ui64tow";
+    case 0x04f6: return "_ui64tow_s";
+    case 0x04f7: return "_ultoa";
+    case 0x04f8: return "_ultoa_s";
+    case 0x04f9: return "_ultow";
+    case 0x04fa: return "_ultow_s";
+    case 0x04fb: return "_umask";
+    case 0x04fc: return "_umask_s";
+    case 0x04fd: return "_ungetc_nolock";
+    case 0x04fe: return "_ungetch";
+    case 0x04ff: return "_ungetch_nolock";
+    case 0x0500: return "_ungetwc_nolock";
+    case 0x0501: return "_ungetwch";
+    case 0x0502: return "_ungetwch_nolock";
+    case 0x0503: return "_unlink";
+    case 0x0504: return "_unloaddll";
+    case 0x0505: return "_unlock";
+    case 0x0506: return "_unlock_file";
+    case 0x0507: return "_utime32";
+    case 0x0508: return "_utime64";
+    case 0x0509: return "_vacopy";
+    case 0x050a: return "_vcprintf";
+    case 0x050b: return "_vcprintf_l";
+    case 0x050c: return "_vcprintf_p";
+    case 0x050d: return "_vcprintf_p_l";
+    case 0x050e: return "_vcprintf_s";
+    case 0x050f: return "_vcprintf_s_l";
+    case 0x0510: return "_vcwprintf";
+    case 0x0511: return "_vcwprintf_l";
+    case 0x0512: return "_vcwprintf_p";
+    case 0x0513: return "_vcwprintf_p_l";
+    case 0x0514: return "_vcwprintf_s";
+    case 0x0515: return "_vcwprintf_s_l";
+    case 0x0516: return "_vfprintf_l";
+    case 0x0517: return "_vfprintf_p";
+    case 0x0518: return "_vfprintf_p_l";
+    case 0x0519: return "_vfprintf_s_l";
+    case 0x051a: return "_vfwprintf_l";
+    case 0x051b: return "_vfwprintf_p";
+    case 0x051c: return "_vfwprintf_p_l";
+    case 0x051d: return "_vfwprintf_s_l";
+    case 0x051e: return "_vprintf_l";
+    case 0x051f: return "_vprintf_p";
+    case 0x0520: return "_vprintf_p_l";
+    case 0x0521: return "_vprintf_s_l";
+    case 0x0522: return "_vscprintf";
+    case 0x0523: return "_vscprintf_l";
+    case 0x0524: return "_vscprintf_p";
+    case 0x0525: return "_vscprintf_p_l";
+    case 0x0526: return "_vscwprintf";
+    case 0x0527: return "_vscwprintf_l";
+    case 0x0528: return "_vscwprintf_p";
+    case 0x0529: return "_vscwprintf_p_l";
+    case 0x052a: return "_vsnprintf";
+    case 0x052b: return "_vsnprintf_c";
+    case 0x052c: return "_vsnprintf_c_l";
+    case 0x052d: return "_vsnprintf_l";
+    case 0x052e: return "_vsnprintf_s";
+    case 0x052f: return "_vsnprintf_s_l";
+    case 0x0530: return "_vsnwprintf";
+    case 0x0531: return "_vsnwprintf_l";
+    case 0x0532: return "_vsnwprintf_s";
+    case 0x0533: return "_vsnwprintf_s_l";
+    case 0x0534: return "_vsprintf_l";
+    case 0x0535: return "_vsprintf_p";
+    case 0x0536: return "_vsprintf_p_l";
+    case 0x0537: return "_vsprintf_s_l";
+    case 0x0538: return "_vswprintf";
+    case 0x0539: return "_vswprintf_c";
+    case 0x053a: return "_vswprintf_c_l";
+    case 0x053b: return "_vswprintf_l";
+    case 0x053c: return "_vswprintf_p";
+    case 0x053d: return "_vswprintf_p_l";
+    case 0x053e: return "_vswprintf_s_l";
+    case 0x053f: return "_vwprintf_l";
+    case 0x0540: return "_vwprintf_p";
+    case 0x0541: return "_vwprintf_p_l";
+    case 0x0542: return "_vwprintf_s_l";
+    case 0x0543: return "_waccess";
+    case 0x0544: return "_waccess_s";
+    case 0x0545: return "_wasctime";
+    case 0x0546: return "_wasctime_s";
+    case 0x0547: return "_wassert";
+    case 0x0548: return "_wchdir";
+    case 0x0549: return "_wchmod";
+    case 0x054a: return "_wcmdln";
+    case 0x054b: return "_wcreat";
+    case 0x054c: return "_wcreate_locale";
+    case 0x054d: return "_wcscoll_l";
+    case 0x054e: return "_wcsdup";
+    case 0x054f: return "_wcserror";
+    case 0x0550: return "_wcserror_s";
+    case 0x0551: return "_wcsftime_l";
+    case 0x0552: return "_wcsicmp";
+    case 0x0553: return "_wcsicmp_l";
+    case 0x0554: return "_wcsicoll";
+    case 0x0555: return "_wcsicoll_l";
+    case 0x0556: return "_wcslwr";
+    case 0x0557: return "_wcslwr_l";
+    case 0x0558: return "_wcslwr_s";
+    case 0x0559: return "_wcslwr_s_l";
+    case 0x055a: return "_wcsncoll";
+    case 0x055b: return "_wcsncoll_l";
+    case 0x055c: return "_wcsnicmp";
+    case 0x055d: return "_wcsnicmp_l";
+    case 0x055e: return "_wcsnicoll";
+    case 0x055f: return "_wcsnicoll_l";
+    case 0x0560: return "_wcsnset";
+    case 0x0561: return "_wcsnset_s";
+    case 0x0562: return "_wcsrev";
+    case 0x0563: return "_wcsset";
+    case 0x0564: return "_wcsset_s";
+    case 0x0565: return "_wcstod_l";
+    case 0x0566: return "_wcstof_l";
+    case 0x0567: return "_wcstoi64";
+    case 0x0568: return "_wcstoi64_l";
+    case 0x0569: return "_wcstoimax_l";
+    case 0x056a: return "_wcstol_l";
+    case 0x056b: return "_wcstold_l";
+    case 0x056c: return "_wcstoll_l";
+    case 0x056d: return "_wcstombs_l";
+    case 0x056e: return "_wcstombs_s_l";
+    case 0x056f: return "_wcstoui64";
+    case 0x0570: return "_wcstoui64_l";
+    case 0x0571: return "_wcstoul_l";
+    case 0x0572: return "_wcstoull_l";
+    case 0x0573: return "_wcstoumax_l";
+    case 0x0574: return "_wcsupr";
+    case 0x0575: return "_wcsupr_l";
+    case 0x0576: return "_wcsupr_s";
+    case 0x0577: return "_wcsupr_s_l";
+    case 0x0578: return "_wcsxfrm_l";
+    case 0x0579: return "_wctime32";
+    case 0x057a: return "_wctime32_s";
+    case 0x057b: return "_wctime64";
+    case 0x057c: return "_wctime64_s";
+    case 0x057d: return "_wctomb_l";
+    case 0x057e: return "_wctomb_s_l";
+    case 0x057f: return "_wctype";
+    case 0x0580: return "_wdupenv_s";
+    case 0x0581: return "_wenviron";
+    case 0x0582: return "_wexecl";
+    case 0x0583: return "_wexecle";
+    case 0x0584: return "_wexeclp";
+    case 0x0585: return "_wexeclpe";
+    case 0x0586: return "_wexecv";
+    case 0x0587: return "_wexecve";
+    case 0x0588: return "_wexecvp";
+    case 0x0589: return "_wexecvpe";
+    case 0x058a: return "_wfdopen";
+    case 0x058b: return "_wfindfirst32";
+    case 0x058c: return "_wfindfirst32i64";
+    case 0x058d: return "_wfindfirst64";
+    case 0x058e: return "_wfindfirst64i32";
+    case 0x058f: return "_wfindnext32";
+    case 0x0590: return "_wfindnext32i64";
+    case 0x0591: return "_wfindnext64";
+    case 0x0592: return "_wfindnext64i32";
+    case 0x0593: return "_wfopen";
+    case 0x0594: return "_wfopen_s";
+    case 0x0595: return "_wfreopen";
+    case 0x0596: return "_wfreopen_s";
+    case 0x0597: return "_wfsopen";
+    case 0x0598: return "_wfullpath";
+    case 0x0599: return "_wgetcwd";
+    case 0x059a: return "_wgetdcwd";
+    case 0x059b: return "_wgetenv";
+    case 0x059c: return "_wgetenv_s";
+    case 0x059d: return "_wmakepath";
+    case 0x059e: return "_wmakepath_s";
+    case 0x059f: return "_wmkdir";
+    case 0x05a0: return "_wmktemp";
+    case 0x05a1: return "_wmktemp_s";
+    case 0x05a2: return "_wopen";
+    case 0x05a3: return "_wperror";
+    case 0x05a4: return "_wpgmptr";
+    case 0x05a5: return "_wpopen";
+    case 0x05a6: return "_wprintf_l";
+    case 0x05a7: return "_wprintf_p";
+    case 0x05a8: return "_wprintf_p_l";
+    case 0x05a9: return "_wprintf_s_l";
+    case 0x05aa: return "_wputenv";
+    case 0x05ab: return "_wputenv_s";
+    case 0x05ac: return "_wremove";
+    case 0x05ad: return "_wrename";
+    case 0x05ae: return "_write";
+    case 0x05af: return "_wrmdir";
+    case 0x05b0: return "_wscanf_l";
+    case 0x05b1: return "_wscanf_s_l";
+    case 0x05b2: return "_wsearchenv";
+    case 0x05b3: return "_wsearchenv_s";
+    case 0x05b4: return "_wsetlocale";
+    case 0x05b5: return "_wsopen";
+    case 0x05b6: return "_wsopen_s";
+    case 0x05b7: return "_wspawnl";
+    case 0x05b8: return "_wspawnle";
+    case 0x05b9: return "_wspawnlp";
+    case 0x05ba: return "_wspawnlpe";
+    case 0x05bb: return "_wspawnv";
+    case 0x05bc: return "_wspawnve";
+    case 0x05bd: return "_wspawnvp";
+    case 0x05be: return "_wspawnvpe";
+    case 0x05bf: return "_wsplitpath";
+    case 0x05c0: return "_wsplitpath_s";
+    case 0x05c1: return "_wstat32";
+    case 0x05c2: return "_wstat32i64";
+    case 0x05c3: return "_wstat64";
+    case 0x05c4: return "_wstat64i32";
+    case 0x05c5: return "_wstrdate";
+    case 0x05c6: return "_wstrdate_s";
+    case 0x05c7: return "_wstrtime";
+    case 0x05c8: return "_wstrtime_s";
+    case 0x05c9: return "_wsystem";
+    case 0x05ca: return "_wtempnam";
+    case 0x05cb: return "_wtmpnam";
+    case 0x05cc: return "_wtmpnam_s";
+    case 0x05cd: return "_wtof";
+    case 0x05ce: return "_wtof_l";
+    case 0x05cf: return "_wtoi";
+    case 0x05d0: return "_wtoi64";
+    case 0x05d1: return "_wtoi64_l";
+    case 0x05d2: return "_wtoi_l";
+    case 0x05d3: return "_wtol";
+    case 0x05d4: return "_wtol_l";
+    case 0x05d5: return "_wtoll";
+    case 0x05d6: return "_wtoll_l";
+    case 0x05d7: return "_wunlink";
+    case 0x05d8: return "_wutime32";
+    case 0x05d9: return "_wutime64";
+    case 0x05da: return "_y0";
+    case 0x05db: return "_y1";
+    case 0x05dc: return "_yn";
+    case 0x05dd: return "abort";
+    case 0x05de: return "abs";
+    case 0x05df: return "acos";
+    case 0x05e0: return "acosh";
+    case 0x05e1: return "acoshf";
+    case 0x05e2: return "acoshl";
+    case 0x05e3: return "asctime";
+    case 0x05e4: return "asctime_s";
+    case 0x05e5: return "asin";
+    case 0x05e6: return "asinh";
+    case 0x05e7: return "asinhf";
+    case 0x05e8: return "asinhl";
+    case 0x05e9: return "atan";
+    case 0x05ea: return "atan2";
+    case 0x05eb: return "atanh";
+    case 0x05ec: return "atanhf";
+    case 0x05ed: return "atanhl";
+    case 0x05ee: return "atexit";
+    case 0x05ef: return "atof";
+    case 0x05f0: return "atoi";
+    case 0x05f1: return "atol";
+    case 0x05f2: return "atoll";
+    case 0x05f3: return "bsearch";
+    case 0x05f4: return "bsearch_s";
+    case 0x05f5: return "btowc";
+    case 0x05f6: return "cabs";
+    case 0x05f7: return "cabsf";
+    case 0x05f8: return "cabsl";
+    case 0x05f9: return "cacos";
+    case 0x05fa: return "cacosf";
+    case 0x05fb: return "cacosh";
+    case 0x05fc: return "cacoshf";
+    case 0x05fd: return "cacoshl";
+    case 0x05fe: return "cacosl";
+    case 0x05ff: return "calloc";
+    case 0x0600: return "carg";
+    case 0x0601: return "cargf";
+    case 0x0602: return "cargl";
+    case 0x0603: return "casin";
+    case 0x0604: return "casinf";
+    case 0x0605: return "casinh";
+    case 0x0606: return "casinhf";
+    case 0x0607: return "casinhl";
+    case 0x0608: return "casinl";
+    case 0x0609: return "catan";
+    case 0x060a: return "catanf";
+    case 0x060b: return "catanh";
+    case 0x060c: return "catanhf";
+    case 0x060d: return "catanhl";
+    case 0x060e: return "catanl";
+    case 0x060f: return "cbrt";
+    case 0x0610: return "cbrtf";
+    case 0x0611: return "cbrtl";
+    case 0x0612: return "ccos";
+    case 0x0613: return "ccosf";
+    case 0x0614: return "ccosh";
+    case 0x0615: return "ccoshf";
+    case 0x0616: return "ccoshl";
+    case 0x0617: return "ccosl";
+    case 0x0618: return "ceil";
+    case 0x0619: return "cexp";
+    case 0x061a: return "cexpf";
+    case 0x061b: return "cexpl";
+    case 0x061c: return "cimag";
+    case 0x061d: return "cimagf";
+    case 0x061e: return "cimagl";
+    case 0x061f: return "clearerr";
+    case 0x0620: return "clearerr_s";
+    case 0x0621: return "clock";
+    case 0x0622: return "clog";
+    case 0x0623: return "clog10";
+    case 0x0624: return "clog10f";
+    case 0x0625: return "clog10l";
+    case 0x0626: return "clogf";
+    case 0x0627: return "clogl";
+    case 0x0628: return "conj";
+    case 0x0629: return "conjf";
+    case 0x062a: return "conjl";
+    case 0x062b: return "copysign";
+    case 0x062c: return "copysignf";
+    case 0x062d: return "copysignl";
+    case 0x062e: return "cos";
+    case 0x062f: return "cosh";
+    case 0x0630: return "cpow";
+    case 0x0631: return "cpowf";
+    case 0x0632: return "cpowl";
+    case 0x0633: return "cproj";
+    case 0x0634: return "cprojf";
+    case 0x0635: return "cprojl";
+    case 0x0636: return "creal";
+    case 0x0637: return "crealf";
+    case 0x0638: return "creall";
+    case 0x0639: return "csin";
+    case 0x063a: return "csinf";
+    case 0x063b: return "csinh";
+    case 0x063c: return "csinhf";
+    case 0x063d: return "csinhl";
+    case 0x063e: return "csinl";
+    case 0x063f: return "csqrt";
+    case 0x0640: return "csqrtf";
+    case 0x0641: return "csqrtl";
+    case 0x0642: return "ctan";
+    case 0x0643: return "ctanf";
+    case 0x0644: return "ctanh";
+    case 0x0645: return "ctanhf";
+    case 0x0646: return "ctanhl";
+    case 0x0647: return "ctanl";
+    case 0x0648: return "div";
+    case 0x0649: return "erf";
+    case 0x064a: return "erfc";
+    case 0x064b: return "erfcf";
+    case 0x064c: return "erfcl";
+    case 0x064d: return "erff";
+    case 0x064e: return "erfl";
+    case 0x064f: return "exit";
+    case 0x0650: return "exp";
+    case 0x0651: return "exp2";
+    case 0x0652: return "exp2f";
+    case 0x0653: return "exp2l";
+    case 0x0654: return "expm1";
+    case 0x0655: return "expm1f";
+    case 0x0656: return "expm1l";
+    case 0x0657: return "fabs";
+    case 0x0658: return "fclose";
+    case 0x0659: return "fdim";
+    case 0x065a: return "fdimf";
+    case 0x065b: return "fdiml";
+    case 0x065c: return "feclearexcept";
+    case 0x065d: return "fegetenv";
+    case 0x065e: return "fegetexceptflag";
+    case 0x065f: return "fegetround";
+    case 0x0660: return "feholdexcept";
+    case 0x0661: return "feof";
+    case 0x0662: return "feraiseexcept";
+    case 0x0663: return "ferror";
+    case 0x0664: return "fesetenv";
+    case 0x0665: return "fesetexceptflag";
+    case 0x0666: return "fesetround";
+    case 0x0667: return "fetestexcept";
+    case 0x0668: return "feupdateenv";
+    case 0x0669: return "fflush";
+    case 0x066a: return "fgetc";
+    case 0x066b: return "fgetpos";
+    case 0x066c: return "fgets";
+    case 0x066d: return "fgetwc";
+    case 0x066e: return "fgetws";
+    case 0x066f: return "floor";
+    case 0x0670: return "fma";
+    case 0x0671: return "fmaf";
+    case 0x0672: return "fmal";
+    case 0x0673: return "fmax";
+    case 0x0674: return "fmaxf";
+    case 0x0675: return "fmaxl";
+    case 0x0676: return "fmin";
+    case 0x0677: return "fminf";
+    case 0x0678: return "fminl";
+    case 0x0679: return "fmod";
+    case 0x067a: return "fopen";
+    case 0x067b: return "fopen_s";
+    case 0x067c: return "fprintf";
+    case 0x067d: return "fprintf_s";
+    case 0x067e: return "fputc";
+    case 0x067f: return "fputs";
+    case 0x0680: return "fputwc";
+    case 0x0681: return "fputws";
+    case 0x0682: return "fread";
+    case 0x0683: return "fread_s";
+    case 0x0684: return "free";
+    case 0x0685: return "freopen";
+    case 0x0686: return "freopen_s";
+    case 0x0687: return "frexp";
+    case 0x0688: return "fscanf";
+    case 0x0689: return "fscanf_s";
+    case 0x068a: return "fseek";
+    case 0x068b: return "fsetpos";
+    case 0x068c: return "ftell";
+    case 0x068d: return "fwprintf";
+    case 0x068e: return "fwprintf_s";
+    case 0x068f: return "fwrite";
+    case 0x0690: return "fwscanf";
+    case 0x0691: return "fwscanf_s";
+    case 0x0692: return "getc";
+    case 0x0693: return "getchar";
+    case 0x0694: return "getenv";
+    case 0x0695: return "getenv_s";
+    case 0x0696: return "gets";
+    case 0x0697: return "gets_s";
+    case 0x0698: return "getwc";
+    case 0x0699: return "getwchar";
+    case 0x069a: return "ilogb";
+    case 0x069b: return "ilogbf";
+    case 0x069c: return "ilogbl";
+    case 0x069d: return "imaxabs";
+    case 0x069e: return "imaxdiv";
+    case 0x069f: return "is_wctype";
+    case 0x06a0: return "isalnum";
+    case 0x06a1: return "isalpha";
+    case 0x06a2: return "isblank";
+    case 0x06a3: return "iscntrl";
+    case 0x06a4: return "isdigit";
+    case 0x06a5: return "isgraph";
+    case 0x06a6: return "isleadbyte";
+    case 0x06a7: return "islower";
+    case 0x06a8: return "isprint";
+    case 0x06a9: return "ispunct";
+    case 0x06aa: return "isspace";
+    case 0x06ab: return "isupper";
+    case 0x06ac: return "iswalnum";
+    case 0x06ad: return "iswalpha";
+    case 0x06ae: return "iswascii";
+    case 0x06af: return "iswblank";
+    case 0x06b0: return "iswcntrl";
+    case 0x06b1: return "iswctype";
+    case 0x06b2: return "iswdigit";
+    case 0x06b3: return "iswgraph";
+    case 0x06b4: return "iswlower";
+    case 0x06b5: return "iswprint";
+    case 0x06b6: return "iswpunct";
+    case 0x06b7: return "iswspace";
+    case 0x06b8: return "iswupper";
+    case 0x06b9: return "iswxdigit";
+    case 0x06ba: return "isxdigit";
+    case 0x06bb: return "labs";
+    case 0x06bc: return "ldexp";
+    case 0x06bd: return "ldiv";
+    case 0x06be: return "lgamma";
+    case 0x06bf: return "lgammaf";
+    case 0x06c0: return "lgammal";
+    case 0x06c1: return "llabs";
+    case 0x06c2: return "lldiv";
+    case 0x06c3: return "llrint";
+    case 0x06c4: return "llrintf";
+    case 0x06c5: return "llrintl";
+    case 0x06c6: return "llround";
+    case 0x06c7: return "llroundf";
+    case 0x06c8: return "llroundl";
+    case 0x06c9: return "localeconv";
+    case 0x06ca: return "log";
+    case 0x06cb: return "log10";
+    case 0x06cc: return "log1p";
+    case 0x06cd: return "log1pf";
+    case 0x06ce: return "log1pl";
+    case 0x06cf: return "log2";
+    case 0x06d0: return "log2f";
+    case 0x06d1: return "log2l";
+    case 0x06d2: return "logb";
+    case 0x06d3: return "logbf";
+    case 0x06d4: return "logbl";
+    case 0x06d5: return "longjmp";
+    case 0x06d6: return "lrint";
+    case 0x06d7: return "lrintf";
+    case 0x06d8: return "lrintl";
+    case 0x06d9: return "lround";
+    case 0x06da: return "lroundf";
+    case 0x06db: return "lroundl";
+    case 0x06dc: return "malloc";
+    case 0x06dd: return "mblen";
+    case 0x06de: return "mbrlen";
+    case 0x06df: return "mbrtowc";
+    case 0x06e0: return "mbsrtowcs";
+    case 0x06e1: return "mbsrtowcs_s";
+    case 0x06e2: return "mbstowcs";
+    case 0x06e3: return "mbstowcs_s";
+    case 0x06e4: return "mbtowc";
+    case 0x06e5: return "memchr";
+    case 0x06e6: return "memcmp";
+    case 0x06e7: return "memcpy";
+    case 0x06e8: return "memcpy_s";
+    case 0x06e9: return "memmove";
+    case 0x06ea: return "memmove_s";
+    case 0x06eb: return "memset";
+    case 0x06ec: return "modf";
+    case 0x06ed: return "nan";
+    case 0x06ee: return "nanf";
+    case 0x06ef: return "nanl";
+    case 0x06f0: return "nearbyint";
+    case 0x06f1: return "nearbyintf";
+    case 0x06f2: return "nearbyintl";
+    case 0x06f3: return "nextafter";
+    case 0x06f4: return "nextafterf";
+    case 0x06f5: return "nextafterl";
+    case 0x06f6: return "nexttoward";
+    case 0x06f7: return "nexttowardf";
+    case 0x06f8: return "nexttowardl";
+    case 0x06f9: return "norm";
+    case 0x06fa: return "normf";
+    case 0x06fb: return "norml";
+    case 0x06fc: return "perror";
+    case 0x06fd: return "pow";
+    case 0x06fe: return "printf";
+    case 0x06ff: return "printf_s";
+    case 0x0700: return "putc";
+    case 0x0701: return "putchar";
+    case 0x0702: return "puts";
+    case 0x0703: return "putwc";
+    case 0x0704: return "putwchar";
+    case 0x0705: return "qsort";
+    case 0x0706: return "qsort_s";
+    case 0x0707: return "raise";
+    case 0x0708: return "rand";
+    case 0x0709: return "rand_s";
+    case 0x070a: return "realloc";
+    case 0x070b: return "remainder";
+    case 0x070c: return "remainderf";
+    case 0x070d: return "remainderl";
+    case 0x070e: return "remove";
+    case 0x070f: return "remquo";
+    case 0x0710: return "remquof";
+    case 0x0711: return "remquol";
+    case 0x0712: return "rename";
+    case 0x0713: return "rewind";
+    case 0x0714: return "rint";
+    case 0x0715: return "rintf";
+    case 0x0716: return "rintl";
+    case 0x0717: return "round";
+    case 0x0718: return "roundf";
+    case 0x0719: return "roundl";
+    case 0x071a: return "scalbln";
+    case 0x071b: return "scalblnf";
+    case 0x071c: return "scalblnl";
+    case 0x071d: return "scalbn";
+    case 0x071e: return "scalbnf";
+    case 0x071f: return "scalbnl";
+    case 0x0720: return "scanf";
+    case 0x0721: return "scanf_s";
+    case 0x0722: return "setbuf";
+    case 0x0723: return "setlocale";
+    case 0x0724: return "setvbuf";
+    case 0x0725: return "signal";
+    case 0x0726: return "sin";
+    case 0x0727: return "sinh";
+    case 0x0728: return "sprintf";
+    case 0x0729: return "sprintf_s";
+    case 0x072a: return "sqrt";
+    case 0x072b: return "srand";
+    case 0x072c: return "sscanf";
+    case 0x072d: return "sscanf_s";
+    case 0x072e: return "strcat";
+    case 0x072f: return "strcat_s";
+    case 0x0730: return "strchr";
+    case 0x0731: return "strcmp";
+    case 0x0732: return "strcoll";
+    case 0x0733: return "strcpy";
+    case 0x0734: return "strcpy_s";
+    case 0x0735: return "strcspn";
+    case 0x0736: return "strerror";
+    case 0x0737: return "strerror_s";
+    case 0x0738: return "strftime";
+    case 0x0739: return "strlen";
+    case 0x073a: return "strncat";
+    case 0x073b: return "strncat_s";
+    case 0x073c: return "strncmp";
+    case 0x073d: return "strncpy";
+    case 0x073e: return "strncpy_s";
+    case 0x073f: return "strnlen";
+    case 0x0740: return "strpbrk";
+    case 0x0741: return "strrchr";
+    case 0x0742: return "strspn";
+    case 0x0743: return "strstr";
+    case 0x0744: return "strtod";
+    case 0x0745: return "strtof";
+    case 0x0746: return "strtoimax";
+    case 0x0747: return "strtok";
+    case 0x0748: return "strtok_s";
+    case 0x0749: return "strtol";
+    case 0x074a: return "strtold";
+    case 0x074b: return "strtoll";
+    case 0x074c: return "strtoul";
+    case 0x074d: return "strtoull";
+    case 0x074e: return "strtoumax";
+    case 0x074f: return "strxfrm";
+    case 0x0750: return "swprintf_s";
+    case 0x0751: return "swscanf";
+    case 0x0752: return "swscanf_s";
+    case 0x0753: return "system";
+    case 0x0754: return "tan";
+    case 0x0755: return "tanh";
+    case 0x0756: return "tgamma";
+    case 0x0757: return "tgammaf";
+    case 0x0758: return "tgammal";
+    case 0x0759: return "tmpfile";
+    case 0x075a: return "tmpfile_s";
+    case 0x075b: return "tmpnam";
+    case 0x075c: return "tmpnam_s";
+    case 0x075d: return "tolower";
+    case 0x075e: return "toupper";
+    case 0x075f: return "towctrans";
+    case 0x0760: return "towlower";
+    case 0x0761: return "towupper";
+    case 0x0762: return "trunc";
+    case 0x0763: return "truncf";
+    case 0x0764: return "truncl";
+    case 0x0765: return "ungetc";
+    case 0x0766: return "ungetwc";
+    case 0x0767: return "vfprintf";
+    case 0x0768: return "vfprintf_s";
+    case 0x0769: return "vfscanf";
+    case 0x076a: return "vfscanf_s";
+    case 0x076b: return "vfwprintf";
+    case 0x076c: return "vfwprintf_s";
+    case 0x076d: return "vfwscanf";
+    case 0x076e: return "vfwscanf_s";
+    case 0x076f: return "vprintf";
+    case 0x0770: return "vprintf_s";
+    case 0x0771: return "vscanf";
+    case 0x0772: return "vscanf_s";
+    case 0x0773: return "vsprintf";
+    case 0x0774: return "vsprintf_s";
+    case 0x0775: return "vsscanf";
+    case 0x0776: return "vsscanf_s";
+    case 0x0777: return "vswprintf_s";
+    case 0x0778: return "vswscanf";
+    case 0x0779: return "vswscanf_s";
+    case 0x077a: return "vwprintf";
+    case 0x077b: return "vwprintf_s";
+    case 0x077c: return "vwscanf";
+    case 0x077d: return "vwscanf_s";
+    case 0x077e: return "wcrtomb";
+    case 0x077f: return "wcrtomb_s";
+    case 0x0780: return "wcscat";
+    case 0x0781: return "wcscat_s";
+    case 0x0782: return "wcschr";
+    case 0x0783: return "wcscmp";
+    case 0x0784: return "wcscoll";
+    case 0x0785: return "wcscpy";
+    case 0x0786: return "wcscpy_s";
+    case 0x0787: return "wcscspn";
+    case 0x0788: return "wcsftime";
+    case 0x0789: return "wcslen";
+    case 0x078a: return "wcsncat";
+    case 0x078b: return "wcsncat_s";
+    case 0x078c: return "wcsncmp";
+    case 0x078d: return "wcsncpy";
+    case 0x078e: return "wcsncpy_s";
+    case 0x078f: return "wcsnlen";
+    case 0x0790: return "wcspbrk";
+    case 0x0791: return "wcsrchr";
+    case 0x0792: return "wcsrtombs";
+    case 0x0793: return "wcsrtombs_s";
+    case 0x0794: return "wcsspn";
+    case 0x0795: return "wcsstr";
+    case 0x0796: return "wcstod";
+    case 0x0797: return "wcstof";
+    case 0x0798: return "wcstoimax";
+    case 0x0799: return "wcstok";
+    case 0x079a: return "wcstok_s";
+    case 0x079b: return "wcstol";
+    case 0x079c: return "wcstold";
+    case 0x079d: return "wcstoll";
+    case 0x079e: return "wcstombs";
+    case 0x079f: return "wcstombs_s";
+    case 0x07a0: return "wcstoul";
+    case 0x07a1: return "wcstoull";
+    case 0x07a2: return "wcstoumax";
+    case 0x07a3: return "wcsxfrm";
+    case 0x07a4: return "wctob";
+    case 0x07a5: return "wctomb";
+    case 0x07a6: return "wctomb_s";
+    case 0x07a7: return "wctrans";
+    case 0x07a8: return "wctype";
+    case 0x07a9: return "wmemcpy_s";
+    case 0x07aa: return "wmemmove_s";
+    case 0x07ab: return "wprintf";
+    case 0x07ac: return "wprintf_s";
+    case 0x07ad: return "wscanf";
+    case 0x07ae: return "wscanf_s";
   }
   return nullptr;
 }


-}
 }

-#endif

+#endif
diff --git a/deps/LIEF/src/PE/utils/ordinals_lookup_tables/msvcrt_dll_lookup.hpp b/deps/LIEF/src/PE/utils/ordinals_lookup_tables/msvcrt_dll_lookup.hpp
index fae662f5751..6584d511b83 100644
--- a/deps/LIEF/src/PE/utils/ordinals_lookup_tables/msvcrt_dll_lookup.hpp
+++ b/deps/LIEF/src/PE/utils/ordinals_lookup_tables/msvcrt_dll_lookup.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -17,848 +17,848 @@
 #define LIEF_PE_MSVCRT_DLL_LOOKUP_H
 #include <cstdint>

-namespace LIEF {
-namespace PE {
+
+namespace LIEF::PE {

 inline const char* msvcrt_dll_lookup(uint32_t i) {
-  switch(i) {
-  case 0x0038: return "$I10_OUTPUT";
-  case 0x0001: return "??0__non_rtti_object@@QAE@ABV0@@Z";
-  case 0x0002: return "??0__non_rtti_object@@QAE@PBD@Z";
-  case 0x0003: return "??0bad_cast@@AAE@PBQBD@Z";
-  case 0x0004: return "??0bad_cast@@QAE@ABQBD@Z";
-  case 0x0005: return "??0bad_cast@@QAE@ABV0@@Z";
-  case 0x0006: return "??0bad_cast@@QAE@PBD@Z";
-  case 0x0007: return "??0bad_typeid@@QAE@ABV0@@Z";
-  case 0x0008: return "??0bad_typeid@@QAE@PBD@Z";
-  case 0x0009: return "??0exception@@QAE@ABQBD@Z";
-  case 0x000a: return "??0exception@@QAE@ABV0@@Z";
-  case 0x000b: return "??0exception@@QAE@XZ";
-  case 0x000c: return "??1__non_rtti_object@@UAE@XZ";
-  case 0x000d: return "??1bad_cast@@UAE@XZ";
-  case 0x000e: return "??1bad_typeid@@UAE@XZ";
-  case 0x000f: return "??1exception@@UAE@XZ";
-  case 0x0010: return "??1type_info@@UAE@XZ";
-  case 0x0011: return "??2@YAPAXI@Z";
-  case 0x0012: return "??3@YAXPAX@Z";
-  case 0x0013: return "??4__non_rtti_object@@QAEAAV0@ABV0@@Z";
-  case 0x0014: return "??4bad_cast@@QAEAAV0@ABV0@@Z";
-  case 0x0015: return "??4bad_typeid@@QAEAAV0@ABV0@@Z";
-  case 0x0016: return "??4exception@@QAEAAV0@ABV0@@Z";
-  case 0x0017: return "??8type_info@@QBEHABV0@@Z";
-  case 0x0018: return "??9type_info@@QBEHABV0@@Z";
-  case 0x0019: return "??_7__non_rtti_object@@6B@";
-  case 0x001a: return "??_7bad_cast@@6B@";
-  case 0x001b: return "??_7bad_typeid@@6B@";
-  case 0x001c: return "??_7exception@@6B@";
-  case 0x001d: return "??_E__non_rtti_object@@UAEPAXI@Z";
-  case 0x001e: return "??_Ebad_cast@@UAEPAXI@Z";
-  case 0x001f: return "??_Ebad_typeid@@UAEPAXI@Z";
-  case 0x0020: return "??_Eexception@@UAEPAXI@Z";
-  case 0x0021: return "??_Fbad_cast@@QAEXXZ";
-  case 0x0022: return "??_Fbad_typeid@@QAEXXZ";
-  case 0x0023: return "??_G__non_rtti_object@@UAEPAXI@Z";
-  case 0x0024: return "??_Gbad_cast@@UAEPAXI@Z";
-  case 0x0025: return "??_Gbad_typeid@@UAEPAXI@Z";
-  case 0x0026: return "??_Gexception@@UAEPAXI@Z";
-  case 0x0027: return "??_U@YAPAXI@Z";
-  case 0x0028: return "??_V@YAXPAX@Z";
-  case 0x002a: return "?_query_new_handler@@YAP6AHI@ZXZ";
-  case 0x002b: return "?_query_new_mode@@YAHXZ";
-  case 0x002c: return "?_set_new_handler@@YAP6AHI@ZP6AHI@Z@Z";
-  case 0x002d: return "?_set_new_mode@@YAHH@Z";
-  case 0x002e: return "?_set_se_translator@@YAP6AXIPAU_EXCEPTION_POINTERS@@@ZP6AXI0@Z@Z";
-  case 0x002f: return "?before@type_info@@QBEHABV1@@Z";
-  case 0x0030: return "?name@type_info@@QBEPBDXZ";
-  case 0x0031: return "?raw_name@type_info@@QBEPBDXZ";
-  case 0x0032: return "?set_new_handler@@YAP6AXXZP6AXXZ@Z";
-  case 0x0033: return "?set_terminate@@YAP6AXXZP6AXXZ@Z";
-  case 0x0034: return "?set_unexpected@@YAP6AXXZP6AXXZ@Z";
-  case 0x0035: return "?terminate@@YAXXZ";
-  case 0x0036: return "?unexpected@@YAXXZ";
-  case 0x0037: return "?what@exception@@UBEPBDXZ";
-  case 0x0039: return "_CIacos";
-  case 0x003a: return "_CIasin";
-  case 0x003b: return "_CIatan";
-  case 0x003c: return "_CIatan2";
-  case 0x003d: return "_CIcos";
-  case 0x003e: return "_CIcosh";
-  case 0x003f: return "_CIexp";
-  case 0x0040: return "_CIfmod";
-  case 0x0041: return "_CIlog";
-  case 0x0042: return "_CIlog10";
-  case 0x0043: return "_CIpow";
-  case 0x0044: return "_CIsin";
-  case 0x0045: return "_CIsinh";
-  case 0x0046: return "_CIsqrt";
-  case 0x0047: return "_CItan";
-  case 0x0048: return "_CItanh";
-  case 0x0049: return "_CxxThrowException";
-  case 0x004a: return "_EH_prolog";
-  case 0x004b: return "_Getdays";
-  case 0x004c: return "_Getmonths";
-  case 0x004d: return "_Gettnames";
-  case 0x004e: return "_HUGE";
-  case 0x004f: return "_Strftime";
-  case 0x0050: return "_XcptFilter";
-  case 0x0051: return "__CxxCallUnwindDtor";
-  case 0x0052: return "__CxxDetectRethrow";
-  case 0x0053: return "__CxxExceptionFilter";
-  case 0x0054: return "__CxxFrameHandler";
-  case 0x0055: return "__CxxLongjmpUnwind";
-  case 0x0056: return "__CxxQueryExceptionSize";
-  case 0x0057: return "__CxxRegisterExceptionObject";
-  case 0x0058: return "__CxxUnregisterExceptionObject";
-  case 0x0059: return "__DestructExceptionObject";
-  case 0x005a: return "__RTCastToVoid";
-  case 0x005b: return "__RTDynamicCast";
-  case 0x005c: return "__RTtypeid";
-  case 0x005d: return "__STRINGTOLD";
-  case 0x005e: return "___lc_codepage_func";
-  case 0x005f: return "___lc_handle_func";
-  case 0x0060: return "___mb_cur_max_func";
-  case 0x0061: return "___setlc_active_func";
-  case 0x0062: return "___unguarded_readlc_active_add_func";
-  case 0x0063: return "__argc";
-  case 0x0064: return "__argv";
-  case 0x0065: return "__badioinfo";
-  case 0x0066: return "__crtCompareStringA";
-  case 0x0067: return "__crtCompareStringW";
-  case 0x0068: return "__crtGetLocaleInfoW";
-  case 0x0069: return "__crtGetStringTypeW";
-  case 0x006a: return "__crtLCMapStringA";
-  case 0x006b: return "__crtLCMapStringW";
-  case 0x006c: return "__dllonexit";
-  case 0x006d: return "__doserrno";
-  case 0x006e: return "__fpecode";
-  case 0x006f: return "__getmainargs";
-  case 0x0070: return "__initenv";
-  case 0x0071: return "__iob_func";
-  case 0x0072: return "__isascii";
-  case 0x0073: return "__iscsym";
-  case 0x0074: return "__iscsymf";
-  case 0x0075: return "__lc_codepage";
-  case 0x0076: return "__lc_collate_cp";
-  case 0x0077: return "__lc_handle";
-  case 0x0078: return "__lconv_init";
-  case 0x0079: return "__mb_cur_max";
-  case 0x007a: return "__p___argc";
-  case 0x007b: return "__p___argv";
-  case 0x007c: return "__p___initenv";
-  case 0x007d: return "__p___mb_cur_max";
-  case 0x007e: return "__p___wargv";
-  case 0x007f: return "__p___winitenv";
-  case 0x0080: return "__p__acmdln";
-  case 0x0081: return "__p__amblksiz";
-  case 0x0082: return "__p__commode";
-  case 0x0083: return "__p__daylight";
-  case 0x0084: return "__p__dstbias";
-  case 0x0085: return "__p__environ";
-  case 0x0086: return "__p__fileinfo";
-  case 0x0087: return "__p__fmode";
-  case 0x0088: return "__p__iob";
-  case 0x0089: return "__p__mbcasemap";
-  case 0x008a: return "__p__mbctype";
-  case 0x008b: return "__p__osver";
-  case 0x008c: return "__p__pctype";
-  case 0x008d: return "__p__pgmptr";
-  case 0x008e: return "__p__pwctype";
-  case 0x008f: return "__p__timezone";
-  case 0x0090: return "__p__tzname";
-  case 0x0091: return "__p__wcmdln";
-  case 0x0092: return "__p__wenviron";
-  case 0x0093: return "__p__winmajor";
-  case 0x0094: return "__p__winminor";
-  case 0x0095: return "__p__winver";
-  case 0x0096: return "__p__wpgmptr";
-  case 0x0097: return "__pctype_func";
-  case 0x0098: return "__pioinfo";
-  case 0x0099: return "__pxcptinfoptrs";
-  case 0x009a: return "__set_app_type";
-  case 0x009b: return "__setlc_active";
-  case 0x009c: return "__setusermatherr";
-  case 0x009d: return "__threadhandle";
-  case 0x009e: return "__threadid";
-  case 0x009f: return "__toascii";
-  case 0x00a0: return "__unDName";
-  case 0x00a1: return "__unDNameEx";
-  case 0x0029: return "__uncaught_exception";
-  case 0x00a2: return "__unguarded_readlc_active";
-  case 0x00a3: return "__wargv";
-  case 0x00a4: return "__wcserror";
-  case 0x00a5: return "__wgetmainargs";
-  case 0x00a6: return "__winitenv";
-  case 0x00a7: return "_abnormal_termination";
-  case 0x00a8: return "_access";
-  case 0x00a9: return "_acmdln";
-  case 0x00aa: return "_adj_fdiv_m16i";
-  case 0x00ab: return "_adj_fdiv_m32";
-  case 0x00ac: return "_adj_fdiv_m32i";
-  case 0x00ad: return "_adj_fdiv_m64";
-  case 0x00ae: return "_adj_fdiv_r";
-  case 0x00af: return "_adj_fdivr_m16i";
-  case 0x00b0: return "_adj_fdivr_m32";
-  case 0x00b1: return "_adj_fdivr_m32i";
-  case 0x00b2: return "_adj_fdivr_m64";
-  case 0x00b3: return "_adj_fpatan";
-  case 0x00b4: return "_adj_fprem";
-  case 0x00b5: return "_adj_fprem1";
-  case 0x00b6: return "_adj_fptan";
-  case 0x00b7: return "_adjust_fdiv";
-  case 0x00b8: return "_aexit_rtn";
-  case 0x00b9: return "_aligned_free";
-  case 0x00ba: return "_aligned_malloc";
-  case 0x00bb: return "_aligned_offset_malloc";
-  case 0x00bc: return "_aligned_offset_realloc";
-  case 0x00bd: return "_aligned_realloc";
-  case 0x00be: return "_amsg_exit";
-  case 0x00bf: return "_assert";
-  case 0x00c0: return "_atodbl";
-  case 0x00c1: return "_atoi64";
-  case 0x00c2: return "_atoldbl";
-  case 0x00c3: return "_beep";
-  case 0x00c4: return "_beginthread";
-  case 0x00c5: return "_beginthreadex";
-  case 0x00c6: return "_c_exit";
-  case 0x00c7: return "_cabs";
-  case 0x00c8: return "_callnewh";
-  case 0x00c9: return "_cexit";
-  case 0x00ca: return "_cgets";
-  case 0x00cb: return "_cgetws";
-  case 0x00cc: return "_chdir";
-  case 0x00cd: return "_chdrive";
-  case 0x00ce: return "_chgsign";
-  case 0x00cf: return "_chkesp";
-  case 0x00d0: return "_chmod";
-  case 0x00d1: return "_chsize";
-  case 0x00d2: return "_clearfp";
-  case 0x00d3: return "_close";
-  case 0x00d4: return "_commit";
-  case 0x00d5: return "_commode";
-  case 0x00d6: return "_control87";
-  case 0x00d7: return "_controlfp";
-  case 0x00d8: return "_copysign";
-  case 0x00d9: return "_cprintf";
-  case 0x00da: return "_cputs";
-  case 0x00db: return "_cputws";
-  case 0x00dc: return "_creat";
-  case 0x00dd: return "_cscanf";
-  case 0x00de: return "_ctime64";
-  case 0x00df: return "_ctype";
-  case 0x00e0: return "_cwait";
-  case 0x00e1: return "_cwprintf";
-  case 0x00e2: return "_cwscanf";
-  case 0x00e3: return "_daylight";
-  case 0x00e4: return "_dstbias";
-  case 0x00e5: return "_dup";
-  case 0x00e6: return "_dup2";
-  case 0x00e7: return "_ecvt";
-  case 0x00e8: return "_endthread";
-  case 0x00e9: return "_endthreadex";
-  case 0x00ea: return "_environ";
-  case 0x00eb: return "_eof";
-  case 0x00ec: return "_errno";
-  case 0x00ed: return "_except_handler2";
-  case 0x00ee: return "_except_handler3";
-  case 0x00ef: return "_execl";
-  case 0x00f0: return "_execle";
-  case 0x00f1: return "_execlp";
-  case 0x00f2: return "_execlpe";
-  case 0x00f3: return "_execv";
-  case 0x00f4: return "_execve";
-  case 0x00f5: return "_execvp";
-  case 0x00f6: return "_execvpe";
-  case 0x00f7: return "_exit";
-  case 0x00f8: return "_expand";
-  case 0x00f9: return "_fcloseall";
-  case 0x00fa: return "_fcvt";
-  case 0x00fb: return "_fdopen";
-  case 0x00fc: return "_fgetchar";
-  case 0x00fd: return "_fgetwchar";
-  case 0x00fe: return "_filbuf";
-  case 0x00ff: return "_fileinfo";
-  case 0x0100: return "_filelength";
-  case 0x0101: return "_filelengthi64";
-  case 0x0102: return "_fileno";
-  case 0x0103: return "_findclose";
-  case 0x0104: return "_findfirst";
-  case 0x0105: return "_findfirst64";
-  case 0x0106: return "_findfirsti64";
-  case 0x0107: return "_findnext";
-  case 0x0108: return "_findnext64";
-  case 0x0109: return "_findnexti64";
-  case 0x010a: return "_finite";
-  case 0x010b: return "_flsbuf";
-  case 0x010c: return "_flushall";
-  case 0x010d: return "_fmode";
-  case 0x010e: return "_fpclass";
-  case 0x010f: return "_fpieee_flt";
-  case 0x0110: return "_fpreset";
-  case 0x0111: return "_fputchar";
-  case 0x0112: return "_fputwchar";
-  case 0x0113: return "_fsopen";
-  case 0x0114: return "_fstat";
-  case 0x0115: return "_fstat64";
-  case 0x0116: return "_fstati64";
-  case 0x0117: return "_ftime";
-  case 0x0118: return "_ftime64";
-  case 0x0119: return "_ftol";
-  case 0x011a: return "_fullpath";
-  case 0x011b: return "_futime";
-  case 0x011c: return "_futime64";
-  case 0x011d: return "_gcvt";
-  case 0x011e: return "_get_heap_handle";
-  case 0x011f: return "_get_osfhandle";
-  case 0x0120: return "_get_sbh_threshold";
-  case 0x0121: return "_getch";
-  case 0x0122: return "_getche";
-  case 0x0123: return "_getcwd";
-  case 0x0124: return "_getdcwd";
-  case 0x0125: return "_getdiskfree";
-  case 0x0126: return "_getdllprocaddr";
-  case 0x0127: return "_getdrive";
-  case 0x0128: return "_getdrives";
-  case 0x0129: return "_getmaxstdio";
-  case 0x012a: return "_getmbcp";
-  case 0x012b: return "_getpid";
-  case 0x012c: return "_getsystime";
-  case 0x012d: return "_getw";
-  case 0x012e: return "_getwch";
-  case 0x012f: return "_getwche";
-  case 0x0130: return "_getws";
-  case 0x0131: return "_global_unwind2";
-  case 0x0132: return "_gmtime64";
-  case 0x0133: return "_heapadd";
-  case 0x0134: return "_heapchk";
-  case 0x0135: return "_heapmin";
-  case 0x0136: return "_heapset";
-  case 0x0137: return "_heapused";
-  case 0x0138: return "_heapwalk";
-  case 0x0139: return "_hypot";
-  case 0x013a: return "_i64toa";
-  case 0x013b: return "_i64tow";
-  case 0x013c: return "_initterm";
-  case 0x013d: return "_inp";
-  case 0x013e: return "_inpd";
-  case 0x013f: return "_inpw";
-  case 0x0140: return "_iob";
-  case 0x0141: return "_isatty";
-  case 0x0142: return "_isctype";
-  case 0x0143: return "_ismbbalnum";
-  case 0x0144: return "_ismbbalpha";
-  case 0x0145: return "_ismbbgraph";
-  case 0x0146: return "_ismbbkalnum";
-  case 0x0147: return "_ismbbkana";
-  case 0x0148: return "_ismbbkprint";
-  case 0x0149: return "_ismbbkpunct";
-  case 0x014a: return "_ismbblead";
-  case 0x014b: return "_ismbbprint";
-  case 0x014c: return "_ismbbpunct";
-  case 0x014d: return "_ismbbtrail";
-  case 0x014e: return "_ismbcalnum";
-  case 0x014f: return "_ismbcalpha";
-  case 0x0150: return "_ismbcdigit";
-  case 0x0151: return "_ismbcgraph";
-  case 0x0152: return "_ismbchira";
-  case 0x0153: return "_ismbckata";
-  case 0x0154: return "_ismbcl0";
-  case 0x0155: return "_ismbcl1";
-  case 0x0156: return "_ismbcl2";
-  case 0x0157: return "_ismbclegal";
-  case 0x0158: return "_ismbclower";
-  case 0x0159: return "_ismbcprint";
-  case 0x015a: return "_ismbcpunct";
-  case 0x015b: return "_ismbcspace";
-  case 0x015c: return "_ismbcsymbol";
-  case 0x015d: return "_ismbcupper";
-  case 0x015e: return "_ismbslead";
-  case 0x015f: return "_ismbstrail";
-  case 0x0160: return "_isnan";
-  case 0x0161: return "_itoa";
-  case 0x0162: return "_itow";
-  case 0x0163: return "_j0";
-  case 0x0164: return "_j1";
-  case 0x0165: return "_jn";
-  case 0x0166: return "_kbhit";
-  case 0x0167: return "_lfind";
-  case 0x0168: return "_loaddll";
-  case 0x0169: return "_local_unwind2";
-  case 0x016a: return "_localtime64";
-  case 0x016b: return "_lock";
-  case 0x016c: return "_locking";
-  case 0x016d: return "_logb";
-  case 0x016e: return "_longjmpex";
-  case 0x016f: return "_lrotl";
-  case 0x0170: return "_lrotr";
-  case 0x0171: return "_lsearch";
-  case 0x0172: return "_lseek";
-  case 0x0173: return "_lseeki64";
-  case 0x0174: return "_ltoa";
-  case 0x0175: return "_ltow";
-  case 0x0176: return "_makepath";
-  case 0x0177: return "_mbbtombc";
-  case 0x0178: return "_mbbtype";
-  case 0x0179: return "_mbcasemap";
-  case 0x017a: return "_mbccpy";
-  case 0x017b: return "_mbcjistojms";
-  case 0x017c: return "_mbcjmstojis";
-  case 0x017d: return "_mbclen";
-  case 0x017e: return "_mbctohira";
-  case 0x017f: return "_mbctokata";
-  case 0x0180: return "_mbctolower";
-  case 0x0181: return "_mbctombb";
-  case 0x0182: return "_mbctoupper";
-  case 0x0183: return "_mbctype";
-  case 0x0184: return "_mbsbtype";
-  case 0x0185: return "_mbscat";
-  case 0x0186: return "_mbschr";
-  case 0x0187: return "_mbscmp";
-  case 0x0188: return "_mbscoll";
-  case 0x0189: return "_mbscpy";
-  case 0x018a: return "_mbscspn";
-  case 0x018b: return "_mbsdec";
-  case 0x018c: return "_mbsdup";
-  case 0x018d: return "_mbsicmp";
-  case 0x018e: return "_mbsicoll";
-  case 0x018f: return "_mbsinc";
-  case 0x0190: return "_mbslen";
-  case 0x0191: return "_mbslwr";
-  case 0x0192: return "_mbsnbcat";
-  case 0x0193: return "_mbsnbcmp";
-  case 0x0194: return "_mbsnbcnt";
-  case 0x0195: return "_mbsnbcoll";
-  case 0x0196: return "_mbsnbcpy";
-  case 0x0197: return "_mbsnbicmp";
-  case 0x0198: return "_mbsnbicoll";
-  case 0x0199: return "_mbsnbset";
-  case 0x019a: return "_mbsncat";
-  case 0x019b: return "_mbsnccnt";
-  case 0x019c: return "_mbsncmp";
-  case 0x019d: return "_mbsncoll";
-  case 0x019e: return "_mbsncpy";
-  case 0x019f: return "_mbsnextc";
-  case 0x01a0: return "_mbsnicmp";
-  case 0x01a1: return "_mbsnicoll";
-  case 0x01a2: return "_mbsninc";
-  case 0x01a3: return "_mbsnset";
-  case 0x01a4: return "_mbspbrk";
-  case 0x01a5: return "_mbsrchr";
-  case 0x01a6: return "_mbsrev";
-  case 0x01a7: return "_mbsset";
-  case 0x01a8: return "_mbsspn";
-  case 0x01a9: return "_mbsspnp";
-  case 0x01aa: return "_mbsstr";
-  case 0x01ab: return "_mbstok";
-  case 0x01ac: return "_mbstrlen";
-  case 0x01ad: return "_mbsupr";
-  case 0x01ae: return "_memccpy";
-  case 0x01af: return "_memicmp";
-  case 0x01b0: return "_mkdir";
-  case 0x01b1: return "_mktemp";
-  case 0x01b2: return "_mktime64";
-  case 0x01b3: return "_msize";
-  case 0x01b4: return "_nextafter";
-  case 0x01b5: return "_onexit";
-  case 0x01b6: return "_open";
-  case 0x01b7: return "_open_osfhandle";
-  case 0x01b8: return "_osplatform";
-  case 0x01b9: return "_osver";
-  case 0x01ba: return "_outp";
-  case 0x01bb: return "_outpd";
-  case 0x01bc: return "_outpw";
-  case 0x01bd: return "_pclose";
-  case 0x01be: return "_pctype";
-  case 0x01bf: return "_pgmptr";
-  case 0x01c0: return "_pipe";
-  case 0x01c1: return "_popen";
-  case 0x01c2: return "_purecall";
-  case 0x01c3: return "_putch";
-  case 0x01c4: return "_putenv";
-  case 0x01c5: return "_putw";
-  case 0x01c6: return "_putwch";
-  case 0x01c7: return "_putws";
-  case 0x01c8: return "_pwctype";
-  case 0x01c9: return "_read";
-  case 0x01ca: return "_resetstkoflw";
-  case 0x01cb: return "_rmdir";
-  case 0x01cc: return "_rmtmp";
-  case 0x01cd: return "_rotl";
-  case 0x01ce: return "_rotr";
-  case 0x01cf: return "_safe_fdiv";
-  case 0x01d0: return "_safe_fdivr";
-  case 0x01d1: return "_safe_fprem";
-  case 0x01d2: return "_safe_fprem1";
-  case 0x01d3: return "_scalb";
-  case 0x01d4: return "_scprintf";
-  case 0x01d5: return "_scwprintf";
-  case 0x01d6: return "_searchenv";
-  case 0x01d7: return "_seh_longjmp_unwind";
-  case 0x01d8: return "_set_SSE2_enable";
-  case 0x01d9: return "_set_error_mode";
-  case 0x01da: return "_set_sbh_threshold";
-  case 0x01db: return "_seterrormode";
-  case 0x01dc: return "_setjmp";
-  case 0x01dd: return "_setjmp3";
-  case 0x01de: return "_setmaxstdio";
-  case 0x01df: return "_setmbcp";
-  case 0x01e0: return "_setmode";
-  case 0x01e1: return "_setsystime";
-  case 0x01e2: return "_sleep";
-  case 0x01e3: return "_snprintf";
-  case 0x01e4: return "_snscanf";
-  case 0x01e5: return "_snwprintf";
-  case 0x01e6: return "_snwscanf";
-  case 0x01e7: return "_sopen";
-  case 0x01e8: return "_spawnl";
-  case 0x01e9: return "_spawnle";
-  case 0x01ea: return "_spawnlp";
-  case 0x01eb: return "_spawnlpe";
-  case 0x01ec: return "_spawnv";
-  case 0x01ed: return "_spawnve";
-  case 0x01ee: return "_spawnvp";
-  case 0x01ef: return "_spawnvpe";
-  case 0x01f0: return "_splitpath";
-  case 0x01f1: return "_stat";
-  case 0x01f2: return "_stat64";
-  case 0x01f3: return "_stati64";
-  case 0x01f4: return "_statusfp";
-  case 0x01f5: return "_strcmpi";
-  case 0x01f6: return "_strdate";
-  case 0x01f7: return "_strdup";
-  case 0x01f8: return "_strerror";
-  case 0x01f9: return "_stricmp";
-  case 0x01fa: return "_stricoll";
-  case 0x01fb: return "_strlwr";
-  case 0x01fc: return "_strncoll";
-  case 0x01fd: return "_strnicmp";
-  case 0x01fe: return "_strnicoll";
-  case 0x01ff: return "_strnset";
-  case 0x0200: return "_strrev";
-  case 0x0201: return "_strset";
-  case 0x0202: return "_strtime";
-  case 0x0203: return "_strtoi64";
-  case 0x0204: return "_strtoui64";
-  case 0x0205: return "_strupr";
-  case 0x0206: return "_swab";
-  case 0x0207: return "_sys_errlist";
-  case 0x0208: return "_sys_nerr";
-  case 0x0209: return "_tell";
-  case 0x020a: return "_telli64";
-  case 0x020b: return "_tempnam";
-  case 0x020c: return "_time64";
-  case 0x020d: return "_timezone";
-  case 0x020e: return "_tolower";
-  case 0x020f: return "_toupper";
-  case 0x0210: return "_tzname";
-  case 0x0211: return "_tzset";
-  case 0x0212: return "_ui64toa";
-  case 0x0213: return "_ui64tow";
-  case 0x0214: return "_ultoa";
-  case 0x0215: return "_ultow";
-  case 0x0216: return "_umask";
-  case 0x0217: return "_ungetch";
-  case 0x0218: return "_ungetwch";
-  case 0x0219: return "_unlink";
-  case 0x021a: return "_unloaddll";
-  case 0x021b: return "_unlock";
-  case 0x021c: return "_utime";
-  case 0x021d: return "_utime64";
-  case 0x021e: return "_vscprintf";
-  case 0x021f: return "_vscwprintf";
-  case 0x0220: return "_vsnprintf";
-  case 0x0221: return "_vsnwprintf";
-  case 0x0222: return "_waccess";
-  case 0x0223: return "_wasctime";
-  case 0x0224: return "_wchdir";
-  case 0x0225: return "_wchmod";
-  case 0x0226: return "_wcmdln";
-  case 0x0227: return "_wcreat";
-  case 0x0228: return "_wcsdup";
-  case 0x0229: return "_wcserror";
-  case 0x022a: return "_wcsicmp";
-  case 0x022b: return "_wcsicoll";
-  case 0x022c: return "_wcslwr";
-  case 0x022d: return "_wcsncoll";
-  case 0x022e: return "_wcsnicmp";
-  case 0x022f: return "_wcsnicoll";
-  case 0x0230: return "_wcsnset";
-  case 0x0231: return "_wcsrev";
-  case 0x0232: return "_wcsset";
-  case 0x0233: return "_wcstoi64";
-  case 0x0234: return "_wcstoui64";
-  case 0x0235: return "_wcsupr";
-  case 0x0236: return "_wctime";
-  case 0x0237: return "_wctime64";
-  case 0x0238: return "_wenviron";
-  case 0x0239: return "_wexecl";
-  case 0x023a: return "_wexecle";
-  case 0x023b: return "_wexeclp";
-  case 0x023c: return "_wexeclpe";
-  case 0x023d: return "_wexecv";
-  case 0x023e: return "_wexecve";
-  case 0x023f: return "_wexecvp";
-  case 0x0240: return "_wexecvpe";
-  case 0x0241: return "_wfdopen";
-  case 0x0242: return "_wfindfirst";
-  case 0x0243: return "_wfindfirst64";
-  case 0x0244: return "_wfindfirsti64";
-  case 0x0245: return "_wfindnext";
-  case 0x0246: return "_wfindnext64";
-  case 0x0247: return "_wfindnexti64";
-  case 0x0248: return "_wfopen";
-  case 0x0249: return "_wfreopen";
-  case 0x024a: return "_wfsopen";
-  case 0x024b: return "_wfullpath";
-  case 0x024c: return "_wgetcwd";
-  case 0x024d: return "_wgetdcwd";
-  case 0x024e: return "_wgetenv";
-  case 0x024f: return "_winmajor";
-  case 0x0250: return "_winminor";
-  case 0x0251: return "_winver";
-  case 0x0252: return "_wmakepath";
-  case 0x0253: return "_wmkdir";
-  case 0x0254: return "_wmktemp";
-  case 0x0255: return "_wopen";
-  case 0x0256: return "_wperror";
-  case 0x0257: return "_wpgmptr";
-  case 0x0258: return "_wpopen";
-  case 0x0259: return "_wputenv";
-  case 0x025a: return "_wremove";
-  case 0x025b: return "_wrename";
-  case 0x025c: return "_write";
-  case 0x025d: return "_wrmdir";
-  case 0x025e: return "_wsearchenv";
-  case 0x025f: return "_wsetlocale";
-  case 0x0260: return "_wsopen";
-  case 0x0261: return "_wspawnl";
-  case 0x0262: return "_wspawnle";
-  case 0x0263: return "_wspawnlp";
-  case 0x0264: return "_wspawnlpe";
-  case 0x0265: return "_wspawnv";
-  case 0x0266: return "_wspawnve";
-  case 0x0267: return "_wspawnvp";
-  case 0x0268: return "_wspawnvpe";
-  case 0x0269: return "_wsplitpath";
-  case 0x026a: return "_wstat";
-  case 0x026b: return "_wstat64";
-  case 0x026c: return "_wstati64";
-  case 0x026d: return "_wstrdate";
-  case 0x026e: return "_wstrtime";
-  case 0x026f: return "_wsystem";
-  case 0x0270: return "_wtempnam";
-  case 0x0271: return "_wtmpnam";
-  case 0x0272: return "_wtof";
-  case 0x0273: return "_wtoi";
-  case 0x0274: return "_wtoi64";
-  case 0x0275: return "_wtol";
-  case 0x0276: return "_wunlink";
-  case 0x0277: return "_wutime";
-  case 0x0278: return "_wutime64";
-  case 0x0279: return "_y0";
-  case 0x027a: return "_y1";
-  case 0x027b: return "_yn";
-  case 0x027c: return "abort";
-  case 0x027d: return "abs";
-  case 0x027e: return "acos";
-  case 0x027f: return "asctime";
-  case 0x0280: return "asin";
-  case 0x0281: return "atan";
-  case 0x0282: return "atan2";
-  case 0x0283: return "atexit";
-  case 0x0284: return "atof";
-  case 0x0285: return "atoi";
-  case 0x0286: return "atol";
-  case 0x0287: return "bsearch";
-  case 0x0288: return "calloc";
-  case 0x0289: return "ceil";
-  case 0x028a: return "clearerr";
-  case 0x028b: return "clock";
-  case 0x028c: return "cos";
-  case 0x028d: return "cosh";
-  case 0x028e: return "ctime";
-  case 0x028f: return "difftime";
-  case 0x0290: return "div";
-  case 0x0291: return "exit";
-  case 0x0292: return "exp";
-  case 0x0293: return "fabs";
-  case 0x0294: return "fclose";
-  case 0x0295: return "feof";
-  case 0x0296: return "ferror";
-  case 0x0297: return "fflush";
-  case 0x0298: return "fgetc";
-  case 0x0299: return "fgetpos";
-  case 0x029a: return "fgets";
-  case 0x029b: return "fgetwc";
-  case 0x029c: return "fgetws";
-  case 0x029d: return "floor";
-  case 0x029e: return "fmod";
-  case 0x029f: return "fopen";
-  case 0x02a0: return "fprintf";
-  case 0x02a1: return "fputc";
-  case 0x02a2: return "fputs";
-  case 0x02a3: return "fputwc";
-  case 0x02a4: return "fputws";
-  case 0x02a5: return "fread";
-  case 0x02a6: return "free";
-  case 0x02a7: return "freopen";
-  case 0x02a8: return "frexp";
-  case 0x02a9: return "fscanf";
-  case 0x02aa: return "fseek";
-  case 0x02ab: return "fsetpos";
-  case 0x02ac: return "ftell";
-  case 0x02ad: return "fwprintf";
-  case 0x02ae: return "fwrite";
-  case 0x02af: return "fwscanf";
-  case 0x02b0: return "getc";
-  case 0x02b1: return "getchar";
-  case 0x02b2: return "getenv";
-  case 0x02b3: return "gets";
-  case 0x02b4: return "getwc";
-  case 0x02b5: return "getwchar";
-  case 0x02b6: return "gmtime";
-  case 0x02b7: return "is_wctype";
-  case 0x02b8: return "isalnum";
-  case 0x02b9: return "isalpha";
-  case 0x02ba: return "iscntrl";
-  case 0x02bb: return "isdigit";
-  case 0x02bc: return "isgraph";
-  case 0x02bd: return "isleadbyte";
-  case 0x02be: return "islower";
-  case 0x02bf: return "isprint";
-  case 0x02c0: return "ispunct";
-  case 0x02c1: return "isspace";
-  case 0x02c2: return "isupper";
-  case 0x02c3: return "iswalnum";
-  case 0x02c4: return "iswalpha";
-  case 0x02c5: return "iswascii";
-  case 0x02c6: return "iswcntrl";
-  case 0x02c7: return "iswctype";
-  case 0x02c8: return "iswdigit";
-  case 0x02c9: return "iswgraph";
-  case 0x02ca: return "iswlower";
-  case 0x02cb: return "iswprint";
-  case 0x02cc: return "iswpunct";
-  case 0x02cd: return "iswspace";
-  case 0x02ce: return "iswupper";
-  case 0x02cf: return "iswxdigit";
-  case 0x02d0: return "isxdigit";
-  case 0x02d1: return "labs";
-  case 0x02d2: return "ldexp";
-  case 0x02d3: return "ldiv";
-  case 0x02d4: return "localeconv";
-  case 0x02d5: return "localtime";
-  case 0x02d6: return "log";
-  case 0x02d7: return "log10";
-  case 0x02d8: return "longjmp";
-  case 0x02d9: return "malloc";
-  case 0x02da: return "mblen";
-  case 0x02db: return "mbstowcs";
-  case 0x02dc: return "mbtowc";
-  case 0x02dd: return "memchr";
-  case 0x02de: return "memcmp";
-  case 0x02df: return "memcpy";
-  case 0x02e0: return "memmove";
-  case 0x02e1: return "memset";
-  case 0x02e2: return "mktime";
-  case 0x02e3: return "modf";
-  case 0x02e4: return "perror";
-  case 0x02e5: return "pow";
-  case 0x02e6: return "printf";
-  case 0x02e7: return "putc";
-  case 0x02e8: return "putchar";
-  case 0x02e9: return "puts";
-  case 0x02ea: return "putwc";
-  case 0x02eb: return "putwchar";
-  case 0x02ec: return "qsort";
-  case 0x02ed: return "raise";
-  case 0x02ee: return "rand";
-  case 0x02ef: return "realloc";
-  case 0x02f0: return "remove";
-  case 0x02f1: return "rename";
-  case 0x02f2: return "rewind";
-  case 0x02f3: return "scanf";
-  case 0x02f4: return "setbuf";
-  case 0x02f5: return "setlocale";
-  case 0x02f6: return "setvbuf";
-  case 0x02f7: return "signal";
-  case 0x02f8: return "sin";
-  case 0x02f9: return "sinh";
-  case 0x02fa: return "sprintf";
-  case 0x02fb: return "sqrt";
-  case 0x02fc: return "srand";
-  case 0x02fd: return "sscanf";
-  case 0x02fe: return "strcat";
-  case 0x02ff: return "strchr";
-  case 0x0300: return "strcmp";
-  case 0x0301: return "strcoll";
-  case 0x0302: return "strcpy";
-  case 0x0303: return "strcspn";
-  case 0x0304: return "strerror";
-  case 0x0305: return "strftime";
-  case 0x0306: return "strlen";
-  case 0x0307: return "strncat";
-  case 0x0308: return "strncmp";
-  case 0x0309: return "strncpy";
-  case 0x030a: return "strpbrk";
-  case 0x030b: return "strrchr";
-  case 0x030c: return "strspn";
-  case 0x030d: return "strstr";
-  case 0x030e: return "strtod";
-  case 0x030f: return "strtok";
-  case 0x0310: return "strtol";
-  case 0x0311: return "strtoul";
-  case 0x0312: return "strxfrm";
-  case 0x0313: return "swprintf";
-  case 0x0314: return "swscanf";
-  case 0x0315: return "system";
-  case 0x0316: return "tan";
-  case 0x0317: return "tanh";
-  case 0x0318: return "time";
-  case 0x0319: return "tmpfile";
-  case 0x031a: return "tmpnam";
-  case 0x031b: return "tolower";
-  case 0x031c: return "toupper";
-  case 0x031d: return "towlower";
-  case 0x031e: return "towupper";
-  case 0x031f: return "ungetc";
-  case 0x0320: return "ungetwc";
-  case 0x0321: return "vfprintf";
-  case 0x0322: return "vfwprintf";
-  case 0x0323: return "vprintf";
-  case 0x0324: return "vsprintf";
-  case 0x0325: return "vswprintf";
-  case 0x0326: return "vwprintf";
-  case 0x0327: return "wcscat";
-  case 0x0328: return "wcschr";
-  case 0x0329: return "wcscmp";
-  case 0x032a: return "wcscoll";
-  case 0x032b: return "wcscpy";
-  case 0x032c: return "wcscspn";
-  case 0x032d: return "wcsftime";
-  case 0x032e: return "wcslen";
-  case 0x032f: return "wcsncat";
-  case 0x0330: return "wcsncmp";
-  case 0x0331: return "wcsncpy";
-  case 0x0332: return "wcspbrk";
-  case 0x0333: return "wcsrchr";
-  case 0x0334: return "wcsspn";
-  case 0x0335: return "wcsstr";
-  case 0x0336: return "wcstod";
-  case 0x0337: return "wcstok";
-  case 0x0338: return "wcstol";
-  case 0x0339: return "wcstombs";
-  case 0x033a: return "wcstoul";
-  case 0x033b: return "wcsxfrm";
-  case 0x033c: return "wctomb";
-  case 0x033d: return "wprintf";
-  case 0x033e: return "wscanf";
+  switch (i) {
+    case 0x0038: return "$I10_OUTPUT";
+    case 0x0001: return "??0__non_rtti_object@@QAE@ABV0@@Z";
+    case 0x0002: return "??0__non_rtti_object@@QAE@PBD@Z";
+    case 0x0003: return "??0bad_cast@@AAE@PBQBD@Z";
+    case 0x0004: return "??0bad_cast@@QAE@ABQBD@Z";
+    case 0x0005: return "??0bad_cast@@QAE@ABV0@@Z";
+    case 0x0006: return "??0bad_cast@@QAE@PBD@Z";
+    case 0x0007: return "??0bad_typeid@@QAE@ABV0@@Z";
+    case 0x0008: return "??0bad_typeid@@QAE@PBD@Z";
+    case 0x0009: return "??0exception@@QAE@ABQBD@Z";
+    case 0x000a: return "??0exception@@QAE@ABV0@@Z";
+    case 0x000b: return "??0exception@@QAE@XZ";
+    case 0x000c: return "??1__non_rtti_object@@UAE@XZ";
+    case 0x000d: return "??1bad_cast@@UAE@XZ";
+    case 0x000e: return "??1bad_typeid@@UAE@XZ";
+    case 0x000f: return "??1exception@@UAE@XZ";
+    case 0x0010: return "??1type_info@@UAE@XZ";
+    case 0x0011: return "??2@YAPAXI@Z";
+    case 0x0012: return "??3@YAXPAX@Z";
+    case 0x0013: return "??4__non_rtti_object@@QAEAAV0@ABV0@@Z";
+    case 0x0014: return "??4bad_cast@@QAEAAV0@ABV0@@Z";
+    case 0x0015: return "??4bad_typeid@@QAEAAV0@ABV0@@Z";
+    case 0x0016: return "??4exception@@QAEAAV0@ABV0@@Z";
+    case 0x0017: return "??8type_info@@QBEHABV0@@Z";
+    case 0x0018: return "??9type_info@@QBEHABV0@@Z";
+    case 0x0019: return "??_7__non_rtti_object@@6B@";
+    case 0x001a: return "??_7bad_cast@@6B@";
+    case 0x001b: return "??_7bad_typeid@@6B@";
+    case 0x001c: return "??_7exception@@6B@";
+    case 0x001d: return "??_E__non_rtti_object@@UAEPAXI@Z";
+    case 0x001e: return "??_Ebad_cast@@UAEPAXI@Z";
+    case 0x001f: return "??_Ebad_typeid@@UAEPAXI@Z";
+    case 0x0020: return "??_Eexception@@UAEPAXI@Z";
+    case 0x0021: return "??_Fbad_cast@@QAEXXZ";
+    case 0x0022: return "??_Fbad_typeid@@QAEXXZ";
+    case 0x0023: return "??_G__non_rtti_object@@UAEPAXI@Z";
+    case 0x0024: return "??_Gbad_cast@@UAEPAXI@Z";
+    case 0x0025: return "??_Gbad_typeid@@UAEPAXI@Z";
+    case 0x0026: return "??_Gexception@@UAEPAXI@Z";
+    case 0x0027: return "??_U@YAPAXI@Z";
+    case 0x0028: return "??_V@YAXPAX@Z";
+    case 0x002a: return "?_query_new_handler@@YAP6AHI@ZXZ";
+    case 0x002b: return "?_query_new_mode@@YAHXZ";
+    case 0x002c: return "?_set_new_handler@@YAP6AHI@ZP6AHI@Z@Z";
+    case 0x002d: return "?_set_new_mode@@YAHH@Z";
+    case 0x002e:
+      return "?_set_se_translator@@YAP6AXIPAU_EXCEPTION_POINTERS@@@ZP6AXI0@Z@Z";
+    case 0x002f: return "?before@type_info@@QBEHABV1@@Z";
+    case 0x0030: return "?name@type_info@@QBEPBDXZ";
+    case 0x0031: return "?raw_name@type_info@@QBEPBDXZ";
+    case 0x0032: return "?set_new_handler@@YAP6AXXZP6AXXZ@Z";
+    case 0x0033: return "?set_terminate@@YAP6AXXZP6AXXZ@Z";
+    case 0x0034: return "?set_unexpected@@YAP6AXXZP6AXXZ@Z";
+    case 0x0035: return "?terminate@@YAXXZ";
+    case 0x0036: return "?unexpected@@YAXXZ";
+    case 0x0037: return "?what@exception@@UBEPBDXZ";
+    case 0x0039: return "_CIacos";
+    case 0x003a: return "_CIasin";
+    case 0x003b: return "_CIatan";
+    case 0x003c: return "_CIatan2";
+    case 0x003d: return "_CIcos";
+    case 0x003e: return "_CIcosh";
+    case 0x003f: return "_CIexp";
+    case 0x0040: return "_CIfmod";
+    case 0x0041: return "_CIlog";
+    case 0x0042: return "_CIlog10";
+    case 0x0043: return "_CIpow";
+    case 0x0044: return "_CIsin";
+    case 0x0045: return "_CIsinh";
+    case 0x0046: return "_CIsqrt";
+    case 0x0047: return "_CItan";
+    case 0x0048: return "_CItanh";
+    case 0x0049: return "_CxxThrowException";
+    case 0x004a: return "_EH_prolog";
+    case 0x004b: return "_Getdays";
+    case 0x004c: return "_Getmonths";
+    case 0x004d: return "_Gettnames";
+    case 0x004e: return "_HUGE";
+    case 0x004f: return "_Strftime";
+    case 0x0050: return "_XcptFilter";
+    case 0x0051: return "__CxxCallUnwindDtor";
+    case 0x0052: return "__CxxDetectRethrow";
+    case 0x0053: return "__CxxExceptionFilter";
+    case 0x0054: return "__CxxFrameHandler";
+    case 0x0055: return "__CxxLongjmpUnwind";
+    case 0x0056: return "__CxxQueryExceptionSize";
+    case 0x0057: return "__CxxRegisterExceptionObject";
+    case 0x0058: return "__CxxUnregisterExceptionObject";
+    case 0x0059: return "__DestructExceptionObject";
+    case 0x005a: return "__RTCastToVoid";
+    case 0x005b: return "__RTDynamicCast";
+    case 0x005c: return "__RTtypeid";
+    case 0x005d: return "__STRINGTOLD";
+    case 0x005e: return "___lc_codepage_func";
+    case 0x005f: return "___lc_handle_func";
+    case 0x0060: return "___mb_cur_max_func";
+    case 0x0061: return "___setlc_active_func";
+    case 0x0062: return "___unguarded_readlc_active_add_func";
+    case 0x0063: return "__argc";
+    case 0x0064: return "__argv";
+    case 0x0065: return "__badioinfo";
+    case 0x0066: return "__crtCompareStringA";
+    case 0x0067: return "__crtCompareStringW";
+    case 0x0068: return "__crtGetLocaleInfoW";
+    case 0x0069: return "__crtGetStringTypeW";
+    case 0x006a: return "__crtLCMapStringA";
+    case 0x006b: return "__crtLCMapStringW";
+    case 0x006c: return "__dllonexit";
+    case 0x006d: return "__doserrno";
+    case 0x006e: return "__fpecode";
+    case 0x006f: return "__getmainargs";
+    case 0x0070: return "__initenv";
+    case 0x0071: return "__iob_func";
+    case 0x0072: return "__isascii";
+    case 0x0073: return "__iscsym";
+    case 0x0074: return "__iscsymf";
+    case 0x0075: return "__lc_codepage";
+    case 0x0076: return "__lc_collate_cp";
+    case 0x0077: return "__lc_handle";
+    case 0x0078: return "__lconv_init";
+    case 0x0079: return "__mb_cur_max";
+    case 0x007a: return "__p___argc";
+    case 0x007b: return "__p___argv";
+    case 0x007c: return "__p___initenv";
+    case 0x007d: return "__p___mb_cur_max";
+    case 0x007e: return "__p___wargv";
+    case 0x007f: return "__p___winitenv";
+    case 0x0080: return "__p__acmdln";
+    case 0x0081: return "__p__amblksiz";
+    case 0x0082: return "__p__commode";
+    case 0x0083: return "__p__daylight";
+    case 0x0084: return "__p__dstbias";
+    case 0x0085: return "__p__environ";
+    case 0x0086: return "__p__fileinfo";
+    case 0x0087: return "__p__fmode";
+    case 0x0088: return "__p__iob";
+    case 0x0089: return "__p__mbcasemap";
+    case 0x008a: return "__p__mbctype";
+    case 0x008b: return "__p__osver";
+    case 0x008c: return "__p__pctype";
+    case 0x008d: return "__p__pgmptr";
+    case 0x008e: return "__p__pwctype";
+    case 0x008f: return "__p__timezone";
+    case 0x0090: return "__p__tzname";
+    case 0x0091: return "__p__wcmdln";
+    case 0x0092: return "__p__wenviron";
+    case 0x0093: return "__p__winmajor";
+    case 0x0094: return "__p__winminor";
+    case 0x0095: return "__p__winver";
+    case 0x0096: return "__p__wpgmptr";
+    case 0x0097: return "__pctype_func";
+    case 0x0098: return "__pioinfo";
+    case 0x0099: return "__pxcptinfoptrs";
+    case 0x009a: return "__set_app_type";
+    case 0x009b: return "__setlc_active";
+    case 0x009c: return "__setusermatherr";
+    case 0x009d: return "__threadhandle";
+    case 0x009e: return "__threadid";
+    case 0x009f: return "__toascii";
+    case 0x00a0: return "__unDName";
+    case 0x00a1: return "__unDNameEx";
+    case 0x0029: return "__uncaught_exception";
+    case 0x00a2: return "__unguarded_readlc_active";
+    case 0x00a3: return "__wargv";
+    case 0x00a4: return "__wcserror";
+    case 0x00a5: return "__wgetmainargs";
+    case 0x00a6: return "__winitenv";
+    case 0x00a7: return "_abnormal_termination";
+    case 0x00a8: return "_access";
+    case 0x00a9: return "_acmdln";
+    case 0x00aa: return "_adj_fdiv_m16i";
+    case 0x00ab: return "_adj_fdiv_m32";
+    case 0x00ac: return "_adj_fdiv_m32i";
+    case 0x00ad: return "_adj_fdiv_m64";
+    case 0x00ae: return "_adj_fdiv_r";
+    case 0x00af: return "_adj_fdivr_m16i";
+    case 0x00b0: return "_adj_fdivr_m32";
+    case 0x00b1: return "_adj_fdivr_m32i";
+    case 0x00b2: return "_adj_fdivr_m64";
+    case 0x00b3: return "_adj_fpatan";
+    case 0x00b4: return "_adj_fprem";
+    case 0x00b5: return "_adj_fprem1";
+    case 0x00b6: return "_adj_fptan";
+    case 0x00b7: return "_adjust_fdiv";
+    case 0x00b8: return "_aexit_rtn";
+    case 0x00b9: return "_aligned_free";
+    case 0x00ba: return "_aligned_malloc";
+    case 0x00bb: return "_aligned_offset_malloc";
+    case 0x00bc: return "_aligned_offset_realloc";
+    case 0x00bd: return "_aligned_realloc";
+    case 0x00be: return "_amsg_exit";
+    case 0x00bf: return "_assert";
+    case 0x00c0: return "_atodbl";
+    case 0x00c1: return "_atoi64";
+    case 0x00c2: return "_atoldbl";
+    case 0x00c3: return "_beep";
+    case 0x00c4: return "_beginthread";
+    case 0x00c5: return "_beginthreadex";
+    case 0x00c6: return "_c_exit";
+    case 0x00c7: return "_cabs";
+    case 0x00c8: return "_callnewh";
+    case 0x00c9: return "_cexit";
+    case 0x00ca: return "_cgets";
+    case 0x00cb: return "_cgetws";
+    case 0x00cc: return "_chdir";
+    case 0x00cd: return "_chdrive";
+    case 0x00ce: return "_chgsign";
+    case 0x00cf: return "_chkesp";
+    case 0x00d0: return "_chmod";
+    case 0x00d1: return "_chsize";
+    case 0x00d2: return "_clearfp";
+    case 0x00d3: return "_close";
+    case 0x00d4: return "_commit";
+    case 0x00d5: return "_commode";
+    case 0x00d6: return "_control87";
+    case 0x00d7: return "_controlfp";
+    case 0x00d8: return "_copysign";
+    case 0x00d9: return "_cprintf";
+    case 0x00da: return "_cputs";
+    case 0x00db: return "_cputws";
+    case 0x00dc: return "_creat";
+    case 0x00dd: return "_cscanf";
+    case 0x00de: return "_ctime64";
+    case 0x00df: return "_ctype";
+    case 0x00e0: return "_cwait";
+    case 0x00e1: return "_cwprintf";
+    case 0x00e2: return "_cwscanf";
+    case 0x00e3: return "_daylight";
+    case 0x00e4: return "_dstbias";
+    case 0x00e5: return "_dup";
+    case 0x00e6: return "_dup2";
+    case 0x00e7: return "_ecvt";
+    case 0x00e8: return "_endthread";
+    case 0x00e9: return "_endthreadex";
+    case 0x00ea: return "_environ";
+    case 0x00eb: return "_eof";
+    case 0x00ec: return "_errno";
+    case 0x00ed: return "_except_handler2";
+    case 0x00ee: return "_except_handler3";
+    case 0x00ef: return "_execl";
+    case 0x00f0: return "_execle";
+    case 0x00f1: return "_execlp";
+    case 0x00f2: return "_execlpe";
+    case 0x00f3: return "_execv";
+    case 0x00f4: return "_execve";
+    case 0x00f5: return "_execvp";
+    case 0x00f6: return "_execvpe";
+    case 0x00f7: return "_exit";
+    case 0x00f8: return "_expand";
+    case 0x00f9: return "_fcloseall";
+    case 0x00fa: return "_fcvt";
+    case 0x00fb: return "_fdopen";
+    case 0x00fc: return "_fgetchar";
+    case 0x00fd: return "_fgetwchar";
+    case 0x00fe: return "_filbuf";
+    case 0x00ff: return "_fileinfo";
+    case 0x0100: return "_filelength";
+    case 0x0101: return "_filelengthi64";
+    case 0x0102: return "_fileno";
+    case 0x0103: return "_findclose";
+    case 0x0104: return "_findfirst";
+    case 0x0105: return "_findfirst64";
+    case 0x0106: return "_findfirsti64";
+    case 0x0107: return "_findnext";
+    case 0x0108: return "_findnext64";
+    case 0x0109: return "_findnexti64";
+    case 0x010a: return "_finite";
+    case 0x010b: return "_flsbuf";
+    case 0x010c: return "_flushall";
+    case 0x010d: return "_fmode";
+    case 0x010e: return "_fpclass";
+    case 0x010f: return "_fpieee_flt";
+    case 0x0110: return "_fpreset";
+    case 0x0111: return "_fputchar";
+    case 0x0112: return "_fputwchar";
+    case 0x0113: return "_fsopen";
+    case 0x0114: return "_fstat";
+    case 0x0115: return "_fstat64";
+    case 0x0116: return "_fstati64";
+    case 0x0117: return "_ftime";
+    case 0x0118: return "_ftime64";
+    case 0x0119: return "_ftol";
+    case 0x011a: return "_fullpath";
+    case 0x011b: return "_futime";
+    case 0x011c: return "_futime64";
+    case 0x011d: return "_gcvt";
+    case 0x011e: return "_get_heap_handle";
+    case 0x011f: return "_get_osfhandle";
+    case 0x0120: return "_get_sbh_threshold";
+    case 0x0121: return "_getch";
+    case 0x0122: return "_getche";
+    case 0x0123: return "_getcwd";
+    case 0x0124: return "_getdcwd";
+    case 0x0125: return "_getdiskfree";
+    case 0x0126: return "_getdllprocaddr";
+    case 0x0127: return "_getdrive";
+    case 0x0128: return "_getdrives";
+    case 0x0129: return "_getmaxstdio";
+    case 0x012a: return "_getmbcp";
+    case 0x012b: return "_getpid";
+    case 0x012c: return "_getsystime";
+    case 0x012d: return "_getw";
+    case 0x012e: return "_getwch";
+    case 0x012f: return "_getwche";
+    case 0x0130: return "_getws";
+    case 0x0131: return "_global_unwind2";
+    case 0x0132: return "_gmtime64";
+    case 0x0133: return "_heapadd";
+    case 0x0134: return "_heapchk";
+    case 0x0135: return "_heapmin";
+    case 0x0136: return "_heapset";
+    case 0x0137: return "_heapused";
+    case 0x0138: return "_heapwalk";
+    case 0x0139: return "_hypot";
+    case 0x013a: return "_i64toa";
+    case 0x013b: return "_i64tow";
+    case 0x013c: return "_initterm";
+    case 0x013d: return "_inp";
+    case 0x013e: return "_inpd";
+    case 0x013f: return "_inpw";
+    case 0x0140: return "_iob";
+    case 0x0141: return "_isatty";
+    case 0x0142: return "_isctype";
+    case 0x0143: return "_ismbbalnum";
+    case 0x0144: return "_ismbbalpha";
+    case 0x0145: return "_ismbbgraph";
+    case 0x0146: return "_ismbbkalnum";
+    case 0x0147: return "_ismbbkana";
+    case 0x0148: return "_ismbbkprint";
+    case 0x0149: return "_ismbbkpunct";
+    case 0x014a: return "_ismbblead";
+    case 0x014b: return "_ismbbprint";
+    case 0x014c: return "_ismbbpunct";
+    case 0x014d: return "_ismbbtrail";
+    case 0x014e: return "_ismbcalnum";
+    case 0x014f: return "_ismbcalpha";
+    case 0x0150: return "_ismbcdigit";
+    case 0x0151: return "_ismbcgraph";
+    case 0x0152: return "_ismbchira";
+    case 0x0153: return "_ismbckata";
+    case 0x0154: return "_ismbcl0";
+    case 0x0155: return "_ismbcl1";
+    case 0x0156: return "_ismbcl2";
+    case 0x0157: return "_ismbclegal";
+    case 0x0158: return "_ismbclower";
+    case 0x0159: return "_ismbcprint";
+    case 0x015a: return "_ismbcpunct";
+    case 0x015b: return "_ismbcspace";
+    case 0x015c: return "_ismbcsymbol";
+    case 0x015d: return "_ismbcupper";
+    case 0x015e: return "_ismbslead";
+    case 0x015f: return "_ismbstrail";
+    case 0x0160: return "_isnan";
+    case 0x0161: return "_itoa";
+    case 0x0162: return "_itow";
+    case 0x0163: return "_j0";
+    case 0x0164: return "_j1";
+    case 0x0165: return "_jn";
+    case 0x0166: return "_kbhit";
+    case 0x0167: return "_lfind";
+    case 0x0168: return "_loaddll";
+    case 0x0169: return "_local_unwind2";
+    case 0x016a: return "_localtime64";
+    case 0x016b: return "_lock";
+    case 0x016c: return "_locking";
+    case 0x016d: return "_logb";
+    case 0x016e: return "_longjmpex";
+    case 0x016f: return "_lrotl";
+    case 0x0170: return "_lrotr";
+    case 0x0171: return "_lsearch";
+    case 0x0172: return "_lseek";
+    case 0x0173: return "_lseeki64";
+    case 0x0174: return "_ltoa";
+    case 0x0175: return "_ltow";
+    case 0x0176: return "_makepath";
+    case 0x0177: return "_mbbtombc";
+    case 0x0178: return "_mbbtype";
+    case 0x0179: return "_mbcasemap";
+    case 0x017a: return "_mbccpy";
+    case 0x017b: return "_mbcjistojms";
+    case 0x017c: return "_mbcjmstojis";
+    case 0x017d: return "_mbclen";
+    case 0x017e: return "_mbctohira";
+    case 0x017f: return "_mbctokata";
+    case 0x0180: return "_mbctolower";
+    case 0x0181: return "_mbctombb";
+    case 0x0182: return "_mbctoupper";
+    case 0x0183: return "_mbctype";
+    case 0x0184: return "_mbsbtype";
+    case 0x0185: return "_mbscat";
+    case 0x0186: return "_mbschr";
+    case 0x0187: return "_mbscmp";
+    case 0x0188: return "_mbscoll";
+    case 0x0189: return "_mbscpy";
+    case 0x018a: return "_mbscspn";
+    case 0x018b: return "_mbsdec";
+    case 0x018c: return "_mbsdup";
+    case 0x018d: return "_mbsicmp";
+    case 0x018e: return "_mbsicoll";
+    case 0x018f: return "_mbsinc";
+    case 0x0190: return "_mbslen";
+    case 0x0191: return "_mbslwr";
+    case 0x0192: return "_mbsnbcat";
+    case 0x0193: return "_mbsnbcmp";
+    case 0x0194: return "_mbsnbcnt";
+    case 0x0195: return "_mbsnbcoll";
+    case 0x0196: return "_mbsnbcpy";
+    case 0x0197: return "_mbsnbicmp";
+    case 0x0198: return "_mbsnbicoll";
+    case 0x0199: return "_mbsnbset";
+    case 0x019a: return "_mbsncat";
+    case 0x019b: return "_mbsnccnt";
+    case 0x019c: return "_mbsncmp";
+    case 0x019d: return "_mbsncoll";
+    case 0x019e: return "_mbsncpy";
+    case 0x019f: return "_mbsnextc";
+    case 0x01a0: return "_mbsnicmp";
+    case 0x01a1: return "_mbsnicoll";
+    case 0x01a2: return "_mbsninc";
+    case 0x01a3: return "_mbsnset";
+    case 0x01a4: return "_mbspbrk";
+    case 0x01a5: return "_mbsrchr";
+    case 0x01a6: return "_mbsrev";
+    case 0x01a7: return "_mbsset";
+    case 0x01a8: return "_mbsspn";
+    case 0x01a9: return "_mbsspnp";
+    case 0x01aa: return "_mbsstr";
+    case 0x01ab: return "_mbstok";
+    case 0x01ac: return "_mbstrlen";
+    case 0x01ad: return "_mbsupr";
+    case 0x01ae: return "_memccpy";
+    case 0x01af: return "_memicmp";
+    case 0x01b0: return "_mkdir";
+    case 0x01b1: return "_mktemp";
+    case 0x01b2: return "_mktime64";
+    case 0x01b3: return "_msize";
+    case 0x01b4: return "_nextafter";
+    case 0x01b5: return "_onexit";
+    case 0x01b6: return "_open";
+    case 0x01b7: return "_open_osfhandle";
+    case 0x01b8: return "_osplatform";
+    case 0x01b9: return "_osver";
+    case 0x01ba: return "_outp";
+    case 0x01bb: return "_outpd";
+    case 0x01bc: return "_outpw";
+    case 0x01bd: return "_pclose";
+    case 0x01be: return "_pctype";
+    case 0x01bf: return "_pgmptr";
+    case 0x01c0: return "_pipe";
+    case 0x01c1: return "_popen";
+    case 0x01c2: return "_purecall";
+    case 0x01c3: return "_putch";
+    case 0x01c4: return "_putenv";
+    case 0x01c5: return "_putw";
+    case 0x01c6: return "_putwch";
+    case 0x01c7: return "_putws";
+    case 0x01c8: return "_pwctype";
+    case 0x01c9: return "_read";
+    case 0x01ca: return "_resetstkoflw";
+    case 0x01cb: return "_rmdir";
+    case 0x01cc: return "_rmtmp";
+    case 0x01cd: return "_rotl";
+    case 0x01ce: return "_rotr";
+    case 0x01cf: return "_safe_fdiv";
+    case 0x01d0: return "_safe_fdivr";
+    case 0x01d1: return "_safe_fprem";
+    case 0x01d2: return "_safe_fprem1";
+    case 0x01d3: return "_scalb";
+    case 0x01d4: return "_scprintf";
+    case 0x01d5: return "_scwprintf";
+    case 0x01d6: return "_searchenv";
+    case 0x01d7: return "_seh_longjmp_unwind";
+    case 0x01d8: return "_set_SSE2_enable";
+    case 0x01d9: return "_set_error_mode";
+    case 0x01da: return "_set_sbh_threshold";
+    case 0x01db: return "_seterrormode";
+    case 0x01dc: return "_setjmp";
+    case 0x01dd: return "_setjmp3";
+    case 0x01de: return "_setmaxstdio";
+    case 0x01df: return "_setmbcp";
+    case 0x01e0: return "_setmode";
+    case 0x01e1: return "_setsystime";
+    case 0x01e2: return "_sleep";
+    case 0x01e3: return "_snprintf";
+    case 0x01e4: return "_snscanf";
+    case 0x01e5: return "_snwprintf";
+    case 0x01e6: return "_snwscanf";
+    case 0x01e7: return "_sopen";
+    case 0x01e8: return "_spawnl";
+    case 0x01e9: return "_spawnle";
+    case 0x01ea: return "_spawnlp";
+    case 0x01eb: return "_spawnlpe";
+    case 0x01ec: return "_spawnv";
+    case 0x01ed: return "_spawnve";
+    case 0x01ee: return "_spawnvp";
+    case 0x01ef: return "_spawnvpe";
+    case 0x01f0: return "_splitpath";
+    case 0x01f1: return "_stat";
+    case 0x01f2: return "_stat64";
+    case 0x01f3: return "_stati64";
+    case 0x01f4: return "_statusfp";
+    case 0x01f5: return "_strcmpi";
+    case 0x01f6: return "_strdate";
+    case 0x01f7: return "_strdup";
+    case 0x01f8: return "_strerror";
+    case 0x01f9: return "_stricmp";
+    case 0x01fa: return "_stricoll";
+    case 0x01fb: return "_strlwr";
+    case 0x01fc: return "_strncoll";
+    case 0x01fd: return "_strnicmp";
+    case 0x01fe: return "_strnicoll";
+    case 0x01ff: return "_strnset";
+    case 0x0200: return "_strrev";
+    case 0x0201: return "_strset";
+    case 0x0202: return "_strtime";
+    case 0x0203: return "_strtoi64";
+    case 0x0204: return "_strtoui64";
+    case 0x0205: return "_strupr";
+    case 0x0206: return "_swab";
+    case 0x0207: return "_sys_errlist";
+    case 0x0208: return "_sys_nerr";
+    case 0x0209: return "_tell";
+    case 0x020a: return "_telli64";
+    case 0x020b: return "_tempnam";
+    case 0x020c: return "_time64";
+    case 0x020d: return "_timezone";
+    case 0x020e: return "_tolower";
+    case 0x020f: return "_toupper";
+    case 0x0210: return "_tzname";
+    case 0x0211: return "_tzset";
+    case 0x0212: return "_ui64toa";
+    case 0x0213: return "_ui64tow";
+    case 0x0214: return "_ultoa";
+    case 0x0215: return "_ultow";
+    case 0x0216: return "_umask";
+    case 0x0217: return "_ungetch";
+    case 0x0218: return "_ungetwch";
+    case 0x0219: return "_unlink";
+    case 0x021a: return "_unloaddll";
+    case 0x021b: return "_unlock";
+    case 0x021c: return "_utime";
+    case 0x021d: return "_utime64";
+    case 0x021e: return "_vscprintf";
+    case 0x021f: return "_vscwprintf";
+    case 0x0220: return "_vsnprintf";
+    case 0x0221: return "_vsnwprintf";
+    case 0x0222: return "_waccess";
+    case 0x0223: return "_wasctime";
+    case 0x0224: return "_wchdir";
+    case 0x0225: return "_wchmod";
+    case 0x0226: return "_wcmdln";
+    case 0x0227: return "_wcreat";
+    case 0x0228: return "_wcsdup";
+    case 0x0229: return "_wcserror";
+    case 0x022a: return "_wcsicmp";
+    case 0x022b: return "_wcsicoll";
+    case 0x022c: return "_wcslwr";
+    case 0x022d: return "_wcsncoll";
+    case 0x022e: return "_wcsnicmp";
+    case 0x022f: return "_wcsnicoll";
+    case 0x0230: return "_wcsnset";
+    case 0x0231: return "_wcsrev";
+    case 0x0232: return "_wcsset";
+    case 0x0233: return "_wcstoi64";
+    case 0x0234: return "_wcstoui64";
+    case 0x0235: return "_wcsupr";
+    case 0x0236: return "_wctime";
+    case 0x0237: return "_wctime64";
+    case 0x0238: return "_wenviron";
+    case 0x0239: return "_wexecl";
+    case 0x023a: return "_wexecle";
+    case 0x023b: return "_wexeclp";
+    case 0x023c: return "_wexeclpe";
+    case 0x023d: return "_wexecv";
+    case 0x023e: return "_wexecve";
+    case 0x023f: return "_wexecvp";
+    case 0x0240: return "_wexecvpe";
+    case 0x0241: return "_wfdopen";
+    case 0x0242: return "_wfindfirst";
+    case 0x0243: return "_wfindfirst64";
+    case 0x0244: return "_wfindfirsti64";
+    case 0x0245: return "_wfindnext";
+    case 0x0246: return "_wfindnext64";
+    case 0x0247: return "_wfindnexti64";
+    case 0x0248: return "_wfopen";
+    case 0x0249: return "_wfreopen";
+    case 0x024a: return "_wfsopen";
+    case 0x024b: return "_wfullpath";
+    case 0x024c: return "_wgetcwd";
+    case 0x024d: return "_wgetdcwd";
+    case 0x024e: return "_wgetenv";
+    case 0x024f: return "_winmajor";
+    case 0x0250: return "_winminor";
+    case 0x0251: return "_winver";
+    case 0x0252: return "_wmakepath";
+    case 0x0253: return "_wmkdir";
+    case 0x0254: return "_wmktemp";
+    case 0x0255: return "_wopen";
+    case 0x0256: return "_wperror";
+    case 0x0257: return "_wpgmptr";
+    case 0x0258: return "_wpopen";
+    case 0x0259: return "_wputenv";
+    case 0x025a: return "_wremove";
+    case 0x025b: return "_wrename";
+    case 0x025c: return "_write";
+    case 0x025d: return "_wrmdir";
+    case 0x025e: return "_wsearchenv";
+    case 0x025f: return "_wsetlocale";
+    case 0x0260: return "_wsopen";
+    case 0x0261: return "_wspawnl";
+    case 0x0262: return "_wspawnle";
+    case 0x0263: return "_wspawnlp";
+    case 0x0264: return "_wspawnlpe";
+    case 0x0265: return "_wspawnv";
+    case 0x0266: return "_wspawnve";
+    case 0x0267: return "_wspawnvp";
+    case 0x0268: return "_wspawnvpe";
+    case 0x0269: return "_wsplitpath";
+    case 0x026a: return "_wstat";
+    case 0x026b: return "_wstat64";
+    case 0x026c: return "_wstati64";
+    case 0x026d: return "_wstrdate";
+    case 0x026e: return "_wstrtime";
+    case 0x026f: return "_wsystem";
+    case 0x0270: return "_wtempnam";
+    case 0x0271: return "_wtmpnam";
+    case 0x0272: return "_wtof";
+    case 0x0273: return "_wtoi";
+    case 0x0274: return "_wtoi64";
+    case 0x0275: return "_wtol";
+    case 0x0276: return "_wunlink";
+    case 0x0277: return "_wutime";
+    case 0x0278: return "_wutime64";
+    case 0x0279: return "_y0";
+    case 0x027a: return "_y1";
+    case 0x027b: return "_yn";
+    case 0x027c: return "abort";
+    case 0x027d: return "abs";
+    case 0x027e: return "acos";
+    case 0x027f: return "asctime";
+    case 0x0280: return "asin";
+    case 0x0281: return "atan";
+    case 0x0282: return "atan2";
+    case 0x0283: return "atexit";
+    case 0x0284: return "atof";
+    case 0x0285: return "atoi";
+    case 0x0286: return "atol";
+    case 0x0287: return "bsearch";
+    case 0x0288: return "calloc";
+    case 0x0289: return "ceil";
+    case 0x028a: return "clearerr";
+    case 0x028b: return "clock";
+    case 0x028c: return "cos";
+    case 0x028d: return "cosh";
+    case 0x028e: return "ctime";
+    case 0x028f: return "difftime";
+    case 0x0290: return "div";
+    case 0x0291: return "exit";
+    case 0x0292: return "exp";
+    case 0x0293: return "fabs";
+    case 0x0294: return "fclose";
+    case 0x0295: return "feof";
+    case 0x0296: return "ferror";
+    case 0x0297: return "fflush";
+    case 0x0298: return "fgetc";
+    case 0x0299: return "fgetpos";
+    case 0x029a: return "fgets";
+    case 0x029b: return "fgetwc";
+    case 0x029c: return "fgetws";
+    case 0x029d: return "floor";
+    case 0x029e: return "fmod";
+    case 0x029f: return "fopen";
+    case 0x02a0: return "fprintf";
+    case 0x02a1: return "fputc";
+    case 0x02a2: return "fputs";
+    case 0x02a3: return "fputwc";
+    case 0x02a4: return "fputws";
+    case 0x02a5: return "fread";
+    case 0x02a6: return "free";
+    case 0x02a7: return "freopen";
+    case 0x02a8: return "frexp";
+    case 0x02a9: return "fscanf";
+    case 0x02aa: return "fseek";
+    case 0x02ab: return "fsetpos";
+    case 0x02ac: return "ftell";
+    case 0x02ad: return "fwprintf";
+    case 0x02ae: return "fwrite";
+    case 0x02af: return "fwscanf";
+    case 0x02b0: return "getc";
+    case 0x02b1: return "getchar";
+    case 0x02b2: return "getenv";
+    case 0x02b3: return "gets";
+    case 0x02b4: return "getwc";
+    case 0x02b5: return "getwchar";
+    case 0x02b6: return "gmtime";
+    case 0x02b7: return "is_wctype";
+    case 0x02b8: return "isalnum";
+    case 0x02b9: return "isalpha";
+    case 0x02ba: return "iscntrl";
+    case 0x02bb: return "isdigit";
+    case 0x02bc: return "isgraph";
+    case 0x02bd: return "isleadbyte";
+    case 0x02be: return "islower";
+    case 0x02bf: return "isprint";
+    case 0x02c0: return "ispunct";
+    case 0x02c1: return "isspace";
+    case 0x02c2: return "isupper";
+    case 0x02c3: return "iswalnum";
+    case 0x02c4: return "iswalpha";
+    case 0x02c5: return "iswascii";
+    case 0x02c6: return "iswcntrl";
+    case 0x02c7: return "iswctype";
+    case 0x02c8: return "iswdigit";
+    case 0x02c9: return "iswgraph";
+    case 0x02ca: return "iswlower";
+    case 0x02cb: return "iswprint";
+    case 0x02cc: return "iswpunct";
+    case 0x02cd: return "iswspace";
+    case 0x02ce: return "iswupper";
+    case 0x02cf: return "iswxdigit";
+    case 0x02d0: return "isxdigit";
+    case 0x02d1: return "labs";
+    case 0x02d2: return "ldexp";
+    case 0x02d3: return "ldiv";
+    case 0x02d4: return "localeconv";
+    case 0x02d5: return "localtime";
+    case 0x02d6: return "log";
+    case 0x02d7: return "log10";
+    case 0x02d8: return "longjmp";
+    case 0x02d9: return "malloc";
+    case 0x02da: return "mblen";
+    case 0x02db: return "mbstowcs";
+    case 0x02dc: return "mbtowc";
+    case 0x02dd: return "memchr";
+    case 0x02de: return "memcmp";
+    case 0x02df: return "memcpy";
+    case 0x02e0: return "memmove";
+    case 0x02e1: return "memset";
+    case 0x02e2: return "mktime";
+    case 0x02e3: return "modf";
+    case 0x02e4: return "perror";
+    case 0x02e5: return "pow";
+    case 0x02e6: return "printf";
+    case 0x02e7: return "putc";
+    case 0x02e8: return "putchar";
+    case 0x02e9: return "puts";
+    case 0x02ea: return "putwc";
+    case 0x02eb: return "putwchar";
+    case 0x02ec: return "qsort";
+    case 0x02ed: return "raise";
+    case 0x02ee: return "rand";
+    case 0x02ef: return "realloc";
+    case 0x02f0: return "remove";
+    case 0x02f1: return "rename";
+    case 0x02f2: return "rewind";
+    case 0x02f3: return "scanf";
+    case 0x02f4: return "setbuf";
+    case 0x02f5: return "setlocale";
+    case 0x02f6: return "setvbuf";
+    case 0x02f7: return "signal";
+    case 0x02f8: return "sin";
+    case 0x02f9: return "sinh";
+    case 0x02fa: return "sprintf";
+    case 0x02fb: return "sqrt";
+    case 0x02fc: return "srand";
+    case 0x02fd: return "sscanf";
+    case 0x02fe: return "strcat";
+    case 0x02ff: return "strchr";
+    case 0x0300: return "strcmp";
+    case 0x0301: return "strcoll";
+    case 0x0302: return "strcpy";
+    case 0x0303: return "strcspn";
+    case 0x0304: return "strerror";
+    case 0x0305: return "strftime";
+    case 0x0306: return "strlen";
+    case 0x0307: return "strncat";
+    case 0x0308: return "strncmp";
+    case 0x0309: return "strncpy";
+    case 0x030a: return "strpbrk";
+    case 0x030b: return "strrchr";
+    case 0x030c: return "strspn";
+    case 0x030d: return "strstr";
+    case 0x030e: return "strtod";
+    case 0x030f: return "strtok";
+    case 0x0310: return "strtol";
+    case 0x0311: return "strtoul";
+    case 0x0312: return "strxfrm";
+    case 0x0313: return "swprintf";
+    case 0x0314: return "swscanf";
+    case 0x0315: return "system";
+    case 0x0316: return "tan";
+    case 0x0317: return "tanh";
+    case 0x0318: return "time";
+    case 0x0319: return "tmpfile";
+    case 0x031a: return "tmpnam";
+    case 0x031b: return "tolower";
+    case 0x031c: return "toupper";
+    case 0x031d: return "towlower";
+    case 0x031e: return "towupper";
+    case 0x031f: return "ungetc";
+    case 0x0320: return "ungetwc";
+    case 0x0321: return "vfprintf";
+    case 0x0322: return "vfwprintf";
+    case 0x0323: return "vprintf";
+    case 0x0324: return "vsprintf";
+    case 0x0325: return "vswprintf";
+    case 0x0326: return "vwprintf";
+    case 0x0327: return "wcscat";
+    case 0x0328: return "wcschr";
+    case 0x0329: return "wcscmp";
+    case 0x032a: return "wcscoll";
+    case 0x032b: return "wcscpy";
+    case 0x032c: return "wcscspn";
+    case 0x032d: return "wcsftime";
+    case 0x032e: return "wcslen";
+    case 0x032f: return "wcsncat";
+    case 0x0330: return "wcsncmp";
+    case 0x0331: return "wcsncpy";
+    case 0x0332: return "wcspbrk";
+    case 0x0333: return "wcsrchr";
+    case 0x0334: return "wcsspn";
+    case 0x0335: return "wcsstr";
+    case 0x0336: return "wcstod";
+    case 0x0337: return "wcstok";
+    case 0x0338: return "wcstol";
+    case 0x0339: return "wcstombs";
+    case 0x033a: return "wcstoul";
+    case 0x033b: return "wcsxfrm";
+    case 0x033c: return "wctomb";
+    case 0x033d: return "wprintf";
+    case 0x033e: return "wscanf";
   }
   return nullptr;
 }


-}
 }

-#endif

+#endif
diff --git a/deps/LIEF/src/PE/utils/ordinals_lookup_tables/ntdll_dll_lookup.hpp b/deps/LIEF/src/PE/utils/ordinals_lookup_tables/ntdll_dll_lookup.hpp
index 1c62dbdb628..fe371d4a6e5 100644
--- a/deps/LIEF/src/PE/utils/ordinals_lookup_tables/ntdll_dll_lookup.hpp
+++ b/deps/LIEF/src/PE/utils/ordinals_lookup_tables/ntdll_dll_lookup.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -17,1333 +17,1332 @@
 #define LIEF_PE_NTDLL_DLL_LOOKUP_H
 #include <cstdint>

-namespace LIEF {
-namespace PE {
+
+namespace LIEF::PE {

 inline const char* ntdll_dll_lookup(uint32_t i) {
-  switch(i) {
-  case 0x0008: return "CsrAllocateCaptureBuffer";
-  case 0x0009: return "CsrAllocateMessagePointer";
-  case 0x000a: return "CsrCaptureMessageBuffer";
-  case 0x000b: return "CsrCaptureMessageMultiUnicodeStringsInPlace";
-  case 0x000c: return "CsrCaptureMessageString";
-  case 0x000d: return "CsrCaptureTimeout";
-  case 0x000e: return "CsrClientCallServer";
-  case 0x000f: return "CsrClientConnectToServer";
-  case 0x0010: return "CsrFreeCaptureBuffer";
-  case 0x0011: return "CsrGetProcessId";
-  case 0x0012: return "CsrIdentifyAlertableThread";
-  case 0x0013: return "CsrNewThread";
-  case 0x0014: return "CsrProbeForRead";
-  case 0x0015: return "CsrProbeForWrite";
-  case 0x0016: return "CsrSetPriorityClass";
-  case 0x0017: return "DbgBreakPoint";
-  case 0x0018: return "DbgPrint";
-  case 0x0019: return "DbgPrintEx";
-  case 0x001a: return "DbgPrintReturnControlC";
-  case 0x001b: return "DbgPrompt";
-  case 0x001c: return "DbgQueryDebugFilterState";
-  case 0x001d: return "DbgSetDebugFilterState";
-  case 0x001e: return "DbgUiConnectToDbg";
-  case 0x001f: return "DbgUiContinue";
-  case 0x0020: return "DbgUiConvertStateChangeStructure";
-  case 0x0021: return "DbgUiDebugActiveProcess";
-  case 0x0022: return "DbgUiGetThreadDebugObject";
-  case 0x0023: return "DbgUiIssueRemoteBreakin";
-  case 0x0024: return "DbgUiRemoteBreakin";
-  case 0x0025: return "DbgUiSetThreadDebugObject";
-  case 0x0026: return "DbgUiStopDebugging";
-  case 0x0027: return "DbgUiWaitStateChange";
-  case 0x0028: return "DbgUserBreakPoint";
-  case 0x0029: return "KiFastSystemCall";
-  case 0x002a: return "KiFastSystemCallRet";
-  case 0x002b: return "KiIntSystemCall";
-  case 0x002c: return "KiRaiseUserExceptionDispatcher";
-  case 0x002d: return "KiUserApcDispatcher";
-  case 0x002e: return "KiUserCallbackDispatcher";
-  case 0x002f: return "KiUserExceptionDispatcher";
-  case 0x0030: return "LdrAccessOutOfProcessResource";
-  case 0x0031: return "LdrAccessResource";
-  case 0x0032: return "LdrAddRefDll";
-  case 0x0033: return "LdrAlternateResourcesEnabled";
-  case 0x0034: return "LdrCreateOutOfProcessImage";
-  case 0x0035: return "LdrDestroyOutOfProcessImage";
-  case 0x0036: return "LdrDisableThreadCalloutsForDll";
-  case 0x0037: return "LdrEnumResources";
-  case 0x0038: return "LdrEnumerateLoadedModules";
-  case 0x0039: return "LdrFindCreateProcessManifest";
-  case 0x003a: return "LdrFindEntryForAddress";
-  case 0x003b: return "LdrFindResourceDirectory_U";
-  case 0x003c: return "LdrFindResourceEx_U";
-  case 0x003d: return "LdrFindResource_U";
-  case 0x003e: return "LdrFlushAlternateResourceModules";
-  case 0x003f: return "LdrGetDllHandle";
-  case 0x0040: return "LdrGetDllHandleEx";
-  case 0x0041: return "LdrGetProcedureAddress";
-  case 0x0042: return "LdrHotPatchRoutine";
-  case 0x0043: return "LdrInitShimEngineDynamic";
-  case 0x0044: return "LdrInitializeThunk";
-  case 0x0045: return "LdrLoadAlternateResourceModule";
-  case 0x0046: return "LdrLoadDll";
-  case 0x0047: return "LdrLockLoaderLock";
-  case 0x0048: return "LdrProcessRelocationBlock";
-  case 0x0049: return "LdrQueryImageFileExecutionOptions";
-  case 0x004a: return "LdrQueryProcessModuleInformation";
-  case 0x004b: return "LdrSetAppCompatDllRedirectionCallback";
-  case 0x004c: return "LdrSetDllManifestProber";
-  case 0x004d: return "LdrShutdownProcess";
-  case 0x004e: return "LdrShutdownThread";
-  case 0x004f: return "LdrUnloadAlternateResourceModule";
-  case 0x0050: return "LdrUnloadDll";
-  case 0x0051: return "LdrUnlockLoaderLock";
-  case 0x0052: return "LdrVerifyImageMatchesChecksum";
-  case 0x0053: return "NlsAnsiCodePage";
-  case 0x0054: return "NlsMbCodePageTag";
-  case 0x0055: return "NlsMbOemCodePageTag";
-  case 0x0056: return "NtAcceptConnectPort";
-  case 0x0057: return "NtAccessCheck";
-  case 0x0058: return "NtAccessCheckAndAuditAlarm";
-  case 0x0059: return "NtAccessCheckByType";
-  case 0x005a: return "NtAccessCheckByTypeAndAuditAlarm";
-  case 0x005b: return "NtAccessCheckByTypeResultList";
-  case 0x005c: return "NtAccessCheckByTypeResultListAndAuditAlarm";
-  case 0x005d: return "NtAccessCheckByTypeResultListAndAuditAlarmByHandle";
-  case 0x005e: return "NtAddAtom";
-  case 0x005f: return "NtAddBootEntry";
-  case 0x0060: return "NtAdjustGroupsToken";
-  case 0x0061: return "NtAdjustPrivilegesToken";
-  case 0x0062: return "NtAlertResumeThread";
-  case 0x0063: return "NtAlertThread";
-  case 0x0064: return "NtAllocateLocallyUniqueId";
-  case 0x0065: return "NtAllocateUserPhysicalPages";
-  case 0x0066: return "NtAllocateUuids";
-  case 0x0067: return "NtAllocateVirtualMemory";
-  case 0x0068: return "NtAreMappedFilesTheSame";
-  case 0x0069: return "NtAssignProcessToJobObject";
-  case 0x006a: return "NtCallbackReturn";
-  case 0x006b: return "NtCancelDeviceWakeupRequest";
-  case 0x006c: return "NtCancelIoFile";
-  case 0x006d: return "NtCancelTimer";
-  case 0x006e: return "NtClearEvent";
-  case 0x006f: return "NtClose";
-  case 0x0070: return "NtCloseObjectAuditAlarm";
-  case 0x0071: return "NtCompactKeys";
-  case 0x0072: return "NtCompareTokens";
-  case 0x0073: return "NtCompleteConnectPort";
-  case 0x0074: return "NtCompressKey";
-  case 0x0075: return "NtConnectPort";
-  case 0x0076: return "NtContinue";
-  case 0x0077: return "NtCreateDebugObject";
-  case 0x0078: return "NtCreateDirectoryObject";
-  case 0x0079: return "NtCreateEvent";
-  case 0x007a: return "NtCreateEventPair";
-  case 0x007b: return "NtCreateFile";
-  case 0x007c: return "NtCreateIoCompletion";
-  case 0x007d: return "NtCreateJobObject";
-  case 0x007e: return "NtCreateJobSet";
-  case 0x007f: return "NtCreateKey";
-  case 0x0080: return "NtCreateKeyedEvent";
-  case 0x0081: return "NtCreateMailslotFile";
-  case 0x0082: return "NtCreateMutant";
-  case 0x0083: return "NtCreateNamedPipeFile";
-  case 0x0084: return "NtCreatePagingFile";
-  case 0x0085: return "NtCreatePort";
-  case 0x0086: return "NtCreateProcess";
-  case 0x0087: return "NtCreateProcessEx";
-  case 0x0088: return "NtCreateProfile";
-  case 0x0089: return "NtCreateSection";
-  case 0x008a: return "NtCreateSemaphore";
-  case 0x008b: return "NtCreateSymbolicLinkObject";
-  case 0x008c: return "NtCreateThread";
-  case 0x008d: return "NtCreateTimer";
-  case 0x008e: return "NtCreateToken";
-  case 0x008f: return "NtCreateWaitablePort";
-  case 0x0090: return "NtCurrentTeb";
-  case 0x0091: return "NtDebugActiveProcess";
-  case 0x0092: return "NtDebugContinue";
-  case 0x0093: return "NtDelayExecution";
-  case 0x0094: return "NtDeleteAtom";
-  case 0x0095: return "NtDeleteBootEntry";
-  case 0x0096: return "NtDeleteFile";
-  case 0x0097: return "NtDeleteKey";
-  case 0x0098: return "NtDeleteObjectAuditAlarm";
-  case 0x0099: return "NtDeleteValueKey";
-  case 0x009a: return "NtDeviceIoControlFile";
-  case 0x009b: return "NtDisplayString";
-  case 0x009c: return "NtDuplicateObject";
-  case 0x009d: return "NtDuplicateToken";
-  case 0x009e: return "NtEnumerateBootEntries";
-  case 0x009f: return "NtEnumerateKey";
-  case 0x00a0: return "NtEnumerateSystemEnvironmentValuesEx";
-  case 0x00a1: return "NtEnumerateValueKey";
-  case 0x00a2: return "NtExtendSection";
-  case 0x00a3: return "NtFilterToken";
-  case 0x00a4: return "NtFindAtom";
-  case 0x00a5: return "NtFlushBuffersFile";
-  case 0x00a6: return "NtFlushInstructionCache";
-  case 0x00a7: return "NtFlushKey";
-  case 0x00a8: return "NtFlushVirtualMemory";
-  case 0x00a9: return "NtFlushWriteBuffer";
-  case 0x00aa: return "NtFreeUserPhysicalPages";
-  case 0x00ab: return "NtFreeVirtualMemory";
-  case 0x00ac: return "NtFsControlFile";
-  case 0x00ad: return "NtGetContextThread";
-  case 0x00ae: return "NtGetDevicePowerState";
-  case 0x00af: return "NtGetPlugPlayEvent";
-  case 0x00b0: return "NtGetWriteWatch";
-  case 0x00b1: return "NtImpersonateAnonymousToken";
-  case 0x00b2: return "NtImpersonateClientOfPort";
-  case 0x00b3: return "NtImpersonateThread";
-  case 0x00b4: return "NtInitializeRegistry";
-  case 0x00b5: return "NtInitiatePowerAction";
-  case 0x00b6: return "NtIsProcessInJob";
-  case 0x00b7: return "NtIsSystemResumeAutomatic";
-  case 0x00b8: return "NtListenPort";
-  case 0x00b9: return "NtLoadDriver";
-  case 0x00bb: return "NtLoadKey";
-  case 0x00ba: return "NtLoadKey2";
-  case 0x00bc: return "NtLockFile";
-  case 0x00bd: return "NtLockProductActivationKeys";
-  case 0x00be: return "NtLockRegistryKey";
-  case 0x00bf: return "NtLockVirtualMemory";
-  case 0x00c0: return "NtMakePermanentObject";
-  case 0x00c1: return "NtMakeTemporaryObject";
-  case 0x00c2: return "NtMapUserPhysicalPages";
-  case 0x00c3: return "NtMapUserPhysicalPagesScatter";
-  case 0x00c4: return "NtMapViewOfSection";
-  case 0x00c5: return "NtModifyBootEntry";
-  case 0x00c6: return "NtNotifyChangeDirectoryFile";
-  case 0x00c7: return "NtNotifyChangeKey";
-  case 0x00c8: return "NtNotifyChangeMultipleKeys";
-  case 0x00c9: return "NtOpenDirectoryObject";
-  case 0x00ca: return "NtOpenEvent";
-  case 0x00cb: return "NtOpenEventPair";
-  case 0x00cc: return "NtOpenFile";
-  case 0x00cd: return "NtOpenIoCompletion";
-  case 0x00ce: return "NtOpenJobObject";
-  case 0x00cf: return "NtOpenKey";
-  case 0x00d0: return "NtOpenKeyedEvent";
-  case 0x00d1: return "NtOpenMutant";
-  case 0x00d2: return "NtOpenObjectAuditAlarm";
-  case 0x00d3: return "NtOpenProcess";
-  case 0x00d4: return "NtOpenProcessToken";
-  case 0x00d5: return "NtOpenProcessTokenEx";
-  case 0x00d6: return "NtOpenSection";
-  case 0x00d7: return "NtOpenSemaphore";
-  case 0x00d8: return "NtOpenSymbolicLinkObject";
-  case 0x00d9: return "NtOpenThread";
-  case 0x00da: return "NtOpenThreadToken";
-  case 0x00db: return "NtOpenThreadTokenEx";
-  case 0x00dc: return "NtOpenTimer";
-  case 0x00dd: return "NtPlugPlayControl";
-  case 0x00de: return "NtPowerInformation";
-  case 0x00df: return "NtPrivilegeCheck";
-  case 0x00e0: return "NtPrivilegeObjectAuditAlarm";
-  case 0x00e1: return "NtPrivilegedServiceAuditAlarm";
-  case 0x00e2: return "NtProtectVirtualMemory";
-  case 0x00e3: return "NtPulseEvent";
-  case 0x00e4: return "NtQueryAttributesFile";
-  case 0x00e5: return "NtQueryBootEntryOrder";
-  case 0x00e6: return "NtQueryBootOptions";
-  case 0x00e7: return "NtQueryDebugFilterState";
-  case 0x00e8: return "NtQueryDefaultLocale";
-  case 0x00e9: return "NtQueryDefaultUILanguage";
-  case 0x00ea: return "NtQueryDirectoryFile";
-  case 0x00eb: return "NtQueryDirectoryObject";
-  case 0x00ec: return "NtQueryEaFile";
-  case 0x00ed: return "NtQueryEvent";
-  case 0x00ee: return "NtQueryFullAttributesFile";
-  case 0x00ef: return "NtQueryInformationAtom";
-  case 0x00f0: return "NtQueryInformationFile";
-  case 0x00f1: return "NtQueryInformationJobObject";
-  case 0x00f2: return "NtQueryInformationPort";
-  case 0x00f3: return "NtQueryInformationProcess";
-  case 0x00f4: return "NtQueryInformationThread";
-  case 0x00f5: return "NtQueryInformationToken";
-  case 0x00f6: return "NtQueryInstallUILanguage";
-  case 0x00f7: return "NtQueryIntervalProfile";
-  case 0x00f8: return "NtQueryIoCompletion";
-  case 0x00f9: return "NtQueryKey";
-  case 0x00fa: return "NtQueryMultipleValueKey";
-  case 0x00fb: return "NtQueryMutant";
-  case 0x00fc: return "NtQueryObject";
-  case 0x00fd: return "NtQueryOpenSubKeys";
-  case 0x00fe: return "NtQueryPerformanceCounter";
-  case 0x00ff: return "NtQueryPortInformationProcess";
-  case 0x0100: return "NtQueryQuotaInformationFile";
-  case 0x0101: return "NtQuerySection";
-  case 0x0102: return "NtQuerySecurityObject";
-  case 0x0103: return "NtQuerySemaphore";
-  case 0x0104: return "NtQuerySymbolicLinkObject";
-  case 0x0105: return "NtQuerySystemEnvironmentValue";
-  case 0x0106: return "NtQuerySystemEnvironmentValueEx";
-  case 0x0107: return "NtQuerySystemInformation";
-  case 0x0108: return "NtQuerySystemTime";
-  case 0x0109: return "NtQueryTimer";
-  case 0x010a: return "NtQueryTimerResolution";
-  case 0x010b: return "NtQueryValueKey";
-  case 0x010c: return "NtQueryVirtualMemory";
-  case 0x010d: return "NtQueryVolumeInformationFile";
-  case 0x010e: return "NtQueueApcThread";
-  case 0x010f: return "NtRaiseException";
-  case 0x0110: return "NtRaiseHardError";
-  case 0x0111: return "NtReadFile";
-  case 0x0112: return "NtReadFileScatter";
-  case 0x0113: return "NtReadRequestData";
-  case 0x0114: return "NtReadVirtualMemory";
-  case 0x0115: return "NtRegisterThreadTerminatePort";
-  case 0x0116: return "NtReleaseKeyedEvent";
-  case 0x0117: return "NtReleaseMutant";
-  case 0x0118: return "NtReleaseSemaphore";
-  case 0x0119: return "NtRemoveIoCompletion";
-  case 0x011a: return "NtRemoveProcessDebug";
-  case 0x011b: return "NtRenameKey";
-  case 0x011c: return "NtReplaceKey";
-  case 0x011d: return "NtReplyPort";
-  case 0x011e: return "NtReplyWaitReceivePort";
-  case 0x011f: return "NtReplyWaitReceivePortEx";
-  case 0x0120: return "NtReplyWaitReplyPort";
-  case 0x0121: return "NtRequestDeviceWakeup";
-  case 0x0122: return "NtRequestPort";
-  case 0x0123: return "NtRequestWaitReplyPort";
-  case 0x0124: return "NtRequestWakeupLatency";
-  case 0x0125: return "NtResetEvent";
-  case 0x0126: return "NtResetWriteWatch";
-  case 0x0127: return "NtRestoreKey";
-  case 0x0128: return "NtResumeProcess";
-  case 0x0129: return "NtResumeThread";
-  case 0x012a: return "NtSaveKey";
-  case 0x012b: return "NtSaveKeyEx";
-  case 0x012c: return "NtSaveMergedKeys";
-  case 0x012d: return "NtSecureConnectPort";
-  case 0x012e: return "NtSetBootEntryOrder";
-  case 0x012f: return "NtSetBootOptions";
-  case 0x0130: return "NtSetContextThread";
-  case 0x0131: return "NtSetDebugFilterState";
-  case 0x0132: return "NtSetDefaultHardErrorPort";
-  case 0x0133: return "NtSetDefaultLocale";
-  case 0x0134: return "NtSetDefaultUILanguage";
-  case 0x0135: return "NtSetEaFile";
-  case 0x0136: return "NtSetEvent";
-  case 0x0137: return "NtSetEventBoostPriority";
-  case 0x0138: return "NtSetHighEventPair";
-  case 0x0139: return "NtSetHighWaitLowEventPair";
-  case 0x013a: return "NtSetInformationDebugObject";
-  case 0x013b: return "NtSetInformationFile";
-  case 0x013c: return "NtSetInformationJobObject";
-  case 0x013d: return "NtSetInformationKey";
-  case 0x013e: return "NtSetInformationObject";
-  case 0x013f: return "NtSetInformationProcess";
-  case 0x0140: return "NtSetInformationThread";
-  case 0x0141: return "NtSetInformationToken";
-  case 0x0142: return "NtSetIntervalProfile";
-  case 0x0143: return "NtSetIoCompletion";
-  case 0x0144: return "NtSetLdtEntries";
-  case 0x0145: return "NtSetLowEventPair";
-  case 0x0146: return "NtSetLowWaitHighEventPair";
-  case 0x0147: return "NtSetQuotaInformationFile";
-  case 0x0148: return "NtSetSecurityObject";
-  case 0x0149: return "NtSetSystemEnvironmentValue";
-  case 0x014a: return "NtSetSystemEnvironmentValueEx";
-  case 0x014b: return "NtSetSystemInformation";
-  case 0x014c: return "NtSetSystemPowerState";
-  case 0x014d: return "NtSetSystemTime";
-  case 0x014e: return "NtSetThreadExecutionState";
-  case 0x014f: return "NtSetTimer";
-  case 0x0150: return "NtSetTimerResolution";
-  case 0x0151: return "NtSetUuidSeed";
-  case 0x0152: return "NtSetValueKey";
-  case 0x0153: return "NtSetVolumeInformationFile";
-  case 0x0154: return "NtShutdownSystem";
-  case 0x0155: return "NtSignalAndWaitForSingleObject";
-  case 0x0156: return "NtStartProfile";
-  case 0x0157: return "NtStopProfile";
-  case 0x0158: return "NtSuspendProcess";
-  case 0x0159: return "NtSuspendThread";
-  case 0x015a: return "NtSystemDebugControl";
-  case 0x015b: return "NtTerminateJobObject";
-  case 0x015c: return "NtTerminateProcess";
-  case 0x015d: return "NtTerminateThread";
-  case 0x015e: return "NtTestAlert";
-  case 0x015f: return "NtTraceEvent";
-  case 0x0160: return "NtTranslateFilePath";
-  case 0x0161: return "NtUnloadDriver";
-  case 0x0162: return "NtUnloadKey";
-  case 0x0163: return "NtUnloadKeyEx";
-  case 0x0164: return "NtUnlockFile";
-  case 0x0165: return "NtUnlockVirtualMemory";
-  case 0x0166: return "NtUnmapViewOfSection";
-  case 0x0167: return "NtVdmControl";
-  case 0x0168: return "NtWaitForDebugEvent";
-  case 0x0169: return "NtWaitForKeyedEvent";
-  case 0x016a: return "NtWaitForMultipleObjects";
-  case 0x016b: return "NtWaitForSingleObject";
-  case 0x016c: return "NtWaitHighEventPair";
-  case 0x016d: return "NtWaitLowEventPair";
-  case 0x016e: return "NtWriteFile";
-  case 0x016f: return "NtWriteFileGather";
-  case 0x0170: return "NtWriteRequestData";
-  case 0x0171: return "NtWriteVirtualMemory";
-  case 0x0172: return "NtYieldExecution";
-  case 0x0173: return "PfxFindPrefix";
-  case 0x0174: return "PfxInitialize";
-  case 0x0175: return "PfxInsertPrefix";
-  case 0x0176: return "PfxRemovePrefix";
-  case 0x0001: return "PropertyLengthAsVariant";
-  case 0x0177: return "RtlAbortRXact";
-  case 0x0178: return "RtlAbsoluteToSelfRelativeSD";
-  case 0x0179: return "RtlAcquirePebLock";
-  case 0x017a: return "RtlAcquireResourceExclusive";
-  case 0x017b: return "RtlAcquireResourceShared";
-  case 0x017c: return "RtlActivateActivationContext";
-  case 0x017d: return "RtlActivateActivationContextEx";
-  case 0x017e: return "RtlActivateActivationContextUnsafeFast";
-  case 0x017f: return "RtlAddAccessAllowedAce";
-  case 0x0180: return "RtlAddAccessAllowedAceEx";
-  case 0x0181: return "RtlAddAccessAllowedObjectAce";
-  case 0x0182: return "RtlAddAccessDeniedAce";
-  case 0x0183: return "RtlAddAccessDeniedAceEx";
-  case 0x0184: return "RtlAddAccessDeniedObjectAce";
-  case 0x0185: return "RtlAddAce";
-  case 0x0186: return "RtlAddActionToRXact";
-  case 0x0187: return "RtlAddAtomToAtomTable";
-  case 0x0188: return "RtlAddAttributeActionToRXact";
-  case 0x0189: return "RtlAddAuditAccessAce";
-  case 0x018a: return "RtlAddAuditAccessAceEx";
-  case 0x018b: return "RtlAddAuditAccessObjectAce";
-  case 0x018c: return "RtlAddCompoundAce";
-  case 0x018d: return "RtlAddRange";
-  case 0x018e: return "RtlAddRefActivationContext";
-  case 0x018f: return "RtlAddRefMemoryStream";
-  case 0x0190: return "RtlAddVectoredExceptionHandler";
-  case 0x0191: return "RtlAddressInSectionTable";
-  case 0x0192: return "RtlAdjustPrivilege";
-  case 0x0193: return "RtlAllocateAndInitializeSid";
-  case 0x0194: return "RtlAllocateHandle";
-  case 0x0195: return "RtlAllocateHeap";
-  case 0x0196: return "RtlAnsiCharToUnicodeChar";
-  case 0x0197: return "RtlAnsiStringToUnicodeSize";
-  case 0x0198: return "RtlAnsiStringToUnicodeString";
-  case 0x0199: return "RtlAppendAsciizToString";
-  case 0x019a: return "RtlAppendPathElement";
-  case 0x019b: return "RtlAppendStringToString";
-  case 0x019c: return "RtlAppendUnicodeStringToString";
-  case 0x019d: return "RtlAppendUnicodeToString";
-  case 0x019e: return "RtlApplicationVerifierStop";
-  case 0x019f: return "RtlApplyRXact";
-  case 0x01a0: return "RtlApplyRXactNoFlush";
-  case 0x01a1: return "RtlAreAllAccessesGranted";
-  case 0x01a2: return "RtlAreAnyAccessesGranted";
-  case 0x01a3: return "RtlAreBitsClear";
-  case 0x01a4: return "RtlAreBitsSet";
-  case 0x01a6: return "RtlAssert";
-  case 0x01a5: return "RtlAssert2";
-  case 0x01a7: return "RtlCancelTimer";
-  case 0x01a8: return "RtlCaptureContext";
-  case 0x01a9: return "RtlCaptureStackBackTrace";
-  case 0x01aa: return "RtlCaptureStackContext";
-  case 0x01ab: return "RtlCharToInteger";
-  case 0x01ac: return "RtlCheckForOrphanedCriticalSections";
-  case 0x01ad: return "RtlCheckProcessParameters";
-  case 0x01ae: return "RtlCheckRegistryKey";
-  case 0x01af: return "RtlClearAllBits";
-  case 0x01b0: return "RtlClearBits";
-  case 0x01b1: return "RtlCloneMemoryStream";
-  case 0x01b2: return "RtlCommitMemoryStream";
-  case 0x01b3: return "RtlCompactHeap";
-  case 0x01b4: return "RtlCompareMemory";
-  case 0x01b5: return "RtlCompareMemoryUlong";
-  case 0x01b6: return "RtlCompareString";
-  case 0x01b7: return "RtlCompareUnicodeString";
-  case 0x01b8: return "RtlCompressBuffer";
-  case 0x01b9: return "RtlComputeCrc32";
-  case 0x01ba: return "RtlComputeImportTableHash";
-  case 0x01bb: return "RtlComputePrivatizedDllName_U";
-  case 0x01bc: return "RtlConsoleMultiByteToUnicodeN";
-  case 0x01bd: return "RtlConvertExclusiveToShared";
-  case 0x01be: return "RtlConvertLongToLargeInteger";
-  case 0x0002: return "RtlConvertPropertyToVariant";
-  case 0x01bf: return "RtlConvertSharedToExclusive";
-  case 0x01c0: return "RtlConvertSidToUnicodeString";
-  case 0x01c1: return "RtlConvertToAutoInheritSecurityObject";
-  case 0x01c2: return "RtlConvertUiListToApiList";
-  case 0x01c3: return "RtlConvertUlongToLargeInteger";
-  case 0x0003: return "RtlConvertVariantToProperty";
-  case 0x01c4: return "RtlCopyLuid";
-  case 0x01c5: return "RtlCopyLuidAndAttributesArray";
-  case 0x01c6: return "RtlCopyMemoryStreamTo";
-  case 0x01c7: return "RtlCopyOutOfProcessMemoryStreamTo";
-  case 0x01c8: return "RtlCopyRangeList";
-  case 0x01c9: return "RtlCopySecurityDescriptor";
-  case 0x01ca: return "RtlCopySid";
-  case 0x01cb: return "RtlCopySidAndAttributesArray";
-  case 0x01cc: return "RtlCopyString";
-  case 0x01cd: return "RtlCopyUnicodeString";
-  case 0x01ce: return "RtlCreateAcl";
-  case 0x01cf: return "RtlCreateActivationContext";
-  case 0x01d0: return "RtlCreateAndSetSD";
-  case 0x01d1: return "RtlCreateAtomTable";
-  case 0x01d2: return "RtlCreateBootStatusDataFile";
-  case 0x01d3: return "RtlCreateEnvironment";
-  case 0x01d4: return "RtlCreateHeap";
-  case 0x01d5: return "RtlCreateProcessParameters";
-  case 0x01d6: return "RtlCreateQueryDebugBuffer";
-  case 0x01d7: return "RtlCreateRegistryKey";
-  case 0x01d8: return "RtlCreateSecurityDescriptor";
-  case 0x01d9: return "RtlCreateSystemVolumeInformationFolder";
-  case 0x01da: return "RtlCreateTagHeap";
-  case 0x01db: return "RtlCreateTimer";
-  case 0x01dc: return "RtlCreateTimerQueue";
-  case 0x01dd: return "RtlCreateUnicodeString";
-  case 0x01de: return "RtlCreateUnicodeStringFromAsciiz";
-  case 0x01df: return "RtlCreateUserProcess";
-  case 0x01e0: return "RtlCreateUserSecurityObject";
-  case 0x01e1: return "RtlCreateUserThread";
-  case 0x01e2: return "RtlCustomCPToUnicodeN";
-  case 0x01e3: return "RtlCutoverTimeToSystemTime";
-  case 0x01e4: return "RtlDeNormalizeProcessParams";
-  case 0x01e5: return "RtlDeactivateActivationContext";
-  case 0x01e6: return "RtlDeactivateActivationContextUnsafeFast";
-  case 0x01e7: return "RtlDebugPrintTimes";
-  case 0x01e8: return "RtlDecodePointer";
-  case 0x01e9: return "RtlDecodeSystemPointer";
-  case 0x01ea: return "RtlDecompressBuffer";
-  case 0x01eb: return "RtlDecompressFragment";
-  case 0x01ec: return "RtlDefaultNpAcl";
-  case 0x01ed: return "RtlDelete";
-  case 0x01ee: return "RtlDeleteAce";
-  case 0x01ef: return "RtlDeleteAtomFromAtomTable";
-  case 0x01f0: return "RtlDeleteCriticalSection";
-  case 0x01f1: return "RtlDeleteElementGenericTable";
-  case 0x01f2: return "RtlDeleteElementGenericTableAvl";
-  case 0x01f3: return "RtlDeleteNoSplay";
-  case 0x01f4: return "RtlDeleteOwnersRanges";
-  case 0x01f5: return "RtlDeleteRange";
-  case 0x01f6: return "RtlDeleteRegistryValue";
-  case 0x01f7: return "RtlDeleteResource";
-  case 0x01f8: return "RtlDeleteSecurityObject";
-  case 0x01f9: return "RtlDeleteTimer";
-  case 0x01fa: return "RtlDeleteTimerQueue";
-  case 0x01fb: return "RtlDeleteTimerQueueEx";
-  case 0x01fc: return "RtlDeregisterWait";
-  case 0x01fd: return "RtlDeregisterWaitEx";
-  case 0x01fe: return "RtlDestroyAtomTable";
-  case 0x01ff: return "RtlDestroyEnvironment";
-  case 0x0200: return "RtlDestroyHandleTable";
-  case 0x0201: return "RtlDestroyHeap";
-  case 0x0202: return "RtlDestroyProcessParameters";
-  case 0x0203: return "RtlDestroyQueryDebugBuffer";
-  case 0x0204: return "RtlDetermineDosPathNameType_U";
-  case 0x0205: return "RtlDllShutdownInProgress";
-  case 0x0206: return "RtlDnsHostNameToComputerName";
-  case 0x0207: return "RtlDoesFileExists_U";
-  case 0x0208: return "RtlDosApplyFileIsolationRedirection_Ustr";
-  case 0x0209: return "RtlDosPathNameToNtPathName_U";
-  case 0x020a: return "RtlDosSearchPath_U";
-  case 0x020b: return "RtlDosSearchPath_Ustr";
-  case 0x020c: return "RtlDowncaseUnicodeChar";
-  case 0x020d: return "RtlDowncaseUnicodeString";
-  case 0x020e: return "RtlDumpResource";
-  case 0x020f: return "RtlDuplicateUnicodeString";
-  case 0x0210: return "RtlEmptyAtomTable";
-  case 0x0211: return "RtlEnableEarlyCriticalSectionEventCreation";
-  case 0x0212: return "RtlEncodePointer";
-  case 0x0213: return "RtlEncodeSystemPointer";
-  case 0x0214: return "RtlEnlargedIntegerMultiply";
-  case 0x0215: return "RtlEnlargedUnsignedDivide";
-  case 0x0216: return "RtlEnlargedUnsignedMultiply";
-  case 0x0217: return "RtlEnterCriticalSection";
-  case 0x0218: return "RtlEnumProcessHeaps";
-  case 0x0219: return "RtlEnumerateGenericTable";
-  case 0x021a: return "RtlEnumerateGenericTableAvl";
-  case 0x021b: return "RtlEnumerateGenericTableLikeADirectory";
-  case 0x021c: return "RtlEnumerateGenericTableWithoutSplaying";
-  case 0x021d: return "RtlEnumerateGenericTableWithoutSplayingAvl";
-  case 0x021e: return "RtlEqualComputerName";
-  case 0x021f: return "RtlEqualDomainName";
-  case 0x0220: return "RtlEqualLuid";
-  case 0x0221: return "RtlEqualPrefixSid";
-  case 0x0222: return "RtlEqualSid";
-  case 0x0223: return "RtlEqualString";
-  case 0x0224: return "RtlEqualUnicodeString";
-  case 0x0225: return "RtlEraseUnicodeString";
-  case 0x0226: return "RtlExitUserThread";
-  case 0x0227: return "RtlExpandEnvironmentStrings_U";
-  case 0x0228: return "RtlExtendHeap";
-  case 0x0229: return "RtlExtendedIntegerMultiply";
-  case 0x022a: return "RtlExtendedLargeIntegerDivide";
-  case 0x022b: return "RtlExtendedMagicDivide";
-  case 0x022c: return "RtlFillMemory";
-  case 0x022d: return "RtlFillMemoryUlong";
-  case 0x022e: return "RtlFinalReleaseOutOfProcessMemoryStream";
-  case 0x022f: return "RtlFindActivationContextSectionGuid";
-  case 0x0230: return "RtlFindActivationContextSectionString";
-  case 0x0231: return "RtlFindCharInUnicodeString";
-  case 0x0232: return "RtlFindClearBits";
-  case 0x0233: return "RtlFindClearBitsAndSet";
-  case 0x0234: return "RtlFindClearRuns";
-  case 0x0235: return "RtlFindLastBackwardRunClear";
-  case 0x0236: return "RtlFindLeastSignificantBit";
-  case 0x0237: return "RtlFindLongestRunClear";
-  case 0x0238: return "RtlFindMessage";
-  case 0x0239: return "RtlFindMostSignificantBit";
-  case 0x023a: return "RtlFindNextForwardRunClear";
-  case 0x023b: return "RtlFindRange";
-  case 0x023c: return "RtlFindSetBits";
-  case 0x023d: return "RtlFindSetBitsAndClear";
-  case 0x023e: return "RtlFirstEntrySList";
-  case 0x023f: return "RtlFirstFreeAce";
-  case 0x0240: return "RtlFlushSecureMemoryCache";
-  case 0x0241: return "RtlFormatCurrentUserKeyPath";
-  case 0x0242: return "RtlFormatMessage";
-  case 0x0243: return "RtlFreeAnsiString";
-  case 0x0244: return "RtlFreeHandle";
-  case 0x0245: return "RtlFreeHeap";
-  case 0x0246: return "RtlFreeOemString";
-  case 0x0247: return "RtlFreeRangeList";
-  case 0x0248: return "RtlFreeSid";
-  case 0x0249: return "RtlFreeThreadActivationContextStack";
-  case 0x024a: return "RtlFreeUnicodeString";
-  case 0x024b: return "RtlFreeUserThreadStack";
-  case 0x024c: return "RtlGUIDFromString";
-  case 0x024d: return "RtlGenerate8dot3Name";
-  case 0x024e: return "RtlGetAce";
-  case 0x024f: return "RtlGetActiveActivationContext";
-  case 0x0250: return "RtlGetCallersAddress";
-  case 0x0251: return "RtlGetCompressionWorkSpaceSize";
-  case 0x0252: return "RtlGetControlSecurityDescriptor";
-  case 0x0253: return "RtlGetCurrentDirectory_U";
-  case 0x0254: return "RtlGetCurrentPeb";
-  case 0x0255: return "RtlGetDaclSecurityDescriptor";
-  case 0x0256: return "RtlGetElementGenericTable";
-  case 0x0257: return "RtlGetElementGenericTableAvl";
-  case 0x0258: return "RtlGetFirstRange";
-  case 0x0259: return "RtlGetFrame";
-  case 0x025a: return "RtlGetFullPathName_U";
-  case 0x025b: return "RtlGetGroupSecurityDescriptor";
-  case 0x025c: return "RtlGetLastNtStatus";
-  case 0x025d: return "RtlGetLastWin32Error";
-  case 0x025e: return "RtlGetLengthWithoutLastFullDosOrNtPathElement";
-  case 0x025f: return "RtlGetLengthWithoutTrailingPathSeperators";
-  case 0x0260: return "RtlGetLongestNtPathLength";
-  case 0x0261: return "RtlGetNativeSystemInformation";
-  case 0x0262: return "RtlGetNextRange";
-  case 0x0263: return "RtlGetNtGlobalFlags";
-  case 0x0264: return "RtlGetNtProductType";
-  case 0x0265: return "RtlGetNtVersionNumbers";
-  case 0x0266: return "RtlGetOwnerSecurityDescriptor";
-  case 0x0267: return "RtlGetProcessHeaps";
-  case 0x0268: return "RtlGetSaclSecurityDescriptor";
-  case 0x0269: return "RtlGetSecurityDescriptorRMControl";
-  case 0x026a: return "RtlGetSetBootStatusData";
-  case 0x026b: return "RtlGetUnloadEventTrace";
-  case 0x026c: return "RtlGetUserInfoHeap";
-  case 0x026d: return "RtlGetVersion";
-  case 0x026e: return "RtlHashUnicodeString";
-  case 0x026f: return "RtlIdentifierAuthoritySid";
-  case 0x0270: return "RtlImageDirectoryEntryToData";
-  case 0x0271: return "RtlImageNtHeader";
-  case 0x0272: return "RtlImageRvaToSection";
-  case 0x0273: return "RtlImageRvaToVa";
-  case 0x0274: return "RtlImpersonateSelf";
-  case 0x0275: return "RtlInitAnsiString";
-  case 0x0276: return "RtlInitCodePageTable";
-  case 0x0277: return "RtlInitMemoryStream";
-  case 0x0278: return "RtlInitNlsTables";
-  case 0x0279: return "RtlInitOutOfProcessMemoryStream";
-  case 0x027a: return "RtlInitString";
-  case 0x027b: return "RtlInitUnicodeString";
-  case 0x027c: return "RtlInitUnicodeStringEx";
-  case 0x027d: return "RtlInitializeAtomPackage";
-  case 0x027e: return "RtlInitializeBitMap";
-  case 0x027f: return "RtlInitializeContext";
-  case 0x0280: return "RtlInitializeCriticalSection";
-  case 0x0281: return "RtlInitializeCriticalSectionAndSpinCount";
-  case 0x0282: return "RtlInitializeGenericTable";
-  case 0x0283: return "RtlInitializeGenericTableAvl";
-  case 0x0284: return "RtlInitializeHandleTable";
-  case 0x0285: return "RtlInitializeRXact";
-  case 0x0286: return "RtlInitializeRangeList";
-  case 0x0287: return "RtlInitializeResource";
-  case 0x0288: return "RtlInitializeSListHead";
-  case 0x0289: return "RtlInitializeSid";
-  case 0x028a: return "RtlInitializeStackTraceDataBase";
-  case 0x028b: return "RtlInsertElementGenericTable";
-  case 0x028c: return "RtlInsertElementGenericTableAvl";
-  case 0x028d: return "RtlInt64ToUnicodeString";
-  case 0x028e: return "RtlIntegerToChar";
-  case 0x028f: return "RtlIntegerToUnicodeString";
-  case 0x0290: return "RtlInterlockedFlushSList";
-  case 0x0291: return "RtlInterlockedPopEntrySList";
-  case 0x0292: return "RtlInterlockedPushEntrySList";
-  case 0x0004: return "RtlInterlockedPushListSList";
-  case 0x0293: return "RtlInvertRangeList";
-  case 0x0294: return "RtlIpv4AddressToStringA";
-  case 0x0295: return "RtlIpv4AddressToStringExA";
-  case 0x0296: return "RtlIpv4AddressToStringExW";
-  case 0x0297: return "RtlIpv4AddressToStringW";
-  case 0x0298: return "RtlIpv4StringToAddressA";
-  case 0x0299: return "RtlIpv4StringToAddressExA";
-  case 0x029a: return "RtlIpv4StringToAddressExW";
-  case 0x029b: return "RtlIpv4StringToAddressW";
-  case 0x029c: return "RtlIpv6AddressToStringA";
-  case 0x029d: return "RtlIpv6AddressToStringExA";
-  case 0x029e: return "RtlIpv6AddressToStringExW";
-  case 0x029f: return "RtlIpv6AddressToStringW";
-  case 0x02a0: return "RtlIpv6StringToAddressA";
-  case 0x02a1: return "RtlIpv6StringToAddressExA";
-  case 0x02a2: return "RtlIpv6StringToAddressExW";
-  case 0x02a3: return "RtlIpv6StringToAddressW";
-  case 0x02a4: return "RtlIsActivationContextActive";
-  case 0x02a5: return "RtlIsDosDeviceName_U";
-  case 0x02a6: return "RtlIsGenericTableEmpty";
-  case 0x02a7: return "RtlIsGenericTableEmptyAvl";
-  case 0x02a8: return "RtlIsNameLegalDOS8Dot3";
-  case 0x02a9: return "RtlIsRangeAvailable";
-  case 0x02aa: return "RtlIsTextUnicode";
-  case 0x02ab: return "RtlIsThreadWithinLoaderCallout";
-  case 0x02ac: return "RtlIsValidHandle";
-  case 0x02ad: return "RtlIsValidIndexHandle";
-  case 0x02ae: return "RtlLargeIntegerAdd";
-  case 0x02af: return "RtlLargeIntegerArithmeticShift";
-  case 0x02b0: return "RtlLargeIntegerDivide";
-  case 0x02b1: return "RtlLargeIntegerNegate";
-  case 0x02b2: return "RtlLargeIntegerShiftLeft";
-  case 0x02b3: return "RtlLargeIntegerShiftRight";
-  case 0x02b4: return "RtlLargeIntegerSubtract";
-  case 0x02b5: return "RtlLargeIntegerToChar";
-  case 0x02b6: return "RtlLeaveCriticalSection";
-  case 0x02b7: return "RtlLengthRequiredSid";
-  case 0x02b8: return "RtlLengthSecurityDescriptor";
-  case 0x02b9: return "RtlLengthSid";
-  case 0x02ba: return "RtlLocalTimeToSystemTime";
-  case 0x02bb: return "RtlLockBootStatusData";
-  case 0x02bc: return "RtlLockHeap";
-  case 0x02bd: return "RtlLockMemoryStreamRegion";
-  case 0x02be: return "RtlLogStackBackTrace";
-  case 0x02bf: return "RtlLookupAtomInAtomTable";
-  case 0x02c0: return "RtlLookupElementGenericTable";
-  case 0x02c1: return "RtlLookupElementGenericTableAvl";
-  case 0x02c2: return "RtlMakeSelfRelativeSD";
-  case 0x02c3: return "RtlMapGenericMask";
-  case 0x02c4: return "RtlMapSecurityErrorToNtStatus";
-  case 0x02c5: return "RtlMergeRangeLists";
-  case 0x02c6: return "RtlMoveMemory";
-  case 0x02c7: return "RtlMultiAppendUnicodeStringBuffer";
-  case 0x02c8: return "RtlMultiByteToUnicodeN";
-  case 0x02c9: return "RtlMultiByteToUnicodeSize";
-  case 0x02ca: return "RtlNewInstanceSecurityObject";
-  case 0x02cb: return "RtlNewSecurityGrantedAccess";
-  case 0x02cc: return "RtlNewSecurityObject";
-  case 0x02cd: return "RtlNewSecurityObjectEx";
-  case 0x02ce: return "RtlNewSecurityObjectWithMultipleInheritance";
-  case 0x02cf: return "RtlNormalizeProcessParams";
-  case 0x02d0: return "RtlNtPathNameToDosPathName";
-  case 0x02d1: return "RtlNtStatusToDosError";
-  case 0x02d2: return "RtlNtStatusToDosErrorNoTeb";
-  case 0x02d3: return "RtlNumberGenericTableElements";
-  case 0x02d4: return "RtlNumberGenericTableElementsAvl";
-  case 0x02d5: return "RtlNumberOfClearBits";
-  case 0x02d6: return "RtlNumberOfSetBits";
-  case 0x02d7: return "RtlOemStringToUnicodeSize";
-  case 0x02d8: return "RtlOemStringToUnicodeString";
-  case 0x02d9: return "RtlOemToUnicodeN";
-  case 0x02da: return "RtlOpenCurrentUser";
-  case 0x02db: return "RtlPcToFileHeader";
-  case 0x02dc: return "RtlPinAtomInAtomTable";
-  case 0x02dd: return "RtlPopFrame";
-  case 0x02de: return "RtlPrefixString";
-  case 0x02df: return "RtlPrefixUnicodeString";
-  case 0x02e0: return "RtlProtectHeap";
-  case 0x02e1: return "RtlPushFrame";
-  case 0x02e2: return "RtlQueryAtomInAtomTable";
-  case 0x02e3: return "RtlQueryDepthSList";
-  case 0x02e4: return "RtlQueryEnvironmentVariable_U";
-  case 0x02e5: return "RtlQueryHeapInformation";
-  case 0x02e6: return "RtlQueryInformationAcl";
-  case 0x02e7: return "RtlQueryInformationActivationContext";
-  case 0x02e8: return "RtlQueryInformationActiveActivationContext";
-  case 0x02e9: return "RtlQueryInterfaceMemoryStream";
-  case 0x02ea: return "RtlQueryProcessBackTraceInformation";
-  case 0x02eb: return "RtlQueryProcessDebugInformation";
-  case 0x02ec: return "RtlQueryProcessHeapInformation";
-  case 0x02ed: return "RtlQueryProcessLockInformation";
-  case 0x02ee: return "RtlQueryRegistryValues";
-  case 0x02ef: return "RtlQuerySecurityObject";
-  case 0x02f0: return "RtlQueryTagHeap";
-  case 0x02f1: return "RtlQueryTimeZoneInformation";
-  case 0x02f2: return "RtlQueueApcWow64Thread";
-  case 0x02f3: return "RtlQueueWorkItem";
-  case 0x02f4: return "RtlRaiseException";
-  case 0x02f5: return "RtlRaiseStatus";
-  case 0x02f6: return "RtlRandom";
-  case 0x02f7: return "RtlRandomEx";
-  case 0x02f8: return "RtlReAllocateHeap";
-  case 0x02f9: return "RtlReadMemoryStream";
-  case 0x02fa: return "RtlReadOutOfProcessMemoryStream";
-  case 0x02fb: return "RtlRealPredecessor";
-  case 0x02fc: return "RtlRealSuccessor";
-  case 0x02fd: return "RtlRegisterSecureMemoryCacheCallback";
-  case 0x02fe: return "RtlRegisterWait";
-  case 0x02ff: return "RtlReleaseActivationContext";
-  case 0x0300: return "RtlReleaseMemoryStream";
-  case 0x0301: return "RtlReleasePebLock";
-  case 0x0302: return "RtlReleaseResource";
-  case 0x0303: return "RtlRemoteCall";
-  case 0x0304: return "RtlRemoveVectoredExceptionHandler";
-  case 0x0305: return "RtlResetRtlTranslations";
-  case 0x0306: return "RtlRestoreLastWin32Error";
-  case 0x0307: return "RtlRevertMemoryStream";
-  case 0x0308: return "RtlRunDecodeUnicodeString";
-  case 0x0309: return "RtlRunEncodeUnicodeString";
-  case 0x030a: return "RtlSecondsSince1970ToTime";
-  case 0x030b: return "RtlSecondsSince1980ToTime";
-  case 0x030c: return "RtlSeekMemoryStream";
-  case 0x030e: return "RtlSelfRelativeToAbsoluteSD";
-  case 0x030d: return "RtlSelfRelativeToAbsoluteSD2";
-  case 0x030f: return "RtlSetAllBits";
-  case 0x0310: return "RtlSetAttributesSecurityDescriptor";
-  case 0x0311: return "RtlSetBits";
-  case 0x0312: return "RtlSetControlSecurityDescriptor";
-  case 0x0313: return "RtlSetCriticalSectionSpinCount";
-  case 0x0314: return "RtlSetCurrentDirectory_U";
-  case 0x0315: return "RtlSetCurrentEnvironment";
-  case 0x0316: return "RtlSetDaclSecurityDescriptor";
-  case 0x0317: return "RtlSetEnvironmentVariable";
-  case 0x0318: return "RtlSetGroupSecurityDescriptor";
-  case 0x0319: return "RtlSetHeapInformation";
-  case 0x031a: return "RtlSetInformationAcl";
-  case 0x031b: return "RtlSetIoCompletionCallback";
-  case 0x031c: return "RtlSetLastWin32Error";
-  case 0x031d: return "RtlSetLastWin32ErrorAndNtStatusFromNtStatus";
-  case 0x031e: return "RtlSetMemoryStreamSize";
-  case 0x031f: return "RtlSetOwnerSecurityDescriptor";
-  case 0x0320: return "RtlSetProcessIsCritical";
-  case 0x0321: return "RtlSetSaclSecurityDescriptor";
-  case 0x0322: return "RtlSetSecurityDescriptorRMControl";
-  case 0x0323: return "RtlSetSecurityObject";
-  case 0x0324: return "RtlSetSecurityObjectEx";
-  case 0x0325: return "RtlSetThreadIsCritical";
-  case 0x0326: return "RtlSetThreadPoolStartFunc";
-  case 0x0327: return "RtlSetTimeZoneInformation";
-  case 0x0328: return "RtlSetTimer";
-  case 0x0329: return "RtlSetUnicodeCallouts";
-  case 0x032a: return "RtlSetUserFlagsHeap";
-  case 0x032b: return "RtlSetUserValueHeap";
-  case 0x032c: return "RtlSizeHeap";
-  case 0x032d: return "RtlSplay";
-  case 0x032e: return "RtlStartRXact";
-  case 0x032f: return "RtlStatMemoryStream";
-  case 0x0330: return "RtlStringFromGUID";
-  case 0x0331: return "RtlSubAuthorityCountSid";
-  case 0x0332: return "RtlSubAuthoritySid";
-  case 0x0333: return "RtlSubtreePredecessor";
-  case 0x0334: return "RtlSubtreeSuccessor";
-  case 0x0335: return "RtlSystemTimeToLocalTime";
-  case 0x0336: return "RtlTimeFieldsToTime";
-  case 0x0337: return "RtlTimeToElapsedTimeFields";
-  case 0x0338: return "RtlTimeToSecondsSince1970";
-  case 0x0339: return "RtlTimeToSecondsSince1980";
-  case 0x033a: return "RtlTimeToTimeFields";
-  case 0x033b: return "RtlTraceDatabaseAdd";
-  case 0x033c: return "RtlTraceDatabaseCreate";
-  case 0x033d: return "RtlTraceDatabaseDestroy";
-  case 0x033e: return "RtlTraceDatabaseEnumerate";
-  case 0x033f: return "RtlTraceDatabaseFind";
-  case 0x0340: return "RtlTraceDatabaseLock";
-  case 0x0341: return "RtlTraceDatabaseUnlock";
-  case 0x0342: return "RtlTraceDatabaseValidate";
-  case 0x0343: return "RtlTryEnterCriticalSection";
-  case 0x0005: return "RtlUlongByteSwap";
-  case 0x0006: return "RtlUlonglongByteSwap";
-  case 0x0345: return "RtlUnhandledExceptionFilter";
-  case 0x0344: return "RtlUnhandledExceptionFilter2";
-  case 0x0346: return "RtlUnicodeStringToAnsiSize";
-  case 0x0347: return "RtlUnicodeStringToAnsiString";
-  case 0x0348: return "RtlUnicodeStringToCountedOemString";
-  case 0x0349: return "RtlUnicodeStringToInteger";
-  case 0x034a: return "RtlUnicodeStringToOemSize";
-  case 0x034b: return "RtlUnicodeStringToOemString";
-  case 0x034c: return "RtlUnicodeToCustomCPN";
-  case 0x034d: return "RtlUnicodeToMultiByteN";
-  case 0x034e: return "RtlUnicodeToMultiByteSize";
-  case 0x034f: return "RtlUnicodeToOemN";
-  case 0x0350: return "RtlUniform";
-  case 0x0351: return "RtlUnlockBootStatusData";
-  case 0x0352: return "RtlUnlockHeap";
-  case 0x0353: return "RtlUnlockMemoryStreamRegion";
-  case 0x0354: return "RtlUnwind";
-  case 0x0355: return "RtlUpcaseUnicodeChar";
-  case 0x0356: return "RtlUpcaseUnicodeString";
-  case 0x0357: return "RtlUpcaseUnicodeStringToAnsiString";
-  case 0x0358: return "RtlUpcaseUnicodeStringToCountedOemString";
-  case 0x0359: return "RtlUpcaseUnicodeStringToOemString";
-  case 0x035a: return "RtlUpcaseUnicodeToCustomCPN";
-  case 0x035b: return "RtlUpcaseUnicodeToMultiByteN";
-  case 0x035c: return "RtlUpcaseUnicodeToOemN";
-  case 0x035d: return "RtlUpdateTimer";
-  case 0x035e: return "RtlUpperChar";
-  case 0x035f: return "RtlUpperString";
-  case 0x0360: return "RtlUsageHeap";
-  case 0x0007: return "RtlUshortByteSwap";
-  case 0x0361: return "RtlValidAcl";
-  case 0x0362: return "RtlValidRelativeSecurityDescriptor";
-  case 0x0363: return "RtlValidSecurityDescriptor";
-  case 0x0364: return "RtlValidSid";
-  case 0x0365: return "RtlValidateHeap";
-  case 0x0366: return "RtlValidateProcessHeaps";
-  case 0x0367: return "RtlValidateUnicodeString";
-  case 0x0368: return "RtlVerifyVersionInfo";
-  case 0x0369: return "RtlWalkFrameChain";
-  case 0x036a: return "RtlWalkHeap";
-  case 0x036b: return "RtlWriteMemoryStream";
-  case 0x036c: return "RtlWriteRegistryValue";
-  case 0x036d: return "RtlZeroHeap";
-  case 0x036e: return "RtlZeroMemory";
-  case 0x036f: return "RtlZombifyActivationContext";
-  case 0x0370: return "RtlpApplyLengthFunction";
-  case 0x0371: return "RtlpEnsureBufferSize";
-  case 0x0372: return "RtlpNotOwnerCriticalSection";
-  case 0x0373: return "RtlpNtCreateKey";
-  case 0x0374: return "RtlpNtEnumerateSubKey";
-  case 0x0375: return "RtlpNtMakeTemporaryKey";
-  case 0x0376: return "RtlpNtOpenKey";
-  case 0x0377: return "RtlpNtQueryValueKey";
-  case 0x0378: return "RtlpNtSetValueKey";
-  case 0x0379: return "RtlpUnWaitCriticalSection";
-  case 0x037a: return "RtlpWaitForCriticalSection";
-  case 0x037b: return "RtlxAnsiStringToUnicodeSize";
-  case 0x037c: return "RtlxOemStringToUnicodeSize";
-  case 0x037d: return "RtlxUnicodeStringToAnsiSize";
-  case 0x037e: return "RtlxUnicodeStringToOemSize";
-  case 0x037f: return "VerSetConditionMask";
-  case 0x0380: return "ZwAcceptConnectPort";
-  case 0x0381: return "ZwAccessCheck";
-  case 0x0382: return "ZwAccessCheckAndAuditAlarm";
-  case 0x0383: return "ZwAccessCheckByType";
-  case 0x0384: return "ZwAccessCheckByTypeAndAuditAlarm";
-  case 0x0385: return "ZwAccessCheckByTypeResultList";
-  case 0x0386: return "ZwAccessCheckByTypeResultListAndAuditAlarm";
-  case 0x0387: return "ZwAccessCheckByTypeResultListAndAuditAlarmByHandle";
-  case 0x0388: return "ZwAddAtom";
-  case 0x0389: return "ZwAddBootEntry";
-  case 0x038a: return "ZwAdjustGroupsToken";
-  case 0x038b: return "ZwAdjustPrivilegesToken";
-  case 0x038c: return "ZwAlertResumeThread";
-  case 0x038d: return "ZwAlertThread";
-  case 0x038e: return "ZwAllocateLocallyUniqueId";
-  case 0x038f: return "ZwAllocateUserPhysicalPages";
-  case 0x0390: return "ZwAllocateUuids";
-  case 0x0391: return "ZwAllocateVirtualMemory";
-  case 0x0392: return "ZwAreMappedFilesTheSame";
-  case 0x0393: return "ZwAssignProcessToJobObject";
-  case 0x0394: return "ZwCallbackReturn";
-  case 0x0395: return "ZwCancelDeviceWakeupRequest";
-  case 0x0396: return "ZwCancelIoFile";
-  case 0x0397: return "ZwCancelTimer";
-  case 0x0398: return "ZwClearEvent";
-  case 0x0399: return "ZwClose";
-  case 0x039a: return "ZwCloseObjectAuditAlarm";
-  case 0x039b: return "ZwCompactKeys";
-  case 0x039c: return "ZwCompareTokens";
-  case 0x039d: return "ZwCompleteConnectPort";
-  case 0x039e: return "ZwCompressKey";
-  case 0x039f: return "ZwConnectPort";
-  case 0x03a0: return "ZwContinue";
-  case 0x03a1: return "ZwCreateDebugObject";
-  case 0x03a2: return "ZwCreateDirectoryObject";
-  case 0x03a3: return "ZwCreateEvent";
-  case 0x03a4: return "ZwCreateEventPair";
-  case 0x03a5: return "ZwCreateFile";
-  case 0x03a6: return "ZwCreateIoCompletion";
-  case 0x03a7: return "ZwCreateJobObject";
-  case 0x03a8: return "ZwCreateJobSet";
-  case 0x03a9: return "ZwCreateKey";
-  case 0x03aa: return "ZwCreateKeyedEvent";
-  case 0x03ab: return "ZwCreateMailslotFile";
-  case 0x03ac: return "ZwCreateMutant";
-  case 0x03ad: return "ZwCreateNamedPipeFile";
-  case 0x03ae: return "ZwCreatePagingFile";
-  case 0x03af: return "ZwCreatePort";
-  case 0x03b0: return "ZwCreateProcess";
-  case 0x03b1: return "ZwCreateProcessEx";
-  case 0x03b2: return "ZwCreateProfile";
-  case 0x03b3: return "ZwCreateSection";
-  case 0x03b4: return "ZwCreateSemaphore";
-  case 0x03b5: return "ZwCreateSymbolicLinkObject";
-  case 0x03b6: return "ZwCreateThread";
-  case 0x03b7: return "ZwCreateTimer";
-  case 0x03b8: return "ZwCreateToken";
-  case 0x03b9: return "ZwCreateWaitablePort";
-  case 0x03ba: return "ZwDebugActiveProcess";
-  case 0x03bb: return "ZwDebugContinue";
-  case 0x03bc: return "ZwDelayExecution";
-  case 0x03bd: return "ZwDeleteAtom";
-  case 0x03be: return "ZwDeleteBootEntry";
-  case 0x03bf: return "ZwDeleteFile";
-  case 0x03c0: return "ZwDeleteKey";
-  case 0x03c1: return "ZwDeleteObjectAuditAlarm";
-  case 0x03c2: return "ZwDeleteValueKey";
-  case 0x03c3: return "ZwDeviceIoControlFile";
-  case 0x03c4: return "ZwDisplayString";
-  case 0x03c5: return "ZwDuplicateObject";
-  case 0x03c6: return "ZwDuplicateToken";
-  case 0x03c7: return "ZwEnumerateBootEntries";
-  case 0x03c8: return "ZwEnumerateKey";
-  case 0x03c9: return "ZwEnumerateSystemEnvironmentValuesEx";
-  case 0x03ca: return "ZwEnumerateValueKey";
-  case 0x03cb: return "ZwExtendSection";
-  case 0x03cc: return "ZwFilterToken";
-  case 0x03cd: return "ZwFindAtom";
-  case 0x03ce: return "ZwFlushBuffersFile";
-  case 0x03cf: return "ZwFlushInstructionCache";
-  case 0x03d0: return "ZwFlushKey";
-  case 0x03d1: return "ZwFlushVirtualMemory";
-  case 0x03d2: return "ZwFlushWriteBuffer";
-  case 0x03d3: return "ZwFreeUserPhysicalPages";
-  case 0x03d4: return "ZwFreeVirtualMemory";
-  case 0x03d5: return "ZwFsControlFile";
-  case 0x03d6: return "ZwGetContextThread";
-  case 0x03d7: return "ZwGetDevicePowerState";
-  case 0x03d8: return "ZwGetPlugPlayEvent";
-  case 0x03d9: return "ZwGetWriteWatch";
-  case 0x03da: return "ZwImpersonateAnonymousToken";
-  case 0x03db: return "ZwImpersonateClientOfPort";
-  case 0x03dc: return "ZwImpersonateThread";
-  case 0x03dd: return "ZwInitializeRegistry";
-  case 0x03de: return "ZwInitiatePowerAction";
-  case 0x03df: return "ZwIsProcessInJob";
-  case 0x03e0: return "ZwIsSystemResumeAutomatic";
-  case 0x03e1: return "ZwListenPort";
-  case 0x03e2: return "ZwLoadDriver";
-  case 0x03e4: return "ZwLoadKey";
-  case 0x03e3: return "ZwLoadKey2";
-  case 0x03e5: return "ZwLockFile";
-  case 0x03e6: return "ZwLockProductActivationKeys";
-  case 0x03e7: return "ZwLockRegistryKey";
-  case 0x03e8: return "ZwLockVirtualMemory";
-  case 0x03e9: return "ZwMakePermanentObject";
-  case 0x03ea: return "ZwMakeTemporaryObject";
-  case 0x03eb: return "ZwMapUserPhysicalPages";
-  case 0x03ec: return "ZwMapUserPhysicalPagesScatter";
-  case 0x03ed: return "ZwMapViewOfSection";
-  case 0x03ee: return "ZwModifyBootEntry";
-  case 0x03ef: return "ZwNotifyChangeDirectoryFile";
-  case 0x03f0: return "ZwNotifyChangeKey";
-  case 0x03f1: return "ZwNotifyChangeMultipleKeys";
-  case 0x03f2: return "ZwOpenDirectoryObject";
-  case 0x03f3: return "ZwOpenEvent";
-  case 0x03f4: return "ZwOpenEventPair";
-  case 0x03f5: return "ZwOpenFile";
-  case 0x03f6: return "ZwOpenIoCompletion";
-  case 0x03f7: return "ZwOpenJobObject";
-  case 0x03f8: return "ZwOpenKey";
-  case 0x03f9: return "ZwOpenKeyedEvent";
-  case 0x03fa: return "ZwOpenMutant";
-  case 0x03fb: return "ZwOpenObjectAuditAlarm";
-  case 0x03fc: return "ZwOpenProcess";
-  case 0x03fd: return "ZwOpenProcessToken";
-  case 0x03fe: return "ZwOpenProcessTokenEx";
-  case 0x03ff: return "ZwOpenSection";
-  case 0x0400: return "ZwOpenSemaphore";
-  case 0x0401: return "ZwOpenSymbolicLinkObject";
-  case 0x0402: return "ZwOpenThread";
-  case 0x0403: return "ZwOpenThreadToken";
-  case 0x0404: return "ZwOpenThreadTokenEx";
-  case 0x0405: return "ZwOpenTimer";
-  case 0x0406: return "ZwPlugPlayControl";
-  case 0x0407: return "ZwPowerInformation";
-  case 0x0408: return "ZwPrivilegeCheck";
-  case 0x0409: return "ZwPrivilegeObjectAuditAlarm";
-  case 0x040a: return "ZwPrivilegedServiceAuditAlarm";
-  case 0x040b: return "ZwProtectVirtualMemory";
-  case 0x040c: return "ZwPulseEvent";
-  case 0x040d: return "ZwQueryAttributesFile";
-  case 0x040e: return "ZwQueryBootEntryOrder";
-  case 0x040f: return "ZwQueryBootOptions";
-  case 0x0410: return "ZwQueryDebugFilterState";
-  case 0x0411: return "ZwQueryDefaultLocale";
-  case 0x0412: return "ZwQueryDefaultUILanguage";
-  case 0x0413: return "ZwQueryDirectoryFile";
-  case 0x0414: return "ZwQueryDirectoryObject";
-  case 0x0415: return "ZwQueryEaFile";
-  case 0x0416: return "ZwQueryEvent";
-  case 0x0417: return "ZwQueryFullAttributesFile";
-  case 0x0418: return "ZwQueryInformationAtom";
-  case 0x0419: return "ZwQueryInformationFile";
-  case 0x041a: return "ZwQueryInformationJobObject";
-  case 0x041b: return "ZwQueryInformationPort";
-  case 0x041c: return "ZwQueryInformationProcess";
-  case 0x041d: return "ZwQueryInformationThread";
-  case 0x041e: return "ZwQueryInformationToken";
-  case 0x041f: return "ZwQueryInstallUILanguage";
-  case 0x0420: return "ZwQueryIntervalProfile";
-  case 0x0421: return "ZwQueryIoCompletion";
-  case 0x0422: return "ZwQueryKey";
-  case 0x0423: return "ZwQueryMultipleValueKey";
-  case 0x0424: return "ZwQueryMutant";
-  case 0x0425: return "ZwQueryObject";
-  case 0x0426: return "ZwQueryOpenSubKeys";
-  case 0x0427: return "ZwQueryPerformanceCounter";
-  case 0x0428: return "ZwQueryPortInformationProcess";
-  case 0x0429: return "ZwQueryQuotaInformationFile";
-  case 0x042a: return "ZwQuerySection";
-  case 0x042b: return "ZwQuerySecurityObject";
-  case 0x042c: return "ZwQuerySemaphore";
-  case 0x042d: return "ZwQuerySymbolicLinkObject";
-  case 0x042e: return "ZwQuerySystemEnvironmentValue";
-  case 0x042f: return "ZwQuerySystemEnvironmentValueEx";
-  case 0x0430: return "ZwQuerySystemInformation";
-  case 0x0431: return "ZwQuerySystemTime";
-  case 0x0432: return "ZwQueryTimer";
-  case 0x0433: return "ZwQueryTimerResolution";
-  case 0x0434: return "ZwQueryValueKey";
-  case 0x0435: return "ZwQueryVirtualMemory";
-  case 0x0436: return "ZwQueryVolumeInformationFile";
-  case 0x0437: return "ZwQueueApcThread";
-  case 0x0438: return "ZwRaiseException";
-  case 0x0439: return "ZwRaiseHardError";
-  case 0x043a: return "ZwReadFile";
-  case 0x043b: return "ZwReadFileScatter";
-  case 0x043c: return "ZwReadRequestData";
-  case 0x043d: return "ZwReadVirtualMemory";
-  case 0x043e: return "ZwRegisterThreadTerminatePort";
-  case 0x043f: return "ZwReleaseKeyedEvent";
-  case 0x0440: return "ZwReleaseMutant";
-  case 0x0441: return "ZwReleaseSemaphore";
-  case 0x0442: return "ZwRemoveIoCompletion";
-  case 0x0443: return "ZwRemoveProcessDebug";
-  case 0x0444: return "ZwRenameKey";
-  case 0x0445: return "ZwReplaceKey";
-  case 0x0446: return "ZwReplyPort";
-  case 0x0447: return "ZwReplyWaitReceivePort";
-  case 0x0448: return "ZwReplyWaitReceivePortEx";
-  case 0x0449: return "ZwReplyWaitReplyPort";
-  case 0x044a: return "ZwRequestDeviceWakeup";
-  case 0x044b: return "ZwRequestPort";
-  case 0x044c: return "ZwRequestWaitReplyPort";
-  case 0x044d: return "ZwRequestWakeupLatency";
-  case 0x044e: return "ZwResetEvent";
-  case 0x044f: return "ZwResetWriteWatch";
-  case 0x0450: return "ZwRestoreKey";
-  case 0x0451: return "ZwResumeProcess";
-  case 0x0452: return "ZwResumeThread";
-  case 0x0453: return "ZwSaveKey";
-  case 0x0454: return "ZwSaveKeyEx";
-  case 0x0455: return "ZwSaveMergedKeys";
-  case 0x0456: return "ZwSecureConnectPort";
-  case 0x0457: return "ZwSetBootEntryOrder";
-  case 0x0458: return "ZwSetBootOptions";
-  case 0x0459: return "ZwSetContextThread";
-  case 0x045a: return "ZwSetDebugFilterState";
-  case 0x045b: return "ZwSetDefaultHardErrorPort";
-  case 0x045c: return "ZwSetDefaultLocale";
-  case 0x045d: return "ZwSetDefaultUILanguage";
-  case 0x045e: return "ZwSetEaFile";
-  case 0x045f: return "ZwSetEvent";
-  case 0x0460: return "ZwSetEventBoostPriority";
-  case 0x0461: return "ZwSetHighEventPair";
-  case 0x0462: return "ZwSetHighWaitLowEventPair";
-  case 0x0463: return "ZwSetInformationDebugObject";
-  case 0x0464: return "ZwSetInformationFile";
-  case 0x0465: return "ZwSetInformationJobObject";
-  case 0x0466: return "ZwSetInformationKey";
-  case 0x0467: return "ZwSetInformationObject";
-  case 0x0468: return "ZwSetInformationProcess";
-  case 0x0469: return "ZwSetInformationThread";
-  case 0x046a: return "ZwSetInformationToken";
-  case 0x046b: return "ZwSetIntervalProfile";
-  case 0x046c: return "ZwSetIoCompletion";
-  case 0x046d: return "ZwSetLdtEntries";
-  case 0x046e: return "ZwSetLowEventPair";
-  case 0x046f: return "ZwSetLowWaitHighEventPair";
-  case 0x0470: return "ZwSetQuotaInformationFile";
-  case 0x0471: return "ZwSetSecurityObject";
-  case 0x0472: return "ZwSetSystemEnvironmentValue";
-  case 0x0473: return "ZwSetSystemEnvironmentValueEx";
-  case 0x0474: return "ZwSetSystemInformation";
-  case 0x0475: return "ZwSetSystemPowerState";
-  case 0x0476: return "ZwSetSystemTime";
-  case 0x0477: return "ZwSetThreadExecutionState";
-  case 0x0478: return "ZwSetTimer";
-  case 0x0479: return "ZwSetTimerResolution";
-  case 0x047a: return "ZwSetUuidSeed";
-  case 0x047b: return "ZwSetValueKey";
-  case 0x047c: return "ZwSetVolumeInformationFile";
-  case 0x047d: return "ZwShutdownSystem";
-  case 0x047e: return "ZwSignalAndWaitForSingleObject";
-  case 0x047f: return "ZwStartProfile";
-  case 0x0480: return "ZwStopProfile";
-  case 0x0481: return "ZwSuspendProcess";
-  case 0x0482: return "ZwSuspendThread";
-  case 0x0483: return "ZwSystemDebugControl";
-  case 0x0484: return "ZwTerminateJobObject";
-  case 0x0485: return "ZwTerminateProcess";
-  case 0x0486: return "ZwTerminateThread";
-  case 0x0487: return "ZwTestAlert";
-  case 0x0488: return "ZwTraceEvent";
-  case 0x0489: return "ZwTranslateFilePath";
-  case 0x048a: return "ZwUnloadDriver";
-  case 0x048b: return "ZwUnloadKey";
-  case 0x048c: return "ZwUnloadKeyEx";
-  case 0x048d: return "ZwUnlockFile";
-  case 0x048e: return "ZwUnlockVirtualMemory";
-  case 0x048f: return "ZwUnmapViewOfSection";
-  case 0x0490: return "ZwVdmControl";
-  case 0x0491: return "ZwWaitForDebugEvent";
-  case 0x0492: return "ZwWaitForKeyedEvent";
-  case 0x0493: return "ZwWaitForMultipleObjects";
-  case 0x0494: return "ZwWaitForSingleObject";
-  case 0x0495: return "ZwWaitHighEventPair";
-  case 0x0496: return "ZwWaitLowEventPair";
-  case 0x0497: return "ZwWriteFile";
-  case 0x0498: return "ZwWriteFileGather";
-  case 0x0499: return "ZwWriteRequestData";
-  case 0x049a: return "ZwWriteVirtualMemory";
-  case 0x049b: return "ZwYieldExecution";
-  case 0x049c: return "_CIcos";
-  case 0x049d: return "_CIlog";
-  case 0x049e: return "_CIpow";
-  case 0x049f: return "_CIsin";
-  case 0x04a0: return "_CIsqrt";
-  case 0x04a1: return "__isascii";
-  case 0x04a2: return "__iscsym";
-  case 0x04a3: return "__iscsymf";
-  case 0x04a4: return "__toascii";
-  case 0x04a5: return "_alldiv";
-  case 0x04a6: return "_alldvrm";
-  case 0x04a7: return "_allmul";
-  case 0x04a8: return "_alloca_probe";
-  case 0x04a9: return "_allrem";
-  case 0x04aa: return "_allshl";
-  case 0x04ab: return "_allshr";
-  case 0x04ac: return "_atoi64";
-  case 0x04ad: return "_aulldiv";
-  case 0x04ae: return "_aulldvrm";
-  case 0x04af: return "_aullrem";
-  case 0x04b0: return "_aullshr";
-  case 0x04b1: return "_chkstk";
-  case 0x04b2: return "_fltused";
-  case 0x04b3: return "_ftol";
-  case 0x04b4: return "_i64toa";
-  case 0x04b5: return "_i64tow";
-  case 0x04b6: return "_itoa";
-  case 0x04b7: return "_itow";
-  case 0x04b8: return "_lfind";
-  case 0x04b9: return "_ltoa";
-  case 0x04ba: return "_ltow";
-  case 0x04bb: return "_memccpy";
-  case 0x04bc: return "_memicmp";
-  case 0x04bd: return "_snprintf";
-  case 0x04be: return "_snwprintf";
-  case 0x04bf: return "_splitpath";
-  case 0x04c0: return "_strcmpi";
-  case 0x04c1: return "_stricmp";
-  case 0x04c2: return "_strlwr";
-  case 0x04c3: return "_strnicmp";
-  case 0x04c4: return "_strupr";
-  case 0x04c5: return "_tolower";
-  case 0x04c6: return "_toupper";
-  case 0x04c7: return "_ui64toa";
-  case 0x04c8: return "_ui64tow";
-  case 0x04c9: return "_ultoa";
-  case 0x04ca: return "_ultow";
-  case 0x04cb: return "_vsnprintf";
-  case 0x04cc: return "_vsnwprintf";
-  case 0x04cd: return "_wcsicmp";
-  case 0x04ce: return "_wcslwr";
-  case 0x04cf: return "_wcsnicmp";
-  case 0x04d0: return "_wcsupr";
-  case 0x04d1: return "_wtoi";
-  case 0x04d2: return "_wtoi64";
-  case 0x04d3: return "_wtol";
-  case 0x04d4: return "abs";
-  case 0x04d5: return "atan";
-  case 0x04d6: return "atoi";
-  case 0x04d7: return "atol";
-  case 0x04d8: return "bsearch";
-  case 0x04d9: return "ceil";
-  case 0x04da: return "cos";
-  case 0x04db: return "fabs";
-  case 0x04dc: return "floor";
-  case 0x04dd: return "isalnum";
-  case 0x04de: return "isalpha";
-  case 0x04df: return "iscntrl";
-  case 0x04e0: return "isdigit";
-  case 0x04e1: return "isgraph";
-  case 0x04e2: return "islower";
-  case 0x04e3: return "isprint";
-  case 0x04e4: return "ispunct";
-  case 0x04e5: return "isspace";
-  case 0x04e6: return "isupper";
-  case 0x04e7: return "iswalpha";
-  case 0x04e8: return "iswctype";
-  case 0x04e9: return "iswdigit";
-  case 0x04ea: return "iswlower";
-  case 0x04eb: return "iswspace";
-  case 0x04ec: return "iswxdigit";
-  case 0x04ed: return "isxdigit";
-  case 0x04ee: return "labs";
-  case 0x04ef: return "log";
-  case 0x04f0: return "mbstowcs";
-  case 0x04f1: return "memchr";
-  case 0x04f2: return "memcmp";
-  case 0x04f3: return "memcpy";
-  case 0x04f4: return "memmove";
-  case 0x04f5: return "memset";
-  case 0x04f6: return "pow";
-  case 0x04f7: return "qsort";
-  case 0x04f8: return "sin";
-  case 0x04f9: return "sprintf";
-  case 0x04fa: return "sqrt";
-  case 0x04fb: return "sscanf";
-  case 0x04fc: return "strcat";
-  case 0x04fd: return "strchr";
-  case 0x04fe: return "strcmp";
-  case 0x04ff: return "strcpy";
-  case 0x0500: return "strcspn";
-  case 0x0501: return "strlen";
-  case 0x0502: return "strncat";
-  case 0x0503: return "strncmp";
-  case 0x0504: return "strncpy";
-  case 0x0505: return "strpbrk";
-  case 0x0506: return "strrchr";
-  case 0x0507: return "strspn";
-  case 0x0508: return "strstr";
-  case 0x0509: return "strtol";
-  case 0x050a: return "strtoul";
-  case 0x050b: return "swprintf";
-  case 0x050c: return "tan";
-  case 0x050d: return "tolower";
-  case 0x050e: return "toupper";
-  case 0x050f: return "towlower";
-  case 0x0510: return "towupper";
-  case 0x0511: return "vDbgPrintEx";
-  case 0x0512: return "vDbgPrintExWithPrefix";
-  case 0x0513: return "vsprintf";
-  case 0x0514: return "wcscat";
-  case 0x0515: return "wcschr";
-  case 0x0516: return "wcscmp";
-  case 0x0517: return "wcscpy";
-  case 0x0518: return "wcscspn";
-  case 0x0519: return "wcslen";
-  case 0x051a: return "wcsncat";
-  case 0x051b: return "wcsncmp";
-  case 0x051c: return "wcsncpy";
-  case 0x051d: return "wcspbrk";
-  case 0x051e: return "wcsrchr";
-  case 0x051f: return "wcsspn";
-  case 0x0520: return "wcsstr";
-  case 0x0521: return "wcstol";
-  case 0x0522: return "wcstombs";
-  case 0x0523: return "wcstoul";
+  switch (i) {
+    case 0x0008: return "CsrAllocateCaptureBuffer";
+    case 0x0009: return "CsrAllocateMessagePointer";
+    case 0x000a: return "CsrCaptureMessageBuffer";
+    case 0x000b: return "CsrCaptureMessageMultiUnicodeStringsInPlace";
+    case 0x000c: return "CsrCaptureMessageString";
+    case 0x000d: return "CsrCaptureTimeout";
+    case 0x000e: return "CsrClientCallServer";
+    case 0x000f: return "CsrClientConnectToServer";
+    case 0x0010: return "CsrFreeCaptureBuffer";
+    case 0x0011: return "CsrGetProcessId";
+    case 0x0012: return "CsrIdentifyAlertableThread";
+    case 0x0013: return "CsrNewThread";
+    case 0x0014: return "CsrProbeForRead";
+    case 0x0015: return "CsrProbeForWrite";
+    case 0x0016: return "CsrSetPriorityClass";
+    case 0x0017: return "DbgBreakPoint";
+    case 0x0018: return "DbgPrint";
+    case 0x0019: return "DbgPrintEx";
+    case 0x001a: return "DbgPrintReturnControlC";
+    case 0x001b: return "DbgPrompt";
+    case 0x001c: return "DbgQueryDebugFilterState";
+    case 0x001d: return "DbgSetDebugFilterState";
+    case 0x001e: return "DbgUiConnectToDbg";
+    case 0x001f: return "DbgUiContinue";
+    case 0x0020: return "DbgUiConvertStateChangeStructure";
+    case 0x0021: return "DbgUiDebugActiveProcess";
+    case 0x0022: return "DbgUiGetThreadDebugObject";
+    case 0x0023: return "DbgUiIssueRemoteBreakin";
+    case 0x0024: return "DbgUiRemoteBreakin";
+    case 0x0025: return "DbgUiSetThreadDebugObject";
+    case 0x0026: return "DbgUiStopDebugging";
+    case 0x0027: return "DbgUiWaitStateChange";
+    case 0x0028: return "DbgUserBreakPoint";
+    case 0x0029: return "KiFastSystemCall";
+    case 0x002a: return "KiFastSystemCallRet";
+    case 0x002b: return "KiIntSystemCall";
+    case 0x002c: return "KiRaiseUserExceptionDispatcher";
+    case 0x002d: return "KiUserApcDispatcher";
+    case 0x002e: return "KiUserCallbackDispatcher";
+    case 0x002f: return "KiUserExceptionDispatcher";
+    case 0x0030: return "LdrAccessOutOfProcessResource";
+    case 0x0031: return "LdrAccessResource";
+    case 0x0032: return "LdrAddRefDll";
+    case 0x0033: return "LdrAlternateResourcesEnabled";
+    case 0x0034: return "LdrCreateOutOfProcessImage";
+    case 0x0035: return "LdrDestroyOutOfProcessImage";
+    case 0x0036: return "LdrDisableThreadCalloutsForDll";
+    case 0x0037: return "LdrEnumResources";
+    case 0x0038: return "LdrEnumerateLoadedModules";
+    case 0x0039: return "LdrFindCreateProcessManifest";
+    case 0x003a: return "LdrFindEntryForAddress";
+    case 0x003b: return "LdrFindResourceDirectory_U";
+    case 0x003c: return "LdrFindResourceEx_U";
+    case 0x003d: return "LdrFindResource_U";
+    case 0x003e: return "LdrFlushAlternateResourceModules";
+    case 0x003f: return "LdrGetDllHandle";
+    case 0x0040: return "LdrGetDllHandleEx";
+    case 0x0041: return "LdrGetProcedureAddress";
+    case 0x0042: return "LdrHotPatchRoutine";
+    case 0x0043: return "LdrInitShimEngineDynamic";
+    case 0x0044: return "LdrInitializeThunk";
+    case 0x0045: return "LdrLoadAlternateResourceModule";
+    case 0x0046: return "LdrLoadDll";
+    case 0x0047: return "LdrLockLoaderLock";
+    case 0x0048: return "LdrProcessRelocationBlock";
+    case 0x0049: return "LdrQueryImageFileExecutionOptions";
+    case 0x004a: return "LdrQueryProcessModuleInformation";
+    case 0x004b: return "LdrSetAppCompatDllRedirectionCallback";
+    case 0x004c: return "LdrSetDllManifestProber";
+    case 0x004d: return "LdrShutdownProcess";
+    case 0x004e: return "LdrShutdownThread";
+    case 0x004f: return "LdrUnloadAlternateResourceModule";
+    case 0x0050: return "LdrUnloadDll";
+    case 0x0051: return "LdrUnlockLoaderLock";
+    case 0x0052: return "LdrVerifyImageMatchesChecksum";
+    case 0x0053: return "NlsAnsiCodePage";
+    case 0x0054: return "NlsMbCodePageTag";
+    case 0x0055: return "NlsMbOemCodePageTag";
+    case 0x0056: return "NtAcceptConnectPort";
+    case 0x0057: return "NtAccessCheck";
+    case 0x0058: return "NtAccessCheckAndAuditAlarm";
+    case 0x0059: return "NtAccessCheckByType";
+    case 0x005a: return "NtAccessCheckByTypeAndAuditAlarm";
+    case 0x005b: return "NtAccessCheckByTypeResultList";
+    case 0x005c: return "NtAccessCheckByTypeResultListAndAuditAlarm";
+    case 0x005d: return "NtAccessCheckByTypeResultListAndAuditAlarmByHandle";
+    case 0x005e: return "NtAddAtom";
+    case 0x005f: return "NtAddBootEntry";
+    case 0x0060: return "NtAdjustGroupsToken";
+    case 0x0061: return "NtAdjustPrivilegesToken";
+    case 0x0062: return "NtAlertResumeThread";
+    case 0x0063: return "NtAlertThread";
+    case 0x0064: return "NtAllocateLocallyUniqueId";
+    case 0x0065: return "NtAllocateUserPhysicalPages";
+    case 0x0066: return "NtAllocateUuids";
+    case 0x0067: return "NtAllocateVirtualMemory";
+    case 0x0068: return "NtAreMappedFilesTheSame";
+    case 0x0069: return "NtAssignProcessToJobObject";
+    case 0x006a: return "NtCallbackReturn";
+    case 0x006b: return "NtCancelDeviceWakeupRequest";
+    case 0x006c: return "NtCancelIoFile";
+    case 0x006d: return "NtCancelTimer";
+    case 0x006e: return "NtClearEvent";
+    case 0x006f: return "NtClose";
+    case 0x0070: return "NtCloseObjectAuditAlarm";
+    case 0x0071: return "NtCompactKeys";
+    case 0x0072: return "NtCompareTokens";
+    case 0x0073: return "NtCompleteConnectPort";
+    case 0x0074: return "NtCompressKey";
+    case 0x0075: return "NtConnectPort";
+    case 0x0076: return "NtContinue";
+    case 0x0077: return "NtCreateDebugObject";
+    case 0x0078: return "NtCreateDirectoryObject";
+    case 0x0079: return "NtCreateEvent";
+    case 0x007a: return "NtCreateEventPair";
+    case 0x007b: return "NtCreateFile";
+    case 0x007c: return "NtCreateIoCompletion";
+    case 0x007d: return "NtCreateJobObject";
+    case 0x007e: return "NtCreateJobSet";
+    case 0x007f: return "NtCreateKey";
+    case 0x0080: return "NtCreateKeyedEvent";
+    case 0x0081: return "NtCreateMailslotFile";
+    case 0x0082: return "NtCreateMutant";
+    case 0x0083: return "NtCreateNamedPipeFile";
+    case 0x0084: return "NtCreatePagingFile";
+    case 0x0085: return "NtCreatePort";
+    case 0x0086: return "NtCreateProcess";
+    case 0x0087: return "NtCreateProcessEx";
+    case 0x0088: return "NtCreateProfile";
+    case 0x0089: return "NtCreateSection";
+    case 0x008a: return "NtCreateSemaphore";
+    case 0x008b: return "NtCreateSymbolicLinkObject";
+    case 0x008c: return "NtCreateThread";
+    case 0x008d: return "NtCreateTimer";
+    case 0x008e: return "NtCreateToken";
+    case 0x008f: return "NtCreateWaitablePort";
+    case 0x0090: return "NtCurrentTeb";
+    case 0x0091: return "NtDebugActiveProcess";
+    case 0x0092: return "NtDebugContinue";
+    case 0x0093: return "NtDelayExecution";
+    case 0x0094: return "NtDeleteAtom";
+    case 0x0095: return "NtDeleteBootEntry";
+    case 0x0096: return "NtDeleteFile";
+    case 0x0097: return "NtDeleteKey";
+    case 0x0098: return "NtDeleteObjectAuditAlarm";
+    case 0x0099: return "NtDeleteValueKey";
+    case 0x009a: return "NtDeviceIoControlFile";
+    case 0x009b: return "NtDisplayString";
+    case 0x009c: return "NtDuplicateObject";
+    case 0x009d: return "NtDuplicateToken";
+    case 0x009e: return "NtEnumerateBootEntries";
+    case 0x009f: return "NtEnumerateKey";
+    case 0x00a0: return "NtEnumerateSystemEnvironmentValuesEx";
+    case 0x00a1: return "NtEnumerateValueKey";
+    case 0x00a2: return "NtExtendSection";
+    case 0x00a3: return "NtFilterToken";
+    case 0x00a4: return "NtFindAtom";
+    case 0x00a5: return "NtFlushBuffersFile";
+    case 0x00a6: return "NtFlushInstructionCache";
+    case 0x00a7: return "NtFlushKey";
+    case 0x00a8: return "NtFlushVirtualMemory";
+    case 0x00a9: return "NtFlushWriteBuffer";
+    case 0x00aa: return "NtFreeUserPhysicalPages";
+    case 0x00ab: return "NtFreeVirtualMemory";
+    case 0x00ac: return "NtFsControlFile";
+    case 0x00ad: return "NtGetContextThread";
+    case 0x00ae: return "NtGetDevicePowerState";
+    case 0x00af: return "NtGetPlugPlayEvent";
+    case 0x00b0: return "NtGetWriteWatch";
+    case 0x00b1: return "NtImpersonateAnonymousToken";
+    case 0x00b2: return "NtImpersonateClientOfPort";
+    case 0x00b3: return "NtImpersonateThread";
+    case 0x00b4: return "NtInitializeRegistry";
+    case 0x00b5: return "NtInitiatePowerAction";
+    case 0x00b6: return "NtIsProcessInJob";
+    case 0x00b7: return "NtIsSystemResumeAutomatic";
+    case 0x00b8: return "NtListenPort";
+    case 0x00b9: return "NtLoadDriver";
+    case 0x00bb: return "NtLoadKey";
+    case 0x00ba: return "NtLoadKey2";
+    case 0x00bc: return "NtLockFile";
+    case 0x00bd: return "NtLockProductActivationKeys";
+    case 0x00be: return "NtLockRegistryKey";
+    case 0x00bf: return "NtLockVirtualMemory";
+    case 0x00c0: return "NtMakePermanentObject";
+    case 0x00c1: return "NtMakeTemporaryObject";
+    case 0x00c2: return "NtMapUserPhysicalPages";
+    case 0x00c3: return "NtMapUserPhysicalPagesScatter";
+    case 0x00c4: return "NtMapViewOfSection";
+    case 0x00c5: return "NtModifyBootEntry";
+    case 0x00c6: return "NtNotifyChangeDirectoryFile";
+    case 0x00c7: return "NtNotifyChangeKey";
+    case 0x00c8: return "NtNotifyChangeMultipleKeys";
+    case 0x00c9: return "NtOpenDirectoryObject";
+    case 0x00ca: return "NtOpenEvent";
+    case 0x00cb: return "NtOpenEventPair";
+    case 0x00cc: return "NtOpenFile";
+    case 0x00cd: return "NtOpenIoCompletion";
+    case 0x00ce: return "NtOpenJobObject";
+    case 0x00cf: return "NtOpenKey";
+    case 0x00d0: return "NtOpenKeyedEvent";
+    case 0x00d1: return "NtOpenMutant";
+    case 0x00d2: return "NtOpenObjectAuditAlarm";
+    case 0x00d3: return "NtOpenProcess";
+    case 0x00d4: return "NtOpenProcessToken";
+    case 0x00d5: return "NtOpenProcessTokenEx";
+    case 0x00d6: return "NtOpenSection";
+    case 0x00d7: return "NtOpenSemaphore";
+    case 0x00d8: return "NtOpenSymbolicLinkObject";
+    case 0x00d9: return "NtOpenThread";
+    case 0x00da: return "NtOpenThreadToken";
+    case 0x00db: return "NtOpenThreadTokenEx";
+    case 0x00dc: return "NtOpenTimer";
+    case 0x00dd: return "NtPlugPlayControl";
+    case 0x00de: return "NtPowerInformation";
+    case 0x00df: return "NtPrivilegeCheck";
+    case 0x00e0: return "NtPrivilegeObjectAuditAlarm";
+    case 0x00e1: return "NtPrivilegedServiceAuditAlarm";
+    case 0x00e2: return "NtProtectVirtualMemory";
+    case 0x00e3: return "NtPulseEvent";
+    case 0x00e4: return "NtQueryAttributesFile";
+    case 0x00e5: return "NtQueryBootEntryOrder";
+    case 0x00e6: return "NtQueryBootOptions";
+    case 0x00e7: return "NtQueryDebugFilterState";
+    case 0x00e8: return "NtQueryDefaultLocale";
+    case 0x00e9: return "NtQueryDefaultUILanguage";
+    case 0x00ea: return "NtQueryDirectoryFile";
+    case 0x00eb: return "NtQueryDirectoryObject";
+    case 0x00ec: return "NtQueryEaFile";
+    case 0x00ed: return "NtQueryEvent";
+    case 0x00ee: return "NtQueryFullAttributesFile";
+    case 0x00ef: return "NtQueryInformationAtom";
+    case 0x00f0: return "NtQueryInformationFile";
+    case 0x00f1: return "NtQueryInformationJobObject";
+    case 0x00f2: return "NtQueryInformationPort";
+    case 0x00f3: return "NtQueryInformationProcess";
+    case 0x00f4: return "NtQueryInformationThread";
+    case 0x00f5: return "NtQueryInformationToken";
+    case 0x00f6: return "NtQueryInstallUILanguage";
+    case 0x00f7: return "NtQueryIntervalProfile";
+    case 0x00f8: return "NtQueryIoCompletion";
+    case 0x00f9: return "NtQueryKey";
+    case 0x00fa: return "NtQueryMultipleValueKey";
+    case 0x00fb: return "NtQueryMutant";
+    case 0x00fc: return "NtQueryObject";
+    case 0x00fd: return "NtQueryOpenSubKeys";
+    case 0x00fe: return "NtQueryPerformanceCounter";
+    case 0x00ff: return "NtQueryPortInformationProcess";
+    case 0x0100: return "NtQueryQuotaInformationFile";
+    case 0x0101: return "NtQuerySection";
+    case 0x0102: return "NtQuerySecurityObject";
+    case 0x0103: return "NtQuerySemaphore";
+    case 0x0104: return "NtQuerySymbolicLinkObject";
+    case 0x0105: return "NtQuerySystemEnvironmentValue";
+    case 0x0106: return "NtQuerySystemEnvironmentValueEx";
+    case 0x0107: return "NtQuerySystemInformation";
+    case 0x0108: return "NtQuerySystemTime";
+    case 0x0109: return "NtQueryTimer";
+    case 0x010a: return "NtQueryTimerResolution";
+    case 0x010b: return "NtQueryValueKey";
+    case 0x010c: return "NtQueryVirtualMemory";
+    case 0x010d: return "NtQueryVolumeInformationFile";
+    case 0x010e: return "NtQueueApcThread";
+    case 0x010f: return "NtRaiseException";
+    case 0x0110: return "NtRaiseHardError";
+    case 0x0111: return "NtReadFile";
+    case 0x0112: return "NtReadFileScatter";
+    case 0x0113: return "NtReadRequestData";
+    case 0x0114: return "NtReadVirtualMemory";
+    case 0x0115: return "NtRegisterThreadTerminatePort";
+    case 0x0116: return "NtReleaseKeyedEvent";
+    case 0x0117: return "NtReleaseMutant";
+    case 0x0118: return "NtReleaseSemaphore";
+    case 0x0119: return "NtRemoveIoCompletion";
+    case 0x011a: return "NtRemoveProcessDebug";
+    case 0x011b: return "NtRenameKey";
+    case 0x011c: return "NtReplaceKey";
+    case 0x011d: return "NtReplyPort";
+    case 0x011e: return "NtReplyWaitReceivePort";
+    case 0x011f: return "NtReplyWaitReceivePortEx";
+    case 0x0120: return "NtReplyWaitReplyPort";
+    case 0x0121: return "NtRequestDeviceWakeup";
+    case 0x0122: return "NtRequestPort";
+    case 0x0123: return "NtRequestWaitReplyPort";
+    case 0x0124: return "NtRequestWakeupLatency";
+    case 0x0125: return "NtResetEvent";
+    case 0x0126: return "NtResetWriteWatch";
+    case 0x0127: return "NtRestoreKey";
+    case 0x0128: return "NtResumeProcess";
+    case 0x0129: return "NtResumeThread";
+    case 0x012a: return "NtSaveKey";
+    case 0x012b: return "NtSaveKeyEx";
+    case 0x012c: return "NtSaveMergedKeys";
+    case 0x012d: return "NtSecureConnectPort";
+    case 0x012e: return "NtSetBootEntryOrder";
+    case 0x012f: return "NtSetBootOptions";
+    case 0x0130: return "NtSetContextThread";
+    case 0x0131: return "NtSetDebugFilterState";
+    case 0x0132: return "NtSetDefaultHardErrorPort";
+    case 0x0133: return "NtSetDefaultLocale";
+    case 0x0134: return "NtSetDefaultUILanguage";
+    case 0x0135: return "NtSetEaFile";
+    case 0x0136: return "NtSetEvent";
+    case 0x0137: return "NtSetEventBoostPriority";
+    case 0x0138: return "NtSetHighEventPair";
+    case 0x0139: return "NtSetHighWaitLowEventPair";
+    case 0x013a: return "NtSetInformationDebugObject";
+    case 0x013b: return "NtSetInformationFile";
+    case 0x013c: return "NtSetInformationJobObject";
+    case 0x013d: return "NtSetInformationKey";
+    case 0x013e: return "NtSetInformationObject";
+    case 0x013f: return "NtSetInformationProcess";
+    case 0x0140: return "NtSetInformationThread";
+    case 0x0141: return "NtSetInformationToken";
+    case 0x0142: return "NtSetIntervalProfile";
+    case 0x0143: return "NtSetIoCompletion";
+    case 0x0144: return "NtSetLdtEntries";
+    case 0x0145: return "NtSetLowEventPair";
+    case 0x0146: return "NtSetLowWaitHighEventPair";
+    case 0x0147: return "NtSetQuotaInformationFile";
+    case 0x0148: return "NtSetSecurityObject";
+    case 0x0149: return "NtSetSystemEnvironmentValue";
+    case 0x014a: return "NtSetSystemEnvironmentValueEx";
+    case 0x014b: return "NtSetSystemInformation";
+    case 0x014c: return "NtSetSystemPowerState";
+    case 0x014d: return "NtSetSystemTime";
+    case 0x014e: return "NtSetThreadExecutionState";
+    case 0x014f: return "NtSetTimer";
+    case 0x0150: return "NtSetTimerResolution";
+    case 0x0151: return "NtSetUuidSeed";
+    case 0x0152: return "NtSetValueKey";
+    case 0x0153: return "NtSetVolumeInformationFile";
+    case 0x0154: return "NtShutdownSystem";
+    case 0x0155: return "NtSignalAndWaitForSingleObject";
+    case 0x0156: return "NtStartProfile";
+    case 0x0157: return "NtStopProfile";
+    case 0x0158: return "NtSuspendProcess";
+    case 0x0159: return "NtSuspendThread";
+    case 0x015a: return "NtSystemDebugControl";
+    case 0x015b: return "NtTerminateJobObject";
+    case 0x015c: return "NtTerminateProcess";
+    case 0x015d: return "NtTerminateThread";
+    case 0x015e: return "NtTestAlert";
+    case 0x015f: return "NtTraceEvent";
+    case 0x0160: return "NtTranslateFilePath";
+    case 0x0161: return "NtUnloadDriver";
+    case 0x0162: return "NtUnloadKey";
+    case 0x0163: return "NtUnloadKeyEx";
+    case 0x0164: return "NtUnlockFile";
+    case 0x0165: return "NtUnlockVirtualMemory";
+    case 0x0166: return "NtUnmapViewOfSection";
+    case 0x0167: return "NtVdmControl";
+    case 0x0168: return "NtWaitForDebugEvent";
+    case 0x0169: return "NtWaitForKeyedEvent";
+    case 0x016a: return "NtWaitForMultipleObjects";
+    case 0x016b: return "NtWaitForSingleObject";
+    case 0x016c: return "NtWaitHighEventPair";
+    case 0x016d: return "NtWaitLowEventPair";
+    case 0x016e: return "NtWriteFile";
+    case 0x016f: return "NtWriteFileGather";
+    case 0x0170: return "NtWriteRequestData";
+    case 0x0171: return "NtWriteVirtualMemory";
+    case 0x0172: return "NtYieldExecution";
+    case 0x0173: return "PfxFindPrefix";
+    case 0x0174: return "PfxInitialize";
+    case 0x0175: return "PfxInsertPrefix";
+    case 0x0176: return "PfxRemovePrefix";
+    case 0x0001: return "PropertyLengthAsVariant";
+    case 0x0177: return "RtlAbortRXact";
+    case 0x0178: return "RtlAbsoluteToSelfRelativeSD";
+    case 0x0179: return "RtlAcquirePebLock";
+    case 0x017a: return "RtlAcquireResourceExclusive";
+    case 0x017b: return "RtlAcquireResourceShared";
+    case 0x017c: return "RtlActivateActivationContext";
+    case 0x017d: return "RtlActivateActivationContextEx";
+    case 0x017e: return "RtlActivateActivationContextUnsafeFast";
+    case 0x017f: return "RtlAddAccessAllowedAce";
+    case 0x0180: return "RtlAddAccessAllowedAceEx";
+    case 0x0181: return "RtlAddAccessAllowedObjectAce";
+    case 0x0182: return "RtlAddAccessDeniedAce";
+    case 0x0183: return "RtlAddAccessDeniedAceEx";
+    case 0x0184: return "RtlAddAccessDeniedObjectAce";
+    case 0x0185: return "RtlAddAce";
+    case 0x0186: return "RtlAddActionToRXact";
+    case 0x0187: return "RtlAddAtomToAtomTable";
+    case 0x0188: return "RtlAddAttributeActionToRXact";
+    case 0x0189: return "RtlAddAuditAccessAce";
+    case 0x018a: return "RtlAddAuditAccessAceEx";
+    case 0x018b: return "RtlAddAuditAccessObjectAce";
+    case 0x018c: return "RtlAddCompoundAce";
+    case 0x018d: return "RtlAddRange";
+    case 0x018e: return "RtlAddRefActivationContext";
+    case 0x018f: return "RtlAddRefMemoryStream";
+    case 0x0190: return "RtlAddVectoredExceptionHandler";
+    case 0x0191: return "RtlAddressInSectionTable";
+    case 0x0192: return "RtlAdjustPrivilege";
+    case 0x0193: return "RtlAllocateAndInitializeSid";
+    case 0x0194: return "RtlAllocateHandle";
+    case 0x0195: return "RtlAllocateHeap";
+    case 0x0196: return "RtlAnsiCharToUnicodeChar";
+    case 0x0197: return "RtlAnsiStringToUnicodeSize";
+    case 0x0198: return "RtlAnsiStringToUnicodeString";
+    case 0x0199: return "RtlAppendAsciizToString";
+    case 0x019a: return "RtlAppendPathElement";
+    case 0x019b: return "RtlAppendStringToString";
+    case 0x019c: return "RtlAppendUnicodeStringToString";
+    case 0x019d: return "RtlAppendUnicodeToString";
+    case 0x019e: return "RtlApplicationVerifierStop";
+    case 0x019f: return "RtlApplyRXact";
+    case 0x01a0: return "RtlApplyRXactNoFlush";
+    case 0x01a1: return "RtlAreAllAccessesGranted";
+    case 0x01a2: return "RtlAreAnyAccessesGranted";
+    case 0x01a3: return "RtlAreBitsClear";
+    case 0x01a4: return "RtlAreBitsSet";
+    case 0x01a6: return "RtlAssert";
+    case 0x01a5: return "RtlAssert2";
+    case 0x01a7: return "RtlCancelTimer";
+    case 0x01a8: return "RtlCaptureContext";
+    case 0x01a9: return "RtlCaptureStackBackTrace";
+    case 0x01aa: return "RtlCaptureStackContext";
+    case 0x01ab: return "RtlCharToInteger";
+    case 0x01ac: return "RtlCheckForOrphanedCriticalSections";
+    case 0x01ad: return "RtlCheckProcessParameters";
+    case 0x01ae: return "RtlCheckRegistryKey";
+    case 0x01af: return "RtlClearAllBits";
+    case 0x01b0: return "RtlClearBits";
+    case 0x01b1: return "RtlCloneMemoryStream";
+    case 0x01b2: return "RtlCommitMemoryStream";
+    case 0x01b3: return "RtlCompactHeap";
+    case 0x01b4: return "RtlCompareMemory";
+    case 0x01b5: return "RtlCompareMemoryUlong";
+    case 0x01b6: return "RtlCompareString";
+    case 0x01b7: return "RtlCompareUnicodeString";
+    case 0x01b8: return "RtlCompressBuffer";
+    case 0x01b9: return "RtlComputeCrc32";
+    case 0x01ba: return "RtlComputeImportTableHash";
+    case 0x01bb: return "RtlComputePrivatizedDllName_U";
+    case 0x01bc: return "RtlConsoleMultiByteToUnicodeN";
+    case 0x01bd: return "RtlConvertExclusiveToShared";
+    case 0x01be: return "RtlConvertLongToLargeInteger";
+    case 0x0002: return "RtlConvertPropertyToVariant";
+    case 0x01bf: return "RtlConvertSharedToExclusive";
+    case 0x01c0: return "RtlConvertSidToUnicodeString";
+    case 0x01c1: return "RtlConvertToAutoInheritSecurityObject";
+    case 0x01c2: return "RtlConvertUiListToApiList";
+    case 0x01c3: return "RtlConvertUlongToLargeInteger";
+    case 0x0003: return "RtlConvertVariantToProperty";
+    case 0x01c4: return "RtlCopyLuid";
+    case 0x01c5: return "RtlCopyLuidAndAttributesArray";
+    case 0x01c6: return "RtlCopyMemoryStreamTo";
+    case 0x01c7: return "RtlCopyOutOfProcessMemoryStreamTo";
+    case 0x01c8: return "RtlCopyRangeList";
+    case 0x01c9: return "RtlCopySecurityDescriptor";
+    case 0x01ca: return "RtlCopySid";
+    case 0x01cb: return "RtlCopySidAndAttributesArray";
+    case 0x01cc: return "RtlCopyString";
+    case 0x01cd: return "RtlCopyUnicodeString";
+    case 0x01ce: return "RtlCreateAcl";
+    case 0x01cf: return "RtlCreateActivationContext";
+    case 0x01d0: return "RtlCreateAndSetSD";
+    case 0x01d1: return "RtlCreateAtomTable";
+    case 0x01d2: return "RtlCreateBootStatusDataFile";
+    case 0x01d3: return "RtlCreateEnvironment";
+    case 0x01d4: return "RtlCreateHeap";
+    case 0x01d5: return "RtlCreateProcessParameters";
+    case 0x01d6: return "RtlCreateQueryDebugBuffer";
+    case 0x01d7: return "RtlCreateRegistryKey";
+    case 0x01d8: return "RtlCreateSecurityDescriptor";
+    case 0x01d9: return "RtlCreateSystemVolumeInformationFolder";
+    case 0x01da: return "RtlCreateTagHeap";
+    case 0x01db: return "RtlCreateTimer";
+    case 0x01dc: return "RtlCreateTimerQueue";
+    case 0x01dd: return "RtlCreateUnicodeString";
+    case 0x01de: return "RtlCreateUnicodeStringFromAsciiz";
+    case 0x01df: return "RtlCreateUserProcess";
+    case 0x01e0: return "RtlCreateUserSecurityObject";
+    case 0x01e1: return "RtlCreateUserThread";
+    case 0x01e2: return "RtlCustomCPToUnicodeN";
+    case 0x01e3: return "RtlCutoverTimeToSystemTime";
+    case 0x01e4: return "RtlDeNormalizeProcessParams";
+    case 0x01e5: return "RtlDeactivateActivationContext";
+    case 0x01e6: return "RtlDeactivateActivationContextUnsafeFast";
+    case 0x01e7: return "RtlDebugPrintTimes";
+    case 0x01e8: return "RtlDecodePointer";
+    case 0x01e9: return "RtlDecodeSystemPointer";
+    case 0x01ea: return "RtlDecompressBuffer";
+    case 0x01eb: return "RtlDecompressFragment";
+    case 0x01ec: return "RtlDefaultNpAcl";
+    case 0x01ed: return "RtlDelete";
+    case 0x01ee: return "RtlDeleteAce";
+    case 0x01ef: return "RtlDeleteAtomFromAtomTable";
+    case 0x01f0: return "RtlDeleteCriticalSection";
+    case 0x01f1: return "RtlDeleteElementGenericTable";
+    case 0x01f2: return "RtlDeleteElementGenericTableAvl";
+    case 0x01f3: return "RtlDeleteNoSplay";
+    case 0x01f4: return "RtlDeleteOwnersRanges";
+    case 0x01f5: return "RtlDeleteRange";
+    case 0x01f6: return "RtlDeleteRegistryValue";
+    case 0x01f7: return "RtlDeleteResource";
+    case 0x01f8: return "RtlDeleteSecurityObject";
+    case 0x01f9: return "RtlDeleteTimer";
+    case 0x01fa: return "RtlDeleteTimerQueue";
+    case 0x01fb: return "RtlDeleteTimerQueueEx";
+    case 0x01fc: return "RtlDeregisterWait";
+    case 0x01fd: return "RtlDeregisterWaitEx";
+    case 0x01fe: return "RtlDestroyAtomTable";
+    case 0x01ff: return "RtlDestroyEnvironment";
+    case 0x0200: return "RtlDestroyHandleTable";
+    case 0x0201: return "RtlDestroyHeap";
+    case 0x0202: return "RtlDestroyProcessParameters";
+    case 0x0203: return "RtlDestroyQueryDebugBuffer";
+    case 0x0204: return "RtlDetermineDosPathNameType_U";
+    case 0x0205: return "RtlDllShutdownInProgress";
+    case 0x0206: return "RtlDnsHostNameToComputerName";
+    case 0x0207: return "RtlDoesFileExists_U";
+    case 0x0208: return "RtlDosApplyFileIsolationRedirection_Ustr";
+    case 0x0209: return "RtlDosPathNameToNtPathName_U";
+    case 0x020a: return "RtlDosSearchPath_U";
+    case 0x020b: return "RtlDosSearchPath_Ustr";
+    case 0x020c: return "RtlDowncaseUnicodeChar";
+    case 0x020d: return "RtlDowncaseUnicodeString";
+    case 0x020e: return "RtlDumpResource";
+    case 0x020f: return "RtlDuplicateUnicodeString";
+    case 0x0210: return "RtlEmptyAtomTable";
+    case 0x0211: return "RtlEnableEarlyCriticalSectionEventCreation";
+    case 0x0212: return "RtlEncodePointer";
+    case 0x0213: return "RtlEncodeSystemPointer";
+    case 0x0214: return "RtlEnlargedIntegerMultiply";
+    case 0x0215: return "RtlEnlargedUnsignedDivide";
+    case 0x0216: return "RtlEnlargedUnsignedMultiply";
+    case 0x0217: return "RtlEnterCriticalSection";
+    case 0x0218: return "RtlEnumProcessHeaps";
+    case 0x0219: return "RtlEnumerateGenericTable";
+    case 0x021a: return "RtlEnumerateGenericTableAvl";
+    case 0x021b: return "RtlEnumerateGenericTableLikeADirectory";
+    case 0x021c: return "RtlEnumerateGenericTableWithoutSplaying";
+    case 0x021d: return "RtlEnumerateGenericTableWithoutSplayingAvl";
+    case 0x021e: return "RtlEqualComputerName";
+    case 0x021f: return "RtlEqualDomainName";
+    case 0x0220: return "RtlEqualLuid";
+    case 0x0221: return "RtlEqualPrefixSid";
+    case 0x0222: return "RtlEqualSid";
+    case 0x0223: return "RtlEqualString";
+    case 0x0224: return "RtlEqualUnicodeString";
+    case 0x0225: return "RtlEraseUnicodeString";
+    case 0x0226: return "RtlExitUserThread";
+    case 0x0227: return "RtlExpandEnvironmentStrings_U";
+    case 0x0228: return "RtlExtendHeap";
+    case 0x0229: return "RtlExtendedIntegerMultiply";
+    case 0x022a: return "RtlExtendedLargeIntegerDivide";
+    case 0x022b: return "RtlExtendedMagicDivide";
+    case 0x022c: return "RtlFillMemory";
+    case 0x022d: return "RtlFillMemoryUlong";
+    case 0x022e: return "RtlFinalReleaseOutOfProcessMemoryStream";
+    case 0x022f: return "RtlFindActivationContextSectionGuid";
+    case 0x0230: return "RtlFindActivationContextSectionString";
+    case 0x0231: return "RtlFindCharInUnicodeString";
+    case 0x0232: return "RtlFindClearBits";
+    case 0x0233: return "RtlFindClearBitsAndSet";
+    case 0x0234: return "RtlFindClearRuns";
+    case 0x0235: return "RtlFindLastBackwardRunClear";
+    case 0x0236: return "RtlFindLeastSignificantBit";
+    case 0x0237: return "RtlFindLongestRunClear";
+    case 0x0238: return "RtlFindMessage";
+    case 0x0239: return "RtlFindMostSignificantBit";
+    case 0x023a: return "RtlFindNextForwardRunClear";
+    case 0x023b: return "RtlFindRange";
+    case 0x023c: return "RtlFindSetBits";
+    case 0x023d: return "RtlFindSetBitsAndClear";
+    case 0x023e: return "RtlFirstEntrySList";
+    case 0x023f: return "RtlFirstFreeAce";
+    case 0x0240: return "RtlFlushSecureMemoryCache";
+    case 0x0241: return "RtlFormatCurrentUserKeyPath";
+    case 0x0242: return "RtlFormatMessage";
+    case 0x0243: return "RtlFreeAnsiString";
+    case 0x0244: return "RtlFreeHandle";
+    case 0x0245: return "RtlFreeHeap";
+    case 0x0246: return "RtlFreeOemString";
+    case 0x0247: return "RtlFreeRangeList";
+    case 0x0248: return "RtlFreeSid";
+    case 0x0249: return "RtlFreeThreadActivationContextStack";
+    case 0x024a: return "RtlFreeUnicodeString";
+    case 0x024b: return "RtlFreeUserThreadStack";
+    case 0x024c: return "RtlGUIDFromString";
+    case 0x024d: return "RtlGenerate8dot3Name";
+    case 0x024e: return "RtlGetAce";
+    case 0x024f: return "RtlGetActiveActivationContext";
+    case 0x0250: return "RtlGetCallersAddress";
+    case 0x0251: return "RtlGetCompressionWorkSpaceSize";
+    case 0x0252: return "RtlGetControlSecurityDescriptor";
+    case 0x0253: return "RtlGetCurrentDirectory_U";
+    case 0x0254: return "RtlGetCurrentPeb";
+    case 0x0255: return "RtlGetDaclSecurityDescriptor";
+    case 0x0256: return "RtlGetElementGenericTable";
+    case 0x0257: return "RtlGetElementGenericTableAvl";
+    case 0x0258: return "RtlGetFirstRange";
+    case 0x0259: return "RtlGetFrame";
+    case 0x025a: return "RtlGetFullPathName_U";
+    case 0x025b: return "RtlGetGroupSecurityDescriptor";
+    case 0x025c: return "RtlGetLastNtStatus";
+    case 0x025d: return "RtlGetLastWin32Error";
+    case 0x025e: return "RtlGetLengthWithoutLastFullDosOrNtPathElement";
+    case 0x025f: return "RtlGetLengthWithoutTrailingPathSeperators";
+    case 0x0260: return "RtlGetLongestNtPathLength";
+    case 0x0261: return "RtlGetNativeSystemInformation";
+    case 0x0262: return "RtlGetNextRange";
+    case 0x0263: return "RtlGetNtGlobalFlags";
+    case 0x0264: return "RtlGetNtProductType";
+    case 0x0265: return "RtlGetNtVersionNumbers";
+    case 0x0266: return "RtlGetOwnerSecurityDescriptor";
+    case 0x0267: return "RtlGetProcessHeaps";
+    case 0x0268: return "RtlGetSaclSecurityDescriptor";
+    case 0x0269: return "RtlGetSecurityDescriptorRMControl";
+    case 0x026a: return "RtlGetSetBootStatusData";
+    case 0x026b: return "RtlGetUnloadEventTrace";
+    case 0x026c: return "RtlGetUserInfoHeap";
+    case 0x026d: return "RtlGetVersion";
+    case 0x026e: return "RtlHashUnicodeString";
+    case 0x026f: return "RtlIdentifierAuthoritySid";
+    case 0x0270: return "RtlImageDirectoryEntryToData";
+    case 0x0271: return "RtlImageNtHeader";
+    case 0x0272: return "RtlImageRvaToSection";
+    case 0x0273: return "RtlImageRvaToVa";
+    case 0x0274: return "RtlImpersonateSelf";
+    case 0x0275: return "RtlInitAnsiString";
+    case 0x0276: return "RtlInitCodePageTable";
+    case 0x0277: return "RtlInitMemoryStream";
+    case 0x0278: return "RtlInitNlsTables";
+    case 0x0279: return "RtlInitOutOfProcessMemoryStream";
+    case 0x027a: return "RtlInitString";
+    case 0x027b: return "RtlInitUnicodeString";
+    case 0x027c: return "RtlInitUnicodeStringEx";
+    case 0x027d: return "RtlInitializeAtomPackage";
+    case 0x027e: return "RtlInitializeBitMap";
+    case 0x027f: return "RtlInitializeContext";
+    case 0x0280: return "RtlInitializeCriticalSection";
+    case 0x0281: return "RtlInitializeCriticalSectionAndSpinCount";
+    case 0x0282: return "RtlInitializeGenericTable";
+    case 0x0283: return "RtlInitializeGenericTableAvl";
+    case 0x0284: return "RtlInitializeHandleTable";
+    case 0x0285: return "RtlInitializeRXact";
+    case 0x0286: return "RtlInitializeRangeList";
+    case 0x0287: return "RtlInitializeResource";
+    case 0x0288: return "RtlInitializeSListHead";
+    case 0x0289: return "RtlInitializeSid";
+    case 0x028a: return "RtlInitializeStackTraceDataBase";
+    case 0x028b: return "RtlInsertElementGenericTable";
+    case 0x028c: return "RtlInsertElementGenericTableAvl";
+    case 0x028d: return "RtlInt64ToUnicodeString";
+    case 0x028e: return "RtlIntegerToChar";
+    case 0x028f: return "RtlIntegerToUnicodeString";
+    case 0x0290: return "RtlInterlockedFlushSList";
+    case 0x0291: return "RtlInterlockedPopEntrySList";
+    case 0x0292: return "RtlInterlockedPushEntrySList";
+    case 0x0004: return "RtlInterlockedPushListSList";
+    case 0x0293: return "RtlInvertRangeList";
+    case 0x0294: return "RtlIpv4AddressToStringA";
+    case 0x0295: return "RtlIpv4AddressToStringExA";
+    case 0x0296: return "RtlIpv4AddressToStringExW";
+    case 0x0297: return "RtlIpv4AddressToStringW";
+    case 0x0298: return "RtlIpv4StringToAddressA";
+    case 0x0299: return "RtlIpv4StringToAddressExA";
+    case 0x029a: return "RtlIpv4StringToAddressExW";
+    case 0x029b: return "RtlIpv4StringToAddressW";
+    case 0x029c: return "RtlIpv6AddressToStringA";
+    case 0x029d: return "RtlIpv6AddressToStringExA";
+    case 0x029e: return "RtlIpv6AddressToStringExW";
+    case 0x029f: return "RtlIpv6AddressToStringW";
+    case 0x02a0: return "RtlIpv6StringToAddressA";
+    case 0x02a1: return "RtlIpv6StringToAddressExA";
+    case 0x02a2: return "RtlIpv6StringToAddressExW";
+    case 0x02a3: return "RtlIpv6StringToAddressW";
+    case 0x02a4: return "RtlIsActivationContextActive";
+    case 0x02a5: return "RtlIsDosDeviceName_U";
+    case 0x02a6: return "RtlIsGenericTableEmpty";
+    case 0x02a7: return "RtlIsGenericTableEmptyAvl";
+    case 0x02a8: return "RtlIsNameLegalDOS8Dot3";
+    case 0x02a9: return "RtlIsRangeAvailable";
+    case 0x02aa: return "RtlIsTextUnicode";
+    case 0x02ab: return "RtlIsThreadWithinLoaderCallout";
+    case 0x02ac: return "RtlIsValidHandle";
+    case 0x02ad: return "RtlIsValidIndexHandle";
+    case 0x02ae: return "RtlLargeIntegerAdd";
+    case 0x02af: return "RtlLargeIntegerArithmeticShift";
+    case 0x02b0: return "RtlLargeIntegerDivide";
+    case 0x02b1: return "RtlLargeIntegerNegate";
+    case 0x02b2: return "RtlLargeIntegerShiftLeft";
+    case 0x02b3: return "RtlLargeIntegerShiftRight";
+    case 0x02b4: return "RtlLargeIntegerSubtract";
+    case 0x02b5: return "RtlLargeIntegerToChar";
+    case 0x02b6: return "RtlLeaveCriticalSection";
+    case 0x02b7: return "RtlLengthRequiredSid";
+    case 0x02b8: return "RtlLengthSecurityDescriptor";
+    case 0x02b9: return "RtlLengthSid";
+    case 0x02ba: return "RtlLocalTimeToSystemTime";
+    case 0x02bb: return "RtlLockBootStatusData";
+    case 0x02bc: return "RtlLockHeap";
+    case 0x02bd: return "RtlLockMemoryStreamRegion";
+    case 0x02be: return "RtlLogStackBackTrace";
+    case 0x02bf: return "RtlLookupAtomInAtomTable";
+    case 0x02c0: return "RtlLookupElementGenericTable";
+    case 0x02c1: return "RtlLookupElementGenericTableAvl";
+    case 0x02c2: return "RtlMakeSelfRelativeSD";
+    case 0x02c3: return "RtlMapGenericMask";
+    case 0x02c4: return "RtlMapSecurityErrorToNtStatus";
+    case 0x02c5: return "RtlMergeRangeLists";
+    case 0x02c6: return "RtlMoveMemory";
+    case 0x02c7: return "RtlMultiAppendUnicodeStringBuffer";
+    case 0x02c8: return "RtlMultiByteToUnicodeN";
+    case 0x02c9: return "RtlMultiByteToUnicodeSize";
+    case 0x02ca: return "RtlNewInstanceSecurityObject";
+    case 0x02cb: return "RtlNewSecurityGrantedAccess";
+    case 0x02cc: return "RtlNewSecurityObject";
+    case 0x02cd: return "RtlNewSecurityObjectEx";
+    case 0x02ce: return "RtlNewSecurityObjectWithMultipleInheritance";
+    case 0x02cf: return "RtlNormalizeProcessParams";
+    case 0x02d0: return "RtlNtPathNameToDosPathName";
+    case 0x02d1: return "RtlNtStatusToDosError";
+    case 0x02d2: return "RtlNtStatusToDosErrorNoTeb";
+    case 0x02d3: return "RtlNumberGenericTableElements";
+    case 0x02d4: return "RtlNumberGenericTableElementsAvl";
+    case 0x02d5: return "RtlNumberOfClearBits";
+    case 0x02d6: return "RtlNumberOfSetBits";
+    case 0x02d7: return "RtlOemStringToUnicodeSize";
+    case 0x02d8: return "RtlOemStringToUnicodeString";
+    case 0x02d9: return "RtlOemToUnicodeN";
+    case 0x02da: return "RtlOpenCurrentUser";
+    case 0x02db: return "RtlPcToFileHeader";
+    case 0x02dc: return "RtlPinAtomInAtomTable";
+    case 0x02dd: return "RtlPopFrame";
+    case 0x02de: return "RtlPrefixString";
+    case 0x02df: return "RtlPrefixUnicodeString";
+    case 0x02e0: return "RtlProtectHeap";
+    case 0x02e1: return "RtlPushFrame";
+    case 0x02e2: return "RtlQueryAtomInAtomTable";
+    case 0x02e3: return "RtlQueryDepthSList";
+    case 0x02e4: return "RtlQueryEnvironmentVariable_U";
+    case 0x02e5: return "RtlQueryHeapInformation";
+    case 0x02e6: return "RtlQueryInformationAcl";
+    case 0x02e7: return "RtlQueryInformationActivationContext";
+    case 0x02e8: return "RtlQueryInformationActiveActivationContext";
+    case 0x02e9: return "RtlQueryInterfaceMemoryStream";
+    case 0x02ea: return "RtlQueryProcessBackTraceInformation";
+    case 0x02eb: return "RtlQueryProcessDebugInformation";
+    case 0x02ec: return "RtlQueryProcessHeapInformation";
+    case 0x02ed: return "RtlQueryProcessLockInformation";
+    case 0x02ee: return "RtlQueryRegistryValues";
+    case 0x02ef: return "RtlQuerySecurityObject";
+    case 0x02f0: return "RtlQueryTagHeap";
+    case 0x02f1: return "RtlQueryTimeZoneInformation";
+    case 0x02f2: return "RtlQueueApcWow64Thread";
+    case 0x02f3: return "RtlQueueWorkItem";
+    case 0x02f4: return "RtlRaiseException";
+    case 0x02f5: return "RtlRaiseStatus";
+    case 0x02f6: return "RtlRandom";
+    case 0x02f7: return "RtlRandomEx";
+    case 0x02f8: return "RtlReAllocateHeap";
+    case 0x02f9: return "RtlReadMemoryStream";
+    case 0x02fa: return "RtlReadOutOfProcessMemoryStream";
+    case 0x02fb: return "RtlRealPredecessor";
+    case 0x02fc: return "RtlRealSuccessor";
+    case 0x02fd: return "RtlRegisterSecureMemoryCacheCallback";
+    case 0x02fe: return "RtlRegisterWait";
+    case 0x02ff: return "RtlReleaseActivationContext";
+    case 0x0300: return "RtlReleaseMemoryStream";
+    case 0x0301: return "RtlReleasePebLock";
+    case 0x0302: return "RtlReleaseResource";
+    case 0x0303: return "RtlRemoteCall";
+    case 0x0304: return "RtlRemoveVectoredExceptionHandler";
+    case 0x0305: return "RtlResetRtlTranslations";
+    case 0x0306: return "RtlRestoreLastWin32Error";
+    case 0x0307: return "RtlRevertMemoryStream";
+    case 0x0308: return "RtlRunDecodeUnicodeString";
+    case 0x0309: return "RtlRunEncodeUnicodeString";
+    case 0x030a: return "RtlSecondsSince1970ToTime";
+    case 0x030b: return "RtlSecondsSince1980ToTime";
+    case 0x030c: return "RtlSeekMemoryStream";
+    case 0x030e: return "RtlSelfRelativeToAbsoluteSD";
+    case 0x030d: return "RtlSelfRelativeToAbsoluteSD2";
+    case 0x030f: return "RtlSetAllBits";
+    case 0x0310: return "RtlSetAttributesSecurityDescriptor";
+    case 0x0311: return "RtlSetBits";
+    case 0x0312: return "RtlSetControlSecurityDescriptor";
+    case 0x0313: return "RtlSetCriticalSectionSpinCount";
+    case 0x0314: return "RtlSetCurrentDirectory_U";
+    case 0x0315: return "RtlSetCurrentEnvironment";
+    case 0x0316: return "RtlSetDaclSecurityDescriptor";
+    case 0x0317: return "RtlSetEnvironmentVariable";
+    case 0x0318: return "RtlSetGroupSecurityDescriptor";
+    case 0x0319: return "RtlSetHeapInformation";
+    case 0x031a: return "RtlSetInformationAcl";
+    case 0x031b: return "RtlSetIoCompletionCallback";
+    case 0x031c: return "RtlSetLastWin32Error";
+    case 0x031d: return "RtlSetLastWin32ErrorAndNtStatusFromNtStatus";
+    case 0x031e: return "RtlSetMemoryStreamSize";
+    case 0x031f: return "RtlSetOwnerSecurityDescriptor";
+    case 0x0320: return "RtlSetProcessIsCritical";
+    case 0x0321: return "RtlSetSaclSecurityDescriptor";
+    case 0x0322: return "RtlSetSecurityDescriptorRMControl";
+    case 0x0323: return "RtlSetSecurityObject";
+    case 0x0324: return "RtlSetSecurityObjectEx";
+    case 0x0325: return "RtlSetThreadIsCritical";
+    case 0x0326: return "RtlSetThreadPoolStartFunc";
+    case 0x0327: return "RtlSetTimeZoneInformation";
+    case 0x0328: return "RtlSetTimer";
+    case 0x0329: return "RtlSetUnicodeCallouts";
+    case 0x032a: return "RtlSetUserFlagsHeap";
+    case 0x032b: return "RtlSetUserValueHeap";
+    case 0x032c: return "RtlSizeHeap";
+    case 0x032d: return "RtlSplay";
+    case 0x032e: return "RtlStartRXact";
+    case 0x032f: return "RtlStatMemoryStream";
+    case 0x0330: return "RtlStringFromGUID";
+    case 0x0331: return "RtlSubAuthorityCountSid";
+    case 0x0332: return "RtlSubAuthoritySid";
+    case 0x0333: return "RtlSubtreePredecessor";
+    case 0x0334: return "RtlSubtreeSuccessor";
+    case 0x0335: return "RtlSystemTimeToLocalTime";
+    case 0x0336: return "RtlTimeFieldsToTime";
+    case 0x0337: return "RtlTimeToElapsedTimeFields";
+    case 0x0338: return "RtlTimeToSecondsSince1970";
+    case 0x0339: return "RtlTimeToSecondsSince1980";
+    case 0x033a: return "RtlTimeToTimeFields";
+    case 0x033b: return "RtlTraceDatabaseAdd";
+    case 0x033c: return "RtlTraceDatabaseCreate";
+    case 0x033d: return "RtlTraceDatabaseDestroy";
+    case 0x033e: return "RtlTraceDatabaseEnumerate";
+    case 0x033f: return "RtlTraceDatabaseFind";
+    case 0x0340: return "RtlTraceDatabaseLock";
+    case 0x0341: return "RtlTraceDatabaseUnlock";
+    case 0x0342: return "RtlTraceDatabaseValidate";
+    case 0x0343: return "RtlTryEnterCriticalSection";
+    case 0x0005: return "RtlUlongByteSwap";
+    case 0x0006: return "RtlUlonglongByteSwap";
+    case 0x0345: return "RtlUnhandledExceptionFilter";
+    case 0x0344: return "RtlUnhandledExceptionFilter2";
+    case 0x0346: return "RtlUnicodeStringToAnsiSize";
+    case 0x0347: return "RtlUnicodeStringToAnsiString";
+    case 0x0348: return "RtlUnicodeStringToCountedOemString";
+    case 0x0349: return "RtlUnicodeStringToInteger";
+    case 0x034a: return "RtlUnicodeStringToOemSize";
+    case 0x034b: return "RtlUnicodeStringToOemString";
+    case 0x034c: return "RtlUnicodeToCustomCPN";
+    case 0x034d: return "RtlUnicodeToMultiByteN";
+    case 0x034e: return "RtlUnicodeToMultiByteSize";
+    case 0x034f: return "RtlUnicodeToOemN";
+    case 0x0350: return "RtlUniform";
+    case 0x0351: return "RtlUnlockBootStatusData";
+    case 0x0352: return "RtlUnlockHeap";
+    case 0x0353: return "RtlUnlockMemoryStreamRegion";
+    case 0x0354: return "RtlUnwind";
+    case 0x0355: return "RtlUpcaseUnicodeChar";
+    case 0x0356: return "RtlUpcaseUnicodeString";
+    case 0x0357: return "RtlUpcaseUnicodeStringToAnsiString";
+    case 0x0358: return "RtlUpcaseUnicodeStringToCountedOemString";
+    case 0x0359: return "RtlUpcaseUnicodeStringToOemString";
+    case 0x035a: return "RtlUpcaseUnicodeToCustomCPN";
+    case 0x035b: return "RtlUpcaseUnicodeToMultiByteN";
+    case 0x035c: return "RtlUpcaseUnicodeToOemN";
+    case 0x035d: return "RtlUpdateTimer";
+    case 0x035e: return "RtlUpperChar";
+    case 0x035f: return "RtlUpperString";
+    case 0x0360: return "RtlUsageHeap";
+    case 0x0007: return "RtlUshortByteSwap";
+    case 0x0361: return "RtlValidAcl";
+    case 0x0362: return "RtlValidRelativeSecurityDescriptor";
+    case 0x0363: return "RtlValidSecurityDescriptor";
+    case 0x0364: return "RtlValidSid";
+    case 0x0365: return "RtlValidateHeap";
+    case 0x0366: return "RtlValidateProcessHeaps";
+    case 0x0367: return "RtlValidateUnicodeString";
+    case 0x0368: return "RtlVerifyVersionInfo";
+    case 0x0369: return "RtlWalkFrameChain";
+    case 0x036a: return "RtlWalkHeap";
+    case 0x036b: return "RtlWriteMemoryStream";
+    case 0x036c: return "RtlWriteRegistryValue";
+    case 0x036d: return "RtlZeroHeap";
+    case 0x036e: return "RtlZeroMemory";
+    case 0x036f: return "RtlZombifyActivationContext";
+    case 0x0370: return "RtlpApplyLengthFunction";
+    case 0x0371: return "RtlpEnsureBufferSize";
+    case 0x0372: return "RtlpNotOwnerCriticalSection";
+    case 0x0373: return "RtlpNtCreateKey";
+    case 0x0374: return "RtlpNtEnumerateSubKey";
+    case 0x0375: return "RtlpNtMakeTemporaryKey";
+    case 0x0376: return "RtlpNtOpenKey";
+    case 0x0377: return "RtlpNtQueryValueKey";
+    case 0x0378: return "RtlpNtSetValueKey";
+    case 0x0379: return "RtlpUnWaitCriticalSection";
+    case 0x037a: return "RtlpWaitForCriticalSection";
+    case 0x037b: return "RtlxAnsiStringToUnicodeSize";
+    case 0x037c: return "RtlxOemStringToUnicodeSize";
+    case 0x037d: return "RtlxUnicodeStringToAnsiSize";
+    case 0x037e: return "RtlxUnicodeStringToOemSize";
+    case 0x037f: return "VerSetConditionMask";
+    case 0x0380: return "ZwAcceptConnectPort";
+    case 0x0381: return "ZwAccessCheck";
+    case 0x0382: return "ZwAccessCheckAndAuditAlarm";
+    case 0x0383: return "ZwAccessCheckByType";
+    case 0x0384: return "ZwAccessCheckByTypeAndAuditAlarm";
+    case 0x0385: return "ZwAccessCheckByTypeResultList";
+    case 0x0386: return "ZwAccessCheckByTypeResultListAndAuditAlarm";
+    case 0x0387: return "ZwAccessCheckByTypeResultListAndAuditAlarmByHandle";
+    case 0x0388: return "ZwAddAtom";
+    case 0x0389: return "ZwAddBootEntry";
+    case 0x038a: return "ZwAdjustGroupsToken";
+    case 0x038b: return "ZwAdjustPrivilegesToken";
+    case 0x038c: return "ZwAlertResumeThread";
+    case 0x038d: return "ZwAlertThread";
+    case 0x038e: return "ZwAllocateLocallyUniqueId";
+    case 0x038f: return "ZwAllocateUserPhysicalPages";
+    case 0x0390: return "ZwAllocateUuids";
+    case 0x0391: return "ZwAllocateVirtualMemory";
+    case 0x0392: return "ZwAreMappedFilesTheSame";
+    case 0x0393: return "ZwAssignProcessToJobObject";
+    case 0x0394: return "ZwCallbackReturn";
+    case 0x0395: return "ZwCancelDeviceWakeupRequest";
+    case 0x0396: return "ZwCancelIoFile";
+    case 0x0397: return "ZwCancelTimer";
+    case 0x0398: return "ZwClearEvent";
+    case 0x0399: return "ZwClose";
+    case 0x039a: return "ZwCloseObjectAuditAlarm";
+    case 0x039b: return "ZwCompactKeys";
+    case 0x039c: return "ZwCompareTokens";
+    case 0x039d: return "ZwCompleteConnectPort";
+    case 0x039e: return "ZwCompressKey";
+    case 0x039f: return "ZwConnectPort";
+    case 0x03a0: return "ZwContinue";
+    case 0x03a1: return "ZwCreateDebugObject";
+    case 0x03a2: return "ZwCreateDirectoryObject";
+    case 0x03a3: return "ZwCreateEvent";
+    case 0x03a4: return "ZwCreateEventPair";
+    case 0x03a5: return "ZwCreateFile";
+    case 0x03a6: return "ZwCreateIoCompletion";
+    case 0x03a7: return "ZwCreateJobObject";
+    case 0x03a8: return "ZwCreateJobSet";
+    case 0x03a9: return "ZwCreateKey";
+    case 0x03aa: return "ZwCreateKeyedEvent";
+    case 0x03ab: return "ZwCreateMailslotFile";
+    case 0x03ac: return "ZwCreateMutant";
+    case 0x03ad: return "ZwCreateNamedPipeFile";
+    case 0x03ae: return "ZwCreatePagingFile";
+    case 0x03af: return "ZwCreatePort";
+    case 0x03b0: return "ZwCreateProcess";
+    case 0x03b1: return "ZwCreateProcessEx";
+    case 0x03b2: return "ZwCreateProfile";
+    case 0x03b3: return "ZwCreateSection";
+    case 0x03b4: return "ZwCreateSemaphore";
+    case 0x03b5: return "ZwCreateSymbolicLinkObject";
+    case 0x03b6: return "ZwCreateThread";
+    case 0x03b7: return "ZwCreateTimer";
+    case 0x03b8: return "ZwCreateToken";
+    case 0x03b9: return "ZwCreateWaitablePort";
+    case 0x03ba: return "ZwDebugActiveProcess";
+    case 0x03bb: return "ZwDebugContinue";
+    case 0x03bc: return "ZwDelayExecution";
+    case 0x03bd: return "ZwDeleteAtom";
+    case 0x03be: return "ZwDeleteBootEntry";
+    case 0x03bf: return "ZwDeleteFile";
+    case 0x03c0: return "ZwDeleteKey";
+    case 0x03c1: return "ZwDeleteObjectAuditAlarm";
+    case 0x03c2: return "ZwDeleteValueKey";
+    case 0x03c3: return "ZwDeviceIoControlFile";
+    case 0x03c4: return "ZwDisplayString";
+    case 0x03c5: return "ZwDuplicateObject";
+    case 0x03c6: return "ZwDuplicateToken";
+    case 0x03c7: return "ZwEnumerateBootEntries";
+    case 0x03c8: return "ZwEnumerateKey";
+    case 0x03c9: return "ZwEnumerateSystemEnvironmentValuesEx";
+    case 0x03ca: return "ZwEnumerateValueKey";
+    case 0x03cb: return "ZwExtendSection";
+    case 0x03cc: return "ZwFilterToken";
+    case 0x03cd: return "ZwFindAtom";
+    case 0x03ce: return "ZwFlushBuffersFile";
+    case 0x03cf: return "ZwFlushInstructionCache";
+    case 0x03d0: return "ZwFlushKey";
+    case 0x03d1: return "ZwFlushVirtualMemory";
+    case 0x03d2: return "ZwFlushWriteBuffer";
+    case 0x03d3: return "ZwFreeUserPhysicalPages";
+    case 0x03d4: return "ZwFreeVirtualMemory";
+    case 0x03d5: return "ZwFsControlFile";
+    case 0x03d6: return "ZwGetContextThread";
+    case 0x03d7: return "ZwGetDevicePowerState";
+    case 0x03d8: return "ZwGetPlugPlayEvent";
+    case 0x03d9: return "ZwGetWriteWatch";
+    case 0x03da: return "ZwImpersonateAnonymousToken";
+    case 0x03db: return "ZwImpersonateClientOfPort";
+    case 0x03dc: return "ZwImpersonateThread";
+    case 0x03dd: return "ZwInitializeRegistry";
+    case 0x03de: return "ZwInitiatePowerAction";
+    case 0x03df: return "ZwIsProcessInJob";
+    case 0x03e0: return "ZwIsSystemResumeAutomatic";
+    case 0x03e1: return "ZwListenPort";
+    case 0x03e2: return "ZwLoadDriver";
+    case 0x03e4: return "ZwLoadKey";
+    case 0x03e3: return "ZwLoadKey2";
+    case 0x03e5: return "ZwLockFile";
+    case 0x03e6: return "ZwLockProductActivationKeys";
+    case 0x03e7: return "ZwLockRegistryKey";
+    case 0x03e8: return "ZwLockVirtualMemory";
+    case 0x03e9: return "ZwMakePermanentObject";
+    case 0x03ea: return "ZwMakeTemporaryObject";
+    case 0x03eb: return "ZwMapUserPhysicalPages";
+    case 0x03ec: return "ZwMapUserPhysicalPagesScatter";
+    case 0x03ed: return "ZwMapViewOfSection";
+    case 0x03ee: return "ZwModifyBootEntry";
+    case 0x03ef: return "ZwNotifyChangeDirectoryFile";
+    case 0x03f0: return "ZwNotifyChangeKey";
+    case 0x03f1: return "ZwNotifyChangeMultipleKeys";
+    case 0x03f2: return "ZwOpenDirectoryObject";
+    case 0x03f3: return "ZwOpenEvent";
+    case 0x03f4: return "ZwOpenEventPair";
+    case 0x03f5: return "ZwOpenFile";
+    case 0x03f6: return "ZwOpenIoCompletion";
+    case 0x03f7: return "ZwOpenJobObject";
+    case 0x03f8: return "ZwOpenKey";
+    case 0x03f9: return "ZwOpenKeyedEvent";
+    case 0x03fa: return "ZwOpenMutant";
+    case 0x03fb: return "ZwOpenObjectAuditAlarm";
+    case 0x03fc: return "ZwOpenProcess";
+    case 0x03fd: return "ZwOpenProcessToken";
+    case 0x03fe: return "ZwOpenProcessTokenEx";
+    case 0x03ff: return "ZwOpenSection";
+    case 0x0400: return "ZwOpenSemaphore";
+    case 0x0401: return "ZwOpenSymbolicLinkObject";
+    case 0x0402: return "ZwOpenThread";
+    case 0x0403: return "ZwOpenThreadToken";
+    case 0x0404: return "ZwOpenThreadTokenEx";
+    case 0x0405: return "ZwOpenTimer";
+    case 0x0406: return "ZwPlugPlayControl";
+    case 0x0407: return "ZwPowerInformation";
+    case 0x0408: return "ZwPrivilegeCheck";
+    case 0x0409: return "ZwPrivilegeObjectAuditAlarm";
+    case 0x040a: return "ZwPrivilegedServiceAuditAlarm";
+    case 0x040b: return "ZwProtectVirtualMemory";
+    case 0x040c: return "ZwPulseEvent";
+    case 0x040d: return "ZwQueryAttributesFile";
+    case 0x040e: return "ZwQueryBootEntryOrder";
+    case 0x040f: return "ZwQueryBootOptions";
+    case 0x0410: return "ZwQueryDebugFilterState";
+    case 0x0411: return "ZwQueryDefaultLocale";
+    case 0x0412: return "ZwQueryDefaultUILanguage";
+    case 0x0413: return "ZwQueryDirectoryFile";
+    case 0x0414: return "ZwQueryDirectoryObject";
+    case 0x0415: return "ZwQueryEaFile";
+    case 0x0416: return "ZwQueryEvent";
+    case 0x0417: return "ZwQueryFullAttributesFile";
+    case 0x0418: return "ZwQueryInformationAtom";
+    case 0x0419: return "ZwQueryInformationFile";
+    case 0x041a: return "ZwQueryInformationJobObject";
+    case 0x041b: return "ZwQueryInformationPort";
+    case 0x041c: return "ZwQueryInformationProcess";
+    case 0x041d: return "ZwQueryInformationThread";
+    case 0x041e: return "ZwQueryInformationToken";
+    case 0x041f: return "ZwQueryInstallUILanguage";
+    case 0x0420: return "ZwQueryIntervalProfile";
+    case 0x0421: return "ZwQueryIoCompletion";
+    case 0x0422: return "ZwQueryKey";
+    case 0x0423: return "ZwQueryMultipleValueKey";
+    case 0x0424: return "ZwQueryMutant";
+    case 0x0425: return "ZwQueryObject";
+    case 0x0426: return "ZwQueryOpenSubKeys";
+    case 0x0427: return "ZwQueryPerformanceCounter";
+    case 0x0428: return "ZwQueryPortInformationProcess";
+    case 0x0429: return "ZwQueryQuotaInformationFile";
+    case 0x042a: return "ZwQuerySection";
+    case 0x042b: return "ZwQuerySecurityObject";
+    case 0x042c: return "ZwQuerySemaphore";
+    case 0x042d: return "ZwQuerySymbolicLinkObject";
+    case 0x042e: return "ZwQuerySystemEnvironmentValue";
+    case 0x042f: return "ZwQuerySystemEnvironmentValueEx";
+    case 0x0430: return "ZwQuerySystemInformation";
+    case 0x0431: return "ZwQuerySystemTime";
+    case 0x0432: return "ZwQueryTimer";
+    case 0x0433: return "ZwQueryTimerResolution";
+    case 0x0434: return "ZwQueryValueKey";
+    case 0x0435: return "ZwQueryVirtualMemory";
+    case 0x0436: return "ZwQueryVolumeInformationFile";
+    case 0x0437: return "ZwQueueApcThread";
+    case 0x0438: return "ZwRaiseException";
+    case 0x0439: return "ZwRaiseHardError";
+    case 0x043a: return "ZwReadFile";
+    case 0x043b: return "ZwReadFileScatter";
+    case 0x043c: return "ZwReadRequestData";
+    case 0x043d: return "ZwReadVirtualMemory";
+    case 0x043e: return "ZwRegisterThreadTerminatePort";
+    case 0x043f: return "ZwReleaseKeyedEvent";
+    case 0x0440: return "ZwReleaseMutant";
+    case 0x0441: return "ZwReleaseSemaphore";
+    case 0x0442: return "ZwRemoveIoCompletion";
+    case 0x0443: return "ZwRemoveProcessDebug";
+    case 0x0444: return "ZwRenameKey";
+    case 0x0445: return "ZwReplaceKey";
+    case 0x0446: return "ZwReplyPort";
+    case 0x0447: return "ZwReplyWaitReceivePort";
+    case 0x0448: return "ZwReplyWaitReceivePortEx";
+    case 0x0449: return "ZwReplyWaitReplyPort";
+    case 0x044a: return "ZwRequestDeviceWakeup";
+    case 0x044b: return "ZwRequestPort";
+    case 0x044c: return "ZwRequestWaitReplyPort";
+    case 0x044d: return "ZwRequestWakeupLatency";
+    case 0x044e: return "ZwResetEvent";
+    case 0x044f: return "ZwResetWriteWatch";
+    case 0x0450: return "ZwRestoreKey";
+    case 0x0451: return "ZwResumeProcess";
+    case 0x0452: return "ZwResumeThread";
+    case 0x0453: return "ZwSaveKey";
+    case 0x0454: return "ZwSaveKeyEx";
+    case 0x0455: return "ZwSaveMergedKeys";
+    case 0x0456: return "ZwSecureConnectPort";
+    case 0x0457: return "ZwSetBootEntryOrder";
+    case 0x0458: return "ZwSetBootOptions";
+    case 0x0459: return "ZwSetContextThread";
+    case 0x045a: return "ZwSetDebugFilterState";
+    case 0x045b: return "ZwSetDefaultHardErrorPort";
+    case 0x045c: return "ZwSetDefaultLocale";
+    case 0x045d: return "ZwSetDefaultUILanguage";
+    case 0x045e: return "ZwSetEaFile";
+    case 0x045f: return "ZwSetEvent";
+    case 0x0460: return "ZwSetEventBoostPriority";
+    case 0x0461: return "ZwSetHighEventPair";
+    case 0x0462: return "ZwSetHighWaitLowEventPair";
+    case 0x0463: return "ZwSetInformationDebugObject";
+    case 0x0464: return "ZwSetInformationFile";
+    case 0x0465: return "ZwSetInformationJobObject";
+    case 0x0466: return "ZwSetInformationKey";
+    case 0x0467: return "ZwSetInformationObject";
+    case 0x0468: return "ZwSetInformationProcess";
+    case 0x0469: return "ZwSetInformationThread";
+    case 0x046a: return "ZwSetInformationToken";
+    case 0x046b: return "ZwSetIntervalProfile";
+    case 0x046c: return "ZwSetIoCompletion";
+    case 0x046d: return "ZwSetLdtEntries";
+    case 0x046e: return "ZwSetLowEventPair";
+    case 0x046f: return "ZwSetLowWaitHighEventPair";
+    case 0x0470: return "ZwSetQuotaInformationFile";
+    case 0x0471: return "ZwSetSecurityObject";
+    case 0x0472: return "ZwSetSystemEnvironmentValue";
+    case 0x0473: return "ZwSetSystemEnvironmentValueEx";
+    case 0x0474: return "ZwSetSystemInformation";
+    case 0x0475: return "ZwSetSystemPowerState";
+    case 0x0476: return "ZwSetSystemTime";
+    case 0x0477: return "ZwSetThreadExecutionState";
+    case 0x0478: return "ZwSetTimer";
+    case 0x0479: return "ZwSetTimerResolution";
+    case 0x047a: return "ZwSetUuidSeed";
+    case 0x047b: return "ZwSetValueKey";
+    case 0x047c: return "ZwSetVolumeInformationFile";
+    case 0x047d: return "ZwShutdownSystem";
+    case 0x047e: return "ZwSignalAndWaitForSingleObject";
+    case 0x047f: return "ZwStartProfile";
+    case 0x0480: return "ZwStopProfile";
+    case 0x0481: return "ZwSuspendProcess";
+    case 0x0482: return "ZwSuspendThread";
+    case 0x0483: return "ZwSystemDebugControl";
+    case 0x0484: return "ZwTerminateJobObject";
+    case 0x0485: return "ZwTerminateProcess";
+    case 0x0486: return "ZwTerminateThread";
+    case 0x0487: return "ZwTestAlert";
+    case 0x0488: return "ZwTraceEvent";
+    case 0x0489: return "ZwTranslateFilePath";
+    case 0x048a: return "ZwUnloadDriver";
+    case 0x048b: return "ZwUnloadKey";
+    case 0x048c: return "ZwUnloadKeyEx";
+    case 0x048d: return "ZwUnlockFile";
+    case 0x048e: return "ZwUnlockVirtualMemory";
+    case 0x048f: return "ZwUnmapViewOfSection";
+    case 0x0490: return "ZwVdmControl";
+    case 0x0491: return "ZwWaitForDebugEvent";
+    case 0x0492: return "ZwWaitForKeyedEvent";
+    case 0x0493: return "ZwWaitForMultipleObjects";
+    case 0x0494: return "ZwWaitForSingleObject";
+    case 0x0495: return "ZwWaitHighEventPair";
+    case 0x0496: return "ZwWaitLowEventPair";
+    case 0x0497: return "ZwWriteFile";
+    case 0x0498: return "ZwWriteFileGather";
+    case 0x0499: return "ZwWriteRequestData";
+    case 0x049a: return "ZwWriteVirtualMemory";
+    case 0x049b: return "ZwYieldExecution";
+    case 0x049c: return "_CIcos";
+    case 0x049d: return "_CIlog";
+    case 0x049e: return "_CIpow";
+    case 0x049f: return "_CIsin";
+    case 0x04a0: return "_CIsqrt";
+    case 0x04a1: return "__isascii";
+    case 0x04a2: return "__iscsym";
+    case 0x04a3: return "__iscsymf";
+    case 0x04a4: return "__toascii";
+    case 0x04a5: return "_alldiv";
+    case 0x04a6: return "_alldvrm";
+    case 0x04a7: return "_allmul";
+    case 0x04a8: return "_alloca_probe";
+    case 0x04a9: return "_allrem";
+    case 0x04aa: return "_allshl";
+    case 0x04ab: return "_allshr";
+    case 0x04ac: return "_atoi64";
+    case 0x04ad: return "_aulldiv";
+    case 0x04ae: return "_aulldvrm";
+    case 0x04af: return "_aullrem";
+    case 0x04b0: return "_aullshr";
+    case 0x04b1: return "_chkstk";
+    case 0x04b2: return "_fltused";
+    case 0x04b3: return "_ftol";
+    case 0x04b4: return "_i64toa";
+    case 0x04b5: return "_i64tow";
+    case 0x04b6: return "_itoa";
+    case 0x04b7: return "_itow";
+    case 0x04b8: return "_lfind";
+    case 0x04b9: return "_ltoa";
+    case 0x04ba: return "_ltow";
+    case 0x04bb: return "_memccpy";
+    case 0x04bc: return "_memicmp";
+    case 0x04bd: return "_snprintf";
+    case 0x04be: return "_snwprintf";
+    case 0x04bf: return "_splitpath";
+    case 0x04c0: return "_strcmpi";
+    case 0x04c1: return "_stricmp";
+    case 0x04c2: return "_strlwr";
+    case 0x04c3: return "_strnicmp";
+    case 0x04c4: return "_strupr";
+    case 0x04c5: return "_tolower";
+    case 0x04c6: return "_toupper";
+    case 0x04c7: return "_ui64toa";
+    case 0x04c8: return "_ui64tow";
+    case 0x04c9: return "_ultoa";
+    case 0x04ca: return "_ultow";
+    case 0x04cb: return "_vsnprintf";
+    case 0x04cc: return "_vsnwprintf";
+    case 0x04cd: return "_wcsicmp";
+    case 0x04ce: return "_wcslwr";
+    case 0x04cf: return "_wcsnicmp";
+    case 0x04d0: return "_wcsupr";
+    case 0x04d1: return "_wtoi";
+    case 0x04d2: return "_wtoi64";
+    case 0x04d3: return "_wtol";
+    case 0x04d4: return "abs";
+    case 0x04d5: return "atan";
+    case 0x04d6: return "atoi";
+    case 0x04d7: return "atol";
+    case 0x04d8: return "bsearch";
+    case 0x04d9: return "ceil";
+    case 0x04da: return "cos";
+    case 0x04db: return "fabs";
+    case 0x04dc: return "floor";
+    case 0x04dd: return "isalnum";
+    case 0x04de: return "isalpha";
+    case 0x04df: return "iscntrl";
+    case 0x04e0: return "isdigit";
+    case 0x04e1: return "isgraph";
+    case 0x04e2: return "islower";
+    case 0x04e3: return "isprint";
+    case 0x04e4: return "ispunct";
+    case 0x04e5: return "isspace";
+    case 0x04e6: return "isupper";
+    case 0x04e7: return "iswalpha";
+    case 0x04e8: return "iswctype";
+    case 0x04e9: return "iswdigit";
+    case 0x04ea: return "iswlower";
+    case 0x04eb: return "iswspace";
+    case 0x04ec: return "iswxdigit";
+    case 0x04ed: return "isxdigit";
+    case 0x04ee: return "labs";
+    case 0x04ef: return "log";
+    case 0x04f0: return "mbstowcs";
+    case 0x04f1: return "memchr";
+    case 0x04f2: return "memcmp";
+    case 0x04f3: return "memcpy";
+    case 0x04f4: return "memmove";
+    case 0x04f5: return "memset";
+    case 0x04f6: return "pow";
+    case 0x04f7: return "qsort";
+    case 0x04f8: return "sin";
+    case 0x04f9: return "sprintf";
+    case 0x04fa: return "sqrt";
+    case 0x04fb: return "sscanf";
+    case 0x04fc: return "strcat";
+    case 0x04fd: return "strchr";
+    case 0x04fe: return "strcmp";
+    case 0x04ff: return "strcpy";
+    case 0x0500: return "strcspn";
+    case 0x0501: return "strlen";
+    case 0x0502: return "strncat";
+    case 0x0503: return "strncmp";
+    case 0x0504: return "strncpy";
+    case 0x0505: return "strpbrk";
+    case 0x0506: return "strrchr";
+    case 0x0507: return "strspn";
+    case 0x0508: return "strstr";
+    case 0x0509: return "strtol";
+    case 0x050a: return "strtoul";
+    case 0x050b: return "swprintf";
+    case 0x050c: return "tan";
+    case 0x050d: return "tolower";
+    case 0x050e: return "toupper";
+    case 0x050f: return "towlower";
+    case 0x0510: return "towupper";
+    case 0x0511: return "vDbgPrintEx";
+    case 0x0512: return "vDbgPrintExWithPrefix";
+    case 0x0513: return "vsprintf";
+    case 0x0514: return "wcscat";
+    case 0x0515: return "wcschr";
+    case 0x0516: return "wcscmp";
+    case 0x0517: return "wcscpy";
+    case 0x0518: return "wcscspn";
+    case 0x0519: return "wcslen";
+    case 0x051a: return "wcsncat";
+    case 0x051b: return "wcsncmp";
+    case 0x051c: return "wcsncpy";
+    case 0x051d: return "wcspbrk";
+    case 0x051e: return "wcsrchr";
+    case 0x051f: return "wcsspn";
+    case 0x0520: return "wcsstr";
+    case 0x0521: return "wcstol";
+    case 0x0522: return "wcstombs";
+    case 0x0523: return "wcstoul";
   }
   return nullptr;
 }


-}
 }

-#endif

+#endif
diff --git a/deps/LIEF/src/PE/utils/ordinals_lookup_tables/ole32_dll_lookup.hpp b/deps/LIEF/src/PE/utils/ordinals_lookup_tables/ole32_dll_lookup.hpp
index 5f40e77a68f..091fa96879d 100644
--- a/deps/LIEF/src/PE/utils/ordinals_lookup_tables/ole32_dll_lookup.hpp
+++ b/deps/LIEF/src/PE/utils/ordinals_lookup_tables/ole32_dll_lookup.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -18,357 +18,356 @@

 #include <cstdint>

-namespace LIEF {
-namespace PE {
+
+namespace LIEF::PE {

 inline const char* ole32_dll_lookup(uint32_t i) {
-  switch(i) {
-  case 0x0002: return "BindMoniker";
-  case 0x0003: return "CLIPFORMAT_UserFree";
-  case 0x0004: return "CLIPFORMAT_UserMarshal";
-  case 0x0005: return "CLIPFORMAT_UserSize";
-  case 0x0006: return "CLIPFORMAT_UserUnmarshal";
-  case 0x0007: return "CLSIDFromOle1Class";
-  case 0x0008: return "CLSIDFromProgID";
-  case 0x0009: return "CLSIDFromProgIDEx";
-  case 0x000a: return "CLSIDFromString";
-  case 0x000b: return "CoAddRefServerProcess";
-  case 0x000c: return "CoAllowSetForegroundWindow";
-  case 0x000d: return "CoBuildVersion";
-  case 0x000e: return "CoCancelCall";
-  case 0x000f: return "CoCopyProxy";
-  case 0x0010: return "CoCreateFreeThreadedMarshaler";
-  case 0x0011: return "CoCreateGuid";
-  case 0x0012: return "CoCreateInstance";
-  case 0x0013: return "CoCreateInstanceEx";
-  case 0x0014: return "CoCreateObjectInContext";
-  case 0x0015: return "CoDeactivateObject";
-  case 0x0016: return "CoDisableCallCancellation";
-  case 0x0017: return "CoDisconnectObject";
-  case 0x0018: return "CoDosDateTimeToFileTime";
-  case 0x0019: return "CoEnableCallCancellation";
-  case 0x001a: return "CoFileTimeNow";
-  case 0x001b: return "CoFileTimeToDosDateTime";
-  case 0x001c: return "CoFreeAllLibraries";
-  case 0x001d: return "CoFreeLibrary";
-  case 0x001e: return "CoFreeUnusedLibraries";
-  case 0x001f: return "CoFreeUnusedLibrariesEx";
-  case 0x0020: return "CoGetApartmentID";
-  case 0x0021: return "CoGetCallContext";
-  case 0x0022: return "CoGetCallerTID";
-  case 0x0023: return "CoGetCancelObject";
-  case 0x0024: return "CoGetClassObject";
-  case 0x0025: return "CoGetClassVersion";
-  case 0x0026: return "CoGetComCatalog";
-  case 0x0027: return "CoGetContextToken";
-  case 0x0028: return "CoGetCurrentLogicalThreadId";
-  case 0x0029: return "CoGetCurrentProcess";
-  case 0x002a: return "CoGetDefaultContext";
-  case 0x002b: return "CoGetInstanceFromFile";
-  case 0x002c: return "CoGetInstanceFromIStorage";
-  case 0x002d: return "CoGetInterceptor";
-  case 0x002e: return "CoGetInterceptorFromTypeInfo";
-  case 0x002f: return "CoGetInterfaceAndReleaseStream";
-  case 0x0030: return "CoGetMalloc";
-  case 0x0031: return "CoGetMarshalSizeMax";
-  case 0x0032: return "CoGetObject";
-  case 0x0033: return "CoGetObjectContext";
-  case 0x0034: return "CoGetPSClsid";
-  case 0x0035: return "CoGetProcessIdentifier";
-  case 0x0036: return "CoGetStandardMarshal";
-  case 0x0037: return "CoGetState";
-  case 0x0038: return "CoGetStdMarshalEx";
-  case 0x0039: return "CoGetSystemSecurityPermissions";
-  case 0x003a: return "CoGetTreatAsClass";
-  case 0x003b: return "CoImpersonateClient";
-  case 0x003c: return "CoInitialize";
-  case 0x003d: return "CoInitializeEx";
-  case 0x003e: return "CoInitializeSecurity";
-  case 0x003f: return "CoInitializeWOW";
-  case 0x0040: return "CoInstall";
-  case 0x0041: return "CoInvalidateRemoteMachineBindings";
-  case 0x0042: return "CoIsHandlerConnected";
-  case 0x0043: return "CoIsOle1Class";
-  case 0x0044: return "CoLoadLibrary";
-  case 0x0045: return "CoLockObjectExternal";
-  case 0x0046: return "CoMarshalHresult";
-  case 0x0047: return "CoMarshalInterThreadInterfaceInStream";
-  case 0x0048: return "CoMarshalInterface";
-  case 0x0049: return "CoPopServiceDomain";
-  case 0x004a: return "CoPushServiceDomain";
-  case 0x004b: return "CoQueryAuthenticationServices";
-  case 0x004c: return "CoQueryClientBlanket";
-  case 0x004d: return "CoQueryProxyBlanket";
-  case 0x004e: return "CoQueryReleaseObject";
-  case 0x004f: return "CoReactivateObject";
-  case 0x0050: return "CoRegisterChannelHook";
-  case 0x0051: return "CoRegisterClassObject";
-  case 0x0052: return "CoRegisterInitializeSpy";
-  case 0x0053: return "CoRegisterMallocSpy";
-  case 0x0054: return "CoRegisterMessageFilter";
-  case 0x0055: return "CoRegisterPSClsid";
-  case 0x0056: return "CoRegisterSurrogate";
-  case 0x0057: return "CoRegisterSurrogateEx";
-  case 0x0058: return "CoReleaseMarshalData";
-  case 0x0059: return "CoReleaseServerProcess";
-  case 0x005a: return "CoResumeClassObjects";
-  case 0x005b: return "CoRetireServer";
-  case 0x005c: return "CoRevertToSelf";
-  case 0x005d: return "CoRevokeClassObject";
-  case 0x005e: return "CoRevokeInitializeSpy";
-  case 0x005f: return "CoRevokeMallocSpy";
-  case 0x0060: return "CoSetCancelObject";
-  case 0x0061: return "CoSetProxyBlanket";
-  case 0x0062: return "CoSetState";
-  case 0x0063: return "CoSuspendClassObjects";
-  case 0x0064: return "CoSwitchCallContext";
-  case 0x0065: return "CoTaskMemAlloc";
-  case 0x0066: return "CoTaskMemFree";
-  case 0x0067: return "CoTaskMemRealloc";
-  case 0x0068: return "CoTestCancel";
-  case 0x0069: return "CoTreatAsClass";
-  case 0x006a: return "CoUninitialize";
-  case 0x006b: return "CoUnloadingWOW";
-  case 0x006c: return "CoUnmarshalHresult";
-  case 0x006d: return "CoUnmarshalInterface";
-  case 0x006e: return "CoWaitForMultipleHandles";
-  case 0x006f: return "ComPs_CStdStubBuffer_AddRef";
-  case 0x0070: return "ComPs_CStdStubBuffer_Connect";
-  case 0x0071: return "ComPs_CStdStubBuffer_CountRefs";
-  case 0x0072: return "ComPs_CStdStubBuffer_DebugServerQueryInterface";
-  case 0x0073: return "ComPs_CStdStubBuffer_DebugServerRelease";
-  case 0x0074: return "ComPs_CStdStubBuffer_Disconnect";
-  case 0x0075: return "ComPs_CStdStubBuffer_Invoke";
-  case 0x0076: return "ComPs_CStdStubBuffer_IsIIDSupported";
-  case 0x0077: return "ComPs_CStdStubBuffer_QueryInterface";
-  case 0x0078: return "ComPs_IUnknown_AddRef_Proxy";
-  case 0x0079: return "ComPs_IUnknown_QueryInterface_Proxy";
-  case 0x007a: return "ComPs_IUnknown_Release_Proxy";
-  case 0x007b: return "ComPs_NdrCStdStubBuffer2_Release";
-  case 0x007c: return "ComPs_NdrCStdStubBuffer_Release";
-  case 0x007d: return "ComPs_NdrClientCall2";
-  case 0x007e: return "ComPs_NdrClientCall2_va";
-  case 0x007f: return "ComPs_NdrDllCanUnloadNow";
-  case 0x0080: return "ComPs_NdrDllGetClassObject";
-  case 0x0081: return "ComPs_NdrDllRegisterProxy";
-  case 0x0082: return "ComPs_NdrDllUnregisterProxy";
-  case 0x0083: return "ComPs_NdrStubCall2";
-  case 0x0084: return "ComPs_NdrStubForwardingFunction";
-  case 0x0085: return "CreateAntiMoniker";
-  case 0x0086: return "CreateBindCtx";
-  case 0x0087: return "CreateClassMoniker";
-  case 0x0088: return "CreateDataAdviseHolder";
-  case 0x0089: return "CreateDataCache";
-  case 0x008a: return "CreateErrorInfo";
-  case 0x008b: return "CreateFileMoniker";
-  case 0x008c: return "CreateGenericComposite";
-  case 0x008d: return "CreateILockBytesOnHGlobal";
-  case 0x008e: return "CreateItemMoniker";
-  case 0x008f: return "CreateObjrefMoniker";
-  case 0x0090: return "CreateOleAdviseHolder";
-  case 0x0091: return "CreatePointerMoniker";
-  case 0x0092: return "CreateStdProgressIndicator";
-  case 0x0093: return "CreateStreamOnHGlobal";
-  case 0x0094: return "DcomChannelSetHResult";
-  case 0x0095: return "DllDebugObjectRPCHook";
-  case 0x0096: return "DllGetClassObject";
-  case 0x0097: return "DllGetClassObjectWOW";
-  case 0x0098: return "DllRegisterServer";
-  case 0x0099: return "DoDragDrop";
-  case 0x009a: return "EnableHookObject";
-  case 0x009b: return "FmtIdToPropStgName";
-  case 0x009c: return "FreePropVariantArray";
-  case 0x009d: return "GetClassFile";
-  case 0x009e: return "GetConvertStg";
-  case 0x009f: return "GetDocumentBitStg";
-  case 0x00a0: return "GetErrorInfo";
-  case 0x00a1: return "GetHGlobalFromILockBytes";
-  case 0x00a2: return "GetHGlobalFromStream";
-  case 0x00a3: return "GetHookInterface";
-  case 0x00a4: return "GetRunningObjectTable";
-  case 0x00a5: return "HACCEL_UserFree";
-  case 0x00a6: return "HACCEL_UserMarshal";
-  case 0x00a7: return "HACCEL_UserSize";
-  case 0x00a8: return "HACCEL_UserUnmarshal";
-  case 0x00a9: return "HBITMAP_UserFree";
-  case 0x00aa: return "HBITMAP_UserMarshal";
-  case 0x00ab: return "HBITMAP_UserSize";
-  case 0x00ac: return "HBITMAP_UserUnmarshal";
-  case 0x00ad: return "HBRUSH_UserFree";
-  case 0x00ae: return "HBRUSH_UserMarshal";
-  case 0x00af: return "HBRUSH_UserSize";
-  case 0x00b0: return "HBRUSH_UserUnmarshal";
-  case 0x00b1: return "HDC_UserFree";
-  case 0x00b2: return "HDC_UserMarshal";
-  case 0x00b3: return "HDC_UserSize";
-  case 0x00b4: return "HDC_UserUnmarshal";
-  case 0x00b5: return "HENHMETAFILE_UserFree";
-  case 0x00b6: return "HENHMETAFILE_UserMarshal";
-  case 0x00b7: return "HENHMETAFILE_UserSize";
-  case 0x00b8: return "HENHMETAFILE_UserUnmarshal";
-  case 0x00b9: return "HGLOBAL_UserFree";
-  case 0x00ba: return "HGLOBAL_UserMarshal";
-  case 0x00bb: return "HGLOBAL_UserSize";
-  case 0x00bc: return "HGLOBAL_UserUnmarshal";
-  case 0x00bd: return "HICON_UserFree";
-  case 0x00be: return "HICON_UserMarshal";
-  case 0x00bf: return "HICON_UserSize";
-  case 0x00c0: return "HICON_UserUnmarshal";
-  case 0x00c1: return "HMENU_UserFree";
-  case 0x00c2: return "HMENU_UserMarshal";
-  case 0x00c3: return "HMENU_UserSize";
-  case 0x00c4: return "HMENU_UserUnmarshal";
-  case 0x00c5: return "HMETAFILEPICT_UserFree";
-  case 0x00c6: return "HMETAFILEPICT_UserMarshal";
-  case 0x00c7: return "HMETAFILEPICT_UserSize";
-  case 0x00c8: return "HMETAFILEPICT_UserUnmarshal";
-  case 0x00c9: return "HMETAFILE_UserFree";
-  case 0x00ca: return "HMETAFILE_UserMarshal";
-  case 0x00cb: return "HMETAFILE_UserSize";
-  case 0x00cc: return "HMETAFILE_UserUnmarshal";
-  case 0x00cd: return "HPALETTE_UserFree";
-  case 0x00ce: return "HPALETTE_UserMarshal";
-  case 0x00cf: return "HPALETTE_UserSize";
-  case 0x00d0: return "HPALETTE_UserUnmarshal";
-  case 0x00d1: return "HWND_UserFree";
-  case 0x00d2: return "HWND_UserMarshal";
-  case 0x00d3: return "HWND_UserSize";
-  case 0x00d4: return "HWND_UserUnmarshal";
-  case 0x00d5: return "HkOleRegisterObject";
-  case 0x00d6: return "IIDFromString";
-  case 0x00d7: return "IsAccelerator";
-  case 0x00d8: return "IsEqualGUID";
-  case 0x00d9: return "IsValidIid";
-  case 0x00da: return "IsValidInterface";
-  case 0x00db: return "IsValidPtrIn";
-  case 0x00dc: return "IsValidPtrOut";
-  case 0x00dd: return "MkParseDisplayName";
-  case 0x00de: return "MonikerCommonPrefixWith";
-  case 0x00df: return "MonikerRelativePathTo";
-  case 0x00e0: return "OleBuildVersion";
-  case 0x00e1: return "OleConvertIStorageToOLESTREAM";
-  case 0x00e2: return "OleConvertIStorageToOLESTREAMEx";
-  case 0x00e3: return "OleConvertOLESTREAMToIStorage";
-  case 0x00e4: return "OleConvertOLESTREAMToIStorageEx";
-  case 0x00e5: return "OleCreate";
-  case 0x00e6: return "OleCreateDefaultHandler";
-  case 0x00e7: return "OleCreateEmbeddingHelper";
-  case 0x00e8: return "OleCreateEx";
-  case 0x00e9: return "OleCreateFromData";
-  case 0x00ea: return "OleCreateFromDataEx";
-  case 0x00eb: return "OleCreateFromFile";
-  case 0x00ec: return "OleCreateFromFileEx";
-  case 0x00ed: return "OleCreateLink";
-  case 0x00ee: return "OleCreateLinkEx";
-  case 0x00ef: return "OleCreateLinkFromData";
-  case 0x00f0: return "OleCreateLinkFromDataEx";
-  case 0x00f1: return "OleCreateLinkToFile";
-  case 0x00f2: return "OleCreateLinkToFileEx";
-  case 0x00f3: return "OleCreateMenuDescriptor";
-  case 0x00f4: return "OleCreateStaticFromData";
-  case 0x00f5: return "OleDestroyMenuDescriptor";
-  case 0x00f6: return "OleDoAutoConvert";
-  case 0x00f7: return "OleDraw";
-  case 0x00f8: return "OleDuplicateData";
-  case 0x00f9: return "OleFlushClipboard";
-  case 0x00fa: return "OleGetAutoConvert";
-  case 0x00fb: return "OleGetClipboard";
-  case 0x00fc: return "OleGetIconOfClass";
-  case 0x00fd: return "OleGetIconOfFile";
-  case 0x00fe: return "OleInitialize";
-  case 0x00ff: return "OleInitializeWOW";
-  case 0x0100: return "OleIsCurrentClipboard";
-  case 0x0101: return "OleIsRunning";
-  case 0x0102: return "OleLoad";
-  case 0x0103: return "OleLoadFromStream";
-  case 0x0104: return "OleLockRunning";
-  case 0x0105: return "OleMetafilePictFromIconAndLabel";
-  case 0x0106: return "OleNoteObjectVisible";
-  case 0x0107: return "OleQueryCreateFromData";
-  case 0x0108: return "OleQueryLinkFromData";
-  case 0x0109: return "OleRegEnumFormatEtc";
-  case 0x010a: return "OleRegEnumVerbs";
-  case 0x010b: return "OleRegGetMiscStatus";
-  case 0x010c: return "OleRegGetUserType";
-  case 0x010d: return "OleRun";
-  case 0x010e: return "OleSave";
-  case 0x010f: return "OleSaveToStream";
-  case 0x0110: return "OleSetAutoConvert";
-  case 0x0111: return "OleSetClipboard";
-  case 0x0112: return "OleSetContainedObject";
-  case 0x0113: return "OleSetMenuDescriptor";
-  case 0x0114: return "OleTranslateAccelerator";
-  case 0x0115: return "OleUninitialize";
-  case 0x0116: return "OpenOrCreateStream";
-  case 0x0117: return "ProgIDFromCLSID";
-  case 0x0118: return "PropStgNameToFmtId";
-  case 0x0119: return "PropSysAllocString";
-  case 0x011a: return "PropSysFreeString";
-  case 0x0001: return "PropVariantChangeType";
-  case 0x011b: return "PropVariantClear";
-  case 0x011c: return "PropVariantCopy";
-  case 0x011d: return "ReadClassStg";
-  case 0x011e: return "ReadClassStm";
-  case 0x011f: return "ReadFmtUserTypeStg";
-  case 0x0120: return "ReadOleStg";
-  case 0x0121: return "ReadStringStream";
-  case 0x0122: return "RegisterDragDrop";
-  case 0x0123: return "ReleaseStgMedium";
-  case 0x0124: return "RevokeDragDrop";
-  case 0x0125: return "SNB_UserFree";
-  case 0x0126: return "SNB_UserMarshal";
-  case 0x0127: return "SNB_UserSize";
-  case 0x0128: return "SNB_UserUnmarshal";
-  case 0x0129: return "STGMEDIUM_UserFree";
-  case 0x012a: return "STGMEDIUM_UserMarshal";
-  case 0x012b: return "STGMEDIUM_UserSize";
-  case 0x012c: return "STGMEDIUM_UserUnmarshal";
-  case 0x012d: return "SetConvertStg";
-  case 0x012e: return "SetDocumentBitStg";
-  case 0x012f: return "SetErrorInfo";
-  case 0x0130: return "StgConvertPropertyToVariant";
-  case 0x0131: return "StgConvertVariantToProperty";
-  case 0x0132: return "StgCreateDocfile";
-  case 0x0133: return "StgCreateDocfileOnILockBytes";
-  case 0x0134: return "StgCreatePropSetStg";
-  case 0x0135: return "StgCreatePropStg";
-  case 0x0136: return "StgCreateStorageEx";
-  case 0x0137: return "StgGetIFillLockBytesOnFile";
-  case 0x0138: return "StgGetIFillLockBytesOnILockBytes";
-  case 0x0139: return "StgIsStorageFile";
-  case 0x013a: return "StgIsStorageILockBytes";
-  case 0x013b: return "StgOpenAsyncDocfileOnIFillLockBytes";
-  case 0x013c: return "StgOpenPropStg";
-  case 0x013d: return "StgOpenStorage";
-  case 0x013e: return "StgOpenStorageEx";
-  case 0x013f: return "StgOpenStorageOnHandle";
-  case 0x0140: return "StgOpenStorageOnILockBytes";
-  case 0x0141: return "StgPropertyLengthAsVariant";
-  case 0x0142: return "StgSetTimes";
-  case 0x0143: return "StringFromCLSID";
-  case 0x0144: return "StringFromGUID2";
-  case 0x0145: return "StringFromIID";
-  case 0x0146: return "UpdateDCOMSettings";
-  case 0x0147: return "UtConvertDvtd16toDvtd32";
-  case 0x0148: return "UtConvertDvtd32toDvtd16";
-  case 0x0149: return "UtGetDvtd16Info";
-  case 0x014a: return "UtGetDvtd32Info";
-  case 0x014b: return "WdtpInterfacePointer_UserFree";
-  case 0x014c: return "WdtpInterfacePointer_UserMarshal";
-  case 0x014d: return "WdtpInterfacePointer_UserSize";
-  case 0x014e: return "WdtpInterfacePointer_UserUnmarshal";
-  case 0x014f: return "WriteClassStg";
-  case 0x0150: return "WriteClassStm";
-  case 0x0151: return "WriteFmtUserTypeStg";
-  case 0x0152: return "WriteOleStg";
-  case 0x0153: return "WriteStringStream";
+  switch (i) {
+    case 0x0002: return "BindMoniker";
+    case 0x0003: return "CLIPFORMAT_UserFree";
+    case 0x0004: return "CLIPFORMAT_UserMarshal";
+    case 0x0005: return "CLIPFORMAT_UserSize";
+    case 0x0006: return "CLIPFORMAT_UserUnmarshal";
+    case 0x0007: return "CLSIDFromOle1Class";
+    case 0x0008: return "CLSIDFromProgID";
+    case 0x0009: return "CLSIDFromProgIDEx";
+    case 0x000a: return "CLSIDFromString";
+    case 0x000b: return "CoAddRefServerProcess";
+    case 0x000c: return "CoAllowSetForegroundWindow";
+    case 0x000d: return "CoBuildVersion";
+    case 0x000e: return "CoCancelCall";
+    case 0x000f: return "CoCopyProxy";
+    case 0x0010: return "CoCreateFreeThreadedMarshaler";
+    case 0x0011: return "CoCreateGuid";
+    case 0x0012: return "CoCreateInstance";
+    case 0x0013: return "CoCreateInstanceEx";
+    case 0x0014: return "CoCreateObjectInContext";
+    case 0x0015: return "CoDeactivateObject";
+    case 0x0016: return "CoDisableCallCancellation";
+    case 0x0017: return "CoDisconnectObject";
+    case 0x0018: return "CoDosDateTimeToFileTime";
+    case 0x0019: return "CoEnableCallCancellation";
+    case 0x001a: return "CoFileTimeNow";
+    case 0x001b: return "CoFileTimeToDosDateTime";
+    case 0x001c: return "CoFreeAllLibraries";
+    case 0x001d: return "CoFreeLibrary";
+    case 0x001e: return "CoFreeUnusedLibraries";
+    case 0x001f: return "CoFreeUnusedLibrariesEx";
+    case 0x0020: return "CoGetApartmentID";
+    case 0x0021: return "CoGetCallContext";
+    case 0x0022: return "CoGetCallerTID";
+    case 0x0023: return "CoGetCancelObject";
+    case 0x0024: return "CoGetClassObject";
+    case 0x0025: return "CoGetClassVersion";
+    case 0x0026: return "CoGetComCatalog";
+    case 0x0027: return "CoGetContextToken";
+    case 0x0028: return "CoGetCurrentLogicalThreadId";
+    case 0x0029: return "CoGetCurrentProcess";
+    case 0x002a: return "CoGetDefaultContext";
+    case 0x002b: return "CoGetInstanceFromFile";
+    case 0x002c: return "CoGetInstanceFromIStorage";
+    case 0x002d: return "CoGetInterceptor";
+    case 0x002e: return "CoGetInterceptorFromTypeInfo";
+    case 0x002f: return "CoGetInterfaceAndReleaseStream";
+    case 0x0030: return "CoGetMalloc";
+    case 0x0031: return "CoGetMarshalSizeMax";
+    case 0x0032: return "CoGetObject";
+    case 0x0033: return "CoGetObjectContext";
+    case 0x0034: return "CoGetPSClsid";
+    case 0x0035: return "CoGetProcessIdentifier";
+    case 0x0036: return "CoGetStandardMarshal";
+    case 0x0037: return "CoGetState";
+    case 0x0038: return "CoGetStdMarshalEx";
+    case 0x0039: return "CoGetSystemSecurityPermissions";
+    case 0x003a: return "CoGetTreatAsClass";
+    case 0x003b: return "CoImpersonateClient";
+    case 0x003c: return "CoInitialize";
+    case 0x003d: return "CoInitializeEx";
+    case 0x003e: return "CoInitializeSecurity";
+    case 0x003f: return "CoInitializeWOW";
+    case 0x0040: return "CoInstall";
+    case 0x0041: return "CoInvalidateRemoteMachineBindings";
+    case 0x0042: return "CoIsHandlerConnected";
+    case 0x0043: return "CoIsOle1Class";
+    case 0x0044: return "CoLoadLibrary";
+    case 0x0045: return "CoLockObjectExternal";
+    case 0x0046: return "CoMarshalHresult";
+    case 0x0047: return "CoMarshalInterThreadInterfaceInStream";
+    case 0x0048: return "CoMarshalInterface";
+    case 0x0049: return "CoPopServiceDomain";
+    case 0x004a: return "CoPushServiceDomain";
+    case 0x004b: return "CoQueryAuthenticationServices";
+    case 0x004c: return "CoQueryClientBlanket";
+    case 0x004d: return "CoQueryProxyBlanket";
+    case 0x004e: return "CoQueryReleaseObject";
+    case 0x004f: return "CoReactivateObject";
+    case 0x0050: return "CoRegisterChannelHook";
+    case 0x0051: return "CoRegisterClassObject";
+    case 0x0052: return "CoRegisterInitializeSpy";
+    case 0x0053: return "CoRegisterMallocSpy";
+    case 0x0054: return "CoRegisterMessageFilter";
+    case 0x0055: return "CoRegisterPSClsid";
+    case 0x0056: return "CoRegisterSurrogate";
+    case 0x0057: return "CoRegisterSurrogateEx";
+    case 0x0058: return "CoReleaseMarshalData";
+    case 0x0059: return "CoReleaseServerProcess";
+    case 0x005a: return "CoResumeClassObjects";
+    case 0x005b: return "CoRetireServer";
+    case 0x005c: return "CoRevertToSelf";
+    case 0x005d: return "CoRevokeClassObject";
+    case 0x005e: return "CoRevokeInitializeSpy";
+    case 0x005f: return "CoRevokeMallocSpy";
+    case 0x0060: return "CoSetCancelObject";
+    case 0x0061: return "CoSetProxyBlanket";
+    case 0x0062: return "CoSetState";
+    case 0x0063: return "CoSuspendClassObjects";
+    case 0x0064: return "CoSwitchCallContext";
+    case 0x0065: return "CoTaskMemAlloc";
+    case 0x0066: return "CoTaskMemFree";
+    case 0x0067: return "CoTaskMemRealloc";
+    case 0x0068: return "CoTestCancel";
+    case 0x0069: return "CoTreatAsClass";
+    case 0x006a: return "CoUninitialize";
+    case 0x006b: return "CoUnloadingWOW";
+    case 0x006c: return "CoUnmarshalHresult";
+    case 0x006d: return "CoUnmarshalInterface";
+    case 0x006e: return "CoWaitForMultipleHandles";
+    case 0x006f: return "ComPs_CStdStubBuffer_AddRef";
+    case 0x0070: return "ComPs_CStdStubBuffer_Connect";
+    case 0x0071: return "ComPs_CStdStubBuffer_CountRefs";
+    case 0x0072: return "ComPs_CStdStubBuffer_DebugServerQueryInterface";
+    case 0x0073: return "ComPs_CStdStubBuffer_DebugServerRelease";
+    case 0x0074: return "ComPs_CStdStubBuffer_Disconnect";
+    case 0x0075: return "ComPs_CStdStubBuffer_Invoke";
+    case 0x0076: return "ComPs_CStdStubBuffer_IsIIDSupported";
+    case 0x0077: return "ComPs_CStdStubBuffer_QueryInterface";
+    case 0x0078: return "ComPs_IUnknown_AddRef_Proxy";
+    case 0x0079: return "ComPs_IUnknown_QueryInterface_Proxy";
+    case 0x007a: return "ComPs_IUnknown_Release_Proxy";
+    case 0x007b: return "ComPs_NdrCStdStubBuffer2_Release";
+    case 0x007c: return "ComPs_NdrCStdStubBuffer_Release";
+    case 0x007d: return "ComPs_NdrClientCall2";
+    case 0x007e: return "ComPs_NdrClientCall2_va";
+    case 0x007f: return "ComPs_NdrDllCanUnloadNow";
+    case 0x0080: return "ComPs_NdrDllGetClassObject";
+    case 0x0081: return "ComPs_NdrDllRegisterProxy";
+    case 0x0082: return "ComPs_NdrDllUnregisterProxy";
+    case 0x0083: return "ComPs_NdrStubCall2";
+    case 0x0084: return "ComPs_NdrStubForwardingFunction";
+    case 0x0085: return "CreateAntiMoniker";
+    case 0x0086: return "CreateBindCtx";
+    case 0x0087: return "CreateClassMoniker";
+    case 0x0088: return "CreateDataAdviseHolder";
+    case 0x0089: return "CreateDataCache";
+    case 0x008a: return "CreateErrorInfo";
+    case 0x008b: return "CreateFileMoniker";
+    case 0x008c: return "CreateGenericComposite";
+    case 0x008d: return "CreateILockBytesOnHGlobal";
+    case 0x008e: return "CreateItemMoniker";
+    case 0x008f: return "CreateObjrefMoniker";
+    case 0x0090: return "CreateOleAdviseHolder";
+    case 0x0091: return "CreatePointerMoniker";
+    case 0x0092: return "CreateStdProgressIndicator";
+    case 0x0093: return "CreateStreamOnHGlobal";
+    case 0x0094: return "DcomChannelSetHResult";
+    case 0x0095: return "DllDebugObjectRPCHook";
+    case 0x0096: return "DllGetClassObject";
+    case 0x0097: return "DllGetClassObjectWOW";
+    case 0x0098: return "DllRegisterServer";
+    case 0x0099: return "DoDragDrop";
+    case 0x009a: return "EnableHookObject";
+    case 0x009b: return "FmtIdToPropStgName";
+    case 0x009c: return "FreePropVariantArray";
+    case 0x009d: return "GetClassFile";
+    case 0x009e: return "GetConvertStg";
+    case 0x009f: return "GetDocumentBitStg";
+    case 0x00a0: return "GetErrorInfo";
+    case 0x00a1: return "GetHGlobalFromILockBytes";
+    case 0x00a2: return "GetHGlobalFromStream";
+    case 0x00a3: return "GetHookInterface";
+    case 0x00a4: return "GetRunningObjectTable";
+    case 0x00a5: return "HACCEL_UserFree";
+    case 0x00a6: return "HACCEL_UserMarshal";
+    case 0x00a7: return "HACCEL_UserSize";
+    case 0x00a8: return "HACCEL_UserUnmarshal";
+    case 0x00a9: return "HBITMAP_UserFree";
+    case 0x00aa: return "HBITMAP_UserMarshal";
+    case 0x00ab: return "HBITMAP_UserSize";
+    case 0x00ac: return "HBITMAP_UserUnmarshal";
+    case 0x00ad: return "HBRUSH_UserFree";
+    case 0x00ae: return "HBRUSH_UserMarshal";
+    case 0x00af: return "HBRUSH_UserSize";
+    case 0x00b0: return "HBRUSH_UserUnmarshal";
+    case 0x00b1: return "HDC_UserFree";
+    case 0x00b2: return "HDC_UserMarshal";
+    case 0x00b3: return "HDC_UserSize";
+    case 0x00b4: return "HDC_UserUnmarshal";
+    case 0x00b5: return "HENHMETAFILE_UserFree";
+    case 0x00b6: return "HENHMETAFILE_UserMarshal";
+    case 0x00b7: return "HENHMETAFILE_UserSize";
+    case 0x00b8: return "HENHMETAFILE_UserUnmarshal";
+    case 0x00b9: return "HGLOBAL_UserFree";
+    case 0x00ba: return "HGLOBAL_UserMarshal";
+    case 0x00bb: return "HGLOBAL_UserSize";
+    case 0x00bc: return "HGLOBAL_UserUnmarshal";
+    case 0x00bd: return "HICON_UserFree";
+    case 0x00be: return "HICON_UserMarshal";
+    case 0x00bf: return "HICON_UserSize";
+    case 0x00c0: return "HICON_UserUnmarshal";
+    case 0x00c1: return "HMENU_UserFree";
+    case 0x00c2: return "HMENU_UserMarshal";
+    case 0x00c3: return "HMENU_UserSize";
+    case 0x00c4: return "HMENU_UserUnmarshal";
+    case 0x00c5: return "HMETAFILEPICT_UserFree";
+    case 0x00c6: return "HMETAFILEPICT_UserMarshal";
+    case 0x00c7: return "HMETAFILEPICT_UserSize";
+    case 0x00c8: return "HMETAFILEPICT_UserUnmarshal";
+    case 0x00c9: return "HMETAFILE_UserFree";
+    case 0x00ca: return "HMETAFILE_UserMarshal";
+    case 0x00cb: return "HMETAFILE_UserSize";
+    case 0x00cc: return "HMETAFILE_UserUnmarshal";
+    case 0x00cd: return "HPALETTE_UserFree";
+    case 0x00ce: return "HPALETTE_UserMarshal";
+    case 0x00cf: return "HPALETTE_UserSize";
+    case 0x00d0: return "HPALETTE_UserUnmarshal";
+    case 0x00d1: return "HWND_UserFree";
+    case 0x00d2: return "HWND_UserMarshal";
+    case 0x00d3: return "HWND_UserSize";
+    case 0x00d4: return "HWND_UserUnmarshal";
+    case 0x00d5: return "HkOleRegisterObject";
+    case 0x00d6: return "IIDFromString";
+    case 0x00d7: return "IsAccelerator";
+    case 0x00d8: return "IsEqualGUID";
+    case 0x00d9: return "IsValidIid";
+    case 0x00da: return "IsValidInterface";
+    case 0x00db: return "IsValidPtrIn";
+    case 0x00dc: return "IsValidPtrOut";
+    case 0x00dd: return "MkParseDisplayName";
+    case 0x00de: return "MonikerCommonPrefixWith";
+    case 0x00df: return "MonikerRelativePathTo";
+    case 0x00e0: return "OleBuildVersion";
+    case 0x00e1: return "OleConvertIStorageToOLESTREAM";
+    case 0x00e2: return "OleConvertIStorageToOLESTREAMEx";
+    case 0x00e3: return "OleConvertOLESTREAMToIStorage";
+    case 0x00e4: return "OleConvertOLESTREAMToIStorageEx";
+    case 0x00e5: return "OleCreate";
+    case 0x00e6: return "OleCreateDefaultHandler";
+    case 0x00e7: return "OleCreateEmbeddingHelper";
+    case 0x00e8: return "OleCreateEx";
+    case 0x00e9: return "OleCreateFromData";
+    case 0x00ea: return "OleCreateFromDataEx";
+    case 0x00eb: return "OleCreateFromFile";
+    case 0x00ec: return "OleCreateFromFileEx";
+    case 0x00ed: return "OleCreateLink";
+    case 0x00ee: return "OleCreateLinkEx";
+    case 0x00ef: return "OleCreateLinkFromData";
+    case 0x00f0: return "OleCreateLinkFromDataEx";
+    case 0x00f1: return "OleCreateLinkToFile";
+    case 0x00f2: return "OleCreateLinkToFileEx";
+    case 0x00f3: return "OleCreateMenuDescriptor";
+    case 0x00f4: return "OleCreateStaticFromData";
+    case 0x00f5: return "OleDestroyMenuDescriptor";
+    case 0x00f6: return "OleDoAutoConvert";
+    case 0x00f7: return "OleDraw";
+    case 0x00f8: return "OleDuplicateData";
+    case 0x00f9: return "OleFlushClipboard";
+    case 0x00fa: return "OleGetAutoConvert";
+    case 0x00fb: return "OleGetClipboard";
+    case 0x00fc: return "OleGetIconOfClass";
+    case 0x00fd: return "OleGetIconOfFile";
+    case 0x00fe: return "OleInitialize";
+    case 0x00ff: return "OleInitializeWOW";
+    case 0x0100: return "OleIsCurrentClipboard";
+    case 0x0101: return "OleIsRunning";
+    case 0x0102: return "OleLoad";
+    case 0x0103: return "OleLoadFromStream";
+    case 0x0104: return "OleLockRunning";
+    case 0x0105: return "OleMetafilePictFromIconAndLabel";
+    case 0x0106: return "OleNoteObjectVisible";
+    case 0x0107: return "OleQueryCreateFromData";
+    case 0x0108: return "OleQueryLinkFromData";
+    case 0x0109: return "OleRegEnumFormatEtc";
+    case 0x010a: return "OleRegEnumVerbs";
+    case 0x010b: return "OleRegGetMiscStatus";
+    case 0x010c: return "OleRegGetUserType";
+    case 0x010d: return "OleRun";
+    case 0x010e: return "OleSave";
+    case 0x010f: return "OleSaveToStream";
+    case 0x0110: return "OleSetAutoConvert";
+    case 0x0111: return "OleSetClipboard";
+    case 0x0112: return "OleSetContainedObject";
+    case 0x0113: return "OleSetMenuDescriptor";
+    case 0x0114: return "OleTranslateAccelerator";
+    case 0x0115: return "OleUninitialize";
+    case 0x0116: return "OpenOrCreateStream";
+    case 0x0117: return "ProgIDFromCLSID";
+    case 0x0118: return "PropStgNameToFmtId";
+    case 0x0119: return "PropSysAllocString";
+    case 0x011a: return "PropSysFreeString";
+    case 0x0001: return "PropVariantChangeType";
+    case 0x011b: return "PropVariantClear";
+    case 0x011c: return "PropVariantCopy";
+    case 0x011d: return "ReadClassStg";
+    case 0x011e: return "ReadClassStm";
+    case 0x011f: return "ReadFmtUserTypeStg";
+    case 0x0120: return "ReadOleStg";
+    case 0x0121: return "ReadStringStream";
+    case 0x0122: return "RegisterDragDrop";
+    case 0x0123: return "ReleaseStgMedium";
+    case 0x0124: return "RevokeDragDrop";
+    case 0x0125: return "SNB_UserFree";
+    case 0x0126: return "SNB_UserMarshal";
+    case 0x0127: return "SNB_UserSize";
+    case 0x0128: return "SNB_UserUnmarshal";
+    case 0x0129: return "STGMEDIUM_UserFree";
+    case 0x012a: return "STGMEDIUM_UserMarshal";
+    case 0x012b: return "STGMEDIUM_UserSize";
+    case 0x012c: return "STGMEDIUM_UserUnmarshal";
+    case 0x012d: return "SetConvertStg";
+    case 0x012e: return "SetDocumentBitStg";
+    case 0x012f: return "SetErrorInfo";
+    case 0x0130: return "StgConvertPropertyToVariant";
+    case 0x0131: return "StgConvertVariantToProperty";
+    case 0x0132: return "StgCreateDocfile";
+    case 0x0133: return "StgCreateDocfileOnILockBytes";
+    case 0x0134: return "StgCreatePropSetStg";
+    case 0x0135: return "StgCreatePropStg";
+    case 0x0136: return "StgCreateStorageEx";
+    case 0x0137: return "StgGetIFillLockBytesOnFile";
+    case 0x0138: return "StgGetIFillLockBytesOnILockBytes";
+    case 0x0139: return "StgIsStorageFile";
+    case 0x013a: return "StgIsStorageILockBytes";
+    case 0x013b: return "StgOpenAsyncDocfileOnIFillLockBytes";
+    case 0x013c: return "StgOpenPropStg";
+    case 0x013d: return "StgOpenStorage";
+    case 0x013e: return "StgOpenStorageEx";
+    case 0x013f: return "StgOpenStorageOnHandle";
+    case 0x0140: return "StgOpenStorageOnILockBytes";
+    case 0x0141: return "StgPropertyLengthAsVariant";
+    case 0x0142: return "StgSetTimes";
+    case 0x0143: return "StringFromCLSID";
+    case 0x0144: return "StringFromGUID2";
+    case 0x0145: return "StringFromIID";
+    case 0x0146: return "UpdateDCOMSettings";
+    case 0x0147: return "UtConvertDvtd16toDvtd32";
+    case 0x0148: return "UtConvertDvtd32toDvtd16";
+    case 0x0149: return "UtGetDvtd16Info";
+    case 0x014a: return "UtGetDvtd32Info";
+    case 0x014b: return "WdtpInterfacePointer_UserFree";
+    case 0x014c: return "WdtpInterfacePointer_UserMarshal";
+    case 0x014d: return "WdtpInterfacePointer_UserSize";
+    case 0x014e: return "WdtpInterfacePointer_UserUnmarshal";
+    case 0x014f: return "WriteClassStg";
+    case 0x0150: return "WriteClassStm";
+    case 0x0151: return "WriteFmtUserTypeStg";
+    case 0x0152: return "WriteOleStg";
+    case 0x0153: return "WriteStringStream";
   }
   return nullptr;
 }


-}
 }

-#endif

+#endif
diff --git a/deps/LIEF/src/PE/utils/ordinals_lookup_tables/oleaut32_dll_lookup.hpp b/deps/LIEF/src/PE/utils/ordinals_lookup_tables/oleaut32_dll_lookup.hpp
index 014132678fd..bb20f5d23a9 100644
--- a/deps/LIEF/src/PE/utils/ordinals_lookup_tables/oleaut32_dll_lookup.hpp
+++ b/deps/LIEF/src/PE/utils/ordinals_lookup_tables/oleaut32_dll_lookup.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -17,416 +17,415 @@
 #define LIEF_PE_OLEAUT32_DLL_LOOKUP_H
 #include <cstdint>

-namespace LIEF {
-namespace PE {
+
+namespace LIEF::PE {

 inline const char* oleaut32_dll_lookup(uint32_t i) {
-  switch(i) {
-  case 0x011e: return "BSTR_UserFree";
-  case 0x011c: return "BSTR_UserMarshal";
-  case 0x011b: return "BSTR_UserSize";
-  case 0x011d: return "BSTR_UserUnmarshal";
-  case 0x019e: return "BstrFromVector";
-  case 0x00ab: return "ClearCustData";
-  case 0x001f: return "CreateDispTypeInfo";
-  case 0x00ca: return "CreateErrorInfo";
-  case 0x0020: return "CreateStdDispatch";
-  case 0x00a0: return "CreateTypeLib";
-  case 0x00b4: return "CreateTypeLib2";
-  case 0x0092: return "DispCallFunc";
-  case 0x001d: return "DispGetIDsOfNames";
-  case 0x001c: return "DispGetParam";
-  case 0x001e: return "DispInvoke";
-  case 0x0090: return "DllCanUnloadNow";
-  case 0x0091: return "DllGetClassObject";
-  case 0x0097: return "DllRegisterServer";
-  case 0x012c: return "DllUnregisterServer";
-  case 0x000e: return "DosDateTimeToVariantTime";
-  case 0x0023: return "GetActiveObject";
-  case 0x014c: return "GetAltMonthNames";
-  case 0x00c8: return "GetErrorInfo";
-  case 0x0142: return "GetRecordInfoFromGuids";
-  case 0x0143: return "GetRecordInfoFromTypeInfo";
-  case 0x0146: return "GetVarConversionLocaleSetting";
-  case 0x00a5: return "LHashValOfNameSys";
-  case 0x00a6: return "LHashValOfNameSysA";
-  case 0x0128: return "LPSAFEARRAY_Marshal";
-  case 0x0127: return "LPSAFEARRAY_Size";
-  case 0x0129: return "LPSAFEARRAY_Unmarshal";
-  case 0x0126: return "LPSAFEARRAY_UserFree";
-  case 0x0124: return "LPSAFEARRAY_UserMarshal";
-  case 0x0123: return "LPSAFEARRAY_UserSize";
-  case 0x0125: return "LPSAFEARRAY_UserUnmarshal";
-  case 0x00a2: return "LoadRegTypeLib";
-  case 0x00a1: return "LoadTypeLib";
-  case 0x00b7: return "LoadTypeLibEx";
-  case 0x012d: return "OACreateTypeLib2";
-  case 0x00aa: return "OaBuildVersion";
-  case 0x01a4: return "OleCreateFontIndirect";
-  case 0x01a3: return "OleCreatePictureIndirect";
-  case 0x01a1: return "OleCreatePropertyFrame";
-  case 0x01a0: return "OleCreatePropertyFrameIndirect";
-  case 0x019f: return "OleIconToCursor";
-  case 0x01a2: return "OleLoadPicture";
-  case 0x0191: return "OleLoadPictureEx";
-  case 0x01a6: return "OleLoadPictureFile";
-  case 0x0192: return "OleLoadPictureFileEx";
-  case 0x01a8: return "OleLoadPicturePath";
-  case 0x01a7: return "OleSavePictureFile";
-  case 0x01a5: return "OleTranslateColor";
-  case 0x00a4: return "QueryPathOfRegTypeLib";
-  case 0x0021: return "RegisterActiveObject";
-  case 0x00a3: return "RegisterTypeLib";
-  case 0x01ba: return "RegisterTypeLibForUser";
-  case 0x0022: return "RevokeActiveObject";
-  case 0x0017: return "SafeArrayAccessData";
-  case 0x0025: return "SafeArrayAllocData";
-  case 0x0024: return "SafeArrayAllocDescriptor";
-  case 0x0029: return "SafeArrayAllocDescriptorEx";
-  case 0x001b: return "SafeArrayCopy";
-  case 0x019c: return "SafeArrayCopyData";
-  case 0x000f: return "SafeArrayCreate";
-  case 0x002a: return "SafeArrayCreateEx";
-  case 0x019b: return "SafeArrayCreateVector";
-  case 0x002b: return "SafeArrayCreateVectorEx";
-  case 0x0010: return "SafeArrayDestroy";
-  case 0x0027: return "SafeArrayDestroyData";
-  case 0x0026: return "SafeArrayDestroyDescriptor";
-  case 0x0011: return "SafeArrayGetDim";
-  case 0x0019: return "SafeArrayGetElement";
-  case 0x0012: return "SafeArrayGetElemsize";
-  case 0x0043: return "SafeArrayGetIID";
-  case 0x0014: return "SafeArrayGetLBound";
-  case 0x002d: return "SafeArrayGetRecordInfo";
-  case 0x0013: return "SafeArrayGetUBound";
-  case 0x004d: return "SafeArrayGetVartype";
-  case 0x0015: return "SafeArrayLock";
-  case 0x0094: return "SafeArrayPtrOfIndex";
-  case 0x001a: return "SafeArrayPutElement";
-  case 0x0028: return "SafeArrayRedim";
-  case 0x0039: return "SafeArraySetIID";
-  case 0x002c: return "SafeArraySetRecordInfo";
-  case 0x0018: return "SafeArrayUnaccessData";
-  case 0x0016: return "SafeArrayUnlock";
-  case 0x00c9: return "SetErrorInfo";
-  case 0x0147: return "SetOaNoCache";
-  case 0x0145: return "SetVarConversionLocaleSetting";
-  case 0x0002: return "SysAllocString";
-  case 0x0096: return "SysAllocStringByteLen";
-  case 0x0004: return "SysAllocStringLen";
-  case 0x0006: return "SysFreeString";
-  case 0x0003: return "SysReAllocString";
-  case 0x0005: return "SysReAllocStringLen";
-  case 0x0095: return "SysStringByteLen";
-  case 0x0007: return "SysStringLen";
-  case 0x00b8: return "SystemTimeToVariantTime";
-  case 0x00ba: return "UnRegisterTypeLib";
-  case 0x01bb: return "UnRegisterTypeLibForUser";
-  case 0x0122: return "VARIANT_UserFree";
-  case 0x0120: return "VARIANT_UserMarshal";
-  case 0x011f: return "VARIANT_UserSize";
-  case 0x0121: return "VARIANT_UserUnmarshal";
-  case 0x00a8: return "VarAbs";
-  case 0x008d: return "VarAdd";
-  case 0x008e: return "VarAnd";
-  case 0x007c: return "VarBoolFromCy";
-  case 0x007b: return "VarBoolFromDate";
-  case 0x00ec: return "VarBoolFromDec";
-  case 0x007e: return "VarBoolFromDisp";
-  case 0x00e9: return "VarBoolFromI1";
-  case 0x0077: return "VarBoolFromI2";
-  case 0x0078: return "VarBoolFromI4";
-  case 0x0172: return "VarBoolFromI8";
-  case 0x0079: return "VarBoolFromR4";
-  case 0x007a: return "VarBoolFromR8";
-  case 0x007d: return "VarBoolFromStr";
-  case 0x0076: return "VarBoolFromUI1";
-  case 0x00ea: return "VarBoolFromUI2";
-  case 0x00eb: return "VarBoolFromUI4";
-  case 0x0173: return "VarBoolFromUI8";
-  case 0x0139: return "VarBstrCat";
-  case 0x013a: return "VarBstrCmp";
-  case 0x0074: return "VarBstrFromBool";
-  case 0x0071: return "VarBstrFromCy";
-  case 0x0072: return "VarBstrFromDate";
-  case 0x00e8: return "VarBstrFromDec";
-  case 0x0073: return "VarBstrFromDisp";
-  case 0x00e5: return "VarBstrFromI1";
-  case 0x006d: return "VarBstrFromI2";
-  case 0x006e: return "VarBstrFromI4";
-  case 0x0170: return "VarBstrFromI8";
-  case 0x006f: return "VarBstrFromR4";
-  case 0x0070: return "VarBstrFromR8";
-  case 0x006c: return "VarBstrFromUI1";
-  case 0x00e6: return "VarBstrFromUI2";
-  case 0x00e7: return "VarBstrFromUI4";
-  case 0x0171: return "VarBstrFromUI8";
-  case 0x013e: return "VarCat";
-  case 0x00b0: return "VarCmp";
-  case 0x0132: return "VarCyAbs";
-  case 0x012b: return "VarCyAdd";
-  case 0x0137: return "VarCyCmp";
-  case 0x0138: return "VarCyCmpR8";
-  case 0x0133: return "VarCyFix";
-  case 0x006a: return "VarCyFromBool";
-  case 0x0067: return "VarCyFromDate";
-  case 0x00e4: return "VarCyFromDec";
-  case 0x0069: return "VarCyFromDisp";
-  case 0x00e1: return "VarCyFromI1";
-  case 0x0063: return "VarCyFromI2";
-  case 0x0064: return "VarCyFromI4";
-  case 0x016e: return "VarCyFromI8";
-  case 0x0065: return "VarCyFromR4";
-  case 0x0066: return "VarCyFromR8";
-  case 0x0068: return "VarCyFromStr";
-  case 0x0062: return "VarCyFromUI1";
-  case 0x00e2: return "VarCyFromUI2";
-  case 0x00e3: return "VarCyFromUI4";
-  case 0x016f: return "VarCyFromUI8";
-  case 0x0134: return "VarCyInt";
-  case 0x012f: return "VarCyMul";
-  case 0x0130: return "VarCyMulI4";
-  case 0x0149: return "VarCyMulI8";
-  case 0x0135: return "VarCyNeg";
-  case 0x0136: return "VarCyRound";
-  case 0x0131: return "VarCySub";
-  case 0x0060: return "VarDateFromBool";
-  case 0x005d: return "VarDateFromCy";
-  case 0x00e0: return "VarDateFromDec";
-  case 0x005f: return "VarDateFromDisp";
-  case 0x00dd: return "VarDateFromI1";
-  case 0x0059: return "VarDateFromI2";
-  case 0x005a: return "VarDateFromI4";
-  case 0x016c: return "VarDateFromI8";
-  case 0x005b: return "VarDateFromR4";
-  case 0x005c: return "VarDateFromR8";
-  case 0x005e: return "VarDateFromStr";
-  case 0x0058: return "VarDateFromUI1";
-  case 0x00de: return "VarDateFromUI2";
-  case 0x00df: return "VarDateFromUI4";
-  case 0x016d: return "VarDateFromUI8";
-  case 0x014a: return "VarDateFromUdate";
-  case 0x013f: return "VarDateFromUdateEx";
-  case 0x00b6: return "VarDecAbs";
-  case 0x00b1: return "VarDecAdd";
-  case 0x00cc: return "VarDecCmp";
-  case 0x012a: return "VarDecCmpR8";
-  case 0x00b2: return "VarDecDiv";
-  case 0x00bb: return "VarDecFix";
-  case 0x00c7: return "VarDecFromBool";
-  case 0x00c4: return "VarDecFromCy";
-  case 0x00c3: return "VarDecFromDate";
-  case 0x00c6: return "VarDecFromDisp";
-  case 0x00f1: return "VarDecFromI1";
-  case 0x00bf: return "VarDecFromI2";
-  case 0x00c0: return "VarDecFromI4";
-  case 0x0176: return "VarDecFromI8";
-  case 0x00c1: return "VarDecFromR4";
-  case 0x00c2: return "VarDecFromR8";
-  case 0x00c5: return "VarDecFromStr";
-  case 0x00be: return "VarDecFromUI1";
-  case 0x00f2: return "VarDecFromUI2";
-  case 0x00f3: return "VarDecFromUI4";
-  case 0x0177: return "VarDecFromUI8";
-  case 0x00bc: return "VarDecInt";
-  case 0x00b3: return "VarDecMul";
-  case 0x00bd: return "VarDecNeg";
-  case 0x00cb: return "VarDecRound";
-  case 0x00b5: return "VarDecSub";
-  case 0x008f: return "VarDiv";
-  case 0x0098: return "VarEqv";
-  case 0x00a9: return "VarFix";
-  case 0x0057: return "VarFormat";
-  case 0x007f: return "VarFormatCurrency";
-  case 0x0061: return "VarFormatDateTime";
-  case 0x008b: return "VarFormatFromTokens";
-  case 0x006b: return "VarFormatNumber";
-  case 0x0075: return "VarFormatPercent";
-  case 0x00fd: return "VarI1FromBool";
-  case 0x00fa: return "VarI1FromCy";
-  case 0x00f9: return "VarI1FromDate";
-  case 0x0100: return "VarI1FromDec";
-  case 0x00fc: return "VarI1FromDisp";
-  case 0x00f5: return "VarI1FromI2";
-  case 0x00f6: return "VarI1FromI4";
-  case 0x0178: return "VarI1FromI8";
-  case 0x00f7: return "VarI1FromR4";
-  case 0x00f8: return "VarI1FromR8";
-  case 0x00fb: return "VarI1FromStr";
-  case 0x00f4: return "VarI1FromUI1";
-  case 0x00fe: return "VarI1FromUI2";
-  case 0x00ff: return "VarI1FromUI4";
-  case 0x0179: return "VarI1FromUI8";
-  case 0x0038: return "VarI2FromBool";
-  case 0x0034: return "VarI2FromCy";
-  case 0x0035: return "VarI2FromDate";
-  case 0x00d0: return "VarI2FromDec";
-  case 0x0037: return "VarI2FromDisp";
-  case 0x00cd: return "VarI2FromI1";
-  case 0x0031: return "VarI2FromI4";
-  case 0x015a: return "VarI2FromI8";
-  case 0x0032: return "VarI2FromR4";
-  case 0x0033: return "VarI2FromR8";
-  case 0x0036: return "VarI2FromStr";
-  case 0x0030: return "VarI2FromUI1";
-  case 0x00ce: return "VarI2FromUI2";
-  case 0x00cf: return "VarI2FromUI4";
-  case 0x015b: return "VarI2FromUI8";
-  case 0x0042: return "VarI4FromBool";
-  case 0x003e: return "VarI4FromCy";
-  case 0x003f: return "VarI4FromDate";
-  case 0x00d4: return "VarI4FromDec";
-  case 0x0041: return "VarI4FromDisp";
-  case 0x00d1: return "VarI4FromI1";
-  case 0x003b: return "VarI4FromI2";
-  case 0x015c: return "VarI4FromI8";
-  case 0x003c: return "VarI4FromR4";
-  case 0x003d: return "VarI4FromR8";
-  case 0x0040: return "VarI4FromStr";
-  case 0x003a: return "VarI4FromUI1";
-  case 0x00d2: return "VarI4FromUI2";
-  case 0x00d3: return "VarI4FromUI4";
-  case 0x015d: return "VarI4FromUI8";
-  case 0x0155: return "VarI8FromBool";
-  case 0x0151: return "VarI8FromCy";
-  case 0x0152: return "VarI8FromDate";
-  case 0x0159: return "VarI8FromDec";
-  case 0x0154: return "VarI8FromDisp";
-  case 0x0156: return "VarI8FromI1";
-  case 0x014e: return "VarI8FromI2";
-  case 0x014f: return "VarI8FromR4";
-  case 0x0150: return "VarI8FromR8";
-  case 0x0153: return "VarI8FromStr";
-  case 0x014d: return "VarI8FromUI1";
-  case 0x0157: return "VarI8FromUI2";
-  case 0x0158: return "VarI8FromUI4";
-  case 0x01ab: return "VarI8FromUI8";
-  case 0x0099: return "VarIdiv";
-  case 0x009a: return "VarImp";
-  case 0x00ac: return "VarInt";
-  case 0x009b: return "VarMod";
-  case 0x0081: return "VarMonthName";
-  case 0x009c: return "VarMul";
-  case 0x00ad: return "VarNeg";
-  case 0x00ae: return "VarNot";
-  case 0x002f: return "VarNumFromParseNum";
-  case 0x009d: return "VarOr";
-  case 0x002e: return "VarParseNumFromStr";
-  case 0x009e: return "VarPow";
-  case 0x013c: return "VarR4CmpR8";
-  case 0x004c: return "VarR4FromBool";
-  case 0x0048: return "VarR4FromCy";
-  case 0x0049: return "VarR4FromDate";
-  case 0x00d8: return "VarR4FromDec";
-  case 0x004b: return "VarR4FromDisp";
-  case 0x00d5: return "VarR4FromI1";
-  case 0x0045: return "VarR4FromI2";
-  case 0x0046: return "VarR4FromI4";
-  case 0x0168: return "VarR4FromI8";
-  case 0x0047: return "VarR4FromR8";
-  case 0x004a: return "VarR4FromStr";
-  case 0x0044: return "VarR4FromUI1";
-  case 0x00d6: return "VarR4FromUI2";
-  case 0x00d7: return "VarR4FromUI4";
-  case 0x0169: return "VarR4FromUI8";
-  case 0x0056: return "VarR8FromBool";
-  case 0x0052: return "VarR8FromCy";
-  case 0x0053: return "VarR8FromDate";
-  case 0x00dc: return "VarR8FromDec";
-  case 0x0055: return "VarR8FromDisp";
-  case 0x00d9: return "VarR8FromI1";
-  case 0x004f: return "VarR8FromI2";
-  case 0x0050: return "VarR8FromI4";
-  case 0x016a: return "VarR8FromI8";
-  case 0x0051: return "VarR8FromR4";
-  case 0x0054: return "VarR8FromStr";
-  case 0x004e: return "VarR8FromUI1";
-  case 0x00da: return "VarR8FromUI2";
-  case 0x00db: return "VarR8FromUI4";
-  case 0x016b: return "VarR8FromUI8";
-  case 0x013b: return "VarR8Pow";
-  case 0x013d: return "VarR8Round";
-  case 0x00af: return "VarRound";
-  case 0x009f: return "VarSub";
-  case 0x008c: return "VarTokenizeFormatString";
-  case 0x008a: return "VarUI1FromBool";
-  case 0x0086: return "VarUI1FromCy";
-  case 0x0087: return "VarUI1FromDate";
-  case 0x00f0: return "VarUI1FromDec";
-  case 0x0089: return "VarUI1FromDisp";
-  case 0x00ed: return "VarUI1FromI1";
-  case 0x0082: return "VarUI1FromI2";
-  case 0x0083: return "VarUI1FromI4";
-  case 0x0174: return "VarUI1FromI8";
-  case 0x0084: return "VarUI1FromR4";
-  case 0x0085: return "VarUI1FromR8";
-  case 0x0088: return "VarUI1FromStr";
-  case 0x00ee: return "VarUI1FromUI2";
-  case 0x00ef: return "VarUI1FromUI4";
-  case 0x0175: return "VarUI1FromUI8";
-  case 0x010a: return "VarUI2FromBool";
-  case 0x0107: return "VarUI2FromCy";
-  case 0x0106: return "VarUI2FromDate";
-  case 0x010d: return "VarUI2FromDec";
-  case 0x0109: return "VarUI2FromDisp";
-  case 0x010b: return "VarUI2FromI1";
-  case 0x0102: return "VarUI2FromI2";
-  case 0x0103: return "VarUI2FromI4";
-  case 0x017a: return "VarUI2FromI8";
-  case 0x0104: return "VarUI2FromR4";
-  case 0x0105: return "VarUI2FromR8";
-  case 0x0108: return "VarUI2FromStr";
-  case 0x0101: return "VarUI2FromUI1";
-  case 0x010c: return "VarUI2FromUI4";
-  case 0x017b: return "VarUI2FromUI8";
-  case 0x0117: return "VarUI4FromBool";
-  case 0x0114: return "VarUI4FromCy";
-  case 0x0113: return "VarUI4FromDate";
-  case 0x011a: return "VarUI4FromDec";
-  case 0x0116: return "VarUI4FromDisp";
-  case 0x0118: return "VarUI4FromI1";
-  case 0x010f: return "VarUI4FromI2";
-  case 0x0110: return "VarUI4FromI4";
-  case 0x01a9: return "VarUI4FromI8";
-  case 0x0111: return "VarUI4FromR4";
-  case 0x0112: return "VarUI4FromR8";
-  case 0x0115: return "VarUI4FromStr";
-  case 0x010e: return "VarUI4FromUI1";
-  case 0x0119: return "VarUI4FromUI2";
-  case 0x01aa: return "VarUI4FromUI8";
-  case 0x01b5: return "VarUI8FromBool";
-  case 0x01b1: return "VarUI8FromCy";
-  case 0x01b2: return "VarUI8FromDate";
-  case 0x01b9: return "VarUI8FromDec";
-  case 0x01b4: return "VarUI8FromDisp";
-  case 0x01b6: return "VarUI8FromI1";
-  case 0x01ae: return "VarUI8FromI2";
-  case 0x01ac: return "VarUI8FromI8";
-  case 0x01af: return "VarUI8FromR4";
-  case 0x01b0: return "VarUI8FromR8";
-  case 0x01b3: return "VarUI8FromStr";
-  case 0x01ad: return "VarUI8FromUI1";
-  case 0x01b7: return "VarUI8FromUI2";
-  case 0x01b8: return "VarUI8FromUI4";
-  case 0x014b: return "VarUdateFromDate";
-  case 0x0080: return "VarWeekdayName";
-  case 0x00a7: return "VarXor";
-  case 0x000c: return "VariantChangeType";
-  case 0x0093: return "VariantChangeTypeEx";
-  case 0x0009: return "VariantClear";
-  case 0x000a: return "VariantCopy";
-  case 0x000b: return "VariantCopyInd";
-  case 0x0008: return "VariantInit";
-  case 0x000d: return "VariantTimeToDosDateTime";
-  case 0x00b9: return "VariantTimeToSystemTime";
-  case 0x019d: return "VectorFromBstr";
+  switch (i) {
+    case 0x011e: return "BSTR_UserFree";
+    case 0x011c: return "BSTR_UserMarshal";
+    case 0x011b: return "BSTR_UserSize";
+    case 0x011d: return "BSTR_UserUnmarshal";
+    case 0x019e: return "BstrFromVector";
+    case 0x00ab: return "ClearCustData";
+    case 0x001f: return "CreateDispTypeInfo";
+    case 0x00ca: return "CreateErrorInfo";
+    case 0x0020: return "CreateStdDispatch";
+    case 0x00a0: return "CreateTypeLib";
+    case 0x00b4: return "CreateTypeLib2";
+    case 0x0092: return "DispCallFunc";
+    case 0x001d: return "DispGetIDsOfNames";
+    case 0x001c: return "DispGetParam";
+    case 0x001e: return "DispInvoke";
+    case 0x0090: return "DllCanUnloadNow";
+    case 0x0091: return "DllGetClassObject";
+    case 0x0097: return "DllRegisterServer";
+    case 0x012c: return "DllUnregisterServer";
+    case 0x000e: return "DosDateTimeToVariantTime";
+    case 0x0023: return "GetActiveObject";
+    case 0x014c: return "GetAltMonthNames";
+    case 0x00c8: return "GetErrorInfo";
+    case 0x0142: return "GetRecordInfoFromGuids";
+    case 0x0143: return "GetRecordInfoFromTypeInfo";
+    case 0x0146: return "GetVarConversionLocaleSetting";
+    case 0x00a5: return "LHashValOfNameSys";
+    case 0x00a6: return "LHashValOfNameSysA";
+    case 0x0128: return "LPSAFEARRAY_Marshal";
+    case 0x0127: return "LPSAFEARRAY_Size";
+    case 0x0129: return "LPSAFEARRAY_Unmarshal";
+    case 0x0126: return "LPSAFEARRAY_UserFree";
+    case 0x0124: return "LPSAFEARRAY_UserMarshal";
+    case 0x0123: return "LPSAFEARRAY_UserSize";
+    case 0x0125: return "LPSAFEARRAY_UserUnmarshal";
+    case 0x00a2: return "LoadRegTypeLib";
+    case 0x00a1: return "LoadTypeLib";
+    case 0x00b7: return "LoadTypeLibEx";
+    case 0x012d: return "OACreateTypeLib2";
+    case 0x00aa: return "OaBuildVersion";
+    case 0x01a4: return "OleCreateFontIndirect";
+    case 0x01a3: return "OleCreatePictureIndirect";
+    case 0x01a1: return "OleCreatePropertyFrame";
+    case 0x01a0: return "OleCreatePropertyFrameIndirect";
+    case 0x019f: return "OleIconToCursor";
+    case 0x01a2: return "OleLoadPicture";
+    case 0x0191: return "OleLoadPictureEx";
+    case 0x01a6: return "OleLoadPictureFile";
+    case 0x0192: return "OleLoadPictureFileEx";
+    case 0x01a8: return "OleLoadPicturePath";
+    case 0x01a7: return "OleSavePictureFile";
+    case 0x01a5: return "OleTranslateColor";
+    case 0x00a4: return "QueryPathOfRegTypeLib";
+    case 0x0021: return "RegisterActiveObject";
+    case 0x00a3: return "RegisterTypeLib";
+    case 0x01ba: return "RegisterTypeLibForUser";
+    case 0x0022: return "RevokeActiveObject";
+    case 0x0017: return "SafeArrayAccessData";
+    case 0x0025: return "SafeArrayAllocData";
+    case 0x0024: return "SafeArrayAllocDescriptor";
+    case 0x0029: return "SafeArrayAllocDescriptorEx";
+    case 0x001b: return "SafeArrayCopy";
+    case 0x019c: return "SafeArrayCopyData";
+    case 0x000f: return "SafeArrayCreate";
+    case 0x002a: return "SafeArrayCreateEx";
+    case 0x019b: return "SafeArrayCreateVector";
+    case 0x002b: return "SafeArrayCreateVectorEx";
+    case 0x0010: return "SafeArrayDestroy";
+    case 0x0027: return "SafeArrayDestroyData";
+    case 0x0026: return "SafeArrayDestroyDescriptor";
+    case 0x0011: return "SafeArrayGetDim";
+    case 0x0019: return "SafeArrayGetElement";
+    case 0x0012: return "SafeArrayGetElemsize";
+    case 0x0043: return "SafeArrayGetIID";
+    case 0x0014: return "SafeArrayGetLBound";
+    case 0x002d: return "SafeArrayGetRecordInfo";
+    case 0x0013: return "SafeArrayGetUBound";
+    case 0x004d: return "SafeArrayGetVartype";
+    case 0x0015: return "SafeArrayLock";
+    case 0x0094: return "SafeArrayPtrOfIndex";
+    case 0x001a: return "SafeArrayPutElement";
+    case 0x0028: return "SafeArrayRedim";
+    case 0x0039: return "SafeArraySetIID";
+    case 0x002c: return "SafeArraySetRecordInfo";
+    case 0x0018: return "SafeArrayUnaccessData";
+    case 0x0016: return "SafeArrayUnlock";
+    case 0x00c9: return "SetErrorInfo";
+    case 0x0147: return "SetOaNoCache";
+    case 0x0145: return "SetVarConversionLocaleSetting";
+    case 0x0002: return "SysAllocString";
+    case 0x0096: return "SysAllocStringByteLen";
+    case 0x0004: return "SysAllocStringLen";
+    case 0x0006: return "SysFreeString";
+    case 0x0003: return "SysReAllocString";
+    case 0x0005: return "SysReAllocStringLen";
+    case 0x0095: return "SysStringByteLen";
+    case 0x0007: return "SysStringLen";
+    case 0x00b8: return "SystemTimeToVariantTime";
+    case 0x00ba: return "UnRegisterTypeLib";
+    case 0x01bb: return "UnRegisterTypeLibForUser";
+    case 0x0122: return "VARIANT_UserFree";
+    case 0x0120: return "VARIANT_UserMarshal";
+    case 0x011f: return "VARIANT_UserSize";
+    case 0x0121: return "VARIANT_UserUnmarshal";
+    case 0x00a8: return "VarAbs";
+    case 0x008d: return "VarAdd";
+    case 0x008e: return "VarAnd";
+    case 0x007c: return "VarBoolFromCy";
+    case 0x007b: return "VarBoolFromDate";
+    case 0x00ec: return "VarBoolFromDec";
+    case 0x007e: return "VarBoolFromDisp";
+    case 0x00e9: return "VarBoolFromI1";
+    case 0x0077: return "VarBoolFromI2";
+    case 0x0078: return "VarBoolFromI4";
+    case 0x0172: return "VarBoolFromI8";
+    case 0x0079: return "VarBoolFromR4";
+    case 0x007a: return "VarBoolFromR8";
+    case 0x007d: return "VarBoolFromStr";
+    case 0x0076: return "VarBoolFromUI1";
+    case 0x00ea: return "VarBoolFromUI2";
+    case 0x00eb: return "VarBoolFromUI4";
+    case 0x0173: return "VarBoolFromUI8";
+    case 0x0139: return "VarBstrCat";
+    case 0x013a: return "VarBstrCmp";
+    case 0x0074: return "VarBstrFromBool";
+    case 0x0071: return "VarBstrFromCy";
+    case 0x0072: return "VarBstrFromDate";
+    case 0x00e8: return "VarBstrFromDec";
+    case 0x0073: return "VarBstrFromDisp";
+    case 0x00e5: return "VarBstrFromI1";
+    case 0x006d: return "VarBstrFromI2";
+    case 0x006e: return "VarBstrFromI4";
+    case 0x0170: return "VarBstrFromI8";
+    case 0x006f: return "VarBstrFromR4";
+    case 0x0070: return "VarBstrFromR8";
+    case 0x006c: return "VarBstrFromUI1";
+    case 0x00e6: return "VarBstrFromUI2";
+    case 0x00e7: return "VarBstrFromUI4";
+    case 0x0171: return "VarBstrFromUI8";
+    case 0x013e: return "VarCat";
+    case 0x00b0: return "VarCmp";
+    case 0x0132: return "VarCyAbs";
+    case 0x012b: return "VarCyAdd";
+    case 0x0137: return "VarCyCmp";
+    case 0x0138: return "VarCyCmpR8";
+    case 0x0133: return "VarCyFix";
+    case 0x006a: return "VarCyFromBool";
+    case 0x0067: return "VarCyFromDate";
+    case 0x00e4: return "VarCyFromDec";
+    case 0x0069: return "VarCyFromDisp";
+    case 0x00e1: return "VarCyFromI1";
+    case 0x0063: return "VarCyFromI2";
+    case 0x0064: return "VarCyFromI4";
+    case 0x016e: return "VarCyFromI8";
+    case 0x0065: return "VarCyFromR4";
+    case 0x0066: return "VarCyFromR8";
+    case 0x0068: return "VarCyFromStr";
+    case 0x0062: return "VarCyFromUI1";
+    case 0x00e2: return "VarCyFromUI2";
+    case 0x00e3: return "VarCyFromUI4";
+    case 0x016f: return "VarCyFromUI8";
+    case 0x0134: return "VarCyInt";
+    case 0x012f: return "VarCyMul";
+    case 0x0130: return "VarCyMulI4";
+    case 0x0149: return "VarCyMulI8";
+    case 0x0135: return "VarCyNeg";
+    case 0x0136: return "VarCyRound";
+    case 0x0131: return "VarCySub";
+    case 0x0060: return "VarDateFromBool";
+    case 0x005d: return "VarDateFromCy";
+    case 0x00e0: return "VarDateFromDec";
+    case 0x005f: return "VarDateFromDisp";
+    case 0x00dd: return "VarDateFromI1";
+    case 0x0059: return "VarDateFromI2";
+    case 0x005a: return "VarDateFromI4";
+    case 0x016c: return "VarDateFromI8";
+    case 0x005b: return "VarDateFromR4";
+    case 0x005c: return "VarDateFromR8";
+    case 0x005e: return "VarDateFromStr";
+    case 0x0058: return "VarDateFromUI1";
+    case 0x00de: return "VarDateFromUI2";
+    case 0x00df: return "VarDateFromUI4";
+    case 0x016d: return "VarDateFromUI8";
+    case 0x014a: return "VarDateFromUdate";
+    case 0x013f: return "VarDateFromUdateEx";
+    case 0x00b6: return "VarDecAbs";
+    case 0x00b1: return "VarDecAdd";
+    case 0x00cc: return "VarDecCmp";
+    case 0x012a: return "VarDecCmpR8";
+    case 0x00b2: return "VarDecDiv";
+    case 0x00bb: return "VarDecFix";
+    case 0x00c7: return "VarDecFromBool";
+    case 0x00c4: return "VarDecFromCy";
+    case 0x00c3: return "VarDecFromDate";
+    case 0x00c6: return "VarDecFromDisp";
+    case 0x00f1: return "VarDecFromI1";
+    case 0x00bf: return "VarDecFromI2";
+    case 0x00c0: return "VarDecFromI4";
+    case 0x0176: return "VarDecFromI8";
+    case 0x00c1: return "VarDecFromR4";
+    case 0x00c2: return "VarDecFromR8";
+    case 0x00c5: return "VarDecFromStr";
+    case 0x00be: return "VarDecFromUI1";
+    case 0x00f2: return "VarDecFromUI2";
+    case 0x00f3: return "VarDecFromUI4";
+    case 0x0177: return "VarDecFromUI8";
+    case 0x00bc: return "VarDecInt";
+    case 0x00b3: return "VarDecMul";
+    case 0x00bd: return "VarDecNeg";
+    case 0x00cb: return "VarDecRound";
+    case 0x00b5: return "VarDecSub";
+    case 0x008f: return "VarDiv";
+    case 0x0098: return "VarEqv";
+    case 0x00a9: return "VarFix";
+    case 0x0057: return "VarFormat";
+    case 0x007f: return "VarFormatCurrency";
+    case 0x0061: return "VarFormatDateTime";
+    case 0x008b: return "VarFormatFromTokens";
+    case 0x006b: return "VarFormatNumber";
+    case 0x0075: return "VarFormatPercent";
+    case 0x00fd: return "VarI1FromBool";
+    case 0x00fa: return "VarI1FromCy";
+    case 0x00f9: return "VarI1FromDate";
+    case 0x0100: return "VarI1FromDec";
+    case 0x00fc: return "VarI1FromDisp";
+    case 0x00f5: return "VarI1FromI2";
+    case 0x00f6: return "VarI1FromI4";
+    case 0x0178: return "VarI1FromI8";
+    case 0x00f7: return "VarI1FromR4";
+    case 0x00f8: return "VarI1FromR8";
+    case 0x00fb: return "VarI1FromStr";
+    case 0x00f4: return "VarI1FromUI1";
+    case 0x00fe: return "VarI1FromUI2";
+    case 0x00ff: return "VarI1FromUI4";
+    case 0x0179: return "VarI1FromUI8";
+    case 0x0038: return "VarI2FromBool";
+    case 0x0034: return "VarI2FromCy";
+    case 0x0035: return "VarI2FromDate";
+    case 0x00d0: return "VarI2FromDec";
+    case 0x0037: return "VarI2FromDisp";
+    case 0x00cd: return "VarI2FromI1";
+    case 0x0031: return "VarI2FromI4";
+    case 0x015a: return "VarI2FromI8";
+    case 0x0032: return "VarI2FromR4";
+    case 0x0033: return "VarI2FromR8";
+    case 0x0036: return "VarI2FromStr";
+    case 0x0030: return "VarI2FromUI1";
+    case 0x00ce: return "VarI2FromUI2";
+    case 0x00cf: return "VarI2FromUI4";
+    case 0x015b: return "VarI2FromUI8";
+    case 0x0042: return "VarI4FromBool";
+    case 0x003e: return "VarI4FromCy";
+    case 0x003f: return "VarI4FromDate";
+    case 0x00d4: return "VarI4FromDec";
+    case 0x0041: return "VarI4FromDisp";
+    case 0x00d1: return "VarI4FromI1";
+    case 0x003b: return "VarI4FromI2";
+    case 0x015c: return "VarI4FromI8";
+    case 0x003c: return "VarI4FromR4";
+    case 0x003d: return "VarI4FromR8";
+    case 0x0040: return "VarI4FromStr";
+    case 0x003a: return "VarI4FromUI1";
+    case 0x00d2: return "VarI4FromUI2";
+    case 0x00d3: return "VarI4FromUI4";
+    case 0x015d: return "VarI4FromUI8";
+    case 0x0155: return "VarI8FromBool";
+    case 0x0151: return "VarI8FromCy";
+    case 0x0152: return "VarI8FromDate";
+    case 0x0159: return "VarI8FromDec";
+    case 0x0154: return "VarI8FromDisp";
+    case 0x0156: return "VarI8FromI1";
+    case 0x014e: return "VarI8FromI2";
+    case 0x014f: return "VarI8FromR4";
+    case 0x0150: return "VarI8FromR8";
+    case 0x0153: return "VarI8FromStr";
+    case 0x014d: return "VarI8FromUI1";
+    case 0x0157: return "VarI8FromUI2";
+    case 0x0158: return "VarI8FromUI4";
+    case 0x01ab: return "VarI8FromUI8";
+    case 0x0099: return "VarIdiv";
+    case 0x009a: return "VarImp";
+    case 0x00ac: return "VarInt";
+    case 0x009b: return "VarMod";
+    case 0x0081: return "VarMonthName";
+    case 0x009c: return "VarMul";
+    case 0x00ad: return "VarNeg";
+    case 0x00ae: return "VarNot";
+    case 0x002f: return "VarNumFromParseNum";
+    case 0x009d: return "VarOr";
+    case 0x002e: return "VarParseNumFromStr";
+    case 0x009e: return "VarPow";
+    case 0x013c: return "VarR4CmpR8";
+    case 0x004c: return "VarR4FromBool";
+    case 0x0048: return "VarR4FromCy";
+    case 0x0049: return "VarR4FromDate";
+    case 0x00d8: return "VarR4FromDec";
+    case 0x004b: return "VarR4FromDisp";
+    case 0x00d5: return "VarR4FromI1";
+    case 0x0045: return "VarR4FromI2";
+    case 0x0046: return "VarR4FromI4";
+    case 0x0168: return "VarR4FromI8";
+    case 0x0047: return "VarR4FromR8";
+    case 0x004a: return "VarR4FromStr";
+    case 0x0044: return "VarR4FromUI1";
+    case 0x00d6: return "VarR4FromUI2";
+    case 0x00d7: return "VarR4FromUI4";
+    case 0x0169: return "VarR4FromUI8";
+    case 0x0056: return "VarR8FromBool";
+    case 0x0052: return "VarR8FromCy";
+    case 0x0053: return "VarR8FromDate";
+    case 0x00dc: return "VarR8FromDec";
+    case 0x0055: return "VarR8FromDisp";
+    case 0x00d9: return "VarR8FromI1";
+    case 0x004f: return "VarR8FromI2";
+    case 0x0050: return "VarR8FromI4";
+    case 0x016a: return "VarR8FromI8";
+    case 0x0051: return "VarR8FromR4";
+    case 0x0054: return "VarR8FromStr";
+    case 0x004e: return "VarR8FromUI1";
+    case 0x00da: return "VarR8FromUI2";
+    case 0x00db: return "VarR8FromUI4";
+    case 0x016b: return "VarR8FromUI8";
+    case 0x013b: return "VarR8Pow";
+    case 0x013d: return "VarR8Round";
+    case 0x00af: return "VarRound";
+    case 0x009f: return "VarSub";
+    case 0x008c: return "VarTokenizeFormatString";
+    case 0x008a: return "VarUI1FromBool";
+    case 0x0086: return "VarUI1FromCy";
+    case 0x0087: return "VarUI1FromDate";
+    case 0x00f0: return "VarUI1FromDec";
+    case 0x0089: return "VarUI1FromDisp";
+    case 0x00ed: return "VarUI1FromI1";
+    case 0x0082: return "VarUI1FromI2";
+    case 0x0083: return "VarUI1FromI4";
+    case 0x0174: return "VarUI1FromI8";
+    case 0x0084: return "VarUI1FromR4";
+    case 0x0085: return "VarUI1FromR8";
+    case 0x0088: return "VarUI1FromStr";
+    case 0x00ee: return "VarUI1FromUI2";
+    case 0x00ef: return "VarUI1FromUI4";
+    case 0x0175: return "VarUI1FromUI8";
+    case 0x010a: return "VarUI2FromBool";
+    case 0x0107: return "VarUI2FromCy";
+    case 0x0106: return "VarUI2FromDate";
+    case 0x010d: return "VarUI2FromDec";
+    case 0x0109: return "VarUI2FromDisp";
+    case 0x010b: return "VarUI2FromI1";
+    case 0x0102: return "VarUI2FromI2";
+    case 0x0103: return "VarUI2FromI4";
+    case 0x017a: return "VarUI2FromI8";
+    case 0x0104: return "VarUI2FromR4";
+    case 0x0105: return "VarUI2FromR8";
+    case 0x0108: return "VarUI2FromStr";
+    case 0x0101: return "VarUI2FromUI1";
+    case 0x010c: return "VarUI2FromUI4";
+    case 0x017b: return "VarUI2FromUI8";
+    case 0x0117: return "VarUI4FromBool";
+    case 0x0114: return "VarUI4FromCy";
+    case 0x0113: return "VarUI4FromDate";
+    case 0x011a: return "VarUI4FromDec";
+    case 0x0116: return "VarUI4FromDisp";
+    case 0x0118: return "VarUI4FromI1";
+    case 0x010f: return "VarUI4FromI2";
+    case 0x0110: return "VarUI4FromI4";
+    case 0x01a9: return "VarUI4FromI8";
+    case 0x0111: return "VarUI4FromR4";
+    case 0x0112: return "VarUI4FromR8";
+    case 0x0115: return "VarUI4FromStr";
+    case 0x010e: return "VarUI4FromUI1";
+    case 0x0119: return "VarUI4FromUI2";
+    case 0x01aa: return "VarUI4FromUI8";
+    case 0x01b5: return "VarUI8FromBool";
+    case 0x01b1: return "VarUI8FromCy";
+    case 0x01b2: return "VarUI8FromDate";
+    case 0x01b9: return "VarUI8FromDec";
+    case 0x01b4: return "VarUI8FromDisp";
+    case 0x01b6: return "VarUI8FromI1";
+    case 0x01ae: return "VarUI8FromI2";
+    case 0x01ac: return "VarUI8FromI8";
+    case 0x01af: return "VarUI8FromR4";
+    case 0x01b0: return "VarUI8FromR8";
+    case 0x01b3: return "VarUI8FromStr";
+    case 0x01ad: return "VarUI8FromUI1";
+    case 0x01b7: return "VarUI8FromUI2";
+    case 0x01b8: return "VarUI8FromUI4";
+    case 0x014b: return "VarUdateFromDate";
+    case 0x0080: return "VarWeekdayName";
+    case 0x00a7: return "VarXor";
+    case 0x000c: return "VariantChangeType";
+    case 0x0093: return "VariantChangeTypeEx";
+    case 0x0009: return "VariantClear";
+    case 0x000a: return "VariantCopy";
+    case 0x000b: return "VariantCopyInd";
+    case 0x0008: return "VariantInit";
+    case 0x000d: return "VariantTimeToDosDateTime";
+    case 0x00b9: return "VariantTimeToSystemTime";
+    case 0x019d: return "VectorFromBstr";
   }
   return nullptr;
 }


-}
 }

-#endif

+#endif
diff --git a/deps/LIEF/src/PE/utils/ordinals_lookup_tables/shcore_dll_lookup.hpp b/deps/LIEF/src/PE/utils/ordinals_lookup_tables/shcore_dll_lookup.hpp
index ab2d42eb85c..957a2b20993 100644
--- a/deps/LIEF/src/PE/utils/ordinals_lookup_tables/shcore_dll_lookup.hpp
+++ b/deps/LIEF/src/PE/utils/ordinals_lookup_tables/shcore_dll_lookup.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -17,106 +17,105 @@
 #define LIEF_PE_SHCORE_DLL_LOOKUP_H
 #include <cstdint>

-namespace LIEF {
-namespace PE {
+
+namespace LIEF::PE {

 inline const char* shcore_dll_lookup(uint32_t i) {
-  switch(i) {
-  case 0x0002: return "CommandLineToArgvW";
-  case 0x0003: return "CreateRandomAccessStreamOnFile";
-  case 0x0004: return "CreateRandomAccessStreamOverStream";
-  case 0x0005: return "CreateStreamOverRandomAccessStream";
-  case 0x0006: return "DllCanUnloadNow";
-  case 0x0007: return "DllGetActivationFactory";
-  case 0x0008: return "DllGetClassObject";
-  case 0x0009: return "GetCurrentProcessExplicitAppUserModelID";
-  case 0x000a: return "GetDpiForMonitor";
-  case 0x000b: return "GetDpiForShellUIComponent";
-  case 0x000c: return "GetFeatureEnabledState";
-  case 0x000d: return "GetProcessDpiAwareness";
-  case 0x000e: return "GetProcessReference";
-  case 0x000f: return "GetScaleFactorForDevice";
-  case 0x0010: return "GetScaleFactorForMonitor";
-  case 0x0011: return "IStream_Copy";
-  case 0x0012: return "IStream_Read";
-  case 0x0013: return "IStream_ReadStr";
-  case 0x0014: return "IStream_Reset";
-  case 0x0015: return "IStream_Size";
-  case 0x0016: return "IStream_Write";
-  case 0x0017: return "IStream_WriteStr";
-  case 0x0018: return "IUnknown_AtomicRelease";
-  case 0x0019: return "IUnknown_GetSite";
-  case 0x001a: return "IUnknown_QueryService";
-  case 0x001b: return "IUnknown_Set";
-  case 0x001c: return "IUnknown_SetSite";
-  case 0x001d: return "IsOS";
-  case 0x001e: return "RecordFeatureError";
-  case 0x001f: return "RecordFeatureUsage";
-  case 0x0020: return "RegisterScaleChangeEvent";
-  case 0x0021: return "RegisterScaleChangeNotifications";
-  case 0x0022: return "RevokeScaleChangeNotifications";
-  case 0x0023: return "SHAnsiToAnsi";
-  case 0x0024: return "SHAnsiToUnicode";
-  case 0x0025: return "SHCopyKeyA";
-  case 0x0026: return "SHCopyKeyW";
-  case 0x0027: return "SHCreateMemStream";
-  case 0x0028: return "SHCreateStreamOnFileA";
-  case 0x0029: return "SHCreateStreamOnFileEx";
-  case 0x002a: return "SHCreateStreamOnFileW";
-  case 0x002b: return "SHCreateThread";
-  case 0x002c: return "SHCreateThreadRef";
-  case 0x002d: return "SHCreateThreadWithHandle";
-  case 0x002e: return "SHDeleteEmptyKeyA";
-  case 0x002f: return "SHDeleteEmptyKeyW";
-  case 0x0030: return "SHDeleteKeyA";
-  case 0x0031: return "SHDeleteKeyW";
-  case 0x0032: return "SHDeleteValueA";
-  case 0x0033: return "SHDeleteValueW";
-  case 0x0034: return "SHEnumKeyExA";
-  case 0x0035: return "SHEnumKeyExW";
-  case 0x0036: return "SHEnumValueA";
-  case 0x0037: return "SHEnumValueW";
-  case 0x0038: return "SHGetThreadRef";
-  case 0x0039: return "SHGetValueA";
-  case 0x003a: return "SHGetValueW";
-  case 0x003b: return "SHOpenRegStream2A";
-  case 0x003c: return "SHOpenRegStream2W";
-  case 0x003d: return "SHOpenRegStreamA";
-  case 0x003e: return "SHOpenRegStreamW";
-  case 0x003f: return "SHQueryInfoKeyA";
-  case 0x0040: return "SHQueryInfoKeyW";
-  case 0x0041: return "SHQueryValueExA";
-  case 0x0042: return "SHQueryValueExW";
-  case 0x0043: return "SHRegDuplicateHKey";
-  case 0x0044: return "SHRegGetIntW";
-  case 0x0045: return "SHRegGetPathA";
-  case 0x0046: return "SHRegGetPathW";
-  case 0x0047: return "SHRegGetValueA";
-  case 0x007a: return "SHRegGetValueFromHKCUHKLM";
-  case 0x0048: return "SHRegGetValueW";
-  case 0x0049: return "SHRegSetPathA";
-  case 0x004a: return "SHRegSetPathW";
-  case 0x004b: return "SHReleaseThreadRef";
-  case 0x004c: return "SHSetThreadRef";
-  case 0x004d: return "SHSetValueA";
-  case 0x004e: return "SHSetValueW";
-  case 0x004f: return "SHStrDupA";
-  case 0x0050: return "SHStrDupW";
-  case 0x0051: return "SHUnicodeToAnsi";
-  case 0x0052: return "SHUnicodeToUnicode";
-  case 0x0053: return "SetCurrentProcessExplicitAppUserModelID";
-  case 0x0054: return "SetProcessDpiAwareness";
-  case 0x0055: return "SetProcessReference";
-  case 0x0056: return "SubscribeFeatureStateChangeNotification";
-  case 0x0057: return "UnregisterScaleChangeEvent";
-  case 0x0058: return "UnsubscribeFeatureStateChangeNotification";
+  switch (i) {
+    case 0x0002: return "CommandLineToArgvW";
+    case 0x0003: return "CreateRandomAccessStreamOnFile";
+    case 0x0004: return "CreateRandomAccessStreamOverStream";
+    case 0x0005: return "CreateStreamOverRandomAccessStream";
+    case 0x0006: return "DllCanUnloadNow";
+    case 0x0007: return "DllGetActivationFactory";
+    case 0x0008: return "DllGetClassObject";
+    case 0x0009: return "GetCurrentProcessExplicitAppUserModelID";
+    case 0x000a: return "GetDpiForMonitor";
+    case 0x000b: return "GetDpiForShellUIComponent";
+    case 0x000c: return "GetFeatureEnabledState";
+    case 0x000d: return "GetProcessDpiAwareness";
+    case 0x000e: return "GetProcessReference";
+    case 0x000f: return "GetScaleFactorForDevice";
+    case 0x0010: return "GetScaleFactorForMonitor";
+    case 0x0011: return "IStream_Copy";
+    case 0x0012: return "IStream_Read";
+    case 0x0013: return "IStream_ReadStr";
+    case 0x0014: return "IStream_Reset";
+    case 0x0015: return "IStream_Size";
+    case 0x0016: return "IStream_Write";
+    case 0x0017: return "IStream_WriteStr";
+    case 0x0018: return "IUnknown_AtomicRelease";
+    case 0x0019: return "IUnknown_GetSite";
+    case 0x001a: return "IUnknown_QueryService";
+    case 0x001b: return "IUnknown_Set";
+    case 0x001c: return "IUnknown_SetSite";
+    case 0x001d: return "IsOS";
+    case 0x001e: return "RecordFeatureError";
+    case 0x001f: return "RecordFeatureUsage";
+    case 0x0020: return "RegisterScaleChangeEvent";
+    case 0x0021: return "RegisterScaleChangeNotifications";
+    case 0x0022: return "RevokeScaleChangeNotifications";
+    case 0x0023: return "SHAnsiToAnsi";
+    case 0x0024: return "SHAnsiToUnicode";
+    case 0x0025: return "SHCopyKeyA";
+    case 0x0026: return "SHCopyKeyW";
+    case 0x0027: return "SHCreateMemStream";
+    case 0x0028: return "SHCreateStreamOnFileA";
+    case 0x0029: return "SHCreateStreamOnFileEx";
+    case 0x002a: return "SHCreateStreamOnFileW";
+    case 0x002b: return "SHCreateThread";
+    case 0x002c: return "SHCreateThreadRef";
+    case 0x002d: return "SHCreateThreadWithHandle";
+    case 0x002e: return "SHDeleteEmptyKeyA";
+    case 0x002f: return "SHDeleteEmptyKeyW";
+    case 0x0030: return "SHDeleteKeyA";
+    case 0x0031: return "SHDeleteKeyW";
+    case 0x0032: return "SHDeleteValueA";
+    case 0x0033: return "SHDeleteValueW";
+    case 0x0034: return "SHEnumKeyExA";
+    case 0x0035: return "SHEnumKeyExW";
+    case 0x0036: return "SHEnumValueA";
+    case 0x0037: return "SHEnumValueW";
+    case 0x0038: return "SHGetThreadRef";
+    case 0x0039: return "SHGetValueA";
+    case 0x003a: return "SHGetValueW";
+    case 0x003b: return "SHOpenRegStream2A";
+    case 0x003c: return "SHOpenRegStream2W";
+    case 0x003d: return "SHOpenRegStreamA";
+    case 0x003e: return "SHOpenRegStreamW";
+    case 0x003f: return "SHQueryInfoKeyA";
+    case 0x0040: return "SHQueryInfoKeyW";
+    case 0x0041: return "SHQueryValueExA";
+    case 0x0042: return "SHQueryValueExW";
+    case 0x0043: return "SHRegDuplicateHKey";
+    case 0x0044: return "SHRegGetIntW";
+    case 0x0045: return "SHRegGetPathA";
+    case 0x0046: return "SHRegGetPathW";
+    case 0x0047: return "SHRegGetValueA";
+    case 0x007a: return "SHRegGetValueFromHKCUHKLM";
+    case 0x0048: return "SHRegGetValueW";
+    case 0x0049: return "SHRegSetPathA";
+    case 0x004a: return "SHRegSetPathW";
+    case 0x004b: return "SHReleaseThreadRef";
+    case 0x004c: return "SHSetThreadRef";
+    case 0x004d: return "SHSetValueA";
+    case 0x004e: return "SHSetValueW";
+    case 0x004f: return "SHStrDupA";
+    case 0x0050: return "SHStrDupW";
+    case 0x0051: return "SHUnicodeToAnsi";
+    case 0x0052: return "SHUnicodeToUnicode";
+    case 0x0053: return "SetCurrentProcessExplicitAppUserModelID";
+    case 0x0054: return "SetProcessDpiAwareness";
+    case 0x0055: return "SetProcessReference";
+    case 0x0056: return "SubscribeFeatureStateChangeNotification";
+    case 0x0057: return "UnregisterScaleChangeEvent";
+    case 0x0058: return "UnsubscribeFeatureStateChangeNotification";
   }
   return nullptr;
 }


-}
 }

-#endif

+#endif
diff --git a/deps/LIEF/src/PE/utils/ordinals_lookup_tables/shell32_dll_lookup.hpp b/deps/LIEF/src/PE/utils/ordinals_lookup_tables/shell32_dll_lookup.hpp
index 1305ca7bdc1..dd017453168 100644
--- a/deps/LIEF/src/PE/utils/ordinals_lookup_tables/shell32_dll_lookup.hpp
+++ b/deps/LIEF/src/PE/utils/ordinals_lookup_tables/shell32_dll_lookup.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -17,367 +17,366 @@
 #define LIEF_PE_SHELL32_DLL_LOOKUP_H
 #include <cstdint>

-namespace LIEF {
-namespace PE {
+
+namespace LIEF::PE {

 inline const char* shell32_dll_lookup(uint32_t i) {
-  switch(i) {
-  case 0x00ff: return "AppCompat_RunDLLW";
-  case 0x0107: return "AssocCreateForClasses";
-  case 0x010b: return "AssocGetDetailsOfPropKey";
-  case 0x02bd: return "CDefFolderMenu_Create2";
-  case 0x0053: return "CIDLData_CreateFromIDArray";
-  case 0x010c: return "CheckEscapesW";
-  case 0x010d: return "CommandLineToArgvW";
-  case 0x0110: return "Control_RunDLL";
-  case 0x0111: return "Control_RunDLLA";
-  case 0x0112: return "Control_RunDLLAsUserW";
-  case 0x0113: return "Control_RunDLLW";
-  case 0x0081: return "DAD_AutoScroll";
-  case 0x0083: return "DAD_DragEnterEx";
-  case 0x0016: return "DAD_DragEnterEx2";
-  case 0x0084: return "DAD_DragLeave";
-  case 0x0086: return "DAD_DragMove";
-  case 0x0088: return "DAD_SetDragImage";
-  case 0x0089: return "DAD_ShowDragImage";
-  case 0x0114: return "DllCanUnloadNow";
-  case 0x0115: return "DllGetActivationFactory";
-  case 0x0116: return "DllGetClassObject";
-  case 0x0117: return "DllGetVersion";
-  case 0x0118: return "DllInstall";
-  case 0x0119: return "DllRegisterServer";
-  case 0x011a: return "DllUnregisterServer";
-  case 0x011b: return "DoEnvironmentSubstA";
-  case 0x011c: return "DoEnvironmentSubstW";
-  case 0x011d: return "DragAcceptFiles";
-  case 0x011e: return "DragFinish";
-  case 0x011f: return "DragQueryFile";
-  case 0x0120: return "DragQueryFileA";
-  case 0x0121: return "DragQueryFileAorW";
-  case 0x0122: return "DragQueryFileW";
-  case 0x0123: return "DragQueryPoint";
-  case 0x0040: return "DriveType";
-  case 0x0124: return "DuplicateIcon";
-  case 0x0125: return "ExtractAssociatedIconA";
-  case 0x0126: return "ExtractAssociatedIconExA";
-  case 0x0127: return "ExtractAssociatedIconExW";
-  case 0x0128: return "ExtractAssociatedIconW";
-  case 0x0129: return "ExtractIconA";
-  case 0x012a: return "ExtractIconEx";
-  case 0x012b: return "ExtractIconExA";
-  case 0x012c: return "ExtractIconExW";
-  case 0x012d: return "ExtractIconW";
-  case 0x012e: return "FindExecutableA";
-  case 0x012f: return "FindExecutableW";
-  case 0x0130: return "FreeIconList";
-  case 0x0131: return "GetCurrentProcessExplicitAppUserModelID";
-  case 0x003f: return "GetFileNameFromBrowse";
-  case 0x009a: return "ILAppendID";
-  case 0x0012: return "ILClone";
-  case 0x0013: return "ILCloneFirst";
-  case 0x0019: return "ILCombine";
-  case 0x009d: return "ILCreateFromPath";
-  case 0x00bd: return "ILCreateFromPathA";
-  case 0x00be: return "ILCreateFromPathW";
-  case 0x0018: return "ILFindChild";
-  case 0x0010: return "ILFindLastID";
-  case 0x009b: return "ILFree";
-  case 0x0099: return "ILGetNext";
-  case 0x0098: return "ILGetSize";
-  case 0x0015: return "ILIsEqual";
-  case 0x0017: return "ILIsParent";
-  case 0x034e: return "ILLoadFromStreamEx";
-  case 0x0011: return "ILRemoveLastID";
-  case 0x001b: return "ILSaveToStream";
-  case 0x0132: return "InitNetworkAddressControl";
-  case 0x0133: return "InternalExtractIconListA";
-  case 0x0134: return "InternalExtractIconListW";
-  case 0x0077: return "IsLFNDrive";
-  case 0x0029: return "IsLFNDriveA";
-  case 0x002a: return "IsLFNDriveW";
-  case 0x0042: return "IsNetDrive";
-  case 0x02a8: return "IsUserAnAdmin";
-  case 0x0135: return "LaunchMSHelp_RunDLLW";
-  case 0x0051: return "OpenAs_RunDLL";
-  case 0x007d: return "OpenAs_RunDLLA";
-  case 0x0085: return "OpenAs_RunDLLW";
-  case 0x0055: return "OpenRegStream";
-  case 0x0136: return "Options_RunDLL";
-  case 0x0137: return "Options_RunDLLA";
-  case 0x0138: return "Options_RunDLLW";
-  case 0x00ab: return "PathCleanupSpec";
-  case 0x0139: return "PathCleanupSpecWorker";
-  case 0x005c: return "PathGetShortPath";
-  case 0x002b: return "PathIsExe";
-  case 0x013a: return "PathIsExeWorker";
-  case 0x00f0: return "PathIsSlowA";
-  case 0x00ef: return "PathIsSlowW";
-  case 0x002f: return "PathMakeUniqueName";
-  case 0x0031: return "PathQualify";
-  case 0x0033: return "PathResolve";
-  case 0x004b: return "PathYetAnotherMakeUniqueName";
-  case 0x003e: return "PickIconDlg";
-  case 0x000d: return "PifMgr_CloseProperties";
-  case 0x000a: return "PifMgr_GetProperties";
-  case 0x0009: return "PifMgr_OpenProperties";
-  case 0x000b: return "PifMgr_SetProperties";
-  case 0x0087: return "PrepareDiscForBurnRunDllW";
-  case 0x008a: return "PrintersGetCommand_RunDLL";
-  case 0x008b: return "PrintersGetCommand_RunDLLA";
-  case 0x0096: return "PrintersGetCommand_RunDLLW";
-  case 0x028e: return "ReadCabinetState";
-  case 0x020c: return "RealDriveType";
-  case 0x00c7: return "RealShellExecuteA";
-  case 0x00cf: return "RealShellExecuteExA";
-  case 0x00d0: return "RealShellExecuteExW";
-  case 0x00e2: return "RealShellExecuteW";
-  case 0x013b: return "RegenerateUserEnvironment";
-  case 0x003b: return "RestartDialog";
-  case 0x02da: return "RestartDialogEx";
-  case 0x013c: return "RunAsNewUser_RunDLLW";
-  case 0x013d: return "SHAddDefaultPropertiesByExt";
-  case 0x00a7: return "SHAddFromPropSheetExtArray";
-  case 0x013e: return "SHAddToRecentDocs";
-  case 0x00c4: return "SHAlloc";
-  case 0x013f: return "SHAppBarMessage";
-  case 0x0140: return "SHAssocEnumHandlers";
-  case 0x0141: return "SHAssocEnumHandlersForProtocolByApplication";
-  case 0x0142: return "SHBindToFolderIDListParent";
-  case 0x0143: return "SHBindToFolderIDListParentEx";
-  case 0x0144: return "SHBindToObject";
-  case 0x0145: return "SHBindToParent";
-  case 0x0146: return "SHBrowseForFolder";
-  case 0x0147: return "SHBrowseForFolderA";
-  case 0x0148: return "SHBrowseForFolderW";
-  case 0x0093: return "SHCLSIDFromString";
-  case 0x0284: return "SHChangeNotification_Lock";
-  case 0x0285: return "SHChangeNotification_Unlock";
-  case 0x0149: return "SHChangeNotify";
-  case 0x0004: return "SHChangeNotifyDeregister";
-  case 0x0002: return "SHChangeNotifyRegister";
-  case 0x014a: return "SHChangeNotifyRegisterThread";
-  case 0x014b: return "SHChangeNotifySuspendResume";
-  case 0x0059: return "SHCloneSpecialIDList";
-  case 0x0066: return "SHCoCreateInstance";
-  case 0x014c: return "SHCoCreateInstanceWorker";
-  case 0x014d: return "SHCreateAssociationRegistration";
-  case 0x014e: return "SHCreateDataObject";
-  case 0x014f: return "SHCreateDefaultContextMenu";
-  case 0x0150: return "SHCreateDefaultExtractIcon";
-  case 0x0151: return "SHCreateDefaultPropertiesOp";
-  case 0x00a5: return "SHCreateDirectory";
-  case 0x0152: return "SHCreateDirectoryExA";
-  case 0x0153: return "SHCreateDirectoryExW";
-  case 0x0154: return "SHCreateDirectoryExWWorker";
-  case 0x02e7: return "SHCreateFileExtractIconW";
-  case 0x0155: return "SHCreateItemFromIDList";
-  case 0x0156: return "SHCreateItemFromParsingName";
-  case 0x0157: return "SHCreateItemFromRelativeName";
-  case 0x0158: return "SHCreateItemInKnownFolder";
-  case 0x0159: return "SHCreateItemWithParent";
-  case 0x015a: return "SHCreateLocalServerRunDll";
-  case 0x015b: return "SHCreateProcessAsUserW";
-  case 0x00a8: return "SHCreatePropSheetExtArray";
-  case 0x015c: return "SHCreateQueryCancelAutoPlayMoniker";
-  case 0x0100: return "SHCreateShellFolderView";
-  case 0x00ae: return "SHCreateShellFolderViewEx";
-  case 0x015d: return "SHCreateShellItem";
-  case 0x015e: return "SHCreateShellItemArray";
-  case 0x015f: return "SHCreateShellItemArrayFromDataObject";
-  case 0x0160: return "SHCreateShellItemArrayFromIDLists";
-  case 0x0161: return "SHCreateShellItemArrayFromShellItem";
-  case 0x004a: return "SHCreateStdEnumFmtEtc";
-  case 0x0003: return "SHDefExtractIconA";
-  case 0x0006: return "SHDefExtractIconW";
-  case 0x00a9: return "SHDestroyPropSheetExtArray";
-  case 0x0058: return "SHDoDragDrop";
-  case 0x0162: return "SHEmptyRecycleBinA";
-  case 0x0163: return "SHEmptyRecycleBinW";
-  case 0x0164: return "SHEnableServiceObject";
-  case 0x0165: return "SHEnumerateUnreadMailAccountsW";
-  case 0x0166: return "SHEvaluateSystemCommandTemplate";
-  case 0x0167: return "SHExtractIconsW";
-  case 0x0168: return "SHFileOperation";
-  case 0x0169: return "SHFileOperationA";
-  case 0x016a: return "SHFileOperationW";
-  case 0x005a: return "SHFindFiles";
-  case 0x0095: return "SHFind_InitMenuPopup";
-  case 0x020e: return "SHFlushSFCache";
-  case 0x016b: return "SHFormatDrive";
-  case 0x00c3: return "SHFree";
-  case 0x016c: return "SHFreeNameMappings";
-  case 0x02ee: return "SHGetAttributesFromDataObject";
-  case 0x016d: return "SHGetDataFromIDListA";
-  case 0x016e: return "SHGetDataFromIDListW";
-  case 0x016f: return "SHGetDesktopFolder";
-  case 0x0170: return "SHGetDesktopFolderWorker";
-  case 0x0171: return "SHGetDiskFreeSpaceA";
-  case 0x0172: return "SHGetDiskFreeSpaceExA";
-  case 0x0173: return "SHGetDiskFreeSpaceExW";
-  case 0x0174: return "SHGetDriveMedia";
-  case 0x0175: return "SHGetFileInfo";
-  case 0x0176: return "SHGetFileInfoA";
-  case 0x0177: return "SHGetFileInfoW";
-  case 0x0178: return "SHGetFileInfoWWorker";
-  case 0x0179: return "SHGetFolderLocation";
-  case 0x017a: return "SHGetFolderLocationWorker";
-  case 0x017b: return "SHGetFolderPathA";
-  case 0x017c: return "SHGetFolderPathAWorker";
-  case 0x017d: return "SHGetFolderPathAndSubDirA";
-  case 0x017e: return "SHGetFolderPathAndSubDirW";
-  case 0x017f: return "SHGetFolderPathAndSubDirWWorker";
-  case 0x0180: return "SHGetFolderPathEx";
-  case 0x0181: return "SHGetFolderPathW";
-  case 0x0182: return "SHGetFolderPathWWorker";
-  case 0x0183: return "SHGetIDListFromObject";
-  case 0x0184: return "SHGetIconOverlayIndexA";
-  case 0x0185: return "SHGetIconOverlayIndexW";
-  case 0x02d7: return "SHGetImageList";
-  case 0x0186: return "SHGetInstanceExplorer";
-  case 0x0187: return "SHGetInstanceExplorerWorker";
-  case 0x0188: return "SHGetItemFromDataObject";
-  case 0x0189: return "SHGetItemFromObject";
-  case 0x018a: return "SHGetKnownFolderIDList";
-  case 0x018b: return "SHGetKnownFolderItem";
-  case 0x018c: return "SHGetKnownFolderPath";
-  case 0x018d: return "SHGetKnownFolderPathWorker";
-  case 0x018e: return "SHGetLocalizedName";
-  case 0x018f: return "SHGetMalloc";
-  case 0x0190: return "SHGetNameFromIDList";
-  case 0x0191: return "SHGetNewLinkInfo";
-  case 0x00b3: return "SHGetNewLinkInfoA";
-  case 0x00b4: return "SHGetNewLinkInfoW";
-  case 0x0192: return "SHGetPathFromIDList";
-  case 0x0193: return "SHGetPathFromIDListA";
-  case 0x0194: return "SHGetPathFromIDListEx";
-  case 0x0195: return "SHGetPathFromIDListW";
-  case 0x0196: return "SHGetPropertyStoreForWindow";
-  case 0x0197: return "SHGetPropertyStoreFromIDList";
-  case 0x0198: return "SHGetPropertyStoreFromParsingName";
-  case 0x0062: return "SHGetRealIDL";
-  case 0x02c5: return "SHGetSetFolderCustomSettings";
-  case 0x0044: return "SHGetSetSettings";
-  case 0x0199: return "SHGetSettings";
-  case 0x019a: return "SHGetSpecialFolderLocation";
-  case 0x019b: return "SHGetSpecialFolderPathA";
-  case 0x019c: return "SHGetSpecialFolderPathAWorker";
-  case 0x019d: return "SHGetSpecialFolderPathW";
-  case 0x019e: return "SHGetSpecialFolderPathWWorker";
-  case 0x019f: return "SHGetStockIconInfo";
-  case 0x01a0: return "SHGetTemporaryPropertyForItem";
-  case 0x01a1: return "SHGetUnreadMailCountW";
-  case 0x00c1: return "SHHandleUpdateImage";
-  case 0x00e4: return "SHHelpShortcuts_RunDLL";
-  case 0x00e5: return "SHHelpShortcuts_RunDLLA";
-  case 0x00ee: return "SHHelpShortcuts_RunDLLW";
-  case 0x001c: return "SHILCreateFromPath";
-  case 0x01a2: return "SHInvokePrinterCommandA";
-  case 0x01a3: return "SHInvokePrinterCommandW";
-  case 0x01a4: return "SHIsFileAvailableOffline";
-  case 0x02eb: return "SHLimitInputEdit";
-  case 0x01a5: return "SHLoadInProc";
-  case 0x01a6: return "SHLoadNonloadedIconOverlayIdentifiers";
-  case 0x004d: return "SHMapPIDLToSystemImageListIndex";
-  case 0x02cc: return "SHMultiFileProperties";
-  case 0x00b2: return "SHObjectProperties";
-  case 0x01a7: return "SHOpenFolderAndSelectItems";
-  case 0x0050: return "SHOpenPropSheetW";
-  case 0x01a8: return "SHOpenWithDialog";
-  case 0x01a9: return "SHParseDisplayName";
-  case 0x01aa: return "SHPathPrepareForWriteA";
-  case 0x01ab: return "SHPathPrepareForWriteW";
-  case 0x02ad: return "SHPropStgCreate";
-  case 0x02b0: return "SHPropStgReadMultiple";
-  case 0x02b1: return "SHPropStgWriteMultiple";
-  case 0x01ac: return "SHQueryRecycleBinA";
-  case 0x01ad: return "SHQueryRecycleBinW";
-  case 0x01ae: return "SHQueryUserNotificationState";
-  case 0x01af: return "SHRemoveLocalizedName";
-  case 0x00aa: return "SHReplaceFromPropSheetExtArray";
-  case 0x01b0: return "SHResolveLibrary";
-  case 0x0064: return "SHRestricted";
-  case 0x01b1: return "SHSetDefaultProperties";
-  case 0x00e7: return "SHSetFolderPathA";
-  case 0x00e8: return "SHSetFolderPathW";
-  case 0x00b0: return "SHSetInstanceExplorer";
-  case 0x01b2: return "SHSetKnownFolderPath";
-  case 0x01b3: return "SHSetKnownFolderPathWorker";
-  case 0x01b4: return "SHSetLocalizedName";
-  case 0x01b5: return "SHSetTemporaryPropertyForItem";
-  case 0x01b6: return "SHSetUnreadMailCountW";
-  case 0x0049: return "SHShellFolderView_Message";
-  case 0x01b7: return "SHShowManageLibraryUI";
-  case 0x00a2: return "SHSimpleIDListFromPath";
-  case 0x000e: return "SHStartNetConnectionDialogW";
-  case 0x00f5: return "SHTestTokenMembership";
-  case 0x00bf: return "SHUpdateImageA";
-  case 0x00c0: return "SHUpdateImageW";
-  case 0x01b8: return "SHUpdateRecycleBinIcon";
-  case 0x00ad: return "SHValidateUNC";
-  case 0x01b9: return "SetCurrentProcessExplicitAppUserModelID";
-  case 0x01ba: return "SheChangeDirA";
-  case 0x01bb: return "SheChangeDirExW";
-  case 0x01bc: return "SheGetDirA";
-  case 0x01bd: return "SheSetCurDrive";
-  case 0x01be: return "ShellAboutA";
-  case 0x01bf: return "ShellAboutW";
-  case 0x01c0: return "ShellExec_RunDLL";
-  case 0x01c1: return "ShellExec_RunDLLA";
-  case 0x01c2: return "ShellExec_RunDLLW";
-  case 0x01c3: return "ShellExecuteA";
-  case 0x01c4: return "ShellExecuteEx";
-  case 0x01c5: return "ShellExecuteExA";
-  case 0x01c6: return "ShellExecuteExW";
-  case 0x01c7: return "ShellExecuteW";
-  case 0x01c8: return "ShellHookProc";
-  case 0x00b7: return "ShellMessageBoxA";
-  case 0x00b6: return "ShellMessageBoxW";
-  case 0x0048: return "Shell_GetCachedImageIndex";
-  case 0x01c9: return "Shell_GetCachedImageIndexA";
-  case 0x01ca: return "Shell_GetCachedImageIndexW";
-  case 0x0047: return "Shell_GetImageLists";
-  case 0x0043: return "Shell_MergeMenus";
-  case 0x01cb: return "Shell_NotifyIcon";
-  case 0x01cc: return "Shell_NotifyIconA";
-  case 0x01cd: return "Shell_NotifyIconGetRect";
-  case 0x01ce: return "Shell_NotifyIconW";
-  case 0x0067: return "SignalFileOpen";
-  case 0x02aa: return "StgMakeUniqueName";
-  case 0x01cf: return "StrChrA";
-  case 0x01d0: return "StrChrIA";
-  case 0x01d1: return "StrChrIW";
-  case 0x01d2: return "StrChrW";
-  case 0x01d3: return "StrCmpNA";
-  case 0x01d4: return "StrCmpNIA";
-  case 0x01d5: return "StrCmpNIW";
-  case 0x01d6: return "StrCmpNW";
-  case 0x01d7: return "StrNCmpA";
-  case 0x01d8: return "StrNCmpIA";
-  case 0x01d9: return "StrNCmpIW";
-  case 0x01da: return "StrNCmpW";
-  case 0x01db: return "StrRChrA";
-  case 0x01dc: return "StrRChrIA";
-  case 0x01dd: return "StrRChrIW";
-  case 0x01de: return "StrRChrW";
-  case 0x01df: return "StrRStrA";
-  case 0x01e0: return "StrRStrIA";
-  case 0x01e1: return "StrRStrIW";
-  case 0x01e2: return "StrRStrW";
-  case 0x01e3: return "StrStrA";
-  case 0x01e4: return "StrStrIA";
-  case 0x01e5: return "StrStrIW";
-  case 0x01e6: return "StrStrW";
-  case 0x01e7: return "WOWShellExecute";
-  case 0x01e8: return "WaitForExplorerRestartW";
-  case 0x00a4: return "Win32DeleteFile";
-  case 0x028c: return "WriteCabinetState";
+  switch (i) {
+    case 0x00ff: return "AppCompat_RunDLLW";
+    case 0x0107: return "AssocCreateForClasses";
+    case 0x010b: return "AssocGetDetailsOfPropKey";
+    case 0x02bd: return "CDefFolderMenu_Create2";
+    case 0x0053: return "CIDLData_CreateFromIDArray";
+    case 0x010c: return "CheckEscapesW";
+    case 0x010d: return "CommandLineToArgvW";
+    case 0x0110: return "Control_RunDLL";
+    case 0x0111: return "Control_RunDLLA";
+    case 0x0112: return "Control_RunDLLAsUserW";
+    case 0x0113: return "Control_RunDLLW";
+    case 0x0081: return "DAD_AutoScroll";
+    case 0x0083: return "DAD_DragEnterEx";
+    case 0x0016: return "DAD_DragEnterEx2";
+    case 0x0084: return "DAD_DragLeave";
+    case 0x0086: return "DAD_DragMove";
+    case 0x0088: return "DAD_SetDragImage";
+    case 0x0089: return "DAD_ShowDragImage";
+    case 0x0114: return "DllCanUnloadNow";
+    case 0x0115: return "DllGetActivationFactory";
+    case 0x0116: return "DllGetClassObject";
+    case 0x0117: return "DllGetVersion";
+    case 0x0118: return "DllInstall";
+    case 0x0119: return "DllRegisterServer";
+    case 0x011a: return "DllUnregisterServer";
+    case 0x011b: return "DoEnvironmentSubstA";
+    case 0x011c: return "DoEnvironmentSubstW";
+    case 0x011d: return "DragAcceptFiles";
+    case 0x011e: return "DragFinish";
+    case 0x011f: return "DragQueryFile";
+    case 0x0120: return "DragQueryFileA";
+    case 0x0121: return "DragQueryFileAorW";
+    case 0x0122: return "DragQueryFileW";
+    case 0x0123: return "DragQueryPoint";
+    case 0x0040: return "DriveType";
+    case 0x0124: return "DuplicateIcon";
+    case 0x0125: return "ExtractAssociatedIconA";
+    case 0x0126: return "ExtractAssociatedIconExA";
+    case 0x0127: return "ExtractAssociatedIconExW";
+    case 0x0128: return "ExtractAssociatedIconW";
+    case 0x0129: return "ExtractIconA";
+    case 0x012a: return "ExtractIconEx";
+    case 0x012b: return "ExtractIconExA";
+    case 0x012c: return "ExtractIconExW";
+    case 0x012d: return "ExtractIconW";
+    case 0x012e: return "FindExecutableA";
+    case 0x012f: return "FindExecutableW";
+    case 0x0130: return "FreeIconList";
+    case 0x0131: return "GetCurrentProcessExplicitAppUserModelID";
+    case 0x003f: return "GetFileNameFromBrowse";
+    case 0x009a: return "ILAppendID";
+    case 0x0012: return "ILClone";
+    case 0x0013: return "ILCloneFirst";
+    case 0x0019: return "ILCombine";
+    case 0x009d: return "ILCreateFromPath";
+    case 0x00bd: return "ILCreateFromPathA";
+    case 0x00be: return "ILCreateFromPathW";
+    case 0x0018: return "ILFindChild";
+    case 0x0010: return "ILFindLastID";
+    case 0x009b: return "ILFree";
+    case 0x0099: return "ILGetNext";
+    case 0x0098: return "ILGetSize";
+    case 0x0015: return "ILIsEqual";
+    case 0x0017: return "ILIsParent";
+    case 0x034e: return "ILLoadFromStreamEx";
+    case 0x0011: return "ILRemoveLastID";
+    case 0x001b: return "ILSaveToStream";
+    case 0x0132: return "InitNetworkAddressControl";
+    case 0x0133: return "InternalExtractIconListA";
+    case 0x0134: return "InternalExtractIconListW";
+    case 0x0077: return "IsLFNDrive";
+    case 0x0029: return "IsLFNDriveA";
+    case 0x002a: return "IsLFNDriveW";
+    case 0x0042: return "IsNetDrive";
+    case 0x02a8: return "IsUserAnAdmin";
+    case 0x0135: return "LaunchMSHelp_RunDLLW";
+    case 0x0051: return "OpenAs_RunDLL";
+    case 0x007d: return "OpenAs_RunDLLA";
+    case 0x0085: return "OpenAs_RunDLLW";
+    case 0x0055: return "OpenRegStream";
+    case 0x0136: return "Options_RunDLL";
+    case 0x0137: return "Options_RunDLLA";
+    case 0x0138: return "Options_RunDLLW";
+    case 0x00ab: return "PathCleanupSpec";
+    case 0x0139: return "PathCleanupSpecWorker";
+    case 0x005c: return "PathGetShortPath";
+    case 0x002b: return "PathIsExe";
+    case 0x013a: return "PathIsExeWorker";
+    case 0x00f0: return "PathIsSlowA";
+    case 0x00ef: return "PathIsSlowW";
+    case 0x002f: return "PathMakeUniqueName";
+    case 0x0031: return "PathQualify";
+    case 0x0033: return "PathResolve";
+    case 0x004b: return "PathYetAnotherMakeUniqueName";
+    case 0x003e: return "PickIconDlg";
+    case 0x000d: return "PifMgr_CloseProperties";
+    case 0x000a: return "PifMgr_GetProperties";
+    case 0x0009: return "PifMgr_OpenProperties";
+    case 0x000b: return "PifMgr_SetProperties";
+    case 0x0087: return "PrepareDiscForBurnRunDllW";
+    case 0x008a: return "PrintersGetCommand_RunDLL";
+    case 0x008b: return "PrintersGetCommand_RunDLLA";
+    case 0x0096: return "PrintersGetCommand_RunDLLW";
+    case 0x028e: return "ReadCabinetState";
+    case 0x020c: return "RealDriveType";
+    case 0x00c7: return "RealShellExecuteA";
+    case 0x00cf: return "RealShellExecuteExA";
+    case 0x00d0: return "RealShellExecuteExW";
+    case 0x00e2: return "RealShellExecuteW";
+    case 0x013b: return "RegenerateUserEnvironment";
+    case 0x003b: return "RestartDialog";
+    case 0x02da: return "RestartDialogEx";
+    case 0x013c: return "RunAsNewUser_RunDLLW";
+    case 0x013d: return "SHAddDefaultPropertiesByExt";
+    case 0x00a7: return "SHAddFromPropSheetExtArray";
+    case 0x013e: return "SHAddToRecentDocs";
+    case 0x00c4: return "SHAlloc";
+    case 0x013f: return "SHAppBarMessage";
+    case 0x0140: return "SHAssocEnumHandlers";
+    case 0x0141: return "SHAssocEnumHandlersForProtocolByApplication";
+    case 0x0142: return "SHBindToFolderIDListParent";
+    case 0x0143: return "SHBindToFolderIDListParentEx";
+    case 0x0144: return "SHBindToObject";
+    case 0x0145: return "SHBindToParent";
+    case 0x0146: return "SHBrowseForFolder";
+    case 0x0147: return "SHBrowseForFolderA";
+    case 0x0148: return "SHBrowseForFolderW";
+    case 0x0093: return "SHCLSIDFromString";
+    case 0x0284: return "SHChangeNotification_Lock";
+    case 0x0285: return "SHChangeNotification_Unlock";
+    case 0x0149: return "SHChangeNotify";
+    case 0x0004: return "SHChangeNotifyDeregister";
+    case 0x0002: return "SHChangeNotifyRegister";
+    case 0x014a: return "SHChangeNotifyRegisterThread";
+    case 0x014b: return "SHChangeNotifySuspendResume";
+    case 0x0059: return "SHCloneSpecialIDList";
+    case 0x0066: return "SHCoCreateInstance";
+    case 0x014c: return "SHCoCreateInstanceWorker";
+    case 0x014d: return "SHCreateAssociationRegistration";
+    case 0x014e: return "SHCreateDataObject";
+    case 0x014f: return "SHCreateDefaultContextMenu";
+    case 0x0150: return "SHCreateDefaultExtractIcon";
+    case 0x0151: return "SHCreateDefaultPropertiesOp";
+    case 0x00a5: return "SHCreateDirectory";
+    case 0x0152: return "SHCreateDirectoryExA";
+    case 0x0153: return "SHCreateDirectoryExW";
+    case 0x0154: return "SHCreateDirectoryExWWorker";
+    case 0x02e7: return "SHCreateFileExtractIconW";
+    case 0x0155: return "SHCreateItemFromIDList";
+    case 0x0156: return "SHCreateItemFromParsingName";
+    case 0x0157: return "SHCreateItemFromRelativeName";
+    case 0x0158: return "SHCreateItemInKnownFolder";
+    case 0x0159: return "SHCreateItemWithParent";
+    case 0x015a: return "SHCreateLocalServerRunDll";
+    case 0x015b: return "SHCreateProcessAsUserW";
+    case 0x00a8: return "SHCreatePropSheetExtArray";
+    case 0x015c: return "SHCreateQueryCancelAutoPlayMoniker";
+    case 0x0100: return "SHCreateShellFolderView";
+    case 0x00ae: return "SHCreateShellFolderViewEx";
+    case 0x015d: return "SHCreateShellItem";
+    case 0x015e: return "SHCreateShellItemArray";
+    case 0x015f: return "SHCreateShellItemArrayFromDataObject";
+    case 0x0160: return "SHCreateShellItemArrayFromIDLists";
+    case 0x0161: return "SHCreateShellItemArrayFromShellItem";
+    case 0x004a: return "SHCreateStdEnumFmtEtc";
+    case 0x0003: return "SHDefExtractIconA";
+    case 0x0006: return "SHDefExtractIconW";
+    case 0x00a9: return "SHDestroyPropSheetExtArray";
+    case 0x0058: return "SHDoDragDrop";
+    case 0x0162: return "SHEmptyRecycleBinA";
+    case 0x0163: return "SHEmptyRecycleBinW";
+    case 0x0164: return "SHEnableServiceObject";
+    case 0x0165: return "SHEnumerateUnreadMailAccountsW";
+    case 0x0166: return "SHEvaluateSystemCommandTemplate";
+    case 0x0167: return "SHExtractIconsW";
+    case 0x0168: return "SHFileOperation";
+    case 0x0169: return "SHFileOperationA";
+    case 0x016a: return "SHFileOperationW";
+    case 0x005a: return "SHFindFiles";
+    case 0x0095: return "SHFind_InitMenuPopup";
+    case 0x020e: return "SHFlushSFCache";
+    case 0x016b: return "SHFormatDrive";
+    case 0x00c3: return "SHFree";
+    case 0x016c: return "SHFreeNameMappings";
+    case 0x02ee: return "SHGetAttributesFromDataObject";
+    case 0x016d: return "SHGetDataFromIDListA";
+    case 0x016e: return "SHGetDataFromIDListW";
+    case 0x016f: return "SHGetDesktopFolder";
+    case 0x0170: return "SHGetDesktopFolderWorker";
+    case 0x0171: return "SHGetDiskFreeSpaceA";
+    case 0x0172: return "SHGetDiskFreeSpaceExA";
+    case 0x0173: return "SHGetDiskFreeSpaceExW";
+    case 0x0174: return "SHGetDriveMedia";
+    case 0x0175: return "SHGetFileInfo";
+    case 0x0176: return "SHGetFileInfoA";
+    case 0x0177: return "SHGetFileInfoW";
+    case 0x0178: return "SHGetFileInfoWWorker";
+    case 0x0179: return "SHGetFolderLocation";
+    case 0x017a: return "SHGetFolderLocationWorker";
+    case 0x017b: return "SHGetFolderPathA";
+    case 0x017c: return "SHGetFolderPathAWorker";
+    case 0x017d: return "SHGetFolderPathAndSubDirA";
+    case 0x017e: return "SHGetFolderPathAndSubDirW";
+    case 0x017f: return "SHGetFolderPathAndSubDirWWorker";
+    case 0x0180: return "SHGetFolderPathEx";
+    case 0x0181: return "SHGetFolderPathW";
+    case 0x0182: return "SHGetFolderPathWWorker";
+    case 0x0183: return "SHGetIDListFromObject";
+    case 0x0184: return "SHGetIconOverlayIndexA";
+    case 0x0185: return "SHGetIconOverlayIndexW";
+    case 0x02d7: return "SHGetImageList";
+    case 0x0186: return "SHGetInstanceExplorer";
+    case 0x0187: return "SHGetInstanceExplorerWorker";
+    case 0x0188: return "SHGetItemFromDataObject";
+    case 0x0189: return "SHGetItemFromObject";
+    case 0x018a: return "SHGetKnownFolderIDList";
+    case 0x018b: return "SHGetKnownFolderItem";
+    case 0x018c: return "SHGetKnownFolderPath";
+    case 0x018d: return "SHGetKnownFolderPathWorker";
+    case 0x018e: return "SHGetLocalizedName";
+    case 0x018f: return "SHGetMalloc";
+    case 0x0190: return "SHGetNameFromIDList";
+    case 0x0191: return "SHGetNewLinkInfo";
+    case 0x00b3: return "SHGetNewLinkInfoA";
+    case 0x00b4: return "SHGetNewLinkInfoW";
+    case 0x0192: return "SHGetPathFromIDList";
+    case 0x0193: return "SHGetPathFromIDListA";
+    case 0x0194: return "SHGetPathFromIDListEx";
+    case 0x0195: return "SHGetPathFromIDListW";
+    case 0x0196: return "SHGetPropertyStoreForWindow";
+    case 0x0197: return "SHGetPropertyStoreFromIDList";
+    case 0x0198: return "SHGetPropertyStoreFromParsingName";
+    case 0x0062: return "SHGetRealIDL";
+    case 0x02c5: return "SHGetSetFolderCustomSettings";
+    case 0x0044: return "SHGetSetSettings";
+    case 0x0199: return "SHGetSettings";
+    case 0x019a: return "SHGetSpecialFolderLocation";
+    case 0x019b: return "SHGetSpecialFolderPathA";
+    case 0x019c: return "SHGetSpecialFolderPathAWorker";
+    case 0x019d: return "SHGetSpecialFolderPathW";
+    case 0x019e: return "SHGetSpecialFolderPathWWorker";
+    case 0x019f: return "SHGetStockIconInfo";
+    case 0x01a0: return "SHGetTemporaryPropertyForItem";
+    case 0x01a1: return "SHGetUnreadMailCountW";
+    case 0x00c1: return "SHHandleUpdateImage";
+    case 0x00e4: return "SHHelpShortcuts_RunDLL";
+    case 0x00e5: return "SHHelpShortcuts_RunDLLA";
+    case 0x00ee: return "SHHelpShortcuts_RunDLLW";
+    case 0x001c: return "SHILCreateFromPath";
+    case 0x01a2: return "SHInvokePrinterCommandA";
+    case 0x01a3: return "SHInvokePrinterCommandW";
+    case 0x01a4: return "SHIsFileAvailableOffline";
+    case 0x02eb: return "SHLimitInputEdit";
+    case 0x01a5: return "SHLoadInProc";
+    case 0x01a6: return "SHLoadNonloadedIconOverlayIdentifiers";
+    case 0x004d: return "SHMapPIDLToSystemImageListIndex";
+    case 0x02cc: return "SHMultiFileProperties";
+    case 0x00b2: return "SHObjectProperties";
+    case 0x01a7: return "SHOpenFolderAndSelectItems";
+    case 0x0050: return "SHOpenPropSheetW";
+    case 0x01a8: return "SHOpenWithDialog";
+    case 0x01a9: return "SHParseDisplayName";
+    case 0x01aa: return "SHPathPrepareForWriteA";
+    case 0x01ab: return "SHPathPrepareForWriteW";
+    case 0x02ad: return "SHPropStgCreate";
+    case 0x02b0: return "SHPropStgReadMultiple";
+    case 0x02b1: return "SHPropStgWriteMultiple";
+    case 0x01ac: return "SHQueryRecycleBinA";
+    case 0x01ad: return "SHQueryRecycleBinW";
+    case 0x01ae: return "SHQueryUserNotificationState";
+    case 0x01af: return "SHRemoveLocalizedName";
+    case 0x00aa: return "SHReplaceFromPropSheetExtArray";
+    case 0x01b0: return "SHResolveLibrary";
+    case 0x0064: return "SHRestricted";
+    case 0x01b1: return "SHSetDefaultProperties";
+    case 0x00e7: return "SHSetFolderPathA";
+    case 0x00e8: return "SHSetFolderPathW";
+    case 0x00b0: return "SHSetInstanceExplorer";
+    case 0x01b2: return "SHSetKnownFolderPath";
+    case 0x01b3: return "SHSetKnownFolderPathWorker";
+    case 0x01b4: return "SHSetLocalizedName";
+    case 0x01b5: return "SHSetTemporaryPropertyForItem";
+    case 0x01b6: return "SHSetUnreadMailCountW";
+    case 0x0049: return "SHShellFolderView_Message";
+    case 0x01b7: return "SHShowManageLibraryUI";
+    case 0x00a2: return "SHSimpleIDListFromPath";
+    case 0x000e: return "SHStartNetConnectionDialogW";
+    case 0x00f5: return "SHTestTokenMembership";
+    case 0x00bf: return "SHUpdateImageA";
+    case 0x00c0: return "SHUpdateImageW";
+    case 0x01b8: return "SHUpdateRecycleBinIcon";
+    case 0x00ad: return "SHValidateUNC";
+    case 0x01b9: return "SetCurrentProcessExplicitAppUserModelID";
+    case 0x01ba: return "SheChangeDirA";
+    case 0x01bb: return "SheChangeDirExW";
+    case 0x01bc: return "SheGetDirA";
+    case 0x01bd: return "SheSetCurDrive";
+    case 0x01be: return "ShellAboutA";
+    case 0x01bf: return "ShellAboutW";
+    case 0x01c0: return "ShellExec_RunDLL";
+    case 0x01c1: return "ShellExec_RunDLLA";
+    case 0x01c2: return "ShellExec_RunDLLW";
+    case 0x01c3: return "ShellExecuteA";
+    case 0x01c4: return "ShellExecuteEx";
+    case 0x01c5: return "ShellExecuteExA";
+    case 0x01c6: return "ShellExecuteExW";
+    case 0x01c7: return "ShellExecuteW";
+    case 0x01c8: return "ShellHookProc";
+    case 0x00b7: return "ShellMessageBoxA";
+    case 0x00b6: return "ShellMessageBoxW";
+    case 0x0048: return "Shell_GetCachedImageIndex";
+    case 0x01c9: return "Shell_GetCachedImageIndexA";
+    case 0x01ca: return "Shell_GetCachedImageIndexW";
+    case 0x0047: return "Shell_GetImageLists";
+    case 0x0043: return "Shell_MergeMenus";
+    case 0x01cb: return "Shell_NotifyIcon";
+    case 0x01cc: return "Shell_NotifyIconA";
+    case 0x01cd: return "Shell_NotifyIconGetRect";
+    case 0x01ce: return "Shell_NotifyIconW";
+    case 0x0067: return "SignalFileOpen";
+    case 0x02aa: return "StgMakeUniqueName";
+    case 0x01cf: return "StrChrA";
+    case 0x01d0: return "StrChrIA";
+    case 0x01d1: return "StrChrIW";
+    case 0x01d2: return "StrChrW";
+    case 0x01d3: return "StrCmpNA";
+    case 0x01d4: return "StrCmpNIA";
+    case 0x01d5: return "StrCmpNIW";
+    case 0x01d6: return "StrCmpNW";
+    case 0x01d7: return "StrNCmpA";
+    case 0x01d8: return "StrNCmpIA";
+    case 0x01d9: return "StrNCmpIW";
+    case 0x01da: return "StrNCmpW";
+    case 0x01db: return "StrRChrA";
+    case 0x01dc: return "StrRChrIA";
+    case 0x01dd: return "StrRChrIW";
+    case 0x01de: return "StrRChrW";
+    case 0x01df: return "StrRStrA";
+    case 0x01e0: return "StrRStrIA";
+    case 0x01e1: return "StrRStrIW";
+    case 0x01e2: return "StrRStrW";
+    case 0x01e3: return "StrStrA";
+    case 0x01e4: return "StrStrIA";
+    case 0x01e5: return "StrStrIW";
+    case 0x01e6: return "StrStrW";
+    case 0x01e7: return "WOWShellExecute";
+    case 0x01e8: return "WaitForExplorerRestartW";
+    case 0x00a4: return "Win32DeleteFile";
+    case 0x028c: return "WriteCabinetState";
   }
   return nullptr;
 }


-}
 }

-#endif

+#endif
diff --git a/deps/LIEF/src/PE/utils/ordinals_lookup_tables/shlwapi_dll_lookup.hpp b/deps/LIEF/src/PE/utils/ordinals_lookup_tables/shlwapi_dll_lookup.hpp
index ebfb5fa2e58..19ec143ab6d 100644
--- a/deps/LIEF/src/PE/utils/ordinals_lookup_tables/shlwapi_dll_lookup.hpp
+++ b/deps/LIEF/src/PE/utils/ordinals_lookup_tables/shlwapi_dll_lookup.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -17,385 +17,384 @@
 #define LIEF_PE_SHLWAPI_DLL_LOOKUP_H
 #include <cstdint>

-namespace LIEF {
-namespace PE {
+
+namespace LIEF::PE {

 inline const char* shlwapi_dll_lookup(uint32_t i) {
-  switch(i) {
-  case 0x01f4: return "AssocCreate";
-  case 0x01f5: return "AssocGetPerceivedType";
-  case 0x01f6: return "AssocIsDangerous";
-  case 0x01f7: return "AssocQueryKeyA";
-  case 0x01f8: return "AssocQueryKeyW";
-  case 0x023a: return "AssocQueryStringA";
-  case 0x023c: return "AssocQueryStringByKeyA";
-  case 0x0240: return "AssocQueryStringByKeyW";
-  case 0x0243: return "AssocQueryStringW";
-  case 0x0248: return "ChrCmpIA";
-  case 0x0249: return "ChrCmpIW";
-  case 0x024a: return "ColorAdjustLuma";
-  case 0x024b: return "ColorHLSToRGB";
-  case 0x024c: return "ColorRGBToHLS";
-  case 0x00a8: return "ConnectToConnectionPoint";
-  case 0x0239: return "DelayLoadFailureHook";
-  case 0x024d: return "DllGetVersion";
-  case 0x000e: return "GetAcceptLanguagesA";
-  case 0x000f: return "GetAcceptLanguagesW";
-  case 0x024e: return "GetMenuPosFromID";
-  case 0x024f: return "HashData";
-  case 0x0238: return "IStream_Copy";
-  case 0x00b8: return "IStream_Read";
-  case 0x0200: return "IStream_ReadPidl";
-  case 0x0254: return "IStream_ReadStr";
-  case 0x00d5: return "IStream_Reset";
-  case 0x00d6: return "IStream_Size";
-  case 0x00d4: return "IStream_Write";
-  case 0x0201: return "IStream_WritePidl";
-  case 0x0255: return "IStream_WriteStr";
-  case 0x00a9: return "IUnknown_AtomicRelease";
-  case 0x0100: return "IUnknown_GetSite";
-  case 0x00ac: return "IUnknown_GetWindow";
-  case 0x00b0: return "IUnknown_QueryService";
-  case 0x00c7: return "IUnknown_Set";
-  case 0x00ae: return "IUnknown_SetSite";
-  case 0x0250: return "IntlStrEqWorkerA";
-  case 0x0251: return "IntlStrEqWorkerW";
-  case 0x0252: return "IsCharSpaceA";
-  case 0x001d: return "IsCharSpaceW";
-  case 0x0229: return "IsInternetESCEnabled";
-  case 0x01b5: return "IsOS";
-  case 0x01a2: return "MLFreeLibrary";
-  case 0x0179: return "MLLoadLibraryA";
-  case 0x017a: return "MLLoadLibraryW";
-  case 0x0001: return "ParseURLA";
-  case 0x0002: return "ParseURLW";
-  case 0x0253: return "PathAddBackslashA";
-  case 0x0257: return "PathAddBackslashW";
-  case 0x0258: return "PathAddExtensionA";
-  case 0x025f: return "PathAddExtensionW";
-  case 0x0260: return "PathAppendA";
-  case 0x0261: return "PathAppendW";
-  case 0x0262: return "PathBuildRootA";
-  case 0x0264: return "PathBuildRootW";
-  case 0x026b: return "PathCanonicalizeA";
-  case 0x026c: return "PathCanonicalizeW";
-  case 0x026e: return "PathCombineA";
-  case 0x026f: return "PathCombineW";
-  case 0x0270: return "PathCommonPrefixA";
-  case 0x0271: return "PathCommonPrefixW";
-  case 0x0281: return "PathCompactPathA";
-  case 0x0282: return "PathCompactPathExA";
-  case 0x0283: return "PathCompactPathExW";
-  case 0x0284: return "PathCompactPathW";
-  case 0x0285: return "PathCreateFromUrlA";
-  case 0x0286: return "PathCreateFromUrlAlloc";
-  case 0x0287: return "PathCreateFromUrlW";
-  case 0x0288: return "PathFileExistsA";
-  case 0x0289: return "PathFileExistsW";
-  case 0x028a: return "PathFindExtensionA";
-  case 0x028b: return "PathFindExtensionW";
-  case 0x028c: return "PathFindFileNameA";
-  case 0x028d: return "PathFindFileNameW";
-  case 0x028e: return "PathFindNextComponentA";
-  case 0x028f: return "PathFindNextComponentW";
-  case 0x0290: return "PathFindOnPathA";
-  case 0x0291: return "PathFindOnPathW";
-  case 0x0292: return "PathFindSuffixArrayA";
-  case 0x0293: return "PathFindSuffixArrayW";
-  case 0x0294: return "PathGetArgsA";
-  case 0x0295: return "PathGetArgsW";
-  case 0x0296: return "PathGetCharTypeA";
-  case 0x0297: return "PathGetCharTypeW";
-  case 0x0298: return "PathGetDriveNumberA";
-  case 0x0299: return "PathGetDriveNumberW";
-  case 0x029a: return "PathIsContentTypeA";
-  case 0x029b: return "PathIsContentTypeW";
-  case 0x029c: return "PathIsDirectoryA";
-  case 0x029d: return "PathIsDirectoryEmptyA";
-  case 0x029e: return "PathIsDirectoryEmptyW";
-  case 0x029f: return "PathIsDirectoryW";
-  case 0x02a0: return "PathIsFileSpecA";
-  case 0x02a1: return "PathIsFileSpecW";
-  case 0x02a2: return "PathIsLFNFileSpecA";
-  case 0x02a3: return "PathIsLFNFileSpecW";
-  case 0x02a4: return "PathIsNetworkPathA";
-  case 0x02a5: return "PathIsNetworkPathW";
-  case 0x02a6: return "PathIsPrefixA";
-  case 0x02a7: return "PathIsPrefixW";
-  case 0x02a8: return "PathIsRelativeA";
-  case 0x02a9: return "PathIsRelativeW";
-  case 0x02aa: return "PathIsRootA";
-  case 0x02ab: return "PathIsRootW";
-  case 0x02ac: return "PathIsSameRootA";
-  case 0x02ad: return "PathIsSameRootW";
-  case 0x02ae: return "PathIsSystemFolderA";
-  case 0x02af: return "PathIsSystemFolderW";
-  case 0x02b0: return "PathIsUNCA";
-  case 0x02b1: return "PathIsUNCServerA";
-  case 0x02b2: return "PathIsUNCServerShareA";
-  case 0x02b3: return "PathIsUNCServerShareW";
-  case 0x02b4: return "PathIsUNCServerW";
-  case 0x02b5: return "PathIsUNCW";
-  case 0x02b6: return "PathIsURLA";
-  case 0x02b7: return "PathIsURLW";
-  case 0x02b8: return "PathMakePrettyA";
-  case 0x02b9: return "PathMakePrettyW";
-  case 0x02ba: return "PathMakeSystemFolderA";
-  case 0x02bb: return "PathMakeSystemFolderW";
-  case 0x02bc: return "PathMatchSpecA";
-  case 0x02bd: return "PathMatchSpecExA";
-  case 0x02be: return "PathMatchSpecExW";
-  case 0x02bf: return "PathMatchSpecW";
-  case 0x02c0: return "PathParseIconLocationA";
-  case 0x02c1: return "PathParseIconLocationW";
-  case 0x02c2: return "PathQuoteSpacesA";
-  case 0x02c3: return "PathQuoteSpacesW";
-  case 0x02c4: return "PathRelativePathToA";
-  case 0x02c5: return "PathRelativePathToW";
-  case 0x02c6: return "PathRemoveArgsA";
-  case 0x02c7: return "PathRemoveArgsW";
-  case 0x02c8: return "PathRemoveBackslashA";
-  case 0x02c9: return "PathRemoveBackslashW";
-  case 0x02ca: return "PathRemoveBlanksA";
-  case 0x02cb: return "PathRemoveBlanksW";
-  case 0x02cc: return "PathRemoveExtensionA";
-  case 0x02cd: return "PathRemoveExtensionW";
-  case 0x02ce: return "PathRemoveFileSpecA";
-  case 0x02cf: return "PathRemoveFileSpecW";
-  case 0x02d0: return "PathRenameExtensionA";
-  case 0x02d1: return "PathRenameExtensionW";
-  case 0x02d2: return "PathSearchAndQualifyA";
-  case 0x02d3: return "PathSearchAndQualifyW";
-  case 0x02d4: return "PathSetDlgItemPathA";
-  case 0x02d5: return "PathSetDlgItemPathW";
-  case 0x02d6: return "PathSkipRootA";
-  case 0x02d7: return "PathSkipRootW";
-  case 0x02d8: return "PathStripPathA";
-  case 0x02d9: return "PathStripPathW";
-  case 0x02da: return "PathStripToRootA";
-  case 0x02db: return "PathStripToRootW";
-  case 0x02dc: return "PathUnExpandEnvStringsA";
-  case 0x02dd: return "PathUnExpandEnvStringsW";
-  case 0x02de: return "PathUndecorateA";
-  case 0x02df: return "PathUndecorateW";
-  case 0x02e0: return "PathUnmakeSystemFolderA";
-  case 0x02e1: return "PathUnmakeSystemFolderW";
-  case 0x02e2: return "PathUnquoteSpacesA";
-  case 0x02e3: return "PathUnquoteSpacesW";
-  case 0x00db: return "QISearch";
-  case 0x0007: return "SHAllocShared";
-  case 0x0159: return "SHAnsiToAnsi";
-  case 0x00d7: return "SHAnsiToUnicode";
-  case 0x02e4: return "SHAutoComplete";
-  case 0x02e5: return "SHCopyKeyA";
-  case 0x02e6: return "SHCopyKeyW";
-  case 0x000c: return "SHCreateMemStream";
-  case 0x02e7: return "SHCreateShellPalette";
-  case 0x02e8: return "SHCreateStreamOnFileA";
-  case 0x02e9: return "SHCreateStreamOnFileEx";
-  case 0x02ea: return "SHCreateStreamOnFileW";
-  case 0x02eb: return "SHCreateStreamWrapper";
-  case 0x0010: return "SHCreateThread";
-  case 0x02ec: return "SHCreateThreadRef";
-  case 0x02ed: return "SHDeleteEmptyKeyA";
-  case 0x02ee: return "SHDeleteEmptyKeyW";
-  case 0x02ef: return "SHDeleteKeyA";
-  case 0x02f0: return "SHDeleteKeyW";
-  case 0x02f1: return "SHDeleteOrphanKeyA";
-  case 0x02f2: return "SHDeleteOrphanKeyW";
-  case 0x02f3: return "SHDeleteValueA";
-  case 0x02f4: return "SHDeleteValueW";
-  case 0x02f5: return "SHEnumKeyExA";
-  case 0x02f6: return "SHEnumKeyExW";
-  case 0x02f7: return "SHEnumValueA";
-  case 0x02f8: return "SHEnumValueW";
-  case 0x0161: return "SHFormatDateTimeA";
-  case 0x0162: return "SHFormatDateTimeW";
-  case 0x000a: return "SHFreeShared";
-  case 0x02f9: return "SHGetInverseCMAP";
-  case 0x02fa: return "SHGetThreadRef";
-  case 0x02fb: return "SHGetValueA";
-  case 0x02fc: return "SHGetValueW";
-  case 0x0203: return "SHGetViewStatePropertyBag";
-  case 0x00cc: return "SHIsChildOrSelf";
-  case 0x02fd: return "SHIsLowMemoryMachine";
-  case 0x01e7: return "SHLoadIndirectString";
-  case 0x0008: return "SHLockShared";
-  case 0x00b9: return "SHMessageBoxCheckA";
-  case 0x00bf: return "SHMessageBoxCheckW";
-  case 0x02fe: return "SHOpenRegStream2A";
-  case 0x02ff: return "SHOpenRegStream2W";
-  case 0x0300: return "SHOpenRegStreamA";
-  case 0x0301: return "SHOpenRegStreamW";
-  case 0x0237: return "SHPropertyBag_ReadStrAlloc";
-  case 0x0302: return "SHQueryInfoKeyA";
-  case 0x0303: return "SHQueryInfoKeyW";
-  case 0x0304: return "SHQueryValueExA";
-  case 0x0305: return "SHQueryValueExW";
-  case 0x0306: return "SHRegCloseUSKey";
-  case 0x0307: return "SHRegCreateUSKeyA";
-  case 0x0308: return "SHRegCreateUSKeyW";
-  case 0x0309: return "SHRegDeleteEmptyUSKeyA";
-  case 0x030a: return "SHRegDeleteEmptyUSKeyW";
-  case 0x030b: return "SHRegDeleteUSValueA";
-  case 0x030c: return "SHRegDeleteUSValueW";
-  case 0x030d: return "SHRegDuplicateHKey";
-  case 0x030e: return "SHRegEnumUSKeyA";
-  case 0x030f: return "SHRegEnumUSKeyW";
-  case 0x0310: return "SHRegEnumUSValueA";
-  case 0x0311: return "SHRegEnumUSValueW";
-  case 0x0312: return "SHRegGetBoolUSValueA";
-  case 0x0313: return "SHRegGetBoolUSValueW";
-  case 0x0118: return "SHRegGetIntW";
-  case 0x0314: return "SHRegGetPathA";
-  case 0x0315: return "SHRegGetPathW";
-  case 0x0316: return "SHRegGetUSValueA";
-  case 0x0317: return "SHRegGetUSValueW";
-  case 0x0318: return "SHRegGetValueA";
-  case 0x0319: return "SHRegGetValueW";
-  case 0x031a: return "SHRegOpenUSKeyA";
-  case 0x031b: return "SHRegOpenUSKeyW";
-  case 0x031c: return "SHRegQueryInfoUSKeyA";
-  case 0x031d: return "SHRegQueryInfoUSKeyW";
-  case 0x031e: return "SHRegQueryUSValueA";
-  case 0x031f: return "SHRegQueryUSValueW";
-  case 0x0320: return "SHRegSetPathA";
-  case 0x0321: return "SHRegSetPathW";
-  case 0x0322: return "SHRegSetUSValueA";
-  case 0x0323: return "SHRegSetUSValueW";
-  case 0x0324: return "SHRegWriteUSValueA";
-  case 0x0325: return "SHRegWriteUSValueW";
-  case 0x0326: return "SHRegisterValidateTemplate";
-  case 0x0327: return "SHReleaseThreadRef";
-  case 0x01d3: return "SHRunIndirectRegClientCommand";
-  case 0x01b0: return "SHSendMessageBroadcastA";
-  case 0x01b1: return "SHSendMessageBroadcastW";
-  case 0x0328: return "SHSetThreadRef";
-  case 0x0329: return "SHSetValueA";
-  case 0x032a: return "SHSetValueW";
-  case 0x032b: return "SHSkipJunction";
-  case 0x032c: return "SHStrDupA";
-  case 0x032d: return "SHStrDupW";
-  case 0x00cb: return "SHStripMneumonicA";
-  case 0x00e1: return "SHStripMneumonicW";
-  case 0x00d9: return "SHUnicodeToAnsi";
-  case 0x015a: return "SHUnicodeToUnicode";
-  case 0x0009: return "SHUnlockShared";
-  case 0x032e: return "ShellMessageBoxA";
-  case 0x0184: return "ShellMessageBoxW";
-  case 0x032f: return "StrCSpnA";
-  case 0x0330: return "StrCSpnIA";
-  case 0x0331: return "StrCSpnIW";
-  case 0x0332: return "StrCSpnW";
-  case 0x0333: return "StrCatBuffA";
-  case 0x0334: return "StrCatBuffW";
-  case 0x0335: return "StrCatChainW";
-  case 0x0336: return "StrCatW";
-  case 0x0337: return "StrChrA";
-  case 0x0338: return "StrChrIA";
-  case 0x0339: return "StrChrIW";
-  case 0x033a: return "StrChrNIW";
-  case 0x033b: return "StrChrNW";
-  case 0x033c: return "StrChrW";
-  case 0x009b: return "StrCmpCA";
-  case 0x009c: return "StrCmpCW";
-  case 0x009d: return "StrCmpICA";
-  case 0x009e: return "StrCmpICW";
-  case 0x033d: return "StrCmpIW";
-  case 0x033e: return "StrCmpLogicalW";
-  case 0x033f: return "StrCmpNA";
-  case 0x0097: return "StrCmpNCA";
-  case 0x0098: return "StrCmpNCW";
-  case 0x0340: return "StrCmpNIA";
-  case 0x0099: return "StrCmpNICA";
-  case 0x009a: return "StrCmpNICW";
-  case 0x0341: return "StrCmpNIW";
-  case 0x0342: return "StrCmpNW";
-  case 0x0343: return "StrCmpW";
-  case 0x0344: return "StrCpyNW";
-  case 0x0345: return "StrCpyW";
-  case 0x0346: return "StrDupA";
-  case 0x0347: return "StrDupW";
-  case 0x0348: return "StrFormatByteSize64A";
-  case 0x0349: return "StrFormatByteSizeA";
-  case 0x034a: return "StrFormatByteSizeEx";
-  case 0x034b: return "StrFormatByteSizeW";
-  case 0x034c: return "StrFormatKBSizeA";
-  case 0x034d: return "StrFormatKBSizeW";
-  case 0x034e: return "StrFromTimeIntervalA";
-  case 0x034f: return "StrFromTimeIntervalW";
-  case 0x0350: return "StrIsIntlEqualA";
-  case 0x0351: return "StrIsIntlEqualW";
-  case 0x0352: return "StrNCatA";
-  case 0x0353: return "StrNCatW";
-  case 0x0354: return "StrPBrkA";
-  case 0x0355: return "StrPBrkW";
-  case 0x0356: return "StrRChrA";
-  case 0x0357: return "StrRChrIA";
-  case 0x0358: return "StrRChrIW";
-  case 0x0359: return "StrRChrW";
-  case 0x035a: return "StrRStrIA";
-  case 0x035b: return "StrRStrIW";
-  case 0x035c: return "StrRetToBSTR";
-  case 0x035d: return "StrRetToBufA";
-  case 0x035e: return "StrRetToBufW";
-  case 0x035f: return "StrRetToStrA";
-  case 0x0360: return "StrRetToStrW";
-  case 0x0361: return "StrSpnA";
-  case 0x0362: return "StrSpnW";
-  case 0x0363: return "StrStrA";
-  case 0x0364: return "StrStrIA";
-  case 0x0365: return "StrStrIW";
-  case 0x0366: return "StrStrNIW";
-  case 0x0367: return "StrStrNW";
-  case 0x0368: return "StrStrW";
-  case 0x0369: return "StrToInt64ExA";
-  case 0x036a: return "StrToInt64ExW";
-  case 0x036b: return "StrToIntA";
-  case 0x036c: return "StrToIntExA";
-  case 0x036d: return "StrToIntExW";
-  case 0x036e: return "StrToIntW";
-  case 0x036f: return "StrTrimA";
-  case 0x0370: return "StrTrimW";
-  case 0x0371: return "UrlApplySchemeA";
-  case 0x0372: return "UrlApplySchemeW";
-  case 0x0373: return "UrlCanonicalizeA";
-  case 0x0374: return "UrlCanonicalizeW";
-  case 0x0375: return "UrlCombineA";
-  case 0x0376: return "UrlCombineW";
-  case 0x0377: return "UrlCompareA";
-  case 0x0378: return "UrlCompareW";
-  case 0x0379: return "UrlCreateFromPathA";
-  case 0x037a: return "UrlCreateFromPathW";
-  case 0x037b: return "UrlEscapeA";
-  case 0x037c: return "UrlEscapeW";
-  case 0x01ce: return "UrlFixupW";
-  case 0x037d: return "UrlGetLocationA";
-  case 0x037e: return "UrlGetLocationW";
-  case 0x037f: return "UrlGetPartA";
-  case 0x0380: return "UrlGetPartW";
-  case 0x0381: return "UrlHashA";
-  case 0x0382: return "UrlHashW";
-  case 0x0383: return "UrlIsA";
-  case 0x0384: return "UrlIsNoHistoryA";
-  case 0x0385: return "UrlIsNoHistoryW";
-  case 0x0386: return "UrlIsOpaqueA";
-  case 0x0387: return "UrlIsOpaqueW";
-  case 0x0388: return "UrlIsW";
-  case 0x0389: return "UrlUnescapeA";
-  case 0x038a: return "UrlUnescapeW";
-  case 0x0114: return "WhichPlatform";
-  case 0x038b: return "wnsprintfA";
-  case 0x038c: return "wnsprintfW";
-  case 0x038d: return "wvnsprintfA";
-  case 0x038e: return "wvnsprintfW";
+  switch (i) {
+    case 0x01f4: return "AssocCreate";
+    case 0x01f5: return "AssocGetPerceivedType";
+    case 0x01f6: return "AssocIsDangerous";
+    case 0x01f7: return "AssocQueryKeyA";
+    case 0x01f8: return "AssocQueryKeyW";
+    case 0x023a: return "AssocQueryStringA";
+    case 0x023c: return "AssocQueryStringByKeyA";
+    case 0x0240: return "AssocQueryStringByKeyW";
+    case 0x0243: return "AssocQueryStringW";
+    case 0x0248: return "ChrCmpIA";
+    case 0x0249: return "ChrCmpIW";
+    case 0x024a: return "ColorAdjustLuma";
+    case 0x024b: return "ColorHLSToRGB";
+    case 0x024c: return "ColorRGBToHLS";
+    case 0x00a8: return "ConnectToConnectionPoint";
+    case 0x0239: return "DelayLoadFailureHook";
+    case 0x024d: return "DllGetVersion";
+    case 0x000e: return "GetAcceptLanguagesA";
+    case 0x000f: return "GetAcceptLanguagesW";
+    case 0x024e: return "GetMenuPosFromID";
+    case 0x024f: return "HashData";
+    case 0x0238: return "IStream_Copy";
+    case 0x00b8: return "IStream_Read";
+    case 0x0200: return "IStream_ReadPidl";
+    case 0x0254: return "IStream_ReadStr";
+    case 0x00d5: return "IStream_Reset";
+    case 0x00d6: return "IStream_Size";
+    case 0x00d4: return "IStream_Write";
+    case 0x0201: return "IStream_WritePidl";
+    case 0x0255: return "IStream_WriteStr";
+    case 0x00a9: return "IUnknown_AtomicRelease";
+    case 0x0100: return "IUnknown_GetSite";
+    case 0x00ac: return "IUnknown_GetWindow";
+    case 0x00b0: return "IUnknown_QueryService";
+    case 0x00c7: return "IUnknown_Set";
+    case 0x00ae: return "IUnknown_SetSite";
+    case 0x0250: return "IntlStrEqWorkerA";
+    case 0x0251: return "IntlStrEqWorkerW";
+    case 0x0252: return "IsCharSpaceA";
+    case 0x001d: return "IsCharSpaceW";
+    case 0x0229: return "IsInternetESCEnabled";
+    case 0x01b5: return "IsOS";
+    case 0x01a2: return "MLFreeLibrary";
+    case 0x0179: return "MLLoadLibraryA";
+    case 0x017a: return "MLLoadLibraryW";
+    case 0x0001: return "ParseURLA";
+    case 0x0002: return "ParseURLW";
+    case 0x0253: return "PathAddBackslashA";
+    case 0x0257: return "PathAddBackslashW";
+    case 0x0258: return "PathAddExtensionA";
+    case 0x025f: return "PathAddExtensionW";
+    case 0x0260: return "PathAppendA";
+    case 0x0261: return "PathAppendW";
+    case 0x0262: return "PathBuildRootA";
+    case 0x0264: return "PathBuildRootW";
+    case 0x026b: return "PathCanonicalizeA";
+    case 0x026c: return "PathCanonicalizeW";
+    case 0x026e: return "PathCombineA";
+    case 0x026f: return "PathCombineW";
+    case 0x0270: return "PathCommonPrefixA";
+    case 0x0271: return "PathCommonPrefixW";
+    case 0x0281: return "PathCompactPathA";
+    case 0x0282: return "PathCompactPathExA";
+    case 0x0283: return "PathCompactPathExW";
+    case 0x0284: return "PathCompactPathW";
+    case 0x0285: return "PathCreateFromUrlA";
+    case 0x0286: return "PathCreateFromUrlAlloc";
+    case 0x0287: return "PathCreateFromUrlW";
+    case 0x0288: return "PathFileExistsA";
+    case 0x0289: return "PathFileExistsW";
+    case 0x028a: return "PathFindExtensionA";
+    case 0x028b: return "PathFindExtensionW";
+    case 0x028c: return "PathFindFileNameA";
+    case 0x028d: return "PathFindFileNameW";
+    case 0x028e: return "PathFindNextComponentA";
+    case 0x028f: return "PathFindNextComponentW";
+    case 0x0290: return "PathFindOnPathA";
+    case 0x0291: return "PathFindOnPathW";
+    case 0x0292: return "PathFindSuffixArrayA";
+    case 0x0293: return "PathFindSuffixArrayW";
+    case 0x0294: return "PathGetArgsA";
+    case 0x0295: return "PathGetArgsW";
+    case 0x0296: return "PathGetCharTypeA";
+    case 0x0297: return "PathGetCharTypeW";
+    case 0x0298: return "PathGetDriveNumberA";
+    case 0x0299: return "PathGetDriveNumberW";
+    case 0x029a: return "PathIsContentTypeA";
+    case 0x029b: return "PathIsContentTypeW";
+    case 0x029c: return "PathIsDirectoryA";
+    case 0x029d: return "PathIsDirectoryEmptyA";
+    case 0x029e: return "PathIsDirectoryEmptyW";
+    case 0x029f: return "PathIsDirectoryW";
+    case 0x02a0: return "PathIsFileSpecA";
+    case 0x02a1: return "PathIsFileSpecW";
+    case 0x02a2: return "PathIsLFNFileSpecA";
+    case 0x02a3: return "PathIsLFNFileSpecW";
+    case 0x02a4: return "PathIsNetworkPathA";
+    case 0x02a5: return "PathIsNetworkPathW";
+    case 0x02a6: return "PathIsPrefixA";
+    case 0x02a7: return "PathIsPrefixW";
+    case 0x02a8: return "PathIsRelativeA";
+    case 0x02a9: return "PathIsRelativeW";
+    case 0x02aa: return "PathIsRootA";
+    case 0x02ab: return "PathIsRootW";
+    case 0x02ac: return "PathIsSameRootA";
+    case 0x02ad: return "PathIsSameRootW";
+    case 0x02ae: return "PathIsSystemFolderA";
+    case 0x02af: return "PathIsSystemFolderW";
+    case 0x02b0: return "PathIsUNCA";
+    case 0x02b1: return "PathIsUNCServerA";
+    case 0x02b2: return "PathIsUNCServerShareA";
+    case 0x02b3: return "PathIsUNCServerShareW";
+    case 0x02b4: return "PathIsUNCServerW";
+    case 0x02b5: return "PathIsUNCW";
+    case 0x02b6: return "PathIsURLA";
+    case 0x02b7: return "PathIsURLW";
+    case 0x02b8: return "PathMakePrettyA";
+    case 0x02b9: return "PathMakePrettyW";
+    case 0x02ba: return "PathMakeSystemFolderA";
+    case 0x02bb: return "PathMakeSystemFolderW";
+    case 0x02bc: return "PathMatchSpecA";
+    case 0x02bd: return "PathMatchSpecExA";
+    case 0x02be: return "PathMatchSpecExW";
+    case 0x02bf: return "PathMatchSpecW";
+    case 0x02c0: return "PathParseIconLocationA";
+    case 0x02c1: return "PathParseIconLocationW";
+    case 0x02c2: return "PathQuoteSpacesA";
+    case 0x02c3: return "PathQuoteSpacesW";
+    case 0x02c4: return "PathRelativePathToA";
+    case 0x02c5: return "PathRelativePathToW";
+    case 0x02c6: return "PathRemoveArgsA";
+    case 0x02c7: return "PathRemoveArgsW";
+    case 0x02c8: return "PathRemoveBackslashA";
+    case 0x02c9: return "PathRemoveBackslashW";
+    case 0x02ca: return "PathRemoveBlanksA";
+    case 0x02cb: return "PathRemoveBlanksW";
+    case 0x02cc: return "PathRemoveExtensionA";
+    case 0x02cd: return "PathRemoveExtensionW";
+    case 0x02ce: return "PathRemoveFileSpecA";
+    case 0x02cf: return "PathRemoveFileSpecW";
+    case 0x02d0: return "PathRenameExtensionA";
+    case 0x02d1: return "PathRenameExtensionW";
+    case 0x02d2: return "PathSearchAndQualifyA";
+    case 0x02d3: return "PathSearchAndQualifyW";
+    case 0x02d4: return "PathSetDlgItemPathA";
+    case 0x02d5: return "PathSetDlgItemPathW";
+    case 0x02d6: return "PathSkipRootA";
+    case 0x02d7: return "PathSkipRootW";
+    case 0x02d8: return "PathStripPathA";
+    case 0x02d9: return "PathStripPathW";
+    case 0x02da: return "PathStripToRootA";
+    case 0x02db: return "PathStripToRootW";
+    case 0x02dc: return "PathUnExpandEnvStringsA";
+    case 0x02dd: return "PathUnExpandEnvStringsW";
+    case 0x02de: return "PathUndecorateA";
+    case 0x02df: return "PathUndecorateW";
+    case 0x02e0: return "PathUnmakeSystemFolderA";
+    case 0x02e1: return "PathUnmakeSystemFolderW";
+    case 0x02e2: return "PathUnquoteSpacesA";
+    case 0x02e3: return "PathUnquoteSpacesW";
+    case 0x00db: return "QISearch";
+    case 0x0007: return "SHAllocShared";
+    case 0x0159: return "SHAnsiToAnsi";
+    case 0x00d7: return "SHAnsiToUnicode";
+    case 0x02e4: return "SHAutoComplete";
+    case 0x02e5: return "SHCopyKeyA";
+    case 0x02e6: return "SHCopyKeyW";
+    case 0x000c: return "SHCreateMemStream";
+    case 0x02e7: return "SHCreateShellPalette";
+    case 0x02e8: return "SHCreateStreamOnFileA";
+    case 0x02e9: return "SHCreateStreamOnFileEx";
+    case 0x02ea: return "SHCreateStreamOnFileW";
+    case 0x02eb: return "SHCreateStreamWrapper";
+    case 0x0010: return "SHCreateThread";
+    case 0x02ec: return "SHCreateThreadRef";
+    case 0x02ed: return "SHDeleteEmptyKeyA";
+    case 0x02ee: return "SHDeleteEmptyKeyW";
+    case 0x02ef: return "SHDeleteKeyA";
+    case 0x02f0: return "SHDeleteKeyW";
+    case 0x02f1: return "SHDeleteOrphanKeyA";
+    case 0x02f2: return "SHDeleteOrphanKeyW";
+    case 0x02f3: return "SHDeleteValueA";
+    case 0x02f4: return "SHDeleteValueW";
+    case 0x02f5: return "SHEnumKeyExA";
+    case 0x02f6: return "SHEnumKeyExW";
+    case 0x02f7: return "SHEnumValueA";
+    case 0x02f8: return "SHEnumValueW";
+    case 0x0161: return "SHFormatDateTimeA";
+    case 0x0162: return "SHFormatDateTimeW";
+    case 0x000a: return "SHFreeShared";
+    case 0x02f9: return "SHGetInverseCMAP";
+    case 0x02fa: return "SHGetThreadRef";
+    case 0x02fb: return "SHGetValueA";
+    case 0x02fc: return "SHGetValueW";
+    case 0x0203: return "SHGetViewStatePropertyBag";
+    case 0x00cc: return "SHIsChildOrSelf";
+    case 0x02fd: return "SHIsLowMemoryMachine";
+    case 0x01e7: return "SHLoadIndirectString";
+    case 0x0008: return "SHLockShared";
+    case 0x00b9: return "SHMessageBoxCheckA";
+    case 0x00bf: return "SHMessageBoxCheckW";
+    case 0x02fe: return "SHOpenRegStream2A";
+    case 0x02ff: return "SHOpenRegStream2W";
+    case 0x0300: return "SHOpenRegStreamA";
+    case 0x0301: return "SHOpenRegStreamW";
+    case 0x0237: return "SHPropertyBag_ReadStrAlloc";
+    case 0x0302: return "SHQueryInfoKeyA";
+    case 0x0303: return "SHQueryInfoKeyW";
+    case 0x0304: return "SHQueryValueExA";
+    case 0x0305: return "SHQueryValueExW";
+    case 0x0306: return "SHRegCloseUSKey";
+    case 0x0307: return "SHRegCreateUSKeyA";
+    case 0x0308: return "SHRegCreateUSKeyW";
+    case 0x0309: return "SHRegDeleteEmptyUSKeyA";
+    case 0x030a: return "SHRegDeleteEmptyUSKeyW";
+    case 0x030b: return "SHRegDeleteUSValueA";
+    case 0x030c: return "SHRegDeleteUSValueW";
+    case 0x030d: return "SHRegDuplicateHKey";
+    case 0x030e: return "SHRegEnumUSKeyA";
+    case 0x030f: return "SHRegEnumUSKeyW";
+    case 0x0310: return "SHRegEnumUSValueA";
+    case 0x0311: return "SHRegEnumUSValueW";
+    case 0x0312: return "SHRegGetBoolUSValueA";
+    case 0x0313: return "SHRegGetBoolUSValueW";
+    case 0x0118: return "SHRegGetIntW";
+    case 0x0314: return "SHRegGetPathA";
+    case 0x0315: return "SHRegGetPathW";
+    case 0x0316: return "SHRegGetUSValueA";
+    case 0x0317: return "SHRegGetUSValueW";
+    case 0x0318: return "SHRegGetValueA";
+    case 0x0319: return "SHRegGetValueW";
+    case 0x031a: return "SHRegOpenUSKeyA";
+    case 0x031b: return "SHRegOpenUSKeyW";
+    case 0x031c: return "SHRegQueryInfoUSKeyA";
+    case 0x031d: return "SHRegQueryInfoUSKeyW";
+    case 0x031e: return "SHRegQueryUSValueA";
+    case 0x031f: return "SHRegQueryUSValueW";
+    case 0x0320: return "SHRegSetPathA";
+    case 0x0321: return "SHRegSetPathW";
+    case 0x0322: return "SHRegSetUSValueA";
+    case 0x0323: return "SHRegSetUSValueW";
+    case 0x0324: return "SHRegWriteUSValueA";
+    case 0x0325: return "SHRegWriteUSValueW";
+    case 0x0326: return "SHRegisterValidateTemplate";
+    case 0x0327: return "SHReleaseThreadRef";
+    case 0x01d3: return "SHRunIndirectRegClientCommand";
+    case 0x01b0: return "SHSendMessageBroadcastA";
+    case 0x01b1: return "SHSendMessageBroadcastW";
+    case 0x0328: return "SHSetThreadRef";
+    case 0x0329: return "SHSetValueA";
+    case 0x032a: return "SHSetValueW";
+    case 0x032b: return "SHSkipJunction";
+    case 0x032c: return "SHStrDupA";
+    case 0x032d: return "SHStrDupW";
+    case 0x00cb: return "SHStripMneumonicA";
+    case 0x00e1: return "SHStripMneumonicW";
+    case 0x00d9: return "SHUnicodeToAnsi";
+    case 0x015a: return "SHUnicodeToUnicode";
+    case 0x0009: return "SHUnlockShared";
+    case 0x032e: return "ShellMessageBoxA";
+    case 0x0184: return "ShellMessageBoxW";
+    case 0x032f: return "StrCSpnA";
+    case 0x0330: return "StrCSpnIA";
+    case 0x0331: return "StrCSpnIW";
+    case 0x0332: return "StrCSpnW";
+    case 0x0333: return "StrCatBuffA";
+    case 0x0334: return "StrCatBuffW";
+    case 0x0335: return "StrCatChainW";
+    case 0x0336: return "StrCatW";
+    case 0x0337: return "StrChrA";
+    case 0x0338: return "StrChrIA";
+    case 0x0339: return "StrChrIW";
+    case 0x033a: return "StrChrNIW";
+    case 0x033b: return "StrChrNW";
+    case 0x033c: return "StrChrW";
+    case 0x009b: return "StrCmpCA";
+    case 0x009c: return "StrCmpCW";
+    case 0x009d: return "StrCmpICA";
+    case 0x009e: return "StrCmpICW";
+    case 0x033d: return "StrCmpIW";
+    case 0x033e: return "StrCmpLogicalW";
+    case 0x033f: return "StrCmpNA";
+    case 0x0097: return "StrCmpNCA";
+    case 0x0098: return "StrCmpNCW";
+    case 0x0340: return "StrCmpNIA";
+    case 0x0099: return "StrCmpNICA";
+    case 0x009a: return "StrCmpNICW";
+    case 0x0341: return "StrCmpNIW";
+    case 0x0342: return "StrCmpNW";
+    case 0x0343: return "StrCmpW";
+    case 0x0344: return "StrCpyNW";
+    case 0x0345: return "StrCpyW";
+    case 0x0346: return "StrDupA";
+    case 0x0347: return "StrDupW";
+    case 0x0348: return "StrFormatByteSize64A";
+    case 0x0349: return "StrFormatByteSizeA";
+    case 0x034a: return "StrFormatByteSizeEx";
+    case 0x034b: return "StrFormatByteSizeW";
+    case 0x034c: return "StrFormatKBSizeA";
+    case 0x034d: return "StrFormatKBSizeW";
+    case 0x034e: return "StrFromTimeIntervalA";
+    case 0x034f: return "StrFromTimeIntervalW";
+    case 0x0350: return "StrIsIntlEqualA";
+    case 0x0351: return "StrIsIntlEqualW";
+    case 0x0352: return "StrNCatA";
+    case 0x0353: return "StrNCatW";
+    case 0x0354: return "StrPBrkA";
+    case 0x0355: return "StrPBrkW";
+    case 0x0356: return "StrRChrA";
+    case 0x0357: return "StrRChrIA";
+    case 0x0358: return "StrRChrIW";
+    case 0x0359: return "StrRChrW";
+    case 0x035a: return "StrRStrIA";
+    case 0x035b: return "StrRStrIW";
+    case 0x035c: return "StrRetToBSTR";
+    case 0x035d: return "StrRetToBufA";
+    case 0x035e: return "StrRetToBufW";
+    case 0x035f: return "StrRetToStrA";
+    case 0x0360: return "StrRetToStrW";
+    case 0x0361: return "StrSpnA";
+    case 0x0362: return "StrSpnW";
+    case 0x0363: return "StrStrA";
+    case 0x0364: return "StrStrIA";
+    case 0x0365: return "StrStrIW";
+    case 0x0366: return "StrStrNIW";
+    case 0x0367: return "StrStrNW";
+    case 0x0368: return "StrStrW";
+    case 0x0369: return "StrToInt64ExA";
+    case 0x036a: return "StrToInt64ExW";
+    case 0x036b: return "StrToIntA";
+    case 0x036c: return "StrToIntExA";
+    case 0x036d: return "StrToIntExW";
+    case 0x036e: return "StrToIntW";
+    case 0x036f: return "StrTrimA";
+    case 0x0370: return "StrTrimW";
+    case 0x0371: return "UrlApplySchemeA";
+    case 0x0372: return "UrlApplySchemeW";
+    case 0x0373: return "UrlCanonicalizeA";
+    case 0x0374: return "UrlCanonicalizeW";
+    case 0x0375: return "UrlCombineA";
+    case 0x0376: return "UrlCombineW";
+    case 0x0377: return "UrlCompareA";
+    case 0x0378: return "UrlCompareW";
+    case 0x0379: return "UrlCreateFromPathA";
+    case 0x037a: return "UrlCreateFromPathW";
+    case 0x037b: return "UrlEscapeA";
+    case 0x037c: return "UrlEscapeW";
+    case 0x01ce: return "UrlFixupW";
+    case 0x037d: return "UrlGetLocationA";
+    case 0x037e: return "UrlGetLocationW";
+    case 0x037f: return "UrlGetPartA";
+    case 0x0380: return "UrlGetPartW";
+    case 0x0381: return "UrlHashA";
+    case 0x0382: return "UrlHashW";
+    case 0x0383: return "UrlIsA";
+    case 0x0384: return "UrlIsNoHistoryA";
+    case 0x0385: return "UrlIsNoHistoryW";
+    case 0x0386: return "UrlIsOpaqueA";
+    case 0x0387: return "UrlIsOpaqueW";
+    case 0x0388: return "UrlIsW";
+    case 0x0389: return "UrlUnescapeA";
+    case 0x038a: return "UrlUnescapeW";
+    case 0x0114: return "WhichPlatform";
+    case 0x038b: return "wnsprintfA";
+    case 0x038c: return "wnsprintfW";
+    case 0x038d: return "wvnsprintfA";
+    case 0x038e: return "wvnsprintfW";
   }
   return nullptr;
 }


-}
 }

-#endif

+#endif
diff --git a/deps/LIEF/src/PE/utils/ordinals_lookup_tables/user32_dll_lookup.hpp b/deps/LIEF/src/PE/utils/ordinals_lookup_tables/user32_dll_lookup.hpp
index d97759516a8..77324ea187d 100644
--- a/deps/LIEF/src/PE/utils/ordinals_lookup_tables/user32_dll_lookup.hpp
+++ b/deps/LIEF/src/PE/utils/ordinals_lookup_tables/user32_dll_lookup.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -17,750 +17,749 @@
 #define LIEF_PE_USER32_DLL_LOOKUP_H
 #include <cstdint>

-namespace LIEF {
-namespace PE {
+
+namespace LIEF::PE {

 inline const char* user32_dll_lookup(uint32_t i) {
-  switch(i) {
-  case 0x0001: return "ActivateKeyboardLayout";
-  case 0x0002: return "AdjustWindowRect";
-  case 0x0003: return "AdjustWindowRectEx";
-  case 0x0004: return "AlignRects";
-  case 0x0005: return "AllowForegroundActivation";
-  case 0x0006: return "AllowSetForegroundWindow";
-  case 0x0007: return "AnimateWindow";
-  case 0x0008: return "AnyPopup";
-  case 0x0009: return "AppendMenuA";
-  case 0x000a: return "AppendMenuW";
-  case 0x000b: return "ArrangeIconicWindows";
-  case 0x000c: return "AttachThreadInput";
-  case 0x000d: return "BeginDeferWindowPos";
-  case 0x000e: return "BeginPaint";
-  case 0x000f: return "BlockInput";
-  case 0x0010: return "BringWindowToTop";
-  case 0x0011: return "BroadcastSystemMessage";
-  case 0x0012: return "BroadcastSystemMessageA";
-  case 0x0013: return "BroadcastSystemMessageExA";
-  case 0x0014: return "BroadcastSystemMessageExW";
-  case 0x0015: return "BroadcastSystemMessageW";
-  case 0x0016: return "BuildReasonArray";
-  case 0x0017: return "CalcMenuBar";
-  case 0x0018: return "CallMsgFilter";
-  case 0x0019: return "CallMsgFilterA";
-  case 0x001a: return "CallMsgFilterW";
-  case 0x001b: return "CallNextHookEx";
-  case 0x001c: return "CallWindowProcA";
-  case 0x001d: return "CallWindowProcW";
-  case 0x001e: return "CascadeChildWindows";
-  case 0x001f: return "CascadeWindows";
-  case 0x0020: return "ChangeClipboardChain";
-  case 0x0021: return "ChangeDisplaySettingsA";
-  case 0x0022: return "ChangeDisplaySettingsExA";
-  case 0x0023: return "ChangeDisplaySettingsExW";
-  case 0x0024: return "ChangeDisplaySettingsW";
-  case 0x0025: return "ChangeMenuA";
-  case 0x0026: return "ChangeMenuW";
-  case 0x0027: return "CharLowerA";
-  case 0x0028: return "CharLowerBuffA";
-  case 0x0029: return "CharLowerBuffW";
-  case 0x002a: return "CharLowerW";
-  case 0x002b: return "CharNextA";
-  case 0x002c: return "CharNextExA";
-  case 0x002d: return "CharNextW";
-  case 0x002e: return "CharPrevA";
-  case 0x002f: return "CharPrevExA";
-  case 0x0030: return "CharPrevW";
-  case 0x0031: return "CharToOemA";
-  case 0x0032: return "CharToOemBuffA";
-  case 0x0033: return "CharToOemBuffW";
-  case 0x0034: return "CharToOemW";
-  case 0x0035: return "CharUpperA";
-  case 0x0036: return "CharUpperBuffA";
-  case 0x0037: return "CharUpperBuffW";
-  case 0x0038: return "CharUpperW";
-  case 0x0039: return "CheckDlgButton";
-  case 0x003a: return "CheckMenuItem";
-  case 0x003b: return "CheckMenuRadioItem";
-  case 0x003c: return "CheckRadioButton";
-  case 0x003d: return "ChildWindowFromPoint";
-  case 0x003e: return "ChildWindowFromPointEx";
-  case 0x003f: return "CliImmSetHotKey";
-  case 0x0040: return "ClientThreadSetup";
-  case 0x0041: return "ClientToScreen";
-  case 0x0042: return "ClipCursor";
-  case 0x0043: return "CloseClipboard";
-  case 0x0044: return "CloseDesktop";
-  case 0x0045: return "CloseWindow";
-  case 0x0046: return "CloseWindowStation";
-  case 0x0047: return "CopyAcceleratorTableA";
-  case 0x0048: return "CopyAcceleratorTableW";
-  case 0x0049: return "CopyIcon";
-  case 0x004a: return "CopyImage";
-  case 0x004b: return "CopyRect";
-  case 0x004c: return "CountClipboardFormats";
-  case 0x004d: return "CreateAcceleratorTableA";
-  case 0x004e: return "CreateAcceleratorTableW";
-  case 0x004f: return "CreateCaret";
-  case 0x0050: return "CreateCursor";
-  case 0x0051: return "CreateDesktopA";
-  case 0x0052: return "CreateDesktopW";
-  case 0x0053: return "CreateDialogIndirectParamA";
-  case 0x0054: return "CreateDialogIndirectParamAorW";
-  case 0x0055: return "CreateDialogIndirectParamW";
-  case 0x0056: return "CreateDialogParamA";
-  case 0x0057: return "CreateDialogParamW";
-  case 0x0058: return "CreateIcon";
-  case 0x0059: return "CreateIconFromResource";
-  case 0x005a: return "CreateIconFromResourceEx";
-  case 0x005b: return "CreateIconIndirect";
-  case 0x005c: return "CreateMDIWindowA";
-  case 0x005d: return "CreateMDIWindowW";
-  case 0x005e: return "CreateMenu";
-  case 0x005f: return "CreatePopupMenu";
-  case 0x0060: return "CreateSystemThreads";
-  case 0x0061: return "CreateWindowExA";
-  case 0x0062: return "CreateWindowExW";
-  case 0x0063: return "CreateWindowStationA";
-  case 0x0064: return "CreateWindowStationW";
-  case 0x0065: return "CsrBroadcastSystemMessageExW";
-  case 0x0066: return "CtxInitUser32";
-  case 0x0067: return "DdeAbandonTransaction";
-  case 0x0068: return "DdeAccessData";
-  case 0x0069: return "DdeAddData";
-  case 0x006a: return "DdeClientTransaction";
-  case 0x006b: return "DdeCmpStringHandles";
-  case 0x006c: return "DdeConnect";
-  case 0x006d: return "DdeConnectList";
-  case 0x006e: return "DdeCreateDataHandle";
-  case 0x006f: return "DdeCreateStringHandleA";
-  case 0x0070: return "DdeCreateStringHandleW";
-  case 0x0071: return "DdeDisconnect";
-  case 0x0072: return "DdeDisconnectList";
-  case 0x0073: return "DdeEnableCallback";
-  case 0x0074: return "DdeFreeDataHandle";
-  case 0x0075: return "DdeFreeStringHandle";
-  case 0x0076: return "DdeGetData";
-  case 0x0077: return "DdeGetLastError";
-  case 0x0078: return "DdeGetQualityOfService";
-  case 0x0079: return "DdeImpersonateClient";
-  case 0x007a: return "DdeInitializeA";
-  case 0x007b: return "DdeInitializeW";
-  case 0x007c: return "DdeKeepStringHandle";
-  case 0x007d: return "DdeNameService";
-  case 0x007e: return "DdePostAdvise";
-  case 0x007f: return "DdeQueryConvInfo";
-  case 0x0080: return "DdeQueryNextServer";
-  case 0x0081: return "DdeQueryStringA";
-  case 0x0082: return "DdeQueryStringW";
-  case 0x0083: return "DdeReconnect";
-  case 0x0084: return "DdeSetQualityOfService";
-  case 0x0085: return "DdeSetUserHandle";
-  case 0x0086: return "DdeUnaccessData";
-  case 0x0087: return "DdeUninitialize";
-  case 0x0088: return "DefDlgProcA";
-  case 0x0089: return "DefDlgProcW";
-  case 0x008a: return "DefFrameProcA";
-  case 0x008b: return "DefFrameProcW";
-  case 0x008c: return "DefMDIChildProcA";
-  case 0x008d: return "DefMDIChildProcW";
-  case 0x008e: return "DefRawInputProc";
-  case 0x008f: return "DefWindowProcA";
-  case 0x0090: return "DefWindowProcW";
-  case 0x0091: return "DeferWindowPos";
-  case 0x0092: return "DeleteMenu";
-  case 0x0093: return "DeregisterShellHookWindow";
-  case 0x0094: return "DestroyAcceleratorTable";
-  case 0x0095: return "DestroyCaret";
-  case 0x0096: return "DestroyCursor";
-  case 0x0097: return "DestroyIcon";
-  case 0x0098: return "DestroyMenu";
-  case 0x0099: return "DestroyReasons";
-  case 0x009a: return "DestroyWindow";
-  case 0x009b: return "DeviceEventWorker";
-  case 0x009c: return "DialogBoxIndirectParamA";
-  case 0x009d: return "DialogBoxIndirectParamAorW";
-  case 0x009e: return "DialogBoxIndirectParamW";
-  case 0x009f: return "DialogBoxParamA";
-  case 0x00a0: return "DialogBoxParamW";
-  case 0x00a1: return "DisableProcessWindowsGhosting";
-  case 0x00a2: return "DispatchMessageA";
-  case 0x00a3: return "DispatchMessageW";
-  case 0x00a4: return "DisplayExitWindowsWarnings";
-  case 0x00a5: return "DlgDirListA";
-  case 0x00a6: return "DlgDirListComboBoxA";
-  case 0x00a7: return "DlgDirListComboBoxW";
-  case 0x00a8: return "DlgDirListW";
-  case 0x00a9: return "DlgDirSelectComboBoxExA";
-  case 0x00aa: return "DlgDirSelectComboBoxExW";
-  case 0x00ab: return "DlgDirSelectExA";
-  case 0x00ac: return "DlgDirSelectExW";
-  case 0x00ad: return "DragDetect";
-  case 0x00ae: return "DragObject";
-  case 0x00af: return "DrawAnimatedRects";
-  case 0x00b0: return "DrawCaption";
-  case 0x00b1: return "DrawCaptionTempA";
-  case 0x00b2: return "DrawCaptionTempW";
-  case 0x00b3: return "DrawEdge";
-  case 0x00b4: return "DrawFocusRect";
-  case 0x00b5: return "DrawFrame";
-  case 0x00b6: return "DrawFrameControl";
-  case 0x00b7: return "DrawIcon";
-  case 0x00b8: return "DrawIconEx";
-  case 0x00b9: return "DrawMenuBar";
-  case 0x00ba: return "DrawMenuBarTemp";
-  case 0x00bb: return "DrawStateA";
-  case 0x00bc: return "DrawStateW";
-  case 0x00bd: return "DrawTextA";
-  case 0x00be: return "DrawTextExA";
-  case 0x00bf: return "DrawTextExW";
-  case 0x00c0: return "DrawTextW";
-  case 0x00c1: return "EditWndProc";
-  case 0x00c2: return "EmptyClipboard";
-  case 0x00c3: return "EnableMenuItem";
-  case 0x00c4: return "EnableScrollBar";
-  case 0x00c5: return "EnableWindow";
-  case 0x00c6: return "EndDeferWindowPos";
-  case 0x00c7: return "EndDialog";
-  case 0x00c8: return "EndMenu";
-  case 0x00c9: return "EndPaint";
-  case 0x00ca: return "EndTask";
-  case 0x00cb: return "EnterReaderModeHelper";
-  case 0x00cc: return "EnumChildWindows";
-  case 0x00cd: return "EnumClipboardFormats";
-  case 0x00ce: return "EnumDesktopWindows";
-  case 0x00cf: return "EnumDesktopsA";
-  case 0x00d0: return "EnumDesktopsW";
-  case 0x00d1: return "EnumDisplayDevicesA";
-  case 0x00d2: return "EnumDisplayDevicesW";
-  case 0x00d3: return "EnumDisplayMonitors";
-  case 0x00d4: return "EnumDisplaySettingsA";
-  case 0x00d5: return "EnumDisplaySettingsExA";
-  case 0x00d6: return "EnumDisplaySettingsExW";
-  case 0x00d7: return "EnumDisplaySettingsW";
-  case 0x00d8: return "EnumPropsA";
-  case 0x00d9: return "EnumPropsExA";
-  case 0x00da: return "EnumPropsExW";
-  case 0x00db: return "EnumPropsW";
-  case 0x00dc: return "EnumThreadWindows";
-  case 0x00dd: return "EnumWindowStationsA";
-  case 0x00de: return "EnumWindowStationsW";
-  case 0x00df: return "EnumWindows";
-  case 0x00e0: return "EqualRect";
-  case 0x00e1: return "ExcludeUpdateRgn";
-  case 0x00e2: return "ExitWindowsEx";
-  case 0x00e3: return "FillRect";
-  case 0x00e4: return "FindWindowA";
-  case 0x00e5: return "FindWindowExA";
-  case 0x00e6: return "FindWindowExW";
-  case 0x00e7: return "FindWindowW";
-  case 0x00e8: return "FlashWindow";
-  case 0x00e9: return "FlashWindowEx";
-  case 0x00ea: return "FrameRect";
-  case 0x00eb: return "FreeDDElParam";
-  case 0x00ec: return "GetActiveWindow";
-  case 0x00ed: return "GetAltTabInfo";
-  case 0x00ee: return "GetAltTabInfoA";
-  case 0x00ef: return "GetAltTabInfoW";
-  case 0x00f0: return "GetAncestor";
-  case 0x00f2: return "GetAppCompatFlags";
-  case 0x00f1: return "GetAppCompatFlags2";
-  case 0x00f3: return "GetAsyncKeyState";
-  case 0x00f4: return "GetCapture";
-  case 0x00f5: return "GetCaretBlinkTime";
-  case 0x00f6: return "GetCaretPos";
-  case 0x00f7: return "GetClassInfoA";
-  case 0x00f8: return "GetClassInfoExA";
-  case 0x00f9: return "GetClassInfoExW";
-  case 0x00fa: return "GetClassInfoW";
-  case 0x00fb: return "GetClassLongA";
-  case 0x00fc: return "GetClassLongW";
-  case 0x00fd: return "GetClassNameA";
-  case 0x00fe: return "GetClassNameW";
-  case 0x00ff: return "GetClassWord";
-  case 0x0100: return "GetClientRect";
-  case 0x0101: return "GetClipCursor";
-  case 0x0102: return "GetClipboardData";
-  case 0x0103: return "GetClipboardFormatNameA";
-  case 0x0104: return "GetClipboardFormatNameW";
-  case 0x0105: return "GetClipboardOwner";
-  case 0x0106: return "GetClipboardSequenceNumber";
-  case 0x0107: return "GetClipboardViewer";
-  case 0x0108: return "GetComboBoxInfo";
-  case 0x0109: return "GetCursor";
-  case 0x010a: return "GetCursorFrameInfo";
-  case 0x010b: return "GetCursorInfo";
-  case 0x010c: return "GetCursorPos";
-  case 0x010d: return "GetDC";
-  case 0x010e: return "GetDCEx";
-  case 0x010f: return "GetDesktopWindow";
-  case 0x0110: return "GetDialogBaseUnits";
-  case 0x0111: return "GetDlgCtrlID";
-  case 0x0112: return "GetDlgItem";
-  case 0x0113: return "GetDlgItemInt";
-  case 0x0114: return "GetDlgItemTextA";
-  case 0x0115: return "GetDlgItemTextW";
-  case 0x0116: return "GetDoubleClickTime";
-  case 0x0117: return "GetFocus";
-  case 0x0118: return "GetForegroundWindow";
-  case 0x0119: return "GetGUIThreadInfo";
-  case 0x011a: return "GetGuiResources";
-  case 0x011b: return "GetIconInfo";
-  case 0x011c: return "GetInputDesktop";
-  case 0x011d: return "GetInputState";
-  case 0x011e: return "GetInternalWindowPos";
-  case 0x011f: return "GetKBCodePage";
-  case 0x0120: return "GetKeyNameTextA";
-  case 0x0121: return "GetKeyNameTextW";
-  case 0x0122: return "GetKeyState";
-  case 0x0123: return "GetKeyboardLayout";
-  case 0x0124: return "GetKeyboardLayoutList";
-  case 0x0125: return "GetKeyboardLayoutNameA";
-  case 0x0126: return "GetKeyboardLayoutNameW";
-  case 0x0127: return "GetKeyboardState";
-  case 0x0128: return "GetKeyboardType";
-  case 0x0129: return "GetLastActivePopup";
-  case 0x012a: return "GetLastInputInfo";
-  case 0x012b: return "GetLayeredWindowAttributes";
-  case 0x012c: return "GetListBoxInfo";
-  case 0x012d: return "GetMenu";
-  case 0x012e: return "GetMenuBarInfo";
-  case 0x012f: return "GetMenuCheckMarkDimensions";
-  case 0x0130: return "GetMenuContextHelpId";
-  case 0x0131: return "GetMenuDefaultItem";
-  case 0x0132: return "GetMenuInfo";
-  case 0x0133: return "GetMenuItemCount";
-  case 0x0134: return "GetMenuItemID";
-  case 0x0135: return "GetMenuItemInfoA";
-  case 0x0136: return "GetMenuItemInfoW";
-  case 0x0137: return "GetMenuItemRect";
-  case 0x0138: return "GetMenuState";
-  case 0x0139: return "GetMenuStringA";
-  case 0x013a: return "GetMenuStringW";
-  case 0x013b: return "GetMessageA";
-  case 0x013c: return "GetMessageExtraInfo";
-  case 0x013d: return "GetMessagePos";
-  case 0x013e: return "GetMessageTime";
-  case 0x013f: return "GetMessageW";
-  case 0x0140: return "GetMonitorInfoA";
-  case 0x0141: return "GetMonitorInfoW";
-  case 0x0142: return "GetMouseMovePointsEx";
-  case 0x0143: return "GetNextDlgGroupItem";
-  case 0x0144: return "GetNextDlgTabItem";
-  case 0x0145: return "GetOpenClipboardWindow";
-  case 0x0146: return "GetParent";
-  case 0x0147: return "GetPriorityClipboardFormat";
-  case 0x0148: return "GetProcessDefaultLayout";
-  case 0x0149: return "GetProcessWindowStation";
-  case 0x014a: return "GetProgmanWindow";
-  case 0x014b: return "GetPropA";
-  case 0x014c: return "GetPropW";
-  case 0x014d: return "GetQueueStatus";
-  case 0x014e: return "GetRawInputBuffer";
-  case 0x014f: return "GetRawInputData";
-  case 0x0150: return "GetRawInputDeviceInfoA";
-  case 0x0151: return "GetRawInputDeviceInfoW";
-  case 0x0152: return "GetRawInputDeviceList";
-  case 0x0153: return "GetReasonTitleFromReasonCode";
-  case 0x0154: return "GetRegisteredRawInputDevices";
-  case 0x0155: return "GetScrollBarInfo";
-  case 0x0156: return "GetScrollInfo";
-  case 0x0157: return "GetScrollPos";
-  case 0x0158: return "GetScrollRange";
-  case 0x0159: return "GetShellWindow";
-  case 0x015a: return "GetSubMenu";
-  case 0x015b: return "GetSysColor";
-  case 0x015c: return "GetSysColorBrush";
-  case 0x015d: return "GetSystemMenu";
-  case 0x015e: return "GetSystemMetrics";
-  case 0x015f: return "GetTabbedTextExtentA";
-  case 0x0160: return "GetTabbedTextExtentW";
-  case 0x0161: return "GetTaskmanWindow";
-  case 0x0162: return "GetThreadDesktop";
-  case 0x0163: return "GetTitleBarInfo";
-  case 0x0164: return "GetTopWindow";
-  case 0x0165: return "GetUpdateRect";
-  case 0x0166: return "GetUpdateRgn";
-  case 0x0167: return "GetUserObjectInformationA";
-  case 0x0168: return "GetUserObjectInformationW";
-  case 0x0169: return "GetUserObjectSecurity";
-  case 0x016a: return "GetWinStationInfo";
-  case 0x016b: return "GetWindow";
-  case 0x016c: return "GetWindowContextHelpId";
-  case 0x016d: return "GetWindowDC";
-  case 0x016e: return "GetWindowInfo";
-  case 0x016f: return "GetWindowLongA";
-  case 0x0170: return "GetWindowLongW";
-  case 0x0171: return "GetWindowModuleFileName";
-  case 0x0172: return "GetWindowModuleFileNameA";
-  case 0x0173: return "GetWindowModuleFileNameW";
-  case 0x0174: return "GetWindowPlacement";
-  case 0x0175: return "GetWindowRect";
-  case 0x0176: return "GetWindowRgn";
-  case 0x0177: return "GetWindowRgnBox";
-  case 0x0178: return "GetWindowTextA";
-  case 0x0179: return "GetWindowTextLengthA";
-  case 0x017a: return "GetWindowTextLengthW";
-  case 0x017b: return "GetWindowTextW";
-  case 0x017c: return "GetWindowThreadProcessId";
-  case 0x017d: return "GetWindowWord";
-  case 0x017e: return "GrayStringA";
-  case 0x017f: return "GrayStringW";
-  case 0x0180: return "HideCaret";
-  case 0x0181: return "HiliteMenuItem";
-  case 0x0182: return "IMPGetIMEA";
-  case 0x0183: return "IMPGetIMEW";
-  case 0x0184: return "IMPQueryIMEA";
-  case 0x0185: return "IMPQueryIMEW";
-  case 0x0186: return "IMPSetIMEA";
-  case 0x0187: return "IMPSetIMEW";
-  case 0x0188: return "ImpersonateDdeClientWindow";
-  case 0x0189: return "InSendMessage";
-  case 0x018a: return "InSendMessageEx";
-  case 0x018b: return "InflateRect";
-  case 0x018c: return "InitializeLpkHooks";
-  case 0x018d: return "InitializeWin32EntryTable";
-  case 0x018e: return "InsertMenuA";
-  case 0x018f: return "InsertMenuItemA";
-  case 0x0190: return "InsertMenuItemW";
-  case 0x0191: return "InsertMenuW";
-  case 0x0192: return "InternalGetWindowText";
-  case 0x0193: return "IntersectRect";
-  case 0x0194: return "InvalidateRect";
-  case 0x0195: return "InvalidateRgn";
-  case 0x0196: return "InvertRect";
-  case 0x0197: return "IsCharAlphaA";
-  case 0x0198: return "IsCharAlphaNumericA";
-  case 0x0199: return "IsCharAlphaNumericW";
-  case 0x019a: return "IsCharAlphaW";
-  case 0x019b: return "IsCharLowerA";
-  case 0x019c: return "IsCharLowerW";
-  case 0x019d: return "IsCharUpperA";
-  case 0x019e: return "IsCharUpperW";
-  case 0x019f: return "IsChild";
-  case 0x01a0: return "IsClipboardFormatAvailable";
-  case 0x01a1: return "IsDialogMessage";
-  case 0x01a2: return "IsDialogMessageA";
-  case 0x01a3: return "IsDialogMessageW";
-  case 0x01a4: return "IsDlgButtonChecked";
-  case 0x01a5: return "IsGUIThread";
-  case 0x01a6: return "IsHungAppWindow";
-  case 0x01a7: return "IsIconic";
-  case 0x01a8: return "IsMenu";
-  case 0x01a9: return "IsRectEmpty";
-  case 0x01aa: return "IsServerSideWindow";
-  case 0x01ab: return "IsWinEventHookInstalled";
-  case 0x01ac: return "IsWindow";
-  case 0x01ad: return "IsWindowEnabled";
-  case 0x01ae: return "IsWindowInDestroy";
-  case 0x01af: return "IsWindowUnicode";
-  case 0x01b0: return "IsWindowVisible";
-  case 0x01b1: return "IsZoomed";
-  case 0x01b2: return "KillSystemTimer";
-  case 0x01b3: return "KillTimer";
-  case 0x01b4: return "LoadAcceleratorsA";
-  case 0x01b5: return "LoadAcceleratorsW";
-  case 0x01b6: return "LoadBitmapA";
-  case 0x01b7: return "LoadBitmapW";
-  case 0x01b8: return "LoadCursorA";
-  case 0x01b9: return "LoadCursorFromFileA";
-  case 0x01ba: return "LoadCursorFromFileW";
-  case 0x01bb: return "LoadCursorW";
-  case 0x01bc: return "LoadIconA";
-  case 0x01bd: return "LoadIconW";
-  case 0x01be: return "LoadImageA";
-  case 0x01bf: return "LoadImageW";
-  case 0x01c0: return "LoadKeyboardLayoutA";
-  case 0x01c1: return "LoadKeyboardLayoutEx";
-  case 0x01c2: return "LoadKeyboardLayoutW";
-  case 0x01c3: return "LoadLocalFonts";
-  case 0x01c4: return "LoadMenuA";
-  case 0x01c5: return "LoadMenuIndirectA";
-  case 0x01c6: return "LoadMenuIndirectW";
-  case 0x01c7: return "LoadMenuW";
-  case 0x01c8: return "LoadRemoteFonts";
-  case 0x01c9: return "LoadStringA";
-  case 0x01ca: return "LoadStringW";
-  case 0x01cb: return "LockSetForegroundWindow";
-  case 0x01cc: return "LockWindowStation";
-  case 0x01cd: return "LockWindowUpdate";
-  case 0x01ce: return "LockWorkStation";
-  case 0x01cf: return "LookupIconIdFromDirectory";
-  case 0x01d0: return "LookupIconIdFromDirectoryEx";
-  case 0x01d1: return "MBToWCSEx";
-  case 0x01d2: return "MB_GetString";
-  case 0x01d3: return "MapDialogRect";
-  case 0x01d4: return "MapVirtualKeyA";
-  case 0x01d5: return "MapVirtualKeyExA";
-  case 0x01d6: return "MapVirtualKeyExW";
-  case 0x01d7: return "MapVirtualKeyW";
-  case 0x01d8: return "MapWindowPoints";
-  case 0x01d9: return "MenuItemFromPoint";
-  case 0x01da: return "MenuWindowProcA";
-  case 0x01db: return "MenuWindowProcW";
-  case 0x01dc: return "MessageBeep";
-  case 0x01dd: return "MessageBoxA";
-  case 0x01de: return "MessageBoxExA";
-  case 0x01df: return "MessageBoxExW";
-  case 0x01e0: return "MessageBoxIndirectA";
-  case 0x01e1: return "MessageBoxIndirectW";
-  case 0x01e2: return "MessageBoxTimeoutA";
-  case 0x01e3: return "MessageBoxTimeoutW";
-  case 0x01e4: return "MessageBoxW";
-  case 0x01e5: return "ModifyMenuA";
-  case 0x01e6: return "ModifyMenuW";
-  case 0x01e7: return "MonitorFromPoint";
-  case 0x01e8: return "MonitorFromRect";
-  case 0x01e9: return "MonitorFromWindow";
-  case 0x01ea: return "MoveWindow";
-  case 0x01eb: return "MsgWaitForMultipleObjects";
-  case 0x01ec: return "MsgWaitForMultipleObjectsEx";
-  case 0x01ed: return "NotifyWinEvent";
-  case 0x01ee: return "OemKeyScan";
-  case 0x01ef: return "OemToCharA";
-  case 0x01f0: return "OemToCharBuffA";
-  case 0x01f1: return "OemToCharBuffW";
-  case 0x01f2: return "OemToCharW";
-  case 0x01f3: return "OffsetRect";
-  case 0x01f4: return "OpenClipboard";
-  case 0x01f5: return "OpenDesktopA";
-  case 0x01f6: return "OpenDesktopW";
-  case 0x01f7: return "OpenIcon";
-  case 0x01f8: return "OpenInputDesktop";
-  case 0x01f9: return "OpenWindowStationA";
-  case 0x01fa: return "OpenWindowStationW";
-  case 0x01fb: return "PackDDElParam";
-  case 0x01fc: return "PaintDesktop";
-  case 0x01fd: return "PaintMenuBar";
-  case 0x01fe: return "PeekMessageA";
-  case 0x01ff: return "PeekMessageW";
-  case 0x0200: return "PostMessageA";
-  case 0x0201: return "PostMessageW";
-  case 0x0202: return "PostQuitMessage";
-  case 0x0203: return "PostThreadMessageA";
-  case 0x0204: return "PostThreadMessageW";
-  case 0x0205: return "PrintWindow";
-  case 0x0206: return "PrivateExtractIconExA";
-  case 0x0207: return "PrivateExtractIconExW";
-  case 0x0208: return "PrivateExtractIconsA";
-  case 0x0209: return "PrivateExtractIconsW";
-  case 0x020a: return "PrivateSetDbgTag";
-  case 0x020b: return "PrivateSetRipFlags";
-  case 0x020c: return "PtInRect";
-  case 0x020d: return "QuerySendMessage";
-  case 0x020e: return "QueryUserCounters";
-  case 0x020f: return "RealChildWindowFromPoint";
-  case 0x0210: return "RealGetWindowClass";
-  case 0x0211: return "RealGetWindowClassA";
-  case 0x0212: return "RealGetWindowClassW";
-  case 0x0213: return "ReasonCodeNeedsBugID";
-  case 0x0214: return "ReasonCodeNeedsComment";
-  case 0x0215: return "RecordShutdownReason";
-  case 0x0216: return "RedrawWindow";
-  case 0x0217: return "RegisterClassA";
-  case 0x0218: return "RegisterClassExA";
-  case 0x0219: return "RegisterClassExW";
-  case 0x021a: return "RegisterClassW";
-  case 0x021b: return "RegisterClipboardFormatA";
-  case 0x021c: return "RegisterClipboardFormatW";
-  case 0x021d: return "RegisterDeviceNotificationA";
-  case 0x021e: return "RegisterDeviceNotificationW";
-  case 0x021f: return "RegisterHotKey";
-  case 0x0220: return "RegisterLogonProcess";
-  case 0x0221: return "RegisterMessagePumpHook";
-  case 0x0222: return "RegisterRawInputDevices";
-  case 0x0223: return "RegisterServicesProcess";
-  case 0x0224: return "RegisterShellHookWindow";
-  case 0x0225: return "RegisterSystemThread";
-  case 0x0226: return "RegisterTasklist";
-  case 0x0227: return "RegisterUserApiHook";
-  case 0x0228: return "RegisterWindowMessageA";
-  case 0x0229: return "RegisterWindowMessageW";
-  case 0x022a: return "ReleaseCapture";
-  case 0x022b: return "ReleaseDC";
-  case 0x022c: return "RemoveMenu";
-  case 0x022d: return "RemovePropA";
-  case 0x022e: return "RemovePropW";
-  case 0x022f: return "ReplyMessage";
-  case 0x0230: return "ResolveDesktopForWOW";
-  case 0x0231: return "ReuseDDElParam";
-  case 0x0232: return "ScreenToClient";
-  case 0x0233: return "ScrollChildren";
-  case 0x0234: return "ScrollDC";
-  case 0x0235: return "ScrollWindow";
-  case 0x0236: return "ScrollWindowEx";
-  case 0x0237: return "SendDlgItemMessageA";
-  case 0x0238: return "SendDlgItemMessageW";
-  case 0x0239: return "SendIMEMessageExA";
-  case 0x023a: return "SendIMEMessageExW";
-  case 0x023b: return "SendInput";
-  case 0x023c: return "SendMessageA";
-  case 0x023d: return "SendMessageCallbackA";
-  case 0x023e: return "SendMessageCallbackW";
-  case 0x023f: return "SendMessageTimeoutA";
-  case 0x0240: return "SendMessageTimeoutW";
-  case 0x0241: return "SendMessageW";
-  case 0x0242: return "SendNotifyMessageA";
-  case 0x0243: return "SendNotifyMessageW";
-  case 0x0244: return "SetActiveWindow";
-  case 0x0245: return "SetCapture";
-  case 0x0246: return "SetCaretBlinkTime";
-  case 0x0247: return "SetCaretPos";
-  case 0x0248: return "SetClassLongA";
-  case 0x0249: return "SetClassLongW";
-  case 0x024a: return "SetClassWord";
-  case 0x024b: return "SetClipboardData";
-  case 0x024c: return "SetClipboardViewer";
-  case 0x024d: return "SetConsoleReserveKeys";
-  case 0x024e: return "SetCursor";
-  case 0x024f: return "SetCursorContents";
-  case 0x0250: return "SetCursorPos";
-  case 0x0251: return "SetDebugErrorLevel";
-  case 0x0252: return "SetDeskWallpaper";
-  case 0x0253: return "SetDlgItemInt";
-  case 0x0254: return "SetDlgItemTextA";
-  case 0x0255: return "SetDlgItemTextW";
-  case 0x0256: return "SetDoubleClickTime";
-  case 0x0257: return "SetFocus";
-  case 0x0258: return "SetForegroundWindow";
-  case 0x0259: return "SetInternalWindowPos";
-  case 0x025a: return "SetKeyboardState";
-  case 0x025b: return "SetLastErrorEx";
-  case 0x025c: return "SetLayeredWindowAttributes";
-  case 0x025d: return "SetLogonNotifyWindow";
-  case 0x025e: return "SetMenu";
-  case 0x025f: return "SetMenuContextHelpId";
-  case 0x0260: return "SetMenuDefaultItem";
-  case 0x0261: return "SetMenuInfo";
-  case 0x0262: return "SetMenuItemBitmaps";
-  case 0x0263: return "SetMenuItemInfoA";
-  case 0x0264: return "SetMenuItemInfoW";
-  case 0x0265: return "SetMessageExtraInfo";
-  case 0x0266: return "SetMessageQueue";
-  case 0x0267: return "SetParent";
-  case 0x0268: return "SetProcessDefaultLayout";
-  case 0x0269: return "SetProcessWindowStation";
-  case 0x026a: return "SetProgmanWindow";
-  case 0x026b: return "SetPropA";
-  case 0x026c: return "SetPropW";
-  case 0x026d: return "SetRect";
-  case 0x026e: return "SetRectEmpty";
-  case 0x026f: return "SetScrollInfo";
-  case 0x0270: return "SetScrollPos";
-  case 0x0271: return "SetScrollRange";
-  case 0x0272: return "SetShellWindow";
-  case 0x0273: return "SetShellWindowEx";
-  case 0x0274: return "SetSysColors";
-  case 0x0275: return "SetSysColorsTemp";
-  case 0x0276: return "SetSystemCursor";
-  case 0x0277: return "SetSystemMenu";
-  case 0x0278: return "SetSystemTimer";
-  case 0x0279: return "SetTaskmanWindow";
-  case 0x027a: return "SetThreadDesktop";
-  case 0x027b: return "SetTimer";
-  case 0x027c: return "SetUserObjectInformationA";
-  case 0x027d: return "SetUserObjectInformationW";
-  case 0x027e: return "SetUserObjectSecurity";
-  case 0x027f: return "SetWinEventHook";
-  case 0x0280: return "SetWindowContextHelpId";
-  case 0x0281: return "SetWindowLongA";
-  case 0x0282: return "SetWindowLongW";
-  case 0x0283: return "SetWindowPlacement";
-  case 0x0284: return "SetWindowPos";
-  case 0x0285: return "SetWindowRgn";
-  case 0x0286: return "SetWindowStationUser";
-  case 0x0287: return "SetWindowTextA";
-  case 0x0288: return "SetWindowTextW";
-  case 0x0289: return "SetWindowWord";
-  case 0x028a: return "SetWindowsHookA";
-  case 0x028b: return "SetWindowsHookExA";
-  case 0x028c: return "SetWindowsHookExW";
-  case 0x028d: return "SetWindowsHookW";
-  case 0x028e: return "ShowCaret";
-  case 0x028f: return "ShowCursor";
-  case 0x0290: return "ShowOwnedPopups";
-  case 0x0291: return "ShowScrollBar";
-  case 0x0292: return "ShowStartGlass";
-  case 0x0293: return "ShowWindow";
-  case 0x0294: return "ShowWindowAsync";
-  case 0x0295: return "SoftModalMessageBox";
-  case 0x0296: return "SubtractRect";
-  case 0x0297: return "SwapMouseButton";
-  case 0x0298: return "SwitchDesktop";
-  case 0x0299: return "SwitchToThisWindow";
-  case 0x029a: return "SystemParametersInfoA";
-  case 0x029b: return "SystemParametersInfoW";
-  case 0x029c: return "TabbedTextOutA";
-  case 0x029d: return "TabbedTextOutW";
-  case 0x029e: return "TileChildWindows";
-  case 0x029f: return "TileWindows";
-  case 0x02a0: return "ToAscii";
-  case 0x02a1: return "ToAsciiEx";
-  case 0x02a2: return "ToUnicode";
-  case 0x02a3: return "ToUnicodeEx";
-  case 0x02a4: return "TrackMouseEvent";
-  case 0x02a5: return "TrackPopupMenu";
-  case 0x02a6: return "TrackPopupMenuEx";
-  case 0x02a7: return "TranslateAccelerator";
-  case 0x02a8: return "TranslateAcceleratorA";
-  case 0x02a9: return "TranslateAcceleratorW";
-  case 0x02aa: return "TranslateMDISysAccel";
-  case 0x02ab: return "TranslateMessage";
-  case 0x02ac: return "TranslateMessageEx";
-  case 0x02ad: return "UnhookWinEvent";
-  case 0x02ae: return "UnhookWindowsHook";
-  case 0x02af: return "UnhookWindowsHookEx";
-  case 0x02b0: return "UnionRect";
-  case 0x02b1: return "UnloadKeyboardLayout";
-  case 0x02b2: return "UnlockWindowStation";
-  case 0x02b3: return "UnpackDDElParam";
-  case 0x02b4: return "UnregisterClassA";
-  case 0x02b5: return "UnregisterClassW";
-  case 0x02b6: return "UnregisterDeviceNotification";
-  case 0x02b7: return "UnregisterHotKey";
-  case 0x02b8: return "UnregisterMessagePumpHook";
-  case 0x02b9: return "UnregisterUserApiHook";
-  case 0x02ba: return "UpdateLayeredWindow";
-  case 0x02bb: return "UpdatePerUserSystemParameters";
-  case 0x02bc: return "UpdateWindow";
-  case 0x02bd: return "User32InitializeImmEntryTable";
-  case 0x02be: return "UserClientDllInitialize";
-  case 0x02bf: return "UserHandleGrantAccess";
-  case 0x02c0: return "UserLpkPSMTextOut";
-  case 0x02c1: return "UserLpkTabbedTextOut";
-  case 0x02c2: return "UserRealizePalette";
-  case 0x02c3: return "UserRegisterWowHandlers";
-  case 0x02c4: return "VRipOutput";
-  case 0x02c5: return "VTagOutput";
-  case 0x02c6: return "ValidateRect";
-  case 0x02c7: return "ValidateRgn";
-  case 0x02c8: return "VkKeyScanA";
-  case 0x02c9: return "VkKeyScanExA";
-  case 0x02ca: return "VkKeyScanExW";
-  case 0x02cb: return "VkKeyScanW";
-  case 0x02cc: return "WCSToMBEx";
-  case 0x02cd: return "WINNLSEnableIME";
-  case 0x02ce: return "WINNLSGetEnableStatus";
-  case 0x02cf: return "WINNLSGetIMEHotkey";
-  case 0x02d0: return "WaitForInputIdle";
-  case 0x02d1: return "WaitMessage";
-  case 0x02d2: return "Win32PoolAllocationStats";
-  case 0x02d3: return "WinHelpA";
-  case 0x02d4: return "WinHelpW";
-  case 0x02d5: return "WindowFromDC";
-  case 0x02d6: return "WindowFromPoint";
-  case 0x02d7: return "keybd_event";
-  case 0x02d8: return "mouse_event";
-  case 0x02d9: return "wsprintfA";
-  case 0x02da: return "wsprintfW";
-  case 0x02db: return "wvsprintfA";
-  case 0x02dc: return "wvsprintfW";
+  switch (i) {
+    case 0x0001: return "ActivateKeyboardLayout";
+    case 0x0002: return "AdjustWindowRect";
+    case 0x0003: return "AdjustWindowRectEx";
+    case 0x0004: return "AlignRects";
+    case 0x0005: return "AllowForegroundActivation";
+    case 0x0006: return "AllowSetForegroundWindow";
+    case 0x0007: return "AnimateWindow";
+    case 0x0008: return "AnyPopup";
+    case 0x0009: return "AppendMenuA";
+    case 0x000a: return "AppendMenuW";
+    case 0x000b: return "ArrangeIconicWindows";
+    case 0x000c: return "AttachThreadInput";
+    case 0x000d: return "BeginDeferWindowPos";
+    case 0x000e: return "BeginPaint";
+    case 0x000f: return "BlockInput";
+    case 0x0010: return "BringWindowToTop";
+    case 0x0011: return "BroadcastSystemMessage";
+    case 0x0012: return "BroadcastSystemMessageA";
+    case 0x0013: return "BroadcastSystemMessageExA";
+    case 0x0014: return "BroadcastSystemMessageExW";
+    case 0x0015: return "BroadcastSystemMessageW";
+    case 0x0016: return "BuildReasonArray";
+    case 0x0017: return "CalcMenuBar";
+    case 0x0018: return "CallMsgFilter";
+    case 0x0019: return "CallMsgFilterA";
+    case 0x001a: return "CallMsgFilterW";
+    case 0x001b: return "CallNextHookEx";
+    case 0x001c: return "CallWindowProcA";
+    case 0x001d: return "CallWindowProcW";
+    case 0x001e: return "CascadeChildWindows";
+    case 0x001f: return "CascadeWindows";
+    case 0x0020: return "ChangeClipboardChain";
+    case 0x0021: return "ChangeDisplaySettingsA";
+    case 0x0022: return "ChangeDisplaySettingsExA";
+    case 0x0023: return "ChangeDisplaySettingsExW";
+    case 0x0024: return "ChangeDisplaySettingsW";
+    case 0x0025: return "ChangeMenuA";
+    case 0x0026: return "ChangeMenuW";
+    case 0x0027: return "CharLowerA";
+    case 0x0028: return "CharLowerBuffA";
+    case 0x0029: return "CharLowerBuffW";
+    case 0x002a: return "CharLowerW";
+    case 0x002b: return "CharNextA";
+    case 0x002c: return "CharNextExA";
+    case 0x002d: return "CharNextW";
+    case 0x002e: return "CharPrevA";
+    case 0x002f: return "CharPrevExA";
+    case 0x0030: return "CharPrevW";
+    case 0x0031: return "CharToOemA";
+    case 0x0032: return "CharToOemBuffA";
+    case 0x0033: return "CharToOemBuffW";
+    case 0x0034: return "CharToOemW";
+    case 0x0035: return "CharUpperA";
+    case 0x0036: return "CharUpperBuffA";
+    case 0x0037: return "CharUpperBuffW";
+    case 0x0038: return "CharUpperW";
+    case 0x0039: return "CheckDlgButton";
+    case 0x003a: return "CheckMenuItem";
+    case 0x003b: return "CheckMenuRadioItem";
+    case 0x003c: return "CheckRadioButton";
+    case 0x003d: return "ChildWindowFromPoint";
+    case 0x003e: return "ChildWindowFromPointEx";
+    case 0x003f: return "CliImmSetHotKey";
+    case 0x0040: return "ClientThreadSetup";
+    case 0x0041: return "ClientToScreen";
+    case 0x0042: return "ClipCursor";
+    case 0x0043: return "CloseClipboard";
+    case 0x0044: return "CloseDesktop";
+    case 0x0045: return "CloseWindow";
+    case 0x0046: return "CloseWindowStation";
+    case 0x0047: return "CopyAcceleratorTableA";
+    case 0x0048: return "CopyAcceleratorTableW";
+    case 0x0049: return "CopyIcon";
+    case 0x004a: return "CopyImage";
+    case 0x004b: return "CopyRect";
+    case 0x004c: return "CountClipboardFormats";
+    case 0x004d: return "CreateAcceleratorTableA";
+    case 0x004e: return "CreateAcceleratorTableW";
+    case 0x004f: return "CreateCaret";
+    case 0x0050: return "CreateCursor";
+    case 0x0051: return "CreateDesktopA";
+    case 0x0052: return "CreateDesktopW";
+    case 0x0053: return "CreateDialogIndirectParamA";
+    case 0x0054: return "CreateDialogIndirectParamAorW";
+    case 0x0055: return "CreateDialogIndirectParamW";
+    case 0x0056: return "CreateDialogParamA";
+    case 0x0057: return "CreateDialogParamW";
+    case 0x0058: return "CreateIcon";
+    case 0x0059: return "CreateIconFromResource";
+    case 0x005a: return "CreateIconFromResourceEx";
+    case 0x005b: return "CreateIconIndirect";
+    case 0x005c: return "CreateMDIWindowA";
+    case 0x005d: return "CreateMDIWindowW";
+    case 0x005e: return "CreateMenu";
+    case 0x005f: return "CreatePopupMenu";
+    case 0x0060: return "CreateSystemThreads";
+    case 0x0061: return "CreateWindowExA";
+    case 0x0062: return "CreateWindowExW";
+    case 0x0063: return "CreateWindowStationA";
+    case 0x0064: return "CreateWindowStationW";
+    case 0x0065: return "CsrBroadcastSystemMessageExW";
+    case 0x0066: return "CtxInitUser32";
+    case 0x0067: return "DdeAbandonTransaction";
+    case 0x0068: return "DdeAccessData";
+    case 0x0069: return "DdeAddData";
+    case 0x006a: return "DdeClientTransaction";
+    case 0x006b: return "DdeCmpStringHandles";
+    case 0x006c: return "DdeConnect";
+    case 0x006d: return "DdeConnectList";
+    case 0x006e: return "DdeCreateDataHandle";
+    case 0x006f: return "DdeCreateStringHandleA";
+    case 0x0070: return "DdeCreateStringHandleW";
+    case 0x0071: return "DdeDisconnect";
+    case 0x0072: return "DdeDisconnectList";
+    case 0x0073: return "DdeEnableCallback";
+    case 0x0074: return "DdeFreeDataHandle";
+    case 0x0075: return "DdeFreeStringHandle";
+    case 0x0076: return "DdeGetData";
+    case 0x0077: return "DdeGetLastError";
+    case 0x0078: return "DdeGetQualityOfService";
+    case 0x0079: return "DdeImpersonateClient";
+    case 0x007a: return "DdeInitializeA";
+    case 0x007b: return "DdeInitializeW";
+    case 0x007c: return "DdeKeepStringHandle";
+    case 0x007d: return "DdeNameService";
+    case 0x007e: return "DdePostAdvise";
+    case 0x007f: return "DdeQueryConvInfo";
+    case 0x0080: return "DdeQueryNextServer";
+    case 0x0081: return "DdeQueryStringA";
+    case 0x0082: return "DdeQueryStringW";
+    case 0x0083: return "DdeReconnect";
+    case 0x0084: return "DdeSetQualityOfService";
+    case 0x0085: return "DdeSetUserHandle";
+    case 0x0086: return "DdeUnaccessData";
+    case 0x0087: return "DdeUninitialize";
+    case 0x0088: return "DefDlgProcA";
+    case 0x0089: return "DefDlgProcW";
+    case 0x008a: return "DefFrameProcA";
+    case 0x008b: return "DefFrameProcW";
+    case 0x008c: return "DefMDIChildProcA";
+    case 0x008d: return "DefMDIChildProcW";
+    case 0x008e: return "DefRawInputProc";
+    case 0x008f: return "DefWindowProcA";
+    case 0x0090: return "DefWindowProcW";
+    case 0x0091: return "DeferWindowPos";
+    case 0x0092: return "DeleteMenu";
+    case 0x0093: return "DeregisterShellHookWindow";
+    case 0x0094: return "DestroyAcceleratorTable";
+    case 0x0095: return "DestroyCaret";
+    case 0x0096: return "DestroyCursor";
+    case 0x0097: return "DestroyIcon";
+    case 0x0098: return "DestroyMenu";
+    case 0x0099: return "DestroyReasons";
+    case 0x009a: return "DestroyWindow";
+    case 0x009b: return "DeviceEventWorker";
+    case 0x009c: return "DialogBoxIndirectParamA";
+    case 0x009d: return "DialogBoxIndirectParamAorW";
+    case 0x009e: return "DialogBoxIndirectParamW";
+    case 0x009f: return "DialogBoxParamA";
+    case 0x00a0: return "DialogBoxParamW";
+    case 0x00a1: return "DisableProcessWindowsGhosting";
+    case 0x00a2: return "DispatchMessageA";
+    case 0x00a3: return "DispatchMessageW";
+    case 0x00a4: return "DisplayExitWindowsWarnings";
+    case 0x00a5: return "DlgDirListA";
+    case 0x00a6: return "DlgDirListComboBoxA";
+    case 0x00a7: return "DlgDirListComboBoxW";
+    case 0x00a8: return "DlgDirListW";
+    case 0x00a9: return "DlgDirSelectComboBoxExA";
+    case 0x00aa: return "DlgDirSelectComboBoxExW";
+    case 0x00ab: return "DlgDirSelectExA";
+    case 0x00ac: return "DlgDirSelectExW";
+    case 0x00ad: return "DragDetect";
+    case 0x00ae: return "DragObject";
+    case 0x00af: return "DrawAnimatedRects";
+    case 0x00b0: return "DrawCaption";
+    case 0x00b1: return "DrawCaptionTempA";
+    case 0x00b2: return "DrawCaptionTempW";
+    case 0x00b3: return "DrawEdge";
+    case 0x00b4: return "DrawFocusRect";
+    case 0x00b5: return "DrawFrame";
+    case 0x00b6: return "DrawFrameControl";
+    case 0x00b7: return "DrawIcon";
+    case 0x00b8: return "DrawIconEx";
+    case 0x00b9: return "DrawMenuBar";
+    case 0x00ba: return "DrawMenuBarTemp";
+    case 0x00bb: return "DrawStateA";
+    case 0x00bc: return "DrawStateW";
+    case 0x00bd: return "DrawTextA";
+    case 0x00be: return "DrawTextExA";
+    case 0x00bf: return "DrawTextExW";
+    case 0x00c0: return "DrawTextW";
+    case 0x00c1: return "EditWndProc";
+    case 0x00c2: return "EmptyClipboard";
+    case 0x00c3: return "EnableMenuItem";
+    case 0x00c4: return "EnableScrollBar";
+    case 0x00c5: return "EnableWindow";
+    case 0x00c6: return "EndDeferWindowPos";
+    case 0x00c7: return "EndDialog";
+    case 0x00c8: return "EndMenu";
+    case 0x00c9: return "EndPaint";
+    case 0x00ca: return "EndTask";
+    case 0x00cb: return "EnterReaderModeHelper";
+    case 0x00cc: return "EnumChildWindows";
+    case 0x00cd: return "EnumClipboardFormats";
+    case 0x00ce: return "EnumDesktopWindows";
+    case 0x00cf: return "EnumDesktopsA";
+    case 0x00d0: return "EnumDesktopsW";
+    case 0x00d1: return "EnumDisplayDevicesA";
+    case 0x00d2: return "EnumDisplayDevicesW";
+    case 0x00d3: return "EnumDisplayMonitors";
+    case 0x00d4: return "EnumDisplaySettingsA";
+    case 0x00d5: return "EnumDisplaySettingsExA";
+    case 0x00d6: return "EnumDisplaySettingsExW";
+    case 0x00d7: return "EnumDisplaySettingsW";
+    case 0x00d8: return "EnumPropsA";
+    case 0x00d9: return "EnumPropsExA";
+    case 0x00da: return "EnumPropsExW";
+    case 0x00db: return "EnumPropsW";
+    case 0x00dc: return "EnumThreadWindows";
+    case 0x00dd: return "EnumWindowStationsA";
+    case 0x00de: return "EnumWindowStationsW";
+    case 0x00df: return "EnumWindows";
+    case 0x00e0: return "EqualRect";
+    case 0x00e1: return "ExcludeUpdateRgn";
+    case 0x00e2: return "ExitWindowsEx";
+    case 0x00e3: return "FillRect";
+    case 0x00e4: return "FindWindowA";
+    case 0x00e5: return "FindWindowExA";
+    case 0x00e6: return "FindWindowExW";
+    case 0x00e7: return "FindWindowW";
+    case 0x00e8: return "FlashWindow";
+    case 0x00e9: return "FlashWindowEx";
+    case 0x00ea: return "FrameRect";
+    case 0x00eb: return "FreeDDElParam";
+    case 0x00ec: return "GetActiveWindow";
+    case 0x00ed: return "GetAltTabInfo";
+    case 0x00ee: return "GetAltTabInfoA";
+    case 0x00ef: return "GetAltTabInfoW";
+    case 0x00f0: return "GetAncestor";
+    case 0x00f2: return "GetAppCompatFlags";
+    case 0x00f1: return "GetAppCompatFlags2";
+    case 0x00f3: return "GetAsyncKeyState";
+    case 0x00f4: return "GetCapture";
+    case 0x00f5: return "GetCaretBlinkTime";
+    case 0x00f6: return "GetCaretPos";
+    case 0x00f7: return "GetClassInfoA";
+    case 0x00f8: return "GetClassInfoExA";
+    case 0x00f9: return "GetClassInfoExW";
+    case 0x00fa: return "GetClassInfoW";
+    case 0x00fb: return "GetClassLongA";
+    case 0x00fc: return "GetClassLongW";
+    case 0x00fd: return "GetClassNameA";
+    case 0x00fe: return "GetClassNameW";
+    case 0x00ff: return "GetClassWord";
+    case 0x0100: return "GetClientRect";
+    case 0x0101: return "GetClipCursor";
+    case 0x0102: return "GetClipboardData";
+    case 0x0103: return "GetClipboardFormatNameA";
+    case 0x0104: return "GetClipboardFormatNameW";
+    case 0x0105: return "GetClipboardOwner";
+    case 0x0106: return "GetClipboardSequenceNumber";
+    case 0x0107: return "GetClipboardViewer";
+    case 0x0108: return "GetComboBoxInfo";
+    case 0x0109: return "GetCursor";
+    case 0x010a: return "GetCursorFrameInfo";
+    case 0x010b: return "GetCursorInfo";
+    case 0x010c: return "GetCursorPos";
+    case 0x010d: return "GetDC";
+    case 0x010e: return "GetDCEx";
+    case 0x010f: return "GetDesktopWindow";
+    case 0x0110: return "GetDialogBaseUnits";
+    case 0x0111: return "GetDlgCtrlID";
+    case 0x0112: return "GetDlgItem";
+    case 0x0113: return "GetDlgItemInt";
+    case 0x0114: return "GetDlgItemTextA";
+    case 0x0115: return "GetDlgItemTextW";
+    case 0x0116: return "GetDoubleClickTime";
+    case 0x0117: return "GetFocus";
+    case 0x0118: return "GetForegroundWindow";
+    case 0x0119: return "GetGUIThreadInfo";
+    case 0x011a: return "GetGuiResources";
+    case 0x011b: return "GetIconInfo";
+    case 0x011c: return "GetInputDesktop";
+    case 0x011d: return "GetInputState";
+    case 0x011e: return "GetInternalWindowPos";
+    case 0x011f: return "GetKBCodePage";
+    case 0x0120: return "GetKeyNameTextA";
+    case 0x0121: return "GetKeyNameTextW";
+    case 0x0122: return "GetKeyState";
+    case 0x0123: return "GetKeyboardLayout";
+    case 0x0124: return "GetKeyboardLayoutList";
+    case 0x0125: return "GetKeyboardLayoutNameA";
+    case 0x0126: return "GetKeyboardLayoutNameW";
+    case 0x0127: return "GetKeyboardState";
+    case 0x0128: return "GetKeyboardType";
+    case 0x0129: return "GetLastActivePopup";
+    case 0x012a: return "GetLastInputInfo";
+    case 0x012b: return "GetLayeredWindowAttributes";
+    case 0x012c: return "GetListBoxInfo";
+    case 0x012d: return "GetMenu";
+    case 0x012e: return "GetMenuBarInfo";
+    case 0x012f: return "GetMenuCheckMarkDimensions";
+    case 0x0130: return "GetMenuContextHelpId";
+    case 0x0131: return "GetMenuDefaultItem";
+    case 0x0132: return "GetMenuInfo";
+    case 0x0133: return "GetMenuItemCount";
+    case 0x0134: return "GetMenuItemID";
+    case 0x0135: return "GetMenuItemInfoA";
+    case 0x0136: return "GetMenuItemInfoW";
+    case 0x0137: return "GetMenuItemRect";
+    case 0x0138: return "GetMenuState";
+    case 0x0139: return "GetMenuStringA";
+    case 0x013a: return "GetMenuStringW";
+    case 0x013b: return "GetMessageA";
+    case 0x013c: return "GetMessageExtraInfo";
+    case 0x013d: return "GetMessagePos";
+    case 0x013e: return "GetMessageTime";
+    case 0x013f: return "GetMessageW";
+    case 0x0140: return "GetMonitorInfoA";
+    case 0x0141: return "GetMonitorInfoW";
+    case 0x0142: return "GetMouseMovePointsEx";
+    case 0x0143: return "GetNextDlgGroupItem";
+    case 0x0144: return "GetNextDlgTabItem";
+    case 0x0145: return "GetOpenClipboardWindow";
+    case 0x0146: return "GetParent";
+    case 0x0147: return "GetPriorityClipboardFormat";
+    case 0x0148: return "GetProcessDefaultLayout";
+    case 0x0149: return "GetProcessWindowStation";
+    case 0x014a: return "GetProgmanWindow";
+    case 0x014b: return "GetPropA";
+    case 0x014c: return "GetPropW";
+    case 0x014d: return "GetQueueStatus";
+    case 0x014e: return "GetRawInputBuffer";
+    case 0x014f: return "GetRawInputData";
+    case 0x0150: return "GetRawInputDeviceInfoA";
+    case 0x0151: return "GetRawInputDeviceInfoW";
+    case 0x0152: return "GetRawInputDeviceList";
+    case 0x0153: return "GetReasonTitleFromReasonCode";
+    case 0x0154: return "GetRegisteredRawInputDevices";
+    case 0x0155: return "GetScrollBarInfo";
+    case 0x0156: return "GetScrollInfo";
+    case 0x0157: return "GetScrollPos";
+    case 0x0158: return "GetScrollRange";
+    case 0x0159: return "GetShellWindow";
+    case 0x015a: return "GetSubMenu";
+    case 0x015b: return "GetSysColor";
+    case 0x015c: return "GetSysColorBrush";
+    case 0x015d: return "GetSystemMenu";
+    case 0x015e: return "GetSystemMetrics";
+    case 0x015f: return "GetTabbedTextExtentA";
+    case 0x0160: return "GetTabbedTextExtentW";
+    case 0x0161: return "GetTaskmanWindow";
+    case 0x0162: return "GetThreadDesktop";
+    case 0x0163: return "GetTitleBarInfo";
+    case 0x0164: return "GetTopWindow";
+    case 0x0165: return "GetUpdateRect";
+    case 0x0166: return "GetUpdateRgn";
+    case 0x0167: return "GetUserObjectInformationA";
+    case 0x0168: return "GetUserObjectInformationW";
+    case 0x0169: return "GetUserObjectSecurity";
+    case 0x016a: return "GetWinStationInfo";
+    case 0x016b: return "GetWindow";
+    case 0x016c: return "GetWindowContextHelpId";
+    case 0x016d: return "GetWindowDC";
+    case 0x016e: return "GetWindowInfo";
+    case 0x016f: return "GetWindowLongA";
+    case 0x0170: return "GetWindowLongW";
+    case 0x0171: return "GetWindowModuleFileName";
+    case 0x0172: return "GetWindowModuleFileNameA";
+    case 0x0173: return "GetWindowModuleFileNameW";
+    case 0x0174: return "GetWindowPlacement";
+    case 0x0175: return "GetWindowRect";
+    case 0x0176: return "GetWindowRgn";
+    case 0x0177: return "GetWindowRgnBox";
+    case 0x0178: return "GetWindowTextA";
+    case 0x0179: return "GetWindowTextLengthA";
+    case 0x017a: return "GetWindowTextLengthW";
+    case 0x017b: return "GetWindowTextW";
+    case 0x017c: return "GetWindowThreadProcessId";
+    case 0x017d: return "GetWindowWord";
+    case 0x017e: return "GrayStringA";
+    case 0x017f: return "GrayStringW";
+    case 0x0180: return "HideCaret";
+    case 0x0181: return "HiliteMenuItem";
+    case 0x0182: return "IMPGetIMEA";
+    case 0x0183: return "IMPGetIMEW";
+    case 0x0184: return "IMPQueryIMEA";
+    case 0x0185: return "IMPQueryIMEW";
+    case 0x0186: return "IMPSetIMEA";
+    case 0x0187: return "IMPSetIMEW";
+    case 0x0188: return "ImpersonateDdeClientWindow";
+    case 0x0189: return "InSendMessage";
+    case 0x018a: return "InSendMessageEx";
+    case 0x018b: return "InflateRect";
+    case 0x018c: return "InitializeLpkHooks";
+    case 0x018d: return "InitializeWin32EntryTable";
+    case 0x018e: return "InsertMenuA";
+    case 0x018f: return "InsertMenuItemA";
+    case 0x0190: return "InsertMenuItemW";
+    case 0x0191: return "InsertMenuW";
+    case 0x0192: return "InternalGetWindowText";
+    case 0x0193: return "IntersectRect";
+    case 0x0194: return "InvalidateRect";
+    case 0x0195: return "InvalidateRgn";
+    case 0x0196: return "InvertRect";
+    case 0x0197: return "IsCharAlphaA";
+    case 0x0198: return "IsCharAlphaNumericA";
+    case 0x0199: return "IsCharAlphaNumericW";
+    case 0x019a: return "IsCharAlphaW";
+    case 0x019b: return "IsCharLowerA";
+    case 0x019c: return "IsCharLowerW";
+    case 0x019d: return "IsCharUpperA";
+    case 0x019e: return "IsCharUpperW";
+    case 0x019f: return "IsChild";
+    case 0x01a0: return "IsClipboardFormatAvailable";
+    case 0x01a1: return "IsDialogMessage";
+    case 0x01a2: return "IsDialogMessageA";
+    case 0x01a3: return "IsDialogMessageW";
+    case 0x01a4: return "IsDlgButtonChecked";
+    case 0x01a5: return "IsGUIThread";
+    case 0x01a6: return "IsHungAppWindow";
+    case 0x01a7: return "IsIconic";
+    case 0x01a8: return "IsMenu";
+    case 0x01a9: return "IsRectEmpty";
+    case 0x01aa: return "IsServerSideWindow";
+    case 0x01ab: return "IsWinEventHookInstalled";
+    case 0x01ac: return "IsWindow";
+    case 0x01ad: return "IsWindowEnabled";
+    case 0x01ae: return "IsWindowInDestroy";
+    case 0x01af: return "IsWindowUnicode";
+    case 0x01b0: return "IsWindowVisible";
+    case 0x01b1: return "IsZoomed";
+    case 0x01b2: return "KillSystemTimer";
+    case 0x01b3: return "KillTimer";
+    case 0x01b4: return "LoadAcceleratorsA";
+    case 0x01b5: return "LoadAcceleratorsW";
+    case 0x01b6: return "LoadBitmapA";
+    case 0x01b7: return "LoadBitmapW";
+    case 0x01b8: return "LoadCursorA";
+    case 0x01b9: return "LoadCursorFromFileA";
+    case 0x01ba: return "LoadCursorFromFileW";
+    case 0x01bb: return "LoadCursorW";
+    case 0x01bc: return "LoadIconA";
+    case 0x01bd: return "LoadIconW";
+    case 0x01be: return "LoadImageA";
+    case 0x01bf: return "LoadImageW";
+    case 0x01c0: return "LoadKeyboardLayoutA";
+    case 0x01c1: return "LoadKeyboardLayoutEx";
+    case 0x01c2: return "LoadKeyboardLayoutW";
+    case 0x01c3: return "LoadLocalFonts";
+    case 0x01c4: return "LoadMenuA";
+    case 0x01c5: return "LoadMenuIndirectA";
+    case 0x01c6: return "LoadMenuIndirectW";
+    case 0x01c7: return "LoadMenuW";
+    case 0x01c8: return "LoadRemoteFonts";
+    case 0x01c9: return "LoadStringA";
+    case 0x01ca: return "LoadStringW";
+    case 0x01cb: return "LockSetForegroundWindow";
+    case 0x01cc: return "LockWindowStation";
+    case 0x01cd: return "LockWindowUpdate";
+    case 0x01ce: return "LockWorkStation";
+    case 0x01cf: return "LookupIconIdFromDirectory";
+    case 0x01d0: return "LookupIconIdFromDirectoryEx";
+    case 0x01d1: return "MBToWCSEx";
+    case 0x01d2: return "MB_GetString";
+    case 0x01d3: return "MapDialogRect";
+    case 0x01d4: return "MapVirtualKeyA";
+    case 0x01d5: return "MapVirtualKeyExA";
+    case 0x01d6: return "MapVirtualKeyExW";
+    case 0x01d7: return "MapVirtualKeyW";
+    case 0x01d8: return "MapWindowPoints";
+    case 0x01d9: return "MenuItemFromPoint";
+    case 0x01da: return "MenuWindowProcA";
+    case 0x01db: return "MenuWindowProcW";
+    case 0x01dc: return "MessageBeep";
+    case 0x01dd: return "MessageBoxA";
+    case 0x01de: return "MessageBoxExA";
+    case 0x01df: return "MessageBoxExW";
+    case 0x01e0: return "MessageBoxIndirectA";
+    case 0x01e1: return "MessageBoxIndirectW";
+    case 0x01e2: return "MessageBoxTimeoutA";
+    case 0x01e3: return "MessageBoxTimeoutW";
+    case 0x01e4: return "MessageBoxW";
+    case 0x01e5: return "ModifyMenuA";
+    case 0x01e6: return "ModifyMenuW";
+    case 0x01e7: return "MonitorFromPoint";
+    case 0x01e8: return "MonitorFromRect";
+    case 0x01e9: return "MonitorFromWindow";
+    case 0x01ea: return "MoveWindow";
+    case 0x01eb: return "MsgWaitForMultipleObjects";
+    case 0x01ec: return "MsgWaitForMultipleObjectsEx";
+    case 0x01ed: return "NotifyWinEvent";
+    case 0x01ee: return "OemKeyScan";
+    case 0x01ef: return "OemToCharA";
+    case 0x01f0: return "OemToCharBuffA";
+    case 0x01f1: return "OemToCharBuffW";
+    case 0x01f2: return "OemToCharW";
+    case 0x01f3: return "OffsetRect";
+    case 0x01f4: return "OpenClipboard";
+    case 0x01f5: return "OpenDesktopA";
+    case 0x01f6: return "OpenDesktopW";
+    case 0x01f7: return "OpenIcon";
+    case 0x01f8: return "OpenInputDesktop";
+    case 0x01f9: return "OpenWindowStationA";
+    case 0x01fa: return "OpenWindowStationW";
+    case 0x01fb: return "PackDDElParam";
+    case 0x01fc: return "PaintDesktop";
+    case 0x01fd: return "PaintMenuBar";
+    case 0x01fe: return "PeekMessageA";
+    case 0x01ff: return "PeekMessageW";
+    case 0x0200: return "PostMessageA";
+    case 0x0201: return "PostMessageW";
+    case 0x0202: return "PostQuitMessage";
+    case 0x0203: return "PostThreadMessageA";
+    case 0x0204: return "PostThreadMessageW";
+    case 0x0205: return "PrintWindow";
+    case 0x0206: return "PrivateExtractIconExA";
+    case 0x0207: return "PrivateExtractIconExW";
+    case 0x0208: return "PrivateExtractIconsA";
+    case 0x0209: return "PrivateExtractIconsW";
+    case 0x020a: return "PrivateSetDbgTag";
+    case 0x020b: return "PrivateSetRipFlags";
+    case 0x020c: return "PtInRect";
+    case 0x020d: return "QuerySendMessage";
+    case 0x020e: return "QueryUserCounters";
+    case 0x020f: return "RealChildWindowFromPoint";
+    case 0x0210: return "RealGetWindowClass";
+    case 0x0211: return "RealGetWindowClassA";
+    case 0x0212: return "RealGetWindowClassW";
+    case 0x0213: return "ReasonCodeNeedsBugID";
+    case 0x0214: return "ReasonCodeNeedsComment";
+    case 0x0215: return "RecordShutdownReason";
+    case 0x0216: return "RedrawWindow";
+    case 0x0217: return "RegisterClassA";
+    case 0x0218: return "RegisterClassExA";
+    case 0x0219: return "RegisterClassExW";
+    case 0x021a: return "RegisterClassW";
+    case 0x021b: return "RegisterClipboardFormatA";
+    case 0x021c: return "RegisterClipboardFormatW";
+    case 0x021d: return "RegisterDeviceNotificationA";
+    case 0x021e: return "RegisterDeviceNotificationW";
+    case 0x021f: return "RegisterHotKey";
+    case 0x0220: return "RegisterLogonProcess";
+    case 0x0221: return "RegisterMessagePumpHook";
+    case 0x0222: return "RegisterRawInputDevices";
+    case 0x0223: return "RegisterServicesProcess";
+    case 0x0224: return "RegisterShellHookWindow";
+    case 0x0225: return "RegisterSystemThread";
+    case 0x0226: return "RegisterTasklist";
+    case 0x0227: return "RegisterUserApiHook";
+    case 0x0228: return "RegisterWindowMessageA";
+    case 0x0229: return "RegisterWindowMessageW";
+    case 0x022a: return "ReleaseCapture";
+    case 0x022b: return "ReleaseDC";
+    case 0x022c: return "RemoveMenu";
+    case 0x022d: return "RemovePropA";
+    case 0x022e: return "RemovePropW";
+    case 0x022f: return "ReplyMessage";
+    case 0x0230: return "ResolveDesktopForWOW";
+    case 0x0231: return "ReuseDDElParam";
+    case 0x0232: return "ScreenToClient";
+    case 0x0233: return "ScrollChildren";
+    case 0x0234: return "ScrollDC";
+    case 0x0235: return "ScrollWindow";
+    case 0x0236: return "ScrollWindowEx";
+    case 0x0237: return "SendDlgItemMessageA";
+    case 0x0238: return "SendDlgItemMessageW";
+    case 0x0239: return "SendIMEMessageExA";
+    case 0x023a: return "SendIMEMessageExW";
+    case 0x023b: return "SendInput";
+    case 0x023c: return "SendMessageA";
+    case 0x023d: return "SendMessageCallbackA";
+    case 0x023e: return "SendMessageCallbackW";
+    case 0x023f: return "SendMessageTimeoutA";
+    case 0x0240: return "SendMessageTimeoutW";
+    case 0x0241: return "SendMessageW";
+    case 0x0242: return "SendNotifyMessageA";
+    case 0x0243: return "SendNotifyMessageW";
+    case 0x0244: return "SetActiveWindow";
+    case 0x0245: return "SetCapture";
+    case 0x0246: return "SetCaretBlinkTime";
+    case 0x0247: return "SetCaretPos";
+    case 0x0248: return "SetClassLongA";
+    case 0x0249: return "SetClassLongW";
+    case 0x024a: return "SetClassWord";
+    case 0x024b: return "SetClipboardData";
+    case 0x024c: return "SetClipboardViewer";
+    case 0x024d: return "SetConsoleReserveKeys";
+    case 0x024e: return "SetCursor";
+    case 0x024f: return "SetCursorContents";
+    case 0x0250: return "SetCursorPos";
+    case 0x0251: return "SetDebugErrorLevel";
+    case 0x0252: return "SetDeskWallpaper";
+    case 0x0253: return "SetDlgItemInt";
+    case 0x0254: return "SetDlgItemTextA";
+    case 0x0255: return "SetDlgItemTextW";
+    case 0x0256: return "SetDoubleClickTime";
+    case 0x0257: return "SetFocus";
+    case 0x0258: return "SetForegroundWindow";
+    case 0x0259: return "SetInternalWindowPos";
+    case 0x025a: return "SetKeyboardState";
+    case 0x025b: return "SetLastErrorEx";
+    case 0x025c: return "SetLayeredWindowAttributes";
+    case 0x025d: return "SetLogonNotifyWindow";
+    case 0x025e: return "SetMenu";
+    case 0x025f: return "SetMenuContextHelpId";
+    case 0x0260: return "SetMenuDefaultItem";
+    case 0x0261: return "SetMenuInfo";
+    case 0x0262: return "SetMenuItemBitmaps";
+    case 0x0263: return "SetMenuItemInfoA";
+    case 0x0264: return "SetMenuItemInfoW";
+    case 0x0265: return "SetMessageExtraInfo";
+    case 0x0266: return "SetMessageQueue";
+    case 0x0267: return "SetParent";
+    case 0x0268: return "SetProcessDefaultLayout";
+    case 0x0269: return "SetProcessWindowStation";
+    case 0x026a: return "SetProgmanWindow";
+    case 0x026b: return "SetPropA";
+    case 0x026c: return "SetPropW";
+    case 0x026d: return "SetRect";
+    case 0x026e: return "SetRectEmpty";
+    case 0x026f: return "SetScrollInfo";
+    case 0x0270: return "SetScrollPos";
+    case 0x0271: return "SetScrollRange";
+    case 0x0272: return "SetShellWindow";
+    case 0x0273: return "SetShellWindowEx";
+    case 0x0274: return "SetSysColors";
+    case 0x0275: return "SetSysColorsTemp";
+    case 0x0276: return "SetSystemCursor";
+    case 0x0277: return "SetSystemMenu";
+    case 0x0278: return "SetSystemTimer";
+    case 0x0279: return "SetTaskmanWindow";
+    case 0x027a: return "SetThreadDesktop";
+    case 0x027b: return "SetTimer";
+    case 0x027c: return "SetUserObjectInformationA";
+    case 0x027d: return "SetUserObjectInformationW";
+    case 0x027e: return "SetUserObjectSecurity";
+    case 0x027f: return "SetWinEventHook";
+    case 0x0280: return "SetWindowContextHelpId";
+    case 0x0281: return "SetWindowLongA";
+    case 0x0282: return "SetWindowLongW";
+    case 0x0283: return "SetWindowPlacement";
+    case 0x0284: return "SetWindowPos";
+    case 0x0285: return "SetWindowRgn";
+    case 0x0286: return "SetWindowStationUser";
+    case 0x0287: return "SetWindowTextA";
+    case 0x0288: return "SetWindowTextW";
+    case 0x0289: return "SetWindowWord";
+    case 0x028a: return "SetWindowsHookA";
+    case 0x028b: return "SetWindowsHookExA";
+    case 0x028c: return "SetWindowsHookExW";
+    case 0x028d: return "SetWindowsHookW";
+    case 0x028e: return "ShowCaret";
+    case 0x028f: return "ShowCursor";
+    case 0x0290: return "ShowOwnedPopups";
+    case 0x0291: return "ShowScrollBar";
+    case 0x0292: return "ShowStartGlass";
+    case 0x0293: return "ShowWindow";
+    case 0x0294: return "ShowWindowAsync";
+    case 0x0295: return "SoftModalMessageBox";
+    case 0x0296: return "SubtractRect";
+    case 0x0297: return "SwapMouseButton";
+    case 0x0298: return "SwitchDesktop";
+    case 0x0299: return "SwitchToThisWindow";
+    case 0x029a: return "SystemParametersInfoA";
+    case 0x029b: return "SystemParametersInfoW";
+    case 0x029c: return "TabbedTextOutA";
+    case 0x029d: return "TabbedTextOutW";
+    case 0x029e: return "TileChildWindows";
+    case 0x029f: return "TileWindows";
+    case 0x02a0: return "ToAscii";
+    case 0x02a1: return "ToAsciiEx";
+    case 0x02a2: return "ToUnicode";
+    case 0x02a3: return "ToUnicodeEx";
+    case 0x02a4: return "TrackMouseEvent";
+    case 0x02a5: return "TrackPopupMenu";
+    case 0x02a6: return "TrackPopupMenuEx";
+    case 0x02a7: return "TranslateAccelerator";
+    case 0x02a8: return "TranslateAcceleratorA";
+    case 0x02a9: return "TranslateAcceleratorW";
+    case 0x02aa: return "TranslateMDISysAccel";
+    case 0x02ab: return "TranslateMessage";
+    case 0x02ac: return "TranslateMessageEx";
+    case 0x02ad: return "UnhookWinEvent";
+    case 0x02ae: return "UnhookWindowsHook";
+    case 0x02af: return "UnhookWindowsHookEx";
+    case 0x02b0: return "UnionRect";
+    case 0x02b1: return "UnloadKeyboardLayout";
+    case 0x02b2: return "UnlockWindowStation";
+    case 0x02b3: return "UnpackDDElParam";
+    case 0x02b4: return "UnregisterClassA";
+    case 0x02b5: return "UnregisterClassW";
+    case 0x02b6: return "UnregisterDeviceNotification";
+    case 0x02b7: return "UnregisterHotKey";
+    case 0x02b8: return "UnregisterMessagePumpHook";
+    case 0x02b9: return "UnregisterUserApiHook";
+    case 0x02ba: return "UpdateLayeredWindow";
+    case 0x02bb: return "UpdatePerUserSystemParameters";
+    case 0x02bc: return "UpdateWindow";
+    case 0x02bd: return "User32InitializeImmEntryTable";
+    case 0x02be: return "UserClientDllInitialize";
+    case 0x02bf: return "UserHandleGrantAccess";
+    case 0x02c0: return "UserLpkPSMTextOut";
+    case 0x02c1: return "UserLpkTabbedTextOut";
+    case 0x02c2: return "UserRealizePalette";
+    case 0x02c3: return "UserRegisterWowHandlers";
+    case 0x02c4: return "VRipOutput";
+    case 0x02c5: return "VTagOutput";
+    case 0x02c6: return "ValidateRect";
+    case 0x02c7: return "ValidateRgn";
+    case 0x02c8: return "VkKeyScanA";
+    case 0x02c9: return "VkKeyScanExA";
+    case 0x02ca: return "VkKeyScanExW";
+    case 0x02cb: return "VkKeyScanW";
+    case 0x02cc: return "WCSToMBEx";
+    case 0x02cd: return "WINNLSEnableIME";
+    case 0x02ce: return "WINNLSGetEnableStatus";
+    case 0x02cf: return "WINNLSGetIMEHotkey";
+    case 0x02d0: return "WaitForInputIdle";
+    case 0x02d1: return "WaitMessage";
+    case 0x02d2: return "Win32PoolAllocationStats";
+    case 0x02d3: return "WinHelpA";
+    case 0x02d4: return "WinHelpW";
+    case 0x02d5: return "WindowFromDC";
+    case 0x02d6: return "WindowFromPoint";
+    case 0x02d7: return "keybd_event";
+    case 0x02d8: return "mouse_event";
+    case 0x02d9: return "wsprintfA";
+    case 0x02da: return "wsprintfW";
+    case 0x02db: return "wvsprintfA";
+    case 0x02dc: return "wvsprintfW";
   }
   return nullptr;
 }


-}
 }

-#endif

+#endif
diff --git a/deps/LIEF/src/PE/utils/ordinals_lookup_tables/ws2_32_dll_lookup.hpp b/deps/LIEF/src/PE/utils/ordinals_lookup_tables/ws2_32_dll_lookup.hpp
index 03b5b798d6f..a7551c9cc09 100644
--- a/deps/LIEF/src/PE/utils/ordinals_lookup_tables/ws2_32_dll_lookup.hpp
+++ b/deps/LIEF/src/PE/utils/ordinals_lookup_tables/ws2_32_dll_lookup.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -17,135 +17,134 @@
 #define LIEF_PE_WS2_32_DLL_LOOKUP_H
 #include <cstdint>

-namespace LIEF {
-namespace PE {
+
+namespace LIEF::PE {

 inline const char* ws2_32_dll_lookup(uint32_t i) {
-  switch(i) {
-  case 0x001b: return "FreeAddrInfoW";
-  case 0x0018: return "GetAddrInfoW";
-  case 0x0019: return "GetNameInfoW";
-  case 0x01f4: return "WEP";
-  case 0x001c: return "WPUCompleteOverlappedRequest";
-  case 0x001d: return "WSAAccept";
-  case 0x001e: return "WSAAddressToStringA";
-  case 0x001f: return "WSAAddressToStringW";
-  case 0x0066: return "WSAAsyncGetHostByAddr";
-  case 0x0067: return "WSAAsyncGetHostByName";
-  case 0x0069: return "WSAAsyncGetProtoByName";
-  case 0x0068: return "WSAAsyncGetProtoByNumber";
-  case 0x006b: return "WSAAsyncGetServByName";
-  case 0x006a: return "WSAAsyncGetServByPort";
-  case 0x0065: return "WSAAsyncSelect";
-  case 0x006c: return "WSACancelAsyncRequest";
-  case 0x0071: return "WSACancelBlockingCall";
-  case 0x0074: return "WSACleanup";
-  case 0x0020: return "WSACloseEvent";
-  case 0x0021: return "WSAConnect";
-  case 0x0022: return "WSACreateEvent";
-  case 0x0023: return "WSADuplicateSocketA";
-  case 0x0024: return "WSADuplicateSocketW";
-  case 0x0025: return "WSAEnumNameSpaceProvidersA";
-  case 0x0026: return "WSAEnumNameSpaceProvidersW";
-  case 0x0027: return "WSAEnumNetworkEvents";
-  case 0x0028: return "WSAEnumProtocolsA";
-  case 0x0029: return "WSAEnumProtocolsW";
-  case 0x002a: return "WSAEventSelect";
-  case 0x006f: return "WSAGetLastError";
-  case 0x002b: return "WSAGetOverlappedResult";
-  case 0x002c: return "WSAGetQOSByName";
-  case 0x002d: return "WSAGetServiceClassInfoA";
-  case 0x002e: return "WSAGetServiceClassInfoW";
-  case 0x002f: return "WSAGetServiceClassNameByClassIdA";
-  case 0x0030: return "WSAGetServiceClassNameByClassIdW";
-  case 0x0031: return "WSAHtonl";
-  case 0x0032: return "WSAHtons";
-  case 0x003a: return "WSAInstallServiceClassA";
-  case 0x003b: return "WSAInstallServiceClassW";
-  case 0x003c: return "WSAIoctl";
-  case 0x0072: return "WSAIsBlocking";
-  case 0x003d: return "WSAJoinLeaf";
-  case 0x003e: return "WSALookupServiceBeginA";
-  case 0x003f: return "WSALookupServiceBeginW";
-  case 0x0040: return "WSALookupServiceEnd";
-  case 0x0041: return "WSALookupServiceNextA";
-  case 0x0042: return "WSALookupServiceNextW";
-  case 0x0043: return "WSANSPIoctl";
-  case 0x0044: return "WSANtohl";
-  case 0x0045: return "WSANtohs";
-  case 0x0046: return "WSAProviderConfigChange";
-  case 0x0047: return "WSARecv";
-  case 0x0048: return "WSARecvDisconnect";
-  case 0x0049: return "WSARecvFrom";
-  case 0x004a: return "WSARemoveServiceClass";
-  case 0x004b: return "WSAResetEvent";
-  case 0x004c: return "WSASend";
-  case 0x004d: return "WSASendDisconnect";
-  case 0x004e: return "WSASendTo";
-  case 0x006d: return "WSASetBlockingHook";
-  case 0x004f: return "WSASetEvent";
-  case 0x0070: return "WSASetLastError";
-  case 0x0050: return "WSASetServiceA";
-  case 0x0051: return "WSASetServiceW";
-  case 0x0052: return "WSASocketA";
-  case 0x0053: return "WSASocketW";
-  case 0x0073: return "WSAStartup";
-  case 0x0054: return "WSAStringToAddressA";
-  case 0x0055: return "WSAStringToAddressW";
-  case 0x006e: return "WSAUnhookBlockingHook";
-  case 0x0056: return "WSAWaitForMultipleEvents";
-  case 0x001a: return "WSApSetPostRoutine";
-  case 0x0057: return "WSCDeinstallProvider";
-  case 0x0058: return "WSCEnableNSProvider";
-  case 0x0059: return "WSCEnumProtocols";
-  case 0x005a: return "WSCGetProviderPath";
-  case 0x005b: return "WSCInstallNameSpace";
-  case 0x005c: return "WSCInstallProvider";
-  case 0x005d: return "WSCUnInstallNameSpace";
-  case 0x005e: return "WSCUpdateProvider";
-  case 0x005f: return "WSCWriteNameSpaceOrder";
-  case 0x0060: return "WSCWriteProviderOrder";
-  case 0x0097: return "__WSAFDIsSet";
-  case 0x0001: return "accept";
-  case 0x0002: return "bind";
-  case 0x0003: return "closesocket";
-  case 0x0004: return "connect";
-  case 0x0061: return "freeaddrinfo";
-  case 0x0062: return "getaddrinfo";
-  case 0x0033: return "gethostbyaddr";
-  case 0x0034: return "gethostbyname";
-  case 0x0039: return "gethostname";
-  case 0x0063: return "getnameinfo";
-  case 0x0005: return "getpeername";
-  case 0x0035: return "getprotobyname";
-  case 0x0036: return "getprotobynumber";
-  case 0x0037: return "getservbyname";
-  case 0x0038: return "getservbyport";
-  case 0x0006: return "getsockname";
-  case 0x0007: return "getsockopt";
-  case 0x0008: return "htonl";
-  case 0x0009: return "htons";
-  case 0x000b: return "inet_addr";
-  case 0x000c: return "inet_ntoa";
-  case 0x000a: return "ioctlsocket";
-  case 0x000d: return "listen";
-  case 0x000e: return "ntohl";
-  case 0x000f: return "ntohs";
-  case 0x0010: return "recv";
-  case 0x0011: return "recvfrom";
-  case 0x0012: return "select";
-  case 0x0013: return "send";
-  case 0x0014: return "sendto";
-  case 0x0015: return "setsockopt";
-  case 0x0016: return "shutdown";
-  case 0x0017: return "socket";
+  switch (i) {
+    case 0x001b: return "FreeAddrInfoW";
+    case 0x0018: return "GetAddrInfoW";
+    case 0x0019: return "GetNameInfoW";
+    case 0x01f4: return "WEP";
+    case 0x001c: return "WPUCompleteOverlappedRequest";
+    case 0x001d: return "WSAAccept";
+    case 0x001e: return "WSAAddressToStringA";
+    case 0x001f: return "WSAAddressToStringW";
+    case 0x0066: return "WSAAsyncGetHostByAddr";
+    case 0x0067: return "WSAAsyncGetHostByName";
+    case 0x0069: return "WSAAsyncGetProtoByName";
+    case 0x0068: return "WSAAsyncGetProtoByNumber";
+    case 0x006b: return "WSAAsyncGetServByName";
+    case 0x006a: return "WSAAsyncGetServByPort";
+    case 0x0065: return "WSAAsyncSelect";
+    case 0x006c: return "WSACancelAsyncRequest";
+    case 0x0071: return "WSACancelBlockingCall";
+    case 0x0074: return "WSACleanup";
+    case 0x0020: return "WSACloseEvent";
+    case 0x0021: return "WSAConnect";
+    case 0x0022: return "WSACreateEvent";
+    case 0x0023: return "WSADuplicateSocketA";
+    case 0x0024: return "WSADuplicateSocketW";
+    case 0x0025: return "WSAEnumNameSpaceProvidersA";
+    case 0x0026: return "WSAEnumNameSpaceProvidersW";
+    case 0x0027: return "WSAEnumNetworkEvents";
+    case 0x0028: return "WSAEnumProtocolsA";
+    case 0x0029: return "WSAEnumProtocolsW";
+    case 0x002a: return "WSAEventSelect";
+    case 0x006f: return "WSAGetLastError";
+    case 0x002b: return "WSAGetOverlappedResult";
+    case 0x002c: return "WSAGetQOSByName";
+    case 0x002d: return "WSAGetServiceClassInfoA";
+    case 0x002e: return "WSAGetServiceClassInfoW";
+    case 0x002f: return "WSAGetServiceClassNameByClassIdA";
+    case 0x0030: return "WSAGetServiceClassNameByClassIdW";
+    case 0x0031: return "WSAHtonl";
+    case 0x0032: return "WSAHtons";
+    case 0x003a: return "WSAInstallServiceClassA";
+    case 0x003b: return "WSAInstallServiceClassW";
+    case 0x003c: return "WSAIoctl";
+    case 0x0072: return "WSAIsBlocking";
+    case 0x003d: return "WSAJoinLeaf";
+    case 0x003e: return "WSALookupServiceBeginA";
+    case 0x003f: return "WSALookupServiceBeginW";
+    case 0x0040: return "WSALookupServiceEnd";
+    case 0x0041: return "WSALookupServiceNextA";
+    case 0x0042: return "WSALookupServiceNextW";
+    case 0x0043: return "WSANSPIoctl";
+    case 0x0044: return "WSANtohl";
+    case 0x0045: return "WSANtohs";
+    case 0x0046: return "WSAProviderConfigChange";
+    case 0x0047: return "WSARecv";
+    case 0x0048: return "WSARecvDisconnect";
+    case 0x0049: return "WSARecvFrom";
+    case 0x004a: return "WSARemoveServiceClass";
+    case 0x004b: return "WSAResetEvent";
+    case 0x004c: return "WSASend";
+    case 0x004d: return "WSASendDisconnect";
+    case 0x004e: return "WSASendTo";
+    case 0x006d: return "WSASetBlockingHook";
+    case 0x004f: return "WSASetEvent";
+    case 0x0070: return "WSASetLastError";
+    case 0x0050: return "WSASetServiceA";
+    case 0x0051: return "WSASetServiceW";
+    case 0x0052: return "WSASocketA";
+    case 0x0053: return "WSASocketW";
+    case 0x0073: return "WSAStartup";
+    case 0x0054: return "WSAStringToAddressA";
+    case 0x0055: return "WSAStringToAddressW";
+    case 0x006e: return "WSAUnhookBlockingHook";
+    case 0x0056: return "WSAWaitForMultipleEvents";
+    case 0x001a: return "WSApSetPostRoutine";
+    case 0x0057: return "WSCDeinstallProvider";
+    case 0x0058: return "WSCEnableNSProvider";
+    case 0x0059: return "WSCEnumProtocols";
+    case 0x005a: return "WSCGetProviderPath";
+    case 0x005b: return "WSCInstallNameSpace";
+    case 0x005c: return "WSCInstallProvider";
+    case 0x005d: return "WSCUnInstallNameSpace";
+    case 0x005e: return "WSCUpdateProvider";
+    case 0x005f: return "WSCWriteNameSpaceOrder";
+    case 0x0060: return "WSCWriteProviderOrder";
+    case 0x0097: return "__WSAFDIsSet";
+    case 0x0001: return "accept";
+    case 0x0002: return "bind";
+    case 0x0003: return "closesocket";
+    case 0x0004: return "connect";
+    case 0x0061: return "freeaddrinfo";
+    case 0x0062: return "getaddrinfo";
+    case 0x0033: return "gethostbyaddr";
+    case 0x0034: return "gethostbyname";
+    case 0x0039: return "gethostname";
+    case 0x0063: return "getnameinfo";
+    case 0x0005: return "getpeername";
+    case 0x0035: return "getprotobyname";
+    case 0x0036: return "getprotobynumber";
+    case 0x0037: return "getservbyname";
+    case 0x0038: return "getservbyport";
+    case 0x0006: return "getsockname";
+    case 0x0007: return "getsockopt";
+    case 0x0008: return "htonl";
+    case 0x0009: return "htons";
+    case 0x000b: return "inet_addr";
+    case 0x000c: return "inet_ntoa";
+    case 0x000a: return "ioctlsocket";
+    case 0x000d: return "listen";
+    case 0x000e: return "ntohl";
+    case 0x000f: return "ntohs";
+    case 0x0010: return "recv";
+    case 0x0011: return "recvfrom";
+    case 0x0012: return "select";
+    case 0x0013: return "send";
+    case 0x0014: return "sendto";
+    case 0x0015: return "setsockopt";
+    case 0x0016: return "shutdown";
+    case 0x0017: return "socket";
   }
   return nullptr;
 }


-}
 }

-#endif

+#endif
diff --git a/deps/LIEF/src/PE/utils/ordinals_lookup_tables_std/libraries_table.hpp b/deps/LIEF/src/PE/utils/ordinals_lookup_tables_std/libraries_table.hpp
index d957431a3fe..5075d8775e7 100644
--- a/deps/LIEF/src/PE/utils/ordinals_lookup_tables_std/libraries_table.hpp
+++ b/deps/LIEF/src/PE/utils/ordinals_lookup_tables_std/libraries_table.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/deps/LIEF/src/PE/utils/ordinals_lookup_tables_std/oleauth32_dll_lookup.hpp b/deps/LIEF/src/PE/utils/ordinals_lookup_tables_std/oleauth32_dll_lookup.hpp
index 1bcac0b4cf1..a048e8bb397 100644
--- a/deps/LIEF/src/PE/utils/ordinals_lookup_tables_std/oleauth32_dll_lookup.hpp
+++ b/deps/LIEF/src/PE/utils/ordinals_lookup_tables_std/oleauth32_dll_lookup.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -18,418 +18,416 @@

 #include <cinttypes>

-namespace LIEF {
-namespace PE {
-namespace imphashstd {

-// From pefile: https://github.com/erocarrera/pefile/blob/09264be6f731bf8578aee8638cc4046154e03abf/ordlookup/oleaut32.py
+namespace LIEF::PE::imphashstd {
+
+// From pefile:
+// https://github.com/erocarrera/pefile/blob/09264be6f731bf8578aee8638cc4046154e03abf/ordlookup/oleaut32.py
 inline const char* oleaut32_dll_lookup(uint32_t i) {
-  switch(i) {
-  case 0x0002: return "SysAllocString";
-  case 0x0003: return "SysReAllocString";
-  case 0x0004: return "SysAllocStringLen";
-  case 0x0005: return "SysReAllocStringLen";
-  case 0x0006: return "SysFreeString";
-  case 0x0007: return "SysStringLen";
-  case 0x0008: return "VariantInit";
-  case 0x0009: return "VariantClear";
-  case 0x000a: return "VariantCopy";
-  case 0x000b: return "VariantCopyInd";
-  case 0x000c: return "VariantChangeType";
-  case 0x000d: return "VariantTimeToDosDateTime";
-  case 0x000e: return "DosDateTimeToVariantTime";
-  case 0x000f: return "SafeArrayCreate";
-  case 0x0010: return "SafeArrayDestroy";
-  case 0x0011: return "SafeArrayGetDim";
-  case 0x0012: return "SafeArrayGetElemsize";
-  case 0x0013: return "SafeArrayGetUBound";
-  case 0x0014: return "SafeArrayGetLBound";
-  case 0x0015: return "SafeArrayLock";
-  case 0x0016: return "SafeArrayUnlock";
-  case 0x0017: return "SafeArrayAccessData";
-  case 0x0018: return "SafeArrayUnaccessData";
-  case 0x0019: return "SafeArrayGetElement";
-  case 0x001a: return "SafeArrayPutElement";
-  case 0x001b: return "SafeArrayCopy";
-  case 0x001c: return "DispGetParam";
-  case 0x001d: return "DispGetIDsOfNames";
-  case 0x001e: return "DispInvoke";
-  case 0x001f: return "CreateDispTypeInfo";
-  case 0x0020: return "CreateStdDispatch";
-  case 0x0021: return "RegisterActiveObject";
-  case 0x0022: return "RevokeActiveObject";
-  case 0x0023: return "GetActiveObject";
-  case 0x0024: return "SafeArrayAllocDescriptor";
-  case 0x0025: return "SafeArrayAllocData";
-  case 0x0026: return "SafeArrayDestroyDescriptor";
-  case 0x0027: return "SafeArrayDestroyData";
-  case 0x0028: return "SafeArrayRedim";
-  case 0x0029: return "SafeArrayAllocDescriptorEx";
-  case 0x002a: return "SafeArrayCreateEx";
-  case 0x002b: return "SafeArrayCreateVectorEx";
-  case 0x002c: return "SafeArraySetRecordInfo";
-  case 0x002d: return "SafeArrayGetRecordInfo";
-  case 0x002e: return "VarParseNumFromStr";
-  case 0x002f: return "VarNumFromParseNum";
-  case 0x0030: return "VarI2FromUI1";
-  case 0x0031: return "VarI2FromI4";
-  case 0x0032: return "VarI2FromR4";
-  case 0x0033: return "VarI2FromR8";
-  case 0x0034: return "VarI2FromCy";
-  case 0x0035: return "VarI2FromDate";
-  case 0x0036: return "VarI2FromStr";
-  case 0x0037: return "VarI2FromDisp";
-  case 0x0038: return "VarI2FromBool";
-  case 0x0039: return "SafeArraySetIID";
-  case 0x003a: return "VarI4FromUI1";
-  case 0x003b: return "VarI4FromI2";
-  case 0x003c: return "VarI4FromR4";
-  case 0x003d: return "VarI4FromR8";
-  case 0x003e: return "VarI4FromCy";
-  case 0x003f: return "VarI4FromDate";
-  case 0x0040: return "VarI4FromStr";
-  case 0x0041: return "VarI4FromDisp";
-  case 0x0042: return "VarI4FromBool";
-  case 0x0043: return "SafeArrayGetIID";
-  case 0x0044: return "VarR4FromUI1";
-  case 0x0045: return "VarR4FromI2";
-  case 0x0046: return "VarR4FromI4";
-  case 0x0047: return "VarR4FromR8";
-  case 0x0048: return "VarR4FromCy";
-  case 0x0049: return "VarR4FromDate";
-  case 0x004a: return "VarR4FromStr";
-  case 0x004b: return "VarR4FromDisp";
-  case 0x004c: return "VarR4FromBool";
-  case 0x004d: return "SafeArrayGetVartype";
-  case 0x004e: return "VarR8FromUI1";
-  case 0x004f: return "VarR8FromI2";
-  case 0x0050: return "VarR8FromI4";
-  case 0x0051: return "VarR8FromR4";
-  case 0x0052: return "VarR8FromCy";
-  case 0x0053: return "VarR8FromDate";
-  case 0x0054: return "VarR8FromStr";
-  case 0x0055: return "VarR8FromDisp";
-  case 0x0056: return "VarR8FromBool";
-  case 0x0057: return "VarFormat";
-  case 0x0058: return "VarDateFromUI1";
-  case 0x0059: return "VarDateFromI2";
-  case 0x005a: return "VarDateFromI4";
-  case 0x005b: return "VarDateFromR4";
-  case 0x005c: return "VarDateFromR8";
-  case 0x005d: return "VarDateFromCy";
-  case 0x005e: return "VarDateFromStr";
-  case 0x005f: return "VarDateFromDisp";
-  case 0x0060: return "VarDateFromBool";
-  case 0x0061: return "VarFormatDateTime";
-  case 0x0062: return "VarCyFromUI1";
-  case 0x0063: return "VarCyFromI2";
-  case 0x0064: return "VarCyFromI4";
-  case 0x0065: return "VarCyFromR4";
-  case 0x0066: return "VarCyFromR8";
-  case 0x0067: return "VarCyFromDate";
-  case 0x0068: return "VarCyFromStr";
-  case 0x0069: return "VarCyFromDisp";
-  case 0x006a: return "VarCyFromBool";
-  case 0x006b: return "VarFormatNumber";
-  case 0x006c: return "VarBstrFromUI1";
-  case 0x006d: return "VarBstrFromI2";
-  case 0x006e: return "VarBstrFromI4";
-  case 0x006f: return "VarBstrFromR4";
-  case 0x0070: return "VarBstrFromR8";
-  case 0x0071: return "VarBstrFromCy";
-  case 0x0072: return "VarBstrFromDate";
-  case 0x0073: return "VarBstrFromDisp";
-  case 0x0074: return "VarBstrFromBool";
-  case 0x0075: return "VarFormatPercent";
-  case 0x0076: return "VarBoolFromUI1";
-  case 0x0077: return "VarBoolFromI2";
-  case 0x0078: return "VarBoolFromI4";
-  case 0x0079: return "VarBoolFromR4";
-  case 0x007a: return "VarBoolFromR8";
-  case 0x007b: return "VarBoolFromDate";
-  case 0x007c: return "VarBoolFromCy";
-  case 0x007d: return "VarBoolFromStr";
-  case 0x007e: return "VarBoolFromDisp";
-  case 0x007f: return "VarFormatCurrency";
-  case 0x0080: return "VarWeekdayName";
-  case 0x0081: return "VarMonthName";
-  case 0x0082: return "VarUI1FromI2";
-  case 0x0083: return "VarUI1FromI4";
-  case 0x0084: return "VarUI1FromR4";
-  case 0x0085: return "VarUI1FromR8";
-  case 0x0086: return "VarUI1FromCy";
-  case 0x0087: return "VarUI1FromDate";
-  case 0x0088: return "VarUI1FromStr";
-  case 0x0089: return "VarUI1FromDisp";
-  case 0x008a: return "VarUI1FromBool";
-  case 0x008b: return "VarFormatFromTokens";
-  case 0x008c: return "VarTokenizeFormatString";
-  case 0x008d: return "VarAdd";
-  case 0x008e: return "VarAnd";
-  case 0x008f: return "VarDiv";
-  case 0x0090: return "DllCanUnloadNow";
-  case 0x0091: return "DllGetClassObject";
-  case 0x0092: return "DispCallFunc";
-  case 0x0093: return "VariantChangeTypeEx";
-  case 0x0094: return "SafeArrayPtrOfIndex";
-  case 0x0095: return "SysStringByteLen";
-  case 0x0096: return "SysAllocStringByteLen";
-  case 0x0097: return "DllRegisterServer";
-  case 0x0098: return "VarEqv";
-  case 0x0099: return "VarIdiv";
-  case 0x009a: return "VarImp";
-  case 0x009b: return "VarMod";
-  case 0x009c: return "VarMul";
-  case 0x009d: return "VarOr";
-  case 0x009e: return "VarPow";
-  case 0x009f: return "VarSub";
-  case 0x00a0: return "CreateTypeLib";
-  case 0x00a1: return "LoadTypeLib";
-  case 0x00a2: return "LoadRegTypeLib";
-  case 0x00a3: return "RegisterTypeLib";
-  case 0x00a4: return "QueryPathOfRegTypeLib";
-  case 0x00a5: return "LHashValOfNameSys";
-  case 0x00a6: return "LHashValOfNameSysA";
-  case 0x00a7: return "VarXor";
-  case 0x00a8: return "VarAbs";
-  case 0x00a9: return "VarFix";
-  case 0x00aa: return "OaBuildVersion";
-  case 0x00ab: return "ClearCustData";
-  case 0x00ac: return "VarInt";
-  case 0x00ad: return "VarNeg";
-  case 0x00ae: return "VarNot";
-  case 0x00af: return "VarRound";
-  case 0x00b0: return "VarCmp";
-  case 0x00b1: return "VarDecAdd";
-  case 0x00b2: return "VarDecDiv";
-  case 0x00b3: return "VarDecMul";
-  case 0x00b4: return "CreateTypeLib2";
-  case 0x00b5: return "VarDecSub";
-  case 0x00b6: return "VarDecAbs";
-  case 0x00b7: return "LoadTypeLibEx";
-  case 0x00b8: return "SystemTimeToVariantTime";
-  case 0x00b9: return "VariantTimeToSystemTime";
-  case 0x00ba: return "UnRegisterTypeLib";
-  case 0x00bb: return "VarDecFix";
-  case 0x00bc: return "VarDecInt";
-  case 0x00bd: return "VarDecNeg";
-  case 0x00be: return "VarDecFromUI1";
-  case 0x00bf: return "VarDecFromI2";
-  case 0x00c0: return "VarDecFromI4";
-  case 0x00c1: return "VarDecFromR4";
-  case 0x00c2: return "VarDecFromR8";
-  case 0x00c3: return "VarDecFromDate";
-  case 0x00c4: return "VarDecFromCy";
-  case 0x00c5: return "VarDecFromStr";
-  case 0x00c6: return "VarDecFromDisp";
-  case 0x00c7: return "VarDecFromBool";
-  case 0x00c8: return "GetErrorInfo";
-  case 0x00c9: return "SetErrorInfo";
-  case 0x00ca: return "CreateErrorInfo";
-  case 0x00cb: return "VarDecRound";
-  case 0x00cc: return "VarDecCmp";
-  case 0x00cd: return "VarI2FromI1";
-  case 0x00ce: return "VarI2FromUI2";
-  case 0x00cf: return "VarI2FromUI4";
-  case 0x00d0: return "VarI2FromDec";
-  case 0x00d1: return "VarI4FromI1";
-  case 0x00d2: return "VarI4FromUI2";
-  case 0x00d3: return "VarI4FromUI4";
-  case 0x00d4: return "VarI4FromDec";
-  case 0x00d5: return "VarR4FromI1";
-  case 0x00d6: return "VarR4FromUI2";
-  case 0x00d7: return "VarR4FromUI4";
-  case 0x00d8: return "VarR4FromDec";
-  case 0x00d9: return "VarR8FromI1";
-  case 0x00da: return "VarR8FromUI2";
-  case 0x00db: return "VarR8FromUI4";
-  case 0x00dc: return "VarR8FromDec";
-  case 0x00dd: return "VarDateFromI1";
-  case 0x00de: return "VarDateFromUI2";
-  case 0x00df: return "VarDateFromUI4";
-  case 0x00e0: return "VarDateFromDec";
-  case 0x00e1: return "VarCyFromI1";
-  case 0x00e2: return "VarCyFromUI2";
-  case 0x00e3: return "VarCyFromUI4";
-  case 0x00e4: return "VarCyFromDec";
-  case 0x00e5: return "VarBstrFromI1";
-  case 0x00e6: return "VarBstrFromUI2";
-  case 0x00e7: return "VarBstrFromUI4";
-  case 0x00e8: return "VarBstrFromDec";
-  case 0x00e9: return "VarBoolFromI1";
-  case 0x00ea: return "VarBoolFromUI2";
-  case 0x00eb: return "VarBoolFromUI4";
-  case 0x00ec: return "VarBoolFromDec";
-  case 0x00ed: return "VarUI1FromI1";
-  case 0x00ee: return "VarUI1FromUI2";
-  case 0x00ef: return "VarUI1FromUI4";
-  case 0x00f0: return "VarUI1FromDec";
-  case 0x00f1: return "VarDecFromI1";
-  case 0x00f2: return "VarDecFromUI2";
-  case 0x00f3: return "VarDecFromUI4";
-  case 0x00f4: return "VarI1FromUI1";
-  case 0x00f5: return "VarI1FromI2";
-  case 0x00f6: return "VarI1FromI4";
-  case 0x00f7: return "VarI1FromR4";
-  case 0x00f8: return "VarI1FromR8";
-  case 0x00f9: return "VarI1FromDate";
-  case 0x00fa: return "VarI1FromCy";
-  case 0x00fb: return "VarI1FromStr";
-  case 0x00fc: return "VarI1FromDisp";
-  case 0x00fd: return "VarI1FromBool";
-  case 0x00fe: return "VarI1FromUI2";
-  case 0x00ff: return "VarI1FromUI4";
-  case 0x0100: return "VarI1FromDec";
-  case 0x0101: return "VarUI2FromUI1";
-  case 0x0102: return "VarUI2FromI2";
-  case 0x0103: return "VarUI2FromI4";
-  case 0x0104: return "VarUI2FromR4";
-  case 0x0105: return "VarUI2FromR8";
-  case 0x0106: return "VarUI2FromDate";
-  case 0x0107: return "VarUI2FromCy";
-  case 0x0108: return "VarUI2FromStr";
-  case 0x0109: return "VarUI2FromDisp";
-  case 0x010a: return "VarUI2FromBool";
-  case 0x010b: return "VarUI2FromI1";
-  case 0x010c: return "VarUI2FromUI4";
-  case 0x010d: return "VarUI2FromDec";
-  case 0x010e: return "VarUI4FromUI1";
-  case 0x010f: return "VarUI4FromI2";
-  case 0x0110: return "VarUI4FromI4";
-  case 0x0111: return "VarUI4FromR4";
-  case 0x0112: return "VarUI4FromR8";
-  case 0x0113: return "VarUI4FromDate";
-  case 0x0114: return "VarUI4FromCy";
-  case 0x0115: return "VarUI4FromStr";
-  case 0x0116: return "VarUI4FromDisp";
-  case 0x0117: return "VarUI4FromBool";
-  case 0x0118: return "VarUI4FromI1";
-  case 0x0119: return "VarUI4FromUI2";
-  case 0x011a: return "VarUI4FromDec";
-  case 0x011b: return "BSTR_UserSize";
-  case 0x011c: return "BSTR_UserMarshal";
-  case 0x011d: return "BSTR_UserUnmarshal";
-  case 0x011e: return "BSTR_UserFree";
-  case 0x011f: return "VARIANT_UserSize";
-  case 0x0120: return "VARIANT_UserMarshal";
-  case 0x0121: return "VARIANT_UserUnmarshal";
-  case 0x0122: return "VARIANT_UserFree";
-  case 0x0123: return "LPSAFEARRAY_UserSize";
-  case 0x0124: return "LPSAFEARRAY_UserMarshal";
-  case 0x0125: return "LPSAFEARRAY_UserUnmarshal";
-  case 0x0126: return "LPSAFEARRAY_UserFree";
-  case 0x0127: return "LPSAFEARRAY_Size";
-  case 0x0128: return "LPSAFEARRAY_Marshal";
-  case 0x0129: return "LPSAFEARRAY_Unmarshal";
-  case 0x012a: return "VarDecCmpR8";
-  case 0x012b: return "VarCyAdd";
-  case 0x012c: return "DllUnregisterServer";
-  case 0x012d: return "OACreateTypeLib2";
-  case 0x012f: return "VarCyMul";
-  case 0x0130: return "VarCyMulI4";
-  case 0x0131: return "VarCySub";
-  case 0x0132: return "VarCyAbs";
-  case 0x0133: return "VarCyFix";
-  case 0x0134: return "VarCyInt";
-  case 0x0135: return "VarCyNeg";
-  case 0x0136: return "VarCyRound";
-  case 0x0137: return "VarCyCmp";
-  case 0x0138: return "VarCyCmpR8";
-  case 0x0139: return "VarBstrCat";
-  case 0x013a: return "VarBstrCmp";
-  case 0x013b: return "VarR8Pow";
-  case 0x013c: return "VarR4CmpR8";
-  case 0x013d: return "VarR8Round";
-  case 0x013e: return "VarCat";
-  case 0x013f: return "VarDateFromUdateEx";
-  case 0x0142: return "GetRecordInfoFromGuids";
-  case 0x0143: return "GetRecordInfoFromTypeInfo";
-  case 0x0145: return "SetVarConversionLocaleSetting";
-  case 0x0146: return "GetVarConversionLocaleSetting";
-  case 0x0147: return "SetOaNoCache";
-  case 0x0149: return "VarCyMulI8";
-  case 0x014a: return "VarDateFromUdate";
-  case 0x014b: return "VarUdateFromDate";
-  case 0x014c: return "GetAltMonthNames";
-  case 0x014d: return "VarI8FromUI1";
-  case 0x014e: return "VarI8FromI2";
-  case 0x014f: return "VarI8FromR4";
-  case 0x0150: return "VarI8FromR8";
-  case 0x0151: return "VarI8FromCy";
-  case 0x0152: return "VarI8FromDate";
-  case 0x0153: return "VarI8FromStr";
-  case 0x0154: return "VarI8FromDisp";
-  case 0x0155: return "VarI8FromBool";
-  case 0x0156: return "VarI8FromI1";
-  case 0x0157: return "VarI8FromUI2";
-  case 0x0158: return "VarI8FromUI4";
-  case 0x0159: return "VarI8FromDec";
-  case 0x015a: return "VarI2FromI8";
-  case 0x015b: return "VarI2FromUI8";
-  case 0x015c: return "VarI4FromI8";
-  case 0x015d: return "VarI4FromUI8";
-  case 0x0168: return "VarR4FromI8";
-  case 0x0169: return "VarR4FromUI8";
-  case 0x016a: return "VarR8FromI8";
-  case 0x016b: return "VarR8FromUI8";
-  case 0x016c: return "VarDateFromI8";
-  case 0x016d: return "VarDateFromUI8";
-  case 0x016e: return "VarCyFromI8";
-  case 0x016f: return "VarCyFromUI8";
-  case 0x0170: return "VarBstrFromI8";
-  case 0x0171: return "VarBstrFromUI8";
-  case 0x0172: return "VarBoolFromI8";
-  case 0x0173: return "VarBoolFromUI8";
-  case 0x0174: return "VarUI1FromI8";
-  case 0x0175: return "VarUI1FromUI8";
-  case 0x0176: return "VarDecFromI8";
-  case 0x0177: return "VarDecFromUI8";
-  case 0x0178: return "VarI1FromI8";
-  case 0x0179: return "VarI1FromUI8";
-  case 0x017a: return "VarUI2FromI8";
-  case 0x017b: return "VarUI2FromUI8";
-  case 0x0191: return "OleLoadPictureEx";
-  case 0x0192: return "OleLoadPictureFileEx";
-  case 0x019b: return "SafeArrayCreateVector";
-  case 0x019c: return "SafeArrayCopyData";
-  case 0x019d: return "VectorFromBstr";
-  case 0x019e: return "BstrFromVector";
-  case 0x019f: return "OleIconToCursor";
-  case 0x01a0: return "OleCreatePropertyFrameIndirect";
-  case 0x01a1: return "OleCreatePropertyFrame";
-  case 0x01a2: return "OleLoadPicture";
-  case 0x01a3: return "OleCreatePictureIndirect";
-  case 0x01a4: return "OleCreateFontIndirect";
-  case 0x01a5: return "OleTranslateColor";
-  case 0x01a6: return "OleLoadPictureFile";
-  case 0x01a7: return "OleSavePictureFile";
-  case 0x01a8: return "OleLoadPicturePath";
-  case 0x01a9: return "VarUI4FromI8";
-  case 0x01aa: return "VarUI4FromUI8";
-  case 0x01ab: return "VarI8FromUI8";
-  case 0x01ac: return "VarUI8FromI8";
-  case 0x01ad: return "VarUI8FromUI1";
-  case 0x01ae: return "VarUI8FromI2";
-  case 0x01af: return "VarUI8FromR4";
-  case 0x01b0: return "VarUI8FromR8";
-  case 0x01b1: return "VarUI8FromCy";
-  case 0x01b2: return "VarUI8FromDate";
-  case 0x01b3: return "VarUI8FromStr";
-  case 0x01b4: return "VarUI8FromDisp";
-  case 0x01b5: return "VarUI8FromBool";
-  case 0x01b6: return "VarUI8FromI1";
-  case 0x01b7: return "VarUI8FromUI2";
-  case 0x01b8: return "VarUI8FromUI4";
-  case 0x01b9: return "VarUI8FromDec";
-  case 0x01ba: return "RegisterTypeLibForUser";
-  case 0x01bb: return "UnRegisterTypeLibForUser";
+  switch (i) {
+    case 0x0002: return "SysAllocString";
+    case 0x0003: return "SysReAllocString";
+    case 0x0004: return "SysAllocStringLen";
+    case 0x0005: return "SysReAllocStringLen";
+    case 0x0006: return "SysFreeString";
+    case 0x0007: return "SysStringLen";
+    case 0x0008: return "VariantInit";
+    case 0x0009: return "VariantClear";
+    case 0x000a: return "VariantCopy";
+    case 0x000b: return "VariantCopyInd";
+    case 0x000c: return "VariantChangeType";
+    case 0x000d: return "VariantTimeToDosDateTime";
+    case 0x000e: return "DosDateTimeToVariantTime";
+    case 0x000f: return "SafeArrayCreate";
+    case 0x0010: return "SafeArrayDestroy";
+    case 0x0011: return "SafeArrayGetDim";
+    case 0x0012: return "SafeArrayGetElemsize";
+    case 0x0013: return "SafeArrayGetUBound";
+    case 0x0014: return "SafeArrayGetLBound";
+    case 0x0015: return "SafeArrayLock";
+    case 0x0016: return "SafeArrayUnlock";
+    case 0x0017: return "SafeArrayAccessData";
+    case 0x0018: return "SafeArrayUnaccessData";
+    case 0x0019: return "SafeArrayGetElement";
+    case 0x001a: return "SafeArrayPutElement";
+    case 0x001b: return "SafeArrayCopy";
+    case 0x001c: return "DispGetParam";
+    case 0x001d: return "DispGetIDsOfNames";
+    case 0x001e: return "DispInvoke";
+    case 0x001f: return "CreateDispTypeInfo";
+    case 0x0020: return "CreateStdDispatch";
+    case 0x0021: return "RegisterActiveObject";
+    case 0x0022: return "RevokeActiveObject";
+    case 0x0023: return "GetActiveObject";
+    case 0x0024: return "SafeArrayAllocDescriptor";
+    case 0x0025: return "SafeArrayAllocData";
+    case 0x0026: return "SafeArrayDestroyDescriptor";
+    case 0x0027: return "SafeArrayDestroyData";
+    case 0x0028: return "SafeArrayRedim";
+    case 0x0029: return "SafeArrayAllocDescriptorEx";
+    case 0x002a: return "SafeArrayCreateEx";
+    case 0x002b: return "SafeArrayCreateVectorEx";
+    case 0x002c: return "SafeArraySetRecordInfo";
+    case 0x002d: return "SafeArrayGetRecordInfo";
+    case 0x002e: return "VarParseNumFromStr";
+    case 0x002f: return "VarNumFromParseNum";
+    case 0x0030: return "VarI2FromUI1";
+    case 0x0031: return "VarI2FromI4";
+    case 0x0032: return "VarI2FromR4";
+    case 0x0033: return "VarI2FromR8";
+    case 0x0034: return "VarI2FromCy";
+    case 0x0035: return "VarI2FromDate";
+    case 0x0036: return "VarI2FromStr";
+    case 0x0037: return "VarI2FromDisp";
+    case 0x0038: return "VarI2FromBool";
+    case 0x0039: return "SafeArraySetIID";
+    case 0x003a: return "VarI4FromUI1";
+    case 0x003b: return "VarI4FromI2";
+    case 0x003c: return "VarI4FromR4";
+    case 0x003d: return "VarI4FromR8";
+    case 0x003e: return "VarI4FromCy";
+    case 0x003f: return "VarI4FromDate";
+    case 0x0040: return "VarI4FromStr";
+    case 0x0041: return "VarI4FromDisp";
+    case 0x0042: return "VarI4FromBool";
+    case 0x0043: return "SafeArrayGetIID";
+    case 0x0044: return "VarR4FromUI1";
+    case 0x0045: return "VarR4FromI2";
+    case 0x0046: return "VarR4FromI4";
+    case 0x0047: return "VarR4FromR8";
+    case 0x0048: return "VarR4FromCy";
+    case 0x0049: return "VarR4FromDate";
+    case 0x004a: return "VarR4FromStr";
+    case 0x004b: return "VarR4FromDisp";
+    case 0x004c: return "VarR4FromBool";
+    case 0x004d: return "SafeArrayGetVartype";
+    case 0x004e: return "VarR8FromUI1";
+    case 0x004f: return "VarR8FromI2";
+    case 0x0050: return "VarR8FromI4";
+    case 0x0051: return "VarR8FromR4";
+    case 0x0052: return "VarR8FromCy";
+    case 0x0053: return "VarR8FromDate";
+    case 0x0054: return "VarR8FromStr";
+    case 0x0055: return "VarR8FromDisp";
+    case 0x0056: return "VarR8FromBool";
+    case 0x0057: return "VarFormat";
+    case 0x0058: return "VarDateFromUI1";
+    case 0x0059: return "VarDateFromI2";
+    case 0x005a: return "VarDateFromI4";
+    case 0x005b: return "VarDateFromR4";
+    case 0x005c: return "VarDateFromR8";
+    case 0x005d: return "VarDateFromCy";
+    case 0x005e: return "VarDateFromStr";
+    case 0x005f: return "VarDateFromDisp";
+    case 0x0060: return "VarDateFromBool";
+    case 0x0061: return "VarFormatDateTime";
+    case 0x0062: return "VarCyFromUI1";
+    case 0x0063: return "VarCyFromI2";
+    case 0x0064: return "VarCyFromI4";
+    case 0x0065: return "VarCyFromR4";
+    case 0x0066: return "VarCyFromR8";
+    case 0x0067: return "VarCyFromDate";
+    case 0x0068: return "VarCyFromStr";
+    case 0x0069: return "VarCyFromDisp";
+    case 0x006a: return "VarCyFromBool";
+    case 0x006b: return "VarFormatNumber";
+    case 0x006c: return "VarBstrFromUI1";
+    case 0x006d: return "VarBstrFromI2";
+    case 0x006e: return "VarBstrFromI4";
+    case 0x006f: return "VarBstrFromR4";
+    case 0x0070: return "VarBstrFromR8";
+    case 0x0071: return "VarBstrFromCy";
+    case 0x0072: return "VarBstrFromDate";
+    case 0x0073: return "VarBstrFromDisp";
+    case 0x0074: return "VarBstrFromBool";
+    case 0x0075: return "VarFormatPercent";
+    case 0x0076: return "VarBoolFromUI1";
+    case 0x0077: return "VarBoolFromI2";
+    case 0x0078: return "VarBoolFromI4";
+    case 0x0079: return "VarBoolFromR4";
+    case 0x007a: return "VarBoolFromR8";
+    case 0x007b: return "VarBoolFromDate";
+    case 0x007c: return "VarBoolFromCy";
+    case 0x007d: return "VarBoolFromStr";
+    case 0x007e: return "VarBoolFromDisp";
+    case 0x007f: return "VarFormatCurrency";
+    case 0x0080: return "VarWeekdayName";
+    case 0x0081: return "VarMonthName";
+    case 0x0082: return "VarUI1FromI2";
+    case 0x0083: return "VarUI1FromI4";
+    case 0x0084: return "VarUI1FromR4";
+    case 0x0085: return "VarUI1FromR8";
+    case 0x0086: return "VarUI1FromCy";
+    case 0x0087: return "VarUI1FromDate";
+    case 0x0088: return "VarUI1FromStr";
+    case 0x0089: return "VarUI1FromDisp";
+    case 0x008a: return "VarUI1FromBool";
+    case 0x008b: return "VarFormatFromTokens";
+    case 0x008c: return "VarTokenizeFormatString";
+    case 0x008d: return "VarAdd";
+    case 0x008e: return "VarAnd";
+    case 0x008f: return "VarDiv";
+    case 0x0090: return "DllCanUnloadNow";
+    case 0x0091: return "DllGetClassObject";
+    case 0x0092: return "DispCallFunc";
+    case 0x0093: return "VariantChangeTypeEx";
+    case 0x0094: return "SafeArrayPtrOfIndex";
+    case 0x0095: return "SysStringByteLen";
+    case 0x0096: return "SysAllocStringByteLen";
+    case 0x0097: return "DllRegisterServer";
+    case 0x0098: return "VarEqv";
+    case 0x0099: return "VarIdiv";
+    case 0x009a: return "VarImp";
+    case 0x009b: return "VarMod";
+    case 0x009c: return "VarMul";
+    case 0x009d: return "VarOr";
+    case 0x009e: return "VarPow";
+    case 0x009f: return "VarSub";
+    case 0x00a0: return "CreateTypeLib";
+    case 0x00a1: return "LoadTypeLib";
+    case 0x00a2: return "LoadRegTypeLib";
+    case 0x00a3: return "RegisterTypeLib";
+    case 0x00a4: return "QueryPathOfRegTypeLib";
+    case 0x00a5: return "LHashValOfNameSys";
+    case 0x00a6: return "LHashValOfNameSysA";
+    case 0x00a7: return "VarXor";
+    case 0x00a8: return "VarAbs";
+    case 0x00a9: return "VarFix";
+    case 0x00aa: return "OaBuildVersion";
+    case 0x00ab: return "ClearCustData";
+    case 0x00ac: return "VarInt";
+    case 0x00ad: return "VarNeg";
+    case 0x00ae: return "VarNot";
+    case 0x00af: return "VarRound";
+    case 0x00b0: return "VarCmp";
+    case 0x00b1: return "VarDecAdd";
+    case 0x00b2: return "VarDecDiv";
+    case 0x00b3: return "VarDecMul";
+    case 0x00b4: return "CreateTypeLib2";
+    case 0x00b5: return "VarDecSub";
+    case 0x00b6: return "VarDecAbs";
+    case 0x00b7: return "LoadTypeLibEx";
+    case 0x00b8: return "SystemTimeToVariantTime";
+    case 0x00b9: return "VariantTimeToSystemTime";
+    case 0x00ba: return "UnRegisterTypeLib";
+    case 0x00bb: return "VarDecFix";
+    case 0x00bc: return "VarDecInt";
+    case 0x00bd: return "VarDecNeg";
+    case 0x00be: return "VarDecFromUI1";
+    case 0x00bf: return "VarDecFromI2";
+    case 0x00c0: return "VarDecFromI4";
+    case 0x00c1: return "VarDecFromR4";
+    case 0x00c2: return "VarDecFromR8";
+    case 0x00c3: return "VarDecFromDate";
+    case 0x00c4: return "VarDecFromCy";
+    case 0x00c5: return "VarDecFromStr";
+    case 0x00c6: return "VarDecFromDisp";
+    case 0x00c7: return "VarDecFromBool";
+    case 0x00c8: return "GetErrorInfo";
+    case 0x00c9: return "SetErrorInfo";
+    case 0x00ca: return "CreateErrorInfo";
+    case 0x00cb: return "VarDecRound";
+    case 0x00cc: return "VarDecCmp";
+    case 0x00cd: return "VarI2FromI1";
+    case 0x00ce: return "VarI2FromUI2";
+    case 0x00cf: return "VarI2FromUI4";
+    case 0x00d0: return "VarI2FromDec";
+    case 0x00d1: return "VarI4FromI1";
+    case 0x00d2: return "VarI4FromUI2";
+    case 0x00d3: return "VarI4FromUI4";
+    case 0x00d4: return "VarI4FromDec";
+    case 0x00d5: return "VarR4FromI1";
+    case 0x00d6: return "VarR4FromUI2";
+    case 0x00d7: return "VarR4FromUI4";
+    case 0x00d8: return "VarR4FromDec";
+    case 0x00d9: return "VarR8FromI1";
+    case 0x00da: return "VarR8FromUI2";
+    case 0x00db: return "VarR8FromUI4";
+    case 0x00dc: return "VarR8FromDec";
+    case 0x00dd: return "VarDateFromI1";
+    case 0x00de: return "VarDateFromUI2";
+    case 0x00df: return "VarDateFromUI4";
+    case 0x00e0: return "VarDateFromDec";
+    case 0x00e1: return "VarCyFromI1";
+    case 0x00e2: return "VarCyFromUI2";
+    case 0x00e3: return "VarCyFromUI4";
+    case 0x00e4: return "VarCyFromDec";
+    case 0x00e5: return "VarBstrFromI1";
+    case 0x00e6: return "VarBstrFromUI2";
+    case 0x00e7: return "VarBstrFromUI4";
+    case 0x00e8: return "VarBstrFromDec";
+    case 0x00e9: return "VarBoolFromI1";
+    case 0x00ea: return "VarBoolFromUI2";
+    case 0x00eb: return "VarBoolFromUI4";
+    case 0x00ec: return "VarBoolFromDec";
+    case 0x00ed: return "VarUI1FromI1";
+    case 0x00ee: return "VarUI1FromUI2";
+    case 0x00ef: return "VarUI1FromUI4";
+    case 0x00f0: return "VarUI1FromDec";
+    case 0x00f1: return "VarDecFromI1";
+    case 0x00f2: return "VarDecFromUI2";
+    case 0x00f3: return "VarDecFromUI4";
+    case 0x00f4: return "VarI1FromUI1";
+    case 0x00f5: return "VarI1FromI2";
+    case 0x00f6: return "VarI1FromI4";
+    case 0x00f7: return "VarI1FromR4";
+    case 0x00f8: return "VarI1FromR8";
+    case 0x00f9: return "VarI1FromDate";
+    case 0x00fa: return "VarI1FromCy";
+    case 0x00fb: return "VarI1FromStr";
+    case 0x00fc: return "VarI1FromDisp";
+    case 0x00fd: return "VarI1FromBool";
+    case 0x00fe: return "VarI1FromUI2";
+    case 0x00ff: return "VarI1FromUI4";
+    case 0x0100: return "VarI1FromDec";
+    case 0x0101: return "VarUI2FromUI1";
+    case 0x0102: return "VarUI2FromI2";
+    case 0x0103: return "VarUI2FromI4";
+    case 0x0104: return "VarUI2FromR4";
+    case 0x0105: return "VarUI2FromR8";
+    case 0x0106: return "VarUI2FromDate";
+    case 0x0107: return "VarUI2FromCy";
+    case 0x0108: return "VarUI2FromStr";
+    case 0x0109: return "VarUI2FromDisp";
+    case 0x010a: return "VarUI2FromBool";
+    case 0x010b: return "VarUI2FromI1";
+    case 0x010c: return "VarUI2FromUI4";
+    case 0x010d: return "VarUI2FromDec";
+    case 0x010e: return "VarUI4FromUI1";
+    case 0x010f: return "VarUI4FromI2";
+    case 0x0110: return "VarUI4FromI4";
+    case 0x0111: return "VarUI4FromR4";
+    case 0x0112: return "VarUI4FromR8";
+    case 0x0113: return "VarUI4FromDate";
+    case 0x0114: return "VarUI4FromCy";
+    case 0x0115: return "VarUI4FromStr";
+    case 0x0116: return "VarUI4FromDisp";
+    case 0x0117: return "VarUI4FromBool";
+    case 0x0118: return "VarUI4FromI1";
+    case 0x0119: return "VarUI4FromUI2";
+    case 0x011a: return "VarUI4FromDec";
+    case 0x011b: return "BSTR_UserSize";
+    case 0x011c: return "BSTR_UserMarshal";
+    case 0x011d: return "BSTR_UserUnmarshal";
+    case 0x011e: return "BSTR_UserFree";
+    case 0x011f: return "VARIANT_UserSize";
+    case 0x0120: return "VARIANT_UserMarshal";
+    case 0x0121: return "VARIANT_UserUnmarshal";
+    case 0x0122: return "VARIANT_UserFree";
+    case 0x0123: return "LPSAFEARRAY_UserSize";
+    case 0x0124: return "LPSAFEARRAY_UserMarshal";
+    case 0x0125: return "LPSAFEARRAY_UserUnmarshal";
+    case 0x0126: return "LPSAFEARRAY_UserFree";
+    case 0x0127: return "LPSAFEARRAY_Size";
+    case 0x0128: return "LPSAFEARRAY_Marshal";
+    case 0x0129: return "LPSAFEARRAY_Unmarshal";
+    case 0x012a: return "VarDecCmpR8";
+    case 0x012b: return "VarCyAdd";
+    case 0x012c: return "DllUnregisterServer";
+    case 0x012d: return "OACreateTypeLib2";
+    case 0x012f: return "VarCyMul";
+    case 0x0130: return "VarCyMulI4";
+    case 0x0131: return "VarCySub";
+    case 0x0132: return "VarCyAbs";
+    case 0x0133: return "VarCyFix";
+    case 0x0134: return "VarCyInt";
+    case 0x0135: return "VarCyNeg";
+    case 0x0136: return "VarCyRound";
+    case 0x0137: return "VarCyCmp";
+    case 0x0138: return "VarCyCmpR8";
+    case 0x0139: return "VarBstrCat";
+    case 0x013a: return "VarBstrCmp";
+    case 0x013b: return "VarR8Pow";
+    case 0x013c: return "VarR4CmpR8";
+    case 0x013d: return "VarR8Round";
+    case 0x013e: return "VarCat";
+    case 0x013f: return "VarDateFromUdateEx";
+    case 0x0142: return "GetRecordInfoFromGuids";
+    case 0x0143: return "GetRecordInfoFromTypeInfo";
+    case 0x0145: return "SetVarConversionLocaleSetting";
+    case 0x0146: return "GetVarConversionLocaleSetting";
+    case 0x0147: return "SetOaNoCache";
+    case 0x0149: return "VarCyMulI8";
+    case 0x014a: return "VarDateFromUdate";
+    case 0x014b: return "VarUdateFromDate";
+    case 0x014c: return "GetAltMonthNames";
+    case 0x014d: return "VarI8FromUI1";
+    case 0x014e: return "VarI8FromI2";
+    case 0x014f: return "VarI8FromR4";
+    case 0x0150: return "VarI8FromR8";
+    case 0x0151: return "VarI8FromCy";
+    case 0x0152: return "VarI8FromDate";
+    case 0x0153: return "VarI8FromStr";
+    case 0x0154: return "VarI8FromDisp";
+    case 0x0155: return "VarI8FromBool";
+    case 0x0156: return "VarI8FromI1";
+    case 0x0157: return "VarI8FromUI2";
+    case 0x0158: return "VarI8FromUI4";
+    case 0x0159: return "VarI8FromDec";
+    case 0x015a: return "VarI2FromI8";
+    case 0x015b: return "VarI2FromUI8";
+    case 0x015c: return "VarI4FromI8";
+    case 0x015d: return "VarI4FromUI8";
+    case 0x0168: return "VarR4FromI8";
+    case 0x0169: return "VarR4FromUI8";
+    case 0x016a: return "VarR8FromI8";
+    case 0x016b: return "VarR8FromUI8";
+    case 0x016c: return "VarDateFromI8";
+    case 0x016d: return "VarDateFromUI8";
+    case 0x016e: return "VarCyFromI8";
+    case 0x016f: return "VarCyFromUI8";
+    case 0x0170: return "VarBstrFromI8";
+    case 0x0171: return "VarBstrFromUI8";
+    case 0x0172: return "VarBoolFromI8";
+    case 0x0173: return "VarBoolFromUI8";
+    case 0x0174: return "VarUI1FromI8";
+    case 0x0175: return "VarUI1FromUI8";
+    case 0x0176: return "VarDecFromI8";
+    case 0x0177: return "VarDecFromUI8";
+    case 0x0178: return "VarI1FromI8";
+    case 0x0179: return "VarI1FromUI8";
+    case 0x017a: return "VarUI2FromI8";
+    case 0x017b: return "VarUI2FromUI8";
+    case 0x0191: return "OleLoadPictureEx";
+    case 0x0192: return "OleLoadPictureFileEx";
+    case 0x019b: return "SafeArrayCreateVector";
+    case 0x019c: return "SafeArrayCopyData";
+    case 0x019d: return "VectorFromBstr";
+    case 0x019e: return "BstrFromVector";
+    case 0x019f: return "OleIconToCursor";
+    case 0x01a0: return "OleCreatePropertyFrameIndirect";
+    case 0x01a1: return "OleCreatePropertyFrame";
+    case 0x01a2: return "OleLoadPicture";
+    case 0x01a3: return "OleCreatePictureIndirect";
+    case 0x01a4: return "OleCreateFontIndirect";
+    case 0x01a5: return "OleTranslateColor";
+    case 0x01a6: return "OleLoadPictureFile";
+    case 0x01a7: return "OleSavePictureFile";
+    case 0x01a8: return "OleLoadPicturePath";
+    case 0x01a9: return "VarUI4FromI8";
+    case 0x01aa: return "VarUI4FromUI8";
+    case 0x01ab: return "VarI8FromUI8";
+    case 0x01ac: return "VarUI8FromI8";
+    case 0x01ad: return "VarUI8FromUI1";
+    case 0x01ae: return "VarUI8FromI2";
+    case 0x01af: return "VarUI8FromR4";
+    case 0x01b0: return "VarUI8FromR8";
+    case 0x01b1: return "VarUI8FromCy";
+    case 0x01b2: return "VarUI8FromDate";
+    case 0x01b3: return "VarUI8FromStr";
+    case 0x01b4: return "VarUI8FromDisp";
+    case 0x01b5: return "VarUI8FromBool";
+    case 0x01b6: return "VarUI8FromI1";
+    case 0x01b7: return "VarUI8FromUI2";
+    case 0x01b8: return "VarUI8FromUI4";
+    case 0x01b9: return "VarUI8FromDec";
+    case 0x01ba: return "RegisterTypeLibForUser";
+    case 0x01bb: return "UnRegisterTypeLibForUser";
   }
   return nullptr;
 }

-}
-}
 }

-#endif

+#endif
diff --git a/deps/LIEF/src/PE/utils/ordinals_lookup_tables_std/ws2_32_dll_lookup.hpp b/deps/LIEF/src/PE/utils/ordinals_lookup_tables_std/ws2_32_dll_lookup.hpp
index 4d5e1f83e00..82995c661b2 100644
--- a/deps/LIEF/src/PE/utils/ordinals_lookup_tables_std/ws2_32_dll_lookup.hpp
+++ b/deps/LIEF/src/PE/utils/ordinals_lookup_tables_std/ws2_32_dll_lookup.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -18,137 +18,135 @@

 #include <cinttypes>

-namespace LIEF {
-namespace PE {
-namespace imphashstd {

-// From pefile: https://github.com/erocarrera/pefile/blob/09264be6f731bf8578aee8638cc4046154e03abf/ordlookup/ws2_32.py
+namespace LIEF::PE::imphashstd {
+
+// From pefile:
+// https://github.com/erocarrera/pefile/blob/09264be6f731bf8578aee8638cc4046154e03abf/ordlookup/ws2_32.py
 inline const char* ws2_32_dll_lookup(uint32_t i) {
-  switch(i) {
-  case 0x0001: return "accept";
-  case 0x0002: return "bind";
-  case 0x0003: return "closesocket";
-  case 0x0004: return "connect";
-  case 0x0005: return "getpeername";
-  case 0x0006: return "getsockname";
-  case 0x0007: return "getsockopt";
-  case 0x0008: return "htonl";
-  case 0x0009: return "htons";
-  case 0x000a: return "ioctlsocket";
-  case 0x000b: return "inet_addr";
-  case 0x000c: return "inet_ntoa";
-  case 0x000d: return "listen";
-  case 0x000e: return "ntohl";
-  case 0x000f: return "ntohs";
-  case 0x0010: return "recv";
-  case 0x0011: return "recvfrom";
-  case 0x0012: return "select";
-  case 0x0013: return "send";
-  case 0x0014: return "sendto";
-  case 0x0015: return "setsockopt";
-  case 0x0016: return "shutdown";
-  case 0x0017: return "socket";
-  case 0x0018: return "GetAddrInfoW";
-  case 0x0019: return "GetNameInfoW";
-  case 0x001a: return "WSApSetPostRoutine";
-  case 0x001b: return "FreeAddrInfoW";
-  case 0x001c: return "WPUCompleteOverlappedRequest";
-  case 0x001d: return "WSAAccept";
-  case 0x001e: return "WSAAddressToStringA";
-  case 0x001f: return "WSAAddressToStringW";
-  case 0x0020: return "WSACloseEvent";
-  case 0x0021: return "WSAConnect";
-  case 0x0022: return "WSACreateEvent";
-  case 0x0023: return "WSADuplicateSocketA";
-  case 0x0024: return "WSADuplicateSocketW";
-  case 0x0025: return "WSAEnumNameSpaceProvidersA";
-  case 0x0026: return "WSAEnumNameSpaceProvidersW";
-  case 0x0027: return "WSAEnumNetworkEvents";
-  case 0x0028: return "WSAEnumProtocolsA";
-  case 0x0029: return "WSAEnumProtocolsW";
-  case 0x002a: return "WSAEventSelect";
-  case 0x002b: return "WSAGetOverlappedResult";
-  case 0x002c: return "WSAGetQOSByName";
-  case 0x002d: return "WSAGetServiceClassInfoA";
-  case 0x002e: return "WSAGetServiceClassInfoW";
-  case 0x002f: return "WSAGetServiceClassNameByClassIdA";
-  case 0x0030: return "WSAGetServiceClassNameByClassIdW";
-  case 0x0031: return "WSAHtonl";
-  case 0x0032: return "WSAHtons";
-  case 0x0033: return "gethostbyaddr";
-  case 0x0034: return "gethostbyname";
-  case 0x0035: return "getprotobyname";
-  case 0x0036: return "getprotobynumber";
-  case 0x0037: return "getservbyname";
-  case 0x0038: return "getservbyport";
-  case 0x0039: return "gethostname";
-  case 0x003a: return "WSAInstallServiceClassA";
-  case 0x003b: return "WSAInstallServiceClassW";
-  case 0x003c: return "WSAIoctl";
-  case 0x003d: return "WSAJoinLeaf";
-  case 0x003e: return "WSALookupServiceBeginA";
-  case 0x003f: return "WSALookupServiceBeginW";
-  case 0x0040: return "WSALookupServiceEnd";
-  case 0x0041: return "WSALookupServiceNextA";
-  case 0x0042: return "WSALookupServiceNextW";
-  case 0x0043: return "WSANSPIoctl";
-  case 0x0044: return "WSANtohl";
-  case 0x0045: return "WSANtohs";
-  case 0x0046: return "WSAProviderConfigChange";
-  case 0x0047: return "WSARecv";
-  case 0x0048: return "WSARecvDisconnect";
-  case 0x0049: return "WSARecvFrom";
-  case 0x004a: return "WSARemoveServiceClass";
-  case 0x004b: return "WSAResetEvent";
-  case 0x004c: return "WSASend";
-  case 0x004d: return "WSASendDisconnect";
-  case 0x004e: return "WSASendTo";
-  case 0x004f: return "WSASetEvent";
-  case 0x0050: return "WSASetServiceA";
-  case 0x0051: return "WSASetServiceW";
-  case 0x0052: return "WSASocketA";
-  case 0x0053: return "WSASocketW";
-  case 0x0054: return "WSAStringToAddressA";
-  case 0x0055: return "WSAStringToAddressW";
-  case 0x0056: return "WSAWaitForMultipleEvents";
-  case 0x0057: return "WSCDeinstallProvider";
-  case 0x0058: return "WSCEnableNSProvider";
-  case 0x0059: return "WSCEnumProtocols";
-  case 0x005a: return "WSCGetProviderPath";
-  case 0x005b: return "WSCInstallNameSpace";
-  case 0x005c: return "WSCInstallProvider";
-  case 0x005d: return "WSCUnInstallNameSpace";
-  case 0x005e: return "WSCUpdateProvider";
-  case 0x005f: return "WSCWriteNameSpaceOrder";
-  case 0x0060: return "WSCWriteProviderOrder";
-  case 0x0061: return "freeaddrinfo";
-  case 0x0062: return "getaddrinfo";
-  case 0x0063: return "getnameinfo";
-  case 0x0065: return "WSAAsyncSelect";
-  case 0x0066: return "WSAAsyncGetHostByAddr";
-  case 0x0067: return "WSAAsyncGetHostByName";
-  case 0x0068: return "WSAAsyncGetProtoByNumber";
-  case 0x0069: return "WSAAsyncGetProtoByName";
-  case 0x006a: return "WSAAsyncGetServByPort";
-  case 0x006b: return "WSAAsyncGetServByName";
-  case 0x006c: return "WSACancelAsyncRequest";
-  case 0x006d: return "WSASetBlockingHook";
-  case 0x006e: return "WSAUnhookBlockingHook";
-  case 0x006f: return "WSAGetLastError";
-  case 0x0070: return "WSASetLastError";
-  case 0x0071: return "WSACancelBlockingCall";
-  case 0x0072: return "WSAIsBlocking";
-  case 0x0073: return "WSAStartup";
-  case 0x0074: return "WSACleanup";
-  case 0x0097: return "__WSAFDIsSet";
-  case 0x01f4: return "WEP";
+  switch (i) {
+    case 0x0001: return "accept";
+    case 0x0002: return "bind";
+    case 0x0003: return "closesocket";
+    case 0x0004: return "connect";
+    case 0x0005: return "getpeername";
+    case 0x0006: return "getsockname";
+    case 0x0007: return "getsockopt";
+    case 0x0008: return "htonl";
+    case 0x0009: return "htons";
+    case 0x000a: return "ioctlsocket";
+    case 0x000b: return "inet_addr";
+    case 0x000c: return "inet_ntoa";
+    case 0x000d: return "listen";
+    case 0x000e: return "ntohl";
+    case 0x000f: return "ntohs";
+    case 0x0010: return "recv";
+    case 0x0011: return "recvfrom";
+    case 0x0012: return "select";
+    case 0x0013: return "send";
+    case 0x0014: return "sendto";
+    case 0x0015: return "setsockopt";
+    case 0x0016: return "shutdown";
+    case 0x0017: return "socket";
+    case 0x0018: return "GetAddrInfoW";
+    case 0x0019: return "GetNameInfoW";
+    case 0x001a: return "WSApSetPostRoutine";
+    case 0x001b: return "FreeAddrInfoW";
+    case 0x001c: return "WPUCompleteOverlappedRequest";
+    case 0x001d: return "WSAAccept";
+    case 0x001e: return "WSAAddressToStringA";
+    case 0x001f: return "WSAAddressToStringW";
+    case 0x0020: return "WSACloseEvent";
+    case 0x0021: return "WSAConnect";
+    case 0x0022: return "WSACreateEvent";
+    case 0x0023: return "WSADuplicateSocketA";
+    case 0x0024: return "WSADuplicateSocketW";
+    case 0x0025: return "WSAEnumNameSpaceProvidersA";
+    case 0x0026: return "WSAEnumNameSpaceProvidersW";
+    case 0x0027: return "WSAEnumNetworkEvents";
+    case 0x0028: return "WSAEnumProtocolsA";
+    case 0x0029: return "WSAEnumProtocolsW";
+    case 0x002a: return "WSAEventSelect";
+    case 0x002b: return "WSAGetOverlappedResult";
+    case 0x002c: return "WSAGetQOSByName";
+    case 0x002d: return "WSAGetServiceClassInfoA";
+    case 0x002e: return "WSAGetServiceClassInfoW";
+    case 0x002f: return "WSAGetServiceClassNameByClassIdA";
+    case 0x0030: return "WSAGetServiceClassNameByClassIdW";
+    case 0x0031: return "WSAHtonl";
+    case 0x0032: return "WSAHtons";
+    case 0x0033: return "gethostbyaddr";
+    case 0x0034: return "gethostbyname";
+    case 0x0035: return "getprotobyname";
+    case 0x0036: return "getprotobynumber";
+    case 0x0037: return "getservbyname";
+    case 0x0038: return "getservbyport";
+    case 0x0039: return "gethostname";
+    case 0x003a: return "WSAInstallServiceClassA";
+    case 0x003b: return "WSAInstallServiceClassW";
+    case 0x003c: return "WSAIoctl";
+    case 0x003d: return "WSAJoinLeaf";
+    case 0x003e: return "WSALookupServiceBeginA";
+    case 0x003f: return "WSALookupServiceBeginW";
+    case 0x0040: return "WSALookupServiceEnd";
+    case 0x0041: return "WSALookupServiceNextA";
+    case 0x0042: return "WSALookupServiceNextW";
+    case 0x0043: return "WSANSPIoctl";
+    case 0x0044: return "WSANtohl";
+    case 0x0045: return "WSANtohs";
+    case 0x0046: return "WSAProviderConfigChange";
+    case 0x0047: return "WSARecv";
+    case 0x0048: return "WSARecvDisconnect";
+    case 0x0049: return "WSARecvFrom";
+    case 0x004a: return "WSARemoveServiceClass";
+    case 0x004b: return "WSAResetEvent";
+    case 0x004c: return "WSASend";
+    case 0x004d: return "WSASendDisconnect";
+    case 0x004e: return "WSASendTo";
+    case 0x004f: return "WSASetEvent";
+    case 0x0050: return "WSASetServiceA";
+    case 0x0051: return "WSASetServiceW";
+    case 0x0052: return "WSASocketA";
+    case 0x0053: return "WSASocketW";
+    case 0x0054: return "WSAStringToAddressA";
+    case 0x0055: return "WSAStringToAddressW";
+    case 0x0056: return "WSAWaitForMultipleEvents";
+    case 0x0057: return "WSCDeinstallProvider";
+    case 0x0058: return "WSCEnableNSProvider";
+    case 0x0059: return "WSCEnumProtocols";
+    case 0x005a: return "WSCGetProviderPath";
+    case 0x005b: return "WSCInstallNameSpace";
+    case 0x005c: return "WSCInstallProvider";
+    case 0x005d: return "WSCUnInstallNameSpace";
+    case 0x005e: return "WSCUpdateProvider";
+    case 0x005f: return "WSCWriteNameSpaceOrder";
+    case 0x0060: return "WSCWriteProviderOrder";
+    case 0x0061: return "freeaddrinfo";
+    case 0x0062: return "getaddrinfo";
+    case 0x0063: return "getnameinfo";
+    case 0x0065: return "WSAAsyncSelect";
+    case 0x0066: return "WSAAsyncGetHostByAddr";
+    case 0x0067: return "WSAAsyncGetHostByName";
+    case 0x0068: return "WSAAsyncGetProtoByNumber";
+    case 0x0069: return "WSAAsyncGetProtoByName";
+    case 0x006a: return "WSAAsyncGetServByPort";
+    case 0x006b: return "WSAAsyncGetServByName";
+    case 0x006c: return "WSACancelAsyncRequest";
+    case 0x006d: return "WSASetBlockingHook";
+    case 0x006e: return "WSAUnhookBlockingHook";
+    case 0x006f: return "WSAGetLastError";
+    case 0x0070: return "WSASetLastError";
+    case 0x0071: return "WSACancelBlockingCall";
+    case 0x0072: return "WSAIsBlocking";
+    case 0x0073: return "WSAStartup";
+    case 0x0074: return "WSACleanup";
+    case 0x0097: return "__WSAFDIsSet";
+    case 0x01f4: return "WEP";
   }
   return nullptr;
 }

-}
-}
 }

-#endif

+#endif
diff --git a/deps/LIEF/src/VDEX/File.cpp b/deps/LIEF/src/VDEX/File.cpp
index aab6b8c09f5..e32bed850a3 100644
--- a/deps/LIEF/src/VDEX/File.cpp
+++ b/deps/LIEF/src/VDEX/File.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -19,11 +19,11 @@
 #include "LIEF/DEX/File.hpp"

 #if defined(LIEF_JSON_SUPPORT)
-#include "visitors/json.hpp"
+  #include "visitors/json.hpp"
 #endif

-namespace LIEF {
-namespace VDEX {
+
+namespace LIEF::VDEX {

 File::~File() = default;
 File::File() = default;
@@ -75,9 +75,6 @@ void File::accept(Visitor& visitor) const {
 }


-
-
-
 std::ostream& operator<<(std::ostream& os, const File& vdex_file) {
   os << "Header" << '\n';
   os << "======" << '\n';
@@ -96,5 +93,4 @@ std::ostream& operator<<(std::ostream& os, const File& vdex_file) {
   return os;
 }

-} // Namespace VDEX
-} // Namespace LIEF
+} // namespace LIEF::VDEX
diff --git a/deps/LIEF/src/VDEX/Header.cpp b/deps/LIEF/src/VDEX/Header.cpp
index 31b66feb30d..0b0a9fcad97 100644
--- a/deps/LIEF/src/VDEX/Header.cpp
+++ b/deps/LIEF/src/VDEX/Header.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -21,14 +21,14 @@
 #include <sstream>
 #include <iomanip>

-#define PRINT_FIELD_X(name,attr) \
+#define PRINT_FIELD_X(name, attr)                                                 \
   os << std::setw(WIDTH) << std::setfill(' ') << name << std::hex << attr << '\n'

-#define PRINT_FIELD_D(name,attr) \
+#define PRINT_FIELD_D(name, attr)                                                 \
   os << std::setw(WIDTH) << std::setfill(' ') << name << std::dec << attr << '\n'

-namespace LIEF {
-namespace VDEX {
+
+namespace LIEF::VDEX {

 Header::Header(const Header&) = default;
 Header& Header::operator=(const Header&) = default;
@@ -39,11 +39,9 @@ Header::Header() :
   nb_dex_files_{0},
   dex_size_{0},
   verifier_deps_size_{0},
-  quickening_info_size_{0}
-{
+  quickening_info_size_{0} {
   std::copy(std::begin(details::magic), std::end(details::magic),
-            std::begin(magic_)
-  );
+            std::begin(magic_));
 }

 Header::magic_t Header::magic() const {
@@ -75,7 +73,6 @@ void Header::accept(Visitor& visitor) const {
 }


-
 std::ostream& operator<<(std::ostream& os, const Header& header) {
   static constexpr size_t WIDTH = 24;

@@ -92,11 +89,11 @@ std::ostream& operator<<(std::ostream& os, const Header& header) {

   os << std::hex << std::left << std::showbase;

-  PRINT_FIELD_X("Magic:",                magic_str);
-  PRINT_FIELD_D("Version:",              header.version());
-  PRINT_FIELD_D("Number of dex files:",  header.nb_dex_files());
-  PRINT_FIELD_X("Dex Size:",             header.dex_size());
-  PRINT_FIELD_X("Verifier Deps Size:",   header.verifier_deps_size());
+  PRINT_FIELD_X("Magic:", magic_str);
+  PRINT_FIELD_D("Version:", header.version());
+  PRINT_FIELD_D("Number of dex files:", header.nb_dex_files());
+  PRINT_FIELD_X("Dex Size:", header.dex_size());
+  PRINT_FIELD_X("Verifier Deps Size:", header.verifier_deps_size());
   PRINT_FIELD_X("Quickening Info Size:", header.quickening_info_size());

   return os;
@@ -104,6 +101,4 @@ std::ostream& operator<<(std::ostream& os, const Header& header) {

 Header::~Header() = default;

-} // Namespace VDEX
-} // Namespace LIEF
-
+} // namespace LIEF::VDEX
diff --git a/deps/LIEF/src/VDEX/Header.tcc b/deps/LIEF/src/VDEX/Header.tcc
index f2ddad4302f..ebcd31a7877 100644
--- a/deps/LIEF/src/VDEX/Header.tcc
+++ b/deps/LIEF/src/VDEX/Header.tcc
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -16,29 +16,25 @@
 #include <string>
 #include "LIEF/VDEX/Header.hpp"

-namespace LIEF {
-namespace VDEX {
+#include "internal_utils.hpp"
+
+
+namespace LIEF::VDEX {

 template<class T>
 Header::Header(const T* header) :
   magic_{},
-  version_{0},
+  version_{static_cast<vdex_version_t>(parse_android_version(
+      reinterpret_cast<const char*>(header->version), sizeof(header->version)
+  ))},
   nb_dex_files_{header->number_of_dex_files},
   dex_size_{header->dex_size},
   verifier_deps_size_{header->verifier_deps_size},
-  quickening_info_size_{header->quickening_info_size}
-{
-
-  std::copy(
-      std::begin(header->magic),
-      std::end(header->magic),
-      std::begin(magic_)
-  );
-
-  version_ = static_cast<vdex_version_t>(std::stoi(std::string{reinterpret_cast<const char*>(header->version), sizeof(header->version)}));
+  quickening_info_size_{header->quickening_info_size} {

+  std::copy(std::begin(header->magic), std::end(header->magic),
+            std::begin(magic_));
 }


-} // namespace VDEX
-} // namespace LIEF
+} // namespace LIEF::VDEX
diff --git a/deps/LIEF/src/VDEX/Parser.cpp b/deps/LIEF/src/VDEX/Parser.cpp
index 8de27dffca4..f8f46917887 100644
--- a/deps/LIEF/src/VDEX/Parser.cpp
+++ b/deps/LIEF/src/VDEX/Parser.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -29,18 +29,19 @@
 #include "Header.tcc"
 #include "Parser.tcc"

-namespace LIEF {
-namespace VDEX {
+
+namespace LIEF::VDEX {

 Parser::~Parser() = default;
-Parser::Parser()  = default;
+Parser::Parser() = default;

 std::unique_ptr<File> Parser::parse(const std::string& filename) {
   Parser parser{filename};
   return std::unique_ptr<File>{parser.file_};
 }

-std::unique_ptr<File> Parser::parse(const std::vector<uint8_t>& data, const std::string& name) {
+std::unique_ptr<File> Parser::parse(const std::vector<uint8_t>& data,
+                                    const std::string& name) {
   Parser parser{data, name};
   return std::unique_ptr<File>{parser.file_};
 }
@@ -48,10 +49,9 @@ std::unique_ptr<File> Parser::parse(const std::vector<uint8_t>& data, const std:

 Parser::Parser(const std::vector<uint8_t>& data, const std::string& name) :
   file_{new File{}},
-  stream_{std::make_unique<VectorStream>(data)}
-{
+  stream_{std::make_unique<VectorStream>(data)} {
   if (!is_vdex(data)) {
-    LIEF_ERR("{} is not a VDEX file!", name);
+    LIEF_ERR("'{}' is not a VDEX file", name);
     delete file_;
     file_ = nullptr;
     return;
@@ -62,10 +62,9 @@ Parser::Parser(const std::vector<uint8_t>& data, const std::string& name) :
 }

 Parser::Parser(const std::string& file) :
-  file_{new File{}}
-{
+  file_{new File{}} {
   if (!is_vdex(file)) {
-    LIEF_ERR("{} is not a VDEX file!", file);
+    LIEF_ERR("'{}' is not a VDEX file", file);
     delete file_;
     file_ = nullptr;
     return;
@@ -96,5 +95,4 @@ void Parser::init(const std::string& /*name*/, vdex_version_t version) {
   }
 }

-} // namespace VDEX
-} // namespace LIEF
+} // namespace LIEF::VDEX
diff --git a/deps/LIEF/src/VDEX/Parser.tcc b/deps/LIEF/src/VDEX/Parser.tcc
index 3fdc0e34681..10406182342 100644
--- a/deps/LIEF/src/VDEX/Parser.tcc
+++ b/deps/LIEF/src/VDEX/Parser.tcc
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -25,8 +25,8 @@
 #include "LIEF/DEX/Parser.hpp"
 #include "LIEF/utils.hpp"

-namespace LIEF {
-namespace VDEX {
+
+namespace LIEF::VDEX {

 template<typename VDEX_T>
 void Parser::parse_file() {
@@ -36,7 +36,6 @@ void Parser::parse_file() {
   parse_dex_files<VDEX_T>();
   parse_verifier_deps<VDEX_T>();
   parse_quickening_info<VDEX_T>();
-
 }


@@ -54,7 +53,7 @@ void Parser::parse_header() {

 template<typename VDEX_T>
 void Parser::parse_checksums() {
-  //TODO
+  // TODO
 }

 template<typename VDEX_T>
@@ -62,7 +61,8 @@ void Parser::parse_dex_files() {
   using vdex_header = typename VDEX_T::vdex_header;
   size_t nb_dex_files = file_->header().nb_dex_files();

-  uint64_t current_offset = sizeof(vdex_header) + nb_dex_files * sizeof(details::checksum_t);
+  uint64_t current_offset =
+      sizeof(vdex_header) + nb_dex_files * sizeof(details::checksum_t);
   current_offset = align(current_offset, sizeof(uint32_t));

   for (size_t i = 0; i < nb_dex_files; ++i) {
@@ -77,20 +77,26 @@ void Parser::parse_dex_files() {
       break;
     }
     const auto dex_hdr = *res_dex_hdr;
-    const auto* data = stream_->peek_array<uint8_t>(current_offset, dex_hdr.file_size);
+    const auto* data =
+        stream_->peek_array<uint8_t>(current_offset, dex_hdr.file_size);
     if (data == nullptr) {
-      LIEF_WARN("File #{:d} is corrupted!", i);
+      LIEF_WARN("File #{:d} is corrupted", i);
       continue;
     }

     std::vector<uint8_t> data_v = {data, data + dex_hdr.file_size};

     if (DEX::is_dex(data_v)) {
-      std::unique_ptr<DEX::File> dexfile = DEX::Parser::parse(std::move(data_v), name);
-      dexfile->name(name);
-      file_->dex_files_.push_back(std::move(dexfile));
+      std::unique_ptr<DEX::File> dexfile =
+          DEX::Parser::parse(std::move(data_v), name);
+      if (dexfile != nullptr) {
+        dexfile->name(name);
+        file_->dex_files_.push_back(std::move(dexfile));
+      } else {
+        LIEF_WARN("File #{:d} could not be parsed as a DEX file", i);
+      }
     } else {
-      LIEF_WARN("File #{:d} is not a dex file!", i);
+      LIEF_WARN("File #{:d} is not a DEX file", i);
     }
     current_offset += dex_hdr.file_size;
     current_offset = align(current_offset, sizeof(uint32_t));
@@ -102,14 +108,15 @@ template<typename VDEX_T>
 void Parser::parse_verifier_deps() {
   using vdex_header = typename VDEX_T::vdex_header;

-  uint64_t deps_offset = align(sizeof(vdex_header) + file_->header().dex_size(), sizeof(uint32_t));
+  uint64_t deps_offset =
+      align(sizeof(vdex_header) + file_->header().dex_size(), sizeof(uint32_t));

-  LIEF_DEBUG("Parsing Verifier deps at 0x{:x}", deps_offset);
+  LIEF_DEBUG("Parsing verifier deps at {:#x}", deps_offset);

   // 1. String table
   // ===============
-  //val = stream_->read_uleb128(deps_offset);
-  //deps_offset += val.second;
+  // val = stream_->read_uleb128(deps_offset);
+  // deps_offset += val.second;
 }


@@ -120,11 +127,12 @@ void Parser::parse_quickening_info<details::VDEX6>() {

   uint64_t quickening_offset = sizeof(vdex_header);
   quickening_offset += file_->header().dex_size();
-  quickening_offset += file_->header().nb_dex_files() * sizeof(details::checksum_t);
+  quickening_offset +=
+      file_->header().nb_dex_files() * sizeof(details::checksum_t);
   quickening_offset += file_->header().verifier_deps_size();
   quickening_offset = align(quickening_offset, sizeof(uint32_t));

-  LIEF_DEBUG("Parsing Quickening Info at 0x{:x}", quickening_offset);
+  LIEF_DEBUG("Parsing quickening info at {:#x}", quickening_offset);

   if (file_->header().quickening_info_size() == 0) {
     LIEF_DEBUG("No quickening info");
@@ -137,7 +145,7 @@ void Parser::parse_quickening_info<details::VDEX6>() {
     for (size_t i = 0; i < dex_file.header().nb_classes(); ++i) {
       DEX::Class* cls = dex_file.get_class(i);
       if (cls == nullptr) {
-        LIEF_WARN("Class is null!");
+        LIEF_WARN("Null class reference");
         continue;
       }
       for (DEX::Method& method : cls->methods()) {
@@ -164,10 +172,13 @@ void Parser::parse_quickening_info<details::VDEX6>() {
           }

           auto index = stream_->read_uleb128();
-          method.insert_dex2dex_info(static_cast<int32_t>(*pc), static_cast<uint16_t>(*index));
+          if (!index) {
+            break;
+          }
+          method.insert_dex2dex_info(static_cast<int32_t>(*pc),
+                                     static_cast<uint16_t>(*index));
         }
       }
-
     }
   }
 }
@@ -215,8 +226,6 @@ See:
 *******************************************************/


-
-
 template<>
 void Parser::parse_quickening_info<details::VDEX10>() {
   using vdex_header = typename details::VDEX10::vdex_header;
@@ -230,7 +239,7 @@ void Parser::parse_quickening_info<details::VDEX10>() {
   quickening_base += file_->header().verifier_deps_size();
   quickening_base = align(quickening_base, sizeof(uint32_t));

-  LIEF_DEBUG("Parsing Quickening Info at 0x{:x}", quickening_base);
+  LIEF_DEBUG("Parsing quickening info at {:#x}", quickening_base);

   if (quickening_size == 0) {
     LIEF_DEBUG("No quickening info");
@@ -239,10 +248,11 @@ void Parser::parse_quickening_info<details::VDEX10>() {


   // Offset of the "Dex Indexes" array
-  uint64_t dex_file_indices_off = quickening_base + quickening_size - nb_dex_files * sizeof(uint32_t);
+  uint64_t dex_file_indices_off =
+      quickening_base + quickening_size - nb_dex_files * sizeof(uint32_t);

   if (nb_dex_files > file_->dex_files_.size()) {
-    LIEF_WARN("Inconsistent number of dex files");
+    LIEF_WARN("Inconsistent DEX file count");
     return;
   }

@@ -250,7 +260,8 @@ void Parser::parse_quickening_info<details::VDEX10>() {
     std::unique_ptr<DEX::File>& dex_file = file_->dex_files_[i];

     // Code item offset of the first method
-    auto res_current_code_item = stream_->peek<uint32_t>(dex_file_indices_off + i * sizeof(uint32_t));
+    auto res_current_code_item =
+        stream_->peek<uint32_t>(dex_file_indices_off + i * sizeof(uint32_t));

     if (!res_current_code_item) {
       break;
@@ -261,16 +272,25 @@ void Parser::parse_quickening_info<details::VDEX10>() {
     // End
     uint64_t code_item_end = dex_file_indices_off;
     if (i < (nb_dex_files - 1)) {
-      if (auto res = stream_->peek<uint32_t>(dex_file_indices_off + (i + 1) * sizeof(uint32_t))) {
+      if (auto res = stream_->peek<uint32_t>(dex_file_indices_off +
+                                             (i + 1) * sizeof(uint32_t)))
+      {
         code_item_end = quickening_base + *res;
       } else {
         break;
       }
     }

-    size_t nb_code_item = (code_item_end - current_code_item) / (2 * sizeof(uint32_t)); // The array is compounded of
-                                                                                        // 1. Code item offset
-                                                                                        // 2. Quickening offset
+    if (code_item_end < current_code_item) {
+      LIEF_WARN("Inconsistent code-item range for DEX file #{}", i);
+      break;
+    }
+
+    size_t nb_code_item =
+        (code_item_end - current_code_item) /
+        (2 * sizeof(uint32_t)); // Each array entry is composed of:
+                                // 1. Code item offset
+                                // 2. Quickening offset


     //  +---------------+         +-----------+
@@ -294,7 +314,8 @@ void Parser::parse_quickening_info<details::VDEX10>() {

       // Offset of the quickening data
       uint64_t method_quickening_info_offset = quickening_base;
-      if (auto res = stream_->peek<uint32_t>(current_code_item + sizeof(uint32_t))) {
+      if (auto res = stream_->peek<uint32_t>(current_code_item + sizeof(uint32_t)))
+      {
         method_quickening_info_offset += *res;
       } else {
         break;
@@ -308,25 +329,34 @@ void Parser::parse_quickening_info<details::VDEX10>() {
         break;
       }

-      uint64_t quickening_offset_local = method_quickening_info_offset + sizeof(uint32_t); // + Quickening size entry
+      uint64_t quickening_offset_local =
+          method_quickening_info_offset +
+          sizeof(uint32_t); // + Quickening size entry

-      const size_t nb_indices = method_quickening_info_size / sizeof(uint16_t); // index values are stored as uint16_t
+      const size_t nb_indices =
+          method_quickening_info_size /
+          sizeof(uint16_t); // index values are stored as uint16_t

       for (size_t quick_idx = 0; quick_idx < nb_indices; ++quick_idx) {
-        if (auto index = stream_->peek<uint16_t>(quickening_offset_local + quick_idx * sizeof(uint16_t))) {
+        if (auto index = stream_->peek<uint16_t>(quickening_offset_local +
+                                                 quick_idx * sizeof(uint16_t)))
+        {
           quick_info[method_code_item_offset].push_back(*index);
         } else {
           break;
         }
       }
-      current_code_item += 2 * sizeof(uint32_t); // sizeof(code_item_offset) + sizeof(quickening_base)
+      current_code_item +=
+          2 *
+          sizeof(uint32_t); // sizeof(code_item_offset) + sizeof(quickening_offset)
     }

-    // Resolve methods offset
-    const std::vector<uint8_t>& raw = dex_file->raw(/* deoptimize */false);
+    // Resolve method offsets
+    const std::vector<uint8_t>& raw = dex_file->raw(/* deoptimize */ false);
     for (DEX::Method& method : dex_file->methods()) {
-      const auto it_quick = quick_info.find(method.code_offset() - sizeof(DEX::details::code_item));
-      if (it_quick == std::end(quick_info)) {
+      const auto it_quick =
+          quick_info.find(method.code_offset() - sizeof(DEX::details::code_item));
+      if (it_quick == quick_info.end()) {
         continue;
       }

@@ -346,11 +376,20 @@ void Parser::parse_quickening_info<details::VDEX10>() {

         // Skip packed-switch, sparse-switch, fill-array instructions
         if (DEX::is_switch_array(inst_ptr, inst_end)) {
-          inst_ptr += DEX::switch_array_size(inst_ptr, inst_end);
+          const size_t payload_size = DEX::switch_array_size(inst_ptr, inst_end);
+          if (!DEX::valid_inst_size(inst_ptr, inst_end, payload_size)) {
+            break;
+          }
+          inst_ptr += payload_size;
           continue;
         }

-        switch(opcode) {
+        const size_t inst_size = DEX::inst_size_from_opcode(opcode);
+        if (!DEX::valid_inst_size(inst_ptr, inst_end, inst_size)) {
+          break;
+        }
+
+        switch (opcode) {
           case DEX::OPCODES::OP_IGET_QUICK:
           case DEX::OPCODES::OP_IGET_WIDE_QUICK:
           case DEX::OPCODES::OP_IGET_OBJECT_QUICK:
@@ -367,30 +406,30 @@ void Parser::parse_quickening_info<details::VDEX10>() {
           case DEX::OPCODES::OP_IGET_BYTE_QUICK:
           case DEX::OPCODES::OP_IGET_CHAR_QUICK:
           case DEX::OPCODES::OP_IGET_SHORT_QUICK:
-            {
+          {

-              method.insert_dex2dex_info(dex_pc, index_value);
-              nb_indexes--;
-              break;
-            }
+            method.insert_dex2dex_info(dex_pc, index_value);
+            nb_indexes--;
+            break;
+          }
           case DEX::OPCODES::OP_NOP:
-            {
-              if (index_value == static_cast<uint16_t>(-1)) {
-                nb_indexes--;
+          {
+            if (index_value == static_cast<uint16_t>(-1)) {
+              nb_indexes--;
+            } else {
+              if (nb_indexes > 1) {
+                nb_indexes -= 2;
               } else {
-                if (nb_indexes > 1) {
-                  nb_indexes -= 2;
-                } else {
-                  nb_indexes--;
-                }
+                nb_indexes--;
               }
-              break;
             }
+            break;
+          }
           default:
-            {
-            }
+          {
+          }
         }
-        inst_ptr += DEX::inst_size_from_opcode(opcode);
+        inst_ptr += inst_size;
       }
     }
   }
@@ -403,4 +442,3 @@ void Parser::parse_quickening_info() {


 }
-}
diff --git a/deps/LIEF/src/VDEX/Structures.hpp b/deps/LIEF/src/VDEX/Structures.hpp
index a0dc4585bb0..87f194915e9 100644
--- a/deps/LIEF/src/VDEX/Structures.hpp
+++ b/deps/LIEF/src/VDEX/Structures.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -19,13 +19,13 @@
 #include <cstring>
 #include "LIEF/types.hpp"

-namespace LIEF {
+
 /// Namespace related to the LIEF's VDEX module
-namespace VDEX {
-namespace details {
+
+namespace LIEF::VDEX::details {
 using vdex_version_t = uint32_t;

-static constexpr uint8_t magic[] = { 'v', 'd', 'e', 'x' };
+static constexpr uint8_t magic[] = {'v', 'd', 'e', 'x'};
 static constexpr vdex_version_t vdex_version = 0;

 using checksum_t = uint32_t;
@@ -38,7 +38,6 @@ struct header {
   uint32_t dex_size;
   uint32_t verifier_deps_size;
   uint32_t quickening_info_size;
-
 };

 // =======================
@@ -67,24 +66,23 @@ static constexpr vdex_version_t vdex_version = 11;

 class VDEX6 {
   public:
-  using vdex_header                            = VDEX_6::header;
+  using vdex_header = VDEX_6::header;
   static constexpr vdex_version_t vdex_version = VDEX_6::vdex_version;
 };

 class VDEX10 {
   public:
-  using vdex_header                            = VDEX_10::header;
+  using vdex_header = VDEX_10::header;
   static constexpr vdex_version_t vdex_version = VDEX_10::vdex_version;
 };

 class VDEX11 {
   public:
-  using vdex_header                            = VDEX_11::header;
+  using vdex_header = VDEX_11::header;
   static constexpr vdex_version_t vdex_version = VDEX_11::vdex_version;
 };

-} /* end namespace details */
-} /* end namespace VDEX */
-} /* end namespace LIEF */
-#endif
+} // namespace LIEF::VDEX::details
+

+#endif
diff --git a/deps/LIEF/src/VDEX/hash.cpp b/deps/LIEF/src/VDEX/hash.cpp
index 8668d4d2d5f..88584638af1 100644
--- a/deps/LIEF/src/VDEX/hash.cpp
+++ b/deps/LIEF/src/VDEX/hash.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -19,8 +19,8 @@
 #include "LIEF/DEX/hash.hpp"
 #include "LIEF/DEX/File.hpp"

-namespace LIEF {
-namespace VDEX {
+
+namespace LIEF::VDEX {

 Hash::~Hash() = default;

@@ -46,7 +46,4 @@ void Hash::visit(const Header& header) {
 }


-
-} // namespace VDEX
-} // namespace LIEF
-
+} // namespace LIEF::VDEX
diff --git a/deps/LIEF/src/VDEX/json.cpp b/deps/LIEF/src/VDEX/json.cpp
index 184917a9815..34b8b52b35b 100644
--- a/deps/LIEF/src/VDEX/json.cpp
+++ b/deps/LIEF/src/VDEX/json.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -20,8 +20,8 @@
 #include "LIEF/VDEX.hpp"
 #include "LIEF/DEX/File.hpp"

-namespace LIEF {
-namespace VDEX {
+
+namespace LIEF::VDEX {

 void JsonVisitor::visit(const File& file) {
   JsonVisitor vheader;
@@ -32,18 +32,17 @@ void JsonVisitor::visit(const File& file) {
     dexfiles.emplace_back(DEX::to_json_obj(dexfile));
   }

-  node_["header"]    = vheader.get();
+  node_["header"] = vheader.get();
   node_["dex_files"] = dexfiles;
 }

 void JsonVisitor::visit(const Header& header) {
-  node_["magic"]                = header.magic();
-  node_["version"]              = header.version();
-  node_["nb_dex_files"]         = header.nb_dex_files();
-  node_["dex_size"]             = header.dex_size();
-  node_["verifier_deps_size"]   = header.verifier_deps_size();
+  node_["magic"] = header.magic();
+  node_["version"] = header.version();
+  node_["nb_dex_files"] = header.nb_dex_files();
+  node_["dex_size"] = header.dex_size();
+  node_["verifier_deps_size"] = header.verifier_deps_size();
   node_["quickening_info_size"] = header.quickening_info_size();
 }

-} // namespace VDEX
-} // namespace LIEF
+} // namespace LIEF::VDEX
diff --git a/deps/LIEF/src/VDEX/json_api.cpp b/deps/LIEF/src/VDEX/json_api.cpp
index f2b8bd29a9b..d0a1ad73a28 100644
--- a/deps/LIEF/src/VDEX/json_api.cpp
+++ b/deps/LIEF/src/VDEX/json_api.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -20,11 +20,11 @@
 #include "LIEF/VDEX/json.hpp"

 #ifdef LIEF_JSON_SUPPORT
-#include "VDEX/json_internal.hpp"
+  #include "VDEX/json_internal.hpp"
 #endif

-namespace LIEF {
-namespace VDEX {
+
+namespace LIEF::VDEX {

 std::string to_json(const Object& v) {
 #ifdef LIEF_JSON_SUPPORT
@@ -37,6 +37,4 @@ std::string to_json(const Object& v) {
 #endif
 }

-} // namespace VDEX
-} // namespace LIEF
-
+} // namespace LIEF::VDEX
diff --git a/deps/LIEF/src/VDEX/json_internal.hpp b/deps/LIEF/src/VDEX/json_internal.hpp
index 3da413963e0..4cbee188221 100644
--- a/deps/LIEF/src/VDEX/json_internal.hpp
+++ b/deps/LIEF/src/VDEX/json_internal.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -19,20 +19,19 @@
 #include "LIEF/visibility.h"
 #include "visitors/json.hpp"

-namespace LIEF {
-namespace VDEX {
+
+namespace LIEF::VDEX {

 class JsonVisitor : public LIEF::JsonVisitor {
   public:
   using LIEF::JsonVisitor::JsonVisitor;

   public:
-  void visit(const File& file)      override;
-  void visit(const Header& header)  override;
+  void visit(const File& file) override;
+  void visit(const Header& header) override;
 };

-}
 }

-#endif // LIEF_JSON_SUPPORT

+#endif
diff --git a/deps/LIEF/src/VDEX/utils.cpp b/deps/LIEF/src/VDEX/utils.cpp
index 8659a13c217..7051e246ad1 100644
--- a/deps/LIEF/src/VDEX/utils.cpp
+++ b/deps/LIEF/src/VDEX/utils.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -20,8 +20,10 @@
 #include "LIEF/VDEX/utils.hpp"
 #include "VDEX/Structures.hpp"

-namespace LIEF {
-namespace VDEX {
+#include "internal_utils.hpp"
+
+
+namespace LIEF::VDEX {

 inline bool is_vdex(BinaryStream& stream) {
   using magic_t = std::array<char, sizeof(details::magic)>;
@@ -42,14 +44,8 @@ inline vdex_version_t version(BinaryStream& stream) {
   stream.increment_pos(sizeof(details::magic));
   if (auto ver_res = stream.peek<version_t>()) {
     const auto version = *ver_res;
-    const bool are_digits = std::all_of(std::begin(version), std::end(version),
-        [] (char c) { return c == 0 || ::isdigit(c); });
-    if (!are_digits) {
-      return 0;
-    }
-
-    std::string version_str(std::begin(version), std::end(version));
-    return static_cast<vdex_version_t>(std::stoul(version_str));
+    return static_cast<vdex_version_t>(parse_android_version(version.data(),
+                                                             version.size()));
   }
   return 0;
 }
@@ -83,15 +79,17 @@ vdex_version_t version(const std::vector<uint8_t>& raw) {
 }

 LIEF::Android::ANDROID_VERSIONS android_version(vdex_version_t version) {
-  static const std::map<vdex_version_t, LIEF::Android::ANDROID_VERSIONS> oat2android {
-    { 6,  LIEF::Android::ANDROID_VERSIONS::VERSION_800 },
-    { 10, LIEF::Android::ANDROID_VERSIONS::VERSION_810 },
+  static const std::map<vdex_version_t, LIEF::Android::ANDROID_VERSIONS>
+      oat2android{
+          {6, LIEF::Android::ANDROID_VERSIONS::VERSION_800},
+          {10, LIEF::Android::ANDROID_VERSIONS::VERSION_810},

   };
-  auto   it  = oat2android.lower_bound(version);
-  return it == oat2android.end() ? LIEF::Android::ANDROID_VERSIONS::VERSION_UNKNOWN : it->second;
+  auto it = oat2android.lower_bound(version);
+  return it == oat2android.end() ?
+             LIEF::Android::ANDROID_VERSIONS::VERSION_UNKNOWN :
+             it->second;
 }


 }
-}
diff --git a/deps/LIEF/src/Visitor.cpp b/deps/LIEF/src/Visitor.cpp
index 6d60eb85535..04af7828246 100644
--- a/deps/LIEF/src/Visitor.cpp
+++ b/deps/LIEF/src/Visitor.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -21,13 +21,11 @@ Visitor::Visitor() = default;
 Visitor::~Visitor() = default;


-void Visitor::operator()() {
-}
+void Visitor::operator()() {}

 void Visitor::visit(const Object& v) {
   v.accept(*this);
 }


-
 }
diff --git a/deps/LIEF/src/asm/asm.cpp b/deps/LIEF/src/asm/asm.cpp
index a0996cbd7b0..1e58798731d 100644
--- a/deps/LIEF/src/asm/asm.cpp
+++ b/deps/LIEF/src/asm/asm.cpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -12,6 +12,8 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
+// NOLINTBEGIN
+
 #include "LIEF/asm/Instruction.hpp"
 #include "LIEF/asm/Engine.hpp"

@@ -37,19 +39,45 @@
 #include "LIEF/asm/arm/registers.hpp"

 #include "LIEF/asm/mips/Instruction.hpp"
+#include "LIEF/asm/mips/Operand.hpp"
 #include "LIEF/asm/mips/registers.hpp"

+#include "LIEF/asm/mips/operands/Immediate.hpp"
+#include "LIEF/asm/mips/operands/Register.hpp"
+#include "LIEF/asm/mips/operands/PCRelative.hpp"
+#include "LIEF/asm/mips/operands/Memory.hpp"
+
 #include "LIEF/asm/ebpf/Instruction.hpp"
+#include "LIEF/asm/ebpf/Operand.hpp"
 #include "LIEF/asm/ebpf/registers.hpp"

+#include "LIEF/asm/ebpf/operands/Immediate.hpp"
+#include "LIEF/asm/ebpf/operands/Register.hpp"
+#include "LIEF/asm/ebpf/operands/PCRelative.hpp"
+#include "LIEF/asm/ebpf/operands/Memory.hpp"
+
 #include "LIEF/asm/riscv/Instruction.hpp"
+#include "LIEF/asm/riscv/Operand.hpp"
 #include "LIEF/asm/riscv/registers.hpp"

+#include "LIEF/asm/riscv/operands/Immediate.hpp"
+#include "LIEF/asm/riscv/operands/Register.hpp"
+#include "LIEF/asm/riscv/operands/PCRelative.hpp"
+#include "LIEF/asm/riscv/operands/Memory.hpp"
+
 #include "LIEF/asm/powerpc/Instruction.hpp"
+#include "LIEF/asm/powerpc/Operand.hpp"
 #include "LIEF/asm/powerpc/registers.hpp"

+#include "LIEF/asm/powerpc/operands/Immediate.hpp"
+#include "LIEF/asm/powerpc/operands/Register.hpp"
+#include "LIEF/asm/powerpc/operands/PCRelative.hpp"
+#include "LIEF/asm/powerpc/operands/Memory.hpp"
+
 #include "LIEF/Abstract/Binary.hpp"
-#include "LIEF/COFF/Binary.hpp"
+#if defined(LIEF_COFF_SUPPORT)
+  #include "LIEF/COFF/Binary.hpp"
+#endif

 #include "internal_utils.hpp"
 #include "messages.hpp"
@@ -57,44 +85,88 @@

 namespace LIEF {

+namespace assembly {
+namespace details {
+class Instruction {};
+class InstructionIt {};
+
+class Engine {};
+}
+
+namespace x86::details {
+class Operand {};
+class OperandIt {};
+}
+
+namespace aarch64::details {
+class Operand {};
+class OperandIt {};
+}
+
+namespace mips::details {
+class Operand {};
+class OperandIt {};
+}
+
+namespace powerpc::details {
+class Operand {};
+class OperandIt {};
+}
+
+namespace ebpf::details {
+class Operand {};
+class OperandIt {};
+}
+
+namespace riscv::details {
+class Operand {};
+class OperandIt {};
+}
+}
+
 // ----------------------------------------------------------------------------
 // Abstract/Binary.hpp
 // ----------------------------------------------------------------------------

-Binary::instructions_it Binary::disassemble(uint64_t/*address*/, size_t/*size*/) const {
+Binary::instructions_it Binary::disassemble(uint64_t /*address*/,
+                                            size_t /*size*/) const {
   LIEF_ERR(ASSEMBLY_NOT_SUPPORTED);
   return make_empty_iterator<assembly::Instruction>();
 }

-Binary::instructions_it Binary::disassemble(uint64_t/*address*/) const {
+Binary::instructions_it Binary::disassemble(uint64_t /*address*/) const {
   LIEF_ERR(ASSEMBLY_NOT_SUPPORTED);
   return make_empty_iterator<assembly::Instruction>();
 }

-Binary::instructions_it Binary::disassemble(const std::string&/*function*/) const {
+Binary::instructions_it
+    Binary::disassemble(const std::string& /*function*/) const {
   LIEF_ERR(ASSEMBLY_NOT_SUPPORTED);
   return make_empty_iterator<assembly::Instruction>();
 }

-Binary::instructions_it Binary::disassemble(const uint8_t*, size_t, uint64_t) const {
+Binary::instructions_it Binary::disassemble(const uint8_t*, size_t,
+                                            uint64_t) const {
   LIEF_ERR(ASSEMBLY_NOT_SUPPORTED);
   return make_empty_iterator<assembly::Instruction>();
 }

-std::vector<uint8_t> Binary::assemble(uint64_t/*address*/, const std::string&/*Asm*/,
-    assembly::AssemblerConfig& /*config*/)
-{
+std::vector<uint8_t> Binary::assemble(uint64_t /*address*/,
+                                      const std::string& /*Asm*/,
+                                      assembly::AssemblerConfig& /*config*/) {
   LIEF_ERR(ASSEMBLY_NOT_SUPPORTED);
   return {};
 }

-std::vector<uint8_t> Binary::assemble(uint64_t/*address*/, const llvm::MCInst&/*inst*/) {
+std::vector<uint8_t> Binary::assemble(uint64_t /*address*/,
+                                      const llvm::MCInst& /*inst*/) {
   LIEF_ERR(ASSEMBLY_NOT_SUPPORTED);
   return {};
 }


-std::vector<uint8_t> Binary::assemble(uint64_t/*address*/, const std::vector<llvm::MCInst>&/*inst*/) {
+std::vector<uint8_t> Binary::assemble(uint64_t /*address*/,
+                                      const std::vector<llvm::MCInst>& /*inst*/) {
   LIEF_ERR(ASSEMBLY_NOT_SUPPORTED);
   return {};
 }
@@ -104,6 +176,7 @@ assembly::Engine* Binary::get_engine(uint64_t) const {
 }


+#if defined(LIEF_COFF_SUPPORT)
 namespace COFF {
 assembly::Engine* Binary::get_engine(uint64_t) const {
   return nullptr;
@@ -119,60 +192,53 @@ Binary::instructions_it Binary::disassemble(const Symbol& /*symbol*/) const {
   return make_empty_iterator<assembly::Instruction>();
 }

-Binary::instructions_it Binary::disassemble(const uint8_t* /*buffer*/, size_t /*size*/,
-                                            uint64_t /*address*/) const
-{
+Binary::instructions_it Binary::disassemble(const uint8_t* /*buffer*/,
+                                            size_t /*size*/,
+                                            uint64_t /*address*/) const {
   LIEF_ERR(ASSEMBLY_NOT_SUPPORTED);
   return make_empty_iterator<assembly::Instruction>();
 }
 }
+#endif

 namespace assembly {
-namespace details {
-class Instruction {};
-class InstructionIt {};
-
-class Engine {};
-}
-
-namespace x86::details {
-class Operand {};
-class OperandIt {};
-}
-
-namespace aarch64::details {
-class Operand {};
-class OperandIt {};
-}

 // ----------------------------------------------------------------------------
 // asm/Instruction.hpp
 // ----------------------------------------------------------------------------

 Instruction::Iterator::Iterator() :
-  impl_(nullptr)
-{}
+  impl_(nullptr) {}

 Instruction::Iterator::Iterator(std::unique_ptr<details::InstructionIt>) :
-  impl_(nullptr)
-{}
+  impl_(nullptr) {}

 Instruction::Iterator::Iterator(const Iterator&) :
-  impl_(nullptr)
-{}
+  impl_(nullptr) {}

 Instruction::Iterator& Instruction::Iterator::operator=(const Iterator&) {
   return *this;
 }

 Instruction::Iterator::Iterator(Iterator&&) noexcept = default;
-Instruction::Iterator& Instruction::Iterator::operator=(Iterator&&) noexcept = default;
+Instruction::Iterator&
+    Instruction::Iterator::operator=(Iterator&&) noexcept = default;

 Instruction::Iterator& Instruction::Iterator::operator++() {
   return *this;
 }

-std::unique_ptr<Instruction> Instruction::Iterator::operator*() const {
+void Instruction::Iterator::load() const {}
+
+const Instruction& Instruction::Iterator::operator*() const {
+  return *cached_;
+}
+
+const Instruction* Instruction::Iterator::operator->() const {
+  return nullptr;
+}
+
+std::unique_ptr<Instruction> Instruction::Iterator::yield() {
   return nullptr;
 }

@@ -183,10 +249,10 @@ bool operator==(const Instruction::Iterator&, const Instruction::Iterator&) {
 Instruction::Iterator::~Iterator() = default;

 Instruction::Instruction(std::unique_ptr<details::Instruction>) :
-  impl_(nullptr)
-{}
+  impl_(nullptr) {}

-std::unique_ptr<Instruction> Instruction::create(std::unique_ptr<details::Instruction>) {
+std::unique_ptr<Instruction>
+    Instruction::create(std::unique_ptr<details::Instruction>) {
   return nullptr;
 }

@@ -209,7 +275,7 @@ std::string Instruction::mnemonic() const {
   return "";
 }

-std::string Instruction::to_string(bool/*with_address*/) const {
+std::string Instruction::to_string(bool /*with_address*/) const {
   return "";
 }

@@ -234,19 +300,45 @@ const llvm::MCInst& Instruction::mcinst() const {
   return *reinterpret_cast<llvm::MCInst*>(&FAKE);
 }

-bool Instruction::is_memory_access() const { return false; }
-bool Instruction::is_move_reg() const { return false; }
-bool Instruction::is_add() const { return false; }
-bool Instruction::is_trap() const { return false; }
-bool Instruction::is_barrier() const { return false; }
-bool Instruction::is_return() const { return false; }
-bool Instruction::is_indirect_branch() const { return false; }
-bool Instruction::is_conditional_branch() const { return false; }
-bool Instruction::is_unconditional_branch() const { return false; }
-bool Instruction::is_compare() const { return false; }
-bool Instruction::is_move_immediate() const { return false; }
-bool Instruction::is_bitcast() const { return false; }
-Instruction::MemoryAccess Instruction::memory_access() const { return MemoryAccess::NONE; }
+bool Instruction::is_memory_access() const {
+  return false;
+}
+bool Instruction::is_move_reg() const {
+  return false;
+}
+bool Instruction::is_add() const {
+  return false;
+}
+bool Instruction::is_trap() const {
+  return false;
+}
+bool Instruction::is_barrier() const {
+  return false;
+}
+bool Instruction::is_return() const {
+  return false;
+}
+bool Instruction::is_indirect_branch() const {
+  return false;
+}
+bool Instruction::is_conditional_branch() const {
+  return false;
+}
+bool Instruction::is_unconditional_branch() const {
+  return false;
+}
+bool Instruction::is_compare() const {
+  return false;
+}
+bool Instruction::is_move_immediate() const {
+  return false;
+}
+bool Instruction::is_bitcast() const {
+  return false;
+}
+Instruction::MemoryAccess Instruction::memory_access() const {
+  return MemoryAccess::NONE;
+}

 result<uint64_t> Instruction::branch_target() const {
   return make_error_code(lief_errors::not_implemented);
@@ -256,12 +348,9 @@ result<uint64_t> Instruction::branch_target() const {
 // asm/Engine.hpp
 // ----------------------------------------------------------------------------
 Engine::Engine(std::unique_ptr<details::Engine>) :
-  impl_(nullptr)
-{}
-
-Engine::Engine(Engine&&) noexcept {
+  impl_(nullptr) {}

-}
+Engine::Engine(Engine&&) noexcept {}

 Engine& Engine::operator=(Engine&&) noexcept {
   return *this;
@@ -271,15 +360,16 @@ Engine::instructions_it Engine::disassemble(const uint8_t*, size_t, uint64_t) {
   return make_empty_iterator<assembly::Instruction>();
 }

-std::vector<uint8_t> Engine::assemble(uint64_t/*address*/, const std::string&/*Asm*/,
-                                      AssemblerConfig& /*config*/)
-{
+std::vector<uint8_t> Engine::assemble(uint64_t /*address*/,
+                                      const std::string& /*Asm*/,
+                                      AssemblerConfig& /*config*/) {
   return {};
 }

-std::vector<uint8_t> Engine::assemble(uint64_t/*address*/, const std::string&/*Asm*/,
-                                      LIEF::Binary&/*bin*/, AssemblerConfig& /*config*/)
-{
+std::vector<uint8_t> Engine::assemble(uint64_t /*address*/,
+                                      const std::string& /*Asm*/,
+                                      LIEF::Binary& /*bin*/,
+                                      AssemblerConfig& /*config*/) {
   return {};
 }

@@ -349,6 +439,10 @@ mips::OPCODE mips::Instruction::opcode() const {
   return mips::OPCODE::INSTRUCTION_LIST_END;
 }

+mips::Instruction::operands_it mips::Instruction::operands() const {
+  return make_empty_iterator<mips::Operand>();
+}
+
 bool mips::Instruction::classof(const assembly::Instruction*) {
   return false;
 }
@@ -364,6 +458,10 @@ ebpf::OPCODE ebpf::Instruction::opcode() const {
   return ebpf::OPCODE::INSTRUCTION_LIST_END;
 }

+ebpf::Instruction::operands_it ebpf::Instruction::operands() const {
+  return make_empty_iterator<ebpf::Operand>();
+}
+
 bool ebpf::Instruction::classof(const assembly::Instruction*) {
   return false;
 }
@@ -379,6 +477,10 @@ riscv::OPCODE riscv::Instruction::opcode() const {
   return riscv::OPCODE::INSTRUCTION_LIST_END;
 }

+riscv::Instruction::operands_it riscv::Instruction::operands() const {
+  return make_empty_iterator<riscv::Operand>();
+}
+
 bool riscv::Instruction::classof(const assembly::Instruction*) {
   return false;
 }
@@ -387,6 +489,10 @@ const char* riscv::get_register_name(REG) {
   return "";
 }

+const char* riscv::get_register_name(SYSREG) {
+  return "";
+}
+
 // ----------------------------------------------------------------------------
 // asm/powerpc/Instruction.hpp
 // ----------------------------------------------------------------------------
@@ -394,6 +500,10 @@ powerpc::OPCODE powerpc::Instruction::opcode() const {
   return powerpc::OPCODE::INSTRUCTION_LIST_END;
 }

+powerpc::Instruction::operands_it powerpc::Instruction::operands() const {
+  return make_empty_iterator<powerpc::Operand>();
+}
+
 bool powerpc::Instruction::classof(const assembly::Instruction*) {
   return false;
 }
@@ -406,29 +516,37 @@ const char* powerpc::get_register_name(REG) {
 // asm/x86/Operand.hpp
 // ----------------------------------------------------------------------------
 x86::Operand::Iterator::Iterator() :
-  impl_(nullptr)
-{}
+  impl_(nullptr) {}

 x86::Operand::Iterator::Iterator(std::unique_ptr<details::OperandIt>) :
-  impl_(nullptr)
-{}
+  impl_(nullptr) {}

 x86::Operand::Iterator::Iterator(const Iterator&) :
-  impl_(nullptr)
-{}
+  impl_(nullptr) {}

-x86::Operand::Iterator&  x86::Operand::Iterator::operator=(const Iterator&) {
+x86::Operand::Iterator& x86::Operand::Iterator::operator=(const Iterator&) {
   return *this;
 }

 x86::Operand::Iterator::Iterator(Iterator&&) noexcept = default;
-x86::Operand::Iterator& x86::Operand::Iterator::operator=(Iterator&&) noexcept = default;
+x86::Operand::Iterator&
+    x86::Operand::Iterator::operator=(Iterator&&) noexcept = default;

 x86::Operand::Iterator& x86::Operand::Iterator::operator++() {
   return *this;
 }

-std::unique_ptr<x86::Operand> x86::Operand::Iterator::operator*() const {
+void x86::Operand::Iterator::load() const {}
+
+const x86::Operand& x86::Operand::Iterator::operator*() const {
+  return *cached_;
+}
+
+const x86::Operand* x86::Operand::Iterator::operator->() const {
+  return nullptr;
+}
+
+std::unique_ptr<x86::Operand> x86::Operand::Iterator::yield() {
   return nullptr;
 }

@@ -441,24 +559,28 @@ bool operator==(const x86::Operand::Iterator&, const x86::Operand::Iterator&) {
 x86::Operand::Iterator::~Iterator() = default;

 x86::Operand::~Operand() = default;
-x86::Operand::Operand(std::unique_ptr<details::Operand>/*impl*/) :
-  impl_(nullptr)
-{}
+x86::Operand::Operand(std::unique_ptr<details::Operand> /*impl*/) :
+  impl_(nullptr) {}

 std::string x86::Operand::to_string() const {
   return "";
 }

-std::unique_ptr<x86::Operand> x86::Operand::create(std::unique_ptr<details::Operand> /*impl*/) {
+std::unique_ptr<x86::Operand>
+    x86::Operand::create(std::unique_ptr<details::Operand> /*impl*/) {
   return nullptr;
 }

 // ----------------------------------------------------------------------------
 // asm/x86/Memory.hpp
 // ----------------------------------------------------------------------------
-bool x86::operands::Memory::classof(const Operand*) { return false; }
+bool x86::operands::Memory::classof(const Operand*) {
+  return false;
+}

-x86::REG x86::operands::Memory::base() const { return x86::REG::NoRegister; }
+x86::REG x86::operands::Memory::base() const {
+  return x86::REG::NoRegister;
+}

 x86::REG x86::operands::Memory::scaled_register() const {
   return x86::REG::NoRegister;
@@ -468,14 +590,20 @@ x86::REG x86::operands::Memory::segment_register() const {
   return x86::REG::NoRegister;
 }

-uint64_t x86::operands::Memory::scale() const { return 0; }
+uint64_t x86::operands::Memory::scale() const {
+  return 0;
+}

-int64_t x86::operands::Memory::displacement() const { return 0; }
+int64_t x86::operands::Memory::displacement() const {
+  return 0;
+}

 // ----------------------------------------------------------------------------
 // asm/x86/PCRelative.hpp
 // ----------------------------------------------------------------------------
-bool x86::operands::PCRelative::classof(const Operand*) { return false; }
+bool x86::operands::PCRelative::classof(const Operand*) {
+  return false;
+}

 int64_t x86::operands::PCRelative::value() const {
   return 0;
@@ -484,7 +612,9 @@ int64_t x86::operands::PCRelative::value() const {
 // ----------------------------------------------------------------------------
 // asm/x86/Register.hpp
 // ----------------------------------------------------------------------------
-bool x86::operands::Register::classof(const Operand*) { return false; }
+bool x86::operands::Register::classof(const Operand*) {
+  return false;
+}

 x86::REG x86::operands::Register::value() const {
   return REG::NoRegister;
@@ -493,7 +623,9 @@ x86::REG x86::operands::Register::value() const {
 // ----------------------------------------------------------------------------
 // asm/x86/Immediate.hpp
 // ----------------------------------------------------------------------------
-bool x86::operands::Immediate::classof(const Operand*) { return false; }
+bool x86::operands::Immediate::classof(const Operand*) {
+  return false;
+}

 int64_t x86::operands::Immediate::value() const {
   return 0;
@@ -503,34 +635,44 @@ int64_t x86::operands::Immediate::value() const {
 // asm/aarch64/Operand.hpp
 // ----------------------------------------------------------------------------
 aarch64::Operand::Iterator::Iterator() :
-  impl_(nullptr)
-{}
+  impl_(nullptr) {}

 aarch64::Operand::Iterator::Iterator(std::unique_ptr<details::OperandIt>) :
-  impl_(nullptr)
-{}
+  impl_(nullptr) {}

 aarch64::Operand::Iterator::Iterator(const Iterator&) :
-  impl_(nullptr)
-{}
+  impl_(nullptr) {}

-aarch64::Operand::Iterator&  aarch64::Operand::Iterator::operator=(const Iterator&) {
+aarch64::Operand::Iterator&
+    aarch64::Operand::Iterator::operator=(const Iterator&) {
   return *this;
 }

 aarch64::Operand::Iterator::Iterator(Iterator&&) noexcept = default;
-aarch64::Operand::Iterator& aarch64::Operand::Iterator::operator=(Iterator&&) noexcept = default;
+aarch64::Operand::Iterator&
+    aarch64::Operand::Iterator::operator=(Iterator&&) noexcept = default;

 aarch64::Operand::Iterator& aarch64::Operand::Iterator::operator++() {
   return *this;
 }

-std::unique_ptr<aarch64::Operand> aarch64::Operand::Iterator::operator*() const {
+void aarch64::Operand::Iterator::load() const {}
+
+const aarch64::Operand& aarch64::Operand::Iterator::operator*() const {
+  return *cached_;
+}
+
+const aarch64::Operand* aarch64::Operand::Iterator::operator->() const {
+  return nullptr;
+}
+
+std::unique_ptr<aarch64::Operand> aarch64::Operand::Iterator::yield() {
   return nullptr;
 }

 namespace aarch64 {
-bool operator==(const aarch64::Operand::Iterator&, const aarch64::Operand::Iterator&) {
+bool operator==(const aarch64::Operand::Iterator&,
+                const aarch64::Operand::Iterator&) {
   return true;
 }
 }
@@ -538,22 +680,24 @@ bool operator==(const aarch64::Operand::Iterator&, const aarch64::Operand::Itera
 aarch64::Operand::Iterator::~Iterator() = default;

 aarch64::Operand::~Operand() = default;
-aarch64::Operand::Operand(std::unique_ptr<details::Operand>/*impl*/) :
-  impl_(nullptr)
-{}
+aarch64::Operand::Operand(std::unique_ptr<details::Operand> /*impl*/) :
+  impl_(nullptr) {}

 std::string aarch64::Operand::to_string() const {
   return "";
 }

-std::unique_ptr<aarch64::Operand> aarch64::Operand::create(std::unique_ptr<details::Operand> /*impl*/) {
+std::unique_ptr<aarch64::Operand>
+    aarch64::Operand::create(std::unique_ptr<details::Operand> /*impl*/) {
   return nullptr;
 }

 // ----------------------------------------------------------------------------
 // asm/aarch64/Memory.hpp
 // ----------------------------------------------------------------------------
-bool aarch64::operands::Memory::classof(const Operand*) { return false; }
+bool aarch64::operands::Memory::classof(const Operand*) {
+  return false;
+}

 aarch64::REG aarch64::operands::Memory::base() const {
   return REG::NoRegister;
@@ -570,7 +714,9 @@ aarch64::operands::Memory::shift_info_t aarch64::operands::Memory::shift() const
 // ----------------------------------------------------------------------------
 // asm/aarch64/PCRelative.hpp
 // ----------------------------------------------------------------------------
-bool aarch64::operands::PCRelative::classof(const Operand*) { return false; }
+bool aarch64::operands::PCRelative::classof(const Operand*) {
+  return false;
+}

 int64_t aarch64::operands::PCRelative::value() const {
   return 0;
@@ -579,7 +725,9 @@ int64_t aarch64::operands::PCRelative::value() const {
 // ----------------------------------------------------------------------------
 // asm/aarch64/Register.hpp
 // ----------------------------------------------------------------------------
-bool aarch64::operands::Register::classof(const Operand*) { return false; }
+bool aarch64::operands::Register::classof(const Operand*) {
+  return false;
+}

 aarch64::operands::Register::reg_t aarch64::operands::Register::value() const {
   return {};
@@ -588,11 +736,450 @@ aarch64::operands::Register::reg_t aarch64::operands::Register::value() const {
 // ----------------------------------------------------------------------------
 // asm/aarch64/Immediate.hpp
 // ----------------------------------------------------------------------------
-bool aarch64::operands::Immediate::classof(const Operand*) { return false; }
+bool aarch64::operands::Immediate::classof(const Operand*) {
+  return false;
+}

 int64_t aarch64::operands::Immediate::value() const {
   return 0;
 }

+// ----------------------------------------------------------------------------
+// asm/mips/Operand.hpp
+// ----------------------------------------------------------------------------
+mips::Operand::Iterator::Iterator() :
+  impl_(nullptr) {}
+
+mips::Operand::Iterator::Iterator(std::unique_ptr<details::OperandIt>) :
+  impl_(nullptr) {}
+
+mips::Operand::Iterator::Iterator(const Iterator&) :
+  impl_(nullptr) {}
+
+mips::Operand::Iterator& mips::Operand::Iterator::operator=(const Iterator&) {
+  return *this;
+}
+
+mips::Operand::Iterator::Iterator(Iterator&&) noexcept = default;
+mips::Operand::Iterator&
+    mips::Operand::Iterator::operator=(Iterator&&) noexcept = default;
+
+mips::Operand::Iterator& mips::Operand::Iterator::operator++() {
+  return *this;
 }
+
+void mips::Operand::Iterator::load() const {}
+
+const mips::Operand& mips::Operand::Iterator::operator*() const {
+  return *cached_;
+}
+
+const mips::Operand* mips::Operand::Iterator::operator->() const {
+  return nullptr;
+}
+
+std::unique_ptr<mips::Operand> mips::Operand::Iterator::yield() {
+  return nullptr;
+}
+
+namespace mips {
+bool operator==(const mips::Operand::Iterator&, const mips::Operand::Iterator&) {
+  return true;
+}
+}
+
+mips::Operand::Iterator::~Iterator() = default;
+
+mips::Operand::~Operand() = default;
+mips::Operand::Operand(std::unique_ptr<details::Operand> /*impl*/) :
+  impl_(nullptr) {}
+
+std::string mips::Operand::to_string() const {
+  return "";
+}
+
+std::unique_ptr<mips::Operand>
+    mips::Operand::create(std::unique_ptr<details::Operand> /*impl*/) {
+  return nullptr;
+}
+
+// ----------------------------------------------------------------------------
+// asm/mips/Memory.hpp
+// ----------------------------------------------------------------------------
+bool mips::operands::Memory::classof(const Operand*) {
+  return false;
+}
+
+mips::REG mips::operands::Memory::base() const {
+  return REG::NoRegister;
+}
+
+mips::operands::Memory::offset_t mips::operands::Memory::offset() const {
+  return {};
+}
+
+// ----------------------------------------------------------------------------
+// asm/mips/PCRelative.hpp
+// ----------------------------------------------------------------------------
+bool mips::operands::PCRelative::classof(const Operand*) {
+  return false;
+}
+
+int64_t mips::operands::PCRelative::value() const {
+  return 0;
+}
+
+// ----------------------------------------------------------------------------
+// asm/mips/Register.hpp
+// ----------------------------------------------------------------------------
+bool mips::operands::Register::classof(const Operand*) {
+  return false;
+}
+
+mips::REG mips::operands::Register::value() const {
+  return REG::NoRegister;
+}
+
+// ----------------------------------------------------------------------------
+// asm/mips/Immediate.hpp
+// ----------------------------------------------------------------------------
+bool mips::operands::Immediate::classof(const Operand*) {
+  return false;
+}
+
+int64_t mips::operands::Immediate::value() const {
+  return 0;
+}
+
+// ----------------------------------------------------------------------------
+// asm/powerpc/Operand.hpp
+// ----------------------------------------------------------------------------
+powerpc::Operand::Iterator::Iterator() :
+  impl_(nullptr) {}
+
+powerpc::Operand::Iterator::Iterator(std::unique_ptr<details::OperandIt>) :
+  impl_(nullptr) {}
+
+powerpc::Operand::Iterator::Iterator(const Iterator&) :
+  impl_(nullptr) {}
+
+powerpc::Operand::Iterator&
+    powerpc::Operand::Iterator::operator=(const Iterator&) {
+  return *this;
+}
+
+powerpc::Operand::Iterator::Iterator(Iterator&&) noexcept = default;
+powerpc::Operand::Iterator&
+    powerpc::Operand::Iterator::operator=(Iterator&&) noexcept = default;
+
+powerpc::Operand::Iterator& powerpc::Operand::Iterator::operator++() {
+  return *this;
+}
+
+void powerpc::Operand::Iterator::load() const {}
+
+const powerpc::Operand& powerpc::Operand::Iterator::operator*() const {
+  return *cached_;
+}
+
+const powerpc::Operand* powerpc::Operand::Iterator::operator->() const {
+  return nullptr;
+}
+
+std::unique_ptr<powerpc::Operand> powerpc::Operand::Iterator::yield() {
+  return nullptr;
+}
+
+namespace powerpc {
+bool operator==(const powerpc::Operand::Iterator&,
+                const powerpc::Operand::Iterator&) {
+  return true;
+}
+}
+
+powerpc::Operand::Iterator::~Iterator() = default;
+
+powerpc::Operand::~Operand() = default;
+powerpc::Operand::Operand(std::unique_ptr<details::Operand> /*impl*/) :
+  impl_(nullptr) {}
+
+std::string powerpc::Operand::to_string() const {
+  return "";
+}
+
+std::unique_ptr<powerpc::Operand>
+    powerpc::Operand::create(std::unique_ptr<details::Operand> /*impl*/) {
+  return nullptr;
+}
+
+// ----------------------------------------------------------------------------
+// asm/powerpc/Memory.hpp
+// ----------------------------------------------------------------------------
+bool powerpc::operands::Memory::classof(const Operand*) {
+  return false;
+}
+
+powerpc::REG powerpc::operands::Memory::base() const {
+  return REG::NoRegister;
+}
+
+powerpc::operands::Memory::offset_t powerpc::operands::Memory::offset() const {
+  return {};
+}
+
+bool powerpc::operands::Memory::has_index() const {
+  return false;
+}
+
+// ----------------------------------------------------------------------------
+// asm/powerpc/PCRelative.hpp
+// ----------------------------------------------------------------------------
+bool powerpc::operands::PCRelative::classof(const Operand*) {
+  return false;
+}
+
+int64_t powerpc::operands::PCRelative::value() const {
+  return 0;
+}
+
+// ----------------------------------------------------------------------------
+// asm/powerpc/Register.hpp
+// ----------------------------------------------------------------------------
+bool powerpc::operands::Register::classof(const Operand*) {
+  return false;
+}
+
+powerpc::REG powerpc::operands::Register::value() const {
+  return REG::NoRegister;
+}
+
+// ----------------------------------------------------------------------------
+// asm/powerpc/Immediate.hpp
+// ----------------------------------------------------------------------------
+bool powerpc::operands::Immediate::classof(const Operand*) {
+  return false;
+}
+
+int64_t powerpc::operands::Immediate::value() const {
+  return 0;
+}
+
+// ----------------------------------------------------------------------------
+// asm/ebpf/Operand.hpp
+// ----------------------------------------------------------------------------
+ebpf::Operand::Iterator::Iterator() :
+  impl_(nullptr) {}
+
+ebpf::Operand::Iterator::Iterator(std::unique_ptr<details::OperandIt>) :
+  impl_(nullptr) {}
+
+ebpf::Operand::Iterator::Iterator(const Iterator&) :
+  impl_(nullptr) {}
+
+ebpf::Operand::Iterator& ebpf::Operand::Iterator::operator=(const Iterator&) {
+  return *this;
+}
+
+ebpf::Operand::Iterator::Iterator(Iterator&&) noexcept = default;
+ebpf::Operand::Iterator&
+    ebpf::Operand::Iterator::operator=(Iterator&&) noexcept = default;
+
+ebpf::Operand::Iterator& ebpf::Operand::Iterator::operator++() {
+  return *this;
+}
+
+void ebpf::Operand::Iterator::load() const {}
+
+const ebpf::Operand& ebpf::Operand::Iterator::operator*() const {
+  return *cached_;
+}
+
+const ebpf::Operand* ebpf::Operand::Iterator::operator->() const {
+  return nullptr;
+}
+
+std::unique_ptr<ebpf::Operand> ebpf::Operand::Iterator::yield() {
+  return nullptr;
+}
+
+namespace ebpf {
+bool operator==(const ebpf::Operand::Iterator&, const ebpf::Operand::Iterator&) {
+  return true;
+}
+}
+
+ebpf::Operand::Iterator::~Iterator() = default;
+
+ebpf::Operand::~Operand() = default;
+ebpf::Operand::Operand(std::unique_ptr<details::Operand> /*impl*/) :
+  impl_(nullptr) {}
+
+std::string ebpf::Operand::to_string() const {
+  return "";
+}
+
+std::unique_ptr<ebpf::Operand>
+    ebpf::Operand::create(std::unique_ptr<details::Operand> /*impl*/) {
+  return nullptr;
+}
+
+// ----------------------------------------------------------------------------
+// asm/ebpf/Memory.hpp
+// ----------------------------------------------------------------------------
+bool ebpf::operands::Memory::classof(const Operand*) {
+  return false;
+}
+
+ebpf::REG ebpf::operands::Memory::base() const {
+  return REG::NoRegister;
+}
+
+int64_t ebpf::operands::Memory::displacement() const {
+  return 0;
+}
+
+// ----------------------------------------------------------------------------
+// asm/ebpf/PCRelative.hpp
+// ----------------------------------------------------------------------------
+bool ebpf::operands::PCRelative::classof(const Operand*) {
+  return false;
+}
+
+int64_t ebpf::operands::PCRelative::value() const {
+  return 0;
+}
+
+// ----------------------------------------------------------------------------
+// asm/ebpf/Register.hpp
+// ----------------------------------------------------------------------------
+bool ebpf::operands::Register::classof(const Operand*) {
+  return false;
+}
+
+ebpf::REG ebpf::operands::Register::value() const {
+  return REG::NoRegister;
+}
+
+// ----------------------------------------------------------------------------
+// asm/ebpf/Immediate.hpp
+// ----------------------------------------------------------------------------
+bool ebpf::operands::Immediate::classof(const Operand*) {
+  return false;
+}
+
+int64_t ebpf::operands::Immediate::value() const {
+  return 0;
+}
+
+// ----------------------------------------------------------------------------
+// asm/riscv/Operand.hpp
+// ----------------------------------------------------------------------------
+riscv::Operand::Iterator::Iterator() :
+  impl_(nullptr) {}
+
+riscv::Operand::Iterator::Iterator(std::unique_ptr<details::OperandIt>) :
+  impl_(nullptr) {}
+
+riscv::Operand::Iterator::Iterator(const Iterator&) :
+  impl_(nullptr) {}
+
+riscv::Operand::Iterator& riscv::Operand::Iterator::operator=(const Iterator&) {
+  return *this;
+}
+
+riscv::Operand::Iterator::Iterator(Iterator&&) noexcept = default;
+riscv::Operand::Iterator&
+    riscv::Operand::Iterator::operator=(Iterator&&) noexcept = default;
+
+riscv::Operand::Iterator& riscv::Operand::Iterator::operator++() {
+  return *this;
+}
+
+void riscv::Operand::Iterator::load() const {}
+
+const riscv::Operand& riscv::Operand::Iterator::operator*() const {
+  return *cached_;
+}
+
+const riscv::Operand* riscv::Operand::Iterator::operator->() const {
+  return nullptr;
+}
+
+std::unique_ptr<riscv::Operand> riscv::Operand::Iterator::yield() {
+  return nullptr;
+}
+
+namespace riscv {
+bool operator==(const riscv::Operand::Iterator&, const riscv::Operand::Iterator&) {
+  return true;
+}
+}
+
+riscv::Operand::Iterator::~Iterator() = default;
+
+riscv::Operand::~Operand() = default;
+riscv::Operand::Operand(std::unique_ptr<details::Operand> /*impl*/) :
+  impl_(nullptr) {}
+
+std::string riscv::Operand::to_string() const {
+  return "";
+}
+
+std::unique_ptr<riscv::Operand>
+    riscv::Operand::create(std::unique_ptr<details::Operand> /*impl*/) {
+  return nullptr;
+}
+
+// ----------------------------------------------------------------------------
+// asm/riscv/Memory.hpp
+// ----------------------------------------------------------------------------
+bool riscv::operands::Memory::classof(const Operand*) {
+  return false;
+}
+
+riscv::REG riscv::operands::Memory::base() const {
+  return REG::NoRegister;
+}
+
+int64_t riscv::operands::Memory::displacement() const {
+  return 0;
+}
+
+// ----------------------------------------------------------------------------
+// asm/riscv/PCRelative.hpp
+// ----------------------------------------------------------------------------
+bool riscv::operands::PCRelative::classof(const Operand*) {
+  return false;
+}
+
+int64_t riscv::operands::PCRelative::value() const {
+  return 0;
+}
+
+// ----------------------------------------------------------------------------
+// asm/riscv/Register.hpp
+// ----------------------------------------------------------------------------
+bool riscv::operands::Register::classof(const Operand*) {
+  return false;
+}
+
+riscv::operands::Register::reg_t riscv::operands::Register::value() const {
+  return {};
+}
+
+// ----------------------------------------------------------------------------
+// asm/riscv/Immediate.hpp
+// ----------------------------------------------------------------------------
+bool riscv::operands::Immediate::classof(const Operand*) {
+  return false;
+}
+
+int64_t riscv::operands::Immediate::value() const {
+  return 0;
+}
+
+}
+
+// NOLINTEND
+
 }
diff --git a/deps/LIEF/src/compiler_support.h b/deps/LIEF/src/compiler_support.h
index 26c6659bd92..b2e9ed90aad 100644
--- a/deps/LIEF/src/compiler_support.h
+++ b/deps/LIEF/src/compiler_support.h
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -16,8 +16,10 @@
 #ifndef LIEF_COMPILER_SUPPORT_H
 #define LIEF_COMPILER_SUPPORT_H

+// clang-format off
 #define LIEF_SUPPORT_CXX11 1
 #define LIEF_SUPPORT_CXX14 1
 #define LIEF_SUPPORT_CXX17 1
+// clang-format on

 #endif
diff --git a/deps/LIEF/src/compiler_support.h.in b/deps/LIEF/src/compiler_support.h.in
index 25de8fb4f39..05c4c85c36c 100644
--- a/deps/LIEF/src/compiler_support.h.in
+++ b/deps/LIEF/src/compiler_support.h.in
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -16,8 +16,10 @@
 #ifndef LIEF_COMPILER_SUPPORT_H
 #define LIEF_COMPILER_SUPPORT_H

+// clang-format off
 #define LIEF_SUPPORT_CXX11 @LIEF_SUPPORT_CXX11@
 #define LIEF_SUPPORT_CXX14 @LIEF_SUPPORT_CXX14@
 #define LIEF_SUPPORT_CXX17 @LIEF_SUPPORT_CXX17@
+// clang-format on

 #endif
diff --git a/deps/LIEF/src/dyld-shared-cache/dyldsc.cpp b/deps/LIEF/src/dyld-shared-cache/dyldsc.cpp
index 2c54d6a628d..c396e0c6e8a 100644
--- a/deps/LIEF/src/dyld-shared-cache/dyldsc.cpp
+++ b/deps/LIEF/src/dyld-shared-cache/dyldsc.cpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -25,6 +25,8 @@
 #include "messages.hpp"
 #include "internal_utils.hpp"

+// NOLINTBEGIN
+
 namespace LIEF::dsc {
 namespace details {
 class DyldSharedCache {};
@@ -62,21 +64,18 @@ bool enable_cache(const std::string&) {
 // ----------------------------------------------------------------------------
 // DyldSharedCache/DyldSharedCache.hpp
 // ----------------------------------------------------------------------------
-DyldSharedCache::DyldSharedCache(std::unique_ptr<details::DyldSharedCache>)
-{}
+DyldSharedCache::DyldSharedCache(std::unique_ptr<details::DyldSharedCache>) {}

 DyldSharedCache::~DyldSharedCache() = default;

-std::unique_ptr<DyldSharedCache>
-  DyldSharedCache::from_path(const std::string&, const std::string&)
-{
+std::unique_ptr<DyldSharedCache> DyldSharedCache::from_path(const std::string&,
+                                                            const std::string&) {
   LIEF_ERR(DSC_NOT_SUPPORTED);
   return nullptr;
 }

 std::unique_ptr<DyldSharedCache>
-  DyldSharedCache::from_files(const std::vector<std::string>&)
-{
+    DyldSharedCache::from_files(const std::vector<std::string>&) {
   LIEF_ERR(DSC_NOT_SUPPORTED);
   return nullptr;
 }
@@ -113,11 +112,13 @@ std::unique_ptr<Dylib> DyldSharedCache::find_lib_from_va(uint64_t) const {
   return nullptr;
 }

-std::unique_ptr<Dylib> DyldSharedCache::find_lib_from_path(const std::string&) const {
+std::unique_ptr<Dylib>
+    DyldSharedCache::find_lib_from_path(const std::string&) const {
   return nullptr;
 }

-std::unique_ptr<Dylib> DyldSharedCache::find_lib_from_name(const std::string&) const {
+std::unique_ptr<Dylib>
+    DyldSharedCache::find_lib_from_name(const std::string&) const {
   return nullptr;
 }

@@ -125,18 +126,21 @@ bool DyldSharedCache::has_subcaches() const {
   return false;
 }

-DyldSharedCache::instructions_iterator DyldSharedCache::disassemble(uint64_t/*va*/) const {
+DyldSharedCache::instructions_iterator
+    DyldSharedCache::disassemble(uint64_t /*va*/) const {
   return make_range<assembly::Instruction::Iterator>(
-      assembly::Instruction::Iterator(),
-      assembly::Instruction::Iterator()
+      assembly::Instruction::Iterator(), assembly::Instruction::Iterator()
   );
 }

-std::vector<uint8_t> DyldSharedCache::get_content_from_va(uint64_t/*va*/, uint64_t/*size*/) const {
+std::vector<uint8_t>
+    DyldSharedCache::get_content_from_va(uint64_t /*va*/,
+                                         uint64_t /*size*/) const {
   return {};
 }

-std::unique_ptr<DyldSharedCache> DyldSharedCache::cache_for_address(uint64_t/*va*/) const {
+std::unique_ptr<DyldSharedCache>
+    DyldSharedCache::cache_for_address(uint64_t /*va*/) const {
   return nullptr;
 }

@@ -144,11 +148,12 @@ std::unique_ptr<DyldSharedCache> DyldSharedCache::main_cache() const {
   return nullptr;
 }

-std::unique_ptr<DyldSharedCache> DyldSharedCache::find_subcache(const std::string&/*filename*/) const {
+std::unique_ptr<DyldSharedCache>
+    DyldSharedCache::find_subcache(const std::string& /*filename*/) const {
   return nullptr;
 }

-result<uint64_t> DyldSharedCache::va_to_offset(uint64_t/*va*/) const {
+result<uint64_t> DyldSharedCache::va_to_offset(uint64_t /*va*/) const {
   return make_error_code(lief_errors::not_implemented);
 }

@@ -182,6 +187,7 @@ void DyldSharedCache::flush_cache() const {}
 // ----------------------------------------------------------------------------
 // DyldSharedCache/Dylib.hpp
 // ----------------------------------------------------------------------------
+Dylib::Iterator::Iterator() = default;

 Dylib::Dylib::extract_opt_t::extract_opt_t() = default;

@@ -219,7 +225,17 @@ bool operator==(const Dylib::Iterator&, const Dylib::Iterator&) {
   return false;
 }

-std::unique_ptr<Dylib> Dylib::Iterator::operator*() const {
+void Dylib::Iterator::load() const {}
+
+const Dylib& Dylib::Iterator::operator*() const {
+  return *cached_;
+}
+
+const Dylib* Dylib::Iterator::operator->() const {
+  return nullptr;
+}
+
+std::unique_ptr<Dylib> Dylib::Iterator::yield() {
   return nullptr;
 }

@@ -228,7 +244,8 @@ Dylib::Dylib(std::unique_ptr<details::Dylib>) {}

 Dylib::~Dylib() = default;

-std::unique_ptr<LIEF::MachO::Binary> Dylib::get(const Dylib::extract_opt_t&) const {
+std::unique_ptr<LIEF::MachO::Binary>
+    Dylib::get(const Dylib::extract_opt_t&) const {
   return nullptr;
 }

@@ -255,16 +272,20 @@ uint64_t Dylib::padding() const {
 // ----------------------------------------------------------------------------
 // DyldSharedCache/MappingInfo.hpp
 // ----------------------------------------------------------------------------
+MappingInfo::Iterator::Iterator() = default;
+
 MappingInfo::Iterator::Iterator(std::unique_ptr<details::MappingInfoIt>) {}

 MappingInfo::Iterator::Iterator(MappingInfo::Iterator&&) noexcept {}

-MappingInfo::Iterator& MappingInfo::Iterator::operator=(MappingInfo::Iterator&&) noexcept {
+MappingInfo::Iterator&
+    MappingInfo::Iterator::operator=(MappingInfo::Iterator&&) noexcept {
   return *this;
 }

 MappingInfo::Iterator::Iterator(const MappingInfo::Iterator&) {}
-MappingInfo::Iterator& MappingInfo::Iterator::operator=(const MappingInfo::Iterator&) {
+MappingInfo::Iterator&
+    MappingInfo::Iterator::operator=(const MappingInfo::Iterator&) {
   return *this;
 }

@@ -289,7 +310,17 @@ bool operator==(const MappingInfo::Iterator&, const MappingInfo::Iterator&) {
   return false;
 }

-std::unique_ptr<MappingInfo> MappingInfo::Iterator::operator*() const {
+void MappingInfo::Iterator::load() const {}
+
+const MappingInfo& MappingInfo::Iterator::operator*() const {
+  return *cached_;
+}
+
+const MappingInfo* MappingInfo::Iterator::operator->() const {
+  return nullptr;
+}
+
+std::unique_ptr<MappingInfo> MappingInfo::Iterator::yield() {
   return nullptr;
 }

@@ -320,6 +351,8 @@ uint32_t MappingInfo::init_prot() const {
 // ----------------------------------------------------------------------------
 // DyldSharedCache/SubCache.hpp
 // ----------------------------------------------------------------------------
+SubCache::Iterator::Iterator() = default;
+
 SubCache::Iterator::Iterator(std::unique_ptr<details::SubCacheIt>) {}

 SubCache::Iterator::Iterator(SubCache::Iterator&&) noexcept {}
@@ -354,7 +387,17 @@ bool operator==(const SubCache::Iterator&, const SubCache::Iterator&) {
   return false;
 }

-std::unique_ptr<SubCache> SubCache::Iterator::operator*() const {
+void SubCache::Iterator::load() const {}
+
+const SubCache& SubCache::Iterator::operator*() const {
+  return *cached_;
+}
+
+const SubCache* SubCache::Iterator::operator->() const {
+  return nullptr;
+}
+
+std::unique_ptr<SubCache> SubCache::Iterator::yield() {
   return nullptr;
 }

@@ -381,4 +424,6 @@ std::ostream& operator<<(std::ostream& os, const SubCache&) {
   return os;
 }

+// NOLINTEND
+
 }
diff --git a/deps/LIEF/src/endianness_support.cpp b/deps/LIEF/src/endianness_support.cpp
index 427d8d89aae..48ddae87ca4 100644
--- a/deps/LIEF/src/endianness_support.cpp
+++ b/deps/LIEF/src/endianness_support.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2021 - 2025 R. Thomas
- * Copyright 2021 - 2025 Quarkslab
+/* Copyright 2021 - 2026 R. Thomas
+ * Copyright 2021 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -17,10 +17,10 @@

 #include "intmem.h"

-#define TMPL_DECL(T)              \
-  template<> void                 \
-  swap_endian<T>(T* u) {          \
-    *u = swap_integer_endian(*u); \
+#define TMPL_DECL(T)                                                              \
+  template<>                                                                      \
+  void swap_endian<T>(T * u) {                                                    \
+    *u = swap_integer_endian(*u);                                                 \
   }

 namespace LIEF {
diff --git a/deps/LIEF/src/errors.cpp b/deps/LIEF/src/errors.cpp
index ec0ab59a6e4..9507998eb18 100644
--- a/deps/LIEF/src/errors.cpp
+++ b/deps/LIEF/src/errors.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2021 - 2025 R. Thomas
- * Copyright 2021 - 2025 Quarkslab
+/* Copyright 2021 - 2026 R. Thomas
+ * Copyright 2021 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -13,26 +13,37 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
+#define LIEF_ERRORS_IMPL
 #include "LIEF/errors.hpp"

+template class tl::expected<LIEF::ok_t, lief_errors>;
+template class LIEF::result<LIEF::ok_t>;
+template class tl::expected<uint64_t, lief_errors>;
+template class LIEF::result<uint64_t>;
+template class tl::expected<uint32_t, lief_errors>;
+template class LIEF::result<uint32_t>;
+template class tl::expected<std::string, lief_errors>;
+template class LIEF::result<std::string>;
+
 const char* to_string(lief_errors err) {
   switch (err) {
-    case lief_errors::read_error:               return "read_error";
-    case lief_errors::not_found:                return "not_found";
-    case lief_errors::not_implemented:          return "not_implemented";
-    case lief_errors::not_supported:            return "not_supported";
-    case lief_errors::corrupted:                return "corrupted";
-    case lief_errors::conversion_error:         return "conversion_error";
-    case lief_errors::read_out_of_bound:        return "read_out_of_bound";
-    case lief_errors::asn1_bad_tag:             return "asn1_bad_tag";
-    case lief_errors::file_error:               return "file_error";
-    case lief_errors::file_format_error:        return "file_format_error";
-    case lief_errors::parsing_error:            return "parsing_error";
-    case lief_errors::build_error:              return "build_error";
-    case lief_errors::data_too_large:           return "data_too_large";
+    case lief_errors::read_error: return "read_error";
+    case lief_errors::not_found: return "not_found";
+    case lief_errors::not_implemented: return "not_implemented";
+    case lief_errors::not_supported: return "not_supported";
+    case lief_errors::corrupted: return "corrupted";
+    case lief_errors::conversion_error: return "conversion_error";
+    case lief_errors::read_out_of_bound: return "read_out_of_bound";
+    case lief_errors::asn1_bad_tag: return "asn1_bad_tag";
+    case lief_errors::file_error: return "file_error";
+    case lief_errors::file_format_error: return "file_format_error";
+    case lief_errors::parsing_error: return "parsing_error";
+    case lief_errors::build_error: return "build_error";
+    case lief_errors::data_too_large: return "data_too_large";
     case lief_errors::require_extended_version: return "require_extended_version";
+    case lief_errors::inconsistent: return "inconsistent";
+    case lief_errors::runtime_error: return "runtime_error";
     default: return "error";
   }
   return "error";
 }
-
diff --git a/deps/LIEF/src/fmt_formatter.hpp b/deps/LIEF/src/fmt_formatter.hpp
index 603c9d9337c..988cc6860d3 100644
--- a/deps/LIEF/src/fmt_formatter.hpp
+++ b/deps/LIEF/src/fmt_formatter.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -18,20 +18,19 @@
 #include <spdlog/fmt/fmt.h>
 #include <spdlog/fmt/ranges.h>

-#define FMT_FORMATTER(T, F)                                          \
-template <typename Char> struct fmt::formatter<T, Char> {            \
-  template <typename ParseContext>                                   \
-  constexpr auto parse(ParseContext& ctx) -> decltype(ctx.begin()) { \
-    return ctx.begin();                                              \
-  }                                                                  \
-  template <typename FormatContext>                                  \
-  auto format(const T& p, FormatContext& ctx) const                  \
-      -> decltype(ctx.out()) {                                       \
-    auto out = ctx.out();                                            \
-    out = detail::write<Char>(out, F(p));                            \
-    return out;                                                      \
-  }                                                                  \
-}
+#define FMT_FORMATTER(T, F)                                                       \
+  template<typename Char>                                                         \
+  struct fmt::formatter<T, Char> {                                                \
+    template<typename ParseContext>                                               \
+    constexpr auto parse(ParseContext& ctx) -> decltype(ctx.begin()) {            \
+      return ctx.begin();                                                         \
+    }                                                                             \
+    template<typename FormatContext>                                              \
+    auto format(const T& p, FormatContext& ctx) const -> decltype(ctx.out()) {    \
+      auto out = ctx.out();                                                       \
+      out = detail::write<Char>(out, F(p));                                       \
+      return out;                                                                 \
+    }                                                                             \
+  }

 #endif
-
diff --git a/deps/LIEF/src/fmt_formatter/error_code.hpp b/deps/LIEF/src/fmt_formatter/error_code.hpp
new file mode 100644
index 00000000000..32f919b7937
--- /dev/null
+++ b/deps/LIEF/src/fmt_formatter/error_code.hpp
@@ -0,0 +1,15 @@
+#pragma once
+
+#include <string>
+#include <system_error>
+
+#include <spdlog/fmt/fmt.h>
+#include <spdlog/fmt/ranges.h>
+
+template<>
+struct fmt::formatter<std::error_code> : fmt::formatter<std::string> {
+  auto format(const std::error_code& ec, format_context& ctx) const {
+    return fmt::format_to(ctx.out(), "{}:{} ({})", ec.category().name(),
+                          ec.value(), ec.message());
+  }
+};
diff --git a/deps/LIEF/src/fmt_formatter/filesystem.hpp b/deps/LIEF/src/fmt_formatter/filesystem.hpp
new file mode 100644
index 00000000000..7d86484f555
--- /dev/null
+++ b/deps/LIEF/src/fmt_formatter/filesystem.hpp
@@ -0,0 +1,14 @@
+#pragma once
+
+#include <filesystem>
+#include <string>
+
+#include <spdlog/fmt/fmt.h>
+#include <spdlog/fmt/ranges.h>
+
+template<>
+struct fmt::formatter<std::filesystem::path> : fmt::formatter<std::string> {
+  auto format(const std::filesystem::path& path, format_context& ctx) const {
+    return fmt::format_to(ctx.out(), "{}", path.generic_string());
+  }
+};
diff --git a/deps/LIEF/src/frozen.hpp b/deps/LIEF/src/frozen.hpp
index f4911383c82..cce33c29651 100644
--- a/deps/LIEF/src/frozen.hpp
+++ b/deps/LIEF/src/frozen.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -16,22 +16,21 @@
 #ifndef LIEF_FROZEN_H
 #define LIEF_FROZEN_H
 #include "LIEF/config.h"
-#include "compiler_support.h"

 #ifdef LIEF_FROZEN_ENABLED
-# include <frozen/map.h>
-# define CONST_MAP(KEY, VAL, NUM) constexpr frozen::map<KEY, VAL, NUM>
-# define STRING_MAP constexpr frozen::map
-# define CONST_MAP_ALT constexpr frozen::map
+  #include <frozen/map.h>
+  #define CONST_MAP(KEY, VAL, NUM) constexpr frozen::map<KEY, VAL, NUM>
+  #define STRING_MAP               constexpr frozen::map
+  #define CONST_MAP_ALT            constexpr frozen::map
 namespace frozen {
-template <class Key, class Value, class... Args>
+template<class Key, class Value, class... Args>
 map(std::pair<Key, Value>, Args...) -> map<Key, Value, sizeof...(Args) + 1>;
 }
 #else // !LIEF_FROZEN_ENABLED
-# include <unordered_map>
-# define CONST_MAP(KEY, VAL, NUM) static const std::unordered_map<KEY, VAL>
-# define STRING_MAP static const std::unordered_map
-# define CONST_MAP_ALT static const std::unordered_map
+  #include <unordered_map>
+  #define CONST_MAP(KEY, VAL, NUM) static const std::unordered_map<KEY, VAL>
+  #define STRING_MAP               static const std::unordered_map
+  #define CONST_MAP_ALT            static const std::unordered_map
 #endif

 #endif
diff --git a/deps/LIEF/src/hash_stream.cpp b/deps/LIEF/src/hash_stream.cpp
index 29b226edfcd..e7dcc2cffe3 100644
--- a/deps/LIEF/src/hash_stream.cpp
+++ b/deps/LIEF/src/hash_stream.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -24,70 +24,72 @@ inline mbedtls_md_context_t* cast(std::unique_ptr<intptr_t>& in) {
 }

 hashstream::hashstream(HASH type) :
-  ctx_{reinterpret_cast<intptr_t*>(new mbedtls_md_context_t{})}
-{
+  ctx_{reinterpret_cast<intptr_t*>(new mbedtls_md_context_t{})} {
   int ret = 0;
   mbedtls_md_init(cast(ctx_));
   switch (type) {
     case HASH::MD5:
-      {
-        const mbedtls_md_info_t* info = mbedtls_md_info_from_type(MBEDTLS_MD_MD5);
-        ret = mbedtls_md_setup(cast(ctx_), info, 0);
-        this->output_.resize(mbedtls_md_get_size(info));
-        break;
-      }
+    {
+      const mbedtls_md_info_t* info = mbedtls_md_info_from_type(MBEDTLS_MD_MD5);
+      ret = mbedtls_md_setup(cast(ctx_), info, 0);
+      this->output_.resize(mbedtls_md_get_size(info));
+      break;
+    }

     case HASH::SHA1:
-      {
-        const mbedtls_md_info_t* info = mbedtls_md_info_from_type(MBEDTLS_MD_SHA1);
-        ret = mbedtls_md_setup(cast(ctx_), info, 0);
-        this->output_.resize(mbedtls_md_get_size(info));
-        break;
-      }
+    {
+      const mbedtls_md_info_t* info = mbedtls_md_info_from_type(MBEDTLS_MD_SHA1);
+      ret = mbedtls_md_setup(cast(ctx_), info, 0);
+      this->output_.resize(mbedtls_md_get_size(info));
+      break;
+    }

     case HASH::SHA224:
-      {
-        const mbedtls_md_info_t* info = mbedtls_md_info_from_type(MBEDTLS_MD_SHA224);
-        ret = mbedtls_md_setup(cast(ctx_), info, 0);
-        this->output_.resize(mbedtls_md_get_size(info));
-        break;
-      }
+    {
+      const mbedtls_md_info_t* info = mbedtls_md_info_from_type(MBEDTLS_MD_SHA224);
+      ret = mbedtls_md_setup(cast(ctx_), info, 0);
+      this->output_.resize(mbedtls_md_get_size(info));
+      break;
+    }

     case HASH::SHA256:
-      {
-        const mbedtls_md_info_t* info = mbedtls_md_info_from_type(MBEDTLS_MD_SHA256);
-        ret = mbedtls_md_setup(cast(ctx_), info, 0);
-        this->output_.resize(mbedtls_md_get_size(info));
-        break;
-      }
+    {
+      const mbedtls_md_info_t* info = mbedtls_md_info_from_type(MBEDTLS_MD_SHA256);
+      ret = mbedtls_md_setup(cast(ctx_), info, 0);
+      this->output_.resize(mbedtls_md_get_size(info));
+      break;
+    }

     case HASH::SHA384:
-      {
-        const mbedtls_md_info_t* info = mbedtls_md_info_from_type(MBEDTLS_MD_SHA384);
-        ret = mbedtls_md_setup(cast(ctx_), info, 0);
-        this->output_.resize(mbedtls_md_get_size(info));
-        break;
-      }
+    {
+      const mbedtls_md_info_t* info = mbedtls_md_info_from_type(MBEDTLS_MD_SHA384);
+      ret = mbedtls_md_setup(cast(ctx_), info, 0);
+      this->output_.resize(mbedtls_md_get_size(info));
+      break;
+    }


     case HASH::SHA512:
-      {
-        const mbedtls_md_info_t* info = mbedtls_md_info_from_type(MBEDTLS_MD_SHA512);
-        ret = mbedtls_md_setup(cast(ctx_), info, 0);
-        this->output_.resize(mbedtls_md_get_size(info));
-        break;
-      }
+    {
+      const mbedtls_md_info_t* info = mbedtls_md_info_from_type(MBEDTLS_MD_SHA512);
+      ret = mbedtls_md_setup(cast(ctx_), info, 0);
+      this->output_.resize(mbedtls_md_get_size(info));
+      break;
+    }
   }
   mbedtls_md_starts(cast(this->ctx_));
   if (ret != 0) {
-    LIEF_WARN("Error while setting up hash function");
+    LIEF_WARN("Failed to set up hash function");
   }
 }

 hashstream& hashstream::write(const uint8_t* s, size_t n) {
   int ret = mbedtls_md_update(cast(this->ctx_), s, n);
   if (ret != 0) {
-    LIEF_WARN("mbedtls_md_update(0x{}, 0x{:x}) failed with retcode: 0x{:x}", reinterpret_cast<uintptr_t>(s), n, ret);
+    LIEF_WARN(
+        "Call to mbedtls_md_update(0x{}, {:#x}) failed with return code {:#x}",
+        reinterpret_cast<uintptr_t>(s), n, ret
+    );
   }
   return *this;
 }
@@ -95,7 +97,7 @@ hashstream& hashstream::write(const uint8_t* s, size_t n) {
 hashstream& hashstream::flush() {
   int ret = mbedtls_md_finish(cast(this->ctx_), this->output_.data());
   if (ret != 0) {
-    LIEF_WARN("mbedtls_md_finish() failed with retcode: 0x{:x}", ret);
+    LIEF_WARN("Call to mbedtls_md_finish() failed with return code {:#x}", ret);
   }
   return *this;
 }
@@ -107,4 +109,3 @@ hashstream::~hashstream() {


 }
-
diff --git a/deps/LIEF/src/hash_stream.hpp b/deps/LIEF/src/hash_stream.hpp
index 4afd3ba4846..e7fc8418fa7 100644
--- a/deps/LIEF/src/hash_stream.hpp
+++ b/deps/LIEF/src/hash_stream.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -32,7 +32,7 @@ class hashstream {
     SHA224,
     SHA256,
     SHA384,
-    SHA512
+    SHA512,
   };
   hashstream(HASH type);

@@ -57,20 +57,21 @@ class hashstream {

   template<typename T>
   hashstream& write(span<const T> s) {
-    static_assert(std::is_same_v<T, uint8_t> || std::is_same_v<T, char>, "Require an integer");
+    static_assert(std::is_same_v<T, uint8_t> || std::is_same_v<T, char>,
+                  "Require an integer");
     return write(reinterpret_cast<const uint8_t*>(s.data()), s.size());
   }

   template<class Integer>
   hashstream& write(Integer integer) {
-    static_assert(std::is_integral<Integer>::value, "Require an integer");
+    static_assert(std::is_integral_v<Integer>, "Require an integer");
     const auto* int_p = reinterpret_cast<const uint8_t*>(&integer);
     return write(int_p, sizeof(Integer));
   }

   template<typename T, size_t size>
   hashstream& write(const std::array<T, size>& t) {
-    static_assert(std::is_integral<T>::value, "Require an integer");
+    static_assert(std::is_integral_v<T>, "Require an integer");
     for (T val : t) {
       write<T>(val);
     }
diff --git a/deps/LIEF/src/internal_utils.cpp b/deps/LIEF/src/internal_utils.cpp
index 3a794ea91dd..80615c29463 100644
--- a/deps/LIEF/src/internal_utils.cpp
+++ b/deps/LIEF/src/internal_utils.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -16,6 +16,7 @@
 #include "internal_utils.hpp"
 #include <ctime>
 #include <chrono>
+#include <mutex>

 namespace LIEF {

@@ -35,7 +36,7 @@ std::string hex_dump_impl(T data, const std::string& sep) {
   std::vector<std::string> hexdigits;
   hexdigits.reserve(data.size());
   std::transform(data.begin(), data.end(), std::back_inserter(hexdigits),
-                 [] (uint8_t x) { return fmt::format("{:02x}", x); });
+                 [](uint8_t x) { return fmt::format("{:02x}", x); });
   return fmt::to_string(fmt::join(hexdigits, sep));
 }

@@ -55,7 +56,7 @@ inline std::string pretty_hex(char c) {
 }

 std::vector<std::string> split(const std::string& input, char c = '\n') {
-  // Not really efficient but does not aim to
+  // Not the most efficient approach, but simplicity is the goal here
   std::stringstream strm(input);
   std::vector<std::string> out;
   std::string element;
@@ -87,9 +88,13 @@ std::string indent(const std::string& input, size_t level) {


 std::string ts_to_str(uint64_t timestamp) {
-  using namespace fmt;
   using namespace std::chrono;
-  system_clock::time_point tp = system_clock::time_point(std::chrono::seconds(timestamp));
+
+  static std::mutex mu;
+  std::scoped_lock lock(mu);
+
+  system_clock::time_point tp =
+      system_clock::time_point(std::chrono::seconds(timestamp));
   std::time_t t = std::chrono::system_clock::to_time_t(tp);
   std::string ts = std::ctime(&t);
   ts.resize(ts.size() - 1);
diff --git a/deps/LIEF/src/internal_utils.hpp b/deps/LIEF/src/internal_utils.hpp
index af66125f06e..6b357c72fe2 100644
--- a/deps/LIEF/src/internal_utils.hpp
+++ b/deps/LIEF/src/internal_utils.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -39,13 +39,12 @@ inline bool is_printable(char c) {
 }

 inline bool is_printable(const std::string& str) {
-  return std::all_of(std::begin(str), std::end(str),
-    [] (char c) { return is_printable(c); }
-  );
+  return std::all_of(str.begin(), str.end(),
+                     [](char c) { return is_printable(c); });
 }

 template<class T>
-inline std::vector<T> as_vector(span<T> s) {
+inline std::vector<std::remove_const_t<T>> as_vector(span<T> s) {
   return std::vector<T>(s.begin(), s.end());
 }

@@ -83,18 +82,18 @@ inline std::string to_hex(const T& container, size_t maxsize = 0) {
   }
   if (count < container.size()) {
     out += "...";
-  } else{
+  } else {
     out.pop_back(); // remove trailing ' '
   }
   return out;
 }

 template<typename HANDLER>
-std::vector<std::string> optimize(const HANDLER& container,
-                                  std::string(* getter)(const typename HANDLER::value_type&),
-                                  size_t& offset_counter,
-                                  std::unordered_map<std::string, size_t> *of_map_p = nullptr)
-{
+std::vector<std::string>
+    optimize(const HANDLER& container,
+             std::string (*getter)(const typename HANDLER::value_type&),
+             size_t& offset_counter,
+             std::unordered_map<std::string, size_t>* of_map_p = nullptr) {
   if (container.empty()) {
     return {};
   }
@@ -103,52 +102,51 @@ std::vector<std::string> optimize(const HANDLER& container,
   std::vector<std::string> string_table_optimized;
   string_table_optimized.reserve(container.size());

-  // reverse all symbol names and sort them so we can merge them in the linear time:
-  // aaa, aadd, aaaa, cca, ca -> aaaa, aaa, acc, ac ddaa
-  std::transform(std::begin(container), std::end(container),
-                 std::inserter(string_table, std::end(string_table)),
-                 getter);
+  // reverse all symbol names and sort them so we can merge them in the linear
+  // time: aaa, aadd, aaaa, cca, ca -> aaaa, aaa, acc, ac ddaa
+  std::transform(container.begin(), container.end(),
+                 std::inserter(string_table, string_table.end()), getter);

-  for (const auto& val: string_table) {
+  for (const auto& val : string_table) {
     string_table_optimized.emplace_back(val);
-    std::reverse(std::begin(string_table_optimized.back()), std::end(string_table_optimized.back()));
+    std::reverse(string_table_optimized.back().begin(),
+                 string_table_optimized.back().end());
   }

-  std::sort(std::begin(string_table_optimized), std::end(string_table_optimized),
-      [] (const std::string& lhs, const std::string& rhs) {
-          bool ret = false;
-          if (lhs.size() > rhs.size()) {
-            auto res = lhs.compare(0, rhs.size(), rhs);
-            ret = (res <= 0);
-          } else {
-            auto res = rhs.compare(0, lhs.size(), lhs);
-            ret = (res > 0);
-          }
-          return ret;
-      }
-  );
-
-  // as all elements that can be merged are adjacent we can just go through the list once
-  // and memorize ones we merged to calculate the offsets later
+  std::sort(string_table_optimized.begin(), string_table_optimized.end(),
+            [](const std::string& lhs, const std::string& rhs) {
+              bool ret = false;
+              if (lhs.size() > rhs.size()) {
+                auto res = lhs.compare(0, rhs.size(), rhs);
+                ret = (res <= 0);
+              } else {
+                auto res = rhs.compare(0, lhs.size(), lhs);
+                ret = (res > 0);
+              }
+              return ret;
+            });
+
+  // as all elements that can be merged are adjacent we can just go through the
+  // list once and memorize ones we merged to calculate the offsets later
   std::unordered_map<std::string, std::string> merged_map;
   size_t to_set_idx = 0, cur_elm_idx = 1;
   for (; cur_elm_idx < string_table_optimized.size(); ++cur_elm_idx) {
-      auto &cur_elm = string_table_optimized[cur_elm_idx];
-      auto &to_set_elm = string_table_optimized[to_set_idx];
-      if (to_set_elm.size() >= cur_elm.size()) {
-          auto ret = to_set_elm.compare(0, cur_elm.size(), cur_elm);
-          if (ret == 0) {
-            // when memorizing reverse back symbol names
-            std::string rev_cur_elm = cur_elm;
-            std::string rev_to_set_elm = to_set_elm;
-            std::reverse(std::begin(rev_cur_elm), std::end(rev_cur_elm));
-            std::reverse(std::begin(rev_to_set_elm), std::end(rev_to_set_elm));
-            merged_map[rev_cur_elm] = rev_to_set_elm;
-            continue;
-          }
+    auto& cur_elm = string_table_optimized[cur_elm_idx];
+    auto& to_set_elm = string_table_optimized[to_set_idx];
+    if (to_set_elm.size() >= cur_elm.size()) {
+      auto ret = to_set_elm.compare(0, cur_elm.size(), cur_elm);
+      if (ret == 0) {
+        // when memorizing reverse back symbol names
+        std::string rev_cur_elm = cur_elm;
+        std::string rev_to_set_elm = to_set_elm;
+        std::reverse(rev_cur_elm.begin(), rev_cur_elm.end());
+        std::reverse(rev_to_set_elm.begin(), rev_to_set_elm.end());
+        merged_map[rev_cur_elm] = rev_to_set_elm;
+        continue;
       }
-      ++to_set_idx;
-      std::swap(string_table_optimized[to_set_idx], cur_elm);
+    }
+    ++to_set_idx;
+    std::swap(string_table_optimized[to_set_idx], cur_elm);
   }
   // if the first one is empty
   if (string_table_optimized[0].empty()) {
@@ -157,25 +155,26 @@ std::vector<std::string> optimize(const HANDLER& container,
   }
   string_table_optimized.resize(to_set_idx + 1);

-  //reverse symbols back and sort them again
-  for (auto &val: string_table_optimized) {
-    std::reverse(std::begin(val), std::end(val));
+  // reverse symbols back and sort them again
+  for (auto& val : string_table_optimized) {
+    std::reverse(val.begin(), val.end());
   }
-  std::sort(std::begin(string_table_optimized), std::end(string_table_optimized));
+  std::sort(string_table_optimized.begin(), string_table_optimized.end());

   if (of_map_p != nullptr) {
     std::unordered_map<std::string, size_t>& offset_map = *of_map_p;
     offset_map[""] = 0;

-    for (const auto &v : string_table_optimized) {
+    for (const auto& v : string_table_optimized) {
       if (!v.empty()) {
         offset_map[v] = offset_counter;
         offset_counter += v.size() + 1;
       }
     }
-    for (const auto &kv : merged_map) {
+    for (const auto& kv : merged_map) {
       if (!kv.first.empty()) {
-        offset_map[kv.first] = offset_map[kv.second] + (kv.second.size() - kv.first.size());
+        offset_map[kv.first] =
+            offset_map[kv.second] + (kv.second.size() - kv.first.size());
       }
     }
   }
@@ -186,15 +185,13 @@ std::vector<std::string> optimize(const HANDLER& container,
 template<class T>
 auto make_empty_iterator() {
   auto begin = std::make_unique<typename T::Iterator::implementation>();
-  auto end = std::make_unique<typename  T::Iterator::implementation>();
-  return make_range<typename T::Iterator>(
-      typename T::Iterator(std::move(begin)),
-      typename T::Iterator(std::move(end))
-  );
+  auto end = std::make_unique<typename T::Iterator::implementation>();
+  return make_range<typename T::Iterator>(typename T::Iterator(std::move(begin)),
+                                          typename T::Iterator(std::move(end)));
 }

 inline bool is_hex_number(const std::string& str) {
-  return std::all_of(std::begin(str), std::end(str), ::isxdigit);
+  return std::all_of(str.begin(), str.end(), ::isxdigit);
 }

 inline std::string hex_str(uint8_t c) {
@@ -204,8 +201,7 @@ inline std::string hex_str(uint8_t c) {
 std::string hex_dump(const std::vector<uint8_t>& data,
                      const std::string& sep = ":");

-std::string hex_dump(span<const uint8_t> data,
-                     const std::string& sep = ":");
+std::string hex_dump(span<const uint8_t> data, const std::string& sep = ":");

 std::string indent(const std::string& input, size_t level);

@@ -214,7 +210,7 @@ inline bool is_digit(char c) {
 }

 inline bool is_digit(const std::string& str) {
-  return std::all_of(str.begin(), str.end(), (bool(*)(char))&is_digit);
+  return std::all_of(str.begin(), str.end(), (bool (*)(char))&is_digit);
 }

 inline bool is_digit(const char* str) {
@@ -227,23 +223,35 @@ inline bool is_digit(const char* str) {
   return true;
 }

+inline uint32_t parse_android_version(const char* field, size_t size) {
+  if (size < 4) {
+    return 0;
+  }
+  if (!is_digit(field[0]) || !is_digit(field[1]) || !is_digit(field[2]) ||
+      field[3] != '\0')
+  {
+    return 0;
+  }
+  return static_cast<uint32_t>(field[0] - '0') * 100 +
+         static_cast<uint32_t>(field[1] - '0') * 10 +
+         static_cast<uint32_t>(field[2] - '0');
+}
+
 std::string ts_to_str(uint64_t timestamp);

-template <size_t N>
+template<size_t N>
 inline std::string uuid_to_str_impl(uint8_t (&uuid)[N]) {
   std::vector<std::string> hexstr;
-  std::transform(std::begin(uuid), std::end(uuid), std::back_inserter(hexstr),
-    [] (uint8_t x) { return fmt::format("{:02x}", x); }
-  );
+  std::transform(uuid.begin(), uuid.end(), std::back_inserter(hexstr),
+                 [](uint8_t x) { return fmt::format("{:02x}", x); });
   return fmt::to_string(fmt::join(hexstr, ":"));
 }

-template <size_t N>
+template<size_t N>
 inline std::string uuid_to_str_impl(const std::array<uint8_t, N>& uuid) {
   std::vector<std::string> hexstr;
-  std::transform(std::begin(uuid), std::end(uuid), std::back_inserter(hexstr),
-    [] (uint8_t x) { return fmt::format("{:02x}", x); }
-  );
+  std::transform(uuid.begin(), uuid.end(), std::back_inserter(hexstr),
+                 [](uint8_t x) { return fmt::format("{:02x}", x); });
   return fmt::to_string(fmt::join(hexstr, ":"));
 }

diff --git a/deps/LIEF/src/intmem.h b/deps/LIEF/src/intmem.h
index e86e3f2a6a4..5817c2d7c91 100644
--- a/deps/LIEF/src/intmem.h
+++ b/deps/LIEF/src/intmem.h
@@ -1,4 +1,4 @@
-/* Copyright 2021 - 2025 R. Thomas
+/* Copyright 2021 - 2026 R. Thomas
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -20,29 +20,28 @@
 #define INTMEM_H

 #if __cplusplus >= 202002L
-#define INTMEM_CE constexpr
-#define INTMEM_CPP20_SUPPORT
+  #define INTMEM_CE constexpr
+  #define INTMEM_CPP20_SUPPORT
 #else
-#define INTMEM_CE
+  #define INTMEM_CE
 #endif

 #include <cstdint>
 #include <cstring>
 #include <type_traits>
 #ifdef INTMEM_CPP20_SUPPORT
-#include <bit>
+  #include <bit>
 #endif

 namespace intmem {

 #ifdef INTMEM_CPP20_SUPPORT
-template <class T>
-static INTMEM_CE T bswap_ce(T V)
-{
+template<class T>
+static INTMEM_CE T bswap_ce(T V) {
   static_assert(std::is_unsigned_v<T>);
   T Ret = 0;
   for (size_t I = 0; I < sizeof(T); ++I) {
-    Ret |= ((V >> ((sizeof(T)-I-1)*8)) & 0xFF) << (I*8);
+    Ret |= ((V >> ((sizeof(T) - I - 1) * 8)) & 0xFF) << (I * 8);
   }
   return Ret;
 }
@@ -50,20 +49,37 @@ static INTMEM_CE T bswap_ce(T V)

 // bswap functions. Uses GCC/clang/MSVC intrinsics.
 #ifdef _MSC_VER
-#include <stdlib.h>
-static uint8_t  bswap_rt(uint8_t V) { return V; }
-static uint16_t bswap_rt(unsigned short V) { return _byteswap_ushort(V); }
-static_assert(sizeof(uint32_t) == sizeof(unsigned long), "unsigned long isn't 32-bit wide!");
-static uint32_t bswap_rt(uint32_t V) { return _byteswap_ulong(V); }
-static uint64_t bswap_rt(uint64_t V) { return _byteswap_uint64(V); }
+  #include <stdlib.h>
+static uint8_t bswap_rt(uint8_t V) {
+  return V;
+}
+static uint16_t bswap_rt(unsigned short V) {
+  return _byteswap_ushort(V);
+}
+static_assert(sizeof(uint32_t) == sizeof(unsigned long),
+              "unsigned long isn't 32-bit wide!");
+static uint32_t bswap_rt(uint32_t V) {
+  return _byteswap_ulong(V);
+}
+static uint64_t bswap_rt(uint64_t V) {
+  return _byteswap_uint64(V);
+}
 #else
-static uint8_t  bswap_rt(uint8_t V) { return V; }
-static uint16_t bswap_rt(uint16_t V) { return __builtin_bswap16(V); }
-static uint32_t bswap_rt(uint32_t V) { return __builtin_bswap32(V); }
-static uint64_t bswap_rt(uint64_t V) { return __builtin_bswap64(V); }
+static uint8_t bswap_rt(uint8_t V) {
+  return V;
+}
+static uint16_t bswap_rt(uint16_t V) {
+  return __builtin_bswap16(V);
+}
+static uint32_t bswap_rt(uint32_t V) {
+  return __builtin_bswap32(V);
+}
+static uint64_t bswap_rt(uint64_t V) {
+  return __builtin_bswap64(V);
+}
 #endif

-template <class T>
+template<class T>
 static INTMEM_CE T bswap(const T V) {
 #ifdef INTMEM_CPP20_SUPPORT
   if (std::is_constant_evaluated()) {
@@ -73,7 +89,9 @@ static INTMEM_CE T bswap(const T V) {
   return bswap_rt(V);
 }

-static INTMEM_CE int8_t  bswap(int8_t V) { return V; }
+static INTMEM_CE int8_t bswap(int8_t V) {
+  return V;
+}
 static INTMEM_CE int16_t bswap(int16_t V) {
 #ifdef INTMEM_CPP20_SUPPORT
   return std::bit_cast<int16_t>(bswap(std::bit_cast<uint16_t>(V)));
@@ -96,64 +114,56 @@ static INTMEM_CE int64_t bswap(int64_t V) {
 #endif
 }

-template <class T>
-static T loadu(const void* Ptr)
-{
+template<class T>
+static T loadu(const void* Ptr) {
   static_assert(std::is_integral<T>::value, "T must be an integer!");
   T Ret;
   memcpy(&Ret, Ptr, sizeof(T));
   return Ret;
 }

-template <class T>
-static void storeu(void* Ptr, T const V)
-{
+template<class T>
+static void storeu(void* Ptr, const T V) {
   static_assert(std::is_integral<T>::value, "T must be an integer!");
   memcpy(Ptr, &V, sizeof(V));
 }

 #if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
-template <class T>
-static T bswap_le(T const v)
-{
+template<class T>
+static T bswap_le(const T v) {
   return v;
 }

-template <class T>
-static T bswap_be(T const v)
-{
+template<class T>
+static T bswap_be(const T v) {
   return bswap(v);
 }
 #elif __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__
-template <class T>
-static T bswap_le(T const v)
-{
+template<class T>
+static T bswap_le(const T v) {
   return bswap(v);
 }

-template <class T>
-static T bswap_be(T const v)
-{
+template<class T>
+static T bswap_be(const T v) {
   return v;
 }
 #else
-#error Unsupported endianess!
+  #error Unsupported endianess!
 #endif

-template <class T>
-static T loadu_le(const void* Ptr)
-{
+template<class T>
+static T loadu_le(const void* Ptr) {
   return loadu_le<T>(reinterpret_cast<const uint8_t*>(Ptr));
 }

-template <class T>
-static INTMEM_CE T loadu_le(const uint8_t* Ptr)
-{
+template<class T>
+static INTMEM_CE T loadu_le(const uint8_t* Ptr) {
 #ifdef INTMEM_CPP20_SUPPORT
   if (std::is_constant_evaluated()) {
     T Ret = 0;
     for (size_t I = 0; I < sizeof(T); ++I) {
-      Ret |= ((T)(Ptr[I])) << (I*8);
+      Ret |= ((T)(Ptr[I])) << (I * 8);
     }
     return Ret;
   }
@@ -161,20 +171,18 @@ static INTMEM_CE T loadu_le(const uint8_t* Ptr)
   return bswap_le(loadu<T>(Ptr));
 }

-template <class T>
-static T loadu_be(const void* Ptr)
-{
+template<class T>
+static T loadu_be(const void* Ptr) {
   return loadu_be<T>(reinterpret_cast<const uint8_t*>(Ptr));
 }

-template <class T>
-static INTMEM_CE T loadu_be(const uint8_t* Ptr)
-{
+template<class T>
+static INTMEM_CE T loadu_be(const uint8_t* Ptr) {
 #ifdef INTMEM_CPP20_SUPPORT
   if (std::is_constant_evaluated()) {
     T Ret = 0;
     for (size_t I = 0; I < sizeof(T); ++I) {
-      Ret |= ((T)Ptr[I]) << ((sizeof(T)-I-1)*8);
+      Ret |= ((T)Ptr[I]) << ((sizeof(T) - I - 1) * 8);
     }
     return Ret;
   }
@@ -182,39 +190,33 @@ static INTMEM_CE T loadu_be(const uint8_t* Ptr)
   return bswap_be(loadu<T>(Ptr));
 }

-template <class T>
-static INTMEM_CE void storeu_le(void* Ptr, T const V)
-{
+template<class T>
+static INTMEM_CE void storeu_le(void* Ptr, const T V) {
   storeu(Ptr, bswap_le(V));
 }

-template <class T>
-static INTMEM_CE void storeu_be(void* Ptr, T const V)
-{
+template<class T>
+static INTMEM_CE void storeu_be(void* Ptr, const T V) {
   storeu(Ptr, bswap_be(V));
 }

-template <class T>
-static INTMEM_CE T load_le(const T* Ptr)
-{
+template<class T>
+static INTMEM_CE T load_le(const T* Ptr) {
   return bswap_le(*Ptr);
 }

-template <class T>
-static INTMEM_CE T load_be(const T* Ptr)
-{
+template<class T>
+static INTMEM_CE T load_be(const T* Ptr) {
   return bswap_be(*Ptr);
 }

-template <class T>
-static INTMEM_CE void store_le(T* Ptr, T const V)
-{
+template<class T>
+static INTMEM_CE void store_le(T* Ptr, const T V) {
   *Ptr = bswap_le(V);
 }

-template <class T>
-static INTMEM_CE void store_be(T* Ptr, T const V)
-{
+template<class T>
+static INTMEM_CE void store_be(T* Ptr, const T V) {
   *Ptr = bswap_be(V);
 }

diff --git a/deps/LIEF/src/iostream.cpp b/deps/LIEF/src/iostream.cpp
index 2e0e7165e3b..8fef45bca55 100644
--- a/deps/LIEF/src/iostream.cpp
+++ b/deps/LIEF/src/iostream.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -22,14 +22,14 @@ size_t vector_iostream::uleb128_size(uint64_t value) {
   do {
     value >>= 7;
     size += sizeof(int8_t);
-  } while(value != 0);
+  } while (value != 0);
   return size;
 }

 size_t vector_iostream::sleb128_size(int64_t value) {
   size_t size = 0;
   int sign = value >> (8 * sizeof(value) - 1);
-  bool is_more;
+  bool is_more = false;
   do {
     size_t byte = value & 0x7F;
     value >>= 7;
@@ -60,7 +60,7 @@ vector_iostream& vector_iostream::write(const uint8_t* s, std::streamsize n) {
 }

 vector_iostream& vector_iostream::write_uleb128(uint64_t value) {
-  uint8_t byte;
+  uint8_t byte = 0;
   do {
     byte = value & 0x7F;
     value &= ~0x7F;
@@ -77,8 +77,8 @@ vector_iostream& vector_iostream::write_uleb128(uint64_t value) {
 vector_iostream& vector_iostream::write_sleb128(int64_t value) {

   bool is_neg = (value < 0);
-  uint8_t byte;
-  bool more;
+  uint8_t byte = 0;
+  bool more = false;
   do {
     byte = value & 0x7F;
     value = value >> 7;
@@ -97,7 +97,8 @@ vector_iostream& vector_iostream::write_sleb128(int64_t value) {
   return *this;
 }

-vector_iostream& vector_iostream::seekp(vector_iostream::off_type p, std::ios_base::seekdir dir) {
+vector_iostream& vector_iostream::seekp(vector_iostream::off_type p,
+                                        std::ios_base::seekdir dir) {
   switch (dir) {
     case std::ios_base::beg: current_pos_ = p; return *this;
     case std::ios_base::end: return *this;
@@ -108,10 +109,11 @@ vector_iostream& vector_iostream::seekp(vector_iostream::off_type p, std::ios_ba
   return *this;
 }

-vector_iostream& vector_iostream::write(const std::u16string& s, bool with_null_char) {
+vector_iostream& vector_iostream::write(const std::u16string& s,
+                                        bool with_null_char) {
   const size_t nullchar = with_null_char ? 1 : 0;
   const auto pos = static_cast<size_t>(tellp());
-  if (raw_->size() < (pos + s.size() + nullchar)) {
+  if (raw_->size() < pos + (s.size() + nullchar) * sizeof(char16_t)) {
     raw_->resize(pos + (s.size() + nullchar) * sizeof(char16_t));
   }

@@ -134,4 +136,3 @@ vector_iostream& vector_iostream::align(size_t alignment, uint8_t fill) {
   return *this;
 }
 }
-
diff --git a/deps/LIEF/src/json_api.cpp b/deps/LIEF/src/json_api.cpp
index e9b9c7270a7..4e04d224394 100644
--- a/deps/LIEF/src/json_api.cpp
+++ b/deps/LIEF/src/json_api.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -36,7 +36,7 @@
   #endif

   #if defined(LIEF_ART_SUPPORT)
-   #include "ART/json_internal.hpp"
+    #include "ART/json_internal.hpp"
   #endif

   #if defined(LIEF_DEX_SUPPORT)
@@ -48,82 +48,82 @@
   #endif
 #else
   #include "logging.hpp"
-#endif // LIEF_JSON_SUPPORT
+#endif

 namespace LIEF {

 std::string to_json([[maybe_unused]] const Object& v) {
 #if defined(LIEF_JSON_SUPPORT)
   json node;
-#if defined(LIEF_PE_SUPPORT)
+  #if defined(LIEF_PE_SUPPORT)
   PE::JsonVisitor pe_visitor;
   pe_visitor(v);
   json pejson = pe_visitor.get();
   if (pejson.type() != json::value_t::null) {
     node.update(pejson);
   }
-#endif
+  #endif

-#if defined(LIEF_ELF_SUPPORT)
+  #if defined(LIEF_ELF_SUPPORT)
   ELF::JsonVisitor elf_visitor;
   elf_visitor(v);
   json elfjson = elf_visitor.get();
   if (elfjson.type() != json::value_t::null) {
     node.update(elfjson);
   }
-#endif
+  #endif

-#if defined(LIEF_MACHO_SUPPORT)
+  #if defined(LIEF_MACHO_SUPPORT)
   MachO::JsonVisitor macho_visitor;
   macho_visitor(v);
   json machojson = macho_visitor.get();
   if (machojson.type() != json::value_t::null) {
     node.update(machojson);
   }
-#endif
+  #endif


-#if defined(LIEF_OAT_SUPPORT)
+  #if defined(LIEF_OAT_SUPPORT)
   OAT::JsonVisitor oat_visitor;
   oat_visitor(v);
   json oatjson = oat_visitor.get();
   if (oatjson.type() != json::value_t::null) {
     node.update(oatjson);
   }
-#endif
+  #endif


-#if defined(LIEF_ART_SUPPORT)
+  #if defined(LIEF_ART_SUPPORT)
   ART::JsonVisitor art_visitor;
   art_visitor(v);
   json artjson = art_visitor.get();
   if (artjson.type() != json::value_t::null) {
     node.update(artjson);
   }
-#endif
+  #endif

-#if defined(LIEF_DEX_SUPPORT)
+  #if defined(LIEF_DEX_SUPPORT)
   DEX::JsonVisitor dex_visitor;
   dex_visitor(v);
   json dexjson = dex_visitor.get();
   if (dexjson.type() != json::value_t::null) {
     node.update(dexjson);
   }
-#endif
+  #endif


-#if defined(LIEF_VDEX_SUPPORT)
+  #if defined(LIEF_VDEX_SUPPORT)
   VDEX::JsonVisitor vdex_visitor;
   vdex_visitor(v);
   json vdexjson = vdex_visitor.get();
   if (vdexjson.type() != json::value_t::null) {
     node.update(vdexjson);
   }
-#endif
+  #endif

   return node.dump();
 #else /* JSON not enabled */
-  LIEF_WARN("JSON support is not enabled");
+  LIEF_WARN("JSON support not enabled");
   return "";
 #endif
 }
diff --git a/deps/LIEF/src/lief-pch.hpp b/deps/LIEF/src/lief-pch.hpp
new file mode 100644
index 00000000000..9c46b48d01a
--- /dev/null
+++ b/deps/LIEF/src/lief-pch.hpp
@@ -0,0 +1,39 @@
+#include <LIEF/config.h>
+
+#if defined __cplusplus
+  #include "spdlog/spdlog.h"
+  #include <spdlog/fmt/fmt.h>
+  #include <spdlog/fmt/ranges.h>
+
+  #include <string>
+  #include <vector>
+  #include <set>
+  #include <map>
+  #include <unordered_map>
+  #include <array>
+  #include <memory>
+  #include <algorithm>
+  #include <cstdint>
+  #include <cstddef>
+  #include <ostream>
+  #include <sstream>
+
+  #if LIEF_JSON_SUPPORT
+    #if defined(__clang__)
+      #pragma clang diagnostic push
+      #pragma clang diagnostic ignored "-Wunknown-warning-option"
+      #pragma clang diagnostic ignored "-Wlifetime-safety"
+    #endif
+    #ifndef LIEF_NLOHMANN_JSON_EXTERNAL
+      #include "internal/nlohmann/json.hpp"
+    #else
+      #include <nlohmann/json.hpp>
+    #endif
+    #if defined(__clang__)
+      #pragma clang diagnostic pop
+    #endif
+  #endif
+#else
+  #include <stdint.h>
+  #include <stddef.h>
+#endif
diff --git a/deps/LIEF/src/logging.cpp b/deps/LIEF/src/logging.cpp
index 32391624a50..6c8d708054f 100644
--- a/deps/LIEF/src/logging.cpp
+++ b/deps/LIEF/src/logging.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -22,46 +22,48 @@
 #include "spdlog/spdlog.h"

 #if !defined(SPDLOG_FMT_EXTERNAL)
-#include "spdlog/fmt/bundled/args.h"
+  #include "spdlog/fmt/bundled/args.h"
 #else
-#include "fmt/args.h"
+  #include "fmt/args.h"
 #endif

 #include "spdlog/sinks/stdout_color_sinks.h"
 #include "spdlog/sinks/basic_file_sink.h"
-#include "spdlog/sinks/android_sink.h"

-namespace LIEF {
-namespace logging {
+#if defined(__ANDROID__)
+  #include "spdlog/sinks/android_sink.h"
+#endif
+
+
+namespace LIEF::logging {

+static std::mutex Mutex; // NOLINT

-std::shared_ptr<spdlog::logger>
-  create_basic_logger_mt(const std::string& name, const std::string& path, bool truncate = false)
-{
+std::shared_ptr<spdlog::logger> create_basic_logger_mt(const std::string& name,
+                                                       const std::string& path,
+                                                       bool truncate = false) {
   spdlog::filename_t fname(path.begin(), path.end());
   return spdlog::basic_logger_mt(name, fname, truncate);
 }

-static std::shared_ptr<spdlog::logger> default_logger(
-  [[maybe_unused]] const std::string& name = "LIEF",
-  [[maybe_unused]] const std::string& logcat_tag = "",
-  [[maybe_unused]] const std::string& filepath = "/tmp/lief.log",
-  [[maybe_unused]] bool truncate = true
-)
-{
+static std::shared_ptr<spdlog::logger>
+    default_logger([[maybe_unused]] const std::string& name = "LIEF",
+                   [[maybe_unused]] const std::string& logcat_tag = "",
+                   [[maybe_unused]] const std::string& filepath = "/tmp/lief.log",
+                   [[maybe_unused]] bool truncate = true) {
+  std::scoped_lock lock(Mutex);
   auto& registry = spdlog::details::registry::instance();
   registry.drop(name);

   std::shared_ptr<spdlog::logger> sink;
   if constexpr (current_platform() == PLATFORMS::PLAT_ANDROID) {
 #if defined(__ANDROID__)
-    sink = spdlog::android_logger_mt(name, logcat_tag);
+    sink =
+        spdlog::android_logger_mt(name, !logcat_tag.empty() ? logcat_tag : name);
 #endif
-  }
-  else if (current_platform() == PLATFORMS::PLAT_IOS) {
+  } else if (current_platform() == PLATFORMS::PLAT_IOS) {
     sink = create_basic_logger_mt(name, filepath, truncate);
-  }
-  else {
+  } else {
     sink = spdlog::stderr_color_mt(name);
   }

@@ -75,47 +77,31 @@ LEVEL Logger::get_level() {
   spdlog::level::level_enum lvl = sink_->level();
   switch (lvl) {
     default:
-    case spdlog::level::level_enum::off:
-      return LEVEL::OFF;
-    case spdlog::level::level_enum::trace:
-      return LEVEL::TRACE;
-    case spdlog::level::level_enum::debug:
-      return LEVEL::DEBUG;
-    case spdlog::level::level_enum::info:
-      return LEVEL::INFO;
-    case spdlog::level::level_enum::warn:
-      return LEVEL::WARN;
-    case spdlog::level::level_enum::err:
-      return LEVEL::ERR;
-    case spdlog::level::level_enum::critical:
-      return LEVEL::CRITICAL;
+    case spdlog::level::level_enum::off: return LEVEL::OFF;
+    case spdlog::level::level_enum::trace: return LEVEL::TRACE;
+    case spdlog::level::level_enum::debug: return LEVEL::DEBUG;
+    case spdlog::level::level_enum::info: return LEVEL::INFO;
+    case spdlog::level::level_enum::warn: return LEVEL::WARN;
+    case spdlog::level::level_enum::err: return LEVEL::ERR;
+    case spdlog::level::level_enum::critical: return LEVEL::CRITICAL;
   }
   return LEVEL::TRACE;
 }


 Logger& Logger::instance(const char* name) {
-  static Logger::instances_t instances;
-  static std::mutex mu;
-  std::lock_guard LK(mu);
-
-  if (auto it = instances.find(name); it != instances.end()) {
-    return *it->second;
-  }
+  static instances_t instances;

-  if (instances.empty()) {
-    std::atexit([] {
-      std::lock_guard LK(mu);
-      for (const auto& [name, instance] : instances) {
-        delete instance;
-      }
-      instances.clear();
-    });
+  {
+    std::scoped_lock lock(Mutex);
+    if (auto it = instances.find(name); it != instances.end()) {
+      return *it->second;
+    }
   }

-  auto* impl = new Logger(default_logger(/*name=*/name));
-  instances.insert({name, impl});
-  return *impl;
+  std::unique_ptr<Logger> impl{new Logger(default_logger(/*name=*/name))};
+  std::scoped_lock lock(Mutex);
+  return *instances.insert({name, std::move(impl)}).first->second;
 }

 void Logger::reset() {
@@ -123,6 +109,7 @@ void Logger::reset() {
 }

 Logger& Logger::set_log_path(const std::string& path) {
+  std::scoped_lock lock(Mutex);
   auto& registry = spdlog::details::registry::instance();
   registry.drop(DEFAULT_NAME);
   auto logger = create_basic_logger_mt(DEFAULT_NAME, path, /*truncate=*/true);
@@ -131,7 +118,7 @@ Logger& Logger::set_log_path(const std::string& path) {
 }

 void Logger::set_logger(std::shared_ptr<spdlog::logger> logger) {
-  sink_ = logger;
+  sink_ = std::move(logger);
   sink_->set_pattern("%v");
   sink_->set_level(spdlog::level::warn);
   sink_->flush_on(spdlog::level::warn);
@@ -157,54 +144,54 @@ void Logger::set_level(LEVEL level) {
   }
   switch (level) {
     case LEVEL::OFF:
-      {
-        sink_->set_level(spdlog::level::off);
-        sink_->flush_on(spdlog::level::off);
-        break;
-      }
+    {
+      sink_->set_level(spdlog::level::off);
+      sink_->flush_on(spdlog::level::off);
+      break;
+    }

     case LEVEL::TRACE:
-      {
-        sink_->set_level(spdlog::level::trace);
-        sink_->flush_on(spdlog::level::trace);
-        break;
-      }
+    {
+      sink_->set_level(spdlog::level::trace);
+      sink_->flush_on(spdlog::level::trace);
+      break;
+    }

     case LEVEL::DEBUG:
-      {
-        sink_->set_level(spdlog::level::debug);
-        sink_->flush_on(spdlog::level::debug);
-        break;
-      }
+    {
+      sink_->set_level(spdlog::level::debug);
+      sink_->flush_on(spdlog::level::debug);
+      break;
+    }

     case LEVEL::INFO:
-      {
-        sink_->set_level(spdlog::level::info);
-        sink_->flush_on(spdlog::level::info);
-        break;
-      }
+    {
+      sink_->set_level(spdlog::level::info);
+      sink_->flush_on(spdlog::level::info);
+      break;
+    }

     default:
     case LEVEL::WARN:
-      {
-        sink_->set_level(spdlog::level::warn);
-        sink_->flush_on(spdlog::level::warn);
-        break;
-      }
+    {
+      sink_->set_level(spdlog::level::warn);
+      sink_->flush_on(spdlog::level::warn);
+      break;
+    }

     case LEVEL::ERR:
-      {
-        sink_->set_level(spdlog::level::err);
-        sink_->flush_on(spdlog::level::err);
-        break;
-      }
+    {
+      sink_->set_level(spdlog::level::err);
+      sink_->flush_on(spdlog::level::err);
+      break;
+    }

     case LEVEL::CRITICAL:
-      {
-        sink_->set_level(spdlog::level::critical);
-        sink_->flush_on(spdlog::level::critical);
-        break;
-      }
+    {
+      sink_->set_level(spdlog::level::critical);
+      sink_->flush_on(spdlog::level::critical);
+      break;
+    }
   }
 }

@@ -240,36 +227,34 @@ LEVEL get_level() {

 void log(LEVEL level, const std::string& msg) {
   switch (level) {
-    case LEVEL::OFF:
-      break;
+    case LEVEL::OFF: break;
     case LEVEL::TRACE:
     case LEVEL::DEBUG:
-      {
-        LIEF_DEBUG("{}", msg);
-        break;
-      }
+    {
+      LIEF_DEBUG("{}", msg);
+      break;
+    }
     case LEVEL::INFO:
-      {
-        LIEF_INFO("{}", msg);
-        break;
-      }
+    {
+      LIEF_INFO("{}", msg);
+      break;
+    }
     case LEVEL::WARN:
-      {
-        LIEF_WARN("{}", msg);
-        break;
-      }
+    {
+      LIEF_WARN("{}", msg);
+      break;
+    }
     case LEVEL::CRITICAL:
     case LEVEL::ERR:
-      {
-        LIEF_ERR("{}", msg);
-        break;
-      }
+    {
+      LIEF_ERR("{}", msg);
+      break;
+    }
   }
 }

 void log(LEVEL level, const std::string& fmt,
-         const std::vector<std::string>& args)
-{
+         const std::vector<std::string>& args) {
   fmt::dynamic_format_arg_store<fmt::format_context> store;
   for (const std::string& arg : args) {
     store.push_back(arg);
@@ -301,19 +286,13 @@ void set_path(const char* name, const std::string& path) {

 void log(const char* name, LEVEL level, const std::string& msg) {
   switch (level) {
-    case LEVEL::OFF:
-      return;
+    case LEVEL::OFF: return;
     case LEVEL::TRACE:
-    case LEVEL::DEBUG:
-      return Logger::instance(name).debug("{}", msg);
-    case LEVEL::INFO:
-      return Logger::instance(name).info("{}", msg);
-    case LEVEL::WARN:
-      return Logger::instance(name).warn("{}", msg);
-    case LEVEL::ERR:
-      return Logger::instance(name).err("{}", msg);
-    case LEVEL::CRITICAL:
-      return Logger::instance(name).critial("{}", msg);
+    case LEVEL::DEBUG: return Logger::instance(name).debug("{}", msg);
+    case LEVEL::INFO: return Logger::instance(name).info("{}", msg);
+    case LEVEL::WARN: return Logger::instance(name).warn("{}", msg);
+    case LEVEL::ERR: return Logger::instance(name).err("{}", msg);
+    case LEVEL::CRITICAL: return Logger::instance(name).critial("{}", msg);
   }
 }

@@ -331,6 +310,3 @@ spdlog::logger& get_sink(const char* name) {
 }

 }
-}
-
-
diff --git a/deps/LIEF/src/logging.hpp b/deps/LIEF/src/logging.hpp
index 50fcb45f55b..ef8c885bf98 100644
--- a/deps/LIEF/src/logging.hpp
+++ b/deps/LIEF/src/logging.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -33,39 +33,38 @@
 #define LIEF_WARN(...)  LIEF::logging::Logger::instance().warn(__VA_ARGS__)
 #define LIEF_ERR(...)   LIEF::logging::Logger::instance().err(__VA_ARGS__)

-#define CHECK(X, ...)        \
-  do {                       \
-    if (!(X)) {              \
-      LIEF_ERR(__VA_ARGS__); \
-    }                        \
+#define CHECK(X, ...)                                                             \
+  do {                                                                            \
+    if (!(X)) {                                                                   \
+      LIEF_ERR(__VA_ARGS__);                                                      \
+    }                                                                             \
   } while (false)


-#define CHECK_FATAL(X, ...)  \
-  do {                       \
-    if ((X)) {               \
-      LIEF_ERR(__VA_ARGS__); \
-      std::abort();          \
-    }                        \
+#define CHECK_FATAL(X, ...)                                                       \
+  do {                                                                            \
+    if ((X)) {                                                                    \
+      LIEF_ERR(__VA_ARGS__);                                                      \
+      std::abort();                                                               \
+    }                                                                             \
   } while (false)

-#if defined (LIEF_LOGGING_DEBUG)
-#define LIEF_LOG_LOCATION()                             \
-  do {                                                  \
-    LIEF_DEBUG("{}:{}", __FUNCTION__, __LINE__); \
-  } while (false)
+#if defined(LIEF_LOGGING_DEBUG)
+  #define LIEF_LOG_LOCATION()                                                     \
+    do {                                                                          \
+      LIEF_DEBUG("{}:{}", __FUNCTION__, __LINE__);                                \
+    } while (false)
 #else
-#define LIEF_LOG_LOCATION()
+  #define LIEF_LOG_LOCATION()
 #endif


-namespace LIEF {
-namespace logging {
+namespace LIEF::logging {

 class Logger {
   public:
   static constexpr auto DEFAULT_NAME = "LIEF";
-  using instances_t = std::unordered_map<std::string, Logger*>;
+  using instances_t = std::unordered_map<std::string, std::unique_ptr<Logger>>;
   Logger(const Logger&) = delete;
   Logger& operator=(const Logger&) = delete;

@@ -94,43 +93,43 @@ class Logger {

   void reset();

-  template <typename... Args>
-  void trace(const char *fmt, const Args &... args) {
+  template<typename... Args>
+  void trace(const char* fmt, const Args&... args) {
     if constexpr (lief_logging_support && lief_logging_debug) {
       sink_->trace(fmt::runtime(fmt), args...);
     }
   }

-  template <typename... Args>
-  void debug(const char *fmt, const Args &... args) {
+  template<typename... Args>
+  void debug(const char* fmt, const Args&... args) {
     if constexpr (lief_logging_support && lief_logging_debug) {
       sink_->debug(fmt::runtime(fmt), args...);
     }
   }

-  template <typename... Args>
-  void info(const char *fmt, const Args &... args) {
+  template<typename... Args>
+  void info(const char* fmt, const Args&... args) {
     if constexpr (lief_logging_support) {
       sink_->info(fmt::runtime(fmt), args...);
     }
   }

-  template <typename... Args>
-  void err(const char *fmt, const Args &... args) {
+  template<typename... Args>
+  void err(const char* fmt, const Args&... args) {
     if constexpr (lief_logging_support) {
       sink_->error(fmt::runtime(fmt), args...);
     }
   }

-  template <typename... Args>
-  void warn(const char *fmt, const Args &... args) {
+  template<typename... Args>
+  void warn(const char* fmt, const Args&... args) {
     if constexpr (lief_logging_support) {
       sink_->warn(fmt::runtime(fmt), args...);
     }
   }

-  template <typename... Args>
-  void critial(const char *fmt, const Args &... args) {
+  template<typename... Args>
+  void critial(const char* fmt, const Args&... args) {
     if constexpr (lief_logging_support) {
       sink_->critical(fmt::runtime(fmt), args...);
     }
@@ -145,10 +144,10 @@ class Logger {

   ~Logger() = default;
   Logger() = delete;
+
   private:
   Logger(std::shared_ptr<spdlog::logger> sink) :
-    sink_(sink)
-  {}
+    sink_(std::move(sink)) {}
   Logger(Logger&&) noexcept = default;
   Logger& operator=(Logger&&) noexcept = default;

@@ -156,15 +155,14 @@ class Logger {
 };


-inline void critial(const char *msg) {
+inline void critial(const char* msg) {
   LIEF::logging::log(LIEF::logging::LEVEL::CRITICAL, msg);
 }

-template <typename... Args>
-void critial(const char *fmt, const Args &... args) {
+template<typename... Args>
+void critial(const char* fmt, const Args&... args) {
   LIEF::logging::log(LIEF::logging::LEVEL::CRITICAL,
-    fmt::format(fmt::runtime(fmt), args...)
-  );
+                     fmt::format(fmt::runtime(fmt), args...));
 }

 [[noreturn]] inline void terminate() {
@@ -176,8 +174,8 @@ void critial(const char *fmt, const Args &... args) {
   terminate();
 }

-template <typename... Args>
-[[noreturn]] void fatal_error(const char *fmt, const Args &... args) {
+template<typename... Args>
+[[noreturn]] void fatal_error(const char* fmt, const Args&... args) {
   critial(fmt, args...);
   terminate();
 }
@@ -191,52 +189,52 @@ inline void needs_lief_extended() {
 class Stream : public std::stringbuf {
   public:
   Stream(LEVEL lvl) :
-    lvl_(lvl)
-  {}
+    lvl_(lvl) {}

+  protected:
   int sync() override {
     switch (lvl_) {
-      case LEVEL::OFF:
-        break;
+      case LEVEL::OFF: break;

       case LEVEL::TRACE:
       case LEVEL::DEBUG:
-        {
-          LIEF_DEBUG("{}", str());
-          break;
-        }
+      {
+        LIEF_DEBUG("{}", str());
+        break;
+      }

       case LEVEL::INFO:
-        {
-          LIEF_INFO("{}", str());
-          break;
-        }
+      {
+        LIEF_INFO("{}", str());
+        break;
+      }

       case LEVEL::WARN:
-        {
-          LIEF_WARN("{}", str());
-          break;
-        }
+      {
+        LIEF_WARN("{}", str());
+        break;
+      }
       case LEVEL::ERR:
-        {
-          LIEF_ERR("{}", str());
-          break;
-        }
+      {
+        LIEF_ERR("{}", str());
+        break;
+      }

       case LEVEL::CRITICAL:
-        {
-          critical("{}", str());
-          break;
-        }
+      {
+        critical("{}", str());
+        break;
+      }
     }
     str("");
     return 0;
   }
+
   protected:
   LEVEL lvl_ = LEVEL::OFF;
 };

 }
-}
+

 #endif
diff --git a/deps/LIEF/src/mbedtls_init.cpp b/deps/LIEF/src/mbedtls_init.cpp
new file mode 100644
index 00000000000..be275b3b1af
--- /dev/null
+++ b/deps/LIEF/src/mbedtls_init.cpp
@@ -0,0 +1,43 @@
+/* Copyright 2021 - 2026 R. Thomas
+ *
+ * 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.
+ */
+#include <mutex>
+
+#include "psa/crypto.h"
+#include "threading_alt.h"
+#include "mbedtls_init.hpp"
+#include "logging.hpp"
+
+#if defined(MBEDTLS_THREADING_C)
+  #if defined(MBEDTLS_SELF_TEST)
+    #error "MBEDTLS_SELF_TEST is not thread-safe"
+  #endif
+
+  #if defined(MBEDTLS_ECP_RESTARTABLE)
+    #error "MBEDTLS_ECP_RESTARTABLE is not thread-safe"
+  #endif
+#endif
+
+namespace LIEF {
+void mbedtls_init() {
+  static std::once_flag ONCE;
+  std::call_once(ONCE, [] {
+    mbedtls_init_threading_alt();
+    if (psa_status_t status = psa_crypto_init(); status != PSA_SUCCESS) {
+      LIEF_WARN("psa_crypto_init() didn't succeed: {}", (int)status);
+    }
+    std::atexit(mbedtls_psa_crypto_free);
+  });
+}
+}
diff --git a/deps/LIEF/src/mbedtls_init.hpp b/deps/LIEF/src/mbedtls_init.hpp
new file mode 100644
index 00000000000..6d9f75a4ec1
--- /dev/null
+++ b/deps/LIEF/src/mbedtls_init.hpp
@@ -0,0 +1,19 @@
+/* Copyright 2021 - 2026 R. Thomas
+ *
+ * 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.
+ */
+#pragma once
+
+namespace LIEF {
+void mbedtls_init();
+}
diff --git a/deps/LIEF/src/mbedtls_wraps.h b/deps/LIEF/src/mbedtls_wraps.h
new file mode 100644
index 00000000000..da21f3ac5e2
--- /dev/null
+++ b/deps/LIEF/src/mbedtls_wraps.h
@@ -0,0 +1,155 @@
+/* Copyright 2021 - 2026 R. Thomas
+ *
+ * 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.
+ */
+#ifndef LIEF_MBEDTLS_WRAP_H
+#define LIEF_MBEDTLS_WRAP_H
+#include <cassert>
+
+// NOLINTBEGIN
+// clang-format off
+
+// NOTE(romain) about this file: between version 3.x and version 4.x of MbedTLS,
+// some API have been internalize and are no longer accessible from the public
+// headers. If `LIEF_OPT_MBEDTLS_EXTERNAL` is not set, we could ship this
+// private headers into the zip file given in this repo. Since LIEF also
+// aims to provide control to users on how they want to integrate and link
+// third-party libraries, this solution is not viable.
+//
+// Therefore, I choose to backport private elements in this file to ensure that
+// this works with both modes: LIEF_OPT_MBEDTLS_EXTERNAL=ON/OFF
+// This is not ideal and it introduces an additional cost when upgrading
+// MbedTLS.
+//
+// To ensure that we correctly review this file during a MbedTLS upgrade, I
+// static_asserted the version from which the structures, enums have been taken.
+
+#ifndef MBEDTLS_X509_USE_C
+#define MBEDTLS_X509_USE_C
+#endif
+
+#ifndef MBEDTLS_DECLARE_PRIVATE_IDENTIFIERS
+#define MBEDTLS_DECLARE_PRIVATE_IDENTIFIERS
+#endif
+
+
+#if defined(__cplusplus)
+extern "C" {
+#endif
+
+#include <mbedtls/build_info.h>
+#include <mbedtls/pk.h>
+#include <mbedtls/oid.h>
+
+#if defined(MBEDTLS_THREADING_C)
+#include "mbedtls/threading.h"
+#endif
+
+static_assert(MBEDTLS_VERSION_NUMBER == 0x04000000, "Expecting mbedtls 4.0.0");
+
+// From: tf-psa-crypto/include/mbedtls/private/pk_private.h
+// <pk_private.h>
+typedef enum {
+    MBEDTLS_PK_NONE=0,
+    MBEDTLS_PK_RSA,
+    MBEDTLS_PK_ECKEY,
+    MBEDTLS_PK_ECKEY_DH,
+    MBEDTLS_PK_ECDSA,
+    MBEDTLS_PK_RSA_ALT,
+    MBEDTLS_PK_RSASSA_PSS,
+    MBEDTLS_PK_OPAQUE,
+} mbedtls_pk_type_t;
+
+mbedtls_pk_type_t mbedtls_pk_get_type(const mbedtls_pk_context *ctx);
+// </pk_private.h>
+
+// From: tf-psa-crypto/drivers/builtin/include/mbedtls/private/rsa.h
+// <rsa.h>
+typedef struct mbedtls_rsa_context {
+    int MBEDTLS_PRIVATE(ver);                    /*!<  Reserved for internal purposes.
+                                                  *    Do not set this field in application
+                                                  *    code. Its meaning might change without
+                                                  *    notice. */
+    size_t MBEDTLS_PRIVATE(len);                 /*!<  The size of \p N in Bytes. */
+
+    mbedtls_mpi MBEDTLS_PRIVATE(N);              /*!<  The public modulus. */
+    mbedtls_mpi MBEDTLS_PRIVATE(E);              /*!<  The public exponent. */
+
+    mbedtls_mpi MBEDTLS_PRIVATE(D);              /*!<  The private exponent. */
+    mbedtls_mpi MBEDTLS_PRIVATE(P);              /*!<  The first prime factor. */
+    mbedtls_mpi MBEDTLS_PRIVATE(Q);              /*!<  The second prime factor. */
+
+    mbedtls_mpi MBEDTLS_PRIVATE(DP);             /*!<  <code>D % (P - 1)</code>. */
+    mbedtls_mpi MBEDTLS_PRIVATE(DQ);             /*!<  <code>D % (Q - 1)</code>. */
+    mbedtls_mpi MBEDTLS_PRIVATE(QP);             /*!<  <code>1 / (Q % P)</code>. */
+
+    mbedtls_mpi MBEDTLS_PRIVATE(RN);             /*!<  cached <code>R^2 mod N</code>. */
+
+    mbedtls_mpi MBEDTLS_PRIVATE(RP);             /*!<  cached <code>R^2 mod P</code>. */
+    mbedtls_mpi MBEDTLS_PRIVATE(RQ);             /*!<  cached <code>R^2 mod Q</code>. */
+
+    mbedtls_mpi MBEDTLS_PRIVATE(Vi);             /*!<  The cached blinding value. */
+    mbedtls_mpi MBEDTLS_PRIVATE(Vf);             /*!<  The cached un-blinding value. */
+
+    int MBEDTLS_PRIVATE(padding);                /*!< Selects padding mode:
+                                                  #MBEDTLS_RSA_PKCS_V15 for 1.5 padding and
+                                                  #MBEDTLS_RSA_PKCS_V21 for OAEP or PSS. */
+    int MBEDTLS_PRIVATE(hash_id);                /*!< Hash identifier of mbedtls_md_type_t type,
+                                                    as specified in md.h for use in the MGF
+                                                    mask generating function used in the
+                                                    EME-OAEP and EMSA-PSS encodings. */
+#if defined(MBEDTLS_THREADING_C)
+    /* Invariant: the mutex is initialized iff ver != 0. */
+    mbedtls_threading_mutex_t MBEDTLS_PRIVATE(mutex);    /*!<  Thread-safety mutex. */
+#endif
+} mbedtls_rsa_context;
+
+static inline mbedtls_rsa_context *mbedtls_pk_rsa(const mbedtls_pk_context pk)
+{
+    switch (mbedtls_pk_get_type(&pk)) {
+        case MBEDTLS_PK_RSA:
+            return (mbedtls_rsa_context *) (pk).MBEDTLS_PRIVATE(pk_ctx);
+        default:
+            return NULL;
+    }
+}
+
+int mbedtls_rsa_parse_pubkey(mbedtls_rsa_context *rsa, const unsigned char *key, size_t keylen);
+void mbedtls_rsa_init(mbedtls_rsa_context *ctx);
+void mbedtls_rsa_free(mbedtls_rsa_context *ctx);
+
+int mbedtls_rsa_public(mbedtls_rsa_context *ctx,
+                       const unsigned char *input,
+                       unsigned char *output);
+
+// </rsa.h>
+
+int mbedtls_x509_oid_get_attr_short_name(const mbedtls_asn1_buf *oid, const char **short_name);
+
+inline int rsa_from_pk(mbedtls_pk_context* pk, mbedtls_rsa_context* ctx) {
+  assert(ctx != nullptr);
+  assert(pk != nullptr);
+
+  mbedtls_rsa_init(ctx);
+  return mbedtls_rsa_parse_pubkey(ctx, pk->private_pub_raw,
+                                  pk->private_pub_raw_len);
+}
+
+#if defined(__cplusplus)
+}
+#endif
+
+// NOLINTEND
+// clang-format on
+
+#endif
diff --git a/deps/LIEF/src/messages.hpp b/deps/LIEF/src/messages.hpp
index e8bec51b5c5..6a661a31703 100644
--- a/deps/LIEF/src/messages.hpp
+++ b/deps/LIEF/src/messages.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2021 - 2025 R. Thomas
+/* Copyright 2021 - 2026 R. Thomas
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -16,43 +16,52 @@
 #define LIEF_MSG_H

 #if !defined(LIEF_DOC_PREFIX)
-#define LIEF_DOC_PREFIX "https://lief.re/doc"
+  #define LIEF_DOC_PREFIX "https://lief.re/doc"
 #endif

-#define SUBMISSION_MSG                                                  \
-  "This file can be interesting for improving LIEF. "                   \
-  "If you have the rights to do, please consider submitting this file " \
+#define SUBMISSION_MSG                                                            \
+  "This file can be interesting for improving LIEF. "                             \
+  "If you have the rights to do, please consider submitting this file "           \
   "through a GitHub issue: https://github.com/lief-project/LIEF"

 #if !defined(DEBUG_FMT_NOT_SUPPORTED)
-#define DEBUG_FMT_NOT_SUPPORTED                                         \
-  "DebugInfo are not available for this build.\n"                       \
-  "Please checkout " LIEF_DOC_PREFIX "/latest/extended/intro.html for the details"
+  #define DEBUG_FMT_NOT_SUPPORTED                                                 \
+    "Debug info not available for this build.\n"                                  \
+    "Please checkout " LIEF_DOC_PREFIX                                            \
+    "/latest/extended/intro.html for the details"
 #endif

 #if !defined(OBJC_NOT_SUPPORTED)
-#define OBJC_NOT_SUPPORTED                                         \
-  "ObjC metadata are not available for this build.\n"                       \
-  "Please checkout " LIEF_DOC_PREFIX "/latest/extended/intro.html for the details"
+  #define OBJC_NOT_SUPPORTED                                                      \
+    "ObjC metadata not available for this build.\n"                               \
+    "Please checkout " LIEF_DOC_PREFIX                                            \
+    "/latest/extended/intro.html for the details"
 #endif

 #if !defined(DSC_NOT_SUPPORTED)
-#define DSC_NOT_SUPPORTED                                         \
-  "Dyld shared cache is not available for this build.\n"                       \
-  "Please checkout " LIEF_DOC_PREFIX "/latest/extended/intro.html for the details"
+  #define DSC_NOT_SUPPORTED                                                       \
+    "Dyld shared cache not available for this build.\n"                           \
+    "Please checkout " LIEF_DOC_PREFIX                                            \
+    "/latest/extended/intro.html for the details"
 #endif

-
 #if !defined(ASSEMBLY_NOT_SUPPORTED)
-#define ASSEMBLY_NOT_SUPPORTED                                         \
-  "Assembler/disassembler is not available for this build.\n"                       \
-  "Please checkout " LIEF_DOC_PREFIX "/latest/extended/intro.html for the details"
+  #define ASSEMBLY_NOT_SUPPORTED                                                  \
+    "Assembler/disassembler not available for this build.\n"                      \
+    "Please checkout " LIEF_DOC_PREFIX                                            \
+    "/latest/extended/intro.html for the details"
 #endif

 #if !defined(NEEDS_EXTENDED_MSG)
-#define NEEDS_EXTENDED_MSG                                         \
-  "This function requires the extended version of LIEF.\n"                       \
-  "Please checkout " LIEF_DOC_PREFIX "/latest/extended/intro.html for the details"
+  #define NEEDS_EXTENDED_MSG                                                      \
+    "This function requires the extended version of LIEF.\n"                      \
+    "Please checkout " LIEF_DOC_PREFIX                                            \
+    "/latest/extended/intro.html for the details"
+#endif
+
+#if !defined(LIEF_NEEDS_RUNTIME_MSG)
+  #define LIEF_NEEDS_RUNTIME_MSG                                                  \
+    "This version of LIEF does not contain runtime features."
 #endif


diff --git a/deps/LIEF/src/overflow_check.hpp b/deps/LIEF/src/overflow_check.hpp
index 59aec857e59..b17ce5cd1b0 100644
--- a/deps/LIEF/src/overflow_check.hpp
+++ b/deps/LIEF/src/overflow_check.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/deps/LIEF/src/overload_cast.hpp b/deps/LIEF/src/overload_cast.hpp
index 00f1b6c97d9..ede233e2d81 100644
--- a/deps/LIEF/src/overload_cast.hpp
+++ b/deps/LIEF/src/overload_cast.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -21,23 +21,29 @@ namespace LIEF {

 // From nanobind
 namespace detail {
-template <typename... Args> struct overload_cast_impl {
-    template <typename Return>
-    constexpr auto operator()(Return (*pf)(Args...)) const noexcept
-                              -> decltype(pf) { return pf; }
+template<typename... Args>
+struct overload_cast_impl {
+  template<typename Return>
+  constexpr auto operator()(Return (*pf)(Args...)) const noexcept -> decltype(pf) {
+    return pf;
+  }

-    template <typename Return, typename Class>
-    constexpr auto operator()(Return (Class::*pmf)(Args...), std::false_type = {}) const noexcept
-                              -> decltype(pmf) { return pmf; }
+  template<typename Return, typename Class>
+  constexpr auto operator()(Return (Class::*pmf)(Args...),
+                            std::false_type = {}) const noexcept -> decltype(pmf) {
+    return pmf;
+  }

-    template <typename Return, typename Class>
-    constexpr auto operator()(Return (Class::*pmf)(Args...) const, std::true_type) const noexcept
-                              -> decltype(pmf) { return pmf; }
+  template<typename Return, typename Class>
+  constexpr auto operator()(Return (Class::*pmf)(Args...) const,
+                            std::true_type) const noexcept -> decltype(pmf) {
+    return pmf;
+  }
 };

 }

-template <typename... Args>
+template<typename... Args>
 static constexpr detail::overload_cast_impl<Args...> overload_cast = {};
 }
 #endif
diff --git a/deps/LIEF/src/paging.cpp b/deps/LIEF/src/paging.cpp
index c8affd7b9a9..8ce490be166 100644
--- a/deps/LIEF/src/paging.cpp
+++ b/deps/LIEF/src/paging.cpp
@@ -1,4 +1,4 @@
-/* Copyright 2021 - 2025 R. Thomas
+/* Copyright 2021 - 2026 R. Thomas
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -18,15 +18,15 @@
 #include "LIEF/utils.hpp"

 #if defined(LIEF_ELF_SUPPORT)
-#include "LIEF/ELF/Binary.hpp"
+  #include "LIEF/ELF/Binary.hpp"
 #endif

 #if defined(LIEF_MACHO_SUPPORT)
-#include "LIEF/MachO/Binary.hpp"
+  #include "LIEF/MachO/Binary.hpp"
 #endif

 #if defined(LIEF_PE_SUPPORT)
-#include "LIEF/PE/Binary.hpp"
+  #include "LIEF/PE/Binary.hpp"
 #endif

 namespace LIEF {
@@ -45,40 +45,34 @@ page_sizes_t get_pagesize(const ELF::Binary& elf) {
   // These page sizes are coming from lld's ELF linker.
   //
   // Some architectures can have different page sizes for which
-  // LLVM define a "Common" (`defaultCommonPageSize`) page size and a "Max"
-  // page size (`defaultMaxPageSize`). In LIEF we return the Common page size
+  // LLVM defines a "Common" (`defaultCommonPageSize`) page size and a "Max"
+  // page size (`defaultMaxPageSize`). In LIEF, we return the Common page size
   // and users can still configure another page size with
   // LIEF::ELF::ParserConfig::page_size
+  // NOLINTBEGIN(bugprone-branch-clone)
   switch (elf.header().machine_type()) {
-    default:
-      return {4_KB, 4_KB};
+    default: return {4_KB, 4_KB};

     case ELF::ARCH::X86_64:
     case ELF::ARCH::I386:
-    case ELF::ARCH::AMDGPU:
-      return {4_KB, 4_KB};
+    case ELF::ARCH::AMDGPU: return {4_KB, 4_KB};

     case ELF::ARCH::ARM:
-    case ELF::ARCH::AARCH64:
-      return {4_KB, 64_KB};
+    case ELF::ARCH::AARCH64: return {4_KB, 64_KB};

-    case ELF::ARCH::LOONGARCH:
-      return {16_KB, 64_KB};
+    case ELF::ARCH::LOONGARCH: return {16_KB, 64_KB};

-    case ELF::ARCH::SPARCV9:
-      return {8_KB, 1024_KB};
+    case ELF::ARCH::SPARCV9: return {8_KB, 1024_KB};

-    case ELF::ARCH::HEXAGON:
-      return {4_KB, 64_KB};
+    case ELF::ARCH::HEXAGON: return {4_KB, 64_KB};

     case ELF::ARCH::MIPS:
-    case ELF::ARCH::MIPS_RS3_LE:
-      return {4_KB, 64_KB};
+    case ELF::ARCH::MIPS_RS3_LE: return {4_KB, 64_KB};

     case ELF::ARCH::PPC:
-    case ELF::ARCH::PPC64:
-      return {4_KB, 64_KB};
+    case ELF::ARCH::PPC64: return {4_KB, 64_KB};
   }
+  // NOLINTEND(bugprone-branch-clone)
   return {4_KB, 4_KB};
 }
 #endif
@@ -97,32 +91,26 @@ uint32_t get_pagesize(const PE::Binary& pe) {
     case PE::Header::MACHINE_TYPES::THUMB:
     case PE::Header::MACHINE_TYPES::ARM:
     case PE::Header::MACHINE_TYPES::ARMNT:
-    case PE::Header::MACHINE_TYPES::ARM64:
-      return 4_KB;
+    case PE::Header::MACHINE_TYPES::ARM64: return 4_KB;

-    case PE::Header::MACHINE_TYPES::IA64:
-      return 8_KB;
+    case PE::Header::MACHINE_TYPES::IA64: return 8_KB;

-    default:
-      return DEFAULT_PAGESZ;
+    default: return DEFAULT_PAGESZ;
   }
   return DEFAULT_PAGESZ;
 }
 #endif

-#if defined (LIEF_MACHO_SUPPORT)
+#if defined(LIEF_MACHO_SUPPORT)
 uint32_t get_pagesize(const MachO::Binary& macho) {
   switch (macho.header().cpu_type()) {
     case MachO::Header::CPU_TYPE::X86:
-    case MachO::Header::CPU_TYPE::X86_64:
-      return 4_KB;
+    case MachO::Header::CPU_TYPE::X86_64: return 4_KB;

     case MachO::Header::CPU_TYPE::ARM:
-    case MachO::Header::CPU_TYPE::ARM64:
-      return 16_KB;
+    case MachO::Header::CPU_TYPE::ARM64: return 16_KB;

-    default:
-      return DEFAULT_PAGESZ;
+    default: return DEFAULT_PAGESZ;
   }
   return DEFAULT_PAGESZ;
 }
@@ -143,7 +131,7 @@ uint32_t get_pagesize(const Binary& bin) {
   }
 #endif

-#if defined (LIEF_MACHO_SUPPORT)
+#if defined(LIEF_MACHO_SUPPORT)
   if (MachO::Binary::classof(&bin)) {
     return get_pagesize(*bin.as<MachO::Binary>());
   }
diff --git a/deps/LIEF/src/paging.hpp b/deps/LIEF/src/paging.hpp
index 03ce65f95e3..4624843dc00 100644
--- a/deps/LIEF/src/paging.hpp
+++ b/deps/LIEF/src/paging.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2024 - 2025 R. Thomas
+/* Copyright 2024 - 2026 R. Thomas
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/deps/LIEF/src/platforms/android/version.cpp b/deps/LIEF/src/platforms/android/version.cpp
index 724a3885725..4ca73a51651 100644
--- a/deps/LIEF/src/platforms/android/version.cpp
+++ b/deps/LIEF/src/platforms/android/version.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -15,56 +15,58 @@
  */
 #include "LIEF/platforms/android/version.hpp"
 #include "frozen.hpp"
-namespace LIEF {
-namespace Android {
+
+namespace LIEF::Android {

 const char* code_name(ANDROID_VERSIONS version) {
-  CONST_MAP(ANDROID_VERSIONS, const char*, 8) version2code {
-    { ANDROID_VERSIONS::VERSION_UNKNOWN,  "UNKNOWN"     },
-    { ANDROID_VERSIONS::VERSION_601,      "Marshmallow" },
-    { ANDROID_VERSIONS::VERSION_700,      "Nougat"      },
-    { ANDROID_VERSIONS::VERSION_710,      "Nougat"      },
-    { ANDROID_VERSIONS::VERSION_712,      "Nougat"      },
-    { ANDROID_VERSIONS::VERSION_800,      "Oreo"        },
-    { ANDROID_VERSIONS::VERSION_810,      "Oreo"        },
-    { ANDROID_VERSIONS::VERSION_900,      "Pie"        },
+  CONST_MAP(ANDROID_VERSIONS, const char*, 8)
+  version2code{
+      {ANDROID_VERSIONS::VERSION_UNKNOWN, "UNKNOWN"},
+      {ANDROID_VERSIONS::VERSION_601, "Marshmallow"},
+      {ANDROID_VERSIONS::VERSION_700, "Nougat"},
+      {ANDROID_VERSIONS::VERSION_710, "Nougat"},
+      {ANDROID_VERSIONS::VERSION_712, "Nougat"},
+      {ANDROID_VERSIONS::VERSION_800, "Oreo"},
+      {ANDROID_VERSIONS::VERSION_810, "Oreo"},
+      {ANDROID_VERSIONS::VERSION_900, "Pie"},
   };
-  auto   it  = version2code.find(version);
+  auto it = version2code.find(version);
   return it == version2code.end() ? "UNDEFINED" : it->second;
 }

 const char* version_string(ANDROID_VERSIONS version) {
-  CONST_MAP(ANDROID_VERSIONS, const char*, 8) version2code {
-    { ANDROID_VERSIONS::VERSION_UNKNOWN,  "UNKNOWN" },
-    { ANDROID_VERSIONS::VERSION_601,      "6.0.1"   },
-    { ANDROID_VERSIONS::VERSION_700,      "7.0.0"   },
-    { ANDROID_VERSIONS::VERSION_710,      "7.1.0"   },
-    { ANDROID_VERSIONS::VERSION_712,      "7.1.2"   },
-    { ANDROID_VERSIONS::VERSION_800,      "8.0.0"   },
-    { ANDROID_VERSIONS::VERSION_810,      "8.1.0"   },
-    { ANDROID_VERSIONS::VERSION_900,      "9.0.0"   },
+  CONST_MAP(ANDROID_VERSIONS, const char*, 8)
+  version2code{
+      {ANDROID_VERSIONS::VERSION_UNKNOWN, "UNKNOWN"},
+      {ANDROID_VERSIONS::VERSION_601, "6.0.1"},
+      {ANDROID_VERSIONS::VERSION_700, "7.0.0"},
+      {ANDROID_VERSIONS::VERSION_710, "7.1.0"},
+      {ANDROID_VERSIONS::VERSION_712, "7.1.2"},
+      {ANDROID_VERSIONS::VERSION_800, "8.0.0"},
+      {ANDROID_VERSIONS::VERSION_810, "8.1.0"},
+      {ANDROID_VERSIONS::VERSION_900, "9.0.0"},

   };
-  auto   it  = version2code.find(version);
+  auto it = version2code.find(version);
   return it == version2code.end() ? "UNDEFINED" : it->second;
 }

 const char* to_string(ANDROID_VERSIONS version) {
-  CONST_MAP(ANDROID_VERSIONS, const char*, 8) enumStrings {
-    { ANDROID_VERSIONS::VERSION_UNKNOWN,  "UNKNOWN"     },
-    { ANDROID_VERSIONS::VERSION_601,      "VERSION_601" },
-    { ANDROID_VERSIONS::VERSION_700,      "VERSION_700" },
-    { ANDROID_VERSIONS::VERSION_710,      "VERSION_710" },
-    { ANDROID_VERSIONS::VERSION_712,      "VERSION_712" },
-    { ANDROID_VERSIONS::VERSION_800,      "VERSION_800" },
-    { ANDROID_VERSIONS::VERSION_810,      "VERSION_810" },
-    { ANDROID_VERSIONS::VERSION_900,      "VERSION_900" },
+  CONST_MAP(ANDROID_VERSIONS, const char*, 8)
+  enumStrings{
+      {ANDROID_VERSIONS::VERSION_UNKNOWN, "UNKNOWN"},
+      {ANDROID_VERSIONS::VERSION_601, "VERSION_601"},
+      {ANDROID_VERSIONS::VERSION_700, "VERSION_700"},
+      {ANDROID_VERSIONS::VERSION_710, "VERSION_710"},
+      {ANDROID_VERSIONS::VERSION_712, "VERSION_712"},
+      {ANDROID_VERSIONS::VERSION_800, "VERSION_800"},
+      {ANDROID_VERSIONS::VERSION_810, "VERSION_810"},
+      {ANDROID_VERSIONS::VERSION_900, "VERSION_900"},

   };
-  auto   it  = enumStrings.find(version);
+  auto it = enumStrings.find(version);
   return it == enumStrings.end() ? "UNDEFINED" : it->second;
 }


 }
-}
diff --git a/deps/LIEF/src/profiling.hpp b/deps/LIEF/src/profiling.hpp
index 7bad9c00bd4..e4b5a6a258d 100644
--- a/deps/LIEF/src/profiling.hpp
+++ b/deps/LIEF/src/profiling.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2024 - 2025 R. Thomas
+/* Copyright 2024 - 2026 R. Thomas
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -25,15 +25,15 @@ namespace LIEF {
 class Profile {
   public:
   explicit Profile(std::string msg) :
-    msg_(std::move(msg))
-  {
+    msg_(std::move(msg)) {
     sw_.reset();
   }

   ~Profile() {
-    LIEF_DEBUG("{}: {}",
-        msg_, duration_cast<std::chrono::milliseconds>(sw_.elapsed()));
+    LIEF_DEBUG("{}: {}", msg_,
+               duration_cast<std::chrono::milliseconds>(sw_.elapsed()));
   }
+
   private:
   spdlog::stopwatch sw_;
   std::string msg_;
diff --git a/deps/LIEF/src/range.cpp b/deps/LIEF/src/range.cpp
index 6240e14db83..5915ab45422 100644
--- a/deps/LIEF/src/range.cpp
+++ b/deps/LIEF/src/range.cpp
@@ -1,4 +1,4 @@
-/* Copyright 2024 - 2025 R. Thomas
+/* Copyright 2024 - 2026 R. Thomas
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -17,7 +17,7 @@
 namespace LIEF {

 std::ostream& operator<<(std::ostream& os, const range_t& range) {
-  os << fmt::format("[0x{:06x}, 0x{:06x}]", range.low, range.high);
+  os << fmt::format("[{:#08x}, {:#08x}]", range.low, range.high);
   return os;
 }

diff --git a/deps/LIEF/src/runtime/CMakeLists.txt b/deps/LIEF/src/runtime/CMakeLists.txt
new file mode 100644
index 00000000000..e3c41b9af5d
--- /dev/null
+++ b/deps/LIEF/src/runtime/CMakeLists.txt
@@ -0,0 +1,72 @@
+add_library(LIB_LIEF_RUNTIME OBJECT)
+
+target_include_directories(LIB_LIEF_RUNTIME PRIVATE
+  $<TARGET_PROPERTY:LIB_LIEF,INCLUDE_DIRECTORIES>
+  ${CMAKE_CURRENT_SOURCE_DIR}
+)
+
+target_compile_definitions(LIB_LIEF_RUNTIME PRIVATE
+  $<TARGET_PROPERTY:LIB_LIEF,COMPILE_DEFINITIONS>)
+
+target_compile_options(LIB_LIEF_RUNTIME PRIVATE
+  $<TARGET_PROPERTY:LIB_LIEF,COMPILE_OPTIONS>)
+
+target_link_libraries(LIB_LIEF_RUNTIME PRIVATE lief_spdlog)
+
+set_target_properties(LIB_LIEF_RUNTIME PROPERTIES
+  POSITION_INDEPENDENT_CODE ON
+  VISIBILITY_INLINES_HIDDEN ON
+  CXX_VISIBILITY_PRESET     hidden
+  C_VISIBILITY_PRESET       hidden)
+
+target_compile_features(LIB_LIEF_RUNTIME PRIVATE cxx_std_23)
+
+target_sources(LIB_LIEF PRIVATE $<TARGET_OBJECTS:LIB_LIEF_RUNTIME>)
+
+target_sources(LIB_LIEF_RUNTIME PRIVATE
+  osx/common.cpp
+  windows/common.cpp
+)
+
+add_subdirectory(disassembler)
+
+if (LIEF_RUNTIME)
+  if (LIEF_RUNTIME_PLATFORM_LINUX OR LIEF_RUNTIME_PLATFORM_ANDROID)
+    add_subdirectory(linux_android_shared)
+  endif()
+
+  if (LIEF_RUNTIME_PLATFORM_LINUX)
+    add_subdirectory(linux)
+    target_link_libraries(LIB_LIEF PUBLIC dl)
+  else()
+    target_sources(LIB_LIEF_RUNTIME PRIVATE linux/no_runtime.cpp)
+  endif()
+
+  if (LIEF_RUNTIME_PLATFORM_WINDOWS)
+    add_subdirectory(windows)
+  else()
+    target_sources(LIB_LIEF_RUNTIME PRIVATE windows/no_runtime.cpp)
+  endif()
+
+  if (LIEF_RUNTIME_PLATFORM_ANDROID)
+    add_subdirectory(android)
+  else()
+    target_sources(LIB_LIEF_RUNTIME PRIVATE android/no_runtime.cpp)
+  endif()
+
+  if (LIEF_RUNTIME_PLATFORM_OSX)
+    add_subdirectory(osx)
+  else()
+    target_sources(LIB_LIEF_RUNTIME PRIVATE osx/no_runtime.cpp)
+  endif()
+
+else()
+  target_sources(LIB_LIEF_RUNTIME PRIVATE
+    no_runtime.cpp
+    linux/no_runtime.cpp
+    linux_android_shared/no_runtime.cpp
+    windows/no_runtime.cpp
+    android/no_runtime.cpp
+    osx/no_runtime.cpp
+  )
+endif()
diff --git a/deps/LIEF/src/runtime/android/CMakeLists.txt b/deps/LIEF/src/runtime/android/CMakeLists.txt
new file mode 100644
index 00000000000..5ee5e24f226
--- /dev/null
+++ b/deps/LIEF/src/runtime/android/CMakeLists.txt
@@ -0,0 +1,8 @@
+target_sources(LIB_LIEF_RUNTIME PRIVATE
+  Host.cpp
+  Memory.cpp
+  Module.cpp
+  Process.cpp
+  Property.cpp
+)
+
diff --git a/deps/LIEF/src/runtime/android/Host.cpp b/deps/LIEF/src/runtime/android/Host.cpp
new file mode 100644
index 00000000000..33dc709c08a
--- /dev/null
+++ b/deps/LIEF/src/runtime/android/Host.cpp
@@ -0,0 +1,67 @@
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
+ *
+ * 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.
+ */
+#include "LIEF/runtime/Host.hpp"
+#include "LIEF/runtime/Process.hpp"
+#include "LIEF/runtime/android/Host.hpp"
+
+#include <unistd.h>
+#include <climits>
+#include <android/api-level.h>
+
+namespace LIEF::runtime {
+std::string Host::name() {
+  std::array<char, HOST_NAME_MAX + 1> buffer = {0};
+  if (gethostname(buffer.data(), buffer.size()) == 0) {
+    return {buffer.data()};
+  }
+  return "";
+}
+
+std::string Host::home_dir() {
+  if (auto path = Process::get_env("HOME")) {
+    return *path;
+  }
+  return "";
+}
+
+std::string Host::tmp_dir() {
+  for (const auto& key : {"TMPDIR", "TMP", "TEMP", "TEMPDIR"}) {
+    if (auto path = Process::get_env(key)) {
+      return *path;
+    }
+  }
+  return "/data/local/tmp";
+}
+
+std::string Host::config_dir() {
+  return "";
+}
+
+std::string Host::cache_dir() {
+  return "";
+}
+
+namespace android {
+optional<uint32_t> Host::sdk_version() {
+  int level = android_get_device_api_level();
+  if (level <= 0) {
+    return nullopt();
+  }
+  return (uint32_t)level;
+}
+}
+
+}
diff --git a/deps/LIEF/src/runtime/android/Memory.cpp b/deps/LIEF/src/runtime/android/Memory.cpp
new file mode 100644
index 00000000000..34a795640ae
--- /dev/null
+++ b/deps/LIEF/src/runtime/android/Memory.cpp
@@ -0,0 +1,172 @@
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
+ *
+ * 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.
+ */
+#include "LIEF/runtime/Process.hpp"
+#include "LIEF/runtime/Memory.hpp"
+#include "LIEF/runtime/utils.hpp"
+#include "logging.hpp"
+
+#include <sys/mman.h>
+
+namespace LIEF::runtime {
+
+inline int get_posix_flags(uint32_t flags) {
+  int prot = PROT_NONE;
+  if (flags & Memory::P_READ) {
+    prot |= PROT_READ;
+  }
+  if (flags & Memory::P_WRITE) {
+    prot |= PROT_WRITE;
+  }
+  if (flags & Memory::P_EXEC) {
+    prot |= PROT_EXEC;
+  }
+  return prot;
+}
+
+inline int get_posix_mmap_flags(uint32_t flags) {
+  int ret = 0;
+  if (flags & Memory::MP_PRIVATE) {
+    ret |= MAP_PRIVATE;
+  }
+
+  if (flags & Memory::MP_ANONYMOUS) {
+    ret |= MAP_ANONYMOUS;
+  }
+
+  if (flags & Memory::MP_SHARED) {
+    ret |= MAP_SHARED;
+  }
+
+  if (flags & Memory::MP_FIXED) {
+    ret |= MAP_FIXED;
+  }
+
+  return ret;
+}
+
+std::string Memory::perm_str(uint32_t flags) {
+  std::string flags_str = "---";
+  if (flags & P_READ) {
+    flags_str[0] = 'r';
+  }
+
+  if (flags & P_WRITE) {
+    flags_str[1] = 'w';
+  }
+
+  if (flags & P_EXEC) {
+    flags_str[2] = 'x';
+  }
+  return flags_str;
+}
+
+
+uintptr_t Memory::Chunk::page_start() const {
+  if (!is_valid()) {
+    return 0;
+  }
+  return runtime::page_start(addr(), Process::page_size());
+}
+
+uintptr_t Memory::Chunk::page_end() const {
+  if (!is_valid()) {
+    return 0;
+  }
+  return runtime::page_end(addr() + size(), Process::page_size());
+}
+
+std::string Memory::Chunk::to_string() const {
+  if (!is_valid()) {
+    return "<empty chunk>";
+  }
+
+  if (size() == 0) {
+    return fmt::format("[0x{:016x}, ...]", addr());
+  }
+
+  return fmt::format("[0x{:016x}, 0x{:016x}]", addr(), addr() + size());
+}
+
+optional<Memory::Chunk> Memory::mmap(size_t size, uint32_t flags, uint32_t perms) {
+  if (size == 0) {
+    return nullopt();
+  }
+
+  void* ret = ::mmap(/*__addr=*/nullptr, /*__len=*/size, get_posix_flags(perms),
+                     get_posix_mmap_flags(flags),
+                     /*__fd=*/-1, /*__offset=*/0);
+  if (ret == nullptr || reinterpret_cast<intptr_t>(ret) == -1) {
+    LIEF_ERR("mmap failed: {}", strerror(errno));
+    return nullopt();
+  }
+  return Chunk(ret, size, perms);
+}
+
+ok_error_t Memory::munmap(Chunk& C) {
+  if (!C.is_valid()) {
+    LIEF_DEBUG("Error: {}:{} - Invalid chunk", __FUNCTION__, __LINE__);
+    return make_error_code(lief_errors::runtime_error);
+  }
+
+  if (C.size() == 0) {
+    LIEF_DEBUG("Error: {}:{} - Missing chunk size", __FUNCTION__, __LINE__);
+    return make_error_code(lief_errors::runtime_error);
+  }
+
+  int ret = ::munmap(C.addr_ptr(), C.size());
+  if (ret != 0) {
+    LIEF_ERR("munmap {} failed: {}", C.to_string(), strerror(errno));
+    return make_error_code(lief_errors::runtime_error);
+  }
+
+  C.addr_ = nullptr;
+  C.size_ = 0;
+  return ok();
+}
+
+ok_error_t Memory::mprotect(Memory::Chunk& C, uint32_t flags) {
+  if (!C.is_valid()) {
+    LIEF_DEBUG("Error: {}:{} - Invalid chunk", __FUNCTION__, __LINE__);
+    return make_error_code(lief_errors::runtime_error);
+  }
+
+  if (C.size() == 0) {
+    LIEF_DEBUG("Error: {}:{} - Missing chunk size", __FUNCTION__, __LINE__);
+    return make_error_code(lief_errors::runtime_error);
+  }
+
+  int posix_flags = get_posix_flags(flags);
+  const uintptr_t pstart = C.page_start();
+  const uintptr_t pend = C.page_end();
+  const uintptr_t len = pend - pstart;
+
+  int ret = ::mprotect((void*)pstart, len, posix_flags);
+  if (ret != 0) {
+    LIEF_ERR("mprotect [0x{:016x}, 0x{:016x}] -> {} ({:04b}) failed: {} ({})",
+             pstart, pend, perm_str(flags), posix_flags, ret, strerror(errno));
+    return make_error_code(lief_errors::runtime_error);
+  }
+  return ok();
+}
+
+Memory::Chunk& Memory::Chunk::cache_flush() {
+  const uintptr_t pstart = page_start();
+  const uintptr_t pend = page_end();
+  __builtin___clear_cache((char*)pstart, (char*)pend);
+  return *this;
+}
+
+}
diff --git a/deps/LIEF/src/runtime/android/Module.cpp b/deps/LIEF/src/runtime/android/Module.cpp
new file mode 100644
index 00000000000..11f9de87df4
--- /dev/null
+++ b/deps/LIEF/src/runtime/android/Module.cpp
@@ -0,0 +1,397 @@
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
+ *
+ * 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.
+ */
+#include "LIEF/runtime/android/Module.hpp"
+#include "LIEF/ELF/ParserConfig.hpp"
+#include "LIEF/ELF/Parser.hpp"
+#include "LIEF/ELF/Binary.hpp"
+
+#include <elf.h>
+#include <unistd.h>
+#include <climits>
+#include <link.h>
+#include <cstring>
+#include <dlfcn.h>
+
+#include "logging.hpp"
+
+namespace LIEF::runtime {
+
+namespace details {
+// The concrete implementation of a Android module
+class Module {
+  public:
+  virtual uint64_t imagebase() const = 0;
+  virtual std::string name() const = 0;
+  virtual std::string path() const = 0;
+  virtual std::unique_ptr<Module> clone() const = 0;
+
+  virtual size_t size() const = 0;
+
+  virtual void* handle() const {
+    return nullptr;
+  }
+
+  virtual void* dlsym(const std::string& /*name*/) const {
+    return nullptr;
+  }
+
+  virtual ~Module() = default;
+};
+
+class LinkerModule : public Module {
+  public:
+  LinkerModule() = default;
+  LinkerModule(const dl_phdr_info& info, size_t size) :
+    dlpi_name_(info.dlpi_name == nullptr ? "" : info.dlpi_name) {
+    std::memset(&phdr_info_, 0, sizeof(dl_phdr_info));
+    if (size <= sizeof(dl_phdr_info)) {
+      std::memcpy(&phdr_info_, &info, size);
+    }
+
+    if (dlpi_name_.empty() && imagebase() > 0) {
+      std::array<char, PATH_MAX> exe_path = {0};
+      ssize_t nb_bytes =
+          readlink("/proc/self/exe", exe_path.data(), exe_path.size());
+      if (nb_bytes >= 0) {
+        dlpi_name_ = std::string(exe_path.data(), exe_path.data() + nb_bytes);
+      } else {
+        LIEF_DEBUG("Error: {}:{}", __FUNCTION__, __LINE__);
+      }
+    }
+  }
+
+  LinkerModule(const LinkerModule&) = default;
+  LinkerModule& operator=(const LinkerModule&) = default;
+
+  LinkerModule(LinkerModule&&) noexcept = default;
+  LinkerModule& operator=(LinkerModule&&) noexcept = default;
+
+  std::unique_ptr<Module> clone() const override {
+    return std::make_unique<LinkerModule>(*this);
+  }
+
+  std::string path() const override {
+    if (dlpi_name_.empty()) {
+      return "";
+    }
+    size_t pos = dlpi_name_.find('/');
+    if (pos == std::string::npos) {
+      return "";
+    }
+    return dlpi_name_;
+  }
+
+  std::string name() const override {
+    if (dlpi_name_.empty()) {
+      return "";
+    }
+    size_t pos = dlpi_name_.rfind('/');
+    if (pos == std::string::npos) {
+      return dlpi_name_;
+    }
+    return dlpi_name_.substr(pos + 1);
+  }
+
+  uint64_t imagebase() const override {
+    return phdr_info_.dlpi_addr;
+  }
+
+  size_t size() const override {
+    if (size_ > 0) {
+      return size_;
+    }
+    uint64_t va_start = -1llu;
+    uint64_t va_end = 0;
+    for (size_t i = 0; i < phdr_info_.dlpi_phnum; ++i) {
+      const auto& phdr = phdr_info_.dlpi_phdr[i];
+      if (phdr.p_type != PT_LOAD) {
+        continue;
+      }
+      va_end = std::max<uint64_t>(phdr.p_vaddr + phdr.p_memsz, va_end);
+      va_start = std::min<uint64_t>(phdr.p_vaddr, va_start);
+    }
+    if (va_end > va_start) {
+      size_ = va_end - va_start;
+    }
+    return size_;
+  }
+
+  void* handle() const override {
+    if (handle_ != nullptr) {
+      return handle_;
+    }
+
+    // To avoid the error "error: linker cannot load itself"
+    if (this->name() == "linker64") {
+      return nullptr;
+    }
+
+    handle_ = ::dlopen(dlpi_name_.c_str(), RTLD_NOW);
+    return handle_;
+  }
+
+  void* dlsym(const std::string& name) const override {
+    void* H = handle();
+    if (H == nullptr) {
+      return nullptr;
+    }
+    return ::dlsym(H, name.c_str());
+  }
+
+  ~LinkerModule() override = default;
+
+  private:
+  dl_phdr_info phdr_info_{};
+  std::string dlpi_name_;
+  mutable size_t size_ = 0;
+  mutable void* handle_ = nullptr;
+};
+
+class ModuleIt {
+  public:
+  virtual bool eq(const ModuleIt& other) const = 0;
+  virtual std::unique_ptr<ModuleIt> clone() const = 0;
+  virtual std::unique_ptr<runtime::Module> get() const = 0;
+  virtual void increment() = 0;
+
+  virtual ~ModuleIt() = default;
+};
+
+using linker_modules_t = std::vector<std::unique_ptr<LinkerModule>>;
+
+class LinkerModuleIt : public ModuleIt {
+  public:
+  LinkerModuleIt() = delete;
+  LinkerModuleIt(const LinkerModuleIt&) = default;
+  LinkerModuleIt& operator=(const LinkerModuleIt&) = default;
+
+  LinkerModuleIt(LinkerModuleIt&&) = default;
+  LinkerModuleIt& operator=(LinkerModuleIt&&) = default;
+
+  LinkerModuleIt(linker_modules_t& modules, size_t pos) :
+    pos_(pos),
+    modules_(&modules) {}
+
+  LinkerModuleIt(linker_modules_t& modules) :
+    LinkerModuleIt(modules, 0) {}
+
+  bool eq(const ModuleIt& other) const override {
+    return pos_ == static_cast<const LinkerModuleIt&>(other).pos_;
+  }
+
+  std::unique_ptr<ModuleIt> clone() const override {
+    return std::make_unique<LinkerModuleIt>(*this);
+  }
+
+  std::unique_ptr<runtime::Module> get() const override {
+    assert(pos_ < modules_->size());
+    return std::make_unique<android::Module>(modules_->at(pos_)->clone());
+  }
+
+  void increment() override {
+    ++pos_;
+  }
+
+  ~LinkerModuleIt() override = default;
+
+  private:
+  size_t pos_ = 0;
+  linker_modules_t* modules_ = nullptr;
+};
+
+
+linker_modules_t& linker_modules() {
+  static thread_local linker_modules_t modules;
+  modules.clear();
+
+  dl_iterate_phdr(
+      [](struct dl_phdr_info* info, size_t size, void* data) {
+        auto& modules = *reinterpret_cast<linker_modules_t*>(data);
+        modules.push_back(std::make_unique<LinkerModule>(*info, size));
+        return 0;
+      },
+      &modules
+  );
+
+  return modules;
+}
+
+}
+Module::Iterator::Iterator() = default;
+
+Module::Iterator::Iterator(const Iterator& other) :
+  impl_(other.impl_->clone()) {}
+
+Module::Iterator& Module::Iterator::operator=(const Iterator& other) {
+  if (this != &other) {
+    impl_ = other.impl_->clone();
+    cached_.reset();
+  }
+  return *this;
+}
+
+Module::Iterator::Iterator(Iterator&&) noexcept = default;
+Module::Iterator& Module::Iterator::operator=(Iterator&&) noexcept = default;
+
+Module::Iterator::Iterator(std::unique_ptr<details::ModuleIt> impl) :
+  impl_(std::move(impl)) {}
+
+Module::Iterator::~Iterator() = default;
+
+bool operator==(const Module::Iterator& LHS, const Module::Iterator& RHS) {
+  return LHS.impl_->eq(*RHS.impl_);
+}
+
+Module::Iterator& Module::Iterator::operator++() {
+  impl_->increment();
+  cached_.reset();
+  return *this;
+}
+
+void Module::Iterator::load() const {
+  if (cached_ == nullptr) {
+    cached_ = impl_->get();
+  }
+}
+
+const Module& Module::Iterator::operator*() const {
+  load();
+  return *cached_;
+}
+
+const Module* Module::Iterator::operator->() const {
+  load();
+  return cached_.get();
+}
+
+std::unique_ptr<Module> Module::Iterator::yield() {
+  load();
+  return std::move(cached_);
+}
+
+Module::Module(std::unique_ptr<details::Module> impl) :
+  impl_(std::move(impl)) {}
+
+Module::Module(Module&&) noexcept = default;
+Module& Module::operator=(Module&&) noexcept = default;
+
+Module::~Module() = default;
+
+std::unique_ptr<Module> Module::clone() const {
+  return std::make_unique<android::Module>(impl_->clone());
+}
+
+uint64_t Module::imagebase() const {
+  return impl_->imagebase();
+}
+
+std::string Module::name() const {
+  return impl_->name();
+}
+
+std::string Module::path() const {
+  return impl_->path();
+}
+
+size_t Module::size() const {
+  return impl_->size();
+}
+
+std::string Module::to_string() const {
+  return fmt::format("0x{:08x}: {}", imagebase(), name());
+}
+
+modules_t modules() {
+  using namespace details;
+  linker_modules_t& linker_mods = details::linker_modules();
+  auto begin =
+      runtime::Module::Iterator(std::make_unique<LinkerModuleIt>(linker_mods));
+
+  auto end = runtime::Module::Iterator(
+      std::make_unique<LinkerModuleIt>(linker_mods, linker_mods.size())
+  );
+
+  return make_range(std::move(begin), std::move(end));
+}
+
+namespace android {
+
+std::unique_ptr<Module> dlopen(const std::string& name) {
+  void* hdl = ::dlopen(name.empty() ? nullptr : name.c_str(), RTLD_NOW);
+  if (hdl == nullptr) {
+    return nullptr;
+  }
+  return Module::from_handle(hdl);
+}
+
+std::unique_ptr<Module> Module::from_handle(void* H) {
+  auto range = modules();
+  for (auto it = range.begin(); it != range.end(); ++it) {
+    const auto* android_module = it->as<Module>();
+    assert(android_module != nullptr);
+    void* h = android_module->handle();
+    if (h == H) {
+      std::unique_ptr<runtime::Module> M = it.yield();
+      return std::unique_ptr<Module>(M.release()->as<Module>());
+    }
+    if (h != nullptr) {
+      ::dlclose(h);
+    }
+  }
+  return nullptr;
+}
+
+void* Module::handle() const {
+  return impl_->handle();
+}
+
+void* Module::dlsym(const std::string& name) const {
+  return impl_->dlsym(name);
+}
+
+std::unique_ptr<ELF::Binary> Module::parse_from_path() const {
+  return parse_from_path(ELF::ParserConfig::all());
+}
+
+std::unique_ptr<ELF::Binary>
+    Module::parse_from_path(const ELF::ParserConfig& config) const {
+  const std::string& path = this->path();
+  if (path.empty()) {
+    LIEF_ERR("Can't parse '{}': Path is empty", name());
+    return nullptr;
+  }
+  return ELF::Parser::parse(path, config);
+}
+
+std::unique_ptr<ELF::Binary> Module::parse_from_memory() const {
+  return Module::parse_from_memory(ELF::ParserConfig::all());
+}
+
+std::unique_ptr<ELF::Binary>
+    Module::parse_from_memory(const ELF::ParserConfig& config) const {
+  if (imagebase() == 0) {
+    LIEF_ERR("Can't parse {}: imagebase is null", path());
+    return nullptr;
+  }
+
+  LIEF_DEBUG("Trying to parse {} from memory: [{:#010x}, {:#010x}]", path(),
+             imagebase(), imagebase() + size());
+  return LIEF::ELF::Parser::parse_from_memory(imagebase(), size(), config);
+}
+}
+
+
+}
diff --git a/deps/LIEF/src/runtime/android/Process.cpp b/deps/LIEF/src/runtime/android/Process.cpp
new file mode 100644
index 00000000000..7be3b66a94f
--- /dev/null
+++ b/deps/LIEF/src/runtime/android/Process.cpp
@@ -0,0 +1,100 @@
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
+ *
+ * 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.
+ */
+#include "LIEF/runtime/Process.hpp"
+#include "LIEF/runtime/android/Process.hpp"
+#include "LIEF/runtime/android/Property.hpp"
+
+#include "linux_android_shared/Process.hpp"
+#include "logging.hpp"
+
+#include <array>
+#include <cstdlib>
+#include <unistd.h>
+#include <sys/types.h>
+#include <sys/system_properties.h>
+
+extern char** environ; // NOLINT
+
+namespace LIEF::runtime {
+int32_t Process::pid() {
+  return getpid();
+}
+
+uint32_t Process::tid() {
+  return static_cast<uint32_t>(::gettid());
+}
+
+uint32_t Process::page_size() {
+  static uint32_t PAGESZ = ::getpagesize();
+  return PAGESZ;
+}
+
+optional<std::string> Process::get_env(const std::string& key) {
+  if (const char* value = ::getenv(key.c_str())) {
+    return std::string(value);
+  }
+  return nullopt();
+}
+
+Process::EnvVars Process::get_envs() {
+  EnvVars out;
+  for (char** env = environ; *env != nullptr; ++env) {
+    std::string env_str = *env;
+    size_t pos = env_str.find('=');
+    if (pos == std::string::npos) {
+      LIEF_DEBUG("Error: can't find '=' delimiter in {}", env_str);
+      continue;
+    }
+    std::string key = env_str.substr(0, pos);
+    std::string value = env_str.substr(pos + 1);
+    out.vars.insert({key, value});
+  }
+  return out;
+}
+
+namespace android {
+optional<Property> Process::get_system_property(const std::string& name) {
+  const prop_info* pi = __system_property_find(name.c_str());
+  if (pi == nullptr) {
+    return nullopt();
+  }
+  return Property::create_from(*pi);
+}
+
+Process::properties_t Process::properties() {
+  properties_t properties;
+  int ret = __system_property_foreach(
+      [](const prop_info* pi, void* data) {
+        auto& props = *reinterpret_cast<properties_t*>(data);
+        if (pi == nullptr) {
+          return;
+        }
+        props.push_back(Property::create_from(*pi));
+      },
+      &properties
+  );
+  if (ret) {
+    LIEF_WARN("Error while iterating over the system properties");
+  }
+  return properties;
+}
+
+std::string Process::cmdline() {
+  return LIEF::runtime::linux_android::cmdline().value_or("");
+}
+
+}
+}
diff --git a/deps/LIEF/src/runtime/android/Property.cpp b/deps/LIEF/src/runtime/android/Property.cpp
new file mode 100644
index 00000000000..760025ce9c8
--- /dev/null
+++ b/deps/LIEF/src/runtime/android/Property.cpp
@@ -0,0 +1,41 @@
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
+ *
+ * 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.
+ */
+#include "LIEF/runtime/android/Property.hpp"
+#include <sys/system_properties.h>
+#include <format>
+
+namespace LIEF::runtime::android {
+
+Property Property::create_from(const prop_info& pi) {
+  Property result;
+  __system_property_read_callback(
+      &pi,
+      [](void* data, const char* name, const char* value, uint32_t serial) {
+        auto& prop = *reinterpret_cast<Property*>(data);
+        prop.name_ = name;
+        prop.value_ = value;
+        prop.serial_ = serial;
+      },
+      &result
+  );
+  return result;
+}
+
+std::string Property::to_string() const {
+  return std::format("{}: {} ({})", name(), value(), serial());
+}
+
+}
diff --git a/deps/LIEF/src/runtime/android/no_runtime.cpp b/deps/LIEF/src/runtime/android/no_runtime.cpp
new file mode 100644
index 00000000000..7444296f412
--- /dev/null
+++ b/deps/LIEF/src/runtime/android/no_runtime.cpp
@@ -0,0 +1,92 @@
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
+ *
+ * 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.
+ */
+
+#include "LIEF/runtime/android/Module.hpp"
+#include "LIEF/runtime/android/Host.hpp"
+#include "LIEF/runtime/android/Process.hpp"
+#include "LIEF/runtime/android/Property.hpp"
+
+#include "LIEF/ELF/Binary.hpp"
+#include "LIEF/ELF/ParserConfig.hpp"
+
+namespace LIEF::runtime {
+namespace details {
+class ModuleIt {};
+class Module {};
+}
+}
+
+namespace LIEF::runtime::android {
+
+void* Module::handle() const {
+  return nullptr;
+}
+
+std::unique_ptr<Module> Module::from_handle(void* /*H*/) {
+  return nullptr;
+}
+
+void* Module::dlsym(const std::string& /*name*/) const {
+  return nullptr;
+}
+
+std::unique_ptr<ELF::Binary> Module::parse_from_path() const {
+  return nullptr;
+}
+
+std::unique_ptr<ELF::Binary>
+    Module::parse_from_path(const ELF::ParserConfig& /*config*/) const {
+  return nullptr;
+}
+
+std::unique_ptr<ELF::Binary> Module::parse_from_memory() const {
+  return nullptr;
+}
+
+std::unique_ptr<ELF::Binary>
+    Module::parse_from_memory(const ELF::ParserConfig& /*config*/) const {
+  return nullptr;
+}
+
+std::unique_ptr<Module> dlopen(const std::string& /*name*/) {
+  return nullptr;
+}
+
+optional<uint32_t> Host::sdk_version() {
+  return nullopt();
+}
+
+std::string Process::cmdline() {
+  return "";
+}
+
+optional<Property> Process::get_system_property(const std::string& /*name*/) {
+  return nullopt();
+}
+
+Process::properties_t Process::properties() {
+  return {};
+}
+
+std::string Property::to_string() const {
+  return "";
+}
+
+Property Property::create_from(const prop_info& /*pi*/) {
+  return {};
+}
+
+}
diff --git a/deps/LIEF/src/runtime/disassembler/CMakeLists.txt b/deps/LIEF/src/runtime/disassembler/CMakeLists.txt
new file mode 100644
index 00000000000..84c86e9c216
--- /dev/null
+++ b/deps/LIEF/src/runtime/disassembler/CMakeLists.txt
@@ -0,0 +1,9 @@
+if (LIEF_RUNTIME AND LIEF_ASM)
+  target_sources(LIB_LIEF_RUNTIME PRIVATE
+  )
+else()
+  target_sources(LIB_LIEF_RUNTIME PRIVATE
+    no_disassembler.cpp
+    no_assembler.cpp
+  )
+endif()
diff --git a/deps/LIEF/src/runtime/disassembler/disassembler.cpp b/deps/LIEF/src/runtime/disassembler/disassembler.cpp
new file mode 100644
index 00000000000..e69de29bb2d
diff --git a/deps/LIEF/src/runtime/disassembler/no_assembler.cpp b/deps/LIEF/src/runtime/disassembler/no_assembler.cpp
new file mode 100644
index 00000000000..5eee9666a31
--- /dev/null
+++ b/deps/LIEF/src/runtime/disassembler/no_assembler.cpp
@@ -0,0 +1,26 @@
+#include "LIEF/asm/AssemblerConfig.hpp"
+#include "LIEF/asm/Instruction.hpp"
+#include "LIEF/runtime/assembler.hpp"
+
+#include "messages.hpp"
+#include "logging.hpp"
+
+namespace LIEF::runtime {
+std::vector<uint8_t> assemble(uint64_t /*addr*/, const std::string& /*Asm*/,
+                              assembly::AssemblerConfig& /*config*/) {
+  LIEF_ERR(ASSEMBLY_NOT_SUPPORTED);
+  return {};
+}
+
+std::vector<uint8_t> assemble(uint64_t /*address*/, const llvm::MCInst& /*inst*/) {
+  LIEF_ERR(ASSEMBLY_NOT_SUPPORTED);
+  return {};
+}
+
+std::vector<uint8_t> assemble(uint64_t /*address*/,
+                              const std::vector<llvm::MCInst>& /*insts*/) {
+  LIEF_ERR(ASSEMBLY_NOT_SUPPORTED);
+  return {};
+}
+
+}
diff --git a/deps/LIEF/src/runtime/disassembler/no_disassembler.cpp b/deps/LIEF/src/runtime/disassembler/no_disassembler.cpp
new file mode 100644
index 00000000000..a0dedc0be45
--- /dev/null
+++ b/deps/LIEF/src/runtime/disassembler/no_disassembler.cpp
@@ -0,0 +1,24 @@
+#include "LIEF/runtime/Process.hpp"
+#include "LIEF/runtime/disassembler.hpp"
+#include "LIEF/asm/Instruction.hpp"
+
+#include "internal_utils.hpp"
+#include "messages.hpp"
+#include "logging.hpp"
+
+namespace LIEF::assembly::details {
+class Instruction {};
+class InstructionIt {};
+}
+
+namespace LIEF::runtime {
+instructions_it disassemble(uintptr_t /*address*/) {
+  LIEF_ERR(ASSEMBLY_NOT_SUPPORTED);
+  return make_empty_iterator<assembly::Instruction>();
+}
+
+assembly::Engine* Process::default_engine() {
+  return nullptr;
+}
+
+}
diff --git a/deps/LIEF/src/runtime/linux/CMakeLists.txt b/deps/LIEF/src/runtime/linux/CMakeLists.txt
new file mode 100644
index 00000000000..2a57357a71e
--- /dev/null
+++ b/deps/LIEF/src/runtime/linux/CMakeLists.txt
@@ -0,0 +1,8 @@
+target_sources(LIB_LIEF_RUNTIME PRIVATE
+  Host.cpp
+  Memory.cpp
+  Module.cpp
+  Process.cpp
+)
+
+
diff --git a/deps/LIEF/src/runtime/linux/Host.cpp b/deps/LIEF/src/runtime/linux/Host.cpp
new file mode 100644
index 00000000000..70e79a47207
--- /dev/null
+++ b/deps/LIEF/src/runtime/linux/Host.cpp
@@ -0,0 +1,95 @@
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
+ *
+ * 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.
+ */
+#include "LIEF/runtime/Host.hpp"
+#include "LIEF/runtime/Process.hpp"
+#include "LIEF/runtime/linux/Host.hpp"
+
+#include <array>
+#include <unistd.h>
+#include <climits>
+#include <sys/utsname.h>
+
+namespace LIEF::runtime {
+std::string Host::name() {
+  std::array<char, HOST_NAME_MAX + 1> buffer = {0};
+  if (gethostname(buffer.data(), buffer.size()) == 0) {
+    return buffer.data();
+  }
+  return "";
+}
+
+std::string Host::home_dir() {
+  if (auto path = Process::get_env("HOME")) {
+    return *path;
+  }
+  return "";
+}
+
+std::string Host::tmp_dir() {
+  for (const auto& key : {"TMPDIR", "TMP", "TEMP", "TEMPDIR"}) {
+    if (auto path = Process::get_env(key)) {
+      return *path;
+    }
+  }
+  return "/tmp";
+}
+
+std::string Host::config_dir() {
+  if (auto path = Process::get_env("XDG_CONFIG_HOME")) {
+    return *path;
+  }
+
+  return home_dir() + "/.config";
+}
+
+std::string Host::cache_dir() {
+  if (auto path = Process::get_env("XDG_CACHE_HOME")) {
+    return *path;
+  }
+
+  return home_dir() + "/.cache";
+}
+
+namespace Linux {
+
+static const utsname& sys_info() {
+  static utsname SYS_INFO = [] {
+    struct utsname tmp{};
+    uname(&tmp);
+    return tmp;
+  }();
+  return SYS_INFO;
+}
+
+std::string Host::sys_name() {
+  return sys_info().sysname;
+}
+
+std::string Host::sys_release() {
+  return sys_info().release;
+}
+
+std::string Host::sys_version() {
+  return sys_info().version;
+}
+
+std::string Host::hardware() {
+  return sys_info().machine;
+}
+
+}
+
+}
diff --git a/deps/LIEF/src/runtime/linux/Memory.cpp b/deps/LIEF/src/runtime/linux/Memory.cpp
new file mode 100644
index 00000000000..a11ffa8bb22
--- /dev/null
+++ b/deps/LIEF/src/runtime/linux/Memory.cpp
@@ -0,0 +1,173 @@
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
+ *
+ * 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.
+ */
+#include "LIEF/runtime/Process.hpp"
+#include "LIEF/runtime/Memory.hpp"
+#include "LIEF/runtime/utils.hpp"
+#include "logging.hpp"
+
+#include <sys/mman.h>
+
+namespace LIEF::runtime {
+
+inline int get_posix_flags(uint32_t flags) {
+  int prot = PROT_NONE;
+  if (flags & Memory::P_READ) {
+    prot |= PROT_READ;
+  }
+  if (flags & Memory::P_WRITE) {
+    prot |= PROT_WRITE;
+  }
+  if (flags & Memory::P_EXEC) {
+    prot |= PROT_EXEC;
+  }
+  return prot;
+}
+
+inline int get_posix_mmap_flags(uint32_t flags) {
+  int ret = 0;
+  if (flags & Memory::MP_PRIVATE) {
+    ret |= MAP_PRIVATE;
+  }
+
+  if (flags & Memory::MP_ANONYMOUS) {
+    ret |= MAP_ANONYMOUS;
+  }
+
+  if (flags & Memory::MP_SHARED) {
+    ret |= MAP_SHARED;
+  }
+
+  if (flags & Memory::MP_FIXED) {
+    ret |= MAP_FIXED;
+  }
+
+  return ret;
+}
+
+std::string Memory::perm_str(uint32_t flags) {
+  std::string flags_str = "---";
+  if (flags & P_READ) {
+    flags_str[0] = 'r';
+  }
+
+  if (flags & P_WRITE) {
+    flags_str[1] = 'w';
+  }
+
+  if (flags & P_EXEC) {
+    flags_str[2] = 'x';
+  }
+  return flags_str;
+}
+
+
+uintptr_t Memory::Chunk::page_start() const {
+  if (!is_valid()) {
+    return 0;
+  }
+  return runtime::page_start(addr(), Process::page_size());
+}
+
+uintptr_t Memory::Chunk::page_end() const {
+  if (!is_valid()) {
+    return 0;
+  }
+  return runtime::page_end(addr() + size(), Process::page_size());
+}
+
+std::string Memory::Chunk::to_string() const {
+  if (!is_valid()) {
+    return "<empty chunk>";
+  }
+
+  if (size() == 0) {
+    return fmt::format("[0x{:016x}, ...]", addr());
+  }
+
+  return fmt::format("[0x{:016x}, 0x{:016x}]", addr(), addr() + size());
+}
+
+optional<Memory::Chunk> Memory::mmap(size_t size, uint32_t flags, uint32_t perms) {
+  if (size == 0) {
+    return nullopt();
+  }
+
+  void* ret = ::mmap(/*__addr=*/nullptr, /*__len=*/size, get_posix_flags(perms),
+                     get_posix_mmap_flags(flags),
+                     /*__fd=*/-1, /*__offset=*/0);
+  if (ret == nullptr || reinterpret_cast<intptr_t>(ret) == -1) {
+    LIEF_ERR("mmap failed: {}", strerror(errno));
+    return nullopt();
+  }
+  return Chunk(ret, size, perms);
+}
+
+ok_error_t Memory::munmap(Chunk& C) {
+  if (!C.is_valid()) {
+    LIEF_DEBUG("Error: {}:{} - Invalid chunk", __FUNCTION__, __LINE__);
+    return make_error_code(lief_errors::runtime_error);
+  }
+
+  if (C.size() == 0) {
+    LIEF_DEBUG("Error: {}:{} - Missing chunk size", __FUNCTION__, __LINE__);
+    return make_error_code(lief_errors::runtime_error);
+  }
+
+  int ret = ::munmap(C.addr_ptr(), C.size());
+  if (ret != 0) {
+    LIEF_ERR("munmap {} failed: {}", C.to_string(), strerror(errno));
+    return make_error_code(lief_errors::runtime_error);
+  }
+
+  C.addr_ = nullptr;
+  C.size_ = 0;
+  return ok();
+}
+
+ok_error_t Memory::mprotect(Memory::Chunk& C, uint32_t flags) {
+  if (!C.is_valid()) {
+    LIEF_DEBUG("Error: {}:{} - Invalid chunk", __FUNCTION__, __LINE__);
+    return make_error_code(lief_errors::runtime_error);
+  }
+
+  if (C.size() == 0) {
+    LIEF_DEBUG("Error: {}:{} - Missing chunk size", __FUNCTION__, __LINE__);
+    return make_error_code(lief_errors::runtime_error);
+  }
+
+  int posix_flags = get_posix_flags(flags);
+  const uintptr_t pstart = C.page_start();
+  const uintptr_t pend = C.page_end();
+  const uintptr_t len = pend - pstart;
+
+  int ret = ::mprotect(reinterpret_cast<void*>(pstart), len, posix_flags);
+  if (ret != 0) {
+    LIEF_ERR("mprotect [0x{:016x}, 0x{:016x}] -> {} ({:04b}) failed: {} ({})",
+             pstart, pend, perm_str(flags), posix_flags, ret, strerror(errno));
+    return make_error_code(lief_errors::runtime_error);
+  }
+  return ok();
+}
+
+Memory::Chunk& Memory::Chunk::cache_flush() {
+  const uintptr_t pstart = page_start();
+  const uintptr_t pend = page_end();
+  __builtin___clear_cache(reinterpret_cast<char*>(pstart),
+                          reinterpret_cast<char*>(pend));
+  return *this;
+}
+
+}
diff --git a/deps/LIEF/src/runtime/linux/Module.cpp b/deps/LIEF/src/runtime/linux/Module.cpp
new file mode 100644
index 00000000000..0e7eea9375b
--- /dev/null
+++ b/deps/LIEF/src/runtime/linux/Module.cpp
@@ -0,0 +1,484 @@
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
+ *
+ * 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.
+ */
+#include "LIEF/BinaryStream/MemoryStream.hpp"
+#include "LIEF/BinaryStream/FileStream.hpp"
+#include "LIEF/runtime/linux/Module.hpp"
+#include "LIEF/ELF/utils.hpp"
+#include "LIEF/ELF/ParserConfig.hpp"
+#include "LIEF/ELF/Parser.hpp"
+#include "LIEF/ELF/Binary.hpp"
+
+#include "ELF/elf_utils.hpp"
+
+#include <elf.h>
+#include <unistd.h>
+#include <climits>
+#include <link.h>
+#include <cstring>
+#include <dlfcn.h>
+
+#include "logging.hpp"
+
+namespace LIEF::runtime {
+
+namespace details {
+struct link_map {
+  uintptr_t l_addr = 0;
+  const char* l_name = nullptr;
+  uintptr_t l_ld = 0;
+  link_map* l_next = nullptr;
+  link_map* l_prev = nullptr;
+};
+
+
+// The concrete implementation of a Linux module
+class Module {
+  public:
+  virtual uint64_t imagebase() const = 0;
+  virtual std::string name() const = 0;
+  virtual std::string path() const = 0;
+
+  virtual std::unique_ptr<Module> clone() const = 0;
+
+  virtual size_t size() const = 0;
+
+  virtual void* handle() const {
+    return nullptr;
+  }
+
+  virtual void* dlsym(const std::string& /*name*/) const {
+    return nullptr;
+  }
+
+  virtual ~Module() = default;
+};
+
+class LinkerModule : public Module {
+  public:
+  LinkerModule() = default;
+  LinkerModule(const dl_phdr_info& info, size_t size) :
+    phdr_info_{},
+    dlpi_name_(info.dlpi_name == nullptr ? "" : info.dlpi_name) {
+    std::memset(&phdr_info_, 0, sizeof(dl_phdr_info));
+    if (size <= sizeof(dl_phdr_info)) {
+      std::memcpy(&phdr_info_, &info, size);
+    }
+
+    if (dlpi_name_.empty() && imagebase() > 0) {
+      std::array<char, PATH_MAX> exe_path = {0};
+      ssize_t nb_bytes =
+          readlink("/proc/self/exe", exe_path.data(), exe_path.size());
+      if (nb_bytes >= 0) {
+        dlpi_name_ = std::string(exe_path.data(), exe_path.data() + nb_bytes);
+      } else {
+        LIEF_DEBUG("Error: {}:{}", __FUNCTION__, __LINE__);
+      }
+    }
+  }
+
+  LinkerModule(const LinkerModule&) = default;
+  LinkerModule& operator=(const LinkerModule&) = default;
+
+  LinkerModule(LinkerModule&&) noexcept = default;
+  LinkerModule& operator=(LinkerModule&&) noexcept = default;
+
+  std::unique_ptr<Module> clone() const override {
+    return std::make_unique<LinkerModule>(*this);
+  }
+
+  std::string path() const override {
+    if (dlpi_name_.empty()) {
+      return "";
+    }
+    if (dlpi_name_.find('/') == std::string::npos) {
+      return "";
+    }
+    return dlpi_name_;
+  }
+
+  std::string name() const override {
+    if (dlpi_name_.empty()) {
+      return "";
+    }
+    size_t pos = dlpi_name_.rfind('/');
+    if (pos == std::string::npos) {
+      return dlpi_name_;
+    }
+    return dlpi_name_.substr(pos + 1);
+  }
+
+  uint64_t imagebase() const override {
+    return phdr_info_.dlpi_addr;
+  }
+
+  size_t size() const override {
+    if (size_ > 0) {
+      return size_;
+    }
+    uint64_t va_start = -1llu;
+    uint64_t va_end = 0;
+    for (size_t i = 0; i < phdr_info_.dlpi_phnum; ++i) {
+      const auto& phdr = phdr_info_.dlpi_phdr[i];
+      if (phdr.p_type != PT_LOAD) {
+        continue;
+      }
+      va_end = std::max<uint64_t>(phdr.p_vaddr + phdr.p_memsz, va_end);
+      va_start = std::min<uint64_t>(phdr.p_vaddr, va_start);
+    }
+    if (va_end > va_start) {
+      size_ = va_end - va_start;
+    }
+    return size_;
+  }
+
+  void* handle() const override {
+    if (handle_ != nullptr) {
+      return handle_;
+    }
+
+    handle_ = ::dlopen(dlpi_name_.c_str(), RTLD_NOW);
+    return handle_;
+  }
+
+  void* dlsym(const std::string& name) const override {
+    void* H = handle();
+    if (H == nullptr) {
+      return nullptr;
+    }
+    return ::dlsym(H, name.c_str());
+  }
+
+  ~LinkerModule() override = default;
+
+  private:
+  dl_phdr_info phdr_info_{};
+  std::string dlpi_name_;
+  mutable size_t size_ = 0;
+  mutable void* handle_ = nullptr;
+};
+
+class ModuleIt {
+  public:
+  virtual bool eq(const ModuleIt& other) const = 0;
+  virtual std::unique_ptr<ModuleIt> clone() const = 0;
+  virtual std::unique_ptr<runtime::Module> get() const = 0;
+  virtual void increment() = 0;
+
+  virtual ~ModuleIt() = default;
+};
+
+using linker_modules_t = std::vector<std::unique_ptr<LinkerModule>>;
+
+class LinkerModuleIt : public ModuleIt {
+  public:
+  LinkerModuleIt() = delete;
+  LinkerModuleIt(const LinkerModuleIt&) = default;
+  LinkerModuleIt& operator=(const LinkerModuleIt&) = default;
+
+  LinkerModuleIt(LinkerModuleIt&&) = default;
+  LinkerModuleIt& operator=(LinkerModuleIt&&) = default;
+
+  LinkerModuleIt(linker_modules_t& modules, size_t pos) :
+    pos_(pos),
+    modules_(&modules) {}
+
+  LinkerModuleIt(linker_modules_t& modules) :
+    LinkerModuleIt(modules, 0) {}
+
+  bool eq(const ModuleIt& other) const override {
+    return pos_ == static_cast<const LinkerModuleIt&>(other).pos_;
+  }
+
+  std::unique_ptr<ModuleIt> clone() const override {
+    return std::make_unique<LinkerModuleIt>(*this);
+  }
+
+  std::unique_ptr<runtime::Module> get() const override {
+    assert(pos_ < modules_->size());
+    return std::make_unique<Linux::Module>(modules_->at(pos_)->clone());
+  }
+
+  void increment() override {
+    ++pos_;
+  }
+
+  ~LinkerModuleIt() override = default;
+
+  private:
+  size_t pos_ = 0;
+  linker_modules_t* modules_ = nullptr;
+};
+
+
+linker_modules_t& linker_modules() {
+  static thread_local linker_modules_t modules;
+  modules.clear();
+
+  dl_iterate_phdr(
+      [](struct dl_phdr_info* info, size_t size, void* data) {
+        auto& modules = *reinterpret_cast<linker_modules_t*>(data);
+        modules.push_back(std::make_unique<LinkerModule>(*info, size));
+        return 0;
+      },
+      &modules
+  );
+
+  return modules;
+}
+
+}
+
+namespace Linux {
+
+struct elf_file_info_t {
+  uintptr_t imagebase = -1llu;
+  uint64_t end_address = 0;
+  uintptr_t phdr_off = 0;
+  uintptr_t phnum = 0;
+  uintptr_t vsize() const {
+    assert(end_address >= imagebase);
+    return end_address - imagebase;
+  }
+
+  std::string to_string() const {
+    return fmt::format("imagebase={:#010x}, end_address={:#010x}, "
+                       "phdr_off={:#06x} virtual_size={:#06x}",
+                       imagebase, end_address, phdr_off, vsize());
+  }
+};
+
+void* Module::handle() const {
+  return impl_->handle();
+}
+
+void* Module::dlsym(const std::string& name) const {
+  return impl_->dlsym(name);
+}
+
+std::unique_ptr<ELF::Binary> Module::parse_from_path() const {
+  return parse_from_path(ELF::ParserConfig::all());
+}
+
+std::unique_ptr<ELF::Binary>
+    Module::parse_from_path(const ELF::ParserConfig& config) const {
+  const std::string& path = this->path();
+  if (path.empty()) {
+    LIEF_ERR("Can't parse '{}': Path is empty", name());
+    return nullptr;
+  }
+  return ELF::Parser::parse(path, config);
+}
+
+std::unique_ptr<ELF::Binary> Module::parse_from_memory() const {
+  return Module::parse_from_memory(ELF::ParserConfig::all());
+}
+
+std::unique_ptr<ELF::Binary>
+    Module::parse_from_memory(const ELF::ParserConfig& config) const {
+  if (imagebase() == 0) {
+    LIEF_ERR("Can't parse {}: imagebase is null", path());
+    return nullptr;
+  }
+
+  LIEF_DEBUG("Trying to parse {} from memory: [{:#010x}, {:#010x}]", path(),
+             imagebase(), imagebase() + size());
+  return LIEF::ELF::Parser::parse_from_memory(imagebase(), size(), config);
+}
+
+
+std::unique_ptr<Module> dlopen(const std::string& name) {
+  void* hdl = ::dlopen(name.empty() ? nullptr : name.c_str(), RTLD_NOW);
+  if (hdl == nullptr) {
+    return nullptr;
+  }
+  return Module::from_handle(hdl);
+}
+
+std::unique_ptr<Module> Module::from_handle(void* H) {
+  // The handle `H` is an opaque pointer to the internal structure link_map
+  // that is defined in include/link.h.
+  //
+  // According to the comments of this structure, the first attributes are
+  // stable:
+  // > glibc 2.43
+  // > These data structures exist in space used by the run-time dynamic linker;
+  // > modifying them may have disastrous results.
+  if (H == nullptr) {
+    return nullptr;
+  }
+
+  const auto* lmap = reinterpret_cast<const details::link_map*>(H);
+  dl_phdr_info phdr_info{};
+  std::memset(&phdr_info, 0, sizeof(dl_phdr_info));
+  phdr_info.dlpi_name = lmap->l_name;
+
+  // l_addr is NOT the based address of the underlying object but the
+  // *Difference between the address in the ELF file and the addresses in memory.*
+  phdr_info.dlpi_addr = lmap->l_addr;
+  LIEF_DEBUG("link_map.l_addr: {:#08x}", lmap->l_addr);
+  LIEF_DEBUG("link_map.l_name: {}", lmap->l_name);
+
+  std::string filepath = "";
+  if (lmap->l_name != nullptr) {
+    filepath = lmap->l_name;
+  }
+
+  if (filepath.empty()) {
+    LIEF_ERR("Module has an empty file path: can't resolve it from a file");
+    return nullptr;
+  }
+
+  auto stream = LIEF::FileStream::from_file(filepath);
+  if (!stream) {
+    LIEF_ERR("Can't open '{}'", filepath);
+    return nullptr;
+  }
+
+  if (!LIEF::ELF::is_elf(*stream)) {
+    LIEF_ERR("{} is not a valid ELF", filepath);
+    return nullptr;
+  }
+
+  auto info = ELF::get_info(*stream);
+  if (!info) {
+    return nullptr;
+  }
+
+  LIEF_DEBUG("{}: {} (l_addr={:#010x})", filepath, info->to_string(),
+             lmap->l_addr);
+  uintptr_t abs_addr = lmap->l_addr + info->imagebase;
+  LIEF::MemoryStream memstream(abs_addr, 0x100);
+  if (!LIEF::ELF::is_elf(memstream)) {
+    LIEF_ERR("{:#010x} is not a valid ELF", abs_addr);
+    return nullptr;
+  }
+
+  phdr_info.dlpi_addr = abs_addr;
+  phdr_info.dlpi_phnum = info->phnum;
+  phdr_info.dlpi_name = lmap->l_name;
+  uintptr_t dlpi_phdr = info->phdr_off;
+  if (info->phdr_off <= abs_addr) {
+    dlpi_phdr += abs_addr;
+  }
+  phdr_info.dlpi_phdr = reinterpret_cast<const ElfW(Phdr)*>(dlpi_phdr);
+
+  return std::make_unique<Module>(
+      std::make_unique<details::LinkerModule>(phdr_info, sizeof(phdr_info))
+  );
+}
+
+}
+
+Module::Iterator::Iterator() = default;
+
+Module::Iterator::Iterator(const Iterator& other) :
+  impl_(other.impl_->clone()) {}
+
+
+Module::Iterator& Module::Iterator::operator=(const Iterator& other) {
+  if (this != &other) {
+    impl_ = other.impl_->clone();
+    cached_.reset();
+  }
+  return *this;
+}
+
+Module::Iterator::Iterator(Iterator&&) noexcept = default;
+Module::Iterator& Module::Iterator::operator=(Iterator&&) noexcept = default;
+
+Module::Iterator::Iterator(std::unique_ptr<details::ModuleIt> impl) :
+  impl_(std::move(impl)) {}
+
+Module::Iterator::~Iterator() = default;
+
+bool operator==(const Module::Iterator& LHS, const Module::Iterator& RHS) {
+  return LHS.impl_->eq(*RHS.impl_);
+}
+
+Module::Iterator& Module::Iterator::operator++() {
+  impl_->increment();
+  cached_.reset();
+  return *this;
+}
+
+void Module::Iterator::load() const {
+  if (cached_ == nullptr) {
+    cached_ = impl_->get();
+  }
+}
+
+const Module& Module::Iterator::operator*() const {
+  load();
+  return *cached_;
+}
+
+const Module* Module::Iterator::operator->() const {
+  load();
+  return cached_.get();
+}
+
+std::unique_ptr<Module> Module::Iterator::yield() {
+  load();
+  return std::move(cached_);
+}
+
+Module::Module(std::unique_ptr<details::Module> impl) :
+  impl_(std::move(impl)) {}
+
+Module::Module(Module&&) noexcept = default;
+Module& Module::operator=(Module&&) noexcept = default;
+
+Module::~Module() = default;
+
+
+std::unique_ptr<Module> Module::clone() const {
+  return std::make_unique<Linux::Module>(impl_->clone());
+}
+
+uint64_t Module::imagebase() const {
+  return impl_->imagebase();
+}
+
+std::string Module::name() const {
+  return impl_->name();
+}
+
+std::string Module::path() const {
+  return impl_->path();
+}
+
+size_t Module::size() const {
+  return impl_->size();
+}
+
+std::string Module::to_string() const {
+  return fmt::format("{:#08x}: {}", imagebase(), name());
+}
+
+modules_t modules() {
+  using namespace details;
+  linker_modules_t& linker_mods = details::linker_modules();
+  auto begin =
+      runtime::Module::Iterator(std::make_unique<LinkerModuleIt>(linker_mods));
+
+  auto end = runtime::Module::Iterator(
+      std::make_unique<LinkerModuleIt>(linker_mods, linker_mods.size())
+  );
+
+  return make_range(std::move(begin), std::move(end));
+}
+
+}
diff --git a/deps/LIEF/src/runtime/linux/Process.cpp b/deps/LIEF/src/runtime/linux/Process.cpp
new file mode 100644
index 00000000000..1cf36cb98b9
--- /dev/null
+++ b/deps/LIEF/src/runtime/linux/Process.cpp
@@ -0,0 +1,89 @@
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
+ *
+ * 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.
+ */
+#include "LIEF/platforms.hpp"
+#include "LIEF/runtime/Process.hpp"
+#include "LIEF/runtime/linux/Process.hpp"
+
+#include "linux_android_shared/Process.hpp"
+#include "logging.hpp"
+
+#include <cstdlib>
+#include <unistd.h>
+#include <sys/types.h>
+#include <sys/syscall.h>
+
+#if defined(LIEF_PLATFORM_GLIBC)
+  #include <gnu/libc-version.h>
+#endif
+
+// NOLINTNEXTLINE(cppcoreguidelines-avoid-non-const-global-variables)
+extern char** environ;
+
+namespace LIEF::runtime {
+int32_t Process::pid() {
+  return getpid();
+}
+
+uint32_t Process::tid() {
+  return static_cast<uint32_t>(::syscall(SYS_gettid)); // NOLINT
+}
+
+uint32_t Process::page_size() {
+  static uint32_t PAGESZ = ::getpagesize();
+  return PAGESZ;
+}
+
+optional<std::string> Process::get_env(const std::string& key) {
+  if (const char* value = ::getenv(key.c_str())) {
+    return std::string(value);
+  }
+  return nullopt();
+}
+
+
+Process::EnvVars Process::get_envs() {
+  EnvVars out;
+  for (char** env = environ; *env != nullptr; ++env) {
+    std::string env_str = *env;
+    size_t pos = env_str.find('=');
+    if (pos == std::string::npos) {
+      LIEF_DEBUG("Error: can't find '=' delimiter in {}", env_str);
+      continue;
+    }
+    std::string key = env_str.substr(0, pos);
+    std::string value = env_str.substr(pos + 1);
+    out.vars.insert({key, value});
+  }
+  return out;
+}
+
+namespace Linux {
+std::string Process::glibc_version() {
+#if defined(LIEF_PLATFORM_GLIBC)
+  return gnu_get_libc_version();
+#else
+  return "";
+#endif
+}
+
+
+std::string Process::cmdline() {
+  return LIEF::runtime::linux_android::cmdline().value_or("");
+}
+
+}
+
+}
diff --git a/deps/LIEF/src/runtime/linux/no_runtime.cpp b/deps/LIEF/src/runtime/linux/no_runtime.cpp
new file mode 100644
index 00000000000..d1d6908f075
--- /dev/null
+++ b/deps/LIEF/src/runtime/linux/no_runtime.cpp
@@ -0,0 +1,87 @@
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
+ *
+ * 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.
+ */
+#include "LIEF/ELF/Binary.hpp"
+#include "LIEF/runtime/linux/Module.hpp"
+#include "LIEF/runtime/linux/Host.hpp"
+#include "LIEF/runtime/linux/Process.hpp"
+
+namespace LIEF::runtime {
+namespace details {
+class ModuleIt {};
+class Module {};
+}
+}
+
+namespace LIEF::runtime::Linux {
+std::unique_ptr<Module> Module::from_handle(void* /*H*/) {
+  return nullptr;
+}
+
+void* Module::handle() const {
+  return nullptr;
+}
+
+void* Module::dlsym(const std::string& /*name*/) const {
+  return nullptr;
+}
+
+std::unique_ptr<ELF::Binary> Module::parse_from_path() const {
+  return nullptr;
+}
+
+std::unique_ptr<ELF::Binary>
+    Module::parse_from_path(const ELF::ParserConfig& /*config*/) const {
+  return nullptr;
+}
+
+std::unique_ptr<ELF::Binary>
+    Module::parse_from_memory(const ELF::ParserConfig& /*config*/) const {
+  return nullptr;
+}
+
+std::unique_ptr<ELF::Binary> Module::parse_from_memory() const {
+  return nullptr;
+}
+
+std::unique_ptr<Module> dlopen(const std::string& /*name*/) {
+  return nullptr;
+}
+
+std::string Process::cmdline() {
+  return "";
+}
+
+std::string Process::glibc_version() {
+  return "";
+}
+
+std::string Host::sys_name() {
+  return "";
+}
+
+std::string Host::sys_release() {
+  return "";
+}
+
+std::string Host::sys_version() {
+  return "";
+}
+
+std::string Host::hardware() {
+  return "";
+}
+
+}
diff --git a/deps/LIEF/src/runtime/linux_android_shared/CMakeLists.txt b/deps/LIEF/src/runtime/linux_android_shared/CMakeLists.txt
new file mode 100644
index 00000000000..e3980cc1f1c
--- /dev/null
+++ b/deps/LIEF/src/runtime/linux_android_shared/CMakeLists.txt
@@ -0,0 +1,3 @@
+target_sources(LIB_LIEF_RUNTIME PRIVATE
+  Process.cpp
+)
diff --git a/deps/LIEF/src/runtime/linux_android_shared/Process.cpp b/deps/LIEF/src/runtime/linux_android_shared/Process.cpp
new file mode 100644
index 00000000000..8171449a504
--- /dev/null
+++ b/deps/LIEF/src/runtime/linux_android_shared/Process.cpp
@@ -0,0 +1,51 @@
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
+ *
+ * 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.
+ */
+#include "linux_android_shared/Process.hpp"
+#include "logging.hpp"
+#include "fmt_formatter/error_code.hpp"
+#include "fmt_formatter/filesystem.hpp"
+
+#include <filesystem>
+#include <fstream>
+
+namespace LIEF::runtime::linux_android {
+
+optional<std::string> cmdline() {
+  static std::filesystem::path CMDLINE_FS("/proc/cmdline");
+  std::error_code ec;
+  std::uintmax_t fsize = std::filesystem::file_size(CMDLINE_FS, ec);
+  if (ec) {
+    LIEF_ERR("Failed to determine the file size of {} ({})", CMDLINE_FS, ec);
+    return nullopt();
+  }
+
+  std::ifstream ifs(CMDLINE_FS, std::ios_base::binary);
+  if (!ifs) {
+    LIEF_ERR("Failed to open: {}", CMDLINE_FS);
+    return nullopt();
+  }
+
+  std::string content;
+  content.resize_and_overwrite(fsize, [&ifs](char* buff, size_t size) {
+    ifs.read(buff, size);
+    return ifs.gcount();
+  });
+  if (!content.empty() && content.back() == '\n') {
+    content.pop_back();
+  }
+  return content;
+}
+}
diff --git a/deps/LIEF/src/runtime/linux_android_shared/Process.hpp b/deps/LIEF/src/runtime/linux_android_shared/Process.hpp
new file mode 100644
index 00000000000..7bb0a7b7aa4
--- /dev/null
+++ b/deps/LIEF/src/runtime/linux_android_shared/Process.hpp
@@ -0,0 +1,7 @@
+#pragma once
+#include <string>
+#include "LIEF/optional.hpp"
+
+namespace LIEF::runtime::linux_android {
+optional<std::string> cmdline();
+}
diff --git a/deps/LIEF/src/runtime/linux_android_shared/no_runtime.cpp b/deps/LIEF/src/runtime/linux_android_shared/no_runtime.cpp
new file mode 100644
index 00000000000..7a66a7e867a
--- /dev/null
+++ b/deps/LIEF/src/runtime/linux_android_shared/no_runtime.cpp
@@ -0,0 +1,22 @@
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
+ *
+ * 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.
+ */
+#include "linux_android_shared/Process.hpp"
+namespace LIEF::runtime::linux_android {
+
+optional<std::string> cmdline() {
+  return nullopt();
+}
+}
diff --git a/deps/LIEF/src/runtime/no_runtime.cpp b/deps/LIEF/src/runtime/no_runtime.cpp
new file mode 100644
index 00000000000..e648a919b92
--- /dev/null
+++ b/deps/LIEF/src/runtime/no_runtime.cpp
@@ -0,0 +1,202 @@
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
+ *
+ * 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.
+ */
+#include "LIEF/runtime/Process.hpp"
+#include "LIEF/runtime/Module.hpp"
+#include "LIEF/runtime/Memory.hpp"
+#include "LIEF/runtime/Host.hpp"
+
+#include "internal_utils.hpp"
+#include "logging.hpp"
+
+namespace LIEF::runtime {
+
+namespace details {
+class ModuleIt {};
+class Module {};
+}
+
+// ----------------------------------------------------------------------------
+// Host
+// ----------------------------------------------------------------------------
+std::string Host::name() {
+  LIEF_ERR(LIEF_NEEDS_RUNTIME_MSG);
+  return "";
+}
+
+std::string Host::home_dir() {
+  LIEF_ERR(LIEF_NEEDS_RUNTIME_MSG);
+  return "";
+}
+
+std::string Host::tmp_dir() {
+  LIEF_ERR(LIEF_NEEDS_RUNTIME_MSG);
+  return "";
+}
+
+std::string Host::config_dir() {
+  LIEF_ERR(LIEF_NEEDS_RUNTIME_MSG);
+  return "";
+}
+
+std::string Host::cache_dir() {
+  LIEF_ERR(LIEF_NEEDS_RUNTIME_MSG);
+  return "";
+}
+// ----------------------------------------------------------------------------
+// Process
+// ----------------------------------------------------------------------------
+
+int32_t Process::pid() {
+  LIEF_ERR(LIEF_NEEDS_RUNTIME_MSG);
+  return -1;
+}
+
+uint32_t Process::tid() {
+  LIEF_ERR(LIEF_NEEDS_RUNTIME_MSG);
+  return 0;
+}
+
+uint32_t Process::page_size() {
+  LIEF_ERR(LIEF_NEEDS_RUNTIME_MSG);
+  return 0;
+}
+
+optional<std::string> Process::get_env(const std::string& /*key*/) {
+  return nullopt();
+}
+
+Process::EnvVars Process::get_envs() {
+  return {};
+}
+
+// ----------------------------------------------------------------------------
+// Module
+// ----------------------------------------------------------------------------
+
+Module::Iterator::Iterator(const Iterator&) {}
+
+// NOLINTNEXTLINE(bugprone-unhandled-self-assignment)
+Module::Iterator& Module::Iterator::operator=(const Iterator& /*other*/) {
+  return *this;
+}
+
+Module::Iterator::Iterator(Iterator&&) noexcept = default;
+Module::Iterator& Module::Iterator::operator=(Iterator&&) noexcept = default;
+
+Module::Iterator::Iterator(std::unique_ptr<details::ModuleIt>) {}
+
+Module::Iterator::~Iterator() = default;
+
+bool operator==(const Module::Iterator&, const Module::Iterator&) {
+  return true;
+}
+
+Module::Iterator& Module::Iterator::operator++() {
+  return *this;
+}
+
+void Module::Iterator::load() const {}
+
+const Module& Module::Iterator::operator*() const {
+  return *cached_;
+}
+
+const Module* Module::Iterator::operator->() const {
+  return nullptr;
+}
+
+std::unique_ptr<Module> Module::Iterator::yield() {
+  return nullptr;
+}
+
+Module::Module(std::unique_ptr<details::Module>) {}
+
+Module::Module(Module&&) noexcept = default;
+Module& Module::operator=(Module&&) noexcept = default;
+
+Module::~Module() = default;
+
+
+std::unique_ptr<Module> Module::clone() const {
+  return nullptr;
+}
+
+uint64_t Module::imagebase() const {
+  return 0;
+}
+
+uint64_t Module::size() const {
+  return 0;
+}
+
+std::string Module::name() const {
+  return "";
+}
+
+std::string Module::path() const {
+  return "";
+}
+
+std::string Module::to_string() const {
+  return "";
+}
+
+modules_t modules() {
+  LIEF_ERR(LIEF_NEEDS_RUNTIME_MSG);
+  return make_empty_iterator<Module>();
+}
+
+// ----------------------------------------------------------------------------
+// Memory
+// ----------------------------------------------------------------------------
+
+uintptr_t Memory::Chunk::page_start() const {
+  return 0;
+}
+
+uintptr_t Memory::Chunk::page_end() const {
+  return 0;
+}
+
+Memory::Chunk& Memory::Chunk::cache_flush() {
+  return *this;
+}
+
+std::string Memory::Chunk::to_string() const {
+  return "";
+}
+
+optional<Memory::Chunk> Memory::mmap(size_t /*size*/, uint32_t /*flags*/,
+                                     uint32_t /*permissions*/) {
+  LIEF_ERR(LIEF_NEEDS_RUNTIME_MSG);
+  return nullopt();
+}
+
+ok_error_t Memory::munmap(Chunk& /*C*/) {
+  LIEF_ERR(LIEF_NEEDS_RUNTIME_MSG);
+  return make_error_code(lief_errors::not_implemented);
+}
+
+ok_error_t Memory::mprotect(Memory::Chunk& /*C*/, uint32_t /*flags*/) {
+  LIEF_ERR(LIEF_NEEDS_RUNTIME_MSG);
+  return make_error_code(lief_errors::not_implemented);
+}
+
+std::string Memory::perm_str(uint32_t /*flags*/) {
+  return "";
+}
+
+}
diff --git a/deps/LIEF/src/runtime/osx/CMakeLists.txt b/deps/LIEF/src/runtime/osx/CMakeLists.txt
new file mode 100644
index 00000000000..85f46e07e0b
--- /dev/null
+++ b/deps/LIEF/src/runtime/osx/CMakeLists.txt
@@ -0,0 +1,14 @@
+target_sources(LIB_LIEF_RUNTIME PRIVATE
+  Host.cpp
+  Memory.cpp
+  Module.cpp
+  Process.cpp
+)
+
+# objc
+target_sources(LIB_LIEF_RUNTIME PRIVATE
+  Host_utils.mm
+  utils.mm
+)
+
+target_link_libraries(LIB_LIEF PRIVATE objc "-framework Foundation")
diff --git a/deps/LIEF/src/runtime/osx/Host.cpp b/deps/LIEF/src/runtime/osx/Host.cpp
new file mode 100644
index 00000000000..8f1363affb8
--- /dev/null
+++ b/deps/LIEF/src/runtime/osx/Host.cpp
@@ -0,0 +1,77 @@
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
+ *
+ * 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.
+ */
+#include "LIEF/runtime/Host.hpp"
+#include "LIEF/runtime/Process.hpp"
+#include <array>
+#include <spdlog/fmt/fmt.h>
+
+#include <unistd.h>
+#include <sys/param.h>
+
+namespace LIEF::runtime {
+
+#if defined(_CS_DARWIN_USER_CACHE_DIR)
+static constexpr auto CS_DARWIN_USER_CACHE_DIR = _CS_DARWIN_USER_CACHE_DIR;
+#else
+static constexpr auto CS_DARWIN_USER_CACHE_DIR = 0;
+#endif
+
+std::string Host::name() {
+  std::array<char, MAXHOSTNAMELEN + 1> buffer = {0};
+  if (gethostname(buffer.data(), buffer.size()) == 0) {
+    return buffer.data();
+  }
+  return "";
+}
+
+std::string Host::home_dir() {
+  if (auto path = Process::get_env("HOME")) {
+    return *path;
+  }
+  return "";
+}
+
+std::string Host::tmp_dir() {
+  for (const auto& key : {"TMPDIR", "TMP", "TEMP", "TEMPDIR"}) {
+    if (auto path = Process::get_env(key)) {
+      return *path;
+    }
+  }
+  return "/tmp";
+}
+
+std::string Host::config_dir() {
+  return home_dir() + "/Library/Preferences";
+}
+
+std::string Host::cache_dir() {
+  if constexpr (CS_DARWIN_USER_CACHE_DIR != 0) {
+    size_t len = confstr(CS_DARWIN_USER_CACHE_DIR, nullptr, 0);
+    if (len > 0) {
+      std::string result;
+      do {
+        result.resize(len);
+        len = confstr(_CS_DARWIN_USER_CACHE_DIR, result.data(), result.size());
+      } while (len > 0 && len != result.size());
+
+      return result.c_str();
+    }
+  }
+
+  return home_dir() + "/.cache";
+}
+
+}
diff --git a/deps/LIEF/src/runtime/osx/Host_utils.mm b/deps/LIEF/src/runtime/osx/Host_utils.mm
new file mode 100644
index 00000000000..6611b3fc18e
--- /dev/null
+++ b/deps/LIEF/src/runtime/osx/Host_utils.mm
@@ -0,0 +1,46 @@
+#import <Foundation/Foundation.h>
+#include <string>
+
+#include <dlfcn.h>
+
+#include "LIEF/runtime/osx/Host.hpp"
+#include "runtime/osx/utils.h"
+#include "logging.hpp"
+
+namespace LIEF::runtime::osx {
+
+bool Host::is_sip_enabled() {
+  using fn_t = int (*)(uint32_t*);
+  static fn_t csr_get_active_config = [] {
+    auto F = reinterpret_cast<fn_t>(
+        dlsym(RTLD_DEFAULT, "csr_get_active_config"));
+    if (F == nullptr) {
+      LIEF_ERR("dlsym err: {} ({})", dlerror(), Host::os_version_name());
+    }
+    return F;
+  }();
+
+  if (csr_get_active_config == nullptr) {
+    return true; // unable to resolve: assume SIP is enabled
+  }
+
+  uint32_t config = 0;
+  if (csr_get_active_config(&config) != 0) {
+    return true; // unable to determine: assume SIP is enabled
+  }
+  return config == 0;
+}
+
+std::string Host::os_version_name() {
+  return NSStringToUTF8(NSProcessInfo.processInfo.operatingSystemVersionString);
+}
+
+Host::version_t Host::os_version() {
+  NSOperatingSystemVersion ver = NSProcessInfo.processInfo.operatingSystemVersion;
+  return {
+    static_cast<uint32_t>(ver.majorVersion),
+    static_cast<uint32_t>(ver.minorVersion),
+    static_cast<uint32_t>(ver.patchVersion)
+  };
+}
+}
diff --git a/deps/LIEF/src/runtime/osx/Memory.cpp b/deps/LIEF/src/runtime/osx/Memory.cpp
new file mode 100644
index 00000000000..efcc8eb1618
--- /dev/null
+++ b/deps/LIEF/src/runtime/osx/Memory.cpp
@@ -0,0 +1,176 @@
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
+ *
+ * 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.
+ */
+#include "LIEF/runtime/Process.hpp"
+#include "LIEF/runtime/Memory.hpp"
+#include "LIEF/runtime/utils.hpp"
+#include "logging.hpp"
+
+#include <sys/mman.h>
+
+namespace LIEF::runtime {
+
+inline int get_posix_flags(uint32_t flags) {
+  int prot = PROT_NONE;
+  if (flags & Memory::P_READ) {
+    prot |= PROT_READ;
+  }
+  if (flags & Memory::P_WRITE) {
+    prot |= PROT_WRITE;
+  }
+  if (flags & Memory::P_EXEC) {
+    prot |= PROT_EXEC;
+  }
+  return prot;
+}
+
+inline int get_posix_mmap_flags(uint32_t flags) {
+  int ret = 0;
+  if (flags & Memory::MP_PRIVATE) {
+    ret |= MAP_PRIVATE;
+  }
+
+  if (flags & Memory::MP_ANONYMOUS) {
+    ret |= MAP_ANONYMOUS;
+  }
+
+  if (flags & Memory::MP_SHARED) {
+    ret |= MAP_SHARED;
+  }
+
+  if (flags & Memory::MP_FIXED) {
+    ret |= MAP_FIXED;
+  }
+
+  if (flags & Memory::MP_JIT) {
+    ret |= MAP_JIT;
+  }
+
+  return ret;
+}
+
+std::string Memory::perm_str(uint32_t flags) {
+  std::string flags_str = "---";
+  if (flags & P_READ) {
+    flags_str[0] = 'r';
+  }
+
+  if (flags & P_WRITE) {
+    flags_str[1] = 'w';
+  }
+
+  if (flags & P_EXEC) {
+    flags_str[2] = 'x';
+  }
+  return flags_str;
+}
+
+
+uintptr_t Memory::Chunk::page_start() const {
+  if (!is_valid()) {
+    return 0;
+  }
+  return runtime::page_start(addr(), Process::page_size());
+}
+
+uintptr_t Memory::Chunk::page_end() const {
+  if (!is_valid()) {
+    return 0;
+  }
+  return runtime::page_end(addr() + size(), Process::page_size());
+}
+
+std::string Memory::Chunk::to_string() const {
+  if (!is_valid()) {
+    return "<empty chunk>";
+  }
+
+  if (size() == 0) {
+    return fmt::format("[0x{:016x}, ...]", addr());
+  }
+
+  return fmt::format("[0x{:016x}, 0x{:016x}]", addr(), addr() + size());
+}
+
+optional<Memory::Chunk> Memory::mmap(size_t size, uint32_t flags, uint32_t perms) {
+  if (size == 0) {
+    return nullopt();
+  }
+
+  void* ret = ::mmap(/*__addr=*/nullptr, /*__len=*/size, get_posix_flags(perms),
+                     get_posix_mmap_flags(flags),
+                     /*__fd=*/-1, /*__offset=*/0);
+  if (ret == nullptr || reinterpret_cast<intptr_t>(ret) == -1) {
+    LIEF_ERR("mmap failed: {}", strerror(errno));
+    return nullopt();
+  }
+  return Chunk(ret, size, perms);
+}
+
+ok_error_t Memory::munmap(Chunk& C) {
+  if (!C.is_valid()) {
+    LIEF_DEBUG("Error: {}:{} - Invalid chunk", __FUNCTION__, __LINE__);
+    return make_error_code(lief_errors::runtime_error);
+  }
+
+  if (C.size() == 0) {
+    LIEF_DEBUG("Error: {}:{} - Missing chunk size", __FUNCTION__, __LINE__);
+    return make_error_code(lief_errors::runtime_error);
+  }
+
+  int ret = ::munmap(C.addr_ptr(), C.size());
+  if (ret != 0) {
+    LIEF_ERR("munmap {} failed: {}", C.to_string(), strerror(errno));
+    return make_error_code(lief_errors::runtime_error);
+  }
+
+  C.addr_ = nullptr;
+  C.size_ = 0;
+  return ok();
+}
+
+ok_error_t Memory::mprotect(Memory::Chunk& C, uint32_t flags) {
+  if (!C.is_valid()) {
+    LIEF_DEBUG("Error: {}:{} - Invalid chunk", __FUNCTION__, __LINE__);
+    return make_error_code(lief_errors::runtime_error);
+  }
+
+  if (C.size() == 0) {
+    LIEF_DEBUG("Error: {}:{} - Missing chunk size", __FUNCTION__, __LINE__);
+    return make_error_code(lief_errors::runtime_error);
+  }
+
+  int posix_flags = get_posix_flags(flags);
+  const uintptr_t pstart = C.page_start();
+  const uintptr_t pend = C.page_end();
+  const uintptr_t len = pend - pstart;
+
+  int ret = ::mprotect((void*)pstart, len, posix_flags);
+  if (ret != 0) {
+    LIEF_ERR("mprotect [0x{:016x}, 0x{:016x}] -> {} ({:04b}) failed: {} ({})",
+             pstart, pend, perm_str(flags), posix_flags, ret, strerror(errno));
+    return make_error_code(lief_errors::runtime_error);
+  }
+  return ok();
+}
+
+Memory::Chunk& Memory::Chunk::cache_flush() {
+  const uintptr_t pstart = page_start();
+  const uintptr_t pend = page_end();
+  __builtin___clear_cache((char*)pstart, (char*)pend);
+  return *this;
+}
+
+}
diff --git a/deps/LIEF/src/runtime/osx/Module.cpp b/deps/LIEF/src/runtime/osx/Module.cpp
new file mode 100644
index 00000000000..72b637e6344
--- /dev/null
+++ b/deps/LIEF/src/runtime/osx/Module.cpp
@@ -0,0 +1,713 @@
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
+ *
+ * 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.
+ */
+#include "LIEF/runtime/osx/Module.hpp"
+#include "LIEF/runtime/osx/Host.hpp"
+#include "LIEF/range.hpp"
+#include "LIEF/MachO/utils.hpp"
+#include "LIEF/MachO/Parser.hpp"
+#include "LIEF/MachO/ParserConfig.hpp"
+#include "LIEF/MachO/Binary.hpp"
+#include "LIEF/MachO/FatBinary.hpp"
+#include "LIEF/BinaryStream/MemoryStream.hpp"
+
+#include <mach/mach.h>
+#include <mach-o/loader.h>
+#include <mach-o/dyld.h>
+#include <mach-o/dyld_images.h>
+#include <mach-o/getsect.h>
+#include <sys/sysctl.h>
+#include <dlfcn.h>
+
+#include <libkern/OSCacheControl.h>
+
+#include "logging.hpp"
+
+extern "C" kern_return_t mach_vm_read_overwrite(vm_map_read_t target_task,
+                                                mach_vm_address_t address,
+                                                mach_vm_size_t size,
+                                                mach_vm_address_t data,
+                                                mach_vm_size_t* outsize);
+
+namespace LIEF::runtime {
+
+namespace details {
+
+
+static const char* dyld_image_path_containing_address(const void* addr) {
+  using namespace LIEF::runtime::osx;
+  using fn_t = const char* (*)(const void*);
+  static fn_t fn = [] {
+    auto F = reinterpret_cast<fn_t>(dlsym(RTLD_DEFAULT,
+                                          "dyld_image_path_containing_address"));
+    if (F == nullptr) {
+      LIEF_ERR("dlsym err: {} ({})", dlerror(), osx::Host::os_version_name());
+    }
+    return F;
+  }();
+
+  if (fn == nullptr) {
+    return nullptr;
+  }
+
+  return fn(addr);
+}
+
+
+static const struct mach_header* dyld_get_dlopen_image_header(void* handle) {
+  using namespace LIEF::runtime::osx;
+  using fn_t = const struct mach_header* (*)(void*);
+  if (Host::os_version() < Host::version_t::Ventura()) {
+    // According to dyld/DyldAPIs.h _dyld_get_dlopen_image_header is only
+    // available from iOS 16 / macOS 13
+    return nullptr;
+  }
+
+  static fn_t fn = [] {
+    auto F = reinterpret_cast<fn_t>(dlsym(RTLD_DEFAULT,
+                                          "_dyld_get_dlopen_image_header"));
+    if (F == nullptr) {
+      LIEF_ERR("dlsym err: {} ({})", dlerror(), osx::Host::os_version_name());
+    }
+    return F;
+  }();
+
+  if (fn == nullptr) {
+    return nullptr;
+  }
+  return fn(handle);
+}
+
+struct module_info_t {
+  uintptr_t start = 0;
+  uintptr_t end = 0;
+  std::string path;
+};
+
+struct DyldInfoLegacy {
+  uint32_t all_image_info_addr;
+};
+
+struct DyldInfo32 {
+  uint32_t all_image_info_addr;
+  uint32_t all_image_info_size;
+  int32_t all_image_info_format;
+};
+
+struct DyldInfo64 {
+  uint64_t all_image_info_addr;
+  uint64_t all_image_info_size;
+  int32_t all_image_info_format;
+};
+
+union DyldInfo {
+  DyldInfoLegacy info_legacy;
+  DyldInfo32 info_32;
+  DyldInfo64 info_64;
+};
+
+
+struct DyldAllImageInfos32 {
+  uint32_t version;
+  uint32_t info_array_count;
+  uint32_t info_array;
+  uint32_t notification;
+  uint8_t process_detached_from_shared_region;
+  uint8_t libsystem_initialized;
+  uint32_t dyld_image_load_address;
+};
+
+struct DyldAllImageInfos64 {
+  uint32_t version;
+  uint32_t info_array_count;
+  uint64_t info_array;
+  uint64_t notification;
+  uint8_t process_detached_from_shared_region;
+  uint8_t libsystem_initialized;
+  uint32_t padding;
+  uint64_t dyld_image_load_address;
+};
+
+struct DyldImageInfo32 {
+  uint32_t image_load_address;
+  uint32_t image_file_path;
+  uint32_t image_file_mod_date;
+};
+
+struct DyldImageInfo64 {
+  uint64_t image_load_address;
+  uint64_t image_file_path;
+  uint64_t image_file_mod_date;
+};
+
+
+using cbk = bool (*)(const module_info_t*, void* data);
+
+
+uint8_t* darwin_read(mach_port_t task, uintptr_t address, size_t len,
+                     size_t* n_bytes_read) {
+  size_t page_size = getpagesize();
+  uint8_t* result;
+  size_t offset;
+  [[maybe_unused]] mach_port_t self;
+  kern_return_t kr;
+
+  result = (uint8_t*)malloc(len);
+  offset = 0;
+
+  self = mach_task_self();
+
+  while (offset != len) {
+    uintptr_t chunk_address, page_address;
+    size_t chunk_size, page_offset;
+
+    chunk_address = address + offset;
+    page_address = chunk_address & ~(uintptr_t)(page_size - 1);
+    page_offset = chunk_address - page_address;
+    chunk_size = std::min<uintptr_t>(len - offset, page_size - page_offset);
+
+    mach_vm_size_t n_bytes_read;
+
+    /* mach_vm_read corrupts memory on iOS */
+    kr = mach_vm_read_overwrite(task, chunk_address, chunk_size,
+                                (vm_address_t)(result + offset), &n_bytes_read);
+    if (kr != KERN_SUCCESS) {
+      break;
+    }
+
+    offset += chunk_size;
+  }
+
+  if (offset == 0) {
+    free(result);
+    result = NULL;
+  }
+
+  if (n_bytes_read != NULL) {
+    *n_bytes_read = offset;
+  }
+
+  return result;
+}
+
+// This function is taken from frida-gum (gum_process_darwin.c:
+// gum_darwin_enumerate_modules)
+template<class F>
+void enumerate_modules(mach_port_t task, F&& func) {
+  static constexpr size_t DYLD_INFO_LEGACY_COUNT = 1;
+  static constexpr size_t DYLD_INFO_32_COUNT = 3;
+
+  static constexpr size_t DYLD_INFO_COUNT = 5;
+  static constexpr size_t DYLD_INFO_64_COUNT = 5;
+
+  static constexpr size_t DYLD_IMAGE_INFO_32_SIZE = 12;
+  static constexpr size_t DYLD_IMAGE_INFO_64_SIZE = 24;
+
+  uint32_t count = 0;
+  kern_return_t kr;
+  task_dyld_info info;
+  [[maybe_unused]] size_t info_array_count, info_array_size;
+  uintptr_t info_array_address, dyld_image_load_address;
+  [[maybe_unused]] void* header_data_end = NULL;
+  const uint32_t header_data_initial_size = 4096;
+  bool carry_on = true;
+  DyldInfo info_raw;
+  count = DYLD_INFO_COUNT;
+
+  kr = task_info(task, TASK_DYLD_INFO, reinterpret_cast<task_info_t>(&info_raw),
+                 &count);
+
+  if (kr != KERN_SUCCESS) {
+    // QBDI_ERROR("task_info error {}:{}", __PRETTY_FUNCTION__, __LINE__);
+    return;
+  }
+  switch (count) {
+    case DYLD_INFO_LEGACY_COUNT:
+    {
+      info.all_image_info_addr = info_raw.info_legacy.all_image_info_addr;
+      info.all_image_info_size = 0;
+      info.all_image_info_format = TASK_DYLD_ALL_IMAGE_INFO_32;
+      break;
+    }
+
+    case DYLD_INFO_32_COUNT:
+    {
+      info.all_image_info_addr = info_raw.info_32.all_image_info_addr;
+      info.all_image_info_size = info_raw.info_32.all_image_info_size;
+      info.all_image_info_format = info_raw.info_32.all_image_info_format;
+      break;
+    }
+
+    case DYLD_INFO_64_COUNT:
+    {
+      info.all_image_info_addr = info_raw.info_64.all_image_info_addr;
+      info.all_image_info_size = info_raw.info_64.all_image_info_size;
+      info.all_image_info_format = info_raw.info_64.all_image_info_format;
+      break;
+    }
+
+    default: LIEF_ERR("task_info error: invalid count ({})", count); return;
+  }
+
+  if (info.all_image_info_format == TASK_DYLD_ALL_IMAGE_INFO_64) {
+    DyldAllImageInfos64* all_info;
+
+    all_info = (DyldAllImageInfos64*)info.all_image_info_addr;
+    if (all_info == NULL) {
+      return;
+    }
+
+    info_array_count = all_info->info_array_count;
+    info_array_size = info_array_count * DYLD_IMAGE_INFO_64_SIZE;
+    info_array_address = all_info->info_array;
+    dyld_image_load_address = all_info->dyld_image_load_address;
+
+  } else {
+    DyldAllImageInfos32* all_info;
+
+    all_info = (DyldAllImageInfos32*)info.all_image_info_addr;
+    if (all_info == NULL) {
+      return;
+    }
+
+    info_array_count = all_info->info_array_count;
+    info_array_size = info_array_count * DYLD_IMAGE_INFO_32_SIZE;
+    info_array_address = all_info->info_array;
+    dyld_image_load_address = all_info->dyld_image_load_address;
+  }
+
+  if (info_array_address == 0) {
+    return;
+  }
+
+  for (size_t i = 0; i != info_array_count + 1 && carry_on; ++i) {
+    uintptr_t load_address = 0;
+    const char* module_path = nullptr;
+    module_info_t details;
+
+    if (i != info_array_count) {
+      uintptr_t file_path_address;
+
+      if (info.all_image_info_format == TASK_DYLD_ALL_IMAGE_INFO_64) {
+        const auto* info = reinterpret_cast<const DyldImageInfo64*>(
+            info_array_address + (i * DYLD_IMAGE_INFO_64_SIZE)
+        );
+        load_address = info->image_load_address;
+        file_path_address = info->image_file_path;
+      } else {
+        const auto* info = reinterpret_cast<const DyldImageInfo32*>(
+            info_array_address + (i * DYLD_IMAGE_INFO_32_SIZE)
+        );
+        load_address = info->image_load_address;
+        file_path_address = info->image_file_path;
+      }
+
+      module_path = reinterpret_cast<const char*>(file_path_address);
+
+      if (load_address == 0) {
+        return;
+      }
+    } else {
+      load_address = dyld_image_load_address;
+
+      if (load_address == 0) {
+        return;
+      }
+
+      module_path = "/usr/lib/dyld";
+    }
+
+    header_data_end = (void*)(load_address + header_data_initial_size);
+
+    uint64_t max_address = load_address;
+    LIEF::MemoryStream stream(load_address);
+    LIEF::MachO::foreach_segment(
+        stream, [&](const std::string& /*name*/, uint64_t /*offset*/,
+                    uint64_t /*size*/, uint64_t addr, uint64_t vsize) {
+          uintptr_t seg_max = load_address + addr + vsize;
+          max_address = std::max<uint64_t>(seg_max, max_address);
+        }
+    );
+
+    carry_on = func(load_address, max_address, module_path);
+  }
+  return;
+}
+
+class Module {
+  public:
+  virtual uint64_t imagebase() const = 0;
+  virtual std::string name() const = 0;
+  virtual std::string path() const = 0;
+
+  virtual size_t size() const = 0;
+
+  virtual std::unique_ptr<Module> clone() const = 0;
+
+  virtual void* handle() const {
+    return nullptr;
+  }
+
+  virtual void* dlsym(const std::string& /*name*/) const {
+    return nullptr;
+  }
+
+  virtual ~Module() = default;
+};
+
+class ModuleIt {
+  public:
+  virtual bool eq(const ModuleIt& other) const = 0;
+  virtual std::unique_ptr<ModuleIt> clone() const = 0;
+  virtual std::unique_ptr<runtime::Module> get() const = 0;
+  virtual void increment() = 0;
+
+  virtual ~ModuleIt() = default;
+};
+
+
+class ModuleImpl : public Module {
+  public:
+  ModuleImpl() = default;
+  ModuleImpl(uintptr_t start, uintptr_t end, const char* path,
+             std::shared_ptr<void> handle) :
+    start_(start),
+    end_(end),
+    path_(path),
+    handle_(std::move(handle)) {}
+
+  ModuleImpl(uintptr_t start, uintptr_t end, const char* path) :
+    ModuleImpl(start, end, path, /*handle=*/nullptr) {}
+
+  ModuleImpl(const ModuleImpl&) = default;
+  ModuleImpl& operator=(const ModuleImpl&) = default;
+
+  ModuleImpl(ModuleImpl&&) noexcept = default;
+  ModuleImpl& operator=(ModuleImpl&&) noexcept = default;
+
+  std::string path() const override {
+    return path_;
+  }
+
+  std::string name() const override {
+    if (path_.empty()) {
+      return "";
+    }
+    size_t pos = path_.rfind('/');
+    if (pos == std::string::npos) {
+      return path_;
+    }
+    return path_.substr(pos + 1);
+  }
+
+  std::unique_ptr<Module> clone() const override {
+    return std::make_unique<ModuleImpl>(*this);
+  }
+
+  uint64_t imagebase() const override {
+    return start_;
+  }
+
+  size_t size() const override {
+    return end_ - start_;
+  }
+
+  void* handle() const override {
+    return handle_.get();
+  }
+
+  void* dlsym(const std::string& name) const override {
+    if (handle_ == nullptr) {
+      return nullptr;
+    }
+    return ::dlsym(handle_.get(), name.c_str());
+  }
+
+  ~ModuleImpl() override = default;
+
+  private:
+  uintptr_t start_ = 0;
+  uintptr_t end_ = 0;
+  std::string path_;
+  std::shared_ptr<void> handle_;
+};
+
+using list_modules_t = std::vector<std::unique_ptr<ModuleImpl>>;
+
+class ModuleImplIt : public ModuleIt {
+  public:
+  ModuleImplIt() = delete;
+  ModuleImplIt(const ModuleImplIt&) = default;
+  ModuleImplIt& operator=(const ModuleImplIt&) = default;
+
+  ModuleImplIt(ModuleImplIt&&) = default;
+  ModuleImplIt& operator=(ModuleImplIt&&) = default;
+
+  ModuleImplIt(list_modules_t& modules, size_t pos) :
+    pos_(pos),
+    modules_(&modules) {}
+
+  ModuleImplIt(list_modules_t& modules) :
+    ModuleImplIt(modules, 0) {}
+
+  bool eq(const ModuleIt& other) const override {
+    return pos_ == static_cast<const ModuleImplIt&>(other).pos_;
+  }
+
+  std::unique_ptr<ModuleIt> clone() const override {
+    return std::make_unique<ModuleImplIt>(*this);
+  }
+
+  std::unique_ptr<runtime::Module> get() const override {
+    assert(pos_ < modules_->size());
+    return std::make_unique<osx::Module>(modules_->at(pos_)->clone());
+  }
+
+  void increment() override {
+    ++pos_;
+  }
+
+  ~ModuleImplIt() override = default;
+
+  private:
+  size_t pos_ = 0;
+  list_modules_t* modules_ = nullptr;
+};
+
+inline std::shared_ptr<void> borrow_handle(void* handle) {
+  return {handle, [](void*) {}};
+}
+
+list_modules_t& get_modules() {
+  static thread_local list_modules_t modules;
+  modules.clear();
+
+  enumerate_modules(
+      mach_task_self(),
+      [&](uintptr_t start, uintptr_t end, const char* path) -> bool {
+        std::shared_ptr<void> handle(::dlopen(path, RTLD_NOLOAD), [](void* h) {
+          if (h != nullptr) {
+            ::dlclose(h);
+          }
+        });
+        if (handle == nullptr) {
+          LIEF_DEBUG("{}", dlerror());
+        }
+        modules.push_back(std::make_unique<ModuleImpl>(start, end, path,
+                                                       std::move(handle)));
+        return /*continue*/ true;
+      }
+  );
+
+  return modules;
+}
+
+} // namespace details
+
+Module::Iterator::Iterator() = default;
+Module::Iterator::Iterator(const Iterator& other) :
+  impl_(other.impl_->clone()) {}
+
+Module::Iterator& Module::Iterator::operator=(const Iterator& other) {
+  if (this != &other) {
+    impl_ = other.impl_->clone();
+    cached_.reset();
+  }
+  return *this;
+}
+
+Module::Iterator::Iterator(Iterator&&) noexcept = default;
+Module::Iterator& Module::Iterator::operator=(Iterator&&) noexcept = default;
+
+Module::Iterator::Iterator(std::unique_ptr<details::ModuleIt> impl) :
+  impl_(std::move(impl)) {}
+
+Module::Iterator::~Iterator() = default;
+
+bool operator==(const Module::Iterator& LHS, const Module::Iterator& RHS) {
+  return LHS.impl_->eq(*RHS.impl_);
+}
+
+Module::Iterator& Module::Iterator::operator++() {
+  impl_->increment();
+  cached_.reset();
+  return *this;
+}
+
+void Module::Iterator::load() const {
+  if (cached_ == nullptr) {
+    cached_ = impl_->get();
+  }
+}
+
+const Module& Module::Iterator::operator*() const {
+  load();
+  return *cached_;
+}
+
+const Module* Module::Iterator::operator->() const {
+  load();
+  return cached_.get();
+}
+
+std::unique_ptr<Module> Module::Iterator::yield() {
+  load();
+  return std::move(cached_);
+}
+
+Module::Module(std::unique_ptr<details::Module> impl) :
+  impl_(std::move(impl)) {}
+
+Module::Module(Module&&) noexcept = default;
+Module& Module::operator=(Module&&) noexcept = default;
+
+Module::~Module() = default;
+
+std::unique_ptr<Module> Module::clone() const {
+  return std::make_unique<osx::Module>(impl_->clone());
+}
+
+uint64_t Module::imagebase() const {
+  return impl_->imagebase();
+}
+
+std::string Module::name() const {
+  return impl_->name();
+}
+
+std::string Module::path() const {
+  return impl_->path();
+}
+
+uint64_t Module::size() const {
+  return impl_->size();
+}
+
+std::string Module::to_string() const {
+  return fmt::format("{:#08x}: {} ([{:#010x}, {:#010x}])", imagebase(), name(),
+                     imagebase(), imagebase() + size());
+}
+
+modules_t modules() {
+  using namespace details;
+  list_modules_t& mods = details::get_modules();
+
+  auto begin = runtime::Module::Iterator(std::make_unique<ModuleImplIt>(mods));
+
+  auto end =
+      runtime::Module::Iterator(std::make_unique<ModuleImplIt>(mods, mods.size()));
+
+  return make_range(std::move(begin), std::move(end));
+}
+
+namespace osx {
+
+void* Module::handle() const {
+  return impl_->handle();
+}
+
+void* Module::dlsym(const std::string& name) const {
+  return impl_->dlsym(name);
+}
+
+std::unique_ptr<MachO::Binary> Module::parse_from_path() const {
+  return parse_from_path(MachO::ParserConfig::deep());
+}
+
+std::unique_ptr<MachO::Binary>
+    Module::parse_from_path(const MachO::ParserConfig& config) const {
+  const std::string& p = path();
+  if (p.empty()) {
+    LIEF_ERR("Can't parse '{}': path is empty", name());
+    return nullptr;
+  }
+
+  std::unique_ptr<MachO::FatBinary> fat = MachO::Parser::parse(p, config);
+  if (fat == nullptr || fat->size() == 0) {
+    return nullptr;
+  }
+  return fat->take(0);
+}
+
+std::unique_ptr<MachO::Binary> Module::parse_from_memory() const {
+  return parse_from_memory(MachO::ParserConfig::deep());
+}
+
+std::unique_ptr<MachO::Binary>
+    Module::parse_from_memory(const MachO::ParserConfig& config) const {
+  if (imagebase() == 0) {
+    LIEF_ERR("Can't parse {}: imagebase is null", path());
+    return nullptr;
+  }
+
+  LIEF_DEBUG("Trying to parse {} from memory: [{:#010x}, {:#010x}]", path(),
+             imagebase(), imagebase() + size());
+
+  std::unique_ptr<MachO::FatBinary> fat =
+      MachO::Parser::parse_from_memory(imagebase(), size(), config);
+  if (fat == nullptr || fat->size() == 0) {
+    return nullptr;
+  }
+  return fat->take(0);
+}
+
+std::unique_ptr<Module> Module::from_handle(void* handle) {
+  if (handle == nullptr) {
+    return nullptr;
+  }
+
+  const struct mach_header* header = details::dyld_get_dlopen_image_header(handle);
+  if (header == nullptr) {
+    auto impl =
+        std::make_unique<details::ModuleImpl>(0, 0, "",
+                                              details::borrow_handle(handle));
+    return std::make_unique<Module>(std::move(impl));
+  }
+
+  range_t va_ranges{reinterpret_cast<uintptr_t>(header), 0};
+  {
+    LIEF::MemoryStream stream(va_ranges.low);
+    LIEF::MachO::foreach_segment(
+        stream, [&](const std::string& /*name*/, uint64_t /*offset*/,
+                    uint64_t /*size*/, uint64_t addr, uint64_t vsize) {
+          uintptr_t seg_max = va_ranges.low + addr + vsize;
+          va_ranges.high = std::max<uint64_t>(seg_max, va_ranges.high);
+        }
+    );
+  }
+
+  const char* path = details::dyld_image_path_containing_address(
+      reinterpret_cast<const void*>(va_ranges.low)
+  );
+
+  auto impl =
+      std::make_unique<details::ModuleImpl>(va_ranges.low, va_ranges.high,
+                                            path != nullptr ? path : "",
+                                            details::borrow_handle(handle));
+  return std::make_unique<Module>(std::move(impl));
+}
+
+std::unique_ptr<Module> dlopen(const std::string& name) {
+  void* handle = ::dlopen(name.c_str(), RTLD_NOW);
+  if (handle == nullptr) {
+    LIEF_ERR("Can't load {}: {}", name, dlerror());
+    return nullptr;
+  }
+  return Module::from_handle(handle);
+}
+}
+
+
+}
diff --git a/deps/LIEF/src/runtime/osx/Process.cpp b/deps/LIEF/src/runtime/osx/Process.cpp
new file mode 100644
index 00000000000..88fb33262e1
--- /dev/null
+++ b/deps/LIEF/src/runtime/osx/Process.cpp
@@ -0,0 +1,107 @@
+
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
+ *
+ * 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.
+ */
+#include "LIEF/runtime/Process.hpp"
+#include "LIEF/runtime/osx/Process.hpp"
+#include "LIEF/optional.hpp"
+#include "logging.hpp"
+
+#include <cstdlib>
+#include <unistd.h>
+#include <sys/types.h>
+
+#include <mach-o/dyld_images.h>
+#include <mach/mach.h>
+#include <mach/task_info.h>
+#include <mach-o/dyld_images.h>
+
+// NOLINTNEXTLINE(cppcoreguidelines-avoid-non-const-global-variables)
+extern const char** environ;
+
+namespace LIEF::runtime {
+int32_t Process::pid() {
+  return getpid();
+}
+
+uint32_t Process::tid() {
+  return pthread_mach_thread_np(pthread_self());
+}
+
+uint32_t Process::page_size() {
+  static uint32_t PAGESZ = ::getpagesize();
+  return PAGESZ;
+}
+
+optional<std::string> Process::get_env(const std::string& key) {
+  if (const char* value = ::getenv(key.c_str())) {
+    return std::string(value);
+  }
+  return nullopt();
+}
+
+Process::EnvVars Process::get_envs() {
+  EnvVars out;
+  for (const char** env = environ; *env != nullptr; ++env) {
+    std::string env_str = *env;
+    size_t pos = env_str.rfind('=');
+    if (pos == std::string::npos) {
+      LIEF_DEBUG("Error: can't find '=' delimiter in {}", env_str);
+      continue;
+    }
+    std::string key = env_str.substr(0, pos);
+    std::string value = env_str.substr(pos + 1);
+    out.vars.insert({key, value});
+  }
+  return out;
+}
+
+namespace osx {
+
+static optional<task_dyld_info_data_t> get_dyld_info_data_t() {
+  task_dyld_info_data_t dyld_info{};
+  mach_msg_type_number_t count = TASK_DYLD_INFO_COUNT;
+
+  kern_return_t kr = task_info(mach_task_self(), TASK_DYLD_INFO,
+                               reinterpret_cast<task_info_t>(&dyld_info), &count);
+
+  if (kr != KERN_SUCCESS) {
+    LIEF_ERR("task_info failed with error code: {}", kr);
+    return nullopt();
+  }
+  return dyld_info;
+}
+
+static std::string dyld_version_impl() {
+  auto dyld_info = get_dyld_info_data_t();
+  if (!dyld_info) {
+    return "";
+  }
+  const auto* infos = reinterpret_cast<const dyld_all_image_infos*>(
+      dyld_info->all_image_info_addr
+  );
+  if (infos == nullptr || infos->version < 5 || infos->dyldVersion == nullptr) {
+    return "";
+  }
+  return infos->dyldVersion;
+}
+
+std::string Process::dyld_version() {
+  static std::string version = dyld_version_impl();
+  return version;
+}
+}
+
+}
diff --git a/deps/LIEF/src/runtime/osx/common.cpp b/deps/LIEF/src/runtime/osx/common.cpp
new file mode 100644
index 00000000000..362bb59708f
--- /dev/null
+++ b/deps/LIEF/src/runtime/osx/common.cpp
@@ -0,0 +1,72 @@
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
+ *
+ * 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.
+ */
+
+#include "LIEF/runtime/osx/Host.hpp"
+
+#include <tuple>
+#include <spdlog/fmt/fmt.h>
+
+namespace LIEF::runtime::osx {
+bool Host::version_t::operator<=(const version_t& rhs) const {
+  return std::tie(major, minor, patch) <=
+         std::tie(rhs.major, rhs.minor, rhs.patch);
+}
+
+bool Host::version_t::operator>=(const version_t& rhs) const {
+  return std::tie(major, minor, patch) >=
+         std::tie(rhs.major, rhs.minor, rhs.patch);
+}
+
+bool Host::version_t::operator==(const version_t& other) const {
+  return std::tie(major, minor, patch) ==
+         std::tie(other.major, other.minor, other.patch);
+}
+
+std::string Host::version_t::to_string() const {
+  return fmt::format("{}.{}.{}", major, minor, patch);
+}
+
+const Host::version_t& Host::version_t::BigSur() {
+  static const version_t v{11, 0, 0};
+  return v;
+}
+
+const Host::version_t& Host::version_t::Monterey() {
+  static const version_t v{12, 0, 0};
+  return v;
+}
+
+const Host::version_t& Host::version_t::Ventura() {
+  static const version_t v{13, 0, 0};
+  return v;
+}
+
+const Host::version_t& Host::version_t::Sonoma() {
+  static const version_t v{14, 0, 0};
+  return v;
+}
+
+const Host::version_t& Host::version_t::Sequoia() {
+  static const version_t v{15, 0, 0};
+  return v;
+}
+
+const Host::version_t& Host::version_t::Tahoe() {
+  static const version_t v{26, 0, 0};
+  return v;
+}
+
+}
diff --git a/deps/LIEF/src/runtime/osx/no_runtime.cpp b/deps/LIEF/src/runtime/osx/no_runtime.cpp
new file mode 100644
index 00000000000..18b6e154a1b
--- /dev/null
+++ b/deps/LIEF/src/runtime/osx/no_runtime.cpp
@@ -0,0 +1,83 @@
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
+ *
+ * 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.
+ */
+
+#include "LIEF/runtime/osx/Module.hpp"
+#include "LIEF/runtime/osx/Host.hpp"
+#include "LIEF/runtime/osx/Process.hpp"
+#include "LIEF/MachO/Binary.hpp"
+#include "LIEF/MachO/ParserConfig.hpp"
+
+#include <spdlog/fmt/fmt.h>
+
+namespace LIEF::runtime {
+namespace details {
+class ModuleIt {};
+class Module {};
+}
+}
+
+namespace LIEF::runtime::osx {
+
+std::unique_ptr<Module> Module::from_handle(void* /*handle*/) {
+  return nullptr;
+}
+
+void* Module::handle() const {
+  return nullptr;
+}
+
+void* Module::dlsym(const std::string& /*name*/) const {
+  return nullptr;
+}
+
+std::unique_ptr<MachO::Binary> Module::parse_from_path() const {
+  return nullptr;
+}
+
+std::unique_ptr<MachO::Binary>
+    Module::parse_from_path(const MachO::ParserConfig& /*config*/) const {
+  return nullptr;
+}
+
+std::unique_ptr<MachO::Binary> Module::parse_from_memory() const {
+  return nullptr;
+}
+
+std::unique_ptr<MachO::Binary>
+    Module::parse_from_memory(const MachO::ParserConfig& /*config*/) const {
+  return nullptr;
+}
+
+std::unique_ptr<Module> dlopen(const std::string& /*name*/) {
+  return nullptr;
+}
+
+std::string Host::os_version_name() {
+  return "";
+}
+
+Host::version_t Host::os_version() {
+  return {0, 0, 0};
+}
+
+bool Host::is_sip_enabled() {
+  return true;
+}
+
+std::string Process::dyld_version() {
+  return "";
+}
+}
diff --git a/deps/LIEF/src/runtime/osx/utils.h b/deps/LIEF/src/runtime/osx/utils.h
new file mode 100644
index 00000000000..2dec098fb60
--- /dev/null
+++ b/deps/LIEF/src/runtime/osx/utils.h
@@ -0,0 +1,7 @@
+#pragma once
+#import <Foundation/Foundation.h>
+#include <string>
+
+namespace LIEF::runtime::osx {
+std::string NSStringToUTF8(NSString* nsstring);
+}
diff --git a/deps/LIEF/src/runtime/osx/utils.mm b/deps/LIEF/src/runtime/osx/utils.mm
new file mode 100644
index 00000000000..a96fa5692ea
--- /dev/null
+++ b/deps/LIEF/src/runtime/osx/utils.mm
@@ -0,0 +1,11 @@
+#include "runtime/osx/utils.h"
+
+namespace LIEF::runtime::osx {
+std::string NSStringToUTF8(NSString* nsstring) {
+  if (!nsstring) {
+    return std::string();
+  }
+  std::string cpp_str([nsstring UTF8String]);
+  return cpp_str;
+}
+}
diff --git a/deps/LIEF/src/runtime/windows/CMakeLists.txt b/deps/LIEF/src/runtime/windows/CMakeLists.txt
new file mode 100644
index 00000000000..336e1fe8e71
--- /dev/null
+++ b/deps/LIEF/src/runtime/windows/CMakeLists.txt
@@ -0,0 +1,9 @@
+target_sources(LIB_LIEF_RUNTIME PRIVATE
+  Host.cpp
+  Memory.cpp
+  Module.cpp
+  Process.cpp
+  injector.cpp
+  PEB.cpp
+  LdrDataTableEntry.cpp
+)
diff --git a/deps/LIEF/src/runtime/windows/Host.cpp b/deps/LIEF/src/runtime/windows/Host.cpp
new file mode 100644
index 00000000000..510641b6347
--- /dev/null
+++ b/deps/LIEF/src/runtime/windows/Host.cpp
@@ -0,0 +1,115 @@
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
+ *
+ * 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.
+ */
+#include "LIEF/runtime/Host.hpp"
+#include "LIEF/runtime/Process.hpp"
+#include "LIEF/runtime/windows/Host.hpp"
+#include "LIEF/runtime/windows/Module.hpp"
+#include "LIEF/optional.hpp"
+#include "LIEF/utils.hpp"
+
+#include <spdlog/fmt/fmt.h>
+
+#include <winsock.h>
+#include <shlobj.h>
+#include <shtypes.h>
+
+namespace LIEF::runtime {
+inline optional<std::string> get_folder_id(KNOWNFOLDERID id) {
+  wchar_t* path = nullptr;
+  HRESULT ret = ::SHGetKnownFolderPath(id, /*dwFlags=*/KF_FLAG_DEFAULT,
+                                       /*hToken=*/nullptr, &path);
+  if (ret != S_OK) {
+    return nullopt();
+  }
+  size_t len = wcsnlen_s(path, 255);
+  if (len == 0) {
+    return nullopt();
+  }
+  std::string u8 = u16tou8(reinterpret_cast<const char16_t*>(path), len,
+                           /*remove_null_char=*/true);
+  return u8;
+}
+
+std::string Host::name() {
+  std::array<char, MAX_COMPUTERNAME_LENGTH + 1> hostname{};
+
+  DWORD size = sizeof(hostname);
+
+  if (GetComputerNameA(hostname.data(), &size)) {
+    return {hostname.data(), size};
+  }
+
+  return "";
+}
+
+std::string Host::home_dir() {
+  return get_folder_id(FOLDERID_Profile).value_or("");
+}
+
+std::string Host::tmp_dir() {
+  for (const auto& key : {"TMP", "TEMP", "USERPROFILE"}) {
+    if (auto path = Process::get_env(key)) {
+      return *path;
+    }
+  }
+  return "C:\\Temp";
+}
+
+std::string Host::config_dir() {
+  return get_folder_id(FOLDERID_LocalAppData).value_or("");
+}
+
+std::string Host::cache_dir() {
+  return get_folder_id(FOLDERID_LocalAppData).value_or("");
+}
+
+namespace windows {
+static optional<RTL_OSVERSIONINFOW> get_os_info() {
+  // using LONG (WINAPI *RtlGetVersionPtr)(PRTL_OSVERSIONINFOW);
+  using RtlGetVersionPtr = LONG (*)(PRTL_OSVERSIONINFOW);
+  RTL_OSVERSIONINFOW os_info{};
+  auto ntdll = find_module("ntdll.dll");
+  if (ntdll == nullptr) {
+    return nullopt();
+  }
+  void* ptr = ntdll->dlsym("RtlGetVersion");
+  if (ptr == nullptr) {
+    return nullopt();
+  }
+
+  auto _RtlGetVersion = reinterpret_cast<RtlGetVersionPtr>(ptr);
+  os_info.dwOSVersionInfoSize = sizeof(RTL_OSVERSIONINFOW);
+  if (_RtlGetVersion(&os_info) != 0) {
+    return nullopt();
+  }
+
+  return os_info;
+}
+
+Host::version_t Host::version() {
+  static const auto OS_VERSION_INFO = get_os_info();
+  if (!OS_VERSION_INFO) {
+    return {};
+  }
+  return {
+      OS_VERSION_INFO->dwMajorVersion,
+      OS_VERSION_INFO->dwMinorVersion,
+      OS_VERSION_INFO->dwBuildNumber,
+  };
+}
+
+}
+}
diff --git a/deps/LIEF/src/runtime/windows/LdrDataTableEntry.cpp b/deps/LIEF/src/runtime/windows/LdrDataTableEntry.cpp
new file mode 100644
index 00000000000..a2dc8c940df
--- /dev/null
+++ b/deps/LIEF/src/runtime/windows/LdrDataTableEntry.cpp
@@ -0,0 +1,588 @@
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
+ *
+ * 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.
+ */
+#include "LIEF/runtime/windows/LdrDataTableEntry.hpp"
+#include "LIEF/runtime/windows/PEB.hpp"
+#include "LIEF/runtime/windows/Host.hpp"
+#include "LIEF/optional.hpp"
+#include "LIEF/utils.hpp"
+
+#include "internal_utils.hpp"
+
+#include <spdlog/fmt/fmt.h>
+
+#include <cstddef>
+#include <cstdint>
+#include <sstream>
+
+namespace LIEF::runtime::windows {
+namespace details {
+// Primitive-typed taken from winternl.h
+
+// LIST_ENTRY
+struct list_entry {
+  uintptr_t Flink;
+  uintptr_t Blink;
+};
+
+// UNICODE_STRING.
+struct unicode_string {
+  uint16_t Length;
+  uint16_t MaximumLength;
+  uintptr_t Buffer;
+};
+
+// PEB_LDR_DATA
+struct peb_ldr_data {
+  /// Size of the structure
+  uint32_t Length;
+  /// If the loader data section is initialized
+  uint8_t Initialized;
+
+  /// Handle to the subsystem
+  uintptr_t SsHandle;
+
+  /// Doubly linked list (Load order)
+  list_entry InLoadOrderModuleList;
+
+  /// Doubly linked list (Memory placement order)
+  list_entry InMemoryOrderModuleList;
+
+  /// Doubly linked list (Initialization order)
+  list_entry InInitializationOrderModuleList;
+
+  /// Pointer to module currently being loaded
+  uintptr_t EntryInProgress;
+
+  /// Indicates if process shutdown has started
+  uintptr_t ShutdownInProgress;
+
+  /// Thread ID performing the shutdown
+  uintptr_t ShutdownThreadId;
+};
+
+// RTL_BALANCED_NODE: node of the red-black trees that the Windows 8+ loader
+// uses to index modules by base address and by mapping. Three pointer-sized
+// words on every architecture.
+struct rtl_balanced_node {
+  uintptr_t Left;
+  uintptr_t Right;
+  uintptr_t ParentValue;
+};
+
+// LDR_DATA_TABLE_ENTRY
+
+// clang-format off
+struct ldr_data_table_entry {
+  list_entry InLoadOrderLinks;           // 0x00
+  list_entry InMemoryOrderLinks;         // 0x10
+  list_entry InInitializationOrderLinks; // 0x20
+  uintptr_t DllBase;                     // 0x30
+  uintptr_t EntryPoint;                  // 0x38
+  uint32_t SizeOfImage;                  // 0x40
+  unicode_string FullDllName;            // 0x48
+  unicode_string BaseDllName;            // 0x58
+
+  // struct {
+  //     ULONG PackagedBinary : 1;
+  //     ULONG MarkedForRemoval : 1;
+  //     ULONG ImageDll : 1;
+  //     ULONG LoadNotificationsSent : 1;
+  //     ULONG TelemetryEntryProcessed : 1;
+  //     ULONG ProcessStaticImport : 1;
+  //     ULONG InLegacyLists : 1;
+  //     ULONG InIndexes : 1;
+  //     ULONG ShimDll : 1;
+  //     ULONG InExceptionTable : 1;
+  //     ULONG LoadInProgress : 1;
+  //     ULONG LoadConfigProcessed : 1;
+  //     ULONG EntryProcessed : 1;
+  //     ULONG ProtectDelayLoad : 1;
+  //     ULONG ReservedFlags3 : 2;
+  //     ULONG DontCallForThreads : 1;
+  //     ULONG ProcessAttachCalled : 1;
+  //     ULONG ProcessAttachFailed : 1;
+  //     ULONG CorDeferredValidate : 1;
+  //     ULONG CorImage : 1;
+  //     ULONG DontRelocate : 1;
+  //     ULONG CorILOnly : 1;
+  //     ULONG ChpeImage : 1;
+  //     ULONG ChpeEmulatorImage : 1;
+  //     ULONG ReservedFlags5 : 1;
+  //     ULONG Redirected : 1;
+  //     ULONG ReservedFlags6 : 2;
+  //     ULONG CompatDatabaseProcessed : 1;
+  // };
+  // TODO(romain): we might want to expose this flag as the bitfield
+  //               defined above.
+  uint32_t Flags;                        // 0x68
+  uint16_t ObsoleteLoadCount;            // 0x6c
+  uint16_t TlsIndex;                     // 0x6e
+  list_entry HashLinks;                  // 0x70
+  uint32_t TimeDateStamp;                // 0x80
+  uintptr_t EntryPointActivationContext; // 0x88
+  uintptr_t Lock;                        // 0x90
+
+  // Modern dependency graph and loading structures introduced in Windows 8.
+  uintptr_t DdagNode;                    // 0x98
+  list_entry NodeModuleLink;             // 0xa0
+  uintptr_t LoadContext;                 // 0xb0
+  uintptr_t ParentDllBase;               // 0xb8
+  uintptr_t SwitchBackContext;           // 0xc0
+
+  // Red-black trees for fast memory/mapping lookups.
+  rtl_balanced_node BaseAddressIndexNode; // 0xc8
+  rtl_balanced_node MappingInfoIndexNode; // 0xe0
+
+  uintptr_t OriginalBase;                 // 0xf8
+  int64_t LoadTime;                       // 0x100 (LARGE_INTEGER)
+  uint32_t BaseNameHashValue;             // 0x108
+  int32_t LoadReason;                     // 0x10c (LDR_DLL_LOAD_REASON)
+  uint32_t ImplicitPathOptions;           // 0x110
+  uint32_t ReferenceCount;                // 0x114
+  uint32_t DependentLoadFlags;            // 0x118
+
+  // Security and integrity (Windows 10+).
+  uint8_t SigningLevel;                   // 0x11c
+  uint32_t CheckSum;                      // 0x120
+
+  // Hot-patching (Windows 11+).
+  uintptr_t ActivePatchImageBase;         // 0x128
+  uint32_t HotPatchState;                 // 0x130 (LDR_HOT_PATCH_STATE)
+};
+// clang-format on
+
+
+inline constexpr bool is_x64 = sizeof(uintptr_t) == 8;
+static_assert(offsetof(ldr_data_table_entry, InLoadOrderLinks) == 0);
+
+static_assert(offsetof(peb_ldr_data, InLoadOrderModuleList) ==
+                  (is_x64 ? 0x10 : 0x0C),
+              "Invalid layout for InLoadOrderModuleList");
+
+static_assert(!is_x64 || offsetof(ldr_data_table_entry, HotPatchState) == 0x130,
+              "Invalid 64-bit layout for HotPatchState");
+
+static_assert(is_x64 || offsetof(ldr_data_table_entry, BaseDllName) == 0x2C,
+              "Invalid 32-bit layout for BaseDllName");
+
+class ldr_entry {
+  public:
+  explicit ldr_entry(const ldr_data_table_entry* raw) :
+    raw_(raw) {}
+
+  const ldr_data_table_entry& raw() const {
+    return *raw_;
+  }
+
+  private:
+  const ldr_data_table_entry* raw_ = nullptr;
+};
+
+class ldr_entry_it {
+  public:
+  ldr_entry_it() = default;
+
+  explicit ldr_entry_it(uintptr_t node) :
+    node_(node) {}
+
+  bool eq(const ldr_entry_it& other) const {
+    return node_ == other.node_;
+  }
+
+  std::unique_ptr<ldr_entry_it> clone() const {
+    return std::make_unique<ldr_entry_it>(*this);
+  }
+
+  void increment() {
+    node_ = reinterpret_cast<const list_entry*>(node_)->Flink;
+  }
+
+  void decrement() {
+    node_ = reinterpret_cast<const list_entry*>(node_)->Blink;
+  }
+
+  std::unique_ptr<LdrDataTableEntry> get() const {
+    auto impl = std::make_unique<ldr_entry>(
+        reinterpret_cast<const ldr_data_table_entry*>(node_)
+    );
+    return std::make_unique<LdrDataTableEntry>(std::move(impl));
+  }
+
+  private:
+  uintptr_t node_ = 0;
+};
+
+}
+
+inline std::string to_u8(const details::unicode_string& str) {
+  if (str.Buffer == 0 || str.Length == 0) {
+    return "";
+  }
+  return u16tou8(reinterpret_cast<const char16_t*>(str.Buffer),
+                 str.Length / sizeof(char16_t), /*remove_null_char=*/true);
+}
+
+
+inline bool host_at_least(uint32_t major, uint32_t minor, uint32_t build) {
+  return Host::version() >= Host::version_t(major, minor, build);
+}
+
+// Windows 8 (6.2)
+inline bool has_win8_fields() {
+  return host_at_least(6, 2, 9200);
+}
+
+// Windows 10 (10.0).
+inline bool has_win10_fields() {
+  return host_at_least(10, 0, 10240);
+}
+
+// Windows 11 (build 22000)
+inline bool has_win11_fields() {
+  return host_at_least(10, 0, 22000);
+}
+
+// ----------------------------------------------------------------------------
+// LdrDataTableEntry
+// ----------------------------------------------------------------------------
+LdrDataTableEntry::LdrDataTableEntry(std::unique_ptr<details::ldr_entry> impl) :
+  impl_(std::move(impl)) {}
+
+LdrDataTableEntry::LdrDataTableEntry(LdrDataTableEntry&&) noexcept = default;
+LdrDataTableEntry&
+    LdrDataTableEntry::operator=(LdrDataTableEntry&&) noexcept = default;
+
+LdrDataTableEntry::~LdrDataTableEntry() = default;
+
+uintptr_t LdrDataTableEntry::dll_base() const {
+  return impl_->raw().DllBase;
+}
+
+uintptr_t LdrDataTableEntry::entry_point() const {
+  return impl_->raw().EntryPoint;
+}
+
+uint32_t LdrDataTableEntry::size_of_image() const {
+  return impl_->raw().SizeOfImage;
+}
+
+std::string LdrDataTableEntry::full_dll_name() const {
+  return to_u8(impl_->raw().FullDllName);
+}
+
+std::string LdrDataTableEntry::base_dll_name() const {
+  return to_u8(impl_->raw().BaseDllName);
+}
+
+uint32_t LdrDataTableEntry::flags() const {
+  return impl_->raw().Flags;
+}
+
+uint16_t LdrDataTableEntry::obsolete_load_count() const {
+  return impl_->raw().ObsoleteLoadCount;
+}
+
+uint16_t LdrDataTableEntry::tls_index() const {
+  return impl_->raw().TlsIndex;
+}
+
+uint32_t LdrDataTableEntry::time_date_stamp() const {
+  return impl_->raw().TimeDateStamp;
+}
+
+uintptr_t LdrDataTableEntry::entry_point_activation_context() const {
+  return impl_->raw().EntryPointActivationContext;
+}
+
+uintptr_t LdrDataTableEntry::lock() const {
+  return impl_->raw().Lock;
+}
+
+optional<uintptr_t> LdrDataTableEntry::ddag_node() const {
+  if (!has_win8_fields()) {
+    return nullopt();
+  }
+  return impl_->raw().DdagNode;
+}
+
+optional<uintptr_t> LdrDataTableEntry::load_context() const {
+  if (!has_win8_fields()) {
+    return nullopt();
+  }
+  return impl_->raw().LoadContext;
+}
+
+optional<uintptr_t> LdrDataTableEntry::parent_dll_base() const {
+  if (!has_win8_fields()) {
+    return nullopt();
+  }
+  return impl_->raw().ParentDllBase;
+}
+
+optional<uintptr_t> LdrDataTableEntry::switch_back_context() const {
+  if (!has_win8_fields()) {
+    return nullopt();
+  }
+  return impl_->raw().SwitchBackContext;
+}
+
+optional<uintptr_t> LdrDataTableEntry::original_base() const {
+  if (!has_win8_fields()) {
+    return nullopt();
+  }
+  return impl_->raw().OriginalBase;
+}
+
+optional<int64_t> LdrDataTableEntry::load_time() const {
+  if (!has_win8_fields()) {
+    return nullopt();
+  }
+  return impl_->raw().LoadTime;
+}
+
+optional<uint32_t> LdrDataTableEntry::base_name_hash_value() const {
+  if (!has_win8_fields()) {
+    return nullopt();
+  }
+  return impl_->raw().BaseNameHashValue;
+}
+
+optional<int32_t> LdrDataTableEntry::load_reason() const {
+  if (!has_win8_fields()) {
+    return nullopt();
+  }
+  return impl_->raw().LoadReason;
+}
+
+optional<uint32_t> LdrDataTableEntry::implicit_path_options() const {
+  if (!has_win8_fields()) {
+    return nullopt();
+  }
+  return impl_->raw().ImplicitPathOptions;
+}
+
+optional<uint32_t> LdrDataTableEntry::reference_count() const {
+  if (!has_win8_fields()) {
+    return nullopt();
+  }
+  return impl_->raw().ReferenceCount;
+}
+
+optional<uint32_t> LdrDataTableEntry::dependent_load_flags() const {
+  if (!has_win8_fields()) {
+    return nullopt();
+  }
+  return impl_->raw().DependentLoadFlags;
+}
+
+optional<uint8_t> LdrDataTableEntry::signing_level() const {
+  if (!has_win10_fields()) {
+    return nullopt();
+  }
+  return impl_->raw().SigningLevel;
+}
+
+optional<uint32_t> LdrDataTableEntry::check_sum() const {
+  if (!has_win10_fields()) {
+    return nullopt();
+  }
+  return impl_->raw().CheckSum;
+}
+
+optional<uintptr_t> LdrDataTableEntry::active_patch_image_base() const {
+  if (!has_win11_fields()) {
+    return nullopt();
+  }
+  return impl_->raw().ActivePatchImageBase;
+}
+
+optional<uint32_t> LdrDataTableEntry::hot_patch_state() const {
+  if (!has_win11_fields()) {
+    return nullopt();
+  }
+  return impl_->raw().HotPatchState;
+}
+
+std::string LdrDataTableEntry::to_string() const {
+  static constexpr auto WIDTH = 40;
+  std::ostringstream oss;
+  oss << fmt::format("{:{}} {:#018x}\n", "Base address (DllBase):", WIDTH,
+                     dll_base())
+      << fmt::format("{:{}} {:#018x}\n", "Entry point:", WIDTH, entry_point())
+      << fmt::format("{:{}} {:#08x}\n", "Size of image:", WIDTH, size_of_image())
+      << fmt::format("{:{}} {}\n", "Full DLL name:", WIDTH, full_dll_name())
+      << fmt::format("{:{}} {}\n", "Base DLL name:", WIDTH, base_dll_name())
+      << fmt::format("{:{}} {:#010x}\n", "Flags:", WIDTH, flags())
+      << fmt::format("{:{}} {}\n", "Obsolete load count:", WIDTH,
+                     obsolete_load_count())
+      << fmt::format("{:{}} {}\n", "TLS index:", WIDTH, tls_index())
+      << fmt::format("{:{}} {:#010x}\n", "Timestamp:", WIDTH, time_date_stamp())
+      << fmt::format("{:{}} {:#018x}\n", "Entry point activation context:", WIDTH,
+                     entry_point_activation_context())
+      << fmt::format("{:{}} {:#018x}\n", "Lock:", WIDTH, lock());
+
+  if (auto val = ddag_node()) {
+    oss << fmt::format("{:{}} {:#018x}\n", "DDAG node:", WIDTH, *val);
+  }
+
+  if (auto val = load_context()) {
+    oss << fmt::format("{:{}} {:#018x}\n", "Load context:", WIDTH, *val);
+  }
+
+  if (auto val = parent_dll_base()) {
+    oss << fmt::format("{:{}} {:#018x}\n", "Parent DLL base:", WIDTH, *val);
+  }
+
+  if (auto val = switch_back_context()) {
+    oss << fmt::format("{:{}} {:#018x}\n", "Switch-back context:", WIDTH, *val);
+  }
+
+  if (auto val = original_base()) {
+    oss << fmt::format("{:{}} {:#018x}\n", "Original base:", WIDTH, *val);
+  }
+
+  if (auto val = load_time()) {
+    oss << fmt::format("{:{}} {}\n", "Load time:", WIDTH, *val);
+  }
+
+  if (auto val = base_name_hash_value()) {
+    oss << fmt::format("{:{}} {:#010x}\n", "Base name hash value:", WIDTH, *val);
+  }
+
+  if (auto val = load_reason()) {
+    oss << fmt::format("{:{}} {}\n", "Load reason:", WIDTH, *val);
+  }
+
+  if (auto val = implicit_path_options()) {
+    oss << fmt::format("{:{}} {:#010x}\n", "Implicit path options:", WIDTH, *val);
+  }
+
+  if (auto val = reference_count()) {
+    oss << fmt::format("{:{}} {}\n", "Reference count:", WIDTH, *val);
+  }
+
+  if (auto val = dependent_load_flags()) {
+    oss << fmt::format("{:{}} {:#010x}\n", "Dependent load flags:", WIDTH, *val);
+  }
+
+  if (auto val = signing_level()) {
+    oss << fmt::format("{:{}} {}\n", "Signing level:", WIDTH, *val);
+  }
+
+  if (auto val = check_sum()) {
+    oss << fmt::format("{:{}} {:#010x}\n", "Checksum:", WIDTH, *val);
+  }
+
+  if (auto val = active_patch_image_base()) {
+    oss << fmt::format("{:{}} {:#018x}\n", "Active patch image base:", WIDTH,
+                       *val);
+  }
+
+  if (auto val = hot_patch_state()) {
+    oss << fmt::format("{:{}} {:#010x}\n", "Hot patch state:", WIDTH, *val);
+  }
+
+  return oss.str();
+}
+
+// ----------------------------------------------------------------------------
+// LdrDataTableEntry::Iterator
+// ----------------------------------------------------------------------------
+LdrDataTableEntry::Iterator::Iterator() = default;
+
+LdrDataTableEntry::Iterator::Iterator(
+    std::unique_ptr<details::ldr_entry_it> impl
+) :
+  impl_(std::move(impl)) {}
+
+LdrDataTableEntry::Iterator::Iterator(const Iterator& other) :
+  impl_(other.impl_ ? other.impl_->clone() : nullptr) {}
+
+LdrDataTableEntry::Iterator&
+    LdrDataTableEntry::Iterator::operator=(const Iterator& other) {
+  if (this != &other) {
+    impl_ = other.impl_ ? other.impl_->clone() : nullptr;
+    cached_.reset();
+  }
+  return *this;
+}
+
+LdrDataTableEntry::Iterator::Iterator(Iterator&&) noexcept = default;
+LdrDataTableEntry::Iterator&
+    LdrDataTableEntry::Iterator::operator=(Iterator&&) noexcept = default;
+
+LdrDataTableEntry::Iterator::~Iterator() = default;
+
+bool operator==(const LdrDataTableEntry::Iterator& LHS,
+                const LdrDataTableEntry::Iterator& RHS) {
+  return LHS.impl_->eq(*RHS.impl_);
+}
+
+LdrDataTableEntry::Iterator& LdrDataTableEntry::Iterator::operator++() {
+  impl_->increment();
+  cached_.reset();
+  return *this;
+}
+
+LdrDataTableEntry::Iterator& LdrDataTableEntry::Iterator::operator--() {
+  impl_->decrement();
+  cached_.reset();
+  return *this;
+}
+
+void LdrDataTableEntry::Iterator::load() const {
+  if (cached_ == nullptr) {
+    cached_ = impl_->get();
+  }
+}
+
+const LdrDataTableEntry& LdrDataTableEntry::Iterator::operator*() const {
+  load();
+  return *cached_;
+}
+
+const LdrDataTableEntry* LdrDataTableEntry::Iterator::operator->() const {
+  load();
+  return cached_.get();
+}
+
+std::unique_ptr<LdrDataTableEntry> LdrDataTableEntry::Iterator::yield() {
+  load();
+  return std::move(cached_);
+}
+
+PEB::entries_it PEB::entries() const {
+  const uintptr_t ldr_addr = ldr();
+  if (ldr_addr == 0) {
+    return make_empty_iterator<LdrDataTableEntry>();
+  }
+
+  const auto* ldr = reinterpret_cast<const details::peb_ldr_data*>(ldr_addr);
+
+  // The list head lives inside PEB_LDR_DATA and acts as the past-the-end
+  // sentinel of the circular list.
+  const uintptr_t head =
+      ldr_addr + offsetof(details::peb_ldr_data, InLoadOrderModuleList);
+
+  auto begin = LdrDataTableEntry::Iterator(
+      std::make_unique<details::ldr_entry_it>(ldr->InLoadOrderModuleList.Flink)
+  );
+  auto end =
+      LdrDataTableEntry::Iterator(std::make_unique<details::ldr_entry_it>(head));
+
+  return make_range(std::move(begin), std::move(end));
+}
+}
diff --git a/deps/LIEF/src/runtime/windows/Memory.cpp b/deps/LIEF/src/runtime/windows/Memory.cpp
new file mode 100644
index 00000000000..9a541f7d63c
--- /dev/null
+++ b/deps/LIEF/src/runtime/windows/Memory.cpp
@@ -0,0 +1,159 @@
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
+ *
+ * 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.
+ */
+#include "LIEF/runtime/Process.hpp"
+#include "LIEF/runtime/Memory.hpp"
+#include "LIEF/runtime/utils.hpp"
+#include "logging.hpp"
+
+#include <windows.h>
+
+namespace LIEF::runtime {
+
+inline int get_win_flags(uint32_t flags) {
+  switch (flags) {
+    default: logging::fatal_error("Invalid permission");
+    case Memory::P_NONE: return PAGE_NOACCESS;
+    case Memory::P_READ: return PAGE_READONLY;
+    case Memory::P_WRITE: return PAGE_READWRITE;
+    case Memory::P_EXEC: return PAGE_EXECUTE;
+
+    case Memory::P_READ | Memory::P_WRITE: return PAGE_READWRITE;
+
+    case Memory::P_READ | Memory::P_EXEC: return PAGE_EXECUTE_READ;
+
+    case Memory::P_WRITE | Memory::P_EXEC: return PAGE_EXECUTE_READWRITE;
+
+    case Memory::P_READ | Memory::P_WRITE | Memory::P_EXEC:
+      return PAGE_EXECUTE_READWRITE;
+  }
+
+  logging::fatal_error("Unreachable");
+}
+
+
+std::string Memory::perm_str(uint32_t flags) {
+  std::string flags_str = "---";
+  if (flags & P_READ) {
+    flags_str[0] = 'r';
+  }
+
+  if (flags & P_WRITE) {
+    flags_str[1] = 'w';
+  }
+
+  if (flags & P_EXEC) {
+    flags_str[2] = 'x';
+  }
+  return flags_str;
+}
+
+std::string Memory::Chunk::to_string() const {
+  if (!is_valid()) {
+    return "<empty chunk>";
+  }
+
+  if (size() == 0) {
+    return fmt::format("[0x{:016x}, ...]", addr());
+  }
+
+  return fmt::format("[0x{:016x}, 0x{:016x}]", addr(), addr() + size());
+}
+
+
+Memory::Chunk& Memory::Chunk::cache_flush() {
+  FlushInstructionCache(GetCurrentProcess(), addr_ptr(), size());
+  return *this;
+}
+
+optional<Memory::Chunk> Memory::mmap(size_t size, uint32_t /*flags*/,
+                                     uint32_t perms) {
+  if (size == 0) {
+    return nullopt();
+  }
+
+  DWORD win_perms = get_win_flags(perms);
+  void* ret = ::VirtualAlloc(/*lpAddress=*/0, /*dwSize=*/size,
+                             /*flAllocationType=*/MEM_RESERVE | MEM_COMMIT,
+                             /*flProtect=*/win_perms);
+  if (ret == nullptr) {
+    LIEF_ERR("VirtualAlloc failed with error code: {}", GetLastError());
+    return nullopt();
+  }
+
+  return Chunk(ret, size, perms);
+}
+
+uintptr_t Memory::Chunk::page_start() const {
+  if (!is_valid()) {
+    return 0;
+  }
+  return runtime::page_start(addr(), Process::page_size());
+}
+
+uintptr_t Memory::Chunk::page_end() const {
+  if (!is_valid()) {
+    return 0;
+  }
+  return runtime::page_end(addr() + size(), Process::page_size());
+}
+
+ok_error_t Memory::munmap(Chunk& C) {
+  if (!C.is_valid()) {
+    LIEF_DEBUG("Error: {}:{} - Invalid chunk", __FUNCTION__, __LINE__);
+    return make_error_code(lief_errors::runtime_error);
+  }
+
+  if (C.size() == 0) {
+    LIEF_DEBUG("Error: {}:{} - Missing chunk size", __FUNCTION__, __LINE__);
+    return make_error_code(lief_errors::runtime_error);
+  }
+
+  int ret = VirtualFree(C.addr_ptr(), 0, MEM_RELEASE);
+  if (ret == 0) {
+    LIEF_ERR("munmap {} failed: {}", C.to_string(), GetLastError());
+    return make_error_code(lief_errors::runtime_error);
+  }
+  return ok();
+}
+
+ok_error_t Memory::mprotect(Memory::Chunk& C, uint32_t flags) {
+  if (!C.is_valid()) {
+    LIEF_DEBUG("Error: {}:{} - Invalid chunk", __FUNCTION__, __LINE__);
+    return make_error_code(lief_errors::runtime_error);
+  }
+
+  if (C.size() == 0) {
+    LIEF_DEBUG("Error: {}:{} - Missing chunk size", __FUNCTION__, __LINE__);
+    return make_error_code(lief_errors::runtime_error);
+  }
+
+  const uintptr_t pstart = C.page_start();
+  const uintptr_t pend = C.page_end();
+  const uintptr_t len = pend - pstart;
+
+  DWORD win_perms = get_win_flags(flags);
+  DWORD old_perms = 0;
+  int ret = VirtualProtect((void*)pstart, len, win_perms, &old_perms);
+  if (ret == 0) {
+    LIEF_ERR("mprotect [0x{:016x}, 0x{:016x}] -> {} ({}) failed: {}", pstart, pend,
+             perm_str(flags), win_perms, GetLastError());
+    return make_error_code(lief_errors::runtime_error);
+  }
+
+  return ok();
+}
+
+}
diff --git a/deps/LIEF/src/runtime/windows/Module.cpp b/deps/LIEF/src/runtime/windows/Module.cpp
new file mode 100644
index 00000000000..b44b60fe0ad
--- /dev/null
+++ b/deps/LIEF/src/runtime/windows/Module.cpp
@@ -0,0 +1,410 @@
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
+ *
+ * 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.
+ */
+
+#include "LIEF/PE/ParserConfig.hpp"
+#include "LIEF/PE/Parser.hpp"
+#include "LIEF/PE/Binary.hpp"
+#include "LIEF/runtime/windows/Module.hpp"
+
+#include "logging.hpp"
+
+#include <Windows.h>
+#include <psapi.h>
+#include <errhandlingapi.h>
+#include <libloaderapi.h>
+
+#include "LIEF/utils.hpp"
+
+namespace LIEF::runtime {
+
+namespace details {
+// The concrete implementation of a Linux module
+class Module {
+  public:
+  virtual uint64_t imagebase() const = 0;
+  virtual std::string name() const = 0;
+  virtual std::string path() const = 0;
+  virtual size_t size() const = 0;
+
+  virtual std::unique_ptr<Module> clone() const = 0;
+
+  virtual void* handle() const {
+    return nullptr;
+  }
+
+  virtual ~Module() = default;
+};
+
+
+class ModuleIt {
+  public:
+  virtual bool eq(const ModuleIt& other) const = 0;
+  virtual std::unique_ptr<ModuleIt> clone() const = 0;
+  virtual std::unique_ptr<runtime::Module> get() const = 0;
+  virtual void increment() = 0;
+
+  virtual ~ModuleIt() = default;
+};
+
+class DefaultModule : public Module {
+  public:
+  static std::unique_ptr<DefaultModule> create(HMODULE module,
+                                               HANDLE current_proc) {
+    std::array<wchar_t, MAX_PATH> tmp_buffer{};
+
+    std::string path;
+    std::string name;
+    MODULEINFO module_info;
+
+    std::memset(&module_info, 0, sizeof(MODULEINFO));
+
+    if (GetModuleFileNameW(module, tmp_buffer.data(), tmp_buffer.size()) != 0) {
+      std::u16string u16 = reinterpret_cast<const char16_t*>(tmp_buffer.data());
+      path = u16tou8(u16);
+    } else {
+      LIEF_DEBUG("Error: {}:{} ({})", __FUNCTION__, __LINE__, (int)GetLastError());
+    }
+
+    tmp_buffer.fill(0);
+
+    if (GetModuleBaseNameW(current_proc, module, tmp_buffer.data(),
+                           tmp_buffer.size()) != 0)
+    {
+      std::u16string u16 = reinterpret_cast<const char16_t*>(tmp_buffer.data());
+      name = u16tou8(u16);
+    } else {
+      LIEF_DEBUG("Error: {}:{} ({})", __FUNCTION__, __LINE__, (int)GetLastError());
+    }
+
+    if (GetModuleInformation(current_proc, module, &module_info,
+                             sizeof(MODULEINFO)) == 0)
+
+    {
+      LIEF_DEBUG("Error: {}:{} ({})", __FUNCTION__, __LINE__, (int)GetLastError());
+    }
+
+    return std::make_unique<DefaultModule>(module, std::move(name),
+                                           std::move(path), module_info);
+  }
+
+  DefaultModule() = default;
+  DefaultModule(HMODULE M, std::string name, std::string path,
+                const MODULEINFO& info) :
+    impl_(M),
+    info_(info),
+    name_(std::move(name)),
+    path_(std::move(path)) {}
+
+  DefaultModule(const DefaultModule&) = default;
+  DefaultModule& operator=(const DefaultModule&) = default;
+
+  DefaultModule(DefaultModule&&) noexcept = default;
+  DefaultModule& operator=(DefaultModule&&) noexcept = default;
+
+  std::unique_ptr<Module> clone() const override {
+    return std::make_unique<DefaultModule>(*this);
+  }
+
+  std::string name() const override {
+    return name_;
+  }
+
+  std::string path() const override {
+    return path_;
+  }
+
+  uint64_t imagebase() const override {
+    return reinterpret_cast<uint64_t>(info_.lpBaseOfDll);
+  }
+
+  size_t size() const override {
+    return info_.SizeOfImage;
+  }
+
+  void* handle() const override {
+    return impl_;
+  }
+
+  private:
+  HMODULE impl_;
+  MODULEINFO info_;
+  std::string name_;
+  std::string path_;
+};
+
+using default_modules_t = std::vector<std::unique_ptr<DefaultModule>>;
+
+class DefaultModuleIt : public ModuleIt {
+  public:
+  DefaultModuleIt() = delete;
+  DefaultModuleIt(const DefaultModuleIt&) = default;
+  DefaultModuleIt& operator=(const DefaultModuleIt&) = default;
+
+  DefaultModuleIt(DefaultModuleIt&&) = default;
+  DefaultModuleIt& operator=(DefaultModuleIt&&) = default;
+
+  DefaultModuleIt(default_modules_t& modules, size_t pos) :
+    pos_(pos),
+    modules_(&modules) {}
+
+  DefaultModuleIt(default_modules_t& modules) :
+    DefaultModuleIt(modules, 0) {}
+
+  bool eq(const ModuleIt& other) const override {
+    return pos_ == static_cast<const DefaultModuleIt&>(other).pos_;
+  }
+
+  std::unique_ptr<ModuleIt> clone() const override {
+    return std::make_unique<DefaultModuleIt>(*this);
+  }
+
+  std::unique_ptr<runtime::Module> get() const override {
+    assert(pos_ < modules_->size());
+    return std::make_unique<windows::Module>((*modules_)[pos_]->clone());
+  }
+
+  void increment() override {
+    ++pos_;
+  }
+
+  ~DefaultModuleIt() override = default;
+
+  private:
+  size_t pos_ = 0;
+  default_modules_t* modules_ = nullptr;
+};
+
+default_modules_t& default_modules() {
+  static default_modules_t modules;
+  modules.clear();
+
+  HANDLE hProcess = GetCurrentProcess();
+  HMODULE lphModule = nullptr;
+  DWORD size = 0;
+
+  if (!EnumProcessModules(hProcess, &lphModule, sizeof(HMODULE), &size)) {
+    LIEF_DEBUG("Error: {}:{}", __FUNCTION__, __LINE__);
+    return modules;
+  }
+
+  assert(size % sizeof(HMODULE) == 0);
+
+  std::vector<HMODULE> hModules;
+  hModules.resize(size / sizeof(HMODULE));
+
+  if (!EnumProcessModules(hProcess, hModules.data(), size, &size)) {
+    LIEF_DEBUG("Error: {}:{}", __FUNCTION__, __LINE__);
+    return modules;
+  }
+
+  modules.reserve(hModules.size());
+
+  for (size_t i = 0; i < hModules.size(); ++i) {
+    if (auto mod = DefaultModule::create(hModules[i], hProcess)) {
+      modules.push_back(std::move(mod));
+    }
+  }
+
+  return modules;
+}
+
+}
+
+Module::Iterator::Iterator() = default;
+
+Module::Iterator::Iterator(const Iterator& other) :
+  impl_(other.impl_->clone()) {}
+
+Module::Iterator& Module::Iterator::operator=(const Iterator& other) {
+  if (this != &other) {
+    impl_ = other.impl_->clone();
+    cached_.reset();
+  }
+  return *this;
+}
+
+Module::Iterator::Iterator(Iterator&&) noexcept = default;
+Module::Iterator& Module::Iterator::operator=(Iterator&&) noexcept = default;
+
+Module::Iterator::Iterator(std::unique_ptr<details::ModuleIt> impl) :
+  impl_(std::move(impl)) {}
+
+Module::Iterator::~Iterator() = default;
+
+bool operator==(const Module::Iterator& LHS, const Module::Iterator& RHS) {
+  return LHS.impl_->eq(*RHS.impl_);
+}
+
+Module::Iterator& Module::Iterator::operator++() {
+  impl_->increment();
+  cached_.reset();
+  return *this;
+}
+
+void Module::Iterator::load() const {
+  if (cached_ == nullptr) {
+    cached_ = impl_->get();
+  }
+}
+
+const Module& Module::Iterator::operator*() const {
+  load();
+  return *cached_;
+}
+
+const Module* Module::Iterator::operator->() const {
+  load();
+  return cached_.get();
+}
+
+std::unique_ptr<Module> Module::Iterator::yield() {
+  load();
+  return std::move(cached_);
+}
+
+Module::Module(std::unique_ptr<details::Module> impl) :
+  impl_(std::move(impl)) {}
+
+Module::Module(Module&&) noexcept = default;
+Module& Module::operator=(Module&&) noexcept = default;
+
+Module::~Module() = default;
+
+std::unique_ptr<Module> Module::clone() const {
+  return std::make_unique<windows::Module>(impl_->clone());
+}
+
+uint64_t Module::imagebase() const {
+  return impl_->imagebase();
+}
+
+uint64_t Module::size() const {
+  return impl_->size();
+}
+
+std::string Module::name() const {
+  return impl_->name();
+}
+
+std::string Module::path() const {
+  return impl_->path();
+}
+
+namespace windows {
+
+std::unique_ptr<Module> Module::from_handle(void* H) {
+  HANDLE hProcess = GetCurrentProcess();
+  auto impl =
+      details::DefaultModule::create(reinterpret_cast<HMODULE>(H), hProcess);
+  return std::make_unique<windows::Module>(std::move(impl));
+}
+
+std::unique_ptr<PE::Binary> Module::parse_from_path() const {
+  return parse_from_path(PE::ParserConfig::default_conf());
+}
+
+std::unique_ptr<PE::Binary>
+    Module::parse_from_path(const PE::ParserConfig& config) const {
+  const std::string& path = this->path();
+  if (path.empty()) {
+    LIEF_ERR("Can't parse '{}': Path is empty", name());
+    return nullptr;
+  }
+  return PE::Parser::parse(path, config);
+}
+
+std::unique_ptr<PE::Binary> Module::parse_from_memory() const {
+  return Module::parse_from_memory(PE::ParserConfig::default_conf());
+}
+
+std::unique_ptr<PE::Binary>
+    Module::parse_from_memory(const PE::ParserConfig& config) const {
+  if (imagebase() == 0) {
+    LIEF_ERR("Can't parse {}: imagebase is null", path());
+    return nullptr;
+  }
+
+  LIEF_DEBUG("Trying to parse {} from memory: [{:#010x}, {:#010x}]", path(),
+             imagebase(), imagebase() + size());
+
+  return LIEF::PE::Parser::parse_from_memory(imagebase(), config);
+}
+
+void* Module::handle() const {
+  return impl_->handle();
+}
+
+std::unique_ptr<Module> dlopen(const std::string& name) {
+  // HMODULE LoadLibraryExW(
+  //   [in] LPCWSTR lpLibFileName,
+  //        HANDLE  hFile,
+  //   [in] DWORD   dwFlags
+  // );
+  std::u16string u16name = u8tou16(name).value_or(u"");
+  if (u16name.empty()) {
+    return nullptr;
+  }
+
+  HMODULE M = LoadLibraryExW(reinterpret_cast<const wchar_t*>(u16name.c_str()),
+                             /*hFile=*/nullptr,
+                             /*dwFlags=*/0);
+  if (M == nullptr) {
+    return nullptr;
+  }
+  return Module::from_handle(M);
+}
+
+
+std::unique_ptr<Module> find_module(const std::string& name) {
+  std::u16string u16name = u8tou16(name).value_or(u"");
+  if (u16name.empty()) {
+    return nullptr;
+  }
+  HMODULE M = GetModuleHandleW(reinterpret_cast<const wchar_t*>(u16name.c_str()));
+  if (M == nullptr) {
+    return nullptr;
+  }
+  return Module::from_handle(M);
+}
+
+void* Module::dlsym(const std::string& name) const {
+  return reinterpret_cast<void*>(
+      GetProcAddress(reinterpret_cast<HMODULE>(handle()), name.c_str())
+  );
+}
+
+}
+
+std::string Module::to_string() const {
+  return fmt::format("0x{:08x}: {}", imagebase(), name());
+}
+
+modules_t modules() {
+  using namespace details;
+  default_modules_t& default_mods = details::default_modules();
+
+  auto begin =
+      runtime::Module::Iterator(std::make_unique<DefaultModuleIt>(default_mods));
+
+  auto end = runtime::Module::Iterator(
+      std::make_unique<DefaultModuleIt>(default_mods, default_mods.size())
+  );
+
+  return make_range(std::move(begin), std::move(end));
+}
+
+
+}
diff --git a/deps/LIEF/src/runtime/windows/PEB.cpp b/deps/LIEF/src/runtime/windows/PEB.cpp
new file mode 100644
index 00000000000..0e6d0fbadbb
--- /dev/null
+++ b/deps/LIEF/src/runtime/windows/PEB.cpp
@@ -0,0 +1,143 @@
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
+ *
+ * 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.
+ */
+#include "LIEF/runtime/windows/PEB.hpp"
+#include "LIEF/runtime/windows/Process.hpp"
+
+#include <cstddef>
+#include <cstdint>
+
+#include <Windows.h>
+
+namespace LIEF::runtime::windows {
+namespace details {
+
+template<class T>
+struct peb_layout {
+  uint8_t Reserved1[2];
+  uint8_t BeingDebugged;
+  uint8_t Reserved2[1];
+  T Reserved3[2];
+  T Ldr;
+  T ProcessParameters;
+  T Reserved4[3];
+  T AtlThunkSListPtr;
+  T Reserved5;
+  uint32_t Reserved6;
+  T Reserved7;
+  uint32_t Reserved8;
+  uint32_t AtlThunkSListPtr32;
+  T Reserved9[45];
+  uint8_t Reserved10[96];
+  T PostProcessInitRoutine;
+  uint8_t Reserved11[128];
+  T Reserved12[1];
+  uint32_t SessionId;
+};
+
+static_assert(offsetof(peb_layout<uint64_t>, BeingDebugged) == 0x02,
+              "Invalid layout");
+static_assert(offsetof(peb_layout<uint64_t>, SessionId) == 0x2C0,
+              "Invalid layout");
+static_assert(offsetof(peb_layout<uint32_t>, BeingDebugged) == 0x02,
+              "Invalid layout");
+static_assert(offsetof(peb_layout<uint32_t>, SessionId) == 0x1D4,
+              "Invalid layout");
+using peb_layout_t = peb_layout<uintptr_t>;
+
+class peb {
+  public:
+  explicit peb(const peb_layout_t* raw) :
+    raw_(raw) {}
+
+  const peb_layout_t& raw() const {
+    return *raw_;
+  }
+
+  private:
+  const peb_layout_t* raw_ = nullptr;
+};
+
+}
+
+// Return the address of the PEB of the current process.
+//
+// The PEB pointer is stored within the TEB which
+// can be accessed through a per-architecture mechanism abstracted by the
+// `NtCurrentTeb()` intrinsic:
+// - x86_64: `GS:[0x30]`
+// - x86: `FS:[0x18]`
+// - ARM64: `x18`
+static uintptr_t current_peb() {
+  constexpr uintptr_t PEB_OFFSET =
+      sizeof(uintptr_t) == sizeof(uint64_t) ? 0x60 : 0x30;
+
+  auto teb = reinterpret_cast<uintptr_t>(NtCurrentTeb());
+  if (teb == 0) {
+    return 0;
+  }
+
+  return *reinterpret_cast<const uintptr_t*>(teb + PEB_OFFSET);
+}
+
+std::unique_ptr<PEB> PEB::create() {
+  const uintptr_t addr = current_peb();
+  if (addr == 0) {
+    return nullptr;
+  }
+
+  auto impl = std::make_unique<details::peb>(
+      reinterpret_cast<const details::peb_layout_t*>(addr)
+  );
+
+  return std::unique_ptr<PEB>(new PEB(std::move(impl)));
+}
+
+bool PEB::being_debugged() const {
+  return impl_->raw().BeingDebugged != 0;
+}
+
+uintptr_t PEB::ldr() const {
+  return impl_->raw().Ldr;
+}
+
+uintptr_t PEB::process_parameters() const {
+  return impl_->raw().ProcessParameters;
+}
+
+uintptr_t PEB::atl_thunk_slist_ptr() const {
+  return impl_->raw().AtlThunkSListPtr;
+}
+
+uint32_t PEB::atl_thunk_slist_ptr32() const {
+  return impl_->raw().AtlThunkSListPtr32;
+}
+
+uintptr_t PEB::post_process_init_routine() const {
+  return impl_->raw().PostProcessInitRoutine;
+}
+
+uint32_t PEB::session_id() const {
+  return impl_->raw().SessionId;
+}
+
+PEB::PEB(std::unique_ptr<details::peb> impl) :
+  impl_(std::move(impl)) {}
+
+PEB::PEB(PEB&&) noexcept = default;
+PEB& PEB::operator=(PEB&&) noexcept = default;
+
+PEB::~PEB() = default;
+}
diff --git a/deps/LIEF/src/runtime/windows/Process.cpp b/deps/LIEF/src/runtime/windows/Process.cpp
new file mode 100644
index 00000000000..6475f1e069e
--- /dev/null
+++ b/deps/LIEF/src/runtime/windows/Process.cpp
@@ -0,0 +1,122 @@
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
+ *
+ * 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.
+ */
+#include <memory>
+#include "LIEF/runtime/Process.hpp"
+#include "LIEF/runtime/windows/Process.hpp"
+#include "LIEF/runtime/windows/PEB.hpp"
+#include "LIEF/utils.hpp"
+#include "logging.hpp"
+
+#include <Windows.h>
+#include <sysinfoapi.h>
+#include <processenv.h>
+
+namespace LIEF::runtime {
+int32_t Process::pid() {
+  return GetCurrentProcessId();
+}
+
+uint32_t Process::tid() {
+  return GetCurrentThreadId();
+}
+
+uint32_t Process::page_size() {
+  static uint32_t PAGESZ = [] {
+    SYSTEM_INFO info = {};
+    GetNativeSystemInfo(&info);
+    return (uint32_t)info.dwPageSize;
+  }();
+  return PAGESZ;
+}
+
+optional<std::string> Process::get_env(const std::string& key) {
+  auto u16key = u8tou16(key);
+  if (!u16key) {
+    LIEF_DEBUG("Error: {}:{}", __FUNCTION__, __LINE__);
+    return nullopt();
+  }
+  std::array<wchar_t, MAX_PATH> value{};
+
+  size_t size =
+      GetEnvironmentVariableW(reinterpret_cast<const wchar_t*>(u16key->c_str()),
+                              value.data(), value.size());
+
+  if (size == 0) {
+    LIEF_DEBUG("Error: {}:{}. GetEnvironmentVariableW('{}') failed", __FUNCTION__,
+               __LINE__, key);
+    return nullopt();
+  }
+
+  if (size <= value.size()) {
+    return u16tou8(reinterpret_cast<const char16_t*>(value.data()), size);
+  }
+
+  std::vector<wchar_t> out(size, 0);
+  size = GetEnvironmentVariableW(reinterpret_cast<const wchar_t*>(u16key->c_str()),
+                                 out.data(), out.size());
+
+  if (size <= out.size()) {
+    return u16tou8(reinterpret_cast<const char16_t*>(out.data()), size);
+  }
+
+  return nullopt();
+}
+
+Process::EnvVars Process::get_envs() {
+  EnvVars out;
+  auto raw_vars = std::unique_ptr<wchar_t[], decltype(&FreeEnvironmentStringsW)>(
+      GetEnvironmentStringsW(), FreeEnvironmentStringsW
+  );
+
+  if (raw_vars == nullptr) {
+    return out;
+  }
+
+  size_t i = 0;
+  std::vector<std::wstring> vars;
+  while (raw_vars[i] != '\0') {
+    vars.emplace_back(&raw_vars[i]);
+    i += vars.back().size() + 1;
+  }
+
+  out.vars.reserve(vars.size());
+
+  for (const std::wstring& var : vars) {
+    std::string u8var = u16tou8(reinterpret_cast<const char16_t*>(var.c_str()),
+                                var.size(), /*remove_null_char=*/true);
+    if (u8var.empty()) {
+      continue;
+    }
+    size_t pos = u8var.rfind('=');
+
+    if (pos == std::string::npos) {
+      LIEF_DEBUG("Error: can't find '=' delimiter in {}", u8var);
+      continue;
+    }
+    std::string key = u8var.substr(0, pos);
+    std::string value = u8var.substr(pos + 1);
+    out.vars.insert({key, value});
+  }
+  return out;
+}
+
+namespace windows {
+std::unique_ptr<PEB> Process::peb() {
+  return PEB::create();
+}
+}
+
+}
diff --git a/deps/LIEF/src/runtime/windows/common.cpp b/deps/LIEF/src/runtime/windows/common.cpp
new file mode 100644
index 00000000000..941cd4f8f79
--- /dev/null
+++ b/deps/LIEF/src/runtime/windows/common.cpp
@@ -0,0 +1,42 @@
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
+ *
+ * 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.
+ */
+
+#include "LIEF/runtime/windows/Host.hpp"
+
+#include <tuple>
+#include <spdlog/fmt/fmt.h>
+
+namespace LIEF::runtime::windows {
+bool Host::version_t::operator<=(const version_t& rhs) const {
+  return std::tie(major, minor, build_number) <=
+         std::tie(rhs.major, rhs.minor, rhs.build_number);
+}
+
+bool Host::version_t::operator>=(const version_t& rhs) const {
+  return std::tie(major, minor, build_number) >=
+         std::tie(rhs.major, rhs.minor, rhs.build_number);
+}
+
+bool Host::version_t::operator==(const version_t& other) const {
+  return std::tie(major, minor, build_number) ==
+         std::tie(other.major, other.minor, other.build_number);
+}
+
+std::string Host::version_t::to_string() const {
+  return fmt::format("{}.{}.{}", major, minor, build_number);
+}
+
+}
diff --git a/deps/LIEF/src/runtime/windows/injector.cpp b/deps/LIEF/src/runtime/windows/injector.cpp
new file mode 100644
index 00000000000..6af4dfc112d
--- /dev/null
+++ b/deps/LIEF/src/runtime/windows/injector.cpp
@@ -0,0 +1,206 @@
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
+ *
+ * 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.
+ */
+
+#include "LIEF/runtime/windows/injector.hpp"
+#include "LIEF/utils.hpp"
+
+#include "logging.hpp"
+
+#include <windows.h>
+#include <WinBase.h>
+
+namespace LIEF::runtime::windows {
+
+bool injection_context_t::validate() const {
+  return true;
+}
+
+std::string injection_context_t::to_string() const {
+  return "";
+}
+
+static ok_error_t inject_library(const PROCESS_INFORMATION& pi,
+                                 const injection_context_t& ctx) {
+  auto u16library = u8tou16(ctx.library);
+  if (!u16library) {
+    LIEF_ERR("Can't convert '{}' into an utf-16 string", ctx.library);
+    return make_error_code(u16library.error());
+  }
+
+  auto LoadLibraryWp =
+      reinterpret_cast<LPTHREAD_START_ROUTINE>(reinterpret_cast<void*>(
+          GetProcAddress(GetModuleHandleW(L"kernel32.dll"), "LoadLibraryW")
+      ));
+
+  if (LoadLibraryWp == nullptr) {
+    LIEF_ERR("Can't resolve 'LoadLibraryW'");
+    return make_error_code(lief_errors::runtime_error);
+  }
+
+  LPVOID proc_lib_buffer =
+      VirtualAllocEx(pi.hProcess, /*lpAddress=*/NULL, MAX_PATH,
+                     MEM_RESERVE | MEM_COMMIT, PAGE_READWRITE);
+
+  if (proc_lib_buffer == nullptr) {
+    LIEF_ERR("Can't allocated {} bytes in the created process", MAX_PATH);
+    return make_error_code(lief_errors::runtime_error);
+  }
+  size_t bytes_written = 0;
+  int ret =
+      WriteProcessMemory(pi.hProcess, proc_lib_buffer,
+                         reinterpret_cast<const wchar_t*>(u16library->data()),
+                         (u16library->size() + 1) * sizeof(char16_t),
+                         &bytes_written);
+
+  if (ret == 0) {
+    LIEF_ERR("Failed to write '{}' into {}", ctx.library, pi.dwProcessId);
+    return make_error_code(lief_errors::runtime_error);
+  }
+
+  HANDLE loadlibrary_thread = CreateRemoteThread(
+      pi.hProcess, /*lpThreadAttributes=*/NULL, /*dwStackSize=*/0,
+      /*lpStartAddress=*/(LPTHREAD_START_ROUTINE)LoadLibraryWp, proc_lib_buffer,
+      /*dwCreationFlags=*/0, /*lpThreadId=*/NULL
+  );
+
+  if (loadlibrary_thread == 0) {
+    LIEF_ERR("Failed to create remote thread ({})", GetLastError());
+    return make_error_code(lief_errors::runtime_error);
+  }
+
+  if (WaitForSingleObject(loadlibrary_thread, INFINITE) == WAIT_FAILED) {
+    LIEF_ERR("Failed to wait remote thread ({})", GetLastError());
+    return make_error_code(lief_errors::runtime_error);
+  }
+
+  return ok();
+}
+
+std::u16string env_string(const injection_context_t& ctx) {
+  std::string out;
+
+  if (ctx.env.empty()) {
+    return u"";
+  }
+
+  for (const auto& [k, v] : ctx.env) {
+    if (k.empty() || v.empty()) {
+      LIEF_DEBUG("Error: {}:{} Skipping value={}, key={}", __FUNCTION__, __LINE__,
+                 k, v);
+      continue;
+    }
+
+    out += std::move(k) + '=' + std::move(v) + '\0';
+  }
+
+  if (out.empty()) {
+    return u"";
+  }
+
+
+  if (auto u16 = u8tou16(out)) {
+    return std::move(*u16) + u"\0\0";
+  }
+
+  return u"";
+}
+
+ok_error_t inject_spawn(const injection_context_t& ctx) {
+  LIEF_DEBUG("{}: target='{}', library='{}', args={}", __FUNCTION__,
+             ctx.target_path, ctx.library, ctx.args);
+
+  if (!ctx.validate()) {
+    return make_error_code(lief_errors::inconsistent);
+  }
+
+  auto u16target = u8tou16(ctx.target_path);
+  if (!u16target) {
+    LIEF_ERR("Can't convert '{}' into an utf-16 string", ctx.target_path);
+    return make_error_code(u16target.error());
+  }
+
+  auto u16args = u8tou16(ctx.args);
+  if (!u16args) {
+    LIEF_ERR("Can't convert '{}' into an utf-16 string", ctx.args);
+    return make_error_code(u16args.error());
+  }
+
+  std::u16string env;
+  if (!ctx.env.empty()) {
+    env = env_string(ctx);
+    // LIEF_DEBUG("Env:\n{}", dump((const uint8_t*)env.data(), env.size() *
+    // sizeof(char16_t)));
+  }
+
+  STARTUPINFOW si = {};
+  PROCESS_INFORMATION pi = {};
+
+  si.cb = sizeof(STARTUPINFOW);
+
+  DWORD dwCreationFlags = CREATE_SUSPENDED;
+
+  if (!env.empty()) {
+    dwCreationFlags |= CREATE_UNICODE_ENVIRONMENT;
+  }
+
+  BOOL ret = CreateProcessW(
+      /*lpApplicationName=*/u16target->empty() ?
+          NULL :
+          reinterpret_cast<const wchar_t*>(u16target->c_str()),
+      /*lpCommandLine=*/u16args->empty() ?
+          NULL :
+          reinterpret_cast<wchar_t*>(u16args->data()),
+      /*lpProcessAttributes=*/NULL,
+      /*lpThreadAttributes=*/NULL,
+      /*bInheritHandles=*/true, dwCreationFlags,
+      /*lpEnvironment=*/env.empty() ? NULL : env.data(),
+      /*lpCurrentDirectory=*/NULL,
+      /*lpStartupInfo=*/&si,
+      /*lpProcessInformation=*/&pi
+  );
+
+  if (!ret) {
+    LIEF_ERR("CreateProcessW() failed with error: {}", GetLastError());
+    return make_error_code(lief_errors::runtime_error);
+  }
+
+  LIEF_DEBUG("'{} {}' created: pid: {}, tid: {}", ctx.target_path, ctx.args,
+             pi.dwProcessId, pi.dwThreadId);
+
+  if (!ctx.library.empty()) {
+    auto is_ok = inject_library(pi, ctx);
+    if (!is_ok) {
+      return make_error_code(is_ok.error());
+    }
+  }
+
+
+  if (int ret = ResumeThread(pi.hThread); ret < 0) {
+    LIEF_ERR("ResumeThread() failed with error: {}", GetLastError());
+    return make_error_code(lief_errors::runtime_error);
+  }
+
+  if (WaitForSingleObject(pi.hProcess, INFINITE) == WAIT_FAILED) {
+    LIEF_ERR("WaitForSingleObject failed with error: {}", GetLastError());
+    return make_error_code(lief_errors::runtime_error);
+  }
+
+  // CloseHandle(pi.hProcess);
+  // CloseHandle(pi.hThread);
+
+  return ok();
+}
+}
diff --git a/deps/LIEF/src/runtime/windows/no_runtime.cpp b/deps/LIEF/src/runtime/windows/no_runtime.cpp
new file mode 100644
index 00000000000..a73cfa231df
--- /dev/null
+++ b/deps/LIEF/src/runtime/windows/no_runtime.cpp
@@ -0,0 +1,308 @@
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
+ *
+ * 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.
+ */
+
+#include "LIEF/runtime/windows/Module.hpp"
+#include "LIEF/runtime/windows/Host.hpp"
+#include "LIEF/runtime/windows/PEB.hpp"
+#include "LIEF/runtime/windows/LdrDataTableEntry.hpp"
+#include "LIEF/runtime/windows/Process.hpp"
+#include "LIEF/runtime/windows/injector.hpp"
+#include "LIEF/PE/Binary.hpp"
+#include "LIEF/optional.hpp"
+
+
+namespace LIEF::runtime {
+namespace details {
+class ModuleIt {};
+class Module {};
+}
+}
+
+namespace LIEF::runtime::windows {
+
+namespace details {
+class peb {};
+class ldr_entry {};
+class ldr_entry_it {};
+}
+
+std::unique_ptr<Module> dlopen(const std::string& /*name*/) {
+  return nullptr;
+}
+
+std::unique_ptr<Module> find_module(const std::string& /*name*/) {
+  return nullptr;
+}
+
+std::unique_ptr<Module> Module::from_handle(void* /*H*/) {
+  return nullptr;
+}
+
+void* Module::handle() const {
+  return nullptr;
+}
+
+void* Module::dlsym(const std::string& /*name*/) const {
+  return nullptr;
+}
+
+std::unique_ptr<PE::Binary> Module::parse_from_path() const {
+  return nullptr;
+}
+
+std::unique_ptr<PE::Binary>
+    Module::parse_from_path(const PE::ParserConfig&) const {
+  return nullptr;
+}
+
+std::unique_ptr<PE::Binary> Module::parse_from_memory() const {
+  return nullptr;
+}
+
+std::unique_ptr<PE::Binary>
+    Module::parse_from_memory(const PE::ParserConfig&) const {
+  return nullptr;
+}
+
+bool injection_context_t::validate() const {
+  return true;
+}
+
+std::string injection_context_t::to_string() const {
+  return "";
+}
+
+ok_error_t inject_spawn(const injection_context_t& /*ctx*/) {
+  return make_error_code(lief_errors::not_supported);
+}
+
+Host::version_t Host::version() {
+  return {};
+}
+
+std::unique_ptr<PEB> Process::peb() {
+  return nullptr;
+}
+
+bool PEB::being_debugged() const {
+  return false;
+}
+
+uintptr_t PEB::ldr() const {
+  return 0;
+}
+
+uintptr_t PEB::process_parameters() const {
+  return 0;
+}
+
+uintptr_t PEB::atl_thunk_slist_ptr() const {
+  return 0;
+}
+
+uint32_t PEB::atl_thunk_slist_ptr32() const {
+  return 0;
+}
+
+uintptr_t PEB::post_process_init_routine() const {
+  return 0;
+}
+
+uint32_t PEB::session_id() const {
+  return 0;
+}
+
+PEB::PEB(std::unique_ptr<details::peb> /*impl*/) :
+  impl_(nullptr) {}
+
+PEB::PEB(PEB&&) noexcept = default;
+PEB& PEB::operator=(PEB&&) noexcept = default;
+
+PEB::~PEB() = default;
+
+PEB::entries_it PEB::entries() const {
+  return make_range(LdrDataTableEntry::Iterator(), LdrDataTableEntry::Iterator());
+}
+
+LdrDataTableEntry::
+    LdrDataTableEntry(std::unique_ptr<details::ldr_entry> /*impl*/) :
+  impl_(nullptr) {}
+
+LdrDataTableEntry::LdrDataTableEntry(LdrDataTableEntry&&) noexcept = default;
+LdrDataTableEntry&
+    LdrDataTableEntry::operator=(LdrDataTableEntry&&) noexcept = default;
+
+LdrDataTableEntry::~LdrDataTableEntry() = default;
+
+uintptr_t LdrDataTableEntry::dll_base() const {
+  return 0;
+}
+
+uintptr_t LdrDataTableEntry::entry_point() const {
+  return 0;
+}
+
+uint32_t LdrDataTableEntry::size_of_image() const {
+  return 0;
+}
+
+std::string LdrDataTableEntry::full_dll_name() const {
+  return "";
+}
+
+std::string LdrDataTableEntry::base_dll_name() const {
+  return "";
+}
+
+uint32_t LdrDataTableEntry::flags() const {
+  return 0;
+}
+
+uint16_t LdrDataTableEntry::obsolete_load_count() const {
+  return 0;
+}
+
+uint16_t LdrDataTableEntry::tls_index() const {
+  return 0;
+}
+
+uint32_t LdrDataTableEntry::time_date_stamp() const {
+  return 0;
+}
+
+uintptr_t LdrDataTableEntry::entry_point_activation_context() const {
+  return 0;
+}
+
+uintptr_t LdrDataTableEntry::lock() const {
+  return 0;
+}
+
+optional<uintptr_t> LdrDataTableEntry::ddag_node() const {
+  return nullopt();
+}
+
+optional<uintptr_t> LdrDataTableEntry::load_context() const {
+  return nullopt();
+}
+
+optional<uintptr_t> LdrDataTableEntry::parent_dll_base() const {
+  return nullopt();
+}
+
+optional<uintptr_t> LdrDataTableEntry::switch_back_context() const {
+  return nullopt();
+}
+
+optional<uintptr_t> LdrDataTableEntry::original_base() const {
+  return nullopt();
+}
+
+optional<int64_t> LdrDataTableEntry::load_time() const {
+  return nullopt();
+}
+
+optional<uint32_t> LdrDataTableEntry::base_name_hash_value() const {
+  return nullopt();
+}
+
+optional<int32_t> LdrDataTableEntry::load_reason() const {
+  return nullopt();
+}
+
+optional<uint32_t> LdrDataTableEntry::implicit_path_options() const {
+  return nullopt();
+}
+
+optional<uint32_t> LdrDataTableEntry::reference_count() const {
+  return nullopt();
+}
+
+optional<uint32_t> LdrDataTableEntry::dependent_load_flags() const {
+  return nullopt();
+}
+
+optional<uint8_t> LdrDataTableEntry::signing_level() const {
+  return nullopt();
+}
+
+optional<uint32_t> LdrDataTableEntry::check_sum() const {
+  return nullopt();
+}
+
+optional<uintptr_t> LdrDataTableEntry::active_patch_image_base() const {
+  return nullopt();
+}
+
+optional<uint32_t> LdrDataTableEntry::hot_patch_state() const {
+  return nullopt();
+}
+
+std::string LdrDataTableEntry::to_string() const {
+  return "";
+}
+
+LdrDataTableEntry::Iterator::Iterator() = default;
+
+LdrDataTableEntry::Iterator::
+    Iterator(std::unique_ptr<details::ldr_entry_it> /*impl*/) :
+  impl_(nullptr) {}
+
+LdrDataTableEntry::Iterator::Iterator(const Iterator&) :
+  impl_(nullptr) {}
+
+LdrDataTableEntry::Iterator&
+    LdrDataTableEntry::Iterator::operator=(const Iterator& other) {
+  if (this != &other) {
+    cached_.reset();
+  }
+  return *this;
+}
+
+LdrDataTableEntry::Iterator::Iterator(Iterator&&) noexcept = default;
+LdrDataTableEntry::Iterator&
+    LdrDataTableEntry::Iterator::operator=(Iterator&&) noexcept = default;
+
+LdrDataTableEntry::Iterator::~Iterator() = default;
+
+bool operator==(const LdrDataTableEntry::Iterator&,
+                const LdrDataTableEntry::Iterator&) {
+  return true;
+}
+
+LdrDataTableEntry::Iterator& LdrDataTableEntry::Iterator::operator++() {
+  return *this;
+}
+
+LdrDataTableEntry::Iterator& LdrDataTableEntry::Iterator::operator--() {
+  return *this;
+}
+
+void LdrDataTableEntry::Iterator::load() const {}
+
+const LdrDataTableEntry& LdrDataTableEntry::Iterator::operator*() const {
+  return *cached_;
+}
+
+const LdrDataTableEntry* LdrDataTableEntry::Iterator::operator->() const {
+  return cached_.get();
+}
+
+std::unique_ptr<LdrDataTableEntry> LdrDataTableEntry::Iterator::yield() {
+  return nullptr;
+}
+
+}
diff --git a/deps/LIEF/src/third-party/utfcpp.hpp b/deps/LIEF/src/third-party/utfcpp.hpp
index 954715bb386..36300d4e9a8 100644
--- a/deps/LIEF/src/third-party/utfcpp.hpp
+++ b/deps/LIEF/src/third-party/utfcpp.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2021 - 2025 R. Thomas
+/* Copyright 2021 - 2026 R. Thomas
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -17,9 +17,9 @@
 #include "LIEF/config.h"

 #ifndef LIEF_EXTERNAL_UTF8CPP
-#include <internal/utfcpp/utf8/unchecked.h>
+  #include <internal/utfcpp/utf8/unchecked.h>
 #else
-#include <utf8/unchecked.h>
+  #include <utf8/unchecked.h>
 #endif

 #endif
diff --git a/deps/LIEF/src/threading_alt.cpp b/deps/LIEF/src/threading_alt.cpp
new file mode 100644
index 00000000000..877ddfb8379
--- /dev/null
+++ b/deps/LIEF/src/threading_alt.cpp
@@ -0,0 +1,98 @@
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
+ *
+ * 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.
+ */
+#include "threading_alt.h"
+
+#include <mutex>
+#include <condition_variable>
+#include <mbedtls/threading.h>
+
+inline auto* get_mu(mbedtls_platform_mutex_t* mu) {
+  return reinterpret_cast<std::mutex*>(mu->mutex);
+}
+
+inline auto* get_cv(mbedtls_platform_condition_variable_t* cv) {
+  return reinterpret_cast<std::condition_variable*>(cv->cv);
+}
+
+void mbedtls_init_threading_alt() {
+#if defined(MBEDTLS_THREADING_ALT)
+  mbedtls_threading_set_alt(
+      /*mutex_init=*/
+      [](mbedtls_platform_mutex_t* ctx) -> int {
+        ctx->mutex = new std::mutex{};
+        return 0;
+      },
+      /*mutex_destroy=*/
+      [](mbedtls_platform_mutex_t* ctx) {
+        delete get_mu(ctx);
+        ctx->mutex = nullptr;
+      },
+      /*mutex_lock=*/
+      [](mbedtls_platform_mutex_t* ctx) -> int {
+        if (ctx->mutex == nullptr) {
+          return MBEDTLS_ERR_THREADING_USAGE_ERROR;
+        }
+        get_mu(ctx)->lock();
+        return 0;
+      },
+      /*mutex_unlock=*/
+      [](mbedtls_platform_mutex_t* ctx) -> int {
+        if (ctx->mutex == nullptr) {
+          return MBEDTLS_ERR_THREADING_USAGE_ERROR;
+        }
+        get_mu(ctx)->unlock();
+        return 0;
+      },
+      /*cond_init=*/
+      [](mbedtls_platform_condition_variable_t* cv) -> int {
+        cv->cv = new std::condition_variable{};
+        return 0;
+      },
+      /*cond_destroy=*/
+      [](mbedtls_platform_condition_variable_t* cv) {
+        delete get_cv(cv);
+        cv->cv = nullptr;
+      },
+      /*cond_signal=*/
+      [](mbedtls_platform_condition_variable_t* cv) -> int {
+        if (cv->cv == nullptr) {
+          return MBEDTLS_ERR_THREADING_USAGE_ERROR;
+        }
+        get_cv(cv)->notify_one();
+        return 0;
+      },
+      /*cond_broadcast=*/
+      [](mbedtls_platform_condition_variable_t* cv) -> int {
+        if (cv->cv == nullptr) {
+          return MBEDTLS_ERR_THREADING_USAGE_ERROR;
+        }
+        get_cv(cv)->notify_all();
+        return 0;
+      },
+      /*cond_wait=*/
+      [](mbedtls_platform_condition_variable_t* cv,
+         mbedtls_platform_mutex_t* mu) -> int {
+        if (cv->cv == nullptr || mu->mutex == nullptr) {
+          return MBEDTLS_ERR_THREADING_USAGE_ERROR;
+        }
+        std::unique_lock<std::mutex> lk(*get_mu(mu), std::adopt_lock);
+        get_cv(cv)->wait(lk);
+        lk.release();
+        return 0;
+      }
+  );
+#endif
+}
diff --git a/deps/LIEF/src/threading_alt.h b/deps/LIEF/src/threading_alt.h
new file mode 100644
index 00000000000..03d34270609
--- /dev/null
+++ b/deps/LIEF/src/threading_alt.h
@@ -0,0 +1,29 @@
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
+ *
+ * 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.
+ */
+#pragma once
+
+// NOLINTBEGIN
+typedef struct mbedtls_platform_mutex_t {
+  void* mutex;
+} mbedtls_platform_mutex_t;
+
+typedef struct mbedtls_platform_condition_variable_t {
+  void* cv;
+} mbedtls_platform_condition_variable_t;
+
+void mbedtls_init_threading_alt();
+
+// NOLINTEND
diff --git a/deps/LIEF/src/utils.cpp b/deps/LIEF/src/utils.cpp
index dc3dda286c6..18f6fc104a2 100644
--- a/deps/LIEF/src/utils.cpp
+++ b/deps/LIEF/src/utils.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -14,6 +14,7 @@
  * limitations under the License.
  */
 #include <algorithm>
+#include <cstddef>
 #include <iterator>
 #include <string>

@@ -28,40 +29,35 @@
 #include "LIEF/config.h"

 #include "logging.hpp"
-#include "messages.hpp"
 #include "internal_utils.hpp"

 namespace LIEF {

-template <typename octet_iterator>
+template<typename octet_iterator>
 result<uint32_t> next(octet_iterator& it, octet_iterator end) {
   using namespace utf8;
+  using namespace utf8::internal;
   utfchar32_t cp = 0;
-  internal::utf_error err_code = internal::validate_next(it, end, cp);
+  internal::utf_error err_code = validate_next(it, end, cp);
   switch (err_code) {
-    case internal::UTF8_OK :
-      break;
-    case internal::NOT_ENOUGH_ROOM :
-      return make_error_code(lief_errors::data_too_large);
-    case internal::INVALID_LEAD :
-    case internal::INCOMPLETE_SEQUENCE :
-    case internal::OVERLONG_SEQUENCE :
-      return make_error_code(lief_errors::read_error);
-    case internal::INVALID_CODE_POINT :
-      return make_error_code(lief_errors::read_error);
+    case UTF8_OK: break;
+    case NOT_ENOUGH_ROOM: return make_error_code(lief_errors::data_too_large);
+    case INVALID_LEAD:
+    case INCOMPLETE_SEQUENCE:
+    case OVERLONG_SEQUENCE:
+    case INVALID_CODE_POINT: return make_error_code(lief_errors::read_error);
   }
   return cp;
 }

-std::string u16tou8(const std::u16string& string, bool remove_null_char) {
+std::string u16tou8(const char16_t* buffer, size_t size, bool remove_null_char) {
   std::string name;

   std::u16string clean_string;
-  std::copy_if(std::begin(string), std::end(string),
-               std::back_inserter(clean_string),
+  std::copy_if(buffer, buffer + size, std::back_inserter(clean_string),
                utf8::internal::is_code_point_valid);

-  utf8::unchecked::utf16to8(std::begin(clean_string), std::end(clean_string),
+  utf8::unchecked::utf16to8(clean_string.begin(), clean_string.end(),
                             std::back_inserter(name));

   if (remove_null_char) {
@@ -70,11 +66,13 @@ std::string u16tou8(const std::u16string& string, bool remove_null_char) {
   return name;
 }

+
 result<std::u16string> u8tou16(const std::string& string) {
+  using namespace utf8::internal;
   std::u16string name;
   auto start = string.begin();
-  auto end   = string.end();
-  auto res   = std::back_inserter(name);
+  auto end = string.end();
+  auto res = std::back_inserter(name);
   while (start < end) {
     auto cp = next(start, end);
     if (!cp) {
@@ -82,8 +80,8 @@ result<std::u16string> u8tou16(const std::string& string) {
     }
     uint32_t cp_val = *cp;
     if (cp_val > 0xffff) {
-      *res++ = static_cast<uint16_t>((cp_val >> 10)   + utf8::internal::LEAD_OFFSET);
-      *res++ = static_cast<uint16_t>((cp_val & 0x3ff) + utf8::internal::TRAIL_SURROGATE_MIN);
+      *res++ = static_cast<uint16_t>((cp_val >> 10) + LEAD_OFFSET);
+      *res++ = static_cast<uint16_t>((cp_val & 0x3ff) + TRAIL_SURROGATE_MIN);
     } else {
       *res++ = static_cast<uint16_t>(cp_val);
     }
@@ -99,8 +97,7 @@ inline std::string pretty_hex(char c) {
 }

 std::string dump(const uint8_t* buffer, size_t size, const std::string& title,
-                 const std::string& prefix, size_t limit)
-{
+                 const std::string& prefix, size_t limit) {
   if (size < 2) {
     return "";
   }
@@ -109,7 +106,11 @@ std::string dump(const uint8_t* buffer, size_t size, const std::string& title,
   std::string banner;

   if (!title.empty()) {
-    banner  = prefix + "+" + std::string(22 * 3, '-') + "---+" + "\n" + prefix + "| ";
+    banner = prefix + "+" +
+             std::string(static_cast<size_t>(22 * 3), '-')
+                 .append("---+\n")
+                 .append(prefix)
+                 .append("| ");
     banner += title;
     if (title.size() < 68) {
       banner += std::string(68 - title.size(), ' ');
@@ -117,15 +118,19 @@ std::string dump(const uint8_t* buffer, size_t size, const std::string& title,
     banner += "|\n";
   }

-  out = std::string(22 * 3, '-') + "\n";
-  std::string lhs, rhs;
+  out = std::string(static_cast<size_t>(22 * 3), '-') + "\n";
+  std::string rhs;
   if (limit > 0) {
     size = std::min<size_t>(size, limit);
   }

   for (size_t i = 0; i < size; ++i) {
     if (i == 0) {
-      out = prefix + "+" + std::string(22 * 3, '-') + "---+" + "\n" + prefix + "| ";
+      out = prefix + "+" +
+            std::string(static_cast<size_t>(22 * 3), '-')
+                .append("---+\n")
+                .append(prefix)
+                .append("| ");
     }

     if (i > 0 && i % 16 == 0) {
@@ -144,10 +149,10 @@ std::string dump(const uint8_t* buffer, size_t size, const std::string& title,
       out += rhs + " |";
       rhs = "";
     }
-
   }

-  out += std::string("\n") + prefix + '+' + std::string(22 * 3, '-') + "---+";
+  out += std::string("\n") + prefix + '+' +
+         std::string(static_cast<size_t>(22 * 3), '-') + "---+";
   return banner + out;
 }

@@ -171,7 +176,7 @@ lief_version_t version() {
 }

 #if !defined(LIEF_EXTENDED)
-result<std::string> demangle(const std::string&/*mangled*/) {
+result<std::string> demangle(const std::string& /*mangled*/) {
   logging::needs_lief_extended();
   return make_error_code(lief_errors::require_extended_version);
 }
diff --git a/deps/LIEF/src/visitors/hash.cpp b/deps/LIEF/src/visitors/hash.cpp
index 5d7abcb3878..29df1e0212e 100644
--- a/deps/LIEF/src/visitors/hash.cpp
+++ b/deps/LIEF/src/visitors/hash.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -16,37 +16,38 @@
 #include <functional>
 #include <numeric>

-#include "mbedtls/sha256.h"
+#include "mbedtls_wraps.h"
+#include "psa/crypto_builtin_primitives.h"

 #include "LIEF/hash.hpp"


 #if defined(LIEF_PE_SUPPORT)
-#include "LIEF/PE/hash.hpp"
+  #include "LIEF/PE/hash.hpp"
 #endif

 #if defined(LIEF_ELF_SUPPORT)
-#include "LIEF/ELF/hash.hpp"
+  #include "LIEF/ELF/hash.hpp"
 #endif

 #if defined(LIEF_MACHO_SUPPORT)
-#include "LIEF/MachO/hash.hpp"
+  #include "LIEF/MachO/hash.hpp"
 #endif

 #if defined(LIEF_OAT_SUPPORT)
-#include "LIEF/OAT/hash.hpp"
+  #include "LIEF/OAT/hash.hpp"
 #endif

 #if defined(LIEF_ART_SUPPORT)
-#include "LIEF/ART/hash.hpp"
+  #include "LIEF/ART/hash.hpp"
 #endif

 #if defined(LIEF_DEX_SUPPORT)
-#include "LIEF/DEX/hash.hpp"
+  #include "LIEF/DEX/hash.hpp"
 #endif

 #if defined(LIEF_VDEX_SUPPORT)
-#include "LIEF/VDEX/hash.hpp"
+  #include "LIEF/VDEX/hash.hpp"
 #endif

 namespace LIEF {
@@ -97,8 +98,7 @@ Hash::~Hash() = default;
 Hash::Hash() = default;

 Hash::Hash(Hash::value_type init_value) :
-  value_{init_value}
-{}
+  value_{init_value} {}

 Hash& Hash::process(const Object& obj) {
   value_ = combine(value_, LIEF::hash(obj));
@@ -143,10 +143,10 @@ Hash::value_type Hash::hash(const void* raw, size_t size) {
   std::vector<uint8_t> sha256(32, 0u);
   mbedtls_sha256(start, size, sha256.data(), 0);

-  return std::accumulate(std::begin(sha256), std::end(sha256), size_t(0),
-     [] (size_t v, uint8_t n) {
-        return (v << sizeof(uint8_t) * 8u) | n;
-     });
+  return std::accumulate(sha256.begin(), sha256.end(), size_t(0),
+                         [](size_t v, uint8_t n) {
+                           return (v << sizeof(uint8_t) * 8u) | n;
+                         });
 }

 Hash::value_type Hash::hash(span<const uint8_t> raw) {
diff --git a/deps/LIEF/src/visitors/json.cpp b/deps/LIEF/src/visitors/json.cpp
index f9f52f77bb7..20de9bd17aa 100644
--- a/deps/LIEF/src/visitors/json.cpp
+++ b/deps/LIEF/src/visitors/json.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -24,11 +24,9 @@ namespace LIEF {
 JsonVisitor::JsonVisitor() = default;

 JsonVisitor::JsonVisitor(json node) :
-  node_{std::move(node)}
-{}
+  node_{std::move(node)} {}

-JsonVisitor::JsonVisitor(const JsonVisitor&)            = default;
+JsonVisitor::JsonVisitor(const JsonVisitor&) = default;
 JsonVisitor& JsonVisitor::operator=(const JsonVisitor&) = default;

 }
-
diff --git a/deps/LIEF/src/visitors/json.hpp b/deps/LIEF/src/visitors/json.hpp
index 275d0ee48a6..7bd2d2ab5d4 100644
--- a/deps/LIEF/src/visitors/json.hpp
+++ b/deps/LIEF/src/visitors/json.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -18,10 +18,18 @@

 #include "LIEF/Visitor.hpp"

+#if defined(__clang__)
+  #pragma clang diagnostic push
+  #pragma clang diagnostic ignored "-Wunknown-warning-option"
+  #pragma clang diagnostic ignored "-Wlifetime-safety"
+#endif
 #ifndef LIEF_NLOHMANN_JSON_EXTERNAL
-#include "internal/nlohmann/json.hpp"
+  #include "internal/nlohmann/json.hpp"
 #else
-#include <nlohmann/json.hpp>
+  #include <nlohmann/json.hpp>
+#endif
+#if defined(__clang__)
+  #pragma clang diagnostic pop
 #endif

 using json = nlohmann::json;
@@ -35,7 +43,7 @@ class JsonVisitor : public Visitor {
   JsonVisitor(const JsonVisitor&);
   JsonVisitor& operator=(const JsonVisitor&);

-  inline json get() const {
+  json get() const {
     return node_;
   }

diff --git a/deps/LIEF/third-party/expected/include/tl/expected.hpp b/deps/LIEF/third-party/expected/include/tl/expected.hpp
index 06e6dc4f6c7..59e59aa1bd1 100644
--- a/deps/LIEF/third-party/expected/include/tl/expected.hpp
+++ b/deps/LIEF/third-party/expected/include/tl/expected.hpp
@@ -17,8 +17,8 @@
 #define TL_EXPECTED_HPP

 #define TL_EXPECTED_VERSION_MAJOR 1
-#define TL_EXPECTED_VERSION_MINOR 2
-#define TL_EXPECTED_VERSION_PATCH 0
+#define TL_EXPECTED_VERSION_MINOR 3
+#define TL_EXPECTED_VERSION_PATCH 1

 #include <exception>
 #include <functional>
@@ -51,6 +51,12 @@
 #define TL_EXPECTED_GCC55
 #endif

+#ifdef _MSVC_LANG
+#define TL_CPLUSPLUS _MSVC_LANG
+#else
+#define TL_CPLUSPLUS __cplusplus
+#endif
+
 #if !defined(TL_ASSERT)
 //can't have assert in constexpr in C++11 and GCC 4.9 has a compiler bug
 #if (TL_CPLUSPLUS > 201103L) && !defined(TL_EXPECTED_GCC49)
@@ -109,12 +115,6 @@ struct is_trivially_copy_constructible<std::vector<T, A>> : std::false_type {};
   std::is_trivially_destructible<T>
 #endif

-#ifdef _MSVC_LANG
-#define TL_CPLUSPLUS _MSVC_LANG
-#else
-#define TL_CPLUSPLUS __cplusplus
-#endif
-
 #if TL_CPLUSPLUS > 201103L
 #define TL_EXPECTED_CXX14
 #endif
@@ -219,21 +219,13 @@ struct unexpect_t {
 };
 static constexpr unexpect_t unexpect{};

-namespace detail {
-template <typename E>
-[[noreturn]] TL_EXPECTED_11_CONSTEXPR void throw_exception(E &&e) {
 #ifdef TL_EXPECTED_EXCEPTIONS_ENABLED
-  throw std::forward<E>(e);
+#define TL_EXPECTED_THROW_EXCEPTION(e) throw((e));
 #else
-  (void)e;
-#ifdef _MSC_VER
-  __assume(0);
-#else
-  __builtin_unreachable();
-#endif
+#define TL_EXPECTED_THROW_EXCEPTION(e) std::terminate();
 #endif
-}

+namespace detail {
 #ifndef TL_TRAITS_MUTEX
 #define TL_TRAITS_MUTEX
 // C++14-style aliases for brevity
@@ -2024,28 +2016,28 @@ public:
             detail::enable_if_t<!std::is_void<U>::value> * = nullptr>
   TL_EXPECTED_11_CONSTEXPR const U &value() const & {
     if (!has_value())
-      detail::throw_exception(bad_expected_access<E>(err().value()));
+      TL_EXPECTED_THROW_EXCEPTION(bad_expected_access<E>(err().value()));
     return val();
   }
   template <class U = T,
             detail::enable_if_t<!std::is_void<U>::value> * = nullptr>
   TL_EXPECTED_11_CONSTEXPR U &value() & {
     if (!has_value())
-      detail::throw_exception(bad_expected_access<E>(err().value()));
+      TL_EXPECTED_THROW_EXCEPTION(bad_expected_access<E>(err().value()));
     return val();
   }
   template <class U = T,
             detail::enable_if_t<!std::is_void<U>::value> * = nullptr>
   TL_EXPECTED_11_CONSTEXPR const U &&value() const && {
     if (!has_value())
-      detail::throw_exception(bad_expected_access<E>(std::move(err()).value()));
+      TL_EXPECTED_THROW_EXCEPTION(bad_expected_access<E>(std::move(err()).value()));
     return std::move(val());
   }
   template <class U = T,
             detail::enable_if_t<!std::is_void<U>::value> * = nullptr>
   TL_EXPECTED_11_CONSTEXPR U &&value() && {
     if (!has_value())
-      detail::throw_exception(bad_expected_access<E>(std::move(err()).value()));
+      TL_EXPECTED_THROW_EXCEPTION(bad_expected_access<E>(std::move(err()).value()));
     return std::move(val());
   }

diff --git a/deps/LIEF/third-party/frozen/README.rst b/deps/LIEF/third-party/frozen/README.rst
index 5a1ceb9f2fa..6efdcd75b2f 100644
--- a/deps/LIEF/third-party/frozen/README.rst
+++ b/deps/LIEF/third-party/frozen/README.rst
@@ -10,8 +10,8 @@ Frozen provides:

 - immutable (a.k.a. frozen), ``constexpr``-compatible versions of ``std::set``,
   ``std::unordered_set``, ``std::map`` and ``std::unordered_map``.
-
-- fixed-capacity, ``constinit``-compatible versions of ``std::map`` and
+
+- fixed-capacity, ``constinit``-compatible versions of ``std::map`` and
   ``std::unordered_map`` with immutable, compile-time selected keys mapped
   to mutable values.

@@ -26,22 +26,31 @@ Once initialized, the container keys cannot be updated, and in exchange, lookups
 are faster. And initialization is free when ``constexpr`` or ``constinit`` is
 used :-).

+Stable Version
+--------------
+
+The Frozen library is pretty stable now, have been so for years, so:
+
+1. The ``master`` version can be used as the default **stable** version.
+2. It is in maintenance mode. I still accept commits that make the code cleaner
+   ``|`` faster ``|`` more modern, but expect some latency in the review process.
+

 Installation
 ------------

 Just copy the ``include/frozen`` directory somewhere and points to it using the ``-I`` flag. Alternatively, using CMake:

-.. code:: sh
+.. code-block:: sh

-    > mkdir build
-    > cd build
-    > cmake -D CMAKE_BUILD_TYPE=Release ..
-    > make install
+    mkdir build
+    cd build
+    cmake -D CMAKE_BUILD_TYPE=Release ..
+    make install


 Installation via CMake populates configuration files into the ``/usr/local/share``
-directory which can be consumed by CMake's ``find_package`` instrinsic function.
+directory which can be consumed by CMake's ``find_package`` intrinsic function.

 Requirements
 ------------
@@ -50,7 +59,7 @@ A C++ compiler that supports C++14. Clang version 5 is a good pick, GCC version
 6 lags behind in terms of ``constexpr`` compilation time (At least on my
 setup), but compiles correctly. Visual Studio 2017 also works correctly!

-Note that gcc 5 isn't supported. (Here's an `old compat branch`_ where a small amount of stuff was ported.)
+Note that GCC 5 isn't supported. (Here's an `old compat branch`_ where a small amount of stuff was ported.)

 .. _old compat branch: https://github.com/cbeck88/frozen/tree/gcc5-support

@@ -59,7 +68,7 @@ Usage

 Compiled with ``-std=c++14`` flag:

-.. code:: C++
+.. code-block:: C++

     #include <frozen/set.h>

@@ -73,7 +82,7 @@ Compiled with ``-std=c++14`` flag:

 As the constructor and some methods are ``constexpr``, it's also possible to write weird stuff like:

-.. code:: C++
+.. code-block:: C++

     #include <frozen/set.h>

@@ -82,7 +91,7 @@ As the constructor and some methods are ``constexpr``, it's also possible to wri

 String support is built-in:

-.. code:: C++
+.. code-block:: C++

     #include <frozen/unordered_map.h>
     #include <frozen/string.h>
@@ -93,11 +102,11 @@ String support is built-in:
     };
     constexpr auto val = olaf.at("19");

-The associative containers have different functionality with and without ``constexpr``.
-With ``constexpr``, frozen maps have immutable keys and values. Without ``constexpr``, the
+The associative containers have different functionality with and without ``constexpr``.
+With ``constexpr``, frozen maps have immutable keys and values. Without ``constexpr``, the
 values can be updated in runtime (the keys, however, remain immutable):

-.. code:: C++
+.. code-block:: C++


     #include <frozen/unordered_map.h>
@@ -107,7 +116,7 @@ values can be updated in runtime (the keys, however, remain immutable):
         {"Anna", "???"},
         {"Elsa", "???"}
     };
-
+
     int main() {
     	voice.at("Anna") = "Kristen";
 	voice.at("Elsa") = "Idina";
@@ -115,7 +124,7 @@ values can be updated in runtime (the keys, however, remain immutable):

 You may also prefer a slightly more DRY initialization syntax:

-.. code:: C++
+.. code-block:: C++

     #include <frozen/set.h>

@@ -142,7 +151,7 @@ It's also possible to specialize the ``frozen::elsa`` structure used for
 hashing. Note that unlike `std::hash`, the hasher also takes a seed in addition
 to the value being hashed.

-.. code:: C++
+.. code-block:: C++

     template <class T> struct elsa {
       // in case of collisions, different seeds are tried
@@ -163,7 +172,7 @@ Troubleshooting

 If you hit a message like this:

-.. code:: none
+.. code-block:: none

     [...]
     note: constexpr evaluation hit maximum step limit; possible infinite loop?
@@ -173,7 +182,7 @@ thresholds, using ``-fconstexpr-steps=1000000000`` for instance, or the hash
 functions used by frozen do not suit your data, and you should change them, as
 in the following:

-.. code:: c++
+.. code-block:: c++

     struct olaf {
       constexpr std::size_t operator()(frozen::string const &value, std::size_t seed) const { return seed ^ value[0];}
@@ -186,47 +195,47 @@ Tests and Benchmarks

 Using hand-written Makefiles crafted with love and care:

-.. code:: sh
+.. code-block:: sh

-    > # running tests
-    > make -C tests check
-    > # running benchmarks
-    > make -C benchmarks GOOGLE_BENCHMARK_PREFIX=<GOOGLE-BENCHMARK_INSTALL_DIR>
+    # running tests
+    make -C tests check
+    # running benchmarks
+    make -C benchmarks GOOGLE_BENCHMARK_PREFIX=<GOOGLE-BENCHMARK_INSTALL_DIR>

 Using CMake to generate a static configuration build system:

-.. code:: sh
+.. code-block:: sh

-    > mkdir build
-    > cd build
-    > cmake -D CMAKE_BUILD_TYPE=Release \
+    mkdir build
+    cd build
+    cmake -D CMAKE_BUILD_TYPE=Release \
             -D frozen.benchmark=ON \
 	    -G <"Unix Makefiles" or "Ninja"> ..
-    > # building the tests and benchmarks...
-    > make                               # ... with make
-    > ninja                              # ... with ninja
-    > cmake --build .                    # ... with cmake
-    > # running the tests...
-    > make test                          # ... with make
-    > ninja test                         # ... with ninja
-    > cmake --build . --target test      # ... with cmake
-    > ctest                              # ... with ctest
-    > # running the benchmarks...
-    > make benchmark                     # ... with make
-    > ninja benchmark                    # ... with ninja
-    > cmake --build . --target benchmark # ... with cmake
+    # building the tests and benchmarks...
+    make                               # ... with make
+    ninja                              # ... with ninja
+    cmake --build .                    # ... with cmake
+    # running the tests...
+    make test                          # ... with make
+    ninja test                         # ... with ninja
+    cmake --build . --target test      # ... with cmake
+    ctest                              # ... with ctest
+    # running the benchmarks...
+    make benchmark                     # ... with make
+    ninja benchmark                    # ... with ninja
+    cmake --build . --target benchmark # ... with cmake

 Using CMake to generate an IDE build system with test and benchmark targets

-.. code:: sh
+.. code-block:: sh

-    > mkdir build
-    > cd build
-    > cmake -D frozen.benchmark=ON -G <"Xcode" or "Visual Studio 15 2017"> ..
-    > # using cmake to drive the IDE build, test, and benchmark
-    > cmake --build . --config Release
-    > cmake --build . --target test
-    > cmake --build . --target benchmark
+    mkdir build
+    cd build
+    cmake -D frozen.benchmark=ON -G <"Xcode" or "Visual Studio 15 2017"> ..
+    # using cmake to drive the IDE build, test, and benchmark
+    cmake --build . --config Release
+    cmake --build . --target test
+    cmake --build . --target benchmark


 Credits
@@ -241,5 +250,5 @@ for his contributions on perfect hashing.
 Contact
 -------

-Serge sans Paille ``<serge.guelton@telecom-bretagne.eu>``
+Serge sans Paille ``<sergesanspaille@free.fr>``

diff --git a/deps/LIEF/third-party/frozen/include/frozen/algorithm.h b/deps/LIEF/third-party/frozen/include/frozen/algorithm.h
index 14090aae74c..3abd529b650 100644
--- a/deps/LIEF/third-party/frozen/include/frozen/algorithm.h
+++ b/deps/LIEF/third-party/frozen/include/frozen/algorithm.h
@@ -47,9 +47,7 @@ template <std::size_t size> class knuth_morris_pratt_searcher {
   static constexpr bits::carray<std::ptrdiff_t, size>
   build_kmp_cache(char const (&needle)[size + 1]) {
     std::ptrdiff_t cnd = 0;
-    bits::carray<std::ptrdiff_t, size> cache;
-
-    cache.fill(-1);
+    bits::carray<std::ptrdiff_t, size> cache(-1);
     for (std::size_t pos = 1; pos < size; ++pos) {
       if (needle[pos] == needle[cnd]) {
         cache[pos] = cache[cnd];
@@ -109,9 +107,7 @@ template <std::size_t size> class boyer_moore_searcher {
   bits::carray<char, size> needle_;

   constexpr auto build_skip_table(char const (&needle)[size + 1]) {
-    skip_table_type skip_table;
-
-    skip_table.fill(size);
+    skip_table_type skip_table(size);
     for (std::size_t i = 0; i < size - 1; ++i)
       skip_table[needle[i]] -= i + 1;
     return skip_table;
diff --git a/deps/LIEF/third-party/frozen/include/frozen/bits/algorithms.h b/deps/LIEF/third-party/frozen/include/frozen/bits/algorithms.h
index 8d1ffbc5244..4efa61b218e 100644
--- a/deps/LIEF/third-party/frozen/include/frozen/bits/algorithms.h
+++ b/deps/LIEF/third-party/frozen/include/frozen/bits/algorithms.h
@@ -109,19 +109,25 @@ constexpr void cswap(std::tuple<Tys...> &a, std::tuple<Tys...> &b) {
   cswap(a, b, std::make_index_sequence<sizeof...(Tys)>());
 }

+template <typename Iter>
+constexpr void iter_swap(Iter a, Iter b) {
+  cswap(*a, *b);
+}
+
 template <typename Iterator, class Compare>
 constexpr Iterator partition(Iterator left, Iterator right, Compare const &compare) {
   auto pivot = left + (right - left) / 2;
-  auto value = *pivot;
-  cswap(*right, *pivot);
+  iter_swap(right, pivot);
+  pivot = right;
   for (auto it = left; 0 < right - it; ++it) {
-    if (compare(*it, value)) {
-      cswap(*it, *left);
+    if (compare(*it, *pivot)) {
+      iter_swap(it, left);
       left++;
     }
   }
-  cswap(*right, *left);
-  return left;
+  iter_swap(pivot, left);
+  pivot = left;
+  return pivot;
 }

 template <typename Iterator, class Compare>
@@ -133,10 +139,10 @@ constexpr void quicksort(Iterator left, Iterator right, Compare const &compare)
   }
 }

-template <typename T, std::size_t N, class Compare>
-constexpr bits::carray<T, N> quicksort(bits::carray<T, N> const &array,
+template <typename Container, class Compare>
+constexpr Container quicksort(Container const &array,
                                      Compare const &compare) {
-  bits::carray<T, N> res = array;
+  Container res = array;
   quicksort(res.begin(), res.end() - 1, compare);
   return res;
 }
diff --git a/deps/LIEF/third-party/frozen/include/frozen/bits/basic_types.h b/deps/LIEF/third-party/frozen/include/frozen/bits/basic_types.h
index b54a60db566..2d7760472cb 100644
--- a/deps/LIEF/third-party/frozen/include/frozen/bits/basic_types.h
+++ b/deps/LIEF/third-party/frozen/include/frozen/bits/basic_types.h
@@ -24,11 +24,12 @@
 #define FROZEN_LETITGO_BASIC_TYPES_H

 #include "frozen/bits/exceptions.h"
+#include "frozen/bits/constexpr_assert.h"

 #include <array>
 #include <utility>
-#include <iterator>
 #include <string>
+#include <type_traits>

 namespace frozen {

@@ -62,8 +63,10 @@ public:
   }

   // Iterators
-  constexpr iterator begin() noexcept { return data; }
-  constexpr iterator end() noexcept { return data + dsize; }
+  constexpr       iterator begin() noexcept { return data; }
+  constexpr       iterator end() noexcept { return data + dsize; }
+  constexpr const_iterator begin() const noexcept { return data; }
+  constexpr const_iterator end() const noexcept { return data + dsize; }

   // Capacity
   constexpr size_type size() const { return dsize; }
@@ -87,12 +90,17 @@ template <class T, std::size_t N>
 class carray {
   T data_ [N] = {}; // zero-initialization for scalar type T, default-initialized otherwise

-  template <std::size_t M, std::size_t... I>
-  constexpr carray(T const (&init)[M], std::index_sequence<I...>)
-      : data_{init[I]...} {}
   template <class Iter, std::size_t... I>
   constexpr carray(Iter iter, std::index_sequence<I...>)
       : data_{((void)I, *iter++)...} {}
+  template <std::size_t... I>
+  constexpr carray(const T& value, std::index_sequence<I...>)
+      : data_{((void)I, value)...} {}
+
+  static constexpr void check_initializer(std::initializer_list<T> init) {
+    (void)init;
+    constexpr_assert(init.size() == N, "Cannot initialize a carray with an initializer list of different size.");
+  }

 public:
   // Container typdefs
@@ -103,46 +111,41 @@ public:
   using const_pointer = const value_type *;
   using iterator = pointer;
   using const_iterator = const_pointer;
-  using reverse_iterator = std::reverse_iterator<iterator>;
-  using const_reverse_iterator = std::reverse_iterator<const_iterator>;
   using size_type = std::size_t;
   using difference_type = std::ptrdiff_t;

   // Constructors
-  constexpr carray(void) = default;
-  template <std::size_t M>
-  constexpr carray(T const (&init)[M])
+  constexpr carray() = default;
+  constexpr carray(const value_type& val)
+    : carray(val, std::make_index_sequence<N>()) {}
+  template <typename U, std::enable_if_t<std::is_convertible<U, T>::value, std::size_t> M>
+  constexpr carray(U const (&init)[M])
     : carray(init, std::make_index_sequence<N>())
   {
     static_assert(M >= N, "Cannot initialize a carray with an smaller array");
   }
-  template <std::size_t M>
-  constexpr carray(std::array<T, M> const &init)
-    : carray(&init[0], std::make_index_sequence<N>())
+  template <typename U, std::enable_if_t<std::is_convertible<U, T>::value, std::size_t> M>
+  constexpr carray(std::array<U, M> const &init)
+    : carray(init.begin(), std::make_index_sequence<N>())
   {
     static_assert(M >= N, "Cannot initialize a carray with an smaller array");
   }
-  constexpr carray(std::initializer_list<T> init)
-    : carray(init.begin(), std::make_index_sequence<N>())
+  template <typename U, std::enable_if_t<std::is_convertible<U, T>::value>* = nullptr>
+  constexpr carray(std::initializer_list<U> init)
+    : carray((check_initializer(init), init.begin()), std::make_index_sequence<N>())
+  {
+  }
+  template <typename U, std::enable_if_t<std::is_convertible<U, T>::value>* = nullptr>
+  constexpr carray(const carray<U, N>& rhs)
+    : carray(rhs.begin(), std::make_index_sequence<N>())
   {
-    // clang & gcc doesn't recognize init.size() as a constexpr
-    // static_assert(init.size() >= N, "Cannot initialize a carray with an smaller initializer list");
   }

   // Iterators
   constexpr iterator begin() noexcept { return data_; }
   constexpr const_iterator begin() const noexcept { return data_; }
-  constexpr const_iterator cbegin() const noexcept { return data_; }
   constexpr iterator end() noexcept { return data_ + N; }
   constexpr const_iterator end() const noexcept { return data_ + N; }
-  constexpr const_iterator cend() const noexcept { return data_ + N; }
-
-  constexpr reverse_iterator rbegin() noexcept { return reverse_iterator(end()); }
-  constexpr const_reverse_iterator rbegin() const noexcept { return const_reverse_iterator(end()); }
-  constexpr const_reverse_iterator crbegin() const noexcept { return const_reverse_iterator(end()); }
-  constexpr reverse_iterator rend() noexcept { return reverse_iterator(begin()); }
-  constexpr const_reverse_iterator rend() const noexcept { return const_reverse_iterator(begin()); }
-  constexpr const_reverse_iterator crend() const noexcept { return const_reverse_iterator(begin()); }

   // Capacity
   constexpr size_type size() const { return N; }
@@ -171,12 +174,6 @@ public:

   constexpr       value_type* data() noexcept { return data_; }
   constexpr const value_type* data() const noexcept { return data_; }
-
-  // Modifiers
-  constexpr void fill(const value_type& val) {
-    for (std::size_t i = 0; i < N; ++i)
-      data_[i] = val;
-  }
 };
 template <class T>
 class carray<T, 0> {
@@ -190,8 +187,6 @@ public:
   using const_pointer = const value_type *;
   using iterator = pointer;
   using const_iterator = const_pointer;
-  using reverse_iterator = std::reverse_iterator<iterator>;
-  using const_reverse_iterator = std::reverse_iterator<const_iterator>;
   using size_type = std::size_t;
   using difference_type = std::ptrdiff_t;

diff --git a/deps/LIEF/third-party/frozen/include/frozen/bits/constexpr_assert.h b/deps/LIEF/third-party/frozen/include/frozen/bits/constexpr_assert.h
index 912210dc22b..bd0bb10ed6c 100644
--- a/deps/LIEF/third-party/frozen/include/frozen/bits/constexpr_assert.h
+++ b/deps/LIEF/third-party/frozen/include/frozen/bits/constexpr_assert.h
@@ -24,17 +24,11 @@
 #define FROZEN_LETITGO_CONSTEXPR_ASSERT_H

 #include <cassert>
+#include <utility>

-#ifdef _MSC_VER
+inline void constexpr_assert_failed() {}

-// FIXME: find a way to implement that correctly for msvc
-#define constexpr_assert(cond, msg)
-
-#else
-
-#define constexpr_assert(cond, msg)\
-    assert(cond && msg);
-#endif
+#define constexpr_assert(cond, msg) ((void)((cond) ? 0 : (constexpr_assert_failed(), 0)))

 #endif

diff --git a/deps/LIEF/third-party/frozen/include/frozen/bits/defines.h b/deps/LIEF/third-party/frozen/include/frozen/bits/defines.h
index e20f6d0cedc..839f4e8335f 100644
--- a/deps/LIEF/third-party/frozen/include/frozen/bits/defines.h
+++ b/deps/LIEF/third-party/frozen/include/frozen/bits/defines.h
@@ -55,11 +55,11 @@
   #define FROZEN_LETITGO_HAS_CHAR8T
 #endif

-#if __cpp_deduction_guides >= 201703L
+#if defined(__cpp_deduction_guides) && __cpp_deduction_guides >= 201703L
   #define FROZEN_LETITGO_HAS_DEDUCTION_GUIDES
 #endif

-#if __cpp_lib_constexpr_string >= 201907L
+#if defined(__cpp_lib_constexpr_string) && __cpp_lib_constexpr_string >= 201907L
   #define FROZEN_LETITGO_HAS_CONSTEXPR_STRING
 #endif

diff --git a/deps/LIEF/third-party/frozen/include/frozen/bits/elsa.h b/deps/LIEF/third-party/frozen/include/frozen/bits/elsa.h
index 4618a9e9b35..6c9ecb78f76 100644
--- a/deps/LIEF/third-party/frozen/include/frozen/bits/elsa.h
+++ b/deps/LIEF/third-party/frozen/include/frozen/bits/elsa.h
@@ -51,7 +51,7 @@ template <> struct elsa<void> {
   }
 };

-template <class T> using anna = elsa<T>;
+template <class T=void> using anna = elsa<T>;
 } // namespace frozen

 #endif
diff --git a/deps/LIEF/third-party/frozen/include/frozen/bits/elsa_std.h b/deps/LIEF/third-party/frozen/include/frozen/bits/elsa_std.h
index 0445e73b939..df1a9cfc352 100644
--- a/deps/LIEF/third-party/frozen/include/frozen/bits/elsa_std.h
+++ b/deps/LIEF/third-party/frozen/include/frozen/bits/elsa_std.h
@@ -1,6 +1,7 @@
 #ifndef FROZEN_LETITGO_BITS_ELSA_STD_H
 #define FROZEN_LETITGO_BITS_ELSA_STD_H

+#include "defines.h"
 #include "elsa.h"
 #include "hash_string.h"

@@ -37,4 +38,4 @@ template <typename CharT> struct elsa<std::basic_string<CharT>>

 } // namespace frozen

-#endif // FROZEN_LETITGO_BITS_ELSA_STD_H
\ No newline at end of file
+#endif // FROZEN_LETITGO_BITS_ELSA_STD_H
diff --git a/deps/LIEF/third-party/frozen/include/frozen/bits/hash_string.h b/deps/LIEF/third-party/frozen/include/frozen/bits/hash_string.h
index da8fc510842..b2f7e90e601 100644
--- a/deps/LIEF/third-party/frozen/include/frozen/bits/hash_string.h
+++ b/deps/LIEF/third-party/frozen/include/frozen/bits/hash_string.h
@@ -9,7 +9,7 @@ template <typename String>
 constexpr std::size_t hash_string(const String& value) {
   std::size_t d = 5381;
   for (const auto& c : value)
-    d = d * 33 + static_cast<size_t>(c);
+    d = d * 33 + static_cast<std::size_t>(c);
   return d;
 }

@@ -17,9 +17,9 @@ constexpr std::size_t hash_string(const String& value) {
 // With the lowest bits removed, based on experimental setup.
 template <typename String>
 constexpr std::size_t hash_string(const String& value, std::size_t seed) {
-  std::size_t d =  (0x811c9dc5 ^ seed) * static_cast<size_t>(0x01000193);
+  std::size_t d =  (0x811c9dc5 ^ seed) * static_cast<std::size_t>(0x01000193);
   for (const auto& c : value)
-    d = (d ^ static_cast<size_t>(c)) * static_cast<size_t>(0x01000193);
+    d = (d ^ static_cast<std::size_t>(c)) * static_cast<std::size_t>(0x01000193);
   return d >> 8 ;
 }

diff --git a/deps/LIEF/third-party/frozen/include/frozen/bits/mpl.h b/deps/LIEF/third-party/frozen/include/frozen/bits/mpl.h
new file mode 100644
index 00000000000..8f87f99c8f2
--- /dev/null
+++ b/deps/LIEF/third-party/frozen/include/frozen/bits/mpl.h
@@ -0,0 +1,56 @@
+/*
+ * Frozen
+ * Copyright 2022 Giel van Schijndel
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+
+#ifndef FROZEN_LETITGO_BITS_MPL_H
+#define FROZEN_LETITGO_BITS_MPL_H
+
+#include <utility>
+
+namespace frozen {
+
+namespace bits {
+
+// Forward declarations
+template <class, std::size_t>
+class carray;
+
+template <typename T>
+struct remove_cv : std::remove_cv<T> {};
+
+template <typename... T>
+struct remove_cv<std::pair<T...>> {
+  using type = std::pair<typename remove_cv<T>::type...>;
+};
+
+template <typename T, std::size_t N>
+struct remove_cv<carray<T, N>> {
+  using type = carray<typename remove_cv<T>::type, N>;
+};
+
+template <typename T>
+using remove_cv_t = typename remove_cv<T>::type;
+
+} // namespace bits
+
+} // namespace frozen
+
+#endif
diff --git a/deps/LIEF/third-party/frozen/include/frozen/bits/pmh.h b/deps/LIEF/third-party/frozen/include/frozen/bits/pmh.h
index f7261f82378..fbdf664b26f 100644
--- a/deps/LIEF/third-party/frozen/include/frozen/bits/pmh.h
+++ b/deps/LIEF/third-party/frozen/include/frozen/bits/pmh.h
@@ -28,6 +28,8 @@
 #include "frozen/bits/basic_types.h"

 #include <array>
+#include <cstddef>
+#include <cstdint>
 #include <limits>

 namespace frozen {
@@ -48,7 +50,7 @@ struct bucket_size_compare {
 // hash function.
 // pmh_buckets represents the initial placement into buckets.

-template <size_t M>
+template <std::size_t M>
 struct pmh_buckets {
   // Step 0: Bucket max is 2 * sqrt M
   // TODO: Come up with justification for this, should it not be O(log M)?
@@ -56,7 +58,7 @@ struct pmh_buckets {

   using bucket_t = cvector<std::size_t, bucket_max>;
   carray<bucket_t, M> buckets;
-  uint64_t seed;
+  std::uint64_t seed;

   // Represents a reference to a bucket. This is used because the buckets
   // have to be sorted, but buckets are big, making it slower than sorting refs
@@ -88,23 +90,19 @@ struct pmh_buckets {
   }
 };

-template <size_t M, class Item, size_t N, class Hash, class Key, class PRG>
+template <std::size_t M, class Item, std::size_t N, class Hash, class Key, class PRG>
 pmh_buckets<M> constexpr make_pmh_buckets(const carray<Item, N> & items,
                                 Hash const & hash,
                                 Key const & key,
                                 PRG & prg) {
   using result_t = pmh_buckets<M>;
-  result_t result{};
-  bool rejected = false;
   // Continue until all items are placed without exceeding bucket_max
   while (1) {
-    for (auto & b : result.buckets) {
-      b.clear();
-    }
+    result_t result{};
     result.seed = prg();
-    rejected = false;
-    for (std::size_t i = 0; i < N; ++i) {
-      auto & bucket = result.buckets[hash(key(items[i]), static_cast<size_t>(result.seed)) % M];
+    bool rejected = false;
+    for (std::size_t i = 0; i < items.size(); ++i) {
+      auto & bucket = result.buckets[hash(key(items[i]), static_cast<std::size_t>(result.seed)) % M];
       if (bucket.size() >= result_t::bucket_max) {
         rejected = true;
         break;
@@ -116,7 +114,7 @@ pmh_buckets<M> constexpr make_pmh_buckets(const carray<Item, N> & items,
 }

 // Check if an item appears in a cvector
-template<class T, size_t N>
+template<class T, std::size_t N>
 constexpr bool all_different_from(cvector<T, N> & data, T & a) {
   for (std::size_t i = 0; i < data.size(); ++i)
     if (data[i] == a)
@@ -128,7 +126,7 @@ constexpr bool all_different_from(cvector<T, N> & data, T & a) {
 // Represents either an index to a data item array, or a seed to be used with
 // a hasher. Seed must have high bit of 1, value has high bit of zero.
 struct seed_or_index {
-  using value_type = uint64_t;
+  using value_type = std::uint64_t;

 private:
   static constexpr value_type MINUS_ONE = std::numeric_limits<value_type>::max();
@@ -150,47 +148,72 @@ public:

 // Represents the perfect hash function created by pmh algorithm
 template <std::size_t M, class Hasher>
-struct pmh_tables {
-  uint64_t first_seed_;
+struct pmh_tables : private Hasher {
+  std::uint64_t first_seed_;
   carray<seed_or_index, M> first_table_;
   carray<std::size_t, M> second_table_;
-  Hasher hash_;
+
+  constexpr pmh_tables(
+      std::uint64_t first_seed,
+      carray<seed_or_index, M> first_table,
+      carray<std::size_t, M> second_table,
+      Hasher hash) noexcept
+    : Hasher(hash)
+    , first_seed_(first_seed)
+    , first_table_(first_table)
+    , second_table_(second_table)
+  {}
+
+  constexpr Hasher const& hash_function() const noexcept {
+    return static_cast<Hasher const&>(*this);
+  }

   template <typename KeyType>
   constexpr std::size_t lookup(const KeyType & key) const {
-    return lookup(key, hash_);
+    return lookup(key, hash_function());
   }

   // Looks up a given key, to find its expected index in carray<Item, N>
   // Always returns a valid index, must use KeyEqual test after to confirm.
   template <typename KeyType, typename HasherType>
   constexpr std::size_t lookup(const KeyType & key, const HasherType& hasher) const {
-    auto const d = first_table_[hasher(key, static_cast<size_t>(first_seed_)) % M];
-    if (!d.is_seed()) { return static_cast<std::size_t>(d.value()); } // this is narrowing uint64 -> size_t but should be fine
+    auto const d = first_table_[hasher(key, static_cast<std::size_t>(first_seed_)) % M];
+    if (!d.is_seed()) { return static_cast<std::size_t>(d.value()); } // this is narrowing std::uint64 -> std::size_t but should be fine
     else { return second_table_[hasher(key, static_cast<std::size_t>(d.value())) % M]; }
   }
 };

 // Make pmh tables for given items, hash function, prg, etc.
-template <std::size_t M, class Item, std::size_t N, class Hash, class Key, class PRG>
+template <std::size_t M, class Item, std::size_t N, class Hash, class Key, class KeyEqual, class PRG>
 pmh_tables<M, Hash> constexpr make_pmh_tables(const carray<Item, N> &
                                                                items,
                                                            Hash const &hash,
+                                                           KeyEqual const &equal,
                                                            Key const &key,
                                                            PRG prg) {
   // Step 1: Place all of the keys into buckets
   auto step_one = make_pmh_buckets<M>(items, hash, key, prg);

+  // Step 1.5: Detect redundant keys.
+  for(auto const& bucket : step_one.buckets)
+    for(std::size_t i = 1; i < bucket.size(); ++i)
+      constexpr_assert(!equal(key(items[0]), key(items[i])), "structure keys should be unique");
+
   // Step 2: Sort the buckets to process the ones with the most items first.
   auto buckets = step_one.get_sorted_buckets();

+  // Special value for unused slots. This is purposefully the index
+  // one-past-the-end of 'items' to function as a sentinel value. Both to avoid
+  // the need to apply the KeyEqual predicate and to be easily convertible to
+  // end().
+  // Unused entries in both hash tables (G and H) have to contain this value.
+  const auto UNUSED = items.size();
+
   // G becomes the first hash table in the resulting pmh function
-  carray<seed_or_index, M> G; // Default constructed to "index 0"
+  carray<seed_or_index, M> G({false, UNUSED});

   // H becomes the second hash table in the resulting pmh function
-  constexpr std::size_t UNUSED = std::numeric_limits<std::size_t>::max();
-  carray<std::size_t, M> H;
-  H.fill(UNUSED);
+  carray<std::size_t, M> H(UNUSED);

   // Step 3: Map the items in buckets into hash tables.
   for (const auto & bucket : buckets) {
@@ -199,7 +222,7 @@ pmh_tables<M, Hash> constexpr make_pmh_tables(const carray<Item, N> &
     if (bsize == 1) {
       // Store index to the (single) item in G
       // assert(bucket.hash == hash(key(items[bucket[0]]), step_one.seed) % M);
-      G[bucket.hash] = {false, static_cast<uint64_t>(bucket[0])};
+      G[bucket.hash] = {false, static_cast<std::uint64_t>(bucket[0])};
     } else if (bsize > 1) {

       // Repeatedly try different H of d until we find a hash function
@@ -208,7 +231,7 @@ pmh_tables<M, Hash> constexpr make_pmh_tables(const carray<Item, N> &
       cvector<std::size_t, decltype(step_one)::bucket_max> bucket_slots;

       while (bucket_slots.size() < bsize) {
-        auto slot = hash(key(items[bucket[bucket_slots.size()]]), static_cast<size_t>(d.value())) % M;
+        auto slot = hash(key(items[bucket[bucket_slots.size()]]), static_cast<std::size_t>(d.value())) % M;

         if (H[slot] != UNUSED || !all_different_from(bucket_slots, slot)) {
           bucket_slots.clear();
@@ -227,14 +250,6 @@ pmh_tables<M, Hash> constexpr make_pmh_tables(const carray<Item, N> &
     }
   }

-  // Any unused entries in the H table have to get changed to zero.
-  // This is because hashing should not fail or return an out-of-bounds entry.
-  // A lookup fails after we apply user-supplied KeyEqual to the query and the
-  // key found by hashing. Sending such queries to zero cannot hurt.
-  for (std::size_t i = 0; i < M; ++i)
-    if (H[i] == UNUSED)
-      H[i] = 0;
-
   return {step_one.seed, G, H, hash};
 }

diff --git a/deps/LIEF/third-party/frozen/include/frozen/map.h b/deps/LIEF/third-party/frozen/include/frozen/map.h
index fd4f7f92e65..cb3e3a28c98 100644
--- a/deps/LIEF/third-party/frozen/include/frozen/map.h
+++ b/deps/LIEF/third-party/frozen/include/frozen/map.h
@@ -25,54 +25,55 @@

 #include "frozen/bits/algorithms.h"
 #include "frozen/bits/basic_types.h"
-#include "frozen/bits/constexpr_assert.h"
 #include "frozen/bits/exceptions.h"
+#include "frozen/bits/mpl.h"
 #include "frozen/bits/version.h"

+#include <iterator>
 #include <utility>

 namespace frozen {

 namespace impl {

-template <class Comparator> class CompareKey {
-
-  Comparator const comparator_;
-
+template <class Comparator> class CompareKey : private Comparator {
 public:
+  constexpr Comparator const& key_comp() const noexcept {
+    return static_cast<Comparator const&>(*this);
+  }
+
   constexpr CompareKey(Comparator const &comparator)
-      : comparator_(comparator) {}
+      : Comparator(comparator) {}

   template <class Key1, class Key2, class Value>
-  constexpr int operator()(std::pair<Key1, Value> const &self,
-                           std::pair<Key2, Value> const &other) const {
-    return comparator_(std::get<0>(self), std::get<0>(other));
+  constexpr auto operator()(std::pair<Key1, Value> const &self,
+                           std::pair<Key2, Value> const &other) const -> decltype(key_comp()(std::get<0>(self), std::get<0>(other))) {
+    return key_comp()(std::get<0>(self), std::get<0>(other));
   }

   template <class Key1, class Key2, class Value>
-  constexpr int operator()(Key1 const &self_key,
-                           std::pair<Key2, Value> const &other) const {
-    return comparator_(self_key, std::get<0>(other));
+  constexpr auto operator()(Key1 const &self_key,
+                           std::pair<Key2, Value> const &other) const -> decltype(key_comp()(self_key, std::get<0>(other))) {
+    return key_comp()(self_key, std::get<0>(other));
   }

   template <class Key1, class Key2, class Value>
-  constexpr int operator()(std::pair<Key1, Value> const &self,
-                           Key2 const &other_key) const {
-    return comparator_(std::get<0>(self), other_key);
+  constexpr auto operator()(std::pair<Key1, Value> const &self,
+                           Key2 const &other_key) const -> decltype(key_comp()(std::get<0>(self), other_key)) {
+    return key_comp()(std::get<0>(self), other_key);
   }

   template <class Key1, class Key2>
-  constexpr int operator()(Key1 const &self_key, Key2 const &other_key) const {
-    return comparator_(self_key, other_key);
+  constexpr auto operator()(Key1 const &self_key, Key2 const &other_key) const -> decltype(key_comp()(self_key, other_key)) {
+    return key_comp()(self_key, other_key);
   }
 };

 } // namespace impl

 template <class Key, class Value, std::size_t N, class Compare = std::less<Key>>
-class map {
-  using container_type = bits::carray<std::pair<Key, Value>, N>;
-  impl::CompareKey<Compare> less_than_;
+class map : private impl::CompareKey<Compare> {
+  using container_type = bits::carray<std::pair<const Key, Value>, N>;
   container_type items_;

 public:
@@ -81,29 +82,28 @@ public:
   using value_type = typename container_type::value_type;
   using size_type = typename container_type::size_type;
   using difference_type = typename container_type::difference_type;
-  using key_compare = decltype(less_than_);
+  using key_compare = Compare;
+  using value_compare = impl::CompareKey<Compare>;
   using reference = typename container_type::reference;
   using const_reference = typename container_type::const_reference;
   using pointer = typename container_type::pointer;
   using const_pointer = typename container_type::const_pointer;
   using iterator = typename container_type::iterator;
   using const_iterator = typename container_type::const_iterator;
-  using reverse_iterator = typename container_type::reverse_iterator;
-  using const_reverse_iterator =
-      typename container_type::const_reverse_iterator;
+  using reverse_iterator = std::reverse_iterator<iterator>;
+  using const_reverse_iterator = std::reverse_iterator<const_iterator>;

 public:
   /* constructors */
   constexpr map(container_type items, Compare const &compare)
-      : less_than_{compare}
-      , items_{bits::quicksort(items, less_than_)} {}
+      : impl::CompareKey<Compare>{compare}
+      , items_{bits::quicksort(bits::remove_cv_t<container_type>(items), value_comp())} {}

   explicit constexpr map(container_type items)
       : map{items, Compare{}} {}

   constexpr map(std::initializer_list<value_type> items, Compare const &compare)
       : map{container_type {items}, compare} {
-        constexpr_assert(items.size() == N, "Inconsistent initializer_list size and type size argument");
       }

   constexpr map(std::initializer_list<value_type> items)
@@ -120,17 +120,17 @@ public:
   /* iterators */
   constexpr iterator begin() { return items_.begin(); }
   constexpr const_iterator begin() const { return items_.begin(); }
-  constexpr const_iterator cbegin() const { return items_.cbegin(); }
+  constexpr const_iterator cbegin() const { return items_.begin(); }
   constexpr iterator end() { return items_.end(); }
   constexpr const_iterator end() const { return items_.end(); }
-  constexpr const_iterator cend() const { return items_.cend(); }
+  constexpr const_iterator cend() const { return items_.end(); }

-  constexpr reverse_iterator rbegin() { return items_.rbegin(); }
-  constexpr const_reverse_iterator rbegin() const { return items_.rbegin(); }
-  constexpr const_reverse_iterator crbegin() const { return items_.crbegin(); }
-  constexpr reverse_iterator rend() { return items_.rend(); }
-  constexpr const_reverse_iterator rend() const { return items_.rend(); }
-  constexpr const_reverse_iterator crend() const { return items_.crend(); }
+  constexpr reverse_iterator rbegin() { return reverse_iterator{items_.end()}; }
+  constexpr const_reverse_iterator rbegin() const { return const_reverse_iterator{items_.end()}; }
+  constexpr const_reverse_iterator crbegin() const { return const_reverse_iterator{items_.end()}; }
+  constexpr reverse_iterator rend() { return reverse_iterator{items_.begin()}; }
+  constexpr const_reverse_iterator rend() const { return const_reverse_iterator{items_.begin()}; }
+  constexpr const_reverse_iterator crend() const { return const_reverse_iterator{items_.begin()}; }

   /* capacity */
   constexpr bool empty() const { return !N; }
@@ -141,7 +141,7 @@ public:

   template <class KeyType>
   constexpr std::size_t count(KeyType const &key) const {
-    return bits::binary_search<N>(items_.begin(), key, less_than_);
+    return bits::binary_search<N>(items_.begin(), key, value_comp());
   }

   template <class KeyType>
@@ -187,8 +187,8 @@ public:
   }

   /* observers */
-  constexpr const key_compare& key_comp() const { return less_than_; }
-  constexpr const key_compare& value_comp() const { return less_than_; }
+  constexpr const key_compare& key_comp() const { return value_comp().key_comp(); }
+  constexpr const value_compare& value_comp() const { return static_cast<impl::CompareKey<Compare> const&>(*this); }

  private:
   template <class This, class KeyType>
@@ -203,7 +203,7 @@ public:
   template <class This, class KeyType>
   static inline constexpr auto find_impl(This&& self, KeyType const &key) {
     auto where = self.lower_bound(key);
-    if (where != self.end() && !self.less_than_(key, *where))
+    if (where != self.end() && !self.value_comp()(key, *where))
       return where;
     else
       return self.end();
@@ -213,7 +213,7 @@ public:
   static inline constexpr auto equal_range_impl(This&& self, KeyType const &key) {
     auto lower = self.lower_bound(key);
     using lower_t = decltype(lower);
-    if (lower != self.end() && !self.less_than_(key, *lower))
+    if (lower != self.end() && !self.value_comp()(key, *lower))
       return std::pair<lower_t, lower_t>{lower, lower + 1};
     else
       return std::pair<lower_t, lower_t>{lower, lower};
@@ -221,13 +221,13 @@ public:

   template <class This, class KeyType>
   static inline constexpr auto lower_bound_impl(This&& self, KeyType const &key) -> decltype(self.end()) {
-    return bits::lower_bound<N>(self.items_.begin(), key, self.less_than_);
+    return bits::lower_bound<N>(self.items_.begin(), key, self.value_comp());
   }

   template <class This, class KeyType>
   static inline constexpr auto upper_bound_impl(This&& self, KeyType const &key) {
     auto lower = self.lower_bound(key);
-    if (lower != self.end() && !self.less_than_(key, *lower))
+    if (lower != self.end() && !self.value_comp()(key, *lower))
       return lower + 1;
     else
       return lower;
@@ -235,9 +235,8 @@ public:
 };

 template <class Key, class Value, class Compare>
-class map<Key, Value, 0, Compare> {
+class map<Key, Value, 0, Compare> : private impl::CompareKey<Compare> {
   using container_type = bits::carray<std::pair<Key, Value>, 0>;
-  impl::CompareKey<Compare> less_than_;

 public:
   using key_type = Key;
@@ -245,7 +244,8 @@ public:
   using value_type = typename container_type::value_type;
   using size_type = typename container_type::size_type;
   using difference_type = typename container_type::difference_type;
-  using key_compare = decltype(less_than_);
+  using key_compare = Compare;
+  using value_compare = impl::CompareKey<Compare>;
   using reference = typename container_type::reference;
   using const_reference = typename container_type::const_reference;
   using pointer = typename container_type::pointer;
@@ -259,7 +259,7 @@ public:
   /* constructors */
   constexpr map(const map &other) = default;
   constexpr map(std::initializer_list<value_type>, Compare const &compare)
-      : less_than_{compare} {}
+      : impl::CompareKey<Compare>{compare} {}
   constexpr map(std::initializer_list<value_type> items)
       : map{items, Compare{}} {}

@@ -321,8 +321,8 @@ public:
   constexpr iterator upper_bound(KeyType const &) { return end(); }

 /* observers */
-  constexpr key_compare const& key_comp() const { return less_than_; }
-  constexpr key_compare const& value_comp() const { return less_than_; }
+  constexpr key_compare const& key_comp() const { return value_comp().key_comp(); }
+  constexpr value_compare const& value_comp() const { return static_cast<impl::CompareKey<Compare> const&>(*this); }
 };

 template <typename T, typename U, typename Compare = std::less<T>>
diff --git a/deps/LIEF/third-party/frozen/include/frozen/set.h b/deps/LIEF/third-party/frozen/include/frozen/set.h
index 19258d133db..edf1ad1790d 100644
--- a/deps/LIEF/third-party/frozen/include/frozen/set.h
+++ b/deps/LIEF/third-party/frozen/include/frozen/set.h
@@ -25,17 +25,16 @@

 #include "frozen/bits/algorithms.h"
 #include "frozen/bits/basic_types.h"
-#include "frozen/bits/constexpr_assert.h"
 #include "frozen/bits/version.h"
 #include "frozen/bits/defines.h"

+#include <iterator>
 #include <utility>

 namespace frozen {

-template <class Key, std::size_t N, class Compare = std::less<Key>> class set {
+template <class Key, std::size_t N, class Compare = std::less<Key>> class set : private Compare {
   using container_type = bits::carray<Key, N>;
-  Compare less_than_;
   container_type keys_;

 public:
@@ -51,17 +50,17 @@ public:
   using pointer = typename container_type::const_pointer;
   using const_pointer = pointer;
   using iterator = typename container_type::const_iterator;
-  using reverse_iterator = typename container_type::const_reverse_iterator;
+  using reverse_iterator = std::reverse_iterator<iterator>;
   using const_iterator = iterator;
-  using const_reverse_iterator = reverse_iterator;
+  using const_reverse_iterator = std::reverse_iterator<const_iterator>;

 public:
   /* constructors */
   constexpr set(const set &other) = default;

   constexpr set(container_type keys, Compare const & comp)
-      : less_than_{comp}
-      , keys_(bits::quicksort(keys, less_than_)) {
+      : Compare{comp}
+      , keys_(bits::quicksort(keys, value_comp())) {
       }

   explicit constexpr set(container_type keys)
@@ -69,7 +68,6 @@ public:

   constexpr set(std::initializer_list<Key> keys, Compare const & comp)
       : set{container_type{keys}, comp} {
-        constexpr_assert(keys.size() == N, "Inconsistent initializer_list size and type size argument");
       }

   constexpr set(std::initializer_list<Key> keys)
@@ -85,13 +83,13 @@ public:
   /* lookup */
   template <class KeyType>
   constexpr std::size_t count(KeyType const &key) const {
-    return bits::binary_search<N>(keys_.begin(), key, less_than_);
+    return bits::binary_search<N>(keys_.begin(), key, value_comp());
   }

   template <class KeyType>
   constexpr const_iterator find(KeyType const &key) const {
     const_iterator where = lower_bound(key);
-    if ((where != end()) && !less_than_(key, *where))
+    if ((where != end()) && !value_comp()(key, *where))
       return where;
     else
       return end();
@@ -113,8 +111,8 @@ public:

   template <class KeyType>
   constexpr const_iterator lower_bound(KeyType const &key) const {
-    auto const where = bits::lower_bound<N>(keys_.begin(), key, less_than_);
-    if ((where != end()) && !less_than_(key, *where))
+    auto const where = bits::lower_bound<N>(keys_.begin(), key, value_comp());
+    if ((where != end()) && !value_comp()(key, *where))
       return where;
     else
       return end();
@@ -122,27 +120,27 @@ public:

   template <class KeyType>
   constexpr const_iterator upper_bound(KeyType const &key) const {
-    auto const where = bits::lower_bound<N>(keys_.begin(), key, less_than_);
-    if ((where != end()) && !less_than_(key, *where))
+    auto const where = bits::lower_bound<N>(keys_.begin(), key, value_comp());
+    if ((where != end()) && !value_comp()(key, *where))
       return where + 1;
     else
       return end();
   }

   /* observers */
-  constexpr const key_compare& key_comp() const { return less_than_; }
-  constexpr const key_compare& value_comp() const { return less_than_; }
+  constexpr const key_compare& key_comp() const { return value_comp(); }
+  constexpr const key_compare& value_comp() const { return static_cast<const Compare&>(*this); }

   /* iterators */
   constexpr const_iterator begin() const { return keys_.begin(); }
-  constexpr const_iterator cbegin() const { return keys_.cbegin(); }
+  constexpr const_iterator cbegin() const { return keys_.begin(); }
   constexpr const_iterator end() const { return keys_.end(); }
-  constexpr const_iterator cend() const { return keys_.cend(); }
+  constexpr const_iterator cend() const { return keys_.end(); }

-  constexpr const_reverse_iterator rbegin() const { return keys_.rbegin(); }
-  constexpr const_reverse_iterator crbegin() const { return keys_.crbegin(); }
-  constexpr const_reverse_iterator rend() const { return keys_.rend(); }
-  constexpr const_reverse_iterator crend() const { return keys_.crend(); }
+  constexpr const_reverse_iterator rbegin() const { return const_reverse_iterator{keys_.end()}; }
+  constexpr const_reverse_iterator crbegin() const { return const_reverse_iterator{keys_.end()}; }
+  constexpr const_reverse_iterator rend() const { return const_reverse_iterator{keys_.begin()}; }
+  constexpr const_reverse_iterator crend() const { return const_reverse_iterator{keys_.begin()}; }

   /* comparison */
   constexpr bool operator==(set const& rhs) const { return bits::equal(begin(), end(), rhs.begin()); }
@@ -153,9 +151,8 @@ public:
   constexpr bool operator>=(set const& rhs) const { return (*this > rhs) || (*this == rhs); }
 };

-template <class Key, class Compare> class set<Key, 0, Compare> {
+template <class Key, class Compare> class set<Key, 0, Compare> : private Compare {
   using container_type = bits::carray<Key, 0>; // just for the type definitions
-  Compare less_than_;

 public:
   /* container typedefs*/
@@ -181,7 +178,7 @@ public:
   explicit constexpr set(bits::carray<Key, 0>) {}

   constexpr set(std::initializer_list<Key>, Compare const &comp)
-      : less_than_{comp} {}
+      : Compare{comp} {}
   constexpr set(std::initializer_list<Key> keys) : set{keys, Compare{}} {}

   constexpr set& operator=(const set &other) = default;
@@ -209,8 +206,8 @@ public:
   constexpr const_iterator upper_bound(KeyType const &) const { return end(); }

   /* observers */
-  constexpr key_compare key_comp() const { return less_than_; }
-  constexpr key_compare value_comp() const { return less_than_; }
+  constexpr const key_compare& key_comp() const { return value_comp(); }
+  constexpr const key_compare& value_comp() const { return static_cast<Compare const&>(*this); }

   /* iterators */
   constexpr const_iterator begin() const { return nullptr; }
diff --git a/deps/LIEF/third-party/frozen/include/frozen/string.h b/deps/LIEF/third-party/frozen/include/frozen/string.h
index 9274406e202..12334eff862 100644
--- a/deps/LIEF/third-party/frozen/include/frozen/string.h
+++ b/deps/LIEF/third-party/frozen/include/frozen/string.h
@@ -28,6 +28,7 @@
 #include "frozen/bits/version.h"
 #include "frozen/bits/defines.h"

+#include <cstddef>
 #include <functional>

 #ifdef FROZEN_LETITGO_HAS_STRING_VIEW
@@ -53,11 +54,16 @@ public:
 #ifdef FROZEN_LETITGO_HAS_STRING_VIEW
   constexpr basic_string(std::basic_string_view<chr_t> data)
       : data_(data.data()), size_(data.size()) {}
+
+  explicit constexpr operator std::basic_string_view<chr_t>() const {
+    return std::basic_string_view<chr_t>(data_, size_);
+  }
 #endif

   constexpr basic_string(const basic_string &) noexcept = default;
   constexpr basic_string &operator=(const basic_string &) noexcept = default;

+  constexpr std::size_t length() const { return size_; }
   constexpr std::size_t size() const { return size_; }

   constexpr chr_t operator[](std::size_t i) const { return data_[i]; }
@@ -85,6 +91,16 @@ public:
     return size() < other.size();
   }

+  friend constexpr bool operator>(const basic_string& lhs, const basic_string& rhs) {
+    return rhs < lhs;
+  }
+  friend constexpr bool operator>=(const basic_string& lhs, const basic_string& rhs) {
+    return !(lhs < rhs);
+  }
+  friend constexpr bool operator<=(const basic_string& lhs, const basic_string& rhs) {
+    return !(lhs > rhs);
+  }
+
   constexpr const chr_t *data() const { return data_; }
   constexpr const chr_t *begin() const { return data(); }
   constexpr const chr_t *end() const { return data() + size(); }
@@ -110,24 +126,24 @@ using u8string = basic_string<char8_t>;

 namespace string_literals {

-constexpr string operator"" _s(const char *data, std::size_t size) {
+constexpr string operator""_s(const char *data, std::size_t size) {
   return {data, size};
 }

-constexpr wstring operator"" _s(const wchar_t *data, std::size_t size) {
+constexpr wstring operator""_s(const wchar_t *data, std::size_t size) {
   return {data, size};
 }

-constexpr u16string operator"" _s(const char16_t *data, std::size_t size) {
+constexpr u16string operator""_s(const char16_t *data, std::size_t size) {
   return {data, size};
 }

-constexpr u32string operator"" _s(const char32_t *data, std::size_t size) {
+constexpr u32string operator""_s(const char32_t *data, std::size_t size) {
   return {data, size};
 }

 #ifdef FROZEN_LETITGO_HAS_CHAR8T
-constexpr u8string operator"" _s(const char8_t *data, std::size_t size) {
+constexpr u8string operator""_s(const char8_t *data, std::size_t size) {
   return {data, size};
 }
 #endif
@@ -138,7 +154,7 @@ constexpr u8string operator"" _s(const char8_t *data, std::size_t size) {

 namespace std {
 template <typename _CharT> struct hash<frozen::basic_string<_CharT>> {
-  size_t operator()(frozen::basic_string<_CharT> s) const {
+  std::size_t operator()(frozen::basic_string<_CharT> s) const {
     return frozen::elsa<frozen::basic_string<_CharT>>{}(s);
   }
 };
diff --git a/deps/LIEF/third-party/frozen/include/frozen/unordered_map.h b/deps/LIEF/third-party/frozen/include/frozen/unordered_map.h
index 1e2c6eafdb9..2405385238a 100644
--- a/deps/LIEF/third-party/frozen/include/frozen/unordered_map.h
+++ b/deps/LIEF/third-party/frozen/include/frozen/unordered_map.h
@@ -24,7 +24,6 @@
 #define FROZEN_LETITGO_UNORDERED_MAP_H

 #include "frozen/bits/basic_types.h"
-#include "frozen/bits/constexpr_assert.h"
 #include "frozen/bits/elsa.h"
 #include "frozen/bits/exceptions.h"
 #include "frozen/bits/pmh.h"
@@ -33,6 +32,7 @@

 #include <tuple>
 #include <functional>
+#include <utility>

 namespace frozen {

@@ -48,13 +48,12 @@ struct GetKey {

 template <class Key, class Value, std::size_t N, typename Hash = anna<Key>,
           class KeyEqual = std::equal_to<Key>>
-class unordered_map {
+class unordered_map : private KeyEqual {
   static constexpr std::size_t storage_size =
       bits::next_highest_power_of_two(N) * (N < 32 ? 2 : 1); // size adjustment to prevent high collision rate for small sets
-  using container_type = bits::carray<std::pair<Key, Value>, N>;
+  using container_type = bits::carray<std::pair<const Key, Value>, N>;
   using tables_type = bits::pmh_tables<storage_size, Hash>;

-  KeyEqual const equal_;
   container_type items_;
   tables_type tables_;

@@ -80,18 +79,18 @@ public:
   unordered_map(unordered_map const &) = default;
   constexpr unordered_map(container_type items,
                           Hash const &hash, KeyEqual const &equal)
-      : equal_{equal}
+      : KeyEqual{equal}
       , items_{items}
       , tables_{
             bits::make_pmh_tables<storage_size>(
-                items_, hash, bits::GetKey{}, default_prg_t{})} {}
+                items_, hash, equal, bits::GetKey{}, default_prg_t{})} {}
   explicit constexpr unordered_map(container_type items)
-      : unordered_map{items, Hash{}, KeyEqual{}} {}
+      : unordered_map{items, Hash{}, KeyEqual{}} {
+      }

   constexpr unordered_map(std::initializer_list<value_type> items,
                           Hash const & hash, KeyEqual const & equal)
       : unordered_map{container_type{items}, hash, equal} {
-        constexpr_assert(items.size() == N, "Inconsistent initializer_list size and type size argument");
       }

   constexpr unordered_map(std::initializer_list<value_type> items)
@@ -102,8 +101,8 @@ public:
   constexpr iterator end() { return items_.end(); }
   constexpr const_iterator begin() const { return items_.begin(); }
   constexpr const_iterator end() const { return items_.end(); }
-  constexpr const_iterator cbegin() const { return items_.cbegin(); }
-  constexpr const_iterator cend() const { return items_.cend(); }
+  constexpr const_iterator cbegin() const { return items_.begin(); }
+  constexpr const_iterator cend() const { return items_.end(); }

   /* capacity */
   constexpr bool empty() const { return !N; }
@@ -111,70 +110,41 @@ public:
   constexpr size_type max_size() const { return N; }

   /* lookup */
-  template <class KeyType, class Hasher, class Equal>
-  constexpr std::size_t count(KeyType const &key, Hasher const &hash, Equal const &equal) const {
-    auto const &kv = lookup(key, hash);
-    return equal(kv.first, key);
-  }
   template <class KeyType>
   constexpr std::size_t count(KeyType const &key) const {
-    return count(key, hash_function(), key_eq());
+    return find(key) != end();
   }

-  template <class KeyType, class Hasher, class Equal>
-  constexpr Value const &at(KeyType const &key, Hasher const &hash, Equal const &equal) const {
-    return at_impl(*this, key, hash, equal);
-  }
-  template <class KeyType, class Hasher, class Equal>
-  constexpr Value &at(KeyType const &key, Hasher const &hash, Equal const &equal) {
-    return at_impl(*this, key, hash, equal);
-  }
   template <class KeyType>
   constexpr Value const &at(KeyType const &key) const {
-    return at(key, hash_function(), key_eq());
+    return at_impl(*this, key);
   }
   template <class KeyType>
   constexpr Value &at(KeyType const &key) {
-    return at(key, hash_function(), key_eq());
+    return at_impl(*this, key);
   }

-  template <class KeyType, class Hasher, class Equal>
-  constexpr const_iterator find(KeyType const &key, Hasher const &hash, Equal const &equal) const {
-    return find_impl(*this, key, hash, equal);
-  }
-  template <class KeyType, class Hasher, class Equal>
-  constexpr iterator find(KeyType const &key, Hasher const &hash, Equal const &equal) {
-    return find_impl(*this, key, hash, equal);
-  }
   template <class KeyType>
   constexpr const_iterator find(KeyType const &key) const {
-    return find(key, hash_function(), key_eq());
+    return find_impl(*this, key, hash_function(), key_eq());
   }
   template <class KeyType>
   constexpr iterator find(KeyType const &key) {
-    return find(key, hash_function(), key_eq());
+    return find_impl(*this, key, hash_function(), key_eq());
   }
-
+
   template <class KeyType>
   constexpr bool contains(KeyType const &key) const {
     return this->find(key) != this->end();
   }

-  template <class KeyType, class Hasher, class Equal>
-  constexpr std::pair<const_iterator, const_iterator> equal_range(KeyType const &key, Hasher const &hash, Equal const &equal) const {
-    return equal_range_impl(*this, key, hash, equal);
-  }
-  template <class KeyType, class Hasher, class Equal>
-  constexpr std::pair<iterator, iterator> equal_range(KeyType const &key, Hasher const &hash, Equal const &equal) {
-    return equal_range_impl(*this, key, hash, equal);
-  }
   template <class KeyType>
   constexpr std::pair<const_iterator, const_iterator> equal_range(KeyType const &key) const {
-    return equal_range(key, hash_function(), key_eq());
+    return equal_range_impl(*this, key);
   }
   template <class KeyType>
   constexpr std::pair<iterator, iterator> equal_range(KeyType const &key) {
-    return equal_range(key, hash_function(), key_eq());
+    return equal_range_impl(*this, key);
   }

   /* bucket interface */
@@ -182,50 +152,36 @@ public:
   constexpr std::size_t max_bucket_count() const { return storage_size; }

   /* observers*/
-  constexpr const hasher& hash_function() const { return tables_.hash_; }
-  constexpr const key_equal& key_eq() const { return equal_; }
+  constexpr const hasher& hash_function() const { return tables_.hash_function(); }
+  constexpr const key_equal& key_eq() const { return static_cast<KeyEqual const&>(*this); }

 private:
-  template <class This, class KeyType, class Hasher, class Equal>
-  static inline constexpr auto& at_impl(This&& self, KeyType const &key, Hasher const &hash, Equal const &equal) {
-    auto& kv = self.lookup(key, hash);
-    if (equal(kv.first, key))
-      return kv.second;
+  template <class This, class KeyType>
+  static inline constexpr auto& at_impl(This&& self, KeyType const &key) {
+    auto it = self.find(key);
+    if (it != self.end())
+      return it->second;
     else
       FROZEN_THROW_OR_ABORT(std::out_of_range("unknown key"));
   }

   template <class This, class KeyType, class Hasher, class Equal>
   static inline constexpr auto find_impl(This&& self, KeyType const &key, Hasher const &hash, Equal const &equal) {
-    auto& kv = self.lookup(key, hash);
-    if (equal(kv.first, key))
-      return &kv;
+    auto const pos = self.tables_.lookup(key, hash);
+    auto it = self.items_.begin() + pos;
+    if (it != self.items_.end() && equal(it->first, key))
+      return it;
     else
       return self.items_.end();
   }

-  template <class This, class KeyType, class Hasher, class Equal>
-  static inline constexpr auto equal_range_impl(This&& self, KeyType const &key, Hasher const &hash, Equal const &equal) {
-    auto& kv = self.lookup(key, hash);
-    using kv_ptr = decltype(&kv);
-    if (equal(kv.first, key))
-      return std::pair<kv_ptr, kv_ptr>{&kv, &kv + 1};
+  template <class This, class KeyType>
+  static inline constexpr auto equal_range_impl(This&& self, KeyType const &key) {
+    auto const it = self.find(key);
+    if (it != self.end())
+      return std::make_pair(it, it + 1);
     else
-      return std::pair<kv_ptr, kv_ptr>{self.items_.end(), self.items_.end()};
-  }
-
-  template <class This, class KeyType, class Hasher>
-  static inline constexpr auto& lookup_impl(This&& self, KeyType const &key, Hasher const &hash) {
-    return self.items_[self.tables_.lookup(key, hash)];
-  }
-
-  template <class KeyType, class Hasher>
-  constexpr auto const& lookup(KeyType const &key, Hasher const &hash) const {
-    return lookup_impl(*this, key, hash);
-  }
-  template <class KeyType, class Hasher>
-  constexpr auto& lookup(KeyType const &key, Hasher const &hash) {
-    return lookup_impl(*this, key, hash);
+      return std::make_pair(self.end(), self.end());
   }
 };

diff --git a/deps/LIEF/third-party/frozen/include/frozen/unordered_set.h b/deps/LIEF/third-party/frozen/include/frozen/unordered_set.h
index 16282d17401..482034bd084 100644
--- a/deps/LIEF/third-party/frozen/include/frozen/unordered_set.h
+++ b/deps/LIEF/third-party/frozen/include/frozen/unordered_set.h
@@ -24,7 +24,6 @@
 #define FROZEN_LETITGO_UNORDERED_SET_H

 #include "frozen/bits/basic_types.h"
-#include "frozen/bits/constexpr_assert.h"
 #include "frozen/bits/elsa.h"
 #include "frozen/bits/pmh.h"
 #include "frozen/bits/version.h"
@@ -46,13 +45,12 @@ struct Get {

 template <class Key, std::size_t N, typename Hash = elsa<Key>,
           class KeyEqual = std::equal_to<Key>>
-class unordered_set {
+class unordered_set : private KeyEqual {
   static constexpr std::size_t storage_size =
       bits::next_highest_power_of_two(N) * (N < 32 ? 2 : 1); // size adjustment to prevent high collision rate for small sets
   using container_type = bits::carray<Key, N>;
   using tables_type = bits::pmh_tables<storage_size, Hash>;

-  KeyEqual const equal_;
   container_type keys_;
   tables_type tables_;

@@ -68,7 +66,7 @@ public:
   using reference = const_reference;
   using const_pointer = typename container_type::const_pointer;
   using pointer = const_pointer;
-  using const_iterator = const_pointer;
+  using const_iterator = typename container_type::const_iterator;
   using iterator = const_iterator;

 public:
@@ -76,10 +74,10 @@ public:
   unordered_set(unordered_set const &) = default;
   constexpr unordered_set(container_type keys, Hash const &hash,
                           KeyEqual const &equal)
-      : equal_{equal}
+      : KeyEqual{equal}
       , keys_{keys}
       , tables_{bits::make_pmh_tables<storage_size>(
-            keys_, hash, bits::Get{}, default_prg_t{})} {}
+            keys_, hash, equal, bits::Get{}, default_prg_t{})} {}
   explicit constexpr unordered_set(container_type keys)
       : unordered_set{keys, Hash{}, KeyEqual{}} {}

@@ -88,14 +86,13 @@ public:

   constexpr unordered_set(std::initializer_list<Key> keys, Hash const & hash, KeyEqual const & equal)
       : unordered_set{container_type{keys}, hash, equal} {
-        constexpr_assert(keys.size() == N, "Inconsistent initializer_list size and type size argument");
       }

   /* iterators */
   constexpr const_iterator begin() const { return keys_.begin(); }
   constexpr const_iterator end() const { return keys_.end(); }
-  constexpr const_iterator cbegin() const { return keys_.cbegin(); }
-  constexpr const_iterator cend() const { return keys_.cend(); }
+  constexpr const_iterator cbegin() const { return keys_.begin(); }
+  constexpr const_iterator cend() const { return keys_.end(); }

   /* capacity */
   constexpr bool empty() const { return !N; }
@@ -103,46 +100,42 @@ public:
   constexpr size_type max_size() const { return N; }

   /* lookup */
-  template <class KeyType, class Hasher, class Equal>
-  constexpr std::size_t count(KeyType const &key, Hasher const &hash, Equal const &equal) const {
-    auto const & k = lookup(key, hash);
-    return equal(k, key);
-  }
   template <class KeyType>
   constexpr std::size_t count(KeyType const &key) const {
-    return count(key, hash_function(), key_eq());
+    return find(key, hash_function(), key_eq()) != end();
   }

   template <class KeyType, class Hasher, class Equal>
   constexpr const_iterator find(KeyType const &key, Hasher const &hash, Equal const &equal) const {
-    auto const &k = lookup(key, hash);
-    if (equal(k, key))
-      return &k;
+    auto const pos = tables_.lookup(key, hash);
+    auto it = keys_.begin() + pos;
+    if (it != keys_.end() && equal(*it, key))
+      return it;
     else
       return keys_.end();
   }
   template <class KeyType>
   constexpr const_iterator find(KeyType const &key) const {
-    return find(key, hash_function(), key_eq());
+    auto const pos = tables_.lookup(key, hash_function());
+    auto it = keys_.begin() + pos;
+    if (it != keys_.end() && key_eq()(*it, key))
+      return it;
+    else
+      return keys_.end();
   }
-
+
   template <class KeyType>
   constexpr bool contains(KeyType const &key) const {
     return this->find(key) != keys_.end();
   }

-  template <class KeyType, class Hasher, class Equal>
-  constexpr std::pair<const_iterator, const_iterator> equal_range(
-          KeyType const &key, Hasher const &hash, Equal const &equal) const {
-    auto const &k = lookup(key, hash);
-    if (equal(k, key))
-      return {&k, &k + 1};
-    else
-      return {keys_.end(), keys_.end()};
-  }
   template <class KeyType>
   constexpr std::pair<const_iterator, const_iterator> equal_range(KeyType const &key) const {
-    return equal_range(key, hash_function(), key_eq());
+    auto const it = find(key);
+    if (it != end())
+      return {it, it + 1};
+    else
+      return {keys_.end(), keys_.end()};
   }

   /* bucket interface */
@@ -150,14 +143,8 @@ public:
   constexpr std::size_t max_bucket_count() const { return storage_size; }

   /* observers*/
-  constexpr const hasher& hash_function() const { return tables_.hash_; }
-  constexpr const key_equal& key_eq() const { return equal_; }
-
-private:
-  template <class KeyType, class Hasher>
-  constexpr auto const &lookup(KeyType const &key, Hasher const &hash) const {
-    return keys_[tables_.lookup(key, hash)];
-  }
+  constexpr const hasher& hash_function() const { return tables_.hash_function(); }
+  constexpr const key_equal& key_eq() const { return static_cast<KeyEqual const&>(*this); }
 };

 template <typename T, std::size_t N>
diff --git a/deps/LIEF/third-party/mbedtls/README.md b/deps/LIEF/third-party/mbedtls/README.md
index b70c67e030d..d3fb638802a 100644
--- a/deps/LIEF/third-party/mbedtls/README.md
+++ b/deps/LIEF/third-party/mbedtls/README.md
@@ -1,62 +1,62 @@
 README for Mbed TLS
 ===================

-Mbed TLS is a C library that implements cryptographic primitives, X.509 certificate manipulation and the SSL/TLS and DTLS protocols. Its small code footprint makes it suitable for embedded systems.
-
-Mbed TLS includes a reference implementation of the [PSA Cryptography API](#psa-cryptography-api). This is currently a preview for evaluation purposes only.
+Mbed TLS is a C library that implements X.509 certificate manipulation and the TLS and DTLS protocols. Its small code footprint makes it suitable for embedded systems.
+Mbed TLS includes the [TF-PSA-Crypto repository](https://github.com/Mbed-TLS/TF-PSA-Crypto) that provides an implementation of the [PSA Cryptography API](https://arm-software.github.io/psa-api).

 Configuration
 -------------
+Configuration options related to X.509 and TLS are available in `include/mbedtls/mbedtls_config.h`, while cryptography and platform options are located in the TF-PSA-Crypto configuration file `tf-psa-crypto/include/psa/crypto_config.h`.

-Mbed TLS should build out of the box on most systems. Some platform specific options are available in the fully documented configuration file `include/mbedtls/mbedtls_config.h`, which is also the place where features can be selected. This file can be edited manually, or in a more programmatic way using the Python 3 script `scripts/config.py` (use `--help` for usage instructions).
+With the default platform options, Mbed TLS should build out of the box on most systems.

-Compiler options can be set using conventional environment variables such as `CC` and `CFLAGS` when using the Make and CMake build system (see below).
+These configuration files can be edited manually, or programmatically using the Python script `scripts/config.py` (run with --help for usage instructions).

-We provide some non-standard configurations focused on specific use cases in the `configs/` directory. You can read more about those in `configs/README.txt`
+We provide some non-standard configurations focused on specific use cases in the `configs/` directory. You can read more about those in `configs/README.txt`.

 Documentation
 -------------

 The main Mbed TLS documentation is available via [ReadTheDocs](https://mbed-tls.readthedocs.io/).

-Documentation for the PSA Cryptography API is available [on GitHub](https://arm-software.github.io/psa-api/crypto/).
-
 To generate a local copy of the library documentation in HTML format, tailored to your compile-time configuration:

 1. Make sure that [Doxygen](http://www.doxygen.nl/) is installed.
-1. Run `make apidoc`.
-1. Browse `apidoc/index.html` or `apidoc/modules.html`.
+1. Run `cmake -B /path/to/build_dir /path/to/mbedtls/source`
+1. Run `cmake --build /path/to/build_dir --target mbedtls-apidoc`
+1. Open one of the main generated HTML files:
+   * `apidoc/index.html`
+   * `apidoc/modules.html` or `apidoc/topics.html`

 For other sources of documentation, see the [SUPPORT](SUPPORT.md) document.

 Compiling
 ---------

-There are currently three active build systems used within Mbed TLS releases:
-
--   GNU Make
--   CMake
--   Microsoft Visual Studio
-
-The main systems used for development are CMake and GNU Make. Those systems are always complete and up-to-date. The others should reflect all changes present in the CMake and Make build system, although features may not be ported there automatically.
-
-The Make and CMake build systems create three libraries: libmbedcrypto, libmbedx509, and libmbedtls. Note that libmbedtls depends on libmbedx509 and libmbedcrypto, and libmbedx509 depends on libmbedcrypto. As a result, some linkers will expect flags to be in a specific order, for example the GNU linker wants `-lmbedtls -lmbedx509 -lmbedcrypto`.
+We use CMake to configure and drive our build process. Three libraries are built: `libtfpsacrypto`, `libmbedx509`, and `libmbedtls`. Note that `libmbedtls` depends on `libmbedx509` and `libtfpsacrypto`, and `libmbedx509` depends on `libtfpsacrypto`. As a result, some linkers will expect flags to be in a specific order, for example the GNU linker wants `-lmbedtls -lmbedx509 -ltfpsacrypto`. The cryptographic library `libtfpsacrypto` is also provided under its legacy name, `libmbedcrypto`.

 ### Tool versions

-You need the following tools to build the library with the provided makefiles:
+You need the following tools to build the library from the main branch with the provided CMake files. Mbed TLS minimum tool version requirements are set based on the versions shipped in the latest or penultimate (depending on the release cadence) long-term support releases of major Linux distributions, namely at time of writing: Ubuntu 22.04, RHEL 9, and SLES 15 SP4.

-* GNU Make 3.82 or a build tool that CMake supports.
-* A C99 toolchain (compiler, linker, archiver). We actively test with GCC 5.4, Clang 3.8, Arm Compiler 6, IAR 8 and Visual Studio 2017. More recent versions should work. Slightly older versions may work.
-* Python 3.8 to generate the test code. Python is also needed to integrate PSA drivers and to build the development branch (see next section).
+* CMake 3.20.2 or later.
+* A build system like Make or Ninja for which CMake can generate build files.
+* A C99 toolchain (compiler, linker, archiver). We actively test with GCC 5.4, Clang 3.8, Arm Compiler 6, and Visual Studio 2017 Compiler. More recent versions should work. Slightly older versions may work.
+* Python 3.8 or later to generate the test code. Python is also needed to build the development branch (see next section).
 * Perl to run the tests, and to generate some source files in the development branch.
-* CMake 3.10.2 or later (if using CMake).
-* Microsoft Visual Studio 2017 or later (if using Visual Studio).
-* Doxygen 1.8.11 or later (if building the documentation; slightly older versions should work).
+* Doxygen 1.8.14 or later (if building the documentation; slightly older versions should work).

 ### Git usage

-The `development` branch and the `mbedtls-3.6` long-term support branch of Mbed TLS use a [Git submodule](https://git-scm.com/book/en/v2/Git-Tools-Submodules#_cloning_submodules) ([framework](https://github.com/Mbed-TLS/mbedtls-framework)). This is not needed to merely compile the library at a release tag. This is not needed to consume a release archive (zip or tar).
+The supported branches (see [`BRANCHES.md`](BRANCHES.md)) use [Git submodules](https://git-scm.com/book/en/v2/Git-Tools-Submodules#_cloning_submodules). They contain two submodules: the [framework](https://github.com/Mbed-TLS/mbedtls-framework) submodule and the [tf-psa-crypto](https://github.com/Mbed-TLS/TF-PSA-Crypto) submodule, except for the 3.6 LTS branch, which contains only the framework submodule. Release tags also use Git submodules.
+
+After cloning or checking out a branch or tag, run:
+    ```
+    git submodule update --init --recursive
+    ```
+ to initialize and update the submodules before building.
+
+However, the official source release tarballs (e.g. [mbedtls-4.0.0.tar.bz2](https://github.com/Mbed-TLS/mbedtls/releases/download/mbedtls-4.0.0/mbedtls-4.0.0.tar.bz2)) include the contents of the submodules.

 ### Generated source files in the development branch

@@ -64,59 +64,30 @@ The source code of Mbed TLS includes some files that are automatically generated

 The following tools are required:

-* Perl, for some library source files and for Visual Studio build files.
-* Python 3.8 and some Python packages, for some library source files, sample programs and test data. To install the necessary packages, run:
+* Perl, for some library source files.
+* Python 3 and some Python packages, for some library source files, sample programs and test data. To install the necessary packages, run:
     ```
     python3 -m pip install --user -r scripts/basic.requirements.txt
     ```
-    Depending on your Python installation, you may need to invoke `python` instead of `python3`. To install the packages system-wide, omit the `--user` option.
+    Depending on your Python installation, you may need to invoke `python` instead of `python3`. To install the packages system-wide or in a virtual environment, omit the `--user` option.
 * A C compiler for the host platform, for some test data.

-If you are cross-compiling, you must set the `CC` environment variable to a C compiler for the host platform when generating the configuration-independent files.
-
-Any of the following methods are available to generate the configuration-independent files:
-
-* If not cross-compiling, running `make` with any target, or just `make`, will automatically generate required files.
-* On non-Windows systems, when not cross-compiling, CMake will generate the required files automatically.
-* Run `make generated_files` to generate all the configuration-independent files.
-* On Unix/POSIX systems, run `tests/scripts/check-generated-files.sh -u` to generate all the configuration-independent files.
-* On Windows, run `scripts\make_generated_files.bat` to generate all the configuration-independent files.
-
-### Make
-
-We require GNU Make. To build the library and the sample programs, GNU Make and a C compiler are sufficient. Some of the more advanced build targets require some Unix/Linux tools.
+The scripts that generate the configuration-independent files will look for a host C compiler in the following places (in order of preference):

-We intentionally only use a minimum of functionality in the makefiles in order to keep them as simple and independent of different toolchains as possible, to allow users to more easily move between different platforms. Users who need more features are recommended to use CMake.
+1. The `HOSTCC` environment variable. This can be used if `CC` is pointing to a cross-compiler.
+2. The `CC` environment variable.
+3. An executable called `cc` in the current path.

-In order to build from the source code using GNU Make, just enter at the command line:
+Note: If you have multiple toolchains installed, it is recommended to set `CC` or `HOSTCC` to the intended host compiler before generating the files.

-    make
-
-In order to run the tests, enter:
-
-    make check
-
-The tests need Python to be built and Perl to be run. If you don't have one of them installed, you can skip building the tests with:
-
-    make no_test
-
-You'll still be able to run a much smaller set of tests with:
-
-    programs/test/selftest
-
-In order to build for a Windows platform, you should use `WINDOWS_BUILD=1` if the target is Windows but the build environment is Unix-like (for instance when cross-compiling, or compiling from an MSYS shell), and `WINDOWS=1` if the build environment is a Windows shell (for instance using mingw32-make) (in that case some targets will not be available).
-
-Setting the variable `SHARED` in your environment will build shared libraries in addition to the static libraries. Setting `DEBUG` gives you a debug build. You can override `CFLAGS` and `LDFLAGS` by setting them in your environment or on the make command line; compiler warning options may be overridden separately using `WARNING_CFLAGS`. Some directory-specific options (for example, `-I` directives) are still preserved.
-
-Please note that setting `CFLAGS` overrides its default value of `-O2` and setting `WARNING_CFLAGS` overrides its default value (starting with `-Wall -Wextra`), so if you just want to add some warning options to the default ones, you can do so by setting `CFLAGS=-O2 -Werror` for example. Setting `WARNING_CFLAGS` is useful when you want to get rid of its default content (for example because your compiler doesn't accept `-Wall` as an option). Directory-specific options cannot be overridden from the command line.
-
-Depending on your platform, you might run into some issues. Please check the Makefiles in `library/`, `programs/` and `tests/` for options to manually add or remove for specific platforms. You can also check [the Mbed TLS Knowledge Base](https://mbed-tls.readthedocs.io/en/latest/kb/) for articles on your platform or issue.
+Any of the following methods are available to generate the configuration-independent files:

-In case you find that you need to do something else as well, please let us know what, so we can add it to the [Mbed TLS Knowledge Base](https://mbed-tls.readthedocs.io/en/latest/kb/).
+* On non-Windows systems, when not cross-compiling, CMake generates the required files automatically.
+* Run `framework/scripts/make_generated_files.py` to generate all the configuration-independent files.

 ### CMake

-In order to build the source using CMake in a separate directory (recommended), just enter at the command line:
+In order to build the libraries using CMake in a separate directory (recommended), just enter at the command line:

     mkdir /path/to/build_dir && cd /path/to/build_dir
     cmake /path/to/mbedtls_source
@@ -126,30 +97,28 @@ In order to run the tests, enter:

     ctest

-The test suites need Python to be built and Perl to be executed. If you don't have one of these installed, you'll want to disable the test suites with:
+The test suites need Python to be built. If you don't have Python installed, you'll want to disable the test suites with:

     cmake -DENABLE_TESTING=Off /path/to/mbedtls_source

-If you disabled the test suites, but kept the programs enabled, you can still run a much smaller set of tests with:
-
-    programs/test/selftest
-
 To configure CMake for building shared libraries, use:

     cmake -DUSE_SHARED_MBEDTLS_LIBRARY=On /path/to/mbedtls_source

-There are many different build modes available within the CMake buildsystem. Most of them are available for gcc and clang, though some are compiler-specific:
+There are many different build types available with CMake. Most of them are available for gcc and clang, though some are compiler-specific:

 -   `Release`. This generates the default code without any unnecessary information in the binary files.
 -   `Debug`. This generates debug information and disables optimization of the code.
 -   `Coverage`. This generates code coverage information in addition to debug information.
 -   `ASan`. This instruments the code with AddressSanitizer to check for memory errors. (This includes LeakSanitizer, with recent version of gcc and clang.) (With recent version of clang, this mode also instruments the code with UndefinedSanitizer to check for undefined behaviour.)
 -   `ASanDbg`. Same as ASan but slower, with debug information and better stack traces.
--   `MemSan`. This instruments the code with MemorySanitizer to check for uninitialised memory reads. Experimental, needs recent clang on Linux/x86\_64.
+-   `MemSan`. This instruments the code with MemorySanitizer to check for uninitialised memory reads.
 -   `MemSanDbg`. Same as MemSan but slower, with debug information, better stack traces and origin tracking.
 -   `Check`. This activates the compiler warnings that depend on optimization and treats all warnings as errors.
+-   `TSan`. This instruments the code with ThreadSanitizer to detect data races and other threading-related concurrency issues at runtime.
+-   `TSanDbg`. Same as TSan but slower, with debug information, better stack traces and origin tracking.

-Switching build modes in CMake is simple. For debug mode, enter at the command line:
+Switching build types in CMake is simple. For debug mode, enter at the command line:

     cmake -D CMAKE_BUILD_TYPE=Debug /path/to/mbedtls_source

@@ -166,15 +135,16 @@ for example:
     CC=your_cc cmake /path/to/mbedtls_source

 If you already invoked cmake and want to change those settings, you need to
-remove the build directory and create it again.
+invoke the configuration phase of CMake again with the new settings.

 Note that it is possible to build in-place; this will however overwrite the
-provided Makefiles (see `scripts/tmp_ignore_makefiles.sh` if you want to
-prevent `git status` from showing them as modified). In order to do so, from
-the Mbed TLS source directory, use:
+legacy Makefiles still used for testing purposes (see
+`scripts/tmp_ignore_makefiles.sh` if you want to prevent `git status` from
+showing them as modified). In order to do so, from the Mbed TLS source
+directory, use:

     cmake .
-    make
+    cmake --build .

 If you want to change `CC` or `CFLAGS` afterwards, you will need to remove the
 CMake cache. This can be done with the following command using GNU find:
@@ -184,25 +154,31 @@ CMake cache. This can be done with the following command using GNU find:
 You can now make the desired change:

     CC=your_cc cmake .
-    make
+    cmake --build .

 Regarding variables, also note that if you set CFLAGS when invoking cmake,
-your value of CFLAGS doesn't override the content provided by cmake (depending
+your value of CFLAGS doesn't override the content provided by CMake (depending
 on the build mode as seen above), it's merely prepended to it.

 #### Consuming Mbed TLS

-Mbed TLS provides a package config file for consumption as a dependency in other
-CMake projects. You can include Mbed TLS's CMake targets yourself with:
+Mbed TLS provides a CMake package configuration file for consumption as a
+dependency in other CMake projects. You can load its CMake targets with:
+
+    find_package(MbedTLS REQUIRED)

-    find_package(MbedTLS)
+You can help CMake find the package:

-If prompted, set `MbedTLS_DIR` to `${YOUR_MBEDTLS_INSTALL_DIR}/cmake`. This
-creates the following targets:
+- By setting the variable `MbedTLS_DIR` to `${YOUR_MBEDTLS_BUILD_DIR}/cmake`,
+  as shown in `programs/test/cmake_package/CMakeLists.txt`, or
+- By adding the Mbed TLS installation prefix to `CMAKE_PREFIX_PATH`,
+  as shown in `programs/test/cmake_package_install/CMakeLists.txt`.

-- `MbedTLS::mbedcrypto` (Crypto library)
-- `MbedTLS::mbedtls` (TLS library)
-- `MbedTLS::mbedx509` (X509 library)
+After a successful `find_package(MbedTLS)`, the following imported targets are available:
+
+- `MbedTLS::tfpsacrypto`, the crypto library
+- `MbedTLS::mbedtls`, the TLS library
+- `MbedTLS::mbedx509`, the X.509 library

 You can then use these directly through `target_link_libraries()`:

@@ -210,7 +186,7 @@ You can then use these directly through `target_link_libraries()`:

     target_link_libraries(xyz
         PUBLIC MbedTLS::mbedtls
-               MbedTLS::mbedcrypto
+               MbedTLS::tfpsacrypto
                MbedTLS::mbedx509)

 This will link the Mbed TLS libraries to your library or application, and add
@@ -223,14 +199,6 @@ Mbed TLS supports being built as a CMake subproject. One can
 use `add_subdirectory()` from a parent CMake project to include Mbed TLS as a
 subproject.

-### Microsoft Visual Studio
-
-The build files for Microsoft Visual Studio are generated for Visual Studio 2017.
-
-The solution file `mbedTLS.sln` contains all the basic projects needed to build the library and all the programs. The files in tests are not generated and compiled, as these need Python and perl environments as well. However, the selftest program in `programs/test/` is still available.
-
-In the development branch of Mbed TLS, the Visual Studio solution files need to be generated first as described in [“Generated source files in the development branch”](#generated-source-files-in-the-development-branch).
-
 Example programs
 ----------------

@@ -240,14 +208,13 @@ Please note that the goal of these sample programs is to demonstrate specific fe
 Tests
 -----

-Mbed TLS includes an elaborate test suite in `tests/` that initially requires Python to generate the tests files (e.g. `test\_suite\_mpi.c`). These files are generated from a `function file` (e.g. `suites/test\_suite\_mpi.function`) and a `data file` (e.g. `suites/test\_suite\_mpi.data`). The `function file` contains the test functions. The `data file` contains the test cases, specified as parameters that will be passed to the test function.
+Mbed TLS includes an elaborate test suite in `tests/` that initially requires Python to generate the tests files (e.g. `test_suite_ssl.c`). These files are generated from a `function file` (e.g. `suites/test_suite_ssl.function`) and a `data file` (e.g. `suites/test_suite_ssl.data`). The `function file` contains the test functions. The `data file` contains the test cases, specified as parameters that will be passed to the test function.

 For machines with a Unix shell and OpenSSL (and optionally GnuTLS) installed, additional test scripts are available:

 -   `tests/ssl-opt.sh` runs integration tests for various TLS options (renegotiation, resumption, etc.) and tests interoperability of these options with other implementations.
 -   `tests/compat.sh` tests interoperability of every ciphersuite with other implementations.
--   `tests/scripts/test-ref-configs.pl` test builds in various reduced configurations.
--   `tests/scripts/depends.py` test builds in configurations with a single curve, key exchange, hash, cipher, or pkalg on.
+-   `tests/scripts/depends.py` tests builds in configurations with a single curve, key exchange, hash, cipher, or pkalg on.
 -   `tests/scripts/all.sh` runs a combination of the above tests, plus some more, with various build options (such as ASan, full `mbedtls_config.h`, etc).

 Instead of manually installing the required versions of all tools required for testing, it is possible to use the Docker images from our CI systems, as explained in [our testing infrastructure repository](https://github.com/Mbed-TLS/mbedtls-test/blob/main/README.md#quick-start).
@@ -271,55 +238,11 @@ Mbed TLS is mostly written in portable C99; however, it has a few platform requi
 - Mixed-endian platforms are not supported.
 - SIZE_MAX must be at least as big as INT_MAX and UINT_MAX.

-PSA cryptography API
---------------------
-
-### PSA API
-
-Arm's [Platform Security Architecture (PSA)](https://developer.arm.com/architectures/security-architectures/platform-security-architecture) is a holistic set of threat models, security analyses, hardware and firmware architecture specifications, and an open source firmware reference implementation. PSA provides a recipe, based on industry best practice, that allows security to be consistently designed in, at both a hardware and firmware level.
-
-The [PSA cryptography API](https://arm-software.github.io/psa-api/crypto/) provides access to a set of cryptographic primitives. It has a dual purpose. First, it can be used in a PSA-compliant platform to build services, such as secure boot, secure storage and secure communication. Second, it can also be used independently of other PSA components on any platform.
-
-The design goals of the PSA cryptography API include:
-
-* The API distinguishes caller memory from internal memory, which allows the library to be implemented in an isolated space for additional security. Library calls can be implemented as direct function calls if isolation is not desired, and as remote procedure calls if isolation is desired.
-* The structure of internal data is hidden to the application, which allows substituting alternative implementations at build time or run time, for example, in order to take advantage of hardware accelerators.
-* All access to the keys happens through key identifiers, which allows support for external cryptoprocessors that is transparent to applications.
-* The interface to algorithms is generic, favoring algorithm agility.
-* The interface is designed to be easy to use and hard to accidentally misuse.
-
-Arm welcomes feedback on the design of the API. If you think something could be improved, please open an issue on our Github repository. Alternatively, if you prefer to provide your feedback privately, please email us at [`mbed-crypto@arm.com`](mailto:mbed-crypto@arm.com). All feedback received by email is treated confidentially.
-
-### PSA implementation in Mbed TLS
-
-Mbed TLS includes a reference implementation of the PSA Cryptography API.
-However, it does not aim to implement the whole specification; in particular it does not implement all the algorithms.
-
-The X.509 and TLS code can use PSA cryptography for most operations. To enable this support, activate the compilation option `MBEDTLS_USE_PSA_CRYPTO` in `mbedtls_config.h`. Note that TLS 1.3 uses PSA cryptography for most operations regardless of this option. See `docs/use-psa-crypto.md` for details.
-
-### PSA drivers
-
-Mbed TLS supports drivers for cryptographic accelerators, secure elements and random generators. This is work in progress. Please note that the driver interfaces are not fully stable yet and may change without notice. We intend to preserve backward compatibility for application code (using the PSA Crypto API), but the code of the drivers may have to change in future minor releases of Mbed TLS.
-
-Please see the [PSA driver example and guide](docs/psa-driver-example-and-guide.md) for information on writing a driver.
-
-When using drivers, you will generally want to enable two compilation options (see the reference manual for more information):
-
-* `MBEDTLS_USE_PSA_CRYPTO` is necessary so that the X.509 and TLS code calls the PSA drivers rather than the built-in software implementation.
-* `MBEDTLS_PSA_CRYPTO_CONFIG` allows you to enable PSA cryptographic mechanisms without including the code of the corresponding software implementation. This is not yet supported for all mechanisms.
-
 License
 -------

 Unless specifically indicated otherwise in a file, Mbed TLS files are provided under a dual [Apache-2.0](https://spdx.org/licenses/Apache-2.0.html) OR [GPL-2.0-or-later](https://spdx.org/licenses/GPL-2.0-or-later.html) license. See the [LICENSE](LICENSE) file for the full text of these licenses, and [the 'License and Copyright' section in the contributing guidelines](CONTRIBUTING.md#License-and-Copyright) for more information.

-### Third-party code included in Mbed TLS
-
-This project contains code from other projects. This code is located within the `3rdparty/` directory. The original license text is included within project subdirectories, where it differs from the normal Mbed TLS license, and/or in source files. The projects are listed below:
-
-* `3rdparty/everest/`: Files stem from [Project Everest](https://project-everest.github.io/) and are distributed under the Apache 2.0 license.
-* `3rdparty/p256-m/p256-m/`: Files have been taken from the [p256-m](https://github.com/mpg/p256-m) repository. The code in the original repository is distributed under the Apache 2.0 license. It is distributed in Mbed TLS under a dual Apache-2.0 OR GPL-2.0-or-later license with permission from the author.
-
 Contributing
 ------------

diff --git a/deps/LIEF/third-party/mbedtls/include/CMakeLists.txt b/deps/LIEF/third-party/mbedtls/include/CMakeLists.txt
index e11e2715afe..9ea17af8b8b 100644
--- a/deps/LIEF/third-party/mbedtls/include/CMakeLists.txt
+++ b/deps/LIEF/third-party/mbedtls/include/CMakeLists.txt
@@ -3,20 +3,19 @@ option(INSTALL_MBEDTLS_HEADERS "Install Mbed TLS headers." ON)
 if(INSTALL_MBEDTLS_HEADERS)

     file(GLOB headers "mbedtls/*.h")
-    file(GLOB psa_headers "psa/*.h")

     install(FILES ${headers}
         DESTINATION include/mbedtls
         PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ)

-    install(FILES ${psa_headers}
-        DESTINATION include/psa
-        PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ)
+    file(GLOB private_headers "mbedtls/private/*.h")

+    install(FILES ${private_headers}
+        DESTINATION include/mbedtls/private
+        PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ)
 endif(INSTALL_MBEDTLS_HEADERS)

 # Make mbedtls_config.h available in an out-of-source build. ssl-opt.sh requires it.
 if (ENABLE_TESTING AND NOT ${CMAKE_CURRENT_BINARY_DIR} STREQUAL ${CMAKE_CURRENT_SOURCE_DIR})
     link_to_source(mbedtls)
-    link_to_source(psa)
 endif()
diff --git a/deps/LIEF/third-party/mbedtls/include/mbedtls/build_info.h b/deps/LIEF/third-party/mbedtls/include/mbedtls/build_info.h
index e18e823c15e..7b7ff49f5aa 100644
--- a/deps/LIEF/third-party/mbedtls/include/mbedtls/build_info.h
+++ b/deps/LIEF/third-party/mbedtls/include/mbedtls/build_info.h
@@ -14,6 +14,8 @@
 #ifndef MBEDTLS_BUILD_INFO_H
 #define MBEDTLS_BUILD_INFO_H

+#include "tf-psa-crypto/build_info.h"
+
 /*
  * This set of compile-time defines can be used to determine the version number
  * of the Mbed TLS library used. Run-time variables for the same can be found in
@@ -24,82 +26,18 @@
  * The version number x.y.z is split into three parts.
  * Major, Minor, Patchlevel
  */
-#define MBEDTLS_VERSION_MAJOR  3
-#define MBEDTLS_VERSION_MINOR  6
-#define MBEDTLS_VERSION_PATCH  4
+#define MBEDTLS_VERSION_MAJOR  4
+#define MBEDTLS_VERSION_MINOR  0
+#define MBEDTLS_VERSION_PATCH  0

 /**
  * The single version number has the following structure:
  *    MMNNPP00
  *    Major version | Minor version | Patch version
  */
-#define MBEDTLS_VERSION_NUMBER         0x03060400
-#define MBEDTLS_VERSION_STRING         "3.6.4"
-#define MBEDTLS_VERSION_STRING_FULL    "Mbed TLS 3.6.4"
-
-/* Macros for build-time platform detection */
-
-#if !defined(MBEDTLS_ARCH_IS_ARM64) && \
-    (defined(__aarch64__) || defined(_M_ARM64) || defined(_M_ARM64EC))
-#define MBEDTLS_ARCH_IS_ARM64
-#endif
-
-#if !defined(MBEDTLS_ARCH_IS_ARM32) && \
-    (defined(__arm__) || defined(_M_ARM) || \
-    defined(_M_ARMT) || defined(__thumb__) || defined(__thumb2__))
-#define MBEDTLS_ARCH_IS_ARM32
-#endif
-
-#if !defined(MBEDTLS_ARCH_IS_X64) && \
-    (defined(__amd64__) || defined(__x86_64__) || \
-    ((defined(_M_X64) || defined(_M_AMD64)) && !defined(_M_ARM64EC)))
-#define MBEDTLS_ARCH_IS_X64
-#endif
-
-#if !defined(MBEDTLS_ARCH_IS_X86) && \
-    (defined(__i386__) || defined(_X86_) || \
-    (defined(_M_IX86) && !defined(_M_I86)))
-#define MBEDTLS_ARCH_IS_X86
-#endif
-
-#if !defined(MBEDTLS_PLATFORM_IS_WINDOWS_ON_ARM64) && \
-    (defined(_M_ARM64) || defined(_M_ARM64EC))
-#define MBEDTLS_PLATFORM_IS_WINDOWS_ON_ARM64
-#endif
-
-/* This is defined if the architecture is Armv8-A, or higher */
-#if !defined(MBEDTLS_ARCH_IS_ARMV8_A)
-#if defined(__ARM_ARCH) && defined(__ARM_ARCH_PROFILE)
-#if (__ARM_ARCH >= 8) && (__ARM_ARCH_PROFILE == 'A')
-/* GCC, clang, armclang and IAR */
-#define MBEDTLS_ARCH_IS_ARMV8_A
-#endif
-#elif defined(__ARM_ARCH_8A)
-/* Alternative defined by clang */
-#define MBEDTLS_ARCH_IS_ARMV8_A
-#elif defined(_M_ARM64) || defined(_M_ARM64EC)
-/* MSVC ARM64 is at least Armv8.0-A */
-#define MBEDTLS_ARCH_IS_ARMV8_A
-#endif
-#endif
-
-#if defined(__GNUC__) && !defined(__ARMCC_VERSION) && !defined(__clang__) \
-    && !defined(__llvm__) && !defined(__INTEL_COMPILER)
-/* Defined if the compiler really is gcc and not clang, etc */
-#define MBEDTLS_COMPILER_IS_GCC
-#define MBEDTLS_GCC_VERSION \
-    (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__)
-#endif
-
-#if defined(_MSC_VER) && !defined(_CRT_SECURE_NO_DEPRECATE)
-#define _CRT_SECURE_NO_DEPRECATE 1
-#endif
-
-/* Define `inline` on some non-C99-compliant compilers. */
-#if (defined(__ARMCC_VERSION) || defined(_MSC_VER)) && \
-    !defined(inline) && !defined(__cplusplus)
-#define inline __inline
-#endif
+#define MBEDTLS_VERSION_NUMBER         0x04000000
+#define MBEDTLS_VERSION_STRING         "4.0.0"
+#define MBEDTLS_VERSION_STRING_FULL    "Mbed TLS 4.0.0"

 #if defined(MBEDTLS_CONFIG_FILES_READ)
 #error "Something went wrong: MBEDTLS_CONFIG_FILES_READ defined before reading the config files!"
@@ -108,7 +46,7 @@
 #error "Something went wrong: MBEDTLS_CONFIG_IS_FINALIZED defined before reading the config files!"
 #endif

-/* X.509, TLS and non-PSA crypto configuration */
+/* X.509 and TLS configuration */
 #if !defined(MBEDTLS_CONFIG_FILE)
 #include "mbedtls/mbedtls_config.h"
 #else
@@ -116,7 +54,7 @@
 #endif

 #if defined(MBEDTLS_CONFIG_VERSION) && ( \
-    MBEDTLS_CONFIG_VERSION < 0x03000000 || \
+    MBEDTLS_CONFIG_VERSION < 0x04000000 || \
                              MBEDTLS_CONFIG_VERSION > MBEDTLS_VERSION_NUMBER)
 #error "Invalid config version, defined value of MBEDTLS_CONFIG_VERSION is unsupported"
 #endif
@@ -130,17 +68,10 @@
 #include MBEDTLS_USER_CONFIG_FILE
 #endif

-/* PSA crypto configuration */
-#if defined(MBEDTLS_PSA_CRYPTO_CONFIG)
-#if defined(MBEDTLS_PSA_CRYPTO_CONFIG_FILE)
-#include MBEDTLS_PSA_CRYPTO_CONFIG_FILE
-#else
-#include "psa/crypto_config.h"
+/* For the sake of consistency checks in mbedtls_config.c */
+#if defined(MBEDTLS_INCLUDE_AFTER_RAW_CONFIG)
+#include MBEDTLS_INCLUDE_AFTER_RAW_CONFIG
 #endif
-#if defined(MBEDTLS_PSA_CRYPTO_USER_CONFIG_FILE)
-#include MBEDTLS_PSA_CRYPTO_USER_CONFIG_FILE
-#endif
-#endif /* defined(MBEDTLS_PSA_CRYPTO_CONFIG) */

 /* Indicate that all configuration files have been read.
  * It is now time to adjust the configuration (follow through on dependencies,
@@ -148,39 +79,9 @@
  */
 #define MBEDTLS_CONFIG_FILES_READ

-/* Auto-enable MBEDTLS_CTR_DRBG_USE_128_BIT_KEY if
- * MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH and MBEDTLS_CTR_DRBG_C defined
- * to ensure a 128-bit key size in CTR_DRBG.
- */
-#if defined(MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH) && defined(MBEDTLS_CTR_DRBG_C)
-#define MBEDTLS_CTR_DRBG_USE_128_BIT_KEY
-#endif
+#include "mbedtls/private/config_adjust_x509.h"

-/* Auto-enable MBEDTLS_MD_C if needed by a module that didn't require it
- * in a previous release, to ensure backwards compatibility.
- */
-#if defined(MBEDTLS_PKCS5_C)
-#define MBEDTLS_MD_C
-#endif
-
-/* PSA crypto specific configuration options
- * - If config_psa.h reads a configuration option in preprocessor directive,
- *   this symbol should be set before its inclusion. (e.g. MBEDTLS_MD_C)
- * - If config_psa.h writes a configuration option in conditional directive,
- *   this symbol should be consulted after its inclusion.
- *   (e.g. MBEDTLS_MD_LIGHT)
- */
-#if defined(MBEDTLS_PSA_CRYPTO_CONFIG) /* PSA_WANT_xxx influences MBEDTLS_xxx */ || \
-    defined(MBEDTLS_PSA_CRYPTO_C) /* MBEDTLS_xxx influences PSA_WANT_xxx */ || \
-    defined(MBEDTLS_PSA_CRYPTO_CLIENT) /* The same as the previous, but with separation only */
-#include "mbedtls/config_psa.h"
-#endif
-
-#include "mbedtls/config_adjust_legacy_crypto.h"
-
-#include "mbedtls/config_adjust_x509.h"
-
-#include "mbedtls/config_adjust_ssl.h"
+#include "mbedtls/private/config_adjust_ssl.h"

 /* Indicate that all configuration symbols are set,
  * even the ones that are calculated programmatically.
@@ -189,6 +90,4 @@
  */
 #define MBEDTLS_CONFIG_IS_FINALIZED

-#include "mbedtls/check_config.h"
-
 #endif /* MBEDTLS_BUILD_INFO_H */
diff --git a/deps/LIEF/third-party/mbedtls/include/mbedtls/check_config.h b/deps/LIEF/third-party/mbedtls/include/mbedtls/check_config.h
deleted file mode 100644
index aec5050b70a..00000000000
--- a/deps/LIEF/third-party/mbedtls/include/mbedtls/check_config.h
+++ /dev/null
@@ -1,1149 +0,0 @@
-/**
- * \file check_config.h
- *
- * \brief Consistency checks for configuration options
- *
- * This is an internal header. Do not include it directly.
- *
- * This header is included automatically by all public Mbed TLS headers
- * (via mbedtls/build_info.h). Do not include it directly in a configuration
- * file such as mbedtls/mbedtls_config.h or #MBEDTLS_USER_CONFIG_FILE!
- * It would run at the wrong time due to missing derived symbols.
- */
-/*
- *  Copyright The Mbed TLS Contributors
- *  SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
- */
-
-#ifndef MBEDTLS_CHECK_CONFIG_H
-#define MBEDTLS_CHECK_CONFIG_H
-
-/* *INDENT-OFF* */
-
-#if !defined(MBEDTLS_CONFIG_IS_FINALIZED)
-#warning "Do not include mbedtls/check_config.h manually! " \
-         "This may cause spurious errors. " \
-         "It is included automatically at the right point since Mbed TLS 3.0."
-#endif /* !MBEDTLS_CONFIG_IS_FINALIZED */
-
-/*
- * We assume CHAR_BIT is 8 in many places. In practice, this is true on our
- * target platforms, so not an issue, but let's just be extra sure.
- */
-#include <limits.h>
-#if CHAR_BIT != 8
-#error "Mbed TLS requires a platform with 8-bit chars"
-#endif
-
-#include <stdint.h>
-
-#if defined(__MINGW32__) || (defined(_MSC_VER) && _MSC_VER <= 1900)
-#if !defined(MBEDTLS_PLATFORM_C)
-#error "MBEDTLS_PLATFORM_C is required on Windows"
-#endif
-/* See auto-enabling SNPRINTF_ALT and VSNPRINTF_ALT
- * in * config_adjust_legacy_crypto.h */
-#endif /* _MINGW32__ || (_MSC_VER && (_MSC_VER <= 1900)) */
-
-#if defined(TARGET_LIKE_MBED) && defined(MBEDTLS_NET_C)
-#error "The NET module is not available for mbed OS - please use the network functions provided by Mbed OS"
-#endif
-
-#if defined(MBEDTLS_DEPRECATED_WARNING) && \
-    !defined(__GNUC__) && !defined(__clang__)
-#error "MBEDTLS_DEPRECATED_WARNING only works with GCC and Clang"
-#endif
-
-#if defined(MBEDTLS_HAVE_TIME_DATE) && !defined(MBEDTLS_HAVE_TIME)
-#error "MBEDTLS_HAVE_TIME_DATE without MBEDTLS_HAVE_TIME does not make sense"
-#endif
-
-/* Limitations on ECC key types acceleration: if we have any of `PUBLIC_KEY`,
- * `KEY_PAIR_BASIC`, `KEY_PAIR_IMPORT`, `KEY_PAIR_EXPORT` then we must have
- * all 4 of them.
- */
-#if defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_ECC_PUBLIC_KEY) || \
-    defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_BASIC) || \
-    defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_IMPORT) || \
-    defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_EXPORT)
-#if !defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_ECC_PUBLIC_KEY) || \
-    !defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_BASIC) || \
-    !defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_IMPORT) || \
-    !defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_EXPORT)
-#error "Unsupported partial support for ECC key type acceleration, see docs/driver-only-builds.md"
-#endif /* not all of public, basic, import, export */
-#endif /* one of public, basic, import, export */
-
-/* Limitations on ECC curves acceleration: partial curve acceleration is only
- * supported with crypto excluding PK, X.509 or TLS.
- * Note: no need to check X.509 as it depends on PK. */
-#if defined(MBEDTLS_PSA_ACCEL_ECC_BRAINPOOL_P_R1_256) || \
-    defined(MBEDTLS_PSA_ACCEL_ECC_BRAINPOOL_P_R1_384) || \
-    defined(MBEDTLS_PSA_ACCEL_ECC_BRAINPOOL_P_R1_512) || \
-    defined(MBEDTLS_PSA_ACCEL_ECC_MONTGOMERY_255) || \
-    defined(MBEDTLS_PSA_ACCEL_ECC_MONTGOMERY_448) || \
-    defined(MBEDTLS_PSA_ACCEL_ECC_SECP_K1_192) || \
-    defined(MBEDTLS_PSA_ACCEL_ECC_SECP_K1_224) || \
-    defined(MBEDTLS_PSA_ACCEL_ECC_SECP_K1_256) || \
-    defined(MBEDTLS_PSA_ACCEL_ECC_SECP_R1_192) || \
-    defined(MBEDTLS_PSA_ACCEL_ECC_SECP_R1_224) || \
-    defined(MBEDTLS_PSA_ACCEL_ECC_SECP_R1_256) || \
-    defined(MBEDTLS_PSA_ACCEL_ECC_SECP_R1_384) || \
-    defined(MBEDTLS_PSA_ACCEL_ECC_SECP_R1_521)
-#if defined(MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_CURVES)
-#if defined(MBEDTLS_PK_C) || \
-    defined(MBEDTLS_SSL_TLS_C)
-#error "Unsupported partial support for ECC curves acceleration, see docs/driver-only-builds.md"
-#endif /* modules beyond what's supported */
-#endif /* not all curves accelerated */
-#endif /* some curve accelerated */
-
-#if defined(MBEDTLS_CTR_DRBG_C) && !(defined(MBEDTLS_AES_C) || \
-    (defined(MBEDTLS_PSA_CRYPTO_CLIENT) && defined(PSA_WANT_KEY_TYPE_AES) && \
-    defined(PSA_WANT_ALG_ECB_NO_PADDING)))
-#error "MBEDTLS_CTR_DRBG_C defined, but not all prerequisites"
-#endif
-
-#if defined(MBEDTLS_DHM_C) && !defined(MBEDTLS_BIGNUM_C)
-#error "MBEDTLS_DHM_C defined, but not all prerequisites"
-#endif
-
-#if defined(MBEDTLS_CMAC_C) && \
-    ( !defined(MBEDTLS_CIPHER_C ) || ( !defined(MBEDTLS_AES_C) && !defined(MBEDTLS_DES_C) ) )
-#error "MBEDTLS_CMAC_C defined, but not all prerequisites"
-#endif
-
-#if defined(MBEDTLS_NIST_KW_C) && \
-    ( !defined(MBEDTLS_AES_C) || !defined(MBEDTLS_CIPHER_C) )
-#error "MBEDTLS_NIST_KW_C defined, but not all prerequisites"
-#endif
-
-#if defined(MBEDTLS_BLOCK_CIPHER_NO_DECRYPT) && defined(MBEDTLS_PSA_CRYPTO_CONFIG)
-#if defined(PSA_WANT_ALG_CBC_NO_PADDING)
-#error "MBEDTLS_BLOCK_CIPHER_NO_DECRYPT and PSA_WANT_ALG_CBC_NO_PADDING cannot be defined simultaneously"
-#endif
-#if defined(PSA_WANT_ALG_CBC_PKCS7)
-#error "MBEDTLS_BLOCK_CIPHER_NO_DECRYPT and PSA_WANT_ALG_CBC_PKCS7 cannot be defined simultaneously"
-#endif
-#if defined(PSA_WANT_ALG_ECB_NO_PADDING)
-#error "MBEDTLS_BLOCK_CIPHER_NO_DECRYPT and PSA_WANT_ALG_ECB_NO_PADDING cannot be defined simultaneously"
-#endif
-#if defined(PSA_WANT_KEY_TYPE_DES)
-#error "MBEDTLS_BLOCK_CIPHER_NO_DECRYPT and PSA_WANT_KEY_TYPE_DES cannot be defined simultaneously"
-#endif
-#endif
-
-#if defined(MBEDTLS_BLOCK_CIPHER_NO_DECRYPT)
-#if defined(MBEDTLS_CIPHER_MODE_CBC)
-#error "MBEDTLS_BLOCK_CIPHER_NO_DECRYPT and MBEDTLS_CIPHER_MODE_CBC cannot be defined simultaneously"
-#endif
-#if defined(MBEDTLS_CIPHER_MODE_XTS)
-#error "MBEDTLS_BLOCK_CIPHER_NO_DECRYPT and MBEDTLS_CIPHER_MODE_XTS cannot be defined simultaneously"
-#endif
-#if defined(MBEDTLS_DES_C)
-#error "MBEDTLS_BLOCK_CIPHER_NO_DECRYPT and MBEDTLS_DES_C cannot be defined simultaneously"
-#endif
-#if defined(MBEDTLS_NIST_KW_C)
-#error "MBEDTLS_BLOCK_CIPHER_NO_DECRYPT and MBEDTLS_NIST_KW_C cannot be defined simultaneously"
-#endif
-#endif
-
-#if defined(MBEDTLS_ECDH_C) && !defined(MBEDTLS_ECP_C)
-#error "MBEDTLS_ECDH_C defined, but not all prerequisites"
-#endif
-
-#if defined(MBEDTLS_ECDSA_C) &&            \
-    ( !defined(MBEDTLS_ECP_C) ||           \
-      !( defined(MBEDTLS_ECP_DP_SECP192R1_ENABLED) || \
-         defined(MBEDTLS_ECP_DP_SECP224R1_ENABLED) || \
-         defined(MBEDTLS_ECP_DP_SECP256R1_ENABLED) || \
-         defined(MBEDTLS_ECP_DP_SECP384R1_ENABLED) || \
-         defined(MBEDTLS_ECP_DP_SECP521R1_ENABLED) || \
-         defined(MBEDTLS_ECP_DP_SECP192K1_ENABLED) || \
-         defined(MBEDTLS_ECP_DP_SECP224K1_ENABLED) || \
-         defined(MBEDTLS_ECP_DP_SECP256K1_ENABLED) || \
-         defined(MBEDTLS_ECP_DP_BP256R1_ENABLED) ||   \
-         defined(MBEDTLS_ECP_DP_BP384R1_ENABLED) ||   \
-         defined(MBEDTLS_ECP_DP_BP512R1_ENABLED) ) || \
-      !defined(MBEDTLS_ASN1_PARSE_C) ||    \
-      !defined(MBEDTLS_ASN1_WRITE_C) )
-#error "MBEDTLS_ECDSA_C defined, but not all prerequisites"
-#endif
-
-#if defined(MBEDTLS_PK_C) && defined(MBEDTLS_USE_PSA_CRYPTO)
-#if defined(MBEDTLS_PK_CAN_ECDSA_SIGN) && !defined(MBEDTLS_ASN1_WRITE_C)
-#error "MBEDTLS_PK_C with MBEDTLS_USE_PSA_CRYPTO needs MBEDTLS_ASN1_WRITE_C for ECDSA signature"
-#endif
-#if defined(MBEDTLS_PK_CAN_ECDSA_VERIFY) && !defined(MBEDTLS_ASN1_PARSE_C)
-#error "MBEDTLS_PK_C with MBEDTLS_USE_PSA_CRYPTO needs MBEDTLS_ASN1_PARSE_C for ECDSA verification"
-#endif
-#endif /* MBEDTLS_PK_C && MBEDTLS_USE_PSA_CRYPTO */
-
-#if defined(MBEDTLS_ECJPAKE_C) && \
-    !defined(MBEDTLS_ECP_C)
-#error "MBEDTLS_ECJPAKE_C defined, but not all prerequisites"
-#endif
-
-#if defined(MBEDTLS_ECP_RESTARTABLE)           && \
-    ( defined(MBEDTLS_ECDH_COMPUTE_SHARED_ALT) || \
-      defined(MBEDTLS_ECDH_GEN_PUBLIC_ALT)     || \
-      defined(MBEDTLS_ECDSA_SIGN_ALT)          || \
-      defined(MBEDTLS_ECDSA_VERIFY_ALT)        || \
-      defined(MBEDTLS_ECDSA_GENKEY_ALT)        || \
-      defined(MBEDTLS_ECP_INTERNAL_ALT)        || \
-      defined(MBEDTLS_ECP_ALT) )
-#error "MBEDTLS_ECP_RESTARTABLE defined, but it cannot coexist with an alternative ECP implementation"
-#endif
-
-#if defined(MBEDTLS_ECP_RESTARTABLE)           && \
-    !defined(MBEDTLS_ECP_C)
-#error "MBEDTLS_ECP_RESTARTABLE defined, but not all prerequisites"
-#endif
-
-#if defined(MBEDTLS_ECDSA_DETERMINISTIC) && !defined(MBEDTLS_HMAC_DRBG_C)
-#error "MBEDTLS_ECDSA_DETERMINISTIC defined, but not all prerequisites"
-#endif
-
-#if defined(MBEDTLS_ECP_LIGHT) && ( !defined(MBEDTLS_BIGNUM_C) || (    \
-    !defined(MBEDTLS_ECP_DP_SECP192R1_ENABLED) &&                  \
-    !defined(MBEDTLS_ECP_DP_SECP224R1_ENABLED) &&                  \
-    !defined(MBEDTLS_ECP_DP_SECP256R1_ENABLED) &&                  \
-    !defined(MBEDTLS_ECP_DP_SECP384R1_ENABLED) &&                  \
-    !defined(MBEDTLS_ECP_DP_SECP521R1_ENABLED) &&                  \
-    !defined(MBEDTLS_ECP_DP_BP256R1_ENABLED)   &&                  \
-    !defined(MBEDTLS_ECP_DP_BP384R1_ENABLED)   &&                  \
-    !defined(MBEDTLS_ECP_DP_BP512R1_ENABLED)   &&                  \
-    !defined(MBEDTLS_ECP_DP_SECP192K1_ENABLED) &&                  \
-    !defined(MBEDTLS_ECP_DP_SECP224K1_ENABLED) &&                  \
-    !defined(MBEDTLS_ECP_DP_SECP256K1_ENABLED) &&                  \
-    !defined(MBEDTLS_ECP_DP_CURVE25519_ENABLED) &&                 \
-    !defined(MBEDTLS_ECP_DP_CURVE448_ENABLED) ) )
-#error "MBEDTLS_ECP_C defined (or a subset enabled), but not all prerequisites"
-#endif
-
-#if defined(MBEDTLS_ENTROPY_C) && \
-    !(defined(MBEDTLS_MD_CAN_SHA512) || defined(MBEDTLS_MD_CAN_SHA256))
-#error "MBEDTLS_ENTROPY_C defined, but not all prerequisites"
-#endif
-#if defined(MBEDTLS_ENTROPY_C) && \
-    defined(MBEDTLS_CTR_DRBG_ENTROPY_LEN) && (MBEDTLS_CTR_DRBG_ENTROPY_LEN > 64)
-#error "MBEDTLS_CTR_DRBG_ENTROPY_LEN value too high"
-#endif
-#if defined(MBEDTLS_ENTROPY_C) &&                                            \
-    (defined(MBEDTLS_ENTROPY_FORCE_SHA256) || !defined(MBEDTLS_MD_CAN_SHA512)) \
-    && defined(MBEDTLS_CTR_DRBG_ENTROPY_LEN) && (MBEDTLS_CTR_DRBG_ENTROPY_LEN > 32)
-#error "MBEDTLS_CTR_DRBG_ENTROPY_LEN value too high"
-#endif
-#if defined(MBEDTLS_ENTROPY_C) && \
-    defined(MBEDTLS_ENTROPY_FORCE_SHA256) && !defined(MBEDTLS_MD_CAN_SHA256)
-#error "MBEDTLS_ENTROPY_FORCE_SHA256 defined, but not all prerequisites"
-#endif
-
-#if defined(__has_feature)
-#if __has_feature(memory_sanitizer)
-#define MBEDTLS_HAS_MEMSAN // #undef at the end of this paragraph
-#endif
-#endif
-#if defined(MBEDTLS_TEST_CONSTANT_FLOW_MEMSAN) &&  !defined(MBEDTLS_HAS_MEMSAN)
-#error "MBEDTLS_TEST_CONSTANT_FLOW_MEMSAN requires building with MemorySanitizer"
-#endif
-#if defined(MBEDTLS_HAS_MEMSAN) && defined(MBEDTLS_HAVE_ASM)
-#error "MemorySanitizer does not support assembly implementation"
-#endif
-#undef MBEDTLS_HAS_MEMSAN // temporary macro defined above
-
-#if defined(MBEDTLS_CCM_C) && \
-    !(defined(MBEDTLS_CCM_GCM_CAN_AES) || defined(MBEDTLS_CCM_GCM_CAN_ARIA) || \
-    defined(MBEDTLS_CCM_GCM_CAN_CAMELLIA))
-#error "MBEDTLS_CCM_C defined, but not all prerequisites"
-#endif
-
-#if defined(MBEDTLS_GCM_C) && \
-    !(defined(MBEDTLS_CCM_GCM_CAN_AES) || defined(MBEDTLS_CCM_GCM_CAN_ARIA) || \
-    defined(MBEDTLS_CCM_GCM_CAN_CAMELLIA))
-#error "MBEDTLS_GCM_C defined, but not all prerequisites"
-#endif
-
-#if defined(MBEDTLS_CHACHAPOLY_C) && !defined(MBEDTLS_CHACHA20_C)
-#error "MBEDTLS_CHACHAPOLY_C defined, but not all prerequisites"
-#endif
-
-#if defined(MBEDTLS_CHACHAPOLY_C) && !defined(MBEDTLS_POLY1305_C)
-#error "MBEDTLS_CHACHAPOLY_C defined, but not all prerequisites"
-#endif
-
-#if defined(MBEDTLS_ECP_RANDOMIZE_JAC_ALT) && !defined(MBEDTLS_ECP_INTERNAL_ALT)
-#error "MBEDTLS_ECP_RANDOMIZE_JAC_ALT defined, but not all prerequisites"
-#endif
-
-#if defined(MBEDTLS_ECP_ADD_MIXED_ALT) && !defined(MBEDTLS_ECP_INTERNAL_ALT)
-#error "MBEDTLS_ECP_ADD_MIXED_ALT defined, but not all prerequisites"
-#endif
-
-#if defined(MBEDTLS_ECP_DOUBLE_JAC_ALT) && !defined(MBEDTLS_ECP_INTERNAL_ALT)
-#error "MBEDTLS_ECP_DOUBLE_JAC_ALT defined, but not all prerequisites"
-#endif
-
-#if defined(MBEDTLS_ECP_NORMALIZE_JAC_MANY_ALT) && !defined(MBEDTLS_ECP_INTERNAL_ALT)
-#error "MBEDTLS_ECP_NORMALIZE_JAC_MANY_ALT defined, but not all prerequisites"
-#endif
-
-#if defined(MBEDTLS_ECP_NORMALIZE_JAC_ALT) && !defined(MBEDTLS_ECP_INTERNAL_ALT)
-#error "MBEDTLS_ECP_NORMALIZE_JAC_ALT defined, but not all prerequisites"
-#endif
-
-#if defined(MBEDTLS_ECP_DOUBLE_ADD_MXZ_ALT) && !defined(MBEDTLS_ECP_INTERNAL_ALT)
-#error "MBEDTLS_ECP_DOUBLE_ADD_MXZ_ALT defined, but not all prerequisites"
-#endif
-
-#if defined(MBEDTLS_ECP_RANDOMIZE_MXZ_ALT) && !defined(MBEDTLS_ECP_INTERNAL_ALT)
-#error "MBEDTLS_ECP_RANDOMIZE_MXZ_ALT defined, but not all prerequisites"
-#endif
-
-#if defined(MBEDTLS_ECP_NORMALIZE_MXZ_ALT) && !defined(MBEDTLS_ECP_INTERNAL_ALT)
-#error "MBEDTLS_ECP_NORMALIZE_MXZ_ALT defined, but not all prerequisites"
-#endif
-
-#if defined(MBEDTLS_ECP_NO_FALLBACK) && !defined(MBEDTLS_ECP_INTERNAL_ALT)
-#error "MBEDTLS_ECP_NO_FALLBACK defined, but no alternative implementation enabled"
-#endif
-
-#if defined(MBEDTLS_HKDF_C) && !defined(MBEDTLS_MD_C)
-#error "MBEDTLS_HKDF_C defined, but not all prerequisites"
-#endif
-
-#if defined(MBEDTLS_HMAC_DRBG_C) && !defined(MBEDTLS_MD_C)
-#error "MBEDTLS_HMAC_DRBG_C defined, but not all prerequisites"
-#endif
-
-#if defined(MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED) &&                 \
-    ( !defined(MBEDTLS_CAN_ECDH) ||                                       \
-      !defined(MBEDTLS_PK_CAN_ECDSA_SIGN) ||                                \
-      !defined(MBEDTLS_X509_CRT_PARSE_C) )
-#error "MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED defined, but not all prerequisites"
-#endif
-
-#if defined(MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED) &&                 \
-    ( !defined(MBEDTLS_CAN_ECDH) || !defined(MBEDTLS_RSA_C) ||          \
-      !defined(MBEDTLS_X509_CRT_PARSE_C) )
-#error "MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED defined, but not all prerequisites"
-#endif
-
-#if defined(MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED) && !defined(MBEDTLS_DHM_C)
-#error "MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED defined, but not all prerequisites"
-#endif
-
-#if defined(MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED) &&                     \
-    !defined(MBEDTLS_CAN_ECDH)
-#error "MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED defined, but not all prerequisites"
-#endif
-
-#if defined(MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED) &&                   \
-    ( !defined(MBEDTLS_DHM_C) || !defined(MBEDTLS_RSA_C) ||           \
-      !defined(MBEDTLS_X509_CRT_PARSE_C) || !defined(MBEDTLS_PKCS1_V15) )
-#error "MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED defined, but not all prerequisites"
-#endif
-
-#if defined(MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED) &&                 \
-    ( !defined(MBEDTLS_CAN_ECDH) || !defined(MBEDTLS_RSA_C) ||          \
-      !defined(MBEDTLS_X509_CRT_PARSE_C) || !defined(MBEDTLS_PKCS1_V15) )
-#error "MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED defined, but not all prerequisites"
-#endif
-
-#if defined(MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED) &&                \
-    ( !defined(MBEDTLS_CAN_ECDH) ||                                       \
-      !defined(MBEDTLS_PK_CAN_ECDSA_SIGN) ||                                \
-      !defined(MBEDTLS_X509_CRT_PARSE_C) )
-#error "MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED defined, but not all prerequisites"
-#endif
-
-#if defined(MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED) &&                   \
-    ( !defined(MBEDTLS_RSA_C) || !defined(MBEDTLS_X509_CRT_PARSE_C) || \
-      !defined(MBEDTLS_PKCS1_V15) )
-#error "MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED defined, but not all prerequisites"
-#endif
-
-#if defined(MBEDTLS_KEY_EXCHANGE_RSA_ENABLED) &&                       \
-    ( !defined(MBEDTLS_RSA_C) || !defined(MBEDTLS_X509_CRT_PARSE_C) || \
-      !defined(MBEDTLS_PKCS1_V15) )
-#error "MBEDTLS_KEY_EXCHANGE_RSA_ENABLED defined, but not all prerequisites"
-#endif
-
-#if defined(MBEDTLS_USE_PSA_CRYPTO)
-#if defined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED) &&    \
-    ( !defined(PSA_WANT_ALG_JPAKE) ||                   \
-      !defined(PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_BASIC) || \
-      !defined(PSA_WANT_ECC_SECP_R1_256) )
-#error "MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED defined, but not all prerequisites"
-#endif
-#else /* MBEDTLS_USE_PSA_CRYPTO */
-#if defined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED) &&    \
-    ( !defined(MBEDTLS_ECJPAKE_C) ||                    \
-      !defined(MBEDTLS_ECP_DP_SECP256R1_ENABLED) )
-#error "MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED defined, but not all prerequisites"
-#endif
-#endif /* MBEDTLS_USE_PSA_CRYPTO */
-
-/* Use of EC J-PAKE in TLS requires SHA-256. */
-#if defined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED) &&                    \
-    !defined(MBEDTLS_MD_CAN_SHA256)
-#error "MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED defined, but not all prerequisites"
-#endif
-
-#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) &&        \
-    !defined(MBEDTLS_SSL_KEEP_PEER_CERTIFICATE) &&            \
-    !defined(MBEDTLS_MD_CAN_SHA256) &&                        \
-    !defined(MBEDTLS_MD_CAN_SHA512) &&                        \
-    !defined(MBEDTLS_MD_CAN_SHA1)
-#error "!MBEDTLS_SSL_KEEP_PEER_CERTIFICATE requires SHA-512, SHA-256 or SHA-1".
-#endif
-
-#if defined(MBEDTLS_MD_C) && \
-    !defined(MBEDTLS_MD_CAN_MD5) && \
-    !defined(MBEDTLS_MD_CAN_RIPEMD160) && \
-    !defined(MBEDTLS_MD_CAN_SHA1) && \
-    !defined(MBEDTLS_MD_CAN_SHA224) && \
-    !defined(MBEDTLS_MD_CAN_SHA256) && \
-    !defined(MBEDTLS_MD_CAN_SHA384) && \
-    !defined(MBEDTLS_MD_CAN_SHA512) && \
-    !defined(MBEDTLS_MD_CAN_SHA3_224) && \
-    !defined(MBEDTLS_MD_CAN_SHA3_256) && \
-    !defined(MBEDTLS_MD_CAN_SHA3_384) && \
-    !defined(MBEDTLS_MD_CAN_SHA3_512)
-#error "MBEDTLS_MD_C defined, but no hash algorithm"
-#endif
-
-#if defined(MBEDTLS_LMS_C) &&                                          \
-    ! ( defined(MBEDTLS_PSA_CRYPTO_CLIENT) && defined(PSA_WANT_ALG_SHA_256) )
-#error "MBEDTLS_LMS_C requires MBEDTLS_PSA_CRYPTO_C and PSA_WANT_ALG_SHA_256"
-#endif
-
-#if defined(MBEDTLS_LMS_PRIVATE) &&                                    \
-    ( !defined(MBEDTLS_LMS_C) )
-#error "MBEDTLS_LMS_PRIVATE requires MBEDTLS_LMS_C"
-#endif
-
-#if defined(MBEDTLS_MEMORY_BUFFER_ALLOC_C) &&                          \
-    ( !defined(MBEDTLS_PLATFORM_C) || !defined(MBEDTLS_PLATFORM_MEMORY) )
-#error "MBEDTLS_MEMORY_BUFFER_ALLOC_C defined, but not all prerequisites"
-#endif
-
-#if defined(MBEDTLS_MEMORY_BACKTRACE) && !defined(MBEDTLS_MEMORY_BUFFER_ALLOC_C)
-#error "MBEDTLS_MEMORY_BACKTRACE defined, but not all prerequisites"
-#endif
-
-#if defined(MBEDTLS_MEMORY_DEBUG) && !defined(MBEDTLS_MEMORY_BUFFER_ALLOC_C)
-#error "MBEDTLS_MEMORY_DEBUG defined, but not all prerequisites"
-#endif
-
-#if defined(MBEDTLS_PEM_PARSE_C) && !defined(MBEDTLS_BASE64_C)
-#error "MBEDTLS_PEM_PARSE_C defined, but not all prerequisites"
-#endif
-
-#if defined(MBEDTLS_PEM_WRITE_C) && !defined(MBEDTLS_BASE64_C)
-#error "MBEDTLS_PEM_WRITE_C defined, but not all prerequisites"
-#endif
-
-#if defined(MBEDTLS_PK_C) && \
-    !defined(MBEDTLS_RSA_C) && !defined(MBEDTLS_PK_HAVE_ECC_KEYS)
-#error "MBEDTLS_PK_C defined, but not all prerequisites"
-#endif
-
-#if defined(MBEDTLS_PK_PARSE_C) && \
-    (!defined(MBEDTLS_ASN1_PARSE_C) || \
-     !defined(MBEDTLS_OID_C)        || \
-     !defined(MBEDTLS_PK_C))
-#error "MBEDTLS_PK_PARSE_C defined, but not all prerequisites"
-#endif
-
-#if defined(MBEDTLS_PK_WRITE_C) && \
-    (!defined(MBEDTLS_ASN1_WRITE_C) || \
-     !defined(MBEDTLS_OID_C)        || \
-     !defined(MBEDTLS_PK_C))
-#error "MBEDTLS_PK_WRITE_C defined, but not all prerequisites"
-#endif
-
-#if defined(MBEDTLS_PLATFORM_EXIT_ALT) && !defined(MBEDTLS_PLATFORM_C)
-#error "MBEDTLS_PLATFORM_EXIT_ALT defined, but not all prerequisites"
-#endif
-
-#if defined(MBEDTLS_PLATFORM_EXIT_MACRO) && !defined(MBEDTLS_PLATFORM_C)
-#error "MBEDTLS_PLATFORM_EXIT_MACRO defined, but not all prerequisites"
-#endif
-
-#if defined(MBEDTLS_PLATFORM_EXIT_MACRO) &&\
-    ( defined(MBEDTLS_PLATFORM_STD_EXIT) ||\
-        defined(MBEDTLS_PLATFORM_EXIT_ALT) )
-#error "MBEDTLS_PLATFORM_EXIT_MACRO and MBEDTLS_PLATFORM_STD_EXIT/MBEDTLS_PLATFORM_EXIT_ALT cannot be defined simultaneously"
-#endif
-
-#if defined(MBEDTLS_PLATFORM_SETBUF_ALT) && !defined(MBEDTLS_PLATFORM_C)
-#error "MBEDTLS_PLATFORM_SETBUF_ALT defined, but not all prerequisites"
-#endif
-
-#if defined(MBEDTLS_PLATFORM_SETBUF_MACRO) && !defined(MBEDTLS_PLATFORM_C)
-#error "MBEDTLS_PLATFORM_SETBUF_MACRO defined, but not all prerequisites"
-#endif
-
-#if defined(MBEDTLS_PLATFORM_SETBUF_MACRO) &&\
-    ( defined(MBEDTLS_PLATFORM_STD_SETBUF) ||\
-        defined(MBEDTLS_PLATFORM_SETBUF_ALT) )
-#error "MBEDTLS_PLATFORM_SETBUF_MACRO and MBEDTLS_PLATFORM_STD_SETBUF/MBEDTLS_PLATFORM_SETBUF_ALT cannot be defined simultaneously"
-#endif
-
-#if defined(MBEDTLS_PLATFORM_TIME_ALT) &&\
-    ( !defined(MBEDTLS_PLATFORM_C) ||\
-        !defined(MBEDTLS_HAVE_TIME) )
-#error "MBEDTLS_PLATFORM_TIME_ALT defined, but not all prerequisites"
-#endif
-
-#if defined(MBEDTLS_PLATFORM_TIME_MACRO) &&\
-    ( !defined(MBEDTLS_PLATFORM_C) ||\
-        !defined(MBEDTLS_HAVE_TIME) )
-#error "MBEDTLS_PLATFORM_TIME_MACRO defined, but not all prerequisites"
-#endif
-
-#if defined(MBEDTLS_PLATFORM_MS_TIME_TYPE_MACRO) &&\
-    ( !defined(MBEDTLS_PLATFORM_C) || !defined(MBEDTLS_HAVE_TIME) )
-#error "MBEDTLS_PLATFORM_MS_TIME_TYPE_MACRO defined, but not all prerequisites"
-#endif
-
-#if defined(MBEDTLS_PLATFORM_MS_TIME_ALT)   && \
-    ( !defined(MBEDTLS_PLATFORM_C) || !defined(MBEDTLS_HAVE_TIME) )
-#error "MBEDTLS_PLATFORM_MS_TIME_ALT defined, but not all prerequisites"
-#endif
-
-#if defined(MBEDTLS_PLATFORM_TIME_TYPE_MACRO) &&\
-    ( !defined(MBEDTLS_PLATFORM_C) ||\
-        !defined(MBEDTLS_HAVE_TIME) )
-#error "MBEDTLS_PLATFORM_TIME_TYPE_MACRO defined, but not all prerequisites"
-#endif
-
-#if defined(MBEDTLS_PLATFORM_TIME_MACRO) &&\
-    ( defined(MBEDTLS_PLATFORM_STD_TIME) ||\
-        defined(MBEDTLS_PLATFORM_TIME_ALT) )
-#error "MBEDTLS_PLATFORM_TIME_MACRO and MBEDTLS_PLATFORM_STD_TIME/MBEDTLS_PLATFORM_TIME_ALT cannot be defined simultaneously"
-#endif
-
-#if defined(MBEDTLS_PLATFORM_TIME_TYPE_MACRO) &&\
-    ( defined(MBEDTLS_PLATFORM_STD_TIME) ||\
-        defined(MBEDTLS_PLATFORM_TIME_ALT) )
-#error "MBEDTLS_PLATFORM_TIME_TYPE_MACRO and MBEDTLS_PLATFORM_STD_TIME/MBEDTLS_PLATFORM_TIME_ALT cannot be defined simultaneously"
-#endif
-
-#if defined(MBEDTLS_PLATFORM_FPRINTF_ALT) && !defined(MBEDTLS_PLATFORM_C)
-#error "MBEDTLS_PLATFORM_FPRINTF_ALT defined, but not all prerequisites"
-#endif
-
-#if defined(MBEDTLS_PLATFORM_FPRINTF_MACRO) && !defined(MBEDTLS_PLATFORM_C)
-#error "MBEDTLS_PLATFORM_FPRINTF_MACRO defined, but not all prerequisites"
-#endif
-
-#if defined(MBEDTLS_PLATFORM_FPRINTF_MACRO) &&\
-    ( defined(MBEDTLS_PLATFORM_STD_FPRINTF) ||\
-        defined(MBEDTLS_PLATFORM_FPRINTF_ALT) )
-#error "MBEDTLS_PLATFORM_FPRINTF_MACRO and MBEDTLS_PLATFORM_STD_FPRINTF/MBEDTLS_PLATFORM_FPRINTF_ALT cannot be defined simultaneously"
-#endif
-
-#if defined(MBEDTLS_PLATFORM_FREE_MACRO) &&\
-    ( !defined(MBEDTLS_PLATFORM_C) || !defined(MBEDTLS_PLATFORM_MEMORY) )
-#error "MBEDTLS_PLATFORM_FREE_MACRO defined, but not all prerequisites"
-#endif
-
-#if defined(MBEDTLS_PLATFORM_FREE_MACRO) &&\
-    defined(MBEDTLS_PLATFORM_STD_FREE)
-#error "MBEDTLS_PLATFORM_FREE_MACRO and MBEDTLS_PLATFORM_STD_FREE cannot be defined simultaneously"
-#endif
-
-#if defined(MBEDTLS_PLATFORM_FREE_MACRO) && !defined(MBEDTLS_PLATFORM_CALLOC_MACRO)
-#error "MBEDTLS_PLATFORM_CALLOC_MACRO must be defined if MBEDTLS_PLATFORM_FREE_MACRO is"
-#endif
-
-#if defined(MBEDTLS_PLATFORM_CALLOC_MACRO) &&\
-    ( !defined(MBEDTLS_PLATFORM_C) || !defined(MBEDTLS_PLATFORM_MEMORY) )
-#error "MBEDTLS_PLATFORM_CALLOC_MACRO defined, but not all prerequisites"
-#endif
-
-#if defined(MBEDTLS_PLATFORM_CALLOC_MACRO) &&\
-    defined(MBEDTLS_PLATFORM_STD_CALLOC)
-#error "MBEDTLS_PLATFORM_CALLOC_MACRO and MBEDTLS_PLATFORM_STD_CALLOC cannot be defined simultaneously"
-#endif
-
-#if defined(MBEDTLS_PLATFORM_CALLOC_MACRO) && !defined(MBEDTLS_PLATFORM_FREE_MACRO)
-#error "MBEDTLS_PLATFORM_FREE_MACRO must be defined if MBEDTLS_PLATFORM_CALLOC_MACRO is"
-#endif
-
-#if defined(MBEDTLS_PLATFORM_MEMORY) && !defined(MBEDTLS_PLATFORM_C)
-#error "MBEDTLS_PLATFORM_MEMORY defined, but not all prerequisites"
-#endif
-
-#if defined(MBEDTLS_PLATFORM_PRINTF_ALT) && !defined(MBEDTLS_PLATFORM_C)
-#error "MBEDTLS_PLATFORM_PRINTF_ALT defined, but not all prerequisites"
-#endif
-
-#if defined(MBEDTLS_PLATFORM_PRINTF_MACRO) && !defined(MBEDTLS_PLATFORM_C)
-#error "MBEDTLS_PLATFORM_PRINTF_MACRO defined, but not all prerequisites"
-#endif
-
-#if defined(MBEDTLS_PLATFORM_PRINTF_MACRO) &&\
-    ( defined(MBEDTLS_PLATFORM_STD_PRINTF) ||\
-        defined(MBEDTLS_PLATFORM_PRINTF_ALT) )
-#error "MBEDTLS_PLATFORM_PRINTF_MACRO and MBEDTLS_PLATFORM_STD_PRINTF/MBEDTLS_PLATFORM_PRINTF_ALT cannot be defined simultaneously"
-#endif
-
-#if defined(MBEDTLS_PLATFORM_SNPRINTF_ALT) && !defined(MBEDTLS_PLATFORM_C)
-#error "MBEDTLS_PLATFORM_SNPRINTF_ALT defined, but not all prerequisites"
-#endif
-
-#if defined(MBEDTLS_PLATFORM_SNPRINTF_MACRO) && !defined(MBEDTLS_PLATFORM_C)
-#error "MBEDTLS_PLATFORM_SNPRINTF_MACRO defined, but not all prerequisites"
-#endif
-
-#if defined(MBEDTLS_PLATFORM_SNPRINTF_MACRO) &&\
-    ( defined(MBEDTLS_PLATFORM_STD_SNPRINTF) ||\
-        defined(MBEDTLS_PLATFORM_SNPRINTF_ALT) )
-#error "MBEDTLS_PLATFORM_SNPRINTF_MACRO and MBEDTLS_PLATFORM_STD_SNPRINTF/MBEDTLS_PLATFORM_SNPRINTF_ALT cannot be defined simultaneously"
-#endif
-
-#if defined(MBEDTLS_PLATFORM_VSNPRINTF_ALT) && !defined(MBEDTLS_PLATFORM_C)
-#error "MBEDTLS_PLATFORM_VSNPRINTF_ALT defined, but not all prerequisites"
-#endif
-
-#if defined(MBEDTLS_PLATFORM_VSNPRINTF_MACRO) && !defined(MBEDTLS_PLATFORM_C)
-#error "MBEDTLS_PLATFORM_VSNPRINTF_MACRO defined, but not all prerequisites"
-#endif
-
-#if defined(MBEDTLS_PLATFORM_VSNPRINTF_MACRO) &&\
-    ( defined(MBEDTLS_PLATFORM_STD_VSNPRINTF) ||\
-        defined(MBEDTLS_PLATFORM_VSNPRINTF_ALT) )
-#error "MBEDTLS_PLATFORM_VSNPRINTF_MACRO and MBEDTLS_PLATFORM_STD_VSNPRINTF/MBEDTLS_PLATFORM_VSNPRINTF_ALT cannot be defined simultaneously"
-#endif
-
-#if defined(MBEDTLS_PLATFORM_STD_MEM_HDR) &&\
-    !defined(MBEDTLS_PLATFORM_NO_STD_FUNCTIONS)
-#error "MBEDTLS_PLATFORM_STD_MEM_HDR defined, but not all prerequisites"
-#endif
-
-#if defined(MBEDTLS_PLATFORM_STD_CALLOC) && !defined(MBEDTLS_PLATFORM_MEMORY)
-#error "MBEDTLS_PLATFORM_STD_CALLOC defined, but not all prerequisites"
-#endif
-
-#if defined(MBEDTLS_PLATFORM_STD_FREE) && !defined(MBEDTLS_PLATFORM_MEMORY)
-#error "MBEDTLS_PLATFORM_STD_FREE defined, but not all prerequisites"
-#endif
-
-#if defined(MBEDTLS_PLATFORM_STD_EXIT) &&\
-    !defined(MBEDTLS_PLATFORM_EXIT_ALT)
-#error "MBEDTLS_PLATFORM_STD_EXIT defined, but not all prerequisites"
-#endif
-
-#if defined(MBEDTLS_PLATFORM_STD_TIME) &&\
-    ( !defined(MBEDTLS_PLATFORM_TIME_ALT) ||\
-        !defined(MBEDTLS_HAVE_TIME) )
-#error "MBEDTLS_PLATFORM_STD_TIME defined, but not all prerequisites"
-#endif
-
-#if defined(MBEDTLS_PLATFORM_STD_FPRINTF) &&\
-    !defined(MBEDTLS_PLATFORM_FPRINTF_ALT)
-#error "MBEDTLS_PLATFORM_STD_FPRINTF defined, but not all prerequisites"
-#endif
-
-#if defined(MBEDTLS_PLATFORM_STD_PRINTF) &&\
-    !defined(MBEDTLS_PLATFORM_PRINTF_ALT)
-#error "MBEDTLS_PLATFORM_STD_PRINTF defined, but not all prerequisites"
-#endif
-
-#if defined(MBEDTLS_PLATFORM_STD_SNPRINTF) &&\
-    !defined(MBEDTLS_PLATFORM_SNPRINTF_ALT)
-#error "MBEDTLS_PLATFORM_STD_SNPRINTF defined, but not all prerequisites"
-#endif
-
-#if defined(MBEDTLS_ENTROPY_NV_SEED) &&\
-    ( !defined(MBEDTLS_PLATFORM_C) || !defined(MBEDTLS_ENTROPY_C) )
-#error "MBEDTLS_ENTROPY_NV_SEED defined, but not all prerequisites"
-#endif
-
-#if defined(MBEDTLS_PLATFORM_NV_SEED_ALT) &&\
-    !defined(MBEDTLS_ENTROPY_NV_SEED)
-#error "MBEDTLS_PLATFORM_NV_SEED_ALT defined, but not all prerequisites"
-#endif
-
-#if defined(MBEDTLS_PLATFORM_STD_NV_SEED_READ) &&\
-    !defined(MBEDTLS_PLATFORM_NV_SEED_ALT)
-#error "MBEDTLS_PLATFORM_STD_NV_SEED_READ defined, but not all prerequisites"
-#endif
-
-#if defined(MBEDTLS_PLATFORM_STD_NV_SEED_WRITE) &&\
-    !defined(MBEDTLS_PLATFORM_NV_SEED_ALT)
-#error "MBEDTLS_PLATFORM_STD_NV_SEED_WRITE defined, but not all prerequisites"
-#endif
-
-#if defined(MBEDTLS_PLATFORM_NV_SEED_READ_MACRO) &&\
-    ( defined(MBEDTLS_PLATFORM_STD_NV_SEED_READ) ||\
-      defined(MBEDTLS_PLATFORM_NV_SEED_ALT) )
-#error "MBEDTLS_PLATFORM_NV_SEED_READ_MACRO and MBEDTLS_PLATFORM_STD_NV_SEED_READ cannot be defined simultaneously"
-#endif
-
-#if defined(MBEDTLS_PLATFORM_NV_SEED_WRITE_MACRO) &&\
-    ( defined(MBEDTLS_PLATFORM_STD_NV_SEED_WRITE) ||\
-      defined(MBEDTLS_PLATFORM_NV_SEED_ALT) )
-#error "MBEDTLS_PLATFORM_NV_SEED_WRITE_MACRO and MBEDTLS_PLATFORM_STD_NV_SEED_WRITE cannot be defined simultaneously"
-#endif
-
-#if defined(MBEDTLS_PSA_CRYPTO_C) &&                                    \
-    !( ( ( defined(MBEDTLS_CTR_DRBG_C) || defined(MBEDTLS_HMAC_DRBG_C) ) && \
-         defined(MBEDTLS_ENTROPY_C) ) ||                                \
-       defined(MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG) )
-#error "MBEDTLS_PSA_CRYPTO_C defined, but not all prerequisites (missing RNG)"
-#endif
-
-#if defined(MBEDTLS_PSA_CRYPTO_C) && defined(PSA_HAVE_SOFT_BLOCK_MODE) && \
-    defined(PSA_HAVE_SOFT_BLOCK_CIPHER) && !defined(MBEDTLS_CIPHER_C)
-#error "MBEDTLS_PSA_CRYPTO_C defined, but not all prerequisites"
-#endif
-
-#if defined(MBEDTLS_PSA_CRYPTO_SPM) && !defined(MBEDTLS_PSA_CRYPTO_C)
-#error "MBEDTLS_PSA_CRYPTO_SPM defined, but not all prerequisites"
-#endif
-
-#if defined(MBEDTLS_PSA_CRYPTO_SE_C) &&    \
-    ! ( defined(MBEDTLS_PSA_CRYPTO_C) && \
-        defined(MBEDTLS_PSA_CRYPTO_STORAGE_C) )
-#error "MBEDTLS_PSA_CRYPTO_SE_C defined, but not all prerequisites"
-#endif
-
-#if defined(MBEDTLS_PSA_CRYPTO_SE_C)
-#if defined(MBEDTLS_DEPRECATED_REMOVED)
-#error "MBEDTLS_PSA_CRYPTO_SE_C is deprecated and will be removed in a future version of Mbed TLS"
-#elif defined(MBEDTLS_DEPRECATED_WARNING)
-#warning "MBEDTLS_PSA_CRYPTO_SE_C is deprecated and will be removed in a future version of Mbed TLS"
-#endif
-#endif /* MBEDTLS_PSA_CRYPTO_SE_C */
-
-#if defined(MBEDTLS_PSA_CRYPTO_STORAGE_C) &&            \
-    ! defined(MBEDTLS_PSA_CRYPTO_C)
-#error "MBEDTLS_PSA_CRYPTO_STORAGE_C defined, but not all prerequisites"
-#endif
-
-#if defined(MBEDTLS_PSA_INJECT_ENTROPY) &&      \
-    !( defined(MBEDTLS_PSA_CRYPTO_STORAGE_C) && \
-       defined(MBEDTLS_ENTROPY_NV_SEED) )
-#error "MBEDTLS_PSA_INJECT_ENTROPY defined, but not all prerequisites"
-#endif
-
-#if defined(MBEDTLS_PSA_INJECT_ENTROPY) &&              \
-    !defined(MBEDTLS_NO_DEFAULT_ENTROPY_SOURCES)
-#error "MBEDTLS_PSA_INJECT_ENTROPY is not compatible with actual entropy sources"
-#endif
-
-#if defined(MBEDTLS_PSA_INJECT_ENTROPY) &&              \
-    defined(MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG)
-#error "MBEDTLS_PSA_INJECT_ENTROPY is not compatible with MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG"
-#endif
-
-#if defined(MBEDTLS_PSA_KEY_STORE_DYNAMIC) &&           \
-    defined(MBEDTLS_PSA_STATIC_KEY_SLOTS)
-#error "MBEDTLS_PSA_KEY_STORE_DYNAMIC and MBEDTLS_PSA_STATIC_KEY_SLOTS cannot be defined simultaneously"
-#endif
-
-#if defined(MBEDTLS_PSA_ITS_FILE_C) && \
-    !defined(MBEDTLS_FS_IO)
-#error "MBEDTLS_PSA_ITS_FILE_C defined, but not all prerequisites"
-#endif
-
-#if defined(MBEDTLS_RSA_C) && ( !defined(MBEDTLS_BIGNUM_C) ||         \
-    !defined(MBEDTLS_OID_C) )
-#error "MBEDTLS_RSA_C defined, but not all prerequisites"
-#endif
-
-#if defined(MBEDTLS_RSA_C) && ( !defined(MBEDTLS_PKCS1_V21) &&         \
-    !defined(MBEDTLS_PKCS1_V15) )
-#error "MBEDTLS_RSA_C defined, but none of the PKCS1 versions enabled"
-#endif
-
-#if defined(MBEDTLS_X509_RSASSA_PSS_SUPPORT) &&                        \
-    ( !defined(MBEDTLS_RSA_C) || !defined(MBEDTLS_PKCS1_V21) )
-#error "MBEDTLS_X509_RSASSA_PSS_SUPPORT defined, but not all prerequisites"
-#endif
-
-#if defined(MBEDTLS_SHA512_USE_A64_CRYPTO_IF_PRESENT) && \
-    defined(MBEDTLS_SHA512_USE_A64_CRYPTO_ONLY)
-#error "Must only define one of MBEDTLS_SHA512_USE_A64_CRYPTO_*"
-#endif
-
-#if defined(MBEDTLS_SHA512_USE_A64_CRYPTO_IF_PRESENT) || \
-    defined(MBEDTLS_SHA512_USE_A64_CRYPTO_ONLY)
-#if !defined(MBEDTLS_SHA512_C)
-#error "MBEDTLS_SHA512_USE_A64_CRYPTO_* defined without MBEDTLS_SHA512_C"
-#endif
-#if defined(MBEDTLS_SHA512_ALT) || defined(MBEDTLS_SHA512_PROCESS_ALT)
-#error "MBEDTLS_SHA512_*ALT can't be used with MBEDTLS_SHA512_USE_A64_CRYPTO_*"
-#endif
-
-#endif /* MBEDTLS_SHA512_USE_A64_CRYPTO_IF_PRESENT || MBEDTLS_SHA512_USE_A64_CRYPTO_ONLY */
-
-#if defined(MBEDTLS_SHA512_USE_A64_CRYPTO_ONLY) && !defined(__aarch64__)
-#error "MBEDTLS_SHA512_USE_A64_CRYPTO_ONLY defined on non-Aarch64 system"
-#endif
-
-#if defined(MBEDTLS_SHA256_USE_ARMV8_A_CRYPTO_IF_PRESENT) && \
-    defined(MBEDTLS_SHA256_USE_ARMV8_A_CRYPTO_ONLY)
-#error "Must only define one of MBEDTLS_SHA256_USE_ARMV8_A_CRYPTO_*"
-#endif
-
-#if defined(MBEDTLS_SHA256_USE_ARMV8_A_CRYPTO_IF_PRESENT) || \
-    defined(MBEDTLS_SHA256_USE_ARMV8_A_CRYPTO_ONLY)
-#if !defined(MBEDTLS_SHA256_C)
-#error "MBEDTLS_SHA256_USE_ARMV8_A_CRYPTO_* defined without MBEDTLS_SHA256_C"
-#endif
-#if defined(MBEDTLS_SHA256_ALT) || defined(MBEDTLS_SHA256_PROCESS_ALT)
-#error "MBEDTLS_SHA256_*ALT can't be used with MBEDTLS_SHA256_USE_ARMV8_A_CRYPTO_*"
-#endif
-
-#endif
-
-#if defined(MBEDTLS_SHA256_USE_ARMV8_A_CRYPTO_ONLY) && !defined(MBEDTLS_ARCH_IS_ARMV8_A)
-#error "MBEDTLS_SHA256_USE_ARMV8_A_CRYPTO_ONLY defined on non-Armv8-A system"
-#endif
-
-/* TLS 1.3 requires separate HKDF parts from PSA,
- * and at least one ciphersuite, so at least SHA-256 or SHA-384
- * from PSA to use with HKDF.
- *
- * Note: for dependencies common with TLS 1.2 (running handshake hash),
- * see MBEDTLS_SSL_TLS_C. */
-#if defined(MBEDTLS_SSL_PROTO_TLS1_3) && \
-    !(defined(MBEDTLS_PSA_CRYPTO_CLIENT) && \
-      defined(PSA_WANT_ALG_HKDF_EXTRACT) && \
-      defined(PSA_WANT_ALG_HKDF_EXPAND) && \
-      (defined(PSA_WANT_ALG_SHA_256) || defined(PSA_WANT_ALG_SHA_384)))
-#error "MBEDTLS_SSL_PROTO_TLS1_3 defined, but not all prerequisites"
-#endif
-
-#if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED)
-#if !( (defined(PSA_WANT_ALG_ECDH) || defined(PSA_WANT_ALG_FFDH)) && \
-       defined(MBEDTLS_X509_CRT_PARSE_C) && \
-       ( defined(MBEDTLS_PK_CAN_ECDSA_SIGN) || defined(MBEDTLS_PKCS1_V21) ) )
-#error "MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED defined, but not all prerequisites"
-#endif
-#endif
-
-#if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED)
-#if !( defined(PSA_WANT_ALG_ECDH) || defined(PSA_WANT_ALG_FFDH) )
-#error "MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED defined, but not all prerequisites"
-#endif
-#endif
-
-/*
- * The current implementation of TLS 1.3 requires MBEDTLS_SSL_KEEP_PEER_CERTIFICATE.
- */
-#if defined(MBEDTLS_SSL_PROTO_TLS1_3) && !defined(MBEDTLS_SSL_KEEP_PEER_CERTIFICATE)
-#error "MBEDTLS_SSL_PROTO_TLS1_3 defined without MBEDTLS_SSL_KEEP_PEER_CERTIFICATE"
-#endif
-
-#if defined(MBEDTLS_SSL_PROTO_TLS1_2) &&                                    \
-    !(defined(MBEDTLS_KEY_EXCHANGE_RSA_ENABLED) ||                          \
-      defined(MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED) ||                      \
-      defined(MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED) ||                    \
-      defined(MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED) ||                  \
-      defined(MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED) ||                     \
-      defined(MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED) ||                   \
-      defined(MBEDTLS_KEY_EXCHANGE_PSK_ENABLED) ||                          \
-      defined(MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED) ||                      \
-      defined(MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED) ||                      \
-      defined(MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED) ||                    \
-      defined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED) )
-#error "One or more versions of the TLS protocol are enabled " \
-        "but no key exchange methods defined with MBEDTLS_KEY_EXCHANGE_xxxx"
-#endif
-
-#if defined(MBEDTLS_SSL_EARLY_DATA) && \
-    ( !defined(MBEDTLS_SSL_SESSION_TICKETS) || \
-      ( !defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED) && \
-        !defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED) ) )
-#error "MBEDTLS_SSL_EARLY_DATA  defined, but not all prerequisites"
-#endif
-
-#if defined(MBEDTLS_SSL_EARLY_DATA) && defined(MBEDTLS_SSL_SRV_C) && \
-    defined(MBEDTLS_SSL_MAX_EARLY_DATA_SIZE) &&                      \
-        ((MBEDTLS_SSL_MAX_EARLY_DATA_SIZE < 0) ||                    \
-         (MBEDTLS_SSL_MAX_EARLY_DATA_SIZE > UINT32_MAX))
-#error "MBEDTLS_SSL_MAX_EARLY_DATA_SIZE must be in the range(0..UINT32_MAX)"
-#endif
-
-#if defined(MBEDTLS_SSL_PROTO_DTLS)     && \
-    !defined(MBEDTLS_SSL_PROTO_TLS1_2)
-#error "MBEDTLS_SSL_PROTO_DTLS defined, but not all prerequisites"
-#endif
-
-#if defined(MBEDTLS_SSL_CLI_C) && !defined(MBEDTLS_SSL_TLS_C)
-#error "MBEDTLS_SSL_CLI_C defined, but not all prerequisites"
-#endif
-
-#if defined(MBEDTLS_SSL_ASYNC_PRIVATE) && !defined(MBEDTLS_X509_CRT_PARSE_C)
-#error "MBEDTLS_SSL_ASYNC_PRIVATE defined, but not all prerequisites"
-#endif
-
-#if defined(MBEDTLS_SSL_TLS_C) && !(defined(MBEDTLS_CIPHER_C) || \
-    defined(MBEDTLS_USE_PSA_CRYPTO))
-#error "MBEDTLS_SSL_TLS_C defined, but not all prerequisites"
-#endif
-
-/* TLS 1.2 and 1.3 require SHA-256 or SHA-384 (running handshake hash) */
-#if defined(MBEDTLS_SSL_TLS_C)
-#if defined(MBEDTLS_USE_PSA_CRYPTO)
-#if !(defined(PSA_WANT_ALG_SHA_256) || defined(PSA_WANT_ALG_SHA_384))
-#error "MBEDTLS_SSL_TLS_C defined, but not all prerequisites"
-#endif
-#else /* MBEDTLS_USE_PSA_CRYPTO */
-#if !defined(MBEDTLS_MD_C) || \
-    !(defined(MBEDTLS_MD_CAN_SHA256) || defined(MBEDTLS_MD_CAN_SHA384))
-#error "MBEDTLS_SSL_TLS_C defined, but not all prerequisites"
-#endif
-#endif /* MBEDTLS_USE_PSA_CRYPTO */
-#endif /* MBEDTLS_SSL_TLS_C */
-
-#if defined(MBEDTLS_SSL_SRV_C) && !defined(MBEDTLS_SSL_TLS_C)
-#error "MBEDTLS_SSL_SRV_C defined, but not all prerequisites"
-#endif
-
-#if defined(MBEDTLS_SSL_TLS_C) && \
-    !( defined(MBEDTLS_SSL_PROTO_TLS1_2) || defined(MBEDTLS_SSL_PROTO_TLS1_3) )
-#error "MBEDTLS_SSL_TLS_C defined, but no protocols are active"
-#endif
-
-#if defined(MBEDTLS_SSL_DTLS_HELLO_VERIFY) && !defined(MBEDTLS_SSL_PROTO_DTLS)
-#error "MBEDTLS_SSL_DTLS_HELLO_VERIFY  defined, but not all prerequisites"
-#endif
-
-#if defined(MBEDTLS_SSL_DTLS_CLIENT_PORT_REUSE) && \
-    !defined(MBEDTLS_SSL_DTLS_HELLO_VERIFY)
-#error "MBEDTLS_SSL_DTLS_CLIENT_PORT_REUSE  defined, but not all prerequisites"
-#endif
-
-#if defined(MBEDTLS_SSL_DTLS_ANTI_REPLAY) &&                              \
-    ( !defined(MBEDTLS_SSL_TLS_C) || !defined(MBEDTLS_SSL_PROTO_DTLS) )
-#error "MBEDTLS_SSL_DTLS_ANTI_REPLAY  defined, but not all prerequisites"
-#endif
-
-#if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID) &&                              \
-    ( !defined(MBEDTLS_SSL_TLS_C) || !defined(MBEDTLS_SSL_PROTO_DTLS) )
-#error "MBEDTLS_SSL_DTLS_CONNECTION_ID  defined, but not all prerequisites"
-#endif
-
-#if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID)            &&                 \
-    defined(MBEDTLS_SSL_CID_IN_LEN_MAX) &&                 \
-    MBEDTLS_SSL_CID_IN_LEN_MAX > 255
-#error "MBEDTLS_SSL_CID_IN_LEN_MAX too large (max 255)"
-#endif
-
-#if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID)            &&                  \
-    defined(MBEDTLS_SSL_CID_OUT_LEN_MAX) &&                 \
-    MBEDTLS_SSL_CID_OUT_LEN_MAX > 255
-#error "MBEDTLS_SSL_CID_OUT_LEN_MAX too large (max 255)"
-#endif
-
-#if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID_COMPAT)     &&                 \
-    !defined(MBEDTLS_SSL_DTLS_CONNECTION_ID)
-#error "MBEDTLS_SSL_DTLS_CONNECTION_ID_COMPAT defined, but not all prerequisites"
-#endif
-
-#if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID_COMPAT) && MBEDTLS_SSL_DTLS_CONNECTION_ID_COMPAT != 0
-#if defined(MBEDTLS_DEPRECATED_REMOVED)
-#error "MBEDTLS_SSL_DTLS_CONNECTION_ID_COMPAT is deprecated and will be removed in a future version of Mbed TLS"
-#elif defined(MBEDTLS_DEPRECATED_WARNING)
-#warning "MBEDTLS_SSL_DTLS_CONNECTION_ID_COMPAT is deprecated and will be removed in a future version of Mbed TLS"
-#endif
-#endif /* MBEDTLS_SSL_DTLS_CONNECTION_ID_COMPAT && MBEDTLS_SSL_DTLS_CONNECTION_ID_COMPAT != 0 */
-
-#if defined(MBEDTLS_SSL_ENCRYPT_THEN_MAC) &&   \
-    !defined(MBEDTLS_SSL_PROTO_TLS1_2)
-#error "MBEDTLS_SSL_ENCRYPT_THEN_MAC defined, but not all prerequisites"
-#endif
-
-#if defined(MBEDTLS_SSL_EXTENDED_MASTER_SECRET) && \
-    !defined(MBEDTLS_SSL_PROTO_TLS1_2)
-#error "MBEDTLS_SSL_EXTENDED_MASTER_SECRET defined, but not all prerequisites"
-#endif
-
-#if defined(MBEDTLS_SSL_RENEGOTIATION) && \
-    !defined(MBEDTLS_SSL_PROTO_TLS1_2)
-#error "MBEDTLS_SSL_RENEGOTIATION defined, but not all prerequisites"
-#endif
-
-#if defined(MBEDTLS_SSL_TICKET_C) && ( !defined(MBEDTLS_CIPHER_C) && \
-                                       !defined(MBEDTLS_USE_PSA_CRYPTO) )
-#error "MBEDTLS_SSL_TICKET_C defined, but not all prerequisites"
-#endif
-
-#if defined(MBEDTLS_SSL_TICKET_C) && \
-    !( defined(MBEDTLS_SSL_HAVE_CCM) || defined(MBEDTLS_SSL_HAVE_GCM) || \
-    defined(MBEDTLS_SSL_HAVE_CHACHAPOLY) )
-#error "MBEDTLS_SSL_TICKET_C defined, but not all prerequisites"
-#endif
-
-#if defined(MBEDTLS_SSL_TLS1_3_TICKET_NONCE_LENGTH) && \
-    MBEDTLS_SSL_TLS1_3_TICKET_NONCE_LENGTH >= 256
-#error "MBEDTLS_SSL_TLS1_3_TICKET_NONCE_LENGTH must be less than 256"
-#endif
-
-#if defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) && \
-        !defined(MBEDTLS_X509_CRT_PARSE_C)
-#error "MBEDTLS_SSL_SERVER_NAME_INDICATION defined, but not all prerequisites"
-#endif
-
-#if defined(MBEDTLS_THREADING_PTHREAD)
-#if !defined(MBEDTLS_THREADING_C) || defined(MBEDTLS_THREADING_IMPL)
-#error "MBEDTLS_THREADING_PTHREAD defined, but not all prerequisites"
-#endif
-#define MBEDTLS_THREADING_IMPL // undef at the end of this paragraph
-#endif
-#if defined(MBEDTLS_THREADING_ALT)
-#if !defined(MBEDTLS_THREADING_C) || defined(MBEDTLS_THREADING_IMPL)
-#error "MBEDTLS_THREADING_ALT defined, but not all prerequisites"
-#endif
-#define MBEDTLS_THREADING_IMPL // undef at the end of this paragraph
-#endif
-#if defined(MBEDTLS_THREADING_C) && !defined(MBEDTLS_THREADING_IMPL)
-#error "MBEDTLS_THREADING_C defined, single threading implementation required"
-#endif
-#undef MBEDTLS_THREADING_IMPL // temporary macro defined above
-
-#if defined(MBEDTLS_USE_PSA_CRYPTO) && !defined(MBEDTLS_PSA_CRYPTO_CLIENT)
-#error "MBEDTLS_USE_PSA_CRYPTO defined, but not all prerequisites"
-#endif
-
-#if defined(MBEDTLS_VERSION_FEATURES) && !defined(MBEDTLS_VERSION_C)
-#error "MBEDTLS_VERSION_FEATURES defined, but not all prerequisites"
-#endif
-
-#if defined(MBEDTLS_X509_USE_C) && \
-    (!defined(MBEDTLS_OID_C) || !defined(MBEDTLS_ASN1_PARSE_C) ||   \
-    !defined(MBEDTLS_PK_PARSE_C) ||                                 \
-    ( !defined(MBEDTLS_MD_C) && !defined(MBEDTLS_USE_PSA_CRYPTO) ) )
-#error "MBEDTLS_X509_USE_C defined, but not all prerequisites"
-#endif
-
-#if defined(MBEDTLS_X509_CREATE_C) && \
-    (!defined(MBEDTLS_OID_C) || !defined(MBEDTLS_ASN1_WRITE_C) ||      \
-    !defined(MBEDTLS_PK_PARSE_C) ||                                    \
-    ( !defined(MBEDTLS_MD_C) && !defined(MBEDTLS_USE_PSA_CRYPTO) ) )
-#error "MBEDTLS_X509_CREATE_C defined, but not all prerequisites"
-#endif
-
-#if defined(MBEDTLS_X509_CRT_PARSE_C) && ( !defined(MBEDTLS_X509_USE_C) )
-#error "MBEDTLS_X509_CRT_PARSE_C defined, but not all prerequisites"
-#endif
-
-#if defined(MBEDTLS_X509_CRL_PARSE_C) && ( !defined(MBEDTLS_X509_USE_C) )
-#error "MBEDTLS_X509_CRL_PARSE_C defined, but not all prerequisites"
-#endif
-
-#if defined(MBEDTLS_X509_CSR_PARSE_C) && ( !defined(MBEDTLS_X509_USE_C) )
-#error "MBEDTLS_X509_CSR_PARSE_C defined, but not all prerequisites"
-#endif
-
-#if defined(MBEDTLS_X509_CRT_WRITE_C) && ( !defined(MBEDTLS_X509_CREATE_C) )
-#error "MBEDTLS_X509_CRT_WRITE_C defined, but not all prerequisites"
-#endif
-
-#if defined(MBEDTLS_X509_CSR_WRITE_C) && ( !defined(MBEDTLS_X509_CREATE_C) )
-#error "MBEDTLS_X509_CSR_WRITE_C defined, but not all prerequisites"
-#endif
-
-#if defined(MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK) && \
-            ( !defined(MBEDTLS_X509_CRT_PARSE_C) )
-#error "MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK defined, but not all prerequisites"
-#endif
-
-#if defined(MBEDTLS_HAVE_INT32) && defined(MBEDTLS_HAVE_INT64)
-#error "MBEDTLS_HAVE_INT32 and MBEDTLS_HAVE_INT64 cannot be defined simultaneously"
-#endif /* MBEDTLS_HAVE_INT32 && MBEDTLS_HAVE_INT64 */
-
-#if ( defined(MBEDTLS_HAVE_INT32) || defined(MBEDTLS_HAVE_INT64) ) && \
-    defined(MBEDTLS_HAVE_ASM)
-#error "MBEDTLS_HAVE_INT32/MBEDTLS_HAVE_INT64 and MBEDTLS_HAVE_ASM cannot be defined simultaneously"
-#endif /* (MBEDTLS_HAVE_INT32 || MBEDTLS_HAVE_INT64) && MBEDTLS_HAVE_ASM */
-
-#if defined(MBEDTLS_SSL_DTLS_SRTP) && ( !defined(MBEDTLS_SSL_PROTO_DTLS) )
-#error "MBEDTLS_SSL_DTLS_SRTP defined, but not all prerequisites"
-#endif
-
-#if defined(MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH) && ( !defined(MBEDTLS_SSL_MAX_FRAGMENT_LENGTH) )
-#error "MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH defined, but not all prerequisites"
-#endif
-
-#if defined(MBEDTLS_SSL_RECORD_SIZE_LIMIT) && ( !defined(MBEDTLS_SSL_PROTO_TLS1_3) )
-#error "MBEDTLS_SSL_RECORD_SIZE_LIMIT defined, but not all prerequisites"
-#endif
-
-#if defined(MBEDTLS_SSL_CONTEXT_SERIALIZATION) && \
-    !( defined(MBEDTLS_SSL_HAVE_CCM) || defined(MBEDTLS_SSL_HAVE_GCM) || \
-    defined(MBEDTLS_SSL_HAVE_CHACHAPOLY) )
-#error "MBEDTLS_SSL_CONTEXT_SERIALIZATION defined, but not all prerequisites"
-#endif
-
-/* Reject attempts to enable options that have been removed and that could
- * cause a build to succeed but with features removed. */
-
-#if defined(MBEDTLS_HAVEGE_C) //no-check-names
-#error "MBEDTLS_HAVEGE_C was removed in Mbed TLS 3.0. See https://github.com/Mbed-TLS/mbedtls/issues/2599"
-#endif
-
-#if defined(MBEDTLS_SSL_HW_RECORD_ACCEL) //no-check-names
-#error "MBEDTLS_SSL_HW_RECORD_ACCEL was removed in Mbed TLS 3.0. See https://github.com/Mbed-TLS/mbedtls/issues/4031"
-#endif
-
-#if defined(MBEDTLS_SSL_PROTO_SSL3) //no-check-names
-#error "MBEDTLS_SSL_PROTO_SSL3 (SSL v3.0 support) was removed in Mbed TLS 3.0. See https://github.com/Mbed-TLS/mbedtls/issues/4031"
-#endif
-
-#if defined(MBEDTLS_SSL_SRV_SUPPORT_SSLV2_CLIENT_HELLO) //no-check-names
-#error "MBEDTLS_SSL_SRV_SUPPORT_SSLV2_CLIENT_HELLO (SSL v2 ClientHello support) was removed in Mbed TLS 3.0. See https://github.com/Mbed-TLS/mbedtls/issues/4031"
-#endif
-
-#if defined(MBEDTLS_SSL_TRUNCATED_HMAC_COMPAT) //no-check-names
-#error "MBEDTLS_SSL_TRUNCATED_HMAC_COMPAT (compatibility with the buggy implementation of truncated HMAC in Mbed TLS up to 2.7) was removed in Mbed TLS 3.0. See https://github.com/Mbed-TLS/mbedtls/issues/4031"
-#endif
-
-#if defined(MBEDTLS_TLS_DEFAULT_ALLOW_SHA1_IN_CERTIFICATES) //no-check-names
-#error "MBEDTLS_TLS_DEFAULT_ALLOW_SHA1_IN_CERTIFICATES was removed in Mbed TLS 3.0. See the ChangeLog entry if you really need SHA-1-signed certificates."
-#endif
-
-#if defined(MBEDTLS_ZLIB_SUPPORT) //no-check-names
-#error "MBEDTLS_ZLIB_SUPPORT was removed in Mbed TLS 3.0. See https://github.com/Mbed-TLS/mbedtls/issues/4031"
-#endif
-
-#if defined(MBEDTLS_CHECK_PARAMS) //no-check-names
-#error "MBEDTLS_CHECK_PARAMS was removed in Mbed TLS 3.0. See https://github.com/Mbed-TLS/mbedtls/issues/4313"
-#endif
-
-#if defined(MBEDTLS_SSL_CID_PADDING_GRANULARITY) //no-check-names
-#error "MBEDTLS_SSL_CID_PADDING_GRANULARITY was removed in Mbed TLS 3.0. See https://github.com/Mbed-TLS/mbedtls/issues/4335"
-#endif
-
-#if defined(MBEDTLS_SSL_TLS1_3_PADDING_GRANULARITY) //no-check-names
-#error "MBEDTLS_SSL_TLS1_3_PADDING_GRANULARITY was removed in Mbed TLS 3.0. See https://github.com/Mbed-TLS/mbedtls/issues/4335"
-#endif
-
-#if defined(MBEDTLS_SSL_TRUNCATED_HMAC) //no-check-names
-#error "MBEDTLS_SSL_TRUNCATED_HMAC was removed in Mbed TLS 3.0. See https://github.com/Mbed-TLS/mbedtls/issues/4341"
-#endif
-
-#if defined(MBEDTLS_PKCS7_C) && ( ( !defined(MBEDTLS_ASN1_PARSE_C) ) || \
-    ( !defined(MBEDTLS_OID_C) ) || ( !defined(MBEDTLS_PK_PARSE_C) ) || \
-    ( !defined(MBEDTLS_X509_CRT_PARSE_C) ) || \
-    ( !defined(MBEDTLS_X509_CRL_PARSE_C) ) || \
-    ( !defined(MBEDTLS_MD_C) ) )
-#error  "MBEDTLS_PKCS7_C is defined, but not all prerequisites"
-#endif
-
-/*
- * Avoid warning from -pedantic. This is a convenient place for this
- * workaround since this is included by every single file before the
- * #if defined(MBEDTLS_xxx_C) that results in empty translation units.
- */
-typedef int mbedtls_iso_c_forbids_empty_translation_units;
-
-/* *INDENT-ON* */
-#endif /* MBEDTLS_CHECK_CONFIG_H */
diff --git a/deps/LIEF/third-party/mbedtls/include/mbedtls/compat-2.x.h b/deps/LIEF/third-party/mbedtls/include/mbedtls/compat-2.x.h
deleted file mode 100644
index 096341ba76c..00000000000
--- a/deps/LIEF/third-party/mbedtls/include/mbedtls/compat-2.x.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/**
- * \file compat-2.x.h
- *
- * \brief Compatibility definitions
- *
- * \deprecated Use the new names directly instead
- */
-/*
- *  Copyright The Mbed TLS Contributors
- *  SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
- */
-
-#if defined(MBEDTLS_DEPRECATED_WARNING)
-#warning "Including compat-2.x.h is deprecated"
-#endif
-
-#ifndef MBEDTLS_COMPAT2X_H
-#define MBEDTLS_COMPAT2X_H
-
-/*
- * Macros for renamed functions
- */
-#define mbedtls_ctr_drbg_update_ret   mbedtls_ctr_drbg_update
-#define mbedtls_hmac_drbg_update_ret  mbedtls_hmac_drbg_update
-#define mbedtls_md5_starts_ret        mbedtls_md5_starts
-#define mbedtls_md5_update_ret        mbedtls_md5_update
-#define mbedtls_md5_finish_ret        mbedtls_md5_finish
-#define mbedtls_md5_ret               mbedtls_md5
-#define mbedtls_ripemd160_starts_ret  mbedtls_ripemd160_starts
-#define mbedtls_ripemd160_update_ret  mbedtls_ripemd160_update
-#define mbedtls_ripemd160_finish_ret  mbedtls_ripemd160_finish
-#define mbedtls_ripemd160_ret         mbedtls_ripemd160
-#define mbedtls_sha1_starts_ret       mbedtls_sha1_starts
-#define mbedtls_sha1_update_ret       mbedtls_sha1_update
-#define mbedtls_sha1_finish_ret       mbedtls_sha1_finish
-#define mbedtls_sha1_ret              mbedtls_sha1
-#define mbedtls_sha256_starts_ret     mbedtls_sha256_starts
-#define mbedtls_sha256_update_ret     mbedtls_sha256_update
-#define mbedtls_sha256_finish_ret     mbedtls_sha256_finish
-#define mbedtls_sha256_ret            mbedtls_sha256
-#define mbedtls_sha512_starts_ret     mbedtls_sha512_starts
-#define mbedtls_sha512_update_ret     mbedtls_sha512_update
-#define mbedtls_sha512_finish_ret     mbedtls_sha512_finish
-#define mbedtls_sha512_ret            mbedtls_sha512
-
-#endif /* MBEDTLS_COMPAT2X_H */
diff --git a/deps/LIEF/third-party/mbedtls/include/mbedtls/config_adjust_psa_from_legacy.h b/deps/LIEF/third-party/mbedtls/include/mbedtls/config_adjust_psa_from_legacy.h
deleted file mode 100644
index 14ca14696f7..00000000000
--- a/deps/LIEF/third-party/mbedtls/include/mbedtls/config_adjust_psa_from_legacy.h
+++ /dev/null
@@ -1,359 +0,0 @@
-/**
- * \file mbedtls/config_adjust_psa_from_legacy.h
- * \brief Adjust PSA configuration: construct PSA configuration from legacy
- *
- * This is an internal header. Do not include it directly.
- *
- * When MBEDTLS_PSA_CRYPTO_CONFIG is disabled, we automatically enable
- * cryptographic mechanisms through the PSA interface when the corresponding
- * legacy mechanism is enabled. In many cases, this just enables the PSA
- * wrapper code around the legacy implementation, but we also do this for
- * some mechanisms where PSA has its own independent implementation so
- * that high-level modules that can use either cryptographic API have the
- * same feature set in both cases.
- */
-/*
- *  Copyright The Mbed TLS Contributors
- *  SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
- */
-
-#ifndef MBEDTLS_CONFIG_ADJUST_PSA_FROM_LEGACY_H
-#define MBEDTLS_CONFIG_ADJUST_PSA_FROM_LEGACY_H
-
-#if !defined(MBEDTLS_CONFIG_FILES_READ)
-#error "Do not include mbedtls/config_adjust_*.h manually! This can lead to problems, " \
-    "up to and including runtime errors such as buffer overflows. " \
-    "If you're trying to fix a complaint from check_config.h, just remove " \
-    "it from your configuration file: since Mbed TLS 3.0, it is included " \
-    "automatically at the right point."
-#endif /* */
-
-/*
- * Ensure PSA_WANT_* defines are setup properly if MBEDTLS_PSA_CRYPTO_CONFIG
- * is not defined
- */
-
-#if defined(MBEDTLS_CCM_C)
-#define MBEDTLS_PSA_BUILTIN_ALG_CCM 1
-#define PSA_WANT_ALG_CCM 1
-#if defined(MBEDTLS_CIPHER_C)
-#define MBEDTLS_PSA_BUILTIN_ALG_CCM_STAR_NO_TAG 1
-#define PSA_WANT_ALG_CCM_STAR_NO_TAG 1
-#endif /* MBEDTLS_CIPHER_C */
-#endif /* MBEDTLS_CCM_C */
-
-#if defined(MBEDTLS_CMAC_C)
-#define MBEDTLS_PSA_BUILTIN_ALG_CMAC 1
-#define PSA_WANT_ALG_CMAC 1
-#endif /* MBEDTLS_CMAC_C */
-
-#if defined(MBEDTLS_ECDH_C)
-#define MBEDTLS_PSA_BUILTIN_ALG_ECDH 1
-#define PSA_WANT_ALG_ECDH 1
-#endif /* MBEDTLS_ECDH_C */
-
-#if defined(MBEDTLS_ECDSA_C)
-#define MBEDTLS_PSA_BUILTIN_ALG_ECDSA 1
-#define PSA_WANT_ALG_ECDSA 1
-#define PSA_WANT_ALG_ECDSA_ANY 1
-
-// Only add in DETERMINISTIC support if ECDSA is also enabled
-#if defined(MBEDTLS_ECDSA_DETERMINISTIC)
-#define MBEDTLS_PSA_BUILTIN_ALG_DETERMINISTIC_ECDSA 1
-#define PSA_WANT_ALG_DETERMINISTIC_ECDSA 1
-#endif /* MBEDTLS_ECDSA_DETERMINISTIC */
-
-#endif /* MBEDTLS_ECDSA_C */
-
-#if defined(MBEDTLS_ECP_C)
-#define PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_BASIC 1
-#define PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_IMPORT 1
-#define PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_EXPORT 1
-#define PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_GENERATE 1
-/* Normally we wouldn't enable this because it's not implemented in ecp.c,
- * but since it used to be available any time ECP_C was enabled, let's enable
- * it anyway for the sake of backwards compatibility */
-#define PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_DERIVE 1
-#define MBEDTLS_PSA_BUILTIN_KEY_TYPE_ECC_KEY_PAIR_BASIC 1
-#define MBEDTLS_PSA_BUILTIN_KEY_TYPE_ECC_KEY_PAIR_IMPORT 1
-#define MBEDTLS_PSA_BUILTIN_KEY_TYPE_ECC_KEY_PAIR_EXPORT 1
-#define MBEDTLS_PSA_BUILTIN_KEY_TYPE_ECC_KEY_PAIR_GENERATE 1
-/* See comment for PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_DERIVE above. */
-#define MBEDTLS_PSA_BUILTIN_KEY_TYPE_ECC_KEY_PAIR_DERIVE 1
-#define MBEDTLS_PSA_BUILTIN_KEY_TYPE_ECC_PUBLIC_KEY 1
-#define PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY 1
-#endif /* MBEDTLS_ECP_C */
-
-#if defined(MBEDTLS_DHM_C)
-#define PSA_WANT_KEY_TYPE_DH_KEY_PAIR_BASIC 1
-#define PSA_WANT_KEY_TYPE_DH_KEY_PAIR_IMPORT 1
-#define PSA_WANT_KEY_TYPE_DH_KEY_PAIR_EXPORT 1
-#define PSA_WANT_KEY_TYPE_DH_KEY_PAIR_GENERATE 1
-#define PSA_WANT_KEY_TYPE_DH_PUBLIC_KEY 1
-#define PSA_WANT_ALG_FFDH 1
-#define PSA_WANT_DH_RFC7919_2048 1
-#define PSA_WANT_DH_RFC7919_3072 1
-#define PSA_WANT_DH_RFC7919_4096 1
-#define PSA_WANT_DH_RFC7919_6144 1
-#define PSA_WANT_DH_RFC7919_8192 1
-#define MBEDTLS_PSA_BUILTIN_ALG_FFDH 1
-#define MBEDTLS_PSA_BUILTIN_KEY_TYPE_DH_KEY_PAIR_BASIC 1
-#define MBEDTLS_PSA_BUILTIN_KEY_TYPE_DH_KEY_PAIR_IMPORT 1
-#define MBEDTLS_PSA_BUILTIN_KEY_TYPE_DH_KEY_PAIR_EXPORT 1
-#define MBEDTLS_PSA_BUILTIN_KEY_TYPE_DH_KEY_PAIR_GENERATE 1
-#define MBEDTLS_PSA_BUILTIN_KEY_TYPE_DH_PUBLIC_KEY 1
-#define MBEDTLS_PSA_BUILTIN_DH_RFC7919_2048 1
-#define MBEDTLS_PSA_BUILTIN_DH_RFC7919_3072 1
-#define MBEDTLS_PSA_BUILTIN_DH_RFC7919_4096 1
-#define MBEDTLS_PSA_BUILTIN_DH_RFC7919_6144 1
-#define MBEDTLS_PSA_BUILTIN_DH_RFC7919_8192 1
-#endif /* MBEDTLS_DHM_C */
-
-#if defined(MBEDTLS_GCM_C)
-#define MBEDTLS_PSA_BUILTIN_ALG_GCM 1
-#define PSA_WANT_ALG_GCM 1
-#endif /* MBEDTLS_GCM_C */
-
-/* Enable PSA HKDF algorithm if mbedtls HKDF is supported.
- * PSA HKDF EXTRACT and PSA HKDF EXPAND have minimal cost when
- * PSA HKDF is enabled, so enable both algorithms together
- * with PSA HKDF. */
-#if defined(MBEDTLS_HKDF_C)
-#define MBEDTLS_PSA_BUILTIN_ALG_HMAC 1
-#define PSA_WANT_ALG_HMAC 1
-#define MBEDTLS_PSA_BUILTIN_ALG_HKDF 1
-#define PSA_WANT_ALG_HKDF 1
-#define MBEDTLS_PSA_BUILTIN_ALG_HKDF_EXTRACT 1
-#define PSA_WANT_ALG_HKDF_EXTRACT 1
-#define MBEDTLS_PSA_BUILTIN_ALG_HKDF_EXPAND 1
-#define PSA_WANT_ALG_HKDF_EXPAND 1
-#endif /* MBEDTLS_HKDF_C */
-
-#define MBEDTLS_PSA_BUILTIN_ALG_HMAC 1
-#define PSA_WANT_ALG_HMAC 1
-#define PSA_WANT_KEY_TYPE_HMAC 1
-
-#if defined(MBEDTLS_MD_C)
-#define MBEDTLS_PSA_BUILTIN_ALG_TLS12_PRF 1
-#define PSA_WANT_ALG_TLS12_PRF 1
-#define MBEDTLS_PSA_BUILTIN_ALG_TLS12_PSK_TO_MS 1
-#define PSA_WANT_ALG_TLS12_PSK_TO_MS 1
-#endif /* MBEDTLS_MD_C */
-
-#if defined(MBEDTLS_MD5_C)
-#define MBEDTLS_PSA_BUILTIN_ALG_MD5 1
-#define PSA_WANT_ALG_MD5 1
-#endif
-
-#if defined(MBEDTLS_ECJPAKE_C)
-#define MBEDTLS_PSA_BUILTIN_PAKE 1
-#define MBEDTLS_PSA_BUILTIN_ALG_JPAKE 1
-#define PSA_WANT_ALG_JPAKE 1
-#endif
-
-#if defined(MBEDTLS_RIPEMD160_C)
-#define MBEDTLS_PSA_BUILTIN_ALG_RIPEMD160 1
-#define PSA_WANT_ALG_RIPEMD160 1
-#endif
-
-#if defined(MBEDTLS_RSA_C)
-#if defined(MBEDTLS_PKCS1_V15)
-#define MBEDTLS_PSA_BUILTIN_ALG_RSA_PKCS1V15_CRYPT 1
-#define PSA_WANT_ALG_RSA_PKCS1V15_CRYPT 1
-#define MBEDTLS_PSA_BUILTIN_ALG_RSA_PKCS1V15_SIGN 1
-#define PSA_WANT_ALG_RSA_PKCS1V15_SIGN 1
-#define PSA_WANT_ALG_RSA_PKCS1V15_SIGN_RAW 1
-#endif /* MBEDTLS_PKCS1_V15 */
-#if defined(MBEDTLS_PKCS1_V21)
-#define MBEDTLS_PSA_BUILTIN_ALG_RSA_OAEP 1
-#define PSA_WANT_ALG_RSA_OAEP 1
-#define MBEDTLS_PSA_BUILTIN_ALG_RSA_PSS 1
-#define PSA_WANT_ALG_RSA_PSS 1
-#endif /* MBEDTLS_PKCS1_V21 */
-#if defined(MBEDTLS_GENPRIME)
-#define MBEDTLS_PSA_BUILTIN_KEY_TYPE_RSA_KEY_PAIR_GENERATE 1
-#define PSA_WANT_KEY_TYPE_RSA_KEY_PAIR_GENERATE 1
-#endif /* MBEDTLS_GENPRIME */
-#define MBEDTLS_PSA_BUILTIN_KEY_TYPE_RSA_KEY_PAIR_BASIC 1
-#define MBEDTLS_PSA_BUILTIN_KEY_TYPE_RSA_KEY_PAIR_IMPORT 1
-#define MBEDTLS_PSA_BUILTIN_KEY_TYPE_RSA_KEY_PAIR_EXPORT 1
-#define PSA_WANT_KEY_TYPE_RSA_KEY_PAIR_BASIC 1
-#define PSA_WANT_KEY_TYPE_RSA_KEY_PAIR_IMPORT 1
-#define PSA_WANT_KEY_TYPE_RSA_KEY_PAIR_EXPORT 1
-#define MBEDTLS_PSA_BUILTIN_KEY_TYPE_RSA_PUBLIC_KEY 1
-#define PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY 1
-#endif /* MBEDTLS_RSA_C */
-
-#if defined(MBEDTLS_SHA1_C)
-#define MBEDTLS_PSA_BUILTIN_ALG_SHA_1 1
-#define PSA_WANT_ALG_SHA_1 1
-#endif
-
-#if defined(MBEDTLS_SHA224_C)
-#define MBEDTLS_PSA_BUILTIN_ALG_SHA_224 1
-#define PSA_WANT_ALG_SHA_224 1
-#endif
-
-#if defined(MBEDTLS_SHA256_C)
-#define MBEDTLS_PSA_BUILTIN_ALG_SHA_256 1
-#define PSA_WANT_ALG_SHA_256 1
-#endif
-
-#if defined(MBEDTLS_SHA384_C)
-#define MBEDTLS_PSA_BUILTIN_ALG_SHA_384 1
-#define PSA_WANT_ALG_SHA_384 1
-#endif
-
-#if defined(MBEDTLS_SHA512_C)
-#define MBEDTLS_PSA_BUILTIN_ALG_SHA_512 1
-#define PSA_WANT_ALG_SHA_512 1
-#endif
-
-#if defined(MBEDTLS_SHA3_C)
-#define MBEDTLS_PSA_BUILTIN_ALG_SHA3_224 1
-#define MBEDTLS_PSA_BUILTIN_ALG_SHA3_256 1
-#define MBEDTLS_PSA_BUILTIN_ALG_SHA3_384 1
-#define MBEDTLS_PSA_BUILTIN_ALG_SHA3_512 1
-#define PSA_WANT_ALG_SHA3_224 1
-#define PSA_WANT_ALG_SHA3_256 1
-#define PSA_WANT_ALG_SHA3_384 1
-#define PSA_WANT_ALG_SHA3_512 1
-#endif
-
-#if defined(MBEDTLS_AES_C)
-#define PSA_WANT_KEY_TYPE_AES 1
-#define MBEDTLS_PSA_BUILTIN_KEY_TYPE_AES 1
-#endif
-
-#if defined(MBEDTLS_ARIA_C)
-#define PSA_WANT_KEY_TYPE_ARIA 1
-#define MBEDTLS_PSA_BUILTIN_KEY_TYPE_ARIA 1
-#endif
-
-#if defined(MBEDTLS_CAMELLIA_C)
-#define PSA_WANT_KEY_TYPE_CAMELLIA 1
-#define MBEDTLS_PSA_BUILTIN_KEY_TYPE_CAMELLIA 1
-#endif
-
-#if defined(MBEDTLS_DES_C)
-#define PSA_WANT_KEY_TYPE_DES 1
-#define MBEDTLS_PSA_BUILTIN_KEY_TYPE_DES 1
-#endif
-
-#if defined(MBEDTLS_PSA_BUILTIN_ALG_SHA_256)
-#define MBEDTLS_PSA_BUILTIN_ALG_TLS12_ECJPAKE_TO_PMS 1
-#define PSA_WANT_ALG_TLS12_ECJPAKE_TO_PMS 1
-#endif
-
-#if defined(MBEDTLS_CHACHA20_C)
-#define PSA_WANT_KEY_TYPE_CHACHA20 1
-#define MBEDTLS_PSA_BUILTIN_KEY_TYPE_CHACHA20 1
-/* ALG_STREAM_CIPHER requires CIPHER_C in order to be supported in PSA */
-#if defined(MBEDTLS_CIPHER_C)
-#define PSA_WANT_ALG_STREAM_CIPHER 1
-#define MBEDTLS_PSA_BUILTIN_ALG_STREAM_CIPHER 1
-#endif
-#if defined(MBEDTLS_CHACHAPOLY_C)
-#define PSA_WANT_ALG_CHACHA20_POLY1305 1
-#define MBEDTLS_PSA_BUILTIN_ALG_CHACHA20_POLY1305 1
-#endif
-#endif
-
-#if defined(MBEDTLS_CIPHER_MODE_CBC)
-#define MBEDTLS_PSA_BUILTIN_ALG_CBC_NO_PADDING 1
-#define PSA_WANT_ALG_CBC_NO_PADDING 1
-#if defined(MBEDTLS_CIPHER_PADDING_PKCS7)
-#define MBEDTLS_PSA_BUILTIN_ALG_CBC_PKCS7 1
-#define PSA_WANT_ALG_CBC_PKCS7 1
-#endif
-#endif
-
-#if (defined(MBEDTLS_AES_C) || defined(MBEDTLS_DES_C) || \
-    defined(MBEDTLS_ARIA_C) || defined(MBEDTLS_CAMELLIA_C)) && \
-    defined(MBEDTLS_CIPHER_C)
-#define MBEDTLS_PSA_BUILTIN_ALG_ECB_NO_PADDING 1
-#define PSA_WANT_ALG_ECB_NO_PADDING 1
-#endif
-
-#if defined(MBEDTLS_CIPHER_MODE_CFB)
-#define MBEDTLS_PSA_BUILTIN_ALG_CFB 1
-#define PSA_WANT_ALG_CFB 1
-#endif
-
-#if defined(MBEDTLS_CIPHER_MODE_CTR)
-#define MBEDTLS_PSA_BUILTIN_ALG_CTR 1
-#define PSA_WANT_ALG_CTR 1
-#endif
-
-#if defined(MBEDTLS_CIPHER_MODE_OFB)
-#define MBEDTLS_PSA_BUILTIN_ALG_OFB 1
-#define PSA_WANT_ALG_OFB 1
-#endif
-
-#if defined(MBEDTLS_ECP_DP_BP256R1_ENABLED)
-#define MBEDTLS_PSA_BUILTIN_ECC_BRAINPOOL_P_R1_256 1
-#define PSA_WANT_ECC_BRAINPOOL_P_R1_256 1
-#endif
-
-#if defined(MBEDTLS_ECP_DP_BP384R1_ENABLED)
-#define MBEDTLS_PSA_BUILTIN_ECC_BRAINPOOL_P_R1_384 1
-#define PSA_WANT_ECC_BRAINPOOL_P_R1_384 1
-#endif
-
-#if defined(MBEDTLS_ECP_DP_BP512R1_ENABLED)
-#define MBEDTLS_PSA_BUILTIN_ECC_BRAINPOOL_P_R1_512 1
-#define PSA_WANT_ECC_BRAINPOOL_P_R1_512 1
-#endif
-
-#if defined(MBEDTLS_ECP_DP_CURVE25519_ENABLED)
-#define MBEDTLS_PSA_BUILTIN_ECC_MONTGOMERY_255 1
-#define PSA_WANT_ECC_MONTGOMERY_255 1
-#endif
-
-#if defined(MBEDTLS_ECP_DP_CURVE448_ENABLED)
-#define MBEDTLS_PSA_BUILTIN_ECC_MONTGOMERY_448 1
-#define PSA_WANT_ECC_MONTGOMERY_448 1
-#endif
-
-#if defined(MBEDTLS_ECP_DP_SECP192R1_ENABLED)
-#define MBEDTLS_PSA_BUILTIN_ECC_SECP_R1_192 1
-#define PSA_WANT_ECC_SECP_R1_192 1
-#endif
-
-#if defined(MBEDTLS_ECP_DP_SECP224R1_ENABLED)
-#define MBEDTLS_PSA_BUILTIN_ECC_SECP_R1_224 1
-#define PSA_WANT_ECC_SECP_R1_224 1
-#endif
-
-#if defined(MBEDTLS_ECP_DP_SECP256R1_ENABLED)
-#define MBEDTLS_PSA_BUILTIN_ECC_SECP_R1_256 1
-#define PSA_WANT_ECC_SECP_R1_256 1
-#endif
-
-#if defined(MBEDTLS_ECP_DP_SECP384R1_ENABLED)
-#define MBEDTLS_PSA_BUILTIN_ECC_SECP_R1_384 1
-#define PSA_WANT_ECC_SECP_R1_384 1
-#endif
-
-#if defined(MBEDTLS_ECP_DP_SECP521R1_ENABLED)
-#define MBEDTLS_PSA_BUILTIN_ECC_SECP_R1_521 1
-#define PSA_WANT_ECC_SECP_R1_521 1
-#endif
-
-#if defined(MBEDTLS_ECP_DP_SECP192K1_ENABLED)
-#define MBEDTLS_PSA_BUILTIN_ECC_SECP_K1_192 1
-#define PSA_WANT_ECC_SECP_K1_192 1
-#endif
-
-/* SECP224K1 is buggy via the PSA API (https://github.com/Mbed-TLS/mbedtls/issues/3541) */
-#if 0 && defined(MBEDTLS_ECP_DP_SECP224K1_ENABLED)
-#define MBEDTLS_PSA_BUILTIN_ECC_SECP_K1_224 1
-#define PSA_WANT_ECC_SECP_K1_224 1
-#endif
-
-#if defined(MBEDTLS_ECP_DP_SECP256K1_ENABLED)
-#define MBEDTLS_PSA_BUILTIN_ECC_SECP_K1_256 1
-#define PSA_WANT_ECC_SECP_K1_256 1
-#endif
-
-#endif /* MBEDTLS_CONFIG_ADJUST_PSA_FROM_LEGACY_H */
diff --git a/deps/LIEF/third-party/mbedtls/include/mbedtls/config_adjust_psa_superset_legacy.h b/deps/LIEF/third-party/mbedtls/include/mbedtls/config_adjust_psa_superset_legacy.h
deleted file mode 100644
index 1a232cbb81e..00000000000
--- a/deps/LIEF/third-party/mbedtls/include/mbedtls/config_adjust_psa_superset_legacy.h
+++ /dev/null
@@ -1,145 +0,0 @@
-/**
- * \file mbedtls/config_adjust_psa_superset_legacy.h
- * \brief Adjust PSA configuration: automatic enablement from legacy
- *
- * This is an internal header. Do not include it directly.
- *
- * To simplify some edge cases, we automatically enable certain cryptographic
- * mechanisms in the PSA API if they are enabled in the legacy API. The general
- * idea is that if legacy module M uses mechanism A internally, and A has
- * both a legacy and a PSA implementation, we enable A through PSA whenever
- * it's enabled through legacy. This facilitates the transition to PSA
- * implementations of A for users of M.
- */
-/*
- *  Copyright The Mbed TLS Contributors
- *  SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
- */
-
-#ifndef MBEDTLS_CONFIG_ADJUST_PSA_SUPERSET_LEGACY_H
-#define MBEDTLS_CONFIG_ADJUST_PSA_SUPERSET_LEGACY_H
-
-#if !defined(MBEDTLS_CONFIG_FILES_READ)
-#error "Do not include mbedtls/config_adjust_*.h manually! This can lead to problems, " \
-    "up to and including runtime errors such as buffer overflows. " \
-    "If you're trying to fix a complaint from check_config.h, just remove " \
-    "it from your configuration file: since Mbed TLS 3.0, it is included " \
-    "automatically at the right point."
-#endif /* */
-
-/****************************************************************/
-/* Hashes that are built in are also enabled in PSA.
- * This simplifies dependency declarations especially
- * for modules that obey MBEDTLS_USE_PSA_CRYPTO. */
-/****************************************************************/
-
-#if defined(MBEDTLS_MD5_C)
-#define PSA_WANT_ALG_MD5 1
-#endif
-
-#if defined(MBEDTLS_RIPEMD160_C)
-#define PSA_WANT_ALG_RIPEMD160 1
-#endif
-
-#if defined(MBEDTLS_SHA1_C)
-#define PSA_WANT_ALG_SHA_1 1
-#endif
-
-#if defined(MBEDTLS_SHA224_C)
-#define PSA_WANT_ALG_SHA_224 1
-#endif
-
-#if defined(MBEDTLS_SHA256_C)
-#define PSA_WANT_ALG_SHA_256 1
-#endif
-
-#if defined(MBEDTLS_SHA384_C)
-#define PSA_WANT_ALG_SHA_384 1
-#endif
-
-#if defined(MBEDTLS_SHA512_C)
-#define PSA_WANT_ALG_SHA_512 1
-#endif
-
-#if defined(MBEDTLS_SHA3_C)
-#define PSA_WANT_ALG_SHA3_224 1
-#define PSA_WANT_ALG_SHA3_256 1
-#define PSA_WANT_ALG_SHA3_384 1
-#define PSA_WANT_ALG_SHA3_512 1
-#endif
-
-/* Ensure that the PSA's supported curves (PSA_WANT_ECC_xxx) are always a
- * superset of the builtin ones (MBEDTLS_ECP_DP_xxx). */
-#if defined(MBEDTLS_ECP_DP_BP256R1_ENABLED)
-#if !defined(PSA_WANT_ECC_BRAINPOOL_P_R1_256)
-#define PSA_WANT_ECC_BRAINPOOL_P_R1_256 1
-#endif /* PSA_WANT_ECC_BRAINPOOL_P_R1_256 */
-#endif /* MBEDTLS_ECP_DP_BP256R1_ENABLED */
-
-#if defined(MBEDTLS_ECP_DP_BP384R1_ENABLED)
-#if !defined(PSA_WANT_ECC_BRAINPOOL_P_R1_384)
-#define PSA_WANT_ECC_BRAINPOOL_P_R1_384 1
-#endif /* PSA_WANT_ECC_BRAINPOOL_P_R1_384 */
-#endif /*MBEDTLS_ECP_DP_BP384R1_ENABLED  */
-
-#if defined(MBEDTLS_ECP_DP_BP512R1_ENABLED)
-#if !defined(PSA_WANT_ECC_BRAINPOOL_P_R1_512)
-#define PSA_WANT_ECC_BRAINPOOL_P_R1_512 1
-#endif /* PSA_WANT_ECC_BRAINPOOL_P_R1_512 */
-#endif /* MBEDTLS_ECP_DP_BP512R1_ENABLED */
-
-#if defined(MBEDTLS_ECP_DP_CURVE25519_ENABLED)
-#if !defined(PSA_WANT_ECC_MONTGOMERY_255)
-#define PSA_WANT_ECC_MONTGOMERY_255 1
-#endif /* PSA_WANT_ECC_MONTGOMERY_255 */
-#endif /* MBEDTLS_ECP_DP_CURVE25519_ENABLED */
-
-#if defined(MBEDTLS_ECP_DP_CURVE448_ENABLED)
-#if !defined(PSA_WANT_ECC_MONTGOMERY_448)
-#define PSA_WANT_ECC_MONTGOMERY_448 1
-#endif /* PSA_WANT_ECC_MONTGOMERY_448 */
-#endif /* MBEDTLS_ECP_DP_CURVE448_ENABLED */
-
-#if defined(MBEDTLS_ECP_DP_SECP192R1_ENABLED)
-#if !defined(PSA_WANT_ECC_SECP_R1_192)
-#define PSA_WANT_ECC_SECP_R1_192 1
-#endif /* PSA_WANT_ECC_SECP_R1_192 */
-#endif /* MBEDTLS_ECP_DP_SECP192R1_ENABLED */
-
-#if defined(MBEDTLS_ECP_DP_SECP224R1_ENABLED)
-#if !defined(PSA_WANT_ECC_SECP_R1_224)
-#define PSA_WANT_ECC_SECP_R1_224 1
-#endif /* PSA_WANT_ECC_SECP_R1_224 */
-#endif /* MBEDTLS_ECP_DP_SECP224R1_ENABLED */
-
-#if defined(MBEDTLS_ECP_DP_SECP256R1_ENABLED)
-#if !defined(PSA_WANT_ECC_SECP_R1_256)
-#define PSA_WANT_ECC_SECP_R1_256 1
-#endif /* PSA_WANT_ECC_SECP_R1_256 */
-#endif /* MBEDTLS_ECP_DP_SECP256R1_ENABLED */
-
-#if defined(MBEDTLS_ECP_DP_SECP384R1_ENABLED)
-#if !defined(PSA_WANT_ECC_SECP_R1_384)
-#define PSA_WANT_ECC_SECP_R1_384 1
-#endif /* PSA_WANT_ECC_SECP_R1_384 */
-#endif /* MBEDTLS_ECP_DP_SECP384R1_ENABLED */
-
-#if defined(MBEDTLS_ECP_DP_SECP521R1_ENABLED)
-#if !defined(PSA_WANT_ECC_SECP_R1_521)
-#define PSA_WANT_ECC_SECP_R1_521 1
-#endif /* PSA_WANT_ECC_SECP_R1_521 */
-#endif /* MBEDTLS_ECP_DP_SECP521R1_ENABLED */
-
-#if defined(MBEDTLS_ECP_DP_SECP192K1_ENABLED)
-#if !defined(PSA_WANT_ECC_SECP_K1_192)
-#define PSA_WANT_ECC_SECP_K1_192 1
-#endif /* PSA_WANT_ECC_SECP_K1_192 */
-#endif /* MBEDTLS_ECP_DP_SECP192K1_ENABLED */
-
-#if defined(MBEDTLS_ECP_DP_SECP256K1_ENABLED)
-#if !defined(PSA_WANT_ECC_SECP_K1_256)
-#define PSA_WANT_ECC_SECP_K1_256 1
-#endif /* PSA_WANT_ECC_SECP_K1_256 */
-#endif /* MBEDTLS_ECP_DP_SECP256K1_ENABLED */
-
-#endif /* MBEDTLS_CONFIG_ADJUST_PSA_SUPERSET_LEGACY_H */
diff --git a/deps/LIEF/third-party/mbedtls/include/mbedtls/debug.h b/deps/LIEF/third-party/mbedtls/include/mbedtls/debug.h
index e6f5dadb146..bdfc597e0cb 100644
--- a/deps/LIEF/third-party/mbedtls/include/mbedtls/debug.h
+++ b/deps/LIEF/third-party/mbedtls/include/mbedtls/debug.h
@@ -14,10 +14,6 @@

 #include "mbedtls/ssl.h"

-#if defined(MBEDTLS_ECP_C)
-#include "mbedtls/ecp.h"
-#endif
-
 #if defined(MBEDTLS_DEBUG_C)

 #define MBEDTLS_DEBUG_STRIP_PARENS(...)   __VA_ARGS__
@@ -32,16 +28,6 @@
 #define MBEDTLS_SSL_DEBUG_BUF(level, text, buf, len)           \
     mbedtls_debug_print_buf(ssl, level, __FILE__, __LINE__, text, buf, len)

-#if defined(MBEDTLS_BIGNUM_C)
-#define MBEDTLS_SSL_DEBUG_MPI(level, text, X)                  \
-    mbedtls_debug_print_mpi(ssl, level, __FILE__, __LINE__, text, X)
-#endif
-
-#if defined(MBEDTLS_ECP_C)
-#define MBEDTLS_SSL_DEBUG_ECP(level, text, X)                  \
-    mbedtls_debug_print_ecp(ssl, level, __FILE__, __LINE__, text, X)
-#endif
-
 #if defined(MBEDTLS_X509_CRT_PARSE_C)
 #if !defined(MBEDTLS_X509_REMOVE_INFO)
 #define MBEDTLS_SSL_DEBUG_CRT(level, text, crt)                \
@@ -51,20 +37,13 @@
 #endif /* MBEDTLS_X509_REMOVE_INFO */
 #endif /* MBEDTLS_X509_CRT_PARSE_C */

-#if defined(MBEDTLS_ECDH_C)
-#define MBEDTLS_SSL_DEBUG_ECDH(level, ecdh, attr)               \
-    mbedtls_debug_printf_ecdh(ssl, level, __FILE__, __LINE__, ecdh, attr)
-#endif
-
 #else /* MBEDTLS_DEBUG_C */

 #define MBEDTLS_SSL_DEBUG_MSG(level, args)            do { } while (0)
 #define MBEDTLS_SSL_DEBUG_RET(level, text, ret)       do { } while (0)
 #define MBEDTLS_SSL_DEBUG_BUF(level, text, buf, len)  do { } while (0)
-#define MBEDTLS_SSL_DEBUG_MPI(level, text, X)         do { } while (0)
 #define MBEDTLS_SSL_DEBUG_ECP(level, text, X)         do { } while (0)
 #define MBEDTLS_SSL_DEBUG_CRT(level, text, crt)       do { } while (0)
-#define MBEDTLS_SSL_DEBUG_ECDH(level, ecdh, attr)     do { } while (0)

 #endif /* MBEDTLS_DEBUG_C */

diff --git a/deps/LIEF/third-party/mbedtls/include/mbedtls/des.h b/deps/LIEF/third-party/mbedtls/include/mbedtls/des.h
deleted file mode 100644
index 2b097a13dd2..00000000000
--- a/deps/LIEF/third-party/mbedtls/include/mbedtls/des.h
+++ /dev/null
@@ -1,385 +0,0 @@
-/**
- * \file des.h
- *
- * \brief DES block cipher
- *
- * \warning   DES/3DES are considered weak ciphers and their use constitutes a
- *            security risk. We recommend considering stronger ciphers
- *            instead.
- */
-/*
- *  Copyright The Mbed TLS Contributors
- *  SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
- *
- */
-#ifndef MBEDTLS_DES_H
-#define MBEDTLS_DES_H
-#include "mbedtls/private_access.h"
-
-#include "mbedtls/build_info.h"
-#include "mbedtls/platform_util.h"
-
-#include <stddef.h>
-#include <stdint.h>
-
-#define MBEDTLS_DES_ENCRYPT     1
-#define MBEDTLS_DES_DECRYPT     0
-
-/** The data input has an invalid length. */
-#define MBEDTLS_ERR_DES_INVALID_INPUT_LENGTH              -0x0032
-
-#define MBEDTLS_DES_KEY_SIZE    8
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#if !defined(MBEDTLS_DES_ALT)
-// Regular implementation
-//
-
-/**
- * \brief          DES context structure
- *
- * \warning        DES/3DES are considered weak ciphers and their use constitutes a
- *                 security risk. We recommend considering stronger ciphers
- *                 instead.
- */
-typedef struct mbedtls_des_context {
-    uint32_t MBEDTLS_PRIVATE(sk)[32];            /*!<  DES subkeys       */
-}
-mbedtls_des_context;
-
-/**
- * \brief          Triple-DES context structure
- *
- * \warning        DES/3DES are considered weak ciphers and their use constitutes a
- *                 security risk. We recommend considering stronger ciphers
- *                 instead.
- */
-typedef struct mbedtls_des3_context {
-    uint32_t MBEDTLS_PRIVATE(sk)[96];            /*!<  3DES subkeys      */
-}
-mbedtls_des3_context;
-
-#else  /* MBEDTLS_DES_ALT */
-#include "des_alt.h"
-#endif /* MBEDTLS_DES_ALT */
-
-/**
- * \brief          Initialize DES context
- *
- * \param ctx      DES context to be initialized
- *
- * \warning        DES/3DES are considered weak ciphers and their use constitutes a
- *                 security risk. We recommend considering stronger ciphers
- *                 instead.
- */
-void mbedtls_des_init(mbedtls_des_context *ctx);
-
-/**
- * \brief          Clear DES context
- *
- * \param ctx      DES context to be cleared
- *
- * \warning        DES/3DES are considered weak ciphers and their use constitutes a
- *                 security risk. We recommend considering stronger ciphers
- *                 instead.
- */
-void mbedtls_des_free(mbedtls_des_context *ctx);
-
-/**
- * \brief          Initialize Triple-DES context
- *
- * \param ctx      DES3 context to be initialized
- *
- * \warning        DES/3DES are considered weak ciphers and their use constitutes a
- *                 security risk. We recommend considering stronger ciphers
- *                 instead.
- */
-void mbedtls_des3_init(mbedtls_des3_context *ctx);
-
-/**
- * \brief          Clear Triple-DES context
- *
- * \param ctx      DES3 context to be cleared
- *
- * \warning        DES/3DES are considered weak ciphers and their use constitutes a
- *                 security risk. We recommend considering stronger ciphers
- *                 instead.
- */
-void mbedtls_des3_free(mbedtls_des3_context *ctx);
-
-/**
- * \brief          Set key parity on the given key to odd.
- *
- *                 DES keys are 56 bits long, but each byte is padded with
- *                 a parity bit to allow verification.
- *
- * \param key      8-byte secret key
- *
- * \warning        DES/3DES are considered weak ciphers and their use constitutes a
- *                 security risk. We recommend considering stronger ciphers
- *                 instead.
- */
-void mbedtls_des_key_set_parity(unsigned char key[MBEDTLS_DES_KEY_SIZE]);
-
-/**
- * \brief          Check that key parity on the given key is odd.
- *
- *                 DES keys are 56 bits long, but each byte is padded with
- *                 a parity bit to allow verification.
- *
- * \param key      8-byte secret key
- *
- * \return         0 is parity was ok, 1 if parity was not correct.
- *
- * \warning        DES/3DES are considered weak ciphers and their use constitutes a
- *                 security risk. We recommend considering stronger ciphers
- *                 instead.
- */
-MBEDTLS_CHECK_RETURN_TYPICAL
-int mbedtls_des_key_check_key_parity(const unsigned char key[MBEDTLS_DES_KEY_SIZE]);
-
-/**
- * \brief          Check that key is not a weak or semi-weak DES key
- *
- * \param key      8-byte secret key
- *
- * \return         0 if no weak key was found, 1 if a weak key was identified.
- *
- * \warning        DES/3DES are considered weak ciphers and their use constitutes a
- *                 security risk. We recommend considering stronger ciphers
- *                 instead.
- */
-MBEDTLS_CHECK_RETURN_TYPICAL
-int mbedtls_des_key_check_weak(const unsigned char key[MBEDTLS_DES_KEY_SIZE]);
-
-/**
- * \brief          DES key schedule (56-bit, encryption)
- *
- * \param ctx      DES context to be initialized
- * \param key      8-byte secret key
- *
- * \return         0
- *
- * \warning        DES/3DES are considered weak ciphers and their use constitutes a
- *                 security risk. We recommend considering stronger ciphers
- *                 instead.
- */
-MBEDTLS_CHECK_RETURN_TYPICAL
-int mbedtls_des_setkey_enc(mbedtls_des_context *ctx, const unsigned char key[MBEDTLS_DES_KEY_SIZE]);
-
-/**
- * \brief          DES key schedule (56-bit, decryption)
- *
- * \param ctx      DES context to be initialized
- * \param key      8-byte secret key
- *
- * \return         0
- *
- * \warning        DES/3DES are considered weak ciphers and their use constitutes a
- *                 security risk. We recommend considering stronger ciphers
- *                 instead.
- */
-MBEDTLS_CHECK_RETURN_TYPICAL
-int mbedtls_des_setkey_dec(mbedtls_des_context *ctx, const unsigned char key[MBEDTLS_DES_KEY_SIZE]);
-
-/**
- * \brief          Triple-DES key schedule (112-bit, encryption)
- *
- * \param ctx      3DES context to be initialized
- * \param key      16-byte secret key
- *
- * \return         0
- *
- * \warning        DES/3DES are considered weak ciphers and their use constitutes a
- *                 security risk. We recommend considering stronger ciphers
- *                 instead.
- */
-MBEDTLS_CHECK_RETURN_TYPICAL
-int mbedtls_des3_set2key_enc(mbedtls_des3_context *ctx,
-                             const unsigned char key[MBEDTLS_DES_KEY_SIZE * 2]);
-
-/**
- * \brief          Triple-DES key schedule (112-bit, decryption)
- *
- * \param ctx      3DES context to be initialized
- * \param key      16-byte secret key
- *
- * \return         0
- *
- * \warning        DES/3DES are considered weak ciphers and their use constitutes a
- *                 security risk. We recommend considering stronger ciphers
- *                 instead.
- */
-MBEDTLS_CHECK_RETURN_TYPICAL
-int mbedtls_des3_set2key_dec(mbedtls_des3_context *ctx,
-                             const unsigned char key[MBEDTLS_DES_KEY_SIZE * 2]);
-
-/**
- * \brief          Triple-DES key schedule (168-bit, encryption)
- *
- * \param ctx      3DES context to be initialized
- * \param key      24-byte secret key
- *
- * \return         0
- *
- * \warning        DES/3DES are considered weak ciphers and their use constitutes a
- *                 security risk. We recommend considering stronger ciphers
- *                 instead.
- */
-MBEDTLS_CHECK_RETURN_TYPICAL
-int mbedtls_des3_set3key_enc(mbedtls_des3_context *ctx,
-                             const unsigned char key[MBEDTLS_DES_KEY_SIZE * 3]);
-
-/**
- * \brief          Triple-DES key schedule (168-bit, decryption)
- *
- * \param ctx      3DES context to be initialized
- * \param key      24-byte secret key
- *
- * \return         0
- *
- * \warning        DES/3DES are considered weak ciphers and their use constitutes a
- *                 security risk. We recommend considering stronger ciphers
- *                 instead.
- */
-MBEDTLS_CHECK_RETURN_TYPICAL
-int mbedtls_des3_set3key_dec(mbedtls_des3_context *ctx,
-                             const unsigned char key[MBEDTLS_DES_KEY_SIZE * 3]);
-
-/**
- * \brief          DES-ECB block encryption/decryption
- *
- * \param ctx      DES context
- * \param input    64-bit input block
- * \param output   64-bit output block
- *
- * \return         0 if successful
- *
- * \warning        DES/3DES are considered weak ciphers and their use constitutes a
- *                 security risk. We recommend considering stronger ciphers
- *                 instead.
- */
-MBEDTLS_CHECK_RETURN_TYPICAL
-int mbedtls_des_crypt_ecb(mbedtls_des_context *ctx,
-                          const unsigned char input[8],
-                          unsigned char output[8]);
-
-#if defined(MBEDTLS_CIPHER_MODE_CBC)
-/**
- * \brief          DES-CBC buffer encryption/decryption
- *
- * \note           Upon exit, the content of the IV is updated so that you can
- *                 call the function same function again on the following
- *                 block(s) of data and get the same result as if it was
- *                 encrypted in one call. This allows a "streaming" usage.
- *                 If on the other hand you need to retain the contents of the
- *                 IV, you should either save it manually or use the cipher
- *                 module instead.
- *
- * \param ctx      DES context
- * \param mode     MBEDTLS_DES_ENCRYPT or MBEDTLS_DES_DECRYPT
- * \param length   length of the input data
- * \param iv       initialization vector (updated after use)
- * \param input    buffer holding the input data
- * \param output   buffer holding the output data
- *
- * \warning        DES/3DES are considered weak ciphers and their use constitutes a
- *                 security risk. We recommend considering stronger ciphers
- *                 instead.
- */
-MBEDTLS_CHECK_RETURN_TYPICAL
-int mbedtls_des_crypt_cbc(mbedtls_des_context *ctx,
-                          int mode,
-                          size_t length,
-                          unsigned char iv[8],
-                          const unsigned char *input,
-                          unsigned char *output);
-#endif /* MBEDTLS_CIPHER_MODE_CBC */
-
-/**
- * \brief          3DES-ECB block encryption/decryption
- *
- * \param ctx      3DES context
- * \param input    64-bit input block
- * \param output   64-bit output block
- *
- * \return         0 if successful
- *
- * \warning        DES/3DES are considered weak ciphers and their use constitutes a
- *                 security risk. We recommend considering stronger ciphers
- *                 instead.
- */
-MBEDTLS_CHECK_RETURN_TYPICAL
-int mbedtls_des3_crypt_ecb(mbedtls_des3_context *ctx,
-                           const unsigned char input[8],
-                           unsigned char output[8]);
-
-#if defined(MBEDTLS_CIPHER_MODE_CBC)
-/**
- * \brief          3DES-CBC buffer encryption/decryption
- *
- * \note           Upon exit, the content of the IV is updated so that you can
- *                 call the function same function again on the following
- *                 block(s) of data and get the same result as if it was
- *                 encrypted in one call. This allows a "streaming" usage.
- *                 If on the other hand you need to retain the contents of the
- *                 IV, you should either save it manually or use the cipher
- *                 module instead.
- *
- * \param ctx      3DES context
- * \param mode     MBEDTLS_DES_ENCRYPT or MBEDTLS_DES_DECRYPT
- * \param length   length of the input data
- * \param iv       initialization vector (updated after use)
- * \param input    buffer holding the input data
- * \param output   buffer holding the output data
- *
- * \return         0 if successful, or MBEDTLS_ERR_DES_INVALID_INPUT_LENGTH
- *
- * \warning        DES/3DES are considered weak ciphers and their use constitutes a
- *                 security risk. We recommend considering stronger ciphers
- *                 instead.
- */
-MBEDTLS_CHECK_RETURN_TYPICAL
-int mbedtls_des3_crypt_cbc(mbedtls_des3_context *ctx,
-                           int mode,
-                           size_t length,
-                           unsigned char iv[8],
-                           const unsigned char *input,
-                           unsigned char *output);
-#endif /* MBEDTLS_CIPHER_MODE_CBC */
-
-/**
- * \brief          Internal function for key expansion.
- *                 (Only exposed to allow overriding it,
- *                 see MBEDTLS_DES_SETKEY_ALT)
- *
- * \param SK       Round keys
- * \param key      Base key
- *
- * \warning        DES/3DES are considered weak ciphers and their use constitutes a
- *                 security risk. We recommend considering stronger ciphers
- *                 instead.
- */
-void mbedtls_des_setkey(uint32_t SK[32],
-                        const unsigned char key[MBEDTLS_DES_KEY_SIZE]);
-
-#if defined(MBEDTLS_SELF_TEST)
-
-/**
- * \brief          Checkup routine
- *
- * \return         0 if successful, or 1 if the test failed
- */
-MBEDTLS_CHECK_RETURN_CRITICAL
-int mbedtls_des_self_test(int verbose);
-
-#endif /* MBEDTLS_SELF_TEST */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* des.h */
diff --git a/deps/LIEF/third-party/mbedtls/include/mbedtls/dhm.h b/deps/LIEF/third-party/mbedtls/include/mbedtls/dhm.h
deleted file mode 100644
index bbfe6ea8d5b..00000000000
--- a/deps/LIEF/third-party/mbedtls/include/mbedtls/dhm.h
+++ /dev/null
@@ -1,972 +0,0 @@
-/**
- * \file dhm.h
- *
- * \brief   This file contains Diffie-Hellman-Merkle (DHM) key exchange
- *          definitions and functions.
- *
- * Diffie-Hellman-Merkle (DHM) key exchange is defined in
- * <em>RFC-2631: Diffie-Hellman Key Agreement Method</em> and
- * <em>Public-Key Cryptography Standards (PKCS) #3: Diffie
- * Hellman Key Agreement Standard</em>.
- *
- * <em>RFC-3526: More Modular Exponential (MODP) Diffie-Hellman groups for
- * Internet Key Exchange (IKE)</em> defines a number of standardized
- * Diffie-Hellman groups for IKE.
- *
- * <em>RFC-5114: Additional Diffie-Hellman Groups for Use with IETF
- * Standards</em> defines a number of standardized Diffie-Hellman
- * groups that can be used.
- *
- * \warning  The security of the DHM key exchange relies on the proper choice
- *           of prime modulus - optimally, it should be a safe prime. The usage
- *           of non-safe primes both decreases the difficulty of the underlying
- *           discrete logarithm problem and can lead to small subgroup attacks
- *           leaking private exponent bits when invalid public keys are used
- *           and not detected. This is especially relevant if the same DHM
- *           parameters are reused for multiple key exchanges as in static DHM,
- *           while the criticality of small-subgroup attacks is lower for
- *           ephemeral DHM.
- *
- * \warning  For performance reasons, the code does neither perform primality
- *           nor safe primality tests, nor the expensive checks for invalid
- *           subgroups. Moreover, even if these were performed, non-standardized
- *           primes cannot be trusted because of the possibility of backdoors
- *           that can't be effectively checked for.
- *
- * \warning  Diffie-Hellman-Merkle is therefore a security risk when not using
- *           standardized primes generated using a trustworthy ("nothing up
- *           my sleeve") method, such as the RFC 3526 / 7919 primes. In the TLS
- *           protocol, DH parameters need to be negotiated, so using the default
- *           primes systematically is not always an option. If possible, use
- *           Elliptic Curve Diffie-Hellman (ECDH), which has better performance,
- *           and for which the TLS protocol mandates the use of standard
- *           parameters.
- *
- */
-/*
- *  Copyright The Mbed TLS Contributors
- *  SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
- */
-
-#ifndef MBEDTLS_DHM_H
-#define MBEDTLS_DHM_H
-#include "mbedtls/private_access.h"
-
-#include "mbedtls/build_info.h"
-#include "mbedtls/bignum.h"
-
-/*
- * DHM Error codes
- */
-/** Bad input parameters. */
-#define MBEDTLS_ERR_DHM_BAD_INPUT_DATA                    -0x3080
-/** Reading of the DHM parameters failed. */
-#define MBEDTLS_ERR_DHM_READ_PARAMS_FAILED                -0x3100
-/** Making of the DHM parameters failed. */
-#define MBEDTLS_ERR_DHM_MAKE_PARAMS_FAILED                -0x3180
-/** Reading of the public values failed. */
-#define MBEDTLS_ERR_DHM_READ_PUBLIC_FAILED                -0x3200
-/** Making of the public value failed. */
-#define MBEDTLS_ERR_DHM_MAKE_PUBLIC_FAILED                -0x3280
-/** Calculation of the DHM secret failed. */
-#define MBEDTLS_ERR_DHM_CALC_SECRET_FAILED                -0x3300
-/** The ASN.1 data is not formatted correctly. */
-#define MBEDTLS_ERR_DHM_INVALID_FORMAT                    -0x3380
-/** Allocation of memory failed. */
-#define MBEDTLS_ERR_DHM_ALLOC_FAILED                      -0x3400
-/** Read or write of file failed. */
-#define MBEDTLS_ERR_DHM_FILE_IO_ERROR                     -0x3480
-/** Setting the modulus and generator failed. */
-#define MBEDTLS_ERR_DHM_SET_GROUP_FAILED                  -0x3580
-
-/** Which parameter to access in mbedtls_dhm_get_value(). */
-typedef enum {
-    MBEDTLS_DHM_PARAM_P,  /*!<  The prime modulus. */
-    MBEDTLS_DHM_PARAM_G,  /*!<  The generator. */
-    MBEDTLS_DHM_PARAM_X,  /*!<  Our secret value. */
-    MBEDTLS_DHM_PARAM_GX, /*!<  Our public key = \c G^X mod \c P. */
-    MBEDTLS_DHM_PARAM_GY, /*!<  The public key of the peer = \c G^Y mod \c P. */
-    MBEDTLS_DHM_PARAM_K,  /*!<  The shared secret = \c G^(XY) mod \c P. */
-} mbedtls_dhm_parameter;
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#if !defined(MBEDTLS_DHM_ALT)
-
-/**
- * \brief          The DHM context structure.
- */
-typedef struct mbedtls_dhm_context {
-    mbedtls_mpi MBEDTLS_PRIVATE(P);      /*!<  The prime modulus. */
-    mbedtls_mpi MBEDTLS_PRIVATE(G);      /*!<  The generator. */
-    mbedtls_mpi MBEDTLS_PRIVATE(X);      /*!<  Our secret value. */
-    mbedtls_mpi MBEDTLS_PRIVATE(GX);     /*!<  Our public key = \c G^X mod \c P. */
-    mbedtls_mpi MBEDTLS_PRIVATE(GY);     /*!<  The public key of the peer = \c G^Y mod \c P. */
-    mbedtls_mpi MBEDTLS_PRIVATE(K);      /*!<  The shared secret = \c G^(XY) mod \c P. */
-    mbedtls_mpi MBEDTLS_PRIVATE(RP);     /*!<  The cached value = \c R^2 mod \c P. */
-    mbedtls_mpi MBEDTLS_PRIVATE(Vi);     /*!<  The blinding value. */
-    mbedtls_mpi MBEDTLS_PRIVATE(Vf);     /*!<  The unblinding value. */
-    mbedtls_mpi MBEDTLS_PRIVATE(pX);     /*!<  The previous \c X. */
-}
-mbedtls_dhm_context;
-
-#else /* MBEDTLS_DHM_ALT */
-#include "dhm_alt.h"
-#endif /* MBEDTLS_DHM_ALT */
-
-/**
- * \brief          This function initializes the DHM context.
- *
- * \param ctx      The DHM context to initialize.
- */
-void mbedtls_dhm_init(mbedtls_dhm_context *ctx);
-
-/**
- * \brief          This function parses the DHM parameters in a
- *                 TLS ServerKeyExchange handshake message
- *                 (DHM modulus, generator, and public key).
- *
- * \note           In a TLS handshake, this is the how the client
- *                 sets up its DHM context from the server's public
- *                 DHM key material.
- *
- * \param ctx      The DHM context to use. This must be initialized.
- * \param p        On input, *p must be the start of the input buffer.
- *                 On output, *p is updated to point to the end of the data
- *                 that has been read. On success, this is the first byte
- *                 past the end of the ServerKeyExchange parameters.
- *                 On error, this is the point at which an error has been
- *                 detected, which is usually not useful except to debug
- *                 failures.
- * \param end      The end of the input buffer.
- *
- * \return         \c 0 on success.
- * \return         An \c MBEDTLS_ERR_DHM_XXX error code on failure.
- */
-int mbedtls_dhm_read_params(mbedtls_dhm_context *ctx,
-                            unsigned char **p,
-                            const unsigned char *end);
-
-/**
- * \brief          This function generates a DHM key pair and exports its
- *                 public part together with the DHM parameters in the format
- *                 used in a TLS ServerKeyExchange handshake message.
- *
- * \note           This function assumes that the DHM parameters \c ctx->P
- *                 and \c ctx->G have already been properly set. For that, use
- *                 mbedtls_dhm_set_group() below in conjunction with
- *                 mbedtls_mpi_read_binary() and mbedtls_mpi_read_string().
- *
- * \note           In a TLS handshake, this is the how the server generates
- *                 and exports its DHM key material.
- *
- * \param ctx      The DHM context to use. This must be initialized
- *                 and have the DHM parameters set. It may or may not
- *                 already have imported the peer's public key.
- * \param x_size   The private key size in Bytes.
- * \param olen     The address at which to store the number of Bytes
- *                 written on success. This must not be \c NULL.
- * \param output   The destination buffer. This must be a writable buffer of
- *                 sufficient size to hold the reduced binary presentation of
- *                 the modulus, the generator and the public key, each wrapped
- *                 with a 2-byte length field. It is the responsibility of the
- *                 caller to ensure that enough space is available. Refer to
- *                 mbedtls_mpi_size() to computing the byte-size of an MPI.
- * \param f_rng    The RNG function. Must not be \c NULL.
- * \param p_rng    The RNG context to be passed to \p f_rng. This may be
- *                 \c NULL if \p f_rng doesn't need a context parameter.
- *
- * \return         \c 0 on success.
- * \return         An \c MBEDTLS_ERR_DHM_XXX error code on failure.
- */
-int mbedtls_dhm_make_params(mbedtls_dhm_context *ctx, int x_size,
-                            unsigned char *output, size_t *olen,
-                            mbedtls_f_rng_t *f_rng,
-                            void *p_rng);
-
-/**
- * \brief          This function sets the prime modulus and generator.
- *
- * \note           This function can be used to set \c ctx->P, \c ctx->G
- *                 in preparation for mbedtls_dhm_make_params().
- *
- * \param ctx      The DHM context to configure. This must be initialized.
- * \param P        The MPI holding the DHM prime modulus. This must be
- *                 an initialized MPI.
- * \param G        The MPI holding the DHM generator. This must be an
- *                 initialized MPI.
- *
- * \return         \c 0 if successful.
- * \return         An \c MBEDTLS_ERR_DHM_XXX error code on failure.
- */
-int mbedtls_dhm_set_group(mbedtls_dhm_context *ctx,
-                          const mbedtls_mpi *P,
-                          const mbedtls_mpi *G);
-
-/**
- * \brief          This function imports the raw public value of the peer.
- *
- * \note           In a TLS handshake, this is the how the server imports
- *                 the Client's public DHM key.
- *
- * \param ctx      The DHM context to use. This must be initialized and have
- *                 its DHM parameters set, e.g. via mbedtls_dhm_set_group().
- *                 It may or may not already have generated its own private key.
- * \param input    The input buffer containing the \c G^Y value of the peer.
- *                 This must be a readable buffer of size \p ilen Bytes.
- * \param ilen     The size of the input buffer \p input in Bytes.
- *
- * \return         \c 0 on success.
- * \return         An \c MBEDTLS_ERR_DHM_XXX error code on failure.
- */
-int mbedtls_dhm_read_public(mbedtls_dhm_context *ctx,
-                            const unsigned char *input, size_t ilen);
-
-/**
- * \brief          This function creates a DHM key pair and exports
- *                 the raw public key in big-endian format.
- *
- * \note           The destination buffer is always fully written
- *                 so as to contain a big-endian representation of G^X mod P.
- *                 If it is larger than \c ctx->len, it is padded accordingly
- *                 with zero-bytes at the beginning.
- *
- * \param ctx      The DHM context to use. This must be initialized and
- *                 have the DHM parameters set. It may or may not already
- *                 have imported the peer's public key.
- * \param x_size   The private key size in Bytes.
- * \param output   The destination buffer. This must be a writable buffer of
- *                 size \p olen Bytes.
- * \param olen     The length of the destination buffer. This must be at least
- *                 equal to `ctx->len` (the size of \c P).
- * \param f_rng    The RNG function. This must not be \c NULL.
- * \param p_rng    The RNG context to be passed to \p f_rng. This may be \c NULL
- *                 if \p f_rng doesn't need a context argument.
- *
- * \return         \c 0 on success.
- * \return         An \c MBEDTLS_ERR_DHM_XXX error code on failure.
- */
-int mbedtls_dhm_make_public(mbedtls_dhm_context *ctx, int x_size,
-                            unsigned char *output, size_t olen,
-                            mbedtls_f_rng_t *f_rng,
-                            void *p_rng);
-
-/**
- * \brief          This function derives and exports the shared secret
- *                 \c (G^Y)^X mod \c P.
- *
- * \note           If \p f_rng is not \c NULL, it is used to blind the input as
- *                 a countermeasure against timing attacks. Blinding is used
- *                 only if our private key \c X is re-used, and not used
- *                 otherwise. We recommend always passing a non-NULL
- *                 \p f_rng argument.
- *
- * \param ctx           The DHM context to use. This must be initialized
- *                      and have its own private key generated and the peer's
- *                      public key imported.
- * \param output        The buffer to write the generated shared key to. This
- *                      must be a writable buffer of size \p output_size Bytes.
- * \param output_size   The size of the destination buffer. This must be at
- *                      least the size of \c ctx->len (the size of \c P).
- * \param olen          On exit, holds the actual number of Bytes written.
- * \param f_rng         The RNG function. Must not be \c NULL. Used for
- *                      blinding.
- * \param p_rng         The RNG context to be passed to \p f_rng. This may be
- *                      \c NULL if \p f_rng doesn't need a context parameter.
- *
- * \return              \c 0 on success.
- * \return              An \c MBEDTLS_ERR_DHM_XXX error code on failure.
- */
-int mbedtls_dhm_calc_secret(mbedtls_dhm_context *ctx,
-                            unsigned char *output, size_t output_size, size_t *olen,
-                            mbedtls_f_rng_t *f_rng,
-                            void *p_rng);
-
-/**
- * \brief          This function returns the size of the prime modulus in bits.
- *
- * \param ctx      The DHM context to query.
- *
- * \return         The size of the prime modulus in bits,
- *                 i.e. the number n such that 2^(n-1) <= P < 2^n.
- */
-size_t mbedtls_dhm_get_bitlen(const mbedtls_dhm_context *ctx);
-
-/**
- * \brief          This function returns the size of the prime modulus in bytes.
- *
- * \param ctx      The DHM context to query.
- *
- * \return         The size of the prime modulus in bytes,
- *                 i.e. the number n such that 2^(8*(n-1)) <= P < 2^(8*n).
- */
-size_t mbedtls_dhm_get_len(const mbedtls_dhm_context *ctx);
-
-/**
- * \brief          This function copies a parameter of a DHM key.
- *
- * \param ctx      The DHM context to query.
- * \param param    The parameter to copy.
- * \param dest     The MPI object to copy the value into. It must be
- *                 initialized.
- *
- * \return         \c 0 on success.
- * \return         #MBEDTLS_ERR_DHM_BAD_INPUT_DATA if \p param is invalid.
- * \return         An \c MBEDTLS_ERR_MPI_XXX error code if the copy fails.
- */
-int mbedtls_dhm_get_value(const mbedtls_dhm_context *ctx,
-                          mbedtls_dhm_parameter param,
-                          mbedtls_mpi *dest);
-
-/**
- * \brief          This function frees and clears the components
- *                 of a DHM context.
- *
- * \param ctx      The DHM context to free and clear. This may be \c NULL,
- *                 in which case this function is a no-op. If it is not \c NULL,
- *                 it must point to an initialized DHM context.
- */
-void mbedtls_dhm_free(mbedtls_dhm_context *ctx);
-
-#if defined(MBEDTLS_ASN1_PARSE_C)
-/**
- * \brief             This function parses DHM parameters in PEM or DER format.
- *
- * \param dhm         The DHM context to import the DHM parameters into.
- *                    This must be initialized.
- * \param dhmin       The input buffer. This must be a readable buffer of
- *                    length \p dhminlen Bytes.
- * \param dhminlen    The size of the input buffer \p dhmin, including the
- *                    terminating \c NULL Byte for PEM data.
- *
- * \return            \c 0 on success.
- * \return            An \c MBEDTLS_ERR_DHM_XXX or \c MBEDTLS_ERR_PEM_XXX error
- *                    code on failure.
- */
-int mbedtls_dhm_parse_dhm(mbedtls_dhm_context *dhm, const unsigned char *dhmin,
-                          size_t dhminlen);
-
-#if defined(MBEDTLS_FS_IO)
-/**
- * \brief          This function loads and parses DHM parameters from a file.
- *
- * \param dhm      The DHM context to load the parameters to.
- *                 This must be initialized.
- * \param path     The filename to read the DHM parameters from.
- *                 This must not be \c NULL.
- *
- * \return         \c 0 on success.
- * \return         An \c MBEDTLS_ERR_DHM_XXX or \c MBEDTLS_ERR_PEM_XXX
- *                 error code on failure.
- */
-int mbedtls_dhm_parse_dhmfile(mbedtls_dhm_context *dhm, const char *path);
-#endif /* MBEDTLS_FS_IO */
-#endif /* MBEDTLS_ASN1_PARSE_C */
-
-#if defined(MBEDTLS_SELF_TEST)
-
-/**
- * \brief          The DMH checkup routine.
- *
- * \return         \c 0 on success.
- * \return         \c 1 on failure.
- */
-int mbedtls_dhm_self_test(int verbose);
-
-#endif /* MBEDTLS_SELF_TEST */
-#ifdef __cplusplus
-}
-#endif
-
-/**
- * RFC 3526, RFC 5114 and RFC 7919 standardize a number of
- * Diffie-Hellman groups, some of which are included here
- * for use within the SSL/TLS module and the user's convenience
- * when configuring the Diffie-Hellman parameters by hand
- * through \c mbedtls_ssl_conf_dh_param.
- *
- * The following lists the source of the above groups in the standards:
- * - RFC 5114 section 2.2:  2048-bit MODP Group with 224-bit Prime Order Subgroup
- * - RFC 3526 section 3:    2048-bit MODP Group
- * - RFC 3526 section 4:    3072-bit MODP Group
- * - RFC 3526 section 5:    4096-bit MODP Group
- * - RFC 7919 section A.1:  ffdhe2048
- * - RFC 7919 section A.2:  ffdhe3072
- * - RFC 7919 section A.3:  ffdhe4096
- * - RFC 7919 section A.4:  ffdhe6144
- * - RFC 7919 section A.5:  ffdhe8192
- *
- * The constants with suffix "_p" denote the chosen prime moduli, while
- * the constants with suffix "_g" denote the chosen generator
- * of the associated prime field.
- *
- * The constants further suffixed with "_bin" are provided in binary format,
- * while all other constants represent null-terminated strings holding the
- * hexadecimal presentation of the respective numbers.
- *
- * The primes from RFC 3526 and RFC 7919 have been generating by the following
- * trust-worthy procedure:
- * - Fix N in { 2048, 3072, 4096, 6144, 8192 } and consider the N-bit number
- *   the first and last 64 bits are all 1, and the remaining N - 128 bits of
- *   which are 0x7ff...ff.
- * - Add the smallest multiple of the first N - 129 bits of the binary expansion
- *   of pi (for RFC 5236) or e (for RFC 7919) to this intermediate bit-string
- *   such that the resulting integer is a safe-prime.
- * - The result is the respective RFC 3526 / 7919 prime, and the corresponding
- *   generator is always chosen to be 2 (which is a square for these prime,
- *   hence the corresponding subgroup has order (p-1)/2 and avoids leaking a
- *   bit in the private exponent).
- *
- */
-
-/*
- * Trustworthy DHM parameters in binary form
- */
-
-#define MBEDTLS_DHM_RFC3526_MODP_2048_P_BIN {        \
-        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, \
-        0xC9, 0x0F, 0xDA, 0xA2, 0x21, 0x68, 0xC2, 0x34, \
-        0xC4, 0xC6, 0x62, 0x8B, 0x80, 0xDC, 0x1C, 0xD1, \
-        0x29, 0x02, 0x4E, 0x08, 0x8A, 0x67, 0xCC, 0x74, \
-        0x02, 0x0B, 0xBE, 0xA6, 0x3B, 0x13, 0x9B, 0x22, \
-        0x51, 0x4A, 0x08, 0x79, 0x8E, 0x34, 0x04, 0xDD, \
-        0xEF, 0x95, 0x19, 0xB3, 0xCD, 0x3A, 0x43, 0x1B, \
-        0x30, 0x2B, 0x0A, 0x6D, 0xF2, 0x5F, 0x14, 0x37, \
-        0x4F, 0xE1, 0x35, 0x6D, 0x6D, 0x51, 0xC2, 0x45, \
-        0xE4, 0x85, 0xB5, 0x76, 0x62, 0x5E, 0x7E, 0xC6, \
-        0xF4, 0x4C, 0x42, 0xE9, 0xA6, 0x37, 0xED, 0x6B, \
-        0x0B, 0xFF, 0x5C, 0xB6, 0xF4, 0x06, 0xB7, 0xED, \
-        0xEE, 0x38, 0x6B, 0xFB, 0x5A, 0x89, 0x9F, 0xA5, \
-        0xAE, 0x9F, 0x24, 0x11, 0x7C, 0x4B, 0x1F, 0xE6, \
-        0x49, 0x28, 0x66, 0x51, 0xEC, 0xE4, 0x5B, 0x3D, \
-        0xC2, 0x00, 0x7C, 0xB8, 0xA1, 0x63, 0xBF, 0x05, \
-        0x98, 0xDA, 0x48, 0x36, 0x1C, 0x55, 0xD3, 0x9A, \
-        0x69, 0x16, 0x3F, 0xA8, 0xFD, 0x24, 0xCF, 0x5F, \
-        0x83, 0x65, 0x5D, 0x23, 0xDC, 0xA3, 0xAD, 0x96, \
-        0x1C, 0x62, 0xF3, 0x56, 0x20, 0x85, 0x52, 0xBB, \
-        0x9E, 0xD5, 0x29, 0x07, 0x70, 0x96, 0x96, 0x6D, \
-        0x67, 0x0C, 0x35, 0x4E, 0x4A, 0xBC, 0x98, 0x04, \
-        0xF1, 0x74, 0x6C, 0x08, 0xCA, 0x18, 0x21, 0x7C, \
-        0x32, 0x90, 0x5E, 0x46, 0x2E, 0x36, 0xCE, 0x3B, \
-        0xE3, 0x9E, 0x77, 0x2C, 0x18, 0x0E, 0x86, 0x03, \
-        0x9B, 0x27, 0x83, 0xA2, 0xEC, 0x07, 0xA2, 0x8F, \
-        0xB5, 0xC5, 0x5D, 0xF0, 0x6F, 0x4C, 0x52, 0xC9, \
-        0xDE, 0x2B, 0xCB, 0xF6, 0x95, 0x58, 0x17, 0x18, \
-        0x39, 0x95, 0x49, 0x7C, 0xEA, 0x95, 0x6A, 0xE5, \
-        0x15, 0xD2, 0x26, 0x18, 0x98, 0xFA, 0x05, 0x10, \
-        0x15, 0x72, 0x8E, 0x5A, 0x8A, 0xAC, 0xAA, 0x68, \
-        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF }
-
-#define MBEDTLS_DHM_RFC3526_MODP_2048_G_BIN { 0x02 }
-
-#define MBEDTLS_DHM_RFC3526_MODP_3072_P_BIN {       \
-        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, \
-        0xC9, 0x0F, 0xDA, 0xA2, 0x21, 0x68, 0xC2, 0x34, \
-        0xC4, 0xC6, 0x62, 0x8B, 0x80, 0xDC, 0x1C, 0xD1, \
-        0x29, 0x02, 0x4E, 0x08, 0x8A, 0x67, 0xCC, 0x74, \
-        0x02, 0x0B, 0xBE, 0xA6, 0x3B, 0x13, 0x9B, 0x22, \
-        0x51, 0x4A, 0x08, 0x79, 0x8E, 0x34, 0x04, 0xDD, \
-        0xEF, 0x95, 0x19, 0xB3, 0xCD, 0x3A, 0x43, 0x1B, \
-        0x30, 0x2B, 0x0A, 0x6D, 0xF2, 0x5F, 0x14, 0x37, \
-        0x4F, 0xE1, 0x35, 0x6D, 0x6D, 0x51, 0xC2, 0x45, \
-        0xE4, 0x85, 0xB5, 0x76, 0x62, 0x5E, 0x7E, 0xC6, \
-        0xF4, 0x4C, 0x42, 0xE9, 0xA6, 0x37, 0xED, 0x6B, \
-        0x0B, 0xFF, 0x5C, 0xB6, 0xF4, 0x06, 0xB7, 0xED, \
-        0xEE, 0x38, 0x6B, 0xFB, 0x5A, 0x89, 0x9F, 0xA5, \
-        0xAE, 0x9F, 0x24, 0x11, 0x7C, 0x4B, 0x1F, 0xE6, \
-        0x49, 0x28, 0x66, 0x51, 0xEC, 0xE4, 0x5B, 0x3D, \
-        0xC2, 0x00, 0x7C, 0xB8, 0xA1, 0x63, 0xBF, 0x05, \
-        0x98, 0xDA, 0x48, 0x36, 0x1C, 0x55, 0xD3, 0x9A, \
-        0x69, 0x16, 0x3F, 0xA8, 0xFD, 0x24, 0xCF, 0x5F, \
-        0x83, 0x65, 0x5D, 0x23, 0xDC, 0xA3, 0xAD, 0x96, \
-        0x1C, 0x62, 0xF3, 0x56, 0x20, 0x85, 0x52, 0xBB, \
-        0x9E, 0xD5, 0x29, 0x07, 0x70, 0x96, 0x96, 0x6D, \
-        0x67, 0x0C, 0x35, 0x4E, 0x4A, 0xBC, 0x98, 0x04, \
-        0xF1, 0x74, 0x6C, 0x08, 0xCA, 0x18, 0x21, 0x7C, \
-        0x32, 0x90, 0x5E, 0x46, 0x2E, 0x36, 0xCE, 0x3B, \
-        0xE3, 0x9E, 0x77, 0x2C, 0x18, 0x0E, 0x86, 0x03, \
-        0x9B, 0x27, 0x83, 0xA2, 0xEC, 0x07, 0xA2, 0x8F, \
-        0xB5, 0xC5, 0x5D, 0xF0, 0x6F, 0x4C, 0x52, 0xC9, \
-        0xDE, 0x2B, 0xCB, 0xF6, 0x95, 0x58, 0x17, 0x18, \
-        0x39, 0x95, 0x49, 0x7C, 0xEA, 0x95, 0x6A, 0xE5, \
-        0x15, 0xD2, 0x26, 0x18, 0x98, 0xFA, 0x05, 0x10, \
-        0x15, 0x72, 0x8E, 0x5A, 0x8A, 0xAA, 0xC4, 0x2D, \
-        0xAD, 0x33, 0x17, 0x0D, 0x04, 0x50, 0x7A, 0x33, \
-        0xA8, 0x55, 0x21, 0xAB, 0xDF, 0x1C, 0xBA, 0x64, \
-        0xEC, 0xFB, 0x85, 0x04, 0x58, 0xDB, 0xEF, 0x0A, \
-        0x8A, 0xEA, 0x71, 0x57, 0x5D, 0x06, 0x0C, 0x7D, \
-        0xB3, 0x97, 0x0F, 0x85, 0xA6, 0xE1, 0xE4, 0xC7, \
-        0xAB, 0xF5, 0xAE, 0x8C, 0xDB, 0x09, 0x33, 0xD7, \
-        0x1E, 0x8C, 0x94, 0xE0, 0x4A, 0x25, 0x61, 0x9D, \
-        0xCE, 0xE3, 0xD2, 0x26, 0x1A, 0xD2, 0xEE, 0x6B, \
-        0xF1, 0x2F, 0xFA, 0x06, 0xD9, 0x8A, 0x08, 0x64, \
-        0xD8, 0x76, 0x02, 0x73, 0x3E, 0xC8, 0x6A, 0x64, \
-        0x52, 0x1F, 0x2B, 0x18, 0x17, 0x7B, 0x20, 0x0C, \
-        0xBB, 0xE1, 0x17, 0x57, 0x7A, 0x61, 0x5D, 0x6C, \
-        0x77, 0x09, 0x88, 0xC0, 0xBA, 0xD9, 0x46, 0xE2, \
-        0x08, 0xE2, 0x4F, 0xA0, 0x74, 0xE5, 0xAB, 0x31, \
-        0x43, 0xDB, 0x5B, 0xFC, 0xE0, 0xFD, 0x10, 0x8E, \
-        0x4B, 0x82, 0xD1, 0x20, 0xA9, 0x3A, 0xD2, 0xCA, \
-        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF }
-
-#define MBEDTLS_DHM_RFC3526_MODP_3072_G_BIN { 0x02 }
-
-#define MBEDTLS_DHM_RFC3526_MODP_4096_P_BIN  {       \
-        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,  \
-        0xC9, 0x0F, 0xDA, 0xA2, 0x21, 0x68, 0xC2, 0x34,  \
-        0xC4, 0xC6, 0x62, 0x8B, 0x80, 0xDC, 0x1C, 0xD1,  \
-        0x29, 0x02, 0x4E, 0x08, 0x8A, 0x67, 0xCC, 0x74,  \
-        0x02, 0x0B, 0xBE, 0xA6, 0x3B, 0x13, 0x9B, 0x22,  \
-        0x51, 0x4A, 0x08, 0x79, 0x8E, 0x34, 0x04, 0xDD,  \
-        0xEF, 0x95, 0x19, 0xB3, 0xCD, 0x3A, 0x43, 0x1B,  \
-        0x30, 0x2B, 0x0A, 0x6D, 0xF2, 0x5F, 0x14, 0x37,  \
-        0x4F, 0xE1, 0x35, 0x6D, 0x6D, 0x51, 0xC2, 0x45,  \
-        0xE4, 0x85, 0xB5, 0x76, 0x62, 0x5E, 0x7E, 0xC6,  \
-        0xF4, 0x4C, 0x42, 0xE9, 0xA6, 0x37, 0xED, 0x6B,  \
-        0x0B, 0xFF, 0x5C, 0xB6, 0xF4, 0x06, 0xB7, 0xED,  \
-        0xEE, 0x38, 0x6B, 0xFB, 0x5A, 0x89, 0x9F, 0xA5,  \
-        0xAE, 0x9F, 0x24, 0x11, 0x7C, 0x4B, 0x1F, 0xE6,  \
-        0x49, 0x28, 0x66, 0x51, 0xEC, 0xE4, 0x5B, 0x3D,  \
-        0xC2, 0x00, 0x7C, 0xB8, 0xA1, 0x63, 0xBF, 0x05,  \
-        0x98, 0xDA, 0x48, 0x36, 0x1C, 0x55, 0xD3, 0x9A,  \
-        0x69, 0x16, 0x3F, 0xA8, 0xFD, 0x24, 0xCF, 0x5F,  \
-        0x83, 0x65, 0x5D, 0x23, 0xDC, 0xA3, 0xAD, 0x96,  \
-        0x1C, 0x62, 0xF3, 0x56, 0x20, 0x85, 0x52, 0xBB,  \
-        0x9E, 0xD5, 0x29, 0x07, 0x70, 0x96, 0x96, 0x6D,  \
-        0x67, 0x0C, 0x35, 0x4E, 0x4A, 0xBC, 0x98, 0x04,  \
-        0xF1, 0x74, 0x6C, 0x08, 0xCA, 0x18, 0x21, 0x7C,  \
-        0x32, 0x90, 0x5E, 0x46, 0x2E, 0x36, 0xCE, 0x3B,  \
-        0xE3, 0x9E, 0x77, 0x2C, 0x18, 0x0E, 0x86, 0x03,  \
-        0x9B, 0x27, 0x83, 0xA2, 0xEC, 0x07, 0xA2, 0x8F,  \
-        0xB5, 0xC5, 0x5D, 0xF0, 0x6F, 0x4C, 0x52, 0xC9,  \
-        0xDE, 0x2B, 0xCB, 0xF6, 0x95, 0x58, 0x17, 0x18,  \
-        0x39, 0x95, 0x49, 0x7C, 0xEA, 0x95, 0x6A, 0xE5,  \
-        0x15, 0xD2, 0x26, 0x18, 0x98, 0xFA, 0x05, 0x10,  \
-        0x15, 0x72, 0x8E, 0x5A, 0x8A, 0xAA, 0xC4, 0x2D,  \
-        0xAD, 0x33, 0x17, 0x0D, 0x04, 0x50, 0x7A, 0x33,  \
-        0xA8, 0x55, 0x21, 0xAB, 0xDF, 0x1C, 0xBA, 0x64,  \
-        0xEC, 0xFB, 0x85, 0x04, 0x58, 0xDB, 0xEF, 0x0A,  \
-        0x8A, 0xEA, 0x71, 0x57, 0x5D, 0x06, 0x0C, 0x7D,  \
-        0xB3, 0x97, 0x0F, 0x85, 0xA6, 0xE1, 0xE4, 0xC7,  \
-        0xAB, 0xF5, 0xAE, 0x8C, 0xDB, 0x09, 0x33, 0xD7,  \
-        0x1E, 0x8C, 0x94, 0xE0, 0x4A, 0x25, 0x61, 0x9D,  \
-        0xCE, 0xE3, 0xD2, 0x26, 0x1A, 0xD2, 0xEE, 0x6B,  \
-        0xF1, 0x2F, 0xFA, 0x06, 0xD9, 0x8A, 0x08, 0x64,  \
-        0xD8, 0x76, 0x02, 0x73, 0x3E, 0xC8, 0x6A, 0x64,  \
-        0x52, 0x1F, 0x2B, 0x18, 0x17, 0x7B, 0x20, 0x0C,  \
-        0xBB, 0xE1, 0x17, 0x57, 0x7A, 0x61, 0x5D, 0x6C,  \
-        0x77, 0x09, 0x88, 0xC0, 0xBA, 0xD9, 0x46, 0xE2,  \
-        0x08, 0xE2, 0x4F, 0xA0, 0x74, 0xE5, 0xAB, 0x31,  \
-        0x43, 0xDB, 0x5B, 0xFC, 0xE0, 0xFD, 0x10, 0x8E,  \
-        0x4B, 0x82, 0xD1, 0x20, 0xA9, 0x21, 0x08, 0x01,  \
-        0x1A, 0x72, 0x3C, 0x12, 0xA7, 0x87, 0xE6, 0xD7,  \
-        0x88, 0x71, 0x9A, 0x10, 0xBD, 0xBA, 0x5B, 0x26,  \
-        0x99, 0xC3, 0x27, 0x18, 0x6A, 0xF4, 0xE2, 0x3C,  \
-        0x1A, 0x94, 0x68, 0x34, 0xB6, 0x15, 0x0B, 0xDA,  \
-        0x25, 0x83, 0xE9, 0xCA, 0x2A, 0xD4, 0x4C, 0xE8,  \
-        0xDB, 0xBB, 0xC2, 0xDB, 0x04, 0xDE, 0x8E, 0xF9,  \
-        0x2E, 0x8E, 0xFC, 0x14, 0x1F, 0xBE, 0xCA, 0xA6,  \
-        0x28, 0x7C, 0x59, 0x47, 0x4E, 0x6B, 0xC0, 0x5D,  \
-        0x99, 0xB2, 0x96, 0x4F, 0xA0, 0x90, 0xC3, 0xA2,  \
-        0x23, 0x3B, 0xA1, 0x86, 0x51, 0x5B, 0xE7, 0xED,  \
-        0x1F, 0x61, 0x29, 0x70, 0xCE, 0xE2, 0xD7, 0xAF,  \
-        0xB8, 0x1B, 0xDD, 0x76, 0x21, 0x70, 0x48, 0x1C,  \
-        0xD0, 0x06, 0x91, 0x27, 0xD5, 0xB0, 0x5A, 0xA9,  \
-        0x93, 0xB4, 0xEA, 0x98, 0x8D, 0x8F, 0xDD, 0xC1,  \
-        0x86, 0xFF, 0xB7, 0xDC, 0x90, 0xA6, 0xC0, 0x8F,  \
-        0x4D, 0xF4, 0x35, 0xC9, 0x34, 0x06, 0x31, 0x99,  \
-        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF }
-
-#define MBEDTLS_DHM_RFC3526_MODP_4096_G_BIN { 0x02 }
-
-#define MBEDTLS_DHM_RFC7919_FFDHE2048_P_BIN {        \
-        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, \
-        0xAD, 0xF8, 0x54, 0x58, 0xA2, 0xBB, 0x4A, 0x9A, \
-        0xAF, 0xDC, 0x56, 0x20, 0x27, 0x3D, 0x3C, 0xF1, \
-        0xD8, 0xB9, 0xC5, 0x83, 0xCE, 0x2D, 0x36, 0x95, \
-        0xA9, 0xE1, 0x36, 0x41, 0x14, 0x64, 0x33, 0xFB, \
-        0xCC, 0x93, 0x9D, 0xCE, 0x24, 0x9B, 0x3E, 0xF9, \
-        0x7D, 0x2F, 0xE3, 0x63, 0x63, 0x0C, 0x75, 0xD8, \
-        0xF6, 0x81, 0xB2, 0x02, 0xAE, 0xC4, 0x61, 0x7A, \
-        0xD3, 0xDF, 0x1E, 0xD5, 0xD5, 0xFD, 0x65, 0x61, \
-        0x24, 0x33, 0xF5, 0x1F, 0x5F, 0x06, 0x6E, 0xD0, \
-        0x85, 0x63, 0x65, 0x55, 0x3D, 0xED, 0x1A, 0xF3, \
-        0xB5, 0x57, 0x13, 0x5E, 0x7F, 0x57, 0xC9, 0x35, \
-        0x98, 0x4F, 0x0C, 0x70, 0xE0, 0xE6, 0x8B, 0x77, \
-        0xE2, 0xA6, 0x89, 0xDA, 0xF3, 0xEF, 0xE8, 0x72, \
-        0x1D, 0xF1, 0x58, 0xA1, 0x36, 0xAD, 0xE7, 0x35, \
-        0x30, 0xAC, 0xCA, 0x4F, 0x48, 0x3A, 0x79, 0x7A, \
-        0xBC, 0x0A, 0xB1, 0x82, 0xB3, 0x24, 0xFB, 0x61, \
-        0xD1, 0x08, 0xA9, 0x4B, 0xB2, 0xC8, 0xE3, 0xFB, \
-        0xB9, 0x6A, 0xDA, 0xB7, 0x60, 0xD7, 0xF4, 0x68, \
-        0x1D, 0x4F, 0x42, 0xA3, 0xDE, 0x39, 0x4D, 0xF4, \
-        0xAE, 0x56, 0xED, 0xE7, 0x63, 0x72, 0xBB, 0x19, \
-        0x0B, 0x07, 0xA7, 0xC8, 0xEE, 0x0A, 0x6D, 0x70, \
-        0x9E, 0x02, 0xFC, 0xE1, 0xCD, 0xF7, 0xE2, 0xEC, \
-        0xC0, 0x34, 0x04, 0xCD, 0x28, 0x34, 0x2F, 0x61, \
-        0x91, 0x72, 0xFE, 0x9C, 0xE9, 0x85, 0x83, 0xFF, \
-        0x8E, 0x4F, 0x12, 0x32, 0xEE, 0xF2, 0x81, 0x83, \
-        0xC3, 0xFE, 0x3B, 0x1B, 0x4C, 0x6F, 0xAD, 0x73, \
-        0x3B, 0xB5, 0xFC, 0xBC, 0x2E, 0xC2, 0x20, 0x05, \
-        0xC5, 0x8E, 0xF1, 0x83, 0x7D, 0x16, 0x83, 0xB2, \
-        0xC6, 0xF3, 0x4A, 0x26, 0xC1, 0xB2, 0xEF, 0xFA, \
-        0x88, 0x6B, 0x42, 0x38, 0x61, 0x28, 0x5C, 0x97, \
-        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, }
-
-#define MBEDTLS_DHM_RFC7919_FFDHE2048_G_BIN { 0x02 }
-
-#define MBEDTLS_DHM_RFC7919_FFDHE3072_P_BIN { \
-        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, \
-        0xAD, 0xF8, 0x54, 0x58, 0xA2, 0xBB, 0x4A, 0x9A, \
-        0xAF, 0xDC, 0x56, 0x20, 0x27, 0x3D, 0x3C, 0xF1, \
-        0xD8, 0xB9, 0xC5, 0x83, 0xCE, 0x2D, 0x36, 0x95, \
-        0xA9, 0xE1, 0x36, 0x41, 0x14, 0x64, 0x33, 0xFB, \
-        0xCC, 0x93, 0x9D, 0xCE, 0x24, 0x9B, 0x3E, 0xF9, \
-        0x7D, 0x2F, 0xE3, 0x63, 0x63, 0x0C, 0x75, 0xD8, \
-        0xF6, 0x81, 0xB2, 0x02, 0xAE, 0xC4, 0x61, 0x7A, \
-        0xD3, 0xDF, 0x1E, 0xD5, 0xD5, 0xFD, 0x65, 0x61, \
-        0x24, 0x33, 0xF5, 0x1F, 0x5F, 0x06, 0x6E, 0xD0, \
-        0x85, 0x63, 0x65, 0x55, 0x3D, 0xED, 0x1A, 0xF3, \
-        0xB5, 0x57, 0x13, 0x5E, 0x7F, 0x57, 0xC9, 0x35, \
-        0x98, 0x4F, 0x0C, 0x70, 0xE0, 0xE6, 0x8B, 0x77, \
-        0xE2, 0xA6, 0x89, 0xDA, 0xF3, 0xEF, 0xE8, 0x72, \
-        0x1D, 0xF1, 0x58, 0xA1, 0x36, 0xAD, 0xE7, 0x35, \
-        0x30, 0xAC, 0xCA, 0x4F, 0x48, 0x3A, 0x79, 0x7A, \
-        0xBC, 0x0A, 0xB1, 0x82, 0xB3, 0x24, 0xFB, 0x61, \
-        0xD1, 0x08, 0xA9, 0x4B, 0xB2, 0xC8, 0xE3, 0xFB, \
-        0xB9, 0x6A, 0xDA, 0xB7, 0x60, 0xD7, 0xF4, 0x68, \
-        0x1D, 0x4F, 0x42, 0xA3, 0xDE, 0x39, 0x4D, 0xF4, \
-        0xAE, 0x56, 0xED, 0xE7, 0x63, 0x72, 0xBB, 0x19, \
-        0x0B, 0x07, 0xA7, 0xC8, 0xEE, 0x0A, 0x6D, 0x70, \
-        0x9E, 0x02, 0xFC, 0xE1, 0xCD, 0xF7, 0xE2, 0xEC, \
-        0xC0, 0x34, 0x04, 0xCD, 0x28, 0x34, 0x2F, 0x61, \
-        0x91, 0x72, 0xFE, 0x9C, 0xE9, 0x85, 0x83, 0xFF, \
-        0x8E, 0x4F, 0x12, 0x32, 0xEE, 0xF2, 0x81, 0x83, \
-        0xC3, 0xFE, 0x3B, 0x1B, 0x4C, 0x6F, 0xAD, 0x73, \
-        0x3B, 0xB5, 0xFC, 0xBC, 0x2E, 0xC2, 0x20, 0x05, \
-        0xC5, 0x8E, 0xF1, 0x83, 0x7D, 0x16, 0x83, 0xB2, \
-        0xC6, 0xF3, 0x4A, 0x26, 0xC1, 0xB2, 0xEF, 0xFA, \
-        0x88, 0x6B, 0x42, 0x38, 0x61, 0x1F, 0xCF, 0xDC, \
-        0xDE, 0x35, 0x5B, 0x3B, 0x65, 0x19, 0x03, 0x5B, \
-        0xBC, 0x34, 0xF4, 0xDE, 0xF9, 0x9C, 0x02, 0x38, \
-        0x61, 0xB4, 0x6F, 0xC9, 0xD6, 0xE6, 0xC9, 0x07, \
-        0x7A, 0xD9, 0x1D, 0x26, 0x91, 0xF7, 0xF7, 0xEE, \
-        0x59, 0x8C, 0xB0, 0xFA, 0xC1, 0x86, 0xD9, 0x1C, \
-        0xAE, 0xFE, 0x13, 0x09, 0x85, 0x13, 0x92, 0x70, \
-        0xB4, 0x13, 0x0C, 0x93, 0xBC, 0x43, 0x79, 0x44, \
-        0xF4, 0xFD, 0x44, 0x52, 0xE2, 0xD7, 0x4D, 0xD3, \
-        0x64, 0xF2, 0xE2, 0x1E, 0x71, 0xF5, 0x4B, 0xFF, \
-        0x5C, 0xAE, 0x82, 0xAB, 0x9C, 0x9D, 0xF6, 0x9E, \
-        0xE8, 0x6D, 0x2B, 0xC5, 0x22, 0x36, 0x3A, 0x0D, \
-        0xAB, 0xC5, 0x21, 0x97, 0x9B, 0x0D, 0xEA, 0xDA, \
-        0x1D, 0xBF, 0x9A, 0x42, 0xD5, 0xC4, 0x48, 0x4E, \
-        0x0A, 0xBC, 0xD0, 0x6B, 0xFA, 0x53, 0xDD, 0xEF, \
-        0x3C, 0x1B, 0x20, 0xEE, 0x3F, 0xD5, 0x9D, 0x7C, \
-        0x25, 0xE4, 0x1D, 0x2B, 0x66, 0xC6, 0x2E, 0x37, \
-        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF }
-
-#define MBEDTLS_DHM_RFC7919_FFDHE3072_G_BIN { 0x02 }
-
-#define MBEDTLS_DHM_RFC7919_FFDHE4096_P_BIN {        \
-        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, \
-        0xAD, 0xF8, 0x54, 0x58, 0xA2, 0xBB, 0x4A, 0x9A, \
-        0xAF, 0xDC, 0x56, 0x20, 0x27, 0x3D, 0x3C, 0xF1, \
-        0xD8, 0xB9, 0xC5, 0x83, 0xCE, 0x2D, 0x36, 0x95, \
-        0xA9, 0xE1, 0x36, 0x41, 0x14, 0x64, 0x33, 0xFB, \
-        0xCC, 0x93, 0x9D, 0xCE, 0x24, 0x9B, 0x3E, 0xF9, \
-        0x7D, 0x2F, 0xE3, 0x63, 0x63, 0x0C, 0x75, 0xD8, \
-        0xF6, 0x81, 0xB2, 0x02, 0xAE, 0xC4, 0x61, 0x7A, \
-        0xD3, 0xDF, 0x1E, 0xD5, 0xD5, 0xFD, 0x65, 0x61, \
-        0x24, 0x33, 0xF5, 0x1F, 0x5F, 0x06, 0x6E, 0xD0, \
-        0x85, 0x63, 0x65, 0x55, 0x3D, 0xED, 0x1A, 0xF3, \
-        0xB5, 0x57, 0x13, 0x5E, 0x7F, 0x57, 0xC9, 0x35, \
-        0x98, 0x4F, 0x0C, 0x70, 0xE0, 0xE6, 0x8B, 0x77, \
-        0xE2, 0xA6, 0x89, 0xDA, 0xF3, 0xEF, 0xE8, 0x72, \
-        0x1D, 0xF1, 0x58, 0xA1, 0x36, 0xAD, 0xE7, 0x35, \
-        0x30, 0xAC, 0xCA, 0x4F, 0x48, 0x3A, 0x79, 0x7A, \
-        0xBC, 0x0A, 0xB1, 0x82, 0xB3, 0x24, 0xFB, 0x61, \
-        0xD1, 0x08, 0xA9, 0x4B, 0xB2, 0xC8, 0xE3, 0xFB, \
-        0xB9, 0x6A, 0xDA, 0xB7, 0x60, 0xD7, 0xF4, 0x68, \
-        0x1D, 0x4F, 0x42, 0xA3, 0xDE, 0x39, 0x4D, 0xF4, \
-        0xAE, 0x56, 0xED, 0xE7, 0x63, 0x72, 0xBB, 0x19, \
-        0x0B, 0x07, 0xA7, 0xC8, 0xEE, 0x0A, 0x6D, 0x70, \
-        0x9E, 0x02, 0xFC, 0xE1, 0xCD, 0xF7, 0xE2, 0xEC, \
-        0xC0, 0x34, 0x04, 0xCD, 0x28, 0x34, 0x2F, 0x61, \
-        0x91, 0x72, 0xFE, 0x9C, 0xE9, 0x85, 0x83, 0xFF, \
-        0x8E, 0x4F, 0x12, 0x32, 0xEE, 0xF2, 0x81, 0x83, \
-        0xC3, 0xFE, 0x3B, 0x1B, 0x4C, 0x6F, 0xAD, 0x73, \
-        0x3B, 0xB5, 0xFC, 0xBC, 0x2E, 0xC2, 0x20, 0x05, \
-        0xC5, 0x8E, 0xF1, 0x83, 0x7D, 0x16, 0x83, 0xB2, \
-        0xC6, 0xF3, 0x4A, 0x26, 0xC1, 0xB2, 0xEF, 0xFA, \
-        0x88, 0x6B, 0x42, 0x38, 0x61, 0x1F, 0xCF, 0xDC, \
-        0xDE, 0x35, 0x5B, 0x3B, 0x65, 0x19, 0x03, 0x5B, \
-        0xBC, 0x34, 0xF4, 0xDE, 0xF9, 0x9C, 0x02, 0x38, \
-        0x61, 0xB4, 0x6F, 0xC9, 0xD6, 0xE6, 0xC9, 0x07, \
-        0x7A, 0xD9, 0x1D, 0x26, 0x91, 0xF7, 0xF7, 0xEE, \
-        0x59, 0x8C, 0xB0, 0xFA, 0xC1, 0x86, 0xD9, 0x1C, \
-        0xAE, 0xFE, 0x13, 0x09, 0x85, 0x13, 0x92, 0x70, \
-        0xB4, 0x13, 0x0C, 0x93, 0xBC, 0x43, 0x79, 0x44, \
-        0xF4, 0xFD, 0x44, 0x52, 0xE2, 0xD7, 0x4D, 0xD3, \
-        0x64, 0xF2, 0xE2, 0x1E, 0x71, 0xF5, 0x4B, 0xFF, \
-        0x5C, 0xAE, 0x82, 0xAB, 0x9C, 0x9D, 0xF6, 0x9E, \
-        0xE8, 0x6D, 0x2B, 0xC5, 0x22, 0x36, 0x3A, 0x0D, \
-        0xAB, 0xC5, 0x21, 0x97, 0x9B, 0x0D, 0xEA, 0xDA, \
-        0x1D, 0xBF, 0x9A, 0x42, 0xD5, 0xC4, 0x48, 0x4E, \
-        0x0A, 0xBC, 0xD0, 0x6B, 0xFA, 0x53, 0xDD, 0xEF, \
-        0x3C, 0x1B, 0x20, 0xEE, 0x3F, 0xD5, 0x9D, 0x7C, \
-        0x25, 0xE4, 0x1D, 0x2B, 0x66, 0x9E, 0x1E, 0xF1, \
-        0x6E, 0x6F, 0x52, 0xC3, 0x16, 0x4D, 0xF4, 0xFB, \
-        0x79, 0x30, 0xE9, 0xE4, 0xE5, 0x88, 0x57, 0xB6, \
-        0xAC, 0x7D, 0x5F, 0x42, 0xD6, 0x9F, 0x6D, 0x18, \
-        0x77, 0x63, 0xCF, 0x1D, 0x55, 0x03, 0x40, 0x04, \
-        0x87, 0xF5, 0x5B, 0xA5, 0x7E, 0x31, 0xCC, 0x7A, \
-        0x71, 0x35, 0xC8, 0x86, 0xEF, 0xB4, 0x31, 0x8A, \
-        0xED, 0x6A, 0x1E, 0x01, 0x2D, 0x9E, 0x68, 0x32, \
-        0xA9, 0x07, 0x60, 0x0A, 0x91, 0x81, 0x30, 0xC4, \
-        0x6D, 0xC7, 0x78, 0xF9, 0x71, 0xAD, 0x00, 0x38, \
-        0x09, 0x29, 0x99, 0xA3, 0x33, 0xCB, 0x8B, 0x7A, \
-        0x1A, 0x1D, 0xB9, 0x3D, 0x71, 0x40, 0x00, 0x3C, \
-        0x2A, 0x4E, 0xCE, 0xA9, 0xF9, 0x8D, 0x0A, 0xCC, \
-        0x0A, 0x82, 0x91, 0xCD, 0xCE, 0xC9, 0x7D, 0xCF, \
-        0x8E, 0xC9, 0xB5, 0x5A, 0x7F, 0x88, 0xA4, 0x6B, \
-        0x4D, 0xB5, 0xA8, 0x51, 0xF4, 0x41, 0x82, 0xE1, \
-        0xC6, 0x8A, 0x00, 0x7E, 0x5E, 0x65, 0x5F, 0x6A, \
-        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF }
-
-#define MBEDTLS_DHM_RFC7919_FFDHE4096_G_BIN { 0x02 }
-
-#define MBEDTLS_DHM_RFC7919_FFDHE6144_P_BIN {        \
-        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, \
-        0xAD, 0xF8, 0x54, 0x58, 0xA2, 0xBB, 0x4A, 0x9A, \
-        0xAF, 0xDC, 0x56, 0x20, 0x27, 0x3D, 0x3C, 0xF1, \
-        0xD8, 0xB9, 0xC5, 0x83, 0xCE, 0x2D, 0x36, 0x95, \
-        0xA9, 0xE1, 0x36, 0x41, 0x14, 0x64, 0x33, 0xFB, \
-        0xCC, 0x93, 0x9D, 0xCE, 0x24, 0x9B, 0x3E, 0xF9, \
-        0x7D, 0x2F, 0xE3, 0x63, 0x63, 0x0C, 0x75, 0xD8, \
-        0xF6, 0x81, 0xB2, 0x02, 0xAE, 0xC4, 0x61, 0x7A, \
-        0xD3, 0xDF, 0x1E, 0xD5, 0xD5, 0xFD, 0x65, 0x61, \
-        0x24, 0x33, 0xF5, 0x1F, 0x5F, 0x06, 0x6E, 0xD0, \
-        0x85, 0x63, 0x65, 0x55, 0x3D, 0xED, 0x1A, 0xF3, \
-        0xB5, 0x57, 0x13, 0x5E, 0x7F, 0x57, 0xC9, 0x35, \
-        0x98, 0x4F, 0x0C, 0x70, 0xE0, 0xE6, 0x8B, 0x77, \
-        0xE2, 0xA6, 0x89, 0xDA, 0xF3, 0xEF, 0xE8, 0x72, \
-        0x1D, 0xF1, 0x58, 0xA1, 0x36, 0xAD, 0xE7, 0x35, \
-        0x30, 0xAC, 0xCA, 0x4F, 0x48, 0x3A, 0x79, 0x7A, \
-        0xBC, 0x0A, 0xB1, 0x82, 0xB3, 0x24, 0xFB, 0x61, \
-        0xD1, 0x08, 0xA9, 0x4B, 0xB2, 0xC8, 0xE3, 0xFB, \
-        0xB9, 0x6A, 0xDA, 0xB7, 0x60, 0xD7, 0xF4, 0x68, \
-        0x1D, 0x4F, 0x42, 0xA3, 0xDE, 0x39, 0x4D, 0xF4, \
-        0xAE, 0x56, 0xED, 0xE7, 0x63, 0x72, 0xBB, 0x19, \
-        0x0B, 0x07, 0xA7, 0xC8, 0xEE, 0x0A, 0x6D, 0x70, \
-        0x9E, 0x02, 0xFC, 0xE1, 0xCD, 0xF7, 0xE2, 0xEC, \
-        0xC0, 0x34, 0x04, 0xCD, 0x28, 0x34, 0x2F, 0x61, \
-        0x91, 0x72, 0xFE, 0x9C, 0xE9, 0x85, 0x83, 0xFF, \
-        0x8E, 0x4F, 0x12, 0x32, 0xEE, 0xF2, 0x81, 0x83, \
-        0xC3, 0xFE, 0x3B, 0x1B, 0x4C, 0x6F, 0xAD, 0x73, \
-        0x3B, 0xB5, 0xFC, 0xBC, 0x2E, 0xC2, 0x20, 0x05, \
-        0xC5, 0x8E, 0xF1, 0x83, 0x7D, 0x16, 0x83, 0xB2, \
-        0xC6, 0xF3, 0x4A, 0x26, 0xC1, 0xB2, 0xEF, 0xFA, \
-        0x88, 0x6B, 0x42, 0x38, 0x61, 0x1F, 0xCF, 0xDC, \
-        0xDE, 0x35, 0x5B, 0x3B, 0x65, 0x19, 0x03, 0x5B, \
-        0xBC, 0x34, 0xF4, 0xDE, 0xF9, 0x9C, 0x02, 0x38, \
-        0x61, 0xB4, 0x6F, 0xC9, 0xD6, 0xE6, 0xC9, 0x07, \
-        0x7A, 0xD9, 0x1D, 0x26, 0x91, 0xF7, 0xF7, 0xEE, \
-        0x59, 0x8C, 0xB0, 0xFA, 0xC1, 0x86, 0xD9, 0x1C, \
-        0xAE, 0xFE, 0x13, 0x09, 0x85, 0x13, 0x92, 0x70, \
-        0xB4, 0x13, 0x0C, 0x93, 0xBC, 0x43, 0x79, 0x44, \
-        0xF4, 0xFD, 0x44, 0x52, 0xE2, 0xD7, 0x4D, 0xD3, \
-        0x64, 0xF2, 0xE2, 0x1E, 0x71, 0xF5, 0x4B, 0xFF, \
-        0x5C, 0xAE, 0x82, 0xAB, 0x9C, 0x9D, 0xF6, 0x9E, \
-        0xE8, 0x6D, 0x2B, 0xC5, 0x22, 0x36, 0x3A, 0x0D, \
-        0xAB, 0xC5, 0x21, 0x97, 0x9B, 0x0D, 0xEA, 0xDA, \
-        0x1D, 0xBF, 0x9A, 0x42, 0xD5, 0xC4, 0x48, 0x4E, \
-        0x0A, 0xBC, 0xD0, 0x6B, 0xFA, 0x53, 0xDD, 0xEF, \
-        0x3C, 0x1B, 0x20, 0xEE, 0x3F, 0xD5, 0x9D, 0x7C, \
-        0x25, 0xE4, 0x1D, 0x2B, 0x66, 0x9E, 0x1E, 0xF1, \
-        0x6E, 0x6F, 0x52, 0xC3, 0x16, 0x4D, 0xF4, 0xFB, \
-        0x79, 0x30, 0xE9, 0xE4, 0xE5, 0x88, 0x57, 0xB6, \
-        0xAC, 0x7D, 0x5F, 0x42, 0xD6, 0x9F, 0x6D, 0x18, \
-        0x77, 0x63, 0xCF, 0x1D, 0x55, 0x03, 0x40, 0x04, \
-        0x87, 0xF5, 0x5B, 0xA5, 0x7E, 0x31, 0xCC, 0x7A, \
-        0x71, 0x35, 0xC8, 0x86, 0xEF, 0xB4, 0x31, 0x8A, \
-        0xED, 0x6A, 0x1E, 0x01, 0x2D, 0x9E, 0x68, 0x32, \
-        0xA9, 0x07, 0x60, 0x0A, 0x91, 0x81, 0x30, 0xC4, \
-        0x6D, 0xC7, 0x78, 0xF9, 0x71, 0xAD, 0x00, 0x38, \
-        0x09, 0x29, 0x99, 0xA3, 0x33, 0xCB, 0x8B, 0x7A, \
-        0x1A, 0x1D, 0xB9, 0x3D, 0x71, 0x40, 0x00, 0x3C, \
-        0x2A, 0x4E, 0xCE, 0xA9, 0xF9, 0x8D, 0x0A, 0xCC, \
-        0x0A, 0x82, 0x91, 0xCD, 0xCE, 0xC9, 0x7D, 0xCF, \
-        0x8E, 0xC9, 0xB5, 0x5A, 0x7F, 0x88, 0xA4, 0x6B, \
-        0x4D, 0xB5, 0xA8, 0x51, 0xF4, 0x41, 0x82, 0xE1, \
-        0xC6, 0x8A, 0x00, 0x7E, 0x5E, 0x0D, 0xD9, 0x02, \
-        0x0B, 0xFD, 0x64, 0xB6, 0x45, 0x03, 0x6C, 0x7A, \
-        0x4E, 0x67, 0x7D, 0x2C, 0x38, 0x53, 0x2A, 0x3A, \
-        0x23, 0xBA, 0x44, 0x42, 0xCA, 0xF5, 0x3E, 0xA6, \
-        0x3B, 0xB4, 0x54, 0x32, 0x9B, 0x76, 0x24, 0xC8, \
-        0x91, 0x7B, 0xDD, 0x64, 0xB1, 0xC0, 0xFD, 0x4C, \
-        0xB3, 0x8E, 0x8C, 0x33, 0x4C, 0x70, 0x1C, 0x3A, \
-        0xCD, 0xAD, 0x06, 0x57, 0xFC, 0xCF, 0xEC, 0x71, \
-        0x9B, 0x1F, 0x5C, 0x3E, 0x4E, 0x46, 0x04, 0x1F, \
-        0x38, 0x81, 0x47, 0xFB, 0x4C, 0xFD, 0xB4, 0x77, \
-        0xA5, 0x24, 0x71, 0xF7, 0xA9, 0xA9, 0x69, 0x10, \
-        0xB8, 0x55, 0x32, 0x2E, 0xDB, 0x63, 0x40, 0xD8, \
-        0xA0, 0x0E, 0xF0, 0x92, 0x35, 0x05, 0x11, 0xE3, \
-        0x0A, 0xBE, 0xC1, 0xFF, 0xF9, 0xE3, 0xA2, 0x6E, \
-        0x7F, 0xB2, 0x9F, 0x8C, 0x18, 0x30, 0x23, 0xC3, \
-        0x58, 0x7E, 0x38, 0xDA, 0x00, 0x77, 0xD9, 0xB4, \
-        0x76, 0x3E, 0x4E, 0x4B, 0x94, 0xB2, 0xBB, 0xC1, \
-        0x94, 0xC6, 0x65, 0x1E, 0x77, 0xCA, 0xF9, 0x92, \
-        0xEE, 0xAA, 0xC0, 0x23, 0x2A, 0x28, 0x1B, 0xF6, \
-        0xB3, 0xA7, 0x39, 0xC1, 0x22, 0x61, 0x16, 0x82, \
-        0x0A, 0xE8, 0xDB, 0x58, 0x47, 0xA6, 0x7C, 0xBE, \
-        0xF9, 0xC9, 0x09, 0x1B, 0x46, 0x2D, 0x53, 0x8C, \
-        0xD7, 0x2B, 0x03, 0x74, 0x6A, 0xE7, 0x7F, 0x5E, \
-        0x62, 0x29, 0x2C, 0x31, 0x15, 0x62, 0xA8, 0x46, \
-        0x50, 0x5D, 0xC8, 0x2D, 0xB8, 0x54, 0x33, 0x8A, \
-        0xE4, 0x9F, 0x52, 0x35, 0xC9, 0x5B, 0x91, 0x17, \
-        0x8C, 0xCF, 0x2D, 0xD5, 0xCA, 0xCE, 0xF4, 0x03, \
-        0xEC, 0x9D, 0x18, 0x10, 0xC6, 0x27, 0x2B, 0x04, \
-        0x5B, 0x3B, 0x71, 0xF9, 0xDC, 0x6B, 0x80, 0xD6, \
-        0x3F, 0xDD, 0x4A, 0x8E, 0x9A, 0xDB, 0x1E, 0x69, \
-        0x62, 0xA6, 0x95, 0x26, 0xD4, 0x31, 0x61, 0xC1, \
-        0xA4, 0x1D, 0x57, 0x0D, 0x79, 0x38, 0xDA, 0xD4, \
-        0xA4, 0x0E, 0x32, 0x9C, 0xD0, 0xE4, 0x0E, 0x65, \
-        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF }
-
-#define MBEDTLS_DHM_RFC7919_FFDHE6144_G_BIN { 0x02 }
-
-#define MBEDTLS_DHM_RFC7919_FFDHE8192_P_BIN {        \
-        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, \
-        0xAD, 0xF8, 0x54, 0x58, 0xA2, 0xBB, 0x4A, 0x9A, \
-        0xAF, 0xDC, 0x56, 0x20, 0x27, 0x3D, 0x3C, 0xF1, \
-        0xD8, 0xB9, 0xC5, 0x83, 0xCE, 0x2D, 0x36, 0x95, \
-        0xA9, 0xE1, 0x36, 0x41, 0x14, 0x64, 0x33, 0xFB, \
-        0xCC, 0x93, 0x9D, 0xCE, 0x24, 0x9B, 0x3E, 0xF9, \
-        0x7D, 0x2F, 0xE3, 0x63, 0x63, 0x0C, 0x75, 0xD8, \
-        0xF6, 0x81, 0xB2, 0x02, 0xAE, 0xC4, 0x61, 0x7A, \
-        0xD3, 0xDF, 0x1E, 0xD5, 0xD5, 0xFD, 0x65, 0x61, \
-        0x24, 0x33, 0xF5, 0x1F, 0x5F, 0x06, 0x6E, 0xD0, \
-        0x85, 0x63, 0x65, 0x55, 0x3D, 0xED, 0x1A, 0xF3, \
-        0xB5, 0x57, 0x13, 0x5E, 0x7F, 0x57, 0xC9, 0x35, \
-        0x98, 0x4F, 0x0C, 0x70, 0xE0, 0xE6, 0x8B, 0x77, \
-        0xE2, 0xA6, 0x89, 0xDA, 0xF3, 0xEF, 0xE8, 0x72, \
-        0x1D, 0xF1, 0x58, 0xA1, 0x36, 0xAD, 0xE7, 0x35, \
-        0x30, 0xAC, 0xCA, 0x4F, 0x48, 0x3A, 0x79, 0x7A, \
-        0xBC, 0x0A, 0xB1, 0x82, 0xB3, 0x24, 0xFB, 0x61, \
-        0xD1, 0x08, 0xA9, 0x4B, 0xB2, 0xC8, 0xE3, 0xFB, \
-        0xB9, 0x6A, 0xDA, 0xB7, 0x60, 0xD7, 0xF4, 0x68, \
-        0x1D, 0x4F, 0x42, 0xA3, 0xDE, 0x39, 0x4D, 0xF4, \
-        0xAE, 0x56, 0xED, 0xE7, 0x63, 0x72, 0xBB, 0x19, \
-        0x0B, 0x07, 0xA7, 0xC8, 0xEE, 0x0A, 0x6D, 0x70, \
-        0x9E, 0x02, 0xFC, 0xE1, 0xCD, 0xF7, 0xE2, 0xEC, \
-        0xC0, 0x34, 0x04, 0xCD, 0x28, 0x34, 0x2F, 0x61, \
-        0x91, 0x72, 0xFE, 0x9C, 0xE9, 0x85, 0x83, 0xFF, \
-        0x8E, 0x4F, 0x12, 0x32, 0xEE, 0xF2, 0x81, 0x83, \
-        0xC3, 0xFE, 0x3B, 0x1B, 0x4C, 0x6F, 0xAD, 0x73, \
-        0x3B, 0xB5, 0xFC, 0xBC, 0x2E, 0xC2, 0x20, 0x05, \
-        0xC5, 0x8E, 0xF1, 0x83, 0x7D, 0x16, 0x83, 0xB2, \
-        0xC6, 0xF3, 0x4A, 0x26, 0xC1, 0xB2, 0xEF, 0xFA, \
-        0x88, 0x6B, 0x42, 0x38, 0x61, 0x1F, 0xCF, 0xDC, \
-        0xDE, 0x35, 0x5B, 0x3B, 0x65, 0x19, 0x03, 0x5B, \
-        0xBC, 0x34, 0xF4, 0xDE, 0xF9, 0x9C, 0x02, 0x38, \
-        0x61, 0xB4, 0x6F, 0xC9, 0xD6, 0xE6, 0xC9, 0x07, \
-        0x7A, 0xD9, 0x1D, 0x26, 0x91, 0xF7, 0xF7, 0xEE, \
-        0x59, 0x8C, 0xB0, 0xFA, 0xC1, 0x86, 0xD9, 0x1C, \
-        0xAE, 0xFE, 0x13, 0x09, 0x85, 0x13, 0x92, 0x70, \
-        0xB4, 0x13, 0x0C, 0x93, 0xBC, 0x43, 0x79, 0x44, \
-        0xF4, 0xFD, 0x44, 0x52, 0xE2, 0xD7, 0x4D, 0xD3, \
-        0x64, 0xF2, 0xE2, 0x1E, 0x71, 0xF5, 0x4B, 0xFF, \
-        0x5C, 0xAE, 0x82, 0xAB, 0x9C, 0x9D, 0xF6, 0x9E, \
-        0xE8, 0x6D, 0x2B, 0xC5, 0x22, 0x36, 0x3A, 0x0D, \
-        0xAB, 0xC5, 0x21, 0x97, 0x9B, 0x0D, 0xEA, 0xDA, \
-        0x1D, 0xBF, 0x9A, 0x42, 0xD5, 0xC4, 0x48, 0x4E, \
-        0x0A, 0xBC, 0xD0, 0x6B, 0xFA, 0x53, 0xDD, 0xEF, \
-        0x3C, 0x1B, 0x20, 0xEE, 0x3F, 0xD5, 0x9D, 0x7C, \
-        0x25, 0xE4, 0x1D, 0x2B, 0x66, 0x9E, 0x1E, 0xF1, \
-        0x6E, 0x6F, 0x52, 0xC3, 0x16, 0x4D, 0xF4, 0xFB, \
-        0x79, 0x30, 0xE9, 0xE4, 0xE5, 0x88, 0x57, 0xB6, \
-        0xAC, 0x7D, 0x5F, 0x42, 0xD6, 0x9F, 0x6D, 0x18, \
-        0x77, 0x63, 0xCF, 0x1D, 0x55, 0x03, 0x40, 0x04, \
-        0x87, 0xF5, 0x5B, 0xA5, 0x7E, 0x31, 0xCC, 0x7A, \
-        0x71, 0x35, 0xC8, 0x86, 0xEF, 0xB4, 0x31, 0x8A, \
-        0xED, 0x6A, 0x1E, 0x01, 0x2D, 0x9E, 0x68, 0x32, \
-        0xA9, 0x07, 0x60, 0x0A, 0x91, 0x81, 0x30, 0xC4, \
-        0x6D, 0xC7, 0x78, 0xF9, 0x71, 0xAD, 0x00, 0x38, \
-        0x09, 0x29, 0x99, 0xA3, 0x33, 0xCB, 0x8B, 0x7A, \
-        0x1A, 0x1D, 0xB9, 0x3D, 0x71, 0x40, 0x00, 0x3C, \
-        0x2A, 0x4E, 0xCE, 0xA9, 0xF9, 0x8D, 0x0A, 0xCC, \
-        0x0A, 0x82, 0x91, 0xCD, 0xCE, 0xC9, 0x7D, 0xCF, \
-        0x8E, 0xC9, 0xB5, 0x5A, 0x7F, 0x88, 0xA4, 0x6B, \
-        0x4D, 0xB5, 0xA8, 0x51, 0xF4, 0x41, 0x82, 0xE1, \
-        0xC6, 0x8A, 0x00, 0x7E, 0x5E, 0x0D, 0xD9, 0x02, \
-        0x0B, 0xFD, 0x64, 0xB6, 0x45, 0x03, 0x6C, 0x7A, \
-        0x4E, 0x67, 0x7D, 0x2C, 0x38, 0x53, 0x2A, 0x3A, \
-        0x23, 0xBA, 0x44, 0x42, 0xCA, 0xF5, 0x3E, 0xA6, \
-        0x3B, 0xB4, 0x54, 0x32, 0x9B, 0x76, 0x24, 0xC8, \
-        0x91, 0x7B, 0xDD, 0x64, 0xB1, 0xC0, 0xFD, 0x4C, \
-        0xB3, 0x8E, 0x8C, 0x33, 0x4C, 0x70, 0x1C, 0x3A, \
-        0xCD, 0xAD, 0x06, 0x57, 0xFC, 0xCF, 0xEC, 0x71, \
-        0x9B, 0x1F, 0x5C, 0x3E, 0x4E, 0x46, 0x04, 0x1F, \
-        0x38, 0x81, 0x47, 0xFB, 0x4C, 0xFD, 0xB4, 0x77, \
-        0xA5, 0x24, 0x71, 0xF7, 0xA9, 0xA9, 0x69, 0x10, \
-        0xB8, 0x55, 0x32, 0x2E, 0xDB, 0x63, 0x40, 0xD8, \
-        0xA0, 0x0E, 0xF0, 0x92, 0x35, 0x05, 0x11, 0xE3, \
-        0x0A, 0xBE, 0xC1, 0xFF, 0xF9, 0xE3, 0xA2, 0x6E, \
-        0x7F, 0xB2, 0x9F, 0x8C, 0x18, 0x30, 0x23, 0xC3, \
-        0x58, 0x7E, 0x38, 0xDA, 0x00, 0x77, 0xD9, 0xB4, \
-        0x76, 0x3E, 0x4E, 0x4B, 0x94, 0xB2, 0xBB, 0xC1, \
-        0x94, 0xC6, 0x65, 0x1E, 0x77, 0xCA, 0xF9, 0x92, \
-        0xEE, 0xAA, 0xC0, 0x23, 0x2A, 0x28, 0x1B, 0xF6, \
-        0xB3, 0xA7, 0x39, 0xC1, 0x22, 0x61, 0x16, 0x82, \
-        0x0A, 0xE8, 0xDB, 0x58, 0x47, 0xA6, 0x7C, 0xBE, \
-        0xF9, 0xC9, 0x09, 0x1B, 0x46, 0x2D, 0x53, 0x8C, \
-        0xD7, 0x2B, 0x03, 0x74, 0x6A, 0xE7, 0x7F, 0x5E, \
-        0x62, 0x29, 0x2C, 0x31, 0x15, 0x62, 0xA8, 0x46, \
-        0x50, 0x5D, 0xC8, 0x2D, 0xB8, 0x54, 0x33, 0x8A, \
-        0xE4, 0x9F, 0x52, 0x35, 0xC9, 0x5B, 0x91, 0x17, \
-        0x8C, 0xCF, 0x2D, 0xD5, 0xCA, 0xCE, 0xF4, 0x03, \
-        0xEC, 0x9D, 0x18, 0x10, 0xC6, 0x27, 0x2B, 0x04, \
-        0x5B, 0x3B, 0x71, 0xF9, 0xDC, 0x6B, 0x80, 0xD6, \
-        0x3F, 0xDD, 0x4A, 0x8E, 0x9A, 0xDB, 0x1E, 0x69, \
-        0x62, 0xA6, 0x95, 0x26, 0xD4, 0x31, 0x61, 0xC1, \
-        0xA4, 0x1D, 0x57, 0x0D, 0x79, 0x38, 0xDA, 0xD4, \
-        0xA4, 0x0E, 0x32, 0x9C, 0xCF, 0xF4, 0x6A, 0xAA, \
-        0x36, 0xAD, 0x00, 0x4C, 0xF6, 0x00, 0xC8, 0x38, \
-        0x1E, 0x42, 0x5A, 0x31, 0xD9, 0x51, 0xAE, 0x64, \
-        0xFD, 0xB2, 0x3F, 0xCE, 0xC9, 0x50, 0x9D, 0x43, \
-        0x68, 0x7F, 0xEB, 0x69, 0xED, 0xD1, 0xCC, 0x5E, \
-        0x0B, 0x8C, 0xC3, 0xBD, 0xF6, 0x4B, 0x10, 0xEF, \
-        0x86, 0xB6, 0x31, 0x42, 0xA3, 0xAB, 0x88, 0x29, \
-        0x55, 0x5B, 0x2F, 0x74, 0x7C, 0x93, 0x26, 0x65, \
-        0xCB, 0x2C, 0x0F, 0x1C, 0xC0, 0x1B, 0xD7, 0x02, \
-        0x29, 0x38, 0x88, 0x39, 0xD2, 0xAF, 0x05, 0xE4, \
-        0x54, 0x50, 0x4A, 0xC7, 0x8B, 0x75, 0x82, 0x82, \
-        0x28, 0x46, 0xC0, 0xBA, 0x35, 0xC3, 0x5F, 0x5C, \
-        0x59, 0x16, 0x0C, 0xC0, 0x46, 0xFD, 0x82, 0x51, \
-        0x54, 0x1F, 0xC6, 0x8C, 0x9C, 0x86, 0xB0, 0x22, \
-        0xBB, 0x70, 0x99, 0x87, 0x6A, 0x46, 0x0E, 0x74, \
-        0x51, 0xA8, 0xA9, 0x31, 0x09, 0x70, 0x3F, 0xEE, \
-        0x1C, 0x21, 0x7E, 0x6C, 0x38, 0x26, 0xE5, 0x2C, \
-        0x51, 0xAA, 0x69, 0x1E, 0x0E, 0x42, 0x3C, 0xFC, \
-        0x99, 0xE9, 0xE3, 0x16, 0x50, 0xC1, 0x21, 0x7B, \
-        0x62, 0x48, 0x16, 0xCD, 0xAD, 0x9A, 0x95, 0xF9, \
-        0xD5, 0xB8, 0x01, 0x94, 0x88, 0xD9, 0xC0, 0xA0, \
-        0xA1, 0xFE, 0x30, 0x75, 0xA5, 0x77, 0xE2, 0x31, \
-        0x83, 0xF8, 0x1D, 0x4A, 0x3F, 0x2F, 0xA4, 0x57, \
-        0x1E, 0xFC, 0x8C, 0xE0, 0xBA, 0x8A, 0x4F, 0xE8, \
-        0xB6, 0x85, 0x5D, 0xFE, 0x72, 0xB0, 0xA6, 0x6E, \
-        0xDE, 0xD2, 0xFB, 0xAB, 0xFB, 0xE5, 0x8A, 0x30, \
-        0xFA, 0xFA, 0xBE, 0x1C, 0x5D, 0x71, 0xA8, 0x7E, \
-        0x2F, 0x74, 0x1E, 0xF8, 0xC1, 0xFE, 0x86, 0xFE, \
-        0xA6, 0xBB, 0xFD, 0xE5, 0x30, 0x67, 0x7F, 0x0D, \
-        0x97, 0xD1, 0x1D, 0x49, 0xF7, 0xA8, 0x44, 0x3D, \
-        0x08, 0x22, 0xE5, 0x06, 0xA9, 0xF4, 0x61, 0x4E, \
-        0x01, 0x1E, 0x2A, 0x94, 0x83, 0x8F, 0xF8, 0x8C, \
-        0xD6, 0x8C, 0x8B, 0xB7, 0xC5, 0xC6, 0x42, 0x4C, \
-        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF }
-
-#define MBEDTLS_DHM_RFC7919_FFDHE8192_G_BIN { 0x02 }
-
-#endif /* dhm.h */
diff --git a/deps/LIEF/third-party/mbedtls/include/mbedtls/error.h b/deps/LIEF/third-party/mbedtls/include/mbedtls/error.h
index 635f7cd8429..ee3d093c938 100644
--- a/deps/LIEF/third-party/mbedtls/include/mbedtls/error.h
+++ b/deps/LIEF/third-party/mbedtls/include/mbedtls/error.h
@@ -11,148 +11,14 @@
 #define MBEDTLS_ERROR_H

 #include "mbedtls/build_info.h"
+#include "mbedtls/private/error_common.h"

 #include <stddef.h>

-/**
- * Error code layout.
- *
- * Currently we try to keep all error codes within the negative space of 16
- * bits signed integers to support all platforms (-0x0001 - -0x7FFF). In
- * addition we'd like to give two layers of information on the error if
- * possible.
- *
- * For that purpose the error codes are segmented in the following manner:
- *
- * 16 bit error code bit-segmentation
- *
- * 1 bit  - Unused (sign bit)
- * 3 bits - High level module ID
- * 5 bits - Module-dependent error code
- * 7 bits - Low level module errors
- *
- * For historical reasons, low-level error codes are divided in even and odd,
- * even codes were assigned first, and -1 is reserved for other errors.
- *
- * Low-level module errors (0x0002-0x007E, 0x0001-0x007F)
- *
- * Module   Nr  Codes assigned
- * ERROR     2  0x006E          0x0001
- * MPI       7  0x0002-0x0010
- * GCM       3  0x0012-0x0016   0x0013-0x0013
- * THREADING 3  0x001A-0x001E
- * AES       5  0x0020-0x0022   0x0021-0x0025
- * CAMELLIA  3  0x0024-0x0026   0x0027-0x0027
- * BASE64    2  0x002A-0x002C
- * OID       1  0x002E-0x002E   0x000B-0x000B
- * PADLOCK   1  0x0030-0x0030
- * DES       2  0x0032-0x0032   0x0033-0x0033
- * CTR_DBRG  4  0x0034-0x003A
- * ENTROPY   3  0x003C-0x0040   0x003D-0x003F
- * NET      13  0x0042-0x0052   0x0043-0x0049
- * ARIA      4  0x0058-0x005E
- * ASN1      7  0x0060-0x006C
- * CMAC      1  0x007A-0x007A
- * PBKDF2    1  0x007C-0x007C
- * HMAC_DRBG 4                  0x0003-0x0009
- * CCM       3                  0x000D-0x0011
- * MD5       1                  0x002F-0x002F
- * RIPEMD160 1                  0x0031-0x0031
- * SHA1      1                  0x0035-0x0035 0x0073-0x0073
- * SHA256    1                  0x0037-0x0037 0x0074-0x0074
- * SHA512    1                  0x0039-0x0039 0x0075-0x0075
- * SHA-3     1                  0x0076-0x0076
- * CHACHA20  3                  0x0051-0x0055
- * POLY1305  3                  0x0057-0x005B
- * CHACHAPOLY 2 0x0054-0x0056
- * PLATFORM  2  0x0070-0x0072
- * LMS       5  0x0011-0x0019
- *
- * High-level module nr (3 bits - 0x0...-0x7...)
- * Name      ID  Nr of Errors
- * PEM       1   9
- * PKCS#12   1   4 (Started from top)
- * X509      2   20
- * PKCS5     2   4 (Started from top)
- * DHM       3   11
- * PK        3   15 (Started from top)
- * RSA       4   11
- * ECP       4   10 (Started from top)
- * MD        5   5
- * HKDF      5   1 (Started from top)
- * PKCS7     5   12 (Started from 0x5300)
- * SSL       5   3 (Started from 0x5F00)
- * CIPHER    6   8 (Started from 0x6080)
- * SSL       6   22 (Started from top, plus 0x6000)
- * SSL       7   20 (Started from 0x7000, gaps at
- *                   0x7380, 0x7900-0x7980, 0x7A80-0x7E80)
- *
- * Module dependent error code (5 bits 0x.00.-0x.F8.)
- */
-
 #ifdef __cplusplus
 extern "C" {
 #endif

-/** Generic error */
-#define MBEDTLS_ERR_ERROR_GENERIC_ERROR       -0x0001
-/** This is a bug in the library */
-#define MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED -0x006E
-
-/** Hardware accelerator failed */
-#define MBEDTLS_ERR_PLATFORM_HW_ACCEL_FAILED     -0x0070
-/** The requested feature is not supported by the platform */
-#define MBEDTLS_ERR_PLATFORM_FEATURE_UNSUPPORTED -0x0072
-
-/**
- * \brief Combines a high-level and low-level error code together.
- *
- *        Wrapper macro for mbedtls_error_add(). See that function for
- *        more details.
- */
-#define MBEDTLS_ERROR_ADD(high, low) \
-    mbedtls_error_add(high, low, __FILE__, __LINE__)
-
-#if defined(MBEDTLS_TEST_HOOKS)
-/**
- * \brief Testing hook called before adding/combining two error codes together.
- *        Only used when invasive testing is enabled via MBEDTLS_TEST_HOOKS.
- */
-extern void (*mbedtls_test_hook_error_add)(int, int, const char *, int);
-#endif
-
-/**
- * \brief Combines a high-level and low-level error code together.
- *
- *        This function can be called directly however it is usually
- *        called via the #MBEDTLS_ERROR_ADD macro.
- *
- *        While a value of zero is not a negative error code, it is still an
- *        error code (that denotes success) and can be combined with both a
- *        negative error code or another value of zero.
- *
- * \note  When invasive testing is enabled via #MBEDTLS_TEST_HOOKS, also try to
- *        call \link mbedtls_test_hook_error_add \endlink.
- *
- * \param high      high-level error code. See error.h for more details.
- * \param low       low-level error code. See error.h for more details.
- * \param file      file where this error code addition occurred.
- * \param line      line where this error code addition occurred.
- */
-static inline int mbedtls_error_add(int high, int low,
-                                    const char *file, int line)
-{
-#if defined(MBEDTLS_TEST_HOOKS)
-    if (*mbedtls_test_hook_error_add != NULL) {
-        (*mbedtls_test_hook_error_add)(high, low, file, line);
-    }
-#endif
-    (void) file;
-    (void) line;
-
-    return high + low;
-}
-
 /**
  * \brief Translate an Mbed TLS error code into a string representation.
  *        The result is truncated if necessary and always includes a
@@ -164,36 +30,6 @@ static inline int mbedtls_error_add(int high, int low,
  */
 void mbedtls_strerror(int errnum, char *buffer, size_t buflen);

-/**
- * \brief Translate the high-level part of an Mbed TLS error code into a string
- *        representation.
- *
- * This function returns a const pointer to an un-modifiable string. The caller
- * must not try to modify the string. It is intended to be used mostly for
- * logging purposes.
- *
- * \param error_code    error code
- *
- * \return The string representation of the error code, or \c NULL if the error
- *         code is unknown.
- */
-const char *mbedtls_high_level_strerr(int error_code);
-
-/**
- * \brief Translate the low-level part of an Mbed TLS error code into a string
- *        representation.
- *
- * This function returns a const pointer to an un-modifiable string. The caller
- * must not try to modify the string. It is intended to be used mostly for
- * logging purposes.
- *
- * \param error_code    error code
- *
- * \return The string representation of the error code, or \c NULL if the error
- *         code is unknown.
- */
-const char *mbedtls_low_level_strerr(int error_code);
-
 #ifdef __cplusplus
 }
 #endif
diff --git a/deps/LIEF/third-party/mbedtls/include/mbedtls/hkdf.h b/deps/LIEF/third-party/mbedtls/include/mbedtls/hkdf.h
deleted file mode 100644
index 930e93f3251..00000000000
--- a/deps/LIEF/third-party/mbedtls/include/mbedtls/hkdf.h
+++ /dev/null
@@ -1,124 +0,0 @@
-/**
- * \file hkdf.h
- *
- * \brief   This file contains the HKDF interface.
- *
- *          The HMAC-based Extract-and-Expand Key Derivation Function (HKDF) is
- *          specified by RFC 5869.
- */
-/*
- *  Copyright The Mbed TLS Contributors
- *  SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
- */
-#ifndef MBEDTLS_HKDF_H
-#define MBEDTLS_HKDF_H
-
-#include "mbedtls/build_info.h"
-
-#include "mbedtls/md.h"
-
-/**
- *  \name HKDF Error codes
- *  \{
- */
-/** Bad input parameters to function. */
-#define MBEDTLS_ERR_HKDF_BAD_INPUT_DATA  -0x5F80
-/** \} name */
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- *  \brief  This is the HMAC-based Extract-and-Expand Key Derivation Function
- *          (HKDF).
- *
- *  \param  md        A hash function; md.size denotes the length of the hash
- *                    function output in bytes.
- *  \param  salt      An optional salt value (a non-secret random value);
- *                    if the salt is not provided, a string of all zeros of
- *                    md.size length is used as the salt.
- *  \param  salt_len  The length in bytes of the optional \p salt.
- *  \param  ikm       The input keying material.
- *  \param  ikm_len   The length in bytes of \p ikm.
- *  \param  info      An optional context and application specific information
- *                    string. This can be a zero-length string.
- *  \param  info_len  The length of \p info in bytes.
- *  \param  okm       The output keying material of \p okm_len bytes.
- *  \param  okm_len   The length of the output keying material in bytes. This
- *                    must be less than or equal to 255 * md.size bytes.
- *
- *  \return 0 on success.
- *  \return #MBEDTLS_ERR_HKDF_BAD_INPUT_DATA when the parameters are invalid.
- *  \return An MBEDTLS_ERR_MD_* error for errors returned from the underlying
- *          MD layer.
- */
-int mbedtls_hkdf(const mbedtls_md_info_t *md, const unsigned char *salt,
-                 size_t salt_len, const unsigned char *ikm, size_t ikm_len,
-                 const unsigned char *info, size_t info_len,
-                 unsigned char *okm, size_t okm_len);
-
-/**
- *  \brief  Take the input keying material \p ikm and extract from it a
- *          fixed-length pseudorandom key \p prk.
- *
- *  \warning    This function should only be used if the security of it has been
- *              studied and established in that particular context (eg. TLS 1.3
- *              key schedule). For standard HKDF security guarantees use
- *              \c mbedtls_hkdf instead.
- *
- *  \param       md        A hash function; md.size denotes the length of the
- *                         hash function output in bytes.
- *  \param       salt      An optional salt value (a non-secret random value);
- *                         if the salt is not provided, a string of all zeros
- *                         of md.size length is used as the salt.
- *  \param       salt_len  The length in bytes of the optional \p salt.
- *  \param       ikm       The input keying material.
- *  \param       ikm_len   The length in bytes of \p ikm.
- *  \param[out]  prk       A pseudorandom key of at least md.size bytes.
- *
- *  \return 0 on success.
- *  \return #MBEDTLS_ERR_HKDF_BAD_INPUT_DATA when the parameters are invalid.
- *  \return An MBEDTLS_ERR_MD_* error for errors returned from the underlying
- *          MD layer.
- */
-int mbedtls_hkdf_extract(const mbedtls_md_info_t *md,
-                         const unsigned char *salt, size_t salt_len,
-                         const unsigned char *ikm, size_t ikm_len,
-                         unsigned char *prk);
-
-/**
- *  \brief  Expand the supplied \p prk into several additional pseudorandom
- *          keys, which is the output of the HKDF.
- *
- *  \warning    This function should only be used if the security of it has been
- *              studied and established in that particular context (eg. TLS 1.3
- *              key schedule). For standard HKDF security guarantees use
- *              \c mbedtls_hkdf instead.
- *
- *  \param  md        A hash function; md.size denotes the length of the hash
- *                    function output in bytes.
- *  \param  prk       A pseudorandom key of at least md.size bytes. \p prk is
- *                    usually the output from the HKDF extract step.
- *  \param  prk_len   The length in bytes of \p prk.
- *  \param  info      An optional context and application specific information
- *                    string. This can be a zero-length string.
- *  \param  info_len  The length of \p info in bytes.
- *  \param  okm       The output keying material of \p okm_len bytes.
- *  \param  okm_len   The length of the output keying material in bytes. This
- *                    must be less than or equal to 255 * md.size bytes.
- *
- *  \return 0 on success.
- *  \return #MBEDTLS_ERR_HKDF_BAD_INPUT_DATA when the parameters are invalid.
- *  \return An MBEDTLS_ERR_MD_* error for errors returned from the underlying
- *          MD layer.
- */
-int mbedtls_hkdf_expand(const mbedtls_md_info_t *md, const unsigned char *prk,
-                        size_t prk_len, const unsigned char *info,
-                        size_t info_len, unsigned char *okm, size_t okm_len);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* hkdf.h */
diff --git a/deps/LIEF/third-party/mbedtls/include/mbedtls/mbedtls_config.h b/deps/LIEF/third-party/mbedtls/include/mbedtls/mbedtls_config.h
index d2831367cd9..ad843c70c3c 100644
--- a/deps/LIEF/third-party/mbedtls/include/mbedtls/mbedtls_config.h
+++ b/deps/LIEF/third-party/mbedtls/include/mbedtls/mbedtls_config.h
@@ -19,320 +19,172 @@
  * It is equal to the #MBEDTLS_VERSION_NUMBER of the Mbed TLS version that
  * introduced the config format we want to be compatible with.
  */
-//#define MBEDTLS_CONFIG_VERSION 0x03000000
+#define MBEDTLS_CONFIG_VERSION 0x04000000

 /**
- * \name SECTION: System support
+ * \name SECTION: Platform abstraction layer
  *
- * This section sets system specific settings.
+ * This section sets platform specific settings.
  * \{
  */

 /**
- * \def MBEDTLS_HAVE_ASM
+ * \def MBEDTLS_NET_C
  *
- * The compiler has support for asm().
+ * Enable the TCP and UDP over IPv6/IPv4 networking routines.
  *
- * Requires support for asm() in compiler.
+ * \note This module only works on POSIX/Unix (including Linux, BSD and OS X)
+ * and Windows. For other platforms, you'll want to disable it, and write your
+ * own networking callbacks to be passed to \c mbedtls_ssl_set_bio().
  *
- * Used in:
- *      library/aesni.h
- *      library/aria.c
- *      library/bn_mul.h
- *      library/constant_time.c
- *      library/padlock.h
+ * \note See also our Knowledge Base article about porting to a new
+ * environment:
+ * https://mbed-tls.readthedocs.io/en/latest/kb/how-to/how-do-i-port-mbed-tls-to-a-new-environment-OS
  *
- * Required by:
- *      MBEDTLS_AESCE_C
- *      MBEDTLS_AESNI_C (on some platforms)
- *      MBEDTLS_PADLOCK_C
+ * Module:  library/net_sockets.c
  *
- * Comment to disable the use of assembly code.
+ * This module provides networking routines.
  */
-#define MBEDTLS_HAVE_ASM
+#define MBEDTLS_NET_C

 /**
- * \def MBEDTLS_NO_UDBL_DIVISION
- *
- * The platform lacks support for double-width integer division (64-bit
- * division on a 32-bit platform, 128-bit division on a 64-bit platform).
- *
- * Used in:
- *      include/mbedtls/bignum.h
- *      library/bignum.c
- *
- * The bignum code uses double-width division to speed up some operations.
- * Double-width division is often implemented in software that needs to
- * be linked with the program. The presence of a double-width integer
- * type is usually detected automatically through preprocessor macros,
- * but the automatic detection cannot know whether the code needs to
- * and can be linked with an implementation of division for that type.
- * By default division is assumed to be usable if the type is present.
- * Uncomment this option to prevent the use of double-width division.
- *
- * Note that division for the native integer type is always required.
- * Furthermore, a 64-bit type is always required even on a 32-bit
- * platform, but it need not support multiplication or division. In some
- * cases it is also desirable to disable some double-width operations. For
- * example, if double-width division is implemented in software, disabling
- * it can reduce code size in some embedded targets.
+ * \def MBEDTLS_TIMING_ALT
+ *
+ * Uncomment to provide your own alternate implementation for
+ * mbedtls_timing_get_timer(), mbedtls_set_alarm(), mbedtls_set/get_delay()
+ *
+ * Only works if you have MBEDTLS_TIMING_C enabled.
+ *
+ * You will need to provide a header "timing_alt.h" and an implementation at
+ * compile time.
  */
-//#define MBEDTLS_NO_UDBL_DIVISION
+//#define MBEDTLS_TIMING_ALT

 /**
- * \def MBEDTLS_NO_64BIT_MULTIPLICATION
+ * \def MBEDTLS_TIMING_C
  *
- * The platform lacks support for 32x32 -> 64-bit multiplication.
+ * Enable the semi-portable timing interface.
  *
- * Used in:
- *      library/poly1305.c
+ * \note The provided implementation only works on POSIX/Unix (including Linux,
+ * BSD and OS X) and Windows. On other platforms, you can either disable that
+ * module and provide your own implementations of the callbacks needed by
+ * \c mbedtls_ssl_set_timer_cb() for DTLS, or leave it enabled and provide
+ * your own implementation of the whole module by setting
+ * \c MBEDTLS_TIMING_ALT in the current file.
  *
- * Some parts of the library may use multiplication of two unsigned 32-bit
- * operands with a 64-bit result in order to speed up computations. On some
- * platforms, this is not available in hardware and has to be implemented in
- * software, usually in a library provided by the toolchain.
+ * \note The timing module will include time.h on suitable platforms
+ *       regardless of the setting of MBEDTLS_HAVE_TIME, unless
+ *       MBEDTLS_TIMING_ALT is used. See timing.c for more information.
  *
- * Sometimes it is not desirable to have to link to that library. This option
- * removes the dependency of that library on platforms that lack a hardware
- * 64-bit multiplier by embedding a software implementation in Mbed TLS.
+ * \note See also our Knowledge Base article about porting to a new
+ * environment:
+ * https://mbed-tls.readthedocs.io/en/latest/kb/how-to/how-do-i-port-mbed-tls-to-a-new-environment-OS
  *
- * Note that depending on the compiler, this may decrease performance compared
- * to using the library function provided by the toolchain.
+ * Module:  library/timing.c
  */
-//#define MBEDTLS_NO_64BIT_MULTIPLICATION
+#define MBEDTLS_TIMING_C
+
+/** \} name SECTION: Platform abstraction layer */

 /**
- * \def MBEDTLS_HAVE_SSE2
- *
- * CPU supports SSE2 instruction set.
+ * \name SECTION: General configuration options
  *
- * Uncomment if the CPU supports SSE2 (IA-32 specific).
+ * This section contains Mbed TLS build settings that are not associated
+ * with a particular module.
+ * \{
  */
-//#define MBEDTLS_HAVE_SSE2

 /**
- * \def MBEDTLS_HAVE_TIME
- *
- * System has time.h and time().
- * The time does not need to be correct, only time differences are used,
- * by contrast with MBEDTLS_HAVE_TIME_DATE
+ * \def MBEDTLS_ERROR_C
  *
- * Defining MBEDTLS_HAVE_TIME allows you to specify MBEDTLS_PLATFORM_TIME_ALT,
- * MBEDTLS_PLATFORM_TIME_MACRO, MBEDTLS_PLATFORM_TIME_TYPE_MACRO and
- * MBEDTLS_PLATFORM_STD_TIME.
+ * Enable error code to error string conversion.
  *
- * Comment if your system does not support time functions.
+ * Module:  library/error.c
+ * Caller:
  *
- * \note If MBEDTLS_TIMING_C is set - to enable the semi-portable timing
- *       interface - timing.c will include time.h on suitable platforms
- *       regardless of the setting of MBEDTLS_HAVE_TIME, unless
- *       MBEDTLS_TIMING_ALT is used. See timing.c for more information.
+ * This module enables mbedtls_strerror().
  */
-#define MBEDTLS_HAVE_TIME
+#define MBEDTLS_ERROR_C

 /**
- * \def MBEDTLS_HAVE_TIME_DATE
- *
- * System has time.h, time(), and an implementation for
- * mbedtls_platform_gmtime_r() (see below).
- * The time needs to be correct (not necessarily very accurate, but at least
- * the date should be correct). This is used to verify the validity period of
- * X.509 certificates.
+ * \def MBEDTLS_ERROR_STRERROR_DUMMY
  *
- * Comment if your system does not have a correct clock.
+ * Enable a dummy error function to make use of mbedtls_strerror() in
+ * third party libraries easier when MBEDTLS_ERROR_C is disabled
+ * (no effect when MBEDTLS_ERROR_C is enabled).
  *
- * \note mbedtls_platform_gmtime_r() is an abstraction in platform_util.h that
- * behaves similarly to the gmtime_r() function from the C standard. Refer to
- * the documentation for mbedtls_platform_gmtime_r() for more information.
+ * You can safely disable this if MBEDTLS_ERROR_C is enabled, or if you're
+ * not using mbedtls_strerror() or error_strerror() in your application.
  *
- * \note It is possible to configure an implementation for
- * mbedtls_platform_gmtime_r() at compile-time by using the macro
- * MBEDTLS_PLATFORM_GMTIME_R_ALT.
- */
-#define MBEDTLS_HAVE_TIME_DATE
-
-/**
- * \def MBEDTLS_PLATFORM_MEMORY
- *
- * Enable the memory allocation layer.
- *
- * By default Mbed TLS uses the system-provided calloc() and free().
- * This allows different allocators (self-implemented or provided) to be
- * provided to the platform abstraction layer.
- *
- * Enabling #MBEDTLS_PLATFORM_MEMORY without the
- * MBEDTLS_PLATFORM_{FREE,CALLOC}_MACROs will provide
- * "mbedtls_platform_set_calloc_free()" allowing you to set an alternative calloc() and
- * free() function pointer at runtime.
- *
- * Enabling #MBEDTLS_PLATFORM_MEMORY and specifying
- * MBEDTLS_PLATFORM_{CALLOC,FREE}_MACROs will allow you to specify the
- * alternate function at compile time.
- *
- * An overview of how the value of mbedtls_calloc is determined:
- *
- * - if !MBEDTLS_PLATFORM_MEMORY
- *     - mbedtls_calloc = calloc
- * - if MBEDTLS_PLATFORM_MEMORY
- *     - if (MBEDTLS_PLATFORM_CALLOC_MACRO && MBEDTLS_PLATFORM_FREE_MACRO):
- *         - mbedtls_calloc = MBEDTLS_PLATFORM_CALLOC_MACRO
- *     - if !(MBEDTLS_PLATFORM_CALLOC_MACRO && MBEDTLS_PLATFORM_FREE_MACRO):
- *         - Dynamic setup via mbedtls_platform_set_calloc_free is now possible with a default value MBEDTLS_PLATFORM_STD_CALLOC.
- *         - How is MBEDTLS_PLATFORM_STD_CALLOC handled?
- *         - if MBEDTLS_PLATFORM_NO_STD_FUNCTIONS:
- *             - MBEDTLS_PLATFORM_STD_CALLOC is not set to anything;
- *             - MBEDTLS_PLATFORM_STD_MEM_HDR can be included if present;
- *         - if !MBEDTLS_PLATFORM_NO_STD_FUNCTIONS:
- *             - if MBEDTLS_PLATFORM_STD_CALLOC is present:
- *                 - User-defined MBEDTLS_PLATFORM_STD_CALLOC is respected;
- *             - if !MBEDTLS_PLATFORM_STD_CALLOC:
- *                 - MBEDTLS_PLATFORM_STD_CALLOC = calloc
- *
- *         - At this point the presence of MBEDTLS_PLATFORM_STD_CALLOC is checked.
- *         - if !MBEDTLS_PLATFORM_STD_CALLOC
- *             - MBEDTLS_PLATFORM_STD_CALLOC = uninitialized_calloc
- *
- *         - mbedtls_calloc = MBEDTLS_PLATFORM_STD_CALLOC.
- *
- * Defining MBEDTLS_PLATFORM_CALLOC_MACRO and #MBEDTLS_PLATFORM_STD_CALLOC at the same time is not possible.
- * MBEDTLS_PLATFORM_CALLOC_MACRO and MBEDTLS_PLATFORM_FREE_MACRO must both be defined or undefined at the same time.
- * #MBEDTLS_PLATFORM_STD_CALLOC and #MBEDTLS_PLATFORM_STD_FREE do not have to be defined at the same time, as, if they are used,
- * dynamic setup of these functions is possible. See the tree above to see how are they handled in all cases.
- * An uninitialized #MBEDTLS_PLATFORM_STD_CALLOC always fails, returning a null pointer.
- * An uninitialized #MBEDTLS_PLATFORM_STD_FREE does not do anything.
- *
- * Requires: MBEDTLS_PLATFORM_C
- *
- * Enable this layer to allow use of alternative memory allocators.
+ * Disable if you run into name conflicts and want to really remove the
+ * mbedtls_strerror()
  */
-//#define MBEDTLS_PLATFORM_MEMORY
+#define MBEDTLS_ERROR_STRERROR_DUMMY

 /**
- * \def MBEDTLS_PLATFORM_NO_STD_FUNCTIONS
- *
- * Do not assign standard functions in the platform layer (e.g. calloc() to
- * MBEDTLS_PLATFORM_STD_CALLOC and printf() to MBEDTLS_PLATFORM_STD_PRINTF)
+ * \def MBEDTLS_VERSION_C
  *
- * This makes sure there are no linking errors on platforms that do not support
- * these functions. You will HAVE to provide alternatives, either at runtime
- * via the platform_set_xxx() functions or at compile time by setting
- * the MBEDTLS_PLATFORM_STD_XXX defines, or enabling a
- * MBEDTLS_PLATFORM_XXX_MACRO.
+ * Enable run-time version information.
  *
- * Requires: MBEDTLS_PLATFORM_C
+ * Module:  library/version.c
  *
- * Uncomment to prevent default assignment of standard functions in the
- * platform layer.
+ * This module provides run-time version information.
  */
-//#define MBEDTLS_PLATFORM_NO_STD_FUNCTIONS
+#define MBEDTLS_VERSION_C

 /**
- * \def MBEDTLS_PLATFORM_EXIT_ALT
- *
- * MBEDTLS_PLATFORM_XXX_ALT: Uncomment a macro to let Mbed TLS support the
- * function in the platform abstraction layer.
- *
- * Example: In case you uncomment MBEDTLS_PLATFORM_PRINTF_ALT, Mbed TLS will
- * provide a function "mbedtls_platform_set_printf()" that allows you to set an
- * alternative printf function pointer.
- *
- * All these define require MBEDTLS_PLATFORM_C to be defined!
- *
- * \note MBEDTLS_PLATFORM_SNPRINTF_ALT is required on Windows;
- * it will be enabled automatically by check_config.h
+ * \def MBEDTLS_VERSION_FEATURES
  *
- * \warning MBEDTLS_PLATFORM_XXX_ALT cannot be defined at the same time as
- * MBEDTLS_PLATFORM_XXX_MACRO!
+ * Allow run-time checking of compile-time enabled features. Thus allowing users
+ * to check at run-time if the library is for instance compiled with threading
+ * support via mbedtls_version_check_feature().
  *
- * Requires: MBEDTLS_PLATFORM_TIME_ALT requires MBEDTLS_HAVE_TIME
+ * Requires: MBEDTLS_VERSION_C
  *
- * Uncomment a macro to enable alternate implementation of specific base
- * platform function
- */
-//#define MBEDTLS_PLATFORM_SETBUF_ALT
-//#define MBEDTLS_PLATFORM_EXIT_ALT
-//#define MBEDTLS_PLATFORM_TIME_ALT
-//#define MBEDTLS_PLATFORM_FPRINTF_ALT
-//#define MBEDTLS_PLATFORM_PRINTF_ALT
-//#define MBEDTLS_PLATFORM_SNPRINTF_ALT
-//#define MBEDTLS_PLATFORM_VSNPRINTF_ALT
-//#define MBEDTLS_PLATFORM_NV_SEED_ALT
-//#define MBEDTLS_PLATFORM_SETUP_TEARDOWN_ALT
-//#define MBEDTLS_PLATFORM_MS_TIME_ALT
-
-/**
- * Uncomment the macro to let Mbed TLS use your alternate implementation of
- * mbedtls_platform_gmtime_r(). This replaces the default implementation in
- * platform_util.c.
- *
- * gmtime() is not a thread-safe function as defined in the C standard. The
- * library will try to use safer implementations of this function, such as
- * gmtime_r() when available. However, if Mbed TLS cannot identify the target
- * system, the implementation of mbedtls_platform_gmtime_r() will default to
- * using the standard gmtime(). In this case, calls from the library to
- * gmtime() will be guarded by the global mutex mbedtls_threading_gmtime_mutex
- * if MBEDTLS_THREADING_C is enabled. We recommend that calls from outside the
- * library are also guarded with this mutex to avoid race conditions. However,
- * if the macro MBEDTLS_PLATFORM_GMTIME_R_ALT is defined, Mbed TLS will
- * unconditionally use the implementation for mbedtls_platform_gmtime_r()
- * supplied at compile time.
- */
-//#define MBEDTLS_PLATFORM_GMTIME_R_ALT
-
-/**
- * Uncomment the macro to let Mbed TLS use your alternate implementation of
- * mbedtls_platform_zeroize(), to wipe sensitive data in memory. This replaces
- * the default implementation in platform_util.c.
- *
- * By default, the library uses a system function such as memset_s()
- * (optional feature of C11), explicit_bzero() (BSD and compatible), or
- * SecureZeroMemory (Windows). If no such function is detected, the library
- * falls back to a plain C implementation. Compilers are technically
- * permitted to optimize this implementation out, meaning that the memory is
- * not actually wiped. The library tries to prevent that, but the C language
- * makes it impossible to guarantee that the memory will always be wiped.
- *
- * If your platform provides a guaranteed method to wipe memory which
- * `platform_util.c` does not detect, define this macro to the name of
- * a function that takes two arguments, a `void *` pointer and a length,
- * and wipes that many bytes starting at the specified address. For example,
- * if your platform has explicit_bzero() but `platform_util.c` does not
- * detect its presence, define `MBEDTLS_PLATFORM_ZEROIZE_ALT` to be
- * `explicit_bzero` to use that function as mbedtls_platform_zeroize().
+ * Comment this to disable run-time checking and save ROM space
  */
-//#define MBEDTLS_PLATFORM_ZEROIZE_ALT
+#define MBEDTLS_VERSION_FEATURES

 /**
- * \def MBEDTLS_DEPRECATED_WARNING
+ * \def MBEDTLS_CONFIG_FILE
  *
- * Mark deprecated functions and features so that they generate a warning if
- * used. Functionality deprecated in one version will usually be removed in the
- * next version. You can enable this to help you prepare the transition to a
- * new major version by making sure your code is not using this functionality.
+ * If defined, this is a header which will be included instead of
+ * `"mbedtls/mbedtls_config.h"`.
+ * This header file specifies the compile-time configuration of Mbed TLS.
+ * Unlike other configuration options, this one must be defined on the
+ * compiler command line: a definition in `mbedtls_config.h` would have
+ * no effect.
  *
- * This only works with GCC and Clang. With other compilers, you may want to
- * use MBEDTLS_DEPRECATED_REMOVED
+ * This macro is expanded after an <tt>\#include</tt> directive. This is a popular but
+ * non-standard feature of the C language, so this feature is only available
+ * with compilers that perform macro expansion on an <tt>\#include</tt> line.
  *
- * Uncomment to get warnings on using deprecated functions and features.
+ * The value of this symbol is typically a path in double quotes, either
+ * absolute or relative to a directory on the include search path.
  */
-//#define MBEDTLS_DEPRECATED_WARNING
+//#define MBEDTLS_CONFIG_FILE "mbedtls/mbedtls_config.h"

 /**
- * \def MBEDTLS_DEPRECATED_REMOVED
+ * \def MBEDTLS_USER_CONFIG_FILE
+ *
+ * If defined, this is a header which will be included after
+ * `"mbedtls/mbedtls_config.h"` or #MBEDTLS_CONFIG_FILE.
+ * This allows you to modify the default configuration, including the ability
+ * to undefine options that are enabled by default.
  *
- * Remove deprecated functions and features so that they generate an error if
- * used. Functionality deprecated in one version will usually be removed in the
- * next version. You can enable this to help you prepare the transition to a
- * new major version by making sure your code is not using this functionality.
+ * This macro is expanded after an <tt>\#include</tt> directive. This is a popular but
+ * non-standard feature of the C language, so this feature is only available
+ * with compilers that perform macro expansion on an <tt>\#include</tt> line.
  *
- * Uncomment to get errors on using deprecated functions and features.
+ * The value of this symbol is typically a path in double quotes, either
+ * absolute or relative to a directory on the include search path.
  */
-//#define MBEDTLS_DEPRECATED_REMOVED
+//#define MBEDTLS_USER_CONFIG_FILE "/dev/null"

-/** \} name SECTION: System support */
+/** \} name SECTION: General configuration options */

 /**
- * \name SECTION: Mbed TLS feature support
+ * \name SECTION: TLS feature selection
  *
  * This section sets support for features that are or are not needed
  * within the modules that are enabled.
@@ -340,3899 +192,678 @@
  */

 /**
- * \def MBEDTLS_TIMING_ALT
+ * \def MBEDTLS_SSL_NULL_CIPHERSUITES
  *
- * Uncomment to provide your own alternate implementation for
- * mbedtls_timing_get_timer(), mbedtls_set_alarm(), mbedtls_set/get_delay()
+ * Enable ciphersuites without encryption.
  *
- * Only works if you have MBEDTLS_TIMING_C enabled.
+ * Warning: Only do so when you know what you are doing. This allows for
+ * channels without any encryption. All data are transmitted in clear.
  *
- * You will need to provide a header "timing_alt.h" and an implementation at
- * compile time.
+ * Uncomment this macro to enable the NULL ciphersuites
  */
-//#define MBEDTLS_TIMING_ALT
+//#define MBEDTLS_SSL_NULL_CIPHERSUITES

 /**
- * \def MBEDTLS_AES_ALT
- *
- * MBEDTLS__MODULE_NAME__ALT: Uncomment a macro to let Mbed TLS use your
- * alternate core implementation of a symmetric crypto, an arithmetic or hash
- * module (e.g. platform specific assembly optimized implementations). Keep
- * in mind that the function prototypes should remain the same.
- *
- * This replaces the whole module. If you only want to replace one of the
- * functions, use one of the MBEDTLS__FUNCTION_NAME__ALT flags.
- *
- * Example: In case you uncomment MBEDTLS_AES_ALT, Mbed TLS will no longer
- * provide the "struct mbedtls_aes_context" definition and omit the base
- * function declarations and implementations. "aes_alt.h" will be included from
- * "aes.h" to include the new function definitions.
+ * \def MBEDTLS_DEBUG_C
  *
- * Uncomment a macro to enable alternate implementation of the corresponding
- * module.
+ * Enable the debug functions.
  *
- * \warning   MD5, DES and SHA-1 are considered weak and their
- *            use constitutes a security risk. If possible, we recommend
- *            avoiding dependencies on them, and considering stronger message
- *            digests and ciphers instead.
+ * Module:  library/debug.c
+ * Caller:  library/ssl_msg.c
+ *          library/ssl_tls.c
+ *          library/ssl_tls12_*.c
+ *          library/ssl_tls13_*.c
  *
+ * This module provides debugging functions.
  */
-//#define MBEDTLS_AES_ALT
-//#define MBEDTLS_ARIA_ALT
-//#define MBEDTLS_CAMELLIA_ALT
-//#define MBEDTLS_CCM_ALT
-//#define MBEDTLS_CHACHA20_ALT
-//#define MBEDTLS_CHACHAPOLY_ALT
-//#define MBEDTLS_CMAC_ALT
-//#define MBEDTLS_DES_ALT
-//#define MBEDTLS_DHM_ALT
-//#define MBEDTLS_ECJPAKE_ALT
-//#define MBEDTLS_GCM_ALT
-//#define MBEDTLS_NIST_KW_ALT
-//#define MBEDTLS_MD5_ALT
-//#define MBEDTLS_POLY1305_ALT
-//#define MBEDTLS_RIPEMD160_ALT
-//#define MBEDTLS_RSA_ALT
-//#define MBEDTLS_SHA1_ALT
-//#define MBEDTLS_SHA256_ALT
-//#define MBEDTLS_SHA512_ALT
-
-/*
- * When replacing the elliptic curve module, please consider, that it is
- * implemented with two .c files:
- *      - ecp.c
- *      - ecp_curves.c
- * You can replace them very much like all the other MBEDTLS__MODULE_NAME__ALT
- * macros as described above. The only difference is that you have to make sure
- * that you provide functionality for both .c files.
- */
-//#define MBEDTLS_ECP_ALT
+#define MBEDTLS_DEBUG_C

 /**
- * \def MBEDTLS_SHA256_PROCESS_ALT
- *
- * MBEDTLS__FUNCTION_NAME__ALT: Uncomment a macro to let Mbed TLS use you
- * alternate core implementation of symmetric crypto or hash function. Keep in
- * mind that function prototypes should remain the same.
- *
- * This replaces only one function. The header file from Mbed TLS is still
- * used, in contrast to the MBEDTLS__MODULE_NAME__ALT flags.
- *
- * Example: In case you uncomment MBEDTLS_SHA256_PROCESS_ALT, Mbed TLS will
- * no longer provide the mbedtls_sha1_process() function, but it will still provide
- * the other function (using your mbedtls_sha1_process() function) and the definition
- * of mbedtls_sha1_context, so your implementation of mbedtls_sha1_process must be compatible
- * with this definition.
- *
- * \note If you use the AES_xxx_ALT macros, then it is recommended to also set
- *       MBEDTLS_AES_ROM_TABLES in order to help the linker garbage-collect the AES
- *       tables.
- *
- * Uncomment a macro to enable alternate implementation of the corresponding
- * function.
+ * \def MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED
  *
- * \warning   MD5, DES and SHA-1 are considered weak and their use
- *            constitutes a security risk. If possible, we recommend avoiding
- *            dependencies on them, and considering stronger message digests
- *            and ciphers instead.
+ * Enable the ECDHE-ECDSA based ciphersuite modes in SSL / TLS.
  *
- * \warning   If both MBEDTLS_ECDSA_SIGN_ALT and MBEDTLS_ECDSA_DETERMINISTIC are
- *            enabled, then the deterministic ECDH signature functions pass the
- *            the static HMAC-DRBG as RNG to mbedtls_ecdsa_sign(). Therefore
- *            alternative implementations should use the RNG only for generating
- *            the ephemeral key and nothing else. If this is not possible, then
- *            MBEDTLS_ECDSA_DETERMINISTIC should be disabled and an alternative
- *            implementation should be provided for mbedtls_ecdsa_sign_det_ext().
+ * Requires: PSA_WANT_ALG_ECDH
+ *           PSA_WANT_ALG_ECDSA
+ *           MBEDTLS_X509_CRT_PARSE_C
  *
+ * This enables the following ciphersuites (if other requisites are
+ * enabled as well):
+ *      MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
+ *      MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384
+ *      MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA
+ *      MBEDTLS_TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_GCM_SHA384
+ *      MBEDTLS_TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_CBC_SHA384
+ *      MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
+ *      MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256
+ *      MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA
+ *      MBEDTLS_TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_GCM_SHA256
+ *      MBEDTLS_TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_CBC_SHA256
  */
-//#define MBEDTLS_MD5_PROCESS_ALT
-//#define MBEDTLS_RIPEMD160_PROCESS_ALT
-//#define MBEDTLS_SHA1_PROCESS_ALT
-//#define MBEDTLS_SHA256_PROCESS_ALT
-//#define MBEDTLS_SHA512_PROCESS_ALT
-//#define MBEDTLS_DES_SETKEY_ALT
-//#define MBEDTLS_DES_CRYPT_ECB_ALT
-//#define MBEDTLS_DES3_CRYPT_ECB_ALT
-//#define MBEDTLS_AES_SETKEY_ENC_ALT
-//#define MBEDTLS_AES_SETKEY_DEC_ALT
-//#define MBEDTLS_AES_ENCRYPT_ALT
-//#define MBEDTLS_AES_DECRYPT_ALT
-//#define MBEDTLS_ECDH_GEN_PUBLIC_ALT
-//#define MBEDTLS_ECDH_COMPUTE_SHARED_ALT
-//#define MBEDTLS_ECDSA_VERIFY_ALT
-//#define MBEDTLS_ECDSA_SIGN_ALT
-//#define MBEDTLS_ECDSA_GENKEY_ALT
+#define MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED

 /**
- * \def MBEDTLS_ECP_INTERNAL_ALT
- *
- * Expose a part of the internal interface of the Elliptic Curve Point module.
- *
- * MBEDTLS_ECP__FUNCTION_NAME__ALT: Uncomment a macro to let Mbed TLS use your
- * alternative core implementation of elliptic curve arithmetic. Keep in mind
- * that function prototypes should remain the same.
- *
- * This partially replaces one function. The header file from Mbed TLS is still
- * used, in contrast to the MBEDTLS_ECP_ALT flag. The original implementation
- * is still present and it is used for group structures not supported by the
- * alternative.
- *
- * The original implementation can in addition be removed by setting the
- * MBEDTLS_ECP_NO_FALLBACK option, in which case any function for which the
- * corresponding MBEDTLS_ECP__FUNCTION_NAME__ALT macro is defined will not be
- * able to fallback to curves not supported by the alternative implementation.
- *
- * Any of these options become available by defining MBEDTLS_ECP_INTERNAL_ALT
- * and implementing the following functions:
- *      unsigned char mbedtls_internal_ecp_grp_capable(
- *          const mbedtls_ecp_group *grp )
- *      int  mbedtls_internal_ecp_init( const mbedtls_ecp_group *grp )
- *      void mbedtls_internal_ecp_free( const mbedtls_ecp_group *grp )
- * The mbedtls_internal_ecp_grp_capable function should return 1 if the
- * replacement functions implement arithmetic for the given group and 0
- * otherwise.
- * The functions mbedtls_internal_ecp_init and mbedtls_internal_ecp_free are
- * called before and after each point operation and provide an opportunity to
- * implement optimized set up and tear down instructions.
- *
- * Example: In case you set MBEDTLS_ECP_INTERNAL_ALT and
- * MBEDTLS_ECP_DOUBLE_JAC_ALT, Mbed TLS will still provide the ecp_double_jac()
- * function, but will use your mbedtls_internal_ecp_double_jac() if the group
- * for the operation is supported by your implementation (i.e. your
- * mbedtls_internal_ecp_grp_capable() function returns 1 for this group). If the
- * group is not supported by your implementation, then the original Mbed TLS
- * implementation of ecp_double_jac() is used instead, unless this fallback
- * behaviour is disabled by setting MBEDTLS_ECP_NO_FALLBACK (in which case
- * ecp_double_jac() will return MBEDTLS_ERR_ECP_FEATURE_UNAVAILABLE).
- *
- * The function prototypes and the definition of mbedtls_ecp_group and
- * mbedtls_ecp_point will not change based on MBEDTLS_ECP_INTERNAL_ALT, so your
- * implementation of mbedtls_internal_ecp__function_name__ must be compatible
- * with their definitions.
- *
- * Uncomment a macro to enable alternate implementation of the corresponding
- * function.
+ * \def MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED
+ *
+ * Enable the ECDHE-PSK based ciphersuite modes in SSL / TLS.
+ *
+ * Requires: PSA_WANT_ALG_ECDH
+ *
+ * This enables the following ciphersuites (if other requisites are
+ * enabled as well):
+ *      MBEDTLS_TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA384
+ *      MBEDTLS_TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA
+ *      MBEDTLS_TLS_ECDHE_PSK_WITH_CAMELLIA_256_CBC_SHA384
+ *      MBEDTLS_TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA256
+ *      MBEDTLS_TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA
+ *      MBEDTLS_TLS_ECDHE_PSK_WITH_CAMELLIA_128_CBC_SHA256
  */
-/* Required for all the functions in this section */
-//#define MBEDTLS_ECP_INTERNAL_ALT
-/* Turn off software fallback for curves not supported in hardware */
-//#define MBEDTLS_ECP_NO_FALLBACK
-/* Support for Weierstrass curves with Jacobi representation */
-//#define MBEDTLS_ECP_RANDOMIZE_JAC_ALT
-//#define MBEDTLS_ECP_ADD_MIXED_ALT
-//#define MBEDTLS_ECP_DOUBLE_JAC_ALT
-//#define MBEDTLS_ECP_NORMALIZE_JAC_MANY_ALT
-//#define MBEDTLS_ECP_NORMALIZE_JAC_ALT
-/* Support for curves with Montgomery arithmetic */
-//#define MBEDTLS_ECP_DOUBLE_ADD_MXZ_ALT
-//#define MBEDTLS_ECP_RANDOMIZE_MXZ_ALT
-//#define MBEDTLS_ECP_NORMALIZE_MXZ_ALT
+#define MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED

 /**
- * \def MBEDTLS_ENTROPY_HARDWARE_ALT
+ * \def MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED
  *
- * Uncomment this macro to let Mbed TLS use your own implementation of a
- * hardware entropy collector.
+ * Enable the ECDHE-RSA based ciphersuite modes in SSL / TLS.
  *
- * Your function must be called \c mbedtls_hardware_poll(), have the same
- * prototype as declared in library/entropy_poll.h, and accept NULL as first
- * argument.
+ * Requires: PSA_WANT_ALG_ECDH
+ *           PSA_WANT_ALG_RSA_PKCS1V15_SIGN
+ *           MBEDTLS_X509_CRT_PARSE_C
  *
- * Uncomment to use your own hardware entropy collector.
+ * This enables the following ciphersuites (if other requisites are
+ * enabled as well):
+ *      MBEDTLS_TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
+ *      MBEDTLS_TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384
+ *      MBEDTLS_TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA
+ *      MBEDTLS_TLS_ECDHE_RSA_WITH_CAMELLIA_256_GCM_SHA384
+ *      MBEDTLS_TLS_ECDHE_RSA_WITH_CAMELLIA_256_CBC_SHA384
+ *      MBEDTLS_TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
+ *      MBEDTLS_TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
+ *      MBEDTLS_TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
+ *      MBEDTLS_TLS_ECDHE_RSA_WITH_CAMELLIA_128_GCM_SHA256
+ *      MBEDTLS_TLS_ECDHE_RSA_WITH_CAMELLIA_128_CBC_SHA256
  */
-//#define MBEDTLS_ENTROPY_HARDWARE_ALT
+#define MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED

 /**
- * \def MBEDTLS_AES_ROM_TABLES
+ * \def MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED
  *
- * Use precomputed AES tables stored in ROM.
+ * Enable the ECJPAKE based ciphersuite modes in SSL / TLS.
  *
- * Uncomment this macro to use precomputed AES tables stored in ROM.
- * Comment this macro to generate AES tables in RAM at runtime.
+ * \warning This is currently experimental. EC J-PAKE support is based on the
+ * Thread v1.0.0 specification; incompatible changes to the specification
+ * might still happen. For this reason, this is disabled by default.
  *
- * Tradeoff: Using precomputed ROM tables reduces RAM usage by ~8kb
- * (or ~2kb if \c MBEDTLS_AES_FEWER_TABLES is used) and reduces the
- * initialization time before the first AES operation can be performed.
- * It comes at the cost of additional ~8kb ROM use (resp. ~2kb if \c
- * MBEDTLS_AES_FEWER_TABLES below is used), and potentially degraded
- * performance if ROM access is slower than RAM access.
+ * Requires: PSA_WANT_ALG_JPAKE
+ *           PSA_WANT_ALG_SHA_256
+ *           PSA_WANT_ECC_SECP_R1_256
  *
- * This option is independent of \c MBEDTLS_AES_FEWER_TABLES.
+ * This enables the following ciphersuites (if other requisites are
+ * enabled as well):
+ *      MBEDTLS_TLS_ECJPAKE_WITH_AES_128_CCM_8
  */
-//#define MBEDTLS_AES_ROM_TABLES
+//#define MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED

 /**
- * \def MBEDTLS_AES_FEWER_TABLES
- *
- * Use less ROM/RAM for AES tables.
- *
- * Uncommenting this macro omits 75% of the AES tables from
- * ROM / RAM (depending on the value of \c MBEDTLS_AES_ROM_TABLES)
- * by computing their values on the fly during operations
- * (the tables are entry-wise rotations of one another).
+ * \def MBEDTLS_KEY_EXCHANGE_PSK_ENABLED
  *
- * Tradeoff: Uncommenting this reduces the RAM / ROM footprint
- * by ~6kb but at the cost of more arithmetic operations during
- * runtime. Specifically, one has to compare 4 accesses within
- * different tables to 4 accesses with additional arithmetic
- * operations within the same table. The performance gain/loss
- * depends on the system and memory details.
+ * Enable the PSK based ciphersuite modes in SSL / TLS.
  *
- * This option is independent of \c MBEDTLS_AES_ROM_TABLES.
+ * This enables the following ciphersuites (if other requisites are
+ * enabled as well):
+ *      MBEDTLS_TLS_PSK_WITH_AES_256_GCM_SHA384
+ *      MBEDTLS_TLS_PSK_WITH_AES_256_CBC_SHA384
+ *      MBEDTLS_TLS_PSK_WITH_AES_256_CBC_SHA
+ *      MBEDTLS_TLS_PSK_WITH_CAMELLIA_256_GCM_SHA384
+ *      MBEDTLS_TLS_PSK_WITH_CAMELLIA_256_CBC_SHA384
+ *      MBEDTLS_TLS_PSK_WITH_AES_128_GCM_SHA256
+ *      MBEDTLS_TLS_PSK_WITH_AES_128_CBC_SHA256
+ *      MBEDTLS_TLS_PSK_WITH_AES_128_CBC_SHA
+ *      MBEDTLS_TLS_PSK_WITH_CAMELLIA_128_GCM_SHA256
+ *      MBEDTLS_TLS_PSK_WITH_CAMELLIA_128_CBC_SHA256
  */
-//#define MBEDTLS_AES_FEWER_TABLES
+#define MBEDTLS_KEY_EXCHANGE_PSK_ENABLED

 /**
- * \def MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
+ * \def MBEDTLS_SSL_ALL_ALERT_MESSAGES
  *
- * Use only 128-bit keys in AES operations to save ROM.
+ * Enable sending of alert messages in case of encountered errors as per RFC.
+ * If you choose not to send the alert messages, Mbed TLS can still communicate
+ * with other servers, only debugging of failures is harder.
  *
- * Uncomment this macro to remove support for AES operations that use 192-
- * or 256-bit keys.
+ * The advantage of not sending alert messages, is that no information is given
+ * about reasons for failures thus preventing adversaries of gaining intel.
  *
- * Uncommenting this macro reduces the size of AES code by ~300 bytes
- * on v8-M/Thumb2.
+ * Enable sending of all alert messages
+ */
+#define MBEDTLS_SSL_ALL_ALERT_MESSAGES
+
+/**
+ * \def MBEDTLS_SSL_ALPN
  *
- * Module:  library/aes.c
+ * Enable support for RFC 7301 Application Layer Protocol Negotiation.
  *
- * Requires: MBEDTLS_AES_C
+ * Comment this macro to disable support for ALPN.
  */
-//#define MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
+#define MBEDTLS_SSL_ALPN

-/*
- * Disable plain C implementation for AES.
+/**
+ * \def MBEDTLS_SSL_ASYNC_PRIVATE
  *
- * When the plain C implementation is enabled, and an implementation using a
- * special CPU feature (such as MBEDTLS_AESCE_C) is also enabled, runtime
- * detection will be used to select between them.
+ * Enable asynchronous external private key operations in SSL. This allows
+ * you to configure an SSL connection to call an external cryptographic
+ * module to perform private key operations instead of performing the
+ * operation inside the library.
  *
- * If only one implementation is present, runtime detection will not be used.
- * This configuration will crash at runtime if running on a CPU without the
- * necessary features. It will not build unless at least one of MBEDTLS_AESCE_C
- * and/or MBEDTLS_AESNI_C is enabled & present in the build.
+ * Requires: MBEDTLS_X509_CRT_PARSE_C
  */
-//#define MBEDTLS_AES_USE_HARDWARE_ONLY
+//#define MBEDTLS_SSL_ASYNC_PRIVATE

 /**
- * \def MBEDTLS_CAMELLIA_SMALL_MEMORY
+ * \def MBEDTLS_SSL_CACHE_C
+ *
+ * Enable simple SSL cache implementation.
  *
- * Use less ROM for the Camellia implementation (saves about 768 bytes).
+ * Module:  library/ssl_cache.c
+ * Caller:
  *
- * Uncomment this macro to use less memory for Camellia.
+ * Requires: MBEDTLS_SSL_CACHE_C
  */
-//#define MBEDTLS_CAMELLIA_SMALL_MEMORY
+#define MBEDTLS_SSL_CACHE_C

 /**
- * \def MBEDTLS_CHECK_RETURN_WARNING
+ * \def MBEDTLS_SSL_CLI_C
  *
- * If this macro is defined, emit a compile-time warning if application code
- * calls a function without checking its return value, but the return value
- * should generally be checked in portable applications.
+ * Enable the SSL/TLS client code.
  *
- * This is only supported on platforms where #MBEDTLS_CHECK_RETURN is
- * implemented. Otherwise this option has no effect.
+ * Module:  library/ssl*_client.c
+ * Caller:
  *
- * Uncomment to get warnings on using fallible functions without checking
- * their return value.
+ * Requires: MBEDTLS_SSL_TLS_C
  *
- * \note  This feature is a work in progress.
- *        Warnings will be added to more functions in the future.
+ * \warning You must call psa_crypto_init() before doing any TLS operations.
  *
- * \note  A few functions are considered critical, and ignoring the return
- *        value of these functions will trigger a warning even if this
- *        macro is not defined. To completely disable return value check
- *        warnings, define #MBEDTLS_CHECK_RETURN with an empty expansion.
+ * This module is required for SSL/TLS client support.
  */
-//#define MBEDTLS_CHECK_RETURN_WARNING
+#define MBEDTLS_SSL_CLI_C

 /**
- * \def MBEDTLS_CIPHER_MODE_CBC
+ * \def MBEDTLS_SSL_CONTEXT_SERIALIZATION
  *
- * Enable Cipher Block Chaining mode (CBC) for symmetric ciphers.
- */
-#define MBEDTLS_CIPHER_MODE_CBC
-
-/**
- * \def MBEDTLS_CIPHER_MODE_CFB
- *
- * Enable Cipher Feedback mode (CFB) for symmetric ciphers.
- */
-#define MBEDTLS_CIPHER_MODE_CFB
-
-/**
- * \def MBEDTLS_CIPHER_MODE_CTR
- *
- * Enable Counter Block Cipher mode (CTR) for symmetric ciphers.
- */
-#define MBEDTLS_CIPHER_MODE_CTR
-
-/**
- * \def MBEDTLS_CIPHER_MODE_OFB
- *
- * Enable Output Feedback mode (OFB) for symmetric ciphers.
- */
-#define MBEDTLS_CIPHER_MODE_OFB
-
-/**
- * \def MBEDTLS_CIPHER_MODE_XTS
- *
- * Enable Xor-encrypt-xor with ciphertext stealing mode (XTS) for AES.
- */
-#define MBEDTLS_CIPHER_MODE_XTS
-
-/**
- * \def MBEDTLS_CIPHER_NULL_CIPHER
- *
- * Enable NULL cipher.
- * Warning: Only do so when you know what you are doing. This allows for
- * encryption or channels without any security!
- *
- * To enable the following ciphersuites:
- *      MBEDTLS_TLS_ECDH_ECDSA_WITH_NULL_SHA
- *      MBEDTLS_TLS_ECDH_RSA_WITH_NULL_SHA
- *      MBEDTLS_TLS_ECDHE_ECDSA_WITH_NULL_SHA
- *      MBEDTLS_TLS_ECDHE_RSA_WITH_NULL_SHA
- *      MBEDTLS_TLS_ECDHE_PSK_WITH_NULL_SHA384
- *      MBEDTLS_TLS_ECDHE_PSK_WITH_NULL_SHA256
- *      MBEDTLS_TLS_ECDHE_PSK_WITH_NULL_SHA
- *      MBEDTLS_TLS_DHE_PSK_WITH_NULL_SHA384
- *      MBEDTLS_TLS_DHE_PSK_WITH_NULL_SHA256
- *      MBEDTLS_TLS_DHE_PSK_WITH_NULL_SHA
- *      MBEDTLS_TLS_RSA_WITH_NULL_SHA256
- *      MBEDTLS_TLS_RSA_WITH_NULL_SHA
- *      MBEDTLS_TLS_RSA_WITH_NULL_MD5
- *      MBEDTLS_TLS_RSA_PSK_WITH_NULL_SHA384
- *      MBEDTLS_TLS_RSA_PSK_WITH_NULL_SHA256
- *      MBEDTLS_TLS_RSA_PSK_WITH_NULL_SHA
- *      MBEDTLS_TLS_PSK_WITH_NULL_SHA384
- *      MBEDTLS_TLS_PSK_WITH_NULL_SHA256
- *      MBEDTLS_TLS_PSK_WITH_NULL_SHA
- *
- * Uncomment this macro to enable the NULL cipher and ciphersuites
- */
-//#define MBEDTLS_CIPHER_NULL_CIPHER
-
-/**
- * \def MBEDTLS_CIPHER_PADDING_PKCS7
- *
- * MBEDTLS_CIPHER_PADDING_XXX: Uncomment or comment macros to add support for
- * specific padding modes in the cipher layer with cipher modes that support
- * padding (e.g. CBC)
- *
- * If you disable all padding modes, only full blocks can be used with CBC.
- *
- * Enable padding modes in the cipher layer.
- */
-#define MBEDTLS_CIPHER_PADDING_PKCS7
-#define MBEDTLS_CIPHER_PADDING_ONE_AND_ZEROS
-#define MBEDTLS_CIPHER_PADDING_ZEROS_AND_LEN
-#define MBEDTLS_CIPHER_PADDING_ZEROS
-
-/** \def MBEDTLS_CTR_DRBG_USE_128_BIT_KEY
- *
- * Uncomment this macro to use a 128-bit key in the CTR_DRBG module.
- * Without this, CTR_DRBG uses a 256-bit key
- * unless \c MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH is set.
- */
-//#define MBEDTLS_CTR_DRBG_USE_128_BIT_KEY
-
-/**
- * Enable the verified implementations of ECDH primitives from Project Everest
- * (currently only Curve25519). This feature changes the layout of ECDH
- * contexts and therefore is a compatibility break for applications that access
- * fields of a mbedtls_ecdh_context structure directly. See also
- * MBEDTLS_ECDH_LEGACY_CONTEXT in include/mbedtls/ecdh.h.
- *
- * The Everest code is provided under the Apache 2.0 license only; therefore enabling this
- * option is not compatible with taking the library under the GPL v2.0-or-later license.
- */
-//#define MBEDTLS_ECDH_VARIANT_EVEREST_ENABLED
-
-/**
- * \def MBEDTLS_ECP_DP_SECP192R1_ENABLED
- *
- * MBEDTLS_ECP_XXXX_ENABLED: Enables specific curves within the Elliptic Curve
- * module.  By default all supported curves are enabled.
- *
- * Comment macros to disable the curve and functions for it
- */
-/* Short Weierstrass curves (supporting ECP, ECDH, ECDSA) */
-#define MBEDTLS_ECP_DP_SECP192R1_ENABLED
-#define MBEDTLS_ECP_DP_SECP224R1_ENABLED
-#define MBEDTLS_ECP_DP_SECP256R1_ENABLED
-#define MBEDTLS_ECP_DP_SECP384R1_ENABLED
-#define MBEDTLS_ECP_DP_SECP521R1_ENABLED
-#define MBEDTLS_ECP_DP_SECP192K1_ENABLED
-#define MBEDTLS_ECP_DP_SECP224K1_ENABLED
-#define MBEDTLS_ECP_DP_SECP256K1_ENABLED
-#define MBEDTLS_ECP_DP_BP256R1_ENABLED
-#define MBEDTLS_ECP_DP_BP384R1_ENABLED
-#define MBEDTLS_ECP_DP_BP512R1_ENABLED
-/* Montgomery curves (supporting ECP) */
-#define MBEDTLS_ECP_DP_CURVE25519_ENABLED
-#define MBEDTLS_ECP_DP_CURVE448_ENABLED
-
-/**
- * \def MBEDTLS_ECP_NIST_OPTIM
- *
- * Enable specific 'modulo p' routines for each NIST prime.
- * Depending on the prime and architecture, makes operations 4 to 8 times
- * faster on the corresponding curve.
- *
- * Comment this macro to disable NIST curves optimisation.
- */
-#define MBEDTLS_ECP_NIST_OPTIM
-
-/**
- * \def MBEDTLS_ECP_RESTARTABLE
- *
- * Enable "non-blocking" ECC operations that can return early and be resumed.
- *
- * This allows various functions to pause by returning
- * #MBEDTLS_ERR_ECP_IN_PROGRESS (or, for functions in the SSL module,
- * #MBEDTLS_ERR_SSL_CRYPTO_IN_PROGRESS) and then be called later again in
- * order to further progress and eventually complete their operation. This is
- * controlled through mbedtls_ecp_set_max_ops() which limits the maximum
- * number of ECC operations a function may perform before pausing; see
- * mbedtls_ecp_set_max_ops() for more information.
- *
- * This is useful in non-threaded environments if you want to avoid blocking
- * for too long on ECC (and, hence, X.509 or SSL/TLS) operations.
- *
- * This option:
- * - Adds xxx_restartable() variants of existing operations in the
- *   following modules, with corresponding restart context types:
- *   - ECP (for Short Weierstrass curves only): scalar multiplication (mul),
- *     linear combination (muladd);
- *   - ECDSA: signature generation & verification;
- *   - PK: signature generation & verification;
- *   - X509: certificate chain verification.
- * - Adds mbedtls_ecdh_enable_restart() in the ECDH module.
- * - Changes the behaviour of TLS 1.2 clients (not servers) when using the
- *   ECDHE-ECDSA key exchange (not other key exchanges) to make all ECC
- *   computations restartable:
- *   - ECDH operations from the key exchange, only for Short Weierstrass
- *     curves, only when MBEDTLS_USE_PSA_CRYPTO is not enabled.
- *   - verification of the server's key exchange signature;
- *   - verification of the server's certificate chain;
- *   - generation of the client's signature if client authentication is used,
- *     with an ECC key/certificate.
- *
- * \note  In the cases above, the usual SSL/TLS functions, such as
- *        mbedtls_ssl_handshake(), can now return
- *        MBEDTLS_ERR_SSL_CRYPTO_IN_PROGRESS.
- *
- * \note  When this option and MBEDTLS_USE_PSA_CRYPTO are both enabled,
- *        restartable operations in PK, X.509 and TLS (see above) are not
- *        using PSA. On the other hand, ECDH computations in TLS are using
- *        PSA, and are not restartable. These are temporary limitations that
- *        should be lifted in the future.
- *
- * \note  This option only works with the default software implementation of
- *        elliptic curve functionality. It is incompatible with
- *        MBEDTLS_ECP_ALT, MBEDTLS_ECDH_XXX_ALT, MBEDTLS_ECDSA_XXX_ALT.
- *
- * Requires: MBEDTLS_ECP_C
- *
- * Uncomment this macro to enable restartable ECC computations.
- */
-//#define MBEDTLS_ECP_RESTARTABLE
-
-/**
- * Uncomment to enable using new bignum code in the ECC modules.
- *
- * \warning This is currently experimental, incomplete and therefore should not
- * be used in production.
- */
-//#define MBEDTLS_ECP_WITH_MPI_UINT
-
-/**
- * \def MBEDTLS_ECDSA_DETERMINISTIC
- *
- * Enable deterministic ECDSA (RFC 6979).
- * Standard ECDSA is "fragile" in the sense that lack of entropy when signing
- * may result in a compromise of the long-term signing key. This is avoided by
- * the deterministic variant.
- *
- * Requires: MBEDTLS_HMAC_DRBG_C, MBEDTLS_ECDSA_C
- *
- * Comment this macro to disable deterministic ECDSA.
- */
-#define MBEDTLS_ECDSA_DETERMINISTIC
-
-/**
- * \def MBEDTLS_KEY_EXCHANGE_PSK_ENABLED
- *
- * Enable the PSK based ciphersuite modes in SSL / TLS.
- *
- * This enables the following ciphersuites (if other requisites are
- * enabled as well):
- *      MBEDTLS_TLS_PSK_WITH_AES_256_GCM_SHA384
- *      MBEDTLS_TLS_PSK_WITH_AES_256_CBC_SHA384
- *      MBEDTLS_TLS_PSK_WITH_AES_256_CBC_SHA
- *      MBEDTLS_TLS_PSK_WITH_CAMELLIA_256_GCM_SHA384
- *      MBEDTLS_TLS_PSK_WITH_CAMELLIA_256_CBC_SHA384
- *      MBEDTLS_TLS_PSK_WITH_AES_128_GCM_SHA256
- *      MBEDTLS_TLS_PSK_WITH_AES_128_CBC_SHA256
- *      MBEDTLS_TLS_PSK_WITH_AES_128_CBC_SHA
- *      MBEDTLS_TLS_PSK_WITH_CAMELLIA_128_GCM_SHA256
- *      MBEDTLS_TLS_PSK_WITH_CAMELLIA_128_CBC_SHA256
- */
-#define MBEDTLS_KEY_EXCHANGE_PSK_ENABLED
-
-/**
- * \def MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED
- *
- * Enable the DHE-PSK based ciphersuite modes in SSL / TLS.
- *
- * Requires: MBEDTLS_DHM_C
- *
- * This enables the following ciphersuites (if other requisites are
- * enabled as well):
- *      MBEDTLS_TLS_DHE_PSK_WITH_AES_256_GCM_SHA384
- *      MBEDTLS_TLS_DHE_PSK_WITH_AES_256_CBC_SHA384
- *      MBEDTLS_TLS_DHE_PSK_WITH_AES_256_CBC_SHA
- *      MBEDTLS_TLS_DHE_PSK_WITH_CAMELLIA_256_GCM_SHA384
- *      MBEDTLS_TLS_DHE_PSK_WITH_CAMELLIA_256_CBC_SHA384
- *      MBEDTLS_TLS_DHE_PSK_WITH_AES_128_GCM_SHA256
- *      MBEDTLS_TLS_DHE_PSK_WITH_AES_128_CBC_SHA256
- *      MBEDTLS_TLS_DHE_PSK_WITH_AES_128_CBC_SHA
- *      MBEDTLS_TLS_DHE_PSK_WITH_CAMELLIA_128_GCM_SHA256
- *      MBEDTLS_TLS_DHE_PSK_WITH_CAMELLIA_128_CBC_SHA256
- *
- * \warning    Using DHE constitutes a security risk as it
- *             is not possible to validate custom DH parameters.
- *             If possible, it is recommended users should consider
- *             preferring other methods of key exchange.
- *             See dhm.h for more details.
- *
- */
-#define MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED
-
-/**
- * \def MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED
- *
- * Enable the ECDHE-PSK based ciphersuite modes in SSL / TLS.
- *
- * Requires: MBEDTLS_ECDH_C or (MBEDTLS_USE_PSA_CRYPTO and PSA_WANT_ALG_ECDH)
- *
- * This enables the following ciphersuites (if other requisites are
- * enabled as well):
- *      MBEDTLS_TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA384
- *      MBEDTLS_TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA
- *      MBEDTLS_TLS_ECDHE_PSK_WITH_CAMELLIA_256_CBC_SHA384
- *      MBEDTLS_TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA256
- *      MBEDTLS_TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA
- *      MBEDTLS_TLS_ECDHE_PSK_WITH_CAMELLIA_128_CBC_SHA256
- */
-#define MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED
-
-/**
- * \def MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED
- *
- * Enable the RSA-PSK based ciphersuite modes in SSL / TLS.
- *
- * Requires: MBEDTLS_RSA_C, MBEDTLS_PKCS1_V15,
- *           MBEDTLS_X509_CRT_PARSE_C
- *
- * This enables the following ciphersuites (if other requisites are
- * enabled as well):
- *      MBEDTLS_TLS_RSA_PSK_WITH_AES_256_GCM_SHA384
- *      MBEDTLS_TLS_RSA_PSK_WITH_AES_256_CBC_SHA384
- *      MBEDTLS_TLS_RSA_PSK_WITH_AES_256_CBC_SHA
- *      MBEDTLS_TLS_RSA_PSK_WITH_CAMELLIA_256_GCM_SHA384
- *      MBEDTLS_TLS_RSA_PSK_WITH_CAMELLIA_256_CBC_SHA384
- *      MBEDTLS_TLS_RSA_PSK_WITH_AES_128_GCM_SHA256
- *      MBEDTLS_TLS_RSA_PSK_WITH_AES_128_CBC_SHA256
- *      MBEDTLS_TLS_RSA_PSK_WITH_AES_128_CBC_SHA
- *      MBEDTLS_TLS_RSA_PSK_WITH_CAMELLIA_128_GCM_SHA256
- *      MBEDTLS_TLS_RSA_PSK_WITH_CAMELLIA_128_CBC_SHA256
- */
-#define MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED
-
-/**
- * \def MBEDTLS_KEY_EXCHANGE_RSA_ENABLED
- *
- * Enable the RSA-only based ciphersuite modes in SSL / TLS.
- *
- * Requires: MBEDTLS_RSA_C, MBEDTLS_PKCS1_V15,
- *           MBEDTLS_X509_CRT_PARSE_C
- *
- * This enables the following ciphersuites (if other requisites are
- * enabled as well):
- *      MBEDTLS_TLS_RSA_WITH_AES_256_GCM_SHA384
- *      MBEDTLS_TLS_RSA_WITH_AES_256_CBC_SHA256
- *      MBEDTLS_TLS_RSA_WITH_AES_256_CBC_SHA
- *      MBEDTLS_TLS_RSA_WITH_CAMELLIA_256_GCM_SHA384
- *      MBEDTLS_TLS_RSA_WITH_CAMELLIA_256_CBC_SHA256
- *      MBEDTLS_TLS_RSA_WITH_CAMELLIA_256_CBC_SHA
- *      MBEDTLS_TLS_RSA_WITH_AES_128_GCM_SHA256
- *      MBEDTLS_TLS_RSA_WITH_AES_128_CBC_SHA256
- *      MBEDTLS_TLS_RSA_WITH_AES_128_CBC_SHA
- *      MBEDTLS_TLS_RSA_WITH_CAMELLIA_128_GCM_SHA256
- *      MBEDTLS_TLS_RSA_WITH_CAMELLIA_128_CBC_SHA256
- *      MBEDTLS_TLS_RSA_WITH_CAMELLIA_128_CBC_SHA
- */
-#define MBEDTLS_KEY_EXCHANGE_RSA_ENABLED
-
-/**
- * \def MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED
- *
- * Enable the DHE-RSA based ciphersuite modes in SSL / TLS.
- *
- * Requires: MBEDTLS_DHM_C, MBEDTLS_RSA_C, MBEDTLS_PKCS1_V15,
- *           MBEDTLS_X509_CRT_PARSE_C
- *
- * This enables the following ciphersuites (if other requisites are
- * enabled as well):
- *      MBEDTLS_TLS_DHE_RSA_WITH_AES_256_GCM_SHA384
- *      MBEDTLS_TLS_DHE_RSA_WITH_AES_256_CBC_SHA256
- *      MBEDTLS_TLS_DHE_RSA_WITH_AES_256_CBC_SHA
- *      MBEDTLS_TLS_DHE_RSA_WITH_CAMELLIA_256_GCM_SHA384
- *      MBEDTLS_TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA256
- *      MBEDTLS_TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA
- *      MBEDTLS_TLS_DHE_RSA_WITH_AES_128_GCM_SHA256
- *      MBEDTLS_TLS_DHE_RSA_WITH_AES_128_CBC_SHA256
- *      MBEDTLS_TLS_DHE_RSA_WITH_AES_128_CBC_SHA
- *      MBEDTLS_TLS_DHE_RSA_WITH_CAMELLIA_128_GCM_SHA256
- *      MBEDTLS_TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA256
- *      MBEDTLS_TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA
- *
- * \warning    Using DHE constitutes a security risk as it
- *             is not possible to validate custom DH parameters.
- *             If possible, it is recommended users should consider
- *             preferring other methods of key exchange.
- *             See dhm.h for more details.
- *
- */
-#define MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED
-
-/**
- * \def MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED
- *
- * Enable the ECDHE-RSA based ciphersuite modes in SSL / TLS.
- *
- * Requires: MBEDTLS_ECDH_C or (MBEDTLS_USE_PSA_CRYPTO and PSA_WANT_ALG_ECDH)
- *           MBEDTLS_RSA_C
- *           MBEDTLS_PKCS1_V15
- *           MBEDTLS_X509_CRT_PARSE_C
- *
- * This enables the following ciphersuites (if other requisites are
- * enabled as well):
- *      MBEDTLS_TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
- *      MBEDTLS_TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384
- *      MBEDTLS_TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA
- *      MBEDTLS_TLS_ECDHE_RSA_WITH_CAMELLIA_256_GCM_SHA384
- *      MBEDTLS_TLS_ECDHE_RSA_WITH_CAMELLIA_256_CBC_SHA384
- *      MBEDTLS_TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
- *      MBEDTLS_TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
- *      MBEDTLS_TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
- *      MBEDTLS_TLS_ECDHE_RSA_WITH_CAMELLIA_128_GCM_SHA256
- *      MBEDTLS_TLS_ECDHE_RSA_WITH_CAMELLIA_128_CBC_SHA256
- */
-#define MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED
-
-/**
- * \def MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED
- *
- * Enable the ECDHE-ECDSA based ciphersuite modes in SSL / TLS.
- *
- * Requires: MBEDTLS_ECDH_C or (MBEDTLS_USE_PSA_CRYPTO and PSA_WANT_ALG_ECDH)
- *           MBEDTLS_ECDSA_C or (MBEDTLS_USE_PSA_CRYPTO and PSA_WANT_ALG_ECDSA)
- *           MBEDTLS_X509_CRT_PARSE_C
- *
- * This enables the following ciphersuites (if other requisites are
- * enabled as well):
- *      MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
- *      MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384
- *      MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA
- *      MBEDTLS_TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_GCM_SHA384
- *      MBEDTLS_TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_CBC_SHA384
- *      MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
- *      MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256
- *      MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA
- *      MBEDTLS_TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_GCM_SHA256
- *      MBEDTLS_TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_CBC_SHA256
- */
-#define MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED
-
-/**
- * \def MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED
- *
- * Enable the ECDH-ECDSA based ciphersuite modes in SSL / TLS.
- *
- * Requires: MBEDTLS_ECDH_C or (MBEDTLS_USE_PSA_CRYPTO and PSA_WANT_ALG_ECDH)
- *           MBEDTLS_ECDSA_C or (MBEDTLS_USE_PSA_CRYPTO and PSA_WANT_ALG_ECDSA)
- *           MBEDTLS_X509_CRT_PARSE_C
- *
- * This enables the following ciphersuites (if other requisites are
- * enabled as well):
- *      MBEDTLS_TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA
- *      MBEDTLS_TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA
- *      MBEDTLS_TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256
- *      MBEDTLS_TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384
- *      MBEDTLS_TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256
- *      MBEDTLS_TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384
- *      MBEDTLS_TLS_ECDH_ECDSA_WITH_CAMELLIA_128_CBC_SHA256
- *      MBEDTLS_TLS_ECDH_ECDSA_WITH_CAMELLIA_256_CBC_SHA384
- *      MBEDTLS_TLS_ECDH_ECDSA_WITH_CAMELLIA_128_GCM_SHA256
- *      MBEDTLS_TLS_ECDH_ECDSA_WITH_CAMELLIA_256_GCM_SHA384
- */
-#define MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED
-
-/**
- * \def MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED
- *
- * Enable the ECDH-RSA based ciphersuite modes in SSL / TLS.
- *
- * Requires: MBEDTLS_ECDH_C or (MBEDTLS_USE_PSA_CRYPTO and PSA_WANT_ALG_ECDH)
- *           MBEDTLS_RSA_C
- *           MBEDTLS_X509_CRT_PARSE_C
- *
- * This enables the following ciphersuites (if other requisites are
- * enabled as well):
- *      MBEDTLS_TLS_ECDH_RSA_WITH_AES_128_CBC_SHA
- *      MBEDTLS_TLS_ECDH_RSA_WITH_AES_256_CBC_SHA
- *      MBEDTLS_TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256
- *      MBEDTLS_TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384
- *      MBEDTLS_TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256
- *      MBEDTLS_TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384
- *      MBEDTLS_TLS_ECDH_RSA_WITH_CAMELLIA_128_CBC_SHA256
- *      MBEDTLS_TLS_ECDH_RSA_WITH_CAMELLIA_256_CBC_SHA384
- *      MBEDTLS_TLS_ECDH_RSA_WITH_CAMELLIA_128_GCM_SHA256
- *      MBEDTLS_TLS_ECDH_RSA_WITH_CAMELLIA_256_GCM_SHA384
- */
-#define MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED
-
-/**
- * \def MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED
- *
- * Enable the ECJPAKE based ciphersuite modes in SSL / TLS.
- *
- * \warning This is currently experimental. EC J-PAKE support is based on the
- * Thread v1.0.0 specification; incompatible changes to the specification
- * might still happen. For this reason, this is disabled by default.
- *
- * Requires: MBEDTLS_ECJPAKE_C or (MBEDTLS_USE_PSA_CRYPTO and PSA_WANT_ALG_JPAKE)
- *           SHA-256 (via MBEDTLS_SHA256_C or a PSA driver)
- *           MBEDTLS_ECP_DP_SECP256R1_ENABLED
- *
- * \warning If SHA-256 is provided only by a PSA driver, you must call
- * psa_crypto_init() before the first handshake (even if
- * MBEDTLS_USE_PSA_CRYPTO is disabled).
- *
- * This enables the following ciphersuites (if other requisites are
- * enabled as well):
- *      MBEDTLS_TLS_ECJPAKE_WITH_AES_128_CCM_8
- */
-//#define MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED
-
-/**
- * \def MBEDTLS_PK_PARSE_EC_EXTENDED
- *
- * Enhance support for reading EC keys using variants of SEC1 not allowed by
- * RFC 5915 and RFC 5480.
- *
- * Currently this means parsing the SpecifiedECDomain choice of EC
- * parameters (only known groups are supported, not arbitrary domains, to
- * avoid validation issues).
- *
- * Disable if you only need to support RFC 5915 + 5480 key formats.
- */
-#define MBEDTLS_PK_PARSE_EC_EXTENDED
-
-/**
- * \def MBEDTLS_PK_PARSE_EC_COMPRESSED
- *
- * Enable the support for parsing public keys of type Short Weierstrass
- * (MBEDTLS_ECP_DP_SECP_XXX and MBEDTLS_ECP_DP_BP_XXX) which are using the
- * compressed point format. This parsing is done through ECP module's functions.
- *
- * \note As explained in the description of MBEDTLS_ECP_PF_COMPRESSED (in ecp.h)
- *       the only unsupported curves are MBEDTLS_ECP_DP_SECP224R1 and
- *       MBEDTLS_ECP_DP_SECP224K1.
- */
-#define MBEDTLS_PK_PARSE_EC_COMPRESSED
-
-/**
- * \def MBEDTLS_ERROR_STRERROR_DUMMY
- *
- * Enable a dummy error function to make use of mbedtls_strerror() in
- * third party libraries easier when MBEDTLS_ERROR_C is disabled
- * (no effect when MBEDTLS_ERROR_C is enabled).
- *
- * You can safely disable this if MBEDTLS_ERROR_C is enabled, or if you're
- * not using mbedtls_strerror() or error_strerror() in your application.
- *
- * Disable if you run into name conflicts and want to really remove the
- * mbedtls_strerror()
- */
-#define MBEDTLS_ERROR_STRERROR_DUMMY
-
-/**
- * \def MBEDTLS_GENPRIME
- *
- * Enable the prime-number generation code.
- *
- * Requires: MBEDTLS_BIGNUM_C
- */
-#define MBEDTLS_GENPRIME
-
-/**
- * \def MBEDTLS_FS_IO
- *
- * Enable functions that use the filesystem.
- */
-#define MBEDTLS_FS_IO
-
-/**
- * \def MBEDTLS_NO_DEFAULT_ENTROPY_SOURCES
- *
- * Do not add default entropy sources in mbedtls_entropy_init().
- *
- * This is useful to have more control over the added entropy sources in an
- * application.
- *
- * Uncomment this macro to prevent loading of default entropy functions.
- */
-//#define MBEDTLS_NO_DEFAULT_ENTROPY_SOURCES
-
-/**
- * \def MBEDTLS_NO_PLATFORM_ENTROPY
- *
- * Do not use built-in platform entropy functions.
- * This is useful if your platform does not support
- * standards like the /dev/urandom or Windows CryptoAPI.
- *
- * Uncomment this macro to disable the built-in platform entropy functions.
- */
-//#define MBEDTLS_NO_PLATFORM_ENTROPY
-
-/**
- * \def MBEDTLS_ENTROPY_FORCE_SHA256
- *
- * Force the entropy accumulator to use a SHA-256 accumulator instead of the
- * default SHA-512 based one (if both are available).
- *
- * Requires: MBEDTLS_SHA256_C
- *
- * On 32-bit systems SHA-256 can be much faster than SHA-512. Use this option
- * if you have performance concerns.
- *
- * This option is only useful if both MBEDTLS_SHA256_C and
- * MBEDTLS_SHA512_C are defined. Otherwise the available hash module is used.
- */
-//#define MBEDTLS_ENTROPY_FORCE_SHA256
-
-/**
- * \def MBEDTLS_ENTROPY_NV_SEED
- *
- * Enable the non-volatile (NV) seed file-based entropy source.
- * (Also enables the NV seed read/write functions in the platform layer)
- *
- * This is crucial (if not required) on systems that do not have a
- * cryptographic entropy source (in hardware or kernel) available.
- *
- * Requires: MBEDTLS_ENTROPY_C, MBEDTLS_PLATFORM_C
- *
- * \note The read/write functions that are used by the entropy source are
- *       determined in the platform layer, and can be modified at runtime and/or
- *       compile-time depending on the flags (MBEDTLS_PLATFORM_NV_SEED_*) used.
- *
- * \note If you use the default implementation functions that read a seedfile
- *       with regular fopen(), please make sure you make a seedfile with the
- *       proper name (defined in MBEDTLS_PLATFORM_STD_NV_SEED_FILE) and at
- *       least MBEDTLS_ENTROPY_BLOCK_SIZE bytes in size that can be read from
- *       and written to or you will get an entropy source error! The default
- *       implementation will only use the first MBEDTLS_ENTROPY_BLOCK_SIZE
- *       bytes from the file.
- *
- * \note The entropy collector will write to the seed file before entropy is
- *       given to an external source, to update it.
- */
-//#define MBEDTLS_ENTROPY_NV_SEED
-
-/* MBEDTLS_PSA_CRYPTO_KEY_ID_ENCODES_OWNER
- *
- * Enable key identifiers that encode a key owner identifier.
- *
- * The owner of a key is identified by a value of type ::mbedtls_key_owner_id_t
- * which is currently hard-coded to be int32_t.
- *
- * Note that this option is meant for internal use only and may be removed
- * without notice.
- */
-//#define MBEDTLS_PSA_CRYPTO_KEY_ID_ENCODES_OWNER
-
-/**
- * \def MBEDTLS_MEMORY_DEBUG
- *
- * Enable debugging of buffer allocator memory issues. Automatically prints
- * (to stderr) all (fatal) messages on memory allocation issues. Enables
- * function for 'debug output' of allocated memory.
- *
- * Requires: MBEDTLS_MEMORY_BUFFER_ALLOC_C
- *
- * Uncomment this macro to let the buffer allocator print out error messages.
- */
-//#define MBEDTLS_MEMORY_DEBUG
-
-/**
- * \def MBEDTLS_MEMORY_BACKTRACE
- *
- * Include backtrace information with each allocated block.
- *
- * Requires: MBEDTLS_MEMORY_BUFFER_ALLOC_C
- *           GLIBC-compatible backtrace() and backtrace_symbols() support
- *
- * Uncomment this macro to include backtrace information
- */
-//#define MBEDTLS_MEMORY_BACKTRACE
-
-/**
- * \def MBEDTLS_PK_RSA_ALT_SUPPORT
- *
- * Support external private RSA keys (eg from a HSM) in the PK layer.
- *
- * Comment this macro to disable support for external private RSA keys.
- */
-#define MBEDTLS_PK_RSA_ALT_SUPPORT
-
-/**
- * \def MBEDTLS_PKCS1_V15
- *
- * Enable support for PKCS#1 v1.5 encoding.
- *
- * Requires: MBEDTLS_RSA_C
- *
- * This enables support for PKCS#1 v1.5 operations.
- */
-#define MBEDTLS_PKCS1_V15
-
-/**
- * \def MBEDTLS_PKCS1_V21
- *
- * Enable support for PKCS#1 v2.1 encoding.
- *
- * Requires: MBEDTLS_RSA_C
- *
- * \warning If using a hash that is only provided by PSA drivers, you must
- * call psa_crypto_init() before doing any PKCS#1 v2.1 operation.
- *
- * This enables support for RSAES-OAEP and RSASSA-PSS operations.
- */
-#define MBEDTLS_PKCS1_V21
-
-/** \def MBEDTLS_PSA_CRYPTO_BUILTIN_KEYS
- *
- * Enable support for platform built-in keys. If you enable this feature,
- * you must implement the function mbedtls_psa_platform_get_builtin_key().
- * See the documentation of that function for more information.
- *
- * Built-in keys are typically derived from a hardware unique key or
- * stored in a secure element.
- *
- * Requires: MBEDTLS_PSA_CRYPTO_C.
- *
- * \warning This interface is experimental and may change or be removed
- * without notice.
- */
-//#define MBEDTLS_PSA_CRYPTO_BUILTIN_KEYS
-
-/** \def MBEDTLS_PSA_CRYPTO_CLIENT
- *
- * Enable support for PSA crypto client.
- *
- * \note This option allows to include the code necessary for a PSA
- *       crypto client when the PSA crypto implementation is not included in
- *       the library (MBEDTLS_PSA_CRYPTO_C disabled). The code included is the
- *       code to set and get PSA key attributes.
- *       The development of PSA drivers partially relying on the library to
- *       fulfill the hardware gaps is another possible usage of this option.
- *
- * \warning This interface is experimental and may change or be removed
- * without notice.
- */
-//#define MBEDTLS_PSA_CRYPTO_CLIENT
-
-/** \def MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG
- *
- * Make the PSA Crypto module use an external random generator provided
- * by a driver, instead of Mbed TLS's entropy and DRBG modules.
- *
- * \note This random generator must deliver random numbers with cryptographic
- *       quality and high performance. It must supply unpredictable numbers
- *       with a uniform distribution. The implementation of this function
- *       is responsible for ensuring that the random generator is seeded
- *       with sufficient entropy. If you have a hardware TRNG which is slow
- *       or delivers non-uniform output, declare it as an entropy source
- *       with mbedtls_entropy_add_source() instead of enabling this option.
- *
- * If you enable this option, you must configure the type
- * ::mbedtls_psa_external_random_context_t in psa/crypto_platform.h
- * and define a function called mbedtls_psa_external_get_random()
- * with the following prototype:
- * ```
- * psa_status_t mbedtls_psa_external_get_random(
- *     mbedtls_psa_external_random_context_t *context,
- *     uint8_t *output, size_t output_size, size_t *output_length);
- * );
- * ```
- * The \c context value is initialized to 0 before the first call.
- * The function must fill the \c output buffer with \c output_size bytes
- * of random data and set \c *output_length to \c output_size.
- *
- * Requires: MBEDTLS_PSA_CRYPTO_C
- *
- * \warning If you enable this option, code that uses the PSA cryptography
- *          interface will not use any of the entropy sources set up for
- *          the entropy module, nor the NV seed that MBEDTLS_ENTROPY_NV_SEED
- *          enables.
- *
- * \note This option is experimental and may be removed without notice.
- */
-//#define MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG
-
-/**
- * \def MBEDTLS_PSA_CRYPTO_SPM
- *
- * When MBEDTLS_PSA_CRYPTO_SPM is defined, the code is built for SPM (Secure
- * Partition Manager) integration which separates the code into two parts: a
- * NSPE (Non-Secure Process Environment) and an SPE (Secure Process
- * Environment).
- *
- * If you enable this option, your build environment must include a header
- * file `"crypto_spe.h"` (either in the `psa` subdirectory of the Mbed TLS
- * header files, or in another directory on the compiler's include search
- * path). Alternatively, your platform may customize the header
- * `psa/crypto_platform.h`, in which case it can skip or replace the
- * inclusion of `"crypto_spe.h"`.
- *
- * Module:  library/psa_crypto.c
- * Requires: MBEDTLS_PSA_CRYPTO_C
- *
- */
-//#define MBEDTLS_PSA_CRYPTO_SPM
-
-/**
- * \def MBEDTLS_PSA_KEY_STORE_DYNAMIC
- *
- * Dynamically resize the PSA key store to accommodate any number of
- * volatile keys (until the heap memory is exhausted).
- *
- * If this option is disabled, the key store has a fixed size
- * #MBEDTLS_PSA_KEY_SLOT_COUNT for volatile keys and loaded persistent keys
- * together.
- *
- * This option has no effect when #MBEDTLS_PSA_CRYPTO_C is disabled.
- *
- * Module:  library/psa_crypto.c
- * Requires: MBEDTLS_PSA_CRYPTO_C
- */
-#define MBEDTLS_PSA_KEY_STORE_DYNAMIC
-
-/**
- * Uncomment to enable p256-m. This is an alternative implementation of
- * key generation, ECDH and (randomized) ECDSA on the curve SECP256R1.
- * Compared to the default implementation:
- *
- * - p256-m has a much smaller code size and RAM footprint.
- * - p256-m is only available via the PSA API. This includes the pk module
- *   when #MBEDTLS_USE_PSA_CRYPTO is enabled.
- * - p256-m does not support deterministic ECDSA, EC-JPAKE, custom protocols
- *   over the core arithmetic, or deterministic derivation of keys.
- *
- * We recommend enabling this option if your application uses the PSA API
- * and the only elliptic curve support it needs is ECDH and ECDSA over
- * SECP256R1.
- *
- * If you enable this option, you do not need to enable any ECC-related
- * MBEDTLS_xxx option. You do need to separately request support for the
- * cryptographic mechanisms through the PSA API:
- * - #MBEDTLS_PSA_CRYPTO_C and #MBEDTLS_PSA_CRYPTO_CONFIG for PSA-based
- *   configuration;
- * - #MBEDTLS_USE_PSA_CRYPTO if you want to use p256-m from PK, X.509 or TLS;
- * - #PSA_WANT_ECC_SECP_R1_256;
- * - #PSA_WANT_ALG_ECDH and/or #PSA_WANT_ALG_ECDSA as needed;
- * - #PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY, #PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_BASIC,
- *   #PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_IMPORT,
- *   #PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_EXPORT and/or
- *   #PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_GENERATE as needed.
- *
- * \note To benefit from the smaller code size of p256-m, make sure that you
- *       do not enable any ECC-related option not supported by p256-m: this
- *       would cause the built-in ECC implementation to be built as well, in
- *       order to provide the required option.
- *       Make sure #PSA_WANT_ALG_DETERMINISTIC_ECDSA, #PSA_WANT_ALG_JPAKE and
- *       #PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_DERIVE, and curves other than
- *       SECP256R1 are disabled as they are not supported by this driver.
- *       Also, avoid defining #MBEDTLS_PK_PARSE_EC_COMPRESSED or
- *       #MBEDTLS_PK_PARSE_EC_EXTENDED as those currently require a subset of
- *       the built-in ECC implementation, see docs/driver-only-builds.md.
- */
-//#define MBEDTLS_PSA_P256M_DRIVER_ENABLED
-
-/**
- * \def MBEDTLS_PSA_INJECT_ENTROPY
- *
- * Enable support for entropy injection at first boot. This feature is
- * required on systems that do not have a built-in entropy source (TRNG).
- * This feature is currently not supported on systems that have a built-in
- * entropy source.
- *
- * Requires: MBEDTLS_PSA_CRYPTO_STORAGE_C, MBEDTLS_ENTROPY_NV_SEED
- *
- */
-//#define MBEDTLS_PSA_INJECT_ENTROPY
-
-/**
- * \def MBEDTLS_PSA_ASSUME_EXCLUSIVE_BUFFERS
- *
- * Assume all buffers passed to PSA functions are owned exclusively by the
- * PSA function and are not stored in shared memory.
- *
- * This option may be enabled if all buffers passed to any PSA function reside
- * in memory that is accessible only to the PSA function during its execution.
- *
- * This option MUST be disabled whenever buffer arguments are in memory shared
- * with an untrusted party, for example where arguments to PSA calls are passed
- * across a trust boundary.
- *
- * \note Enabling this option reduces memory usage and code size.
- *
- * \note Enabling this option causes overlap of input and output buffers
- *       not to be supported by PSA functions.
- */
-//#define MBEDTLS_PSA_ASSUME_EXCLUSIVE_BUFFERS
-
-/**
- * \def MBEDTLS_RSA_NO_CRT
- *
- * Do not use the Chinese Remainder Theorem
- * for the RSA private operation.
- *
- * Uncomment this macro to disable the use of CRT in RSA.
- *
- */
-//#define MBEDTLS_RSA_NO_CRT
-
-/**
- * \def MBEDTLS_SELF_TEST
- *
- * Enable the checkup functions (*_self_test).
- */
-#define MBEDTLS_SELF_TEST
-
-/**
- * \def MBEDTLS_SHA256_SMALLER
- *
- * Enable an implementation of SHA-256 that has lower ROM footprint but also
- * lower performance.
- *
- * The default implementation is meant to be a reasonable compromise between
- * performance and size. This version optimizes more aggressively for size at
- * the expense of performance. Eg on Cortex-M4 it reduces the size of
- * mbedtls_sha256_process() from ~2KB to ~0.5KB for a performance hit of about
- * 30%.
- *
- * Uncomment to enable the smaller implementation of SHA256.
- */
-//#define MBEDTLS_SHA256_SMALLER
-
-/**
- * \def MBEDTLS_SHA512_SMALLER
- *
- * Enable an implementation of SHA-512 that has lower ROM footprint but also
- * lower performance.
- *
- * Uncomment to enable the smaller implementation of SHA512.
- */
-//#define MBEDTLS_SHA512_SMALLER
-
-/**
- * \def MBEDTLS_SSL_ALL_ALERT_MESSAGES
- *
- * Enable sending of alert messages in case of encountered errors as per RFC.
- * If you choose not to send the alert messages, Mbed TLS can still communicate
- * with other servers, only debugging of failures is harder.
- *
- * The advantage of not sending alert messages, is that no information is given
- * about reasons for failures thus preventing adversaries of gaining intel.
- *
- * Enable sending of all alert messages
- */
-#define MBEDTLS_SSL_ALL_ALERT_MESSAGES
-
-/**
- * \def MBEDTLS_SSL_DTLS_CONNECTION_ID
- *
- * Enable support for the DTLS Connection ID (CID) extension,
- * which allows to identify DTLS connections across changes
- * in the underlying transport. The CID functionality is described
- * in RFC 9146.
- *
- * Setting this option enables the SSL APIs `mbedtls_ssl_set_cid()`,
- * mbedtls_ssl_get_own_cid()`, `mbedtls_ssl_get_peer_cid()` and
- * `mbedtls_ssl_conf_cid()`. See the corresponding documentation for
- * more information.
- *
- * The maximum lengths of outgoing and incoming CIDs can be configured
- * through the options
- * - MBEDTLS_SSL_CID_OUT_LEN_MAX
- * - MBEDTLS_SSL_CID_IN_LEN_MAX.
- *
- * Requires: MBEDTLS_SSL_PROTO_DTLS
- *
- * Uncomment to enable the Connection ID extension.
- */
-#define MBEDTLS_SSL_DTLS_CONNECTION_ID
-
-
-/**
- * \def MBEDTLS_SSL_DTLS_CONNECTION_ID_COMPAT
- *
- * Defines whether RFC 9146 (default) or the legacy version
- * (version draft-ietf-tls-dtls-connection-id-05,
- * https://tools.ietf.org/html/draft-ietf-tls-dtls-connection-id-05)
- * is used.
- *
- * Set the value to 0 for the standard version, and
- * 1 for the legacy draft version.
- *
- * \deprecated Support for the legacy version of the DTLS
- *             Connection ID feature is deprecated. Please
- *             switch to the standardized version defined
- *             in RFC 9146 enabled by utilizing
- *             MBEDTLS_SSL_DTLS_CONNECTION_ID without use
- *             of MBEDTLS_SSL_DTLS_CONNECTION_ID_COMPAT.
- *
- * Requires: MBEDTLS_SSL_DTLS_CONNECTION_ID
- */
-#define MBEDTLS_SSL_DTLS_CONNECTION_ID_COMPAT 0
-
-/**
- * \def MBEDTLS_SSL_ASYNC_PRIVATE
- *
- * Enable asynchronous external private key operations in SSL. This allows
- * you to configure an SSL connection to call an external cryptographic
- * module to perform private key operations instead of performing the
- * operation inside the library.
- *
- * Requires: MBEDTLS_X509_CRT_PARSE_C
- */
-//#define MBEDTLS_SSL_ASYNC_PRIVATE
-
-/** \def MBEDTLS_SSL_CLI_ALLOW_WEAK_CERTIFICATE_VERIFICATION_WITHOUT_HOSTNAME
- *
- * In TLS clients, when a client authenticates a server through its
- * certificate, the client normally checks three things:
- * - the certificate chain must be valid;
- * - the chain must start from a trusted CA;
- * - the certificate must cover the server name that is expected by the client.
- *
- * Omitting any of these checks is generally insecure, and can allow a
- * malicious server to impersonate a legitimate server.
- *
- * The third check may be safely skipped in some unusual scenarios,
- * such as networks where eavesdropping is a risk but not active attacks,
- * or a private PKI where the client equally trusts all servers that are
- * accredited by the root CA.
- *
- * You should call mbedtls_ssl_set_hostname() with the expected server name
- * before starting a TLS handshake on a client (unless the client is
- * set up to only use PSK-based authentication, which does not rely on the
- * host name). This configuration option controls what happens if a TLS client
- * is configured with the authentication mode #MBEDTLS_SSL_VERIFY_REQUIRED
- * (default), certificate authentication is enabled and the client does not
- * call mbedtls_ssl_set_hostname():
- *
- * - If this option is unset (default), the connection attempt is aborted
- *   with the error #MBEDTLS_ERR_SSL_CERTIFICATE_VERIFICATION_WITHOUT_HOSTNAME.
- * - If this option is set, the TLS library does not check the server name
- *   that the certificate is valid for. This is the historical behavior
- *   of Mbed TLS, but may be insecure as explained above.
- *
- * Enable this option for strict backward compatibility if you have
- * determined that it is secure in the scenario where you are using
- * Mbed TLS.
- *
- * \deprecated This option exists only for backward compatibility and will
- *             be removed in the next major version of Mbed TLS.
- *
- */
-//#define MBEDTLS_SSL_CLI_ALLOW_WEAK_CERTIFICATE_VERIFICATION_WITHOUT_HOSTNAME
-
-/**
- * \def MBEDTLS_SSL_CONTEXT_SERIALIZATION
- *
- * Enable serialization of the TLS context structures, through use of the
- * functions mbedtls_ssl_context_save() and mbedtls_ssl_context_load().
- *
- * This pair of functions allows one side of a connection to serialize the
- * context associated with the connection, then free or re-use that context
- * while the serialized state is persisted elsewhere, and finally deserialize
- * that state to a live context for resuming read/write operations on the
- * connection. From a protocol perspective, the state of the connection is
- * unaffected, in particular this is entirely transparent to the peer.
- *
- * Note: this is distinct from TLS session resumption, which is part of the
- * protocol and fully visible by the peer. TLS session resumption enables
- * establishing new connections associated to a saved session with shorter,
- * lighter handshakes, while context serialization is a local optimization in
- * handling a single, potentially long-lived connection.
- *
- * Enabling these APIs makes some SSL structures larger, as 64 extra bytes are
- * saved after the handshake to allow for more efficient serialization, so if
- * you don't need this feature you'll save RAM by disabling it.
- *
- * Requires: MBEDTLS_GCM_C or MBEDTLS_CCM_C or MBEDTLS_CHACHAPOLY_C
- *
- * Comment to disable the context serialization APIs.
- */
-#define MBEDTLS_SSL_CONTEXT_SERIALIZATION
-
-/**
- * \def MBEDTLS_SSL_DEBUG_ALL
- *
- * Enable the debug messages in SSL module for all issues.
- * Debug messages have been disabled in some places to prevent timing
- * attacks due to (unbalanced) debugging function calls.
- *
- * If you need all error reporting you should enable this during debugging,
- * but remove this for production servers that should log as well.
- *
- * Uncomment this macro to report all debug messages on errors introducing
- * a timing side-channel.
- *
- */
-//#define MBEDTLS_SSL_DEBUG_ALL
-
-/** \def MBEDTLS_SSL_ENCRYPT_THEN_MAC
- *
- * Enable support for Encrypt-then-MAC, RFC 7366.
- *
- * This allows peers that both support it to use a more robust protection for
- * ciphersuites using CBC, providing deep resistance against timing attacks
- * on the padding or underlying cipher.
- *
- * This only affects CBC ciphersuites, and is useless if none is defined.
- *
- * Requires: MBEDTLS_SSL_PROTO_TLS1_2
- *
- * Comment this macro to disable support for Encrypt-then-MAC
- */
-#define MBEDTLS_SSL_ENCRYPT_THEN_MAC
-
-/** \def MBEDTLS_SSL_EXTENDED_MASTER_SECRET
- *
- * Enable support for RFC 7627: Session Hash and Extended Master Secret
- * Extension.
- *
- * This was introduced as "the proper fix" to the Triple Handshake family of
- * attacks, but it is recommended to always use it (even if you disable
- * renegotiation), since it actually fixes a more fundamental issue in the
- * original SSL/TLS design, and has implications beyond Triple Handshake.
- *
- * Requires: MBEDTLS_SSL_PROTO_TLS1_2
- *
- * Comment this macro to disable support for Extended Master Secret.
- */
-#define MBEDTLS_SSL_EXTENDED_MASTER_SECRET
-
-/**
- * \def MBEDTLS_SSL_KEEP_PEER_CERTIFICATE
- *
- * This option controls the availability of the API mbedtls_ssl_get_peer_cert()
- * giving access to the peer's certificate after completion of the handshake.
- *
- * Unless you need mbedtls_ssl_peer_cert() in your application, it is
- * recommended to disable this option for reduced RAM usage.
- *
- * \note If this option is disabled, mbedtls_ssl_get_peer_cert() is still
- *       defined, but always returns \c NULL.
- *
- * \note This option has no influence on the protection against the
- *       triple handshake attack. Even if it is disabled, Mbed TLS will
- *       still ensure that certificates do not change during renegotiation,
- *       for example by keeping a hash of the peer's certificate.
- *
- * \note This option is required if MBEDTLS_SSL_PROTO_TLS1_3 is set.
- *
- * Comment this macro to disable storing the peer's certificate
- * after the handshake.
- */
-#define MBEDTLS_SSL_KEEP_PEER_CERTIFICATE
-
-/**
- * \def MBEDTLS_SSL_KEYING_MATERIAL_EXPORT
- *
- * When this option is enabled, the client and server can extract additional
- * shared symmetric keys after an SSL handshake using the function
- * mbedtls_ssl_export_keying_material().
- *
- * The process for deriving the keys is specified in RFC 5705 for TLS 1.2 and
- * in RFC 8446, Section 7.5, for TLS 1.3.
- *
- * Comment this macro to disable mbedtls_ssl_export_keying_material().
- */
-#define MBEDTLS_SSL_KEYING_MATERIAL_EXPORT
-
-/**
- * \def MBEDTLS_SSL_RENEGOTIATION
- *
- * Enable support for TLS renegotiation.
- *
- * The two main uses of renegotiation are (1) refresh keys on long-lived
- * connections and (2) client authentication after the initial handshake.
- * If you don't need renegotiation, it's probably better to disable it, since
- * it has been associated with security issues in the past and is easy to
- * misuse/misunderstand.
- *
- * Requires: MBEDTLS_SSL_PROTO_TLS1_2
- *
- * Comment this to disable support for renegotiation.
- *
- * \note   Even if this option is disabled, both client and server are aware
- *         of the Renegotiation Indication Extension (RFC 5746) used to
- *         prevent the SSL renegotiation attack (see RFC 5746 Sect. 1).
- *         (See \c mbedtls_ssl_conf_legacy_renegotiation for the
- *          configuration of this extension).
- *
- */
-#define MBEDTLS_SSL_RENEGOTIATION
-
-/**
- * \def MBEDTLS_SSL_MAX_FRAGMENT_LENGTH
- *
- * Enable support for RFC 6066 max_fragment_length extension in SSL.
- *
- * Comment this macro to disable support for the max_fragment_length extension
- */
-#define MBEDTLS_SSL_MAX_FRAGMENT_LENGTH
-
-/**
- * \def MBEDTLS_SSL_RECORD_SIZE_LIMIT
- *
- * Enable support for RFC 8449 record_size_limit extension in SSL (TLS 1.3 only).
- *
- * Requires: MBEDTLS_SSL_PROTO_TLS1_3
- *
- * Uncomment this macro to enable support for the record_size_limit extension
- */
-//#define MBEDTLS_SSL_RECORD_SIZE_LIMIT
-
-/**
- * \def MBEDTLS_SSL_PROTO_TLS1_2
- *
- * Enable support for TLS 1.2 (and DTLS 1.2 if DTLS is enabled).
- *
- * Requires: Without MBEDTLS_USE_PSA_CRYPTO: MBEDTLS_MD_C and
- *              (MBEDTLS_SHA256_C or MBEDTLS_SHA384_C or
- *               SHA-256 or SHA-512 provided by a PSA driver)
- *           With MBEDTLS_USE_PSA_CRYPTO:
- *              PSA_WANT_ALG_SHA_256 or PSA_WANT_ALG_SHA_384
- *
- * \warning If building with MBEDTLS_USE_PSA_CRYPTO, or if the hash(es) used
- * are only provided by PSA drivers, you must call psa_crypto_init() before
- * doing any TLS operations.
- *
- * Comment this macro to disable support for TLS 1.2 / DTLS 1.2
- */
-#define MBEDTLS_SSL_PROTO_TLS1_2
-
-/**
- * \def MBEDTLS_SSL_PROTO_TLS1_3
- *
- * Enable support for TLS 1.3.
- *
- * \note See docs/architecture/tls13-support.md for a description of the TLS
- *       1.3 support that this option enables.
- *
- * Requires: MBEDTLS_SSL_KEEP_PEER_CERTIFICATE
- * Requires: MBEDTLS_PSA_CRYPTO_C
- *
- * \note TLS 1.3 uses PSA crypto for cryptographic operations that are
- *       directly performed by TLS 1.3 code. As a consequence, when TLS 1.3
- *       is enabled, a TLS handshake may call psa_crypto_init(), even
- *       if it ends up negotiating a different TLS version.
- *
- * \note Cryptographic operations performed indirectly via another module
- *       (X.509, PK) or by code shared with TLS 1.2 (record protection,
- *       running handshake hash) only use PSA crypto if
- *       #MBEDTLS_USE_PSA_CRYPTO is enabled.
- *
- * \note In multithreaded applications, you must also enable
- *       #MBEDTLS_THREADING_C, even if individual TLS contexts are not
- *       shared between threads, unless only one thread ever calls
- *       TLS functions.
- *
- * Uncomment this macro to enable the support for TLS 1.3.
- */
-#define MBEDTLS_SSL_PROTO_TLS1_3
-
-/**
- * \def MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE
- *
- * Enable TLS 1.3 middlebox compatibility mode.
- *
- * As specified in Section D.4 of RFC 8446, TLS 1.3 offers a compatibility
- * mode to make a TLS 1.3 connection more likely to pass through middle boxes
- * expecting TLS 1.2 traffic.
- *
- * Turning on the compatibility mode comes at the cost of a few added bytes
- * on the wire, but it doesn't affect compatibility with TLS 1.3 implementations
- * that don't use it. Therefore, unless transmission bandwidth is critical and
- * you know that middlebox compatibility issues won't occur, it is therefore
- * recommended to set this option.
- *
- * Comment to disable compatibility mode for TLS 1.3. If
- * MBEDTLS_SSL_PROTO_TLS1_3 is not enabled, this option does not have any
- * effect on the build.
- *
- */
-#define MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE
-
-/**
- * \def MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
- *
- * Enable TLS 1.3 PSK key exchange mode.
- *
- * Comment to disable support for the PSK key exchange mode in TLS 1.3. If
- * MBEDTLS_SSL_PROTO_TLS1_3 is not enabled, this option does not have any
- * effect on the build.
- *
- */
-#define MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
-
-/**
- * \def MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
- *
- * Enable TLS 1.3 ephemeral key exchange mode.
- *
- * Requires: PSA_WANT_ALG_ECDH or PSA_WANT_ALG_FFDH
- *           MBEDTLS_X509_CRT_PARSE_C
- *           and at least one of:
- *               MBEDTLS_ECDSA_C or (MBEDTLS_USE_PSA_CRYPTO and PSA_WANT_ALG_ECDSA)
- *               MBEDTLS_PKCS1_V21
- *
- * Comment to disable support for the ephemeral key exchange mode in TLS 1.3.
- * If MBEDTLS_SSL_PROTO_TLS1_3 is not enabled, this option does not have any
- * effect on the build.
- *
- */
-#define MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
-
-/**
- * \def MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
- *
- * Enable TLS 1.3 PSK ephemeral key exchange mode.
- *
- * Requires: PSA_WANT_ALG_ECDH or PSA_WANT_ALG_FFDH
- *
- * Comment to disable support for the PSK ephemeral key exchange mode in
- * TLS 1.3. If MBEDTLS_SSL_PROTO_TLS1_3 is not enabled, this option does not
- * have any effect on the build.
- *
- */
-#define MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
-
-/**
- * \def MBEDTLS_SSL_EARLY_DATA
- *
- * Enable support for RFC 8446 TLS 1.3 early data.
- *
- * Requires: MBEDTLS_SSL_SESSION_TICKETS and either
- *           MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED or
- *           MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
- *
- * Comment this to disable support for early data. If MBEDTLS_SSL_PROTO_TLS1_3
- * is not enabled, this option does not have any effect on the build.
- *
- * \note The maximum amount of early data can be set with
- *       MBEDTLS_SSL_MAX_EARLY_DATA_SIZE.
- *
- */
-//#define MBEDTLS_SSL_EARLY_DATA
-
-/**
- * \def MBEDTLS_SSL_PROTO_DTLS
- *
- * Enable support for DTLS (all available versions).
- *
- * Enable this and MBEDTLS_SSL_PROTO_TLS1_2 to enable DTLS 1.2.
- *
- * Requires: MBEDTLS_SSL_PROTO_TLS1_2
- *
- * Comment this macro to disable support for DTLS
- */
-#define MBEDTLS_SSL_PROTO_DTLS
-
-/**
- * \def MBEDTLS_SSL_ALPN
- *
- * Enable support for RFC 7301 Application Layer Protocol Negotiation.
- *
- * Comment this macro to disable support for ALPN.
- */
-#define MBEDTLS_SSL_ALPN
-
-/**
- * \def MBEDTLS_SSL_DTLS_ANTI_REPLAY
- *
- * Enable support for the anti-replay mechanism in DTLS.
- *
- * Requires: MBEDTLS_SSL_TLS_C
- *           MBEDTLS_SSL_PROTO_DTLS
- *
- * \warning Disabling this is often a security risk!
- * See mbedtls_ssl_conf_dtls_anti_replay() for details.
- *
- * Comment this to disable anti-replay in DTLS.
- */
-#define MBEDTLS_SSL_DTLS_ANTI_REPLAY
-
-/**
- * \def MBEDTLS_SSL_DTLS_HELLO_VERIFY
- *
- * Enable support for HelloVerifyRequest on DTLS servers.
- *
- * This feature is highly recommended to prevent DTLS servers being used as
- * amplifiers in DoS attacks against other hosts. It should always be enabled
- * unless you know for sure amplification cannot be a problem in the
- * environment in which your server operates.
- *
- * \warning Disabling this can be a security risk! (see above)
- *
- * Requires: MBEDTLS_SSL_PROTO_DTLS
- *
- * Comment this to disable support for HelloVerifyRequest.
- */
-#define MBEDTLS_SSL_DTLS_HELLO_VERIFY
-
-/**
- * \def MBEDTLS_SSL_DTLS_SRTP
- *
- * Enable support for negotiation of DTLS-SRTP (RFC 5764)
- * through the use_srtp extension.
- *
- * \note This feature provides the minimum functionality required
- * to negotiate the use of DTLS-SRTP and to allow the derivation of
- * the associated SRTP packet protection key material.
- * In particular, the SRTP packet protection itself, as well as the
- * demultiplexing of RTP and DTLS packets at the datagram layer
- * (see Section 5 of RFC 5764), are not handled by this feature.
- * Instead, after successful completion of a handshake negotiating
- * the use of DTLS-SRTP, the extended key exporter API
- * mbedtls_ssl_conf_export_keys_cb() should be used to implement
- * the key exporter described in Section 4.2 of RFC 5764 and RFC 5705
- * (this is implemented in the SSL example programs).
- * The resulting key should then be passed to an SRTP stack.
- *
- * Setting this option enables the runtime API
- * mbedtls_ssl_conf_dtls_srtp_protection_profiles()
- * through which the supported DTLS-SRTP protection
- * profiles can be configured. You must call this API at
- * runtime if you wish to negotiate the use of DTLS-SRTP.
- *
- * Requires: MBEDTLS_SSL_PROTO_DTLS
- *
- * Uncomment this to enable support for use_srtp extension.
- */
-//#define MBEDTLS_SSL_DTLS_SRTP
-
-/**
- * \def MBEDTLS_SSL_DTLS_CLIENT_PORT_REUSE
- *
- * Enable server-side support for clients that reconnect from the same port.
- *
- * Some clients unexpectedly close the connection and try to reconnect using the
- * same source port. This needs special support from the server to handle the
- * new connection securely, as described in section 4.2.8 of RFC 6347. This
- * flag enables that support.
- *
- * Requires: MBEDTLS_SSL_DTLS_HELLO_VERIFY
- *
- * Comment this to disable support for clients reusing the source port.
- */
-#define MBEDTLS_SSL_DTLS_CLIENT_PORT_REUSE
-
-/**
- * \def MBEDTLS_SSL_SESSION_TICKETS
- *
- * Enable support for RFC 5077 session tickets in SSL.
- * Client-side, provides full support for session tickets (maintenance of a
- * session store remains the responsibility of the application, though).
- * Server-side, you also need to provide callbacks for writing and parsing
- * tickets, including authenticated encryption and key management. Example
- * callbacks are provided by MBEDTLS_SSL_TICKET_C.
- *
- * Comment this macro to disable support for SSL session tickets
- */
-#define MBEDTLS_SSL_SESSION_TICKETS
-
-/**
- * \def MBEDTLS_SSL_SERVER_NAME_INDICATION
- *
- * Enable support for RFC 6066 server name indication (SNI) in SSL.
- *
- * Requires: MBEDTLS_X509_CRT_PARSE_C
- *
- * Comment this macro to disable support for server name indication in SSL
- */
-#define MBEDTLS_SSL_SERVER_NAME_INDICATION
-
-/**
- * \def MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH
- *
- * When this option is enabled, the SSL buffer will be resized automatically
- * based on the negotiated maximum fragment length in each direction.
- *
- * Requires: MBEDTLS_SSL_MAX_FRAGMENT_LENGTH
- */
-//#define MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH
-
-/**
- * \def MBEDTLS_TEST_CONSTANT_FLOW_MEMSAN
- *
- * Enable testing of the constant-flow nature of some sensitive functions with
- * clang's MemorySanitizer. This causes some existing tests to also test
- * this non-functional property of the code under test.
- *
- * This setting requires compiling with clang -fsanitize=memory. The test
- * suites can then be run normally.
- *
- * \warning This macro is only used for extended testing; it is not considered
- * part of the library's API, so it may change or disappear at any time.
- *
- * Uncomment to enable testing of the constant-flow nature of selected code.
- */
-//#define MBEDTLS_TEST_CONSTANT_FLOW_MEMSAN
-
-/**
- * \def MBEDTLS_TEST_CONSTANT_FLOW_VALGRIND
- *
- * Enable testing of the constant-flow nature of some sensitive functions with
- * valgrind's memcheck tool. This causes some existing tests to also test
- * this non-functional property of the code under test.
- *
- * This setting requires valgrind headers for building, and is only useful for
- * testing if the tests suites are run with valgrind's memcheck. This can be
- * done for an individual test suite with 'valgrind ./test_suite_xxx', or when
- * using CMake, this can be done for all test suites with 'make memcheck'.
- *
- * \warning This macro is only used for extended testing; it is not considered
- * part of the library's API, so it may change or disappear at any time.
- *
- * Uncomment to enable testing of the constant-flow nature of selected code.
- */
-//#define MBEDTLS_TEST_CONSTANT_FLOW_VALGRIND
-
-/**
- * \def MBEDTLS_TEST_HOOKS
- *
- * Enable features for invasive testing such as introspection functions and
- * hooks for fault injection. This enables additional unit tests.
- *
- * Merely enabling this feature should not change the behavior of the product.
- * It only adds new code, and new branching points where the default behavior
- * is the same as when this feature is disabled.
- * However, this feature increases the attack surface: there is an added
- * risk of vulnerabilities, and more gadgets that can make exploits easier.
- * Therefore this feature must never be enabled in production.
- *
- * See `docs/architecture/testing/mbed-crypto-invasive-testing.md` for more
- * information.
- *
- * Uncomment to enable invasive tests.
- */
-//#define MBEDTLS_TEST_HOOKS
-
-/**
- * \def MBEDTLS_THREADING_ALT
- *
- * Provide your own alternate threading implementation.
- *
- * Requires: MBEDTLS_THREADING_C
- *
- * Uncomment this to allow your own alternate threading implementation.
- */
-//#define MBEDTLS_THREADING_ALT
-
-/**
- * \def MBEDTLS_THREADING_PTHREAD
- *
- * Enable the pthread wrapper layer for the threading layer.
- *
- * Requires: MBEDTLS_THREADING_C
- *
- * Uncomment this to enable pthread mutexes.
- */
-//#define MBEDTLS_THREADING_PTHREAD
-
-/**
- * \def MBEDTLS_USE_PSA_CRYPTO
- *
- * Make the X.509 and TLS libraries use PSA for cryptographic operations as
- * much as possible, and enable new APIs for using keys handled by PSA Crypto.
- *
- * \note Development of this option is currently in progress, and parts of Mbed
- * TLS's X.509 and TLS modules are not ported to PSA yet. However, these parts
- * will still continue to work as usual, so enabling this option should not
- * break backwards compatibility.
- *
- * \warning If you enable this option, you need to call `psa_crypto_init()`
- * before calling any function from the SSL/TLS, X.509 or PK modules, except
- * for the various mbedtls_xxx_init() functions which can be called at any time.
- *
- * \warning In multithreaded applications, you must also enable
- * #MBEDTLS_THREADING_C, unless only one thread ever calls PSA functions
- * (`psa_xxx()`), including indirect calls through SSL/TLS, X.509 or PK.
- *
- * \note An important and desirable effect of this option is that it allows
- * PK, X.509 and TLS to take advantage of PSA drivers. For example, enabling
- * this option is what allows use of drivers for ECDSA, ECDH and EC J-PAKE in
- * those modules. However, note that even with this option disabled, some code
- * in PK, X.509, TLS or the crypto library might still use PSA drivers, if it
- * can determine it's safe to do so; currently that's the case for hashes.
- *
- * \note See docs/use-psa-crypto.md for a complete description this option.
- *
- * Requires: MBEDTLS_PSA_CRYPTO_C.
- *
- * Uncomment this to enable internal use of PSA Crypto and new associated APIs.
- */
-//#define MBEDTLS_USE_PSA_CRYPTO
-
-/**
- * \def MBEDTLS_PSA_CRYPTO_CONFIG
- *
- * This setting allows support for cryptographic mechanisms through the PSA
- * API to be configured separately from support through the mbedtls API.
- *
- * When this option is disabled, the PSA API exposes the cryptographic
- * mechanisms that can be implemented on top of the `mbedtls_xxx` API
- * configured with `MBEDTLS_XXX` symbols.
- *
- * When this option is enabled, the PSA API exposes the cryptographic
- * mechanisms requested by the `PSA_WANT_XXX` symbols defined in
- * include/psa/crypto_config.h. The corresponding `MBEDTLS_XXX` settings are
- * automatically enabled if required (i.e. if no PSA driver provides the
- * mechanism). You may still freely enable additional `MBEDTLS_XXX` symbols
- * in mbedtls_config.h.
- *
- * If the symbol #MBEDTLS_PSA_CRYPTO_CONFIG_FILE is defined, it specifies
- * an alternative header to include instead of include/psa/crypto_config.h.
- *
- * \warning This option is experimental, in that the set of `PSA_WANT_XXX`
- *          symbols is not completely finalized yet, and the configuration
- *          tooling is not ideally adapted to having two separate configuration
- *          files.
- *          Future minor releases of Mbed TLS may make minor changes to those
- *          symbols, but we will endeavor to provide a transition path.
- *          Nonetheless, this option is considered mature enough to use in
- *          production, as long as you accept that you may need to make
- *          minor changes to psa/crypto_config.h when upgrading Mbed TLS.
- */
-//#define MBEDTLS_PSA_CRYPTO_CONFIG
-
-/**
- * \def MBEDTLS_VERSION_FEATURES
- *
- * Allow run-time checking of compile-time enabled features. Thus allowing users
- * to check at run-time if the library is for instance compiled with threading
- * support via mbedtls_version_check_feature().
- *
- * Requires: MBEDTLS_VERSION_C
- *
- * Comment this to disable run-time checking and save ROM space
- */
-#define MBEDTLS_VERSION_FEATURES
-
-/**
- * \def MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK
- *
- * If set, this enables the X.509 API `mbedtls_x509_crt_verify_with_ca_cb()`
- * and the SSL API `mbedtls_ssl_conf_ca_cb()` which allow users to configure
- * the set of trusted certificates through a callback instead of a linked
- * list.
- *
- * This is useful for example in environments where a large number of trusted
- * certificates is present and storing them in a linked list isn't efficient
- * enough, or when the set of trusted certificates changes frequently.
- *
- * See the documentation of `mbedtls_x509_crt_verify_with_ca_cb()` and
- * `mbedtls_ssl_conf_ca_cb()` for more information.
- *
- * Requires: MBEDTLS_X509_CRT_PARSE_C
- *
- * Uncomment to enable trusted certificate callbacks.
- */
-//#define MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK
-
-/**
- * \def MBEDTLS_X509_REMOVE_INFO
- *
- * Disable mbedtls_x509_*_info() and related APIs.
- *
- * Uncomment to omit mbedtls_x509_*_info(), as well as mbedtls_debug_print_crt()
- * and other functions/constants only used by these functions, thus reducing
- * the code footprint by several KB.
- */
-//#define MBEDTLS_X509_REMOVE_INFO
-
-/**
- * \def MBEDTLS_X509_RSASSA_PSS_SUPPORT
- *
- * Enable parsing and verification of X.509 certificates, CRLs and CSRS
- * signed with RSASSA-PSS (aka PKCS#1 v2.1).
- *
- * Requires: MBEDTLS_PKCS1_V21
- *
- * Comment this macro to disallow using RSASSA-PSS in certificates.
- */
-#define MBEDTLS_X509_RSASSA_PSS_SUPPORT
-/** \} name SECTION: Mbed TLS feature support */
-
-/**
- * \name SECTION: Mbed TLS modules
- *
- * This section enables or disables entire modules in Mbed TLS
- * \{
- */
-
-/**
- * \def MBEDTLS_AESNI_C
- *
- * Enable AES-NI support on x86-64 or x86-32.
- *
- * \note AESNI is only supported with certain compilers and target options:
- * - Visual Studio: supported
- * - GCC, x86-64, target not explicitly supporting AESNI:
- *   requires MBEDTLS_HAVE_ASM.
- * - GCC, x86-32, target not explicitly supporting AESNI:
- *   not supported.
- * - GCC, x86-64 or x86-32, target supporting AESNI: supported.
- *   For this assembly-less implementation, you must currently compile
- *   `library/aesni.c` and `library/aes.c` with machine options to enable
- *   SSE2 and AESNI instructions: `gcc -msse2 -maes -mpclmul` or
- *   `clang -maes -mpclmul`.
- * - Non-x86 targets: this option is silently ignored.
- * - Other compilers: this option is silently ignored.
- *
- * \note
- * Above, "GCC" includes compatible compilers such as Clang.
- * The limitations on target support are likely to be relaxed in the future.
- *
- * Module:  library/aesni.c
- * Caller:  library/aes.c
- *
- * Requires: MBEDTLS_HAVE_ASM (on some platforms, see note)
- *
- * This modules adds support for the AES-NI instructions on x86.
- */
-#define MBEDTLS_AESNI_C
-
-/**
- * \def MBEDTLS_AESCE_C
- *
- * Enable AES cryptographic extension support on Armv8.
- *
- * Module:  library/aesce.c
- * Caller:  library/aes.c
- *
- * Requires: MBEDTLS_AES_C
- *
- * \warning Runtime detection only works on Linux. For non-Linux operating
- *          system, Armv8-A Cryptographic Extensions must be supported by
- *          the CPU when this option is enabled.
- *
- * \note    Minimum compiler versions for this feature when targeting aarch64
- *          are Clang 4.0; armclang 6.6; GCC 6.0; or MSVC 2019 version 16.11.2.
- *          Minimum compiler versions for this feature when targeting 32-bit
- *          Arm or Thumb are Clang 11.0; armclang 6.20; or GCC 6.0.
- *
- * \note \c CFLAGS must be set to a minimum of \c -march=armv8-a+crypto for
- * armclang <= 6.9
- *
- * This module adds support for the AES Armv8-A Cryptographic Extensions on Armv8 systems.
- */
-#define MBEDTLS_AESCE_C
-
-/**
- * \def MBEDTLS_AES_C
- *
- * Enable the AES block cipher.
- *
- * Module:  library/aes.c
- * Caller:  library/cipher.c
- *          library/pem.c
- *          library/ctr_drbg.c
- *
- * This module enables the following ciphersuites (if other requisites are
- * enabled as well):
- *      MBEDTLS_TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA
- *      MBEDTLS_TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA
- *      MBEDTLS_TLS_ECDH_RSA_WITH_AES_128_CBC_SHA
- *      MBEDTLS_TLS_ECDH_RSA_WITH_AES_256_CBC_SHA
- *      MBEDTLS_TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256
- *      MBEDTLS_TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384
- *      MBEDTLS_TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256
- *      MBEDTLS_TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384
- *      MBEDTLS_TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256
- *      MBEDTLS_TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384
- *      MBEDTLS_TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256
- *      MBEDTLS_TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384
- *      MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
- *      MBEDTLS_TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
- *      MBEDTLS_TLS_DHE_RSA_WITH_AES_256_GCM_SHA384
- *      MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384
- *      MBEDTLS_TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384
- *      MBEDTLS_TLS_DHE_RSA_WITH_AES_256_CBC_SHA256
- *      MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA
- *      MBEDTLS_TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA
- *      MBEDTLS_TLS_DHE_RSA_WITH_AES_256_CBC_SHA
- *      MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
- *      MBEDTLS_TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
- *      MBEDTLS_TLS_DHE_RSA_WITH_AES_128_GCM_SHA256
- *      MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256
- *      MBEDTLS_TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
- *      MBEDTLS_TLS_DHE_RSA_WITH_AES_128_CBC_SHA256
- *      MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA
- *      MBEDTLS_TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
- *      MBEDTLS_TLS_DHE_RSA_WITH_AES_128_CBC_SHA
- *      MBEDTLS_TLS_DHE_PSK_WITH_AES_256_GCM_SHA384
- *      MBEDTLS_TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA384
- *      MBEDTLS_TLS_DHE_PSK_WITH_AES_256_CBC_SHA384
- *      MBEDTLS_TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA
- *      MBEDTLS_TLS_DHE_PSK_WITH_AES_256_CBC_SHA
- *      MBEDTLS_TLS_DHE_PSK_WITH_AES_128_GCM_SHA256
- *      MBEDTLS_TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA256
- *      MBEDTLS_TLS_DHE_PSK_WITH_AES_128_CBC_SHA256
- *      MBEDTLS_TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA
- *      MBEDTLS_TLS_DHE_PSK_WITH_AES_128_CBC_SHA
- *      MBEDTLS_TLS_RSA_WITH_AES_256_GCM_SHA384
- *      MBEDTLS_TLS_RSA_WITH_AES_256_CBC_SHA256
- *      MBEDTLS_TLS_RSA_WITH_AES_256_CBC_SHA
- *      MBEDTLS_TLS_RSA_WITH_AES_128_GCM_SHA256
- *      MBEDTLS_TLS_RSA_WITH_AES_128_CBC_SHA256
- *      MBEDTLS_TLS_RSA_WITH_AES_128_CBC_SHA
- *      MBEDTLS_TLS_RSA_PSK_WITH_AES_256_GCM_SHA384
- *      MBEDTLS_TLS_RSA_PSK_WITH_AES_256_CBC_SHA384
- *      MBEDTLS_TLS_RSA_PSK_WITH_AES_256_CBC_SHA
- *      MBEDTLS_TLS_RSA_PSK_WITH_AES_128_GCM_SHA256
- *      MBEDTLS_TLS_RSA_PSK_WITH_AES_128_CBC_SHA256
- *      MBEDTLS_TLS_RSA_PSK_WITH_AES_128_CBC_SHA
- *      MBEDTLS_TLS_PSK_WITH_AES_256_GCM_SHA384
- *      MBEDTLS_TLS_PSK_WITH_AES_256_CBC_SHA384
- *      MBEDTLS_TLS_PSK_WITH_AES_256_CBC_SHA
- *      MBEDTLS_TLS_PSK_WITH_AES_128_GCM_SHA256
- *      MBEDTLS_TLS_PSK_WITH_AES_128_CBC_SHA256
- *      MBEDTLS_TLS_PSK_WITH_AES_128_CBC_SHA
- *
- * PEM_PARSE uses AES for decrypting encrypted keys.
- */
-#define MBEDTLS_AES_C
-
-/**
- * \def MBEDTLS_ASN1_PARSE_C
- *
- * Enable the generic ASN1 parser.
- *
- * Module:  library/asn1.c
- * Caller:  library/x509.c
- *          library/dhm.c
- *          library/pkcs12.c
- *          library/pkcs5.c
- *          library/pkparse.c
- */
-#define MBEDTLS_ASN1_PARSE_C
-
-/**
- * \def MBEDTLS_ASN1_WRITE_C
- *
- * Enable the generic ASN1 writer.
- *
- * Module:  library/asn1write.c
- * Caller:  library/ecdsa.c
- *          library/pkwrite.c
- *          library/x509_create.c
- *          library/x509write_crt.c
- *          library/x509write_csr.c
- */
-#define MBEDTLS_ASN1_WRITE_C
-
-/**
- * \def MBEDTLS_BASE64_C
- *
- * Enable the Base64 module.
- *
- * Module:  library/base64.c
- * Caller:  library/pem.c
- *
- * This module is required for PEM support (required by X.509).
- */
-#define MBEDTLS_BASE64_C
-
-/**
- * \def MBEDTLS_BLOCK_CIPHER_NO_DECRYPT
- *
- * Remove decryption operation for AES, ARIA and Camellia block cipher.
- *
- * \note  This feature is incompatible with insecure block cipher,
- *        MBEDTLS_DES_C, and cipher modes which always require decryption
- *        operation, MBEDTLS_CIPHER_MODE_CBC, MBEDTLS_CIPHER_MODE_XTS and
- *        MBEDTLS_NIST_KW_C. When #MBEDTLS_PSA_CRYPTO_CONFIG is enabled,
- *        this feature is incompatible with following supported PSA equivalence,
- *        PSA_WANT_ALG_ECB_NO_PADDING, PSA_WANT_ALG_CBC_NO_PADDING,
- *        PSA_WANT_ALG_CBC_PKCS7 and PSA_WANT_KEY_TYPE_DES.
- *
- * Module:  library/aes.c
- *          library/aesce.c
- *          library/aesni.c
- *          library/aria.c
- *          library/camellia.c
- *          library/cipher.c
- */
-//#define MBEDTLS_BLOCK_CIPHER_NO_DECRYPT
-
-/**
- * \def MBEDTLS_BIGNUM_C
- *
- * Enable the multi-precision integer library.
- *
- * Module:  library/bignum.c
- *          library/bignum_core.c
- *          library/bignum_mod.c
- *          library/bignum_mod_raw.c
- * Caller:  library/dhm.c
- *          library/ecp.c
- *          library/ecdsa.c
- *          library/rsa.c
- *          library/rsa_alt_helpers.c
- *          library/ssl_tls.c
- *
- * This module is required for RSA, DHM and ECC (ECDH, ECDSA) support.
- */
-#define MBEDTLS_BIGNUM_C
-
-/**
- * \def MBEDTLS_CAMELLIA_C
- *
- * Enable the Camellia block cipher.
- *
- * Module:  library/camellia.c
- * Caller:  library/cipher.c
- *
- * This module enables the following ciphersuites (if other requisites are
- * enabled as well):
- *      MBEDTLS_TLS_ECDH_ECDSA_WITH_CAMELLIA_128_CBC_SHA256
- *      MBEDTLS_TLS_ECDH_ECDSA_WITH_CAMELLIA_256_CBC_SHA384
- *      MBEDTLS_TLS_ECDH_RSA_WITH_CAMELLIA_128_CBC_SHA256
- *      MBEDTLS_TLS_ECDH_RSA_WITH_CAMELLIA_256_CBC_SHA384
- *      MBEDTLS_TLS_ECDH_ECDSA_WITH_CAMELLIA_128_GCM_SHA256
- *      MBEDTLS_TLS_ECDH_ECDSA_WITH_CAMELLIA_256_GCM_SHA384
- *      MBEDTLS_TLS_ECDH_RSA_WITH_CAMELLIA_128_GCM_SHA256
- *      MBEDTLS_TLS_ECDH_RSA_WITH_CAMELLIA_256_GCM_SHA384
- *      MBEDTLS_TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_GCM_SHA384
- *      MBEDTLS_TLS_ECDHE_RSA_WITH_CAMELLIA_256_GCM_SHA384
- *      MBEDTLS_TLS_DHE_RSA_WITH_CAMELLIA_256_GCM_SHA384
- *      MBEDTLS_TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_CBC_SHA384
- *      MBEDTLS_TLS_ECDHE_RSA_WITH_CAMELLIA_256_CBC_SHA384
- *      MBEDTLS_TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA256
- *      MBEDTLS_TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA
- *      MBEDTLS_TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_GCM_SHA256
- *      MBEDTLS_TLS_ECDHE_RSA_WITH_CAMELLIA_128_GCM_SHA256
- *      MBEDTLS_TLS_DHE_RSA_WITH_CAMELLIA_128_GCM_SHA256
- *      MBEDTLS_TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_CBC_SHA256
- *      MBEDTLS_TLS_ECDHE_RSA_WITH_CAMELLIA_128_CBC_SHA256
- *      MBEDTLS_TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA256
- *      MBEDTLS_TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA
- *      MBEDTLS_TLS_DHE_PSK_WITH_CAMELLIA_256_GCM_SHA384
- *      MBEDTLS_TLS_ECDHE_PSK_WITH_CAMELLIA_256_CBC_SHA384
- *      MBEDTLS_TLS_DHE_PSK_WITH_CAMELLIA_256_CBC_SHA384
- *      MBEDTLS_TLS_DHE_PSK_WITH_CAMELLIA_128_GCM_SHA256
- *      MBEDTLS_TLS_DHE_PSK_WITH_CAMELLIA_128_CBC_SHA256
- *      MBEDTLS_TLS_ECDHE_PSK_WITH_CAMELLIA_128_CBC_SHA256
- *      MBEDTLS_TLS_RSA_WITH_CAMELLIA_256_GCM_SHA384
- *      MBEDTLS_TLS_RSA_WITH_CAMELLIA_256_CBC_SHA256
- *      MBEDTLS_TLS_RSA_WITH_CAMELLIA_256_CBC_SHA
- *      MBEDTLS_TLS_RSA_WITH_CAMELLIA_128_GCM_SHA256
- *      MBEDTLS_TLS_RSA_WITH_CAMELLIA_128_CBC_SHA256
- *      MBEDTLS_TLS_RSA_WITH_CAMELLIA_128_CBC_SHA
- *      MBEDTLS_TLS_RSA_PSK_WITH_CAMELLIA_256_GCM_SHA384
- *      MBEDTLS_TLS_RSA_PSK_WITH_CAMELLIA_256_CBC_SHA384
- *      MBEDTLS_TLS_RSA_PSK_WITH_CAMELLIA_128_GCM_SHA256
- *      MBEDTLS_TLS_RSA_PSK_WITH_CAMELLIA_128_CBC_SHA256
- *      MBEDTLS_TLS_PSK_WITH_CAMELLIA_256_GCM_SHA384
- *      MBEDTLS_TLS_PSK_WITH_CAMELLIA_256_CBC_SHA384
- *      MBEDTLS_TLS_PSK_WITH_CAMELLIA_128_GCM_SHA256
- *      MBEDTLS_TLS_PSK_WITH_CAMELLIA_128_CBC_SHA256
- */
-#define MBEDTLS_CAMELLIA_C
-
-/**
- * \def MBEDTLS_ARIA_C
- *
- * Enable the ARIA block cipher.
- *
- * Module:  library/aria.c
- * Caller:  library/cipher.c
- *
- * This module enables the following ciphersuites (if other requisites are
- * enabled as well):
- *
- *      MBEDTLS_TLS_RSA_WITH_ARIA_128_CBC_SHA256
- *      MBEDTLS_TLS_RSA_WITH_ARIA_256_CBC_SHA384
- *      MBEDTLS_TLS_DHE_RSA_WITH_ARIA_128_CBC_SHA256
- *      MBEDTLS_TLS_DHE_RSA_WITH_ARIA_256_CBC_SHA384
- *      MBEDTLS_TLS_ECDHE_ECDSA_WITH_ARIA_128_CBC_SHA256
- *      MBEDTLS_TLS_ECDHE_ECDSA_WITH_ARIA_256_CBC_SHA384
- *      MBEDTLS_TLS_ECDH_ECDSA_WITH_ARIA_128_CBC_SHA256
- *      MBEDTLS_TLS_ECDH_ECDSA_WITH_ARIA_256_CBC_SHA384
- *      MBEDTLS_TLS_ECDHE_RSA_WITH_ARIA_128_CBC_SHA256
- *      MBEDTLS_TLS_ECDHE_RSA_WITH_ARIA_256_CBC_SHA384
- *      MBEDTLS_TLS_ECDH_RSA_WITH_ARIA_128_CBC_SHA256
- *      MBEDTLS_TLS_ECDH_RSA_WITH_ARIA_256_CBC_SHA384
- *      MBEDTLS_TLS_RSA_WITH_ARIA_128_GCM_SHA256
- *      MBEDTLS_TLS_RSA_WITH_ARIA_256_GCM_SHA384
- *      MBEDTLS_TLS_DHE_RSA_WITH_ARIA_128_GCM_SHA256
- *      MBEDTLS_TLS_DHE_RSA_WITH_ARIA_256_GCM_SHA384
- *      MBEDTLS_TLS_ECDHE_ECDSA_WITH_ARIA_128_GCM_SHA256
- *      MBEDTLS_TLS_ECDHE_ECDSA_WITH_ARIA_256_GCM_SHA384
- *      MBEDTLS_TLS_ECDH_ECDSA_WITH_ARIA_128_GCM_SHA256
- *      MBEDTLS_TLS_ECDH_ECDSA_WITH_ARIA_256_GCM_SHA384
- *      MBEDTLS_TLS_ECDHE_RSA_WITH_ARIA_128_GCM_SHA256
- *      MBEDTLS_TLS_ECDHE_RSA_WITH_ARIA_256_GCM_SHA384
- *      MBEDTLS_TLS_ECDH_RSA_WITH_ARIA_128_GCM_SHA256
- *      MBEDTLS_TLS_ECDH_RSA_WITH_ARIA_256_GCM_SHA384
- *      MBEDTLS_TLS_PSK_WITH_ARIA_128_CBC_SHA256
- *      MBEDTLS_TLS_PSK_WITH_ARIA_256_CBC_SHA384
- *      MBEDTLS_TLS_DHE_PSK_WITH_ARIA_128_CBC_SHA256
- *      MBEDTLS_TLS_DHE_PSK_WITH_ARIA_256_CBC_SHA384
- *      MBEDTLS_TLS_RSA_PSK_WITH_ARIA_128_CBC_SHA256
- *      MBEDTLS_TLS_RSA_PSK_WITH_ARIA_256_CBC_SHA384
- *      MBEDTLS_TLS_PSK_WITH_ARIA_128_GCM_SHA256
- *      MBEDTLS_TLS_PSK_WITH_ARIA_256_GCM_SHA384
- *      MBEDTLS_TLS_DHE_PSK_WITH_ARIA_128_GCM_SHA256
- *      MBEDTLS_TLS_DHE_PSK_WITH_ARIA_256_GCM_SHA384
- *      MBEDTLS_TLS_RSA_PSK_WITH_ARIA_128_GCM_SHA256
- *      MBEDTLS_TLS_RSA_PSK_WITH_ARIA_256_GCM_SHA384
- *      MBEDTLS_TLS_ECDHE_PSK_WITH_ARIA_128_CBC_SHA256
- *      MBEDTLS_TLS_ECDHE_PSK_WITH_ARIA_256_CBC_SHA384
- */
-#define MBEDTLS_ARIA_C
-
-/**
- * \def MBEDTLS_CCM_C
- *
- * Enable the Counter with CBC-MAC (CCM) mode for 128-bit block cipher.
- *
- * Module:  library/ccm.c
- *
- * Requires: MBEDTLS_CIPHER_C, MBEDTLS_AES_C or MBEDTLS_CAMELLIA_C or
- *                             MBEDTLS_ARIA_C
- *
- * This module enables the AES-CCM ciphersuites, if other requisites are
- * enabled as well.
- */
-#define MBEDTLS_CCM_C
-
-/**
- * \def MBEDTLS_CHACHA20_C
- *
- * Enable the ChaCha20 stream cipher.
- *
- * Module:  library/chacha20.c
- */
-#define MBEDTLS_CHACHA20_C
-
-/**
- * \def MBEDTLS_CHACHAPOLY_C
- *
- * Enable the ChaCha20-Poly1305 AEAD algorithm.
- *
- * Module:  library/chachapoly.c
- *
- * This module requires: MBEDTLS_CHACHA20_C, MBEDTLS_POLY1305_C
- */
-#define MBEDTLS_CHACHAPOLY_C
-
-/**
- * \def MBEDTLS_CIPHER_C
- *
- * Enable the generic cipher layer.
- *
- * Module:  library/cipher.c
- * Caller:  library/ccm.c
- *          library/cmac.c
- *          library/gcm.c
- *          library/nist_kw.c
- *          library/pkcs12.c
- *          library/pkcs5.c
- *          library/psa_crypto_aead.c
- *          library/psa_crypto_mac.c
- *          library/ssl_ciphersuites.c
- *          library/ssl_msg.c
- *          library/ssl_ticket.c (unless MBEDTLS_USE_PSA_CRYPTO is enabled)
- * Auto-enabled by: MBEDTLS_PSA_CRYPTO_C depending on which ciphers are enabled
- *                  (see the documentation of that option for details).
- *
- * Uncomment to enable generic cipher wrappers.
- */
-#define MBEDTLS_CIPHER_C
-
-/**
- * \def MBEDTLS_CMAC_C
- *
- * Enable the CMAC (Cipher-based Message Authentication Code) mode for block
- * ciphers.
- *
- * \note When #MBEDTLS_CMAC_ALT is active, meaning that the underlying
- *       implementation of the CMAC algorithm is provided by an alternate
- *       implementation, that alternate implementation may opt to not support
- *       AES-192 or 3DES as underlying block ciphers for the CMAC operation.
- *
- * Module:  library/cmac.c
- *
- * Requires: MBEDTLS_CIPHER_C, MBEDTLS_AES_C or MBEDTLS_DES_C
- *
- */
-#define MBEDTLS_CMAC_C
-
-/**
- * \def MBEDTLS_CTR_DRBG_C
- *
- * Enable the CTR_DRBG AES-based random generator.
- * The CTR_DRBG generator uses AES-256 by default.
- * To use AES-128 instead, enable \c MBEDTLS_CTR_DRBG_USE_128_BIT_KEY above.
- *
- * AES support can either be achieved through builtin (MBEDTLS_AES_C) or PSA.
- * Builtin is the default option when MBEDTLS_AES_C is defined otherwise PSA
- * is used.
- *
- * \warning When using PSA, the user should call `psa_crypto_init()` before
- *          using any CTR_DRBG operation (except `mbedtls_ctr_drbg_init()`).
- *
- * \note AES-128 will be used if \c MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH is set.
- *
- * \note To achieve a 256-bit security strength with CTR_DRBG,
- *       you must use AES-256 *and* use sufficient entropy.
- *       See ctr_drbg.h for more details.
- *
- * Module:  library/ctr_drbg.c
- * Caller:
- *
- * Requires: MBEDTLS_AES_C or
- *           (PSA_WANT_KEY_TYPE_AES and PSA_WANT_ALG_ECB_NO_PADDING and
- *            MBEDTLS_PSA_CRYPTO_C)
- *
- * This module provides the CTR_DRBG AES random number generator.
- */
-#define MBEDTLS_CTR_DRBG_C
-
-/**
- * \def MBEDTLS_DEBUG_C
- *
- * Enable the debug functions.
- *
- * Module:  library/debug.c
- * Caller:  library/ssl_msg.c
- *          library/ssl_tls.c
- *          library/ssl_tls12_*.c
- *          library/ssl_tls13_*.c
- *
- * This module provides debugging functions.
- */
-#define MBEDTLS_DEBUG_C
-
-/**
- * \def MBEDTLS_DES_C
- *
- * Enable the DES block cipher.
- *
- * Module:  library/des.c
- * Caller:  library/pem.c
- *          library/cipher.c
- *
- * PEM_PARSE uses DES/3DES for decrypting encrypted keys.
- *
- * \warning   DES/3DES are considered weak ciphers and their use constitutes a
- *            security risk. We recommend considering stronger ciphers instead.
- */
-#define MBEDTLS_DES_C
-
-/**
- * \def MBEDTLS_DHM_C
- *
- * Enable the Diffie-Hellman-Merkle module.
- *
- * Module:  library/dhm.c
- * Caller:  library/ssl_tls.c
- *          library/ssl*_client.c
- *          library/ssl*_server.c
- *
- * This module is used by the following key exchanges:
- *      DHE-RSA, DHE-PSK
- *
- * \warning    Using DHE constitutes a security risk as it
- *             is not possible to validate custom DH parameters.
- *             If possible, it is recommended users should consider
- *             preferring other methods of key exchange.
- *             See dhm.h for more details.
- *
- */
-#define MBEDTLS_DHM_C
-
-/**
- * \def MBEDTLS_ECDH_C
- *
- * Enable the elliptic curve Diffie-Hellman library.
- *
- * Module:  library/ecdh.c
- * Caller:  library/psa_crypto.c
- *          library/ssl_tls.c
- *          library/ssl*_client.c
- *          library/ssl*_server.c
- *
- * This module is used by the following key exchanges:
- *      ECDHE-ECDSA, ECDHE-RSA, DHE-PSK
- *
- * Requires: MBEDTLS_ECP_C
- */
-#define MBEDTLS_ECDH_C
-
-/**
- * \def MBEDTLS_ECDSA_C
- *
- * Enable the elliptic curve DSA library.
- *
- * Module:  library/ecdsa.c
- * Caller:
- *
- * This module is used by the following key exchanges:
- *      ECDHE-ECDSA
- *
- * Requires: MBEDTLS_ECP_C, MBEDTLS_ASN1_WRITE_C, MBEDTLS_ASN1_PARSE_C,
- *           and at least one MBEDTLS_ECP_DP_XXX_ENABLED for a
- *           short Weierstrass curve.
- */
-#define MBEDTLS_ECDSA_C
-
-/**
- * \def MBEDTLS_ECJPAKE_C
- *
- * Enable the elliptic curve J-PAKE library.
- *
- * \note EC J-PAKE support is based on the Thread v1.0.0 specification.
- *       It has not been reviewed for compliance with newer standards such as
- *       Thread v1.1 or RFC 8236.
- *
- * Module:  library/ecjpake.c
- * Caller:
- *
- * This module is used by the following key exchanges:
- *      ECJPAKE
- *
- * Requires: MBEDTLS_ECP_C and either MBEDTLS_MD_C or MBEDTLS_PSA_CRYPTO_C
- *
- * \warning If using a hash that is only provided by PSA drivers, you must
- * call psa_crypto_init() before doing any EC J-PAKE operations.
- */
-#define MBEDTLS_ECJPAKE_C
-
-/**
- * \def MBEDTLS_ECP_C
- *
- * Enable the elliptic curve over GF(p) library.
- *
- * Module:  library/ecp.c
- * Caller:  library/ecdh.c
- *          library/ecdsa.c
- *          library/ecjpake.c
- *
- * Requires: MBEDTLS_BIGNUM_C and at least one MBEDTLS_ECP_DP_XXX_ENABLED
- */
-#define MBEDTLS_ECP_C
-
-/**
- * \def MBEDTLS_ENTROPY_C
- *
- * Enable the platform-specific entropy code.
- *
- * Module:  library/entropy.c
- * Caller:
- *
- * Requires: MBEDTLS_SHA512_C or MBEDTLS_SHA256_C
- *
- * This module provides a generic entropy pool
- */
-#define MBEDTLS_ENTROPY_C
-
-/**
- * \def MBEDTLS_ERROR_C
- *
- * Enable error code to error string conversion.
- *
- * Module:  library/error.c
- * Caller:
- *
- * This module enables mbedtls_strerror().
- */
-#define MBEDTLS_ERROR_C
-
-/**
- * \def MBEDTLS_GCM_C
- *
- * Enable the Galois/Counter Mode (GCM).
- *
- * Module:  library/gcm.c
- *
- * Requires: MBEDTLS_CIPHER_C, MBEDTLS_AES_C or MBEDTLS_CAMELLIA_C or
- *                             MBEDTLS_ARIA_C
- *
- * This module enables the AES-GCM and CAMELLIA-GCM ciphersuites, if other
- * requisites are enabled as well.
- */
-#define MBEDTLS_GCM_C
-
-/**
- * \def MBEDTLS_GCM_LARGE_TABLE
- *
- * Enable large pre-computed tables for  Galois/Counter Mode (GCM).
- * Can significantly increase throughput on systems without GCM hardware
- * acceleration (e.g., AESNI, AESCE).
- *
- * The mbedtls_gcm_context size will increase by 3840 bytes.
- * The code size will increase by roughly 344 bytes.
- *
- * Module:  library/gcm.c
- *
- * Requires: MBEDTLS_GCM_C
- */
-//#define MBEDTLS_GCM_LARGE_TABLE
-
-/**
- * \def MBEDTLS_HKDF_C
- *
- * Enable the HKDF algorithm (RFC 5869).
- *
- * Module:  library/hkdf.c
- * Caller:
- *
- * Requires: MBEDTLS_MD_C
- *
- * This module adds support for the Hashed Message Authentication Code
- * (HMAC)-based key derivation function (HKDF).
- */
-#define MBEDTLS_HKDF_C
-
-/**
- * \def MBEDTLS_HMAC_DRBG_C
- *
- * Enable the HMAC_DRBG random generator.
- *
- * Module:  library/hmac_drbg.c
- * Caller:
- *
- * Requires: MBEDTLS_MD_C
- *
- * Uncomment to enable the HMAC_DRBG random number generator.
- */
-#define MBEDTLS_HMAC_DRBG_C
-
-/**
- * \def MBEDTLS_LMS_C
- *
- * Enable the LMS stateful-hash asymmetric signature algorithm.
- *
- * Module:  library/lms.c
- * Caller:
- *
- * Requires: MBEDTLS_PSA_CRYPTO_C
- *
- * Uncomment to enable the LMS verification algorithm and public key operations.
- */
-#define MBEDTLS_LMS_C
-
-/**
- * \def MBEDTLS_LMS_PRIVATE
- *
- * Enable LMS private-key operations and signing code. Functions enabled by this
- * option are experimental, and should not be used in production.
- *
- * Requires: MBEDTLS_LMS_C
- *
- * Uncomment to enable the LMS signature algorithm and private key operations.
- */
-//#define MBEDTLS_LMS_PRIVATE
-
-/**
- * \def MBEDTLS_NIST_KW_C
- *
- * Enable the Key Wrapping mode for 128-bit block ciphers,
- * as defined in NIST SP 800-38F. Only KW and KWP modes
- * are supported. At the moment, only AES is approved by NIST.
- *
- * Module:  library/nist_kw.c
- *
- * Requires: MBEDTLS_AES_C and MBEDTLS_CIPHER_C
- */
-#define MBEDTLS_NIST_KW_C
-
-/**
- * \def MBEDTLS_MD_C
- *
- * Enable the generic layer for message digest (hashing) and HMAC.
- *
- * Requires: one of: MBEDTLS_MD5_C, MBEDTLS_RIPEMD160_C, MBEDTLS_SHA1_C,
- *                   MBEDTLS_SHA224_C, MBEDTLS_SHA256_C, MBEDTLS_SHA384_C,
- *                   MBEDTLS_SHA512_C, or MBEDTLS_PSA_CRYPTO_C with at least
- *                   one hash.
- * Module:  library/md.c
- * Caller:  library/constant_time.c
- *          library/ecdsa.c
- *          library/ecjpake.c
- *          library/hkdf.c
- *          library/hmac_drbg.c
- *          library/pk.c
- *          library/pkcs5.c
- *          library/pkcs12.c
- *          library/psa_crypto_ecp.c
- *          library/psa_crypto_rsa.c
- *          library/rsa.c
- *          library/ssl_cookie.c
- *          library/ssl_msg.c
- *          library/ssl_tls.c
- *          library/x509.c
- *          library/x509_crt.c
- *          library/x509write_crt.c
- *          library/x509write_csr.c
- *
- * Uncomment to enable generic message digest wrappers.
- */
-#define MBEDTLS_MD_C
-
-/**
- * \def MBEDTLS_MD5_C
- *
- * Enable the MD5 hash algorithm.
- *
- * Module:  library/md5.c
- * Caller:  library/md.c
- *          library/pem.c
- *          library/ssl_tls.c
- *
- * This module is required for TLS 1.2 depending on the handshake parameters.
- * Further, it is used for checking MD5-signed certificates, and for PBKDF1
- * when decrypting PEM-encoded encrypted keys.
- *
- * \warning   MD5 is considered a weak message digest and its use constitutes a
- *            security risk. If possible, we recommend avoiding dependencies on
- *            it, and considering stronger message digests instead.
- *
- */
-#define MBEDTLS_MD5_C
-
-/**
- * \def MBEDTLS_MEMORY_BUFFER_ALLOC_C
- *
- * Enable the buffer allocator implementation that makes use of a (stack)
- * based buffer to 'allocate' dynamic memory. (replaces calloc() and free()
- * calls)
- *
- * Module:  library/memory_buffer_alloc.c
- *
- * Requires: MBEDTLS_PLATFORM_C
- *           MBEDTLS_PLATFORM_MEMORY (to use it within Mbed TLS)
- *
- * Enable this module to enable the buffer memory allocator.
- */
-//#define MBEDTLS_MEMORY_BUFFER_ALLOC_C
-
-/**
- * \def MBEDTLS_NET_C
- *
- * Enable the TCP and UDP over IPv6/IPv4 networking routines.
- *
- * \note This module only works on POSIX/Unix (including Linux, BSD and OS X)
- * and Windows. For other platforms, you'll want to disable it, and write your
- * own networking callbacks to be passed to \c mbedtls_ssl_set_bio().
- *
- * \note See also our Knowledge Base article about porting to a new
- * environment:
- * https://mbed-tls.readthedocs.io/en/latest/kb/how-to/how-do-i-port-mbed-tls-to-a-new-environment-OS
- *
- * Module:  library/net_sockets.c
- *
- * This module provides networking routines.
- */
-#define MBEDTLS_NET_C
-
-/**
- * \def MBEDTLS_OID_C
- *
- * Enable the OID database.
- *
- * Module:  library/oid.c
- * Caller:  library/asn1write.c
- *          library/pkcs5.c
- *          library/pkparse.c
- *          library/pkwrite.c
- *          library/rsa.c
- *          library/x509.c
- *          library/x509_create.c
- *          library/x509_crl.c
- *          library/x509_crt.c
- *          library/x509_csr.c
- *          library/x509write_crt.c
- *          library/x509write_csr.c
- *
- * This modules translates between OIDs and internal values.
- */
-#define MBEDTLS_OID_C
-
-/**
- * \def MBEDTLS_PADLOCK_C
- *
- * Enable VIA Padlock support on x86.
- *
- * Module:  library/padlock.c
- * Caller:  library/aes.c
- *
- * Requires: MBEDTLS_HAVE_ASM
- *
- * This modules adds support for the VIA PadLock on x86.
- */
-#define MBEDTLS_PADLOCK_C
-
-/**
- * \def MBEDTLS_PEM_PARSE_C
- *
- * Enable PEM decoding / parsing.
- *
- * Module:  library/pem.c
- * Caller:  library/dhm.c
- *          library/pkparse.c
- *          library/x509_crl.c
- *          library/x509_crt.c
- *          library/x509_csr.c
- *
- * Requires: MBEDTLS_BASE64_C
- *           optionally MBEDTLS_MD5_C, or PSA Crypto with MD5 (see below)
- *
- * \warning When parsing password-protected files, if MD5 is provided only by
- * a PSA driver, you must call psa_crypto_init() before the first file.
- *
- * This modules adds support for decoding / parsing PEM files.
- */
-#define MBEDTLS_PEM_PARSE_C
-
-/**
- * \def MBEDTLS_PEM_WRITE_C
- *
- * Enable PEM encoding / writing.
- *
- * Module:  library/pem.c
- * Caller:  library/pkwrite.c
- *          library/x509write_crt.c
- *          library/x509write_csr.c
- *
- * Requires: MBEDTLS_BASE64_C
- *
- * This modules adds support for encoding / writing PEM files.
- */
-#define MBEDTLS_PEM_WRITE_C
-
-/**
- * \def MBEDTLS_PK_C
- *
- * Enable the generic public (asymmetric) key layer.
- *
- * Module:  library/pk.c
- * Caller:  library/psa_crypto_rsa.c
- *          library/ssl_tls.c
- *          library/ssl*_client.c
- *          library/ssl*_server.c
- *          library/x509.c
- *
- * Requires: MBEDTLS_MD_C, MBEDTLS_RSA_C or MBEDTLS_ECP_C
- *
- * Uncomment to enable generic public key wrappers.
- */
-#define MBEDTLS_PK_C
-
-/**
- * \def MBEDTLS_PK_PARSE_C
- *
- * Enable the generic public (asymmetric) key parser.
- *
- * Module:  library/pkparse.c
- * Caller:  library/x509_crt.c
- *          library/x509_csr.c
- *
- * Requires: MBEDTLS_ASN1_PARSE_C, MBEDTLS_OID_C, MBEDTLS_PK_C
- *
- * Uncomment to enable generic public key parse functions.
- */
-#define MBEDTLS_PK_PARSE_C
-
-/**
- * \def MBEDTLS_PK_WRITE_C
- *
- * Enable the generic public (asymmetric) key writer.
- *
- * Module:  library/pkwrite.c
- * Caller:  library/x509write.c
- *
- * Requires: MBEDTLS_ASN1_WRITE_C, MBEDTLS_OID_C, MBEDTLS_PK_C
- *
- * Uncomment to enable generic public key write functions.
- */
-#define MBEDTLS_PK_WRITE_C
-
-/**
- * \def MBEDTLS_PKCS5_C
- *
- * Enable PKCS#5 functions.
- *
- * Module:  library/pkcs5.c
- *
- * Auto-enables: MBEDTLS_MD_C
- *
- * \warning If using a hash that is only provided by PSA drivers, you must
- * call psa_crypto_init() before doing any PKCS5 operations.
- *
- * This module adds support for the PKCS#5 functions.
- */
-#define MBEDTLS_PKCS5_C
-
-/**
- * \def MBEDTLS_PKCS7_C
- *
- * Enable PKCS #7 core for using PKCS #7-formatted signatures.
- * RFC Link - https://tools.ietf.org/html/rfc2315
- *
- * Module:  library/pkcs7.c
- *
- * Requires: MBEDTLS_ASN1_PARSE_C, MBEDTLS_OID_C, MBEDTLS_PK_PARSE_C,
- *           MBEDTLS_X509_CRT_PARSE_C MBEDTLS_X509_CRL_PARSE_C,
- *           MBEDTLS_BIGNUM_C, MBEDTLS_MD_C
- *
- * This module is required for the PKCS #7 parsing modules.
- */
-#define MBEDTLS_PKCS7_C
-
-/**
- * \def MBEDTLS_PKCS12_C
- *
- * Enable PKCS#12 PBE functions.
- * Adds algorithms for parsing PKCS#8 encrypted private keys
- *
- * Module:  library/pkcs12.c
- * Caller:  library/pkparse.c
- *
- * Requires: MBEDTLS_ASN1_PARSE_C and either MBEDTLS_MD_C or
- *           MBEDTLS_PSA_CRYPTO_C.
- *
- * \warning If using a hash that is only provided by PSA drivers, you must
- * call psa_crypto_init() before doing any PKCS12 operations.
- *
- * This module enables PKCS#12 functions.
- */
-#define MBEDTLS_PKCS12_C
-
-/**
- * \def MBEDTLS_PLATFORM_C
- *
- * Enable the platform abstraction layer that allows you to re-assign
- * functions like calloc(), free(), snprintf(), printf(), fprintf(), exit().
- *
- * Enabling MBEDTLS_PLATFORM_C enables to use of MBEDTLS_PLATFORM_XXX_ALT
- * or MBEDTLS_PLATFORM_XXX_MACRO directives, allowing the functions mentioned
- * above to be specified at runtime or compile time respectively.
- *
- * \note This abstraction layer must be enabled on Windows (including MSYS2)
- * as other modules rely on it for a fixed snprintf implementation.
- *
- * Module:  library/platform.c
- * Caller:  Most other .c files
- *
- * This module enables abstraction of common (libc) functions.
- */
-#define MBEDTLS_PLATFORM_C
-
-/**
- * \def MBEDTLS_POLY1305_C
- *
- * Enable the Poly1305 MAC algorithm.
- *
- * Module:  library/poly1305.c
- * Caller:  library/chachapoly.c
- */
-#define MBEDTLS_POLY1305_C
-
-/**
- * \def MBEDTLS_PSA_CRYPTO_C
- *
- * Enable the Platform Security Architecture (PSA) cryptography API.
- *
- * \note In multithreaded applications, you must enable #MBEDTLS_THREADING_C,
- *       unless only one thread ever calls `psa_xxx()` functions.
- *       That includes indirect calls, such as:
- *       - performing a TLS handshake if support for TLS 1.3 is enabled;
- *       - using a TLS 1.3 connection;
- *       - indirect calls from PK, X.509 or SSL functions when
- *         #MBEDTLS_USE_PSA_CRYPTO is enabled;
- *       - indirect calls to calculate a hash when #MBEDTLS_MD_C is disabled;
- *       - any other call to a function that requires calling psa_crypto_init()
- *         beforehand.
- *
- * Module:  library/psa_crypto.c
- *
- * Requires: either MBEDTLS_CTR_DRBG_C and MBEDTLS_ENTROPY_C,
- *           or MBEDTLS_HMAC_DRBG_C and MBEDTLS_ENTROPY_C,
- *           or MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG.
- * Auto-enables: MBEDTLS_CIPHER_C if any unauthenticated (ie, non-AEAD) cipher
- *               is enabled in PSA (unless it's fully accelerated, see
- *               docs/driver-only-builds.md about that).
- */
-#define MBEDTLS_PSA_CRYPTO_C
-
-/**
- * \def MBEDTLS_PSA_CRYPTO_SE_C
- *
- * Enable dynamic secure element support in the Platform Security Architecture
- * cryptography API.
- *
- * \deprecated This feature is deprecated. Please switch to the PSA driver
- *             interface.
- *
- * \warning    This feature is not thread-safe, and should not be used in a
- *             multi-threaded environment.
- *
- * Module:  library/psa_crypto_se.c
- *
- * Requires: MBEDTLS_PSA_CRYPTO_C, MBEDTLS_PSA_CRYPTO_STORAGE_C
- *
- */
-//#define MBEDTLS_PSA_CRYPTO_SE_C
-
-/**
- * \def MBEDTLS_PSA_CRYPTO_STORAGE_C
- *
- * Enable the Platform Security Architecture persistent key storage.
- *
- * Module:  library/psa_crypto_storage.c
- *
- * Requires: MBEDTLS_PSA_CRYPTO_C,
- *           either MBEDTLS_PSA_ITS_FILE_C or a native implementation of
- *           the PSA ITS interface
- */
-#define MBEDTLS_PSA_CRYPTO_STORAGE_C
-
-/**
- * \def MBEDTLS_PSA_ITS_FILE_C
- *
- * Enable the emulation of the Platform Security Architecture
- * Internal Trusted Storage (PSA ITS) over files.
- *
- * Module:  library/psa_its_file.c
- *
- * Requires: MBEDTLS_FS_IO
- */
-#define MBEDTLS_PSA_ITS_FILE_C
-
-/**
- * \def MBEDTLS_PSA_STATIC_KEY_SLOTS
- *
- * Statically preallocate memory to store keys' material in PSA instead
- * of allocating it dynamically when required. This allows builds without a
- * heap, if none of the enabled cryptographic implementations or other features
- * require it.
- * This feature affects both volatile and persistent keys which means that
- * it's not possible to persistently store a key which is larger than
- * #MBEDTLS_PSA_STATIC_KEY_SLOT_BUFFER_SIZE.
- *
- * \note This feature comes with a (potentially) higher RAM usage since:
- *       - All the key slots are allocated no matter if they are used or not.
- *       - Each key buffer's length is #MBEDTLS_PSA_STATIC_KEY_SLOT_BUFFER_SIZE bytes.
- *
- * Requires: MBEDTLS_PSA_CRYPTO_C
- *
- */
-//#define MBEDTLS_PSA_STATIC_KEY_SLOTS
-
-/**
- * \def MBEDTLS_RIPEMD160_C
- *
- * Enable the RIPEMD-160 hash algorithm.
- *
- * Module:  library/ripemd160.c
- * Caller:  library/md.c
- *
- */
-#define MBEDTLS_RIPEMD160_C
-
-/**
- * \def MBEDTLS_RSA_C
- *
- * Enable the RSA public-key cryptosystem.
- *
- * Module:  library/rsa.c
- *          library/rsa_alt_helpers.c
- * Caller:  library/pk.c
- *          library/psa_crypto.c
- *          library/ssl_tls.c
- *          library/ssl*_client.c
- *          library/ssl*_server.c
- *
- * This module is used by the following key exchanges:
- *      RSA, DHE-RSA, ECDHE-RSA, RSA-PSK
- *
- * Requires: MBEDTLS_BIGNUM_C, MBEDTLS_OID_C
- */
-#define MBEDTLS_RSA_C
-
-/**
- * \def MBEDTLS_SHA1_C
- *
- * Enable the SHA1 cryptographic hash algorithm.
- *
- * Module:  library/sha1.c
- * Caller:  library/md.c
- *          library/psa_crypto_hash.c
- *
- * This module is required for TLS 1.2 depending on the handshake parameters,
- * and for SHA1-signed certificates.
- *
- * \warning   SHA-1 is considered a weak message digest and its use constitutes
- *            a security risk. If possible, we recommend avoiding dependencies
- *            on it, and considering stronger message digests instead.
- *
- */
-#define MBEDTLS_SHA1_C
-
-/**
- * \def MBEDTLS_SHA224_C
- *
- * Enable the SHA-224 cryptographic hash algorithm.
- *
- * Module:  library/sha256.c
- * Caller:  library/md.c
- *          library/ssl_cookie.c
- *
- * This module adds support for SHA-224.
- */
-#define MBEDTLS_SHA224_C
-
-/**
- * \def MBEDTLS_SHA256_C
- *
- * Enable the SHA-256 cryptographic hash algorithm.
- *
- * Module:  library/sha256.c
- * Caller:  library/entropy.c
- *          library/md.c
- *          library/ssl_tls.c
- *          library/ssl*_client.c
- *          library/ssl*_server.c
- *
- * This module adds support for SHA-256.
- * This module is required for the SSL/TLS 1.2 PRF function.
- */
-#define MBEDTLS_SHA256_C
-
-/**
- * \def MBEDTLS_SHA256_USE_ARMV8_A_CRYPTO_IF_PRESENT
- *
- * Enable acceleration of the SHA-256 and SHA-224 cryptographic hash algorithms
- * with the ARMv8 cryptographic extensions if they are available at runtime.
- * If not, the library will fall back to the C implementation.
- *
- * \note If MBEDTLS_SHA256_USE_ARMV8_A_CRYPTO_IF_PRESENT is defined when building
- * for a non-Armv8-A build it will be silently ignored.
- *
- * \note    Minimum compiler versions for this feature are Clang 4.0,
- * armclang 6.6 or GCC 6.0.
- *
- * \note \c CFLAGS must be set to a minimum of \c -march=armv8-a+crypto for
- * armclang <= 6.9
- *
- * \note This was previously known as MBEDTLS_SHA256_USE_A64_CRYPTO_IF_PRESENT.
- * That name is deprecated, but may still be used as an alternative form for this
- * option.
- *
- * \warning MBEDTLS_SHA256_USE_ARMV8_A_CRYPTO_IF_PRESENT cannot be defined at the
- * same time as MBEDTLS_SHA256_USE_ARMV8_A_CRYPTO_ONLY.
- *
- * Requires: MBEDTLS_SHA256_C.
- *
- * Module:  library/sha256.c
- *
- * Uncomment to have the library check for the Armv8-A SHA-256 crypto extensions
- * and use them if available.
- */
-//#define MBEDTLS_SHA256_USE_ARMV8_A_CRYPTO_IF_PRESENT
-
-/**
- * \def MBEDTLS_SHA256_USE_A64_CRYPTO_IF_PRESENT
- *
- * \deprecated This is now known as MBEDTLS_SHA256_USE_ARMV8_A_CRYPTO_IF_PRESENT.
- * This name is now deprecated, but may still be used as an alternative form for
- * this option.
- */
-//#define MBEDTLS_SHA256_USE_A64_CRYPTO_IF_PRESENT
-
-/**
- * \def MBEDTLS_SHA256_USE_ARMV8_A_CRYPTO_ONLY
- *
- * Enable acceleration of the SHA-256 and SHA-224 cryptographic hash algorithms
- * with the ARMv8 cryptographic extensions, which must be available at runtime
- * or else an illegal instruction fault will occur.
- *
- * \note This allows builds with a smaller code size than with
- * MBEDTLS_SHA256_USE_ARMV8_A_CRYPTO_IF_PRESENT
- *
- * \note    Minimum compiler versions for this feature are Clang 4.0,
- * armclang 6.6 or GCC 6.0.
- *
- * \note \c CFLAGS must be set to a minimum of \c -march=armv8-a+crypto for
- * armclang <= 6.9
- *
- * \note This was previously known as MBEDTLS_SHA256_USE_A64_CRYPTO_ONLY.
- * That name is deprecated, but may still be used as an alternative form for this
- * option.
- *
- * \warning MBEDTLS_SHA256_USE_ARMV8_A_CRYPTO_ONLY cannot be defined at the same
- * time as MBEDTLS_SHA256_USE_ARMV8_A_CRYPTO_IF_PRESENT.
- *
- * Requires: MBEDTLS_SHA256_C.
- *
- * Module:  library/sha256.c
- *
- * Uncomment to have the library use the Armv8-A SHA-256 crypto extensions
- * unconditionally.
- */
-//#define MBEDTLS_SHA256_USE_ARMV8_A_CRYPTO_ONLY
-
-/**
- * \def MBEDTLS_SHA256_USE_A64_CRYPTO_ONLY
- *
- * \deprecated This is now known as MBEDTLS_SHA256_USE_ARMV8_A_CRYPTO_ONLY.
- * This name is now deprecated, but may still be used as an alternative form for
- * this option.
- */
-//#define MBEDTLS_SHA256_USE_A64_CRYPTO_ONLY
-
-/**
- * \def MBEDTLS_SHA384_C
- *
- * Enable the SHA-384 cryptographic hash algorithm.
+ * Enable serialization of the TLS context structures, through use of the
+ * functions mbedtls_ssl_context_save() and mbedtls_ssl_context_load().
  *
- * Module:  library/sha512.c
- * Caller:  library/md.c
- *          library/psa_crypto_hash.c
- *          library/ssl_tls.c
- *          library/ssl*_client.c
- *          library/ssl*_server.c
+ * This pair of functions allows one side of a connection to serialize the
+ * context associated with the connection, then free or re-use that context
+ * while the serialized state is persisted elsewhere, and finally deserialize
+ * that state to a live context for resuming read/write operations on the
+ * connection. From a protocol perspective, the state of the connection is
+ * unaffected, in particular this is entirely transparent to the peer.
  *
- * Comment to disable SHA-384
- */
-#define MBEDTLS_SHA384_C
-
-/**
- * \def MBEDTLS_SHA512_C
+ * Note: this is distinct from TLS session resumption, which is part of the
+ * protocol and fully visible by the peer. TLS session resumption enables
+ * establishing new connections associated to a saved session with shorter,
+ * lighter handshakes, while context serialization is a local optimization in
+ * handling a single, potentially long-lived connection.
  *
- * Enable SHA-512 cryptographic hash algorithms.
+ * Enabling these APIs makes some SSL structures larger, as 64 extra bytes are
+ * saved after the handshake to allow for more efficient serialization, so if
+ * you don't need this feature you'll save RAM by disabling it.
  *
- * Module:  library/sha512.c
- * Caller:  library/entropy.c
- *          library/md.c
- *          library/ssl_tls.c
- *          library/ssl_cookie.c
+ * Requires: PSA_WANT_ALG_GCM or PSA_WANT_ALG_CCM or PSA_WANT_ALG_CHACHA20_POLY1305
  *
- * This module adds support for SHA-512.
+ * Comment to disable the context serialization APIs.
  */
-#define MBEDTLS_SHA512_C
+#define MBEDTLS_SSL_CONTEXT_SERIALIZATION

 /**
- * \def MBEDTLS_SHA3_C
- *
- * Enable the SHA3 cryptographic hash algorithm.
+ * \def MBEDTLS_SSL_COOKIE_C
  *
- * Module:  library/sha3.c
+ * Enable basic implementation of DTLS cookies for hello verification.
  *
- * This module adds support for SHA3.
+ * Module:  library/ssl_cookie.c
+ * Caller:
  */
-#define MBEDTLS_SHA3_C
+#define MBEDTLS_SSL_COOKIE_C

 /**
- * \def MBEDTLS_SHA512_USE_A64_CRYPTO_IF_PRESENT
- *
- * Enable acceleration of the SHA-512 and SHA-384 cryptographic hash algorithms
- * with the ARMv8 cryptographic extensions if they are available at runtime.
- * If not, the library will fall back to the C implementation.
- *
- * \note If MBEDTLS_SHA512_USE_A64_CRYPTO_IF_PRESENT is defined when building
- * for a non-Aarch64 build it will be silently ignored.
- *
- * \note    Minimum compiler versions for this feature are Clang 7.0,
- * armclang 6.9 or GCC 8.0.
- *
- * \note \c CFLAGS must be set to a minimum of \c -march=armv8.2-a+sha3 for
- * armclang 6.9
+ * \def MBEDTLS_SSL_DEBUG_ALL
  *
- * \warning MBEDTLS_SHA512_USE_A64_CRYPTO_IF_PRESENT cannot be defined at the
- * same time as MBEDTLS_SHA512_USE_A64_CRYPTO_ONLY.
+ * Enable the debug messages in SSL module for all issues.
+ * Debug messages have been disabled in some places to prevent timing
+ * attacks due to (unbalanced) debugging function calls.
  *
- * Requires: MBEDTLS_SHA512_C.
+ * If you need all error reporting you should enable this during debugging,
+ * but remove this for production servers that should log as well.
  *
- * Module:  library/sha512.c
+ * Uncomment this macro to report all debug messages on errors introducing
+ * a timing side-channel.
  *
- * Uncomment to have the library check for the A64 SHA-512 crypto extensions
- * and use them if available.
  */
-//#define MBEDTLS_SHA512_USE_A64_CRYPTO_IF_PRESENT
+//#define MBEDTLS_SSL_DEBUG_ALL

 /**
- * \def MBEDTLS_SHA512_USE_A64_CRYPTO_ONLY
- *
- * Enable acceleration of the SHA-512 and SHA-384 cryptographic hash algorithms
- * with the ARMv8 cryptographic extensions, which must be available at runtime
- * or else an illegal instruction fault will occur.
- *
- * \note This allows builds with a smaller code size than with
- * MBEDTLS_SHA512_USE_A64_CRYPTO_IF_PRESENT
- *
- * \note    Minimum compiler versions for this feature are Clang 7.0,
- * armclang 6.9 or GCC 8.0.
- *
- * \note \c CFLAGS must be set to a minimum of \c -march=armv8.2-a+sha3 for
- * armclang 6.9
+ * \def MBEDTLS_SSL_DTLS_ANTI_REPLAY
  *
- * \warning MBEDTLS_SHA512_USE_A64_CRYPTO_ONLY cannot be defined at the same
- * time as MBEDTLS_SHA512_USE_A64_CRYPTO_IF_PRESENT.
+ * Enable support for the anti-replay mechanism in DTLS.
  *
- * Requires: MBEDTLS_SHA512_C.
+ * Requires: MBEDTLS_SSL_TLS_C
+ *           MBEDTLS_SSL_PROTO_DTLS
  *
- * Module:  library/sha512.c
+ * \warning Disabling this is often a security risk!
+ * See mbedtls_ssl_conf_dtls_anti_replay() for details.
  *
- * Uncomment to have the library use the A64 SHA-512 crypto extensions
- * unconditionally.
+ * Comment this to disable anti-replay in DTLS.
  */
-//#define MBEDTLS_SHA512_USE_A64_CRYPTO_ONLY
+#define MBEDTLS_SSL_DTLS_ANTI_REPLAY

 /**
- * \def MBEDTLS_SSL_CACHE_C
+ * \def MBEDTLS_SSL_DTLS_CLIENT_PORT_REUSE
  *
- * Enable simple SSL cache implementation.
+ * Enable server-side support for clients that reconnect from the same port.
  *
- * Module:  library/ssl_cache.c
- * Caller:
+ * Some clients unexpectedly close the connection and try to reconnect using the
+ * same source port. This needs special support from the server to handle the
+ * new connection securely, as described in section 4.2.8 of RFC 6347. This
+ * flag enables that support.
  *
- * Requires: MBEDTLS_SSL_CACHE_C
+ * Requires: MBEDTLS_SSL_DTLS_HELLO_VERIFY
+ *
+ * Comment this to disable support for clients reusing the source port.
  */
-#define MBEDTLS_SSL_CACHE_C
+#define MBEDTLS_SSL_DTLS_CLIENT_PORT_REUSE

 /**
- * \def MBEDTLS_SSL_COOKIE_C
+ * \def MBEDTLS_SSL_DTLS_CONNECTION_ID
  *
- * Enable basic implementation of DTLS cookies for hello verification.
+ * Enable support for the DTLS Connection ID (CID) extension,
+ * which allows to identify DTLS connections across changes
+ * in the underlying transport. The CID functionality is described
+ * in RFC 9146.
  *
- * Module:  library/ssl_cookie.c
- * Caller:
- */
-#define MBEDTLS_SSL_COOKIE_C
-
-/**
- * \def MBEDTLS_SSL_TICKET_C
+ * Setting this option enables the SSL APIs `mbedtls_ssl_set_cid()`,
+ * mbedtls_ssl_get_own_cid()`, `mbedtls_ssl_get_peer_cid()` and
+ * `mbedtls_ssl_conf_cid()`. See the corresponding documentation for
+ * more information.
  *
- * Enable an implementation of TLS server-side callbacks for session tickets.
+ * The maximum lengths of outgoing and incoming CIDs can be configured
+ * through the options
+ * - MBEDTLS_SSL_CID_OUT_LEN_MAX
+ * - MBEDTLS_SSL_CID_IN_LEN_MAX.
  *
- * Module:  library/ssl_ticket.c
- * Caller:
+ * Requires: MBEDTLS_SSL_PROTO_DTLS
  *
- * Requires: (MBEDTLS_CIPHER_C || MBEDTLS_USE_PSA_CRYPTO) &&
- *           (MBEDTLS_GCM_C || MBEDTLS_CCM_C || MBEDTLS_CHACHAPOLY_C)
+ * Uncomment to enable the Connection ID extension.
  */
-#define MBEDTLS_SSL_TICKET_C
+#define MBEDTLS_SSL_DTLS_CONNECTION_ID

 /**
- * \def MBEDTLS_SSL_CLI_C
+ * \def MBEDTLS_SSL_DTLS_HELLO_VERIFY
  *
- * Enable the SSL/TLS client code.
+ * Enable support for HelloVerifyRequest on DTLS servers.
  *
- * Module:  library/ssl*_client.c
- * Caller:
+ * This feature is highly recommended to prevent DTLS servers being used as
+ * amplifiers in DoS attacks against other hosts. It should always be enabled
+ * unless you know for sure amplification cannot be a problem in the
+ * environment in which your server operates.
  *
- * Requires: MBEDTLS_SSL_TLS_C
+ * \warning Disabling this can be a security risk! (see above)
  *
- * This module is required for SSL/TLS client support.
+ * Requires: MBEDTLS_SSL_PROTO_DTLS
+ *
+ * Comment this to disable support for HelloVerifyRequest.
  */
-#define MBEDTLS_SSL_CLI_C
+#define MBEDTLS_SSL_DTLS_HELLO_VERIFY

 /**
- * \def MBEDTLS_SSL_SRV_C
+ * \def MBEDTLS_SSL_DTLS_SRTP
  *
- * Enable the SSL/TLS server code.
+ * Enable support for negotiation of DTLS-SRTP (RFC 5764)
+ * through the use_srtp extension.
  *
- * Module:  library/ssl*_server.c
- * Caller:
+ * \note This feature provides the minimum functionality required
+ * to negotiate the use of DTLS-SRTP and to allow the derivation of
+ * the associated SRTP packet protection key material.
+ * In particular, the SRTP packet protection itself, as well as the
+ * demultiplexing of RTP and DTLS packets at the datagram layer
+ * (see Section 5 of RFC 5764), are not handled by this feature.
+ * Instead, after successful completion of a handshake negotiating
+ * the use of DTLS-SRTP, the extended key exporter API
+ * mbedtls_ssl_conf_export_keys_cb() should be used to implement
+ * the key exporter described in Section 4.2 of RFC 5764 and RFC 5705
+ * (this is implemented in the SSL example programs).
+ * The resulting key should then be passed to an SRTP stack.
  *
- * Requires: MBEDTLS_SSL_TLS_C
+ * Setting this option enables the runtime API
+ * mbedtls_ssl_conf_dtls_srtp_protection_profiles()
+ * through which the supported DTLS-SRTP protection
+ * profiles can be configured. You must call this API at
+ * runtime if you wish to negotiate the use of DTLS-SRTP.
  *
- * This module is required for SSL/TLS server support.
+ * Requires: MBEDTLS_SSL_PROTO_DTLS
+ *
+ * Uncomment this to enable support for use_srtp extension.
  */
-#define MBEDTLS_SSL_SRV_C
+//#define MBEDTLS_SSL_DTLS_SRTP

 /**
- * \def MBEDTLS_SSL_TLS_C
+ * \def MBEDTLS_SSL_EARLY_DATA
  *
- * Enable the generic SSL/TLS code.
+ * Enable support for RFC 8446 TLS 1.3 early data.
  *
- * Module:  library/ssl_tls.c
- * Caller:  library/ssl*_client.c
- *          library/ssl*_server.c
+ * Requires: MBEDTLS_SSL_SESSION_TICKETS and either
+ *           MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED or
+ *           MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
  *
- * Requires: MBEDTLS_CIPHER_C, MBEDTLS_MD_C
- *           and at least one of the MBEDTLS_SSL_PROTO_XXX defines
+ * Comment this to disable support for early data. If MBEDTLS_SSL_PROTO_TLS1_3
+ * is not enabled, this option does not have any effect on the build.
+ *
+ * \note The maximum amount of early data can be set with
+ *       MBEDTLS_SSL_MAX_EARLY_DATA_SIZE.
  *
- * This module is required for SSL/TLS.
- */
-#define MBEDTLS_SSL_TLS_C
-
-/**
- * \def MBEDTLS_THREADING_C
- *
- * Enable the threading abstraction layer.
- *
- * Traditionally, Mbed TLS assumes it is used in a non-threaded environment or
- * that contexts are not shared between threads. If you do intend to use contexts
- * between threads, you will need to enable this layer to prevent race
- * conditions.
- *
- * The PSA subsystem has an implicit shared context. Therefore, you must
- * enable this option if more than one thread may use any part of
- * Mbed TLS that is implemented on top of the PSA subsystem.
- *
- * You must enable this option in multithreaded applications where more than
- * one thread performs any of the following operations:
- *
- * - Any call to a PSA function (`psa_xxx()`).
- * - Any call to a TLS, X.509 or PK function (`mbedtls_ssl_xxx()`,
- *   `mbedtls_x509_xxx()`, `mbedtls_pkcs7_xxx()`, `mbedtls_pk_xxx()`)
- *   if `MBEDTLS_USE_PSA_CRYPTO` is enabled (regardless of whether individual
- *   TLS, X.509 or PK contexts are shared between threads).
- * - A TLS 1.3 connection, regardless of the compile-time configuration.
- * - Any library feature that calculates a hash, if `MBEDTLS_MD_C` is disabled.
- *   As an exception, algorithm-specific low-level modules do not require
- *   threading protection unless the contexts are shared between threads.
- * - Any library feature that performs symmetric encryption or decryption,
- *   if `MBEDTLS_CIPHER_C` is disabled.
- *   As an exception, algorithm-specific low-level modules do not require
- *   threading protection unless the contexts are shared between threads.
- * - Any use of a cryptographic context if the same context is used in
- *   multiple threads.
- * - Any call to a function where the documentation specifies that
- *   psa_crypto_init() must be called prior to that function.
- *
- * See also our Knowledge Base article about threading:
- * https://mbed-tls.readthedocs.io/en/latest/kb/development/thread-safety-and-multi-threading
- *
- * Module:  library/threading.c
- *
- * This allows different threading implementations (self-implemented or
- * provided).
- *
- * You will have to enable either MBEDTLS_THREADING_ALT or
- * MBEDTLS_THREADING_PTHREAD.
- *
- * Enable this layer to allow use of mutexes within Mbed TLS
  */
-//#define MBEDTLS_THREADING_C
+//#define MBEDTLS_SSL_EARLY_DATA

-/**
- * \def MBEDTLS_TIMING_C
+/** \def MBEDTLS_SSL_ENCRYPT_THEN_MAC
  *
- * Enable the semi-portable timing interface.
+ * Enable support for Encrypt-then-MAC, RFC 7366.
  *
- * \note The provided implementation only works on POSIX/Unix (including Linux,
- * BSD and OS X) and Windows. On other platforms, you can either disable that
- * module and provide your own implementations of the callbacks needed by
- * \c mbedtls_ssl_set_timer_cb() for DTLS, or leave it enabled and provide
- * your own implementation of the whole module by setting
- * \c MBEDTLS_TIMING_ALT in the current file.
+ * This allows peers that both support it to use a more robust protection for
+ * ciphersuites using CBC, providing deep resistance against timing attacks
+ * on the padding or underlying cipher.
  *
- * \note The timing module will include time.h on suitable platforms
- *       regardless of the setting of MBEDTLS_HAVE_TIME, unless
- *       MBEDTLS_TIMING_ALT is used. See timing.c for more information.
+ * This only affects CBC ciphersuites, and is useless if none is defined.
  *
- * \note See also our Knowledge Base article about porting to a new
- * environment:
- * https://mbed-tls.readthedocs.io/en/latest/kb/how-to/how-do-i-port-mbed-tls-to-a-new-environment-OS
+ * Requires: MBEDTLS_SSL_PROTO_TLS1_2
  *
- * Module:  library/timing.c
+ * Comment this macro to disable support for Encrypt-then-MAC
  */
-#define MBEDTLS_TIMING_C
+#define MBEDTLS_SSL_ENCRYPT_THEN_MAC

-/**
- * \def MBEDTLS_VERSION_C
+/** \def MBEDTLS_SSL_EXTENDED_MASTER_SECRET
  *
- * Enable run-time version information.
+ * Enable support for RFC 7627: Session Hash and Extended Master Secret
+ * Extension.
  *
- * Module:  library/version.c
+ * This was introduced as "the proper fix" to the Triple Handshake family of
+ * attacks, but it is recommended to always use it (even if you disable
+ * renegotiation), since it actually fixes a more fundamental issue in the
+ * original SSL/TLS design, and has implications beyond Triple Handshake.
  *
- * This module provides run-time version information.
+ * Requires: MBEDTLS_SSL_PROTO_TLS1_2
+ *
+ * Comment this macro to disable support for Extended Master Secret.
  */
-#define MBEDTLS_VERSION_C
+#define MBEDTLS_SSL_EXTENDED_MASTER_SECRET

 /**
- * \def MBEDTLS_X509_USE_C
- *
- * Enable X.509 core for using certificates.
- *
- * Module:  library/x509.c
- * Caller:  library/x509_crl.c
- *          library/x509_crt.c
- *          library/x509_csr.c
- *
- * Requires: MBEDTLS_ASN1_PARSE_C, MBEDTLS_BIGNUM_C, MBEDTLS_OID_C, MBEDTLS_PK_PARSE_C,
- *           (MBEDTLS_MD_C or MBEDTLS_USE_PSA_CRYPTO)
+ * \def MBEDTLS_SSL_KEEP_PEER_CERTIFICATE
  *
- * \warning If building with MBEDTLS_USE_PSA_CRYPTO, you must call
- * psa_crypto_init() before doing any X.509 operation.
+ * This option controls the availability of the API mbedtls_ssl_get_peer_cert()
+ * giving access to the peer's certificate after completion of the handshake.
  *
- * This module is required for the X.509 parsing modules.
- */
-#define MBEDTLS_X509_USE_C
-
-/**
- * \def MBEDTLS_X509_CRT_PARSE_C
+ * Unless you need mbedtls_ssl_peer_cert() in your application, it is
+ * recommended to disable this option for reduced RAM usage.
  *
- * Enable X.509 certificate parsing.
+ * \note If this option is disabled, mbedtls_ssl_get_peer_cert() is still
+ *       defined, but always returns \c NULL.
  *
- * Module:  library/x509_crt.c
- * Caller:  library/ssl_tls.c
- *          library/ssl*_client.c
- *          library/ssl*_server.c
+ * \note This option has no influence on the protection against the
+ *       triple handshake attack. Even if it is disabled, Mbed TLS will
+ *       still ensure that certificates do not change during renegotiation,
+ *       for example by keeping a hash of the peer's certificate.
  *
- * Requires: MBEDTLS_X509_USE_C
+ * \note This option is required if MBEDTLS_SSL_PROTO_TLS1_3 is set.
  *
- * This module is required for X.509 certificate parsing.
+ * Comment this macro to disable storing the peer's certificate
+ * after the handshake.
  */
-#define MBEDTLS_X509_CRT_PARSE_C
+#define MBEDTLS_SSL_KEEP_PEER_CERTIFICATE

 /**
- * \def MBEDTLS_X509_CRL_PARSE_C
- *
- * Enable X.509 CRL parsing.
- *
- * Module:  library/x509_crl.c
- * Caller:  library/x509_crt.c
+ * \def MBEDTLS_SSL_MAX_FRAGMENT_LENGTH
  *
- * Requires: MBEDTLS_X509_USE_C
+ * Enable support for RFC 6066 max_fragment_length extension in SSL.
  *
- * This module is required for X.509 CRL parsing.
+ * Comment this macro to disable support for the max_fragment_length extension
  */
-#define MBEDTLS_X509_CRL_PARSE_C
+#define MBEDTLS_SSL_MAX_FRAGMENT_LENGTH

 /**
- * \def MBEDTLS_X509_CSR_PARSE_C
+ * \def MBEDTLS_SSL_PROTO_DTLS
  *
- * Enable X.509 Certificate Signing Request (CSR) parsing.
+ * Enable support for DTLS (all available versions).
  *
- * Module:  library/x509_csr.c
- * Caller:  library/x509_crt_write.c
+ * Enable this and MBEDTLS_SSL_PROTO_TLS1_2 to enable DTLS 1.2.
  *
- * Requires: MBEDTLS_X509_USE_C
+ * Requires: MBEDTLS_SSL_PROTO_TLS1_2
  *
- * This module is used for reading X.509 certificate request.
+ * Comment this macro to disable support for DTLS
  */
-#define MBEDTLS_X509_CSR_PARSE_C
+#define MBEDTLS_SSL_PROTO_DTLS

 /**
- * \def MBEDTLS_X509_CREATE_C
- *
- * Enable X.509 core for creating certificates.
- *
- * Module:  library/x509_create.c
+ * \def MBEDTLS_SSL_PROTO_TLS1_2
  *
- * Requires: MBEDTLS_BIGNUM_C, MBEDTLS_OID_C, MBEDTLS_PK_PARSE_C,
- *           (MBEDTLS_MD_C or MBEDTLS_USE_PSA_CRYPTO)
+ * Enable support for TLS 1.2 (and DTLS 1.2 if DTLS is enabled).
  *
- * \warning If building with MBEDTLS_USE_PSA_CRYPTO, you must call
- * psa_crypto_init() before doing any X.509 create operation.
+ * Requires: PSA_WANT_ALG_SHA_256 or PSA_WANT_ALG_SHA_384
  *
- * This module is the basis for creating X.509 certificates and CSRs.
+ * Comment this macro to disable support for TLS 1.2 / DTLS 1.2
  */
-#define MBEDTLS_X509_CREATE_C
+#define MBEDTLS_SSL_PROTO_TLS1_2

 /**
- * \def MBEDTLS_X509_CRT_WRITE_C
+ * \def MBEDTLS_SSL_PROTO_TLS1_3
  *
- * Enable creating X.509 certificates.
+ * Enable support for TLS 1.3.
  *
- * Module:  library/x509_crt_write.c
+ * \note See docs/architecture/tls13-support.md for a description of the TLS
+ *       1.3 support that this option enables.
  *
- * Requires: MBEDTLS_X509_CREATE_C
+ * Requires: MBEDTLS_SSL_KEEP_PEER_CERTIFICATE
+ * Requires: MBEDTLS_PSA_CRYPTO_C
  *
- * This module is required for X.509 certificate creation.
+ * Uncomment this macro to enable the support for TLS 1.3.
  */
-#define MBEDTLS_X509_CRT_WRITE_C
+#define MBEDTLS_SSL_PROTO_TLS1_3

 /**
- * \def MBEDTLS_X509_CSR_WRITE_C
- *
- * Enable creating X.509 Certificate Signing Requests (CSR).
+ * \def MBEDTLS_SSL_RECORD_SIZE_LIMIT
  *
- * Module:  library/x509_csr_write.c
+ * Enable support for RFC 8449 record_size_limit extension in SSL (TLS 1.3 only).
  *
- * Requires: MBEDTLS_X509_CREATE_C
+ * Requires: MBEDTLS_SSL_PROTO_TLS1_3
  *
- * This module is required for X.509 certificate request writing.
+ * Uncomment this macro to enable support for the record_size_limit extension
  */
-#define MBEDTLS_X509_CSR_WRITE_C
-
-/** \} name SECTION: Mbed TLS modules */
+//#define MBEDTLS_SSL_RECORD_SIZE_LIMIT

 /**
- * \name SECTION: General configuration options
+ * \def MBEDTLS_SSL_KEYING_MATERIAL_EXPORT
  *
- * This section contains Mbed TLS build settings that are not associated
- * with a particular module.
+ * When this option is enabled, the client and server can extract additional
+ * shared symmetric keys after an SSL handshake using the function
+ * mbedtls_ssl_export_keying_material().
  *
- * \{
+ * The process for deriving the keys is specified in RFC 5705 for TLS 1.2 and
+ * in RFC 8446, Section 7.5, for TLS 1.3.
+ *
+ * Comment this macro to disable mbedtls_ssl_export_keying_material().
  */
+#define MBEDTLS_SSL_KEYING_MATERIAL_EXPORT

 /**
- * \def MBEDTLS_CONFIG_FILE
+ * \def MBEDTLS_SSL_RENEGOTIATION
  *
- * If defined, this is a header which will be included instead of
- * `"mbedtls/mbedtls_config.h"`.
- * This header file specifies the compile-time configuration of Mbed TLS.
- * Unlike other configuration options, this one must be defined on the
- * compiler command line: a definition in `mbedtls_config.h` would have
- * no effect.
+ * Enable support for TLS renegotiation.
  *
- * This macro is expanded after an <tt>\#include</tt> directive. This is a popular but
- * non-standard feature of the C language, so this feature is only available
- * with compilers that perform macro expansion on an <tt>\#include</tt> line.
+ * The two main uses of renegotiation are (1) refresh keys on long-lived
+ * connections and (2) client authentication after the initial handshake.
+ * If you don't need renegotiation, it's probably better to disable it, since
+ * it has been associated with security issues in the past and is easy to
+ * misuse/misunderstand.
  *
- * The value of this symbol is typically a path in double quotes, either
- * absolute or relative to a directory on the include search path.
- */
-//#define MBEDTLS_CONFIG_FILE "mbedtls/mbedtls_config.h"
-
-/**
- * \def MBEDTLS_USER_CONFIG_FILE
+ * Requires: MBEDTLS_SSL_PROTO_TLS1_2
  *
- * If defined, this is a header which will be included after
- * `"mbedtls/mbedtls_config.h"` or #MBEDTLS_CONFIG_FILE.
- * This allows you to modify the default configuration, including the ability
- * to undefine options that are enabled by default.
+ * Comment this to disable support for renegotiation.
  *
- * This macro is expanded after an <tt>\#include</tt> directive. This is a popular but
- * non-standard feature of the C language, so this feature is only available
- * with compilers that perform macro expansion on an <tt>\#include</tt> line.
+ * \note   Even if this option is disabled, both client and server are aware
+ *         of the Renegotiation Indication Extension (RFC 5746) used to
+ *         prevent the SSL renegotiation attack (see RFC 5746 Sect. 1).
+ *         (See \c mbedtls_ssl_conf_legacy_renegotiation for the
+ *          configuration of this extension).
  *
- * The value of this symbol is typically a path in double quotes, either
- * absolute or relative to a directory on the include search path.
  */
-//#define MBEDTLS_USER_CONFIG_FILE "/dev/null"
+#define MBEDTLS_SSL_RENEGOTIATION

 /**
- * \def MBEDTLS_PSA_CRYPTO_CONFIG_FILE
+ * \def MBEDTLS_SSL_SERVER_NAME_INDICATION
  *
- * If defined, this is a header which will be included instead of
- * `"psa/crypto_config.h"`.
- * This header file specifies which cryptographic mechanisms are available
- * through the PSA API when #MBEDTLS_PSA_CRYPTO_CONFIG is enabled, and
- * is not used when #MBEDTLS_PSA_CRYPTO_CONFIG is disabled.
+ * Enable support for RFC 6066 server name indication (SNI) in SSL.
  *
- * This macro is expanded after an <tt>\#include</tt> directive. This is a popular but
- * non-standard feature of the C language, so this feature is only available
- * with compilers that perform macro expansion on an <tt>\#include</tt> line.
+ * Requires: MBEDTLS_X509_CRT_PARSE_C
  *
- * The value of this symbol is typically a path in double quotes, either
- * absolute or relative to a directory on the include search path.
+ * Comment this macro to disable support for server name indication in SSL
  */
-//#define MBEDTLS_PSA_CRYPTO_CONFIG_FILE "psa/crypto_config.h"
+#define MBEDTLS_SSL_SERVER_NAME_INDICATION

 /**
- * \def MBEDTLS_PSA_CRYPTO_USER_CONFIG_FILE
- *
- * If defined, this is a header which will be included after
- * `"psa/crypto_config.h"` or #MBEDTLS_PSA_CRYPTO_CONFIG_FILE.
- * This allows you to modify the default configuration, including the ability
- * to undefine options that are enabled by default.
+ * \def MBEDTLS_SSL_SESSION_TICKETS
  *
- * This macro is expanded after an <tt>\#include</tt> directive. This is a popular but
- * non-standard feature of the C language, so this feature is only available
- * with compilers that perform macro expansion on an <tt>\#include</tt> line.
+ * Enable support for RFC 5077 session tickets in SSL.
+ * Client-side, provides full support for session tickets (maintenance of a
+ * session store remains the responsibility of the application, though).
+ * Server-side, you also need to provide callbacks for writing and parsing
+ * tickets, including authenticated encryption and key management. Example
+ * callbacks are provided by MBEDTLS_SSL_TICKET_C.
  *
- * The value of this symbol is typically a path in double quotes, either
- * absolute or relative to a directory on the include search path.
+ * Comment this macro to disable support for SSL session tickets
  */
-//#define MBEDTLS_PSA_CRYPTO_USER_CONFIG_FILE "/dev/null"
+#define MBEDTLS_SSL_SESSION_TICKETS

 /**
- * \def MBEDTLS_PSA_CRYPTO_PLATFORM_FILE
+ * \def MBEDTLS_SSL_SRV_C
  *
- * If defined, this is a header which will be included instead of
- * `"psa/crypto_platform.h"`. This file should declare the same identifiers
- * as the one in Mbed TLS, but with definitions adapted to the platform on
- * which the library code will run.
+ * Enable the SSL/TLS server code.
  *
- * \note The required content of this header can vary from one version of
- *       Mbed TLS to the next. Integrators who provide an alternative file
- *       should review the changes in the original file whenever they
- *       upgrade Mbed TLS.
+ * Module:  library/ssl*_server.c
+ * Caller:
  *
- * This macro is expanded after an <tt>\#include</tt> directive. This is a popular but
- * non-standard feature of the C language, so this feature is only available
- * with compilers that perform macro expansion on an <tt>\#include</tt> line.
+ * Requires: MBEDTLS_SSL_TLS_C
  *
- * The value of this symbol is typically a path in double quotes, either
- * absolute or relative to a directory on the include search path.
+ * \warning You must call psa_crypto_init() before doing any TLS operations.
+ *
+ * This module is required for SSL/TLS server support.
  */
-//#define MBEDTLS_PSA_CRYPTO_PLATFORM_FILE "psa/crypto_platform_alt.h"
+#define MBEDTLS_SSL_SRV_C

 /**
- * \def MBEDTLS_PSA_CRYPTO_STRUCT_FILE
+ * \def MBEDTLS_SSL_TICKET_C
  *
- * If defined, this is a header which will be included instead of
- * `"psa/crypto_struct.h"`. This file should declare the same identifiers
- * as the one in Mbed TLS, but with definitions adapted to the environment
- * in which the library code will run. The typical use for this feature
- * is to provide alternative type definitions on the client side in
- * client-server integrations of PSA crypto, where operation structures
- * contain handles instead of cryptographic data.
- *
- * \note The required content of this header can vary from one version of
- *       Mbed TLS to the next. Integrators who provide an alternative file
- *       should review the changes in the original file whenever they
- *       upgrade Mbed TLS.
+ * Enable an implementation of TLS server-side callbacks for session tickets.
  *
- * This macro is expanded after an <tt>\#include</tt> directive. This is a popular but
- * non-standard feature of the C language, so this feature is only available
- * with compilers that perform macro expansion on an <tt>\#include</tt> line.
+ * Module:  library/ssl_ticket.c
+ * Caller:
  *
- * The value of this symbol is typically a path in double quotes, either
- * absolute or relative to a directory on the include search path.
+ * Requires: PSA_WANT_ALG_GCM or PSA_WANT_ALG_CCM or PSA_WANT_ALG_CHACHA20_POLY1305
  */
-//#define MBEDTLS_PSA_CRYPTO_STRUCT_FILE "psa/crypto_struct_alt.h"
-
-/** \} name SECTION: General configuration options */
+#define MBEDTLS_SSL_TICKET_C

 /**
- * \name SECTION: Module configuration options
+ * \def MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE
  *
- * This section allows for the setting of module specific sizes and
- * configuration options. The default values are already present in the
- * relevant header files and should suffice for the regular use cases.
+ * Enable TLS 1.3 middlebox compatibility mode.
  *
- * Our advice is to enable options and change their values here
- * only if you have a good reason and know the consequences.
- * \{
- */
-/* The Doxygen documentation here is used when a user comments out a
- * setting and runs doxygen themselves. On the other hand, when we typeset
- * the full documentation including disabled settings, the documentation
- * in specific modules' header files is used if present. When editing this
- * file, make sure that each option is documented in exactly one place,
- * plus optionally a same-line Doxygen comment here if there is a Doxygen
- * comment in the specific module. */
-
-/* MPI / BIGNUM options */
-//#define MBEDTLS_MPI_WINDOW_SIZE            2 /**< Maximum window size used. */
-//#define MBEDTLS_MPI_MAX_SIZE            1024 /**< Maximum number of bytes for usable MPIs. */
-
-/* CTR_DRBG options */
-//#define MBEDTLS_CTR_DRBG_ENTROPY_LEN               48 /**< Amount of entropy used per seed by default (48 with SHA-512, 32 with SHA-256) */
-//#define MBEDTLS_CTR_DRBG_RESEED_INTERVAL        10000 /**< Interval before reseed is performed by default */
-//#define MBEDTLS_CTR_DRBG_MAX_INPUT                256 /**< Maximum number of additional input bytes */
-//#define MBEDTLS_CTR_DRBG_MAX_REQUEST             1024 /**< Maximum number of requested bytes per call */
-//#define MBEDTLS_CTR_DRBG_MAX_SEED_INPUT           384 /**< Maximum size of (re)seed buffer */
-
-/* HMAC_DRBG options */
-//#define MBEDTLS_HMAC_DRBG_RESEED_INTERVAL   10000 /**< Interval before reseed is performed by default */
-//#define MBEDTLS_HMAC_DRBG_MAX_INPUT           256 /**< Maximum number of additional input bytes */
-//#define MBEDTLS_HMAC_DRBG_MAX_REQUEST        1024 /**< Maximum number of requested bytes per call */
-//#define MBEDTLS_HMAC_DRBG_MAX_SEED_INPUT      384 /**< Maximum size of (re)seed buffer */
-
-/* ECP options */
-//#define MBEDTLS_ECP_WINDOW_SIZE            4 /**< Maximum window size used */
-//#define MBEDTLS_ECP_FIXED_POINT_OPTIM      1 /**< Enable fixed-point speed-up */
-
-/* Entropy options */
-//#define MBEDTLS_ENTROPY_MAX_SOURCES                20 /**< Maximum number of sources supported */
-//#define MBEDTLS_ENTROPY_MAX_GATHER                128 /**< Maximum amount requested from entropy sources */
-//#define MBEDTLS_ENTROPY_MIN_HARDWARE               32 /**< Default minimum number of bytes required for the hardware entropy source mbedtls_hardware_poll() before entropy is released */
-
-/* Memory buffer allocator options */
-//#define MBEDTLS_MEMORY_ALIGN_MULTIPLE      4 /**< Align on multiples of this value */
-
-/* Platform options */
-//#define MBEDTLS_PLATFORM_STD_MEM_HDR   <stdlib.h> /**< Header to include if MBEDTLS_PLATFORM_NO_STD_FUNCTIONS is defined. Don't define if no header is needed. */
-
-/** \def MBEDTLS_PLATFORM_STD_CALLOC
- *
- * Default allocator to use, can be undefined.
- * It must initialize the allocated buffer memory to zeroes.
- * The size of the buffer is the product of the two parameters.
- * The calloc function returns either a null pointer or a pointer to the allocated space.
- * If the product is 0, the function may either return NULL or a valid pointer to an array of size 0 which is a valid input to the deallocation function.
- * An uninitialized #MBEDTLS_PLATFORM_STD_CALLOC always fails, returning a null pointer.
- * See the description of #MBEDTLS_PLATFORM_MEMORY for more details.
- * The corresponding deallocation function is #MBEDTLS_PLATFORM_STD_FREE.
- */
-//#define MBEDTLS_PLATFORM_STD_CALLOC        calloc
-
-/** \def MBEDTLS_PLATFORM_STD_FREE
+ * As specified in Section D.4 of RFC 8446, TLS 1.3 offers a compatibility
+ * mode to make a TLS 1.3 connection more likely to pass through middle boxes
+ * expecting TLS 1.2 traffic.
+ *
+ * Turning on the compatibility mode comes at the cost of a few added bytes
+ * on the wire, but it doesn't affect compatibility with TLS 1.3 implementations
+ * that don't use it. Therefore, unless transmission bandwidth is critical and
+ * you know that middlebox compatibility issues won't occur, it is therefore
+ * recommended to set this option.
+ *
+ * Comment to disable compatibility mode for TLS 1.3. If
+ * MBEDTLS_SSL_PROTO_TLS1_3 is not enabled, this option does not have any
+ * effect on the build.
  *
- * Default free to use, can be undefined.
- * NULL is a valid parameter, and the function must do nothing.
- * A non-null parameter will always be a pointer previously returned by #MBEDTLS_PLATFORM_STD_CALLOC and not yet freed.
- * An uninitialized #MBEDTLS_PLATFORM_STD_FREE does not do anything.
- * See the description of #MBEDTLS_PLATFORM_MEMORY for more details (same principles as for MBEDTLS_PLATFORM_STD_CALLOC apply).
  */
-//#define MBEDTLS_PLATFORM_STD_FREE            free
-//#define MBEDTLS_PLATFORM_STD_SETBUF      setbuf /**< Default setbuf to use, can be undefined */
-//#define MBEDTLS_PLATFORM_STD_EXIT            exit /**< Default exit to use, can be undefined */
-//#define MBEDTLS_PLATFORM_STD_TIME            time /**< Default time to use, can be undefined. MBEDTLS_HAVE_TIME must be enabled */
-//#define MBEDTLS_PLATFORM_STD_FPRINTF      fprintf /**< Default fprintf to use, can be undefined */
-//#define MBEDTLS_PLATFORM_STD_PRINTF        printf /**< Default printf to use, can be undefined */
-/* Note: your snprintf must correctly zero-terminate the buffer! */
-//#define MBEDTLS_PLATFORM_STD_SNPRINTF    snprintf /**< Default snprintf to use, can be undefined */
-//#define MBEDTLS_PLATFORM_STD_EXIT_SUCCESS       0 /**< Default exit value to use, can be undefined */
-//#define MBEDTLS_PLATFORM_STD_EXIT_FAILURE       1 /**< Default exit value to use, can be undefined */
-//#define MBEDTLS_PLATFORM_STD_NV_SEED_READ   mbedtls_platform_std_nv_seed_read /**< Default nv_seed_read function to use, can be undefined */
-//#define MBEDTLS_PLATFORM_STD_NV_SEED_WRITE  mbedtls_platform_std_nv_seed_write /**< Default nv_seed_write function to use, can be undefined */
-//#define MBEDTLS_PLATFORM_STD_NV_SEED_FILE  "seedfile" /**< Seed file to read/write with default implementation */
-
-/* To use the following function macros, MBEDTLS_PLATFORM_C must be enabled. */
-/* MBEDTLS_PLATFORM_XXX_MACRO and MBEDTLS_PLATFORM_XXX_ALT cannot both be defined */
-//#define MBEDTLS_PLATFORM_CALLOC_MACRO        calloc /**< Default allocator macro to use, can be undefined. See MBEDTLS_PLATFORM_STD_CALLOC for requirements. */
-//#define MBEDTLS_PLATFORM_FREE_MACRO            free /**< Default free macro to use, can be undefined. See MBEDTLS_PLATFORM_STD_FREE for requirements. */
-//#define MBEDTLS_PLATFORM_EXIT_MACRO            exit /**< Default exit macro to use, can be undefined */
-//#define MBEDTLS_PLATFORM_SETBUF_MACRO      setbuf /**< Default setbuf macro to use, can be undefined */
-//#define MBEDTLS_PLATFORM_TIME_MACRO            time /**< Default time macro to use, can be undefined. MBEDTLS_HAVE_TIME must be enabled */
-//#define MBEDTLS_PLATFORM_TIME_TYPE_MACRO       time_t /**< Default time macro to use, can be undefined. MBEDTLS_HAVE_TIME must be enabled */
-//#define MBEDTLS_PLATFORM_FPRINTF_MACRO      fprintf /**< Default fprintf macro to use, can be undefined */
-//#define MBEDTLS_PLATFORM_PRINTF_MACRO        printf /**< Default printf macro to use, can be undefined */
-/* Note: your snprintf must correctly zero-terminate the buffer! */
-//#define MBEDTLS_PLATFORM_SNPRINTF_MACRO    snprintf /**< Default snprintf macro to use, can be undefined */
-//#define MBEDTLS_PLATFORM_VSNPRINTF_MACRO    vsnprintf /**< Default vsnprintf macro to use, can be undefined */
-//#define MBEDTLS_PLATFORM_NV_SEED_READ_MACRO   mbedtls_platform_std_nv_seed_read /**< Default nv_seed_read function to use, can be undefined */
-//#define MBEDTLS_PLATFORM_NV_SEED_WRITE_MACRO  mbedtls_platform_std_nv_seed_write /**< Default nv_seed_write function to use, can be undefined */
-//#define MBEDTLS_PLATFORM_MS_TIME_TYPE_MACRO   int64_t //#define MBEDTLS_PLATFORM_MS_TIME_TYPE_MACRO   int64_t /**< Default milliseconds time macro to use, can be undefined. MBEDTLS_HAVE_TIME must be enabled. It must be signed, and at least 64 bits. If it is changed from the default, MBEDTLS_PRINTF_MS_TIME must be updated to match.*/
-//#define MBEDTLS_PRINTF_MS_TIME    PRId64 /**< Default fmt for printf. That's avoid compiler warning if mbedtls_ms_time_t is redefined */
+#define MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE

-/** \def MBEDTLS_CHECK_RETURN
+/**
+ * \def MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
  *
- * This macro is used at the beginning of the declaration of a function
- * to indicate that its return value should be checked. It should
- * instruct the compiler to emit a warning or an error if the function
- * is called without checking its return value.
+ * Enable TLS 1.3 ephemeral key exchange mode.
  *
- * There is a default implementation for popular compilers in platform_util.h.
- * You can override the default implementation by defining your own here.
+ * Requires: PSA_WANT_ALG_ECDH or PSA_WANT_ALG_FFDH
+ *           MBEDTLS_X509_CRT_PARSE_C
+ *           and at least one of:
+ *               PSA_WANT_ALG_ECDSA
+ *               PSA_WANT_ALG_RSA_PSS
  *
- * If the implementation here is empty, this will effectively disable the
- * checking of functions' return values.
- */
-//#define MBEDTLS_CHECK_RETURN __attribute__((__warn_unused_result__))
-
-/** \def MBEDTLS_IGNORE_RETURN
+ * Comment to disable support for the ephemeral key exchange mode in TLS 1.3.
+ * If MBEDTLS_SSL_PROTO_TLS1_3 is not enabled, this option does not have any
+ * effect on the build.
  *
- * This macro requires one argument, which should be a C function call.
- * If that function call would cause a #MBEDTLS_CHECK_RETURN warning, this
- * warning is suppressed.
  */
-//#define MBEDTLS_IGNORE_RETURN( result ) ((void) !(result))
+#define MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED

-/* PSA options */
 /**
- * Use HMAC_DRBG with the specified hash algorithm for HMAC_DRBG for the
- * PSA crypto subsystem.
+ * \def MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
  *
- * If this option is unset, the library chooses a hash (currently between
- * #MBEDTLS_MD_SHA512 and #MBEDTLS_MD_SHA256) based on availability and
- * unspecified heuristics.
+ * Enable TLS 1.3 PSK key exchange mode.
  *
- * \note The PSA crypto subsystem uses the first available mechanism amongst
- *       the following:
- *       - #MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG if enabled;
- *       - Entropy from #MBEDTLS_ENTROPY_C plus CTR_DRBG with AES
- *         if #MBEDTLS_CTR_DRBG_C is enabled;
- *       - Entropy from #MBEDTLS_ENTROPY_C plus HMAC_DRBG.
+ * Comment to disable support for the PSK key exchange mode in TLS 1.3. If
+ * MBEDTLS_SSL_PROTO_TLS1_3 is not enabled, this option does not have any
+ * effect on the build.
  *
- *       A future version may reevaluate the prioritization of DRBG mechanisms.
  */
-//#define MBEDTLS_PSA_HMAC_DRBG_MD_TYPE MBEDTLS_MD_SHA256
+#define MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED

-/** \def MBEDTLS_PSA_KEY_SLOT_COUNT
- *
- * When #MBEDTLS_PSA_KEY_STORE_DYNAMIC is disabled,
- * the maximum amount of PSA keys simultaneously in memory. This counts all
- * volatile keys, plus loaded persistent keys.
+/**
+ * \def MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
  *
- * When #MBEDTLS_PSA_KEY_STORE_DYNAMIC is enabled,
- * the maximum number of loaded persistent keys.
+ * Enable TLS 1.3 PSK ephemeral key exchange mode.
  *
- * Currently, persistent keys do not need to be loaded all the time while
- * a multipart operation is in progress, only while the operation is being
- * set up. This may change in future versions of the library.
+ * Requires: PSA_WANT_ALG_ECDH or PSA_WANT_ALG_FFDH
  *
- * Currently, the library traverses of the whole table on each access to a
- * persistent key. Therefore large values may cause poor performance.
+ * Comment to disable support for the PSK ephemeral key exchange mode in
+ * TLS 1.3. If MBEDTLS_SSL_PROTO_TLS1_3 is not enabled, this option does not
+ * have any effect on the build.
  *
- * This option has no effect when #MBEDTLS_PSA_CRYPTO_C is disabled.
  */
-//#define MBEDTLS_PSA_KEY_SLOT_COUNT 32
+#define MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED

 /**
- * \def MBEDTLS_PSA_STATIC_KEY_SLOT_BUFFER_SIZE
- *
- * Define the size (in bytes) of each static key buffer when
- * #MBEDTLS_PSA_STATIC_KEY_SLOTS is set. If not
- * explicitly defined then it's automatically guessed from available PSA keys
- * enabled in the build through PSA_WANT_xxx symbols.
- * If required by the application this parameter can be set to higher values
- * in order to store larger objects (ex: raw keys), but please note that this
- * will increase RAM usage.
- */
-//#define MBEDTLS_PSA_STATIC_KEY_SLOT_BUFFER_SIZE       256
-
-/* RSA OPTIONS */
-//#define MBEDTLS_RSA_GEN_KEY_MIN_BITS            1024 /**<  Minimum RSA key size that can be generated in bits (Minimum possible value is 128 bits) */
-
-/* SSL Cache options */
-//#define MBEDTLS_SSL_CACHE_DEFAULT_TIMEOUT       86400 /**< 1 day  */
-//#define MBEDTLS_SSL_CACHE_DEFAULT_MAX_ENTRIES      50 /**< Maximum entries in cache */
-
-/* SSL options */
-
-/** \def MBEDTLS_SSL_IN_CONTENT_LEN
+ * \def MBEDTLS_SSL_TLS_C
  *
- * Maximum length (in bytes) of incoming plaintext fragments.
+ * Enable the generic SSL/TLS code.
  *
- * This determines the size of the incoming TLS I/O buffer in such a way
- * that it is capable of holding the specified amount of plaintext data,
- * regardless of the protection mechanism used.
+ * Module:  library/ssl_tls.c
+ * Caller:  library/ssl*_client.c
+ *          library/ssl*_server.c
  *
- * \note When using a value less than the default of 16KB on the client, it is
- *       recommended to use the Maximum Fragment Length (MFL) extension to
- *       inform the server about this limitation. On the server, there
- *       is no supported, standardized way of informing the client about
- *       restriction on the maximum size of incoming messages, and unless
- *       the limitation has been communicated by other means, it is recommended
- *       to only change the outgoing buffer size #MBEDTLS_SSL_OUT_CONTENT_LEN
- *       while keeping the default value of 16KB for the incoming buffer.
+ * Requires: PSA_WANT_ALG_SHA_256 or PSA_WANT_ALG_SHA_384
+ *           and at least one of the MBEDTLS_SSL_PROTO_XXX defines
+ *
+ * This module is required for SSL/TLS.
+ */
+#define MBEDTLS_SSL_TLS_C
+
+/**
+ * \def MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH
+ *
+ * When this option is enabled, the SSL buffer will be resized automatically
+ * based on the negotiated maximum fragment length in each direction.
  *
- * Uncomment to set the maximum plaintext size of the incoming I/O buffer.
+ * Requires: MBEDTLS_SSL_MAX_FRAGMENT_LENGTH
  */
-//#define MBEDTLS_SSL_IN_CONTENT_LEN              16384
+//#define MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH
+
+//#define MBEDTLS_PSK_MAX_LEN               32 /**< Max size of TLS pre-shared keys, in bytes (default 256 or 384 bits) */
+//#define MBEDTLS_SSL_CACHE_DEFAULT_MAX_ENTRIES      50 /**< Maximum entries in cache */
+//#define MBEDTLS_SSL_CACHE_DEFAULT_TIMEOUT       86400 /**< 1 day  */

 /** \def MBEDTLS_SSL_CID_IN_LEN_MAX
  *
@@ -4264,25 +895,21 @@
  */
 //#define MBEDTLS_SSL_CID_TLS1_3_PADDING_GRANULARITY 16

-/** \def MBEDTLS_SSL_OUT_CONTENT_LEN
- *
- * Maximum length (in bytes) of outgoing plaintext fragments.
- *
- * This determines the size of the outgoing TLS I/O buffer in such a way
- * that it is capable of holding the specified amount of plaintext data,
- * regardless of the protection mechanism used.
+/**
+ * Complete list of ciphersuites to use, in order of preference.
  *
- * It is possible to save RAM by setting a smaller outward buffer, while keeping
- * the default inward 16384 byte buffer to conform to the TLS specification.
+ * \warning No dependency checking is done on that field! This option can only
+ * be used to restrict the set of available ciphersuites. It is your
+ * responsibility to make sure the needed modules are active.
  *
- * The minimum required outward buffer size is determined by the handshake
- * protocol's usage. Handshaking will fail if the outward buffer is too small.
- * The specific size requirement depends on the configured ciphers and any
- * certificate data which is sent during the handshake.
+ * Use this to save a few hundred bytes of ROM (default ordering of all
+ * available ciphersuites) and a few to a few hundred bytes of RAM.
  *
- * Uncomment to set the maximum plaintext size of the outgoing I/O buffer.
+ * The value below is only an example, not the default.
  */
-//#define MBEDTLS_SSL_OUT_CONTENT_LEN             16384
+//#define MBEDTLS_SSL_CIPHERSUITES MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
+
+//#define MBEDTLS_SSL_COOKIE_TIMEOUT        60 /**< Default expiration delay of DTLS cookies, in seconds if HAVE_TIME, or in number of cookies issued */

 /** \def MBEDTLS_SSL_DTLS_MAX_BUFFERING
  *
@@ -4301,22 +928,26 @@
  */
 //#define MBEDTLS_SSL_DTLS_MAX_BUFFERING             32768

-//#define MBEDTLS_PSK_MAX_LEN               32 /**< Max size of TLS pre-shared keys, in bytes (default 256 or 384 bits) */
-//#define MBEDTLS_SSL_COOKIE_TIMEOUT        60 /**< Default expiration delay of DTLS cookies, in seconds if HAVE_TIME, or in number of cookies issued */
-
-/**
- * Complete list of ciphersuites to use, in order of preference.
+/** \def MBEDTLS_SSL_IN_CONTENT_LEN
  *
- * \warning No dependency checking is done on that field! This option can only
- * be used to restrict the set of available ciphersuites. It is your
- * responsibility to make sure the needed modules are active.
+ * Maximum length (in bytes) of incoming plaintext fragments.
  *
- * Use this to save a few hundred bytes of ROM (default ordering of all
- * available ciphersuites) and a few to a few hundred bytes of RAM.
+ * This determines the size of the incoming TLS I/O buffer in such a way
+ * that it is capable of holding the specified amount of plaintext data,
+ * regardless of the protection mechanism used.
  *
- * The value below is only an example, not the default.
+ * \note When using a value less than the default of 16KB on the client, it is
+ *       recommended to use the Maximum Fragment Length (MFL) extension to
+ *       inform the server about this limitation. On the server, there
+ *       is no supported, standardized way of informing the client about
+ *       restriction on the maximum size of incoming messages, and unless
+ *       the limitation has been communicated by other means, it is recommended
+ *       to only change the outgoing buffer size #MBEDTLS_SSL_OUT_CONTENT_LEN
+ *       while keeping the default value of 16KB for the incoming buffer.
+ *
+ * Uncomment to set the maximum plaintext size of the incoming I/O buffer.
  */
-//#define MBEDTLS_SSL_CIPHERSUITES MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
+//#define MBEDTLS_SSL_IN_CONTENT_LEN              16384

 /**
  * \def MBEDTLS_SSL_MAX_EARLY_DATA_SIZE
@@ -4331,6 +962,36 @@
  */
 //#define MBEDTLS_SSL_MAX_EARLY_DATA_SIZE        1024

+/** \def MBEDTLS_SSL_OUT_CONTENT_LEN
+ *
+ * Maximum length (in bytes) of outgoing plaintext fragments.
+ *
+ * This determines the size of the outgoing TLS I/O buffer in such a way
+ * that it is capable of holding the specified amount of plaintext data,
+ * regardless of the protection mechanism used.
+ *
+ * It is possible to save RAM by setting a smaller outward buffer, while keeping
+ * the default inward 16384 byte buffer to conform to the TLS specification.
+ *
+ * The minimum required outward buffer size is determined by the handshake
+ * protocol's usage. Handshaking will fail if the outward buffer is too small.
+ * The specific size requirement depends on the configured ciphers and any
+ * certificate data which is sent during the handshake.
+ *
+ * Uncomment to set the maximum plaintext size of the outgoing I/O buffer.
+ */
+//#define MBEDTLS_SSL_OUT_CONTENT_LEN             16384
+
+/**
+ * \def MBEDTLS_SSL_TLS1_3_DEFAULT_NEW_SESSION_TICKETS
+ *
+ * Default number of NewSessionTicket messages to be sent by a TLS 1.3 server
+ * after handshake completion. This is not used in TLS 1.2 and relevant only if
+ * the MBEDTLS_SSL_SESSION_TICKETS option is enabled.
+ *
+ */
+//#define MBEDTLS_SSL_TLS1_3_DEFAULT_NEW_SESSION_TICKETS 1
+
 /**
  * \def MBEDTLS_SSL_TLS1_3_TICKET_AGE_TOLERANCE
  *
@@ -4363,18 +1024,179 @@
  */
 //#define MBEDTLS_SSL_TLS1_3_TICKET_NONCE_LENGTH 32

+/** \} name SECTION: TLS feature selection */
+
 /**
- * \def MBEDTLS_SSL_TLS1_3_DEFAULT_NEW_SESSION_TICKETS
+ * \name SECTION: X.509 feature selection
  *
- * Default number of NewSessionTicket messages to be sent by a TLS 1.3 server
- * after handshake completion. This is not used in TLS 1.2 and relevant only if
- * the MBEDTLS_SSL_SESSION_TICKETS option is enabled.
+ * This section sets Certificate related options.
+ * \{
+ */
+
+/**
+ * \def MBEDTLS_PKCS7_C
+ *
+ * Enable PKCS #7 core for using PKCS #7-formatted signatures.
+ * RFC Link - https://tools.ietf.org/html/rfc2315
+ *
+ * Module:  library/pkcs7.c
+ *
+ * Requires: MBEDTLS_ASN1_PARSE_C, MBEDTLS_PK_PARSE_C,
+ *           MBEDTLS_X509_CRT_PARSE_C MBEDTLS_X509_CRL_PARSE_C,
+ *           MBEDTLS_MD_C
  *
+ * This module is required for the PKCS #7 parsing modules.
  */
-//#define MBEDTLS_SSL_TLS1_3_DEFAULT_NEW_SESSION_TICKETS 1
+#define MBEDTLS_PKCS7_C
+
+/**
+ * \def MBEDTLS_X509_CREATE_C
+ *
+ * Enable X.509 core for creating certificates.
+ *
+ * Module:  library/x509_create.c
+ *
+ * Requires: MBEDTLS_ASN1_WRITE_C, MBEDTLS_PK_PARSE_C
+ *
+ * \warning You must call psa_crypto_init() before doing any X.509 operation.
+ *
+ * This module is the basis for creating X.509 certificates and CSRs.
+ */
+#define MBEDTLS_X509_CREATE_C
+
+/**
+ * \def MBEDTLS_X509_CRL_PARSE_C
+ *
+ * Enable X.509 CRL parsing.
+ *
+ * Module:  library/x509_crl.c
+ * Caller:  library/x509_crt.c
+ *
+ * Requires: MBEDTLS_X509_USE_C
+ *
+ * This module is required for X.509 CRL parsing.
+ */
+#define MBEDTLS_X509_CRL_PARSE_C
+
+/**
+ * \def MBEDTLS_X509_CRT_PARSE_C
+ *
+ * Enable X.509 certificate parsing.
+ *
+ * Module:  library/x509_crt.c
+ * Caller:  library/ssl_tls.c
+ *          library/ssl*_client.c
+ *          library/ssl*_server.c
+ *
+ * Requires: MBEDTLS_X509_USE_C
+ *
+ * This module is required for X.509 certificate parsing.
+ */
+#define MBEDTLS_X509_CRT_PARSE_C
+
+/**
+ * \def MBEDTLS_X509_CRT_WRITE_C
+ *
+ * Enable creating X.509 certificates.
+ *
+ * Module:  library/x509_crt_write.c
+ *
+ * Requires: MBEDTLS_X509_CREATE_C
+ *
+ * This module is required for X.509 certificate creation.
+ */
+#define MBEDTLS_X509_CRT_WRITE_C
+
+/**
+ * \def MBEDTLS_X509_CSR_PARSE_C
+ *
+ * Enable X.509 Certificate Signing Request (CSR) parsing.
+ *
+ * Module:  library/x509_csr.c
+ * Caller:  library/x509_crt_write.c
+ *
+ * Requires: MBEDTLS_X509_USE_C
+ *
+ * This module is used for reading X.509 certificate request.
+ */
+#define MBEDTLS_X509_CSR_PARSE_C
+
+/**
+ * \def MBEDTLS_X509_CSR_WRITE_C
+ *
+ * Enable creating X.509 Certificate Signing Requests (CSR).
+ *
+ * Module:  library/x509_csr_write.c
+ *
+ * Requires: MBEDTLS_X509_CREATE_C
+ *
+ * This module is required for X.509 certificate request writing.
+ */
+#define MBEDTLS_X509_CSR_WRITE_C
+
+/**
+ * \def MBEDTLS_X509_REMOVE_INFO
+ *
+ * Disable mbedtls_x509_*_info() and related APIs.
+ *
+ * Uncomment to omit mbedtls_x509_*_info(), as well as mbedtls_debug_print_crt()
+ * and other functions/constants only used by these functions, thus reducing
+ * the code footprint by several KB.
+ */
+//#define MBEDTLS_X509_REMOVE_INFO
+
+/**
+ * \def MBEDTLS_X509_RSASSA_PSS_SUPPORT
+ *
+ * Enable parsing and verification of X.509 certificates, CRLs and CSRS
+ * signed with RSASSA-PSS (aka PKCS#1 v2.1).
+ *
+ * Requires: PSA_WANT_ALG_RSA_PSS
+ *
+ * Comment this macro to disallow using RSASSA-PSS in certificates.
+ */
+#define MBEDTLS_X509_RSASSA_PSS_SUPPORT
+
+/**
+ * \def MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK
+ *
+ * If set, this enables the X.509 API `mbedtls_x509_crt_verify_with_ca_cb()`
+ * and the SSL API `mbedtls_ssl_conf_ca_cb()` which allow users to configure
+ * the set of trusted certificates through a callback instead of a linked
+ * list.
+ *
+ * This is useful for example in environments where a large number of trusted
+ * certificates is present and storing them in a linked list isn't efficient
+ * enough, or when the set of trusted certificates changes frequently.
+ *
+ * See the documentation of `mbedtls_x509_crt_verify_with_ca_cb()` and
+ * `mbedtls_ssl_conf_ca_cb()` for more information.
+ *
+ * Requires: MBEDTLS_X509_CRT_PARSE_C
+ *
+ * Uncomment to enable trusted certificate callbacks.
+ */
+//#define MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK
+
+/**
+ * \def MBEDTLS_X509_USE_C
+ *
+ * Enable X.509 core for using certificates.
+ *
+ * Module:  library/x509.c
+ * Caller:  library/x509_crl.c
+ *          library/x509_crt.c
+ *          library/x509_csr.c
+ *
+ * Requires: MBEDTLS_ASN1_PARSE_C, MBEDTLS_PK_PARSE_C
+ *
+ * \warning You must call psa_crypto_init() before doing any X.509 operation.
+ *
+ * This module is required for the X.509 parsing modules.
+ */
+#define MBEDTLS_X509_USE_C

-/* X509 options */
-//#define MBEDTLS_X509_MAX_INTERMEDIATE_CA   8   /**< Maximum number of intermediate CAs in a verification chain. */
 //#define MBEDTLS_X509_MAX_FILE_PATH_LEN     512 /**< Maximum length of a path/filename string in bytes including the null terminator character ('\0'). */
+//#define MBEDTLS_X509_MAX_INTERMEDIATE_CA   8   /**< Maximum number of intermediate CAs in a verification chain. */

-/** \} name SECTION: Module configuration options */
+/** \} name SECTION: X.509 feature selection */
diff --git a/deps/LIEF/third-party/mbedtls/include/mbedtls/net_sockets.h b/deps/LIEF/third-party/mbedtls/include/mbedtls/net_sockets.h
index 8e69bc0fb37..f4eb683d3a6 100644
--- a/deps/LIEF/third-party/mbedtls/include/mbedtls/net_sockets.h
+++ b/deps/LIEF/third-party/mbedtls/include/mbedtls/net_sockets.h
@@ -53,7 +53,7 @@
 /** Failed to get an IP address for the given hostname. */
 #define MBEDTLS_ERR_NET_UNKNOWN_HOST                      -0x0052
 /** Buffer is too small to hold the data. */
-#define MBEDTLS_ERR_NET_BUFFER_TOO_SMALL                  -0x0043
+#define MBEDTLS_ERR_NET_BUFFER_TOO_SMALL                  PSA_ERROR_BUFFER_TOO_SMALL
 /** The context is invalid, eg because it was free()ed. */
 #define MBEDTLS_ERR_NET_INVALID_CONTEXT                   -0x0045
 /** Polling the net context failed. */
@@ -147,11 +147,11 @@ int mbedtls_net_bind(mbedtls_net_context *ctx, const char *bind_ip, const char *
  *                  can be NULL if client_ip is null
  *
  * \return          0 if successful, or
- *                  MBEDTLS_ERR_NET_SOCKET_FAILED,
- *                  MBEDTLS_ERR_NET_BIND_FAILED,
- *                  MBEDTLS_ERR_NET_ACCEPT_FAILED, or
- *                  MBEDTLS_ERR_NET_BUFFER_TOO_SMALL if buf_size is too small,
- *                  MBEDTLS_ERR_SSL_WANT_READ if bind_fd was set to
+ *                  #MBEDTLS_ERR_NET_SOCKET_FAILED,
+ *                  #MBEDTLS_ERR_NET_BIND_FAILED,
+ *                  #MBEDTLS_ERR_NET_ACCEPT_FAILED, or
+ *                  #PSA_ERROR_BUFFER_TOO_SMALL if buf_size is too small,
+ *                  #MBEDTLS_ERR_SSL_WANT_READ if bind_fd was set to
  *                  non-blocking and accept() would block.
  */
 int mbedtls_net_accept(mbedtls_net_context *bind_ctx,
diff --git a/deps/LIEF/third-party/mbedtls/include/mbedtls/nist_kw.h b/deps/LIEF/third-party/mbedtls/include/mbedtls/nist_kw.h
deleted file mode 100644
index d353f3d1a8a..00000000000
--- a/deps/LIEF/third-party/mbedtls/include/mbedtls/nist_kw.h
+++ /dev/null
@@ -1,166 +0,0 @@
-/**
- * \file nist_kw.h
- *
- * \brief This file provides an API for key wrapping (KW) and key wrapping with
- *        padding (KWP) as defined in NIST SP 800-38F.
- *        https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-38F.pdf
- *
- *        Key wrapping specifies a deterministic authenticated-encryption mode
- *        of operation, according to <em>NIST SP 800-38F: Recommendation for
- *        Block Cipher Modes of Operation: Methods for Key Wrapping</em>. Its
- *        purpose is to protect cryptographic keys.
- *
- *        Its equivalent is RFC 3394 for KW, and RFC 5649 for KWP.
- *        https://tools.ietf.org/html/rfc3394
- *        https://tools.ietf.org/html/rfc5649
- *
- */
-/*
- *  Copyright The Mbed TLS Contributors
- *  SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
- */
-
-#ifndef MBEDTLS_NIST_KW_H
-#define MBEDTLS_NIST_KW_H
-#include "mbedtls/private_access.h"
-
-#include "mbedtls/build_info.h"
-
-#include "mbedtls/cipher.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-typedef enum {
-    MBEDTLS_KW_MODE_KW = 0,
-    MBEDTLS_KW_MODE_KWP = 1
-} mbedtls_nist_kw_mode_t;
-
-#if !defined(MBEDTLS_NIST_KW_ALT)
-// Regular implementation
-//
-
-/**
- * \brief    The key wrapping context-type definition. The key wrapping context is passed
- *           to the APIs called.
- *
- * \note     The definition of this type may change in future library versions.
- *           Don't make any assumptions on this context!
- */
-typedef struct {
-    mbedtls_cipher_context_t MBEDTLS_PRIVATE(cipher_ctx);    /*!< The cipher context used. */
-} mbedtls_nist_kw_context;
-
-#else  /* MBEDTLS_NIST_key wrapping_ALT */
-#include "nist_kw_alt.h"
-#endif /* MBEDTLS_NIST_KW_ALT */
-
-/**
- * \brief           This function initializes the specified key wrapping context
- *                  to make references valid and prepare the context
- *                  for mbedtls_nist_kw_setkey() or mbedtls_nist_kw_free().
- *
- * \param ctx       The key wrapping context to initialize.
- *
- */
-void mbedtls_nist_kw_init(mbedtls_nist_kw_context *ctx);
-
-/**
- * \brief           This function initializes the key wrapping context set in the
- *                  \p ctx parameter and sets the encryption key.
- *
- * \param ctx       The key wrapping context.
- * \param cipher    The 128-bit block cipher to use. Only AES is supported.
- * \param key       The Key Encryption Key (KEK).
- * \param keybits   The KEK size in bits. This must be acceptable by the cipher.
- * \param is_wrap   Specify whether the operation within the context is wrapping or unwrapping
- *
- * \return          \c 0 on success.
- * \return          \c MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA for any invalid input.
- * \return          \c MBEDTLS_ERR_CIPHER_FEATURE_UNAVAILABLE for 128-bit block ciphers
- *                  which are not supported.
- * \return          cipher-specific error code on failure of the underlying cipher.
- */
-int mbedtls_nist_kw_setkey(mbedtls_nist_kw_context *ctx,
-                           mbedtls_cipher_id_t cipher,
-                           const unsigned char *key,
-                           unsigned int keybits,
-                           const int is_wrap);
-
-/**
- * \brief   This function releases and clears the specified key wrapping context
- *          and underlying cipher sub-context.
- *
- * \param ctx       The key wrapping context to clear.
- */
-void mbedtls_nist_kw_free(mbedtls_nist_kw_context *ctx);
-
-/**
- * \brief           This function encrypts a buffer using key wrapping.
- *
- * \param ctx       The key wrapping context to use for encryption.
- * \param mode      The key wrapping mode to use (MBEDTLS_KW_MODE_KW or MBEDTLS_KW_MODE_KWP)
- * \param input     The buffer holding the input data.
- * \param in_len    The length of the input data in Bytes.
- *                  The input uses units of 8 Bytes called semiblocks.
- *                  <ul><li>For KW mode: a multiple of 8 bytes between 16 and 2^57-8 inclusive. </li>
- *                  <li>For KWP mode: any length between 1 and 2^32-1 inclusive.</li></ul>
- * \param[out] output    The buffer holding the output data.
- *                  <ul><li>For KW mode: Must be at least 8 bytes larger than \p in_len.</li>
- *                  <li>For KWP mode: Must be at least 8 bytes larger rounded up to a multiple of
- *                  8 bytes for KWP (15 bytes at most).</li></ul>
- * \param[out] out_len The number of bytes written to the output buffer. \c 0 on failure.
- * \param[in] out_size The capacity of the output buffer.
- *
- * \return          \c 0 on success.
- * \return          \c MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA for invalid input length.
- * \return          cipher-specific error code on failure of the underlying cipher.
- */
-int mbedtls_nist_kw_wrap(mbedtls_nist_kw_context *ctx, mbedtls_nist_kw_mode_t mode,
-                         const unsigned char *input, size_t in_len,
-                         unsigned char *output, size_t *out_len, size_t out_size);
-
-/**
- * \brief           This function decrypts a buffer using key wrapping.
- *
- * \param ctx       The key wrapping context to use for decryption.
- * \param mode      The key wrapping mode to use (MBEDTLS_KW_MODE_KW or MBEDTLS_KW_MODE_KWP)
- * \param input     The buffer holding the input data.
- * \param in_len    The length of the input data in Bytes.
- *                  The input uses units of 8 Bytes called semiblocks.
- *                  The input must be a multiple of semiblocks.
- *                  <ul><li>For KW mode: a multiple of 8 bytes between 24 and 2^57 inclusive. </li>
- *                  <li>For KWP mode: a multiple of 8 bytes between 16 and 2^32 inclusive.</li></ul>
- * \param[out] output    The buffer holding the output data.
- *                  The output buffer's minimal length is 8 bytes shorter than \p in_len.
- * \param[out] out_len The number of bytes written to the output buffer. \c 0 on failure.
- *                  For KWP mode, the length could be up to 15 bytes shorter than \p in_len,
- *                  depending on how much padding was added to the data.
- * \param[in] out_size The capacity of the output buffer.
- *
- * \return          \c 0 on success.
- * \return          \c MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA for invalid input length.
- * \return          \c MBEDTLS_ERR_CIPHER_AUTH_FAILED for verification failure of the ciphertext.
- * \return          cipher-specific error code on failure of the underlying cipher.
- */
-int mbedtls_nist_kw_unwrap(mbedtls_nist_kw_context *ctx, mbedtls_nist_kw_mode_t mode,
-                           const unsigned char *input, size_t in_len,
-                           unsigned char *output, size_t *out_len, size_t out_size);
-
-
-#if defined(MBEDTLS_SELF_TEST) && defined(MBEDTLS_AES_C)
-/**
- * \brief          The key wrapping checkup routine.
- *
- * \return         \c 0 on success.
- * \return         \c 1 on failure.
- */
-int mbedtls_nist_kw_self_test(int verbose);
-#endif /* MBEDTLS_SELF_TEST && MBEDTLS_AES_C */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* MBEDTLS_NIST_KW_H */
diff --git a/deps/LIEF/third-party/mbedtls/include/mbedtls/oid.h b/deps/LIEF/third-party/mbedtls/include/mbedtls/oid.h
index fdc25ebf885..d769ff2180f 100644
--- a/deps/LIEF/third-party/mbedtls/include/mbedtls/oid.h
+++ b/deps/LIEF/third-party/mbedtls/include/mbedtls/oid.h
@@ -1,7 +1,7 @@
 /**
  * \file oid.h
  *
- * \brief Object Identifier (OID) database
+ * \brief Object Identifier (OID) values
  */
 /*
  *  Copyright The Mbed TLS Contributors
@@ -9,52 +9,9 @@
  */
 #ifndef MBEDTLS_OID_H
 #define MBEDTLS_OID_H
-#include "mbedtls/private_access.h"

 #include "mbedtls/build_info.h"
-
 #include "mbedtls/asn1.h"
-#include "mbedtls/pk.h"
-
-#include <stddef.h>
-
-#if defined(MBEDTLS_CIPHER_C)
-#include "mbedtls/cipher.h"
-#endif
-
-#include "mbedtls/md.h"
-
-/** OID is not found. */
-#define MBEDTLS_ERR_OID_NOT_FOUND                         -0x002E
-/** output buffer is too small */
-#define MBEDTLS_ERR_OID_BUF_TOO_SMALL                     -0x000B
-
-/* This is for the benefit of X.509, but defined here in order to avoid
- * having a "backwards" include of x.509.h here */
-/*
- * X.509 extension types (internal, arbitrary values for bitsets)
- */
-#define MBEDTLS_OID_X509_EXT_AUTHORITY_KEY_IDENTIFIER    (1 << 0)
-#define MBEDTLS_OID_X509_EXT_SUBJECT_KEY_IDENTIFIER      (1 << 1)
-#define MBEDTLS_OID_X509_EXT_KEY_USAGE                   (1 << 2)
-#define MBEDTLS_OID_X509_EXT_CERTIFICATE_POLICIES        (1 << 3)
-#define MBEDTLS_OID_X509_EXT_POLICY_MAPPINGS             (1 << 4)
-#define MBEDTLS_OID_X509_EXT_SUBJECT_ALT_NAME            (1 << 5)
-#define MBEDTLS_OID_X509_EXT_ISSUER_ALT_NAME             (1 << 6)
-#define MBEDTLS_OID_X509_EXT_SUBJECT_DIRECTORY_ATTRS     (1 << 7)
-#define MBEDTLS_OID_X509_EXT_BASIC_CONSTRAINTS           (1 << 8)
-#define MBEDTLS_OID_X509_EXT_NAME_CONSTRAINTS            (1 << 9)
-#define MBEDTLS_OID_X509_EXT_POLICY_CONSTRAINTS          (1 << 10)
-#define MBEDTLS_OID_X509_EXT_EXTENDED_KEY_USAGE          (1 << 11)
-#define MBEDTLS_OID_X509_EXT_CRL_DISTRIBUTION_POINTS     (1 << 12)
-#define MBEDTLS_OID_X509_EXT_INIHIBIT_ANYPOLICY          (1 << 13)
-#define MBEDTLS_OID_X509_EXT_FRESHEST_CRL                (1 << 14)
-#define MBEDTLS_OID_X509_EXT_NS_CERT_TYPE                (1 << 16)
-
-/*
- * Maximum number of OID components allowed
- */
-#define MBEDTLS_OID_MAX_COMPONENTS              128

 /*
  * Top level OID tuples
@@ -227,7 +184,6 @@
 /*
  * PKCS#1 OIDs
  */
-#define MBEDTLS_OID_PKCS1_RSA           MBEDTLS_OID_PKCS1 "\x01" /**< rsaEncryption OBJECT IDENTIFIER ::= { pkcs-1 1 } */
 #define MBEDTLS_OID_PKCS1_MD5           MBEDTLS_OID_PKCS1 "\x04" /**< md5WithRSAEncryption ::= { pkcs-1 4 } */
 #define MBEDTLS_OID_PKCS1_SHA1          MBEDTLS_OID_PKCS1 "\x05" /**< sha1WithRSAEncryption ::= { pkcs-1 5 } */
 #define MBEDTLS_OID_PKCS1_SHA224        MBEDTLS_OID_PKCS1 "\x0e" /**< sha224WithRSAEncryption ::= { pkcs-1 14 } */
@@ -266,67 +222,6 @@

 #define MBEDTLS_OID_DIGEST_ALG_SHA3_512         MBEDTLS_OID_NIST_ALG "\x02\x0a" /**< id-sha3-512 OBJECT IDENTIFIER ::= { joint-iso-itu-t(2) country(16) us(840) organization(1) gov(101) csor(3) nistAlgorithms(4) hashalgs(2) sha3-512(10) } */

-
-#define MBEDTLS_OID_HMAC_SHA1                   MBEDTLS_OID_RSA_COMPANY "\x02\x07" /**< id-hmacWithSHA1 OBJECT IDENTIFIER ::= { iso(1) member-body(2) us(840) rsadsi(113549) digestAlgorithm(2) 7 } */
-
-#define MBEDTLS_OID_HMAC_SHA224                 MBEDTLS_OID_RSA_COMPANY "\x02\x08" /**< id-hmacWithSHA224 OBJECT IDENTIFIER ::= { iso(1) member-body(2) us(840) rsadsi(113549) digestAlgorithm(2) 8 } */
-
-#define MBEDTLS_OID_HMAC_SHA256                 MBEDTLS_OID_RSA_COMPANY "\x02\x09" /**< id-hmacWithSHA256 OBJECT IDENTIFIER ::= { iso(1) member-body(2) us(840) rsadsi(113549) digestAlgorithm(2) 9 } */
-
-#define MBEDTLS_OID_HMAC_SHA384                 MBEDTLS_OID_RSA_COMPANY "\x02\x0A" /**< id-hmacWithSHA384 OBJECT IDENTIFIER ::= { iso(1) member-body(2) us(840) rsadsi(113549) digestAlgorithm(2) 10 } */
-
-#define MBEDTLS_OID_HMAC_SHA512                 MBEDTLS_OID_RSA_COMPANY "\x02\x0B" /**< id-hmacWithSHA512 OBJECT IDENTIFIER ::= { iso(1) member-body(2) us(840) rsadsi(113549) digestAlgorithm(2) 11 } */
-
-#define MBEDTLS_OID_HMAC_SHA3_224               MBEDTLS_OID_NIST_ALG "\x02\x0d" /**< id-hmacWithSHA3-512 OBJECT IDENTIFIER ::= { joint-iso-itu-t(2) country(16) us(840) organization(1) gov(101) csor(3) nistAlgorithms(4) hashalgs(2) hmacWithSHA3-224(13) } */
-
-#define MBEDTLS_OID_HMAC_SHA3_256               MBEDTLS_OID_NIST_ALG "\x02\x0e" /**< id-hmacWithSHA3-512 OBJECT IDENTIFIER ::= { joint-iso-itu-t(2) country(16) us(840) organization(1) gov(101) csor(3) nistAlgorithms(4) hashalgs(2) hmacWithSHA3-256(14) } */
-
-#define MBEDTLS_OID_HMAC_SHA3_384               MBEDTLS_OID_NIST_ALG "\x02\x0f" /**< id-hmacWithSHA3-512 OBJECT IDENTIFIER ::= { joint-iso-itu-t(2) country(16) us(840) organization(1) gov(101) csor(3) nistAlgorithms(4) hashalgs(2) hmacWithSHA3-384(15) } */
-
-#define MBEDTLS_OID_HMAC_SHA3_512               MBEDTLS_OID_NIST_ALG "\x02\x10" /**< id-hmacWithSHA3-512 OBJECT IDENTIFIER ::= { joint-iso-itu-t(2) country(16) us(840) organization(1) gov(101) csor(3) nistAlgorithms(4) hashalgs(2) hmacWithSHA3-512(16) } */
-
-#define MBEDTLS_OID_HMAC_RIPEMD160              MBEDTLS_OID_INTERNET "\x05\x05\x08\x01\x04" /**< id-hmacWithSHA1 OBJECT IDENTIFIER ::= {iso(1) iso-identified-organization(3) dod(6) internet(1) security(5) mechanisms(5) ipsec(8) isakmpOakley(1) hmacRIPEMD160(4)} */
-
-/*
- * Encryption algorithms,
- * the following standardized object identifiers are specified at
- * https://datatracker.ietf.org/doc/html/rfc8018#appendix-C.
- */
-#define MBEDTLS_OID_DES_CBC                     MBEDTLS_OID_ISO_IDENTIFIED_ORG \
-        MBEDTLS_OID_OIW_SECSIG_ALG "\x07"                                                                        /**< desCBC OBJECT IDENTIFIER ::= { iso(1) identified-organization(3) oiw(14) secsig(3) algorithms(2) 7 } */
-#define MBEDTLS_OID_DES_EDE3_CBC                MBEDTLS_OID_RSA_COMPANY "\x03\x07" /**< des-ede3-cbc OBJECT IDENTIFIER ::= { iso(1) member-body(2) -- us(840) rsadsi(113549) encryptionAlgorithm(3) 7 } */
-#define MBEDTLS_OID_AES                         MBEDTLS_OID_NIST_ALG "\x01" /** aes OBJECT IDENTIFIER ::= { joint-iso-itu-t(2) country(16) us(840) organization(1) gov(101) csor(3) nistAlgorithm(4) 1 } */
-#define MBEDTLS_OID_AES_128_CBC                 MBEDTLS_OID_AES "\x02" /** aes128-cbc-pad OBJECT IDENTIFIER ::= { joint-iso-itu-t(2) country(16) us(840) organization(1) gov(101) csor(3) nistAlgorithms(4) aes(1) aes128-CBC-PAD(2) } */
-#define MBEDTLS_OID_AES_192_CBC                 MBEDTLS_OID_AES "\x16" /** aes192-cbc-pad OBJECT IDENTIFIER ::= { joint-iso-itu-t(2) country(16) us(840) organization(1) gov(101) csor(3) nistAlgorithms(4) aes(1) aes192-CBC-PAD(22) } */
-#define MBEDTLS_OID_AES_256_CBC                 MBEDTLS_OID_AES "\x2a" /** aes256-cbc-pad OBJECT IDENTIFIER ::= { joint-iso-itu-t(2) country(16) us(840) organization(1) gov(101) csor(3) nistAlgorithms(4) aes(1) aes256-CBC-PAD(42) } */
-
-/*
- * Key Wrapping algorithms
- */
-/*
- * RFC 5649
- */
-#define MBEDTLS_OID_AES128_KW                   MBEDTLS_OID_AES "\x05" /** id-aes128-wrap     OBJECT IDENTIFIER ::= { aes 5 } */
-#define MBEDTLS_OID_AES128_KWP                  MBEDTLS_OID_AES "\x08" /** id-aes128-wrap-pad OBJECT IDENTIFIER ::= { aes 8 } */
-#define MBEDTLS_OID_AES192_KW                   MBEDTLS_OID_AES "\x19" /** id-aes192-wrap     OBJECT IDENTIFIER ::= { aes 25 } */
-#define MBEDTLS_OID_AES192_KWP                  MBEDTLS_OID_AES "\x1c" /** id-aes192-wrap-pad OBJECT IDENTIFIER ::= { aes 28 } */
-#define MBEDTLS_OID_AES256_KW                   MBEDTLS_OID_AES "\x2d" /** id-aes256-wrap     OBJECT IDENTIFIER ::= { aes 45 } */
-#define MBEDTLS_OID_AES256_KWP                  MBEDTLS_OID_AES "\x30" /** id-aes256-wrap-pad OBJECT IDENTIFIER ::= { aes 48 } */
-/*
- * PKCS#5 OIDs
- */
-#define MBEDTLS_OID_PKCS5_PBKDF2                MBEDTLS_OID_PKCS5 "\x0c" /**< id-PBKDF2 OBJECT IDENTIFIER ::= {pkcs-5 12} */
-#define MBEDTLS_OID_PKCS5_PBES2                 MBEDTLS_OID_PKCS5 "\x0d" /**< id-PBES2 OBJECT IDENTIFIER ::= {pkcs-5 13} */
-#define MBEDTLS_OID_PKCS5_PBMAC1                MBEDTLS_OID_PKCS5 "\x0e" /**< id-PBMAC1 OBJECT IDENTIFIER ::= {pkcs-5 14} */
-
-/*
- * PKCS#5 PBES1 algorithms
- */
-#define MBEDTLS_OID_PKCS5_PBE_MD5_DES_CBC       MBEDTLS_OID_PKCS5 "\x03" /**< pbeWithMD5AndDES-CBC OBJECT IDENTIFIER ::= {pkcs-5 3} */
-#define MBEDTLS_OID_PKCS5_PBE_MD5_RC2_CBC       MBEDTLS_OID_PKCS5 "\x06" /**< pbeWithMD5AndRC2-CBC OBJECT IDENTIFIER ::= {pkcs-5 6} */
-#define MBEDTLS_OID_PKCS5_PBE_SHA1_DES_CBC      MBEDTLS_OID_PKCS5 "\x0a" /**< pbeWithSHA1AndDES-CBC OBJECT IDENTIFIER ::= {pkcs-5 10} */
-#define MBEDTLS_OID_PKCS5_PBE_SHA1_RC2_CBC      MBEDTLS_OID_PKCS5 "\x0b" /**< pbeWithSHA1AndRC2-CBC OBJECT IDENTIFIER ::= {pkcs-5 11} */
-
 /*
  * PKCS#7 OIDs
  */
@@ -337,95 +232,8 @@
 #define MBEDTLS_OID_PKCS7_DIGESTED_DATA               MBEDTLS_OID_PKCS7 "\x05" /**< Content type is Digested Data OBJECT IDENTIFIER ::= {pkcs-7 5} */
 #define MBEDTLS_OID_PKCS7_ENCRYPTED_DATA              MBEDTLS_OID_PKCS7 "\x06" /**< Content type is Encrypted Data OBJECT IDENTIFIER ::= {pkcs-7 6} */

-/*
- * PKCS#8 OIDs
- */
 #define MBEDTLS_OID_PKCS9_CSR_EXT_REQ           MBEDTLS_OID_PKCS9 "\x0e" /**< extensionRequest OBJECT IDENTIFIER ::= {pkcs-9 14} */

-/*
- * PKCS#12 PBE OIDs
- */
-#define MBEDTLS_OID_PKCS12_PBE                      MBEDTLS_OID_PKCS12 "\x01" /**< pkcs-12PbeIds OBJECT IDENTIFIER ::= {pkcs-12 1} */
-
-#define MBEDTLS_OID_PKCS12_PBE_SHA1_DES3_EDE_CBC    MBEDTLS_OID_PKCS12_PBE "\x03" /**< pbeWithSHAAnd3-KeyTripleDES-CBC OBJECT IDENTIFIER ::= {pkcs-12PbeIds 3} */
-#define MBEDTLS_OID_PKCS12_PBE_SHA1_DES2_EDE_CBC    MBEDTLS_OID_PKCS12_PBE "\x04" /**< pbeWithSHAAnd2-KeyTripleDES-CBC OBJECT IDENTIFIER ::= {pkcs-12PbeIds 4} */
-#define MBEDTLS_OID_PKCS12_PBE_SHA1_RC2_128_CBC     MBEDTLS_OID_PKCS12_PBE "\x05" /**< pbeWithSHAAnd128BitRC2-CBC OBJECT IDENTIFIER ::= {pkcs-12PbeIds 5} */
-#define MBEDTLS_OID_PKCS12_PBE_SHA1_RC2_40_CBC      MBEDTLS_OID_PKCS12_PBE "\x06" /**< pbeWithSHAAnd40BitRC2-CBC OBJECT IDENTIFIER ::= {pkcs-12PbeIds 6} */
-
-/*
- * EC key algorithms from RFC 5480
- */
-
-/* id-ecPublicKey OBJECT IDENTIFIER ::= {
- *       iso(1) member-body(2) us(840) ansi-X9-62(10045) keyType(2) 1 } */
-#define MBEDTLS_OID_EC_ALG_UNRESTRICTED         MBEDTLS_OID_ANSI_X9_62 "\x02\01"
-
-/*   id-ecDH OBJECT IDENTIFIER ::= {
- *     iso(1) identified-organization(3) certicom(132)
- *     schemes(1) ecdh(12) } */
-#define MBEDTLS_OID_EC_ALG_ECDH                 MBEDTLS_OID_CERTICOM "\x01\x0c"
-
-/*
- * ECParameters namedCurve identifiers, from RFC 5480, RFC 5639, and SEC2
- */
-
-/* secp192r1 OBJECT IDENTIFIER ::= {
- *   iso(1) member-body(2) us(840) ansi-X9-62(10045) curves(3) prime(1) 1 } */
-#define MBEDTLS_OID_EC_GRP_SECP192R1        MBEDTLS_OID_ANSI_X9_62 "\x03\x01\x01"
-
-/* secp224r1 OBJECT IDENTIFIER ::= {
- *   iso(1) identified-organization(3) certicom(132) curve(0) 33 } */
-#define MBEDTLS_OID_EC_GRP_SECP224R1        MBEDTLS_OID_CERTICOM "\x00\x21"
-
-/* secp256r1 OBJECT IDENTIFIER ::= {
- *   iso(1) member-body(2) us(840) ansi-X9-62(10045) curves(3) prime(1) 7 } */
-#define MBEDTLS_OID_EC_GRP_SECP256R1        MBEDTLS_OID_ANSI_X9_62 "\x03\x01\x07"
-
-/* secp384r1 OBJECT IDENTIFIER ::= {
- *   iso(1) identified-organization(3) certicom(132) curve(0) 34 } */
-#define MBEDTLS_OID_EC_GRP_SECP384R1        MBEDTLS_OID_CERTICOM "\x00\x22"
-
-/* secp521r1 OBJECT IDENTIFIER ::= {
- *   iso(1) identified-organization(3) certicom(132) curve(0) 35 } */
-#define MBEDTLS_OID_EC_GRP_SECP521R1        MBEDTLS_OID_CERTICOM "\x00\x23"
-
-/* secp192k1 OBJECT IDENTIFIER ::= {
- *   iso(1) identified-organization(3) certicom(132) curve(0) 31 } */
-#define MBEDTLS_OID_EC_GRP_SECP192K1        MBEDTLS_OID_CERTICOM "\x00\x1f"
-
-/* secp224k1 OBJECT IDENTIFIER ::= {
- *   iso(1) identified-organization(3) certicom(132) curve(0) 32 } */
-#define MBEDTLS_OID_EC_GRP_SECP224K1        MBEDTLS_OID_CERTICOM "\x00\x20"
-
-/* secp256k1 OBJECT IDENTIFIER ::= {
- *   iso(1) identified-organization(3) certicom(132) curve(0) 10 } */
-#define MBEDTLS_OID_EC_GRP_SECP256K1        MBEDTLS_OID_CERTICOM "\x00\x0a"
-
-/* RFC 5639 4.1
- * ecStdCurvesAndGeneration OBJECT IDENTIFIER::= {iso(1)
- * identified-organization(3) teletrust(36) algorithm(3) signature-
- * algorithm(3) ecSign(2) 8}
- * ellipticCurve OBJECT IDENTIFIER ::= {ecStdCurvesAndGeneration 1}
- * versionOne OBJECT IDENTIFIER ::= {ellipticCurve 1} */
-#define MBEDTLS_OID_EC_BRAINPOOL_V1         MBEDTLS_OID_TELETRUST "\x03\x03\x02\x08\x01\x01"
-
-/* brainpoolP256r1 OBJECT IDENTIFIER ::= {versionOne 7} */
-#define MBEDTLS_OID_EC_GRP_BP256R1          MBEDTLS_OID_EC_BRAINPOOL_V1 "\x07"
-
-/* brainpoolP384r1 OBJECT IDENTIFIER ::= {versionOne 11} */
-#define MBEDTLS_OID_EC_GRP_BP384R1          MBEDTLS_OID_EC_BRAINPOOL_V1 "\x0B"
-
-/* brainpoolP512r1 OBJECT IDENTIFIER ::= {versionOne 13} */
-#define MBEDTLS_OID_EC_GRP_BP512R1          MBEDTLS_OID_EC_BRAINPOOL_V1 "\x0D"
-
-/*
- * SEC1 C.1
- *
- * prime-field OBJECT IDENTIFIER ::= { id-fieldType 1 }
- * id-fieldType OBJECT IDENTIFIER ::= { ansi-X9-62 fieldType(1)}
- */
-#define MBEDTLS_OID_ANSI_X9_62_FIELD_TYPE   MBEDTLS_OID_ANSI_X9_62 "\x01"
-#define MBEDTLS_OID_ANSI_X9_62_PRIME_FIELD  MBEDTLS_OID_ANSI_X9_62_FIELD_TYPE "\x01"

 /*
  * ECDSA signature identifiers, from RFC 5480
@@ -457,31 +265,7 @@
  *   ecdsa-with-SHA2(3) 4 } */
 #define MBEDTLS_OID_ECDSA_SHA512            MBEDTLS_OID_ANSI_X9_62_SIG_SHA2 "\x04"

-/*
- * EC key algorithms from RFC 8410
- */
-
-#define MBEDTLS_OID_X25519                  MBEDTLS_OID_THAWTE "\x6e" /**< id-X25519    OBJECT IDENTIFIER ::= { 1 3 101 110 } */
-#define MBEDTLS_OID_X448                    MBEDTLS_OID_THAWTE "\x6f" /**< id-X448      OBJECT IDENTIFIER ::= { 1 3 101 111 } */
-#define MBEDTLS_OID_ED25519                 MBEDTLS_OID_THAWTE "\x70" /**< id-Ed25519   OBJECT IDENTIFIER ::= { 1 3 101 112 } */
-#define MBEDTLS_OID_ED448                   MBEDTLS_OID_THAWTE "\x71" /**< id-Ed448     OBJECT IDENTIFIER ::= { 1 3 101 113 } */
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * \brief Base OID descriptor structure
- */
-typedef struct mbedtls_oid_descriptor_t {
-    const char *MBEDTLS_PRIVATE(asn1);               /*!< OID ASN.1 representation       */
-    size_t MBEDTLS_PRIVATE(asn1_len);                /*!< length of asn1                 */
-#if !defined(MBEDTLS_X509_REMOVE_INFO)
-    const char *MBEDTLS_PRIVATE(name);               /*!< official name (e.g. from RFC)  */
-    const char *MBEDTLS_PRIVATE(description);        /*!< human friendly description     */
-#endif
-} mbedtls_oid_descriptor_t;
-
+#if defined(MBEDTLS_X509_USE_C)
 /**
  * \brief           Translate an ASN.1 OID into its numeric representation
  *                  (e.g. "\x2A\x86\x48\x86\xF7\x0D" into "1.2.840.113549")
@@ -491,10 +275,12 @@ typedef struct mbedtls_oid_descriptor_t {
  * \param oid       OID to translate
  *
  * \return          Length of the string written (excluding final NULL) or
- *                  MBEDTLS_ERR_OID_BUF_TOO_SMALL in case of error
+ *                  PSA_ERROR_BUFFER_TOO_SMALL in case of error
  */
 int mbedtls_oid_get_numeric_string(char *buf, size_t size, const mbedtls_asn1_buf *oid);
+#endif /* MBEDTLS_X509_USE_C */

+#if defined(MBEDTLS_X509_CREATE_C)
 /**
  * \brief           Translate a string containing a dotted-decimal
  *                  representation of an ASN.1 OID into its encoded form
@@ -513,215 +299,6 @@ int mbedtls_oid_get_numeric_string(char *buf, size_t size, const mbedtls_asn1_bu
  *                  allocate oid->buf
  */
 int mbedtls_oid_from_numeric_string(mbedtls_asn1_buf *oid, const char *oid_str, size_t size);
-
-/**
- * \brief          Translate an X.509 extension OID into local values
- *
- * \param oid      OID to use
- * \param ext_type place to store the extension type
- *
- * \return         0 if successful, or MBEDTLS_ERR_OID_NOT_FOUND
- */
-int mbedtls_oid_get_x509_ext_type(const mbedtls_asn1_buf *oid, int *ext_type);
-
-/**
- * \brief          Translate an X.509 attribute type OID into the short name
- *                 (e.g. the OID for an X520 Common Name into "CN")
- *
- * \param oid      OID to use
- * \param short_name    place to store the string pointer
- *
- * \return         0 if successful, or MBEDTLS_ERR_OID_NOT_FOUND
- */
-int mbedtls_oid_get_attr_short_name(const mbedtls_asn1_buf *oid, const char **short_name);
-
-/**
- * \brief          Translate PublicKeyAlgorithm OID into pk_type
- *
- * \param oid      OID to use
- * \param pk_alg   place to store public key algorithm
- *
- * \return         0 if successful, or MBEDTLS_ERR_OID_NOT_FOUND
- */
-int mbedtls_oid_get_pk_alg(const mbedtls_asn1_buf *oid, mbedtls_pk_type_t *pk_alg);
-
-/**
- * \brief          Translate pk_type into PublicKeyAlgorithm OID
- *
- * \param pk_alg   Public key type to look for
- * \param oid      place to store ASN.1 OID string pointer
- * \param olen     length of the OID
- *
- * \return         0 if successful, or MBEDTLS_ERR_OID_NOT_FOUND
- */
-int mbedtls_oid_get_oid_by_pk_alg(mbedtls_pk_type_t pk_alg,
-                                  const char **oid, size_t *olen);
-
-#if defined(MBEDTLS_PK_HAVE_ECC_KEYS)
-/**
- * \brief          Translate NamedCurve OID into an EC group identifier
- *
- * \param oid      OID to use
- * \param grp_id   place to store group id
- *
- * \return         0 if successful, or MBEDTLS_ERR_OID_NOT_FOUND
- */
-int mbedtls_oid_get_ec_grp(const mbedtls_asn1_buf *oid, mbedtls_ecp_group_id *grp_id);
-
-/**
- * \brief          Translate EC group identifier into NamedCurve OID
- *
- * \param grp_id   EC group identifier
- * \param oid      place to store ASN.1 OID string pointer
- * \param olen     length of the OID
- *
- * \return         0 if successful, or MBEDTLS_ERR_OID_NOT_FOUND
- */
-int mbedtls_oid_get_oid_by_ec_grp(mbedtls_ecp_group_id grp_id,
-                                  const char **oid, size_t *olen);
-
-/**
- * \brief          Translate AlgorithmIdentifier OID into an EC group identifier,
- *                 for curves that are directly encoded at this level
- *
- * \param oid      OID to use
- * \param grp_id   place to store group id
- *
- * \return         0 if successful, or MBEDTLS_ERR_OID_NOT_FOUND
- */
-int mbedtls_oid_get_ec_grp_algid(const mbedtls_asn1_buf *oid, mbedtls_ecp_group_id *grp_id);
-
-/**
- * \brief          Translate EC group identifier into AlgorithmIdentifier OID,
- *                 for curves that are directly encoded at this level
- *
- * \param grp_id   EC group identifier
- * \param oid      place to store ASN.1 OID string pointer
- * \param olen     length of the OID
- *
- * \return         0 if successful, or MBEDTLS_ERR_OID_NOT_FOUND
- */
-int mbedtls_oid_get_oid_by_ec_grp_algid(mbedtls_ecp_group_id grp_id,
-                                        const char **oid, size_t *olen);
-#endif /* MBEDTLS_PK_HAVE_ECC_KEYS */
-
-/**
- * \brief          Translate SignatureAlgorithm OID into md_type and pk_type
- *
- * \param oid      OID to use
- * \param md_alg   place to store message digest algorithm
- * \param pk_alg   place to store public key algorithm
- *
- * \return         0 if successful, or MBEDTLS_ERR_OID_NOT_FOUND
- */
-int mbedtls_oid_get_sig_alg(const mbedtls_asn1_buf *oid,
-                            mbedtls_md_type_t *md_alg, mbedtls_pk_type_t *pk_alg);
-
-/**
- * \brief          Translate SignatureAlgorithm OID into description
- *
- * \param oid      OID to use
- * \param desc     place to store string pointer
- *
- * \return         0 if successful, or MBEDTLS_ERR_OID_NOT_FOUND
- */
-int mbedtls_oid_get_sig_alg_desc(const mbedtls_asn1_buf *oid, const char **desc);
-
-/**
- * \brief          Translate md_type and pk_type into SignatureAlgorithm OID
- *
- * \param md_alg   message digest algorithm
- * \param pk_alg   public key algorithm
- * \param oid      place to store ASN.1 OID string pointer
- * \param olen     length of the OID
- *
- * \return         0 if successful, or MBEDTLS_ERR_OID_NOT_FOUND
- */
-int mbedtls_oid_get_oid_by_sig_alg(mbedtls_pk_type_t pk_alg, mbedtls_md_type_t md_alg,
-                                   const char **oid, size_t *olen);
-
-/**
- * \brief          Translate hmac algorithm OID into md_type
- *
- * \param oid      OID to use
- * \param md_hmac  place to store message hmac algorithm
- *
- * \return         0 if successful, or MBEDTLS_ERR_OID_NOT_FOUND
- */
-int mbedtls_oid_get_md_hmac(const mbedtls_asn1_buf *oid, mbedtls_md_type_t *md_hmac);
-
-/**
- * \brief          Translate hash algorithm OID into md_type
- *
- * \param oid      OID to use
- * \param md_alg   place to store message digest algorithm
- *
- * \return         0 if successful, or MBEDTLS_ERR_OID_NOT_FOUND
- */
-int mbedtls_oid_get_md_alg(const mbedtls_asn1_buf *oid, mbedtls_md_type_t *md_alg);
-
-#if !defined(MBEDTLS_X509_REMOVE_INFO)
-/**
- * \brief          Translate Extended Key Usage OID into description
- *
- * \param oid      OID to use
- * \param desc     place to store string pointer
- *
- * \return         0 if successful, or MBEDTLS_ERR_OID_NOT_FOUND
- */
-int mbedtls_oid_get_extended_key_usage(const mbedtls_asn1_buf *oid, const char **desc);
-#endif
-
-/**
- * \brief          Translate certificate policies OID into description
- *
- * \param oid      OID to use
- * \param desc     place to store string pointer
- *
- * \return         0 if successful, or MBEDTLS_ERR_OID_NOT_FOUND
- */
-int mbedtls_oid_get_certificate_policies(const mbedtls_asn1_buf *oid, const char **desc);
-
-/**
- * \brief          Translate md_type into hash algorithm OID
- *
- * \param md_alg   message digest algorithm
- * \param oid      place to store ASN.1 OID string pointer
- * \param olen     length of the OID
- *
- * \return         0 if successful, or MBEDTLS_ERR_OID_NOT_FOUND
- */
-int mbedtls_oid_get_oid_by_md(mbedtls_md_type_t md_alg, const char **oid, size_t *olen);
-
-#if defined(MBEDTLS_CIPHER_C)
-/**
- * \brief          Translate encryption algorithm OID into cipher_type
- *
- * \param oid           OID to use
- * \param cipher_alg    place to store cipher algorithm
- *
- * \return         0 if successful, or MBEDTLS_ERR_OID_NOT_FOUND
- */
-int mbedtls_oid_get_cipher_alg(const mbedtls_asn1_buf *oid, mbedtls_cipher_type_t *cipher_alg);
-
-#if defined(MBEDTLS_PKCS12_C)
-/**
- * \brief          Translate PKCS#12 PBE algorithm OID into md_type and
- *                 cipher_type
- *
- * \param oid           OID to use
- * \param md_alg        place to store message digest algorithm
- * \param cipher_alg    place to store cipher algorithm
- *
- * \return         0 if successful, or MBEDTLS_ERR_OID_NOT_FOUND
- */
-int mbedtls_oid_get_pkcs12_pbe_alg(const mbedtls_asn1_buf *oid, mbedtls_md_type_t *md_alg,
-                                   mbedtls_cipher_type_t *cipher_alg);
-#endif /* MBEDTLS_PKCS12_C */
-#endif /* MBEDTLS_CIPHER_C */
-
-#ifdef __cplusplus
-}
-#endif
+#endif /* MBEDTLS_X509_CREATE_C */

 #endif /* oid.h */
diff --git a/deps/LIEF/third-party/mbedtls/include/mbedtls/pk.h b/deps/LIEF/third-party/mbedtls/include/mbedtls/pk.h
deleted file mode 100644
index 2b7f34bc0b7..00000000000
--- a/deps/LIEF/third-party/mbedtls/include/mbedtls/pk.h
+++ /dev/null
@@ -1,1296 +0,0 @@
-/**
- * \file pk.h
- *
- * \brief Public Key abstraction layer
- */
-/*
- *  Copyright The Mbed TLS Contributors
- *  SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
- */
-
-#ifndef MBEDTLS_PK_H
-#define MBEDTLS_PK_H
-#include "mbedtls/private_access.h"
-
-#include "mbedtls/build_info.h"
-
-#include "mbedtls/md.h"
-
-#if defined(MBEDTLS_RSA_C)
-#include "mbedtls/rsa.h"
-#endif
-
-#if defined(MBEDTLS_ECP_C)
-#include "mbedtls/ecp.h"
-#endif
-
-#if defined(MBEDTLS_ECDSA_C)
-#include "mbedtls/ecdsa.h"
-#endif
-
-#if defined(MBEDTLS_PSA_CRYPTO_CLIENT)
-#include "psa/crypto.h"
-#endif
-
-/** Memory allocation failed. */
-#define MBEDTLS_ERR_PK_ALLOC_FAILED        -0x3F80
-/** Type mismatch, eg attempt to encrypt with an ECDSA key */
-#define MBEDTLS_ERR_PK_TYPE_MISMATCH       -0x3F00
-/** Bad input parameters to function. */
-#define MBEDTLS_ERR_PK_BAD_INPUT_DATA      -0x3E80
-/** Read/write of file failed. */
-#define MBEDTLS_ERR_PK_FILE_IO_ERROR       -0x3E00
-/** Unsupported key version */
-#define MBEDTLS_ERR_PK_KEY_INVALID_VERSION -0x3D80
-/** Invalid key tag or value. */
-#define MBEDTLS_ERR_PK_KEY_INVALID_FORMAT  -0x3D00
-/** Key algorithm is unsupported (only RSA and EC are supported). */
-#define MBEDTLS_ERR_PK_UNKNOWN_PK_ALG      -0x3C80
-/** Private key password can't be empty. */
-#define MBEDTLS_ERR_PK_PASSWORD_REQUIRED   -0x3C00
-/** Given private key password does not allow for correct decryption. */
-#define MBEDTLS_ERR_PK_PASSWORD_MISMATCH   -0x3B80
-/** The pubkey tag or value is invalid (only RSA and EC are supported). */
-#define MBEDTLS_ERR_PK_INVALID_PUBKEY      -0x3B00
-/** The algorithm tag or value is invalid. */
-#define MBEDTLS_ERR_PK_INVALID_ALG         -0x3A80
-/** Elliptic curve is unsupported (only NIST curves are supported). */
-#define MBEDTLS_ERR_PK_UNKNOWN_NAMED_CURVE -0x3A00
-/** Unavailable feature, e.g. RSA disabled for RSA key. */
-#define MBEDTLS_ERR_PK_FEATURE_UNAVAILABLE -0x3980
-/** The buffer contains a valid signature followed by more data. */
-#define MBEDTLS_ERR_PK_SIG_LEN_MISMATCH    -0x3900
-/** The output buffer is too small. */
-#define MBEDTLS_ERR_PK_BUFFER_TOO_SMALL    -0x3880
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * \brief          Public key types
- */
-typedef enum {
-    MBEDTLS_PK_NONE=0,
-    MBEDTLS_PK_RSA,
-    MBEDTLS_PK_ECKEY,
-    MBEDTLS_PK_ECKEY_DH,
-    MBEDTLS_PK_ECDSA,
-    MBEDTLS_PK_RSA_ALT,
-    MBEDTLS_PK_RSASSA_PSS,
-    MBEDTLS_PK_OPAQUE,
-} mbedtls_pk_type_t;
-
-/**
- * \brief           Options for RSASSA-PSS signature verification.
- *                  See \c mbedtls_rsa_rsassa_pss_verify_ext()
- */
-typedef struct mbedtls_pk_rsassa_pss_options {
-    /** The digest to use for MGF1 in PSS.
-     *
-     * \note When #MBEDTLS_USE_PSA_CRYPTO is enabled and #MBEDTLS_RSA_C is
-     *       disabled, this must be equal to the \c md_alg argument passed
-     *       to mbedtls_pk_verify_ext(). In a future version of the library,
-     *       this constraint may apply whenever #MBEDTLS_USE_PSA_CRYPTO is
-     *       enabled regardless of the status of #MBEDTLS_RSA_C.
-     */
-    mbedtls_md_type_t mgf1_hash_id;
-
-    /** The expected length of the salt, in bytes. This may be
-     * #MBEDTLS_RSA_SALT_LEN_ANY to accept any salt length.
-     *
-     * \note When #MBEDTLS_USE_PSA_CRYPTO is enabled, only
-     *       #MBEDTLS_RSA_SALT_LEN_ANY is valid. Any other value may be
-     *       ignored (allowing any salt length).
-     */
-    int expected_salt_len;
-
-} mbedtls_pk_rsassa_pss_options;
-
-/**
- * \brief           Maximum size of a signature made by mbedtls_pk_sign().
- */
-/* We need to set MBEDTLS_PK_SIGNATURE_MAX_SIZE to the maximum signature
- * size among the supported signature types. Do it by starting at 0,
- * then incrementally increasing to be large enough for each supported
- * signature mechanism.
- *
- * The resulting value can be 0, for example if MBEDTLS_ECDH_C is enabled
- * (which allows the pk module to be included) but neither MBEDTLS_ECDSA_C
- * nor MBEDTLS_RSA_C nor any opaque signature mechanism (PSA or RSA_ALT).
- */
-#define MBEDTLS_PK_SIGNATURE_MAX_SIZE 0
-
-#if (defined(MBEDTLS_RSA_C) || defined(MBEDTLS_PK_RSA_ALT_SUPPORT)) && \
-    MBEDTLS_MPI_MAX_SIZE > MBEDTLS_PK_SIGNATURE_MAX_SIZE
-/* For RSA, the signature can be as large as the bignum module allows.
- * For RSA_ALT, the signature size is not necessarily tied to what the
- * bignum module can do, but in the absence of any specific setting,
- * we use that (rsa_alt_sign_wrap in library/pk_wrap.h will check). */
-#undef MBEDTLS_PK_SIGNATURE_MAX_SIZE
-#define MBEDTLS_PK_SIGNATURE_MAX_SIZE MBEDTLS_MPI_MAX_SIZE
-#endif
-
-#if defined(MBEDTLS_ECDSA_C) &&                                 \
-    MBEDTLS_ECDSA_MAX_LEN > MBEDTLS_PK_SIGNATURE_MAX_SIZE
-/* For ECDSA, the ecdsa module exports a constant for the maximum
- * signature size. */
-#undef MBEDTLS_PK_SIGNATURE_MAX_SIZE
-#define MBEDTLS_PK_SIGNATURE_MAX_SIZE MBEDTLS_ECDSA_MAX_LEN
-#endif
-
-#if defined(MBEDTLS_USE_PSA_CRYPTO)
-#if PSA_SIGNATURE_MAX_SIZE > MBEDTLS_PK_SIGNATURE_MAX_SIZE
-/* PSA_SIGNATURE_MAX_SIZE is the maximum size of a signature made
- * through the PSA API in the PSA representation. */
-#undef MBEDTLS_PK_SIGNATURE_MAX_SIZE
-#define MBEDTLS_PK_SIGNATURE_MAX_SIZE PSA_SIGNATURE_MAX_SIZE
-#endif
-
-#if PSA_VENDOR_ECDSA_SIGNATURE_MAX_SIZE + 11 > MBEDTLS_PK_SIGNATURE_MAX_SIZE
-/* The Mbed TLS representation is different for ECDSA signatures:
- * PSA uses the raw concatenation of r and s,
- * whereas Mbed TLS uses the ASN.1 representation (SEQUENCE of two INTEGERs).
- * Add the overhead of ASN.1: up to (1+2) + 2 * (1+2+1) for the
- * types, lengths (represented by up to 2 bytes), and potential leading
- * zeros of the INTEGERs and the SEQUENCE. */
-#undef MBEDTLS_PK_SIGNATURE_MAX_SIZE
-#define MBEDTLS_PK_SIGNATURE_MAX_SIZE (PSA_VENDOR_ECDSA_SIGNATURE_MAX_SIZE + 11)
-#endif
-#endif /* defined(MBEDTLS_USE_PSA_CRYPTO) */
-
-/* Internal helper to define which fields in the pk_context structure below
- * should be used for EC keys: legacy ecp_keypair or the raw (PSA friendly)
- * format. It should be noted that this only affects how data is stored, not
- * which functions are used for various operations. The overall picture looks
- * like this:
- * - if USE_PSA is not defined and ECP_C is defined then use ecp_keypair data
- *   structure and legacy functions
- * - if USE_PSA is defined and
- *     - if ECP_C then use ecp_keypair structure, convert data to a PSA friendly
- *       format and use PSA functions
- *     - if !ECP_C then use new raw data and PSA functions directly.
- *
- * The main reason for the "intermediate" (USE_PSA + ECP_C) above is that as long
- * as ECP_C is defined mbedtls_pk_ec() gives the user a read/write access to the
- * ecp_keypair structure inside the pk_context so they can modify it using
- * ECP functions which are not under PK module's control.
- */
-#if defined(MBEDTLS_USE_PSA_CRYPTO) && defined(PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY) && \
-    !defined(MBEDTLS_ECP_C)
-#define MBEDTLS_PK_USE_PSA_EC_DATA
-#endif
-
-/**
- * \brief           Types for interfacing with the debug module
- */
-typedef enum {
-    MBEDTLS_PK_DEBUG_NONE = 0,
-    MBEDTLS_PK_DEBUG_MPI,
-    MBEDTLS_PK_DEBUG_ECP,
-    MBEDTLS_PK_DEBUG_PSA_EC,
-} mbedtls_pk_debug_type;
-
-/**
- * \brief           Item to send to the debug module
- */
-typedef struct mbedtls_pk_debug_item {
-    mbedtls_pk_debug_type MBEDTLS_PRIVATE(type);
-    const char *MBEDTLS_PRIVATE(name);
-    void *MBEDTLS_PRIVATE(value);
-} mbedtls_pk_debug_item;
-
-/** Maximum number of item send for debugging, plus 1 */
-#define MBEDTLS_PK_DEBUG_MAX_ITEMS 3
-
-/**
- * \brief           Public key information and operations
- *
- * \note        The library does not support custom pk info structures,
- *              only built-in structures returned by
- *              mbedtls_cipher_info_from_type().
- */
-typedef struct mbedtls_pk_info_t mbedtls_pk_info_t;
-
-#define MBEDTLS_PK_MAX_EC_PUBKEY_RAW_LEN \
-    PSA_KEY_EXPORT_ECC_PUBLIC_KEY_MAX_SIZE(PSA_VENDOR_ECC_MAX_CURVE_BITS)
-/**
- * \brief           Public key container
- */
-typedef struct mbedtls_pk_context {
-    const mbedtls_pk_info_t *MBEDTLS_PRIVATE(pk_info);    /**< Public key information         */
-    void *MBEDTLS_PRIVATE(pk_ctx);                        /**< Underlying public key context  */
-    /* The following field is used to store the ID of a private key in the
-     * following cases:
-     * - opaque key when MBEDTLS_USE_PSA_CRYPTO is defined
-     * - normal key when MBEDTLS_PK_USE_PSA_EC_DATA is defined. In this case:
-     *    - the pk_ctx above is not not used to store the private key anymore.
-     *      Actually that field not populated at all in this case because also
-     *      the public key will be stored in raw format as explained below
-     *    - this ID is used for all private key operations (ex: sign, check
-     *      key pair, key write, etc) using PSA functions
-     *
-     * Note: this private key storing solution only affects EC keys, not the
-     *       other ones. The latters still use the pk_ctx to store their own
-     *       context. */
-#if defined(MBEDTLS_USE_PSA_CRYPTO)
-    mbedtls_svc_key_id_t MBEDTLS_PRIVATE(priv_id);      /**< Key ID for opaque keys */
-#endif /* MBEDTLS_USE_PSA_CRYPTO */
-    /* The following fields are meant for storing the public key in raw format
-     * which is handy for:
-     * - easily importing it into the PSA context
-     * - reducing the ECP module dependencies in the PK one.
-     *
-     * When MBEDTLS_PK_USE_PSA_EC_DATA is enabled:
-     * - the pk_ctx above is not used anymore for storing the public key
-     *   inside the ecp_keypair structure
-     * - the following fields are used for all public key operations: signature
-     *   verify, key pair check and key write.
-     * - For a key pair, priv_id contains the private key. For a public key,
-     *   priv_id is null.
-     * Of course, when MBEDTLS_PK_USE_PSA_EC_DATA is not enabled, the legacy
-     * ecp_keypair structure is used for storing the public key and performing
-     * all the operations.
-     *
-     * Note: This new public key storing solution only works for EC keys, not
-     *       other ones. The latters still use pk_ctx to store their own
-     *       context.
-     */
-#if defined(MBEDTLS_PK_USE_PSA_EC_DATA)
-    uint8_t MBEDTLS_PRIVATE(pub_raw)[MBEDTLS_PK_MAX_EC_PUBKEY_RAW_LEN]; /**< Raw public key   */
-    size_t MBEDTLS_PRIVATE(pub_raw_len);            /**< Valid bytes in "pub_raw" */
-    psa_ecc_family_t MBEDTLS_PRIVATE(ec_family);    /**< EC family of pk */
-    size_t MBEDTLS_PRIVATE(ec_bits);                /**< Curve's bits of pk */
-#endif /* MBEDTLS_PK_USE_PSA_EC_DATA */
-} mbedtls_pk_context;
-
-#if defined(MBEDTLS_ECDSA_C) && defined(MBEDTLS_ECP_RESTARTABLE)
-/**
- * \brief           Context for resuming operations
- */
-typedef struct {
-    const mbedtls_pk_info_t *MBEDTLS_PRIVATE(pk_info);    /**< Public key information         */
-    void *MBEDTLS_PRIVATE(rs_ctx);                        /**< Underlying restart context     */
-} mbedtls_pk_restart_ctx;
-#else /* MBEDTLS_ECDSA_C && MBEDTLS_ECP_RESTARTABLE */
-/* Now we can declare functions that take a pointer to that */
-typedef void mbedtls_pk_restart_ctx;
-#endif /* MBEDTLS_ECDSA_C && MBEDTLS_ECP_RESTARTABLE */
-
-#if defined(MBEDTLS_PK_RSA_ALT_SUPPORT)
-/**
- * \brief           Types for RSA-alt abstraction
- */
-typedef int (*mbedtls_pk_rsa_alt_decrypt_func)(void *ctx, size_t *olen,
-                                               const unsigned char *input, unsigned char *output,
-                                               size_t output_max_len);
-typedef int (*mbedtls_pk_rsa_alt_sign_func)(void *ctx,
-                                            mbedtls_f_rng_t *f_rng,
-                                            void *p_rng,
-                                            mbedtls_md_type_t md_alg, unsigned int hashlen,
-                                            const unsigned char *hash, unsigned char *sig);
-typedef size_t (*mbedtls_pk_rsa_alt_key_len_func)(void *ctx);
-#endif /* MBEDTLS_PK_RSA_ALT_SUPPORT */
-
-/**
- * \brief           Return information associated with the given PK type
- *
- * \param pk_type   PK type to search for.
- *
- * \return          The PK info associated with the type or NULL if not found.
- */
-const mbedtls_pk_info_t *mbedtls_pk_info_from_type(mbedtls_pk_type_t pk_type);
-
-/**
- * \brief           Initialize a #mbedtls_pk_context (as NONE).
- *
- * \param ctx       The context to initialize.
- *                  This must not be \c NULL.
- */
-void mbedtls_pk_init(mbedtls_pk_context *ctx);
-
-/**
- * \brief           Free the components of a #mbedtls_pk_context.
- *
- * \param ctx       The context to clear. It must have been initialized.
- *                  If this is \c NULL, this function does nothing.
- *
- * \note            For contexts that have been set up with
- *                  mbedtls_pk_setup_opaque(), this does not free the underlying
- *                  PSA key and you still need to call psa_destroy_key()
- *                  independently if you want to destroy that key.
- */
-void mbedtls_pk_free(mbedtls_pk_context *ctx);
-
-#if defined(MBEDTLS_ECDSA_C) && defined(MBEDTLS_ECP_RESTARTABLE)
-/**
- * \brief           Initialize a restart context
- *
- * \param ctx       The context to initialize.
- *                  This must not be \c NULL.
- */
-void mbedtls_pk_restart_init(mbedtls_pk_restart_ctx *ctx);
-
-/**
- * \brief           Free the components of a restart context
- *
- * \param ctx       The context to clear. It must have been initialized.
- *                  If this is \c NULL, this function does nothing.
- */
-void mbedtls_pk_restart_free(mbedtls_pk_restart_ctx *ctx);
-#endif /* MBEDTLS_ECDSA_C && MBEDTLS_ECP_RESTARTABLE */
-
-/**
- * \brief           Initialize a PK context with the information given
- *                  and allocates the type-specific PK subcontext.
- *
- * \param ctx       Context to initialize. It must not have been set
- *                  up yet (type #MBEDTLS_PK_NONE).
- * \param info      Information to use
- *
- * \return          0 on success,
- *                  MBEDTLS_ERR_PK_BAD_INPUT_DATA on invalid input,
- *                  MBEDTLS_ERR_PK_ALLOC_FAILED on allocation failure.
- *
- * \note            For contexts holding an RSA-alt key, use
- *                  \c mbedtls_pk_setup_rsa_alt() instead.
- */
-int mbedtls_pk_setup(mbedtls_pk_context *ctx, const mbedtls_pk_info_t *info);
-
-#if defined(MBEDTLS_USE_PSA_CRYPTO)
-/**
- * \brief Initialize a PK context to wrap a PSA key.
- *
- * This function creates a PK context which wraps a PSA key. The PSA wrapped
- * key must be an EC or RSA key pair (DH is not suported in the PK module).
- *
- * Under the hood PSA functions will be used to perform the required
- * operations and, based on the key type, used algorithms will be:
- * * EC:
- *     * verify, verify_ext, sign, sign_ext: ECDSA.
- * * RSA:
- *     * sign, decrypt: use the primary algorithm in the wrapped PSA key;
- *     * sign_ext: RSA PSS if the pk_type is #MBEDTLS_PK_RSASSA_PSS, otherwise
- *       it falls back to the sign() case;
- *     * verify, verify_ext, encrypt: not supported.
- *
- * In order for the above operations to succeed, the policy of the wrapped PSA
- * key must allow the specified algorithm.
- *
- * Opaque PK contexts wrapping an EC keys also support \c mbedtls_pk_check_pair(),
- * whereas RSA ones do not.
- *
- * \warning The PSA wrapped key must remain valid as long as the wrapping PK
- *          context is in use, that is at least between the point this function
- *          is called and the point mbedtls_pk_free() is called on this context.
- *
- * \param ctx The context to initialize. It must be empty (type NONE).
- * \param key The PSA key to wrap, which must hold an ECC or RSA key pair.
- *
- * \return    \c 0 on success.
- * \return    #MBEDTLS_ERR_PK_BAD_INPUT_DATA on invalid input (context already
- *            used, invalid key identifier).
- * \return    #MBEDTLS_ERR_PK_FEATURE_UNAVAILABLE if the key is not an ECC or
- *            RSA key pair.
- * \return    #MBEDTLS_ERR_PK_ALLOC_FAILED on allocation failure.
- */
-int mbedtls_pk_setup_opaque(mbedtls_pk_context *ctx,
-                            const mbedtls_svc_key_id_t key);
-#endif /* MBEDTLS_USE_PSA_CRYPTO */
-
-#if defined(MBEDTLS_PK_RSA_ALT_SUPPORT)
-/**
- * \brief           Initialize an RSA-alt context
- *
- * \param ctx       Context to initialize. It must not have been set
- *                  up yet (type #MBEDTLS_PK_NONE).
- * \param key       RSA key pointer
- * \param decrypt_func  Decryption function
- * \param sign_func     Signing function
- * \param key_len_func  Function returning key length in bytes
- *
- * \return          0 on success, or MBEDTLS_ERR_PK_BAD_INPUT_DATA if the
- *                  context wasn't already initialized as RSA_ALT.
- *
- * \note            This function replaces \c mbedtls_pk_setup() for RSA-alt.
- */
-int mbedtls_pk_setup_rsa_alt(mbedtls_pk_context *ctx, void *key,
-                             mbedtls_pk_rsa_alt_decrypt_func decrypt_func,
-                             mbedtls_pk_rsa_alt_sign_func sign_func,
-                             mbedtls_pk_rsa_alt_key_len_func key_len_func);
-#endif /* MBEDTLS_PK_RSA_ALT_SUPPORT */
-
-/**
- * \brief           Get the size in bits of the underlying key
- *
- * \param ctx       The context to query. It must have been initialized.
- *
- * \return          Key size in bits, or 0 on error
- */
-size_t mbedtls_pk_get_bitlen(const mbedtls_pk_context *ctx);
-
-/**
- * \brief           Get the length in bytes of the underlying key
- *
- * \param ctx       The context to query. It must have been initialized.
- *
- * \return          Key length in bytes, or 0 on error
- */
-static inline size_t mbedtls_pk_get_len(const mbedtls_pk_context *ctx)
-{
-    return (mbedtls_pk_get_bitlen(ctx) + 7) / 8;
-}
-
-/**
- * \brief           Tell if a context can do the operation given by type
- *
- * \param ctx       The context to query. It must have been initialized.
- * \param type      The desired type.
- *
- * \return          1 if the context can do operations on the given type.
- * \return          0 if the context cannot do the operations on the given
- *                  type. This is always the case for a context that has
- *                  been initialized but not set up, or that has been
- *                  cleared with mbedtls_pk_free().
- */
-int mbedtls_pk_can_do(const mbedtls_pk_context *ctx, mbedtls_pk_type_t type);
-
-#if defined(MBEDTLS_USE_PSA_CRYPTO)
-/**
- * \brief           Tell if context can do the operation given by PSA algorithm
- *
- * \param ctx       The context to query. It must have been initialized.
- * \param alg       PSA algorithm to check against, the following are allowed:
- *                  PSA_ALG_RSA_PKCS1V15_SIGN(hash),
- *                  PSA_ALG_RSA_PSS(hash),
- *                  PSA_ALG_RSA_PKCS1V15_CRYPT,
- *                  PSA_ALG_ECDSA(hash),
- *                  PSA_ALG_ECDH, where hash is a specific hash.
- * \param usage     PSA usage flag to check against, must be composed of:
- *                  PSA_KEY_USAGE_SIGN_HASH
- *                  PSA_KEY_USAGE_DECRYPT
- *                  PSA_KEY_USAGE_DERIVE.
- *                  Context key must match all passed usage flags.
- *
- * \warning         Since the set of allowed algorithms and usage flags may be
- *                  expanded in the future, the return value \c 0 should not
- *                  be taken in account for non-allowed algorithms and usage
- *                  flags.
- *
- * \return          1 if the context can do operations on the given type.
- * \return          0 if the context cannot do the operations on the given
- *                  type, for non-allowed algorithms and usage flags, or
- *                  for a context that has been initialized but not set up
- *                  or that has been cleared with mbedtls_pk_free().
- */
-int mbedtls_pk_can_do_ext(const mbedtls_pk_context *ctx, psa_algorithm_t alg,
-                          psa_key_usage_t usage);
-#endif /* MBEDTLS_USE_PSA_CRYPTO */
-
-#if defined(MBEDTLS_PSA_CRYPTO_CLIENT)
-/**
- * \brief           Determine valid PSA attributes that can be used to
- *                  import a key into PSA.
- *
- * The attributes determined by this function are suitable
- * for calling mbedtls_pk_import_into_psa() to create
- * a PSA key with the same key material.
- *
- * The typical flow of operations involving this function is
- * ```
- * psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT;
- * int ret = mbedtls_pk_get_psa_attributes(pk, &attributes);
- * if (ret != 0) ...; // error handling omitted
- * // Tweak attributes if desired
- * psa_key_id_t key_id = 0;
- * ret = mbedtls_pk_import_into_psa(pk, &attributes, &key_id);
- * if (ret != 0) ...; // error handling omitted
- * ```
- *
- * \note            This function does not support RSA-alt contexts
- *                  (set up with mbedtls_pk_setup_rsa_alt()).
- *
- * \param[in] pk    The PK context to use. It must have been set up.
- *                  It can either contain a key pair or just a public key.
- * \param usage     A single `PSA_KEY_USAGE_xxx` flag among the following:
- *                  - #PSA_KEY_USAGE_DECRYPT: \p pk must contain a
- *                    key pair. The output \p attributes will contain a
- *                    key pair type, and the usage policy will allow
- *                    #PSA_KEY_USAGE_ENCRYPT as well as
- *                    #PSA_KEY_USAGE_DECRYPT.
- *                  - #PSA_KEY_USAGE_DERIVE: \p pk must contain a
- *                    key pair. The output \p attributes will contain a
- *                    key pair type.
- *                  - #PSA_KEY_USAGE_ENCRYPT: The output
- *                    \p attributes will contain a public key type.
- *                  - #PSA_KEY_USAGE_SIGN_HASH: \p pk must contain a
- *                    key pair. The output \p attributes will contain a
- *                    key pair type, and the usage policy will allow
- *                    #PSA_KEY_USAGE_VERIFY_HASH as well as
- *                    #PSA_KEY_USAGE_SIGN_HASH.
- *                  - #PSA_KEY_USAGE_SIGN_MESSAGE: \p pk must contain a
- *                    key pair. The output \p attributes will contain a
- *                    key pair type, and the usage policy will allow
- *                    #PSA_KEY_USAGE_VERIFY_MESSAGE as well as
- *                    #PSA_KEY_USAGE_SIGN_MESSAGE.
- *                  - #PSA_KEY_USAGE_VERIFY_HASH: The output
- *                    \p attributes will contain a public key type.
- *                  - #PSA_KEY_USAGE_VERIFY_MESSAGE: The output
- *                    \p attributes will contain a public key type.
- * \param[out] attributes
- *                  On success, valid attributes to import the key into PSA.
- *                  - The lifetime and key identifier are unchanged. If the
- *                    attribute structure was initialized or reset before
- *                    calling this function, this will result in a volatile
- *                    key. Call psa_set_key_identifier() before or after this
- *                    function if you wish to create a persistent key. Call
- *                    psa_set_key_lifetime() before or after this function if
- *                    you wish to import the key in a secure element.
- *                  - The key type and bit-size are determined by the contents
- *                    of the PK context. If the PK context contains a key
- *                    pair, the key type can be either a key pair type or
- *                    the corresponding public key type, depending on
- *                    \p usage. If the PK context contains a public key,
- *                    the key type is a public key type.
- *                  - The key's policy is determined by the key type and
- *                    the \p usage parameter. The usage always allows
- *                    \p usage, exporting and copying the key, and
- *                    possibly other permissions as documented for the
- *                    \p usage parameter.
- *                    The permitted algorithm policy is determined as follows
- *                    based on the #mbedtls_pk_type_t type of \p pk,
- *                    the chosen \p usage and other factors:
- *                      - #MBEDTLS_PK_RSA whose underlying
- *                        #mbedtls_rsa_context has the padding mode
- *                        #MBEDTLS_RSA_PKCS_V15:
- *                        #PSA_ALG_RSA_PKCS1V15_SIGN(#PSA_ALG_ANY_HASH)
- *                        if \p usage is SIGN/VERIFY, and
- *                        #PSA_ALG_RSA_PKCS1V15_CRYPT
- *                        if \p usage is ENCRYPT/DECRYPT.
- *                      - #MBEDTLS_PK_RSA whose underlying
- *                        #mbedtls_rsa_context has the padding mode
- *                        #MBEDTLS_RSA_PKCS_V21 and the digest type
- *                        corresponding to the PSA algorithm \c hash:
- *                        #PSA_ALG_RSA_PSS_ANY_SALT(#PSA_ALG_ANY_HASH)
- *                        if \p usage is SIGN/VERIFY, and
- *                        #PSA_ALG_RSA_OAEP(\c hash)
- *                        if \p usage is ENCRYPT/DECRYPT.
- *                      - #MBEDTLS_PK_RSA_ALT: not supported.
- *                      - #MBEDTLS_PK_ECDSA or #MBEDTLS_PK_ECKEY
- *                        if \p usage is SIGN/VERIFY:
- *                        #PSA_ALG_DETERMINISTIC_ECDSA(#PSA_ALG_ANY_HASH)
- *                        if #MBEDTLS_ECDSA_DETERMINISTIC is enabled,
- *                        otherwise #PSA_ALG_ECDSA(#PSA_ALG_ANY_HASH).
- *                      - #MBEDTLS_PK_ECKEY_DH or #MBEDTLS_PK_ECKEY
- *                        if \p usage is DERIVE:
- *                        #PSA_ALG_ECDH.
- *                      - #MBEDTLS_PK_OPAQUE: same as the primary algorithm
- *                        set for the underlying PSA key, except that
- *                        sign/decrypt flags are removed if the type is
- *                        set to a public key type.
- *                        The underlying key must allow \p usage.
- *                        Note that the enrollment algorithm set with
- *                        psa_set_key_enrollment_algorithm() is not copied.
- *
- * \return          0 on success.
- *                  #MBEDTLS_ERR_PK_TYPE_MISMATCH if \p pk does not contain
- *                  a key of the type identified in \p attributes.
- *                  Another error code on other failures.
- */
-int mbedtls_pk_get_psa_attributes(const mbedtls_pk_context *pk,
-                                  psa_key_usage_t usage,
-                                  psa_key_attributes_t *attributes);
-
-/**
- * \brief           Import a key into the PSA key store.
- *
- * This function is equivalent to calling psa_import_key()
- * with the key material from \p pk.
- *
- * The typical way to use this function is:
- * -# Call mbedtls_pk_get_psa_attributes() to obtain
- *    attributes for the given key.
- * -# If desired, modify the attributes, for example:
- *     - To create a persistent key, call
- *       psa_set_key_identifier() and optionally
- *       psa_set_key_lifetime().
- *     - To import only the public part of a key pair:
- *
- *           psa_set_key_type(&attributes,
- *                            PSA_KEY_TYPE_PUBLIC_KEY_OF_KEY_PAIR(
- *                                psa_get_key_type(&attributes)));
- *     - Restrict the key usage if desired.
- * -# Call mbedtls_pk_import_into_psa().
- *
- * \note            This function does not support RSA-alt contexts
- *                  (set up with mbedtls_pk_setup_rsa_alt()).
- *
- * \param[in] pk    The PK context to use. It must have been set up.
- *                  It can either contain a key pair or just a public key.
- * \param[in] attributes
- *                  The attributes to use for the new key. They must be
- *                  compatible with \p pk. In particular, the key type
- *                  must match the content of \p pk.
- *                  If \p pk contains a key pair, the key type in
- *                  attributes can be either the key pair type or the
- *                  corresponding public key type (to import only the
- *                  public part).
- * \param[out] key_id
- *                  On success, the identifier of the newly created key.
- *                  On error, this is #MBEDTLS_SVC_KEY_ID_INIT.
- *
- * \return          0 on success.
- *                  #MBEDTLS_ERR_PK_TYPE_MISMATCH if \p pk does not contain
- *                  a key of the type identified in \p attributes.
- *                  Another error code on other failures.
- */
-int mbedtls_pk_import_into_psa(const mbedtls_pk_context *pk,
-                               const psa_key_attributes_t *attributes,
-                               mbedtls_svc_key_id_t *key_id);
-
-/**
- * \brief           Create a PK context starting from a key stored in PSA.
- *                  This key:
- *                  - must be exportable and
- *                  - must be an RSA or EC key pair or public key (FFDH is not supported in PK).
- *
- *                  The resulting PK object will be a transparent type:
- *                  - #MBEDTLS_PK_RSA for RSA keys or
- *                  - #MBEDTLS_PK_ECKEY for EC keys.
- *
- *                  Once this functions returns the PK object will be completely
- *                  independent from the original PSA key that it was generated
- *                  from.
- *                  Calling mbedtls_pk_sign(), mbedtls_pk_verify(),
- *                  mbedtls_pk_encrypt(), mbedtls_pk_decrypt() on the resulting
- *                  PK context will perform the corresponding algorithm for that
- *                  PK context type.
- *                  * For ECDSA, the choice of deterministic vs randomized will
- *                    be based on the compile-time setting #MBEDTLS_ECDSA_DETERMINISTIC.
- *                  * For an RSA key, the output PK context will allow both
- *                    encrypt/decrypt and sign/verify regardless of the original
- *                    key's policy.
- *                    The original key's policy determines the output key's padding
- *                    mode: PCKS1 v2.1 is set if the PSA key policy is OAEP or PSS,
- *                    otherwise PKCS1 v1.5 is set.
- *
- * \param key_id    The key identifier of the key stored in PSA.
- * \param pk        The PK context that will be filled. It must be initialized,
- *                  but not set up.
- *
- * \return          0 on success.
- * \return          #MBEDTLS_ERR_PK_BAD_INPUT_DATA in case the provided input
- *                  parameters are not correct.
- */
-int mbedtls_pk_copy_from_psa(mbedtls_svc_key_id_t key_id, mbedtls_pk_context *pk);
-
-/**
- * \brief           Create a PK context for the public key of a PSA key.
- *
- *                  The key must be an RSA or ECC key. It can be either a
- *                  public key or a key pair, and only the public key is copied.
- *                  The resulting PK object will be a transparent type:
- *                  - #MBEDTLS_PK_RSA for RSA keys or
- *                  - #MBEDTLS_PK_ECKEY for EC keys.
- *
- *                  Once this functions returns the PK object will be completely
- *                  independent from the original PSA key that it was generated
- *                  from.
- *                  Calling mbedtls_pk_verify() or
- *                  mbedtls_pk_encrypt() on the resulting
- *                  PK context will perform the corresponding algorithm for that
- *                  PK context type.
- *
- *                  For an RSA key, the output PK context will allow both
- *                  encrypt and verify regardless of the original key's policy.
- *                  The original key's policy determines the output key's padding
- *                  mode: PCKS1 v2.1 is set if the PSA key policy is OAEP or PSS,
- *                  otherwise PKCS1 v1.5 is set.
- *
- * \param key_id    The key identifier of the key stored in PSA.
- * \param pk        The PK context that will be filled. It must be initialized,
- *                  but not set up.
- *
- * \return          0 on success.
- * \return          MBEDTLS_ERR_PK_BAD_INPUT_DATA in case the provided input
- *                  parameters are not correct.
- */
-int mbedtls_pk_copy_public_from_psa(mbedtls_svc_key_id_t key_id, mbedtls_pk_context *pk);
-#endif /* MBEDTLS_PSA_CRYPTO_CLIENT */
-
-/**
- * \brief           Verify signature (including padding if relevant).
- *
- * \param ctx       The PK context to use. It must have been set up.
- * \param md_alg    Hash algorithm used.
- *                  This can be #MBEDTLS_MD_NONE if the signature algorithm
- *                  does not rely on a hash algorithm (non-deterministic
- *                  ECDSA, RSA PKCS#1 v1.5).
- *                  For PKCS#1 v1.5, if \p md_alg is #MBEDTLS_MD_NONE, then
- *                  \p hash is the DigestInfo structure used by RFC 8017
- *                  &sect;9.2 steps 3&ndash;6. If \p md_alg is a valid hash
- *                  algorithm then \p hash is the digest itself, and this
- *                  function calculates the DigestInfo encoding internally.
- * \param hash      Hash of the message to sign
- * \param hash_len  Hash length
- * \param sig       Signature to verify
- * \param sig_len   Signature length
- *
- * \note            For keys of type #MBEDTLS_PK_RSA, the signature algorithm is
- *                  either PKCS#1 v1.5 or PSS (accepting any salt length),
- *                  depending on the padding mode in the underlying RSA context.
- *                  For a pk object constructed by parsing, this is PKCS#1 v1.5
- *                  by default. Use mbedtls_pk_verify_ext() to explicitly select
- *                  a different algorithm.
- *
- * \return          0 on success (signature is valid),
- *                  #MBEDTLS_ERR_PK_SIG_LEN_MISMATCH if there is a valid
- *                  signature in \p sig but its length is less than \p sig_len,
- *                  or a specific error code.
- */
-int mbedtls_pk_verify(mbedtls_pk_context *ctx, mbedtls_md_type_t md_alg,
-                      const unsigned char *hash, size_t hash_len,
-                      const unsigned char *sig, size_t sig_len);
-
-/**
- * \brief           Restartable version of \c mbedtls_pk_verify()
- *
- * \note            Performs the same job as \c mbedtls_pk_verify(), but can
- *                  return early and restart according to the limit set with
- *                  \c mbedtls_ecp_set_max_ops() to reduce blocking for ECC
- *                  operations. For RSA, same as \c mbedtls_pk_verify().
- *
- * \param ctx       The PK context to use. It must have been set up.
- * \param md_alg    Hash algorithm used (see notes)
- * \param hash      Hash of the message to sign
- * \param hash_len  Hash length or 0 (see notes)
- * \param sig       Signature to verify
- * \param sig_len   Signature length
- * \param rs_ctx    Restart context (NULL to disable restart)
- *
- * \return          See \c mbedtls_pk_verify(), or
- * \return          #MBEDTLS_ERR_ECP_IN_PROGRESS if maximum number of
- *                  operations was reached: see \c mbedtls_ecp_set_max_ops().
- */
-int mbedtls_pk_verify_restartable(mbedtls_pk_context *ctx,
-                                  mbedtls_md_type_t md_alg,
-                                  const unsigned char *hash, size_t hash_len,
-                                  const unsigned char *sig, size_t sig_len,
-                                  mbedtls_pk_restart_ctx *rs_ctx);
-
-/**
- * \brief           Verify signature, with options.
- *                  (Includes verification of the padding depending on type.)
- *
- * \param type      Signature type (inc. possible padding type) to verify
- * \param options   Pointer to type-specific options, or NULL
- * \param ctx       The PK context to use. It must have been set up.
- * \param md_alg    Hash algorithm used (see notes)
- * \param hash      Hash of the message to sign
- * \param hash_len  Hash length or 0 (see notes)
- * \param sig       Signature to verify
- * \param sig_len   Signature length
- *
- * \return          0 on success (signature is valid),
- *                  #MBEDTLS_ERR_PK_TYPE_MISMATCH if the PK context can't be
- *                  used for this type of signatures,
- *                  #MBEDTLS_ERR_PK_SIG_LEN_MISMATCH if there is a valid
- *                  signature in \p sig but its length is less than \p sig_len,
- *                  or a specific error code.
- *
- * \note            If hash_len is 0, then the length associated with md_alg
- *                  is used instead, or an error returned if it is invalid.
- *
- * \note            md_alg may be MBEDTLS_MD_NONE, only if hash_len != 0
- *
- * \note            If type is MBEDTLS_PK_RSASSA_PSS, then options must point
- *                  to a mbedtls_pk_rsassa_pss_options structure,
- *                  otherwise it must be NULL. Note that if
- *                  #MBEDTLS_USE_PSA_CRYPTO is defined, the salt length is not
- *                  verified as PSA_ALG_RSA_PSS_ANY_SALT is used.
- */
-int mbedtls_pk_verify_ext(mbedtls_pk_type_t type, const void *options,
-                          mbedtls_pk_context *ctx, mbedtls_md_type_t md_alg,
-                          const unsigned char *hash, size_t hash_len,
-                          const unsigned char *sig, size_t sig_len);
-
-/**
- * \brief           Make signature, including padding if relevant.
- *
- * \param ctx       The PK context to use. It must have been set up
- *                  with a private key.
- * \param md_alg    Hash algorithm used (see notes)
- * \param hash      Hash of the message to sign
- * \param hash_len  Hash length
- * \param sig       Place to write the signature.
- *                  It must have enough room for the signature.
- *                  #MBEDTLS_PK_SIGNATURE_MAX_SIZE is always enough.
- *                  You may use a smaller buffer if it is large enough
- *                  given the key type.
- * \param sig_size  The size of the \p sig buffer in bytes.
- * \param sig_len   On successful return,
- *                  the number of bytes written to \p sig.
- * \param f_rng     RNG function, must not be \c NULL.
- * \param p_rng     RNG parameter
- *
- * \note            For keys of type #MBEDTLS_PK_RSA, the signature algorithm is
- *                  either PKCS#1 v1.5 or PSS (using the largest possible salt
- *                  length up to the hash length), depending on the padding mode
- *                  in the underlying RSA context. For a pk object constructed
- *                  by parsing, this is PKCS#1 v1.5 by default. Use
- *                  mbedtls_pk_verify_ext() to explicitly select a different
- *                  algorithm.
- *
- * \return          0 on success, or a specific error code.
- *
- * \note            For RSA, md_alg may be MBEDTLS_MD_NONE if hash_len != 0.
- *                  For ECDSA, md_alg may never be MBEDTLS_MD_NONE.
- */
-int mbedtls_pk_sign(mbedtls_pk_context *ctx, mbedtls_md_type_t md_alg,
-                    const unsigned char *hash, size_t hash_len,
-                    unsigned char *sig, size_t sig_size, size_t *sig_len,
-                    mbedtls_f_rng_t *f_rng, void *p_rng);
-
-/**
- * \brief           Make signature given a signature type.
- *
- * \param pk_type   Signature type.
- * \param ctx       The PK context to use. It must have been set up
- *                  with a private key.
- * \param md_alg    Hash algorithm used (see notes)
- * \param hash      Hash of the message to sign
- * \param hash_len  Hash length
- * \param sig       Place to write the signature.
- *                  It must have enough room for the signature.
- *                  #MBEDTLS_PK_SIGNATURE_MAX_SIZE is always enough.
- *                  You may use a smaller buffer if it is large enough
- *                  given the key type.
- * \param sig_size  The size of the \p sig buffer in bytes.
- * \param sig_len   On successful return,
- *                  the number of bytes written to \p sig.
- * \param f_rng     RNG function, must not be \c NULL.
- * \param p_rng     RNG parameter
- *
- * \return          0 on success, or a specific error code.
- *
- * \note            When \p pk_type is #MBEDTLS_PK_RSASSA_PSS,
- *                  see #PSA_ALG_RSA_PSS for a description of PSS options used.
- *
- * \note            For RSA, md_alg may be MBEDTLS_MD_NONE if hash_len != 0.
- *                  For ECDSA, md_alg may never be MBEDTLS_MD_NONE.
- *
- */
-int mbedtls_pk_sign_ext(mbedtls_pk_type_t pk_type,
-                        mbedtls_pk_context *ctx,
-                        mbedtls_md_type_t md_alg,
-                        const unsigned char *hash, size_t hash_len,
-                        unsigned char *sig, size_t sig_size, size_t *sig_len,
-                        mbedtls_f_rng_t *f_rng,
-                        void *p_rng);
-
-/**
- * \brief           Restartable version of \c mbedtls_pk_sign()
- *
- * \note            Performs the same job as \c mbedtls_pk_sign(), but can
- *                  return early and restart according to the limit set with
- *                  \c mbedtls_ecp_set_max_ops() to reduce blocking for ECC
- *                  operations. For RSA, same as \c mbedtls_pk_sign().
- *
- * \param ctx       The PK context to use. It must have been set up
- *                  with a private key.
- * \param md_alg    Hash algorithm used (see notes for mbedtls_pk_sign())
- * \param hash      Hash of the message to sign
- * \param hash_len  Hash length
- * \param sig       Place to write the signature.
- *                  It must have enough room for the signature.
- *                  #MBEDTLS_PK_SIGNATURE_MAX_SIZE is always enough.
- *                  You may use a smaller buffer if it is large enough
- *                  given the key type.
- * \param sig_size  The size of the \p sig buffer in bytes.
- * \param sig_len   On successful return,
- *                  the number of bytes written to \p sig.
- * \param f_rng     RNG function, must not be \c NULL.
- * \param p_rng     RNG parameter
- * \param rs_ctx    Restart context (NULL to disable restart)
- *
- * \return          See \c mbedtls_pk_sign().
- * \return          #MBEDTLS_ERR_ECP_IN_PROGRESS if maximum number of
- *                  operations was reached: see \c mbedtls_ecp_set_max_ops().
- */
-int mbedtls_pk_sign_restartable(mbedtls_pk_context *ctx,
-                                mbedtls_md_type_t md_alg,
-                                const unsigned char *hash, size_t hash_len,
-                                unsigned char *sig, size_t sig_size, size_t *sig_len,
-                                mbedtls_f_rng_t *f_rng, void *p_rng,
-                                mbedtls_pk_restart_ctx *rs_ctx);
-
-/**
- * \brief           Decrypt message (including padding if relevant).
- *
- * \param ctx       The PK context to use. It must have been set up
- *                  with a private key.
- * \param input     Input to decrypt
- * \param ilen      Input size
- * \param output    Decrypted output
- * \param olen      Decrypted message length
- * \param osize     Size of the output buffer
- * \param f_rng     RNG function, must not be \c NULL.
- * \param p_rng     RNG parameter
- *
- * \note            For keys of type #MBEDTLS_PK_RSA, the signature algorithm is
- *                  either PKCS#1 v1.5 or OAEP, depending on the padding mode in
- *                  the underlying RSA context. For a pk object constructed by
- *                  parsing, this is PKCS#1 v1.5 by default.
- *
- * \return          0 on success, or a specific error code.
- */
-int mbedtls_pk_decrypt(mbedtls_pk_context *ctx,
-                       const unsigned char *input, size_t ilen,
-                       unsigned char *output, size_t *olen, size_t osize,
-                       mbedtls_f_rng_t *f_rng, void *p_rng);
-
-/**
- * \brief           Encrypt message (including padding if relevant).
- *
- * \param ctx       The PK context to use. It must have been set up.
- * \param input     Message to encrypt
- * \param ilen      Message size
- * \param output    Encrypted output
- * \param olen      Encrypted output length
- * \param osize     Size of the output buffer
- * \param f_rng     RNG function, must not be \c NULL.
- * \param p_rng     RNG parameter
- *
- * \note            For keys of type #MBEDTLS_PK_RSA, the signature algorithm is
- *                  either PKCS#1 v1.5 or OAEP, depending on the padding mode in
- *                  the underlying RSA context. For a pk object constructed by
- *                  parsing, this is PKCS#1 v1.5 by default.
- *
- * \note            \p f_rng is used for padding generation.
- *
- * \return          0 on success, or a specific error code.
- */
-int mbedtls_pk_encrypt(mbedtls_pk_context *ctx,
-                       const unsigned char *input, size_t ilen,
-                       unsigned char *output, size_t *olen, size_t osize,
-                       mbedtls_f_rng_t *f_rng, void *p_rng);
-
-/**
- * \brief           Check if a public-private pair of keys matches.
- *
- * \param pub       Context holding a public key.
- * \param prv       Context holding a private (and public) key.
- * \param f_rng     RNG function, must not be \c NULL.
- * \param p_rng     RNG parameter
- *
- * \return          \c 0 on success (keys were checked and match each other).
- * \return          #MBEDTLS_ERR_PK_FEATURE_UNAVAILABLE if the keys could not
- *                  be checked - in that case they may or may not match.
- * \return          #MBEDTLS_ERR_PK_BAD_INPUT_DATA if a context is invalid.
- * \return          Another non-zero value if the keys do not match.
- */
-int mbedtls_pk_check_pair(const mbedtls_pk_context *pub,
-                          const mbedtls_pk_context *prv,
-                          mbedtls_f_rng_t *f_rng,
-                          void *p_rng);
-
-/**
- * \brief           Export debug information
- *
- * \param ctx       The PK context to use. It must have been initialized.
- * \param items     Place to write debug items
- *
- * \return          0 on success or MBEDTLS_ERR_PK_BAD_INPUT_DATA
- */
-int mbedtls_pk_debug(const mbedtls_pk_context *ctx, mbedtls_pk_debug_item *items);
-
-/**
- * \brief           Access the type name
- *
- * \param ctx       The PK context to use. It must have been initialized.
- *
- * \return          Type name on success, or "invalid PK"
- */
-const char *mbedtls_pk_get_name(const mbedtls_pk_context *ctx);
-
-/**
- * \brief           Get the key type
- *
- * \param ctx       The PK context to use. It must have been initialized.
- *
- * \return          Type on success.
- * \return          #MBEDTLS_PK_NONE for a context that has not been set up.
- */
-mbedtls_pk_type_t mbedtls_pk_get_type(const mbedtls_pk_context *ctx);
-
-#if defined(MBEDTLS_RSA_C)
-/**
- * Quick access to an RSA context inside a PK context.
- *
- * \warning This function can only be used when the type of the context, as
- * returned by mbedtls_pk_get_type(), is #MBEDTLS_PK_RSA.
- * Ensuring that is the caller's responsibility.
- * Alternatively, you can check whether this function returns NULL.
- *
- * \return The internal RSA context held by the PK context, or NULL.
- */
-static inline mbedtls_rsa_context *mbedtls_pk_rsa(const mbedtls_pk_context pk)
-{
-    switch (mbedtls_pk_get_type(&pk)) {
-        case MBEDTLS_PK_RSA:
-            return (mbedtls_rsa_context *) (pk).MBEDTLS_PRIVATE(pk_ctx);
-        default:
-            return NULL;
-    }
-}
-#endif /* MBEDTLS_RSA_C */
-
-#if defined(MBEDTLS_ECP_C)
-/**
- * Quick access to an EC context inside a PK context.
- *
- * \warning This function can only be used when the type of the context, as
- * returned by mbedtls_pk_get_type(), is #MBEDTLS_PK_ECKEY,
- * #MBEDTLS_PK_ECKEY_DH, or #MBEDTLS_PK_ECDSA.
- * Ensuring that is the caller's responsibility.
- * Alternatively, you can check whether this function returns NULL.
- *
- * \return The internal EC context held by the PK context, or NULL.
- */
-static inline mbedtls_ecp_keypair *mbedtls_pk_ec(const mbedtls_pk_context pk)
-{
-    switch (mbedtls_pk_get_type(&pk)) {
-        case MBEDTLS_PK_ECKEY:
-        case MBEDTLS_PK_ECKEY_DH:
-        case MBEDTLS_PK_ECDSA:
-            return (mbedtls_ecp_keypair *) (pk).MBEDTLS_PRIVATE(pk_ctx);
-        default:
-            return NULL;
-    }
-}
-#endif /* MBEDTLS_ECP_C */
-
-#if defined(MBEDTLS_PK_PARSE_C)
-/** \ingroup pk_module */
-/**
- * \brief           Parse a private key in PEM or DER format
- *
- * \note            If #MBEDTLS_USE_PSA_CRYPTO is enabled, the PSA crypto
- *                  subsystem must have been initialized by calling
- *                  psa_crypto_init() before calling this function.
- *
- * \param ctx       The PK context to fill. It must have been initialized
- *                  but not set up.
- * \param key       Input buffer to parse.
- *                  The buffer must contain the input exactly, with no
- *                  extra trailing material. For PEM, the buffer must
- *                  contain a null-terminated string.
- * \param keylen    Size of \b key in bytes.
- *                  For PEM data, this includes the terminating null byte,
- *                  so \p keylen must be equal to `strlen(key) + 1`.
- * \param pwd       Optional password for decryption.
- *                  Pass \c NULL if expecting a non-encrypted key.
- *                  Pass a string of \p pwdlen bytes if expecting an encrypted
- *                  key; a non-encrypted key will also be accepted.
- *                  The empty password is not supported.
- * \param pwdlen    Size of the password in bytes.
- *                  Ignored if \p pwd is \c NULL.
- * \param f_rng     RNG function, must not be \c NULL. Used for blinding.
- * \param p_rng     RNG parameter
- *
- * \note            On entry, ctx must be empty, either freshly initialised
- *                  with mbedtls_pk_init() or reset with mbedtls_pk_free(). If you need a
- *                  specific key type, check the result with mbedtls_pk_can_do().
- *
- * \note            The key is also checked for correctness.
- *
- * \return          0 if successful, or a specific PK or PEM error code
- */
-int mbedtls_pk_parse_key(mbedtls_pk_context *ctx,
-                         const unsigned char *key, size_t keylen,
-                         const unsigned char *pwd, size_t pwdlen,
-                         mbedtls_f_rng_t *f_rng, void *p_rng);
-
-/** \ingroup pk_module */
-/**
- * \brief           Parse a public key in PEM or DER format
- *
- * \note            If #MBEDTLS_USE_PSA_CRYPTO is enabled, the PSA crypto
- *                  subsystem must have been initialized by calling
- *                  psa_crypto_init() before calling this function.
- *
- * \param ctx       The PK context to fill. It must have been initialized
- *                  but not set up.
- * \param key       Input buffer to parse.
- *                  The buffer must contain the input exactly, with no
- *                  extra trailing material. For PEM, the buffer must
- *                  contain a null-terminated string.
- * \param keylen    Size of \b key in bytes.
- *                  For PEM data, this includes the terminating null byte,
- *                  so \p keylen must be equal to `strlen(key) + 1`.
- *
- * \note            On entry, ctx must be empty, either freshly initialised
- *                  with mbedtls_pk_init() or reset with mbedtls_pk_free(). If you need a
- *                  specific key type, check the result with mbedtls_pk_can_do().
- *
- * \note            For compressed points, see #MBEDTLS_ECP_PF_COMPRESSED for
- *                  limitations.
- *
- * \note            The key is also checked for correctness.
- *
- * \return          0 if successful, or a specific PK or PEM error code
- */
-int mbedtls_pk_parse_public_key(mbedtls_pk_context *ctx,
-                                const unsigned char *key, size_t keylen);
-
-#if defined(MBEDTLS_FS_IO)
-/** \ingroup pk_module */
-/**
- * \brief           Load and parse a private key
- *
- * \note            If #MBEDTLS_USE_PSA_CRYPTO is enabled, the PSA crypto
- *                  subsystem must have been initialized by calling
- *                  psa_crypto_init() before calling this function.
- *
- * \param ctx       The PK context to fill. It must have been initialized
- *                  but not set up.
- * \param path      filename to read the private key from
- * \param password  Optional password to decrypt the file.
- *                  Pass \c NULL if expecting a non-encrypted key.
- *                  Pass a null-terminated string if expecting an encrypted
- *                  key; a non-encrypted key will also be accepted.
- *                  The empty password is not supported.
- * \param f_rng     RNG function, must not be \c NULL. Used for blinding.
- * \param p_rng     RNG parameter
- *
- * \note            On entry, ctx must be empty, either freshly initialised
- *                  with mbedtls_pk_init() or reset with mbedtls_pk_free(). If you need a
- *                  specific key type, check the result with mbedtls_pk_can_do().
- *
- * \note            The key is also checked for correctness.
- *
- * \return          0 if successful, or a specific PK or PEM error code
- */
-int mbedtls_pk_parse_keyfile(mbedtls_pk_context *ctx,
-                             const char *path, const char *password,
-                             mbedtls_f_rng_t *f_rng, void *p_rng);
-
-/** \ingroup pk_module */
-/**
- * \brief           Load and parse a public key
- *
- * \param ctx       The PK context to fill. It must have been initialized
- *                  but not set up.
- * \param path      filename to read the public key from
- *
- * \note            On entry, ctx must be empty, either freshly initialised
- *                  with mbedtls_pk_init() or reset with mbedtls_pk_free(). If
- *                  you need a specific key type, check the result with
- *                  mbedtls_pk_can_do().
- *
- * \note            The key is also checked for correctness.
- *
- * \return          0 if successful, or a specific PK or PEM error code
- */
-int mbedtls_pk_parse_public_keyfile(mbedtls_pk_context *ctx, const char *path);
-#endif /* MBEDTLS_FS_IO */
-#endif /* MBEDTLS_PK_PARSE_C */
-
-#if defined(MBEDTLS_PK_WRITE_C)
-/**
- * \brief           Write a private key to a PKCS#1 or SEC1 DER structure
- *                  Note: data is written at the end of the buffer! Use the
- *                        return value to determine where you should start
- *                        using the buffer
- *
- * \param ctx       PK context which must contain a valid private key.
- * \param buf       buffer to write to
- * \param size      size of the buffer
- *
- * \return          length of data written if successful, or a specific
- *                  error code
- */
-int mbedtls_pk_write_key_der(const mbedtls_pk_context *ctx, unsigned char *buf, size_t size);
-
-/**
- * \brief           Write a public key to a SubjectPublicKeyInfo DER structure
- *                  Note: data is written at the end of the buffer! Use the
- *                        return value to determine where you should start
- *                        using the buffer
- *
- * \param ctx       PK context which must contain a valid public or private key.
- * \param buf       buffer to write to
- * \param size      size of the buffer
- *
- * \return          length of data written if successful, or a specific
- *                  error code
- */
-int mbedtls_pk_write_pubkey_der(const mbedtls_pk_context *ctx, unsigned char *buf, size_t size);
-
-#if defined(MBEDTLS_PEM_WRITE_C)
-/**
- * \brief           Write a public key to a PEM string
- *
- * \param ctx       PK context which must contain a valid public or private key.
- * \param buf       Buffer to write to. The output includes a
- *                  terminating null byte.
- * \param size      Size of the buffer in bytes.
- *
- * \return          0 if successful, or a specific error code
- */
-int mbedtls_pk_write_pubkey_pem(const mbedtls_pk_context *ctx, unsigned char *buf, size_t size);
-
-/**
- * \brief           Write a private key to a PKCS#1 or SEC1 PEM string
- *
- * \param ctx       PK context which must contain a valid private key.
- * \param buf       Buffer to write to. The output includes a
- *                  terminating null byte.
- * \param size      Size of the buffer in bytes.
- *
- * \return          0 if successful, or a specific error code
- */
-int mbedtls_pk_write_key_pem(const mbedtls_pk_context *ctx, unsigned char *buf, size_t size);
-#endif /* MBEDTLS_PEM_WRITE_C */
-#endif /* MBEDTLS_PK_WRITE_C */
-
-/*
- * WARNING: Low-level functions. You probably do not want to use these unless
- *          you are certain you do ;)
- */
-
-#if defined(MBEDTLS_PK_PARSE_C)
-/**
- * \brief           Parse a SubjectPublicKeyInfo DER structure
- *
- * \param p         the position in the ASN.1 data
- * \param end       end of the buffer
- * \param pk        The PK context to fill. It must have been initialized
- *                  but not set up.
- *
- * \return          0 if successful, or a specific PK error code
- */
-int mbedtls_pk_parse_subpubkey(unsigned char **p, const unsigned char *end,
-                               mbedtls_pk_context *pk);
-#endif /* MBEDTLS_PK_PARSE_C */
-
-#if defined(MBEDTLS_PK_WRITE_C)
-/**
- * \brief           Write a subjectPublicKey to ASN.1 data
- *                  Note: function works backwards in data buffer
- *
- * \param p         reference to current position pointer
- * \param start     start of the buffer (for bounds-checking)
- * \param key       PK context which must contain a valid public or private key.
- *
- * \return          the length written or a negative error code
- */
-int mbedtls_pk_write_pubkey(unsigned char **p, unsigned char *start,
-                            const mbedtls_pk_context *key);
-#endif /* MBEDTLS_PK_WRITE_C */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* MBEDTLS_PK_H */
diff --git a/deps/LIEF/third-party/mbedtls/include/mbedtls/pkcs12.h b/deps/LIEF/third-party/mbedtls/include/mbedtls/pkcs12.h
deleted file mode 100644
index 87f7681f29a..00000000000
--- a/deps/LIEF/third-party/mbedtls/include/mbedtls/pkcs12.h
+++ /dev/null
@@ -1,186 +0,0 @@
-/**
- * \file pkcs12.h
- *
- * \brief PKCS#12 Personal Information Exchange Syntax
- */
-/*
- *  Copyright The Mbed TLS Contributors
- *  SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
- */
-#ifndef MBEDTLS_PKCS12_H
-#define MBEDTLS_PKCS12_H
-
-#include "mbedtls/build_info.h"
-
-#include "mbedtls/md.h"
-#include "mbedtls/cipher.h"
-#include "mbedtls/asn1.h"
-
-#include <stddef.h>
-
-/** Bad input parameters to function. */
-#define MBEDTLS_ERR_PKCS12_BAD_INPUT_DATA                 -0x1F80
-/** Feature not available, e.g. unsupported encryption scheme. */
-#define MBEDTLS_ERR_PKCS12_FEATURE_UNAVAILABLE            -0x1F00
-/** PBE ASN.1 data not as expected. */
-#define MBEDTLS_ERR_PKCS12_PBE_INVALID_FORMAT             -0x1E80
-/** Given private key password does not allow for correct decryption. */
-#define MBEDTLS_ERR_PKCS12_PASSWORD_MISMATCH              -0x1E00
-
-#define MBEDTLS_PKCS12_DERIVE_KEY       1   /**< encryption/decryption key */
-#define MBEDTLS_PKCS12_DERIVE_IV        2   /**< initialization vector     */
-#define MBEDTLS_PKCS12_DERIVE_MAC_KEY   3   /**< integrity / MAC key       */
-
-#define MBEDTLS_PKCS12_PBE_DECRYPT      MBEDTLS_DECRYPT
-#define MBEDTLS_PKCS12_PBE_ENCRYPT      MBEDTLS_ENCRYPT
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#if defined(MBEDTLS_ASN1_PARSE_C) && defined(MBEDTLS_CIPHER_C)
-
-#if !defined(MBEDTLS_DEPRECATED_REMOVED)
-/**
- * \brief            PKCS12 Password Based function (encryption / decryption)
- *                   for cipher-based and mbedtls_md-based PBE's
- *
- * \note             When encrypting, #MBEDTLS_CIPHER_PADDING_PKCS7 must
- *                   be enabled at compile time.
- *
- * \deprecated       This function is deprecated and will be removed in a
- *                   future version of the library.
- *                   Please use mbedtls_pkcs12_pbe_ext() instead.
- *
- * \warning          When decrypting:
- *                   - if #MBEDTLS_CIPHER_PADDING_PKCS7 is enabled at compile
- *                     time, this function validates the CBC padding and returns
- *                     #MBEDTLS_ERR_PKCS12_PASSWORD_MISMATCH if the padding is
- *                     invalid. Note that this can help active adversaries
- *                     attempting to brute-forcing the password. Note also that
- *                     there is no guarantee that an invalid password will be
- *                     detected (the chances of a valid padding with a random
- *                     password are about 1/255).
- *                   - if #MBEDTLS_CIPHER_PADDING_PKCS7 is disabled at compile
- *                     time, this function does not validate the CBC padding.
- *
- * \param pbe_params an ASN1 buffer containing the pkcs-12 PbeParams structure
- * \param mode       either #MBEDTLS_PKCS12_PBE_ENCRYPT or
- *                   #MBEDTLS_PKCS12_PBE_DECRYPT
- * \param cipher_type the cipher used
- * \param md_type    the mbedtls_md used
- * \param pwd        Latin1-encoded password used. This may only be \c NULL when
- *                   \p pwdlen is 0. No null terminator should be used.
- * \param pwdlen     length of the password (may be 0)
- * \param data       the input data
- * \param len        data length
- * \param output     Output buffer.
- *                   On success, it contains the encrypted or decrypted data,
- *                   possibly followed by the CBC padding.
- *                   On failure, the content is indeterminate.
- *                   For decryption, there must be enough room for \p len
- *                   bytes.
- *                   For encryption, there must be enough room for
- *                   \p len + 1 bytes, rounded up to the block size of
- *                   the block cipher identified by \p pbe_params.
- *
- * \return           0 if successful, or a MBEDTLS_ERR_XXX code
- */
-int MBEDTLS_DEPRECATED mbedtls_pkcs12_pbe(mbedtls_asn1_buf *pbe_params, int mode,
-                                          mbedtls_cipher_type_t cipher_type,
-                                          mbedtls_md_type_t md_type,
-                                          const unsigned char *pwd,  size_t pwdlen,
-                                          const unsigned char *data, size_t len,
-                                          unsigned char *output);
-#endif /* MBEDTLS_DEPRECATED_REMOVED */
-
-#if defined(MBEDTLS_CIPHER_PADDING_PKCS7)
-
-/**
- * \brief            PKCS12 Password Based function (encryption / decryption)
- *                   for cipher-based and mbedtls_md-based PBE's
- *
- *
- * \warning          When decrypting:
- *                   - This function validates the CBC padding and returns
- *                     #MBEDTLS_ERR_PKCS12_PASSWORD_MISMATCH if the padding is
- *                     invalid. Note that this can help active adversaries
- *                     attempting to brute-forcing the password. Note also that
- *                     there is no guarantee that an invalid password will be
- *                     detected (the chances of a valid padding with a random
- *                     password are about 1/255).
- *
- * \param pbe_params an ASN1 buffer containing the pkcs-12 PbeParams structure
- * \param mode       either #MBEDTLS_PKCS12_PBE_ENCRYPT or
- *                   #MBEDTLS_PKCS12_PBE_DECRYPT
- * \param cipher_type the cipher used
- * \param md_type    the mbedtls_md used
- * \param pwd        Latin1-encoded password used. This may only be \c NULL when
- *                   \p pwdlen is 0. No null terminator should be used.
- * \param pwdlen     length of the password (may be 0)
- * \param data       the input data
- * \param len        data length
- * \param output     Output buffer.
- *                   On success, it contains the encrypted or decrypted data,
- *                   possibly followed by the CBC padding.
- *                   On failure, the content is indeterminate.
- *                   For decryption, there must be enough room for \p len
- *                   bytes.
- *                   For encryption, there must be enough room for
- *                   \p len + 1 bytes, rounded up to the block size of
- *                   the block cipher identified by \p pbe_params.
- * \param output_size size of output buffer.
- *                    This must be big enough to accommodate for output plus
- *                    padding data.
- * \param output_len On success, length of actual data written to the output buffer.
- *
- * \return           0 if successful, or a MBEDTLS_ERR_XXX code
- */
-int mbedtls_pkcs12_pbe_ext(mbedtls_asn1_buf *pbe_params, int mode,
-                           mbedtls_cipher_type_t cipher_type, mbedtls_md_type_t md_type,
-                           const unsigned char *pwd,  size_t pwdlen,
-                           const unsigned char *data, size_t len,
-                           unsigned char *output, size_t output_size,
-                           size_t *output_len);
-
-#endif /* MBEDTLS_CIPHER_PADDING_PKCS7 */
-
-#endif /* MBEDTLS_ASN1_PARSE_C && MBEDTLS_CIPHER_C */
-
-/**
- * \brief            The PKCS#12 derivation function uses a password and a salt
- *                   to produce pseudo-random bits for a particular "purpose".
- *
- *                   Depending on the given id, this function can produce an
- *                   encryption/decryption key, an initialization vector or an
- *                   integrity key.
- *
- * \param data       buffer to store the derived data in
- * \param datalen    length of buffer to fill
- * \param pwd        The password to use. For compliance with PKCS#12 §B.1, this
- *                   should be a BMPString, i.e. a Unicode string where each
- *                   character is encoded as 2 bytes in big-endian order, with
- *                   no byte order mark and with a null terminator (i.e. the
- *                   last two bytes should be 0x00 0x00).
- * \param pwdlen     length of the password (may be 0).
- * \param salt       Salt buffer to use. This may only be \c NULL when
- *                   \p saltlen is 0.
- * \param saltlen    length of the salt (may be zero)
- * \param mbedtls_md mbedtls_md type to use during the derivation
- * \param id         id that describes the purpose (can be
- *                   #MBEDTLS_PKCS12_DERIVE_KEY, #MBEDTLS_PKCS12_DERIVE_IV or
- *                   #MBEDTLS_PKCS12_DERIVE_MAC_KEY)
- * \param iterations number of iterations
- *
- * \return          0 if successful, or a MD, BIGNUM type error.
- */
-int mbedtls_pkcs12_derivation(unsigned char *data, size_t datalen,
-                              const unsigned char *pwd, size_t pwdlen,
-                              const unsigned char *salt, size_t saltlen,
-                              mbedtls_md_type_t mbedtls_md, int id, int iterations);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* pkcs12.h */
diff --git a/deps/LIEF/third-party/mbedtls/include/mbedtls/pkcs7.h b/deps/LIEF/third-party/mbedtls/include/mbedtls/pkcs7.h
index e9b482208e6..957ca53d71a 100644
--- a/deps/LIEF/third-party/mbedtls/include/mbedtls/pkcs7.h
+++ b/deps/LIEF/third-party/mbedtls/include/mbedtls/pkcs7.h
@@ -55,9 +55,9 @@
 #define MBEDTLS_ERR_PKCS7_INVALID_CERT                     -0x5580  /**< The certificate tag or value is invalid or cannot be parsed. */
 #define MBEDTLS_ERR_PKCS7_INVALID_SIGNATURE                -0x5600  /**< Error parsing the signature */
 #define MBEDTLS_ERR_PKCS7_INVALID_SIGNER_INFO              -0x5680  /**< Error parsing the signer's info */
-#define MBEDTLS_ERR_PKCS7_BAD_INPUT_DATA                   -0x5700  /**< Input invalid. */
-#define MBEDTLS_ERR_PKCS7_ALLOC_FAILED                     -0x5780  /**< Allocation of memory failed. */
-#define MBEDTLS_ERR_PKCS7_VERIFY_FAIL                      -0x5800  /**< Verification Failed */
+#define MBEDTLS_ERR_PKCS7_BAD_INPUT_DATA                   PSA_ERROR_INVALID_ARGUMENT  /**< Input invalid. */
+#define MBEDTLS_ERR_PKCS7_ALLOC_FAILED                     PSA_ERROR_INSUFFICIENT_MEMORY  /**< Allocation of memory failed. */
+#define MBEDTLS_ERR_PKCS7_VERIFY_FAIL                      PSA_ERROR_INVALID_SIGNATURE  /**< Verification Failed */
 #define MBEDTLS_ERR_PKCS7_CERT_DATE_INVALID                -0x5880  /**< The PKCS #7 date issued/expired dates are invalid */
 /* \} name */

diff --git a/deps/LIEF/third-party/mbedtls/include/mbedtls/config_adjust_ssl.h b/deps/LIEF/third-party/mbedtls/include/mbedtls/private/config_adjust_ssl.h
similarity index 88%
rename from deps/LIEF/third-party/mbedtls/include/mbedtls/config_adjust_ssl.h
rename to deps/LIEF/third-party/mbedtls/include/mbedtls/private/config_adjust_ssl.h
index 1f82d9c006c..ee35a67c9f7 100644
--- a/deps/LIEF/third-party/mbedtls/include/mbedtls/config_adjust_ssl.h
+++ b/deps/LIEF/third-party/mbedtls/include/mbedtls/private/config_adjust_ssl.h
@@ -1,5 +1,5 @@
 /**
- * \file mbedtls/config_adjust_ssl.h
+ * \file mbedtls/private/config_adjust_ssl.h
  * \brief Adjust TLS configuration
  *
  * This is an internal header. Do not include it directly.
@@ -51,7 +51,6 @@
 #if !defined(MBEDTLS_SSL_PROTO_DTLS)
 #undef MBEDTLS_SSL_DTLS_ANTI_REPLAY
 #undef MBEDTLS_SSL_DTLS_CONNECTION_ID
-#undef MBEDTLS_SSL_DTLS_CONNECTION_ID_COMPAT
 #undef MBEDTLS_SSL_DTLS_HELLO_VERIFY
 #undef MBEDTLS_SSL_DTLS_SRTP
 #undef MBEDTLS_SSL_DTLS_CLIENT_PORT_REUSE
@@ -61,16 +60,10 @@
 #undef MBEDTLS_SSL_ENCRYPT_THEN_MAC
 #undef MBEDTLS_SSL_EXTENDED_MASTER_SECRET
 #undef MBEDTLS_SSL_RENEGOTIATION
-#undef MBEDTLS_KEY_EXCHANGE_RSA_ENABLED
-#undef MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED
 #undef MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED
 #undef MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED
 #undef MBEDTLS_KEY_EXCHANGE_PSK_ENABLED
-#undef MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED
-#undef MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED
 #undef MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED
-#undef MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED
-#undef MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED
 #undef MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED
 #endif

@@ -83,7 +76,7 @@
 #endif

 #if defined(MBEDTLS_SSL_PROTO_TLS1_2) && \
-    (defined(MBEDTLS_ECDH_C) || defined(MBEDTLS_ECDSA_C) || \
+    (defined(PSA_WANT_ALG_ECDH) || defined(PSA_WANT_ALG_ECDSA) || \
     defined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED))
 #define MBEDTLS_SSL_TLS1_2_SOME_ECC
 #endif
diff --git a/deps/LIEF/third-party/mbedtls/include/mbedtls/config_adjust_x509.h b/deps/LIEF/third-party/mbedtls/include/mbedtls/private/config_adjust_x509.h
similarity index 96%
rename from deps/LIEF/third-party/mbedtls/include/mbedtls/config_adjust_x509.h
rename to deps/LIEF/third-party/mbedtls/include/mbedtls/private/config_adjust_x509.h
index cfb2d889164..4af976666bf 100644
--- a/deps/LIEF/third-party/mbedtls/include/mbedtls/config_adjust_x509.h
+++ b/deps/LIEF/third-party/mbedtls/include/mbedtls/private/config_adjust_x509.h
@@ -1,5 +1,5 @@
 /**
- * \file mbedtls/config_adjust_x509.h
+ * \file mbedtls/private/config_adjust_x509.h
  * \brief Adjust X.509 configuration
  *
  * This is an internal header. Do not include it directly.
diff --git a/deps/LIEF/third-party/mbedtls/include/mbedtls/private_access.h b/deps/LIEF/third-party/mbedtls/include/mbedtls/private_access.h
deleted file mode 100644
index 580f3eb4469..00000000000
--- a/deps/LIEF/third-party/mbedtls/include/mbedtls/private_access.h
+++ /dev/null
@@ -1,20 +0,0 @@
-/**
- * \file private_access.h
- *
- * \brief Macro wrapper for struct's members.
- */
-/*
- *  Copyright The Mbed TLS Contributors
- *  SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
- */
-
-#ifndef MBEDTLS_PRIVATE_ACCESS_H
-#define MBEDTLS_PRIVATE_ACCESS_H
-
-#ifndef MBEDTLS_ALLOW_PRIVATE_ACCESS
-#define MBEDTLS_PRIVATE(member) private_##member
-#else
-#define MBEDTLS_PRIVATE(member) member
-#endif
-
-#endif /* MBEDTLS_PRIVATE_ACCESS_H */
diff --git a/deps/LIEF/third-party/mbedtls/include/mbedtls/ssl.h b/deps/LIEF/third-party/mbedtls/include/mbedtls/ssl.h
index 3cdddf7d72f..02e527cdf5c 100644
--- a/deps/LIEF/third-party/mbedtls/include/mbedtls/ssl.h
+++ b/deps/LIEF/third-party/mbedtls/include/mbedtls/ssl.h
@@ -14,8 +14,8 @@

 #include "mbedtls/build_info.h"

-#include "mbedtls/bignum.h"
-#include "mbedtls/ecp.h"
+#include "mbedtls/private/bignum.h"
+#include "mbedtls/private/ecp.h"

 #include "mbedtls/ssl_ciphersuites.h"

@@ -24,14 +24,10 @@
 #include "mbedtls/x509_crl.h"
 #endif

-#if defined(MBEDTLS_DHM_C)
-#include "mbedtls/dhm.h"
-#endif
-
 #include "mbedtls/md.h"

 #if defined(MBEDTLS_KEY_EXCHANGE_SOME_ECDH_OR_ECDHE_ANY_ENABLED)
-#include "mbedtls/ecdh.h"
+#include "mbedtls/private/ecdh.h"
 #endif

 #if defined(MBEDTLS_HAVE_TIME)
@@ -48,7 +44,7 @@
 /** The requested feature is not available. */
 #define MBEDTLS_ERR_SSL_FEATURE_UNAVAILABLE               -0x7080
 /** Bad input parameters to function. */
-#define MBEDTLS_ERR_SSL_BAD_INPUT_DATA                    -0x7100
+#define MBEDTLS_ERR_SSL_BAD_INPUT_DATA                    PSA_ERROR_INVALID_ARGUMENT
 /** Verification of the message MAC failed. */
 #define MBEDTLS_ERR_SSL_INVALID_MAC                       -0x7180
 /** An invalid SSL record was received. */
@@ -83,7 +79,10 @@
 /** Processing of the Certificate handshake message failed. */
 #define MBEDTLS_ERR_SSL_BAD_CERTIFICATE                   -0x7A00
 /* Error space gap */
-/** A TLS 1.3 NewSessionTicket message has been received. */
+/**
+ * Received NewSessionTicket Post Handshake Message.
+ * This error code is experimental and may be changed or removed without notice.
+ */
 #define MBEDTLS_ERR_SSL_RECEIVED_NEW_SESSION_TICKET       -0x7B00
 /** Not possible to read early data */
 #define MBEDTLS_ERR_SSL_CANNOT_READ_EARLY_DATA            -0x7B80
@@ -106,7 +105,7 @@
 /** Cache entry not found */
 #define MBEDTLS_ERR_SSL_CACHE_ENTRY_NOT_FOUND             -0x7E80
 /** Memory allocation failed */
-#define MBEDTLS_ERR_SSL_ALLOC_FAILED                      -0x7F00
+#define MBEDTLS_ERR_SSL_ALLOC_FAILED                      PSA_ERROR_INSUFFICIENT_MEMORY
 /** Hardware acceleration function returned with error */
 #define MBEDTLS_ERR_SSL_HW_ACCEL_FAILED                   -0x7F80
 /** Hardware acceleration function skipped / left alone data */
@@ -130,7 +129,7 @@
 /** DTLS client must retry for hello verification */
 #define MBEDTLS_ERR_SSL_HELLO_VERIFY_REQUIRED             -0x6A80
 /** A buffer is too small to receive or write a message */
-#define MBEDTLS_ERR_SSL_BUFFER_TOO_SMALL                  -0x6A00
+#define MBEDTLS_ERR_SSL_BUFFER_TOO_SMALL                  PSA_ERROR_BUFFER_TOO_SMALL
 /* Error space gap */
 /** No data of requested type currently available on underlying transport. */
 #define MBEDTLS_ERR_SSL_WANT_READ                         -0x6900
@@ -197,9 +196,6 @@
  *   #MBEDTLS_SSL_VERIFY_REQUIRED (default).
  * - Certificate authentication is enabled.
  * - The client does not call mbedtls_ssl_set_hostname().
- * - The configuration option
- *   #MBEDTLS_SSL_CLI_ALLOW_WEAK_CERTIFICATE_VERIFICATION_WITHOUT_HOSTNAME
- *   is not enabled.
  */
 #define MBEDTLS_ERR_SSL_CERTIFICATE_VERIFICATION_WITHOUT_HOSTNAME  -0x5D80

@@ -233,10 +229,6 @@

 /* Elliptic Curve Groups (ECDHE) */
 #define MBEDTLS_SSL_IANA_TLS_GROUP_NONE               0
-#define MBEDTLS_SSL_IANA_TLS_GROUP_SECP192K1     0x0012
-#define MBEDTLS_SSL_IANA_TLS_GROUP_SECP192R1     0x0013
-#define MBEDTLS_SSL_IANA_TLS_GROUP_SECP224K1     0x0014
-#define MBEDTLS_SSL_IANA_TLS_GROUP_SECP224R1     0x0015
 #define MBEDTLS_SSL_IANA_TLS_GROUP_SECP256K1     0x0016
 #define MBEDTLS_SSL_IANA_TLS_GROUP_SECP256R1     0x0017
 #define MBEDTLS_SSL_IANA_TLS_GROUP_SECP384R1     0x0018
@@ -288,15 +280,6 @@
  * Various constants
  */

-#if !defined(MBEDTLS_DEPRECATED_REMOVED)
-/* These are the high and low bytes of ProtocolVersion as defined by:
- * - RFC 5246: ProtocolVersion version = { 3, 3 };     // TLS v1.2
- * - RFC 8446: see section 4.2.1
- */
-#define MBEDTLS_SSL_MAJOR_VERSION_3             3
-#define MBEDTLS_SSL_MINOR_VERSION_3             3   /*!< TLS v1.2 */
-#define MBEDTLS_SSL_MINOR_VERSION_4             4   /*!< TLS v1.3 */
-#endif /* MBEDTLS_DEPRECATED_REMOVED */

 #define MBEDTLS_SSL_TRANSPORT_STREAM            0   /*!< TLS      */
 #define MBEDTLS_SSL_TRANSPORT_DATAGRAM          1   /*!< DTLS     */
@@ -357,9 +340,6 @@
 #define MBEDTLS_SSL_SESSION_TICKETS_DISABLED     0
 #define MBEDTLS_SSL_SESSION_TICKETS_ENABLED      1

-#define MBEDTLS_SSL_TLS1_3_SIGNAL_NEW_SESSION_TICKETS_DISABLED  0
-#define MBEDTLS_SSL_TLS1_3_SIGNAL_NEW_SESSION_TICKETS_ENABLED   1
-
 #define MBEDTLS_SSL_PRESET_DEFAULT              0
 #define MBEDTLS_SSL_PRESET_SUITEB               2

@@ -477,14 +457,6 @@

 /** \} name SECTION: Module settings */

-/*
- * Default to standard CID mode
- */
-#if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID) && \
-    !defined(MBEDTLS_SSL_DTLS_CONNECTION_ID_COMPAT)
-#define MBEDTLS_SSL_DTLS_CONNECTION_ID_COMPAT 0
-#endif
-
 /*
  * Length of the verify data for secure renegotiation
  */
@@ -656,11 +628,7 @@
 #define MBEDTLS_TLS_EXT_SIG_ALG_CERT                50 /* RFC 8446 TLS 1.3 */
 #define MBEDTLS_TLS_EXT_KEY_SHARE                   51 /* RFC 8446 TLS 1.3 */

-#if MBEDTLS_SSL_DTLS_CONNECTION_ID_COMPAT == 0
 #define MBEDTLS_TLS_EXT_CID                         54 /* RFC 9146 DTLS 1.2 CID */
-#else
-#define MBEDTLS_TLS_EXT_CID                        254 /* Pre-RFC 9146 DTLS 1.2 CID */
-#endif

 #define MBEDTLS_TLS_EXT_ECJPAKE_KKPP               256 /* experimental */

@@ -679,8 +647,8 @@
  */
 #if defined(MBEDTLS_SSL_PROTO_TLS1_3) && \
     defined(MBEDTLS_SSL_SESSION_TICKETS) && \
-    defined(MBEDTLS_SSL_HAVE_AES) && defined(MBEDTLS_SSL_HAVE_GCM) && \
-    defined(MBEDTLS_MD_CAN_SHA384)
+    defined(PSA_WANT_KEY_TYPE_AES) && defined(PSA_WANT_ALG_GCM) && \
+    defined(PSA_WANT_ALG_SHA_384)
 #define MBEDTLS_PSK_MAX_LEN 48 /* 384 bits */
 #else
 #define MBEDTLS_PSK_MAX_LEN 32 /* 256 bits */
@@ -690,28 +658,13 @@
 /* Dummy type used only for its size */
 union mbedtls_ssl_premaster_secret {
     unsigned char dummy; /* Make the union non-empty even with SSL disabled */
-#if defined(MBEDTLS_KEY_EXCHANGE_RSA_ENABLED)
-    unsigned char _pms_rsa[48];                         /* RFC 5246 8.1.1 */
-#endif
-#if defined(MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED)
-    unsigned char _pms_dhm[MBEDTLS_MPI_MAX_SIZE];      /* RFC 5246 8.1.2 */
-#endif
 #if defined(MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED)    || \
-    defined(MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED)  || \
-    defined(MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED)     || \
-    defined(MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED)
+    defined(MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED)
     unsigned char _pms_ecdh[MBEDTLS_ECP_MAX_BYTES];    /* RFC 4492 5.10 */
 #endif
 #if defined(MBEDTLS_KEY_EXCHANGE_PSK_ENABLED)
     unsigned char _pms_psk[4 + 2 * MBEDTLS_PSK_MAX_LEN];       /* RFC 4279 2 */
 #endif
-#if defined(MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED)
-    unsigned char _pms_dhe_psk[4 + MBEDTLS_MPI_MAX_SIZE
-                               + MBEDTLS_PSK_MAX_LEN];         /* RFC 4279 3 */
-#endif
-#if defined(MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED)
-    unsigned char _pms_rsa_psk[52 + MBEDTLS_PSK_MAX_LEN];      /* RFC 4279 4 */
-#endif
 #if defined(MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED)
     unsigned char _pms_ecdhe_psk[4 + MBEDTLS_ECP_MAX_BYTES
                                  + MBEDTLS_PSK_MAX_LEN];       /* RFC 5489 2 */
@@ -911,7 +864,6 @@ typedef struct mbedtls_ssl_config  mbedtls_ssl_config;
 /* Defined in library/ssl_misc.h */
 typedef struct mbedtls_ssl_transform mbedtls_ssl_transform;
 typedef struct mbedtls_ssl_handshake_params mbedtls_ssl_handshake_params;
-typedef struct mbedtls_ssl_sig_hash_set_t mbedtls_ssl_sig_hash_set_t;
 #if defined(MBEDTLS_X509_CRT_PARSE_C)
 typedef struct mbedtls_ssl_key_cert mbedtls_ssl_key_cert;
 #endif
@@ -1007,20 +959,10 @@ typedef int mbedtls_ssl_cache_set_t(void *data,
  *                  to store an operation context for later retrieval
  *                  by the resume or cancel callback.
  *
- * \note            For RSA signatures, this function must produce output
- *                  that is consistent with PKCS#1 v1.5 in the same way as
- *                  mbedtls_rsa_pkcs1_sign(). Before the private key operation,
- *                  apply the padding steps described in RFC 8017, section 9.2
- *                  "EMSA-PKCS1-v1_5" as follows.
- *                  - If \p md_alg is #MBEDTLS_MD_NONE, apply the PKCS#1 v1.5
- *                    encoding, treating \p hash as the DigestInfo to be
- *                    padded. In other words, apply EMSA-PKCS1-v1_5 starting
- *                    from step 3, with `T = hash` and `tLen = hash_len`.
- *                  - If `md_alg != MBEDTLS_MD_NONE`, apply the PKCS#1 v1.5
- *                    encoding, treating \p hash as the hash to be encoded and
- *                    padded. In other words, apply EMSA-PKCS1-v1_5 starting
- *                    from step 2, with `digestAlgorithm` obtained by calling
- *                    mbedtls_oid_get_oid_by_md() on \p md_alg.
+ * \note            For an RSA key, this function must produce a PKCS#1v1.5
+ *                  signature in the standard format (like
+ *                  #PSA_ALG_RSA_PKCS1V15_SIGN). \c md_alg is guaranteed to be
+ *                  a hash that is supported by the library.
  *
  * \note            For ECDSA signatures, the output format is the DER encoding
  *                  `Ecdsa-Sig-Value` defined in
@@ -1060,71 +1002,6 @@ typedef int mbedtls_ssl_async_sign_t(mbedtls_ssl_context *ssl,
                                      mbedtls_md_type_t md_alg,
                                      const unsigned char *hash,
                                      size_t hash_len);
-
-/**
- * \brief           Callback type: start external decryption operation.
- *
- *                  This callback is called during an SSL handshake to start
- *                  an RSA decryption operation using an
- *                  external processor. The parameter \p cert contains
- *                  the public key; it is up to the callback function to
- *                  determine how to access the associated private key.
- *
- *                  This function typically sends or enqueues a request, and
- *                  does not wait for the operation to complete. This allows
- *                  the handshake step to be non-blocking.
- *
- *                  The parameters \p ssl and \p cert are guaranteed to remain
- *                  valid throughout the handshake. On the other hand, this
- *                  function must save the contents of \p input if the value
- *                  is needed for later processing, because the \p input buffer
- *                  is no longer valid after this function returns.
- *
- *                  This function may call mbedtls_ssl_set_async_operation_data()
- *                  to store an operation context for later retrieval
- *                  by the resume or cancel callback.
- *
- * \warning         RSA decryption as used in TLS is subject to a potential
- *                  timing side channel attack first discovered by Bleichenbacher
- *                  in 1998. This attack can be remotely exploitable
- *                  in practice. To avoid this attack, you must ensure that
- *                  if the callback performs an RSA decryption, the time it
- *                  takes to execute and return the result does not depend
- *                  on whether the RSA decryption succeeded or reported
- *                  invalid padding.
- *
- * \param ssl             The SSL connection instance. It should not be
- *                        modified other than via
- *                        mbedtls_ssl_set_async_operation_data().
- * \param cert            Certificate containing the public key.
- *                        In simple cases, this is one of the pointers passed to
- *                        mbedtls_ssl_conf_own_cert() when configuring the SSL
- *                        connection. However, if other callbacks are used, this
- *                        property may not hold. For example, if an SNI callback
- *                        is registered with mbedtls_ssl_conf_sni(), then
- *                        this callback determines what certificate is used.
- * \param input           Buffer containing the input ciphertext. This buffer
- *                        is no longer valid when the function returns.
- * \param input_len       Size of the \p input buffer in bytes.
- *
- * \return          0 if the operation was started successfully and the SSL
- *                  stack should call the resume callback immediately.
- * \return          #MBEDTLS_ERR_SSL_ASYNC_IN_PROGRESS if the operation
- *                  was started successfully and the SSL stack should return
- *                  immediately without calling the resume callback yet.
- * \return          #MBEDTLS_ERR_SSL_HW_ACCEL_FALLTHROUGH if the external
- *                  processor does not support this key. The SSL stack will
- *                  use the private key object instead.
- * \return          Any other error indicates a fatal failure and is
- *                  propagated up the call chain. The callback should
- *                  use \c MBEDTLS_ERR_PK_xxx error codes, and <b>must not</b>
- *                  use \c MBEDTLS_ERR_SSL_xxx error codes except as
- *                  directed in the documentation of this callback.
- */
-typedef int mbedtls_ssl_async_decrypt_t(mbedtls_ssl_context *ssl,
-                                        mbedtls_x509_crt *cert,
-                                        const unsigned char *input,
-                                        size_t input_len);
 #endif /* MBEDTLS_X509_CRT_PARSE_C */

 /**
@@ -1132,8 +1009,7 @@ typedef int mbedtls_ssl_async_decrypt_t(mbedtls_ssl_context *ssl,
  *
  *                  This callback is called during an SSL handshake to resume
  *                  an external operation started by the
- *                  ::mbedtls_ssl_async_sign_t or
- *                  ::mbedtls_ssl_async_decrypt_t callback.
+ *                  ::mbedtls_ssl_async_sign_t callback.
  *
  *                  This function typically checks the status of a pending
  *                  request or causes the request queue to make progress, and
@@ -1197,13 +1073,13 @@ typedef void mbedtls_ssl_async_cancel_t(mbedtls_ssl_context *ssl);
 #if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) &&        \
     !defined(MBEDTLS_SSL_KEEP_PEER_CERTIFICATE)
 #define MBEDTLS_SSL_PEER_CERT_DIGEST_MAX_LEN  48
-#if defined(MBEDTLS_MD_CAN_SHA256)
+#if defined(PSA_WANT_ALG_SHA_256)
 #define MBEDTLS_SSL_PEER_CERT_DIGEST_DFL_TYPE MBEDTLS_MD_SHA256
 #define MBEDTLS_SSL_PEER_CERT_DIGEST_DFL_LEN  32
-#elif defined(MBEDTLS_MD_CAN_SHA384)
+#elif defined(PSA_WANT_ALG_SHA_384)
 #define MBEDTLS_SSL_PEER_CERT_DIGEST_DFL_TYPE MBEDTLS_MD_SHA384
 #define MBEDTLS_SSL_PEER_CERT_DIGEST_DFL_LEN  48
-#elif defined(MBEDTLS_MD_CAN_SHA1)
+#elif defined(PSA_WANT_ALG_SHA_1)
 #define MBEDTLS_SSL_PEER_CERT_DIGEST_DFL_TYPE MBEDTLS_MD_SHA1
 #define MBEDTLS_SSL_PEER_CERT_DIGEST_DFL_LEN  20
 #else
@@ -1349,8 +1225,8 @@ struct mbedtls_ssl_session {
 #endif /* MBEDTLS_SSL_SERVER_NAME_INDICATION && MBEDTLS_SSL_CLI_C */

 #if defined(MBEDTLS_SSL_EARLY_DATA) && defined(MBEDTLS_SSL_ALPN) && defined(MBEDTLS_SSL_SRV_C)
-    char *ticket_alpn;                      /*!< ALPN negotiated in the session
-                                                 during which the ticket was generated. */
+    char *MBEDTLS_PRIVATE(ticket_alpn);           /*!< ALPN negotiated in the session
+                                                       during which the ticket was generated. */
 #endif

 #if defined(MBEDTLS_HAVE_TIME) && defined(MBEDTLS_SSL_CLI_C)
@@ -1490,12 +1366,6 @@ struct mbedtls_ssl_config {
 #endif
 #if defined(MBEDTLS_SSL_SESSION_TICKETS) && \
     defined(MBEDTLS_SSL_CLI_C)
-    /** Encodes two booleans, one stating whether TLS 1.2 session tickets are
-     *  enabled or not, the other one whether the handling of TLS 1.3
-     *  NewSessionTicket messages is enabled or not. They are respectively set
-     *  by mbedtls_ssl_conf_session_tickets() and
-     *  mbedtls_ssl_conf_tls13_enable_signal_new_session_tickets().
-     */
     uint8_t MBEDTLS_PRIVATE(session_tickets);   /*!< use session tickets? */
 #endif

@@ -1538,10 +1408,6 @@ struct mbedtls_ssl_config {
     void(*MBEDTLS_PRIVATE(f_dbg))(void *, int, const char *, int, const char *);
     void *MBEDTLS_PRIVATE(p_dbg);                    /*!< context for the debug function     */

-    /** Callback for getting (pseudo-)random numbers                        */
-    int(*MBEDTLS_PRIVATE(f_rng))(void *, unsigned char *, size_t);
-    void *MBEDTLS_PRIVATE(p_rng);                    /*!< context for the RNG function       */
-
     /** Callback to retrieve a session from the cache                       */
     mbedtls_ssl_cache_get_t *MBEDTLS_PRIVATE(f_get_cache);
     /** Callback to store a session into the cache                          */
@@ -1605,7 +1471,6 @@ struct mbedtls_ssl_config {
 #if defined(MBEDTLS_SSL_ASYNC_PRIVATE)
 #if defined(MBEDTLS_X509_CRT_PARSE_C)
     mbedtls_ssl_async_sign_t *MBEDTLS_PRIVATE(f_async_sign_start); /*!< start asynchronous signature operation */
-    mbedtls_ssl_async_decrypt_t *MBEDTLS_PRIVATE(f_async_decrypt_start); /*!< start asynchronous decryption operation */
 #endif /* MBEDTLS_X509_CRT_PARSE_C */
     mbedtls_ssl_async_resume_t *MBEDTLS_PRIVATE(f_async_resume); /*!< resume asynchronous operation */
     mbedtls_ssl_async_cancel_t *MBEDTLS_PRIVATE(f_async_cancel); /*!< cancel asynchronous operation */
@@ -1613,34 +1478,19 @@ struct mbedtls_ssl_config {
 #endif /* MBEDTLS_SSL_ASYNC_PRIVATE */

 #if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED)
-
-#if !defined(MBEDTLS_DEPRECATED_REMOVED)
-    const int *MBEDTLS_PRIVATE(sig_hashes);         /*!< allowed signature hashes           */
-#endif
     const uint16_t *MBEDTLS_PRIVATE(sig_algs);      /*!< allowed signature algorithms       */
 #endif /* MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED */

-#if defined(MBEDTLS_ECP_C) && !defined(MBEDTLS_DEPRECATED_REMOVED)
-    const mbedtls_ecp_group_id *MBEDTLS_PRIVATE(curve_list); /*!< allowed curves             */
-#endif
-
     const uint16_t *MBEDTLS_PRIVATE(group_list);     /*!< allowed IANA NamedGroups */

-#if defined(MBEDTLS_DHM_C)
-    mbedtls_mpi MBEDTLS_PRIVATE(dhm_P);              /*!< prime modulus for DHM              */
-    mbedtls_mpi MBEDTLS_PRIVATE(dhm_G);              /*!< generator for DHM                  */
-#endif
-
 #if defined(MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED)

-#if defined(MBEDTLS_USE_PSA_CRYPTO)
     mbedtls_svc_key_id_t MBEDTLS_PRIVATE(psk_opaque); /*!< PSA key slot holding opaque PSK. This field
                                                        *   should only be set via
                                                        *   mbedtls_ssl_conf_psk_opaque().
                                                        *   If either no PSK or a raw PSK have been
                                                        *   configured, this has value \c 0.
                                                        */
-#endif /* MBEDTLS_USE_PSA_CRYPTO */
     unsigned char *MBEDTLS_PRIVATE(psk);      /*!< The raw pre-shared key. This field should
                                                *   only be set via mbedtls_ssl_conf_psk().
                                                *   If either no PSK or an opaque PSK
@@ -1677,7 +1527,7 @@ struct mbedtls_ssl_config {
 #endif /* MBEDTLS_SSL_EARLY_DATA */

 #if defined(MBEDTLS_SSL_ALPN)
-    const char **MBEDTLS_PRIVATE(alpn_list);         /*!< ordered list of protocols          */
+    const char *const *MBEDTLS_PRIVATE(alpn_list); /*!< ordered list of protocols */
 #endif

 #if defined(MBEDTLS_SSL_DTLS_SRTP)
@@ -1708,10 +1558,6 @@ struct mbedtls_ssl_config {

     unsigned int MBEDTLS_PRIVATE(badmac_limit);      /*!< limit of records with a bad MAC    */

-#if defined(MBEDTLS_DHM_C) && defined(MBEDTLS_SSL_CLI_C)
-    unsigned int MBEDTLS_PRIVATE(dhm_min_bitlen);    /*!< min. bit length of the DHM prime   */
-#endif
-
     /** User data pointer or handle.
      *
      * The library sets this to \p 0 when creating a context and does not
@@ -1735,6 +1581,14 @@ struct mbedtls_ssl_context {
      * Miscellaneous
      */
     int MBEDTLS_PRIVATE(state);                  /*!< SSL handshake: current state     */
+
+    /** Mask of `MBEDTLS_SSL_CONTEXT_FLAG_XXX`.
+     * See `mbedtls_ssl_context_flags_t` in ssl_misc.h.
+     *
+     * This field is not saved by mbedtls_ssl_session_save().
+     */
+    uint32_t MBEDTLS_PRIVATE(flags);
+
 #if defined(MBEDTLS_SSL_RENEGOTIATION)
     int MBEDTLS_PRIVATE(renego_status);          /*!< Initial, in progress, pending?   */
     int MBEDTLS_PRIVATE(renego_records_seen);    /*!< Records since renego request, or with DTLS,
@@ -1768,16 +1622,7 @@ struct mbedtls_ssl_context {
     int MBEDTLS_PRIVATE(early_data_state);
 #endif

-    /** Multipurpose field.
-     *
-     * - DTLS: records with a bad MAC received.
-     * - TLS: accumulated length of handshake fragments (up to \c in_hslen).
-     *
-     * This field is multipurpose in order to preserve the ABI in the
-     * Mbed TLS 3.6 LTS branch. Until 3.6.2, it was only used in DTLS
-     * and called `badmac_seen`.
-     */
-    unsigned MBEDTLS_PRIVATE(badmac_seen_or_in_hsfraglen);
+    unsigned MBEDTLS_PRIVATE(badmac_seen);       /*!< records with a bad MAC received    */

 #if defined(MBEDTLS_X509_CRT_PARSE_C)
     /** Callback to customize X.509 certificate chain verification          */
@@ -1870,6 +1715,8 @@ struct mbedtls_ssl_context {

     size_t MBEDTLS_PRIVATE(in_hslen);            /*!< current handshake message length,
                                                     including the handshake header   */
+    size_t MBEDTLS_PRIVATE(in_hsfraglen);        /*!< accumulated length of hs fragments
+                                                    (up to in_hslen) */
     int MBEDTLS_PRIVATE(nb_zero);                /*!< # of 0-length encrypted messages */

     int MBEDTLS_PRIVATE(keep_current_message);   /*!< drop or reuse current message
@@ -1937,35 +1784,8 @@ struct mbedtls_ssl_context {
      * User settings
      */
 #if defined(MBEDTLS_X509_CRT_PARSE_C)
-    /** Expected peer CN for verification.
-     *
-     * Also used on clients for SNI,
-     * and for TLS 1.3 session resumption using tickets.
-     *
-     * The value of this field can be:
-     * - \p NULL in a newly initialized or reset context.
-     * - A heap-allocated copy of the last value passed to
-     *   mbedtls_ssl_set_hostname(), if the last call had a non-null
-     *  \p hostname argument.
-     * - A special value to indicate that mbedtls_ssl_set_hostname()
-     *   was called with \p NULL (as opposed to never having been called).
-     *   See `mbedtls_ssl_get_hostname_pointer()` in `ssl_tls.c`.
-     *
-     * If this field contains the value \p NULL and the configuration option
-     * #MBEDTLS_SSL_CLI_ALLOW_WEAK_CERTIFICATE_VERIFICATION_WITHOUT_HOSTNAME
-     * is unset, on a TLS client, attempting to verify a server certificate
-     * results in the error
-     * #MBEDTLS_ERR_SSL_CERTIFICATE_VERIFICATION_WITHOUT_HOSTNAME.
-     *
-     * If this field contains the special value described above, or if
-     * the value is \p NULL and the configuration option
-     * #MBEDTLS_SSL_CLI_ALLOW_WEAK_CERTIFICATE_VERIFICATION_WITHOUT_HOSTNAME
-     * is set, then the peer name verification is skipped, which may be
-     * insecure, especially on a client. Furthermore, on a client, the
-     * server_name extension is not sent, and the server name is ignored
-     * in TLS 1.3 session resumption using tickets.
-     */
-    char *MBEDTLS_PRIVATE(hostname);
+    char *MBEDTLS_PRIVATE(hostname);             /*!< expected peer CN for verification
+                                                    (and SNI if available)                 */
 #endif /* MBEDTLS_X509_CRT_PARSE_C */

 #if defined(MBEDTLS_SSL_ALPN)
@@ -2073,22 +1893,24 @@ void mbedtls_ssl_init(mbedtls_ssl_context *ssl);
  *                 Calling mbedtls_ssl_setup again is not supported, even
  *                 if no session is active.
  *
- * \warning        After setting up a client context, if certificate-based
+ * \note           The PSA crypto subsystem must have been initialized by
+ *                 calling psa_crypto_init() before calling this function.
+ *
+ * \note           After setting up a client context, if certificate-based
  *                 authentication is enabled, you should call
  *                 mbedtls_ssl_set_hostname() to specifiy the expected
- *                 name of the server. Without this, in most scenarios,
- *                 the TLS connection is insecure. See
+ *                 name of the server. Otherwise, if server authentication
+ *                 is required (which is the case by default) and the
+ *                 selected key exchange involves a certificate (i.e. is not
+ *                 based on a pre-shared key), the certificate authentication
+ *                 will fail. See
  *                 #MBEDTLS_ERR_SSL_CERTIFICATE_VERIFICATION_WITHOUT_HOSTNAME
  *                 for more information.
  *
- * \note           If #MBEDTLS_USE_PSA_CRYPTO is enabled, the PSA crypto
- *                 subsystem must have been initialized by calling
- *                 psa_crypto_init() before calling this function.
- *
  * \param ssl      SSL context
  * \param conf     SSL configuration to use
  *
- * \return         0 if successful, or MBEDTLS_ERR_SSL_ALLOC_FAILED if
+ * \return         0 if successful, or #PSA_ERROR_INSUFFICIENT_MEMORY if
  *                 memory allocation failed
  */
 int mbedtls_ssl_setup(mbedtls_ssl_context *ssl,
@@ -2100,7 +1922,7 @@ int mbedtls_ssl_setup(mbedtls_ssl_context *ssl,
  *                 pointers and data.
  *
  * \param ssl      SSL context
- * \return         0 if successful, or MBEDTLS_ERR_SSL_ALLOC_FAILED or
+ * \return         0 if successful, or #PSA_ERROR_INSUFFICIENT_MEMORY or
                    MBEDTLS_ERR_SSL_HW_ACCEL_FAILED
  */
 int mbedtls_ssl_session_reset(mbedtls_ssl_context *ssl);
@@ -2252,21 +2074,6 @@ void mbedtls_ssl_conf_verify(mbedtls_ssl_config *conf,
                              void *p_vrfy);
 #endif /* MBEDTLS_X509_CRT_PARSE_C */

-/**
- * \brief          Set the random number generator callback
- *
- * \note           The callback with its parameter must remain valid as
- *                 long as there is an SSL context that uses the
- *                 SSL configuration.
- *
- * \param conf     SSL configuration
- * \param f_rng    RNG function (mandatory)
- * \param p_rng    RNG parameter
- */
-void mbedtls_ssl_conf_rng(mbedtls_ssl_config *conf,
-                          mbedtls_f_rng_t *f_rng,
-                          void *p_rng);
-
 /**
  * \brief          Set the debug callback
  *
@@ -2770,14 +2577,14 @@ void mbedtls_ssl_conf_session_tickets_cb(mbedtls_ssl_config *conf,
  *                              milliseconds.
  *
  * \return         0 on success,
- *                 MBEDTLS_ERR_SSL_BAD_INPUT_DATA if an input is not valid.
+ *                 #PSA_ERROR_INVALID_ARGUMENT if an input is not valid.
  */
 static inline int mbedtls_ssl_session_get_ticket_creation_time(
     mbedtls_ssl_session *session, mbedtls_ms_time_t *ticket_creation_time)
 {
     if (session == NULL || ticket_creation_time == NULL ||
         session->MBEDTLS_PRIVATE(endpoint) != MBEDTLS_SSL_IS_SERVER) {
-        return MBEDTLS_ERR_SSL_BAD_INPUT_DATA;
+        return PSA_ERROR_INVALID_ARGUMENT;
     }

     *ticket_creation_time = session->MBEDTLS_PRIVATE(ticket_creation_time);
@@ -2983,17 +2790,10 @@ static inline uintptr_t mbedtls_ssl_get_user_data_n(
  *                          external processor does not support any signature
  *                          operation; in this case the private key object
  *                          associated with the certificate will be used.
- * \param f_async_decrypt   Callback to start a decryption operation. See
- *                          the description of ::mbedtls_ssl_async_decrypt_t
- *                          for more information. This may be \c NULL if the
- *                          external processor does not support any decryption
- *                          operation; in this case the private key object
- *                          associated with the certificate will be used.
  * \param f_async_resume    Callback to resume an asynchronous operation. See
  *                          the description of ::mbedtls_ssl_async_resume_t
  *                          for more information. This may not be \c NULL unless
- *                          \p f_async_sign and \p f_async_decrypt are both
- *                          \c NULL.
+ *                          \p f_async_sign is \c NULL.
  * \param f_async_cancel    Callback to cancel an asynchronous operation. See
  *                          the description of ::mbedtls_ssl_async_cancel_t
  *                          for more information. This may be \c NULL if
@@ -3005,7 +2805,6 @@ static inline uintptr_t mbedtls_ssl_get_user_data_n(
  */
 void mbedtls_ssl_conf_async_private_cb(mbedtls_ssl_config *conf,
                                        mbedtls_ssl_async_sign_t *f_async_sign,
-                                       mbedtls_ssl_async_decrypt_t *f_async_decrypt,
                                        mbedtls_ssl_async_resume_t *f_async_resume,
                                        mbedtls_ssl_async_cancel_t *f_async_cancel,
                                        void *config_data);
@@ -3136,8 +2935,8 @@ void mbedtls_ssl_conf_dtls_cookies(mbedtls_ssl_config *conf,
  * \note           An internal copy is made, so the info buffer can be reused.
  *
  * \return         0 on success,
- *                 MBEDTLS_ERR_SSL_BAD_INPUT_DATA if used on client,
- *                 MBEDTLS_ERR_SSL_ALLOC_FAILED if out of memory.
+ *                 #PSA_ERROR_INVALID_ARGUMENT if used on client,
+ *                 #PSA_ERROR_INSUFFICIENT_MEMORY if out of memory.
  */
 int mbedtls_ssl_set_client_transport_id(mbedtls_ssl_context *ssl,
                                         const unsigned char *info,
@@ -3374,8 +3173,8 @@ int mbedtls_ssl_set_session(mbedtls_ssl_context *ssl, const mbedtls_ssl_session
  * \param len      The size of the serialized data in bytes.
  *
  * \return         \c 0 if successful.
- * \return         #MBEDTLS_ERR_SSL_ALLOC_FAILED if memory allocation failed.
- * \return         #MBEDTLS_ERR_SSL_BAD_INPUT_DATA if input data is invalid.
+ * \return         #PSA_ERROR_INSUFFICIENT_MEMORY if memory allocation failed.
+ * \return         #PSA_ERROR_INVALID_ARGUMENT if input data is invalid.
  * \return         #MBEDTLS_ERR_SSL_VERSION_MISMATCH if the serialized data
  *                 was generated in a different version or configuration of
  *                 Mbed TLS.
@@ -3414,7 +3213,7 @@ int mbedtls_ssl_session_load(mbedtls_ssl_session *session,
  *                 tickets.
  *
  * \return         \c 0 if successful.
- * \return         #MBEDTLS_ERR_SSL_BUFFER_TOO_SMALL if \p buf is too small.
+ * \return         #PSA_ERROR_BUFFER_TOO_SMALL if \p buf is too small.
  * \return         #MBEDTLS_ERR_SSL_FEATURE_UNAVAILABLE if the
  *                 MBEDTLS_SSL_SESSION_TICKETS configuration option is disabled
  *                 and the session is a TLS 1.3 session.
@@ -3547,7 +3346,7 @@ void mbedtls_ssl_conf_tls13_key_exchange_modes(mbedtls_ssl_config *conf,
  *                      record headers.
  *
  * \return              \c 0 on success.
- * \return              #MBEDTLS_ERR_SSL_BAD_INPUT_DATA if \p len
+ * \return              #PSA_ERROR_INVALID_ARGUMENT if \p len
  *                      is too large.
  */
 int mbedtls_ssl_conf_cid(mbedtls_ssl_config *conf, size_t len,
@@ -3560,7 +3359,7 @@ int mbedtls_ssl_conf_cid(mbedtls_ssl_config *conf, size_t len,
  *
  * \note           The restrictions are enforced for all certificates in the
  *                 chain. However, signatures in the handshake are not covered
- *                 by this setting but by \b mbedtls_ssl_conf_sig_hashes().
+ *                 by this setting but by \b mbedtls_ssl_conf_sig_algs().
  *
  * \param conf     SSL configuration
  * \param profile  Profile to use
@@ -3694,7 +3493,7 @@ void mbedtls_ssl_conf_ca_cb(mbedtls_ssl_config *conf,
  * \param own_cert own public certificate chain
  * \param pk_key   own private key
  *
- * \return         0 on success or MBEDTLS_ERR_SSL_ALLOC_FAILED
+ * \return         0 on success or #PSA_ERROR_INSUFFICIENT_MEMORY
  */
 int mbedtls_ssl_conf_own_cert(mbedtls_ssl_config *conf,
                               mbedtls_x509_crt *own_cert,
@@ -3738,7 +3537,6 @@ int mbedtls_ssl_conf_psk(mbedtls_ssl_config *conf,
                          const unsigned char *psk, size_t psk_len,
                          const unsigned char *psk_identity, size_t psk_identity_len);

-#if defined(MBEDTLS_USE_PSA_CRYPTO)
 /**
  * \brief          Configure one or more opaque pre-shared keys (PSKs) and
  *                 their identities to be used in PSK-based ciphersuites.
@@ -3780,7 +3578,6 @@ int mbedtls_ssl_conf_psk_opaque(mbedtls_ssl_config *conf,
                                 mbedtls_svc_key_id_t psk,
                                 const unsigned char *psk_identity,
                                 size_t psk_identity_len);
-#endif /* MBEDTLS_USE_PSA_CRYPTO */

 /**
  * \brief          Set the pre-shared Key (PSK) for the current handshake.
@@ -3801,7 +3598,6 @@ int mbedtls_ssl_conf_psk_opaque(mbedtls_ssl_config *conf,
 int mbedtls_ssl_set_hs_psk(mbedtls_ssl_context *ssl,
                            const unsigned char *psk, size_t psk_len);

-#if defined(MBEDTLS_USE_PSA_CRYPTO)
 /**
  * \brief          Set an opaque pre-shared Key (PSK) for the current handshake.
  *
@@ -3824,7 +3620,6 @@ int mbedtls_ssl_set_hs_psk(mbedtls_ssl_context *ssl,
  */
 int mbedtls_ssl_set_hs_psk_opaque(mbedtls_ssl_context *ssl,
                                   mbedtls_svc_key_id_t psk);
-#endif /* MBEDTLS_USE_PSA_CRYPTO */

 #if defined(MBEDTLS_SSL_SRV_C)
 /**
@@ -3872,97 +3667,6 @@ void mbedtls_ssl_conf_psk_cb(mbedtls_ssl_config *conf,
 #endif /* MBEDTLS_SSL_SRV_C */
 #endif /* MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED */

-#if defined(MBEDTLS_DHM_C) && defined(MBEDTLS_SSL_SRV_C)
-/**
- * \brief          Set the Diffie-Hellman public P and G values
- *                 from big-endian binary presentations.
- *                 (Default values: MBEDTLS_DHM_RFC3526_MODP_2048_[PG]_BIN)
- *
- * \param conf     SSL configuration
- * \param dhm_P    Diffie-Hellman-Merkle modulus in big-endian binary form
- * \param P_len    Length of DHM modulus
- * \param dhm_G    Diffie-Hellman-Merkle generator in big-endian binary form
- * \param G_len    Length of DHM generator
- *
- * \return         0 if successful
- */
-int mbedtls_ssl_conf_dh_param_bin(mbedtls_ssl_config *conf,
-                                  const unsigned char *dhm_P, size_t P_len,
-                                  const unsigned char *dhm_G,  size_t G_len);
-
-/**
- * \brief          Set the Diffie-Hellman public P and G values,
- *                 read from existing context (server-side only)
- *
- * \param conf     SSL configuration
- * \param dhm_ctx  Diffie-Hellman-Merkle context
- *
- * \return         0 if successful
- */
-int mbedtls_ssl_conf_dh_param_ctx(mbedtls_ssl_config *conf, mbedtls_dhm_context *dhm_ctx);
-#endif /* MBEDTLS_DHM_C && defined(MBEDTLS_SSL_SRV_C) */
-
-#if defined(MBEDTLS_DHM_C) && defined(MBEDTLS_SSL_CLI_C)
-/**
- * \brief          Set the minimum length for Diffie-Hellman parameters.
- *                 (Client-side only.)
- *                 (Default: 1024 bits.)
- *
- * \param conf     SSL configuration
- * \param bitlen   Minimum bit length of the DHM prime
- */
-void mbedtls_ssl_conf_dhm_min_bitlen(mbedtls_ssl_config *conf,
-                                     unsigned int bitlen);
-#endif /* MBEDTLS_DHM_C && MBEDTLS_SSL_CLI_C */
-
-#if defined(MBEDTLS_ECP_C)
-#if !defined(MBEDTLS_DEPRECATED_REMOVED)
-/**
- * \brief          Set the allowed curves in order of preference.
- *
- *                 On server: this only affects selection of the ECDHE curve;
- *                 the curves used for ECDH and ECDSA are determined by the
- *                 list of available certificates instead.
- *
- *                 On client: this affects the list of curves offered for any
- *                 use. The server can override our preference order.
- *
- *                 Both sides: limits the set of curves accepted for use in
- *                 ECDHE and in the peer's end-entity certificate.
- *
- * \deprecated     Superseded by mbedtls_ssl_conf_groups().
- *
- * \note           This has no influence on which curves are allowed inside the
- *                 certificate chains, see \c mbedtls_ssl_conf_cert_profile()
- *                 for that. For the end-entity certificate however, the key
- *                 will be accepted only if it is allowed both by this list
- *                 and by the cert profile.
- *
- * \note           This list should be ordered by decreasing preference
- *                 (preferred curve first).
- *
- * \note           The default list is the same set of curves that
- *                 #mbedtls_x509_crt_profile_default allows, plus
- *                 ECDHE-only curves selected according to the same criteria.
- *                 The order favors curves with the lowest resource usage.
- *
- * \note           New minor versions of Mbed TLS may extend this list,
- *                 for example if new curves are added to the library.
- *                 New minor versions of Mbed TLS will not remove items
- *                 from this list unless serious security concerns require it.
- *                 New minor versions of Mbed TLS may change the order in
- *                 keeping with the general principle of favoring the lowest
- *                 resource usage.
- *
- * \param conf     SSL configuration
- * \param curves   Ordered list of allowed curves,
- *                 terminated by MBEDTLS_ECP_DP_NONE.
- */
-void MBEDTLS_DEPRECATED mbedtls_ssl_conf_curves(mbedtls_ssl_config *conf,
-                                                const mbedtls_ecp_group_id *curves);
-#endif /* MBEDTLS_DEPRECATED_REMOVED */
-#endif /* MBEDTLS_ECP_C */
-
 /**
  * \brief          Set the allowed groups in order of preference.
  *
@@ -3974,13 +3678,6 @@ void MBEDTLS_DEPRECATED mbedtls_ssl_conf_curves(mbedtls_ssl_config *conf,
  *                 Both sides: limits the set of groups accepted for use in
  *                 key sharing.
  *
- * \note           This function replaces the deprecated mbedtls_ssl_conf_curves(),
- *                 which only allows ECP curves to be configured.
- *
- * \note           The most recent invocation of either mbedtls_ssl_conf_curves()
- *                 or mbedtls_ssl_conf_groups() nullifies all previous invocations
- *                 of both.
- *
  * \note           This list should be ordered by decreasing preference
  *                 (preferred group first).
  *
@@ -4004,41 +3701,6 @@ void mbedtls_ssl_conf_groups(mbedtls_ssl_config *conf,
                              const uint16_t *groups);

 #if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED)
-#if !defined(MBEDTLS_DEPRECATED_REMOVED) && defined(MBEDTLS_SSL_PROTO_TLS1_2)
-/**
- * \brief          Set the allowed hashes for signatures during the handshake.
- *
- * \note           This only affects which hashes are offered and can be used
- *                 for signatures during the handshake. Hashes for message
- *                 authentication and the TLS PRF are controlled by the
- *                 ciphersuite, see \c mbedtls_ssl_conf_ciphersuites(). Hashes
- *                 used for certificate signature are controlled by the
- *                 verification profile, see \c mbedtls_ssl_conf_cert_profile().
- *
- * \deprecated     Superseded by mbedtls_ssl_conf_sig_algs().
- *
- * \note           This list should be ordered by decreasing preference
- *                 (preferred hash first).
- *
- * \note           By default, all supported hashes whose length is at least
- *                 256 bits are allowed. This is the same set as the default
- *                 for certificate verification
- *                 (#mbedtls_x509_crt_profile_default).
- *                 The preference order is currently unspecified and may
- *                 change in future versions.
- *
- * \note           New minor versions of Mbed TLS may extend this list,
- *                 for example if new curves are added to the library.
- *                 New minor versions of Mbed TLS will not remove items
- *                 from this list unless serious security concerns require it.
- *
- * \param conf     SSL configuration
- * \param hashes   Ordered list of allowed signature hashes,
- *                 terminated by \c MBEDTLS_MD_NONE.
- */
-void MBEDTLS_DEPRECATED mbedtls_ssl_conf_sig_hashes(mbedtls_ssl_config *conf,
-                                                    const int *hashes);
-#endif /* !MBEDTLS_DEPRECATED_REMOVED && MBEDTLS_SSL_PROTO_TLS1_2 */

 /**
  * \brief          Configure allowed signature algorithms for use in TLS
@@ -4080,8 +3742,8 @@ void mbedtls_ssl_conf_sig_algs(mbedtls_ssl_config *conf,
  *                 #MBEDTLS_ERR_SSL_CERTIFICATE_VERIFICATION_WITHOUT_HOSTNAME
  *                 for more details.
  *
- * \return         0 if successful, #MBEDTLS_ERR_SSL_ALLOC_FAILED on
- *                 allocation failure, #MBEDTLS_ERR_SSL_BAD_INPUT_DATA on
+ * \return         0 if successful, #PSA_ERROR_INSUFFICIENT_MEMORY on
+ *                 allocation failure, #PSA_ERROR_INVALID_ARGUMENT on
  *                 too long input hostname.
  *
  *                 Hostname set to the one provided on success (cleared
@@ -4141,7 +3803,7 @@ const unsigned char *mbedtls_ssl_get_hs_sni(mbedtls_ssl_context *ssl,
  * \param own_cert own public certificate chain
  * \param pk_key   own private key
  *
- * \return         0 on success or MBEDTLS_ERR_SSL_ALLOC_FAILED
+ * \return         0 on success or #PSA_ERROR_INSUFFICIENT_MEMORY
  */
 int mbedtls_ssl_set_hs_own_cert(mbedtls_ssl_context *ssl,
                                 mbedtls_x509_crt *own_cert,
@@ -4270,9 +3932,10 @@ int mbedtls_ssl_set_hs_ecjpake_password_opaque(mbedtls_ssl_context *ssl,
  *                 the lifetime of the table must be at least as long as the
  *                 lifetime of the SSL configuration structure.
  *
- * \return         0 on success, or MBEDTLS_ERR_SSL_BAD_INPUT_DATA.
+ * \return         0 on success, or #PSA_ERROR_INVALID_ARGUMENT.
  */
-int mbedtls_ssl_conf_alpn_protocols(mbedtls_ssl_config *conf, const char **protos);
+int mbedtls_ssl_conf_alpn_protocols(mbedtls_ssl_config *conf,
+                                    const char *const *protos);

 /**
  * \brief          Get the name of the negotiated Application Layer Protocol.
@@ -4336,7 +3999,7 @@ void mbedtls_ssl_conf_srtp_mki_value_supported(mbedtls_ssl_config *conf,
  *                          (excluding the terminating MBEDTLS_TLS_SRTP_UNSET).
  *
  * \return                  0 on success
- * \return                  #MBEDTLS_ERR_SSL_BAD_INPUT_DATA when the list of
+ * \return                  #PSA_ERROR_INVALID_ARGUMENT when the list of
  *                          protection profiles is incorrect.
  */
 int mbedtls_ssl_conf_dtls_srtp_protection_profiles
@@ -4356,7 +4019,7 @@ int mbedtls_ssl_conf_dtls_srtp_protection_profiles
  *                         is ignored.
  *
  * \return                 0 on success
- * \return                 #MBEDTLS_ERR_SSL_BAD_INPUT_DATA
+ * \return                 #PSA_ERROR_INVALID_ARGUMENT
  * \return                 #MBEDTLS_ERR_SSL_FEATURE_UNAVAILABLE
  */
 int mbedtls_ssl_dtls_srtp_set_mki_value(mbedtls_ssl_context *ssl,
@@ -4384,28 +4047,6 @@ void mbedtls_ssl_get_dtls_srtp_negotiation_result(const mbedtls_ssl_context *ssl
                                                   mbedtls_dtls_srtp_info *dtls_srtp_info);
 #endif /* MBEDTLS_SSL_DTLS_SRTP */

-#if !defined(MBEDTLS_DEPRECATED_REMOVED)
-/**
- * \brief          Set the maximum supported version sent from the client side
- *                 and/or accepted at the server side.
- *
- *                 See also the documentation of mbedtls_ssl_conf_min_version().
- *
- * \note           This ignores ciphersuites from higher versions.
- *
- * \note           This function is deprecated and has been replaced by
- *                 \c mbedtls_ssl_conf_max_tls_version().
- *
- * \param conf     SSL configuration
- * \param major    Major version number (#MBEDTLS_SSL_MAJOR_VERSION_3)
- * \param minor    Minor version number
- *                 (#MBEDTLS_SSL_MINOR_VERSION_3 for (D)TLS 1.2,
- *                 #MBEDTLS_SSL_MINOR_VERSION_4 for TLS 1.3)
- */
-void MBEDTLS_DEPRECATED mbedtls_ssl_conf_max_version(mbedtls_ssl_config *conf, int major,
-                                                     int minor);
-#endif /* MBEDTLS_DEPRECATED_REMOVED */
-
 /**
  * \brief          Set the maximum supported version sent from the client side
  *                 and/or accepted at the server side.
@@ -4424,45 +4065,6 @@ static inline void mbedtls_ssl_conf_max_tls_version(mbedtls_ssl_config *conf,
     conf->MBEDTLS_PRIVATE(max_tls_version) = tls_version;
 }

-#if !defined(MBEDTLS_DEPRECATED_REMOVED)
-/**
- * \brief          Set the minimum accepted SSL/TLS protocol version
- *
- * \note           By default, all supported versions are accepted.
- *                 Future versions of the library may disable older
- *                 protocol versions by default if they become deprecated.
- *
- * \note           The following versions are supported (if enabled at
- *                 compile time):
- *                 - (D)TLS 1.2: \p major = #MBEDTLS_SSL_MAJOR_VERSION_3,
- *                   \p minor = #MBEDTLS_SSL_MINOR_VERSION_3
- *                 - TLS 1.3: \p major = #MBEDTLS_SSL_MAJOR_VERSION_3,
- *                   \p minor = #MBEDTLS_SSL_MINOR_VERSION_4
- *
- *                 Note that the numbers in the constant names are the
- *                 TLS internal protocol numbers, and the minor versions
- *                 differ by one from the human-readable versions!
- *
- * \note           Input outside of the SSL_MAX_XXXXX_VERSION and
- *                 SSL_MIN_XXXXX_VERSION range is ignored.
- *
- * \note           After the handshake, you can call
- *                 mbedtls_ssl_get_version_number() to see what version was
- *                 negotiated.
- *
- * \note           This function is deprecated and has been replaced by
- *                 \c mbedtls_ssl_conf_min_tls_version().
- *
- * \param conf     SSL configuration
- * \param major    Major version number (#MBEDTLS_SSL_MAJOR_VERSION_3)
- * \param minor    Minor version number
- *                 (#MBEDTLS_SSL_MINOR_VERSION_3 for (D)TLS 1.2,
- *                 #MBEDTLS_SSL_MINOR_VERSION_4 for TLS 1.3)
- */
-void MBEDTLS_DEPRECATED mbedtls_ssl_conf_min_version(mbedtls_ssl_config *conf, int major,
-                                                     int minor);
-#endif /* MBEDTLS_DEPRECATED_REMOVED */
-
 /**
  * \brief          Set the minimum supported version sent from the client side
  *                 and/or accepted at the server side.
@@ -4562,7 +4164,7 @@ void mbedtls_ssl_conf_cert_req_ca_list(mbedtls_ssl_config *conf,
  *                 MBEDTLS_SSL_MAX_FRAG_LEN_512,  MBEDTLS_SSL_MAX_FRAG_LEN_1024,
  *                 MBEDTLS_SSL_MAX_FRAG_LEN_2048, MBEDTLS_SSL_MAX_FRAG_LEN_4096)
  *
- * \return         0 if successful or MBEDTLS_ERR_SSL_BAD_INPUT_DATA
+ * \return         0 if successful or #PSA_ERROR_INVALID_ARGUMENT
  */
 int mbedtls_ssl_conf_max_frag_len(mbedtls_ssl_config *conf, unsigned char mfl_code);
 #endif /* MBEDTLS_SSL_MAX_FRAGMENT_LENGTH */
@@ -4580,50 +4182,21 @@ int mbedtls_ssl_conf_max_frag_len(mbedtls_ssl_config *conf, unsigned char mfl_co
 void mbedtls_ssl_conf_preference_order(mbedtls_ssl_config *conf, int order);
 #endif /* MBEDTLS_SSL_SRV_C */

-#if defined(MBEDTLS_SSL_SESSION_TICKETS) && defined(MBEDTLS_SSL_CLI_C)
+#if defined(MBEDTLS_SSL_SESSION_TICKETS) && \
+    defined(MBEDTLS_SSL_CLI_C)
 /**
- * \brief          Enable / Disable TLS 1.2 session tickets (client only,
- *                 TLS 1.2 only). Enabled by default.
+ * \brief          Enable / Disable session tickets (client only).
+ *                 (Default: MBEDTLS_SSL_SESSION_TICKETS_ENABLED.)
  *
  * \note           On server, use \c mbedtls_ssl_conf_session_tickets_cb().
  *
  * \param conf     SSL configuration
- * \param use_tickets   Enable or disable (#MBEDTLS_SSL_SESSION_TICKETS_ENABLED or
- *                                         #MBEDTLS_SSL_SESSION_TICKETS_DISABLED)
+ * \param use_tickets   Enable or disable (MBEDTLS_SSL_SESSION_TICKETS_ENABLED or
+ *                                         MBEDTLS_SSL_SESSION_TICKETS_DISABLED)
  */
 void mbedtls_ssl_conf_session_tickets(mbedtls_ssl_config *conf, int use_tickets);
-
-#if defined(MBEDTLS_SSL_PROTO_TLS1_3)
-/**
- * \brief Enable / Disable handling of TLS 1.3 NewSessionTicket messages
- *        (client only, TLS 1.3 only).
- *
- *        The handling of TLS 1.3 NewSessionTicket messages is disabled by
- *        default.
- *
- *        In TLS 1.3, servers may send a NewSessionTicket message at any time,
- *        and may send multiple NewSessionTicket messages. By default, TLS 1.3
- *        clients ignore NewSessionTicket messages.
- *
- *        To support session tickets in TLS 1.3 clients, call this function
- *        with #MBEDTLS_SSL_TLS1_3_SIGNAL_NEW_SESSION_TICKETS_ENABLED. When
- *        this is enabled, when a client receives a NewSessionTicket message,
- *        the next call to a message processing functions (notably
- *        mbedtls_ssl_handshake() and mbedtls_ssl_read()) will return
- *        #MBEDTLS_ERR_SSL_RECEIVED_NEW_SESSION_TICKET. The client should then
- *        call mbedtls_ssl_get_session() to retrieve the session ticket before
- *        calling the same message processing function again.
- *
- * \param conf  SSL configuration
- * \param signal_new_session_tickets Enable or disable
- *                                   (#MBEDTLS_SSL_TLS1_3_SIGNAL_NEW_SESSION_TICKETS_ENABLED or
- *                                    #MBEDTLS_SSL_TLS1_3_SIGNAL_NEW_SESSION_TICKETS_DISABLED)
- */
-void mbedtls_ssl_conf_tls13_enable_signal_new_session_tickets(
-    mbedtls_ssl_config *conf, int signal_new_session_tickets);
-
-#endif /* MBEDTLS_SSL_PROTO_TLS1_3 */
-#endif /* MBEDTLS_SSL_SESSION_TICKETS && MBEDTLS_SSL_CLI_C */
+#endif /* MBEDTLS_SSL_SESSION_TICKETS &&
+          MBEDTLS_SSL_CLI_C */

 #if defined(MBEDTLS_SSL_SESSION_TICKETS) && \
     defined(MBEDTLS_SSL_SRV_C) && \
@@ -5031,10 +4604,6 @@ int mbedtls_ssl_get_session(const mbedtls_ssl_context *ssl,
  * \return         #MBEDTLS_ERR_SSL_HELLO_VERIFY_REQUIRED if DTLS is in use
  *                 and the client did not demonstrate reachability yet - in
  *                 this case you must stop using the context (see below).
- * \return         #MBEDTLS_ERR_SSL_RECEIVED_NEW_SESSION_TICKET if a TLS 1.3
- *                 NewSessionTicket message has been received. See the
- *                 documentation of mbedtls_ssl_read() for more information
- *                 about this error code.
  * \return         #MBEDTLS_ERR_SSL_RECEIVED_EARLY_DATA if early data, as
  *                 defined in RFC 8446 (TLS 1.3 specification), has been
  *                 received as part of the handshake. This is server specific
@@ -5051,7 +4620,6 @@ int mbedtls_ssl_get_session(const mbedtls_ssl_context *ssl,
  *                 #MBEDTLS_ERR_SSL_WANT_WRITE,
  *                 #MBEDTLS_ERR_SSL_ASYNC_IN_PROGRESS or
  *                 #MBEDTLS_ERR_SSL_CRYPTO_IN_PROGRESS or
- *                 #MBEDTLS_ERR_SSL_RECEIVED_NEW_SESSION_TICKET or
  *                 #MBEDTLS_ERR_SSL_RECEIVED_EARLY_DATA,
  *                 you must stop using the SSL context for reading or writing,
  *                 and either free it or call \c mbedtls_ssl_session_reset()
@@ -5072,14 +4640,6 @@ int mbedtls_ssl_get_session(const mbedtls_ssl_context *ssl,
  *                 currently being processed might or might not contain further
  *                 DTLS records.
  *
- * \note           If #MBEDTLS_USE_PSA_CRYPTO is enabled, the PSA crypto
- *                 subsystem must have been initialized by calling
- *                 psa_crypto_init() before calling this function.
- *                 Otherwise, the handshake may call psa_crypto_init()
- *                 if a negotiation involving TLS 1.3 takes place (this may
- *                 be the case even if TLS 1.3 is offered but eventually
- *                 not selected).
- *
  * \note           In TLS, reception of fragmented handshake messages is
  *                 supported with some limitations (those limitations do
  *                 not apply to DTLS, where defragmentation is fully
@@ -5097,6 +4657,9 @@ int mbedtls_ssl_get_session(const mbedtls_ssl_context *ssl,
  *                   the fragments of a handshake message. (This is permitted
  *                   in TLS 1.2 but not in TLS 1.3, but Mbed TLS rejects it
  *                   even in TLS 1.2.)
+ *
+ * \note           The PSA crypto subsystem must have been initialized by
+ *                 calling psa_crypto_init() before calling this function.
  */
 int mbedtls_ssl_handshake(mbedtls_ssl_context *ssl);

@@ -5144,7 +4707,6 @@ static inline int mbedtls_ssl_is_handshake_over(mbedtls_ssl_context *ssl)
  *                 #MBEDTLS_ERR_SSL_WANT_READ, #MBEDTLS_ERR_SSL_WANT_WRITE,
  *                 #MBEDTLS_ERR_SSL_ASYNC_IN_PROGRESS,
  *                 #MBEDTLS_ERR_SSL_CRYPTO_IN_PROGRESS or
- *                 #MBEDTLS_ERR_SSL_RECEIVED_NEW_SESSION_TICKET or
  *                 #MBEDTLS_ERR_SSL_RECEIVED_EARLY_DATA, you must stop using
  *                 the SSL context for reading or writing, and either free it
  *                 or call \c mbedtls_ssl_session_reset() on it before
@@ -5213,17 +4775,6 @@ int mbedtls_ssl_renegotiate(mbedtls_ssl_context *ssl);
  * \return         #MBEDTLS_ERR_SSL_CLIENT_RECONNECT if we're at the server
  *                 side of a DTLS connection and the client is initiating a
  *                 new connection using the same source port. See below.
- * \return         #MBEDTLS_ERR_SSL_RECEIVED_NEW_SESSION_TICKET if a TLS 1.3
- *                 NewSessionTicket message has been received.
- *                 This error code is only returned on the client side. It is
- *                 only returned if handling of TLS 1.3 NewSessionTicket
- *                 messages has been enabled through
- *                 mbedtls_ssl_conf_tls13_enable_signal_new_session_tickets().
- *                 This error code indicates that a TLS 1.3 NewSessionTicket
- *                 message has been received and parsed successfully by the
- *                 client. The ticket data can be retrieved from the SSL
- *                 context by calling mbedtls_ssl_get_session(). It remains
- *                 available until the next call to mbedtls_ssl_read().
  * \return         #MBEDTLS_ERR_SSL_RECEIVED_EARLY_DATA if early data, as
  *                 defined in RFC 8446 (TLS 1.3 specification), has been
  *                 received as part of the handshake. This is server specific
@@ -5241,7 +4792,6 @@ int mbedtls_ssl_renegotiate(mbedtls_ssl_context *ssl);
  *                 #MBEDTLS_ERR_SSL_ASYNC_IN_PROGRESS,
  *                 #MBEDTLS_ERR_SSL_CRYPTO_IN_PROGRESS,
  *                 #MBEDTLS_ERR_SSL_CLIENT_RECONNECT or
- *                 #MBEDTLS_ERR_SSL_RECEIVED_NEW_SESSION_TICKET or
  *                 #MBEDTLS_ERR_SSL_RECEIVED_EARLY_DATA,
  *                 you must stop using the SSL context for reading or writing,
  *                 and either free it or call \c mbedtls_ssl_session_reset()
@@ -5307,10 +4857,6 @@ int mbedtls_ssl_read(mbedtls_ssl_context *ssl, unsigned char *buf, size_t len);
  *                 operation is in progress (see mbedtls_ecp_set_max_ops()) -
  *                 in this case you must call this function again to complete
  *                 the handshake when you're done attending other tasks.
- * \return         #MBEDTLS_ERR_SSL_RECEIVED_NEW_SESSION_TICKET if a TLS 1.3
- *                 NewSessionTicket message has been received. See the
- *                 documentation of mbedtls_ssl_read() for more information
- *                 about this error code.
  * \return         #MBEDTLS_ERR_SSL_RECEIVED_EARLY_DATA if early data, as
  *                 defined in RFC 8446 (TLS 1.3 specification), has been
  *                 received as part of the handshake. This is server specific
@@ -5327,7 +4873,6 @@ int mbedtls_ssl_read(mbedtls_ssl_context *ssl, unsigned char *buf, size_t len);
  *                 #MBEDTLS_ERR_SSL_WANT_WRITE,
  *                 #MBEDTLS_ERR_SSL_ASYNC_IN_PROGRESS,
  *                 #MBEDTLS_ERR_SSL_CRYPTO_IN_PROGRESS or
- *                 #MBEDTLS_ERR_SSL_RECEIVED_NEW_SESSION_TICKET or
  *                 #MBEDTLS_ERR_SSL_RECEIVED_EARLY_DATA,
  *                 you must stop using the SSL context for reading or writing,
  *                 and either free it or call \c mbedtls_ssl_session_reset()
@@ -5345,7 +4890,7 @@ int mbedtls_ssl_read(mbedtls_ssl_context *ssl, unsigned char *buf, size_t len);
  *                 fragment length (either the built-in limit or the one set
  *                 or negotiated with the peer), then:
  *                 - with TLS, less bytes than requested are written.
- *                 - with DTLS, MBEDTLS_ERR_SSL_BAD_INPUT_DATA is returned.
+ *                 - with DTLS, #PSA_ERROR_INVALID_ARGUMENT is returned.
  *                 \c mbedtls_ssl_get_max_out_record_payload() may be used to
  *                 query the active maximum fragment length.
  *
@@ -5429,7 +4974,7 @@ int mbedtls_ssl_close_notify(mbedtls_ssl_context *ssl);
  * \param len      maximum number of bytes to read
  *
  * \return         The (positive) number of bytes read if successful.
- * \return         #MBEDTLS_ERR_SSL_BAD_INPUT_DATA if input data is invalid.
+ * \return         #PSA_ERROR_INVALID_ARGUMENT if input data is invalid.
  * \return         #MBEDTLS_ERR_SSL_CANNOT_READ_EARLY_DATA if it is not
  *                 possible to read early data for the SSL context \p ssl. Note
  *                 that this function is intended to be called for an SSL
@@ -5535,10 +5080,10 @@ int mbedtls_ssl_write_early_data(mbedtls_ssl_context *ssl,
  *
  * \param ssl      The SSL context to query
  *
- * \return         #MBEDTLS_ERR_SSL_BAD_INPUT_DATA if this function is called
+ * \return         #PSA_ERROR_INVALID_ARGUMENT if this function is called
  *                 from the server-side.
  *
- * \return         #MBEDTLS_ERR_SSL_BAD_INPUT_DATA if this function is called
+ * \return         #PSA_ERROR_INVALID_ARGUMENT if this function is called
  *                 prior to completion of the handshake.
  *
  * \return         #MBEDTLS_SSL_EARLY_DATA_STATUS_NOT_INDICATED if the client
@@ -5587,7 +5132,7 @@ void mbedtls_ssl_free(mbedtls_ssl_context *ssl);
  *
  * \note           This feature is currently only available under certain
  *                 conditions, see the documentation of the return value
- *                 #MBEDTLS_ERR_SSL_BAD_INPUT_DATA for details.
+ *                 #PSA_ERROR_INVALID_ARGUMENT for details.
  *
  * \note           When this function succeeds, it calls
  *                 mbedtls_ssl_session_reset() on \p ssl which as a result is
@@ -5612,15 +5157,15 @@ void mbedtls_ssl_free(mbedtls_ssl_context *ssl);
  *                 to determine the necessary size by calling this function
  *                 with \p buf set to \c NULL and \p buf_len to \c 0. However,
  *                 the value of \p olen is only guaranteed to be correct when
- *                 the function returns #MBEDTLS_ERR_SSL_BUFFER_TOO_SMALL or
+ *                 the function returns #PSA_ERROR_BUFFER_TOO_SMALL or
  *                 \c 0. If the return value is different, then the value of
  *                 \p olen is undefined.
  *
  * \return         \c 0 if successful.
- * \return         #MBEDTLS_ERR_SSL_BUFFER_TOO_SMALL if \p buf is too small.
- * \return         #MBEDTLS_ERR_SSL_ALLOC_FAILED if memory allocation failed
+ * \return         #PSA_ERROR_BUFFER_TOO_SMALL if \p buf is too small.
+ * \return         #PSA_ERROR_INSUFFICIENT_MEMORY if memory allocation failed
  *                 while resetting the context.
- * \return         #MBEDTLS_ERR_SSL_BAD_INPUT_DATA if a handshake is in
+ * \return         #PSA_ERROR_INVALID_ARGUMENT if a handshake is in
  *                 progress, or there is pending data for reading or sending,
  *                 or the connection does not use DTLS 1.2 with an AEAD
  *                 ciphersuite, or renegotiation is enabled.
@@ -5693,10 +5238,10 @@ int mbedtls_ssl_context_save(mbedtls_ssl_context *ssl,
  * \param len      The size of the serialized data in bytes.
  *
  * \return         \c 0 if successful.
- * \return         #MBEDTLS_ERR_SSL_ALLOC_FAILED if memory allocation failed.
+ * \return         #PSA_ERROR_INSUFFICIENT_MEMORY if memory allocation failed.
  * \return         #MBEDTLS_ERR_SSL_VERSION_MISMATCH if the serialized data
  *                 comes from a different Mbed TLS version or build.
- * \return         #MBEDTLS_ERR_SSL_BAD_INPUT_DATA if input data is invalid.
+ * \return         #PSA_ERROR_INVALID_ARGUMENT if input data is invalid.
  */
 int mbedtls_ssl_context_load(mbedtls_ssl_context *ssl,
                              const unsigned char *buf,
@@ -5805,7 +5350,7 @@ int  mbedtls_ssl_tls_prf(const mbedtls_tls_prf_types prf,
  *       context_len are ignored and a 0-length context is used.
  *
  * \return            0 on success.
- * \return            MBEDTLS_ERR_SSL_BAD_INPUT_DATA if the handshake is not yet completed.
+ * \return            #PSA_ERROR_INVALID_ARGUMENT if the handshake is not yet completed.
  * \return            An SSL-specific error on failure.
  */
 int mbedtls_ssl_export_keying_material(mbedtls_ssl_context *ssl,
diff --git a/deps/LIEF/third-party/mbedtls/include/mbedtls/ssl_ciphersuites.h b/deps/LIEF/third-party/mbedtls/include/mbedtls/ssl_ciphersuites.h
index 12d446200f3..dfd369416b2 100644
--- a/deps/LIEF/third-party/mbedtls/include/mbedtls/ssl_ciphersuites.h
+++ b/deps/LIEF/third-party/mbedtls/include/mbedtls/ssl_ciphersuites.h
@@ -14,7 +14,7 @@
 #include "mbedtls/build_info.h"

 #include "mbedtls/pk.h"
-#include "mbedtls/cipher.h"
+#include "mbedtls/private/cipher.h"
 #include "mbedtls/md.h"

 #ifdef __cplusplus
@@ -24,106 +24,36 @@ extern "C" {
 /*
  * Supported ciphersuites (Official IANA names)
  */
-#define MBEDTLS_TLS_RSA_WITH_NULL_MD5                    0x01   /**< Weak! */
-#define MBEDTLS_TLS_RSA_WITH_NULL_SHA                    0x02   /**< Weak! */
-
 #define MBEDTLS_TLS_PSK_WITH_NULL_SHA                    0x2C   /**< Weak! */
-#define MBEDTLS_TLS_DHE_PSK_WITH_NULL_SHA                0x2D   /**< Weak! */
-#define MBEDTLS_TLS_RSA_PSK_WITH_NULL_SHA                0x2E   /**< Weak! */
-#define MBEDTLS_TLS_RSA_WITH_AES_128_CBC_SHA             0x2F
-
-#define MBEDTLS_TLS_DHE_RSA_WITH_AES_128_CBC_SHA         0x33
-#define MBEDTLS_TLS_RSA_WITH_AES_256_CBC_SHA             0x35
-#define MBEDTLS_TLS_DHE_RSA_WITH_AES_256_CBC_SHA         0x39
-
-#define MBEDTLS_TLS_RSA_WITH_NULL_SHA256                 0x3B   /**< Weak! */
-#define MBEDTLS_TLS_RSA_WITH_AES_128_CBC_SHA256          0x3C   /**< TLS 1.2 */
-#define MBEDTLS_TLS_RSA_WITH_AES_256_CBC_SHA256          0x3D   /**< TLS 1.2 */
-
-#define MBEDTLS_TLS_RSA_WITH_CAMELLIA_128_CBC_SHA        0x41
-#define MBEDTLS_TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA    0x45
-
-#define MBEDTLS_TLS_DHE_RSA_WITH_AES_128_CBC_SHA256      0x67   /**< TLS 1.2 */
-#define MBEDTLS_TLS_DHE_RSA_WITH_AES_256_CBC_SHA256      0x6B   /**< TLS 1.2 */
-
-#define MBEDTLS_TLS_RSA_WITH_CAMELLIA_256_CBC_SHA        0x84
-#define MBEDTLS_TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA    0x88

 #define MBEDTLS_TLS_PSK_WITH_AES_128_CBC_SHA             0x8C
 #define MBEDTLS_TLS_PSK_WITH_AES_256_CBC_SHA             0x8D

-#define MBEDTLS_TLS_DHE_PSK_WITH_AES_128_CBC_SHA         0x90
-#define MBEDTLS_TLS_DHE_PSK_WITH_AES_256_CBC_SHA         0x91
-
-#define MBEDTLS_TLS_RSA_PSK_WITH_AES_128_CBC_SHA         0x94
-#define MBEDTLS_TLS_RSA_PSK_WITH_AES_256_CBC_SHA         0x95
-
-#define MBEDTLS_TLS_RSA_WITH_AES_128_GCM_SHA256          0x9C   /**< TLS 1.2 */
-#define MBEDTLS_TLS_RSA_WITH_AES_256_GCM_SHA384          0x9D   /**< TLS 1.2 */
-#define MBEDTLS_TLS_DHE_RSA_WITH_AES_128_GCM_SHA256      0x9E   /**< TLS 1.2 */
-#define MBEDTLS_TLS_DHE_RSA_WITH_AES_256_GCM_SHA384      0x9F   /**< TLS 1.2 */
-
 #define MBEDTLS_TLS_PSK_WITH_AES_128_GCM_SHA256          0xA8   /**< TLS 1.2 */
 #define MBEDTLS_TLS_PSK_WITH_AES_256_GCM_SHA384          0xA9   /**< TLS 1.2 */
-#define MBEDTLS_TLS_DHE_PSK_WITH_AES_128_GCM_SHA256      0xAA   /**< TLS 1.2 */
-#define MBEDTLS_TLS_DHE_PSK_WITH_AES_256_GCM_SHA384      0xAB   /**< TLS 1.2 */
-#define MBEDTLS_TLS_RSA_PSK_WITH_AES_128_GCM_SHA256      0xAC   /**< TLS 1.2 */
-#define MBEDTLS_TLS_RSA_PSK_WITH_AES_256_GCM_SHA384      0xAD   /**< TLS 1.2 */

 #define MBEDTLS_TLS_PSK_WITH_AES_128_CBC_SHA256          0xAE
 #define MBEDTLS_TLS_PSK_WITH_AES_256_CBC_SHA384          0xAF
 #define MBEDTLS_TLS_PSK_WITH_NULL_SHA256                 0xB0   /**< Weak! */
 #define MBEDTLS_TLS_PSK_WITH_NULL_SHA384                 0xB1   /**< Weak! */

-#define MBEDTLS_TLS_DHE_PSK_WITH_AES_128_CBC_SHA256      0xB2
-#define MBEDTLS_TLS_DHE_PSK_WITH_AES_256_CBC_SHA384      0xB3
-#define MBEDTLS_TLS_DHE_PSK_WITH_NULL_SHA256             0xB4   /**< Weak! */
-#define MBEDTLS_TLS_DHE_PSK_WITH_NULL_SHA384             0xB5   /**< Weak! */
-
-#define MBEDTLS_TLS_RSA_PSK_WITH_AES_128_CBC_SHA256      0xB6
-#define MBEDTLS_TLS_RSA_PSK_WITH_AES_256_CBC_SHA384      0xB7
-#define MBEDTLS_TLS_RSA_PSK_WITH_NULL_SHA256             0xB8   /**< Weak! */
-#define MBEDTLS_TLS_RSA_PSK_WITH_NULL_SHA384             0xB9   /**< Weak! */
-
-#define MBEDTLS_TLS_RSA_WITH_CAMELLIA_128_CBC_SHA256     0xBA   /**< TLS 1.2 */
-#define MBEDTLS_TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA256 0xBE   /**< TLS 1.2 */
-
-#define MBEDTLS_TLS_RSA_WITH_CAMELLIA_256_CBC_SHA256     0xC0   /**< TLS 1.2 */
-#define MBEDTLS_TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA256 0xC4   /**< TLS 1.2 */
-
-#define MBEDTLS_TLS_ECDH_ECDSA_WITH_NULL_SHA             0xC001 /**< Weak! */
-#define MBEDTLS_TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA      0xC004
-#define MBEDTLS_TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA      0xC005
-
 #define MBEDTLS_TLS_ECDHE_ECDSA_WITH_NULL_SHA            0xC006 /**< Weak! */
 #define MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA     0xC009
 #define MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA     0xC00A

-#define MBEDTLS_TLS_ECDH_RSA_WITH_NULL_SHA               0xC00B /**< Weak! */
-#define MBEDTLS_TLS_ECDH_RSA_WITH_AES_128_CBC_SHA        0xC00E
-#define MBEDTLS_TLS_ECDH_RSA_WITH_AES_256_CBC_SHA        0xC00F
-
 #define MBEDTLS_TLS_ECDHE_RSA_WITH_NULL_SHA              0xC010 /**< Weak! */
 #define MBEDTLS_TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA       0xC013
 #define MBEDTLS_TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA       0xC014

 #define MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256  0xC023 /**< TLS 1.2 */
 #define MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384  0xC024 /**< TLS 1.2 */
-#define MBEDTLS_TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256   0xC025 /**< TLS 1.2 */
-#define MBEDTLS_TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384   0xC026 /**< TLS 1.2 */
 #define MBEDTLS_TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256    0xC027 /**< TLS 1.2 */
 #define MBEDTLS_TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384    0xC028 /**< TLS 1.2 */
-#define MBEDTLS_TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256     0xC029 /**< TLS 1.2 */
-#define MBEDTLS_TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384     0xC02A /**< TLS 1.2 */

 #define MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256  0xC02B /**< TLS 1.2 */
 #define MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384  0xC02C /**< TLS 1.2 */
-#define MBEDTLS_TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256   0xC02D /**< TLS 1.2 */
-#define MBEDTLS_TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384   0xC02E /**< TLS 1.2 */
 #define MBEDTLS_TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256    0xC02F /**< TLS 1.2 */
 #define MBEDTLS_TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384    0xC030 /**< TLS 1.2 */
-#define MBEDTLS_TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256     0xC031 /**< TLS 1.2 */
-#define MBEDTLS_TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384     0xC032 /**< TLS 1.2 */

 #define MBEDTLS_TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA       0xC035
 #define MBEDTLS_TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA       0xC036
@@ -133,99 +63,43 @@ extern "C" {
 #define MBEDTLS_TLS_ECDHE_PSK_WITH_NULL_SHA256           0xC03A
 #define MBEDTLS_TLS_ECDHE_PSK_WITH_NULL_SHA384           0xC03B

-#define MBEDTLS_TLS_RSA_WITH_ARIA_128_CBC_SHA256         0xC03C /**< TLS 1.2 */
-#define MBEDTLS_TLS_RSA_WITH_ARIA_256_CBC_SHA384         0xC03D /**< TLS 1.2 */
-#define MBEDTLS_TLS_DHE_RSA_WITH_ARIA_128_CBC_SHA256     0xC044 /**< TLS 1.2 */
-#define MBEDTLS_TLS_DHE_RSA_WITH_ARIA_256_CBC_SHA384     0xC045 /**< TLS 1.2 */
 #define MBEDTLS_TLS_ECDHE_ECDSA_WITH_ARIA_128_CBC_SHA256 0xC048 /**< TLS 1.2 */
 #define MBEDTLS_TLS_ECDHE_ECDSA_WITH_ARIA_256_CBC_SHA384 0xC049 /**< TLS 1.2 */
-#define MBEDTLS_TLS_ECDH_ECDSA_WITH_ARIA_128_CBC_SHA256  0xC04A /**< TLS 1.2 */
-#define MBEDTLS_TLS_ECDH_ECDSA_WITH_ARIA_256_CBC_SHA384  0xC04B /**< TLS 1.2 */
 #define MBEDTLS_TLS_ECDHE_RSA_WITH_ARIA_128_CBC_SHA256   0xC04C /**< TLS 1.2 */
 #define MBEDTLS_TLS_ECDHE_RSA_WITH_ARIA_256_CBC_SHA384   0xC04D /**< TLS 1.2 */
-#define MBEDTLS_TLS_ECDH_RSA_WITH_ARIA_128_CBC_SHA256    0xC04E /**< TLS 1.2 */
-#define MBEDTLS_TLS_ECDH_RSA_WITH_ARIA_256_CBC_SHA384    0xC04F /**< TLS 1.2 */
-#define MBEDTLS_TLS_RSA_WITH_ARIA_128_GCM_SHA256         0xC050 /**< TLS 1.2 */
-#define MBEDTLS_TLS_RSA_WITH_ARIA_256_GCM_SHA384         0xC051 /**< TLS 1.2 */
-#define MBEDTLS_TLS_DHE_RSA_WITH_ARIA_128_GCM_SHA256     0xC052 /**< TLS 1.2 */
-#define MBEDTLS_TLS_DHE_RSA_WITH_ARIA_256_GCM_SHA384     0xC053 /**< TLS 1.2 */
 #define MBEDTLS_TLS_ECDHE_ECDSA_WITH_ARIA_128_GCM_SHA256 0xC05C /**< TLS 1.2 */
 #define MBEDTLS_TLS_ECDHE_ECDSA_WITH_ARIA_256_GCM_SHA384 0xC05D /**< TLS 1.2 */
-#define MBEDTLS_TLS_ECDH_ECDSA_WITH_ARIA_128_GCM_SHA256  0xC05E /**< TLS 1.2 */
-#define MBEDTLS_TLS_ECDH_ECDSA_WITH_ARIA_256_GCM_SHA384  0xC05F /**< TLS 1.2 */
 #define MBEDTLS_TLS_ECDHE_RSA_WITH_ARIA_128_GCM_SHA256   0xC060 /**< TLS 1.2 */
 #define MBEDTLS_TLS_ECDHE_RSA_WITH_ARIA_256_GCM_SHA384   0xC061 /**< TLS 1.2 */
-#define MBEDTLS_TLS_ECDH_RSA_WITH_ARIA_128_GCM_SHA256    0xC062 /**< TLS 1.2 */
-#define MBEDTLS_TLS_ECDH_RSA_WITH_ARIA_256_GCM_SHA384    0xC063 /**< TLS 1.2 */
 #define MBEDTLS_TLS_PSK_WITH_ARIA_128_CBC_SHA256         0xC064 /**< TLS 1.2 */
 #define MBEDTLS_TLS_PSK_WITH_ARIA_256_CBC_SHA384         0xC065 /**< TLS 1.2 */
-#define MBEDTLS_TLS_DHE_PSK_WITH_ARIA_128_CBC_SHA256     0xC066 /**< TLS 1.2 */
-#define MBEDTLS_TLS_DHE_PSK_WITH_ARIA_256_CBC_SHA384     0xC067 /**< TLS 1.2 */
-#define MBEDTLS_TLS_RSA_PSK_WITH_ARIA_128_CBC_SHA256     0xC068 /**< TLS 1.2 */
-#define MBEDTLS_TLS_RSA_PSK_WITH_ARIA_256_CBC_SHA384     0xC069 /**< TLS 1.2 */
 #define MBEDTLS_TLS_PSK_WITH_ARIA_128_GCM_SHA256         0xC06A /**< TLS 1.2 */
 #define MBEDTLS_TLS_PSK_WITH_ARIA_256_GCM_SHA384         0xC06B /**< TLS 1.2 */
-#define MBEDTLS_TLS_DHE_PSK_WITH_ARIA_128_GCM_SHA256     0xC06C /**< TLS 1.2 */
-#define MBEDTLS_TLS_DHE_PSK_WITH_ARIA_256_GCM_SHA384     0xC06D /**< TLS 1.2 */
-#define MBEDTLS_TLS_RSA_PSK_WITH_ARIA_128_GCM_SHA256     0xC06E /**< TLS 1.2 */
-#define MBEDTLS_TLS_RSA_PSK_WITH_ARIA_256_GCM_SHA384     0xC06F /**< TLS 1.2 */
 #define MBEDTLS_TLS_ECDHE_PSK_WITH_ARIA_128_CBC_SHA256   0xC070 /**< TLS 1.2 */
 #define MBEDTLS_TLS_ECDHE_PSK_WITH_ARIA_256_CBC_SHA384   0xC071 /**< TLS 1.2 */

 #define MBEDTLS_TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_CBC_SHA256 0xC072
 #define MBEDTLS_TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_CBC_SHA384 0xC073
-#define MBEDTLS_TLS_ECDH_ECDSA_WITH_CAMELLIA_128_CBC_SHA256  0xC074
-#define MBEDTLS_TLS_ECDH_ECDSA_WITH_CAMELLIA_256_CBC_SHA384  0xC075
 #define MBEDTLS_TLS_ECDHE_RSA_WITH_CAMELLIA_128_CBC_SHA256   0xC076
 #define MBEDTLS_TLS_ECDHE_RSA_WITH_CAMELLIA_256_CBC_SHA384   0xC077
-#define MBEDTLS_TLS_ECDH_RSA_WITH_CAMELLIA_128_CBC_SHA256    0xC078
-#define MBEDTLS_TLS_ECDH_RSA_WITH_CAMELLIA_256_CBC_SHA384    0xC079

-#define MBEDTLS_TLS_RSA_WITH_CAMELLIA_128_GCM_SHA256         0xC07A /**< TLS 1.2 */
-#define MBEDTLS_TLS_RSA_WITH_CAMELLIA_256_GCM_SHA384         0xC07B /**< TLS 1.2 */
-#define MBEDTLS_TLS_DHE_RSA_WITH_CAMELLIA_128_GCM_SHA256     0xC07C /**< TLS 1.2 */
-#define MBEDTLS_TLS_DHE_RSA_WITH_CAMELLIA_256_GCM_SHA384     0xC07D /**< TLS 1.2 */
 #define MBEDTLS_TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_GCM_SHA256 0xC086 /**< TLS 1.2 */
 #define MBEDTLS_TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_GCM_SHA384 0xC087 /**< TLS 1.2 */
-#define MBEDTLS_TLS_ECDH_ECDSA_WITH_CAMELLIA_128_GCM_SHA256  0xC088 /**< TLS 1.2 */
-#define MBEDTLS_TLS_ECDH_ECDSA_WITH_CAMELLIA_256_GCM_SHA384  0xC089 /**< TLS 1.2 */
 #define MBEDTLS_TLS_ECDHE_RSA_WITH_CAMELLIA_128_GCM_SHA256   0xC08A /**< TLS 1.2 */
 #define MBEDTLS_TLS_ECDHE_RSA_WITH_CAMELLIA_256_GCM_SHA384   0xC08B /**< TLS 1.2 */
-#define MBEDTLS_TLS_ECDH_RSA_WITH_CAMELLIA_128_GCM_SHA256    0xC08C /**< TLS 1.2 */
-#define MBEDTLS_TLS_ECDH_RSA_WITH_CAMELLIA_256_GCM_SHA384    0xC08D /**< TLS 1.2 */

 #define MBEDTLS_TLS_PSK_WITH_CAMELLIA_128_GCM_SHA256       0xC08E /**< TLS 1.2 */
 #define MBEDTLS_TLS_PSK_WITH_CAMELLIA_256_GCM_SHA384       0xC08F /**< TLS 1.2 */
-#define MBEDTLS_TLS_DHE_PSK_WITH_CAMELLIA_128_GCM_SHA256   0xC090 /**< TLS 1.2 */
-#define MBEDTLS_TLS_DHE_PSK_WITH_CAMELLIA_256_GCM_SHA384   0xC091 /**< TLS 1.2 */
-#define MBEDTLS_TLS_RSA_PSK_WITH_CAMELLIA_128_GCM_SHA256   0xC092 /**< TLS 1.2 */
-#define MBEDTLS_TLS_RSA_PSK_WITH_CAMELLIA_256_GCM_SHA384   0xC093 /**< TLS 1.2 */

 #define MBEDTLS_TLS_PSK_WITH_CAMELLIA_128_CBC_SHA256       0xC094
 #define MBEDTLS_TLS_PSK_WITH_CAMELLIA_256_CBC_SHA384       0xC095
-#define MBEDTLS_TLS_DHE_PSK_WITH_CAMELLIA_128_CBC_SHA256   0xC096
-#define MBEDTLS_TLS_DHE_PSK_WITH_CAMELLIA_256_CBC_SHA384   0xC097
-#define MBEDTLS_TLS_RSA_PSK_WITH_CAMELLIA_128_CBC_SHA256   0xC098
-#define MBEDTLS_TLS_RSA_PSK_WITH_CAMELLIA_256_CBC_SHA384   0xC099
 #define MBEDTLS_TLS_ECDHE_PSK_WITH_CAMELLIA_128_CBC_SHA256 0xC09A
 #define MBEDTLS_TLS_ECDHE_PSK_WITH_CAMELLIA_256_CBC_SHA384 0xC09B

-#define MBEDTLS_TLS_RSA_WITH_AES_128_CCM                0xC09C  /**< TLS 1.2 */
-#define MBEDTLS_TLS_RSA_WITH_AES_256_CCM                0xC09D  /**< TLS 1.2 */
-#define MBEDTLS_TLS_DHE_RSA_WITH_AES_128_CCM            0xC09E  /**< TLS 1.2 */
-#define MBEDTLS_TLS_DHE_RSA_WITH_AES_256_CCM            0xC09F  /**< TLS 1.2 */
-#define MBEDTLS_TLS_RSA_WITH_AES_128_CCM_8              0xC0A0  /**< TLS 1.2 */
-#define MBEDTLS_TLS_RSA_WITH_AES_256_CCM_8              0xC0A1  /**< TLS 1.2 */
-#define MBEDTLS_TLS_DHE_RSA_WITH_AES_128_CCM_8          0xC0A2  /**< TLS 1.2 */
-#define MBEDTLS_TLS_DHE_RSA_WITH_AES_256_CCM_8          0xC0A3  /**< TLS 1.2 */
 #define MBEDTLS_TLS_PSK_WITH_AES_128_CCM                0xC0A4  /**< TLS 1.2 */
 #define MBEDTLS_TLS_PSK_WITH_AES_256_CCM                0xC0A5  /**< TLS 1.2 */
-#define MBEDTLS_TLS_DHE_PSK_WITH_AES_128_CCM            0xC0A6  /**< TLS 1.2 */
-#define MBEDTLS_TLS_DHE_PSK_WITH_AES_256_CCM            0xC0A7  /**< TLS 1.2 */
 #define MBEDTLS_TLS_PSK_WITH_AES_128_CCM_8              0xC0A8  /**< TLS 1.2 */
 #define MBEDTLS_TLS_PSK_WITH_AES_256_CCM_8              0xC0A9  /**< TLS 1.2 */
-#define MBEDTLS_TLS_DHE_PSK_WITH_AES_128_CCM_8          0xC0AA  /**< TLS 1.2 */
-#define MBEDTLS_TLS_DHE_PSK_WITH_AES_256_CCM_8          0xC0AB  /**< TLS 1.2 */
 /* The last two are named with PSK_DHE in the RFC, which looks like a typo */

 #define MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_128_CCM        0xC0AC  /**< TLS 1.2 */
@@ -238,11 +112,8 @@ extern "C" {
 /* RFC 7905 */
 #define MBEDTLS_TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256   0xCCA8 /**< TLS 1.2 */
 #define MBEDTLS_TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256 0xCCA9 /**< TLS 1.2 */
-#define MBEDTLS_TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256     0xCCAA /**< TLS 1.2 */
 #define MBEDTLS_TLS_PSK_WITH_CHACHA20_POLY1305_SHA256         0xCCAB /**< TLS 1.2 */
 #define MBEDTLS_TLS_ECDHE_PSK_WITH_CHACHA20_POLY1305_SHA256   0xCCAC /**< TLS 1.2 */
-#define MBEDTLS_TLS_DHE_PSK_WITH_CHACHA20_POLY1305_SHA256     0xCCAD /**< TLS 1.2 */
-#define MBEDTLS_TLS_RSA_PSK_WITH_CHACHA20_POLY1305_SHA256     0xCCAE /**< TLS 1.2 */

 /* RFC 8446, Appendix B.4 */
 #define MBEDTLS_TLS1_3_AES_128_GCM_SHA256                     0x1301 /**< TLS 1.3 */
@@ -256,27 +127,16 @@ extern "C" {
  */
 typedef enum {
     MBEDTLS_KEY_EXCHANGE_NONE = 0,
-    MBEDTLS_KEY_EXCHANGE_RSA,
-    MBEDTLS_KEY_EXCHANGE_DHE_RSA,
     MBEDTLS_KEY_EXCHANGE_ECDHE_RSA,
     MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA,
     MBEDTLS_KEY_EXCHANGE_PSK,
-    MBEDTLS_KEY_EXCHANGE_DHE_PSK,
-    MBEDTLS_KEY_EXCHANGE_RSA_PSK,
     MBEDTLS_KEY_EXCHANGE_ECDHE_PSK,
-    MBEDTLS_KEY_EXCHANGE_ECDH_RSA,
-    MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA,
     MBEDTLS_KEY_EXCHANGE_ECJPAKE,
 } mbedtls_key_exchange_type_t;

 /* Key exchanges using a certificate */
-#if defined(MBEDTLS_KEY_EXCHANGE_RSA_ENABLED)           || \
-    defined(MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED)       || \
-    defined(MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED)     || \
-    defined(MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED)   || \
-    defined(MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED)       || \
-    defined(MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED)      || \
-    defined(MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED)
+#if defined(MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED)     || \
+    defined(MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED)
 #define MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED
 #endif

@@ -294,26 +154,21 @@ typedef enum {

 /* Key exchanges allowing client certificate requests.
  *
- * Note: that's almost the same as MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED
- * above, except RSA-PSK uses a server certificate but no client cert.
- *
- * Note: this difference is specific to TLS 1.2, as with TLS 1.3, things are
- * more symmetrical: client certs and server certs are either both allowed
- * (Ephemeral mode) or both disallowed (PSK and PKS-Ephemeral modes).
+ * This is now the same as MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED,
+ * and the two macros could be unified.
+ * Until Mbed TLS 3.x, the two sets were different because
+ * MBEDTLS_KEY_EXCHANGE_CERT_REQ_ALLOWED_ENABLED covers
+ * MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED plus RSA-PSK.
+ * But RSA-PSK was removed in Mbed TLS 4.0.
  */
-#if defined(MBEDTLS_KEY_EXCHANGE_RSA_ENABLED)           ||       \
-    defined(MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED)       ||       \
-    defined(MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED)     ||       \
-    defined(MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED)   ||       \
-    defined(MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED)    ||       \
-    defined(MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED)
+#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED)
 #define MBEDTLS_KEY_EXCHANGE_CERT_REQ_ALLOWED_ENABLED
 #endif

 /* Helper to state that certificate-based client authentication through ECDSA
  * is supported in TLS 1.2 */
 #if defined(MBEDTLS_KEY_EXCHANGE_CERT_REQ_ALLOWED_ENABLED) && \
-    defined(MBEDTLS_PK_CAN_ECDSA_SIGN) && defined(MBEDTLS_PK_CAN_ECDSA_VERIFY)
+    defined(PSA_HAVE_ALG_ECDSA_SIGN) && defined(PSA_HAVE_ALG_ECDSA_VERIFY)
 #define MBEDTLS_KEY_EXCHANGE_ECDSA_CERT_REQ_ALLOWED_ENABLED
 #endif

@@ -324,30 +179,13 @@ typedef enum {
 #endif

 /* Key exchanges involving server signature in ServerKeyExchange */
-#if defined(MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED)       || \
-    defined(MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED)     || \
+#if defined(MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED)     || \
     defined(MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED)
 #define MBEDTLS_KEY_EXCHANGE_WITH_SERVER_SIGNATURE_ENABLED
 #endif

-/* Key exchanges using ECDH */
-#if defined(MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED)      || \
-    defined(MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED)
-#define MBEDTLS_KEY_EXCHANGE_SOME_ECDH_ENABLED
-#endif
-
-/* Key exchanges that don't involve ephemeral keys */
-#if defined(MBEDTLS_KEY_EXCHANGE_RSA_ENABLED)           || \
-    defined(MBEDTLS_KEY_EXCHANGE_PSK_ENABLED)           || \
-    defined(MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED)       || \
-    defined(MBEDTLS_KEY_EXCHANGE_SOME_ECDH_ENABLED)
-#define MBEDTLS_KEY_EXCHANGE_SOME_NON_PFS_ENABLED
-#endif
-
 /* Key exchanges that involve ephemeral keys */
-#if defined(MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED)       || \
-    defined(MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED)       || \
-    defined(MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED)     || \
+#if defined(MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED)     || \
     defined(MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED)     || \
     defined(MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED)   || \
     defined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED)
@@ -356,18 +194,10 @@ typedef enum {

 /* Key exchanges using a PSK */
 #if defined(MBEDTLS_KEY_EXCHANGE_PSK_ENABLED)           || \
-    defined(MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED)       || \
-    defined(MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED)       || \
     defined(MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED)
 #define MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED
 #endif

-/* Key exchanges using DHE */
-#if defined(MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED)       || \
-    defined(MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED)
-#define MBEDTLS_KEY_EXCHANGE_SOME_DHE_ENABLED
-#endif
-
 /* Key exchanges using ECDHE */
 #if defined(MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED)     || \
     defined(MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED)   || \
@@ -376,8 +206,7 @@ typedef enum {
 #endif

 /* TLS 1.2 key exchanges using ECDH or ECDHE*/
-#if defined(MBEDTLS_KEY_EXCHANGE_SOME_ECDH_ENABLED) || \
-    defined(MBEDTLS_KEY_EXCHANGE_SOME_ECDHE_ENABLED)
+#if defined(MBEDTLS_KEY_EXCHANGE_SOME_ECDHE_ENABLED)
 #define MBEDTLS_KEY_EXCHANGE_SOME_ECDH_OR_ECDHE_1_2_ENABLED
 #endif

@@ -411,19 +240,12 @@ typedef enum {
 #define MBEDTLS_KEY_EXCHANGE_SOME_ECDH_OR_ECDHE_ANY_ENABLED
 #endif

-/* TLS 1.2 XXDH key exchanges: ECDH or ECDHE or FFDH */
-#if (defined(MBEDTLS_KEY_EXCHANGE_SOME_ECDH_OR_ECDHE_1_2_ENABLED) || \
-    defined(MBEDTLS_KEY_EXCHANGE_SOME_DHE_ENABLED))
-#define MBEDTLS_KEY_EXCHANGE_SOME_XXDH_1_2_ENABLED
-#endif
-
 /* The handshake params structure has a set of fields called xxdh_psa which are used:
- * - by TLS 1.2 with `USE_PSA` to do ECDH or ECDHE;
+ * - by TLS 1.2 to do ECDH or ECDHE;
  * - by TLS 1.3 to do ECDHE or FFDHE.
  * The following macros can be used to guard their declaration and use.
  */
-#if defined(MBEDTLS_KEY_EXCHANGE_SOME_ECDH_OR_ECDHE_1_2_ENABLED) && \
-    defined(MBEDTLS_USE_PSA_CRYPTO)
+#if defined(MBEDTLS_KEY_EXCHANGE_SOME_ECDH_OR_ECDHE_1_2_ENABLED)
 #define MBEDTLS_KEY_EXCHANGE_SOME_XXDH_PSA_1_2_ENABLED
 #endif
 #if defined(MBEDTLS_KEY_EXCHANGE_SOME_XXDH_PSA_1_2_ENABLED) || \
diff --git a/deps/LIEF/third-party/mbedtls/include/mbedtls/ssl_cookie.h b/deps/LIEF/third-party/mbedtls/include/mbedtls/ssl_cookie.h
index 0f211e632a8..ec54f614d35 100644
--- a/deps/LIEF/third-party/mbedtls/include/mbedtls/ssl_cookie.h
+++ b/deps/LIEF/third-party/mbedtls/include/mbedtls/ssl_cookie.h
@@ -15,11 +15,6 @@

 #include "mbedtls/ssl.h"

-#if !defined(MBEDTLS_USE_PSA_CRYPTO)
-#if defined(MBEDTLS_THREADING_C)
-#include "mbedtls/threading.h"
-#endif
-#endif /* !MBEDTLS_USE_PSA_CRYPTO */

 /**
  * \name SECTION: Module settings
@@ -42,23 +37,14 @@ extern "C" {
  * \brief          Context for the default cookie functions.
  */
 typedef struct mbedtls_ssl_cookie_ctx {
-#if defined(MBEDTLS_USE_PSA_CRYPTO)
     mbedtls_svc_key_id_t    MBEDTLS_PRIVATE(psa_hmac_key);  /*!< key id for the HMAC portion   */
     psa_algorithm_t         MBEDTLS_PRIVATE(psa_hmac_alg);  /*!< key algorithm for the HMAC portion   */
-#else
-    mbedtls_md_context_t    MBEDTLS_PRIVATE(hmac_ctx);   /*!< context for the HMAC portion   */
-#endif /* MBEDTLS_USE_PSA_CRYPTO */
 #if !defined(MBEDTLS_HAVE_TIME)
     unsigned long   MBEDTLS_PRIVATE(serial);     /*!< serial number for expiration   */
 #endif
     unsigned long   MBEDTLS_PRIVATE(timeout);    /*!< timeout delay, in seconds if HAVE_TIME,
                                                     or in number of tickets issued */

-#if !defined(MBEDTLS_USE_PSA_CRYPTO)
-#if defined(MBEDTLS_THREADING_C)
-    mbedtls_threading_mutex_t MBEDTLS_PRIVATE(mutex);
-#endif
-#endif /* !MBEDTLS_USE_PSA_CRYPTO */
 } mbedtls_ssl_cookie_ctx;

 /**
@@ -69,9 +55,7 @@ void mbedtls_ssl_cookie_init(mbedtls_ssl_cookie_ctx *ctx);
 /**
  * \brief          Setup cookie context (generate keys)
  */
-int mbedtls_ssl_cookie_setup(mbedtls_ssl_cookie_ctx *ctx,
-                             mbedtls_f_rng_t *f_rng,
-                             void *p_rng);
+int mbedtls_ssl_cookie_setup(mbedtls_ssl_cookie_ctx *ctx);

 /**
  * \brief          Set expiration delay for cookies
diff --git a/deps/LIEF/third-party/mbedtls/include/mbedtls/ssl_ticket.h b/deps/LIEF/third-party/mbedtls/include/mbedtls/ssl_ticket.h
index 9f7e44029a5..5a2e4876e55 100644
--- a/deps/LIEF/third-party/mbedtls/include/mbedtls/ssl_ticket.h
+++ b/deps/LIEF/third-party/mbedtls/include/mbedtls/ssl_ticket.h
@@ -20,15 +20,12 @@
  */

 #include "mbedtls/ssl.h"
-#include "mbedtls/cipher.h"

 #if defined(MBEDTLS_HAVE_TIME)
 #include "mbedtls/platform_time.h"
 #endif

-#if defined(MBEDTLS_USE_PSA_CRYPTO)
 #include "psa/crypto.h"
-#endif

 #if defined(MBEDTLS_THREADING_C)
 #include "mbedtls/threading.h"
@@ -54,14 +51,10 @@ typedef struct mbedtls_ssl_ticket_key {
      *  tickets created under that key.
      */
     uint32_t MBEDTLS_PRIVATE(lifetime);
-#if !defined(MBEDTLS_USE_PSA_CRYPTO)
-    mbedtls_cipher_context_t MBEDTLS_PRIVATE(ctx);   /*!< context for auth enc/decryption    */
-#else
     mbedtls_svc_key_id_t MBEDTLS_PRIVATE(key);       /*!< key used for auth enc/decryption   */
     psa_algorithm_t MBEDTLS_PRIVATE(alg);            /*!< algorithm of auth enc/decryption   */
     psa_key_type_t MBEDTLS_PRIVATE(key_type);        /*!< key type                           */
     size_t MBEDTLS_PRIVATE(key_bits);                /*!< key length in bits                 */
-#endif
 }
 mbedtls_ssl_ticket_key;

@@ -75,8 +68,6 @@ typedef struct mbedtls_ssl_ticket_context {
     uint32_t MBEDTLS_PRIVATE(ticket_lifetime);       /*!< lifetime of tickets in seconds     */

     /** Callback for getting (pseudo-)random numbers                        */
-    int(*MBEDTLS_PRIVATE(f_rng))(void *, unsigned char *, size_t);
-    void *MBEDTLS_PRIVATE(p_rng);                    /*!< context for the RNG function       */

 #if defined(MBEDTLS_THREADING_C)
     mbedtls_threading_mutex_t MBEDTLS_PRIVATE(mutex);
@@ -97,12 +88,9 @@ void mbedtls_ssl_ticket_init(mbedtls_ssl_ticket_context *ctx);
  * \brief           Prepare context to be actually used
  *
  * \param ctx       Context to be set up
- * \param f_rng     RNG callback function (mandatory)
- * \param p_rng     RNG callback context.
- *                  Note that the RNG callback must remain valid
- *                  until the ticket context is freed.
- * \param cipher    AEAD cipher to use for ticket protection.
- *                  Recommended value: MBEDTLS_CIPHER_AES_256_GCM.
+ * \param alg       AEAD cipher to use for ticket protection.
+ * \param key_type  Cryptographic key type to use.
+ * \param key_bits  Cryptographic key size to use in bits.
  * \param lifetime  Tickets lifetime in seconds
  *                  Recommended value: 86400 (one day).
  *
@@ -124,8 +112,7 @@ void mbedtls_ssl_ticket_init(mbedtls_ssl_ticket_context *ctx);
  *                  or a specific MBEDTLS_ERR_XXX error code
  */
 int mbedtls_ssl_ticket_setup(mbedtls_ssl_ticket_context *ctx,
-                             mbedtls_f_rng_t *f_rng, void *p_rng,
-                             mbedtls_cipher_type_t cipher,
+                             psa_algorithm_t alg, psa_key_type_t key_type, psa_key_bits_t key_bits,
                              uint32_t lifetime);

 /**
diff --git a/deps/LIEF/third-party/mbedtls/include/mbedtls/threading.h b/deps/LIEF/third-party/mbedtls/include/mbedtls/threading.h
deleted file mode 100644
index b4df0e38beb..00000000000
--- a/deps/LIEF/third-party/mbedtls/include/mbedtls/threading.h
+++ /dev/null
@@ -1,137 +0,0 @@
-/**
- * \file threading.h
- *
- * \brief Threading abstraction layer
- */
-/*
- *  Copyright The Mbed TLS Contributors
- *  SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
- */
-#ifndef MBEDTLS_THREADING_H
-#define MBEDTLS_THREADING_H
-#include "mbedtls/private_access.h"
-
-#include "mbedtls/build_info.h"
-
-#include <stdlib.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/** Bad input parameters to function. */
-#define MBEDTLS_ERR_THREADING_BAD_INPUT_DATA              -0x001C
-/** Locking / unlocking / free failed with error code. */
-#define MBEDTLS_ERR_THREADING_MUTEX_ERROR                 -0x001E
-
-#if defined(MBEDTLS_THREADING_PTHREAD)
-#include <pthread.h>
-typedef struct mbedtls_threading_mutex_t {
-    pthread_mutex_t MBEDTLS_PRIVATE(mutex);
-
-    /* WARNING - state should only be accessed when holding the mutex lock in
-     * framework/tests/src/threading_helpers.c, otherwise corruption can occur.
-     * state will be 0 after a failed init or a free, and nonzero after a
-     * successful init. This field is for testing only and thus not considered
-     * part of the public API of Mbed TLS and may change without notice.*/
-    char MBEDTLS_PRIVATE(state);
-
-} mbedtls_threading_mutex_t;
-#endif
-
-#if defined(MBEDTLS_THREADING_ALT)
-/* You should define the mbedtls_threading_mutex_t type in your header */
-#include "threading_alt.h"
-
-/**
- * \brief           Set your alternate threading implementation function
- *                  pointers and initialize global mutexes. If used, this
- *                  function must be called once in the main thread before any
- *                  other Mbed TLS function is called, and
- *                  mbedtls_threading_free_alt() must be called once in the main
- *                  thread after all other Mbed TLS functions.
- *
- * \note            mutex_init() and mutex_free() don't return a status code.
- *                  If mutex_init() fails, it should leave its argument (the
- *                  mutex) in a state such that mutex_lock() will fail when
- *                  called with this argument.
- *
- * \param mutex_init    the init function implementation
- * \param mutex_free    the free function implementation
- * \param mutex_lock    the lock function implementation
- * \param mutex_unlock  the unlock function implementation
- */
-void mbedtls_threading_set_alt(void (*mutex_init)(mbedtls_threading_mutex_t *),
-                               void (*mutex_free)(mbedtls_threading_mutex_t *),
-                               int (*mutex_lock)(mbedtls_threading_mutex_t *),
-                               int (*mutex_unlock)(mbedtls_threading_mutex_t *));
-
-/**
- * \brief               Free global mutexes.
- */
-void mbedtls_threading_free_alt(void);
-#endif /* MBEDTLS_THREADING_ALT */
-
-#if defined(MBEDTLS_THREADING_C)
-/*
- * The function pointers for mutex_init, mutex_free, mutex_ and mutex_unlock
- *
- * All these functions are expected to work or the result will be undefined.
- */
-extern void (*mbedtls_mutex_init)(mbedtls_threading_mutex_t *mutex);
-extern void (*mbedtls_mutex_free)(mbedtls_threading_mutex_t *mutex);
-extern int (*mbedtls_mutex_lock)(mbedtls_threading_mutex_t *mutex);
-extern int (*mbedtls_mutex_unlock)(mbedtls_threading_mutex_t *mutex);
-
-/*
- * Global mutexes
- */
-#if defined(MBEDTLS_FS_IO)
-extern mbedtls_threading_mutex_t mbedtls_threading_readdir_mutex;
-#endif
-
-#if defined(MBEDTLS_HAVE_TIME_DATE) && !defined(MBEDTLS_PLATFORM_GMTIME_R_ALT)
-/* This mutex may or may not be used in the default definition of
- * mbedtls_platform_gmtime_r(), but in order to determine that,
- * we need to check POSIX features, hence modify _POSIX_C_SOURCE.
- * With the current approach, this declaration is orphaned, lacking
- * an accompanying definition, in case mbedtls_platform_gmtime_r()
- * doesn't need it, but that's not a problem. */
-extern mbedtls_threading_mutex_t mbedtls_threading_gmtime_mutex;
-#endif /* MBEDTLS_HAVE_TIME_DATE && !MBEDTLS_PLATFORM_GMTIME_R_ALT */
-
-#if defined(MBEDTLS_PSA_CRYPTO_C)
-/*
- * A mutex used to make the PSA subsystem thread safe.
- *
- * key_slot_mutex protects the registered_readers and
- * state variable for all key slots in &global_data.key_slots.
- *
- * This mutex must be held when any read from or write to a state or
- * registered_readers field is performed, i.e. when calling functions:
- * psa_key_slot_state_transition(), psa_register_read(), psa_unregister_read(),
- * psa_key_slot_has_readers() and psa_wipe_key_slot(). */
-extern mbedtls_threading_mutex_t mbedtls_threading_key_slot_mutex;
-
-/*
- * A mutex used to make the non-rng PSA global_data struct members thread safe.
- *
- * This mutex must be held when reading or writing to any of the PSA global_data
- * structure members, other than the rng_state or rng struct. */
-extern mbedtls_threading_mutex_t mbedtls_threading_psa_globaldata_mutex;
-
-/*
- * A mutex used to make the PSA global_data rng data thread safe.
- *
- * This mutex must be held when reading or writing to the PSA
- * global_data rng_state or rng struct members. */
-extern mbedtls_threading_mutex_t mbedtls_threading_psa_rngdata_mutex;
-#endif
-
-#endif /* MBEDTLS_THREADING_C */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* threading.h */
diff --git a/deps/LIEF/third-party/mbedtls/include/mbedtls/version.h b/deps/LIEF/third-party/mbedtls/include/mbedtls/version.h
index 637f9d38bf6..4a0b216e3b2 100644
--- a/deps/LIEF/third-party/mbedtls/include/mbedtls/version.h
+++ b/deps/LIEF/third-party/mbedtls/include/mbedtls/version.h
@@ -1,5 +1,5 @@
 /**
- * \file version.h
+ * \file mbedtls/version.h
  *
  * \brief Run-time version information
  */
@@ -32,23 +32,14 @@ extern "C" {
 unsigned int mbedtls_version_get_number(void);

 /**
- * Get the version string ("x.y.z").
- *
- * \param string    The string that will receive the value.
- *                  (Should be at least 9 bytes in size)
+ * Get a pointer to the version string ("x.y.z").
  */
-void mbedtls_version_get_string(char *string);
+const char *mbedtls_version_get_string(void);

 /**
- * Get the full version string ("Mbed TLS x.y.z").
- *
- * \param string    The string that will receive the value. The Mbed TLS version
- *                  string will use 18 bytes AT MOST including a terminating
- *                  null byte.
- *                  (So the buffer should be at least 18 bytes to receive this
- *                  version string).
+ * Get a pointer to the full version string ("Mbed TLS x.y.z").
  */
-void mbedtls_version_get_string_full(char *string);
+const char *mbedtls_version_get_string_full(void);

 /**
  * \brief           Check if support for a feature was compiled into this
@@ -60,7 +51,7 @@ void mbedtls_version_get_string_full(char *string);
  *                  support", "Mbed TLS modules" and "Mbed TLS feature
  *                  support" in mbedtls_config.h
  *
- * \param feature   The string for the define to check (e.g. "MBEDTLS_AES_C")
+ * \param feature   The string for the define to check (e.g. "MBEDTLS_SSL_SRV_C")
  *
  * \return          0 if the feature is present,
  *                  -1 if the feature is not present and
diff --git a/deps/LIEF/third-party/mbedtls/include/mbedtls/x509.h b/deps/LIEF/third-party/mbedtls/include/mbedtls/x509.h
index 6b104613d70..8b6a1daee50 100644
--- a/deps/LIEF/third-party/mbedtls/include/mbedtls/x509.h
+++ b/deps/LIEF/third-party/mbedtls/include/mbedtls/x509.h
@@ -16,10 +16,6 @@
 #include "mbedtls/asn1.h"
 #include "mbedtls/pk.h"

-#if defined(MBEDTLS_RSA_C)
-#include "mbedtls/rsa.h"
-#endif
-
 /**
  * \addtogroup x509_module
  * \{
@@ -74,11 +70,11 @@
 /** Input invalid. */
 #define MBEDTLS_ERR_X509_BAD_INPUT_DATA                   -0x2800
 /** Allocation of memory failed. */
-#define MBEDTLS_ERR_X509_ALLOC_FAILED                     -0x2880
+#define MBEDTLS_ERR_X509_ALLOC_FAILED                     PSA_ERROR_INSUFFICIENT_MEMORY
 /** Read/write of file failed. */
 #define MBEDTLS_ERR_X509_FILE_IO_ERROR                    -0x2900
 /** Destination buffer is too small. */
-#define MBEDTLS_ERR_X509_BUFFER_TOO_SMALL                 -0x2980
+#define MBEDTLS_ERR_X509_BUFFER_TOO_SMALL                 PSA_ERROR_BUFFER_TOO_SMALL
 /** A fatal error occurred, eg the chain is too long or the vrfy callback failed. */
 #define MBEDTLS_ERR_X509_FATAL_ERROR                      -0x3000
 /** \} name X509 Error codes */
@@ -167,26 +163,23 @@
  *
  * Comments refer to the status for using certificates. Status can be
  * different for writing certificates or reading CRLs or CSRs.
- *
- * Those are defined in oid.h as oid.c needs them in a data structure. Since
- * these were previously defined here, let's have aliases for compatibility.
  */
-#define MBEDTLS_X509_EXT_AUTHORITY_KEY_IDENTIFIER MBEDTLS_OID_X509_EXT_AUTHORITY_KEY_IDENTIFIER
-#define MBEDTLS_X509_EXT_SUBJECT_KEY_IDENTIFIER   MBEDTLS_OID_X509_EXT_SUBJECT_KEY_IDENTIFIER
-#define MBEDTLS_X509_EXT_KEY_USAGE                MBEDTLS_OID_X509_EXT_KEY_USAGE
-#define MBEDTLS_X509_EXT_CERTIFICATE_POLICIES     MBEDTLS_OID_X509_EXT_CERTIFICATE_POLICIES
-#define MBEDTLS_X509_EXT_POLICY_MAPPINGS          MBEDTLS_OID_X509_EXT_POLICY_MAPPINGS
-#define MBEDTLS_X509_EXT_SUBJECT_ALT_NAME         MBEDTLS_OID_X509_EXT_SUBJECT_ALT_NAME         /* Supported (DNS) */
-#define MBEDTLS_X509_EXT_ISSUER_ALT_NAME          MBEDTLS_OID_X509_EXT_ISSUER_ALT_NAME
-#define MBEDTLS_X509_EXT_SUBJECT_DIRECTORY_ATTRS  MBEDTLS_OID_X509_EXT_SUBJECT_DIRECTORY_ATTRS
-#define MBEDTLS_X509_EXT_BASIC_CONSTRAINTS        MBEDTLS_OID_X509_EXT_BASIC_CONSTRAINTS        /* Supported */
-#define MBEDTLS_X509_EXT_NAME_CONSTRAINTS         MBEDTLS_OID_X509_EXT_NAME_CONSTRAINTS
-#define MBEDTLS_X509_EXT_POLICY_CONSTRAINTS       MBEDTLS_OID_X509_EXT_POLICY_CONSTRAINTS
-#define MBEDTLS_X509_EXT_EXTENDED_KEY_USAGE       MBEDTLS_OID_X509_EXT_EXTENDED_KEY_USAGE
-#define MBEDTLS_X509_EXT_CRL_DISTRIBUTION_POINTS  MBEDTLS_OID_X509_EXT_CRL_DISTRIBUTION_POINTS
-#define MBEDTLS_X509_EXT_INIHIBIT_ANYPOLICY       MBEDTLS_OID_X509_EXT_INIHIBIT_ANYPOLICY
-#define MBEDTLS_X509_EXT_FRESHEST_CRL             MBEDTLS_OID_X509_EXT_FRESHEST_CRL
-#define MBEDTLS_X509_EXT_NS_CERT_TYPE             MBEDTLS_OID_X509_EXT_NS_CERT_TYPE
+#define MBEDTLS_X509_EXT_AUTHORITY_KEY_IDENTIFIER (1 << 0)
+#define MBEDTLS_X509_EXT_SUBJECT_KEY_IDENTIFIER   (1 << 1)
+#define MBEDTLS_X509_EXT_KEY_USAGE                (1 << 2)
+#define MBEDTLS_X509_EXT_CERTIFICATE_POLICIES     (1 << 3)
+#define MBEDTLS_X509_EXT_POLICY_MAPPINGS          (1 << 4)
+#define MBEDTLS_X509_EXT_SUBJECT_ALT_NAME         (1 << 5)  /* Supported (DNS) */
+#define MBEDTLS_X509_EXT_ISSUER_ALT_NAME          (1 << 6)
+#define MBEDTLS_X509_EXT_SUBJECT_DIRECTORY_ATTRS  (1 << 7)
+#define MBEDTLS_X509_EXT_BASIC_CONSTRAINTS        (1 << 8)  /* Supported */
+#define MBEDTLS_X509_EXT_NAME_CONSTRAINTS         (1 << 9)
+#define MBEDTLS_X509_EXT_POLICY_CONSTRAINTS       (1 << 10)
+#define MBEDTLS_X509_EXT_EXTENDED_KEY_USAGE       (1 << 11)
+#define MBEDTLS_X509_EXT_CRL_DISTRIBUTION_POINTS  (1 << 12)
+#define MBEDTLS_X509_EXT_INIHIBIT_ANYPOLICY       (1 << 13)
+#define MBEDTLS_X509_EXT_FRESHEST_CRL             (1 << 14)
+#define MBEDTLS_X509_EXT_NS_CERT_TYPE             (1 << 16)

 /*
  * Storage format identifiers
diff --git a/deps/LIEF/third-party/mbedtls/include/mbedtls/x509_crl.h b/deps/LIEF/third-party/mbedtls/include/mbedtls/x509_crl.h
index 6625a44f468..095cb5d9a50 100644
--- a/deps/LIEF/third-party/mbedtls/include/mbedtls/x509_crl.h
+++ b/deps/LIEF/third-party/mbedtls/include/mbedtls/x509_crl.h
@@ -82,8 +82,7 @@ typedef struct mbedtls_x509_crl {
     mbedtls_x509_buf MBEDTLS_PRIVATE(sig_oid2);
     mbedtls_x509_buf MBEDTLS_PRIVATE(sig);
     mbedtls_md_type_t MBEDTLS_PRIVATE(sig_md);           /**< Internal representation of the MD algorithm of the signature algorithm, e.g. MBEDTLS_MD_SHA256 */
-    mbedtls_pk_type_t MBEDTLS_PRIVATE(sig_pk);           /**< Internal representation of the Public Key algorithm of the signature algorithm, e.g. MBEDTLS_PK_RSA */
-    void *MBEDTLS_PRIVATE(sig_opts);             /**< Signature options to be passed to mbedtls_pk_verify_ext(), e.g. for RSASSA-PSS */
+    mbedtls_pk_sigalg_t MBEDTLS_PRIVATE(sig_pk);           /**< Internal representation of the Public Key algorithm of the signature algorithm, e.g. MBEDTLS_PK_RSA */

     /** Next element in the linked list of CRL.
      * \p NULL indicates the end of the list.
@@ -95,9 +94,8 @@ mbedtls_x509_crl;
 /**
  * \brief          Parse a DER-encoded CRL and append it to the chained list
  *
- * \note           If #MBEDTLS_USE_PSA_CRYPTO is enabled, the PSA crypto
- *                 subsystem must have been initialized by calling
- *                 psa_crypto_init() before calling this function.
+ * \note           The PSA crypto subsystem must have been initialized by
+ *                 calling psa_crypto_init() before calling this function.
  *
  * \param chain    points to the start of the chain
  * \param buf      buffer holding the CRL data in DER format
@@ -113,9 +111,8 @@ int mbedtls_x509_crl_parse_der(mbedtls_x509_crl *chain,
  *
  * \note           Multiple CRLs are accepted only if using PEM format
  *
- * \note           If #MBEDTLS_USE_PSA_CRYPTO is enabled, the PSA crypto
- *                 subsystem must have been initialized by calling
- *                 psa_crypto_init() before calling this function.
+ * \note           The PSA crypto subsystem must have been initialized by
+ *                 calling psa_crypto_init() before calling this function.
  *
  * \param chain    points to the start of the chain
  * \param buf      buffer holding the CRL data in PEM or DER format
@@ -132,9 +129,8 @@ int mbedtls_x509_crl_parse(mbedtls_x509_crl *chain, const unsigned char *buf, si
  *
  * \note           Multiple CRLs are accepted only if using PEM format
  *
- * \note           If #MBEDTLS_USE_PSA_CRYPTO is enabled, the PSA crypto
- *                 subsystem must have been initialized by calling
- *                 psa_crypto_init() before calling this function.
+ * \note           The PSA crypto subsystem must have been initialized by
+ *                 calling psa_crypto_init() before calling this function.
  *
  * \param chain    points to the start of the chain
  * \param path     filename to read the CRLs from (in PEM or DER encoding)
diff --git a/deps/LIEF/third-party/mbedtls/include/mbedtls/x509_crt.h b/deps/LIEF/third-party/mbedtls/include/mbedtls/x509_crt.h
index 6b960395977..3352e3824ad 100644
--- a/deps/LIEF/third-party/mbedtls/include/mbedtls/x509_crt.h
+++ b/deps/LIEF/third-party/mbedtls/include/mbedtls/x509_crt.h
@@ -15,7 +15,7 @@

 #include "mbedtls/x509.h"
 #include "mbedtls/x509_crl.h"
-#include "mbedtls/bignum.h"
+#include "mbedtls/private/bignum.h"

 /**
  * \addtogroup x509_module
@@ -81,8 +81,7 @@ typedef struct mbedtls_x509_crt {

     mbedtls_x509_buf MBEDTLS_PRIVATE(sig);               /**< Signature: hash of the tbs part signed with the private key. */
     mbedtls_md_type_t MBEDTLS_PRIVATE(sig_md);           /**< Internal representation of the MD algorithm of the signature algorithm, e.g. MBEDTLS_MD_SHA256 */
-    mbedtls_pk_type_t MBEDTLS_PRIVATE(sig_pk);           /**< Internal representation of the Public Key algorithm of the signature algorithm, e.g. MBEDTLS_PK_RSA */
-    void *MBEDTLS_PRIVATE(sig_opts);             /**< Signature options to be passed to mbedtls_pk_verify_ext(), e.g. for RSASSA-PSS */
+    mbedtls_pk_sigalg_t MBEDTLS_PRIVATE(sig_pk);           /**< Internal representation of the Public Key algorithm of the signature algorithm, e.g. MBEDTLS_PK_RSA */

     /** Next certificate in the linked list that constitutes the CA chain.
      * \p NULL indicates the end of the list.
@@ -235,7 +234,7 @@ mbedtls_x509write_cert;
  * \param ctx       Certificate context to use
  * \param san_list  List of SAN values
  *
- * \return          0 if successful, or MBEDTLS_ERR_X509_ALLOC_FAILED
+ * \return          0 if successful, or #PSA_ERROR_INSUFFICIENT_MEMORY
  *
  * \note            "dnsName", "uniformResourceIdentifier", "IP address",
  *                  "otherName", and "DirectoryName", as defined in RFC 5280,
@@ -273,7 +272,7 @@ typedef struct {
 #endif /* MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK */
 } mbedtls_x509_crt_verify_chain;

-#if defined(MBEDTLS_ECDSA_C) && defined(MBEDTLS_ECP_RESTARTABLE)
+#if defined(MBEDTLS_ECP_RESTARTABLE)

 /**
  * \brief       Context for resuming X.509 verify operations
@@ -300,12 +299,12 @@ typedef struct {

 } mbedtls_x509_crt_restart_ctx;

-#else /* MBEDTLS_ECDSA_C && MBEDTLS_ECP_RESTARTABLE */
+#else /* MBEDTLS_ECP_RESTARTABLE */

 /* Now we can declare functions that take a pointer to that */
 typedef void mbedtls_x509_crt_restart_ctx;

-#endif /* MBEDTLS_ECDSA_C && MBEDTLS_ECP_RESTARTABLE */
+#endif /* MBEDTLS_ECP_RESTARTABLE */

 #if defined(MBEDTLS_X509_CRT_PARSE_C)
 /**
@@ -345,9 +344,8 @@ extern const mbedtls_x509_crt_profile mbedtls_x509_crt_profile_none;
  * \brief          Parse a single DER formatted certificate and add it
  *                 to the end of the provided chained list.
  *
- * \note           If #MBEDTLS_USE_PSA_CRYPTO is enabled, the PSA crypto
- *                 subsystem must have been initialized by calling
- *                 psa_crypto_init() before calling this function.
+ * \note           The PSA crypto subsystem must have been initialized by
+ *                 calling psa_crypto_init() before calling this function.
  *
  * \param chain    The pointer to the start of the CRT chain to attach to.
  *                 When parsing the first CRT in a chain, this should point
@@ -410,9 +408,8 @@ typedef int (*mbedtls_x509_crt_ext_cb_t)(void *p_ctx,
  * \brief            Parse a single DER formatted certificate and add it
  *                   to the end of the provided chained list.
  *
- * \note             If #MBEDTLS_USE_PSA_CRYPTO is enabled, the PSA crypto
- *                   subsystem must have been initialized by calling
- *                   psa_crypto_init() before calling this function.
+ * \note             The PSA crypto subsystem must have been initialized by
+ *                   calling psa_crypto_init() before calling this function.
  *
  * \param chain      The pointer to the start of the CRT chain to attach to.
  *                   When parsing the first CRT in a chain, this should point
@@ -464,9 +461,8 @@ int mbedtls_x509_crt_parse_der_with_ext_cb(mbedtls_x509_crt *chain,
  *                 temporary ownership of the CRT buffer until the CRT
  *                 is destroyed.
  *
- * \note           If #MBEDTLS_USE_PSA_CRYPTO is enabled, the PSA crypto
- *                 subsystem must have been initialized by calling
- *                 psa_crypto_init() before calling this function.
+ * \note           The PSA crypto subsystem must have been initialized by
+ *                 calling psa_crypto_init() before calling this function.
  *
  * \param chain    The pointer to the start of the CRT chain to attach to.
  *                 When parsing the first CRT in a chain, this should point
@@ -508,9 +504,8 @@ int mbedtls_x509_crt_parse_der_nocopy(mbedtls_x509_crt *chain,
  *                 long as the certificates are enclosed in the PEM specific
  *                 '-----{BEGIN/END} CERTIFICATE-----' delimiters.
  *
- * \note           If #MBEDTLS_USE_PSA_CRYPTO is enabled, the PSA crypto
- *                 subsystem must have been initialized by calling
- *                 psa_crypto_init() before calling this function.
+ * \note           The PSA crypto subsystem must have been initialized by
+ *                 calling psa_crypto_init() before calling this function.
  *
  * \param chain    The chain to which to add the parsed certificates.
  * \param buf      The buffer holding the certificate data in PEM or DER format.
@@ -536,9 +531,8 @@ int mbedtls_x509_crt_parse(mbedtls_x509_crt *chain, const unsigned char *buf, si
  *                 of failed certificates it encountered. If none complete
  *                 correctly, the first error is returned.
  *
- * \note           If #MBEDTLS_USE_PSA_CRYPTO is enabled, the PSA crypto
- *                 subsystem must have been initialized by calling
- *                 psa_crypto_init() before calling this function.
+ * \note           The PSA crypto subsystem must have been initialized by
+ *                 calling psa_crypto_init() before calling this function.
  *
  * \param chain    points to the start of the chain
  * \param path     filename to read the certificates from
@@ -616,7 +610,7 @@ int mbedtls_x509_crt_verify_info(char *buf, size_t size, const char *prefix,
  *                 other than fatal error, as a non-zero return code
  *                 immediately aborts the verification process. For fatal
  *                 errors, a specific error code should be used (different
- *                 from MBEDTLS_ERR_X509_CERT_VERIFY_FAILED which should not
+ *                 from #MBEDTLS_ERR_X509_CERT_VERIFY_FAILED which should not
  *                 be returned at this point), or MBEDTLS_ERR_X509_FATAL_ERROR
  *                 can be used if no better code is available.
  *
@@ -739,7 +733,7 @@ int mbedtls_x509_crt_verify_with_profile(mbedtls_x509_crt *crt,
  *                 to disable restartable ECC.
  *
  * \return         See \c mbedtls_crt_verify_with_profile(), or
- * \return         #MBEDTLS_ERR_ECP_IN_PROGRESS if maximum number of
+ * \return         #PSA_OPERATION_INCOMPLETE if maximum number of
  *                 operations was reached: see \c mbedtls_ecp_set_max_ops().
  */
 int mbedtls_x509_crt_verify_restartable(mbedtls_x509_crt *crt,
@@ -832,7 +826,7 @@ int mbedtls_x509_crt_verify_with_ca_cb(mbedtls_x509_crt *crt,
  *                 that bit MAY be set.
  *
  * \return         0 is these uses of the certificate are allowed,
- *                 MBEDTLS_ERR_X509_BAD_INPUT_DATA if the keyUsage extension
+ *                 #MBEDTLS_ERR_X509_BAD_INPUT_DATA if the keyUsage extension
  *                 is present but does not match the usage argument.
  *
  * \note           You should only call this function on leaf certificates, on
@@ -851,7 +845,7 @@ int mbedtls_x509_crt_check_key_usage(const mbedtls_x509_crt *crt,
  * \param usage_len Length of usage_oid (eg given by MBEDTLS_OID_SIZE()).
  *
  * \return          0 if this use of the certificate is allowed,
- *                  MBEDTLS_ERR_X509_BAD_INPUT_DATA if not.
+ *                  #MBEDTLS_ERR_X509_BAD_INPUT_DATA if not.
  *
  * \note            Usually only makes sense on leaf certificates.
  */
@@ -886,7 +880,7 @@ void mbedtls_x509_crt_init(mbedtls_x509_crt *crt);
  */
 void mbedtls_x509_crt_free(mbedtls_x509_crt *crt);

-#if defined(MBEDTLS_ECDSA_C) && defined(MBEDTLS_ECP_RESTARTABLE)
+#if defined(MBEDTLS_ECP_RESTARTABLE)
 /**
  * \brief           Initialize a restart context
  */
@@ -896,7 +890,7 @@ void mbedtls_x509_crt_restart_init(mbedtls_x509_crt_restart_ctx *ctx);
  * \brief           Free the components of a restart context
  */
 void mbedtls_x509_crt_restart_free(mbedtls_x509_crt_restart_ctx *ctx);
-#endif /* MBEDTLS_ECDSA_C && MBEDTLS_ECP_RESTARTABLE */
+#endif /* MBEDTLS_ECP_RESTARTABLE */
 #endif /* MBEDTLS_X509_CRT_PARSE_C */

 /**
@@ -948,28 +942,6 @@ void mbedtls_x509write_crt_init(mbedtls_x509write_cert *ctx);
  */
 void mbedtls_x509write_crt_set_version(mbedtls_x509write_cert *ctx, int version);

-#if defined(MBEDTLS_BIGNUM_C) && !defined(MBEDTLS_DEPRECATED_REMOVED)
-/**
- * \brief           Set the serial number for a Certificate.
- *
- * \deprecated      This function is deprecated and will be removed in a
- *                  future version of the library. Please use
- *                  mbedtls_x509write_crt_set_serial_raw() instead.
- *
- * \note            Even though the MBEDTLS_BIGNUM_C guard looks redundant since
- *                  X509 depends on PK and PK depends on BIGNUM, this emphasizes
- *                  a direct dependency between X509 and BIGNUM which is going
- *                  to be deprecated in the future.
- *
- * \param ctx       CRT context to use
- * \param serial    serial number to set
- *
- * \return          0 if successful
- */
-int MBEDTLS_DEPRECATED mbedtls_x509write_crt_set_serial(
-    mbedtls_x509write_cert *ctx, const mbedtls_mpi *serial);
-#endif // MBEDTLS_BIGNUM_C && !MBEDTLS_DEPRECATED_REMOVED
-
 /**
  * \brief           Set the serial number for a Certificate.
  *
@@ -980,11 +952,11 @@ int MBEDTLS_DEPRECATED mbedtls_x509write_crt_set_serial(
  *                     input buffer
  *
  * \return          0 if successful, or
- *                  MBEDTLS_ERR_X509_BAD_INPUT_DATA if the provided input buffer
+ *                  #MBEDTLS_ERR_X509_BAD_INPUT_DATA if the provided input buffer
  *                  is too big (longer than MBEDTLS_X509_RFC5280_MAX_SERIAL_LEN)
  */
 int mbedtls_x509write_crt_set_serial_raw(mbedtls_x509write_cert *ctx,
-                                         unsigned char *serial, size_t serial_len);
+                                         const unsigned char *serial, size_t serial_len);

 /**
  * \brief           Set the validity period for a Certificate
@@ -1069,7 +1041,7 @@ void mbedtls_x509write_crt_set_md_alg(mbedtls_x509write_cert *ctx, mbedtls_md_ty
  * \param val       value of the extension OCTET STRING
  * \param val_len   length of the value data
  *
- * \return          0 if successful, or a MBEDTLS_ERR_X509_ALLOC_FAILED
+ * \return          0 if successful, or #PSA_ERROR_INSUFFICIENT_MEMORY
  */
 int mbedtls_x509write_crt_set_extension(mbedtls_x509write_cert *ctx,
                                         const char *oid, size_t oid_len,
@@ -1085,12 +1057,12 @@ int mbedtls_x509write_crt_set_extension(mbedtls_x509write_cert *ctx,
  *                      certificate (only for CA certificates, -1 is
  *                      unlimited)
  *
- * \return          0 if successful, or a MBEDTLS_ERR_X509_ALLOC_FAILED
+ * \return          0 if successful, or #PSA_ERROR_INSUFFICIENT_MEMORY
  */
 int mbedtls_x509write_crt_set_basic_constraints(mbedtls_x509write_cert *ctx,
                                                 int is_ca, int max_pathlen);

-#if defined(MBEDTLS_MD_CAN_SHA1)
+#if defined(PSA_WANT_ALG_SHA_1)
 /**
  * \brief           Set the subjectKeyIdentifier extension for a CRT
  *                  Requires that mbedtls_x509write_crt_set_subject_key() has been
@@ -1098,7 +1070,7 @@ int mbedtls_x509write_crt_set_basic_constraints(mbedtls_x509write_cert *ctx,
  *
  * \param ctx       CRT context to use
  *
- * \return          0 if successful, or a MBEDTLS_ERR_X509_ALLOC_FAILED
+ * \return          0 if successful, or #PSA_ERROR_INSUFFICIENT_MEMORY
  */
 int mbedtls_x509write_crt_set_subject_key_identifier(mbedtls_x509write_cert *ctx);

@@ -1109,10 +1081,10 @@ int mbedtls_x509write_crt_set_subject_key_identifier(mbedtls_x509write_cert *ctx
  *
  * \param ctx       CRT context to use
  *
- * \return          0 if successful, or a MBEDTLS_ERR_X509_ALLOC_FAILED
+ * \return          0 if successful, or #PSA_ERROR_INSUFFICIENT_MEMORY
  */
 int mbedtls_x509write_crt_set_authority_key_identifier(mbedtls_x509write_cert *ctx);
-#endif /* MBEDTLS_MD_CAN_SHA1 */
+#endif /* PSA_WANT_ALG_SHA_1 */

 /**
  * \brief           Set the Key Usage Extension flags
@@ -1121,7 +1093,7 @@ int mbedtls_x509write_crt_set_authority_key_identifier(mbedtls_x509write_cert *c
  * \param ctx       CRT context to use
  * \param key_usage key usage flags to set
  *
- * \return          0 if successful, or MBEDTLS_ERR_X509_ALLOC_FAILED
+ * \return          0 if successful, or #PSA_ERROR_INSUFFICIENT_MEMORY
  */
 int mbedtls_x509write_crt_set_key_usage(mbedtls_x509write_cert *ctx,
                                         unsigned int key_usage);
@@ -1134,7 +1106,7 @@ int mbedtls_x509write_crt_set_key_usage(mbedtls_x509write_cert *ctx,
  * \param exts      extended key usage extensions to set, a sequence of
  *                  MBEDTLS_ASN1_OID objects
  *
- * \return          0 if successful, or MBEDTLS_ERR_X509_ALLOC_FAILED
+ * \return          0 if successful, or #PSA_ERROR_INSUFFICIENT_MEMORY
  */
 int mbedtls_x509write_crt_set_ext_key_usage(mbedtls_x509write_cert *ctx,
                                             const mbedtls_asn1_sequence *exts);
@@ -1146,7 +1118,7 @@ int mbedtls_x509write_crt_set_ext_key_usage(mbedtls_x509write_cert *ctx,
  * \param ctx           CRT context to use
  * \param ns_cert_type  Netscape Cert Type flags to set
  *
- * \return          0 if successful, or MBEDTLS_ERR_X509_ALLOC_FAILED
+ * \return          0 if successful, or #PSA_ERROR_INSUFFICIENT_MEMORY
  */
 int mbedtls_x509write_crt_set_ns_cert_type(mbedtls_x509write_cert *ctx,
                                            unsigned char ns_cert_type);
@@ -1167,17 +1139,11 @@ void mbedtls_x509write_crt_free(mbedtls_x509write_cert *ctx);
  * \param ctx       certificate to write away
  * \param buf       buffer to write to
  * \param size      size of the buffer
- * \param f_rng     RNG function. This must not be \c NULL.
- * \param p_rng     RNG parameter
  *
  * \return          length of data written if successful, or a specific
  *                  error code
- *
- * \note            \p f_rng is used for the signature operation.
  */
-int mbedtls_x509write_crt_der(mbedtls_x509write_cert *ctx, unsigned char *buf, size_t size,
-                              mbedtls_f_rng_t *f_rng,
-                              void *p_rng);
+int mbedtls_x509write_crt_der(mbedtls_x509write_cert *ctx, unsigned char *buf, size_t size);

 #if defined(MBEDTLS_PEM_WRITE_C)
 /**
@@ -1186,16 +1152,11 @@ int mbedtls_x509write_crt_der(mbedtls_x509write_cert *ctx, unsigned char *buf, s
  * \param ctx       certificate to write away
  * \param buf       buffer to write to
  * \param size      size of the buffer
- * \param f_rng     RNG function. This must not be \c NULL.
- * \param p_rng     RNG parameter
  *
  * \return          0 if successful, or a specific error code
  *
- * \note            \p f_rng is used for the signature operation.
  */
-int mbedtls_x509write_crt_pem(mbedtls_x509write_cert *ctx, unsigned char *buf, size_t size,
-                              mbedtls_f_rng_t *f_rng,
-                              void *p_rng);
+int mbedtls_x509write_crt_pem(mbedtls_x509write_cert *ctx, unsigned char *buf, size_t size);
 #endif /* MBEDTLS_PEM_WRITE_C */
 #endif /* MBEDTLS_X509_CRT_WRITE_C */

diff --git a/deps/LIEF/third-party/mbedtls/include/mbedtls/x509_csr.h b/deps/LIEF/third-party/mbedtls/include/mbedtls/x509_csr.h
index c4bd7f12209..60a553f55d6 100644
--- a/deps/LIEF/third-party/mbedtls/include/mbedtls/x509_csr.h
+++ b/deps/LIEF/third-party/mbedtls/include/mbedtls/x509_csr.h
@@ -55,8 +55,7 @@ typedef struct mbedtls_x509_csr {
     mbedtls_x509_buf sig_oid;
     mbedtls_x509_buf MBEDTLS_PRIVATE(sig);
     mbedtls_md_type_t MBEDTLS_PRIVATE(sig_md);       /**< Internal representation of the MD algorithm of the signature algorithm, e.g. MBEDTLS_MD_SHA256 */
-    mbedtls_pk_type_t MBEDTLS_PRIVATE(sig_pk);       /**< Internal representation of the Public Key algorithm of the signature algorithm, e.g. MBEDTLS_PK_RSA */
-    void *MBEDTLS_PRIVATE(sig_opts);         /**< Signature options to be passed to mbedtls_pk_verify_ext(), e.g. for RSASSA-PSS */
+    mbedtls_pk_sigalg_t MBEDTLS_PRIVATE(sig_pk);       /**< Internal representation of the Public Key algorithm of the signature algorithm, e.g. MBEDTLS_PK_RSA */
 }
 mbedtls_x509_csr;

@@ -79,9 +78,8 @@ mbedtls_x509write_csr;
  *                 ignored, unless the critical flag is set, in which case
  *                 the CSR is rejected.
  *
- * \note           If #MBEDTLS_USE_PSA_CRYPTO is enabled, the PSA crypto
- *                 subsystem must have been initialized by calling
- *                 psa_crypto_init() before calling this function.
+ * \note           The PSA crypto subsystem must have been initialized by
+ *                 calling psa_crypto_init() before calling this function.
  *
  * \param csr      CSR context to fill
  * \param buf      buffer holding the CRL data
@@ -135,9 +133,8 @@ typedef int (*mbedtls_x509_csr_ext_cb_t)(void *p_ctx,
  *                 the result of the callback function decides whether
  *                 CSR is rejected.
  *
- * \note           If #MBEDTLS_USE_PSA_CRYPTO is enabled, the PSA crypto
- *                 subsystem must have been initialized by calling
- *                 psa_crypto_init() before calling this function.
+ * \note           The PSA crypto subsystem must have been initialized by
+ *                 calling psa_crypto_init() before calling this function.
  *
  * \param csr      CSR context to fill
  * \param buf      buffer holding the CRL data
@@ -158,9 +155,8 @@ int mbedtls_x509_csr_parse_der_with_ext_cb(mbedtls_x509_csr *csr,
  *
  * \note           See notes for \c mbedtls_x509_csr_parse_der()
  *
- * \note           If #MBEDTLS_USE_PSA_CRYPTO is enabled, the PSA crypto
- *                 subsystem must have been initialized by calling
- *                 psa_crypto_init() before calling this function.
+ * \note           The PSA crypto subsystem must have been initialized by
+ *                 calling psa_crypto_init() before calling this function.
  *
  * \param csr      CSR context to fill
  * \param buf      buffer holding the CRL data
@@ -267,7 +263,7 @@ void mbedtls_x509write_csr_set_md_alg(mbedtls_x509write_csr *ctx, mbedtls_md_typ
  * \param ctx       CSR context to use
  * \param key_usage key usage flags to set
  *
- * \return          0 if successful, or MBEDTLS_ERR_X509_ALLOC_FAILED
+ * \return          0 if successful, or #PSA_ERROR_INSUFFICIENT_MEMORY
  *
  * \note            The <code>decipherOnly</code> flag from the Key Usage
  *                  extension is represented by bit 8 (i.e.
@@ -285,7 +281,7 @@ int mbedtls_x509write_csr_set_key_usage(mbedtls_x509write_csr *ctx, unsigned cha
  * \param ctx       CSR context to use
  * \param san_list  List of SAN values
  *
- * \return          0 if successful, or MBEDTLS_ERR_X509_ALLOC_FAILED
+ * \return          0 if successful, or #PSA_ERROR_INSUFFICIENT_MEMORY
  *
  * \note            Only "dnsName", "uniformResourceIdentifier" and "otherName",
  *                  as defined in RFC 5280, are supported.
@@ -300,7 +296,7 @@ int mbedtls_x509write_csr_set_subject_alternative_name(mbedtls_x509write_csr *ct
  * \param ctx           CSR context to use
  * \param ns_cert_type  Netscape Cert Type flags to set
  *
- * \return          0 if successful, or MBEDTLS_ERR_X509_ALLOC_FAILED
+ * \return          0 if successful, or #PSA_ERROR_INSUFFICIENT_MEMORY
  */
 int mbedtls_x509write_csr_set_ns_cert_type(mbedtls_x509write_csr *ctx,
                                            unsigned char ns_cert_type);
@@ -316,7 +312,7 @@ int mbedtls_x509write_csr_set_ns_cert_type(mbedtls_x509write_csr *ctx,
  * \param val       value of the extension OCTET STRING
  * \param val_len   length of the value data
  *
- * \return          0 if successful, or a MBEDTLS_ERR_X509_ALLOC_FAILED
+ * \return          0 if successful, or a #PSA_ERROR_INSUFFICIENT_MEMORY
  */
 int mbedtls_x509write_csr_set_extension(mbedtls_x509write_csr *ctx,
                                         const char *oid, size_t oid_len,
@@ -340,17 +336,12 @@ void mbedtls_x509write_csr_free(mbedtls_x509write_csr *ctx);
  * \param ctx       CSR to write away
  * \param buf       buffer to write to
  * \param size      size of the buffer
- * \param f_rng     RNG function. This must not be \c NULL.
- * \param p_rng     RNG parameter
  *
  * \return          length of data written if successful, or a specific
  *                  error code
  *
- * \note            \p f_rng is used for the signature operation.
  */
-int mbedtls_x509write_csr_der(mbedtls_x509write_csr *ctx, unsigned char *buf, size_t size,
-                              mbedtls_f_rng_t *f_rng,
-                              void *p_rng);
+int mbedtls_x509write_csr_der(mbedtls_x509write_csr *ctx, unsigned char *buf, size_t size);

 #if defined(MBEDTLS_PEM_WRITE_C)
 /**
@@ -360,16 +351,11 @@ int mbedtls_x509write_csr_der(mbedtls_x509write_csr *ctx, unsigned char *buf, si
  * \param ctx       CSR to write away
  * \param buf       buffer to write to
  * \param size      size of the buffer
- * \param f_rng     RNG function. This must not be \c NULL.
- * \param p_rng     RNG parameter
  *
  * \return          0 if successful, or a specific error code
  *
- * \note            \p f_rng is used for the signature operation.
  */
-int mbedtls_x509write_csr_pem(mbedtls_x509write_csr *ctx, unsigned char *buf, size_t size,
-                              mbedtls_f_rng_t *f_rng,
-                              void *p_rng);
+int mbedtls_x509write_csr_pem(mbedtls_x509write_csr *ctx, unsigned char *buf, size_t size);
 #endif /* MBEDTLS_PEM_WRITE_C */
 #endif /* MBEDTLS_X509_CSR_WRITE_C */

diff --git a/deps/LIEF/third-party/mbedtls/include/psa/build_info.h b/deps/LIEF/third-party/mbedtls/include/psa/build_info.h
deleted file mode 100644
index 3ee6cd7b1bc..00000000000
--- a/deps/LIEF/third-party/mbedtls/include/psa/build_info.h
+++ /dev/null
@@ -1,20 +0,0 @@
-/**
- * \file psa/build_info.h
- *
- * \brief Build-time PSA configuration info
- *
- *  Include this file if you need to depend on the
- *  configuration options defined in mbedtls_config.h or MBEDTLS_CONFIG_FILE
- *  in PSA cryptography core specific files.
- */
-/*
- *  Copyright The Mbed TLS Contributors
- *  SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
- */
-
-#ifndef PSA_CRYPTO_BUILD_INFO_H
-#define PSA_CRYPTO_BUILD_INFO_H
-
-#include "mbedtls/build_info.h"
-
-#endif /* PSA_CRYPTO_BUILD_INFO_H */
diff --git a/deps/LIEF/third-party/mbedtls/include/psa/crypto_compat.h b/deps/LIEF/third-party/mbedtls/include/psa/crypto_compat.h
deleted file mode 100644
index 2a226c01a89..00000000000
--- a/deps/LIEF/third-party/mbedtls/include/psa/crypto_compat.h
+++ /dev/null
@@ -1,230 +0,0 @@
-/**
- * \file psa/crypto_compat.h
- *
- * \brief PSA cryptography module: Backward compatibility aliases
- *
- * This header declares alternative names for macro and functions.
- * New application code should not use these names.
- * These names may be removed in a future version of Mbed TLS.
- *
- * \note This file may not be included directly. Applications must
- * include psa/crypto.h.
- */
-/*
- *  Copyright The Mbed TLS Contributors
- *  SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
- */
-
-#ifndef PSA_CRYPTO_COMPAT_H
-#define PSA_CRYPTO_COMPAT_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*
- * To support both openless APIs and psa_open_key() temporarily, define
- * psa_key_handle_t to be equal to mbedtls_svc_key_id_t. Do not mark the
- * type and its utility macros and functions deprecated yet. This will be done
- * in a subsequent phase.
- */
-typedef mbedtls_svc_key_id_t psa_key_handle_t;
-
-#define PSA_KEY_HANDLE_INIT MBEDTLS_SVC_KEY_ID_INIT
-
-/** Check whether a handle is null.
- *
- * \param handle  Handle
- *
- * \return Non-zero if the handle is null, zero otherwise.
- */
-static inline int psa_key_handle_is_null(psa_key_handle_t handle)
-{
-    return mbedtls_svc_key_id_is_null(handle);
-}
-
-/** Open a handle to an existing persistent key.
- *
- * Open a handle to a persistent key. A key is persistent if it was created
- * with a lifetime other than #PSA_KEY_LIFETIME_VOLATILE. A persistent key
- * always has a nonzero key identifier, set with psa_set_key_id() when
- * creating the key. Implementations may provide additional pre-provisioned
- * keys that can be opened with psa_open_key(). Such keys have an application
- * key identifier in the vendor range, as documented in the description of
- * #psa_key_id_t.
- *
- * The application must eventually close the handle with psa_close_key() or
- * psa_destroy_key() to release associated resources. If the application dies
- * without calling one of these functions, the implementation should perform
- * the equivalent of a call to psa_close_key().
- *
- * Some implementations permit an application to open the same key multiple
- * times. If this is successful, each call to psa_open_key() will return a
- * different key handle.
- *
- * \note This API is not part of the PSA Cryptography API Release 1.0.0
- * specification. It was defined in the 1.0 Beta 3 version of the
- * specification but was removed in the 1.0.0 released version. This API is
- * kept for the time being to not break applications relying on it. It is not
- * deprecated yet but will be in the near future.
- *
- * \note Applications that rely on opening a key multiple times will not be
- * portable to implementations that only permit a single key handle to be
- * opened. See also :ref:\`key-handles\`.
- *
- *
- * \param key           The persistent identifier of the key.
- * \param[out] handle   On success, a handle to the key.
- *
- * \retval #PSA_SUCCESS
- *         Success. The application can now use the value of `*handle`
- *         to access the key.
- * \retval #PSA_ERROR_INSUFFICIENT_MEMORY
- *         The implementation does not have sufficient resources to open the
- *         key. This can be due to reaching an implementation limit on the
- *         number of open keys, the number of open key handles, or available
- *         memory.
- * \retval #PSA_ERROR_DOES_NOT_EXIST
- *         There is no persistent key with key identifier \p key.
- * \retval #PSA_ERROR_INVALID_ARGUMENT
- *         \p key is not a valid persistent key identifier.
- * \retval #PSA_ERROR_NOT_PERMITTED
- *         The specified key exists, but the application does not have the
- *         permission to access it. Note that this specification does not
- *         define any way to create such a key, but it may be possible
- *         through implementation-specific means.
- * \retval #PSA_ERROR_COMMUNICATION_FAILURE \emptydescription
- * \retval #PSA_ERROR_CORRUPTION_DETECTED \emptydescription
- * \retval #PSA_ERROR_STORAGE_FAILURE \emptydescription
- * \retval #PSA_ERROR_DATA_INVALID \emptydescription
- * \retval #PSA_ERROR_DATA_CORRUPT \emptydescription
- * \retval #PSA_ERROR_BAD_STATE
- *         The library has not been previously initialized by psa_crypto_init().
- *         It is implementation-dependent whether a failure to initialize
- *         results in this error code.
- */
-psa_status_t psa_open_key(mbedtls_svc_key_id_t key,
-                          psa_key_handle_t *handle);
-
-/** Close a key handle.
- *
- * If the handle designates a volatile key, this will destroy the key material
- * and free all associated resources, just like psa_destroy_key().
- *
- * If this is the last open handle to a persistent key, then closing the handle
- * will free all resources associated with the key in volatile memory. The key
- * data in persistent storage is not affected and can be opened again later
- * with a call to psa_open_key().
- *
- * Closing the key handle makes the handle invalid, and the key handle
- * must not be used again by the application.
- *
- * \note This API is not part of the PSA Cryptography API Release 1.0.0
- * specification. It was defined in the 1.0 Beta 3 version of the
- * specification but was removed in the 1.0.0 released version. This API is
- * kept for the time being to not break applications relying on it. It is not
- * deprecated yet but will be in the near future.
- *
- * \note If the key handle was used to set up an active
- * :ref:\`multipart operation <multipart-operations>\`, then closing the
- * key handle can cause the multipart operation to fail. Applications should
- * maintain the key handle until after the multipart operation has finished.
- *
- * \param handle        The key handle to close.
- *                      If this is \c 0, do nothing and return \c PSA_SUCCESS.
- *
- * \retval #PSA_SUCCESS
- *         \p handle was a valid handle or \c 0. It is now closed.
- * \retval #PSA_ERROR_INVALID_HANDLE
- *         \p handle is not a valid handle nor \c 0.
- * \retval #PSA_ERROR_COMMUNICATION_FAILURE \emptydescription
- * \retval #PSA_ERROR_CORRUPTION_DETECTED \emptydescription
- * \retval #PSA_ERROR_BAD_STATE
- *         The library has not been previously initialized by psa_crypto_init().
- *         It is implementation-dependent whether a failure to initialize
- *         results in this error code.
- */
-psa_status_t psa_close_key(psa_key_handle_t handle);
-
-/** \addtogroup attributes
- * @{
- */
-
-#if !defined(MBEDTLS_DEPRECATED_REMOVED)
-/** Custom Diffie-Hellman group.
- *
- * Mbed TLS does not support custom DH groups.
- *
- * \deprecated This value is not useful, so this macro will be removed in
- *             a future version of the library.
- */
-#define PSA_DH_FAMILY_CUSTOM                                            \
-    ((psa_dh_family_t) MBEDTLS_DEPRECATED_NUMERIC_CONSTANT(0x7e))
-
-/**
- * \brief Set domain parameters for a key.
- *
- * \deprecated  Mbed TLS no longer supports any domain parameters.
- *              This function only does the equivalent of
- *              psa_set_key_type() and will be removed in a future version
- *              of the library.
- *
- * \param[in,out] attributes    Attribute structure where \p type will be set.
- * \param type                  Key type (a \c PSA_KEY_TYPE_XXX value).
- * \param[in] data              Ignored.
- * \param data_length           Must be 0.
- *
- * \retval #PSA_SUCCESS \emptydescription
- * \retval #PSA_ERROR_NOT_SUPPORTED \emptydescription
- */
-static inline psa_status_t MBEDTLS_DEPRECATED psa_set_key_domain_parameters(
-    psa_key_attributes_t *attributes,
-    psa_key_type_t type, const uint8_t *data, size_t data_length)
-{
-    (void) data;
-    if (data_length != 0) {
-        return PSA_ERROR_NOT_SUPPORTED;
-    }
-    psa_set_key_type(attributes, type);
-    return PSA_SUCCESS;
-}
-
-/**
- * \brief Get domain parameters for a key.
- *
- * \deprecated  Mbed TLS no longer supports any domain parameters.
- *              This function alwaya has an empty output and will be
- *              removed in a future version of the library.
-
- * \param[in] attributes        Ignored.
- * \param[out] data             Ignored.
- * \param data_size             Ignored.
- * \param[out] data_length      Set to 0.
- *
- * \retval #PSA_SUCCESS \emptydescription
- */
-static inline psa_status_t MBEDTLS_DEPRECATED psa_get_key_domain_parameters(
-    const psa_key_attributes_t *attributes,
-    uint8_t *data, size_t data_size, size_t *data_length)
-{
-    (void) attributes;
-    (void) data;
-    (void) data_size;
-    *data_length = 0;
-    return PSA_SUCCESS;
-}
-
-/** Safe output buffer size for psa_get_key_domain_parameters().
- *
- */
-#define PSA_KEY_DOMAIN_PARAMETERS_SIZE(key_type, key_bits)      \
-    MBEDTLS_DEPRECATED_NUMERIC_CONSTANT(1u)
-#endif /* MBEDTLS_DEPRECATED_REMOVED */
-
-/**@}*/
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* PSA_CRYPTO_COMPAT_H */
diff --git a/deps/LIEF/third-party/mbedtls/include/psa/crypto_config.h b/deps/LIEF/third-party/mbedtls/include/psa/crypto_config.h
deleted file mode 100644
index e0a8d60606d..00000000000
--- a/deps/LIEF/third-party/mbedtls/include/psa/crypto_config.h
+++ /dev/null
@@ -1,145 +0,0 @@
-/**
- * \file psa/crypto_config.h
- * \brief PSA crypto configuration options (set of defines)
- *
- */
-#if defined(MBEDTLS_PSA_CRYPTO_CONFIG)
-/**
- * When #MBEDTLS_PSA_CRYPTO_CONFIG is enabled in mbedtls_config.h,
- * this file determines which cryptographic mechanisms are enabled
- * through the PSA Cryptography API (\c psa_xxx() functions).
- *
- * To enable a cryptographic mechanism, uncomment the definition of
- * the corresponding \c PSA_WANT_xxx preprocessor symbol.
- * To disable a cryptographic mechanism, comment out the definition of
- * the corresponding \c PSA_WANT_xxx preprocessor symbol.
- * The names of cryptographic mechanisms correspond to values
- * defined in psa/crypto_values.h, with the prefix \c PSA_WANT_ instead
- * of \c PSA_.
- *
- * Note that many cryptographic mechanisms involve two symbols: one for
- * the key type (\c PSA_WANT_KEY_TYPE_xxx) and one for the algorithm
- * (\c PSA_WANT_ALG_xxx). Mechanisms with additional parameters may involve
- * additional symbols.
- */
-#else
-/**
- * When \c MBEDTLS_PSA_CRYPTO_CONFIG is disabled in mbedtls_config.h,
- * this file is not used, and cryptographic mechanisms are supported
- * through the PSA API if and only if they are supported through the
- * mbedtls_xxx API.
- */
-#endif
-/*
- *  Copyright The Mbed TLS Contributors
- *  SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
- */
-
-#ifndef PSA_CRYPTO_CONFIG_H
-#define PSA_CRYPTO_CONFIG_H
-
-#define PSA_WANT_ALG_CBC_NO_PADDING             1
-#define PSA_WANT_ALG_CBC_PKCS7                  1
-#define PSA_WANT_ALG_CCM                        1
-#define PSA_WANT_ALG_CCM_STAR_NO_TAG            1
-#define PSA_WANT_ALG_CMAC                       1
-#define PSA_WANT_ALG_CFB                        1
-#define PSA_WANT_ALG_CHACHA20_POLY1305          1
-#define PSA_WANT_ALG_CTR                        1
-#define PSA_WANT_ALG_DETERMINISTIC_ECDSA        1
-#define PSA_WANT_ALG_ECB_NO_PADDING             1
-#define PSA_WANT_ALG_ECDH                       1
-#define PSA_WANT_ALG_FFDH                       1
-#define PSA_WANT_ALG_ECDSA                      1
-#define PSA_WANT_ALG_JPAKE                      1
-#define PSA_WANT_ALG_GCM                        1
-#define PSA_WANT_ALG_HKDF                       1
-#define PSA_WANT_ALG_HKDF_EXTRACT               1
-#define PSA_WANT_ALG_HKDF_EXPAND                1
-#define PSA_WANT_ALG_HMAC                       1
-#define PSA_WANT_ALG_MD5                        1
-#define PSA_WANT_ALG_OFB                        1
-#define PSA_WANT_ALG_PBKDF2_HMAC                1
-#define PSA_WANT_ALG_PBKDF2_AES_CMAC_PRF_128    1
-#define PSA_WANT_ALG_RIPEMD160                  1
-#define PSA_WANT_ALG_RSA_OAEP                   1
-#define PSA_WANT_ALG_RSA_PKCS1V15_CRYPT         1
-#define PSA_WANT_ALG_RSA_PKCS1V15_SIGN          1
-#define PSA_WANT_ALG_RSA_PSS                    1
-#define PSA_WANT_ALG_SHA_1                      1
-#define PSA_WANT_ALG_SHA_224                    1
-#define PSA_WANT_ALG_SHA_256                    1
-#define PSA_WANT_ALG_SHA_384                    1
-#define PSA_WANT_ALG_SHA_512                    1
-#define PSA_WANT_ALG_SHA3_224                   1
-#define PSA_WANT_ALG_SHA3_256                   1
-#define PSA_WANT_ALG_SHA3_384                   1
-#define PSA_WANT_ALG_SHA3_512                   1
-#define PSA_WANT_ALG_STREAM_CIPHER              1
-#define PSA_WANT_ALG_TLS12_PRF                  1
-#define PSA_WANT_ALG_TLS12_PSK_TO_MS            1
-#define PSA_WANT_ALG_TLS12_ECJPAKE_TO_PMS       1
-
-#define PSA_WANT_ECC_BRAINPOOL_P_R1_256         1
-#define PSA_WANT_ECC_BRAINPOOL_P_R1_384         1
-#define PSA_WANT_ECC_BRAINPOOL_P_R1_512         1
-#define PSA_WANT_ECC_MONTGOMERY_255             1
-#define PSA_WANT_ECC_MONTGOMERY_448             1
-#define PSA_WANT_ECC_SECP_K1_192                1
-#define PSA_WANT_ECC_SECP_K1_256                1
-#define PSA_WANT_ECC_SECP_R1_192                1
-#define PSA_WANT_ECC_SECP_R1_224                1
-/* For secp256r1, consider enabling #MBEDTLS_PSA_P256M_DRIVER_ENABLED
- * (see the description in mbedtls/mbedtls_config.h for details). */
-#define PSA_WANT_ECC_SECP_R1_256                1
-#define PSA_WANT_ECC_SECP_R1_384                1
-#define PSA_WANT_ECC_SECP_R1_521                1
-
-#define PSA_WANT_DH_RFC7919_2048                1
-#define PSA_WANT_DH_RFC7919_3072                1
-#define PSA_WANT_DH_RFC7919_4096                1
-#define PSA_WANT_DH_RFC7919_6144                1
-#define PSA_WANT_DH_RFC7919_8192                1
-
-#define PSA_WANT_KEY_TYPE_DERIVE                1
-#define PSA_WANT_KEY_TYPE_PASSWORD              1
-#define PSA_WANT_KEY_TYPE_PASSWORD_HASH         1
-#define PSA_WANT_KEY_TYPE_HMAC                  1
-#define PSA_WANT_KEY_TYPE_AES                   1
-#define PSA_WANT_KEY_TYPE_ARIA                  1
-#define PSA_WANT_KEY_TYPE_CAMELLIA              1
-#define PSA_WANT_KEY_TYPE_CHACHA20              1
-#define PSA_WANT_KEY_TYPE_DES                   1
-//#define PSA_WANT_KEY_TYPE_ECC_KEY_PAIR          1 /* Deprecated */
-#define PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY        1
-#define PSA_WANT_KEY_TYPE_DH_PUBLIC_KEY         1
-#define PSA_WANT_KEY_TYPE_RAW_DATA              1
-//#define PSA_WANT_KEY_TYPE_RSA_KEY_PAIR          1 /* Deprecated */
-#define PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY        1
-
-/*
- * The following symbols extend and deprecate the legacy
- * PSA_WANT_KEY_TYPE_xxx_KEY_PAIR ones. They include the usage of that key in
- * the name's suffix. "_USE" is the most generic and it can be used to describe
- * a generic suport, whereas other ones add more features on top of that and
- * they are more specific.
- */
-#define PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_BASIC      1
-#define PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_IMPORT   1
-#define PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_EXPORT   1
-#define PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_GENERATE 1
-#define PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_DERIVE   1
-
-#define PSA_WANT_KEY_TYPE_RSA_KEY_PAIR_BASIC      1
-#define PSA_WANT_KEY_TYPE_RSA_KEY_PAIR_IMPORT   1
-#define PSA_WANT_KEY_TYPE_RSA_KEY_PAIR_EXPORT   1
-#define PSA_WANT_KEY_TYPE_RSA_KEY_PAIR_GENERATE 1
-//#define PSA_WANT_KEY_TYPE_RSA_KEY_PAIR_DERIVE   1 /* Not supported */
-
-#define PSA_WANT_KEY_TYPE_DH_KEY_PAIR_BASIC       1
-#define PSA_WANT_KEY_TYPE_DH_KEY_PAIR_IMPORT    1
-#define PSA_WANT_KEY_TYPE_DH_KEY_PAIR_EXPORT    1
-#define PSA_WANT_KEY_TYPE_DH_KEY_PAIR_GENERATE  1
-//#define PSA_WANT_KEY_TYPE_DH_KEY_PAIR_DERIVE    1 /* Not supported */
-
-#endif /* PSA_CRYPTO_CONFIG_H */
diff --git a/deps/LIEF/third-party/mbedtls/include/psa/crypto_legacy.h b/deps/LIEF/third-party/mbedtls/include/psa/crypto_legacy.h
deleted file mode 100644
index 7df3614d6a7..00000000000
--- a/deps/LIEF/third-party/mbedtls/include/psa/crypto_legacy.h
+++ /dev/null
@@ -1,88 +0,0 @@
-/**
- * \file psa/crypto_legacy.h
- *
- * \brief Add temporary suppport for deprecated symbols before they are
- *        removed from the library.
- *
- * PSA_WANT_KEY_TYPE_xxx_KEY_PAIR and MBEDTLS_PSA_ACCEL_KEY_TYPE_xxx_KEY_PAIR
- * symbols are deprecated.
- * New symols add a suffix to that base name in order to clearly state what is
- * the expected use for the key (use, import, export, generate, derive).
- * Here we define some backward compatibility support for uses stil using
- * the legacy symbols.
- */
-/*
- *  Copyright The Mbed TLS Contributors
- *  SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
- */
-
-#ifndef MBEDTLS_PSA_CRYPTO_LEGACY_H
-#define MBEDTLS_PSA_CRYPTO_LEGACY_H
-
-#if defined(PSA_WANT_KEY_TYPE_ECC_KEY_PAIR) //no-check-names
-#if !defined(PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_BASIC)
-#define PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_BASIC      1
-#endif
-#if !defined(PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_IMPORT)
-#define PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_IMPORT   1
-#endif
-#if !defined(PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_EXPORT)
-#define PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_EXPORT   1
-#endif
-#if !defined(PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_GENERATE)
-#define PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_GENERATE 1
-#endif
-#if !defined(PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_DERIVE)
-#define PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_DERIVE   1
-#endif
-#endif
-
-#if defined(PSA_WANT_KEY_TYPE_RSA_KEY_PAIR) //no-check-names
-#if !defined(PSA_WANT_KEY_TYPE_RSA_KEY_PAIR_BASIC)
-#define PSA_WANT_KEY_TYPE_RSA_KEY_PAIR_BASIC      1
-#endif
-#if !defined(PSA_WANT_KEY_TYPE_RSA_KEY_PAIR_IMPORT)
-#define PSA_WANT_KEY_TYPE_RSA_KEY_PAIR_IMPORT   1
-#endif
-#if !defined(PSA_WANT_KEY_TYPE_RSA_KEY_PAIR_EXPORT)
-#define PSA_WANT_KEY_TYPE_RSA_KEY_PAIR_EXPORT   1
-#endif
-#if !defined(PSA_WANT_KEY_TYPE_RSA_KEY_PAIR_GENERATE)
-#define PSA_WANT_KEY_TYPE_RSA_KEY_PAIR_GENERATE 1
-#endif
-#endif
-
-#if defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR) //no-check-names
-#if !defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_BASIC)
-#define MBEDTLS_PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_BASIC
-#endif
-#if !defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_IMPORT)
-#define MBEDTLS_PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_IMPORT
-#endif
-#if !defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_EXPORT)
-#define MBEDTLS_PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_EXPORT
-#endif
-#if !defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_GENERATE)
-#define MBEDTLS_PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_GENERATE
-#endif
-#if !defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_DERIVE)
-#define MBEDTLS_PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_DERIVE
-#endif
-#endif
-
-#if defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_RSA_KEY_PAIR) //no-check-names
-#if !defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_RSA_KEY_PAIR_BASIC)
-#define MBEDTLS_PSA_ACCEL_KEY_TYPE_RSA_KEY_PAIR_BASIC
-#endif
-#if !defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_RSA_KEY_PAIR_IMPORT)
-#define MBEDTLS_PSA_ACCEL_KEY_TYPE_RSA_KEY_PAIR_IMPORT
-#endif
-#if !defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_RSA_KEY_PAIR_EXPORT)
-#define MBEDTLS_PSA_ACCEL_KEY_TYPE_RSA_KEY_PAIR_EXPORT
-#endif
-#if !defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_RSA_KEY_PAIR_GENERATE)
-#define MBEDTLS_PSA_ACCEL_KEY_TYPE_RSA_KEY_PAIR_GENERATE
-#endif
-#endif
-
-#endif /* MBEDTLS_PSA_CRYPTO_LEGACY_H */
diff --git a/deps/LIEF/third-party/mbedtls/include/psa/crypto_se_driver.h b/deps/LIEF/third-party/mbedtls/include/psa/crypto_se_driver.h
deleted file mode 100644
index 9ce14bba621..00000000000
--- a/deps/LIEF/third-party/mbedtls/include/psa/crypto_se_driver.h
+++ /dev/null
@@ -1,1383 +0,0 @@
-/**
- * \file psa/crypto_se_driver.h
- * \brief PSA external cryptoprocessor driver module
- *
- * This header declares types and function signatures for cryptography
- * drivers that access key material via opaque references.
- * This is meant for cryptoprocessors that have a separate key storage from the
- * space in which the PSA Crypto implementation runs, typically secure
- * elements (SEs).
- *
- * This file is part of the PSA Crypto Driver HAL (hardware abstraction layer),
- * containing functions for driver developers to implement to enable hardware
- * to be called in a standardized way by a PSA Cryptography API
- * implementation. The functions comprising the driver HAL, which driver
- * authors implement, are not intended to be called by application developers.
- */
-
-/*
- *  Copyright The Mbed TLS Contributors
- *  SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
- */
-#ifndef PSA_CRYPTO_SE_DRIVER_H
-#define PSA_CRYPTO_SE_DRIVER_H
-#include "mbedtls/private_access.h"
-
-#include "crypto_driver_common.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/** \defgroup se_init Secure element driver initialization
- */
-/**@{*/
-
-/** \brief Driver context structure
- *
- * Driver functions receive a pointer to this structure.
- * Each registered driver has one instance of this structure.
- *
- * Implementations must include the fields specified here and
- * may include other fields.
- */
-typedef struct {
-    /** A read-only pointer to the driver's persistent data.
-     *
-     * Drivers typically use this persistent data to keep track of
-     * which slot numbers are available. This is only a guideline:
-     * drivers may use the persistent data for any purpose, keeping
-     * in mind the restrictions on when the persistent data is saved
-     * to storage: the persistent data is only saved after calling
-     * certain functions that receive a writable pointer to the
-     * persistent data.
-     *
-     * The core allocates a memory buffer for the persistent data.
-     * The pointer is guaranteed to be suitably aligned for any data type,
-     * like a pointer returned by `malloc` (but the core can use any
-     * method to allocate the buffer, not necessarily `malloc`).
-     *
-     * The size of this buffer is in the \c persistent_data_size field of
-     * this structure.
-     *
-     * Before the driver is initialized for the first time, the content of
-     * the persistent data is all-bits-zero. After a driver upgrade, if the
-     * size of the persistent data has increased, the original data is padded
-     * on the right with zeros; if the size has decreased, the original data
-     * is truncated to the new size.
-     *
-     * This pointer is to read-only data. Only a few driver functions are
-     * allowed to modify the persistent data. These functions receive a
-     * writable pointer. These functions are:
-     * - psa_drv_se_t::p_init
-     * - psa_drv_se_key_management_t::p_allocate
-     * - psa_drv_se_key_management_t::p_destroy
-     *
-     * The PSA Cryptography core saves the persistent data from one
-     * session to the next. It does this before returning from API functions
-     * that call a driver method that is allowed to modify the persistent
-     * data, specifically:
-     * - psa_crypto_init() causes a call to psa_drv_se_t::p_init, and may call
-     *   psa_drv_se_key_management_t::p_destroy to complete an action
-     *   that was interrupted by a power failure.
-     * - Key creation functions cause a call to
-     *   psa_drv_se_key_management_t::p_allocate, and may cause a call to
-     *   psa_drv_se_key_management_t::p_destroy in case an error occurs.
-     * - psa_destroy_key() causes a call to
-     *   psa_drv_se_key_management_t::p_destroy.
-     */
-    const void *const MBEDTLS_PRIVATE(persistent_data);
-
-    /** The size of \c persistent_data in bytes.
-     *
-     * This is always equal to the value of the `persistent_data_size` field
-     * of the ::psa_drv_se_t structure when the driver is registered.
-     */
-    const size_t MBEDTLS_PRIVATE(persistent_data_size);
-
-    /** Driver transient data.
-     *
-     * The core initializes this value to 0 and does not read or modify it
-     * afterwards. The driver may store whatever it wants in this field.
-     */
-    uintptr_t MBEDTLS_PRIVATE(transient_data);
-} psa_drv_se_context_t;
-
-/** \brief A driver initialization function.
- *
- * \param[in,out] drv_context       The driver context structure.
- * \param[in,out] persistent_data   A pointer to the persistent data
- *                                  that allows writing.
- * \param location                  The location value for which this driver
- *                                  is registered. The driver will be invoked
- *                                  for all keys whose lifetime is in this
- *                                  location.
- *
- * \retval #PSA_SUCCESS
- *         The driver is operational.
- *         The core will update the persistent data in storage.
- * \return
- *         Any other return value prevents the driver from being used in
- *         this session.
- *         The core will NOT update the persistent data in storage.
- */
-typedef psa_status_t (*psa_drv_se_init_t)(psa_drv_se_context_t *drv_context,
-                                          void *persistent_data,
-                                          psa_key_location_t location);
-
-#if defined(__DOXYGEN_ONLY__) || !defined(MBEDTLS_PSA_CRYPTO_SE_C)
-/* Mbed TLS with secure element support enabled defines this type in
- * crypto_types.h because it is also visible to applications through an
- * implementation-specific extension.
- * For the PSA Cryptography specification, this type is only visible
- * via crypto_se_driver.h. */
-/** An internal designation of a key slot between the core part of the
- * PSA Crypto implementation and the driver. The meaning of this value
- * is driver-dependent. */
-typedef uint64_t psa_key_slot_number_t;
-#endif /* __DOXYGEN_ONLY__ || !MBEDTLS_PSA_CRYPTO_SE_C */
-
-/**@}*/
-
-/** \defgroup se_mac Secure Element Message Authentication Codes
- * Generation and authentication of Message Authentication Codes (MACs) using
- * a secure element can be done either as a single function call (via the
- * `psa_drv_se_mac_generate_t` or `psa_drv_se_mac_verify_t` functions), or in
- * parts using the following sequence:
- * - `psa_drv_se_mac_setup_t`
- * - `psa_drv_se_mac_update_t`
- * - `psa_drv_se_mac_update_t`
- * - ...
- * - `psa_drv_se_mac_finish_t` or `psa_drv_se_mac_finish_verify_t`
- *
- * If a previously started secure element MAC operation needs to be terminated,
- * it should be done so by the `psa_drv_se_mac_abort_t`. Failure to do so may
- * result in allocated resources not being freed or in other undefined
- * behavior.
- */
-/**@{*/
-/** \brief A function that starts a secure element  MAC operation for a PSA
- * Crypto Driver implementation
- *
- * \param[in,out] drv_context   The driver context structure.
- * \param[in,out] op_context    A structure that will contain the
- *                              hardware-specific MAC context
- * \param[in] key_slot          The slot of the key to be used for the
- *                              operation
- * \param[in] algorithm         The algorithm to be used to underly the MAC
- *                              operation
- *
- * \retval  #PSA_SUCCESS
- *          Success.
- */
-typedef psa_status_t (*psa_drv_se_mac_setup_t)(psa_drv_se_context_t *drv_context,
-                                               void *op_context,
-                                               psa_key_slot_number_t key_slot,
-                                               psa_algorithm_t algorithm);
-
-/** \brief A function that continues a previously started secure element MAC
- * operation
- *
- * \param[in,out] op_context    A hardware-specific structure for the
- *                              previously-established MAC operation to be
- *                              updated
- * \param[in] p_input           A buffer containing the message to be appended
- *                              to the MAC operation
- * \param[in] input_length      The size in bytes of the input message buffer
- */
-typedef psa_status_t (*psa_drv_se_mac_update_t)(void *op_context,
-                                                const uint8_t *p_input,
-                                                size_t input_length);
-
-/** \brief a function that completes a previously started secure element MAC
- * operation by returning the resulting MAC.
- *
- * \param[in,out] op_context    A hardware-specific structure for the
- *                              previously started MAC operation to be
- *                              finished
- * \param[out] p_mac            A buffer where the generated MAC will be
- *                              placed
- * \param[in] mac_size          The size in bytes of the buffer that has been
- *                              allocated for the `output` buffer
- * \param[out] p_mac_length     After completion, will contain the number of
- *                              bytes placed in the `p_mac` buffer
- *
- * \retval  #PSA_SUCCESS
- *          Success.
- */
-typedef psa_status_t (*psa_drv_se_mac_finish_t)(void *op_context,
-                                                uint8_t *p_mac,
-                                                size_t mac_size,
-                                                size_t *p_mac_length);
-
-/** \brief A function that completes a previously started secure element MAC
- * operation by comparing the resulting MAC against a provided value
- *
- * \param[in,out] op_context    A hardware-specific structure for the previously
- *                              started MAC operation to be finished
- * \param[in] p_mac             The MAC value against which the resulting MAC
- *                              will be compared against
- * \param[in] mac_length        The size in bytes of the value stored in `p_mac`
- *
- * \retval #PSA_SUCCESS
- *         The operation completed successfully and the MACs matched each
- *         other
- * \retval #PSA_ERROR_INVALID_SIGNATURE
- *         The operation completed successfully, but the calculated MAC did
- *         not match the provided MAC
- */
-typedef psa_status_t (*psa_drv_se_mac_finish_verify_t)(void *op_context,
-                                                       const uint8_t *p_mac,
-                                                       size_t mac_length);
-
-/** \brief A function that aborts a previous started secure element MAC
- * operation
- *
- * \param[in,out] op_context    A hardware-specific structure for the previously
- *                              started MAC operation to be aborted
- */
-typedef psa_status_t (*psa_drv_se_mac_abort_t)(void *op_context);
-
-/** \brief A function that performs a secure element MAC operation in one
- * command and returns the calculated MAC
- *
- * \param[in,out] drv_context   The driver context structure.
- * \param[in] p_input           A buffer containing the message to be MACed
- * \param[in] input_length      The size in bytes of `p_input`
- * \param[in] key_slot          The slot of the key to be used
- * \param[in] alg               The algorithm to be used to underlie the MAC
- *                              operation
- * \param[out] p_mac            A buffer where the generated MAC will be
- *                              placed
- * \param[in] mac_size          The size in bytes of the `p_mac` buffer
- * \param[out] p_mac_length     After completion, will contain the number of
- *                              bytes placed in the `output` buffer
- *
- * \retval #PSA_SUCCESS
- *         Success.
- */
-typedef psa_status_t (*psa_drv_se_mac_generate_t)(psa_drv_se_context_t *drv_context,
-                                                  const uint8_t *p_input,
-                                                  size_t input_length,
-                                                  psa_key_slot_number_t key_slot,
-                                                  psa_algorithm_t alg,
-                                                  uint8_t *p_mac,
-                                                  size_t mac_size,
-                                                  size_t *p_mac_length);
-
-/** \brief A function that performs a secure element MAC operation in one
- * command and compares the resulting MAC against a provided value
- *
- * \param[in,out] drv_context       The driver context structure.
- * \param[in] p_input       A buffer containing the message to be MACed
- * \param[in] input_length  The size in bytes of `input`
- * \param[in] key_slot      The slot of the key to be used
- * \param[in] alg           The algorithm to be used to underlie the MAC
- *                          operation
- * \param[in] p_mac         The MAC value against which the resulting MAC will
- *                          be compared against
- * \param[in] mac_length   The size in bytes of `mac`
- *
- * \retval #PSA_SUCCESS
- *         The operation completed successfully and the MACs matched each
- *         other
- * \retval #PSA_ERROR_INVALID_SIGNATURE
- *         The operation completed successfully, but the calculated MAC did
- *         not match the provided MAC
- */
-typedef psa_status_t (*psa_drv_se_mac_verify_t)(psa_drv_se_context_t *drv_context,
-                                                const uint8_t *p_input,
-                                                size_t input_length,
-                                                psa_key_slot_number_t key_slot,
-                                                psa_algorithm_t alg,
-                                                const uint8_t *p_mac,
-                                                size_t mac_length);
-
-/** \brief A struct containing all of the function pointers needed to
- * perform secure element MAC operations
- *
- * PSA Crypto API implementations should populate the table as appropriate
- * upon startup.
- *
- * If one of the functions is not implemented (such as
- * `psa_drv_se_mac_generate_t`), it should be set to NULL.
- *
- * Driver implementers should ensure that they implement all of the functions
- * that make sense for their hardware, and that they provide a full solution
- * (for example, if they support `p_setup`, they should also support
- * `p_update` and at least one of `p_finish` or `p_finish_verify`).
- *
- */
-typedef struct {
-    /**The size in bytes of the hardware-specific secure element MAC context
-     * structure
-     */
-    size_t                    MBEDTLS_PRIVATE(context_size);
-    /** Function that performs a MAC setup operation
-     */
-    psa_drv_se_mac_setup_t          MBEDTLS_PRIVATE(p_setup);
-    /** Function that performs a MAC update operation
-     */
-    psa_drv_se_mac_update_t         MBEDTLS_PRIVATE(p_update);
-    /** Function that completes a MAC operation
-     */
-    psa_drv_se_mac_finish_t         MBEDTLS_PRIVATE(p_finish);
-    /** Function that completes a MAC operation with a verify check
-     */
-    psa_drv_se_mac_finish_verify_t  MBEDTLS_PRIVATE(p_finish_verify);
-    /** Function that aborts a previously started MAC operation
-     */
-    psa_drv_se_mac_abort_t          MBEDTLS_PRIVATE(p_abort);
-    /** Function that performs a MAC operation in one call
-     */
-    psa_drv_se_mac_generate_t       MBEDTLS_PRIVATE(p_mac);
-    /** Function that performs a MAC and verify operation in one call
-     */
-    psa_drv_se_mac_verify_t         MBEDTLS_PRIVATE(p_mac_verify);
-} psa_drv_se_mac_t;
-/**@}*/
-
-/** \defgroup se_cipher Secure Element Symmetric Ciphers
- *
- * Encryption and Decryption using secure element keys in block modes other
- * than ECB must be done in multiple parts, using the following flow:
- * - `psa_drv_se_cipher_setup_t`
- * - `psa_drv_se_cipher_set_iv_t` (optional depending upon block mode)
- * - `psa_drv_se_cipher_update_t`
- * - `psa_drv_se_cipher_update_t`
- * - ...
- * - `psa_drv_se_cipher_finish_t`
- *
- * If a previously started secure element Cipher operation needs to be
- * terminated, it should be done so by the `psa_drv_se_cipher_abort_t`. Failure
- * to do so may result in allocated resources not being freed or in other
- * undefined behavior.
- *
- * In situations where a PSA Cryptographic API implementation is using a block
- * mode not-supported by the underlying hardware or driver, it can construct
- * the block mode itself, while calling the `psa_drv_se_cipher_ecb_t` function
- * for the cipher operations.
- */
-/**@{*/
-
-/** \brief A function that provides the cipher setup function for a
- * secure element driver
- *
- * \param[in,out] drv_context   The driver context structure.
- * \param[in,out] op_context    A structure that will contain the
- *                              hardware-specific cipher context.
- * \param[in] key_slot          The slot of the key to be used for the
- *                              operation
- * \param[in] algorithm         The algorithm to be used in the cipher
- *                              operation
- * \param[in] direction         Indicates whether the operation is an encrypt
- *                              or decrypt
- *
- * \retval #PSA_SUCCESS \emptydescription
- * \retval #PSA_ERROR_NOT_SUPPORTED \emptydescription
- */
-typedef psa_status_t (*psa_drv_se_cipher_setup_t)(psa_drv_se_context_t *drv_context,
-                                                  void *op_context,
-                                                  psa_key_slot_number_t key_slot,
-                                                  psa_algorithm_t algorithm,
-                                                  psa_encrypt_or_decrypt_t direction);
-
-/** \brief A function that sets the initialization vector (if
- * necessary) for a secure element cipher operation
- *
- * Rationale: The `psa_se_cipher_*` operation in the PSA Cryptographic API has
- * two IV functions: one to set the IV, and one to generate it internally. The
- * generate function is not necessary for the drivers to implement as the PSA
- * Crypto implementation can do the generation using its RNG features.
- *
- * \param[in,out] op_context    A structure that contains the previously set up
- *                              hardware-specific cipher context
- * \param[in] p_iv              A buffer containing the initialization vector
- * \param[in] iv_length         The size (in bytes) of the `p_iv` buffer
- *
- * \retval #PSA_SUCCESS \emptydescription
- */
-typedef psa_status_t (*psa_drv_se_cipher_set_iv_t)(void *op_context,
-                                                   const uint8_t *p_iv,
-                                                   size_t iv_length);
-
-/** \brief A function that continues a previously started secure element cipher
- * operation
- *
- * \param[in,out] op_context        A hardware-specific structure for the
- *                                  previously started cipher operation
- * \param[in] p_input               A buffer containing the data to be
- *                                  encrypted/decrypted
- * \param[in] input_size            The size in bytes of the buffer pointed to
- *                                  by `p_input`
- * \param[out] p_output             The caller-allocated buffer where the
- *                                  output will be placed
- * \param[in] output_size           The allocated size in bytes of the
- *                                  `p_output` buffer
- * \param[out] p_output_length      After completion, will contain the number
- *                                  of bytes placed in the `p_output` buffer
- *
- * \retval #PSA_SUCCESS \emptydescription
- */
-typedef psa_status_t (*psa_drv_se_cipher_update_t)(void *op_context,
-                                                   const uint8_t *p_input,
-                                                   size_t input_size,
-                                                   uint8_t *p_output,
-                                                   size_t output_size,
-                                                   size_t *p_output_length);
-
-/** \brief A function that completes a previously started secure element cipher
- * operation
- *
- * \param[in,out] op_context    A hardware-specific structure for the
- *                              previously started cipher operation
- * \param[out] p_output         The caller-allocated buffer where the output
- *                              will be placed
- * \param[in] output_size       The allocated size in bytes of the `p_output`
- *                              buffer
- * \param[out] p_output_length  After completion, will contain the number of
- *                              bytes placed in the `p_output` buffer
- *
- * \retval #PSA_SUCCESS \emptydescription
- */
-typedef psa_status_t (*psa_drv_se_cipher_finish_t)(void *op_context,
-                                                   uint8_t *p_output,
-                                                   size_t output_size,
-                                                   size_t *p_output_length);
-
-/** \brief A function that aborts a previously started secure element cipher
- * operation
- *
- * \param[in,out] op_context    A hardware-specific structure for the
- *                              previously started cipher operation
- */
-typedef psa_status_t (*psa_drv_se_cipher_abort_t)(void *op_context);
-
-/** \brief A function that performs the ECB block mode for secure element
- * cipher operations
- *
- * Note: this function should only be used with implementations that do not
- * provide a needed higher-level operation.
- *
- * \param[in,out] drv_context   The driver context structure.
- * \param[in] key_slot          The slot of the key to be used for the operation
- * \param[in] algorithm         The algorithm to be used in the cipher operation
- * \param[in] direction         Indicates whether the operation is an encrypt or
- *                              decrypt
- * \param[in] p_input           A buffer containing the data to be
- *                              encrypted/decrypted
- * \param[in] input_size        The size in bytes of the buffer pointed to by
- *                              `p_input`
- * \param[out] p_output         The caller-allocated buffer where the output
- *                              will be placed
- * \param[in] output_size       The allocated size in bytes of the `p_output`
- *                              buffer
- *
- * \retval #PSA_SUCCESS \emptydescription
- * \retval #PSA_ERROR_NOT_SUPPORTED \emptydescription
- */
-typedef psa_status_t (*psa_drv_se_cipher_ecb_t)(psa_drv_se_context_t *drv_context,
-                                                psa_key_slot_number_t key_slot,
-                                                psa_algorithm_t algorithm,
-                                                psa_encrypt_or_decrypt_t direction,
-                                                const uint8_t *p_input,
-                                                size_t input_size,
-                                                uint8_t *p_output,
-                                                size_t output_size);
-
-/**
- * \brief A struct containing all of the function pointers needed to implement
- * cipher operations using secure elements.
- *
- * PSA Crypto API implementations should populate instances of the table as
- * appropriate upon startup or at build time.
- *
- * If one of the functions is not implemented (such as
- * `psa_drv_se_cipher_ecb_t`), it should be set to NULL.
- */
-typedef struct {
-    /** The size in bytes of the hardware-specific secure element cipher
-     * context structure
-     */
-    size_t               MBEDTLS_PRIVATE(context_size);
-    /** Function that performs a cipher setup operation */
-    psa_drv_se_cipher_setup_t  MBEDTLS_PRIVATE(p_setup);
-    /** Function that sets a cipher IV (if necessary) */
-    psa_drv_se_cipher_set_iv_t MBEDTLS_PRIVATE(p_set_iv);
-    /** Function that performs a cipher update operation */
-    psa_drv_se_cipher_update_t MBEDTLS_PRIVATE(p_update);
-    /** Function that completes a cipher operation */
-    psa_drv_se_cipher_finish_t MBEDTLS_PRIVATE(p_finish);
-    /** Function that aborts a cipher operation */
-    psa_drv_se_cipher_abort_t  MBEDTLS_PRIVATE(p_abort);
-    /** Function that performs ECB mode for a cipher operation
-     * (Danger: ECB mode should not be used directly by clients of the PSA
-     * Crypto Client API)
-     */
-    psa_drv_se_cipher_ecb_t    MBEDTLS_PRIVATE(p_ecb);
-} psa_drv_se_cipher_t;
-
-/**@}*/
-
-/** \defgroup se_asymmetric Secure Element Asymmetric Cryptography
- *
- * Since the amount of data that can (or should) be encrypted or signed using
- * asymmetric keys is limited by the key size, asymmetric key operations using
- * keys in a secure element must be done in single function calls.
- */
-/**@{*/
-
-/**
- * \brief A function that signs a hash or short message with a private key in
- * a secure element
- *
- * \param[in,out] drv_context       The driver context structure.
- * \param[in] key_slot              Key slot of an asymmetric key pair
- * \param[in] alg                   A signature algorithm that is compatible
- *                                  with the type of `key`
- * \param[in] p_hash                The hash to sign
- * \param[in] hash_length           Size of the `p_hash` buffer in bytes
- * \param[out] p_signature          Buffer where the signature is to be written
- * \param[in] signature_size        Size of the `p_signature` buffer in bytes
- * \param[out] p_signature_length   On success, the number of bytes
- *                                  that make up the returned signature value
- *
- * \retval #PSA_SUCCESS \emptydescription
- */
-typedef psa_status_t (*psa_drv_se_asymmetric_sign_t)(psa_drv_se_context_t *drv_context,
-                                                     psa_key_slot_number_t key_slot,
-                                                     psa_algorithm_t alg,
-                                                     const uint8_t *p_hash,
-                                                     size_t hash_length,
-                                                     uint8_t *p_signature,
-                                                     size_t signature_size,
-                                                     size_t *p_signature_length);
-
-/**
- * \brief A function that verifies the signature a hash or short message using
- * an asymmetric public key in a secure element
- *
- * \param[in,out] drv_context   The driver context structure.
- * \param[in] key_slot          Key slot of a public key or an asymmetric key
- *                              pair
- * \param[in] alg               A signature algorithm that is compatible with
- *                              the type of `key`
- * \param[in] p_hash            The hash whose signature is to be verified
- * \param[in] hash_length       Size of the `p_hash` buffer in bytes
- * \param[in] p_signature       Buffer containing the signature to verify
- * \param[in] signature_length  Size of the `p_signature` buffer in bytes
- *
- * \retval #PSA_SUCCESS
- *         The signature is valid.
- */
-typedef psa_status_t (*psa_drv_se_asymmetric_verify_t)(psa_drv_se_context_t *drv_context,
-                                                       psa_key_slot_number_t key_slot,
-                                                       psa_algorithm_t alg,
-                                                       const uint8_t *p_hash,
-                                                       size_t hash_length,
-                                                       const uint8_t *p_signature,
-                                                       size_t signature_length);
-
-/**
- * \brief A function that encrypts a short message with an asymmetric public
- * key in a secure element
- *
- * \param[in,out] drv_context   The driver context structure.
- * \param[in] key_slot          Key slot of a public key or an asymmetric key
- *                              pair
- * \param[in] alg               An asymmetric encryption algorithm that is
- *                              compatible with the type of `key`
- * \param[in] p_input           The message to encrypt
- * \param[in] input_length      Size of the `p_input` buffer in bytes
- * \param[in] p_salt            A salt or label, if supported by the
- *                              encryption algorithm
- *                              If the algorithm does not support a
- *                              salt, pass `NULL`.
- *                              If the algorithm supports an optional
- *                              salt and you do not want to pass a salt,
- *                              pass `NULL`.
- *                              For #PSA_ALG_RSA_PKCS1V15_CRYPT, no salt is
- *                              supported.
- * \param[in] salt_length       Size of the `p_salt` buffer in bytes
- *                              If `p_salt` is `NULL`, pass 0.
- * \param[out] p_output         Buffer where the encrypted message is to
- *                              be written
- * \param[in] output_size       Size of the `p_output` buffer in bytes
- * \param[out] p_output_length  On success, the number of bytes that make up
- *                              the returned output
- *
- * \retval #PSA_SUCCESS \emptydescription
- */
-typedef psa_status_t (*psa_drv_se_asymmetric_encrypt_t)(psa_drv_se_context_t *drv_context,
-                                                        psa_key_slot_number_t key_slot,
-                                                        psa_algorithm_t alg,
-                                                        const uint8_t *p_input,
-                                                        size_t input_length,
-                                                        const uint8_t *p_salt,
-                                                        size_t salt_length,
-                                                        uint8_t *p_output,
-                                                        size_t output_size,
-                                                        size_t *p_output_length);
-
-/**
- * \brief A function that decrypts a short message with an asymmetric private
- * key in a secure element.
- *
- * \param[in,out] drv_context   The driver context structure.
- * \param[in] key_slot          Key slot of an asymmetric key pair
- * \param[in] alg               An asymmetric encryption algorithm that is
- *                              compatible with the type of `key`
- * \param[in] p_input           The message to decrypt
- * \param[in] input_length      Size of the `p_input` buffer in bytes
- * \param[in] p_salt            A salt or label, if supported by the
- *                              encryption algorithm
- *                              If the algorithm does not support a
- *                              salt, pass `NULL`.
- *                              If the algorithm supports an optional
- *                              salt and you do not want to pass a salt,
- *                              pass `NULL`.
- *                              For #PSA_ALG_RSA_PKCS1V15_CRYPT, no salt is
- *                              supported.
- * \param[in] salt_length       Size of the `p_salt` buffer in bytes
- *                              If `p_salt` is `NULL`, pass 0.
- * \param[out] p_output         Buffer where the decrypted message is to
- *                              be written
- * \param[in] output_size       Size of the `p_output` buffer in bytes
- * \param[out] p_output_length  On success, the number of bytes
- *                              that make up the returned output
- *
- * \retval #PSA_SUCCESS \emptydescription
- */
-typedef psa_status_t (*psa_drv_se_asymmetric_decrypt_t)(psa_drv_se_context_t *drv_context,
-                                                        psa_key_slot_number_t key_slot,
-                                                        psa_algorithm_t alg,
-                                                        const uint8_t *p_input,
-                                                        size_t input_length,
-                                                        const uint8_t *p_salt,
-                                                        size_t salt_length,
-                                                        uint8_t *p_output,
-                                                        size_t output_size,
-                                                        size_t *p_output_length);
-
-/**
- * \brief A struct containing all of the function pointers needed to implement
- * asymmetric cryptographic operations using secure elements.
- *
- * PSA Crypto API implementations should populate instances of the table as
- * appropriate upon startup or at build time.
- *
- * If one of the functions is not implemented, it should be set to NULL.
- */
-typedef struct {
-    /** Function that performs an asymmetric sign operation */
-    psa_drv_se_asymmetric_sign_t    MBEDTLS_PRIVATE(p_sign);
-    /** Function that performs an asymmetric verify operation */
-    psa_drv_se_asymmetric_verify_t  MBEDTLS_PRIVATE(p_verify);
-    /** Function that performs an asymmetric encrypt operation */
-    psa_drv_se_asymmetric_encrypt_t MBEDTLS_PRIVATE(p_encrypt);
-    /** Function that performs an asymmetric decrypt operation */
-    psa_drv_se_asymmetric_decrypt_t MBEDTLS_PRIVATE(p_decrypt);
-} psa_drv_se_asymmetric_t;
-
-/**@}*/
-
-/** \defgroup se_aead Secure Element Authenticated Encryption with Additional Data
- * Authenticated Encryption with Additional Data (AEAD) operations with secure
- * elements must be done in one function call. While this creates a burden for
- * implementers as there must be sufficient space in memory for the entire
- * message, it prevents decrypted data from being made available before the
- * authentication operation is complete and the data is known to be authentic.
- */
-/**@{*/
-
-/** \brief A function that performs a secure element authenticated encryption
- * operation
- *
- * \param[in,out] drv_context           The driver context structure.
- * \param[in] key_slot                  Slot containing the key to use.
- * \param[in] algorithm                 The AEAD algorithm to compute
- *                                      (\c PSA_ALG_XXX value such that
- *                                      #PSA_ALG_IS_AEAD(`alg`) is true)
- * \param[in] p_nonce                   Nonce or IV to use
- * \param[in] nonce_length              Size of the `p_nonce` buffer in bytes
- * \param[in] p_additional_data         Additional data that will be
- *                                      authenticated but not encrypted
- * \param[in] additional_data_length    Size of `p_additional_data` in bytes
- * \param[in] p_plaintext               Data that will be authenticated and
- *                                      encrypted
- * \param[in] plaintext_length          Size of `p_plaintext` in bytes
- * \param[out] p_ciphertext             Output buffer for the authenticated and
- *                                      encrypted data. The additional data is
- *                                      not part of this output. For algorithms
- *                                      where the encrypted data and the
- *                                      authentication tag are defined as
- *                                      separate outputs, the authentication
- *                                      tag is appended to the encrypted data.
- * \param[in] ciphertext_size           Size of the `p_ciphertext` buffer in
- *                                      bytes
- * \param[out] p_ciphertext_length      On success, the size of the output in
- *                                      the `p_ciphertext` buffer
- *
- * \retval #PSA_SUCCESS
- *         Success.
- */
-typedef psa_status_t (*psa_drv_se_aead_encrypt_t)(psa_drv_se_context_t *drv_context,
-                                                  psa_key_slot_number_t key_slot,
-                                                  psa_algorithm_t algorithm,
-                                                  const uint8_t *p_nonce,
-                                                  size_t nonce_length,
-                                                  const uint8_t *p_additional_data,
-                                                  size_t additional_data_length,
-                                                  const uint8_t *p_plaintext,
-                                                  size_t plaintext_length,
-                                                  uint8_t *p_ciphertext,
-                                                  size_t ciphertext_size,
-                                                  size_t *p_ciphertext_length);
-
-/** A function that performs a secure element authenticated decryption operation
- *
- * \param[in,out] drv_context           The driver context structure.
- * \param[in] key_slot                  Slot containing the key to use
- * \param[in] algorithm                 The AEAD algorithm to compute
- *                                      (\c PSA_ALG_XXX value such that
- *                                      #PSA_ALG_IS_AEAD(`alg`) is true)
- * \param[in] p_nonce                   Nonce or IV to use
- * \param[in] nonce_length              Size of the `p_nonce` buffer in bytes
- * \param[in] p_additional_data         Additional data that has been
- *                                      authenticated but not encrypted
- * \param[in] additional_data_length    Size of `p_additional_data` in bytes
- * \param[in] p_ciphertext              Data that has been authenticated and
- *                                      encrypted.
- *                                      For algorithms where the encrypted data
- *                                      and the authentication tag are defined
- *                                      as separate inputs, the buffer must
- *                                      contain the encrypted data followed by
- *                                      the authentication tag.
- * \param[in] ciphertext_length         Size of `p_ciphertext` in bytes
- * \param[out] p_plaintext              Output buffer for the decrypted data
- * \param[in] plaintext_size            Size of the `p_plaintext` buffer in
- *                                      bytes
- * \param[out] p_plaintext_length       On success, the size of the output in
- *                                      the `p_plaintext` buffer
- *
- * \retval #PSA_SUCCESS
- *         Success.
- */
-typedef psa_status_t (*psa_drv_se_aead_decrypt_t)(psa_drv_se_context_t *drv_context,
-                                                  psa_key_slot_number_t key_slot,
-                                                  psa_algorithm_t algorithm,
-                                                  const uint8_t *p_nonce,
-                                                  size_t nonce_length,
-                                                  const uint8_t *p_additional_data,
-                                                  size_t additional_data_length,
-                                                  const uint8_t *p_ciphertext,
-                                                  size_t ciphertext_length,
-                                                  uint8_t *p_plaintext,
-                                                  size_t plaintext_size,
-                                                  size_t *p_plaintext_length);
-
-/**
- * \brief A struct containing all of the function pointers needed to implement
- * secure element Authenticated Encryption with Additional Data operations
- *
- * PSA Crypto API implementations should populate instances of the table as
- * appropriate upon startup.
- *
- * If one of the functions is not implemented, it should be set to NULL.
- */
-typedef struct {
-    /** Function that performs the AEAD encrypt operation */
-    psa_drv_se_aead_encrypt_t MBEDTLS_PRIVATE(p_encrypt);
-    /** Function that performs the AEAD decrypt operation */
-    psa_drv_se_aead_decrypt_t MBEDTLS_PRIVATE(p_decrypt);
-} psa_drv_se_aead_t;
-/**@}*/
-
-/** \defgroup se_key_management Secure Element Key Management
- * Currently, key management is limited to importing keys in the clear,
- * destroying keys, and exporting keys in the clear.
- * Whether a key may be exported is determined by the key policies in place
- * on the key slot.
- */
-/**@{*/
-
-/** An enumeration indicating how a key is created.
- */
-typedef enum {
-    PSA_KEY_CREATION_IMPORT, /**< During psa_import_key() */
-    PSA_KEY_CREATION_GENERATE, /**< During psa_generate_key() */
-    PSA_KEY_CREATION_DERIVE, /**< During psa_key_derivation_output_key() */
-    PSA_KEY_CREATION_COPY, /**< During psa_copy_key() */
-
-#ifndef __DOXYGEN_ONLY__
-    /** A key is being registered with mbedtls_psa_register_se_key().
-     *
-     * The core only passes this value to
-     * psa_drv_se_key_management_t::p_validate_slot_number, not to
-     * psa_drv_se_key_management_t::p_allocate. The call to
-     * `p_validate_slot_number` is not followed by any other call to the
-     * driver: the key is considered successfully registered if the call to
-     * `p_validate_slot_number` succeeds, or if `p_validate_slot_number` is
-     * null.
-     *
-     * With this creation method, the driver must return #PSA_SUCCESS if
-     * the given attributes are compatible with the existing key in the slot,
-     * and #PSA_ERROR_DOES_NOT_EXIST if the driver can determine that there
-     * is no key with the specified slot number.
-     *
-     * This is an Mbed TLS extension.
-     */
-    PSA_KEY_CREATION_REGISTER,
-#endif
-} psa_key_creation_method_t;
-
-/** \brief A function that allocates a slot for a key.
- *
- * To create a key in a specific slot in a secure element, the core
- * first calls this function to determine a valid slot number,
- * then calls a function to create the key material in that slot.
- * In nominal conditions (that is, if no error occurs),
- * the effect of a call to a key creation function in the PSA Cryptography
- * API with a lifetime that places the key in a secure element is the
- * following:
- * -# The core calls psa_drv_se_key_management_t::p_allocate
- *    (or in some implementations
- *    psa_drv_se_key_management_t::p_validate_slot_number). The driver
- *    selects (or validates) a suitable slot number given the key attributes
- *    and the state of the secure element.
- * -# The core calls a key creation function in the driver.
- *
- * The key creation functions in the PSA Cryptography API are:
- * - psa_import_key(), which causes
- *   a call to `p_allocate` with \p method = #PSA_KEY_CREATION_IMPORT
- *   then a call to psa_drv_se_key_management_t::p_import.
- * - psa_generate_key(), which causes
- *   a call to `p_allocate` with \p method = #PSA_KEY_CREATION_GENERATE
- *   then a call to psa_drv_se_key_management_t::p_import.
- * - psa_key_derivation_output_key(), which causes
- *   a call to `p_allocate` with \p method = #PSA_KEY_CREATION_DERIVE
- *   then a call to psa_drv_se_key_derivation_t::p_derive.
- * - psa_copy_key(), which causes
- *   a call to `p_allocate` with \p method = #PSA_KEY_CREATION_COPY
- *   then a call to psa_drv_se_key_management_t::p_export.
- *
- * In case of errors, other behaviors are possible.
- * - If the PSA Cryptography subsystem dies after the first step,
- *   for example because the device has lost power abruptly,
- *   the second step may never happen, or may happen after a reset
- *   and re-initialization. Alternatively, after a reset and
- *   re-initialization, the core may call
- *   psa_drv_se_key_management_t::p_destroy on the slot number that
- *   was allocated (or validated) instead of calling a key creation function.
- * - If an error occurs, the core may call
- *   psa_drv_se_key_management_t::p_destroy on the slot number that
- *   was allocated (or validated) instead of calling a key creation function.
- *
- * Errors and system resets also have an impact on the driver's persistent
- * data. If a reset happens before the overall key creation process is
- * completed (before or after the second step above), it is unspecified
- * whether the persistent data after the reset is identical to what it
- * was before or after the call to `p_allocate` (or `p_validate_slot_number`).
- *
- * \param[in,out] drv_context       The driver context structure.
- * \param[in,out] persistent_data   A pointer to the persistent data
- *                                  that allows writing.
- * \param[in] attributes            Attributes of the key.
- * \param method                    The way in which the key is being created.
- * \param[out] key_slot             Slot where the key will be stored.
- *                                  This must be a valid slot for a key of the
- *                                  chosen type. It must be unoccupied.
- *
- * \retval #PSA_SUCCESS
- *         Success.
- *         The core will record \c *key_slot as the key slot where the key
- *         is stored and will update the persistent data in storage.
- * \retval #PSA_ERROR_NOT_SUPPORTED \emptydescription
- * \retval #PSA_ERROR_INSUFFICIENT_STORAGE \emptydescription
- */
-typedef psa_status_t (*psa_drv_se_allocate_key_t)(
-    psa_drv_se_context_t *drv_context,
-    void *persistent_data,
-    const psa_key_attributes_t *attributes,
-    psa_key_creation_method_t method,
-    psa_key_slot_number_t *key_slot);
-
-/** \brief A function that determines whether a slot number is valid
- * for a key.
- *
- * To create a key in a specific slot in a secure element, the core
- * first calls this function to validate the choice of slot number,
- * then calls a function to create the key material in that slot.
- * See the documentation of #psa_drv_se_allocate_key_t for more details.
- *
- * As of the PSA Cryptography API specification version 1.0, there is no way
- * for applications to trigger a call to this function. However some
- * implementations offer the capability to create or declare a key in
- * a specific slot via implementation-specific means, generally for the
- * sake of initial device provisioning or onboarding. Such a mechanism may
- * be added to a future version of the PSA Cryptography API specification.
- *
- * This function may update the driver's persistent data through
- * \p persistent_data. The core will save the updated persistent data at the
- * end of the key creation process. See the description of
- * ::psa_drv_se_allocate_key_t for more information.
- *
- * \param[in,out] drv_context   The driver context structure.
- * \param[in,out] persistent_data   A pointer to the persistent data
- *                                  that allows writing.
- * \param[in] attributes        Attributes of the key.
- * \param method                The way in which the key is being created.
- * \param[in] key_slot          Slot where the key is to be stored.
- *
- * \retval #PSA_SUCCESS
- *         The given slot number is valid for a key with the given
- *         attributes.
- * \retval #PSA_ERROR_INVALID_ARGUMENT
- *         The given slot number is not valid for a key with the
- *         given attributes. This includes the case where the slot
- *         number is not valid at all.
- * \retval #PSA_ERROR_ALREADY_EXISTS
- *         There is already a key with the specified slot number.
- *         Drivers may choose to return this error from the key
- *         creation function instead.
- */
-typedef psa_status_t (*psa_drv_se_validate_slot_number_t)(
-    psa_drv_se_context_t *drv_context,
-    void *persistent_data,
-    const psa_key_attributes_t *attributes,
-    psa_key_creation_method_t method,
-    psa_key_slot_number_t key_slot);
-
-/** \brief A function that imports a key into a secure element in binary format
- *
- * This function can support any output from psa_export_key(). Refer to the
- * documentation of psa_export_key() for the format for each key type.
- *
- * \param[in,out] drv_context   The driver context structure.
- * \param key_slot              Slot where the key will be stored.
- *                              This must be a valid slot for a key of the
- *                              chosen type. It must be unoccupied.
- * \param[in] attributes        The key attributes, including the lifetime,
- *                              the key type and the usage policy.
- *                              Drivers should not access the key size stored
- *                              in the attributes: it may not match the
- *                              data passed in \p data.
- *                              Drivers can call psa_get_key_lifetime(),
- *                              psa_get_key_type(),
- *                              psa_get_key_usage_flags() and
- *                              psa_get_key_algorithm() to access this
- *                              information.
- * \param[in] data              Buffer containing the key data.
- * \param[in] data_length       Size of the \p data buffer in bytes.
- * \param[out] bits             On success, the key size in bits. The driver
- *                              must determine this value after parsing the
- *                              key according to the key type.
- *                              This value is not used if the function fails.
- *
- * \retval #PSA_SUCCESS
- *         Success.
- */
-typedef psa_status_t (*psa_drv_se_import_key_t)(
-    psa_drv_se_context_t *drv_context,
-    psa_key_slot_number_t key_slot,
-    const psa_key_attributes_t *attributes,
-    const uint8_t *data,
-    size_t data_length,
-    size_t *bits);
-
-/**
- * \brief A function that destroys a secure element key and restore the slot to
- * its default state
- *
- * This function destroys the content of the key from a secure element.
- * Implementations shall make a best effort to ensure that any previous content
- * of the slot is unrecoverable.
- *
- * This function returns the specified slot to its default state.
- *
- * \param[in,out] drv_context       The driver context structure.
- * \param[in,out] persistent_data   A pointer to the persistent data
- *                                  that allows writing.
- * \param key_slot                  The key slot to erase.
- *
- * \retval #PSA_SUCCESS
- *         The slot's content, if any, has been erased.
- */
-typedef psa_status_t (*psa_drv_se_destroy_key_t)(
-    psa_drv_se_context_t *drv_context,
-    void *persistent_data,
-    psa_key_slot_number_t key_slot);
-
-/**
- * \brief A function that exports a secure element key in binary format
- *
- * The output of this function can be passed to psa_import_key() to
- * create an equivalent object.
- *
- * If a key is created with `psa_import_key()` and then exported with
- * this function, it is not guaranteed that the resulting data is
- * identical: the implementation may choose a different representation
- * of the same key if the format permits it.
- *
- * This function should generate output in the same format that
- * `psa_export_key()` does. Refer to the
- * documentation of `psa_export_key()` for the format for each key type.
- *
- * \param[in,out] drv_context   The driver context structure.
- * \param[in] key               Slot whose content is to be exported. This must
- *                              be an occupied key slot.
- * \param[out] p_data           Buffer where the key data is to be written.
- * \param[in] data_size         Size of the `p_data` buffer in bytes.
- * \param[out] p_data_length    On success, the number of bytes
- *                              that make up the key data.
- *
- * \retval #PSA_SUCCESS \emptydescription
- * \retval #PSA_ERROR_DOES_NOT_EXIST \emptydescription
- * \retval #PSA_ERROR_NOT_PERMITTED \emptydescription
- * \retval #PSA_ERROR_NOT_SUPPORTED \emptydescription
- * \retval #PSA_ERROR_COMMUNICATION_FAILURE \emptydescription
- * \retval #PSA_ERROR_HARDWARE_FAILURE \emptydescription
- * \retval #PSA_ERROR_CORRUPTION_DETECTED \emptydescription
- */
-typedef psa_status_t (*psa_drv_se_export_key_t)(psa_drv_se_context_t *drv_context,
-                                                psa_key_slot_number_t key,
-                                                uint8_t *p_data,
-                                                size_t data_size,
-                                                size_t *p_data_length);
-
-/**
- * \brief A function that generates a symmetric or asymmetric key on a secure
- * element
- *
- * If the key type \c type recorded in \p attributes
- * is asymmetric (#PSA_KEY_TYPE_IS_ASYMMETRIC(\c type) = 1),
- * the driver may export the public key at the time of generation,
- * in the format documented for psa_export_public_key() by writing it
- * to the \p pubkey buffer.
- * This is optional, intended for secure elements that output the
- * public key at generation time and that cannot export the public key
- * later. Drivers that do not need this feature should leave
- * \p *pubkey_length set to 0 and should
- * implement the psa_drv_key_management_t::p_export_public function.
- * Some implementations do not support this feature, in which case
- * \p pubkey is \c NULL and \p pubkey_size is 0.
- *
- * \param[in,out] drv_context   The driver context structure.
- * \param key_slot              Slot where the key will be stored.
- *                              This must be a valid slot for a key of the
- *                              chosen type. It must be unoccupied.
- * \param[in] attributes        The key attributes, including the lifetime,
- *                              the key type and size, and the usage policy.
- *                              Drivers can call psa_get_key_lifetime(),
- *                              psa_get_key_type(), psa_get_key_bits(),
- *                              psa_get_key_usage_flags() and
- *                              psa_get_key_algorithm() to access this
- *                              information.
- * \param[out] pubkey           A buffer where the driver can write the
- *                              public key, when generating an asymmetric
- *                              key pair.
- *                              This is \c NULL when generating a symmetric
- *                              key or if the core does not support
- *                              exporting the public key at generation time.
- * \param pubkey_size           The size of the `pubkey` buffer in bytes.
- *                              This is 0 when generating a symmetric
- *                              key or if the core does not support
- *                              exporting the public key at generation time.
- * \param[out] pubkey_length    On entry, this is always 0.
- *                              On success, the number of bytes written to
- *                              \p pubkey. If this is 0 or unchanged on return,
- *                              the core will not read the \p pubkey buffer,
- *                              and will instead call the driver's
- *                              psa_drv_key_management_t::p_export_public
- *                              function to export the public key when needed.
- */
-typedef psa_status_t (*psa_drv_se_generate_key_t)(
-    psa_drv_se_context_t *drv_context,
-    psa_key_slot_number_t key_slot,
-    const psa_key_attributes_t *attributes,
-    uint8_t *pubkey, size_t pubkey_size, size_t *pubkey_length);
-
-/**
- * \brief A struct containing all of the function pointers needed to for secure
- * element key management
- *
- * PSA Crypto API implementations should populate instances of the table as
- * appropriate upon startup or at build time.
- *
- * If one of the functions is not implemented, it should be set to NULL.
- */
-typedef struct {
-    /** Function that allocates a slot for a key. */
-    psa_drv_se_allocate_key_t   MBEDTLS_PRIVATE(p_allocate);
-    /** Function that checks the validity of a slot for a key. */
-    psa_drv_se_validate_slot_number_t MBEDTLS_PRIVATE(p_validate_slot_number);
-    /** Function that performs a key import operation */
-    psa_drv_se_import_key_t     MBEDTLS_PRIVATE(p_import);
-    /** Function that performs a generation */
-    psa_drv_se_generate_key_t   MBEDTLS_PRIVATE(p_generate);
-    /** Function that performs a key destroy operation */
-    psa_drv_se_destroy_key_t    MBEDTLS_PRIVATE(p_destroy);
-    /** Function that performs a key export operation */
-    psa_drv_se_export_key_t     MBEDTLS_PRIVATE(p_export);
-    /** Function that performs a public key export operation */
-    psa_drv_se_export_key_t     MBEDTLS_PRIVATE(p_export_public);
-} psa_drv_se_key_management_t;
-
-/**@}*/
-
-/** \defgroup driver_derivation Secure Element Key Derivation and Agreement
- * Key derivation is the process of generating new key material using an
- * existing key and additional parameters, iterating through a basic
- * cryptographic function, such as a hash.
- * Key agreement is a part of cryptographic protocols that allows two parties
- * to agree on the same key value, but starting from different original key
- * material.
- * The flows are similar, and the PSA Crypto Driver Model uses the same functions
- * for both of the flows.
- *
- * There are two different final functions for the flows,
- * `psa_drv_se_key_derivation_derive` and `psa_drv_se_key_derivation_export`.
- * `psa_drv_se_key_derivation_derive` is used when the key material should be
- * placed in a slot on the hardware and not exposed to the caller.
- * `psa_drv_se_key_derivation_export` is used when the key material should be
- * returned to the PSA Cryptographic API implementation.
- *
- * Different key derivation algorithms require a different number of inputs.
- * Instead of having an API that takes as input variable length arrays, which
- * can be problematic to manage on embedded platforms, the inputs are passed
- * to the driver via a function, `psa_drv_se_key_derivation_collateral`, that
- * is called multiple times with different `collateral_id`s. Thus, for a key
- * derivation algorithm that required 3 parameter inputs, the flow would look
- * something like:
- * ~~~~~~~~~~~~~{.c}
- * psa_drv_se_key_derivation_setup(kdf_algorithm, source_key, dest_key_size_bytes);
- * psa_drv_se_key_derivation_collateral(kdf_algorithm_collateral_id_0,
- *                                      p_collateral_0,
- *                                      collateral_0_size);
- * psa_drv_se_key_derivation_collateral(kdf_algorithm_collateral_id_1,
- *                                      p_collateral_1,
- *                                      collateral_1_size);
- * psa_drv_se_key_derivation_collateral(kdf_algorithm_collateral_id_2,
- *                                      p_collateral_2,
- *                                      collateral_2_size);
- * psa_drv_se_key_derivation_derive();
- * ~~~~~~~~~~~~~
- *
- * key agreement example:
- * ~~~~~~~~~~~~~{.c}
- * psa_drv_se_key_derivation_setup(alg, source_key. dest_key_size_bytes);
- * psa_drv_se_key_derivation_collateral(DHE_PUBKEY, p_pubkey, pubkey_size);
- * psa_drv_se_key_derivation_export(p_session_key,
- *                                  session_key_size,
- *                                  &session_key_length);
- * ~~~~~~~~~~~~~
- */
-/**@{*/
-
-/** \brief A function that Sets up a secure element key derivation operation by
- * specifying the algorithm and the source key sot
- *
- * \param[in,out] drv_context   The driver context structure.
- * \param[in,out] op_context    A hardware-specific structure containing any
- *                              context information for the implementation
- * \param[in] kdf_alg           The algorithm to be used for the key derivation
- * \param[in] source_key        The key to be used as the source material for
- *                              the key derivation
- *
- * \retval #PSA_SUCCESS \emptydescription
- */
-typedef psa_status_t (*psa_drv_se_key_derivation_setup_t)(psa_drv_se_context_t *drv_context,
-                                                          void *op_context,
-                                                          psa_algorithm_t kdf_alg,
-                                                          psa_key_slot_number_t source_key);
-
-/** \brief A function that provides collateral (parameters) needed for a secure
- * element key derivation or key agreement operation
- *
- * Since many key derivation algorithms require multiple parameters, it is
- * expected that this function may be called multiple times for the same
- * operation, each with a different algorithm-specific `collateral_id`
- *
- * \param[in,out] op_context    A hardware-specific structure containing any
- *                              context information for the implementation
- * \param[in] collateral_id     An ID for the collateral being provided
- * \param[in] p_collateral      A buffer containing the collateral data
- * \param[in] collateral_size   The size in bytes of the collateral
- *
- * \retval #PSA_SUCCESS \emptydescription
- */
-typedef psa_status_t (*psa_drv_se_key_derivation_collateral_t)(void *op_context,
-                                                               uint32_t collateral_id,
-                                                               const uint8_t *p_collateral,
-                                                               size_t collateral_size);
-
-/** \brief A function that performs the final secure element key derivation
- * step and place the generated key material in a slot
- *
- * \param[in,out] op_context    A hardware-specific structure containing any
- *                              context information for the implementation
- * \param[in] dest_key          The slot where the generated key material
- *                              should be placed
- *
- * \retval #PSA_SUCCESS \emptydescription
- */
-typedef psa_status_t (*psa_drv_se_key_derivation_derive_t)(void *op_context,
-                                                           psa_key_slot_number_t dest_key);
-
-/** \brief A function that performs the final step of a secure element key
- * agreement and place the generated key material in a buffer
- *
- * \param[out] p_output         Buffer in which to place the generated key
- *                              material
- * \param[in] output_size       The size in bytes of `p_output`
- * \param[out] p_output_length  Upon success, contains the number of bytes of
- *                              key material placed in `p_output`
- *
- * \retval #PSA_SUCCESS \emptydescription
- */
-typedef psa_status_t (*psa_drv_se_key_derivation_export_t)(void *op_context,
-                                                           uint8_t *p_output,
-                                                           size_t output_size,
-                                                           size_t *p_output_length);
-
-/**
- * \brief A struct containing all of the function pointers needed to for secure
- * element key derivation and agreement
- *
- * PSA Crypto API implementations should populate instances of the table as
- * appropriate upon startup.
- *
- * If one of the functions is not implemented, it should be set to NULL.
- */
-typedef struct {
-    /** The driver-specific size of the key derivation context */
-    size_t                           MBEDTLS_PRIVATE(context_size);
-    /** Function that performs a key derivation setup */
-    psa_drv_se_key_derivation_setup_t      MBEDTLS_PRIVATE(p_setup);
-    /** Function that sets key derivation collateral */
-    psa_drv_se_key_derivation_collateral_t MBEDTLS_PRIVATE(p_collateral);
-    /** Function that performs a final key derivation step */
-    psa_drv_se_key_derivation_derive_t     MBEDTLS_PRIVATE(p_derive);
-    /** Function that performs a final key derivation or agreement and
-     * exports the key */
-    psa_drv_se_key_derivation_export_t     MBEDTLS_PRIVATE(p_export);
-} psa_drv_se_key_derivation_t;
-
-/**@}*/
-
-/** \defgroup se_registration Secure element driver registration
- */
-/**@{*/
-
-/** A structure containing pointers to all the entry points of a
- * secure element driver.
- *
- * Future versions of this specification may add extra substructures at
- * the end of this structure.
- */
-typedef struct {
-    /** The version of the driver HAL that this driver implements.
-     * This is a protection against loading driver binaries built against
-     * a different version of this specification.
-     * Use #PSA_DRV_SE_HAL_VERSION.
-     */
-    uint32_t MBEDTLS_PRIVATE(hal_version);
-
-    /** The size of the driver's persistent data in bytes.
-     *
-     * This can be 0 if the driver does not need persistent data.
-     *
-     * See the documentation of psa_drv_se_context_t::persistent_data
-     * for more information about why and how a driver can use
-     * persistent data.
-     */
-    size_t MBEDTLS_PRIVATE(persistent_data_size);
-
-    /** The driver initialization function.
-     *
-     * This function is called once during the initialization of the
-     * PSA Cryptography subsystem, before any other function of the
-     * driver is called. If this function returns a failure status,
-     * the driver will be unusable, at least until the next system reset.
-     *
-     * If this field is \c NULL, it is equivalent to a function that does
-     * nothing and returns #PSA_SUCCESS.
-     */
-    psa_drv_se_init_t MBEDTLS_PRIVATE(p_init);
-
-    const psa_drv_se_key_management_t *MBEDTLS_PRIVATE(key_management);
-    const psa_drv_se_mac_t *MBEDTLS_PRIVATE(mac);
-    const psa_drv_se_cipher_t *MBEDTLS_PRIVATE(cipher);
-    const psa_drv_se_aead_t *MBEDTLS_PRIVATE(aead);
-    const psa_drv_se_asymmetric_t *MBEDTLS_PRIVATE(asymmetric);
-    const psa_drv_se_key_derivation_t *MBEDTLS_PRIVATE(derivation);
-} psa_drv_se_t;
-
-/** The current version of the secure element driver HAL.
- */
-/* 0.0.0 patchlevel 5 */
-#define PSA_DRV_SE_HAL_VERSION 0x00000005
-
-/** Register an external cryptoprocessor (secure element) driver.
- *
- * This function is only intended to be used by driver code, not by
- * application code. In implementations with separation between the
- * PSA cryptography module and applications, this function should
- * only be available to callers that run in the same memory space as
- * the cryptography module, and should not be exposed to applications
- * running in a different memory space.
- *
- * This function may be called before psa_crypto_init(). It is
- * implementation-defined whether this function may be called
- * after psa_crypto_init().
- *
- * \note Implementations store metadata about keys including the lifetime
- *       value, which contains the driver's location indicator. Therefore,
- *       from one instantiation of the PSA Cryptography
- *       library to the next one, if there is a key in storage with a certain
- *       lifetime value, you must always register the same driver (or an
- *       updated version that communicates with the same secure element)
- *       with the same location value.
- *
- * \param location      The location value through which this driver will
- *                      be exposed to applications.
- *                      This driver will be used for all keys such that
- *                      `location == #PSA_KEY_LIFETIME_GET_LOCATION( lifetime )`.
- *                      The value #PSA_KEY_LOCATION_LOCAL_STORAGE is reserved
- *                      and may not be used for drivers. Implementations
- *                      may reserve other values.
- * \param[in] methods   The method table of the driver. This structure must
- *                      remain valid for as long as the cryptography
- *                      module keeps running. It is typically a global
- *                      constant.
- *
- * \return #PSA_SUCCESS
- *         The driver was successfully registered. Applications can now
- *         use \p location to access keys through the methods passed to
- *         this function.
- * \return #PSA_ERROR_BAD_STATE
- *         This function was called after the initialization of the
- *         cryptography module, and this implementation does not support
- *         driver registration at this stage.
- * \return #PSA_ERROR_ALREADY_EXISTS
- *         There is already a registered driver for this value of \p location.
- * \return #PSA_ERROR_INVALID_ARGUMENT
- *         \p location is a reserved value.
- * \return #PSA_ERROR_NOT_SUPPORTED
- *         `methods->hal_version` is not supported by this implementation.
- * \return #PSA_ERROR_INSUFFICIENT_MEMORY
- * \return #PSA_ERROR_NOT_PERMITTED
- * \return #PSA_ERROR_STORAGE_FAILURE
- * \return #PSA_ERROR_DATA_CORRUPT
- */
-psa_status_t psa_register_se_driver(
-    psa_key_location_t location,
-    const psa_drv_se_t *methods);
-
-/**@}*/
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* PSA_CRYPTO_SE_DRIVER_H */
diff --git a/deps/LIEF/third-party/mbedtls/library/.gitignore b/deps/LIEF/third-party/mbedtls/library/.gitignore
index 3351e8bfc61..92a33de2bce 100644
--- a/deps/LIEF/third-party/mbedtls/library/.gitignore
+++ b/deps/LIEF/third-party/mbedtls/library/.gitignore
@@ -2,10 +2,11 @@ libmbed*
 *.sln
 *.vcxproj

-####START_COMMENTED_GENERATED_FILES###
-#/error.c
-#/version_features.c
-#/ssl_debug_helpers_generated.c
-#/psa_crypto_driver_wrappers.h
-#/psa_crypto_driver_wrappers_no_static.c
-####END_COMMENTED_GENERATED_FILES###
+###START_GENERATED_FILES###
+/error.c
+/mbedtls_config_check_before.h
+/mbedtls_config_check_final.h
+/mbedtls_config_check_user.h
+/version_features.c
+/ssl_debug_helpers_generated.c
+###END_GENERATED_FILES###
diff --git a/deps/LIEF/third-party/mbedtls/library/CMakeLists.txt b/deps/LIEF/third-party/mbedtls/library/CMakeLists.txt
index b2c21fab357..6d8c78807aa 100644
--- a/deps/LIEF/third-party/mbedtls/library/CMakeLists.txt
+++ b/deps/LIEF/third-party/mbedtls/library/CMakeLists.txt
@@ -1,106 +1,13 @@
-option(USE_STATIC_MBEDTLS_LIBRARY "Build Mbed TLS static library." ON)
-option(USE_SHARED_MBEDTLS_LIBRARY "Build Mbed TLS shared library." OFF)
-option(LINK_WITH_PTHREAD "Explicitly link Mbed TLS library to pthread." OFF)
-option(LINK_WITH_TRUSTED_STORAGE "Explicitly link Mbed TLS library to trusted_storage." OFF)
-
-# Set the project root directory if it's not already defined, as may happen if
-# the library folder is included directly by a parent project, without
-# including the top level CMakeLists.txt.
-if(NOT DEFINED MBEDTLS_DIR)
-    set(MBEDTLS_DIR ${CMAKE_SOURCE_DIR})
-endif()
-
-set(src_crypto
-    aes.c
-    aesni.c
-    aesce.c
-    aria.c
-    asn1parse.c
-    asn1write.c
-    base64.c
-    bignum.c
-    bignum_core.c
-    bignum_mod.c
-    bignum_mod_raw.c
-    block_cipher.c
-    camellia.c
-    ccm.c
-    chacha20.c
-    chachapoly.c
-    cipher.c
-    cipher_wrap.c
-    constant_time.c
-    cmac.c
-    ctr_drbg.c
-    des.c
-    dhm.c
-    ecdh.c
-    ecdsa.c
-    ecjpake.c
-    ecp.c
-    ecp_curves.c
-    ecp_curves_new.c
-    entropy.c
-    entropy_poll.c
-    error.c
-    gcm.c
-    hkdf.c
-    hmac_drbg.c
-    lmots.c
-    lms.c
-    md.c
-    md5.c
-    memory_buffer_alloc.c
-    nist_kw.c
-    oid.c
-    padlock.c
-    pem.c
-    pk.c
-    pk_ecc.c
-    pk_wrap.c
-    pkcs12.c
-    pkcs5.c
-    pkparse.c
-    pkwrite.c
-    platform.c
-    platform_util.c
-    poly1305.c
-    psa_crypto.c
-    psa_crypto_aead.c
-    psa_crypto_cipher.c
-    psa_crypto_client.c
-    psa_crypto_driver_wrappers_no_static.c
-    psa_crypto_ecp.c
-    psa_crypto_ffdh.c
-    psa_crypto_hash.c
-    psa_crypto_mac.c
-    psa_crypto_pake.c
-    psa_crypto_rsa.c
-    psa_crypto_se.c
-    psa_crypto_slot_management.c
-    psa_crypto_storage.c
-    psa_its_file.c
-    psa_util.c
-    ripemd160.c
-    rsa.c
-    rsa_alt_helpers.c
-    sha1.c
-    sha256.c
-    sha512.c
-    sha3.c
-    threading.c
-    timing.c
-    version.c
-    version_features.c
-)
-
 set(src_x509
+    error.c
+    mbedtls_config.c
     pkcs7.c
     x509.c
     x509_create.c
     x509_crl.c
     x509_crt.c
     x509_csr.c
+    x509_oid.c
     x509write.c
     x509write_crt.c
     x509write_csr.c
@@ -125,27 +32,32 @@ set(src_tls
     ssl_tls13_server.c
     ssl_tls13_client.c
     ssl_tls13_generic.c
+    timing.c
+    version.c
+    version_features.c
 )

 if(GEN_FILES)
     find_package(Perl REQUIRED)

-    file(GLOB error_headers ${CMAKE_CURRENT_SOURCE_DIR}/../include/mbedtls/*.h)
+    file(GLOB crypto_error_headers ${CMAKE_CURRENT_SOURCE_DIR}/include/mbedtls/*.h)
+    file(GLOB tls_error_headers ${MBEDTLS_DIR}/include/mbedtls/*.h)
     add_custom_command(
         OUTPUT
             ${CMAKE_CURRENT_BINARY_DIR}/error.c
         COMMAND
             ${PERL_EXECUTABLE}
                 ${CMAKE_CURRENT_SOURCE_DIR}/../scripts/generate_errors.pl
+                ${CMAKE_CURRENT_SOURCE_DIR}/../tf-psa-crypto/drivers/builtin/include/mbedtls
                 ${CMAKE_CURRENT_SOURCE_DIR}/../include/mbedtls
                 ${CMAKE_CURRENT_SOURCE_DIR}/../scripts/data_files
-                ${CMAKE_CURRENT_BINARY_DIR}/error.c
+                ${CMAKE_CURRENT_BINARY_DIR}/${TF_PSA_CRYPTO_DRIVERS_BUILTIN_SRC_DIR}/error.c
         DEPENDS
-            ${CMAKE_CURRENT_SOURCE_DIR}/../scripts/generate_errors.pl
-            ${error_headers}
-            ${CMAKE_CURRENT_SOURCE_DIR}/../scripts/data_files/error.fmt
+            ${MBEDTLS_DIR}/scripts/generate_errors.pl
+            ${crypto_error_headers}
+            ${tls_error_headers}
+            ${MBEDTLS_DIR}/scripts/data_files/error.fmt
     )
-
     add_custom_command(
         OUTPUT
             ${CMAKE_CURRENT_BINARY_DIR}/version_features.c
@@ -161,47 +73,66 @@ if(GEN_FILES)
             ${CMAKE_CURRENT_SOURCE_DIR}/../scripts/data_files/version_features.fmt
     )

+    execute_process(
+        COMMAND
+            ${MBEDTLS_PYTHON_EXECUTABLE}
+            ${MBEDTLS_DIR}/scripts/generate_config_checks.py
+            --list-for-cmake "${CMAKE_CURRENT_BINARY_DIR}"
+        WORKING_DIRECTORY
+            ${CMAKE_CURRENT_SOURCE_DIR}/..
+        OUTPUT_VARIABLE
+            MBEDTLS_GENERATED_CONFIG_CHECKS_HEADERS)
+
     add_custom_command(
-        OUTPUT
-            ${CMAKE_CURRENT_BINARY_DIR}/ssl_debug_helpers_generated.c
+        OUTPUT ${MBEDTLS_GENERATED_CONFIG_CHECKS_HEADERS}
         COMMAND
             ${MBEDTLS_PYTHON_EXECUTABLE}
-                ${CMAKE_CURRENT_SOURCE_DIR}/../framework/scripts/generate_ssl_debug_helpers.py
-                --mbedtls-root ${CMAKE_CURRENT_SOURCE_DIR}/..
+                ${MBEDTLS_DIR}/scripts/generate_config_checks.py
                 ${CMAKE_CURRENT_BINARY_DIR}
         DEPENDS
-            ${CMAKE_CURRENT_SOURCE_DIR}/../framework/scripts/generate_ssl_debug_helpers.py
-            ${error_headers}
+            ${MBEDTLS_DIR}/scripts/generate_config_checks.py
+            ${MBEDTLS_FRAMEWORK_DIR}/scripts/mbedtls_framework/config_checks_generator.py
     )

     add_custom_command(
         OUTPUT
-            ${CMAKE_CURRENT_BINARY_DIR}/psa_crypto_driver_wrappers.h
-            ${CMAKE_CURRENT_BINARY_DIR}/psa_crypto_driver_wrappers_no_static.c
+            ${CMAKE_CURRENT_BINARY_DIR}/ssl_debug_helpers_generated.c
         COMMAND
             ${MBEDTLS_PYTHON_EXECUTABLE}
-                ${CMAKE_CURRENT_SOURCE_DIR}/../scripts/generate_driver_wrappers.py
+                ${CMAKE_CURRENT_SOURCE_DIR}/../framework/scripts/generate_ssl_debug_helpers.py
+                --mbedtls-root ${CMAKE_CURRENT_SOURCE_DIR}/..
                 ${CMAKE_CURRENT_BINARY_DIR}
         DEPENDS
-            ${CMAKE_CURRENT_SOURCE_DIR}/../scripts/generate_driver_wrappers.py
-            ${CMAKE_CURRENT_SOURCE_DIR}/../scripts/data_files/driver_templates/psa_crypto_driver_wrappers.h.jinja
-            ${CMAKE_CURRENT_SOURCE_DIR}/../scripts/data_files/driver_templates/psa_crypto_driver_wrappers_no_static.c.jinja
+            ${CMAKE_CURRENT_SOURCE_DIR}/../framework/scripts/generate_ssl_debug_helpers.py
+            ${tls_error_headers}
     )

+    add_custom_target(${MBEDTLS_TARGET_PREFIX}libmbedx509_generated_files_target
+        DEPENDS
+            ${CMAKE_CURRENT_BINARY_DIR}/error.c
+            ${MBEDTLS_GENERATED_CONFIG_CHECKS_HEADERS}
+    )

-else()
-    link_to_source(error.c)
-    link_to_source(version_features.c)
-    link_to_source(ssl_debug_helpers_generated.c)
-    link_to_source(psa_crypto_driver_wrappers_no_static.c)
+    add_custom_target(${MBEDTLS_TARGET_PREFIX}libmbedtls_generated_files_target
+        DEPENDS
+            ${CMAKE_CURRENT_BINARY_DIR}/ssl_debug_helpers_generated.c
+            ${CMAKE_CURRENT_BINARY_DIR}/version_features.c
+    )
+
+    # List generated headers as sources explicitly. Normally CMake finds
+    # headers by tracing include directives, but if that happens before the
+    # generated headers are generated, this process doesn't find them.
+    list(APPEND src_x509
+        ${MBEDTLS_GENERATED_CONFIG_CHECKS_HEADERS}
+    )
 endif()

 if(CMAKE_COMPILER_IS_GNUCC)
-    set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wmissing-declarations")
+    set(LIBS_C_FLAGS -Wmissing-declarations)
 endif(CMAKE_COMPILER_IS_GNUCC)

 if(CMAKE_COMPILER_IS_CLANG)
-    set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wmissing-declarations -Wdocumentation -Wno-documentation-deprecated-sync -Wunreachable-code")
+    set(LIBS_C_FLAGS -Wmissing-declarations -Wdocumentation -Wno-documentation-deprecated-sync -Wunreachable-code)
 endif(CMAKE_COMPILER_IS_CLANG)

 if(CMAKE_COMPILER_IS_MSVC)
@@ -216,10 +147,6 @@ if(CMAKE_COMPILER_IS_MSVC)
     endif()
 endif()

-if(WIN32)
-    set(libs ${libs} ws2_32 bcrypt)
-endif(WIN32)
-
 if(CMAKE_C_COMPILER_ID MATCHES "AppleClang")
     set(CMAKE_C_ARCHIVE_CREATE   "<CMAKE_AR> Scr <TARGET> <LINK_FLAGS> <OBJECTS>")
     set(CMAKE_C_ARCHIVE_FINISH   "<CMAKE_RANLIB> -no_warning_for_no_symbols -c <TARGET>")
@@ -237,111 +164,90 @@ if(LINK_WITH_PTHREAD)
     set(libs ${libs} ${CMAKE_THREAD_LIBS_INIT})
 endif()

-if(LINK_WITH_TRUSTED_STORAGE)
-    set(libs ${libs} trusted_storage)
-endif()
-
 if (NOT USE_STATIC_MBEDTLS_LIBRARY AND NOT USE_SHARED_MBEDTLS_LIBRARY)
     message(FATAL_ERROR "Need to choose static or shared mbedtls build!")
 endif(NOT USE_STATIC_MBEDTLS_LIBRARY AND NOT USE_SHARED_MBEDTLS_LIBRARY)

 set(mbedtls_target    "${MBEDTLS_TARGET_PREFIX}mbedtls")
 set(mbedx509_target   "${MBEDTLS_TARGET_PREFIX}mbedx509")
-set(mbedcrypto_target "${MBEDTLS_TARGET_PREFIX}mbedcrypto")

 set(mbedtls_target    ${mbedtls_target}    PARENT_SCOPE)
 set(mbedx509_target   ${mbedx509_target}   PARENT_SCOPE)
-set(mbedcrypto_target ${mbedcrypto_target} PARENT_SCOPE)

 if (USE_STATIC_MBEDTLS_LIBRARY)
-    set(mbedtls_static_target    ${mbedtls_target})
-    set(mbedx509_static_target   ${mbedx509_target})
-    set(mbedcrypto_static_target ${mbedcrypto_target})
+    set(mbedtls_static_target  ${mbedtls_target})
+    set(mbedx509_static_target ${mbedx509_target})
 endif()

-set(target_libraries ${mbedcrypto_target} ${mbedx509_target} ${mbedtls_target})
+set(target_libraries ${mbedx509_target} ${mbedtls_target})

 if(USE_STATIC_MBEDTLS_LIBRARY AND USE_SHARED_MBEDTLS_LIBRARY)
     string(APPEND mbedtls_static_target    "_static")
     string(APPEND mbedx509_static_target   "_static")
-    string(APPEND mbedcrypto_static_target "_static")

     list(APPEND target_libraries
-        ${mbedcrypto_static_target}
         ${mbedx509_static_target}
         ${mbedtls_static_target})
 endif()

-set(p256m_target "${MBEDTLS_TARGET_PREFIX}p256m")
-set(everest_target "${MBEDTLS_TARGET_PREFIX}everest")
-
 if(USE_STATIC_MBEDTLS_LIBRARY)
-    add_library(${mbedcrypto_static_target} STATIC ${src_crypto})
-    set_target_properties(${mbedcrypto_static_target} PROPERTIES OUTPUT_NAME mbedcrypto)
-    target_link_libraries(${mbedcrypto_static_target} PUBLIC ${libs})
-
-    if(TARGET ${everest_target})
-        target_link_libraries(${mbedcrypto_static_target} PUBLIC ${everest_target})
-    endif()
-
-    if(TARGET ${p256m_target})
-        target_link_libraries(${mbedcrypto_static_target} PUBLIC ${p256m_target})
-    endif()
-
     add_library(${mbedx509_static_target} STATIC ${src_x509})
+    set_base_compile_options(${mbedx509_static_target})
+    target_compile_options(${mbedx509_static_target} PRIVATE ${LIBS_C_FLAGS})
     set_target_properties(${mbedx509_static_target} PROPERTIES OUTPUT_NAME mbedx509)
-    target_link_libraries(${mbedx509_static_target} PUBLIC ${libs} ${mbedcrypto_static_target})
+    target_link_libraries(${mbedx509_static_target} PUBLIC ${libs} ${tfpsacrypto_static_target})

     add_library(${mbedtls_static_target} STATIC ${src_tls})
+    set_base_compile_options(${mbedtls_static_target})
+    target_compile_options(${mbedtls_static_target} PRIVATE ${LIBS_C_FLAGS})
     set_target_properties(${mbedtls_static_target} PROPERTIES OUTPUT_NAME mbedtls)
     target_link_libraries(${mbedtls_static_target} PUBLIC ${libs} ${mbedx509_static_target})
-endif(USE_STATIC_MBEDTLS_LIBRARY)
-
-if(USE_SHARED_MBEDTLS_LIBRARY)
-    set(CMAKE_LIBRARY_PATH ${CMAKE_CURRENT_BINARY_DIR})
-    add_library(${mbedcrypto_target} SHARED ${src_crypto})
-    set_target_properties(${mbedcrypto_target} PROPERTIES VERSION 3.6.4 SOVERSION 16)
-    target_link_libraries(${mbedcrypto_target} PUBLIC ${libs})

-    if(TARGET ${everest_target})
-        target_link_libraries(${mbedcrypto_target} PUBLIC ${everest_target})
-    endif()
-
-    if(TARGET ${p256m_target})
-        target_link_libraries(${mbedcrypto_target} PUBLIC ${p256m_target})
+    if(GEN_FILES)
+        add_dependencies(${mbedx509_static_target}
+            ${MBEDTLS_TARGET_PREFIX}libmbedx509_generated_files_target)
+        add_dependencies(${mbedtls_static_target}
+            ${MBEDTLS_TARGET_PREFIX}libmbedtls_generated_files_target)
     endif()
+endif(USE_STATIC_MBEDTLS_LIBRARY)

+if(USE_SHARED_MBEDTLS_LIBRARY)
     add_library(${mbedx509_target} SHARED ${src_x509})
-    set_target_properties(${mbedx509_target} PROPERTIES VERSION 3.6.4 SOVERSION 7)
-    target_link_libraries(${mbedx509_target} PUBLIC ${libs} ${mbedcrypto_target})
+    set_base_compile_options(${mbedx509_target})
+    target_compile_options(${mbedx509_target} PRIVATE ${LIBS_C_FLAGS})
+    set_target_properties(${mbedx509_target} PROPERTIES VERSION ${MBEDTLS_VERSION} SOVERSION ${MBEDTLS_X509_SOVERSION})
+    target_link_libraries(${mbedx509_target} PUBLIC ${libs} ${tfpsacrypto_target})

     add_library(${mbedtls_target} SHARED ${src_tls})
-    set_target_properties(${mbedtls_target} PROPERTIES VERSION 3.6.4 SOVERSION 21)
+    set_base_compile_options(${mbedtls_target})
+    target_compile_options(${mbedtls_target} PRIVATE ${LIBS_C_FLAGS})
+    set_target_properties(${mbedtls_target} PROPERTIES VERSION ${MBEDTLS_VERSION} SOVERSION ${MBEDTLS_TLS_SOVERSION})
     target_link_libraries(${mbedtls_target} PUBLIC ${libs} ${mbedx509_target})
+
+    if(GEN_FILES)
+        add_dependencies(${mbedx509_target}
+            ${MBEDTLS_TARGET_PREFIX}libmbedx509_generated_files_target)
+        add_dependencies(${mbedtls_target}
+            ${MBEDTLS_TARGET_PREFIX}libmbedtls_generated_files_target)
+    endif()
 endif(USE_SHARED_MBEDTLS_LIBRARY)

 foreach(target IN LISTS target_libraries)
     add_library(MbedTLS::${target} ALIAS ${target})  # add_subdirectory support
-    # Include public header files from /include and other directories
-    # declared by /3rdparty/**/CMakeLists.txt. Include private header files
-    # from /library and others declared by /3rdparty/**/CMakeLists.txt.
-    # /library needs to be listed explicitly when building .c files outside
-    # of /library (which currently means: under /3rdparty).
+    # Include public header files from /include, /tf-psa-crypto/include/ and
+    # tf-psa-crypto/drivers/builtin/include/. Include private header files
+    # from /library, tf-psa-crypto/core/ and tf-psa-crypto/drivers/builtin/src/.
     target_include_directories(${target}
         PUBLIC $<BUILD_INTERFACE:${MBEDTLS_DIR}/include/>
+               $<BUILD_INTERFACE:${MBEDTLS_DIR}/tf-psa-crypto/include/>
+               $<BUILD_INTERFACE:${MBEDTLS_DIR}/tf-psa-crypto/drivers/builtin/include/>
                $<INSTALL_INTERFACE:include/>
         PRIVATE ${MBEDTLS_DIR}/library/
-                # Needed to include psa_crypto_driver_wrappers.h
+                ${MBEDTLS_DIR}/tf-psa-crypto/core
+                ${MBEDTLS_DIR}/tf-psa-crypto/drivers/builtin/src
+                # needed for generated headers
                 ${CMAKE_CURRENT_BINARY_DIR})
-    # Pass-through MBEDTLS_CONFIG_FILE and MBEDTLS_USER_CONFIG_FILE
-    if(MBEDTLS_CONFIG_FILE)
-        target_compile_definitions(${target}
-            PUBLIC MBEDTLS_CONFIG_FILE="${MBEDTLS_CONFIG_FILE}")
-    endif()
-    if(MBEDTLS_USER_CONFIG_FILE)
-        target_compile_definitions(${target}
-            PUBLIC MBEDTLS_USER_CONFIG_FILE="${MBEDTLS_USER_CONFIG_FILE}")
-    endif()
+    set_config_files_compile_definitions(${target})
     install(
         TARGETS ${target}
         EXPORT MbedTLSTargets
@@ -353,7 +259,118 @@ endforeach(target)

 set(lib_target "${MBEDTLS_TARGET_PREFIX}lib")

-add_custom_target(${lib_target} DEPENDS ${mbedcrypto_target} ${mbedx509_target} ${mbedtls_target})
+add_custom_target(${lib_target} DEPENDS ${mbedx509_target} ${mbedtls_target})
 if(USE_STATIC_MBEDTLS_LIBRARY AND USE_SHARED_MBEDTLS_LIBRARY)
-    add_dependencies(${lib_target} ${mbedcrypto_static_target} ${mbedx509_static_target} ${mbedtls_static_target})
+    add_dependencies(${lib_target} ${mbedx509_static_target} ${mbedtls_static_target})
 endif()
+
+foreach(target IN LISTS tf_psa_crypto_library_targets)
+    get_target_property(target_type ${target} TYPE)
+    if (target_type STREQUAL STATIC_LIBRARY)
+        add_custom_command(
+            TARGET ${mbedtls_target} POST_BUILD
+            COMMAND ${CMAKE_COMMAND} -E copy_if_different
+                    $<TARGET_FILE:${target}>
+                    $<TARGET_FILE_NAME:${target}>
+            COMMAND ${CMAKE_COMMAND} -E copy_if_different
+                    $<TARGET_FILE:${target}>
+                    "libmbedcrypto.a"
+        )
+        install(FILES $<TARGET_FILE:${target}>
+                DESTINATION ${CMAKE_INSTALL_LIBDIR}
+                RENAME "libmbedcrypto.a"
+        )
+    else()
+        # Copy the crypto shared library from tf-psa-crypto:
+        # - ".so.<VERSION>" on Unix
+        # - ".dylib" on macOS
+        # - ".dll" on Windows
+        # The full path to the file is given by $<TARGET_FILE:${target}>.
+        #
+        # On systems that use .so versioning, also create the symbolic links
+        # ".so.<SOVERSION>" and ".so", which correspond to
+        # $<TARGET_SONAME_FILE_NAME:${target}> and $<TARGET_LINKER_FILE_NAME:${target}>,
+        # respectively.
+        #
+        # On Windows, also copy the ".lib" file, whose full path is
+        # $<TARGET_LINKER_FILE:${target}>.
+        #
+        # Provide also the crypto libraries under their historical names:
+        # "libmbedcrypto.*"
+        add_custom_command(
+            TARGET ${mbedtls_target} POST_BUILD
+            COMMAND ${CMAKE_COMMAND} -E copy_if_different
+                    $<TARGET_FILE:${target}>
+                    $<TARGET_FILE_NAME:${target}>
+        )
+        if(APPLE)
+            add_custom_command(
+                TARGET ${mbedtls_target} POST_BUILD
+                COMMAND ${CMAKE_COMMAND} -E create_symlink
+                $<TARGET_FILE_NAME:${target}>
+                libmbedcrypto.dylib
+            )
+            install(FILES $<TARGET_FILE:${target}>
+                    DESTINATION ${CMAKE_INSTALL_LIBDIR}
+                    RENAME "libmbedcrypto.dylib"
+            )
+        elseif(WIN32 AND NOT CYGWIN)
+            add_custom_command(
+                TARGET ${mbedtls_target} POST_BUILD
+                COMMAND ${CMAKE_COMMAND} -E copy_if_different
+                        $<TARGET_FILE:${target}>
+                        libmbedcrypto.dll
+            )
+            add_custom_command(
+                TARGET ${mbedtls_target} POST_BUILD
+                COMMAND ${CMAKE_COMMAND} -E copy_if_different
+                        $<TARGET_LINKER_FILE:${target}>
+                        $<TARGET_LINKER_FILE_NAME:${target}>
+                COMMAND ${CMAKE_COMMAND} -E copy_if_different
+                        $<TARGET_LINKER_FILE:${target}>
+                        libmbedcrypto.lib
+            )
+            install(FILES $<TARGET_FILE:${target}>
+                    DESTINATION ${CMAKE_INSTALL_BINDIR}
+                    RENAME "libmbedcrypto.dll"
+            )
+            install(FILES $<TARGET_LINKER_FILE:${target}>
+                    DESTINATION ${CMAKE_INSTALL_LIBDIR}
+                    RENAME "libmbedcrypto.lib"
+            )
+        else()
+            add_custom_command(
+              TARGET ${mbedtls_target} POST_BUILD
+              COMMAND ${CMAKE_COMMAND} -E create_symlink
+                      $<TARGET_FILE_NAME:${target}>
+                      $<TARGET_SONAME_FILE_NAME:${target}>
+              COMMAND ${CMAKE_COMMAND} -E create_symlink
+                      $<TARGET_SONAME_FILE_NAME:${target}>
+                      $<TARGET_LINKER_FILE_NAME:${target}>
+              COMMAND ${CMAKE_COMMAND} -E create_symlink
+                      $<TARGET_FILE_NAME:${target}>
+                      libmbedcrypto.so.${MBEDTLS_VERSION}
+              COMMAND ${CMAKE_COMMAND} -E create_symlink
+                      libmbedcrypto.so.${MBEDTLS_VERSION}
+                      libmbedcrypto.so.${MBEDTLS_CRYPTO_SOVERSION}
+              COMMAND ${CMAKE_COMMAND} -E create_symlink
+                      libmbedcrypto.so.${MBEDTLS_CRYPTO_SOVERSION}
+                      libmbedcrypto.so
+            )
+            install(FILES $<TARGET_FILE:${target}>
+                    DESTINATION ${CMAKE_INSTALL_LIBDIR}
+                    RENAME "libmbedcrypto.so.${MBEDTLS_VERSION}"
+            )
+            install(CODE "
+                set(_libdir \"\${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}\")
+
+                execute_process(COMMAND \"\${CMAKE_COMMAND}\" -E create_symlink
+                                \"libmbedcrypto.so.${MBEDTLS_VERSION}\"
+                                \${_libdir}/libmbedcrypto.so.${MBEDTLS_CRYPTO_SOVERSION})
+                execute_process(COMMAND \"\${CMAKE_COMMAND}\" -E create_symlink
+                                \"libmbedcrypto.so.${MBEDTLS_CRYPTO_SOVERSION}\"
+                                \${_libdir}/libmbedcrypto.so)
+            ")
+        endif()
+    endif()
+endforeach(target)
diff --git a/deps/LIEF/third-party/mbedtls/library/Makefile b/deps/LIEF/third-party/mbedtls/library/Makefile
index c1ec9c6a053..9085ab481c6 100644
--- a/deps/LIEF/third-party/mbedtls/library/Makefile
+++ b/deps/LIEF/third-party/mbedtls/library/Makefile
@@ -2,11 +2,27 @@ ifndef MBEDTLS_PATH
 MBEDTLS_PATH := ..
 endif

+TF_PSA_CRYPTO_CORE_PATH = $(MBEDTLS_PATH)/tf-psa-crypto/core
+TF_PSA_CRYPTO_DRIVERS_BUILTIN_SRC_PATH = $(MBEDTLS_PATH)/tf-psa-crypto/drivers/builtin/src
+
+# List the generated files without running a script, so that this
+# works with no tooling dependencies when GEN_FILES is disabled.
 GENERATED_FILES := \
-	error.c version_features.c \
-	ssl_debug_helpers_generated.c \
-	psa_crypto_driver_wrappers.h \
-	psa_crypto_driver_wrappers_no_static.c
+	mbedtls_config_check_before.h \
+	mbedtls_config_check_final.h \
+	mbedtls_config_check_user.h \
+	error.c \
+	version_features.c \
+	ssl_debug_helpers_generated.c
+
+# Also list the generated files from crypto that are needed in the build,
+# because we don't have the list in a consumable form.
+GENERATED_FILES += \
+	$(TF_PSA_CRYPTO_CORE_PATH)/psa_crypto_driver_wrappers.h \
+	$(TF_PSA_CRYPTO_CORE_PATH)/psa_crypto_driver_wrappers_no_static.c \
+	$(TF_PSA_CRYPTO_CORE_PATH)/tf_psa_crypto_config_check_before.h \
+	$(TF_PSA_CRYPTO_CORE_PATH)/tf_psa_crypto_config_check_final.h \
+	$(TF_PSA_CRYPTO_CORE_PATH)/tf_psa_crypto_config_check_user.h

 ifneq ($(GENERATED_FILES),$(wildcard $(GENERATED_FILES)))
     ifeq (,$(wildcard $(MBEDTLS_PATH)/framework/exported.make))
@@ -28,11 +44,14 @@ CFLAGS	?= -O2
 WARNING_CFLAGS ?=  -Wall -Wextra -Wformat=2 -Wno-format-nonliteral
 LDFLAGS ?=

-# Include ../include for public headers and . for private headers.
-# Note that . needs to be included explicitly for the sake of library
-# files that are not in the /library directory (which currently means
-# under /3rdparty).
-LOCAL_CFLAGS = $(WARNING_CFLAGS) -I. -I../include -D_FILE_OFFSET_BITS=64
+# Include ../include, ../tf-psa-crypto/include and
+# ../tf-psa-crypto/drivers/builtin/include for public headers and .,
+# ../tf-psa-crypto/core and ../tf-psa-crypto/drivers/builtin/src for
+# private headers.
+LOCAL_CFLAGS = $(WARNING_CFLAGS) -I. -I../tf-psa-crypto/core \
+               -I../tf-psa-crypto/drivers/builtin/src \
+               -I../include -I../tf-psa-crypto/include \
+               -I../tf-psa-crypto/drivers/builtin/include -D_FILE_OFFSET_BITS=64
 LOCAL_LDFLAGS =

 ifdef DEBUG
@@ -75,7 +94,7 @@ endif
 endif

 SOEXT_TLS?=so.21
-SOEXT_X509?=so.7
+SOEXT_X509?=so.8
 SOEXT_CRYPTO?=so.16

 # Set AR_DASH= (empty string) to use an ar implementation that does not accept
@@ -102,104 +121,30 @@ DLEXT = dylib
 endif
 endif

-OBJS_CRYPTO= \
-	     aes.o \
-	     aesni.o \
-	     aesce.o \
-	     aria.o \
-	     asn1parse.o \
-	     asn1write.o \
-	     base64.o \
-	     bignum.o \
-	     bignum_core.o \
-	     bignum_mod.o \
-	     bignum_mod_raw.o \
-	     block_cipher.o \
-	     camellia.o \
-	     ccm.o \
-	     chacha20.o \
-	     chachapoly.o \
-	     cipher.o \
-	     cipher_wrap.o \
-	     cmac.o \
-	     constant_time.o \
-	     ctr_drbg.o \
-	     des.o \
-	     dhm.o \
-	     ecdh.o \
-	     ecdsa.o \
-	     ecjpake.o \
-	     ecp.o \
-	     ecp_curves.o \
-	     ecp_curves_new.o \
-	     entropy.o \
-	     entropy_poll.o \
-	     error.o \
-	     gcm.o \
-	     hkdf.o \
-	     hmac_drbg.o \
-	     lmots.o \
-	     lms.o \
-	     md.o \
-	     md5.o \
-	     memory_buffer_alloc.o \
-	     nist_kw.o \
-	     oid.o \
-	     padlock.o \
-	     pem.o \
-	     pk.o \
-	     pk_ecc.o \
-	     pk_wrap.o \
-	     pkcs12.o \
-	     pkcs5.o \
-	     pkparse.o \
-	     pkwrite.o \
-	     platform.o \
-	     platform_util.o \
-	     poly1305.o \
-	     psa_crypto.o \
-	     psa_crypto_aead.o \
-	     psa_crypto_cipher.o \
-	     psa_crypto_client.o \
-	     psa_crypto_driver_wrappers_no_static.o \
-	     psa_crypto_ecp.o \
-	     psa_crypto_ffdh.o \
-	     psa_crypto_hash.o \
-	     psa_crypto_mac.o \
-	     psa_crypto_pake.o \
-	     psa_crypto_rsa.o \
-	     psa_crypto_se.o \
-	     psa_crypto_slot_management.o \
-	     psa_crypto_storage.o \
-	     psa_its_file.o \
-	     psa_util.o \
-	     ripemd160.o \
-	     rsa.o \
-	     rsa_alt_helpers.o \
-	     sha1.o \
-	     sha256.o \
-	     sha512.o \
-	     sha3.o \
-	     threading.o \
-	     timing.o \
-	     version.o \
-	     version_features.o \
-	     # This line is intentionally left blank
-
-include ../3rdparty/Makefile.inc
+OBJS_CRYPTO = $(patsubst %.c, %.o,$(wildcard $(TF_PSA_CRYPTO_CORE_PATH)/*.c $(TF_PSA_CRYPTO_DRIVERS_BUILTIN_SRC_PATH)/*.c))
+GENERATED_OBJS_CRYPTO = $(TF_PSA_CRYPTO_CORE_PATH)/psa_crypto_driver_wrappers_no_static.o
+OBJS_CRYPTO := $(filter-out $(GENERATED_OBJS_CRYPTO),$(OBJS_CRYPTO))
+OBJS_CRYPTO += $(GENERATED_OBJS_CRYPTO)
+
+THIRDPARTY_DIR := $(MBEDTLS_PATH)/tf-psa-crypto/drivers
+include $(MBEDTLS_PATH)/tf-psa-crypto/drivers/everest/Makefile.inc
+include $(MBEDTLS_PATH)/tf-psa-crypto/drivers/p256-m/Makefile.inc
 LOCAL_CFLAGS+=$(THIRDPARTY_INCLUDES)
 OBJS_CRYPTO+=$(THIRDPARTY_CRYPTO_OBJECTS)

 OBJS_X509= \
+	   mbedtls_config.o \
 	   x509.o \
 	   x509_create.o \
 	   x509_crl.o \
 	   x509_crt.o \
 	   x509_csr.o \
+	   x509_oid.o \
 	   x509write.o \
 	   x509write_crt.o \
 	   x509write_csr.o \
 	   pkcs7.o \
+	   error.o \
 	   # This line is intentionally left blank

 OBJS_TLS= \
@@ -221,6 +166,9 @@ OBJS_TLS= \
 	  ssl_tls13_client.o \
 	  ssl_tls13_server.o \
 	  ssl_tls13_generic.o \
+	  timing.o \
+	  version.o \
+	  version_features.o \
 	  # This line is intentionally left blank

 .SILENT:
@@ -235,6 +183,7 @@ endif

 static: libmbedcrypto.a libmbedx509.a libmbedtls.a
 	cd ../tests && echo "This is a seedfile that contains 64 bytes (65 on Windows)......" > seedfile
+	cd ../tf-psa-crypto/tests && echo "This is a seedfile that contains 64 bytes (65 on Windows)......" > seedfile

 shared: libmbedcrypto.$(DLEXT) libmbedx509.$(DLEXT) libmbedtls.$(DLEXT)

@@ -345,7 +294,7 @@ libmbedcrypto.dll: $(OBJS_CRYPTO)
 generated_files: $(GENERATED_FILES)

 # See root Makefile
-GEN_FILES ?=
+GEN_FILES ?= yes
 ifdef GEN_FILES
 gen_file_dep =
 else
@@ -378,26 +327,48 @@ version_features.c:
 	$(PERL) ../scripts/generate_features.pl

 GENERATED_WRAPPER_FILES = \
-                    psa_crypto_driver_wrappers.h \
-                    psa_crypto_driver_wrappers_no_static.c
-$(GENERATED_WRAPPER_FILES): ../scripts/generate_driver_wrappers.py
-$(GENERATED_WRAPPER_FILES): ../scripts/data_files/driver_templates/psa_crypto_driver_wrappers.h.jinja
-$(GENERATED_WRAPPER_FILES): ../scripts/data_files/driver_templates/psa_crypto_driver_wrappers_no_static.c.jinja
+                    $(TF_PSA_CRYPTO_CORE_PATH)/psa_crypto_driver_wrappers.h \
+                    $(TF_PSA_CRYPTO_CORE_PATH)/psa_crypto_driver_wrappers_no_static.c
+$(GENERATED_WRAPPER_FILES): ../tf-psa-crypto/scripts/generate_driver_wrappers.py
+$(GENERATED_WRAPPER_FILES): ../tf-psa-crypto/scripts/data_files/driver_templates/psa_crypto_driver_wrappers.h.jinja
+$(GENERATED_WRAPPER_FILES): ../tf-psa-crypto/scripts/data_files/driver_templates/psa_crypto_driver_wrappers_no_static.c.jinja
 $(GENERATED_WRAPPER_FILES):
 	echo "  Gen   $(GENERATED_WRAPPER_FILES)"
-	$(PYTHON) ../scripts/generate_driver_wrappers.py
+	$(PYTHON) ../tf-psa-crypto/scripts/generate_driver_wrappers.py $(TF_PSA_CRYPTO_CORE_PATH)
+
+$(TF_PSA_CRYPTO_CORE_PATH)/psa_crypto.o:$(TF_PSA_CRYPTO_CORE_PATH)/psa_crypto_driver_wrappers.h
+
+GENERATED_CONFIG_CHECK_FILES = $(shell $(PYTHON) ../scripts/generate_config_checks.py --list .)
+$(GENERATED_CONFIG_CHECK_FILES): $(gen_file_dep) \
+	$(TF_PSA_CRYPTO_CORE_PATH)/../scripts/generate_config_checks.py \
+	../framework/scripts/mbedtls_framework/config_checks_generator.py
+$(GENERATED_CONFIG_CHECK_FILES):
+	echo "  Gen   $(GENERATED_CONFIG_CHECK_FILES)"
+	$(PYTHON) ../scripts/generate_config_checks.py
+
+mbedtls_config.o: $(GENERATED_CONFIG_CHECK_FILES)
+
+TF_PSA_CRYPTO_GENERATED_CONFIG_CHECK_FILES = $(shell $(PYTHON) \
+	$(TF_PSA_CRYPTO_CORE_PATH)/../scripts/generate_config_checks.py \
+	--list $(TF_PSA_CRYPTO_CORE_PATH))
+$(TF_PSA_CRYPTO_GENERATED_CONFIG_CHECK_FILES): $(gen_file_dep) \
+	../scripts/generate_config_checks.py \
+	../framework/scripts/mbedtls_framework/config_checks_generator.py
+$(TF_PSA_CRYPTO_GENERATED_CONFIG_CHECK_FILES):
+	echo "  Gen   $(TF_PSA_CRYPTO_GENERATED_CONFIG_CHECK_FILES)"
+	$(PYTHON) $(TF_PSA_CRYPTO_CORE_PATH)/../scripts/generate_config_checks.py

-psa_crypto.o:psa_crypto_driver_wrappers.h
+$(TF_PSA_CRYPTO_CORE_PATH)/tf_psa_crypto_config.o: $(TF_PSA_CRYPTO_GENERATED_CONFIG_CHECK_FILES)

 clean:
 ifndef WINDOWS
 	rm -f *.o *.s libmbed*
-	rm -f $(THIRDPARTY_CRYPTO_OBJECTS) $(THIRDPARTY_CRYPTO_OBJECTS:.o=.s)
+	rm -f $(OBJS_CRYPTO) $(OBJS_CRYPTO:.o=.s)
 else
 	if exist *.o del /Q /F *.o
 	if exist *.s del /Q /F *.s
 	if exist libmbed* del /Q /F libmbed*
-	del /Q /F del_errors_out_if_the_file_list_is_empty_but_not_if_a_file_does_not_exist $(subst /,\,$(THIRDPARTY_CRYPTO_OBJECTS) $(THIRDPARTY_CRYPTO_OBJECTS:.o=.s))
+	del /Q /F del_errors_out_if_the_file_list_is_empty_but_not_if_a_file_does_not_exist $(subst /,\,$(OBJS_CRYPTO))
 endif

 neat: clean
diff --git a/deps/LIEF/third-party/mbedtls/library/bignum_core_invasive.h b/deps/LIEF/third-party/mbedtls/library/bignum_core_invasive.h
deleted file mode 100644
index 167099dc917..00000000000
--- a/deps/LIEF/third-party/mbedtls/library/bignum_core_invasive.h
+++ /dev/null
@@ -1,23 +0,0 @@
-/**
- * \file bignum_core_invasive.h
- *
- * \brief Function declarations for invasive functions of bignum core.
- */
-/**
- *  Copyright The Mbed TLS Contributors
- *  SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
- */
-
-#ifndef MBEDTLS_BIGNUM_CORE_INVASIVE_H
-#define MBEDTLS_BIGNUM_CORE_INVASIVE_H
-
-#include "bignum_core.h"
-
-#if defined(MBEDTLS_TEST_HOOKS) && !defined(MBEDTLS_THREADING_C)
-
-extern void (*mbedtls_safe_codepath_hook)(void);
-extern void (*mbedtls_unsafe_codepath_hook)(void);
-
-#endif /* MBEDTLS_TEST_HOOKS && !MBEDTLS_THREADING_C */
-
-#endif /* MBEDTLS_BIGNUM_CORE_INVASIVE_H */
diff --git a/deps/LIEF/third-party/mbedtls/library/bignum_internal.h b/deps/LIEF/third-party/mbedtls/library/bignum_internal.h
deleted file mode 100644
index aceaf55ea2b..00000000000
--- a/deps/LIEF/third-party/mbedtls/library/bignum_internal.h
+++ /dev/null
@@ -1,50 +0,0 @@
-/**
- * \file bignum_internal.h
- *
- * \brief Internal-only bignum public-key cryptosystem API.
- *
- * This file declares bignum-related functions that are to be used
- * only from within the Mbed TLS library itself.
- *
- */
-/*
- *  Copyright The Mbed TLS Contributors
- *  SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
- */
-#ifndef MBEDTLS_BIGNUM_INTERNAL_H
-#define MBEDTLS_BIGNUM_INTERNAL_H
-
-/**
- * \brief          Perform a modular exponentiation: X = A^E mod N
- *
- * \warning        This function is not constant time with respect to \p E (the exponent).
- *
- * \param X        The destination MPI. This must point to an initialized MPI.
- *                 This must not alias E or N.
- * \param A        The base of the exponentiation.
- *                 This must point to an initialized MPI.
- * \param E        The exponent MPI. This must point to an initialized MPI.
- * \param N        The base for the modular reduction. This must point to an
- *                 initialized MPI.
- * \param prec_RR  A helper MPI depending solely on \p N which can be used to
- *                 speed-up multiple modular exponentiations for the same value
- *                 of \p N. This may be \c NULL. If it is not \c NULL, it must
- *                 point to an initialized MPI. If it hasn't been used after
- *                 the call to mbedtls_mpi_init(), this function will compute
- *                 the helper value and store it in \p prec_RR for reuse on
- *                 subsequent calls to this function. Otherwise, the function
- *                 will assume that \p prec_RR holds the helper value set by a
- *                 previous call to mbedtls_mpi_exp_mod(), and reuse it.
- *
- * \return         \c 0 if successful.
- * \return         #MBEDTLS_ERR_MPI_ALLOC_FAILED if a memory allocation failed.
- * \return         #MBEDTLS_ERR_MPI_BAD_INPUT_DATA if \c N is negative or
- *                 even, or if \c E is negative.
- * \return         Another negative error code on different kinds of failures.
- *
- */
-int mbedtls_mpi_exp_mod_unsafe(mbedtls_mpi *X, const mbedtls_mpi *A,
-                               const mbedtls_mpi *E, const mbedtls_mpi *N,
-                               mbedtls_mpi *prec_RR);
-
-#endif /* bignum_internal.h */
diff --git a/deps/LIEF/third-party/mbedtls/library/debug.c b/deps/LIEF/third-party/mbedtls/library/debug.c
index c36ed3c5c21..94b1c2778fa 100644
--- a/deps/LIEF/third-party/mbedtls/library/debug.c
+++ b/deps/LIEF/third-party/mbedtls/library/debug.c
@@ -5,7 +5,7 @@
  *  SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
  */

-#include "common.h"
+#include "ssl_misc.h"

 #if defined(MBEDTLS_DEBUG_C)

@@ -167,42 +167,74 @@ void mbedtls_debug_print_buf(const mbedtls_ssl_context *ssl, int level,
     }
 }

-#if defined(MBEDTLS_ECP_LIGHT)
-void mbedtls_debug_print_ecp(const mbedtls_ssl_context *ssl, int level,
+#if defined(MBEDTLS_BIGNUM_C)
+void mbedtls_debug_print_mpi(const mbedtls_ssl_context *ssl, int level,
                              const char *file, int line,
-                             const char *text, const mbedtls_ecp_point *X)
+                             const char *text, const mbedtls_mpi *X)
 {
     char str[DEBUG_BUF_SIZE];
+    size_t bitlen;
+    size_t idx = 0;

     if (NULL == ssl              ||
         NULL == ssl->conf        ||
         NULL == ssl->conf->f_dbg ||
+        NULL == X                ||
         level > debug_threshold) {
         return;
     }

-    mbedtls_snprintf(str, sizeof(str), "%s(X)", text);
-    mbedtls_debug_print_mpi(ssl, level, file, line, str, &X->X);
+    bitlen = mbedtls_mpi_bitlen(X);

-    mbedtls_snprintf(str, sizeof(str), "%s(Y)", text);
-    mbedtls_debug_print_mpi(ssl, level, file, line, str, &X->Y);
+    mbedtls_snprintf(str, sizeof(str), "value of '%s' (%u bits) is:\n",
+                     text, (unsigned) bitlen);
+    debug_send_line(ssl, level, file, line, str);
+
+    if (bitlen == 0) {
+        str[0] = ' '; str[1] = '0'; str[2] = '0';
+        idx = 3;
+    } else {
+        int n;
+        for (n = (int) ((bitlen - 1) / 8); n >= 0; n--) {
+            size_t limb_offset = n / sizeof(mbedtls_mpi_uint);
+            size_t offset_in_limb = n % sizeof(mbedtls_mpi_uint);
+            unsigned char octet =
+                (X->p[limb_offset] >> (offset_in_limb * 8)) & 0xff;
+            mbedtls_snprintf(str + idx, sizeof(str) - idx, " %02x", octet);
+            idx += 3;
+            /* Wrap lines after 16 octets that each take 3 columns */
+            if (idx >= 3 * 16) {
+                mbedtls_snprintf(str + idx, sizeof(str) - idx, "\n");
+                debug_send_line(ssl, level, file, line, str);
+                idx = 0;
+            }
+        }
+    }
+
+    if (idx != 0) {
+        mbedtls_snprintf(str + idx, sizeof(str) - idx, "\n");
+        debug_send_line(ssl, level, file, line, str);
+    }
 }
-#endif /* MBEDTLS_ECP_LIGHT */
+#endif /* MBEDTLS_BIGNUM_C */
+
+#if defined(MBEDTLS_X509_CRT_PARSE_C) && !defined(MBEDTLS_X509_REMOVE_INFO)

-#if defined(MBEDTLS_PK_USE_PSA_EC_DATA)
-static void mbedtls_debug_print_ec_coord(const mbedtls_ssl_context *ssl, int level,
-                                         const char *file, int line, const char *text,
-                                         const unsigned char *buf, size_t len)
+/* no-check-names will be removed in mbedtls#10229. */
+#if defined(PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY) || defined(MBEDTLS_PK_USE_PSA_RSA_DATA) //no-check-names
+static void mbedtls_debug_print_integer(const mbedtls_ssl_context *ssl, int level,
+                                        const char *file, int line, const char *text,
+                                        const unsigned char *buf, size_t bitlen)
 {
     char str[DEBUG_BUF_SIZE];
-    size_t i, idx = 0;
+    size_t i, len_bytes = PSA_BITS_TO_BYTES(bitlen), idx = 0;

     mbedtls_snprintf(str + idx, sizeof(str) - idx, "value of '%s' (%u bits) is:\n",
-                     text, (unsigned int) len * 8);
+                     text, (unsigned int) bitlen);

     debug_send_line(ssl, level, file, line, str);

-    for (i = 0; i < len; i++) {
+    for (i = 0; i < len_bytes; i++) {
         if (i >= 4096) {
             break;
         }
@@ -220,19 +252,18 @@ static void mbedtls_debug_print_ec_coord(const mbedtls_ssl_context *ssl, int lev
                                 (unsigned int) buf[i]);
     }

-    if (len > 0) {
-        for (/* i = i */; i % 16 != 0; i++) {
-            idx += mbedtls_snprintf(str + idx, sizeof(str) - idx, "   ");
-        }
-
+    if (len_bytes > 0) {
         mbedtls_snprintf(str + idx, sizeof(str) - idx, "\n");
         debug_send_line(ssl, level, file, line, str);
     }
 }
+/* no-check-names will be removed in mbedtls#10229. */
+#endif /* PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY || MBEDTLS_PK_USE_PSA_RSA_DATA */ //no-check-names

-void mbedtls_debug_print_psa_ec(const mbedtls_ssl_context *ssl, int level,
-                                const char *file, int line,
-                                const char *text, const mbedtls_pk_context *pk)
+#if defined(PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY)
+static void mbedtls_debug_print_psa_ec(const mbedtls_ssl_context *ssl, int level,
+                                       const char *file, int line,
+                                       const char *text, const mbedtls_pk_context *pk)
 {
     char str[DEBUG_BUF_SIZE];
     const uint8_t *coord_start;
@@ -252,67 +283,115 @@ void mbedtls_debug_print_psa_ec(const mbedtls_ssl_context *ssl, int level,
     /* X coordinate */
     coord_start = pk->pub_raw + 1;
     mbedtls_snprintf(str, sizeof(str), "%s(X)", text);
-    mbedtls_debug_print_ec_coord(ssl, level, file, line, str, coord_start, coord_len);
+    mbedtls_debug_print_integer(ssl, level, file, line, str, coord_start, coord_len * 8);

     /* Y coordinate */
     coord_start = coord_start + coord_len;
     mbedtls_snprintf(str, sizeof(str), "%s(Y)", text);
-    mbedtls_debug_print_ec_coord(ssl, level, file, line, str, coord_start, coord_len);
+    mbedtls_debug_print_integer(ssl, level, file, line, str, coord_start, coord_len * 8);
 }
-#endif /* MBEDTLS_PK_USE_PSA_EC_DATA */
+#endif /* PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY */

-#if defined(MBEDTLS_BIGNUM_C)
-void mbedtls_debug_print_mpi(const mbedtls_ssl_context *ssl, int level,
-                             const char *file, int line,
-                             const char *text, const mbedtls_mpi *X)
+/* no-check-names will be removed in mbedtls#10229. */
+#if defined(MBEDTLS_PK_USE_PSA_RSA_DATA) //no-check-names
+static size_t debug_count_valid_bits(unsigned char **buf, size_t len)
+{
+    size_t i, bits;
+
+    /* Ignore initial null bytes (if any). */
+    while ((len > 0) && (**buf == 0x00)) {
+        (*buf)++;
+        len--;
+    }
+
+    if (len == 0) {
+        return 0;
+    }
+
+    bits = len * 8;
+
+    /* Ignore initial null bits (if any). */
+    for (i = 7; i > 0; i--) {
+        if ((**buf & (0x1 << i)) != 0) {
+            break;
+        }
+        bits--;
+    }
+
+    return bits;
+}
+
+static void mbedtls_debug_print_psa_rsa(const mbedtls_ssl_context *ssl, int level,
+                                        const char *file, int line,
+                                        const char *text, const mbedtls_pk_context *pk)
 {
     char str[DEBUG_BUF_SIZE];
-    size_t bitlen;
-    size_t idx = 0;
+    /* no-check-names will be removed in mbedtls#10229. */
+    unsigned char key_der[MBEDTLS_PK_MAX_RSA_PUBKEY_RAW_LEN]; //no-check-names
+    unsigned char *start_cur;
+    unsigned char *end_cur;
+    size_t len, bits;
+    int ret;

     if (NULL == ssl              ||
         NULL == ssl->conf        ||
         NULL == ssl->conf->f_dbg ||
-        NULL == X                ||
         level > debug_threshold) {
         return;
     }

-    bitlen = mbedtls_mpi_bitlen(X);
+    if (pk->pub_raw_len > sizeof(key_der)) {
+        snprintf(str, sizeof(str),
+                 "RSA public key too large: %" MBEDTLS_PRINTF_SIZET " > %" MBEDTLS_PRINTF_SIZET,
+                 pk->pub_raw_len, sizeof(key_der));
+        debug_send_line(ssl, level, file, line, str);
+        return;
+    }

-    mbedtls_snprintf(str, sizeof(str), "value of '%s' (%u bits) is:\n",
-                     text, (unsigned) bitlen);
-    debug_send_line(ssl, level, file, line, str);
+    memcpy(key_der, pk->pub_raw, pk->pub_raw_len);
+    start_cur = key_der;
+    end_cur = key_der + pk->pub_raw_len;

-    if (bitlen == 0) {
-        str[0] = ' '; str[1] = '0'; str[2] = '0';
-        idx = 3;
-    } else {
-        int n;
-        for (n = (int) ((bitlen - 1) / 8); n >= 0; n--) {
-            size_t limb_offset = n / sizeof(mbedtls_mpi_uint);
-            size_t offset_in_limb = n % sizeof(mbedtls_mpi_uint);
-            unsigned char octet =
-                (X->p[limb_offset] >> (offset_in_limb * 8)) & 0xff;
-            mbedtls_snprintf(str + idx, sizeof(str) - idx, " %02x", octet);
-            idx += 3;
-            /* Wrap lines after 16 octets that each take 3 columns */
-            if (idx >= 3 * 16) {
-                mbedtls_snprintf(str + idx, sizeof(str) - idx, "\n");
-                debug_send_line(ssl, level, file, line, str);
-                idx = 0;
-            }
-        }
+    /* This integer parsing solution should be replaced with mbedtls_asn1_get_integer().
+     * See #10238. */
+    ret = mbedtls_asn1_get_tag(&start_cur, end_cur, &len,
+                               MBEDTLS_ASN1_SEQUENCE | MBEDTLS_ASN1_CONSTRUCTED);
+    if (ret != 0) {
+        return;
     }

-    if (idx != 0) {
-        mbedtls_snprintf(str + idx, sizeof(str) - idx, "\n");
-        debug_send_line(ssl, level, file, line, str);
+    ret = mbedtls_asn1_get_tag(&start_cur, end_cur, &len, MBEDTLS_ASN1_INTEGER);
+    if (ret != 0) {
+        return;
+    }
+
+    bits = debug_count_valid_bits(&start_cur, len);
+    if (bits == 0) {
+        return;
+    }
+    len = PSA_BITS_TO_BYTES(bits);
+
+    mbedtls_snprintf(str, sizeof(str), "%s.N", text);
+    mbedtls_debug_print_integer(ssl, level, file, line, str, start_cur, bits);
+
+    start_cur += len;
+
+    ret = mbedtls_asn1_get_tag(&start_cur, end_cur, &len, MBEDTLS_ASN1_INTEGER);
+    if (ret != 0) {
+        return;
+    }
+
+    bits = debug_count_valid_bits(&start_cur, len);
+    if (bits == 0) {
+        return;
     }
+
+    mbedtls_snprintf(str, sizeof(str), "%s.E", text);
+    mbedtls_debug_print_integer(ssl, level, file, line, str, start_cur, bits);
 }
-#endif /* MBEDTLS_BIGNUM_C */
+/* no-check-names will be removed in mbedtls#10229. */
+#endif /* MBEDTLS_PK_USE_PSA_RSA_DATA */ //no-check-names

-#if defined(MBEDTLS_X509_CRT_PARSE_C) && !defined(MBEDTLS_X509_REMOVE_INFO)
 static void debug_print_pk(const mbedtls_ssl_context *ssl, int level,
                            const char *file, int line,
                            const char *text, const mbedtls_pk_context *pk)
@@ -342,16 +421,17 @@ static void debug_print_pk(const mbedtls_ssl_context *ssl, int level,
             mbedtls_debug_print_mpi(ssl, level, file, line, name, items[i].value);
         } else
 #endif /* MBEDTLS_RSA_C */
-#if defined(MBEDTLS_ECP_LIGHT)
-        if (items[i].type == MBEDTLS_PK_DEBUG_ECP) {
-            mbedtls_debug_print_ecp(ssl, level, file, line, name, items[i].value);
+/* no-check-names will be removed in mbedtls#10229. */
+#if defined(MBEDTLS_PK_USE_PSA_RSA_DATA) //no-check-names
+        if (items[i].type == MBEDTLS_PK_DEBUG_PSA_RSA) { //no-check-names
+            mbedtls_debug_print_psa_rsa(ssl, level, file, line, name, items[i].value);
         } else
-#endif /* MBEDTLS_ECP_LIGHT */
-#if defined(MBEDTLS_PK_USE_PSA_EC_DATA)
+#endif /* MBEDTLS_PK_USE_PSA_RSA_DATA */ //no-check-names
+#if defined(PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY)
         if (items[i].type == MBEDTLS_PK_DEBUG_PSA_EC) {
             mbedtls_debug_print_psa_ec(ssl, level, file, line, name, items[i].value);
         } else
-#endif /* MBEDTLS_PK_USE_PSA_EC_DATA */
+#endif /* PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY */
         { debug_send_line(ssl, level, file, line,
                           "should not happen\n"); }
     }
@@ -412,54 +492,4 @@ void mbedtls_debug_print_crt(const mbedtls_ssl_context *ssl, int level,
 }
 #endif /* MBEDTLS_X509_CRT_PARSE_C && MBEDTLS_X509_REMOVE_INFO */

-#if defined(MBEDTLS_KEY_EXCHANGE_SOME_ECDH_OR_ECDHE_ANY_ENABLED) && \
-    defined(MBEDTLS_ECDH_C)
-static void mbedtls_debug_printf_ecdh_internal(const mbedtls_ssl_context *ssl,
-                                               int level, const char *file,
-                                               int line,
-                                               const mbedtls_ecdh_context *ecdh,
-                                               mbedtls_debug_ecdh_attr attr)
-{
-#if defined(MBEDTLS_ECDH_LEGACY_CONTEXT)
-    const mbedtls_ecdh_context *ctx = ecdh;
-#else
-    const mbedtls_ecdh_context_mbed *ctx = &ecdh->ctx.mbed_ecdh;
-#endif
-
-    switch (attr) {
-        case MBEDTLS_DEBUG_ECDH_Q:
-            mbedtls_debug_print_ecp(ssl, level, file, line, "ECDH: Q",
-                                    &ctx->Q);
-            break;
-        case MBEDTLS_DEBUG_ECDH_QP:
-            mbedtls_debug_print_ecp(ssl, level, file, line, "ECDH: Qp",
-                                    &ctx->Qp);
-            break;
-        case MBEDTLS_DEBUG_ECDH_Z:
-            mbedtls_debug_print_mpi(ssl, level, file, line, "ECDH: z",
-                                    &ctx->z);
-            break;
-        default:
-            break;
-    }
-}
-
-void mbedtls_debug_printf_ecdh(const mbedtls_ssl_context *ssl, int level,
-                               const char *file, int line,
-                               const mbedtls_ecdh_context *ecdh,
-                               mbedtls_debug_ecdh_attr attr)
-{
-#if defined(MBEDTLS_ECDH_LEGACY_CONTEXT)
-    mbedtls_debug_printf_ecdh_internal(ssl, level, file, line, ecdh, attr);
-#else
-    switch (ecdh->var) {
-        default:
-            mbedtls_debug_printf_ecdh_internal(ssl, level, file, line, ecdh,
-                                               attr);
-    }
-#endif
-}
-#endif /* MBEDTLS_KEY_EXCHANGE_SOME_ECDH_OR_ECDHE_ANY_ENABLED &&
-          MBEDTLS_ECDH_C */
-
 #endif /* MBEDTLS_DEBUG_C */
diff --git a/deps/LIEF/third-party/mbedtls/library/debug_internal.h b/deps/LIEF/third-party/mbedtls/library/debug_internal.h
index 4523b4633a2..79a4c4540ca 100644
--- a/deps/LIEF/third-party/mbedtls/library/debug_internal.h
+++ b/deps/LIEF/third-party/mbedtls/library/debug_internal.h
@@ -73,9 +73,7 @@ void mbedtls_debug_print_buf(const mbedtls_ssl_context *ssl, int level,

 #if defined(MBEDTLS_BIGNUM_C)
 /**
- * \brief   Print a MPI variable to the debug output. This function is always
- *          used through the MBEDTLS_SSL_DEBUG_MPI() macro, which supplies the
- *          ssl context, file and line number parameters.
+ * \brief   Print a MPI variable to the debug output.
  *
  * \param ssl       SSL context
  * \param level     error level of the debug message
@@ -93,28 +91,6 @@ void mbedtls_debug_print_mpi(const mbedtls_ssl_context *ssl, int level,
                              const char *text, const mbedtls_mpi *X);
 #endif

-#if defined(MBEDTLS_ECP_LIGHT)
-/**
- * \brief   Print an ECP point to the debug output. This function is always
- *          used through the MBEDTLS_SSL_DEBUG_ECP() macro, which supplies the
- *          ssl context, file and line number parameters.
- *
- * \param ssl       SSL context
- * \param level     error level of the debug message
- * \param file      file the error has occurred in
- * \param line      line number the error has occurred in
- * \param text      a name or label for the ECP point being output. Normally the
- *                  variable name
- * \param X         the ECP point
- *
- * \attention       This function is intended for INTERNAL usage within the
- *                  library only.
- */
-void mbedtls_debug_print_ecp(const mbedtls_ssl_context *ssl, int level,
-                             const char *file, int line,
-                             const char *text, const mbedtls_ecp_point *X);
-#endif
-
 #if defined(MBEDTLS_X509_CRT_PARSE_C) && !defined(MBEDTLS_X509_REMOVE_INFO)
 /**
  * \brief   Print a X.509 certificate structure to the debug output. This
@@ -136,37 +112,4 @@ void mbedtls_debug_print_crt(const mbedtls_ssl_context *ssl, int level,
                              const char *text, const mbedtls_x509_crt *crt);
 #endif

-/* Note: the MBEDTLS_ECDH_C guard here is mandatory because this debug function
-         only works for the built-in implementation. */
-#if defined(MBEDTLS_KEY_EXCHANGE_SOME_ECDH_OR_ECDHE_ANY_ENABLED) && \
-    defined(MBEDTLS_ECDH_C)
-typedef enum {
-    MBEDTLS_DEBUG_ECDH_Q,
-    MBEDTLS_DEBUG_ECDH_QP,
-    MBEDTLS_DEBUG_ECDH_Z,
-} mbedtls_debug_ecdh_attr;
-
-/**
- * \brief   Print a field of the ECDH structure in the SSL context to the debug
- *          output. This function is always used through the
- *          MBEDTLS_SSL_DEBUG_ECDH() macro, which supplies the ssl context, file
- *          and line number parameters.
- *
- * \param ssl       SSL context
- * \param level     error level of the debug message
- * \param file      file the error has occurred in
- * \param line      line number the error has occurred in
- * \param ecdh      the ECDH context
- * \param attr      the identifier of the attribute being output
- *
- * \attention       This function is intended for INTERNAL usage within the
- *                  library only.
- */
-void mbedtls_debug_printf_ecdh(const mbedtls_ssl_context *ssl, int level,
-                               const char *file, int line,
-                               const mbedtls_ecdh_context *ecdh,
-                               mbedtls_debug_ecdh_attr attr);
-#endif /* MBEDTLS_KEY_EXCHANGE_SOME_ECDH_OR_ECDHE_ANY_ENABLED &&
-          MBEDTLS_ECDH_C */
-
 #endif /* MBEDTLS_DEBUG_INTERNAL_H */
diff --git a/deps/LIEF/third-party/mbedtls/library/des.c b/deps/LIEF/third-party/mbedtls/library/des.c
deleted file mode 100644
index f0032b3b569..00000000000
--- a/deps/LIEF/third-party/mbedtls/library/des.c
+++ /dev/null
@@ -1,1042 +0,0 @@
-/*
- *  FIPS-46-3 compliant Triple-DES implementation
- *
- *  Copyright The Mbed TLS Contributors
- *  SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
- */
-/*
- *  DES, on which TDES is based, was originally designed by Horst Feistel
- *  at IBM in 1974, and was adopted as a standard by NIST (formerly NBS).
- *
- *  http://csrc.nist.gov/publications/fips/fips46-3/fips46-3.pdf
- */
-
-#include "common.h"
-
-#if defined(MBEDTLS_DES_C)
-
-#include "mbedtls/des.h"
-#include "mbedtls/error.h"
-#include "mbedtls/platform_util.h"
-
-#include <string.h>
-
-#include "mbedtls/platform.h"
-
-#if !defined(MBEDTLS_DES_ALT)
-
-/*
- * Expanded DES S-boxes
- */
-static const uint32_t SB1[64] =
-{
-    0x01010400, 0x00000000, 0x00010000, 0x01010404,
-    0x01010004, 0x00010404, 0x00000004, 0x00010000,
-    0x00000400, 0x01010400, 0x01010404, 0x00000400,
-    0x01000404, 0x01010004, 0x01000000, 0x00000004,
-    0x00000404, 0x01000400, 0x01000400, 0x00010400,
-    0x00010400, 0x01010000, 0x01010000, 0x01000404,
-    0x00010004, 0x01000004, 0x01000004, 0x00010004,
-    0x00000000, 0x00000404, 0x00010404, 0x01000000,
-    0x00010000, 0x01010404, 0x00000004, 0x01010000,
-    0x01010400, 0x01000000, 0x01000000, 0x00000400,
-    0x01010004, 0x00010000, 0x00010400, 0x01000004,
-    0x00000400, 0x00000004, 0x01000404, 0x00010404,
-    0x01010404, 0x00010004, 0x01010000, 0x01000404,
-    0x01000004, 0x00000404, 0x00010404, 0x01010400,
-    0x00000404, 0x01000400, 0x01000400, 0x00000000,
-    0x00010004, 0x00010400, 0x00000000, 0x01010004
-};
-
-static const uint32_t SB2[64] =
-{
-    0x80108020, 0x80008000, 0x00008000, 0x00108020,
-    0x00100000, 0x00000020, 0x80100020, 0x80008020,
-    0x80000020, 0x80108020, 0x80108000, 0x80000000,
-    0x80008000, 0x00100000, 0x00000020, 0x80100020,
-    0x00108000, 0x00100020, 0x80008020, 0x00000000,
-    0x80000000, 0x00008000, 0x00108020, 0x80100000,
-    0x00100020, 0x80000020, 0x00000000, 0x00108000,
-    0x00008020, 0x80108000, 0x80100000, 0x00008020,
-    0x00000000, 0x00108020, 0x80100020, 0x00100000,
-    0x80008020, 0x80100000, 0x80108000, 0x00008000,
-    0x80100000, 0x80008000, 0x00000020, 0x80108020,
-    0x00108020, 0x00000020, 0x00008000, 0x80000000,
-    0x00008020, 0x80108000, 0x00100000, 0x80000020,
-    0x00100020, 0x80008020, 0x80000020, 0x00100020,
-    0x00108000, 0x00000000, 0x80008000, 0x00008020,
-    0x80000000, 0x80100020, 0x80108020, 0x00108000
-};
-
-static const uint32_t SB3[64] =
-{
-    0x00000208, 0x08020200, 0x00000000, 0x08020008,
-    0x08000200, 0x00000000, 0x00020208, 0x08000200,
-    0x00020008, 0x08000008, 0x08000008, 0x00020000,
-    0x08020208, 0x00020008, 0x08020000, 0x00000208,
-    0x08000000, 0x00000008, 0x08020200, 0x00000200,
-    0x00020200, 0x08020000, 0x08020008, 0x00020208,
-    0x08000208, 0x00020200, 0x00020000, 0x08000208,
-    0x00000008, 0x08020208, 0x00000200, 0x08000000,
-    0x08020200, 0x08000000, 0x00020008, 0x00000208,
-    0x00020000, 0x08020200, 0x08000200, 0x00000000,
-    0x00000200, 0x00020008, 0x08020208, 0x08000200,
-    0x08000008, 0x00000200, 0x00000000, 0x08020008,
-    0x08000208, 0x00020000, 0x08000000, 0x08020208,
-    0x00000008, 0x00020208, 0x00020200, 0x08000008,
-    0x08020000, 0x08000208, 0x00000208, 0x08020000,
-    0x00020208, 0x00000008, 0x08020008, 0x00020200
-};
-
-static const uint32_t SB4[64] =
-{
-    0x00802001, 0x00002081, 0x00002081, 0x00000080,
-    0x00802080, 0x00800081, 0x00800001, 0x00002001,
-    0x00000000, 0x00802000, 0x00802000, 0x00802081,
-    0x00000081, 0x00000000, 0x00800080, 0x00800001,
-    0x00000001, 0x00002000, 0x00800000, 0x00802001,
-    0x00000080, 0x00800000, 0x00002001, 0x00002080,
-    0x00800081, 0x00000001, 0x00002080, 0x00800080,
-    0x00002000, 0x00802080, 0x00802081, 0x00000081,
-    0x00800080, 0x00800001, 0x00802000, 0x00802081,
-    0x00000081, 0x00000000, 0x00000000, 0x00802000,
-    0x00002080, 0x00800080, 0x00800081, 0x00000001,
-    0x00802001, 0x00002081, 0x00002081, 0x00000080,
-    0x00802081, 0x00000081, 0x00000001, 0x00002000,
-    0x00800001, 0x00002001, 0x00802080, 0x00800081,
-    0x00002001, 0x00002080, 0x00800000, 0x00802001,
-    0x00000080, 0x00800000, 0x00002000, 0x00802080
-};
-
-static const uint32_t SB5[64] =
-{
-    0x00000100, 0x02080100, 0x02080000, 0x42000100,
-    0x00080000, 0x00000100, 0x40000000, 0x02080000,
-    0x40080100, 0x00080000, 0x02000100, 0x40080100,
-    0x42000100, 0x42080000, 0x00080100, 0x40000000,
-    0x02000000, 0x40080000, 0x40080000, 0x00000000,
-    0x40000100, 0x42080100, 0x42080100, 0x02000100,
-    0x42080000, 0x40000100, 0x00000000, 0x42000000,
-    0x02080100, 0x02000000, 0x42000000, 0x00080100,
-    0x00080000, 0x42000100, 0x00000100, 0x02000000,
-    0x40000000, 0x02080000, 0x42000100, 0x40080100,
-    0x02000100, 0x40000000, 0x42080000, 0x02080100,
-    0x40080100, 0x00000100, 0x02000000, 0x42080000,
-    0x42080100, 0x00080100, 0x42000000, 0x42080100,
-    0x02080000, 0x00000000, 0x40080000, 0x42000000,
-    0x00080100, 0x02000100, 0x40000100, 0x00080000,
-    0x00000000, 0x40080000, 0x02080100, 0x40000100
-};
-
-static const uint32_t SB6[64] =
-{
-    0x20000010, 0x20400000, 0x00004000, 0x20404010,
-    0x20400000, 0x00000010, 0x20404010, 0x00400000,
-    0x20004000, 0x00404010, 0x00400000, 0x20000010,
-    0x00400010, 0x20004000, 0x20000000, 0x00004010,
-    0x00000000, 0x00400010, 0x20004010, 0x00004000,
-    0x00404000, 0x20004010, 0x00000010, 0x20400010,
-    0x20400010, 0x00000000, 0x00404010, 0x20404000,
-    0x00004010, 0x00404000, 0x20404000, 0x20000000,
-    0x20004000, 0x00000010, 0x20400010, 0x00404000,
-    0x20404010, 0x00400000, 0x00004010, 0x20000010,
-    0x00400000, 0x20004000, 0x20000000, 0x00004010,
-    0x20000010, 0x20404010, 0x00404000, 0x20400000,
-    0x00404010, 0x20404000, 0x00000000, 0x20400010,
-    0x00000010, 0x00004000, 0x20400000, 0x00404010,
-    0x00004000, 0x00400010, 0x20004010, 0x00000000,
-    0x20404000, 0x20000000, 0x00400010, 0x20004010
-};
-
-static const uint32_t SB7[64] =
-{
-    0x00200000, 0x04200002, 0x04000802, 0x00000000,
-    0x00000800, 0x04000802, 0x00200802, 0x04200800,
-    0x04200802, 0x00200000, 0x00000000, 0x04000002,
-    0x00000002, 0x04000000, 0x04200002, 0x00000802,
-    0x04000800, 0x00200802, 0x00200002, 0x04000800,
-    0x04000002, 0x04200000, 0x04200800, 0x00200002,
-    0x04200000, 0x00000800, 0x00000802, 0x04200802,
-    0x00200800, 0x00000002, 0x04000000, 0x00200800,
-    0x04000000, 0x00200800, 0x00200000, 0x04000802,
-    0x04000802, 0x04200002, 0x04200002, 0x00000002,
-    0x00200002, 0x04000000, 0x04000800, 0x00200000,
-    0x04200800, 0x00000802, 0x00200802, 0x04200800,
-    0x00000802, 0x04000002, 0x04200802, 0x04200000,
-    0x00200800, 0x00000000, 0x00000002, 0x04200802,
-    0x00000000, 0x00200802, 0x04200000, 0x00000800,
-    0x04000002, 0x04000800, 0x00000800, 0x00200002
-};
-
-static const uint32_t SB8[64] =
-{
-    0x10001040, 0x00001000, 0x00040000, 0x10041040,
-    0x10000000, 0x10001040, 0x00000040, 0x10000000,
-    0x00040040, 0x10040000, 0x10041040, 0x00041000,
-    0x10041000, 0x00041040, 0x00001000, 0x00000040,
-    0x10040000, 0x10000040, 0x10001000, 0x00001040,
-    0x00041000, 0x00040040, 0x10040040, 0x10041000,
-    0x00001040, 0x00000000, 0x00000000, 0x10040040,
-    0x10000040, 0x10001000, 0x00041040, 0x00040000,
-    0x00041040, 0x00040000, 0x10041000, 0x00001000,
-    0x00000040, 0x10040040, 0x00001000, 0x00041040,
-    0x10001000, 0x00000040, 0x10000040, 0x10040000,
-    0x10040040, 0x10000000, 0x00040000, 0x10001040,
-    0x00000000, 0x10041040, 0x00040040, 0x10000040,
-    0x10040000, 0x10001000, 0x10001040, 0x00000000,
-    0x10041040, 0x00041000, 0x00041000, 0x00001040,
-    0x00001040, 0x00040040, 0x10000000, 0x10041000
-};
-
-/*
- * PC1: left and right halves bit-swap
- */
-static const uint32_t LHs[16] =
-{
-    0x00000000, 0x00000001, 0x00000100, 0x00000101,
-    0x00010000, 0x00010001, 0x00010100, 0x00010101,
-    0x01000000, 0x01000001, 0x01000100, 0x01000101,
-    0x01010000, 0x01010001, 0x01010100, 0x01010101
-};
-
-static const uint32_t RHs[16] =
-{
-    0x00000000, 0x01000000, 0x00010000, 0x01010000,
-    0x00000100, 0x01000100, 0x00010100, 0x01010100,
-    0x00000001, 0x01000001, 0x00010001, 0x01010001,
-    0x00000101, 0x01000101, 0x00010101, 0x01010101,
-};
-
-/*
- * Initial Permutation macro
- */
-#define DES_IP(X, Y)                                                       \
-    do                                                                    \
-    {                                                                     \
-        T = (((X) >>  4) ^ (Y)) & 0x0F0F0F0F; (Y) ^= T; (X) ^= (T <<  4); \
-        T = (((X) >> 16) ^ (Y)) & 0x0000FFFF; (Y) ^= T; (X) ^= (T << 16); \
-        T = (((Y) >>  2) ^ (X)) & 0x33333333; (X) ^= T; (Y) ^= (T <<  2); \
-        T = (((Y) >>  8) ^ (X)) & 0x00FF00FF; (X) ^= T; (Y) ^= (T <<  8); \
-        (Y) = (((Y) << 1) | ((Y) >> 31)) & 0xFFFFFFFF;                    \
-        T = ((X) ^ (Y)) & 0xAAAAAAAA; (Y) ^= T; (X) ^= T;                 \
-        (X) = (((X) << 1) | ((X) >> 31)) & 0xFFFFFFFF;                    \
-    } while (0)
-
-/*
- * Final Permutation macro
- */
-#define DES_FP(X, Y)                                                       \
-    do                                                                    \
-    {                                                                     \
-        (X) = (((X) << 31) | ((X) >> 1)) & 0xFFFFFFFF;                    \
-        T = ((X) ^ (Y)) & 0xAAAAAAAA; (X) ^= T; (Y) ^= T;                 \
-        (Y) = (((Y) << 31) | ((Y) >> 1)) & 0xFFFFFFFF;                    \
-        T = (((Y) >>  8) ^ (X)) & 0x00FF00FF; (X) ^= T; (Y) ^= (T <<  8); \
-        T = (((Y) >>  2) ^ (X)) & 0x33333333; (X) ^= T; (Y) ^= (T <<  2); \
-        T = (((X) >> 16) ^ (Y)) & 0x0000FFFF; (Y) ^= T; (X) ^= (T << 16); \
-        T = (((X) >>  4) ^ (Y)) & 0x0F0F0F0F; (Y) ^= T; (X) ^= (T <<  4); \
-    } while (0)
-
-/*
- * DES round macro
- */
-#define DES_ROUND(X, Y)                              \
-    do                                              \
-    {                                               \
-        T = *SK++ ^ (X);                            \
-        (Y) ^= SB8[(T) & 0x3F] ^            \
-               SB6[(T >>  8) & 0x3F] ^            \
-               SB4[(T >> 16) & 0x3F] ^            \
-               SB2[(T >> 24) & 0x3F];             \
-                                                    \
-        T = *SK++ ^ (((X) << 28) | ((X) >> 4));     \
-        (Y) ^= SB7[(T) & 0x3F] ^            \
-               SB5[(T >>  8) & 0x3F] ^            \
-               SB3[(T >> 16) & 0x3F] ^            \
-               SB1[(T >> 24) & 0x3F];             \
-    } while (0)
-
-#define SWAP(a, b)                                       \
-    do                                                  \
-    {                                                   \
-        uint32_t t = (a); (a) = (b); (b) = t; t = 0;    \
-    } while (0)
-
-void mbedtls_des_init(mbedtls_des_context *ctx)
-{
-    memset(ctx, 0, sizeof(mbedtls_des_context));
-}
-
-void mbedtls_des_free(mbedtls_des_context *ctx)
-{
-    if (ctx == NULL) {
-        return;
-    }
-
-    mbedtls_platform_zeroize(ctx, sizeof(mbedtls_des_context));
-}
-
-void mbedtls_des3_init(mbedtls_des3_context *ctx)
-{
-    memset(ctx, 0, sizeof(mbedtls_des3_context));
-}
-
-void mbedtls_des3_free(mbedtls_des3_context *ctx)
-{
-    if (ctx == NULL) {
-        return;
-    }
-
-    mbedtls_platform_zeroize(ctx, sizeof(mbedtls_des3_context));
-}
-
-static const unsigned char odd_parity_table[128] = { 1,  2,  4,  7,  8,
-                                                     11, 13, 14, 16, 19, 21, 22, 25, 26, 28, 31, 32,
-                                                     35, 37, 38, 41, 42, 44,
-                                                     47, 49, 50, 52, 55, 56, 59, 61, 62, 64, 67, 69,
-                                                     70, 73, 74, 76, 79, 81,
-                                                     82, 84, 87, 88, 91, 93, 94, 97, 98, 100, 103,
-                                                     104, 107, 109, 110, 112,
-                                                     115, 117, 118, 121, 122, 124, 127, 128, 131,
-                                                     133, 134, 137, 138, 140,
-                                                     143, 145, 146, 148, 151, 152, 155, 157, 158,
-                                                     161, 162, 164, 167, 168,
-                                                     171, 173, 174, 176, 179, 181, 182, 185, 186,
-                                                     188, 191, 193, 194, 196,
-                                                     199, 200, 203, 205, 206, 208, 211, 213, 214,
-                                                     217, 218, 220, 223, 224,
-                                                     227, 229, 230, 233, 234, 236, 239, 241, 242,
-                                                     244, 247, 248, 251, 253,
-                                                     254 };
-
-void mbedtls_des_key_set_parity(unsigned char key[MBEDTLS_DES_KEY_SIZE])
-{
-    int i;
-
-    for (i = 0; i < MBEDTLS_DES_KEY_SIZE; i++) {
-        key[i] = odd_parity_table[key[i] / 2];
-    }
-}
-
-/*
- * Check the given key's parity, returns 1 on failure, 0 on SUCCESS
- */
-int mbedtls_des_key_check_key_parity(const unsigned char key[MBEDTLS_DES_KEY_SIZE])
-{
-    int i;
-
-    for (i = 0; i < MBEDTLS_DES_KEY_SIZE; i++) {
-        if (key[i] != odd_parity_table[key[i] / 2]) {
-            return 1;
-        }
-    }
-
-    return 0;
-}
-
-/*
- * Table of weak and semi-weak keys
- *
- * Source: http://en.wikipedia.org/wiki/Weak_key
- *
- * Weak:
- * Alternating ones + zeros (0x0101010101010101)
- * Alternating 'F' + 'E' (0xFEFEFEFEFEFEFEFE)
- * '0xE0E0E0E0F1F1F1F1'
- * '0x1F1F1F1F0E0E0E0E'
- *
- * Semi-weak:
- * 0x011F011F010E010E and 0x1F011F010E010E01
- * 0x01E001E001F101F1 and 0xE001E001F101F101
- * 0x01FE01FE01FE01FE and 0xFE01FE01FE01FE01
- * 0x1FE01FE00EF10EF1 and 0xE01FE01FF10EF10E
- * 0x1FFE1FFE0EFE0EFE and 0xFE1FFE1FFE0EFE0E
- * 0xE0FEE0FEF1FEF1FE and 0xFEE0FEE0FEF1FEF1
- *
- */
-
-#define WEAK_KEY_COUNT 16
-
-static const unsigned char weak_key_table[WEAK_KEY_COUNT][MBEDTLS_DES_KEY_SIZE] =
-{
-    { 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 },
-    { 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE },
-    { 0x1F, 0x1F, 0x1F, 0x1F, 0x0E, 0x0E, 0x0E, 0x0E },
-    { 0xE0, 0xE0, 0xE0, 0xE0, 0xF1, 0xF1, 0xF1, 0xF1 },
-
-    { 0x01, 0x1F, 0x01, 0x1F, 0x01, 0x0E, 0x01, 0x0E },
-    { 0x1F, 0x01, 0x1F, 0x01, 0x0E, 0x01, 0x0E, 0x01 },
-    { 0x01, 0xE0, 0x01, 0xE0, 0x01, 0xF1, 0x01, 0xF1 },
-    { 0xE0, 0x01, 0xE0, 0x01, 0xF1, 0x01, 0xF1, 0x01 },
-    { 0x01, 0xFE, 0x01, 0xFE, 0x01, 0xFE, 0x01, 0xFE },
-    { 0xFE, 0x01, 0xFE, 0x01, 0xFE, 0x01, 0xFE, 0x01 },
-    { 0x1F, 0xE0, 0x1F, 0xE0, 0x0E, 0xF1, 0x0E, 0xF1 },
-    { 0xE0, 0x1F, 0xE0, 0x1F, 0xF1, 0x0E, 0xF1, 0x0E },
-    { 0x1F, 0xFE, 0x1F, 0xFE, 0x0E, 0xFE, 0x0E, 0xFE },
-    { 0xFE, 0x1F, 0xFE, 0x1F, 0xFE, 0x0E, 0xFE, 0x0E },
-    { 0xE0, 0xFE, 0xE0, 0xFE, 0xF1, 0xFE, 0xF1, 0xFE },
-    { 0xFE, 0xE0, 0xFE, 0xE0, 0xFE, 0xF1, 0xFE, 0xF1 }
-};
-
-int mbedtls_des_key_check_weak(const unsigned char key[MBEDTLS_DES_KEY_SIZE])
-{
-    int i;
-
-    for (i = 0; i < WEAK_KEY_COUNT; i++) {
-        if (memcmp(weak_key_table[i], key, MBEDTLS_DES_KEY_SIZE) == 0) {
-            return 1;
-        }
-    }
-
-    return 0;
-}
-
-#if !defined(MBEDTLS_DES_SETKEY_ALT)
-void mbedtls_des_setkey(uint32_t SK[32], const unsigned char key[MBEDTLS_DES_KEY_SIZE])
-{
-    int i;
-    uint32_t X, Y, T;
-
-    X = MBEDTLS_GET_UINT32_BE(key, 0);
-    Y = MBEDTLS_GET_UINT32_BE(key, 4);
-
-    /*
-     * Permuted Choice 1
-     */
-    T =  ((Y >>  4) ^ X) & 0x0F0F0F0F;  X ^= T; Y ^= (T <<  4);
-    T =  ((Y) ^ X) & 0x10101010;  X ^= T; Y ^= (T);
-
-    X =   (LHs[(X) & 0xF] << 3) | (LHs[(X >>  8) & 0xF] << 2)
-        | (LHs[(X >> 16) & 0xF] << 1) | (LHs[(X >> 24) & 0xF])
-        | (LHs[(X >>  5) & 0xF] << 7) | (LHs[(X >> 13) & 0xF] << 6)
-        | (LHs[(X >> 21) & 0xF] << 5) | (LHs[(X >> 29) & 0xF] << 4);
-
-    Y =   (RHs[(Y >>  1) & 0xF] << 3) | (RHs[(Y >>  9) & 0xF] << 2)
-        | (RHs[(Y >> 17) & 0xF] << 1) | (RHs[(Y >> 25) & 0xF])
-        | (RHs[(Y >>  4) & 0xF] << 7) | (RHs[(Y >> 12) & 0xF] << 6)
-        | (RHs[(Y >> 20) & 0xF] << 5) | (RHs[(Y >> 28) & 0xF] << 4);
-
-    X &= 0x0FFFFFFF;
-    Y &= 0x0FFFFFFF;
-
-    /*
-     * calculate subkeys
-     */
-    for (i = 0; i < 16; i++) {
-        if (i < 2 || i == 8 || i == 15) {
-            X = ((X <<  1) | (X >> 27)) & 0x0FFFFFFF;
-            Y = ((Y <<  1) | (Y >> 27)) & 0x0FFFFFFF;
-        } else {
-            X = ((X <<  2) | (X >> 26)) & 0x0FFFFFFF;
-            Y = ((Y <<  2) | (Y >> 26)) & 0x0FFFFFFF;
-        }
-
-        *SK++ =   ((X <<  4) & 0x24000000) | ((X << 28) & 0x10000000)
-                | ((X << 14) & 0x08000000) | ((X << 18) & 0x02080000)
-                | ((X <<  6) & 0x01000000) | ((X <<  9) & 0x00200000)
-                | ((X >>  1) & 0x00100000) | ((X << 10) & 0x00040000)
-                | ((X <<  2) & 0x00020000) | ((X >> 10) & 0x00010000)
-                | ((Y >> 13) & 0x00002000) | ((Y >>  4) & 0x00001000)
-                | ((Y <<  6) & 0x00000800) | ((Y >>  1) & 0x00000400)
-                | ((Y >> 14) & 0x00000200) | ((Y) & 0x00000100)
-                | ((Y >>  5) & 0x00000020) | ((Y >> 10) & 0x00000010)
-                | ((Y >>  3) & 0x00000008) | ((Y >> 18) & 0x00000004)
-                | ((Y >> 26) & 0x00000002) | ((Y >> 24) & 0x00000001);
-
-        *SK++ =   ((X << 15) & 0x20000000) | ((X << 17) & 0x10000000)
-                | ((X << 10) & 0x08000000) | ((X << 22) & 0x04000000)
-                | ((X >>  2) & 0x02000000) | ((X <<  1) & 0x01000000)
-                | ((X << 16) & 0x00200000) | ((X << 11) & 0x00100000)
-                | ((X <<  3) & 0x00080000) | ((X >>  6) & 0x00040000)
-                | ((X << 15) & 0x00020000) | ((X >>  4) & 0x00010000)
-                | ((Y >>  2) & 0x00002000) | ((Y <<  8) & 0x00001000)
-                | ((Y >> 14) & 0x00000808) | ((Y >>  9) & 0x00000400)
-                | ((Y) & 0x00000200) | ((Y <<  7) & 0x00000100)
-                | ((Y >>  7) & 0x00000020) | ((Y >>  3) & 0x00000011)
-                | ((Y <<  2) & 0x00000004) | ((Y >> 21) & 0x00000002);
-    }
-}
-#endif /* !MBEDTLS_DES_SETKEY_ALT */
-
-/*
- * DES key schedule (56-bit, encryption)
- */
-int mbedtls_des_setkey_enc(mbedtls_des_context *ctx, const unsigned char key[MBEDTLS_DES_KEY_SIZE])
-{
-    mbedtls_des_setkey(ctx->sk, key);
-
-    return 0;
-}
-
-/*
- * DES key schedule (56-bit, decryption)
- */
-int mbedtls_des_setkey_dec(mbedtls_des_context *ctx, const unsigned char key[MBEDTLS_DES_KEY_SIZE])
-{
-    int i;
-
-    mbedtls_des_setkey(ctx->sk, key);
-
-    for (i = 0; i < 16; i += 2) {
-        SWAP(ctx->sk[i], ctx->sk[30 - i]);
-        SWAP(ctx->sk[i + 1], ctx->sk[31 - i]);
-    }
-
-    return 0;
-}
-
-static void des3_set2key(uint32_t esk[96],
-                         uint32_t dsk[96],
-                         const unsigned char key[MBEDTLS_DES_KEY_SIZE*2])
-{
-    int i;
-
-    mbedtls_des_setkey(esk, key);
-    mbedtls_des_setkey(dsk + 32, key + 8);
-
-    for (i = 0; i < 32; i += 2) {
-        dsk[i] = esk[30 - i];
-        dsk[i +  1] = esk[31 - i];
-
-        esk[i + 32] = dsk[62 - i];
-        esk[i + 33] = dsk[63 - i];
-
-        esk[i + 64] = esk[i];
-        esk[i + 65] = esk[i + 1];
-
-        dsk[i + 64] = dsk[i];
-        dsk[i + 65] = dsk[i + 1];
-    }
-}
-
-/*
- * Triple-DES key schedule (112-bit, encryption)
- */
-int mbedtls_des3_set2key_enc(mbedtls_des3_context *ctx,
-                             const unsigned char key[MBEDTLS_DES_KEY_SIZE * 2])
-{
-    uint32_t sk[96];
-
-    des3_set2key(ctx->sk, sk, key);
-    mbedtls_platform_zeroize(sk,  sizeof(sk));
-
-    return 0;
-}
-
-/*
- * Triple-DES key schedule (112-bit, decryption)
- */
-int mbedtls_des3_set2key_dec(mbedtls_des3_context *ctx,
-                             const unsigned char key[MBEDTLS_DES_KEY_SIZE * 2])
-{
-    uint32_t sk[96];
-
-    des3_set2key(sk, ctx->sk, key);
-    mbedtls_platform_zeroize(sk,  sizeof(sk));
-
-    return 0;
-}
-
-static void des3_set3key(uint32_t esk[96],
-                         uint32_t dsk[96],
-                         const unsigned char key[24])
-{
-    int i;
-
-    mbedtls_des_setkey(esk, key);
-    mbedtls_des_setkey(dsk + 32, key +  8);
-    mbedtls_des_setkey(esk + 64, key + 16);
-
-    for (i = 0; i < 32; i += 2) {
-        dsk[i] = esk[94 - i];
-        dsk[i +  1] = esk[95 - i];
-
-        esk[i + 32] = dsk[62 - i];
-        esk[i + 33] = dsk[63 - i];
-
-        dsk[i + 64] = esk[30 - i];
-        dsk[i + 65] = esk[31 - i];
-    }
-}
-
-/*
- * Triple-DES key schedule (168-bit, encryption)
- */
-int mbedtls_des3_set3key_enc(mbedtls_des3_context *ctx,
-                             const unsigned char key[MBEDTLS_DES_KEY_SIZE * 3])
-{
-    uint32_t sk[96];
-
-    des3_set3key(ctx->sk, sk, key);
-    mbedtls_platform_zeroize(sk,  sizeof(sk));
-
-    return 0;
-}
-
-/*
- * Triple-DES key schedule (168-bit, decryption)
- */
-int mbedtls_des3_set3key_dec(mbedtls_des3_context *ctx,
-                             const unsigned char key[MBEDTLS_DES_KEY_SIZE * 3])
-{
-    uint32_t sk[96];
-
-    des3_set3key(sk, ctx->sk, key);
-    mbedtls_platform_zeroize(sk,  sizeof(sk));
-
-    return 0;
-}
-
-/*
- * DES-ECB block encryption/decryption
- */
-#if !defined(MBEDTLS_DES_CRYPT_ECB_ALT)
-int mbedtls_des_crypt_ecb(mbedtls_des_context *ctx,
-                          const unsigned char input[8],
-                          unsigned char output[8])
-{
-    int i;
-    uint32_t X, Y, T, *SK;
-
-    SK = ctx->sk;
-
-    X = MBEDTLS_GET_UINT32_BE(input, 0);
-    Y = MBEDTLS_GET_UINT32_BE(input, 4);
-
-    DES_IP(X, Y);
-
-    for (i = 0; i < 8; i++) {
-        DES_ROUND(Y, X);
-        DES_ROUND(X, Y);
-    }
-
-    DES_FP(Y, X);
-
-    MBEDTLS_PUT_UINT32_BE(Y, output, 0);
-    MBEDTLS_PUT_UINT32_BE(X, output, 4);
-
-    return 0;
-}
-#endif /* !MBEDTLS_DES_CRYPT_ECB_ALT */
-
-#if defined(MBEDTLS_CIPHER_MODE_CBC)
-/*
- * DES-CBC buffer encryption/decryption
- */
-int mbedtls_des_crypt_cbc(mbedtls_des_context *ctx,
-                          int mode,
-                          size_t length,
-                          unsigned char iv[8],
-                          const unsigned char *input,
-                          unsigned char *output)
-{
-    int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
-    unsigned char temp[8];
-
-    if (length % 8) {
-        return MBEDTLS_ERR_DES_INVALID_INPUT_LENGTH;
-    }
-
-    if (mode == MBEDTLS_DES_ENCRYPT) {
-        while (length > 0) {
-            mbedtls_xor(output, input, iv, 8);
-
-            ret = mbedtls_des_crypt_ecb(ctx, output, output);
-            if (ret != 0) {
-                goto exit;
-            }
-            memcpy(iv, output, 8);
-
-            input  += 8;
-            output += 8;
-            length -= 8;
-        }
-    } else { /* MBEDTLS_DES_DECRYPT */
-        while (length > 0) {
-            memcpy(temp, input, 8);
-            ret = mbedtls_des_crypt_ecb(ctx, input, output);
-            if (ret != 0) {
-                goto exit;
-            }
-
-            mbedtls_xor(output, output, iv, 8);
-
-            memcpy(iv, temp, 8);
-
-            input  += 8;
-            output += 8;
-            length -= 8;
-        }
-    }
-    ret = 0;
-
-exit:
-    return ret;
-}
-#endif /* MBEDTLS_CIPHER_MODE_CBC */
-
-/*
- * 3DES-ECB block encryption/decryption
- */
-#if !defined(MBEDTLS_DES3_CRYPT_ECB_ALT)
-int mbedtls_des3_crypt_ecb(mbedtls_des3_context *ctx,
-                           const unsigned char input[8],
-                           unsigned char output[8])
-{
-    int i;
-    uint32_t X, Y, T, *SK;
-
-    SK = ctx->sk;
-
-    X = MBEDTLS_GET_UINT32_BE(input, 0);
-    Y = MBEDTLS_GET_UINT32_BE(input, 4);
-
-    DES_IP(X, Y);
-
-    for (i = 0; i < 8; i++) {
-        DES_ROUND(Y, X);
-        DES_ROUND(X, Y);
-    }
-
-    for (i = 0; i < 8; i++) {
-        DES_ROUND(X, Y);
-        DES_ROUND(Y, X);
-    }
-
-    for (i = 0; i < 8; i++) {
-        DES_ROUND(Y, X);
-        DES_ROUND(X, Y);
-    }
-
-    DES_FP(Y, X);
-
-    MBEDTLS_PUT_UINT32_BE(Y, output, 0);
-    MBEDTLS_PUT_UINT32_BE(X, output, 4);
-
-    return 0;
-}
-#endif /* !MBEDTLS_DES3_CRYPT_ECB_ALT */
-
-#if defined(MBEDTLS_CIPHER_MODE_CBC)
-/*
- * 3DES-CBC buffer encryption/decryption
- */
-int mbedtls_des3_crypt_cbc(mbedtls_des3_context *ctx,
-                           int mode,
-                           size_t length,
-                           unsigned char iv[8],
-                           const unsigned char *input,
-                           unsigned char *output)
-{
-    int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
-    unsigned char temp[8];
-
-    if (length % 8) {
-        return MBEDTLS_ERR_DES_INVALID_INPUT_LENGTH;
-    }
-
-    if (mode == MBEDTLS_DES_ENCRYPT) {
-        while (length > 0) {
-            mbedtls_xor(output, input, iv, 8);
-
-            ret = mbedtls_des3_crypt_ecb(ctx, output, output);
-            if (ret != 0) {
-                goto exit;
-            }
-            memcpy(iv, output, 8);
-
-            input  += 8;
-            output += 8;
-            length -= 8;
-        }
-    } else { /* MBEDTLS_DES_DECRYPT */
-        while (length > 0) {
-            memcpy(temp, input, 8);
-            ret = mbedtls_des3_crypt_ecb(ctx, input, output);
-            if (ret != 0) {
-                goto exit;
-            }
-
-            mbedtls_xor(output, output, iv, 8);
-
-            memcpy(iv, temp, 8);
-
-            input  += 8;
-            output += 8;
-            length -= 8;
-        }
-    }
-    ret = 0;
-
-exit:
-    return ret;
-}
-#endif /* MBEDTLS_CIPHER_MODE_CBC */
-
-#endif /* !MBEDTLS_DES_ALT */
-
-#if defined(MBEDTLS_SELF_TEST)
-/*
- * DES and 3DES test vectors from:
- *
- * http://csrc.nist.gov/groups/STM/cavp/documents/des/tripledes-vectors.zip
- */
-static const unsigned char des3_test_keys[24] =
-{
-    0x01, 0x23, 0x45, 0x67, 0x89, 0xAB, 0xCD, 0xEF,
-    0x23, 0x45, 0x67, 0x89, 0xAB, 0xCD, 0xEF, 0x01,
-    0x45, 0x67, 0x89, 0xAB, 0xCD, 0xEF, 0x01, 0x23
-};
-
-static const unsigned char des3_test_buf[8] =
-{
-    0x4E, 0x6F, 0x77, 0x20, 0x69, 0x73, 0x20, 0x74
-};
-
-static const unsigned char des3_test_ecb_dec[3][8] =
-{
-    { 0x37, 0x2B, 0x98, 0xBF, 0x52, 0x65, 0xB0, 0x59 },
-    { 0xC2, 0x10, 0x19, 0x9C, 0x38, 0x5A, 0x65, 0xA1 },
-    { 0xA2, 0x70, 0x56, 0x68, 0x69, 0xE5, 0x15, 0x1D }
-};
-
-static const unsigned char des3_test_ecb_enc[3][8] =
-{
-    { 0x1C, 0xD5, 0x97, 0xEA, 0x84, 0x26, 0x73, 0xFB },
-    { 0xB3, 0x92, 0x4D, 0xF3, 0xC5, 0xB5, 0x42, 0x93 },
-    { 0xDA, 0x37, 0x64, 0x41, 0xBA, 0x6F, 0x62, 0x6F }
-};
-
-#if defined(MBEDTLS_CIPHER_MODE_CBC)
-static const unsigned char des3_test_iv[8] =
-{
-    0x12, 0x34, 0x56, 0x78, 0x90, 0xAB, 0xCD, 0xEF,
-};
-
-static const unsigned char des3_test_cbc_dec[3][8] =
-{
-    { 0x58, 0xD9, 0x48, 0xEF, 0x85, 0x14, 0x65, 0x9A },
-    { 0x5F, 0xC8, 0x78, 0xD4, 0xD7, 0x92, 0xD9, 0x54 },
-    { 0x25, 0xF9, 0x75, 0x85, 0xA8, 0x1E, 0x48, 0xBF }
-};
-
-static const unsigned char des3_test_cbc_enc[3][8] =
-{
-    { 0x91, 0x1C, 0x6D, 0xCF, 0x48, 0xA7, 0xC3, 0x4D },
-    { 0x60, 0x1A, 0x76, 0x8F, 0xA1, 0xF9, 0x66, 0xF1 },
-    { 0xA1, 0x50, 0x0F, 0x99, 0xB2, 0xCD, 0x64, 0x76 }
-};
-#endif /* MBEDTLS_CIPHER_MODE_CBC */
-
-/*
- * Checkup routine
- */
-int mbedtls_des_self_test(int verbose)
-{
-    int i, j, u, v, ret = 0;
-    mbedtls_des_context ctx;
-    mbedtls_des3_context ctx3;
-    unsigned char buf[8];
-#if defined(MBEDTLS_CIPHER_MODE_CBC)
-    unsigned char prv[8];
-    unsigned char iv[8];
-#endif
-
-    mbedtls_des_init(&ctx);
-    mbedtls_des3_init(&ctx3);
-    /*
-     * ECB mode
-     */
-    for (i = 0; i < 6; i++) {
-        u = i >> 1;
-        v = i  & 1;
-
-        if (verbose != 0) {
-            mbedtls_printf("  DES%c-ECB-%3d (%s): ",
-                           (u == 0) ? ' ' : '3', 56 + u * 56,
-                           (v == MBEDTLS_DES_DECRYPT) ? "dec" : "enc");
-        }
-
-        memcpy(buf, des3_test_buf, 8);
-
-        switch (i) {
-            case 0:
-                ret = mbedtls_des_setkey_dec(&ctx, des3_test_keys);
-                break;
-
-            case 1:
-                ret = mbedtls_des_setkey_enc(&ctx, des3_test_keys);
-                break;
-
-            case 2:
-                ret = mbedtls_des3_set2key_dec(&ctx3, des3_test_keys);
-                break;
-
-            case 3:
-                ret = mbedtls_des3_set2key_enc(&ctx3, des3_test_keys);
-                break;
-
-            case 4:
-                ret = mbedtls_des3_set3key_dec(&ctx3, des3_test_keys);
-                break;
-
-            case 5:
-                ret = mbedtls_des3_set3key_enc(&ctx3, des3_test_keys);
-                break;
-
-            default:
-                return 1;
-        }
-        if (ret != 0) {
-            goto exit;
-        }
-
-        for (j = 0; j < 100; j++) {
-            if (u == 0) {
-                ret = mbedtls_des_crypt_ecb(&ctx, buf, buf);
-            } else {
-                ret = mbedtls_des3_crypt_ecb(&ctx3, buf, buf);
-            }
-            if (ret != 0) {
-                goto exit;
-            }
-        }
-
-        if ((v == MBEDTLS_DES_DECRYPT &&
-             memcmp(buf, des3_test_ecb_dec[u], 8) != 0) ||
-            (v != MBEDTLS_DES_DECRYPT &&
-             memcmp(buf, des3_test_ecb_enc[u], 8) != 0)) {
-            if (verbose != 0) {
-                mbedtls_printf("failed\n");
-            }
-
-            ret = 1;
-            goto exit;
-        }
-
-        if (verbose != 0) {
-            mbedtls_printf("passed\n");
-        }
-    }
-
-    if (verbose != 0) {
-        mbedtls_printf("\n");
-    }
-
-#if defined(MBEDTLS_CIPHER_MODE_CBC)
-    /*
-     * CBC mode
-     */
-    for (i = 0; i < 6; i++) {
-        u = i >> 1;
-        v = i  & 1;
-
-        if (verbose != 0) {
-            mbedtls_printf("  DES%c-CBC-%3d (%s): ",
-                           (u == 0) ? ' ' : '3', 56 + u * 56,
-                           (v == MBEDTLS_DES_DECRYPT) ? "dec" : "enc");
-        }
-
-        memcpy(iv,  des3_test_iv,  8);
-        memcpy(prv, des3_test_iv,  8);
-        memcpy(buf, des3_test_buf, 8);
-
-        switch (i) {
-            case 0:
-                ret = mbedtls_des_setkey_dec(&ctx, des3_test_keys);
-                break;
-
-            case 1:
-                ret = mbedtls_des_setkey_enc(&ctx, des3_test_keys);
-                break;
-
-            case 2:
-                ret = mbedtls_des3_set2key_dec(&ctx3, des3_test_keys);
-                break;
-
-            case 3:
-                ret = mbedtls_des3_set2key_enc(&ctx3, des3_test_keys);
-                break;
-
-            case 4:
-                ret = mbedtls_des3_set3key_dec(&ctx3, des3_test_keys);
-                break;
-
-            case 5:
-                ret = mbedtls_des3_set3key_enc(&ctx3, des3_test_keys);
-                break;
-
-            default:
-                return 1;
-        }
-        if (ret != 0) {
-            goto exit;
-        }
-
-        if (v == MBEDTLS_DES_DECRYPT) {
-            for (j = 0; j < 100; j++) {
-                if (u == 0) {
-                    ret = mbedtls_des_crypt_cbc(&ctx, v, 8, iv, buf, buf);
-                } else {
-                    ret = mbedtls_des3_crypt_cbc(&ctx3, v, 8, iv, buf, buf);
-                }
-                if (ret != 0) {
-                    goto exit;
-                }
-            }
-        } else {
-            for (j = 0; j < 100; j++) {
-                unsigned char tmp[8];
-
-                if (u == 0) {
-                    ret = mbedtls_des_crypt_cbc(&ctx, v, 8, iv, buf, buf);
-                } else {
-                    ret = mbedtls_des3_crypt_cbc(&ctx3, v, 8, iv, buf, buf);
-                }
-                if (ret != 0) {
-                    goto exit;
-                }
-
-                memcpy(tmp, prv, 8);
-                memcpy(prv, buf, 8);
-                memcpy(buf, tmp, 8);
-            }
-
-            memcpy(buf, prv, 8);
-        }
-
-        if ((v == MBEDTLS_DES_DECRYPT &&
-             memcmp(buf, des3_test_cbc_dec[u], 8) != 0) ||
-            (v != MBEDTLS_DES_DECRYPT &&
-             memcmp(buf, des3_test_cbc_enc[u], 8) != 0)) {
-            if (verbose != 0) {
-                mbedtls_printf("failed\n");
-            }
-
-            ret = 1;
-            goto exit;
-        }
-
-        if (verbose != 0) {
-            mbedtls_printf("passed\n");
-        }
-    }
-#endif /* MBEDTLS_CIPHER_MODE_CBC */
-
-    if (verbose != 0) {
-        mbedtls_printf("\n");
-    }
-
-exit:
-    mbedtls_des_free(&ctx);
-    mbedtls_des3_free(&ctx3);
-
-    if (ret != 0) {
-        ret = 1;
-    }
-    return ret;
-}
-
-#endif /* MBEDTLS_SELF_TEST */
-
-#endif /* MBEDTLS_DES_C */
diff --git a/deps/LIEF/third-party/mbedtls/library/dhm.c b/deps/LIEF/third-party/mbedtls/library/dhm.c
deleted file mode 100644
index bcc07f54419..00000000000
--- a/deps/LIEF/third-party/mbedtls/library/dhm.c
+++ /dev/null
@@ -1,712 +0,0 @@
-/*
- *  Diffie-Hellman-Merkle key exchange
- *
- *  Copyright The Mbed TLS Contributors
- *  SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
- */
-/*
- *  The following sources were referenced in the design of this implementation
- *  of the Diffie-Hellman-Merkle algorithm:
- *
- *  [1] Handbook of Applied Cryptography - 1997, Chapter 12
- *      Menezes, van Oorschot and Vanstone
- *
- */
-
-#include "common.h"
-
-#if defined(MBEDTLS_DHM_C)
-
-#include "mbedtls/dhm.h"
-#include "mbedtls/platform_util.h"
-#include "mbedtls/error.h"
-
-#include <string.h>
-
-#if defined(MBEDTLS_PEM_PARSE_C)
-#include "mbedtls/pem.h"
-#endif
-
-#if defined(MBEDTLS_ASN1_PARSE_C)
-#include "mbedtls/asn1.h"
-#endif
-
-#include "mbedtls/platform.h"
-
-#if !defined(MBEDTLS_DHM_ALT)
-
-/*
- * helper to validate the mbedtls_mpi size and import it
- */
-static int dhm_read_bignum(mbedtls_mpi *X,
-                           unsigned char **p,
-                           const unsigned char *end)
-{
-    int ret, n;
-
-    if (end - *p < 2) {
-        return MBEDTLS_ERR_DHM_BAD_INPUT_DATA;
-    }
-
-    n = MBEDTLS_GET_UINT16_BE(*p, 0);
-    (*p) += 2;
-
-    if ((size_t) (end - *p) < (size_t) n) {
-        return MBEDTLS_ERR_DHM_BAD_INPUT_DATA;
-    }
-
-    if ((ret = mbedtls_mpi_read_binary(X, *p, n)) != 0) {
-        return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_DHM_READ_PARAMS_FAILED, ret);
-    }
-
-    (*p) += n;
-
-    return 0;
-}
-
-/*
- * Verify sanity of parameter with regards to P
- *
- * Parameter should be: 2 <= public_param <= P - 2
- *
- * This means that we need to return an error if
- *              public_param < 2 or public_param > P-2
- *
- * For more information on the attack, see:
- *  http://www.cl.cam.ac.uk/~rja14/Papers/psandqs.pdf
- *  http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2005-2643
- */
-static int dhm_check_range(const mbedtls_mpi *param, const mbedtls_mpi *P)
-{
-    mbedtls_mpi U;
-    int ret = 0;
-
-    mbedtls_mpi_init(&U);
-
-    MBEDTLS_MPI_CHK(mbedtls_mpi_sub_int(&U, P, 2));
-
-    if (mbedtls_mpi_cmp_int(param, 2) < 0 ||
-        mbedtls_mpi_cmp_mpi(param, &U) > 0) {
-        ret = MBEDTLS_ERR_DHM_BAD_INPUT_DATA;
-    }
-
-cleanup:
-    mbedtls_mpi_free(&U);
-    return ret;
-}
-
-void mbedtls_dhm_init(mbedtls_dhm_context *ctx)
-{
-    memset(ctx, 0, sizeof(mbedtls_dhm_context));
-}
-
-size_t mbedtls_dhm_get_bitlen(const mbedtls_dhm_context *ctx)
-{
-    return mbedtls_mpi_bitlen(&ctx->P);
-}
-
-size_t mbedtls_dhm_get_len(const mbedtls_dhm_context *ctx)
-{
-    return mbedtls_mpi_size(&ctx->P);
-}
-
-int mbedtls_dhm_get_value(const mbedtls_dhm_context *ctx,
-                          mbedtls_dhm_parameter param,
-                          mbedtls_mpi *dest)
-{
-    const mbedtls_mpi *src = NULL;
-    switch (param) {
-        case MBEDTLS_DHM_PARAM_P:
-            src = &ctx->P;
-            break;
-        case MBEDTLS_DHM_PARAM_G:
-            src = &ctx->G;
-            break;
-        case MBEDTLS_DHM_PARAM_X:
-            src = &ctx->X;
-            break;
-        case MBEDTLS_DHM_PARAM_GX:
-            src = &ctx->GX;
-            break;
-        case MBEDTLS_DHM_PARAM_GY:
-            src = &ctx->GY;
-            break;
-        case MBEDTLS_DHM_PARAM_K:
-            src = &ctx->K;
-            break;
-        default:
-            return MBEDTLS_ERR_DHM_BAD_INPUT_DATA;
-    }
-    return mbedtls_mpi_copy(dest, src);
-}
-
-/*
- * Parse the ServerKeyExchange parameters
- */
-int mbedtls_dhm_read_params(mbedtls_dhm_context *ctx,
-                            unsigned char **p,
-                            const unsigned char *end)
-{
-    int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
-
-    if ((ret = dhm_read_bignum(&ctx->P,  p, end)) != 0 ||
-        (ret = dhm_read_bignum(&ctx->G,  p, end)) != 0 ||
-        (ret = dhm_read_bignum(&ctx->GY, p, end)) != 0) {
-        return ret;
-    }
-
-    if ((ret = dhm_check_range(&ctx->GY, &ctx->P)) != 0) {
-        return ret;
-    }
-
-    return 0;
-}
-
-/*
- * Pick a random R in the range [2, M-2] for blinding or key generation.
- */
-static int dhm_random_below(mbedtls_mpi *R, const mbedtls_mpi *M,
-                            int (*f_rng)(void *, unsigned char *, size_t), void *p_rng)
-{
-    int ret;
-
-    MBEDTLS_MPI_CHK(mbedtls_mpi_random(R, 3, M, f_rng, p_rng));
-    MBEDTLS_MPI_CHK(mbedtls_mpi_sub_int(R, R, 1));
-
-cleanup:
-    return ret;
-}
-
-static int dhm_make_common(mbedtls_dhm_context *ctx, int x_size,
-                           int (*f_rng)(void *, unsigned char *, size_t),
-                           void *p_rng)
-{
-    int ret = 0;
-
-    if (mbedtls_mpi_cmp_int(&ctx->P, 0) == 0) {
-        return MBEDTLS_ERR_DHM_BAD_INPUT_DATA;
-    }
-    if (x_size < 0) {
-        return MBEDTLS_ERR_DHM_BAD_INPUT_DATA;
-    }
-
-    if ((unsigned) x_size < mbedtls_mpi_size(&ctx->P)) {
-        MBEDTLS_MPI_CHK(mbedtls_mpi_fill_random(&ctx->X, x_size, f_rng, p_rng));
-    } else {
-        /* Generate X as large as possible ( <= P - 2 ) */
-        ret = dhm_random_below(&ctx->X, &ctx->P, f_rng, p_rng);
-        if (ret == MBEDTLS_ERR_MPI_NOT_ACCEPTABLE) {
-            return MBEDTLS_ERR_DHM_MAKE_PARAMS_FAILED;
-        }
-        if (ret != 0) {
-            return ret;
-        }
-    }
-
-    /*
-     * Calculate GX = G^X mod P
-     */
-    MBEDTLS_MPI_CHK(mbedtls_mpi_exp_mod(&ctx->GX, &ctx->G, &ctx->X,
-                                        &ctx->P, &ctx->RP));
-
-    if ((ret = dhm_check_range(&ctx->GX, &ctx->P)) != 0) {
-        return ret;
-    }
-
-cleanup:
-    return ret;
-}
-
-/*
- * Setup and write the ServerKeyExchange parameters
- */
-int mbedtls_dhm_make_params(mbedtls_dhm_context *ctx, int x_size,
-                            unsigned char *output, size_t *olen,
-                            int (*f_rng)(void *, unsigned char *, size_t),
-                            void *p_rng)
-{
-    int ret;
-    size_t n1, n2, n3;
-    unsigned char *p;
-
-    ret = dhm_make_common(ctx, x_size, f_rng, p_rng);
-    if (ret != 0) {
-        goto cleanup;
-    }
-
-    /*
-     * Export P, G, GX. RFC 5246 §4.4 states that "leading zero octets are
-     * not required". We omit leading zeros for compactness.
-     */
-#define DHM_MPI_EXPORT(X, n)                                          \
-    do {                                                                \
-        MBEDTLS_MPI_CHK(mbedtls_mpi_write_binary((X),               \
-                                                 p + 2,               \
-                                                 (n)));           \
-        *p++ = MBEDTLS_BYTE_1(n);                                     \
-        *p++ = MBEDTLS_BYTE_0(n);                                     \
-        p += (n);                                                     \
-    } while (0)
-
-    n1 = mbedtls_mpi_size(&ctx->P);
-    n2 = mbedtls_mpi_size(&ctx->G);
-    n3 = mbedtls_mpi_size(&ctx->GX);
-
-    p = output;
-    DHM_MPI_EXPORT(&ctx->P, n1);
-    DHM_MPI_EXPORT(&ctx->G, n2);
-    DHM_MPI_EXPORT(&ctx->GX, n3);
-
-    *olen = (size_t) (p - output);
-
-cleanup:
-    if (ret != 0 && ret > -128) {
-        ret = MBEDTLS_ERROR_ADD(MBEDTLS_ERR_DHM_MAKE_PARAMS_FAILED, ret);
-    }
-    return ret;
-}
-
-/*
- * Set prime modulus and generator
- */
-int mbedtls_dhm_set_group(mbedtls_dhm_context *ctx,
-                          const mbedtls_mpi *P,
-                          const mbedtls_mpi *G)
-{
-    int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
-
-    if ((ret = mbedtls_mpi_copy(&ctx->P, P)) != 0 ||
-        (ret = mbedtls_mpi_copy(&ctx->G, G)) != 0) {
-        return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_DHM_SET_GROUP_FAILED, ret);
-    }
-
-    return 0;
-}
-
-/*
- * Import the peer's public value G^Y
- */
-int mbedtls_dhm_read_public(mbedtls_dhm_context *ctx,
-                            const unsigned char *input, size_t ilen)
-{
-    int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
-
-    if (ilen < 1 || ilen > mbedtls_dhm_get_len(ctx)) {
-        return MBEDTLS_ERR_DHM_BAD_INPUT_DATA;
-    }
-
-    if ((ret = mbedtls_mpi_read_binary(&ctx->GY, input, ilen)) != 0) {
-        return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_DHM_READ_PUBLIC_FAILED, ret);
-    }
-
-    return 0;
-}
-
-/*
- * Create own private value X and export G^X
- */
-int mbedtls_dhm_make_public(mbedtls_dhm_context *ctx, int x_size,
-                            unsigned char *output, size_t olen,
-                            int (*f_rng)(void *, unsigned char *, size_t),
-                            void *p_rng)
-{
-    int ret;
-
-    if (olen < 1 || olen > mbedtls_dhm_get_len(ctx)) {
-        return MBEDTLS_ERR_DHM_BAD_INPUT_DATA;
-    }
-
-    ret = dhm_make_common(ctx, x_size, f_rng, p_rng);
-    if (ret == MBEDTLS_ERR_DHM_MAKE_PARAMS_FAILED) {
-        return MBEDTLS_ERR_DHM_MAKE_PUBLIC_FAILED;
-    }
-    if (ret != 0) {
-        goto cleanup;
-    }
-
-    MBEDTLS_MPI_CHK(mbedtls_mpi_write_binary(&ctx->GX, output, olen));
-
-cleanup:
-    if (ret != 0 && ret > -128) {
-        ret = MBEDTLS_ERROR_ADD(MBEDTLS_ERR_DHM_MAKE_PUBLIC_FAILED, ret);
-    }
-    return ret;
-}
-
-
-/*
- * Use the blinding method and optimisation suggested in section 10 of:
- *  KOCHER, Paul C. Timing attacks on implementations of Diffie-Hellman, RSA,
- *  DSS, and other systems. In : Advances in Cryptology-CRYPTO'96. Springer
- *  Berlin Heidelberg, 1996. p. 104-113.
- */
-static int dhm_update_blinding(mbedtls_dhm_context *ctx,
-                               int (*f_rng)(void *, unsigned char *, size_t), void *p_rng)
-{
-    int ret;
-    mbedtls_mpi R;
-
-    mbedtls_mpi_init(&R);
-
-    /*
-     * Don't use any blinding the first time a particular X is used,
-     * but remember it to use blinding next time.
-     */
-    if (mbedtls_mpi_cmp_mpi(&ctx->X, &ctx->pX) != 0) {
-        MBEDTLS_MPI_CHK(mbedtls_mpi_copy(&ctx->pX, &ctx->X));
-        MBEDTLS_MPI_CHK(mbedtls_mpi_lset(&ctx->Vi, 1));
-        MBEDTLS_MPI_CHK(mbedtls_mpi_lset(&ctx->Vf, 1));
-
-        return 0;
-    }
-
-    /*
-     * Ok, we need blinding. Can we re-use existing values?
-     * If yes, just update them by squaring them.
-     */
-    if (mbedtls_mpi_cmp_int(&ctx->Vi, 1) != 0) {
-        MBEDTLS_MPI_CHK(mbedtls_mpi_mul_mpi(&ctx->Vi, &ctx->Vi, &ctx->Vi));
-        MBEDTLS_MPI_CHK(mbedtls_mpi_mod_mpi(&ctx->Vi, &ctx->Vi, &ctx->P));
-
-        MBEDTLS_MPI_CHK(mbedtls_mpi_mul_mpi(&ctx->Vf, &ctx->Vf, &ctx->Vf));
-        MBEDTLS_MPI_CHK(mbedtls_mpi_mod_mpi(&ctx->Vf, &ctx->Vf, &ctx->P));
-
-        return 0;
-    }
-
-    /*
-     * We need to generate blinding values from scratch
-     */
-
-    /* Vi = random( 2, P-2 ) */
-    MBEDTLS_MPI_CHK(dhm_random_below(&ctx->Vi, &ctx->P, f_rng, p_rng));
-
-    /* Vf = Vi^-X mod P
-     * First compute Vi^-1 = R * (R Vi)^-1, (avoiding leaks from inv_mod),
-     * then elevate to the Xth power. */
-    MBEDTLS_MPI_CHK(dhm_random_below(&R, &ctx->P, f_rng, p_rng));
-    MBEDTLS_MPI_CHK(mbedtls_mpi_mul_mpi(&ctx->Vf, &ctx->Vi, &R));
-    MBEDTLS_MPI_CHK(mbedtls_mpi_mod_mpi(&ctx->Vf, &ctx->Vf, &ctx->P));
-    MBEDTLS_MPI_CHK(mbedtls_mpi_inv_mod(&ctx->Vf, &ctx->Vf, &ctx->P));
-    MBEDTLS_MPI_CHK(mbedtls_mpi_mul_mpi(&ctx->Vf, &ctx->Vf, &R));
-    MBEDTLS_MPI_CHK(mbedtls_mpi_mod_mpi(&ctx->Vf, &ctx->Vf, &ctx->P));
-
-    MBEDTLS_MPI_CHK(mbedtls_mpi_exp_mod(&ctx->Vf, &ctx->Vf, &ctx->X, &ctx->P, &ctx->RP));
-
-cleanup:
-    mbedtls_mpi_free(&R);
-
-    return ret;
-}
-
-/*
- * Derive and export the shared secret (G^Y)^X mod P
- */
-int mbedtls_dhm_calc_secret(mbedtls_dhm_context *ctx,
-                            unsigned char *output, size_t output_size, size_t *olen,
-                            int (*f_rng)(void *, unsigned char *, size_t),
-                            void *p_rng)
-{
-    int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
-    mbedtls_mpi GYb;
-
-    if (f_rng == NULL) {
-        return MBEDTLS_ERR_DHM_BAD_INPUT_DATA;
-    }
-
-    if (output_size < mbedtls_dhm_get_len(ctx)) {
-        return MBEDTLS_ERR_DHM_BAD_INPUT_DATA;
-    }
-
-    if ((ret = dhm_check_range(&ctx->GY, &ctx->P)) != 0) {
-        return ret;
-    }
-
-    mbedtls_mpi_init(&GYb);
-
-    /* Blind peer's value */
-    MBEDTLS_MPI_CHK(dhm_update_blinding(ctx, f_rng, p_rng));
-    MBEDTLS_MPI_CHK(mbedtls_mpi_mul_mpi(&GYb, &ctx->GY, &ctx->Vi));
-    MBEDTLS_MPI_CHK(mbedtls_mpi_mod_mpi(&GYb, &GYb, &ctx->P));
-
-    /* Do modular exponentiation */
-    MBEDTLS_MPI_CHK(mbedtls_mpi_exp_mod(&ctx->K, &GYb, &ctx->X,
-                                        &ctx->P, &ctx->RP));
-
-    /* Unblind secret value */
-    MBEDTLS_MPI_CHK(mbedtls_mpi_mul_mpi(&ctx->K, &ctx->K, &ctx->Vf));
-    MBEDTLS_MPI_CHK(mbedtls_mpi_mod_mpi(&ctx->K, &ctx->K, &ctx->P));
-
-    /* Output the secret without any leading zero byte. This is mandatory
-     * for TLS per RFC 5246 §8.1.2. */
-    *olen = mbedtls_mpi_size(&ctx->K);
-    MBEDTLS_MPI_CHK(mbedtls_mpi_write_binary(&ctx->K, output, *olen));
-
-cleanup:
-    mbedtls_mpi_free(&GYb);
-
-    if (ret != 0) {
-        return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_DHM_CALC_SECRET_FAILED, ret);
-    }
-
-    return 0;
-}
-
-/*
- * Free the components of a DHM key
- */
-void mbedtls_dhm_free(mbedtls_dhm_context *ctx)
-{
-    if (ctx == NULL) {
-        return;
-    }
-
-    mbedtls_mpi_free(&ctx->pX);
-    mbedtls_mpi_free(&ctx->Vf);
-    mbedtls_mpi_free(&ctx->Vi);
-    mbedtls_mpi_free(&ctx->RP);
-    mbedtls_mpi_free(&ctx->K);
-    mbedtls_mpi_free(&ctx->GY);
-    mbedtls_mpi_free(&ctx->GX);
-    mbedtls_mpi_free(&ctx->X);
-    mbedtls_mpi_free(&ctx->G);
-    mbedtls_mpi_free(&ctx->P);
-
-    mbedtls_platform_zeroize(ctx, sizeof(mbedtls_dhm_context));
-}
-
-#if defined(MBEDTLS_ASN1_PARSE_C)
-/*
- * Parse DHM parameters
- */
-int mbedtls_dhm_parse_dhm(mbedtls_dhm_context *dhm, const unsigned char *dhmin,
-                          size_t dhminlen)
-{
-    int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
-    size_t len;
-    unsigned char *p, *end;
-#if defined(MBEDTLS_PEM_PARSE_C)
-    mbedtls_pem_context pem;
-#endif /* MBEDTLS_PEM_PARSE_C */
-
-#if defined(MBEDTLS_PEM_PARSE_C)
-    mbedtls_pem_init(&pem);
-
-    /* Avoid calling mbedtls_pem_read_buffer() on non-null-terminated string */
-    if (dhminlen == 0 || dhmin[dhminlen - 1] != '\0') {
-        ret = MBEDTLS_ERR_PEM_NO_HEADER_FOOTER_PRESENT;
-    } else {
-        ret = mbedtls_pem_read_buffer(&pem,
-                                      "-----BEGIN DH PARAMETERS-----",
-                                      "-----END DH PARAMETERS-----",
-                                      dhmin, NULL, 0, &dhminlen);
-    }
-
-    if (ret == 0) {
-        /*
-         * Was PEM encoded
-         */
-        dhminlen = pem.buflen;
-    } else if (ret != MBEDTLS_ERR_PEM_NO_HEADER_FOOTER_PRESENT) {
-        goto exit;
-    }
-
-    p = (ret == 0) ? pem.buf : (unsigned char *) dhmin;
-#else
-    p = (unsigned char *) dhmin;
-#endif /* MBEDTLS_PEM_PARSE_C */
-    end = p + dhminlen;
-
-    /*
-     *  DHParams ::= SEQUENCE {
-     *      prime              INTEGER,  -- P
-     *      generator          INTEGER,  -- g
-     *      privateValueLength INTEGER OPTIONAL
-     *  }
-     */
-    if ((ret = mbedtls_asn1_get_tag(&p, end, &len,
-                                    MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE)) != 0) {
-        ret = MBEDTLS_ERROR_ADD(MBEDTLS_ERR_DHM_INVALID_FORMAT, ret);
-        goto exit;
-    }
-
-    end = p + len;
-
-    if ((ret = mbedtls_asn1_get_mpi(&p, end, &dhm->P)) != 0 ||
-        (ret = mbedtls_asn1_get_mpi(&p, end, &dhm->G)) != 0) {
-        ret = MBEDTLS_ERROR_ADD(MBEDTLS_ERR_DHM_INVALID_FORMAT, ret);
-        goto exit;
-    }
-
-    if (p != end) {
-        /* This might be the optional privateValueLength.
-         * If so, we can cleanly discard it */
-        mbedtls_mpi rec;
-        mbedtls_mpi_init(&rec);
-        ret = mbedtls_asn1_get_mpi(&p, end, &rec);
-        mbedtls_mpi_free(&rec);
-        if (ret != 0) {
-            ret = MBEDTLS_ERROR_ADD(MBEDTLS_ERR_DHM_INVALID_FORMAT, ret);
-            goto exit;
-        }
-        if (p != end) {
-            ret = MBEDTLS_ERROR_ADD(MBEDTLS_ERR_DHM_INVALID_FORMAT,
-                                    MBEDTLS_ERR_ASN1_LENGTH_MISMATCH);
-            goto exit;
-        }
-    }
-
-    ret = 0;
-
-exit:
-#if defined(MBEDTLS_PEM_PARSE_C)
-    mbedtls_pem_free(&pem);
-#endif
-    if (ret != 0) {
-        mbedtls_dhm_free(dhm);
-    }
-
-    return ret;
-}
-
-#if defined(MBEDTLS_FS_IO)
-/*
- * Load all data from a file into a given buffer.
- *
- * The file is expected to contain either PEM or DER encoded data.
- * A terminating null byte is always appended. It is included in the announced
- * length only if the data looks like it is PEM encoded.
- */
-static int load_file(const char *path, unsigned char **buf, size_t *n)
-{
-    FILE *f;
-    long size;
-
-    if ((f = fopen(path, "rb")) == NULL) {
-        return MBEDTLS_ERR_DHM_FILE_IO_ERROR;
-    }
-    /* The data loaded here is public, so don't bother disabling buffering. */
-
-    fseek(f, 0, SEEK_END);
-    if ((size = ftell(f)) == -1) {
-        fclose(f);
-        return MBEDTLS_ERR_DHM_FILE_IO_ERROR;
-    }
-    fseek(f, 0, SEEK_SET);
-
-    *n = (size_t) size;
-
-    if (*n + 1 == 0 ||
-        (*buf = mbedtls_calloc(1, *n + 1)) == NULL) {
-        fclose(f);
-        return MBEDTLS_ERR_DHM_ALLOC_FAILED;
-    }
-
-    if (fread(*buf, 1, *n, f) != *n) {
-        fclose(f);
-
-        mbedtls_zeroize_and_free(*buf, *n + 1);
-
-        return MBEDTLS_ERR_DHM_FILE_IO_ERROR;
-    }
-
-    fclose(f);
-
-    (*buf)[*n] = '\0';
-
-    if (strstr((const char *) *buf, "-----BEGIN ") != NULL) {
-        ++*n;
-    }
-
-    return 0;
-}
-
-/*
- * Load and parse DHM parameters
- */
-int mbedtls_dhm_parse_dhmfile(mbedtls_dhm_context *dhm, const char *path)
-{
-    int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
-    size_t n;
-    unsigned char *buf;
-
-    if ((ret = load_file(path, &buf, &n)) != 0) {
-        return ret;
-    }
-
-    ret = mbedtls_dhm_parse_dhm(dhm, buf, n);
-
-    mbedtls_zeroize_and_free(buf, n);
-
-    return ret;
-}
-#endif /* MBEDTLS_FS_IO */
-#endif /* MBEDTLS_ASN1_PARSE_C */
-#endif /* MBEDTLS_DHM_ALT */
-
-#if defined(MBEDTLS_SELF_TEST)
-
-#if defined(MBEDTLS_PEM_PARSE_C)
-static const char mbedtls_test_dhm_params[] =
-    "-----BEGIN DH PARAMETERS-----\r\n"
-    "MIGHAoGBAJ419DBEOgmQTzo5qXl5fQcN9TN455wkOL7052HzxxRVMyhYmwQcgJvh\r\n"
-    "1sa18fyfR9OiVEMYglOpkqVoGLN7qd5aQNNi5W7/C+VBdHTBJcGZJyyP5B3qcz32\r\n"
-    "9mLJKudlVudV0Qxk5qUJaPZ/xupz0NyoVpviuiBOI1gNi8ovSXWzAgEC\r\n"
-    "-----END DH PARAMETERS-----\r\n";
-#else /* MBEDTLS_PEM_PARSE_C */
-static const char mbedtls_test_dhm_params[] = {
-    0x30, 0x81, 0x87, 0x02, 0x81, 0x81, 0x00, 0x9e, 0x35, 0xf4, 0x30, 0x44,
-    0x3a, 0x09, 0x90, 0x4f, 0x3a, 0x39, 0xa9, 0x79, 0x79, 0x7d, 0x07, 0x0d,
-    0xf5, 0x33, 0x78, 0xe7, 0x9c, 0x24, 0x38, 0xbe, 0xf4, 0xe7, 0x61, 0xf3,
-    0xc7, 0x14, 0x55, 0x33, 0x28, 0x58, 0x9b, 0x04, 0x1c, 0x80, 0x9b, 0xe1,
-    0xd6, 0xc6, 0xb5, 0xf1, 0xfc, 0x9f, 0x47, 0xd3, 0xa2, 0x54, 0x43, 0x18,
-    0x82, 0x53, 0xa9, 0x92, 0xa5, 0x68, 0x18, 0xb3, 0x7b, 0xa9, 0xde, 0x5a,
-    0x40, 0xd3, 0x62, 0xe5, 0x6e, 0xff, 0x0b, 0xe5, 0x41, 0x74, 0x74, 0xc1,
-    0x25, 0xc1, 0x99, 0x27, 0x2c, 0x8f, 0xe4, 0x1d, 0xea, 0x73, 0x3d, 0xf6,
-    0xf6, 0x62, 0xc9, 0x2a, 0xe7, 0x65, 0x56, 0xe7, 0x55, 0xd1, 0x0c, 0x64,
-    0xe6, 0xa5, 0x09, 0x68, 0xf6, 0x7f, 0xc6, 0xea, 0x73, 0xd0, 0xdc, 0xa8,
-    0x56, 0x9b, 0xe2, 0xba, 0x20, 0x4e, 0x23, 0x58, 0x0d, 0x8b, 0xca, 0x2f,
-    0x49, 0x75, 0xb3, 0x02, 0x01, 0x02
-};
-#endif /* MBEDTLS_PEM_PARSE_C */
-
-static const size_t mbedtls_test_dhm_params_len = sizeof(mbedtls_test_dhm_params);
-
-/*
- * Checkup routine
- */
-int mbedtls_dhm_self_test(int verbose)
-{
-    int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
-    mbedtls_dhm_context dhm;
-
-    mbedtls_dhm_init(&dhm);
-
-    if (verbose != 0) {
-        mbedtls_printf("  DHM parameter load: ");
-    }
-
-    if ((ret = mbedtls_dhm_parse_dhm(&dhm,
-                                     (const unsigned char *) mbedtls_test_dhm_params,
-                                     mbedtls_test_dhm_params_len)) != 0) {
-        if (verbose != 0) {
-            mbedtls_printf("failed\n");
-        }
-
-        ret = 1;
-        goto exit;
-    }
-
-    if (verbose != 0) {
-        mbedtls_printf("passed\n\n");
-    }
-
-exit:
-    mbedtls_dhm_free(&dhm);
-
-    return ret;
-}
-
-#endif /* MBEDTLS_SELF_TEST */
-
-#endif /* MBEDTLS_DHM_C */
diff --git a/deps/LIEF/third-party/mbedtls/library/ecp_internal_alt.h b/deps/LIEF/third-party/mbedtls/library/ecp_internal_alt.h
deleted file mode 100644
index 668edc74c97..00000000000
--- a/deps/LIEF/third-party/mbedtls/library/ecp_internal_alt.h
+++ /dev/null
@@ -1,287 +0,0 @@
-/**
- * \file ecp_internal_alt.h
- *
- * \brief Function declarations for alternative implementation of elliptic curve
- * point arithmetic.
- */
-/*
- *  Copyright The Mbed TLS Contributors
- *  SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
- */
-
-/*
- * References:
- *
- * [1] BERNSTEIN, Daniel J. Curve25519: new Diffie-Hellman speed records.
- *     <http://cr.yp.to/ecdh/curve25519-20060209.pdf>
- *
- * [2] CORON, Jean-S'ebastien. Resistance against differential power analysis
- *     for elliptic curve cryptosystems. In : Cryptographic Hardware and
- *     Embedded Systems. Springer Berlin Heidelberg, 1999. p. 292-302.
- *     <http://link.springer.com/chapter/10.1007/3-540-48059-5_25>
- *
- * [3] HEDABOU, Mustapha, PINEL, Pierre, et B'EN'ETEAU, Lucien. A comb method to
- *     render ECC resistant against Side Channel Attacks. IACR Cryptology
- *     ePrint Archive, 2004, vol. 2004, p. 342.
- *     <http://eprint.iacr.org/2004/342.pdf>
- *
- * [4] Certicom Research. SEC 2: Recommended Elliptic Curve Domain Parameters.
- *     <http://www.secg.org/sec2-v2.pdf>
- *
- * [5] HANKERSON, Darrel, MENEZES, Alfred J., VANSTONE, Scott. Guide to Elliptic
- *     Curve Cryptography.
- *
- * [6] Digital Signature Standard (DSS), FIPS 186-4.
- *     <http://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.186-4.pdf>
- *
- * [7] Elliptic Curve Cryptography (ECC) Cipher Suites for Transport Layer
- *     Security (TLS), RFC 4492.
- *     <https://tools.ietf.org/search/rfc4492>
- *
- * [8] <http://www.hyperelliptic.org/EFD/g1p/auto-shortw-jacobian.html>
- *
- * [9] COHEN, Henri. A Course in Computational Algebraic Number Theory.
- *     Springer Science & Business Media, 1 Aug 2000
- */
-
-#ifndef MBEDTLS_ECP_INTERNAL_H
-#define MBEDTLS_ECP_INTERNAL_H
-
-#include "mbedtls/build_info.h"
-
-#if defined(MBEDTLS_ECP_INTERNAL_ALT)
-
-/**
- * \brief           Indicate if the Elliptic Curve Point module extension can
- *                  handle the group.
- *
- * \param grp       The pointer to the elliptic curve group that will be the
- *                  basis of the cryptographic computations.
- *
- * \return          Non-zero if successful.
- */
-unsigned char mbedtls_internal_ecp_grp_capable(const mbedtls_ecp_group *grp);
-
-/**
- * \brief           Initialise the Elliptic Curve Point module extension.
- *
- *                  If mbedtls_internal_ecp_grp_capable returns true for a
- *                  group, this function has to be able to initialise the
- *                  module for it.
- *
- *                  This module can be a driver to a crypto hardware
- *                  accelerator, for which this could be an initialise function.
- *
- * \param grp       The pointer to the group the module needs to be
- *                  initialised for.
- *
- * \return          0 if successful.
- */
-int mbedtls_internal_ecp_init(const mbedtls_ecp_group *grp);
-
-/**
- * \brief           Frees and deallocates the Elliptic Curve Point module
- *                  extension.
- *
- * \param grp       The pointer to the group the module was initialised for.
- */
-void mbedtls_internal_ecp_free(const mbedtls_ecp_group *grp);
-
-#if defined(MBEDTLS_ECP_SHORT_WEIERSTRASS_ENABLED)
-
-#if defined(MBEDTLS_ECP_RANDOMIZE_JAC_ALT)
-/**
- * \brief           Randomize jacobian coordinates:
- *                  (X, Y, Z) -> (l^2 X, l^3 Y, l Z) for random l.
- *
- * \param grp       Pointer to the group representing the curve.
- *
- * \param pt        The point on the curve to be randomised, given with Jacobian
- *                  coordinates.
- *
- * \param f_rng     A function pointer to the random number generator.
- *
- * \param p_rng     A pointer to the random number generator state.
- *
- * \return          0 if successful.
- */
-int mbedtls_internal_ecp_randomize_jac(const mbedtls_ecp_group *grp,
-                                       mbedtls_ecp_point *pt, int (*f_rng)(void *,
-                                                                           unsigned char *,
-                                                                           size_t),
-                                       void *p_rng);
-#endif
-
-#if defined(MBEDTLS_ECP_ADD_MIXED_ALT)
-/**
- * \brief           Addition: R = P + Q, mixed affine-Jacobian coordinates.
- *
- *                  The coordinates of Q must be normalized (= affine),
- *                  but those of P don't need to. R is not normalized.
- *
- *                  This function is used only as a subrutine of
- *                  ecp_mul_comb().
- *
- *                  Special cases: (1) P or Q is zero, (2) R is zero,
- *                      (3) P == Q.
- *                  None of these cases can happen as intermediate step in
- *                  ecp_mul_comb():
- *                      - at each step, P, Q and R are multiples of the base
- *                      point, the factor being less than its order, so none of
- *                      them is zero;
- *                      - Q is an odd multiple of the base point, P an even
- *                      multiple, due to the choice of precomputed points in the
- *                      modified comb method.
- *                  So branches for these cases do not leak secret information.
- *
- *                  We accept Q->Z being unset (saving memory in tables) as
- *                  meaning 1.
- *
- *                  Cost in field operations if done by [5] 3.22:
- *                      1A := 8M + 3S
- *
- * \param grp       Pointer to the group representing the curve.
- *
- * \param R         Pointer to a point structure to hold the result.
- *
- * \param P         Pointer to the first summand, given with Jacobian
- *                  coordinates
- *
- * \param Q         Pointer to the second summand, given with affine
- *                  coordinates.
- *
- * \return          0 if successful.
- */
-int mbedtls_internal_ecp_add_mixed(const mbedtls_ecp_group *grp,
-                                   mbedtls_ecp_point *R, const mbedtls_ecp_point *P,
-                                   const mbedtls_ecp_point *Q);
-#endif
-
-/**
- * \brief           Point doubling R = 2 P, Jacobian coordinates.
- *
- *                  Cost:   1D := 3M + 4S    (A ==  0)
- *                          4M + 4S          (A == -3)
- *                          3M + 6S + 1a     otherwise
- *                  when the implementation is based on the "dbl-1998-cmo-2"
- *                  doubling formulas in [8] and standard optimizations are
- *                  applied when curve parameter A is one of { 0, -3 }.
- *
- * \param grp       Pointer to the group representing the curve.
- *
- * \param R         Pointer to a point structure to hold the result.
- *
- * \param P         Pointer to the point that has to be doubled, given with
- *                  Jacobian coordinates.
- *
- * \return          0 if successful.
- */
-#if defined(MBEDTLS_ECP_DOUBLE_JAC_ALT)
-int mbedtls_internal_ecp_double_jac(const mbedtls_ecp_group *grp,
-                                    mbedtls_ecp_point *R, const mbedtls_ecp_point *P);
-#endif
-
-/**
- * \brief           Normalize jacobian coordinates of an array of (pointers to)
- *                  points.
- *
- *                  Using Montgomery's trick to perform only one inversion mod P
- *                  the cost is:
- *                      1N(t) := 1I + (6t - 3)M + 1S
- *                  (See for example Algorithm 10.3.4. in [9])
- *
- *                  This function is used only as a subrutine of
- *                  ecp_mul_comb().
- *
- *                  Warning: fails (returning an error) if one of the points is
- *                  zero!
- *                  This should never happen, see choice of w in ecp_mul_comb().
- *
- * \param grp       Pointer to the group representing the curve.
- *
- * \param T         Array of pointers to the points to normalise.
- *
- * \param t_len     Number of elements in the array.
- *
- * \return          0 if successful,
- *                      an error if one of the points is zero.
- */
-#if defined(MBEDTLS_ECP_NORMALIZE_JAC_MANY_ALT)
-int mbedtls_internal_ecp_normalize_jac_many(const mbedtls_ecp_group *grp,
-                                            mbedtls_ecp_point *T[], size_t t_len);
-#endif
-
-/**
- * \brief           Normalize jacobian coordinates so that Z == 0 || Z == 1.
- *
- *                  Cost in field operations if done by [5] 3.2.1:
- *                      1N := 1I + 3M + 1S
- *
- * \param grp       Pointer to the group representing the curve.
- *
- * \param pt        pointer to the point to be normalised. This is an
- *                  input/output parameter.
- *
- * \return          0 if successful.
- */
-#if defined(MBEDTLS_ECP_NORMALIZE_JAC_ALT)
-int mbedtls_internal_ecp_normalize_jac(const mbedtls_ecp_group *grp,
-                                       mbedtls_ecp_point *pt);
-#endif
-
-#endif /* MBEDTLS_ECP_SHORT_WEIERSTRASS_ENABLED */
-
-#if defined(MBEDTLS_ECP_MONTGOMERY_ENABLED)
-
-#if defined(MBEDTLS_ECP_DOUBLE_ADD_MXZ_ALT)
-int mbedtls_internal_ecp_double_add_mxz(const mbedtls_ecp_group *grp,
-                                        mbedtls_ecp_point *R,
-                                        mbedtls_ecp_point *S,
-                                        const mbedtls_ecp_point *P,
-                                        const mbedtls_ecp_point *Q,
-                                        const mbedtls_mpi *d);
-#endif
-
-/**
- * \brief           Randomize projective x/z coordinates:
- *                      (X, Z) -> (l X, l Z) for random l
- *
- * \param grp       pointer to the group representing the curve
- *
- * \param P         the point on the curve to be randomised given with
- *                  projective coordinates. This is an input/output parameter.
- *
- * \param f_rng     a function pointer to the random number generator
- *
- * \param p_rng     a pointer to the random number generator state
- *
- * \return          0 if successful
- */
-#if defined(MBEDTLS_ECP_RANDOMIZE_MXZ_ALT)
-int mbedtls_internal_ecp_randomize_mxz(const mbedtls_ecp_group *grp,
-                                       mbedtls_ecp_point *P, int (*f_rng)(void *,
-                                                                          unsigned char *,
-                                                                          size_t),
-                                       void *p_rng);
-#endif
-
-/**
- * \brief           Normalize Montgomery x/z coordinates: X = X/Z, Z = 1.
- *
- * \param grp       pointer to the group representing the curve
- *
- * \param P         pointer to the point to be normalised. This is an
- *                  input/output parameter.
- *
- * \return          0 if successful
- */
-#if defined(MBEDTLS_ECP_NORMALIZE_MXZ_ALT)
-int mbedtls_internal_ecp_normalize_mxz(const mbedtls_ecp_group *grp,
-                                       mbedtls_ecp_point *P);
-#endif
-
-#endif /* MBEDTLS_ECP_MONTGOMERY_ENABLED */
-
-#endif /* MBEDTLS_ECP_INTERNAL_ALT */
-
-#endif /* ecp_internal_alt.h */
diff --git a/deps/LIEF/third-party/mbedtls/library/entropy_poll.c b/deps/LIEF/third-party/mbedtls/library/entropy_poll.c
deleted file mode 100644
index 611768cd855..00000000000
--- a/deps/LIEF/third-party/mbedtls/library/entropy_poll.c
+++ /dev/null
@@ -1,231 +0,0 @@
-/*
- *  Platform-specific and custom entropy polling functions
- *
- *  Copyright The Mbed TLS Contributors
- *  SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
- */
-
-#if defined(__linux__) || defined(__midipix__)
-/* Ensure that syscall() is available even when compiling with -std=c99 */
-#if !defined(_GNU_SOURCE)
-#define _GNU_SOURCE
-#endif
-#endif
-
-#include "common.h"
-
-#include <string.h>
-
-#if defined(MBEDTLS_ENTROPY_C)
-
-#include "mbedtls/entropy.h"
-#include "entropy_poll.h"
-#include "mbedtls/error.h"
-
-#if defined(MBEDTLS_TIMING_C)
-#include "mbedtls/timing.h"
-#endif
-#include "mbedtls/platform.h"
-
-#if !defined(MBEDTLS_NO_PLATFORM_ENTROPY)
-
-#if !defined(unix) && !defined(__unix__) && !defined(__unix) && \
-    !defined(__APPLE__) && !defined(_WIN32) && !defined(__QNXNTO__) && \
-    !defined(__HAIKU__) && !defined(__midipix__) && !defined(__MVS__)
-#error \
-    "Platform entropy sources only work on Unix and Windows, see MBEDTLS_NO_PLATFORM_ENTROPY in mbedtls_config.h"
-#endif
-
-#if defined(_WIN32) && !defined(EFIX64) && !defined(EFI32)
-
-#include <windows.h>
-#include <bcrypt.h>
-#include <intsafe.h>
-
-int mbedtls_platform_entropy_poll(void *data, unsigned char *output, size_t len,
-                                  size_t *olen)
-{
-    ((void) data);
-    *olen = 0;
-
-    /*
-     * BCryptGenRandom takes ULONG for size, which is smaller than size_t on
-     * 64-bit Windows platforms. Extract entropy in chunks of len (dependent
-     * on ULONG_MAX) size.
-     */
-    while (len != 0) {
-        unsigned long ulong_bytes =
-            (len > ULONG_MAX) ? ULONG_MAX : (unsigned long) len;
-
-        if (!BCRYPT_SUCCESS(BCryptGenRandom(NULL, output, ulong_bytes,
-                                            BCRYPT_USE_SYSTEM_PREFERRED_RNG))) {
-            return MBEDTLS_ERR_ENTROPY_SOURCE_FAILED;
-        }
-
-        *olen += ulong_bytes;
-        len -= ulong_bytes;
-    }
-
-    return 0;
-}
-#else /* _WIN32 && !EFIX64 && !EFI32 */
-
-/*
- * Test for Linux getrandom() support.
- * Since there is no wrapper in the libc yet, use the generic syscall wrapper
- * available in GNU libc and compatible libc's (eg uClibc).
- */
-#if ((defined(__linux__) && defined(__GLIBC__)) || defined(__midipix__))
-#include <unistd.h>
-#include <sys/syscall.h>
-#if defined(SYS_getrandom)
-#define HAVE_GETRANDOM
-#include <errno.h>
-
-static int getrandom_wrapper(void *buf, size_t buflen, unsigned int flags)
-{
-    /* MemSan cannot understand that the syscall writes to the buffer */
-#if defined(__has_feature)
-#if __has_feature(memory_sanitizer)
-    memset(buf, 0, buflen);
-#endif
-#endif
-    return (int) syscall(SYS_getrandom, buf, buflen, flags);
-}
-#endif /* SYS_getrandom */
-#endif /* __linux__ || __midipix__ */
-
-#if defined(__FreeBSD__) || defined(__DragonFly__)
-#include <sys/param.h>
-#if (defined(__FreeBSD__) && __FreeBSD_version >= 1200000) || \
-    (defined(__DragonFly__) && __DragonFly_version >= 500700)
-#include <errno.h>
-#include <sys/random.h>
-#define HAVE_GETRANDOM
-static int getrandom_wrapper(void *buf, size_t buflen, unsigned int flags)
-{
-    return (int) getrandom(buf, buflen, flags);
-}
-#endif /* (__FreeBSD__ && __FreeBSD_version >= 1200000) ||
-          (__DragonFly__ && __DragonFly_version >= 500700) */
-#endif /* __FreeBSD__ || __DragonFly__ */
-
-/*
- * Some BSD systems provide KERN_ARND.
- * This is equivalent to reading from /dev/urandom, only it doesn't require an
- * open file descriptor, and provides up to 256 bytes per call (basically the
- * same as getentropy(), but with a longer history).
- *
- * Documentation: https://netbsd.gw.com/cgi-bin/man-cgi?sysctl+7
- */
-#if (defined(__FreeBSD__) || defined(__NetBSD__)) && !defined(HAVE_GETRANDOM)
-#include <sys/param.h>
-#include <sys/sysctl.h>
-#if defined(KERN_ARND)
-#define HAVE_SYSCTL_ARND
-
-static int sysctl_arnd_wrapper(unsigned char *buf, size_t buflen)
-{
-    int name[2];
-    size_t len;
-
-    name[0] = CTL_KERN;
-    name[1] = KERN_ARND;
-
-    while (buflen > 0) {
-        len = buflen > 256 ? 256 : buflen;
-        if (sysctl(name, 2, buf, &len, NULL, 0) == -1) {
-            return -1;
-        }
-        buflen -= len;
-        buf += len;
-    }
-    return 0;
-}
-#endif /* KERN_ARND */
-#endif /* __FreeBSD__ || __NetBSD__ */
-
-#include <stdio.h>
-
-int mbedtls_platform_entropy_poll(void *data,
-                                  unsigned char *output, size_t len, size_t *olen)
-{
-    FILE *file;
-    size_t read_len;
-    int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
-    ((void) data);
-
-#if defined(HAVE_GETRANDOM)
-    ret = getrandom_wrapper(output, len, 0);
-    if (ret >= 0) {
-        *olen = (size_t) ret;
-        return 0;
-    } else if (errno != ENOSYS) {
-        return MBEDTLS_ERR_ENTROPY_SOURCE_FAILED;
-    }
-    /* Fall through if the system call isn't known. */
-#else
-    ((void) ret);
-#endif /* HAVE_GETRANDOM */
-
-#if defined(HAVE_SYSCTL_ARND)
-    ((void) file);
-    ((void) read_len);
-    if (sysctl_arnd_wrapper(output, len) == -1) {
-        return MBEDTLS_ERR_ENTROPY_SOURCE_FAILED;
-    }
-    *olen = len;
-    return 0;
-#else
-
-    *olen = 0;
-
-    file = fopen("/dev/urandom", "rb");
-    if (file == NULL) {
-        return MBEDTLS_ERR_ENTROPY_SOURCE_FAILED;
-    }
-
-    /* Ensure no stdio buffering of secrets, as such buffers cannot be wiped. */
-    mbedtls_setbuf(file, NULL);
-
-    read_len = fread(output, 1, len, file);
-    if (read_len != len) {
-        fclose(file);
-        return MBEDTLS_ERR_ENTROPY_SOURCE_FAILED;
-    }
-
-    fclose(file);
-    *olen = len;
-
-    return 0;
-#endif /* HAVE_SYSCTL_ARND */
-}
-#endif /* _WIN32 && !EFIX64 && !EFI32 */
-#endif /* !MBEDTLS_NO_PLATFORM_ENTROPY */
-
-#if defined(MBEDTLS_ENTROPY_NV_SEED)
-int mbedtls_nv_seed_poll(void *data,
-                         unsigned char *output, size_t len, size_t *olen)
-{
-    unsigned char buf[MBEDTLS_ENTROPY_BLOCK_SIZE];
-    size_t use_len = MBEDTLS_ENTROPY_BLOCK_SIZE;
-    ((void) data);
-
-    memset(buf, 0, MBEDTLS_ENTROPY_BLOCK_SIZE);
-
-    if (mbedtls_nv_seed_read(buf, MBEDTLS_ENTROPY_BLOCK_SIZE) < 0) {
-        return MBEDTLS_ERR_ENTROPY_SOURCE_FAILED;
-    }
-
-    if (len < use_len) {
-        use_len = len;
-    }
-
-    memcpy(output, buf, use_len);
-    *olen = use_len;
-
-    return 0;
-}
-#endif /* MBEDTLS_ENTROPY_NV_SEED */
-
-#endif /* MBEDTLS_ENTROPY_C */
diff --git a/deps/LIEF/third-party/mbedtls/library/entropy_poll.h b/deps/LIEF/third-party/mbedtls/library/entropy_poll.h
deleted file mode 100644
index 6b4aec03e18..00000000000
--- a/deps/LIEF/third-party/mbedtls/library/entropy_poll.h
+++ /dev/null
@@ -1,64 +0,0 @@
-/**
- * \file entropy_poll.h
- *
- * \brief Platform-specific and custom entropy polling functions
- */
-/*
- *  Copyright The Mbed TLS Contributors
- *  SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
- */
-#ifndef MBEDTLS_ENTROPY_POLL_H
-#define MBEDTLS_ENTROPY_POLL_H
-
-#include "mbedtls/build_info.h"
-
-#include <stddef.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*
- * Default thresholds for built-in sources, in bytes
- */
-#define MBEDTLS_ENTROPY_MIN_PLATFORM     32     /**< Minimum for platform source    */
-#if !defined(MBEDTLS_ENTROPY_MIN_HARDWARE)
-#define MBEDTLS_ENTROPY_MIN_HARDWARE     32     /**< Minimum for the hardware source */
-#endif
-
-#if !defined(MBEDTLS_NO_PLATFORM_ENTROPY)
-/**
- * \brief           Platform-specific entropy poll callback
- */
-int mbedtls_platform_entropy_poll(void *data,
-                                  unsigned char *output, size_t len, size_t *olen);
-#endif
-
-#if defined(MBEDTLS_ENTROPY_HARDWARE_ALT)
-/**
- * \brief           Entropy poll callback for a hardware source
- *
- * \warning         This is not provided by Mbed TLS!
- *                  See \c MBEDTLS_ENTROPY_HARDWARE_ALT in mbedtls_config.h.
- *
- * \note            This must accept NULL as its first argument.
- */
-int mbedtls_hardware_poll(void *data,
-                          unsigned char *output, size_t len, size_t *olen);
-#endif
-
-#if defined(MBEDTLS_ENTROPY_NV_SEED)
-/**
- * \brief           Entropy poll callback for a non-volatile seed file
- *
- * \note            This must accept NULL as its first argument.
- */
-int mbedtls_nv_seed_poll(void *data,
-                         unsigned char *output, size_t len, size_t *olen);
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* entropy_poll.h */
diff --git a/deps/LIEF/third-party/mbedtls/library/error.c b/deps/LIEF/third-party/mbedtls/library/error.c
index 297eccd0330..c5b0f5c7649 100644
--- a/deps/LIEF/third-party/mbedtls/library/error.c
+++ b/deps/LIEF/third-party/mbedtls/library/error.c
@@ -5,7 +5,7 @@
  *  SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
  */

-#include "common.h"
+#include "tf_psa_crypto_common.h"

 #include "mbedtls/error.h"

@@ -18,160 +18,73 @@
 #include <stdio.h>
 #include <string.h>

-#if defined(MBEDTLS_AES_C)
-#include "mbedtls/aes.h"
+#if defined(MBEDTLS_NET_C)
+#include "mbedtls/net_sockets.h"
 #endif

-#if defined(MBEDTLS_ARIA_C)
-#include "mbedtls/aria.h"
+#if defined(MBEDTLS_PKCS7_C)
+#include "mbedtls/pkcs7.h"
 #endif

-#if defined(MBEDTLS_ASN1_PARSE_C)
-#include "mbedtls/asn1.h"
+#if defined(MBEDTLS_SSL_TLS_C)
+#include "mbedtls/ssl.h"
 #endif

-#if defined(MBEDTLS_BASE64_C)
-#include "mbedtls/base64.h"
+#if defined(MBEDTLS_X509_USE_C) || \
+    defined(MBEDTLS_X509_CREATE_C)
+#include "mbedtls/x509.h"
 #endif

-#if defined(MBEDTLS_BIGNUM_C)
-#include "mbedtls/bignum.h"
+#if defined(MBEDTLS_AES_C)
+#include "mbedtls/private/aes.h"
 #endif

-#if defined(MBEDTLS_CAMELLIA_C)
-#include "mbedtls/camellia.h"
+#if defined(MBEDTLS_ARIA_C)
+#include "mbedtls/private/aria.h"
 #endif

-#if defined(MBEDTLS_CCM_C)
-#include "mbedtls/ccm.h"
+#if defined(MBEDTLS_BIGNUM_C)
+#include "mbedtls/private/bignum.h"
 #endif

-#if defined(MBEDTLS_CHACHA20_C)
-#include "mbedtls/chacha20.h"
+#if defined(MBEDTLS_CAMELLIA_C)
+#include "mbedtls/private/camellia.h"
 #endif

 #if defined(MBEDTLS_CHACHAPOLY_C)
-#include "mbedtls/chachapoly.h"
+#include "mbedtls/private/chachapoly.h"
 #endif

 #if defined(MBEDTLS_CIPHER_C)
-#include "mbedtls/cipher.h"
+#include "mbedtls/private/cipher.h"
 #endif

 #if defined(MBEDTLS_CTR_DRBG_C)
-#include "mbedtls/ctr_drbg.h"
-#endif
-
-#if defined(MBEDTLS_DES_C)
-#include "mbedtls/des.h"
-#endif
-
-#if defined(MBEDTLS_DHM_C)
-#include "mbedtls/dhm.h"
+#include "mbedtls/private/ctr_drbg.h"
 #endif

 #if defined(MBEDTLS_ECP_C)
-#include "mbedtls/ecp.h"
+#include "mbedtls/private/ecp.h"
 #endif

 #if defined(MBEDTLS_ENTROPY_C)
-#include "mbedtls/entropy.h"
-#endif
-
-#if defined(MBEDTLS_ERROR_C)
-#include "mbedtls/error.h"
-#endif
-
-#if defined(MBEDTLS_PLATFORM_C)
-#include "mbedtls/platform.h"
-#endif
-
-#if defined(MBEDTLS_GCM_C)
-#include "mbedtls/gcm.h"
-#endif
-
-#if defined(MBEDTLS_HKDF_C)
-#include "mbedtls/hkdf.h"
+#include "mbedtls/private/entropy.h"
 #endif

 #if defined(MBEDTLS_HMAC_DRBG_C)
-#include "mbedtls/hmac_drbg.h"
-#endif
-
-#if defined(MBEDTLS_LMS_C)
-#include "mbedtls/lms.h"
-#endif
-
-#if defined(MBEDTLS_MD_C)
-#include "mbedtls/md.h"
-#endif
-
-#if defined(MBEDTLS_NET_C)
-#include "mbedtls/net_sockets.h"
-#endif
-
-#if defined(MBEDTLS_OID_C)
-#include "mbedtls/oid.h"
-#endif
-
-#if defined(MBEDTLS_PEM_PARSE_C) || defined(MBEDTLS_PEM_WRITE_C)
-#include "mbedtls/pem.h"
-#endif
-
-#if defined(MBEDTLS_PK_C)
-#include "mbedtls/pk.h"
-#endif
-
-#if defined(MBEDTLS_PKCS12_C)
-#include "mbedtls/pkcs12.h"
+#include "mbedtls/private/hmac_drbg.h"
 #endif

 #if defined(MBEDTLS_PKCS5_C)
-#include "mbedtls/pkcs5.h"
-#endif
-
-#if defined(MBEDTLS_PKCS7_C)
-#include "mbedtls/pkcs7.h"
-#endif
-
-#if defined(MBEDTLS_POLY1305_C)
-#include "mbedtls/poly1305.h"
+#include "mbedtls/private/pkcs5.h"
 #endif

 #if defined(MBEDTLS_RSA_C)
-#include "mbedtls/rsa.h"
-#endif
-
-#if defined(MBEDTLS_SHA1_C)
-#include "mbedtls/sha1.h"
+#include "mbedtls/private/rsa.h"
 #endif

-#if defined(MBEDTLS_SHA256_C)
-#include "mbedtls/sha256.h"
-#endif
-
-#if defined(MBEDTLS_SHA3_C)
-#include "mbedtls/sha3.h"
-#endif
-
-#if defined(MBEDTLS_SHA512_C)
-#include "mbedtls/sha512.h"
-#endif
-
-#if defined(MBEDTLS_SSL_TLS_C)
-#include "mbedtls/ssl.h"
-#endif
-
-#if defined(MBEDTLS_THREADING_C)
-#include "mbedtls/threading.h"
-#endif
-
-#if defined(MBEDTLS_X509_USE_C) || defined(MBEDTLS_X509_CREATE_C)
-#include "mbedtls/x509.h"
-#endif

-
-const char *mbedtls_high_level_strerr(int error_code)
+static const char *mbedtls_high_level_strerr(int error_code)
 {
     int high_level_error_code;

@@ -184,154 +97,6 @@ const char *mbedtls_high_level_strerr(int error_code)

     switch (high_level_error_code) {
     /* Begin Auto-Generated Code. */
-    #if defined(MBEDTLS_CIPHER_C)
-        case -(MBEDTLS_ERR_CIPHER_FEATURE_UNAVAILABLE):
-            return( "CIPHER - The selected feature is not available" );
-        case -(MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA):
-            return( "CIPHER - Bad input parameters" );
-        case -(MBEDTLS_ERR_CIPHER_ALLOC_FAILED):
-            return( "CIPHER - Failed to allocate memory" );
-        case -(MBEDTLS_ERR_CIPHER_INVALID_PADDING):
-            return( "CIPHER - Input data contains invalid padding and is rejected" );
-        case -(MBEDTLS_ERR_CIPHER_FULL_BLOCK_EXPECTED):
-            return( "CIPHER - Decryption of block requires a full block" );
-        case -(MBEDTLS_ERR_CIPHER_AUTH_FAILED):
-            return( "CIPHER - Authentication failed (for AEAD modes)" );
-        case -(MBEDTLS_ERR_CIPHER_INVALID_CONTEXT):
-            return( "CIPHER - The context is invalid. For example, because it was freed" );
-#endif /* MBEDTLS_CIPHER_C */
-
-#if defined(MBEDTLS_DHM_C)
-        case -(MBEDTLS_ERR_DHM_BAD_INPUT_DATA):
-            return( "DHM - Bad input parameters" );
-        case -(MBEDTLS_ERR_DHM_READ_PARAMS_FAILED):
-            return( "DHM - Reading of the DHM parameters failed" );
-        case -(MBEDTLS_ERR_DHM_MAKE_PARAMS_FAILED):
-            return( "DHM - Making of the DHM parameters failed" );
-        case -(MBEDTLS_ERR_DHM_READ_PUBLIC_FAILED):
-            return( "DHM - Reading of the public values failed" );
-        case -(MBEDTLS_ERR_DHM_MAKE_PUBLIC_FAILED):
-            return( "DHM - Making of the public value failed" );
-        case -(MBEDTLS_ERR_DHM_CALC_SECRET_FAILED):
-            return( "DHM - Calculation of the DHM secret failed" );
-        case -(MBEDTLS_ERR_DHM_INVALID_FORMAT):
-            return( "DHM - The ASN.1 data is not formatted correctly" );
-        case -(MBEDTLS_ERR_DHM_ALLOC_FAILED):
-            return( "DHM - Allocation of memory failed" );
-        case -(MBEDTLS_ERR_DHM_FILE_IO_ERROR):
-            return( "DHM - Read or write of file failed" );
-        case -(MBEDTLS_ERR_DHM_SET_GROUP_FAILED):
-            return( "DHM - Setting the modulus and generator failed" );
-#endif /* MBEDTLS_DHM_C */
-
-#if defined(MBEDTLS_ECP_C)
-        case -(MBEDTLS_ERR_ECP_BAD_INPUT_DATA):
-            return( "ECP - Bad input parameters to function" );
-        case -(MBEDTLS_ERR_ECP_BUFFER_TOO_SMALL):
-            return( "ECP - The buffer is too small to write to" );
-        case -(MBEDTLS_ERR_ECP_FEATURE_UNAVAILABLE):
-            return( "ECP - The requested feature is not available, for example, the requested curve is not supported" );
-        case -(MBEDTLS_ERR_ECP_VERIFY_FAILED):
-            return( "ECP - The signature is not valid" );
-        case -(MBEDTLS_ERR_ECP_ALLOC_FAILED):
-            return( "ECP - Memory allocation failed" );
-        case -(MBEDTLS_ERR_ECP_RANDOM_FAILED):
-            return( "ECP - Generation of random value, such as ephemeral key, failed" );
-        case -(MBEDTLS_ERR_ECP_INVALID_KEY):
-            return( "ECP - Invalid private or public key" );
-        case -(MBEDTLS_ERR_ECP_SIG_LEN_MISMATCH):
-            return( "ECP - The buffer contains a valid signature followed by more data" );
-        case -(MBEDTLS_ERR_ECP_IN_PROGRESS):
-            return( "ECP - Operation in progress, call again with the same parameters to continue" );
-#endif /* MBEDTLS_ECP_C */
-
-#if defined(MBEDTLS_MD_C)
-        case -(MBEDTLS_ERR_MD_FEATURE_UNAVAILABLE):
-            return( "MD - The selected feature is not available" );
-        case -(MBEDTLS_ERR_MD_BAD_INPUT_DATA):
-            return( "MD - Bad input parameters to function" );
-        case -(MBEDTLS_ERR_MD_ALLOC_FAILED):
-            return( "MD - Failed to allocate memory" );
-        case -(MBEDTLS_ERR_MD_FILE_IO_ERROR):
-            return( "MD - Opening or reading of file failed" );
-#endif /* MBEDTLS_MD_C */
-
-#if defined(MBEDTLS_PEM_PARSE_C) || defined(MBEDTLS_PEM_WRITE_C)
-        case -(MBEDTLS_ERR_PEM_NO_HEADER_FOOTER_PRESENT):
-            return( "PEM - No PEM header or footer found" );
-        case -(MBEDTLS_ERR_PEM_INVALID_DATA):
-            return( "PEM - PEM string is not as expected" );
-        case -(MBEDTLS_ERR_PEM_ALLOC_FAILED):
-            return( "PEM - Failed to allocate memory" );
-        case -(MBEDTLS_ERR_PEM_INVALID_ENC_IV):
-            return( "PEM - RSA IV is not in hex-format" );
-        case -(MBEDTLS_ERR_PEM_UNKNOWN_ENC_ALG):
-            return( "PEM - Unsupported key encryption algorithm" );
-        case -(MBEDTLS_ERR_PEM_PASSWORD_REQUIRED):
-            return( "PEM - Private key password can't be empty" );
-        case -(MBEDTLS_ERR_PEM_PASSWORD_MISMATCH):
-            return( "PEM - Given private key password does not allow for correct decryption" );
-        case -(MBEDTLS_ERR_PEM_FEATURE_UNAVAILABLE):
-            return( "PEM - Unavailable feature, e.g. hashing/encryption combination" );
-        case -(MBEDTLS_ERR_PEM_BAD_INPUT_DATA):
-            return( "PEM - Bad input parameters to function" );
-#endif /* MBEDTLS_PEM_PARSE_C || MBEDTLS_PEM_WRITE_C */
-
-#if defined(MBEDTLS_PK_C)
-        case -(MBEDTLS_ERR_PK_ALLOC_FAILED):
-            return( "PK - Memory allocation failed" );
-        case -(MBEDTLS_ERR_PK_TYPE_MISMATCH):
-            return( "PK - Type mismatch, eg attempt to encrypt with an ECDSA key" );
-        case -(MBEDTLS_ERR_PK_BAD_INPUT_DATA):
-            return( "PK - Bad input parameters to function" );
-        case -(MBEDTLS_ERR_PK_FILE_IO_ERROR):
-            return( "PK - Read/write of file failed" );
-        case -(MBEDTLS_ERR_PK_KEY_INVALID_VERSION):
-            return( "PK - Unsupported key version" );
-        case -(MBEDTLS_ERR_PK_KEY_INVALID_FORMAT):
-            return( "PK - Invalid key tag or value" );
-        case -(MBEDTLS_ERR_PK_UNKNOWN_PK_ALG):
-            return( "PK - Key algorithm is unsupported (only RSA and EC are supported)" );
-        case -(MBEDTLS_ERR_PK_PASSWORD_REQUIRED):
-            return( "PK - Private key password can't be empty" );
-        case -(MBEDTLS_ERR_PK_PASSWORD_MISMATCH):
-            return( "PK - Given private key password does not allow for correct decryption" );
-        case -(MBEDTLS_ERR_PK_INVALID_PUBKEY):
-            return( "PK - The pubkey tag or value is invalid (only RSA and EC are supported)" );
-        case -(MBEDTLS_ERR_PK_INVALID_ALG):
-            return( "PK - The algorithm tag or value is invalid" );
-        case -(MBEDTLS_ERR_PK_UNKNOWN_NAMED_CURVE):
-            return( "PK - Elliptic curve is unsupported (only NIST curves are supported)" );
-        case -(MBEDTLS_ERR_PK_FEATURE_UNAVAILABLE):
-            return( "PK - Unavailable feature, e.g. RSA disabled for RSA key" );
-        case -(MBEDTLS_ERR_PK_SIG_LEN_MISMATCH):
-            return( "PK - The buffer contains a valid signature followed by more data" );
-        case -(MBEDTLS_ERR_PK_BUFFER_TOO_SMALL):
-            return( "PK - The output buffer is too small" );
-#endif /* MBEDTLS_PK_C */
-
-#if defined(MBEDTLS_PKCS12_C)
-        case -(MBEDTLS_ERR_PKCS12_BAD_INPUT_DATA):
-            return( "PKCS12 - Bad input parameters to function" );
-        case -(MBEDTLS_ERR_PKCS12_FEATURE_UNAVAILABLE):
-            return( "PKCS12 - Feature not available, e.g. unsupported encryption scheme" );
-        case -(MBEDTLS_ERR_PKCS12_PBE_INVALID_FORMAT):
-            return( "PKCS12 - PBE ASN.1 data not as expected" );
-        case -(MBEDTLS_ERR_PKCS12_PASSWORD_MISMATCH):
-            return( "PKCS12 - Given private key password does not allow for correct decryption" );
-#endif /* MBEDTLS_PKCS12_C */
-
-#if defined(MBEDTLS_PKCS5_C)
-        case -(MBEDTLS_ERR_PKCS5_BAD_INPUT_DATA):
-            return( "PKCS5 - Bad input parameters to function" );
-        case -(MBEDTLS_ERR_PKCS5_INVALID_FORMAT):
-            return( "PKCS5 - Unexpected ASN.1 data" );
-        case -(MBEDTLS_ERR_PKCS5_FEATURE_UNAVAILABLE):
-            return( "PKCS5 - Requested encryption or digest alg not available" );
-        case -(MBEDTLS_ERR_PKCS5_PASSWORD_MISMATCH):
-            return( "PKCS5 - Given private key password does not allow for correct decryption" );
-#endif /* MBEDTLS_PKCS5_C */
-
 #if defined(MBEDTLS_PKCS7_C)
         case -(MBEDTLS_ERR_PKCS7_INVALID_FORMAT):
             return( "PKCS7 - The format is invalid, e.g. different type expected" );
@@ -349,44 +114,15 @@ const char *mbedtls_high_level_strerr(int error_code)
             return( "PKCS7 - Error parsing the signature" );
         case -(MBEDTLS_ERR_PKCS7_INVALID_SIGNER_INFO):
             return( "PKCS7 - Error parsing the signer's info" );
-        case -(MBEDTLS_ERR_PKCS7_BAD_INPUT_DATA):
-            return( "PKCS7 - Input invalid" );
-        case -(MBEDTLS_ERR_PKCS7_ALLOC_FAILED):
-            return( "PKCS7 - Allocation of memory failed" );
-        case -(MBEDTLS_ERR_PKCS7_VERIFY_FAIL):
-            return( "PKCS7 - Verification Failed" );
         case -(MBEDTLS_ERR_PKCS7_CERT_DATE_INVALID):
             return( "PKCS7 - The PKCS #7 date issued/expired dates are invalid" );
 #endif /* MBEDTLS_PKCS7_C */

-#if defined(MBEDTLS_RSA_C)
-        case -(MBEDTLS_ERR_RSA_BAD_INPUT_DATA):
-            return( "RSA - Bad input parameters to function" );
-        case -(MBEDTLS_ERR_RSA_INVALID_PADDING):
-            return( "RSA - Input data contains invalid padding and is rejected" );
-        case -(MBEDTLS_ERR_RSA_KEY_GEN_FAILED):
-            return( "RSA - Something failed during generation of a key" );
-        case -(MBEDTLS_ERR_RSA_KEY_CHECK_FAILED):
-            return( "RSA - Key failed to pass the validity check of the library" );
-        case -(MBEDTLS_ERR_RSA_PUBLIC_FAILED):
-            return( "RSA - The public key operation failed" );
-        case -(MBEDTLS_ERR_RSA_PRIVATE_FAILED):
-            return( "RSA - The private key operation failed" );
-        case -(MBEDTLS_ERR_RSA_VERIFY_FAILED):
-            return( "RSA - The PKCS#1 verification failed" );
-        case -(MBEDTLS_ERR_RSA_OUTPUT_TOO_LARGE):
-            return( "RSA - The output buffer for decryption is not large enough" );
-        case -(MBEDTLS_ERR_RSA_RNG_FAILED):
-            return( "RSA - The random generator failed to generate non-zeros" );
-#endif /* MBEDTLS_RSA_C */
-
 #if defined(MBEDTLS_SSL_TLS_C)
         case -(MBEDTLS_ERR_SSL_CRYPTO_IN_PROGRESS):
             return( "SSL - A cryptographic operation is in progress. Try again later" );
         case -(MBEDTLS_ERR_SSL_FEATURE_UNAVAILABLE):
             return( "SSL - The requested feature is not available" );
-        case -(MBEDTLS_ERR_SSL_BAD_INPUT_DATA):
-            return( "SSL - Bad input parameters to function" );
         case -(MBEDTLS_ERR_SSL_INVALID_MAC):
             return( "SSL - Verification of the message MAC failed" );
         case -(MBEDTLS_ERR_SSL_INVALID_RECORD):
@@ -418,7 +154,7 @@ const char *mbedtls_high_level_strerr(int error_code)
         case -(MBEDTLS_ERR_SSL_BAD_CERTIFICATE):
             return( "SSL - Processing of the Certificate handshake message failed" );
         case -(MBEDTLS_ERR_SSL_RECEIVED_NEW_SESSION_TICKET):
-            return( "SSL - A TLS 1.3 NewSessionTicket message has been received" );
+            return( "SSL - * Received NewSessionTicket Post Handshake Message. This error code is experimental and may be changed or removed without notice" );
         case -(MBEDTLS_ERR_SSL_CANNOT_READ_EARLY_DATA):
             return( "SSL - Not possible to read early data" );
         case -(MBEDTLS_ERR_SSL_RECEIVED_EARLY_DATA):
@@ -427,8 +163,6 @@ const char *mbedtls_high_level_strerr(int error_code)
             return( "SSL - Not possible to write early data" );
         case -(MBEDTLS_ERR_SSL_CACHE_ENTRY_NOT_FOUND):
             return( "SSL - Cache entry not found" );
-        case -(MBEDTLS_ERR_SSL_ALLOC_FAILED):
-            return( "SSL - Memory allocation failed" );
         case -(MBEDTLS_ERR_SSL_HW_ACCEL_FAILED):
             return( "SSL - Hardware acceleration function returned with error" );
         case -(MBEDTLS_ERR_SSL_HW_ACCEL_FALLTHROUGH):
@@ -451,8 +185,6 @@ const char *mbedtls_high_level_strerr(int error_code)
             return( "SSL - Unexpected message at ServerHello in renegotiation" );
         case -(MBEDTLS_ERR_SSL_HELLO_VERIFY_REQUIRED):
             return( "SSL - DTLS client must retry for hello verification" );
-        case -(MBEDTLS_ERR_SSL_BUFFER_TOO_SMALL):
-            return( "SSL - A buffer is too small to receive or write a message" );
         case -(MBEDTLS_ERR_SSL_WANT_READ):
             return( "SSL - No data of requested type currently available on underlying transport" );
         case -(MBEDTLS_ERR_SSL_WANT_WRITE):
@@ -480,10 +212,11 @@ const char *mbedtls_high_level_strerr(int error_code)
         case -(MBEDTLS_ERR_SSL_BAD_CONFIG):
             return( "SSL - Invalid value in SSL config" );
         case -(MBEDTLS_ERR_SSL_CERTIFICATE_VERIFICATION_WITHOUT_HOSTNAME):
-            return( "SSL - Attempt to verify a certificate without an expected hostname. This is usually insecure.  In TLS clients, when a client authenticates a server through its certificate, the client normally checks three things: - the certificate chain must be valid; - the chain must start from a trusted CA; - the certificate must cover the server name that is expected by the client.  Omitting any of these checks is generally insecure, and can allow a malicious server to impersonate a legitimate server.  The third check may be safely skipped in some unusual scenarios, such as networks where eavesdropping is a risk but not active attacks, or a private PKI where the client equally trusts all servers that are accredited by the root CA.  You should call mbedtls_ssl_set_hostname() with the expected server name before starting a TLS handshake on a client (unless the client is set up to only use PSK-based authentication, which does not rely on the host name). If you have determined that server name verification is not required for security in your scenario, call mbedtls_ssl_set_hostname() with \\p NULL as the server name.  This error is raised if all of the following conditions are met:  - A TLS client is configured with the authentication mode #MBEDTLS_SSL_VERIFY_REQUIRED (default). - Certificate authentication is enabled. - The client does not call mbedtls_ssl_set_hostname(). - The configuration option #MBEDTLS_SSL_CLI_ALLOW_WEAK_CERTIFICATE_VERIFICATION_WITHOUT_HOSTNAME is not enabled" );
+            return( "SSL - Attempt to verify a certificate without an expected hostname. This is usually insecure.  In TLS clients, when a client authenticates a server through its certificate, the client normally checks three things: - the certificate chain must be valid; - the chain must start from a trusted CA; - the certificate must cover the server name that is expected by the client.  Omitting any of these checks is generally insecure, and can allow a malicious server to impersonate a legitimate server.  The third check may be safely skipped in some unusual scenarios, such as networks where eavesdropping is a risk but not active attacks, or a private PKI where the client equally trusts all servers that are accredited by the root CA.  You should call mbedtls_ssl_set_hostname() with the expected server name before starting a TLS handshake on a client (unless the client is set up to only use PSK-based authentication, which does not rely on the host name). If you have determined that server name verification is not required for security in your scenario, call mbedtls_ssl_set_hostname() with \\p NULL as the server name.  This error is raised if all of the following conditions are met:  - A TLS client is configured with the authentication mode #MBEDTLS_SSL_VERIFY_REQUIRED (default). - Certificate authentication is enabled. - The client does not call mbedtls_ssl_set_hostname()" );
 #endif /* MBEDTLS_SSL_TLS_C */

-#if defined(MBEDTLS_X509_USE_C) || defined(MBEDTLS_X509_CREATE_C)
+#if defined(MBEDTLS_X509_USE_C) || \
+    defined(MBEDTLS_X509_CREATE_C)
         case -(MBEDTLS_ERR_X509_FEATURE_UNAVAILABLE):
             return( "X509 - Unavailable feature, e.g. RSA hashing/encryption combination" );
         case -(MBEDTLS_ERR_X509_UNKNOWN_OID):
@@ -516,15 +249,52 @@ const char *mbedtls_high_level_strerr(int error_code)
             return( "X509 - Format not recognized as DER or PEM" );
         case -(MBEDTLS_ERR_X509_BAD_INPUT_DATA):
             return( "X509 - Input invalid" );
-        case -(MBEDTLS_ERR_X509_ALLOC_FAILED):
-            return( "X509 - Allocation of memory failed" );
         case -(MBEDTLS_ERR_X509_FILE_IO_ERROR):
             return( "X509 - Read/write of file failed" );
-        case -(MBEDTLS_ERR_X509_BUFFER_TOO_SMALL):
-            return( "X509 - Destination buffer is too small" );
         case -(MBEDTLS_ERR_X509_FATAL_ERROR):
             return( "X509 - A fatal error occurred, eg the chain is too long or the vrfy callback failed" );
-#endif /* MBEDTLS_X509_USE_C || MBEDTLS_X509_CREATE_C */
+#endif /* MBEDTLS_X509_USE_C ||
+          MBEDTLS_X509_CREATE_C */
+
+#if defined(MBEDTLS_CIPHER_C)
+        case -(MBEDTLS_ERR_CIPHER_FEATURE_UNAVAILABLE):
+            return( "CIPHER - The selected feature is not available" );
+        case -(MBEDTLS_ERR_CIPHER_FULL_BLOCK_EXPECTED):
+            return( "CIPHER - Decryption of block requires a full block" );
+        case -(MBEDTLS_ERR_CIPHER_INVALID_CONTEXT):
+            return( "CIPHER - The context is invalid. For example, because it was freed" );
+#endif /* MBEDTLS_CIPHER_C */
+
+#if defined(MBEDTLS_ECP_C)
+        case -(MBEDTLS_ERR_ECP_FEATURE_UNAVAILABLE):
+            return( "ECP - The requested feature is not available, for example, the requested curve is not supported" );
+        case -(MBEDTLS_ERR_ECP_RANDOM_FAILED):
+            return( "ECP - Generation of random value, such as ephemeral key, failed" );
+        case -(MBEDTLS_ERR_ECP_INVALID_KEY):
+            return( "ECP - Invalid private or public key" );
+#endif /* MBEDTLS_ECP_C */
+
+#if defined(MBEDTLS_PKCS5_C)
+        case -(MBEDTLS_ERR_PKCS5_INVALID_FORMAT):
+            return( "PKCS5 - Unexpected ASN.1 data" );
+        case -(MBEDTLS_ERR_PKCS5_FEATURE_UNAVAILABLE):
+            return( "PKCS5 - Requested encryption or digest alg not available" );
+        case -(MBEDTLS_ERR_PKCS5_PASSWORD_MISMATCH):
+            return( "PKCS5 - Given private key password does not allow for correct decryption" );
+#endif /* MBEDTLS_PKCS5_C */
+
+#if defined(MBEDTLS_RSA_C)
+        case -(MBEDTLS_ERR_RSA_KEY_GEN_FAILED):
+            return( "RSA - Something failed during generation of a key" );
+        case -(MBEDTLS_ERR_RSA_KEY_CHECK_FAILED):
+            return( "RSA - Key failed to pass the validity check of the library" );
+        case -(MBEDTLS_ERR_RSA_PUBLIC_FAILED):
+            return( "RSA - The public key operation failed" );
+        case -(MBEDTLS_ERR_RSA_PRIVATE_FAILED):
+            return( "RSA - The private key operation failed" );
+        case -(MBEDTLS_ERR_RSA_RNG_FAILED):
+            return( "RSA - The random generator failed to generate non-zeros" );
+#endif /* MBEDTLS_RSA_C */
         /* End Auto-Generated Code. */

         default:
@@ -534,7 +304,7 @@ const char *mbedtls_high_level_strerr(int error_code)
     return NULL;
 }

-const char *mbedtls_low_level_strerr(int error_code)
+static const char *mbedtls_low_level_strerr(int error_code)
 {
     int low_level_error_code;

@@ -547,89 +317,66 @@ const char *mbedtls_low_level_strerr(int error_code)

     switch (low_level_error_code) {
     /* Begin Auto-Generated Code. */
-    #if defined(MBEDTLS_AES_C)
+#if defined(MBEDTLS_NET_C)
+        case -(MBEDTLS_ERR_NET_SOCKET_FAILED):
+            return( "NET - Failed to open a socket" );
+        case -(MBEDTLS_ERR_NET_CONNECT_FAILED):
+            return( "NET - The connection to the given server / port failed" );
+        case -(MBEDTLS_ERR_NET_BIND_FAILED):
+            return( "NET - Binding of the socket failed" );
+        case -(MBEDTLS_ERR_NET_LISTEN_FAILED):
+            return( "NET - Could not listen on the socket" );
+        case -(MBEDTLS_ERR_NET_ACCEPT_FAILED):
+            return( "NET - Could not accept the incoming connection" );
+        case -(MBEDTLS_ERR_NET_RECV_FAILED):
+            return( "NET - Reading information from the socket failed" );
+        case -(MBEDTLS_ERR_NET_SEND_FAILED):
+            return( "NET - Sending information through the socket failed" );
+        case -(MBEDTLS_ERR_NET_CONN_RESET):
+            return( "NET - Connection was reset by peer" );
+        case -(MBEDTLS_ERR_NET_UNKNOWN_HOST):
+            return( "NET - Failed to get an IP address for the given hostname" );
+        case -(MBEDTLS_ERR_NET_INVALID_CONTEXT):
+            return( "NET - The context is invalid, eg because it was free()ed" );
+        case -(MBEDTLS_ERR_NET_POLL_FAILED):
+            return( "NET - Polling the net context failed" );
+        case -(MBEDTLS_ERR_NET_BAD_INPUT_DATA):
+            return( "NET - Input invalid" );
+#endif /* MBEDTLS_NET_C */
+
+#if defined(MBEDTLS_AES_C)
         case -(MBEDTLS_ERR_AES_INVALID_KEY_LENGTH):
             return( "AES - Invalid key length" );
         case -(MBEDTLS_ERR_AES_INVALID_INPUT_LENGTH):
             return( "AES - Invalid data input length" );
-        case -(MBEDTLS_ERR_AES_BAD_INPUT_DATA):
-            return( "AES - Invalid input data" );
 #endif /* MBEDTLS_AES_C */

 #if defined(MBEDTLS_ARIA_C)
-        case -(MBEDTLS_ERR_ARIA_BAD_INPUT_DATA):
-            return( "ARIA - Bad input data" );
         case -(MBEDTLS_ERR_ARIA_INVALID_INPUT_LENGTH):
             return( "ARIA - Invalid data input length" );
 #endif /* MBEDTLS_ARIA_C */

-#if defined(MBEDTLS_ASN1_PARSE_C)
-        case -(MBEDTLS_ERR_ASN1_OUT_OF_DATA):
-            return( "ASN1 - Out of data when parsing an ASN1 data structure" );
-        case -(MBEDTLS_ERR_ASN1_UNEXPECTED_TAG):
-            return( "ASN1 - ASN1 tag was of an unexpected value" );
-        case -(MBEDTLS_ERR_ASN1_INVALID_LENGTH):
-            return( "ASN1 - Error when trying to determine the length or invalid length" );
-        case -(MBEDTLS_ERR_ASN1_LENGTH_MISMATCH):
-            return( "ASN1 - Actual length differs from expected length" );
-        case -(MBEDTLS_ERR_ASN1_INVALID_DATA):
-            return( "ASN1 - Data is invalid" );
-        case -(MBEDTLS_ERR_ASN1_ALLOC_FAILED):
-            return( "ASN1 - Memory allocation failed" );
-        case -(MBEDTLS_ERR_ASN1_BUF_TOO_SMALL):
-            return( "ASN1 - Buffer too small when writing ASN.1 data structure" );
-#endif /* MBEDTLS_ASN1_PARSE_C */
-
-#if defined(MBEDTLS_BASE64_C)
-        case -(MBEDTLS_ERR_BASE64_BUFFER_TOO_SMALL):
-            return( "BASE64 - Output buffer too small" );
-        case -(MBEDTLS_ERR_BASE64_INVALID_CHARACTER):
-            return( "BASE64 - Invalid character in input" );
-#endif /* MBEDTLS_BASE64_C */
-
 #if defined(MBEDTLS_BIGNUM_C)
         case -(MBEDTLS_ERR_MPI_FILE_IO_ERROR):
             return( "BIGNUM - An error occurred while reading from or writing to a file" );
-        case -(MBEDTLS_ERR_MPI_BAD_INPUT_DATA):
-            return( "BIGNUM - Bad input parameters to function" );
         case -(MBEDTLS_ERR_MPI_INVALID_CHARACTER):
             return( "BIGNUM - There is an invalid character in the digit string" );
-        case -(MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL):
-            return( "BIGNUM - The buffer is too small to write to" );
         case -(MBEDTLS_ERR_MPI_NEGATIVE_VALUE):
             return( "BIGNUM - The input arguments are negative or result in illegal output" );
         case -(MBEDTLS_ERR_MPI_DIVISION_BY_ZERO):
             return( "BIGNUM - The input argument for division is zero, which is not allowed" );
         case -(MBEDTLS_ERR_MPI_NOT_ACCEPTABLE):
             return( "BIGNUM - The input arguments are not acceptable" );
-        case -(MBEDTLS_ERR_MPI_ALLOC_FAILED):
-            return( "BIGNUM - Memory allocation failed" );
 #endif /* MBEDTLS_BIGNUM_C */

 #if defined(MBEDTLS_CAMELLIA_C)
-        case -(MBEDTLS_ERR_CAMELLIA_BAD_INPUT_DATA):
-            return( "CAMELLIA - Bad input data" );
         case -(MBEDTLS_ERR_CAMELLIA_INVALID_INPUT_LENGTH):
             return( "CAMELLIA - Invalid data input length" );
 #endif /* MBEDTLS_CAMELLIA_C */

-#if defined(MBEDTLS_CCM_C)
-        case -(MBEDTLS_ERR_CCM_BAD_INPUT):
-            return( "CCM - Bad input parameters to the function" );
-        case -(MBEDTLS_ERR_CCM_AUTH_FAILED):
-            return( "CCM - Authenticated decryption failed" );
-#endif /* MBEDTLS_CCM_C */
-
-#if defined(MBEDTLS_CHACHA20_C)
-        case -(MBEDTLS_ERR_CHACHA20_BAD_INPUT_DATA):
-            return( "CHACHA20 - Invalid input parameter(s)" );
-#endif /* MBEDTLS_CHACHA20_C */
-
 #if defined(MBEDTLS_CHACHAPOLY_C)
         case -(MBEDTLS_ERR_CHACHAPOLY_BAD_STATE):
             return( "CHACHAPOLY - The requested operation is not permitted in the current state" );
-        case -(MBEDTLS_ERR_CHACHAPOLY_AUTH_FAILED):
-            return( "CHACHAPOLY - Authenticated decryption failed: data was not authentic" );
 #endif /* MBEDTLS_CHACHAPOLY_C */

 #if defined(MBEDTLS_CTR_DRBG_C)
@@ -643,14 +390,7 @@ const char *mbedtls_low_level_strerr(int error_code)
             return( "CTR_DRBG - Read or write error in file" );
 #endif /* MBEDTLS_CTR_DRBG_C */

-#if defined(MBEDTLS_DES_C)
-        case -(MBEDTLS_ERR_DES_INVALID_INPUT_LENGTH):
-            return( "DES - The data input has an invalid length" );
-#endif /* MBEDTLS_DES_C */
-
 #if defined(MBEDTLS_ENTROPY_C)
-        case -(MBEDTLS_ERR_ENTROPY_SOURCE_FAILED):
-            return( "ENTROPY - Critical entropy source failure" );
         case -(MBEDTLS_ERR_ENTROPY_MAX_SOURCES):
             return( "ENTROPY - No more sources can be added" );
         case -(MBEDTLS_ERR_ENTROPY_NO_SOURCES_DEFINED):
@@ -661,34 +401,6 @@ const char *mbedtls_low_level_strerr(int error_code)
             return( "ENTROPY - Read/write error in file" );
 #endif /* MBEDTLS_ENTROPY_C */

-#if defined(MBEDTLS_ERROR_C)
-        case -(MBEDTLS_ERR_ERROR_GENERIC_ERROR):
-            return( "ERROR - Generic error" );
-        case -(MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED):
-            return( "ERROR - This is a bug in the library" );
-#endif /* MBEDTLS_ERROR_C */
-
-#if defined(MBEDTLS_PLATFORM_C)
-        case -(MBEDTLS_ERR_PLATFORM_HW_ACCEL_FAILED):
-            return( "PLATFORM - Hardware accelerator failed" );
-        case -(MBEDTLS_ERR_PLATFORM_FEATURE_UNSUPPORTED):
-            return( "PLATFORM - The requested feature is not supported by the platform" );
-#endif /* MBEDTLS_PLATFORM_C */
-
-#if defined(MBEDTLS_GCM_C)
-        case -(MBEDTLS_ERR_GCM_AUTH_FAILED):
-            return( "GCM - Authenticated decryption failed" );
-        case -(MBEDTLS_ERR_GCM_BAD_INPUT):
-            return( "GCM - Bad input parameters to function" );
-        case -(MBEDTLS_ERR_GCM_BUFFER_TOO_SMALL):
-            return( "GCM - An output buffer is too small" );
-#endif /* MBEDTLS_GCM_C */
-
-#if defined(MBEDTLS_HKDF_C)
-        case -(MBEDTLS_ERR_HKDF_BAD_INPUT_DATA):
-            return( "HKDF - Bad input parameters to function" );
-#endif /* MBEDTLS_HKDF_C */
-
 #if defined(MBEDTLS_HMAC_DRBG_C)
         case -(MBEDTLS_ERR_HMAC_DRBG_REQUEST_TOO_BIG):
             return( "HMAC_DRBG - Too many random requested in single call" );
@@ -699,87 +411,6 @@ const char *mbedtls_low_level_strerr(int error_code)
         case -(MBEDTLS_ERR_HMAC_DRBG_ENTROPY_SOURCE_FAILED):
             return( "HMAC_DRBG - The entropy source failed" );
 #endif /* MBEDTLS_HMAC_DRBG_C */
-
-#if defined(MBEDTLS_LMS_C)
-        case -(MBEDTLS_ERR_LMS_BAD_INPUT_DATA):
-            return( "LMS - Bad data has been input to an LMS function" );
-        case -(MBEDTLS_ERR_LMS_OUT_OF_PRIVATE_KEYS):
-            return( "LMS - Specified LMS key has utilised all of its private keys" );
-        case -(MBEDTLS_ERR_LMS_VERIFY_FAILED):
-            return( "LMS - LMS signature verification failed" );
-        case -(MBEDTLS_ERR_LMS_ALLOC_FAILED):
-            return( "LMS - LMS failed to allocate space for a private key" );
-        case -(MBEDTLS_ERR_LMS_BUFFER_TOO_SMALL):
-            return( "LMS - Input/output buffer is too small to contain requited data" );
-#endif /* MBEDTLS_LMS_C */
-
-#if defined(MBEDTLS_NET_C)
-        case -(MBEDTLS_ERR_NET_SOCKET_FAILED):
-            return( "NET - Failed to open a socket" );
-        case -(MBEDTLS_ERR_NET_CONNECT_FAILED):
-            return( "NET - The connection to the given server / port failed" );
-        case -(MBEDTLS_ERR_NET_BIND_FAILED):
-            return( "NET - Binding of the socket failed" );
-        case -(MBEDTLS_ERR_NET_LISTEN_FAILED):
-            return( "NET - Could not listen on the socket" );
-        case -(MBEDTLS_ERR_NET_ACCEPT_FAILED):
-            return( "NET - Could not accept the incoming connection" );
-        case -(MBEDTLS_ERR_NET_RECV_FAILED):
-            return( "NET - Reading information from the socket failed" );
-        case -(MBEDTLS_ERR_NET_SEND_FAILED):
-            return( "NET - Sending information through the socket failed" );
-        case -(MBEDTLS_ERR_NET_CONN_RESET):
-            return( "NET - Connection was reset by peer" );
-        case -(MBEDTLS_ERR_NET_UNKNOWN_HOST):
-            return( "NET - Failed to get an IP address for the given hostname" );
-        case -(MBEDTLS_ERR_NET_BUFFER_TOO_SMALL):
-            return( "NET - Buffer is too small to hold the data" );
-        case -(MBEDTLS_ERR_NET_INVALID_CONTEXT):
-            return( "NET - The context is invalid, eg because it was free()ed" );
-        case -(MBEDTLS_ERR_NET_POLL_FAILED):
-            return( "NET - Polling the net context failed" );
-        case -(MBEDTLS_ERR_NET_BAD_INPUT_DATA):
-            return( "NET - Input invalid" );
-#endif /* MBEDTLS_NET_C */
-
-#if defined(MBEDTLS_OID_C)
-        case -(MBEDTLS_ERR_OID_NOT_FOUND):
-            return( "OID - OID is not found" );
-        case -(MBEDTLS_ERR_OID_BUF_TOO_SMALL):
-            return( "OID - output buffer is too small" );
-#endif /* MBEDTLS_OID_C */
-
-#if defined(MBEDTLS_POLY1305_C)
-        case -(MBEDTLS_ERR_POLY1305_BAD_INPUT_DATA):
-            return( "POLY1305 - Invalid input parameter(s)" );
-#endif /* MBEDTLS_POLY1305_C */
-
-#if defined(MBEDTLS_SHA1_C)
-        case -(MBEDTLS_ERR_SHA1_BAD_INPUT_DATA):
-            return( "SHA1 - SHA-1 input data was malformed" );
-#endif /* MBEDTLS_SHA1_C */
-
-#if defined(MBEDTLS_SHA256_C)
-        case -(MBEDTLS_ERR_SHA256_BAD_INPUT_DATA):
-            return( "SHA256 - SHA-256 input data was malformed" );
-#endif /* MBEDTLS_SHA256_C */
-
-#if defined(MBEDTLS_SHA3_C)
-        case -(MBEDTLS_ERR_SHA3_BAD_INPUT_DATA):
-            return( "SHA3 - SHA-3 input data was malformed" );
-#endif /* MBEDTLS_SHA3_C */
-
-#if defined(MBEDTLS_SHA512_C)
-        case -(MBEDTLS_ERR_SHA512_BAD_INPUT_DATA):
-            return( "SHA512 - SHA-512 input data was malformed" );
-#endif /* MBEDTLS_SHA512_C */
-
-#if defined(MBEDTLS_THREADING_C)
-        case -(MBEDTLS_ERR_THREADING_BAD_INPUT_DATA):
-            return( "THREADING - Bad input parameters to function" );
-        case -(MBEDTLS_ERR_THREADING_MUTEX_ERROR):
-            return( "THREADING - Locking / unlocking / free failed with error code" );
-#endif /* MBEDTLS_THREADING_C */
         /* End Auto-Generated Code. */

         default:
diff --git a/deps/LIEF/third-party/mbedtls/library/hkdf.c b/deps/LIEF/third-party/mbedtls/library/hkdf.c
deleted file mode 100644
index 631ac24e530..00000000000
--- a/deps/LIEF/third-party/mbedtls/library/hkdf.c
+++ /dev/null
@@ -1,161 +0,0 @@
-/*
- *  HKDF implementation -- RFC 5869
- *
- *  Copyright The Mbed TLS Contributors
- *  SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
- */
-#include "common.h"
-
-#if defined(MBEDTLS_HKDF_C)
-
-#include <string.h>
-#include "mbedtls/hkdf.h"
-#include "mbedtls/platform_util.h"
-#include "mbedtls/error.h"
-
-int mbedtls_hkdf(const mbedtls_md_info_t *md, const unsigned char *salt,
-                 size_t salt_len, const unsigned char *ikm, size_t ikm_len,
-                 const unsigned char *info, size_t info_len,
-                 unsigned char *okm, size_t okm_len)
-{
-    int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
-    unsigned char prk[MBEDTLS_MD_MAX_SIZE];
-
-    ret = mbedtls_hkdf_extract(md, salt, salt_len, ikm, ikm_len, prk);
-
-    if (ret == 0) {
-        ret = mbedtls_hkdf_expand(md, prk, mbedtls_md_get_size(md),
-                                  info, info_len, okm, okm_len);
-    }
-
-    mbedtls_platform_zeroize(prk, sizeof(prk));
-
-    return ret;
-}
-
-int mbedtls_hkdf_extract(const mbedtls_md_info_t *md,
-                         const unsigned char *salt, size_t salt_len,
-                         const unsigned char *ikm, size_t ikm_len,
-                         unsigned char *prk)
-{
-    unsigned char null_salt[MBEDTLS_MD_MAX_SIZE] = { '\0' };
-
-    if (salt == NULL) {
-        size_t hash_len;
-
-        if (salt_len != 0) {
-            return MBEDTLS_ERR_HKDF_BAD_INPUT_DATA;
-        }
-
-        hash_len = mbedtls_md_get_size(md);
-
-        if (hash_len == 0) {
-            return MBEDTLS_ERR_HKDF_BAD_INPUT_DATA;
-        }
-
-        salt = null_salt;
-        salt_len = hash_len;
-    }
-
-    return mbedtls_md_hmac(md, salt, salt_len, ikm, ikm_len, prk);
-}
-
-int mbedtls_hkdf_expand(const mbedtls_md_info_t *md, const unsigned char *prk,
-                        size_t prk_len, const unsigned char *info,
-                        size_t info_len, unsigned char *okm, size_t okm_len)
-{
-    size_t hash_len;
-    size_t where = 0;
-    size_t n;
-    size_t t_len = 0;
-    size_t i;
-    int ret = 0;
-    mbedtls_md_context_t ctx;
-    unsigned char t[MBEDTLS_MD_MAX_SIZE];
-
-    if (okm == NULL) {
-        return MBEDTLS_ERR_HKDF_BAD_INPUT_DATA;
-    }
-
-    hash_len = mbedtls_md_get_size(md);
-
-    if (prk_len < hash_len || hash_len == 0) {
-        return MBEDTLS_ERR_HKDF_BAD_INPUT_DATA;
-    }
-
-    if (info == NULL) {
-        info = (const unsigned char *) "";
-        info_len = 0;
-    }
-
-    n = okm_len / hash_len;
-
-    if (okm_len % hash_len != 0) {
-        n++;
-    }
-
-    /*
-     * Per RFC 5869 Section 2.3, okm_len must not exceed
-     * 255 times the hash length
-     */
-    if (n > 255) {
-        return MBEDTLS_ERR_HKDF_BAD_INPUT_DATA;
-    }
-
-    mbedtls_md_init(&ctx);
-
-    if ((ret = mbedtls_md_setup(&ctx, md, 1)) != 0) {
-        goto exit;
-    }
-
-    memset(t, 0, hash_len);
-
-    /*
-     * Compute T = T(1) | T(2) | T(3) | ... | T(N)
-     * Where T(N) is defined in RFC 5869 Section 2.3
-     */
-    for (i = 1; i <= n; i++) {
-        size_t num_to_copy;
-        unsigned char c = i & 0xff;
-
-        ret = mbedtls_md_hmac_starts(&ctx, prk, prk_len);
-        if (ret != 0) {
-            goto exit;
-        }
-
-        ret = mbedtls_md_hmac_update(&ctx, t, t_len);
-        if (ret != 0) {
-            goto exit;
-        }
-
-        ret = mbedtls_md_hmac_update(&ctx, info, info_len);
-        if (ret != 0) {
-            goto exit;
-        }
-
-        /* The constant concatenated to the end of each T(n) is a single octet.
-         * */
-        ret = mbedtls_md_hmac_update(&ctx, &c, 1);
-        if (ret != 0) {
-            goto exit;
-        }
-
-        ret = mbedtls_md_hmac_finish(&ctx, t);
-        if (ret != 0) {
-            goto exit;
-        }
-
-        num_to_copy = i != n ? hash_len : okm_len - where;
-        memcpy(okm + where, t, num_to_copy);
-        where += hash_len;
-        t_len = hash_len;
-    }
-
-exit:
-    mbedtls_md_free(&ctx);
-    mbedtls_platform_zeroize(t, sizeof(t));
-
-    return ret;
-}
-
-#endif /* MBEDTLS_HKDF_C */
diff --git a/deps/LIEF/third-party/mbedtls/library/mbedtls_check_config.h b/deps/LIEF/third-party/mbedtls/library/mbedtls_check_config.h
new file mode 100644
index 00000000000..3107c110774
--- /dev/null
+++ b/deps/LIEF/third-party/mbedtls/library/mbedtls_check_config.h
@@ -0,0 +1,369 @@
+/**
+ * \file mbedtls/check_config.h
+ *
+ * \brief Consistency checks for configuration options
+ *
+ * This is an internal header. Do not include it directly.
+ *
+ * This header is included automatically by all public Mbed TLS headers
+ * (via mbedtls/build_info.h). Do not include it directly in a configuration
+ * file such as mbedtls/mbedtls_config.h or #MBEDTLS_USER_CONFIG_FILE!
+ * It would run at the wrong time due to missing derived symbols.
+ */
+/*
+ *  Copyright The Mbed TLS Contributors
+ *  SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+ */
+
+#ifndef MBEDTLS_CHECK_CONFIG_H
+#define MBEDTLS_CHECK_CONFIG_H
+
+/* *INDENT-OFF* */
+
+#if !defined(MBEDTLS_CONFIG_IS_FINALIZED)
+#warning "Do not include mbedtls/check_config.h manually! " \
+         "This may cause spurious errors. " \
+         "It is included automatically at the right point since Mbed TLS 3.0."
+#endif /* !MBEDTLS_CONFIG_IS_FINALIZED */
+
+#if defined(TARGET_LIKE_MBED) && defined(MBEDTLS_NET_C)
+#error "The NET module is not available for mbed OS - please use the network functions provided by Mbed OS"
+#endif
+
+#if defined(MBEDTLS_HAVE_TIME_DATE) && !defined(MBEDTLS_HAVE_TIME)
+#error "MBEDTLS_HAVE_TIME_DATE without MBEDTLS_HAVE_TIME does not make sense"
+#endif
+
+/* Limitations on ECC curves acceleration: partial curve acceleration is only
+ * supported with crypto excluding PK, X.509 or TLS.
+ * Note: no need to check X.509 as it depends on PK. */
+#if defined(MBEDTLS_PSA_ACCEL_ECC_BRAINPOOL_P_R1_256) || \
+    defined(MBEDTLS_PSA_ACCEL_ECC_BRAINPOOL_P_R1_384) || \
+    defined(MBEDTLS_PSA_ACCEL_ECC_BRAINPOOL_P_R1_512) || \
+    defined(MBEDTLS_PSA_ACCEL_ECC_MONTGOMERY_255) || \
+    defined(MBEDTLS_PSA_ACCEL_ECC_MONTGOMERY_448) || \
+    defined(MBEDTLS_PSA_ACCEL_ECC_SECP_K1_192) || \
+    defined(MBEDTLS_PSA_ACCEL_ECC_SECP_K1_256) || \
+    defined(MBEDTLS_PSA_ACCEL_ECC_SECP_R1_192) || \
+    defined(MBEDTLS_PSA_ACCEL_ECC_SECP_R1_256) || \
+    defined(MBEDTLS_PSA_ACCEL_ECC_SECP_R1_384) || \
+    defined(MBEDTLS_PSA_ACCEL_ECC_SECP_R1_521)
+#if defined(MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_CURVES)
+#if defined(MBEDTLS_SSL_TLS_C)
+#error "Unsupported partial support for ECC curves acceleration, see docs/driver-only-builds.md"
+#endif /* modules beyond what's supported */
+#endif /* not all curves accelerated */
+#endif /* some curve accelerated */
+
+#if defined(MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED) &&                     \
+    !defined(MBEDTLS_CAN_ECDH)
+#error "MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED defined, but not all prerequisites"
+#endif
+
+#if defined(MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED) &&                 \
+    ( !defined(MBEDTLS_CAN_ECDH) || !defined(PSA_WANT_KEY_TYPE_RSA_KEY_PAIR_BASIC) || \
+      !defined(MBEDTLS_X509_CRT_PARSE_C) || !defined(PSA_WANT_ALG_RSA_PKCS1V15_CRYPT) || !defined(PSA_WANT_ALG_RSA_PKCS1V15_SIGN) )
+#error "MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED defined, but not all prerequisites"
+#endif
+
+#if defined(MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED) &&                \
+    ( !defined(MBEDTLS_CAN_ECDH) ||                                       \
+      !defined(PSA_HAVE_ALG_ECDSA_SIGN) ||                                \
+      !defined(MBEDTLS_X509_CRT_PARSE_C) )
+#error "MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED defined, but not all prerequisites"
+#endif
+
+#if defined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED) &&    \
+    ( !defined(PSA_WANT_ALG_JPAKE) ||                   \
+      !defined(PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_BASIC) || \
+      !defined(PSA_WANT_ECC_SECP_R1_256) )
+#error "MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED defined, but not all prerequisites"
+#endif
+
+/* Use of EC J-PAKE in TLS requires SHA-256. */
+#if defined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED) &&                    \
+    !defined(PSA_WANT_ALG_SHA_256)
+#error "MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED defined, but not all prerequisites"
+#endif
+
+#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) &&        \
+    !defined(MBEDTLS_SSL_KEEP_PEER_CERTIFICATE) &&            \
+    !defined(PSA_WANT_ALG_SHA_256) &&                        \
+    !defined(PSA_WANT_ALG_SHA_512) &&                        \
+    !defined(PSA_WANT_ALG_SHA_1)
+#error "!MBEDTLS_SSL_KEEP_PEER_CERTIFICATE requires SHA-512, SHA-256 or SHA-1".
+#endif
+
+#if defined(MBEDTLS_X509_RSASSA_PSS_SUPPORT) &&                        \
+    ( !defined(PSA_WANT_KEY_TYPE_RSA_KEY_PAIR_BASIC) || !defined(PSA_WANT_ALG_RSA_OAEP) )
+#error "MBEDTLS_X509_RSASSA_PSS_SUPPORT defined, but not all prerequisites"
+#endif
+
+/* TLS 1.3 requires separate HKDF parts from PSA,
+ * and at least one ciphersuite, so at least SHA-256 or SHA-384
+ * from PSA to use with HKDF.
+ *
+ * Note: for dependencies common with TLS 1.2 (running handshake hash),
+ * see MBEDTLS_SSL_TLS_C. */
+#if defined(MBEDTLS_SSL_PROTO_TLS1_3) && \
+    !(defined(MBEDTLS_PSA_CRYPTO_CLIENT) && \
+      defined(PSA_WANT_ALG_HKDF_EXTRACT) && \
+      defined(PSA_WANT_ALG_HKDF_EXPAND) && \
+      (defined(PSA_WANT_ALG_SHA_256) || defined(PSA_WANT_ALG_SHA_384)))
+#error "MBEDTLS_SSL_PROTO_TLS1_3 defined, but not all prerequisites"
+#endif
+
+#if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED)
+#if !( (defined(PSA_WANT_ALG_ECDH) || defined(PSA_WANT_ALG_FFDH)) && \
+       defined(MBEDTLS_X509_CRT_PARSE_C) && \
+       ( defined(PSA_HAVE_ALG_ECDSA_SIGN) || defined(PSA_WANT_ALG_RSA_OAEP) ) )
+#error "MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED defined, but not all prerequisites"
+#endif
+#endif
+
+#if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED)
+#if !( defined(PSA_WANT_ALG_ECDH) || defined(PSA_WANT_ALG_FFDH) )
+#error "MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED defined, but not all prerequisites"
+#endif
+#endif
+
+/*
+ * The current implementation of TLS 1.3 requires MBEDTLS_SSL_KEEP_PEER_CERTIFICATE.
+ */
+#if defined(MBEDTLS_SSL_PROTO_TLS1_3) && !defined(MBEDTLS_SSL_KEEP_PEER_CERTIFICATE)
+#error "MBEDTLS_SSL_PROTO_TLS1_3 defined without MBEDTLS_SSL_KEEP_PEER_CERTIFICATE"
+#endif
+
+#if defined(MBEDTLS_SSL_PROTO_TLS1_2) &&                                    \
+    !(defined(MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED) ||                    \
+      defined(MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED) ||                  \
+      defined(MBEDTLS_KEY_EXCHANGE_PSK_ENABLED) ||                          \
+      defined(MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED) ||                    \
+      defined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED) )
+#error "One or more versions of the TLS protocol are enabled " \
+        "but no key exchange methods defined with MBEDTLS_KEY_EXCHANGE_xxxx"
+#endif
+
+#if defined(MBEDTLS_SSL_PROTO_TLS1_2) && \
+    !(defined(PSA_WANT_ALG_SHA_1) || defined(PSA_WANT_ALG_SHA_256) || defined(PSA_WANT_ALG_SHA_512))
+#error "MBEDTLS_SSL_PROTO_TLS1_2 defined, but not all prerequisites"
+#endif
+
+#if defined(MBEDTLS_SSL_EARLY_DATA) && \
+    ( !defined(MBEDTLS_SSL_SESSION_TICKETS) || \
+      ( !defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED) && \
+        !defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED) ) )
+#error "MBEDTLS_SSL_EARLY_DATA  defined, but not all prerequisites"
+#endif
+
+#if defined(MBEDTLS_SSL_EARLY_DATA) && defined(MBEDTLS_SSL_SRV_C) && \
+    defined(MBEDTLS_SSL_MAX_EARLY_DATA_SIZE) &&                      \
+        ((MBEDTLS_SSL_MAX_EARLY_DATA_SIZE < 0) ||                    \
+         (MBEDTLS_SSL_MAX_EARLY_DATA_SIZE > UINT32_MAX))
+#error "MBEDTLS_SSL_MAX_EARLY_DATA_SIZE must be in the range(0..UINT32_MAX)"
+#endif
+
+#if defined(MBEDTLS_SSL_PROTO_DTLS)     && \
+    !defined(MBEDTLS_SSL_PROTO_TLS1_2)
+#error "MBEDTLS_SSL_PROTO_DTLS defined, but not all prerequisites"
+#endif
+
+#if defined(MBEDTLS_SSL_CLI_C) && !defined(MBEDTLS_SSL_TLS_C)
+#error "MBEDTLS_SSL_CLI_C defined, but not all prerequisites"
+#endif
+
+#if defined(MBEDTLS_SSL_ASYNC_PRIVATE) && !defined(MBEDTLS_X509_CRT_PARSE_C)
+#error "MBEDTLS_SSL_ASYNC_PRIVATE defined, but not all prerequisites"
+#endif
+
+/* TLS 1.2 and 1.3 require SHA-256 or SHA-384 (running handshake hash) */
+#if defined(MBEDTLS_SSL_TLS_C) && \
+    !(defined(PSA_WANT_ALG_SHA_256) || defined(PSA_WANT_ALG_SHA_384))
+#error "MBEDTLS_SSL_TLS_C defined, but not all prerequisites"
+#endif
+
+#if defined(MBEDTLS_SSL_SRV_C) && !defined(MBEDTLS_SSL_TLS_C)
+#error "MBEDTLS_SSL_SRV_C defined, but not all prerequisites"
+#endif
+
+#if defined(MBEDTLS_SSL_TLS_C) && \
+    !( defined(MBEDTLS_SSL_PROTO_TLS1_2) || defined(MBEDTLS_SSL_PROTO_TLS1_3) )
+#error "MBEDTLS_SSL_TLS_C defined, but no protocols are active"
+#endif
+
+#if defined(MBEDTLS_SSL_DTLS_HELLO_VERIFY) && !defined(MBEDTLS_SSL_PROTO_DTLS)
+#error "MBEDTLS_SSL_DTLS_HELLO_VERIFY  defined, but not all prerequisites"
+#endif
+
+#if defined(MBEDTLS_SSL_DTLS_CLIENT_PORT_REUSE) && \
+    !defined(MBEDTLS_SSL_DTLS_HELLO_VERIFY)
+#error "MBEDTLS_SSL_DTLS_CLIENT_PORT_REUSE  defined, but not all prerequisites"
+#endif
+
+#if defined(MBEDTLS_SSL_DTLS_ANTI_REPLAY) &&                              \
+    ( !defined(MBEDTLS_SSL_TLS_C) || !defined(MBEDTLS_SSL_PROTO_DTLS) )
+#error "MBEDTLS_SSL_DTLS_ANTI_REPLAY  defined, but not all prerequisites"
+#endif
+
+#if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID) &&                              \
+    ( !defined(MBEDTLS_SSL_TLS_C) || !defined(MBEDTLS_SSL_PROTO_DTLS) )
+#error "MBEDTLS_SSL_DTLS_CONNECTION_ID  defined, but not all prerequisites"
+#endif
+
+#if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID)            &&                 \
+    defined(MBEDTLS_SSL_CID_IN_LEN_MAX) &&                 \
+    MBEDTLS_SSL_CID_IN_LEN_MAX > 255
+#error "MBEDTLS_SSL_CID_IN_LEN_MAX too large (max 255)"
+#endif
+
+#if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID)            &&                  \
+    defined(MBEDTLS_SSL_CID_OUT_LEN_MAX) &&                 \
+    MBEDTLS_SSL_CID_OUT_LEN_MAX > 255
+#error "MBEDTLS_SSL_CID_OUT_LEN_MAX too large (max 255)"
+#endif
+
+#if defined(MBEDTLS_SSL_ENCRYPT_THEN_MAC) &&   \
+    !defined(MBEDTLS_SSL_PROTO_TLS1_2)
+#error "MBEDTLS_SSL_ENCRYPT_THEN_MAC defined, but not all prerequisites"
+#endif
+
+#if defined(MBEDTLS_SSL_EXTENDED_MASTER_SECRET) && \
+    !defined(MBEDTLS_SSL_PROTO_TLS1_2)
+#error "MBEDTLS_SSL_EXTENDED_MASTER_SECRET defined, but not all prerequisites"
+#endif
+
+#if defined(MBEDTLS_SSL_RENEGOTIATION) && \
+    !defined(MBEDTLS_SSL_PROTO_TLS1_2)
+#error "MBEDTLS_SSL_RENEGOTIATION defined, but not all prerequisites"
+#endif
+
+#if defined(MBEDTLS_SSL_TICKET_C) && \
+    !( defined(PSA_WANT_ALG_CCM) || defined(PSA_WANT_ALG_GCM) || \
+    defined(PSA_WANT_ALG_CHACHA20_POLY1305) )
+#error "MBEDTLS_SSL_TICKET_C defined, but not all prerequisites"
+#endif
+
+#if defined(MBEDTLS_SSL_TLS1_3_TICKET_NONCE_LENGTH) && \
+    MBEDTLS_SSL_TLS1_3_TICKET_NONCE_LENGTH >= 256
+#error "MBEDTLS_SSL_TLS1_3_TICKET_NONCE_LENGTH must be less than 256"
+#endif
+
+#if defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) && \
+        !defined(MBEDTLS_X509_CRT_PARSE_C)
+#error "MBEDTLS_SSL_SERVER_NAME_INDICATION defined, but not all prerequisites"
+#endif
+
+#if defined(MBEDTLS_VERSION_FEATURES) && !defined(MBEDTLS_VERSION_C)
+#error "MBEDTLS_VERSION_FEATURES defined, but not all prerequisites"
+#endif
+
+#if defined(MBEDTLS_X509_USE_C) && \
+    (!defined(MBEDTLS_ASN1_PARSE_C) || !defined(MBEDTLS_PK_PARSE_C))
+#error "MBEDTLS_X509_USE_C defined, but not all prerequisites"
+#endif
+
+#if defined(MBEDTLS_X509_CREATE_C) && \
+    (!defined(MBEDTLS_ASN1_WRITE_C) || !defined(MBEDTLS_PK_PARSE_C))
+#error "MBEDTLS_X509_CREATE_C defined, but not all prerequisites"
+#endif
+
+#if defined(MBEDTLS_X509_CRT_PARSE_C) && ( !defined(MBEDTLS_X509_USE_C) )
+#error "MBEDTLS_X509_CRT_PARSE_C defined, but not all prerequisites"
+#endif
+
+#if defined(MBEDTLS_X509_CRL_PARSE_C) && ( !defined(MBEDTLS_X509_USE_C) )
+#error "MBEDTLS_X509_CRL_PARSE_C defined, but not all prerequisites"
+#endif
+
+#if defined(MBEDTLS_X509_CSR_PARSE_C) && ( !defined(MBEDTLS_X509_USE_C) )
+#error "MBEDTLS_X509_CSR_PARSE_C defined, but not all prerequisites"
+#endif
+
+#if defined(MBEDTLS_X509_CRT_WRITE_C) && ( !defined(MBEDTLS_X509_CREATE_C) )
+#error "MBEDTLS_X509_CRT_WRITE_C defined, but not all prerequisites"
+#endif
+
+#if defined(MBEDTLS_X509_CSR_WRITE_C) && ( !defined(MBEDTLS_X509_CREATE_C) )
+#error "MBEDTLS_X509_CSR_WRITE_C defined, but not all prerequisites"
+#endif
+
+#if defined(MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK) && \
+            ( !defined(MBEDTLS_X509_CRT_PARSE_C) )
+#error "MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK defined, but not all prerequisites"
+#endif
+
+#if defined(MBEDTLS_SSL_DTLS_SRTP) && ( !defined(MBEDTLS_SSL_PROTO_DTLS) )
+#error "MBEDTLS_SSL_DTLS_SRTP defined, but not all prerequisites"
+#endif
+
+#if defined(MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH) && ( !defined(MBEDTLS_SSL_MAX_FRAGMENT_LENGTH) )
+#error "MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH defined, but not all prerequisites"
+#endif
+
+#if defined(MBEDTLS_SSL_RECORD_SIZE_LIMIT) && ( !defined(MBEDTLS_SSL_PROTO_TLS1_3) )
+#error "MBEDTLS_SSL_RECORD_SIZE_LIMIT defined, but not all prerequisites"
+#endif
+
+#if defined(MBEDTLS_SSL_CONTEXT_SERIALIZATION) && \
+    !( defined(PSA_WANT_ALG_CCM) || defined(PSA_WANT_ALG_GCM) || \
+    defined(PSA_WANT_ALG_CHACHA20_POLY1305) )
+#error "MBEDTLS_SSL_CONTEXT_SERIALIZATION defined, but not all prerequisites"
+#endif
+
+/* Reject attempts to enable options that have been removed and that could
+ * cause a build to succeed but with features removed. */
+
+#if defined(MBEDTLS_HAVEGE_C) //no-check-names
+#error "MBEDTLS_HAVEGE_C was removed in Mbed TLS 3.0. See https://github.com/Mbed-TLS/mbedtls/issues/2599"
+#endif
+
+#if defined(MBEDTLS_SSL_HW_RECORD_ACCEL) //no-check-names
+#error "MBEDTLS_SSL_HW_RECORD_ACCEL was removed in Mbed TLS 3.0. See https://github.com/Mbed-TLS/mbedtls/issues/4031"
+#endif
+
+#if defined(MBEDTLS_SSL_PROTO_SSL3) //no-check-names
+#error "MBEDTLS_SSL_PROTO_SSL3 (SSL v3.0 support) was removed in Mbed TLS 3.0. See https://github.com/Mbed-TLS/mbedtls/issues/4031"
+#endif
+
+#if defined(MBEDTLS_SSL_SRV_SUPPORT_SSLV2_CLIENT_HELLO) //no-check-names
+#error "MBEDTLS_SSL_SRV_SUPPORT_SSLV2_CLIENT_HELLO (SSL v2 ClientHello support) was removed in Mbed TLS 3.0. See https://github.com/Mbed-TLS/mbedtls/issues/4031"
+#endif
+
+#if defined(MBEDTLS_SSL_TRUNCATED_HMAC_COMPAT) //no-check-names
+#error "MBEDTLS_SSL_TRUNCATED_HMAC_COMPAT (compatibility with the buggy implementation of truncated HMAC in Mbed TLS up to 2.7) was removed in Mbed TLS 3.0. See https://github.com/Mbed-TLS/mbedtls/issues/4031"
+#endif
+
+#if defined(MBEDTLS_TLS_DEFAULT_ALLOW_SHA1_IN_CERTIFICATES) //no-check-names
+#error "MBEDTLS_TLS_DEFAULT_ALLOW_SHA1_IN_CERTIFICATES was removed in Mbed TLS 3.0. See the ChangeLog entry if you really need SHA-1-signed certificates."
+#endif
+
+#if defined(MBEDTLS_ZLIB_SUPPORT) //no-check-names
+#error "MBEDTLS_ZLIB_SUPPORT was removed in Mbed TLS 3.0. See https://github.com/Mbed-TLS/mbedtls/issues/4031"
+#endif
+
+#if defined(MBEDTLS_CHECK_PARAMS) //no-check-names
+#error "MBEDTLS_CHECK_PARAMS was removed in Mbed TLS 3.0. See https://github.com/Mbed-TLS/mbedtls/issues/4313"
+#endif
+
+#if defined(MBEDTLS_SSL_CID_PADDING_GRANULARITY) //no-check-names
+#error "MBEDTLS_SSL_CID_PADDING_GRANULARITY was removed in Mbed TLS 3.0. See https://github.com/Mbed-TLS/mbedtls/issues/4335"
+#endif
+
+#if defined(MBEDTLS_SSL_TLS1_3_PADDING_GRANULARITY) //no-check-names
+#error "MBEDTLS_SSL_TLS1_3_PADDING_GRANULARITY was removed in Mbed TLS 3.0. See https://github.com/Mbed-TLS/mbedtls/issues/4335"
+#endif
+
+#if defined(MBEDTLS_SSL_TRUNCATED_HMAC) //no-check-names
+#error "MBEDTLS_SSL_TRUNCATED_HMAC was removed in Mbed TLS 3.0. See https://github.com/Mbed-TLS/mbedtls/issues/4341"
+#endif
+
+#if defined(MBEDTLS_PKCS7_C) && ( ( !defined(MBEDTLS_ASN1_PARSE_C) ) || \
+    ( !defined(MBEDTLS_PK_PARSE_C) ) || \
+    ( !defined(MBEDTLS_X509_CRT_PARSE_C) ) || \
+    ( !defined(MBEDTLS_X509_CRL_PARSE_C) ) || \
+    ( !defined(MBEDTLS_MD_C) ) )
+#error  "MBEDTLS_PKCS7_C is defined, but not all prerequisites"
+#endif
+
+/* *INDENT-ON* */
+#endif /* MBEDTLS_CHECK_CONFIG_H */
diff --git a/deps/LIEF/third-party/mbedtls/library/mbedtls_config.c b/deps/LIEF/third-party/mbedtls/library/mbedtls_config.c
new file mode 100644
index 00000000000..a3deae31526
--- /dev/null
+++ b/deps/LIEF/third-party/mbedtls/library/mbedtls_config.c
@@ -0,0 +1,34 @@
+/*
+ *  Mbed TLS configuration checks
+ */
+/*
+ *  Copyright The Mbed TLS Contributors
+ *  SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+ */
+
+/* Apply the TF-PSA-Crypto configuration first. We need to do this
+ * before <mbedtls/build_info.h>, because "mbedtls_config_check_before.h"
+ * needs to run after the crypto config (including derived macros) is
+ * finalized, but before the user's mbedtls config is applied. This way
+ * it is possible to differentiate macros set by the user's mbedtls config
+ * from macros set or derived by the crypto config. */
+#include <tf-psa-crypto/build_info.h>
+
+/* Consistency checks on the user's configuration.
+ * Check that it doesn't define macros that we assume are under full
+ * control of the library, or options from past major versions that
+ * no longer have any effect.
+ * These headers are automatically generated. See
+ * framework/scripts/mbedtls_framework/config_checks_generator.py
+ */
+#include "mbedtls_config_check_before.h"
+#define MBEDTLS_INCLUDE_AFTER_RAW_CONFIG "mbedtls_config_check_user.h"
+
+#include <mbedtls/build_info.h>
+
+/* Consistency checks in the configuration: check for incompatible options,
+ * missing options when at least one of a set needs to be enabled, etc. */
+/* Manually written checks */
+#include "mbedtls_check_config.h"
+/* Automatically generated checks */
+#include "mbedtls_config_check_final.h"
diff --git a/deps/LIEF/third-party/mbedtls/library/mps_reader.c b/deps/LIEF/third-party/mbedtls/library/mps_reader.c
index 27d0c04c108..0fe7dfe95f7 100644
--- a/deps/LIEF/third-party/mbedtls/library/mps_reader.c
+++ b/deps/LIEF/third-party/mbedtls/library/mps_reader.c
@@ -5,7 +5,7 @@
  *  SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
  */

-#include "common.h"
+#include "ssl_misc.h"

 #if defined(MBEDTLS_SSL_PROTO_TLS1_3)

diff --git a/deps/LIEF/third-party/mbedtls/library/mps_trace.c b/deps/LIEF/third-party/mbedtls/library/mps_trace.c
index 69f6e5a0f95..98449b5f773 100644
--- a/deps/LIEF/third-party/mbedtls/library/mps_trace.c
+++ b/deps/LIEF/third-party/mbedtls/library/mps_trace.c
@@ -5,7 +5,7 @@
  *  SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
  */

-#include "common.h"
+#include "ssl_misc.h"

 #if defined(MBEDTLS_SSL_PROTO_TLS1_3)

diff --git a/deps/LIEF/third-party/mbedtls/library/mps_trace.h b/deps/LIEF/third-party/mbedtls/library/mps_trace.h
index b456b2ffddf..ac2b75f6ba0 100644
--- a/deps/LIEF/third-party/mbedtls/library/mps_trace.h
+++ b/deps/LIEF/third-party/mbedtls/library/mps_trace.h
@@ -12,7 +12,7 @@
 #ifndef MBEDTLS_MPS_MBEDTLS_MPS_TRACE_H
 #define MBEDTLS_MPS_MBEDTLS_MPS_TRACE_H

-#include "common.h"
+#include "ssl_misc.h"
 #include "mps_common.h"
 #include "mps_trace.h"

diff --git a/deps/LIEF/third-party/mbedtls/library/net_sockets.c b/deps/LIEF/third-party/mbedtls/library/net_sockets.c
index 1419c787b9a..ca70f3797bc 100644
--- a/deps/LIEF/third-party/mbedtls/library/net_sockets.c
+++ b/deps/LIEF/third-party/mbedtls/library/net_sockets.c
@@ -15,7 +15,7 @@
 #define _XOPEN_SOURCE 600 /* sockaddr_storage */
 #endif

-#include "common.h"
+#include "ssl_misc.h"

 #if defined(MBEDTLS_NET_C)

diff --git a/deps/LIEF/third-party/mbedtls/library/nist_kw.c b/deps/LIEF/third-party/mbedtls/library/nist_kw.c
deleted file mode 100644
index 8faafe43f1a..00000000000
--- a/deps/LIEF/third-party/mbedtls/library/nist_kw.c
+++ /dev/null
@@ -1,729 +0,0 @@
-/*
- *  Implementation of NIST SP 800-38F key wrapping, supporting KW and KWP modes
- *  only
- *
- *  Copyright The Mbed TLS Contributors
- *  SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
- */
-/*
- * Definition of Key Wrapping:
- * https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-38F.pdf
- * RFC 3394 "Advanced Encryption Standard (AES) Key Wrap Algorithm"
- * RFC 5649 "Advanced Encryption Standard (AES) Key Wrap with Padding Algorithm"
- *
- * Note: RFC 3394 defines different methodology for intermediate operations for
- * the wrapping and unwrapping operation than the definition in NIST SP 800-38F.
- */
-
-#include "common.h"
-
-#if defined(MBEDTLS_NIST_KW_C)
-
-#include "mbedtls/nist_kw.h"
-#include "mbedtls/platform_util.h"
-#include "mbedtls/error.h"
-#include "mbedtls/constant_time.h"
-#include "constant_time_internal.h"
-
-#include <stdint.h>
-#include <string.h>
-
-#include "mbedtls/platform.h"
-
-#if !defined(MBEDTLS_NIST_KW_ALT)
-
-#define KW_SEMIBLOCK_LENGTH    8
-#define MIN_SEMIBLOCKS_COUNT   3
-
-/*! The 64-bit default integrity check value (ICV) for KW mode. */
-static const unsigned char NIST_KW_ICV1[] = { 0xA6, 0xA6, 0xA6, 0xA6, 0xA6, 0xA6, 0xA6, 0xA6 };
-/*! The 32-bit default integrity check value (ICV) for KWP mode. */
-static const  unsigned char NIST_KW_ICV2[] = { 0xA6, 0x59, 0x59, 0xA6 };
-
-/*
- * Initialize context
- */
-void mbedtls_nist_kw_init(mbedtls_nist_kw_context *ctx)
-{
-    memset(ctx, 0, sizeof(mbedtls_nist_kw_context));
-}
-
-int mbedtls_nist_kw_setkey(mbedtls_nist_kw_context *ctx,
-                           mbedtls_cipher_id_t cipher,
-                           const unsigned char *key,
-                           unsigned int keybits,
-                           const int is_wrap)
-{
-    int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
-    const mbedtls_cipher_info_t *cipher_info;
-
-    cipher_info = mbedtls_cipher_info_from_values(cipher,
-                                                  keybits,
-                                                  MBEDTLS_MODE_ECB);
-    if (cipher_info == NULL) {
-        return MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA;
-    }
-
-    if (mbedtls_cipher_info_get_block_size(cipher_info) != 16) {
-        return MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA;
-    }
-
-    /*
-     * SP 800-38F currently defines AES cipher as the only block cipher allowed:
-     * "For KW and KWP, the underlying block cipher shall be approved, and the
-     *  block size shall be 128 bits. Currently, the AES block cipher, with key
-     *  lengths of 128, 192, or 256 bits, is the only block cipher that fits
-     *  this profile."
-     *  Currently we don't support other 128 bit block ciphers for key wrapping,
-     *  such as Camellia and Aria.
-     */
-    if (cipher != MBEDTLS_CIPHER_ID_AES) {
-        return MBEDTLS_ERR_CIPHER_FEATURE_UNAVAILABLE;
-    }
-
-    mbedtls_cipher_free(&ctx->cipher_ctx);
-
-    if ((ret = mbedtls_cipher_setup(&ctx->cipher_ctx, cipher_info)) != 0) {
-        return ret;
-    }
-
-    if ((ret = mbedtls_cipher_setkey(&ctx->cipher_ctx, key, keybits,
-                                     is_wrap ? MBEDTLS_ENCRYPT :
-                                     MBEDTLS_DECRYPT)
-         ) != 0) {
-        return ret;
-    }
-
-    return 0;
-}
-
-/*
- * Free context
- */
-void mbedtls_nist_kw_free(mbedtls_nist_kw_context *ctx)
-{
-    if (ctx == NULL) {
-        return;
-    }
-
-    mbedtls_cipher_free(&ctx->cipher_ctx);
-    mbedtls_platform_zeroize(ctx, sizeof(mbedtls_nist_kw_context));
-}
-
-/*
- * Helper function for Xoring the uint64_t "t" with the encrypted A.
- * Defined in NIST SP 800-38F section 6.1
- */
-static void calc_a_xor_t(unsigned char A[KW_SEMIBLOCK_LENGTH], uint64_t t)
-{
-    size_t i = 0;
-    for (i = 0; i < sizeof(t); i++) {
-        A[i] ^= (t >> ((sizeof(t) - 1 - i) * 8)) & 0xff;
-    }
-}
-
-/*
- * KW-AE as defined in SP 800-38F section 6.2
- * KWP-AE as defined in SP 800-38F section 6.3
- */
-int mbedtls_nist_kw_wrap(mbedtls_nist_kw_context *ctx,
-                         mbedtls_nist_kw_mode_t mode,
-                         const unsigned char *input, size_t in_len,
-                         unsigned char *output, size_t *out_len, size_t out_size)
-{
-    int ret = 0;
-    size_t semiblocks = 0;
-    size_t s;
-    size_t olen, padlen = 0;
-    uint64_t t = 0;
-    unsigned char outbuff[KW_SEMIBLOCK_LENGTH * 2];
-    unsigned char inbuff[KW_SEMIBLOCK_LENGTH * 2];
-
-    *out_len = 0;
-    /*
-     * Generate the String to work on
-     */
-    if (mode == MBEDTLS_KW_MODE_KW) {
-        if (out_size < in_len + KW_SEMIBLOCK_LENGTH) {
-            return MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA;
-        }
-
-        /*
-         * According to SP 800-38F Table 1, the plaintext length for KW
-         * must be between 2 to 2^54-1 semiblocks inclusive.
-         */
-        if (in_len < 16 ||
-#if SIZE_MAX > 0x1FFFFFFFFFFFFF8
-            in_len > 0x1FFFFFFFFFFFFF8 ||
-#endif
-            in_len % KW_SEMIBLOCK_LENGTH != 0) {
-            return MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA;
-        }
-
-        memcpy(output, NIST_KW_ICV1, KW_SEMIBLOCK_LENGTH);
-        memmove(output + KW_SEMIBLOCK_LENGTH, input, in_len);
-    } else {
-        if (in_len % 8 != 0) {
-            padlen = (8 - (in_len % 8));
-        }
-
-        if (out_size < in_len + KW_SEMIBLOCK_LENGTH + padlen) {
-            return MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA;
-        }
-
-        /*
-         * According to SP 800-38F Table 1, the plaintext length for KWP
-         * must be between 1 and 2^32-1 octets inclusive.
-         */
-        if (in_len < 1
-#if SIZE_MAX > 0xFFFFFFFF
-            || in_len > 0xFFFFFFFF
-#endif
-            ) {
-            return MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA;
-        }
-
-        memcpy(output, NIST_KW_ICV2, KW_SEMIBLOCK_LENGTH / 2);
-        MBEDTLS_PUT_UINT32_BE((in_len & 0xffffffff), output,
-                              KW_SEMIBLOCK_LENGTH / 2);
-
-        memcpy(output + KW_SEMIBLOCK_LENGTH, input, in_len);
-        memset(output + KW_SEMIBLOCK_LENGTH + in_len, 0, padlen);
-    }
-    semiblocks = ((in_len + padlen) / KW_SEMIBLOCK_LENGTH) + 1;
-
-    s = 6 * (semiblocks - 1);
-
-    if (mode == MBEDTLS_KW_MODE_KWP
-        && in_len <= KW_SEMIBLOCK_LENGTH) {
-        memcpy(inbuff, output, 16);
-        ret = mbedtls_cipher_update(&ctx->cipher_ctx,
-                                    inbuff, 16, output, &olen);
-        if (ret != 0) {
-            goto cleanup;
-        }
-    } else {
-        unsigned char *R2 = output + KW_SEMIBLOCK_LENGTH;
-        unsigned char *A = output;
-
-        /*
-         * Do the wrapping function W, as defined in RFC 3394 section 2.2.1
-         */
-        if (semiblocks < MIN_SEMIBLOCKS_COUNT) {
-            ret = MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA;
-            goto cleanup;
-        }
-
-        /* Calculate intermediate values */
-        for (t = 1; t <= s; t++) {
-            memcpy(inbuff, A, KW_SEMIBLOCK_LENGTH);
-            memcpy(inbuff + KW_SEMIBLOCK_LENGTH, R2, KW_SEMIBLOCK_LENGTH);
-
-            ret = mbedtls_cipher_update(&ctx->cipher_ctx,
-                                        inbuff, 16, outbuff, &olen);
-            if (ret != 0) {
-                goto cleanup;
-            }
-
-            memcpy(A, outbuff, KW_SEMIBLOCK_LENGTH);
-            calc_a_xor_t(A, t);
-
-            memcpy(R2, outbuff + KW_SEMIBLOCK_LENGTH, KW_SEMIBLOCK_LENGTH);
-            R2 += KW_SEMIBLOCK_LENGTH;
-            if (R2 >= output + (semiblocks * KW_SEMIBLOCK_LENGTH)) {
-                R2 = output + KW_SEMIBLOCK_LENGTH;
-            }
-        }
-    }
-
-    *out_len = semiblocks * KW_SEMIBLOCK_LENGTH;
-
-cleanup:
-
-    if (ret != 0) {
-        memset(output, 0, semiblocks * KW_SEMIBLOCK_LENGTH);
-    }
-    mbedtls_platform_zeroize(inbuff, KW_SEMIBLOCK_LENGTH * 2);
-    mbedtls_platform_zeroize(outbuff, KW_SEMIBLOCK_LENGTH * 2);
-
-    return ret;
-}
-
-/*
- * W-1 function as defined in RFC 3394 section 2.2.2
- * This function assumes the following:
- * 1. Output buffer is at least of size ( semiblocks - 1 ) * KW_SEMIBLOCK_LENGTH.
- * 2. The input buffer is of size semiblocks * KW_SEMIBLOCK_LENGTH.
- * 3. Minimal number of semiblocks is 3.
- * 4. A is a buffer to hold the first semiblock of the input buffer.
- */
-static int unwrap(mbedtls_nist_kw_context *ctx,
-                  const unsigned char *input, size_t semiblocks,
-                  unsigned char A[KW_SEMIBLOCK_LENGTH],
-                  unsigned char *output, size_t *out_len)
-{
-    int ret = 0;
-    const size_t s = 6 * (semiblocks - 1);
-    size_t olen;
-    uint64_t t = 0;
-    unsigned char outbuff[KW_SEMIBLOCK_LENGTH * 2];
-    unsigned char inbuff[KW_SEMIBLOCK_LENGTH * 2];
-    unsigned char *R = NULL;
-    *out_len = 0;
-
-    if (semiblocks < MIN_SEMIBLOCKS_COUNT) {
-        return MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA;
-    }
-
-    memcpy(A, input, KW_SEMIBLOCK_LENGTH);
-    memmove(output, input + KW_SEMIBLOCK_LENGTH, (semiblocks - 1) * KW_SEMIBLOCK_LENGTH);
-    R = output + (semiblocks - 2) * KW_SEMIBLOCK_LENGTH;
-
-    /* Calculate intermediate values */
-    for (t = s; t >= 1; t--) {
-        calc_a_xor_t(A, t);
-
-        memcpy(inbuff, A, KW_SEMIBLOCK_LENGTH);
-        memcpy(inbuff + KW_SEMIBLOCK_LENGTH, R, KW_SEMIBLOCK_LENGTH);
-
-        ret = mbedtls_cipher_update(&ctx->cipher_ctx,
-                                    inbuff, 16, outbuff, &olen);
-        if (ret != 0) {
-            goto cleanup;
-        }
-
-        memcpy(A, outbuff, KW_SEMIBLOCK_LENGTH);
-
-        /* Set R as LSB64 of outbuff */
-        memcpy(R, outbuff + KW_SEMIBLOCK_LENGTH, KW_SEMIBLOCK_LENGTH);
-
-        if (R == output) {
-            R = output + (semiblocks - 2) * KW_SEMIBLOCK_LENGTH;
-        } else {
-            R -= KW_SEMIBLOCK_LENGTH;
-        }
-    }
-
-    *out_len = (semiblocks - 1) * KW_SEMIBLOCK_LENGTH;
-
-cleanup:
-    if (ret != 0) {
-        memset(output, 0, (semiblocks - 1) * KW_SEMIBLOCK_LENGTH);
-    }
-    mbedtls_platform_zeroize(inbuff, sizeof(inbuff));
-    mbedtls_platform_zeroize(outbuff, sizeof(outbuff));
-
-    return ret;
-}
-
-/*
- * KW-AD as defined in SP 800-38F section 6.2
- * KWP-AD as defined in SP 800-38F section 6.3
- */
-int mbedtls_nist_kw_unwrap(mbedtls_nist_kw_context *ctx,
-                           mbedtls_nist_kw_mode_t mode,
-                           const unsigned char *input, size_t in_len,
-                           unsigned char *output, size_t *out_len, size_t out_size)
-{
-    int ret = 0;
-    size_t olen;
-    unsigned char A[KW_SEMIBLOCK_LENGTH];
-    int diff;
-
-    *out_len = 0;
-    if (out_size < in_len - KW_SEMIBLOCK_LENGTH) {
-        return MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA;
-    }
-
-    if (mode == MBEDTLS_KW_MODE_KW) {
-        /*
-         * According to SP 800-38F Table 1, the ciphertext length for KW
-         * must be between 3 to 2^54 semiblocks inclusive.
-         */
-        if (in_len < 24 ||
-#if SIZE_MAX > 0x200000000000000
-            in_len > 0x200000000000000 ||
-#endif
-            in_len % KW_SEMIBLOCK_LENGTH != 0) {
-            return MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA;
-        }
-
-        ret = unwrap(ctx, input, in_len / KW_SEMIBLOCK_LENGTH,
-                     A, output, out_len);
-        if (ret != 0) {
-            goto cleanup;
-        }
-
-        /* Check ICV in "constant-time" */
-        diff = mbedtls_ct_memcmp(NIST_KW_ICV1, A, KW_SEMIBLOCK_LENGTH);
-
-        if (diff != 0) {
-            ret = MBEDTLS_ERR_CIPHER_AUTH_FAILED;
-            goto cleanup;
-        }
-
-    } else if (mode == MBEDTLS_KW_MODE_KWP) {
-        size_t padlen = 0;
-        uint32_t Plen;
-        /*
-         * According to SP 800-38F Table 1, the ciphertext length for KWP
-         * must be between 2 to 2^29 semiblocks inclusive.
-         */
-        if (in_len < KW_SEMIBLOCK_LENGTH * 2 ||
-#if SIZE_MAX > 0x100000000
-            in_len > 0x100000000 ||
-#endif
-            in_len % KW_SEMIBLOCK_LENGTH != 0) {
-            return MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA;
-        }
-
-        if (in_len == KW_SEMIBLOCK_LENGTH * 2) {
-            unsigned char outbuff[KW_SEMIBLOCK_LENGTH * 2];
-            ret = mbedtls_cipher_update(&ctx->cipher_ctx,
-                                        input, 16, outbuff, &olen);
-            if (ret != 0) {
-                goto cleanup;
-            }
-
-            memcpy(A, outbuff, KW_SEMIBLOCK_LENGTH);
-            memcpy(output, outbuff + KW_SEMIBLOCK_LENGTH, KW_SEMIBLOCK_LENGTH);
-            mbedtls_platform_zeroize(outbuff, sizeof(outbuff));
-            *out_len = KW_SEMIBLOCK_LENGTH;
-        } else {
-            /* in_len >=  KW_SEMIBLOCK_LENGTH * 3 */
-            ret = unwrap(ctx, input, in_len / KW_SEMIBLOCK_LENGTH,
-                         A, output, out_len);
-            if (ret != 0) {
-                goto cleanup;
-            }
-        }
-
-        /* Check ICV in "constant-time" */
-        diff = mbedtls_ct_memcmp(NIST_KW_ICV2, A, KW_SEMIBLOCK_LENGTH / 2);
-
-        if (diff != 0) {
-            ret = MBEDTLS_ERR_CIPHER_AUTH_FAILED;
-        }
-
-        Plen = MBEDTLS_GET_UINT32_BE(A, KW_SEMIBLOCK_LENGTH / 2);
-
-        /*
-         * Plen is the length of the plaintext, when the input is valid.
-         * If Plen is larger than the plaintext and padding, padlen will be
-         * larger than 8, because of the type wrap around.
-         */
-        padlen = in_len - KW_SEMIBLOCK_LENGTH - Plen;
-        ret = mbedtls_ct_error_if(mbedtls_ct_uint_gt(padlen, 7),
-                                  MBEDTLS_ERR_CIPHER_AUTH_FAILED, ret);
-        padlen &= 7;
-
-        /* Check padding in "constant-time" */
-        const uint8_t zero[KW_SEMIBLOCK_LENGTH] = { 0 };
-        diff = mbedtls_ct_memcmp_partial(
-            &output[*out_len - KW_SEMIBLOCK_LENGTH], zero,
-            KW_SEMIBLOCK_LENGTH, KW_SEMIBLOCK_LENGTH - padlen, 0);
-
-        if (diff != 0) {
-            ret = MBEDTLS_ERR_CIPHER_AUTH_FAILED;
-        }
-
-        if (ret != 0) {
-            goto cleanup;
-        }
-        memset(output + Plen, 0, padlen);
-        *out_len = Plen;
-    } else {
-        ret = MBEDTLS_ERR_CIPHER_FEATURE_UNAVAILABLE;
-        goto cleanup;
-    }
-
-cleanup:
-    if (ret != 0) {
-        memset(output, 0, *out_len);
-        *out_len = 0;
-    }
-
-    mbedtls_platform_zeroize(&diff, sizeof(diff));
-    mbedtls_platform_zeroize(A, sizeof(A));
-
-    return ret;
-}
-
-#endif /* !MBEDTLS_NIST_KW_ALT */
-
-#if defined(MBEDTLS_SELF_TEST) && defined(MBEDTLS_AES_C)
-
-/*
- * Test vectors taken from NIST
- * https://csrc.nist.gov/Projects/Cryptographic-Algorithm-Validation-Program/CAVP-TESTING-BLOCK-CIPHER-MODES#KW
- */
-static const unsigned int key_len[] = {
-    16,
-#if !defined(MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH)
-    24,
-    32
-#endif
-};
-
-static const unsigned char kw_key[][32] = {
-    { 0x75, 0x75, 0xda, 0x3a, 0x93, 0x60, 0x7c, 0xc2,
-      0xbf, 0xd8, 0xce, 0xc7, 0xaa, 0xdf, 0xd9, 0xa6 },
-#if !defined(MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH)
-    { 0x2d, 0x85, 0x26, 0x08, 0x1d, 0x02, 0xfb, 0x5b,
-      0x85, 0xf6, 0x9a, 0xc2, 0x86, 0xec, 0xd5, 0x7d,
-      0x40, 0xdf, 0x5d, 0xf3, 0x49, 0x47, 0x44, 0xd3 },
-    { 0x11, 0x2a, 0xd4, 0x1b, 0x48, 0x56, 0xc7, 0x25,
-      0x4a, 0x98, 0x48, 0xd3, 0x0f, 0xdd, 0x78, 0x33,
-      0x5b, 0x03, 0x9a, 0x48, 0xa8, 0x96, 0x2c, 0x4d,
-      0x1c, 0xb7, 0x8e, 0xab, 0xd5, 0xda, 0xd7, 0x88 }
-#endif
-};
-
-static const unsigned char kw_msg[][40] = {
-    { 0x42, 0x13, 0x6d, 0x3c, 0x38, 0x4a, 0x3e, 0xea,
-      0xc9, 0x5a, 0x06, 0x6f, 0xd2, 0x8f, 0xed, 0x3f },
-#if !defined(MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH)
-    { 0x95, 0xc1, 0x1b, 0xf5, 0x35, 0x3a, 0xfe, 0xdb,
-      0x98, 0xfd, 0xd6, 0xc8, 0xca, 0x6f, 0xdb, 0x6d,
-      0xa5, 0x4b, 0x74, 0xb4, 0x99, 0x0f, 0xdc, 0x45,
-      0xc0, 0x9d, 0x15, 0x8f, 0x51, 0xce, 0x62, 0x9d,
-      0xe2, 0xaf, 0x26, 0xe3, 0x25, 0x0e, 0x6b, 0x4c },
-    { 0x1b, 0x20, 0xbf, 0x19, 0x90, 0xb0, 0x65, 0xd7,
-      0x98, 0xe1, 0xb3, 0x22, 0x64, 0xad, 0x50, 0xa8,
-      0x74, 0x74, 0x92, 0xba, 0x09, 0xa0, 0x4d, 0xd1 }
-#endif
-};
-
-static const size_t kw_msg_len[] = {
-    16,
-#if !defined(MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH)
-    40,
-    24
-#endif
-};
-static const size_t kw_out_len[] = {
-    24,
-#if !defined(MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH)
-    48,
-    32
-#endif
-};
-static const unsigned char kw_res[][48] = {
-    { 0x03, 0x1f, 0x6b, 0xd7, 0xe6, 0x1e, 0x64, 0x3d,
-      0xf6, 0x85, 0x94, 0x81, 0x6f, 0x64, 0xca, 0xa3,
-      0xf5, 0x6f, 0xab, 0xea, 0x25, 0x48, 0xf5, 0xfb },
-#if !defined(MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH)
-    { 0x44, 0x3c, 0x6f, 0x15, 0x09, 0x83, 0x71, 0x91,
-      0x3e, 0x5c, 0x81, 0x4c, 0xa1, 0xa0, 0x42, 0xec,
-      0x68, 0x2f, 0x7b, 0x13, 0x6d, 0x24, 0x3a, 0x4d,
-      0x6c, 0x42, 0x6f, 0xc6, 0x97, 0x15, 0x63, 0xe8,
-      0xa1, 0x4a, 0x55, 0x8e, 0x09, 0x64, 0x16, 0x19,
-      0xbf, 0x03, 0xfc, 0xaf, 0x90, 0xb1, 0xfc, 0x2d },
-    { 0xba, 0x8a, 0x25, 0x9a, 0x47, 0x1b, 0x78, 0x7d,
-      0xd5, 0xd5, 0x40, 0xec, 0x25, 0xd4, 0x3d, 0x87,
-      0x20, 0x0f, 0xda, 0xdc, 0x6d, 0x1f, 0x05, 0xd9,
-      0x16, 0x58, 0x4f, 0xa9, 0xf6, 0xcb, 0xf5, 0x12 }
-#endif
-};
-
-static const unsigned char kwp_key[][32] = {
-    { 0x78, 0x65, 0xe2, 0x0f, 0x3c, 0x21, 0x65, 0x9a,
-      0xb4, 0x69, 0x0b, 0x62, 0x9c, 0xdf, 0x3c, 0xc4 },
-#if !defined(MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH)
-    { 0xf5, 0xf8, 0x96, 0xa3, 0xbd, 0x2f, 0x4a, 0x98,
-      0x23, 0xef, 0x16, 0x2b, 0x00, 0xb8, 0x05, 0xd7,
-      0xde, 0x1e, 0xa4, 0x66, 0x26, 0x96, 0xa2, 0x58 },
-    { 0x95, 0xda, 0x27, 0x00, 0xca, 0x6f, 0xd9, 0xa5,
-      0x25, 0x54, 0xee, 0x2a, 0x8d, 0xf1, 0x38, 0x6f,
-      0x5b, 0x94, 0xa1, 0xa6, 0x0e, 0xd8, 0xa4, 0xae,
-      0xf6, 0x0a, 0x8d, 0x61, 0xab, 0x5f, 0x22, 0x5a }
-#endif
-};
-
-static const unsigned char kwp_msg[][31] = {
-    { 0xbd, 0x68, 0x43, 0xd4, 0x20, 0x37, 0x8d, 0xc8,
-      0x96 },
-#if !defined(MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH)
-    { 0x6c, 0xcd, 0xd5, 0x85, 0x18, 0x40, 0x97, 0xeb,
-      0xd5, 0xc3, 0xaf, 0x3e, 0x47, 0xd0, 0x2c, 0x19,
-      0x14, 0x7b, 0x4d, 0x99, 0x5f, 0x96, 0x43, 0x66,
-      0x91, 0x56, 0x75, 0x8c, 0x13, 0x16, 0x8f },
-    { 0xd1 }
-#endif
-};
-static const size_t kwp_msg_len[] = {
-    9,
-#if !defined(MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH)
-    31,
-    1
-#endif
-};
-
-static const unsigned char kwp_res[][48] = {
-    { 0x41, 0xec, 0xa9, 0x56, 0xd4, 0xaa, 0x04, 0x7e,
-      0xb5, 0xcf, 0x4e, 0xfe, 0x65, 0x96, 0x61, 0xe7,
-      0x4d, 0xb6, 0xf8, 0xc5, 0x64, 0xe2, 0x35, 0x00 },
-#if !defined(MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH)
-    { 0x4e, 0x9b, 0xc2, 0xbc, 0xbc, 0x6c, 0x1e, 0x13,
-      0xd3, 0x35, 0xbc, 0xc0, 0xf7, 0x73, 0x6a, 0x88,
-      0xfa, 0x87, 0x53, 0x66, 0x15, 0xbb, 0x8e, 0x63,
-      0x8b, 0xcc, 0x81, 0x66, 0x84, 0x68, 0x17, 0x90,
-      0x67, 0xcf, 0xa9, 0x8a, 0x9d, 0x0e, 0x33, 0x26 },
-    { 0x06, 0xba, 0x7a, 0xe6, 0xf3, 0x24, 0x8c, 0xfd,
-      0xcf, 0x26, 0x75, 0x07, 0xfa, 0x00, 0x1b, 0xc4  }
-#endif
-};
-static const size_t kwp_out_len[] = {
-    24,
-#if !defined(MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH)
-    40,
-    16
-#endif
-};
-
-int mbedtls_nist_kw_self_test(int verbose)
-{
-    mbedtls_nist_kw_context ctx;
-    unsigned char out[48];
-    size_t olen;
-    int i;
-    int ret = 0;
-    mbedtls_nist_kw_init(&ctx);
-
-    /*
-     * KW mode
-     */
-    {
-        static const int num_tests = sizeof(kw_key) / sizeof(*kw_key);
-
-        for (i = 0; i < num_tests; i++) {
-            if (verbose != 0) {
-                mbedtls_printf("  KW-AES-%u ", (unsigned int) key_len[i] * 8);
-            }
-
-            ret = mbedtls_nist_kw_setkey(&ctx, MBEDTLS_CIPHER_ID_AES,
-                                         kw_key[i], key_len[i] * 8, 1);
-            if (ret != 0) {
-                if (verbose != 0) {
-                    mbedtls_printf("  KW: setup failed ");
-                }
-
-                goto end;
-            }
-
-            ret = mbedtls_nist_kw_wrap(&ctx, MBEDTLS_KW_MODE_KW, kw_msg[i],
-                                       kw_msg_len[i], out, &olen, sizeof(out));
-            if (ret != 0 || kw_out_len[i] != olen ||
-                memcmp(out, kw_res[i], kw_out_len[i]) != 0) {
-                if (verbose != 0) {
-                    mbedtls_printf("failed. ");
-                }
-
-                ret = 1;
-                goto end;
-            }
-
-            if ((ret = mbedtls_nist_kw_setkey(&ctx, MBEDTLS_CIPHER_ID_AES,
-                                              kw_key[i], key_len[i] * 8, 0))
-                != 0) {
-                if (verbose != 0) {
-                    mbedtls_printf("  KW: setup failed ");
-                }
-
-                goto end;
-            }
-
-            ret = mbedtls_nist_kw_unwrap(&ctx, MBEDTLS_KW_MODE_KW,
-                                         out, olen, out, &olen, sizeof(out));
-
-            if (ret != 0 || olen != kw_msg_len[i] ||
-                memcmp(out, kw_msg[i], kw_msg_len[i]) != 0) {
-                if (verbose != 0) {
-                    mbedtls_printf("failed\n");
-                }
-
-                ret = 1;
-                goto end;
-            }
-
-            if (verbose != 0) {
-                mbedtls_printf(" passed\n");
-            }
-        }
-    }
-
-    /*
-     * KWP mode
-     */
-    {
-        static const int num_tests = sizeof(kwp_key) / sizeof(*kwp_key);
-
-        for (i = 0; i < num_tests; i++) {
-            olen = sizeof(out);
-            if (verbose != 0) {
-                mbedtls_printf("  KWP-AES-%u ", (unsigned int) key_len[i] * 8);
-            }
-
-            ret = mbedtls_nist_kw_setkey(&ctx, MBEDTLS_CIPHER_ID_AES, kwp_key[i],
-                                         key_len[i] * 8, 1);
-            if (ret  != 0) {
-                if (verbose != 0) {
-                    mbedtls_printf("  KWP: setup failed ");
-                }
-
-                goto end;
-            }
-            ret = mbedtls_nist_kw_wrap(&ctx, MBEDTLS_KW_MODE_KWP, kwp_msg[i],
-                                       kwp_msg_len[i], out, &olen, sizeof(out));
-
-            if (ret != 0 || kwp_out_len[i] != olen ||
-                memcmp(out, kwp_res[i], kwp_out_len[i]) != 0) {
-                if (verbose != 0) {
-                    mbedtls_printf("failed. ");
-                }
-
-                ret = 1;
-                goto end;
-            }
-
-            if ((ret = mbedtls_nist_kw_setkey(&ctx, MBEDTLS_CIPHER_ID_AES,
-                                              kwp_key[i], key_len[i] * 8, 0))
-                != 0) {
-                if (verbose != 0) {
-                    mbedtls_printf("  KWP: setup failed ");
-                }
-
-                goto end;
-            }
-
-            ret = mbedtls_nist_kw_unwrap(&ctx, MBEDTLS_KW_MODE_KWP, out,
-                                         olen, out, &olen, sizeof(out));
-
-            if (ret != 0 || olen != kwp_msg_len[i] ||
-                memcmp(out, kwp_msg[i], kwp_msg_len[i]) != 0) {
-                if (verbose != 0) {
-                    mbedtls_printf("failed. ");
-                }
-
-                ret = 1;
-                goto end;
-            }
-
-            if (verbose != 0) {
-                mbedtls_printf(" passed\n");
-            }
-        }
-    }
-end:
-    mbedtls_nist_kw_free(&ctx);
-
-    if (verbose != 0) {
-        mbedtls_printf("\n");
-    }
-
-    return ret;
-}
-
-#endif /* MBEDTLS_SELF_TEST && MBEDTLS_AES_C */
-
-#endif /* MBEDTLS_NIST_KW_C */
diff --git a/deps/LIEF/third-party/mbedtls/library/oid.c b/deps/LIEF/third-party/mbedtls/library/oid.c
deleted file mode 100644
index 1d6b1eb866b..00000000000
--- a/deps/LIEF/third-party/mbedtls/library/oid.c
+++ /dev/null
@@ -1,1166 +0,0 @@
-/**
- * \file oid.c
- *
- * \brief Object Identifier (OID) database
- *
- *  Copyright The Mbed TLS Contributors
- *  SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
- */
-
-#include "common.h"
-
-#if defined(MBEDTLS_OID_C)
-
-#include "mbedtls/oid.h"
-#include "mbedtls/rsa.h"
-#include "mbedtls/error.h"
-#include "mbedtls/pk.h"
-
-#include <stdio.h>
-#include <string.h>
-
-#include "mbedtls/platform.h"
-
-/*
- * Macro to automatically add the size of #define'd OIDs
- */
-#define ADD_LEN(s)      s, MBEDTLS_OID_SIZE(s)
-
-/*
- * Macro to generate mbedtls_oid_descriptor_t
- */
-#if !defined(MBEDTLS_X509_REMOVE_INFO)
-#define OID_DESCRIPTOR(s, name, description)  { ADD_LEN(s), name, description }
-#define NULL_OID_DESCRIPTOR                   { NULL, 0, NULL, NULL }
-#else
-#define OID_DESCRIPTOR(s, name, description)  { ADD_LEN(s) }
-#define NULL_OID_DESCRIPTOR                   { NULL, 0 }
-#endif
-
-/*
- * Macro to generate an internal function for oid_XXX_from_asn1() (used by
- * the other functions)
- */
-#define FN_OID_TYPED_FROM_ASN1(TYPE_T, NAME, LIST)                    \
-    static const TYPE_T *oid_ ## NAME ## _from_asn1(                   \
-        const mbedtls_asn1_buf *oid)     \
-    {                                                                   \
-        const TYPE_T *p = (LIST);                                       \
-        const mbedtls_oid_descriptor_t *cur =                           \
-            (const mbedtls_oid_descriptor_t *) p;                       \
-        if (p == NULL || oid == NULL) return NULL;                  \
-        while (cur->asn1 != NULL) {                                    \
-            if (cur->asn1_len == oid->len &&                            \
-                memcmp(cur->asn1, oid->p, oid->len) == 0) {          \
-                return p;                                            \
-            }                                                           \
-            p++;                                                        \
-            cur = (const mbedtls_oid_descriptor_t *) p;                 \
-        }                                                               \
-        return NULL;                                                 \
-    }
-
-#if !defined(MBEDTLS_X509_REMOVE_INFO)
-/*
- * Macro to generate a function for retrieving a single attribute from the
- * descriptor of an mbedtls_oid_descriptor_t wrapper.
- */
-#define FN_OID_GET_DESCRIPTOR_ATTR1(FN_NAME, TYPE_T, TYPE_NAME, ATTR1_TYPE, ATTR1) \
-    int FN_NAME(const mbedtls_asn1_buf *oid, ATTR1_TYPE * ATTR1)                  \
-    {                                                                       \
-        const TYPE_T *data = oid_ ## TYPE_NAME ## _from_asn1(oid);        \
-        if (data == NULL) return MBEDTLS_ERR_OID_NOT_FOUND;            \
-        *ATTR1 = data->descriptor.ATTR1;                                    \
-        return 0;                                                        \
-    }
-#endif /* MBEDTLS_X509_REMOVE_INFO */
-
-/*
- * Macro to generate a function for retrieving a single attribute from an
- * mbedtls_oid_descriptor_t wrapper.
- */
-#define FN_OID_GET_ATTR1(FN_NAME, TYPE_T, TYPE_NAME, ATTR1_TYPE, ATTR1) \
-    int FN_NAME(const mbedtls_asn1_buf *oid, ATTR1_TYPE * ATTR1)                  \
-    {                                                                       \
-        const TYPE_T *data = oid_ ## TYPE_NAME ## _from_asn1(oid);        \
-        if (data == NULL) return MBEDTLS_ERR_OID_NOT_FOUND;            \
-        *ATTR1 = data->ATTR1;                                               \
-        return 0;                                                        \
-    }
-
-/*
- * Macro to generate a function for retrieving two attributes from an
- * mbedtls_oid_descriptor_t wrapper.
- */
-#define FN_OID_GET_ATTR2(FN_NAME, TYPE_T, TYPE_NAME, ATTR1_TYPE, ATTR1,     \
-                         ATTR2_TYPE, ATTR2)                                 \
-    int FN_NAME(const mbedtls_asn1_buf *oid, ATTR1_TYPE * ATTR1,               \
-                ATTR2_TYPE * ATTR2)              \
-    {                                                                           \
-        const TYPE_T *data = oid_ ## TYPE_NAME ## _from_asn1(oid);            \
-        if (data == NULL) return MBEDTLS_ERR_OID_NOT_FOUND;                 \
-        *(ATTR1) = data->ATTR1;                                                 \
-        *(ATTR2) = data->ATTR2;                                                 \
-        return 0;                                                            \
-    }
-
-/*
- * Macro to generate a function for retrieving the OID based on a single
- * attribute from a mbedtls_oid_descriptor_t wrapper.
- */
-#define FN_OID_GET_OID_BY_ATTR1(FN_NAME, TYPE_T, LIST, ATTR1_TYPE, ATTR1)   \
-    int FN_NAME(ATTR1_TYPE ATTR1, const char **oid, size_t *olen)             \
-    {                                                                           \
-        const TYPE_T *cur = (LIST);                                             \
-        while (cur->descriptor.asn1 != NULL) {                                 \
-            if (cur->ATTR1 == (ATTR1)) {                                       \
-                *oid = cur->descriptor.asn1;                                    \
-                *olen = cur->descriptor.asn1_len;                               \
-                return 0;                                                    \
-            }                                                                   \
-            cur++;                                                              \
-        }                                                                       \
-        return MBEDTLS_ERR_OID_NOT_FOUND;                                    \
-    }
-
-/*
- * Macro to generate a function for retrieving the OID based on two
- * attributes from a mbedtls_oid_descriptor_t wrapper.
- */
-#define FN_OID_GET_OID_BY_ATTR2(FN_NAME, TYPE_T, LIST, ATTR1_TYPE, ATTR1,   \
-                                ATTR2_TYPE, ATTR2)                          \
-    int FN_NAME(ATTR1_TYPE ATTR1, ATTR2_TYPE ATTR2, const char **oid,         \
-                size_t *olen)                                                 \
-    {                                                                           \
-        const TYPE_T *cur = (LIST);                                             \
-        while (cur->descriptor.asn1 != NULL) {                                 \
-            if (cur->ATTR1 == (ATTR1) && cur->ATTR2 == (ATTR2)) {              \
-                *oid = cur->descriptor.asn1;                                    \
-                *olen = cur->descriptor.asn1_len;                               \
-                return 0;                                                    \
-            }                                                                   \
-            cur++;                                                              \
-        }                                                                       \
-        return MBEDTLS_ERR_OID_NOT_FOUND;                                   \
-    }
-
-/*
- * For X520 attribute types
- */
-typedef struct {
-    mbedtls_oid_descriptor_t    descriptor;
-    const char          *short_name;
-} oid_x520_attr_t;
-
-static const oid_x520_attr_t oid_x520_attr_type[] =
-{
-    {
-        OID_DESCRIPTOR(MBEDTLS_OID_AT_CN,          "id-at-commonName",               "Common Name"),
-        "CN",
-    },
-    {
-        OID_DESCRIPTOR(MBEDTLS_OID_AT_COUNTRY,     "id-at-countryName",              "Country"),
-        "C",
-    },
-    {
-        OID_DESCRIPTOR(MBEDTLS_OID_AT_LOCALITY,    "id-at-locality",                 "Locality"),
-        "L",
-    },
-    {
-        OID_DESCRIPTOR(MBEDTLS_OID_AT_STATE,       "id-at-state",                    "State"),
-        "ST",
-    },
-    {
-        OID_DESCRIPTOR(MBEDTLS_OID_AT_ORGANIZATION, "id-at-organizationName",
-                       "Organization"),
-        "O",
-    },
-    {
-        OID_DESCRIPTOR(MBEDTLS_OID_AT_ORG_UNIT,    "id-at-organizationalUnitName",   "Org Unit"),
-        "OU",
-    },
-    {
-        OID_DESCRIPTOR(MBEDTLS_OID_PKCS9_EMAIL,
-                       "emailAddress",
-                       "E-mail address"),
-        "emailAddress",
-    },
-    {
-        OID_DESCRIPTOR(MBEDTLS_OID_AT_SERIAL_NUMBER,
-                       "id-at-serialNumber",
-                       "Serial number"),
-        "serialNumber",
-    },
-    {
-        OID_DESCRIPTOR(MBEDTLS_OID_AT_POSTAL_ADDRESS,
-                       "id-at-postalAddress",
-                       "Postal address"),
-        "postalAddress",
-    },
-    {
-        OID_DESCRIPTOR(MBEDTLS_OID_AT_POSTAL_CODE, "id-at-postalCode",               "Postal code"),
-        "postalCode",
-    },
-    {
-        OID_DESCRIPTOR(MBEDTLS_OID_AT_SUR_NAME,    "id-at-surName",                  "Surname"),
-        "SN",
-    },
-    {
-        OID_DESCRIPTOR(MBEDTLS_OID_AT_GIVEN_NAME,  "id-at-givenName",                "Given name"),
-        "GN",
-    },
-    {
-        OID_DESCRIPTOR(MBEDTLS_OID_AT_INITIALS,    "id-at-initials",                 "Initials"),
-        "initials",
-    },
-    {
-        OID_DESCRIPTOR(MBEDTLS_OID_AT_GENERATION_QUALIFIER,
-                       "id-at-generationQualifier",
-                       "Generation qualifier"),
-        "generationQualifier",
-    },
-    {
-        OID_DESCRIPTOR(MBEDTLS_OID_AT_TITLE,       "id-at-title",                    "Title"),
-        "title",
-    },
-    {
-        OID_DESCRIPTOR(MBEDTLS_OID_AT_DN_QUALIFIER,
-                       "id-at-dnQualifier",
-                       "Distinguished Name qualifier"),
-        "dnQualifier",
-    },
-    {
-        OID_DESCRIPTOR(MBEDTLS_OID_AT_PSEUDONYM,   "id-at-pseudonym",                "Pseudonym"),
-        "pseudonym",
-    },
-    {
-        OID_DESCRIPTOR(MBEDTLS_OID_UID,            "id-uid",                         "User Id"),
-        "uid",
-    },
-    {
-        OID_DESCRIPTOR(MBEDTLS_OID_DOMAIN_COMPONENT,
-                       "id-domainComponent",
-                       "Domain component"),
-        "DC",
-    },
-    {
-        OID_DESCRIPTOR(MBEDTLS_OID_AT_UNIQUE_IDENTIFIER,
-                       "id-at-uniqueIdentifier",
-                       "Unique Identifier"),
-        "uniqueIdentifier",
-    },
-    {
-        NULL_OID_DESCRIPTOR,
-        NULL,
-    }
-};
-
-FN_OID_TYPED_FROM_ASN1(oid_x520_attr_t, x520_attr, oid_x520_attr_type)
-FN_OID_GET_ATTR1(mbedtls_oid_get_attr_short_name,
-                 oid_x520_attr_t,
-                 x520_attr,
-                 const char *,
-                 short_name)
-
-/*
- * For X509 extensions
- */
-typedef struct {
-    mbedtls_oid_descriptor_t    descriptor;
-    int                 ext_type;
-} oid_x509_ext_t;
-
-static const oid_x509_ext_t oid_x509_ext[] =
-{
-    {
-        OID_DESCRIPTOR(MBEDTLS_OID_BASIC_CONSTRAINTS,
-                       "id-ce-basicConstraints",
-                       "Basic Constraints"),
-        MBEDTLS_OID_X509_EXT_BASIC_CONSTRAINTS,
-    },
-    {
-        OID_DESCRIPTOR(MBEDTLS_OID_KEY_USAGE,            "id-ce-keyUsage",            "Key Usage"),
-        MBEDTLS_OID_X509_EXT_KEY_USAGE,
-    },
-    {
-        OID_DESCRIPTOR(MBEDTLS_OID_EXTENDED_KEY_USAGE,
-                       "id-ce-extKeyUsage",
-                       "Extended Key Usage"),
-        MBEDTLS_OID_X509_EXT_EXTENDED_KEY_USAGE,
-    },
-    {
-        OID_DESCRIPTOR(MBEDTLS_OID_SUBJECT_ALT_NAME,
-                       "id-ce-subjectAltName",
-                       "Subject Alt Name"),
-        MBEDTLS_OID_X509_EXT_SUBJECT_ALT_NAME,
-    },
-    {
-        OID_DESCRIPTOR(MBEDTLS_OID_NS_CERT_TYPE,
-                       "id-netscape-certtype",
-                       "Netscape Certificate Type"),
-        MBEDTLS_OID_X509_EXT_NS_CERT_TYPE,
-    },
-    {
-        OID_DESCRIPTOR(MBEDTLS_OID_CERTIFICATE_POLICIES,
-                       "id-ce-certificatePolicies",
-                       "Certificate Policies"),
-        MBEDTLS_OID_X509_EXT_CERTIFICATE_POLICIES,
-    },
-    {
-        OID_DESCRIPTOR(MBEDTLS_OID_SUBJECT_KEY_IDENTIFIER,
-                       "id-ce-subjectKeyIdentifier",
-                       "Subject Key Identifier"),
-        MBEDTLS_OID_X509_EXT_SUBJECT_KEY_IDENTIFIER,
-    },
-    {
-        OID_DESCRIPTOR(MBEDTLS_OID_AUTHORITY_KEY_IDENTIFIER,
-                       "id-ce-authorityKeyIdentifier",
-                       "Authority Key Identifier"),
-        MBEDTLS_OID_X509_EXT_AUTHORITY_KEY_IDENTIFIER,
-    },
-    {
-        NULL_OID_DESCRIPTOR,
-        0,
-    },
-};
-
-FN_OID_TYPED_FROM_ASN1(oid_x509_ext_t, x509_ext, oid_x509_ext)
-FN_OID_GET_ATTR1(mbedtls_oid_get_x509_ext_type, oid_x509_ext_t, x509_ext, int, ext_type)
-
-#if !defined(MBEDTLS_X509_REMOVE_INFO)
-static const mbedtls_oid_descriptor_t oid_ext_key_usage[] =
-{
-    OID_DESCRIPTOR(MBEDTLS_OID_SERVER_AUTH,
-                   "id-kp-serverAuth",
-                   "TLS Web Server Authentication"),
-    OID_DESCRIPTOR(MBEDTLS_OID_CLIENT_AUTH,
-                   "id-kp-clientAuth",
-                   "TLS Web Client Authentication"),
-    OID_DESCRIPTOR(MBEDTLS_OID_CODE_SIGNING,     "id-kp-codeSigning",     "Code Signing"),
-    OID_DESCRIPTOR(MBEDTLS_OID_EMAIL_PROTECTION, "id-kp-emailProtection", "E-mail Protection"),
-    OID_DESCRIPTOR(MBEDTLS_OID_TIME_STAMPING,    "id-kp-timeStamping",    "Time Stamping"),
-    OID_DESCRIPTOR(MBEDTLS_OID_OCSP_SIGNING,     "id-kp-OCSPSigning",     "OCSP Signing"),
-    OID_DESCRIPTOR(MBEDTLS_OID_WISUN_FAN,
-                   "id-kp-wisun-fan-device",
-                   "Wi-SUN Alliance Field Area Network (FAN)"),
-    NULL_OID_DESCRIPTOR,
-};
-
-FN_OID_TYPED_FROM_ASN1(mbedtls_oid_descriptor_t, ext_key_usage, oid_ext_key_usage)
-FN_OID_GET_ATTR1(mbedtls_oid_get_extended_key_usage,
-                 mbedtls_oid_descriptor_t,
-                 ext_key_usage,
-                 const char *,
-                 description)
-
-static const mbedtls_oid_descriptor_t oid_certificate_policies[] =
-{
-    OID_DESCRIPTOR(MBEDTLS_OID_ANY_POLICY,      "anyPolicy",       "Any Policy"),
-    NULL_OID_DESCRIPTOR,
-};
-
-FN_OID_TYPED_FROM_ASN1(mbedtls_oid_descriptor_t, certificate_policies, oid_certificate_policies)
-FN_OID_GET_ATTR1(mbedtls_oid_get_certificate_policies,
-                 mbedtls_oid_descriptor_t,
-                 certificate_policies,
-                 const char *,
-                 description)
-#endif /* MBEDTLS_X509_REMOVE_INFO */
-
-/*
- * For SignatureAlgorithmIdentifier
- */
-typedef struct {
-    mbedtls_oid_descriptor_t    descriptor;
-    mbedtls_md_type_t           md_alg;
-    mbedtls_pk_type_t           pk_alg;
-} oid_sig_alg_t;
-
-static const oid_sig_alg_t oid_sig_alg[] =
-{
-#if defined(MBEDTLS_RSA_C)
-#if defined(MBEDTLS_MD_CAN_MD5)
-    {
-        OID_DESCRIPTOR(MBEDTLS_OID_PKCS1_MD5,        "md5WithRSAEncryption",     "RSA with MD5"),
-        MBEDTLS_MD_MD5,      MBEDTLS_PK_RSA,
-    },
-#endif /* MBEDTLS_MD_CAN_MD5 */
-#if defined(MBEDTLS_MD_CAN_SHA1)
-    {
-        OID_DESCRIPTOR(MBEDTLS_OID_PKCS1_SHA1,       "sha-1WithRSAEncryption",   "RSA with SHA1"),
-        MBEDTLS_MD_SHA1,     MBEDTLS_PK_RSA,
-    },
-#endif /* MBEDTLS_MD_CAN_SHA1 */
-#if defined(MBEDTLS_MD_CAN_SHA224)
-    {
-        OID_DESCRIPTOR(MBEDTLS_OID_PKCS1_SHA224,     "sha224WithRSAEncryption",
-                       "RSA with SHA-224"),
-        MBEDTLS_MD_SHA224,   MBEDTLS_PK_RSA,
-    },
-#endif /* MBEDTLS_MD_CAN_SHA224 */
-#if defined(MBEDTLS_MD_CAN_SHA256)
-    {
-        OID_DESCRIPTOR(MBEDTLS_OID_PKCS1_SHA256,     "sha256WithRSAEncryption",
-                       "RSA with SHA-256"),
-        MBEDTLS_MD_SHA256,   MBEDTLS_PK_RSA,
-    },
-#endif /* MBEDTLS_MD_CAN_SHA256 */
-#if defined(MBEDTLS_MD_CAN_SHA384)
-    {
-        OID_DESCRIPTOR(MBEDTLS_OID_PKCS1_SHA384,     "sha384WithRSAEncryption",
-                       "RSA with SHA-384"),
-        MBEDTLS_MD_SHA384,   MBEDTLS_PK_RSA,
-    },
-#endif /* MBEDTLS_MD_CAN_SHA384 */
-#if defined(MBEDTLS_MD_CAN_SHA512)
-    {
-        OID_DESCRIPTOR(MBEDTLS_OID_PKCS1_SHA512,     "sha512WithRSAEncryption",
-                       "RSA with SHA-512"),
-        MBEDTLS_MD_SHA512,   MBEDTLS_PK_RSA,
-    },
-#endif /* MBEDTLS_MD_CAN_SHA512 */
-#if defined(MBEDTLS_MD_CAN_SHA1)
-    {
-        OID_DESCRIPTOR(MBEDTLS_OID_RSA_SHA_OBS,      "sha-1WithRSAEncryption",   "RSA with SHA1"),
-        MBEDTLS_MD_SHA1,     MBEDTLS_PK_RSA,
-    },
-#endif /* MBEDTLS_MD_CAN_SHA1 */
-#endif /* MBEDTLS_RSA_C */
-#if defined(MBEDTLS_PK_CAN_ECDSA_SOME)
-#if defined(MBEDTLS_MD_CAN_SHA1)
-    {
-        OID_DESCRIPTOR(MBEDTLS_OID_ECDSA_SHA1,       "ecdsa-with-SHA1",      "ECDSA with SHA1"),
-        MBEDTLS_MD_SHA1,     MBEDTLS_PK_ECDSA,
-    },
-#endif /* MBEDTLS_MD_CAN_SHA1 */
-#if defined(MBEDTLS_MD_CAN_SHA224)
-    {
-        OID_DESCRIPTOR(MBEDTLS_OID_ECDSA_SHA224,     "ecdsa-with-SHA224",    "ECDSA with SHA224"),
-        MBEDTLS_MD_SHA224,   MBEDTLS_PK_ECDSA,
-    },
-#endif
-#if defined(MBEDTLS_MD_CAN_SHA256)
-    {
-        OID_DESCRIPTOR(MBEDTLS_OID_ECDSA_SHA256,     "ecdsa-with-SHA256",    "ECDSA with SHA256"),
-        MBEDTLS_MD_SHA256,   MBEDTLS_PK_ECDSA,
-    },
-#endif /* MBEDTLS_MD_CAN_SHA256 */
-#if defined(MBEDTLS_MD_CAN_SHA384)
-    {
-        OID_DESCRIPTOR(MBEDTLS_OID_ECDSA_SHA384,     "ecdsa-with-SHA384",    "ECDSA with SHA384"),
-        MBEDTLS_MD_SHA384,   MBEDTLS_PK_ECDSA,
-    },
-#endif /* MBEDTLS_MD_CAN_SHA384 */
-#if defined(MBEDTLS_MD_CAN_SHA512)
-    {
-        OID_DESCRIPTOR(MBEDTLS_OID_ECDSA_SHA512,     "ecdsa-with-SHA512",    "ECDSA with SHA512"),
-        MBEDTLS_MD_SHA512,   MBEDTLS_PK_ECDSA,
-    },
-#endif /* MBEDTLS_MD_CAN_SHA512 */
-#endif /* MBEDTLS_PK_CAN_ECDSA_SOME */
-#if defined(MBEDTLS_RSA_C)
-    {
-        OID_DESCRIPTOR(MBEDTLS_OID_RSASSA_PSS,        "RSASSA-PSS",           "RSASSA-PSS"),
-        MBEDTLS_MD_NONE,     MBEDTLS_PK_RSASSA_PSS,
-    },
-#endif /* MBEDTLS_RSA_C */
-    {
-        NULL_OID_DESCRIPTOR,
-        MBEDTLS_MD_NONE, MBEDTLS_PK_NONE,
-    },
-};
-
-FN_OID_TYPED_FROM_ASN1(oid_sig_alg_t, sig_alg, oid_sig_alg)
-
-#if !defined(MBEDTLS_X509_REMOVE_INFO)
-FN_OID_GET_DESCRIPTOR_ATTR1(mbedtls_oid_get_sig_alg_desc,
-                            oid_sig_alg_t,
-                            sig_alg,
-                            const char *,
-                            description)
-#endif
-
-FN_OID_GET_ATTR2(mbedtls_oid_get_sig_alg,
-                 oid_sig_alg_t,
-                 sig_alg,
-                 mbedtls_md_type_t,
-                 md_alg,
-                 mbedtls_pk_type_t,
-                 pk_alg)
-FN_OID_GET_OID_BY_ATTR2(mbedtls_oid_get_oid_by_sig_alg,
-                        oid_sig_alg_t,
-                        oid_sig_alg,
-                        mbedtls_pk_type_t,
-                        pk_alg,
-                        mbedtls_md_type_t,
-                        md_alg)
-
-/*
- * For PublicKeyInfo (PKCS1, RFC 5480)
- */
-typedef struct {
-    mbedtls_oid_descriptor_t    descriptor;
-    mbedtls_pk_type_t           pk_alg;
-} oid_pk_alg_t;
-
-static const oid_pk_alg_t oid_pk_alg[] =
-{
-    {
-        OID_DESCRIPTOR(MBEDTLS_OID_PKCS1_RSA,           "rsaEncryption",    "RSA"),
-        MBEDTLS_PK_RSA,
-    },
-    {
-        OID_DESCRIPTOR(MBEDTLS_OID_EC_ALG_UNRESTRICTED, "id-ecPublicKey",   "Generic EC key"),
-        MBEDTLS_PK_ECKEY,
-    },
-    {
-        OID_DESCRIPTOR(MBEDTLS_OID_EC_ALG_ECDH,         "id-ecDH",          "EC key for ECDH"),
-        MBEDTLS_PK_ECKEY_DH,
-    },
-    {
-        NULL_OID_DESCRIPTOR,
-        MBEDTLS_PK_NONE,
-    },
-};
-
-FN_OID_TYPED_FROM_ASN1(oid_pk_alg_t, pk_alg, oid_pk_alg)
-FN_OID_GET_ATTR1(mbedtls_oid_get_pk_alg, oid_pk_alg_t, pk_alg, mbedtls_pk_type_t, pk_alg)
-FN_OID_GET_OID_BY_ATTR1(mbedtls_oid_get_oid_by_pk_alg,
-                        oid_pk_alg_t,
-                        oid_pk_alg,
-                        mbedtls_pk_type_t,
-                        pk_alg)
-
-#if defined(MBEDTLS_PK_HAVE_ECC_KEYS)
-/*
- * For elliptic curves that use namedCurve inside ECParams (RFC 5480)
- */
-typedef struct {
-    mbedtls_oid_descriptor_t    descriptor;
-    mbedtls_ecp_group_id        grp_id;
-} oid_ecp_grp_t;
-
-static const oid_ecp_grp_t oid_ecp_grp[] =
-{
-#if defined(MBEDTLS_ECP_HAVE_SECP192R1)
-    {
-        OID_DESCRIPTOR(MBEDTLS_OID_EC_GRP_SECP192R1, "secp192r1",    "secp192r1"),
-        MBEDTLS_ECP_DP_SECP192R1,
-    },
-#endif /* MBEDTLS_ECP_HAVE_SECP192R1 */
-#if defined(MBEDTLS_ECP_HAVE_SECP224R1)
-    {
-        OID_DESCRIPTOR(MBEDTLS_OID_EC_GRP_SECP224R1, "secp224r1",    "secp224r1"),
-        MBEDTLS_ECP_DP_SECP224R1,
-    },
-#endif /* MBEDTLS_ECP_HAVE_SECP224R1 */
-#if defined(MBEDTLS_ECP_HAVE_SECP256R1)
-    {
-        OID_DESCRIPTOR(MBEDTLS_OID_EC_GRP_SECP256R1, "secp256r1",    "secp256r1"),
-        MBEDTLS_ECP_DP_SECP256R1,
-    },
-#endif /* MBEDTLS_ECP_HAVE_SECP256R1 */
-#if defined(MBEDTLS_ECP_HAVE_SECP384R1)
-    {
-        OID_DESCRIPTOR(MBEDTLS_OID_EC_GRP_SECP384R1, "secp384r1",    "secp384r1"),
-        MBEDTLS_ECP_DP_SECP384R1,
-    },
-#endif /* MBEDTLS_ECP_HAVE_SECP384R1 */
-#if defined(MBEDTLS_ECP_HAVE_SECP521R1)
-    {
-        OID_DESCRIPTOR(MBEDTLS_OID_EC_GRP_SECP521R1, "secp521r1",    "secp521r1"),
-        MBEDTLS_ECP_DP_SECP521R1,
-    },
-#endif /* MBEDTLS_ECP_HAVE_SECP521R1 */
-#if defined(MBEDTLS_ECP_HAVE_SECP192K1)
-    {
-        OID_DESCRIPTOR(MBEDTLS_OID_EC_GRP_SECP192K1, "secp192k1",    "secp192k1"),
-        MBEDTLS_ECP_DP_SECP192K1,
-    },
-#endif /* MBEDTLS_ECP_HAVE_SECP192K1 */
-#if defined(MBEDTLS_ECP_HAVE_SECP224K1)
-    {
-        OID_DESCRIPTOR(MBEDTLS_OID_EC_GRP_SECP224K1, "secp224k1",    "secp224k1"),
-        MBEDTLS_ECP_DP_SECP224K1,
-    },
-#endif /* MBEDTLS_ECP_HAVE_SECP224K1 */
-#if defined(MBEDTLS_ECP_HAVE_SECP256K1)
-    {
-        OID_DESCRIPTOR(MBEDTLS_OID_EC_GRP_SECP256K1, "secp256k1",    "secp256k1"),
-        MBEDTLS_ECP_DP_SECP256K1,
-    },
-#endif /* MBEDTLS_ECP_HAVE_SECP256K1 */
-#if defined(MBEDTLS_ECP_HAVE_BP256R1)
-    {
-        OID_DESCRIPTOR(MBEDTLS_OID_EC_GRP_BP256R1,   "brainpoolP256r1", "brainpool256r1"),
-        MBEDTLS_ECP_DP_BP256R1,
-    },
-#endif /* MBEDTLS_ECP_HAVE_BP256R1 */
-#if defined(MBEDTLS_ECP_HAVE_BP384R1)
-    {
-        OID_DESCRIPTOR(MBEDTLS_OID_EC_GRP_BP384R1,   "brainpoolP384r1", "brainpool384r1"),
-        MBEDTLS_ECP_DP_BP384R1,
-    },
-#endif /* MBEDTLS_ECP_HAVE_BP384R1 */
-#if defined(MBEDTLS_ECP_HAVE_BP512R1)
-    {
-        OID_DESCRIPTOR(MBEDTLS_OID_EC_GRP_BP512R1,   "brainpoolP512r1", "brainpool512r1"),
-        MBEDTLS_ECP_DP_BP512R1,
-    },
-#endif /* MBEDTLS_ECP_HAVE_BP512R1 */
-    {
-        NULL_OID_DESCRIPTOR,
-        MBEDTLS_ECP_DP_NONE,
-    },
-};
-
-FN_OID_TYPED_FROM_ASN1(oid_ecp_grp_t, grp_id, oid_ecp_grp)
-FN_OID_GET_ATTR1(mbedtls_oid_get_ec_grp, oid_ecp_grp_t, grp_id, mbedtls_ecp_group_id, grp_id)
-FN_OID_GET_OID_BY_ATTR1(mbedtls_oid_get_oid_by_ec_grp,
-                        oid_ecp_grp_t,
-                        oid_ecp_grp,
-                        mbedtls_ecp_group_id,
-                        grp_id)
-
-/*
- * For Elliptic Curve algorithms that are directly
- * encoded in the AlgorithmIdentifier (RFC 8410)
- */
-typedef struct {
-    mbedtls_oid_descriptor_t    descriptor;
-    mbedtls_ecp_group_id        grp_id;
-} oid_ecp_grp_algid_t;
-
-static const oid_ecp_grp_algid_t oid_ecp_grp_algid[] =
-{
-#if defined(MBEDTLS_ECP_HAVE_CURVE25519)
-    {
-        OID_DESCRIPTOR(MBEDTLS_OID_X25519,               "X25519",       "X25519"),
-        MBEDTLS_ECP_DP_CURVE25519,
-    },
-#endif /* MBEDTLS_ECP_HAVE_CURVE25519 */
-#if defined(MBEDTLS_ECP_HAVE_CURVE448)
-    {
-        OID_DESCRIPTOR(MBEDTLS_OID_X448,                 "X448",         "X448"),
-        MBEDTLS_ECP_DP_CURVE448,
-    },
-#endif /* MBEDTLS_ECP_HAVE_CURVE448 */
-    {
-        NULL_OID_DESCRIPTOR,
-        MBEDTLS_ECP_DP_NONE,
-    },
-};
-
-FN_OID_TYPED_FROM_ASN1(oid_ecp_grp_algid_t, grp_id_algid, oid_ecp_grp_algid)
-FN_OID_GET_ATTR1(mbedtls_oid_get_ec_grp_algid,
-                 oid_ecp_grp_algid_t,
-                 grp_id_algid,
-                 mbedtls_ecp_group_id,
-                 grp_id)
-FN_OID_GET_OID_BY_ATTR1(mbedtls_oid_get_oid_by_ec_grp_algid,
-                        oid_ecp_grp_algid_t,
-                        oid_ecp_grp_algid,
-                        mbedtls_ecp_group_id,
-                        grp_id)
-#endif /* MBEDTLS_PK_HAVE_ECC_KEYS */
-
-#if defined(MBEDTLS_CIPHER_C)
-/*
- * For PKCS#5 PBES2 encryption algorithm
- */
-typedef struct {
-    mbedtls_oid_descriptor_t    descriptor;
-    mbedtls_cipher_type_t       cipher_alg;
-} oid_cipher_alg_t;
-
-static const oid_cipher_alg_t oid_cipher_alg[] =
-{
-    {
-        OID_DESCRIPTOR(MBEDTLS_OID_DES_CBC,              "desCBC",       "DES-CBC"),
-        MBEDTLS_CIPHER_DES_CBC,
-    },
-    {
-        OID_DESCRIPTOR(MBEDTLS_OID_DES_EDE3_CBC,         "des-ede3-cbc", "DES-EDE3-CBC"),
-        MBEDTLS_CIPHER_DES_EDE3_CBC,
-    },
-    {
-        OID_DESCRIPTOR(MBEDTLS_OID_AES_128_CBC,          "aes128-cbc", "AES128-CBC"),
-        MBEDTLS_CIPHER_AES_128_CBC,
-    },
-    {
-        OID_DESCRIPTOR(MBEDTLS_OID_AES_192_CBC,          "aes192-cbc", "AES192-CBC"),
-        MBEDTLS_CIPHER_AES_192_CBC,
-    },
-    {
-        OID_DESCRIPTOR(MBEDTLS_OID_AES_256_CBC,          "aes256-cbc", "AES256-CBC"),
-        MBEDTLS_CIPHER_AES_256_CBC,
-    },
-    {
-        NULL_OID_DESCRIPTOR,
-        MBEDTLS_CIPHER_NONE,
-    },
-};
-
-FN_OID_TYPED_FROM_ASN1(oid_cipher_alg_t, cipher_alg, oid_cipher_alg)
-FN_OID_GET_ATTR1(mbedtls_oid_get_cipher_alg,
-                 oid_cipher_alg_t,
-                 cipher_alg,
-                 mbedtls_cipher_type_t,
-                 cipher_alg)
-#endif /* MBEDTLS_CIPHER_C */
-
-/*
- * For digestAlgorithm
- */
-typedef struct {
-    mbedtls_oid_descriptor_t    descriptor;
-    mbedtls_md_type_t           md_alg;
-} oid_md_alg_t;
-
-static const oid_md_alg_t oid_md_alg[] =
-{
-#if defined(MBEDTLS_MD_CAN_MD5)
-    {
-        OID_DESCRIPTOR(MBEDTLS_OID_DIGEST_ALG_MD5,       "id-md5",       "MD5"),
-        MBEDTLS_MD_MD5,
-    },
-#endif
-#if defined(MBEDTLS_MD_CAN_SHA1)
-    {
-        OID_DESCRIPTOR(MBEDTLS_OID_DIGEST_ALG_SHA1,      "id-sha1",      "SHA-1"),
-        MBEDTLS_MD_SHA1,
-    },
-#endif
-#if defined(MBEDTLS_MD_CAN_SHA224)
-    {
-        OID_DESCRIPTOR(MBEDTLS_OID_DIGEST_ALG_SHA224,    "id-sha224",    "SHA-224"),
-        MBEDTLS_MD_SHA224,
-    },
-#endif
-#if defined(MBEDTLS_MD_CAN_SHA256)
-    {
-        OID_DESCRIPTOR(MBEDTLS_OID_DIGEST_ALG_SHA256,    "id-sha256",    "SHA-256"),
-        MBEDTLS_MD_SHA256,
-    },
-#endif
-#if defined(MBEDTLS_MD_CAN_SHA384)
-    {
-        OID_DESCRIPTOR(MBEDTLS_OID_DIGEST_ALG_SHA384,    "id-sha384",    "SHA-384"),
-        MBEDTLS_MD_SHA384,
-    },
-#endif
-#if defined(MBEDTLS_MD_CAN_SHA512)
-    {
-        OID_DESCRIPTOR(MBEDTLS_OID_DIGEST_ALG_SHA512,    "id-sha512",    "SHA-512"),
-        MBEDTLS_MD_SHA512,
-    },
-#endif
-#if defined(MBEDTLS_MD_CAN_RIPEMD160)
-    {
-        OID_DESCRIPTOR(MBEDTLS_OID_DIGEST_ALG_RIPEMD160, "id-ripemd160", "RIPEMD-160"),
-        MBEDTLS_MD_RIPEMD160,
-    },
-#endif
-#if defined(MBEDTLS_MD_CAN_SHA3_224)
-    {
-        OID_DESCRIPTOR(MBEDTLS_OID_DIGEST_ALG_SHA3_224,    "id-sha3-224",    "SHA-3-224"),
-        MBEDTLS_MD_SHA3_224,
-    },
-#endif
-#if defined(MBEDTLS_MD_CAN_SHA3_256)
-    {
-        OID_DESCRIPTOR(MBEDTLS_OID_DIGEST_ALG_SHA3_256,    "id-sha3-256",    "SHA-3-256"),
-        MBEDTLS_MD_SHA3_256,
-    },
-#endif
-#if defined(MBEDTLS_MD_CAN_SHA3_384)
-    {
-        OID_DESCRIPTOR(MBEDTLS_OID_DIGEST_ALG_SHA3_384,    "id-sha3-384",    "SHA-3-384"),
-        MBEDTLS_MD_SHA3_384,
-    },
-#endif
-#if defined(MBEDTLS_MD_CAN_SHA3_512)
-    {
-        OID_DESCRIPTOR(MBEDTLS_OID_DIGEST_ALG_SHA3_512,    "id-sha3-512",    "SHA-3-512"),
-        MBEDTLS_MD_SHA3_512,
-    },
-#endif
-    {
-        NULL_OID_DESCRIPTOR,
-        MBEDTLS_MD_NONE,
-    },
-};
-
-FN_OID_TYPED_FROM_ASN1(oid_md_alg_t, md_alg, oid_md_alg)
-FN_OID_GET_ATTR1(mbedtls_oid_get_md_alg, oid_md_alg_t, md_alg, mbedtls_md_type_t, md_alg)
-FN_OID_GET_OID_BY_ATTR1(mbedtls_oid_get_oid_by_md,
-                        oid_md_alg_t,
-                        oid_md_alg,
-                        mbedtls_md_type_t,
-                        md_alg)
-
-/*
- * For HMAC digestAlgorithm
- */
-typedef struct {
-    mbedtls_oid_descriptor_t    descriptor;
-    mbedtls_md_type_t           md_hmac;
-} oid_md_hmac_t;
-
-static const oid_md_hmac_t oid_md_hmac[] =
-{
-#if defined(MBEDTLS_MD_CAN_SHA1)
-    {
-        OID_DESCRIPTOR(MBEDTLS_OID_HMAC_SHA1,      "hmacSHA1",      "HMAC-SHA-1"),
-        MBEDTLS_MD_SHA1,
-    },
-#endif /* MBEDTLS_MD_CAN_SHA1 */
-#if defined(MBEDTLS_MD_CAN_SHA224)
-    {
-        OID_DESCRIPTOR(MBEDTLS_OID_HMAC_SHA224,    "hmacSHA224",    "HMAC-SHA-224"),
-        MBEDTLS_MD_SHA224,
-    },
-#endif /* MBEDTLS_MD_CAN_SHA224 */
-#if defined(MBEDTLS_MD_CAN_SHA256)
-    {
-        OID_DESCRIPTOR(MBEDTLS_OID_HMAC_SHA256,    "hmacSHA256",    "HMAC-SHA-256"),
-        MBEDTLS_MD_SHA256,
-    },
-#endif /* MBEDTLS_MD_CAN_SHA256 */
-#if defined(MBEDTLS_MD_CAN_SHA384)
-    {
-        OID_DESCRIPTOR(MBEDTLS_OID_HMAC_SHA384,    "hmacSHA384",    "HMAC-SHA-384"),
-        MBEDTLS_MD_SHA384,
-    },
-#endif /* MBEDTLS_MD_CAN_SHA384 */
-#if defined(MBEDTLS_MD_CAN_SHA512)
-    {
-        OID_DESCRIPTOR(MBEDTLS_OID_HMAC_SHA512,    "hmacSHA512",    "HMAC-SHA-512"),
-        MBEDTLS_MD_SHA512,
-    },
-#endif /* MBEDTLS_MD_CAN_SHA512 */
-#if defined(MBEDTLS_MD_CAN_SHA3_224)
-    {
-        OID_DESCRIPTOR(MBEDTLS_OID_HMAC_SHA3_224,    "hmacSHA3-224",    "HMAC-SHA3-224"),
-        MBEDTLS_MD_SHA3_224,
-    },
-#endif /* MBEDTLS_MD_CAN_SHA3_224 */
-#if defined(MBEDTLS_MD_CAN_SHA3_256)
-    {
-        OID_DESCRIPTOR(MBEDTLS_OID_HMAC_SHA3_256,    "hmacSHA3-256",    "HMAC-SHA3-256"),
-        MBEDTLS_MD_SHA3_256,
-    },
-#endif /* MBEDTLS_MD_CAN_SHA3_256 */
-#if defined(MBEDTLS_MD_CAN_SHA3_384)
-    {
-        OID_DESCRIPTOR(MBEDTLS_OID_HMAC_SHA3_384,    "hmacSHA3-384",    "HMAC-SHA3-384"),
-        MBEDTLS_MD_SHA3_384,
-    },
-#endif /* MBEDTLS_MD_CAN_SHA3_384 */
-#if defined(MBEDTLS_MD_CAN_SHA3_512)
-    {
-        OID_DESCRIPTOR(MBEDTLS_OID_HMAC_SHA3_512,    "hmacSHA3-512",    "HMAC-SHA3-512"),
-        MBEDTLS_MD_SHA3_512,
-    },
-#endif /* MBEDTLS_MD_CAN_SHA3_512 */
-#if defined(MBEDTLS_MD_CAN_RIPEMD160)
-    {
-        OID_DESCRIPTOR(MBEDTLS_OID_HMAC_RIPEMD160,    "hmacRIPEMD160",    "HMAC-RIPEMD160"),
-        MBEDTLS_MD_RIPEMD160,
-    },
-#endif /* MBEDTLS_MD_CAN_RIPEMD160 */
-    {
-        NULL_OID_DESCRIPTOR,
-        MBEDTLS_MD_NONE,
-    },
-};
-
-FN_OID_TYPED_FROM_ASN1(oid_md_hmac_t, md_hmac, oid_md_hmac)
-FN_OID_GET_ATTR1(mbedtls_oid_get_md_hmac, oid_md_hmac_t, md_hmac, mbedtls_md_type_t, md_hmac)
-
-#if defined(MBEDTLS_PKCS12_C) && defined(MBEDTLS_CIPHER_C)
-/*
- * For PKCS#12 PBEs
- */
-typedef struct {
-    mbedtls_oid_descriptor_t    descriptor;
-    mbedtls_md_type_t           md_alg;
-    mbedtls_cipher_type_t       cipher_alg;
-} oid_pkcs12_pbe_alg_t;
-
-static const oid_pkcs12_pbe_alg_t oid_pkcs12_pbe_alg[] =
-{
-    {
-        OID_DESCRIPTOR(MBEDTLS_OID_PKCS12_PBE_SHA1_DES3_EDE_CBC,
-                       "pbeWithSHAAnd3-KeyTripleDES-CBC",
-                       "PBE with SHA1 and 3-Key 3DES"),
-        MBEDTLS_MD_SHA1,      MBEDTLS_CIPHER_DES_EDE3_CBC,
-    },
-    {
-        OID_DESCRIPTOR(MBEDTLS_OID_PKCS12_PBE_SHA1_DES2_EDE_CBC,
-                       "pbeWithSHAAnd2-KeyTripleDES-CBC",
-                       "PBE with SHA1 and 2-Key 3DES"),
-        MBEDTLS_MD_SHA1,      MBEDTLS_CIPHER_DES_EDE_CBC,
-    },
-    {
-        NULL_OID_DESCRIPTOR,
-        MBEDTLS_MD_NONE, MBEDTLS_CIPHER_NONE,
-    },
-};
-
-FN_OID_TYPED_FROM_ASN1(oid_pkcs12_pbe_alg_t, pkcs12_pbe_alg, oid_pkcs12_pbe_alg)
-FN_OID_GET_ATTR2(mbedtls_oid_get_pkcs12_pbe_alg,
-                 oid_pkcs12_pbe_alg_t,
-                 pkcs12_pbe_alg,
-                 mbedtls_md_type_t,
-                 md_alg,
-                 mbedtls_cipher_type_t,
-                 cipher_alg)
-#endif /* MBEDTLS_PKCS12_C && MBEDTLS_CIPHER_C */
-
-/* Return the x.y.z.... style numeric string for the given OID */
-int mbedtls_oid_get_numeric_string(char *buf, size_t size,
-                                   const mbedtls_asn1_buf *oid)
-{
-    int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
-    char *p = buf;
-    size_t n = size;
-    unsigned int value = 0;
-
-    if (size > INT_MAX) {
-        /* Avoid overflow computing return value */
-        return MBEDTLS_ERR_ASN1_INVALID_LENGTH;
-    }
-
-    if (oid->len <= 0) {
-        /* OID must not be empty */
-        return MBEDTLS_ERR_ASN1_OUT_OF_DATA;
-    }
-
-    for (size_t i = 0; i < oid->len; i++) {
-        /* Prevent overflow in value. */
-        if (value > (UINT_MAX >> 7)) {
-            return MBEDTLS_ERR_ASN1_INVALID_DATA;
-        }
-        if ((value == 0) && ((oid->p[i]) == 0x80)) {
-            /* Overlong encoding is not allowed */
-            return MBEDTLS_ERR_ASN1_INVALID_DATA;
-        }
-
-        value <<= 7;
-        value |= oid->p[i] & 0x7F;
-
-        if (!(oid->p[i] & 0x80)) {
-            /* Last byte */
-            if (n == size) {
-                int component1;
-                unsigned int component2;
-                /* First subidentifier contains first two OID components */
-                if (value >= 80) {
-                    component1 = '2';
-                    component2 = value - 80;
-                } else if (value >= 40) {
-                    component1 = '1';
-                    component2 = value - 40;
-                } else {
-                    component1 = '0';
-                    component2 = value;
-                }
-                ret = mbedtls_snprintf(p, n, "%c.%u", component1, component2);
-            } else {
-                ret = mbedtls_snprintf(p, n, ".%u", value);
-            }
-            if (ret < 2 || (size_t) ret >= n) {
-                return MBEDTLS_ERR_OID_BUF_TOO_SMALL;
-            }
-            n -= (size_t) ret;
-            p += ret;
-            value = 0;
-        }
-    }
-
-    if (value != 0) {
-        /* Unterminated subidentifier */
-        return MBEDTLS_ERR_ASN1_OUT_OF_DATA;
-    }
-
-    return (int) (size - n);
-}
-
-static int oid_parse_number(unsigned int *num, const char **p, const char *bound)
-{
-    int ret = MBEDTLS_ERR_ASN1_INVALID_DATA;
-
-    *num = 0;
-
-    while (*p < bound && **p >= '0' && **p <= '9') {
-        ret = 0;
-        if (*num > (UINT_MAX / 10)) {
-            return MBEDTLS_ERR_ASN1_INVALID_DATA;
-        }
-        *num *= 10;
-        *num += **p - '0';
-        (*p)++;
-    }
-    return ret;
-}
-
-static size_t oid_subidentifier_num_bytes(unsigned int value)
-{
-    size_t num_bytes = 0;
-
-    do {
-        value >>= 7;
-        num_bytes++;
-    } while (value != 0);
-
-    return num_bytes;
-}
-
-static int oid_subidentifier_encode_into(unsigned char **p,
-                                         unsigned char *bound,
-                                         unsigned int value)
-{
-    size_t num_bytes = oid_subidentifier_num_bytes(value);
-
-    if ((size_t) (bound - *p) < num_bytes) {
-        return MBEDTLS_ERR_OID_BUF_TOO_SMALL;
-    }
-    (*p)[num_bytes - 1] = (unsigned char) (value & 0x7f);
-    value >>= 7;
-
-    for (size_t i = 2; i <= num_bytes; i++) {
-        (*p)[num_bytes - i] = 0x80 | (unsigned char) (value & 0x7f);
-        value >>= 7;
-    }
-    *p += num_bytes;
-
-    return 0;
-}
-
-/* Return the OID for the given x.y.z.... style numeric string  */
-int mbedtls_oid_from_numeric_string(mbedtls_asn1_buf *oid,
-                                    const char *oid_str, size_t size)
-{
-    int ret = MBEDTLS_ERR_ASN1_INVALID_DATA;
-    const char *str_ptr = oid_str;
-    const char *str_bound = oid_str + size;
-    unsigned int val = 0;
-    unsigned int component1, component2;
-    size_t encoded_len;
-    unsigned char *resized_mem;
-
-    /* Count the number of dots to get a worst-case allocation size. */
-    size_t num_dots = 0;
-    for (size_t i = 0; i < size; i++) {
-        if (oid_str[i] == '.') {
-            num_dots++;
-        }
-    }
-    /* Allocate maximum possible required memory:
-     * There are (num_dots + 1) integer components, but the first 2 share the
-     * same subidentifier, so we only need num_dots subidentifiers maximum. */
-    if (num_dots == 0 || (num_dots > MBEDTLS_OID_MAX_COMPONENTS - 1)) {
-        return MBEDTLS_ERR_ASN1_INVALID_DATA;
-    }
-    /* Each byte can store 7 bits, calculate number of bytes for a
-     * subidentifier:
-     *
-     * bytes = ceil(subidentifer_size * 8 / 7)
-     */
-    size_t bytes_per_subidentifier = (((sizeof(unsigned int) * 8) - 1) / 7)
-                                     + 1;
-    size_t max_possible_bytes = num_dots * bytes_per_subidentifier;
-    oid->p = mbedtls_calloc(max_possible_bytes, 1);
-    if (oid->p == NULL) {
-        return MBEDTLS_ERR_ASN1_ALLOC_FAILED;
-    }
-    unsigned char *out_ptr = oid->p;
-    unsigned char *out_bound = oid->p + max_possible_bytes;
-
-    ret = oid_parse_number(&component1, &str_ptr, str_bound);
-    if (ret != 0) {
-        goto error;
-    }
-    if (component1 > 2) {
-        /* First component can't be > 2 */
-        ret = MBEDTLS_ERR_ASN1_INVALID_DATA;
-        goto error;
-    }
-    if (str_ptr >= str_bound || *str_ptr != '.') {
-        ret = MBEDTLS_ERR_ASN1_INVALID_DATA;
-        goto error;
-    }
-    str_ptr++;
-
-    ret = oid_parse_number(&component2, &str_ptr, str_bound);
-    if (ret != 0) {
-        goto error;
-    }
-    if ((component1 < 2) && (component2 > 39)) {
-        /* Root nodes 0 and 1 may have up to 40 children, numbered 0-39 */
-        ret = MBEDTLS_ERR_ASN1_INVALID_DATA;
-        goto error;
-    }
-    if (str_ptr < str_bound) {
-        if (*str_ptr == '.') {
-            str_ptr++;
-        } else {
-            ret = MBEDTLS_ERR_ASN1_INVALID_DATA;
-            goto error;
-        }
-    }
-
-    if (component2 > (UINT_MAX - (component1 * 40))) {
-        ret = MBEDTLS_ERR_ASN1_INVALID_DATA;
-        goto error;
-    }
-    ret = oid_subidentifier_encode_into(&out_ptr, out_bound,
-                                        (component1 * 40) + component2);
-    if (ret != 0) {
-        goto error;
-    }
-
-    while (str_ptr < str_bound) {
-        ret = oid_parse_number(&val, &str_ptr, str_bound);
-        if (ret != 0) {
-            goto error;
-        }
-        if (str_ptr < str_bound) {
-            if (*str_ptr == '.') {
-                str_ptr++;
-            } else {
-                ret = MBEDTLS_ERR_ASN1_INVALID_DATA;
-                goto error;
-            }
-        }
-
-        ret = oid_subidentifier_encode_into(&out_ptr, out_bound, val);
-        if (ret != 0) {
-            goto error;
-        }
-    }
-
-    encoded_len = (size_t) (out_ptr - oid->p);
-    resized_mem = mbedtls_calloc(encoded_len, 1);
-    if (resized_mem == NULL) {
-        ret = MBEDTLS_ERR_ASN1_ALLOC_FAILED;
-        goto error;
-    }
-    memcpy(resized_mem, oid->p, encoded_len);
-    mbedtls_free(oid->p);
-    oid->p = resized_mem;
-    oid->len = encoded_len;
-
-    oid->tag = MBEDTLS_ASN1_OID;
-
-    return 0;
-
-error:
-    mbedtls_free(oid->p);
-    oid->p = NULL;
-    oid->len = 0;
-    return ret;
-}
-
-#endif /* MBEDTLS_OID_C */
diff --git a/deps/LIEF/third-party/mbedtls/library/padlock.c b/deps/LIEF/third-party/mbedtls/library/padlock.c
deleted file mode 100644
index 1f006910c2e..00000000000
--- a/deps/LIEF/third-party/mbedtls/library/padlock.c
+++ /dev/null
@@ -1,157 +0,0 @@
-/*
- *  VIA PadLock support functions
- *
- *  Copyright The Mbed TLS Contributors
- *  SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
- */
-/*
- *  This implementation is based on the VIA PadLock Programming Guide:
- *
- *  http://www.via.com.tw/en/downloads/whitepapers/initiatives/padlock/
- *  programming_guide.pdf
- */
-
-#include "common.h"
-
-#if defined(MBEDTLS_PADLOCK_C)
-
-#include "padlock.h"
-
-#include <string.h>
-
-#if defined(MBEDTLS_VIA_PADLOCK_HAVE_CODE)
-
-/*
- * PadLock detection routine
- */
-int mbedtls_padlock_has_support(int feature)
-{
-    static int flags = -1;
-    int ebx = 0, edx = 0;
-
-    if (flags == -1) {
-        asm ("movl  %%ebx, %0           \n\t"
-             "movl  $0xC0000000, %%eax  \n\t"
-             "cpuid                     \n\t"
-             "cmpl  $0xC0000001, %%eax  \n\t"
-             "movl  $0, %%edx           \n\t"
-             "jb    1f                  \n\t"
-             "movl  $0xC0000001, %%eax  \n\t"
-             "cpuid                     \n\t"
-             "1:                        \n\t"
-             "movl  %%edx, %1           \n\t"
-             "movl  %2, %%ebx           \n\t"
-             : "=m" (ebx), "=m" (edx)
-             :  "m" (ebx)
-             : "eax", "ecx", "edx");
-
-        flags = edx;
-    }
-
-    return flags & feature;
-}
-
-/*
- * PadLock AES-ECB block en(de)cryption
- */
-int mbedtls_padlock_xcryptecb(mbedtls_aes_context *ctx,
-                              int mode,
-                              const unsigned char input[16],
-                              unsigned char output[16])
-{
-    int ebx = 0;
-    uint32_t *rk;
-    uint32_t *blk;
-    uint32_t *ctrl;
-    unsigned char buf[256];
-
-    rk = ctx->buf + ctx->rk_offset;
-
-    if (((long) rk & 15) != 0) {
-        return MBEDTLS_ERR_PADLOCK_DATA_MISALIGNED;
-    }
-
-    blk = MBEDTLS_PADLOCK_ALIGN16(buf);
-    memcpy(blk, input, 16);
-
-    ctrl = blk + 4;
-    *ctrl = 0x80 | ctx->nr | ((ctx->nr + (mode^1) - 10) << 9);
-
-    asm ("pushfl                        \n\t"
-         "popfl                         \n\t"
-         "movl    %%ebx, %0             \n\t"
-         "movl    $1, %%ecx             \n\t"
-         "movl    %2, %%edx             \n\t"
-         "movl    %3, %%ebx             \n\t"
-         "movl    %4, %%esi             \n\t"
-         "movl    %4, %%edi             \n\t"
-         ".byte  0xf3,0x0f,0xa7,0xc8    \n\t"
-         "movl    %1, %%ebx             \n\t"
-         : "=m" (ebx)
-         :  "m" (ebx), "m" (ctrl), "m" (rk), "m" (blk)
-         : "memory", "ecx", "edx", "esi", "edi");
-
-    memcpy(output, blk, 16);
-
-    return 0;
-}
-
-#if defined(MBEDTLS_CIPHER_MODE_CBC)
-/*
- * PadLock AES-CBC buffer en(de)cryption
- */
-int mbedtls_padlock_xcryptcbc(mbedtls_aes_context *ctx,
-                              int mode,
-                              size_t length,
-                              unsigned char iv[16],
-                              const unsigned char *input,
-                              unsigned char *output)
-{
-    int ebx = 0;
-    size_t count;
-    uint32_t *rk;
-    uint32_t *iw;
-    uint32_t *ctrl;
-    unsigned char buf[256];
-
-    rk = ctx->buf + ctx->rk_offset;
-
-    if (((long) input  & 15) != 0 ||
-        ((long) output & 15) != 0 ||
-        ((long) rk & 15) != 0) {
-        return MBEDTLS_ERR_PADLOCK_DATA_MISALIGNED;
-    }
-
-    iw = MBEDTLS_PADLOCK_ALIGN16(buf);
-    memcpy(iw, iv, 16);
-
-    ctrl = iw + 4;
-    *ctrl = 0x80 | ctx->nr | ((ctx->nr + (mode ^ 1) - 10) << 9);
-
-    count = (length + 15) >> 4;
-
-    asm ("pushfl                        \n\t"
-         "popfl                         \n\t"
-         "movl    %%ebx, %0             \n\t"
-         "movl    %2, %%ecx             \n\t"
-         "movl    %3, %%edx             \n\t"
-         "movl    %4, %%ebx             \n\t"
-         "movl    %5, %%esi             \n\t"
-         "movl    %6, %%edi             \n\t"
-         "movl    %7, %%eax             \n\t"
-         ".byte  0xf3,0x0f,0xa7,0xd0    \n\t"
-         "movl    %1, %%ebx             \n\t"
-         : "=m" (ebx)
-         :  "m" (ebx), "m" (count), "m" (ctrl),
-         "m"  (rk), "m" (input), "m" (output), "m" (iw)
-         : "memory", "eax", "ecx", "edx", "esi", "edi");
-
-    memcpy(iv, iw, 16);
-
-    return 0;
-}
-#endif /* MBEDTLS_CIPHER_MODE_CBC */
-
-#endif /* MBEDTLS_VIA_PADLOCK_HAVE_CODE */
-
-#endif /* MBEDTLS_PADLOCK_C */
diff --git a/deps/LIEF/third-party/mbedtls/library/padlock.h b/deps/LIEF/third-party/mbedtls/library/padlock.h
deleted file mode 100644
index 92d72af516e..00000000000
--- a/deps/LIEF/third-party/mbedtls/library/padlock.h
+++ /dev/null
@@ -1,111 +0,0 @@
-/**
- * \file padlock.h
- *
- * \brief VIA PadLock ACE for HW encryption/decryption supported by some
- *        processors
- *
- * \warning These functions are only for internal use by other library
- *          functions; you must not call them directly.
- */
-/*
- *  Copyright The Mbed TLS Contributors
- *  SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
- */
-#ifndef MBEDTLS_PADLOCK_H
-#define MBEDTLS_PADLOCK_H
-
-#include "mbedtls/build_info.h"
-
-#include "mbedtls/aes.h"
-
-#define MBEDTLS_ERR_PADLOCK_DATA_MISALIGNED               -0x0030  /**< Input data should be aligned. */
-
-#if defined(__has_feature)
-#if __has_feature(address_sanitizer)
-#define MBEDTLS_HAVE_ASAN
-#endif
-#endif
-
-/*
- * - `padlock` is implements with GNUC assembly for x86 target.
- * - Some versions of ASan result in errors about not enough registers.
- */
-#if defined(MBEDTLS_PADLOCK_C) && \
-    defined(__GNUC__) && defined(MBEDTLS_ARCH_IS_X86) && \
-    defined(MBEDTLS_HAVE_ASM) && \
-    !defined(MBEDTLS_HAVE_ASAN)
-
-#define MBEDTLS_VIA_PADLOCK_HAVE_CODE
-
-#include <stdint.h>
-
-#define MBEDTLS_PADLOCK_RNG 0x000C
-#define MBEDTLS_PADLOCK_ACE 0x00C0
-#define MBEDTLS_PADLOCK_PHE 0x0C00
-#define MBEDTLS_PADLOCK_PMM 0x3000
-
-#define MBEDTLS_PADLOCK_ALIGN16(x) (uint32_t *) (16 + ((int32_t) (x) & ~15))
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * \brief          Internal PadLock detection routine
- *
- * \note           This function is only for internal use by other library
- *                 functions; you must not call it directly.
- *
- * \param feature  The feature to detect
- *
- * \return         non-zero if CPU has support for the feature, 0 otherwise
- */
-int mbedtls_padlock_has_support(int feature);
-
-/**
- * \brief          Internal PadLock AES-ECB block en(de)cryption
- *
- * \note           This function is only for internal use by other library
- *                 functions; you must not call it directly.
- *
- * \param ctx      AES context
- * \param mode     MBEDTLS_AES_ENCRYPT or MBEDTLS_AES_DECRYPT
- * \param input    16-byte input block
- * \param output   16-byte output block
- *
- * \return         0 if success, 1 if operation failed
- */
-int mbedtls_padlock_xcryptecb(mbedtls_aes_context *ctx,
-                              int mode,
-                              const unsigned char input[16],
-                              unsigned char output[16]);
-
-/**
- * \brief          Internal PadLock AES-CBC buffer en(de)cryption
- *
- * \note           This function is only for internal use by other library
- *                 functions; you must not call it directly.
- *
- * \param ctx      AES context
- * \param mode     MBEDTLS_AES_ENCRYPT or MBEDTLS_AES_DECRYPT
- * \param length   length of the input data
- * \param iv       initialization vector (updated after use)
- * \param input    buffer holding the input data
- * \param output   buffer holding the output data
- *
- * \return         0 if success, 1 if operation failed
- */
-int mbedtls_padlock_xcryptcbc(mbedtls_aes_context *ctx,
-                              int mode,
-                              size_t length,
-                              unsigned char iv[16],
-                              const unsigned char *input,
-                              unsigned char *output);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* HAVE_X86  */
-
-#endif /* padlock.h */
diff --git a/deps/LIEF/third-party/mbedtls/library/pk_wrap.c b/deps/LIEF/third-party/mbedtls/library/pk_wrap.c
deleted file mode 100644
index 19196b559ae..00000000000
--- a/deps/LIEF/third-party/mbedtls/library/pk_wrap.c
+++ /dev/null
@@ -1,1584 +0,0 @@
-/*
- *  Public Key abstraction layer: wrapper functions
- *
- *  Copyright The Mbed TLS Contributors
- *  SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
- */
-
-#include "common.h"
-
-#include "mbedtls/platform_util.h"
-
-#if defined(MBEDTLS_PK_C)
-#include "pk_wrap.h"
-#include "pk_internal.h"
-#include "mbedtls/error.h"
-#include "mbedtls/psa_util.h"
-
-/* Even if RSA not activated, for the sake of RSA-alt */
-#include "mbedtls/rsa.h"
-
-#if defined(MBEDTLS_ECP_C)
-#include "mbedtls/ecp.h"
-#endif
-
-#if defined(MBEDTLS_ECDSA_C)
-#include "mbedtls/ecdsa.h"
-#endif
-
-#if defined(MBEDTLS_USE_PSA_CRYPTO)
-#include "psa_util_internal.h"
-#include "psa/crypto.h"
-#include "mbedtls/psa_util.h"
-
-#if defined(MBEDTLS_RSA_C)
-#include "pkwrite.h"
-#include "rsa_internal.h"
-#endif
-
-#if defined(MBEDTLS_PK_CAN_ECDSA_SOME)
-#include "mbedtls/asn1write.h"
-#include "mbedtls/asn1.h"
-#endif
-#endif  /* MBEDTLS_USE_PSA_CRYPTO */
-
-#include "mbedtls/platform.h"
-
-#include <limits.h>
-#include <stdint.h>
-#include <string.h>
-
-#if defined(MBEDTLS_RSA_C)
-static int rsa_can_do(mbedtls_pk_type_t type)
-{
-    return type == MBEDTLS_PK_RSA ||
-           type == MBEDTLS_PK_RSASSA_PSS;
-}
-
-static size_t rsa_get_bitlen(mbedtls_pk_context *pk)
-{
-    const mbedtls_rsa_context *rsa = (const mbedtls_rsa_context *) pk->pk_ctx;
-    return mbedtls_rsa_get_bitlen(rsa);
-}
-
-#if defined(MBEDTLS_USE_PSA_CRYPTO)
-static int rsa_verify_wrap(mbedtls_pk_context *pk, mbedtls_md_type_t md_alg,
-                           const unsigned char *hash, size_t hash_len,
-                           const unsigned char *sig, size_t sig_len)
-{
-    mbedtls_rsa_context *rsa = (mbedtls_rsa_context *) pk->pk_ctx;
-    int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
-    psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT;
-    mbedtls_svc_key_id_t key_id = MBEDTLS_SVC_KEY_ID_INIT;
-    psa_status_t status;
-    int key_len;
-    unsigned char buf[MBEDTLS_PK_RSA_PUB_DER_MAX_BYTES];
-    unsigned char *p = buf + sizeof(buf);
-    psa_algorithm_t psa_alg_md;
-    size_t rsa_len = mbedtls_rsa_get_len(rsa);
-
-#if SIZE_MAX > UINT_MAX
-    if (md_alg == MBEDTLS_MD_NONE && UINT_MAX < hash_len) {
-        return MBEDTLS_ERR_PK_BAD_INPUT_DATA;
-    }
-#endif
-
-    if (mbedtls_rsa_get_padding_mode(rsa) == MBEDTLS_RSA_PKCS_V21) {
-        psa_alg_md = PSA_ALG_RSA_PSS(mbedtls_md_psa_alg_from_type(md_alg));
-    } else {
-        psa_alg_md = PSA_ALG_RSA_PKCS1V15_SIGN(mbedtls_md_psa_alg_from_type(md_alg));
-    }
-
-    if (sig_len < rsa_len) {
-        return MBEDTLS_ERR_RSA_VERIFY_FAILED;
-    }
-
-    key_len = mbedtls_rsa_write_pubkey(rsa, buf, &p);
-    if (key_len <= 0) {
-        return MBEDTLS_ERR_PK_BAD_INPUT_DATA;
-    }
-
-    psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_VERIFY_HASH);
-    psa_set_key_algorithm(&attributes, psa_alg_md);
-    psa_set_key_type(&attributes, PSA_KEY_TYPE_RSA_PUBLIC_KEY);
-
-    status = psa_import_key(&attributes,
-                            buf + sizeof(buf) - key_len, key_len,
-                            &key_id);
-    if (status != PSA_SUCCESS) {
-        ret = PSA_PK_TO_MBEDTLS_ERR(status);
-        goto cleanup;
-    }
-
-    status = psa_verify_hash(key_id, psa_alg_md, hash, hash_len,
-                             sig, sig_len);
-    if (status != PSA_SUCCESS) {
-        ret = PSA_PK_RSA_TO_MBEDTLS_ERR(status);
-        goto cleanup;
-    }
-    ret = 0;
-
-cleanup:
-    status = psa_destroy_key(key_id);
-    if (ret == 0 && status != PSA_SUCCESS) {
-        ret = PSA_PK_TO_MBEDTLS_ERR(status);
-    }
-
-    return ret;
-}
-#else /* MBEDTLS_USE_PSA_CRYPTO */
-static int rsa_verify_wrap(mbedtls_pk_context *pk, mbedtls_md_type_t md_alg,
-                           const unsigned char *hash, size_t hash_len,
-                           const unsigned char *sig, size_t sig_len)
-{
-    int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
-    mbedtls_rsa_context *rsa = (mbedtls_rsa_context *) pk->pk_ctx;
-    size_t rsa_len = mbedtls_rsa_get_len(rsa);
-
-#if SIZE_MAX > UINT_MAX
-    if (md_alg == MBEDTLS_MD_NONE && UINT_MAX < hash_len) {
-        return MBEDTLS_ERR_PK_BAD_INPUT_DATA;
-    }
-#endif
-
-    if (sig_len < rsa_len) {
-        return MBEDTLS_ERR_RSA_VERIFY_FAILED;
-    }
-
-    if ((ret = mbedtls_rsa_pkcs1_verify(rsa, md_alg,
-                                        (unsigned int) hash_len,
-                                        hash, sig)) != 0) {
-        return ret;
-    }
-
-    /* The buffer contains a valid signature followed by extra data.
-     * We have a special error code for that so that so that callers can
-     * use mbedtls_pk_verify() to check "Does the buffer start with a
-     * valid signature?" and not just "Does the buffer contain a valid
-     * signature?". */
-    if (sig_len > rsa_len) {
-        return MBEDTLS_ERR_PK_SIG_LEN_MISMATCH;
-    }
-
-    return 0;
-}
-#endif /* MBEDTLS_USE_PSA_CRYPTO */
-
-#if defined(MBEDTLS_USE_PSA_CRYPTO)
-int  mbedtls_pk_psa_rsa_sign_ext(psa_algorithm_t alg,
-                                 mbedtls_rsa_context *rsa_ctx,
-                                 const unsigned char *hash, size_t hash_len,
-                                 unsigned char *sig, size_t sig_size,
-                                 size_t *sig_len)
-{
-    int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
-    psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT;
-    mbedtls_svc_key_id_t key_id = MBEDTLS_SVC_KEY_ID_INIT;
-    psa_status_t status;
-    int key_len;
-    unsigned char *buf = NULL;
-    unsigned char *p;
-
-    buf = mbedtls_calloc(1, MBEDTLS_PK_RSA_PRV_DER_MAX_BYTES);
-    if (buf == NULL) {
-        return MBEDTLS_ERR_PK_ALLOC_FAILED;
-    }
-    p = buf + MBEDTLS_PK_RSA_PRV_DER_MAX_BYTES;
-
-    *sig_len = mbedtls_rsa_get_len(rsa_ctx);
-    if (sig_size < *sig_len) {
-        mbedtls_free(buf);
-        return MBEDTLS_ERR_PK_BUFFER_TOO_SMALL;
-    }
-
-    key_len = mbedtls_rsa_write_key(rsa_ctx, buf, &p);
-    if (key_len <= 0) {
-        mbedtls_free(buf);
-        return MBEDTLS_ERR_PK_BAD_INPUT_DATA;
-    }
-    psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_SIGN_HASH);
-    psa_set_key_algorithm(&attributes, alg);
-    psa_set_key_type(&attributes, PSA_KEY_TYPE_RSA_KEY_PAIR);
-
-    status = psa_import_key(&attributes,
-                            buf + MBEDTLS_PK_RSA_PRV_DER_MAX_BYTES - key_len, key_len,
-                            &key_id);
-    if (status != PSA_SUCCESS) {
-        ret = PSA_PK_TO_MBEDTLS_ERR(status);
-        goto cleanup;
-    }
-    status = psa_sign_hash(key_id, alg, hash, hash_len,
-                           sig, sig_size, sig_len);
-    if (status != PSA_SUCCESS) {
-        ret = PSA_PK_RSA_TO_MBEDTLS_ERR(status);
-        goto cleanup;
-    }
-
-    ret = 0;
-
-cleanup:
-    mbedtls_free(buf);
-    status = psa_destroy_key(key_id);
-    if (ret == 0 && status != PSA_SUCCESS) {
-        ret = PSA_PK_TO_MBEDTLS_ERR(status);
-    }
-    return ret;
-}
-#endif /* MBEDTLS_USE_PSA_CRYPTO */
-
-#if defined(MBEDTLS_USE_PSA_CRYPTO)
-static int rsa_sign_wrap(mbedtls_pk_context *pk, mbedtls_md_type_t md_alg,
-                         const unsigned char *hash, size_t hash_len,
-                         unsigned char *sig, size_t sig_size, size_t *sig_len,
-                         int (*f_rng)(void *, unsigned char *, size_t), void *p_rng)
-{
-    ((void) f_rng);
-    ((void) p_rng);
-
-    psa_algorithm_t psa_md_alg;
-    psa_md_alg = mbedtls_md_psa_alg_from_type(md_alg);
-    if (psa_md_alg == 0) {
-        return MBEDTLS_ERR_PK_BAD_INPUT_DATA;
-    }
-    psa_algorithm_t psa_alg;
-    if (mbedtls_rsa_get_padding_mode(mbedtls_pk_rsa(*pk)) == MBEDTLS_RSA_PKCS_V21) {
-        psa_alg = PSA_ALG_RSA_PSS(psa_md_alg);
-    } else {
-        psa_alg = PSA_ALG_RSA_PKCS1V15_SIGN(psa_md_alg);
-    }
-
-    return mbedtls_pk_psa_rsa_sign_ext(psa_alg, pk->pk_ctx, hash, hash_len,
-                                       sig, sig_size, sig_len);
-}
-#else /* MBEDTLS_USE_PSA_CRYPTO */
-static int rsa_sign_wrap(mbedtls_pk_context *pk, mbedtls_md_type_t md_alg,
-                         const unsigned char *hash, size_t hash_len,
-                         unsigned char *sig, size_t sig_size, size_t *sig_len,
-                         int (*f_rng)(void *, unsigned char *, size_t), void *p_rng)
-{
-    mbedtls_rsa_context *rsa = (mbedtls_rsa_context *) pk->pk_ctx;
-
-#if SIZE_MAX > UINT_MAX
-    if (md_alg == MBEDTLS_MD_NONE && UINT_MAX < hash_len) {
-        return MBEDTLS_ERR_PK_BAD_INPUT_DATA;
-    }
-#endif
-
-    *sig_len = mbedtls_rsa_get_len(rsa);
-    if (sig_size < *sig_len) {
-        return MBEDTLS_ERR_PK_BUFFER_TOO_SMALL;
-    }
-
-    return mbedtls_rsa_pkcs1_sign(rsa, f_rng, p_rng,
-                                  md_alg, (unsigned int) hash_len,
-                                  hash, sig);
-}
-#endif /* MBEDTLS_USE_PSA_CRYPTO */
-
-#if defined(MBEDTLS_USE_PSA_CRYPTO)
-static int rsa_decrypt_wrap(mbedtls_pk_context *pk,
-                            const unsigned char *input, size_t ilen,
-                            unsigned char *output, size_t *olen, size_t osize,
-                            int (*f_rng)(void *, unsigned char *, size_t), void *p_rng)
-{
-    mbedtls_rsa_context *rsa = (mbedtls_rsa_context *) pk->pk_ctx;
-    int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
-    psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT;
-    mbedtls_svc_key_id_t key_id = MBEDTLS_SVC_KEY_ID_INIT;
-    psa_algorithm_t psa_md_alg, decrypt_alg;
-    psa_status_t status;
-    int key_len;
-    unsigned char buf[MBEDTLS_PK_RSA_PRV_DER_MAX_BYTES];
-    unsigned char *p = buf + sizeof(buf);
-
-    ((void) f_rng);
-    ((void) p_rng);
-
-    if (ilen != mbedtls_rsa_get_len(rsa)) {
-        return MBEDTLS_ERR_RSA_BAD_INPUT_DATA;
-    }
-
-    key_len = mbedtls_rsa_write_key(rsa, buf, &p);
-    if (key_len <= 0) {
-        return MBEDTLS_ERR_PK_BAD_INPUT_DATA;
-    }
-
-    psa_set_key_type(&attributes, PSA_KEY_TYPE_RSA_KEY_PAIR);
-    psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_DECRYPT);
-    if (mbedtls_rsa_get_padding_mode(rsa) == MBEDTLS_RSA_PKCS_V21) {
-        psa_md_alg = mbedtls_md_psa_alg_from_type((mbedtls_md_type_t) mbedtls_rsa_get_md_alg(rsa));
-        decrypt_alg = PSA_ALG_RSA_OAEP(psa_md_alg);
-    } else {
-        decrypt_alg = PSA_ALG_RSA_PKCS1V15_CRYPT;
-    }
-    psa_set_key_algorithm(&attributes, decrypt_alg);
-
-    status = psa_import_key(&attributes,
-                            buf + sizeof(buf) - key_len, key_len,
-                            &key_id);
-    if (status != PSA_SUCCESS) {
-        ret = PSA_PK_TO_MBEDTLS_ERR(status);
-        goto cleanup;
-    }
-
-    status = psa_asymmetric_decrypt(key_id, decrypt_alg,
-                                    input, ilen,
-                                    NULL, 0,
-                                    output, osize, olen);
-    if (status != PSA_SUCCESS) {
-        ret = PSA_PK_RSA_TO_MBEDTLS_ERR(status);
-        goto cleanup;
-    }
-
-    ret = 0;
-
-cleanup:
-    mbedtls_platform_zeroize(buf, sizeof(buf));
-    status = psa_destroy_key(key_id);
-    if (ret == 0 && status != PSA_SUCCESS) {
-        ret = PSA_PK_TO_MBEDTLS_ERR(status);
-    }
-
-    return ret;
-}
-#else /* MBEDTLS_USE_PSA_CRYPTO */
-static int rsa_decrypt_wrap(mbedtls_pk_context *pk,
-                            const unsigned char *input, size_t ilen,
-                            unsigned char *output, size_t *olen, size_t osize,
-                            int (*f_rng)(void *, unsigned char *, size_t), void *p_rng)
-{
-    mbedtls_rsa_context *rsa = (mbedtls_rsa_context *) pk->pk_ctx;
-
-    if (ilen != mbedtls_rsa_get_len(rsa)) {
-        return MBEDTLS_ERR_RSA_BAD_INPUT_DATA;
-    }
-
-    return mbedtls_rsa_pkcs1_decrypt(rsa, f_rng, p_rng,
-                                     olen, input, output, osize);
-}
-#endif /* MBEDTLS_USE_PSA_CRYPTO */
-
-#if defined(MBEDTLS_USE_PSA_CRYPTO)
-static int rsa_encrypt_wrap(mbedtls_pk_context *pk,
-                            const unsigned char *input, size_t ilen,
-                            unsigned char *output, size_t *olen, size_t osize,
-                            int (*f_rng)(void *, unsigned char *, size_t), void *p_rng)
-{
-    mbedtls_rsa_context *rsa = (mbedtls_rsa_context *) pk->pk_ctx;
-    int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
-    psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT;
-    mbedtls_svc_key_id_t key_id = MBEDTLS_SVC_KEY_ID_INIT;
-    psa_algorithm_t psa_md_alg, psa_encrypt_alg;
-    psa_status_t status;
-    int key_len;
-    unsigned char buf[MBEDTLS_PK_RSA_PUB_DER_MAX_BYTES];
-    unsigned char *p = buf + sizeof(buf);
-
-    ((void) f_rng);
-    ((void) p_rng);
-
-    if (mbedtls_rsa_get_len(rsa) > osize) {
-        return MBEDTLS_ERR_RSA_OUTPUT_TOO_LARGE;
-    }
-
-    key_len = mbedtls_rsa_write_pubkey(rsa, buf, &p);
-    if (key_len <= 0) {
-        return MBEDTLS_ERR_PK_BAD_INPUT_DATA;
-    }
-
-    psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_ENCRYPT);
-    if (mbedtls_rsa_get_padding_mode(rsa) == MBEDTLS_RSA_PKCS_V21) {
-        psa_md_alg = mbedtls_md_psa_alg_from_type((mbedtls_md_type_t) mbedtls_rsa_get_md_alg(rsa));
-        psa_encrypt_alg = PSA_ALG_RSA_OAEP(psa_md_alg);
-    } else {
-        psa_encrypt_alg = PSA_ALG_RSA_PKCS1V15_CRYPT;
-    }
-    psa_set_key_algorithm(&attributes, psa_encrypt_alg);
-    psa_set_key_type(&attributes, PSA_KEY_TYPE_RSA_PUBLIC_KEY);
-
-    status = psa_import_key(&attributes,
-                            buf + sizeof(buf) - key_len, key_len,
-                            &key_id);
-    if (status != PSA_SUCCESS) {
-        ret = PSA_PK_TO_MBEDTLS_ERR(status);
-        goto cleanup;
-    }
-
-    status = psa_asymmetric_encrypt(key_id, psa_encrypt_alg,
-                                    input, ilen,
-                                    NULL, 0,
-                                    output, osize, olen);
-    if (status != PSA_SUCCESS) {
-        ret = PSA_PK_RSA_TO_MBEDTLS_ERR(status);
-        goto cleanup;
-    }
-
-    ret = 0;
-
-cleanup:
-    status = psa_destroy_key(key_id);
-    if (ret == 0 && status != PSA_SUCCESS) {
-        ret = PSA_PK_TO_MBEDTLS_ERR(status);
-    }
-
-    return ret;
-}
-#else /* MBEDTLS_USE_PSA_CRYPTO */
-static int rsa_encrypt_wrap(mbedtls_pk_context *pk,
-                            const unsigned char *input, size_t ilen,
-                            unsigned char *output, size_t *olen, size_t osize,
-                            int (*f_rng)(void *, unsigned char *, size_t), void *p_rng)
-{
-    mbedtls_rsa_context *rsa = (mbedtls_rsa_context *) pk->pk_ctx;
-    *olen = mbedtls_rsa_get_len(rsa);
-
-    if (*olen > osize) {
-        return MBEDTLS_ERR_RSA_OUTPUT_TOO_LARGE;
-    }
-
-    return mbedtls_rsa_pkcs1_encrypt(rsa, f_rng, p_rng,
-                                     ilen, input, output);
-}
-#endif /* MBEDTLS_USE_PSA_CRYPTO */
-
-static int rsa_check_pair_wrap(mbedtls_pk_context *pub, mbedtls_pk_context *prv,
-                               int (*f_rng)(void *, unsigned char *, size_t),
-                               void *p_rng)
-{
-    (void) f_rng;
-    (void) p_rng;
-    return mbedtls_rsa_check_pub_priv((const mbedtls_rsa_context *) pub->pk_ctx,
-                                      (const mbedtls_rsa_context *) prv->pk_ctx);
-}
-
-static void *rsa_alloc_wrap(void)
-{
-    void *ctx = mbedtls_calloc(1, sizeof(mbedtls_rsa_context));
-
-    if (ctx != NULL) {
-        mbedtls_rsa_init((mbedtls_rsa_context *) ctx);
-    }
-
-    return ctx;
-}
-
-static void rsa_free_wrap(void *ctx)
-{
-    mbedtls_rsa_free((mbedtls_rsa_context *) ctx);
-    mbedtls_free(ctx);
-}
-
-static void rsa_debug(mbedtls_pk_context *pk, mbedtls_pk_debug_item *items)
-{
-#if defined(MBEDTLS_RSA_ALT)
-    /* Not supported */
-    (void) pk;
-    (void) items;
-#else
-    mbedtls_rsa_context *rsa = (mbedtls_rsa_context *) pk->pk_ctx;
-
-    items->type = MBEDTLS_PK_DEBUG_MPI;
-    items->name = "rsa.N";
-    items->value = &(rsa->N);
-
-    items++;
-
-    items->type = MBEDTLS_PK_DEBUG_MPI;
-    items->name = "rsa.E";
-    items->value = &(rsa->E);
-#endif
-}
-
-const mbedtls_pk_info_t mbedtls_rsa_info = {
-    .type = MBEDTLS_PK_RSA,
-    .name = "RSA",
-    .get_bitlen = rsa_get_bitlen,
-    .can_do = rsa_can_do,
-    .verify_func = rsa_verify_wrap,
-    .sign_func = rsa_sign_wrap,
-#if defined(MBEDTLS_ECDSA_C) && defined(MBEDTLS_ECP_RESTARTABLE)
-    .verify_rs_func = NULL,
-    .sign_rs_func = NULL,
-    .rs_alloc_func = NULL,
-    .rs_free_func = NULL,
-#endif /* MBEDTLS_ECDSA_C && MBEDTLS_ECP_RESTARTABLE */
-    .decrypt_func = rsa_decrypt_wrap,
-    .encrypt_func = rsa_encrypt_wrap,
-    .check_pair_func = rsa_check_pair_wrap,
-    .ctx_alloc_func = rsa_alloc_wrap,
-    .ctx_free_func = rsa_free_wrap,
-    .debug_func = rsa_debug,
-};
-#endif /* MBEDTLS_RSA_C */
-
-#if defined(MBEDTLS_PK_HAVE_ECC_KEYS)
-/*
- * Generic EC key
- */
-static int eckey_can_do(mbedtls_pk_type_t type)
-{
-    return type == MBEDTLS_PK_ECKEY ||
-           type == MBEDTLS_PK_ECKEY_DH ||
-           type == MBEDTLS_PK_ECDSA;
-}
-
-static size_t eckey_get_bitlen(mbedtls_pk_context *pk)
-{
-#if defined(MBEDTLS_PK_USE_PSA_EC_DATA)
-    return pk->ec_bits;
-#else /* MBEDTLS_PK_USE_PSA_EC_DATA */
-    mbedtls_ecp_keypair *ecp = (mbedtls_ecp_keypair *) pk->pk_ctx;
-    return ecp->grp.pbits;
-#endif /* MBEDTLS_PK_USE_PSA_EC_DATA */
-}
-
-#if defined(MBEDTLS_PK_CAN_ECDSA_VERIFY)
-#if defined(MBEDTLS_USE_PSA_CRYPTO)
-/* Common helper for ECDSA verify using PSA functions. */
-static int ecdsa_verify_psa(unsigned char *key, size_t key_len,
-                            psa_ecc_family_t curve, size_t curve_bits,
-                            const unsigned char *hash, size_t hash_len,
-                            const unsigned char *sig, size_t sig_len)
-{
-    int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
-    psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT;
-    mbedtls_svc_key_id_t key_id = MBEDTLS_SVC_KEY_ID_INIT;
-    psa_algorithm_t psa_sig_md = PSA_ALG_ECDSA_ANY;
-    size_t signature_len = PSA_ECDSA_SIGNATURE_SIZE(curve_bits);
-    size_t converted_sig_len;
-    unsigned char extracted_sig[PSA_VENDOR_ECDSA_SIGNATURE_MAX_SIZE];
-    unsigned char *p;
-    psa_status_t status;
-
-    if (curve == 0) {
-        return MBEDTLS_ERR_PK_BAD_INPUT_DATA;
-    }
-
-    psa_set_key_type(&attributes, PSA_KEY_TYPE_ECC_PUBLIC_KEY(curve));
-    psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_VERIFY_HASH);
-    psa_set_key_algorithm(&attributes, psa_sig_md);
-
-    status = psa_import_key(&attributes, key, key_len, &key_id);
-    if (status != PSA_SUCCESS) {
-        ret = PSA_PK_TO_MBEDTLS_ERR(status);
-        goto cleanup;
-    }
-
-    if (signature_len > sizeof(extracted_sig)) {
-        ret = MBEDTLS_ERR_PK_BAD_INPUT_DATA;
-        goto cleanup;
-    }
-
-    p = (unsigned char *) sig;
-    ret = mbedtls_ecdsa_der_to_raw(curve_bits, p, sig_len, extracted_sig,
-                                   sizeof(extracted_sig), &converted_sig_len);
-    if (ret != 0) {
-        goto cleanup;
-    }
-
-    if (converted_sig_len != signature_len) {
-        ret = MBEDTLS_ERR_PK_BAD_INPUT_DATA;
-        goto cleanup;
-    }
-
-    status = psa_verify_hash(key_id, psa_sig_md, hash, hash_len,
-                             extracted_sig, signature_len);
-    if (status != PSA_SUCCESS) {
-        ret = PSA_PK_ECDSA_TO_MBEDTLS_ERR(status);
-        goto cleanup;
-    }
-
-    ret = 0;
-
-cleanup:
-    status = psa_destroy_key(key_id);
-    if (ret == 0 && status != PSA_SUCCESS) {
-        ret = PSA_PK_TO_MBEDTLS_ERR(status);
-    }
-
-    return ret;
-}
-
-static int ecdsa_opaque_verify_wrap(mbedtls_pk_context *pk,
-                                    mbedtls_md_type_t md_alg,
-                                    const unsigned char *hash, size_t hash_len,
-                                    const unsigned char *sig, size_t sig_len)
-{
-    (void) md_alg;
-    unsigned char key[MBEDTLS_PK_MAX_EC_PUBKEY_RAW_LEN];
-    size_t key_len;
-    psa_key_attributes_t key_attr = PSA_KEY_ATTRIBUTES_INIT;
-    psa_ecc_family_t curve;
-    size_t curve_bits;
-    psa_status_t status;
-
-    status = psa_get_key_attributes(pk->priv_id, &key_attr);
-    if (status != PSA_SUCCESS) {
-        return PSA_PK_ECDSA_TO_MBEDTLS_ERR(status);
-    }
-    curve = PSA_KEY_TYPE_ECC_GET_FAMILY(psa_get_key_type(&key_attr));
-    curve_bits = psa_get_key_bits(&key_attr);
-    psa_reset_key_attributes(&key_attr);
-
-    status = psa_export_public_key(pk->priv_id, key, sizeof(key), &key_len);
-    if (status != PSA_SUCCESS) {
-        return PSA_PK_ECDSA_TO_MBEDTLS_ERR(status);
-    }
-
-    return ecdsa_verify_psa(key, key_len, curve, curve_bits,
-                            hash, hash_len, sig, sig_len);
-}
-
-#if defined(MBEDTLS_PK_USE_PSA_EC_DATA)
-static int ecdsa_verify_wrap(mbedtls_pk_context *pk,
-                             mbedtls_md_type_t md_alg,
-                             const unsigned char *hash, size_t hash_len,
-                             const unsigned char *sig, size_t sig_len)
-{
-    (void) md_alg;
-    psa_ecc_family_t curve = pk->ec_family;
-    size_t curve_bits = pk->ec_bits;
-
-    return ecdsa_verify_psa(pk->pub_raw, pk->pub_raw_len, curve, curve_bits,
-                            hash, hash_len, sig, sig_len);
-}
-#else /* MBEDTLS_PK_USE_PSA_EC_DATA */
-static int ecdsa_verify_wrap(mbedtls_pk_context *pk,
-                             mbedtls_md_type_t md_alg,
-                             const unsigned char *hash, size_t hash_len,
-                             const unsigned char *sig, size_t sig_len)
-{
-    (void) md_alg;
-    int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
-    mbedtls_ecp_keypair *ctx = pk->pk_ctx;
-    unsigned char key[MBEDTLS_PSA_MAX_EC_PUBKEY_LENGTH];
-    size_t key_len;
-    size_t curve_bits;
-    psa_ecc_family_t curve = mbedtls_ecc_group_to_psa(ctx->grp.id, &curve_bits);
-
-    ret = mbedtls_ecp_point_write_binary(&ctx->grp, &ctx->Q,
-                                         MBEDTLS_ECP_PF_UNCOMPRESSED,
-                                         &key_len, key, sizeof(key));
-    if (ret != 0) {
-        return ret;
-    }
-
-    return ecdsa_verify_psa(key, key_len, curve, curve_bits,
-                            hash, hash_len, sig, sig_len);
-}
-#endif /* MBEDTLS_PK_USE_PSA_EC_DATA */
-#else /* MBEDTLS_USE_PSA_CRYPTO */
-static int ecdsa_verify_wrap(mbedtls_pk_context *pk, mbedtls_md_type_t md_alg,
-                             const unsigned char *hash, size_t hash_len,
-                             const unsigned char *sig, size_t sig_len)
-{
-    int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
-    ((void) md_alg);
-
-    ret = mbedtls_ecdsa_read_signature((mbedtls_ecdsa_context *) pk->pk_ctx,
-                                       hash, hash_len, sig, sig_len);
-
-    if (ret == MBEDTLS_ERR_ECP_SIG_LEN_MISMATCH) {
-        return MBEDTLS_ERR_PK_SIG_LEN_MISMATCH;
-    }
-
-    return ret;
-}
-#endif /* MBEDTLS_USE_PSA_CRYPTO */
-#endif /* MBEDTLS_PK_CAN_ECDSA_VERIFY */
-
-#if defined(MBEDTLS_PK_CAN_ECDSA_SIGN)
-#if defined(MBEDTLS_USE_PSA_CRYPTO)
-/* Common helper for ECDSA sign using PSA functions.
- * Instead of extracting key's properties in order to check which kind of ECDSA
- * signature it supports, we try both deterministic and non-deterministic.
- */
-static int ecdsa_sign_psa(mbedtls_svc_key_id_t key_id, mbedtls_md_type_t md_alg,
-                          const unsigned char *hash, size_t hash_len,
-                          unsigned char *sig, size_t sig_size, size_t *sig_len)
-{
-    int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
-    psa_status_t status;
-    psa_key_attributes_t key_attr = PSA_KEY_ATTRIBUTES_INIT;
-    size_t key_bits = 0;
-
-    status = psa_get_key_attributes(key_id, &key_attr);
-    if (status != PSA_SUCCESS) {
-        return PSA_PK_ECDSA_TO_MBEDTLS_ERR(status);
-    }
-    key_bits = psa_get_key_bits(&key_attr);
-    psa_reset_key_attributes(&key_attr);
-
-    status = psa_sign_hash(key_id,
-                           PSA_ALG_DETERMINISTIC_ECDSA(mbedtls_md_psa_alg_from_type(md_alg)),
-                           hash, hash_len, sig, sig_size, sig_len);
-    if (status == PSA_SUCCESS) {
-        goto done;
-    } else if (status != PSA_ERROR_NOT_PERMITTED) {
-        return PSA_PK_ECDSA_TO_MBEDTLS_ERR(status);
-    }
-
-    status = psa_sign_hash(key_id,
-                           PSA_ALG_ECDSA(mbedtls_md_psa_alg_from_type(md_alg)),
-                           hash, hash_len, sig, sig_size, sig_len);
-    if (status != PSA_SUCCESS) {
-        return PSA_PK_ECDSA_TO_MBEDTLS_ERR(status);
-    }
-
-done:
-    ret = mbedtls_ecdsa_raw_to_der(key_bits, sig, *sig_len, sig, sig_size, sig_len);
-
-    return ret;
-}
-
-static int ecdsa_opaque_sign_wrap(mbedtls_pk_context *pk,
-                                  mbedtls_md_type_t md_alg,
-                                  const unsigned char *hash, size_t hash_len,
-                                  unsigned char *sig, size_t sig_size,
-                                  size_t *sig_len,
-                                  int (*f_rng)(void *, unsigned char *, size_t),
-                                  void *p_rng)
-{
-    ((void) f_rng);
-    ((void) p_rng);
-
-    return ecdsa_sign_psa(pk->priv_id, md_alg, hash, hash_len, sig, sig_size,
-                          sig_len);
-}
-
-#if defined(MBEDTLS_PK_USE_PSA_EC_DATA)
-/* When PK_USE_PSA_EC_DATA is defined opaque and non-opaque keys end up
- * using the same function. */
-#define ecdsa_sign_wrap     ecdsa_opaque_sign_wrap
-#else /* MBEDTLS_PK_USE_PSA_EC_DATA */
-static int ecdsa_sign_wrap(mbedtls_pk_context *pk, mbedtls_md_type_t md_alg,
-                           const unsigned char *hash, size_t hash_len,
-                           unsigned char *sig, size_t sig_size, size_t *sig_len,
-                           int (*f_rng)(void *, unsigned char *, size_t), void *p_rng)
-{
-    int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
-    mbedtls_svc_key_id_t key_id = MBEDTLS_SVC_KEY_ID_INIT;
-    psa_status_t status;
-    mbedtls_ecp_keypair *ctx = pk->pk_ctx;
-    psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT;
-    unsigned char buf[MBEDTLS_PSA_MAX_EC_KEY_PAIR_LENGTH];
-    size_t curve_bits;
-    psa_ecc_family_t curve =
-        mbedtls_ecc_group_to_psa(ctx->grp.id, &curve_bits);
-    size_t key_len = PSA_BITS_TO_BYTES(curve_bits);
-    psa_algorithm_t psa_hash = mbedtls_md_psa_alg_from_type(md_alg);
-    psa_algorithm_t psa_sig_md = MBEDTLS_PK_PSA_ALG_ECDSA_MAYBE_DET(psa_hash);
-    ((void) f_rng);
-    ((void) p_rng);
-
-    if (curve == 0) {
-        return MBEDTLS_ERR_PK_BAD_INPUT_DATA;
-    }
-
-    if (key_len > sizeof(buf)) {
-        return MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
-    }
-    ret = mbedtls_mpi_write_binary(&ctx->d, buf, key_len);
-    if (ret != 0) {
-        goto cleanup;
-    }
-
-    psa_set_key_type(&attributes, PSA_KEY_TYPE_ECC_KEY_PAIR(curve));
-    psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_SIGN_HASH);
-    psa_set_key_algorithm(&attributes, psa_sig_md);
-
-    status = psa_import_key(&attributes, buf, key_len, &key_id);
-    if (status != PSA_SUCCESS) {
-        ret = PSA_PK_TO_MBEDTLS_ERR(status);
-        goto cleanup;
-    }
-
-    ret = ecdsa_sign_psa(key_id, md_alg, hash, hash_len, sig, sig_size, sig_len);
-
-cleanup:
-    mbedtls_platform_zeroize(buf, sizeof(buf));
-    status = psa_destroy_key(key_id);
-    if (ret == 0 && status != PSA_SUCCESS) {
-        ret = PSA_PK_TO_MBEDTLS_ERR(status);
-    }
-
-    return ret;
-}
-#endif /* MBEDTLS_PK_USE_PSA_EC_DATA */
-#else /* MBEDTLS_USE_PSA_CRYPTO */
-static int ecdsa_sign_wrap(mbedtls_pk_context *pk, mbedtls_md_type_t md_alg,
-                           const unsigned char *hash, size_t hash_len,
-                           unsigned char *sig, size_t sig_size, size_t *sig_len,
-                           int (*f_rng)(void *, unsigned char *, size_t), void *p_rng)
-{
-    return mbedtls_ecdsa_write_signature((mbedtls_ecdsa_context *) pk->pk_ctx,
-                                         md_alg, hash, hash_len,
-                                         sig, sig_size, sig_len,
-                                         f_rng, p_rng);
-}
-#endif /* MBEDTLS_USE_PSA_CRYPTO */
-#endif /* MBEDTLS_PK_CAN_ECDSA_SIGN */
-
-#if defined(MBEDTLS_ECDSA_C) && defined(MBEDTLS_ECP_RESTARTABLE)
-/* Forward declarations */
-static int ecdsa_verify_rs_wrap(mbedtls_pk_context *ctx, mbedtls_md_type_t md_alg,
-                                const unsigned char *hash, size_t hash_len,
-                                const unsigned char *sig, size_t sig_len,
-                                void *rs_ctx);
-
-static int ecdsa_sign_rs_wrap(mbedtls_pk_context *ctx, mbedtls_md_type_t md_alg,
-                              const unsigned char *hash, size_t hash_len,
-                              unsigned char *sig, size_t sig_size, size_t *sig_len,
-                              int (*f_rng)(void *, unsigned char *, size_t), void *p_rng,
-                              void *rs_ctx);
-
-/*
- * Restart context for ECDSA operations with ECKEY context
- *
- * We need to store an actual ECDSA context, as we need to pass the same to
- * the underlying ecdsa function, so we can't create it on the fly every time.
- */
-typedef struct {
-    mbedtls_ecdsa_restart_ctx ecdsa_rs;
-    mbedtls_ecdsa_context ecdsa_ctx;
-} eckey_restart_ctx;
-
-static void *eckey_rs_alloc(void)
-{
-    eckey_restart_ctx *rs_ctx;
-
-    void *ctx = mbedtls_calloc(1, sizeof(eckey_restart_ctx));
-
-    if (ctx != NULL) {
-        rs_ctx = ctx;
-        mbedtls_ecdsa_restart_init(&rs_ctx->ecdsa_rs);
-        mbedtls_ecdsa_init(&rs_ctx->ecdsa_ctx);
-    }
-
-    return ctx;
-}
-
-static void eckey_rs_free(void *ctx)
-{
-    eckey_restart_ctx *rs_ctx;
-
-    if (ctx == NULL) {
-        return;
-    }
-
-    rs_ctx = ctx;
-    mbedtls_ecdsa_restart_free(&rs_ctx->ecdsa_rs);
-    mbedtls_ecdsa_free(&rs_ctx->ecdsa_ctx);
-
-    mbedtls_free(ctx);
-}
-
-static int eckey_verify_rs_wrap(mbedtls_pk_context *pk, mbedtls_md_type_t md_alg,
-                                const unsigned char *hash, size_t hash_len,
-                                const unsigned char *sig, size_t sig_len,
-                                void *rs_ctx)
-{
-    int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
-    eckey_restart_ctx *rs = rs_ctx;
-
-    /* Should never happen */
-    if (rs == NULL) {
-        return MBEDTLS_ERR_PK_BAD_INPUT_DATA;
-    }
-
-    /* set up our own sub-context if needed (that is, on first run) */
-    if (rs->ecdsa_ctx.grp.pbits == 0) {
-        MBEDTLS_MPI_CHK(mbedtls_ecdsa_from_keypair(&rs->ecdsa_ctx, pk->pk_ctx));
-    }
-
-    MBEDTLS_MPI_CHK(ecdsa_verify_rs_wrap(pk,
-                                         md_alg, hash, hash_len,
-                                         sig, sig_len, &rs->ecdsa_rs));
-
-cleanup:
-    return ret;
-}
-
-static int eckey_sign_rs_wrap(mbedtls_pk_context *pk, mbedtls_md_type_t md_alg,
-                              const unsigned char *hash, size_t hash_len,
-                              unsigned char *sig, size_t sig_size, size_t *sig_len,
-                              int (*f_rng)(void *, unsigned char *, size_t), void *p_rng,
-                              void *rs_ctx)
-{
-    int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
-    eckey_restart_ctx *rs = rs_ctx;
-
-    /* Should never happen */
-    if (rs == NULL) {
-        return MBEDTLS_ERR_PK_BAD_INPUT_DATA;
-    }
-
-    /* set up our own sub-context if needed (that is, on first run) */
-    if (rs->ecdsa_ctx.grp.pbits == 0) {
-        MBEDTLS_MPI_CHK(mbedtls_ecdsa_from_keypair(&rs->ecdsa_ctx, pk->pk_ctx));
-    }
-
-    MBEDTLS_MPI_CHK(ecdsa_sign_rs_wrap(pk, md_alg,
-                                       hash, hash_len, sig, sig_size, sig_len,
-                                       f_rng, p_rng, &rs->ecdsa_rs));
-
-cleanup:
-    return ret;
-}
-#endif /* MBEDTLS_ECDSA_C && MBEDTLS_ECP_RESTARTABLE */
-
-#if defined(MBEDTLS_USE_PSA_CRYPTO)
-#if defined(MBEDTLS_PK_USE_PSA_EC_DATA)
-static int eckey_check_pair_psa(mbedtls_pk_context *pub, mbedtls_pk_context *prv)
-{
-    psa_status_t status;
-    int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
-    uint8_t prv_key_buf[MBEDTLS_PSA_MAX_EC_PUBKEY_LENGTH];
-    size_t prv_key_len;
-    mbedtls_svc_key_id_t key_id = prv->priv_id;
-
-    status = psa_export_public_key(key_id, prv_key_buf, sizeof(prv_key_buf),
-                                   &prv_key_len);
-    ret = PSA_PK_TO_MBEDTLS_ERR(status);
-    if (ret != 0) {
-        return ret;
-    }
-
-    if (memcmp(prv_key_buf, pub->pub_raw, pub->pub_raw_len) != 0) {
-        return MBEDTLS_ERR_PK_BAD_INPUT_DATA;
-    }
-
-    return 0;
-}
-#else /* MBEDTLS_PK_USE_PSA_EC_DATA */
-static int eckey_check_pair_psa(mbedtls_pk_context *pub, mbedtls_pk_context *prv)
-{
-    psa_status_t status;
-    int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
-    uint8_t prv_key_buf[MBEDTLS_PSA_MAX_EC_PUBKEY_LENGTH];
-    size_t prv_key_len;
-    psa_status_t destruction_status;
-    mbedtls_svc_key_id_t key_id = MBEDTLS_SVC_KEY_ID_INIT;
-    psa_key_attributes_t key_attr = PSA_KEY_ATTRIBUTES_INIT;
-    uint8_t pub_key_buf[MBEDTLS_PSA_MAX_EC_PUBKEY_LENGTH];
-    size_t pub_key_len;
-    size_t curve_bits;
-    const psa_ecc_family_t curve =
-        mbedtls_ecc_group_to_psa(mbedtls_pk_ec_ro(*prv)->grp.id, &curve_bits);
-    const size_t curve_bytes = PSA_BITS_TO_BYTES(curve_bits);
-
-    if (curve == 0) {
-        return MBEDTLS_ERR_PK_BAD_INPUT_DATA;
-    }
-
-    psa_set_key_type(&key_attr, PSA_KEY_TYPE_ECC_KEY_PAIR(curve));
-    psa_set_key_usage_flags(&key_attr, PSA_KEY_USAGE_EXPORT);
-
-    ret = mbedtls_mpi_write_binary(&mbedtls_pk_ec_ro(*prv)->d,
-                                   prv_key_buf, curve_bytes);
-    if (ret != 0) {
-        mbedtls_platform_zeroize(prv_key_buf, sizeof(prv_key_buf));
-        return ret;
-    }
-
-    status = psa_import_key(&key_attr, prv_key_buf, curve_bytes, &key_id);
-    mbedtls_platform_zeroize(prv_key_buf, sizeof(prv_key_buf));
-    ret = PSA_PK_TO_MBEDTLS_ERR(status);
-    if (ret != 0) {
-        return ret;
-    }
-
-    // From now on prv_key_buf is used to store the public key of prv.
-    status = psa_export_public_key(key_id, prv_key_buf, sizeof(prv_key_buf),
-                                   &prv_key_len);
-    ret = PSA_PK_TO_MBEDTLS_ERR(status);
-    destruction_status = psa_destroy_key(key_id);
-    if (ret != 0) {
-        return ret;
-    } else if (destruction_status != PSA_SUCCESS) {
-        return PSA_PK_TO_MBEDTLS_ERR(destruction_status);
-    }
-
-    ret = mbedtls_ecp_point_write_binary(&mbedtls_pk_ec_rw(*pub)->grp,
-                                         &mbedtls_pk_ec_rw(*pub)->Q,
-                                         MBEDTLS_ECP_PF_UNCOMPRESSED,
-                                         &pub_key_len, pub_key_buf,
-                                         sizeof(pub_key_buf));
-    if (ret != 0) {
-        return ret;
-    }
-
-    if (memcmp(prv_key_buf, pub_key_buf, curve_bytes) != 0) {
-        return MBEDTLS_ERR_PK_BAD_INPUT_DATA;
-    }
-
-    return 0;
-}
-#endif /* MBEDTLS_PK_USE_PSA_EC_DATA */
-
-static int eckey_check_pair_wrap(mbedtls_pk_context *pub, mbedtls_pk_context *prv,
-                                 int (*f_rng)(void *, unsigned char *, size_t),
-                                 void *p_rng)
-{
-    (void) f_rng;
-    (void) p_rng;
-    return eckey_check_pair_psa(pub, prv);
-}
-#else /* MBEDTLS_USE_PSA_CRYPTO */
-static int eckey_check_pair_wrap(mbedtls_pk_context *pub, mbedtls_pk_context *prv,
-                                 int (*f_rng)(void *, unsigned char *, size_t),
-                                 void *p_rng)
-{
-    return mbedtls_ecp_check_pub_priv((const mbedtls_ecp_keypair *) pub->pk_ctx,
-                                      (const mbedtls_ecp_keypair *) prv->pk_ctx,
-                                      f_rng, p_rng);
-}
-#endif /* MBEDTLS_USE_PSA_CRYPTO */
-
-#if defined(MBEDTLS_USE_PSA_CRYPTO)
-#if defined(MBEDTLS_PK_USE_PSA_EC_DATA)
-/* When PK_USE_PSA_EC_DATA is defined opaque and non-opaque keys end up
- * using the same function. */
-#define ecdsa_opaque_check_pair_wrap    eckey_check_pair_wrap
-#else /* MBEDTLS_PK_USE_PSA_EC_DATA */
-static int ecdsa_opaque_check_pair_wrap(mbedtls_pk_context *pub,
-                                        mbedtls_pk_context *prv,
-                                        int (*f_rng)(void *, unsigned char *, size_t),
-                                        void *p_rng)
-{
-    psa_status_t status;
-    uint8_t exp_pub_key[MBEDTLS_PK_MAX_EC_PUBKEY_RAW_LEN];
-    size_t exp_pub_key_len = 0;
-    uint8_t pub_key[MBEDTLS_PK_MAX_EC_PUBKEY_RAW_LEN];
-    size_t pub_key_len = 0;
-    int ret;
-    (void) f_rng;
-    (void) p_rng;
-
-    status = psa_export_public_key(prv->priv_id, exp_pub_key, sizeof(exp_pub_key),
-                                   &exp_pub_key_len);
-    if (status != PSA_SUCCESS) {
-        ret = psa_pk_status_to_mbedtls(status);
-        return ret;
-    }
-    ret = mbedtls_ecp_point_write_binary(&(mbedtls_pk_ec_ro(*pub)->grp),
-                                         &(mbedtls_pk_ec_ro(*pub)->Q),
-                                         MBEDTLS_ECP_PF_UNCOMPRESSED,
-                                         &pub_key_len, pub_key, sizeof(pub_key));
-    if (ret != 0) {
-        return ret;
-    }
-    if ((exp_pub_key_len != pub_key_len) ||
-        memcmp(exp_pub_key, pub_key, exp_pub_key_len)) {
-        return MBEDTLS_ERR_PK_BAD_INPUT_DATA;
-    }
-    return 0;
-}
-#endif /* MBEDTLS_PK_USE_PSA_EC_DATA */
-#endif /* MBEDTLS_USE_PSA_CRYPTO */
-
-#if !defined(MBEDTLS_PK_USE_PSA_EC_DATA)
-static void *eckey_alloc_wrap(void)
-{
-    void *ctx = mbedtls_calloc(1, sizeof(mbedtls_ecp_keypair));
-
-    if (ctx != NULL) {
-        mbedtls_ecp_keypair_init(ctx);
-    }
-
-    return ctx;
-}
-
-static void eckey_free_wrap(void *ctx)
-{
-    mbedtls_ecp_keypair_free((mbedtls_ecp_keypair *) ctx);
-    mbedtls_free(ctx);
-}
-#endif /* MBEDTLS_PK_USE_PSA_EC_DATA */
-
-static void eckey_debug(mbedtls_pk_context *pk, mbedtls_pk_debug_item *items)
-{
-#if defined(MBEDTLS_PK_USE_PSA_EC_DATA)
-    items->type = MBEDTLS_PK_DEBUG_PSA_EC;
-    items->name = "eckey.Q";
-    items->value = pk;
-#else /* MBEDTLS_PK_USE_PSA_EC_DATA */
-    mbedtls_ecp_keypair *ecp = (mbedtls_ecp_keypair *) pk->pk_ctx;
-    items->type = MBEDTLS_PK_DEBUG_ECP;
-    items->name = "eckey.Q";
-    items->value = &(ecp->Q);
-#endif /* MBEDTLS_PK_USE_PSA_EC_DATA */
-}
-
-const mbedtls_pk_info_t mbedtls_eckey_info = {
-    .type = MBEDTLS_PK_ECKEY,
-    .name = "EC",
-    .get_bitlen = eckey_get_bitlen,
-    .can_do = eckey_can_do,
-#if defined(MBEDTLS_PK_CAN_ECDSA_VERIFY)
-    .verify_func = ecdsa_verify_wrap,   /* Compatible key structures */
-#else /* MBEDTLS_PK_CAN_ECDSA_VERIFY */
-    .verify_func = NULL,
-#endif /* MBEDTLS_PK_CAN_ECDSA_VERIFY */
-#if defined(MBEDTLS_PK_CAN_ECDSA_SIGN)
-    .sign_func = ecdsa_sign_wrap,   /* Compatible key structures */
-#else /* MBEDTLS_PK_CAN_ECDSA_VERIFY */
-    .sign_func = NULL,
-#endif /* MBEDTLS_PK_CAN_ECDSA_VERIFY */
-#if defined(MBEDTLS_ECDSA_C) && defined(MBEDTLS_ECP_RESTARTABLE)
-    .verify_rs_func = eckey_verify_rs_wrap,
-    .sign_rs_func = eckey_sign_rs_wrap,
-    .rs_alloc_func = eckey_rs_alloc,
-    .rs_free_func = eckey_rs_free,
-#endif /* MBEDTLS_ECDSA_C && MBEDTLS_ECP_RESTARTABLE */
-    .decrypt_func = NULL,
-    .encrypt_func = NULL,
-    .check_pair_func = eckey_check_pair_wrap,
-#if defined(MBEDTLS_PK_USE_PSA_EC_DATA)
-    .ctx_alloc_func = NULL,
-    .ctx_free_func = NULL,
-#else /* MBEDTLS_PK_USE_PSA_EC_DATA */
-    .ctx_alloc_func = eckey_alloc_wrap,
-    .ctx_free_func = eckey_free_wrap,
-#endif /* MBEDTLS_PK_USE_PSA_EC_DATA */
-    .debug_func = eckey_debug,
-};
-
-/*
- * EC key restricted to ECDH
- */
-static int eckeydh_can_do(mbedtls_pk_type_t type)
-{
-    return type == MBEDTLS_PK_ECKEY ||
-           type == MBEDTLS_PK_ECKEY_DH;
-}
-
-const mbedtls_pk_info_t mbedtls_eckeydh_info = {
-    .type = MBEDTLS_PK_ECKEY_DH,
-    .name = "EC_DH",
-    .get_bitlen = eckey_get_bitlen,         /* Same underlying key structure */
-    .can_do = eckeydh_can_do,
-    .verify_func = NULL,
-    .sign_func = NULL,
-#if defined(MBEDTLS_ECDSA_C) && defined(MBEDTLS_ECP_RESTARTABLE)
-    .verify_rs_func = NULL,
-    .sign_rs_func = NULL,
-#endif /* MBEDTLS_ECDSA_C && MBEDTLS_ECP_RESTARTABLE */
-    .decrypt_func = NULL,
-    .encrypt_func = NULL,
-    .check_pair_func = eckey_check_pair_wrap,
-#if defined(MBEDTLS_PK_USE_PSA_EC_DATA)
-    .ctx_alloc_func = NULL,
-    .ctx_free_func = NULL,
-#else /* MBEDTLS_PK_USE_PSA_EC_DATA */
-    .ctx_alloc_func = eckey_alloc_wrap,   /* Same underlying key structure */
-    .ctx_free_func = eckey_free_wrap,    /* Same underlying key structure */
-#endif /* MBEDTLS_PK_USE_PSA_EC_DATA */
-    .debug_func = eckey_debug,            /* Same underlying key structure */
-};
-
-#if defined(MBEDTLS_PK_CAN_ECDSA_SOME)
-static int ecdsa_can_do(mbedtls_pk_type_t type)
-{
-    return type == MBEDTLS_PK_ECDSA;
-}
-
-#if defined(MBEDTLS_ECDSA_C) && defined(MBEDTLS_ECP_RESTARTABLE)
-static int ecdsa_verify_rs_wrap(mbedtls_pk_context *pk, mbedtls_md_type_t md_alg,
-                                const unsigned char *hash, size_t hash_len,
-                                const unsigned char *sig, size_t sig_len,
-                                void *rs_ctx)
-{
-    int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
-    ((void) md_alg);
-
-    ret = mbedtls_ecdsa_read_signature_restartable(
-        (mbedtls_ecdsa_context *) pk->pk_ctx,
-        hash, hash_len, sig, sig_len,
-        (mbedtls_ecdsa_restart_ctx *) rs_ctx);
-
-    if (ret == MBEDTLS_ERR_ECP_SIG_LEN_MISMATCH) {
-        return MBEDTLS_ERR_PK_SIG_LEN_MISMATCH;
-    }
-
-    return ret;
-}
-
-static int ecdsa_sign_rs_wrap(mbedtls_pk_context *pk, mbedtls_md_type_t md_alg,
-                              const unsigned char *hash, size_t hash_len,
-                              unsigned char *sig, size_t sig_size, size_t *sig_len,
-                              int (*f_rng)(void *, unsigned char *, size_t), void *p_rng,
-                              void *rs_ctx)
-{
-    return mbedtls_ecdsa_write_signature_restartable(
-        (mbedtls_ecdsa_context *) pk->pk_ctx,
-        md_alg, hash, hash_len, sig, sig_size, sig_len, f_rng, p_rng,
-        (mbedtls_ecdsa_restart_ctx *) rs_ctx);
-
-}
-
-static void *ecdsa_rs_alloc(void)
-{
-    void *ctx = mbedtls_calloc(1, sizeof(mbedtls_ecdsa_restart_ctx));
-
-    if (ctx != NULL) {
-        mbedtls_ecdsa_restart_init(ctx);
-    }
-
-    return ctx;
-}
-
-static void ecdsa_rs_free(void *ctx)
-{
-    mbedtls_ecdsa_restart_free(ctx);
-    mbedtls_free(ctx);
-}
-#endif /* MBEDTLS_ECDSA_C && MBEDTLS_ECP_RESTARTABLE */
-
-const mbedtls_pk_info_t mbedtls_ecdsa_info = {
-    .type = MBEDTLS_PK_ECDSA,
-    .name = "ECDSA",
-    .get_bitlen = eckey_get_bitlen,     /* Compatible key structures */
-    .can_do = ecdsa_can_do,
-#if defined(MBEDTLS_PK_CAN_ECDSA_VERIFY)
-    .verify_func = ecdsa_verify_wrap,   /* Compatible key structures */
-#else /* MBEDTLS_PK_CAN_ECDSA_VERIFY */
-    .verify_func = NULL,
-#endif /* MBEDTLS_PK_CAN_ECDSA_VERIFY */
-#if defined(MBEDTLS_PK_CAN_ECDSA_SIGN)
-    .sign_func = ecdsa_sign_wrap,   /* Compatible key structures */
-#else /* MBEDTLS_PK_CAN_ECDSA_SIGN */
-    .sign_func = NULL,
-#endif /* MBEDTLS_PK_CAN_ECDSA_SIGN */
-#if defined(MBEDTLS_ECDSA_C) && defined(MBEDTLS_ECP_RESTARTABLE)
-    .verify_rs_func = ecdsa_verify_rs_wrap,
-    .sign_rs_func = ecdsa_sign_rs_wrap,
-    .rs_alloc_func = ecdsa_rs_alloc,
-    .rs_free_func = ecdsa_rs_free,
-#endif /* MBEDTLS_ECDSA_C && MBEDTLS_ECP_RESTARTABLE */
-    .decrypt_func = NULL,
-    .encrypt_func = NULL,
-    .check_pair_func = eckey_check_pair_wrap,   /* Compatible key structures */
-#if defined(MBEDTLS_PK_USE_PSA_EC_DATA)
-    .ctx_alloc_func = NULL,
-    .ctx_free_func = NULL,
-#else /* MBEDTLS_PK_USE_PSA_EC_DATA */
-    .ctx_alloc_func = eckey_alloc_wrap,   /* Compatible key structures */
-    .ctx_free_func = eckey_free_wrap,   /* Compatible key structures */
-#endif /* MBEDTLS_PK_USE_PSA_EC_DATA */
-    .debug_func = eckey_debug,        /* Compatible key structures */
-};
-#endif /* MBEDTLS_PK_CAN_ECDSA_SOME */
-#endif /* MBEDTLS_PK_HAVE_ECC_KEYS */
-
-#if defined(MBEDTLS_PK_RSA_ALT_SUPPORT)
-/*
- * Support for alternative RSA-private implementations
- */
-
-static int rsa_alt_can_do(mbedtls_pk_type_t type)
-{
-    return type == MBEDTLS_PK_RSA;
-}
-
-static size_t rsa_alt_get_bitlen(mbedtls_pk_context *pk)
-{
-    const mbedtls_rsa_alt_context *rsa_alt = pk->pk_ctx;
-
-    return 8 * rsa_alt->key_len_func(rsa_alt->key);
-}
-
-static int rsa_alt_sign_wrap(mbedtls_pk_context *pk, mbedtls_md_type_t md_alg,
-                             const unsigned char *hash, size_t hash_len,
-                             unsigned char *sig, size_t sig_size, size_t *sig_len,
-                             int (*f_rng)(void *, unsigned char *, size_t), void *p_rng)
-{
-    mbedtls_rsa_alt_context *rsa_alt = pk->pk_ctx;
-
-#if SIZE_MAX > UINT_MAX
-    if (UINT_MAX < hash_len) {
-        return MBEDTLS_ERR_PK_BAD_INPUT_DATA;
-    }
-#endif
-
-    *sig_len = rsa_alt->key_len_func(rsa_alt->key);
-    if (*sig_len > MBEDTLS_PK_SIGNATURE_MAX_SIZE) {
-        return MBEDTLS_ERR_PK_BAD_INPUT_DATA;
-    }
-    if (*sig_len > sig_size) {
-        return MBEDTLS_ERR_PK_BUFFER_TOO_SMALL;
-    }
-
-    return rsa_alt->sign_func(rsa_alt->key, f_rng, p_rng,
-                              md_alg, (unsigned int) hash_len, hash, sig);
-}
-
-static int rsa_alt_decrypt_wrap(mbedtls_pk_context *pk,
-                                const unsigned char *input, size_t ilen,
-                                unsigned char *output, size_t *olen, size_t osize,
-                                int (*f_rng)(void *, unsigned char *, size_t), void *p_rng)
-{
-    mbedtls_rsa_alt_context *rsa_alt = pk->pk_ctx;
-
-    ((void) f_rng);
-    ((void) p_rng);
-
-    if (ilen != rsa_alt->key_len_func(rsa_alt->key)) {
-        return MBEDTLS_ERR_RSA_BAD_INPUT_DATA;
-    }
-
-    return rsa_alt->decrypt_func(rsa_alt->key,
-                                 olen, input, output, osize);
-}
-
-#if defined(MBEDTLS_RSA_C)
-static int rsa_alt_check_pair(mbedtls_pk_context *pub, mbedtls_pk_context *prv,
-                              int (*f_rng)(void *, unsigned char *, size_t),
-                              void *p_rng)
-{
-    unsigned char sig[MBEDTLS_MPI_MAX_SIZE];
-    unsigned char hash[32];
-    size_t sig_len = 0;
-    int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
-
-    if (rsa_alt_get_bitlen(prv) != rsa_get_bitlen(pub)) {
-        return MBEDTLS_ERR_RSA_KEY_CHECK_FAILED;
-    }
-
-    memset(hash, 0x2a, sizeof(hash));
-
-    if ((ret = rsa_alt_sign_wrap(prv, MBEDTLS_MD_NONE,
-                                 hash, sizeof(hash),
-                                 sig, sizeof(sig), &sig_len,
-                                 f_rng, p_rng)) != 0) {
-        return ret;
-    }
-
-    if (rsa_verify_wrap(pub, MBEDTLS_MD_NONE,
-                        hash, sizeof(hash), sig, sig_len) != 0) {
-        return MBEDTLS_ERR_RSA_KEY_CHECK_FAILED;
-    }
-
-    return 0;
-}
-#endif /* MBEDTLS_RSA_C */
-
-static void *rsa_alt_alloc_wrap(void)
-{
-    void *ctx = mbedtls_calloc(1, sizeof(mbedtls_rsa_alt_context));
-
-    if (ctx != NULL) {
-        memset(ctx, 0, sizeof(mbedtls_rsa_alt_context));
-    }
-
-    return ctx;
-}
-
-static void rsa_alt_free_wrap(void *ctx)
-{
-    mbedtls_zeroize_and_free(ctx, sizeof(mbedtls_rsa_alt_context));
-}
-
-const mbedtls_pk_info_t mbedtls_rsa_alt_info = {
-    .type = MBEDTLS_PK_RSA_ALT,
-    .name = "RSA-alt",
-    .get_bitlen = rsa_alt_get_bitlen,
-    .can_do = rsa_alt_can_do,
-    .verify_func = NULL,
-    .sign_func = rsa_alt_sign_wrap,
-#if defined(MBEDTLS_ECDSA_C) && defined(MBEDTLS_ECP_RESTARTABLE)
-    .verify_rs_func = NULL,
-    .sign_rs_func = NULL,
-    .rs_alloc_func = NULL,
-    .rs_free_func = NULL,
-#endif /* MBEDTLS_ECDSA_C && MBEDTLS_ECP_RESTARTABLE */
-    .decrypt_func = rsa_alt_decrypt_wrap,
-    .encrypt_func = NULL,
-#if defined(MBEDTLS_RSA_C)
-    .check_pair_func = rsa_alt_check_pair,
-#else
-    .check_pair_func = NULL,
-#endif
-    .ctx_alloc_func = rsa_alt_alloc_wrap,
-    .ctx_free_func = rsa_alt_free_wrap,
-    .debug_func = NULL,
-};
-#endif /* MBEDTLS_PK_RSA_ALT_SUPPORT */
-
-#if defined(MBEDTLS_USE_PSA_CRYPTO)
-static size_t opaque_get_bitlen(mbedtls_pk_context *pk)
-{
-    size_t bits;
-    psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT;
-
-    if (PSA_SUCCESS != psa_get_key_attributes(pk->priv_id, &attributes)) {
-        return 0;
-    }
-
-    bits = psa_get_key_bits(&attributes);
-    psa_reset_key_attributes(&attributes);
-    return bits;
-}
-
-#if defined(MBEDTLS_PK_HAVE_ECC_KEYS)
-static int ecdsa_opaque_can_do(mbedtls_pk_type_t type)
-{
-    return type == MBEDTLS_PK_ECKEY ||
-           type == MBEDTLS_PK_ECDSA;
-}
-
-const mbedtls_pk_info_t mbedtls_ecdsa_opaque_info = {
-    .type = MBEDTLS_PK_OPAQUE,
-    .name = "Opaque",
-    .get_bitlen = opaque_get_bitlen,
-    .can_do = ecdsa_opaque_can_do,
-#if defined(MBEDTLS_PK_CAN_ECDSA_VERIFY)
-    .verify_func = ecdsa_opaque_verify_wrap,
-#else /* MBEDTLS_PK_CAN_ECDSA_VERIFY */
-    .verify_func = NULL,
-#endif /* MBEDTLS_PK_CAN_ECDSA_VERIFY */
-#if defined(MBEDTLS_PK_CAN_ECDSA_SIGN)
-    .sign_func = ecdsa_opaque_sign_wrap,
-#else /* MBEDTLS_PK_CAN_ECDSA_SIGN */
-    .sign_func = NULL,
-#endif /* MBEDTLS_PK_CAN_ECDSA_SIGN */
-#if defined(MBEDTLS_ECDSA_C) && defined(MBEDTLS_ECP_RESTARTABLE)
-    .verify_rs_func = NULL,
-    .sign_rs_func = NULL,
-    .rs_alloc_func = NULL,
-    .rs_free_func = NULL,
-#endif /* MBEDTLS_ECDSA_C && MBEDTLS_ECP_RESTARTABLE */
-    .decrypt_func = NULL,
-    .encrypt_func = NULL,
-    .check_pair_func = ecdsa_opaque_check_pair_wrap,
-    .ctx_alloc_func = NULL,
-    .ctx_free_func = NULL,
-    .debug_func = NULL,
-};
-#endif /* MBEDTLS_PK_HAVE_ECC_KEYS */
-
-static int rsa_opaque_can_do(mbedtls_pk_type_t type)
-{
-    return type == MBEDTLS_PK_RSA ||
-           type == MBEDTLS_PK_RSASSA_PSS;
-}
-
-#if defined(PSA_WANT_KEY_TYPE_RSA_KEY_PAIR_BASIC)
-static int rsa_opaque_decrypt(mbedtls_pk_context *pk,
-                              const unsigned char *input, size_t ilen,
-                              unsigned char *output, size_t *olen, size_t osize,
-                              int (*f_rng)(void *, unsigned char *, size_t), void *p_rng)
-{
-    psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT;
-    psa_algorithm_t alg;
-    psa_key_type_t type;
-    psa_status_t status;
-
-    /* PSA has its own RNG */
-    (void) f_rng;
-    (void) p_rng;
-
-    status = psa_get_key_attributes(pk->priv_id, &attributes);
-    if (status != PSA_SUCCESS) {
-        return PSA_PK_TO_MBEDTLS_ERR(status);
-    }
-
-    type = psa_get_key_type(&attributes);
-    alg = psa_get_key_algorithm(&attributes);
-    psa_reset_key_attributes(&attributes);
-
-    if (!PSA_KEY_TYPE_IS_RSA(type)) {
-        return MBEDTLS_ERR_PK_FEATURE_UNAVAILABLE;
-    }
-
-    status = psa_asymmetric_decrypt(pk->priv_id, alg, input, ilen, NULL, 0, output, osize, olen);
-    if (status != PSA_SUCCESS) {
-        return PSA_PK_RSA_TO_MBEDTLS_ERR(status);
-    }
-
-    return 0;
-}
-#endif /* PSA_WANT_KEY_TYPE_RSA_KEY_PAIR_BASIC */
-
-static int rsa_opaque_sign_wrap(mbedtls_pk_context *pk, mbedtls_md_type_t md_alg,
-                                const unsigned char *hash, size_t hash_len,
-                                unsigned char *sig, size_t sig_size, size_t *sig_len,
-                                int (*f_rng)(void *, unsigned char *, size_t), void *p_rng)
-{
-#if defined(MBEDTLS_RSA_C)
-    psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT;
-    psa_algorithm_t alg;
-    psa_key_type_t type;
-    psa_status_t status;
-
-    /* PSA has its own RNG */
-    (void) f_rng;
-    (void) p_rng;
-
-    status = psa_get_key_attributes(pk->priv_id, &attributes);
-    if (status != PSA_SUCCESS) {
-        return PSA_PK_TO_MBEDTLS_ERR(status);
-    }
-
-    type = psa_get_key_type(&attributes);
-    alg = psa_get_key_algorithm(&attributes);
-    psa_reset_key_attributes(&attributes);
-
-    if (PSA_KEY_TYPE_IS_RSA(type)) {
-        alg = (alg & ~PSA_ALG_HASH_MASK) | mbedtls_md_psa_alg_from_type(md_alg);
-    } else {
-        return MBEDTLS_ERR_PK_FEATURE_UNAVAILABLE;
-    }
-
-    status = psa_sign_hash(pk->priv_id, alg, hash, hash_len, sig, sig_size, sig_len);
-    if (status != PSA_SUCCESS) {
-        if (PSA_KEY_TYPE_IS_RSA(type)) {
-            return PSA_PK_RSA_TO_MBEDTLS_ERR(status);
-        } else {
-            return PSA_PK_TO_MBEDTLS_ERR(status);
-        }
-    }
-
-    return 0;
-#else /* !MBEDTLS_RSA_C */
-    ((void) pk);
-    ((void) md_alg);
-    ((void) hash);
-    ((void) hash_len);
-    ((void) sig);
-    ((void) sig_size);
-    ((void) sig_len);
-    ((void) f_rng);
-    ((void) p_rng);
-    return MBEDTLS_ERR_PK_FEATURE_UNAVAILABLE;
-#endif /* !MBEDTLS_RSA_C */
-}
-
-const mbedtls_pk_info_t mbedtls_rsa_opaque_info = {
-    .type = MBEDTLS_PK_OPAQUE,
-    .name = "Opaque",
-    .get_bitlen = opaque_get_bitlen,
-    .can_do = rsa_opaque_can_do,
-    .verify_func = NULL,
-    .sign_func = rsa_opaque_sign_wrap,
-#if defined(MBEDTLS_ECDSA_C) && defined(MBEDTLS_ECP_RESTARTABLE)
-    .verify_rs_func = NULL,
-    .sign_rs_func = NULL,
-    .rs_alloc_func = NULL,
-    .rs_free_func = NULL,
-#endif /* MBEDTLS_ECDSA_C && MBEDTLS_ECP_RESTARTABLE */
-#if defined(PSA_WANT_KEY_TYPE_RSA_KEY_PAIR_BASIC)
-    .decrypt_func = rsa_opaque_decrypt,
-#else /* PSA_WANT_KEY_TYPE_RSA_KEY_PAIR_BASIC */
-    .decrypt_func = NULL,
-#endif /* PSA_WANT_KEY_TYPE_RSA_KEY_PAIR_BASIC */
-    .encrypt_func = NULL,
-    .check_pair_func = NULL,
-    .ctx_alloc_func = NULL,
-    .ctx_free_func = NULL,
-    .debug_func = NULL,
-};
-
-#endif /* MBEDTLS_USE_PSA_CRYPTO */
-
-#endif /* MBEDTLS_PK_C */
diff --git a/deps/LIEF/third-party/mbedtls/library/pkcs12.c b/deps/LIEF/third-party/mbedtls/library/pkcs12.c
deleted file mode 100644
index a3467b98208..00000000000
--- a/deps/LIEF/third-party/mbedtls/library/pkcs12.c
+++ /dev/null
@@ -1,437 +0,0 @@
-/*
- *  PKCS#12 Personal Information Exchange Syntax
- *
- *  Copyright The Mbed TLS Contributors
- *  SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
- */
-/*
- *  The PKCS #12 Personal Information Exchange Syntax Standard v1.1
- *
- *  http://www.rsa.com/rsalabs/pkcs/files/h11301-wp-pkcs-12v1-1-personal-information-exchange-syntax.pdf
- *  ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-12/pkcs-12v1-1.asn
- */
-
-#include "common.h"
-
-#if defined(MBEDTLS_PKCS12_C)
-
-#include "mbedtls/pkcs12.h"
-#include "mbedtls/asn1.h"
-#if defined(MBEDTLS_CIPHER_C)
-#include "mbedtls/cipher.h"
-#endif /* MBEDTLS_CIPHER_C */
-#include "mbedtls/platform_util.h"
-#include "mbedtls/error.h"
-
-#include <string.h>
-
-#if defined(MBEDTLS_DES_C)
-#include "mbedtls/des.h"
-#endif
-
-#include "psa_util_internal.h"
-
-#if defined(MBEDTLS_ASN1_PARSE_C) && defined(MBEDTLS_CIPHER_C)
-
-static int pkcs12_parse_pbe_params(mbedtls_asn1_buf *params,
-                                   mbedtls_asn1_buf *salt, int *iterations)
-{
-    int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
-    unsigned char **p = &params->p;
-    const unsigned char *end = params->p + params->len;
-
-    /*
-     *  pkcs-12PbeParams ::= SEQUENCE {
-     *    salt          OCTET STRING,
-     *    iterations    INTEGER
-     *  }
-     *
-     */
-    if (params->tag != (MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE)) {
-        return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_PKCS12_PBE_INVALID_FORMAT,
-                                 MBEDTLS_ERR_ASN1_UNEXPECTED_TAG);
-    }
-
-    if ((ret = mbedtls_asn1_get_tag(p, end, &salt->len, MBEDTLS_ASN1_OCTET_STRING)) != 0) {
-        return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_PKCS12_PBE_INVALID_FORMAT, ret);
-    }
-
-    salt->p = *p;
-    *p += salt->len;
-
-    if ((ret = mbedtls_asn1_get_int(p, end, iterations)) != 0) {
-        return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_PKCS12_PBE_INVALID_FORMAT, ret);
-    }
-
-    if (*p != end) {
-        return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_PKCS12_PBE_INVALID_FORMAT,
-                                 MBEDTLS_ERR_ASN1_LENGTH_MISMATCH);
-    }
-
-    return 0;
-}
-
-#define PKCS12_MAX_PWDLEN 128
-
-static int pkcs12_pbe_derive_key_iv(mbedtls_asn1_buf *pbe_params, mbedtls_md_type_t md_type,
-                                    const unsigned char *pwd,  size_t pwdlen,
-                                    unsigned char *key, size_t keylen,
-                                    unsigned char *iv,  size_t ivlen)
-{
-    int ret, iterations = 0;
-    mbedtls_asn1_buf salt;
-    size_t i;
-    unsigned char unipwd[PKCS12_MAX_PWDLEN * 2 + 2];
-
-    if (pwdlen > PKCS12_MAX_PWDLEN) {
-        return MBEDTLS_ERR_PKCS12_BAD_INPUT_DATA;
-    }
-
-    memset(&salt, 0, sizeof(mbedtls_asn1_buf));
-    memset(&unipwd, 0, sizeof(unipwd));
-
-    if ((ret = pkcs12_parse_pbe_params(pbe_params, &salt,
-                                       &iterations)) != 0) {
-        return ret;
-    }
-
-    for (i = 0; i < pwdlen; i++) {
-        unipwd[i * 2 + 1] = pwd[i];
-    }
-
-    if ((ret = mbedtls_pkcs12_derivation(key, keylen, unipwd, pwdlen * 2 + 2,
-                                         salt.p, salt.len, md_type,
-                                         MBEDTLS_PKCS12_DERIVE_KEY, iterations)) != 0) {
-        return ret;
-    }
-
-    if (iv == NULL || ivlen == 0) {
-        return 0;
-    }
-
-    if ((ret = mbedtls_pkcs12_derivation(iv, ivlen, unipwd, pwdlen * 2 + 2,
-                                         salt.p, salt.len, md_type,
-                                         MBEDTLS_PKCS12_DERIVE_IV, iterations)) != 0) {
-        return ret;
-    }
-    return 0;
-}
-
-#undef PKCS12_MAX_PWDLEN
-
-#if !defined(MBEDTLS_CIPHER_PADDING_PKCS7)
-int mbedtls_pkcs12_pbe_ext(mbedtls_asn1_buf *pbe_params, int mode,
-                           mbedtls_cipher_type_t cipher_type, mbedtls_md_type_t md_type,
-                           const unsigned char *pwd,  size_t pwdlen,
-                           const unsigned char *data, size_t len,
-                           unsigned char *output, size_t output_size,
-                           size_t *output_len);
-#endif
-
-#if !defined(MBEDTLS_DEPRECATED_REMOVED)
-int mbedtls_pkcs12_pbe(mbedtls_asn1_buf *pbe_params, int mode,
-                       mbedtls_cipher_type_t cipher_type, mbedtls_md_type_t md_type,
-                       const unsigned char *pwd,  size_t pwdlen,
-                       const unsigned char *data, size_t len,
-                       unsigned char *output)
-{
-    size_t output_len = 0;
-
-    /* We assume caller of the function is providing a big enough output buffer
-     * so we pass output_size as SIZE_MAX to pass checks, However, no guarantees
-     * for the output size actually being correct.
-     */
-    return mbedtls_pkcs12_pbe_ext(pbe_params, mode, cipher_type, md_type,
-                                  pwd, pwdlen, data, len, output, SIZE_MAX,
-                                  &output_len);
-}
-#endif
-
-int mbedtls_pkcs12_pbe_ext(mbedtls_asn1_buf *pbe_params, int mode,
-                           mbedtls_cipher_type_t cipher_type, mbedtls_md_type_t md_type,
-                           const unsigned char *pwd,  size_t pwdlen,
-                           const unsigned char *data, size_t len,
-                           unsigned char *output, size_t output_size,
-                           size_t *output_len)
-{
-    int ret, keylen = 0;
-    unsigned char key[32];
-    unsigned char iv[16];
-    const mbedtls_cipher_info_t *cipher_info;
-    mbedtls_cipher_context_t cipher_ctx;
-    size_t iv_len = 0;
-    size_t finish_olen = 0;
-    unsigned int padlen = 0;
-
-    if (pwd == NULL && pwdlen != 0) {
-        return MBEDTLS_ERR_PKCS12_BAD_INPUT_DATA;
-    }
-
-    cipher_info = mbedtls_cipher_info_from_type(cipher_type);
-    if (cipher_info == NULL) {
-        return MBEDTLS_ERR_PKCS12_FEATURE_UNAVAILABLE;
-    }
-
-    keylen = (int) mbedtls_cipher_info_get_key_bitlen(cipher_info) / 8;
-
-    if (mode == MBEDTLS_PKCS12_PBE_DECRYPT) {
-        if (output_size < len) {
-            return MBEDTLS_ERR_ASN1_BUF_TOO_SMALL;
-        }
-    }
-
-    if (mode == MBEDTLS_PKCS12_PBE_ENCRYPT) {
-        padlen = cipher_info->block_size - (len % cipher_info->block_size);
-        if (output_size < (len + padlen)) {
-            return MBEDTLS_ERR_ASN1_BUF_TOO_SMALL;
-        }
-    }
-
-    iv_len = mbedtls_cipher_info_get_iv_size(cipher_info);
-    if ((ret = pkcs12_pbe_derive_key_iv(pbe_params, md_type, pwd, pwdlen,
-                                        key, keylen,
-                                        iv, iv_len)) != 0) {
-        return ret;
-    }
-
-    mbedtls_cipher_init(&cipher_ctx);
-
-    if ((ret = mbedtls_cipher_setup(&cipher_ctx, cipher_info)) != 0) {
-        goto exit;
-    }
-
-    if ((ret = mbedtls_cipher_setkey(&cipher_ctx, key, 8 * keylen,
-                                     (mbedtls_operation_t) mode)) != 0) {
-        goto exit;
-    }
-
-#if defined(MBEDTLS_CIPHER_MODE_WITH_PADDING)
-    {
-        /* PKCS12 uses CBC with PKCS7 padding */
-        mbedtls_cipher_padding_t padding = MBEDTLS_PADDING_PKCS7;
-#if !defined(MBEDTLS_CIPHER_PADDING_PKCS7)
-        /* For historical reasons, when decrypting, this function works when
-         * decrypting even when support for PKCS7 padding is disabled. In this
-         * case, it ignores the padding, and so will never report a
-         * password mismatch.
-         */
-        if (mode == MBEDTLS_PKCS12_PBE_DECRYPT) {
-            padding = MBEDTLS_PADDING_NONE;
-        }
-#endif
-        if ((ret = mbedtls_cipher_set_padding_mode(&cipher_ctx, padding)) != 0) {
-            goto exit;
-        }
-    }
-#endif /* MBEDTLS_CIPHER_MODE_WITH_PADDING */
-
-    ret = mbedtls_cipher_crypt(&cipher_ctx, iv, iv_len, data, len, output, &finish_olen);
-    if (ret == MBEDTLS_ERR_CIPHER_INVALID_PADDING) {
-        ret = MBEDTLS_ERR_PKCS12_PASSWORD_MISMATCH;
-    }
-
-    *output_len += finish_olen;
-
-exit:
-    mbedtls_platform_zeroize(key, sizeof(key));
-    mbedtls_platform_zeroize(iv,  sizeof(iv));
-    mbedtls_cipher_free(&cipher_ctx);
-
-    return ret;
-}
-
-#endif /* MBEDTLS_ASN1_PARSE_C && MBEDTLS_CIPHER_C */
-
-static void pkcs12_fill_buffer(unsigned char *data, size_t data_len,
-                               const unsigned char *filler, size_t fill_len)
-{
-    unsigned char *p = data;
-    size_t use_len;
-
-    if (filler != NULL && fill_len != 0) {
-        while (data_len > 0) {
-            use_len = (data_len > fill_len) ? fill_len : data_len;
-            memcpy(p, filler, use_len);
-            p += use_len;
-            data_len -= use_len;
-        }
-    } else {
-        /* If either of the above are not true then clearly there is nothing
-         * that this function can do. The function should *not* be called
-         * under either of those circumstances, as you could end up with an
-         * incorrect output but for safety's sake, leaving the check in as
-         * otherwise we could end up with memory corruption.*/
-    }
-}
-
-
-static int calculate_hashes(mbedtls_md_type_t md_type, int iterations,
-                            unsigned char *diversifier, unsigned char *salt_block,
-                            unsigned char *pwd_block, unsigned char *hash_output, int use_salt,
-                            int use_password, size_t hlen, size_t v)
-{
-    int ret = -1;
-    size_t i;
-    const mbedtls_md_info_t *md_info;
-    mbedtls_md_context_t md_ctx;
-    md_info = mbedtls_md_info_from_type(md_type);
-    if (md_info == NULL) {
-        return MBEDTLS_ERR_PKCS12_FEATURE_UNAVAILABLE;
-    }
-
-    mbedtls_md_init(&md_ctx);
-
-    if ((ret = mbedtls_md_setup(&md_ctx, md_info, 0)) != 0) {
-        return ret;
-    }
-    // Calculate hash( diversifier || salt_block || pwd_block )
-    if ((ret = mbedtls_md_starts(&md_ctx)) != 0) {
-        goto exit;
-    }
-
-    if ((ret = mbedtls_md_update(&md_ctx, diversifier, v)) != 0) {
-        goto exit;
-    }
-
-    if (use_salt != 0) {
-        if ((ret = mbedtls_md_update(&md_ctx, salt_block, v)) != 0) {
-            goto exit;
-        }
-    }
-
-    if (use_password != 0) {
-        if ((ret = mbedtls_md_update(&md_ctx, pwd_block, v)) != 0) {
-            goto exit;
-        }
-    }
-
-    if ((ret = mbedtls_md_finish(&md_ctx, hash_output)) != 0) {
-        goto exit;
-    }
-
-    // Perform remaining ( iterations - 1 ) recursive hash calculations
-    for (i = 1; i < (size_t) iterations; i++) {
-        if ((ret = mbedtls_md(md_info, hash_output, hlen, hash_output))
-            != 0) {
-            goto exit;
-        }
-    }
-
-exit:
-    mbedtls_md_free(&md_ctx);
-    return ret;
-}
-
-
-int mbedtls_pkcs12_derivation(unsigned char *data, size_t datalen,
-                              const unsigned char *pwd, size_t pwdlen,
-                              const unsigned char *salt, size_t saltlen,
-                              mbedtls_md_type_t md_type, int id, int iterations)
-{
-    int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
-    unsigned int j;
-
-    unsigned char diversifier[128];
-    unsigned char salt_block[128], pwd_block[128], hash_block[128] = { 0 };
-    unsigned char hash_output[MBEDTLS_MD_MAX_SIZE];
-    unsigned char *p;
-    unsigned char c;
-    int           use_password = 0;
-    int           use_salt = 0;
-
-    size_t hlen, use_len, v, i;
-
-    // This version only allows max of 64 bytes of password or salt
-    if (datalen > 128 || pwdlen > 64 || saltlen > 64) {
-        return MBEDTLS_ERR_PKCS12_BAD_INPUT_DATA;
-    }
-
-    if (pwd == NULL && pwdlen != 0) {
-        return MBEDTLS_ERR_PKCS12_BAD_INPUT_DATA;
-    }
-
-    if (salt == NULL && saltlen != 0) {
-        return MBEDTLS_ERR_PKCS12_BAD_INPUT_DATA;
-    }
-
-    use_password = (pwd && pwdlen != 0);
-    use_salt = (salt && saltlen != 0);
-
-    hlen = mbedtls_md_get_size_from_type(md_type);
-
-    if (hlen <= 32) {
-        v = 64;
-    } else {
-        v = 128;
-    }
-
-    memset(diversifier, (unsigned char) id, v);
-
-    if (use_salt != 0) {
-        pkcs12_fill_buffer(salt_block, v, salt, saltlen);
-    }
-
-    if (use_password != 0) {
-        pkcs12_fill_buffer(pwd_block,  v, pwd,  pwdlen);
-    }
-
-    p = data;
-    while (datalen > 0) {
-        if (calculate_hashes(md_type, iterations, diversifier, salt_block,
-                             pwd_block, hash_output, use_salt, use_password, hlen,
-                             v) != 0) {
-            goto exit;
-        }
-
-        use_len = (datalen > hlen) ? hlen : datalen;
-        memcpy(p, hash_output, use_len);
-        datalen -= use_len;
-        p += use_len;
-
-        if (datalen == 0) {
-            break;
-        }
-
-        // Concatenating copies of hash_output into hash_block (B)
-        pkcs12_fill_buffer(hash_block, v, hash_output, hlen);
-
-        // B += 1
-        for (i = v; i > 0; i--) {
-            if (++hash_block[i - 1] != 0) {
-                break;
-            }
-        }
-
-        if (use_salt != 0) {
-            // salt_block += B
-            c = 0;
-            for (i = v; i > 0; i--) {
-                j = salt_block[i - 1] + hash_block[i - 1] + c;
-                c = MBEDTLS_BYTE_1(j);
-                salt_block[i - 1] = MBEDTLS_BYTE_0(j);
-            }
-        }
-
-        if (use_password != 0) {
-            // pwd_block  += B
-            c = 0;
-            for (i = v; i > 0; i--) {
-                j = pwd_block[i - 1] + hash_block[i - 1] + c;
-                c = MBEDTLS_BYTE_1(j);
-                pwd_block[i - 1] = MBEDTLS_BYTE_0(j);
-            }
-        }
-    }
-
-    ret = 0;
-
-exit:
-    mbedtls_platform_zeroize(salt_block, sizeof(salt_block));
-    mbedtls_platform_zeroize(pwd_block, sizeof(pwd_block));
-    mbedtls_platform_zeroize(hash_block, sizeof(hash_block));
-    mbedtls_platform_zeroize(hash_output, sizeof(hash_output));
-
-    return ret;
-}
-
-#endif /* MBEDTLS_PKCS12_C */
diff --git a/deps/LIEF/third-party/mbedtls/library/pkcs7.c b/deps/LIEF/third-party/mbedtls/library/pkcs7.c
index 3aac662ba69..3481cbdb1bd 100644
--- a/deps/LIEF/third-party/mbedtls/library/pkcs7.c
+++ b/deps/LIEF/third-party/mbedtls/library/pkcs7.c
@@ -2,16 +2,15 @@
  *  Copyright The Mbed TLS Contributors
  *  SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
  */
-#include "common.h"
+#include "x509_internal.h"

-#include "mbedtls/build_info.h"
 #if defined(MBEDTLS_PKCS7_C)
 #include "mbedtls/pkcs7.h"
-#include "x509_internal.h"
 #include "mbedtls/asn1.h"
 #include "mbedtls/x509_crt.h"
 #include "mbedtls/x509_crl.h"
 #include "mbedtls/oid.h"
+#include "x509_oid.h"
 #include "mbedtls/error.h"

 #if defined(MBEDTLS_FS_IO)
@@ -482,7 +481,7 @@ static int pkcs7_get_signed_data(unsigned char *buf, size_t buflen,
         return ret;
     }

-    ret = mbedtls_oid_get_md_alg(&signed_data->digest_alg_identifiers, &md_alg);
+    ret = mbedtls_x509_oid_get_md_alg(&signed_data->digest_alg_identifiers, &md_alg);
     if (ret != 0) {
         return MBEDTLS_ERR_PKCS7_INVALID_ALG;
     }
@@ -661,7 +660,7 @@ static int mbedtls_pkcs7_data_or_hash_verify(mbedtls_pkcs7 *pkcs7,
         return MBEDTLS_ERR_PKCS7_CERT_DATE_INVALID;
     }

-    ret = mbedtls_oid_get_md_alg(&pkcs7->signed_data.digest_alg_identifiers, &md_alg);
+    ret = mbedtls_x509_oid_get_md_alg(&pkcs7->signed_data.digest_alg_identifiers, &md_alg);
     if (ret != 0) {
         return ret;
     }
diff --git a/deps/LIEF/third-party/mbedtls/library/psa_crypto_ffdh.c b/deps/LIEF/third-party/mbedtls/library/psa_crypto_ffdh.c
deleted file mode 100644
index ae38f6d7c6d..00000000000
--- a/deps/LIEF/third-party/mbedtls/library/psa_crypto_ffdh.c
+++ /dev/null
@@ -1,321 +0,0 @@
-/*
- *  PSA FFDH layer on top of Mbed TLS crypto
- */
-/*
- *  Copyright The Mbed TLS Contributors
- *  SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
- */
-
-#include "common.h"
-
-#if defined(MBEDTLS_PSA_CRYPTO_C)
-
-/* This header is only needed because it defines
- * MBEDTLS_DHM_RFC7919_FFDHEXXXX_[P|G]_BIN symbols that are used in
- * mbedtls_psa_ffdh_set_prime_generator(). Apart from that, this module
- * only uses bignum functions for arithmetic. */
-#include <mbedtls/dhm.h>
-
-#include <psa/crypto.h>
-#include "psa_crypto_core.h"
-#include "psa_crypto_ffdh.h"
-#include "psa_crypto_random_impl.h"
-#include "mbedtls/platform.h"
-#include "mbedtls/error.h"
-
-#if defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_DH_KEY_PAIR_EXPORT) ||   \
-    defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_DH_KEY_PAIR_GENERATE) ||   \
-    defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_DH_PUBLIC_KEY) || \
-    defined(MBEDTLS_PSA_BUILTIN_ALG_FFDH)
-static psa_status_t mbedtls_psa_ffdh_set_prime_generator(size_t key_size,
-                                                         mbedtls_mpi *P,
-                                                         mbedtls_mpi *G)
-{
-    const unsigned char *dhm_P = NULL;
-    const unsigned char *dhm_G = NULL;
-    size_t dhm_size_P = 0;
-    size_t dhm_size_G = 0;
-    int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
-
-    if (P == NULL && G == NULL) {
-        return PSA_ERROR_INVALID_ARGUMENT;
-    }
-
-#if defined(MBEDTLS_PSA_BUILTIN_DH_RFC7919_2048)
-    static const unsigned char dhm_P_2048[] =
-        MBEDTLS_DHM_RFC7919_FFDHE2048_P_BIN;
-    static const unsigned char dhm_G_2048[] =
-        MBEDTLS_DHM_RFC7919_FFDHE2048_G_BIN;
-#endif /* MBEDTLS_PSA_BUILTIN_DH_RFC7919_2048 */
-#if defined(MBEDTLS_PSA_BUILTIN_DH_RFC7919_3072)
-    static const unsigned char dhm_P_3072[] =
-        MBEDTLS_DHM_RFC7919_FFDHE3072_P_BIN;
-    static const unsigned char dhm_G_3072[] =
-        MBEDTLS_DHM_RFC7919_FFDHE3072_G_BIN;
-#endif /* MBEDTLS_PSA_BUILTIN_DH_RFC7919_3072 */
-#if defined(MBEDTLS_PSA_BUILTIN_DH_RFC7919_4096)
-    static const unsigned char dhm_P_4096[] =
-        MBEDTLS_DHM_RFC7919_FFDHE4096_P_BIN;
-    static const unsigned char dhm_G_4096[] =
-        MBEDTLS_DHM_RFC7919_FFDHE4096_G_BIN;
-#endif /* MBEDTLS_PSA_BUILTIN_DH_RFC7919_4096 */
-#if defined(MBEDTLS_PSA_BUILTIN_DH_RFC7919_6144)
-    static const unsigned char dhm_P_6144[] =
-        MBEDTLS_DHM_RFC7919_FFDHE6144_P_BIN;
-    static const unsigned char dhm_G_6144[] =
-        MBEDTLS_DHM_RFC7919_FFDHE6144_G_BIN;
-#endif /* MBEDTLS_PSA_BUILTIN_DH_RFC7919_6144 */
-#if defined(MBEDTLS_PSA_BUILTIN_DH_RFC7919_8192)
-    static const unsigned char dhm_P_8192[] =
-        MBEDTLS_DHM_RFC7919_FFDHE8192_P_BIN;
-    static const unsigned char dhm_G_8192[] =
-        MBEDTLS_DHM_RFC7919_FFDHE8192_G_BIN;
-#endif /* MBEDTLS_PSA_BUILTIN_DH_RFC7919_8192 */
-
-    switch (key_size) {
-#if defined(MBEDTLS_PSA_BUILTIN_DH_RFC7919_2048)
-        case sizeof(dhm_P_2048):
-            dhm_P = dhm_P_2048;
-            dhm_G = dhm_G_2048;
-            dhm_size_P = sizeof(dhm_P_2048);
-            dhm_size_G = sizeof(dhm_G_2048);
-            break;
-#endif /* MBEDTLS_PSA_BUILTIN_DH_RFC7919_2048 */
-#if defined(MBEDTLS_PSA_BUILTIN_DH_RFC7919_3072)
-        case sizeof(dhm_P_3072):
-            dhm_P = dhm_P_3072;
-            dhm_G = dhm_G_3072;
-            dhm_size_P = sizeof(dhm_P_3072);
-            dhm_size_G = sizeof(dhm_G_3072);
-            break;
-#endif /* MBEDTLS_PSA_BUILTIN_DH_RFC7919_3072 */
-#if defined(MBEDTLS_PSA_BUILTIN_DH_RFC7919_4096)
-        case sizeof(dhm_P_4096):
-            dhm_P = dhm_P_4096;
-            dhm_G = dhm_G_4096;
-            dhm_size_P = sizeof(dhm_P_4096);
-            dhm_size_G = sizeof(dhm_G_4096);
-            break;
-#endif /* MBEDTLS_PSA_BUILTIN_DH_RFC7919_4096 */
-#if defined(MBEDTLS_PSA_BUILTIN_DH_RFC7919_6144)
-        case sizeof(dhm_P_6144):
-            dhm_P = dhm_P_6144;
-            dhm_G = dhm_G_6144;
-            dhm_size_P = sizeof(dhm_P_6144);
-            dhm_size_G = sizeof(dhm_G_6144);
-            break;
-#endif /* MBEDTLS_PSA_BUILTIN_DH_RFC7919_6144 */
-#if defined(MBEDTLS_PSA_BUILTIN_DH_RFC7919_8192)
-        case sizeof(dhm_P_8192):
-            dhm_P = dhm_P_8192;
-            dhm_G = dhm_G_8192;
-            dhm_size_P = sizeof(dhm_P_8192);
-            dhm_size_G = sizeof(dhm_G_8192);
-            break;
-#endif /* MBEDTLS_PSA_BUILTIN_DH_RFC7919_8192 */
-        default:
-            return PSA_ERROR_INVALID_ARGUMENT;
-    }
-
-    if (P != NULL) {
-        MBEDTLS_MPI_CHK(mbedtls_mpi_read_binary(P, dhm_P,
-                                                dhm_size_P));
-    }
-    if (G != NULL) {
-        MBEDTLS_MPI_CHK(mbedtls_mpi_read_binary(G, dhm_G,
-                                                dhm_size_G));
-    }
-
-cleanup:
-    if (ret != 0) {
-        return mbedtls_to_psa_error(ret);
-    }
-
-    return PSA_SUCCESS;
-}
-#endif /* MBEDTLS_PSA_BUILTIN_KEY_TYPE_DH_KEY_PAIR_EXPORT ||
-          MBEDTLS_PSA_BUILTIN_KEY_TYPE_DH_KEY_PAIR_GENERATE ||
-          MBEDTLS_PSA_BUILTIN_KEY_TYPE_DH_PUBLIC_KEY ||
-          MBEDTLS_PSA_BUILTIN_ALG_FFDH */
-
-#if defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_DH_KEY_PAIR_EXPORT) || \
-    defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_DH_PUBLIC_KEY)
-psa_status_t mbedtls_psa_ffdh_export_public_key(
-    const psa_key_attributes_t *attributes,
-    const uint8_t *key_buffer,
-    size_t key_buffer_size,
-    uint8_t *data,
-    size_t data_size,
-    size_t *data_length)
-{
-    int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
-    psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED;
-    mbedtls_mpi GX, G, X, P;
-    psa_key_type_t type = attributes->type;
-
-    if (PSA_KEY_TYPE_IS_PUBLIC_KEY(type)) {
-        if (key_buffer_size > data_size) {
-            return PSA_ERROR_BUFFER_TOO_SMALL;
-        }
-        memcpy(data, key_buffer, key_buffer_size);
-        memset(data + key_buffer_size, 0,
-               data_size - key_buffer_size);
-        *data_length = key_buffer_size;
-        return PSA_SUCCESS;
-    }
-
-    mbedtls_mpi_init(&GX); mbedtls_mpi_init(&G);
-    mbedtls_mpi_init(&X); mbedtls_mpi_init(&P);
-
-    size_t key_len = PSA_BITS_TO_BYTES(attributes->bits);
-
-    status = mbedtls_psa_ffdh_set_prime_generator(key_len, &P, &G);
-
-    if (status != PSA_SUCCESS) {
-        goto cleanup;
-    }
-
-    MBEDTLS_MPI_CHK(mbedtls_mpi_read_binary(&X, key_buffer,
-                                            key_buffer_size));
-
-    MBEDTLS_MPI_CHK(mbedtls_mpi_exp_mod(&GX, &G, &X, &P, NULL));
-    MBEDTLS_MPI_CHK(mbedtls_mpi_write_binary(&GX, data, key_len));
-
-    *data_length = key_len;
-
-    ret = 0;
-cleanup:
-    mbedtls_mpi_free(&P); mbedtls_mpi_free(&G);
-    mbedtls_mpi_free(&X); mbedtls_mpi_free(&GX);
-
-    if (status == PSA_SUCCESS && ret != 0) {
-        status = mbedtls_to_psa_error(ret);
-    }
-
-    return status;
-}
-#endif /* MBEDTLS_PSA_BUILTIN_KEY_TYPE_DH_KEY_PAIR_EXPORT ||
-          MBEDTLS_PSA_BUILTIN_KEY_TYPE_DH_PUBLIC_KEY */
-
-#if defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_DH_KEY_PAIR_GENERATE)
-psa_status_t mbedtls_psa_ffdh_generate_key(
-    const psa_key_attributes_t *attributes,
-    uint8_t *key_buffer, size_t key_buffer_size, size_t *key_buffer_length)
-{
-    mbedtls_mpi X, P;
-    int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
-    psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED;
-    mbedtls_mpi_init(&P); mbedtls_mpi_init(&X);
-    (void) attributes;
-
-    status = mbedtls_psa_ffdh_set_prime_generator(key_buffer_size, &P, NULL);
-
-    if (status != PSA_SUCCESS) {
-        goto cleanup;
-    }
-
-    /* RFC7919: Traditional finite field Diffie-Hellman has each peer choose their
-        secret exponent from the range [2, P-2].
-        Select random value in range [3, P-1] and decrease it by 1. */
-    MBEDTLS_MPI_CHK(mbedtls_mpi_random(&X, 3, &P, mbedtls_psa_get_random,
-                                       MBEDTLS_PSA_RANDOM_STATE));
-    MBEDTLS_MPI_CHK(mbedtls_mpi_sub_int(&X, &X, 1));
-    MBEDTLS_MPI_CHK(mbedtls_mpi_write_binary(&X, key_buffer, key_buffer_size));
-    *key_buffer_length = key_buffer_size;
-
-cleanup:
-    mbedtls_mpi_free(&P); mbedtls_mpi_free(&X);
-    if (status == PSA_SUCCESS && ret != 0) {
-        return mbedtls_to_psa_error(ret);
-    }
-
-    return status;
-}
-#endif /* MBEDTLS_PSA_BUILTIN_KEY_TYPE_DH_KEY_PAIR_GENERATE */
-
-#if defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_DH_KEY_PAIR_IMPORT)
-psa_status_t mbedtls_psa_ffdh_import_key(
-    const psa_key_attributes_t *attributes,
-    const uint8_t *data, size_t data_length,
-    uint8_t *key_buffer, size_t key_buffer_size,
-    size_t *key_buffer_length, size_t *bits)
-{
-    (void) attributes;
-
-    if (key_buffer_size < data_length) {
-        return PSA_ERROR_BUFFER_TOO_SMALL;
-    }
-    memcpy(key_buffer, data, data_length);
-    *key_buffer_length = data_length;
-    *bits = PSA_BYTES_TO_BITS(data_length);
-
-    return PSA_SUCCESS;
-}
-#endif /* MBEDTLS_PSA_BUILTIN_KEY_TYPE_DH_KEY_PAIR_IMPORT */
-
-#if defined(MBEDTLS_PSA_BUILTIN_ALG_FFDH)
-psa_status_t mbedtls_psa_ffdh_key_agreement(
-    const psa_key_attributes_t *attributes,
-    const uint8_t *peer_key,
-    size_t peer_key_length,
-    const uint8_t *key_buffer,
-    size_t key_buffer_size,
-    uint8_t *shared_secret,
-    size_t shared_secret_size,
-    size_t *shared_secret_length)
-{
-    int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
-    psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED;
-    mbedtls_mpi P, G, X, GY, K;
-    const size_t calculated_shared_secret_size = peer_key_length;
-
-    if (peer_key_length != key_buffer_size ||
-        calculated_shared_secret_size > shared_secret_size) {
-        return PSA_ERROR_INVALID_ARGUMENT;
-    }
-
-    if (!PSA_KEY_TYPE_IS_DH_KEY_PAIR(psa_get_key_type(attributes))) {
-        return PSA_ERROR_INVALID_ARGUMENT;
-    }
-
-    mbedtls_mpi_init(&P); mbedtls_mpi_init(&G);
-    mbedtls_mpi_init(&X); mbedtls_mpi_init(&GY);
-    mbedtls_mpi_init(&K);
-
-    status = mbedtls_psa_ffdh_set_prime_generator(
-        PSA_BITS_TO_BYTES(attributes->bits), &P, &G);
-
-    if (status != PSA_SUCCESS) {
-        goto cleanup;
-    }
-
-    MBEDTLS_MPI_CHK(mbedtls_mpi_read_binary(&X, key_buffer,
-                                            key_buffer_size));
-
-    MBEDTLS_MPI_CHK(mbedtls_mpi_read_binary(&GY, peer_key,
-                                            peer_key_length));
-
-    /* Calculate shared secret public key: K = G^(XY) mod P = GY^X mod P */
-    MBEDTLS_MPI_CHK(mbedtls_mpi_exp_mod(&K, &GY, &X, &P, NULL));
-
-    MBEDTLS_MPI_CHK(mbedtls_mpi_write_binary(&K, shared_secret,
-                                             calculated_shared_secret_size));
-
-    *shared_secret_length = calculated_shared_secret_size;
-
-    ret = 0;
-
-cleanup:
-    mbedtls_mpi_free(&P); mbedtls_mpi_free(&G);
-    mbedtls_mpi_free(&X); mbedtls_mpi_free(&GY);
-    mbedtls_mpi_free(&K);
-
-    if (status == PSA_SUCCESS && ret != 0) {
-        status = mbedtls_to_psa_error(ret);
-    }
-
-    return status;
-}
-#endif /* MBEDTLS_PSA_BUILTIN_ALG_FFDH */
-
-#endif /* MBEDTLS_PSA_CRYPTO_C */
diff --git a/deps/LIEF/third-party/mbedtls/library/psa_crypto_se.c b/deps/LIEF/third-party/mbedtls/library/psa_crypto_se.c
deleted file mode 100644
index 7a36a4f3a5f..00000000000
--- a/deps/LIEF/third-party/mbedtls/library/psa_crypto_se.c
+++ /dev/null
@@ -1,373 +0,0 @@
-/*
- *  PSA crypto support for secure element drivers
- */
-/*
- *  Copyright The Mbed TLS Contributors
- *  SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
- */
-
-#include "common.h"
-
-#if defined(MBEDTLS_PSA_CRYPTO_SE_C)
-
-#include <stdint.h>
-#include <string.h>
-
-#include "psa/crypto_se_driver.h"
-
-#include "psa_crypto_se.h"
-
-#if defined(MBEDTLS_PSA_ITS_FILE_C)
-#include "psa_crypto_its.h"
-#else /* Native ITS implementation */
-#include "psa/error.h"
-#include "psa/internal_trusted_storage.h"
-#endif
-
-#include "mbedtls/platform.h"
-
-
-
-/****************************************************************/
-/* Driver lookup */
-/****************************************************************/
-
-/* This structure is identical to psa_drv_se_context_t declared in
- * `crypto_se_driver.h`, except that some parts are writable here
- * (non-const, or pointer to non-const). */
-typedef struct {
-    void *persistent_data;
-    size_t persistent_data_size;
-    uintptr_t transient_data;
-} psa_drv_se_internal_context_t;
-
-struct psa_se_drv_table_entry_s {
-    psa_key_location_t location;
-    const psa_drv_se_t *methods;
-    union {
-        psa_drv_se_internal_context_t internal;
-        psa_drv_se_context_t context;
-    } u;
-};
-
-static psa_se_drv_table_entry_t driver_table[PSA_MAX_SE_DRIVERS];
-
-psa_se_drv_table_entry_t *psa_get_se_driver_entry(
-    psa_key_lifetime_t lifetime)
-{
-    size_t i;
-    psa_key_location_t location = PSA_KEY_LIFETIME_GET_LOCATION(lifetime);
-    /* In the driver table, location=0 means an entry that isn't used.
-     * No driver has a location of 0 because it's a reserved value
-     * (which designates transparent keys). Make sure we never return
-     * a driver entry for location 0. */
-    if (location == 0) {
-        return NULL;
-    }
-    for (i = 0; i < PSA_MAX_SE_DRIVERS; i++) {
-        if (driver_table[i].location == location) {
-            return &driver_table[i];
-        }
-    }
-    return NULL;
-}
-
-const psa_drv_se_t *psa_get_se_driver_methods(
-    const psa_se_drv_table_entry_t *driver)
-{
-    return driver->methods;
-}
-
-psa_drv_se_context_t *psa_get_se_driver_context(
-    psa_se_drv_table_entry_t *driver)
-{
-    return &driver->u.context;
-}
-
-int psa_get_se_driver(psa_key_lifetime_t lifetime,
-                      const psa_drv_se_t **p_methods,
-                      psa_drv_se_context_t **p_drv_context)
-{
-    psa_se_drv_table_entry_t *driver = psa_get_se_driver_entry(lifetime);
-    if (p_methods != NULL) {
-        *p_methods = (driver ? driver->methods : NULL);
-    }
-    if (p_drv_context != NULL) {
-        *p_drv_context = (driver ? &driver->u.context : NULL);
-    }
-    return driver != NULL;
-}
-
-
-
-/****************************************************************/
-/* Persistent data management */
-/****************************************************************/
-
-static psa_status_t psa_get_se_driver_its_file_uid(
-    const psa_se_drv_table_entry_t *driver,
-    psa_storage_uid_t *uid)
-{
-    if (driver->location > PSA_MAX_SE_LOCATION) {
-        return PSA_ERROR_NOT_SUPPORTED;
-    }
-
-    /* ITS file sizes are limited to 32 bits. */
-    if (driver->u.internal.persistent_data_size > UINT32_MAX) {
-        return PSA_ERROR_NOT_SUPPORTED;
-    }
-
-    /* See the documentation of PSA_CRYPTO_SE_DRIVER_ITS_UID_BASE. */
-    *uid = PSA_CRYPTO_SE_DRIVER_ITS_UID_BASE + driver->location;
-    return PSA_SUCCESS;
-}
-
-psa_status_t psa_load_se_persistent_data(
-    const psa_se_drv_table_entry_t *driver)
-{
-    psa_status_t status;
-    psa_storage_uid_t uid;
-    size_t length;
-
-    status = psa_get_se_driver_its_file_uid(driver, &uid);
-    if (status != PSA_SUCCESS) {
-        return status;
-    }
-
-    /* Read the amount of persistent data that the driver requests.
-     * If the data in storage is larger, it is truncated. If the data
-     * in storage is smaller, silently keep what is already at the end
-     * of the output buffer. */
-    /* psa_get_se_driver_its_file_uid ensures that the size_t
-     * persistent_data_size is in range, but compilers don't know that,
-     * so cast to reassure them. */
-    return psa_its_get(uid, 0,
-                       (uint32_t) driver->u.internal.persistent_data_size,
-                       driver->u.internal.persistent_data,
-                       &length);
-}
-
-psa_status_t psa_save_se_persistent_data(
-    const psa_se_drv_table_entry_t *driver)
-{
-    psa_status_t status;
-    psa_storage_uid_t uid;
-
-    status = psa_get_se_driver_its_file_uid(driver, &uid);
-    if (status != PSA_SUCCESS) {
-        return status;
-    }
-
-    /* psa_get_se_driver_its_file_uid ensures that the size_t
-     * persistent_data_size is in range, but compilers don't know that,
-     * so cast to reassure them. */
-    return psa_its_set(uid,
-                       (uint32_t) driver->u.internal.persistent_data_size,
-                       driver->u.internal.persistent_data,
-                       0);
-}
-
-psa_status_t psa_destroy_se_persistent_data(psa_key_location_t location)
-{
-    psa_storage_uid_t uid;
-    if (location > PSA_MAX_SE_LOCATION) {
-        return PSA_ERROR_NOT_SUPPORTED;
-    }
-    uid = PSA_CRYPTO_SE_DRIVER_ITS_UID_BASE + location;
-    return psa_its_remove(uid);
-}
-
-psa_status_t psa_find_se_slot_for_key(
-    const psa_key_attributes_t *attributes,
-    psa_key_creation_method_t method,
-    psa_se_drv_table_entry_t *driver,
-    psa_key_slot_number_t *slot_number)
-{
-    psa_status_t status;
-    psa_key_location_t key_location =
-        PSA_KEY_LIFETIME_GET_LOCATION(psa_get_key_lifetime(attributes));
-
-    /* If the location is wrong, it's a bug in the library. */
-    if (driver->location != key_location) {
-        return PSA_ERROR_CORRUPTION_DETECTED;
-    }
-
-    /* If the driver doesn't support key creation in any way, give up now. */
-    if (driver->methods->key_management == NULL) {
-        return PSA_ERROR_NOT_SUPPORTED;
-    }
-
-    if (psa_get_key_slot_number(attributes, slot_number) == PSA_SUCCESS) {
-        /* The application wants to use a specific slot. Allow it if
-         * the driver supports it. On a system with isolation,
-         * the crypto service must check that the application is
-         * permitted to request this slot. */
-        psa_drv_se_validate_slot_number_t p_validate_slot_number =
-            driver->methods->key_management->p_validate_slot_number;
-        if (p_validate_slot_number == NULL) {
-            return PSA_ERROR_NOT_SUPPORTED;
-        }
-        status = p_validate_slot_number(&driver->u.context,
-                                        driver->u.internal.persistent_data,
-                                        attributes, method,
-                                        *slot_number);
-    } else if (method == PSA_KEY_CREATION_REGISTER) {
-        /* The application didn't specify a slot number. This doesn't
-         * make sense when registering a slot. */
-        return PSA_ERROR_INVALID_ARGUMENT;
-    } else {
-        /* The application didn't tell us which slot to use. Let the driver
-         * choose. This is the normal case. */
-        psa_drv_se_allocate_key_t p_allocate =
-            driver->methods->key_management->p_allocate;
-        if (p_allocate == NULL) {
-            return PSA_ERROR_NOT_SUPPORTED;
-        }
-        status = p_allocate(&driver->u.context,
-                            driver->u.internal.persistent_data,
-                            attributes, method,
-                            slot_number);
-    }
-    return status;
-}
-
-psa_status_t psa_destroy_se_key(psa_se_drv_table_entry_t *driver,
-                                psa_key_slot_number_t slot_number)
-{
-    psa_status_t status;
-    psa_status_t storage_status;
-    /* Normally a missing method would mean that the action is not
-     * supported. But psa_destroy_key() is not supposed to return
-     * PSA_ERROR_NOT_SUPPORTED: if you can create a key, you should
-     * be able to destroy it. The only use case for a driver that
-     * does not have a way to destroy keys at all is if the keys are
-     * locked in a read-only state: we can use the keys but not
-     * destroy them. Hence, if the driver doesn't support destroying
-     * keys, it's really a lack of permission. */
-    if (driver->methods->key_management == NULL ||
-        driver->methods->key_management->p_destroy == NULL) {
-        return PSA_ERROR_NOT_PERMITTED;
-    }
-    status = driver->methods->key_management->p_destroy(
-        &driver->u.context,
-        driver->u.internal.persistent_data,
-        slot_number);
-    storage_status = psa_save_se_persistent_data(driver);
-    return status == PSA_SUCCESS ? storage_status : status;
-}
-
-psa_status_t psa_init_all_se_drivers(void)
-{
-    size_t i;
-    for (i = 0; i < PSA_MAX_SE_DRIVERS; i++) {
-        psa_se_drv_table_entry_t *driver = &driver_table[i];
-        if (driver->location == 0) {
-            continue; /* skipping unused entry */
-        }
-        const psa_drv_se_t *methods = psa_get_se_driver_methods(driver);
-        if (methods->p_init != NULL) {
-            psa_status_t status = methods->p_init(
-                &driver->u.context,
-                driver->u.internal.persistent_data,
-                driver->location);
-            if (status != PSA_SUCCESS) {
-                return status;
-            }
-            status = psa_save_se_persistent_data(driver);
-            if (status != PSA_SUCCESS) {
-                return status;
-            }
-        }
-    }
-    return PSA_SUCCESS;
-}
-
-
-
-/****************************************************************/
-/* Driver registration */
-/****************************************************************/
-
-psa_status_t psa_register_se_driver(
-    psa_key_location_t location,
-    const psa_drv_se_t *methods)
-{
-    size_t i;
-    psa_status_t status;
-
-    if (methods->hal_version != PSA_DRV_SE_HAL_VERSION) {
-        return PSA_ERROR_NOT_SUPPORTED;
-    }
-    /* Driver table entries are 0-initialized. 0 is not a valid driver
-     * location because it means a transparent key. */
-    MBEDTLS_STATIC_ASSERT(PSA_KEY_LOCATION_LOCAL_STORAGE == 0,
-                          "Secure element support requires 0 to mean a local key");
-
-    if (location == PSA_KEY_LOCATION_LOCAL_STORAGE) {
-        return PSA_ERROR_INVALID_ARGUMENT;
-    }
-    if (location > PSA_MAX_SE_LOCATION) {
-        return PSA_ERROR_NOT_SUPPORTED;
-    }
-
-    for (i = 0; i < PSA_MAX_SE_DRIVERS; i++) {
-        if (driver_table[i].location == 0) {
-            break;
-        }
-        /* Check that location isn't already in use up to the first free
-         * entry. Since entries are created in order and never deleted,
-         * there can't be a used entry after the first free entry. */
-        if (driver_table[i].location == location) {
-            return PSA_ERROR_ALREADY_EXISTS;
-        }
-    }
-    if (i == PSA_MAX_SE_DRIVERS) {
-        return PSA_ERROR_INSUFFICIENT_MEMORY;
-    }
-
-    driver_table[i].location = location;
-    driver_table[i].methods = methods;
-    driver_table[i].u.internal.persistent_data_size =
-        methods->persistent_data_size;
-
-    if (methods->persistent_data_size != 0) {
-        driver_table[i].u.internal.persistent_data =
-            mbedtls_calloc(1, methods->persistent_data_size);
-        if (driver_table[i].u.internal.persistent_data == NULL) {
-            status = PSA_ERROR_INSUFFICIENT_MEMORY;
-            goto error;
-        }
-        /* Load the driver's persistent data. On first use, the persistent
-         * data does not exist in storage, and is initialized to
-         * all-bits-zero by the calloc call just above. */
-        status = psa_load_se_persistent_data(&driver_table[i]);
-        if (status != PSA_SUCCESS && status != PSA_ERROR_DOES_NOT_EXIST) {
-            goto error;
-        }
-    }
-
-    return PSA_SUCCESS;
-
-error:
-    memset(&driver_table[i], 0, sizeof(driver_table[i]));
-    return status;
-}
-
-void psa_unregister_all_se_drivers(void)
-{
-    size_t i;
-    for (i = 0; i < PSA_MAX_SE_DRIVERS; i++) {
-        if (driver_table[i].u.internal.persistent_data != NULL) {
-            mbedtls_free(driver_table[i].u.internal.persistent_data);
-        }
-    }
-    memset(driver_table, 0, sizeof(driver_table));
-}
-
-
-
-/****************************************************************/
-/* The end */
-/****************************************************************/
-
-#endif /* MBEDTLS_PSA_CRYPTO_SE_C */
diff --git a/deps/LIEF/third-party/mbedtls/library/psa_crypto_se.h b/deps/LIEF/third-party/mbedtls/library/psa_crypto_se.h
deleted file mode 100644
index e0bd5acfb3a..00000000000
--- a/deps/LIEF/third-party/mbedtls/library/psa_crypto_se.h
+++ /dev/null
@@ -1,192 +0,0 @@
-/*
- *  PSA crypto support for secure element drivers
- */
-/*
- *  Copyright The Mbed TLS Contributors
- *  SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
- */
-
-#ifndef PSA_CRYPTO_SE_H
-#define PSA_CRYPTO_SE_H
-
-/*
- * Include the build-time configuration information header. Here, we do not
- * include `"mbedtls/build_info.h"` directly but `"psa/build_info.h"`, which
- * is basically just an alias to it. This is to ease the maintenance of the
- * TF-PSA-Crypto repository which has a different build system and
- * configuration.
- */
-#include "psa/build_info.h"
-
-#include "psa/crypto.h"
-#include "psa/crypto_se_driver.h"
-
-/** The maximum location value that this implementation supports
- * for a secure element.
- *
- * This is not a characteristic that each PSA implementation has, but a
- * limitation of the current implementation due to the constraints imposed
- * by storage. See #PSA_CRYPTO_SE_DRIVER_ITS_UID_BASE.
- *
- * The minimum location value for a secure element is 1, like on any
- * PSA implementation (0 means a transparent key).
- */
-#define PSA_MAX_SE_LOCATION 255
-
-/** The base of the range of ITS file identifiers for secure element
- * driver persistent data.
- *
- * We use a slice of the implementation reserved range 0xffff0000..0xffffffff,
- * specifically the range 0xfffffe00..0xfffffeff. The length of this range
- * drives the value of #PSA_MAX_SE_LOCATION. The identifier 0xfffffe00 is
- * actually not used since it corresponds to #PSA_KEY_LOCATION_LOCAL_STORAGE
- * which doesn't have a driver.
- */
-#define PSA_CRYPTO_SE_DRIVER_ITS_UID_BASE ((psa_key_id_t) 0xfffffe00)
-
-/** The maximum number of registered secure element driver locations. */
-#define PSA_MAX_SE_DRIVERS 4
-
-/** Unregister all secure element drivers.
- *
- * \warning Do not call this function while the library is in the initialized
- *          state. This function is only intended to be called at the end
- *          of mbedtls_psa_crypto_free().
- */
-void psa_unregister_all_se_drivers(void);
-
-/** Initialize all secure element drivers.
- *
- * Called from psa_crypto_init().
- */
-psa_status_t psa_init_all_se_drivers(void);
-
-/** A structure that describes a registered secure element driver.
- *
- * A secure element driver table entry contains a pointer to the
- * driver's method table as well as the driver context structure.
- */
-typedef struct psa_se_drv_table_entry_s psa_se_drv_table_entry_t;
-
-/** Return the secure element driver information for a lifetime value.
- *
- * \param lifetime              The lifetime value to query.
- * \param[out] p_methods        On output, if there is a driver,
- *                              \c *methods points to its method table.
- *                              Otherwise \c *methods is \c NULL.
- * \param[out] p_drv_context    On output, if there is a driver,
- *                              \c *drv_context points to its context
- *                              structure.
- *                              Otherwise \c *drv_context is \c NULL.
- *
- * \retval 1
- *         \p lifetime corresponds to a registered driver.
- * \retval 0
- *         \p lifetime does not correspond to a registered driver.
- */
-int psa_get_se_driver(psa_key_lifetime_t lifetime,
-                      const psa_drv_se_t **p_methods,
-                      psa_drv_se_context_t **p_drv_context);
-
-/** Return the secure element driver table entry for a lifetime value.
- *
- * \param lifetime      The lifetime value to query.
- *
- * \return The driver table entry for \p lifetime, or
- *         \p NULL if \p lifetime does not correspond to a registered driver.
- */
-psa_se_drv_table_entry_t *psa_get_se_driver_entry(
-    psa_key_lifetime_t lifetime);
-
-/** Return the method table for a secure element driver.
- *
- * \param[in] driver    The driver table entry to access, or \c NULL.
- *
- * \return The driver's method table.
- *         \c NULL if \p driver is \c NULL.
- */
-const psa_drv_se_t *psa_get_se_driver_methods(
-    const psa_se_drv_table_entry_t *driver);
-
-/** Return the context of a secure element driver.
- *
- * \param[in] driver    The driver table entry to access, or \c NULL.
- *
- * \return A pointer to the driver context.
- *         \c NULL if \p driver is \c NULL.
- */
-psa_drv_se_context_t *psa_get_se_driver_context(
-    psa_se_drv_table_entry_t *driver);
-
-/** Find a free slot for a key that is to be created.
- *
- * This function calls the relevant method in the driver to find a suitable
- * slot for a key with the given attributes.
- *
- * \param[in] attributes    Metadata about the key that is about to be created.
- * \param[in] driver        The driver table entry to query.
- * \param[out] slot_number  On success, a slot number that is free in this
- *                          secure element.
- */
-psa_status_t psa_find_se_slot_for_key(
-    const psa_key_attributes_t *attributes,
-    psa_key_creation_method_t method,
-    psa_se_drv_table_entry_t *driver,
-    psa_key_slot_number_t *slot_number);
-
-/** Destroy a key in a secure element.
- *
- * This function calls the relevant driver method to destroy a key
- * and updates the driver's persistent data.
- */
-psa_status_t psa_destroy_se_key(psa_se_drv_table_entry_t *driver,
-                                psa_key_slot_number_t slot_number);
-
-/** Load the persistent data of a secure element driver.
- *
- * \param driver        The driver table entry containing the persistent
- *                      data to load from storage.
- *
- * \return #PSA_SUCCESS
- * \return #PSA_ERROR_NOT_SUPPORTED
- * \return #PSA_ERROR_DOES_NOT_EXIST
- * \return #PSA_ERROR_STORAGE_FAILURE
- * \return #PSA_ERROR_DATA_CORRUPT
- * \return #PSA_ERROR_INVALID_ARGUMENT
- */
-psa_status_t psa_load_se_persistent_data(
-    const psa_se_drv_table_entry_t *driver);
-
-/** Save the persistent data of a secure element driver.
- *
- * \param[in] driver    The driver table entry containing the persistent
- *                      data to save to storage.
- *
- * \return #PSA_SUCCESS
- * \return #PSA_ERROR_NOT_SUPPORTED
- * \return #PSA_ERROR_NOT_PERMITTED
- * \return #PSA_ERROR_NOT_SUPPORTED
- * \return #PSA_ERROR_INSUFFICIENT_STORAGE
- * \return #PSA_ERROR_STORAGE_FAILURE
- * \return #PSA_ERROR_INVALID_ARGUMENT
- */
-psa_status_t psa_save_se_persistent_data(
-    const psa_se_drv_table_entry_t *driver);
-
-/** Destroy the persistent data of a secure element driver.
- *
- * This is currently only used for testing.
- *
- * \param[in] location  The location identifier for the driver whose
- *                      persistent data is to be erased.
- */
-psa_status_t psa_destroy_se_persistent_data(psa_key_location_t location);
-
-
-/** The storage representation of a key whose data is in a secure element.
- */
-typedef struct {
-    uint8_t slot_number[sizeof(psa_key_slot_number_t)];
-} psa_se_key_data_storage_t;
-
-#endif /* PSA_CRYPTO_SE_H */
diff --git a/deps/LIEF/third-party/mbedtls/library/ssl_cache.c b/deps/LIEF/third-party/mbedtls/library/ssl_cache.c
index 772cb8fdfe6..28d0cfbb7d6 100644
--- a/deps/LIEF/third-party/mbedtls/library/ssl_cache.c
+++ b/deps/LIEF/third-party/mbedtls/library/ssl_cache.c
@@ -9,14 +9,13 @@
  * to store and retrieve the session information.
  */

-#include "common.h"
+#include "ssl_misc.h"

 #if defined(MBEDTLS_SSL_CACHE_C)

 #include "mbedtls/platform.h"

 #include "mbedtls/ssl_cache.h"
-#include "ssl_misc.h"
 #include "mbedtls/error.h"

 #include <string.h>
diff --git a/deps/LIEF/third-party/mbedtls/library/ssl_ciphersuites.c b/deps/LIEF/third-party/mbedtls/library/ssl_ciphersuites.c
index 23619a26c88..d61932cb95d 100644
--- a/deps/LIEF/third-party/mbedtls/library/ssl_ciphersuites.c
+++ b/deps/LIEF/third-party/mbedtls/library/ssl_ciphersuites.c
@@ -7,7 +7,7 @@
  *  SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
  */

-#include "common.h"
+#include "ssl_misc.h"

 #if defined(MBEDTLS_SSL_TLS_C)

@@ -16,9 +16,7 @@
 #include "mbedtls/ssl_ciphersuites.h"
 #include "mbedtls/ssl.h"
 #include "ssl_misc.h"
-#if defined(MBEDTLS_USE_PSA_CRYPTO)
 #include "mbedtls/psa_util.h"
-#endif

 #include <string.h>

@@ -51,184 +49,66 @@ static const int ciphersuite_preference[] =
     /* Chacha-Poly ephemeral suites */
     MBEDTLS_TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256,
     MBEDTLS_TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256,
-    MBEDTLS_TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256,

     /* All AES-256 ephemeral suites */
     MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,
     MBEDTLS_TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,
-    MBEDTLS_TLS_DHE_RSA_WITH_AES_256_GCM_SHA384,
     MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_256_CCM,
-    MBEDTLS_TLS_DHE_RSA_WITH_AES_256_CCM,
     MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384,
     MBEDTLS_TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384,
-    MBEDTLS_TLS_DHE_RSA_WITH_AES_256_CBC_SHA256,
     MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA,
     MBEDTLS_TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,
-    MBEDTLS_TLS_DHE_RSA_WITH_AES_256_CBC_SHA,
     MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_256_CCM_8,
-    MBEDTLS_TLS_DHE_RSA_WITH_AES_256_CCM_8,

     /* All CAMELLIA-256 ephemeral suites */
     MBEDTLS_TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_GCM_SHA384,
     MBEDTLS_TLS_ECDHE_RSA_WITH_CAMELLIA_256_GCM_SHA384,
-    MBEDTLS_TLS_DHE_RSA_WITH_CAMELLIA_256_GCM_SHA384,
     MBEDTLS_TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_CBC_SHA384,
     MBEDTLS_TLS_ECDHE_RSA_WITH_CAMELLIA_256_CBC_SHA384,
-    MBEDTLS_TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA256,
-    MBEDTLS_TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA,

     /* All ARIA-256 ephemeral suites */
     MBEDTLS_TLS_ECDHE_ECDSA_WITH_ARIA_256_GCM_SHA384,
     MBEDTLS_TLS_ECDHE_RSA_WITH_ARIA_256_GCM_SHA384,
-    MBEDTLS_TLS_DHE_RSA_WITH_ARIA_256_GCM_SHA384,
     MBEDTLS_TLS_ECDHE_ECDSA_WITH_ARIA_256_CBC_SHA384,
     MBEDTLS_TLS_ECDHE_RSA_WITH_ARIA_256_CBC_SHA384,
-    MBEDTLS_TLS_DHE_RSA_WITH_ARIA_256_CBC_SHA384,

     /* All AES-128 ephemeral suites */
     MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,
     MBEDTLS_TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,
-    MBEDTLS_TLS_DHE_RSA_WITH_AES_128_GCM_SHA256,
     MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_128_CCM,
-    MBEDTLS_TLS_DHE_RSA_WITH_AES_128_CCM,
     MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256,
     MBEDTLS_TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,
-    MBEDTLS_TLS_DHE_RSA_WITH_AES_128_CBC_SHA256,
     MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA,
     MBEDTLS_TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,
-    MBEDTLS_TLS_DHE_RSA_WITH_AES_128_CBC_SHA,
     MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8,
-    MBEDTLS_TLS_DHE_RSA_WITH_AES_128_CCM_8,

     /* All CAMELLIA-128 ephemeral suites */
     MBEDTLS_TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_GCM_SHA256,
     MBEDTLS_TLS_ECDHE_RSA_WITH_CAMELLIA_128_GCM_SHA256,
-    MBEDTLS_TLS_DHE_RSA_WITH_CAMELLIA_128_GCM_SHA256,
     MBEDTLS_TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_CBC_SHA256,
     MBEDTLS_TLS_ECDHE_RSA_WITH_CAMELLIA_128_CBC_SHA256,
-    MBEDTLS_TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA256,
-    MBEDTLS_TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA,

     /* All ARIA-128 ephemeral suites */
     MBEDTLS_TLS_ECDHE_ECDSA_WITH_ARIA_128_GCM_SHA256,
     MBEDTLS_TLS_ECDHE_RSA_WITH_ARIA_128_GCM_SHA256,
-    MBEDTLS_TLS_DHE_RSA_WITH_ARIA_128_GCM_SHA256,
     MBEDTLS_TLS_ECDHE_ECDSA_WITH_ARIA_128_CBC_SHA256,
     MBEDTLS_TLS_ECDHE_RSA_WITH_ARIA_128_CBC_SHA256,
-    MBEDTLS_TLS_DHE_RSA_WITH_ARIA_128_CBC_SHA256,

     /* The PSK ephemeral suites */
     MBEDTLS_TLS_ECDHE_PSK_WITH_CHACHA20_POLY1305_SHA256,
-    MBEDTLS_TLS_DHE_PSK_WITH_CHACHA20_POLY1305_SHA256,
-    MBEDTLS_TLS_DHE_PSK_WITH_AES_256_GCM_SHA384,
-    MBEDTLS_TLS_DHE_PSK_WITH_AES_256_CCM,
     MBEDTLS_TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA384,
-    MBEDTLS_TLS_DHE_PSK_WITH_AES_256_CBC_SHA384,
     MBEDTLS_TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA,
-    MBEDTLS_TLS_DHE_PSK_WITH_AES_256_CBC_SHA,
-    MBEDTLS_TLS_DHE_PSK_WITH_CAMELLIA_256_GCM_SHA384,
     MBEDTLS_TLS_ECDHE_PSK_WITH_CAMELLIA_256_CBC_SHA384,
-    MBEDTLS_TLS_DHE_PSK_WITH_CAMELLIA_256_CBC_SHA384,
-    MBEDTLS_TLS_DHE_PSK_WITH_AES_256_CCM_8,
-    MBEDTLS_TLS_DHE_PSK_WITH_ARIA_256_GCM_SHA384,
     MBEDTLS_TLS_ECDHE_PSK_WITH_ARIA_256_CBC_SHA384,
-    MBEDTLS_TLS_DHE_PSK_WITH_ARIA_256_CBC_SHA384,

-    MBEDTLS_TLS_DHE_PSK_WITH_AES_128_GCM_SHA256,
-    MBEDTLS_TLS_DHE_PSK_WITH_AES_128_CCM,
     MBEDTLS_TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA256,
-    MBEDTLS_TLS_DHE_PSK_WITH_AES_128_CBC_SHA256,
     MBEDTLS_TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA,
-    MBEDTLS_TLS_DHE_PSK_WITH_AES_128_CBC_SHA,
-    MBEDTLS_TLS_DHE_PSK_WITH_CAMELLIA_128_GCM_SHA256,
-    MBEDTLS_TLS_DHE_PSK_WITH_CAMELLIA_128_CBC_SHA256,
     MBEDTLS_TLS_ECDHE_PSK_WITH_CAMELLIA_128_CBC_SHA256,
-    MBEDTLS_TLS_DHE_PSK_WITH_AES_128_CCM_8,
-    MBEDTLS_TLS_DHE_PSK_WITH_ARIA_128_GCM_SHA256,
     MBEDTLS_TLS_ECDHE_PSK_WITH_ARIA_128_CBC_SHA256,
-    MBEDTLS_TLS_DHE_PSK_WITH_ARIA_128_CBC_SHA256,

     /* The ECJPAKE suite */
     MBEDTLS_TLS_ECJPAKE_WITH_AES_128_CCM_8,

-    /* All AES-256 suites */
-    MBEDTLS_TLS_RSA_WITH_AES_256_GCM_SHA384,
-    MBEDTLS_TLS_RSA_WITH_AES_256_CCM,
-    MBEDTLS_TLS_RSA_WITH_AES_256_CBC_SHA256,
-    MBEDTLS_TLS_RSA_WITH_AES_256_CBC_SHA,
-    MBEDTLS_TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384,
-    MBEDTLS_TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384,
-    MBEDTLS_TLS_ECDH_RSA_WITH_AES_256_CBC_SHA,
-    MBEDTLS_TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384,
-    MBEDTLS_TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384,
-    MBEDTLS_TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA,
-    MBEDTLS_TLS_RSA_WITH_AES_256_CCM_8,
-
-    /* All CAMELLIA-256 suites */
-    MBEDTLS_TLS_RSA_WITH_CAMELLIA_256_GCM_SHA384,
-    MBEDTLS_TLS_RSA_WITH_CAMELLIA_256_CBC_SHA256,
-    MBEDTLS_TLS_RSA_WITH_CAMELLIA_256_CBC_SHA,
-    MBEDTLS_TLS_ECDH_RSA_WITH_CAMELLIA_256_GCM_SHA384,
-    MBEDTLS_TLS_ECDH_RSA_WITH_CAMELLIA_256_CBC_SHA384,
-    MBEDTLS_TLS_ECDH_ECDSA_WITH_CAMELLIA_256_GCM_SHA384,
-    MBEDTLS_TLS_ECDH_ECDSA_WITH_CAMELLIA_256_CBC_SHA384,
-
-    /* All ARIA-256 suites */
-    MBEDTLS_TLS_ECDH_ECDSA_WITH_ARIA_256_GCM_SHA384,
-    MBEDTLS_TLS_ECDH_RSA_WITH_ARIA_256_GCM_SHA384,
-    MBEDTLS_TLS_RSA_WITH_ARIA_256_GCM_SHA384,
-    MBEDTLS_TLS_ECDH_ECDSA_WITH_ARIA_256_CBC_SHA384,
-    MBEDTLS_TLS_ECDH_RSA_WITH_ARIA_256_CBC_SHA384,
-    MBEDTLS_TLS_RSA_WITH_ARIA_256_CBC_SHA384,
-
-    /* All AES-128 suites */
-    MBEDTLS_TLS_RSA_WITH_AES_128_GCM_SHA256,
-    MBEDTLS_TLS_RSA_WITH_AES_128_CCM,
-    MBEDTLS_TLS_RSA_WITH_AES_128_CBC_SHA256,
-    MBEDTLS_TLS_RSA_WITH_AES_128_CBC_SHA,
-    MBEDTLS_TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256,
-    MBEDTLS_TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256,
-    MBEDTLS_TLS_ECDH_RSA_WITH_AES_128_CBC_SHA,
-    MBEDTLS_TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256,
-    MBEDTLS_TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256,
-    MBEDTLS_TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA,
-    MBEDTLS_TLS_RSA_WITH_AES_128_CCM_8,
-
-    /* All CAMELLIA-128 suites */
-    MBEDTLS_TLS_RSA_WITH_CAMELLIA_128_GCM_SHA256,
-    MBEDTLS_TLS_RSA_WITH_CAMELLIA_128_CBC_SHA256,
-    MBEDTLS_TLS_RSA_WITH_CAMELLIA_128_CBC_SHA,
-    MBEDTLS_TLS_ECDH_RSA_WITH_CAMELLIA_128_GCM_SHA256,
-    MBEDTLS_TLS_ECDH_RSA_WITH_CAMELLIA_128_CBC_SHA256,
-    MBEDTLS_TLS_ECDH_ECDSA_WITH_CAMELLIA_128_GCM_SHA256,
-    MBEDTLS_TLS_ECDH_ECDSA_WITH_CAMELLIA_128_CBC_SHA256,
-
-    /* All ARIA-128 suites */
-    MBEDTLS_TLS_ECDH_ECDSA_WITH_ARIA_128_GCM_SHA256,
-    MBEDTLS_TLS_ECDH_RSA_WITH_ARIA_128_GCM_SHA256,
-    MBEDTLS_TLS_RSA_WITH_ARIA_128_GCM_SHA256,
-    MBEDTLS_TLS_ECDH_ECDSA_WITH_ARIA_128_CBC_SHA256,
-    MBEDTLS_TLS_ECDH_RSA_WITH_ARIA_128_CBC_SHA256,
-    MBEDTLS_TLS_RSA_WITH_ARIA_128_CBC_SHA256,
-
-    /* The RSA PSK suites */
-    MBEDTLS_TLS_RSA_PSK_WITH_CHACHA20_POLY1305_SHA256,
-    MBEDTLS_TLS_RSA_PSK_WITH_AES_256_GCM_SHA384,
-    MBEDTLS_TLS_RSA_PSK_WITH_AES_256_CBC_SHA384,
-    MBEDTLS_TLS_RSA_PSK_WITH_AES_256_CBC_SHA,
-    MBEDTLS_TLS_RSA_PSK_WITH_CAMELLIA_256_GCM_SHA384,
-    MBEDTLS_TLS_RSA_PSK_WITH_CAMELLIA_256_CBC_SHA384,
-    MBEDTLS_TLS_RSA_PSK_WITH_ARIA_256_GCM_SHA384,
-    MBEDTLS_TLS_RSA_PSK_WITH_ARIA_256_CBC_SHA384,
-
-    MBEDTLS_TLS_RSA_PSK_WITH_AES_128_GCM_SHA256,
-    MBEDTLS_TLS_RSA_PSK_WITH_AES_128_CBC_SHA256,
-    MBEDTLS_TLS_RSA_PSK_WITH_AES_128_CBC_SHA,
-    MBEDTLS_TLS_RSA_PSK_WITH_CAMELLIA_128_GCM_SHA256,
-    MBEDTLS_TLS_RSA_PSK_WITH_CAMELLIA_128_CBC_SHA256,
-    MBEDTLS_TLS_RSA_PSK_WITH_ARIA_128_GCM_SHA256,
-    MBEDTLS_TLS_RSA_PSK_WITH_ARIA_128_CBC_SHA256,
-
     /* The PSK suites */
     MBEDTLS_TLS_PSK_WITH_CHACHA20_POLY1305_SHA256,
     MBEDTLS_TLS_PSK_WITH_AES_256_GCM_SHA384,
@@ -257,18 +137,7 @@ static const int ciphersuite_preference[] =
     MBEDTLS_TLS_ECDHE_PSK_WITH_NULL_SHA384,
     MBEDTLS_TLS_ECDHE_PSK_WITH_NULL_SHA256,
     MBEDTLS_TLS_ECDHE_PSK_WITH_NULL_SHA,
-    MBEDTLS_TLS_DHE_PSK_WITH_NULL_SHA384,
-    MBEDTLS_TLS_DHE_PSK_WITH_NULL_SHA256,
-    MBEDTLS_TLS_DHE_PSK_WITH_NULL_SHA,
-
-    MBEDTLS_TLS_RSA_WITH_NULL_SHA256,
-    MBEDTLS_TLS_RSA_WITH_NULL_SHA,
-    MBEDTLS_TLS_RSA_WITH_NULL_MD5,
-    MBEDTLS_TLS_ECDH_RSA_WITH_NULL_SHA,
-    MBEDTLS_TLS_ECDH_ECDSA_WITH_NULL_SHA,
-    MBEDTLS_TLS_RSA_PSK_WITH_NULL_SHA384,
-    MBEDTLS_TLS_RSA_PSK_WITH_NULL_SHA256,
-    MBEDTLS_TLS_RSA_PSK_WITH_NULL_SHA,
+
     MBEDTLS_TLS_PSK_WITH_NULL_SHA384,
     MBEDTLS_TLS_PSK_WITH_NULL_SHA256,
     MBEDTLS_TLS_PSK_WITH_NULL_SHA,
@@ -280,24 +149,24 @@ static const int ciphersuite_preference[] =
 static const mbedtls_ssl_ciphersuite_t ciphersuite_definitions[] =
 {
 #if defined(MBEDTLS_SSL_PROTO_TLS1_3)
-#if defined(MBEDTLS_SSL_HAVE_AES)
-#if defined(MBEDTLS_SSL_HAVE_GCM)
-#if defined(MBEDTLS_MD_CAN_SHA384)
+#if defined(PSA_WANT_KEY_TYPE_AES)
+#if defined(PSA_WANT_ALG_GCM)
+#if defined(PSA_WANT_ALG_SHA_384)
     { MBEDTLS_TLS1_3_AES_256_GCM_SHA384, "TLS1-3-AES-256-GCM-SHA384",
       MBEDTLS_CIPHER_AES_256_GCM, MBEDTLS_MD_SHA384,
       MBEDTLS_KEY_EXCHANGE_NONE, /* Key exchange not part of ciphersuite in TLS 1.3 */
       0,
       MBEDTLS_SSL_VERSION_TLS1_3, MBEDTLS_SSL_VERSION_TLS1_3 },
-#endif /* MBEDTLS_MD_CAN_SHA384 */
-#if defined(MBEDTLS_MD_CAN_SHA256)
+#endif /* PSA_WANT_ALG_SHA_384 */
+#if defined(PSA_WANT_ALG_SHA_256)
     { MBEDTLS_TLS1_3_AES_128_GCM_SHA256, "TLS1-3-AES-128-GCM-SHA256",
       MBEDTLS_CIPHER_AES_128_GCM, MBEDTLS_MD_SHA256,
       MBEDTLS_KEY_EXCHANGE_NONE, /* Key exchange not part of ciphersuite in TLS 1.3 */
       0,
       MBEDTLS_SSL_VERSION_TLS1_3, MBEDTLS_SSL_VERSION_TLS1_3 },
-#endif /* MBEDTLS_MD_CAN_SHA256 */
-#endif /* MBEDTLS_SSL_HAVE_GCM */
-#if defined(MBEDTLS_SSL_HAVE_CCM) && defined(MBEDTLS_MD_CAN_SHA256)
+#endif /* PSA_WANT_ALG_SHA_256 */
+#endif /* PSA_WANT_ALG_GCM */
+#if defined(PSA_WANT_ALG_CCM) && defined(PSA_WANT_ALG_SHA_256)
     { MBEDTLS_TLS1_3_AES_128_CCM_SHA256, "TLS1-3-AES-128-CCM-SHA256",
       MBEDTLS_CIPHER_AES_128_CCM, MBEDTLS_MD_SHA256,
       MBEDTLS_KEY_EXCHANGE_NONE, /* Key exchange not part of ciphersuite in TLS 1.3 */
@@ -308,20 +177,20 @@ static const mbedtls_ssl_ciphersuite_t ciphersuite_definitions[] =
       MBEDTLS_KEY_EXCHANGE_NONE, /* Key exchange not part of ciphersuite in TLS 1.3 */
       MBEDTLS_CIPHERSUITE_SHORT_TAG,
       MBEDTLS_SSL_VERSION_TLS1_3, MBEDTLS_SSL_VERSION_TLS1_3 },
-#endif /* MBEDTLS_MD_CAN_SHA256 && MBEDTLS_SSL_HAVE_CCM */
-#endif /* MBEDTLS_SSL_HAVE_AES */
-#if defined(MBEDTLS_SSL_HAVE_CHACHAPOLY) && defined(MBEDTLS_MD_CAN_SHA256)
+#endif /* PSA_WANT_ALG_SHA_256 && PSA_WANT_ALG_CCM */
+#endif /* PSA_WANT_KEY_TYPE_AES */
+#if defined(PSA_WANT_ALG_CHACHA20_POLY1305) && defined(PSA_WANT_ALG_SHA_256)
     { MBEDTLS_TLS1_3_CHACHA20_POLY1305_SHA256,
       "TLS1-3-CHACHA20-POLY1305-SHA256",
       MBEDTLS_CIPHER_CHACHA20_POLY1305, MBEDTLS_MD_SHA256,
       MBEDTLS_KEY_EXCHANGE_NONE, /* Key exchange not part of ciphersuite in TLS 1.3 */
       0,
       MBEDTLS_SSL_VERSION_TLS1_3, MBEDTLS_SSL_VERSION_TLS1_3 },
-#endif /* MBEDTLS_SSL_HAVE_CHACHAPOLY && MBEDTLS_MD_CAN_SHA256 */
+#endif /* PSA_WANT_ALG_CHACHA20_POLY1305 && PSA_WANT_ALG_SHA_256 */
 #endif /* MBEDTLS_SSL_PROTO_TLS1_3 */

-#if defined(MBEDTLS_SSL_HAVE_CHACHAPOLY) && \
-    defined(MBEDTLS_MD_CAN_SHA256) && \
+#if defined(PSA_WANT_ALG_CHACHA20_POLY1305) && \
+    defined(PSA_WANT_ALG_SHA_256) && \
     defined(MBEDTLS_SSL_PROTO_TLS1_2)
 #if defined(MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED)
     { MBEDTLS_TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256,
@@ -339,14 +208,6 @@ static const mbedtls_ssl_ciphersuite_t ciphersuite_definitions[] =
       0,
       MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
 #endif
-#if defined(MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED)
-    { MBEDTLS_TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256,
-      "TLS-DHE-RSA-WITH-CHACHA20-POLY1305-SHA256",
-      MBEDTLS_CIPHER_CHACHA20_POLY1305, MBEDTLS_MD_SHA256,
-      MBEDTLS_KEY_EXCHANGE_DHE_RSA,
-      0,
-      MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
-#endif
 #if defined(MBEDTLS_KEY_EXCHANGE_PSK_ENABLED)
     { MBEDTLS_TLS_PSK_WITH_CHACHA20_POLY1305_SHA256,
       "TLS-PSK-WITH-CHACHA20-POLY1305-SHA256",
@@ -363,29 +224,13 @@ static const mbedtls_ssl_ciphersuite_t ciphersuite_definitions[] =
       0,
       MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
 #endif
-#if defined(MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED)
-    { MBEDTLS_TLS_DHE_PSK_WITH_CHACHA20_POLY1305_SHA256,
-      "TLS-DHE-PSK-WITH-CHACHA20-POLY1305-SHA256",
-      MBEDTLS_CIPHER_CHACHA20_POLY1305, MBEDTLS_MD_SHA256,
-      MBEDTLS_KEY_EXCHANGE_DHE_PSK,
-      0,
-      MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
-#endif
-#if defined(MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED)
-    { MBEDTLS_TLS_RSA_PSK_WITH_CHACHA20_POLY1305_SHA256,
-      "TLS-RSA-PSK-WITH-CHACHA20-POLY1305-SHA256",
-      MBEDTLS_CIPHER_CHACHA20_POLY1305, MBEDTLS_MD_SHA256,
-      MBEDTLS_KEY_EXCHANGE_RSA_PSK,
-      0,
-      MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
-#endif
-#endif /* MBEDTLS_SSL_HAVE_CHACHAPOLY &&
-          MBEDTLS_MD_CAN_SHA256 &&
+#endif /* PSA_WANT_ALG_CHACHA20_POLY1305 &&
+          PSA_WANT_ALG_SHA_256 &&
           MBEDTLS_SSL_PROTO_TLS1_2 */
 #if defined(MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED)
-#if defined(MBEDTLS_SSL_HAVE_AES)
-#if defined(MBEDTLS_MD_CAN_SHA1)
-#if defined(MBEDTLS_SSL_HAVE_CBC)
+#if defined(PSA_WANT_KEY_TYPE_AES)
+#if defined(PSA_WANT_ALG_SHA_1)
+#if defined(PSA_WANT_ALG_CBC_NO_PADDING)
     { MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA, "TLS-ECDHE-ECDSA-WITH-AES-128-CBC-SHA",
       MBEDTLS_CIPHER_AES_128_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA,
       0,
@@ -394,37 +239,37 @@ static const mbedtls_ssl_ciphersuite_t ciphersuite_definitions[] =
       MBEDTLS_CIPHER_AES_256_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA,
       0,
       MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
-#endif /* MBEDTLS_SSL_HAVE_CBC */
-#endif /* MBEDTLS_MD_CAN_SHA1 */
-#if defined(MBEDTLS_MD_CAN_SHA256)
-#if defined(MBEDTLS_SSL_HAVE_CBC)
+#endif /* PSA_WANT_ALG_CBC_NO_PADDING */
+#endif /* PSA_WANT_ALG_SHA_1 */
+#if defined(PSA_WANT_ALG_SHA_256)
+#if defined(PSA_WANT_ALG_CBC_NO_PADDING)
     { MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256, "TLS-ECDHE-ECDSA-WITH-AES-128-CBC-SHA256",
       MBEDTLS_CIPHER_AES_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA,
       0,
       MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
-#endif /* MBEDTLS_SSL_HAVE_CBC */
-#if defined(MBEDTLS_SSL_HAVE_GCM)
+#endif /* PSA_WANT_ALG_CBC_NO_PADDING */
+#if defined(PSA_WANT_ALG_GCM)
     { MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256, "TLS-ECDHE-ECDSA-WITH-AES-128-GCM-SHA256",
       MBEDTLS_CIPHER_AES_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA,
       0,
       MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
-#endif /* MBEDTLS_SSL_HAVE_GCM */
-#endif /* MBEDTLS_MD_CAN_SHA256 */
-#if defined(MBEDTLS_MD_CAN_SHA384)
-#if defined(MBEDTLS_SSL_HAVE_CBC)
+#endif /* PSA_WANT_ALG_GCM */
+#endif /* PSA_WANT_ALG_SHA_256 */
+#if defined(PSA_WANT_ALG_SHA_384)
+#if defined(PSA_WANT_ALG_CBC_NO_PADDING)
     { MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384, "TLS-ECDHE-ECDSA-WITH-AES-256-CBC-SHA384",
       MBEDTLS_CIPHER_AES_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA,
       0,
       MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
-#endif /* MBEDTLS_SSL_HAVE_CBC */
-#if defined(MBEDTLS_SSL_HAVE_GCM)
+#endif /* PSA_WANT_ALG_CBC_NO_PADDING */
+#if defined(PSA_WANT_ALG_GCM)
     { MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384, "TLS-ECDHE-ECDSA-WITH-AES-256-GCM-SHA384",
       MBEDTLS_CIPHER_AES_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA,
       0,
       MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
-#endif /* MBEDTLS_SSL_HAVE_GCM */
-#endif /* MBEDTLS_MD_CAN_SHA384 */
-#if defined(MBEDTLS_SSL_HAVE_CCM)
+#endif /* PSA_WANT_ALG_GCM */
+#endif /* PSA_WANT_ALG_SHA_384 */
+#if defined(PSA_WANT_ALG_CCM)
     { MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_256_CCM, "TLS-ECDHE-ECDSA-WITH-AES-256-CCM",
       MBEDTLS_CIPHER_AES_256_CCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA,
       0,
@@ -441,59 +286,59 @@ static const mbedtls_ssl_ciphersuite_t ciphersuite_definitions[] =
       MBEDTLS_CIPHER_AES_128_CCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA,
       MBEDTLS_CIPHERSUITE_SHORT_TAG,
       MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
-#endif /* MBEDTLS_SSL_HAVE_CCM */
-#endif /* MBEDTLS_SSL_HAVE_AES */
+#endif /* PSA_WANT_ALG_CCM */
+#endif /* PSA_WANT_KEY_TYPE_AES */

-#if defined(MBEDTLS_SSL_HAVE_CAMELLIA)
-#if defined(MBEDTLS_SSL_HAVE_CBC)
-#if defined(MBEDTLS_MD_CAN_SHA256)
+#if defined(PSA_WANT_KEY_TYPE_CAMELLIA)
+#if defined(PSA_WANT_ALG_CBC_NO_PADDING)
+#if defined(PSA_WANT_ALG_SHA_256)
     { MBEDTLS_TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_CBC_SHA256,
       "TLS-ECDHE-ECDSA-WITH-CAMELLIA-128-CBC-SHA256",
       MBEDTLS_CIPHER_CAMELLIA_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA,
       0,
       MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
-#endif /* MBEDTLS_MD_CAN_SHA256 */
-#if defined(MBEDTLS_MD_CAN_SHA384)
+#endif /* PSA_WANT_ALG_SHA_256 */
+#if defined(PSA_WANT_ALG_SHA_384)
     { MBEDTLS_TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_CBC_SHA384,
       "TLS-ECDHE-ECDSA-WITH-CAMELLIA-256-CBC-SHA384",
       MBEDTLS_CIPHER_CAMELLIA_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA,
       0,
       MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
-#endif /* MBEDTLS_MD_CAN_SHA384 */
-#endif /* MBEDTLS_SSL_HAVE_CBC */
+#endif /* PSA_WANT_ALG_SHA_384 */
+#endif /* PSA_WANT_ALG_CBC_NO_PADDING */

-#if defined(MBEDTLS_SSL_HAVE_GCM)
-#if defined(MBEDTLS_MD_CAN_SHA256)
+#if defined(PSA_WANT_ALG_GCM)
+#if defined(PSA_WANT_ALG_SHA_256)
     { MBEDTLS_TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_GCM_SHA256,
       "TLS-ECDHE-ECDSA-WITH-CAMELLIA-128-GCM-SHA256",
       MBEDTLS_CIPHER_CAMELLIA_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA,
       0,
       MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
-#endif /* MBEDTLS_MD_CAN_SHA256 */
-#if defined(MBEDTLS_MD_CAN_SHA384)
+#endif /* PSA_WANT_ALG_SHA_256 */
+#if defined(PSA_WANT_ALG_SHA_384)
     { MBEDTLS_TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_GCM_SHA384,
       "TLS-ECDHE-ECDSA-WITH-CAMELLIA-256-GCM-SHA384",
       MBEDTLS_CIPHER_CAMELLIA_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA,
       0,
       MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
-#endif /* MBEDTLS_MD_CAN_SHA384 */
-#endif /* MBEDTLS_SSL_HAVE_GCM */
-#endif /* MBEDTLS_SSL_HAVE_CAMELLIA */
+#endif /* PSA_WANT_ALG_SHA_384 */
+#endif /* PSA_WANT_ALG_GCM */
+#endif /* PSA_WANT_KEY_TYPE_CAMELLIA */

-#if defined(MBEDTLS_CIPHER_NULL_CIPHER)
-#if defined(MBEDTLS_MD_CAN_SHA1)
+#if defined(MBEDTLS_SSL_NULL_CIPHERSUITES)
+#if defined(PSA_WANT_ALG_SHA_1)
     { MBEDTLS_TLS_ECDHE_ECDSA_WITH_NULL_SHA, "TLS-ECDHE-ECDSA-WITH-NULL-SHA",
       MBEDTLS_CIPHER_NULL, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA,
       MBEDTLS_CIPHERSUITE_WEAK,
       MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
-#endif /* MBEDTLS_MD_CAN_SHA1 */
-#endif /* MBEDTLS_CIPHER_NULL_CIPHER */
+#endif /* PSA_WANT_ALG_SHA_1 */
+#endif /* MBEDTLS_SSL_NULL_CIPHERSUITES */
 #endif /* MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED */

 #if defined(MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED)
-#if defined(MBEDTLS_SSL_HAVE_AES)
-#if defined(MBEDTLS_MD_CAN_SHA1)
-#if defined(MBEDTLS_SSL_HAVE_CBC)
+#if defined(PSA_WANT_KEY_TYPE_AES)
+#if defined(PSA_WANT_ALG_SHA_1)
+#if defined(PSA_WANT_ALG_CBC_NO_PADDING)
     { MBEDTLS_TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, "TLS-ECDHE-RSA-WITH-AES-128-CBC-SHA",
       MBEDTLS_CIPHER_AES_128_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_ECDHE_RSA,
       0,
@@ -502,517 +347,118 @@ static const mbedtls_ssl_ciphersuite_t ciphersuite_definitions[] =
       MBEDTLS_CIPHER_AES_256_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_ECDHE_RSA,
       0,
       MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
-#endif /* MBEDTLS_SSL_HAVE_CBC */
-#endif /* MBEDTLS_MD_CAN_SHA1 */
-#if defined(MBEDTLS_MD_CAN_SHA256)
-#if defined(MBEDTLS_SSL_HAVE_CBC)
+#endif /* PSA_WANT_ALG_CBC_NO_PADDING */
+#endif /* PSA_WANT_ALG_SHA_1 */
+#if defined(PSA_WANT_ALG_SHA_256)
+#if defined(PSA_WANT_ALG_CBC_NO_PADDING)
     { MBEDTLS_TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256, "TLS-ECDHE-RSA-WITH-AES-128-CBC-SHA256",
       MBEDTLS_CIPHER_AES_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDHE_RSA,
       0,
       MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
-#endif /* MBEDTLS_SSL_HAVE_CBC */
-#if defined(MBEDTLS_SSL_HAVE_GCM)
+#endif /* PSA_WANT_ALG_CBC_NO_PADDING */
+#if defined(PSA_WANT_ALG_GCM)
     { MBEDTLS_TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, "TLS-ECDHE-RSA-WITH-AES-128-GCM-SHA256",
       MBEDTLS_CIPHER_AES_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDHE_RSA,
       0,
       MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
-#endif /* MBEDTLS_SSL_HAVE_GCM */
-#endif /* MBEDTLS_MD_CAN_SHA256 */
-#if defined(MBEDTLS_MD_CAN_SHA384)
-#if defined(MBEDTLS_SSL_HAVE_CBC)
+#endif /* PSA_WANT_ALG_GCM */
+#endif /* PSA_WANT_ALG_SHA_256 */
+#if defined(PSA_WANT_ALG_SHA_384)
+#if defined(PSA_WANT_ALG_CBC_NO_PADDING)
     { MBEDTLS_TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384, "TLS-ECDHE-RSA-WITH-AES-256-CBC-SHA384",
       MBEDTLS_CIPHER_AES_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDHE_RSA,
       0,
       MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
-#endif /* MBEDTLS_SSL_HAVE_CBC */
-#if defined(MBEDTLS_SSL_HAVE_GCM)
+#endif /* PSA_WANT_ALG_CBC_NO_PADDING */
+#if defined(PSA_WANT_ALG_GCM)
     { MBEDTLS_TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384, "TLS-ECDHE-RSA-WITH-AES-256-GCM-SHA384",
       MBEDTLS_CIPHER_AES_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDHE_RSA,
       0,
       MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
-#endif /* MBEDTLS_SSL_HAVE_GCM */
-#endif /* MBEDTLS_MD_CAN_SHA384 */
-#endif /* MBEDTLS_SSL_HAVE_AES */
+#endif /* PSA_WANT_ALG_GCM */
+#endif /* PSA_WANT_ALG_SHA_384 */
+#endif /* PSA_WANT_KEY_TYPE_AES */

-#if defined(MBEDTLS_SSL_HAVE_CAMELLIA)
-#if defined(MBEDTLS_SSL_HAVE_CBC)
-#if defined(MBEDTLS_MD_CAN_SHA256)
+#if defined(PSA_WANT_KEY_TYPE_CAMELLIA)
+#if defined(PSA_WANT_ALG_CBC_NO_PADDING)
+#if defined(PSA_WANT_ALG_SHA_256)
     { MBEDTLS_TLS_ECDHE_RSA_WITH_CAMELLIA_128_CBC_SHA256,
       "TLS-ECDHE-RSA-WITH-CAMELLIA-128-CBC-SHA256",
       MBEDTLS_CIPHER_CAMELLIA_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDHE_RSA,
       0,
       MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
-#endif /* MBEDTLS_MD_CAN_SHA256 */
-#if defined(MBEDTLS_MD_CAN_SHA384)
+#endif /* PSA_WANT_ALG_SHA_256 */
+#if defined(PSA_WANT_ALG_SHA_384)
     { MBEDTLS_TLS_ECDHE_RSA_WITH_CAMELLIA_256_CBC_SHA384,
       "TLS-ECDHE-RSA-WITH-CAMELLIA-256-CBC-SHA384",
       MBEDTLS_CIPHER_CAMELLIA_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDHE_RSA,
       0,
       MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
-#endif /* MBEDTLS_MD_CAN_SHA384 */
-#endif /* MBEDTLS_SSL_HAVE_CBC */
+#endif /* PSA_WANT_ALG_SHA_384 */
+#endif /* PSA_WANT_ALG_CBC_NO_PADDING */

-#if defined(MBEDTLS_SSL_HAVE_GCM)
-#if defined(MBEDTLS_MD_CAN_SHA256)
+#if defined(PSA_WANT_ALG_GCM)
+#if defined(PSA_WANT_ALG_SHA_256)
     { MBEDTLS_TLS_ECDHE_RSA_WITH_CAMELLIA_128_GCM_SHA256,
       "TLS-ECDHE-RSA-WITH-CAMELLIA-128-GCM-SHA256",
       MBEDTLS_CIPHER_CAMELLIA_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDHE_RSA,
       0,
       MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
-#endif /* MBEDTLS_MD_CAN_SHA256 */
-#if defined(MBEDTLS_MD_CAN_SHA384)
+#endif /* PSA_WANT_ALG_SHA_256 */
+#if defined(PSA_WANT_ALG_SHA_384)
     { MBEDTLS_TLS_ECDHE_RSA_WITH_CAMELLIA_256_GCM_SHA384,
       "TLS-ECDHE-RSA-WITH-CAMELLIA-256-GCM-SHA384",
       MBEDTLS_CIPHER_CAMELLIA_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDHE_RSA,
       0,
       MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
-#endif /* MBEDTLS_MD_CAN_SHA384 */
-#endif /* MBEDTLS_SSL_HAVE_GCM */
-#endif /* MBEDTLS_SSL_HAVE_CAMELLIA */
+#endif /* PSA_WANT_ALG_SHA_384 */
+#endif /* PSA_WANT_ALG_GCM */
+#endif /* PSA_WANT_KEY_TYPE_CAMELLIA */

-#if defined(MBEDTLS_CIPHER_NULL_CIPHER)
-#if defined(MBEDTLS_MD_CAN_SHA1)
+#if defined(MBEDTLS_SSL_NULL_CIPHERSUITES)
+#if defined(PSA_WANT_ALG_SHA_1)
     { MBEDTLS_TLS_ECDHE_RSA_WITH_NULL_SHA, "TLS-ECDHE-RSA-WITH-NULL-SHA",
       MBEDTLS_CIPHER_NULL, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_ECDHE_RSA,
       MBEDTLS_CIPHERSUITE_WEAK,
       MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
-#endif /* MBEDTLS_MD_CAN_SHA1 */
-#endif /* MBEDTLS_CIPHER_NULL_CIPHER */
+#endif /* PSA_WANT_ALG_SHA_1 */
+#endif /* MBEDTLS_SSL_NULL_CIPHERSUITES */
 #endif /* MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED */

-#if defined(MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED)
-#if defined(MBEDTLS_SSL_HAVE_AES)
-#if defined(MBEDTLS_MD_CAN_SHA384) && \
-    defined(MBEDTLS_SSL_HAVE_GCM)
-    { MBEDTLS_TLS_DHE_RSA_WITH_AES_256_GCM_SHA384, "TLS-DHE-RSA-WITH-AES-256-GCM-SHA384",
-      MBEDTLS_CIPHER_AES_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_DHE_RSA,
-      0,
-      MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
-#endif /* MBEDTLS_MD_CAN_SHA384 && MBEDTLS_SSL_HAVE_GCM */
-
-#if defined(MBEDTLS_MD_CAN_SHA256)
-#if defined(MBEDTLS_SSL_HAVE_GCM)
-    { MBEDTLS_TLS_DHE_RSA_WITH_AES_128_GCM_SHA256, "TLS-DHE-RSA-WITH-AES-128-GCM-SHA256",
-      MBEDTLS_CIPHER_AES_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_DHE_RSA,
-      0,
-      MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
-#endif /* MBEDTLS_SSL_HAVE_GCM */
-
-#if defined(MBEDTLS_SSL_HAVE_CBC)
-    { MBEDTLS_TLS_DHE_RSA_WITH_AES_128_CBC_SHA256, "TLS-DHE-RSA-WITH-AES-128-CBC-SHA256",
-      MBEDTLS_CIPHER_AES_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_DHE_RSA,
-      0,
-      MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
-
-    { MBEDTLS_TLS_DHE_RSA_WITH_AES_256_CBC_SHA256, "TLS-DHE-RSA-WITH-AES-256-CBC-SHA256",
-      MBEDTLS_CIPHER_AES_256_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_DHE_RSA,
-      0,
-      MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
-#endif /* MBEDTLS_SSL_HAVE_CBC */
-#endif /* MBEDTLS_MD_CAN_SHA256 */
-
-#if defined(MBEDTLS_SSL_HAVE_CBC)
-#if defined(MBEDTLS_MD_CAN_SHA1)
-    { MBEDTLS_TLS_DHE_RSA_WITH_AES_128_CBC_SHA, "TLS-DHE-RSA-WITH-AES-128-CBC-SHA",
-      MBEDTLS_CIPHER_AES_128_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_DHE_RSA,
-      0,
-      MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
-
-    { MBEDTLS_TLS_DHE_RSA_WITH_AES_256_CBC_SHA, "TLS-DHE-RSA-WITH-AES-256-CBC-SHA",
-      MBEDTLS_CIPHER_AES_256_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_DHE_RSA,
-      0,
-      MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
-#endif /* MBEDTLS_MD_CAN_SHA1 */
-#endif /* MBEDTLS_SSL_HAVE_CBC */
-#if defined(MBEDTLS_SSL_HAVE_CCM)
-    { MBEDTLS_TLS_DHE_RSA_WITH_AES_256_CCM, "TLS-DHE-RSA-WITH-AES-256-CCM",
-      MBEDTLS_CIPHER_AES_256_CCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_DHE_RSA,
-      0,
-      MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
-    { MBEDTLS_TLS_DHE_RSA_WITH_AES_256_CCM_8, "TLS-DHE-RSA-WITH-AES-256-CCM-8",
-      MBEDTLS_CIPHER_AES_256_CCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_DHE_RSA,
-      MBEDTLS_CIPHERSUITE_SHORT_TAG,
-      MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
-    { MBEDTLS_TLS_DHE_RSA_WITH_AES_128_CCM, "TLS-DHE-RSA-WITH-AES-128-CCM",
-      MBEDTLS_CIPHER_AES_128_CCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_DHE_RSA,
-      0,
-      MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
-    { MBEDTLS_TLS_DHE_RSA_WITH_AES_128_CCM_8, "TLS-DHE-RSA-WITH-AES-128-CCM-8",
-      MBEDTLS_CIPHER_AES_128_CCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_DHE_RSA,
-      MBEDTLS_CIPHERSUITE_SHORT_TAG,
-      MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
-#endif /* MBEDTLS_SSL_HAVE_CCM */
-#endif /* MBEDTLS_SSL_HAVE_AES */
-
-#if defined(MBEDTLS_SSL_HAVE_CAMELLIA)
-#if defined(MBEDTLS_SSL_HAVE_CBC)
-#if defined(MBEDTLS_MD_CAN_SHA256)
-    { MBEDTLS_TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA256, "TLS-DHE-RSA-WITH-CAMELLIA-128-CBC-SHA256",
-      MBEDTLS_CIPHER_CAMELLIA_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_DHE_RSA,
-      0,
-      MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
-
-    { MBEDTLS_TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA256, "TLS-DHE-RSA-WITH-CAMELLIA-256-CBC-SHA256",
-      MBEDTLS_CIPHER_CAMELLIA_256_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_DHE_RSA,
-      0,
-      MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
-#endif /* MBEDTLS_MD_CAN_SHA256 */
-
-#if defined(MBEDTLS_MD_CAN_SHA1)
-    { MBEDTLS_TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA, "TLS-DHE-RSA-WITH-CAMELLIA-128-CBC-SHA",
-      MBEDTLS_CIPHER_CAMELLIA_128_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_DHE_RSA,
-      0,
-      MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
-
-    { MBEDTLS_TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA, "TLS-DHE-RSA-WITH-CAMELLIA-256-CBC-SHA",
-      MBEDTLS_CIPHER_CAMELLIA_256_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_DHE_RSA,
-      0,
-      MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
-#endif /* MBEDTLS_MD_CAN_SHA1 */
-#endif /* MBEDTLS_SSL_HAVE_CBC */
-#if defined(MBEDTLS_SSL_HAVE_GCM)
-#if defined(MBEDTLS_MD_CAN_SHA256)
-    { MBEDTLS_TLS_DHE_RSA_WITH_CAMELLIA_128_GCM_SHA256, "TLS-DHE-RSA-WITH-CAMELLIA-128-GCM-SHA256",
-      MBEDTLS_CIPHER_CAMELLIA_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_DHE_RSA,
-      0,
-      MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
-#endif /* MBEDTLS_MD_CAN_SHA256 */
-
-#if defined(MBEDTLS_MD_CAN_SHA384)
-    { MBEDTLS_TLS_DHE_RSA_WITH_CAMELLIA_256_GCM_SHA384, "TLS-DHE-RSA-WITH-CAMELLIA-256-GCM-SHA384",
-      MBEDTLS_CIPHER_CAMELLIA_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_DHE_RSA,
-      0,
-      MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
-#endif /* MBEDTLS_MD_CAN_SHA384 */
-#endif /* MBEDTLS_SSL_HAVE_GCM */
-#endif /* MBEDTLS_SSL_HAVE_CAMELLIA */
-
-#endif /* MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED */
-
-#if defined(MBEDTLS_KEY_EXCHANGE_RSA_ENABLED)
-#if defined(MBEDTLS_SSL_HAVE_AES)
-#if defined(MBEDTLS_MD_CAN_SHA384) && \
-    defined(MBEDTLS_SSL_HAVE_GCM)
-    { MBEDTLS_TLS_RSA_WITH_AES_256_GCM_SHA384, "TLS-RSA-WITH-AES-256-GCM-SHA384",
-      MBEDTLS_CIPHER_AES_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_RSA,
-      0,
-      MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
-#endif /* MBEDTLS_MD_CAN_SHA384 && MBEDTLS_SSL_HAVE_GCM */
-
-#if defined(MBEDTLS_MD_CAN_SHA256)
-#if defined(MBEDTLS_SSL_HAVE_GCM)
-    { MBEDTLS_TLS_RSA_WITH_AES_128_GCM_SHA256, "TLS-RSA-WITH-AES-128-GCM-SHA256",
-      MBEDTLS_CIPHER_AES_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_RSA,
-      0,
-      MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
-#endif /* MBEDTLS_SSL_HAVE_GCM */
-
-#if defined(MBEDTLS_SSL_HAVE_CBC)
-    { MBEDTLS_TLS_RSA_WITH_AES_128_CBC_SHA256, "TLS-RSA-WITH-AES-128-CBC-SHA256",
-      MBEDTLS_CIPHER_AES_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_RSA,
-      0,
-      MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
-
-    { MBEDTLS_TLS_RSA_WITH_AES_256_CBC_SHA256, "TLS-RSA-WITH-AES-256-CBC-SHA256",
-      MBEDTLS_CIPHER_AES_256_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_RSA,
-      0,
-      MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
-#endif /* MBEDTLS_SSL_HAVE_CBC */
-#endif /* MBEDTLS_MD_CAN_SHA256 */
-
-#if defined(MBEDTLS_MD_CAN_SHA1)
-#if defined(MBEDTLS_SSL_HAVE_CBC)
-    { MBEDTLS_TLS_RSA_WITH_AES_128_CBC_SHA, "TLS-RSA-WITH-AES-128-CBC-SHA",
-      MBEDTLS_CIPHER_AES_128_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_RSA,
-      0,
-      MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
-
-    { MBEDTLS_TLS_RSA_WITH_AES_256_CBC_SHA, "TLS-RSA-WITH-AES-256-CBC-SHA",
-      MBEDTLS_CIPHER_AES_256_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_RSA,
-      0,
-      MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
-#endif /* MBEDTLS_SSL_HAVE_CBC */
-#endif /* MBEDTLS_MD_CAN_SHA1 */
-#if defined(MBEDTLS_SSL_HAVE_CCM)
-    { MBEDTLS_TLS_RSA_WITH_AES_256_CCM, "TLS-RSA-WITH-AES-256-CCM",
-      MBEDTLS_CIPHER_AES_256_CCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_RSA,
-      0,
-      MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
-    { MBEDTLS_TLS_RSA_WITH_AES_256_CCM_8, "TLS-RSA-WITH-AES-256-CCM-8",
-      MBEDTLS_CIPHER_AES_256_CCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_RSA,
-      MBEDTLS_CIPHERSUITE_SHORT_TAG,
-      MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
-    { MBEDTLS_TLS_RSA_WITH_AES_128_CCM, "TLS-RSA-WITH-AES-128-CCM",
-      MBEDTLS_CIPHER_AES_128_CCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_RSA,
-      0,
-      MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
-    { MBEDTLS_TLS_RSA_WITH_AES_128_CCM_8, "TLS-RSA-WITH-AES-128-CCM-8",
-      MBEDTLS_CIPHER_AES_128_CCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_RSA,
-      MBEDTLS_CIPHERSUITE_SHORT_TAG,
-      MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
-#endif /* MBEDTLS_SSL_HAVE_CCM */
-#endif /* MBEDTLS_SSL_HAVE_AES */
-
-#if defined(MBEDTLS_SSL_HAVE_CAMELLIA)
-#if defined(MBEDTLS_SSL_HAVE_CBC)
-#if defined(MBEDTLS_MD_CAN_SHA256)
-    { MBEDTLS_TLS_RSA_WITH_CAMELLIA_128_CBC_SHA256, "TLS-RSA-WITH-CAMELLIA-128-CBC-SHA256",
-      MBEDTLS_CIPHER_CAMELLIA_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_RSA,
-      0,
-      MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
-
-    { MBEDTLS_TLS_RSA_WITH_CAMELLIA_256_CBC_SHA256, "TLS-RSA-WITH-CAMELLIA-256-CBC-SHA256",
-      MBEDTLS_CIPHER_CAMELLIA_256_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_RSA,
-      0,
-      MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
-#endif /* MBEDTLS_MD_CAN_SHA256 */
-
-#if defined(MBEDTLS_MD_CAN_SHA1)
-    { MBEDTLS_TLS_RSA_WITH_CAMELLIA_128_CBC_SHA, "TLS-RSA-WITH-CAMELLIA-128-CBC-SHA",
-      MBEDTLS_CIPHER_CAMELLIA_128_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_RSA,
-      0,
-      MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
-
-    { MBEDTLS_TLS_RSA_WITH_CAMELLIA_256_CBC_SHA, "TLS-RSA-WITH-CAMELLIA-256-CBC-SHA",
-      MBEDTLS_CIPHER_CAMELLIA_256_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_RSA,
-      0,
-      MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
-#endif /* MBEDTLS_MD_CAN_SHA1 */
-#endif /* MBEDTLS_SSL_HAVE_CBC */
-
-#if defined(MBEDTLS_SSL_HAVE_GCM)
-#if defined(MBEDTLS_MD_CAN_SHA256)
-    { MBEDTLS_TLS_RSA_WITH_CAMELLIA_128_GCM_SHA256, "TLS-RSA-WITH-CAMELLIA-128-GCM-SHA256",
-      MBEDTLS_CIPHER_CAMELLIA_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_RSA,
-      0,
-      MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
-#endif /* MBEDTLS_MD_CAN_SHA256 */
-
-#if defined(MBEDTLS_MD_CAN_SHA384)
-    { MBEDTLS_TLS_RSA_WITH_CAMELLIA_256_GCM_SHA384, "TLS-RSA-WITH-CAMELLIA-256-GCM-SHA384",
-      MBEDTLS_CIPHER_CAMELLIA_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_RSA,
-      0,
-      MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
-#endif /* MBEDTLS_MD_CAN_SHA384 */
-#endif /* MBEDTLS_SSL_HAVE_GCM */
-#endif /* MBEDTLS_SSL_HAVE_CAMELLIA */
-
-#endif /* MBEDTLS_KEY_EXCHANGE_RSA_ENABLED */
-
-#if defined(MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED)
-#if defined(MBEDTLS_SSL_HAVE_AES)
-#if defined(MBEDTLS_MD_CAN_SHA1)
-#if defined(MBEDTLS_SSL_HAVE_CBC)
-    { MBEDTLS_TLS_ECDH_RSA_WITH_AES_128_CBC_SHA, "TLS-ECDH-RSA-WITH-AES-128-CBC-SHA",
-      MBEDTLS_CIPHER_AES_128_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_ECDH_RSA,
-      0,
-      MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
-    { MBEDTLS_TLS_ECDH_RSA_WITH_AES_256_CBC_SHA, "TLS-ECDH-RSA-WITH-AES-256-CBC-SHA",
-      MBEDTLS_CIPHER_AES_256_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_ECDH_RSA,
-      0,
-      MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
-#endif /* MBEDTLS_SSL_HAVE_CBC */
-#endif /* MBEDTLS_MD_CAN_SHA1 */
-#if defined(MBEDTLS_MD_CAN_SHA256)
-#if defined(MBEDTLS_SSL_HAVE_CBC)
-    { MBEDTLS_TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256, "TLS-ECDH-RSA-WITH-AES-128-CBC-SHA256",
-      MBEDTLS_CIPHER_AES_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDH_RSA,
-      0,
-      MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
-#endif /* MBEDTLS_SSL_HAVE_CBC */
-#if defined(MBEDTLS_SSL_HAVE_GCM)
-    { MBEDTLS_TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256, "TLS-ECDH-RSA-WITH-AES-128-GCM-SHA256",
-      MBEDTLS_CIPHER_AES_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDH_RSA,
-      0,
-      MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
-#endif /* MBEDTLS_SSL_HAVE_GCM */
-#endif /* MBEDTLS_MD_CAN_SHA256 */
-#if defined(MBEDTLS_MD_CAN_SHA384)
-#if defined(MBEDTLS_SSL_HAVE_CBC)
-    { MBEDTLS_TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384, "TLS-ECDH-RSA-WITH-AES-256-CBC-SHA384",
-      MBEDTLS_CIPHER_AES_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDH_RSA,
-      0,
-      MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
-#endif /* MBEDTLS_SSL_HAVE_CBC */
-#if defined(MBEDTLS_SSL_HAVE_GCM)
-    { MBEDTLS_TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384, "TLS-ECDH-RSA-WITH-AES-256-GCM-SHA384",
-      MBEDTLS_CIPHER_AES_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDH_RSA,
-      0,
-      MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
-#endif /* MBEDTLS_SSL_HAVE_GCM */
-#endif /* MBEDTLS_MD_CAN_SHA384 */
-#endif /* MBEDTLS_SSL_HAVE_AES */
-
-#if defined(MBEDTLS_SSL_HAVE_CAMELLIA)
-#if defined(MBEDTLS_SSL_HAVE_CBC)
-#if defined(MBEDTLS_MD_CAN_SHA256)
-    { MBEDTLS_TLS_ECDH_RSA_WITH_CAMELLIA_128_CBC_SHA256,
-      "TLS-ECDH-RSA-WITH-CAMELLIA-128-CBC-SHA256",
-      MBEDTLS_CIPHER_CAMELLIA_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDH_RSA,
-      0,
-      MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
-#endif /* MBEDTLS_MD_CAN_SHA256 */
-#if defined(MBEDTLS_MD_CAN_SHA384)
-    { MBEDTLS_TLS_ECDH_RSA_WITH_CAMELLIA_256_CBC_SHA384,
-      "TLS-ECDH-RSA-WITH-CAMELLIA-256-CBC-SHA384",
-      MBEDTLS_CIPHER_CAMELLIA_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDH_RSA,
-      0,
-      MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
-#endif /* MBEDTLS_MD_CAN_SHA384 */
-#endif /* MBEDTLS_SSL_HAVE_CBC */
-
-#if defined(MBEDTLS_SSL_HAVE_GCM)
-#if defined(MBEDTLS_MD_CAN_SHA256)
-    { MBEDTLS_TLS_ECDH_RSA_WITH_CAMELLIA_128_GCM_SHA256,
-      "TLS-ECDH-RSA-WITH-CAMELLIA-128-GCM-SHA256",
-      MBEDTLS_CIPHER_CAMELLIA_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDH_RSA,
-      0,
-      MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
-#endif /* MBEDTLS_MD_CAN_SHA256 */
-#if defined(MBEDTLS_MD_CAN_SHA384)
-    { MBEDTLS_TLS_ECDH_RSA_WITH_CAMELLIA_256_GCM_SHA384,
-      "TLS-ECDH-RSA-WITH-CAMELLIA-256-GCM-SHA384",
-      MBEDTLS_CIPHER_CAMELLIA_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDH_RSA,
-      0,
-      MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
-#endif /* MBEDTLS_MD_CAN_SHA384 */
-#endif /* MBEDTLS_SSL_HAVE_GCM */
-#endif /* MBEDTLS_SSL_HAVE_CAMELLIA */
-
-#if defined(MBEDTLS_CIPHER_NULL_CIPHER)
-#if defined(MBEDTLS_MD_CAN_SHA1)
-    { MBEDTLS_TLS_ECDH_RSA_WITH_NULL_SHA, "TLS-ECDH-RSA-WITH-NULL-SHA",
-      MBEDTLS_CIPHER_NULL, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_ECDH_RSA,
-      MBEDTLS_CIPHERSUITE_WEAK,
-      MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
-#endif /* MBEDTLS_MD_CAN_SHA1 */
-#endif /* MBEDTLS_CIPHER_NULL_CIPHER */
-#endif /* MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED */
-
-#if defined(MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED)
-#if defined(MBEDTLS_SSL_HAVE_AES)
-#if defined(MBEDTLS_MD_CAN_SHA1)
-#if defined(MBEDTLS_SSL_HAVE_CBC)
-    { MBEDTLS_TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA, "TLS-ECDH-ECDSA-WITH-AES-128-CBC-SHA",
-      MBEDTLS_CIPHER_AES_128_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA,
-      0,
-      MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
-    { MBEDTLS_TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA, "TLS-ECDH-ECDSA-WITH-AES-256-CBC-SHA",
-      MBEDTLS_CIPHER_AES_256_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA,
-      0,
-      MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
-#endif /* MBEDTLS_SSL_HAVE_CBC */
-#endif /* MBEDTLS_MD_CAN_SHA1 */
-#if defined(MBEDTLS_MD_CAN_SHA256)
-#if defined(MBEDTLS_SSL_HAVE_CBC)
-    { MBEDTLS_TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256, "TLS-ECDH-ECDSA-WITH-AES-128-CBC-SHA256",
-      MBEDTLS_CIPHER_AES_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA,
-      0,
-      MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
-#endif /* MBEDTLS_SSL_HAVE_CBC */
-#if defined(MBEDTLS_SSL_HAVE_GCM)
-    { MBEDTLS_TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256, "TLS-ECDH-ECDSA-WITH-AES-128-GCM-SHA256",
-      MBEDTLS_CIPHER_AES_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA,
-      0,
-      MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
-#endif /* MBEDTLS_SSL_HAVE_GCM */
-#endif /* MBEDTLS_MD_CAN_SHA256 */
-#if defined(MBEDTLS_MD_CAN_SHA384)
-#if defined(MBEDTLS_SSL_HAVE_CBC)
-    { MBEDTLS_TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384, "TLS-ECDH-ECDSA-WITH-AES-256-CBC-SHA384",
-      MBEDTLS_CIPHER_AES_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA,
-      0,
-      MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
-#endif /* MBEDTLS_SSL_HAVE_CBC */
-#if defined(MBEDTLS_SSL_HAVE_GCM)
-    { MBEDTLS_TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384, "TLS-ECDH-ECDSA-WITH-AES-256-GCM-SHA384",
-      MBEDTLS_CIPHER_AES_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA,
-      0,
-      MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
-#endif /* MBEDTLS_SSL_HAVE_GCM */
-#endif /* MBEDTLS_MD_CAN_SHA384 */
-#endif /* MBEDTLS_SSL_HAVE_AES */
-
-#if defined(MBEDTLS_SSL_HAVE_CAMELLIA)
-#if defined(MBEDTLS_SSL_HAVE_CBC)
-#if defined(MBEDTLS_MD_CAN_SHA256)
-    { MBEDTLS_TLS_ECDH_ECDSA_WITH_CAMELLIA_128_CBC_SHA256,
-      "TLS-ECDH-ECDSA-WITH-CAMELLIA-128-CBC-SHA256",
-      MBEDTLS_CIPHER_CAMELLIA_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA,
-      0,
-      MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
-#endif /* MBEDTLS_MD_CAN_SHA256 */
-#if defined(MBEDTLS_MD_CAN_SHA384)
-    { MBEDTLS_TLS_ECDH_ECDSA_WITH_CAMELLIA_256_CBC_SHA384,
-      "TLS-ECDH-ECDSA-WITH-CAMELLIA-256-CBC-SHA384",
-      MBEDTLS_CIPHER_CAMELLIA_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA,
-      0,
-      MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
-#endif /* MBEDTLS_MD_CAN_SHA384 */
-#endif /* MBEDTLS_SSL_HAVE_CBC */
-
-#if defined(MBEDTLS_SSL_HAVE_GCM)
-#if defined(MBEDTLS_MD_CAN_SHA256)
-    { MBEDTLS_TLS_ECDH_ECDSA_WITH_CAMELLIA_128_GCM_SHA256,
-      "TLS-ECDH-ECDSA-WITH-CAMELLIA-128-GCM-SHA256",
-      MBEDTLS_CIPHER_CAMELLIA_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA,
-      0,
-      MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
-#endif /* MBEDTLS_MD_CAN_SHA256 */
-#if defined(MBEDTLS_MD_CAN_SHA384)
-    { MBEDTLS_TLS_ECDH_ECDSA_WITH_CAMELLIA_256_GCM_SHA384,
-      "TLS-ECDH-ECDSA-WITH-CAMELLIA-256-GCM-SHA384",
-      MBEDTLS_CIPHER_CAMELLIA_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA,
-      0,
-      MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
-#endif /* MBEDTLS_MD_CAN_SHA384 */
-#endif /* MBEDTLS_SSL_HAVE_GCM */
-#endif /* MBEDTLS_SSL_HAVE_CAMELLIA */
-
-#if defined(MBEDTLS_CIPHER_NULL_CIPHER)
-#if defined(MBEDTLS_MD_CAN_SHA1)
-    { MBEDTLS_TLS_ECDH_ECDSA_WITH_NULL_SHA, "TLS-ECDH-ECDSA-WITH-NULL-SHA",
-      MBEDTLS_CIPHER_NULL, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA,
-      MBEDTLS_CIPHERSUITE_WEAK,
-      MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
-#endif /* MBEDTLS_MD_CAN_SHA1 */
-#endif /* MBEDTLS_CIPHER_NULL_CIPHER */
-#endif /* MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED */
-
 #if defined(MBEDTLS_KEY_EXCHANGE_PSK_ENABLED)
-#if defined(MBEDTLS_SSL_HAVE_AES)
-#if defined(MBEDTLS_SSL_HAVE_GCM)
-#if defined(MBEDTLS_MD_CAN_SHA256)
+#if defined(PSA_WANT_KEY_TYPE_AES)
+#if defined(PSA_WANT_ALG_GCM)
+#if defined(PSA_WANT_ALG_SHA_256)
     { MBEDTLS_TLS_PSK_WITH_AES_128_GCM_SHA256, "TLS-PSK-WITH-AES-128-GCM-SHA256",
       MBEDTLS_CIPHER_AES_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_PSK,
       0,
       MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
-#endif /* MBEDTLS_MD_CAN_SHA256 */
+#endif /* PSA_WANT_ALG_SHA_256 */

-#if defined(MBEDTLS_MD_CAN_SHA384)
+#if defined(PSA_WANT_ALG_SHA_384)
     { MBEDTLS_TLS_PSK_WITH_AES_256_GCM_SHA384, "TLS-PSK-WITH-AES-256-GCM-SHA384",
       MBEDTLS_CIPHER_AES_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_PSK,
       0,
       MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
-#endif /* MBEDTLS_MD_CAN_SHA384 */
-#endif /* MBEDTLS_SSL_HAVE_GCM */
+#endif /* PSA_WANT_ALG_SHA_384 */
+#endif /* PSA_WANT_ALG_GCM */

-#if defined(MBEDTLS_SSL_HAVE_CBC)
-#if defined(MBEDTLS_MD_CAN_SHA256)
+#if defined(PSA_WANT_ALG_CBC_NO_PADDING)
+#if defined(PSA_WANT_ALG_SHA_256)
     { MBEDTLS_TLS_PSK_WITH_AES_128_CBC_SHA256, "TLS-PSK-WITH-AES-128-CBC-SHA256",
       MBEDTLS_CIPHER_AES_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_PSK,
       0,
       MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
-#endif /* MBEDTLS_MD_CAN_SHA256 */
+#endif /* PSA_WANT_ALG_SHA_256 */

-#if defined(MBEDTLS_MD_CAN_SHA384)
+#if defined(PSA_WANT_ALG_SHA_384)
     { MBEDTLS_TLS_PSK_WITH_AES_256_CBC_SHA384, "TLS-PSK-WITH-AES-256-CBC-SHA384",
       MBEDTLS_CIPHER_AES_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_PSK,
       0,
       MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
-#endif /* MBEDTLS_MD_CAN_SHA384 */
+#endif /* PSA_WANT_ALG_SHA_384 */

-#if defined(MBEDTLS_MD_CAN_SHA1)
+#if defined(PSA_WANT_ALG_SHA_1)
     { MBEDTLS_TLS_PSK_WITH_AES_128_CBC_SHA, "TLS-PSK-WITH-AES-128-CBC-SHA",
       MBEDTLS_CIPHER_AES_128_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_PSK,
       0,
@@ -1022,9 +468,9 @@ static const mbedtls_ssl_ciphersuite_t ciphersuite_definitions[] =
       MBEDTLS_CIPHER_AES_256_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_PSK,
       0,
       MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
-#endif /* MBEDTLS_MD_CAN_SHA1 */
-#endif /* MBEDTLS_SSL_HAVE_CBC */
-#if defined(MBEDTLS_SSL_HAVE_CCM)
+#endif /* PSA_WANT_ALG_SHA_1 */
+#endif /* PSA_WANT_ALG_CBC_NO_PADDING */
+#if defined(PSA_WANT_ALG_CCM)
     { MBEDTLS_TLS_PSK_WITH_AES_256_CCM, "TLS-PSK-WITH-AES-256-CCM",
       MBEDTLS_CIPHER_AES_256_CCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_PSK,
       0,
@@ -1041,165 +487,64 @@ static const mbedtls_ssl_ciphersuite_t ciphersuite_definitions[] =
       MBEDTLS_CIPHER_AES_128_CCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_PSK,
       MBEDTLS_CIPHERSUITE_SHORT_TAG,
       MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
-#endif /* MBEDTLS_SSL_HAVE_CCM */
-#endif /* MBEDTLS_SSL_HAVE_AES */
+#endif /* PSA_WANT_ALG_CCM */
+#endif /* PSA_WANT_KEY_TYPE_AES */

-#if defined(MBEDTLS_SSL_HAVE_CAMELLIA)
-#if defined(MBEDTLS_SSL_HAVE_CBC)
-#if defined(MBEDTLS_MD_CAN_SHA256)
+#if defined(PSA_WANT_KEY_TYPE_CAMELLIA)
+#if defined(PSA_WANT_ALG_CBC_NO_PADDING)
+#if defined(PSA_WANT_ALG_SHA_256)
     { MBEDTLS_TLS_PSK_WITH_CAMELLIA_128_CBC_SHA256, "TLS-PSK-WITH-CAMELLIA-128-CBC-SHA256",
       MBEDTLS_CIPHER_CAMELLIA_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_PSK,
       0,
       MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
-#endif /* MBEDTLS_MD_CAN_SHA256 */
+#endif /* PSA_WANT_ALG_SHA_256 */

-#if defined(MBEDTLS_MD_CAN_SHA384)
+#if defined(PSA_WANT_ALG_SHA_384)
     { MBEDTLS_TLS_PSK_WITH_CAMELLIA_256_CBC_SHA384, "TLS-PSK-WITH-CAMELLIA-256-CBC-SHA384",
       MBEDTLS_CIPHER_CAMELLIA_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_PSK,
       0,
       MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
-#endif /* MBEDTLS_MD_CAN_SHA384 */
-#endif /* MBEDTLS_SSL_HAVE_CBC */
+#endif /* PSA_WANT_ALG_SHA_384 */
+#endif /* PSA_WANT_ALG_CBC_NO_PADDING */

-#if defined(MBEDTLS_SSL_HAVE_GCM)
-#if defined(MBEDTLS_MD_CAN_SHA256)
+#if defined(PSA_WANT_ALG_GCM)
+#if defined(PSA_WANT_ALG_SHA_256)
     { MBEDTLS_TLS_PSK_WITH_CAMELLIA_128_GCM_SHA256, "TLS-PSK-WITH-CAMELLIA-128-GCM-SHA256",
       MBEDTLS_CIPHER_CAMELLIA_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_PSK,
       0,
       MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
-#endif /* MBEDTLS_MD_CAN_SHA256 */
+#endif /* PSA_WANT_ALG_SHA_256 */

-#if defined(MBEDTLS_MD_CAN_SHA384)
+#if defined(PSA_WANT_ALG_SHA_384)
     { MBEDTLS_TLS_PSK_WITH_CAMELLIA_256_GCM_SHA384, "TLS-PSK-WITH-CAMELLIA-256-GCM-SHA384",
       MBEDTLS_CIPHER_CAMELLIA_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_PSK,
       0,
       MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
-#endif /* MBEDTLS_MD_CAN_SHA384 */
-#endif /* MBEDTLS_SSL_HAVE_GCM */
-#endif /* MBEDTLS_SSL_HAVE_CAMELLIA */
+#endif /* PSA_WANT_ALG_SHA_384 */
+#endif /* PSA_WANT_ALG_GCM */
+#endif /* PSA_WANT_KEY_TYPE_CAMELLIA */

 #endif /* MBEDTLS_KEY_EXCHANGE_PSK_ENABLED */

-#if defined(MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED)
-#if defined(MBEDTLS_SSL_HAVE_AES)
-#if defined(MBEDTLS_SSL_HAVE_GCM)
-#if defined(MBEDTLS_MD_CAN_SHA256)
-    { MBEDTLS_TLS_DHE_PSK_WITH_AES_128_GCM_SHA256, "TLS-DHE-PSK-WITH-AES-128-GCM-SHA256",
-      MBEDTLS_CIPHER_AES_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_DHE_PSK,
-      0,
-      MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
-#endif /* MBEDTLS_MD_CAN_SHA256 */
-
-#if defined(MBEDTLS_MD_CAN_SHA384)
-    { MBEDTLS_TLS_DHE_PSK_WITH_AES_256_GCM_SHA384, "TLS-DHE-PSK-WITH-AES-256-GCM-SHA384",
-      MBEDTLS_CIPHER_AES_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_DHE_PSK,
-      0,
-      MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
-#endif /* MBEDTLS_MD_CAN_SHA384 */
-#endif /* MBEDTLS_SSL_HAVE_GCM */
-
-#if defined(MBEDTLS_SSL_HAVE_CBC)
-#if defined(MBEDTLS_MD_CAN_SHA256)
-    { MBEDTLS_TLS_DHE_PSK_WITH_AES_128_CBC_SHA256, "TLS-DHE-PSK-WITH-AES-128-CBC-SHA256",
-      MBEDTLS_CIPHER_AES_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_DHE_PSK,
-      0,
-      MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
-#endif /* MBEDTLS_MD_CAN_SHA256 */
-
-#if defined(MBEDTLS_MD_CAN_SHA384)
-    { MBEDTLS_TLS_DHE_PSK_WITH_AES_256_CBC_SHA384, "TLS-DHE-PSK-WITH-AES-256-CBC-SHA384",
-      MBEDTLS_CIPHER_AES_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_DHE_PSK,
-      0,
-      MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
-#endif /* MBEDTLS_MD_CAN_SHA384 */
-
-#if defined(MBEDTLS_MD_CAN_SHA1)
-    { MBEDTLS_TLS_DHE_PSK_WITH_AES_128_CBC_SHA, "TLS-DHE-PSK-WITH-AES-128-CBC-SHA",
-      MBEDTLS_CIPHER_AES_128_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_DHE_PSK,
-      0,
-      MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
-
-    { MBEDTLS_TLS_DHE_PSK_WITH_AES_256_CBC_SHA, "TLS-DHE-PSK-WITH-AES-256-CBC-SHA",
-      MBEDTLS_CIPHER_AES_256_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_DHE_PSK,
-      0,
-      MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
-#endif /* MBEDTLS_MD_CAN_SHA1 */
-#endif /* MBEDTLS_SSL_HAVE_CBC */
-#if defined(MBEDTLS_SSL_HAVE_CCM)
-    { MBEDTLS_TLS_DHE_PSK_WITH_AES_256_CCM, "TLS-DHE-PSK-WITH-AES-256-CCM",
-      MBEDTLS_CIPHER_AES_256_CCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_DHE_PSK,
-      0,
-      MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
-    { MBEDTLS_TLS_DHE_PSK_WITH_AES_256_CCM_8, "TLS-DHE-PSK-WITH-AES-256-CCM-8",
-      MBEDTLS_CIPHER_AES_256_CCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_DHE_PSK,
-      MBEDTLS_CIPHERSUITE_SHORT_TAG,
-      MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
-    { MBEDTLS_TLS_DHE_PSK_WITH_AES_128_CCM, "TLS-DHE-PSK-WITH-AES-128-CCM",
-      MBEDTLS_CIPHER_AES_128_CCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_DHE_PSK,
-      0,
-      MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
-    { MBEDTLS_TLS_DHE_PSK_WITH_AES_128_CCM_8, "TLS-DHE-PSK-WITH-AES-128-CCM-8",
-      MBEDTLS_CIPHER_AES_128_CCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_DHE_PSK,
-      MBEDTLS_CIPHERSUITE_SHORT_TAG,
-      MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
-#endif /* MBEDTLS_SSL_HAVE_CCM */
-#endif /* MBEDTLS_SSL_HAVE_AES */
-
-#if defined(MBEDTLS_SSL_HAVE_CAMELLIA)
-#if defined(MBEDTLS_SSL_HAVE_CBC)
-#if defined(MBEDTLS_MD_CAN_SHA256)
-    { MBEDTLS_TLS_DHE_PSK_WITH_CAMELLIA_128_CBC_SHA256, "TLS-DHE-PSK-WITH-CAMELLIA-128-CBC-SHA256",
-      MBEDTLS_CIPHER_CAMELLIA_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_DHE_PSK,
-      0,
-      MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
-#endif /* MBEDTLS_MD_CAN_SHA256 */
-
-#if defined(MBEDTLS_MD_CAN_SHA384)
-    { MBEDTLS_TLS_DHE_PSK_WITH_CAMELLIA_256_CBC_SHA384, "TLS-DHE-PSK-WITH-CAMELLIA-256-CBC-SHA384",
-      MBEDTLS_CIPHER_CAMELLIA_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_DHE_PSK,
-      0,
-      MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
-#endif /* MBEDTLS_MD_CAN_SHA384 */
-#endif /* MBEDTLS_SSL_HAVE_CBC */
-
-#if defined(MBEDTLS_SSL_HAVE_GCM)
-#if defined(MBEDTLS_MD_CAN_SHA256)
-    { MBEDTLS_TLS_DHE_PSK_WITH_CAMELLIA_128_GCM_SHA256, "TLS-DHE-PSK-WITH-CAMELLIA-128-GCM-SHA256",
-      MBEDTLS_CIPHER_CAMELLIA_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_DHE_PSK,
-      0,
-      MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
-#endif /* MBEDTLS_MD_CAN_SHA256 */
-
-#if defined(MBEDTLS_MD_CAN_SHA384)
-    { MBEDTLS_TLS_DHE_PSK_WITH_CAMELLIA_256_GCM_SHA384, "TLS-DHE-PSK-WITH-CAMELLIA-256-GCM-SHA384",
-      MBEDTLS_CIPHER_CAMELLIA_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_DHE_PSK,
-      0,
-      MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
-#endif /* MBEDTLS_MD_CAN_SHA384 */
-#endif /* MBEDTLS_SSL_HAVE_GCM */
-#endif /* MBEDTLS_SSL_HAVE_CAMELLIA */
-
-#endif /* MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED */
-
 #if defined(MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED)
-#if defined(MBEDTLS_SSL_HAVE_AES)
+#if defined(PSA_WANT_KEY_TYPE_AES)

-#if defined(MBEDTLS_SSL_HAVE_CBC)
-#if defined(MBEDTLS_MD_CAN_SHA256)
+#if defined(PSA_WANT_ALG_CBC_NO_PADDING)
+#if defined(PSA_WANT_ALG_SHA_256)
     { MBEDTLS_TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA256, "TLS-ECDHE-PSK-WITH-AES-128-CBC-SHA256",
       MBEDTLS_CIPHER_AES_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDHE_PSK,
       0,
       MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
-#endif /* MBEDTLS_MD_CAN_SHA256 */
+#endif /* PSA_WANT_ALG_SHA_256 */

-#if defined(MBEDTLS_MD_CAN_SHA384)
+#if defined(PSA_WANT_ALG_SHA_384)
     { MBEDTLS_TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA384, "TLS-ECDHE-PSK-WITH-AES-256-CBC-SHA384",
       MBEDTLS_CIPHER_AES_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDHE_PSK,
       0,
       MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
-#endif /* MBEDTLS_MD_CAN_SHA384 */
+#endif /* PSA_WANT_ALG_SHA_384 */

-#if defined(MBEDTLS_MD_CAN_SHA1)
+#if defined(PSA_WANT_ALG_SHA_1)
     { MBEDTLS_TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA, "TLS-ECDHE-PSK-WITH-AES-128-CBC-SHA",
       MBEDTLS_CIPHER_AES_128_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_ECDHE_PSK,
       0,
@@ -1209,341 +554,119 @@ static const mbedtls_ssl_ciphersuite_t ciphersuite_definitions[] =
       MBEDTLS_CIPHER_AES_256_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_ECDHE_PSK,
       0,
       MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
-#endif /* MBEDTLS_MD_CAN_SHA1 */
-#endif /* MBEDTLS_SSL_HAVE_CBC */
-#endif /* MBEDTLS_SSL_HAVE_AES */
+#endif /* PSA_WANT_ALG_SHA_1 */
+#endif /* PSA_WANT_ALG_CBC_NO_PADDING */
+#endif /* PSA_WANT_KEY_TYPE_AES */

-#if defined(MBEDTLS_SSL_HAVE_CAMELLIA)
-#if defined(MBEDTLS_SSL_HAVE_CBC)
-#if defined(MBEDTLS_MD_CAN_SHA256)
+#if defined(PSA_WANT_KEY_TYPE_CAMELLIA)
+#if defined(PSA_WANT_ALG_CBC_NO_PADDING)
+#if defined(PSA_WANT_ALG_SHA_256)
     { MBEDTLS_TLS_ECDHE_PSK_WITH_CAMELLIA_128_CBC_SHA256,
       "TLS-ECDHE-PSK-WITH-CAMELLIA-128-CBC-SHA256",
       MBEDTLS_CIPHER_CAMELLIA_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDHE_PSK,
       0,
       MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
-#endif /* MBEDTLS_MD_CAN_SHA256 */
+#endif /* PSA_WANT_ALG_SHA_256 */

-#if defined(MBEDTLS_MD_CAN_SHA384)
+#if defined(PSA_WANT_ALG_SHA_384)
     { MBEDTLS_TLS_ECDHE_PSK_WITH_CAMELLIA_256_CBC_SHA384,
       "TLS-ECDHE-PSK-WITH-CAMELLIA-256-CBC-SHA384",
       MBEDTLS_CIPHER_CAMELLIA_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDHE_PSK,
       0,
       MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
-#endif /* MBEDTLS_MD_CAN_SHA384 */
-#endif /* MBEDTLS_SSL_HAVE_CBC */
-#endif /* MBEDTLS_SSL_HAVE_CAMELLIA */
+#endif /* PSA_WANT_ALG_SHA_384 */
+#endif /* PSA_WANT_ALG_CBC_NO_PADDING */
+#endif /* PSA_WANT_KEY_TYPE_CAMELLIA */

 #endif /* MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED */

-#if defined(MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED)
-#if defined(MBEDTLS_SSL_HAVE_AES)
-#if defined(MBEDTLS_SSL_HAVE_GCM)
-#if defined(MBEDTLS_MD_CAN_SHA256)
-    { MBEDTLS_TLS_RSA_PSK_WITH_AES_128_GCM_SHA256, "TLS-RSA-PSK-WITH-AES-128-GCM-SHA256",
-      MBEDTLS_CIPHER_AES_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_RSA_PSK,
-      0,
-      MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
-#endif /* MBEDTLS_MD_CAN_SHA256 */
-
-#if defined(MBEDTLS_MD_CAN_SHA384)
-    { MBEDTLS_TLS_RSA_PSK_WITH_AES_256_GCM_SHA384, "TLS-RSA-PSK-WITH-AES-256-GCM-SHA384",
-      MBEDTLS_CIPHER_AES_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_RSA_PSK,
-      0,
-      MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
-#endif /* MBEDTLS_MD_CAN_SHA384 */
-#endif /* MBEDTLS_SSL_HAVE_GCM */
-
-#if defined(MBEDTLS_SSL_HAVE_CBC)
-#if defined(MBEDTLS_MD_CAN_SHA256)
-    { MBEDTLS_TLS_RSA_PSK_WITH_AES_128_CBC_SHA256, "TLS-RSA-PSK-WITH-AES-128-CBC-SHA256",
-      MBEDTLS_CIPHER_AES_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_RSA_PSK,
-      0,
-      MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
-#endif /* MBEDTLS_MD_CAN_SHA256 */
-
-#if defined(MBEDTLS_MD_CAN_SHA384)
-    { MBEDTLS_TLS_RSA_PSK_WITH_AES_256_CBC_SHA384, "TLS-RSA-PSK-WITH-AES-256-CBC-SHA384",
-      MBEDTLS_CIPHER_AES_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_RSA_PSK,
-      0,
-      MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
-#endif /* MBEDTLS_MD_CAN_SHA384 */
-
-#if defined(MBEDTLS_MD_CAN_SHA1)
-    { MBEDTLS_TLS_RSA_PSK_WITH_AES_128_CBC_SHA, "TLS-RSA-PSK-WITH-AES-128-CBC-SHA",
-      MBEDTLS_CIPHER_AES_128_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_RSA_PSK,
-      0,
-      MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
-
-    { MBEDTLS_TLS_RSA_PSK_WITH_AES_256_CBC_SHA, "TLS-RSA-PSK-WITH-AES-256-CBC-SHA",
-      MBEDTLS_CIPHER_AES_256_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_RSA_PSK,
-      0,
-      MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
-#endif /* MBEDTLS_MD_CAN_SHA1 */
-#endif /* MBEDTLS_SSL_HAVE_CBC */
-#endif /* MBEDTLS_SSL_HAVE_AES */
-
-#if defined(MBEDTLS_SSL_HAVE_CAMELLIA)
-#if defined(MBEDTLS_SSL_HAVE_CBC)
-#if defined(MBEDTLS_MD_CAN_SHA256)
-    { MBEDTLS_TLS_RSA_PSK_WITH_CAMELLIA_128_CBC_SHA256, "TLS-RSA-PSK-WITH-CAMELLIA-128-CBC-SHA256",
-      MBEDTLS_CIPHER_CAMELLIA_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_RSA_PSK,
-      0,
-      MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
-#endif /* MBEDTLS_MD_CAN_SHA256 */
-
-#if defined(MBEDTLS_MD_CAN_SHA384)
-    { MBEDTLS_TLS_RSA_PSK_WITH_CAMELLIA_256_CBC_SHA384, "TLS-RSA-PSK-WITH-CAMELLIA-256-CBC-SHA384",
-      MBEDTLS_CIPHER_CAMELLIA_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_RSA_PSK,
-      0,
-      MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
-#endif /* MBEDTLS_MD_CAN_SHA384 */
-#endif /* MBEDTLS_SSL_HAVE_CBC */
-
-#if defined(MBEDTLS_SSL_HAVE_GCM)
-#if defined(MBEDTLS_MD_CAN_SHA256)
-    { MBEDTLS_TLS_RSA_PSK_WITH_CAMELLIA_128_GCM_SHA256, "TLS-RSA-PSK-WITH-CAMELLIA-128-GCM-SHA256",
-      MBEDTLS_CIPHER_CAMELLIA_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_RSA_PSK,
-      0,
-      MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
-#endif /* MBEDTLS_MD_CAN_SHA256 */
-
-#if defined(MBEDTLS_MD_CAN_SHA384)
-    { MBEDTLS_TLS_RSA_PSK_WITH_CAMELLIA_256_GCM_SHA384, "TLS-RSA-PSK-WITH-CAMELLIA-256-GCM-SHA384",
-      MBEDTLS_CIPHER_CAMELLIA_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_RSA_PSK,
-      0,
-      MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
-#endif /* MBEDTLS_MD_CAN_SHA384 */
-#endif /* MBEDTLS_SSL_HAVE_GCM */
-#endif /* MBEDTLS_SSL_HAVE_CAMELLIA */
-
-#endif /* MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED */
-
 #if defined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED)
-#if defined(MBEDTLS_SSL_HAVE_AES)
-#if defined(MBEDTLS_SSL_HAVE_CCM)
+#if defined(PSA_WANT_KEY_TYPE_AES)
+#if defined(PSA_WANT_ALG_CCM)
     { MBEDTLS_TLS_ECJPAKE_WITH_AES_128_CCM_8, "TLS-ECJPAKE-WITH-AES-128-CCM-8",
       MBEDTLS_CIPHER_AES_128_CCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECJPAKE,
       MBEDTLS_CIPHERSUITE_SHORT_TAG,
       MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
-#endif /* MBEDTLS_SSL_HAVE_CCM */
-#endif /* MBEDTLS_SSL_HAVE_AES */
+#endif /* PSA_WANT_ALG_CCM */
+#endif /* PSA_WANT_KEY_TYPE_AES */
 #endif /* MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED */

-#if defined(MBEDTLS_CIPHER_NULL_CIPHER)
-#if defined(MBEDTLS_KEY_EXCHANGE_RSA_ENABLED)
-#if defined(MBEDTLS_MD_CAN_MD5)
-    { MBEDTLS_TLS_RSA_WITH_NULL_MD5, "TLS-RSA-WITH-NULL-MD5",
-      MBEDTLS_CIPHER_NULL, MBEDTLS_MD_MD5, MBEDTLS_KEY_EXCHANGE_RSA,
-      MBEDTLS_CIPHERSUITE_WEAK,
-      MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
-#endif
-
-#if defined(MBEDTLS_MD_CAN_SHA1)
-    { MBEDTLS_TLS_RSA_WITH_NULL_SHA, "TLS-RSA-WITH-NULL-SHA",
-      MBEDTLS_CIPHER_NULL, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_RSA,
-      MBEDTLS_CIPHERSUITE_WEAK,
-      MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
-#endif
-
-#if defined(MBEDTLS_MD_CAN_SHA256)
-    { MBEDTLS_TLS_RSA_WITH_NULL_SHA256, "TLS-RSA-WITH-NULL-SHA256",
-      MBEDTLS_CIPHER_NULL, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_RSA,
-      MBEDTLS_CIPHERSUITE_WEAK,
-      MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
-#endif
-#endif /* MBEDTLS_KEY_EXCHANGE_RSA_ENABLED */
-
+#if defined(MBEDTLS_SSL_NULL_CIPHERSUITES)
 #if defined(MBEDTLS_KEY_EXCHANGE_PSK_ENABLED)
-#if defined(MBEDTLS_MD_CAN_SHA1)
+#if defined(PSA_WANT_ALG_SHA_1)
     { MBEDTLS_TLS_PSK_WITH_NULL_SHA, "TLS-PSK-WITH-NULL-SHA",
       MBEDTLS_CIPHER_NULL, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_PSK,
       MBEDTLS_CIPHERSUITE_WEAK,
       MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
-#endif /* MBEDTLS_MD_CAN_SHA1 */
+#endif /* PSA_WANT_ALG_SHA_1 */

-#if defined(MBEDTLS_MD_CAN_SHA256)
+#if defined(PSA_WANT_ALG_SHA_256)
     { MBEDTLS_TLS_PSK_WITH_NULL_SHA256, "TLS-PSK-WITH-NULL-SHA256",
       MBEDTLS_CIPHER_NULL, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_PSK,
       MBEDTLS_CIPHERSUITE_WEAK,
       MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
 #endif

-#if defined(MBEDTLS_MD_CAN_SHA384)
+#if defined(PSA_WANT_ALG_SHA_384)
     { MBEDTLS_TLS_PSK_WITH_NULL_SHA384, "TLS-PSK-WITH-NULL-SHA384",
       MBEDTLS_CIPHER_NULL, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_PSK,
       MBEDTLS_CIPHERSUITE_WEAK,
       MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
-#endif /* MBEDTLS_MD_CAN_SHA384 */
+#endif /* PSA_WANT_ALG_SHA_384 */
 #endif /* MBEDTLS_KEY_EXCHANGE_PSK_ENABLED */

-#if defined(MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED)
-#if defined(MBEDTLS_MD_CAN_SHA1)
-    { MBEDTLS_TLS_DHE_PSK_WITH_NULL_SHA, "TLS-DHE-PSK-WITH-NULL-SHA",
-      MBEDTLS_CIPHER_NULL, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_DHE_PSK,
-      MBEDTLS_CIPHERSUITE_WEAK,
-      MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
-#endif /* MBEDTLS_MD_CAN_SHA1 */
-
-#if defined(MBEDTLS_MD_CAN_SHA256)
-    { MBEDTLS_TLS_DHE_PSK_WITH_NULL_SHA256, "TLS-DHE-PSK-WITH-NULL-SHA256",
-      MBEDTLS_CIPHER_NULL, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_DHE_PSK,
-      MBEDTLS_CIPHERSUITE_WEAK,
-      MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
-#endif
-
-#if defined(MBEDTLS_MD_CAN_SHA384)
-    { MBEDTLS_TLS_DHE_PSK_WITH_NULL_SHA384, "TLS-DHE-PSK-WITH-NULL-SHA384",
-      MBEDTLS_CIPHER_NULL, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_DHE_PSK,
-      MBEDTLS_CIPHERSUITE_WEAK,
-      MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
-#endif /* MBEDTLS_MD_CAN_SHA384 */
-#endif /* MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED */
-
 #if defined(MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED)
-#if defined(MBEDTLS_MD_CAN_SHA1)
+#if defined(PSA_WANT_ALG_SHA_1)
     { MBEDTLS_TLS_ECDHE_PSK_WITH_NULL_SHA, "TLS-ECDHE-PSK-WITH-NULL-SHA",
       MBEDTLS_CIPHER_NULL, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_ECDHE_PSK,
       MBEDTLS_CIPHERSUITE_WEAK,
       MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
-#endif /* MBEDTLS_MD_CAN_SHA1 */
+#endif /* PSA_WANT_ALG_SHA_1 */

-#if defined(MBEDTLS_MD_CAN_SHA256)
+#if defined(PSA_WANT_ALG_SHA_256)
     { MBEDTLS_TLS_ECDHE_PSK_WITH_NULL_SHA256, "TLS-ECDHE-PSK-WITH-NULL-SHA256",
       MBEDTLS_CIPHER_NULL, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDHE_PSK,
       MBEDTLS_CIPHERSUITE_WEAK,
       MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
 #endif

-#if defined(MBEDTLS_MD_CAN_SHA384)
+#if defined(PSA_WANT_ALG_SHA_384)
     { MBEDTLS_TLS_ECDHE_PSK_WITH_NULL_SHA384, "TLS-ECDHE-PSK-WITH-NULL-SHA384",
       MBEDTLS_CIPHER_NULL, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDHE_PSK,
       MBEDTLS_CIPHERSUITE_WEAK,
       MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
-#endif /* MBEDTLS_MD_CAN_SHA384 */
+#endif /* PSA_WANT_ALG_SHA_384 */
 #endif /* MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED */
+#endif /* MBEDTLS_SSL_NULL_CIPHERSUITES */

-#if defined(MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED)
-#if defined(MBEDTLS_MD_CAN_SHA1)
-    { MBEDTLS_TLS_RSA_PSK_WITH_NULL_SHA, "TLS-RSA-PSK-WITH-NULL-SHA",
-      MBEDTLS_CIPHER_NULL, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_RSA_PSK,
-      MBEDTLS_CIPHERSUITE_WEAK,
-      MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
-#endif /* MBEDTLS_MD_CAN_SHA1 */
-
-#if defined(MBEDTLS_MD_CAN_SHA256)
-    { MBEDTLS_TLS_RSA_PSK_WITH_NULL_SHA256, "TLS-RSA-PSK-WITH-NULL-SHA256",
-      MBEDTLS_CIPHER_NULL, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_RSA_PSK,
-      MBEDTLS_CIPHERSUITE_WEAK,
-      MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
-#endif
-
-#if defined(MBEDTLS_MD_CAN_SHA384)
-    { MBEDTLS_TLS_RSA_PSK_WITH_NULL_SHA384, "TLS-RSA-PSK-WITH-NULL-SHA384",
-      MBEDTLS_CIPHER_NULL, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_RSA_PSK,
-      MBEDTLS_CIPHERSUITE_WEAK,
-      MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
-#endif /* MBEDTLS_MD_CAN_SHA384 */
-#endif /* MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED */
-#endif /* MBEDTLS_CIPHER_NULL_CIPHER */
-
-#if defined(MBEDTLS_SSL_HAVE_ARIA)
-
-#if defined(MBEDTLS_KEY_EXCHANGE_RSA_ENABLED)
-
-#if (defined(MBEDTLS_SSL_HAVE_GCM) && defined(MBEDTLS_MD_CAN_SHA384))
-    { MBEDTLS_TLS_RSA_WITH_ARIA_256_GCM_SHA384,
-      "TLS-RSA-WITH-ARIA-256-GCM-SHA384",
-      MBEDTLS_CIPHER_ARIA_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_RSA,
-      0,
-      MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
-#endif
-#if (defined(MBEDTLS_SSL_HAVE_CBC) && \
-    defined(MBEDTLS_MD_CAN_SHA384))
-    { MBEDTLS_TLS_RSA_WITH_ARIA_256_CBC_SHA384,
-      "TLS-RSA-WITH-ARIA-256-CBC-SHA384",
-      MBEDTLS_CIPHER_ARIA_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_RSA,
-      0,
-      MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
-#endif
-#if (defined(MBEDTLS_SSL_HAVE_GCM) && defined(MBEDTLS_MD_CAN_SHA256))
-    { MBEDTLS_TLS_RSA_WITH_ARIA_128_GCM_SHA256,
-      "TLS-RSA-WITH-ARIA-128-GCM-SHA256",
-      MBEDTLS_CIPHER_ARIA_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_RSA,
-      0,
-      MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
-#endif
-#if (defined(MBEDTLS_SSL_HAVE_CBC) && \
-    defined(MBEDTLS_MD_CAN_SHA256))
-    { MBEDTLS_TLS_RSA_WITH_ARIA_128_CBC_SHA256,
-      "TLS-RSA-WITH-ARIA-128-CBC-SHA256",
-      MBEDTLS_CIPHER_ARIA_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_RSA,
-      0,
-      MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
-#endif
-
-#endif /* MBEDTLS_KEY_EXCHANGE_RSA_ENABLED */
-
-#if defined(MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED)
-
-#if (defined(MBEDTLS_SSL_HAVE_GCM) && defined(MBEDTLS_MD_CAN_SHA384))
-    { MBEDTLS_TLS_RSA_PSK_WITH_ARIA_256_GCM_SHA384,
-      "TLS-RSA-PSK-WITH-ARIA-256-GCM-SHA384",
-      MBEDTLS_CIPHER_ARIA_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_RSA_PSK,
-      0,
-      MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
-#endif
-#if (defined(MBEDTLS_SSL_HAVE_CBC) && \
-    defined(MBEDTLS_MD_CAN_SHA384))
-    { MBEDTLS_TLS_RSA_PSK_WITH_ARIA_256_CBC_SHA384,
-      "TLS-RSA-PSK-WITH-ARIA-256-CBC-SHA384",
-      MBEDTLS_CIPHER_ARIA_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_RSA_PSK,
-      0,
-      MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
-#endif
-#if (defined(MBEDTLS_SSL_HAVE_GCM) && defined(MBEDTLS_MD_CAN_SHA256))
-    { MBEDTLS_TLS_RSA_PSK_WITH_ARIA_128_GCM_SHA256,
-      "TLS-RSA-PSK-WITH-ARIA-128-GCM-SHA256",
-      MBEDTLS_CIPHER_ARIA_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_RSA_PSK,
-      0,
-      MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
-#endif
-#if (defined(MBEDTLS_SSL_HAVE_CBC) && \
-    defined(MBEDTLS_MD_CAN_SHA256))
-    { MBEDTLS_TLS_RSA_PSK_WITH_ARIA_128_CBC_SHA256,
-      "TLS-RSA-PSK-WITH-ARIA-128-CBC-SHA256",
-      MBEDTLS_CIPHER_ARIA_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_RSA_PSK,
-      0,
-      MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
-#endif
-
-#endif /* MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED */
+#if defined(PSA_WANT_KEY_TYPE_ARIA)

 #if defined(MBEDTLS_KEY_EXCHANGE_PSK_ENABLED)

-#if (defined(MBEDTLS_SSL_HAVE_GCM) && defined(MBEDTLS_MD_CAN_SHA384))
+#if (defined(PSA_WANT_ALG_GCM) && defined(PSA_WANT_ALG_SHA_384))
     { MBEDTLS_TLS_PSK_WITH_ARIA_256_GCM_SHA384,
       "TLS-PSK-WITH-ARIA-256-GCM-SHA384",
       MBEDTLS_CIPHER_ARIA_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_PSK,
       0,
       MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
 #endif
-#if (defined(MBEDTLS_SSL_HAVE_CBC) && \
-    defined(MBEDTLS_MD_CAN_SHA384))
+#if (defined(PSA_WANT_ALG_CBC_NO_PADDING) && \
+    defined(PSA_WANT_ALG_SHA_384))
     { MBEDTLS_TLS_PSK_WITH_ARIA_256_CBC_SHA384,
       "TLS-PSK-WITH-ARIA-256-CBC-SHA384",
       MBEDTLS_CIPHER_ARIA_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_PSK,
       0,
       MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
 #endif
-#if (defined(MBEDTLS_SSL_HAVE_GCM) && defined(MBEDTLS_MD_CAN_SHA256))
+#if (defined(PSA_WANT_ALG_GCM) && defined(PSA_WANT_ALG_SHA_256))
     { MBEDTLS_TLS_PSK_WITH_ARIA_128_GCM_SHA256,
       "TLS-PSK-WITH-ARIA-128-GCM-SHA256",
       MBEDTLS_CIPHER_ARIA_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_PSK,
       0,
       MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
 #endif
-#if (defined(MBEDTLS_SSL_HAVE_CBC) && \
-    defined(MBEDTLS_MD_CAN_SHA256))
+#if (defined(PSA_WANT_ALG_CBC_NO_PADDING) && \
+    defined(PSA_WANT_ALG_SHA_256))
     { MBEDTLS_TLS_PSK_WITH_ARIA_128_CBC_SHA256,
       "TLS-PSK-WITH-ARIA-128-CBC-SHA256",
       MBEDTLS_CIPHER_ARIA_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_PSK,
@@ -1553,67 +676,32 @@ static const mbedtls_ssl_ciphersuite_t ciphersuite_definitions[] =

 #endif /* MBEDTLS_KEY_EXCHANGE_PSK_ENABLED */

-#if defined(MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED)
-
-#if (defined(MBEDTLS_SSL_HAVE_GCM) && defined(MBEDTLS_MD_CAN_SHA384))
-    { MBEDTLS_TLS_ECDH_RSA_WITH_ARIA_256_GCM_SHA384,
-      "TLS-ECDH-RSA-WITH-ARIA-256-GCM-SHA384",
-      MBEDTLS_CIPHER_ARIA_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDH_RSA,
-      0,
-      MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
-#endif
-#if (defined(MBEDTLS_SSL_HAVE_CBC) && \
-    defined(MBEDTLS_MD_CAN_SHA384))
-    { MBEDTLS_TLS_ECDH_RSA_WITH_ARIA_256_CBC_SHA384,
-      "TLS-ECDH-RSA-WITH-ARIA-256-CBC-SHA384",
-      MBEDTLS_CIPHER_ARIA_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDH_RSA,
-      0,
-      MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
-#endif
-#if (defined(MBEDTLS_SSL_HAVE_GCM) && defined(MBEDTLS_MD_CAN_SHA256))
-    { MBEDTLS_TLS_ECDH_RSA_WITH_ARIA_128_GCM_SHA256,
-      "TLS-ECDH-RSA-WITH-ARIA-128-GCM-SHA256",
-      MBEDTLS_CIPHER_ARIA_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDH_RSA,
-      0,
-      MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
-#endif
-#if (defined(MBEDTLS_SSL_HAVE_CBC) && \
-    defined(MBEDTLS_MD_CAN_SHA256))
-    { MBEDTLS_TLS_ECDH_RSA_WITH_ARIA_128_CBC_SHA256,
-      "TLS-ECDH-RSA-WITH-ARIA-128-CBC-SHA256",
-      MBEDTLS_CIPHER_ARIA_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDH_RSA,
-      0,
-      MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
-#endif
-
-#endif /* MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED */
-
 #if defined(MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED)

-#if (defined(MBEDTLS_SSL_HAVE_GCM) && defined(MBEDTLS_MD_CAN_SHA384))
+#if (defined(PSA_WANT_ALG_GCM) && defined(PSA_WANT_ALG_SHA_384))
     { MBEDTLS_TLS_ECDHE_RSA_WITH_ARIA_256_GCM_SHA384,
       "TLS-ECDHE-RSA-WITH-ARIA-256-GCM-SHA384",
       MBEDTLS_CIPHER_ARIA_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDHE_RSA,
       0,
       MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
 #endif
-#if (defined(MBEDTLS_SSL_HAVE_CBC) && \
-    defined(MBEDTLS_MD_CAN_SHA384))
+#if (defined(PSA_WANT_ALG_CBC_NO_PADDING) && \
+    defined(PSA_WANT_ALG_SHA_384))
     { MBEDTLS_TLS_ECDHE_RSA_WITH_ARIA_256_CBC_SHA384,
       "TLS-ECDHE-RSA-WITH-ARIA-256-CBC-SHA384",
       MBEDTLS_CIPHER_ARIA_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDHE_RSA,
       0,
       MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
 #endif
-#if (defined(MBEDTLS_SSL_HAVE_GCM) && defined(MBEDTLS_MD_CAN_SHA256))
+#if (defined(PSA_WANT_ALG_GCM) && defined(PSA_WANT_ALG_SHA_256))
     { MBEDTLS_TLS_ECDHE_RSA_WITH_ARIA_128_GCM_SHA256,
       "TLS-ECDHE-RSA-WITH-ARIA-128-GCM-SHA256",
       MBEDTLS_CIPHER_ARIA_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDHE_RSA,
       0,
       MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
 #endif
-#if (defined(MBEDTLS_SSL_HAVE_CBC) && \
-    defined(MBEDTLS_MD_CAN_SHA256))
+#if (defined(PSA_WANT_ALG_CBC_NO_PADDING) && \
+    defined(PSA_WANT_ALG_SHA_256))
     { MBEDTLS_TLS_ECDHE_RSA_WITH_ARIA_128_CBC_SHA256,
       "TLS-ECDHE-RSA-WITH-ARIA-128-CBC-SHA256",
       MBEDTLS_CIPHER_ARIA_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDHE_RSA,
@@ -1625,16 +713,16 @@ static const mbedtls_ssl_ciphersuite_t ciphersuite_definitions[] =

 #if defined(MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED)

-#if (defined(MBEDTLS_SSL_HAVE_CBC) && \
-    defined(MBEDTLS_MD_CAN_SHA384))
+#if (defined(PSA_WANT_ALG_CBC_NO_PADDING) && \
+    defined(PSA_WANT_ALG_SHA_384))
     { MBEDTLS_TLS_ECDHE_PSK_WITH_ARIA_256_CBC_SHA384,
       "TLS-ECDHE-PSK-WITH-ARIA-256-CBC-SHA384",
       MBEDTLS_CIPHER_ARIA_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDHE_PSK,
       0,
       MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
 #endif
-#if (defined(MBEDTLS_SSL_HAVE_CBC) && \
-    defined(MBEDTLS_MD_CAN_SHA256))
+#if (defined(PSA_WANT_ALG_CBC_NO_PADDING) && \
+    defined(PSA_WANT_ALG_SHA_256))
     { MBEDTLS_TLS_ECDHE_PSK_WITH_ARIA_128_CBC_SHA256,
       "TLS-ECDHE-PSK-WITH-ARIA-128-CBC-SHA256",
       MBEDTLS_CIPHER_ARIA_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDHE_PSK,
@@ -1646,30 +734,30 @@ static const mbedtls_ssl_ciphersuite_t ciphersuite_definitions[] =

 #if defined(MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED)

-#if (defined(MBEDTLS_SSL_HAVE_GCM) && defined(MBEDTLS_MD_CAN_SHA384))
+#if (defined(PSA_WANT_ALG_GCM) && defined(PSA_WANT_ALG_SHA_384))
     { MBEDTLS_TLS_ECDHE_ECDSA_WITH_ARIA_256_GCM_SHA384,
       "TLS-ECDHE-ECDSA-WITH-ARIA-256-GCM-SHA384",
       MBEDTLS_CIPHER_ARIA_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA,
       0,
       MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
 #endif
-#if (defined(MBEDTLS_SSL_HAVE_CBC) && \
-    defined(MBEDTLS_MD_CAN_SHA384))
+#if (defined(PSA_WANT_ALG_CBC_NO_PADDING) && \
+    defined(PSA_WANT_ALG_SHA_384))
     { MBEDTLS_TLS_ECDHE_ECDSA_WITH_ARIA_256_CBC_SHA384,
       "TLS-ECDHE-ECDSA-WITH-ARIA-256-CBC-SHA384",
       MBEDTLS_CIPHER_ARIA_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA,
       0,
       MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
 #endif
-#if (defined(MBEDTLS_SSL_HAVE_GCM) && defined(MBEDTLS_MD_CAN_SHA256))
+#if (defined(PSA_WANT_ALG_GCM) && defined(PSA_WANT_ALG_SHA_256))
     { MBEDTLS_TLS_ECDHE_ECDSA_WITH_ARIA_128_GCM_SHA256,
       "TLS-ECDHE-ECDSA-WITH-ARIA-128-GCM-SHA256",
       MBEDTLS_CIPHER_ARIA_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA,
       0,
       MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
 #endif
-#if (defined(MBEDTLS_SSL_HAVE_CBC) && \
-    defined(MBEDTLS_MD_CAN_SHA256))
+#if (defined(PSA_WANT_ALG_CBC_NO_PADDING) && \
+    defined(PSA_WANT_ALG_SHA_256))
     { MBEDTLS_TLS_ECDHE_ECDSA_WITH_ARIA_128_CBC_SHA256,
       "TLS-ECDHE-ECDSA-WITH-ARIA-128-CBC-SHA256",
       MBEDTLS_CIPHER_ARIA_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA,
@@ -1679,112 +767,7 @@ static const mbedtls_ssl_ciphersuite_t ciphersuite_definitions[] =

 #endif /* MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED */

-#if defined(MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED)
-
-#if (defined(MBEDTLS_SSL_HAVE_GCM) && defined(MBEDTLS_MD_CAN_SHA384))
-    { MBEDTLS_TLS_ECDH_ECDSA_WITH_ARIA_256_GCM_SHA384,
-      "TLS-ECDH-ECDSA-WITH-ARIA-256-GCM-SHA384",
-      MBEDTLS_CIPHER_ARIA_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA,
-      0,
-      MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
-#endif
-#if (defined(MBEDTLS_SSL_HAVE_CBC) && \
-    defined(MBEDTLS_MD_CAN_SHA384))
-    { MBEDTLS_TLS_ECDH_ECDSA_WITH_ARIA_256_CBC_SHA384,
-      "TLS-ECDH-ECDSA-WITH-ARIA-256-CBC-SHA384",
-      MBEDTLS_CIPHER_ARIA_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA,
-      0,
-      MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
-#endif
-#if (defined(MBEDTLS_SSL_HAVE_GCM) && defined(MBEDTLS_MD_CAN_SHA256))
-    { MBEDTLS_TLS_ECDH_ECDSA_WITH_ARIA_128_GCM_SHA256,
-      "TLS-ECDH-ECDSA-WITH-ARIA-128-GCM-SHA256",
-      MBEDTLS_CIPHER_ARIA_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA,
-      0,
-      MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
-#endif
-#if (defined(MBEDTLS_SSL_HAVE_CBC) && \
-    defined(MBEDTLS_MD_CAN_SHA256))
-    { MBEDTLS_TLS_ECDH_ECDSA_WITH_ARIA_128_CBC_SHA256,
-      "TLS-ECDH-ECDSA-WITH-ARIA-128-CBC-SHA256",
-      MBEDTLS_CIPHER_ARIA_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA,
-      0,
-      MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
-#endif
-
-#endif /* MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED */
-
-#if defined(MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED)
-
-#if (defined(MBEDTLS_SSL_HAVE_GCM) && defined(MBEDTLS_MD_CAN_SHA384))
-    { MBEDTLS_TLS_DHE_RSA_WITH_ARIA_256_GCM_SHA384,
-      "TLS-DHE-RSA-WITH-ARIA-256-GCM-SHA384",
-      MBEDTLS_CIPHER_ARIA_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_DHE_RSA,
-      0,
-      MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
-#endif
-#if (defined(MBEDTLS_SSL_HAVE_CBC) && \
-    defined(MBEDTLS_MD_CAN_SHA384))
-    { MBEDTLS_TLS_DHE_RSA_WITH_ARIA_256_CBC_SHA384,
-      "TLS-DHE-RSA-WITH-ARIA-256-CBC-SHA384",
-      MBEDTLS_CIPHER_ARIA_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_DHE_RSA,
-      0,
-      MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
-#endif
-#if (defined(MBEDTLS_SSL_HAVE_GCM) && defined(MBEDTLS_MD_CAN_SHA256))
-    { MBEDTLS_TLS_DHE_RSA_WITH_ARIA_128_GCM_SHA256,
-      "TLS-DHE-RSA-WITH-ARIA-128-GCM-SHA256",
-      MBEDTLS_CIPHER_ARIA_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_DHE_RSA,
-      0,
-      MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
-#endif
-#if (defined(MBEDTLS_SSL_HAVE_CBC) && \
-    defined(MBEDTLS_MD_CAN_SHA256))
-    { MBEDTLS_TLS_DHE_RSA_WITH_ARIA_128_CBC_SHA256,
-      "TLS-DHE-RSA-WITH-ARIA-128-CBC-SHA256",
-      MBEDTLS_CIPHER_ARIA_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_DHE_RSA,
-      0,
-      MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
-#endif
-
-#endif /* MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED */
-
-#if defined(MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED)
-
-#if (defined(MBEDTLS_SSL_HAVE_GCM) && defined(MBEDTLS_MD_CAN_SHA384))
-    { MBEDTLS_TLS_DHE_PSK_WITH_ARIA_256_GCM_SHA384,
-      "TLS-DHE-PSK-WITH-ARIA-256-GCM-SHA384",
-      MBEDTLS_CIPHER_ARIA_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_DHE_PSK,
-      0,
-      MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
-#endif
-#if (defined(MBEDTLS_SSL_HAVE_CBC) && \
-    defined(MBEDTLS_MD_CAN_SHA384))
-    { MBEDTLS_TLS_DHE_PSK_WITH_ARIA_256_CBC_SHA384,
-      "TLS-DHE-PSK-WITH-ARIA-256-CBC-SHA384",
-      MBEDTLS_CIPHER_ARIA_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_DHE_PSK,
-      0,
-      MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
-#endif
-#if (defined(MBEDTLS_SSL_HAVE_GCM) && defined(MBEDTLS_MD_CAN_SHA256))
-    { MBEDTLS_TLS_DHE_PSK_WITH_ARIA_128_GCM_SHA256,
-      "TLS-DHE-PSK-WITH-ARIA-128-GCM-SHA256",
-      MBEDTLS_CIPHER_ARIA_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_DHE_PSK,
-      0,
-      MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
-#endif
-#if (defined(MBEDTLS_SSL_HAVE_CBC) && \
-    defined(MBEDTLS_MD_CAN_SHA256))
-    { MBEDTLS_TLS_DHE_PSK_WITH_ARIA_128_CBC_SHA256,
-      "TLS-DHE-PSK-WITH-ARIA-128-CBC-SHA256",
-      MBEDTLS_CIPHER_ARIA_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_DHE_PSK,
-      0,
-      MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
-#endif
-
-#endif /* MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED */
-
-#endif /* MBEDTLS_SSL_HAVE_ARIA */
+#endif /* PSA_WANT_KEY_TYPE_ARIA */


     { 0, "",
@@ -1902,7 +885,6 @@ int mbedtls_ssl_get_ciphersuite_id(const char *ciphersuite_name)

 size_t mbedtls_ssl_ciphersuite_get_cipher_key_bitlen(const mbedtls_ssl_ciphersuite_t *info)
 {
-#if defined(MBEDTLS_USE_PSA_CRYPTO)
     psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED;
     psa_key_type_t key_type;
     psa_algorithm_t alg;
@@ -1917,54 +899,32 @@ size_t mbedtls_ssl_ciphersuite_get_cipher_key_bitlen(const mbedtls_ssl_ciphersui
     }

     return key_bits;
-#else
-    const mbedtls_cipher_info_t * const cipher_info =
-        mbedtls_cipher_info_from_type((mbedtls_cipher_type_t) info->cipher);
-
-    return mbedtls_cipher_info_get_key_bitlen(cipher_info);
-#endif /* MBEDTLS_USE_PSA_CRYPTO */
 }

 #if defined(MBEDTLS_PK_C)
 mbedtls_pk_type_t mbedtls_ssl_get_ciphersuite_sig_pk_alg(const mbedtls_ssl_ciphersuite_t *info)
 {
     switch (info->key_exchange) {
-        case MBEDTLS_KEY_EXCHANGE_RSA:
-        case MBEDTLS_KEY_EXCHANGE_DHE_RSA:
         case MBEDTLS_KEY_EXCHANGE_ECDHE_RSA:
-        case MBEDTLS_KEY_EXCHANGE_RSA_PSK:
             return MBEDTLS_PK_RSA;

         case MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA:
             return MBEDTLS_PK_ECDSA;

-        case MBEDTLS_KEY_EXCHANGE_ECDH_RSA:
-        case MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA:
-            return MBEDTLS_PK_ECKEY;
-
         default:
             return MBEDTLS_PK_NONE;
     }
 }

-#if defined(MBEDTLS_USE_PSA_CRYPTO)
 psa_algorithm_t mbedtls_ssl_get_ciphersuite_sig_pk_psa_alg(const mbedtls_ssl_ciphersuite_t *info)
 {
     switch (info->key_exchange) {
-        case MBEDTLS_KEY_EXCHANGE_RSA:
-        case MBEDTLS_KEY_EXCHANGE_RSA_PSK:
-            return PSA_ALG_RSA_PKCS1V15_CRYPT;
-        case MBEDTLS_KEY_EXCHANGE_DHE_RSA:
         case MBEDTLS_KEY_EXCHANGE_ECDHE_RSA:
             return PSA_ALG_RSA_PKCS1V15_SIGN(
                 mbedtls_md_psa_alg_from_type((mbedtls_md_type_t) info->mac));

         case MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA:
-            return PSA_ALG_ECDSA(mbedtls_md_psa_alg_from_type((mbedtls_md_type_t) info->mac));
-
-        case MBEDTLS_KEY_EXCHANGE_ECDH_RSA:
-        case MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA:
-            return PSA_ALG_ECDH;
+            return MBEDTLS_PK_ALG_ECDSA(mbedtls_md_psa_alg_from_type((mbedtls_md_type_t) info->mac));

         default:
             return PSA_ALG_NONE;
@@ -1974,28 +934,18 @@ psa_algorithm_t mbedtls_ssl_get_ciphersuite_sig_pk_psa_alg(const mbedtls_ssl_cip
 psa_key_usage_t mbedtls_ssl_get_ciphersuite_sig_pk_psa_usage(const mbedtls_ssl_ciphersuite_t *info)
 {
     switch (info->key_exchange) {
-        case MBEDTLS_KEY_EXCHANGE_RSA:
-        case MBEDTLS_KEY_EXCHANGE_RSA_PSK:
-            return PSA_KEY_USAGE_DECRYPT;
-        case MBEDTLS_KEY_EXCHANGE_DHE_RSA:
         case MBEDTLS_KEY_EXCHANGE_ECDHE_RSA:
         case MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA:
             return PSA_KEY_USAGE_SIGN_HASH;

-        case MBEDTLS_KEY_EXCHANGE_ECDH_RSA:
-        case MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA:
-            return PSA_KEY_USAGE_DERIVE;
-
         default:
             return 0;
     }
 }
-#endif /* MBEDTLS_USE_PSA_CRYPTO */

 mbedtls_pk_type_t mbedtls_ssl_get_ciphersuite_sig_alg(const mbedtls_ssl_ciphersuite_t *info)
 {
     switch (info->key_exchange) {
-        case MBEDTLS_KEY_EXCHANGE_DHE_RSA:
         case MBEDTLS_KEY_EXCHANGE_ECDHE_RSA:
             return MBEDTLS_PK_RSA;

@@ -2018,8 +968,6 @@ int mbedtls_ssl_ciphersuite_uses_ec(const mbedtls_ssl_ciphersuite_t *info)
         case MBEDTLS_KEY_EXCHANGE_ECDHE_RSA:
         case MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA:
         case MBEDTLS_KEY_EXCHANGE_ECDHE_PSK:
-        case MBEDTLS_KEY_EXCHANGE_ECDH_RSA:
-        case MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA:
         case MBEDTLS_KEY_EXCHANGE_ECJPAKE:
             return 1;

@@ -2036,8 +984,6 @@ int mbedtls_ssl_ciphersuite_uses_psk(const mbedtls_ssl_ciphersuite_t *info)
 {
     switch (info->key_exchange) {
         case MBEDTLS_KEY_EXCHANGE_PSK:
-        case MBEDTLS_KEY_EXCHANGE_RSA_PSK:
-        case MBEDTLS_KEY_EXCHANGE_DHE_PSK:
         case MBEDTLS_KEY_EXCHANGE_ECDHE_PSK:
             return 1;

diff --git a/deps/LIEF/third-party/mbedtls/library/ssl_ciphersuites_internal.h b/deps/LIEF/third-party/mbedtls/library/ssl_ciphersuites_internal.h
index 27ff72106ef..524e419f47c 100644
--- a/deps/LIEF/third-party/mbedtls/library/ssl_ciphersuites_internal.h
+++ b/deps/LIEF/third-party/mbedtls/library/ssl_ciphersuites_internal.h
@@ -11,13 +11,14 @@
 #define MBEDTLS_SSL_CIPHERSUITES_INTERNAL_H

 #include "mbedtls/pk.h"
+#if defined(MBEDTLS_PK_HAVE_PRIVATE_HEADER)
+#include <mbedtls/private/pk_private.h>
+#endif /* MBEDTLS_PK_HAVE_PRIVATE_HEADER */

 #if defined(MBEDTLS_PK_C)
 mbedtls_pk_type_t mbedtls_ssl_get_ciphersuite_sig_pk_alg(const mbedtls_ssl_ciphersuite_t *info);
-#if defined(MBEDTLS_USE_PSA_CRYPTO)
 psa_algorithm_t mbedtls_ssl_get_ciphersuite_sig_pk_psa_alg(const mbedtls_ssl_ciphersuite_t *info);
 psa_key_usage_t mbedtls_ssl_get_ciphersuite_sig_pk_psa_usage(const mbedtls_ssl_ciphersuite_t *info);
-#endif /* MBEDTLS_USE_PSA_CRYPTO */
 mbedtls_pk_type_t mbedtls_ssl_get_ciphersuite_sig_alg(const mbedtls_ssl_ciphersuite_t *info);
 #endif /* MBEDTLS_PK_C */

@@ -28,8 +29,6 @@ int mbedtls_ssl_ciphersuite_uses_psk(const mbedtls_ssl_ciphersuite_t *info);
 static inline int mbedtls_ssl_ciphersuite_has_pfs(const mbedtls_ssl_ciphersuite_t *info)
 {
     switch (info->MBEDTLS_PRIVATE(key_exchange)) {
-        case MBEDTLS_KEY_EXCHANGE_DHE_RSA:
-        case MBEDTLS_KEY_EXCHANGE_DHE_PSK:
         case MBEDTLS_KEY_EXCHANGE_ECDHE_RSA:
         case MBEDTLS_KEY_EXCHANGE_ECDHE_PSK:
         case MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA:
@@ -42,45 +41,23 @@ static inline int mbedtls_ssl_ciphersuite_has_pfs(const mbedtls_ssl_ciphersuite_
 }
 #endif /* MBEDTLS_KEY_EXCHANGE_SOME_PFS_ENABLED */

-#if defined(MBEDTLS_KEY_EXCHANGE_SOME_NON_PFS_ENABLED)
+#if defined(MBEDTLS_KEY_EXCHANGE_PSK_ENABLED)
 static inline int mbedtls_ssl_ciphersuite_no_pfs(const mbedtls_ssl_ciphersuite_t *info)
 {
     switch (info->MBEDTLS_PRIVATE(key_exchange)) {
-        case MBEDTLS_KEY_EXCHANGE_ECDH_RSA:
-        case MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA:
-        case MBEDTLS_KEY_EXCHANGE_RSA:
         case MBEDTLS_KEY_EXCHANGE_PSK:
-        case MBEDTLS_KEY_EXCHANGE_RSA_PSK:
             return 1;

         default:
             return 0;
     }
 }
-#endif /* MBEDTLS_KEY_EXCHANGE_SOME_NON_PFS_ENABLED */
-
-#if defined(MBEDTLS_KEY_EXCHANGE_SOME_ECDH_ENABLED)
-static inline int mbedtls_ssl_ciphersuite_uses_ecdh(const mbedtls_ssl_ciphersuite_t *info)
-{
-    switch (info->MBEDTLS_PRIVATE(key_exchange)) {
-        case MBEDTLS_KEY_EXCHANGE_ECDH_RSA:
-        case MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA:
-            return 1;
-
-        default:
-            return 0;
-    }
-}
-#endif /* MBEDTLS_KEY_EXCHANGE_SOME_ECDH_ENABLED */
+#endif /* MBEDTLS_KEY_EXCHANGE_PSK_ENABLED */

 static inline int mbedtls_ssl_ciphersuite_cert_req_allowed(const mbedtls_ssl_ciphersuite_t *info)
 {
     switch (info->MBEDTLS_PRIVATE(key_exchange)) {
-        case MBEDTLS_KEY_EXCHANGE_RSA:
-        case MBEDTLS_KEY_EXCHANGE_DHE_RSA:
-        case MBEDTLS_KEY_EXCHANGE_ECDH_RSA:
         case MBEDTLS_KEY_EXCHANGE_ECDHE_RSA:
-        case MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA:
         case MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA:
             return 1;

@@ -92,12 +69,7 @@ static inline int mbedtls_ssl_ciphersuite_cert_req_allowed(const mbedtls_ssl_cip
 static inline int mbedtls_ssl_ciphersuite_uses_srv_cert(const mbedtls_ssl_ciphersuite_t *info)
 {
     switch (info->MBEDTLS_PRIVATE(key_exchange)) {
-        case MBEDTLS_KEY_EXCHANGE_RSA:
-        case MBEDTLS_KEY_EXCHANGE_RSA_PSK:
-        case MBEDTLS_KEY_EXCHANGE_DHE_RSA:
-        case MBEDTLS_KEY_EXCHANGE_ECDH_RSA:
         case MBEDTLS_KEY_EXCHANGE_ECDHE_RSA:
-        case MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA:
         case MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA:
             return 1;

@@ -106,20 +78,6 @@ static inline int mbedtls_ssl_ciphersuite_uses_srv_cert(const mbedtls_ssl_cipher
     }
 }

-#if defined(MBEDTLS_KEY_EXCHANGE_SOME_DHE_ENABLED)
-static inline int mbedtls_ssl_ciphersuite_uses_dhe(const mbedtls_ssl_ciphersuite_t *info)
-{
-    switch (info->MBEDTLS_PRIVATE(key_exchange)) {
-        case MBEDTLS_KEY_EXCHANGE_DHE_RSA:
-        case MBEDTLS_KEY_EXCHANGE_DHE_PSK:
-            return 1;
-
-        default:
-            return 0;
-    }
-}
-#endif /* MBEDTLS_KEY_EXCHANGE_SOME_DHE_ENABLED) */
-
 #if defined(MBEDTLS_KEY_EXCHANGE_SOME_ECDHE_ENABLED)
 static inline int mbedtls_ssl_ciphersuite_uses_ecdhe(const mbedtls_ssl_ciphersuite_t *info)
 {
@@ -140,7 +98,6 @@ static inline int mbedtls_ssl_ciphersuite_uses_server_signature(
     const mbedtls_ssl_ciphersuite_t *info)
 {
     switch (info->MBEDTLS_PRIVATE(key_exchange)) {
-        case MBEDTLS_KEY_EXCHANGE_DHE_RSA:
         case MBEDTLS_KEY_EXCHANGE_ECDHE_RSA:
         case MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA:
             return 1;
diff --git a/deps/LIEF/third-party/mbedtls/library/ssl_client.c b/deps/LIEF/third-party/mbedtls/library/ssl_client.c
index 0bd00cd91a3..307da0fabb8 100644
--- a/deps/LIEF/third-party/mbedtls/library/ssl_client.c
+++ b/deps/LIEF/third-party/mbedtls/library/ssl_client.c
@@ -5,7 +5,7 @@
  *  SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
  */

-#include "common.h"
+#include "ssl_misc.h"

 #if defined(MBEDTLS_SSL_CLI_C)
 #if defined(MBEDTLS_SSL_PROTO_TLS1_3) || defined(MBEDTLS_SSL_PROTO_TLS1_2)
@@ -17,7 +17,6 @@
 #include "mbedtls/platform.h"

 #include "ssl_client.h"
-#include "ssl_misc.h"
 #include "ssl_tls13_keys.h"
 #include "ssl_debug_helpers.h"

@@ -29,20 +28,19 @@ static int ssl_write_hostname_ext(mbedtls_ssl_context *ssl,
                                   size_t *olen)
 {
     unsigned char *p = buf;
-    const char *hostname = mbedtls_ssl_get_hostname_pointer(ssl);
     size_t hostname_len;

     *olen = 0;

-    if (hostname == NULL) {
+    if (ssl->hostname == NULL) {
         return 0;
     }

     MBEDTLS_SSL_DEBUG_MSG(3,
                           ("client hello, adding server name extension: %s",
-                           hostname));
+                           ssl->hostname));

-    hostname_len = strlen(hostname);
+    hostname_len = strlen(ssl->hostname);

     MBEDTLS_SSL_CHK_BUF_PTR(p, end, hostname_len + 9);

@@ -86,7 +84,7 @@ static int ssl_write_hostname_ext(mbedtls_ssl_context *ssl,
     MBEDTLS_PUT_UINT16_BE(hostname_len, p, 0);
     p += 2;

-    memcpy(p, hostname, hostname_len);
+    memcpy(p, ssl->hostname, hostname_len);

     *olen = hostname_len + 9;

@@ -143,7 +141,7 @@ static int ssl_write_alpn_ext(mbedtls_ssl_context *ssl,
      *     ProtocolName protocol_name_list<2..2^16-1>
      * } ProtocolNameList;
      */
-    for (const char **cur = ssl->conf->alpn_list; *cur != NULL; cur++) {
+    for (const char *const *cur = ssl->conf->alpn_list; *cur != NULL; cur++) {
         /*
          * mbedtls_ssl_conf_set_alpn_protocols() checked that the length of
          * protocol names is less than 255.
@@ -224,7 +222,7 @@ static int ssl_write_supported_groups_ext(mbedtls_ssl_context *ssl,
     unsigned char *p = buf;
     unsigned char *named_group_list; /* Start of named_group_list */
     size_t named_group_list_len;     /* Length of named_group_list */
-    const uint16_t *group_list = mbedtls_ssl_get_groups(ssl);
+    const uint16_t *group_list = ssl->conf->group_list;

     *out_len = 0;

@@ -727,9 +725,8 @@ static int ssl_generate_random(mbedtls_ssl_context *ssl)
 #endif /* MBEDTLS_HAVE_TIME */
     }

-    ret = ssl->conf->f_rng(ssl->conf->p_rng,
-                           randbytes + gmt_unix_time_len,
-                           MBEDTLS_CLIENT_HELLO_RANDOM_LEN - gmt_unix_time_len);
+    ret = psa_generate_random(randbytes + gmt_unix_time_len,
+                              MBEDTLS_CLIENT_HELLO_RANDOM_LEN - gmt_unix_time_len);
     return ret;
 }

@@ -869,9 +866,9 @@ static int ssl_prepare_client_hello(mbedtls_ssl_context *ssl)
     if (session_id_len != session_negotiate->id_len) {
         session_negotiate->id_len = session_id_len;
         if (session_id_len > 0) {
-            ret = ssl->conf->f_rng(ssl->conf->p_rng,
-                                   session_negotiate->id,
-                                   session_id_len);
+
+            ret = psa_generate_random(session_negotiate->id,
+                                      session_id_len);
             if (ret != 0) {
                 MBEDTLS_SSL_DEBUG_RET(1, "creating session id failed", ret);
                 return ret;
@@ -882,14 +879,13 @@ static int ssl_prepare_client_hello(mbedtls_ssl_context *ssl)
 #if defined(MBEDTLS_SSL_PROTO_TLS1_3) && \
     defined(MBEDTLS_SSL_SESSION_TICKETS) && \
     defined(MBEDTLS_SSL_SERVER_NAME_INDICATION)
-    const char *context_hostname = mbedtls_ssl_get_hostname_pointer(ssl);
     if (ssl->tls_version == MBEDTLS_SSL_VERSION_TLS1_3  &&
         ssl->handshake->resume) {
-        int hostname_mismatch = context_hostname != NULL ||
+        int hostname_mismatch = ssl->hostname != NULL ||
                                 session_negotiate->hostname != NULL;
-        if (context_hostname != NULL && session_negotiate->hostname != NULL) {
+        if (ssl->hostname != NULL && session_negotiate->hostname != NULL) {
             hostname_mismatch = strcmp(
-                context_hostname, session_negotiate->hostname) != 0;
+                ssl->hostname, session_negotiate->hostname) != 0;
         }

         if (hostname_mismatch) {
@@ -900,7 +896,7 @@ static int ssl_prepare_client_hello(mbedtls_ssl_context *ssl)
         }
     } else {
         return mbedtls_ssl_session_set_hostname(session_negotiate,
-                                                context_hostname);
+                                                ssl->hostname);
     }
 #endif /* MBEDTLS_SSL_PROTO_TLS1_3 &&
           MBEDTLS_SSL_SESSION_TICKETS &&
diff --git a/deps/LIEF/third-party/mbedtls/library/ssl_client.h b/deps/LIEF/third-party/mbedtls/library/ssl_client.h
index 05ee7e4cc31..56e9bf85753 100644
--- a/deps/LIEF/third-party/mbedtls/library/ssl_client.h
+++ b/deps/LIEF/third-party/mbedtls/library/ssl_client.h
@@ -8,11 +8,7 @@
 #ifndef MBEDTLS_SSL_CLIENT_H
 #define MBEDTLS_SSL_CLIENT_H

-#include "common.h"
-
-#if defined(MBEDTLS_SSL_TLS_C)
 #include "ssl_misc.h"
-#endif

 #include <stddef.h>

diff --git a/deps/LIEF/third-party/mbedtls/library/ssl_cookie.c b/deps/LIEF/third-party/mbedtls/library/ssl_cookie.c
index acc9e8c080b..11811ee30f0 100644
--- a/deps/LIEF/third-party/mbedtls/library/ssl_cookie.c
+++ b/deps/LIEF/third-party/mbedtls/library/ssl_cookie.c
@@ -9,21 +9,19 @@
  * to store and retrieve the session information.
  */

-#include "common.h"
+#include "ssl_misc.h"

 #if defined(MBEDTLS_SSL_COOKIE_C)

 #include "mbedtls/platform.h"

 #include "mbedtls/ssl_cookie.h"
-#include "ssl_misc.h"
 #include "mbedtls/error.h"
 #include "mbedtls/platform_util.h"
 #include "mbedtls/constant_time.h"

 #include <string.h>

-#if defined(MBEDTLS_USE_PSA_CRYPTO)
 #include "mbedtls/psa_util.h"
 /* Define a local translating function to save code size by not using too many
  * arguments in each translating place. */
@@ -34,17 +32,16 @@ static int local_err_translation(psa_status_t status)
                                  psa_generic_status_to_mbedtls);
 }
 #define PSA_TO_MBEDTLS_ERR(status) local_err_translation(status)
-#endif

 /*
  * If DTLS is in use, then at least one of SHA-256 or SHA-384 is
  * available. Try SHA-256 first as 384 wastes resources
  */
-#if defined(MBEDTLS_MD_CAN_SHA256)
+#if defined(PSA_WANT_ALG_SHA_256)
 #define COOKIE_MD           MBEDTLS_MD_SHA256
 #define COOKIE_MD_OUTLEN    32
 #define COOKIE_HMAC_LEN     28
-#elif defined(MBEDTLS_MD_CAN_SHA384)
+#elif defined(PSA_WANT_ALG_SHA_384)
 #define COOKIE_MD           MBEDTLS_MD_SHA384
 #define COOKIE_MD_OUTLEN    48
 #define COOKIE_HMAC_LEN     28
@@ -60,21 +57,12 @@ static int local_err_translation(psa_status_t status)

 void mbedtls_ssl_cookie_init(mbedtls_ssl_cookie_ctx *ctx)
 {
-#if defined(MBEDTLS_USE_PSA_CRYPTO)
     ctx->psa_hmac_key = MBEDTLS_SVC_KEY_ID_INIT;
-#else
-    mbedtls_md_init(&ctx->hmac_ctx);
-#endif /* MBEDTLS_USE_PSA_CRYPTO */
 #if !defined(MBEDTLS_HAVE_TIME)
     ctx->serial = 0;
 #endif
     ctx->timeout = MBEDTLS_SSL_COOKIE_TIMEOUT;

-#if !defined(MBEDTLS_USE_PSA_CRYPTO)
-#if defined(MBEDTLS_THREADING_C)
-    mbedtls_mutex_init(&ctx->mutex);
-#endif
-#endif /* !MBEDTLS_USE_PSA_CRYPTO */
 }

 void mbedtls_ssl_cookie_set_timeout(mbedtls_ssl_cookie_ctx *ctx, unsigned long delay)
@@ -88,30 +76,17 @@ void mbedtls_ssl_cookie_free(mbedtls_ssl_cookie_ctx *ctx)
         return;
     }

-#if defined(MBEDTLS_USE_PSA_CRYPTO)
     psa_destroy_key(ctx->psa_hmac_key);
-#else
-    mbedtls_md_free(&ctx->hmac_ctx);
-
-#if defined(MBEDTLS_THREADING_C)
-    mbedtls_mutex_free(&ctx->mutex);
-#endif
-#endif /* MBEDTLS_USE_PSA_CRYPTO */

     mbedtls_platform_zeroize(ctx, sizeof(mbedtls_ssl_cookie_ctx));
 }

-int mbedtls_ssl_cookie_setup(mbedtls_ssl_cookie_ctx *ctx,
-                             int (*f_rng)(void *, unsigned char *, size_t),
-                             void *p_rng)
+int mbedtls_ssl_cookie_setup(mbedtls_ssl_cookie_ctx *ctx)
 {
-#if defined(MBEDTLS_USE_PSA_CRYPTO)
     psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT;
     psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED;
     psa_algorithm_t alg;

-    (void) f_rng;
-    (void) p_rng;

     alg = mbedtls_md_psa_alg_from_type(COOKIE_MD);
     if (alg == 0) {
@@ -131,57 +106,10 @@ int mbedtls_ssl_cookie_setup(mbedtls_ssl_cookie_ctx *ctx,
                                    &ctx->psa_hmac_key)) != PSA_SUCCESS) {
         return PSA_TO_MBEDTLS_ERR(status);
     }
-#else
-    int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
-    unsigned char key[COOKIE_MD_OUTLEN];
-
-    if ((ret = f_rng(p_rng, key, sizeof(key))) != 0) {
-        return ret;
-    }
-
-    ret = mbedtls_md_setup(&ctx->hmac_ctx, mbedtls_md_info_from_type(COOKIE_MD), 1);
-    if (ret != 0) {
-        return ret;
-    }
-
-    ret = mbedtls_md_hmac_starts(&ctx->hmac_ctx, key, sizeof(key));
-    if (ret != 0) {
-        return ret;
-    }
-
-    mbedtls_platform_zeroize(key, sizeof(key));
-#endif /* MBEDTLS_USE_PSA_CRYPTO */

     return 0;
 }

-#if !defined(MBEDTLS_USE_PSA_CRYPTO)
-/*
- * Generate the HMAC part of a cookie
- */
-MBEDTLS_CHECK_RETURN_CRITICAL
-static int ssl_cookie_hmac(mbedtls_md_context_t *hmac_ctx,
-                           const unsigned char time[4],
-                           unsigned char **p, unsigned char *end,
-                           const unsigned char *cli_id, size_t cli_id_len)
-{
-    unsigned char hmac_out[COOKIE_MD_OUTLEN];
-
-    MBEDTLS_SSL_CHK_BUF_PTR(*p, end, COOKIE_HMAC_LEN);
-
-    if (mbedtls_md_hmac_reset(hmac_ctx) != 0 ||
-        mbedtls_md_hmac_update(hmac_ctx, time, 4) != 0 ||
-        mbedtls_md_hmac_update(hmac_ctx, cli_id, cli_id_len) != 0 ||
-        mbedtls_md_hmac_finish(hmac_ctx, hmac_out) != 0) {
-        return MBEDTLS_ERR_SSL_INTERNAL_ERROR;
-    }
-
-    memcpy(*p, hmac_out, COOKIE_HMAC_LEN);
-    *p += COOKIE_HMAC_LEN;
-
-    return 0;
-}
-#endif /* !MBEDTLS_USE_PSA_CRYPTO */

 /*
  * Generate cookie for DTLS ClientHello verification
@@ -190,11 +118,9 @@ int mbedtls_ssl_cookie_write(void *p_ctx,
                              unsigned char **p, unsigned char *end,
                              const unsigned char *cli_id, size_t cli_id_len)
 {
-#if defined(MBEDTLS_USE_PSA_CRYPTO)
     psa_mac_operation_t operation = PSA_MAC_OPERATION_INIT;
     psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED;
     size_t sign_mac_length = 0;
-#endif
     int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
     mbedtls_ssl_cookie_ctx *ctx = (mbedtls_ssl_cookie_ctx *) p_ctx;
     unsigned long t;
@@ -214,7 +140,6 @@ int mbedtls_ssl_cookie_write(void *p_ctx,
     MBEDTLS_PUT_UINT32_BE(t, *p, 0);
     *p += 4;

-#if defined(MBEDTLS_USE_PSA_CRYPTO)
     status = psa_mac_sign_setup(&operation, ctx->psa_hmac_key,
                                 ctx->psa_hmac_alg);
     if (status != PSA_SUCCESS) {
@@ -244,31 +169,12 @@ int mbedtls_ssl_cookie_write(void *p_ctx,
     *p += COOKIE_HMAC_LEN;

     ret = 0;
-#else
-#if defined(MBEDTLS_THREADING_C)
-    if ((ret = mbedtls_mutex_lock(&ctx->mutex)) != 0) {
-        return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_SSL_INTERNAL_ERROR, ret);
-    }
-#endif
-
-    ret = ssl_cookie_hmac(&ctx->hmac_ctx, *p - 4,
-                          p, end, cli_id, cli_id_len);
-
-#if defined(MBEDTLS_THREADING_C)
-    if (mbedtls_mutex_unlock(&ctx->mutex) != 0) {
-        return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_SSL_INTERNAL_ERROR,
-                                 MBEDTLS_ERR_THREADING_MUTEX_ERROR);
-    }
-#endif
-#endif /* MBEDTLS_USE_PSA_CRYPTO */

-#if defined(MBEDTLS_USE_PSA_CRYPTO)
 exit:
     status = psa_mac_abort(&operation);
     if (status != PSA_SUCCESS) {
         ret = PSA_TO_MBEDTLS_ERR(status);
     }
-#endif /* MBEDTLS_USE_PSA_CRYPTO */
     return ret;
 }

@@ -279,13 +185,8 @@ int mbedtls_ssl_cookie_check(void *p_ctx,
                              const unsigned char *cookie, size_t cookie_len,
                              const unsigned char *cli_id, size_t cli_id_len)
 {
-#if defined(MBEDTLS_USE_PSA_CRYPTO)
     psa_mac_operation_t operation = PSA_MAC_OPERATION_INIT;
     psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED;
-#else
-    unsigned char ref_hmac[COOKIE_HMAC_LEN];
-    unsigned char *p = ref_hmac;
-#endif
     int ret = 0;
     mbedtls_ssl_cookie_ctx *ctx = (mbedtls_ssl_cookie_ctx *) p_ctx;
     unsigned long cur_time, cookie_time;
@@ -298,7 +199,6 @@ int mbedtls_ssl_cookie_check(void *p_ctx,
         return -1;
     }

-#if defined(MBEDTLS_USE_PSA_CRYPTO)
     status = psa_mac_verify_setup(&operation, ctx->psa_hmac_key,
                                   ctx->psa_hmac_alg);
     if (status != PSA_SUCCESS) {
@@ -327,35 +227,6 @@ int mbedtls_ssl_cookie_check(void *p_ctx,
     }

     ret = 0;
-#else
-#if defined(MBEDTLS_THREADING_C)
-    if ((ret = mbedtls_mutex_lock(&ctx->mutex)) != 0) {
-        return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_SSL_INTERNAL_ERROR, ret);
-    }
-#endif
-
-    if (ssl_cookie_hmac(&ctx->hmac_ctx, cookie,
-                        &p, p + sizeof(ref_hmac),
-                        cli_id, cli_id_len) != 0) {
-        ret = -1;
-    }
-
-#if defined(MBEDTLS_THREADING_C)
-    if (mbedtls_mutex_unlock(&ctx->mutex) != 0) {
-        ret = MBEDTLS_ERROR_ADD(MBEDTLS_ERR_SSL_INTERNAL_ERROR,
-                                MBEDTLS_ERR_THREADING_MUTEX_ERROR);
-    }
-#endif
-
-    if (ret != 0) {
-        goto exit;
-    }
-
-    if (mbedtls_ct_memcmp(cookie + 4, ref_hmac, sizeof(ref_hmac)) != 0) {
-        ret = -1;
-        goto exit;
-    }
-#endif /* MBEDTLS_USE_PSA_CRYPTO */

 #if defined(MBEDTLS_HAVE_TIME)
     cur_time = (unsigned long) mbedtls_time(NULL);
@@ -371,14 +242,10 @@ int mbedtls_ssl_cookie_check(void *p_ctx,
     }

 exit:
-#if defined(MBEDTLS_USE_PSA_CRYPTO)
     status = psa_mac_abort(&operation);
     if (status != PSA_SUCCESS) {
         ret = PSA_TO_MBEDTLS_ERR(status);
     }
-#else
-    mbedtls_platform_zeroize(ref_hmac, sizeof(ref_hmac));
-#endif /* MBEDTLS_USE_PSA_CRYPTO */
     return ret;
 }
 #endif /* MBEDTLS_SSL_COOKIE_C */
diff --git a/deps/LIEF/third-party/mbedtls/library/ssl_debug_helpers.h b/deps/LIEF/third-party/mbedtls/library/ssl_debug_helpers.h
index 4889e77e04b..6f843404c75 100644
--- a/deps/LIEF/third-party/mbedtls/library/ssl_debug_helpers.h
+++ b/deps/LIEF/third-party/mbedtls/library/ssl_debug_helpers.h
@@ -11,13 +11,11 @@
 #ifndef MBEDTLS_SSL_DEBUG_HELPERS_H
 #define MBEDTLS_SSL_DEBUG_HELPERS_H

-#include "common.h"
+#include "ssl_misc.h"

 #if defined(MBEDTLS_DEBUG_C)

 #include "mbedtls/ssl.h"
-#include "ssl_misc.h"
-

 const char *mbedtls_ssl_states_str(mbedtls_ssl_states in);

diff --git a/deps/LIEF/third-party/mbedtls/library/ssl_debug_helpers_generated.c b/deps/LIEF/third-party/mbedtls/library/ssl_debug_helpers_generated.c
deleted file mode 100644
index 808fce73718..00000000000
--- a/deps/LIEF/third-party/mbedtls/library/ssl_debug_helpers_generated.c
+++ /dev/null
@@ -1,251 +0,0 @@
-/* Automatically generated by generate_ssl_debug_helpers.py. DO NOT EDIT. */
-
-/**
- * \file ssl_debug_helpers_generated.c
- *
- * \brief Automatically generated helper functions for debugging
- */
-/*
- *  Copyright The Mbed TLS Contributors
- *  SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
- *
- */
-
-#include "ssl_misc.h"
-
-#if defined(MBEDTLS_DEBUG_C)
-
-#include "ssl_debug_helpers.h"
-
-
-const char *mbedtls_ssl_named_group_to_str( uint16_t in )
-{
-    switch( in )
-    {
-    case MBEDTLS_SSL_IANA_TLS_GROUP_SECP192K1:
-        return "secp192k1";
-    case MBEDTLS_SSL_IANA_TLS_GROUP_SECP192R1:
-        return "secp192r1";
-    case MBEDTLS_SSL_IANA_TLS_GROUP_SECP224K1:
-        return "secp224k1";
-    case MBEDTLS_SSL_IANA_TLS_GROUP_SECP224R1:
-        return "secp224r1";
-    case MBEDTLS_SSL_IANA_TLS_GROUP_SECP256K1:
-        return "secp256k1";
-    case MBEDTLS_SSL_IANA_TLS_GROUP_SECP256R1:
-        return "secp256r1";
-    case MBEDTLS_SSL_IANA_TLS_GROUP_SECP384R1:
-        return "secp384r1";
-    case MBEDTLS_SSL_IANA_TLS_GROUP_SECP521R1:
-        return "secp521r1";
-    case MBEDTLS_SSL_IANA_TLS_GROUP_BP256R1:
-        return "bp256r1";
-    case MBEDTLS_SSL_IANA_TLS_GROUP_BP384R1:
-        return "bp384r1";
-    case MBEDTLS_SSL_IANA_TLS_GROUP_BP512R1:
-        return "bp512r1";
-    case MBEDTLS_SSL_IANA_TLS_GROUP_X25519:
-        return "x25519";
-    case MBEDTLS_SSL_IANA_TLS_GROUP_X448:
-        return "x448";
-    case MBEDTLS_SSL_IANA_TLS_GROUP_FFDHE2048:
-        return "ffdhe2048";
-    case MBEDTLS_SSL_IANA_TLS_GROUP_FFDHE3072:
-        return "ffdhe3072";
-    case MBEDTLS_SSL_IANA_TLS_GROUP_FFDHE4096:
-        return "ffdhe4096";
-    case MBEDTLS_SSL_IANA_TLS_GROUP_FFDHE6144:
-        return "ffdhe6144";
-    case MBEDTLS_SSL_IANA_TLS_GROUP_FFDHE8192:
-        return "ffdhe8192";
-    };
-
-    return "UNKNOWN";
-}
-const char *mbedtls_ssl_sig_alg_to_str( uint16_t in )
-{
-    switch( in )
-    {
-    case MBEDTLS_TLS1_3_SIG_RSA_PKCS1_SHA256:
-        return "rsa_pkcs1_sha256";
-    case MBEDTLS_TLS1_3_SIG_RSA_PKCS1_SHA384:
-        return "rsa_pkcs1_sha384";
-    case MBEDTLS_TLS1_3_SIG_RSA_PKCS1_SHA512:
-        return "rsa_pkcs1_sha512";
-    case MBEDTLS_TLS1_3_SIG_ECDSA_SECP256R1_SHA256:
-        return "ecdsa_secp256r1_sha256";
-    case MBEDTLS_TLS1_3_SIG_ECDSA_SECP384R1_SHA384:
-        return "ecdsa_secp384r1_sha384";
-    case MBEDTLS_TLS1_3_SIG_ECDSA_SECP521R1_SHA512:
-        return "ecdsa_secp521r1_sha512";
-    case MBEDTLS_TLS1_3_SIG_RSA_PSS_RSAE_SHA256:
-        return "rsa_pss_rsae_sha256";
-    case MBEDTLS_TLS1_3_SIG_RSA_PSS_RSAE_SHA384:
-        return "rsa_pss_rsae_sha384";
-    case MBEDTLS_TLS1_3_SIG_RSA_PSS_RSAE_SHA512:
-        return "rsa_pss_rsae_sha512";
-    case MBEDTLS_TLS1_3_SIG_ED25519:
-        return "ed25519";
-    case MBEDTLS_TLS1_3_SIG_ED448:
-        return "ed448";
-    case MBEDTLS_TLS1_3_SIG_RSA_PSS_PSS_SHA256:
-        return "rsa_pss_pss_sha256";
-    case MBEDTLS_TLS1_3_SIG_RSA_PSS_PSS_SHA384:
-        return "rsa_pss_pss_sha384";
-    case MBEDTLS_TLS1_3_SIG_RSA_PSS_PSS_SHA512:
-        return "rsa_pss_pss_sha512";
-    case MBEDTLS_TLS1_3_SIG_RSA_PKCS1_SHA1:
-        return "rsa_pkcs1_sha1";
-    case MBEDTLS_TLS1_3_SIG_ECDSA_SHA1:
-        return "ecdsa_sha1";
-    case MBEDTLS_TLS1_3_SIG_NONE:
-        return "none";
-    };
-
-    return "UNKNOWN";
-}
-const char *mbedtls_ssl_states_str( mbedtls_ssl_states in )
-{
-    switch (in) {
-        case MBEDTLS_SSL_HELLO_REQUEST:
-            return "MBEDTLS_SSL_HELLO_REQUEST";
-        case MBEDTLS_SSL_CLIENT_HELLO:
-            return "MBEDTLS_SSL_CLIENT_HELLO";
-        case MBEDTLS_SSL_SERVER_HELLO:
-            return "MBEDTLS_SSL_SERVER_HELLO";
-        case MBEDTLS_SSL_SERVER_CERTIFICATE:
-            return "MBEDTLS_SSL_SERVER_CERTIFICATE";
-        case MBEDTLS_SSL_SERVER_KEY_EXCHANGE:
-            return "MBEDTLS_SSL_SERVER_KEY_EXCHANGE";
-        case MBEDTLS_SSL_CERTIFICATE_REQUEST:
-            return "MBEDTLS_SSL_CERTIFICATE_REQUEST";
-        case MBEDTLS_SSL_SERVER_HELLO_DONE:
-            return "MBEDTLS_SSL_SERVER_HELLO_DONE";
-        case MBEDTLS_SSL_CLIENT_CERTIFICATE:
-            return "MBEDTLS_SSL_CLIENT_CERTIFICATE";
-        case MBEDTLS_SSL_CLIENT_KEY_EXCHANGE:
-            return "MBEDTLS_SSL_CLIENT_KEY_EXCHANGE";
-        case MBEDTLS_SSL_CERTIFICATE_VERIFY:
-            return "MBEDTLS_SSL_CERTIFICATE_VERIFY";
-        case MBEDTLS_SSL_CLIENT_CHANGE_CIPHER_SPEC:
-            return "MBEDTLS_SSL_CLIENT_CHANGE_CIPHER_SPEC";
-        case MBEDTLS_SSL_CLIENT_FINISHED:
-            return "MBEDTLS_SSL_CLIENT_FINISHED";
-        case MBEDTLS_SSL_SERVER_CHANGE_CIPHER_SPEC:
-            return "MBEDTLS_SSL_SERVER_CHANGE_CIPHER_SPEC";
-        case MBEDTLS_SSL_SERVER_FINISHED:
-            return "MBEDTLS_SSL_SERVER_FINISHED";
-        case MBEDTLS_SSL_FLUSH_BUFFERS:
-            return "MBEDTLS_SSL_FLUSH_BUFFERS";
-        case MBEDTLS_SSL_HANDSHAKE_WRAPUP:
-            return "MBEDTLS_SSL_HANDSHAKE_WRAPUP";
-        case MBEDTLS_SSL_NEW_SESSION_TICKET:
-            return "MBEDTLS_SSL_NEW_SESSION_TICKET";
-        case MBEDTLS_SSL_SERVER_HELLO_VERIFY_REQUEST_SENT:
-            return "MBEDTLS_SSL_SERVER_HELLO_VERIFY_REQUEST_SENT";
-        case MBEDTLS_SSL_HELLO_RETRY_REQUEST:
-            return "MBEDTLS_SSL_HELLO_RETRY_REQUEST";
-        case MBEDTLS_SSL_ENCRYPTED_EXTENSIONS:
-            return "MBEDTLS_SSL_ENCRYPTED_EXTENSIONS";
-        case MBEDTLS_SSL_END_OF_EARLY_DATA:
-            return "MBEDTLS_SSL_END_OF_EARLY_DATA";
-        case MBEDTLS_SSL_CLIENT_CERTIFICATE_VERIFY:
-            return "MBEDTLS_SSL_CLIENT_CERTIFICATE_VERIFY";
-        case MBEDTLS_SSL_CLIENT_CCS_AFTER_SERVER_FINISHED:
-            return "MBEDTLS_SSL_CLIENT_CCS_AFTER_SERVER_FINISHED";
-        case MBEDTLS_SSL_CLIENT_CCS_BEFORE_2ND_CLIENT_HELLO:
-            return "MBEDTLS_SSL_CLIENT_CCS_BEFORE_2ND_CLIENT_HELLO";
-        case MBEDTLS_SSL_SERVER_CCS_AFTER_SERVER_HELLO:
-            return "MBEDTLS_SSL_SERVER_CCS_AFTER_SERVER_HELLO";
-        case MBEDTLS_SSL_CLIENT_CCS_AFTER_CLIENT_HELLO:
-            return "MBEDTLS_SSL_CLIENT_CCS_AFTER_CLIENT_HELLO";
-        case MBEDTLS_SSL_SERVER_CCS_AFTER_HELLO_RETRY_REQUEST:
-            return "MBEDTLS_SSL_SERVER_CCS_AFTER_HELLO_RETRY_REQUEST";
-        case MBEDTLS_SSL_HANDSHAKE_OVER:
-            return "MBEDTLS_SSL_HANDSHAKE_OVER";
-        case MBEDTLS_SSL_TLS1_3_NEW_SESSION_TICKET:
-            return "MBEDTLS_SSL_TLS1_3_NEW_SESSION_TICKET";
-        case MBEDTLS_SSL_TLS1_3_NEW_SESSION_TICKET_FLUSH:
-            return "MBEDTLS_SSL_TLS1_3_NEW_SESSION_TICKET_FLUSH";
-        default:
-            return "UNKNOWN_VALUE";
-    }
-}
-
-#if defined(MBEDTLS_SSL_EARLY_DATA) && defined(MBEDTLS_SSL_CLI_C)
-const char *mbedtls_ssl_early_data_status_str( mbedtls_ssl_early_data_status in )
-{
-    switch (in) {
-        case MBEDTLS_SSL_EARLY_DATA_STATUS_NOT_INDICATED:
-            return "MBEDTLS_SSL_EARLY_DATA_STATUS_NOT_INDICATED";
-        case MBEDTLS_SSL_EARLY_DATA_STATUS_ACCEPTED:
-            return "MBEDTLS_SSL_EARLY_DATA_STATUS_ACCEPTED";
-        case MBEDTLS_SSL_EARLY_DATA_STATUS_REJECTED:
-            return "MBEDTLS_SSL_EARLY_DATA_STATUS_REJECTED";
-        default:
-            return "UNKNOWN_VALUE";
-    }
-}
-
-#endif /* defined(MBEDTLS_SSL_EARLY_DATA) && defined(MBEDTLS_SSL_CLI_C) */
-const char *mbedtls_ssl_protocol_version_str( mbedtls_ssl_protocol_version in )
-{
-    switch (in) {
-        case MBEDTLS_SSL_VERSION_UNKNOWN:
-            return "MBEDTLS_SSL_VERSION_UNKNOWN";
-        case MBEDTLS_SSL_VERSION_TLS1_2:
-            return "MBEDTLS_SSL_VERSION_TLS1_2";
-        case MBEDTLS_SSL_VERSION_TLS1_3:
-            return "MBEDTLS_SSL_VERSION_TLS1_3";
-        default:
-            return "UNKNOWN_VALUE";
-    }
-}
-
-const char *mbedtls_tls_prf_types_str( mbedtls_tls_prf_types in )
-{
-    switch (in) {
-        case MBEDTLS_SSL_TLS_PRF_NONE:
-            return "MBEDTLS_SSL_TLS_PRF_NONE";
-        case MBEDTLS_SSL_TLS_PRF_SHA384:
-            return "MBEDTLS_SSL_TLS_PRF_SHA384";
-        case MBEDTLS_SSL_TLS_PRF_SHA256:
-            return "MBEDTLS_SSL_TLS_PRF_SHA256";
-        case MBEDTLS_SSL_HKDF_EXPAND_SHA384:
-            return "MBEDTLS_SSL_HKDF_EXPAND_SHA384";
-        case MBEDTLS_SSL_HKDF_EXPAND_SHA256:
-            return "MBEDTLS_SSL_HKDF_EXPAND_SHA256";
-        default:
-            return "UNKNOWN_VALUE";
-    }
-}
-
-const char *mbedtls_ssl_key_export_type_str( mbedtls_ssl_key_export_type in )
-{
-    switch (in) {
-        case MBEDTLS_SSL_KEY_EXPORT_TLS12_MASTER_SECRET:
-            return "MBEDTLS_SSL_KEY_EXPORT_TLS12_MASTER_SECRET";
-#if defined(MBEDTLS_SSL_PROTO_TLS1_3)
-        case MBEDTLS_SSL_KEY_EXPORT_TLS1_3_CLIENT_EARLY_SECRET:
-            return "MBEDTLS_SSL_KEY_EXPORT_TLS1_3_CLIENT_EARLY_SECRET";
-        case MBEDTLS_SSL_KEY_EXPORT_TLS1_3_EARLY_EXPORTER_SECRET:
-            return "MBEDTLS_SSL_KEY_EXPORT_TLS1_3_EARLY_EXPORTER_SECRET";
-        case MBEDTLS_SSL_KEY_EXPORT_TLS1_3_CLIENT_HANDSHAKE_TRAFFIC_SECRET:
-            return "MBEDTLS_SSL_KEY_EXPORT_TLS1_3_CLIENT_HANDSHAKE_TRAFFIC_SECRET";
-        case MBEDTLS_SSL_KEY_EXPORT_TLS1_3_SERVER_HANDSHAKE_TRAFFIC_SECRET:
-            return "MBEDTLS_SSL_KEY_EXPORT_TLS1_3_SERVER_HANDSHAKE_TRAFFIC_SECRET";
-        case MBEDTLS_SSL_KEY_EXPORT_TLS1_3_CLIENT_APPLICATION_TRAFFIC_SECRET:
-            return "MBEDTLS_SSL_KEY_EXPORT_TLS1_3_CLIENT_APPLICATION_TRAFFIC_SECRET";
-        case MBEDTLS_SSL_KEY_EXPORT_TLS1_3_SERVER_APPLICATION_TRAFFIC_SECRET:
-            return "MBEDTLS_SSL_KEY_EXPORT_TLS1_3_SERVER_APPLICATION_TRAFFIC_SECRET";
-#endif
-        default:
-            return "UNKNOWN_VALUE";
-    }
-}
-
-
-
-#endif /* MBEDTLS_DEBUG_C */
-/* End of automatically generated file. */
-
diff --git a/deps/LIEF/third-party/mbedtls/library/ssl_misc.h b/deps/LIEF/third-party/mbedtls/library/ssl_misc.h
index faa1b5ec059..5b852bdd191 100644
--- a/deps/LIEF/third-party/mbedtls/library/ssl_misc.h
+++ b/deps/LIEF/third-party/mbedtls/library/ssl_misc.h
@@ -10,8 +10,8 @@
 #ifndef MBEDTLS_SSL_MISC_H
 #define MBEDTLS_SSL_MISC_H

+#include "tf_psa_crypto_common.h"
 #include "mbedtls/build_info.h"
-#include "common.h"

 #include "mbedtls/error.h"

@@ -19,40 +19,36 @@
 #include "mbedtls/debug.h"
 #include "debug_internal.h"

-#include "mbedtls/cipher.h"
+#include "mbedtls/private/cipher.h"

-#if defined(MBEDTLS_USE_PSA_CRYPTO) || defined(MBEDTLS_SSL_PROTO_TLS1_3)
 #include "psa/crypto.h"
 #include "psa_util_internal.h"
-#endif
-
-#if defined(MBEDTLS_MD_CAN_MD5)
-#include "mbedtls/md5.h"
-#endif
+extern const mbedtls_error_pair_t psa_to_ssl_errors[7];

-#if defined(MBEDTLS_MD_CAN_SHA1)
-#include "mbedtls/sha1.h"
+#if defined(PSA_WANT_ALG_MD5)
+#include "mbedtls/private/md5.h"
 #endif

-#if defined(MBEDTLS_MD_CAN_SHA256)
-#include "mbedtls/sha256.h"
+#if defined(PSA_WANT_ALG_SHA_1)
+#include "mbedtls/private/sha1.h"
 #endif

-#if defined(MBEDTLS_MD_CAN_SHA512)
-#include "mbedtls/sha512.h"
+#if defined(PSA_WANT_ALG_SHA_256)
+#include "mbedtls/private/sha256.h"
 #endif

-#if defined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED) && \
-    !defined(MBEDTLS_USE_PSA_CRYPTO)
-#include "mbedtls/ecjpake.h"
+#if defined(PSA_WANT_ALG_SHA_512)
+#include "mbedtls/private/sha512.h"
 #endif

 #include "mbedtls/pk.h"
+#if defined(MBEDTLS_PK_HAVE_PRIVATE_HEADER)
+#include <mbedtls/private/pk_private.h>
+#endif /* MBEDTLS_PK_HAVE_PRIVATE_HEADER */
 #include "ssl_ciphersuites_internal.h"
 #include "x509_internal.h"
 #include "pk_internal.h"

-
 /* Shorthand for restartable ECC */
 #if defined(MBEDTLS_ECP_RESTARTABLE) && \
     defined(MBEDTLS_SSL_CLI_C) && \
@@ -61,6 +57,22 @@
 #define MBEDTLS_SSL_ECP_RESTARTABLE_ENABLED
 #endif

+/** Flag values for mbedtls_ssl_context::flags. */
+typedef enum {
+    /** Set if mbedtls_ssl_set_hostname() has been called. */
+    MBEDTLS_SSL_CONTEXT_FLAG_HOSTNAME_SET = 1,
+} mbedtls_ssl_context_flags_t;
+
+/** Flags from ::mbedtls_ssl_context_flags_t to keep in
+ * mbedtls_ssl_session_reset().
+ *
+ * The flags that are in this list are kept until explicitly updated or
+ * until mbedtls_ssl_free(). The flags that are not listed here are
+ * reset to 0 in mbedtls_ssl_session_reset().
+ */
+#define MBEDTLS_SSL_CONTEXT_FLAGS_KEEP_AT_SESSION       \
+    (MBEDTLS_SSL_CONTEXT_FLAG_HOSTNAME_SET)
+
 #define MBEDTLS_SSL_INITIAL_HANDSHAKE           0
 #define MBEDTLS_SSL_RENEGOTIATION_IN_PROGRESS   1   /* In progress */
 #define MBEDTLS_SSL_RENEGOTIATION_DONE          2   /* Done or aborted */
@@ -258,16 +270,16 @@ uint32_t mbedtls_ssl_get_extension_mask(unsigned int extension_type);
 #if defined(MBEDTLS_SSL_PROTO_TLS1_2)

 /* This macro determines whether CBC is supported. */
-#if defined(MBEDTLS_SSL_HAVE_CBC)      &&                                  \
-    (defined(MBEDTLS_SSL_HAVE_AES)     ||                                  \
-    defined(MBEDTLS_SSL_HAVE_CAMELLIA) ||                                  \
-    defined(MBEDTLS_SSL_HAVE_ARIA))
+#if defined(PSA_WANT_ALG_CBC_NO_PADDING)      &&                                  \
+    (defined(PSA_WANT_KEY_TYPE_AES)     ||                                  \
+    defined(PSA_WANT_KEY_TYPE_CAMELLIA) ||                                  \
+    defined(PSA_WANT_KEY_TYPE_ARIA))
 #define MBEDTLS_SSL_SOME_SUITES_USE_CBC
 #endif

 /* This macro determines whether a ciphersuite using a
  * stream cipher can be used. */
-#if defined(MBEDTLS_CIPHER_NULL_CIPHER)
+#if defined(MBEDTLS_SSL_NULL_CIPHERSUITES)
 #define MBEDTLS_SSL_SOME_SUITES_USE_STREAM
 #endif

@@ -292,9 +304,9 @@ uint32_t mbedtls_ssl_get_extension_mask(unsigned int extension_type);

 #if defined(MBEDTLS_SSL_SOME_SUITES_USE_MAC)
 /* Ciphersuites using HMAC */
-#if defined(MBEDTLS_MD_CAN_SHA384)
+#if defined(PSA_WANT_ALG_SHA_384)
 #define MBEDTLS_SSL_MAC_ADD                 48  /* SHA-384 used for HMAC */
-#elif defined(MBEDTLS_MD_CAN_SHA256)
+#elif defined(PSA_WANT_ALG_SHA_256)
 #define MBEDTLS_SSL_MAC_ADD                 32  /* SHA-256 used for HMAC */
 #else
 #define MBEDTLS_SSL_MAC_ADD                 20  /* SHA-1   used for HMAC */
@@ -304,7 +316,7 @@ uint32_t mbedtls_ssl_get_extension_mask(unsigned int extension_type);
 #define MBEDTLS_SSL_MAC_ADD                 16
 #endif

-#if defined(MBEDTLS_SSL_HAVE_CBC)
+#if defined(PSA_WANT_ALG_CBC_NO_PADDING)
 #define MBEDTLS_SSL_PADDING_ADD            256
 #else
 #define MBEDTLS_SSL_PADDING_ADD              0
@@ -700,11 +712,6 @@ struct mbedtls_ssl_handshake_params {
     unsigned char retransmit_state;     /*!<  Retransmission state           */
 #endif

-#if !defined(MBEDTLS_DEPRECATED_REMOVED)
-    unsigned char group_list_heap_allocated;
-    unsigned char sig_algs_heap_allocated;
-#endif
-
 #if defined(MBEDTLS_SSL_ECP_RESTARTABLE_ENABLED)
     uint8_t ecrs_enabled;               /*!< Handshake supports EC restart? */
     enum { /* this complements ssl->state with info on intra-state operations */
@@ -773,16 +780,6 @@ struct mbedtls_ssl_handshake_params {
     const uint16_t *sig_algs;
 #endif

-#if defined(MBEDTLS_DHM_C)
-    mbedtls_dhm_context dhm_ctx;                /*!<  DHM key exchange        */
-#endif
-
-#if !defined(MBEDTLS_USE_PSA_CRYPTO) && \
-    defined(MBEDTLS_KEY_EXCHANGE_SOME_ECDH_OR_ECDHE_1_2_ENABLED)
-    mbedtls_ecdh_context ecdh_ctx;              /*!<  ECDH key exchange       */
-#endif /* !MBEDTLS_USE_PSA_CRYPTO &&
-          MBEDTLS_KEY_EXCHANGE_SOME_ECDH_OR_ECDHE_1_2_ENABLED */
-
 #if defined(MBEDTLS_KEY_EXCHANGE_SOME_XXDH_PSA_ANY_ENABLED)
     psa_key_type_t xxdh_psa_type;
     size_t xxdh_psa_bits;
@@ -793,13 +790,9 @@ struct mbedtls_ssl_handshake_params {
 #endif /* MBEDTLS_KEY_EXCHANGE_SOME_XXDH_PSA_ANY_ENABLED */

 #if defined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED)
-#if defined(MBEDTLS_USE_PSA_CRYPTO)
     psa_pake_operation_t psa_pake_ctx;        /*!< EC J-PAKE key exchange */
     mbedtls_svc_key_id_t psa_pake_password;
     uint8_t psa_pake_ctx_is_ok;
-#else
-    mbedtls_ecjpake_context ecjpake_ctx;        /*!< EC J-PAKE key exchange */
-#endif /* MBEDTLS_USE_PSA_CRYPTO */
 #if defined(MBEDTLS_SSL_CLI_C)
     unsigned char *ecjpake_cache;               /*!< Cache for ClientHello ext */
     size_t ecjpake_cache_len;                   /*!< Length of cached data */
@@ -813,13 +806,8 @@ struct mbedtls_ssl_handshake_params {
 #endif

 #if defined(MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED)
-#if defined(MBEDTLS_USE_PSA_CRYPTO)
     mbedtls_svc_key_id_t psk_opaque;            /*!< Opaque PSK from the callback   */
     uint8_t psk_opaque_is_internal;
-#else
-    unsigned char *psk;                 /*!<  PSK from the callback         */
-    size_t psk_len;                     /*!<  Length of PSK from callback   */
-#endif /* MBEDTLS_USE_PSA_CRYPTO */
     uint16_t    selected_identity;
 #endif /* MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED */

@@ -926,19 +914,11 @@ struct mbedtls_ssl_handshake_params {
     /*
      * Checksum contexts
      */
-#if defined(MBEDTLS_MD_CAN_SHA256)
-#if defined(MBEDTLS_USE_PSA_CRYPTO)
+#if defined(PSA_WANT_ALG_SHA_256)
     psa_hash_operation_t fin_sha256_psa;
-#else
-    mbedtls_md_context_t fin_sha256;
-#endif
 #endif
-#if defined(MBEDTLS_MD_CAN_SHA384)
-#if defined(MBEDTLS_USE_PSA_CRYPTO)
+#if defined(PSA_WANT_ALG_SHA_384)
     psa_hash_operation_t fin_sha384_psa;
-#else
-    mbedtls_md_context_t fin_sha384;
-#endif
 #endif

 #if defined(MBEDTLS_SSL_PROTO_TLS1_3)
@@ -1022,7 +1002,6 @@ struct mbedtls_ssl_handshake_params {
 #if defined(MBEDTLS_SSL_ASYNC_PRIVATE)
     /** Asynchronous operation context. This field is meant for use by the
      * asynchronous operation callbacks (mbedtls_ssl_config::f_async_sign_start,
-     * mbedtls_ssl_config::f_async_decrypt_start,
      * mbedtls_ssl_config::f_async_resume, mbedtls_ssl_config::f_async_cancel).
      * The library does not use it internally. */
     void *user_async_ctx;
@@ -1133,14 +1112,9 @@ struct mbedtls_ssl_transform {

 #if defined(MBEDTLS_SSL_SOME_SUITES_USE_MAC)

-#if defined(MBEDTLS_USE_PSA_CRYPTO)
     mbedtls_svc_key_id_t psa_mac_enc;           /*!<  MAC (encryption)        */
     mbedtls_svc_key_id_t psa_mac_dec;           /*!<  MAC (decryption)        */
     psa_algorithm_t psa_mac_alg;                /*!<  psa MAC algorithm       */
-#else
-    mbedtls_md_context_t md_ctx_enc;            /*!<  MAC (encryption)        */
-    mbedtls_md_context_t md_ctx_dec;            /*!<  MAC (decryption)        */
-#endif /* MBEDTLS_USE_PSA_CRYPTO */

 #if defined(MBEDTLS_SSL_ENCRYPT_THEN_MAC)
     int encrypt_then_mac;       /*!< flag for EtM activation                */
@@ -1150,14 +1124,9 @@ struct mbedtls_ssl_transform {

     mbedtls_ssl_protocol_version tls_version;

-#if defined(MBEDTLS_USE_PSA_CRYPTO)
     mbedtls_svc_key_id_t psa_key_enc;           /*!<  psa encryption key      */
     mbedtls_svc_key_id_t psa_key_dec;           /*!<  psa decryption key      */
     psa_algorithm_t psa_alg;                    /*!<  psa algorithm           */
-#else
-    mbedtls_cipher_context_t cipher_ctx_enc;    /*!<  encryption context      */
-    mbedtls_cipher_context_t cipher_ctx_dec;    /*!<  decryption context      */
-#endif /* MBEDTLS_USE_PSA_CRYPTO */

 #if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID)
     uint8_t in_cid_len;
@@ -1521,20 +1490,11 @@ int mbedtls_ssl_add_hs_hdr_to_checksum(mbedtls_ssl_context *ssl,
                                        unsigned hs_type,
                                        size_t total_hs_len);

-#if defined(MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED)
-#if !defined(MBEDTLS_USE_PSA_CRYPTO)
-MBEDTLS_CHECK_RETURN_CRITICAL
-int mbedtls_ssl_psk_derive_premaster(mbedtls_ssl_context *ssl,
-                                     mbedtls_key_exchange_type_t key_ex);
-#endif /* !MBEDTLS_USE_PSA_CRYPTO */
-#endif /* MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED */
-
 #if defined(MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED)
 #if defined(MBEDTLS_SSL_CLI_C) || defined(MBEDTLS_SSL_SRV_C)
 MBEDTLS_CHECK_RETURN_CRITICAL
 int mbedtls_ssl_conf_has_static_psk(mbedtls_ssl_config const *conf);
 #endif
-#if defined(MBEDTLS_USE_PSA_CRYPTO)
 /**
  * Get the first defined opaque PSK by order of precedence:
  * 1. handshake PSK set by \c mbedtls_ssl_set_hs_psk_opaque() in the PSK
@@ -1555,31 +1515,6 @@ static inline mbedtls_svc_key_id_t mbedtls_ssl_get_opaque_psk(

     return MBEDTLS_SVC_KEY_ID_INIT;
 }
-#else
-/**
- * Get the first defined PSK by order of precedence:
- * 1. handshake PSK set by \c mbedtls_ssl_set_hs_psk() in the PSK callback
- * 2. static PSK configured by \c mbedtls_ssl_conf_psk()
- * Return a code and update the pair (PSK, PSK length) passed to this function
- */
-static inline int mbedtls_ssl_get_psk(const mbedtls_ssl_context *ssl,
-                                      const unsigned char **psk, size_t *psk_len)
-{
-    if (ssl->handshake->psk != NULL && ssl->handshake->psk_len > 0) {
-        *psk = ssl->handshake->psk;
-        *psk_len = ssl->handshake->psk_len;
-    } else if (ssl->conf->psk != NULL && ssl->conf->psk_len > 0) {
-        *psk = ssl->conf->psk;
-        *psk_len = ssl->conf->psk_len;
-    } else {
-        *psk = NULL;
-        *psk_len = 0;
-        return MBEDTLS_ERR_SSL_PRIVATE_KEY_REQUIRED;
-    }
-
-    return 0;
-}
-#endif /* MBEDTLS_USE_PSA_CRYPTO */

 #endif /* MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED */

@@ -1599,10 +1534,10 @@ int mbedtls_ssl_set_calc_verify_md(mbedtls_ssl_context *ssl, int md);

 MBEDTLS_CHECK_RETURN_CRITICAL
 int mbedtls_ssl_check_curve_tls_id(const mbedtls_ssl_context *ssl, uint16_t tls_id);
-#if defined(MBEDTLS_PK_HAVE_ECC_KEYS)
+#if defined(PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY)
 MBEDTLS_CHECK_RETURN_CRITICAL
 int mbedtls_ssl_check_curve(const mbedtls_ssl_context *ssl, mbedtls_ecp_group_id grp_id);
-#endif /* MBEDTLS_PK_HAVE_ECC_KEYS */
+#endif /* PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY */

 /**
  * \brief Return PSA EC info for the specified TLS ID.
@@ -1822,9 +1757,7 @@ void mbedtls_ssl_transform_init(mbedtls_ssl_transform *transform);
 MBEDTLS_CHECK_RETURN_CRITICAL
 int mbedtls_ssl_encrypt_buf(mbedtls_ssl_context *ssl,
                             mbedtls_ssl_transform *transform,
-                            mbedtls_record *rec,
-                            int (*f_rng)(void *, unsigned char *, size_t),
-                            void *p_rng);
+                            mbedtls_record *rec);
 MBEDTLS_CHECK_RETURN_CRITICAL
 int mbedtls_ssl_decrypt_buf(mbedtls_ssl_context const *ssl,
                             mbedtls_ssl_transform *transform,
@@ -1950,26 +1883,6 @@ static inline int mbedtls_ssl_conf_is_hybrid_tls12_tls13(const mbedtls_ssl_confi
 #endif /* MBEDTLS_SSL_PROTO_TLS1_2 && MBEDTLS_SSL_PROTO_TLS1_3 */

 #if defined(MBEDTLS_SSL_PROTO_TLS1_3)
-
-/** \brief Initialize the PSA crypto subsystem if necessary.
- *
- * Call this function before doing any cryptography in a TLS 1.3 handshake.
- *
- * This is necessary in Mbed TLS 3.x for backward compatibility.
- * Up to Mbed TLS 3.5, in the default configuration, you could perform
- * a TLS connection with default parameters without having called
- * psa_crypto_init(), since the TLS layer only supported TLS 1.2 and
- * did not use PSA crypto. (TLS 1.2 only uses PSA crypto if
- * MBEDTLS_USE_PSA_CRYPTO is enabled, which is not the case in the default
- * configuration.) Starting with Mbed TLS 3.6.0, TLS 1.3 is enabled
- * by default, and the TLS 1.3 layer uses PSA crypto. This means that
- * applications that are not otherwise using PSA crypto and that worked
- * with Mbed TLS 3.5 started failing in TLS 3.6.0 if they connected to
- * a peer that supports TLS 1.3. See
- * https://github.com/Mbed-TLS/mbedtls/issues/9072
- */
-int mbedtls_ssl_tls13_crypto_init(mbedtls_ssl_context *ssl);
-
 extern const uint8_t mbedtls_ssl_tls13_hello_retry_request_magic[
     MBEDTLS_SERVER_HELLO_RANDOM_LEN];
 MBEDTLS_CHECK_RETURN_CRITICAL
@@ -2311,30 +2224,6 @@ int mbedtls_ssl_get_handshake_transcript(mbedtls_ssl_context *ssl,
                                          size_t dst_len,
                                          size_t *olen);

-/*
- * Return supported groups.
- *
- * In future, invocations can be changed to ssl->conf->group_list
- * when mbedtls_ssl_conf_curves() is deleted.
- *
- * ssl->handshake->group_list is either a translation of curve_list to IANA TLS group
- * identifiers when mbedtls_ssl_conf_curves() has been used, or a pointer to
- * ssl->conf->group_list when mbedtls_ssl_conf_groups() has been more recently invoked.
- *
- */
-static inline const void *mbedtls_ssl_get_groups(const mbedtls_ssl_context *ssl)
-{
-    #if defined(MBEDTLS_DEPRECATED_REMOVED) || !defined(MBEDTLS_ECP_C)
-    return ssl->conf->group_list;
-    #else
-    if ((ssl->handshake != NULL) && (ssl->handshake->group_list != NULL)) {
-        return ssl->handshake->group_list;
-    } else {
-        return ssl->conf->group_list;
-    }
-    #endif
-}
-
 /*
  * Helper functions for NamedGroup.
  */
@@ -2349,10 +2238,6 @@ static inline int mbedtls_ssl_tls12_named_group_is_ecdhe(uint16_t named_group)
            named_group == MBEDTLS_SSL_IANA_TLS_GROUP_BP512R1   ||
            named_group == MBEDTLS_SSL_IANA_TLS_GROUP_X448      ||
            /* Below deprecated curves should be removed with notice to users */
-           named_group == MBEDTLS_SSL_IANA_TLS_GROUP_SECP192K1 ||
-           named_group == MBEDTLS_SSL_IANA_TLS_GROUP_SECP192R1 ||
-           named_group == MBEDTLS_SSL_IANA_TLS_GROUP_SECP224K1 ||
-           named_group == MBEDTLS_SSL_IANA_TLS_GROUP_SECP224R1 ||
            named_group == MBEDTLS_SSL_IANA_TLS_GROUP_SECP256K1 ||
            named_group == MBEDTLS_SSL_IANA_TLS_GROUP_SECP256R1 ||
            named_group == MBEDTLS_SSL_IANA_TLS_GROUP_SECP384R1 ||
@@ -2377,7 +2262,7 @@ static inline int mbedtls_ssl_tls13_named_group_is_ffdh(uint16_t named_group)
 static inline int mbedtls_ssl_named_group_is_offered(
     const mbedtls_ssl_context *ssl, uint16_t named_group)
 {
-    const uint16_t *group_list = mbedtls_ssl_get_groups(ssl);
+    const uint16_t *group_list = ssl->conf->group_list;

     if (group_list == NULL) {
         return 0;
@@ -2415,15 +2300,6 @@ static inline int mbedtls_ssl_named_group_is_supported(uint16_t named_group)

 /*
  * Return supported signature algorithms.
- *
- * In future, invocations can be changed to ssl->conf->sig_algs when
- * mbedtls_ssl_conf_sig_hashes() is deleted.
- *
- * ssl->handshake->sig_algs is either a translation of sig_hashes to IANA TLS
- * signature algorithm identifiers when mbedtls_ssl_conf_sig_hashes() has been
- * used, or a pointer to ssl->conf->sig_algs when mbedtls_ssl_conf_sig_algs() has
- * been more recently invoked.
- *
  */
 static inline const void *mbedtls_ssl_get_sig_algs(
     const mbedtls_ssl_context *ssl)
@@ -2432,7 +2308,6 @@ static inline const void *mbedtls_ssl_get_sig_algs(

 #if !defined(MBEDTLS_DEPRECATED_REMOVED)
     if (ssl->handshake != NULL &&
-        ssl->handshake->sig_algs_heap_allocated == 1 &&
         ssl->handshake->sig_algs != NULL) {
         return ssl->handshake->sig_algs;
     }
@@ -2467,22 +2342,22 @@ static inline int mbedtls_ssl_tls13_sig_alg_for_cert_verify_is_supported(
     const uint16_t sig_alg)
 {
     switch (sig_alg) {
-#if defined(MBEDTLS_PK_CAN_ECDSA_SOME)
+#if defined(PSA_HAVE_ALG_SOME_ECDSA)
 #if defined(PSA_WANT_ALG_SHA_256) && defined(PSA_WANT_ECC_SECP_R1_256)
         case MBEDTLS_TLS1_3_SIG_ECDSA_SECP256R1_SHA256:
             break;
-#endif /* PSA_WANT_ALG_SHA_256 && MBEDTLS_ECP_DP_SECP256R1_ENABLED */
+#endif /* PSA_WANT_ALG_SHA_256 && PSA_WANT_ECC_SECP_R1_256 */
 #if defined(PSA_WANT_ALG_SHA_384) && defined(PSA_WANT_ECC_SECP_R1_384)
         case MBEDTLS_TLS1_3_SIG_ECDSA_SECP384R1_SHA384:
             break;
-#endif /* PSA_WANT_ALG_SHA_384 && MBEDTLS_ECP_DP_SECP384R1_ENABLED */
+#endif /* PSA_WANT_ALG_SHA_384 && PSA_WANT_ECC_SECP_R1_384 */
 #if defined(PSA_WANT_ALG_SHA_512) && defined(PSA_WANT_ECC_SECP_R1_521)
         case MBEDTLS_TLS1_3_SIG_ECDSA_SECP521R1_SHA512:
             break;
-#endif /* PSA_WANT_ALG_SHA_512 && MBEDTLS_ECP_DP_SECP521R1_ENABLED */
-#endif /* MBEDTLS_PK_CAN_ECDSA_SOME */
+#endif /* PSA_WANT_ALG_SHA_512 && PSA_WANT_ECC_SECP_R1_521 */
+#endif /* PSA_HAVE_ALG_SOME_ECDSA */

-#if defined(MBEDTLS_PKCS1_V21)
+#if defined(PSA_WANT_ALG_RSA_PSS)
 #if defined(PSA_WANT_ALG_SHA_256)
         case MBEDTLS_TLS1_3_SIG_RSA_PSS_RSAE_SHA256:
             break;
@@ -2495,7 +2370,7 @@ static inline int mbedtls_ssl_tls13_sig_alg_for_cert_verify_is_supported(
         case MBEDTLS_TLS1_3_SIG_RSA_PSS_RSAE_SHA512:
             break;
 #endif /* PSA_WANT_ALG_SHA_512 */
-#endif /* MBEDTLS_PKCS1_V21 */
+#endif /* PSA_WANT_ALG_RSA_PSS */
         default:
             return 0;
     }
@@ -2507,20 +2382,20 @@ static inline int mbedtls_ssl_tls13_sig_alg_is_supported(
     const uint16_t sig_alg)
 {
     switch (sig_alg) {
-#if defined(MBEDTLS_PKCS1_V15)
-#if defined(MBEDTLS_MD_CAN_SHA256)
+#if defined(PSA_WANT_ALG_RSA_PKCS1V15_SIGN)
+#if defined(PSA_WANT_ALG_SHA_256)
         case MBEDTLS_TLS1_3_SIG_RSA_PKCS1_SHA256:
             break;
-#endif /* MBEDTLS_MD_CAN_SHA256 */
-#if defined(MBEDTLS_MD_CAN_SHA384)
+#endif /* PSA_WANT_ALG_SHA_256 */
+#if defined(PSA_WANT_ALG_SHA_384)
         case MBEDTLS_TLS1_3_SIG_RSA_PKCS1_SHA384:
             break;
-#endif /* MBEDTLS_MD_CAN_SHA384 */
-#if defined(MBEDTLS_MD_CAN_SHA512)
+#endif /* PSA_WANT_ALG_SHA_384 */
+#if defined(PSA_WANT_ALG_SHA_512)
         case MBEDTLS_TLS1_3_SIG_RSA_PKCS1_SHA512:
             break;
-#endif /* MBEDTLS_MD_CAN_SHA512 */
-#endif /* MBEDTLS_PKCS1_V15 */
+#endif /* PSA_WANT_ALG_SHA_512 */
+#endif /* PSA_WANT_ALG_RSA_PKCS1V15_SIGN */
         default:
             return mbedtls_ssl_tls13_sig_alg_for_cert_verify_is_supported(
                 sig_alg);
@@ -2561,26 +2436,26 @@ static inline int mbedtls_ssl_get_pk_type_and_md_alg_from_sig_alg(
     }

     switch (sig_alg) {
-#if defined(MBEDTLS_PKCS1_V21)
-#if defined(MBEDTLS_MD_CAN_SHA256)
+#if defined(PSA_WANT_ALG_RSA_PSS)
+#if defined(PSA_WANT_ALG_SHA_256)
         case MBEDTLS_TLS1_3_SIG_RSA_PSS_RSAE_SHA256:
             *md_alg = MBEDTLS_MD_SHA256;
             *pk_type = MBEDTLS_PK_RSASSA_PSS;
             break;
-#endif /* MBEDTLS_MD_CAN_SHA256  */
-#if defined(MBEDTLS_MD_CAN_SHA384)
+#endif /* PSA_WANT_ALG_SHA_256  */
+#if defined(PSA_WANT_ALG_SHA_384)
         case MBEDTLS_TLS1_3_SIG_RSA_PSS_RSAE_SHA384:
             *md_alg = MBEDTLS_MD_SHA384;
             *pk_type = MBEDTLS_PK_RSASSA_PSS;
             break;
-#endif /* MBEDTLS_MD_CAN_SHA384 */
-#if defined(MBEDTLS_MD_CAN_SHA512)
+#endif /* PSA_WANT_ALG_SHA_384 */
+#if defined(PSA_WANT_ALG_SHA_512)
         case MBEDTLS_TLS1_3_SIG_RSA_PSS_RSAE_SHA512:
             *md_alg = MBEDTLS_MD_SHA512;
             *pk_type = MBEDTLS_PK_RSASSA_PSS;
             break;
-#endif /* MBEDTLS_MD_CAN_SHA512 */
-#endif /* MBEDTLS_PKCS1_V21 */
+#endif /* PSA_WANT_ALG_SHA_512 */
+#endif /* PSA_WANT_ALG_RSA_PSS */
         default:
             return MBEDTLS_ERR_SSL_FEATURE_UNAVAILABLE;
     }
@@ -2596,32 +2471,32 @@ static inline int mbedtls_ssl_tls12_sig_alg_is_supported(
     unsigned char sig = MBEDTLS_BYTE_0(sig_alg);

     switch (hash) {
-#if defined(MBEDTLS_MD_CAN_MD5)
+#if defined(PSA_WANT_ALG_MD5)
         case MBEDTLS_SSL_HASH_MD5:
             break;
 #endif

-#if defined(MBEDTLS_MD_CAN_SHA1)
+#if defined(PSA_WANT_ALG_SHA_1)
         case MBEDTLS_SSL_HASH_SHA1:
             break;
 #endif

-#if defined(MBEDTLS_MD_CAN_SHA224)
+#if defined(PSA_WANT_ALG_SHA_224)
         case MBEDTLS_SSL_HASH_SHA224:
             break;
 #endif

-#if defined(MBEDTLS_MD_CAN_SHA256)
+#if defined(PSA_WANT_ALG_SHA_256)
         case MBEDTLS_SSL_HASH_SHA256:
             break;
 #endif

-#if defined(MBEDTLS_MD_CAN_SHA384)
+#if defined(PSA_WANT_ALG_SHA_384)
         case MBEDTLS_SSL_HASH_SHA384:
             break;
 #endif

-#if defined(MBEDTLS_MD_CAN_SHA512)
+#if defined(PSA_WANT_ALG_SHA_512)
         case MBEDTLS_SSL_HASH_SHA512:
             break;
 #endif
@@ -2671,7 +2546,6 @@ static inline int mbedtls_ssl_sig_alg_is_supported(
 }
 #endif /* MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED */

-#if defined(MBEDTLS_USE_PSA_CRYPTO) || defined(MBEDTLS_SSL_PROTO_TLS1_3)
 /* Corresponding PSA algorithm for MBEDTLS_CIPHER_NULL.
  * Same value is used for PSA_ALG_CATEGORY_CIPHER, hence it is
  * guaranteed to not be a valid PSA algorithm identifier.
@@ -2732,10 +2606,8 @@ static inline MBEDTLS_DEPRECATED int psa_ssl_status_to_mbedtls(psa_status_t stat
     }
 }
 #endif /* !MBEDTLS_DEPRECATED_REMOVED */
-#endif /* MBEDTLS_USE_PSA_CRYPTO || MBEDTLS_SSL_PROTO_TLS1_3 */

-#if defined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED) && \
-    defined(MBEDTLS_USE_PSA_CRYPTO)
+#if defined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED)

 typedef enum {
     MBEDTLS_ECJPAKE_ROUND_ONE,
@@ -2778,7 +2650,7 @@ int mbedtls_psa_ecjpake_write_round(
     size_t len, size_t *olen,
     mbedtls_ecjpake_rounds_t round);

-#endif //MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED && MBEDTLS_USE_PSA_CRYPTO
+#endif /* MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED */

 /**
  * \brief       TLS record protection modes
@@ -2922,18 +2794,6 @@ int mbedtls_ssl_tls13_write_binders_of_pre_shared_key_ext(
     unsigned char *buf, unsigned char *end);
 #endif /* MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_PSK_ENABLED */

-#if defined(MBEDTLS_SSL_SERVER_NAME_INDICATION)
-/** Get the host name from the SSL context.
- *
- * \param[in]   ssl     SSL context
- *
- * \return The \p hostname pointer from the SSL context.
- *         \c NULL if mbedtls_ssl_set_hostname() has never been called on
- *         \p ssl or if it was last called with \p NULL.
- */
-const char *mbedtls_ssl_get_hostname_pointer(const mbedtls_ssl_context *ssl);
-#endif /* MBEDTLS_SSL_SERVER_NAME_INDICATION */
-
 #if defined(MBEDTLS_SSL_PROTO_TLS1_3) && \
     defined(MBEDTLS_SSL_SESSION_TICKETS) && \
     defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) && \
@@ -3005,39 +2865,8 @@ static inline void mbedtls_ssl_tls13_session_clear_ticket_flags(
 {
     session->ticket_flags &= ~(flags & MBEDTLS_SSL_TLS1_3_TICKET_FLAGS_MASK);
 }
-
 #endif /* MBEDTLS_SSL_PROTO_TLS1_3 && MBEDTLS_SSL_SESSION_TICKETS */

-#if defined(MBEDTLS_SSL_SESSION_TICKETS) && defined(MBEDTLS_SSL_CLI_C)
-#define MBEDTLS_SSL_SESSION_TICKETS_TLS1_2_BIT 0
-#define MBEDTLS_SSL_SESSION_TICKETS_TLS1_3_BIT 1
-
-#define MBEDTLS_SSL_SESSION_TICKETS_TLS1_2_MASK \
-    (1 << MBEDTLS_SSL_SESSION_TICKETS_TLS1_2_BIT)
-#define MBEDTLS_SSL_SESSION_TICKETS_TLS1_3_MASK \
-    (1 << MBEDTLS_SSL_SESSION_TICKETS_TLS1_3_BIT)
-
-#if defined(MBEDTLS_SSL_PROTO_TLS1_2)
-static inline int mbedtls_ssl_conf_get_session_tickets(
-    const mbedtls_ssl_config *conf)
-{
-    return conf->session_tickets & MBEDTLS_SSL_SESSION_TICKETS_TLS1_2_MASK ?
-           MBEDTLS_SSL_SESSION_TICKETS_ENABLED :
-           MBEDTLS_SSL_SESSION_TICKETS_DISABLED;
-}
-#endif /* MBEDTLS_SSL_PROTO_TLS1_2 */
-
-#if defined(MBEDTLS_SSL_PROTO_TLS1_3)
-static inline int mbedtls_ssl_conf_is_signal_new_session_tickets_enabled(
-    const mbedtls_ssl_config *conf)
-{
-    return conf->session_tickets & MBEDTLS_SSL_SESSION_TICKETS_TLS1_3_MASK ?
-           MBEDTLS_SSL_TLS1_3_SIGNAL_NEW_SESSION_TICKETS_ENABLED :
-           MBEDTLS_SSL_TLS1_3_SIGNAL_NEW_SESSION_TICKETS_DISABLED;
-}
-#endif /* MBEDTLS_SSL_PROTO_TLS1_3 */
-#endif /* MBEDTLS_SSL_SESSION_TICKETS && MBEDTLS_SSL_CLI_C */
-
 #if defined(MBEDTLS_SSL_CLI_C) && defined(MBEDTLS_SSL_PROTO_TLS1_3)
 int mbedtls_ssl_tls13_finalize_client_hello(mbedtls_ssl_context *ssl);
 #endif
@@ -3052,12 +2881,9 @@ int mbedtls_ssl_tls13_finalize_client_hello(mbedtls_ssl_context *ssl);
  * max_data_len. In particular, this function always reads exactly \p
  * max_data_len bytes from \p data.
  *
- * \param ctx               The HMAC context. It must have keys configured
- *                          with mbedtls_md_hmac_starts() and use one of the
- *                          following hashes: SHA-384, SHA-256, SHA-1 or MD-5.
- *                          It is reset using mbedtls_md_hmac_reset() after
- *                          the computation is complete to prepare for the
- *                          next computation.
+ * \param key               The HMAC key.
+ * \param mac_alg           The hash algorithm.
+ *                          Must be one of SHA-384, SHA-256, SHA-1 or MD-5.
  * \param add_data          The first part of the message whose HMAC is being
  *                          calculated. This must point to a readable buffer
  *                          of \p add_data_len bytes.
@@ -3080,7 +2906,6 @@ int mbedtls_ssl_tls13_finalize_client_hello(mbedtls_ssl_context *ssl);
  * \retval #MBEDTLS_ERR_PLATFORM_HW_ACCEL_FAILED
  *         The hardware accelerator failed.
  */
-#if defined(MBEDTLS_USE_PSA_CRYPTO)
 int mbedtls_ct_hmac(mbedtls_svc_key_id_t key,
                     psa_algorithm_t mac_alg,
                     const unsigned char *add_data,
@@ -3090,16 +2915,6 @@ int mbedtls_ct_hmac(mbedtls_svc_key_id_t key,
                     size_t min_data_len,
                     size_t max_data_len,
                     unsigned char *output);
-#else
-int mbedtls_ct_hmac(mbedtls_md_context_t *ctx,
-                    const unsigned char *add_data,
-                    size_t add_data_len,
-                    const unsigned char *data,
-                    size_t data_len_secret,
-                    size_t min_data_len,
-                    size_t max_data_len,
-                    unsigned char *output);
-#endif /* defined(MBEDTLS_USE_PSA_CRYPTO) */
 #endif /* MBEDTLS_TEST_HOOKS && defined(MBEDTLS_SSL_SOME_SUITES_USE_MAC) */

 #endif /* ssl_misc.h */
diff --git a/deps/LIEF/third-party/mbedtls/library/ssl_msg.c b/deps/LIEF/third-party/mbedtls/library/ssl_msg.c
index 9f50c8e542d..731cbc8eceb 100644
--- a/deps/LIEF/third-party/mbedtls/library/ssl_msg.c
+++ b/deps/LIEF/third-party/mbedtls/library/ssl_msg.c
@@ -10,14 +10,13 @@
  *  http://www.ietf.org/rfc/rfc4346.txt
  */

-#include "common.h"
+#include "ssl_misc.h"

 #if defined(MBEDTLS_SSL_TLS_C)

 #include "mbedtls/platform.h"

 #include "mbedtls/ssl.h"
-#include "ssl_misc.h"
 #include "debug_internal.h"
 #include "mbedtls/error.h"
 #include "mbedtls/platform_util.h"
@@ -25,19 +24,15 @@
 #include "constant_time_internal.h"
 #include "mbedtls/constant_time.h"

-#include <limits.h>
 #include <string.h>

-#if defined(MBEDTLS_USE_PSA_CRYPTO)
 #include "psa_util_internal.h"
 #include "psa/crypto.h"
-#endif

 #if defined(MBEDTLS_X509_CRT_PARSE_C)
 #include "mbedtls/oid.h"
 #endif

-#if defined(MBEDTLS_USE_PSA_CRYPTO)
 /* Define a local translating function to save code size by not using too many
  * arguments in each translating place. */
 static int local_err_translation(psa_status_t status)
@@ -47,11 +42,9 @@ static int local_err_translation(psa_status_t status)
                                  psa_generic_status_to_mbedtls);
 }
 #define PSA_TO_MBEDTLS_ERR(status) local_err_translation(status)
-#endif

 #if defined(MBEDTLS_SSL_SOME_SUITES_USE_MAC)

-#if defined(MBEDTLS_USE_PSA_CRYPTO)

 #if defined(PSA_WANT_ALG_SHA_384)
 #define MAX_HASH_BLOCK_LENGTH PSA_HASH_BLOCK_LENGTH(PSA_ALG_SHA_384)
@@ -181,99 +174,6 @@ cleanup:

 #undef MAX_HASH_BLOCK_LENGTH

-#else
-MBEDTLS_STATIC_TESTABLE
-int mbedtls_ct_hmac(mbedtls_md_context_t *ctx,
-                    const unsigned char *add_data,
-                    size_t add_data_len,
-                    const unsigned char *data,
-                    size_t data_len_secret,
-                    size_t min_data_len,
-                    size_t max_data_len,
-                    unsigned char *output)
-{
-    /*
-     * This function breaks the HMAC abstraction and uses the md_clone()
-     * extension to the MD API in order to get constant-flow behaviour.
-     *
-     * HMAC(msg) is defined as HASH(okey + HASH(ikey + msg)) where + means
-     * concatenation, and okey/ikey are the XOR of the key with some fixed bit
-     * patterns (see RFC 2104, sec. 2), which are stored in ctx->hmac_ctx.
-     *
-     * We'll first compute inner_hash = HASH(ikey + msg) by hashing up to
-     * minlen, then cloning the context, and for each byte up to maxlen
-     * finishing up the hash computation, keeping only the correct result.
-     *
-     * Then we only need to compute HASH(okey + inner_hash) and we're done.
-     */
-    const mbedtls_md_type_t md_alg = mbedtls_md_get_type(ctx->md_info);
-    /* TLS 1.2 only supports SHA-384, SHA-256, SHA-1, MD-5,
-     * all of which have the same block size except SHA-384. */
-    const size_t block_size = md_alg == MBEDTLS_MD_SHA384 ? 128 : 64;
-    const unsigned char * const ikey = ctx->hmac_ctx;
-    const unsigned char * const okey = ikey + block_size;
-    const size_t hash_size = mbedtls_md_get_size(ctx->md_info);
-
-    unsigned char aux_out[MBEDTLS_MD_MAX_SIZE];
-    mbedtls_md_context_t aux;
-    size_t offset;
-    int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
-
-    mbedtls_md_init(&aux);
-
-#define MD_CHK(func_call) \
-    do {                    \
-        ret = (func_call);  \
-        if (ret != 0)      \
-        goto cleanup;   \
-    } while (0)
-
-    MD_CHK(mbedtls_md_setup(&aux, ctx->md_info, 0));
-
-    /* After hmac_start() of hmac_reset(), ikey has already been hashed,
-     * so we can start directly with the message */
-    MD_CHK(mbedtls_md_update(ctx, add_data, add_data_len));
-    MD_CHK(mbedtls_md_update(ctx, data, min_data_len));
-
-    /* Fill the hash buffer in advance with something that is
-     * not a valid hash (barring an attack on the hash and
-     * deliberately-crafted input), in case the caller doesn't
-     * check the return status properly. */
-    memset(output, '!', hash_size);
-
-    /* For each possible length, compute the hash up to that point */
-    for (offset = min_data_len; offset <= max_data_len; offset++) {
-        MD_CHK(mbedtls_md_clone(&aux, ctx));
-        MD_CHK(mbedtls_md_finish(&aux, aux_out));
-        /* Keep only the correct inner_hash in the output buffer */
-        mbedtls_ct_memcpy_if(mbedtls_ct_uint_eq(offset, data_len_secret),
-                             output, aux_out, NULL, hash_size);
-
-        if (offset < max_data_len) {
-            MD_CHK(mbedtls_md_update(ctx, data + offset, 1));
-        }
-    }
-
-    /* The context needs to finish() before it starts() again */
-    MD_CHK(mbedtls_md_finish(ctx, aux_out));
-
-    /* Now compute HASH(okey + inner_hash) */
-    MD_CHK(mbedtls_md_starts(ctx));
-    MD_CHK(mbedtls_md_update(ctx, okey, block_size));
-    MD_CHK(mbedtls_md_update(ctx, output, hash_size));
-    MD_CHK(mbedtls_md_finish(ctx, output));
-
-    /* Done, get ready for next time */
-    MD_CHK(mbedtls_md_hmac_reset(ctx));
-
-#undef MD_CHK
-
-cleanup:
-    mbedtls_md_free(&aux);
-    return ret;
-}
-
-#endif /* MBEDTLS_USE_PSA_CRYPTO */

 #endif /* MBEDTLS_SSL_SOME_SUITES_USE_MAC */

@@ -763,8 +663,7 @@ static void ssl_extract_add_data_from_record(unsigned char *add_data,
     unsigned char *cur = add_data;
     size_t ad_len_field = rec->data_len;

-#if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID) && \
-    MBEDTLS_SSL_DTLS_CONNECTION_ID_COMPAT == 0
+#if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID)
     const unsigned char seq_num_placeholder[] = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff };
 #endif

@@ -780,8 +679,7 @@ static void ssl_extract_add_data_from_record(unsigned char *add_data,
         ((void) tls_version);
         ((void) taglen);

-#if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID) && \
-        MBEDTLS_SSL_DTLS_CONNECTION_ID_COMPAT == 0
+#if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID)
         if (rec->cid_len != 0) {
             // seq_num_placeholder
             memcpy(cur, seq_num_placeholder, sizeof(seq_num_placeholder));
@@ -811,24 +709,7 @@ static void ssl_extract_add_data_from_record(unsigned char *add_data,
     memcpy(cur, rec->ver, sizeof(rec->ver));
     cur += sizeof(rec->ver);

-#if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID) && \
-    MBEDTLS_SSL_DTLS_CONNECTION_ID_COMPAT == 1
-
-    if (rec->cid_len != 0) {
-        // CID
-        memcpy(cur, rec->cid, rec->cid_len);
-        cur += rec->cid_len;
-
-        // cid_length
-        *cur = rec->cid_len;
-        cur++;
-
-        // length of inner plaintext
-        MBEDTLS_PUT_UINT16_BE(ad_len_field, cur, 0);
-        cur += 2;
-    } else
-#elif defined(MBEDTLS_SSL_DTLS_CONNECTION_ID) && \
-    MBEDTLS_SSL_DTLS_CONNECTION_ID_COMPAT == 0
+#if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID)

     if (rec->cid_len != 0) {
         // epoch + sequence number
@@ -901,9 +782,7 @@ static void ssl_build_record_nonce(unsigned char *dst_iv,

 int mbedtls_ssl_encrypt_buf(mbedtls_ssl_context *ssl,
                             mbedtls_ssl_transform *transform,
-                            mbedtls_record *rec,
-                            int (*f_rng)(void *, unsigned char *, size_t),
-                            void *p_rng)
+                            mbedtls_record *rec)
 {
     mbedtls_ssl_mode_t ssl_mode;
     int auth_done = 0;
@@ -925,14 +804,6 @@ int mbedtls_ssl_encrypt_buf(mbedtls_ssl_context *ssl,
     ((void) ssl);
 #endif

-    /* The PRNG is used for dynamic IV generation that's used
-     * for CBC transformations in TLS 1.2. */
-#if !(defined(MBEDTLS_SSL_SOME_SUITES_USE_CBC) && \
-    defined(MBEDTLS_SSL_PROTO_TLS1_2))
-    ((void) f_rng);
-    ((void) p_rng);
-#endif
-
     MBEDTLS_SSL_DEBUG_MSG(2, ("=> encrypt buf"));

     if (transform == NULL) {
@@ -1041,17 +912,14 @@ int mbedtls_ssl_encrypt_buf(mbedtls_ssl_context *ssl,
 #if defined(MBEDTLS_SSL_PROTO_TLS1_2)
         unsigned char mac[MBEDTLS_SSL_MAC_ADD];
         int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
-#if defined(MBEDTLS_USE_PSA_CRYPTO)
         psa_mac_operation_t operation = PSA_MAC_OPERATION_INIT;
         psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED;
         size_t sign_mac_length = 0;
-#endif /* MBEDTLS_USE_PSA_CRYPTO */

         ssl_extract_add_data_from_record(add_data, &add_data_len, rec,
                                          transform->tls_version,
                                          transform->taglen);

-#if defined(MBEDTLS_USE_PSA_CRYPTO)
         status = psa_mac_sign_setup(&operation, transform->psa_mac_enc,
                                     transform->psa_mac_alg);
         if (status != PSA_SUCCESS) {
@@ -1073,25 +941,6 @@ int mbedtls_ssl_encrypt_buf(mbedtls_ssl_context *ssl,
         if (status != PSA_SUCCESS) {
             goto hmac_failed_etm_disabled;
         }
-#else
-        ret = mbedtls_md_hmac_update(&transform->md_ctx_enc, add_data,
-                                     add_data_len);
-        if (ret != 0) {
-            goto hmac_failed_etm_disabled;
-        }
-        ret = mbedtls_md_hmac_update(&transform->md_ctx_enc, data, rec->data_len);
-        if (ret != 0) {
-            goto hmac_failed_etm_disabled;
-        }
-        ret = mbedtls_md_hmac_finish(&transform->md_ctx_enc, mac);
-        if (ret != 0) {
-            goto hmac_failed_etm_disabled;
-        }
-        ret = mbedtls_md_hmac_reset(&transform->md_ctx_enc);
-        if (ret != 0) {
-            goto hmac_failed_etm_disabled;
-        }
-#endif /* MBEDTLS_USE_PSA_CRYPTO */

         memcpy(data + rec->data_len, mac, transform->maclen);
 #endif
@@ -1105,13 +954,11 @@ int mbedtls_ssl_encrypt_buf(mbedtls_ssl_context *ssl,

 hmac_failed_etm_disabled:
         mbedtls_platform_zeroize(mac, transform->maclen);
-#if defined(MBEDTLS_USE_PSA_CRYPTO)
         ret = PSA_TO_MBEDTLS_ERR(status);
         status = psa_mac_abort(&operation);
         if (ret == 0 && status != PSA_SUCCESS) {
             ret = PSA_TO_MBEDTLS_ERR(status);
         }
-#endif /* MBEDTLS_USE_PSA_CRYPTO */
         if (ret != 0) {
             MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_md_hmac_xxx", ret);
             return ret;
@@ -1140,9 +987,7 @@ hmac_failed_etm_disabled:
         size_t dynamic_iv_len;
         int dynamic_iv_is_explicit =
             ssl_transform_aead_dynamic_iv_is_explicit(transform);
-#if defined(MBEDTLS_USE_PSA_CRYPTO)
         psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED;
-#endif /* MBEDTLS_USE_PSA_CRYPTO */
         int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;

         /* Check that there's space for the authentication tag. */
@@ -1194,7 +1039,6 @@ hmac_failed_etm_disabled:
         /*
          * Encrypt and authenticate
          */
-#if defined(MBEDTLS_USE_PSA_CRYPTO)
         status = psa_aead_encrypt(transform->psa_key_enc,
                                   transform->psa_alg,
                                   iv, transform->ivlen,
@@ -1208,18 +1052,6 @@ hmac_failed_etm_disabled:
             MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_ssl_encrypt_buf", ret);
             return ret;
         }
-#else
-        if ((ret = mbedtls_cipher_auth_encrypt_ext(&transform->cipher_ctx_enc,
-                                                   iv, transform->ivlen,
-                                                   add_data, add_data_len,
-                                                   data, rec->data_len, /* src */
-                                                   data, rec->buf_len - (size_t) (data - rec->buf), /* dst */
-                                                   &rec->data_len,
-                                                   transform->taglen)) != 0) {
-            MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_cipher_auth_encrypt_ext", ret);
-            return ret;
-        }
-#endif /* MBEDTLS_USE_PSA_CRYPTO */

         MBEDTLS_SSL_DEBUG_BUF(4, "after encrypt: tag",
                               data + rec->data_len - transform->taglen,
@@ -1250,11 +1082,9 @@ hmac_failed_etm_disabled:
         int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
         size_t padlen, i;
         size_t olen;
-#if defined(MBEDTLS_USE_PSA_CRYPTO)
         psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED;
         size_t part_len;
         psa_cipher_operation_t cipher_op = PSA_CIPHER_OPERATION_INIT;
-#endif /* MBEDTLS_USE_PSA_CRYPTO */

         /* Currently we're always using minimal padding
          * (up to 255 bytes would be allowed). */
@@ -1281,10 +1111,6 @@ hmac_failed_etm_disabled:
          * Prepend per-record IV for block cipher in TLS v1.2 as per
          * Method 1 (6.2.3.2. in RFC4346 and RFC5246)
          */
-        if (f_rng == NULL) {
-            MBEDTLS_SSL_DEBUG_MSG(1, ("No PRNG provided to encrypt_record routine"));
-            return MBEDTLS_ERR_SSL_INTERNAL_ERROR;
-        }

         if (rec->data_offset < transform->ivlen) {
             MBEDTLS_SSL_DEBUG_MSG(1, ("Buffer provided for encrypted record not large enough"));
@@ -1294,7 +1120,7 @@ hmac_failed_etm_disabled:
         /*
          * Generate IV
          */
-        ret = f_rng(p_rng, transform->iv_enc, transform->ivlen);
+        ret = psa_generate_random(transform->iv_enc, transform->ivlen);
         if (ret != 0) {
             return ret;
         }
@@ -1309,7 +1135,6 @@ hmac_failed_etm_disabled:
                                   rec->data_len, transform->ivlen,
                                   padlen + 1));

-#if defined(MBEDTLS_USE_PSA_CRYPTO)
         status = psa_cipher_encrypt_setup(&cipher_op,
                                           transform->psa_key_enc, transform->psa_alg);

@@ -1351,16 +1176,6 @@ hmac_failed_etm_disabled:
         }

         olen += part_len;
-#else
-        if ((ret = mbedtls_cipher_crypt(&transform->cipher_ctx_enc,
-                                        transform->iv_enc,
-                                        transform->ivlen,
-                                        data, rec->data_len,
-                                        data, &olen)) != 0) {
-            MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_cipher_crypt", ret);
-            return ret;
-        }
-#endif /* MBEDTLS_USE_PSA_CRYPTO */

         if (rec->data_len != olen) {
             MBEDTLS_SSL_DEBUG_MSG(1, ("should never happen"));
@@ -1374,10 +1189,8 @@ hmac_failed_etm_disabled:
 #if defined(MBEDTLS_SSL_ENCRYPT_THEN_MAC)
         if (auth_done == 0) {
             unsigned char mac[MBEDTLS_SSL_MAC_ADD];
-#if defined(MBEDTLS_USE_PSA_CRYPTO)
             psa_mac_operation_t operation = PSA_MAC_OPERATION_INIT;
             size_t sign_mac_length = 0;
-#endif /* MBEDTLS_USE_PSA_CRYPTO */

             /* MAC(MAC_write_key, add_data, IV, ENC(content + padding + padding_length))
              */
@@ -1394,7 +1207,6 @@ hmac_failed_etm_disabled:
             MBEDTLS_SSL_DEBUG_MSG(3, ("using encrypt then mac"));
             MBEDTLS_SSL_DEBUG_BUF(4, "MAC'd meta-data", add_data,
                                   add_data_len);
-#if defined(MBEDTLS_USE_PSA_CRYPTO)
             status = psa_mac_sign_setup(&operation, transform->psa_mac_enc,
                                         transform->psa_mac_alg);
             if (status != PSA_SUCCESS) {
@@ -1416,27 +1228,6 @@ hmac_failed_etm_disabled:
             if (status != PSA_SUCCESS) {
                 goto hmac_failed_etm_enabled;
             }
-#else
-
-            ret = mbedtls_md_hmac_update(&transform->md_ctx_enc, add_data,
-                                         add_data_len);
-            if (ret != 0) {
-                goto hmac_failed_etm_enabled;
-            }
-            ret = mbedtls_md_hmac_update(&transform->md_ctx_enc,
-                                         data, rec->data_len);
-            if (ret != 0) {
-                goto hmac_failed_etm_enabled;
-            }
-            ret = mbedtls_md_hmac_finish(&transform->md_ctx_enc, mac);
-            if (ret != 0) {
-                goto hmac_failed_etm_enabled;
-            }
-            ret = mbedtls_md_hmac_reset(&transform->md_ctx_enc);
-            if (ret != 0) {
-                goto hmac_failed_etm_enabled;
-            }
-#endif /* MBEDTLS_USE_PSA_CRYPTO */

             memcpy(data + rec->data_len, mac, transform->maclen);

@@ -1446,13 +1237,11 @@ hmac_failed_etm_disabled:

 hmac_failed_etm_enabled:
             mbedtls_platform_zeroize(mac, transform->maclen);
-#if defined(MBEDTLS_USE_PSA_CRYPTO)
             ret = PSA_TO_MBEDTLS_ERR(status);
             status = psa_mac_abort(&operation);
             if (ret == 0 && status != PSA_SUCCESS) {
                 ret = PSA_TO_MBEDTLS_ERR(status);
             }
-#endif /* MBEDTLS_USE_PSA_CRYPTO */
             if (ret != 0) {
                 MBEDTLS_SSL_DEBUG_RET(1, "HMAC calculation failed", ret);
                 return ret;
@@ -1549,9 +1338,7 @@ int mbedtls_ssl_decrypt_buf(mbedtls_ssl_context const *ssl,
         unsigned char iv[12];
         unsigned char *dynamic_iv;
         size_t dynamic_iv_len;
-#if defined(MBEDTLS_USE_PSA_CRYPTO)
         psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED;
-#endif /* MBEDTLS_USE_PSA_CRYPTO */

         /*
          * Extract dynamic part of nonce for AEAD decryption.
@@ -1621,7 +1408,6 @@ int mbedtls_ssl_decrypt_buf(mbedtls_ssl_context const *ssl,
         /*
          * Decrypt and authenticate
          */
-#if defined(MBEDTLS_USE_PSA_CRYPTO)
         status = psa_aead_decrypt(transform->psa_key_dec,
                                   transform->psa_alg,
                                   iv, transform->ivlen,
@@ -1635,23 +1421,6 @@ int mbedtls_ssl_decrypt_buf(mbedtls_ssl_context const *ssl,
             MBEDTLS_SSL_DEBUG_RET(1, "psa_aead_decrypt", ret);
             return ret;
         }
-#else
-        if ((ret = mbedtls_cipher_auth_decrypt_ext
-                       (&transform->cipher_ctx_dec,
-                       iv, transform->ivlen,
-                       add_data, add_data_len,
-                       data, rec->data_len + transform->taglen, /* src */
-                       data, rec->buf_len - (size_t) (data - rec->buf), &olen, /* dst */
-                       transform->taglen)) != 0) {
-            MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_cipher_auth_decrypt_ext", ret);
-
-            if (ret == MBEDTLS_ERR_CIPHER_AUTH_FAILED) {
-                return MBEDTLS_ERR_SSL_INVALID_MAC;
-            }
-
-            return ret;
-        }
-#endif /* MBEDTLS_USE_PSA_CRYPTO */

         auth_done++;

@@ -1666,11 +1435,9 @@ int mbedtls_ssl_decrypt_buf(mbedtls_ssl_context const *ssl,
     if (ssl_mode == MBEDTLS_SSL_MODE_CBC ||
         ssl_mode == MBEDTLS_SSL_MODE_CBC_ETM) {
         size_t minlen = 0;
-#if defined(MBEDTLS_USE_PSA_CRYPTO)
         psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED;
         size_t part_len;
         psa_cipher_operation_t cipher_op = PSA_CIPHER_OPERATION_INIT;
-#endif /* MBEDTLS_USE_PSA_CRYPTO */

         /*
          * Check immediate ciphertext sanity
@@ -1718,11 +1485,7 @@ int mbedtls_ssl_decrypt_buf(mbedtls_ssl_context const *ssl,
          */
 #if defined(MBEDTLS_SSL_ENCRYPT_THEN_MAC)
         if (ssl_mode == MBEDTLS_SSL_MODE_CBC_ETM) {
-#if defined(MBEDTLS_USE_PSA_CRYPTO)
             psa_mac_operation_t operation = PSA_MAC_OPERATION_INIT;
-#else
-            unsigned char mac_expect[MBEDTLS_SSL_MAC_ADD];
-#endif /* MBEDTLS_USE_PSA_CRYPTO */

             MBEDTLS_SSL_DEBUG_MSG(3, ("using encrypt then mac"));

@@ -1744,7 +1507,6 @@ int mbedtls_ssl_decrypt_buf(mbedtls_ssl_context const *ssl,
             /* Calculate expected MAC. */
             MBEDTLS_SSL_DEBUG_BUF(4, "MAC'd meta-data", add_data,
                                   add_data_len);
-#if defined(MBEDTLS_USE_PSA_CRYPTO)
             status = psa_mac_verify_setup(&operation, transform->psa_mac_dec,
                                           transform->psa_mac_alg);
             if (status != PSA_SUCCESS) {
@@ -1767,51 +1529,14 @@ int mbedtls_ssl_decrypt_buf(mbedtls_ssl_context const *ssl,
             if (status != PSA_SUCCESS) {
                 goto hmac_failed_etm_enabled;
             }
-#else
-            ret = mbedtls_md_hmac_update(&transform->md_ctx_dec, add_data,
-                                         add_data_len);
-            if (ret != 0) {
-                goto hmac_failed_etm_enabled;
-            }
-            ret = mbedtls_md_hmac_update(&transform->md_ctx_dec,
-                                         data, rec->data_len);
-            if (ret != 0) {
-                goto hmac_failed_etm_enabled;
-            }
-            ret = mbedtls_md_hmac_finish(&transform->md_ctx_dec, mac_expect);
-            if (ret != 0) {
-                goto hmac_failed_etm_enabled;
-            }
-            ret = mbedtls_md_hmac_reset(&transform->md_ctx_dec);
-            if (ret != 0) {
-                goto hmac_failed_etm_enabled;
-            }
-
-            MBEDTLS_SSL_DEBUG_BUF(4, "message  mac", data + rec->data_len,
-                                  transform->maclen);
-            MBEDTLS_SSL_DEBUG_BUF(4, "expected mac", mac_expect,
-                                  transform->maclen);
-
-            /* Compare expected MAC with MAC at the end of the record. */
-            if (mbedtls_ct_memcmp(data + rec->data_len, mac_expect,
-                                  transform->maclen) != 0) {
-                MBEDTLS_SSL_DEBUG_MSG(1, ("message mac does not match"));
-                ret = MBEDTLS_ERR_SSL_INVALID_MAC;
-                goto hmac_failed_etm_enabled;
-            }
-#endif /* MBEDTLS_USE_PSA_CRYPTO */
             auth_done++;

 hmac_failed_etm_enabled:
-#if defined(MBEDTLS_USE_PSA_CRYPTO)
             ret = PSA_TO_MBEDTLS_ERR(status);
             status = psa_mac_abort(&operation);
             if (ret == 0 && status != PSA_SUCCESS) {
                 ret = PSA_TO_MBEDTLS_ERR(status);
             }
-#else
-            mbedtls_platform_zeroize(mac_expect, transform->maclen);
-#endif /* MBEDTLS_USE_PSA_CRYPTO */
             if (ret != 0) {
                 if (ret != MBEDTLS_ERR_SSL_INVALID_MAC) {
                     MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_hmac_xxx", ret);
@@ -1849,7 +1574,6 @@ hmac_failed_etm_enabled:

         /* We still have data_len % ivlen == 0 and data_len >= ivlen here. */

-#if defined(MBEDTLS_USE_PSA_CRYPTO)
         status = psa_cipher_decrypt_setup(&cipher_op,
                                           transform->psa_key_dec, transform->psa_alg);

@@ -1888,15 +1612,6 @@ hmac_failed_etm_enabled:
         }

         olen += part_len;
-#else
-
-        if ((ret = mbedtls_cipher_crypt(&transform->cipher_ctx_dec,
-                                        transform->iv_dec, transform->ivlen,
-                                        data, rec->data_len, data, &olen)) != 0) {
-            MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_cipher_crypt", ret);
-            return ret;
-        }
-#endif /* MBEDTLS_USE_PSA_CRYPTO */

         /* Double-check that length hasn't changed during decryption. */
         if (rec->data_len != olen) {
@@ -2038,18 +1753,11 @@ hmac_failed_etm_enabled:
         const size_t max_len = rec->data_len + padlen;
         const size_t min_len = (max_len > 256) ? max_len - 256 : 0;

-#if defined(MBEDTLS_USE_PSA_CRYPTO)
         ret = mbedtls_ct_hmac(transform->psa_mac_dec,
                               transform->psa_mac_alg,
                               add_data, add_data_len,
                               data, rec->data_len, min_len, max_len,
                               mac_expect);
-#else
-        ret = mbedtls_ct_hmac(&transform->md_ctx_dec,
-                              add_data, add_data_len,
-                              data, rec->data_len, min_len, max_len,
-                              mac_expect);
-#endif /* MBEDTLS_USE_PSA_CRYPTO */
         if (ret != 0) {
             MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_ct_hmac", ret);
             goto hmac_failed_etm_disabled;
@@ -2984,8 +2692,7 @@ int mbedtls_ssl_write_record(mbedtls_ssl_context *ssl, int force_flush)
             rec.cid_len = 0;
 #endif /* MBEDTLS_SSL_DTLS_CONNECTION_ID */

-            if ((ret = mbedtls_ssl_encrypt_buf(ssl, ssl->transform_out, &rec,
-                                               ssl->conf->f_rng, ssl->conf->p_rng)) != 0) {
+            if ((ret = mbedtls_ssl_encrypt_buf(ssl, ssl->transform_out, &rec)) != 0) {
                 MBEDTLS_SSL_DEBUG_RET(1, "ssl_encrypt_buf", ret);
                 return ret;
             }
@@ -3221,7 +2928,7 @@ static uint32_t ssl_get_hs_total_len(mbedtls_ssl_context const *ssl)

 int mbedtls_ssl_prepare_handshake_record(mbedtls_ssl_context *ssl)
 {
-    if (ssl->badmac_seen_or_in_hsfraglen == 0) {
+    if (ssl->in_hsfraglen == 0) {
         /* The handshake message must at least include the header.
          * We may not have the full message yet in case of fragmentation.
          * To simplify the code, we insist on having the header (and in
@@ -3313,9 +3020,9 @@ int mbedtls_ssl_prepare_handshake_record(mbedtls_ssl_context *ssl)
             ssl->in_buf + MBEDTLS_SSL_SEQUENCE_NUMBER_LEN;
         unsigned char *const payload_start =
             reassembled_record_start + mbedtls_ssl_in_hdr_len(ssl);
-        unsigned char *payload_end = payload_start + ssl->badmac_seen_or_in_hsfraglen;
+        unsigned char *payload_end = payload_start + ssl->in_hsfraglen;
         /* How many more bytes we want to have a complete handshake message. */
-        const size_t hs_remain = ssl->in_hslen - ssl->badmac_seen_or_in_hsfraglen;
+        const size_t hs_remain = ssl->in_hslen - ssl->in_hsfraglen;
         /* How many bytes of the current record are part of the first
          * handshake message. There may be more handshake messages (possibly
          * incomplete) in the same record; if so, we leave them after the
@@ -3327,16 +3034,17 @@ int mbedtls_ssl_prepare_handshake_record(mbedtls_ssl_context *ssl)

         MBEDTLS_SSL_DEBUG_MSG(3,
                               ("%s handshake fragment: %" MBEDTLS_PRINTF_SIZET
-                               ", %u..%u of %" MBEDTLS_PRINTF_SIZET,
-                               (ssl->badmac_seen_or_in_hsfraglen != 0 ?
+                               ", %" MBEDTLS_PRINTF_SIZET
+                               "..%" MBEDTLS_PRINTF_SIZET
+                               " of %" MBEDTLS_PRINTF_SIZET,
+                               (ssl->in_hsfraglen != 0 ?
                                 "subsequent" :
                                 hs_this_fragment_len == ssl->in_hslen ?
                                 "sole" :
                                 "initial"),
                                ssl->in_msglen,
-                               ssl->badmac_seen_or_in_hsfraglen,
-                               ssl->badmac_seen_or_in_hsfraglen +
-                               (unsigned) hs_this_fragment_len,
+                               ssl->in_hsfraglen,
+                               ssl->in_hsfraglen + hs_this_fragment_len,
                                ssl->in_hslen));

         /* Move the received handshake fragment to have the whole message
@@ -3366,20 +3074,21 @@ int mbedtls_ssl_prepare_handshake_record(mbedtls_ssl_context *ssl)
         }
         memmove(payload_end, ssl->in_msg, ssl->in_msglen);

-        ssl->badmac_seen_or_in_hsfraglen += (unsigned) ssl->in_msglen;
+        ssl->in_hsfraglen += ssl->in_msglen;
         payload_end += ssl->in_msglen;

-        if (ssl->badmac_seen_or_in_hsfraglen < ssl->in_hslen) {
-            MBEDTLS_SSL_DEBUG_MSG(3, ("Prepare: waiting for more handshake fragments "
-                                      "%u/%" MBEDTLS_PRINTF_SIZET,
-                                      ssl->badmac_seen_or_in_hsfraglen, ssl->in_hslen));
+        if (ssl->in_hsfraglen < ssl->in_hslen) {
+            MBEDTLS_SSL_DEBUG_MSG(3, ("Prepare: waiting for more handshake fragments %"
+                                      MBEDTLS_PRINTF_SIZET "/%"
+                                      MBEDTLS_PRINTF_SIZET,
+                                      ssl->in_hsfraglen, ssl->in_hslen));
             ssl->in_hdr = payload_end;
             ssl->in_msglen = 0;
             mbedtls_ssl_update_in_pointers(ssl);
             return MBEDTLS_ERR_SSL_CONTINUE_PROCESSING;
         } else {
-            ssl->in_msglen = ssl->badmac_seen_or_in_hsfraglen;
-            ssl->badmac_seen_or_in_hsfraglen = 0;
+            ssl->in_msglen = ssl->in_hsfraglen;
+            ssl->in_hsfraglen = 0;
             ssl->in_hdr = reassembled_record_start;
             mbedtls_ssl_update_in_pointers(ssl);

@@ -4461,7 +4170,7 @@ static int ssl_load_buffered_message(mbedtls_ssl_context *ssl)
         ret = 0;
         goto exit;
     } else {
-        MBEDTLS_SSL_DEBUG_MSG(2, ("Next handshake message %u not or only partially bufffered",
+        MBEDTLS_SSL_DEBUG_MSG(2, ("Next handshake message %u not or only partially buffered",
                                   hs->in_msg_seq));
     }

@@ -4750,11 +4459,11 @@ static int ssl_consume_current_message(mbedtls_ssl_context *ssl)
             return MBEDTLS_ERR_SSL_INTERNAL_ERROR;
         }

-        if (ssl->badmac_seen_or_in_hsfraglen != 0) {
+        if (ssl->in_hsfraglen != 0) {
             /* Not all handshake fragments have arrived, do not consume. */
-            MBEDTLS_SSL_DEBUG_MSG(3, ("Consume: waiting for more handshake fragments "
-                                      "%u/%" MBEDTLS_PRINTF_SIZET,
-                                      ssl->badmac_seen_or_in_hsfraglen, ssl->in_hslen));
+            MBEDTLS_SSL_DEBUG_MSG(3, ("Consume: waiting for more handshake fragments %"
+                                      MBEDTLS_PRINTF_SIZET "/%" MBEDTLS_PRINTF_SIZET,
+                                      ssl->in_hsfraglen, ssl->in_hslen));
             return 0;
         }

@@ -5086,12 +4795,10 @@ static int ssl_get_next_record(mbedtls_ssl_context *ssl)
                     return ret;
                 }

-                if (ssl->conf->badmac_limit != 0) {
-                    ++ssl->badmac_seen_or_in_hsfraglen;
-                    if (ssl->badmac_seen_or_in_hsfraglen >= ssl->conf->badmac_limit) {
-                        MBEDTLS_SSL_DEBUG_MSG(1, ("too many records with bad MAC"));
-                        return MBEDTLS_ERR_SSL_INVALID_MAC;
-                    }
+                if (ssl->conf->badmac_limit != 0 &&
+                    ++ssl->badmac_seen >= ssl->conf->badmac_limit) {
+                    MBEDTLS_SSL_DEBUG_MSG(1, ("too many records with bad MAC"));
+                    return MBEDTLS_ERR_SSL_INVALID_MAC;
                 }

                 /* As above, invalid records cause
@@ -5154,7 +4861,7 @@ int mbedtls_ssl_handle_message_type(mbedtls_ssl_context *ssl)
      * interleaving other message types between handshake fragments. For TLS
      * 1.2, the spec does not forbid it but we do. */
     if (ssl->conf->transport == MBEDTLS_SSL_TRANSPORT_STREAM &&
-        ssl->badmac_seen_or_in_hsfraglen != 0 &&
+        ssl->in_hsfraglen != 0 &&
         ssl->in_msgtype != MBEDTLS_SSL_MSG_HANDSHAKE) {
         MBEDTLS_SSL_DEBUG_MSG(1, ("non-handshake message in the middle"
                                   " of a fragmented handshake message"));
@@ -5585,10 +5292,8 @@ int mbedtls_ssl_get_record_expansion(const mbedtls_ssl_context *ssl)
     size_t transform_expansion = 0;
     const mbedtls_ssl_transform *transform = ssl->transform_out;
     unsigned block_size;
-#if defined(MBEDTLS_USE_PSA_CRYPTO)
     psa_key_attributes_t attr = PSA_KEY_ATTRIBUTES_INIT;
     psa_key_type_t key_type;
-#endif /* MBEDTLS_USE_PSA_CRYPTO */

     size_t out_hdr_len = mbedtls_ssl_out_hdr_len(ssl);

@@ -5597,7 +5302,6 @@ int mbedtls_ssl_get_record_expansion(const mbedtls_ssl_context *ssl)
     }


-#if defined(MBEDTLS_USE_PSA_CRYPTO)
     if (transform->psa_alg == PSA_ALG_GCM ||
         transform->psa_alg == PSA_ALG_CCM ||
         transform->psa_alg == PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM, 8) ||
@@ -5628,41 +5332,6 @@ int mbedtls_ssl_get_record_expansion(const mbedtls_ssl_context *ssl)
                               ("Unsupported psa_alg spotted in mbedtls_ssl_get_record_expansion()"));
         return MBEDTLS_ERR_SSL_INTERNAL_ERROR;
     }
-#else
-    switch (mbedtls_cipher_get_cipher_mode(&transform->cipher_ctx_enc)) {
-        case MBEDTLS_MODE_GCM:
-        case MBEDTLS_MODE_CCM:
-        case MBEDTLS_MODE_CHACHAPOLY:
-        case MBEDTLS_MODE_STREAM:
-            transform_expansion = transform->minlen;
-            break;
-
-        case MBEDTLS_MODE_CBC:
-
-            block_size = mbedtls_cipher_get_block_size(
-                &transform->cipher_ctx_enc);
-
-            /* Expansion due to the addition of the MAC. */
-            transform_expansion += transform->maclen;
-
-            /* Expansion due to the addition of CBC padding;
-             * Theoretically up to 256 bytes, but we never use
-             * more than the block size of the underlying cipher. */
-            transform_expansion += block_size;
-
-            /* For TLS 1.2 or higher, an explicit IV is added
-             * after the record header. */
-#if defined(MBEDTLS_SSL_PROTO_TLS1_2)
-            transform_expansion += block_size;
-#endif /* MBEDTLS_SSL_PROTO_TLS1_2 */
-
-            break;
-
-        default:
-            MBEDTLS_SSL_DEBUG_MSG(1, ("should never happen"));
-            return MBEDTLS_ERR_SSL_INTERNAL_ERROR;
-    }
-#endif /* MBEDTLS_USE_PSA_CRYPTO */

 #if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID)
     if (transform->out_cid_len != 0) {
@@ -5733,19 +5402,13 @@ static int ssl_tls13_handle_hs_message_post_handshake(mbedtls_ssl_context *ssl)
         if (ssl_tls13_is_new_session_ticket(ssl)) {
 #if defined(MBEDTLS_SSL_SESSION_TICKETS)
             MBEDTLS_SSL_DEBUG_MSG(3, ("NewSessionTicket received"));
-            if (mbedtls_ssl_conf_is_signal_new_session_tickets_enabled(ssl->conf) ==
-                MBEDTLS_SSL_TLS1_3_SIGNAL_NEW_SESSION_TICKETS_ENABLED) {
-                ssl->keep_current_message = 1;
+            ssl->keep_current_message = 1;

-                mbedtls_ssl_handshake_set_state(ssl,
-                                                MBEDTLS_SSL_TLS1_3_NEW_SESSION_TICKET);
-                return MBEDTLS_ERR_SSL_WANT_READ;
-            } else {
-                MBEDTLS_SSL_DEBUG_MSG(3, ("Ignoring NewSessionTicket, handling disabled."));
-                return 0;
-            }
+            mbedtls_ssl_handshake_set_state(ssl,
+                                            MBEDTLS_SSL_TLS1_3_NEW_SESSION_TICKET);
+            return MBEDTLS_ERR_SSL_WANT_READ;
 #else
-            MBEDTLS_SSL_DEBUG_MSG(3, ("Ignoring NewSessionTicket, not supported."));
+            MBEDTLS_SSL_DEBUG_MSG(3, ("Ignore NewSessionTicket, not supported."));
             return 0;
 #endif
         }
@@ -6275,7 +5938,7 @@ int mbedtls_ssl_write_early_data(mbedtls_ssl_context *ssl,
     } else {
         /*
          * If we are past the point where we can send early data or we have
-         * already reached the maximum early data size, return immediatly.
+         * already reached the maximum early data size, return immediately.
          * Otherwise, progress the handshake as much as possible to not delay
          * it too much. If we reach a point where we can still send early data,
          * then we will send some.
@@ -6353,22 +6016,12 @@ void mbedtls_ssl_transform_free(mbedtls_ssl_transform *transform)
         return;
     }

-#if defined(MBEDTLS_USE_PSA_CRYPTO)
     psa_destroy_key(transform->psa_key_enc);
     psa_destroy_key(transform->psa_key_dec);
-#else
-    mbedtls_cipher_free(&transform->cipher_ctx_enc);
-    mbedtls_cipher_free(&transform->cipher_ctx_dec);
-#endif /* MBEDTLS_USE_PSA_CRYPTO */

 #if defined(MBEDTLS_SSL_SOME_SUITES_USE_MAC)
-#if defined(MBEDTLS_USE_PSA_CRYPTO)
     psa_destroy_key(transform->psa_mac_enc);
     psa_destroy_key(transform->psa_mac_dec);
-#else
-    mbedtls_md_free(&transform->md_ctx_enc);
-    mbedtls_md_free(&transform->md_ctx_dec);
-#endif /* MBEDTLS_USE_PSA_CRYPTO */
 #endif

     mbedtls_platform_zeroize(transform, sizeof(mbedtls_ssl_transform));
diff --git a/deps/LIEF/third-party/mbedtls/library/ssl_ticket.c b/deps/LIEF/third-party/mbedtls/library/ssl_ticket.c
index bfb656cf62c..7b0391924a3 100644
--- a/deps/LIEF/third-party/mbedtls/library/ssl_ticket.c
+++ b/deps/LIEF/third-party/mbedtls/library/ssl_ticket.c
@@ -5,20 +5,18 @@
  *  SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
  */

-#include "common.h"
+#include "ssl_misc.h"

 #if defined(MBEDTLS_SSL_TICKET_C)

 #include "mbedtls/platform.h"

-#include "ssl_misc.h"
 #include "mbedtls/ssl_ticket.h"
 #include "mbedtls/error.h"
 #include "mbedtls/platform_util.h"

 #include <string.h>

-#if defined(MBEDTLS_USE_PSA_CRYPTO)
 /* Define a local translating function to save code size by not using too many
  * arguments in each translating place. */
 static int local_err_translation(psa_status_t status)
@@ -28,7 +26,6 @@ static int local_err_translation(psa_status_t status)
                                  psa_generic_status_to_mbedtls);
 }
 #define PSA_TO_MBEDTLS_ERR(status) local_err_translation(status)
-#endif

 /*
  * Initialize context
@@ -68,9 +65,7 @@ static int ssl_ticket_gen_key(mbedtls_ssl_ticket_context *ctx,
     unsigned char buf[MAX_KEY_BYTES] = { 0 };
     mbedtls_ssl_ticket_key *key = ctx->keys + index;

-#if defined(MBEDTLS_USE_PSA_CRYPTO)
     psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT;
-#endif

 #if defined(MBEDTLS_HAVE_TIME)
     key->generation_time = mbedtls_time(NULL);
@@ -80,15 +75,14 @@ static int ssl_ticket_gen_key(mbedtls_ssl_ticket_context *ctx,
      */
     key->lifetime = ctx->ticket_lifetime;

-    if ((ret = ctx->f_rng(ctx->p_rng, key->name, sizeof(key->name))) != 0) {
+    if ((ret = psa_generate_random(key->name, sizeof(key->name))) != 0) {
         return ret;
     }

-    if ((ret = ctx->f_rng(ctx->p_rng, buf, sizeof(buf))) != 0) {
+    if ((ret = psa_generate_random(buf, sizeof(buf))) != 0) {
         return ret;
     }

-#if defined(MBEDTLS_USE_PSA_CRYPTO)
     psa_set_key_usage_flags(&attributes,
                             PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_DECRYPT);
     psa_set_key_algorithm(&attributes, key->alg);
@@ -99,12 +93,6 @@ static int ssl_ticket_gen_key(mbedtls_ssl_ticket_context *ctx,
         psa_import_key(&attributes, buf,
                        PSA_BITS_TO_BYTES(key->key_bits),
                        &key->key));
-#else
-    /* With GCM and CCM, same context can encrypt & decrypt */
-    ret = mbedtls_cipher_setkey(&key->ctx, buf,
-                                mbedtls_cipher_get_key_bitlen(&key->ctx),
-                                MBEDTLS_ENCRYPT);
-#endif /* MBEDTLS_USE_PSA_CRYPTO */

     mbedtls_platform_zeroize(buf, sizeof(buf));

@@ -125,9 +113,7 @@ static int ssl_ticket_update_keys(mbedtls_ssl_ticket_context *ctx)
         mbedtls_time_t current_time = mbedtls_time(NULL);
         mbedtls_time_t key_time = key->generation_time;

-#if defined(MBEDTLS_USE_PSA_CRYPTO)
         psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED;
-#endif

         if (current_time >= key_time &&
             (uint64_t) (current_time - key_time) < key->lifetime) {
@@ -136,11 +122,9 @@ static int ssl_ticket_update_keys(mbedtls_ssl_ticket_context *ctx)

         ctx->active = 1 - ctx->active;

-#if defined(MBEDTLS_USE_PSA_CRYPTO)
         if ((status = psa_destroy_key(ctx->keys[ctx->active].key)) != PSA_SUCCESS) {
             return PSA_TO_MBEDTLS_ERR(status);
         }
-#endif /* MBEDTLS_USE_PSA_CRYPTO */

         return ssl_ticket_gen_key(ctx, ctx->active);
     } else
@@ -160,19 +144,14 @@ int mbedtls_ssl_ticket_rotate(mbedtls_ssl_ticket_context *ctx,
     mbedtls_ssl_ticket_key * const key = ctx->keys + idx;
     int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;

-#if defined(MBEDTLS_USE_PSA_CRYPTO)
     psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED;
     psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT;
     const size_t bitlen = key->key_bits;
-#else
-    const int bitlen = mbedtls_cipher_get_key_bitlen(&key->ctx);
-#endif

     if (nlength < TICKET_KEY_NAME_BYTES || klength * 8 < (size_t) bitlen) {
         return MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA;
     }

-#if defined(MBEDTLS_USE_PSA_CRYPTO)
     if ((status = psa_destroy_key(key->key)) != PSA_SUCCESS) {
         ret = PSA_TO_MBEDTLS_ERR(status);
         return ret;
@@ -190,12 +169,6 @@ int mbedtls_ssl_ticket_rotate(mbedtls_ssl_ticket_context *ctx,
         ret = PSA_TO_MBEDTLS_ERR(status);
         return ret;
     }
-#else
-    ret = mbedtls_cipher_setkey(&key->ctx, k, bitlen, MBEDTLS_ENCRYPT);
-    if (ret != 0) {
-        return ret;
-    }
-#endif /* MBEDTLS_USE_PSA_CRYPTO */

     ctx->active = idx;
     ctx->ticket_lifetime = lifetime;
@@ -212,51 +185,21 @@ int mbedtls_ssl_ticket_rotate(mbedtls_ssl_ticket_context *ctx,
  * Setup context for actual use
  */
 int mbedtls_ssl_ticket_setup(mbedtls_ssl_ticket_context *ctx,
-                             int (*f_rng)(void *, unsigned char *, size_t), void *p_rng,
-                             mbedtls_cipher_type_t cipher,
+                             psa_algorithm_t alg, psa_key_type_t key_type, psa_key_bits_t key_bits,
                              uint32_t lifetime)
 {
     int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
-    size_t key_bits;
-
-#if defined(MBEDTLS_USE_PSA_CRYPTO)
-    psa_algorithm_t alg;
-    psa_key_type_t key_type;
-#else
-    const mbedtls_cipher_info_t *cipher_info;
-#endif /* MBEDTLS_USE_PSA_CRYPTO */
-
-#if defined(MBEDTLS_USE_PSA_CRYPTO)
-    if (mbedtls_ssl_cipher_to_psa(cipher, TICKET_AUTH_TAG_BYTES,
-                                  &alg, &key_type, &key_bits) != PSA_SUCCESS) {
-        return MBEDTLS_ERR_SSL_BAD_INPUT_DATA;
-    }

     if (PSA_ALG_IS_AEAD(alg) == 0) {
         return MBEDTLS_ERR_SSL_BAD_INPUT_DATA;
     }
-#else
-    cipher_info = mbedtls_cipher_info_from_type(cipher);
-
-    if (mbedtls_cipher_info_get_mode(cipher_info) != MBEDTLS_MODE_GCM &&
-        mbedtls_cipher_info_get_mode(cipher_info) != MBEDTLS_MODE_CCM &&
-        mbedtls_cipher_info_get_mode(cipher_info) != MBEDTLS_MODE_CHACHAPOLY) {
-        return MBEDTLS_ERR_SSL_BAD_INPUT_DATA;
-    }
-
-    key_bits = mbedtls_cipher_info_get_key_bitlen(cipher_info);
-#endif /* MBEDTLS_USE_PSA_CRYPTO */

     if (key_bits > 8 * MAX_KEY_BYTES) {
         return MBEDTLS_ERR_SSL_BAD_INPUT_DATA;
     }

-    ctx->f_rng = f_rng;
-    ctx->p_rng = p_rng;
-
     ctx->ticket_lifetime = lifetime;

-#if defined(MBEDTLS_USE_PSA_CRYPTO)
     ctx->keys[0].alg = alg;
     ctx->keys[0].key_type = key_type;
     ctx->keys[0].key_bits = key_bits;
@@ -264,15 +207,6 @@ int mbedtls_ssl_ticket_setup(mbedtls_ssl_ticket_context *ctx,
     ctx->keys[1].alg = alg;
     ctx->keys[1].key_type = key_type;
     ctx->keys[1].key_bits = key_bits;
-#else
-    if ((ret = mbedtls_cipher_setup(&ctx->keys[0].ctx, cipher_info)) != 0) {
-        return ret;
-    }
-
-    if ((ret = mbedtls_cipher_setup(&ctx->keys[1].ctx, cipher_info)) != 0) {
-        return ret;
-    }
-#endif /* MBEDTLS_USE_PSA_CRYPTO */

     if ((ret = ssl_ticket_gen_key(ctx, 0)) != 0 ||
         (ret = ssl_ticket_gen_key(ctx, 1)) != 0) {
@@ -312,13 +246,11 @@ int mbedtls_ssl_ticket_write(void *p_ticket,
     unsigned char *state = state_len_bytes + TICKET_CRYPT_LEN_BYTES;
     size_t clear_len, ciph_len;

-#if defined(MBEDTLS_USE_PSA_CRYPTO)
     psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED;
-#endif

     *tlen = 0;

-    if (ctx == NULL || ctx->f_rng == NULL) {
+    if (ctx == NULL) {
         return MBEDTLS_ERR_SSL_BAD_INPUT_DATA;
     }

@@ -342,7 +274,7 @@ int mbedtls_ssl_ticket_write(void *p_ticket,

     memcpy(key_name, key->name, TICKET_KEY_NAME_BYTES);

-    if ((ret = ctx->f_rng(ctx->p_rng, iv, TICKET_IV_BYTES)) != 0) {
+    if ((ret = psa_generate_random(iv, TICKET_IV_BYTES)) != 0) {
         goto cleanup;
     }

@@ -356,7 +288,6 @@ int mbedtls_ssl_ticket_write(void *p_ticket,
     MBEDTLS_PUT_UINT16_BE(clear_len, state_len_bytes, 0);

     /* Encrypt and authenticate */
-#if defined(MBEDTLS_USE_PSA_CRYPTO)
     if ((status = psa_aead_encrypt(key->key, key->alg, iv, TICKET_IV_BYTES,
                                    key_name, TICKET_ADD_DATA_LEN,
                                    state, clear_len,
@@ -365,17 +296,6 @@ int mbedtls_ssl_ticket_write(void *p_ticket,
         ret = PSA_TO_MBEDTLS_ERR(status);
         goto cleanup;
     }
-#else
-    if ((ret = mbedtls_cipher_auth_encrypt_ext(&key->ctx,
-                                               iv, TICKET_IV_BYTES,
-                                               /* Additional data: key name, IV and length */
-                                               key_name, TICKET_ADD_DATA_LEN,
-                                               state, clear_len,
-                                               state, (size_t) (end - state), &ciph_len,
-                                               TICKET_AUTH_TAG_BYTES)) != 0) {
-        goto cleanup;
-    }
-#endif /* MBEDTLS_USE_PSA_CRYPTO */

     if (ciph_len != clear_len + TICKET_AUTH_TAG_BYTES) {
         ret = MBEDTLS_ERR_SSL_INTERNAL_ERROR;
@@ -429,11 +349,9 @@ int mbedtls_ssl_ticket_parse(void *p_ticket,
     unsigned char *ticket = enc_len_p + TICKET_CRYPT_LEN_BYTES;
     size_t enc_len, clear_len;

-#if defined(MBEDTLS_USE_PSA_CRYPTO)
     psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED;
-#endif

-    if (ctx == NULL || ctx->f_rng == NULL) {
+    if (ctx == NULL) {
         return MBEDTLS_ERR_SSL_BAD_INPUT_DATA;
     }

@@ -467,7 +385,6 @@ int mbedtls_ssl_ticket_parse(void *p_ticket,
     }

     /* Decrypt and authenticate */
-#if defined(MBEDTLS_USE_PSA_CRYPTO)
     if ((status = psa_aead_decrypt(key->key, key->alg, iv, TICKET_IV_BYTES,
                                    key_name, TICKET_ADD_DATA_LEN,
                                    ticket, enc_len + TICKET_AUTH_TAG_BYTES,
@@ -475,21 +392,6 @@ int mbedtls_ssl_ticket_parse(void *p_ticket,
         ret = PSA_TO_MBEDTLS_ERR(status);
         goto cleanup;
     }
-#else
-    if ((ret = mbedtls_cipher_auth_decrypt_ext(&key->ctx,
-                                               iv, TICKET_IV_BYTES,
-                                               /* Additional data: key name, IV and length */
-                                               key_name, TICKET_ADD_DATA_LEN,
-                                               ticket, enc_len + TICKET_AUTH_TAG_BYTES,
-                                               ticket, enc_len, &clear_len,
-                                               TICKET_AUTH_TAG_BYTES)) != 0) {
-        if (ret == MBEDTLS_ERR_CIPHER_AUTH_FAILED) {
-            ret = MBEDTLS_ERR_SSL_INVALID_MAC;
-        }
-
-        goto cleanup;
-    }
-#endif /* MBEDTLS_USE_PSA_CRYPTO */

     if (clear_len != enc_len) {
         ret = MBEDTLS_ERR_SSL_INTERNAL_ERROR;
@@ -538,13 +440,8 @@ void mbedtls_ssl_ticket_free(mbedtls_ssl_ticket_context *ctx)
         return;
     }

-#if defined(MBEDTLS_USE_PSA_CRYPTO)
     psa_destroy_key(ctx->keys[0].key);
     psa_destroy_key(ctx->keys[1].key);
-#else
-    mbedtls_cipher_free(&ctx->keys[0].ctx);
-    mbedtls_cipher_free(&ctx->keys[1].ctx);
-#endif /* MBEDTLS_USE_PSA_CRYPTO */

 #if defined(MBEDTLS_THREADING_C)
     mbedtls_mutex_free(&ctx->mutex);
diff --git a/deps/LIEF/third-party/mbedtls/library/ssl_tls.c b/deps/LIEF/third-party/mbedtls/library/ssl_tls.c
index b5bea7521a1..75c59a96ad3 100644
--- a/deps/LIEF/third-party/mbedtls/library/ssl_tls.c
+++ b/deps/LIEF/third-party/mbedtls/library/ssl_tls.c
@@ -9,7 +9,7 @@
  *  http://www.ietf.org/rfc/rfc4346.txt
  */

-#include "common.h"
+#include "ssl_misc.h"

 #if defined(MBEDTLS_SSL_TLS_C)

@@ -18,7 +18,6 @@
 #include "mbedtls/ssl.h"
 #include "ssl_client.h"
 #include "ssl_debug_helpers.h"
-#include "ssl_misc.h"
 #include "ssl_tls13_keys.h"

 #include "debug_internal.h"
@@ -29,18 +28,15 @@

 #include <string.h>

-#if defined(MBEDTLS_USE_PSA_CRYPTO)
 #include "mbedtls/psa_util.h"
 #include "md_psa.h"
 #include "psa_util_internal.h"
 #include "psa/crypto.h"
-#endif

 #if defined(MBEDTLS_X509_CRT_PARSE_C)
 #include "mbedtls/oid.h"
 #endif

-#if defined(MBEDTLS_USE_PSA_CRYPTO)
 /* Define local translating functions to save code size by not using too many
  * arguments in each translating place. */
 static int local_err_translation(psa_status_t status)
@@ -50,7 +46,6 @@ static int local_err_translation(psa_status_t status)
                                  psa_generic_status_to_mbedtls);
 }
 #define PSA_TO_MBEDTLS_ERR(status) local_err_translation(status)
-#endif

 #if defined(MBEDTLS_TEST_HOOKS)
 static mbedtls_ssl_chk_buf_ptr_args chk_buf_ptr_fail_args;
@@ -430,7 +425,7 @@ static int ssl_tls12_populate_transform(mbedtls_ssl_transform *transform,
                                         unsigned endpoint,
                                         const mbedtls_ssl_context *ssl);

-#if defined(MBEDTLS_MD_CAN_SHA256)
+#if defined(PSA_WANT_ALG_SHA_256)
 MBEDTLS_CHECK_RETURN_CRITICAL
 static int tls_prf_sha256(const unsigned char *secret, size_t slen,
                           const char *label,
@@ -439,9 +434,9 @@ static int tls_prf_sha256(const unsigned char *secret, size_t slen,
 static int ssl_calc_verify_tls_sha256(const mbedtls_ssl_context *, unsigned char *, size_t *);
 static int ssl_calc_finished_tls_sha256(mbedtls_ssl_context *, unsigned char *, int);

-#endif /* MBEDTLS_MD_CAN_SHA256*/
+#endif /* PSA_WANT_ALG_SHA_256*/

-#if defined(MBEDTLS_MD_CAN_SHA384)
+#if defined(PSA_WANT_ALG_SHA_384)
 MBEDTLS_CHECK_RETURN_CRITICAL
 static int tls_prf_sha384(const unsigned char *secret, size_t slen,
                           const char *label,
@@ -450,7 +445,7 @@ static int tls_prf_sha384(const unsigned char *secret, size_t slen,

 static int ssl_calc_verify_tls_sha384(const mbedtls_ssl_context *, unsigned char *, size_t *);
 static int ssl_calc_finished_tls_sha384(mbedtls_ssl_context *, unsigned char *, int);
-#endif /* MBEDTLS_MD_CAN_SHA384*/
+#endif /* PSA_WANT_ALG_SHA_384*/

 MBEDTLS_CHECK_RETURN_CRITICAL
 static int ssl_tls12_session_load(mbedtls_ssl_session *session,
@@ -460,13 +455,13 @@ static int ssl_tls12_session_load(mbedtls_ssl_session *session,

 static int ssl_update_checksum_start(mbedtls_ssl_context *, const unsigned char *, size_t);

-#if defined(MBEDTLS_MD_CAN_SHA256)
+#if defined(PSA_WANT_ALG_SHA_256)
 static int ssl_update_checksum_sha256(mbedtls_ssl_context *, const unsigned char *, size_t);
-#endif /* MBEDTLS_MD_CAN_SHA256*/
+#endif /* PSA_WANT_ALG_SHA_256*/

-#if defined(MBEDTLS_MD_CAN_SHA384)
+#if defined(PSA_WANT_ALG_SHA_384)
 static int ssl_update_checksum_sha384(mbedtls_ssl_context *, const unsigned char *, size_t);
-#endif /* MBEDTLS_MD_CAN_SHA384*/
+#endif /* PSA_WANT_ALG_SHA_384*/

 int  mbedtls_ssl_tls_prf(const mbedtls_tls_prf_types prf,
                          const unsigned char *secret, size_t slen,
@@ -478,16 +473,16 @@ int  mbedtls_ssl_tls_prf(const mbedtls_tls_prf_types prf,

     switch (prf) {
 #if defined(MBEDTLS_SSL_PROTO_TLS1_2)
-#if defined(MBEDTLS_MD_CAN_SHA384)
+#if defined(PSA_WANT_ALG_SHA_384)
         case MBEDTLS_SSL_TLS_PRF_SHA384:
             tls_prf = tls_prf_sha384;
             break;
-#endif /* MBEDTLS_MD_CAN_SHA384*/
-#if defined(MBEDTLS_MD_CAN_SHA256)
+#endif /* PSA_WANT_ALG_SHA_384*/
+#if defined(PSA_WANT_ALG_SHA_256)
         case MBEDTLS_SSL_TLS_PRF_SHA256:
             tls_prf = tls_prf_sha256;
             break;
-#endif /* MBEDTLS_MD_CAN_SHA256*/
+#endif /* PSA_WANT_ALG_SHA_256*/
 #endif /* MBEDTLS_SSL_PROTO_TLS1_2 */
         default:
             return MBEDTLS_ERR_SSL_FEATURE_UNAVAILABLE;
@@ -789,12 +784,12 @@ void mbedtls_ssl_optimize_checksum(mbedtls_ssl_context *ssl,
 {
     ((void) ciphersuite_info);

-#if defined(MBEDTLS_MD_CAN_SHA384)
+#if defined(PSA_WANT_ALG_SHA_384)
     if (ciphersuite_info->mac == MBEDTLS_MD_SHA384) {
         ssl->handshake->update_checksum = ssl_update_checksum_sha384;
     } else
 #endif
-#if defined(MBEDTLS_MD_CAN_SHA256)
+#if defined(PSA_WANT_ALG_SHA_256)
     if (ciphersuite_info->mac != MBEDTLS_MD_SHA384) {
         ssl->handshake->update_checksum = ssl_update_checksum_sha256;
     } else
@@ -835,18 +830,13 @@ int mbedtls_ssl_add_hs_msg_to_checksum(mbedtls_ssl_context *ssl,

 int mbedtls_ssl_reset_checksum(mbedtls_ssl_context *ssl)
 {
-#if defined(MBEDTLS_MD_CAN_SHA256) || \
-    defined(MBEDTLS_MD_CAN_SHA384)
-#if defined(MBEDTLS_USE_PSA_CRYPTO)
+#if defined(PSA_WANT_ALG_SHA_256) || \
+    defined(PSA_WANT_ALG_SHA_384)
     psa_status_t status;
-#else
-    int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
-#endif
 #else /* SHA-256 or SHA-384 */
     ((void) ssl);
 #endif /* SHA-256 or SHA-384 */
-#if defined(MBEDTLS_MD_CAN_SHA256)
-#if defined(MBEDTLS_USE_PSA_CRYPTO)
+#if defined(PSA_WANT_ALG_SHA_256)
     status = psa_hash_abort(&ssl->handshake->fin_sha256_psa);
     if (status != PSA_SUCCESS) {
         return mbedtls_md_error_from_psa(status);
@@ -855,23 +845,8 @@ int mbedtls_ssl_reset_checksum(mbedtls_ssl_context *ssl)
     if (status != PSA_SUCCESS) {
         return mbedtls_md_error_from_psa(status);
     }
-#else
-    mbedtls_md_free(&ssl->handshake->fin_sha256);
-    mbedtls_md_init(&ssl->handshake->fin_sha256);
-    ret = mbedtls_md_setup(&ssl->handshake->fin_sha256,
-                           mbedtls_md_info_from_type(MBEDTLS_MD_SHA256),
-                           0);
-    if (ret != 0) {
-        return ret;
-    }
-    ret = mbedtls_md_starts(&ssl->handshake->fin_sha256);
-    if (ret != 0) {
-        return ret;
-    }
 #endif
-#endif
-#if defined(MBEDTLS_MD_CAN_SHA384)
-#if defined(MBEDTLS_USE_PSA_CRYPTO)
+#if defined(PSA_WANT_ALG_SHA_384)
     status = psa_hash_abort(&ssl->handshake->fin_sha384_psa);
     if (status != PSA_SUCCESS) {
         return mbedtls_md_error_from_psa(status);
@@ -880,19 +855,6 @@ int mbedtls_ssl_reset_checksum(mbedtls_ssl_context *ssl)
     if (status != PSA_SUCCESS) {
         return mbedtls_md_error_from_psa(status);
     }
-#else
-    mbedtls_md_free(&ssl->handshake->fin_sha384);
-    mbedtls_md_init(&ssl->handshake->fin_sha384);
-    ret = mbedtls_md_setup(&ssl->handshake->fin_sha384,
-                           mbedtls_md_info_from_type(MBEDTLS_MD_SHA384), 0);
-    if (ret != 0) {
-        return ret;
-    }
-    ret = mbedtls_md_starts(&ssl->handshake->fin_sha384);
-    if (ret != 0) {
-        return ret;
-    }
-#endif
 #endif
     return 0;
 }
@@ -900,70 +862,44 @@ int mbedtls_ssl_reset_checksum(mbedtls_ssl_context *ssl)
 static int ssl_update_checksum_start(mbedtls_ssl_context *ssl,
                                      const unsigned char *buf, size_t len)
 {
-#if defined(MBEDTLS_MD_CAN_SHA256) || \
-    defined(MBEDTLS_MD_CAN_SHA384)
-#if defined(MBEDTLS_USE_PSA_CRYPTO)
+#if defined(PSA_WANT_ALG_SHA_256) || \
+    defined(PSA_WANT_ALG_SHA_384)
     psa_status_t status;
-#else
-    int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
-#endif
 #else /* SHA-256 or SHA-384 */
     ((void) ssl);
     (void) buf;
     (void) len;
 #endif /* SHA-256 or SHA-384 */
-#if defined(MBEDTLS_MD_CAN_SHA256)
-#if defined(MBEDTLS_USE_PSA_CRYPTO)
+#if defined(PSA_WANT_ALG_SHA_256)
     status = psa_hash_update(&ssl->handshake->fin_sha256_psa, buf, len);
     if (status != PSA_SUCCESS) {
         return mbedtls_md_error_from_psa(status);
     }
-#else
-    ret = mbedtls_md_update(&ssl->handshake->fin_sha256, buf, len);
-    if (ret != 0) {
-        return ret;
-    }
 #endif
-#endif
-#if defined(MBEDTLS_MD_CAN_SHA384)
-#if defined(MBEDTLS_USE_PSA_CRYPTO)
+#if defined(PSA_WANT_ALG_SHA_384)
     status = psa_hash_update(&ssl->handshake->fin_sha384_psa, buf, len);
     if (status != PSA_SUCCESS) {
         return mbedtls_md_error_from_psa(status);
     }
-#else
-    ret = mbedtls_md_update(&ssl->handshake->fin_sha384, buf, len);
-    if (ret != 0) {
-        return ret;
-    }
-#endif
 #endif
     return 0;
 }

-#if defined(MBEDTLS_MD_CAN_SHA256)
+#if defined(PSA_WANT_ALG_SHA_256)
 static int ssl_update_checksum_sha256(mbedtls_ssl_context *ssl,
                                       const unsigned char *buf, size_t len)
 {
-#if defined(MBEDTLS_USE_PSA_CRYPTO)
     return mbedtls_md_error_from_psa(psa_hash_update(
                                          &ssl->handshake->fin_sha256_psa, buf, len));
-#else
-    return mbedtls_md_update(&ssl->handshake->fin_sha256, buf, len);
-#endif
 }
 #endif

-#if defined(MBEDTLS_MD_CAN_SHA384)
+#if defined(PSA_WANT_ALG_SHA_384)
 static int ssl_update_checksum_sha384(mbedtls_ssl_context *ssl,
                                       const unsigned char *buf, size_t len)
 {
-#if defined(MBEDTLS_USE_PSA_CRYPTO)
     return mbedtls_md_error_from_psa(psa_hash_update(
                                          &ssl->handshake->fin_sha384_psa, buf, len));
-#else
-    return mbedtls_md_update(&ssl->handshake->fin_sha384, buf, len);
-#endif
 }
 #endif

@@ -971,37 +907,18 @@ static void ssl_handshake_params_init(mbedtls_ssl_handshake_params *handshake)
 {
     memset(handshake, 0, sizeof(mbedtls_ssl_handshake_params));

-#if defined(MBEDTLS_MD_CAN_SHA256)
-#if defined(MBEDTLS_USE_PSA_CRYPTO)
+#if defined(PSA_WANT_ALG_SHA_256)
     handshake->fin_sha256_psa = psa_hash_operation_init();
-#else
-    mbedtls_md_init(&handshake->fin_sha256);
-#endif
 #endif
-#if defined(MBEDTLS_MD_CAN_SHA384)
-#if defined(MBEDTLS_USE_PSA_CRYPTO)
+#if defined(PSA_WANT_ALG_SHA_384)
     handshake->fin_sha384_psa = psa_hash_operation_init();
-#else
-    mbedtls_md_init(&handshake->fin_sha384);
-#endif
 #endif

     handshake->update_checksum = ssl_update_checksum_start;

-#if defined(MBEDTLS_DHM_C)
-    mbedtls_dhm_init(&handshake->dhm_ctx);
-#endif
-#if !defined(MBEDTLS_USE_PSA_CRYPTO) && \
-    defined(MBEDTLS_KEY_EXCHANGE_SOME_ECDH_OR_ECDHE_1_2_ENABLED)
-    mbedtls_ecdh_init(&handshake->ecdh_ctx);
-#endif
 #if defined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED)
-#if defined(MBEDTLS_USE_PSA_CRYPTO)
     handshake->psa_pake_ctx = psa_pake_operation_init();
     handshake->psa_pake_password = MBEDTLS_SVC_KEY_ID_INIT;
-#else
-    mbedtls_ecjpake_init(&handshake->ecjpake_ctx);
-#endif /* MBEDTLS_USE_PSA_CRYPTO */
 #if defined(MBEDTLS_SSL_CLI_C)
     handshake->ecjpake_cache = NULL;
     handshake->ecjpake_cache_len = 0;
@@ -1026,22 +943,12 @@ void mbedtls_ssl_transform_init(mbedtls_ssl_transform *transform)
 {
     memset(transform, 0, sizeof(mbedtls_ssl_transform));

-#if defined(MBEDTLS_USE_PSA_CRYPTO)
     transform->psa_key_enc = MBEDTLS_SVC_KEY_ID_INIT;
     transform->psa_key_dec = MBEDTLS_SVC_KEY_ID_INIT;
-#else
-    mbedtls_cipher_init(&transform->cipher_ctx_enc);
-    mbedtls_cipher_init(&transform->cipher_ctx_dec);
-#endif

 #if defined(MBEDTLS_SSL_SOME_SUITES_USE_MAC)
-#if defined(MBEDTLS_USE_PSA_CRYPTO)
     transform->psa_mac_enc = MBEDTLS_SVC_KEY_ID_INIT;
     transform->psa_mac_dec = MBEDTLS_SVC_KEY_ID_INIT;
-#else
-    mbedtls_md_init(&transform->md_ctx_enc);
-    mbedtls_md_init(&transform->md_ctx_dec);
-#endif
 #endif
 }

@@ -1159,115 +1066,6 @@ static int ssl_handshake_init(mbedtls_ssl_context *ssl)
         mbedtls_ssl_set_timer(ssl, 0);
     }
 #endif
-
-/*
- * curve_list is translated to IANA TLS group identifiers here because
- * mbedtls_ssl_conf_curves returns void and so can't return
- * any error codes.
- */
-#if defined(MBEDTLS_ECP_C)
-#if !defined(MBEDTLS_DEPRECATED_REMOVED)
-    /* Heap allocate and translate curve_list from internal to IANA group ids */
-    if (ssl->conf->curve_list != NULL) {
-        size_t length;
-        const mbedtls_ecp_group_id *curve_list = ssl->conf->curve_list;
-
-        for (length = 0;  (curve_list[length] != MBEDTLS_ECP_DP_NONE); length++) {
-        }
-
-        /* Leave room for zero termination */
-        uint16_t *group_list = mbedtls_calloc(length + 1, sizeof(uint16_t));
-        if (group_list == NULL) {
-            return MBEDTLS_ERR_SSL_ALLOC_FAILED;
-        }
-
-        for (size_t i = 0; i < length; i++) {
-            uint16_t tls_id = mbedtls_ssl_get_tls_id_from_ecp_group_id(
-                curve_list[i]);
-            if (tls_id == 0) {
-                mbedtls_free(group_list);
-                return MBEDTLS_ERR_SSL_BAD_CONFIG;
-            }
-            group_list[i] = tls_id;
-        }
-
-        group_list[length] = 0;
-
-        ssl->handshake->group_list = group_list;
-        ssl->handshake->group_list_heap_allocated = 1;
-    } else {
-        ssl->handshake->group_list = ssl->conf->group_list;
-        ssl->handshake->group_list_heap_allocated = 0;
-    }
-#endif /* MBEDTLS_DEPRECATED_REMOVED */
-#endif /* MBEDTLS_ECP_C */
-
-#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED)
-#if !defined(MBEDTLS_DEPRECATED_REMOVED)
-#if defined(MBEDTLS_SSL_PROTO_TLS1_2)
-    /* Heap allocate and translate sig_hashes from internal hash identifiers to
-       signature algorithms IANA identifiers.  */
-    if (mbedtls_ssl_conf_is_tls12_only(ssl->conf) &&
-        ssl->conf->sig_hashes != NULL) {
-        const int *md;
-        const int *sig_hashes = ssl->conf->sig_hashes;
-        size_t sig_algs_len = 0;
-        uint16_t *p;
-
-        MBEDTLS_STATIC_ASSERT(MBEDTLS_SSL_MAX_SIG_ALG_LIST_LEN
-                              <= (SIZE_MAX - (2 * sizeof(uint16_t))),
-                              "MBEDTLS_SSL_MAX_SIG_ALG_LIST_LEN too big");
-
-        for (md = sig_hashes; *md != MBEDTLS_MD_NONE; md++) {
-            if (mbedtls_ssl_hash_from_md_alg(*md) == MBEDTLS_SSL_HASH_NONE) {
-                continue;
-            }
-#if defined(MBEDTLS_KEY_EXCHANGE_ECDSA_CERT_REQ_ALLOWED_ENABLED)
-            sig_algs_len += sizeof(uint16_t);
-#endif
-
-#if defined(MBEDTLS_RSA_C)
-            sig_algs_len += sizeof(uint16_t);
-#endif
-            if (sig_algs_len > MBEDTLS_SSL_MAX_SIG_ALG_LIST_LEN) {
-                return MBEDTLS_ERR_SSL_BAD_CONFIG;
-            }
-        }
-
-        if (sig_algs_len < MBEDTLS_SSL_MIN_SIG_ALG_LIST_LEN) {
-            return MBEDTLS_ERR_SSL_BAD_CONFIG;
-        }
-
-        ssl->handshake->sig_algs = mbedtls_calloc(1, sig_algs_len +
-                                                  sizeof(uint16_t));
-        if (ssl->handshake->sig_algs == NULL) {
-            return MBEDTLS_ERR_SSL_ALLOC_FAILED;
-        }
-
-        p = (uint16_t *) ssl->handshake->sig_algs;
-        for (md = sig_hashes; *md != MBEDTLS_MD_NONE; md++) {
-            unsigned char hash = mbedtls_ssl_hash_from_md_alg(*md);
-            if (hash == MBEDTLS_SSL_HASH_NONE) {
-                continue;
-            }
-#if defined(MBEDTLS_KEY_EXCHANGE_ECDSA_CERT_REQ_ALLOWED_ENABLED)
-            *p = ((hash << 8) | MBEDTLS_SSL_SIG_ECDSA);
-            p++;
-#endif
-#if defined(MBEDTLS_RSA_C)
-            *p = ((hash << 8) | MBEDTLS_SSL_SIG_RSA);
-            p++;
-#endif
-        }
-        *p = MBEDTLS_TLS_SIG_NONE;
-        ssl->handshake->sig_algs_heap_allocated = 1;
-    } else
-#endif /* MBEDTLS_SSL_PROTO_TLS1_2 */
-    {
-        ssl->handshake->sig_algs_heap_allocated = 0;
-    }
-#endif /* !MBEDTLS_DEPRECATED_REMOVED */
-#endif /* MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED */
     return 0;
 }

@@ -1359,11 +1157,6 @@ static int ssl_conf_check(const mbedtls_ssl_context *ssl)
         return ret;
     }

-    if (ssl->conf->f_rng == NULL) {
-        MBEDTLS_SSL_DEBUG_MSG(1, ("no RNG provided"));
-        return MBEDTLS_ERR_SSL_NO_RNG;
-    }
-
     /* Space for further checks */

     return 0;
@@ -1489,15 +1282,10 @@ void mbedtls_ssl_session_reset_msg_layer(mbedtls_ssl_context *ssl,
     ssl->in_msgtype = 0;
     ssl->in_msglen  = 0;
     ssl->in_hslen   = 0;
+    ssl->in_hsfraglen = 0;
     ssl->keep_current_message = 0;
     ssl->transform_in  = NULL;

-    /* TLS: reset in_hsfraglen, which is part of message parsing.
-     * DTLS: on a client reconnect, don't reset badmac_seen. */
-    if (!partial) {
-        ssl->badmac_seen_or_in_hsfraglen = 0;
-    }
-
 #if defined(MBEDTLS_SSL_PROTO_DTLS)
     ssl->next_record_offset = 0;
     ssl->in_epoch = 0;
@@ -1556,6 +1344,7 @@ int mbedtls_ssl_session_reset_int(mbedtls_ssl_context *ssl, int partial)
     int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;

     mbedtls_ssl_handshake_set_state(ssl, MBEDTLS_SSL_HELLO_REQUEST);
+    ssl->flags &= MBEDTLS_SSL_CONTEXT_FLAGS_KEEP_AT_SESSION;
     ssl->tls_version = ssl->conf->max_tls_version;

     mbedtls_ssl_session_reset_msg_layer(ssl, partial);
@@ -1667,14 +1456,6 @@ void mbedtls_ssl_conf_verify(mbedtls_ssl_config *conf,
 }
 #endif /* MBEDTLS_X509_CRT_PARSE_C */

-void mbedtls_ssl_conf_rng(mbedtls_ssl_config *conf,
-                          int (*f_rng)(void *, unsigned char *, size_t),
-                          void *p_rng)
-{
-    conf->f_rng      = f_rng;
-    conf->p_rng      = p_rng;
-}
-
 void mbedtls_ssl_conf_dbg(mbedtls_ssl_config *conf,
                           void (*f_dbg)(void *, int, const char *, int, const char *),
                           void  *p_dbg)
@@ -1959,7 +1740,6 @@ void mbedtls_ssl_set_verify(mbedtls_ssl_context *ssl,

 #if defined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED)

-#if defined(MBEDTLS_USE_PSA_CRYPTO)
 static const uint8_t jpake_server_id[] = { 's', 'e', 'r', 'v', 'e', 'r' };
 static const uint8_t jpake_client_id[] = { 'c', 'l', 'i', 'e', 'n', 't' };

@@ -1973,14 +1753,13 @@ static psa_status_t mbedtls_ssl_set_hs_ecjpake_password_common(
     size_t user_len = 0;
     const uint8_t *peer = NULL;
     size_t peer_len = 0;
-    psa_pake_cs_set_algorithm(&cipher_suite, PSA_ALG_JPAKE);
+    psa_pake_cs_set_algorithm(&cipher_suite, PSA_ALG_JPAKE(PSA_ALG_SHA_256));
     psa_pake_cs_set_primitive(&cipher_suite,
                               PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC,
                                                  PSA_ECC_FAMILY_SECP_R1,
                                                  256));
-    psa_pake_cs_set_hash(&cipher_suite, PSA_ALG_SHA_256);

-    status = psa_pake_setup(&ssl->handshake->psa_pake_ctx, &cipher_suite);
+    status = psa_pake_setup(&ssl->handshake->psa_pake_ctx, pwd, &cipher_suite);
     if (status != PSA_SUCCESS) {
         return status;
     }
@@ -2007,11 +1786,6 @@ static psa_status_t mbedtls_ssl_set_hs_ecjpake_password_common(
         return status;
     }

-    status = psa_pake_set_password_key(&ssl->handshake->psa_pake_ctx, pwd);
-    if (status != PSA_SUCCESS) {
-        return status;
-    }
-
     ssl->handshake->psa_pake_ctx_is_ok = 1;

     return PSA_SUCCESS;
@@ -2034,7 +1808,7 @@ int mbedtls_ssl_set_hs_ecjpake_password(mbedtls_ssl_context *ssl,
     }

     psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_DERIVE);
-    psa_set_key_algorithm(&attributes, PSA_ALG_JPAKE);
+    psa_set_key_algorithm(&attributes, PSA_ALG_JPAKE(PSA_ALG_SHA_256));
     psa_set_key_type(&attributes, PSA_KEY_TYPE_PASSWORD);

     status = psa_import_key(&attributes, pw, pw_len,
@@ -2075,35 +1849,6 @@ int mbedtls_ssl_set_hs_ecjpake_password_opaque(mbedtls_ssl_context *ssl,

     return 0;
 }
-#else /* MBEDTLS_USE_PSA_CRYPTO */
-int mbedtls_ssl_set_hs_ecjpake_password(mbedtls_ssl_context *ssl,
-                                        const unsigned char *pw,
-                                        size_t pw_len)
-{
-    mbedtls_ecjpake_role role;
-
-    if (ssl->handshake == NULL || ssl->conf == NULL) {
-        return MBEDTLS_ERR_SSL_BAD_INPUT_DATA;
-    }
-
-    /* Empty password is not valid  */
-    if ((pw == NULL) || (pw_len == 0)) {
-        return MBEDTLS_ERR_SSL_BAD_INPUT_DATA;
-    }
-
-    if (ssl->conf->endpoint == MBEDTLS_SSL_IS_SERVER) {
-        role = MBEDTLS_ECJPAKE_SERVER;
-    } else {
-        role = MBEDTLS_ECJPAKE_CLIENT;
-    }
-
-    return mbedtls_ecjpake_setup(&ssl->handshake->ecjpake_ctx,
-                                 role,
-                                 MBEDTLS_MD_SHA256,
-                                 MBEDTLS_ECP_DP_SECP256R1,
-                                 pw, pw_len);
-}
-#endif /* MBEDTLS_USE_PSA_CRYPTO */
 #endif /* MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED */

 #if defined(MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED)
@@ -2114,11 +1859,9 @@ int mbedtls_ssl_conf_has_static_psk(mbedtls_ssl_config const *conf)
         return 0;
     }

-#if defined(MBEDTLS_USE_PSA_CRYPTO)
     if (!mbedtls_svc_key_id_is_null(conf->psk_opaque)) {
         return 1;
     }
-#endif /* MBEDTLS_USE_PSA_CRYPTO */

     if (conf->psk != NULL && conf->psk_len != 0) {
         return 1;
@@ -2130,13 +1873,11 @@ int mbedtls_ssl_conf_has_static_psk(mbedtls_ssl_config const *conf)
 static void ssl_conf_remove_psk(mbedtls_ssl_config *conf)
 {
     /* Remove reference to existing PSK, if any. */
-#if defined(MBEDTLS_USE_PSA_CRYPTO)
     if (!mbedtls_svc_key_id_is_null(conf->psk_opaque)) {
         /* The maintenance of the PSK key slot is the
          * user's responsibility. */
         conf->psk_opaque = MBEDTLS_SVC_KEY_ID_INIT;
     }
-#endif /* MBEDTLS_USE_PSA_CRYPTO */
     if (conf->psk != NULL) {
         mbedtls_zeroize_and_free(conf->psk, conf->psk_len);
         conf->psk = NULL;
@@ -2218,7 +1959,6 @@ int mbedtls_ssl_conf_psk(mbedtls_ssl_config *conf,

 static void ssl_remove_psk(mbedtls_ssl_context *ssl)
 {
-#if defined(MBEDTLS_USE_PSA_CRYPTO)
     if (!mbedtls_svc_key_id_is_null(ssl->handshake->psk_opaque)) {
         /* The maintenance of the external PSK key slot is the
          * user's responsibility. */
@@ -2228,25 +1968,15 @@ static void ssl_remove_psk(mbedtls_ssl_context *ssl)
         }
         ssl->handshake->psk_opaque = MBEDTLS_SVC_KEY_ID_INIT;
     }
-#else
-    if (ssl->handshake->psk != NULL) {
-        mbedtls_zeroize_and_free(ssl->handshake->psk,
-                                 ssl->handshake->psk_len);
-        ssl->handshake->psk_len = 0;
-        ssl->handshake->psk = NULL;
-    }
-#endif /* MBEDTLS_USE_PSA_CRYPTO */
 }

 int mbedtls_ssl_set_hs_psk(mbedtls_ssl_context *ssl,
                            const unsigned char *psk, size_t psk_len)
 {
-#if defined(MBEDTLS_USE_PSA_CRYPTO)
     psa_key_attributes_t key_attributes = psa_key_attributes_init();
     psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED;
     psa_algorithm_t alg = PSA_ALG_NONE;
     mbedtls_svc_key_id_t key = MBEDTLS_SVC_KEY_ID_INIT;
-#endif /* MBEDTLS_USE_PSA_CRYPTO */

     if (psk == NULL || ssl->handshake == NULL) {
         return MBEDTLS_ERR_SSL_BAD_INPUT_DATA;
@@ -2258,7 +1988,6 @@ int mbedtls_ssl_set_hs_psk(mbedtls_ssl_context *ssl,

     ssl_remove_psk(ssl);

-#if defined(MBEDTLS_USE_PSA_CRYPTO)
 #if defined(MBEDTLS_SSL_PROTO_TLS1_2)
     if (ssl->tls_version == MBEDTLS_SSL_VERSION_TLS1_2) {
         if (ssl->handshake->ciphersuite_info->mac == MBEDTLS_MD_SHA384) {
@@ -2289,19 +2018,8 @@ int mbedtls_ssl_set_hs_psk(mbedtls_ssl_context *ssl,
     /* Allow calling psa_destroy_key() on psk remove */
     ssl->handshake->psk_opaque_is_internal = 1;
     return mbedtls_ssl_set_hs_psk_opaque(ssl, key);
-#else
-    if ((ssl->handshake->psk = mbedtls_calloc(1, psk_len)) == NULL) {
-        return MBEDTLS_ERR_SSL_ALLOC_FAILED;
-    }
-
-    ssl->handshake->psk_len = psk_len;
-    memcpy(ssl->handshake->psk, psk, ssl->handshake->psk_len);
-
-    return 0;
-#endif /* MBEDTLS_USE_PSA_CRYPTO */
 }

-#if defined(MBEDTLS_USE_PSA_CRYPTO)
 int mbedtls_ssl_conf_psk_opaque(mbedtls_ssl_config *conf,
                                 mbedtls_svc_key_id_t psk,
                                 const unsigned char *psk_identity,
@@ -2342,7 +2060,6 @@ int mbedtls_ssl_set_hs_psk_opaque(mbedtls_ssl_context *ssl,
     ssl->handshake->psk_opaque = psk;
     return 0;
 }
-#endif /* MBEDTLS_USE_PSA_CRYPTO */

 #if defined(MBEDTLS_SSL_SRV_C)
 void mbedtls_ssl_conf_psk_cb(mbedtls_ssl_config *conf,
@@ -2357,7 +2074,6 @@ void mbedtls_ssl_conf_psk_cb(mbedtls_ssl_config *conf,

 #endif /* MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED */

-#if defined(MBEDTLS_USE_PSA_CRYPTO)
 static mbedtls_ssl_mode_t mbedtls_ssl_get_base_mode(
     psa_algorithm_t alg)
 {
@@ -2372,30 +2088,6 @@ static mbedtls_ssl_mode_t mbedtls_ssl_get_base_mode(
     return MBEDTLS_SSL_MODE_STREAM;
 }

-#else /* MBEDTLS_USE_PSA_CRYPTO */
-
-static mbedtls_ssl_mode_t mbedtls_ssl_get_base_mode(
-    mbedtls_cipher_mode_t mode)
-{
-#if defined(MBEDTLS_SSL_SOME_SUITES_USE_MAC)
-    if (mode == MBEDTLS_MODE_CBC) {
-        return MBEDTLS_SSL_MODE_CBC;
-    }
-#endif /* MBEDTLS_SSL_SOME_SUITES_USE_MAC */
-
-#if defined(MBEDTLS_GCM_C) || \
-    defined(MBEDTLS_CCM_C) || \
-    defined(MBEDTLS_CHACHAPOLY_C)
-    if (mode == MBEDTLS_MODE_GCM ||
-        mode == MBEDTLS_MODE_CCM ||
-        mode == MBEDTLS_MODE_CHACHAPOLY) {
-        return MBEDTLS_SSL_MODE_AEAD;
-    }
-#endif /* MBEDTLS_GCM_C || MBEDTLS_CCM_C || MBEDTLS_CHACHAPOLY_C */
-
-    return MBEDTLS_SSL_MODE_STREAM;
-}
-#endif /* MBEDTLS_USE_PSA_CRYPTO */

 static mbedtls_ssl_mode_t mbedtls_ssl_get_actual_mode(
     mbedtls_ssl_mode_t base_mode,
@@ -2416,11 +2108,7 @@ mbedtls_ssl_mode_t mbedtls_ssl_get_mode_from_transform(
     const mbedtls_ssl_transform *transform)
 {
     mbedtls_ssl_mode_t base_mode = mbedtls_ssl_get_base_mode(
-#if defined(MBEDTLS_USE_PSA_CRYPTO)
         transform->psa_alg
-#else
-        mbedtls_cipher_get_cipher_mode(&transform->cipher_ctx_enc)
-#endif
         );

     int encrypt_then_mac = 0;
@@ -2438,7 +2126,6 @@ mbedtls_ssl_mode_t mbedtls_ssl_get_mode_from_ciphersuite(
 {
     mbedtls_ssl_mode_t base_mode = MBEDTLS_SSL_MODE_STREAM;

-#if defined(MBEDTLS_USE_PSA_CRYPTO)
     psa_status_t status;
     psa_algorithm_t alg;
     psa_key_type_t type;
@@ -2448,15 +2135,6 @@ mbedtls_ssl_mode_t mbedtls_ssl_get_mode_from_ciphersuite(
     if (status == PSA_SUCCESS) {
         base_mode = mbedtls_ssl_get_base_mode(alg);
     }
-#else
-    const mbedtls_cipher_info_t *cipher =
-        mbedtls_cipher_info_from_type((mbedtls_cipher_type_t) suite->cipher);
-    if (cipher != NULL) {
-        base_mode =
-            mbedtls_ssl_get_base_mode(
-                mbedtls_cipher_info_get_mode(cipher));
-    }
-#endif /* MBEDTLS_USE_PSA_CRYPTO */

 #if !defined(MBEDTLS_SSL_SOME_SUITES_USE_CBC_ETM)
     int encrypt_then_mac = 0;
@@ -2464,7 +2142,17 @@ mbedtls_ssl_mode_t mbedtls_ssl_get_mode_from_ciphersuite(
     return mbedtls_ssl_get_actual_mode(base_mode, encrypt_then_mac);
 }

-#if defined(MBEDTLS_USE_PSA_CRYPTO) || defined(MBEDTLS_SSL_PROTO_TLS1_3)
+
+const mbedtls_error_pair_t psa_to_ssl_errors[] =
+{
+    { PSA_SUCCESS,                     0 },
+    { PSA_ERROR_INSUFFICIENT_MEMORY,   MBEDTLS_ERR_SSL_ALLOC_FAILED },
+    { PSA_ERROR_NOT_SUPPORTED,         MBEDTLS_ERR_SSL_FEATURE_UNAVAILABLE },
+    { PSA_ERROR_INVALID_SIGNATURE,     MBEDTLS_ERR_SSL_INVALID_MAC },
+    { PSA_ERROR_INVALID_ARGUMENT,      MBEDTLS_ERR_SSL_BAD_INPUT_DATA },
+    { PSA_ERROR_BAD_STATE,             MBEDTLS_ERR_SSL_INTERNAL_ERROR },
+    { PSA_ERROR_BUFFER_TOO_SMALL,      MBEDTLS_ERR_SSL_BUFFER_TOO_SMALL }
+};

 psa_status_t mbedtls_ssl_cipher_to_psa(mbedtls_cipher_type_t mbedtls_cipher_type,
                                        size_t taglen,
@@ -2472,179 +2160,179 @@ psa_status_t mbedtls_ssl_cipher_to_psa(mbedtls_cipher_type_t mbedtls_cipher_type
                                        psa_key_type_t *key_type,
                                        size_t *key_size)
 {
-#if !defined(MBEDTLS_SSL_HAVE_CCM)
+#if !defined(PSA_WANT_ALG_CCM)
     (void) taglen;
 #endif
     switch (mbedtls_cipher_type) {
-#if defined(MBEDTLS_SSL_HAVE_AES) && defined(MBEDTLS_SSL_HAVE_CBC)
+#if defined(PSA_WANT_KEY_TYPE_AES) && defined(PSA_WANT_ALG_CBC_NO_PADDING)
         case MBEDTLS_CIPHER_AES_128_CBC:
             *alg = PSA_ALG_CBC_NO_PADDING;
             *key_type = PSA_KEY_TYPE_AES;
             *key_size = 128;
             break;
 #endif
-#if defined(MBEDTLS_SSL_HAVE_AES) && defined(MBEDTLS_SSL_HAVE_CCM)
+#if defined(PSA_WANT_KEY_TYPE_AES) && defined(PSA_WANT_ALG_CCM)
         case MBEDTLS_CIPHER_AES_128_CCM:
             *alg = taglen ? PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM, taglen) : PSA_ALG_CCM;
             *key_type = PSA_KEY_TYPE_AES;
             *key_size = 128;
             break;
 #endif
-#if defined(MBEDTLS_SSL_HAVE_AES) && defined(MBEDTLS_SSL_HAVE_GCM)
+#if defined(PSA_WANT_KEY_TYPE_AES) && defined(PSA_WANT_ALG_GCM)
         case MBEDTLS_CIPHER_AES_128_GCM:
             *alg = PSA_ALG_GCM;
             *key_type = PSA_KEY_TYPE_AES;
             *key_size = 128;
             break;
 #endif
-#if defined(MBEDTLS_SSL_HAVE_AES) && defined(MBEDTLS_SSL_HAVE_CCM)
+#if defined(PSA_WANT_KEY_TYPE_AES) && defined(PSA_WANT_ALG_CCM)
         case MBEDTLS_CIPHER_AES_192_CCM:
             *alg = taglen ? PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM, taglen) : PSA_ALG_CCM;
             *key_type = PSA_KEY_TYPE_AES;
             *key_size = 192;
             break;
 #endif
-#if defined(MBEDTLS_SSL_HAVE_AES) && defined(MBEDTLS_SSL_HAVE_GCM)
+#if defined(PSA_WANT_KEY_TYPE_AES) && defined(PSA_WANT_ALG_GCM)
         case MBEDTLS_CIPHER_AES_192_GCM:
             *alg = PSA_ALG_GCM;
             *key_type = PSA_KEY_TYPE_AES;
             *key_size = 192;
             break;
 #endif
-#if defined(MBEDTLS_SSL_HAVE_AES) && defined(MBEDTLS_SSL_HAVE_CBC)
+#if defined(PSA_WANT_KEY_TYPE_AES) && defined(PSA_WANT_ALG_CBC_NO_PADDING)
         case MBEDTLS_CIPHER_AES_256_CBC:
             *alg = PSA_ALG_CBC_NO_PADDING;
             *key_type = PSA_KEY_TYPE_AES;
             *key_size = 256;
             break;
 #endif
-#if defined(MBEDTLS_SSL_HAVE_AES) && defined(MBEDTLS_SSL_HAVE_CCM)
+#if defined(PSA_WANT_KEY_TYPE_AES) && defined(PSA_WANT_ALG_CCM)
         case MBEDTLS_CIPHER_AES_256_CCM:
             *alg = taglen ? PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM, taglen) : PSA_ALG_CCM;
             *key_type = PSA_KEY_TYPE_AES;
             *key_size = 256;
             break;
 #endif
-#if defined(MBEDTLS_SSL_HAVE_AES) && defined(MBEDTLS_SSL_HAVE_GCM)
+#if defined(PSA_WANT_KEY_TYPE_AES) && defined(PSA_WANT_ALG_GCM)
         case MBEDTLS_CIPHER_AES_256_GCM:
             *alg = PSA_ALG_GCM;
             *key_type = PSA_KEY_TYPE_AES;
             *key_size = 256;
             break;
 #endif
-#if defined(MBEDTLS_SSL_HAVE_ARIA) && defined(MBEDTLS_SSL_HAVE_CBC)
+#if defined(PSA_WANT_KEY_TYPE_ARIA) && defined(PSA_WANT_ALG_CBC_NO_PADDING)
         case MBEDTLS_CIPHER_ARIA_128_CBC:
             *alg = PSA_ALG_CBC_NO_PADDING;
             *key_type = PSA_KEY_TYPE_ARIA;
             *key_size = 128;
             break;
 #endif
-#if defined(MBEDTLS_SSL_HAVE_ARIA) && defined(MBEDTLS_SSL_HAVE_CCM)
+#if defined(PSA_WANT_KEY_TYPE_ARIA) && defined(PSA_WANT_ALG_CCM)
         case MBEDTLS_CIPHER_ARIA_128_CCM:
             *alg = taglen ? PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM, taglen) : PSA_ALG_CCM;
             *key_type = PSA_KEY_TYPE_ARIA;
             *key_size = 128;
             break;
 #endif
-#if defined(MBEDTLS_SSL_HAVE_ARIA) && defined(MBEDTLS_SSL_HAVE_GCM)
+#if defined(PSA_WANT_KEY_TYPE_ARIA) && defined(PSA_WANT_ALG_GCM)
         case MBEDTLS_CIPHER_ARIA_128_GCM:
             *alg = PSA_ALG_GCM;
             *key_type = PSA_KEY_TYPE_ARIA;
             *key_size = 128;
             break;
 #endif
-#if defined(MBEDTLS_SSL_HAVE_ARIA) && defined(MBEDTLS_SSL_HAVE_CCM)
+#if defined(PSA_WANT_KEY_TYPE_ARIA) && defined(PSA_WANT_ALG_CCM)
         case MBEDTLS_CIPHER_ARIA_192_CCM:
             *alg = taglen ? PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM, taglen) : PSA_ALG_CCM;
             *key_type = PSA_KEY_TYPE_ARIA;
             *key_size = 192;
             break;
 #endif
-#if defined(MBEDTLS_SSL_HAVE_ARIA) && defined(MBEDTLS_SSL_HAVE_GCM)
+#if defined(PSA_WANT_KEY_TYPE_ARIA) && defined(PSA_WANT_ALG_GCM)
         case MBEDTLS_CIPHER_ARIA_192_GCM:
             *alg = PSA_ALG_GCM;
             *key_type = PSA_KEY_TYPE_ARIA;
             *key_size = 192;
             break;
 #endif
-#if defined(MBEDTLS_SSL_HAVE_ARIA) && defined(MBEDTLS_SSL_HAVE_CBC)
+#if defined(PSA_WANT_KEY_TYPE_ARIA) && defined(PSA_WANT_ALG_CBC_NO_PADDING)
         case MBEDTLS_CIPHER_ARIA_256_CBC:
             *alg = PSA_ALG_CBC_NO_PADDING;
             *key_type = PSA_KEY_TYPE_ARIA;
             *key_size = 256;
             break;
 #endif
-#if defined(MBEDTLS_SSL_HAVE_ARIA) && defined(MBEDTLS_SSL_HAVE_CCM)
+#if defined(PSA_WANT_KEY_TYPE_ARIA) && defined(PSA_WANT_ALG_CCM)
         case MBEDTLS_CIPHER_ARIA_256_CCM:
             *alg = taglen ? PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM, taglen) : PSA_ALG_CCM;
             *key_type = PSA_KEY_TYPE_ARIA;
             *key_size = 256;
             break;
 #endif
-#if defined(MBEDTLS_SSL_HAVE_ARIA) && defined(MBEDTLS_SSL_HAVE_GCM)
+#if defined(PSA_WANT_KEY_TYPE_ARIA) && defined(PSA_WANT_ALG_GCM)
         case MBEDTLS_CIPHER_ARIA_256_GCM:
             *alg = PSA_ALG_GCM;
             *key_type = PSA_KEY_TYPE_ARIA;
             *key_size = 256;
             break;
 #endif
-#if defined(MBEDTLS_SSL_HAVE_CAMELLIA) && defined(MBEDTLS_SSL_HAVE_CBC)
+#if defined(PSA_WANT_KEY_TYPE_CAMELLIA) && defined(PSA_WANT_ALG_CBC_NO_PADDING)
         case MBEDTLS_CIPHER_CAMELLIA_128_CBC:
             *alg = PSA_ALG_CBC_NO_PADDING;
             *key_type = PSA_KEY_TYPE_CAMELLIA;
             *key_size = 128;
             break;
 #endif
-#if defined(MBEDTLS_SSL_HAVE_CAMELLIA) && defined(MBEDTLS_SSL_HAVE_CCM)
+#if defined(PSA_WANT_KEY_TYPE_CAMELLIA) && defined(PSA_WANT_ALG_CCM)
         case MBEDTLS_CIPHER_CAMELLIA_128_CCM:
             *alg = taglen ? PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM, taglen) : PSA_ALG_CCM;
             *key_type = PSA_KEY_TYPE_CAMELLIA;
             *key_size = 128;
             break;
 #endif
-#if defined(MBEDTLS_SSL_HAVE_CAMELLIA) && defined(MBEDTLS_SSL_HAVE_GCM)
+#if defined(PSA_WANT_KEY_TYPE_CAMELLIA) && defined(PSA_WANT_ALG_GCM)
         case MBEDTLS_CIPHER_CAMELLIA_128_GCM:
             *alg = PSA_ALG_GCM;
             *key_type = PSA_KEY_TYPE_CAMELLIA;
             *key_size = 128;
             break;
 #endif
-#if defined(MBEDTLS_SSL_HAVE_CAMELLIA) && defined(MBEDTLS_SSL_HAVE_CCM)
+#if defined(PSA_WANT_KEY_TYPE_CAMELLIA) && defined(PSA_WANT_ALG_CCM)
         case MBEDTLS_CIPHER_CAMELLIA_192_CCM:
             *alg = taglen ? PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM, taglen) : PSA_ALG_CCM;
             *key_type = PSA_KEY_TYPE_CAMELLIA;
             *key_size = 192;
             break;
 #endif
-#if defined(MBEDTLS_SSL_HAVE_CAMELLIA) && defined(MBEDTLS_SSL_HAVE_GCM)
+#if defined(PSA_WANT_KEY_TYPE_CAMELLIA) && defined(PSA_WANT_ALG_GCM)
         case MBEDTLS_CIPHER_CAMELLIA_192_GCM:
             *alg = PSA_ALG_GCM;
             *key_type = PSA_KEY_TYPE_CAMELLIA;
             *key_size = 192;
             break;
 #endif
-#if defined(MBEDTLS_SSL_HAVE_CAMELLIA) && defined(MBEDTLS_SSL_HAVE_CBC)
+#if defined(PSA_WANT_KEY_TYPE_CAMELLIA) && defined(PSA_WANT_ALG_CBC_NO_PADDING)
         case MBEDTLS_CIPHER_CAMELLIA_256_CBC:
             *alg = PSA_ALG_CBC_NO_PADDING;
             *key_type = PSA_KEY_TYPE_CAMELLIA;
             *key_size = 256;
             break;
 #endif
-#if defined(MBEDTLS_SSL_HAVE_CAMELLIA) && defined(MBEDTLS_SSL_HAVE_CCM)
+#if defined(PSA_WANT_KEY_TYPE_CAMELLIA) && defined(PSA_WANT_ALG_CCM)
         case MBEDTLS_CIPHER_CAMELLIA_256_CCM:
             *alg = taglen ? PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM, taglen) : PSA_ALG_CCM;
             *key_type = PSA_KEY_TYPE_CAMELLIA;
             *key_size = 256;
             break;
 #endif
-#if defined(MBEDTLS_SSL_HAVE_CAMELLIA) && defined(MBEDTLS_SSL_HAVE_GCM)
+#if defined(PSA_WANT_KEY_TYPE_CAMELLIA) && defined(PSA_WANT_ALG_GCM)
         case MBEDTLS_CIPHER_CAMELLIA_256_GCM:
             *alg = PSA_ALG_GCM;
             *key_type = PSA_KEY_TYPE_CAMELLIA;
             *key_size = 256;
             break;
 #endif
-#if defined(MBEDTLS_SSL_HAVE_CHACHAPOLY)
+#if defined(PSA_WANT_ALG_CHACHA20_POLY1305)
         case MBEDTLS_CIPHER_CHACHA20_POLY1305:
             *alg = PSA_ALG_CHACHA20_POLY1305;
             *key_type = PSA_KEY_TYPE_CHACHA20;
@@ -2662,121 +2350,28 @@ psa_status_t mbedtls_ssl_cipher_to_psa(mbedtls_cipher_type_t mbedtls_cipher_type

     return PSA_SUCCESS;
 }
-#endif /* MBEDTLS_USE_PSA_CRYPTO || MBEDTLS_SSL_PROTO_TLS1_3 */
-
-#if defined(MBEDTLS_DHM_C) && defined(MBEDTLS_SSL_SRV_C)
-int mbedtls_ssl_conf_dh_param_bin(mbedtls_ssl_config *conf,
-                                  const unsigned char *dhm_P, size_t P_len,
-                                  const unsigned char *dhm_G, size_t G_len)
-{
-    int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
-
-    mbedtls_mpi_free(&conf->dhm_P);
-    mbedtls_mpi_free(&conf->dhm_G);
-
-    if ((ret = mbedtls_mpi_read_binary(&conf->dhm_P, dhm_P, P_len)) != 0 ||
-        (ret = mbedtls_mpi_read_binary(&conf->dhm_G, dhm_G, G_len)) != 0) {
-        mbedtls_mpi_free(&conf->dhm_P);
-        mbedtls_mpi_free(&conf->dhm_G);
-        return ret;
-    }
-
-    return 0;
-}
-
-int mbedtls_ssl_conf_dh_param_ctx(mbedtls_ssl_config *conf, mbedtls_dhm_context *dhm_ctx)
-{
-    int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
-
-    mbedtls_mpi_free(&conf->dhm_P);
-    mbedtls_mpi_free(&conf->dhm_G);
-
-    if ((ret = mbedtls_dhm_get_value(dhm_ctx, MBEDTLS_DHM_PARAM_P,
-                                     &conf->dhm_P)) != 0 ||
-        (ret = mbedtls_dhm_get_value(dhm_ctx, MBEDTLS_DHM_PARAM_G,
-                                     &conf->dhm_G)) != 0) {
-        mbedtls_mpi_free(&conf->dhm_P);
-        mbedtls_mpi_free(&conf->dhm_G);
-        return ret;
-    }
-
-    return 0;
-}
-#endif /* MBEDTLS_DHM_C && MBEDTLS_SSL_SRV_C */
-
-#if defined(MBEDTLS_DHM_C) && defined(MBEDTLS_SSL_CLI_C)
-/*
- * Set the minimum length for Diffie-Hellman parameters
- */
-void mbedtls_ssl_conf_dhm_min_bitlen(mbedtls_ssl_config *conf,
-                                     unsigned int bitlen)
-{
-    conf->dhm_min_bitlen = bitlen;
-}
-#endif /* MBEDTLS_DHM_C && MBEDTLS_SSL_CLI_C */

 #if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED)
-#if !defined(MBEDTLS_DEPRECATED_REMOVED) && defined(MBEDTLS_SSL_PROTO_TLS1_2)
-/*
- * Set allowed/preferred hashes for handshake signatures
- */
-void mbedtls_ssl_conf_sig_hashes(mbedtls_ssl_config *conf,
-                                 const int *hashes)
-{
-    conf->sig_hashes = hashes;
-}
-#endif /* !MBEDTLS_DEPRECATED_REMOVED && MBEDTLS_SSL_PROTO_TLS1_2 */

 /* Configure allowed signature algorithms for handshake */
 void mbedtls_ssl_conf_sig_algs(mbedtls_ssl_config *conf,
                                const uint16_t *sig_algs)
 {
-#if !defined(MBEDTLS_DEPRECATED_REMOVED)
-    conf->sig_hashes = NULL;
-#endif /* !MBEDTLS_DEPRECATED_REMOVED */
     conf->sig_algs = sig_algs;
 }
 #endif /* MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED */

-#if defined(MBEDTLS_ECP_C)
-#if !defined(MBEDTLS_DEPRECATED_REMOVED)
-/*
- * Set the allowed elliptic curves
- *
- * mbedtls_ssl_setup() takes the provided list
- * and translates it to a list of IANA TLS group identifiers,
- * stored in ssl->handshake->group_list.
- *
- */
-void mbedtls_ssl_conf_curves(mbedtls_ssl_config *conf,
-                             const mbedtls_ecp_group_id *curve_list)
-{
-    conf->curve_list = curve_list;
-    conf->group_list = NULL;
-}
-#endif /* MBEDTLS_DEPRECATED_REMOVED */
-#endif /* MBEDTLS_ECP_C */
-
 /*
  * Set the allowed groups
  */
 void mbedtls_ssl_conf_groups(mbedtls_ssl_config *conf,
                              const uint16_t *group_list)
 {
-#if defined(MBEDTLS_ECP_C) && !defined(MBEDTLS_DEPRECATED_REMOVED)
-    conf->curve_list = NULL;
-#endif
     conf->group_list = group_list;
 }

 #if defined(MBEDTLS_X509_CRT_PARSE_C)

-/* A magic value for `ssl->hostname` indicating that
- * mbedtls_ssl_set_hostname() has been called with `NULL`.
- * If mbedtls_ssl_set_hostname() has never been called on `ssl`, then
- * `ssl->hostname == NULL`. */
-static const char *const ssl_hostname_skip_cn_verification = "";
-
 #if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED)
 /** Whether mbedtls_ssl_set_hostname() has been called.
  *
@@ -2789,27 +2384,13 @@ static const char *const ssl_hostname_skip_cn_verification = "";
 static int mbedtls_ssl_has_set_hostname_been_called(
     const mbedtls_ssl_context *ssl)
 {
-    return ssl->hostname != NULL;
+    return (ssl->flags & MBEDTLS_SSL_CONTEXT_FLAG_HOSTNAME_SET) != 0;
 }
 #endif

-/* Micro-optimization: don't export this function if it isn't needed outside
- * of this source file. */
-#if !defined(MBEDTLS_SSL_SERVER_NAME_INDICATION)
-static
-#endif
-const char *mbedtls_ssl_get_hostname_pointer(const mbedtls_ssl_context *ssl)
-{
-    if (ssl->hostname == ssl_hostname_skip_cn_verification) {
-        return NULL;
-    }
-    return ssl->hostname;
-}
-
 static void mbedtls_ssl_free_hostname(mbedtls_ssl_context *ssl)
 {
-    if (ssl->hostname != NULL &&
-        ssl->hostname != ssl_hostname_skip_cn_verification) {
+    if (ssl->hostname != NULL) {
         mbedtls_zeroize_and_free(ssl->hostname, strlen(ssl->hostname));
     }
     ssl->hostname = NULL;
@@ -2834,19 +2415,13 @@ int mbedtls_ssl_set_hostname(mbedtls_ssl_context *ssl, const char *hostname)
      * so we can free it safely */
     mbedtls_ssl_free_hostname(ssl);

+    /* Passing NULL as hostname shall clear the old one */
+
     if (hostname == NULL) {
-        /* Passing NULL as hostname clears the old one, but leaves a
-         * special marker to indicate that mbedtls_ssl_set_hostname()
-         * has been called. */
-        /* ssl->hostname should be const, but isn't. We won't actually
-         * write to the buffer, so it's ok to cast away the const. */
-        ssl->hostname = (char *) ssl_hostname_skip_cn_verification;
+        ssl->hostname = NULL;
     } else {
         ssl->hostname = mbedtls_calloc(1, hostname_len + 1);
         if (ssl->hostname == NULL) {
-            /* mbedtls_ssl_set_hostname() has been called, but unsuccessfully.
-             * Leave ssl->hostname in the same state as if the function had
-             * not been called, i.e. a null pointer. */
             return MBEDTLS_ERR_SSL_ALLOC_FAILED;
         }

@@ -2855,6 +2430,8 @@ int mbedtls_ssl_set_hostname(mbedtls_ssl_context *ssl, const char *hostname)
         ssl->hostname[hostname_len] = '\0';
     }

+    ssl->flags |= MBEDTLS_SSL_CONTEXT_FLAG_HOSTNAME_SET;
+
     return 0;
 }
 #endif /* MBEDTLS_X509_CRT_PARSE_C */
@@ -2871,10 +2448,11 @@ void mbedtls_ssl_conf_sni(mbedtls_ssl_config *conf,
 #endif /* MBEDTLS_SSL_SERVER_NAME_INDICATION */

 #if defined(MBEDTLS_SSL_ALPN)
-int mbedtls_ssl_conf_alpn_protocols(mbedtls_ssl_config *conf, const char **protos)
+int mbedtls_ssl_conf_alpn_protocols(mbedtls_ssl_config *conf,
+                                    const char *const *protos)
 {
     size_t cur_len, tot_len;
-    const char **p;
+    const char *const *p;

     /*
      * RFC 7301 3.1: "Empty strings MUST NOT be included and byte strings
@@ -2974,18 +2552,6 @@ void mbedtls_ssl_get_dtls_srtp_negotiation_result(const mbedtls_ssl_context *ssl
 }
 #endif /* MBEDTLS_SSL_DTLS_SRTP */

-#if !defined(MBEDTLS_DEPRECATED_REMOVED)
-void mbedtls_ssl_conf_max_version(mbedtls_ssl_config *conf, int major, int minor)
-{
-    conf->max_tls_version = (mbedtls_ssl_protocol_version) ((major << 8) | minor);
-}
-
-void mbedtls_ssl_conf_min_version(mbedtls_ssl_config *conf, int major, int minor)
-{
-    conf->min_tls_version = (mbedtls_ssl_protocol_version) ((major << 8) | minor);
-}
-#endif /* MBEDTLS_DEPRECATED_REMOVED */
-
 #if defined(MBEDTLS_SSL_SRV_C)
 void mbedtls_ssl_conf_cert_req_ca_list(mbedtls_ssl_config *conf,
                                        char cert_req_ca_list)
@@ -3047,24 +2613,11 @@ void mbedtls_ssl_conf_renegotiation_period(mbedtls_ssl_config *conf,

 #if defined(MBEDTLS_SSL_SESSION_TICKETS)
 #if defined(MBEDTLS_SSL_CLI_C)
-
 void mbedtls_ssl_conf_session_tickets(mbedtls_ssl_config *conf, int use_tickets)
 {
-    conf->session_tickets &= ~MBEDTLS_SSL_SESSION_TICKETS_TLS1_2_MASK;
-    conf->session_tickets |= (use_tickets != 0) <<
-                             MBEDTLS_SSL_SESSION_TICKETS_TLS1_2_BIT;
+    conf->session_tickets = use_tickets;
 }
-
-#if defined(MBEDTLS_SSL_PROTO_TLS1_3)
-void mbedtls_ssl_conf_tls13_enable_signal_new_session_tickets(
-    mbedtls_ssl_config *conf, int signal_new_session_tickets)
-{
-    conf->session_tickets &= ~MBEDTLS_SSL_SESSION_TICKETS_TLS1_3_MASK;
-    conf->session_tickets |= (signal_new_session_tickets != 0) <<
-                             MBEDTLS_SSL_SESSION_TICKETS_TLS1_3_BIT;
-}
-#endif /* MBEDTLS_SSL_PROTO_TLS1_3 */
-#endif /* MBEDTLS_SSL_CLI_C */
+#endif

 #if defined(MBEDTLS_SSL_SRV_C)

@@ -3100,13 +2653,11 @@ void mbedtls_ssl_set_export_keys_cb(mbedtls_ssl_context *ssl,
 void mbedtls_ssl_conf_async_private_cb(
     mbedtls_ssl_config *conf,
     mbedtls_ssl_async_sign_t *f_async_sign,
-    mbedtls_ssl_async_decrypt_t *f_async_decrypt,
     mbedtls_ssl_async_resume_t *f_async_resume,
     mbedtls_ssl_async_cancel_t *f_async_cancel,
     void *async_config_data)
 {
     conf->f_async_sign_start = f_async_sign;
-    conf->f_async_decrypt_start = f_async_decrypt;
     conf->f_async_resume = f_async_resume;
     conf->f_async_cancel = f_async_cancel;
     conf->p_async_config_data = async_config_data;
@@ -3627,7 +3178,7 @@ static int ssl_tls12_session_load(mbedtls_ssl_session *session,
     start = MBEDTLS_GET_UINT64_BE(p, 0);
     p += 8;

-    session->start = (time_t) start;
+    session->start = (mbedtls_time_t) start;
 #endif /* MBEDTLS_HAVE_TIME */

     /*
@@ -4816,20 +4367,8 @@ void mbedtls_ssl_handshake_free(mbedtls_ssl_context *ssl)
         return;
     }

-#if defined(MBEDTLS_PK_HAVE_ECC_KEYS)
-#if !defined(MBEDTLS_DEPRECATED_REMOVED)
-    if (ssl->handshake->group_list_heap_allocated) {
-        mbedtls_free((void *) handshake->group_list);
-    }
-    handshake->group_list = NULL;
-#endif /* MBEDTLS_DEPRECATED_REMOVED */
-#endif /* MBEDTLS_PK_HAVE_ECC_KEYS */
-
 #if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED)
 #if !defined(MBEDTLS_DEPRECATED_REMOVED)
-    if (ssl->handshake->sig_algs_heap_allocated) {
-        mbedtls_free((void *) handshake->sig_algs);
-    }
     handshake->sig_algs = NULL;
 #endif /* MBEDTLS_DEPRECATED_REMOVED */
 #if defined(MBEDTLS_SSL_PROTO_TLS1_3)
@@ -4844,33 +4383,17 @@ void mbedtls_ssl_handshake_free(mbedtls_ssl_context *ssl)
         ssl->conf->f_async_cancel(ssl);
         handshake->async_in_progress = 0;
     }
+
 #endif /* MBEDTLS_SSL_ASYNC_PRIVATE */

-#if defined(MBEDTLS_MD_CAN_SHA256)
-#if defined(MBEDTLS_USE_PSA_CRYPTO)
+#if defined(PSA_WANT_ALG_SHA_256)
     psa_hash_abort(&handshake->fin_sha256_psa);
-#else
-    mbedtls_md_free(&handshake->fin_sha256);
 #endif
-#endif
-#if defined(MBEDTLS_MD_CAN_SHA384)
-#if defined(MBEDTLS_USE_PSA_CRYPTO)
+#if defined(PSA_WANT_ALG_SHA_384)
     psa_hash_abort(&handshake->fin_sha384_psa);
-#else
-    mbedtls_md_free(&handshake->fin_sha384);
-#endif
-#endif
-
-#if defined(MBEDTLS_DHM_C)
-    mbedtls_dhm_free(&handshake->dhm_ctx);
-#endif
-#if !defined(MBEDTLS_USE_PSA_CRYPTO) && \
-    defined(MBEDTLS_KEY_EXCHANGE_SOME_ECDH_OR_ECDHE_1_2_ENABLED)
-    mbedtls_ecdh_free(&handshake->ecdh_ctx);
 #endif

 #if defined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED)
-#if defined(MBEDTLS_USE_PSA_CRYPTO)
     psa_pake_abort(&handshake->psa_pake_ctx);
     /*
      * Opaque keys are not stored in the handshake's data and it's the user
@@ -4881,9 +4404,6 @@ void mbedtls_ssl_handshake_free(mbedtls_ssl_context *ssl)
         psa_destroy_key(handshake->psa_pake_password);
     }
     handshake->psa_pake_password = MBEDTLS_SVC_KEY_ID_INIT;
-#else
-    mbedtls_ecjpake_free(&handshake->ecjpake_ctx);
-#endif /* MBEDTLS_USE_PSA_CRYPTO */
 #if defined(MBEDTLS_SSL_CLI_C)
     mbedtls_free(handshake->ecjpake_cache);
     handshake->ecjpake_cache = NULL;
@@ -4899,7 +4419,6 @@ void mbedtls_ssl_handshake_free(mbedtls_ssl_context *ssl)
 #endif

 #if defined(MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED)
-#if defined(MBEDTLS_USE_PSA_CRYPTO)
     if (!mbedtls_svc_key_id_is_null(ssl->handshake->psk_opaque)) {
         /* The maintenance of the external PSK key slot is the
          * user's responsibility. */
@@ -4909,11 +4428,6 @@ void mbedtls_ssl_handshake_free(mbedtls_ssl_context *ssl)
         }
         ssl->handshake->psk_opaque = MBEDTLS_SVC_KEY_ID_INIT;
     }
-#else
-    if (handshake->psk != NULL) {
-        mbedtls_zeroize_and_free(handshake->psk, handshake->psk_len);
-    }
-#endif /* MBEDTLS_USE_PSA_CRYPTO */
 #endif /* MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED */

 #if defined(MBEDTLS_X509_CRT_PARSE_C) && \
@@ -5075,7 +4589,7 @@ static const unsigned char ssl_serialized_context_header[] = {
  *  uint8 in_cid<0..2^8-1>      // Connection ID: expected incoming value
  *  uint8 out_cid<0..2^8-1>     // Connection ID: outgoing value to use
  *  // fields from ssl_context
- *  uint32 badmac_seen_or_in_hsfraglen;         // DTLS: number of records with failing MAC
+ *  uint32 badmac_seen;         // DTLS: number of records with failing MAC
  *  uint64 in_window_top;       // DTLS: last validated record seq_num
  *  uint64 in_window;           // DTLS: bitmask for replay protection
  *  uint8 disable_datagram_packing; // DTLS: only one record per datagram
@@ -5217,7 +4731,7 @@ int mbedtls_ssl_context_save(mbedtls_ssl_context *ssl,
      */
     used += 4;
     if (used <= buf_len) {
-        MBEDTLS_PUT_UINT32_BE(ssl->badmac_seen_or_in_hsfraglen, p, 0);
+        MBEDTLS_PUT_UINT32_BE(ssl->badmac_seen, p, 0);
         p += 4;
     }

@@ -5447,7 +4961,7 @@ static int ssl_context_load(mbedtls_ssl_context *ssl,
         return MBEDTLS_ERR_SSL_BAD_INPUT_DATA;
     }

-    ssl->badmac_seen_or_in_hsfraglen = MBEDTLS_GET_UINT32_BE(p, 0);
+    ssl->badmac_seen = MBEDTLS_GET_UINT32_BE(p, 0);
     p += 4;

 #if defined(MBEDTLS_SSL_DTLS_ANTI_REPLAY)
@@ -5488,7 +5002,7 @@ static int ssl_context_load(mbedtls_ssl_context *ssl,
 #if defined(MBEDTLS_SSL_ALPN)
     {
         uint8_t alpn_len;
-        const char **cur;
+        const char *const *cur;

         if ((size_t) (end - p) < 1) {
             return MBEDTLS_ERR_SSL_BAD_INPUT_DATA;
@@ -5656,32 +5170,32 @@ void mbedtls_ssl_config_init(mbedtls_ssl_config *conf)
 /* The selection should be the same as mbedtls_x509_crt_profile_default in
  * x509_crt.c, plus Montgomery curves for ECDHE. Here, the order matters:
  * curves with a lower resource usage come first.
- * See the documentation of mbedtls_ssl_conf_curves() for what we promise
+ * See the documentation of mbedtls_ssl_conf_groups() for what we promise
  * about this list.
  */
 static const uint16_t ssl_preset_default_groups[] = {
-#if defined(MBEDTLS_ECP_HAVE_CURVE25519)
+#if defined(PSA_WANT_ECC_MONTGOMERY_255)
     MBEDTLS_SSL_IANA_TLS_GROUP_X25519,
 #endif
-#if defined(MBEDTLS_ECP_HAVE_SECP256R1)
+#if defined(PSA_WANT_ECC_SECP_R1_256)
     MBEDTLS_SSL_IANA_TLS_GROUP_SECP256R1,
 #endif
-#if defined(MBEDTLS_ECP_HAVE_SECP384R1)
+#if defined(PSA_WANT_ECC_SECP_R1_384)
     MBEDTLS_SSL_IANA_TLS_GROUP_SECP384R1,
 #endif
-#if defined(MBEDTLS_ECP_HAVE_CURVE448)
+#if defined(PSA_WANT_ECC_MONTGOMERY_448)
     MBEDTLS_SSL_IANA_TLS_GROUP_X448,
 #endif
-#if defined(MBEDTLS_ECP_HAVE_SECP521R1)
+#if defined(PSA_WANT_ECC_SECP_R1_521)
     MBEDTLS_SSL_IANA_TLS_GROUP_SECP521R1,
 #endif
-#if defined(MBEDTLS_ECP_HAVE_BP256R1)
+#if defined(PSA_WANT_ECC_BRAINPOOL_P_R1_256)
     MBEDTLS_SSL_IANA_TLS_GROUP_BP256R1,
 #endif
-#if defined(MBEDTLS_ECP_HAVE_BP384R1)
+#if defined(PSA_WANT_ECC_BRAINPOOL_P_R1_384)
     MBEDTLS_SSL_IANA_TLS_GROUP_BP384R1,
 #endif
-#if defined(MBEDTLS_ECP_HAVE_BP512R1)
+#if defined(PSA_WANT_ECC_BRAINPOOL_P_R1_512)
     MBEDTLS_SSL_IANA_TLS_GROUP_BP512R1,
 #endif
 #if defined(PSA_WANT_ALG_FFDH)
@@ -5713,49 +5227,49 @@ static const int ssl_preset_suiteb_ciphersuites[] = {
 static const uint16_t ssl_preset_default_sig_algs[] = {

 #if defined(MBEDTLS_KEY_EXCHANGE_ECDSA_CERT_REQ_ANY_ALLOWED_ENABLED) && \
-    defined(MBEDTLS_MD_CAN_SHA256) && \
+    defined(PSA_WANT_ALG_SHA_256) && \
     defined(PSA_WANT_ECC_SECP_R1_256)
     MBEDTLS_TLS1_3_SIG_ECDSA_SECP256R1_SHA256,
     // == MBEDTLS_SSL_TLS12_SIG_AND_HASH_ALG(MBEDTLS_SSL_SIG_ECDSA, MBEDTLS_SSL_HASH_SHA256)
 #endif

 #if defined(MBEDTLS_KEY_EXCHANGE_ECDSA_CERT_REQ_ANY_ALLOWED_ENABLED) && \
-    defined(MBEDTLS_MD_CAN_SHA384) && \
+    defined(PSA_WANT_ALG_SHA_384) && \
     defined(PSA_WANT_ECC_SECP_R1_384)
     MBEDTLS_TLS1_3_SIG_ECDSA_SECP384R1_SHA384,
     // == MBEDTLS_SSL_TLS12_SIG_AND_HASH_ALG(MBEDTLS_SSL_SIG_ECDSA, MBEDTLS_SSL_HASH_SHA384)
 #endif

 #if defined(MBEDTLS_KEY_EXCHANGE_ECDSA_CERT_REQ_ANY_ALLOWED_ENABLED) && \
-    defined(MBEDTLS_MD_CAN_SHA512) && \
+    defined(PSA_WANT_ALG_SHA_512) && \
     defined(PSA_WANT_ECC_SECP_R1_521)
     MBEDTLS_TLS1_3_SIG_ECDSA_SECP521R1_SHA512,
     // == MBEDTLS_SSL_TLS12_SIG_AND_HASH_ALG(MBEDTLS_SSL_SIG_ECDSA, MBEDTLS_SSL_HASH_SHA512)
 #endif

-#if defined(MBEDTLS_X509_RSASSA_PSS_SUPPORT) && defined(MBEDTLS_MD_CAN_SHA512)
+#if defined(MBEDTLS_X509_RSASSA_PSS_SUPPORT) && defined(PSA_WANT_ALG_SHA_512)
     MBEDTLS_TLS1_3_SIG_RSA_PSS_RSAE_SHA512,
 #endif

-#if defined(MBEDTLS_X509_RSASSA_PSS_SUPPORT) && defined(MBEDTLS_MD_CAN_SHA384)
+#if defined(MBEDTLS_X509_RSASSA_PSS_SUPPORT) && defined(PSA_WANT_ALG_SHA_384)
     MBEDTLS_TLS1_3_SIG_RSA_PSS_RSAE_SHA384,
 #endif

-#if defined(MBEDTLS_X509_RSASSA_PSS_SUPPORT) && defined(MBEDTLS_MD_CAN_SHA256)
+#if defined(MBEDTLS_X509_RSASSA_PSS_SUPPORT) && defined(PSA_WANT_ALG_SHA_256)
     MBEDTLS_TLS1_3_SIG_RSA_PSS_RSAE_SHA256,
 #endif

-#if defined(MBEDTLS_RSA_C) && defined(MBEDTLS_MD_CAN_SHA512)
+#if defined(MBEDTLS_RSA_C) && defined(PSA_WANT_ALG_SHA_512)
     MBEDTLS_TLS1_3_SIG_RSA_PKCS1_SHA512,
-#endif /* MBEDTLS_RSA_C && MBEDTLS_MD_CAN_SHA512 */
+#endif /* MBEDTLS_RSA_C && PSA_WANT_ALG_SHA_512 */

-#if defined(MBEDTLS_RSA_C) && defined(MBEDTLS_MD_CAN_SHA384)
+#if defined(MBEDTLS_RSA_C) && defined(PSA_WANT_ALG_SHA_384)
     MBEDTLS_TLS1_3_SIG_RSA_PKCS1_SHA384,
-#endif /* MBEDTLS_RSA_C && MBEDTLS_MD_CAN_SHA384 */
+#endif /* MBEDTLS_RSA_C && PSA_WANT_ALG_SHA_384 */

-#if defined(MBEDTLS_RSA_C) && defined(MBEDTLS_MD_CAN_SHA256)
+#if defined(MBEDTLS_RSA_C) && defined(PSA_WANT_ALG_SHA_256)
     MBEDTLS_TLS1_3_SIG_RSA_PKCS1_SHA256,
-#endif /* MBEDTLS_RSA_C && MBEDTLS_MD_CAN_SHA256 */
+#endif /* MBEDTLS_RSA_C && PSA_WANT_ALG_SHA_256 */

     MBEDTLS_TLS_SIG_NONE
 };
@@ -5764,7 +5278,7 @@ static const uint16_t ssl_preset_default_sig_algs[] = {
 #if defined(MBEDTLS_SSL_PROTO_TLS1_2)
 static const uint16_t ssl_tls12_preset_default_sig_algs[] = {

-#if defined(MBEDTLS_MD_CAN_SHA512)
+#if defined(PSA_WANT_ALG_SHA_512)
 #if defined(MBEDTLS_KEY_EXCHANGE_ECDSA_CERT_REQ_ALLOWED_ENABLED)
     MBEDTLS_SSL_TLS12_SIG_AND_HASH_ALG(MBEDTLS_SSL_SIG_ECDSA, MBEDTLS_SSL_HASH_SHA512),
 #endif
@@ -5774,9 +5288,9 @@ static const uint16_t ssl_tls12_preset_default_sig_algs[] = {
 #if defined(MBEDTLS_RSA_C)
     MBEDTLS_SSL_TLS12_SIG_AND_HASH_ALG(MBEDTLS_SSL_SIG_RSA, MBEDTLS_SSL_HASH_SHA512),
 #endif
-#endif /* MBEDTLS_MD_CAN_SHA512 */
+#endif /* PSA_WANT_ALG_SHA_512 */

-#if defined(MBEDTLS_MD_CAN_SHA384)
+#if defined(PSA_WANT_ALG_SHA_384)
 #if defined(MBEDTLS_KEY_EXCHANGE_ECDSA_CERT_REQ_ALLOWED_ENABLED)
     MBEDTLS_SSL_TLS12_SIG_AND_HASH_ALG(MBEDTLS_SSL_SIG_ECDSA, MBEDTLS_SSL_HASH_SHA384),
 #endif
@@ -5786,9 +5300,9 @@ static const uint16_t ssl_tls12_preset_default_sig_algs[] = {
 #if defined(MBEDTLS_RSA_C)
     MBEDTLS_SSL_TLS12_SIG_AND_HASH_ALG(MBEDTLS_SSL_SIG_RSA, MBEDTLS_SSL_HASH_SHA384),
 #endif
-#endif /* MBEDTLS_MD_CAN_SHA384 */
+#endif /* PSA_WANT_ALG_SHA_384 */

-#if defined(MBEDTLS_MD_CAN_SHA256)
+#if defined(PSA_WANT_ALG_SHA_256)
 #if defined(MBEDTLS_KEY_EXCHANGE_ECDSA_CERT_REQ_ALLOWED_ENABLED)
     MBEDTLS_SSL_TLS12_SIG_AND_HASH_ALG(MBEDTLS_SSL_SIG_ECDSA, MBEDTLS_SSL_HASH_SHA256),
 #endif
@@ -5798,7 +5312,7 @@ static const uint16_t ssl_tls12_preset_default_sig_algs[] = {
 #if defined(MBEDTLS_RSA_C)
     MBEDTLS_SSL_TLS12_SIG_AND_HASH_ALG(MBEDTLS_SSL_SIG_RSA, MBEDTLS_SSL_HASH_SHA256),
 #endif
-#endif /* MBEDTLS_MD_CAN_SHA256 */
+#endif /* PSA_WANT_ALG_SHA_256 */

     MBEDTLS_TLS_SIG_NONE
 };
@@ -5808,15 +5322,15 @@ static const uint16_t ssl_tls12_preset_default_sig_algs[] = {
 static const uint16_t ssl_preset_suiteb_sig_algs[] = {

 #if defined(MBEDTLS_KEY_EXCHANGE_ECDSA_CERT_REQ_ANY_ALLOWED_ENABLED) && \
-    defined(MBEDTLS_MD_CAN_SHA256) && \
-    defined(MBEDTLS_ECP_HAVE_SECP256R1)
+    defined(PSA_WANT_ALG_SHA_256) && \
+    defined(PSA_WANT_ECC_SECP_R1_256)
     MBEDTLS_TLS1_3_SIG_ECDSA_SECP256R1_SHA256,
     // == MBEDTLS_SSL_TLS12_SIG_AND_HASH_ALG(MBEDTLS_SSL_SIG_ECDSA, MBEDTLS_SSL_HASH_SHA256)
 #endif

 #if defined(MBEDTLS_KEY_EXCHANGE_ECDSA_CERT_REQ_ANY_ALLOWED_ENABLED) && \
-    defined(MBEDTLS_MD_CAN_SHA384) && \
-    defined(MBEDTLS_ECP_HAVE_SECP384R1)
+    defined(PSA_WANT_ALG_SHA_384) && \
+    defined(PSA_WANT_ECC_SECP_R1_384)
     MBEDTLS_TLS1_3_SIG_ECDSA_SECP384R1_SHA384,
     // == MBEDTLS_SSL_TLS12_SIG_AND_HASH_ALG(MBEDTLS_SSL_SIG_ECDSA, MBEDTLS_SSL_HASH_SHA384)
 #endif
@@ -5828,17 +5342,17 @@ static const uint16_t ssl_preset_suiteb_sig_algs[] = {
 #if defined(MBEDTLS_SSL_PROTO_TLS1_2)
 static const uint16_t ssl_tls12_preset_suiteb_sig_algs[] = {

-#if defined(MBEDTLS_MD_CAN_SHA256)
+#if defined(PSA_WANT_ALG_SHA_256)
 #if defined(MBEDTLS_KEY_EXCHANGE_ECDSA_CERT_REQ_ALLOWED_ENABLED)
     MBEDTLS_SSL_TLS12_SIG_AND_HASH_ALG(MBEDTLS_SSL_SIG_ECDSA, MBEDTLS_SSL_HASH_SHA256),
 #endif
-#endif /* MBEDTLS_MD_CAN_SHA256 */
+#endif /* PSA_WANT_ALG_SHA_256 */

-#if defined(MBEDTLS_MD_CAN_SHA384)
+#if defined(PSA_WANT_ALG_SHA_384)
 #if defined(MBEDTLS_KEY_EXCHANGE_ECDSA_CERT_REQ_ALLOWED_ENABLED)
     MBEDTLS_SSL_TLS12_SIG_AND_HASH_ALG(MBEDTLS_SSL_SIG_ECDSA, MBEDTLS_SSL_HASH_SHA384),
 #endif
-#endif /* MBEDTLS_MD_CAN_SHA384 */
+#endif /* PSA_WANT_ALG_SHA_384 */

     MBEDTLS_TLS_SIG_NONE
 };
@@ -5847,10 +5361,10 @@ static const uint16_t ssl_tls12_preset_suiteb_sig_algs[] = {
 #endif /* MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED */

 static const uint16_t ssl_preset_suiteb_groups[] = {
-#if defined(MBEDTLS_ECP_HAVE_SECP256R1)
+#if defined(PSA_WANT_ECC_SECP_R1_256)
     MBEDTLS_SSL_IANA_TLS_GROUP_SECP256R1,
 #endif
-#if defined(MBEDTLS_ECP_HAVE_SECP384R1)
+#if defined(PSA_WANT_ECC_SECP_R1_384)
     MBEDTLS_SSL_IANA_TLS_GROUP_SECP384R1,
 #endif
     MBEDTLS_SSL_IANA_TLS_GROUP_NONE
@@ -5887,10 +5401,6 @@ static int ssl_check_no_sig_alg_duplication(const uint16_t *sig_algs)
 int mbedtls_ssl_config_defaults(mbedtls_ssl_config *conf,
                                 int endpoint, int transport, int preset)
 {
-#if defined(MBEDTLS_DHM_C) && defined(MBEDTLS_SSL_SRV_C)
-    int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
-#endif
-
 #if defined(MBEDTLS_DEBUG_C) && defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED)
     if (ssl_check_no_sig_alg_duplication(ssl_preset_suiteb_sig_algs)) {
         mbedtls_printf("ssl_preset_suiteb_sig_algs has duplicated entries\n");
@@ -5927,33 +5437,7 @@ int mbedtls_ssl_config_defaults(mbedtls_ssl_config *conf,
     if (endpoint == MBEDTLS_SSL_IS_CLIENT) {
         conf->authmode = MBEDTLS_SSL_VERIFY_REQUIRED;
 #if defined(MBEDTLS_SSL_SESSION_TICKETS)
-        mbedtls_ssl_conf_session_tickets(conf, MBEDTLS_SSL_SESSION_TICKETS_ENABLED);
-#if defined(MBEDTLS_SSL_PROTO_TLS1_3)
-        /* Contrary to TLS 1.2 tickets, TLS 1.3 NewSessionTicket message
-         * handling is disabled by default in Mbed TLS 3.6.x for backward
-         * compatibility with client applications developed using Mbed TLS 3.5
-         * or earlier with the default configuration.
-         *
-         * Up to Mbed TLS 3.5, in the default configuration TLS 1.3 was
-         * disabled, and a Mbed TLS client with the default configuration would
-         * establish a TLS 1.2 connection with a TLS 1.2 and TLS 1.3 capable
-         * server.
-         *
-         * Starting with Mbed TLS 3.6.0, TLS 1.3 is enabled by default, and thus
-         * an Mbed TLS client with the default configuration establishes a
-         * TLS 1.3 connection with a TLS 1.2 and TLS 1.3 capable server. If
-         * following the handshake the TLS 1.3 server sends NewSessionTicket
-         * messages and the Mbed TLS client processes them, this results in
-         * Mbed TLS high level APIs (mbedtls_ssl_read(),
-         * mbedtls_ssl_handshake(), ...) to eventually return an
-         * #MBEDTLS_ERR_SSL_RECEIVED_NEW_SESSION_TICKET non fatal error code
-         * (see the documentation of mbedtls_ssl_read() for more information on
-         * that error code). Applications unaware of that TLS 1.3 specific non
-         * fatal error code are then failing.
-         */
-        mbedtls_ssl_conf_tls13_enable_signal_new_session_tickets(
-            conf, MBEDTLS_SSL_TLS1_3_SIGNAL_NEW_SESSION_TICKETS_DISABLED);
-#endif
+        conf->session_tickets = MBEDTLS_SSL_SESSION_TICKETS_ENABLED;
 #endif
     }
 #endif
@@ -5991,21 +5475,6 @@ int mbedtls_ssl_config_defaults(mbedtls_ssl_config *conf,
     memset(conf->renego_period + 2, 0xFF, 6);
 #endif

-#if defined(MBEDTLS_DHM_C) && defined(MBEDTLS_SSL_SRV_C)
-    if (endpoint == MBEDTLS_SSL_IS_SERVER) {
-        const unsigned char dhm_p[] =
-            MBEDTLS_DHM_RFC3526_MODP_2048_P_BIN;
-        const unsigned char dhm_g[] =
-            MBEDTLS_DHM_RFC3526_MODP_2048_G_BIN;
-
-        if ((ret = mbedtls_ssl_conf_dh_param_bin(conf,
-                                                 dhm_p, sizeof(dhm_p),
-                                                 dhm_g, sizeof(dhm_g))) != 0) {
-            return ret;
-        }
-    }
-#endif
-
 #if defined(MBEDTLS_SSL_PROTO_TLS1_3)

 #if defined(MBEDTLS_SSL_EARLY_DATA)
@@ -6071,9 +5540,6 @@ int mbedtls_ssl_config_defaults(mbedtls_ssl_config *conf,
             conf->sig_algs = ssl_preset_suiteb_sig_algs;
 #endif /* MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED */

-#if defined(MBEDTLS_ECP_C) && !defined(MBEDTLS_DEPRECATED_REMOVED)
-            conf->curve_list = NULL;
-#endif
             conf->group_list = ssl_preset_suiteb_groups;
             break;

@@ -6097,15 +5563,8 @@ int mbedtls_ssl_config_defaults(mbedtls_ssl_config *conf,
             conf->sig_algs = ssl_preset_default_sig_algs;
 #endif /* MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED */

-#if defined(MBEDTLS_ECP_C) && !defined(MBEDTLS_DEPRECATED_REMOVED)
-            conf->curve_list = NULL;
-#endif
             conf->group_list = ssl_preset_default_groups;
-
-#if defined(MBEDTLS_DHM_C) && defined(MBEDTLS_SSL_CLI_C)
-            conf->dhm_min_bitlen = 1024;
-#endif
-    }
+    }

     return 0;
 }
@@ -6119,17 +5578,10 @@ void mbedtls_ssl_config_free(mbedtls_ssl_config *conf)
         return;
     }

-#if defined(MBEDTLS_DHM_C)
-    mbedtls_mpi_free(&conf->dhm_P);
-    mbedtls_mpi_free(&conf->dhm_G);
-#endif
-
 #if defined(MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED)
-#if defined(MBEDTLS_USE_PSA_CRYPTO)
     if (!mbedtls_svc_key_id_is_null(conf->psk_opaque)) {
         conf->psk_opaque = MBEDTLS_SVC_KEY_ID_INIT;
     }
-#endif /* MBEDTLS_USE_PSA_CRYPTO */
     if (conf->psk != NULL) {
         mbedtls_zeroize_and_free(conf->psk, conf->psk_len);
         conf->psk = NULL;
@@ -6207,27 +5659,27 @@ mbedtls_pk_type_t mbedtls_ssl_pk_alg_from_sig(unsigned char sig)
 mbedtls_md_type_t mbedtls_ssl_md_alg_from_hash(unsigned char hash)
 {
     switch (hash) {
-#if defined(MBEDTLS_MD_CAN_MD5)
+#if defined(PSA_WANT_ALG_MD5)
         case MBEDTLS_SSL_HASH_MD5:
             return MBEDTLS_MD_MD5;
 #endif
-#if defined(MBEDTLS_MD_CAN_SHA1)
+#if defined(PSA_WANT_ALG_SHA_1)
         case MBEDTLS_SSL_HASH_SHA1:
             return MBEDTLS_MD_SHA1;
 #endif
-#if defined(MBEDTLS_MD_CAN_SHA224)
+#if defined(PSA_WANT_ALG_SHA_224)
         case MBEDTLS_SSL_HASH_SHA224:
             return MBEDTLS_MD_SHA224;
 #endif
-#if defined(MBEDTLS_MD_CAN_SHA256)
+#if defined(PSA_WANT_ALG_SHA_256)
         case MBEDTLS_SSL_HASH_SHA256:
             return MBEDTLS_MD_SHA256;
 #endif
-#if defined(MBEDTLS_MD_CAN_SHA384)
+#if defined(PSA_WANT_ALG_SHA_384)
         case MBEDTLS_SSL_HASH_SHA384:
             return MBEDTLS_MD_SHA384;
 #endif
-#if defined(MBEDTLS_MD_CAN_SHA512)
+#if defined(PSA_WANT_ALG_SHA_512)
         case MBEDTLS_SSL_HASH_SHA512:
             return MBEDTLS_MD_SHA512;
 #endif
@@ -6242,27 +5694,27 @@ mbedtls_md_type_t mbedtls_ssl_md_alg_from_hash(unsigned char hash)
 unsigned char mbedtls_ssl_hash_from_md_alg(int md)
 {
     switch (md) {
-#if defined(MBEDTLS_MD_CAN_MD5)
+#if defined(PSA_WANT_ALG_MD5)
         case MBEDTLS_MD_MD5:
             return MBEDTLS_SSL_HASH_MD5;
 #endif
-#if defined(MBEDTLS_MD_CAN_SHA1)
+#if defined(PSA_WANT_ALG_SHA_1)
         case MBEDTLS_MD_SHA1:
             return MBEDTLS_SSL_HASH_SHA1;
 #endif
-#if defined(MBEDTLS_MD_CAN_SHA224)
+#if defined(PSA_WANT_ALG_SHA_224)
         case MBEDTLS_MD_SHA224:
             return MBEDTLS_SSL_HASH_SHA224;
 #endif
-#if defined(MBEDTLS_MD_CAN_SHA256)
+#if defined(PSA_WANT_ALG_SHA_256)
         case MBEDTLS_MD_SHA256:
             return MBEDTLS_SSL_HASH_SHA256;
 #endif
-#if defined(MBEDTLS_MD_CAN_SHA384)
+#if defined(PSA_WANT_ALG_SHA_384)
         case MBEDTLS_MD_SHA384:
             return MBEDTLS_SSL_HASH_SHA384;
 #endif
-#if defined(MBEDTLS_MD_CAN_SHA512)
+#if defined(PSA_WANT_ALG_SHA_512)
         case MBEDTLS_MD_SHA512:
             return MBEDTLS_SSL_HASH_SHA512;
 #endif
@@ -6277,7 +5729,7 @@ unsigned char mbedtls_ssl_hash_from_md_alg(int md)
  */
 int mbedtls_ssl_check_curve_tls_id(const mbedtls_ssl_context *ssl, uint16_t tls_id)
 {
-    const uint16_t *group_list = mbedtls_ssl_get_groups(ssl);
+    const uint16_t *group_list = ssl->conf->group_list;

     if (group_list == NULL) {
         return -1;
@@ -6292,7 +5744,7 @@ int mbedtls_ssl_check_curve_tls_id(const mbedtls_ssl_context *ssl, uint16_t tls_
     return -1;
 }

-#if defined(MBEDTLS_PK_HAVE_ECC_KEYS)
+#if defined(PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY)
 /*
  * Same as mbedtls_ssl_check_curve_tls_id() but with a mbedtls_ecp_group_id.
  */
@@ -6306,7 +5758,7 @@ int mbedtls_ssl_check_curve(const mbedtls_ssl_context *ssl, mbedtls_ecp_group_id

     return mbedtls_ssl_check_curve_tls_id(ssl, tls_id);
 }
-#endif /* MBEDTLS_PK_HAVE_ECC_KEYS */
+#endif /* PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY */

 static const struct {
     uint16_t tls_id;
@@ -6315,43 +5767,31 @@ static const struct {
     uint16_t bits;
 } tls_id_match_table[] =
 {
-#if defined(MBEDTLS_ECP_HAVE_SECP521R1)
+#if defined(PSA_WANT_ECC_SECP_R1_521)
     { 25, MBEDTLS_ECP_DP_SECP521R1, PSA_ECC_FAMILY_SECP_R1, 521 },
 #endif
-#if defined(MBEDTLS_ECP_HAVE_BP512R1)
+#if defined(PSA_WANT_ECC_BRAINPOOL_P_R1_512)
     { 28, MBEDTLS_ECP_DP_BP512R1, PSA_ECC_FAMILY_BRAINPOOL_P_R1, 512 },
 #endif
-#if defined(MBEDTLS_ECP_HAVE_SECP384R1)
+#if defined(PSA_WANT_ECC_SECP_R1_384)
     { 24, MBEDTLS_ECP_DP_SECP384R1, PSA_ECC_FAMILY_SECP_R1, 384 },
 #endif
-#if defined(MBEDTLS_ECP_HAVE_BP384R1)
+#if defined(PSA_WANT_ECC_BRAINPOOL_P_R1_384)
     { 27, MBEDTLS_ECP_DP_BP384R1, PSA_ECC_FAMILY_BRAINPOOL_P_R1, 384 },
 #endif
-#if defined(MBEDTLS_ECP_HAVE_SECP256R1)
+#if defined(PSA_WANT_ECC_SECP_R1_256)
     { 23, MBEDTLS_ECP_DP_SECP256R1, PSA_ECC_FAMILY_SECP_R1, 256 },
 #endif
-#if defined(MBEDTLS_ECP_HAVE_SECP256K1)
+#if defined(PSA_WANT_ECC_SECP_K1_256)
     { 22, MBEDTLS_ECP_DP_SECP256K1, PSA_ECC_FAMILY_SECP_K1, 256 },
 #endif
-#if defined(MBEDTLS_ECP_HAVE_BP256R1)
+#if defined(PSA_WANT_ECC_BRAINPOOL_P_R1_256)
     { 26, MBEDTLS_ECP_DP_BP256R1, PSA_ECC_FAMILY_BRAINPOOL_P_R1, 256 },
 #endif
-#if defined(MBEDTLS_ECP_HAVE_SECP224R1)
-    { 21, MBEDTLS_ECP_DP_SECP224R1, PSA_ECC_FAMILY_SECP_R1, 224 },
-#endif
-#if defined(MBEDTLS_ECP_HAVE_SECP224K1)
-    { 20, MBEDTLS_ECP_DP_SECP224K1, PSA_ECC_FAMILY_SECP_K1, 224 },
-#endif
-#if defined(MBEDTLS_ECP_HAVE_SECP192R1)
-    { 19, MBEDTLS_ECP_DP_SECP192R1, PSA_ECC_FAMILY_SECP_R1, 192 },
-#endif
-#if defined(MBEDTLS_ECP_HAVE_SECP192K1)
-    { 18, MBEDTLS_ECP_DP_SECP192K1, PSA_ECC_FAMILY_SECP_K1, 192 },
-#endif
-#if defined(MBEDTLS_ECP_HAVE_CURVE25519)
+#if defined(PSA_WANT_ECC_MONTGOMERY_255)
     { 29, MBEDTLS_ECP_DP_CURVE25519, PSA_ECC_FAMILY_MONTGOMERY, 255 },
 #endif
-#if defined(MBEDTLS_ECP_HAVE_CURVE448)
+#if defined(PSA_WANT_ECC_MONTGOMERY_448)
     { 30, MBEDTLS_ECP_DP_CURVE448, PSA_ECC_FAMILY_MONTGOMERY, 448 },
 #endif
     { 0, MBEDTLS_ECP_DP_NONE, 0, 0 },
@@ -6412,10 +5852,6 @@ static const struct {
     { MBEDTLS_SSL_IANA_TLS_GROUP_SECP256R1, "secp256r1" },
     { MBEDTLS_SSL_IANA_TLS_GROUP_SECP256K1, "secp256k1" },
     { MBEDTLS_SSL_IANA_TLS_GROUP_BP256R1, "brainpoolP256r1" },
-    { MBEDTLS_SSL_IANA_TLS_GROUP_SECP224R1, "secp224r1" },
-    { MBEDTLS_SSL_IANA_TLS_GROUP_SECP224K1, "secp224k1" },
-    { MBEDTLS_SSL_IANA_TLS_GROUP_SECP192R1, "secp192r1" },
-    { MBEDTLS_SSL_IANA_TLS_GROUP_SECP192K1, "secp192k1" },
     { MBEDTLS_SSL_IANA_TLS_GROUP_X25519, "x25519" },
     { MBEDTLS_SSL_IANA_TLS_GROUP_X448, "x448" },
     { 0, NULL },
@@ -6433,7 +5869,6 @@ const char *mbedtls_ssl_get_curve_name_from_tls_id(uint16_t tls_id)
 }
 #endif

-#if defined(MBEDTLS_USE_PSA_CRYPTO)
 int mbedtls_ssl_get_handshake_transcript(mbedtls_ssl_context *ssl,
                                          const mbedtls_md_type_t md,
                                          unsigned char *dst,
@@ -6447,13 +5882,13 @@ int mbedtls_ssl_get_handshake_transcript(mbedtls_ssl_context *ssl,
     *olen = 0;

     switch (md) {
-#if defined(MBEDTLS_MD_CAN_SHA384)
+#if defined(PSA_WANT_ALG_SHA_384)
         case MBEDTLS_MD_SHA384:
             hash_operation_to_clone = &ssl->handshake->fin_sha384_psa;
             break;
 #endif

-#if defined(MBEDTLS_MD_CAN_SHA256)
+#if defined(PSA_WANT_ALG_SHA_256)
         case MBEDTLS_MD_SHA256:
             hash_operation_to_clone = &ssl->handshake->fin_sha256_psa;
             break;
@@ -6474,122 +5909,12 @@ int mbedtls_ssl_get_handshake_transcript(mbedtls_ssl_context *ssl,
     }

 exit:
-#if !defined(MBEDTLS_MD_CAN_SHA384) && \
-    !defined(MBEDTLS_MD_CAN_SHA256)
+#if !defined(PSA_WANT_ALG_SHA_384) && \
+    !defined(PSA_WANT_ALG_SHA_256)
     (void) ssl;
 #endif
     return PSA_TO_MBEDTLS_ERR(status);
 }
-#else /* MBEDTLS_USE_PSA_CRYPTO */
-
-#if defined(MBEDTLS_MD_CAN_SHA384)
-MBEDTLS_CHECK_RETURN_CRITICAL
-static int ssl_get_handshake_transcript_sha384(mbedtls_ssl_context *ssl,
-                                               unsigned char *dst,
-                                               size_t dst_len,
-                                               size_t *olen)
-{
-    int ret;
-    mbedtls_md_context_t sha384;
-
-    if (dst_len < 48) {
-        return MBEDTLS_ERR_SSL_INTERNAL_ERROR;
-    }
-
-    mbedtls_md_init(&sha384);
-    ret = mbedtls_md_setup(&sha384, mbedtls_md_info_from_type(MBEDTLS_MD_SHA384), 0);
-    if (ret != 0) {
-        goto exit;
-    }
-    ret = mbedtls_md_clone(&sha384, &ssl->handshake->fin_sha384);
-    if (ret != 0) {
-        goto exit;
-    }
-
-    if ((ret = mbedtls_md_finish(&sha384, dst)) != 0) {
-        MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_md_finish", ret);
-        goto exit;
-    }
-
-    *olen = 48;
-
-exit:
-
-    mbedtls_md_free(&sha384);
-    return ret;
-}
-#endif /* MBEDTLS_MD_CAN_SHA384 */
-
-#if defined(MBEDTLS_MD_CAN_SHA256)
-MBEDTLS_CHECK_RETURN_CRITICAL
-static int ssl_get_handshake_transcript_sha256(mbedtls_ssl_context *ssl,
-                                               unsigned char *dst,
-                                               size_t dst_len,
-                                               size_t *olen)
-{
-    int ret;
-    mbedtls_md_context_t sha256;
-
-    if (dst_len < 32) {
-        return MBEDTLS_ERR_SSL_INTERNAL_ERROR;
-    }
-
-    mbedtls_md_init(&sha256);
-    ret = mbedtls_md_setup(&sha256, mbedtls_md_info_from_type(MBEDTLS_MD_SHA256), 0);
-    if (ret != 0) {
-        goto exit;
-    }
-    ret = mbedtls_md_clone(&sha256, &ssl->handshake->fin_sha256);
-    if (ret != 0) {
-        goto exit;
-    }
-
-    if ((ret = mbedtls_md_finish(&sha256, dst)) != 0) {
-        MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_md_finish", ret);
-        goto exit;
-    }
-
-    *olen = 32;
-
-exit:
-
-    mbedtls_md_free(&sha256);
-    return ret;
-}
-#endif /* MBEDTLS_MD_CAN_SHA256 */
-
-int mbedtls_ssl_get_handshake_transcript(mbedtls_ssl_context *ssl,
-                                         const mbedtls_md_type_t md,
-                                         unsigned char *dst,
-                                         size_t dst_len,
-                                         size_t *olen)
-{
-    switch (md) {
-
-#if defined(MBEDTLS_MD_CAN_SHA384)
-        case MBEDTLS_MD_SHA384:
-            return ssl_get_handshake_transcript_sha384(ssl, dst, dst_len, olen);
-#endif /* MBEDTLS_MD_CAN_SHA384*/
-
-#if defined(MBEDTLS_MD_CAN_SHA256)
-        case MBEDTLS_MD_SHA256:
-            return ssl_get_handshake_transcript_sha256(ssl, dst, dst_len, olen);
-#endif /* MBEDTLS_MD_CAN_SHA256*/
-
-        default:
-#if !defined(MBEDTLS_MD_CAN_SHA384) && \
-            !defined(MBEDTLS_MD_CAN_SHA256)
-            (void) ssl;
-            (void) dst;
-            (void) dst_len;
-            (void) olen;
-#endif
-            break;
-    }
-    return MBEDTLS_ERR_SSL_INTERNAL_ERROR;
-}
-
-#endif /* !MBEDTLS_USE_PSA_CRYPTO */

 #if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED)
 /* mbedtls_ssl_parse_sig_alg_ext()
@@ -6698,7 +6023,6 @@ int mbedtls_ssl_parse_sig_alg_ext(mbedtls_ssl_context *ssl,

 #if defined(MBEDTLS_SSL_PROTO_TLS1_2)

-#if defined(MBEDTLS_USE_PSA_CRYPTO)

 static psa_status_t setup_psa_key_derivation(psa_key_derivation_operation_t *derivation,
                                              mbedtls_svc_key_id_t key,
@@ -6841,118 +6165,8 @@ static int tls_prf_generic(mbedtls_md_type_t md_type,
     return 0;
 }
 #endif /* PSA_WANT_ALG_SHA_256 || PSA_WANT_ALG_SHA_384 */
-#else /* MBEDTLS_USE_PSA_CRYPTO */

-#if defined(MBEDTLS_MD_C) &&       \
-    (defined(MBEDTLS_MD_CAN_SHA256) || \
-    defined(MBEDTLS_MD_CAN_SHA384))
-MBEDTLS_CHECK_RETURN_CRITICAL
-static int tls_prf_generic(mbedtls_md_type_t md_type,
-                           const unsigned char *secret, size_t slen,
-                           const char *label, size_t label_len,
-                           const unsigned char *random, size_t rlen,
-                           unsigned char *dstbuf, size_t dlen)
-{
-    size_t nb;
-    size_t i, j, k, md_len;
-    unsigned char *tmp;
-    size_t tmp_len = 0;
-    unsigned char h_i[MBEDTLS_MD_MAX_SIZE];
-    const mbedtls_md_info_t *md_info;
-    mbedtls_md_context_t md_ctx;
-    int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
-
-    mbedtls_md_init(&md_ctx);
-
-    if ((md_info = mbedtls_md_info_from_type(md_type)) == NULL) {
-        return MBEDTLS_ERR_SSL_INTERNAL_ERROR;
-    }
-
-    md_len = mbedtls_md_get_size(md_info);
-
-    tmp_len = md_len + label_len + rlen;
-    tmp = mbedtls_calloc(1, tmp_len);
-    if (tmp == NULL) {
-        ret = MBEDTLS_ERR_SSL_ALLOC_FAILED;
-        goto exit;
-    }
-
-    nb = label_len;
-    memcpy(tmp + md_len, label, nb);
-    memcpy(tmp + md_len + nb, random, rlen);
-    nb += rlen;
-
-    /*
-     * Compute P_<hash>(secret, label + random)[0..dlen]
-     */
-    if ((ret = mbedtls_md_setup(&md_ctx, md_info, 1)) != 0) {
-        goto exit;
-    }
-
-    ret = mbedtls_md_hmac_starts(&md_ctx, secret, slen);
-    if (ret != 0) {
-        goto exit;
-    }
-    ret = mbedtls_md_hmac_update(&md_ctx, tmp + md_len, nb);
-    if (ret != 0) {
-        goto exit;
-    }
-    ret = mbedtls_md_hmac_finish(&md_ctx, tmp);
-    if (ret != 0) {
-        goto exit;
-    }
-
-    for (i = 0; i < dlen; i += md_len) {
-        ret = mbedtls_md_hmac_reset(&md_ctx);
-        if (ret != 0) {
-            goto exit;
-        }
-        ret = mbedtls_md_hmac_update(&md_ctx, tmp, md_len + nb);
-        if (ret != 0) {
-            goto exit;
-        }
-        ret = mbedtls_md_hmac_finish(&md_ctx, h_i);
-        if (ret != 0) {
-            goto exit;
-        }
-
-        ret = mbedtls_md_hmac_reset(&md_ctx);
-        if (ret != 0) {
-            goto exit;
-        }
-        ret = mbedtls_md_hmac_update(&md_ctx, tmp, md_len);
-        if (ret != 0) {
-            goto exit;
-        }
-        ret = mbedtls_md_hmac_finish(&md_ctx, tmp);
-        if (ret != 0) {
-            goto exit;
-        }
-
-        k = (i + md_len > dlen) ? dlen % md_len : md_len;
-
-        for (j = 0; j < k; j++) {
-            dstbuf[i + j]  = h_i[j];
-        }
-    }
-
-exit:
-    mbedtls_md_free(&md_ctx);
-
-    if (tmp != NULL) {
-        mbedtls_platform_zeroize(tmp, tmp_len);
-    }
-
-    mbedtls_platform_zeroize(h_i, sizeof(h_i));
-
-    mbedtls_free(tmp);
-
-    return ret;
-}
-#endif /* MBEDTLS_MD_C && ( MBEDTLS_MD_CAN_SHA256 || MBEDTLS_MD_CAN_SHA384 ) */
-#endif /* MBEDTLS_USE_PSA_CRYPTO */
-
-#if defined(MBEDTLS_MD_CAN_SHA256)
+#if defined(PSA_WANT_ALG_SHA_256)
 MBEDTLS_CHECK_RETURN_CRITICAL
 static int tls_prf_sha256(const unsigned char *secret, size_t slen,
                           const char *label,
@@ -6962,9 +6176,9 @@ static int tls_prf_sha256(const unsigned char *secret, size_t slen,
     return tls_prf_generic(MBEDTLS_MD_SHA256, secret, slen,
                            label, strlen(label), random, rlen, dstbuf, dlen);
 }
-#endif /* MBEDTLS_MD_CAN_SHA256*/
+#endif /* PSA_WANT_ALG_SHA_256*/

-#if defined(MBEDTLS_MD_CAN_SHA384)
+#if defined(PSA_WANT_ALG_SHA_384)
 MBEDTLS_CHECK_RETURN_CRITICAL
 static int tls_prf_sha384(const unsigned char *secret, size_t slen,
                           const char *label,
@@ -6974,7 +6188,7 @@ static int tls_prf_sha384(const unsigned char *secret, size_t slen,
     return tls_prf_generic(MBEDTLS_MD_SHA384, secret, slen,
                            label, strlen(label), random, rlen, dstbuf, dlen);
 }
-#endif /* MBEDTLS_MD_CAN_SHA384*/
+#endif /* PSA_WANT_ALG_SHA_384*/

 /*
  * Set appropriate PRF function and other SSL / TLS1.2 functions
@@ -6989,14 +6203,14 @@ MBEDTLS_CHECK_RETURN_CRITICAL
 static int ssl_set_handshake_prfs(mbedtls_ssl_handshake_params *handshake,
                                   mbedtls_md_type_t hash)
 {
-#if defined(MBEDTLS_MD_CAN_SHA384)
+#if defined(PSA_WANT_ALG_SHA_384)
     if (hash == MBEDTLS_MD_SHA384) {
         handshake->tls_prf = tls_prf_sha384;
         handshake->calc_verify = ssl_calc_verify_tls_sha384;
         handshake->calc_finished = ssl_calc_finished_tls_sha384;
     } else
 #endif
-#if defined(MBEDTLS_MD_CAN_SHA256)
+#if defined(PSA_WANT_ALG_SHA_256)
     {
         (void) hash;
         handshake->tls_prf = tls_prf_sha256;
@@ -7061,8 +6275,7 @@ static int ssl_compute_master(mbedtls_ssl_handshake_params *handshake,

 #if !defined(MBEDTLS_DEBUG_C) &&                    \
     !defined(MBEDTLS_SSL_EXTENDED_MASTER_SECRET) && \
-    !(defined(MBEDTLS_USE_PSA_CRYPTO) &&            \
-    defined(MBEDTLS_KEY_EXCHANGE_PSK_ENABLED))
+    !defined(MBEDTLS_KEY_EXCHANGE_PSK_ENABLED)
     ssl = NULL; /* make sure we don't use it except for those cases */
     (void) ssl;
 #endif
@@ -7086,8 +6299,7 @@ static int ssl_compute_master(mbedtls_ssl_handshake_params *handshake,
     }
 #endif /* MBEDTLS_SSL_EXTENDED_MASTER_SECRET */

-#if defined(MBEDTLS_USE_PSA_CRYPTO) &&                   \
-    defined(MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED)
+#if defined(MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED)
     if (mbedtls_ssl_ciphersuite_uses_psk(handshake->ciphersuite_info) == 1) {
         /* Perform PSK-to-MS expansion in a single step. */
         psa_status_t status;
@@ -7115,13 +6327,7 @@ static int ssl_compute_master(mbedtls_ssl_handshake_params *handshake,
              * Other secret is stored in premaster, where first 2 bytes hold the
              * length of the other key.
              */
-            case MBEDTLS_KEY_EXCHANGE_RSA_PSK:
-                /* For RSA-PSK other key length is always 48 bytes. */
-                other_secret_len = 48;
-                other_secret = handshake->premaster + 2;
-                break;
             case MBEDTLS_KEY_EXCHANGE_ECDHE_PSK:
-            case MBEDTLS_KEY_EXCHANGE_DHE_PSK:
                 other_secret_len = MBEDTLS_GET_UINT16_BE(handshake->premaster, 0);
                 other_secret = handshake->premaster + 2;
                 break;
@@ -7156,8 +6362,7 @@ static int ssl_compute_master(mbedtls_ssl_handshake_params *handshake,
     } else
 #endif
     {
-#if defined(MBEDTLS_USE_PSA_CRYPTO) &&                              \
-        defined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED)
+#if defined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED)
         if (handshake->ciphersuite_info->key_exchange == MBEDTLS_KEY_EXCHANGE_ECJPAKE) {
             psa_status_t status;
             psa_algorithm_t alg = PSA_ALG_TLS12_ECJPAKE_TO_PMS;
@@ -7180,8 +6385,28 @@ static int ssl_compute_master(mbedtls_ssl_handshake_params *handshake,
                 return MBEDTLS_ERR_SSL_HW_ACCEL_FAILED;
             }

-            status = psa_pake_get_implicit_key(&handshake->psa_pake_ctx,
-                                               &derivation);
+            mbedtls_svc_key_id_t shared_key_id = MBEDTLS_SVC_KEY_ID_INIT;
+
+            psa_key_attributes_t shared_key_attributes = PSA_KEY_ATTRIBUTES_INIT;
+            psa_set_key_usage_flags(&shared_key_attributes, PSA_KEY_USAGE_DERIVE);
+            psa_set_key_algorithm(&shared_key_attributes, alg);
+            psa_set_key_type(&shared_key_attributes, PSA_KEY_TYPE_DERIVE);
+
+            status = psa_pake_get_shared_key(&handshake->psa_pake_ctx,
+                                             &shared_key_attributes,
+                                             &shared_key_id);
+
+            if (status != PSA_SUCCESS) {
+                psa_key_derivation_abort(&derivation);
+                return MBEDTLS_ERR_SSL_HW_ACCEL_FAILED;
+            }
+
+            status = psa_key_derivation_input_key(&derivation,
+                                                  PSA_KEY_DERIVATION_INPUT_SECRET,
+                                                  shared_key_id);
+
+            psa_destroy_key(shared_key_id);
+
             if (status != PSA_SUCCESS) {
                 psa_key_derivation_abort(&derivation);
                 return MBEDTLS_ERR_SSL_HW_ACCEL_FAILED;
@@ -7286,12 +6511,12 @@ int mbedtls_ssl_derive_keys(mbedtls_ssl_context *ssl)
 int mbedtls_ssl_set_calc_verify_md(mbedtls_ssl_context *ssl, int md)
 {
     switch (md) {
-#if defined(MBEDTLS_MD_CAN_SHA384)
+#if defined(PSA_WANT_ALG_SHA_384)
         case MBEDTLS_SSL_HASH_SHA384:
             ssl->handshake->calc_verify = ssl_calc_verify_tls_sha384;
             break;
 #endif
-#if defined(MBEDTLS_MD_CAN_SHA256)
+#if defined(PSA_WANT_ALG_SHA_256)
         case MBEDTLS_SSL_HASH_SHA256:
             ssl->handshake->calc_verify = ssl_calc_verify_tls_sha256;
             break;
@@ -7299,14 +6524,13 @@ int mbedtls_ssl_set_calc_verify_md(mbedtls_ssl_context *ssl, int md)
         default:
             return -1;
     }
-#if !defined(MBEDTLS_MD_CAN_SHA384) && \
-    !defined(MBEDTLS_MD_CAN_SHA256)
+#if !defined(PSA_WANT_ALG_SHA_384) && \
+    !defined(PSA_WANT_ALG_SHA_256)
     (void) ssl;
 #endif
     return 0;
 }

-#if defined(MBEDTLS_USE_PSA_CRYPTO)
 static int ssl_calc_verify_tls_psa(const mbedtls_ssl_context *ssl,
                                    const psa_hash_operation_t *hs_op,
                                    size_t buffer_size,
@@ -7337,202 +6561,26 @@ exit:
     psa_hash_abort(&cloned_op);
     return mbedtls_md_error_from_psa(status);
 }
-#else
-static int ssl_calc_verify_tls_legacy(const mbedtls_ssl_context *ssl,
-                                      const mbedtls_md_context_t *hs_ctx,
-                                      unsigned char *hash,
-                                      size_t *hlen)
-{
-    int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
-    mbedtls_md_context_t cloned_ctx;
-
-    mbedtls_md_init(&cloned_ctx);
-
-#if !defined(MBEDTLS_DEBUG_C)
-    (void) ssl;
-#endif
-    MBEDTLS_SSL_DEBUG_MSG(2, ("=> calc verify"));
-
-    ret = mbedtls_md_setup(&cloned_ctx, mbedtls_md_info_from_ctx(hs_ctx), 0);
-    if (ret != 0) {
-        goto exit;
-    }
-    ret = mbedtls_md_clone(&cloned_ctx, hs_ctx);
-    if (ret != 0) {
-        goto exit;
-    }
-
-    ret = mbedtls_md_finish(&cloned_ctx, hash);
-    if (ret != 0) {
-        goto exit;
-    }
-
-    *hlen = mbedtls_md_get_size(mbedtls_md_info_from_ctx(hs_ctx));
-
-    MBEDTLS_SSL_DEBUG_BUF(3, "calculated verify result", hash, *hlen);
-    MBEDTLS_SSL_DEBUG_MSG(2, ("<= calc verify"));
-
-exit:
-    mbedtls_md_free(&cloned_ctx);
-    return ret;
-}
-#endif /* MBEDTLS_USE_PSA_CRYPTO */

-#if defined(MBEDTLS_MD_CAN_SHA256)
+#if defined(PSA_WANT_ALG_SHA_256)
 int ssl_calc_verify_tls_sha256(const mbedtls_ssl_context *ssl,
                                unsigned char *hash,
                                size_t *hlen)
 {
-#if defined(MBEDTLS_USE_PSA_CRYPTO)
     return ssl_calc_verify_tls_psa(ssl, &ssl->handshake->fin_sha256_psa, 32,
                                    hash, hlen);
-#else
-    return ssl_calc_verify_tls_legacy(ssl, &ssl->handshake->fin_sha256,
-                                      hash, hlen);
-#endif /* MBEDTLS_USE_PSA_CRYPTO */
 }
-#endif /* MBEDTLS_MD_CAN_SHA256 */
+#endif /* PSA_WANT_ALG_SHA_256 */

-#if defined(MBEDTLS_MD_CAN_SHA384)
+#if defined(PSA_WANT_ALG_SHA_384)
 int ssl_calc_verify_tls_sha384(const mbedtls_ssl_context *ssl,
                                unsigned char *hash,
                                size_t *hlen)
 {
-#if defined(MBEDTLS_USE_PSA_CRYPTO)
     return ssl_calc_verify_tls_psa(ssl, &ssl->handshake->fin_sha384_psa, 48,
                                    hash, hlen);
-#else
-    return ssl_calc_verify_tls_legacy(ssl, &ssl->handshake->fin_sha384,
-                                      hash, hlen);
-#endif /* MBEDTLS_USE_PSA_CRYPTO */
 }
-#endif /* MBEDTLS_MD_CAN_SHA384 */
-
-#if !defined(MBEDTLS_USE_PSA_CRYPTO) &&                      \
-    defined(MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED)
-int mbedtls_ssl_psk_derive_premaster(mbedtls_ssl_context *ssl, mbedtls_key_exchange_type_t key_ex)
-{
-    unsigned char *p = ssl->handshake->premaster;
-    unsigned char *end = p + sizeof(ssl->handshake->premaster);
-    const unsigned char *psk = NULL;
-    size_t psk_len = 0;
-    int psk_ret = mbedtls_ssl_get_psk(ssl, &psk, &psk_len);
-
-    if (psk_ret == MBEDTLS_ERR_SSL_PRIVATE_KEY_REQUIRED) {
-        /*
-         * This should never happen because the existence of a PSK is always
-         * checked before calling this function.
-         *
-         * The exception is opaque DHE-PSK. For DHE-PSK fill premaster with
-         * the shared secret without PSK.
-         */
-        if (key_ex != MBEDTLS_KEY_EXCHANGE_DHE_PSK) {
-            MBEDTLS_SSL_DEBUG_MSG(1, ("should never happen"));
-            return MBEDTLS_ERR_SSL_INTERNAL_ERROR;
-        }
-    }
-
-    /*
-     * PMS = struct {
-     *     opaque other_secret<0..2^16-1>;
-     *     opaque psk<0..2^16-1>;
-     * };
-     * with "other_secret" depending on the particular key exchange
-     */
-#if defined(MBEDTLS_KEY_EXCHANGE_PSK_ENABLED)
-    if (key_ex == MBEDTLS_KEY_EXCHANGE_PSK) {
-        if (end - p < 2) {
-            return MBEDTLS_ERR_SSL_BAD_INPUT_DATA;
-        }
-
-        MBEDTLS_PUT_UINT16_BE(psk_len, p, 0);
-        p += 2;
-
-        if (end < p || (size_t) (end - p) < psk_len) {
-            return MBEDTLS_ERR_SSL_BAD_INPUT_DATA;
-        }
-
-        memset(p, 0, psk_len);
-        p += psk_len;
-    } else
-#endif /* MBEDTLS_KEY_EXCHANGE_PSK_ENABLED */
-#if defined(MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED)
-    if (key_ex == MBEDTLS_KEY_EXCHANGE_RSA_PSK) {
-        /*
-         * other_secret already set by the ClientKeyExchange message,
-         * and is 48 bytes long
-         */
-        if (end - p < 2) {
-            return MBEDTLS_ERR_SSL_BAD_INPUT_DATA;
-        }
-
-        *p++ = 0;
-        *p++ = 48;
-        p += 48;
-    } else
-#endif /* MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED */
-#if defined(MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED)
-    if (key_ex == MBEDTLS_KEY_EXCHANGE_DHE_PSK) {
-        int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
-        size_t len;
-
-        /* Write length only when we know the actual value */
-        if ((ret = mbedtls_dhm_calc_secret(&ssl->handshake->dhm_ctx,
-                                           p + 2, (size_t) (end - (p + 2)), &len,
-                                           ssl->conf->f_rng, ssl->conf->p_rng)) != 0) {
-            MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_dhm_calc_secret", ret);
-            return ret;
-        }
-        MBEDTLS_PUT_UINT16_BE(len, p, 0);
-        p += 2 + len;
-
-        MBEDTLS_SSL_DEBUG_MPI(3, "DHM: K ", &ssl->handshake->dhm_ctx.K);
-    } else
-#endif /* MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED */
-#if defined(MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED)
-    if (key_ex == MBEDTLS_KEY_EXCHANGE_ECDHE_PSK) {
-        int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
-        size_t zlen;
-
-        if ((ret = mbedtls_ecdh_calc_secret(&ssl->handshake->ecdh_ctx, &zlen,
-                                            p + 2, (size_t) (end - (p + 2)),
-                                            ssl->conf->f_rng, ssl->conf->p_rng)) != 0) {
-            MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_ecdh_calc_secret", ret);
-            return ret;
-        }
-
-        MBEDTLS_PUT_UINT16_BE(zlen, p, 0);
-        p += 2 + zlen;
-
-        MBEDTLS_SSL_DEBUG_ECDH(3, &ssl->handshake->ecdh_ctx,
-                               MBEDTLS_DEBUG_ECDH_Z);
-    } else
-#endif /* MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED */
-    {
-        MBEDTLS_SSL_DEBUG_MSG(1, ("should never happen"));
-        return MBEDTLS_ERR_SSL_INTERNAL_ERROR;
-    }
-
-    /* opaque psk<0..2^16-1>; */
-    if (end - p < 2) {
-        return MBEDTLS_ERR_SSL_BAD_INPUT_DATA;
-    }
-
-    MBEDTLS_PUT_UINT16_BE(psk_len, p, 0);
-    p += 2;
-
-    if (end < p || (size_t) (end - p) < psk_len) {
-        return MBEDTLS_ERR_SSL_BAD_INPUT_DATA;
-    }
-
-    memcpy(p, psk, psk_len);
-    p += psk_len;
-
-    ssl->handshake->pmslen = (size_t) (p - ssl->handshake->premaster);
-
-    return 0;
-}
-#endif /* !MBEDTLS_USE_PSA_CRYPTO && MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED */
+#endif /* PSA_WANT_ALG_SHA_384 */

 #if defined(MBEDTLS_SSL_SRV_C) && defined(MBEDTLS_SSL_RENEGOTIATION)
 MBEDTLS_CHECK_RETURN_CRITICAL
@@ -7866,7 +6914,7 @@ static int ssl_parse_certificate_chain(mbedtls_ssl_context *ssl,
 #endif /* MBEDTLS_SSL_KEEP_PEER_CERTIFICATE */
         switch (ret) {
             case 0: /*ok*/
-            case MBEDTLS_ERR_X509_UNKNOWN_SIG_ALG + MBEDTLS_ERR_OID_NOT_FOUND:
+            case MBEDTLS_ERR_X509_UNKNOWN_OID:
                 /* Ignore certificate with an unknown algorithm: maybe a
                    prior certificate was already trusted. */
                 break;
@@ -7934,10 +6982,6 @@ static int ssl_parse_certificate_coordinate(mbedtls_ssl_context *ssl,

 #if defined(MBEDTLS_SSL_SRV_C)
     if (ssl->conf->endpoint == MBEDTLS_SSL_IS_SERVER) {
-        if (ciphersuite_info->key_exchange == MBEDTLS_KEY_EXCHANGE_RSA_PSK) {
-            return SSL_CERTIFICATE_SKIP;
-        }
-
         if (authmode == MBEDTLS_SSL_VERIFY_NONE) {
             ssl->session_negotiate->verify_result =
                 MBEDTLS_X509_BADCERT_SKIP_VERIFY;
@@ -8162,17 +7206,10 @@ static int ssl_calc_finished_tls_generic(mbedtls_ssl_context *ssl, void *ctx,
 {
     unsigned int len = 12;
     const char *sender;
-#if defined(MBEDTLS_USE_PSA_CRYPTO)
     psa_status_t status;
     psa_hash_operation_t *hs_op = ctx;
     psa_hash_operation_t cloned_op = PSA_HASH_OPERATION_INIT;
     size_t hash_size;
-#else
-    int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
-    mbedtls_md_context_t *hs_ctx = ctx;
-    mbedtls_md_context_t cloned_ctx;
-    mbedtls_md_init(&cloned_ctx);
-#endif

     mbedtls_ssl_session *session = ssl->session_negotiate;
     if (!session) {
@@ -8183,7 +7220,6 @@ static int ssl_calc_finished_tls_generic(mbedtls_ssl_context *ssl, void *ctx,
              ? "client finished"
              : "server finished";

-#if defined(MBEDTLS_USE_PSA_CRYPTO)
     MBEDTLS_SSL_DEBUG_MSG(2, ("=> calc PSA finished tls"));

     status = psa_hash_clone(hs_op, &cloned_op);
@@ -8196,23 +7232,6 @@ static int ssl_calc_finished_tls_generic(mbedtls_ssl_context *ssl, void *ctx,
         goto exit;
     }
     MBEDTLS_SSL_DEBUG_BUF(3, "PSA calculated padbuf", padbuf, hlen);
-#else
-    MBEDTLS_SSL_DEBUG_MSG(2, ("=> calc finished tls"));
-
-    ret = mbedtls_md_setup(&cloned_ctx, mbedtls_md_info_from_ctx(hs_ctx), 0);
-    if (ret != 0) {
-        goto exit;
-    }
-    ret = mbedtls_md_clone(&cloned_ctx, hs_ctx);
-    if (ret != 0) {
-        goto exit;
-    }
-
-    ret = mbedtls_md_finish(&cloned_ctx, padbuf);
-    if (ret != 0) {
-        goto exit;
-    }
-#endif /* MBEDTLS_USE_PSA_CRYPTO */

     MBEDTLS_SSL_DEBUG_BUF(4, "finished output", padbuf, hlen);

@@ -8231,47 +7250,34 @@ static int ssl_calc_finished_tls_generic(mbedtls_ssl_context *ssl, void *ctx,
     MBEDTLS_SSL_DEBUG_MSG(2, ("<= calc finished"));

 exit:
-#if defined(MBEDTLS_USE_PSA_CRYPTO)
     psa_hash_abort(&cloned_op);
     return mbedtls_md_error_from_psa(status);
-#else
-    mbedtls_md_free(&cloned_ctx);
-    return ret;
-#endif /* MBEDTLS_USE_PSA_CRYPTO */
 }

-#if defined(MBEDTLS_MD_CAN_SHA256)
+#if defined(PSA_WANT_ALG_SHA_256)
 static int ssl_calc_finished_tls_sha256(
     mbedtls_ssl_context *ssl, unsigned char *buf, int from)
 {
     unsigned char padbuf[32];
     return ssl_calc_finished_tls_generic(ssl,
-#if defined(MBEDTLS_USE_PSA_CRYPTO)
                                          &ssl->handshake->fin_sha256_psa,
-#else
-                                         &ssl->handshake->fin_sha256,
-#endif
                                          padbuf, sizeof(padbuf),
                                          buf, from);
 }
-#endif /* MBEDTLS_MD_CAN_SHA256*/
+#endif /* PSA_WANT_ALG_SHA_256*/


-#if defined(MBEDTLS_MD_CAN_SHA384)
+#if defined(PSA_WANT_ALG_SHA_384)
 static int ssl_calc_finished_tls_sha384(
     mbedtls_ssl_context *ssl, unsigned char *buf, int from)
 {
     unsigned char padbuf[48];
     return ssl_calc_finished_tls_generic(ssl,
-#if defined(MBEDTLS_USE_PSA_CRYPTO)
                                          &ssl->handshake->fin_sha384_psa,
-#else
-                                         &ssl->handshake->fin_sha384,
-#endif
                                          padbuf, sizeof(padbuf),
                                          buf, from);
 }
-#endif /* MBEDTLS_MD_CAN_SHA384*/
+#endif /* PSA_WANT_ALG_SHA_384*/

 void mbedtls_ssl_handshake_wrapup_free_hs_transform(mbedtls_ssl_context *ssl)
 {
@@ -8566,20 +7572,20 @@ static tls_prf_fn ssl_tls12prf_from_cs(int ciphersuite_id)
 {
     const mbedtls_ssl_ciphersuite_t * const ciphersuite_info =
         mbedtls_ssl_ciphersuite_from_id(ciphersuite_id);
-#if defined(MBEDTLS_MD_CAN_SHA384)
+#if defined(PSA_WANT_ALG_SHA_384)
     if (ciphersuite_info != NULL && ciphersuite_info->mac == MBEDTLS_MD_SHA384) {
         return tls_prf_sha384;
     } else
 #endif
-#if defined(MBEDTLS_MD_CAN_SHA256)
+#if defined(PSA_WANT_ALG_SHA_256)
     {
         if (ciphersuite_info != NULL && ciphersuite_info->mac == MBEDTLS_MD_SHA256) {
             return tls_prf_sha256;
         }
     }
 #endif
-#if !defined(MBEDTLS_MD_CAN_SHA384) && \
-    !defined(MBEDTLS_MD_CAN_SHA256)
+#if !defined(PSA_WANT_ALG_SHA_384) && \
+    !defined(PSA_WANT_ALG_SHA_256)
     (void) ciphersuite_info;
 #endif

@@ -8590,12 +7596,12 @@ static tls_prf_fn ssl_tls12prf_from_cs(int ciphersuite_id)
 static mbedtls_tls_prf_types tls_prf_get_type(mbedtls_ssl_tls_prf_cb *tls_prf)
 {
     ((void) tls_prf);
-#if defined(MBEDTLS_MD_CAN_SHA384)
+#if defined(PSA_WANT_ALG_SHA_384)
     if (tls_prf == tls_prf_sha384) {
         return MBEDTLS_SSL_TLS_PRF_SHA384;
     } else
 #endif
-#if defined(MBEDTLS_MD_CAN_SHA256)
+#if defined(PSA_WANT_ALG_SHA_256)
     if (tls_prf == tls_prf_sha256) {
         return MBEDTLS_SSL_TLS_PRF_SHA256;
     } else
@@ -8647,19 +7653,13 @@ static int ssl_tls12_populate_transform(mbedtls_ssl_transform *transform,
     size_t keylen;
     const mbedtls_ssl_ciphersuite_t *ciphersuite_info;
     mbedtls_ssl_mode_t ssl_mode;
-#if !defined(MBEDTLS_USE_PSA_CRYPTO)
-    const mbedtls_cipher_info_t *cipher_info;
-    const mbedtls_md_info_t *md_info;
-#endif /* !MBEDTLS_USE_PSA_CRYPTO */

-#if defined(MBEDTLS_USE_PSA_CRYPTO)
     psa_key_type_t key_type;
     psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT;
     psa_algorithm_t alg;
     psa_algorithm_t mac_alg = 0;
     size_t key_bits;
     psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED;
-#endif

     /*
      * Some data just needs copying into the structure
@@ -8702,7 +7702,6 @@ static int ssl_tls12_populate_transform(mbedtls_ssl_transform *transform,
             ciphersuite_info->flags & MBEDTLS_CIPHERSUITE_SHORT_TAG ? 8 : 16;
     }

-#if defined(MBEDTLS_USE_PSA_CRYPTO)
     if ((status = mbedtls_ssl_cipher_to_psa((mbedtls_cipher_type_t) ciphersuite_info->cipher,
                                             transform->taglen,
                                             &alg,
@@ -8712,30 +7711,13 @@ static int ssl_tls12_populate_transform(mbedtls_ssl_transform *transform,
         MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_ssl_cipher_to_psa", ret);
         goto end;
     }
-#else
-    cipher_info = mbedtls_cipher_info_from_type((mbedtls_cipher_type_t) ciphersuite_info->cipher);
-    if (cipher_info == NULL) {
-        MBEDTLS_SSL_DEBUG_MSG(1, ("cipher info for %u not found",
-                                  ciphersuite_info->cipher));
-        return MBEDTLS_ERR_SSL_BAD_INPUT_DATA;
-    }
-#endif /* MBEDTLS_USE_PSA_CRYPTO */

-#if defined(MBEDTLS_USE_PSA_CRYPTO)
     mac_alg = mbedtls_md_psa_alg_from_type((mbedtls_md_type_t) ciphersuite_info->mac);
     if (mac_alg == 0) {
         MBEDTLS_SSL_DEBUG_MSG(1, ("mbedtls_md_psa_alg_from_type for %u not found",
                                   (unsigned) ciphersuite_info->mac));
         return MBEDTLS_ERR_SSL_BAD_INPUT_DATA;
     }
-#else
-    md_info = mbedtls_md_info_from_type((mbedtls_md_type_t) ciphersuite_info->mac);
-    if (md_info == NULL) {
-        MBEDTLS_SSL_DEBUG_MSG(1, ("mbedtls_md info for %u not found",
-                                  (unsigned) ciphersuite_info->mac));
-        return MBEDTLS_ERR_SSL_BAD_INPUT_DATA;
-    }
-#endif /* MBEDTLS_USE_PSA_CRYPTO */

 #if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID)
     /* Copy own and peer's CID if the use of the CID
@@ -8775,11 +7757,7 @@ static int ssl_tls12_populate_transform(mbedtls_ssl_transform *transform,
      * Determine the appropriate key, IV and MAC length.
      */

-#if defined(MBEDTLS_USE_PSA_CRYPTO)
     keylen = PSA_BITS_TO_BYTES(key_bits);
-#else
-    keylen = mbedtls_cipher_info_get_key_bitlen(cipher_info) / 8;
-#endif

 #if defined(MBEDTLS_SSL_HAVE_AEAD)
     if (ssl_mode == MBEDTLS_SSL_MODE_AEAD) {
@@ -8799,12 +7777,7 @@ static int ssl_tls12_populate_transform(mbedtls_ssl_transform *transform,
         transform->ivlen = 12;

         int is_chachapoly = 0;
-#if defined(MBEDTLS_USE_PSA_CRYPTO)
         is_chachapoly = (key_type == PSA_KEY_TYPE_CHACHA20);
-#else
-        is_chachapoly = (mbedtls_cipher_info_get_mode(cipher_info)
-                         == MBEDTLS_MODE_CHACHAPOLY);
-#endif /* MBEDTLS_USE_PSA_CRYPTO */

         if (is_chachapoly) {
             transform->fixed_ivlen = 12;
@@ -8821,34 +7794,14 @@ static int ssl_tls12_populate_transform(mbedtls_ssl_transform *transform,
     if (ssl_mode == MBEDTLS_SSL_MODE_STREAM ||
         ssl_mode == MBEDTLS_SSL_MODE_CBC ||
         ssl_mode == MBEDTLS_SSL_MODE_CBC_ETM) {
-#if defined(MBEDTLS_USE_PSA_CRYPTO)
         size_t block_size = PSA_BLOCK_CIPHER_BLOCK_LENGTH(key_type);
-#else
-        size_t block_size = mbedtls_cipher_info_get_block_size(cipher_info);
-#endif /* MBEDTLS_USE_PSA_CRYPTO */

-#if defined(MBEDTLS_USE_PSA_CRYPTO)
         /* Get MAC length */
         mac_key_len = PSA_HASH_LENGTH(mac_alg);
-#else
-        /* Initialize HMAC contexts */
-        if ((ret = mbedtls_md_setup(&transform->md_ctx_enc, md_info, 1)) != 0 ||
-            (ret = mbedtls_md_setup(&transform->md_ctx_dec, md_info, 1)) != 0) {
-            MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_md_setup", ret);
-            goto end;
-        }
-
-        /* Get MAC length */
-        mac_key_len = mbedtls_md_get_size(md_info);
-#endif /* MBEDTLS_USE_PSA_CRYPTO */
         transform->maclen = mac_key_len;

         /* IV length */
-#if defined(MBEDTLS_USE_PSA_CRYPTO)
         transform->ivlen = PSA_CIPHER_IV_LENGTH(key_type, alg);
-#else
-        transform->ivlen = mbedtls_cipher_info_get_iv_size(cipher_info);
-#endif /* MBEDTLS_USE_PSA_CRYPTO */

         /* Minimum length */
         if (ssl_mode == MBEDTLS_SSL_MODE_STREAM) {
@@ -8941,7 +7894,6 @@ static int ssl_tls12_populate_transform(mbedtls_ssl_transform *transform,
                            tls_prf_get_type(tls_prf));
     }

-#if defined(MBEDTLS_USE_PSA_CRYPTO)
     transform->psa_alg = alg;

     if (alg != MBEDTLS_SSL_NULL_CIPHER) {
@@ -8970,55 +7922,11 @@ static int ssl_tls12_populate_transform(mbedtls_ssl_transform *transform,
             goto end;
         }
     }
-#else
-    if ((ret = mbedtls_cipher_setup(&transform->cipher_ctx_enc,
-                                    cipher_info)) != 0) {
-        MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_cipher_setup", ret);
-        goto end;
-    }
-
-    if ((ret = mbedtls_cipher_setup(&transform->cipher_ctx_dec,
-                                    cipher_info)) != 0) {
-        MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_cipher_setup", ret);
-        goto end;
-    }
-
-    if ((ret = mbedtls_cipher_setkey(&transform->cipher_ctx_enc, key1,
-                                     (int) mbedtls_cipher_info_get_key_bitlen(cipher_info),
-                                     MBEDTLS_ENCRYPT)) != 0) {
-        MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_cipher_setkey", ret);
-        goto end;
-    }
-
-    if ((ret = mbedtls_cipher_setkey(&transform->cipher_ctx_dec, key2,
-                                     (int) mbedtls_cipher_info_get_key_bitlen(cipher_info),
-                                     MBEDTLS_DECRYPT)) != 0) {
-        MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_cipher_setkey", ret);
-        goto end;
-    }
-
-#if defined(MBEDTLS_CIPHER_MODE_CBC)
-    if (mbedtls_cipher_info_get_mode(cipher_info) == MBEDTLS_MODE_CBC) {
-        if ((ret = mbedtls_cipher_set_padding_mode(&transform->cipher_ctx_enc,
-                                                   MBEDTLS_PADDING_NONE)) != 0) {
-            MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_cipher_set_padding_mode", ret);
-            goto end;
-        }
-
-        if ((ret = mbedtls_cipher_set_padding_mode(&transform->cipher_ctx_dec,
-                                                   MBEDTLS_PADDING_NONE)) != 0) {
-            MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_cipher_set_padding_mode", ret);
-            goto end;
-        }
-    }
-#endif /* MBEDTLS_CIPHER_MODE_CBC */
-#endif /* MBEDTLS_USE_PSA_CRYPTO */

 #if defined(MBEDTLS_SSL_SOME_SUITES_USE_MAC)
     /* For HMAC-based ciphersuites, initialize the HMAC transforms.
        For AEAD-based ciphersuites, there is nothing to do here. */
     if (mac_key_len != 0) {
-#if defined(MBEDTLS_USE_PSA_CRYPTO)
         transform->psa_mac_alg = PSA_ALG_HMAC(mac_alg);

         psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_SIGN_MESSAGE);
@@ -9053,16 +7961,6 @@ static int ssl_tls12_populate_transform(mbedtls_ssl_transform *transform,
             MBEDTLS_SSL_DEBUG_RET(1, "psa_import_mac_key", ret);
             goto end;
         }
-#else
-        ret = mbedtls_md_hmac_starts(&transform->md_ctx_enc, mac_enc, mac_key_len);
-        if (ret != 0) {
-            goto end;
-        }
-        ret = mbedtls_md_hmac_starts(&transform->md_ctx_dec, mac_dec, mac_key_len);
-        if (ret != 0) {
-            goto end;
-        }
-#endif /* MBEDTLS_USE_PSA_CRYPTO */
     }
 #endif /* MBEDTLS_SSL_SOME_SUITES_USE_MAC */

@@ -9074,8 +7972,7 @@ end:
     return ret;
 }

-#if defined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED) && \
-    defined(MBEDTLS_USE_PSA_CRYPTO)
+#if defined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED)
 int mbedtls_psa_ecjpake_read_round(
     psa_pake_operation_t *pake_ctx,
     const unsigned char *buf,
@@ -9159,9 +8056,8 @@ int mbedtls_psa_ecjpake_write_round(

     return 0;
 }
-#endif //MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED && MBEDTLS_USE_PSA_CRYPTO
+#endif /* MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED */

-#if defined(MBEDTLS_USE_PSA_CRYPTO)
 int mbedtls_ssl_get_key_exchange_md_tls1_2(mbedtls_ssl_context *ssl,
                                            unsigned char *hash, size_t *hashlen,
                                            unsigned char *data, size_t data_len,
@@ -9216,61 +8112,6 @@ exit:
     return 0;
 }

-#else
-
-int mbedtls_ssl_get_key_exchange_md_tls1_2(mbedtls_ssl_context *ssl,
-                                           unsigned char *hash, size_t *hashlen,
-                                           unsigned char *data, size_t data_len,
-                                           mbedtls_md_type_t md_alg)
-{
-    int ret = 0;
-    mbedtls_md_context_t ctx;
-    const mbedtls_md_info_t *md_info = mbedtls_md_info_from_type(md_alg);
-    *hashlen = mbedtls_md_get_size(md_info);
-
-    MBEDTLS_SSL_DEBUG_MSG(3, ("Perform mbedtls-based computation of digest of ServerKeyExchange"));
-
-    mbedtls_md_init(&ctx);
-
-    /*
-     * digitally-signed struct {
-     *     opaque client_random[32];
-     *     opaque server_random[32];
-     *     ServerDHParams params;
-     * };
-     */
-    if ((ret = mbedtls_md_setup(&ctx, md_info, 0)) != 0) {
-        MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_md_setup", ret);
-        goto exit;
-    }
-    if ((ret = mbedtls_md_starts(&ctx)) != 0) {
-        MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_md_starts", ret);
-        goto exit;
-    }
-    if ((ret = mbedtls_md_update(&ctx, ssl->handshake->randbytes, 64)) != 0) {
-        MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_md_update", ret);
-        goto exit;
-    }
-    if ((ret = mbedtls_md_update(&ctx, data, data_len)) != 0) {
-        MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_md_update", ret);
-        goto exit;
-    }
-    if ((ret = mbedtls_md_finish(&ctx, hash)) != 0) {
-        MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_md_finish", ret);
-        goto exit;
-    }
-
-exit:
-    mbedtls_md_free(&ctx);
-
-    if (ret != 0) {
-        mbedtls_ssl_send_alert_message(ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL,
-                                       MBEDTLS_SSL_ALERT_MSG_INTERNAL_ERROR);
-    }
-
-    return ret;
-}
-#endif /* MBEDTLS_USE_PSA_CRYPTO */

 #if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED)

@@ -9301,27 +8142,25 @@ unsigned int mbedtls_ssl_tls12_get_preferred_hash_for_sig_alg(
         }

         if (sig_alg == sig_alg_received) {
-#if defined(MBEDTLS_USE_PSA_CRYPTO)
             if (ssl->handshake->key_cert && ssl->handshake->key_cert->key) {
                 psa_algorithm_t psa_hash_alg =
                     mbedtls_md_psa_alg_from_type(md_alg);

                 if (sig_alg_received == MBEDTLS_SSL_SIG_ECDSA &&
-                    !mbedtls_pk_can_do_ext(ssl->handshake->key_cert->key,
-                                           PSA_ALG_ECDSA(psa_hash_alg),
+                    !mbedtls_pk_can_do_psa(ssl->handshake->key_cert->key,
+                                           MBEDTLS_PK_ALG_ECDSA(psa_hash_alg),
                                            PSA_KEY_USAGE_SIGN_HASH)) {
                     continue;
                 }

                 if (sig_alg_received == MBEDTLS_SSL_SIG_RSA &&
-                    !mbedtls_pk_can_do_ext(ssl->handshake->key_cert->key,
+                    !mbedtls_pk_can_do_psa(ssl->handshake->key_cert->key,
                                            PSA_ALG_RSA_PKCS1V15_SIGN(
                                                psa_hash_alg),
                                            PSA_KEY_USAGE_SIGN_HASH)) {
                     continue;
                 }
             }
-#endif /* MBEDTLS_USE_PSA_CRYPTO */

             return hash_alg_received;
         }
@@ -9353,14 +8192,8 @@ int mbedtls_ssl_validate_ciphersuite(

 #if defined(MBEDTLS_SSL_PROTO_TLS1_2) && defined(MBEDTLS_SSL_CLI_C)
 #if defined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED)
-#if defined(MBEDTLS_USE_PSA_CRYPTO)
     if (suite_info->key_exchange == MBEDTLS_KEY_EXCHANGE_ECJPAKE &&
-        ssl->handshake->psa_pake_ctx_is_ok != 1)
-#else
-    if (suite_info->key_exchange == MBEDTLS_KEY_EXCHANGE_ECJPAKE &&
-        mbedtls_ecjpake_check(&ssl->handshake->ecjpake_ctx) != 0)
-#endif /* MBEDTLS_USE_PSA_CRYPTO */
-    {
+        ssl->handshake->psa_pake_ctx_is_ok != 1) {
         return -1;
     }
 #endif
@@ -9612,7 +8445,7 @@ int mbedtls_ssl_parse_alpn_ext(mbedtls_ssl_context *ssl,
     }

     /* Use our order of preference */
-    for (const char **alpn = ssl->conf->alpn_list; *alpn != NULL; alpn++) {
+    for (const char *const *alpn = ssl->conf->alpn_list; *alpn != NULL; alpn++) {
         size_t const alpn_len = strlen(*alpn);
         p = protocol_name_list;
         while (p < protocol_name_list_end) {
@@ -9785,26 +8618,14 @@ int mbedtls_ssl_check_cert_usage(const mbedtls_x509_crt *cert,
         recv_endpoint == MBEDTLS_SSL_IS_CLIENT) {
         /* TLS 1.2 server part of the key exchange */
         switch (ciphersuite->key_exchange) {
-            case MBEDTLS_KEY_EXCHANGE_RSA:
-            case MBEDTLS_KEY_EXCHANGE_RSA_PSK:
-                usage = MBEDTLS_X509_KU_KEY_ENCIPHERMENT;
-                break;
-
-            case MBEDTLS_KEY_EXCHANGE_DHE_RSA:
             case MBEDTLS_KEY_EXCHANGE_ECDHE_RSA:
             case MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA:
                 usage = MBEDTLS_X509_KU_DIGITAL_SIGNATURE;
                 break;

-            case MBEDTLS_KEY_EXCHANGE_ECDH_RSA:
-            case MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA:
-                usage = MBEDTLS_X509_KU_KEY_AGREEMENT;
-                break;
-
             /* Don't use default: we want warnings when adding new values */
             case MBEDTLS_KEY_EXCHANGE_NONE:
             case MBEDTLS_KEY_EXCHANGE_PSK:
-            case MBEDTLS_KEY_EXCHANGE_DHE_PSK:
             case MBEDTLS_KEY_EXCHANGE_ECDHE_PSK:
             case MBEDTLS_KEY_EXCHANGE_ECJPAKE:
                 usage = 0;
@@ -9850,15 +8671,13 @@ static int get_hostname_for_verification(mbedtls_ssl_context *ssl,
 {
     if (!mbedtls_ssl_has_set_hostname_been_called(ssl)) {
         MBEDTLS_SSL_DEBUG_MSG(1, ("Certificate verification without having set hostname"));
-#if !defined(MBEDTLS_SSL_CLI_ALLOW_WEAK_CERTIFICATE_VERIFICATION_WITHOUT_HOSTNAME)
         if (mbedtls_ssl_conf_get_endpoint(ssl->conf) == MBEDTLS_SSL_IS_CLIENT &&
             ssl->conf->authmode == MBEDTLS_SSL_VERIFY_REQUIRED) {
             return MBEDTLS_ERR_SSL_CERTIFICATE_VERIFICATION_WITHOUT_HOSTNAME;
         }
-#endif
     }

-    *hostname = mbedtls_ssl_get_hostname_pointer(ssl);
+    *hostname = ssl->hostname;
     if (*hostname == NULL) {
         MBEDTLS_SSL_DEBUG_MSG(2, ("Certificate verification without CN verification"));
     }
@@ -9964,7 +8783,7 @@ int mbedtls_ssl_verify_certificate(mbedtls_ssl_context *ssl,
      * we validate the signature made with the key associated to this cert.
      */
 #if defined(MBEDTLS_SSL_PROTO_TLS1_2) && \
-    defined(MBEDTLS_PK_HAVE_ECC_KEYS)
+    defined(PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY)
     if (ssl->tls_version == MBEDTLS_SSL_VERSION_TLS1_2 &&
         mbedtls_pk_can_do(&chain->pk, MBEDTLS_PK_ECKEY)) {
         if (mbedtls_ssl_check_curve(ssl, mbedtls_pk_get_ec_group_id(&chain->pk)) != 0) {
@@ -9975,7 +8794,7 @@ int mbedtls_ssl_verify_certificate(mbedtls_ssl_context *ssl,
             }
         }
     }
-#endif /* MBEDTLS_SSL_PROTO_TLS1_2 && MBEDTLS_PK_HAVE_ECC_KEYS */
+#endif /* MBEDTLS_SSL_PROTO_TLS1_2 && PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY */

     /* Check X.509 usage extensions (keyUsage, extKeyUsage) */
     if (mbedtls_ssl_check_cert_usage(chain,
diff --git a/deps/LIEF/third-party/mbedtls/library/ssl_tls12_client.c b/deps/LIEF/third-party/mbedtls/library/ssl_tls12_client.c
index 791b84ee39d..7675f95e376 100644
--- a/deps/LIEF/third-party/mbedtls/library/ssl_tls12_client.c
+++ b/deps/LIEF/third-party/mbedtls/library/ssl_tls12_client.c
@@ -5,7 +5,7 @@
  *  SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
  */

-#include "common.h"
+#include "ssl_misc.h"

 #if defined(MBEDTLS_SSL_CLI_C) && defined(MBEDTLS_SSL_PROTO_TLS1_2)

@@ -13,12 +13,10 @@

 #include "mbedtls/ssl.h"
 #include "ssl_client.h"
-#include "ssl_misc.h"
 #include "debug_internal.h"
 #include "mbedtls/error.h"
 #include "mbedtls/constant_time.h"

-#if defined(MBEDTLS_USE_PSA_CRYPTO)
 #include "psa_util_internal.h"
 #include "psa/crypto.h"
 #if defined(MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED)
@@ -32,7 +30,6 @@ static int local_err_translation(psa_status_t status)
 }
 #define PSA_TO_MBEDTLS_ERR(status) local_err_translation(status)
 #endif /* MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED */
-#endif /* MBEDTLS_USE_PSA_CRYPTO */

 #include <string.h>

@@ -137,15 +134,9 @@ static int ssl_write_ecjpake_kkpp_ext(mbedtls_ssl_context *ssl,
     *olen = 0;

     /* Skip costly extension if we can't use EC J-PAKE anyway */
-#if defined(MBEDTLS_USE_PSA_CRYPTO)
     if (ssl->handshake->psa_pake_ctx_is_ok != 1) {
         return 0;
     }
-#else
-    if (mbedtls_ecjpake_check(&ssl->handshake->ecjpake_ctx) != 0) {
-        return 0;
-    }
-#endif /* MBEDTLS_USE_PSA_CRYPTO */

     MBEDTLS_SSL_DEBUG_MSG(3,
                           ("client hello, adding ecjpake_kkpp extension"));
@@ -164,7 +155,6 @@ static int ssl_write_ecjpake_kkpp_ext(mbedtls_ssl_context *ssl,
         ssl->handshake->ecjpake_cache_len == 0) {
         MBEDTLS_SSL_DEBUG_MSG(3, ("generating new ecjpake parameters"));

-#if defined(MBEDTLS_USE_PSA_CRYPTO)
         ret = mbedtls_psa_ecjpake_write_round(&ssl->handshake->psa_pake_ctx,
                                               p + 2, end - p - 2, &kkpp_len,
                                               MBEDTLS_ECJPAKE_ROUND_ONE);
@@ -174,16 +164,6 @@ static int ssl_write_ecjpake_kkpp_ext(mbedtls_ssl_context *ssl,
             MBEDTLS_SSL_DEBUG_RET(1, "psa_pake_output", ret);
             return ret;
         }
-#else
-        ret = mbedtls_ecjpake_write_round_one(&ssl->handshake->ecjpake_ctx,
-                                              p + 2, end - p - 2, &kkpp_len,
-                                              ssl->conf->f_rng, ssl->conf->p_rng);
-        if (ret != 0) {
-            MBEDTLS_SSL_DEBUG_RET(1,
-                                  "mbedtls_ecjpake_write_round_one", ret);
-            return ret;
-        }
-#endif /* MBEDTLS_USE_PSA_CRYPTO */

         ssl->handshake->ecjpake_cache = mbedtls_calloc(1, kkpp_len);
         if (ssl->handshake->ecjpake_cache == NULL) {
@@ -364,8 +344,7 @@ static int ssl_write_session_ticket_ext(mbedtls_ssl_context *ssl,

     *olen = 0;

-    if (mbedtls_ssl_conf_get_session_tickets(ssl->conf) ==
-        MBEDTLS_SSL_SESSION_TICKETS_DISABLED) {
+    if (ssl->conf->session_tickets == MBEDTLS_SSL_SESSION_TICKETS_DISABLED) {
         return 0;
     }

@@ -788,8 +767,7 @@ static int ssl_parse_session_ticket_ext(mbedtls_ssl_context *ssl,
                                         const unsigned char *buf,
                                         size_t len)
 {
-    if ((mbedtls_ssl_conf_get_session_tickets(ssl->conf) ==
-         MBEDTLS_SSL_SESSION_TICKETS_DISABLED) ||
+    if (ssl->conf->session_tickets == MBEDTLS_SSL_SESSION_TICKETS_DISABLED ||
         len != 0) {
         MBEDTLS_SSL_DEBUG_MSG(1,
                               ("non-matching session ticket extension"));
@@ -831,15 +809,6 @@ static int ssl_parse_supported_point_formats_ext(mbedtls_ssl_context *ssl,
     while (list_size > 0) {
         if (p[0] == MBEDTLS_ECP_PF_UNCOMPRESSED ||
             p[0] == MBEDTLS_ECP_PF_COMPRESSED) {
-#if !defined(MBEDTLS_USE_PSA_CRYPTO) && \
-            defined(MBEDTLS_KEY_EXCHANGE_SOME_ECDH_OR_ECDHE_1_2_ENABLED)
-            ssl->handshake->ecdh_ctx.point_format = p[0];
-#endif /* !MBEDTLS_USE_PSA_CRYPTO && MBEDTLS_KEY_EXCHANGE_SOME_ECDH_OR_ECDHE_1_2_ENABLED */
-#if !defined(MBEDTLS_USE_PSA_CRYPTO) &&                             \
-            defined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED)
-            mbedtls_ecjpake_set_point_format(&ssl->handshake->ecjpake_ctx,
-                                             p[0]);
-#endif /* !MBEDTLS_USE_PSA_CRYPTO && MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED */
             MBEDTLS_SSL_DEBUG_MSG(4, ("point format selected: %d", p[0]));
             return 0;
         }
@@ -876,7 +845,6 @@ static int ssl_parse_ecjpake_kkpp(mbedtls_ssl_context *ssl,
     ssl->handshake->ecjpake_cache = NULL;
     ssl->handshake->ecjpake_cache_len = 0;

-#if defined(MBEDTLS_USE_PSA_CRYPTO)
     if ((ret = mbedtls_psa_ecjpake_read_round(
              &ssl->handshake->psa_pake_ctx, buf, len,
              MBEDTLS_ECJPAKE_ROUND_ONE)) != 0) {
@@ -892,19 +860,6 @@ static int ssl_parse_ecjpake_kkpp(mbedtls_ssl_context *ssl,
     }

     return 0;
-#else
-    if ((ret = mbedtls_ecjpake_read_round_one(&ssl->handshake->ecjpake_ctx,
-                                              buf, len)) != 0) {
-        MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_ecjpake_read_round_one", ret);
-        mbedtls_ssl_send_alert_message(
-            ssl,
-            MBEDTLS_SSL_ALERT_LEVEL_FATAL,
-            MBEDTLS_SSL_ALERT_MSG_HANDSHAKE_FAILURE);
-        return ret;
-    }
-
-    return 0;
-#endif /* MBEDTLS_USE_PSA_CRYPTO */
 }
 #endif /* MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED */

@@ -914,7 +869,7 @@ static int ssl_parse_alpn_ext(mbedtls_ssl_context *ssl,
                               const unsigned char *buf, size_t len)
 {
     size_t list_len, name_len;
-    const char **p;
+    const char *const *p;

     /* If we didn't send it, the server shouldn't send it */
     if (ssl->conf->alpn_list == NULL) {
@@ -1663,49 +1618,6 @@ static int ssl_parse_server_hello(mbedtls_ssl_context *ssl)
     return 0;
 }

-#if defined(MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED) ||                       \
-    defined(MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED)
-MBEDTLS_CHECK_RETURN_CRITICAL
-static int ssl_parse_server_dh_params(mbedtls_ssl_context *ssl,
-                                      unsigned char **p,
-                                      unsigned char *end)
-{
-    int ret = MBEDTLS_ERR_SSL_FEATURE_UNAVAILABLE;
-    size_t dhm_actual_bitlen;
-
-    /*
-     * Ephemeral DH parameters:
-     *
-     * struct {
-     *     opaque dh_p<1..2^16-1>;
-     *     opaque dh_g<1..2^16-1>;
-     *     opaque dh_Ys<1..2^16-1>;
-     * } ServerDHParams;
-     */
-    if ((ret = mbedtls_dhm_read_params(&ssl->handshake->dhm_ctx,
-                                       p, end)) != 0) {
-        MBEDTLS_SSL_DEBUG_RET(2, ("mbedtls_dhm_read_params"), ret);
-        return ret;
-    }
-
-    dhm_actual_bitlen = mbedtls_dhm_get_bitlen(&ssl->handshake->dhm_ctx);
-    if (dhm_actual_bitlen < ssl->conf->dhm_min_bitlen) {
-        MBEDTLS_SSL_DEBUG_MSG(1, ("DHM prime too short: %" MBEDTLS_PRINTF_SIZET " < %u",
-                                  dhm_actual_bitlen,
-                                  ssl->conf->dhm_min_bitlen));
-        return MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE;
-    }
-
-    MBEDTLS_SSL_DEBUG_MPI(3, "DHM: P ", &ssl->handshake->dhm_ctx.P);
-    MBEDTLS_SSL_DEBUG_MPI(3, "DHM: G ", &ssl->handshake->dhm_ctx.G);
-    MBEDTLS_SSL_DEBUG_MPI(3, "DHM: GY", &ssl->handshake->dhm_ctx.GY);
-
-    return ret;
-}
-#endif /* MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED ||
-          MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED */
-
-#if defined(MBEDTLS_USE_PSA_CRYPTO)
 #if defined(MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED)   ||   \
     defined(MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED)   ||   \
     defined(MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED)
@@ -1779,89 +1691,6 @@ static int ssl_parse_server_ecdh_params(mbedtls_ssl_context *ssl,
 #endif /* MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED   ||
           MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED   ||
           MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED */
-#else
-#if defined(MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED)   ||   \
-    defined(MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED)    ||   \
-    defined(MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED)   ||   \
-    defined(MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED) ||   \
-    defined(MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED)
-MBEDTLS_CHECK_RETURN_CRITICAL
-static int ssl_check_server_ecdh_params(const mbedtls_ssl_context *ssl)
-{
-    uint16_t tls_id;
-    mbedtls_ecp_group_id grp_id;
-#if defined(MBEDTLS_ECDH_LEGACY_CONTEXT)
-    grp_id = ssl->handshake->ecdh_ctx.grp.id;
-#else
-    grp_id = ssl->handshake->ecdh_ctx.grp_id;
-#endif
-
-    tls_id = mbedtls_ssl_get_tls_id_from_ecp_group_id(grp_id);
-    if (tls_id == 0) {
-        MBEDTLS_SSL_DEBUG_MSG(1, ("should never happen"));
-        return MBEDTLS_ERR_SSL_INTERNAL_ERROR;
-    }
-
-    MBEDTLS_SSL_DEBUG_MSG(2, ("ECDH curve: %s",
-                              mbedtls_ssl_get_curve_name_from_tls_id(tls_id)));
-
-    if (mbedtls_ssl_check_curve(ssl, grp_id) != 0) {
-        return -1;
-    }
-
-    MBEDTLS_SSL_DEBUG_ECDH(3, &ssl->handshake->ecdh_ctx,
-                           MBEDTLS_DEBUG_ECDH_QP);
-
-    return 0;
-}
-
-#endif /* MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED   ||
-          MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED    ||
-          MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED   ||
-          MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED ||
-          MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED */
-
-#if defined(MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED) ||     \
-    defined(MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED) ||     \
-    defined(MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED)
-MBEDTLS_CHECK_RETURN_CRITICAL
-static int ssl_parse_server_ecdh_params(mbedtls_ssl_context *ssl,
-                                        unsigned char **p,
-                                        unsigned char *end)
-{
-    int ret = MBEDTLS_ERR_SSL_FEATURE_UNAVAILABLE;
-
-    /*
-     * Ephemeral ECDH parameters:
-     *
-     * struct {
-     *     ECParameters curve_params;
-     *     ECPoint      public;
-     * } ServerECDHParams;
-     */
-    if ((ret = mbedtls_ecdh_read_params(&ssl->handshake->ecdh_ctx,
-                                        (const unsigned char **) p, end)) != 0) {
-        MBEDTLS_SSL_DEBUG_RET(1, ("mbedtls_ecdh_read_params"), ret);
-#if defined(MBEDTLS_SSL_ECP_RESTARTABLE_ENABLED)
-        if (ret == MBEDTLS_ERR_ECP_IN_PROGRESS) {
-            ret = MBEDTLS_ERR_SSL_CRYPTO_IN_PROGRESS;
-        }
-#endif
-        return ret;
-    }
-
-    if (ssl_check_server_ecdh_params(ssl) != 0) {
-        MBEDTLS_SSL_DEBUG_MSG(1,
-                              ("bad server key exchange message (ECDHE curve)"));
-        return MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE;
-    }
-
-    return ret;
-}
-#endif /* MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED || \
-          MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED || \
-          MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED */
-#endif /* !MBEDTLS_USE_PSA_CRYPTO */
 #if defined(MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED)
 MBEDTLS_CHECK_RETURN_CRITICAL
 static int ssl_parse_server_psk_hint(mbedtls_ssl_context *ssl,
@@ -1903,181 +1732,6 @@ static int ssl_parse_server_psk_hint(mbedtls_ssl_context *ssl,
 }
 #endif /* MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED */

-#if defined(MBEDTLS_KEY_EXCHANGE_RSA_ENABLED) ||                           \
-    defined(MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED)
-/*
- * Generate a pre-master secret and encrypt it with the server's RSA key
- */
-MBEDTLS_CHECK_RETURN_CRITICAL
-static int ssl_write_encrypted_pms(mbedtls_ssl_context *ssl,
-                                   size_t offset, size_t *olen,
-                                   size_t pms_offset)
-{
-    int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
-    size_t len_bytes = 2;
-    unsigned char *p = ssl->handshake->premaster + pms_offset;
-    mbedtls_pk_context *peer_pk;
-
-    if (offset + len_bytes > MBEDTLS_SSL_OUT_CONTENT_LEN) {
-        MBEDTLS_SSL_DEBUG_MSG(1, ("buffer too small for encrypted pms"));
-        return MBEDTLS_ERR_SSL_BUFFER_TOO_SMALL;
-    }
-
-    /*
-     * Generate (part of) the pre-master as
-     *  struct {
-     *      ProtocolVersion client_version;
-     *      opaque random[46];
-     *  } PreMasterSecret;
-     */
-    mbedtls_ssl_write_version(p, ssl->conf->transport,
-                              MBEDTLS_SSL_VERSION_TLS1_2);
-
-    if ((ret = ssl->conf->f_rng(ssl->conf->p_rng, p + 2, 46)) != 0) {
-        MBEDTLS_SSL_DEBUG_RET(1, "f_rng", ret);
-        return ret;
-    }
-
-    ssl->handshake->pmslen = 48;
-
-#if !defined(MBEDTLS_SSL_KEEP_PEER_CERTIFICATE)
-    peer_pk = &ssl->handshake->peer_pubkey;
-#else /* !MBEDTLS_SSL_KEEP_PEER_CERTIFICATE */
-    if (ssl->session_negotiate->peer_cert == NULL) {
-        /* Should never happen */
-        MBEDTLS_SSL_DEBUG_MSG(1, ("should never happen"));
-        return MBEDTLS_ERR_SSL_INTERNAL_ERROR;
-    }
-    peer_pk = &ssl->session_negotiate->peer_cert->pk;
-#endif /* MBEDTLS_SSL_KEEP_PEER_CERTIFICATE */
-
-    /*
-     * Now write it out, encrypted
-     */
-    if (!mbedtls_pk_can_do(peer_pk, MBEDTLS_PK_RSA)) {
-        MBEDTLS_SSL_DEBUG_MSG(1, ("certificate key type mismatch"));
-        return MBEDTLS_ERR_SSL_PK_TYPE_MISMATCH;
-    }
-
-    if ((ret = mbedtls_pk_encrypt(peer_pk,
-                                  p, ssl->handshake->pmslen,
-                                  ssl->out_msg + offset + len_bytes, olen,
-                                  MBEDTLS_SSL_OUT_CONTENT_LEN - offset - len_bytes,
-                                  ssl->conf->f_rng, ssl->conf->p_rng)) != 0) {
-        MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_pk_encrypt", ret);
-        return ret;
-    }
-
-    if (len_bytes == 2) {
-        MBEDTLS_PUT_UINT16_BE(*olen, ssl->out_msg, offset);
-        *olen += 2;
-    }
-
-#if !defined(MBEDTLS_SSL_KEEP_PEER_CERTIFICATE)
-    /* We don't need the peer's public key anymore. Free it. */
-    mbedtls_pk_free(peer_pk);
-#endif /* !MBEDTLS_SSL_KEEP_PEER_CERTIFICATE */
-    return 0;
-}
-#endif /* MBEDTLS_KEY_EXCHANGE_RSA_ENABLED ||
-          MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED */
-
-#if defined(MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED) || \
-    defined(MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED)
-MBEDTLS_CHECK_RETURN_CRITICAL
-static int ssl_get_ecdh_params_from_cert(mbedtls_ssl_context *ssl)
-{
-    int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
-    mbedtls_pk_context *peer_pk;
-
-#if !defined(MBEDTLS_SSL_KEEP_PEER_CERTIFICATE)
-    peer_pk = &ssl->handshake->peer_pubkey;
-#else /* !MBEDTLS_SSL_KEEP_PEER_CERTIFICATE */
-    if (ssl->session_negotiate->peer_cert == NULL) {
-        /* Should never happen */
-        MBEDTLS_SSL_DEBUG_MSG(1, ("should never happen"));
-        return MBEDTLS_ERR_SSL_INTERNAL_ERROR;
-    }
-    peer_pk = &ssl->session_negotiate->peer_cert->pk;
-#endif /* MBEDTLS_SSL_KEEP_PEER_CERTIFICATE */
-
-    /* This is a public key, so it can't be opaque, so can_do() is a good
-     * enough check to ensure pk_ec() is safe to use below. */
-    if (!mbedtls_pk_can_do(peer_pk, MBEDTLS_PK_ECKEY)) {
-        MBEDTLS_SSL_DEBUG_MSG(1, ("server key not ECDH capable"));
-        return MBEDTLS_ERR_SSL_PK_TYPE_MISMATCH;
-    }
-
-#if !defined(MBEDTLS_PK_USE_PSA_EC_DATA)
-    const mbedtls_ecp_keypair *peer_key = mbedtls_pk_ec_ro(*peer_pk);
-#endif /* !defined(MBEDTLS_PK_USE_PSA_EC_DATA) */
-
-#if defined(MBEDTLS_USE_PSA_CRYPTO)
-    uint16_t tls_id = 0;
-    psa_key_type_t key_type = PSA_KEY_TYPE_NONE;
-    mbedtls_ecp_group_id grp_id = mbedtls_pk_get_ec_group_id(peer_pk);
-
-    if (mbedtls_ssl_check_curve(ssl, grp_id) != 0) {
-        MBEDTLS_SSL_DEBUG_MSG(1, ("bad server certificate (ECDH curve)"));
-        return MBEDTLS_ERR_SSL_BAD_CERTIFICATE;
-    }
-
-    tls_id = mbedtls_ssl_get_tls_id_from_ecp_group_id(grp_id);
-    if (tls_id == 0) {
-        MBEDTLS_SSL_DEBUG_MSG(1, ("ECC group %u not suported",
-                                  grp_id));
-        return MBEDTLS_ERR_SSL_ILLEGAL_PARAMETER;
-    }
-
-    /* If the above conversion to TLS ID was fine, then also this one will be,
-       so there is no need to check the return value here */
-    mbedtls_ssl_get_psa_curve_info_from_tls_id(tls_id, &key_type,
-                                               &ssl->handshake->xxdh_psa_bits);
-
-    ssl->handshake->xxdh_psa_type = key_type;
-
-    /* Store peer's public key in psa format. */
-#if defined(MBEDTLS_PK_USE_PSA_EC_DATA)
-    memcpy(ssl->handshake->xxdh_psa_peerkey, peer_pk->pub_raw, peer_pk->pub_raw_len);
-    ssl->handshake->xxdh_psa_peerkey_len = peer_pk->pub_raw_len;
-    ret = 0;
-#else /* MBEDTLS_PK_USE_PSA_EC_DATA */
-    size_t olen = 0;
-    ret = mbedtls_ecp_point_write_binary(&peer_key->grp, &peer_key->Q,
-                                         MBEDTLS_ECP_PF_UNCOMPRESSED, &olen,
-                                         ssl->handshake->xxdh_psa_peerkey,
-                                         sizeof(ssl->handshake->xxdh_psa_peerkey));
-
-    if (ret != 0) {
-        MBEDTLS_SSL_DEBUG_RET(1, ("mbedtls_ecp_point_write_binary"), ret);
-        return ret;
-    }
-    ssl->handshake->xxdh_psa_peerkey_len = olen;
-#endif /* MBEDTLS_PK_USE_PSA_EC_DATA */
-#else /* MBEDTLS_USE_PSA_CRYPTO */
-    if ((ret = mbedtls_ecdh_get_params(&ssl->handshake->ecdh_ctx, peer_key,
-                                       MBEDTLS_ECDH_THEIRS)) != 0) {
-        MBEDTLS_SSL_DEBUG_RET(1, ("mbedtls_ecdh_get_params"), ret);
-        return ret;
-    }
-
-    if (ssl_check_server_ecdh_params(ssl) != 0) {
-        MBEDTLS_SSL_DEBUG_MSG(1, ("bad server certificate (ECDH curve)"));
-        return MBEDTLS_ERR_SSL_BAD_CERTIFICATE;
-    }
-#endif /* MBEDTLS_USE_PSA_CRYPTO */
-#if !defined(MBEDTLS_SSL_KEEP_PEER_CERTIFICATE)
-    /* We don't need the peer's public key anymore. Free it,
-     * so that more RAM is available for upcoming expensive
-     * operations like ECDHE. */
-    mbedtls_pk_free(peer_pk);
-#endif /* !MBEDTLS_SSL_KEEP_PEER_CERTIFICATE */
-
-    return ret;
-}
-#endif /* MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED) ||
-          MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED */
-
 MBEDTLS_CHECK_RETURN_CRITICAL
 static int ssl_parse_server_key_exchange(mbedtls_ssl_context *ssl)
 {
@@ -2088,38 +1742,6 @@ static int ssl_parse_server_key_exchange(mbedtls_ssl_context *ssl)

     MBEDTLS_SSL_DEBUG_MSG(2, ("=> parse server key exchange"));

-#if defined(MBEDTLS_KEY_EXCHANGE_RSA_ENABLED)
-    if (ciphersuite_info->key_exchange == MBEDTLS_KEY_EXCHANGE_RSA) {
-        MBEDTLS_SSL_DEBUG_MSG(2, ("<= skip parse server key exchange"));
-        mbedtls_ssl_handshake_increment_state(ssl);
-        return 0;
-    }
-    ((void) p);
-    ((void) end);
-#endif
-
-#if defined(MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED) || \
-    defined(MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED)
-    if (ciphersuite_info->key_exchange == MBEDTLS_KEY_EXCHANGE_ECDH_RSA ||
-        ciphersuite_info->key_exchange == MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA) {
-        if ((ret = ssl_get_ecdh_params_from_cert(ssl)) != 0) {
-            MBEDTLS_SSL_DEBUG_RET(1, "ssl_get_ecdh_params_from_cert", ret);
-            mbedtls_ssl_send_alert_message(
-                ssl,
-                MBEDTLS_SSL_ALERT_LEVEL_FATAL,
-                MBEDTLS_SSL_ALERT_MSG_HANDSHAKE_FAILURE);
-            return ret;
-        }
-
-        MBEDTLS_SSL_DEBUG_MSG(2, ("<= skip parse server key exchange"));
-        mbedtls_ssl_handshake_increment_state(ssl);
-        return 0;
-    }
-    ((void) p);
-    ((void) end);
-#endif /* MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED ||
-          MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED */
-
 #if defined(MBEDTLS_SSL_ECP_RESTARTABLE_ENABLED)
     if (ssl->handshake->ecrs_enabled &&
         ssl->handshake->ecrs_state == ssl_ecrs_ske_start_processing) {
@@ -2142,12 +1764,11 @@ static int ssl_parse_server_key_exchange(mbedtls_ssl_context *ssl)
     }

     /*
-     * ServerKeyExchange may be skipped with PSK and RSA-PSK when the server
+     * ServerKeyExchange may be skipped with PSK when the server
      * doesn't use a psk_identity_hint
      */
     if (ssl->in_msg[0] != MBEDTLS_SSL_HS_SERVER_KEY_EXCHANGE) {
-        if (ciphersuite_info->key_exchange == MBEDTLS_KEY_EXCHANGE_PSK ||
-            ciphersuite_info->key_exchange == MBEDTLS_KEY_EXCHANGE_RSA_PSK) {
+        if (ciphersuite_info->key_exchange == MBEDTLS_KEY_EXCHANGE_PSK) {
             /* Current message is probably either
              * CertificateRequest or ServerHelloDone */
             ssl->keep_current_message = 1;
@@ -2177,8 +1798,6 @@ start_processing:

 #if defined(MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED)
     if (ciphersuite_info->key_exchange == MBEDTLS_KEY_EXCHANGE_PSK ||
-        ciphersuite_info->key_exchange == MBEDTLS_KEY_EXCHANGE_RSA_PSK ||
-        ciphersuite_info->key_exchange == MBEDTLS_KEY_EXCHANGE_DHE_PSK ||
         ciphersuite_info->key_exchange == MBEDTLS_KEY_EXCHANGE_ECDHE_PSK) {
         if (ssl_parse_server_psk_hint(ssl, &p, end) != 0) {
             MBEDTLS_SSL_DEBUG_MSG(1, ("bad server key exchange message"));
@@ -2191,29 +1810,11 @@ start_processing:
     } /* FALLTHROUGH */
 #endif /* MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED */

-#if defined(MBEDTLS_KEY_EXCHANGE_PSK_ENABLED) ||                       \
-    defined(MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED)
-    if (ciphersuite_info->key_exchange == MBEDTLS_KEY_EXCHANGE_PSK ||
-        ciphersuite_info->key_exchange == MBEDTLS_KEY_EXCHANGE_RSA_PSK) {
+#if defined(MBEDTLS_KEY_EXCHANGE_PSK_ENABLED)
+    if (ciphersuite_info->key_exchange == MBEDTLS_KEY_EXCHANGE_PSK) {
         ; /* nothing more to do */
     } else
-#endif /* MBEDTLS_KEY_EXCHANGE_PSK_ENABLED ||
-          MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED */
-#if defined(MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED) ||                       \
-    defined(MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED)
-    if (ciphersuite_info->key_exchange == MBEDTLS_KEY_EXCHANGE_DHE_RSA ||
-        ciphersuite_info->key_exchange == MBEDTLS_KEY_EXCHANGE_DHE_PSK) {
-        if (ssl_parse_server_dh_params(ssl, &p, end) != 0) {
-            MBEDTLS_SSL_DEBUG_MSG(1, ("bad server key exchange message"));
-            mbedtls_ssl_send_alert_message(
-                ssl,
-                MBEDTLS_SSL_ALERT_LEVEL_FATAL,
-                MBEDTLS_SSL_ALERT_MSG_ILLEGAL_PARAMETER);
-            return MBEDTLS_ERR_SSL_ILLEGAL_PARAMETER;
-        }
-    } else
-#endif /* MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED ||
-          MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED */
+#endif /* MBEDTLS_KEY_EXCHANGE_PSK_ENABLED */
 #if defined(MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED) ||     \
     defined(MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED) ||     \
     defined(MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED)
@@ -2234,7 +1835,6 @@ start_processing:
           MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED */
 #if defined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED)
     if (ciphersuite_info->key_exchange == MBEDTLS_KEY_EXCHANGE_ECJPAKE) {
-#if defined(MBEDTLS_USE_PSA_CRYPTO)
         /*
          * The first 3 bytes are:
          * [0] MBEDTLS_ECP_TLS_NAMED_CURVE
@@ -2271,18 +1871,6 @@ start_processing:
                 MBEDTLS_SSL_ALERT_MSG_HANDSHAKE_FAILURE);
             return MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE;
         }
-#else
-        ret = mbedtls_ecjpake_read_round_two(&ssl->handshake->ecjpake_ctx,
-                                             p, end - p);
-        if (ret != 0) {
-            MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_ecjpake_read_round_two", ret);
-            mbedtls_ssl_send_alert_message(
-                ssl,
-                MBEDTLS_SSL_ALERT_LEVEL_FATAL,
-                MBEDTLS_SSL_ALERT_MSG_HANDSHAKE_FAILURE);
-            return MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE;
-        }
-#endif /* MBEDTLS_USE_PSA_CRYPTO */
     } else
 #endif /* MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED */
     {
@@ -2407,16 +1995,7 @@ start_processing:

 #if defined(MBEDTLS_X509_RSASSA_PSS_SUPPORT)
         if (pk_alg == MBEDTLS_PK_RSASSA_PSS) {
-            mbedtls_pk_rsassa_pss_options rsassa_pss_options;
-            rsassa_pss_options.mgf1_hash_id = md_alg;
-            rsassa_pss_options.expected_salt_len =
-                mbedtls_md_get_size_from_type(md_alg);
-            if (rsassa_pss_options.expected_salt_len == 0) {
-                return MBEDTLS_ERR_SSL_INTERNAL_ERROR;
-            }
-
-            ret = mbedtls_pk_verify_ext(pk_alg, &rsassa_pss_options,
-                                        peer_pk,
+            ret = mbedtls_pk_verify_new(pk_alg, peer_pk,
                                         md_alg, hash, hashlen,
                                         p, sig_len);
         } else
@@ -2713,49 +2292,10 @@ static int ssl_write_client_key_exchange(mbedtls_ssl_context *ssl)

     MBEDTLS_SSL_DEBUG_MSG(2, ("=> write client key exchange"));

-#if defined(MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED)
-    if (ciphersuite_info->key_exchange == MBEDTLS_KEY_EXCHANGE_DHE_RSA) {
-        /*
-         * DHM key exchange -- send G^X mod P
-         */
-        content_len = mbedtls_dhm_get_len(&ssl->handshake->dhm_ctx);
-
-        MBEDTLS_PUT_UINT16_BE(content_len, ssl->out_msg, 4);
-        header_len = 6;
-
-        ret = mbedtls_dhm_make_public(&ssl->handshake->dhm_ctx,
-                                      (int) mbedtls_dhm_get_len(&ssl->handshake->dhm_ctx),
-                                      &ssl->out_msg[header_len], content_len,
-                                      ssl->conf->f_rng, ssl->conf->p_rng);
-        if (ret != 0) {
-            MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_dhm_make_public", ret);
-            return ret;
-        }
-
-        MBEDTLS_SSL_DEBUG_MPI(3, "DHM: X ", &ssl->handshake->dhm_ctx.X);
-        MBEDTLS_SSL_DEBUG_MPI(3, "DHM: GX", &ssl->handshake->dhm_ctx.GX);
-
-        if ((ret = mbedtls_dhm_calc_secret(&ssl->handshake->dhm_ctx,
-                                           ssl->handshake->premaster,
-                                           MBEDTLS_PREMASTER_SIZE,
-                                           &ssl->handshake->pmslen,
-                                           ssl->conf->f_rng, ssl->conf->p_rng)) != 0) {
-            MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_dhm_calc_secret", ret);
-            return ret;
-        }
-
-        MBEDTLS_SSL_DEBUG_MPI(3, "DHM: K ", &ssl->handshake->dhm_ctx.K);
-    } else
-#endif /* MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED */
 #if defined(MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED) ||                     \
-    defined(MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED) ||                   \
-    defined(MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED) ||                      \
-    defined(MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED)
+    defined(MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED)
     if (ciphersuite_info->key_exchange == MBEDTLS_KEY_EXCHANGE_ECDHE_RSA ||
-        ciphersuite_info->key_exchange == MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA ||
-        ciphersuite_info->key_exchange == MBEDTLS_KEY_EXCHANGE_ECDH_RSA ||
-        ciphersuite_info->key_exchange == MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA) {
-#if defined(MBEDTLS_USE_PSA_CRYPTO)
+        ciphersuite_info->key_exchange == MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA) {
         psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED;
         psa_status_t destruction_status = PSA_ERROR_CORRUPTION_DETECTED;
         psa_key_attributes_t key_attributes;
@@ -2827,74 +2367,10 @@ static int ssl_write_client_key_exchange(mbedtls_ssl_context *ssl)
         if (status != PSA_SUCCESS || destruction_status != PSA_SUCCESS) {
             return MBEDTLS_ERR_SSL_HW_ACCEL_FAILED;
         }
-#else
-        /*
-         * ECDH key exchange -- send client public value
-         */
-        header_len = 4;
-
-#if defined(MBEDTLS_SSL_ECP_RESTARTABLE_ENABLED)
-        if (ssl->handshake->ecrs_enabled) {
-            if (ssl->handshake->ecrs_state == ssl_ecrs_cke_ecdh_calc_secret) {
-                goto ecdh_calc_secret;
-            }
-
-            mbedtls_ecdh_enable_restart(&ssl->handshake->ecdh_ctx);
-        }
-#endif
-
-        ret = mbedtls_ecdh_make_public(&ssl->handshake->ecdh_ctx,
-                                       &content_len,
-                                       &ssl->out_msg[header_len], 1000,
-                                       ssl->conf->f_rng, ssl->conf->p_rng);
-        if (ret != 0) {
-            MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_ecdh_make_public", ret);
-#if defined(MBEDTLS_SSL_ECP_RESTARTABLE_ENABLED)
-            if (ret == MBEDTLS_ERR_ECP_IN_PROGRESS) {
-                ret = MBEDTLS_ERR_SSL_CRYPTO_IN_PROGRESS;
-            }
-#endif
-            return ret;
-        }
-
-        MBEDTLS_SSL_DEBUG_ECDH(3, &ssl->handshake->ecdh_ctx,
-                               MBEDTLS_DEBUG_ECDH_Q);
-
-#if defined(MBEDTLS_SSL_ECP_RESTARTABLE_ENABLED)
-        if (ssl->handshake->ecrs_enabled) {
-            ssl->handshake->ecrs_n = content_len;
-            ssl->handshake->ecrs_state = ssl_ecrs_cke_ecdh_calc_secret;
-        }
-
-ecdh_calc_secret:
-        if (ssl->handshake->ecrs_enabled) {
-            content_len = ssl->handshake->ecrs_n;
-        }
-#endif
-        if ((ret = mbedtls_ecdh_calc_secret(&ssl->handshake->ecdh_ctx,
-                                            &ssl->handshake->pmslen,
-                                            ssl->handshake->premaster,
-                                            MBEDTLS_MPI_MAX_SIZE,
-                                            ssl->conf->f_rng, ssl->conf->p_rng)) != 0) {
-            MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_ecdh_calc_secret", ret);
-#if defined(MBEDTLS_SSL_ECP_RESTARTABLE_ENABLED)
-            if (ret == MBEDTLS_ERR_ECP_IN_PROGRESS) {
-                ret = MBEDTLS_ERR_SSL_CRYPTO_IN_PROGRESS;
-            }
-#endif
-            return ret;
-        }
-
-        MBEDTLS_SSL_DEBUG_ECDH(3, &ssl->handshake->ecdh_ctx,
-                               MBEDTLS_DEBUG_ECDH_Z);
-#endif /* MBEDTLS_USE_PSA_CRYPTO */
     } else
 #endif /* MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED ||
-          MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED ||
-          MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED ||
-          MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED */
-#if defined(MBEDTLS_USE_PSA_CRYPTO) &&                           \
-    defined(MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED)
+          MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED */
+#if defined(MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED)
     if (ciphersuite_info->key_exchange == MBEDTLS_KEY_EXCHANGE_ECDHE_PSK) {
         psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED;
         psa_status_t destruction_status = PSA_ERROR_CORRUPTION_DETECTED;
@@ -3017,8 +2493,7 @@ ecdh_calc_secret:
         MBEDTLS_PUT_UINT16_BE(zlen, pms, 0);
         pms += zlen_size + zlen;
     } else
-#endif /* MBEDTLS_USE_PSA_CRYPTO &&
-          MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED */
+#endif /* MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED */
 #if defined(MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED)
     if (mbedtls_ssl_ciphersuite_uses_psk(ciphersuite_info)) {
         /*
@@ -3053,109 +2528,17 @@ ecdh_calc_secret:
             content_len = 0;
         } else
 #endif
-#if defined(MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED)
-        if (ciphersuite_info->key_exchange == MBEDTLS_KEY_EXCHANGE_RSA_PSK) {
-            if ((ret = ssl_write_encrypted_pms(ssl, header_len,
-                                               &content_len, 2)) != 0) {
-                return ret;
-            }
-        } else
-#endif
-#if defined(MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED)
-        if (ciphersuite_info->key_exchange == MBEDTLS_KEY_EXCHANGE_DHE_PSK) {
-            /*
-             * ClientDiffieHellmanPublic public (DHM send G^X mod P)
-             */
-            content_len = mbedtls_dhm_get_len(&ssl->handshake->dhm_ctx);
-
-            if (header_len + 2 + content_len >
-                MBEDTLS_SSL_OUT_CONTENT_LEN) {
-                MBEDTLS_SSL_DEBUG_MSG(1,
-                                      ("psk identity or DHM size too long or SSL buffer too short"));
-                return MBEDTLS_ERR_SSL_BUFFER_TOO_SMALL;
-            }
-
-            ssl->out_msg[header_len++] = MBEDTLS_BYTE_1(content_len);
-            ssl->out_msg[header_len++] = MBEDTLS_BYTE_0(content_len);
-
-            ret = mbedtls_dhm_make_public(&ssl->handshake->dhm_ctx,
-                                          (int) mbedtls_dhm_get_len(&ssl->handshake->dhm_ctx),
-                                          &ssl->out_msg[header_len], content_len,
-                                          ssl->conf->f_rng, ssl->conf->p_rng);
-            if (ret != 0) {
-                MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_dhm_make_public", ret);
-                return ret;
-            }
-
-#if defined(MBEDTLS_USE_PSA_CRYPTO)
-            unsigned char *pms = ssl->handshake->premaster;
-            unsigned char *pms_end = pms + sizeof(ssl->handshake->premaster);
-            size_t pms_len;
-
-            /* Write length only when we know the actual value */
-            if ((ret = mbedtls_dhm_calc_secret(&ssl->handshake->dhm_ctx,
-                                               pms + 2, pms_end - (pms + 2), &pms_len,
-                                               ssl->conf->f_rng, ssl->conf->p_rng)) != 0) {
-                MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_dhm_calc_secret", ret);
-                return ret;
-            }
-            MBEDTLS_PUT_UINT16_BE(pms_len, pms, 0);
-            pms += 2 + pms_len;
-
-            MBEDTLS_SSL_DEBUG_MPI(3, "DHM: K ", &ssl->handshake->dhm_ctx.K);
-#endif
-        } else
-#endif /* MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED */
-#if !defined(MBEDTLS_USE_PSA_CRYPTO) &&                             \
-        defined(MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED)
-        if (ciphersuite_info->key_exchange == MBEDTLS_KEY_EXCHANGE_ECDHE_PSK) {
-            /*
-             * ClientECDiffieHellmanPublic public;
-             */
-            ret = mbedtls_ecdh_make_public(&ssl->handshake->ecdh_ctx,
-                                           &content_len,
-                                           &ssl->out_msg[header_len],
-                                           MBEDTLS_SSL_OUT_CONTENT_LEN - header_len,
-                                           ssl->conf->f_rng, ssl->conf->p_rng);
-            if (ret != 0) {
-                MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_ecdh_make_public", ret);
-                return ret;
-            }
-
-            MBEDTLS_SSL_DEBUG_ECDH(3, &ssl->handshake->ecdh_ctx,
-                                   MBEDTLS_DEBUG_ECDH_Q);
-        } else
-#endif /* !MBEDTLS_USE_PSA_CRYPTO && MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED */
         {
             MBEDTLS_SSL_DEBUG_MSG(1, ("should never happen"));
             return MBEDTLS_ERR_SSL_INTERNAL_ERROR;
         }

-#if !defined(MBEDTLS_USE_PSA_CRYPTO)
-        if ((ret = mbedtls_ssl_psk_derive_premaster(ssl,
-                                                    (mbedtls_key_exchange_type_t) ciphersuite_info->
-                                                    key_exchange)) != 0) {
-            MBEDTLS_SSL_DEBUG_RET(1,
-                                  "mbedtls_ssl_psk_derive_premaster", ret);
-            return ret;
-        }
-#endif /* !MBEDTLS_USE_PSA_CRYPTO */
     } else
 #endif /* MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED */
-#if defined(MBEDTLS_KEY_EXCHANGE_RSA_ENABLED)
-    if (ciphersuite_info->key_exchange == MBEDTLS_KEY_EXCHANGE_RSA) {
-        header_len = 4;
-        if ((ret = ssl_write_encrypted_pms(ssl, header_len,
-                                           &content_len, 0)) != 0) {
-            return ret;
-        }
-    } else
-#endif /* MBEDTLS_KEY_EXCHANGE_RSA_ENABLED */
 #if defined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED)
     if (ciphersuite_info->key_exchange == MBEDTLS_KEY_EXCHANGE_ECJPAKE) {
         header_len = 4;

-#if defined(MBEDTLS_USE_PSA_CRYPTO)
         unsigned char *out_p = ssl->out_msg + header_len;
         unsigned char *end_p = ssl->out_msg + MBEDTLS_SSL_OUT_CONTENT_LEN -
                                header_len;
@@ -3168,27 +2551,8 @@ ecdh_calc_secret:
             MBEDTLS_SSL_DEBUG_RET(1, "psa_pake_output", ret);
             return ret;
         }
-#else
-        ret = mbedtls_ecjpake_write_round_two(&ssl->handshake->ecjpake_ctx,
-                                              ssl->out_msg + header_len,
-                                              MBEDTLS_SSL_OUT_CONTENT_LEN - header_len,
-                                              &content_len,
-                                              ssl->conf->f_rng, ssl->conf->p_rng);
-        if (ret != 0) {
-            MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_ecjpake_write_round_two", ret);
-            return ret;
-        }
-
-        ret = mbedtls_ecjpake_derive_secret(&ssl->handshake->ecjpake_ctx,
-                                            ssl->handshake->premaster, 32, &ssl->handshake->pmslen,
-                                            ssl->conf->f_rng, ssl->conf->p_rng);
-        if (ret != 0) {
-            MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_ecjpake_derive_secret", ret);
-            return ret;
-        }
-#endif /* MBEDTLS_USE_PSA_CRYPTO */
     } else
-#endif /* MBEDTLS_KEY_EXCHANGE_RSA_ENABLED */
+#endif /* MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED */
     {
         ((void) ciphersuite_info);
         MBEDTLS_SSL_DEBUG_MSG(1, ("should never happen"));
@@ -3343,7 +2707,7 @@ sign:
                                            ssl->out_msg + 6 + offset,
                                            out_buf_len - 6 - offset,
                                            &n,
-                                           ssl->conf->f_rng, ssl->conf->p_rng, rs_ctx)) != 0) {
+                                           rs_ctx)) != 0) {
         MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_pk_sign", ret);
 #if defined(MBEDTLS_SSL_ECP_RESTARTABLE_ENABLED)
         if (ret == MBEDTLS_ERR_ECP_IN_PROGRESS) {
diff --git a/deps/LIEF/third-party/mbedtls/library/ssl_tls12_server.c b/deps/LIEF/third-party/mbedtls/library/ssl_tls12_server.c
index 2d73855ee15..07641cb3e8f 100644
--- a/deps/LIEF/third-party/mbedtls/library/ssl_tls12_server.c
+++ b/deps/LIEF/third-party/mbedtls/library/ssl_tls12_server.c
@@ -5,14 +5,13 @@
  *  SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
  */

-#include "common.h"
+#include "ssl_misc.h"

 #if defined(MBEDTLS_SSL_SRV_C) && defined(MBEDTLS_SSL_PROTO_TLS1_2)

 #include "mbedtls/platform.h"

 #include "mbedtls/ssl.h"
-#include "ssl_misc.h"
 #include "debug_internal.h"
 #include "mbedtls/error.h"
 #include "mbedtls/platform_util.h"
@@ -21,11 +20,9 @@

 #include <string.h>

-#if defined(MBEDTLS_USE_PSA_CRYPTO)
 /* Define a local translating function to save code size by not using too many
  * arguments in each translating place. */
-#if defined(MBEDTLS_KEY_EXCHANGE_SOME_ECDH_ENABLED) || \
-    defined(MBEDTLS_KEY_EXCHANGE_SOME_ECDHE_ENABLED)
+#if defined(MBEDTLS_KEY_EXCHANGE_SOME_ECDHE_ENABLED)
 static int local_err_translation(psa_status_t status)
 {
     return psa_status_to_mbedtls(status, psa_to_ssl_errors,
@@ -34,10 +31,9 @@ static int local_err_translation(psa_status_t status)
 }
 #define PSA_TO_MBEDTLS_ERR(status) local_err_translation(status)
 #endif
-#endif

 #if defined(MBEDTLS_ECP_C)
-#include "mbedtls/ecp.h"
+#include "mbedtls/private/ecp.h"
 #endif

 #if defined(MBEDTLS_HAVE_TIME)
@@ -89,11 +85,9 @@ static int ssl_conf_has_psk_or_cb(mbedtls_ssl_config const *conf)
     }


-#if defined(MBEDTLS_USE_PSA_CRYPTO)
     if (!mbedtls_svc_key_id_is_null(conf->psk_opaque)) {
         return 1;
     }
-#endif /* MBEDTLS_USE_PSA_CRYPTO */

     if (conf->psk != NULL && conf->psk_len != 0) {
         return 1;
@@ -262,15 +256,6 @@ static int ssl_parse_supported_point_formats(mbedtls_ssl_context *ssl,
     while (list_size > 0) {
         if (p[0] == MBEDTLS_ECP_PF_UNCOMPRESSED ||
             p[0] == MBEDTLS_ECP_PF_COMPRESSED) {
-#if !defined(MBEDTLS_USE_PSA_CRYPTO) && \
-            defined(MBEDTLS_KEY_EXCHANGE_SOME_ECDH_OR_ECDHE_1_2_ENABLED)
-            ssl->handshake->ecdh_ctx.point_format = p[0];
-#endif /* !MBEDTLS_USE_PSA_CRYPTO && MBEDTLS_KEY_EXCHANGE_SOME_ECDH_OR_ECDHE_1_2_ENABLED */
-#if !defined(MBEDTLS_USE_PSA_CRYPTO) &&                             \
-            defined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED)
-            mbedtls_ecjpake_set_point_format(&ssl->handshake->ecjpake_ctx,
-                                             p[0]);
-#endif /* !MBEDTLS_USE_PSA_CRYPTO && MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED */
             MBEDTLS_SSL_DEBUG_MSG(4, ("point format selected: %d", p[0]));
             return 0;
         }
@@ -293,17 +278,11 @@ static int ssl_parse_ecjpake_kkpp(mbedtls_ssl_context *ssl,
 {
     int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;

-#if defined(MBEDTLS_USE_PSA_CRYPTO)
-    if (ssl->handshake->psa_pake_ctx_is_ok != 1)
-#else
-    if (mbedtls_ecjpake_check(&ssl->handshake->ecjpake_ctx) != 0)
-#endif /* MBEDTLS_USE_PSA_CRYPTO */
-    {
+    if (ssl->handshake->psa_pake_ctx_is_ok != 1) {
         MBEDTLS_SSL_DEBUG_MSG(3, ("skip ecjpake kkpp extension"));
         return 0;
     }

-#if defined(MBEDTLS_USE_PSA_CRYPTO)
     if ((ret = mbedtls_psa_ecjpake_read_round(
              &ssl->handshake->psa_pake_ctx, buf, len,
              MBEDTLS_ECJPAKE_ROUND_ONE)) != 0) {
@@ -318,15 +297,6 @@ static int ssl_parse_ecjpake_kkpp(mbedtls_ssl_context *ssl,

         return ret;
     }
-#else
-    if ((ret = mbedtls_ecjpake_read_round_one(&ssl->handshake->ecjpake_ctx,
-                                              buf, len)) != 0) {
-        MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_ecjpake_read_round_one", ret);
-        mbedtls_ssl_send_alert_message(ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL,
-                                       MBEDTLS_SSL_ALERT_MSG_ILLEGAL_PARAMETER);
-        return ret;
-    }
-#endif /* MBEDTLS_USE_PSA_CRYPTO */

     /* Only mark the extension as OK when we're sure it is */
     ssl->handshake->cli_exts |= MBEDTLS_TLS_EXT_ECJPAKE_KKPP_OK;
@@ -683,20 +653,16 @@ static int ssl_check_key_curve(mbedtls_pk_context *pk,
  * Try picking a certificate for this ciphersuite,
  * return 0 on success and -1 on failure.
  */
+#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED)
 MBEDTLS_CHECK_RETURN_CRITICAL
 static int ssl_pick_cert(mbedtls_ssl_context *ssl,
                          const mbedtls_ssl_ciphersuite_t *ciphersuite_info)
 {
     mbedtls_ssl_key_cert *cur, *list;
-#if defined(MBEDTLS_USE_PSA_CRYPTO)
     psa_algorithm_t pk_alg =
         mbedtls_ssl_get_ciphersuite_sig_pk_psa_alg(ciphersuite_info);
     psa_key_usage_t pk_usage =
         mbedtls_ssl_get_ciphersuite_sig_pk_psa_usage(ciphersuite_info);
-#else
-    mbedtls_pk_type_t pk_alg =
-        mbedtls_ssl_get_ciphersuite_sig_pk_alg(ciphersuite_info);
-#endif /* MBEDTLS_USE_PSA_CRYPTO */
     uint32_t flags;

 #if defined(MBEDTLS_SSL_SERVER_NAME_INDICATION)
@@ -707,11 +673,7 @@ static int ssl_pick_cert(mbedtls_ssl_context *ssl,
     list = ssl->conf->key_cert;

     int pk_alg_is_none = 0;
-#if defined(MBEDTLS_USE_PSA_CRYPTO)
     pk_alg_is_none = (pk_alg == PSA_ALG_NONE);
-#else
-    pk_alg_is_none = (pk_alg == MBEDTLS_PK_NONE);
-#endif /* MBEDTLS_USE_PSA_CRYPTO */
     if (pk_alg_is_none) {
         return 0;
     }
@@ -729,19 +691,15 @@ static int ssl_pick_cert(mbedtls_ssl_context *ssl,
                               cur->cert);

         int key_type_matches = 0;
-#if defined(MBEDTLS_USE_PSA_CRYPTO)
 #if defined(MBEDTLS_SSL_ASYNC_PRIVATE)
         key_type_matches = ((ssl->conf->f_async_sign_start != NULL ||
-                             ssl->conf->f_async_decrypt_start != NULL ||
-                             mbedtls_pk_can_do_ext(cur->key, pk_alg, pk_usage)) &&
-                            mbedtls_pk_can_do_ext(&cur->cert->pk, pk_alg, pk_usage));
+                             mbedtls_pk_can_do_psa(cur->key, pk_alg, pk_usage)) &&
+                            mbedtls_pk_can_do_psa(&cur->cert->pk, pk_alg,
+                                                  PSA_KEY_USAGE_VERIFY_HASH));
 #else
         key_type_matches = (
-            mbedtls_pk_can_do_ext(cur->key, pk_alg, pk_usage));
+            mbedtls_pk_can_do_psa(cur->key, pk_alg, pk_usage));
 #endif /* MBEDTLS_SSL_ASYNC_PRIVATE */
-#else
-        key_type_matches = mbedtls_pk_can_do(&cur->cert->pk, pk_alg);
-#endif /* MBEDTLS_USE_PSA_CRYPTO */
         if (!key_type_matches) {
             MBEDTLS_SSL_DEBUG_MSG(3, ("certificate mismatch: key type"));
             continue;
@@ -787,6 +745,8 @@ static int ssl_pick_cert(mbedtls_ssl_context *ssl,

     return -1;
 }
+#endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */
+
 #endif /* MBEDTLS_X509_CRT_PARSE_C */

 /*
@@ -849,6 +809,8 @@ static int ssl_ciphersuite_match(mbedtls_ssl_context *ssl, int suite_id,
     }
 #endif

+#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED)
+
 #if defined(MBEDTLS_X509_CRT_PARSE_C)
     /*
      * Final check: if ciphersuite requires us to have a
@@ -864,7 +826,6 @@ static int ssl_ciphersuite_match(mbedtls_ssl_context *ssl, int suite_id,
     }
 #endif

-#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED)
     /* If the ciphersuite requires signing, check whether
      * a suitable hash algorithm is present. */
     sig_type = mbedtls_ssl_get_ciphersuite_sig_alg(suite_info);
@@ -1927,7 +1888,6 @@ static void ssl_write_ecjpake_kkpp_ext(mbedtls_ssl_context *ssl,
     MBEDTLS_PUT_UINT16_BE(MBEDTLS_TLS_EXT_ECJPAKE_KKPP, p, 0);
     p += 2;

-#if defined(MBEDTLS_USE_PSA_CRYPTO)
     ret = mbedtls_psa_ecjpake_write_round(&ssl->handshake->psa_pake_ctx,
                                           p + 2, (size_t) (end - p - 2), &kkpp_len,
                                           MBEDTLS_ECJPAKE_ROUND_ONE);
@@ -1937,15 +1897,6 @@ static void ssl_write_ecjpake_kkpp_ext(mbedtls_ssl_context *ssl,
         MBEDTLS_SSL_DEBUG_RET(1, "psa_pake_output", ret);
         return;
     }
-#else
-    ret = mbedtls_ecjpake_write_round_one(&ssl->handshake->ecjpake_ctx,
-                                          p + 2, (size_t) (end - p - 2), &kkpp_len,
-                                          ssl->conf->f_rng, ssl->conf->p_rng);
-    if (ret != 0) {
-        MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_ecjpake_write_round_one", ret);
-        return;
-    }
-#endif /* MBEDTLS_USE_PSA_CRYPTO */

     MBEDTLS_PUT_UINT16_BE(kkpp_len, p, 0);
     p += 2;
@@ -2182,14 +2133,14 @@ static int ssl_write_server_hello(mbedtls_ssl_context *ssl)
     MBEDTLS_SSL_DEBUG_MSG(3, ("server hello, current time: %" MBEDTLS_PRINTF_LONGLONG,
                               (long long) t));
 #else
-    if ((ret = ssl->conf->f_rng(ssl->conf->p_rng, p, 4)) != 0) {
+    if ((ret = psa_generate_random(p, 4)) != 0) {
         return ret;
     }

     p += 4;
 #endif /* MBEDTLS_HAVE_TIME */

-    if ((ret = ssl->conf->f_rng(ssl->conf->p_rng, p, 20)) != 0) {
+    if ((ret = psa_generate_random(p, 20)) != 0) {
         return ret;
     }
     p += 20;
@@ -2215,7 +2166,7 @@ static int ssl_write_server_hello(mbedtls_ssl_context *ssl)
     } else
 #endif
     {
-        if ((ret = ssl->conf->f_rng(ssl->conf->p_rng, p, 8)) != 0) {
+        if ((ret = psa_generate_random(p, 8)) != 0) {
             return ret;
         }
     }
@@ -2246,8 +2197,8 @@ static int ssl_write_server_hello(mbedtls_ssl_context *ssl)
 #endif /* MBEDTLS_SSL_SESSION_TICKETS */
         {
             ssl->session_negotiate->id_len = n = 32;
-            if ((ret = ssl->conf->f_rng(ssl->conf->p_rng, ssl->session_negotiate->id,
-                                        n)) != 0) {
+            if ((ret = psa_generate_random(ssl->session_negotiate->id,
+                                           n)) != 0) {
                 return ret;
             }
         }
@@ -2562,185 +2513,6 @@ static int ssl_write_certificate_request(mbedtls_ssl_context *ssl)
 }
 #endif /* MBEDTLS_KEY_EXCHANGE_CERT_REQ_ALLOWED_ENABLED */

-#if (defined(MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED) || \
-    defined(MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED))
-#if defined(MBEDTLS_USE_PSA_CRYPTO)
-MBEDTLS_CHECK_RETURN_CRITICAL
-static int ssl_get_ecdh_params_from_cert(mbedtls_ssl_context *ssl)
-{
-    int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
-    psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED;
-    mbedtls_pk_context *pk;
-    mbedtls_pk_type_t pk_type;
-    psa_key_attributes_t key_attributes = PSA_KEY_ATTRIBUTES_INIT;
-    unsigned char buf[PSA_KEY_EXPORT_ECC_KEY_PAIR_MAX_SIZE(PSA_VENDOR_ECC_MAX_CURVE_BITS)];
-    size_t key_len;
-#if !defined(MBEDTLS_PK_USE_PSA_EC_DATA)
-    uint16_t tls_id = 0;
-    psa_key_type_t key_type = PSA_KEY_TYPE_NONE;
-    mbedtls_ecp_group_id grp_id;
-    mbedtls_ecp_keypair *key;
-#endif /* !MBEDTLS_PK_USE_PSA_EC_DATA */
-
-    pk = mbedtls_ssl_own_key(ssl);
-
-    if (pk == NULL) {
-        return MBEDTLS_ERR_ECP_BAD_INPUT_DATA;
-    }
-
-    pk_type = mbedtls_pk_get_type(pk);
-
-    switch (pk_type) {
-        case MBEDTLS_PK_OPAQUE:
-#if defined(MBEDTLS_PK_USE_PSA_EC_DATA)
-        case MBEDTLS_PK_ECKEY:
-        case MBEDTLS_PK_ECKEY_DH:
-        case MBEDTLS_PK_ECDSA:
-#endif /* MBEDTLS_PK_USE_PSA_EC_DATA */
-            if (!mbedtls_pk_can_do(pk, MBEDTLS_PK_ECKEY)) {
-                return MBEDTLS_ERR_SSL_PK_TYPE_MISMATCH;
-            }
-
-            /* Get the attributes of the key previously parsed by PK module in
-             * order to extract its type and length (in bits). */
-            status = psa_get_key_attributes(pk->priv_id, &key_attributes);
-            if (status != PSA_SUCCESS) {
-                ret = PSA_TO_MBEDTLS_ERR(status);
-                goto exit;
-            }
-            ssl->handshake->xxdh_psa_type = psa_get_key_type(&key_attributes);
-            ssl->handshake->xxdh_psa_bits = psa_get_key_bits(&key_attributes);
-
-#if defined(MBEDTLS_PK_USE_PSA_EC_DATA)
-            if (pk_type != MBEDTLS_PK_OPAQUE) {
-                /* PK_ECKEY[_DH] and PK_ECDSA instead as parsed from the PK
-                 * module and only have ECDSA capabilities. Since we need
-                 * them for ECDH later, we export and then re-import them with
-                 * proper flags and algorithm. Of course We also set key's type
-                 * and bits that we just got above. */
-                key_attributes = psa_key_attributes_init();
-                psa_set_key_usage_flags(&key_attributes, PSA_KEY_USAGE_DERIVE);
-                psa_set_key_algorithm(&key_attributes, PSA_ALG_ECDH);
-                psa_set_key_type(&key_attributes,
-                                 PSA_KEY_TYPE_ECC_KEY_PAIR(ssl->handshake->xxdh_psa_type));
-                psa_set_key_bits(&key_attributes, ssl->handshake->xxdh_psa_bits);
-
-                status = psa_export_key(pk->priv_id, buf, sizeof(buf), &key_len);
-                if (status != PSA_SUCCESS) {
-                    ret = PSA_TO_MBEDTLS_ERR(status);
-                    goto exit;
-                }
-                status = psa_import_key(&key_attributes, buf, key_len,
-                                        &ssl->handshake->xxdh_psa_privkey);
-                if (status != PSA_SUCCESS) {
-                    ret = PSA_TO_MBEDTLS_ERR(status);
-                    goto exit;
-                }
-
-                /* Set this key as owned by the TLS library: it will be its duty
-                 * to clear it exit. */
-                ssl->handshake->xxdh_psa_privkey_is_external = 0;
-
-                ret = 0;
-                break;
-            }
-#endif /* MBEDTLS_PK_USE_PSA_EC_DATA */
-
-            /* Opaque key is created by the user (externally from Mbed TLS)
-             * so we assume it already has the right algorithm and flags
-             * set. Just copy its ID as reference. */
-            ssl->handshake->xxdh_psa_privkey = pk->priv_id;
-            ssl->handshake->xxdh_psa_privkey_is_external = 1;
-            ret = 0;
-            break;
-
-#if !defined(MBEDTLS_PK_USE_PSA_EC_DATA)
-        case MBEDTLS_PK_ECKEY:
-        case MBEDTLS_PK_ECKEY_DH:
-        case MBEDTLS_PK_ECDSA:
-            key = mbedtls_pk_ec_rw(*pk);
-            grp_id = mbedtls_pk_get_ec_group_id(pk);
-            if (grp_id == MBEDTLS_ECP_DP_NONE) {
-                return MBEDTLS_ERR_ECP_BAD_INPUT_DATA;
-            }
-            tls_id = mbedtls_ssl_get_tls_id_from_ecp_group_id(grp_id);
-            if (tls_id == 0) {
-                /* This elliptic curve is not supported */
-                return MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE;
-            }
-
-            /* If the above conversion to TLS ID was fine, then also this one will
-               be, so there is no need to check the return value here */
-            mbedtls_ssl_get_psa_curve_info_from_tls_id(tls_id, &key_type,
-                                                       &ssl->handshake->xxdh_psa_bits);
-
-            ssl->handshake->xxdh_psa_type = key_type;
-
-            key_attributes = psa_key_attributes_init();
-            psa_set_key_usage_flags(&key_attributes, PSA_KEY_USAGE_DERIVE);
-            psa_set_key_algorithm(&key_attributes, PSA_ALG_ECDH);
-            psa_set_key_type(&key_attributes,
-                             PSA_KEY_TYPE_ECC_KEY_PAIR(ssl->handshake->xxdh_psa_type));
-            psa_set_key_bits(&key_attributes, ssl->handshake->xxdh_psa_bits);
-
-            ret = mbedtls_ecp_write_key_ext(key, &key_len, buf, sizeof(buf));
-            if (ret != 0) {
-                mbedtls_platform_zeroize(buf, sizeof(buf));
-                break;
-            }
-
-            status = psa_import_key(&key_attributes, buf, key_len,
-                                    &ssl->handshake->xxdh_psa_privkey);
-            if (status != PSA_SUCCESS) {
-                ret = PSA_TO_MBEDTLS_ERR(status);
-                mbedtls_platform_zeroize(buf, sizeof(buf));
-                break;
-            }
-
-            mbedtls_platform_zeroize(buf, sizeof(buf));
-            ret = 0;
-            break;
-#endif /* !MBEDTLS_PK_USE_PSA_EC_DATA */
-        default:
-            ret = MBEDTLS_ERR_SSL_PK_TYPE_MISMATCH;
-    }
-
-exit:
-    psa_reset_key_attributes(&key_attributes);
-    mbedtls_platform_zeroize(buf, sizeof(buf));
-
-    return ret;
-}
-#else /* MBEDTLS_USE_PSA_CRYPTO */
-MBEDTLS_CHECK_RETURN_CRITICAL
-static int ssl_get_ecdh_params_from_cert(mbedtls_ssl_context *ssl)
-{
-    int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
-
-    const mbedtls_pk_context *private_key = mbedtls_ssl_own_key(ssl);
-    if (private_key == NULL) {
-        MBEDTLS_SSL_DEBUG_MSG(1, ("got no server private key"));
-        return MBEDTLS_ERR_SSL_PRIVATE_KEY_REQUIRED;
-    }
-
-    if (!mbedtls_pk_can_do(private_key, MBEDTLS_PK_ECKEY)) {
-        MBEDTLS_SSL_DEBUG_MSG(1, ("server key not ECDH capable"));
-        return MBEDTLS_ERR_SSL_PK_TYPE_MISMATCH;
-    }
-
-    if ((ret = mbedtls_ecdh_get_params(&ssl->handshake->ecdh_ctx,
-                                       mbedtls_pk_ec_ro(*mbedtls_ssl_own_key(ssl)),
-                                       MBEDTLS_ECDH_OURS)) != 0) {
-        MBEDTLS_SSL_DEBUG_RET(1, ("mbedtls_ecdh_get_params"), ret);
-        return ret;
-    }
-
-    return 0;
-}
-#endif /* MBEDTLS_USE_PSA_CRYPTO */
-#endif /* MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED) ||
-          MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED */
-
 #if defined(MBEDTLS_KEY_EXCHANGE_WITH_SERVER_SIGNATURE_ENABLED) && \
     defined(MBEDTLS_SSL_ASYNC_PRIVATE)
 MBEDTLS_CHECK_RETURN_CRITICAL
@@ -2810,7 +2582,6 @@ static int ssl_prepare_server_key_exchange(mbedtls_ssl_context *ssl,
 #if defined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED)
     if (ciphersuite_info->key_exchange == MBEDTLS_KEY_EXCHANGE_ECJPAKE) {
         int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
-#if defined(MBEDTLS_USE_PSA_CRYPTO)
         unsigned char *out_p = ssl->out_msg + ssl->out_msglen;
         unsigned char *end_p = ssl->out_msg + MBEDTLS_SSL_OUT_CONTENT_LEN -
                                ssl->out_msglen;
@@ -2847,89 +2618,20 @@ static int ssl_prepare_server_key_exchange(mbedtls_ssl_context *ssl,

         output_offset += output_len;
         ssl->out_msglen += output_offset;
-#else
-        size_t len = 0;
-
-        ret = mbedtls_ecjpake_write_round_two(
-            &ssl->handshake->ecjpake_ctx,
-            ssl->out_msg + ssl->out_msglen,
-            MBEDTLS_SSL_OUT_CONTENT_LEN - ssl->out_msglen, &len,
-            ssl->conf->f_rng, ssl->conf->p_rng);
-        if (ret != 0) {
-            MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_ecjpake_write_round_two", ret);
-            return ret;
-        }
-
-        ssl->out_msglen += len;
-#endif /* MBEDTLS_USE_PSA_CRYPTO */
     }
 #endif /* MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED */

     /*
-     * For (EC)DHE key exchanges with PSK, parameters are prefixed by support
+     * For ECDHE key exchanges with PSK, parameters are prefixed by support
      * identity hint (RFC 4279, Sec. 3). Until someone needs this feature,
      * we use empty support identity hints here.
      **/
-#if defined(MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED)   || \
-    defined(MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED)
-    if (ciphersuite_info->key_exchange == MBEDTLS_KEY_EXCHANGE_DHE_PSK ||
-        ciphersuite_info->key_exchange == MBEDTLS_KEY_EXCHANGE_ECDHE_PSK) {
+#if defined(MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED)
+    if (ciphersuite_info->key_exchange == MBEDTLS_KEY_EXCHANGE_ECDHE_PSK) {
         ssl->out_msg[ssl->out_msglen++] = 0x00;
         ssl->out_msg[ssl->out_msglen++] = 0x00;
     }
-#endif /* MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED ||
-          MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED */
-
-    /*
-     * - DHE key exchanges
-     */
-#if defined(MBEDTLS_KEY_EXCHANGE_SOME_DHE_ENABLED)
-    if (mbedtls_ssl_ciphersuite_uses_dhe(ciphersuite_info)) {
-        int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
-        size_t len = 0;
-
-        if (ssl->conf->dhm_P.p == NULL || ssl->conf->dhm_G.p == NULL) {
-            MBEDTLS_SSL_DEBUG_MSG(1, ("no DH parameters set"));
-            return MBEDTLS_ERR_SSL_BAD_INPUT_DATA;
-        }
-
-        /*
-         * Ephemeral DH parameters:
-         *
-         * struct {
-         *     opaque dh_p<1..2^16-1>;
-         *     opaque dh_g<1..2^16-1>;
-         *     opaque dh_Ys<1..2^16-1>;
-         * } ServerDHParams;
-         */
-        if ((ret = mbedtls_dhm_set_group(&ssl->handshake->dhm_ctx,
-                                         &ssl->conf->dhm_P,
-                                         &ssl->conf->dhm_G)) != 0) {
-            MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_dhm_set_group", ret);
-            return ret;
-        }
-
-        if ((ret = mbedtls_dhm_make_params(
-                 &ssl->handshake->dhm_ctx,
-                 (int) mbedtls_dhm_get_len(&ssl->handshake->dhm_ctx),
-                 ssl->out_msg + ssl->out_msglen, &len,
-                 ssl->conf->f_rng, ssl->conf->p_rng)) != 0) {
-            MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_dhm_make_params", ret);
-            return ret;
-        }
-
-#if defined(MBEDTLS_KEY_EXCHANGE_WITH_SERVER_SIGNATURE_ENABLED)
-        dig_signed = ssl->out_msg + ssl->out_msglen;
-#endif
-
-        ssl->out_msglen += len;
-
-        MBEDTLS_SSL_DEBUG_MPI(3, "DHM: X ", &ssl->handshake->dhm_ctx.X);
-        MBEDTLS_SSL_DEBUG_MPI(3, "DHM: P ", &ssl->handshake->dhm_ctx.P);
-        MBEDTLS_SSL_DEBUG_MPI(3, "DHM: G ", &ssl->handshake->dhm_ctx.G);
-        MBEDTLS_SSL_DEBUG_MPI(3, "DHM: GX", &ssl->handshake->dhm_ctx.GX);
-    }
-#endif /* MBEDTLS_KEY_EXCHANGE_SOME_DHE_ENABLED */
+#endif /* MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED */

     /*
      * - ECDHE key exchanges
@@ -2945,7 +2647,7 @@ static int ssl_prepare_server_key_exchange(mbedtls_ssl_context *ssl,
          * } ServerECDHParams;
          */
         uint16_t *curr_tls_id = ssl->handshake->curves_tls_id;
-        const uint16_t *group_list = mbedtls_ssl_get_groups(ssl);
+        const uint16_t *group_list = ssl->conf->group_list;
         int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
         size_t len = 0;

@@ -2971,7 +2673,6 @@ curve_matching_done:
         MBEDTLS_SSL_DEBUG_MSG(2, ("ECDHE curve: %s",
                                   mbedtls_ssl_get_curve_name_from_tls_id(*curr_tls_id)));

-#if defined(MBEDTLS_USE_PSA_CRYPTO)
         psa_status_t status = PSA_ERROR_GENERIC_ERROR;
         psa_key_attributes_t key_attributes;
         mbedtls_ssl_handshake_params *handshake = ssl->handshake;
@@ -3053,28 +2754,6 @@ curve_matching_done:

         /* Determine full message length. */
         len += header_size;
-#else
-        mbedtls_ecp_group_id curr_grp_id =
-            mbedtls_ssl_get_ecp_group_id_from_tls_id(*curr_tls_id);
-
-        if ((ret = mbedtls_ecdh_setup(&ssl->handshake->ecdh_ctx,
-                                      curr_grp_id)) != 0) {
-            MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_ecp_group_load", ret);
-            return ret;
-        }
-
-        if ((ret = mbedtls_ecdh_make_params(
-                 &ssl->handshake->ecdh_ctx, &len,
-                 ssl->out_msg + ssl->out_msglen,
-                 MBEDTLS_SSL_OUT_CONTENT_LEN - ssl->out_msglen,
-                 ssl->conf->f_rng, ssl->conf->p_rng)) != 0) {
-            MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_ecdh_make_params", ret);
-            return ret;
-        }
-
-        MBEDTLS_SSL_DEBUG_ECDH(3, &ssl->handshake->ecdh_ctx,
-                               MBEDTLS_DEBUG_ECDH_Q);
-#endif /* MBEDTLS_USE_PSA_CRYPTO */

 #if defined(MBEDTLS_KEY_EXCHANGE_WITH_SERVER_SIGNATURE_ENABLED)
         dig_signed = ssl->out_msg + ssl->out_msglen;
@@ -3205,9 +2884,7 @@ curve_matching_done:
                                    md_alg, hash, hashlen,
                                    ssl->out_msg + ssl->out_msglen + 2,
                                    out_buf_len - ssl->out_msglen - 2,
-                                   signature_len,
-                                   ssl->conf->f_rng,
-                                   ssl->conf->p_rng)) != 0) {
+                                   signature_len)) != 0) {
             MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_pk_sign", ret);
             return ret;
         }
@@ -3226,36 +2903,22 @@ static int ssl_write_server_key_exchange(mbedtls_ssl_context *ssl)
 {
     int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
     size_t signature_len = 0;
-#if defined(MBEDTLS_KEY_EXCHANGE_SOME_NON_PFS_ENABLED)
+#if defined(MBEDTLS_KEY_EXCHANGE_PSK_ENABLED)
     const mbedtls_ssl_ciphersuite_t *ciphersuite_info =
         ssl->handshake->ciphersuite_info;
-#endif /* MBEDTLS_KEY_EXCHANGE_SOME_NON_PFS_ENABLED */
+#endif /* MBEDTLS_KEY_EXCHANGE_PSK_ENABLED */

     MBEDTLS_SSL_DEBUG_MSG(2, ("=> write server key exchange"));

-#if defined(MBEDTLS_KEY_EXCHANGE_SOME_NON_PFS_ENABLED)
-    /* Extract static ECDH parameters and abort if ServerKeyExchange
-     * is not needed. */
+#if defined(MBEDTLS_KEY_EXCHANGE_PSK_ENABLED)
     if (mbedtls_ssl_ciphersuite_no_pfs(ciphersuite_info)) {
-        /* For suites involving ECDH, extract DH parameters
-         * from certificate at this point. */
-#if defined(MBEDTLS_KEY_EXCHANGE_SOME_ECDH_ENABLED)
-        if (mbedtls_ssl_ciphersuite_uses_ecdh(ciphersuite_info)) {
-            ret = ssl_get_ecdh_params_from_cert(ssl);
-            if (ret != 0) {
-                MBEDTLS_SSL_DEBUG_RET(1, "ssl_get_ecdh_params_from_cert", ret);
-                return ret;
-            }
-        }
-#endif /* MBEDTLS_KEY_EXCHANGE_SOME_ECDH_ENABLED */
-
         /* Key exchanges not involving ephemeral keys don't use
          * ServerKeyExchange, so end here. */
         MBEDTLS_SSL_DEBUG_MSG(2, ("<= skip write server key exchange"));
         mbedtls_ssl_handshake_increment_state(ssl);
         return 0;
     }
-#endif /* MBEDTLS_KEY_EXCHANGE_SOME_NON_PFS_ENABLED */
+#endif /* MBEDTLS_KEY_EXCHANGE_PSK_ENABLED */

 #if defined(MBEDTLS_KEY_EXCHANGE_WITH_SERVER_SIGNATURE_ENABLED) && \
     defined(MBEDTLS_SSL_ASYNC_PRIVATE)
@@ -3354,235 +3017,6 @@ static int ssl_write_server_hello_done(mbedtls_ssl_context *ssl)
     return 0;
 }

-#if defined(MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED) ||                       \
-    defined(MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED)
-MBEDTLS_CHECK_RETURN_CRITICAL
-static int ssl_parse_client_dh_public(mbedtls_ssl_context *ssl, unsigned char **p,
-                                      const unsigned char *end)
-{
-    int ret = MBEDTLS_ERR_SSL_FEATURE_UNAVAILABLE;
-    size_t n;
-
-    /*
-     * Receive G^Y mod P, premaster = (G^Y)^X mod P
-     */
-    if (*p + 2 > end) {
-        MBEDTLS_SSL_DEBUG_MSG(1, ("bad client key exchange message"));
-        return MBEDTLS_ERR_SSL_DECODE_ERROR;
-    }
-
-    n = MBEDTLS_GET_UINT16_BE(*p, 0);
-    *p += 2;
-
-    if (*p + n > end) {
-        MBEDTLS_SSL_DEBUG_MSG(1, ("bad client key exchange message"));
-        return MBEDTLS_ERR_SSL_DECODE_ERROR;
-    }
-
-    if ((ret = mbedtls_dhm_read_public(&ssl->handshake->dhm_ctx, *p, n)) != 0) {
-        MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_dhm_read_public", ret);
-        return MBEDTLS_ERR_SSL_DECODE_ERROR;
-    }
-
-    *p += n;
-
-    MBEDTLS_SSL_DEBUG_MPI(3, "DHM: GY", &ssl->handshake->dhm_ctx.GY);
-
-    return ret;
-}
-#endif /* MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED ||
-          MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED */
-
-#if defined(MBEDTLS_KEY_EXCHANGE_RSA_ENABLED) ||                           \
-    defined(MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED)
-
-#if defined(MBEDTLS_SSL_ASYNC_PRIVATE)
-MBEDTLS_CHECK_RETURN_CRITICAL
-static int ssl_resume_decrypt_pms(mbedtls_ssl_context *ssl,
-                                  unsigned char *peer_pms,
-                                  size_t *peer_pmslen,
-                                  size_t peer_pmssize)
-{
-    int ret = ssl->conf->f_async_resume(ssl,
-                                        peer_pms, peer_pmslen, peer_pmssize);
-    if (ret != MBEDTLS_ERR_SSL_ASYNC_IN_PROGRESS) {
-        ssl->handshake->async_in_progress = 0;
-        mbedtls_ssl_set_async_operation_data(ssl, NULL);
-    }
-    MBEDTLS_SSL_DEBUG_RET(2, "ssl_decrypt_encrypted_pms", ret);
-    return ret;
-}
-#endif /* MBEDTLS_SSL_ASYNC_PRIVATE */
-
-MBEDTLS_CHECK_RETURN_CRITICAL
-static int ssl_decrypt_encrypted_pms(mbedtls_ssl_context *ssl,
-                                     const unsigned char *p,
-                                     const unsigned char *end,
-                                     unsigned char *peer_pms,
-                                     size_t *peer_pmslen,
-                                     size_t peer_pmssize)
-{
-    int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
-
-    mbedtls_x509_crt *own_cert = mbedtls_ssl_own_cert(ssl);
-    if (own_cert == NULL) {
-        MBEDTLS_SSL_DEBUG_MSG(1, ("got no local certificate"));
-        return MBEDTLS_ERR_SSL_NO_CLIENT_CERTIFICATE;
-    }
-    mbedtls_pk_context *public_key = &own_cert->pk;
-    mbedtls_pk_context *private_key = mbedtls_ssl_own_key(ssl);
-    size_t len = mbedtls_pk_get_len(public_key);
-
-#if defined(MBEDTLS_SSL_ASYNC_PRIVATE)
-    /* If we have already started decoding the message and there is an ongoing
-     * decryption operation, resume signing. */
-    if (ssl->handshake->async_in_progress != 0) {
-        MBEDTLS_SSL_DEBUG_MSG(2, ("resuming decryption operation"));
-        return ssl_resume_decrypt_pms(ssl,
-                                      peer_pms, peer_pmslen, peer_pmssize);
-    }
-#endif /* MBEDTLS_SSL_ASYNC_PRIVATE */
-
-    /*
-     * Prepare to decrypt the premaster using own private RSA key
-     */
-    if (p + 2 > end) {
-        MBEDTLS_SSL_DEBUG_MSG(1, ("bad client key exchange message"));
-        return MBEDTLS_ERR_SSL_DECODE_ERROR;
-    }
-    if (*p++ != MBEDTLS_BYTE_1(len) ||
-        *p++ != MBEDTLS_BYTE_0(len)) {
-        MBEDTLS_SSL_DEBUG_MSG(1, ("bad client key exchange message"));
-        return MBEDTLS_ERR_SSL_DECODE_ERROR;
-    }
-
-    if (p + len != end) {
-        MBEDTLS_SSL_DEBUG_MSG(1, ("bad client key exchange message"));
-        return MBEDTLS_ERR_SSL_DECODE_ERROR;
-    }
-
-    /*
-     * Decrypt the premaster secret
-     */
-#if defined(MBEDTLS_SSL_ASYNC_PRIVATE)
-    if (ssl->conf->f_async_decrypt_start != NULL) {
-        ret = ssl->conf->f_async_decrypt_start(ssl,
-                                               mbedtls_ssl_own_cert(ssl),
-                                               p, len);
-        switch (ret) {
-            case MBEDTLS_ERR_SSL_HW_ACCEL_FALLTHROUGH:
-                /* act as if f_async_decrypt_start was null */
-                break;
-            case 0:
-                ssl->handshake->async_in_progress = 1;
-                return ssl_resume_decrypt_pms(ssl,
-                                              peer_pms,
-                                              peer_pmslen,
-                                              peer_pmssize);
-            case MBEDTLS_ERR_SSL_ASYNC_IN_PROGRESS:
-                ssl->handshake->async_in_progress = 1;
-                return MBEDTLS_ERR_SSL_ASYNC_IN_PROGRESS;
-            default:
-                MBEDTLS_SSL_DEBUG_RET(1, "f_async_decrypt_start", ret);
-                return ret;
-        }
-    }
-#endif /* MBEDTLS_SSL_ASYNC_PRIVATE */
-
-    if (!mbedtls_pk_can_do(private_key, MBEDTLS_PK_RSA)) {
-        MBEDTLS_SSL_DEBUG_MSG(1, ("got no RSA private key"));
-        return MBEDTLS_ERR_SSL_PRIVATE_KEY_REQUIRED;
-    }
-
-    ret = mbedtls_pk_decrypt(private_key, p, len,
-                             peer_pms, peer_pmslen, peer_pmssize,
-                             ssl->conf->f_rng, ssl->conf->p_rng);
-    return ret;
-}
-
-MBEDTLS_CHECK_RETURN_CRITICAL
-static int ssl_parse_encrypted_pms(mbedtls_ssl_context *ssl,
-                                   const unsigned char *p,
-                                   const unsigned char *end,
-                                   size_t pms_offset)
-{
-    int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
-    unsigned char *pms = ssl->handshake->premaster + pms_offset;
-    unsigned char ver[2];
-    unsigned char fake_pms[48], peer_pms[48];
-    size_t peer_pmslen;
-    mbedtls_ct_condition_t diff;
-
-    /* In case of a failure in decryption, the decryption may write less than
-     * 2 bytes of output, but we always read the first two bytes. It doesn't
-     * matter in the end because diff will be nonzero in that case due to
-     * ret being nonzero, and we only care whether diff is 0.
-     * But do initialize peer_pms and peer_pmslen for robustness anyway. This
-     * also makes memory analyzers happy (don't access uninitialized memory,
-     * even if it's an unsigned char). */
-    peer_pms[0] = peer_pms[1] = ~0;
-    peer_pmslen = 0;
-
-    ret = ssl_decrypt_encrypted_pms(ssl, p, end,
-                                    peer_pms,
-                                    &peer_pmslen,
-                                    sizeof(peer_pms));
-
-#if defined(MBEDTLS_SSL_ASYNC_PRIVATE)
-    if (ret == MBEDTLS_ERR_SSL_ASYNC_IN_PROGRESS) {
-        return ret;
-    }
-#endif /* MBEDTLS_SSL_ASYNC_PRIVATE */
-
-    mbedtls_ssl_write_version(ver, ssl->conf->transport,
-                              ssl->session_negotiate->tls_version);
-
-    /* Avoid data-dependent branches while checking for invalid
-     * padding, to protect against timing-based Bleichenbacher-type
-     * attacks. */
-    diff = mbedtls_ct_bool(ret);
-    diff = mbedtls_ct_bool_or(diff, mbedtls_ct_uint_ne(peer_pmslen, 48));
-    diff = mbedtls_ct_bool_or(diff, mbedtls_ct_uint_ne(peer_pms[0], ver[0]));
-    diff = mbedtls_ct_bool_or(diff, mbedtls_ct_uint_ne(peer_pms[1], ver[1]));
-
-    /*
-     * Protection against Bleichenbacher's attack: invalid PKCS#1 v1.5 padding
-     * must not cause the connection to end immediately; instead, send a
-     * bad_record_mac later in the handshake.
-     * To protect against timing-based variants of the attack, we must
-     * not have any branch that depends on whether the decryption was
-     * successful. In particular, always generate the fake premaster secret,
-     * regardless of whether it will ultimately influence the output or not.
-     */
-    ret = ssl->conf->f_rng(ssl->conf->p_rng, fake_pms, sizeof(fake_pms));
-    if (ret != 0) {
-        /* It's ok to abort on an RNG failure, since this does not reveal
-         * anything about the RSA decryption. */
-        return ret;
-    }
-
-#if defined(MBEDTLS_SSL_DEBUG_ALL)
-    if (diff != MBEDTLS_CT_FALSE) {
-        MBEDTLS_SSL_DEBUG_MSG(1, ("bad client key exchange message"));
-    }
-#endif
-
-    if (sizeof(ssl->handshake->premaster) < pms_offset ||
-        sizeof(ssl->handshake->premaster) - pms_offset < 48) {
-        MBEDTLS_SSL_DEBUG_MSG(1, ("should never happen"));
-        return MBEDTLS_ERR_SSL_INTERNAL_ERROR;
-    }
-    ssl->handshake->pmslen = 48;
-
-    /* Set pms to either the true or the fake PMS, without
-     * data-dependent branches. */
-    mbedtls_ct_memcpy_if(diff, pms, fake_pms, peer_pms, ssl->handshake->pmslen);
-
-    return 0;
-}
-#endif /* MBEDTLS_KEY_EXCHANGE_RSA_ENABLED ||
-          MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED */
-
 #if defined(MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED)
 MBEDTLS_CHECK_RETURN_CRITICAL
 static int ssl_parse_client_psk_identity(mbedtls_ssl_context *ssl, unsigned char **p,
@@ -3649,18 +3083,6 @@ static int ssl_parse_client_key_exchange(mbedtls_ssl_context *ssl)

     MBEDTLS_SSL_DEBUG_MSG(2, ("=> parse client key exchange"));

-#if defined(MBEDTLS_SSL_ASYNC_PRIVATE) && \
-    (defined(MBEDTLS_KEY_EXCHANGE_RSA_ENABLED) || \
-    defined(MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED))
-    if ((ciphersuite_info->key_exchange == MBEDTLS_KEY_EXCHANGE_RSA_PSK ||
-         ciphersuite_info->key_exchange == MBEDTLS_KEY_EXCHANGE_RSA) &&
-        (ssl->handshake->async_in_progress != 0)) {
-        /* We've already read a record and there is an asynchronous
-         * operation in progress to decrypt it. So skip reading the
-         * record. */
-        MBEDTLS_SSL_DEBUG_MSG(3, ("will resume decryption of previously-read record"));
-    } else
-#endif
     if ((ret = mbedtls_ssl_read_record(ssl, 1)) != 0) {
         MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_ssl_read_record", ret);
         return ret;
@@ -3679,39 +3101,10 @@ static int ssl_parse_client_key_exchange(mbedtls_ssl_context *ssl)
         return MBEDTLS_ERR_SSL_UNEXPECTED_MESSAGE;
     }

-#if defined(MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED)
-    if (ciphersuite_info->key_exchange == MBEDTLS_KEY_EXCHANGE_DHE_RSA) {
-        if ((ret = ssl_parse_client_dh_public(ssl, &p, end)) != 0) {
-            MBEDTLS_SSL_DEBUG_RET(1, ("ssl_parse_client_dh_public"), ret);
-            return ret;
-        }
-
-        if (p != end) {
-            MBEDTLS_SSL_DEBUG_MSG(1, ("bad client key exchange"));
-            return MBEDTLS_ERR_SSL_DECODE_ERROR;
-        }
-
-        if ((ret = mbedtls_dhm_calc_secret(&ssl->handshake->dhm_ctx,
-                                           ssl->handshake->premaster,
-                                           MBEDTLS_PREMASTER_SIZE,
-                                           &ssl->handshake->pmslen,
-                                           ssl->conf->f_rng, ssl->conf->p_rng)) != 0) {
-            MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_dhm_calc_secret", ret);
-            return MBEDTLS_ERR_SSL_DECODE_ERROR;
-        }
-
-        MBEDTLS_SSL_DEBUG_MPI(3, "DHM: K ", &ssl->handshake->dhm_ctx.K);
-    } else
-#endif /* MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED */
 #if defined(MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED) ||                     \
-    defined(MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED) ||                   \
-    defined(MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED) ||                      \
-    defined(MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED)
+    defined(MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED)
     if (ciphersuite_info->key_exchange == MBEDTLS_KEY_EXCHANGE_ECDHE_RSA ||
-        ciphersuite_info->key_exchange == MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA ||
-        ciphersuite_info->key_exchange == MBEDTLS_KEY_EXCHANGE_ECDH_RSA ||
-        ciphersuite_info->key_exchange == MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA) {
-#if defined(MBEDTLS_USE_PSA_CRYPTO)
+        ciphersuite_info->key_exchange == MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA) {
         size_t data_len = (size_t) (*p++);
         size_t buf_len = (size_t) (end - p);
         psa_status_t status = PSA_ERROR_GENERIC_ERROR;
@@ -3772,33 +3165,9 @@ static int ssl_parse_client_key_exchange(mbedtls_ssl_context *ssl)
             }
         }
         handshake->xxdh_psa_privkey = MBEDTLS_SVC_KEY_ID_INIT;
-#else
-        if ((ret = mbedtls_ecdh_read_public(&ssl->handshake->ecdh_ctx,
-                                            p, (size_t) (end - p))) != 0) {
-            MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_ecdh_read_public", ret);
-            return MBEDTLS_ERR_SSL_DECODE_ERROR;
-        }
-
-        MBEDTLS_SSL_DEBUG_ECDH(3, &ssl->handshake->ecdh_ctx,
-                               MBEDTLS_DEBUG_ECDH_QP);
-
-        if ((ret = mbedtls_ecdh_calc_secret(&ssl->handshake->ecdh_ctx,
-                                            &ssl->handshake->pmslen,
-                                            ssl->handshake->premaster,
-                                            MBEDTLS_MPI_MAX_SIZE,
-                                            ssl->conf->f_rng, ssl->conf->p_rng)) != 0) {
-            MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_ecdh_calc_secret", ret);
-            return MBEDTLS_ERR_SSL_DECODE_ERROR;
-        }
-
-        MBEDTLS_SSL_DEBUG_ECDH(3, &ssl->handshake->ecdh_ctx,
-                               MBEDTLS_DEBUG_ECDH_Z);
-#endif /* MBEDTLS_USE_PSA_CRYPTO */
     } else
 #endif /* MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED ||
-          MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED ||
-          MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED ||
-          MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED */
+          MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED */
 #if defined(MBEDTLS_KEY_EXCHANGE_PSK_ENABLED)
     if (ciphersuite_info->key_exchange == MBEDTLS_KEY_EXCHANGE_PSK) {
         if ((ret = ssl_parse_client_psk_identity(ssl, &p, end)) != 0) {
@@ -3811,94 +3180,10 @@ static int ssl_parse_client_key_exchange(mbedtls_ssl_context *ssl)
             return MBEDTLS_ERR_SSL_DECODE_ERROR;
         }

-#if !defined(MBEDTLS_USE_PSA_CRYPTO)
-        if ((ret = mbedtls_ssl_psk_derive_premaster(ssl,
-                                                    (mbedtls_key_exchange_type_t) ciphersuite_info->
-                                                    key_exchange)) != 0) {
-            MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_ssl_psk_derive_premaster", ret);
-            return ret;
-        }
-#endif /* !MBEDTLS_USE_PSA_CRYPTO */
     } else
 #endif /* MBEDTLS_KEY_EXCHANGE_PSK_ENABLED */
-#if defined(MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED)
-    if (ciphersuite_info->key_exchange == MBEDTLS_KEY_EXCHANGE_RSA_PSK) {
-#if defined(MBEDTLS_SSL_ASYNC_PRIVATE)
-        if (ssl->handshake->async_in_progress != 0) {
-            /* There is an asynchronous operation in progress to
-             * decrypt the encrypted premaster secret, so skip
-             * directly to resuming this operation. */
-            MBEDTLS_SSL_DEBUG_MSG(3, ("PSK identity already parsed"));
-            /* Update p to skip the PSK identity. ssl_parse_encrypted_pms
-             * won't actually use it, but maintain p anyway for robustness. */
-            p += ssl->conf->psk_identity_len + 2;
-        } else
-#endif /* MBEDTLS_SSL_ASYNC_PRIVATE */
-        if ((ret = ssl_parse_client_psk_identity(ssl, &p, end)) != 0) {
-            MBEDTLS_SSL_DEBUG_RET(1, ("ssl_parse_client_psk_identity"), ret);
-            return ret;
-        }
-
-        if ((ret = ssl_parse_encrypted_pms(ssl, p, end, 2)) != 0) {
-            MBEDTLS_SSL_DEBUG_RET(1, ("ssl_parse_encrypted_pms"), ret);
-            return ret;
-        }
-
-#if !defined(MBEDTLS_USE_PSA_CRYPTO)
-        if ((ret = mbedtls_ssl_psk_derive_premaster(ssl,
-                                                    (mbedtls_key_exchange_type_t) ciphersuite_info->
-                                                    key_exchange)) != 0) {
-            MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_ssl_psk_derive_premaster", ret);
-            return ret;
-        }
-#endif /* !MBEDTLS_USE_PSA_CRYPTO */
-    } else
-#endif /* MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED */
-#if defined(MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED)
-    if (ciphersuite_info->key_exchange == MBEDTLS_KEY_EXCHANGE_DHE_PSK) {
-        if ((ret = ssl_parse_client_psk_identity(ssl, &p, end)) != 0) {
-            MBEDTLS_SSL_DEBUG_RET(1, ("ssl_parse_client_psk_identity"), ret);
-            return ret;
-        }
-        if ((ret = ssl_parse_client_dh_public(ssl, &p, end)) != 0) {
-            MBEDTLS_SSL_DEBUG_RET(1, ("ssl_parse_client_dh_public"), ret);
-            return ret;
-        }
-
-        if (p != end) {
-            MBEDTLS_SSL_DEBUG_MSG(1, ("bad client key exchange"));
-            return MBEDTLS_ERR_SSL_DECODE_ERROR;
-        }
-
-#if defined(MBEDTLS_USE_PSA_CRYPTO)
-        unsigned char *pms = ssl->handshake->premaster;
-        unsigned char *pms_end = pms + sizeof(ssl->handshake->premaster);
-        size_t pms_len;
-
-        /* Write length only when we know the actual value */
-        if ((ret = mbedtls_dhm_calc_secret(&ssl->handshake->dhm_ctx,
-                                           pms + 2, pms_end - (pms + 2), &pms_len,
-                                           ssl->conf->f_rng, ssl->conf->p_rng)) != 0) {
-            MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_dhm_calc_secret", ret);
-            return ret;
-        }
-        MBEDTLS_PUT_UINT16_BE(pms_len, pms, 0);
-        pms += 2 + pms_len;
-
-        MBEDTLS_SSL_DEBUG_MPI(3, "DHM: K ", &ssl->handshake->dhm_ctx.K);
-#else
-        if ((ret = mbedtls_ssl_psk_derive_premaster(ssl,
-                                                    (mbedtls_key_exchange_type_t) ciphersuite_info->
-                                                    key_exchange)) != 0) {
-            MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_ssl_psk_derive_premaster", ret);
-            return ret;
-        }
-#endif /* MBEDTLS_USE_PSA_CRYPTO */
-    } else
-#endif /* MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED */
 #if defined(MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED)
     if (ciphersuite_info->key_exchange == MBEDTLS_KEY_EXCHANGE_ECDHE_PSK) {
-#if defined(MBEDTLS_USE_PSA_CRYPTO)
         psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED;
         psa_status_t destruction_status = PSA_ERROR_CORRUPTION_DETECTED;
         size_t ecpoint_len;
@@ -3980,41 +3265,10 @@ static int ssl_parse_client_key_exchange(mbedtls_ssl_context *ssl)
         MBEDTLS_PUT_UINT16_BE(zlen, psm, 0);
         psm += zlen_size + zlen;

-#else /* MBEDTLS_USE_PSA_CRYPTO */
-        if ((ret = ssl_parse_client_psk_identity(ssl, &p, end)) != 0) {
-            MBEDTLS_SSL_DEBUG_RET(1, ("ssl_parse_client_psk_identity"), ret);
-            return ret;
-        }
-
-        if ((ret = mbedtls_ecdh_read_public(&ssl->handshake->ecdh_ctx,
-                                            p, (size_t) (end - p))) != 0) {
-            MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_ecdh_read_public", ret);
-            return MBEDTLS_ERR_SSL_DECODE_ERROR;
-        }
-
-        MBEDTLS_SSL_DEBUG_ECDH(3, &ssl->handshake->ecdh_ctx,
-                               MBEDTLS_DEBUG_ECDH_QP);
-
-        if ((ret = mbedtls_ssl_psk_derive_premaster(ssl,
-                                                    (mbedtls_key_exchange_type_t) ciphersuite_info->
-                                                    key_exchange)) != 0) {
-            MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_ssl_psk_derive_premaster", ret);
-            return ret;
-        }
-#endif /* MBEDTLS_USE_PSA_CRYPTO */
     } else
 #endif /* MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED */
-#if defined(MBEDTLS_KEY_EXCHANGE_RSA_ENABLED)
-    if (ciphersuite_info->key_exchange == MBEDTLS_KEY_EXCHANGE_RSA) {
-        if ((ret = ssl_parse_encrypted_pms(ssl, p, end, 0)) != 0) {
-            MBEDTLS_SSL_DEBUG_RET(1, ("ssl_parse_parse_encrypted_pms_secret"), ret);
-            return ret;
-        }
-    } else
-#endif /* MBEDTLS_KEY_EXCHANGE_RSA_ENABLED */
 #if defined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED)
     if (ciphersuite_info->key_exchange == MBEDTLS_KEY_EXCHANGE_ECJPAKE) {
-#if defined(MBEDTLS_USE_PSA_CRYPTO)
         if ((ret = mbedtls_psa_ecjpake_read_round(
                  &ssl->handshake->psa_pake_ctx, p, (size_t) (end - p),
                  MBEDTLS_ECJPAKE_ROUND_TWO)) != 0) {
@@ -4024,22 +3278,6 @@ static int ssl_parse_client_key_exchange(mbedtls_ssl_context *ssl)
             MBEDTLS_SSL_DEBUG_RET(1, "psa_pake_input round two", ret);
             return ret;
         }
-#else
-        ret = mbedtls_ecjpake_read_round_two(&ssl->handshake->ecjpake_ctx,
-                                             p, (size_t) (end - p));
-        if (ret != 0) {
-            MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_ecjpake_read_round_two", ret);
-            return MBEDTLS_ERR_SSL_INTERNAL_ERROR;
-        }
-
-        ret = mbedtls_ecjpake_derive_secret(&ssl->handshake->ecjpake_ctx,
-                                            ssl->handshake->premaster, 32, &ssl->handshake->pmslen,
-                                            ssl->conf->f_rng, ssl->conf->p_rng);
-        if (ret != 0) {
-            MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_ecjpake_derive_secret", ret);
-            return ret;
-        }
-#endif /* MBEDTLS_USE_PSA_CRYPTO */
     } else
 #endif /* MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED */
     {
diff --git a/deps/LIEF/third-party/mbedtls/library/ssl_tls13_client.c b/deps/LIEF/third-party/mbedtls/library/ssl_tls13_client.c
index 78a069f7924..b7b075cc97f 100644
--- a/deps/LIEF/third-party/mbedtls/library/ssl_tls13_client.c
+++ b/deps/LIEF/third-party/mbedtls/library/ssl_tls13_client.c
@@ -5,7 +5,7 @@
  *  SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
  */

-#include "common.h"
+#include "ssl_misc.h"

 #if defined(MBEDTLS_SSL_CLI_C) && defined(MBEDTLS_SSL_PROTO_TLS1_3)

@@ -15,7 +15,6 @@
 #include "mbedtls/error.h"
 #include "mbedtls/platform.h"

-#include "ssl_misc.h"
 #include "ssl_client.h"
 #include "ssl_tls13_keys.h"
 #include "ssl_debug_helpers.h"
@@ -159,7 +158,7 @@ static int ssl_tls13_parse_alpn_ext(mbedtls_ssl_context *ssl,

     /* Check that the server chosen protocol was in our list and save it */
     MBEDTLS_SSL_CHK_BUF_READ_PTR(p, protocol_name_list_end, protocol_name_len);
-    for (const char **alpn = ssl->conf->alpn_list; *alpn != NULL; alpn++) {
+    for (const char *const *alpn = ssl->conf->alpn_list; *alpn != NULL; alpn++) {
         if (protocol_name_len == strlen(*alpn) &&
             memcmp(p, *alpn, protocol_name_len) == 0) {
             ssl->alpn_chosen = *alpn;
@@ -217,7 +216,7 @@ static int ssl_tls13_get_default_group_id(mbedtls_ssl_context *ssl,


 #if defined(PSA_WANT_ALG_ECDH) || defined(PSA_WANT_ALG_FFDH)
-    const uint16_t *group_list = mbedtls_ssl_get_groups(ssl);
+    const uint16_t *group_list = ssl->conf->group_list;
     /* Pick first available ECDHE group compatible with TLS 1.3 */
     if (group_list == NULL) {
         return MBEDTLS_ERR_SSL_BAD_CONFIG;
@@ -383,7 +382,7 @@ static int ssl_tls13_parse_hrr_key_share_ext(mbedtls_ssl_context *ssl,
     int selected_group;
     int found = 0;

-    const uint16_t *group_list = mbedtls_ssl_get_groups(ssl);
+    const uint16_t *group_list = ssl->conf->group_list;
     if (group_list == NULL) {
         return MBEDTLS_ERR_SSL_BAD_CONFIG;
     }
@@ -1142,11 +1141,6 @@ int mbedtls_ssl_tls13_write_client_hello_exts(mbedtls_ssl_context *ssl,

     *out_len = 0;

-    ret = mbedtls_ssl_tls13_crypto_init(ssl);
-    if (ret != 0) {
-        return ret;
-    }
-
     /* Write supported_versions extension
      *
      * Supported Versions Extension is mandatory with TLS 1.3.
diff --git a/deps/LIEF/third-party/mbedtls/library/ssl_tls13_generic.c b/deps/LIEF/third-party/mbedtls/library/ssl_tls13_generic.c
index b6d09788ba0..e88c00a5645 100644
--- a/deps/LIEF/third-party/mbedtls/library/ssl_tls13_generic.c
+++ b/deps/LIEF/third-party/mbedtls/library/ssl_tls13_generic.c
@@ -5,7 +5,7 @@
  *  SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
  */

-#include "common.h"
+#include "ssl_misc.h"

 #if defined(MBEDTLS_SSL_TLS_C) && defined(MBEDTLS_SSL_PROTO_TLS1_3)

@@ -19,7 +19,6 @@
 #include "psa/crypto.h"
 #include "mbedtls/psa_util.h"

-#include "ssl_misc.h"
 #include "ssl_tls13_invasive.h"
 #include "ssl_tls13_keys.h"
 #include "ssl_debug_helpers.h"
@@ -27,6 +26,7 @@
 #include "psa/crypto.h"
 #include "psa_util_internal.h"

+#if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_EPHEMERAL_ENABLED)
 /* Define a local translating function to save code size by not using too many
  * arguments in each translating place. */
 static int local_err_translation(psa_status_t status)
@@ -36,16 +36,7 @@ static int local_err_translation(psa_status_t status)
                                  psa_generic_status_to_mbedtls);
 }
 #define PSA_TO_MBEDTLS_ERR(status) local_err_translation(status)
-
-int mbedtls_ssl_tls13_crypto_init(mbedtls_ssl_context *ssl)
-{
-    psa_status_t status = psa_crypto_init();
-    if (status != PSA_SUCCESS) {
-        (void) ssl; // unused when debugging is disabled
-        MBEDTLS_SSL_DEBUG_RET(1, "psa_crypto_init", status);
-    }
-    return PSA_TO_MBEDTLS_ERR(status);
-}
+#endif

 const uint8_t mbedtls_ssl_tls13_hello_retry_request_magic[
     MBEDTLS_SERVER_HELLO_RANDOM_LEN] =
@@ -236,11 +227,6 @@ static int ssl_tls13_parse_certificate_verify(mbedtls_ssl_context *ssl,
     unsigned char verify_hash[PSA_HASH_MAX_SIZE];
     size_t verify_hash_len;

-    void const *options = NULL;
-#if defined(MBEDTLS_X509_RSASSA_PSS_SUPPORT)
-    mbedtls_pk_rsassa_pss_options rsassa_pss_options;
-#endif /* MBEDTLS_X509_RSASSA_PSS_SUPPORT */
-
     /*
      * struct {
      *     SignatureScheme algorithm;
@@ -313,22 +299,14 @@ static int ssl_tls13_parse_certificate_verify(mbedtls_ssl_context *ssl,
     }

     MBEDTLS_SSL_DEBUG_BUF(3, "verify hash", verify_hash, verify_hash_len);
-#if defined(MBEDTLS_X509_RSASSA_PSS_SUPPORT)
-    if (sig_alg == MBEDTLS_PK_RSASSA_PSS) {
-        rsassa_pss_options.mgf1_hash_id = md_alg;
-
-        rsassa_pss_options.expected_salt_len = PSA_HASH_LENGTH(hash_alg);
-        options = (const void *) &rsassa_pss_options;
-    }
-#endif /* MBEDTLS_X509_RSASSA_PSS_SUPPORT */

-    if ((ret = mbedtls_pk_verify_ext(sig_alg, options,
+    if ((ret = mbedtls_pk_verify_new(sig_alg,
                                      &ssl->session_negotiate->peer_cert->pk,
                                      md_alg, verify_hash, verify_hash_len,
                                      p, signature_len)) == 0) {
         return 0;
     }
-    MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_pk_verify_ext", ret);
+    MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_pk_verify_new", ret);

 error:
     /* RFC 8446 section 4.4.3
@@ -527,7 +505,7 @@ int mbedtls_ssl_tls13_parse_certificate(mbedtls_ssl_context *ssl,
         switch (ret) {
             case 0: /*ok*/
                 break;
-            case MBEDTLS_ERR_X509_UNKNOWN_SIG_ALG + MBEDTLS_ERR_OID_NOT_FOUND:
+            case MBEDTLS_ERR_X509_UNKNOWN_OID:
                 /* Ignore certificate with an unknown algorithm: maybe a
                    prior certificate was already trusted. */
                 break;
@@ -985,10 +963,9 @@ static int ssl_tls13_write_certificate_verify_body(mbedtls_ssl_context *ssl,

         MBEDTLS_SSL_DEBUG_BUF(3, "verify hash", verify_hash, verify_hash_len);

-        if ((ret = mbedtls_pk_sign_ext(pk_type, own_key,
+        if ((ret = mbedtls_pk_sign_ext((mbedtls_pk_sigalg_t) pk_type, own_key,
                                        md_alg, verify_hash, verify_hash_len,
-                                       p + 4, (size_t) (end - (p + 4)), &signature_len,
-                                       ssl->conf->f_rng, ssl->conf->p_rng)) != 0) {
+                                       p + 4, (size_t) (end - (p + 4)), &signature_len)) != 0) {
             MBEDTLS_SSL_DEBUG_MSG(2, ("CertificateVerify signature failed with %s",
                                       mbedtls_ssl_sig_alg_to_str(*sig_alg)));
             MBEDTLS_SSL_DEBUG_RET(2, "mbedtls_pk_sign_ext", ret);
@@ -1167,7 +1144,8 @@ static int ssl_tls13_prepare_finished_message(mbedtls_ssl_context *ssl)
                                                   ssl->handshake->state_local.finished_out.digest,
                                                   sizeof(ssl->handshake->state_local.finished_out.
                                                          digest),
-                                                  &ssl->handshake->state_local.finished_out.digest_len,
+                                                  &ssl->handshake->state_local.finished_out.
+                                                  digest_len,
                                                   ssl->conf->endpoint);

     if (ret != 0) {
diff --git a/deps/LIEF/third-party/mbedtls/library/ssl_tls13_invasive.h b/deps/LIEF/third-party/mbedtls/library/ssl_tls13_invasive.h
index b4506f71c7e..73e0e304f96 100644
--- a/deps/LIEF/third-party/mbedtls/library/ssl_tls13_invasive.h
+++ b/deps/LIEF/third-party/mbedtls/library/ssl_tls13_invasive.h
@@ -6,7 +6,7 @@
 #ifndef MBEDTLS_SSL_TLS13_INVASIVE_H
 #define MBEDTLS_SSL_TLS13_INVASIVE_H

-#include "common.h"
+#include "ssl_misc.h"

 #if defined(MBEDTLS_SSL_PROTO_TLS1_3)

diff --git a/deps/LIEF/third-party/mbedtls/library/ssl_tls13_keys.c b/deps/LIEF/third-party/mbedtls/library/ssl_tls13_keys.c
index 1967883b61e..865e02c2dc8 100644
--- a/deps/LIEF/third-party/mbedtls/library/ssl_tls13_keys.c
+++ b/deps/LIEF/third-party/mbedtls/library/ssl_tls13_keys.c
@@ -5,19 +5,17 @@
  *  SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
  */

-#include "common.h"
+#include "ssl_misc.h"

 #if defined(MBEDTLS_SSL_PROTO_TLS1_3)

 #include <stdint.h>
 #include <string.h>

-#include "mbedtls/hkdf.h"
 #include "debug_internal.h"
 #include "mbedtls/error.h"
 #include "mbedtls/platform.h"

-#include "ssl_misc.h"
 #include "ssl_tls13_keys.h"
 #include "ssl_tls13_invasive.h"

@@ -927,23 +925,17 @@ int mbedtls_ssl_tls13_populate_transform(
     mbedtls_ssl_key_set const *traffic_keys,
     mbedtls_ssl_context *ssl /* DEBUG ONLY */)
 {
-#if !defined(MBEDTLS_USE_PSA_CRYPTO)
-    int ret;
-    mbedtls_cipher_info_t const *cipher_info;
-#endif /* MBEDTLS_USE_PSA_CRYPTO */
     const mbedtls_ssl_ciphersuite_t *ciphersuite_info;
     unsigned char const *key_enc;
     unsigned char const *iv_enc;
     unsigned char const *key_dec;
     unsigned char const *iv_dec;

-#if defined(MBEDTLS_USE_PSA_CRYPTO)
     psa_key_type_t key_type;
     psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT;
     psa_algorithm_t alg;
     size_t key_bits;
     psa_status_t status = PSA_SUCCESS;
-#endif

 #if !defined(MBEDTLS_DEBUG_C)
     ssl = NULL; /* make sure we don't use it except for those cases */
@@ -957,29 +949,6 @@ int mbedtls_ssl_tls13_populate_transform(
         return MBEDTLS_ERR_SSL_BAD_INPUT_DATA;
     }

-#if !defined(MBEDTLS_USE_PSA_CRYPTO)
-    cipher_info = mbedtls_cipher_info_from_type(ciphersuite_info->cipher);
-    if (cipher_info == NULL) {
-        MBEDTLS_SSL_DEBUG_MSG(1, ("cipher info for %u not found",
-                                  ciphersuite_info->cipher));
-        return MBEDTLS_ERR_SSL_BAD_INPUT_DATA;
-    }
-
-    /*
-     * Setup cipher contexts in target transform
-     */
-    if ((ret = mbedtls_cipher_setup(&transform->cipher_ctx_enc,
-                                    cipher_info)) != 0) {
-        MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_cipher_setup", ret);
-        return ret;
-    }
-
-    if ((ret = mbedtls_cipher_setup(&transform->cipher_ctx_dec,
-                                    cipher_info)) != 0) {
-        MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_cipher_setup", ret);
-        return ret;
-    }
-#endif /* MBEDTLS_USE_PSA_CRYPTO */

 #if defined(MBEDTLS_SSL_SRV_C)
     if (endpoint == MBEDTLS_SSL_IS_SERVER) {
@@ -1005,21 +974,6 @@ int mbedtls_ssl_tls13_populate_transform(
     memcpy(transform->iv_enc, iv_enc, traffic_keys->iv_len);
     memcpy(transform->iv_dec, iv_dec, traffic_keys->iv_len);

-#if !defined(MBEDTLS_USE_PSA_CRYPTO)
-    if ((ret = mbedtls_cipher_setkey(&transform->cipher_ctx_enc,
-                                     key_enc, (int) mbedtls_cipher_info_get_key_bitlen(cipher_info),
-                                     MBEDTLS_ENCRYPT)) != 0) {
-        MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_cipher_setkey", ret);
-        return ret;
-    }
-
-    if ((ret = mbedtls_cipher_setkey(&transform->cipher_ctx_dec,
-                                     key_dec, (int) mbedtls_cipher_info_get_key_bitlen(cipher_info),
-                                     MBEDTLS_DECRYPT)) != 0) {
-        MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_cipher_setkey", ret);
-        return ret;
-    }
-#endif /* MBEDTLS_USE_PSA_CRYPTO */

     /*
      * Setup other fields in SSL transform
@@ -1043,7 +997,6 @@ int mbedtls_ssl_tls13_populate_transform(
     transform->minlen =
         transform->taglen + MBEDTLS_SSL_CID_TLS1_3_PADDING_GRANULARITY;

-#if defined(MBEDTLS_USE_PSA_CRYPTO)
     /*
      * Setup psa keys and alg
      */
@@ -1084,7 +1037,6 @@ int mbedtls_ssl_tls13_populate_transform(
             return PSA_TO_MBEDTLS_ERR(status);
         }
     }
-#endif /* MBEDTLS_USE_PSA_CRYPTO */

     return 0;
 }
@@ -1300,8 +1252,7 @@ int mbedtls_ssl_tls13_key_schedule_stage_early(mbedtls_ssl_context *ssl)

     ret = mbedtls_ssl_tls13_evolve_secret(hash_alg, NULL, psk, psk_len,
                                           handshake->tls13_master_secrets.early);
-#if defined(MBEDTLS_USE_PSA_CRYPTO) && \
-    defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_PSK_ENABLED)
+#if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_PSK_ENABLED)
     mbedtls_free((void *) psk);
 #endif
     if (ret != 0) {
@@ -1841,7 +1792,6 @@ int mbedtls_ssl_tls13_export_handshake_psk(mbedtls_ssl_context *ssl,
                                            unsigned char **psk,
                                            size_t *psk_len)
 {
-#if defined(MBEDTLS_USE_PSA_CRYPTO)
     psa_key_attributes_t key_attributes = PSA_KEY_ATTRIBUTES_INIT;
     psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED;

@@ -1871,14 +1821,6 @@ int mbedtls_ssl_tls13_export_handshake_psk(mbedtls_ssl_context *ssl,
         return PSA_TO_MBEDTLS_ERR(status);
     }
     return 0;
-#else
-    *psk = ssl->handshake->psk;
-    *psk_len = ssl->handshake->psk_len;
-    if (*psk == NULL) {
-        return MBEDTLS_ERR_SSL_INTERNAL_ERROR;
-    }
-    return 0;
-#endif /* !MBEDTLS_USE_PSA_CRYPTO */
 }
 #endif /* MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_PSK_ENABLED */

diff --git a/deps/LIEF/third-party/mbedtls/library/ssl_tls13_server.c b/deps/LIEF/third-party/mbedtls/library/ssl_tls13_server.c
index 5757d201805..982e6f8c3b8 100644
--- a/deps/LIEF/third-party/mbedtls/library/ssl_tls13_server.c
+++ b/deps/LIEF/third-party/mbedtls/library/ssl_tls13_server.c
@@ -5,7 +5,7 @@
  *  SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
  */

-#include "common.h"
+#include "ssl_misc.h"

 #if defined(MBEDTLS_SSL_SRV_C) && defined(MBEDTLS_SSL_PROTO_TLS1_3)

@@ -16,7 +16,6 @@
 #include "mbedtls/oid.h"
 #include "mbedtls/psa_util.h"

-#include "ssl_misc.h"
 #include "ssl_tls13_keys.h"
 #include "ssl_debug_helpers.h"

@@ -436,9 +435,7 @@ static int ssl_tls13_offered_psks_check_binder_match(
                                               psk, psk_len, psk_type,
                                               transcript,
                                               server_computed_binder);
-#if defined(MBEDTLS_USE_PSA_CRYPTO)
     mbedtls_free((void *) psk);
-#endif
     if (ret != 0) {
         MBEDTLS_SSL_DEBUG_MSG(1, ("PSK binder calculation failed."));
         return MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE;
@@ -740,11 +737,7 @@ static int ssl_tls13_write_server_pre_shared_key_ext(mbedtls_ssl_context *ssl,
     *olen = 0;

     int not_using_psk = 0;
-#if defined(MBEDTLS_USE_PSA_CRYPTO)
     not_using_psk = (mbedtls_svc_key_id_is_null(ssl->handshake->psk_opaque));
-#else
-    not_using_psk = (ssl->handshake->psk == NULL);
-#endif
     if (not_using_psk) {
         /* We shouldn't have called this extension writer unless we've
          * chosen to use a PSK. */
@@ -1079,16 +1072,15 @@ static int ssl_tls13_key_exchange_is_ephemeral_available(mbedtls_ssl_context *ss
 #if defined(MBEDTLS_X509_CRT_PARSE_C) && \
     defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED)

-#if defined(MBEDTLS_USE_PSA_CRYPTO)
 static psa_algorithm_t ssl_tls13_iana_sig_alg_to_psa_alg(uint16_t sig_alg)
 {
     switch (sig_alg) {
         case MBEDTLS_TLS1_3_SIG_ECDSA_SECP256R1_SHA256:
-            return PSA_ALG_ECDSA(PSA_ALG_SHA_256);
+            return MBEDTLS_PK_ALG_ECDSA(PSA_ALG_SHA_256);
         case MBEDTLS_TLS1_3_SIG_ECDSA_SECP384R1_SHA384:
-            return PSA_ALG_ECDSA(PSA_ALG_SHA_384);
+            return MBEDTLS_PK_ALG_ECDSA(PSA_ALG_SHA_384);
         case MBEDTLS_TLS1_3_SIG_ECDSA_SECP521R1_SHA512:
-            return PSA_ALG_ECDSA(PSA_ALG_SHA_512);
+            return MBEDTLS_PK_ALG_ECDSA(PSA_ALG_SHA_512);
         case MBEDTLS_TLS1_3_SIG_RSA_PSS_RSAE_SHA256:
             return PSA_ALG_RSA_PSS(PSA_ALG_SHA_256);
         case MBEDTLS_TLS1_3_SIG_RSA_PSS_RSAE_SHA384:
@@ -1105,7 +1097,6 @@ static psa_algorithm_t ssl_tls13_iana_sig_alg_to_psa_alg(uint16_t sig_alg)
             return PSA_ALG_NONE;
     }
 }
-#endif /* MBEDTLS_USE_PSA_CRYPTO */

 /*
  * Pick best ( private key, certificate chain ) pair based on the signature
@@ -1140,9 +1131,7 @@ static int ssl_tls13_pick_key_cert(mbedtls_ssl_context *ssl)

         for (key_cert = key_cert_list; key_cert != NULL;
              key_cert = key_cert->next) {
-#if defined(MBEDTLS_USE_PSA_CRYPTO)
             psa_algorithm_t psa_alg = PSA_ALG_NONE;
-#endif /* MBEDTLS_USE_PSA_CRYPTO */

             MBEDTLS_SSL_DEBUG_CRT(3, "certificate (chain) candidate",
                                   key_cert->cert);
@@ -1166,17 +1155,13 @@ static int ssl_tls13_pick_key_cert(mbedtls_ssl_context *ssl)
                                    "check signature algorithm %s [%04x]",
                                    mbedtls_ssl_sig_alg_to_str(*sig_alg),
                                    *sig_alg));
-#if defined(MBEDTLS_USE_PSA_CRYPTO)
             psa_alg = ssl_tls13_iana_sig_alg_to_psa_alg(*sig_alg);
-#endif /* MBEDTLS_USE_PSA_CRYPTO */

             if (mbedtls_ssl_tls13_check_sig_alg_cert_key_match(
                     *sig_alg, &key_cert->cert->pk)
-#if defined(MBEDTLS_USE_PSA_CRYPTO)
                 && psa_alg != PSA_ALG_NONE &&
-                mbedtls_pk_can_do_ext(&key_cert->cert->pk, psa_alg,
-                                      PSA_KEY_USAGE_SIGN_HASH) == 1
-#endif /* MBEDTLS_USE_PSA_CRYPTO */
+                mbedtls_pk_can_do_psa(&key_cert->cert->pk, psa_alg,
+                                      PSA_KEY_USAGE_VERIFY_HASH) == 1
                 ) {
                 ssl->handshake->key_cert = key_cert;
                 MBEDTLS_SSL_DEBUG_MSG(3,
@@ -1414,12 +1399,6 @@ static int ssl_tls13_parse_client_hello(mbedtls_ssl_context *ssl,
     ssl->session_negotiate->tls_version = MBEDTLS_SSL_VERSION_TLS1_3;
     ssl->session_negotiate->endpoint = ssl->conf->endpoint;

-    /* Before doing any crypto, make sure we can. */
-    ret = mbedtls_ssl_tls13_crypto_init(ssl);
-    if (ret != 0) {
-        return ret;
-    }
-
     /*
      * We are negotiating the version 1.3 of the protocol. Do what we have
      * postponed: copy of the client random bytes, copy of the legacy session
@@ -2017,9 +1996,9 @@ static int ssl_tls13_prepare_server_hello(mbedtls_ssl_context *ssl)
     unsigned char *server_randbytes =
         ssl->handshake->randbytes + MBEDTLS_CLIENT_HELLO_RANDOM_LEN;

-    if ((ret = ssl->conf->f_rng(ssl->conf->p_rng, server_randbytes,
-                                MBEDTLS_SERVER_HELLO_RANDOM_LEN)) != 0) {
-        MBEDTLS_SSL_DEBUG_RET(1, "f_rng", ret);
+    if ((ret = psa_generate_random(server_randbytes,
+                                   MBEDTLS_SERVER_HELLO_RANDOM_LEN)) != 0) {
+        MBEDTLS_SSL_DEBUG_RET(1, "psa_generate_random", ret);
         return ret;
     }

@@ -3193,9 +3172,8 @@ static int ssl_tls13_prepare_new_session_ticket(mbedtls_ssl_context *ssl,
 #endif

     /* Generate ticket_age_add */
-    if ((ret = ssl->conf->f_rng(ssl->conf->p_rng,
-                                (unsigned char *) &session->ticket_age_add,
-                                sizeof(session->ticket_age_add)) != 0)) {
+    if ((ret = psa_generate_random((unsigned char *) &session->ticket_age_add,
+                                   sizeof(session->ticket_age_add)) != 0)) {
         MBEDTLS_SSL_DEBUG_RET(1, "generate_ticket_age_add", ret);
         return ret;
     }
@@ -3203,7 +3181,7 @@ static int ssl_tls13_prepare_new_session_ticket(mbedtls_ssl_context *ssl,
                               (unsigned int) session->ticket_age_add));

     /* Generate ticket_nonce */
-    ret = ssl->conf->f_rng(ssl->conf->p_rng, ticket_nonce, ticket_nonce_size);
+    ret = psa_generate_random(ticket_nonce, ticket_nonce_size);
     if (ret != 0) {
         MBEDTLS_SSL_DEBUG_RET(1, "generate_ticket_nonce", ret);
         return ret;
diff --git a/deps/LIEF/third-party/mbedtls/library/threading.c b/deps/LIEF/third-party/mbedtls/library/threading.c
deleted file mode 100644
index fde7cea1d63..00000000000
--- a/deps/LIEF/third-party/mbedtls/library/threading.c
+++ /dev/null
@@ -1,195 +0,0 @@
-/*
- *  Threading abstraction layer
- *
- *  Copyright The Mbed TLS Contributors
- *  SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
- */
-
-/*
- * Ensure gmtime_r is available even with -std=c99; must be defined before
- * mbedtls_config.h, which pulls in glibc's features.h. Harmless on other platforms.
- */
-#if !defined(_POSIX_C_SOURCE)
-#define _POSIX_C_SOURCE 200112L
-#endif
-
-#include "common.h"
-
-#if defined(MBEDTLS_THREADING_C)
-
-#include "mbedtls/threading.h"
-
-#if defined(MBEDTLS_HAVE_TIME_DATE) && !defined(MBEDTLS_PLATFORM_GMTIME_R_ALT)
-
-#if !defined(_WIN32) && (defined(unix) || \
-    defined(__unix) || defined(__unix__) || (defined(__APPLE__) && \
-    defined(__MACH__)))
-#include <unistd.h>
-#endif /* !_WIN32 && (unix || __unix || __unix__ ||
-        * (__APPLE__ && __MACH__)) */
-
-#if !((defined(_POSIX_VERSION) && _POSIX_VERSION >= 200809L) ||     \
-    (defined(_POSIX_THREAD_SAFE_FUNCTIONS) &&                     \
-    _POSIX_THREAD_SAFE_FUNCTIONS >= 200112L))
-/*
- * This is a convenience shorthand macro to avoid checking the long
- * preprocessor conditions above. Ideally, we could expose this macro in
- * platform_util.h and simply use it in platform_util.c, threading.c and
- * threading.h. However, this macro is not part of the Mbed TLS public API, so
- * we keep it private by only defining it in this file
- */
-
-#if !(defined(_WIN32) && !defined(EFIX64) && !defined(EFI32))
-#define THREADING_USE_GMTIME
-#endif /* ! ( defined(_WIN32) && !defined(EFIX64) && !defined(EFI32) ) */
-
-#endif /* !( ( defined(_POSIX_VERSION) && _POSIX_VERSION >= 200809L ) || \
-             ( defined(_POSIX_THREAD_SAFE_FUNCTIONS ) && \
-                _POSIX_THREAD_SAFE_FUNCTIONS >= 200112L ) ) */
-
-#endif /* MBEDTLS_HAVE_TIME_DATE && !MBEDTLS_PLATFORM_GMTIME_R_ALT */
-
-#if defined(MBEDTLS_THREADING_PTHREAD)
-static void threading_mutex_init_pthread(mbedtls_threading_mutex_t *mutex)
-{
-    if (mutex == NULL) {
-        return;
-    }
-
-    /* One problem here is that calling lock on a pthread mutex without first
-     * having initialised it is undefined behaviour. Obviously we cannot check
-     * this here in a thread safe manner without a significant performance
-     * hit, so state transitions are checked in tests only via the state
-     * variable. Please make sure any new mutex that gets added is exercised in
-     * tests; see framework/tests/src/threading_helpers.c for more details. */
-    (void) pthread_mutex_init(&mutex->mutex, NULL);
-}
-
-static void threading_mutex_free_pthread(mbedtls_threading_mutex_t *mutex)
-{
-    if (mutex == NULL) {
-        return;
-    }
-
-    (void) pthread_mutex_destroy(&mutex->mutex);
-}
-
-static int threading_mutex_lock_pthread(mbedtls_threading_mutex_t *mutex)
-{
-    if (mutex == NULL) {
-        return MBEDTLS_ERR_THREADING_BAD_INPUT_DATA;
-    }
-
-    if (pthread_mutex_lock(&mutex->mutex) != 0) {
-        return MBEDTLS_ERR_THREADING_MUTEX_ERROR;
-    }
-
-    return 0;
-}
-
-static int threading_mutex_unlock_pthread(mbedtls_threading_mutex_t *mutex)
-{
-    if (mutex == NULL) {
-        return MBEDTLS_ERR_THREADING_BAD_INPUT_DATA;
-    }
-
-    if (pthread_mutex_unlock(&mutex->mutex) != 0) {
-        return MBEDTLS_ERR_THREADING_MUTEX_ERROR;
-    }
-
-    return 0;
-}
-
-void (*mbedtls_mutex_init)(mbedtls_threading_mutex_t *) = threading_mutex_init_pthread;
-void (*mbedtls_mutex_free)(mbedtls_threading_mutex_t *) = threading_mutex_free_pthread;
-int (*mbedtls_mutex_lock)(mbedtls_threading_mutex_t *) = threading_mutex_lock_pthread;
-int (*mbedtls_mutex_unlock)(mbedtls_threading_mutex_t *) = threading_mutex_unlock_pthread;
-
-/*
- * With pthreads we can statically initialize mutexes
- */
-#define MUTEX_INIT  = { PTHREAD_MUTEX_INITIALIZER, 1 }
-
-#endif /* MBEDTLS_THREADING_PTHREAD */
-
-#if defined(MBEDTLS_THREADING_ALT)
-static int threading_mutex_fail(mbedtls_threading_mutex_t *mutex)
-{
-    ((void) mutex);
-    return MBEDTLS_ERR_THREADING_BAD_INPUT_DATA;
-}
-static void threading_mutex_dummy(mbedtls_threading_mutex_t *mutex)
-{
-    ((void) mutex);
-    return;
-}
-
-void (*mbedtls_mutex_init)(mbedtls_threading_mutex_t *) = threading_mutex_dummy;
-void (*mbedtls_mutex_free)(mbedtls_threading_mutex_t *) = threading_mutex_dummy;
-int (*mbedtls_mutex_lock)(mbedtls_threading_mutex_t *) = threading_mutex_fail;
-int (*mbedtls_mutex_unlock)(mbedtls_threading_mutex_t *) = threading_mutex_fail;
-
-/*
- * Set functions pointers and initialize global mutexes
- */
-void mbedtls_threading_set_alt(void (*mutex_init)(mbedtls_threading_mutex_t *),
-                               void (*mutex_free)(mbedtls_threading_mutex_t *),
-                               int (*mutex_lock)(mbedtls_threading_mutex_t *),
-                               int (*mutex_unlock)(mbedtls_threading_mutex_t *))
-{
-    mbedtls_mutex_init = mutex_init;
-    mbedtls_mutex_free = mutex_free;
-    mbedtls_mutex_lock = mutex_lock;
-    mbedtls_mutex_unlock = mutex_unlock;
-
-#if defined(MBEDTLS_FS_IO)
-    mbedtls_mutex_init(&mbedtls_threading_readdir_mutex);
-#endif
-#if defined(THREADING_USE_GMTIME)
-    mbedtls_mutex_init(&mbedtls_threading_gmtime_mutex);
-#endif
-#if defined(MBEDTLS_PSA_CRYPTO_C)
-    mbedtls_mutex_init(&mbedtls_threading_key_slot_mutex);
-    mbedtls_mutex_init(&mbedtls_threading_psa_globaldata_mutex);
-    mbedtls_mutex_init(&mbedtls_threading_psa_rngdata_mutex);
-#endif
-}
-
-/*
- * Free global mutexes
- */
-void mbedtls_threading_free_alt(void)
-{
-#if defined(MBEDTLS_FS_IO)
-    mbedtls_mutex_free(&mbedtls_threading_readdir_mutex);
-#endif
-#if defined(THREADING_USE_GMTIME)
-    mbedtls_mutex_free(&mbedtls_threading_gmtime_mutex);
-#endif
-#if defined(MBEDTLS_PSA_CRYPTO_C)
-    mbedtls_mutex_free(&mbedtls_threading_key_slot_mutex);
-    mbedtls_mutex_free(&mbedtls_threading_psa_globaldata_mutex);
-    mbedtls_mutex_free(&mbedtls_threading_psa_rngdata_mutex);
-#endif
-}
-#endif /* MBEDTLS_THREADING_ALT */
-
-/*
- * Define global mutexes
- */
-#ifndef MUTEX_INIT
-#define MUTEX_INIT
-#endif
-#if defined(MBEDTLS_FS_IO)
-mbedtls_threading_mutex_t mbedtls_threading_readdir_mutex MUTEX_INIT;
-#endif
-#if defined(THREADING_USE_GMTIME)
-mbedtls_threading_mutex_t mbedtls_threading_gmtime_mutex MUTEX_INIT;
-#endif
-#if defined(MBEDTLS_PSA_CRYPTO_C)
-mbedtls_threading_mutex_t mbedtls_threading_key_slot_mutex MUTEX_INIT;
-mbedtls_threading_mutex_t mbedtls_threading_psa_globaldata_mutex MUTEX_INIT;
-mbedtls_threading_mutex_t mbedtls_threading_psa_rngdata_mutex MUTEX_INIT;
-#endif
-
-#endif /* MBEDTLS_THREADING_C */
diff --git a/deps/LIEF/third-party/mbedtls/library/timing.c b/deps/LIEF/third-party/mbedtls/library/timing.c
index 58f1c1ec2eb..1ed88639ef0 100644
--- a/deps/LIEF/third-party/mbedtls/library/timing.c
+++ b/deps/LIEF/third-party/mbedtls/library/timing.c
@@ -5,7 +5,7 @@
  *  SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
  */

-#include "common.h"
+#include "ssl_misc.h"

 #if defined(MBEDTLS_TIMING_C)

diff --git a/deps/LIEF/third-party/mbedtls/library/version.c b/deps/LIEF/third-party/mbedtls/library/version.c
index 04397332bbf..e828673c0d3 100644
--- a/deps/LIEF/third-party/mbedtls/library/version.c
+++ b/deps/LIEF/third-party/mbedtls/library/version.c
@@ -5,7 +5,7 @@
  *  SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
  */

-#include "common.h"
+#include "ssl_misc.h"

 #if defined(MBEDTLS_VERSION_C)

@@ -17,16 +17,14 @@ unsigned int mbedtls_version_get_number(void)
     return MBEDTLS_VERSION_NUMBER;
 }

-void mbedtls_version_get_string(char *string)
+const char *mbedtls_version_get_string(void)
 {
-    memcpy(string, MBEDTLS_VERSION_STRING,
-           sizeof(MBEDTLS_VERSION_STRING));
+    return MBEDTLS_VERSION_STRING;
 }

-void mbedtls_version_get_string_full(char *string)
+const char *mbedtls_version_get_string_full(void)
 {
-    memcpy(string, MBEDTLS_VERSION_STRING_FULL,
-           sizeof(MBEDTLS_VERSION_STRING_FULL));
+    return MBEDTLS_VERSION_STRING_FULL;
 }

 #endif /* MBEDTLS_VERSION_C */
diff --git a/deps/LIEF/third-party/mbedtls/library/version_features.c b/deps/LIEF/third-party/mbedtls/library/version_features.c
deleted file mode 100644
index 4fd1029916b..00000000000
--- a/deps/LIEF/third-party/mbedtls/library/version_features.c
+++ /dev/null
@@ -1,853 +0,0 @@
-/*
- *  Version feature information
- *
- *  Copyright The Mbed TLS Contributors
- *  SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
- */
-
-#include "common.h"
-
-#if defined(MBEDTLS_VERSION_C)
-
-#include "mbedtls/version.h"
-
-#include <string.h>
-
-static const char * const features[] = {
-#if defined(MBEDTLS_VERSION_FEATURES)
-    #if defined(MBEDTLS_HAVE_ASM)
-    "HAVE_ASM", //no-check-names
-#endif /* MBEDTLS_HAVE_ASM */
-#if defined(MBEDTLS_NO_UDBL_DIVISION)
-    "NO_UDBL_DIVISION", //no-check-names
-#endif /* MBEDTLS_NO_UDBL_DIVISION */
-#if defined(MBEDTLS_NO_64BIT_MULTIPLICATION)
-    "NO_64BIT_MULTIPLICATION", //no-check-names
-#endif /* MBEDTLS_NO_64BIT_MULTIPLICATION */
-#if defined(MBEDTLS_HAVE_SSE2)
-    "HAVE_SSE2", //no-check-names
-#endif /* MBEDTLS_HAVE_SSE2 */
-#if defined(MBEDTLS_HAVE_TIME)
-    "HAVE_TIME", //no-check-names
-#endif /* MBEDTLS_HAVE_TIME */
-#if defined(MBEDTLS_HAVE_TIME_DATE)
-    "HAVE_TIME_DATE", //no-check-names
-#endif /* MBEDTLS_HAVE_TIME_DATE */
-#if defined(MBEDTLS_PLATFORM_MEMORY)
-    "PLATFORM_MEMORY", //no-check-names
-#endif /* MBEDTLS_PLATFORM_MEMORY */
-#if defined(MBEDTLS_PLATFORM_NO_STD_FUNCTIONS)
-    "PLATFORM_NO_STD_FUNCTIONS", //no-check-names
-#endif /* MBEDTLS_PLATFORM_NO_STD_FUNCTIONS */
-#if defined(MBEDTLS_PLATFORM_SETBUF_ALT)
-    "PLATFORM_SETBUF_ALT", //no-check-names
-#endif /* MBEDTLS_PLATFORM_SETBUF_ALT */
-#if defined(MBEDTLS_PLATFORM_EXIT_ALT)
-    "PLATFORM_EXIT_ALT", //no-check-names
-#endif /* MBEDTLS_PLATFORM_EXIT_ALT */
-#if defined(MBEDTLS_PLATFORM_TIME_ALT)
-    "PLATFORM_TIME_ALT", //no-check-names
-#endif /* MBEDTLS_PLATFORM_TIME_ALT */
-#if defined(MBEDTLS_PLATFORM_FPRINTF_ALT)
-    "PLATFORM_FPRINTF_ALT", //no-check-names
-#endif /* MBEDTLS_PLATFORM_FPRINTF_ALT */
-#if defined(MBEDTLS_PLATFORM_PRINTF_ALT)
-    "PLATFORM_PRINTF_ALT", //no-check-names
-#endif /* MBEDTLS_PLATFORM_PRINTF_ALT */
-#if defined(MBEDTLS_PLATFORM_SNPRINTF_ALT)
-    "PLATFORM_SNPRINTF_ALT", //no-check-names
-#endif /* MBEDTLS_PLATFORM_SNPRINTF_ALT */
-#if defined(MBEDTLS_PLATFORM_VSNPRINTF_ALT)
-    "PLATFORM_VSNPRINTF_ALT", //no-check-names
-#endif /* MBEDTLS_PLATFORM_VSNPRINTF_ALT */
-#if defined(MBEDTLS_PLATFORM_NV_SEED_ALT)
-    "PLATFORM_NV_SEED_ALT", //no-check-names
-#endif /* MBEDTLS_PLATFORM_NV_SEED_ALT */
-#if defined(MBEDTLS_PLATFORM_SETUP_TEARDOWN_ALT)
-    "PLATFORM_SETUP_TEARDOWN_ALT", //no-check-names
-#endif /* MBEDTLS_PLATFORM_SETUP_TEARDOWN_ALT */
-#if defined(MBEDTLS_PLATFORM_MS_TIME_ALT)
-    "PLATFORM_MS_TIME_ALT", //no-check-names
-#endif /* MBEDTLS_PLATFORM_MS_TIME_ALT */
-#if defined(MBEDTLS_PLATFORM_GMTIME_R_ALT)
-    "PLATFORM_GMTIME_R_ALT", //no-check-names
-#endif /* MBEDTLS_PLATFORM_GMTIME_R_ALT */
-#if defined(MBEDTLS_PLATFORM_ZEROIZE_ALT)
-    "PLATFORM_ZEROIZE_ALT", //no-check-names
-#endif /* MBEDTLS_PLATFORM_ZEROIZE_ALT */
-#if defined(MBEDTLS_DEPRECATED_WARNING)
-    "DEPRECATED_WARNING", //no-check-names
-#endif /* MBEDTLS_DEPRECATED_WARNING */
-#if defined(MBEDTLS_DEPRECATED_REMOVED)
-    "DEPRECATED_REMOVED", //no-check-names
-#endif /* MBEDTLS_DEPRECATED_REMOVED */
-#if defined(MBEDTLS_TIMING_ALT)
-    "TIMING_ALT", //no-check-names
-#endif /* MBEDTLS_TIMING_ALT */
-#if defined(MBEDTLS_AES_ALT)
-    "AES_ALT", //no-check-names
-#endif /* MBEDTLS_AES_ALT */
-#if defined(MBEDTLS_ARIA_ALT)
-    "ARIA_ALT", //no-check-names
-#endif /* MBEDTLS_ARIA_ALT */
-#if defined(MBEDTLS_CAMELLIA_ALT)
-    "CAMELLIA_ALT", //no-check-names
-#endif /* MBEDTLS_CAMELLIA_ALT */
-#if defined(MBEDTLS_CCM_ALT)
-    "CCM_ALT", //no-check-names
-#endif /* MBEDTLS_CCM_ALT */
-#if defined(MBEDTLS_CHACHA20_ALT)
-    "CHACHA20_ALT", //no-check-names
-#endif /* MBEDTLS_CHACHA20_ALT */
-#if defined(MBEDTLS_CHACHAPOLY_ALT)
-    "CHACHAPOLY_ALT", //no-check-names
-#endif /* MBEDTLS_CHACHAPOLY_ALT */
-#if defined(MBEDTLS_CMAC_ALT)
-    "CMAC_ALT", //no-check-names
-#endif /* MBEDTLS_CMAC_ALT */
-#if defined(MBEDTLS_DES_ALT)
-    "DES_ALT", //no-check-names
-#endif /* MBEDTLS_DES_ALT */
-#if defined(MBEDTLS_DHM_ALT)
-    "DHM_ALT", //no-check-names
-#endif /* MBEDTLS_DHM_ALT */
-#if defined(MBEDTLS_ECJPAKE_ALT)
-    "ECJPAKE_ALT", //no-check-names
-#endif /* MBEDTLS_ECJPAKE_ALT */
-#if defined(MBEDTLS_GCM_ALT)
-    "GCM_ALT", //no-check-names
-#endif /* MBEDTLS_GCM_ALT */
-#if defined(MBEDTLS_NIST_KW_ALT)
-    "NIST_KW_ALT", //no-check-names
-#endif /* MBEDTLS_NIST_KW_ALT */
-#if defined(MBEDTLS_MD5_ALT)
-    "MD5_ALT", //no-check-names
-#endif /* MBEDTLS_MD5_ALT */
-#if defined(MBEDTLS_POLY1305_ALT)
-    "POLY1305_ALT", //no-check-names
-#endif /* MBEDTLS_POLY1305_ALT */
-#if defined(MBEDTLS_RIPEMD160_ALT)
-    "RIPEMD160_ALT", //no-check-names
-#endif /* MBEDTLS_RIPEMD160_ALT */
-#if defined(MBEDTLS_RSA_ALT)
-    "RSA_ALT", //no-check-names
-#endif /* MBEDTLS_RSA_ALT */
-#if defined(MBEDTLS_SHA1_ALT)
-    "SHA1_ALT", //no-check-names
-#endif /* MBEDTLS_SHA1_ALT */
-#if defined(MBEDTLS_SHA256_ALT)
-    "SHA256_ALT", //no-check-names
-#endif /* MBEDTLS_SHA256_ALT */
-#if defined(MBEDTLS_SHA512_ALT)
-    "SHA512_ALT", //no-check-names
-#endif /* MBEDTLS_SHA512_ALT */
-#if defined(MBEDTLS_ECP_ALT)
-    "ECP_ALT", //no-check-names
-#endif /* MBEDTLS_ECP_ALT */
-#if defined(MBEDTLS_MD5_PROCESS_ALT)
-    "MD5_PROCESS_ALT", //no-check-names
-#endif /* MBEDTLS_MD5_PROCESS_ALT */
-#if defined(MBEDTLS_RIPEMD160_PROCESS_ALT)
-    "RIPEMD160_PROCESS_ALT", //no-check-names
-#endif /* MBEDTLS_RIPEMD160_PROCESS_ALT */
-#if defined(MBEDTLS_SHA1_PROCESS_ALT)
-    "SHA1_PROCESS_ALT", //no-check-names
-#endif /* MBEDTLS_SHA1_PROCESS_ALT */
-#if defined(MBEDTLS_SHA256_PROCESS_ALT)
-    "SHA256_PROCESS_ALT", //no-check-names
-#endif /* MBEDTLS_SHA256_PROCESS_ALT */
-#if defined(MBEDTLS_SHA512_PROCESS_ALT)
-    "SHA512_PROCESS_ALT", //no-check-names
-#endif /* MBEDTLS_SHA512_PROCESS_ALT */
-#if defined(MBEDTLS_DES_SETKEY_ALT)
-    "DES_SETKEY_ALT", //no-check-names
-#endif /* MBEDTLS_DES_SETKEY_ALT */
-#if defined(MBEDTLS_DES_CRYPT_ECB_ALT)
-    "DES_CRYPT_ECB_ALT", //no-check-names
-#endif /* MBEDTLS_DES_CRYPT_ECB_ALT */
-#if defined(MBEDTLS_DES3_CRYPT_ECB_ALT)
-    "DES3_CRYPT_ECB_ALT", //no-check-names
-#endif /* MBEDTLS_DES3_CRYPT_ECB_ALT */
-#if defined(MBEDTLS_AES_SETKEY_ENC_ALT)
-    "AES_SETKEY_ENC_ALT", //no-check-names
-#endif /* MBEDTLS_AES_SETKEY_ENC_ALT */
-#if defined(MBEDTLS_AES_SETKEY_DEC_ALT)
-    "AES_SETKEY_DEC_ALT", //no-check-names
-#endif /* MBEDTLS_AES_SETKEY_DEC_ALT */
-#if defined(MBEDTLS_AES_ENCRYPT_ALT)
-    "AES_ENCRYPT_ALT", //no-check-names
-#endif /* MBEDTLS_AES_ENCRYPT_ALT */
-#if defined(MBEDTLS_AES_DECRYPT_ALT)
-    "AES_DECRYPT_ALT", //no-check-names
-#endif /* MBEDTLS_AES_DECRYPT_ALT */
-#if defined(MBEDTLS_ECDH_GEN_PUBLIC_ALT)
-    "ECDH_GEN_PUBLIC_ALT", //no-check-names
-#endif /* MBEDTLS_ECDH_GEN_PUBLIC_ALT */
-#if defined(MBEDTLS_ECDH_COMPUTE_SHARED_ALT)
-    "ECDH_COMPUTE_SHARED_ALT", //no-check-names
-#endif /* MBEDTLS_ECDH_COMPUTE_SHARED_ALT */
-#if defined(MBEDTLS_ECDSA_VERIFY_ALT)
-    "ECDSA_VERIFY_ALT", //no-check-names
-#endif /* MBEDTLS_ECDSA_VERIFY_ALT */
-#if defined(MBEDTLS_ECDSA_SIGN_ALT)
-    "ECDSA_SIGN_ALT", //no-check-names
-#endif /* MBEDTLS_ECDSA_SIGN_ALT */
-#if defined(MBEDTLS_ECDSA_GENKEY_ALT)
-    "ECDSA_GENKEY_ALT", //no-check-names
-#endif /* MBEDTLS_ECDSA_GENKEY_ALT */
-#if defined(MBEDTLS_ECP_INTERNAL_ALT)
-    "ECP_INTERNAL_ALT", //no-check-names
-#endif /* MBEDTLS_ECP_INTERNAL_ALT */
-#if defined(MBEDTLS_ECP_NO_FALLBACK)
-    "ECP_NO_FALLBACK", //no-check-names
-#endif /* MBEDTLS_ECP_NO_FALLBACK */
-#if defined(MBEDTLS_ECP_RANDOMIZE_JAC_ALT)
-    "ECP_RANDOMIZE_JAC_ALT", //no-check-names
-#endif /* MBEDTLS_ECP_RANDOMIZE_JAC_ALT */
-#if defined(MBEDTLS_ECP_ADD_MIXED_ALT)
-    "ECP_ADD_MIXED_ALT", //no-check-names
-#endif /* MBEDTLS_ECP_ADD_MIXED_ALT */
-#if defined(MBEDTLS_ECP_DOUBLE_JAC_ALT)
-    "ECP_DOUBLE_JAC_ALT", //no-check-names
-#endif /* MBEDTLS_ECP_DOUBLE_JAC_ALT */
-#if defined(MBEDTLS_ECP_NORMALIZE_JAC_MANY_ALT)
-    "ECP_NORMALIZE_JAC_MANY_ALT", //no-check-names
-#endif /* MBEDTLS_ECP_NORMALIZE_JAC_MANY_ALT */
-#if defined(MBEDTLS_ECP_NORMALIZE_JAC_ALT)
-    "ECP_NORMALIZE_JAC_ALT", //no-check-names
-#endif /* MBEDTLS_ECP_NORMALIZE_JAC_ALT */
-#if defined(MBEDTLS_ECP_DOUBLE_ADD_MXZ_ALT)
-    "ECP_DOUBLE_ADD_MXZ_ALT", //no-check-names
-#endif /* MBEDTLS_ECP_DOUBLE_ADD_MXZ_ALT */
-#if defined(MBEDTLS_ECP_RANDOMIZE_MXZ_ALT)
-    "ECP_RANDOMIZE_MXZ_ALT", //no-check-names
-#endif /* MBEDTLS_ECP_RANDOMIZE_MXZ_ALT */
-#if defined(MBEDTLS_ECP_NORMALIZE_MXZ_ALT)
-    "ECP_NORMALIZE_MXZ_ALT", //no-check-names
-#endif /* MBEDTLS_ECP_NORMALIZE_MXZ_ALT */
-#if defined(MBEDTLS_ENTROPY_HARDWARE_ALT)
-    "ENTROPY_HARDWARE_ALT", //no-check-names
-#endif /* MBEDTLS_ENTROPY_HARDWARE_ALT */
-#if defined(MBEDTLS_AES_ROM_TABLES)
-    "AES_ROM_TABLES", //no-check-names
-#endif /* MBEDTLS_AES_ROM_TABLES */
-#if defined(MBEDTLS_AES_FEWER_TABLES)
-    "AES_FEWER_TABLES", //no-check-names
-#endif /* MBEDTLS_AES_FEWER_TABLES */
-#if defined(MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH)
-    "AES_ONLY_128_BIT_KEY_LENGTH", //no-check-names
-#endif /* MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH */
-#if defined(MBEDTLS_AES_USE_HARDWARE_ONLY)
-    "AES_USE_HARDWARE_ONLY", //no-check-names
-#endif /* MBEDTLS_AES_USE_HARDWARE_ONLY */
-#if defined(MBEDTLS_CAMELLIA_SMALL_MEMORY)
-    "CAMELLIA_SMALL_MEMORY", //no-check-names
-#endif /* MBEDTLS_CAMELLIA_SMALL_MEMORY */
-#if defined(MBEDTLS_CHECK_RETURN_WARNING)
-    "CHECK_RETURN_WARNING", //no-check-names
-#endif /* MBEDTLS_CHECK_RETURN_WARNING */
-#if defined(MBEDTLS_CIPHER_MODE_CBC)
-    "CIPHER_MODE_CBC", //no-check-names
-#endif /* MBEDTLS_CIPHER_MODE_CBC */
-#if defined(MBEDTLS_CIPHER_MODE_CFB)
-    "CIPHER_MODE_CFB", //no-check-names
-#endif /* MBEDTLS_CIPHER_MODE_CFB */
-#if defined(MBEDTLS_CIPHER_MODE_CTR)
-    "CIPHER_MODE_CTR", //no-check-names
-#endif /* MBEDTLS_CIPHER_MODE_CTR */
-#if defined(MBEDTLS_CIPHER_MODE_OFB)
-    "CIPHER_MODE_OFB", //no-check-names
-#endif /* MBEDTLS_CIPHER_MODE_OFB */
-#if defined(MBEDTLS_CIPHER_MODE_XTS)
-    "CIPHER_MODE_XTS", //no-check-names
-#endif /* MBEDTLS_CIPHER_MODE_XTS */
-#if defined(MBEDTLS_CIPHER_NULL_CIPHER)
-    "CIPHER_NULL_CIPHER", //no-check-names
-#endif /* MBEDTLS_CIPHER_NULL_CIPHER */
-#if defined(MBEDTLS_CIPHER_PADDING_PKCS7)
-    "CIPHER_PADDING_PKCS7", //no-check-names
-#endif /* MBEDTLS_CIPHER_PADDING_PKCS7 */
-#if defined(MBEDTLS_CIPHER_PADDING_ONE_AND_ZEROS)
-    "CIPHER_PADDING_ONE_AND_ZEROS", //no-check-names
-#endif /* MBEDTLS_CIPHER_PADDING_ONE_AND_ZEROS */
-#if defined(MBEDTLS_CIPHER_PADDING_ZEROS_AND_LEN)
-    "CIPHER_PADDING_ZEROS_AND_LEN", //no-check-names
-#endif /* MBEDTLS_CIPHER_PADDING_ZEROS_AND_LEN */
-#if defined(MBEDTLS_CIPHER_PADDING_ZEROS)
-    "CIPHER_PADDING_ZEROS", //no-check-names
-#endif /* MBEDTLS_CIPHER_PADDING_ZEROS */
-#if defined(MBEDTLS_CTR_DRBG_USE_128_BIT_KEY)
-    "CTR_DRBG_USE_128_BIT_KEY", //no-check-names
-#endif /* MBEDTLS_CTR_DRBG_USE_128_BIT_KEY */
-#if defined(MBEDTLS_ECDH_VARIANT_EVEREST_ENABLED)
-    "ECDH_VARIANT_EVEREST_ENABLED", //no-check-names
-#endif /* MBEDTLS_ECDH_VARIANT_EVEREST_ENABLED */
-#if defined(MBEDTLS_ECP_DP_SECP192R1_ENABLED)
-    "ECP_DP_SECP192R1_ENABLED", //no-check-names
-#endif /* MBEDTLS_ECP_DP_SECP192R1_ENABLED */
-#if defined(MBEDTLS_ECP_DP_SECP224R1_ENABLED)
-    "ECP_DP_SECP224R1_ENABLED", //no-check-names
-#endif /* MBEDTLS_ECP_DP_SECP224R1_ENABLED */
-#if defined(MBEDTLS_ECP_DP_SECP256R1_ENABLED)
-    "ECP_DP_SECP256R1_ENABLED", //no-check-names
-#endif /* MBEDTLS_ECP_DP_SECP256R1_ENABLED */
-#if defined(MBEDTLS_ECP_DP_SECP384R1_ENABLED)
-    "ECP_DP_SECP384R1_ENABLED", //no-check-names
-#endif /* MBEDTLS_ECP_DP_SECP384R1_ENABLED */
-#if defined(MBEDTLS_ECP_DP_SECP521R1_ENABLED)
-    "ECP_DP_SECP521R1_ENABLED", //no-check-names
-#endif /* MBEDTLS_ECP_DP_SECP521R1_ENABLED */
-#if defined(MBEDTLS_ECP_DP_SECP192K1_ENABLED)
-    "ECP_DP_SECP192K1_ENABLED", //no-check-names
-#endif /* MBEDTLS_ECP_DP_SECP192K1_ENABLED */
-#if defined(MBEDTLS_ECP_DP_SECP224K1_ENABLED)
-    "ECP_DP_SECP224K1_ENABLED", //no-check-names
-#endif /* MBEDTLS_ECP_DP_SECP224K1_ENABLED */
-#if defined(MBEDTLS_ECP_DP_SECP256K1_ENABLED)
-    "ECP_DP_SECP256K1_ENABLED", //no-check-names
-#endif /* MBEDTLS_ECP_DP_SECP256K1_ENABLED */
-#if defined(MBEDTLS_ECP_DP_BP256R1_ENABLED)
-    "ECP_DP_BP256R1_ENABLED", //no-check-names
-#endif /* MBEDTLS_ECP_DP_BP256R1_ENABLED */
-#if defined(MBEDTLS_ECP_DP_BP384R1_ENABLED)
-    "ECP_DP_BP384R1_ENABLED", //no-check-names
-#endif /* MBEDTLS_ECP_DP_BP384R1_ENABLED */
-#if defined(MBEDTLS_ECP_DP_BP512R1_ENABLED)
-    "ECP_DP_BP512R1_ENABLED", //no-check-names
-#endif /* MBEDTLS_ECP_DP_BP512R1_ENABLED */
-#if defined(MBEDTLS_ECP_DP_CURVE25519_ENABLED)
-    "ECP_DP_CURVE25519_ENABLED", //no-check-names
-#endif /* MBEDTLS_ECP_DP_CURVE25519_ENABLED */
-#if defined(MBEDTLS_ECP_DP_CURVE448_ENABLED)
-    "ECP_DP_CURVE448_ENABLED", //no-check-names
-#endif /* MBEDTLS_ECP_DP_CURVE448_ENABLED */
-#if defined(MBEDTLS_ECP_NIST_OPTIM)
-    "ECP_NIST_OPTIM", //no-check-names
-#endif /* MBEDTLS_ECP_NIST_OPTIM */
-#if defined(MBEDTLS_ECP_RESTARTABLE)
-    "ECP_RESTARTABLE", //no-check-names
-#endif /* MBEDTLS_ECP_RESTARTABLE */
-#if defined(MBEDTLS_ECP_WITH_MPI_UINT)
-    "ECP_WITH_MPI_UINT", //no-check-names
-#endif /* MBEDTLS_ECP_WITH_MPI_UINT */
-#if defined(MBEDTLS_ECDSA_DETERMINISTIC)
-    "ECDSA_DETERMINISTIC", //no-check-names
-#endif /* MBEDTLS_ECDSA_DETERMINISTIC */
-#if defined(MBEDTLS_KEY_EXCHANGE_PSK_ENABLED)
-    "KEY_EXCHANGE_PSK_ENABLED", //no-check-names
-#endif /* MBEDTLS_KEY_EXCHANGE_PSK_ENABLED */
-#if defined(MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED)
-    "KEY_EXCHANGE_DHE_PSK_ENABLED", //no-check-names
-#endif /* MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED */
-#if defined(MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED)
-    "KEY_EXCHANGE_ECDHE_PSK_ENABLED", //no-check-names
-#endif /* MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED */
-#if defined(MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED)
-    "KEY_EXCHANGE_RSA_PSK_ENABLED", //no-check-names
-#endif /* MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED */
-#if defined(MBEDTLS_KEY_EXCHANGE_RSA_ENABLED)
-    "KEY_EXCHANGE_RSA_ENABLED", //no-check-names
-#endif /* MBEDTLS_KEY_EXCHANGE_RSA_ENABLED */
-#if defined(MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED)
-    "KEY_EXCHANGE_DHE_RSA_ENABLED", //no-check-names
-#endif /* MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED */
-#if defined(MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED)
-    "KEY_EXCHANGE_ECDHE_RSA_ENABLED", //no-check-names
-#endif /* MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED */
-#if defined(MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED)
-    "KEY_EXCHANGE_ECDHE_ECDSA_ENABLED", //no-check-names
-#endif /* MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED */
-#if defined(MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED)
-    "KEY_EXCHANGE_ECDH_ECDSA_ENABLED", //no-check-names
-#endif /* MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED */
-#if defined(MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED)
-    "KEY_EXCHANGE_ECDH_RSA_ENABLED", //no-check-names
-#endif /* MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED */
-#if defined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED)
-    "KEY_EXCHANGE_ECJPAKE_ENABLED", //no-check-names
-#endif /* MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED */
-#if defined(MBEDTLS_PK_PARSE_EC_EXTENDED)
-    "PK_PARSE_EC_EXTENDED", //no-check-names
-#endif /* MBEDTLS_PK_PARSE_EC_EXTENDED */
-#if defined(MBEDTLS_PK_PARSE_EC_COMPRESSED)
-    "PK_PARSE_EC_COMPRESSED", //no-check-names
-#endif /* MBEDTLS_PK_PARSE_EC_COMPRESSED */
-#if defined(MBEDTLS_ERROR_STRERROR_DUMMY)
-    "ERROR_STRERROR_DUMMY", //no-check-names
-#endif /* MBEDTLS_ERROR_STRERROR_DUMMY */
-#if defined(MBEDTLS_GENPRIME)
-    "GENPRIME", //no-check-names
-#endif /* MBEDTLS_GENPRIME */
-#if defined(MBEDTLS_FS_IO)
-    "FS_IO", //no-check-names
-#endif /* MBEDTLS_FS_IO */
-#if defined(MBEDTLS_NO_DEFAULT_ENTROPY_SOURCES)
-    "NO_DEFAULT_ENTROPY_SOURCES", //no-check-names
-#endif /* MBEDTLS_NO_DEFAULT_ENTROPY_SOURCES */
-#if defined(MBEDTLS_NO_PLATFORM_ENTROPY)
-    "NO_PLATFORM_ENTROPY", //no-check-names
-#endif /* MBEDTLS_NO_PLATFORM_ENTROPY */
-#if defined(MBEDTLS_ENTROPY_FORCE_SHA256)
-    "ENTROPY_FORCE_SHA256", //no-check-names
-#endif /* MBEDTLS_ENTROPY_FORCE_SHA256 */
-#if defined(MBEDTLS_ENTROPY_NV_SEED)
-    "ENTROPY_NV_SEED", //no-check-names
-#endif /* MBEDTLS_ENTROPY_NV_SEED */
-#if defined(MBEDTLS_PSA_CRYPTO_KEY_ID_ENCODES_OWNER)
-    "PSA_CRYPTO_KEY_ID_ENCODES_OWNER", //no-check-names
-#endif /* MBEDTLS_PSA_CRYPTO_KEY_ID_ENCODES_OWNER */
-#if defined(MBEDTLS_MEMORY_DEBUG)
-    "MEMORY_DEBUG", //no-check-names
-#endif /* MBEDTLS_MEMORY_DEBUG */
-#if defined(MBEDTLS_MEMORY_BACKTRACE)
-    "MEMORY_BACKTRACE", //no-check-names
-#endif /* MBEDTLS_MEMORY_BACKTRACE */
-#if defined(MBEDTLS_PK_RSA_ALT_SUPPORT)
-    "PK_RSA_ALT_SUPPORT", //no-check-names
-#endif /* MBEDTLS_PK_RSA_ALT_SUPPORT */
-#if defined(MBEDTLS_PKCS1_V15)
-    "PKCS1_V15", //no-check-names
-#endif /* MBEDTLS_PKCS1_V15 */
-#if defined(MBEDTLS_PKCS1_V21)
-    "PKCS1_V21", //no-check-names
-#endif /* MBEDTLS_PKCS1_V21 */
-#if defined(MBEDTLS_PSA_CRYPTO_BUILTIN_KEYS)
-    "PSA_CRYPTO_BUILTIN_KEYS", //no-check-names
-#endif /* MBEDTLS_PSA_CRYPTO_BUILTIN_KEYS */
-#if defined(MBEDTLS_PSA_CRYPTO_CLIENT)
-    "PSA_CRYPTO_CLIENT", //no-check-names
-#endif /* MBEDTLS_PSA_CRYPTO_CLIENT */
-#if defined(MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG)
-    "PSA_CRYPTO_EXTERNAL_RNG", //no-check-names
-#endif /* MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG */
-#if defined(MBEDTLS_PSA_CRYPTO_SPM)
-    "PSA_CRYPTO_SPM", //no-check-names
-#endif /* MBEDTLS_PSA_CRYPTO_SPM */
-#if defined(MBEDTLS_PSA_KEY_STORE_DYNAMIC)
-    "PSA_KEY_STORE_DYNAMIC", //no-check-names
-#endif /* MBEDTLS_PSA_KEY_STORE_DYNAMIC */
-#if defined(MBEDTLS_PSA_P256M_DRIVER_ENABLED)
-    "PSA_P256M_DRIVER_ENABLED", //no-check-names
-#endif /* MBEDTLS_PSA_P256M_DRIVER_ENABLED */
-#if defined(MBEDTLS_PSA_INJECT_ENTROPY)
-    "PSA_INJECT_ENTROPY", //no-check-names
-#endif /* MBEDTLS_PSA_INJECT_ENTROPY */
-#if defined(MBEDTLS_PSA_ASSUME_EXCLUSIVE_BUFFERS)
-    "PSA_ASSUME_EXCLUSIVE_BUFFERS", //no-check-names
-#endif /* MBEDTLS_PSA_ASSUME_EXCLUSIVE_BUFFERS */
-#if defined(MBEDTLS_RSA_NO_CRT)
-    "RSA_NO_CRT", //no-check-names
-#endif /* MBEDTLS_RSA_NO_CRT */
-#if defined(MBEDTLS_SELF_TEST)
-    "SELF_TEST", //no-check-names
-#endif /* MBEDTLS_SELF_TEST */
-#if defined(MBEDTLS_SHA256_SMALLER)
-    "SHA256_SMALLER", //no-check-names
-#endif /* MBEDTLS_SHA256_SMALLER */
-#if defined(MBEDTLS_SHA512_SMALLER)
-    "SHA512_SMALLER", //no-check-names
-#endif /* MBEDTLS_SHA512_SMALLER */
-#if defined(MBEDTLS_SSL_ALL_ALERT_MESSAGES)
-    "SSL_ALL_ALERT_MESSAGES", //no-check-names
-#endif /* MBEDTLS_SSL_ALL_ALERT_MESSAGES */
-#if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID)
-    "SSL_DTLS_CONNECTION_ID", //no-check-names
-#endif /* MBEDTLS_SSL_DTLS_CONNECTION_ID */
-#if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID_COMPAT)
-    "SSL_DTLS_CONNECTION_ID_COMPAT", //no-check-names
-#endif /* MBEDTLS_SSL_DTLS_CONNECTION_ID_COMPAT */
-#if defined(MBEDTLS_SSL_ASYNC_PRIVATE)
-    "SSL_ASYNC_PRIVATE", //no-check-names
-#endif /* MBEDTLS_SSL_ASYNC_PRIVATE */
-#if defined(MBEDTLS_SSL_CLI_ALLOW_WEAK_CERTIFICATE_VERIFICATION_WITHOUT_HOSTNAME)
-    "SSL_CLI_ALLOW_WEAK_CERTIFICATE_VERIFICATION_WITHOUT_HOSTNAME", //no-check-names
-#endif /* MBEDTLS_SSL_CLI_ALLOW_WEAK_CERTIFICATE_VERIFICATION_WITHOUT_HOSTNAME */
-#if defined(MBEDTLS_SSL_CONTEXT_SERIALIZATION)
-    "SSL_CONTEXT_SERIALIZATION", //no-check-names
-#endif /* MBEDTLS_SSL_CONTEXT_SERIALIZATION */
-#if defined(MBEDTLS_SSL_DEBUG_ALL)
-    "SSL_DEBUG_ALL", //no-check-names
-#endif /* MBEDTLS_SSL_DEBUG_ALL */
-#if defined(MBEDTLS_SSL_ENCRYPT_THEN_MAC)
-    "SSL_ENCRYPT_THEN_MAC", //no-check-names
-#endif /* MBEDTLS_SSL_ENCRYPT_THEN_MAC */
-#if defined(MBEDTLS_SSL_EXTENDED_MASTER_SECRET)
-    "SSL_EXTENDED_MASTER_SECRET", //no-check-names
-#endif /* MBEDTLS_SSL_EXTENDED_MASTER_SECRET */
-#if defined(MBEDTLS_SSL_KEEP_PEER_CERTIFICATE)
-    "SSL_KEEP_PEER_CERTIFICATE", //no-check-names
-#endif /* MBEDTLS_SSL_KEEP_PEER_CERTIFICATE */
-#if defined(MBEDTLS_SSL_KEYING_MATERIAL_EXPORT)
-    "SSL_KEYING_MATERIAL_EXPORT", //no-check-names
-#endif /* MBEDTLS_SSL_KEYING_MATERIAL_EXPORT */
-#if defined(MBEDTLS_SSL_RENEGOTIATION)
-    "SSL_RENEGOTIATION", //no-check-names
-#endif /* MBEDTLS_SSL_RENEGOTIATION */
-#if defined(MBEDTLS_SSL_MAX_FRAGMENT_LENGTH)
-    "SSL_MAX_FRAGMENT_LENGTH", //no-check-names
-#endif /* MBEDTLS_SSL_MAX_FRAGMENT_LENGTH */
-#if defined(MBEDTLS_SSL_RECORD_SIZE_LIMIT)
-    "SSL_RECORD_SIZE_LIMIT", //no-check-names
-#endif /* MBEDTLS_SSL_RECORD_SIZE_LIMIT */
-#if defined(MBEDTLS_SSL_PROTO_TLS1_2)
-    "SSL_PROTO_TLS1_2", //no-check-names
-#endif /* MBEDTLS_SSL_PROTO_TLS1_2 */
-#if defined(MBEDTLS_SSL_PROTO_TLS1_3)
-    "SSL_PROTO_TLS1_3", //no-check-names
-#endif /* MBEDTLS_SSL_PROTO_TLS1_3 */
-#if defined(MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE)
-    "SSL_TLS1_3_COMPATIBILITY_MODE", //no-check-names
-#endif /* MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE */
-#if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED)
-    "SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED", //no-check-names
-#endif /* MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED */
-#if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED)
-    "SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED", //no-check-names
-#endif /* MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED */
-#if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED)
-    "SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED", //no-check-names
-#endif /* MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED */
-#if defined(MBEDTLS_SSL_EARLY_DATA)
-    "SSL_EARLY_DATA", //no-check-names
-#endif /* MBEDTLS_SSL_EARLY_DATA */
-#if defined(MBEDTLS_SSL_PROTO_DTLS)
-    "SSL_PROTO_DTLS", //no-check-names
-#endif /* MBEDTLS_SSL_PROTO_DTLS */
-#if defined(MBEDTLS_SSL_ALPN)
-    "SSL_ALPN", //no-check-names
-#endif /* MBEDTLS_SSL_ALPN */
-#if defined(MBEDTLS_SSL_DTLS_ANTI_REPLAY)
-    "SSL_DTLS_ANTI_REPLAY", //no-check-names
-#endif /* MBEDTLS_SSL_DTLS_ANTI_REPLAY */
-#if defined(MBEDTLS_SSL_DTLS_HELLO_VERIFY)
-    "SSL_DTLS_HELLO_VERIFY", //no-check-names
-#endif /* MBEDTLS_SSL_DTLS_HELLO_VERIFY */
-#if defined(MBEDTLS_SSL_DTLS_SRTP)
-    "SSL_DTLS_SRTP", //no-check-names
-#endif /* MBEDTLS_SSL_DTLS_SRTP */
-#if defined(MBEDTLS_SSL_DTLS_CLIENT_PORT_REUSE)
-    "SSL_DTLS_CLIENT_PORT_REUSE", //no-check-names
-#endif /* MBEDTLS_SSL_DTLS_CLIENT_PORT_REUSE */
-#if defined(MBEDTLS_SSL_SESSION_TICKETS)
-    "SSL_SESSION_TICKETS", //no-check-names
-#endif /* MBEDTLS_SSL_SESSION_TICKETS */
-#if defined(MBEDTLS_SSL_SERVER_NAME_INDICATION)
-    "SSL_SERVER_NAME_INDICATION", //no-check-names
-#endif /* MBEDTLS_SSL_SERVER_NAME_INDICATION */
-#if defined(MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH)
-    "SSL_VARIABLE_BUFFER_LENGTH", //no-check-names
-#endif /* MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH */
-#if defined(MBEDTLS_TEST_CONSTANT_FLOW_MEMSAN)
-    "TEST_CONSTANT_FLOW_MEMSAN", //no-check-names
-#endif /* MBEDTLS_TEST_CONSTANT_FLOW_MEMSAN */
-#if defined(MBEDTLS_TEST_CONSTANT_FLOW_VALGRIND)
-    "TEST_CONSTANT_FLOW_VALGRIND", //no-check-names
-#endif /* MBEDTLS_TEST_CONSTANT_FLOW_VALGRIND */
-#if defined(MBEDTLS_TEST_HOOKS)
-    "TEST_HOOKS", //no-check-names
-#endif /* MBEDTLS_TEST_HOOKS */
-#if defined(MBEDTLS_THREADING_ALT)
-    "THREADING_ALT", //no-check-names
-#endif /* MBEDTLS_THREADING_ALT */
-#if defined(MBEDTLS_THREADING_PTHREAD)
-    "THREADING_PTHREAD", //no-check-names
-#endif /* MBEDTLS_THREADING_PTHREAD */
-#if defined(MBEDTLS_USE_PSA_CRYPTO)
-    "USE_PSA_CRYPTO", //no-check-names
-#endif /* MBEDTLS_USE_PSA_CRYPTO */
-#if defined(MBEDTLS_PSA_CRYPTO_CONFIG)
-    "PSA_CRYPTO_CONFIG", //no-check-names
-#endif /* MBEDTLS_PSA_CRYPTO_CONFIG */
-#if defined(MBEDTLS_VERSION_FEATURES)
-    "VERSION_FEATURES", //no-check-names
-#endif /* MBEDTLS_VERSION_FEATURES */
-#if defined(MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK)
-    "X509_TRUSTED_CERTIFICATE_CALLBACK", //no-check-names
-#endif /* MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK */
-#if defined(MBEDTLS_X509_REMOVE_INFO)
-    "X509_REMOVE_INFO", //no-check-names
-#endif /* MBEDTLS_X509_REMOVE_INFO */
-#if defined(MBEDTLS_X509_RSASSA_PSS_SUPPORT)
-    "X509_RSASSA_PSS_SUPPORT", //no-check-names
-#endif /* MBEDTLS_X509_RSASSA_PSS_SUPPORT */
-#if defined(MBEDTLS_AESNI_C)
-    "AESNI_C", //no-check-names
-#endif /* MBEDTLS_AESNI_C */
-#if defined(MBEDTLS_AESCE_C)
-    "AESCE_C", //no-check-names
-#endif /* MBEDTLS_AESCE_C */
-#if defined(MBEDTLS_AES_C)
-    "AES_C", //no-check-names
-#endif /* MBEDTLS_AES_C */
-#if defined(MBEDTLS_ASN1_PARSE_C)
-    "ASN1_PARSE_C", //no-check-names
-#endif /* MBEDTLS_ASN1_PARSE_C */
-#if defined(MBEDTLS_ASN1_WRITE_C)
-    "ASN1_WRITE_C", //no-check-names
-#endif /* MBEDTLS_ASN1_WRITE_C */
-#if defined(MBEDTLS_BASE64_C)
-    "BASE64_C", //no-check-names
-#endif /* MBEDTLS_BASE64_C */
-#if defined(MBEDTLS_BLOCK_CIPHER_NO_DECRYPT)
-    "BLOCK_CIPHER_NO_DECRYPT", //no-check-names
-#endif /* MBEDTLS_BLOCK_CIPHER_NO_DECRYPT */
-#if defined(MBEDTLS_BIGNUM_C)
-    "BIGNUM_C", //no-check-names
-#endif /* MBEDTLS_BIGNUM_C */
-#if defined(MBEDTLS_CAMELLIA_C)
-    "CAMELLIA_C", //no-check-names
-#endif /* MBEDTLS_CAMELLIA_C */
-#if defined(MBEDTLS_ARIA_C)
-    "ARIA_C", //no-check-names
-#endif /* MBEDTLS_ARIA_C */
-#if defined(MBEDTLS_CCM_C)
-    "CCM_C", //no-check-names
-#endif /* MBEDTLS_CCM_C */
-#if defined(MBEDTLS_CHACHA20_C)
-    "CHACHA20_C", //no-check-names
-#endif /* MBEDTLS_CHACHA20_C */
-#if defined(MBEDTLS_CHACHAPOLY_C)
-    "CHACHAPOLY_C", //no-check-names
-#endif /* MBEDTLS_CHACHAPOLY_C */
-#if defined(MBEDTLS_CIPHER_C)
-    "CIPHER_C", //no-check-names
-#endif /* MBEDTLS_CIPHER_C */
-#if defined(MBEDTLS_CMAC_C)
-    "CMAC_C", //no-check-names
-#endif /* MBEDTLS_CMAC_C */
-#if defined(MBEDTLS_CTR_DRBG_C)
-    "CTR_DRBG_C", //no-check-names
-#endif /* MBEDTLS_CTR_DRBG_C */
-#if defined(MBEDTLS_DEBUG_C)
-    "DEBUG_C", //no-check-names
-#endif /* MBEDTLS_DEBUG_C */
-#if defined(MBEDTLS_DES_C)
-    "DES_C", //no-check-names
-#endif /* MBEDTLS_DES_C */
-#if defined(MBEDTLS_DHM_C)
-    "DHM_C", //no-check-names
-#endif /* MBEDTLS_DHM_C */
-#if defined(MBEDTLS_ECDH_C)
-    "ECDH_C", //no-check-names
-#endif /* MBEDTLS_ECDH_C */
-#if defined(MBEDTLS_ECDSA_C)
-    "ECDSA_C", //no-check-names
-#endif /* MBEDTLS_ECDSA_C */
-#if defined(MBEDTLS_ECJPAKE_C)
-    "ECJPAKE_C", //no-check-names
-#endif /* MBEDTLS_ECJPAKE_C */
-#if defined(MBEDTLS_ECP_C)
-    "ECP_C", //no-check-names
-#endif /* MBEDTLS_ECP_C */
-#if defined(MBEDTLS_ENTROPY_C)
-    "ENTROPY_C", //no-check-names
-#endif /* MBEDTLS_ENTROPY_C */
-#if defined(MBEDTLS_ERROR_C)
-    "ERROR_C", //no-check-names
-#endif /* MBEDTLS_ERROR_C */
-#if defined(MBEDTLS_GCM_C)
-    "GCM_C", //no-check-names
-#endif /* MBEDTLS_GCM_C */
-#if defined(MBEDTLS_GCM_LARGE_TABLE)
-    "GCM_LARGE_TABLE", //no-check-names
-#endif /* MBEDTLS_GCM_LARGE_TABLE */
-#if defined(MBEDTLS_HKDF_C)
-    "HKDF_C", //no-check-names
-#endif /* MBEDTLS_HKDF_C */
-#if defined(MBEDTLS_HMAC_DRBG_C)
-    "HMAC_DRBG_C", //no-check-names
-#endif /* MBEDTLS_HMAC_DRBG_C */
-#if defined(MBEDTLS_LMS_C)
-    "LMS_C", //no-check-names
-#endif /* MBEDTLS_LMS_C */
-#if defined(MBEDTLS_LMS_PRIVATE)
-    "LMS_PRIVATE", //no-check-names
-#endif /* MBEDTLS_LMS_PRIVATE */
-#if defined(MBEDTLS_NIST_KW_C)
-    "NIST_KW_C", //no-check-names
-#endif /* MBEDTLS_NIST_KW_C */
-#if defined(MBEDTLS_MD_C)
-    "MD_C", //no-check-names
-#endif /* MBEDTLS_MD_C */
-#if defined(MBEDTLS_MD5_C)
-    "MD5_C", //no-check-names
-#endif /* MBEDTLS_MD5_C */
-#if defined(MBEDTLS_MEMORY_BUFFER_ALLOC_C)
-    "MEMORY_BUFFER_ALLOC_C", //no-check-names
-#endif /* MBEDTLS_MEMORY_BUFFER_ALLOC_C */
-#if defined(MBEDTLS_NET_C)
-    "NET_C", //no-check-names
-#endif /* MBEDTLS_NET_C */
-#if defined(MBEDTLS_OID_C)
-    "OID_C", //no-check-names
-#endif /* MBEDTLS_OID_C */
-#if defined(MBEDTLS_PADLOCK_C)
-    "PADLOCK_C", //no-check-names
-#endif /* MBEDTLS_PADLOCK_C */
-#if defined(MBEDTLS_PEM_PARSE_C)
-    "PEM_PARSE_C", //no-check-names
-#endif /* MBEDTLS_PEM_PARSE_C */
-#if defined(MBEDTLS_PEM_WRITE_C)
-    "PEM_WRITE_C", //no-check-names
-#endif /* MBEDTLS_PEM_WRITE_C */
-#if defined(MBEDTLS_PK_C)
-    "PK_C", //no-check-names
-#endif /* MBEDTLS_PK_C */
-#if defined(MBEDTLS_PK_PARSE_C)
-    "PK_PARSE_C", //no-check-names
-#endif /* MBEDTLS_PK_PARSE_C */
-#if defined(MBEDTLS_PK_WRITE_C)
-    "PK_WRITE_C", //no-check-names
-#endif /* MBEDTLS_PK_WRITE_C */
-#if defined(MBEDTLS_PKCS5_C)
-    "PKCS5_C", //no-check-names
-#endif /* MBEDTLS_PKCS5_C */
-#if defined(MBEDTLS_PKCS7_C)
-    "PKCS7_C", //no-check-names
-#endif /* MBEDTLS_PKCS7_C */
-#if defined(MBEDTLS_PKCS12_C)
-    "PKCS12_C", //no-check-names
-#endif /* MBEDTLS_PKCS12_C */
-#if defined(MBEDTLS_PLATFORM_C)
-    "PLATFORM_C", //no-check-names
-#endif /* MBEDTLS_PLATFORM_C */
-#if defined(MBEDTLS_POLY1305_C)
-    "POLY1305_C", //no-check-names
-#endif /* MBEDTLS_POLY1305_C */
-#if defined(MBEDTLS_PSA_CRYPTO_C)
-    "PSA_CRYPTO_C", //no-check-names
-#endif /* MBEDTLS_PSA_CRYPTO_C */
-#if defined(MBEDTLS_PSA_CRYPTO_SE_C)
-    "PSA_CRYPTO_SE_C", //no-check-names
-#endif /* MBEDTLS_PSA_CRYPTO_SE_C */
-#if defined(MBEDTLS_PSA_CRYPTO_STORAGE_C)
-    "PSA_CRYPTO_STORAGE_C", //no-check-names
-#endif /* MBEDTLS_PSA_CRYPTO_STORAGE_C */
-#if defined(MBEDTLS_PSA_ITS_FILE_C)
-    "PSA_ITS_FILE_C", //no-check-names
-#endif /* MBEDTLS_PSA_ITS_FILE_C */
-#if defined(MBEDTLS_PSA_STATIC_KEY_SLOTS)
-    "PSA_STATIC_KEY_SLOTS", //no-check-names
-#endif /* MBEDTLS_PSA_STATIC_KEY_SLOTS */
-#if defined(MBEDTLS_RIPEMD160_C)
-    "RIPEMD160_C", //no-check-names
-#endif /* MBEDTLS_RIPEMD160_C */
-#if defined(MBEDTLS_RSA_C)
-    "RSA_C", //no-check-names
-#endif /* MBEDTLS_RSA_C */
-#if defined(MBEDTLS_SHA1_C)
-    "SHA1_C", //no-check-names
-#endif /* MBEDTLS_SHA1_C */
-#if defined(MBEDTLS_SHA224_C)
-    "SHA224_C", //no-check-names
-#endif /* MBEDTLS_SHA224_C */
-#if defined(MBEDTLS_SHA256_C)
-    "SHA256_C", //no-check-names
-#endif /* MBEDTLS_SHA256_C */
-#if defined(MBEDTLS_SHA256_USE_ARMV8_A_CRYPTO_IF_PRESENT)
-    "SHA256_USE_ARMV8_A_CRYPTO_IF_PRESENT", //no-check-names
-#endif /* MBEDTLS_SHA256_USE_ARMV8_A_CRYPTO_IF_PRESENT */
-#if defined(MBEDTLS_SHA256_USE_A64_CRYPTO_IF_PRESENT)
-    "SHA256_USE_A64_CRYPTO_IF_PRESENT", //no-check-names
-#endif /* MBEDTLS_SHA256_USE_A64_CRYPTO_IF_PRESENT */
-#if defined(MBEDTLS_SHA256_USE_ARMV8_A_CRYPTO_ONLY)
-    "SHA256_USE_ARMV8_A_CRYPTO_ONLY", //no-check-names
-#endif /* MBEDTLS_SHA256_USE_ARMV8_A_CRYPTO_ONLY */
-#if defined(MBEDTLS_SHA256_USE_A64_CRYPTO_ONLY)
-    "SHA256_USE_A64_CRYPTO_ONLY", //no-check-names
-#endif /* MBEDTLS_SHA256_USE_A64_CRYPTO_ONLY */
-#if defined(MBEDTLS_SHA384_C)
-    "SHA384_C", //no-check-names
-#endif /* MBEDTLS_SHA384_C */
-#if defined(MBEDTLS_SHA512_C)
-    "SHA512_C", //no-check-names
-#endif /* MBEDTLS_SHA512_C */
-#if defined(MBEDTLS_SHA3_C)
-    "SHA3_C", //no-check-names
-#endif /* MBEDTLS_SHA3_C */
-#if defined(MBEDTLS_SHA512_USE_A64_CRYPTO_IF_PRESENT)
-    "SHA512_USE_A64_CRYPTO_IF_PRESENT", //no-check-names
-#endif /* MBEDTLS_SHA512_USE_A64_CRYPTO_IF_PRESENT */
-#if defined(MBEDTLS_SHA512_USE_A64_CRYPTO_ONLY)
-    "SHA512_USE_A64_CRYPTO_ONLY", //no-check-names
-#endif /* MBEDTLS_SHA512_USE_A64_CRYPTO_ONLY */
-#if defined(MBEDTLS_SSL_CACHE_C)
-    "SSL_CACHE_C", //no-check-names
-#endif /* MBEDTLS_SSL_CACHE_C */
-#if defined(MBEDTLS_SSL_COOKIE_C)
-    "SSL_COOKIE_C", //no-check-names
-#endif /* MBEDTLS_SSL_COOKIE_C */
-#if defined(MBEDTLS_SSL_TICKET_C)
-    "SSL_TICKET_C", //no-check-names
-#endif /* MBEDTLS_SSL_TICKET_C */
-#if defined(MBEDTLS_SSL_CLI_C)
-    "SSL_CLI_C", //no-check-names
-#endif /* MBEDTLS_SSL_CLI_C */
-#if defined(MBEDTLS_SSL_SRV_C)
-    "SSL_SRV_C", //no-check-names
-#endif /* MBEDTLS_SSL_SRV_C */
-#if defined(MBEDTLS_SSL_TLS_C)
-    "SSL_TLS_C", //no-check-names
-#endif /* MBEDTLS_SSL_TLS_C */
-#if defined(MBEDTLS_THREADING_C)
-    "THREADING_C", //no-check-names
-#endif /* MBEDTLS_THREADING_C */
-#if defined(MBEDTLS_TIMING_C)
-    "TIMING_C", //no-check-names
-#endif /* MBEDTLS_TIMING_C */
-#if defined(MBEDTLS_VERSION_C)
-    "VERSION_C", //no-check-names
-#endif /* MBEDTLS_VERSION_C */
-#if defined(MBEDTLS_X509_USE_C)
-    "X509_USE_C", //no-check-names
-#endif /* MBEDTLS_X509_USE_C */
-#if defined(MBEDTLS_X509_CRT_PARSE_C)
-    "X509_CRT_PARSE_C", //no-check-names
-#endif /* MBEDTLS_X509_CRT_PARSE_C */
-#if defined(MBEDTLS_X509_CRL_PARSE_C)
-    "X509_CRL_PARSE_C", //no-check-names
-#endif /* MBEDTLS_X509_CRL_PARSE_C */
-#if defined(MBEDTLS_X509_CSR_PARSE_C)
-    "X509_CSR_PARSE_C", //no-check-names
-#endif /* MBEDTLS_X509_CSR_PARSE_C */
-#if defined(MBEDTLS_X509_CREATE_C)
-    "X509_CREATE_C", //no-check-names
-#endif /* MBEDTLS_X509_CREATE_C */
-#if defined(MBEDTLS_X509_CRT_WRITE_C)
-    "X509_CRT_WRITE_C", //no-check-names
-#endif /* MBEDTLS_X509_CRT_WRITE_C */
-#if defined(MBEDTLS_X509_CSR_WRITE_C)
-    "X509_CSR_WRITE_C", //no-check-names
-#endif /* MBEDTLS_X509_CSR_WRITE_C */
-#endif /* MBEDTLS_VERSION_FEATURES */
-    NULL
-};
-
-int mbedtls_version_check_feature(const char *feature)
-{
-    const char * const *idx = features;
-
-    if (*idx == NULL) {
-        return -2;
-    }
-
-    if (feature == NULL) {
-        return -1;
-    }
-
-    if (strncmp(feature, "MBEDTLS_", 8)) {
-        return -1;
-    }
-
-    feature += 8;
-
-    while (*idx != NULL) {
-        if (!strcmp(*idx, feature)) {
-            return 0;
-        }
-        idx++;
-    }
-    return -1;
-}
-
-#endif /* MBEDTLS_VERSION_C */
diff --git a/deps/LIEF/third-party/mbedtls/library/x509.c b/deps/LIEF/third-party/mbedtls/library/x509.c
index f97fb44589e..1adff8fafc4 100644
--- a/deps/LIEF/third-party/mbedtls/library/x509.c
+++ b/deps/LIEF/third-party/mbedtls/library/x509.c
@@ -15,15 +15,16 @@
  *  http://www.itu.int/ITU-T/studygroups/com17/languages/X.690-0207.pdf
  */

-#include "common.h"
+#include "x509_internal.h"

 #if defined(MBEDTLS_X509_USE_C)

-#include "x509_internal.h"
 #include "mbedtls/asn1.h"
 #include "mbedtls/error.h"
 #include "mbedtls/oid.h"
+#include "x509_oid.h"

+#include <limits.h>
 #include <stdio.h>
 #include <string.h>

@@ -129,31 +130,31 @@ int mbedtls_x509_get_alg(unsigned char **p, const unsigned char *end,
 static inline const char *md_type_to_string(mbedtls_md_type_t md_alg)
 {
     switch (md_alg) {
-#if defined(MBEDTLS_MD_CAN_MD5)
+#if defined(PSA_WANT_ALG_MD5)
         case MBEDTLS_MD_MD5:
             return "MD5";
 #endif
-#if defined(MBEDTLS_MD_CAN_SHA1)
+#if defined(PSA_WANT_ALG_SHA_1)
         case MBEDTLS_MD_SHA1:
             return "SHA1";
 #endif
-#if defined(MBEDTLS_MD_CAN_SHA224)
+#if defined(PSA_WANT_ALG_SHA_224)
         case MBEDTLS_MD_SHA224:
             return "SHA224";
 #endif
-#if defined(MBEDTLS_MD_CAN_SHA256)
+#if defined(PSA_WANT_ALG_SHA_256)
         case MBEDTLS_MD_SHA256:
             return "SHA256";
 #endif
-#if defined(MBEDTLS_MD_CAN_SHA384)
+#if defined(PSA_WANT_ALG_SHA_384)
         case MBEDTLS_MD_SHA384:
             return "SHA384";
 #endif
-#if defined(MBEDTLS_MD_CAN_SHA512)
+#if defined(PSA_WANT_ALG_SHA_512)
         case MBEDTLS_MD_SHA512:
             return "SHA512";
 #endif
-#if defined(MBEDTLS_MD_CAN_RIPEMD160)
+#if defined(PSA_WANT_ALG_RIPEMD160)
         case MBEDTLS_MD_RIPEMD160:
             return "RIPEMD160";
 #endif
@@ -209,7 +210,7 @@ static int x509_get_hash_alg(const mbedtls_x509_buf *alg, mbedtls_md_type_t *md_
     p += md_oid.len;

     /* Get md_alg from md_oid */
-    if ((ret = mbedtls_oid_get_md_alg(&md_oid, md_alg)) != 0) {
+    if ((ret = mbedtls_x509_oid_get_md_alg(&md_oid, md_alg)) != 0) {
         return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_ALG, ret);
     }

@@ -283,7 +284,7 @@ int mbedtls_x509_get_rsassa_pss_params(const mbedtls_x509_buf *params,
             return ret;
         }

-        if ((ret = mbedtls_oid_get_md_alg(&alg_id, md_alg)) != 0) {
+        if ((ret = mbedtls_x509_oid_get_md_alg(&alg_id, md_alg)) != 0) {
             return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_ALG, ret);
         }

@@ -315,7 +316,7 @@ int mbedtls_x509_get_rsassa_pss_params(const mbedtls_x509_buf *params,
         /* Only MFG1 is recognised for now */
         if (MBEDTLS_OID_CMP(MBEDTLS_OID_MGF1, &alg_id) != 0) {
             return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_FEATURE_UNAVAILABLE,
-                                     MBEDTLS_ERR_OID_NOT_FOUND);
+                                     MBEDTLS_ERR_X509_UNKNOWN_OID);
         }

         /* Parse HashAlgorithm */
@@ -716,38 +717,30 @@ int mbedtls_x509_get_sig(unsigned char **p, const unsigned char *end, mbedtls_x5
  * Get signature algorithm from alg OID and optional parameters
  */
 int mbedtls_x509_get_sig_alg(const mbedtls_x509_buf *sig_oid, const mbedtls_x509_buf *sig_params,
-                             mbedtls_md_type_t *md_alg, mbedtls_pk_type_t *pk_alg,
-                             void **sig_opts)
+                             mbedtls_md_type_t *md_alg, mbedtls_pk_sigalg_t *pk_alg)
 {
     int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;

-    if (*sig_opts != NULL) {
-        return MBEDTLS_ERR_X509_BAD_INPUT_DATA;
-    }
-
-    if ((ret = mbedtls_oid_get_sig_alg(sig_oid, md_alg, pk_alg)) != 0) {
+    if ((ret = mbedtls_x509_oid_get_sig_alg(sig_oid, md_alg, pk_alg)) != 0) {
         return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_UNKNOWN_SIG_ALG, ret);
     }

 #if defined(MBEDTLS_X509_RSASSA_PSS_SUPPORT)
-    if (*pk_alg == MBEDTLS_PK_RSASSA_PSS) {
-        mbedtls_pk_rsassa_pss_options *pss_opts;
-
-        pss_opts = mbedtls_calloc(1, sizeof(mbedtls_pk_rsassa_pss_options));
-        if (pss_opts == NULL) {
-            return MBEDTLS_ERR_X509_ALLOC_FAILED;
-        }
+    if (*pk_alg == MBEDTLS_PK_SIGALG_RSA_PSS) {
+        mbedtls_md_type_t mgf1_hash_id;
+        int expected_salt_len;

         ret = mbedtls_x509_get_rsassa_pss_params(sig_params,
                                                  md_alg,
-                                                 &pss_opts->mgf1_hash_id,
-                                                 &pss_opts->expected_salt_len);
+                                                 &mgf1_hash_id,
+                                                 &expected_salt_len);
         if (ret != 0) {
-            mbedtls_free(pss_opts);
             return ret;
         }
-
-        *sig_opts = (void *) pss_opts;
+        /* Ensure MGF1 hash alg is the same as the one used to hash the message. */
+        if (mgf1_hash_id != *md_alg) {
+            return MBEDTLS_ERR_X509_INVALID_ALG;
+        }
     } else
 #endif /* MBEDTLS_X509_RSASSA_PSS_SUPPORT */
     {
@@ -805,6 +798,75 @@ static char nibble_to_hex_digit(int i)
     return (i < 10) ? (i + '0') : (i - 10 + 'A');
 }

+/* Return the x.y.z.... style numeric string for the given OID */
+int mbedtls_oid_get_numeric_string(char *buf, size_t size,
+                                   const mbedtls_asn1_buf *oid)
+{
+    int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
+    char *p = buf;
+    size_t n = size;
+    unsigned int value = 0;
+
+    if (size > INT_MAX) {
+        /* Avoid overflow computing return value */
+        return MBEDTLS_ERR_ASN1_INVALID_LENGTH;
+    }
+
+    if (oid->len <= 0) {
+        /* OID must not be empty */
+        return MBEDTLS_ERR_ASN1_OUT_OF_DATA;
+    }
+
+    for (size_t i = 0; i < oid->len; i++) {
+        /* Prevent overflow in value. */
+        if (value > (UINT_MAX >> 7)) {
+            return MBEDTLS_ERR_ASN1_INVALID_DATA;
+        }
+        if ((value == 0) && ((oid->p[i]) == 0x80)) {
+            /* Overlong encoding is not allowed */
+            return MBEDTLS_ERR_ASN1_INVALID_DATA;
+        }
+
+        value <<= 7;
+        value |= oid->p[i] & 0x7F;
+
+        if (!(oid->p[i] & 0x80)) {
+            /* Last byte */
+            if (n == size) {
+                int component1;
+                unsigned int component2;
+                /* First subidentifier contains first two OID components */
+                if (value >= 80) {
+                    component1 = '2';
+                    component2 = value - 80;
+                } else if (value >= 40) {
+                    component1 = '1';
+                    component2 = value - 40;
+                } else {
+                    component1 = '0';
+                    component2 = value;
+                }
+                ret = mbedtls_snprintf(p, n, "%c.%u", component1, component2);
+            } else {
+                ret = mbedtls_snprintf(p, n, ".%u", value);
+            }
+            if (ret < 2 || (size_t) ret >= n) {
+                return PSA_ERROR_BUFFER_TOO_SMALL;
+            }
+            n -= (size_t) ret;
+            p += ret;
+            value = 0;
+        }
+    }
+
+    if (value != 0) {
+        /* Unterminated subidentifier */
+        return MBEDTLS_ERR_ASN1_OUT_OF_DATA;
+    }
+
+    return (int) (size - n);
+}
+
 /*
  * Store the name in printable form into buf; no more
  * than size characters will be written
@@ -844,7 +906,7 @@ int mbedtls_x509_dn_gets(char *buf, size_t size, const mbedtls_x509_name *dn)
                           (name->val.tag != MBEDTLS_ASN1_PRINTABLE_STRING) &&
                           (name->val.tag != MBEDTLS_ASN1_IA5_STRING);

-        if ((ret = mbedtls_oid_get_attr_short_name(&name->oid, &short_name)) == 0) {
+        if ((ret = mbedtls_x509_oid_get_attr_short_name(&name->oid, &short_name)) == 0) {
             ret = mbedtls_snprintf(p, n, "%s=", short_name);
         } else {
             if ((ret = mbedtls_oid_get_numeric_string(p, n, &name->oid)) > 0) {
@@ -852,7 +914,7 @@ int mbedtls_x509_dn_gets(char *buf, size_t size, const mbedtls_x509_name *dn)
                 p += ret;
                 ret = mbedtls_snprintf(p, n, "=");
                 print_hexstring = 1;
-            } else if (ret == MBEDTLS_ERR_OID_BUF_TOO_SMALL) {
+            } else if (ret == PSA_ERROR_BUFFER_TOO_SMALL) {
                 return MBEDTLS_ERR_X509_BUFFER_TOO_SMALL;
             } else {
                 ret = mbedtls_snprintf(p, n, "\?\?=");
@@ -977,15 +1039,14 @@ int mbedtls_x509_serial_gets(char *buf, size_t size, const mbedtls_x509_buf *ser
  * Helper for writing signature algorithms
  */
 int mbedtls_x509_sig_alg_gets(char *buf, size_t size, const mbedtls_x509_buf *sig_oid,
-                              mbedtls_pk_type_t pk_alg, mbedtls_md_type_t md_alg,
-                              const void *sig_opts)
+                              mbedtls_pk_sigalg_t pk_alg, mbedtls_md_type_t md_alg)
 {
     int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
     char *p = buf;
     size_t n = size;
     const char *desc = NULL;

-    ret = mbedtls_oid_get_sig_alg_desc(sig_oid, &desc);
+    ret = mbedtls_x509_oid_get_sig_alg_desc(sig_oid, &desc);
     if (ret != 0) {
         ret = mbedtls_snprintf(p, n, "???");
     } else {
@@ -994,24 +1055,18 @@ int mbedtls_x509_sig_alg_gets(char *buf, size_t size, const mbedtls_x509_buf *si
     MBEDTLS_X509_SAFE_SNPRINTF;

 #if defined(MBEDTLS_X509_RSASSA_PSS_SUPPORT)
-    if (pk_alg == MBEDTLS_PK_RSASSA_PSS) {
-        const mbedtls_pk_rsassa_pss_options *pss_opts;
-
-        pss_opts = (const mbedtls_pk_rsassa_pss_options *) sig_opts;
-
+    if (pk_alg == MBEDTLS_PK_SIGALG_RSA_PSS) {
         const char *name = md_type_to_string(md_alg);
-        const char *mgf_name = md_type_to_string(pss_opts->mgf1_hash_id);
-
-        ret = mbedtls_snprintf(p, n, " (%s, MGF1-%s, 0x%02X)",
-                               name ? name : "???",
-                               mgf_name ? mgf_name : "???",
-                               (unsigned int) pss_opts->expected_salt_len);
+        if (name != NULL) {
+            ret = mbedtls_snprintf(p, n, " (%s)", name);
+        } else {
+            ret = mbedtls_snprintf(p, n, " (?)");
+        }
         MBEDTLS_X509_SAFE_SNPRINTF;
     }
 #else
     ((void) pk_alg);
     ((void) md_alg);
-    ((void) sig_opts);
 #endif /* MBEDTLS_X509_RSASSA_PSS_SUPPORT */

     return (int) (size - n);
diff --git a/deps/LIEF/third-party/mbedtls/library/x509_create.c b/deps/LIEF/third-party/mbedtls/library/x509_create.c
index 420e36b81b5..370eb9b2e19 100644
--- a/deps/LIEF/third-party/mbedtls/library/x509_create.c
+++ b/deps/LIEF/third-party/mbedtls/library/x509_create.c
@@ -5,15 +5,16 @@
  *  SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
  */

-#include "common.h"
+#include "x509_internal.h"

 #if defined(MBEDTLS_X509_CREATE_C)

-#include "x509_internal.h"
 #include "mbedtls/asn1write.h"
 #include "mbedtls/error.h"
 #include "mbedtls/oid.h"
+#include "x509_oid.h"

+#include <limits.h>
 #include <string.h>

 #include "mbedtls/platform.h"
@@ -278,6 +279,182 @@ error:
     return MBEDTLS_ERR_X509_INVALID_NAME;
 }

+static int oid_parse_number(unsigned int *num, const char **p, const char *bound)
+{
+    int ret = MBEDTLS_ERR_ASN1_INVALID_DATA;
+
+    *num = 0;
+
+    while (*p < bound && **p >= '0' && **p <= '9') {
+        ret = 0;
+        if (*num > (UINT_MAX / 10)) {
+            return MBEDTLS_ERR_ASN1_INVALID_DATA;
+        }
+        *num *= 10;
+        *num += **p - '0';
+        (*p)++;
+    }
+    return ret;
+}
+
+static size_t oid_subidentifier_num_bytes(unsigned int value)
+{
+    size_t num_bytes = 0;
+
+    do {
+        value >>= 7;
+        num_bytes++;
+    } while (value != 0);
+
+    return num_bytes;
+}
+
+static int oid_subidentifier_encode_into(unsigned char **p,
+                                         unsigned char *bound,
+                                         unsigned int value)
+{
+    size_t num_bytes = oid_subidentifier_num_bytes(value);
+
+    if ((size_t) (bound - *p) < num_bytes) {
+        return PSA_ERROR_BUFFER_TOO_SMALL;
+    }
+    (*p)[num_bytes - 1] = (unsigned char) (value & 0x7f);
+    value >>= 7;
+
+    for (size_t i = 2; i <= num_bytes; i++) {
+        (*p)[num_bytes - i] = 0x80 | (unsigned char) (value & 0x7f);
+        value >>= 7;
+    }
+    *p += num_bytes;
+
+    return 0;
+}
+
+/* Return the OID for the given x.y.z.... style numeric string  */
+int mbedtls_oid_from_numeric_string(mbedtls_asn1_buf *oid,
+                                    const char *oid_str, size_t size)
+{
+    int ret = MBEDTLS_ERR_ASN1_INVALID_DATA;
+    const char *str_ptr = oid_str;
+    const char *str_bound = oid_str + size;
+    unsigned int val = 0;
+    unsigned int component1, component2;
+    size_t encoded_len;
+    unsigned char *resized_mem;
+
+    /* Count the number of dots to get a worst-case allocation size. */
+    size_t num_dots = 0;
+    for (size_t i = 0; i < size; i++) {
+        if (oid_str[i] == '.') {
+            num_dots++;
+        }
+    }
+    /* Allocate maximum possible required memory:
+     * There are (num_dots + 1) integer components, but the first 2 share the
+     * same subidentifier, so we only need num_dots subidentifiers maximum. */
+    if (num_dots == 0 || (num_dots > MBEDTLS_OID_MAX_COMPONENTS - 1)) {
+        return MBEDTLS_ERR_ASN1_INVALID_DATA;
+    }
+    /* Each byte can store 7 bits, calculate number of bytes for a
+     * subidentifier:
+     *
+     * bytes = ceil(subidentifer_size * 8 / 7)
+     */
+    size_t bytes_per_subidentifier = (((sizeof(unsigned int) * 8) - 1) / 7)
+                                     + 1;
+    size_t max_possible_bytes = num_dots * bytes_per_subidentifier;
+    oid->p = mbedtls_calloc(max_possible_bytes, 1);
+    if (oid->p == NULL) {
+        return MBEDTLS_ERR_ASN1_ALLOC_FAILED;
+    }
+    unsigned char *out_ptr = oid->p;
+    unsigned char *out_bound = oid->p + max_possible_bytes;
+
+    ret = oid_parse_number(&component1, &str_ptr, str_bound);
+    if (ret != 0) {
+        goto error;
+    }
+    if (component1 > 2) {
+        /* First component can't be > 2 */
+        ret = MBEDTLS_ERR_ASN1_INVALID_DATA;
+        goto error;
+    }
+    if (str_ptr >= str_bound || *str_ptr != '.') {
+        ret = MBEDTLS_ERR_ASN1_INVALID_DATA;
+        goto error;
+    }
+    str_ptr++;
+
+    ret = oid_parse_number(&component2, &str_ptr, str_bound);
+    if (ret != 0) {
+        goto error;
+    }
+    if ((component1 < 2) && (component2 > 39)) {
+        /* Root nodes 0 and 1 may have up to 40 children, numbered 0-39 */
+        ret = MBEDTLS_ERR_ASN1_INVALID_DATA;
+        goto error;
+    }
+    if (str_ptr < str_bound) {
+        if (*str_ptr == '.') {
+            str_ptr++;
+        } else {
+            ret = MBEDTLS_ERR_ASN1_INVALID_DATA;
+            goto error;
+        }
+    }
+
+    if (component2 > (UINT_MAX - (component1 * 40))) {
+        ret = MBEDTLS_ERR_ASN1_INVALID_DATA;
+        goto error;
+    }
+    ret = oid_subidentifier_encode_into(&out_ptr, out_bound,
+                                        (component1 * 40) + component2);
+    if (ret != 0) {
+        goto error;
+    }
+
+    while (str_ptr < str_bound) {
+        ret = oid_parse_number(&val, &str_ptr, str_bound);
+        if (ret != 0) {
+            goto error;
+        }
+        if (str_ptr < str_bound) {
+            if (*str_ptr == '.') {
+                str_ptr++;
+            } else {
+                ret = MBEDTLS_ERR_ASN1_INVALID_DATA;
+                goto error;
+            }
+        }
+
+        ret = oid_subidentifier_encode_into(&out_ptr, out_bound, val);
+        if (ret != 0) {
+            goto error;
+        }
+    }
+
+    encoded_len = (size_t) (out_ptr - oid->p);
+    resized_mem = mbedtls_calloc(encoded_len, 1);
+    if (resized_mem == NULL) {
+        ret = MBEDTLS_ERR_ASN1_ALLOC_FAILED;
+        goto error;
+    }
+    memcpy(resized_mem, oid->p, encoded_len);
+    mbedtls_free(oid->p);
+    oid->p = resized_mem;
+    oid->len = encoded_len;
+
+    oid->tag = MBEDTLS_ASN1_OID;
+
+    return 0;
+
+error:
+    mbedtls_free(oid->p);
+    oid->p = NULL;
+    oid->len = 0;
+    return ret;
+}
+
 int mbedtls_x509_string_to_names(mbedtls_asn1_named_data **head, const char *name)
 {
     int ret = MBEDTLS_ERR_X509_INVALID_NAME;
@@ -469,7 +646,7 @@ int mbedtls_x509_write_names(unsigned char **p, unsigned char *start,
 int mbedtls_x509_write_sig(unsigned char **p, unsigned char *start,
                            const char *oid, size_t oid_len,
                            unsigned char *sig, size_t size,
-                           mbedtls_pk_type_t pk_alg)
+                           mbedtls_pk_sigalg_t pk_alg)
 {
     int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
     int write_null_par;
@@ -495,7 +672,7 @@ int mbedtls_x509_write_sig(unsigned char **p, unsigned char *start,

     // Write OID
     //
-    if (pk_alg == MBEDTLS_PK_ECDSA) {
+    if (pk_alg == MBEDTLS_PK_SIGALG_ECDSA) {
         /*
          * The AlgorithmIdentifier's parameters field must be absent for DSA/ECDSA signature
          * algorithms, see https://www.rfc-editor.org/rfc/rfc5480#page-17 and
diff --git a/deps/LIEF/third-party/mbedtls/library/x509_crl.c b/deps/LIEF/third-party/mbedtls/library/x509_crl.c
index 7901992e20d..0b98ba46644 100644
--- a/deps/LIEF/third-party/mbedtls/library/x509_crl.c
+++ b/deps/LIEF/third-party/mbedtls/library/x509_crl.c
@@ -15,12 +15,11 @@
  *  http://www.itu.int/ITU-T/studygroups/com17/languages/X.690-0207.pdf
  */

-#include "common.h"
+#include "x509_internal.h"

 #if defined(MBEDTLS_X509_CRL_PARSE_C)

 #include "mbedtls/x509_crl.h"
-#include "x509_internal.h"
 #include "mbedtls/error.h"
 #include "mbedtls/oid.h"
 #include "mbedtls/platform_util.h"
@@ -390,8 +389,7 @@ int mbedtls_x509_crl_parse_der(mbedtls_x509_crl *chain,
     crl->version++;

     if ((ret = mbedtls_x509_get_sig_alg(&crl->sig_oid, &sig_params1,
-                                        &crl->sig_md, &crl->sig_pk,
-                                        &crl->sig_opts)) != 0) {
+                                        &crl->sig_md, &crl->sig_pk)) != 0) {
         mbedtls_x509_crl_free(crl);
         return MBEDTLS_ERR_X509_UNKNOWN_SIG_ALG;
     }
@@ -583,11 +581,6 @@ int mbedtls_x509_crl_parse_file(mbedtls_x509_crl *chain, const char *path)
 #endif /* MBEDTLS_FS_IO */

 #if !defined(MBEDTLS_X509_REMOVE_INFO)
-/*
- * Return an informational string about the certificate.
- */
-#define BEFORE_COLON    14
-#define BC              "14"
 /*
  * Return an informational string about the CRL.
  */
@@ -652,8 +645,7 @@ int mbedtls_x509_crl_info(char *buf, size_t size, const char *prefix,
     ret = mbedtls_snprintf(p, n, "\n%ssigned using  : ", prefix);
     MBEDTLS_X509_SAFE_SNPRINTF;

-    ret = mbedtls_x509_sig_alg_gets(p, n, &crl->sig_oid, crl->sig_pk, crl->sig_md,
-                                    crl->sig_opts);
+    ret = mbedtls_x509_sig_alg_gets(p, n, &crl->sig_oid, crl->sig_pk, crl->sig_md);
     MBEDTLS_X509_SAFE_SNPRINTF;

     ret = mbedtls_snprintf(p, n, "\n");
@@ -682,10 +674,6 @@ void mbedtls_x509_crl_free(mbedtls_x509_crl *crl)
     mbedtls_x509_crl_entry *entry_prv;

     while (crl_cur != NULL) {
-#if defined(MBEDTLS_X509_RSASSA_PSS_SUPPORT)
-        mbedtls_free(crl_cur->sig_opts);
-#endif
-
         mbedtls_asn1_free_named_data_list_shallow(crl_cur->issuer.next);

         entry_cur = crl_cur->entry.next;
diff --git a/deps/LIEF/third-party/mbedtls/library/x509_crt.c b/deps/LIEF/third-party/mbedtls/library/x509_crt.c
index 53cdcf02662..e6b9252859b 100644
--- a/deps/LIEF/third-party/mbedtls/library/x509_crt.c
+++ b/deps/LIEF/third-party/mbedtls/library/x509_crt.c
@@ -17,27 +17,26 @@
  *  [SIRO] https://cabforum.org/wp-content/uploads/Chunghwatelecom201503cabforumV4.pdf
  */

-#include "common.h"
+#include "x509_internal.h"

 #if defined(MBEDTLS_X509_CRT_PARSE_C)

 #include "mbedtls/x509_crt.h"
-#include "x509_internal.h"
 #include "mbedtls/error.h"
 #include "mbedtls/oid.h"
+#include "x509_oid.h"
 #include "mbedtls/platform_util.h"

+#include <limits.h>
 #include <string.h>

 #if defined(MBEDTLS_PEM_PARSE_C)
 #include "mbedtls/pem.h"
 #endif

-#if defined(MBEDTLS_USE_PSA_CRYPTO)
 #include "psa/crypto.h"
 #include "psa_util_internal.h"
 #include "mbedtls/psa_util.h"
-#endif /* MBEDTLS_USE_PSA_CRYPTO */
 #include "pk_internal.h"

 #include "mbedtls/platform.h"
@@ -94,7 +93,7 @@ const mbedtls_x509_crt_profile mbedtls_x509_crt_profile_default =
     MBEDTLS_X509_ID_FLAG(MBEDTLS_MD_SHA384) |
     MBEDTLS_X509_ID_FLAG(MBEDTLS_MD_SHA512),
     0xFFFFFFF, /* Any PK alg    */
-#if defined(MBEDTLS_PK_HAVE_ECC_KEYS)
+#if defined(PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY)
     /* Curves at or above 128-bit security level. Note that this selection
      * should be aligned with ssl_preset_default_curves in ssl_tls.c. */
     MBEDTLS_X509_ID_FLAG(MBEDTLS_ECP_DP_SECP256R1) |
@@ -104,9 +103,9 @@ const mbedtls_x509_crt_profile mbedtls_x509_crt_profile_default =
     MBEDTLS_X509_ID_FLAG(MBEDTLS_ECP_DP_BP384R1) |
     MBEDTLS_X509_ID_FLAG(MBEDTLS_ECP_DP_BP512R1) |
     0,
-#else /* MBEDTLS_PK_HAVE_ECC_KEYS */
+#else /* PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY */
     0,
-#endif /* MBEDTLS_PK_HAVE_ECC_KEYS */
+#endif /* PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY */
     2048,
 };

@@ -145,13 +144,13 @@ const mbedtls_x509_crt_profile mbedtls_x509_crt_profile_suiteb =
     /* Only ECDSA */
     MBEDTLS_X509_ID_FLAG(MBEDTLS_PK_ECDSA) |
     MBEDTLS_X509_ID_FLAG(MBEDTLS_PK_ECKEY),
-#if defined(MBEDTLS_PK_HAVE_ECC_KEYS)
+#if defined(PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY)
     /* Only NIST P-256 and P-384 */
     MBEDTLS_X509_ID_FLAG(MBEDTLS_ECP_DP_SECP256R1) |
     MBEDTLS_X509_ID_FLAG(MBEDTLS_ECP_DP_SECP384R1),
-#else /* MBEDTLS_PK_HAVE_ECC_KEYS */
+#else /* PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY */
     0,
-#endif /* MBEDTLS_PK_HAVE_ECC_KEYS */
+#endif /* PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY */
     0,
 };

@@ -189,9 +188,9 @@ static int x509_profile_check_md_alg(const mbedtls_x509_crt_profile *profile,
  * Return 0 if pk_alg is acceptable for this profile, -1 otherwise
  */
 static int x509_profile_check_pk_alg(const mbedtls_x509_crt_profile *profile,
-                                     mbedtls_pk_type_t pk_alg)
+                                     mbedtls_pk_sigalg_t pk_alg)
 {
-    if (pk_alg == MBEDTLS_PK_NONE) {
+    if (pk_alg == MBEDTLS_PK_SIGALG_NONE) {
         return -1;
     }

@@ -221,7 +220,7 @@ static int x509_profile_check_key(const mbedtls_x509_crt_profile *profile,
     }
 #endif /* MBEDTLS_RSA_C */

-#if defined(MBEDTLS_PK_HAVE_ECC_KEYS)
+#if defined(PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY)
     if (pk_alg == MBEDTLS_PK_ECDSA ||
         pk_alg == MBEDTLS_PK_ECKEY ||
         pk_alg == MBEDTLS_PK_ECKEY_DH) {
@@ -237,7 +236,7 @@ static int x509_profile_check_key(const mbedtls_x509_crt_profile *profile,

         return -1;
     }
-#endif /* MBEDTLS_PK_HAVE_ECC_KEYS */
+#endif /* PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY */

     return -1;
 }
@@ -680,8 +679,8 @@ static int x509_get_authority_key_id(unsigned char **p,
     }

     if (*p != end) {
-        return MBEDTLS_ERR_X509_INVALID_EXTENSIONS +
-               MBEDTLS_ERR_ASN1_LENGTH_MISMATCH;
+        return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_EXTENSIONS,
+                                 MBEDTLS_ERR_ASN1_LENGTH_MISMATCH);
     }

     return 0;
@@ -929,7 +928,7 @@ static int x509_get_crt_ext(unsigned char **p,
         /*
          * Detect supported extensions
          */
-        ret = mbedtls_oid_get_x509_ext_type(&extn_oid, &ext_type);
+        ret = mbedtls_x509_oid_get_x509_ext_type(&extn_oid, &ext_type);

         if (ret != 0) {
             /* Give the callback (if any) a chance to handle the extension */
@@ -1018,7 +1017,7 @@ static int x509_get_crt_ext(unsigned char **p,
                 }
                 break;

-            case MBEDTLS_OID_X509_EXT_CERTIFICATE_POLICIES:
+            case MBEDTLS_X509_EXT_CERTIFICATE_POLICIES:
                 /* Parse certificate policies type */
                 if ((ret = x509_get_certificate_policies(p, end_ext_octet,
                                                          &crt->certificate_policies)) != 0) {
@@ -1166,8 +1165,7 @@ static int x509_crt_parse_der_core(mbedtls_x509_crt *crt,
     crt->version++;

     if ((ret = mbedtls_x509_get_sig_alg(&crt->sig_oid, &sig_params1,
-                                        &crt->sig_md, &crt->sig_pk,
-                                        &crt->sig_opts)) != 0) {
+                                        &crt->sig_md, &crt->sig_pk)) != 0) {
         mbedtls_x509_crt_free(crt);
         return ret;
     }
@@ -1696,7 +1694,7 @@ static int x509_info_ext_key_usage(char **buf, size_t *size,
     const char *sep = "";

     while (cur != NULL) {
-        if (mbedtls_oid_get_extended_key_usage(&cur->buf, &desc) != 0) {
+        if (mbedtls_x509_oid_get_extended_key_usage(&cur->buf, &desc) != 0) {
             desc = "???";
         }

@@ -1725,7 +1723,7 @@ static int x509_info_cert_policies(char **buf, size_t *size,
     const char *sep = "";

     while (cur != NULL) {
-        if (mbedtls_oid_get_certificate_policies(&cur->buf, &desc) != 0) {
+        if (mbedtls_x509_oid_get_certificate_policies(&cur->buf, &desc) != 0) {
             desc = "???";
         }

@@ -1746,15 +1744,15 @@ static int x509_info_cert_policies(char **buf, size_t *size,
 /*
  * Return an informational string about the certificate.
  */
-#define BEFORE_COLON    18
-#define BC              "18"
+#define MBEDTLS_BEFORE_COLON        18
+#define MBEDTLS_BEFORE_COLON_STR    "18"
 int mbedtls_x509_crt_info(char *buf, size_t size, const char *prefix,
                           const mbedtls_x509_crt *crt)
 {
     int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
     size_t n;
     char *p;
-    char key_size_str[BEFORE_COLON];
+    char key_size_str[MBEDTLS_BEFORE_COLON];

     p = buf;
     n = size;
@@ -1803,18 +1801,17 @@ int mbedtls_x509_crt_info(char *buf, size_t size, const char *prefix,
     ret = mbedtls_snprintf(p, n, "\n%ssigned using      : ", prefix);
     MBEDTLS_X509_SAFE_SNPRINTF;

-    ret = mbedtls_x509_sig_alg_gets(p, n, &crt->sig_oid, crt->sig_pk,
-                                    crt->sig_md, crt->sig_opts);
+    ret = mbedtls_x509_sig_alg_gets(p, n, &crt->sig_oid, crt->sig_pk, crt->sig_md);
     MBEDTLS_X509_SAFE_SNPRINTF;

     /* Key size */
-    if ((ret = mbedtls_x509_key_size_helper(key_size_str, BEFORE_COLON,
+    if ((ret = mbedtls_x509_key_size_helper(key_size_str, MBEDTLS_BEFORE_COLON,
                                             mbedtls_pk_get_name(&crt->pk))) != 0) {
         return ret;
     }

-    ret = mbedtls_snprintf(p, n, "\n%s%-" BC "s: %d bits", prefix, key_size_str,
-                           (int) mbedtls_pk_get_bitlen(&crt->pk));
+    ret = mbedtls_snprintf(p, n, "\n%s%-" MBEDTLS_BEFORE_COLON_STR "s: %d bits",
+                           prefix, key_size_str, (int) mbedtls_pk_get_bitlen(&crt->pk));
     MBEDTLS_X509_SAFE_SNPRINTF;

     /*
@@ -1871,7 +1868,7 @@ int mbedtls_x509_crt_info(char *buf, size_t size, const char *prefix,
         }
     }

-    if (crt->ext_types & MBEDTLS_OID_X509_EXT_CERTIFICATE_POLICIES) {
+    if (crt->ext_types & MBEDTLS_X509_EXT_CERTIFICATE_POLICIES) {
         ret = mbedtls_snprintf(p, n, "\n%scertificate policies : ", prefix);
         MBEDTLS_X509_SAFE_SNPRINTF;

@@ -2014,11 +2011,7 @@ static int x509_crt_verifycrl(mbedtls_x509_crt *crt, mbedtls_x509_crt *ca,
 {
     int flags = 0;
     unsigned char hash[MBEDTLS_MD_MAX_SIZE];
-#if defined(MBEDTLS_USE_PSA_CRYPTO)
     psa_algorithm_t psa_algorithm;
-#else
-    const mbedtls_md_info_t *md_info;
-#endif /* MBEDTLS_USE_PSA_CRYPTO */
     size_t hash_length;

     if (ca == NULL) {
@@ -2052,7 +2045,6 @@ static int x509_crt_verifycrl(mbedtls_x509_crt *crt, mbedtls_x509_crt *ca,
             flags |= MBEDTLS_X509_BADCRL_BAD_PK;
         }

-#if defined(MBEDTLS_USE_PSA_CRYPTO)
         psa_algorithm = mbedtls_md_psa_alg_from_type(crl_list->sig_md);
         if (psa_hash_compute(psa_algorithm,
                              crl_list->tbs.p,
@@ -2064,24 +2056,12 @@ static int x509_crt_verifycrl(mbedtls_x509_crt *crt, mbedtls_x509_crt *ca,
             flags |= MBEDTLS_X509_BADCRL_NOT_TRUSTED;
             break;
         }
-#else
-        md_info = mbedtls_md_info_from_type(crl_list->sig_md);
-        hash_length = mbedtls_md_get_size(md_info);
-        if (mbedtls_md(md_info,
-                       crl_list->tbs.p,
-                       crl_list->tbs.len,
-                       hash) != 0) {
-            /* Note: this can't happen except after an internal error */
-            flags |= MBEDTLS_X509_BADCRL_NOT_TRUSTED;
-            break;
-        }
-#endif /* MBEDTLS_USE_PSA_CRYPTO */

         if (x509_profile_check_key(profile, &ca->pk) != 0) {
             flags |= MBEDTLS_X509_BADCERT_BAD_KEY;
         }

-        if (mbedtls_pk_verify_ext(crl_list->sig_pk, crl_list->sig_opts, &ca->pk,
+        if (mbedtls_pk_verify_ext(crl_list->sig_pk, &ca->pk,
                                   crl_list->sig_md, hash, hash_length,
                                   crl_list->sig.p, crl_list->sig.len) != 0) {
             flags |= MBEDTLS_X509_BADCRL_NOT_TRUSTED;
@@ -2127,16 +2107,6 @@ static int x509_crt_check_signature(const mbedtls_x509_crt *child,
 {
     size_t hash_len;
     unsigned char hash[MBEDTLS_MD_MAX_SIZE];
-#if !defined(MBEDTLS_USE_PSA_CRYPTO)
-    const mbedtls_md_info_t *md_info;
-    md_info = mbedtls_md_info_from_type(child->sig_md);
-    hash_len = mbedtls_md_get_size(md_info);
-
-    /* Note: hash errors can happen only after an internal error */
-    if (mbedtls_md(md_info, child->tbs.p, child->tbs.len, hash) != 0) {
-        return -1;
-    }
-#else
     psa_algorithm_t hash_alg = mbedtls_md_psa_alg_from_type(child->sig_md);
     psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED;

@@ -2150,14 +2120,13 @@ static int x509_crt_check_signature(const mbedtls_x509_crt *child,
         return MBEDTLS_ERR_PLATFORM_HW_ACCEL_FAILED;
     }

-#endif /* MBEDTLS_USE_PSA_CRYPTO */
     /* Skip expensive computation on obvious mismatch */
-    if (!mbedtls_pk_can_do(&parent->pk, child->sig_pk)) {
+    if (!mbedtls_pk_can_do(&parent->pk, (mbedtls_pk_type_t) child->sig_pk)) {
         return -1;
     }

-#if defined(MBEDTLS_ECDSA_C) && defined(MBEDTLS_ECP_RESTARTABLE)
-    if (rs_ctx != NULL && child->sig_pk == MBEDTLS_PK_ECDSA) {
+#if defined(MBEDTLS_ECP_RESTARTABLE)
+    if (rs_ctx != NULL && child->sig_pk == MBEDTLS_PK_SIGALG_ECDSA) {
         return mbedtls_pk_verify_restartable(&parent->pk,
                                              child->sig_md, hash, hash_len,
                                              child->sig.p, child->sig.len, &rs_ctx->pk);
@@ -2166,7 +2135,7 @@ static int x509_crt_check_signature(const mbedtls_x509_crt *child,
     (void) rs_ctx;
 #endif

-    return mbedtls_pk_verify_ext(child->sig_pk, child->sig_opts, &parent->pk,
+    return mbedtls_pk_verify_ext(child->sig_pk, &parent->pk,
                                  child->sig_md, hash, hash_len,
                                  child->sig.p, child->sig.len);
 }
@@ -2266,7 +2235,7 @@ static int x509_crt_find_parent_in(
     mbedtls_x509_crt *parent, *fallback_parent;
     int signature_is_good = 0, fallback_signature_is_good;

-#if defined(MBEDTLS_ECDSA_C) && defined(MBEDTLS_ECP_RESTARTABLE)
+#if defined(MBEDTLS_ECP_RESTARTABLE)
     /* did we have something in progress? */
     if (rs_ctx != NULL && rs_ctx->parent != NULL) {
         /* restore saved state */
@@ -2300,12 +2269,12 @@ static int x509_crt_find_parent_in(
         }

         /* Signature */
-#if defined(MBEDTLS_ECDSA_C) && defined(MBEDTLS_ECP_RESTARTABLE)
+#if defined(MBEDTLS_ECP_RESTARTABLE)
 check_signature:
 #endif
         ret = x509_crt_check_signature(child, parent, rs_ctx);

-#if defined(MBEDTLS_ECDSA_C) && defined(MBEDTLS_ECP_RESTARTABLE)
+#if defined(MBEDTLS_ECP_RESTARTABLE)
         if (rs_ctx != NULL && ret == MBEDTLS_ERR_ECP_IN_PROGRESS) {
             /* save state */
             rs_ctx->parent = parent;
@@ -2390,7 +2359,7 @@ static int x509_crt_find_parent(

     *parent_is_trusted = 1;

-#if defined(MBEDTLS_ECDSA_C) && defined(MBEDTLS_ECP_RESTARTABLE)
+#if defined(MBEDTLS_ECP_RESTARTABLE)
     /* restore then clear saved state if we have some stored */
     if (rs_ctx != NULL && rs_ctx->parent_is_trusted != -1) {
         *parent_is_trusted = rs_ctx->parent_is_trusted;
@@ -2406,7 +2375,7 @@ static int x509_crt_find_parent(
                                       *parent_is_trusted,
                                       path_cnt, self_cnt, rs_ctx, now);

-#if defined(MBEDTLS_ECDSA_C) && defined(MBEDTLS_ECP_RESTARTABLE)
+#if defined(MBEDTLS_ECP_RESTARTABLE)
         if (rs_ctx != NULL && ret == MBEDTLS_ERR_ECP_IN_PROGRESS) {
             /* save state */
             rs_ctx->parent_is_trusted = *parent_is_trusted;
@@ -2533,7 +2502,7 @@ static int x509_crt_verify_chain(
     }
 #endif

-#if defined(MBEDTLS_ECDSA_C) && defined(MBEDTLS_ECP_RESTARTABLE)
+#if defined(MBEDTLS_ECP_RESTARTABLE)
     /* resume if we had an operation in progress */
     if (rs_ctx != NULL && rs_ctx->in_progress == x509_crt_rs_find_parent) {
         /* restore saved state */
@@ -2547,7 +2516,7 @@ static int x509_crt_verify_chain(

         goto find_parent;
     }
-#endif /* MBEDTLS_ECDSA_C && MBEDTLS_ECP_RESTARTABLE */
+#endif /* MBEDTLS_ECP_RESTARTABLE */

     child = crt;
     self_cnt = 0;
@@ -2593,7 +2562,7 @@ static int x509_crt_verify_chain(
             return 0;
         }

-#if defined(MBEDTLS_ECDSA_C) && defined(MBEDTLS_ECP_RESTARTABLE)
+#if defined(MBEDTLS_ECP_RESTARTABLE)
 find_parent:
 #endif

@@ -2625,7 +2594,7 @@ find_parent:
                                    ver_chain->len - 1, self_cnt, rs_ctx,
                                    &now);

-#if defined(MBEDTLS_ECDSA_C) && defined(MBEDTLS_ECP_RESTARTABLE)
+#if defined(MBEDTLS_ECP_RESTARTABLE)
         if (rs_ctx != NULL && ret == MBEDTLS_ERR_ECP_IN_PROGRESS) {
             /* save state */
             rs_ctx->in_progress = x509_crt_rs_find_parent;
@@ -3088,7 +3057,7 @@ static int x509_crt_verify_restartable_ca_cb(mbedtls_x509_crt *crt,
     /* Check the type and size of the key */
     pk_type = mbedtls_pk_get_type(&crt->pk);

-    if (x509_profile_check_pk_alg(profile, pk_type) != 0) {
+    if (x509_profile_check_pk_alg(profile, (mbedtls_pk_sigalg_t) pk_type) != 0) {
         ee_flags |= MBEDTLS_X509_BADCERT_BAD_PK;
     }

@@ -3119,7 +3088,7 @@ exit:
     ver_chain.trust_ca_cb_result = NULL;
 #endif /* MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK */

-#if defined(MBEDTLS_ECDSA_C) && defined(MBEDTLS_ECP_RESTARTABLE)
+#if defined(MBEDTLS_ECP_RESTARTABLE)
     if (rs_ctx != NULL && ret != MBEDTLS_ERR_ECP_IN_PROGRESS) {
         mbedtls_x509_crt_restart_free(rs_ctx);
     }
@@ -3234,10 +3203,6 @@ void mbedtls_x509_crt_free(mbedtls_x509_crt *crt)
     while (cert_cur != NULL) {
         mbedtls_pk_free(&cert_cur->pk);

-#if defined(MBEDTLS_X509_RSASSA_PSS_SUPPORT)
-        mbedtls_free(cert_cur->sig_opts);
-#endif
-
         mbedtls_asn1_free_named_data_list_shallow(cert_cur->issuer.next);
         mbedtls_asn1_free_named_data_list_shallow(cert_cur->subject.next);
         mbedtls_asn1_sequence_free(cert_cur->ext_key_usage.next);
@@ -3259,7 +3224,7 @@ void mbedtls_x509_crt_free(mbedtls_x509_crt *crt)
     }
 }

-#if defined(MBEDTLS_ECDSA_C) && defined(MBEDTLS_ECP_RESTARTABLE)
+#if defined(MBEDTLS_ECP_RESTARTABLE)
 /*
  * Initialize a restart context
  */
@@ -3290,7 +3255,7 @@ void mbedtls_x509_crt_restart_free(mbedtls_x509_crt_restart_ctx *ctx)
     mbedtls_pk_restart_free(&ctx->pk);
     mbedtls_x509_crt_restart_init(ctx);
 }
-#endif /* MBEDTLS_ECDSA_C && MBEDTLS_ECP_RESTARTABLE */
+#endif /* MBEDTLS_ECP_RESTARTABLE */

 int mbedtls_x509_crt_get_ca_istrue(const mbedtls_x509_crt *crt)
 {
diff --git a/deps/LIEF/third-party/mbedtls/library/x509_csr.c b/deps/LIEF/third-party/mbedtls/library/x509_csr.c
index 813d64466cc..32a3bb2e78e 100644
--- a/deps/LIEF/third-party/mbedtls/library/x509_csr.c
+++ b/deps/LIEF/third-party/mbedtls/library/x509_csr.c
@@ -15,14 +15,14 @@
  *  http://www.itu.int/ITU-T/studygroups/com17/languages/X.690-0207.pdf
  */

-#include "common.h"
+#include "x509_internal.h"

 #if defined(MBEDTLS_X509_CSR_PARSE_C)

 #include "mbedtls/x509_csr.h"
-#include "x509_internal.h"
 #include "mbedtls/error.h"
 #include "mbedtls/oid.h"
+#include "x509_oid.h"
 #include "mbedtls/platform_util.h"

 #include <string.h>
@@ -115,7 +115,7 @@ static int x509_csr_parse_extensions(mbedtls_x509_csr *csr,
         /*
          * Detect supported extensions and skip unsupported extensions
          */
-        ret = mbedtls_oid_get_x509_ext_type(&extn_oid, &ext_type);
+        ret = mbedtls_x509_oid_get_x509_ext_type(&extn_oid, &ext_type);

         if (ret != 0) {
             /* Give the callback (if any) a chance to handle the extension */
@@ -408,8 +408,7 @@ static int mbedtls_x509_csr_parse_der_internal(mbedtls_x509_csr *csr,
     }

     if ((ret = mbedtls_x509_get_sig_alg(&csr->sig_oid, &sig_params,
-                                        &csr->sig_md, &csr->sig_pk,
-                                        &csr->sig_opts)) != 0) {
+                                        &csr->sig_md, &csr->sig_pk)) != 0) {
         mbedtls_x509_csr_free(csr);
         return MBEDTLS_ERR_X509_UNKNOWN_SIG_ALG;
     }
@@ -520,8 +519,8 @@ int mbedtls_x509_csr_parse_file(mbedtls_x509_csr *csr, const char *path)
 #endif /* MBEDTLS_FS_IO */

 #if !defined(MBEDTLS_X509_REMOVE_INFO)
-#define BEFORE_COLON    14
-#define BC              "14"
+#define MBEDTLS_BEFORE_COLON       14
+#define MBEDTLS_BEFORE_COLON_STR   "14"
 /*
  * Return an informational string about the CSR.
  */
@@ -531,7 +530,7 @@ int mbedtls_x509_csr_info(char *buf, size_t size, const char *prefix,
     int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
     size_t n;
     char *p;
-    char key_size_str[BEFORE_COLON];
+    char key_size_str[MBEDTLS_BEFORE_COLON];

     p = buf;
     n = size;
@@ -548,17 +547,16 @@ int mbedtls_x509_csr_info(char *buf, size_t size, const char *prefix,
     ret = mbedtls_snprintf(p, n, "\n%ssigned using  : ", prefix);
     MBEDTLS_X509_SAFE_SNPRINTF;

-    ret = mbedtls_x509_sig_alg_gets(p, n, &csr->sig_oid, csr->sig_pk, csr->sig_md,
-                                    csr->sig_opts);
+    ret = mbedtls_x509_sig_alg_gets(p, n, &csr->sig_oid, csr->sig_pk, csr->sig_md);
     MBEDTLS_X509_SAFE_SNPRINTF;

-    if ((ret = mbedtls_x509_key_size_helper(key_size_str, BEFORE_COLON,
+    if ((ret = mbedtls_x509_key_size_helper(key_size_str, MBEDTLS_BEFORE_COLON,
                                             mbedtls_pk_get_name(&csr->pk))) != 0) {
         return ret;
     }

-    ret = mbedtls_snprintf(p, n, "\n%s%-" BC "s: %d bits\n", prefix, key_size_str,
-                           (int) mbedtls_pk_get_bitlen(&csr->pk));
+    ret = mbedtls_snprintf(p, n, "\n%s%-" MBEDTLS_BEFORE_COLON_STR "s: %d bits\n",
+                           prefix, key_size_str, (int) mbedtls_pk_get_bitlen(&csr->pk));
     MBEDTLS_X509_SAFE_SNPRINTF;

     /*
@@ -622,10 +620,6 @@ void mbedtls_x509_csr_free(mbedtls_x509_csr *csr)

     mbedtls_pk_free(&csr->pk);

-#if defined(MBEDTLS_X509_RSASSA_PSS_SUPPORT)
-    mbedtls_free(csr->sig_opts);
-#endif
-
     mbedtls_asn1_free_named_data_list_shallow(csr->subject.next);
     mbedtls_asn1_sequence_free(csr->subject_alt_names.next);

diff --git a/deps/LIEF/third-party/mbedtls/library/x509_internal.h b/deps/LIEF/third-party/mbedtls/library/x509_internal.h
index 8a2d2ed0074..5505b9778c1 100644
--- a/deps/LIEF/third-party/mbedtls/library/x509_internal.h
+++ b/deps/LIEF/third-party/mbedtls/library/x509_internal.h
@@ -9,16 +9,17 @@
  */
 #ifndef MBEDTLS_X509_INTERNAL_H
 #define MBEDTLS_X509_INTERNAL_H
-#include "mbedtls/private_access.h"

+#include "tf_psa_crypto_common.h"
 #include "mbedtls/build_info.h"
+#include "mbedtls/private_access.h"

 #include "mbedtls/x509.h"
 #include "mbedtls/asn1.h"
 #include "pk_internal.h"

 #if defined(MBEDTLS_RSA_C)
-#include "mbedtls/rsa.h"
+#include "mbedtls/private/rsa.h"
 #endif

 int mbedtls_x509_get_name(unsigned char **p, const unsigned char *end,
@@ -34,8 +35,7 @@ int mbedtls_x509_get_rsassa_pss_params(const mbedtls_x509_buf *params,
 #endif
 int mbedtls_x509_get_sig(unsigned char **p, const unsigned char *end, mbedtls_x509_buf *sig);
 int mbedtls_x509_get_sig_alg(const mbedtls_x509_buf *sig_oid, const mbedtls_x509_buf *sig_params,
-                             mbedtls_md_type_t *md_alg, mbedtls_pk_type_t *pk_alg,
-                             void **sig_opts);
+                             mbedtls_md_type_t *md_alg, mbedtls_pk_sigalg_t *pk_alg);
 int mbedtls_x509_get_time(unsigned char **p, const unsigned char *end,
                           mbedtls_x509_time *t);
 int mbedtls_x509_get_serial(unsigned char **p, const unsigned char *end,
@@ -44,8 +44,7 @@ int mbedtls_x509_get_ext(unsigned char **p, const unsigned char *end,
                          mbedtls_x509_buf *ext, int tag);
 #if !defined(MBEDTLS_X509_REMOVE_INFO)
 int mbedtls_x509_sig_alg_gets(char *buf, size_t size, const mbedtls_x509_buf *sig_oid,
-                              mbedtls_pk_type_t pk_alg, mbedtls_md_type_t md_alg,
-                              const void *sig_opts);
+                              mbedtls_pk_sigalg_t pk_alg, mbedtls_md_type_t md_alg);
 #endif
 int mbedtls_x509_key_size_helper(char *buf, size_t buf_size, const char *name);
 int mbedtls_x509_set_extension(mbedtls_asn1_named_data **head, const char *oid, size_t oid_len,
@@ -58,7 +57,7 @@ int mbedtls_x509_write_names(unsigned char **p, unsigned char *start,
 int mbedtls_x509_write_sig(unsigned char **p, unsigned char *start,
                            const char *oid, size_t oid_len,
                            unsigned char *sig, size_t size,
-                           mbedtls_pk_type_t pk_alg);
+                           mbedtls_pk_sigalg_t pk_alg);
 int mbedtls_x509_get_ns_cert_type(unsigned char **p,
                                   const unsigned char *end,
                                   unsigned char *ns_cert_type);
diff --git a/deps/LIEF/third-party/mbedtls/library/x509_oid.c b/deps/LIEF/third-party/mbedtls/library/x509_oid.c
new file mode 100644
index 00000000000..cc0063bcd3e
--- /dev/null
+++ b/deps/LIEF/third-party/mbedtls/library/x509_oid.c
@@ -0,0 +1,603 @@
+/**
+ * \file x509_oid.c
+ *
+ * \brief Object Identifier (OID) database
+ *
+ *  Copyright The Mbed TLS Contributors
+ *  SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+ */
+
+#include "x509_internal.h"
+
+/* Each group of tables and functions has its own dependencies, but
+ * don't even bother to define helper macros if X.509 is completely
+ * disabled. */
+#if defined(MBEDTLS_X509_USE_C) || defined(MBEDTLS_X509_CREATE_C)
+
+#include "mbedtls/oid.h"
+#include "x509_oid.h"
+
+#include <stdio.h>
+#include <string.h>
+
+#include "mbedtls/platform.h"
+
+/*
+ * Macro to automatically add the size of #define'd OIDs
+ */
+#define ADD_LEN(s)      s, MBEDTLS_OID_SIZE(s)
+
+/*
+ * Macro to generate mbedtls_x509_oid_descriptor_t
+ */
+#if !defined(MBEDTLS_X509_REMOVE_INFO)
+#define OID_DESCRIPTOR(s, name, description)  { ADD_LEN(s), name, description }
+#define NULL_OID_DESCRIPTOR                   { NULL, 0, NULL, NULL }
+#else
+#define OID_DESCRIPTOR(s, name, description)  { ADD_LEN(s) }
+#define NULL_OID_DESCRIPTOR                   { NULL, 0 }
+#endif
+
+/*
+ * Macro to generate an internal function for oid_XXX_from_asn1() (used by
+ * the other functions)
+ */
+#define FN_OID_TYPED_FROM_ASN1(TYPE_T, NAME, LIST)                    \
+    static const TYPE_T *oid_ ## NAME ## _from_asn1(                   \
+        const mbedtls_asn1_buf *oid)     \
+    {                                                                   \
+        const TYPE_T *p = (LIST);                                       \
+        const mbedtls_x509_oid_descriptor_t *cur =                           \
+            (const mbedtls_x509_oid_descriptor_t *) p;                       \
+        if (p == NULL || oid == NULL) return NULL;                  \
+        while (cur->asn1 != NULL) {                                    \
+            if (cur->asn1_len == oid->len &&                            \
+                memcmp(cur->asn1, oid->p, oid->len) == 0) {          \
+                return p;                                            \
+            }                                                           \
+            p++;                                                        \
+            cur = (const mbedtls_x509_oid_descriptor_t *) p;                 \
+        }                                                               \
+        return NULL;                                                 \
+    }
+
+#if !defined(MBEDTLS_X509_REMOVE_INFO)
+/*
+ * Macro to generate a function for retrieving a single attribute from the
+ * descriptor of an mbedtls_x509_oid_descriptor_t wrapper.
+ */
+#define FN_OID_GET_DESCRIPTOR_ATTR1(FN_NAME, TYPE_T, TYPE_NAME, ATTR1_TYPE, ATTR1) \
+    int FN_NAME(const mbedtls_asn1_buf *oid, ATTR1_TYPE * ATTR1)                  \
+    {                                                                       \
+        const TYPE_T *data = oid_ ## TYPE_NAME ## _from_asn1(oid);        \
+        if (data == NULL) return MBEDTLS_ERR_X509_UNKNOWN_OID;            \
+        *ATTR1 = data->descriptor.ATTR1;                                    \
+        return 0;                                                        \
+    }
+#endif /* MBEDTLS_X509_REMOVE_INFO */
+
+/*
+ * Macro to generate a function for retrieving a single attribute from an
+ * mbedtls_x509_oid_descriptor_t wrapper.
+ */
+#define FN_OID_GET_ATTR1(FN_NAME, TYPE_T, TYPE_NAME, ATTR1_TYPE, ATTR1) \
+    int FN_NAME(const mbedtls_asn1_buf *oid, ATTR1_TYPE * ATTR1)                  \
+    {                                                                       \
+        const TYPE_T *data = oid_ ## TYPE_NAME ## _from_asn1(oid);        \
+        if (data == NULL) return MBEDTLS_ERR_X509_UNKNOWN_OID;            \
+        *ATTR1 = data->ATTR1;                                               \
+        return 0;                                                        \
+    }
+
+/*
+ * Macro to generate a function for retrieving two attributes from an
+ * mbedtls_x509_oid_descriptor_t wrapper.
+ */
+#define FN_OID_GET_ATTR2(FN_NAME, TYPE_T, TYPE_NAME, ATTR1_TYPE, ATTR1,     \
+                         ATTR2_TYPE, ATTR2)                                 \
+    int FN_NAME(const mbedtls_asn1_buf *oid, ATTR1_TYPE * ATTR1,               \
+                ATTR2_TYPE * ATTR2)              \
+    {                                                                           \
+        const TYPE_T *data = oid_ ## TYPE_NAME ## _from_asn1(oid);            \
+        if (data == NULL) return MBEDTLS_ERR_X509_UNKNOWN_OID;                 \
+        *(ATTR1) = data->ATTR1;                                                 \
+        *(ATTR2) = data->ATTR2;                                                 \
+        return 0;                                                            \
+    }
+
+/*
+ * Macro to generate a function for retrieving the OID based on a single
+ * attribute from a mbedtls_x509_oid_descriptor_t wrapper.
+ */
+#define FN_OID_GET_OID_BY_ATTR1(FN_NAME, TYPE_T, LIST, ATTR1_TYPE, ATTR1)   \
+    int FN_NAME(ATTR1_TYPE ATTR1, const char **oid, size_t *olen)             \
+    {                                                                           \
+        const TYPE_T *cur = (LIST);                                             \
+        while (cur->descriptor.asn1 != NULL) {                                 \
+            if (cur->ATTR1 == (ATTR1)) {                                       \
+                *oid = cur->descriptor.asn1;                                    \
+                *olen = cur->descriptor.asn1_len;                               \
+                return 0;                                                    \
+            }                                                                   \
+            cur++;                                                              \
+        }                                                                       \
+        return MBEDTLS_ERR_X509_UNKNOWN_OID;                                    \
+    }
+
+/*
+ * Macro to generate a function for retrieving the OID based on two
+ * attributes from a mbedtls_x509_oid_descriptor_t wrapper.
+ */
+#define FN_OID_GET_OID_BY_ATTR2(FN_NAME, TYPE_T, LIST, ATTR1_TYPE, ATTR1,   \
+                                ATTR2_TYPE, ATTR2)                          \
+    int FN_NAME(ATTR1_TYPE ATTR1, ATTR2_TYPE ATTR2, const char **oid,         \
+                size_t *olen)                                                 \
+    {                                                                           \
+        const TYPE_T *cur = (LIST);                                             \
+        while (cur->descriptor.asn1 != NULL) {                                 \
+            if (cur->ATTR1 == (ATTR1) && cur->ATTR2 == (ATTR2)) {              \
+                *oid = cur->descriptor.asn1;                                    \
+                *olen = cur->descriptor.asn1_len;                               \
+                return 0;                                                    \
+            }                                                                   \
+            cur++;                                                              \
+        }                                                                       \
+        return MBEDTLS_ERR_X509_UNKNOWN_OID;                                   \
+    }
+
+/*
+ * For X520 attribute types
+ */
+#if defined(MBEDTLS_X509_USE_C)
+typedef struct {
+    mbedtls_x509_oid_descriptor_t    descriptor;
+    const char          *short_name;
+} oid_x520_attr_t;
+
+static const oid_x520_attr_t oid_x520_attr_type[] =
+{
+    {
+        OID_DESCRIPTOR(MBEDTLS_OID_AT_CN,          "id-at-commonName",               "Common Name"),
+        "CN",
+    },
+    {
+        OID_DESCRIPTOR(MBEDTLS_OID_AT_COUNTRY,     "id-at-countryName",              "Country"),
+        "C",
+    },
+    {
+        OID_DESCRIPTOR(MBEDTLS_OID_AT_LOCALITY,    "id-at-locality",                 "Locality"),
+        "L",
+    },
+    {
+        OID_DESCRIPTOR(MBEDTLS_OID_AT_STATE,       "id-at-state",                    "State"),
+        "ST",
+    },
+    {
+        OID_DESCRIPTOR(MBEDTLS_OID_AT_ORGANIZATION, "id-at-organizationName",
+                       "Organization"),
+        "O",
+    },
+    {
+        OID_DESCRIPTOR(MBEDTLS_OID_AT_ORG_UNIT,    "id-at-organizationalUnitName",   "Org Unit"),
+        "OU",
+    },
+    {
+        OID_DESCRIPTOR(MBEDTLS_OID_PKCS9_EMAIL,
+                       "emailAddress",
+                       "E-mail address"),
+        "emailAddress",
+    },
+    {
+        OID_DESCRIPTOR(MBEDTLS_OID_AT_SERIAL_NUMBER,
+                       "id-at-serialNumber",
+                       "Serial number"),
+        "serialNumber",
+    },
+    {
+        OID_DESCRIPTOR(MBEDTLS_OID_AT_POSTAL_ADDRESS,
+                       "id-at-postalAddress",
+                       "Postal address"),
+        "postalAddress",
+    },
+    {
+        OID_DESCRIPTOR(MBEDTLS_OID_AT_POSTAL_CODE, "id-at-postalCode",               "Postal code"),
+        "postalCode",
+    },
+    {
+        OID_DESCRIPTOR(MBEDTLS_OID_AT_SUR_NAME,    "id-at-surName",                  "Surname"),
+        "SN",
+    },
+    {
+        OID_DESCRIPTOR(MBEDTLS_OID_AT_GIVEN_NAME,  "id-at-givenName",                "Given name"),
+        "GN",
+    },
+    {
+        OID_DESCRIPTOR(MBEDTLS_OID_AT_INITIALS,    "id-at-initials",                 "Initials"),
+        "initials",
+    },
+    {
+        OID_DESCRIPTOR(MBEDTLS_OID_AT_GENERATION_QUALIFIER,
+                       "id-at-generationQualifier",
+                       "Generation qualifier"),
+        "generationQualifier",
+    },
+    {
+        OID_DESCRIPTOR(MBEDTLS_OID_AT_TITLE,       "id-at-title",                    "Title"),
+        "title",
+    },
+    {
+        OID_DESCRIPTOR(MBEDTLS_OID_AT_DN_QUALIFIER,
+                       "id-at-dnQualifier",
+                       "Distinguished Name qualifier"),
+        "dnQualifier",
+    },
+    {
+        OID_DESCRIPTOR(MBEDTLS_OID_AT_PSEUDONYM,   "id-at-pseudonym",                "Pseudonym"),
+        "pseudonym",
+    },
+    {
+        OID_DESCRIPTOR(MBEDTLS_OID_UID,            "id-uid",                         "User Id"),
+        "uid",
+    },
+    {
+        OID_DESCRIPTOR(MBEDTLS_OID_DOMAIN_COMPONENT,
+                       "id-domainComponent",
+                       "Domain component"),
+        "DC",
+    },
+    {
+        OID_DESCRIPTOR(MBEDTLS_OID_AT_UNIQUE_IDENTIFIER,
+                       "id-at-uniqueIdentifier",
+                       "Unique Identifier"),
+        "uniqueIdentifier",
+    },
+    {
+        NULL_OID_DESCRIPTOR,
+        NULL,
+    }
+};
+
+FN_OID_TYPED_FROM_ASN1(oid_x520_attr_t, x520_attr, oid_x520_attr_type)
+FN_OID_GET_ATTR1(mbedtls_x509_oid_get_attr_short_name,
+                 oid_x520_attr_t,
+                 x520_attr,
+                 const char *,
+                 short_name)
+#endif /* MBEDTLS_X509_USE_C */
+
+/*
+ * For X509 extensions
+ */
+#if defined(MBEDTLS_X509_OID_HAVE_GET_X509_EXT_TYPE)
+typedef struct {
+    mbedtls_x509_oid_descriptor_t    descriptor;
+    int                 ext_type;
+} oid_x509_ext_t;
+
+static const oid_x509_ext_t oid_x509_ext[] =
+{
+    {
+        OID_DESCRIPTOR(MBEDTLS_OID_BASIC_CONSTRAINTS,
+                       "id-ce-basicConstraints",
+                       "Basic Constraints"),
+        MBEDTLS_X509_EXT_BASIC_CONSTRAINTS,
+    },
+    {
+        OID_DESCRIPTOR(MBEDTLS_OID_KEY_USAGE,            "id-ce-keyUsage",            "Key Usage"),
+        MBEDTLS_X509_EXT_KEY_USAGE,
+    },
+    {
+        OID_DESCRIPTOR(MBEDTLS_OID_EXTENDED_KEY_USAGE,
+                       "id-ce-extKeyUsage",
+                       "Extended Key Usage"),
+        MBEDTLS_X509_EXT_EXTENDED_KEY_USAGE,
+    },
+    {
+        OID_DESCRIPTOR(MBEDTLS_OID_SUBJECT_ALT_NAME,
+                       "id-ce-subjectAltName",
+                       "Subject Alt Name"),
+        MBEDTLS_X509_EXT_SUBJECT_ALT_NAME,
+    },
+    {
+        OID_DESCRIPTOR(MBEDTLS_OID_NS_CERT_TYPE,
+                       "id-netscape-certtype",
+                       "Netscape Certificate Type"),
+        MBEDTLS_X509_EXT_NS_CERT_TYPE,
+    },
+    {
+        OID_DESCRIPTOR(MBEDTLS_OID_CERTIFICATE_POLICIES,
+                       "id-ce-certificatePolicies",
+                       "Certificate Policies"),
+        MBEDTLS_X509_EXT_CERTIFICATE_POLICIES,
+    },
+    {
+        OID_DESCRIPTOR(MBEDTLS_OID_SUBJECT_KEY_IDENTIFIER,
+                       "id-ce-subjectKeyIdentifier",
+                       "Subject Key Identifier"),
+        MBEDTLS_X509_EXT_SUBJECT_KEY_IDENTIFIER,
+    },
+    {
+        OID_DESCRIPTOR(MBEDTLS_OID_AUTHORITY_KEY_IDENTIFIER,
+                       "id-ce-authorityKeyIdentifier",
+                       "Authority Key Identifier"),
+        MBEDTLS_X509_EXT_AUTHORITY_KEY_IDENTIFIER,
+    },
+    {
+        NULL_OID_DESCRIPTOR,
+        0,
+    },
+};
+
+FN_OID_TYPED_FROM_ASN1(oid_x509_ext_t, x509_ext, oid_x509_ext)
+FN_OID_GET_ATTR1(mbedtls_x509_oid_get_x509_ext_type, oid_x509_ext_t, x509_ext, int, ext_type)
+#endif /* MBEDTLS_X509_OID_HAVE_GET_X509_EXT_TYPE */
+
+#if defined(MBEDTLS_X509_CRT_PARSE_C) && !defined(MBEDTLS_X509_REMOVE_INFO)
+static const mbedtls_x509_oid_descriptor_t oid_ext_key_usage[] =
+{
+    OID_DESCRIPTOR(MBEDTLS_OID_SERVER_AUTH,
+                   "id-kp-serverAuth",
+                   "TLS Web Server Authentication"),
+    OID_DESCRIPTOR(MBEDTLS_OID_CLIENT_AUTH,
+                   "id-kp-clientAuth",
+                   "TLS Web Client Authentication"),
+    OID_DESCRIPTOR(MBEDTLS_OID_CODE_SIGNING,     "id-kp-codeSigning",     "Code Signing"),
+    OID_DESCRIPTOR(MBEDTLS_OID_EMAIL_PROTECTION, "id-kp-emailProtection", "E-mail Protection"),
+    OID_DESCRIPTOR(MBEDTLS_OID_TIME_STAMPING,    "id-kp-timeStamping",    "Time Stamping"),
+    OID_DESCRIPTOR(MBEDTLS_OID_OCSP_SIGNING,     "id-kp-OCSPSigning",     "OCSP Signing"),
+    OID_DESCRIPTOR(MBEDTLS_OID_WISUN_FAN,
+                   "id-kp-wisun-fan-device",
+                   "Wi-SUN Alliance Field Area Network (FAN)"),
+    NULL_OID_DESCRIPTOR,
+};
+
+FN_OID_TYPED_FROM_ASN1(mbedtls_x509_oid_descriptor_t, ext_key_usage, oid_ext_key_usage)
+FN_OID_GET_ATTR1(mbedtls_x509_oid_get_extended_key_usage,
+                 mbedtls_x509_oid_descriptor_t,
+                 ext_key_usage,
+                 const char *,
+                 description)
+
+static const mbedtls_x509_oid_descriptor_t oid_certificate_policies[] =
+{
+    OID_DESCRIPTOR(MBEDTLS_OID_ANY_POLICY,      "anyPolicy",       "Any Policy"),
+    NULL_OID_DESCRIPTOR,
+};
+
+FN_OID_TYPED_FROM_ASN1(mbedtls_x509_oid_descriptor_t, certificate_policies,
+                       oid_certificate_policies)
+FN_OID_GET_ATTR1(mbedtls_x509_oid_get_certificate_policies,
+                 mbedtls_x509_oid_descriptor_t,
+                 certificate_policies,
+                 const char *,
+                 description)
+#endif /* MBEDTLS_X509_CRT_PARSE_C && !MBEDTLS_X509_REMOVE_INFO */
+
+/*
+ * For SignatureAlgorithmIdentifier
+ */
+#if defined(MBEDTLS_X509_USE_C) || \
+    defined(MBEDTLS_X509_CRT_WRITE_C) || defined(MBEDTLS_X509_CSR_WRITE_C)
+typedef struct {
+    mbedtls_x509_oid_descriptor_t    descriptor;
+    mbedtls_md_type_t           md_alg;
+    mbedtls_pk_sigalg_t         pk_alg;
+} oid_sig_alg_t;
+
+static const oid_sig_alg_t oid_sig_alg[] =
+{
+#if defined(MBEDTLS_RSA_C)
+#if defined(PSA_WANT_ALG_MD5)
+    {
+        OID_DESCRIPTOR(MBEDTLS_OID_PKCS1_MD5,        "md5WithRSAEncryption",     "RSA with MD5"),
+        MBEDTLS_MD_MD5,      MBEDTLS_PK_SIGALG_RSA_PKCS1V15,
+    },
+#endif /* PSA_WANT_ALG_MD5 */
+#if defined(PSA_WANT_ALG_SHA_1)
+    {
+        OID_DESCRIPTOR(MBEDTLS_OID_PKCS1_SHA1,       "sha-1WithRSAEncryption",   "RSA with SHA1"),
+        MBEDTLS_MD_SHA1,     MBEDTLS_PK_SIGALG_RSA_PKCS1V15,
+    },
+#endif /* PSA_WANT_ALG_SHA_1 */
+#if defined(PSA_WANT_ALG_SHA_224)
+    {
+        OID_DESCRIPTOR(MBEDTLS_OID_PKCS1_SHA224,     "sha224WithRSAEncryption",
+                       "RSA with SHA-224"),
+        MBEDTLS_MD_SHA224,   MBEDTLS_PK_SIGALG_RSA_PKCS1V15,
+    },
+#endif /* PSA_WANT_ALG_SHA_224 */
+#if defined(PSA_WANT_ALG_SHA_256)
+    {
+        OID_DESCRIPTOR(MBEDTLS_OID_PKCS1_SHA256,     "sha256WithRSAEncryption",
+                       "RSA with SHA-256"),
+        MBEDTLS_MD_SHA256,   MBEDTLS_PK_SIGALG_RSA_PKCS1V15,
+    },
+#endif /* PSA_WANT_ALG_SHA_256 */
+#if defined(PSA_WANT_ALG_SHA_384)
+    {
+        OID_DESCRIPTOR(MBEDTLS_OID_PKCS1_SHA384,     "sha384WithRSAEncryption",
+                       "RSA with SHA-384"),
+        MBEDTLS_MD_SHA384,   MBEDTLS_PK_SIGALG_RSA_PKCS1V15,
+    },
+#endif /* PSA_WANT_ALG_SHA_384 */
+#if defined(PSA_WANT_ALG_SHA_512)
+    {
+        OID_DESCRIPTOR(MBEDTLS_OID_PKCS1_SHA512,     "sha512WithRSAEncryption",
+                       "RSA with SHA-512"),
+        MBEDTLS_MD_SHA512,   MBEDTLS_PK_SIGALG_RSA_PKCS1V15,
+    },
+#endif /* PSA_WANT_ALG_SHA_512 */
+#if defined(PSA_WANT_ALG_SHA_1)
+    {
+        OID_DESCRIPTOR(MBEDTLS_OID_RSA_SHA_OBS,      "sha-1WithRSAEncryption",   "RSA with SHA1"),
+        MBEDTLS_MD_SHA1,     MBEDTLS_PK_SIGALG_RSA_PKCS1V15,
+    },
+#endif /* PSA_WANT_ALG_SHA_1 */
+#endif /* MBEDTLS_RSA_C */
+#if defined(PSA_HAVE_ALG_SOME_ECDSA)
+#if defined(PSA_WANT_ALG_SHA_1)
+    {
+        OID_DESCRIPTOR(MBEDTLS_OID_ECDSA_SHA1,       "ecdsa-with-SHA1",      "ECDSA with SHA1"),
+        MBEDTLS_MD_SHA1,     MBEDTLS_PK_SIGALG_ECDSA,
+    },
+#endif /* PSA_WANT_ALG_SHA_1 */
+#if defined(PSA_WANT_ALG_SHA_224)
+    {
+        OID_DESCRIPTOR(MBEDTLS_OID_ECDSA_SHA224,     "ecdsa-with-SHA224",    "ECDSA with SHA224"),
+        MBEDTLS_MD_SHA224,   MBEDTLS_PK_SIGALG_ECDSA,
+    },
+#endif
+#if defined(PSA_WANT_ALG_SHA_256)
+    {
+        OID_DESCRIPTOR(MBEDTLS_OID_ECDSA_SHA256,     "ecdsa-with-SHA256",    "ECDSA with SHA256"),
+        MBEDTLS_MD_SHA256,   MBEDTLS_PK_SIGALG_ECDSA,
+    },
+#endif /* PSA_WANT_ALG_SHA_256 */
+#if defined(PSA_WANT_ALG_SHA_384)
+    {
+        OID_DESCRIPTOR(MBEDTLS_OID_ECDSA_SHA384,     "ecdsa-with-SHA384",    "ECDSA with SHA384"),
+        MBEDTLS_MD_SHA384,   MBEDTLS_PK_SIGALG_ECDSA,
+    },
+#endif /* PSA_WANT_ALG_SHA_384 */
+#if defined(PSA_WANT_ALG_SHA_512)
+    {
+        OID_DESCRIPTOR(MBEDTLS_OID_ECDSA_SHA512,     "ecdsa-with-SHA512",    "ECDSA with SHA512"),
+        MBEDTLS_MD_SHA512,   MBEDTLS_PK_SIGALG_ECDSA,
+    },
+#endif /* PSA_WANT_ALG_SHA_512 */
+#endif /* PSA_HAVE_ALG_SOME_ECDSA */
+#if defined(MBEDTLS_RSA_C)
+    {
+        OID_DESCRIPTOR(MBEDTLS_OID_RSASSA_PSS,        "RSASSA-PSS",           "RSASSA-PSS"),
+        MBEDTLS_MD_NONE,     MBEDTLS_PK_SIGALG_RSA_PSS,
+    },
+#endif /* MBEDTLS_RSA_C */
+    {
+        NULL_OID_DESCRIPTOR,
+        MBEDTLS_MD_NONE, MBEDTLS_PK_SIGALG_NONE,
+    },
+};
+
+FN_OID_TYPED_FROM_ASN1(oid_sig_alg_t, sig_alg, oid_sig_alg)
+
+#if defined(MBEDTLS_X509_USE_C) && !defined(MBEDTLS_X509_REMOVE_INFO)
+FN_OID_GET_DESCRIPTOR_ATTR1(mbedtls_x509_oid_get_sig_alg_desc,
+                            oid_sig_alg_t,
+                            sig_alg,
+                            const char *,
+                            description)
+#endif /* MBEDTLS_X509_USE_C && !MBEDTLS_X509_REMOVE_INFO */
+
+#if defined(MBEDTLS_X509_USE_C)
+FN_OID_GET_ATTR2(mbedtls_x509_oid_get_sig_alg,
+                 oid_sig_alg_t,
+                 sig_alg,
+                 mbedtls_md_type_t,
+                 md_alg,
+                 mbedtls_pk_sigalg_t,
+                 pk_alg)
+#endif /* MBEDTLS_X509_USE_C */
+#if defined(MBEDTLS_X509_CRT_WRITE_C) || defined(MBEDTLS_X509_CSR_WRITE_C)
+FN_OID_GET_OID_BY_ATTR2(mbedtls_x509_oid_get_oid_by_sig_alg,
+                        oid_sig_alg_t,
+                        oid_sig_alg,
+                        mbedtls_pk_sigalg_t,
+                        pk_alg,
+                        mbedtls_md_type_t,
+                        md_alg)
+#endif /* MBEDTLS_X509_CRT_WRITE_C || MBEDTLS_X509_CSR_WRITE_C */
+
+#endif /* MBEDTLS_X509_USE_C || MBEDTLS_X509_CRT_WRITE_C || MBEDTLS_X509_CSR_WRITE_C */
+
+#if defined(MBEDTLS_X509_OID_HAVE_GET_MD_ALG)
+/*
+ * For digestAlgorithm
+ */
+/* The table of digest OIDs is duplicated in TF-PSA-Crypto (which uses it to
+ * look up the OID for a hash algorithm in RSA PKCS#1v1.5 signature and
+ * verification). */
+typedef struct {
+    mbedtls_x509_oid_descriptor_t    descriptor;
+    mbedtls_md_type_t           md_alg;
+} oid_md_alg_t;
+
+static const oid_md_alg_t oid_md_alg[] =
+{
+#if defined(PSA_WANT_ALG_MD5)
+    {
+        OID_DESCRIPTOR(MBEDTLS_OID_DIGEST_ALG_MD5,       "id-md5",       "MD5"),
+        MBEDTLS_MD_MD5,
+    },
+#endif
+#if defined(PSA_WANT_ALG_SHA_1)
+    {
+        OID_DESCRIPTOR(MBEDTLS_OID_DIGEST_ALG_SHA1,      "id-sha1",      "SHA-1"),
+        MBEDTLS_MD_SHA1,
+    },
+#endif
+#if defined(PSA_WANT_ALG_SHA_224)
+    {
+        OID_DESCRIPTOR(MBEDTLS_OID_DIGEST_ALG_SHA224,    "id-sha224",    "SHA-224"),
+        MBEDTLS_MD_SHA224,
+    },
+#endif
+#if defined(PSA_WANT_ALG_SHA_256)
+    {
+        OID_DESCRIPTOR(MBEDTLS_OID_DIGEST_ALG_SHA256,    "id-sha256",    "SHA-256"),
+        MBEDTLS_MD_SHA256,
+    },
+#endif
+#if defined(PSA_WANT_ALG_SHA_384)
+    {
+        OID_DESCRIPTOR(MBEDTLS_OID_DIGEST_ALG_SHA384,    "id-sha384",    "SHA-384"),
+        MBEDTLS_MD_SHA384,
+    },
+#endif
+#if defined(PSA_WANT_ALG_SHA_512)
+    {
+        OID_DESCRIPTOR(MBEDTLS_OID_DIGEST_ALG_SHA512,    "id-sha512",    "SHA-512"),
+        MBEDTLS_MD_SHA512,
+    },
+#endif
+#if defined(PSA_WANT_ALG_RIPEMD160)
+    {
+        OID_DESCRIPTOR(MBEDTLS_OID_DIGEST_ALG_RIPEMD160, "id-ripemd160", "RIPEMD-160"),
+        MBEDTLS_MD_RIPEMD160,
+    },
+#endif
+#if defined(PSA_WANT_ALG_SHA3_224)
+    {
+        OID_DESCRIPTOR(MBEDTLS_OID_DIGEST_ALG_SHA3_224,    "id-sha3-224",    "SHA-3-224"),
+        MBEDTLS_MD_SHA3_224,
+    },
+#endif
+#if defined(PSA_WANT_ALG_SHA3_256)
+    {
+        OID_DESCRIPTOR(MBEDTLS_OID_DIGEST_ALG_SHA3_256,    "id-sha3-256",    "SHA-3-256"),
+        MBEDTLS_MD_SHA3_256,
+    },
+#endif
+#if defined(PSA_WANT_ALG_SHA3_384)
+    {
+        OID_DESCRIPTOR(MBEDTLS_OID_DIGEST_ALG_SHA3_384,    "id-sha3-384",    "SHA-3-384"),
+        MBEDTLS_MD_SHA3_384,
+    },
+#endif
+#if defined(PSA_WANT_ALG_SHA3_512)
+    {
+        OID_DESCRIPTOR(MBEDTLS_OID_DIGEST_ALG_SHA3_512,    "id-sha3-512",    "SHA-3-512"),
+        MBEDTLS_MD_SHA3_512,
+    },
+#endif
+    {
+        NULL_OID_DESCRIPTOR,
+        MBEDTLS_MD_NONE,
+    },
+};
+
+FN_OID_TYPED_FROM_ASN1(oid_md_alg_t, md_alg, oid_md_alg)
+FN_OID_GET_ATTR1(mbedtls_x509_oid_get_md_alg, oid_md_alg_t, md_alg, mbedtls_md_type_t, md_alg)
+
+#endif /* MBEDTLS_X509_OID_HAVE_GET_MD_ALG */
+
+#endif /* some X.509 is enabled */
diff --git a/deps/LIEF/third-party/mbedtls/library/x509_oid.h b/deps/LIEF/third-party/mbedtls/library/x509_oid.h
new file mode 100644
index 00000000000..0752953aac7
--- /dev/null
+++ b/deps/LIEF/third-party/mbedtls/library/x509_oid.h
@@ -0,0 +1,153 @@
+/**
+ * \file x509_oid.h
+ *
+ * \brief Object Identifier (OID) database
+ */
+/*
+ *  Copyright The Mbed TLS Contributors
+ *  SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+ */
+#ifndef MBEDTLS_X509_OID_H
+#define MBEDTLS_X509_OID_H
+#include "mbedtls/private_access.h"
+
+#include "mbedtls/asn1.h"
+#include "mbedtls/pk.h"
+#if defined(MBEDTLS_PK_HAVE_PRIVATE_HEADER)
+#include <mbedtls/private/pk_private.h>
+#endif /* MBEDTLS_PK_HAVE_PRIVATE_HEADER */
+#include "mbedtls/x509.h"
+
+#include <stddef.h>
+
+#include "mbedtls/md.h"
+
+/*
+ * Maximum number of OID components allowed
+ */
+#define MBEDTLS_OID_MAX_COMPONENTS              128
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * \brief Base OID descriptor structure
+ */
+typedef struct {
+    const char *MBEDTLS_PRIVATE(asn1);               /*!< OID ASN.1 representation       */
+    size_t MBEDTLS_PRIVATE(asn1_len);                /*!< length of asn1                 */
+#if !defined(MBEDTLS_X509_REMOVE_INFO)
+    const char *MBEDTLS_PRIVATE(name);               /*!< official name (e.g. from RFC)  */
+    const char *MBEDTLS_PRIVATE(description);        /*!< human friendly description     */
+#endif
+} mbedtls_x509_oid_descriptor_t;
+
+#if defined(MBEDTLS_X509_CRT_PARSE_C) || defined(MBEDTLS_X509_CSR_PARSE_C)
+#define MBEDTLS_X509_OID_HAVE_GET_X509_EXT_TYPE
+/**
+ * \brief          Translate an X.509 extension OID into local values
+ *
+ * \param oid      OID to use
+ * \param ext_type place to store the extension type
+ *
+ * \return         0 if successful, or MBEDTLS_ERR_X509_UNKNOWN_OID
+ */
+int mbedtls_x509_oid_get_x509_ext_type(const mbedtls_asn1_buf *oid, int *ext_type);
+#endif /* MBEDTLS_X509_OID_HAVE_GET_X509_EXT_TYPE */
+
+#if defined(MBEDTLS_X509_USE_C)
+/**
+ * \brief          Translate an X.509 attribute type OID into the short name
+ *                 (e.g. the OID for an X520 Common Name into "CN")
+ *
+ * \param oid      OID to use
+ * \param short_name    place to store the string pointer
+ *
+ * \return         0 if successful, or MBEDTLS_ERR_X509_UNKNOWN_OID
+ */
+int mbedtls_x509_oid_get_attr_short_name(const mbedtls_asn1_buf *oid, const char **short_name);
+#endif /* MBEDTLS_X509_USE_C */
+
+#if defined(MBEDTLS_X509_USE_C)
+/**
+ * \brief          Translate SignatureAlgorithm OID into md_type and pk_type
+ *
+ * \param oid      OID to use
+ * \param md_alg   place to store message digest algorithm
+ * \param pk_alg   place to store public key algorithm
+ *
+ * \return         0 if successful, or MBEDTLS_ERR_X509_UNKNOWN_OID
+ */
+int mbedtls_x509_oid_get_sig_alg(const mbedtls_asn1_buf *oid,
+                                 mbedtls_md_type_t *md_alg, mbedtls_pk_sigalg_t *pk_alg);
+
+#if !defined(MBEDTLS_X509_REMOVE_INFO)
+/**
+ * \brief          Translate SignatureAlgorithm OID into description
+ *
+ * \param oid      OID to use
+ * \param desc     place to store string pointer
+ *
+ * \return         0 if successful, or MBEDTLS_ERR_X509_UNKNOWN_OID
+ */
+int mbedtls_x509_oid_get_sig_alg_desc(const mbedtls_asn1_buf *oid, const char **desc);
+#endif /* !MBEDTLS_X509_REMOVE_INFO */
+#endif /* MBEDTLS_X509_USE_C */
+
+#if defined(MBEDTLS_X509_CRT_WRITE_C) || defined(MBEDTLS_X509_CSR_WRITE_C)
+/**
+ * \brief          Translate md_type and pk_type into SignatureAlgorithm OID
+ *
+ * \param md_alg   message digest algorithm
+ * \param pk_alg   public key algorithm
+ * \param oid      place to store ASN.1 OID string pointer
+ * \param olen     length of the OID
+ *
+ * \return         0 if successful, or MBEDTLS_ERR_X509_UNKNOWN_OID
+ */
+int mbedtls_x509_oid_get_oid_by_sig_alg(mbedtls_pk_sigalg_t pk_alg, mbedtls_md_type_t md_alg,
+                                        const char **oid, size_t *olen);
+#endif /* MBEDTLS_X509_CRT_WRITE_C || MBEDTLS_X509_CSR_WRITE_C */
+
+#if (defined(MBEDTLS_X509_USE_C) && defined(MBEDTLS_X509_RSASSA_PSS_SUPPORT)) || \
+    defined(MBEDTLS_PKCS7_C)
+#define MBEDTLS_X509_OID_HAVE_GET_MD_ALG
+/**
+ * \brief          Translate hash algorithm OID into md_type
+ *
+ * \param oid      OID to use
+ * \param md_alg   place to store message digest algorithm
+ *
+ * \return         0 if successful, or MBEDTLS_ERR_X509_UNKNOWN_OID
+ */
+int mbedtls_x509_oid_get_md_alg(const mbedtls_asn1_buf *oid, mbedtls_md_type_t *md_alg);
+#endif /* MBEDTLS_X509_OID_HAVE_GET_MD_ALG */
+
+#if defined(MBEDTLS_X509_CRT_PARSE_C) && !defined(MBEDTLS_X509_REMOVE_INFO)
+/**
+ * \brief          Translate Extended Key Usage OID into description
+ *
+ * \param oid      OID to use
+ * \param desc     place to store string pointer
+ *
+ * \return         0 if successful, or MBEDTLS_ERR_X509_UNKNOWN_OID
+ */
+int mbedtls_x509_oid_get_extended_key_usage(const mbedtls_asn1_buf *oid, const char **desc);
+
+/**
+ * \brief          Translate certificate policies OID into description
+ *
+ * \param oid      OID to use
+ * \param desc     place to store string pointer
+ *
+ * \return         0 if successful, or MBEDTLS_ERR_X509_UNKNOWN_OID
+ */
+int mbedtls_x509_oid_get_certificate_policies(const mbedtls_asn1_buf *oid, const char **desc);
+#endif /* MBEDTLS_X509_CRT_PARSE_C && !MBEDTLS_X509_REMOVE_INFO */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* x509_oid.h */
diff --git a/deps/LIEF/third-party/mbedtls/library/x509write.c b/deps/LIEF/third-party/mbedtls/library/x509write.c
index 4704900d386..0906a5a9d13 100644
--- a/deps/LIEF/third-party/mbedtls/library/x509write.c
+++ b/deps/LIEF/third-party/mbedtls/library/x509write.c
@@ -4,11 +4,11 @@
  *  Copyright The Mbed TLS Contributors
  *  SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
  */
-#include "common.h"
+#include "x509_internal.h"
+
 #if defined(MBEDTLS_X509_CSR_WRITE_C) || defined(MBEDTLS_X509_CRT_WRITE_C)

 #include "mbedtls/x509_crt.h"
-#include "x509_internal.h"
 #include "mbedtls/asn1write.h"
 #include "mbedtls/error.h"
 #include "mbedtls/oid.h"
@@ -22,11 +22,9 @@
 #include "mbedtls/pem.h"
 #endif /* MBEDTLS_PEM_WRITE_C */

-#if defined(MBEDTLS_USE_PSA_CRYPTO)
 #include "psa/crypto.h"
 #include "mbedtls/psa_util.h"
 #include "md_psa.h"
-#endif /* MBEDTLS_USE_PSA_CRYPTO */

 #define CHECK_OVERFLOW_ADD(a, b) \
     do                         \
diff --git a/deps/LIEF/third-party/mbedtls/library/x509write_crt.c b/deps/LIEF/third-party/mbedtls/library/x509write_crt.c
index d829ffe6027..663b308d623 100644
--- a/deps/LIEF/third-party/mbedtls/library/x509write_crt.c
+++ b/deps/LIEF/third-party/mbedtls/library/x509write_crt.c
@@ -11,15 +11,15 @@
  * - attributes: PKCS#9 v2.0 aka RFC 2985
  */

-#include "common.h"
+#include "x509_internal.h"

 #if defined(MBEDTLS_X509_CRT_WRITE_C)

 #include "mbedtls/x509_crt.h"
-#include "x509_internal.h"
 #include "mbedtls/asn1write.h"
 #include "mbedtls/error.h"
 #include "mbedtls/oid.h"
+#include "x509_oid.h"
 #include "mbedtls/platform.h"
 #include "mbedtls/platform_util.h"
 #include "mbedtls/md.h"
@@ -31,11 +31,9 @@
 #include "mbedtls/pem.h"
 #endif /* MBEDTLS_PEM_WRITE_C */

-#if defined(MBEDTLS_USE_PSA_CRYPTO)
 #include "psa/crypto.h"
 #include "psa_util_internal.h"
 #include "mbedtls/psa_util.h"
-#endif /* MBEDTLS_USE_PSA_CRYPTO */

 void mbedtls_x509write_crt_init(mbedtls_x509write_cert *ctx)
 {
@@ -95,32 +93,8 @@ int mbedtls_x509write_crt_set_issuer_name(mbedtls_x509write_cert *ctx,
     return mbedtls_x509_string_to_names(&ctx->issuer, issuer_name);
 }

-#if defined(MBEDTLS_BIGNUM_C) && !defined(MBEDTLS_DEPRECATED_REMOVED)
-int mbedtls_x509write_crt_set_serial(mbedtls_x509write_cert *ctx,
-                                     const mbedtls_mpi *serial)
-{
-    int ret;
-    size_t tmp_len;
-
-    /* Ensure that the MPI value fits into the buffer */
-    tmp_len = mbedtls_mpi_size(serial);
-    if (tmp_len > MBEDTLS_X509_RFC5280_MAX_SERIAL_LEN) {
-        return MBEDTLS_ERR_X509_BAD_INPUT_DATA;
-    }
-
-    ctx->serial_len = tmp_len;
-
-    ret = mbedtls_mpi_write_binary(serial, ctx->serial, tmp_len);
-    if (ret < 0) {
-        return ret;
-    }
-
-    return 0;
-}
-#endif // MBEDTLS_BIGNUM_C && !MBEDTLS_DEPRECATED_REMOVED
-
 int mbedtls_x509write_crt_set_serial_raw(mbedtls_x509write_cert *ctx,
-                                         unsigned char *serial, size_t serial_len)
+                                         const unsigned char *serial, size_t serial_len)
 {
     if (serial_len > MBEDTLS_X509_RFC5280_MAX_SERIAL_LEN) {
         return MBEDTLS_ERR_X509_BAD_INPUT_DATA;
@@ -197,7 +171,7 @@ int mbedtls_x509write_crt_set_basic_constraints(mbedtls_x509write_cert *ctx,
                                             is_ca, buf + sizeof(buf) - len, len);
 }

-#if defined(MBEDTLS_MD_CAN_SHA1)
+#if defined(PSA_WANT_ALG_SHA_1)
 static int mbedtls_x509write_crt_set_key_identifier(mbedtls_x509write_cert *ctx,
                                                     int is_ca,
                                                     unsigned char tag)
@@ -206,10 +180,8 @@ static int mbedtls_x509write_crt_set_key_identifier(mbedtls_x509write_cert *ctx,
     unsigned char buf[MBEDTLS_MPI_MAX_SIZE * 2 + 20]; /* tag, length + 2xMPI */
     unsigned char *c = buf + sizeof(buf);
     size_t len = 0;
-#if defined(MBEDTLS_USE_PSA_CRYPTO)
     psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED;
     size_t hash_length;
-#endif /* MBEDTLS_USE_PSA_CRYPTO */

     memset(buf, 0, sizeof(buf));
     MBEDTLS_ASN1_CHK_ADD(len,
@@ -220,7 +192,6 @@ static int mbedtls_x509write_crt_set_key_identifier(mbedtls_x509write_cert *ctx,
                                                  ctx->subject_key));


-#if defined(MBEDTLS_USE_PSA_CRYPTO)
     status = psa_hash_compute(PSA_ALG_SHA_1,
                               buf + sizeof(buf) - len,
                               len,
@@ -230,14 +201,6 @@ static int mbedtls_x509write_crt_set_key_identifier(mbedtls_x509write_cert *ctx,
     if (status != PSA_SUCCESS) {
         return MBEDTLS_ERR_PLATFORM_HW_ACCEL_FAILED;
     }
-#else
-    ret = mbedtls_md(mbedtls_md_info_from_type(MBEDTLS_MD_SHA1),
-                     buf + sizeof(buf) - len, len,
-                     buf + sizeof(buf) - 20);
-    if (ret != 0) {
-        return ret;
-    }
-#endif /* MBEDTLS_USE_PSA_CRYPTO */

     c = buf + sizeof(buf) - 20;
     len = 20;
@@ -282,7 +245,7 @@ int mbedtls_x509write_crt_set_authority_key_identifier(mbedtls_x509write_cert *c
                                                     1,
                                                     (MBEDTLS_ASN1_CONTEXT_SPECIFIC | 0));
 }
-#endif /* MBEDTLS_MD_CAN_SHA1 */
+#endif /* PSA_WANT_ALG_SHA_1 */

 int mbedtls_x509write_crt_set_key_usage(mbedtls_x509write_cert *ctx,
                                         unsigned int key_usage)
@@ -419,9 +382,7 @@ static int x509_write_time(unsigned char **p, unsigned char *start,
 }

 int mbedtls_x509write_crt_der(mbedtls_x509write_cert *ctx,
-                              unsigned char *buf, size_t size,
-                              int (*f_rng)(void *, unsigned char *, size_t),
-                              void *p_rng)
+                              unsigned char *buf, size_t size)
 {
     int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
     const char *sig_oid;
@@ -430,10 +391,8 @@ int mbedtls_x509write_crt_der(mbedtls_x509write_cert *ctx,
     unsigned char sig[MBEDTLS_PK_SIGNATURE_MAX_SIZE];
     size_t hash_length = 0;
     unsigned char hash[MBEDTLS_MD_MAX_SIZE];
-#if defined(MBEDTLS_USE_PSA_CRYPTO)
     psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED;
     psa_algorithm_t psa_algorithm;
-#endif /* MBEDTLS_USE_PSA_CRYPTO */

     size_t sub_len = 0, pub_len = 0, sig_and_oid_len = 0, sig_len;
     size_t len = 0;
@@ -457,8 +416,8 @@ int mbedtls_x509write_crt_der(mbedtls_x509write_cert *ctx,
         return MBEDTLS_ERR_X509_INVALID_ALG;
     }

-    if ((ret = mbedtls_oid_get_oid_by_sig_alg(pk_alg, ctx->md_alg,
-                                              &sig_oid, &sig_oid_len)) != 0) {
+    if ((ret = mbedtls_x509_oid_get_oid_by_sig_alg((mbedtls_pk_sigalg_t) pk_alg, ctx->md_alg,
+                                                   &sig_oid, &sig_oid_len)) != 0) {
         return ret;
     }

@@ -599,7 +558,6 @@ int mbedtls_x509write_crt_der(mbedtls_x509write_cert *ctx,
      */

     /* Compute hash of CRT. */
-#if defined(MBEDTLS_USE_PSA_CRYPTO)
     psa_algorithm = mbedtls_md_psa_alg_from_type(ctx->md_alg);

     status = psa_hash_compute(psa_algorithm,
@@ -611,17 +569,10 @@ int mbedtls_x509write_crt_der(mbedtls_x509write_cert *ctx,
     if (status != PSA_SUCCESS) {
         return MBEDTLS_ERR_PLATFORM_HW_ACCEL_FAILED;
     }
-#else
-    if ((ret = mbedtls_md(mbedtls_md_info_from_type(ctx->md_alg), c,
-                          len, hash)) != 0) {
-        return ret;
-    }
-#endif /* MBEDTLS_USE_PSA_CRYPTO */


     if ((ret = mbedtls_pk_sign(ctx->issuer_key, ctx->md_alg,
-                               hash, hash_length, sig, sizeof(sig), &sig_len,
-                               f_rng, p_rng)) != 0) {
+                               hash, hash_length, sig, sizeof(sig), &sig_len)) != 0) {
         return ret;
     }

@@ -636,7 +587,8 @@ int mbedtls_x509write_crt_der(mbedtls_x509write_cert *ctx,
     c2 = buf + size;
     MBEDTLS_ASN1_CHK_ADD(sig_and_oid_len, mbedtls_x509_write_sig(&c2, c,
                                                                  sig_oid, sig_oid_len,
-                                                                 sig, sig_len, pk_alg));
+                                                                 sig, sig_len,
+                                                                 (mbedtls_pk_sigalg_t) pk_alg));

     /*
      * Memory layout after this step:
@@ -663,15 +615,12 @@ int mbedtls_x509write_crt_der(mbedtls_x509write_cert *ctx,

 #if defined(MBEDTLS_PEM_WRITE_C)
 int mbedtls_x509write_crt_pem(mbedtls_x509write_cert *crt,
-                              unsigned char *buf, size_t size,
-                              int (*f_rng)(void *, unsigned char *, size_t),
-                              void *p_rng)
+                              unsigned char *buf, size_t size)
 {
     int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
     size_t olen;

-    if ((ret = mbedtls_x509write_crt_der(crt, buf, size,
-                                         f_rng, p_rng)) < 0) {
+    if ((ret = mbedtls_x509write_crt_der(crt, buf, size)) < 0) {
         return ret;
     }

diff --git a/deps/LIEF/third-party/mbedtls/library/x509write_csr.c b/deps/LIEF/third-party/mbedtls/library/x509write_csr.c
index 75bd8f044e4..8e37278f957 100644
--- a/deps/LIEF/third-party/mbedtls/library/x509write_csr.c
+++ b/deps/LIEF/third-party/mbedtls/library/x509write_csr.c
@@ -10,22 +10,20 @@
  * - attributes: PKCS#9 v2.0 aka RFC 2985
  */

-#include "common.h"
+#include "x509_internal.h"

 #if defined(MBEDTLS_X509_CSR_WRITE_C)

-#include "x509_internal.h"
 #include "mbedtls/x509_csr.h"
 #include "mbedtls/asn1write.h"
 #include "mbedtls/error.h"
 #include "mbedtls/oid.h"
+#include "x509_oid.h"
 #include "mbedtls/platform_util.h"

-#if defined(MBEDTLS_USE_PSA_CRYPTO)
 #include "psa/crypto.h"
 #include "psa_util_internal.h"
 #include "mbedtls/psa_util.h"
-#endif /* MBEDTLS_USE_PSA_CRYPTO */

 #include <string.h>
 #include <stdlib.h>
@@ -135,9 +133,7 @@ int mbedtls_x509write_csr_set_ns_cert_type(mbedtls_x509write_csr *ctx,
 static int x509write_csr_der_internal(mbedtls_x509write_csr *ctx,
                                       unsigned char *buf,
                                       size_t size,
-                                      unsigned char *sig, size_t sig_size,
-                                      int (*f_rng)(void *, unsigned char *, size_t),
-                                      void *p_rng)
+                                      unsigned char *sig, size_t sig_size)
 {
     int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
     const char *sig_oid;
@@ -147,10 +143,8 @@ static int x509write_csr_der_internal(mbedtls_x509write_csr *ctx,
     size_t pub_len = 0, sig_and_oid_len = 0, sig_len;
     size_t len = 0;
     mbedtls_pk_type_t pk_alg;
-#if defined(MBEDTLS_USE_PSA_CRYPTO)
     size_t hash_len;
     psa_algorithm_t hash_alg = mbedtls_md_psa_alg_from_type(ctx->md_alg);
-#endif /* MBEDTLS_USE_PSA_CRYPTO */

     /* Write the CSR backwards starting from the end of buf */
     c = buf + size;
@@ -215,7 +209,6 @@ static int x509write_csr_der_internal(mbedtls_x509write_csr *ctx,
      * Sign the written CSR data into the sig buffer
      * Note: hash errors can happen only after an internal error
      */
-#if defined(MBEDTLS_USE_PSA_CRYPTO)
     if (psa_hash_compute(hash_alg,
                          c,
                          len,
@@ -224,15 +217,8 @@ static int x509write_csr_der_internal(mbedtls_x509write_csr *ctx,
                          &hash_len) != PSA_SUCCESS) {
         return MBEDTLS_ERR_PLATFORM_HW_ACCEL_FAILED;
     }
-#else /* MBEDTLS_USE_PSA_CRYPTO */
-    ret = mbedtls_md(mbedtls_md_info_from_type(ctx->md_alg), c, len, hash);
-    if (ret != 0) {
-        return ret;
-    }
-#endif
     if ((ret = mbedtls_pk_sign(ctx->key, ctx->md_alg, hash, 0,
-                               sig, sig_size, &sig_len,
-                               f_rng, p_rng)) != 0) {
+                               sig, sig_size, &sig_len)) != 0) {
         return ret;
     }

@@ -244,8 +230,8 @@ static int x509write_csr_der_internal(mbedtls_x509write_csr *ctx,
         return MBEDTLS_ERR_X509_INVALID_ALG;
     }

-    if ((ret = mbedtls_oid_get_oid_by_sig_alg(pk_alg, ctx->md_alg,
-                                              &sig_oid, &sig_oid_len)) != 0) {
+    if ((ret = mbedtls_x509_oid_get_oid_by_sig_alg((mbedtls_pk_sigalg_t) pk_alg, ctx->md_alg,
+                                                   &sig_oid, &sig_oid_len)) != 0) {
         return ret;
     }

@@ -263,7 +249,7 @@ static int x509write_csr_der_internal(mbedtls_x509write_csr *ctx,
     c2 = buf + size;
     MBEDTLS_ASN1_CHK_ADD(sig_and_oid_len,
                          mbedtls_x509_write_sig(&c2, buf + len, sig_oid, sig_oid_len,
-                                                sig, sig_len, pk_alg));
+                                                sig, sig_len, (mbedtls_pk_sigalg_t) pk_alg));

     /*
      * Compact the space between the CSR data and signature by moving the
@@ -287,9 +273,7 @@ static int x509write_csr_der_internal(mbedtls_x509write_csr *ctx,
 }

 int mbedtls_x509write_csr_der(mbedtls_x509write_csr *ctx, unsigned char *buf,
-                              size_t size,
-                              int (*f_rng)(void *, unsigned char *, size_t),
-                              void *p_rng)
+                              size_t size)
 {
     int ret;
     unsigned char *sig;
@@ -299,8 +283,7 @@ int mbedtls_x509write_csr_der(mbedtls_x509write_csr *ctx, unsigned char *buf,
     }

     ret = x509write_csr_der_internal(ctx, buf, size,
-                                     sig, MBEDTLS_PK_SIGNATURE_MAX_SIZE,
-                                     f_rng, p_rng);
+                                     sig, MBEDTLS_PK_SIGNATURE_MAX_SIZE);

     mbedtls_free(sig);

@@ -311,15 +294,12 @@ int mbedtls_x509write_csr_der(mbedtls_x509write_csr *ctx, unsigned char *buf,
 #define PEM_END_CSR             "-----END CERTIFICATE REQUEST-----\n"

 #if defined(MBEDTLS_PEM_WRITE_C)
-int mbedtls_x509write_csr_pem(mbedtls_x509write_csr *ctx, unsigned char *buf, size_t size,
-                              int (*f_rng)(void *, unsigned char *, size_t),
-                              void *p_rng)
+int mbedtls_x509write_csr_pem(mbedtls_x509write_csr *ctx, unsigned char *buf, size_t size)
 {
     int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
     size_t olen = 0;

-    if ((ret = mbedtls_x509write_csr_der(ctx, buf, size,
-                                         f_rng, p_rng)) < 0) {
+    if ((ret = mbedtls_x509write_csr_der(ctx, buf, size)) < 0) {
         return ret;
     }

diff --git a/deps/LIEF/third-party/mbedtls/tf-psa-crypto/LICENSE b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/LICENSE
new file mode 100644
index 00000000000..4c47cb2a5a5
--- /dev/null
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/LICENSE
@@ -0,0 +1,552 @@
+TF-PSA-Crypto files are provided under a dual [Apache-2.0](https://spdx.org/licenses/Apache-2.0.html)
+OR [GPL-2.0-or-later](https://spdx.org/licenses/GPL-2.0-or-later.html) license.
+This means that users may choose which of these licenses they take the code
+under.
+
+The full text of each of these licenses is given below.
+
+                                 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.
+
+
+===============================================================================
+
+
+                    GNU GENERAL PUBLIC LICENSE
+                       Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+                            Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users.  This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it.  (Some other Free Software Foundation software is covered by
+the GNU Lesser General Public License instead.)  You can apply it to
+your programs, too.
+
+  When we speak of free software, we are referring to freedom, not
+price.  Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+  To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+  For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have.  You must make sure that they, too, receive or can get the
+source code.  And you must show them these terms so they know their
+rights.
+
+  We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+  Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software.  If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+  Finally, any free program is threatened constantly by software
+patents.  We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary.  To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.
+
+                    GNU GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License.  The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language.  (Hereinafter, translation is included without limitation in
+the term "modification".)  Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+  1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+  2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) You must cause the modified files to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    b) You must cause any work that you distribute or publish, that in
+    whole or in part contains or is derived from the Program or any
+    part thereof, to be licensed as a whole at no charge to all third
+    parties under the terms of this License.
+
+    c) If the modified program normally reads commands interactively
+    when run, you must cause it, when started running for such
+    interactive use in the most ordinary way, to print or display an
+    announcement including an appropriate copyright notice and a
+    notice that there is no warranty (or else, saying that you provide
+    a warranty) and that users may redistribute the program under
+    these conditions, and telling the user how to view a copy of this
+    License.  (Exception: if the Program itself is interactive but
+    does not normally print such an announcement, your work based on
+    the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+    a) Accompany it with the complete corresponding machine-readable
+    source code, which must be distributed under the terms of Sections
+    1 and 2 above on a medium customarily used for software interchange; or,
+
+    b) Accompany it with a written offer, valid for at least three
+    years, to give any third party, for a charge no more than your
+    cost of physically performing source distribution, a complete
+    machine-readable copy of the corresponding source code, to be
+    distributed under the terms of Sections 1 and 2 above on a medium
+    customarily used for software interchange; or,
+
+    c) Accompany it with the information you received as to the offer
+    to distribute corresponding source code.  (This alternative is
+    allowed only for noncommercial distribution and only if you
+    received the program in object code or executable form with such
+    an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it.  For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable.  However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+  4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License.  Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+  5. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Program or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+  6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+  7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+  8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded.  In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+  9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time.  Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation.  If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+  10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission.  For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this.  Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+                            NO WARRANTY
+
+  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+                     END OF TERMS AND CONDITIONS
+
+            How to Apply These Terms to Your New Programs
+
+  If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+  To do so, attach the following notices to the program.  It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+    <one line to give the program's name and a brief idea of what it does.>
+    Copyright (C) <year>  <name of author>
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License along
+    with this program; if not, write to the Free Software Foundation, Inc.,
+    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+    Gnomovision version 69, Copyright (C) year name of author
+    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+    This is free software, and you are welcome to redistribute it
+    under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License.  Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary.  Here is a sample; alter the names:
+
+  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+  `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+  <signature of Ty Coon>, 1 April 1989
+  Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs.  If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library.  If this is what you want to do, use the GNU Lesser General
+Public License instead of this License.
diff --git a/deps/LIEF/third-party/mbedtls/tf-psa-crypto/core/CMakeLists.txt b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/core/CMakeLists.txt
new file mode 100644
index 00000000000..00be8fca650
--- /dev/null
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/core/CMakeLists.txt
@@ -0,0 +1,195 @@
+set(src_crypto
+    psa_crypto.c
+    psa_crypto_client.c
+    psa_crypto_driver_wrappers_no_static.c
+    psa_crypto_slot_management.c
+    psa_crypto_storage.c
+    psa_its_file.c
+    tf_psa_crypto_config.c
+    tf_psa_crypto_version.c
+)
+
+if(GEN_FILES)
+    add_custom_command(
+        OUTPUT
+            ${CMAKE_CURRENT_BINARY_DIR}/psa_crypto_driver_wrappers.h
+            ${CMAKE_CURRENT_BINARY_DIR}/psa_crypto_driver_wrappers_no_static.c
+        COMMAND
+            ${TF_PSA_CRYPTO_PYTHON_EXECUTABLE}
+                ${TF_PSA_CRYPTO_DIR}/scripts/generate_driver_wrappers.py
+                ${CMAKE_CURRENT_BINARY_DIR}
+        DEPENDS
+            ${TF_PSA_CRYPTO_DIR}/scripts/generate_driver_wrappers.py
+            ${TF_PSA_CRYPTO_DIR}/scripts/data_files/driver_templates/psa_crypto_driver_wrappers.h.jinja
+            ${TF_PSA_CRYPTO_DIR}/scripts/data_files/driver_templates/psa_crypto_driver_wrappers_no_static.c.jinja
+    )
+
+    execute_process(
+        COMMAND
+            ${TF_PSA_CRYPTO_PYTHON_EXECUTABLE}
+            ${TF_PSA_CRYPTO_DIR}/scripts/generate_config_checks.py
+            --list-for-cmake "${CMAKE_CURRENT_BINARY_DIR}"
+        WORKING_DIRECTORY
+            ${CMAKE_CURRENT_SOURCE_DIR}/..
+        OUTPUT_VARIABLE
+            TF_PSA_CRYPTO_GENERATED_CONFIG_CHECKS_HEADERS)
+
+    add_custom_command(
+        OUTPUT ${TF_PSA_CRYPTO_GENERATED_CONFIG_CHECKS_HEADERS}
+        COMMAND
+            ${TF_PSA_CRYPTO_PYTHON_EXECUTABLE}
+                ${TF_PSA_CRYPTO_DIR}/scripts/generate_config_checks.py
+                ${CMAKE_CURRENT_BINARY_DIR}
+        DEPENDS
+            ${TF_PSA_CRYPTO_DIR}/scripts/generate_config_checks.py
+            ${TF_PSA_CRYPTO_FRAMEWORK_DIR}/scripts/mbedtls_framework/config_checks_generator.py
+    )
+
+    add_custom_target(
+            ${TF_PSA_CRYPTO_TARGET_PREFIX}libtfpsacrypto_generated_files_target
+        DEPENDS
+            "${CMAKE_CURRENT_BINARY_DIR}/psa_crypto_driver_wrappers.h"
+            "${CMAKE_CURRENT_BINARY_DIR}/psa_crypto_driver_wrappers_no_static.c"
+            ${TF_PSA_CRYPTO_GENERATED_CONFIG_CHECKS_HEADERS}
+        )
+
+    # List generated headers as sources explicitly. Normally CMake finds
+    # headers by tracing include directives, but if that happens before the
+    # generated headers are generated, this process doesn't find them.
+    list(APPEND src_crypto
+        "${CMAKE_CURRENT_BINARY_DIR}/psa_crypto_driver_wrappers.h"
+        ${TF_PSA_CRYPTO_GENERATED_CONFIG_CHECKS_HEADERS}
+    )
+endif(GEN_FILES)
+
+if(CMAKE_COMPILER_IS_GNUCC)
+    set(LIBS_C_FLAGS -Wmissing-declarations -Wmissing-prototypes)
+endif(CMAKE_COMPILER_IS_GNUCC)
+
+if(CMAKE_COMPILER_IS_CLANG)
+    set(LIBS_C_FLAGS -Wmissing-declarations -Wmissing-prototypes -Wdocumentation -Wno-documentation-deprecated-sync -Wunreachable-code)
+endif(CMAKE_COMPILER_IS_CLANG)
+
+if(CMAKE_COMPILER_IS_MSVC)
+    option(MSVC_STATIC_RUNTIME "Build the libraries with /MT compiler flag" OFF)
+    if(MSVC_STATIC_RUNTIME)
+        foreach(flag_var
+            CMAKE_C_FLAGS CMAKE_C_FLAGS_DEBUG CMAKE_C_FLAGS_RELEASE
+            CMAKE_C_FLAGS_MINSIZEREL CMAKE_C_FLAGS_RELWITHDEBINFO
+            CMAKE_C_FLAGS_CHECK)
+            string(REGEX REPLACE "/MD" "/MT" ${flag_var} "${${flag_var}}")
+        endforeach(flag_var)
+    endif()
+endif()
+
+if(CMAKE_C_COMPILER_ID MATCHES "AppleClang")
+    set(CMAKE_C_ARCHIVE_CREATE   "<CMAKE_AR> Scr <TARGET> <LINK_FLAGS> <OBJECTS>")
+    set(CMAKE_C_ARCHIVE_FINISH   "<CMAKE_RANLIB> -no_warning_for_no_symbols -c <TARGET>")
+endif()
+if(CMAKE_CXX_COMPILER_ID MATCHES "AppleClang")
+    set(CMAKE_CXX_ARCHIVE_CREATE "<CMAKE_AR> Scr <TARGET> <LINK_FLAGS> <OBJECTS>")
+    set(CMAKE_CXX_ARCHIVE_FINISH "<CMAKE_RANLIB> -no_warning_for_no_symbols -c <TARGET>")
+endif()
+
+if(WIN32)
+    set(libs ${libs} ws2_32 bcrypt)
+endif(WIN32)
+
+if(LINK_WITH_PTHREAD)
+    set(libs ${libs} ${CMAKE_THREAD_LIBS_INIT})
+endif()
+
+if(LINK_WITH_TRUSTED_STORAGE)
+    set(libs ${libs} trusted_storage)
+endif()
+
+if (NOT USE_STATIC_TF_PSA_CRYPTO_LIBRARY AND NOT USE_SHARED_TF_PSA_CRYPTO_LIBRARY)
+    message(FATAL_ERROR "Need to choose static or shared TF-PSA-Crypto build!")
+endif(NOT USE_STATIC_TF_PSA_CRYPTO_LIBRARY AND NOT USE_SHARED_TF_PSA_CRYPTO_LIBRARY)
+
+set(tfpsacrypto_target "${TF_PSA_CRYPTO_TARGET_PREFIX}tfpsacrypto")
+set(builtin_target "${TF_PSA_CRYPTO_TARGET_PREFIX}builtin")
+set(everest_target "${TF_PSA_CRYPTO_TARGET_PREFIX}everest")
+set(p256m_target "${TF_PSA_CRYPTO_TARGET_PREFIX}p256m")
+
+if (USE_STATIC_TF_PSA_CRYPTO_LIBRARY)
+    set(tfpsacrypto_static_target ${tfpsacrypto_target})
+    set(builtin_static_target ${builtin_target})
+    set(everest_static_target ${everest_target})
+    set(p256m_static_target ${p256m_target})
+endif()
+
+set(target_libraries ${tfpsacrypto_target})
+
+if(USE_STATIC_TF_PSA_CRYPTO_LIBRARY AND USE_SHARED_TF_PSA_CRYPTO_LIBRARY)
+    string(APPEND tfpsacrypto_static_target "_static")
+    string(APPEND builtin_static_target "_static")
+    string(APPEND everest_static_target "_static")
+    string(APPEND p256m_static_target "_static")
+
+    list(APPEND target_libraries
+        ${tfpsacrypto_static_target})
+endif()
+
+if(USE_STATIC_TF_PSA_CRYPTO_LIBRARY)
+    add_library(${tfpsacrypto_static_target} STATIC
+        ${src_crypto}
+        $<TARGET_OBJECTS:${builtin_static_target}>
+        $<TARGET_OBJECTS:${everest_static_target}>
+        $<TARGET_OBJECTS:${p256m_static_target}>)
+    tf_psa_crypto_set_base_compile_options(${tfpsacrypto_static_target})
+    target_compile_options(${tfpsacrypto_static_target} PRIVATE ${LIBS_C_FLAGS})
+    set_target_properties(${tfpsacrypto_static_target} PROPERTIES OUTPUT_NAME tfpsacrypto)
+    target_link_libraries(${tfpsacrypto_static_target} PUBLIC ${libs})
+
+    if(GEN_FILES)
+        add_dependencies(${tfpsacrypto_static_target}
+            ${TF_PSA_CRYPTO_TARGET_PREFIX}libtfpsacrypto_generated_files_target)
+    endif()
+endif(USE_STATIC_TF_PSA_CRYPTO_LIBRARY)
+
+if(USE_SHARED_TF_PSA_CRYPTO_LIBRARY)
+    set(CMAKE_LIBRARY_PATH ${CMAKE_CURRENT_BINARY_DIR})
+    add_library(${tfpsacrypto_target} SHARED
+        ${src_crypto} $<TARGET_OBJECTS:${builtin_target}>
+        ${src_crypto} $<TARGET_OBJECTS:${everest_target}>
+        ${src_crypto} $<TARGET_OBJECTS:${p256m_target}>)
+    tf_psa_crypto_set_base_compile_options(${tfpsacrypto_target})
+    target_compile_options(${tfpsacrypto_target} PRIVATE ${LIBS_C_FLAGS})
+    set_target_properties(${tfpsacrypto_target} PROPERTIES VERSION ${TF_PSA_CRYPTO_VERSION} SOVERSION ${TF_PSA_CRYPTO_SOVERSION})
+    target_link_libraries(${tfpsacrypto_target} PUBLIC ${libs})
+
+    if(GEN_FILES)
+        add_dependencies(${tfpsacrypto_target}
+            ${TF_PSA_CRYPTO_TARGET_PREFIX}libtfpsacrypto_generated_files_target)
+    endif()
+endif(USE_SHARED_TF_PSA_CRYPTO_LIBRARY)
+
+foreach(target IN LISTS target_libraries)
+    add_library(TF-PSA-Crypto::${target} ALIAS ${target})  # add_subdirectory support
+    target_include_directories(${target}
+        PUBLIC $<BUILD_INTERFACE:${TF_PSA_CRYPTO_DIR}/include/>
+               $<BUILD_INTERFACE:${TF_PSA_CRYPTO_DIR}/drivers/builtin/include/>
+               $<BUILD_INTERFACE:${TF_PSA_CRYPTO_DIR}/drivers/everest/include/>
+               $<BUILD_INTERFACE:${TF_PSA_CRYPTO_DIR}/drivers/p256-m/>
+               $<INSTALL_INTERFACE:include/>
+        PRIVATE ${TF_PSA_CRYPTO_DIR}/core
+                ${TF_PSA_CRYPTO_DIR}/drivers/builtin/src
+                # Needed to include psa_crypto_driver_wrappers.h
+                ${CMAKE_CURRENT_BINARY_DIR})
+    tf_psa_crypto_set_config_files_compile_definitions(${target})
+    install(
+        TARGETS ${target}
+        EXPORT MbedTLSTargets
+        ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
+        LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+        RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+        PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ)
+    install(
+        TARGETS ${target}
+        EXPORT TF-PSA-CryptoTargets
+        ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
+        LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+        RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+        PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ)
+endforeach(target)
diff --git a/deps/LIEF/third-party/mbedtls/library/alignment.h b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/core/alignment.h
similarity index 100%
rename from deps/LIEF/third-party/mbedtls/library/alignment.h
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/core/alignment.h
diff --git a/deps/LIEF/third-party/mbedtls/library/psa_crypto.c b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/core/psa_crypto.c
similarity index 92%
rename from deps/LIEF/third-party/mbedtls/library/psa_crypto.c
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/core/psa_crypto.c
index 9c28609d7e9..2d3b07ea242 100644
--- a/deps/LIEF/third-party/mbedtls/library/psa_crypto.c
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/core/psa_crypto.c
@@ -6,15 +6,12 @@
  *  SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
  */

-#include "common.h"
+#include "tf_psa_crypto_common.h"
 #include "psa_crypto_core_common.h"

 #if defined(MBEDTLS_PSA_CRYPTO_C)

-#if defined(MBEDTLS_PSA_CRYPTO_CONFIG)
 #include "check_crypto_config.h"
-#endif
-
 #include "psa/crypto.h"
 #include "psa/crypto_values.h"

@@ -29,9 +26,6 @@
 #include "psa_crypto_mac.h"
 #include "psa_crypto_rsa.h"
 #include "psa_crypto_ecp.h"
-#if defined(MBEDTLS_PSA_CRYPTO_SE_C)
-#include "psa_crypto_se.h"
-#endif
 #include "psa_crypto_slot_management.h"
 /* Include internal declarations that are useful for implementing persistently
  * stored keys. */
@@ -43,35 +37,40 @@
 #include <string.h>
 #include "mbedtls/platform.h"

-#include "mbedtls/aes.h"
+#include "mbedtls/private/aes.h"
 #include "mbedtls/asn1.h"
 #include "mbedtls/asn1write.h"
-#include "mbedtls/bignum.h"
-#include "mbedtls/camellia.h"
-#include "mbedtls/chacha20.h"
-#include "mbedtls/chachapoly.h"
-#include "mbedtls/cipher.h"
-#include "mbedtls/ccm.h"
-#include "mbedtls/cmac.h"
+#include "mbedtls/private/bignum.h"
+#include "mbedtls/private/camellia.h"
+#include "mbedtls/private/chacha20.h"
+#include "mbedtls/private/chachapoly.h"
+#include "mbedtls/private/cipher.h"
+#include "mbedtls/private/ccm.h"
+#include "mbedtls/private/cmac.h"
 #include "mbedtls/constant_time.h"
-#include "mbedtls/des.h"
-#include "mbedtls/ecdh.h"
-#include "mbedtls/ecp.h"
-#include "mbedtls/entropy.h"
-#include "mbedtls/error.h"
-#include "mbedtls/gcm.h"
-#include "mbedtls/md5.h"
+#include "mbedtls/private/ecdh.h"
+#include "mbedtls/private/ecp.h"
+#include "mbedtls/private/entropy.h"
+#include "mbedtls/private/error_common.h"
+#include "mbedtls/private/gcm.h"
+#include "mbedtls/private/md5.h"
 #include "mbedtls/pk.h"
+#if defined(MBEDTLS_PK_HAVE_PRIVATE_HEADER)
+#include <mbedtls/private/pk_private.h>
+#endif /* MBEDTLS_PK_HAVE_PRIVATE_HEADER */
 #include "pk_wrap.h"
 #include "mbedtls/platform_util.h"
-#include "mbedtls/error.h"
-#include "mbedtls/ripemd160.h"
-#include "mbedtls/rsa.h"
-#include "mbedtls/sha1.h"
-#include "mbedtls/sha256.h"
-#include "mbedtls/sha512.h"
-#include "mbedtls/psa_util.h"
+#include "mbedtls/private/error_common.h"
+#include "mbedtls/private/ripemd160.h"
+#include "mbedtls/private/rsa.h"
+#include "mbedtls/private/sha1.h"
+#include "mbedtls/private/sha256.h"
+#include "mbedtls/private/sha512.h"
+#include "psa_util_internal.h"
 #include "mbedtls/threading.h"
+#include "threading_internal.h"
+
+#include "constant_time_internal.h"

 #if defined(MBEDTLS_PSA_BUILTIN_ALG_HKDF) ||          \
     defined(MBEDTLS_PSA_BUILTIN_ALG_HKDF_EXTRACT) ||  \
@@ -165,6 +164,27 @@ static uint8_t psa_get_drivers_initialized(void)
     return initialized;
 }

+int psa_is_ready_for_cipher(void)
+{
+    return psa_get_drivers_initialized();
+}
+
+/* Dummy version of a function removed in
+ * https://github.com/Mbed-TLS/TF-PSA-Crypto/pull/466
+ *
+ * The function needs to remain available during a transition period
+ * for the sake of the PSA simulator, which lives in Mbed TLS.
+ * Once TF-PSA-Crypto no longer needs the function,
+ * `tests/psa-client-server/psasim/src/psa_sim_crypto_server.c` will
+ * need to be updated to no longer need the function, and it will be
+ * possible to remove the corresponding RPC call altogether.
+ */
+int psa_can_do_hash(psa_algorithm_t hash_alg)
+{
+    (void) hash_alg;
+    return 1;
+}
+
 #define GUARD_MODULE_INITIALIZED        \
     if (psa_get_initialized() == 0)     \
     return PSA_ERROR_BAD_STATE;
@@ -281,20 +301,6 @@ static uint8_t psa_get_drivers_initialized(void)
 #endif /* !MBEDTLS_PSA_ASSUME_EXCLUSIVE_BUFFERS */


-int psa_can_do_hash(psa_algorithm_t hash_alg)
-{
-    (void) hash_alg;
-    return psa_get_drivers_initialized();
-}
-
-int psa_can_do_cipher(psa_key_type_t key_type, psa_algorithm_t cipher_alg)
-{
-    (void) key_type;
-    (void) cipher_alg;
-    return psa_get_drivers_initialized();
-}
-
-
 #if defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_DH_KEY_PAIR_IMPORT) ||       \
     defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_DH_PUBLIC_KEY) ||     \
     defined(PSA_WANT_KEY_TYPE_DH_KEY_PAIR_GENERATE)
@@ -331,6 +337,12 @@ static int psa_is_dh_key_size_valid(size_t bits)

 psa_status_t mbedtls_to_psa_error(int ret)
 {
+    /* Only legacy error codes need to be translated.
+     * Those are either a low-level error code (-127..-2)
+     * or a high-level error code (<= -0x1000). */
+    if (ret > -0x1000 && ret < -0x80) {
+        return (psa_status_t) ret;
+    }
     /* Mbed TLS error codes can combine a high-level error code and a
      * low-level error code. The low-level error usually reflects the
      * root cause better, so dispatch on that preferably. */
@@ -343,8 +355,6 @@ psa_status_t mbedtls_to_psa_error(int ret)
         case MBEDTLS_ERR_AES_INVALID_KEY_LENGTH:
         case MBEDTLS_ERR_AES_INVALID_INPUT_LENGTH:
             return PSA_ERROR_NOT_SUPPORTED;
-        case MBEDTLS_ERR_AES_BAD_INPUT_DATA:
-            return PSA_ERROR_INVALID_ARGUMENT;
 #endif

 #if defined(MBEDTLS_ASN1_PARSE_C) || defined(MBEDTLS_ASN1_WRITE_C)
@@ -354,50 +364,23 @@ psa_status_t mbedtls_to_psa_error(int ret)
         case MBEDTLS_ERR_ASN1_LENGTH_MISMATCH:
         case MBEDTLS_ERR_ASN1_INVALID_DATA:
             return PSA_ERROR_INVALID_ARGUMENT;
-        case MBEDTLS_ERR_ASN1_ALLOC_FAILED:
-            return PSA_ERROR_INSUFFICIENT_MEMORY;
-        case MBEDTLS_ERR_ASN1_BUF_TOO_SMALL:
-            return PSA_ERROR_BUFFER_TOO_SMALL;
 #endif

 #if defined(MBEDTLS_CAMELLIA_C)
-        case MBEDTLS_ERR_CAMELLIA_BAD_INPUT_DATA:
         case MBEDTLS_ERR_CAMELLIA_INVALID_INPUT_LENGTH:
             return PSA_ERROR_NOT_SUPPORTED;
 #endif

-#if defined(MBEDTLS_CCM_C)
-        case MBEDTLS_ERR_CCM_BAD_INPUT:
-            return PSA_ERROR_INVALID_ARGUMENT;
-        case MBEDTLS_ERR_CCM_AUTH_FAILED:
-            return PSA_ERROR_INVALID_SIGNATURE;
-#endif
-
-#if defined(MBEDTLS_CHACHA20_C)
-        case MBEDTLS_ERR_CHACHA20_BAD_INPUT_DATA:
-            return PSA_ERROR_INVALID_ARGUMENT;
-#endif
-
 #if defined(MBEDTLS_CHACHAPOLY_C)
         case MBEDTLS_ERR_CHACHAPOLY_BAD_STATE:
             return PSA_ERROR_BAD_STATE;
-        case MBEDTLS_ERR_CHACHAPOLY_AUTH_FAILED:
-            return PSA_ERROR_INVALID_SIGNATURE;
 #endif

 #if defined(MBEDTLS_CIPHER_C)
         case MBEDTLS_ERR_CIPHER_FEATURE_UNAVAILABLE:
             return PSA_ERROR_NOT_SUPPORTED;
-        case MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA:
-            return PSA_ERROR_INVALID_ARGUMENT;
-        case MBEDTLS_ERR_CIPHER_ALLOC_FAILED:
-            return PSA_ERROR_INSUFFICIENT_MEMORY;
-        case MBEDTLS_ERR_CIPHER_INVALID_PADDING:
-            return PSA_ERROR_INVALID_PADDING;
         case MBEDTLS_ERR_CIPHER_FULL_BLOCK_EXPECTED:
             return PSA_ERROR_INVALID_ARGUMENT;
-        case MBEDTLS_ERR_CIPHER_AUTH_FAILED:
-            return PSA_ERROR_INVALID_SIGNATURE;
         case MBEDTLS_ERR_CIPHER_INVALID_CONTEXT:
             return PSA_ERROR_CORRUPTION_DETECTED;
 #endif
@@ -415,25 +398,11 @@ psa_status_t mbedtls_to_psa_error(int ret)
             return PSA_ERROR_INSUFFICIENT_ENTROPY;
 #endif

-#if defined(MBEDTLS_DES_C)
-        case MBEDTLS_ERR_DES_INVALID_INPUT_LENGTH:
-            return PSA_ERROR_NOT_SUPPORTED;
-#endif
-
         case MBEDTLS_ERR_ENTROPY_NO_SOURCES_DEFINED:
         case MBEDTLS_ERR_ENTROPY_NO_STRONG_SOURCE:
         case MBEDTLS_ERR_ENTROPY_SOURCE_FAILED:
             return PSA_ERROR_INSUFFICIENT_ENTROPY;

-#if defined(MBEDTLS_GCM_C)
-        case MBEDTLS_ERR_GCM_AUTH_FAILED:
-            return PSA_ERROR_INVALID_SIGNATURE;
-        case MBEDTLS_ERR_GCM_BUFFER_TOO_SMALL:
-            return PSA_ERROR_BUFFER_TOO_SMALL;
-        case MBEDTLS_ERR_GCM_BAD_INPUT:
-            return PSA_ERROR_INVALID_ARGUMENT;
-#endif
-
 #if !defined(MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG) &&        \
             defined(MBEDTLS_PSA_HMAC_DRBG_MD_TYPE)
         /* Only check HMAC_DRBG error codes if underlying mbedtls_xxx
@@ -450,10 +419,6 @@ psa_status_t mbedtls_to_psa_error(int ret)
 #if defined(MBEDTLS_MD_LIGHT)
         case MBEDTLS_ERR_MD_FEATURE_UNAVAILABLE:
             return PSA_ERROR_NOT_SUPPORTED;
-        case MBEDTLS_ERR_MD_BAD_INPUT_DATA:
-            return PSA_ERROR_INVALID_ARGUMENT;
-        case MBEDTLS_ERR_MD_ALLOC_FAILED:
-            return PSA_ERROR_INSUFFICIENT_MEMORY;
 #if defined(MBEDTLS_FS_IO)
         case MBEDTLS_ERR_MD_FILE_IO_ERROR:
             return PSA_ERROR_STORAGE_FAILURE;
@@ -465,27 +430,18 @@ psa_status_t mbedtls_to_psa_error(int ret)
         case MBEDTLS_ERR_MPI_FILE_IO_ERROR:
             return PSA_ERROR_STORAGE_FAILURE;
 #endif
-        case MBEDTLS_ERR_MPI_BAD_INPUT_DATA:
-            return PSA_ERROR_INVALID_ARGUMENT;
         case MBEDTLS_ERR_MPI_INVALID_CHARACTER:
             return PSA_ERROR_INVALID_ARGUMENT;
-        case MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL:
-            return PSA_ERROR_BUFFER_TOO_SMALL;
         case MBEDTLS_ERR_MPI_NEGATIVE_VALUE:
             return PSA_ERROR_INVALID_ARGUMENT;
         case MBEDTLS_ERR_MPI_DIVISION_BY_ZERO:
             return PSA_ERROR_INVALID_ARGUMENT;
         case MBEDTLS_ERR_MPI_NOT_ACCEPTABLE:
             return PSA_ERROR_INVALID_ARGUMENT;
-        case MBEDTLS_ERR_MPI_ALLOC_FAILED:
-            return PSA_ERROR_INSUFFICIENT_MEMORY;
 #endif

 #if defined(MBEDTLS_PK_C)
-        case MBEDTLS_ERR_PK_ALLOC_FAILED:
-            return PSA_ERROR_INSUFFICIENT_MEMORY;
         case MBEDTLS_ERR_PK_TYPE_MISMATCH:
-        case MBEDTLS_ERR_PK_BAD_INPUT_DATA:
             return PSA_ERROR_INVALID_ARGUMENT;
 #if defined(MBEDTLS_PSA_CRYPTO_STORAGE_C) || defined(MBEDTLS_FS_IO) || \
             defined(MBEDTLS_PSA_ITS_FILE_C)
@@ -506,10 +462,6 @@ psa_status_t mbedtls_to_psa_error(int ret)
         case MBEDTLS_ERR_PK_UNKNOWN_NAMED_CURVE:
         case MBEDTLS_ERR_PK_FEATURE_UNAVAILABLE:
             return PSA_ERROR_NOT_SUPPORTED;
-        case MBEDTLS_ERR_PK_SIG_LEN_MISMATCH:
-            return PSA_ERROR_INVALID_SIGNATURE;
-        case MBEDTLS_ERR_PK_BUFFER_TOO_SMALL:
-            return PSA_ERROR_BUFFER_TOO_SMALL;
 #endif

         case MBEDTLS_ERR_PLATFORM_HW_ACCEL_FAILED:
@@ -518,10 +470,6 @@ psa_status_t mbedtls_to_psa_error(int ret)
             return PSA_ERROR_NOT_SUPPORTED;

 #if defined(MBEDTLS_RSA_C)
-        case MBEDTLS_ERR_RSA_BAD_INPUT_DATA:
-            return PSA_ERROR_INVALID_ARGUMENT;
-        case MBEDTLS_ERR_RSA_INVALID_PADDING:
-            return PSA_ERROR_INVALID_PADDING;
         case MBEDTLS_ERR_RSA_KEY_GEN_FAILED:
             return PSA_ERROR_HARDWARE_FAILURE;
         case MBEDTLS_ERR_RSA_KEY_CHECK_FAILED:
@@ -529,27 +477,15 @@ psa_status_t mbedtls_to_psa_error(int ret)
         case MBEDTLS_ERR_RSA_PUBLIC_FAILED:
         case MBEDTLS_ERR_RSA_PRIVATE_FAILED:
             return PSA_ERROR_CORRUPTION_DETECTED;
-        case MBEDTLS_ERR_RSA_VERIFY_FAILED:
-            return PSA_ERROR_INVALID_SIGNATURE;
-        case MBEDTLS_ERR_RSA_OUTPUT_TOO_LARGE:
-            return PSA_ERROR_BUFFER_TOO_SMALL;
         case MBEDTLS_ERR_RSA_RNG_FAILED:
             return PSA_ERROR_INSUFFICIENT_ENTROPY;
 #endif

 #if defined(MBEDTLS_ECP_LIGHT)
-        case MBEDTLS_ERR_ECP_BAD_INPUT_DATA:
         case MBEDTLS_ERR_ECP_INVALID_KEY:
             return PSA_ERROR_INVALID_ARGUMENT;
-        case MBEDTLS_ERR_ECP_BUFFER_TOO_SMALL:
-            return PSA_ERROR_BUFFER_TOO_SMALL;
         case MBEDTLS_ERR_ECP_FEATURE_UNAVAILABLE:
             return PSA_ERROR_NOT_SUPPORTED;
-        case MBEDTLS_ERR_ECP_SIG_LEN_MISMATCH:
-        case MBEDTLS_ERR_ECP_VERIFY_FAILED:
-            return PSA_ERROR_INVALID_SIGNATURE;
-        case MBEDTLS_ERR_ECP_ALLOC_FAILED:
-            return PSA_ERROR_INSUFFICIENT_MEMORY;
         case MBEDTLS_ERR_ECP_RANDOM_FAILED:
             return PSA_ERROR_INSUFFICIENT_ENTROPY;

@@ -638,13 +574,6 @@ psa_status_t psa_validate_unstructured_key_bit_size(psa_key_type_t type,
             }
             break;
 #endif
-#if defined(PSA_WANT_KEY_TYPE_DES)
-        case PSA_KEY_TYPE_DES:
-            if (bits != 64 && bits != 128 && bits != 192) {
-                return PSA_ERROR_INVALID_ARGUMENT;
-            }
-            break;
-#endif
 #if defined(PSA_WANT_KEY_TYPE_CHACHA20)
         case PSA_KEY_TYPE_CHACHA20:
             if (bits != 256) {
@@ -993,6 +922,19 @@ static int psa_key_algorithm_permits(psa_key_type_t key_type,
         return PSA_ALG_KEY_AGREEMENT_GET_BASE(requested_alg) ==
                policy_alg;
     }
+
+    if (policy_alg == PSA_ALG_JPAKE_BETA &&
+        PSA_ALG_IS_JPAKE(requested_alg)) {
+        /* Support the legacy encoding of JPAKE (from Mbed TLS 3.x) in
+         * key policies. This legacy encoding doesn't specify a hash,
+         * so allow any hash algorithm for the operation. We do this
+         * for the sake of persistent keys that were created with
+         * Mbed TLS 3.x. To keep the implementation and the tests simpler,
+         * we also allow this when creating new keys, but we don't make
+         * any promises about that. */
+        return 1;
+    }
+
     /* If it isn't explicitly permitted, it's forbidden. */
     return 0;
 }
@@ -1279,9 +1221,6 @@ psa_status_t psa_destroy_key(mbedtls_svc_key_id_t key)
     psa_key_slot_t *slot;
     psa_status_t status; /* status of the last operation */
     psa_status_t overall_status = PSA_SUCCESS;
-#if defined(MBEDTLS_PSA_CRYPTO_SE_C)
-    psa_se_drv_table_entry_t *driver;
-#endif /* MBEDTLS_PSA_CRYPTO_SE_C */

     if (mbedtls_svc_key_id_is_null(key)) {
         return PSA_SUCCESS;
@@ -1343,40 +1282,6 @@ psa_status_t psa_destroy_key(mbedtls_svc_key_id_t key)
         goto exit;
     }

-#if defined(MBEDTLS_PSA_CRYPTO_SE_C)
-    driver = psa_get_se_driver_entry(slot->attr.lifetime);
-    if (driver != NULL) {
-        /* For a key in a secure element, we need to do three things:
-         * remove the key file in internal storage, destroy the
-         * key inside the secure element, and update the driver's
-         * persistent data. Start a transaction that will encompass these
-         * three actions. */
-        psa_crypto_prepare_transaction(PSA_CRYPTO_TRANSACTION_DESTROY_KEY);
-        psa_crypto_transaction.key.lifetime = slot->attr.lifetime;
-        psa_crypto_transaction.key.slot = psa_key_slot_get_slot_number(slot);
-        psa_crypto_transaction.key.id = slot->attr.id;
-        status = psa_crypto_save_transaction();
-        if (status != PSA_SUCCESS) {
-            (void) psa_crypto_stop_transaction();
-            /* We should still try to destroy the key in the secure
-             * element and the key metadata in storage. This is especially
-             * important if the error is that the storage is full.
-             * But how to do it exactly without risking an inconsistent
-             * state after a reset?
-             * https://github.com/ARMmbed/mbed-crypto/issues/215
-             */
-            overall_status = status;
-            goto exit;
-        }
-
-        status = psa_destroy_se_key(driver,
-                                    psa_key_slot_get_slot_number(slot));
-        if (overall_status == PSA_SUCCESS) {
-            overall_status = status;
-        }
-    }
-#endif /* MBEDTLS_PSA_CRYPTO_SE_C */
-
 #if defined(MBEDTLS_PSA_CRYPTO_STORAGE_C)
     if (!PSA_KEY_LIFETIME_IS_VOLATILE(slot->attr.lifetime)) {
         /* Destroy the copy of the persistent key from storage.
@@ -1389,19 +1294,6 @@ psa_status_t psa_destroy_key(mbedtls_svc_key_id_t key)
     }
 #endif /* defined(MBEDTLS_PSA_CRYPTO_STORAGE_C) */

-#if defined(MBEDTLS_PSA_CRYPTO_SE_C)
-    if (driver != NULL) {
-        status = psa_save_se_persistent_data(driver);
-        if (overall_status == PSA_SUCCESS) {
-            overall_status = status;
-        }
-        status = psa_crypto_stop_transaction();
-        if (overall_status == PSA_SUCCESS) {
-            overall_status = status;
-        }
-    }
-#endif /* MBEDTLS_PSA_CRYPTO_SE_C */
-
 exit:
     /* Unregister from reading the slot. If we are the last active reader
      * then this will wipe the slot. */
@@ -1439,30 +1331,9 @@ psa_status_t psa_get_key_attributes(mbedtls_svc_key_id_t key,

     *attributes = slot->attr;

-#if defined(MBEDTLS_PSA_CRYPTO_SE_C)
-    if (psa_get_se_driver_entry(slot->attr.lifetime) != NULL) {
-        psa_set_key_slot_number(attributes,
-                                psa_key_slot_get_slot_number(slot));
-    }
-#endif /* MBEDTLS_PSA_CRYPTO_SE_C */
-
     return psa_unregister_read_under_mutex(slot);
 }

-#if defined(MBEDTLS_PSA_CRYPTO_SE_C)
-psa_status_t psa_get_key_slot_number(
-    const psa_key_attributes_t *attributes,
-    psa_key_slot_number_t *slot_number)
-{
-    if (attributes->has_slot_number) {
-        *slot_number = attributes->slot_number;
-        return PSA_SUCCESS;
-    } else {
-        return PSA_ERROR_INVALID_ARGUMENT;
-    }
-}
-#endif /* MBEDTLS_PSA_CRYPTO_SE_C */
-
 static psa_status_t psa_export_key_buffer_internal(const uint8_t *key_buffer,
                                                    size_t key_buffer_size,
                                                    uint8_t *data,
@@ -1664,6 +1535,166 @@ exit:
     return (status == PSA_SUCCESS) ? unlock_status : status;
 }

+/****************************************************************/
+/* Interruptible ECC Export Public-key */
+/****************************************************************/
+
+#if defined(MBEDTLS_ECP_RESTARTABLE)  && \
+    (defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_ECC_KEY_PAIR_IMPORT) || \
+    defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_ECC_KEY_PAIR_EXPORT) || \
+    defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_ECC_PUBLIC_KEY))
+static psa_status_t psa_export_public_key_iop_abort_internal(psa_export_public_key_iop_t *operation)
+{
+    psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED;
+
+    if (operation->id == 0) {
+        return PSA_SUCCESS;
+    }
+
+    status = mbedtls_psa_ecp_export_public_key_iop_abort(&operation->ctx);
+
+    memset(&operation->ctx, 0, sizeof(operation->ctx));
+
+    operation->id = 0;
+
+    return status;
+}
+#endif
+
+uint32_t psa_export_public_key_iop_get_num_ops(psa_export_public_key_iop_t *operation)
+{
+#if defined(MBEDTLS_ECP_RESTARTABLE) && \
+    (defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_ECC_KEY_PAIR_IMPORT) || \
+    defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_ECC_KEY_PAIR_EXPORT) || \
+    defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_ECC_PUBLIC_KEY))
+    return operation->num_ops;
+#else
+    (void) operation;
+    return 0;
+#endif
+}
+
+psa_status_t psa_export_public_key_iop_setup(psa_export_public_key_iop_t *operation,
+                                             mbedtls_svc_key_id_t key)
+{
+#if defined(MBEDTLS_ECP_RESTARTABLE)  && \
+    (defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_ECC_KEY_PAIR_IMPORT) || \
+    defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_ECC_KEY_PAIR_EXPORT) || \
+    defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_ECC_PUBLIC_KEY))
+
+    psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED;
+    psa_status_t unlock_status = PSA_ERROR_CORRUPTION_DETECTED;
+    psa_key_attributes_t key_attributes;
+    psa_key_type_t key_type;
+    psa_key_slot_t *slot = NULL;
+
+    if (operation->id != 0 || operation->error_occurred) {
+        return PSA_ERROR_BAD_STATE;
+    }
+
+    /* We only support the builtin/Mbed TLS driver for now. */
+    operation->id = PSA_CRYPTO_MBED_TLS_DRIVER_ID;
+
+    operation->num_ops = 0;
+
+    status = psa_get_and_lock_transparent_key_slot_with_policy(key, &slot,
+                                                               0,
+                                                               0);
+    if (status != PSA_SUCCESS) {
+        goto exit;
+    }
+
+    key_attributes = slot->attr;
+
+    key_type = psa_get_key_type(&key_attributes);
+
+    if (!PSA_KEY_TYPE_IS_ASYMMETRIC(key_type)) {
+        status = PSA_ERROR_INVALID_ARGUMENT;
+        goto exit;
+    }
+
+    if (!PSA_KEY_TYPE_IS_ECC(key_type)) {
+        status = PSA_ERROR_NOT_SUPPORTED;
+        goto exit;
+    }
+
+    status = mbedtls_psa_ecp_export_public_key_iop_setup(&operation->ctx, slot->key.data,
+                                                         slot->key.bytes, &key_attributes);
+
+exit:
+    unlock_status = psa_unregister_read_under_mutex(slot);
+    if (status != PSA_SUCCESS) {
+        psa_export_public_key_iop_abort_internal(operation);
+        operation->error_occurred = 1;
+        return status;
+    }
+    return unlock_status;
+#else
+    (void) operation;
+    (void) key;
+    return PSA_ERROR_NOT_SUPPORTED;
+#endif
+}
+
+psa_status_t psa_export_public_key_iop_complete(psa_export_public_key_iop_t *operation,
+                                                uint8_t *data,
+                                                size_t data_size,
+                                                size_t *data_length)
+{
+#if defined(MBEDTLS_ECP_RESTARTABLE)  && \
+    (defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_ECC_KEY_PAIR_IMPORT) || \
+    defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_ECC_KEY_PAIR_EXPORT) || \
+    defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_ECC_PUBLIC_KEY))
+    psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED;
+
+    if (operation->id == 0 || operation->error_occurred) {
+        return PSA_ERROR_BAD_STATE;
+    }
+
+    status = mbedtls_psa_ecp_export_public_key_iop_complete(&operation->ctx, data, data_size,
+                                                            data_length);
+
+    operation->num_ops = mbedtls_psa_ecp_export_public_key_iop_get_num_ops(&operation->ctx);
+
+    if (status != PSA_OPERATION_INCOMPLETE) {
+        psa_export_public_key_iop_abort_internal(operation);
+
+        if (status != PSA_SUCCESS) {
+            operation->error_occurred = 1;
+        }
+    }
+
+    return status;
+#else
+    (void) operation;
+    (void) data;
+    (void) data_size;
+    (void) data_length;
+
+    return PSA_ERROR_BAD_STATE;
+#endif
+}
+
+psa_status_t psa_export_public_key_iop_abort(psa_export_public_key_iop_t *operation)
+{
+#if defined(MBEDTLS_ECP_RESTARTABLE)  && \
+    (defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_ECC_KEY_PAIR_IMPORT) || \
+    defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_ECC_KEY_PAIR_EXPORT) || \
+    defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_ECC_PUBLIC_KEY))
+    psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED;
+
+    status = psa_export_public_key_iop_abort_internal(operation);
+
+    operation->num_ops = 0;
+    operation->error_occurred = 0;
+
+    return status;
+#else
+    (void) operation;
+    return PSA_SUCCESS;
+#endif
+}
+
 /** Validate that a key policy is internally well-formed.
  *
  * This function only rejects invalid policies. It does not validate the
@@ -1672,6 +1703,17 @@ exit:
  */
 static psa_status_t psa_validate_key_policy(const psa_key_policy_t *policy)
 {
+    /* Do not allow PSA_KEY_USAGE_DERIVE_PUBLIC until its numerical value
+     * is enshrined in an official specification. This way, it's ok if
+     * the value changes. Once we start allowing persistent keys with
+     * a numerical value, we're locked into the meaning of that numerical
+     * value, so don't do that if there's a risk that the value might change.
+     *
+     * We introduced PSA_KEY_USAGE_DERIVE_PUBLIC for the sake of
+     * mbedtls_pk_can_do_psa() and psa_check_key_usage(). At this point,
+     * it is never checked by an operation, so there is no compelling
+     * reason to set this flag in a key policy.
+     */
     if ((policy->usage & ~(PSA_KEY_USAGE_EXPORT |
                            PSA_KEY_USAGE_COPY |
                            PSA_KEY_USAGE_ENCRYPT |
@@ -1697,23 +1739,14 @@ static psa_status_t psa_validate_key_policy(const psa_key_policy_t *policy)
  * Call this function early in the key creation process.
  *
  * \param[in] attributes    Key attributes for the new key.
- * \param[out] p_drv        On any return, the driver for the key, if any.
- *                          NULL for a transparent key.
  *
  */
-static psa_status_t psa_validate_key_attributes(
-    const psa_key_attributes_t *attributes,
-    psa_se_drv_table_entry_t **p_drv)
+static psa_status_t psa_validate_key_attributes(const psa_key_attributes_t *attributes)
 {
     psa_status_t status = PSA_ERROR_INVALID_ARGUMENT;
     psa_key_lifetime_t lifetime = psa_get_key_lifetime(attributes);
     mbedtls_svc_key_id_t key = psa_get_key_id(attributes);

-    status = psa_validate_key_location(lifetime, p_drv);
-    if (status != PSA_SUCCESS) {
-        return status;
-    }
-
     status = psa_validate_key_persistence(lifetime);
     if (status != PSA_SUCCESS) {
         return status;
@@ -1764,11 +1797,8 @@ static psa_status_t psa_validate_key_attributes(
  * It is the responsibility of the caller to change the slot's state to
  * PSA_SLOT_EMPTY/FULL once key creation has finished.
  *
- * \param method            An identification of the calling function.
  * \param[in] attributes    Key attributes for the new key.
  * \param[out] p_slot       On success, a pointer to the prepared slot.
- * \param[out] p_drv        On any return, the driver for the key, if any.
- *                          NULL for a transparent key.
  *
  * \retval #PSA_SUCCESS
  *         The key slot is ready to receive key material.
@@ -1776,17 +1806,12 @@ static psa_status_t psa_validate_key_attributes(
  *         You must call psa_fail_key_creation() to wipe and free the slot.
  */
 static psa_status_t psa_start_key_creation(
-    psa_key_creation_method_t method,
     const psa_key_attributes_t *attributes,
-    psa_key_slot_t **p_slot,
-    psa_se_drv_table_entry_t **p_drv)
+    psa_key_slot_t **p_slot)
 {
     psa_status_t status;

-    (void) method;
-    *p_drv = NULL;
-
-    status = psa_validate_key_attributes(attributes, p_drv);
+    status = psa_validate_key_attributes(attributes);
     if (status != PSA_SUCCESS) {
         return status;
     }
@@ -1827,57 +1852,6 @@ static psa_status_t psa_start_key_creation(
 #endif
     }

-#if defined(MBEDTLS_PSA_CRYPTO_SE_C)
-    /* For a key in a secure element, we need to do three things
-     * when creating or registering a persistent key:
-     * create the key file in internal storage, create the
-     * key inside the secure element, and update the driver's
-     * persistent data. This is done by starting a transaction that will
-     * encompass these three actions.
-     * For registering a volatile key, we just need to find an appropriate
-     * slot number inside the SE. Since the key is designated volatile, creating
-     * a transaction is not required. */
-    /* The first thing to do is to find a slot number for the new key.
-     * We save the slot number in persistent storage as part of the
-     * transaction data. It will be needed to recover if the power
-     * fails during the key creation process, to clean up on the secure
-     * element side after restarting. Obtaining a slot number from the
-     * secure element driver updates its persistent state, but we do not yet
-     * save the driver's persistent state, so that if the power fails,
-     * we can roll back to a state where the key doesn't exist. */
-    if (*p_drv != NULL) {
-        psa_key_slot_number_t slot_number;
-        status = psa_find_se_slot_for_key(attributes, method, *p_drv,
-                                          &slot_number);
-        if (status != PSA_SUCCESS) {
-            return status;
-        }
-
-        if (!PSA_KEY_LIFETIME_IS_VOLATILE(attributes->lifetime)) {
-            psa_crypto_prepare_transaction(PSA_CRYPTO_TRANSACTION_CREATE_KEY);
-            psa_crypto_transaction.key.lifetime = slot->attr.lifetime;
-            psa_crypto_transaction.key.slot = slot_number;
-            psa_crypto_transaction.key.id = slot->attr.id;
-            status = psa_crypto_save_transaction();
-            if (status != PSA_SUCCESS) {
-                (void) psa_crypto_stop_transaction();
-                return status;
-            }
-        }
-
-        status = psa_copy_key_material_into_slot(
-            slot, (uint8_t *) (&slot_number), sizeof(slot_number));
-        if (status != PSA_SUCCESS) {
-            return status;
-        }
-    }
-
-    if (*p_drv == NULL && method == PSA_KEY_CREATION_REGISTER) {
-        /* Key registration only makes sense with a secure element. */
-        return PSA_ERROR_INVALID_ARGUMENT;
-    }
-#endif /* MBEDTLS_PSA_CRYPTO_SE_C */
-
     return PSA_SUCCESS;
 }

@@ -1894,8 +1868,6 @@ static psa_status_t psa_start_key_creation(
  * key creation process.
  *
  * \param[in,out] slot  Pointer to the slot with key material.
- * \param[in] driver    The secure element driver for the key,
- *                      or NULL for a transparent key.
  * \param[out] key      On success, identifier of the key. Note that the
  *                      key identifier is also stored in the key slot.
  *
@@ -1913,12 +1885,10 @@ static psa_status_t psa_start_key_creation(
  */
 static psa_status_t psa_finish_key_creation(
     psa_key_slot_t *slot,
-    psa_se_drv_table_entry_t *driver,
     mbedtls_svc_key_id_t *key)
 {
     psa_status_t status = PSA_SUCCESS;
     (void) slot;
-    (void) driver;

 #if defined(MBEDTLS_THREADING_C)
     PSA_THREADING_CHK_RET(mbedtls_mutex_lock(
@@ -1927,54 +1897,14 @@ static psa_status_t psa_finish_key_creation(

 #if defined(MBEDTLS_PSA_CRYPTO_STORAGE_C)
     if (!PSA_KEY_LIFETIME_IS_VOLATILE(slot->attr.lifetime)) {
-#if defined(MBEDTLS_PSA_CRYPTO_SE_C)
-        if (driver != NULL) {
-            psa_se_key_data_storage_t data;
-            psa_key_slot_number_t slot_number =
-                psa_key_slot_get_slot_number(slot);
-
-            MBEDTLS_STATIC_ASSERT(sizeof(slot_number) ==
-                                  sizeof(data.slot_number),
-                                  "Slot number size does not match psa_se_key_data_storage_t");
-
-            memcpy(&data.slot_number, &slot_number, sizeof(slot_number));
-            status = psa_save_persistent_key(&slot->attr,
-                                             (uint8_t *) &data,
-                                             sizeof(data));
-        } else
-#endif /* MBEDTLS_PSA_CRYPTO_SE_C */
-        {
-            /* Key material is saved in export representation in the slot, so
-             * just pass the slot buffer for storage. */
-            status = psa_save_persistent_key(&slot->attr,
-                                             slot->key.data,
-                                             slot->key.bytes);
-        }
+        /* Key material is saved in export representation in the slot, so
+         * just pass the slot buffer for storage. */
+        status = psa_save_persistent_key(&slot->attr,
+                                         slot->key.data,
+                                         slot->key.bytes);
     }
 #endif /* defined(MBEDTLS_PSA_CRYPTO_STORAGE_C) */

-#if defined(MBEDTLS_PSA_CRYPTO_SE_C)
-    /* Finish the transaction for a key creation. This does not
-     * happen when registering an existing key. Detect this case
-     * by checking whether a transaction is in progress (actual
-     * creation of a persistent key in a secure element requires a transaction,
-     * but registration or volatile key creation doesn't use one). */
-    if (driver != NULL &&
-        psa_crypto_transaction.unknown.type == PSA_CRYPTO_TRANSACTION_CREATE_KEY) {
-        status = psa_save_se_persistent_data(driver);
-        if (status != PSA_SUCCESS) {
-            psa_destroy_persistent_key(slot->attr.id);
-
-#if defined(MBEDTLS_THREADING_C)
-            PSA_THREADING_CHK_RET(mbedtls_mutex_unlock(
-                                      &mbedtls_threading_key_slot_mutex));
-#endif
-            return status;
-        }
-        status = psa_crypto_stop_transaction();
-    }
-#endif /* MBEDTLS_PSA_CRYPTO_SE_C */
-
     if (status == PSA_SUCCESS) {
         *key = slot->attr.id;
         status = psa_key_slot_state_transition(slot, PSA_SLOT_FILLING,
@@ -2000,14 +1930,9 @@ static psa_status_t psa_finish_key_creation(
  * of this function. Sets the slot's state to PSA_SLOT_EMPTY.
  *
  * \param[in,out] slot  Pointer to the slot with key material.
- * \param[in] driver    The secure element driver for the key,
- *                      or NULL for a transparent key.
  */
-static void psa_fail_key_creation(psa_key_slot_t *slot,
-                                  psa_se_drv_table_entry_t *driver)
+static void psa_fail_key_creation(psa_key_slot_t *slot)
 {
-    (void) driver;
-
     if (slot == NULL) {
         return;
     }
@@ -2019,23 +1944,6 @@ static void psa_fail_key_creation(psa_key_slot_t *slot,
     mbedtls_mutex_lock(&mbedtls_threading_key_slot_mutex);
 #endif

-#if defined(MBEDTLS_PSA_CRYPTO_SE_C)
-    /* TODO: If the key has already been created in the secure
-     * element, and the failure happened later (when saving metadata
-     * to internal storage), we need to destroy the key in the secure
-     * element.
-     * https://github.com/ARMmbed/mbed-crypto/issues/217
-     */
-
-    /* Abort the ongoing transaction if any (there may not be one if
-     * the creation process failed before starting one, or if the
-     * key creation is a registration of a key in a secure element).
-     * Earlier functions must already have done what it takes to undo any
-     * partial creation. All that's left is to update the transaction data
-     * itself. */
-    (void) psa_crypto_stop_transaction();
-#endif /* MBEDTLS_PSA_CRYPTO_SE_C */
-
     psa_wipe_key_slot(slot);

 #if defined(MBEDTLS_THREADING_C)
@@ -2079,7 +1987,6 @@ psa_status_t psa_import_key(const psa_key_attributes_t *attributes,
     psa_status_t status;
     LOCAL_INPUT_DECLARE(data_external, data);
     psa_key_slot_t *slot = NULL;
-    psa_se_drv_table_entry_t *driver = NULL;
     size_t bits;
     size_t storage_size = data_length;

@@ -2099,16 +2006,13 @@ psa_status_t psa_import_key(const psa_key_attributes_t *attributes,

     LOCAL_INPUT_ALLOC(data_external, data_length, data);

-    status = psa_start_key_creation(PSA_KEY_CREATION_IMPORT, attributes,
-                                    &slot, &driver);
+    status = psa_start_key_creation(attributes, &slot);
     if (status != PSA_SUCCESS) {
         goto exit;
     }

     /* In the case of a transparent key or an opaque key stored in local
-     * storage ( thus not in the case of importing a key in a secure element
-     * with storage ( MBEDTLS_PSA_CRYPTO_SE_C ) ),we have to allocate a
-     * buffer to hold the imported key material. */
+     * storage,we have to allocate a buffer to hold the imported key material. */
     if (slot->key.bytes == 0) {
         if (psa_key_lifetime_is_external(attributes->lifetime)) {
             status = psa_driver_wrapper_get_key_buffer_size_from_key_data(
@@ -2151,76 +2055,28 @@ psa_status_t psa_import_key(const psa_key_attributes_t *attributes,
         goto exit;
     }

-    status = psa_finish_key_creation(slot, driver, key);
+    status = psa_finish_key_creation(slot, key);
 exit:
     LOCAL_INPUT_FREE(data_external, data);
     if (status != PSA_SUCCESS) {
-        psa_fail_key_creation(slot, driver);
+        psa_fail_key_creation(slot);
     }

     return status;
 }

-#if defined(MBEDTLS_PSA_CRYPTO_SE_C)
-psa_status_t mbedtls_psa_register_se_key(
-    const psa_key_attributes_t *attributes)
+psa_status_t psa_copy_key(mbedtls_svc_key_id_t source_key,
+                          const psa_key_attributes_t *specified_attributes,
+                          mbedtls_svc_key_id_t *target_key)
 {
-    psa_status_t status;
-    psa_key_slot_t *slot = NULL;
-    psa_se_drv_table_entry_t *driver = NULL;
-    mbedtls_svc_key_id_t key = MBEDTLS_SVC_KEY_ID_INIT;
-
-    /* Leaving attributes unspecified is not currently supported.
-     * It could make sense to query the key type and size from the
-     * secure element, but not all secure elements support this
-     * and the driver HAL doesn't currently support it. */
-    if (psa_get_key_type(attributes) == PSA_KEY_TYPE_NONE) {
-        return PSA_ERROR_NOT_SUPPORTED;
-    }
-    if (psa_get_key_bits(attributes) == 0) {
-        return PSA_ERROR_NOT_SUPPORTED;
-    }
+    psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED;
+    psa_status_t unlock_status = PSA_ERROR_CORRUPTION_DETECTED;
+    psa_key_slot_t *source_slot = NULL;
+    psa_key_slot_t *target_slot = NULL;
+    psa_key_attributes_t actual_attributes = *specified_attributes;
+    size_t storage_size = 0;

-    /* Not usable with volatile keys, even with an appropriate location,
-     * due to the API design.
-     * https://github.com/Mbed-TLS/mbedtls/issues/9253
-     */
-    if (PSA_KEY_LIFETIME_IS_VOLATILE(psa_get_key_lifetime(attributes))) {
-        return PSA_ERROR_INVALID_ARGUMENT;
-    }
-
-    status = psa_start_key_creation(PSA_KEY_CREATION_REGISTER, attributes,
-                                    &slot, &driver);
-    if (status != PSA_SUCCESS) {
-        goto exit;
-    }
-
-    status = psa_finish_key_creation(slot, driver, &key);
-
-exit:
-    if (status != PSA_SUCCESS) {
-        psa_fail_key_creation(slot, driver);
-    }
-
-    /* Registration doesn't keep the key in RAM. */
-    psa_close_key(key);
-    return status;
-}
-#endif /* MBEDTLS_PSA_CRYPTO_SE_C */
-
-psa_status_t psa_copy_key(mbedtls_svc_key_id_t source_key,
-                          const psa_key_attributes_t *specified_attributes,
-                          mbedtls_svc_key_id_t *target_key)
-{
-    psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED;
-    psa_status_t unlock_status = PSA_ERROR_CORRUPTION_DETECTED;
-    psa_key_slot_t *source_slot = NULL;
-    psa_key_slot_t *target_slot = NULL;
-    psa_key_attributes_t actual_attributes = *specified_attributes;
-    psa_se_drv_table_entry_t *driver = NULL;
-    size_t storage_size = 0;
-
-    *target_key = MBEDTLS_SVC_KEY_ID_INIT;
+    *target_key = MBEDTLS_SVC_KEY_ID_INIT;

     status = psa_get_and_lock_key_slot_with_policy(
         source_key, &source_slot, PSA_KEY_USAGE_COPY, 0);
@@ -2250,8 +2106,7 @@ psa_status_t psa_copy_key(mbedtls_svc_key_id_t source_key,
         goto exit;
     }

-    status = psa_start_key_creation(PSA_KEY_CREATION_COPY, &actual_attributes,
-                                    &target_slot, &driver);
+    status = psa_start_key_creation(&actual_attributes, &target_slot);
     if (status != PSA_SUCCESS) {
         goto exit;
     }
@@ -2302,10 +2157,10 @@ psa_status_t psa_copy_key(mbedtls_svc_key_id_t source_key,
             goto exit;
         }
     }
-    status = psa_finish_key_creation(target_slot, driver, target_key);
+    status = psa_finish_key_creation(target_slot, target_key);
 exit:
     if (status != PSA_SUCCESS) {
-        psa_fail_key_creation(target_slot, driver);
+        psa_fail_key_creation(target_slot);
     }

     unlock_status = psa_unregister_read_under_mutex(source_slot);
@@ -4692,12 +4547,26 @@ psa_status_t psa_cipher_finish(psa_cipher_operation_t *operation,
                                               output_length);

 exit:
-    if (status == PSA_SUCCESS) {
-        status = psa_cipher_abort(operation);
-    } else {
-        *output_length = 0;
-        (void) psa_cipher_abort(operation);
-    }
+    /* C99 doesn't allow a declaration to follow a label */;
+    psa_status_t abort_status = psa_cipher_abort(operation);
+    /* Normally abort shouldn't fail unless the operation is in a bad
+     * state, in which case we'd expect finish to fail with the same error.
+     * So it doesn't matter much which call's error code we pick when both
+     * fail. However, in unauthenticated decryption specifically, the
+     * distinction between PSA_SUCCESS and PSA_ERROR_INVALID_PADDING is
+     * security-sensitive (risk of a padding oracle attack), so here we
+     * must not have a code path that depends on the value of status. */
+    if (abort_status != PSA_SUCCESS) {
+        status = abort_status;
+    }
+
+    /* Set *output_length to 0 if status != PSA_SUCCESS, without
+     * leaking the value of status through a timing side channel
+     * (status == PSA_ERROR_INVALID_PADDING is sensitive when doing
+     * unpadded decryption, due to the risk of padding oracle attack). */
+    mbedtls_ct_condition_t success =
+        mbedtls_ct_bool_not(mbedtls_ct_bool(status));
+    *output_length = mbedtls_ct_size_if_else_0(success, *output_length);

     LOCAL_OUTPUT_FREE(output_external, output);

@@ -4841,13 +4710,17 @@ psa_status_t psa_cipher_decrypt(mbedtls_svc_key_id_t key,

 exit:
     unlock_status = psa_unregister_read_under_mutex(slot);
-    if (status == PSA_SUCCESS) {
+    if (unlock_status != PSA_SUCCESS) {
         status = unlock_status;
     }

-    if (status != PSA_SUCCESS) {
-        *output_length = 0;
-    }
+    /* Set *output_length to 0 if status != PSA_SUCCESS, without
+     * leaking the value of status through a timing side channel
+     * (status == PSA_ERROR_INVALID_PADDING is sensitive when doing
+     * unpadded decryption, due to the risk of padding oracle attack). */
+    mbedtls_ct_condition_t success =
+        mbedtls_ct_bool_not(mbedtls_ct_bool(status));
+    *output_length = mbedtls_ct_size_if_else_0(success, *output_length);

     LOCAL_INPUT_FREE(input_external, input);
     LOCAL_OUTPUT_FREE(output_external, output);
@@ -6329,21 +6202,6 @@ exit:
     return status;
 }

-#if defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_DES)
-static void psa_des_set_key_parity(uint8_t *data, size_t data_size)
-{
-    if (data_size >= 8) {
-        mbedtls_des_key_set_parity(data);
-    }
-    if (data_size >= 16) {
-        mbedtls_des_key_set_parity(data + 8);
-    }
-    if (data_size >= 24) {
-        mbedtls_des_key_set_parity(data + 16);
-    }
-}
-#endif /* MBEDTLS_PSA_BUILTIN_KEY_TYPE_DES */
-
 /*
  * ECC keys on a Weierstrass elliptic curve require the generation
  * of a private key which is an integer
@@ -6603,11 +6461,6 @@ static psa_status_t psa_generate_derived_key_internal(
         if (status != PSA_SUCCESS) {
             goto exit;
         }
-#if defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_DES)
-        if (slot->attr.type == PSA_KEY_TYPE_DES) {
-            psa_des_set_key_parity(data, bytes);
-        }
-#endif /* defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_DES) */
     } else {
         return PSA_ERROR_NOT_SUPPORTED;
     }
@@ -6666,7 +6519,6 @@ psa_status_t psa_key_derivation_output_key_custom(
 {
     psa_status_t status;
     psa_key_slot_t *slot = NULL;
-    psa_se_drv_table_entry_t *driver = NULL;

     *key = MBEDTLS_SVC_KEY_ID_INIT;

@@ -6689,43 +6541,22 @@ psa_status_t psa_key_derivation_output_key_custom(
         return PSA_ERROR_NOT_PERMITTED;
     }

-    status = psa_start_key_creation(PSA_KEY_CREATION_DERIVE, attributes,
-                                    &slot, &driver);
-#if defined(MBEDTLS_PSA_CRYPTO_SE_C)
-    if (driver != NULL) {
-        /* Deriving a key in a secure element is not implemented yet. */
-        status = PSA_ERROR_NOT_SUPPORTED;
-    }
-#endif /* MBEDTLS_PSA_CRYPTO_SE_C */
+    status = psa_start_key_creation(attributes, &slot);
     if (status == PSA_SUCCESS) {
         status = psa_generate_derived_key_internal(slot,
                                                    attributes->bits,
                                                    operation);
     }
     if (status == PSA_SUCCESS) {
-        status = psa_finish_key_creation(slot, driver, key);
+        status = psa_finish_key_creation(slot, key);
     }
     if (status != PSA_SUCCESS) {
-        psa_fail_key_creation(slot, driver);
+        psa_fail_key_creation(slot);
     }

     return status;
 }

-psa_status_t psa_key_derivation_output_key_ext(
-    const psa_key_attributes_t *attributes,
-    psa_key_derivation_operation_t *operation,
-    const psa_key_production_parameters_t *params,
-    size_t params_data_length,
-    mbedtls_svc_key_id_t *key)
-{
-    return psa_key_derivation_output_key_custom(
-        attributes, operation,
-        (const psa_custom_key_parameters_t *) params,
-        params->data, params_data_length,
-        key);
-}
-
 psa_status_t psa_key_derivation_output_key(
     const psa_key_attributes_t *attributes,
     psa_key_derivation_operation_t *operation,
@@ -6737,6 +6568,26 @@ psa_status_t psa_key_derivation_output_key(
                                                 key);
 }

+psa_status_t psa_key_derivation_verify_bytes(
+    psa_key_derivation_operation_t *operation,
+    const uint8_t *expected,
+    size_t expected_length)
+{
+    (void) operation;
+    (void) expected;
+    (void) expected_length;
+    return PSA_ERROR_NOT_SUPPORTED;
+}
+
+psa_status_t psa_key_derivation_verify_key(
+    psa_key_derivation_operation_t *operation,
+    psa_key_id_t expected)
+{
+    (void) operation;
+    (void) expected;
+    return PSA_ERROR_NOT_SUPPORTED;
+}
+

 /****************************************************************/
 /* Key derivation: operation management */
@@ -7221,14 +7072,11 @@ static psa_status_t psa_tls12_prf_psk_to_ms_set_key(
      * uint16 with the value N, and the PSK itself.
      *
      * mixed-PSK:
-     * In a DHE-PSK, RSA-PSK, ECDHE-PSK the premaster secret is formed as
-     * follows: concatenate a uint16 with the length of the other secret,
+     * In a ECDHE-PSK the premaster secret is formed as follows:
+     * concatenate a uint16 with the length of the other secret,
      * the other secret itself, uint16 with the length of PSK, and the
      * PSK itself.
-     * For details please check:
-     * - RFC 4279, Section 4 for the definition of RSA-PSK,
-     * - RFC 4279, Section 3 for the definition of DHE-PSK,
-     * - RFC 5489 for the definition of ECDHE-PSK.
+     * For details please check RFC 5489 for the definition of ECDHE-PSK.
      */

     if (prf->state == PSA_TLS12_PRF_STATE_OTHER_KEY_SET) {
@@ -7947,15 +7795,228 @@ exit:
     return (status == PSA_SUCCESS) ? unlock_status : status;
 }

+static psa_status_t validate_key_agreement_params(const psa_key_attributes_t *attributes,
+                                                  psa_algorithm_t alg)
+{
+    psa_key_type_t key_type;
+
+    if (!PSA_ALG_IS_RAW_KEY_AGREEMENT(alg)) {
+        return PSA_ERROR_NOT_SUPPORTED;
+    }
+
+    key_type = psa_get_key_type(attributes);
+    if (key_type != PSA_KEY_TYPE_DERIVE && key_type != PSA_KEY_TYPE_RAW_DATA
+        && key_type != PSA_KEY_TYPE_HMAC && key_type != PSA_KEY_TYPE_PASSWORD) {
+        return PSA_ERROR_INVALID_ARGUMENT;
+    }
+
+    return PSA_SUCCESS;
+}
+
+psa_status_t psa_key_agreement(mbedtls_svc_key_id_t private_key,
+                               const uint8_t *peer_key,
+                               size_t peer_key_length,
+                               psa_algorithm_t alg,
+                               const psa_key_attributes_t *attributes,
+                               mbedtls_svc_key_id_t *key)
+{
+    psa_status_t status;
+    uint8_t shared_secret[PSA_RAW_KEY_AGREEMENT_OUTPUT_MAX_SIZE];
+    size_t shared_secret_len;
+
+    *key = MBEDTLS_SVC_KEY_ID_INIT;
+
+    status = validate_key_agreement_params(attributes, alg);
+    if (status != PSA_SUCCESS) {
+        return status;
+    }
+
+    status = psa_raw_key_agreement(alg, private_key, peer_key, peer_key_length, shared_secret,
+                                   sizeof(shared_secret), &shared_secret_len);
+
+    if (status != PSA_SUCCESS) {
+        return status;
+    }
+
+    status = psa_import_key(attributes, shared_secret, shared_secret_len, key);
+
+    return status;
+}
+
+#if defined(MBEDTLS_ECP_RESTARTABLE) && \
+    defined(MBEDTLS_PSA_BUILTIN_ALG_ECDH)
+
+static psa_status_t psa_key_agreement_iop_abort_internal(psa_key_agreement_iop_t *operation)
+{
+    psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED;
+
+    if (operation->id == 0) {
+        return PSA_SUCCESS;
+    }
+
+    status = mbedtls_psa_key_agreement_iop_abort(&operation->mbedtls_ctx);
+
+    operation->id = 0;
+
+    return status;
+}
+#endif
+
+uint32_t psa_key_agreement_iop_get_num_ops(
+    psa_key_agreement_iop_t *operation)
+{
+#if defined(MBEDTLS_ECP_RESTARTABLE) && \
+    defined(MBEDTLS_PSA_BUILTIN_ALG_ECDH)
+    return operation->num_ops;
+#else
+    (void) operation;
+    return 0;
+#endif
+}
+
+psa_status_t psa_key_agreement_iop_setup(
+    psa_key_agreement_iop_t *operation,
+    mbedtls_svc_key_id_t private_key,
+    const uint8_t *peer_key,
+    size_t peer_key_length,
+    psa_algorithm_t alg,
+    const psa_key_attributes_t *attributes)
+{
+#if defined(MBEDTLS_ECP_RESTARTABLE) && \
+    defined(MBEDTLS_PSA_BUILTIN_ALG_ECDH)
+    psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED;
+    psa_status_t unlock_status = PSA_ERROR_CORRUPTION_DETECTED;
+    psa_key_slot_t *slot = NULL;
+
+    if (operation->id != 0 || operation->error_occurred) {
+        return PSA_ERROR_BAD_STATE;
+    }
+
+    status = validate_key_agreement_params(attributes, alg);
+    if (status != PSA_SUCCESS) {
+        operation->error_occurred = 1;
+        return status;
+    }
+
+    status = psa_get_and_lock_transparent_key_slot_with_policy(
+        private_key, &slot, PSA_KEY_USAGE_DERIVE, alg);
+    if (status != PSA_SUCCESS) {
+        goto exit;
+    }
+
+    /* We only support raw key agreement here, not combined with a key
+     * derivation. Also, for the time being, we only allow ECDH, not
+     * other key agreement algorithms.
+     *
+     * This check could come slightly earlier or later. Having it here
+     * gives consistent error codes with non-interruptible key agreement
+     * (psa_raw_key_agreement(), psa_key_agreement()) when the input
+     * parameters (including the key) are also invalid for
+     * non-interruptible key agreement.
+     */
+    if (alg != PSA_ALG_ECDH) {
+        status = PSA_ERROR_INVALID_ARGUMENT;
+        goto exit;
+    }
+
+    operation->attributes = *attributes;
+
+    operation->num_ops = 0;
+
+    /* To be removed later when driver dispatch is added. */
+    operation->id = PSA_CRYPTO_MBED_TLS_DRIVER_ID;
+
+    status = mbedtls_psa_key_agreement_iop_setup(&operation->mbedtls_ctx,
+                                                 &slot->attr, slot->key.data,
+                                                 slot->key.bytes, peer_key,
+                                                 peer_key_length);
+
+    operation->num_ops = mbedtls_psa_key_agreement_iop_get_num_ops(&operation->mbedtls_ctx);
+
+exit:
+    unlock_status = psa_unregister_read_under_mutex(slot);
+    if (status != PSA_SUCCESS) {
+        operation->error_occurred = 1;
+        psa_key_agreement_iop_abort_internal(operation);
+        return status;
+    }
+    if (unlock_status != PSA_SUCCESS) {
+        operation->error_occurred = 1;
+    }
+    return unlock_status;
+#else
+    (void) operation;
+    (void) private_key;
+    (void) peer_key;
+    (void) peer_key_length;
+    (void) alg;
+    (void) attributes;
+    return PSA_ERROR_NOT_SUPPORTED;
+#endif
+}
+
+psa_status_t psa_key_agreement_iop_complete(
+    psa_key_agreement_iop_t *operation,
+    mbedtls_svc_key_id_t *key)
+{
+#if defined(MBEDTLS_ECP_RESTARTABLE) && \
+    defined(MBEDTLS_PSA_BUILTIN_ALG_ECDH)
+
+    if (operation->id == 0 || operation->error_occurred) {
+        return PSA_ERROR_BAD_STATE;
+    }
+
+    psa_status_t status;
+    uint8_t intermediate_key[PSA_RAW_KEY_AGREEMENT_OUTPUT_MAX_SIZE];
+    size_t key_len = 0;
+
+    status = mbedtls_psa_key_agreement_iop_complete(&operation->mbedtls_ctx, intermediate_key,
+                                                    sizeof(intermediate_key),
+                                                    &key_len);
+
+    operation->num_ops = mbedtls_psa_key_agreement_iop_get_num_ops(&operation->mbedtls_ctx);
+
+    if (status == PSA_SUCCESS) {
+        status = psa_import_key(&operation->attributes, intermediate_key,
+                                key_len, key);
+    }
+
+    if (status != PSA_OPERATION_INCOMPLETE) {
+        operation->error_occurred = 1;
+        psa_key_agreement_iop_abort_internal(operation);
+    }
+    mbedtls_platform_zeroize(intermediate_key, sizeof(intermediate_key));
+    return status;
+#else
+    (void) operation;
+    (void) key;
+    return PSA_ERROR_BAD_STATE;
+#endif
+}
+
+psa_status_t psa_key_agreement_iop_abort(
+    psa_key_agreement_iop_t *operation)
+{
+#if defined(MBEDTLS_ECP_RESTARTABLE) && \
+    defined(MBEDTLS_PSA_BUILTIN_ALG_ECDH)
+    psa_status_t status;
+
+    status = psa_key_agreement_iop_abort_internal(operation);
+
+    operation->num_ops = 0;
+    operation->error_occurred = 0;
+
+    return status;
+#else
+    (void) operation;
+    return PSA_SUCCESS;
+#endif
+}

 /****************************************************************/
 /* Random generation */
 /****************************************************************/

-#if defined(MBEDTLS_PSA_INJECT_ENTROPY)
-#include "entropy_poll.h"
-#endif
-
 /** Initialize the PSA random generator.
  *
  *  Note: the mbedtls_threading_psa_rngdata_mutex should be held when calling
@@ -7977,16 +8038,6 @@ static void mbedtls_psa_random_init(mbedtls_psa_random_context_t *rng)
     }

     rng->entropy_init(&rng->entropy);
-#if defined(MBEDTLS_PSA_INJECT_ENTROPY) && \
-    defined(MBEDTLS_NO_DEFAULT_ENTROPY_SOURCES)
-    /* The PSA entropy injection feature depends on using NV seed as an entropy
-     * source. Add NV seed as an entropy source for PSA entropy injection. */
-    mbedtls_entropy_add_source(&rng->entropy,
-                               mbedtls_nv_seed_poll, NULL,
-                               MBEDTLS_ENTROPY_BLOCK_SIZE,
-                               MBEDTLS_ENTROPY_SOURCE_STRONG);
-#endif
-
     mbedtls_psa_drbg_init(&rng->drbg);
 #endif /* MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG */
 }
@@ -8039,24 +8090,6 @@ exit:
     return status;
 }

-#if defined(MBEDTLS_PSA_INJECT_ENTROPY)
-psa_status_t mbedtls_psa_inject_entropy(const uint8_t *seed,
-                                        size_t seed_size)
-{
-    if (psa_get_initialized()) {
-        return PSA_ERROR_NOT_PERMITTED;
-    }
-
-    if (((seed_size < MBEDTLS_ENTROPY_MIN_PLATFORM) ||
-         (seed_size < MBEDTLS_ENTROPY_BLOCK_SIZE)) ||
-        (seed_size > MBEDTLS_ENTROPY_MAX_SEED_SIZE)) {
-        return PSA_ERROR_INVALID_ARGUMENT;
-    }
-
-    return mbedtls_psa_storage_inject_entropy(seed, seed_size);
-}
-#endif /* MBEDTLS_PSA_INJECT_ENTROPY */
-
 /** Validate the key type and size for key generation
  *
  * \param  type  The key type
@@ -8140,11 +8173,6 @@ psa_status_t psa_generate_key_internal(
             return status;
         }

-#if defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_DES)
-        if (type == PSA_KEY_TYPE_DES) {
-            psa_des_set_key_parity(key_buffer, key_buffer_size);
-        }
-#endif /* MBEDTLS_PSA_BUILTIN_KEY_TYPE_DES */
     } else

 #if defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_RSA_KEY_PAIR_GENERATE)
@@ -8190,7 +8218,6 @@ psa_status_t psa_generate_key_custom(const psa_key_attributes_t *attributes,
 {
     psa_status_t status;
     psa_key_slot_t *slot = NULL;
-    psa_se_drv_table_entry_t *driver = NULL;
     size_t key_buffer_size;

     *key = MBEDTLS_SVC_KEY_ID_INIT;
@@ -8217,16 +8244,13 @@ psa_status_t psa_generate_key_custom(const psa_key_attributes_t *attributes,
         return PSA_ERROR_INVALID_ARGUMENT;
     }

-    status = psa_start_key_creation(PSA_KEY_CREATION_GENERATE, attributes,
-                                    &slot, &driver);
+    status = psa_start_key_creation(attributes, &slot);
     if (status != PSA_SUCCESS) {
         goto exit;
     }

     /* In the case of a transparent key or an opaque key stored in local
-     * storage ( thus not in the case of generating a key in a secure element
-     * with storage ( MBEDTLS_PSA_CRYPTO_SE_C ) ),we have to allocate a
-     * buffer to hold the generated key material. */
+     * storage, we have to allocate a buffer to hold the generated key material. */
     if (slot->key.bytes == 0) {
         if (PSA_KEY_LIFETIME_GET_LOCATION(attributes->lifetime) ==
             PSA_KEY_LOCATION_LOCAL_STORAGE) {
@@ -8264,27 +8288,15 @@ psa_status_t psa_generate_key_custom(const psa_key_attributes_t *attributes,

 exit:
     if (status == PSA_SUCCESS) {
-        status = psa_finish_key_creation(slot, driver, key);
+        status = psa_finish_key_creation(slot, key);
     }
     if (status != PSA_SUCCESS) {
-        psa_fail_key_creation(slot, driver);
+        psa_fail_key_creation(slot);
     }

     return status;
 }

-psa_status_t psa_generate_key_ext(const psa_key_attributes_t *attributes,
-                                  const psa_key_production_parameters_t *params,
-                                  size_t params_data_length,
-                                  mbedtls_svc_key_id_t *key)
-{
-    return psa_generate_key_custom(
-        attributes,
-        (const psa_custom_key_parameters_t *) params,
-        params->data, params_data_length,
-        key);
-}
-
 psa_status_t psa_generate_key(const psa_key_attributes_t *attributes,
                               mbedtls_svc_key_id_t *key)
 {
@@ -8294,46 +8306,190 @@ psa_status_t psa_generate_key(const psa_key_attributes_t *attributes,
                                    key);
 }

-
-
-/****************************************************************/
-/* Module setup */
-/****************************************************************/
-
-#if !defined(MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG)
-psa_status_t mbedtls_psa_crypto_configure_entropy_sources(
-    void (* entropy_init)(mbedtls_entropy_context *ctx),
-    void (* entropy_free)(mbedtls_entropy_context *ctx))
+#if defined(MBEDTLS_ECP_RESTARTABLE) && \
+    defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_ECC_KEY_PAIR_GENERATE)
+static psa_status_t psa_generate_key_iop_abort_internal(
+    psa_generate_key_iop_t *operation)
 {
     psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED;

-#if defined(MBEDTLS_THREADING_C)
-    mbedtls_mutex_lock(&mbedtls_threading_psa_rngdata_mutex);
-#endif /* defined(MBEDTLS_THREADING_C) */
-
-    if (global_data.rng_state != RNG_NOT_INITIALIZED) {
-        status = PSA_ERROR_BAD_STATE;
-    } else {
-        global_data.rng.entropy_init = entropy_init;
-        global_data.rng.entropy_free = entropy_free;
-        status = PSA_SUCCESS;
+    if (operation->id == 0) {
+        return PSA_SUCCESS;
     }

-#if defined(MBEDTLS_THREADING_C)
-    mbedtls_mutex_unlock(&mbedtls_threading_psa_rngdata_mutex);
-#endif /* defined(MBEDTLS_THREADING_C) */
+    status = mbedtls_psa_ecp_generate_key_iop_abort(&operation->ctx);
+
+    psa_reset_key_attributes(&operation->attributes);
+
+    operation->id = 0;

     return status;
 }
-#endif /* !defined(MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG) */
+#endif

-void mbedtls_psa_crypto_free(void)
+uint32_t psa_generate_key_iop_get_num_ops(
+    psa_generate_key_iop_t *operation)
 {
+    return operation->num_ops;
+}
+
+psa_status_t psa_generate_key_iop_setup(
+    psa_generate_key_iop_t *operation,
+    const psa_key_attributes_t *attributes)
+{
+#if defined(MBEDTLS_ECP_RESTARTABLE) && \
+    defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_ECC_KEY_PAIR_GENERATE)
+    psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED;
+    psa_key_type_t type;
+
+    type = psa_get_key_type(attributes);
+
+    if (!PSA_KEY_TYPE_IS_ECC(type)) {
+        status = PSA_ERROR_NOT_SUPPORTED;
+        goto exit;
+    }
+
+    if (operation->id != 0 || operation->error_occurred) {
+        status = PSA_ERROR_BAD_STATE;
+        goto exit;
+    }
+
+    if (psa_get_key_bits(attributes) == 0) {
+        status = PSA_ERROR_INVALID_ARGUMENT;
+        goto exit;
+    }
+
+    if (PSA_KEY_TYPE_IS_PUBLIC_KEY(type)) {
+        status = PSA_ERROR_INVALID_ARGUMENT;
+        goto exit;
+    }
+
+    operation->attributes = *attributes;
+
+    operation->num_ops = 0;
+
+    /* We only support the builtin/Mbed TLS driver for now. */
+    operation->id = PSA_CRYPTO_MBED_TLS_DRIVER_ID;
+
+    status = mbedtls_psa_ecp_generate_key_iop_setup(&operation->ctx, attributes);
+
+exit:
+    if (status != PSA_SUCCESS) {
+        operation->error_occurred = 1;
+        psa_generate_key_iop_abort_internal(operation);
+    }
+
+    return status;
+#else
+    (void) operation;
+    (void) attributes;
+    return PSA_ERROR_NOT_SUPPORTED;
+#endif
+}
+
+psa_status_t psa_generate_key_iop_complete(
+    psa_generate_key_iop_t *operation,
+    mbedtls_svc_key_id_t *key)
+{
+#if defined(MBEDTLS_ECP_RESTARTABLE) && \
+    defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_ECC_KEY_PAIR_GENERATE)
+    psa_status_t status;
+    uint8_t key_data[PSA_KEY_EXPORT_ECC_KEY_PAIR_MAX_SIZE(PSA_VENDOR_ECC_MAX_CURVE_BITS)+1] = { 0 };
+    size_t key_len = 0;
+
+    if (operation->id == 0 || operation->error_occurred) {
+        return PSA_ERROR_BAD_STATE;
+    }
+
+    status = mbedtls_psa_ecp_generate_key_iop_complete(&operation->ctx, key_data,
+                                                       sizeof(key_data), &key_len);
+    if (status != PSA_SUCCESS) {
+        goto exit;
+    }
+
+    operation->num_ops = mbedtls_psa_generate_key_iop_get_num_ops(&operation->ctx);
+
+    status = psa_import_key(&operation->attributes,
+                            key_data + (sizeof(key_data) - key_len),
+                            key_len,
+                            key);
+
+exit:
+    if (status != PSA_OPERATION_INCOMPLETE) {
+        if (status != PSA_SUCCESS) {
+            operation->error_occurred = 1;
+        }
+        psa_generate_key_iop_abort_internal(operation);
+    }
+
+    mbedtls_platform_zeroize(key_data, sizeof(key_data));
+    return status;
+#else
+    (void) operation;
+    (void) key;
+
+    return PSA_ERROR_BAD_STATE;
+#endif
+}
+
+psa_status_t psa_generate_key_iop_abort(
+    psa_generate_key_iop_t *operation)
+{
+#if defined(MBEDTLS_ECP_RESTARTABLE) && \
+    defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_ECC_KEY_PAIR_GENERATE)
+    psa_status_t status;
+
+    status = psa_generate_key_iop_abort_internal(operation);
+
+    operation->error_occurred = 0;
+    operation->num_ops = 0;
+    return status;
+#else
+    (void) operation;
+    return PSA_SUCCESS;
+#endif
+}
+
+
+
+/****************************************************************/
+/* Module setup */
+/****************************************************************/
+
+#if !defined(MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG)
+psa_status_t mbedtls_psa_crypto_configure_entropy_sources(
+    void (* entropy_init)(mbedtls_entropy_context *ctx),
+    void (* entropy_free)(mbedtls_entropy_context *ctx))
+{
+    psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED;
+
+#if defined(MBEDTLS_THREADING_C)
+    mbedtls_mutex_lock(&mbedtls_threading_psa_rngdata_mutex);
+#endif /* defined(MBEDTLS_THREADING_C) */
+
+    if (global_data.rng_state != RNG_NOT_INITIALIZED) {
+        status = PSA_ERROR_BAD_STATE;
+    } else {
+        global_data.rng.entropy_init = entropy_init;
+        global_data.rng.entropy_free = entropy_free;
+        status = PSA_SUCCESS;
+    }
+
+#if defined(MBEDTLS_THREADING_C)
+    mbedtls_mutex_unlock(&mbedtls_threading_psa_rngdata_mutex);
+#endif /* defined(MBEDTLS_THREADING_C) */
+
+    return status;
+}
+#endif /* !defined(MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG) */
+
+void mbedtls_psa_crypto_free(void)
+{
+
+#if defined(MBEDTLS_THREADING_C)
+    mbedtls_mutex_lock(&mbedtls_threading_psa_globaldata_mutex);
+#endif /* defined(MBEDTLS_THREADING_C) */

-#if defined(MBEDTLS_THREADING_C)
-    mbedtls_mutex_lock(&mbedtls_threading_psa_globaldata_mutex);
-#endif /* defined(MBEDTLS_THREADING_C) */
-
     /* Nothing to do to free transaction. */
     if (global_data.initialized & PSA_CRYPTO_SUBSYSTEM_TRANSACTION_INITIALIZED) {
         global_data.initialized &= ~PSA_CRYPTO_SUBSYSTEM_TRANSACTION_INITIALIZED;
@@ -8378,31 +8534,6 @@ void mbedtls_psa_crypto_free(void)

 }

-#if defined(PSA_CRYPTO_STORAGE_HAS_TRANSACTIONS)
-/** Recover a transaction that was interrupted by a power failure.
- *
- * This function is called during initialization, before psa_crypto_init()
- * returns. If this function returns a failure status, the initialization
- * fails.
- */
-static psa_status_t psa_crypto_recover_transaction(
-    const psa_crypto_transaction_t *transaction)
-{
-    switch (transaction->unknown.type) {
-        case PSA_CRYPTO_TRANSACTION_CREATE_KEY:
-        case PSA_CRYPTO_TRANSACTION_DESTROY_KEY:
-        /* TODO - fall through to the failure case until this
-         * is implemented.
-         * https://github.com/ARMmbed/mbed-crypto/issues/218
-         */
-        default:
-            /* We found an unsupported transaction in the storage.
-             * We don't know what state the storage is in. Give up. */
-            return PSA_ERROR_DATA_INVALID;
-    }
-}
-#endif /* PSA_CRYPTO_STORAGE_HAS_TRANSACTIONS */
-
 static psa_status_t mbedtls_psa_crypto_init_subsystem(mbedtls_psa_crypto_subsystem subsystem)
 {
     psa_status_t status = PSA_SUCCESS;
@@ -8474,12 +8605,20 @@ static psa_status_t mbedtls_psa_crypto_init_subsystem(mbedtls_psa_crypto_subsyst

             /* Initialize and seed the random generator. */
             if (global_data.rng_state == RNG_NOT_INITIALIZED && driver_wrappers_initialized) {
-                mbedtls_psa_random_init(&global_data.rng);
-                global_data.rng_state = RNG_INITIALIZED;
+#if !defined(MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG) && !defined(MBEDTLS_STATIC_ASSERT_SUPPORT)
+                if (MBEDTLS_PSA_CRYPTO_RNG_HASH != PSA_ALG_SHA_256 &&
+                    MBEDTLS_PSA_CRYPTO_RNG_HASH != PSA_ALG_SHA_512) {
+                    status = PSA_ERROR_INSUFFICIENT_ENTROPY;
+                } else
+#endif
+                {
+                    mbedtls_psa_random_init(&global_data.rng);
+                    global_data.rng_state = RNG_INITIALIZED;

-                status = mbedtls_psa_random_seed(&global_data.rng);
-                if (status == PSA_SUCCESS) {
-                    global_data.rng_state = RNG_SEEDED;
+                    status = mbedtls_psa_random_seed(&global_data.rng);
+                    if (status == PSA_SUCCESS) {
+                        global_data.rng_state = RNG_SEEDED;
+                    }
                 }
             }

@@ -8497,23 +8636,8 @@ static psa_status_t mbedtls_psa_crypto_init_subsystem(mbedtls_psa_crypto_subsyst
 #endif /* defined(MBEDTLS_THREADING_C) */

             if (!(global_data.initialized & PSA_CRYPTO_SUBSYSTEM_TRANSACTION_INITIALIZED)) {
-#if defined(PSA_CRYPTO_STORAGE_HAS_TRANSACTIONS)
-                status = psa_crypto_load_transaction();
-                if (status == PSA_SUCCESS) {
-                    status = psa_crypto_recover_transaction(&psa_crypto_transaction);
-                    if (status == PSA_SUCCESS) {
-                        global_data.initialized |= PSA_CRYPTO_SUBSYSTEM_TRANSACTION_INITIALIZED;
-                    }
-                    status = psa_crypto_stop_transaction();
-                } else if (status == PSA_ERROR_DOES_NOT_EXIST) {
-                    /* There's no transaction to complete. It's all good. */
-                    global_data.initialized |= PSA_CRYPTO_SUBSYSTEM_TRANSACTION_INITIALIZED;
-                    status = PSA_SUCCESS;
-                }
-#else /* defined(PSA_CRYPTO_STORAGE_HAS_TRANSACTIONS) */
                 global_data.initialized |= PSA_CRYPTO_SUBSYSTEM_TRANSACTION_INITIALIZED;
                 status = PSA_SUCCESS;
-#endif /* defined(PSA_CRYPTO_STORAGE_HAS_TRANSACTIONS) */
             }

 #if defined(MBEDTLS_THREADING_C)
@@ -8684,57 +8808,7 @@ psa_status_t psa_crypto_driver_pake_get_cipher_suite(
     return PSA_SUCCESS;
 }

-psa_status_t psa_pake_setup(
-    psa_pake_operation_t *operation,
-    const psa_pake_cipher_suite_t *cipher_suite)
-{
-    psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED;
-
-    if (operation->stage != PSA_PAKE_OPERATION_STAGE_SETUP) {
-        status = PSA_ERROR_BAD_STATE;
-        goto exit;
-    }
-
-    if (PSA_ALG_IS_PAKE(cipher_suite->algorithm) == 0 ||
-        PSA_ALG_IS_HASH(cipher_suite->hash) == 0) {
-        status = PSA_ERROR_INVALID_ARGUMENT;
-        goto exit;
-    }
-
-    /* Make sure the variable-purpose part of the operation is zeroed.
-     * Initializing the operation does not necessarily take care of it,
-     * since the context is a union and initializing a union does not
-     * necessarily initialize all of its members. */
-    memset(&operation->data, 0, sizeof(operation->data));
-
-    operation->alg = cipher_suite->algorithm;
-    operation->primitive = PSA_PAKE_PRIMITIVE(cipher_suite->type,
-                                              cipher_suite->family, cipher_suite->bits);
-    operation->data.inputs.cipher_suite = *cipher_suite;
-
-#if defined(PSA_WANT_ALG_JPAKE)
-    if (operation->alg == PSA_ALG_JPAKE) {
-        psa_jpake_computation_stage_t *computation_stage =
-            &operation->computation_stage.jpake;
-
-        memset(computation_stage, 0, sizeof(*computation_stage));
-        computation_stage->step = PSA_PAKE_STEP_KEY_SHARE;
-    } else
-#endif /* PSA_WANT_ALG_JPAKE */
-    {
-        status = PSA_ERROR_NOT_SUPPORTED;
-        goto exit;
-    }
-
-    operation->stage = PSA_PAKE_OPERATION_STAGE_COLLECT_INPUTS;
-
-    return PSA_SUCCESS;
-exit:
-    psa_pake_abort(operation);
-    return status;
-}
-
-psa_status_t psa_pake_set_password_key(
+static psa_status_t psa_pake_set_password_key(
     psa_pake_operation_t *operation,
     mbedtls_svc_key_id_t password)
 {
@@ -8781,6 +8855,56 @@ exit:
     return (status == PSA_SUCCESS) ? unlock_status : status;
 }

+psa_status_t psa_pake_setup(
+    psa_pake_operation_t *operation,
+    mbedtls_svc_key_id_t password_key,
+    const psa_pake_cipher_suite_t *cipher_suite)
+{
+    psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED;
+
+    if (operation->stage != PSA_PAKE_OPERATION_STAGE_SETUP) {
+        status = PSA_ERROR_BAD_STATE;
+        goto exit;
+    }
+
+    if (PSA_ALG_IS_PAKE(cipher_suite->algorithm) == 0) {
+        status = PSA_ERROR_INVALID_ARGUMENT;
+        goto exit;
+    }
+
+    /* Make sure the variable-purpose part of the operation is zeroed.
+     * Initializing the operation does not necessarily take care of it,
+     * since the context is a union and initializing a union does not
+     * necessarily initialize all of its members. */
+    memset(&operation->data, 0, sizeof(operation->data));
+
+    operation->alg = cipher_suite->algorithm;
+    operation->primitive = PSA_PAKE_PRIMITIVE(cipher_suite->type,
+                                              cipher_suite->family, cipher_suite->bits);
+    operation->data.inputs.cipher_suite = *cipher_suite;
+
+#if defined(PSA_WANT_ALG_JPAKE)
+    if (PSA_ALG_IS_JPAKE(operation->alg)) {
+        psa_jpake_computation_stage_t *computation_stage =
+            &operation->computation_stage.jpake;
+
+        memset(computation_stage, 0, sizeof(*computation_stage));
+        computation_stage->step = PSA_PAKE_STEP_KEY_SHARE;
+    } else
+#endif /* PSA_WANT_ALG_JPAKE */
+    {
+        status = PSA_ERROR_NOT_SUPPORTED;
+        goto exit;
+    }
+
+    operation->stage = PSA_PAKE_OPERATION_STAGE_COLLECT_INPUTS;
+
+    return psa_pake_set_password_key(operation, password_key);
+exit:
+    psa_pake_abort(operation);
+    return status;
+}
+
 psa_status_t psa_pake_set_user(
     psa_pake_operation_t *operation,
     const uint8_t *user_id_external,
@@ -8880,25 +9004,34 @@ psa_status_t psa_pake_set_role(
         goto exit;
     }

-    switch (operation->alg) {
 #if defined(PSA_WANT_ALG_JPAKE)
-        case PSA_ALG_JPAKE:
-            if (role == PSA_PAKE_ROLE_NONE) {
-                return PSA_SUCCESS;
-            }
-            status = PSA_ERROR_INVALID_ARGUMENT;
-            break;
+    if (PSA_ALG_IS_JPAKE(operation->alg)) {
+        if (role == PSA_PAKE_ROLE_NONE) {
+            return PSA_SUCCESS;
+        }
+        status = PSA_ERROR_INVALID_ARGUMENT;
+    } else
 #endif
-        default:
-            (void) role;
-            status = PSA_ERROR_NOT_SUPPORTED;
-            goto exit;
+    {
+        (void) role;
+        status = PSA_ERROR_NOT_SUPPORTED;
+        goto exit;
     }
 exit:
     psa_pake_abort(operation);
     return status;
 }

+psa_status_t psa_pake_set_context(
+    psa_pake_operation_t *operation,
+    const uint8_t *context, size_t context_len)
+{
+    (void) operation;
+    (void) context;
+    (void) context_len;
+    return PSA_ERROR_NOT_SUPPORTED;
+}
+
 /* Auxiliary function to convert core computation stage to single driver step. */
 #if defined(PSA_WANT_ALG_JPAKE)
 static psa_crypto_driver_pake_step_t convert_jpake_computation_stage_to_driver_step(
@@ -8940,7 +9073,7 @@ static psa_status_t psa_pake_complete_inputs(
         return PSA_ERROR_BAD_STATE;
     }

-    if (operation->alg == PSA_ALG_JPAKE) {
+    if (PSA_ALG_IS_JPAKE(operation->alg)) {
         if (inputs.user_len == 0 || inputs.peer_len == 0) {
             return PSA_ERROR_BAD_STATE;
         }
@@ -8960,7 +9093,7 @@ static psa_status_t psa_pake_complete_inputs(

     if (status == PSA_SUCCESS) {
 #if defined(PSA_WANT_ALG_JPAKE)
-        if (operation->alg == PSA_ALG_JPAKE) {
+        if (PSA_ALG_IS_JPAKE(operation->alg)) {
             operation->stage = PSA_PAKE_OPERATION_STAGE_COMPUTATION;
         } else
 #endif /* PSA_WANT_ALG_JPAKE */
@@ -9077,21 +9210,20 @@ psa_status_t psa_pake_output(
         goto exit;
     }

-    switch (operation->alg) {
 #if defined(PSA_WANT_ALG_JPAKE)
-        case PSA_ALG_JPAKE:
-            status = psa_jpake_prologue(operation, step, PSA_JPAKE_OUTPUT);
-            if (status != PSA_SUCCESS) {
-                goto exit;
-            }
-            driver_step = convert_jpake_computation_stage_to_driver_step(
-                &operation->computation_stage.jpake);
-            break;
-#endif /* PSA_WANT_ALG_JPAKE */
-        default:
-            (void) step;
-            status = PSA_ERROR_NOT_SUPPORTED;
+    if (PSA_ALG_IS_JPAKE(operation->alg)) {
+        status = psa_jpake_prologue(operation, step, PSA_JPAKE_OUTPUT);
+        if (status != PSA_SUCCESS) {
             goto exit;
+        }
+        driver_step = convert_jpake_computation_stage_to_driver_step(
+            &operation->computation_stage.jpake);
+    } else
+#endif /* PSA_WANT_ALG_JPAKE */
+    {
+        (void) step;
+        status = PSA_ERROR_NOT_SUPPORTED;
+        goto exit;
     }

     LOCAL_OUTPUT_ALLOC(output_external, output_size, output);
@@ -9103,18 +9235,17 @@ psa_status_t psa_pake_output(
         goto exit;
     }

-    switch (operation->alg) {
 #if defined(PSA_WANT_ALG_JPAKE)
-        case PSA_ALG_JPAKE:
-            status = psa_jpake_epilogue(operation, PSA_JPAKE_OUTPUT);
-            if (status != PSA_SUCCESS) {
-                goto exit;
-            }
-            break;
-#endif /* PSA_WANT_ALG_JPAKE */
-        default:
-            status = PSA_ERROR_NOT_SUPPORTED;
+    if (PSA_ALG_IS_JPAKE(operation->alg)) {
+        status = psa_jpake_epilogue(operation, PSA_JPAKE_OUTPUT);
+        if (status != PSA_SUCCESS) {
             goto exit;
+        }
+    } else
+#endif /* PSA_WANT_ALG_JPAKE */
+    {
+        status = PSA_ERROR_NOT_SUPPORTED;
+        goto exit;
     }

 exit:
@@ -9155,21 +9286,20 @@ psa_status_t psa_pake_input(
         goto exit;
     }

-    switch (operation->alg) {
 #if defined(PSA_WANT_ALG_JPAKE)
-        case PSA_ALG_JPAKE:
-            status = psa_jpake_prologue(operation, step, PSA_JPAKE_INPUT);
-            if (status != PSA_SUCCESS) {
-                goto exit;
-            }
-            driver_step = convert_jpake_computation_stage_to_driver_step(
-                &operation->computation_stage.jpake);
-            break;
-#endif /* PSA_WANT_ALG_JPAKE */
-        default:
-            (void) step;
-            status = PSA_ERROR_NOT_SUPPORTED;
+    if (PSA_ALG_IS_JPAKE(operation->alg)) {
+        status = psa_jpake_prologue(operation, step, PSA_JPAKE_INPUT);
+        if (status != PSA_SUCCESS) {
             goto exit;
+        }
+        driver_step = convert_jpake_computation_stage_to_driver_step(
+            &operation->computation_stage.jpake);
+    } else
+#endif /* PSA_WANT_ALG_JPAKE */
+    {
+        (void) step;
+        status = PSA_ERROR_NOT_SUPPORTED;
+        goto exit;
     }

     LOCAL_INPUT_ALLOC(input_external, input_length, input);
@@ -9180,18 +9310,17 @@ psa_status_t psa_pake_input(
         goto exit;
     }

-    switch (operation->alg) {
 #if defined(PSA_WANT_ALG_JPAKE)
-        case PSA_ALG_JPAKE:
-            status = psa_jpake_epilogue(operation, PSA_JPAKE_INPUT);
-            if (status != PSA_SUCCESS) {
-                goto exit;
-            }
-            break;
-#endif /* PSA_WANT_ALG_JPAKE */
-        default:
-            status = PSA_ERROR_NOT_SUPPORTED;
+    if (PSA_ALG_IS_JPAKE(operation->alg)) {
+        status = psa_jpake_epilogue(operation, PSA_JPAKE_INPUT);
+        if (status != PSA_SUCCESS) {
             goto exit;
+        }
+    } else
+#endif /* PSA_WANT_ALG_JPAKE */
+    {
+        status = PSA_ERROR_NOT_SUPPORTED;
+        goto exit;
     }

 exit:
@@ -9202,9 +9331,9 @@ exit:
     return status;
 }

-psa_status_t psa_pake_get_implicit_key(
-    psa_pake_operation_t *operation,
-    psa_key_derivation_operation_t *output)
+psa_status_t psa_pake_get_shared_key(psa_pake_operation_t *operation,
+                                     const psa_key_attributes_t *attributes,
+                                     mbedtls_svc_key_id_t *key)
 {
     psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED;
     psa_status_t abort_status = PSA_ERROR_CORRUPTION_DETECTED;
@@ -9217,7 +9346,7 @@ psa_status_t psa_pake_get_implicit_key(
     }

 #if defined(PSA_WANT_ALG_JPAKE)
-    if (operation->alg == PSA_ALG_JPAKE) {
+    if (PSA_ALG_IS_JPAKE(operation->alg)) {
         psa_jpake_computation_stage_t *computation_stage =
             &operation->computation_stage.jpake;
         if (computation_stage->round != PSA_JPAKE_FINISHED) {
@@ -9231,23 +9360,25 @@ psa_status_t psa_pake_get_implicit_key(
         goto exit;
     }

-    status = psa_driver_wrapper_pake_get_implicit_key(operation,
-                                                      shared_key,
-                                                      sizeof(shared_key),
-                                                      &shared_key_len);
+    status = psa_driver_wrapper_pake_get_shared_key(operation,
+                                                    shared_key,
+                                                    sizeof(shared_key),
+                                                    &shared_key_len);

     if (status != PSA_SUCCESS) {
         goto exit;
     }

-    status = psa_key_derivation_input_bytes(output,
-                                            PSA_KEY_DERIVATION_INPUT_SECRET,
-                                            shared_key,
-                                            shared_key_len);
+    status = psa_import_key(attributes, shared_key, shared_key_len, key);

-    mbedtls_platform_zeroize(shared_key, sizeof(shared_key));
 exit:
+
+    if (status != PSA_SUCCESS) {
+        *key = MBEDTLS_SVC_KEY_ID_INIT;
+    }
+
     abort_status = psa_pake_abort(operation);
+
     return status == PSA_SUCCESS ? abort_status : status;
 }

diff --git a/deps/LIEF/third-party/mbedtls/library/psa_crypto_client.c b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/core/psa_crypto_client.c
similarity index 92%
rename from deps/LIEF/third-party/mbedtls/library/psa_crypto_client.c
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/core/psa_crypto_client.c
index 72f671d63d5..b0b615e7261 100644
--- a/deps/LIEF/third-party/mbedtls/library/psa_crypto_client.c
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/core/psa_crypto_client.c
@@ -6,7 +6,7 @@
  *  SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
  */

-#include "common.h"
+#include "tf_psa_crypto_common.h"
 #include "psa/crypto.h"

 #if defined(MBEDTLS_PSA_CRYPTO_CLIENT)
diff --git a/deps/LIEF/third-party/mbedtls/library/psa_crypto_core.h b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/core/psa_crypto_core.h
similarity index 88%
rename from deps/LIEF/third-party/mbedtls/library/psa_crypto_core.h
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/core/psa_crypto_core.h
index c3c0770142a..cccecc9a02c 100644
--- a/deps/LIEF/third-party/mbedtls/library/psa_crypto_core.h
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/core/psa_crypto_core.h
@@ -9,33 +9,13 @@
 #ifndef PSA_CRYPTO_CORE_H
 #define PSA_CRYPTO_CORE_H

-/*
- * Include the build-time configuration information header. Here, we do not
- * include `"mbedtls/build_info.h"` directly but `"psa/build_info.h"`, which
- * is basically just an alias to it. This is to ease the maintenance of the
- * TF-PSA-Crypto repository which has a different build system and
- * configuration.
- */
-#include "psa/build_info.h"
+#include "tf-psa-crypto/build_info.h"

 #include "psa/crypto.h"
-#include "psa/crypto_se_driver.h"
 #if defined(MBEDTLS_THREADING_C)
 #include "mbedtls/threading.h"
 #endif

-/**
- * Tell if PSA is ready for this cipher.
- *
- * \note            For now, only checks the state of the driver subsystem,
- *                  not the algorithm. Might do more in the future.
- *
- * \param cipher_alg  The cipher algorithm (ignored for now).
- *
- * \return 1 if the driver subsytem is ready, 0 otherwise.
- */
-int psa_can_do_cipher(psa_key_type_t key_type, psa_algorithm_t cipher_alg);
-
 typedef enum {
     PSA_SLOT_EMPTY = 0,
     PSA_SLOT_FILLING,
@@ -208,20 +188,6 @@ static inline int psa_key_slot_has_readers(const psa_key_slot_t *slot)
     return slot->var.occupied.registered_readers > 0;
 }

-#if defined(MBEDTLS_PSA_CRYPTO_SE_C)
-/** Get the SE slot number of a key from the key slot storing its description.
- *
- * \param[in]  slot  The key slot to query. This must be a key slot storing
- *                   the description of a key of a dynamically registered
- *                   secure element, otherwise the behaviour is undefined.
- */
-static inline psa_key_slot_number_t psa_key_slot_get_slot_number(
-    const psa_key_slot_t *slot)
-{
-    return *((psa_key_slot_number_t *) (slot->key.data));
-}
-#endif
-
 /** Completely wipe a slot in memory, including its policy.
  *
  * Persistent storage is not affected.
@@ -292,6 +258,17 @@ psa_status_t psa_copy_key_material_into_slot(psa_key_slot_t *slot,
  */
 psa_status_t mbedtls_to_psa_error(int ret);

+/** Whether PSA is ready for a cipher operation.
+ *
+ * This is a legacy concept inherited from "driver-only" work in Mbed TLS 3.x.
+ * The block_cipher module uses this to determine whether to call a legacy
+ * module directly. This is necessary in some builds involving drivers, where
+ * the PSA RNG is powered by CTR_DRBG, but AES is not accelerated. This is
+ * an implementation kludge that should be fixed.
+ * https://github.com/Mbed-TLS/TF-PSA-Crypto/issues/469
+ */
+int psa_is_ready_for_cipher(void);
+
 /** Import a key in binary format.
  *
  * \note The signature of this function is that of a PSA driver
@@ -654,6 +631,110 @@ psa_status_t psa_key_agreement_raw_builtin(
     size_t shared_secret_size,
     size_t *shared_secret_length);

+/**
+ * \brief Get the total number of ops that a key agreement operation has taken
+ *        since its start.
+ *
+ * \note The signature of this function is that of a PSA driver
+ *       key_agreement_get_num_ops entry point. This function behaves as an
+ *       key_agreement_get_num_ops entry point as defined in the PSA driver
+ *       interface specification for transparent drivers.
+ *
+ * \param[in]   operation           The \c mbedtls_psa_key_agreement_interruptible_operation_t to use.
+ *                                  This must be initialized first.
+ *
+ * \return                      Total number of operations.
+ */
+uint32_t mbedtls_psa_key_agreement_iop_get_num_ops(
+    mbedtls_psa_key_agreement_interruptible_operation_t *operation);
+
+/**
+ * \brief  Set up a new interruptible key agreement operation.
+ *
+ * \note The signature of this function is that of a PSA driver
+ *       key_agreement_setup entry point. This function behaves as a
+ *       key_agreement_setup entry point as defined in the PSA driver interface
+ *       specification for transparent drivers.
+ *
+ *  \param[in] operation                 The \c psa_key_agreement_iop_t to use.
+ *                                       This must be initialized first.
+ *  \param[in] private_key_attributes    The attributes of the private key to use for the
+ *                                       operation.
+ *  \param[in] private_key_buffer        The buffer containing the private key
+ *                                       context.
+ *  \param[in] private_key_buffer_len    Size of the \p private_key_buffer buffer in
+ *                                       bytes.
+ *  \param[in] peer_key                  The buffer containing the key context
+ *                                       of the peer's public key.
+ *  \param[in]  peer_key_length          Size of the \p peer_key buffer in
+ *                                       bytes.
+ *  \retval #PSA_SUCCESS
+ *         The operation started successfully - call \c psa_key_agreement_complete()
+ *         with the same context to complete the operation
+ * \retval #PSA_ERROR_INVALID_ARGUMENT
+ *         An unsupported, incorrectly formatted or incorrect type of key was
+ *         used.
+ * \retval #PSA_ERROR_NOT_SUPPORTED Either no internal interruptible operations
+ *         are currently supported, or the key type is currently unsupported.
+ * \retval #PSA_ERROR_INSUFFICIENT_MEMORY
+ *         There was insufficient memory to load the key representation.
+ */
+psa_status_t mbedtls_psa_key_agreement_iop_setup(
+    mbedtls_psa_key_agreement_interruptible_operation_t *operation,
+    const psa_key_attributes_t *private_key_attributes,
+    const uint8_t *private_key_buffer,
+    size_t private_key_buffer_len,
+    const uint8_t *peer_key,
+    size_t peer_key_length);
+
+/**
+ * \brief Continue and eventually complete a key agreement operation.
+ *
+ * \note The signature of this function is that of a PSA driver
+ *       key_agreement_complete entry point. This function behaves as a
+ *       key_agreement_complete entry point as defined in the PSA driver
+ *       interface specification for transparent drivers.
+ *
+ * \param[in] operation                  The \c mbedtls_psa_key_agreement_interruptible_operation_t to use.
+ *                                       This must be initialized first.
+ * \param[out] shared_secret             The buffer to which the shared secret
+ *                                       is to be written.
+ * \param[in]  shared_secret_size        Size of the \p shared_secret buffer in
+ *                                       bytes.
+ * \param[out] shared_secret_length      On success, the number of bytes that make
+ *                                       up the returned shared secret.
+ * \retval #PSA_SUCCESS
+ *         The shared secret was calculated successfully.
+ * \retval #PSA_ERROR_INVALID_ARGUMENT \emptydescription
+ * \retval #PSA_ERROR_CORRUPTION_DETECTED
+ *         Internal interruptible operations are currently not supported.
+ * \retval #PSA_ERROR_BUFFER_TOO_SMALL
+ *         \p shared_secret_size is too small
+ */
+psa_status_t mbedtls_psa_key_agreement_iop_complete(
+    mbedtls_psa_key_agreement_interruptible_operation_t *operation,
+    uint8_t *shared_secret,
+    size_t shared_secret_size,
+    size_t *shared_secret_length);
+
+/**
+ * \brief Abort a key agreement operation.
+ *
+ * \note The signature of this function is that of a PSA driver
+ *       key_agreement_abort entry point. This function behaves as a
+ *       key_agreement_abort entry point as defined in the PSA driver
+ *       interface specification for transparent drivers.
+ *
+ * \param[in] operation                  The \c mbedtls_psa_key_agreement_interruptible_operation_t to abort.
+ *                                       This must be initialized first.
+ *
+ * \retval #PSA_SUCCESS
+ *         The operation was aborted successfully.
+ */
+psa_status_t mbedtls_psa_key_agreement_iop_abort(
+    mbedtls_psa_key_agreement_interruptible_operation_t *operation);
+
+
 /**
  * \brief Set the maximum number of ops allowed to be executed by an
  *        interruptible function in a single call.
diff --git a/deps/LIEF/third-party/mbedtls/library/psa_crypto_core_common.h b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/core/psa_crypto_core_common.h
similarity index 100%
rename from deps/LIEF/third-party/mbedtls/library/psa_crypto_core_common.h
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/core/psa_crypto_core_common.h
diff --git a/deps/LIEF/third-party/mbedtls/library/psa_crypto_driver_wrappers.h b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/core/psa_crypto_driver_wrappers.h
similarity index 95%
rename from deps/LIEF/third-party/mbedtls/library/psa_crypto_driver_wrappers.h
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/core/psa_crypto_driver_wrappers.h
index 0ed221b5018..3e1dddc2a28 100644
--- a/deps/LIEF/third-party/mbedtls/library/psa_crypto_driver_wrappers.h
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/core/psa_crypto_driver_wrappers.h
@@ -9,7 +9,7 @@


 /* BEGIN-common headers */
-#include "common.h"
+#include "tf_psa_crypto_common.h"
 #include "psa_crypto_aead.h"
 #include "psa_crypto_cipher.h"
 #include "psa_crypto_core.h"
@@ -38,7 +38,7 @@
 #endif
 /* Headers for p256 transparent driver */
 #if defined(MBEDTLS_PSA_P256M_DRIVER_ENABLED)
-#include "../3rdparty/p256-m/p256-m_driver_entrypoints.h"
+#include "../drivers/p256-m/p256-m_driver_entrypoints.h"

 #endif

@@ -59,26 +59,10 @@

 /* END-Common Macro definitions */

-/* Support the 'old' SE interface when asked to */
-#if defined(MBEDTLS_PSA_CRYPTO_SE_C)
-/* PSA_CRYPTO_DRIVER_PRESENT is defined when either a new-style or old-style
- * SE driver is present, to avoid unused argument errors at compile time. */
-#ifndef PSA_CRYPTO_DRIVER_PRESENT
-#define PSA_CRYPTO_DRIVER_PRESENT
-#endif
-#include "psa_crypto_se.h"
-#endif
-
 static inline psa_status_t psa_driver_wrapper_init( void )
 {
     psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED;

-#if defined(MBEDTLS_PSA_CRYPTO_SE_C)
-    status = psa_init_all_se_drivers( );
-    if( status != PSA_SUCCESS )
-        return( status );
-#endif
-
 #if defined(PSA_CRYPTO_DRIVER_TEST)
     status = mbedtls_test_transparent_init( );
     if( status != PSA_SUCCESS )
@@ -95,12 +79,6 @@ static inline psa_status_t psa_driver_wrapper_init( void )

 static inline void psa_driver_wrapper_free( void )
 {
-#if defined(MBEDTLS_PSA_CRYPTO_SE_C)
-    /* Unregister all secure element drivers, so that we restart from
-     * a pristine state. */
-    psa_unregister_all_se_drivers( );
-#endif /* MBEDTLS_PSA_CRYPTO_SE_C */
-
 #if defined(PSA_CRYPTO_DRIVER_TEST)
     mbedtls_test_transparent_free( );
     mbedtls_test_opaque_free( );
@@ -260,26 +238,6 @@ static inline psa_status_t psa_driver_wrapper_sign_hash(
     psa_algorithm_t alg, const uint8_t *hash, size_t hash_length,
     uint8_t *signature, size_t signature_size, size_t *signature_length )
 {
-    /* Try dynamically-registered SE interface first */
-#if defined(MBEDTLS_PSA_CRYPTO_SE_C)
-    const psa_drv_se_t *drv;
-    psa_drv_se_context_t *drv_context;
-
-    if( psa_get_se_driver( psa_get_key_lifetime(attributes), &drv, &drv_context ) )
-    {
-        if( drv->asymmetric == NULL ||
-            drv->asymmetric->p_sign == NULL )
-        {
-            /* Key is defined in SE, but we have no way to exercise it */
-            return( PSA_ERROR_NOT_SUPPORTED );
-        }
-        return( drv->asymmetric->p_sign(
-                    drv_context, *( (psa_key_slot_number_t *)key_buffer ),
-                    alg, hash, hash_length,
-                    signature, signature_size, signature_length ) );
-    }
-#endif /* MBEDTLS_PSA_CRYPTO_SE_C */
-
     psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED;
     psa_key_location_t location =
         PSA_KEY_LIFETIME_GET_LOCATION( psa_get_key_lifetime(attributes) );
@@ -363,26 +321,6 @@ static inline psa_status_t psa_driver_wrapper_verify_hash(
     psa_algorithm_t alg, const uint8_t *hash, size_t hash_length,
     const uint8_t *signature, size_t signature_length )
 {
-    /* Try dynamically-registered SE interface first */
-#if defined(MBEDTLS_PSA_CRYPTO_SE_C)
-    const psa_drv_se_t *drv;
-    psa_drv_se_context_t *drv_context;
-
-    if( psa_get_se_driver( psa_get_key_lifetime(attributes), &drv, &drv_context ) )
-    {
-        if( drv->asymmetric == NULL ||
-            drv->asymmetric->p_verify == NULL )
-        {
-            /* Key is defined in SE, but we have no way to exercise it */
-            return( PSA_ERROR_NOT_SUPPORTED );
-        }
-        return( drv->asymmetric->p_verify(
-                    drv_context, *( (psa_key_slot_number_t *)key_buffer ),
-                    alg, hash, hash_length,
-                    signature, signature_length ) );
-    }
-#endif /* MBEDTLS_PSA_CRYPTO_SE_C */
-
     psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED;
     psa_key_location_t location =
         PSA_KEY_LIFETIME_GET_LOCATION( psa_get_key_lifetime(attributes) );
@@ -750,27 +688,6 @@ static inline psa_status_t psa_driver_wrapper_generate_key(
     (void) is_default_production;
 #endif

-    /* Try dynamically-registered SE interface first */
-#if defined(MBEDTLS_PSA_CRYPTO_SE_C)
-    const psa_drv_se_t *drv;
-    psa_drv_se_context_t *drv_context;
-
-    if( psa_get_se_driver( psa_get_key_lifetime(attributes), &drv, &drv_context ) )
-    {
-        size_t pubkey_length = 0; /* We don't support this feature yet */
-        if( drv->key_management == NULL ||
-            drv->key_management->p_generate == NULL )
-        {
-            /* Key is defined as being in SE, but we have no way to generate it */
-            return( PSA_ERROR_NOT_SUPPORTED );
-        }
-        return( drv->key_management->p_generate(
-            drv_context,
-            *( (psa_key_slot_number_t *)key_buffer ),
-            attributes, NULL, 0, &pubkey_length ) );
-    }
-#endif /* MBEDTLS_PSA_CRYPTO_SE_C */
-
     switch( location )
     {
         case PSA_KEY_LOCATION_LOCAL_STORAGE:
@@ -846,35 +763,6 @@ static inline psa_status_t psa_driver_wrapper_import_key(
     psa_key_location_t location = PSA_KEY_LIFETIME_GET_LOCATION(
                                       psa_get_key_lifetime( attributes ) );

-    /* Try dynamically-registered SE interface first */
-#if defined(MBEDTLS_PSA_CRYPTO_SE_C)
-    const psa_drv_se_t *drv;
-    psa_drv_se_context_t *drv_context;
-
-    if( psa_get_se_driver( psa_get_key_lifetime(attributes), &drv, &drv_context ) )
-    {
-        if( drv->key_management == NULL ||
-            drv->key_management->p_import == NULL )
-            return( PSA_ERROR_NOT_SUPPORTED );
-
-        /* The driver should set the number of key bits, however in
-         * case it doesn't, we initialize bits to an invalid value. */
-        *bits = PSA_MAX_KEY_BITS + 1;
-        status = drv->key_management->p_import(
-            drv_context,
-            *( (psa_key_slot_number_t *)key_buffer ),
-            attributes, data, data_length, bits );
-
-        if( status != PSA_SUCCESS )
-            return( status );
-
-        if( (*bits) > PSA_MAX_KEY_BITS )
-            return( PSA_ERROR_NOT_SUPPORTED );
-
-        return( PSA_SUCCESS );
-    }
-#endif /* MBEDTLS_PSA_CRYPTO_SE_C */
-
     switch( location )
     {
         case PSA_KEY_LOCATION_LOCAL_STORAGE:
@@ -956,26 +844,6 @@ static inline psa_status_t psa_driver_wrapper_export_key(
     psa_key_location_t location = PSA_KEY_LIFETIME_GET_LOCATION(
                                       psa_get_key_lifetime( attributes ) );

-    /* Try dynamically-registered SE interface first */
-#if defined(MBEDTLS_PSA_CRYPTO_SE_C)
-    const psa_drv_se_t *drv;
-    psa_drv_se_context_t *drv_context;
-
-    if( psa_get_se_driver( psa_get_key_lifetime(attributes), &drv, &drv_context ) )
-    {
-        if( ( drv->key_management == NULL   ) ||
-            ( drv->key_management->p_export == NULL ) )
-        {
-            return( PSA_ERROR_NOT_SUPPORTED );
-        }
-
-        return( drv->key_management->p_export(
-                     drv_context,
-                     *( (psa_key_slot_number_t *)key_buffer ),
-                     data, data_size, data_length ) );
-    }
-#endif /* MBEDTLS_PSA_CRYPTO_SE_C */
-
     switch( location )
     {
         case PSA_KEY_LOCATION_LOCAL_STORAGE:
@@ -1021,17 +889,6 @@ static inline psa_status_t psa_driver_wrapper_copy_key(
     psa_key_location_t location =
         PSA_KEY_LIFETIME_GET_LOCATION( psa_get_key_lifetime(attributes) );

-#if defined(MBEDTLS_PSA_CRYPTO_SE_C)
-    const psa_drv_se_t *drv;
-    psa_drv_se_context_t *drv_context;
-
-    if( psa_get_se_driver( psa_get_key_lifetime(attributes), &drv, &drv_context ) )
-    {
-        /* Copying to a secure element is not implemented yet. */
-        return( PSA_ERROR_NOT_SUPPORTED );
-    }
-#endif /* MBEDTLS_PSA_CRYPTO_SE_C */
-
     switch( location )
     {
 #if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT)
@@ -2842,7 +2699,7 @@ static inline psa_status_t psa_driver_wrapper_pake_input(
     }
 }

-static inline psa_status_t psa_driver_wrapper_pake_get_implicit_key(
+static inline psa_status_t psa_driver_wrapper_pake_get_shared_key(
     psa_pake_operation_t *operation,
     uint8_t *output, size_t output_size,
     size_t *output_length )
diff --git a/deps/LIEF/third-party/mbedtls/library/psa_crypto_driver_wrappers_no_static.c b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/core/psa_crypto_driver_wrappers_no_static.c
similarity index 86%
rename from deps/LIEF/third-party/mbedtls/library/psa_crypto_driver_wrappers_no_static.c
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/core/psa_crypto_driver_wrappers_no_static.c
index de8a5269b34..f8eff253f52 100644
--- a/deps/LIEF/third-party/mbedtls/library/psa_crypto_driver_wrappers_no_static.c
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/core/psa_crypto_driver_wrappers_no_static.c
@@ -9,7 +9,7 @@


 /* BEGIN-common headers */
-#include "common.h"
+#include "tf_psa_crypto_common.h"
 #include "psa_crypto_aead.h"
 #include "psa_crypto_cipher.h"
 #include "psa_crypto_core.h"
@@ -37,7 +37,7 @@
 #endif
 /* Headers for p256 transparent driver */
 #if defined(MBEDTLS_PSA_P256M_DRIVER_ENABLED)
-#include "../3rdparty/p256-m/p256-m_driver_entrypoints.h"
+#include "../drivers/p256-m/p256-m_driver_entrypoints.h"

 #endif

@@ -58,16 +58,6 @@

 /* END-Common Macro definitions */

-/* Support the 'old' SE interface when asked to */
-#if defined(MBEDTLS_PSA_CRYPTO_SE_C)
-/* PSA_CRYPTO_DRIVER_PRESENT is defined when either a new-style or old-style
- * SE driver is present, to avoid unused argument errors at compile time. */
-#ifndef PSA_CRYPTO_DRIVER_PRESENT
-#define PSA_CRYPTO_DRIVER_PRESENT
-#endif
-#include "psa_crypto_se.h"
-#endif
-
 /** Get the key buffer size required to store the key material of a key
  *  associated with an opaque driver.
  *
@@ -130,26 +120,6 @@ psa_status_t psa_driver_wrapper_export_public_key(
     psa_key_location_t location = PSA_KEY_LIFETIME_GET_LOCATION(
                                       psa_get_key_lifetime( attributes ) );

-    /* Try dynamically-registered SE interface first */
-#if defined(MBEDTLS_PSA_CRYPTO_SE_C)
-    const psa_drv_se_t *drv;
-    psa_drv_se_context_t *drv_context;
-
-    if( psa_get_se_driver( psa_get_key_lifetime(attributes), &drv, &drv_context ) )
-    {
-        if( ( drv->key_management == NULL ) ||
-            ( drv->key_management->p_export_public == NULL ) )
-        {
-            return( PSA_ERROR_NOT_SUPPORTED );
-        }
-
-        return( drv->key_management->p_export_public(
-                    drv_context,
-                    *( (psa_key_slot_number_t *)key_buffer ),
-                    data, data_size, data_length ) );
-    }
-#endif /* MBEDTLS_PSA_CRYPTO_SE_C */
-
     switch( location )
     {
         case PSA_KEY_LOCATION_LOCAL_STORAGE:
diff --git a/deps/LIEF/third-party/mbedtls/library/psa_crypto_driver_wrappers_no_static.h b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/core/psa_crypto_driver_wrappers_no_static.h
similarity index 100%
rename from deps/LIEF/third-party/mbedtls/library/psa_crypto_driver_wrappers_no_static.h
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/core/psa_crypto_driver_wrappers_no_static.h
diff --git a/deps/LIEF/third-party/mbedtls/library/psa_crypto_invasive.h b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/core/psa_crypto_invasive.h
similarity index 89%
rename from deps/LIEF/third-party/mbedtls/library/psa_crypto_invasive.h
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/core/psa_crypto_invasive.h
index 51c90c64a4d..5132c562ed8 100644
--- a/deps/LIEF/third-party/mbedtls/library/psa_crypto_invasive.h
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/core/psa_crypto_invasive.h
@@ -16,19 +16,12 @@
 #ifndef PSA_CRYPTO_INVASIVE_H
 #define PSA_CRYPTO_INVASIVE_H

-/*
- * Include the build-time configuration information header. Here, we do not
- * include `"mbedtls/build_info.h"` directly but `"psa/build_info.h"`, which
- * is basically just an alias to it. This is to ease the maintenance of the
- * TF-PSA-Crypto repository which has a different build system and
- * configuration.
- */
-#include "psa/build_info.h"
+#include "tf-psa-crypto/build_info.h"

 #include "psa/crypto.h"
-#include "common.h"
+#include "tf_psa_crypto_common.h"

-#include "mbedtls/entropy.h"
+#include "mbedtls/private/entropy.h"

 #if !defined(MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG)
 /** \brief Configure entropy sources.
diff --git a/deps/LIEF/third-party/mbedtls/library/psa_crypto_its.h b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/core/psa_crypto_its.h
similarity index 100%
rename from deps/LIEF/third-party/mbedtls/library/psa_crypto_its.h
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/core/psa_crypto_its.h
diff --git a/deps/LIEF/third-party/mbedtls/library/psa_crypto_random_impl.h b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/core/psa_crypto_random_impl.h
similarity index 63%
rename from deps/LIEF/third-party/mbedtls/library/psa_crypto_random_impl.h
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/core/psa_crypto_random_impl.h
index 5b5163111b0..d8cf3b430d5 100644
--- a/deps/LIEF/third-party/mbedtls/library/psa_crypto_random_impl.h
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/core/psa_crypto_random_impl.h
@@ -10,7 +10,7 @@
 #ifndef PSA_CRYPTO_RANDOM_IMPL_H
 #define PSA_CRYPTO_RANDOM_IMPL_H

-#include "psa_util_internal.h"
+#include "mbedtls/psa_util.h"

 #if defined(MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG)

@@ -18,33 +18,48 @@ typedef mbedtls_psa_external_random_context_t mbedtls_psa_random_context_t;

 #else /* MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG */

-#include "mbedtls/entropy.h"
+#include "mbedtls/private/entropy.h"
+#include "mbedtls/private/error_common.h"
+
+#if !defined(PSA_WANT_ALG_SHA_256)
+MBEDTLS_STATIC_ASSERT(MBEDTLS_PSA_CRYPTO_RNG_HASH != PSA_ALG_SHA_256,
+                      "SHA_256 used as the hash for the random generator, but not enabled");
+#endif
+
+#if !defined(PSA_WANT_ALG_SHA_512)
+MBEDTLS_STATIC_ASSERT(MBEDTLS_PSA_CRYPTO_RNG_HASH != PSA_ALG_SHA_512,
+                      "SHA_512 used as the hash for the random generator, but not enabled");
+#endif
+
+MBEDTLS_STATIC_ASSERT((MBEDTLS_PSA_CRYPTO_RNG_HASH == PSA_ALG_SHA_256) || \
+                      (MBEDTLS_PSA_CRYPTO_RNG_HASH == PSA_ALG_SHA_512),
+                      "Invalid hashing algorithm for MBEDTLS_PSA_CRYPTO_RNG_HASH");
+
+MBEDTLS_STATIC_ASSERT(PSA_BYTES_TO_BITS(PSA_HASH_LENGTH(
+                                            MBEDTLS_PSA_CRYPTO_RNG_HASH))
+                      >= MBEDTLS_PSA_CRYPTO_RNG_STRENGTH,
+                      "The hash size (in bits) of MBEDTLS_PSA_CRYPTO_RNG_HASH must be at least MBEDTLS_PSA_CRYPTO_RNG_STRENGTH");

 /* Choose a DRBG based on configuration and availability */
 #if defined(MBEDTLS_CTR_DRBG_C)

-#include "mbedtls/ctr_drbg.h"
+#include "mbedtls/private/ctr_drbg.h"
+
+#if (MBEDTLS_PSA_CRYPTO_RNG_STRENGTH > 128) && \
+    defined(MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH)
+#error "CTR_DRBG cannot meet the configured RNG strength using only 128-bit AES keys."
+#endif
+
+#if MBEDTLS_PSA_CRYPTO_RNG_STRENGTH > PSA_BYTES_TO_BITS(MBEDTLS_CTR_DRBG_KEYSIZE)
+#error "The CTR_DRBG key size (in bits) must be at least MBEDTLS_PSA_CRYPTO_RNG_STRENGTH"
+#endif
+
 #undef MBEDTLS_PSA_HMAC_DRBG_MD_TYPE

 #elif defined(MBEDTLS_HMAC_DRBG_C)

-#include "mbedtls/hmac_drbg.h"
-#if defined(MBEDTLS_MD_CAN_SHA512) && defined(MBEDTLS_MD_CAN_SHA256)
-#include <limits.h>
-#if SIZE_MAX > 0xffffffff
-/* Looks like a 64-bit system, so prefer SHA-512. */
-#define MBEDTLS_PSA_HMAC_DRBG_MD_TYPE MBEDTLS_MD_SHA512
-#else
-/* Looks like a 32-bit system, so prefer SHA-256. */
-#define MBEDTLS_PSA_HMAC_DRBG_MD_TYPE MBEDTLS_MD_SHA256
-#endif
-#elif defined(MBEDTLS_MD_CAN_SHA512)
-#define MBEDTLS_PSA_HMAC_DRBG_MD_TYPE MBEDTLS_MD_SHA512
-#elif defined(MBEDTLS_MD_CAN_SHA256)
-#define MBEDTLS_PSA_HMAC_DRBG_MD_TYPE MBEDTLS_MD_SHA256
-#else
-#error "No hash algorithm available for HMAC_DBRG."
-#endif
+#include "mbedtls/private/hmac_drbg.h"
+#define MBEDTLS_PSA_HMAC_DRBG_MD_TYPE MBEDTLS_ENTROPY_MD

 #else /* !MBEDTLS_CTR_DRBG_C && !MBEDTLS_HMAC_DRBG_C*/

@@ -113,12 +128,21 @@ static inline int mbedtls_psa_drbg_seed(mbedtls_psa_drbg_context_t *drbg_ctx,
                                         mbedtls_entropy_context *entropy,
                                         const unsigned char *custom, size_t len)
 {
+#if !defined(MBEDTLS_STATIC_ASSERT_SUPPORT)
+    if (PSA_BYTES_TO_BITS(PSA_HASH_LENGTH(MBEDTLS_PSA_CRYPTO_RNG_HASH)) <
+        MBEDTLS_PSA_CRYPTO_RNG_STRENGTH) {
+        /* MBEDTLS_PSA_CRYPTO_RNG_HASH size (in bits) must be at least
+         * MBEDTLS_PSA_CRYPTO_RNG_STRENGTH.
+         */
+        return MBEDTLS_ERR_ERROR_GENERIC_ERROR;
+    }
+#endif
 #if defined(MBEDTLS_CTR_DRBG_C)
     return mbedtls_ctr_drbg_seed(drbg_ctx, mbedtls_entropy_func, entropy, custom, len);
 #elif defined(MBEDTLS_HMAC_DRBG_C)
     const mbedtls_md_info_t *md_info = mbedtls_md_info_from_type(MBEDTLS_PSA_HMAC_DRBG_MD_TYPE);
     return mbedtls_hmac_drbg_seed(drbg_ctx, md_info, mbedtls_entropy_func, entropy, custom, len);
-#endif
+#endif /* MBEDTLS_HMAC_DRBG_C */
 }

 #endif /* MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG */
diff --git a/deps/LIEF/third-party/mbedtls/library/psa_crypto_slot_management.c b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/core/psa_crypto_slot_management.c
similarity index 90%
rename from deps/LIEF/third-party/mbedtls/library/psa_crypto_slot_management.c
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/core/psa_crypto_slot_management.c
index f1a651f0d90..c207bd8a17c 100644
--- a/deps/LIEF/third-party/mbedtls/library/psa_crypto_slot_management.c
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/core/psa_crypto_slot_management.c
@@ -6,7 +6,7 @@
  *  SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
  */

-#include "common.h"
+#include "tf_psa_crypto_common.h"

 #if defined(MBEDTLS_PSA_CRYPTO_C)

@@ -16,15 +16,13 @@
 #include "psa_crypto_driver_wrappers_no_static.h"
 #include "psa_crypto_slot_management.h"
 #include "psa_crypto_storage.h"
-#if defined(MBEDTLS_PSA_CRYPTO_SE_C)
-#include "psa_crypto_se.h"
-#endif

 #include <stdlib.h>
 #include <string.h>
 #include "mbedtls/platform.h"
 #if defined(MBEDTLS_THREADING_C)
 #include "mbedtls/threading.h"
+#include "threading_internal.h"
 #endif


@@ -691,25 +689,6 @@ static psa_status_t psa_load_persistent_key_into_slot(psa_key_slot_t *slot)
         goto exit;
     }

-#if defined(MBEDTLS_PSA_CRYPTO_SE_C)
-    /* Special handling is required for loading keys associated with a
-     * dynamically registered SE interface. */
-    const psa_drv_se_t *drv;
-    psa_drv_se_context_t *drv_context;
-    if (psa_get_se_driver(slot->attr.lifetime, &drv, &drv_context)) {
-        psa_se_key_data_storage_t *data;
-
-        if (key_data_length != sizeof(*data)) {
-            status = PSA_ERROR_DATA_INVALID;
-            goto exit;
-        }
-        data = (psa_se_key_data_storage_t *) key_data;
-        status = psa_copy_key_material_into_slot(
-            slot, data->slot_number, sizeof(data->slot_number));
-        goto exit;
-    }
-#endif /* MBEDTLS_PSA_CRYPTO_SE_C */
-
     status = psa_copy_key_material_into_slot(slot, key_data, key_data_length);
     if (status != PSA_SUCCESS) {
         goto exit;
@@ -940,31 +919,6 @@ psa_status_t psa_unregister_read_under_mutex(psa_key_slot_t *slot)
     return status;
 }

-psa_status_t psa_validate_key_location(psa_key_lifetime_t lifetime,
-                                       psa_se_drv_table_entry_t **p_drv)
-{
-    if (psa_key_lifetime_is_external(lifetime)) {
-#if defined(MBEDTLS_PSA_CRYPTO_SE_C)
-        /* Check whether a driver is registered against this lifetime */
-        psa_se_drv_table_entry_t *driver = psa_get_se_driver_entry(lifetime);
-        if (driver != NULL) {
-            if (p_drv != NULL) {
-                *p_drv = driver;
-            }
-            return PSA_SUCCESS;
-        }
-#else /* MBEDTLS_PSA_CRYPTO_SE_C */
-        (void) p_drv;
-#endif /* MBEDTLS_PSA_CRYPTO_SE_C */
-
-        /* Key location for external keys gets checked by the wrapper */
-        return PSA_SUCCESS;
-    } else {
-        /* Local/internal keys are always valid */
-        return PSA_SUCCESS;
-    }
-}
-
 psa_status_t psa_validate_key_persistence(psa_key_lifetime_t lifetime)
 {
     if (PSA_KEY_LIFETIME_IS_VOLATILE(lifetime)) {
@@ -984,75 +938,6 @@ psa_status_t psa_validate_key_persistence(psa_key_lifetime_t lifetime)
     }
 }

-psa_status_t psa_open_key(mbedtls_svc_key_id_t key, psa_key_handle_t *handle)
-{
-#if defined(MBEDTLS_PSA_CRYPTO_STORAGE_C) || \
-    defined(MBEDTLS_PSA_CRYPTO_BUILTIN_KEYS)
-    psa_status_t status;
-    psa_key_slot_t *slot;
-
-    status = psa_get_and_lock_key_slot(key, &slot);
-    if (status != PSA_SUCCESS) {
-        *handle = PSA_KEY_HANDLE_INIT;
-        if (status == PSA_ERROR_INVALID_HANDLE) {
-            status = PSA_ERROR_DOES_NOT_EXIST;
-        }
-
-        return status;
-    }
-
-    *handle = key;
-
-    return psa_unregister_read_under_mutex(slot);
-
-#else /* MBEDTLS_PSA_CRYPTO_STORAGE_C || MBEDTLS_PSA_CRYPTO_BUILTIN_KEYS */
-    (void) key;
-    *handle = PSA_KEY_HANDLE_INIT;
-    return PSA_ERROR_NOT_SUPPORTED;
-#endif /* MBEDTLS_PSA_CRYPTO_STORAGE_C || MBEDTLS_PSA_CRYPTO_BUILTIN_KEYS */
-}
-
-psa_status_t psa_close_key(psa_key_handle_t handle)
-{
-    psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED;
-    psa_key_slot_t *slot;
-
-    if (psa_key_handle_is_null(handle)) {
-        return PSA_SUCCESS;
-    }
-
-#if defined(MBEDTLS_THREADING_C)
-    /* We need to set status as success, otherwise CORRUPTION_DETECTED
-     * would be returned if the lock fails. */
-    status = PSA_SUCCESS;
-    PSA_THREADING_CHK_RET(mbedtls_mutex_lock(
-                              &mbedtls_threading_key_slot_mutex));
-#endif
-    status = psa_get_and_lock_key_slot_in_memory(handle, &slot);
-    if (status != PSA_SUCCESS) {
-        if (status == PSA_ERROR_DOES_NOT_EXIST) {
-            status = PSA_ERROR_INVALID_HANDLE;
-        }
-#if defined(MBEDTLS_THREADING_C)
-        PSA_THREADING_CHK_RET(mbedtls_mutex_unlock(
-                                  &mbedtls_threading_key_slot_mutex));
-#endif
-        return status;
-    }
-
-    if (slot->var.occupied.registered_readers == 1) {
-        status = psa_wipe_key_slot(slot);
-    } else {
-        status = psa_unregister_read(slot);
-    }
-#if defined(MBEDTLS_THREADING_C)
-    PSA_THREADING_CHK_RET(mbedtls_mutex_unlock(
-                              &mbedtls_threading_key_slot_mutex));
-#endif
-
-    return status;
-}
-
 psa_status_t psa_purge_key(mbedtls_svc_key_id_t key)
 {
     psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED;
diff --git a/deps/LIEF/third-party/mbedtls/library/psa_crypto_slot_management.h b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/core/psa_crypto_slot_management.h
similarity index 94%
rename from deps/LIEF/third-party/mbedtls/library/psa_crypto_slot_management.h
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/core/psa_crypto_slot_management.h
index af1208e3ae4..545cfd9a78f 100644
--- a/deps/LIEF/third-party/mbedtls/library/psa_crypto_slot_management.h
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/core/psa_crypto_slot_management.h
@@ -11,7 +11,6 @@

 #include "psa/crypto.h"
 #include "psa_crypto_core.h"
-#include "psa_crypto_se.h"

 /** Range of volatile key identifiers.
  *
@@ -303,23 +302,6 @@ static inline int psa_key_lifetime_is_external(psa_key_lifetime_t lifetime)
            != PSA_KEY_LOCATION_LOCAL_STORAGE;
 }

-/** Validate a key's location.
- *
- * This function checks whether the key's attributes point to a location that
- * is known to the PSA Core, and returns the driver function table if the key
- * is to be found in an external location.
- *
- * \param[in] lifetime      The key lifetime attribute.
- * \param[out] p_drv        On success, when a key is located in external
- *                          storage, returns a pointer to the driver table
- *                          associated with the key's storage location.
- *
- * \retval #PSA_SUCCESS \emptydescription
- * \retval #PSA_ERROR_INVALID_ARGUMENT \emptydescription
- */
-psa_status_t psa_validate_key_location(psa_key_lifetime_t lifetime,
-                                       psa_se_drv_table_entry_t **p_drv);
-
 /** Validate the persistence of a key.
  *
  * \param[in] lifetime  The key lifetime attribute.
diff --git a/deps/LIEF/third-party/mbedtls/library/psa_crypto_storage.c b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/core/psa_crypto_storage.c
similarity index 83%
rename from deps/LIEF/third-party/mbedtls/library/psa_crypto_storage.c
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/core/psa_crypto_storage.c
index 7d1317b45a1..05755c31226 100644
--- a/deps/LIEF/third-party/mbedtls/library/psa_crypto_storage.c
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/core/psa_crypto_storage.c
@@ -6,7 +6,7 @@
  *  SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
  */

-#include "common.h"
+#include "tf_psa_crypto_common.h"

 #if defined(MBEDTLS_PSA_CRYPTO_STORAGE_C)

@@ -393,87 +393,6 @@ exit:



-/****************************************************************/
-/* Transactions */
-/****************************************************************/
-
-#if defined(PSA_CRYPTO_STORAGE_HAS_TRANSACTIONS)
-
-psa_crypto_transaction_t psa_crypto_transaction;
-
-psa_status_t psa_crypto_save_transaction(void)
-{
-    struct psa_storage_info_t p_info;
-    psa_status_t status;
-    status = psa_its_get_info(PSA_CRYPTO_ITS_TRANSACTION_UID, &p_info);
-    if (status == PSA_SUCCESS) {
-        /* This shouldn't happen: we're trying to start a transaction while
-         * there is still a transaction that hasn't been replayed. */
-        return PSA_ERROR_CORRUPTION_DETECTED;
-    } else if (status != PSA_ERROR_DOES_NOT_EXIST) {
-        return status;
-    }
-    return psa_its_set(PSA_CRYPTO_ITS_TRANSACTION_UID,
-                       sizeof(psa_crypto_transaction),
-                       &psa_crypto_transaction,
-                       0);
-}
-
-psa_status_t psa_crypto_load_transaction(void)
-{
-    psa_status_t status;
-    size_t length;
-    status = psa_its_get(PSA_CRYPTO_ITS_TRANSACTION_UID, 0,
-                         sizeof(psa_crypto_transaction),
-                         &psa_crypto_transaction, &length);
-    if (status != PSA_SUCCESS) {
-        return status;
-    }
-    if (length != sizeof(psa_crypto_transaction)) {
-        return PSA_ERROR_DATA_INVALID;
-    }
-    return PSA_SUCCESS;
-}
-
-psa_status_t psa_crypto_stop_transaction(void)
-{
-    psa_status_t status = psa_its_remove(PSA_CRYPTO_ITS_TRANSACTION_UID);
-    /* Whether or not updating the storage succeeded, the transaction is
-     * finished now. It's too late to go back, so zero out the in-memory
-     * data. */
-    memset(&psa_crypto_transaction, 0, sizeof(psa_crypto_transaction));
-    return status;
-}
-
-#endif /* PSA_CRYPTO_STORAGE_HAS_TRANSACTIONS */
-
-
-
-/****************************************************************/
-/* Random generator state */
-/****************************************************************/
-
-#if defined(MBEDTLS_PSA_INJECT_ENTROPY)
-psa_status_t mbedtls_psa_storage_inject_entropy(const unsigned char *seed,
-                                                size_t seed_size)
-{
-    psa_status_t status;
-    struct psa_storage_info_t p_info;
-
-    status = psa_its_get_info(PSA_CRYPTO_ITS_RANDOM_SEED_UID, &p_info);
-
-    if (PSA_ERROR_DOES_NOT_EXIST == status) { /* No seed exists */
-        status = psa_its_set(PSA_CRYPTO_ITS_RANDOM_SEED_UID, seed_size, seed, 0);
-    } else if (PSA_SUCCESS == status) {
-        /* You should not be here. Seed needs to be injected only once */
-        status = PSA_ERROR_NOT_PERMITTED;
-    }
-    return status;
-}
-#endif /* MBEDTLS_PSA_INJECT_ENTROPY */
-
-
-
 /****************************************************************/
 /* The end */
 /****************************************************************/
diff --git a/deps/LIEF/third-party/mbedtls/library/psa_crypto_storage.h b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/core/psa_crypto_storage.h
similarity index 51%
rename from deps/LIEF/third-party/mbedtls/library/psa_crypto_storage.h
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/core/psa_crypto_storage.h
index 433ecdca514..7719a1a6d84 100644
--- a/deps/LIEF/third-party/mbedtls/library/psa_crypto_storage.h
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/core/psa_crypto_storage.h
@@ -16,7 +16,6 @@ extern "C" {
 #endif

 #include "psa/crypto.h"
-#include "psa/crypto_se_driver.h"

 #include <stdint.h>
 #include <string.h>
@@ -195,196 +194,6 @@ psa_status_t psa_parse_key_data_from_storage(const uint8_t *storage_data,
                                              size_t *key_data_length,
                                              psa_key_attributes_t *attr);

-#if defined(MBEDTLS_PSA_CRYPTO_SE_C)
-/** This symbol is defined if transaction support is required. */
-#define PSA_CRYPTO_STORAGE_HAS_TRANSACTIONS 1
-#endif
-
-#if defined(PSA_CRYPTO_STORAGE_HAS_TRANSACTIONS)
-
-/** The type of transaction that is in progress.
- */
-/* This is an integer type rather than an enum for two reasons: to support
- * unknown values when loading a transaction file, and to ensure that the
- * type has a known size.
- */
-typedef uint16_t psa_crypto_transaction_type_t;
-
-/** No transaction is in progress.
- *
- * This has the value 0, so zero-initialization sets a transaction's type to
- * this value.
- */
-#define PSA_CRYPTO_TRANSACTION_NONE             ((psa_crypto_transaction_type_t) 0x0000)
-
-/** A key creation transaction.
- *
- * This is only used for keys in an external cryptoprocessor (secure element).
- * Keys in RAM or in internal storage are created atomically in storage
- * (simple file creation), so they do not need a transaction mechanism.
- */
-#define PSA_CRYPTO_TRANSACTION_CREATE_KEY       ((psa_crypto_transaction_type_t) 0x0001)
-
-/** A key destruction transaction.
- *
- * This is only used for keys in an external cryptoprocessor (secure element).
- * Keys in RAM or in internal storage are destroyed atomically in storage
- * (simple file deletion), so they do not need a transaction mechanism.
- */
-#define PSA_CRYPTO_TRANSACTION_DESTROY_KEY      ((psa_crypto_transaction_type_t) 0x0002)
-
-/** Transaction data.
- *
- * This type is designed to be serialized by writing the memory representation
- * and reading it back on the same device.
- *
- * \note The transaction mechanism is not thread-safe. There can only be one
- *       single active transaction at a time.
- *       The transaction object is #psa_crypto_transaction.
- *
- * \note If an API call starts a transaction, it must complete this transaction
- *       before returning to the application.
- *
- * The lifetime of a transaction is the following (note that only one
- * transaction may be active at a time):
- *
- * -# Call psa_crypto_prepare_transaction() to initialize the transaction
- *    object in memory and declare the type of transaction that is starting.
- * -# Fill in the type-specific fields of #psa_crypto_transaction.
- * -# Call psa_crypto_save_transaction() to start the transaction. This
- *    saves the transaction data to internal storage.
- * -# Perform the work of the transaction by modifying files, contacting
- *    external entities, or whatever needs doing. Note that the transaction
- *    may be interrupted by a power failure, so you need to have a way
- *    recover from interruptions either by undoing what has been done
- *    so far or by resuming where you left off.
- * -# If there are intermediate stages in the transaction, update
- *    the fields of #psa_crypto_transaction and call
- *    psa_crypto_save_transaction() again when each stage is reached.
- * -# When the transaction is over, call psa_crypto_stop_transaction() to
- *    remove the transaction data in storage and in memory.
- *
- * If the system crashes while a transaction is in progress, psa_crypto_init()
- * calls psa_crypto_load_transaction() and takes care of completing or
- * rewinding the transaction. This is done in psa_crypto_recover_transaction()
- * in psa_crypto.c. If you add a new type of transaction, be
- * sure to add code for it in psa_crypto_recover_transaction().
- */
-typedef union {
-    /* Each element of this union must have the following properties
-     * to facilitate serialization and deserialization:
-     *
-     * - The element is a struct.
-     * - The first field of the struct is `psa_crypto_transaction_type_t type`.
-     * - Elements of the struct are arranged such a way that there is
-     *   no padding.
-     */
-    struct psa_crypto_transaction_unknown_s {
-        psa_crypto_transaction_type_t type;
-        uint16_t unused1;
-        uint32_t unused2;
-        uint64_t unused3;
-        uint64_t unused4;
-    } unknown;
-    /* ::type is #PSA_CRYPTO_TRANSACTION_CREATE_KEY or
-     * #PSA_CRYPTO_TRANSACTION_DESTROY_KEY. */
-    struct psa_crypto_transaction_key_s {
-        psa_crypto_transaction_type_t type;
-        uint16_t unused1;
-        psa_key_lifetime_t lifetime;
-        psa_key_slot_number_t slot;
-        mbedtls_svc_key_id_t id;
-    } key;
-} psa_crypto_transaction_t;
-
-/** The single active transaction.
- */
-extern psa_crypto_transaction_t psa_crypto_transaction;
-
-/** Prepare for a transaction.
- *
- * There must not be an ongoing transaction.
- *
- * \param type          The type of transaction to start.
- */
-static inline void psa_crypto_prepare_transaction(
-    psa_crypto_transaction_type_t type)
-{
-    psa_crypto_transaction.unknown.type = type;
-}
-
-/** Save the transaction data to storage.
- *
- * You may call this function multiple times during a transaction to
- * atomically update the transaction state.
- *
- * \retval #PSA_SUCCESS \emptydescription
- * \retval #PSA_ERROR_DATA_CORRUPT \emptydescription
- * \retval #PSA_ERROR_INSUFFICIENT_STORAGE \emptydescription
- * \retval #PSA_ERROR_STORAGE_FAILURE \emptydescription
- */
-psa_status_t psa_crypto_save_transaction(void);
-
-/** Load the transaction data from storage, if any.
- *
- * This function is meant to be called from psa_crypto_init() to recover
- * in case a transaction was interrupted by a system crash.
- *
- * \retval #PSA_SUCCESS
- *         The data about the ongoing transaction has been loaded to
- *         #psa_crypto_transaction.
- * \retval #PSA_ERROR_DOES_NOT_EXIST
- *         There is no ongoing transaction.
- * \retval #PSA_ERROR_STORAGE_FAILURE \emptydescription
- * \retval #PSA_ERROR_DATA_INVALID \emptydescription
- * \retval #PSA_ERROR_DATA_CORRUPT \emptydescription
- */
-psa_status_t psa_crypto_load_transaction(void);
-
-/** Indicate that the current transaction is finished.
- *
- * Call this function at the very end of transaction processing.
- * This function does not "commit" or "abort" the transaction: the storage
- * subsystem has no concept of "commit" and "abort", just saving and
- * removing the transaction information in storage.
- *
- * This function erases the transaction data in storage (if any) and
- * resets the transaction data in memory.
- *
- * \retval #PSA_SUCCESS
- *         There was transaction data in storage.
- * \retval #PSA_ERROR_DOES_NOT_EXIST
- *         There was no transaction data in storage.
- * \retval #PSA_ERROR_STORAGE_FAILURE
- *         It was impossible to determine whether there was transaction data
- *         in storage, or the transaction data could not be erased.
- */
-psa_status_t psa_crypto_stop_transaction(void);
-
-/** The ITS file identifier for the transaction data.
- *
- * 0xffffffNN = special file; 0x74 = 't' for transaction.
- */
-#define PSA_CRYPTO_ITS_TRANSACTION_UID ((psa_key_id_t) 0xffffff74)
-
-#endif /* PSA_CRYPTO_STORAGE_HAS_TRANSACTIONS */
-
-#if defined(MBEDTLS_PSA_INJECT_ENTROPY)
-/** Backend side of mbedtls_psa_inject_entropy().
- *
- * This function stores the supplied data into the entropy seed file.
- *
- * \retval #PSA_SUCCESS
- *         Success
- * \retval #PSA_ERROR_STORAGE_FAILURE \emptydescription
- * \retval #PSA_ERROR_INSUFFICIENT_STORAGE \emptydescription
- * \retval #PSA_ERROR_NOT_PERMITTED
- *         The entropy seed file already exists.
- */
-psa_status_t mbedtls_psa_storage_inject_entropy(const unsigned char *seed,
-                                                size_t seed_size);
-#endif /* MBEDTLS_PSA_INJECT_ENTROPY */
-
 #ifdef __cplusplus
 }
 #endif
diff --git a/deps/LIEF/third-party/mbedtls/library/psa_its_file.c b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/core/psa_its_file.c
similarity index 99%
rename from deps/LIEF/third-party/mbedtls/library/psa_its_file.c
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/core/psa_its_file.c
index 95671374837..79290b29ebf 100644
--- a/deps/LIEF/third-party/mbedtls/library/psa_its_file.c
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/core/psa_its_file.c
@@ -6,7 +6,7 @@
  *  SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
  */

-#include "common.h"
+#include "tf_psa_crypto_common.h"

 #if defined(MBEDTLS_PSA_ITS_FILE_C)

diff --git a/deps/LIEF/third-party/mbedtls/tf-psa-crypto/core/tf_psa_crypto_check_config.h b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/core/tf_psa_crypto_check_config.h
new file mode 100644
index 00000000000..0ccbeac3953
--- /dev/null
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/core/tf_psa_crypto_check_config.h
@@ -0,0 +1,608 @@
+/**
+ * \file tf-psa-crypto/check_config.h
+ *
+ * \brief Consistency checks for configuration options
+ *
+ * This is an internal header. Do not include it directly.
+ *
+ * This header is included automatically by all public TF-PSA-Crypto headers
+ * (via tf-psa-crypto/build_info.h). Do not include it directly in a
+ * configuration file such as psa/crypto_config.h or #TF_PSA_CRYPTO_USER_CONFIG_FILE!
+ * It would run at the wrong time due to missing derived symbols.
+ */
+/*
+ *  Copyright The Mbed TLS Contributors
+ *  SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+ */
+
+#ifndef TF_PSA_CRYPTO_CHECK_CONFIG_H
+#define TF_PSA_CRYPTO_CHECK_CONFIG_H
+
+/* *INDENT-OFF* */
+
+#if !defined(TF_PSA_CRYPTO_CONFIG_IS_FINALIZED)
+#warning "Do not include mbedtls/check_config.h manually! " \
+         "This may cause spurious errors. " \
+         "It is included automatically at the right point since Mbed TLS 3.0."
+#endif /* !TF_PSA_CRYPTO_CONFIG_IS_FINALIZED */
+
+/*
+ * We assume CHAR_BIT is 8 in many places. In practice, this is true on our
+ * target platforms, so not an issue, but let's just be extra sure.
+ */
+#include <limits.h>
+#if CHAR_BIT != 8
+#error "Mbed TLS requires a platform with 8-bit chars"
+#endif
+
+#include <stdint.h>
+
+#if defined(__MINGW32__) || (defined(_MSC_VER) && _MSC_VER <= 1900)
+#if !defined(MBEDTLS_PLATFORM_C)
+#error "MBEDTLS_PLATFORM_C is required on Windows"
+#endif
+/* See auto-enabling SNPRINTF_ALT and VSNPRINTF_ALT
+ * in * config_adjust_legacy_crypto.h */
+#endif /* _MINGW32__ || (_MSC_VER && (_MSC_VER <= 1900)) */
+
+#if defined(MBEDTLS_DEPRECATED_WARNING) && \
+    !defined(__GNUC__) && !defined(__clang__)
+#error "MBEDTLS_DEPRECATED_WARNING only works with GCC and Clang"
+#endif
+
+/* Limitations on ECC key types acceleration: if we have any of `PUBLIC_KEY`,
+ * `KEY_PAIR_BASIC`, `KEY_PAIR_IMPORT`, `KEY_PAIR_EXPORT` then we must have
+ * all 4 of them.
+ */
+#if defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_ECC_PUBLIC_KEY) || \
+    defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_BASIC) || \
+    defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_IMPORT) || \
+    defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_EXPORT)
+#if !defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_ECC_PUBLIC_KEY) || \
+    !defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_BASIC) || \
+    !defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_IMPORT) || \
+    !defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_EXPORT)
+#error "Unsupported partial support for ECC key type acceleration, see docs/driver-only-builds.md"
+#endif /* not all of public, basic, import, export */
+#endif /* one of public, basic, import, export */
+
+/* Limitations on ECC curves acceleration: partial curve acceleration is only
+ * supported with crypto excluding PK, X.509 or TLS.
+ * Note: no need to check X.509 as it depends on PK. */
+#if defined(MBEDTLS_PSA_ACCEL_ECC_BRAINPOOL_P_R1_256) || \
+    defined(MBEDTLS_PSA_ACCEL_ECC_BRAINPOOL_P_R1_384) || \
+    defined(MBEDTLS_PSA_ACCEL_ECC_BRAINPOOL_P_R1_512) || \
+    defined(MBEDTLS_PSA_ACCEL_ECC_MONTGOMERY_255) || \
+    defined(MBEDTLS_PSA_ACCEL_ECC_MONTGOMERY_448) || \
+    defined(MBEDTLS_PSA_ACCEL_ECC_SECP_K1_192) || \
+    defined(MBEDTLS_PSA_ACCEL_ECC_SECP_K1_256) || \
+    defined(MBEDTLS_PSA_ACCEL_ECC_SECP_R1_192) || \
+    defined(MBEDTLS_PSA_ACCEL_ECC_SECP_R1_256) || \
+    defined(MBEDTLS_PSA_ACCEL_ECC_SECP_R1_384) || \
+    defined(MBEDTLS_PSA_ACCEL_ECC_SECP_R1_521)
+#if defined(MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_CURVES)
+#if defined(MBEDTLS_PK_C)
+#error "Unsupported partial support for ECC curves acceleration, see docs/driver-only-builds.md"
+#endif /* modules beyond what's supported */
+#endif /* not all curves accelerated */
+#endif /* some curve accelerated */
+
+#if defined(MBEDTLS_CTR_DRBG_C) && !(defined(MBEDTLS_AES_C) || \
+    (defined(MBEDTLS_PSA_CRYPTO_CLIENT) && defined(PSA_WANT_KEY_TYPE_AES) && \
+    defined(PSA_WANT_ALG_ECB_NO_PADDING)))
+#error "MBEDTLS_CTR_DRBG_C defined, but not all prerequisites"
+#endif
+
+#if defined(MBEDTLS_CMAC_C) && \
+    ( !defined(MBEDTLS_CIPHER_C ) || !defined(MBEDTLS_AES_C) )
+#error "MBEDTLS_CMAC_C defined, but not all prerequisites"
+#endif
+
+#if defined(MBEDTLS_BLOCK_CIPHER_NO_DECRYPT)
+#if defined(PSA_WANT_ALG_CBC_NO_PADDING)
+#error "MBEDTLS_BLOCK_CIPHER_NO_DECRYPT and PSA_WANT_ALG_CBC_NO_PADDING cannot be defined simultaneously"
+#endif
+#if defined(PSA_WANT_ALG_CBC_PKCS7)
+#error "MBEDTLS_BLOCK_CIPHER_NO_DECRYPT and PSA_WANT_ALG_CBC_PKCS7 cannot be defined simultaneously"
+#endif
+#if defined(PSA_WANT_ALG_ECB_NO_PADDING)
+#error "MBEDTLS_BLOCK_CIPHER_NO_DECRYPT and PSA_WANT_ALG_ECB_NO_PADDING cannot be defined simultaneously"
+#endif
+#if defined(MBEDTLS_NIST_KW_C)
+#error "MBEDTLS_BLOCK_CIPHER_NO_DECRYPT and MBEDTLS_NIST_KW_C cannot be defined simultaneously"
+#endif
+#endif
+
+#if defined(MBEDTLS_ECDSA_C) && \
+    !( defined(MBEDTLS_ECP_DP_SECP192R1_ENABLED) || \
+       defined(MBEDTLS_ECP_DP_SECP256R1_ENABLED) || \
+       defined(MBEDTLS_ECP_DP_SECP384R1_ENABLED) || \
+       defined(MBEDTLS_ECP_DP_SECP521R1_ENABLED) || \
+       defined(MBEDTLS_ECP_DP_SECP192K1_ENABLED) || \
+       defined(MBEDTLS_ECP_DP_SECP256K1_ENABLED) || \
+       defined(MBEDTLS_ECP_DP_BP256R1_ENABLED) ||   \
+       defined(MBEDTLS_ECP_DP_BP384R1_ENABLED) ||   \
+       defined(MBEDTLS_ECP_DP_BP512R1_ENABLED) )
+#error "Built-in ECDSA implementation enabled but no suitable curve"
+#endif
+
+#if defined(MBEDTLS_PK_C)
+#if defined(PSA_HAVE_ALG_ECDSA_SIGN) && !defined(MBEDTLS_ASN1_WRITE_C)
+#error "MBEDTLS_PK_C needs MBEDTLS_ASN1_WRITE_C for ECDSA signature"
+#endif
+#if defined(PSA_HAVE_ALG_ECDSA_VERIFY) && !defined(MBEDTLS_ASN1_PARSE_C)
+#error "MBEDTLS_PK_C needs MBEDTLS_ASN1_PARSE_C for ECDSA verification"
+#endif
+#endif /* MBEDTLS_PK_C */
+
+#if defined(MBEDTLS_ECP_RESTARTABLE)           && \
+    !defined(MBEDTLS_ECP_C)
+#error "MBEDTLS_ECP_RESTARTABLE defined, but not all prerequisites"
+#endif
+
+#if defined(MBEDTLS_ECP_LIGHT) && ( !defined(MBEDTLS_BIGNUM_C) || (    \
+    !defined(MBEDTLS_ECP_DP_SECP192R1_ENABLED) &&                  \
+    !defined(MBEDTLS_ECP_DP_SECP256R1_ENABLED) &&                  \
+    !defined(MBEDTLS_ECP_DP_SECP384R1_ENABLED) &&                  \
+    !defined(MBEDTLS_ECP_DP_SECP521R1_ENABLED) &&                  \
+    !defined(MBEDTLS_ECP_DP_BP256R1_ENABLED)   &&                  \
+    !defined(MBEDTLS_ECP_DP_BP384R1_ENABLED)   &&                  \
+    !defined(MBEDTLS_ECP_DP_BP512R1_ENABLED)   &&                  \
+    !defined(MBEDTLS_ECP_DP_SECP192K1_ENABLED) &&                  \
+    !defined(MBEDTLS_ECP_DP_SECP256K1_ENABLED) &&                  \
+    !defined(MBEDTLS_ECP_DP_CURVE25519_ENABLED) &&                 \
+    !defined(MBEDTLS_ECP_DP_CURVE448_ENABLED) ) )
+#error "Generic elliptic curve module or a subset enabled, but not all prerequisites"
+#endif
+
+#if defined(MBEDTLS_ENTROPY_C)
+#  if !defined(MBEDTLS_ENTROPY_HAVE_SOURCES)
+     /* The entropy module needs at least one entropy source, such as
+      * #MBEDTLS_PSA_BUILTIN_GET_ENTROPY or #MBEDTLS_PSA_DRIVER_GET_ENTROPY
+      * or #MBEDTLS_ENTROPY_NV_SEED.
+      *
+      * If your platform has a cryptographic-quality random generator,
+      * enable #MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG.
+      */
+#    error "Entropy module enabled, but no sources"
+#  elif MBEDTLS_ENTROPY_TRUE_SOURCES == 0
+#    if !defined(MBEDTLS_ENTROPY_NO_SOURCES_OK)
+       /* Having only the NV seed as an entropy source weakens security.
+        * To indicate that this is acceptable, define
+        * MBEDTLS_ENTROPY_NO_SOURCES_OK. */
+#      error "Entropy module enabled, but no true sources"
+#    endif
+#  endif
+#endif
+
+#if defined(MBEDTLS_ENTROPY_C) && \
+    !(defined(PSA_WANT_ALG_SHA_512) || defined(PSA_WANT_ALG_SHA_256))
+#error "Entropy module enabled but neither SHA-256 nor SHA-512 is available"
+#endif
+
+#if (MBEDTLS_PSA_CRYPTO_RNG_STRENGTH != 128) && \
+    (MBEDTLS_PSA_CRYPTO_RNG_STRENGTH != 256)
+#error "MBEDTLS_PSA_CRYPTO_RNG_STRENGTH must be 128 or 256"
+#endif
+
+#if defined(__has_feature)
+#if __has_feature(memory_sanitizer)
+#define MBEDTLS_HAS_MEMSAN // #undef at the end of this paragraph
+#endif
+#endif
+#if defined(MBEDTLS_TEST_CONSTANT_FLOW_MEMSAN) &&  !defined(MBEDTLS_HAS_MEMSAN)
+#error "MBEDTLS_TEST_CONSTANT_FLOW_MEMSAN requires building with MemorySanitizer"
+#endif
+#if defined(MBEDTLS_HAS_MEMSAN) && defined(MBEDTLS_HAVE_ASM)
+#error "MemorySanitizer does not support assembly implementation"
+#endif
+#undef MBEDTLS_HAS_MEMSAN // temporary macro defined above
+
+#if defined(MBEDTLS_CCM_C) && \
+    !(defined(MBEDTLS_CCM_GCM_CAN_AES) || defined(MBEDTLS_CCM_GCM_CAN_ARIA) || \
+    defined(MBEDTLS_CCM_GCM_CAN_CAMELLIA))
+#error "Built-in CCM implementation enabled, but not all prerequisites"
+#endif
+
+#if defined(MBEDTLS_GCM_C) && \
+    !(defined(MBEDTLS_CCM_GCM_CAN_AES) || defined(MBEDTLS_CCM_GCM_CAN_ARIA) || \
+    defined(MBEDTLS_CCM_GCM_CAN_CAMELLIA))
+#error "Built-in GCM implementation enabled, but not all prerequisites"
+#endif
+
+#if defined(MBEDTLS_HMAC_DRBG_C) && !defined(MBEDTLS_MD_C)
+#error "MBEDTLS_HMAC_DRBG_C defined, but not all prerequisites"
+#endif
+
+#if defined(MBEDTLS_MD_C) && \
+    !defined(PSA_WANT_ALG_MD5) && \
+    !defined(PSA_WANT_ALG_RIPEMD160) && \
+    !defined(PSA_WANT_ALG_SHA_1) && \
+    !defined(PSA_WANT_ALG_SHA_224) && \
+    !defined(PSA_WANT_ALG_SHA_256) && \
+    !defined(PSA_WANT_ALG_SHA_384) && \
+    !defined(PSA_WANT_ALG_SHA_512) && \
+    !defined(PSA_WANT_ALG_SHA3_224) && \
+    !defined(PSA_WANT_ALG_SHA3_256) && \
+    !defined(PSA_WANT_ALG_SHA3_384) && \
+    !defined(PSA_WANT_ALG_SHA3_512)
+#error "MBEDTLS_MD_C defined, but no hash algorithm"
+#endif
+
+#if defined(MBEDTLS_LMS_C) &&                                          \
+    ! ( defined(MBEDTLS_PSA_CRYPTO_CLIENT) && defined(PSA_WANT_ALG_SHA_256) )
+#error "MBEDTLS_LMS_C requires MBEDTLS_PSA_CRYPTO_C and PSA_WANT_ALG_SHA_256"
+#endif
+
+#if defined(MBEDTLS_LMS_PRIVATE) &&                                    \
+    ( !defined(MBEDTLS_LMS_C) )
+#error "MBEDTLS_LMS_PRIVATE requires MBEDTLS_LMS_C"
+#endif
+
+#if defined(MBEDTLS_MEMORY_BUFFER_ALLOC_C) &&                          \
+    ( !defined(MBEDTLS_PLATFORM_C) || !defined(MBEDTLS_PLATFORM_MEMORY) )
+#error "MBEDTLS_MEMORY_BUFFER_ALLOC_C defined, but not all prerequisites"
+#endif
+
+#if defined(MBEDTLS_MEMORY_BACKTRACE) && !defined(MBEDTLS_MEMORY_BUFFER_ALLOC_C)
+#error "MBEDTLS_MEMORY_BACKTRACE defined, but not all prerequisites"
+#endif
+
+#if defined(MBEDTLS_MEMORY_DEBUG) && !defined(MBEDTLS_MEMORY_BUFFER_ALLOC_C)
+#error "MBEDTLS_MEMORY_DEBUG defined, but not all prerequisites"
+#endif
+
+#if defined(MBEDTLS_PEM_PARSE_C) && !defined(MBEDTLS_BASE64_C)
+#error "MBEDTLS_PEM_PARSE_C defined, but not all prerequisites"
+#endif
+
+#if defined(MBEDTLS_PEM_WRITE_C) && !defined(MBEDTLS_BASE64_C)
+#error "MBEDTLS_PEM_WRITE_C defined, but not all prerequisites"
+#endif
+
+#if defined(MBEDTLS_PK_C) && \
+    !defined(MBEDTLS_RSA_C) && !defined(PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY)
+#error "MBEDTLS_PK_C defined, but not all prerequisites"
+#endif
+
+#if defined(MBEDTLS_PK_PARSE_C) && \
+    (!defined(MBEDTLS_ASN1_PARSE_C) || \
+     !defined(MBEDTLS_PK_C))
+#error "MBEDTLS_PK_PARSE_C defined, but not all prerequisites"
+#endif
+
+#if defined(MBEDTLS_PK_WRITE_C) && \
+    (!defined(MBEDTLS_ASN1_WRITE_C) || \
+     !defined(MBEDTLS_PK_C))
+#error "MBEDTLS_PK_WRITE_C defined, but not all prerequisites"
+#endif
+
+#if defined(MBEDTLS_PLATFORM_EXIT_ALT) && !defined(MBEDTLS_PLATFORM_C)
+#error "MBEDTLS_PLATFORM_EXIT_ALT defined, but not all prerequisites"
+#endif
+
+#if defined(MBEDTLS_PLATFORM_EXIT_MACRO) && !defined(MBEDTLS_PLATFORM_C)
+#error "MBEDTLS_PLATFORM_EXIT_MACRO defined, but not all prerequisites"
+#endif
+
+#if defined(MBEDTLS_PLATFORM_EXIT_MACRO) &&\
+    ( defined(MBEDTLS_PLATFORM_STD_EXIT) ||\
+        defined(MBEDTLS_PLATFORM_EXIT_ALT) )
+#error "MBEDTLS_PLATFORM_EXIT_MACRO and MBEDTLS_PLATFORM_STD_EXIT/MBEDTLS_PLATFORM_EXIT_ALT cannot be defined simultaneously"
+#endif
+
+#if defined(MBEDTLS_PLATFORM_SETBUF_ALT) && !defined(MBEDTLS_PLATFORM_C)
+#error "MBEDTLS_PLATFORM_SETBUF_ALT defined, but not all prerequisites"
+#endif
+
+#if defined(MBEDTLS_PLATFORM_SETBUF_MACRO) && !defined(MBEDTLS_PLATFORM_C)
+#error "MBEDTLS_PLATFORM_SETBUF_MACRO defined, but not all prerequisites"
+#endif
+
+#if defined(MBEDTLS_PLATFORM_SETBUF_MACRO) &&\
+    ( defined(MBEDTLS_PLATFORM_STD_SETBUF) ||\
+        defined(MBEDTLS_PLATFORM_SETBUF_ALT) )
+#error "MBEDTLS_PLATFORM_SETBUF_MACRO and MBEDTLS_PLATFORM_STD_SETBUF/MBEDTLS_PLATFORM_SETBUF_ALT cannot be defined simultaneously"
+#endif
+
+#if defined(MBEDTLS_PLATFORM_TIME_ALT) &&\
+    ( !defined(MBEDTLS_PLATFORM_C) ||\
+        !defined(MBEDTLS_HAVE_TIME) )
+#error "MBEDTLS_PLATFORM_TIME_ALT defined, but not all prerequisites"
+#endif
+
+#if defined(MBEDTLS_PLATFORM_TIME_MACRO) &&\
+    ( !defined(MBEDTLS_PLATFORM_C) ||\
+        !defined(MBEDTLS_HAVE_TIME) )
+#error "MBEDTLS_PLATFORM_TIME_MACRO defined, but not all prerequisites"
+#endif
+
+#if defined(MBEDTLS_PLATFORM_MS_TIME_TYPE_MACRO) &&\
+    ( !defined(MBEDTLS_PLATFORM_C) || !defined(MBEDTLS_HAVE_TIME) )
+#error "MBEDTLS_PLATFORM_MS_TIME_TYPE_MACRO defined, but not all prerequisites"
+#endif
+
+#if defined(MBEDTLS_PLATFORM_MS_TIME_ALT)   && \
+    ( !defined(MBEDTLS_PLATFORM_C) || !defined(MBEDTLS_HAVE_TIME) )
+#error "MBEDTLS_PLATFORM_MS_TIME_ALT defined, but not all prerequisites"
+#endif
+
+#if defined(MBEDTLS_PLATFORM_TIME_TYPE_MACRO) &&\
+    ( !defined(MBEDTLS_PLATFORM_C) ||\
+        !defined(MBEDTLS_HAVE_TIME) )
+#error "MBEDTLS_PLATFORM_TIME_TYPE_MACRO defined, but not all prerequisites"
+#endif
+
+#if defined(MBEDTLS_PLATFORM_TIME_MACRO) &&\
+    ( defined(MBEDTLS_PLATFORM_STD_TIME) ||\
+        defined(MBEDTLS_PLATFORM_TIME_ALT) )
+#error "MBEDTLS_PLATFORM_TIME_MACRO and MBEDTLS_PLATFORM_STD_TIME/MBEDTLS_PLATFORM_TIME_ALT cannot be defined simultaneously"
+#endif
+
+#if defined(MBEDTLS_PLATFORM_TIME_TYPE_MACRO) &&\
+    ( defined(MBEDTLS_PLATFORM_STD_TIME) ||\
+        defined(MBEDTLS_PLATFORM_TIME_ALT) )
+#error "MBEDTLS_PLATFORM_TIME_TYPE_MACRO and MBEDTLS_PLATFORM_STD_TIME/MBEDTLS_PLATFORM_TIME_ALT cannot be defined simultaneously"
+#endif
+
+#if defined(MBEDTLS_PLATFORM_FPRINTF_ALT) && !defined(MBEDTLS_PLATFORM_C)
+#error "MBEDTLS_PLATFORM_FPRINTF_ALT defined, but not all prerequisites"
+#endif
+
+#if defined(MBEDTLS_PLATFORM_FPRINTF_MACRO) && !defined(MBEDTLS_PLATFORM_C)
+#error "MBEDTLS_PLATFORM_FPRINTF_MACRO defined, but not all prerequisites"
+#endif
+
+#if defined(MBEDTLS_PLATFORM_FPRINTF_MACRO) &&\
+    ( defined(MBEDTLS_PLATFORM_STD_FPRINTF) ||\
+        defined(MBEDTLS_PLATFORM_FPRINTF_ALT) )
+#error "MBEDTLS_PLATFORM_FPRINTF_MACRO and MBEDTLS_PLATFORM_STD_FPRINTF/MBEDTLS_PLATFORM_FPRINTF_ALT cannot be defined simultaneously"
+#endif
+
+#if defined(MBEDTLS_PLATFORM_FREE_MACRO) &&\
+    ( !defined(MBEDTLS_PLATFORM_C) || !defined(MBEDTLS_PLATFORM_MEMORY) )
+#error "MBEDTLS_PLATFORM_FREE_MACRO defined, but not all prerequisites"
+#endif
+
+#if defined(MBEDTLS_PLATFORM_FREE_MACRO) &&\
+    defined(MBEDTLS_PLATFORM_STD_FREE)
+#error "MBEDTLS_PLATFORM_FREE_MACRO and MBEDTLS_PLATFORM_STD_FREE cannot be defined simultaneously"
+#endif
+
+#if defined(MBEDTLS_PLATFORM_FREE_MACRO) && !defined(MBEDTLS_PLATFORM_CALLOC_MACRO)
+#error "MBEDTLS_PLATFORM_CALLOC_MACRO must be defined if MBEDTLS_PLATFORM_FREE_MACRO is"
+#endif
+
+#if defined(MBEDTLS_PLATFORM_CALLOC_MACRO) &&\
+    ( !defined(MBEDTLS_PLATFORM_C) || !defined(MBEDTLS_PLATFORM_MEMORY) )
+#error "MBEDTLS_PLATFORM_CALLOC_MACRO defined, but not all prerequisites"
+#endif
+
+#if defined(MBEDTLS_PLATFORM_CALLOC_MACRO) &&\
+    defined(MBEDTLS_PLATFORM_STD_CALLOC)
+#error "MBEDTLS_PLATFORM_CALLOC_MACRO and MBEDTLS_PLATFORM_STD_CALLOC cannot be defined simultaneously"
+#endif
+
+#if defined(MBEDTLS_PLATFORM_CALLOC_MACRO) && !defined(MBEDTLS_PLATFORM_FREE_MACRO)
+#error "MBEDTLS_PLATFORM_FREE_MACRO must be defined if MBEDTLS_PLATFORM_CALLOC_MACRO is"
+#endif
+
+#if defined(MBEDTLS_PLATFORM_MEMORY) && !defined(MBEDTLS_PLATFORM_C)
+#error "MBEDTLS_PLATFORM_MEMORY defined, but not all prerequisites"
+#endif
+
+#if defined(MBEDTLS_PLATFORM_PRINTF_ALT) && !defined(MBEDTLS_PLATFORM_C)
+#error "MBEDTLS_PLATFORM_PRINTF_ALT defined, but not all prerequisites"
+#endif
+
+#if defined(MBEDTLS_PLATFORM_PRINTF_MACRO) && !defined(MBEDTLS_PLATFORM_C)
+#error "MBEDTLS_PLATFORM_PRINTF_MACRO defined, but not all prerequisites"
+#endif
+
+#if defined(MBEDTLS_PLATFORM_PRINTF_MACRO) &&\
+    ( defined(MBEDTLS_PLATFORM_STD_PRINTF) ||\
+        defined(MBEDTLS_PLATFORM_PRINTF_ALT) )
+#error "MBEDTLS_PLATFORM_PRINTF_MACRO and MBEDTLS_PLATFORM_STD_PRINTF/MBEDTLS_PLATFORM_PRINTF_ALT cannot be defined simultaneously"
+#endif
+
+#if defined(MBEDTLS_PLATFORM_SNPRINTF_ALT) && !defined(MBEDTLS_PLATFORM_C)
+#error "MBEDTLS_PLATFORM_SNPRINTF_ALT defined, but not all prerequisites"
+#endif
+
+#if defined(MBEDTLS_PLATFORM_SNPRINTF_MACRO) && !defined(MBEDTLS_PLATFORM_C)
+#error "MBEDTLS_PLATFORM_SNPRINTF_MACRO defined, but not all prerequisites"
+#endif
+
+#if defined(MBEDTLS_PLATFORM_SNPRINTF_MACRO) &&\
+    ( defined(MBEDTLS_PLATFORM_STD_SNPRINTF) ||\
+        defined(MBEDTLS_PLATFORM_SNPRINTF_ALT) )
+#error "MBEDTLS_PLATFORM_SNPRINTF_MACRO and MBEDTLS_PLATFORM_STD_SNPRINTF/MBEDTLS_PLATFORM_SNPRINTF_ALT cannot be defined simultaneously"
+#endif
+
+#if defined(MBEDTLS_PLATFORM_VSNPRINTF_ALT) && !defined(MBEDTLS_PLATFORM_C)
+#error "MBEDTLS_PLATFORM_VSNPRINTF_ALT defined, but not all prerequisites"
+#endif
+
+#if defined(MBEDTLS_PLATFORM_VSNPRINTF_MACRO) && !defined(MBEDTLS_PLATFORM_C)
+#error "MBEDTLS_PLATFORM_VSNPRINTF_MACRO defined, but not all prerequisites"
+#endif
+
+#if defined(MBEDTLS_PLATFORM_VSNPRINTF_MACRO) &&\
+    ( defined(MBEDTLS_PLATFORM_STD_VSNPRINTF) ||\
+        defined(MBEDTLS_PLATFORM_VSNPRINTF_ALT) )
+#error "MBEDTLS_PLATFORM_VSNPRINTF_MACRO and MBEDTLS_PLATFORM_STD_VSNPRINTF/MBEDTLS_PLATFORM_VSNPRINTF_ALT cannot be defined simultaneously"
+#endif
+
+#if defined(MBEDTLS_PLATFORM_STD_MEM_HDR) &&\
+    !defined(MBEDTLS_PLATFORM_NO_STD_FUNCTIONS)
+#error "MBEDTLS_PLATFORM_STD_MEM_HDR defined, but not all prerequisites"
+#endif
+
+#if defined(MBEDTLS_PLATFORM_STD_CALLOC) && !defined(MBEDTLS_PLATFORM_MEMORY)
+#error "MBEDTLS_PLATFORM_STD_CALLOC defined, but not all prerequisites"
+#endif
+
+#if defined(MBEDTLS_PLATFORM_STD_FREE) && !defined(MBEDTLS_PLATFORM_MEMORY)
+#error "MBEDTLS_PLATFORM_STD_FREE defined, but not all prerequisites"
+#endif
+
+#if defined(MBEDTLS_PLATFORM_STD_EXIT) &&\
+    !defined(MBEDTLS_PLATFORM_EXIT_ALT)
+#error "MBEDTLS_PLATFORM_STD_EXIT defined, but not all prerequisites"
+#endif
+
+#if defined(MBEDTLS_PLATFORM_STD_TIME) &&\
+    ( !defined(MBEDTLS_PLATFORM_TIME_ALT) ||\
+        !defined(MBEDTLS_HAVE_TIME) )
+#error "MBEDTLS_PLATFORM_STD_TIME defined, but not all prerequisites"
+#endif
+
+#if defined(MBEDTLS_PLATFORM_STD_FPRINTF) &&\
+    !defined(MBEDTLS_PLATFORM_FPRINTF_ALT)
+#error "MBEDTLS_PLATFORM_STD_FPRINTF defined, but not all prerequisites"
+#endif
+
+#if defined(MBEDTLS_PLATFORM_STD_PRINTF) &&\
+    !defined(MBEDTLS_PLATFORM_PRINTF_ALT)
+#error "MBEDTLS_PLATFORM_STD_PRINTF defined, but not all prerequisites"
+#endif
+
+#if defined(MBEDTLS_PLATFORM_STD_SNPRINTF) &&\
+    !defined(MBEDTLS_PLATFORM_SNPRINTF_ALT)
+#error "MBEDTLS_PLATFORM_STD_SNPRINTF defined, but not all prerequisites"
+#endif
+
+#if defined(MBEDTLS_ENTROPY_NV_SEED) &&\
+    (!defined(MBEDTLS_PSA_CRYPTO_C) || !defined(MBEDTLS_PLATFORM_C))
+#error "MBEDTLS_ENTROPY_NV_SEED defined, but not all prerequisites"
+#endif
+
+#if defined(MBEDTLS_ENTROPY_NV_SEED) && defined(MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG)
+#error "MBEDTLS_ENTROPY_NV_SEED has no effect when MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG is enabled"
+#endif
+
+#if defined(MBEDTLS_PLATFORM_NV_SEED_ALT) &&\
+    !defined(MBEDTLS_ENTROPY_NV_SEED)
+#error "MBEDTLS_PLATFORM_NV_SEED_ALT defined, but not all prerequisites"
+#endif
+
+#if defined(MBEDTLS_PLATFORM_STD_NV_SEED_READ) &&\
+    !defined(MBEDTLS_PLATFORM_NV_SEED_ALT)
+#error "MBEDTLS_PLATFORM_STD_NV_SEED_READ defined, but not all prerequisites"
+#endif
+
+#if defined(MBEDTLS_PLATFORM_STD_NV_SEED_WRITE) &&\
+    !defined(MBEDTLS_PLATFORM_NV_SEED_ALT)
+#error "MBEDTLS_PLATFORM_STD_NV_SEED_WRITE defined, but not all prerequisites"
+#endif
+
+#if defined(MBEDTLS_PLATFORM_NV_SEED_READ_MACRO) &&\
+    ( defined(MBEDTLS_PLATFORM_STD_NV_SEED_READ) ||\
+      defined(MBEDTLS_PLATFORM_NV_SEED_ALT) )
+#error "MBEDTLS_PLATFORM_NV_SEED_READ_MACRO and MBEDTLS_PLATFORM_STD_NV_SEED_READ cannot be defined simultaneously"
+#endif
+
+#if defined(MBEDTLS_PLATFORM_NV_SEED_WRITE_MACRO) &&\
+    ( defined(MBEDTLS_PLATFORM_STD_NV_SEED_WRITE) ||\
+      defined(MBEDTLS_PLATFORM_NV_SEED_ALT) )
+#error "MBEDTLS_PLATFORM_NV_SEED_WRITE_MACRO and MBEDTLS_PLATFORM_STD_NV_SEED_WRITE cannot be defined simultaneously"
+#endif
+
+#if defined(MBEDTLS_PSA_CRYPTO_C) &&                                 \
+    !(defined(MBEDTLS_CTR_DRBG_C) || defined(MBEDTLS_HMAC_DRBG_C) || \
+       defined(MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG))
+#error "MBEDTLS_PSA_CRYPTO_C defined, but missing RNG"
+#endif
+
+#if defined(MBEDTLS_PSA_CRYPTO_C) && defined(PSA_HAVE_SOFT_BLOCK_MODE) && \
+    defined(PSA_HAVE_SOFT_BLOCK_CIPHER) && !defined(MBEDTLS_CIPHER_C)
+#error "MBEDTLS_PSA_CRYPTO_C defined, but not all prerequisites"
+#endif
+
+#if defined(MBEDTLS_PSA_CRYPTO_SPM) && !defined(MBEDTLS_PSA_CRYPTO_C)
+#error "MBEDTLS_PSA_CRYPTO_SPM defined, but not all prerequisites"
+#endif
+
+#if defined(MBEDTLS_PSA_CRYPTO_STORAGE_C) &&            \
+    ! defined(MBEDTLS_PSA_CRYPTO_C)
+#error "MBEDTLS_PSA_CRYPTO_STORAGE_C defined, but not all prerequisites"
+#endif
+
+#if defined(MBEDTLS_PSA_KEY_STORE_DYNAMIC) &&           \
+    defined(MBEDTLS_PSA_STATIC_KEY_SLOTS)
+#error "MBEDTLS_PSA_KEY_STORE_DYNAMIC and MBEDTLS_PSA_STATIC_KEY_SLOTS cannot be defined simultaneously"
+#endif
+
+#if defined(MBEDTLS_PSA_ITS_FILE_C) && \
+    !defined(MBEDTLS_FS_IO)
+#error "MBEDTLS_PSA_ITS_FILE_C defined, but not all prerequisites"
+#endif
+
+#if defined(MBEDTLS_SHA512_USE_A64_CRYPTO_IF_PRESENT) && \
+    defined(MBEDTLS_SHA512_USE_A64_CRYPTO_ONLY)
+#error "Must only define one of MBEDTLS_SHA512_USE_A64_CRYPTO_*"
+#endif
+
+#if defined(MBEDTLS_SHA512_USE_A64_CRYPTO_IF_PRESENT) || \
+    defined(MBEDTLS_SHA512_USE_A64_CRYPTO_ONLY)
+#if !defined(MBEDTLS_SHA512_C)
+#error "MBEDTLS_SHA512_USE_A64_CRYPTO_* defined without the SHA-512 built-in implementation"
+#endif
+
+#endif /* MBEDTLS_SHA512_USE_A64_CRYPTO_IF_PRESENT || MBEDTLS_SHA512_USE_A64_CRYPTO_ONLY */
+
+#if defined(MBEDTLS_SHA512_USE_A64_CRYPTO_ONLY) && !defined(__aarch64__)
+#error "MBEDTLS_SHA512_USE_A64_CRYPTO_ONLY defined on non-Aarch64 system"
+#endif
+
+#if defined(MBEDTLS_SHA256_USE_ARMV8_A_CRYPTO_IF_PRESENT) && \
+    defined(MBEDTLS_SHA256_USE_ARMV8_A_CRYPTO_ONLY)
+#error "Must only define one of MBEDTLS_SHA256_USE_ARMV8_A_CRYPTO_*"
+#endif
+
+#if defined(MBEDTLS_SHA256_USE_ARMV8_A_CRYPTO_IF_PRESENT) || \
+    defined(MBEDTLS_SHA256_USE_ARMV8_A_CRYPTO_ONLY)
+#if !defined(MBEDTLS_SHA256_C)
+#error "MBEDTLS_SHA256_USE_ARMV8_A_CRYPTO_* defined without the SHA-256 built-in implementation"
+#endif
+
+#endif
+
+#if defined(MBEDTLS_SHA256_USE_ARMV8_A_CRYPTO_ONLY) && !defined(MBEDTLS_ARCH_IS_ARMV8_A)
+#error "MBEDTLS_SHA256_USE_ARMV8_A_CRYPTO_ONLY defined on non-Armv8-A system"
+#endif
+
+#if defined(MBEDTLS_THREADING_PTHREAD)
+#if !defined(MBEDTLS_THREADING_C) || defined(MBEDTLS_THREADING_IMPL)
+#error "MBEDTLS_THREADING_PTHREAD defined, but not all prerequisites"
+#endif
+#define MBEDTLS_THREADING_IMPL // undef at the end of this paragraph
+#endif
+#if defined(MBEDTLS_THREADING_ALT)
+#if !defined(MBEDTLS_THREADING_C) || defined(MBEDTLS_THREADING_IMPL)
+#error "MBEDTLS_THREADING_ALT defined, but not all prerequisites"
+#endif
+#define MBEDTLS_THREADING_IMPL // undef at the end of this paragraph
+#endif
+#if defined(MBEDTLS_THREADING_C) && !defined(MBEDTLS_THREADING_IMPL)
+#error "MBEDTLS_THREADING_C defined, single threading implementation required"
+#endif
+#undef MBEDTLS_THREADING_IMPL // temporary macro defined above
+
+#if defined(MBEDTLS_HAVE_INT32) && defined(MBEDTLS_HAVE_INT64)
+#error "MBEDTLS_HAVE_INT32 and MBEDTLS_HAVE_INT64 cannot be defined simultaneously"
+#endif /* MBEDTLS_HAVE_INT32 && MBEDTLS_HAVE_INT64 */
+
+#if ( defined(MBEDTLS_HAVE_INT32) || defined(MBEDTLS_HAVE_INT64) ) && \
+    defined(MBEDTLS_HAVE_ASM)
+#error "MBEDTLS_HAVE_INT32/MBEDTLS_HAVE_INT64 and MBEDTLS_HAVE_ASM cannot be defined simultaneously"
+#endif /* (MBEDTLS_HAVE_INT32 || MBEDTLS_HAVE_INT64) && MBEDTLS_HAVE_ASM */
+
+#if (defined(PSA_WANT_ECC_SECP_K1_192) || defined(PSA_WANT_ECC_SECP_K1_192)) \
+    && !defined(TF_PSA_CRYPTO_ALLOW_REMOVED_MECHANISMS) \
+    && !defined(TF_PSA_CRYPTO_WE_ARE_IN_LIBTESTDRIVER1)
+#error "PSA_WANT_ECC_SECP_K1_192 and PSA_WANT_ECC_SECP_K1_192 are no longer supported"
+#endif
+
+/* *INDENT-ON* */
+#endif /* TF_PSA_CRYPTO_CHECK_CONFIG_H */
diff --git a/deps/LIEF/third-party/mbedtls/library/common.h b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/core/tf_psa_crypto_common.h
similarity index 96%
rename from deps/LIEF/third-party/mbedtls/library/common.h
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/core/tf_psa_crypto_common.h
index 50f2a29a723..3dab11d908a 100644
--- a/deps/LIEF/third-party/mbedtls/library/common.h
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/core/tf_psa_crypto_common.h
@@ -1,5 +1,5 @@
 /**
- * \file common.h
+ * \file tf_psa_crypto_common.h
  *
  * \brief Utility macros for internal use in the library
  */
@@ -11,7 +11,7 @@
 #ifndef MBEDTLS_LIBRARY_COMMON_H
 #define MBEDTLS_LIBRARY_COMMON_H

-#include "mbedtls/build_info.h"
+#include "tf-psa-crypto/build_info.h"
 #include "alignment.h"

 #include <assert.h>
@@ -359,6 +359,16 @@ static inline void mbedtls_xor_no_simd(unsigned char *r,
  */
 #if defined(static_assert) && !defined(__FreeBSD__)
 #define MBEDTLS_STATIC_ASSERT(expr, msg)    static_assert(expr, msg)
+/* The GCC compiler supports _Static_assert since version 4.6 even with C99 so checking the
+ * compiler version should suffice.
+ * For non GCC compilers we check that C>=11 is used since C11 introduced _Static_assert.
+ */
+#define MBEDTLS_STATIC_ASSERT_SUPPORT
+#elif !defined(__cplusplus) && \
+    ((defined(__GNUC__) && ((__GNUC__ == 4 && __GNUC_MINOR >= 6) || __GNUC__ > 4)) || \
+    (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L))
+#define MBEDTLS_STATIC_ASSERT(expr, msg)    _Static_assert(expr, msg)
+#define MBEDTLS_STATIC_ASSERT_SUPPORT
 #else
 /* Make sure `MBEDTLS_STATIC_ASSERT(expr, msg);` is valid both inside and
  * outside a function. We choose a struct declaration, which can be repeated
diff --git a/deps/LIEF/third-party/mbedtls/tf-psa-crypto/core/tf_psa_crypto_config.c b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/core/tf_psa_crypto_config.c
new file mode 100644
index 00000000000..2d4cf504972
--- /dev/null
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/core/tf_psa_crypto_config.c
@@ -0,0 +1,68 @@
+/*
+ *  TF-PSA-Crypto configuration checks
+ */
+/*
+ *  Copyright The Mbed TLS Contributors
+ *  SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+ */
+
+/* Detect whether this is a normal build of the library, or a build of
+ * libtestdriver1, where all identifiers starting with normal prefixes
+ * have LIBTESTDRIVER1_ prepended. Do this without relying on
+ * any headers, since this has to happen before we include
+ * tf_psa_crypto/build_info.h.
+ *
+ * In the libtestdriver1 build, the next two code lines are
+ * `#define LIBTESTDRIVER_FOO 1` and
+ * `#if LIBTESTDRIVER_FOO == LIBTESTDRIVER_FOO` so the conditional is true.
+ * In a normal build, `LIBTESTDRIVER1_TF_PSA_CRYPTO_MARKER` remains
+ * undefined so the conditional is false.
+ */
+#define TF_PSA_CRYPTO_MARKER 1
+#if LIBTESTDRIVER1_TF_PSA_CRYPTO_MARKER == TF_PSA_CRYPTO_MARKER
+#define TF_PSA_CRYPTO_WE_ARE_IN_LIBTESTDRIVER1
+#endif
+#undef TF_PSA_CRYPTO_MARKER
+
+/* Completely byass generated config checks in libtestdriver1, where
+ * they aren't useful (when building test drivers, we can bypass
+ * normal configuration mechanisms if we want).
+ * This way we don't have to make them work. Since we bypass the
+ * header inclusions, the build system doesn't even need to know how
+ * to generate files with the right names and in the right locations.
+ */
+#if !defined(TF_PSA_CRYPTO_WE_ARE_IN_LIBTESTDRIVER1)
+/* Consistency checks on the user's configuration.
+ * Check that it doesn't define macros that we assume are under full
+ * control of the library, or options from past major versions that
+ * no longer have any effect.
+ * These headers are automatically generated. See
+ * framework/scripts/mbedtls_framework/config_checks_generator.py
+ *
+ * This here is the first stage, before including the user config.
+ */
+#include "tf_psa_crypto_config_check_before.h"
+/* The second stage, after including the user config but before doing
+ * any subsequent adjustment, will be included by build_info.h. */
+#define TF_PSA_CRYPTO_INCLUDE_AFTER_RAW_CONFIG "tf_psa_crypto_config_check_user.h"
+#endif /* !defined(TF_PSA_CRYPTO_WE_ARE_IN_LIBTESTDRIVER1) */
+
+#include <tf-psa-crypto/build_info.h>
+
+/* Consistency checks in the configuration: check for incompatible options,
+ * missing options when at least one of a set needs to be enabled, etc. */
+/* Manually written checks */
+#include "tf_psa_crypto_check_config.h"
+
+#if !defined(TF_PSA_CRYPTO_WE_ARE_IN_LIBTESTDRIVER1)
+/* Automatically generated checks (final stage after config adjustment) */
+#include "tf_psa_crypto_config_check_final.h"
+#endif /* !defined(TF_PSA_CRYPTO_WE_ARE_IN_LIBTESTDRIVER1) */
+
+/* For MBEDTLS_STATIC_ASSERT */
+#include "tf_psa_crypto_common.h"
+/* For PSA_HASH_LENGTH */
+#include <psa/crypto_sizes.h>
+
+/* Additional domain-specific checks */
+#include "psa_crypto_random_impl.h"
diff --git a/deps/LIEF/third-party/mbedtls/tf-psa-crypto/core/tf_psa_crypto_config_check_before.h b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/core/tf_psa_crypto_config_check_before.h
new file mode 100644
index 00000000000..cdf68fac54b
--- /dev/null
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/core/tf_psa_crypto_config_check_before.h
@@ -0,0 +1,12 @@
+/* tf_psa_crypto_config_check_before.h (generated part of tf_psa_crypto_config.c). */
+/* Automatically generated by generate_config_checks.py. Do not edit! */
+
+#if !defined(TF_PSA_CRYPTO_CONFIG_CHECK_BYPASS) //no-check-names
+
+/* *INDENT-OFF* */
+
+/* *INDENT-ON* */
+
+#endif /* !defined(TF_PSA_CRYPTO_CONFIG_CHECK_BYPASS) */ //no-check-names
+
+/* End of automatically generated tf_psa_crypto_config_check_before.h */
diff --git a/deps/LIEF/third-party/mbedtls/tf-psa-crypto/core/tf_psa_crypto_config_check_final.h b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/core/tf_psa_crypto_config_check_final.h
new file mode 100644
index 00000000000..2fe4855d91f
--- /dev/null
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/core/tf_psa_crypto_config_check_final.h
@@ -0,0 +1,12 @@
+/* tf_psa_crypto_config_check_final.h (generated part of tf_psa_crypto_config.c). */
+/* Automatically generated by generate_config_checks.py. Do not edit! */
+
+#if !defined(TF_PSA_CRYPTO_CONFIG_CHECK_BYPASS) //no-check-names
+
+/* *INDENT-OFF* */
+
+/* *INDENT-ON* */
+
+#endif /* !defined(TF_PSA_CRYPTO_CONFIG_CHECK_BYPASS) */ //no-check-names
+
+/* End of automatically generated tf_psa_crypto_config_check_final.h */
diff --git a/deps/LIEF/third-party/mbedtls/tf-psa-crypto/core/tf_psa_crypto_config_check_user.h b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/core/tf_psa_crypto_config_check_user.h
new file mode 100644
index 00000000000..3d7d75b6a7a
--- /dev/null
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/core/tf_psa_crypto_config_check_user.h
@@ -0,0 +1,492 @@
+/* tf_psa_crypto_config_check_user.h (generated part of tf_psa_crypto_config.c). */
+/* Automatically generated by generate_config_checks.py. Do not edit! */
+
+#if !defined(TF_PSA_CRYPTO_CONFIG_CHECK_BYPASS) //no-check-names
+
+/* *INDENT-OFF* */
+
+#if defined(MBEDTLS_AES_ALT) //no-check-names
+#  error "MBEDTLS_AES_ALT was removed in TF-PSA_Crypto 1.0." //no-check-names
+#endif
+
+#if defined(MBEDTLS_AES_C)
+#  error "MBEDTLS_AES_C is not a valid configuration option."
+#endif
+
+#if defined(MBEDTLS_AES_DECRYPT_ALT) //no-check-names
+#  error "MBEDTLS_AES_DECRYPT_ALT was removed in TF-PSA_Crypto 1.0." //no-check-names
+#endif
+
+#if defined(MBEDTLS_AES_ENCRYPT_ALT) //no-check-names
+#  error "MBEDTLS_AES_ENCRYPT_ALT was removed in TF-PSA_Crypto 1.0." //no-check-names
+#endif
+
+#if defined(MBEDTLS_AES_SETKEY_DEC_ALT) //no-check-names
+#  error "MBEDTLS_AES_SETKEY_DEC_ALT was removed in TF-PSA_Crypto 1.0." //no-check-names
+#endif
+
+#if defined(MBEDTLS_AES_SETKEY_ENC_ALT) //no-check-names
+#  error "MBEDTLS_AES_SETKEY_ENC_ALT was removed in TF-PSA_Crypto 1.0." //no-check-names
+#endif
+
+#if defined(MBEDTLS_ARIA_ALT) //no-check-names
+#  error "MBEDTLS_ARIA_ALT was removed in TF-PSA_Crypto 1.0." //no-check-names
+#endif
+
+#if defined(MBEDTLS_ARIA_C)
+#  error "MBEDTLS_ARIA_C is not a valid configuration option."
+#endif
+
+#if defined(MBEDTLS_CAMELLIA_ALT) //no-check-names
+#  error "MBEDTLS_CAMELLIA_ALT was removed in TF-PSA_Crypto 1.0." //no-check-names
+#endif
+
+#if defined(MBEDTLS_CAMELLIA_C)
+#  error "MBEDTLS_CAMELLIA_C is not a valid configuration option."
+#endif
+
+#if defined(MBEDTLS_CCM_ALT) //no-check-names
+#  error "MBEDTLS_CCM_ALT was removed in TF-PSA_Crypto 1.0." //no-check-names
+#endif
+
+#if defined(MBEDTLS_CCM_C)
+#  error "MBEDTLS_CCM_C is not a valid configuration option."
+#endif
+
+#if defined(MBEDTLS_CHACHA20_ALT) //no-check-names
+#  error "MBEDTLS_CHACHA20_ALT was removed in TF-PSA_Crypto 1.0." //no-check-names
+#endif
+
+#if defined(MBEDTLS_CHACHA20_C)
+#  error "MBEDTLS_CHACHA20_C is not a valid configuration option."
+#endif
+
+#if defined(MBEDTLS_CHACHAPOLY_ALT) //no-check-names
+#  error "MBEDTLS_CHACHAPOLY_ALT was removed in TF-PSA_Crypto 1.0." //no-check-names
+#endif
+
+#if defined(MBEDTLS_CHACHAPOLY_C)
+#  error "MBEDTLS_CHACHAPOLY_C is not a valid configuration option."
+#endif
+
+#if defined(MBEDTLS_CIPHER_C)
+#  error "MBEDTLS_CIPHER_C is not a valid configuration option."
+#endif
+
+#if defined(MBEDTLS_CIPHER_MODE_CBC)
+#  error "MBEDTLS_CIPHER_MODE_CBC is not a valid configuration option."
+#endif
+
+#if defined(MBEDTLS_CIPHER_MODE_CFB)
+#  error "MBEDTLS_CIPHER_MODE_CFB is not a valid configuration option."
+#endif
+
+#if defined(MBEDTLS_CIPHER_MODE_CTR)
+#  error "MBEDTLS_CIPHER_MODE_CTR is not a valid configuration option."
+#endif
+
+#if defined(MBEDTLS_CIPHER_MODE_OFB)
+#  error "MBEDTLS_CIPHER_MODE_OFB is not a valid configuration option."
+#endif
+
+#if defined(MBEDTLS_CIPHER_MODE_XTS)
+#  error "MBEDTLS_CIPHER_MODE_XTS is not a valid configuration option."
+#endif
+
+#if defined(MBEDTLS_CIPHER_PADDING_ONE_AND_ZEROS) //no-check-names
+#  error "MBEDTLS_CIPHER_PADDING_ONE_AND_ZEROS was removed in TF-PSA_Crypto 1.0." //no-check-names
+#endif
+
+#if defined(MBEDTLS_CIPHER_PADDING_PKCS7)
+#  error "MBEDTLS_CIPHER_PADDING_PKCS7 is not a valid configuration option."
+#endif
+
+#if defined(MBEDTLS_CIPHER_PADDING_ZEROS) //no-check-names
+#  error "MBEDTLS_CIPHER_PADDING_ZEROS was removed in TF-PSA_Crypto 1.0." //no-check-names
+#endif
+
+#if defined(MBEDTLS_CIPHER_PADDING_ZEROS_AND_LEN) //no-check-names
+#  error "MBEDTLS_CIPHER_PADDING_ZEROS_AND_LEN was removed in TF-PSA_Crypto 1.0." //no-check-names
+#endif
+
+#if defined(MBEDTLS_CMAC_ALT) //no-check-names
+#  error "MBEDTLS_CMAC_ALT was removed in TF-PSA_Crypto 1.0." //no-check-names
+#endif
+
+#if defined(MBEDTLS_CMAC_C)
+#  error "MBEDTLS_CMAC_C is not a valid configuration option."
+#endif
+
+#if defined(MBEDTLS_CTR_DRBG_ENTROPY_LEN) //no-check-names
+#  error "MBEDTLS_CTR_DRBG_ENTROPY_LEN was removed in TF-PSA_Crypto 1.0." //no-check-names
+#endif
+
+#if defined(MBEDTLS_CTR_DRBG_MAX_INPUT) //no-check-names
+#  error "MBEDTLS_CTR_DRBG_MAX_INPUT was removed in TF-PSA_Crypto 1.0." //no-check-names
+#endif
+
+#if defined(MBEDTLS_CTR_DRBG_MAX_REQUEST) //no-check-names
+#  error "MBEDTLS_CTR_DRBG_MAX_REQUEST was removed in TF-PSA_Crypto 1.0." //no-check-names
+#endif
+
+#if defined(MBEDTLS_CTR_DRBG_MAX_SEED_INPUT) //no-check-names
+#  error "MBEDTLS_CTR_DRBG_MAX_SEED_INPUT was removed in TF-PSA_Crypto 1.0." //no-check-names
+#endif
+
+#if defined(MBEDTLS_CTR_DRBG_RESEED_INTERVAL) //no-check-names
+#  error "MBEDTLS_CTR_DRBG_RESEED_INTERVAL was removed in TF-PSA_Crypto 1.0." //no-check-names
+#endif
+
+#if defined(MBEDTLS_CTR_DRBG_USE_128_BIT_KEY) //no-check-names
+#  error "MBEDTLS_CTR_DRBG_USE_128_BIT_KEY was removed in TF-PSA_Crypto 1.0." //no-check-names
+#endif
+
+#if defined(MBEDTLS_DES3_CRYPT_ECB_ALT) //no-check-names
+#  error "MBEDTLS_DES3_CRYPT_ECB_ALT was removed in TF-PSA_Crypto 1.0." //no-check-names
+#endif
+
+#if defined(MBEDTLS_DES_ALT) //no-check-names
+#  error "MBEDTLS_DES_ALT was removed in TF-PSA_Crypto 1.0." //no-check-names
+#endif
+
+#if defined(MBEDTLS_DES_C)
+#  error "MBEDTLS_DES_C is not a valid configuration option."
+#endif
+
+#if defined(MBEDTLS_DES_CRYPT_ECB_ALT) //no-check-names
+#  error "MBEDTLS_DES_CRYPT_ECB_ALT was removed in TF-PSA_Crypto 1.0." //no-check-names
+#endif
+
+#if defined(MBEDTLS_DES_SETKEY_ALT) //no-check-names
+#  error "MBEDTLS_DES_SETKEY_ALT was removed in TF-PSA_Crypto 1.0." //no-check-names
+#endif
+
+#if defined(MBEDTLS_DHM_ALT) //no-check-names
+#  error "MBEDTLS_DHM_ALT was removed in TF-PSA_Crypto 1.0." //no-check-names
+#endif
+
+#if defined(MBEDTLS_DHM_C) //no-check-names
+#  error "MBEDTLS_DHM_C was removed in TF-PSA_Crypto 1.0." //no-check-names
+#endif
+
+#if defined(MBEDTLS_ECDH_COMPUTE_SHARED_ALT) //no-check-names
+#  error "MBEDTLS_ECDH_COMPUTE_SHARED_ALT was removed in TF-PSA_Crypto 1.0." //no-check-names
+#endif
+
+#if defined(MBEDTLS_ECDH_GEN_PUBLIC_ALT) //no-check-names
+#  error "MBEDTLS_ECDH_GEN_PUBLIC_ALT was removed in TF-PSA_Crypto 1.0." //no-check-names
+#endif
+
+#if defined(MBEDTLS_ECDSA_DETERMINISTIC)
+#  error "MBEDTLS_ECDSA_DETERMINISTIC is not a valid configuration option."
+#endif
+
+#if defined(MBEDTLS_ECDSA_GENKEY_ALT) //no-check-names
+#  error "MBEDTLS_ECDSA_GENKEY_ALT was removed in TF-PSA_Crypto 1.0." //no-check-names
+#endif
+
+#if defined(MBEDTLS_ECDSA_SIGN_ALT) //no-check-names
+#  error "MBEDTLS_ECDSA_SIGN_ALT was removed in TF-PSA_Crypto 1.0." //no-check-names
+#endif
+
+#if defined(MBEDTLS_ECDSA_VERIFY_ALT) //no-check-names
+#  error "MBEDTLS_ECDSA_VERIFY_ALT was removed in TF-PSA_Crypto 1.0." //no-check-names
+#endif
+
+#if defined(MBEDTLS_ECJPAKE_ALT) //no-check-names
+#  error "MBEDTLS_ECJPAKE_ALT was removed in TF-PSA_Crypto 1.0." //no-check-names
+#endif
+
+#if defined(MBEDTLS_ECP_ADD_MIXED_ALT) //no-check-names
+#  error "MBEDTLS_ECP_ADD_MIXED_ALT was removed in TF-PSA_Crypto 1.0." //no-check-names
+#endif
+
+#if defined(MBEDTLS_ECP_ALT) //no-check-names
+#  error "MBEDTLS_ECP_ALT was removed in TF-PSA_Crypto 1.0." //no-check-names
+#endif
+
+#if defined(MBEDTLS_ECP_DOUBLE_ADD_MXZ_ALT) //no-check-names
+#  error "MBEDTLS_ECP_DOUBLE_ADD_MXZ_ALT was removed in TF-PSA_Crypto 1.0." //no-check-names
+#endif
+
+#if defined(MBEDTLS_ECP_DOUBLE_JAC_ALT) //no-check-names
+#  error "MBEDTLS_ECP_DOUBLE_JAC_ALT was removed in TF-PSA_Crypto 1.0." //no-check-names
+#endif
+
+#if defined(MBEDTLS_ECP_DP_SECP224K1_ENABLED) //no-check-names
+#  error "MBEDTLS_ECP_DP_SECP224K1_ENABLED was removed in TF-PSA_Crypto 1.0." //no-check-names
+#endif
+
+#if defined(MBEDTLS_ECP_DP_SECP224R1_ENABLED) //no-check-names
+#  error "MBEDTLS_ECP_DP_SECP224R1_ENABLED was removed in TF-PSA_Crypto 1.0." //no-check-names
+#endif
+
+#if defined(MBEDTLS_ECP_INTERNAL_ALT) //no-check-names
+#  error "MBEDTLS_ECP_INTERNAL_ALT was removed in TF-PSA_Crypto 1.0." //no-check-names
+#endif
+
+#if defined(MBEDTLS_ECP_NORMALIZE_JAC_ALT) //no-check-names
+#  error "MBEDTLS_ECP_NORMALIZE_JAC_ALT was removed in TF-PSA_Crypto 1.0." //no-check-names
+#endif
+
+#if defined(MBEDTLS_ECP_NORMALIZE_JAC_MANY_ALT) //no-check-names
+#  error "MBEDTLS_ECP_NORMALIZE_JAC_MANY_ALT was removed in TF-PSA_Crypto 1.0." //no-check-names
+#endif
+
+#if defined(MBEDTLS_ECP_NORMALIZE_MXZ_ALT) //no-check-names
+#  error "MBEDTLS_ECP_NORMALIZE_MXZ_ALT was removed in TF-PSA_Crypto 1.0." //no-check-names
+#endif
+
+#if defined(MBEDTLS_ECP_NO_FALLBACK) //no-check-names
+#  error "MBEDTLS_ECP_NO_FALLBACK was removed in TF-PSA_Crypto 1.0." //no-check-names
+#endif
+
+#if defined(MBEDTLS_ECP_RANDOMIZE_JAC_ALT) //no-check-names
+#  error "MBEDTLS_ECP_RANDOMIZE_JAC_ALT was removed in TF-PSA_Crypto 1.0." //no-check-names
+#endif
+
+#if defined(MBEDTLS_ECP_RANDOMIZE_MXZ_ALT) //no-check-names
+#  error "MBEDTLS_ECP_RANDOMIZE_MXZ_ALT was removed in TF-PSA_Crypto 1.0." //no-check-names
+#endif
+
+#if defined(MBEDTLS_ENTROPY_C)
+#  error "MBEDTLS_ENTROPY_C is not a valid configuration option."
+#endif
+
+#if defined(MBEDTLS_ENTROPY_FORCE_SHA256) //no-check-names
+#  error "MBEDTLS_ENTROPY_FORCE_SHA256 was removed in TF-PSA_Crypto 1.0." //no-check-names
+#endif
+
+#if defined(MBEDTLS_ENTROPY_HARDWARE_ALT) //no-check-names
+#  error "MBEDTLS_ENTROPY_HARDWARE_ALT was removed in TF-PSA_Crypto 1.0." //no-check-names
+#endif
+
+#if defined(MBEDTLS_ENTROPY_MAX_GATHER) //no-check-names
+#  error "MBEDTLS_ENTROPY_MAX_GATHER was removed in TF-PSA_Crypto 1.0." //no-check-names
+#endif
+
+#if defined(MBEDTLS_ENTROPY_MAX_SOURCES) //no-check-names
+#  error "MBEDTLS_ENTROPY_MAX_SOURCES was removed in TF-PSA_Crypto 1.0." //no-check-names
+#endif
+
+#if defined(MBEDTLS_ENTROPY_MIN_HARDWARE) //no-check-names
+#  error "MBEDTLS_ENTROPY_MIN_HARDWARE was removed in TF-PSA_Crypto 1.0." //no-check-names
+#endif
+
+#if defined(MBEDTLS_GCM_ALT) //no-check-names
+#  error "MBEDTLS_GCM_ALT was removed in TF-PSA_Crypto 1.0." //no-check-names
+#endif
+
+#if defined(MBEDTLS_GCM_C)
+#  error "MBEDTLS_GCM_C is not a valid configuration option."
+#endif
+
+#if defined(MBEDTLS_GENPRIME)
+#  error "MBEDTLS_GENPRIME is not a valid configuration option."
+#endif
+
+#if defined(MBEDTLS_HKDF_C) //no-check-names
+#  error "MBEDTLS_HKDF_C was removed in TF-PSA_Crypto 1.0." //no-check-names
+#endif
+
+#if defined(MBEDTLS_HMAC_DRBG_MAX_INPUT) //no-check-names
+#  error "MBEDTLS_HMAC_DRBG_MAX_INPUT was removed in TF-PSA_Crypto 1.0." //no-check-names
+#endif
+
+#if defined(MBEDTLS_HMAC_DRBG_MAX_REQUEST) //no-check-names
+#  error "MBEDTLS_HMAC_DRBG_MAX_REQUEST was removed in TF-PSA_Crypto 1.0." //no-check-names
+#endif
+
+#if defined(MBEDTLS_HMAC_DRBG_MAX_SEED_INPUT) //no-check-names
+#  error "MBEDTLS_HMAC_DRBG_MAX_SEED_INPUT was removed in TF-PSA_Crypto 1.0." //no-check-names
+#endif
+
+#if defined(MBEDTLS_HMAC_DRBG_RESEED_INTERVAL) //no-check-names
+#  error "MBEDTLS_HMAC_DRBG_RESEED_INTERVAL was removed in TF-PSA_Crypto 1.0." //no-check-names
+#endif
+
+#if defined(MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED) //no-check-names
+#  error "MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED was removed in TF-PSA_Crypto 1.0." //no-check-names
+#endif
+
+#if defined(MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED) //no-check-names
+#  error "MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED was removed in TF-PSA_Crypto 1.0." //no-check-names
+#endif
+
+#if defined(MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED) //no-check-names
+#  error "MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED was removed in TF-PSA_Crypto 1.0." //no-check-names
+#endif
+
+#if defined(MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED) //no-check-names
+#  error "MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED was removed in TF-PSA_Crypto 1.0." //no-check-names
+#endif
+
+#if defined(MBEDTLS_KEY_EXCHANGE_RSA_ENABLED) //no-check-names
+#  error "MBEDTLS_KEY_EXCHANGE_RSA_ENABLED was removed in TF-PSA_Crypto 1.0." //no-check-names
+#endif
+
+#if defined(MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED) //no-check-names
+#  error "MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED was removed in TF-PSA_Crypto 1.0." //no-check-names
+#endif
+
+#if defined(MBEDTLS_MD5_ALT) //no-check-names
+#  error "MBEDTLS_MD5_ALT was removed in TF-PSA_Crypto 1.0." //no-check-names
+#endif
+
+#if defined(MBEDTLS_MD5_C)
+#  error "MBEDTLS_MD5_C is not a valid configuration option."
+#endif
+
+#if defined(MBEDTLS_MD5_PROCESS_ALT) //no-check-names
+#  error "MBEDTLS_MD5_PROCESS_ALT was removed in TF-PSA_Crypto 1.0." //no-check-names
+#endif
+
+#if defined(MBEDTLS_NIST_KW_ALT) //no-check-names
+#  error "MBEDTLS_NIST_KW_ALT was removed in TF-PSA_Crypto 1.0." //no-check-names
+#endif
+
+#if defined(MBEDTLS_NO_DEFAULT_ENTROPY_SOURCES) //no-check-names
+#  error "MBEDTLS_NO_DEFAULT_ENTROPY_SOURCES was removed in TF-PSA_Crypto 1.0." //no-check-names
+#endif
+
+#if defined(MBEDTLS_NO_PLATFORM_ENTROPY) //no-check-names
+#  error "MBEDTLS_NO_PLATFORM_ENTROPY was removed in TF-PSA_Crypto 1.0." //no-check-names
+#endif
+
+#if defined(MBEDTLS_OID_C) //no-check-names
+#  error "MBEDTLS_OID_C was removed in TF-PSA_Crypto 1.0." //no-check-names
+#endif
+
+#if defined(MBEDTLS_PADLOCK_C) //no-check-names
+#  error "MBEDTLS_PADLOCK_C was removed in TF-PSA_Crypto 1.0." //no-check-names
+#endif
+
+#if defined(MBEDTLS_PKCS12_C) //no-check-names
+#  error "MBEDTLS_PKCS12_C was removed in TF-PSA_Crypto 1.0." //no-check-names
+#endif
+
+#if defined(MBEDTLS_PKCS1_V15)
+#  error "MBEDTLS_PKCS1_V15 is not a valid configuration option."
+#endif
+
+#if defined(MBEDTLS_PKCS1_V21)
+#  error "MBEDTLS_PKCS1_V21 is not a valid configuration option."
+#endif
+
+#if defined(MBEDTLS_PK_RSA_ALT_SUPPORT) //no-check-names
+#  error "MBEDTLS_PK_RSA_ALT_SUPPORT was removed in TF-PSA_Crypto 1.0." //no-check-names
+#endif
+
+#if defined(MBEDTLS_POLY1305_ALT) //no-check-names
+#  error "MBEDTLS_POLY1305_ALT was removed in TF-PSA_Crypto 1.0." //no-check-names
+#endif
+
+#if defined(MBEDTLS_POLY1305_C)
+#  error "MBEDTLS_POLY1305_C is not a valid configuration option."
+#endif
+
+#if defined(MBEDTLS_PSA_CRYPTO_CONFIG_FILE) //no-check-names
+#  error "MBEDTLS_PSA_CRYPTO_CONFIG_FILE was removed in TF-PSA_Crypto 1.0." //no-check-names
+#endif
+
+#if defined(MBEDTLS_PSA_CRYPTO_SE_C) //no-check-names
+#  error "MBEDTLS_PSA_CRYPTO_SE_C was removed in TF-PSA_Crypto 1.0." //no-check-names
+#endif
+
+#if defined(MBEDTLS_PSA_CRYPTO_USER_CONFIG_FILE) //no-check-names
+#  error "MBEDTLS_PSA_CRYPTO_USER_CONFIG_FILE was removed in TF-PSA_Crypto 1.0." //no-check-names
+#endif
+
+#if defined(MBEDTLS_PSA_HMAC_DRBG_MD_TYPE) //no-check-names
+#  error "MBEDTLS_PSA_HMAC_DRBG_MD_TYPE was removed in TF-PSA_Crypto 1.0." //no-check-names
+#endif
+
+#if defined(MBEDTLS_PSA_INJECT_ENTROPY) //no-check-names
+#  error "MBEDTLS_PSA_INJECT_ENTROPY was removed in TF-PSA_Crypto 1.0." //no-check-names
+#endif
+
+#if defined(MBEDTLS_RIPEMD160_ALT) //no-check-names
+#  error "MBEDTLS_RIPEMD160_ALT was removed in TF-PSA_Crypto 1.0." //no-check-names
+#endif
+
+#if defined(MBEDTLS_RIPEMD160_C)
+#  error "MBEDTLS_RIPEMD160_C is not a valid configuration option."
+#endif
+
+#if defined(MBEDTLS_RIPEMD160_PROCESS_ALT) //no-check-names
+#  error "MBEDTLS_RIPEMD160_PROCESS_ALT was removed in TF-PSA_Crypto 1.0." //no-check-names
+#endif
+
+#if defined(MBEDTLS_RSA_ALT) //no-check-names
+#  error "MBEDTLS_RSA_ALT was removed in TF-PSA_Crypto 1.0." //no-check-names
+#endif
+
+#if defined(MBEDTLS_RSA_C)
+#  error "MBEDTLS_RSA_C is not a valid configuration option."
+#endif
+
+#if defined(MBEDTLS_SHA1_ALT) //no-check-names
+#  error "MBEDTLS_SHA1_ALT was removed in TF-PSA_Crypto 1.0." //no-check-names
+#endif
+
+#if defined(MBEDTLS_SHA1_C)
+#  error "MBEDTLS_SHA1_C is not a valid configuration option."
+#endif
+
+#if defined(MBEDTLS_SHA1_PROCESS_ALT) //no-check-names
+#  error "MBEDTLS_SHA1_PROCESS_ALT was removed in TF-PSA_Crypto 1.0." //no-check-names
+#endif
+
+#if defined(MBEDTLS_SHA224_C)
+#  error "MBEDTLS_SHA224_C is not a valid configuration option."
+#endif
+
+#if defined(MBEDTLS_SHA256_ALT) //no-check-names
+#  error "MBEDTLS_SHA256_ALT was removed in TF-PSA_Crypto 1.0." //no-check-names
+#endif
+
+#if defined(MBEDTLS_SHA256_C)
+#  error "MBEDTLS_SHA256_C is not a valid configuration option."
+#endif
+
+#if defined(MBEDTLS_SHA256_PROCESS_ALT) //no-check-names
+#  error "MBEDTLS_SHA256_PROCESS_ALT was removed in TF-PSA_Crypto 1.0." //no-check-names
+#endif
+
+#if defined(MBEDTLS_SHA384_C)
+#  error "MBEDTLS_SHA384_C is not a valid configuration option."
+#endif
+
+#if defined(MBEDTLS_SHA3_C) //no-check-names
+#  error "MBEDTLS_SHA3_C was removed in TF-PSA_Crypto 1.0." //no-check-names
+#endif
+
+#if defined(MBEDTLS_SHA512_ALT) //no-check-names
+#  error "MBEDTLS_SHA512_ALT was removed in TF-PSA_Crypto 1.0." //no-check-names
+#endif
+
+#if defined(MBEDTLS_SHA512_C)
+#  error "MBEDTLS_SHA512_C is not a valid configuration option."
+#endif
+
+#if defined(MBEDTLS_SHA512_PROCESS_ALT) //no-check-names
+#  error "MBEDTLS_SHA512_PROCESS_ALT was removed in TF-PSA_Crypto 1.0." //no-check-names
+#endif
+
+#if defined(MBEDTLS_SSL_CLI_ALLOW_WEAK_CERTIFICATE_VERIFICATION_WITHOUT_HOSTNAME) //no-check-names
+#  error "MBEDTLS_SSL_CLI_ALLOW_WEAK_CERTIFICATE_VERIFICATION_WITHOUT_HOSTNAME was removed in TF-PSA_Crypto 1.0." //no-check-names
+#endif
+
+#if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID_COMPAT) //no-check-names
+#  error "MBEDTLS_SSL_DTLS_CONNECTION_ID_COMPAT was removed in TF-PSA_Crypto 1.0." //no-check-names
+#endif
+
+#if defined(PSA_WANT_ECC_SECP_R1_224) //no-check-names
+#  error "PSA_WANT_ECC_SECP_R1_224 was removed in TF-PSA_Crypto 1.0." //no-check-names
+#endif
+
+/* *INDENT-ON* */
+
+#endif /* !defined(TF_PSA_CRYPTO_CONFIG_CHECK_BYPASS) */ //no-check-names
+
+/* End of automatically generated tf_psa_crypto_config_check_user.h */
diff --git a/deps/LIEF/third-party/mbedtls/tf-psa-crypto/core/tf_psa_crypto_version.c b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/core/tf_psa_crypto_version.c
new file mode 100644
index 00000000000..c8af5c09a11
--- /dev/null
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/core/tf_psa_crypto_version.c
@@ -0,0 +1,28 @@
+/*
+ *  Version information
+ *
+ *  Copyright The Mbed TLS Contributors
+ *  SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+ */
+
+#include "tf_psa_crypto_common.h"
+
+#if defined(TF_PSA_CRYPTO_VERSION)
+#include "tf-psa-crypto/version.h"
+
+unsigned int tf_psa_crypto_version_get_number(void)
+{
+    return TF_PSA_CRYPTO_VERSION_NUMBER;
+}
+
+const char *tf_psa_crypto_version_get_string(void)
+{
+    return TF_PSA_CRYPTO_VERSION_STRING;
+}
+
+const char *tf_psa_crypto_version_get_string_full(void)
+{
+    return TF_PSA_CRYPTO_VERSION_STRING_FULL;
+}
+
+#endif /* TF_PSA_CRYPTO_VERSION */
diff --git a/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/CMakeLists.txt b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/CMakeLists.txt
new file mode 100644
index 00000000000..3642e02debe
--- /dev/null
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/CMakeLists.txt
@@ -0,0 +1,3 @@
+add_subdirectory(everest)
+add_subdirectory(p256-m)
+add_subdirectory(builtin)
diff --git a/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/CMakeLists.txt b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/CMakeLists.txt
new file mode 100644
index 00000000000..de022a318d7
--- /dev/null
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/CMakeLists.txt
@@ -0,0 +1,69 @@
+add_subdirectory(src)
+
+file(GLOB src_builtin RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} src/*.c)
+
+if(CMAKE_COMPILER_IS_GNUCC)
+    set(LIBS_C_FLAGS -Wmissing-declarations -Wmissing-prototypes)
+endif(CMAKE_COMPILER_IS_GNUCC)
+
+if(CMAKE_COMPILER_IS_CLANG)
+    set(LIBS_C_FLAGS -Wmissing-declarations -Wmissing-prototypes -Wdocumentation -Wno-documentation-deprecated-sync -Wunreachable-code)
+endif(CMAKE_COMPILER_IS_CLANG)
+
+if(CMAKE_COMPILER_IS_MSVC)
+    option(MSVC_STATIC_RUNTIME "Build the libraries with /MT compiler flag" OFF)
+    if(MSVC_STATIC_RUNTIME)
+        foreach(flag_var
+            CMAKE_C_FLAGS CMAKE_C_FLAGS_DEBUG CMAKE_C_FLAGS_RELEASE
+            CMAKE_C_FLAGS_MINSIZEREL CMAKE_C_FLAGS_RELWITHDEBINFO
+            CMAKE_C_FLAGS_CHECK)
+            string(REGEX REPLACE "/MD" "/MT" ${flag_var} "${${flag_var}}")
+        endforeach(flag_var)
+    endif()
+endif()
+
+if(CMAKE_C_COMPILER_ID MATCHES "AppleClang")
+    set(CMAKE_C_ARCHIVE_CREATE   "<CMAKE_AR> Scr <TARGET> <LINK_FLAGS> <OBJECTS>")
+    set(CMAKE_C_ARCHIVE_FINISH   "<CMAKE_RANLIB> -no_warning_for_no_symbols -c <TARGET>")
+endif()
+if(CMAKE_CXX_COMPILER_ID MATCHES "AppleClang")
+    set(CMAKE_CXX_ARCHIVE_CREATE "<CMAKE_AR> Scr <TARGET> <LINK_FLAGS> <OBJECTS>")
+    set(CMAKE_CXX_ARCHIVE_FINISH "<CMAKE_RANLIB> -no_warning_for_no_symbols -c <TARGET>")
+endif()
+
+set(builtin_target ${TF_PSA_CRYPTO_TARGET_PREFIX}builtin)
+if (USE_STATIC_TF_PSA_CRYPTO_LIBRARY)
+    set(builtin_static_target ${builtin_target})
+endif()
+set(target_libraries ${builtin_target})
+if(USE_STATIC_TF_PSA_CRYPTO_LIBRARY AND USE_SHARED_TF_PSA_CRYPTO_LIBRARY)
+    string(APPEND builtin_static_target "_static")
+    list(APPEND target_libraries ${builtin_static_target})
+endif()
+
+foreach (target IN LISTS target_libraries)
+    add_library(${target} OBJECT ${src_builtin})
+    tf_psa_crypto_set_base_compile_options(${target})
+    target_compile_options(${target} PRIVATE ${LIBS_C_FLAGS})
+    target_include_directories(${target}
+      PRIVATE src include
+              ${TF_PSA_CRYPTO_DIR}/include
+              ${TF_PSA_CRYPTO_DIR}/core
+              ${TF_PSA_CRYPTO_DIR}/drivers/everest/include)
+    tf_psa_crypto_set_config_files_compile_definitions(${target})
+endforeach(target)
+
+if(USE_SHARED_TF_PSA_CRYPTO_LIBRARY)
+    set_property(TARGET ${builtin_target} PROPERTY POSITION_INDEPENDENT_CODE ON)
+endif(USE_SHARED_TF_PSA_CRYPTO_LIBRARY)
+
+if(INSTALL_TF_PSA_CRYPTO_HEADERS)
+
+  install(DIRECTORY include/mbedtls
+    DESTINATION include
+    FILE_PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
+    DIRECTORY_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ
+    GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
+    FILES_MATCHING PATTERN "*.h")
+
+endif(INSTALL_TF_PSA_CRYPTO_HEADERS)
diff --git a/deps/LIEF/third-party/mbedtls/include/mbedtls/config_adjust_legacy_crypto.h b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/include/mbedtls/config_adjust_legacy_crypto.h
similarity index 62%
rename from deps/LIEF/third-party/mbedtls/include/mbedtls/config_adjust_legacy_crypto.h
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/include/mbedtls/config_adjust_legacy_crypto.h
index 331ac9b2daa..fa9606d0488 100644
--- a/deps/LIEF/third-party/mbedtls/include/mbedtls/config_adjust_legacy_crypto.h
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/include/mbedtls/config_adjust_legacy_crypto.h
@@ -24,7 +24,7 @@
 #ifndef MBEDTLS_CONFIG_ADJUST_LEGACY_CRYPTO_H
 #define MBEDTLS_CONFIG_ADJUST_LEGACY_CRYPTO_H

-#if !defined(MBEDTLS_CONFIG_FILES_READ)
+#if !defined(TF_PSA_CRYPTO_CONFIG_FILES_READ)
 #error "Do not include mbedtls/config_adjust_*.h manually! This can lead to problems, " \
     "up to and including runtime errors such as buffer overflows. " \
     "If you're trying to fix a complaint from check_config.h, just remove " \
@@ -53,8 +53,26 @@
  */
 #if defined(MBEDTLS_PSA_CRYPTO_C)
 #define MBEDTLS_PSA_CRYPTO_CLIENT
+/* Enable  MBEDTLS_ENTROPY_C in not client-only builds without an
+ * external entropy source. */
+#if !defined(MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG)
+#define MBEDTLS_ENTROPY_C
+#endif
 #endif /* MBEDTLS_PSA_CRYPTO_C */

+/**
+ * \def MBEDTLS_USE_PSA_CRYPTO
+ *
+ * Make the X.509 and TLS libraries use PSA for cryptographic operations as
+ * much as possible, and enable new APIs for using keys handled by PSA Crypto.
+ *
+ * \note This is a legacy symbol which still exists for backward compatibility.
+ *       Up to Mbed TLS 3.x, it was not enabled by default. Now it is always
+ *       enabled, and it will eventually disappear from the code base. This
+ *       is not part of the public API of TF-PSA-Crypto or of Mbed TLS >=4.0.
+ */
+#define MBEDTLS_USE_PSA_CRYPTO
+
 /* Auto-enable CIPHER_C when any of the unauthenticated ciphers is builtin
  * in PSA. */
 #if defined(MBEDTLS_PSA_CRYPTO_C) && \
@@ -84,17 +102,12 @@
     defined(MBEDTLS_PEM_PARSE_C) || \
     defined(MBEDTLS_ENTROPY_C) || \
     defined(MBEDTLS_PK_C) || \
-    defined(MBEDTLS_PKCS12_C) || \
-    defined(MBEDTLS_RSA_C) || \
-    defined(MBEDTLS_SSL_TLS_C) || \
-    defined(MBEDTLS_X509_USE_C) || \
-    defined(MBEDTLS_X509_CREATE_C)
+    defined(MBEDTLS_RSA_C)
 #define MBEDTLS_MD_LIGHT
 #endif

 #if defined(MBEDTLS_MD_LIGHT)
 /*
- * - MBEDTLS_MD_CAN_xxx is defined if the md module can perform xxx.
  * - MBEDTLS_MD_xxx_VIA_PSA is defined if the md module may perform xxx via PSA
  *   (see below).
  * - MBEDTLS_MD_SOME_PSA is defined if at least one algorithm may be performed
@@ -111,57 +124,46 @@
 #if defined(MBEDTLS_PSA_CRYPTO_C)

 #if defined(MBEDTLS_PSA_ACCEL_ALG_MD5)
-#define MBEDTLS_MD_CAN_MD5
 #define MBEDTLS_MD_MD5_VIA_PSA
 #define MBEDTLS_MD_SOME_PSA
 #endif
 #if defined(MBEDTLS_PSA_ACCEL_ALG_SHA_1)
-#define MBEDTLS_MD_CAN_SHA1
 #define MBEDTLS_MD_SHA1_VIA_PSA
 #define MBEDTLS_MD_SOME_PSA
 #endif
 #if defined(MBEDTLS_PSA_ACCEL_ALG_SHA_224)
-#define MBEDTLS_MD_CAN_SHA224
 #define MBEDTLS_MD_SHA224_VIA_PSA
 #define MBEDTLS_MD_SOME_PSA
 #endif
 #if defined(MBEDTLS_PSA_ACCEL_ALG_SHA_256)
-#define MBEDTLS_MD_CAN_SHA256
 #define MBEDTLS_MD_SHA256_VIA_PSA
 #define MBEDTLS_MD_SOME_PSA
 #endif
 #if defined(MBEDTLS_PSA_ACCEL_ALG_SHA_384)
-#define MBEDTLS_MD_CAN_SHA384
 #define MBEDTLS_MD_SHA384_VIA_PSA
 #define MBEDTLS_MD_SOME_PSA
 #endif
 #if defined(MBEDTLS_PSA_ACCEL_ALG_SHA_512)
-#define MBEDTLS_MD_CAN_SHA512
 #define MBEDTLS_MD_SHA512_VIA_PSA
 #define MBEDTLS_MD_SOME_PSA
 #endif
 #if defined(MBEDTLS_PSA_ACCEL_ALG_RIPEMD160)
-#define MBEDTLS_MD_CAN_RIPEMD160
 #define MBEDTLS_MD_RIPEMD160_VIA_PSA
 #define MBEDTLS_MD_SOME_PSA
 #endif
 #if defined(MBEDTLS_PSA_ACCEL_ALG_SHA3_224)
-#define MBEDTLS_MD_CAN_SHA3_224
 #define MBEDTLS_MD_SHA3_224_VIA_PSA
 #define MBEDTLS_MD_SOME_PSA
 #endif
 #if defined(MBEDTLS_PSA_ACCEL_ALG_SHA3_256)
-#define MBEDTLS_MD_CAN_SHA3_256
 #define MBEDTLS_MD_SHA3_256_VIA_PSA
 #define MBEDTLS_MD_SOME_PSA
 #endif
 #if defined(MBEDTLS_PSA_ACCEL_ALG_SHA3_384)
-#define MBEDTLS_MD_CAN_SHA3_384
 #define MBEDTLS_MD_SHA3_384_VIA_PSA
 #define MBEDTLS_MD_SOME_PSA
 #endif
 #if defined(MBEDTLS_PSA_ACCEL_ALG_SHA3_512)
-#define MBEDTLS_MD_CAN_SHA3_512
 #define MBEDTLS_MD_SHA3_512_VIA_PSA
 #define MBEDTLS_MD_SOME_PSA
 #endif
@@ -169,57 +171,46 @@
 #elif defined(MBEDTLS_PSA_CRYPTO_CLIENT)

 #if defined(PSA_WANT_ALG_MD5)
-#define MBEDTLS_MD_CAN_MD5
 #define MBEDTLS_MD_MD5_VIA_PSA
 #define MBEDTLS_MD_SOME_PSA
 #endif
 #if defined(PSA_WANT_ALG_SHA_1)
-#define MBEDTLS_MD_CAN_SHA1
 #define MBEDTLS_MD_SHA1_VIA_PSA
 #define MBEDTLS_MD_SOME_PSA
 #endif
 #if defined(PSA_WANT_ALG_SHA_224)
-#define MBEDTLS_MD_CAN_SHA224
 #define MBEDTLS_MD_SHA224_VIA_PSA
 #define MBEDTLS_MD_SOME_PSA
 #endif
 #if defined(PSA_WANT_ALG_SHA_256)
-#define MBEDTLS_MD_CAN_SHA256
 #define MBEDTLS_MD_SHA256_VIA_PSA
 #define MBEDTLS_MD_SOME_PSA
 #endif
 #if defined(PSA_WANT_ALG_SHA_384)
-#define MBEDTLS_MD_CAN_SHA384
 #define MBEDTLS_MD_SHA384_VIA_PSA
 #define MBEDTLS_MD_SOME_PSA
 #endif
 #if defined(PSA_WANT_ALG_SHA_512)
-#define MBEDTLS_MD_CAN_SHA512
 #define MBEDTLS_MD_SHA512_VIA_PSA
 #define MBEDTLS_MD_SOME_PSA
 #endif
 #if defined(PSA_WANT_ALG_RIPEMD160)
-#define MBEDTLS_MD_CAN_RIPEMD160
 #define MBEDTLS_MD_RIPEMD160_VIA_PSA
 #define MBEDTLS_MD_SOME_PSA
 #endif
 #if defined(PSA_WANT_ALG_SHA3_224)
-#define MBEDTLS_MD_CAN_SHA3_224
 #define MBEDTLS_MD_SHA3_224_VIA_PSA
 #define MBEDTLS_MD_SOME_PSA
 #endif
 #if defined(PSA_WANT_ALG_SHA3_256)
-#define MBEDTLS_MD_CAN_SHA3_256
 #define MBEDTLS_MD_SHA3_256_VIA_PSA
 #define MBEDTLS_MD_SOME_PSA
 #endif
 #if defined(PSA_WANT_ALG_SHA3_384)
-#define MBEDTLS_MD_CAN_SHA3_384
 #define MBEDTLS_MD_SHA3_384_VIA_PSA
 #define MBEDTLS_MD_SOME_PSA
 #endif
 #if defined(PSA_WANT_ALG_SHA3_512)
-#define MBEDTLS_MD_CAN_SHA3_512
 #define MBEDTLS_MD_SHA3_512_VIA_PSA
 #define MBEDTLS_MD_SOME_PSA
 #endif
@@ -227,39 +218,13 @@
 #endif /* !MBEDTLS_PSA_CRYPTO_CLIENT && !MBEDTLS_PSA_CRYPTO_C */

 /* Built-in implementations */
-#if defined(MBEDTLS_MD5_C)
-#define MBEDTLS_MD_CAN_MD5
-#define MBEDTLS_MD_SOME_LEGACY
-#endif
-#if defined(MBEDTLS_SHA1_C)
-#define MBEDTLS_MD_CAN_SHA1
-#define MBEDTLS_MD_SOME_LEGACY
-#endif
-#if defined(MBEDTLS_SHA224_C)
-#define MBEDTLS_MD_CAN_SHA224
-#define MBEDTLS_MD_SOME_LEGACY
-#endif
-#if defined(MBEDTLS_SHA256_C)
-#define MBEDTLS_MD_CAN_SHA256
-#define MBEDTLS_MD_SOME_LEGACY
-#endif
-#if defined(MBEDTLS_SHA384_C)
-#define MBEDTLS_MD_CAN_SHA384
-#define MBEDTLS_MD_SOME_LEGACY
-#endif
-#if defined(MBEDTLS_SHA512_C)
-#define MBEDTLS_MD_CAN_SHA512
-#define MBEDTLS_MD_SOME_LEGACY
-#endif
-#if defined(MBEDTLS_SHA3_C)
-#define MBEDTLS_MD_CAN_SHA3_224
-#define MBEDTLS_MD_CAN_SHA3_256
-#define MBEDTLS_MD_CAN_SHA3_384
-#define MBEDTLS_MD_CAN_SHA3_512
-#define MBEDTLS_MD_SOME_LEGACY
-#endif
-#if defined(MBEDTLS_RIPEMD160_C)
-#define MBEDTLS_MD_CAN_RIPEMD160
+#if defined(MBEDTLS_MD5_C) || \
+    defined(MBEDTLS_SHA1_C) || \
+    defined(MBEDTLS_SHA224_C) || \
+    defined(MBEDTLS_SHA256_C) || \
+    defined(MBEDTLS_SHA384_C) || \
+    defined(MBEDTLS_SHA512_C) || \
+    defined(MBEDTLS_RIPEMD160_C)
 #define MBEDTLS_MD_SOME_LEGACY
 #endif

@@ -360,8 +325,6 @@
  *     case there is no associated issue to track it yet.
  * - PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_DERIVE because Weierstrass key derivation
  *   still depends on ECP_LIGHT.
- * - PK_C + USE_PSA + PSA_WANT_ALG_ECDSA is a temporary dependency which will
- *   be fixed by #7453.
  */
 #if defined(MBEDTLS_ECP_C) || \
     defined(MBEDTLS_PK_PARSE_EC_EXTENDED) || \
@@ -389,84 +352,10 @@

 /* Helper symbol to state that there is support for ECDH, either through
  * library implementation (ECDH_C) or through PSA. */
-#if (defined(MBEDTLS_USE_PSA_CRYPTO) && defined(PSA_WANT_ALG_ECDH)) || \
-    (!defined(MBEDTLS_USE_PSA_CRYPTO) && defined(MBEDTLS_ECDH_C))
+#if defined(PSA_WANT_ALG_ECDH)
 #define MBEDTLS_CAN_ECDH
 #endif

-/* PK module can achieve ECDSA functionalities by means of either software
- * implementations (ECDSA_C) or through a PSA driver. The following defines
- * are meant to list these capabilities in a general way which abstracts how
- * they are implemented under the hood. */
-#if !defined(MBEDTLS_USE_PSA_CRYPTO)
-#if defined(MBEDTLS_ECDSA_C)
-#define MBEDTLS_PK_CAN_ECDSA_SIGN
-#define MBEDTLS_PK_CAN_ECDSA_VERIFY
-#endif /* MBEDTLS_ECDSA_C */
-#else /* MBEDTLS_USE_PSA_CRYPTO */
-#if defined(PSA_WANT_ALG_ECDSA)
-#if defined(PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_BASIC)
-#define MBEDTLS_PK_CAN_ECDSA_SIGN
-#endif /* PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_BASIC */
-#if defined(PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY)
-#define MBEDTLS_PK_CAN_ECDSA_VERIFY
-#endif /* PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY */
-#endif /* PSA_WANT_ALG_ECDSA */
-#endif /* MBEDTLS_USE_PSA_CRYPTO */
-
-#if defined(MBEDTLS_PK_CAN_ECDSA_VERIFY) || defined(MBEDTLS_PK_CAN_ECDSA_SIGN)
-#define MBEDTLS_PK_CAN_ECDSA_SOME
-#endif
-
-/* Helpers to state that each key is supported either on the builtin or PSA side. */
-#if defined(MBEDTLS_ECP_DP_SECP521R1_ENABLED) || defined(PSA_WANT_ECC_SECP_R1_521)
-#define MBEDTLS_ECP_HAVE_SECP521R1
-#endif
-#if defined(MBEDTLS_ECP_DP_BP512R1_ENABLED) || defined(PSA_WANT_ECC_BRAINPOOL_P_R1_512)
-#define MBEDTLS_ECP_HAVE_BP512R1
-#endif
-#if defined(MBEDTLS_ECP_DP_CURVE448_ENABLED) || defined(PSA_WANT_ECC_MONTGOMERY_448)
-#define MBEDTLS_ECP_HAVE_CURVE448
-#endif
-#if defined(MBEDTLS_ECP_DP_BP384R1_ENABLED) || defined(PSA_WANT_ECC_BRAINPOOL_P_R1_384)
-#define MBEDTLS_ECP_HAVE_BP384R1
-#endif
-#if defined(MBEDTLS_ECP_DP_SECP384R1_ENABLED) || defined(PSA_WANT_ECC_SECP_R1_384)
-#define MBEDTLS_ECP_HAVE_SECP384R1
-#endif
-#if defined(MBEDTLS_ECP_DP_BP256R1_ENABLED) || defined(PSA_WANT_ECC_BRAINPOOL_P_R1_256)
-#define MBEDTLS_ECP_HAVE_BP256R1
-#endif
-#if defined(MBEDTLS_ECP_DP_SECP256K1_ENABLED) || defined(PSA_WANT_ECC_SECP_K1_256)
-#define MBEDTLS_ECP_HAVE_SECP256K1
-#endif
-#if defined(MBEDTLS_ECP_DP_SECP256R1_ENABLED) || defined(PSA_WANT_ECC_SECP_R1_256)
-#define MBEDTLS_ECP_HAVE_SECP256R1
-#endif
-#if defined(MBEDTLS_ECP_DP_CURVE25519_ENABLED) || defined(PSA_WANT_ECC_MONTGOMERY_255)
-#define MBEDTLS_ECP_HAVE_CURVE25519
-#endif
-#if defined(MBEDTLS_ECP_DP_SECP224K1_ENABLED) || defined(PSA_WANT_ECC_SECP_K1_224)
-#define MBEDTLS_ECP_HAVE_SECP224K1
-#endif
-#if defined(MBEDTLS_ECP_DP_SECP224R1_ENABLED) || defined(PSA_WANT_ECC_SECP_R1_224)
-#define MBEDTLS_ECP_HAVE_SECP224R1
-#endif
-#if defined(MBEDTLS_ECP_DP_SECP192K1_ENABLED) || defined(PSA_WANT_ECC_SECP_K1_192)
-#define MBEDTLS_ECP_HAVE_SECP192K1
-#endif
-#if defined(MBEDTLS_ECP_DP_SECP192R1_ENABLED) || defined(PSA_WANT_ECC_SECP_R1_192)
-#define MBEDTLS_ECP_HAVE_SECP192R1
-#endif
-
-/* Helper symbol to state that the PK module has support for EC keys. This
- * can either be provided through the legacy ECP solution or through the
- * PSA friendly MBEDTLS_PK_USE_PSA_EC_DATA (see pk.h for its description). */
-#if defined(MBEDTLS_ECP_C) || \
-    (defined(MBEDTLS_USE_PSA_CRYPTO) && defined(PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY))
-#define MBEDTLS_PK_HAVE_ECC_KEYS
-#endif /* MBEDTLS_PK_USE_PSA_EC_DATA || MBEDTLS_ECP_C */
-
 /* Historically pkparse did not check the CBC padding when decrypting
  * a key. This was a bug, which is now fixed. As a consequence, pkparse
  * now needs PKCS7 padding support, but existing configurations might not
@@ -475,60 +364,10 @@
 #define MBEDTLS_CIPHER_PADDING_PKCS7
 #endif

-/* Backwards compatibility for some macros which were renamed to reflect that
- * they are related to Armv8, not aarch64. */
-#if defined(MBEDTLS_SHA256_USE_A64_CRYPTO_IF_PRESENT) && \
-    !defined(MBEDTLS_SHA256_USE_ARMV8_A_CRYPTO_IF_PRESENT)
-#define MBEDTLS_SHA256_USE_ARMV8_A_CRYPTO_IF_PRESENT
-#endif
-#if defined(MBEDTLS_SHA256_USE_A64_CRYPTO_ONLY) && !defined(MBEDTLS_SHA256_USE_ARMV8_A_CRYPTO_ONLY)
-#define MBEDTLS_SHA256_USE_ARMV8_A_CRYPTO_ONLY
-#endif
-
-/* psa_util file features some ECDSA conversion functions, to convert between
- * legacy's ASN.1 DER format and PSA's raw one. */
-#if (defined(MBEDTLS_PSA_CRYPTO_CLIENT) && \
-    (defined(PSA_WANT_ALG_ECDSA) || defined(PSA_WANT_ALG_DETERMINISTIC_ECDSA)))
-#define MBEDTLS_PSA_UTIL_HAVE_ECDSA
-#endif
-
-/* Some internal helpers to determine which keys are available. */
-#if (!defined(MBEDTLS_USE_PSA_CRYPTO) && defined(MBEDTLS_AES_C)) || \
-    (defined(MBEDTLS_USE_PSA_CRYPTO) && defined(PSA_WANT_KEY_TYPE_AES))
-#define MBEDTLS_SSL_HAVE_AES
-#endif
-#if (!defined(MBEDTLS_USE_PSA_CRYPTO) && defined(MBEDTLS_ARIA_C)) || \
-    (defined(MBEDTLS_USE_PSA_CRYPTO) && defined(PSA_WANT_KEY_TYPE_ARIA))
-#define MBEDTLS_SSL_HAVE_ARIA
-#endif
-#if (!defined(MBEDTLS_USE_PSA_CRYPTO) && defined(MBEDTLS_CAMELLIA_C)) || \
-    (defined(MBEDTLS_USE_PSA_CRYPTO) && defined(PSA_WANT_KEY_TYPE_CAMELLIA))
-#define MBEDTLS_SSL_HAVE_CAMELLIA
-#endif
-
 /* Some internal helpers to determine which operation modes are available. */
-#if (!defined(MBEDTLS_USE_PSA_CRYPTO) && defined(MBEDTLS_CIPHER_MODE_CBC)) || \
-    (defined(MBEDTLS_USE_PSA_CRYPTO) && defined(PSA_WANT_ALG_CBC_NO_PADDING))
-#define MBEDTLS_SSL_HAVE_CBC
-#endif
-
-#if (!defined(MBEDTLS_USE_PSA_CRYPTO) && defined(MBEDTLS_GCM_C)) || \
-    (defined(MBEDTLS_USE_PSA_CRYPTO) && defined(PSA_WANT_ALG_GCM))
-#define MBEDTLS_SSL_HAVE_GCM
-#endif
-
-#if (!defined(MBEDTLS_USE_PSA_CRYPTO) && defined(MBEDTLS_CCM_C)) || \
-    (defined(MBEDTLS_USE_PSA_CRYPTO) && defined(PSA_WANT_ALG_CCM))
-#define MBEDTLS_SSL_HAVE_CCM
-#endif
-
-#if (!defined(MBEDTLS_USE_PSA_CRYPTO) && defined(MBEDTLS_CHACHAPOLY_C)) || \
-    (defined(MBEDTLS_USE_PSA_CRYPTO) && defined(PSA_WANT_ALG_CHACHA20_POLY1305))
-#define MBEDTLS_SSL_HAVE_CHACHAPOLY
-#endif

-#if defined(MBEDTLS_SSL_HAVE_GCM) || defined(MBEDTLS_SSL_HAVE_CCM) || \
-    defined(MBEDTLS_SSL_HAVE_CHACHAPOLY)
+#if defined(PSA_WANT_ALG_GCM) || defined(PSA_WANT_ALG_CCM) || \
+    defined(PSA_WANT_ALG_CHACHA20_POLY1305)
 #define MBEDTLS_SSL_HAVE_AEAD
 #endif

diff --git a/deps/LIEF/third-party/mbedtls/include/mbedtls/aes.h b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/include/mbedtls/private/aes.h
similarity index 89%
rename from deps/LIEF/third-party/mbedtls/include/mbedtls/aes.h
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/include/mbedtls/private/aes.h
index d5eb1fd5c2c..7d913c934a0 100644
--- a/deps/LIEF/third-party/mbedtls/include/mbedtls/aes.h
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/include/mbedtls/private/aes.h
@@ -29,15 +29,17 @@
 #define MBEDTLS_AES_H
 #include "mbedtls/private_access.h"

-#include "mbedtls/build_info.h"
+#include "tf-psa-crypto/build_info.h"
 #include "mbedtls/platform_util.h"

 #include <stddef.h>
 #include <stdint.h>

-/* padlock.c and aesni.c rely on these values! */
+#if defined(MBEDTLS_DECLARE_PRIVATE_IDENTIFIERS)
+/* aesni.c relies on these values! */
 #define MBEDTLS_AES_ENCRYPT     1 /**< AES encryption. */
 #define MBEDTLS_AES_DECRYPT     0 /**< AES decryption. */
+#endif /* MBEDTLS_DECLARE_PRIVATE_IDENTIFIERS */

 /* Error codes in range 0x0020-0x0022 */
 /** Invalid key length. */
@@ -45,18 +47,13 @@
 /** Invalid data input length. */
 #define MBEDTLS_ERR_AES_INVALID_INPUT_LENGTH              -0x0022

-/* Error codes in range 0x0021-0x0025 */
 /** Invalid input data. */
-#define MBEDTLS_ERR_AES_BAD_INPUT_DATA                    -0x0021
+#define MBEDTLS_ERR_AES_BAD_INPUT_DATA                    PSA_ERROR_INVALID_ARGUMENT

 #ifdef __cplusplus
 extern "C" {
 #endif

-#if !defined(MBEDTLS_AES_ALT)
-// Regular implementation
-//
-
 /**
  * \brief The AES context-type definition.
  */
@@ -64,22 +61,19 @@ typedef struct mbedtls_aes_context {
     int MBEDTLS_PRIVATE(nr);                     /*!< The number of rounds. */
     size_t MBEDTLS_PRIVATE(rk_offset);           /*!< The offset in array elements to AES
                                                     round keys in the buffer. */
-#if defined(MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH) && !defined(MBEDTLS_PADLOCK_C)
+#if defined(MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH)
     uint32_t MBEDTLS_PRIVATE(buf)[44];           /*!< Aligned data buffer to hold
                                                     10 round keys for 128-bit case. */
 #else
     uint32_t MBEDTLS_PRIVATE(buf)[68];           /*!< Unaligned data buffer. This buffer can
                                                     hold 32 extra Bytes, which can be used for
-                                                    one of the following purposes:
-                                                    <ul><li>Alignment if VIA padlock is
-                                                    used.</li>
-                                                    <li>Simplifying key expansion in the 256-bit
-                                                    case by generating an extra round key.
-                                                    </li></ul> */
-#endif /* MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH && !MBEDTLS_PADLOCK_C */
+                                                    simplifying key expansion in the 256-bit
+                                                    case by generating an extra round key. */
+#endif /* MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH */
 }
 mbedtls_aes_context;

+#if defined(MBEDTLS_DECLARE_PRIVATE_IDENTIFIERS)
 #if defined(MBEDTLS_CIPHER_MODE_XTS)
 /**
  * \brief The AES XTS context-type definition.
@@ -92,9 +86,13 @@ typedef struct mbedtls_aes_xts_context {
 } mbedtls_aes_xts_context;
 #endif /* MBEDTLS_CIPHER_MODE_XTS */

-#else  /* MBEDTLS_AES_ALT */
-#include "aes_alt.h"
-#endif /* MBEDTLS_AES_ALT */
+typedef enum {
+    MBEDTLS_AES_IMP_UNKNOWN = -1,
+    MBEDTLS_AES_IMP_SOFTWARE,
+    MBEDTLS_AES_IMP_AESCE,
+    MBEDTLS_AES_IMP_AESNI_ASM,
+    MBEDTLS_AES_IMP_AESNI_INTRINSICS,
+} mbedtls_aes_implementation;

 /**
  * \brief          This function initializes the specified AES context.
@@ -115,6 +113,16 @@ void mbedtls_aes_init(mbedtls_aes_context *ctx);
  */
 void mbedtls_aes_free(mbedtls_aes_context *ctx);

+/**
+ * \brief          This function returns the AES implementation.
+ *
+ *                 The options are: unknown, software AES, AESCE, AESNI
+ *                 assembly, and AESNI intrinsics.
+ *
+ * \return         The enum corresponding to the AES implementation.
+ */
+mbedtls_aes_implementation mbedtls_aes_get_implementation(void);
+
 #if defined(MBEDTLS_CIPHER_MODE_XTS)
 /**
  * \brief          This function initializes the specified AES XTS context.
@@ -234,8 +242,8 @@ int mbedtls_aes_xts_setkey_dec(mbedtls_aes_xts_context *ctx,
  *
  * \param ctx      The AES context to use for encryption or decryption.
  *                 It must be initialized and bound to a key.
- * \param mode     The AES operation: #MBEDTLS_AES_ENCRYPT or
- *                 #MBEDTLS_AES_DECRYPT.
+ * \param mode     The AES operation: MBEDTLS_AES_ENCRYPT or
+ *                 MBEDTLS_AES_DECRYPT.
  * \param input    The buffer holding the input data.
  *                 It must be readable and at least \c 16 Bytes long.
  * \param output   The buffer where the output data will be written.
@@ -276,8 +284,8 @@ int mbedtls_aes_crypt_ecb(mbedtls_aes_context *ctx,
  *
  * \param ctx      The AES context to use for encryption or decryption.
  *                 It must be initialized and bound to a key.
- * \param mode     The AES operation: #MBEDTLS_AES_ENCRYPT or
- *                 #MBEDTLS_AES_DECRYPT.
+ * \param mode     The AES operation: MBEDTLS_AES_ENCRYPT or
+ *                 MBEDTLS_AES_DECRYPT.
  * \param length   The length of the input data in Bytes. This must be a
  *                 multiple of the block size (\c 16 Bytes).
  * \param iv       Initialization vector (updated after use).
@@ -315,8 +323,8 @@ int mbedtls_aes_crypt_cbc(mbedtls_aes_context *ctx,
  *
  * \param ctx          The AES XTS context to use for AES XTS operations.
  *                     It must be initialized and bound to a key.
- * \param mode         The AES operation: #MBEDTLS_AES_ENCRYPT or
- *                     #MBEDTLS_AES_DECRYPT.
+ * \param mode         The AES operation: MBEDTLS_AES_ENCRYPT or
+ *                     MBEDTLS_AES_DECRYPT.
  * \param length       The length of a data unit in Bytes. This can be any
  *                     length between 16 bytes and 2^24 bytes inclusive
  *                     (between 1 and 2^20 block cipher blocks).
@@ -371,8 +379,8 @@ int mbedtls_aes_crypt_xts(mbedtls_aes_xts_context *ctx,
  *
  * \param ctx      The AES context to use for encryption or decryption.
  *                 It must be initialized and bound to a key.
- * \param mode     The AES operation: #MBEDTLS_AES_ENCRYPT or
- *                 #MBEDTLS_AES_DECRYPT.
+ * \param mode     The AES operation: MBEDTLS_AES_ENCRYPT or
+ *                 MBEDTLS_AES_DECRYPT.
  * \param length   The length of the input data in Bytes.
  * \param iv_off   The offset in IV (updated after use).
  *                 It must point to a valid \c size_t.
@@ -405,7 +413,7 @@ int mbedtls_aes_crypt_cfb128(mbedtls_aes_context *ctx,
  *        Due to the nature of CFB, you must use the same key schedule for
  *        both encryption and decryption operations. Therefore, you must
  *        use the context initialized with mbedtls_aes_setkey_enc() for
- *        both #MBEDTLS_AES_ENCRYPT and #MBEDTLS_AES_DECRYPT.
+ *        both MBEDTLS_AES_ENCRYPT and MBEDTLS_AES_DECRYPT.
  *
  * \note  Upon exit, the content of the IV is updated so that you can
  *        call the same function again on the next
@@ -418,8 +426,8 @@ int mbedtls_aes_crypt_cfb128(mbedtls_aes_context *ctx,
  *
  * \param ctx      The AES context to use for encryption or decryption.
  *                 It must be initialized and bound to a key.
- * \param mode     The AES operation: #MBEDTLS_AES_ENCRYPT or
- *                 #MBEDTLS_AES_DECRYPT
+ * \param mode     The AES operation: MBEDTLS_AES_ENCRYPT or
+ *                 MBEDTLS_AES_DECRYPT
  * \param length   The length of the input data.
  * \param iv       The initialization vector (updated after use).
  *                 It must be a readable and writeable buffer of \c 16 Bytes.
@@ -503,7 +511,7 @@ int mbedtls_aes_crypt_ofb(mbedtls_aes_context *ctx,
  *             Due to the nature of CTR, you must use the same key schedule
  *             for both encryption and decryption operations. Therefore, you
  *             must use the context initialized with mbedtls_aes_setkey_enc()
- *             for both #MBEDTLS_AES_ENCRYPT and #MBEDTLS_AES_DECRYPT.
+ *             for both MBEDTLS_AES_ENCRYPT and MBEDTLS_AES_DECRYPT.
  *
  * \warning    You must never reuse a nonce value with the same key. Doing so
  *             would void the encryption for the two messages encrypted with
@@ -578,40 +586,6 @@ int mbedtls_aes_crypt_ctr(mbedtls_aes_context *ctx,
                           unsigned char *output);
 #endif /* MBEDTLS_CIPHER_MODE_CTR */

-/**
- * \brief           Internal AES block encryption function. This is only
- *                  exposed to allow overriding it using
- *                  \c MBEDTLS_AES_ENCRYPT_ALT.
- *
- * \param ctx       The AES context to use for encryption.
- * \param input     The plaintext block.
- * \param output    The output (ciphertext) block.
- *
- * \return          \c 0 on success.
- */
-MBEDTLS_CHECK_RETURN_TYPICAL
-int mbedtls_internal_aes_encrypt(mbedtls_aes_context *ctx,
-                                 const unsigned char input[16],
-                                 unsigned char output[16]);
-
-#if !defined(MBEDTLS_BLOCK_CIPHER_NO_DECRYPT)
-/**
- * \brief           Internal AES block decryption function. This is only
- *                  exposed to allow overriding it using see
- *                  \c MBEDTLS_AES_DECRYPT_ALT.
- *
- * \param ctx       The AES context to use for decryption.
- * \param input     The ciphertext block.
- * \param output    The output (plaintext) block.
- *
- * \return          \c 0 on success.
- */
-MBEDTLS_CHECK_RETURN_TYPICAL
-int mbedtls_internal_aes_decrypt(mbedtls_aes_context *ctx,
-                                 const unsigned char input[16],
-                                 unsigned char output[16]);
-#endif /* !MBEDTLS_BLOCK_CIPHER_NO_DECRYPT */
-
 #if defined(MBEDTLS_SELF_TEST)
 /**
  * \brief          Checkup routine.
@@ -624,6 +598,8 @@ int mbedtls_aes_self_test(int verbose);

 #endif /* MBEDTLS_SELF_TEST */

+#endif /* MBEDTLS_DECLARE_PRIVATE_IDENTIFIERS */
+
 #ifdef __cplusplus
 }
 #endif
diff --git a/deps/LIEF/third-party/mbedtls/include/mbedtls/aria.h b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/include/mbedtls/private/aria.h
similarity index 95%
rename from deps/LIEF/third-party/mbedtls/include/mbedtls/aria.h
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/include/mbedtls/private/aria.h
index c685fc31412..be7e7e95699 100644
--- a/deps/LIEF/third-party/mbedtls/include/mbedtls/aria.h
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/include/mbedtls/private/aria.h
@@ -18,22 +18,26 @@
 #define MBEDTLS_ARIA_H
 #include "mbedtls/private_access.h"

-#include "mbedtls/build_info.h"
+#include "tf-psa-crypto/build_info.h"

 #include <stddef.h>
 #include <stdint.h>

 #include "mbedtls/platform_util.h"

+#if defined(MBEDTLS_DECLARE_PRIVATE_IDENTIFIERS)
 #define MBEDTLS_ARIA_ENCRYPT     1 /**< ARIA encryption. */
 #define MBEDTLS_ARIA_DECRYPT     0 /**< ARIA decryption. */
+#endif /* MBEDTLS_DECLARE_PRIVATE_IDENTIFIERS */

 #define MBEDTLS_ARIA_BLOCKSIZE   16 /**< ARIA block size in bytes. */
 #define MBEDTLS_ARIA_MAX_ROUNDS  16 /**< Maximum number of rounds in ARIA. */
+#if defined(MBEDTLS_DECLARE_PRIVATE_IDENTIFIERS)
 #define MBEDTLS_ARIA_MAX_KEYSIZE 32 /**< Maximum size of an ARIA key in bytes. */
+#endif /* MBEDTLS_DECLARE_PRIVATE_IDENTIFIERS */

 /** Bad input data. */
-#define MBEDTLS_ERR_ARIA_BAD_INPUT_DATA -0x005C
+#define MBEDTLS_ERR_ARIA_BAD_INPUT_DATA PSA_ERROR_INVALID_ARGUMENT

 /** Invalid data input length. */
 #define MBEDTLS_ERR_ARIA_INVALID_INPUT_LENGTH -0x005E
@@ -42,10 +46,6 @@
 extern "C" {
 #endif

-#if !defined(MBEDTLS_ARIA_ALT)
-// Regular implementation
-//
-
 /**
  * \brief The ARIA context-type definition.
  */
@@ -56,10 +56,7 @@ typedef struct mbedtls_aria_context {
 }
 mbedtls_aria_context;

-#else  /* MBEDTLS_ARIA_ALT */
-#include "aria_alt.h"
-#endif /* MBEDTLS_ARIA_ALT */
-
+#if defined(MBEDTLS_DECLARE_PRIVATE_IDENTIFIERS)
 /**
  * \brief          This function initializes the specified ARIA context.
  *
@@ -171,8 +168,8 @@ int mbedtls_aria_crypt_ecb(mbedtls_aria_context *ctx,
  * \param ctx      The ARIA context to use for encryption or decryption.
  *                 This must be initialized and bound to a key.
  * \param mode     The mode of operation. This must be either
- *                 #MBEDTLS_ARIA_ENCRYPT for encryption, or
- *                 #MBEDTLS_ARIA_DECRYPT for decryption.
+ *                 MBEDTLS_ARIA_ENCRYPT for encryption, or
+ *                 MBEDTLS_ARIA_DECRYPT for decryption.
  * \param length   The length of the input data in Bytes. This must be a
  *                 multiple of the block size (16 Bytes).
  * \param iv       Initialization vector (updated after use).
@@ -220,8 +217,8 @@ int mbedtls_aria_crypt_cbc(mbedtls_aria_context *ctx,
  * \param ctx      The ARIA context to use for encryption or decryption.
  *                 This must be initialized and bound to a key.
  * \param mode     The mode of operation. This must be either
- *                 #MBEDTLS_ARIA_ENCRYPT for encryption, or
- *                 #MBEDTLS_ARIA_DECRYPT for decryption.
+ *                 MBEDTLS_ARIA_ENCRYPT for encryption, or
+ *                 MBEDTLS_ARIA_DECRYPT for decryption.
  * \param length   The length of the input data \p input in Bytes.
  * \param iv_off   The offset in IV (updated after use).
  *                 This must not be larger than 15.
@@ -252,7 +249,7 @@ int mbedtls_aria_crypt_cfb128(mbedtls_aria_context *ctx,
  *             Due to the nature of CTR, you must use the same key schedule
  *             for both encryption and decryption operations. Therefore, you
  *             must use the context initialized with mbedtls_aria_setkey_enc()
- *             for both #MBEDTLS_ARIA_ENCRYPT and #MBEDTLS_ARIA_DECRYPT.
+ *             for both MBEDTLS_ARIA_ENCRYPT and MBEDTLS_ARIA_DECRYPT.
  *
  * \warning    You must never reuse a nonce value with the same key. Doing so
  *             would void the encryption for the two messages encrypted with
@@ -336,6 +333,8 @@ int mbedtls_aria_crypt_ctr(mbedtls_aria_context *ctx,
 int mbedtls_aria_self_test(int verbose);
 #endif /* MBEDTLS_SELF_TEST */

+#endif /* MBEDTLS_DECLARE_PRIVATE_IDENTIFIERS */
+
 #ifdef __cplusplus
 }
 #endif
diff --git a/deps/LIEF/third-party/mbedtls/include/mbedtls/bignum.h b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/include/mbedtls/private/bignum.h
similarity index 93%
rename from deps/LIEF/third-party/mbedtls/include/mbedtls/bignum.h
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/include/mbedtls/private/bignum.h
index 1e1c06330fc..8276c897f6c 100644
--- a/deps/LIEF/third-party/mbedtls/include/mbedtls/bignum.h
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/include/mbedtls/private/bignum.h
@@ -11,8 +11,8 @@
 #define MBEDTLS_BIGNUM_H
 #include "mbedtls/private_access.h"

-#include "mbedtls/build_info.h"
-#include "mbedtls/platform_util.h"
+#include "tf-psa-crypto/build_info.h"
+#include "psa/crypto_values.h"

 #include <stddef.h>
 #include <stdint.h>
@@ -24,11 +24,11 @@
 /** An error occurred while reading from or writing to a file. */
 #define MBEDTLS_ERR_MPI_FILE_IO_ERROR                     -0x0002
 /** Bad input parameters to function. */
-#define MBEDTLS_ERR_MPI_BAD_INPUT_DATA                    -0x0004
+#define MBEDTLS_ERR_MPI_BAD_INPUT_DATA                    PSA_ERROR_INVALID_ARGUMENT
 /** There is an invalid character in the digit string. */
 #define MBEDTLS_ERR_MPI_INVALID_CHARACTER                 -0x0006
 /** The buffer is too small to write to. */
-#define MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL                  -0x0008
+#define MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL                  PSA_ERROR_BUFFER_TOO_SMALL
 /** The input arguments are negative or result in illegal output. */
 #define MBEDTLS_ERR_MPI_NEGATIVE_VALUE                    -0x000A
 /** The input argument for division is zero, which is not allowed. */
@@ -36,7 +36,7 @@
 /** The input arguments are not acceptable. */
 #define MBEDTLS_ERR_MPI_NOT_ACCEPTABLE                    -0x000E
 /** Memory allocation failed. */
-#define MBEDTLS_ERR_MPI_ALLOC_FAILED                      -0x0010
+#define MBEDTLS_ERR_MPI_ALLOC_FAILED                      PSA_ERROR_INSUFFICIENT_MEMORY

 #define MBEDTLS_MPI_CHK(f)       \
     do                           \
@@ -74,6 +74,7 @@
 #define MBEDTLS_MPI_MAX_SIZE                              1024     /**< Maximum number of bytes for usable MPIs. */
 #endif /* !MBEDTLS_MPI_MAX_SIZE */

+#if defined(MBEDTLS_DECLARE_PRIVATE_IDENTIFIERS)
 #define MBEDTLS_MPI_MAX_BITS                              (8 * MBEDTLS_MPI_MAX_SIZE)      /**< Maximum number of bits for usable MPIs. */

 /*
@@ -99,6 +100,7 @@
 #define MBEDTLS_MPI_RW_BUFFER_SIZE             (((MBEDTLS_MPI_MAX_BITS_SCALE100 + \
                                                   MBEDTLS_LN_2_DIV_LN_10_SCALE100 - 1) / \
                                                  MBEDTLS_LN_2_DIV_LN_10_SCALE100) + 10 + 6)
+#endif /* MBEDTLS_DECLARE_PRIVATE_IDENTIFIERS */

 /*
  * Define the base integer type, architecture-wise.
@@ -239,6 +241,9 @@ typedef struct mbedtls_mpi {
 }
 mbedtls_mpi;

+#define MBEDTLS_MPI_INIT { 0, 1, 0 }
+
+#if defined(MBEDTLS_DECLARE_PRIVATE_IDENTIFIERS)
 /**
  * \brief           Initialize an MPI context.
  *
@@ -929,7 +934,7 @@ int mbedtls_mpi_exp_mod(mbedtls_mpi *X, const mbedtls_mpi *A,
  *                 be relevant in applications like deterministic ECDSA.
  */
 int mbedtls_mpi_fill_random(mbedtls_mpi *X, size_t size,
-                            mbedtls_f_rng_t *f_rng,
+                            int (*f_rng)(void *, unsigned char *, size_t),
                             void *p_rng);

 /** Generate a random number uniformly in a range.
@@ -967,13 +972,14 @@ int mbedtls_mpi_fill_random(mbedtls_mpi *X, size_t size,
 int mbedtls_mpi_random(mbedtls_mpi *X,
                        mbedtls_mpi_sint min,
                        const mbedtls_mpi *N,
-                       mbedtls_f_rng_t *f_rng,
+                       int (*f_rng)(void *, unsigned char *, size_t),
                        void *p_rng);

 /**
  * \brief          Compute the greatest common divisor: G = gcd(A, B)
  *
  * \param G        The destination MPI. This must point to an initialized MPI.
+ *                 This will always be positive or 0.
  * \param A        The first operand. This must point to an initialized MPI.
  * \param B        The second operand. This must point to an initialized MPI.
  *
@@ -988,10 +994,12 @@ int mbedtls_mpi_gcd(mbedtls_mpi *G, const mbedtls_mpi *A,
  * \brief          Compute the modular inverse: X = A^-1 mod N
  *
  * \param X        The destination MPI. This must point to an initialized MPI.
+ *                 The value returned on success will be between [1, N-1].
  * \param A        The MPI to calculate the modular inverse of. This must point
- *                 to an initialized MPI.
+ *                 to an initialized MPI. This value can be negative, in which
+ *                 case a positive answer will still be returned in \p X.
  * \param N        The base of the modular inversion. This must point to an
- *                 initialized MPI.
+ *                 initialized MPI and be greater than one.
  *
  * \return         \c 0 if successful.
  * \return         #MBEDTLS_ERR_MPI_ALLOC_FAILED if a memory allocation failed.
@@ -1031,7 +1039,7 @@ int mbedtls_mpi_inv_mod(mbedtls_mpi *X, const mbedtls_mpi *A,
  * \return         Another negative error code on other kinds of failure.
  */
 int mbedtls_mpi_is_prime_ext(const mbedtls_mpi *X, int rounds,
-                             mbedtls_f_rng_t *f_rng,
+                             int (*f_rng)(void *, unsigned char *, size_t),
                              void *p_rng);
 /**
  * \brief Flags for mbedtls_mpi_gen_prime()
@@ -1064,9 +1072,33 @@ typedef enum {
  *                 \c 3 and #MBEDTLS_MPI_MAX_BITS.
  */
 int mbedtls_mpi_gen_prime(mbedtls_mpi *X, size_t nbits, int flags,
-                          mbedtls_f_rng_t *f_rng,
+                          int (*f_rng)(void *, unsigned char *, size_t),
                           void *p_rng);

+/**
+ * \brief       Retrieve an integer ASN.1 tag and its value.
+ *              Updates the pointer to immediately behind the full tag.
+ *              Legacy function, which is now for internal use only.
+ *              Please use mbedtls_asn1_get_integer() instead.
+ *
+ * \param p     On entry, \c *p points to the start of the ASN.1 element.
+ *              On successful completion, \c *p points to the first byte
+ *              beyond the ASN.1 element.
+ *              On error, the value of \c *p is undefined.
+ * \param end   End of data.
+ * \param X     On success, the parsed value.
+ *
+ * \return      0 if successful.
+ * \return      An ASN.1 error code if the input does not start with
+ *              a valid ASN.1 INTEGER.
+ * \return      #MBEDTLS_ERR_ASN1_INVALID_LENGTH if the parsed value does
+ *              not fit in an \c int.
+ * \return      An MPI error code if the parsed value is too large.
+ */
+int mbedtls_asn1_get_mpi(unsigned char **p,
+                         const unsigned char *end,
+                         mbedtls_mpi *X);
+
 #if defined(MBEDTLS_SELF_TEST)

 /**
@@ -1078,6 +1110,24 @@ int mbedtls_mpi_self_test(int verbose);

 #endif /* MBEDTLS_SELF_TEST */

+#endif /* MBEDTLS_DECLARE_PRIVATE_IDENTIFIERS */
+/**
+ * \brief           Write an arbitrary-precision number (#MBEDTLS_ASN1_INTEGER)
+ *                  in ASN.1 format.
+ *
+ * \note            This function works backwards in data buffer.
+ *
+ * \param p         The reference to the current position pointer.
+ * \param start     The start of the buffer, for bounds-checking.
+ * \param X         The MPI to write.
+ *                  It must be non-negative.
+ *
+ * \return          The number of bytes written to \p p on success.
+ * \return          A negative \c MBEDTLS_ERR_ASN1_XXX error code on failure.
+ */
+int mbedtls_asn1_write_mpi(unsigned char **p, const unsigned char *start,
+                           const mbedtls_mpi *X);
+
 #ifdef __cplusplus
 }
 #endif
diff --git a/deps/LIEF/third-party/mbedtls/include/mbedtls/block_cipher.h b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/include/mbedtls/private/block_cipher.h
similarity index 92%
rename from deps/LIEF/third-party/mbedtls/include/mbedtls/block_cipher.h
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/include/mbedtls/private/block_cipher.h
index 3f60f6f7dd4..70e9d955cbd 100644
--- a/deps/LIEF/third-party/mbedtls/include/mbedtls/block_cipher.h
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/include/mbedtls/private/block_cipher.h
@@ -12,16 +12,16 @@

 #include "mbedtls/private_access.h"

-#include "mbedtls/build_info.h"
+#include "tf-psa-crypto/build_info.h"

 #if defined(MBEDTLS_AES_C)
-#include "mbedtls/aes.h"
+#include "mbedtls/private/aes.h"
 #endif
 #if defined(MBEDTLS_ARIA_C)
-#include "mbedtls/aria.h"
+#include "mbedtls/private/aria.h"
 #endif
 #if defined(MBEDTLS_CAMELLIA_C)
-#include "mbedtls/camellia.h"
+#include "mbedtls/private/camellia.h"
 #endif

 #if defined(MBEDTLS_BLOCK_CIPHER_SOME_PSA)
diff --git a/deps/LIEF/third-party/mbedtls/include/mbedtls/camellia.h b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/include/mbedtls/private/camellia.h
similarity index 94%
rename from deps/LIEF/third-party/mbedtls/include/mbedtls/camellia.h
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/include/mbedtls/private/camellia.h
index 557f4725310..b8de21a0c06 100644
--- a/deps/LIEF/third-party/mbedtls/include/mbedtls/camellia.h
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/include/mbedtls/private/camellia.h
@@ -11,18 +11,20 @@
 #define MBEDTLS_CAMELLIA_H
 #include "mbedtls/private_access.h"

-#include "mbedtls/build_info.h"
+#include "tf-psa-crypto/build_info.h"

 #include <stddef.h>
 #include <stdint.h>

 #include "mbedtls/platform_util.h"

+#if defined(MBEDTLS_DECLARE_PRIVATE_IDENTIFIERS)
 #define MBEDTLS_CAMELLIA_ENCRYPT     1
 #define MBEDTLS_CAMELLIA_DECRYPT     0
+#endif /* MBEDTLS_DECLARE_PRIVATE_IDENTIFIERS */

 /** Bad input data. */
-#define MBEDTLS_ERR_CAMELLIA_BAD_INPUT_DATA -0x0024
+#define MBEDTLS_ERR_CAMELLIA_BAD_INPUT_DATA PSA_ERROR_INVALID_ARGUMENT

 /** Invalid data input length. */
 #define MBEDTLS_ERR_CAMELLIA_INVALID_INPUT_LENGTH -0x0026
@@ -31,10 +33,6 @@
 extern "C" {
 #endif

-#if !defined(MBEDTLS_CAMELLIA_ALT)
-// Regular implementation
-//
-
 /**
  * \brief          CAMELLIA context structure
  */
@@ -44,10 +42,7 @@ typedef struct mbedtls_camellia_context {
 }
 mbedtls_camellia_context;

-#else  /* MBEDTLS_CAMELLIA_ALT */
-#include "camellia_alt.h"
-#endif /* MBEDTLS_CAMELLIA_ALT */
-
+#if defined(MBEDTLS_DECLARE_PRIVATE_IDENTIFIERS)
 /**
  * \brief          Initialize a CAMELLIA context.
  *
@@ -105,7 +100,7 @@ int mbedtls_camellia_setkey_dec(mbedtls_camellia_context *ctx,
  * \param ctx      The CAMELLIA context to use. This must be initialized
  *                 and bound to a key.
  * \param mode     The mode of operation. This must be either
- *                 #MBEDTLS_CAMELLIA_ENCRYPT or #MBEDTLS_CAMELLIA_DECRYPT.
+ *                 MBEDTLS_CAMELLIA_ENCRYPT or MBEDTLS_CAMELLIA_DECRYPT.
  * \param input    The input block. This must be a readable buffer
  *                 of size \c 16 Bytes.
  * \param output   The output block. This must be a writable buffer
@@ -134,7 +129,7 @@ int mbedtls_camellia_crypt_ecb(mbedtls_camellia_context *ctx,
  * \param ctx      The CAMELLIA context to use. This must be initialized
  *                 and bound to a key.
  * \param mode     The mode of operation. This must be either
- *                 #MBEDTLS_CAMELLIA_ENCRYPT or #MBEDTLS_CAMELLIA_DECRYPT.
+ *                 MBEDTLS_CAMELLIA_ENCRYPT or MBEDTLS_CAMELLIA_DECRYPT.
  * \param length   The length in Bytes of the input data \p input.
  *                 This must be a multiple of \c 16 Bytes.
  * \param iv       The initialization vector. This must be a read/write buffer
@@ -165,7 +160,7 @@ int mbedtls_camellia_crypt_cbc(mbedtls_camellia_context *ctx,
  *                 key for both encryption and decryption. In particular, calls
  *                 to this function should be preceded by a key-schedule via
  *                 mbedtls_camellia_setkey_enc() regardless of whether \p mode
- *                 is #MBEDTLS_CAMELLIA_ENCRYPT or #MBEDTLS_CAMELLIA_DECRYPT.
+ *                 is MBEDTLS_CAMELLIA_ENCRYPT or MBEDTLS_CAMELLIA_DECRYPT.
  *
  * \note           Upon exit, the content of the IV is updated so that you can
  *                 call the function same function again on the following
@@ -178,7 +173,7 @@ int mbedtls_camellia_crypt_cbc(mbedtls_camellia_context *ctx,
  * \param ctx      The CAMELLIA context to use. This must be initialized
  *                 and bound to a key.
  * \param mode     The mode of operation. This must be either
- *                 #MBEDTLS_CAMELLIA_ENCRYPT or #MBEDTLS_CAMELLIA_DECRYPT.
+ *                 MBEDTLS_CAMELLIA_ENCRYPT or MBEDTLS_CAMELLIA_DECRYPT.
  * \param length   The length of the input data \p input. Any value is allowed.
  * \param iv_off   The current offset in the IV. This must be smaller
  *                 than \c 16 Bytes. It is updated after this call to allow
@@ -211,7 +206,7 @@ int mbedtls_camellia_crypt_cfb128(mbedtls_camellia_context *ctx,
  *             key for both encryption and decryption. In particular, calls
  *             to this function should be preceded by a key-schedule via
  *             mbedtls_camellia_setkey_enc() regardless of whether the mode
- *             is #MBEDTLS_CAMELLIA_ENCRYPT or #MBEDTLS_CAMELLIA_DECRYPT.
+ *             is MBEDTLS_CAMELLIA_ENCRYPT or MBEDTLS_CAMELLIA_DECRYPT.
  *
  * \warning    You must never reuse a nonce value with the same key. Doing so
  *             would void the encryption for the two messages encrypted with
@@ -298,6 +293,8 @@ int mbedtls_camellia_self_test(int verbose);

 #endif /* MBEDTLS_SELF_TEST */

+#endif /* MBEDTLS_DECLARE_PRIVATE_IDENTIFIERS */
+
 #ifdef __cplusplus
 }
 #endif
diff --git a/deps/LIEF/third-party/mbedtls/include/mbedtls/ccm.h b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/include/mbedtls/private/ccm.h
similarity index 96%
rename from deps/LIEF/third-party/mbedtls/include/mbedtls/ccm.h
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/include/mbedtls/private/ccm.h
index 1da57c921bf..2eca976695d 100644
--- a/deps/LIEF/third-party/mbedtls/include/mbedtls/ccm.h
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/include/mbedtls/private/ccm.h
@@ -36,32 +36,30 @@
 #define MBEDTLS_CCM_H
 #include "mbedtls/private_access.h"

-#include "mbedtls/build_info.h"
+#include "tf-psa-crypto/build_info.h"

-#include "mbedtls/cipher.h"
+#include "mbedtls/private/cipher.h"

 #if defined(MBEDTLS_BLOCK_CIPHER_C)
-#include "mbedtls/block_cipher.h"
+#include "mbedtls/private/block_cipher.h"
 #endif

+#if defined(MBEDTLS_DECLARE_PRIVATE_IDENTIFIERS)
 #define MBEDTLS_CCM_DECRYPT       0
 #define MBEDTLS_CCM_ENCRYPT       1
 #define MBEDTLS_CCM_STAR_DECRYPT  2
 #define MBEDTLS_CCM_STAR_ENCRYPT  3
+#endif /* MBEDTLS_DECLARE_PRIVATE_IDENTIFIERS */

 /** Bad input parameters to the function. */
-#define MBEDTLS_ERR_CCM_BAD_INPUT       -0x000D
+#define MBEDTLS_ERR_CCM_BAD_INPUT       PSA_ERROR_INVALID_ARGUMENT
 /** Authenticated decryption failed. */
-#define MBEDTLS_ERR_CCM_AUTH_FAILED     -0x000F
+#define MBEDTLS_ERR_CCM_AUTH_FAILED     PSA_ERROR_INVALID_SIGNATURE

 #ifdef __cplusplus
 extern "C" {
 #endif

-#if !defined(MBEDTLS_CCM_ALT)
-// Regular implementation
-//
-
 /**
  * \brief    The CCM context-type definition. The CCM context is passed
  *           to the APIs called.
@@ -80,10 +78,10 @@ typedef struct mbedtls_ccm_context {
                                                   auth data input is finished. */
     unsigned int MBEDTLS_PRIVATE(q);         /*!< The Q working value */
     unsigned int MBEDTLS_PRIVATE(mode);      /*!< The operation to perform:
-                                              #MBEDTLS_CCM_ENCRYPT or
-                                              #MBEDTLS_CCM_DECRYPT or
-                                              #MBEDTLS_CCM_STAR_ENCRYPT or
-                                              #MBEDTLS_CCM_STAR_DECRYPT. */
+                                                MBEDTLS_CCM_ENCRYPT or
+                                                MBEDTLS_CCM_DECRYPT or
+                                                MBEDTLS_CCM_STAR_ENCRYPT or
+                                                MBEDTLS_CCM_STAR_DECRYPT. */
 #if defined(MBEDTLS_BLOCK_CIPHER_C)
     mbedtls_block_cipher_context_t MBEDTLS_PRIVATE(block_cipher_ctx);    /*!< The cipher context used. */
 #else
@@ -94,10 +92,7 @@ typedef struct mbedtls_ccm_context {
 }
 mbedtls_ccm_context;

-#else  /* MBEDTLS_CCM_ALT */
-#include "ccm_alt.h"
-#endif /* MBEDTLS_CCM_ALT */
-
+#if defined(MBEDTLS_DECLARE_PRIVATE_IDENTIFIERS)
 /**
  * \brief           This function initializes the specified CCM context,
  *                  to make references valid, and prepare the context
@@ -320,9 +315,9 @@ int mbedtls_ccm_star_auth_decrypt(mbedtls_ccm_context *ctx, size_t length,
  * \note            This function is not implemented in Mbed TLS yet.
  *
  * \param ctx       The CCM context. This must be initialized.
- * \param mode      The operation to perform: #MBEDTLS_CCM_ENCRYPT or
- *                  #MBEDTLS_CCM_DECRYPT or #MBEDTLS_CCM_STAR_ENCRYPT or
- *                  #MBEDTLS_CCM_STAR_DECRYPT.
+ * \param mode      The operation to perform: MBEDTLS_CCM_ENCRYPT or
+ *                  MBEDTLS_CCM_DECRYPT or MBEDTLS_CCM_STAR_ENCRYPT or
+ *                  MBEDTLS_CCM_STAR_DECRYPT.
  * \param iv        The initialization vector. This must be a readable buffer
  *                  of at least \p iv_len Bytes.
  * \param iv_len    The length of the nonce in Bytes: 7, 8, 9, 10, 11, 12,
@@ -519,6 +514,8 @@ int mbedtls_ccm_finish(mbedtls_ccm_context *ctx,
 int mbedtls_ccm_self_test(int verbose);
 #endif /* MBEDTLS_SELF_TEST && MBEDTLS_AES_C */

+#endif /* MBEDTLS_DECLARE_PRIVATE_IDENTIFIERS */
+
 #ifdef __cplusplus
 }
 #endif
diff --git a/deps/LIEF/third-party/mbedtls/include/mbedtls/chacha20.h b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/include/mbedtls/private/chacha20.h
similarity index 97%
rename from deps/LIEF/third-party/mbedtls/include/mbedtls/chacha20.h
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/include/mbedtls/private/chacha20.h
index 680fe360461..3cc2d20442e 100644
--- a/deps/LIEF/third-party/mbedtls/include/mbedtls/chacha20.h
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/include/mbedtls/private/chacha20.h
@@ -21,20 +21,18 @@
 #define MBEDTLS_CHACHA20_H
 #include "mbedtls/private_access.h"

-#include "mbedtls/build_info.h"
+#include "tf-psa-crypto/build_info.h"

 #include <stdint.h>
 #include <stddef.h>

 /** Invalid input parameter(s). */
-#define MBEDTLS_ERR_CHACHA20_BAD_INPUT_DATA         -0x0051
+#define MBEDTLS_ERR_CHACHA20_BAD_INPUT_DATA         PSA_ERROR_INVALID_ARGUMENT

 #ifdef __cplusplus
 extern "C" {
 #endif

-#if !defined(MBEDTLS_CHACHA20_ALT)
-
 typedef struct mbedtls_chacha20_context {
     uint32_t MBEDTLS_PRIVATE(state)[16];          /*! The state (before round operations). */
     uint8_t  MBEDTLS_PRIVATE(keystream8)[64];     /*! Leftover keystream bytes. */
@@ -42,10 +40,7 @@ typedef struct mbedtls_chacha20_context {
 }
 mbedtls_chacha20_context;

-#else  /* MBEDTLS_CHACHA20_ALT */
-#include "chacha20_alt.h"
-#endif /* MBEDTLS_CHACHA20_ALT */
-
+#if defined(MBEDTLS_DECLARE_PRIVATE_IDENTIFIERS)
 /**
  * \brief           This function initializes the specified ChaCha20 context.
  *
@@ -195,6 +190,8 @@ int mbedtls_chacha20_crypt(const unsigned char key[32],
 int mbedtls_chacha20_self_test(int verbose);
 #endif /* MBEDTLS_SELF_TEST */

+#endif /* MBEDTLS_DECLARE_PRIVATE_IDENTIFIERS */
+
 #ifdef __cplusplus
 }
 #endif
diff --git a/deps/LIEF/third-party/mbedtls/include/mbedtls/chachapoly.h b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/include/mbedtls/private/chachapoly.h
similarity index 98%
rename from deps/LIEF/third-party/mbedtls/include/mbedtls/chachapoly.h
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/include/mbedtls/private/chachapoly.h
index 3dc21e380b0..0e4efc84dd9 100644
--- a/deps/LIEF/third-party/mbedtls/include/mbedtls/chachapoly.h
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/include/mbedtls/private/chachapoly.h
@@ -21,15 +21,15 @@
 #define MBEDTLS_CHACHAPOLY_H
 #include "mbedtls/private_access.h"

-#include "mbedtls/build_info.h"
+#include "tf-psa-crypto/build_info.h"

 /* for shared error codes */
-#include "mbedtls/poly1305.h"
+#include "mbedtls/private/poly1305.h"

 /** The requested operation is not permitted in the current state. */
 #define MBEDTLS_ERR_CHACHAPOLY_BAD_STATE            -0x0054
 /** Authenticated decryption failed: data was not authentic. */
-#define MBEDTLS_ERR_CHACHAPOLY_AUTH_FAILED          -0x0056
+#define MBEDTLS_ERR_CHACHAPOLY_AUTH_FAILED          PSA_ERROR_INVALID_SIGNATURE

 #ifdef __cplusplus
 extern "C" {
@@ -41,9 +41,7 @@ typedef enum {
 }
 mbedtls_chachapoly_mode_t;

-#if !defined(MBEDTLS_CHACHAPOLY_ALT)
-
-#include "mbedtls/chacha20.h"
+#include "mbedtls/private/chacha20.h"

 typedef struct mbedtls_chachapoly_context {
     mbedtls_chacha20_context MBEDTLS_PRIVATE(chacha20_ctx);  /**< The ChaCha20 context. */
@@ -55,10 +53,7 @@ typedef struct mbedtls_chachapoly_context {
 }
 mbedtls_chachapoly_context;

-#else /* !MBEDTLS_CHACHAPOLY_ALT */
-#include "chachapoly_alt.h"
-#endif /* !MBEDTLS_CHACHAPOLY_ALT */
-
+#if defined(MBEDTLS_DECLARE_PRIVATE_IDENTIFIERS)
 /**
  * \brief           This function initializes the specified ChaCha20-Poly1305 context.
  *
@@ -335,6 +330,8 @@ int mbedtls_chachapoly_auth_decrypt(mbedtls_chachapoly_context *ctx,
 int mbedtls_chachapoly_self_test(int verbose);
 #endif /* MBEDTLS_SELF_TEST */

+#endif /* MBEDTLS_DECLARE_PRIVATE_IDENTIFIERS */
+
 #ifdef __cplusplus
 }
 #endif
diff --git a/deps/LIEF/third-party/mbedtls/include/mbedtls/cipher.h b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/include/mbedtls/private/cipher.h
similarity index 87%
rename from deps/LIEF/third-party/mbedtls/include/mbedtls/cipher.h
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/include/mbedtls/private/cipher.h
index 1dc31c9c241..ba29e2fb2d3 100644
--- a/deps/LIEF/third-party/mbedtls/include/mbedtls/cipher.h
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/include/mbedtls/private/cipher.h
@@ -16,7 +16,8 @@
 #define MBEDTLS_CIPHER_H
 #include "mbedtls/private_access.h"

-#include "mbedtls/build_info.h"
+#include "tf-psa-crypto/build_info.h"
+#include "psa/crypto_values.h"

 #include <stddef.h>
 #include "mbedtls/platform_util.h"
@@ -29,28 +30,29 @@
 #define MBEDTLS_CIPHER_MODE_WITH_PADDING
 #endif

-#if defined(MBEDTLS_CIPHER_NULL_CIPHER) || \
-    defined(MBEDTLS_CHACHA20_C)
+#if defined(MBEDTLS_CHACHA20_C)
 #define MBEDTLS_CIPHER_MODE_STREAM
 #endif

 /** The selected feature is not available. */
 #define MBEDTLS_ERR_CIPHER_FEATURE_UNAVAILABLE  -0x6080
 /** Bad input parameters. */
-#define MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA       -0x6100
+#define MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA       PSA_ERROR_INVALID_ARGUMENT
 /** Failed to allocate memory. */
-#define MBEDTLS_ERR_CIPHER_ALLOC_FAILED         -0x6180
+#define MBEDTLS_ERR_CIPHER_ALLOC_FAILED         PSA_ERROR_INSUFFICIENT_MEMORY
 /** Input data contains invalid padding and is rejected. */
-#define MBEDTLS_ERR_CIPHER_INVALID_PADDING      -0x6200
+#define MBEDTLS_ERR_CIPHER_INVALID_PADDING      PSA_ERROR_INVALID_PADDING
 /** Decryption of block requires a full block. */
 #define MBEDTLS_ERR_CIPHER_FULL_BLOCK_EXPECTED  -0x6280
 /** Authentication failed (for AEAD modes). */
-#define MBEDTLS_ERR_CIPHER_AUTH_FAILED          -0x6300
+#define MBEDTLS_ERR_CIPHER_AUTH_FAILED          PSA_ERROR_INVALID_SIGNATURE
 /** The context is invalid. For example, because it was freed. */
 #define MBEDTLS_ERR_CIPHER_INVALID_CONTEXT      -0x6380

+#if defined(MBEDTLS_DECLARE_PRIVATE_IDENTIFIERS)
 #define MBEDTLS_CIPHER_VARIABLE_IV_LEN     0x01    /**< Cipher accepts IVs of variable length. */
 #define MBEDTLS_CIPHER_VARIABLE_KEY_LEN    0x02    /**< Cipher accepts keys of variable length. */
+#endif

 #ifdef __cplusplus
 extern "C" {
@@ -58,17 +60,11 @@ extern "C" {

 /**
  * \brief     Supported cipher types.
- *
- * \warning   DES/3DES are considered weak ciphers and their use
- *            constitutes a security risk. We recommend considering stronger
- *            ciphers instead.
  */
 typedef enum {
     MBEDTLS_CIPHER_ID_NONE = 0,  /**< Placeholder to mark the end of cipher ID lists. */
     MBEDTLS_CIPHER_ID_NULL,      /**< The identity cipher, treated as a stream cipher. */
     MBEDTLS_CIPHER_ID_AES,       /**< The AES cipher. */
-    MBEDTLS_CIPHER_ID_DES,       /**< The DES cipher. \warning DES is considered weak. */
-    MBEDTLS_CIPHER_ID_3DES,      /**< The Triple DES cipher. \warning 3DES is considered weak. */
     MBEDTLS_CIPHER_ID_CAMELLIA,  /**< The Camellia cipher. */
     MBEDTLS_CIPHER_ID_ARIA,      /**< The Aria cipher. */
     MBEDTLS_CIPHER_ID_CHACHA20,  /**< The ChaCha20 cipher. */
@@ -76,10 +72,6 @@ typedef enum {

 /**
  * \brief     Supported {cipher type, cipher mode} pairs.
- *
- * \warning   DES/3DES are considered weak ciphers and their use
- *            constitutes a security risk. We recommend considering stronger
- *            ciphers instead.
  */
 typedef enum {
     MBEDTLS_CIPHER_NONE = 0,             /**< Placeholder to mark the end of cipher-pair lists. */
@@ -114,12 +106,6 @@ typedef enum {
     MBEDTLS_CIPHER_CAMELLIA_128_GCM,     /**< Camellia cipher with 128-bit GCM mode. */
     MBEDTLS_CIPHER_CAMELLIA_192_GCM,     /**< Camellia cipher with 192-bit GCM mode. */
     MBEDTLS_CIPHER_CAMELLIA_256_GCM,     /**< Camellia cipher with 256-bit GCM mode. */
-    MBEDTLS_CIPHER_DES_ECB,              /**< DES cipher with ECB mode. \warning DES is considered weak. */
-    MBEDTLS_CIPHER_DES_CBC,              /**< DES cipher with CBC mode. \warning DES is considered weak. */
-    MBEDTLS_CIPHER_DES_EDE_ECB,          /**< DES cipher with EDE ECB mode. \warning 3DES is considered weak. */
-    MBEDTLS_CIPHER_DES_EDE_CBC,          /**< DES cipher with EDE CBC mode. \warning 3DES is considered weak. */
-    MBEDTLS_CIPHER_DES_EDE3_ECB,         /**< DES cipher with EDE3 ECB mode. \warning 3DES is considered weak. */
-    MBEDTLS_CIPHER_DES_EDE3_CBC,         /**< DES cipher with EDE3 CBC mode. \warning 3DES is considered weak. */
     MBEDTLS_CIPHER_AES_128_CCM,          /**< AES cipher with 128-bit CCM mode. */
     MBEDTLS_CIPHER_AES_192_CCM,          /**< AES cipher with 192-bit CCM mode. */
     MBEDTLS_CIPHER_AES_256_CCM,          /**< AES cipher with 256-bit CCM mode. */
@@ -186,14 +172,13 @@ typedef enum {
     MBEDTLS_MODE_KWP,                    /**< The SP800-38F KWP mode */
 } mbedtls_cipher_mode_t;

+#if defined(MBEDTLS_DECLARE_PRIVATE_IDENTIFIERS)
 /** Supported cipher padding types. */
 typedef enum {
     MBEDTLS_PADDING_PKCS7 = 0,     /**< PKCS7 padding (default).        */
-    MBEDTLS_PADDING_ONE_AND_ZEROS, /**< ISO/IEC 7816-4 padding.         */
-    MBEDTLS_PADDING_ZEROS_AND_LEN, /**< ANSI X.923 padding.             */
-    MBEDTLS_PADDING_ZEROS,         /**< Zero padding (not reversible). */
     MBEDTLS_PADDING_NONE,          /**< Never pad (full blocks only).   */
 } mbedtls_cipher_padding_t;
+#endif /* MBEDTLS_DECLARE_PRIVATE_IDENTIFIERS */

 /** Type of operation. */
 typedef enum {
@@ -202,36 +187,22 @@ typedef enum {
     MBEDTLS_ENCRYPT,
 } mbedtls_operation_t;

-enum {
-    /** Undefined key length. */
-    MBEDTLS_KEY_LENGTH_NONE = 0,
-    /** Key length, in bits (including parity), for DES keys. \warning DES is considered weak. */
-    MBEDTLS_KEY_LENGTH_DES  = 64,
-    /** Key length in bits, including parity, for DES in two-key EDE. \warning 3DES is considered weak. */
-    MBEDTLS_KEY_LENGTH_DES_EDE = 128,
-    /** Key length in bits, including parity, for DES in three-key EDE. \warning 3DES is considered weak. */
-    MBEDTLS_KEY_LENGTH_DES_EDE3 = 192,
-};
-
 /** Maximum length of any IV, in Bytes. */
 /* This should ideally be derived automatically from list of ciphers.
- * This should be kept in sync with MBEDTLS_SSL_MAX_IV_LENGTH defined
- * in library/ssl_misc.h. */
+ */
 #define MBEDTLS_MAX_IV_LENGTH      16

 /** Maximum block size of any cipher, in Bytes. */
 /* This should ideally be derived automatically from list of ciphers.
- * This should be kept in sync with MBEDTLS_SSL_MAX_BLOCK_LENGTH defined
- * in library/ssl_misc.h. */
+ */
 #define MBEDTLS_MAX_BLOCK_LENGTH   16

+#if defined(MBEDTLS_DECLARE_PRIVATE_IDENTIFIERS)
 /** Maximum key length, in Bytes. */
 /* This should ideally be derived automatically from list of ciphers.
  * For now, only check whether XTS is enabled which uses 64 Byte keys,
  * and use 32 Bytes as an upper bound for the maximum key length otherwise.
- * This should be kept in sync with MBEDTLS_SSL_MAX_BLOCK_LENGTH defined
- * in library/ssl_misc.h, which however deliberately ignores the case of XTS
- * since the latter isn't used in SSL/TLS. */
+ */
 #if defined(MBEDTLS_CIPHER_MODE_XTS)
 #define MBEDTLS_MAX_KEY_LENGTH     64
 #else
@@ -242,6 +213,7 @@ enum {
  * Base cipher information (opaque struct).
  */
 typedef struct mbedtls_cipher_base_t mbedtls_cipher_base_t;
+#endif /* MBEDTLS_DECLARE_PRIVATE_IDENTIFIERS */

 /**
  * CMAC context (opaque struct).
@@ -270,15 +242,14 @@ typedef struct mbedtls_cipher_info_t {
     /** The block size, in bytes. */
     unsigned int MBEDTLS_PRIVATE(block_size) : 5;

-    /** IV or nonce size, in bytes (right shifted by #MBEDTLS_IV_SIZE_SHIFT).
+    /** IV or nonce size, in bytes (right shifted by MBEDTLS_IV_SIZE_SHIFT).
      * For ciphers that accept variable IV sizes,
      * this is the recommended size.
      */
     unsigned int MBEDTLS_PRIVATE(iv_size) : 3;

-    /** The cipher key length, in bits (right shifted by #MBEDTLS_KEY_BITLEN_SHIFT).
+    /** The cipher key length, in bits (right shifted by MBEDTLS_KEY_BITLEN_SHIFT).
      * This is the default length for variable sized ciphers.
-     * Includes parity bits for ciphers like DES.
      */
     unsigned int MBEDTLS_PRIVATE(key_bitlen) : 4;

@@ -306,10 +277,13 @@ typedef struct mbedtls_cipher_info_t {

 } mbedtls_cipher_info_t;

+#if defined(MBEDTLS_DECLARE_PRIVATE_IDENTIFIERS)
 /* For internal use only.
  * These are used to more compactly represent the fields above. */
 #define MBEDTLS_KEY_BITLEN_SHIFT  6
 #define MBEDTLS_IV_SIZE_SHIFT     2
+#endif
+
 /**
  * Generic cipher context.
  */
@@ -329,8 +303,15 @@ typedef struct mbedtls_cipher_context_t {
     /** Padding functions to use, if relevant for
      * the specific cipher mode.
      */
-    void(*MBEDTLS_PRIVATE(add_padding))(unsigned char *output, size_t olen, size_t data_len);
-    int(*MBEDTLS_PRIVATE(get_padding))(unsigned char *input, size_t ilen, size_t *data_len);
+    void(*MBEDTLS_PRIVATE(add_padding))(unsigned char *output, size_t olen,
+                                        size_t data_len);
+    /* Report invalid-padding condition through the output parameter
+     * invalid_padding. To minimize changes in Mbed TLS 3.6, where this
+     * declaration is in a public header, use the public type size_t
+     * rather than the internal type mbedtls_ct_condition_t. */
+    int(*MBEDTLS_PRIVATE(get_padding))(unsigned char *input, size_t ilen,
+                                       size_t *data_len,
+                                       size_t *invalid_padding);
 #endif

     /** Buffer for input that has not been processed yet. */
@@ -354,7 +335,7 @@ typedef struct mbedtls_cipher_context_t {
     mbedtls_cmac_context_t *MBEDTLS_PRIVATE(cmac_ctx);
 #endif

-#if defined(MBEDTLS_USE_PSA_CRYPTO) && !defined(MBEDTLS_DEPRECATED_REMOVED)
+#if !defined(MBEDTLS_DEPRECATED_REMOVED)
     /** Indicates whether the cipher operations should be performed
      *  by Mbed TLS' own crypto library or an external implementation
      *  of the PSA Crypto API.
@@ -363,10 +344,11 @@ typedef struct mbedtls_cipher_context_t {
      *  mbedtls_cipher_setup_psa().
      */
     unsigned char MBEDTLS_PRIVATE(psa_enabled);
-#endif /* MBEDTLS_USE_PSA_CRYPTO && !MBEDTLS_DEPRECATED_REMOVED */
+#endif /* !MBEDTLS_DEPRECATED_REMOVED */

 } mbedtls_cipher_context_t;

+#if defined(MBEDTLS_DECLARE_PRIVATE_IDENTIFIERS)
 /**
  * \brief This function retrieves the list of ciphers supported
  *        by the generic cipher module.
@@ -471,7 +453,6 @@ static inline mbedtls_cipher_mode_t mbedtls_cipher_info_get_mode(
  *
  * \return              The key length in bits.
  *                      For variable-sized ciphers, this is the default length.
- *                      For DES, this includes the parity bits.
  * \return              \c 0 if \p info is \c NULL.
  */
 static inline size_t mbedtls_cipher_info_get_key_bitlen(
@@ -614,7 +595,7 @@ void mbedtls_cipher_free(mbedtls_cipher_context_t *ctx);
  *                      non-AEAD modes;
  *                      - mbedtls_cipher_auth_encrypt_ext() or
  *                      mbedtls_cipher_auth_decrypt_ext() for one-shot
- *                      processing with AEAD modes or NIST_KW;
+ *                      processing with AEAD modes;
  *                      - for multi-part processing, see the documentation of
  *                      mbedtls_cipher_reset().
  *
@@ -631,7 +612,6 @@ void mbedtls_cipher_free(mbedtls_cipher_context_t *ctx);
 int mbedtls_cipher_setup(mbedtls_cipher_context_t *ctx,
                          const mbedtls_cipher_info_t *cipher_info);

-#if defined(MBEDTLS_USE_PSA_CRYPTO)
 #if !defined(MBEDTLS_DEPRECATED_REMOVED)
 /**
  * \brief               This function initializes a cipher context for
@@ -642,8 +622,6 @@ int mbedtls_cipher_setup(mbedtls_cipher_context_t *ctx,
  *                      Please use psa_aead_xxx() / psa_cipher_xxx() directly
  *                      instead.
  *
- * \note                See #MBEDTLS_USE_PSA_CRYPTO for information on PSA.
- *
  * \param ctx           The context to initialize. May not be \c NULL.
  * \param cipher_info   The cipher to use.
  * \param taglen        For AEAD ciphers, the length in bytes of the
@@ -663,7 +641,6 @@ int MBEDTLS_DEPRECATED mbedtls_cipher_setup_psa(mbedtls_cipher_context_t *ctx,
                                                 const mbedtls_cipher_info_t *cipher_info,
                                                 size_t taglen);
 #endif /* MBEDTLS_DEPRECATED_REMOVED */
-#endif /* MBEDTLS_USE_PSA_CRYPTO */

 /**
  * \brief        This function returns the block size of the given cipher
@@ -772,14 +749,14 @@ static inline const char *mbedtls_cipher_get_name(
  * \param ctx           The context of the cipher. This must be initialized.
  *
  * \return              The key length of the cipher in bits.
- * \return              #MBEDTLS_KEY_LENGTH_NONE if \p ctx has not been
+ * \return              0 if \p ctx has not been
  *                      initialized.
  */
 static inline int mbedtls_cipher_get_key_bitlen(
     const mbedtls_cipher_context_t *ctx)
 {
     if (ctx->MBEDTLS_PRIVATE(cipher_info) == NULL) {
-        return MBEDTLS_KEY_LENGTH_NONE;
+        return 0;
     }

     return (int) ctx->MBEDTLS_PRIVATE(cipher_info)->MBEDTLS_PRIVATE(key_bitlen) <<
@@ -878,23 +855,24 @@ int mbedtls_cipher_set_iv(mbedtls_cipher_context_t *ctx,
  *
  * \note          With non-AEAD ciphers, the order of calls for each message
  *                is as follows:
- *                1. mbedtls_cipher_set_iv() if the mode uses an IV/nonce.
- *                2. mbedtls_cipher_reset()
- *                3. mbedtls_cipher_update() one or more times
- *                4. mbedtls_cipher_finish()
+ *                1. mbedtls_cipher_set_iv() if the mode uses an IV/nonce;
+ *                2. mbedtls_cipher_reset();
+ *                3. mbedtls_cipher_update() zero, one or more times;
+ *                4. mbedtls_cipher_finish_padded() (recommended for decryption
+ *                   if the mode uses padding) or mbedtls_cipher_finish().
  *                .
  *                This sequence can be repeated to encrypt or decrypt multiple
  *                messages with the same key.
  *
  * \note          With AEAD ciphers, the order of calls for each message
  *                is as follows:
- *                1. mbedtls_cipher_set_iv() if the mode uses an IV/nonce.
- *                2. mbedtls_cipher_reset()
- *                3. mbedtls_cipher_update_ad()
- *                4. mbedtls_cipher_update() one or more times
- *                5. mbedtls_cipher_finish()
+ *                1. mbedtls_cipher_set_iv() if the mode uses an IV/nonce;
+ *                2. mbedtls_cipher_reset();
+ *                3. mbedtls_cipher_update_ad();
+ *                4. mbedtls_cipher_update() zero, one or more times;
+ *                5. mbedtls_cipher_finish() (or mbedtls_cipher_finish_padded());
  *                6. mbedtls_cipher_check_tag() (for decryption) or
- *                mbedtls_cipher_write_tag() (for encryption).
+ *                   mbedtls_cipher_write_tag() (for encryption).
  *                .
  *                This sequence can be repeated to encrypt or decrypt multiple
  *                messages with the same key.
@@ -930,7 +908,8 @@ int mbedtls_cipher_update_ad(mbedtls_cipher_context_t *ctx,
  *                      many block-sized blocks of data as possible to output.
  *                      Any data that cannot be written immediately is either
  *                      added to the next block, or flushed when
- *                      mbedtls_cipher_finish() is called.
+ *                      mbedtls_cipher_finish() or mbedtls_cipher_finish_padded()
+ *                      is called.
  *                      Exception: For MBEDTLS_MODE_ECB, expects a single block
  *                      in size. For example, 16 Bytes for AES.
  *
@@ -964,12 +943,30 @@ int mbedtls_cipher_update(mbedtls_cipher_context_t *ctx,
  *                      contained in it is padded to the size of
  *                      the last block, and written to the \p output buffer.
  *
+ * \warning             This function reports invalid padding through an error
+ *                      code. Adversaries may be able to decrypt encrypted
+ *                      data if they can submit chosen ciphertexts and
+ *                      detect whether it has valid padding or not,
+ *                      either through direct observation or through a side
+ *                      channel such as timing. This is known as a
+ *                      padding oracle attack.
+ *                      Therefore applications that call this function for
+ *                      decryption with a cipher that involves padding
+ *                      should take care around error handling. Preferably,
+ *                      such applications should use
+ *                      mbedtls_cipher_finish_padded() instead of this function.
+ *
  * \param ctx           The generic cipher context. This must be initialized and
  *                      bound to a key.
  * \param output        The buffer to write data to. This needs to be a writable
  *                      buffer of at least block_size Bytes.
  * \param olen          The length of the data written to the \p output buffer.
  *                      This may not be \c NULL.
+ *                      Note that when decrypting in a mode with padding,
+ *                      the actual output length is sensitive and may be
+ *                      used to mount a padding oracle attack (see warning
+ *                      above), although less efficiently than through
+ *                      the invalid-padding condition.
  *
  * \return              \c 0 on success.
  * \return              #MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA on
@@ -977,17 +974,66 @@ int mbedtls_cipher_update(mbedtls_cipher_context_t *ctx,
  * \return              #MBEDTLS_ERR_CIPHER_FULL_BLOCK_EXPECTED on decryption
  *                      expecting a full block but not receiving one.
  * \return              #MBEDTLS_ERR_CIPHER_INVALID_PADDING on invalid padding
- *                      while decrypting.
+ *                      while decrypting. Note that invalid-padding errors
+ *                      should be handled carefully; see the warning above.
  * \return              A cipher-specific error code on failure.
  */
 int mbedtls_cipher_finish(mbedtls_cipher_context_t *ctx,
                           unsigned char *output, size_t *olen);

+/**
+ * \brief               The generic cipher finalization function. If data still
+ *                      needs to be flushed from an incomplete block, the data
+ *                      contained in it is padded to the size of
+ *                      the last block, and written to the \p output buffer.
+ *
+ * \note                This function is similar to mbedtls_cipher_finish().
+ *                      The only difference is that it reports invalid padding
+ *                      decryption differently, through the \p invalid_padding
+ *                      parameter rather than an error code.
+ *                      For encryption, and in modes without padding (including
+ *                      all authenticated modes), this function is identical
+ *                      to mbedtls_cipher_finish().
+ *
+ * \param[in,out] ctx   The generic cipher context. This must be initialized and
+ *                      bound to a key.
+ * \param[out] output   The buffer to write data to. This needs to be a writable
+ *                      buffer of at least block_size Bytes.
+ * \param[out] olen     The length of the data written to the \p output buffer.
+ *                      This may not be \c NULL.
+ *                      Note that when decrypting in a mode with padding,
+ *                      the actual output length is sensitive and may be
+ *                      used to mount a padding oracle attack (see warning
+ *                      on mbedtls_cipher_finish()).
+ * \param[out] invalid_padding
+ *                      If this function returns \c 0 on decryption,
+ *                      \p *invalid_padding is \c 0 if the ciphertext was
+ *                      valid, and all-bits-one if the ciphertext had invalid
+ *                      padding.
+ *                      On encryption, or in a mode without padding (including
+ *                      all authenticated modes), \p *invalid_padding is \c 0
+ *                      on success.
+ *                      The value in \p *invalid_padding is unspecified if
+ *                      this function returns a nonzero status.
+ *
+ * \return              \c 0 on success.
+ *                      Also \c 0 for decryption with invalid padding.
+ * \return              #MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA on
+ *                      parameter-verification failure.
+ * \return              #MBEDTLS_ERR_CIPHER_FULL_BLOCK_EXPECTED on decryption
+ *                      expecting a full block but not receiving one.
+ * \return              A cipher-specific error code on failure.
+ */
+int mbedtls_cipher_finish_padded(mbedtls_cipher_context_t *ctx,
+                                 unsigned char *output, size_t *olen,
+                                 size_t *invalid_padding);
+
 #if defined(MBEDTLS_GCM_C) || defined(MBEDTLS_CHACHAPOLY_C)
 /**
  * \brief               This function writes a tag for AEAD ciphers.
  *                      Currently supported with GCM and ChaCha20+Poly1305.
- *                      This must be called after mbedtls_cipher_finish().
+ *                      This must be called after mbedtls_cipher_finish()
+ *                      or mbedtls_cipher_finish_padded().
  *
  * \param ctx           The generic cipher context. This must be initialized,
  *                      bound to a key, and have just completed a cipher
@@ -1006,7 +1052,8 @@ int mbedtls_cipher_write_tag(mbedtls_cipher_context_t *ctx,
 /**
  * \brief               This function checks the tag for AEAD ciphers.
  *                      Currently supported with GCM and ChaCha20+Poly1305.
- *                      This must be called after mbedtls_cipher_finish().
+ *                      This must be called after mbedtls_cipher_finish()
+ *                      or mbedtls_cipher_finish_padded().
  *
  * \param ctx           The generic cipher context. This must be initialized.
  * \param tag           The buffer holding the tag. This must be a readable
@@ -1058,26 +1105,24 @@ int mbedtls_cipher_crypt(mbedtls_cipher_context_t *ctx,
                          const unsigned char *input, size_t ilen,
                          unsigned char *output, size_t *olen);

-#if defined(MBEDTLS_CIPHER_MODE_AEAD) || defined(MBEDTLS_NIST_KW_C)
+#if defined(MBEDTLS_CIPHER_MODE_AEAD)
 /**
- * \brief               The authenticated encryption (AEAD/NIST_KW) function.
+ * \brief               The authenticated encryption (AEAD) function.
  *
  * \note                For AEAD modes, the tag will be appended to the
  *                      ciphertext, as recommended by RFC 5116.
- *                      (NIST_KW doesn't have a separate tag.)
  *
  * \param ctx           The generic cipher context. This must be initialized and
- *                      bound to a key, with an AEAD algorithm or NIST_KW.
+ *                      bound to a key, with an AEAD algorithm.
  * \param iv            The nonce to use. This must be a readable buffer of
  *                      at least \p iv_len Bytes and may be \c NULL if \p
  *                      iv_len is \c 0.
  * \param iv_len        The length of the nonce. For AEAD ciphers, this must
  *                      satisfy the constraints imposed by the cipher used.
- *                      For NIST_KW, this must be \c 0.
  * \param ad            The additional data to authenticate. This must be a
  *                      readable buffer of at least \p ad_len Bytes, and may
  *                      be \c NULL is \p ad_len is \c 0.
- * \param ad_len        The length of \p ad. For NIST_KW, this must be \c 0.
+ * \param ad_len        The length of \p ad
  * \param input         The buffer holding the input data. This must be a
  *                      readable buffer of at least \p ilen Bytes, and may be
  *                      \c NULL if \p ilen is \c 0.
@@ -1087,7 +1132,6 @@ int mbedtls_cipher_crypt(mbedtls_cipher_context_t *ctx,
  *                      must not be \c NULL.
  * \param output_len    The length of the \p output buffer in Bytes. For AEAD
  *                      ciphers, this must be at least \p ilen + \p tag_len.
- *                      For NIST_KW, this must be at least \p ilen + 8
  *                      (rounded up to a multiple of 8 if KWP is used);
  *                      \p ilen + 15 is always a safe value.
  * \param olen          This will be filled with the actual number of Bytes
@@ -1096,7 +1140,6 @@ int mbedtls_cipher_crypt(mbedtls_cipher_context_t *ctx,
  * \param tag_len       The desired length of the authentication tag. For AEAD
  *                      ciphers, this must match the constraints imposed by
  *                      the cipher used, and in particular must not be \c 0.
- *                      For NIST_KW, this must be \c 0.
  *
  * \return              \c 0 on success.
  * \return              #MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA on
@@ -1111,7 +1154,7 @@ int mbedtls_cipher_auth_encrypt_ext(mbedtls_cipher_context_t *ctx,
                                     size_t *olen, size_t tag_len);

 /**
- * \brief               The authenticated encryption (AEAD/NIST_KW) function.
+ * \brief               The authenticated encryption (AEAD) function.
  *
  * \note                If the data is not authentic, then the output buffer
  *                      is zeroed out to prevent the unauthentic plaintext being
@@ -1119,39 +1162,34 @@ int mbedtls_cipher_auth_encrypt_ext(mbedtls_cipher_context_t *ctx,
  *
  * \note                For AEAD modes, the tag must be appended to the
  *                      ciphertext, as recommended by RFC 5116.
- *                      (NIST_KW doesn't have a separate tag.)
  *
  * \param ctx           The generic cipher context. This must be initialized and
- *                      bound to a key, with an AEAD algorithm or NIST_KW.
+ *                      bound to a key, with an AEAD algorithm.
  * \param iv            The nonce to use. This must be a readable buffer of
  *                      at least \p iv_len Bytes and may be \c NULL if \p
  *                      iv_len is \c 0.
  * \param iv_len        The length of the nonce. For AEAD ciphers, this must
  *                      satisfy the constraints imposed by the cipher used.
- *                      For NIST_KW, this must be \c 0.
  * \param ad            The additional data to authenticate. This must be a
  *                      readable buffer of at least \p ad_len Bytes, and may
  *                      be \c NULL is \p ad_len is \c 0.
- * \param ad_len        The length of \p ad. For NIST_KW, this must be \c 0.
+ * \param ad_len        The length of \p ad.
  * \param input         The buffer holding the input data. This must be a
  *                      readable buffer of at least \p ilen Bytes, and may be
  *                      \c NULL if \p ilen is \c 0.
  * \param ilen          The length of the input data. For AEAD ciphers this
- *                      must be at least \p tag_len. For NIST_KW this must be
- *                      at least \c 8.
+ *                      must be at least \p tag_len.
  * \param output        The buffer for the output data. This must be a
  *                      writable buffer of at least \p output_len Bytes, and
  *                      may be \c NULL if \p output_len is \c 0.
  * \param output_len    The length of the \p output buffer in Bytes. For AEAD
  *                      ciphers, this must be at least \p ilen - \p tag_len.
- *                      For NIST_KW, this must be at least \p ilen - 8.
  * \param olen          This will be filled with the actual number of Bytes
  *                      written to the \p output buffer. This must point to a
  *                      writable object of type \c size_t.
  * \param tag_len       The actual length of the authentication tag. For AEAD
  *                      ciphers, this must match the constraints imposed by
  *                      the cipher used, and in particular must not be \c 0.
- *                      For NIST_KW, this must be \c 0.
  *
  * \return              \c 0 on success.
  * \return              #MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA on
@@ -1165,7 +1203,10 @@ int mbedtls_cipher_auth_decrypt_ext(mbedtls_cipher_context_t *ctx,
                                     const unsigned char *input, size_t ilen,
                                     unsigned char *output, size_t output_len,
                                     size_t *olen, size_t tag_len);
-#endif /* MBEDTLS_CIPHER_MODE_AEAD || MBEDTLS_NIST_KW_C */
+#endif /* MBEDTLS_CIPHER_MODE_AEAD */
+
+#endif /* MBEDTLS_DECLARE_PRIVATE_IDENTIFIERS */
+
 #ifdef __cplusplus
 }
 #endif
diff --git a/deps/LIEF/third-party/mbedtls/include/mbedtls/cmac.h b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/include/mbedtls/private/cmac.h
similarity index 82%
rename from deps/LIEF/third-party/mbedtls/include/mbedtls/cmac.h
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/include/mbedtls/private/cmac.h
index 97b86fc42b1..f5dd240dfdc 100644
--- a/deps/LIEF/third-party/mbedtls/include/mbedtls/cmac.h
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/include/mbedtls/private/cmac.h
@@ -16,14 +16,15 @@
 #define MBEDTLS_CMAC_H
 #include "mbedtls/private_access.h"

-#include "mbedtls/build_info.h"
+#include "tf-psa-crypto/build_info.h"

-#include "mbedtls/cipher.h"
+#include "mbedtls/private/cipher.h"

 #ifdef __cplusplus
 extern "C" {
 #endif

+#if defined(MBEDTLS_DECLARE_PRIVATE_IDENTIFIERS)
 #define MBEDTLS_AES_BLOCK_SIZE          16
 #define MBEDTLS_DES3_BLOCK_SIZE         8

@@ -32,14 +33,15 @@ extern "C" {
 #define MBEDTLS_CMAC_MAX_BLOCK_SIZE      16  /**< The longest block used by CMAC is that of AES. */
 #else
 #define MBEDTLS_CMAC_MAX_BLOCK_SIZE      8   /**< The longest block used by CMAC is that of 3DES. */
-#endif
+#endif /* MBEDTLS_AES_C */
+#endif /* MBEDTLS_DECLARE_PRIVATE_IDENTIFIERS */

 #if !defined(MBEDTLS_DEPRECATED_REMOVED)
 /** The longest block supported by the cipher module.
  *
  * \deprecated
  * For the maximum block size of a cipher supported by the CMAC module,
- * use #MBEDTLS_CMAC_MAX_BLOCK_SIZE.
+ * use MBEDTLS_CMAC_MAX_BLOCK_SIZE.
  * For the maximum block size of a cipher supported by the cipher module,
  * use #MBEDTLS_MAX_BLOCK_LENGTH.
  */
@@ -51,8 +53,7 @@ extern "C" {
 #define MBEDTLS_CIPHER_BLKSIZE_MAX MBEDTLS_MAX_BLOCK_LENGTH
 #endif /* MBEDTLS_DEPRECATED_REMOVED */

-#if !defined(MBEDTLS_CMAC_ALT)
-
+#if defined(MBEDTLS_DECLARE_PRIVATE_IDENTIFIERS)
 /**
  * The CMAC context structure.
  */
@@ -68,10 +69,6 @@ struct mbedtls_cmac_context_t {
     size_t              MBEDTLS_PRIVATE(unprocessed_len);
 };

-#else  /* !MBEDTLS_CMAC_ALT */
-#include "cmac_alt.h"
-#endif /* !MBEDTLS_CMAC_ALT */
-
 /**
  * \brief               This function starts a new CMAC computation
  *                      by setting the CMAC key, and preparing to authenticate
@@ -85,16 +82,9 @@ struct mbedtls_cmac_context_t {
  *                      To start a CMAC computation using the same key as a previous
  *                      CMAC computation, use mbedtls_cipher_cmac_finish().
  *
- * \note                When the CMAC implementation is supplied by an alternate
- *                      implementation (through #MBEDTLS_CMAC_ALT), some ciphers
- *                      may not be supported by that implementation, and thus
- *                      return an error. Alternate implementations must support
- *                      AES-128 and AES-256, and may support AES-192 and 3DES.
- *
  * \param ctx           The cipher context used for the CMAC operation, initialized
  *                      as one of the following types: MBEDTLS_CIPHER_AES_128_ECB,
- *                      MBEDTLS_CIPHER_AES_192_ECB, MBEDTLS_CIPHER_AES_256_ECB,
- *                      or MBEDTLS_CIPHER_DES_EDE3_ECB.
+ *                      MBEDTLS_CIPHER_AES_192_ECB or MBEDTLS_CIPHER_AES_256_ECB.
  * \param key           The CMAC key.
  * \param keybits       The length of the CMAC key in bits.
  *                      Must be supported by the cipher.
@@ -177,12 +167,6 @@ int mbedtls_cipher_cmac_reset(mbedtls_cipher_context_t *ctx);
  *                      The CMAC result is calculated as
  *                      output = generic CMAC(cmac key, input buffer).
  *
- * \note                When the CMAC implementation is supplied by an alternate
- *                      implementation (through #MBEDTLS_CMAC_ALT), some ciphers
- *                      may not be supported by that implementation, and thus
- *                      return an error. Alternate implementations must support
- *                      AES-128 and AES-256, and may support AES-192 and 3DES.
- *
  * \param cipher_info   The cipher information.
  * \param key           The CMAC key.
  * \param keylen        The length of the CMAC key in bits.
@@ -222,22 +206,18 @@ int mbedtls_aes_cmac_prf_128(const unsigned char *key, size_t key_len,
                              unsigned char output[16]);
 #endif /* MBEDTLS_AES_C */

-#if defined(MBEDTLS_SELF_TEST) && (defined(MBEDTLS_AES_C) || defined(MBEDTLS_DES_C))
+#if defined(MBEDTLS_SELF_TEST) && defined(MBEDTLS_AES_C)
 /**
  * \brief          The CMAC checkup routine.
  *
- * \note           In case the CMAC routines are provided by an alternative
- *                 implementation (i.e. #MBEDTLS_CMAC_ALT is defined), the
- *                 checkup routine will succeed even if the implementation does
- *                 not support the less widely used AES-192 or 3DES primitives.
- *                 The self-test requires at least AES-128 and AES-256 to be
- *                 supported by the underlying implementation.
  *
  * \return         \c 0 on success.
  * \return         \c 1 on failure.
  */
 int mbedtls_cmac_self_test(int verbose);
-#endif /* MBEDTLS_SELF_TEST && ( MBEDTLS_AES_C || MBEDTLS_DES_C ) */
+#endif /* MBEDTLS_SELF_TEST && MBEDTLS_AES_C*/
+
+#endif /* MBEDTLS_DECLARE_PRIVATE_IDENTIFIERS */

 #ifdef __cplusplus
 }
diff --git a/deps/LIEF/third-party/mbedtls/include/mbedtls/config_adjust_legacy_from_psa.h b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/include/mbedtls/private/config_adjust_legacy_from_psa.h
similarity index 94%
rename from deps/LIEF/third-party/mbedtls/include/mbedtls/config_adjust_legacy_from_psa.h
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/include/mbedtls/private/config_adjust_legacy_from_psa.h
index 48f1bab1ede..5e1aae79c39 100644
--- a/deps/LIEF/third-party/mbedtls/include/mbedtls/config_adjust_legacy_from_psa.h
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/include/mbedtls/private/config_adjust_legacy_from_psa.h
@@ -4,11 +4,10 @@
  *
  * This is an internal header. Do not include it directly.
  *
- * When MBEDTLS_PSA_CRYPTO_CONFIG is enabled, activate legacy implementations
- * of cryptographic mechanisms as needed to fulfill the needs of the PSA
- * configuration. Generally speaking, we activate a legacy mechanism if
- * it's needed for a requested PSA mechanism and there is no PSA driver
- * for it.
+ * Activate legacy implementations of cryptographic mechanisms as needed to
+ * fulfill the needs of the PSA configuration. Generally speaking, we activate
+ * a legacy mechanism if it's needed for a requested PSA mechanism and there is
+ * no PSA driver for it.
  */
 /*
  *  Copyright The Mbed TLS Contributors
@@ -18,7 +17,7 @@
 #ifndef MBEDTLS_CONFIG_ADJUST_LEGACY_FROM_PSA_H
 #define MBEDTLS_CONFIG_ADJUST_LEGACY_FROM_PSA_H

-#if !defined(MBEDTLS_CONFIG_FILES_READ)
+#if !defined(TF_PSA_CRYPTO_CONFIG_FILES_READ)
 #error "Do not include mbedtls/config_adjust_*.h manually! This can lead to problems, " \
     "up to and including runtime errors such as buffer overflows. " \
     "If you're trying to fix a complaint from check_config.h, just remove " \
@@ -64,7 +63,6 @@
     (defined(PSA_WANT_ECC_BRAINPOOL_P_R1_512) && \
     !defined(MBEDTLS_PSA_ACCEL_ECC_BRAINPOOL_P_R1_512)) || \
     (defined(PSA_WANT_ECC_SECP_R1_192) && !defined(MBEDTLS_PSA_ACCEL_ECC_SECP_R1_192)) || \
-    (defined(PSA_WANT_ECC_SECP_R1_224) && !defined(MBEDTLS_PSA_ACCEL_ECC_SECP_R1_224)) || \
     (defined(PSA_WANT_ECC_SECP_R1_256) && !defined(MBEDTLS_PSA_ACCEL_ECC_SECP_R1_256)) || \
     (defined(PSA_WANT_ECC_SECP_R1_384) && !defined(MBEDTLS_PSA_ACCEL_ECC_SECP_R1_384)) || \
     (defined(PSA_WANT_ECC_SECP_R1_521) && !defined(MBEDTLS_PSA_ACCEL_ECC_SECP_R1_521)) || \
@@ -179,15 +177,6 @@
 #endif /* missing accel */
 #endif /* PSA_WANT_ECC_SECP_R1_192 */

-#if defined(PSA_WANT_ECC_SECP_R1_224)
-#if !defined(MBEDTLS_PSA_ACCEL_ECC_SECP_R1_224) || \
-    defined(MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_KEY_TYPES) || \
-    defined(MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_ALGS)
-#define MBEDTLS_PSA_BUILTIN_ECC_SECP_R1_224 1
-#define MBEDTLS_ECP_DP_SECP224R1_ENABLED
-#endif /* missing accel */
-#endif /* PSA_WANT_ECC_SECP_R1_224 */
-
 #if defined(PSA_WANT_ECC_SECP_R1_256)
 #if !defined(MBEDTLS_PSA_ACCEL_ECC_SECP_R1_256) || \
     defined(MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_KEY_TYPES) || \
@@ -492,30 +481,18 @@

 #if defined(PSA_WANT_ALG_HKDF)
 #if !defined(MBEDTLS_PSA_ACCEL_ALG_HKDF)
-/*
- * The PSA implementation has its own implementation of HKDF, separate from
- * hkdf.c. No need to enable MBEDTLS_HKDF_C here.
- */
 #define MBEDTLS_PSA_BUILTIN_ALG_HKDF 1
 #endif /* !MBEDTLS_PSA_ACCEL_ALG_HKDF */
 #endif /* PSA_WANT_ALG_HKDF */

 #if defined(PSA_WANT_ALG_HKDF_EXTRACT)
 #if !defined(MBEDTLS_PSA_ACCEL_ALG_HKDF_EXTRACT)
-/*
- * The PSA implementation has its own implementation of HKDF, separate from
- * hkdf.c. No need to enable MBEDTLS_HKDF_C here.
- */
 #define MBEDTLS_PSA_BUILTIN_ALG_HKDF_EXTRACT 1
 #endif /* !MBEDTLS_PSA_ACCEL_ALG_HKDF_EXTRACT */
 #endif /* PSA_WANT_ALG_HKDF_EXTRACT */

 #if defined(PSA_WANT_ALG_HKDF_EXPAND)
 #if !defined(MBEDTLS_PSA_ACCEL_ALG_HKDF_EXPAND)
-/*
- * The PSA implementation has its own implementation of HKDF, separate from
- * hkdf.c. No need to enable MBEDTLS_HKDF_C here.
- */
 #define MBEDTLS_PSA_BUILTIN_ALG_HKDF_EXPAND 1
 #endif /* !MBEDTLS_PSA_ACCEL_ALG_HKDF_EXPAND */
 #endif /* PSA_WANT_ALG_HKDF_EXPAND */
@@ -541,7 +518,6 @@
 #define MBEDTLS_PSA_BUILTIN_ALG_RSA_OAEP 1
 #define MBEDTLS_RSA_C
 #define MBEDTLS_BIGNUM_C
-#define MBEDTLS_OID_C
 #define MBEDTLS_PKCS1_V21
 #endif /* !MBEDTLS_PSA_ACCEL_ALG_RSA_OAEP */
 #endif /* PSA_WANT_ALG_RSA_OAEP */
@@ -551,7 +527,6 @@
 #define MBEDTLS_PSA_BUILTIN_ALG_RSA_PKCS1V15_CRYPT 1
 #define MBEDTLS_RSA_C
 #define MBEDTLS_BIGNUM_C
-#define MBEDTLS_OID_C
 #define MBEDTLS_PKCS1_V15
 #endif /* !MBEDTLS_PSA_ACCEL_ALG_RSA_PKCS1V15_CRYPT */
 #endif /* PSA_WANT_ALG_RSA_PKCS1V15_CRYPT */
@@ -561,7 +536,6 @@
 #define MBEDTLS_PSA_BUILTIN_ALG_RSA_PKCS1V15_SIGN 1
 #define MBEDTLS_RSA_C
 #define MBEDTLS_BIGNUM_C
-#define MBEDTLS_OID_C
 #define MBEDTLS_PKCS1_V15
 #endif /* !MBEDTLS_PSA_ACCEL_ALG_RSA_PKCS1V15_SIGN */
 #endif /* PSA_WANT_ALG_RSA_PKCS1V15_SIGN */
@@ -571,7 +545,6 @@
 #define MBEDTLS_PSA_BUILTIN_ALG_RSA_PSS 1
 #define MBEDTLS_RSA_C
 #define MBEDTLS_BIGNUM_C
-#define MBEDTLS_OID_C
 #define MBEDTLS_PKCS1_V21
 #endif /* !MBEDTLS_PSA_ACCEL_ALG_RSA_PSS */
 #endif /* PSA_WANT_ALG_RSA_PSS */
@@ -603,22 +576,18 @@

 #if defined(PSA_WANT_ALG_SHA3_224) && !defined(MBEDTLS_PSA_ACCEL_ALG_SHA3_224)
 #define MBEDTLS_PSA_BUILTIN_ALG_SHA3_224 1
-#define MBEDTLS_SHA3_C
 #endif

 #if defined(PSA_WANT_ALG_SHA3_256) && !defined(MBEDTLS_PSA_ACCEL_ALG_SHA3_256)
 #define MBEDTLS_PSA_BUILTIN_ALG_SHA3_256 1
-#define MBEDTLS_SHA3_C
 #endif

 #if defined(PSA_WANT_ALG_SHA3_384) && !defined(MBEDTLS_PSA_ACCEL_ALG_SHA3_384)
 #define MBEDTLS_PSA_BUILTIN_ALG_SHA3_384 1
-#define MBEDTLS_SHA3_C
 #endif

 #if defined(PSA_WANT_ALG_SHA3_512) && !defined(MBEDTLS_PSA_ACCEL_ALG_SHA3_512)
 #define MBEDTLS_PSA_BUILTIN_ALG_SHA3_512 1
-#define MBEDTLS_SHA3_C
 #endif

 #if defined(PSA_WANT_ALG_PBKDF2_HMAC)
@@ -676,7 +645,6 @@
 #define MBEDTLS_PSA_BUILTIN_KEY_TYPE_RSA_PUBLIC_KEY 1
 #define MBEDTLS_RSA_C
 #define MBEDTLS_BIGNUM_C
-#define MBEDTLS_OID_C
 #define MBEDTLS_ASN1_PARSE_C
 #define MBEDTLS_ASN1_WRITE_C
 #endif /* !MBEDTLS_PSA_ACCEL_KEY_TYPE_RSA_PUBLIC_KEY */
@@ -735,17 +703,6 @@
 #endif /* PSA_HAVE_SOFT_KEY_TYPE_CAMELLIA || PSA_HAVE_SOFT_BLOCK_MODE */
 #endif /* PSA_WANT_KEY_TYPE_CAMELLIA */

-#if defined(PSA_WANT_KEY_TYPE_DES)
-#if !defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_DES)
-#define PSA_HAVE_SOFT_KEY_TYPE_DES 1
-#endif /* !MBEDTLS_PSA_ACCEL_KEY_TYPE_DES */
-#if defined(PSA_HAVE_SOFT_KEY_TYPE_DES) || \
-    defined(PSA_HAVE_SOFT_BLOCK_MODE)
-#define MBEDTLS_PSA_BUILTIN_KEY_TYPE_DES 1
-#define MBEDTLS_DES_C
-#endif /*PSA_HAVE_SOFT_KEY_TYPE_DES || PSA_HAVE_SOFT_BLOCK_MODE */
-#endif /* PSA_WANT_KEY_TYPE_DES */
-
 #if defined(PSA_WANT_ALG_STREAM_CIPHER)
 #if !defined(MBEDTLS_PSA_ACCEL_ALG_STREAM_CIPHER)
 #define MBEDTLS_PSA_BUILTIN_ALG_STREAM_CIPHER 1
@@ -765,7 +722,6 @@
  * situations. */
 #if defined(PSA_HAVE_SOFT_KEY_TYPE_AES) || \
     defined(PSA_HAVE_SOFT_KEY_TYPE_ARIA) || \
-    defined(PSA_HAVE_SOFT_KEY_TYPE_DES) || \
     defined(PSA_HAVE_SOFT_KEY_TYPE_CAMELLIA)
 #define PSA_HAVE_SOFT_BLOCK_CIPHER 1
 #endif
@@ -807,6 +763,19 @@
 #endif
 #endif /* PSA_WANT_ALG_OFB */

+/* Placeholder for future support of XTS through the PSA API.
+ * For now, this appeases check_names.py by ensuring that
+ * MBEDTLS_CIPHER_MODE_XTS is defined somewhere, as it would
+ * otherwise not be defined in any headers.
+ */
+#if 0
+#if !defined(MBEDTLS_PSA_ACCEL_ALG_XTS) || \
+    defined(PSA_HAVE_SOFT_BLOCK_CIPHER)
+#define MBEDTLS_PSA_BUILTIN_ALG_XTS 1
+#define MBEDTLS_CIPHER_MODE_XTS
+#endif
+#endif
+
 #if defined(PSA_WANT_ALG_ECB_NO_PADDING) &&     \
     !defined(MBEDTLS_PSA_ACCEL_ALG_ECB_NO_PADDING)
 #define MBEDTLS_PSA_BUILTIN_ALG_ECB_NO_PADDING 1
diff --git a/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/include/mbedtls/private/config_adjust_test_accelerators.h b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/include/mbedtls/private/config_adjust_test_accelerators.h
new file mode 100644
index 00000000000..0933e7fce8d
--- /dev/null
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/include/mbedtls/private/config_adjust_test_accelerators.h
@@ -0,0 +1,119 @@
+/**
+ * \file mbedtls/config_adjust_test_accelerators.h
+ * \brief Declare the transparent test drivers as accelerators
+ *
+ * This is an internal header for test purposes only. Do not include it directly.
+ *
+ * The purpose of this header is to keep executing as long as necessary some
+ * driver-only related unit test cases when running the test_psa_crypto_drivers
+ * all.sh component (namely test cases in test_suite_block_cipher and
+ * test_suite_md.psa). It is expected that as the 4.x work progress these test
+ * cases will not be necessary anymore and:
+ * . test_psa_crypto_drivers scope is restricted to running the
+ *   test_suite_psa_crypto_driver_wrappers test suite: test of the dispatch to
+ *   drivers and fallbacks.
+ * . this file can be removed.
+ *
+ * This header is used as part of a build containing all the built-in drivers
+ * and all the transparent test drivers as wrappers around the built-in
+ * drivers. All the built-in drivers and the transparent test drivers are
+ * included in the build by starting from a full configuration (config.py full)
+ * and defining PSA_CRYPTO_DRIVER_TEST when building
+ * (make CFLAGS="-DPSA_CRYPTO_DRIVER_TEST ...").
+ *
+ * The purpose of this header is to declare the transparent test drivers as
+ * accelerators just after infering the built-in drivers
+ * (config_adjust_legacy_from_psa.h). Not before the inclusion
+ * of config_adjust_legacy_from_psa.h in the build_info.h sequence of header
+ * inclusions as this would remove the built-in drivers. Just after to set up
+ * properly the internal macros introduced as part of the driver only work
+ * (mainly if not only in config_adjust_legacy_crypto.h).
+ */
+/*
+ *  Copyright The Mbed TLS Contributors
+ *  SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+ */
+
+#ifndef MBEDTLS_CONFIG_ADJUST_TEST_ACCELERATORS_H
+#define MBEDTLS_CONFIG_ADJUST_TEST_ACCELERATORS_H
+
+#if !defined(TF_PSA_CRYPTO_CONFIG_FILES_READ)
+#error "Do not include mbedtls/config_adjust_*.h manually! This can lead to problems, " \
+    "up to and including runtime errors such as buffer overflows. " \
+    "If you're trying to fix a complaint from check_config.h, just remove " \
+    "it from your configuration file: since Mbed TLS 3.0, it is included " \
+    "automatically at the right point."
+#endif
+
+/* Declare the accelerator driver for all cryptographic mechanisms for which
+ * the test driver is implemented. This is copied from psa/crypto_config.h
+ * with the parts not implemented by the test driver commented out. */
+#define MBEDTLS_PSA_ACCEL_KEY_TYPE_DERIVE //no-check-names
+#define MBEDTLS_PSA_ACCEL_KEY_TYPE_PASSWORD //no-check-names
+#define MBEDTLS_PSA_ACCEL_KEY_TYPE_PASSWORD_HASH //no-check-names
+#define MBEDTLS_PSA_ACCEL_KEY_TYPE_HMAC //no-check-names
+#define MBEDTLS_PSA_ACCEL_KEY_TYPE_AES
+#define MBEDTLS_PSA_ACCEL_KEY_TYPE_ARIA
+#define MBEDTLS_PSA_ACCEL_KEY_TYPE_CAMELLIA
+#define MBEDTLS_PSA_ACCEL_KEY_TYPE_CHACHA20
+#define MBEDTLS_PSA_ACCEL_KEY_TYPE_ECC_PUBLIC_KEY
+#define MBEDTLS_PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_BASIC
+#define MBEDTLS_PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_IMPORT
+#define MBEDTLS_PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_EXPORT
+#define MBEDTLS_PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_GENERATE
+//#define MBEDTLS_PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_DERIVE
+#define MBEDTLS_PSA_ACCEL_KEY_TYPE_DH_PUBLIC_KEY
+#define MBEDTLS_PSA_ACCEL_KEY_TYPE_DH_KEY_PAIR_BASIC
+#define MBEDTLS_PSA_ACCEL_KEY_TYPE_DH_KEY_PAIR_IMPORT
+#define MBEDTLS_PSA_ACCEL_KEY_TYPE_DH_KEY_PAIR_EXPORT
+#define MBEDTLS_PSA_ACCEL_KEY_TYPE_DH_KEY_PAIR_GENERATE
+#define MBEDTLS_PSA_ACCEL_KEY_TYPE_RAW_DATA //no-check-names
+#define MBEDTLS_PSA_ACCEL_KEY_TYPE_RSA_KEY_PAIR_BASIC
+#define MBEDTLS_PSA_ACCEL_KEY_TYPE_RSA_KEY_PAIR_IMPORT
+#define MBEDTLS_PSA_ACCEL_KEY_TYPE_RSA_KEY_PAIR_EXPORT
+#define MBEDTLS_PSA_ACCEL_KEY_TYPE_RSA_KEY_PAIR_GENERATE
+#define MBEDTLS_PSA_ACCEL_KEY_TYPE_RSA_PUBLIC_KEY
+
+#define MBEDTLS_PSA_ACCEL_ALG_CBC_NO_PADDING
+#define MBEDTLS_PSA_ACCEL_ALG_CBC_PKCS7
+#define MBEDTLS_PSA_ACCEL_ALG_CCM
+#define MBEDTLS_PSA_ACCEL_ALG_CCM_STAR_NO_TAG
+#define MBEDTLS_PSA_ACCEL_ALG_CMAC
+#define MBEDTLS_PSA_ACCEL_ALG_CFB
+#define MBEDTLS_PSA_ACCEL_ALG_CHACHA20_POLY1305
+#define MBEDTLS_PSA_ACCEL_ALG_CTR
+#define MBEDTLS_PSA_ACCEL_ALG_DETERMINISTIC_ECDSA
+#define MBEDTLS_PSA_ACCEL_ALG_ECB_NO_PADDING
+#define MBEDTLS_PSA_ACCEL_ALG_ECDH
+#define MBEDTLS_PSA_ACCEL_ALG_FFDH
+#define MBEDTLS_PSA_ACCEL_ALG_ECDSA
+#define MBEDTLS_PSA_ACCEL_ALG_JPAKE
+#define MBEDTLS_PSA_ACCEL_ALG_GCM
+//#define MBEDTLS_PSA_ACCEL_ALG_HKDF
+//#define MBEDTLS_PSA_ACCEL_ALG_HKDF_EXTRACT
+//#define MBEDTLS_PSA_ACCEL_ALG_HKDF_EXPAND
+#define MBEDTLS_PSA_ACCEL_ALG_HMAC
+#define MBEDTLS_PSA_ACCEL_ALG_MD5
+#define MBEDTLS_PSA_ACCEL_ALG_OFB
+//#define MBEDTLS_PSA_ACCEL_ALG_PBKDF2_HMAC
+//#define MBEDTLS_PSA_ACCEL_ALG_PBKDF2_AES_CMAC_PRF_128
+#define MBEDTLS_PSA_ACCEL_ALG_RIPEMD160
+#define MBEDTLS_PSA_ACCEL_ALG_RSA_OAEP
+#define MBEDTLS_PSA_ACCEL_ALG_RSA_PKCS1V15_CRYPT
+#define MBEDTLS_PSA_ACCEL_ALG_RSA_PKCS1V15_SIGN
+#define MBEDTLS_PSA_ACCEL_ALG_RSA_PSS
+#define MBEDTLS_PSA_ACCEL_ALG_SHA_1
+#define MBEDTLS_PSA_ACCEL_ALG_SHA_224
+#define MBEDTLS_PSA_ACCEL_ALG_SHA_256
+#define MBEDTLS_PSA_ACCEL_ALG_SHA_384
+#define MBEDTLS_PSA_ACCEL_ALG_SHA_512
+#define MBEDTLS_PSA_ACCEL_ALG_SHA3_224
+#define MBEDTLS_PSA_ACCEL_ALG_SHA3_256
+#define MBEDTLS_PSA_ACCEL_ALG_SHA3_384
+#define MBEDTLS_PSA_ACCEL_ALG_SHA3_512
+#define MBEDTLS_PSA_ACCEL_ALG_STREAM_CIPHER
+//#define MBEDTLS_PSA_ACCEL_ALG_TLS12_PRF
+//#define MBEDTLS_PSA_ACCEL_ALG_TLS12_PSK_TO_MS
+//#define MBEDTLS_PSA_ACCEL_ALG_TLS12_ECJPAKE_TO_PMS
+
+#endif /* MBEDTLS_CONFIG_ADJUST_TEST_ACCELERATORS_H */
diff --git a/deps/LIEF/third-party/mbedtls/include/mbedtls/config_psa.h b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/include/mbedtls/private/config_psa.h
similarity index 66%
rename from deps/LIEF/third-party/mbedtls/include/mbedtls/config_psa.h
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/include/mbedtls/private/config_psa.h
index 5f3d0f3d5d7..4ea863780ae 100644
--- a/deps/LIEF/third-party/mbedtls/include/mbedtls/config_psa.h
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/include/mbedtls/private/config_psa.h
@@ -18,16 +18,10 @@
 #ifndef MBEDTLS_CONFIG_PSA_H
 #define MBEDTLS_CONFIG_PSA_H

-#include "psa/crypto_legacy.h"
-
 #include "psa/crypto_adjust_config_synonyms.h"

 #include "psa/crypto_adjust_config_dependencies.h"

-#include "mbedtls/config_adjust_psa_superset_legacy.h"
-
-#if defined(MBEDTLS_PSA_CRYPTO_CONFIG)
-
 /* Require built-in implementations based on PSA requirements */

 /* We need this to have a complete list of requirements
@@ -37,24 +31,13 @@
 #if defined(MBEDTLS_PSA_CRYPTO_C)
 /* If we are implementing PSA crypto ourselves, then we want to enable the
  * required built-ins. Otherwise, PSA features will be provided by the server. */
-#include "mbedtls/config_adjust_legacy_from_psa.h"
+#include "mbedtls/private/config_adjust_legacy_from_psa.h"
+#if defined(MBEDTLS_CONFIG_ADJUST_TEST_ACCELERATORS) //no-check-names
+#include "mbedtls/private/config_adjust_test_accelerators.h"
 #endif
+#endif /* MBEDTLS_PSA_CRYPTO_C */

-#else /* MBEDTLS_PSA_CRYPTO_CONFIG */
-
-/* Infer PSA requirements from Mbed TLS capabilities */
-
-#include "mbedtls/config_adjust_psa_from_legacy.h"
-
-/* Hopefully the file above will have enabled keypair symbols in a consistent
- * way, but including this here fixes them if that wasn't the case. */
-#include "psa/crypto_adjust_config_key_pair_types.h"
-
-#endif /* MBEDTLS_PSA_CRYPTO_CONFIG */
-
-#if defined(PSA_WANT_ALG_JPAKE)
-#define PSA_WANT_ALG_SOME_PAKE 1
-#endif
+#include "psa/crypto_adjust_config_derived.h"

 #include "psa/crypto_adjust_auto_enabled.h"

diff --git a/deps/LIEF/third-party/mbedtls/include/mbedtls/ctr_drbg.h b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/include/mbedtls/private/ctr_drbg.h
similarity index 89%
rename from deps/LIEF/third-party/mbedtls/include/mbedtls/ctr_drbg.h
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/include/mbedtls/private/ctr_drbg.h
index 0b7cce19234..328ba08c6a4 100644
--- a/deps/LIEF/third-party/mbedtls/include/mbedtls/ctr_drbg.h
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/include/mbedtls/private/ctr_drbg.h
@@ -10,16 +10,14 @@
  * Bit Generators</em>.
  *
  * The Mbed TLS implementation of CTR_DRBG uses AES-256 (default) or AES-128
- * (if \c MBEDTLS_CTR_DRBG_USE_128_BIT_KEY is enabled at compile time)
- * as the underlying block cipher, with a derivation function.
+ * (if #MBEDTLS_PSA_CRYPTO_RNG_STRENGTH is 128) as the underlying block cipher,
+ * with a derivation function.
  *
  * The security strength as defined in NIST SP 800-90A is
- * 128 bits when AES-128 is used (\c MBEDTLS_CTR_DRBG_USE_128_BIT_KEY enabled)
- * and 256 bits otherwise, provided that #MBEDTLS_CTR_DRBG_ENTROPY_LEN is
- * kept at its default value (and not overridden in mbedtls_config.h) and that the
- * DRBG instance is set up with default parameters.
- * See the documentation of mbedtls_ctr_drbg_seed() for more
- * information.
+ * 128 bits when AES-128 is used and 256 bits otherwise, provided that
+ * #MBEDTLS_CTR_DRBG_ENTROPY_LEN is kept at its default value and that the DRBG
+ * instance is set up with default parameters. See the documentation of
+ * mbedtls_ctr_drbg_seed() for more information.
  */
 /*
  *  Copyright The Mbed TLS Contributors
@@ -30,7 +28,7 @@
 #define MBEDTLS_CTR_DRBG_H
 #include "mbedtls/private_access.h"

-#include "mbedtls/build_info.h"
+#include "tf-psa-crypto/build_info.h"

 /* The CTR_DRBG implementation can either directly call the low-level AES
  * module (gated by MBEDTLS_AES_C) or call the PSA API to perform AES
@@ -52,10 +50,10 @@
 #if defined(MBEDTLS_CTR_DRBG_USE_PSA_CRYPTO)
 #include "psa/crypto.h"
 #else
-#include "mbedtls/aes.h"
+#include "mbedtls/private/aes.h"
 #endif

-#include "entropy.h"
+#include "mbedtls/private/entropy.h"

 #if defined(MBEDTLS_THREADING_C)
 #include "mbedtls/threading.h"
@@ -72,78 +70,40 @@

 #define MBEDTLS_CTR_DRBG_BLOCKSIZE          16 /**< The block size used by the cipher. */

-#if defined(MBEDTLS_CTR_DRBG_USE_128_BIT_KEY)
+#if MBEDTLS_PSA_CRYPTO_RNG_STRENGTH == 128
+#define MBEDTLS_CTR_DRBG_USE_128_BIT_KEY
 #define MBEDTLS_CTR_DRBG_KEYSIZE            16
 /**< The key size in bytes used by the cipher.
  *
  * Compile-time choice: 16 bytes (128 bits)
- * because #MBEDTLS_CTR_DRBG_USE_128_BIT_KEY is enabled.
+ * because #MBEDTLS_PSA_CRYPTO_RNG_STRENGTH is 128.
  */
 #else
 #define MBEDTLS_CTR_DRBG_KEYSIZE            32
 /**< The key size in bytes used by the cipher.
  *
  * Compile-time choice: 32 bytes (256 bits)
- * because \c MBEDTLS_CTR_DRBG_USE_128_BIT_KEY is disabled.
+ * because #MBEDTLS_PSA_CRYPTO_RNG_STRENGTH is NOT 128.
  */
 #endif

 #define MBEDTLS_CTR_DRBG_KEYBITS            (MBEDTLS_CTR_DRBG_KEYSIZE * 8)   /**< The key size for the DRBG operation, in bits. */
 #define MBEDTLS_CTR_DRBG_SEEDLEN            (MBEDTLS_CTR_DRBG_KEYSIZE + MBEDTLS_CTR_DRBG_BLOCKSIZE)   /**< The seed length, calculated as (counter + AES key). */

-/**
- * \name SECTION: Module settings
- *
- * The configuration options you can set for this module are in this section.
- * Either change them in mbedtls_config.h or define them using the compiler command
- * line.
- * \{
- */
-
-/** \def MBEDTLS_CTR_DRBG_ENTROPY_LEN
- *
- * \brief The amount of entropy used per seed by default, in bytes.
- */
-#if !defined(MBEDTLS_CTR_DRBG_ENTROPY_LEN)
-#if defined(MBEDTLS_ENTROPY_SHA512_ACCUMULATOR)
-/** This is 48 bytes because the entropy module uses SHA-512.
- */
-#define MBEDTLS_CTR_DRBG_ENTROPY_LEN        48
-
-#else /* MBEDTLS_ENTROPY_SHA512_ACCUMULATOR */
-
-/** This is 32 bytes because the entropy module uses SHA-256.
- */
-#if !defined(MBEDTLS_CTR_DRBG_USE_128_BIT_KEY)
-/** \warning To achieve a 256-bit security strength, you must pass a nonce
- *           to mbedtls_ctr_drbg_seed().
- */
-#endif /* !defined(MBEDTLS_CTR_DRBG_USE_128_BIT_KEY) */
 #define MBEDTLS_CTR_DRBG_ENTROPY_LEN        32
-#endif /* MBEDTLS_ENTROPY_SHA512_ACCUMULATOR */
-#endif /* !defined(MBEDTLS_CTR_DRBG_ENTROPY_LEN) */
+/**< The amount of entropy used per seed by default, in bytes. */

-#if !defined(MBEDTLS_CTR_DRBG_RESEED_INTERVAL)
-#define MBEDTLS_CTR_DRBG_RESEED_INTERVAL    10000
+#if !defined(MBEDTLS_PSA_RNG_RESEED_INTERVAL)
+#define MBEDTLS_PSA_RNG_RESEED_INTERVAL    10000
 /**< The interval before reseed is performed by default. */
 #endif

-#if !defined(MBEDTLS_CTR_DRBG_MAX_INPUT)
 #define MBEDTLS_CTR_DRBG_MAX_INPUT          256
 /**< The maximum number of additional input Bytes. */
-#endif
-
-#if !defined(MBEDTLS_CTR_DRBG_MAX_REQUEST)
 #define MBEDTLS_CTR_DRBG_MAX_REQUEST        1024
 /**< The maximum number of requested Bytes per call. */
-#endif
-
-#if !defined(MBEDTLS_CTR_DRBG_MAX_SEED_INPUT)
 #define MBEDTLS_CTR_DRBG_MAX_SEED_INPUT     384
 /**< The maximum size of seed or reseed buffer in bytes. */
-#endif
-
-/** \} name SECTION: Module settings */

 #define MBEDTLS_CTR_DRBG_PR_OFF             0
 /**< Prediction resistance is disabled. */
@@ -237,7 +197,7 @@ mbedtls_ctr_drbg_context;
  *                      or mbedtls_ctr_drbg_free().
  *
  * \note                The reseed interval is
- *                      #MBEDTLS_CTR_DRBG_RESEED_INTERVAL by default.
+ *                      #MBEDTLS_PSA_RNG_RESEED_INTERVAL by default.
  *                      You can override it by calling
  *                      mbedtls_ctr_drbg_set_reseed_interval().
  *
@@ -382,15 +342,13 @@ void mbedtls_ctr_drbg_set_prediction_resistance(mbedtls_ctr_drbg_context *ctx,
  *
  * \note                The security strength of CTR_DRBG is bounded by the
  *                      entropy length. Thus:
- *                      - When using AES-256
- *                        (\c MBEDTLS_CTR_DRBG_USE_128_BIT_KEY is disabled,
- *                        which is the default),
+ *                      - When using AES-256 (#MBEDTLS_PSA_CRYPTO_RNG_STRENGTH
+ *                        is 256, which is the default),
  *                        \p len must be at least 32 (in bytes)
  *                        to achieve a 256-bit strength.
- *                      - When using AES-128
- *                        (\c MBEDTLS_CTR_DRBG_USE_128_BIT_KEY is enabled)
- *                        \p len must be at least 16 (in bytes)
- *                        to achieve a 128-bit strength.
+ *                      - When using AES-128 (#MBEDTLS_PSA_CRYPTO_RNG_STRENGTH
+ *                        is 128) \p len must be at least 16 (in bytes) to
+ *                        achieve a 128-bit strength.
  *
  * \param ctx           The CTR_DRBG context.
  * \param len           The amount of entropy to grab, in bytes.
@@ -430,7 +388,7 @@ int mbedtls_ctr_drbg_set_nonce_len(mbedtls_ctr_drbg_context *ctx,
  * or mbedtls_ctr_drbg_random_with_add() after which the entropy function
  * is called again.
  *
- * The default value is #MBEDTLS_CTR_DRBG_RESEED_INTERVAL.
+ * The default value is #MBEDTLS_PSA_RNG_RESEED_INTERVAL.
  *
  * \param ctx           The CTR_DRBG context.
  * \param interval      The reseed interval.
diff --git a/deps/LIEF/third-party/mbedtls/include/mbedtls/ecdh.h b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/include/mbedtls/private/ecdh.h
similarity index 86%
rename from deps/LIEF/third-party/mbedtls/include/mbedtls/ecdh.h
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/include/mbedtls/private/ecdh.h
index a919ad27e6d..8c544df18f4 100644
--- a/deps/LIEF/third-party/mbedtls/include/mbedtls/ecdh.h
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/include/mbedtls/private/ecdh.h
@@ -21,9 +21,9 @@
 #define MBEDTLS_ECDH_H
 #include "mbedtls/private_access.h"

-#include "mbedtls/build_info.h"
+#include "tf-psa-crypto/build_info.h"

-#include "mbedtls/ecp.h"
+#include "mbedtls/private/ecp.h"

 /*
  * Mbed TLS supports two formats for ECDH contexts (#mbedtls_ecdh_context
@@ -46,13 +46,15 @@

 #if defined(MBEDTLS_ECDH_VARIANT_EVEREST_ENABLED)
 #undef MBEDTLS_ECDH_LEGACY_CONTEXT
-#include "everest/everest.h"
+#include "tf-psa-crypto/private/everest/x25519.h"
+#include "tf-psa-crypto/private/everest/everest.h"
 #endif

 #ifdef __cplusplus
 extern "C" {
 #endif

+#if defined(MBEDTLS_DECLARE_PRIVATE_IDENTIFIERS)
 /**
  * Defines the source of the imported EC key.
  */
@@ -60,6 +62,7 @@ typedef enum {
     MBEDTLS_ECDH_OURS,   /**< Our key. */
     MBEDTLS_ECDH_THEIRS, /**< The key of the peer. */
 } mbedtls_ecdh_side;
+#endif /* MBEDTLS_DECLARE_PRIVATE_IDENTIFIERS */

 #if !defined(MBEDTLS_ECDH_LEGACY_CONTEXT)
 /**
@@ -95,6 +98,17 @@ typedef struct mbedtls_ecdh_context_mbed {
 } mbedtls_ecdh_context_mbed;
 #endif

+#if defined(MBEDTLS_ECP_RESTARTABLE)
+#define MBEDTLS_ECDH_CONTEXT_MBED_INIT { MBEDTLS_ECP_GROUP_INIT, MBEDTLS_MPI_INIT, \
+                                         MBEDTLS_ECP_POINT_INIT, \
+                                         MBEDTLS_ECP_POINT_INIT, MBEDTLS_MPI_INIT, \
+                                         MBEDTLS_ECP_RESTART_INIT }
+#else
+#define MBEDTLS_ECDH_CONTEXT_MBED_INIT { MBEDTLS_ECP_GROUP_INIT, MBEDTLS_MPI_INIT, \
+                                         MBEDTLS_ECP_POINT_INIT, \
+                                         MBEDTLS_ECP_POINT_INIT, MBEDTLS_MPI_INIT }
+#endif
+
 /**
  *
  * \warning         Performing multiple operations concurrently on the same
@@ -141,6 +155,36 @@ typedef struct mbedtls_ecdh_context {
 }
 mbedtls_ecdh_context;

+#if defined(MBEDTLS_ECDH_LEGACY_CONTEXT)
+#if defined(MBEDTLS_ECP_RESTARTABLE)
+#define MBEDTLS_ECDH_CONTEXT_INIT { MBEDTLS_ECP_GROUP_INIT, MBEDTLS_MPI_INIT, \
+                                    MBEDTLS_ECP_POINT_INIT, \
+                                    MBEDTLS_ECP_POINT_INIT, MBEDTLS_MPI_INIT, \
+                                    MBEDTLS_ECP_PF_UNCOMPRESSED, \
+                                    MBEDTLS_ECP_POINT_INIT, MBEDTLS_ECP_POINT_INIT, \
+                                    MBEDTLS_MPI_INIT, 0, \
+                                    MBEDTLS_ECP_RESTART_INIT }
+#else
+#define MBEDTLS_ECDH_CONTEXT_INIT { MBEDTLS_ECP_GROUP_INIT, MBEDTLS_MPI_INIT, \
+                                    MBEDTLS_ECP_POINT_INIT, \
+                                    MBEDTLS_ECP_POINT_INIT, MBEDTLS_MPI_INIT, \
+                                    MBEDTLS_ECP_PF_UNCOMPRESSED, \
+                                    MBEDTLS_ECP_POINT_INIT, MBEDTLS_ECP_POINT_INIT, \
+                                    MBEDTLS_MPI_INIT }
+#endif /* MBEDTLS_ECP_RESTARTABLE */
+#else
+#if defined(MBEDTLS_ECP_RESTARTABLE)
+#define MBEDTLS_ECDH_CONTEXT_INIT { MBEDTLS_ECP_PF_UNCOMPRESSED, MBEDTLS_ECP_DP_NONE, \
+                                    MBEDTLS_ECDH_VARIANT_NONE, \
+                                    { MBEDTLS_ECDH_CONTEXT_MBED_INIT }, 0 }
+#else
+#define MBEDTLS_ECDH_CONTEXT_INIT { MBEDTLS_ECP_PF_UNCOMPRESSED, MBEDTLS_ECP_DP_NONE, \
+                                    MBEDTLS_ECDH_VARIANT_NONE, \
+                                    { MBEDTLS_ECDH_CONTEXT_MBED_INIT } }
+#endif /* MBEDTLS_ECP_RESTARTABLE */
+#endif /* MBEDTLS_ECDH_LEGACY_CONTEXT */
+
+#if defined(MBEDTLS_DECLARE_PRIVATE_IDENTIFIERS)
 /**
  * \brief          Return the ECP group for provided context.
  *
@@ -189,7 +233,7 @@ int mbedtls_ecdh_can_do(mbedtls_ecp_group_id gid);
  *                  \c MBEDTLS_MPI_XXX error code on failure.
  */
 int mbedtls_ecdh_gen_public(mbedtls_ecp_group *grp, mbedtls_mpi *d, mbedtls_ecp_point *Q,
-                            mbedtls_f_rng_t *f_rng,
+                            int (*f_rng)(void *, unsigned char *, size_t),
                             void *p_rng);

 /**
@@ -225,7 +269,7 @@ int mbedtls_ecdh_gen_public(mbedtls_ecp_group *grp, mbedtls_mpi *d, mbedtls_ecp_
  */
 int mbedtls_ecdh_compute_shared(mbedtls_ecp_group *grp, mbedtls_mpi *z,
                                 const mbedtls_ecp_point *Q, const mbedtls_mpi *d,
-                                mbedtls_f_rng_t *f_rng,
+                                int (*f_rng)(void *, unsigned char *, size_t),
                                 void *p_rng);

 /**
@@ -290,7 +334,7 @@ void mbedtls_ecdh_free(mbedtls_ecdh_context *ctx);
  */
 int mbedtls_ecdh_make_params(mbedtls_ecdh_context *ctx, size_t *olen,
                              unsigned char *buf, size_t blen,
-                             mbedtls_f_rng_t *f_rng,
+                             int (*f_rng)(void *, unsigned char *, size_t),
                              void *p_rng);

 /**
@@ -372,7 +416,7 @@ int mbedtls_ecdh_get_params(mbedtls_ecdh_context *ctx,
  */
 int mbedtls_ecdh_make_public(mbedtls_ecdh_context *ctx, size_t *olen,
                              unsigned char *buf, size_t blen,
-                             mbedtls_f_rng_t *f_rng,
+                             int (*f_rng)(void *, unsigned char *, size_t),
                              void *p_rng);

 /**
@@ -428,7 +472,7 @@ int mbedtls_ecdh_read_public(mbedtls_ecdh_context *ctx,
  */
 int mbedtls_ecdh_calc_secret(mbedtls_ecdh_context *ctx, size_t *olen,
                              unsigned char *buf, size_t blen,
-                             mbedtls_f_rng_t *f_rng,
+                             int (*f_rng)(void *, unsigned char *, size_t),
                              void *p_rng);

 #if defined(MBEDTLS_ECP_RESTARTABLE)
@@ -447,6 +491,8 @@ int mbedtls_ecdh_calc_secret(mbedtls_ecdh_context *ctx, size_t *olen,
 void mbedtls_ecdh_enable_restart(mbedtls_ecdh_context *ctx);
 #endif /* MBEDTLS_ECP_RESTARTABLE */

+#endif /* MBEDTLS_DECLARE_PRIVATE_IDENTIFIERS */
+
 #ifdef __cplusplus
 }
 #endif
diff --git a/deps/LIEF/third-party/mbedtls/include/mbedtls/ecdsa.h b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/include/mbedtls/private/ecdsa.h
similarity index 95%
rename from deps/LIEF/third-party/mbedtls/include/mbedtls/ecdsa.h
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/include/mbedtls/private/ecdsa.h
index c1616615f7b..8d846c14618 100644
--- a/deps/LIEF/third-party/mbedtls/include/mbedtls/ecdsa.h
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/include/mbedtls/private/ecdsa.h
@@ -19,11 +19,12 @@
 #define MBEDTLS_ECDSA_H
 #include "mbedtls/private_access.h"

-#include "mbedtls/build_info.h"
+#include "tf-psa-crypto/build_info.h"

-#include "mbedtls/ecp.h"
+#include "mbedtls/private/ecp.h"
 #include "mbedtls/md.h"

+#if defined(MBEDTLS_DECLARE_PRIVATE_IDENTIFIERS)
 /**
  * \brief           Maximum ECDSA signature size for a given curve bit size
  *
@@ -48,6 +49,7 @@

 /** The maximal size of an ECDSA signature in Bytes. */
 #define MBEDTLS_ECDSA_MAX_LEN  MBEDTLS_ECDSA_MAX_SIG_LEN(MBEDTLS_ECP_MAX_BITS)
+#endif /* MBEDTLS_DECLARE_PRIVATE_IDENTIFIERS */

 #ifdef __cplusplus
 extern "C" {
@@ -112,6 +114,7 @@ typedef void mbedtls_ecdsa_restart_ctx;

 #endif /* MBEDTLS_ECP_RESTARTABLE */

+#if defined(MBEDTLS_DECLARE_PRIVATE_IDENTIFIERS)
 /**
  * \brief          This function checks whether a given group can be used
  *                 for ECDSA.
@@ -150,8 +153,7 @@ int mbedtls_ecdsa_can_do(mbedtls_ecp_group_id gid);
  *                  buffer of length \p blen Bytes. It may be \c NULL if
  *                  \p blen is zero.
  * \param blen      The length of \p buf in Bytes.
- * \param f_rng     The RNG function, used both to generate the ECDSA nonce
- *                  and for blinding. This must not be \c NULL.
+ * \param f_rng     The RNG function. This must not be \c NULL.
  * \param p_rng     The RNG context to be passed to \p f_rng. This may be
  *                  \c NULL if \p f_rng doesn't need a context parameter.
  *
@@ -161,7 +163,7 @@ int mbedtls_ecdsa_can_do(mbedtls_ecp_group_id gid);
  */
 int mbedtls_ecdsa_sign(mbedtls_ecp_group *grp, mbedtls_mpi *r, mbedtls_mpi *s,
                        const mbedtls_mpi *d, const unsigned char *buf, size_t blen,
-                       mbedtls_f_rng_t *f_rng, void *p_rng);
+                       int (*f_rng)(void *, unsigned char *, size_t), void *p_rng);

 #if defined(MBEDTLS_ECDSA_DETERMINISTIC)
 /**
@@ -208,11 +210,10 @@ int mbedtls_ecdsa_sign_det_ext(mbedtls_ecp_group *grp, mbedtls_mpi *r,
                                mbedtls_mpi *s, const mbedtls_mpi *d,
                                const unsigned char *buf, size_t blen,
                                mbedtls_md_type_t md_alg,
-                               mbedtls_f_rng_t *f_rng_blind,
+                               int (*f_rng_blind)(void *, unsigned char *, size_t),
                                void *p_rng_blind);
 #endif /* MBEDTLS_ECDSA_DETERMINISTIC */

-#if !defined(MBEDTLS_ECDSA_SIGN_ALT)
 /**
  * \brief               This function computes the ECDSA signature of a
  *                      previously-hashed message, in a restartable way.
@@ -248,8 +249,7 @@ int mbedtls_ecdsa_sign_det_ext(mbedtls_ecp_group *grp, mbedtls_mpi *r,
  *                      buffer of length \p blen Bytes. It may be \c NULL if
  *                      \p blen is zero.
  * \param blen          The length of \p buf in Bytes.
- * \param f_rng         The RNG function used to generate the ECDSA nonce.
- *                      This must not be \c NULL.
+ * \param f_rng         The RNG function. This must not be \c NULL.
  * \param p_rng         The RNG context to be passed to \p f_rng. This may be
  *                      \c NULL if \p f_rng doesn't need a context parameter.
  * \param f_rng_blind   The RNG function used for blinding. This must not be
@@ -273,14 +273,12 @@ int mbedtls_ecdsa_sign_restartable(
     mbedtls_mpi *r, mbedtls_mpi *s,
     const mbedtls_mpi *d,
     const unsigned char *buf, size_t blen,
-    mbedtls_f_rng_t *f_rng,
+    int (*f_rng)(void *, unsigned char *, size_t),
     void *p_rng,
-    mbedtls_f_rng_t *f_rng_blind,
+    int (*f_rng_blind)(void *, unsigned char *, size_t),
     void *p_rng_blind,
     mbedtls_ecdsa_restart_ctx *rs_ctx);

-#endif /* !MBEDTLS_ECDSA_SIGN_ALT */
-
 #if defined(MBEDTLS_ECDSA_DETERMINISTIC)

 /**
@@ -336,7 +334,7 @@ int mbedtls_ecdsa_sign_det_restartable(
     mbedtls_mpi *r, mbedtls_mpi *s,
     const mbedtls_mpi *d, const unsigned char *buf, size_t blen,
     mbedtls_md_type_t md_alg,
-    mbedtls_f_rng_t *f_rng_blind,
+    int (*f_rng_blind)(void *, unsigned char *, size_t),
     void *p_rng_blind,
     mbedtls_ecdsa_restart_ctx *rs_ctx);

@@ -377,7 +375,6 @@ int mbedtls_ecdsa_verify(mbedtls_ecp_group *grp,
                          const mbedtls_ecp_point *Q, const mbedtls_mpi *r,
                          const mbedtls_mpi *s);

-#if !defined(MBEDTLS_ECDSA_VERIFY_ALT)
 /**
  * \brief           This function verifies the ECDSA signature of a
  *                  previously-hashed message, in a restartable manner
@@ -420,8 +417,6 @@ int mbedtls_ecdsa_verify_restartable(mbedtls_ecp_group *grp,
                                      const mbedtls_mpi *s,
                                      mbedtls_ecdsa_restart_ctx *rs_ctx);

-#endif /* !MBEDTLS_ECDSA_VERIFY_ALT */
-
 /**
  * \brief           This function computes the ECDSA signature and writes it
  *                  to a buffer, serialized as defined in <em>RFC-4492:
@@ -460,10 +455,10 @@ int mbedtls_ecdsa_verify_restartable(mbedtls_ecp_group *grp,
  * \param sig_size  The size of the \p sig buffer in bytes.
  * \param slen      The address at which to store the actual length of
  *                  the signature written. Must not be \c NULL.
- * \param f_rng     The RNG function. This is used for blinding.
- *                  If #MBEDTLS_ECDSA_DETERMINISTIC is unset, this is also
- *                  used to generate the ECDSA nonce.
- *                  This must not be \c NULL.
+ * \param f_rng     The RNG function. This must not be \c NULL if
+ *                  #MBEDTLS_ECDSA_DETERMINISTIC is unset. Otherwise,
+ *                  it is used only for blinding and may be set to \c NULL, but
+ *                  doing so is DEPRECATED.
  * \param p_rng     The RNG context to be passed to \p f_rng. This may be
  *                  \c NULL if \p f_rng is \c NULL or doesn't use a context.
  *
@@ -475,7 +470,7 @@ int mbedtls_ecdsa_write_signature(mbedtls_ecdsa_context *ctx,
                                   mbedtls_md_type_t md_alg,
                                   const unsigned char *hash, size_t hlen,
                                   unsigned char *sig, size_t sig_size, size_t *slen,
-                                  mbedtls_f_rng_t *f_rng,
+                                  int (*f_rng)(void *, unsigned char *, size_t),
                                   void *p_rng);

 /**
@@ -503,10 +498,9 @@ int mbedtls_ecdsa_write_signature(mbedtls_ecdsa_context *ctx,
  * \param sig_size  The size of the \p sig buffer in bytes.
  * \param slen      The address at which to store the actual length of
  *                  the signature written. Must not be \c NULL.
- * \param f_rng     The RNG function. This is used for blinding.
- *                  If #MBEDTLS_ECDSA_DETERMINISTIC is unset, this is also
- *                  used to generate the ECDSA nonce.
- *                  This must not be \c NULL.
+ * \param f_rng     The RNG function. This must not be \c NULL if
+ *                  #MBEDTLS_ECDSA_DETERMINISTIC is unset. Otherwise,
+ *                  it is unused and may be set to \c NULL.
  * \param p_rng     The RNG context to be passed to \p f_rng. This may be
  *                  \c NULL if \p f_rng is \c NULL or doesn't use a context.
  * \param rs_ctx    The restart context to use. This may be \c NULL to disable
@@ -523,7 +517,7 @@ int mbedtls_ecdsa_write_signature_restartable(mbedtls_ecdsa_context *ctx,
                                               mbedtls_md_type_t md_alg,
                                               const unsigned char *hash, size_t hlen,
                                               unsigned char *sig, size_t sig_size, size_t *slen,
-                                              mbedtls_f_rng_t *f_rng,
+                                              int (*f_rng)(void *, unsigned char *, size_t),
                                               void *p_rng,
                                               mbedtls_ecdsa_restart_ctx *rs_ctx);

@@ -549,7 +543,7 @@ int mbedtls_ecdsa_write_signature_restartable(mbedtls_ecdsa_context *ctx,
  *
  * \return          \c 0 on success.
  * \return          #MBEDTLS_ERR_ECP_BAD_INPUT_DATA if signature is invalid.
- * \return          #MBEDTLS_ERR_ECP_SIG_LEN_MISMATCH if there is a valid
+ * \return          #MBEDTLS_ERR_ECP_VERIFY_FAILED if there is a valid
  *                  signature in \p sig, but its length is less than \p siglen.
  * \return          An \c MBEDTLS_ERR_ECP_XXX or \c MBEDTLS_ERR_MPI_XXX
  *                  error code on failure for any other reason.
@@ -582,7 +576,7 @@ int mbedtls_ecdsa_read_signature(mbedtls_ecdsa_context *ctx,
  *
  * \return          \c 0 on success.
  * \return          #MBEDTLS_ERR_ECP_BAD_INPUT_DATA if signature is invalid.
- * \return          #MBEDTLS_ERR_ECP_SIG_LEN_MISMATCH if there is a valid
+ * \return          #MBEDTLS_ERR_ECP_VERIFY_FAILED if there is a valid
  *                  signature in \p sig, but its length is less than \p siglen.
  * \return          #MBEDTLS_ERR_ECP_IN_PROGRESS if maximum number of
  *                  operations was reached: see \c mbedtls_ecp_set_max_ops().
@@ -611,7 +605,7 @@ int mbedtls_ecdsa_read_signature_restartable(mbedtls_ecdsa_context *ctx,
  * \return         An \c MBEDTLS_ERR_ECP_XXX code on failure.
  */
 int mbedtls_ecdsa_genkey(mbedtls_ecdsa_context *ctx, mbedtls_ecp_group_id gid,
-                         mbedtls_f_rng_t *f_rng, void *p_rng);
+                         int (*f_rng)(void *, unsigned char *, size_t), void *p_rng);

 /**
  * \brief           This function sets up an ECDSA context from an EC key pair.
@@ -667,6 +661,8 @@ void mbedtls_ecdsa_restart_init(mbedtls_ecdsa_restart_ctx *ctx);
 void mbedtls_ecdsa_restart_free(mbedtls_ecdsa_restart_ctx *ctx);
 #endif /* MBEDTLS_ECP_RESTARTABLE */

+#endif /* MBEDTLS_DECLARE_PRIVATE_IDENTIFIERS */
+
 #ifdef __cplusplus
 }
 #endif
diff --git a/deps/LIEF/third-party/mbedtls/include/mbedtls/ecjpake.h b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/include/mbedtls/private/ecjpake.h
similarity index 96%
rename from deps/LIEF/third-party/mbedtls/include/mbedtls/ecjpake.h
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/include/mbedtls/private/ecjpake.h
index 7da8cb4e5b9..92cddeb74d0 100644
--- a/deps/LIEF/third-party/mbedtls/include/mbedtls/ecjpake.h
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/include/mbedtls/private/ecjpake.h
@@ -27,9 +27,9 @@
  * The payloads are serialized in a way suitable for use in TLS, but could
  * also be use outside TLS.
  */
-#include "mbedtls/build_info.h"
+#include "tf-psa-crypto/build_info.h"

-#include "mbedtls/ecp.h"
+#include "mbedtls/private/ecp.h"
 #include "mbedtls/md.h"

 #ifdef __cplusplus
@@ -45,7 +45,6 @@ typedef enum {
     MBEDTLS_ECJPAKE_NONE,               /**< Undefined                      */
 } mbedtls_ecjpake_role;

-#if !defined(MBEDTLS_ECJPAKE_ALT)
 /**
  * EC J-PAKE context structure.
  *
@@ -75,10 +74,7 @@ typedef struct mbedtls_ecjpake_context {
     mbedtls_mpi MBEDTLS_PRIVATE(s);                      /**< Pre-shared secret (passphrase) */
 } mbedtls_ecjpake_context;

-#else  /* MBEDTLS_ECJPAKE_ALT */
-#include "ecjpake_alt.h"
-#endif /* MBEDTLS_ECJPAKE_ALT */
-
+#if defined(MBEDTLS_DECLARE_PRIVATE_IDENTIFIERS)
 /**
  * \brief           Initialize an ECJPAKE context.
  *
@@ -162,7 +158,7 @@ int mbedtls_ecjpake_check(const mbedtls_ecjpake_context *ctx);
  */
 int mbedtls_ecjpake_write_round_one(mbedtls_ecjpake_context *ctx,
                                     unsigned char *buf, size_t len, size_t *olen,
-                                    mbedtls_f_rng_t *f_rng,
+                                    int (*f_rng)(void *, unsigned char *, size_t),
                                     void *p_rng);

 /**
@@ -203,7 +199,7 @@ int mbedtls_ecjpake_read_round_one(mbedtls_ecjpake_context *ctx,
  */
 int mbedtls_ecjpake_write_round_two(mbedtls_ecjpake_context *ctx,
                                     unsigned char *buf, size_t len, size_t *olen,
-                                    mbedtls_f_rng_t *f_rng,
+                                    int (*f_rng)(void *, unsigned char *, size_t),
                                     void *p_rng);

 /**
@@ -243,7 +239,7 @@ int mbedtls_ecjpake_read_round_two(mbedtls_ecjpake_context *ctx,
  */
 int mbedtls_ecjpake_derive_secret(mbedtls_ecjpake_context *ctx,
                                   unsigned char *buf, size_t len, size_t *olen,
-                                  mbedtls_f_rng_t *f_rng,
+                                  int (*f_rng)(void *, unsigned char *, size_t),
                                   void *p_rng);

 /**
@@ -266,7 +262,7 @@ int mbedtls_ecjpake_derive_secret(mbedtls_ecjpake_context *ctx,
  */
 int mbedtls_ecjpake_write_shared_key(mbedtls_ecjpake_context *ctx,
                                      unsigned char *buf, size_t len, size_t *olen,
-                                     mbedtls_f_rng_t *f_rng,
+                                     int (*f_rng)(void *, unsigned char *, size_t),
                                      void *p_rng);

 /**
@@ -290,6 +286,8 @@ int mbedtls_ecjpake_self_test(int verbose);

 #endif /* MBEDTLS_SELF_TEST */

+#endif /* MBEDTLS_DECLARE_PRIVATE_IDENTIFIERS */
+
 #ifdef __cplusplus
 }
 #endif
diff --git a/deps/LIEF/third-party/mbedtls/include/mbedtls/ecp.h b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/include/mbedtls/private/ecp.h
similarity index 96%
rename from deps/LIEF/third-party/mbedtls/include/mbedtls/ecp.h
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/include/mbedtls/private/ecp.h
index 5cc0271432a..1b601673523 100644
--- a/deps/LIEF/third-party/mbedtls/include/mbedtls/ecp.h
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/include/mbedtls/private/ecp.h
@@ -23,37 +23,35 @@
 #define MBEDTLS_ECP_H
 #include "mbedtls/private_access.h"

-#include "mbedtls/build_info.h"
+#include "tf-psa-crypto/build_info.h"
 #include "mbedtls/platform_util.h"

-#include "mbedtls/bignum.h"
+#include "mbedtls/private/bignum.h"

 /*
  * ECP error codes
  */
 /** Bad input parameters to function. */
-#define MBEDTLS_ERR_ECP_BAD_INPUT_DATA                    -0x4F80
+#define MBEDTLS_ERR_ECP_BAD_INPUT_DATA                    PSA_ERROR_INVALID_ARGUMENT
 /** The buffer is too small to write to. */
-#define MBEDTLS_ERR_ECP_BUFFER_TOO_SMALL                  -0x4F00
+#define MBEDTLS_ERR_ECP_BUFFER_TOO_SMALL                  PSA_ERROR_BUFFER_TOO_SMALL
 /** The requested feature is not available, for example, the requested curve is not supported. */
 #define MBEDTLS_ERR_ECP_FEATURE_UNAVAILABLE               -0x4E80
 /** The signature is not valid. */
-#define MBEDTLS_ERR_ECP_VERIFY_FAILED                     -0x4E00
+#define MBEDTLS_ERR_ECP_VERIFY_FAILED                     PSA_ERROR_INVALID_SIGNATURE
 /** Memory allocation failed. */
-#define MBEDTLS_ERR_ECP_ALLOC_FAILED                      -0x4D80
+#define MBEDTLS_ERR_ECP_ALLOC_FAILED                      PSA_ERROR_INSUFFICIENT_MEMORY
 /** Generation of random value, such as ephemeral key, failed. */
 #define MBEDTLS_ERR_ECP_RANDOM_FAILED                     -0x4D00
 /** Invalid private or public key. */
 #define MBEDTLS_ERR_ECP_INVALID_KEY                       -0x4C80
-/** The buffer contains a valid signature followed by more data. */
-#define MBEDTLS_ERR_ECP_SIG_LEN_MISMATCH                  -0x4C00
 /** Operation in progress, call again with the same parameters to continue. */
-#define MBEDTLS_ERR_ECP_IN_PROGRESS                       -0x4B00
+#define MBEDTLS_ERR_ECP_IN_PROGRESS                       PSA_OPERATION_INCOMPLETE

+#if defined(MBEDTLS_DECLARE_PRIVATE_IDENTIFIERS)
 /* Flags indicating whether to include code that is specific to certain
  * types of curves. These flags are for internal library use only. */
 #if defined(MBEDTLS_ECP_DP_SECP192R1_ENABLED) || \
-    defined(MBEDTLS_ECP_DP_SECP224R1_ENABLED) || \
     defined(MBEDTLS_ECP_DP_SECP256R1_ENABLED) || \
     defined(MBEDTLS_ECP_DP_SECP384R1_ENABLED) || \
     defined(MBEDTLS_ECP_DP_SECP521R1_ENABLED) || \
@@ -61,14 +59,14 @@
     defined(MBEDTLS_ECP_DP_BP384R1_ENABLED) || \
     defined(MBEDTLS_ECP_DP_BP512R1_ENABLED) || \
     defined(MBEDTLS_ECP_DP_SECP192K1_ENABLED) || \
-    defined(MBEDTLS_ECP_DP_SECP224K1_ENABLED) || \
     defined(MBEDTLS_ECP_DP_SECP256K1_ENABLED)
 #define MBEDTLS_ECP_SHORT_WEIERSTRASS_ENABLED
 #endif
 #if defined(MBEDTLS_ECP_DP_CURVE25519_ENABLED) || \
     defined(MBEDTLS_ECP_DP_CURVE448_ENABLED)
 #define MBEDTLS_ECP_MONTGOMERY_ENABLED
-#endif
+#endif /* MBEDTLS_ECP_DP_CURVE25519_ENABLED OR MBEDTLS_ECP_DP_CURVE448_ENABLED */
+#endif /* MBEDTLS_DECLARE_PRIVATE_IDENTIFIERS */

 #ifdef __cplusplus
 extern "C" {
@@ -102,7 +100,6 @@ extern "C" {
 typedef enum {
     MBEDTLS_ECP_DP_NONE = 0,       /*!< Curve not defined. */
     MBEDTLS_ECP_DP_SECP192R1,      /*!< Domain parameters for the 192-bit curve defined by FIPS 186-4 and SEC1. */
-    MBEDTLS_ECP_DP_SECP224R1,      /*!< Domain parameters for the 224-bit curve defined by FIPS 186-4 and SEC1. */
     MBEDTLS_ECP_DP_SECP256R1,      /*!< Domain parameters for the 256-bit curve defined by FIPS 186-4 and SEC1. */
     MBEDTLS_ECP_DP_SECP384R1,      /*!< Domain parameters for the 384-bit curve defined by FIPS 186-4 and SEC1. */
     MBEDTLS_ECP_DP_SECP521R1,      /*!< Domain parameters for the 521-bit curve defined by FIPS 186-4 and SEC1. */
@@ -111,11 +108,11 @@ typedef enum {
     MBEDTLS_ECP_DP_BP512R1,        /*!< Domain parameters for 512-bit Brainpool curve. */
     MBEDTLS_ECP_DP_CURVE25519,     /*!< Domain parameters for Curve25519. */
     MBEDTLS_ECP_DP_SECP192K1,      /*!< Domain parameters for 192-bit "Koblitz" curve. */
-    MBEDTLS_ECP_DP_SECP224K1,      /*!< Domain parameters for 224-bit "Koblitz" curve. */
     MBEDTLS_ECP_DP_SECP256K1,      /*!< Domain parameters for 256-bit "Koblitz" curve. */
     MBEDTLS_ECP_DP_CURVE448,       /*!< Domain parameters for Curve448. */
 } mbedtls_ecp_group_id;

+#if defined(MBEDTLS_DECLARE_PRIVATE_IDENTIFIERS)
 /**
  * The number of supported curves, plus one for #MBEDTLS_ECP_DP_NONE.
  */
@@ -143,6 +140,7 @@ typedef struct mbedtls_ecp_curve_info {
     uint16_t bit_size;              /*!< The curve size in bits. */
     const char *name;               /*!< A human-friendly name. */
 } mbedtls_ecp_curve_info;
+#endif /* MBEDTLS_DECLARE_PRIVATE_IDENTIFIERS */

 /**
  * \brief           The ECP point structure, in Jacobian coordinates.
@@ -162,14 +160,7 @@ typedef struct mbedtls_ecp_point {
 }
 mbedtls_ecp_point;

-#if !defined(MBEDTLS_ECP_ALT)
-/*
- * default Mbed TLS elliptic curve arithmetic implementation
- *
- * (in case MBEDTLS_ECP_ALT is defined then the developer has to provide an
- * alternative implementation for the whole module and it will replace this
- * one.)
- */
+#define MBEDTLS_ECP_POINT_INIT { MBEDTLS_MPI_INIT, MBEDTLS_MPI_INIT, MBEDTLS_MPI_INIT }

 /**
  * \brief           The ECP group structure.
@@ -259,6 +250,10 @@ typedef struct mbedtls_ecp_group {
 }
 mbedtls_ecp_group;

+#define MBEDTLS_ECP_GROUP_INIT { MBEDTLS_ECP_DP_NONE, MBEDTLS_MPI_INIT, MBEDTLS_MPI_INIT, \
+                                 MBEDTLS_MPI_INIT, MBEDTLS_ECP_POINT_INIT, MBEDTLS_MPI_INIT, \
+                                 0, 0, 0, NULL, NULL, NULL, NULL, NULL, 0 }
+
 /**
  * \name SECTION: Module settings
  *
@@ -309,10 +304,6 @@ mbedtls_ecp_group;

 /** \} name SECTION: Module settings */

-#else  /* MBEDTLS_ECP_ALT */
-#include "ecp_alt.h"
-#endif /* MBEDTLS_ECP_ALT */
-
 /**
  * The maximum size of the groups, that is, of \c N and \c P.
  */
@@ -339,10 +330,6 @@ mbedtls_ecp_group;
 #define MBEDTLS_ECP_MAX_BITS 256
 #elif defined(MBEDTLS_ECP_DP_CURVE25519_ENABLED)
 #define MBEDTLS_ECP_MAX_BITS 255
-#elif defined(MBEDTLS_ECP_DP_SECP224K1_ENABLED)
-#define MBEDTLS_ECP_MAX_BITS 225 // n is slightly above 2^224
-#elif defined(MBEDTLS_ECP_DP_SECP224R1_ENABLED)
-#define MBEDTLS_ECP_MAX_BITS 224
 #elif defined(MBEDTLS_ECP_DP_SECP192K1_ENABLED)
 #define MBEDTLS_ECP_MAX_BITS 192
 #elif defined(MBEDTLS_ECP_DP_SECP192R1_ENABLED)
@@ -380,6 +367,9 @@ typedef struct {
     mbedtls_ecp_restart_muladd_ctx *MBEDTLS_PRIVATE(ma); /*!<  ecp_muladd() sub-context      */
 } mbedtls_ecp_restart_ctx;

+#define MBEDTLS_ECP_RESTART_INIT { 0, 0, NULL, NULL }
+
+#if defined(MBEDTLS_DECLARE_PRIVATE_IDENTIFIERS)
 /*
  * Operation counts for restartable functions
  */
@@ -407,10 +397,13 @@ int mbedtls_ecp_check_budget(const mbedtls_ecp_group *grp,
 #define MBEDTLS_ECP_BUDGET(ops)   \
     MBEDTLS_MPI_CHK(mbedtls_ecp_check_budget(grp, rs_ctx, \
                                              (unsigned) (ops)));
+#endif /* MBEDTLS_DECLARE_PRIVATE_IDENTIFIERS */

 #else /* MBEDTLS_ECP_RESTARTABLE */

+#if defined(MBEDTLS_DECLARE_PRIVATE_IDENTIFIERS)
 #define MBEDTLS_ECP_BUDGET(ops)     /* no-op; for compatibility */
+#endif /* MBEDTLS_DECLARE_PRIVATE_IDENTIFIERS */

 /* We want to declare restartable versions of existing functions anyway */
 typedef void mbedtls_ecp_restart_ctx;
@@ -432,6 +425,9 @@ typedef struct mbedtls_ecp_keypair {
 }
 mbedtls_ecp_keypair;

+#define MBEDTLS_ECP_KEYPAIR_INIT { MBEDTLS_ECP_GROUP_INIT, MBEDTLS_MPI_INIT, \
+                                   MBEDTLS_ECP_POINT_INIT }
+
 /**
  * The uncompressed point format for Short Weierstrass curves
  * (MBEDTLS_ECP_DP_SECP_XXX and MBEDTLS_ECP_DP_BP_XXX).
@@ -440,12 +436,6 @@ mbedtls_ecp_keypair;
 /**
  * The compressed point format for Short Weierstrass curves
  * (MBEDTLS_ECP_DP_SECP_XXX and MBEDTLS_ECP_DP_BP_XXX).
- *
- * \warning     While this format is supported for all concerned curves for
- *              writing, when it comes to parsing, it is not supported for all
- *              curves. Specifically, parsing compressed points on
- *              MBEDTLS_ECP_DP_SECP224R1 and MBEDTLS_ECP_DP_SECP224K1 is not
- *              supported.
  */
 #define MBEDTLS_ECP_PF_COMPRESSED      1

@@ -454,6 +444,7 @@ mbedtls_ecp_keypair;
  */
 #define MBEDTLS_ECP_TLS_NAMED_CURVE    3   /**< The named_curve of ECCurveType. */

+#if defined(MBEDTLS_DECLARE_PRIVATE_IDENTIFIERS)
 #if defined(MBEDTLS_ECP_RESTARTABLE)
 /**
  * \brief           Set the maximum number of basic operations done in a row.
@@ -472,9 +463,8 @@ mbedtls_ecp_keypair;
  *                  returns 0.
  *
  *                  This only applies to functions whose documentation
- *                  mentions they may return #MBEDTLS_ERR_ECP_IN_PROGRESS (or
- *                  #MBEDTLS_ERR_SSL_CRYPTO_IN_PROGRESS for functions in the
- *                  SSL module). For functions that accept a "restart context"
+ *                  mentions they may return #MBEDTLS_ERR_ECP_IN_PROGRESS.
+ *                  For functions that accept a "restart context"
  *                  argument, passing NULL disables restart and makes the
  *                  function equivalent to the function with the same name
  *                  with \c _restartable removed. For functions in the ECDH
@@ -966,7 +956,7 @@ int mbedtls_ecp_tls_write_group(const mbedtls_ecp_group *grp,
  */
 int mbedtls_ecp_mul(mbedtls_ecp_group *grp, mbedtls_ecp_point *R,
                     const mbedtls_mpi *m, const mbedtls_ecp_point *P,
-                    mbedtls_f_rng_t *f_rng, void *p_rng);
+                    int (*f_rng)(void *, unsigned char *, size_t), void *p_rng);

 /**
  * \brief           This function performs multiplication of a point by
@@ -1000,7 +990,7 @@ int mbedtls_ecp_mul(mbedtls_ecp_group *grp, mbedtls_ecp_point *R,
  */
 int mbedtls_ecp_mul_restartable(mbedtls_ecp_group *grp, mbedtls_ecp_point *R,
                                 const mbedtls_mpi *m, const mbedtls_ecp_point *P,
-                                mbedtls_f_rng_t *f_rng, void *p_rng,
+                                int (*f_rng)(void *, unsigned char *, size_t), void *p_rng,
                                 mbedtls_ecp_restart_ctx *rs_ctx);

 #if defined(MBEDTLS_ECP_SHORT_WEIERSTRASS_ENABLED)
@@ -1179,7 +1169,7 @@ int mbedtls_ecp_check_privkey(const mbedtls_ecp_group *grp,
  */
 int mbedtls_ecp_gen_privkey(const mbedtls_ecp_group *grp,
                             mbedtls_mpi *d,
-                            mbedtls_f_rng_t *f_rng,
+                            int (*f_rng)(void *, unsigned char *, size_t),
                             void *p_rng);

 /**
@@ -1212,7 +1202,7 @@ int mbedtls_ecp_gen_privkey(const mbedtls_ecp_group *grp,
 int mbedtls_ecp_gen_keypair_base(mbedtls_ecp_group *grp,
                                  const mbedtls_ecp_point *G,
                                  mbedtls_mpi *d, mbedtls_ecp_point *Q,
-                                 mbedtls_f_rng_t *f_rng,
+                                 int (*f_rng)(void *, unsigned char *, size_t),
                                  void *p_rng);

 /**
@@ -1240,7 +1230,7 @@ int mbedtls_ecp_gen_keypair_base(mbedtls_ecp_group *grp,
  */
 int mbedtls_ecp_gen_keypair(mbedtls_ecp_group *grp, mbedtls_mpi *d,
                             mbedtls_ecp_point *Q,
-                            mbedtls_f_rng_t *f_rng,
+                            int (*f_rng)(void *, unsigned char *, size_t),
                             void *p_rng);

 /**
@@ -1257,7 +1247,7 @@ int mbedtls_ecp_gen_keypair(mbedtls_ecp_group *grp, mbedtls_mpi *d,
  *                  on failure.
  */
 int mbedtls_ecp_gen_key(mbedtls_ecp_group_id grp_id, mbedtls_ecp_keypair *key,
-                        mbedtls_f_rng_t *f_rng,
+                        int (*f_rng)(void *, unsigned char *, size_t),
                         void *p_rng);

 /** \brief          Set the public key in a key pair object.
@@ -1451,7 +1441,7 @@ int mbedtls_ecp_write_public_key(const mbedtls_ecp_keypair *key,
  */
 int mbedtls_ecp_check_pub_priv(
     const mbedtls_ecp_keypair *pub, const mbedtls_ecp_keypair *prv,
-    mbedtls_f_rng_t *f_rng, void *p_rng);
+    int (*f_rng)(void *, unsigned char *, size_t), void *p_rng);

 /** \brief          Calculate the public key from a private key in a key pair.
  *
@@ -1468,7 +1458,7 @@ int mbedtls_ecp_check_pub_priv(
  */
 int mbedtls_ecp_keypair_calc_public(
     mbedtls_ecp_keypair *key,
-    mbedtls_f_rng_t *f_rng, void *p_rng);
+    int (*f_rng)(void *, unsigned char *, size_t), void *p_rng);

 /** \brief          Query the group that a key pair belongs to.
  *
@@ -1521,6 +1511,8 @@ int mbedtls_ecp_self_test(int verbose);

 #endif /* MBEDTLS_SELF_TEST */

+#endif /* MBEDTLS_DECLARE_PRIVATE_IDENTIFIERS */
+
 #ifdef __cplusplus
 }
 #endif
diff --git a/deps/LIEF/third-party/mbedtls/include/mbedtls/entropy.h b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/include/mbedtls/private/entropy.h
similarity index 87%
rename from deps/LIEF/third-party/mbedtls/include/mbedtls/entropy.h
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/include/mbedtls/private/entropy.h
index 6c64e3e4e15..14eecc2c634 100644
--- a/deps/LIEF/third-party/mbedtls/include/mbedtls/entropy.h
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/include/mbedtls/private/entropy.h
@@ -10,25 +10,17 @@
 #ifndef MBEDTLS_ENTROPY_H
 #define MBEDTLS_ENTROPY_H
 #include "mbedtls/private_access.h"
+#include "mbedtls/psa_util.h"

-#include "mbedtls/build_info.h"
+#include "tf-psa-crypto/build_info.h"

 #include <stddef.h>

-#include "md.h"
+#include "mbedtls/md.h"

-#if (defined(MBEDTLS_MD_CAN_SHA512) || defined(PSA_WANT_ALG_SHA_512)) && \
-    !defined(MBEDTLS_ENTROPY_FORCE_SHA256)
-#define MBEDTLS_ENTROPY_SHA512_ACCUMULATOR
-#define MBEDTLS_ENTROPY_MD  MBEDTLS_MD_SHA512
-#define MBEDTLS_ENTROPY_BLOCK_SIZE      64      /**< Block size of entropy accumulator (SHA-512) */
-#else
-#if (defined(MBEDTLS_MD_CAN_SHA256) || defined(PSA_WANT_ALG_SHA_256))
-#define MBEDTLS_ENTROPY_SHA256_ACCUMULATOR
-#define MBEDTLS_ENTROPY_MD  MBEDTLS_MD_SHA256
-#define MBEDTLS_ENTROPY_BLOCK_SIZE      32      /**< Block size of entropy accumulator (SHA-256) */
-#endif
-#endif
+#define MBEDTLS_ENTROPY_BLOCK_SIZE PSA_HASH_LENGTH(MBEDTLS_PSA_CRYPTO_RNG_HASH)
+/* For MBEDTLS_ENTROPY_MD convert PSA_ALG_SHA_256/512 -> MBEDTLS_MD_SHA256/512 */
+#define MBEDTLS_ENTROPY_MD (mbedtls_md_type_from_psa_alg(MBEDTLS_PSA_CRYPTO_RNG_HASH))

 #if defined(MBEDTLS_THREADING_C)
 #include "mbedtls/threading.h"
@@ -36,7 +28,7 @@


 /** Critical entropy source failure. */
-#define MBEDTLS_ERR_ENTROPY_SOURCE_FAILED                 -0x003C
+#define MBEDTLS_ERR_ENTROPY_SOURCE_FAILED PSA_ERROR_INSUFFICIENT_ENTROPY
 /** No more sources can be added. */
 #define MBEDTLS_ERR_ENTROPY_MAX_SOURCES                   -0x003E
 /** No sources have been added to poll. */
@@ -54,13 +46,8 @@
  * \{
  */

-#if !defined(MBEDTLS_ENTROPY_MAX_SOURCES)
-#define MBEDTLS_ENTROPY_MAX_SOURCES     20      /**< Maximum number of sources supported */
-#endif
-
-#if !defined(MBEDTLS_ENTROPY_MAX_GATHER)
+#define MBEDTLS_ENTROPY_MAX_SOURCES     4       /**< Maximum number of sources supported. Should be just 2 eventually. */
 #define MBEDTLS_ENTROPY_MAX_GATHER      128     /**< Maximum amount requested from entropy sources */
-#endif

 /** \} name SECTION: Module settings */

@@ -119,14 +106,6 @@ typedef struct mbedtls_entropy_context {
 }
 mbedtls_entropy_context;

-#if !defined(MBEDTLS_NO_PLATFORM_ENTROPY)
-/**
- * \brief           Platform-specific entropy poll callback
- */
-int mbedtls_platform_entropy_poll(void *data,
-                                  unsigned char *output, size_t len, size_t *olen);
-#endif
-
 /**
  * \brief           Initialize the context
  *
@@ -249,7 +228,7 @@ int mbedtls_entropy_update_seed_file(mbedtls_entropy_context *ctx, const char *p
  */
 int mbedtls_entropy_self_test(int verbose);

-#if defined(MBEDTLS_ENTROPY_HARDWARE_ALT)
+#if defined(MBEDTLS_PSA_DRIVER_GET_ENTROPY)
 /**
  * \brief          Checkup routine
  *
@@ -264,7 +243,7 @@ int mbedtls_entropy_self_test(int verbose);
  * \return         0 if successful, or 1 if a test failed
  */
 int mbedtls_entropy_source_self_test(int verbose);
-#endif /* MBEDTLS_ENTROPY_HARDWARE_ALT */
+#endif /* MBEDTLS_PSA_DRIVER_GET_ENTROPY */
 #endif /* MBEDTLS_SELF_TEST */

 #ifdef __cplusplus
diff --git a/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/include/mbedtls/private/error_common.h b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/include/mbedtls/private/error_common.h
new file mode 100644
index 00000000000..4867e478965
--- /dev/null
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/include/mbedtls/private/error_common.h
@@ -0,0 +1,79 @@
+/**
+ * \file error_common.h
+ *
+ * \brief Error codes
+ */
+/*
+ *  Copyright The Mbed TLS Contributors
+ *  SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+ */
+#ifndef MBEDTLS_ERROR_COMMON_H
+#define MBEDTLS_ERROR_COMMON_H
+
+#include "tf-psa-crypto/build_info.h"
+#include <psa/crypto_values.h>
+#include <stddef.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Generic error */
+#define MBEDTLS_ERR_ERROR_GENERIC_ERROR       PSA_ERROR_GENERIC_ERROR
+/* This is a bug in the library */
+#define MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED PSA_ERROR_CORRUPTION_DETECTED
+
+/* Hardware accelerator failed */
+#define MBEDTLS_ERR_PLATFORM_HW_ACCEL_FAILED     PSA_ERROR_HARDWARE_FAILURE
+/* The requested feature is not supported by the platform */
+#define MBEDTLS_ERR_PLATFORM_FEATURE_UNSUPPORTED PSA_ERROR_NOT_SUPPORTED
+
+/**
+ * \brief Combines a high-level and low-level error code together.
+ *
+ *        Wrapper macro for mbedtls_error_add(). See that function for
+ *        more details.
+ */
+#define MBEDTLS_ERROR_ADD(high, low) \
+    mbedtls_error_add(high, low)
+
+/**
+ * \brief Combines a high-level and low-level error code together.
+ *
+ *        This function can be called directly however it is usually
+ *        called via the #MBEDTLS_ERROR_ADD macro.
+ *
+ *        While a value of zero is not a negative error code, it is still an
+ *        error code (that denotes success) and can be combined with both a
+ *        negative error code or another value of zero.
+ *
+ * \note  The distinction between low-level and high-level error codes is
+ *        obsolete since TF-PSA-Crypto 1.0 and Mbed TLS 4.0. It is still
+ *        present in the code due to the heritage from Mbed TLS <=3,
+ *        where low-level and high-level error codes could be added.
+ *        New code should not make this distinction and should just
+ *        propagate errors returned by lower-level modules unless there
+ *        is a good reason to report a different error code in the
+ *        higher-level module.
+ *
+ * \param high      High-level error code, i.e. error code from the module
+ *                  that is reporting the error.
+ *                  This can be 0 to just propagate a low-level error.
+ * \param low       Low-level error code, i.e. error code returned by
+ *                  a lower-level function.
+ *                  This can be 0 to just return a high-level error.
+ */
+static inline int mbedtls_error_add(int high, int low)
+{
+    /* We give priority to the lower-level error code, because this
+     * is usually the right choice. For example, if a low-level module
+     * runs out of memory, this should not be converted to a high-level
+     * error code such as invalid-signature. */
+    return low ? low : high;
+}
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* error_common.h */
diff --git a/deps/LIEF/third-party/mbedtls/include/mbedtls/gcm.h b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/include/mbedtls/private/gcm.h
similarity index 92%
rename from deps/LIEF/third-party/mbedtls/include/mbedtls/gcm.h
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/include/mbedtls/private/gcm.h
index 390ed4c6d04..481605b214b 100644
--- a/deps/LIEF/third-party/mbedtls/include/mbedtls/gcm.h
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/include/mbedtls/private/gcm.h
@@ -20,32 +20,32 @@
 #define MBEDTLS_GCM_H
 #include "mbedtls/private_access.h"

-#include "mbedtls/build_info.h"
+#include "tf-psa-crypto/build_info.h"

-#include "mbedtls/cipher.h"
+#include "mbedtls/private/cipher.h"

 #if defined(MBEDTLS_BLOCK_CIPHER_C)
-#include "mbedtls/block_cipher.h"
+#include "mbedtls/private/block_cipher.h"
 #endif

 #include <stdint.h>

+#if defined(MBEDTLS_DECLARE_PRIVATE_IDENTIFIERS)
 #define MBEDTLS_GCM_ENCRYPT     1
 #define MBEDTLS_GCM_DECRYPT     0
+#endif /* MBEDTLS_DECLARE_PRIVATE_IDENTIFIERS */

 /** Authenticated decryption failed. */
-#define MBEDTLS_ERR_GCM_AUTH_FAILED                       -0x0012
+#define MBEDTLS_ERR_GCM_AUTH_FAILED                       PSA_ERROR_INVALID_SIGNATURE
 /** Bad input parameters to function. */
-#define MBEDTLS_ERR_GCM_BAD_INPUT                         -0x0014
+#define MBEDTLS_ERR_GCM_BAD_INPUT                         PSA_ERROR_INVALID_ARGUMENT
 /** An output buffer is too small. */
-#define MBEDTLS_ERR_GCM_BUFFER_TOO_SMALL                  -0x0016
+#define MBEDTLS_ERR_GCM_BUFFER_TOO_SMALL                  PSA_ERROR_BUFFER_TOO_SMALL

 #ifdef __cplusplus
 extern "C" {
 #endif

-#if !defined(MBEDTLS_GCM_ALT)
-
 #if defined(MBEDTLS_GCM_LARGE_TABLE)
 #define MBEDTLS_GCM_HTABLE_SIZE 256
 #else
@@ -68,16 +68,13 @@ typedef struct mbedtls_gcm_context {
     unsigned char MBEDTLS_PRIVATE(y)[16];                    /*!< The Y working value. */
     unsigned char MBEDTLS_PRIVATE(buf)[16];                  /*!< The buf working value. */
     unsigned char MBEDTLS_PRIVATE(mode);                     /*!< The operation to perform:
-                                                              #MBEDTLS_GCM_ENCRYPT or
-                                                              #MBEDTLS_GCM_DECRYPT. */
+                                                                MBEDTLS_GCM_ENCRYPT or
+                                                                MBEDTLS_GCM_DECRYPT. */
     unsigned char MBEDTLS_PRIVATE(acceleration);             /*!< The acceleration to use. */
 }
 mbedtls_gcm_context;

-#else  /* !MBEDTLS_GCM_ALT */
-#include "gcm_alt.h"
-#endif /* !MBEDTLS_GCM_ALT */
-
+#if defined(MBEDTLS_DECLARE_PRIVATE_IDENTIFIERS)
 /**
  * \brief           This function initializes the specified GCM context,
  *                  to make references valid, and prepares the context
@@ -127,10 +124,10 @@ int mbedtls_gcm_setkey(mbedtls_gcm_context *ctx,
  * \param ctx       The GCM context to use for encryption or decryption. This
  *                  must be initialized.
  * \param mode      The operation to perform:
- *                  - #MBEDTLS_GCM_ENCRYPT to perform authenticated encryption.
+ *                  - MBEDTLS_GCM_ENCRYPT to perform authenticated encryption.
  *                    The ciphertext is written to \p output and the
  *                    authentication tag is written to \p tag.
- *                  - #MBEDTLS_GCM_DECRYPT to perform decryption.
+ *                  - MBEDTLS_GCM_DECRYPT to perform decryption.
  *                    The plaintext is written to \p output and the
  *                    authentication tag is written to \p tag.
  *                    Note that this mode is not recommended, because it does
@@ -156,7 +153,7 @@ int mbedtls_gcm_setkey(mbedtls_gcm_context *ctx,
  *                  buffer of at least \p tag_len Bytes.
  *
  * \return          \c 0 if the encryption or decryption was performed
- *                  successfully. Note that in #MBEDTLS_GCM_DECRYPT mode,
+ *                  successfully. Note that in MBEDTLS_GCM_DECRYPT mode,
  *                  this does not indicate that the data is authentic.
  * \return          #MBEDTLS_ERR_GCM_BAD_INPUT if the lengths or pointers are
  *                  not valid or a cipher-specific error code if the encryption
@@ -180,9 +177,7 @@ int mbedtls_gcm_crypt_and_tag(mbedtls_gcm_context *ctx,
  *
  * \note            The output buffer \p output can be the same as the input
  *                  buffer \p input. If \p output is greater than \p input, they
- *                  cannot overlap. Implementations which require
- *                  MBEDTLS_GCM_ALT to be enabled may not provide support for
- *                  overlapping buffers.
+ *                  cannot overlap.
  *
  * \param ctx       The GCM context. This must be initialized.
  * \param length    The length of the ciphertext to decrypt, which is also
@@ -225,8 +220,8 @@ int mbedtls_gcm_auth_decrypt(mbedtls_gcm_context *ctx,
  *                  operation.
  *
  * \param ctx       The GCM context. This must be initialized.
- * \param mode      The operation to perform: #MBEDTLS_GCM_ENCRYPT or
- *                  #MBEDTLS_GCM_DECRYPT.
+ * \param mode      The operation to perform: MBEDTLS_GCM_ENCRYPT or
+ *                  MBEDTLS_GCM_DECRYPT.
  * \param iv        The initialization vector. This must be a readable buffer of
  *                  at least \p iv_len Bytes.
  * \param iv_len    The length of the IV.
@@ -290,9 +285,7 @@ int mbedtls_gcm_update_ad(mbedtls_gcm_context *ctx,
  *
  * \note            The output buffer \p output can be the same as the input
  *                  buffer \p input. If \p output is greater than \p input, they
- *                  cannot overlap. Implementations which require
- *                  MBEDTLS_GCM_ALT to be enabled may not provide support for
- *                  overlapping buffers.
+ *                  cannot overlap.
  *
  * \param ctx           The GCM context. This must be initialized.
  * \param input         The buffer holding the input data. If \p input_length
@@ -379,6 +372,8 @@ int mbedtls_gcm_self_test(int verbose);

 #endif /* MBEDTLS_SELF_TEST */

+#endif /* MBEDTLS_DECLARE_PRIVATE_IDENTIFIERS */
+
 #ifdef __cplusplus
 }
 #endif
diff --git a/deps/LIEF/third-party/mbedtls/include/mbedtls/hmac_drbg.h b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/include/mbedtls/private/hmac_drbg.h
similarity index 97%
rename from deps/LIEF/third-party/mbedtls/include/mbedtls/hmac_drbg.h
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/include/mbedtls/private/hmac_drbg.h
index 18b1b75a69f..c3dfb68538b 100644
--- a/deps/LIEF/third-party/mbedtls/include/mbedtls/hmac_drbg.h
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/include/mbedtls/private/hmac_drbg.h
@@ -15,7 +15,7 @@
 #define MBEDTLS_HMAC_DRBG_H
 #include "mbedtls/private_access.h"

-#include "mbedtls/build_info.h"
+#include "tf-psa-crypto/build_info.h"

 #include "mbedtls/md.h"

@@ -43,21 +43,13 @@
  * \{
  */

-#if !defined(MBEDTLS_HMAC_DRBG_RESEED_INTERVAL)
-#define MBEDTLS_HMAC_DRBG_RESEED_INTERVAL   10000   /**< Interval before reseed is performed by default */
+#if !defined(MBEDTLS_PSA_RNG_RESEED_INTERVAL)
+#define MBEDTLS_PSA_RNG_RESEED_INTERVAL   10000   /**< Interval before reseed is performed by default */
 #endif

-#if !defined(MBEDTLS_HMAC_DRBG_MAX_INPUT)
 #define MBEDTLS_HMAC_DRBG_MAX_INPUT         256     /**< Maximum number of additional input bytes */
-#endif
-
-#if !defined(MBEDTLS_HMAC_DRBG_MAX_REQUEST)
 #define MBEDTLS_HMAC_DRBG_MAX_REQUEST       1024    /**< Maximum number of requested bytes per call */
-#endif
-
-#if !defined(MBEDTLS_HMAC_DRBG_MAX_SEED_INPUT)
 #define MBEDTLS_HMAC_DRBG_MAX_SEED_INPUT    384     /**< Maximum size of (re)seed buffer */
-#endif

 /** \} name SECTION: Module settings */

@@ -107,7 +99,7 @@ typedef struct mbedtls_hmac_drbg_context {
  * This function makes the context ready for mbedtls_hmac_drbg_seed(),
  * mbedtls_hmac_drbg_seed_buf() or mbedtls_hmac_drbg_free().
  *
- * \note                The reseed interval is #MBEDTLS_HMAC_DRBG_RESEED_INTERVAL
+ * \note                The reseed interval is #MBEDTLS_PSA_RNG_RESEED_INTERVAL
  *                      by default. Override this value by calling
  *                      mbedtls_hmac_drbg_set_reseed_interval().
  *
@@ -257,7 +249,7 @@ void mbedtls_hmac_drbg_set_entropy_len(mbedtls_hmac_drbg_context *ctx,
  * or mbedtls_hmac_drbg_random_with_add() after which the entropy function
  * is called again.
  *
- * The default value is #MBEDTLS_HMAC_DRBG_RESEED_INTERVAL.
+ * The default value is #MBEDTLS_PSA_RNG_RESEED_INTERVAL.
  *
  * \param ctx           The HMAC_DRBG context.
  * \param interval      The reseed interval.
diff --git a/deps/LIEF/third-party/mbedtls/include/mbedtls/md5.h b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/include/mbedtls/private/md5.h
similarity index 87%
rename from deps/LIEF/third-party/mbedtls/include/mbedtls/md5.h
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/include/mbedtls/private/md5.h
index 6bf0754a4a6..577d729ecb1 100644
--- a/deps/LIEF/third-party/mbedtls/include/mbedtls/md5.h
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/include/mbedtls/private/md5.h
@@ -15,7 +15,7 @@
 #define MBEDTLS_MD5_H
 #include "mbedtls/private_access.h"

-#include "mbedtls/build_info.h"
+#include "tf-psa-crypto/build_info.h"

 #include <stddef.h>
 #include <stdint.h>
@@ -24,10 +24,6 @@
 extern "C" {
 #endif

-#if !defined(MBEDTLS_MD5_ALT)
-// Regular implementation
-//
-
 /**
  * \brief          MD5 context structure
  *
@@ -43,10 +39,7 @@ typedef struct mbedtls_md5_context {
 }
 mbedtls_md5_context;

-#else  /* MBEDTLS_MD5_ALT */
-#include "md5_alt.h"
-#endif /* MBEDTLS_MD5_ALT */
-
+#if defined(MBEDTLS_DECLARE_PRIVATE_IDENTIFIERS)
 /**
  * \brief          Initialize MD5 context
  *
@@ -133,22 +126,6 @@ int mbedtls_md5_update(mbedtls_md5_context *ctx,
 int mbedtls_md5_finish(mbedtls_md5_context *ctx,
                        unsigned char output[16]);

-/**
- * \brief          MD5 process data block (internal use only)
- *
- * \param ctx      MD5 context
- * \param data     buffer holding one block of data
- *
- * \return         0 if successful
- *
- * \warning        MD5 is considered a weak message digest and its use
- *                 constitutes a security risk. We recommend considering
- *                 stronger message digests instead.
- *
- */
-int mbedtls_internal_md5_process(mbedtls_md5_context *ctx,
-                                 const unsigned char data[64]);
-
 /**
  * \brief          Output = MD5( input buffer )
  *
@@ -183,6 +160,8 @@ int mbedtls_md5_self_test(int verbose);

 #endif /* MBEDTLS_SELF_TEST */

+#endif /* MBEDTLS_DECLARE_PRIVATE_IDENTIFIERS */
+
 #ifdef __cplusplus
 }
 #endif
diff --git a/deps/LIEF/third-party/mbedtls/include/mbedtls/pkcs5.h b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/include/mbedtls/private/pkcs5.h
similarity index 98%
rename from deps/LIEF/third-party/mbedtls/include/mbedtls/pkcs5.h
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/include/mbedtls/private/pkcs5.h
index 9ba5689d4a2..e4628dc88c4 100644
--- a/deps/LIEF/third-party/mbedtls/include/mbedtls/pkcs5.h
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/include/mbedtls/private/pkcs5.h
@@ -12,18 +12,18 @@
 #ifndef MBEDTLS_PKCS5_H
 #define MBEDTLS_PKCS5_H

-#include "mbedtls/build_info.h"
+#include "tf-psa-crypto/build_info.h"
 #include "mbedtls/platform_util.h"

 #include "mbedtls/asn1.h"
 #include "mbedtls/md.h"
-#include "mbedtls/cipher.h"
+#include "mbedtls/private/cipher.h"

 #include <stddef.h>
 #include <stdint.h>

 /** Bad input parameters to function. */
-#define MBEDTLS_ERR_PKCS5_BAD_INPUT_DATA                  -0x2f80
+#define MBEDTLS_ERR_PKCS5_BAD_INPUT_DATA                  PSA_ERROR_INVALID_ARGUMENT
 /** Unexpected ASN.1 data. */
 #define MBEDTLS_ERR_PKCS5_INVALID_FORMAT                  -0x2f00
 /** Requested encryption or digest alg not available. */
diff --git a/deps/LIEF/third-party/mbedtls/include/mbedtls/poly1305.h b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/include/mbedtls/private/poly1305.h
similarity index 96%
rename from deps/LIEF/third-party/mbedtls/include/mbedtls/poly1305.h
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/include/mbedtls/private/poly1305.h
index 61bcaa6b646..35387c65833 100644
--- a/deps/LIEF/third-party/mbedtls/include/mbedtls/poly1305.h
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/include/mbedtls/private/poly1305.h
@@ -21,20 +21,18 @@
 #define MBEDTLS_POLY1305_H
 #include "mbedtls/private_access.h"

-#include "mbedtls/build_info.h"
+#include "tf-psa-crypto/build_info.h"

 #include <stdint.h>
 #include <stddef.h>

 /** Invalid input parameter(s). */
-#define MBEDTLS_ERR_POLY1305_BAD_INPUT_DATA         -0x0057
+#define MBEDTLS_ERR_POLY1305_BAD_INPUT_DATA         PSA_ERROR_INVALID_ARGUMENT

 #ifdef __cplusplus
 extern "C" {
 #endif

-#if !defined(MBEDTLS_POLY1305_ALT)
-
 typedef struct mbedtls_poly1305_context {
     uint32_t MBEDTLS_PRIVATE(r)[4];      /** The value for 'r' (low 128 bits of the key). */
     uint32_t MBEDTLS_PRIVATE(s)[4];      /** The value for 's' (high 128 bits of the key). */
@@ -44,10 +42,7 @@ typedef struct mbedtls_poly1305_context {
 }
 mbedtls_poly1305_context;

-#else  /* MBEDTLS_POLY1305_ALT */
-#include "poly1305_alt.h"
-#endif /* MBEDTLS_POLY1305_ALT */
-
+#if defined(MBEDTLS_DECLARE_PRIVATE_IDENTIFIERS)
 /**
  * \brief           This function initializes the specified Poly1305 context.
  *
@@ -161,6 +156,8 @@ int mbedtls_poly1305_mac(const unsigned char key[32],
 int mbedtls_poly1305_self_test(int verbose);
 #endif /* MBEDTLS_SELF_TEST */

+#endif /* MBEDTLS_DECLARE_PRIVATE_IDENTIFIERS */
+
 #ifdef __cplusplus
 }
 #endif
diff --git a/deps/LIEF/third-party/mbedtls/include/mbedtls/ripemd160.h b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/include/mbedtls/private/ripemd160.h
similarity index 84%
rename from deps/LIEF/third-party/mbedtls/include/mbedtls/ripemd160.h
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/include/mbedtls/private/ripemd160.h
index 279f92b5121..7f080a2b71e 100644
--- a/deps/LIEF/third-party/mbedtls/include/mbedtls/ripemd160.h
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/include/mbedtls/private/ripemd160.h
@@ -11,7 +11,7 @@
 #define MBEDTLS_RIPEMD160_H
 #include "mbedtls/private_access.h"

-#include "mbedtls/build_info.h"
+#include "tf-psa-crypto/build_info.h"

 #include <stddef.h>
 #include <stdint.h>
@@ -20,10 +20,6 @@
 extern "C" {
 #endif

-#if !defined(MBEDTLS_RIPEMD160_ALT)
-// Regular implementation
-//
-
 /**
  * \brief          RIPEMD-160 context structure
  */
@@ -34,10 +30,7 @@ typedef struct mbedtls_ripemd160_context {
 }
 mbedtls_ripemd160_context;

-#else  /* MBEDTLS_RIPEMD160_ALT */
-#include "ripemd160_alt.h"
-#endif /* MBEDTLS_RIPEMD160_ALT */
-
+#if defined(MBEDTLS_DECLARE_PRIVATE_IDENTIFIERS)
 /**
  * \brief          Initialize RIPEMD-160 context
  *
@@ -94,17 +87,6 @@ int mbedtls_ripemd160_update(mbedtls_ripemd160_context *ctx,
 int mbedtls_ripemd160_finish(mbedtls_ripemd160_context *ctx,
                              unsigned char output[20]);

-/**
- * \brief          RIPEMD-160 process data block (internal use only)
- *
- * \param ctx      RIPEMD-160 context
- * \param data     buffer holding one block of data
- *
- * \return         0 if successful
- */
-int mbedtls_internal_ripemd160_process(mbedtls_ripemd160_context *ctx,
-                                       const unsigned char data[64]);
-
 /**
  * \brief          Output = RIPEMD-160( input buffer )
  *
@@ -129,6 +111,8 @@ int mbedtls_ripemd160_self_test(int verbose);

 #endif /* MBEDTLS_SELF_TEST */

+#endif /* MBEDTLS_DECLARE_PRIVATE_IDENTIFIERS */
+
 #ifdef __cplusplus
 }
 #endif
diff --git a/deps/LIEF/third-party/mbedtls/include/mbedtls/rsa.h b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/include/mbedtls/private/rsa.h
similarity index 97%
rename from deps/LIEF/third-party/mbedtls/include/mbedtls/rsa.h
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/include/mbedtls/private/rsa.h
index 3f0881a4349..cd4c6745cc3 100644
--- a/deps/LIEF/third-party/mbedtls/include/mbedtls/rsa.h
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/include/mbedtls/private/rsa.h
@@ -17,9 +17,9 @@
 #define MBEDTLS_RSA_H
 #include "mbedtls/private_access.h"

-#include "mbedtls/build_info.h"
+#include "tf-psa-crypto/build_info.h"

-#include "mbedtls/bignum.h"
+#include "mbedtls/private/bignum.h"
 #include "mbedtls/md.h"

 #if defined(MBEDTLS_THREADING_C)
@@ -30,9 +30,9 @@
  * RSA Error codes
  */
 /** Bad input parameters to function. */
-#define MBEDTLS_ERR_RSA_BAD_INPUT_DATA                    -0x4080
+#define MBEDTLS_ERR_RSA_BAD_INPUT_DATA                    PSA_ERROR_INVALID_ARGUMENT
 /** Input data contains invalid padding and is rejected. */
-#define MBEDTLS_ERR_RSA_INVALID_PADDING                   -0x4100
+#define MBEDTLS_ERR_RSA_INVALID_PADDING                   PSA_ERROR_INVALID_PADDING
 /** Something failed during generation of a key. */
 #define MBEDTLS_ERR_RSA_KEY_GEN_FAILED                    -0x4180
 /** Key failed to pass the validity check of the library. */
@@ -42,9 +42,9 @@
 /** The private key operation failed. */
 #define MBEDTLS_ERR_RSA_PRIVATE_FAILED                    -0x4300
 /** The PKCS#1 verification failed. */
-#define MBEDTLS_ERR_RSA_VERIFY_FAILED                     -0x4380
+#define MBEDTLS_ERR_RSA_VERIFY_FAILED                     PSA_ERROR_INVALID_SIGNATURE
 /** The output buffer for decryption is not large enough. */
-#define MBEDTLS_ERR_RSA_OUTPUT_TOO_LARGE                  -0x4400
+#define MBEDTLS_ERR_RSA_OUTPUT_TOO_LARGE                  PSA_ERROR_BUFFER_TOO_SMALL
 /** The random generator failed to generate non-zeros. */
 #define MBEDTLS_ERR_RSA_RNG_FAILED                        -0x4480

@@ -69,10 +69,6 @@
 extern "C" {
 #endif

-#if !defined(MBEDTLS_RSA_ALT)
-// Regular implementation
-//
-
 #if !defined(MBEDTLS_RSA_GEN_KEY_MIN_BITS)
 #define MBEDTLS_RSA_GEN_KEY_MIN_BITS 1024
 #elif MBEDTLS_RSA_GEN_KEY_MIN_BITS < 128
@@ -122,10 +118,6 @@ typedef struct mbedtls_rsa_context {
 }
 mbedtls_rsa_context;

-#else  /* MBEDTLS_RSA_ALT */
-#include "rsa_alt.h"
-#endif /* MBEDTLS_RSA_ALT */
-
 /**
  * \brief          This function initializes an RSA context.
  *
@@ -465,7 +457,7 @@ size_t mbedtls_rsa_get_len(const mbedtls_rsa_context *ctx);
  * \return         An \c MBEDTLS_ERR_RSA_XXX error code on failure.
  */
 int mbedtls_rsa_gen_key(mbedtls_rsa_context *ctx,
-                        mbedtls_f_rng_t *f_rng,
+                        int (*f_rng)(void *, unsigned char *, size_t),
                         void *p_rng,
                         unsigned int nbits, int exponent);

@@ -590,7 +582,7 @@ int mbedtls_rsa_public(mbedtls_rsa_context *ctx,
  *
  */
 int mbedtls_rsa_private(mbedtls_rsa_context *ctx,
-                        mbedtls_f_rng_t *f_rng,
+                        int (*f_rng)(void *, unsigned char *, size_t),
                         void *p_rng,
                         const unsigned char *input,
                         unsigned char *output);
@@ -619,7 +611,7 @@ int mbedtls_rsa_private(mbedtls_rsa_context *ctx,
  * \return         An \c MBEDTLS_ERR_RSA_XXX error code on failure.
  */
 int mbedtls_rsa_pkcs1_encrypt(mbedtls_rsa_context *ctx,
-                              mbedtls_f_rng_t *f_rng,
+                              int (*f_rng)(void *, unsigned char *, size_t),
                               void *p_rng,
                               size_t ilen,
                               const unsigned char *input,
@@ -646,7 +638,7 @@ int mbedtls_rsa_pkcs1_encrypt(mbedtls_rsa_context *ctx,
  * \return         An \c MBEDTLS_ERR_RSA_XXX error code on failure.
  */
 int mbedtls_rsa_rsaes_pkcs1_v15_encrypt(mbedtls_rsa_context *ctx,
-                                        mbedtls_f_rng_t *f_rng,
+                                        int (*f_rng)(void *, unsigned char *, size_t),
                                         void *p_rng,
                                         size_t ilen,
                                         const unsigned char *input,
@@ -680,7 +672,7 @@ int mbedtls_rsa_rsaes_pkcs1_v15_encrypt(mbedtls_rsa_context *ctx,
  * \return           An \c MBEDTLS_ERR_RSA_XXX error code on failure.
  */
 int mbedtls_rsa_rsaes_oaep_encrypt(mbedtls_rsa_context *ctx,
-                                   mbedtls_f_rng_t *f_rng,
+                                   int (*f_rng)(void *, unsigned char *, size_t),
                                    void *p_rng,
                                    const unsigned char *label, size_t label_len,
                                    size_t ilen,
@@ -723,7 +715,7 @@ int mbedtls_rsa_rsaes_oaep_encrypt(mbedtls_rsa_context *ctx,
  * \return         An \c MBEDTLS_ERR_RSA_XXX error code on failure.
  */
 int mbedtls_rsa_pkcs1_decrypt(mbedtls_rsa_context *ctx,
-                              mbedtls_f_rng_t *f_rng,
+                              int (*f_rng)(void *, unsigned char *, size_t),
                               void *p_rng,
                               size_t *olen,
                               const unsigned char *input,
@@ -765,7 +757,7 @@ int mbedtls_rsa_pkcs1_decrypt(mbedtls_rsa_context *ctx,
  *
  */
 int mbedtls_rsa_rsaes_pkcs1_v15_decrypt(mbedtls_rsa_context *ctx,
-                                        mbedtls_f_rng_t *f_rng,
+                                        int (*f_rng)(void *, unsigned char *, size_t),
                                         void *p_rng,
                                         size_t *olen,
                                         const unsigned char *input,
@@ -806,7 +798,7 @@ int mbedtls_rsa_rsaes_pkcs1_v15_decrypt(mbedtls_rsa_context *ctx,
  * \return         An \c MBEDTLS_ERR_RSA_XXX error code on failure.
  */
 int mbedtls_rsa_rsaes_oaep_decrypt(mbedtls_rsa_context *ctx,
-                                   mbedtls_f_rng_t *f_rng,
+                                   int (*f_rng)(void *, unsigned char *, size_t),
                                    void *p_rng,
                                    const unsigned char *label, size_t label_len,
                                    size_t *olen,
@@ -849,7 +841,7 @@ int mbedtls_rsa_rsaes_oaep_decrypt(mbedtls_rsa_context *ctx,
  * \return         An \c MBEDTLS_ERR_RSA_XXX error code on failure.
  */
 int mbedtls_rsa_pkcs1_sign(mbedtls_rsa_context *ctx,
-                           mbedtls_f_rng_t *f_rng,
+                           int (*f_rng)(void *, unsigned char *, size_t),
                            void *p_rng,
                            mbedtls_md_type_t md_alg,
                            unsigned int hashlen,
@@ -881,7 +873,7 @@ int mbedtls_rsa_pkcs1_sign(mbedtls_rsa_context *ctx,
  * \return         An \c MBEDTLS_ERR_RSA_XXX error code on failure.
  */
 int mbedtls_rsa_rsassa_pkcs1_v15_sign(mbedtls_rsa_context *ctx,
-                                      mbedtls_f_rng_t *f_rng,
+                                      int (*f_rng)(void *, unsigned char *, size_t),
                                       void *p_rng,
                                       mbedtls_md_type_t md_alg,
                                       unsigned int hashlen,
@@ -933,7 +925,7 @@ int mbedtls_rsa_rsassa_pkcs1_v15_sign(mbedtls_rsa_context *ctx,
  * \return         An \c MBEDTLS_ERR_RSA_XXX error code on failure.
  */
 int mbedtls_rsa_rsassa_pss_sign_ext(mbedtls_rsa_context *ctx,
-                                    mbedtls_f_rng_t *f_rng,
+                                    int (*f_rng)(void *, unsigned char *, size_t),
                                     void *p_rng,
                                     mbedtls_md_type_t md_alg,
                                     unsigned int hashlen,
@@ -983,7 +975,7 @@ int mbedtls_rsa_rsassa_pss_sign_ext(mbedtls_rsa_context *ctx,
  * \return         An \c MBEDTLS_ERR_RSA_XXX error code on failure.
  */
 int mbedtls_rsa_rsassa_pss_sign(mbedtls_rsa_context *ctx,
-                                mbedtls_f_rng_t *f_rng,
+                                int (*f_rng)(void *, unsigned char *, size_t),
                                 void *p_rng,
                                 mbedtls_md_type_t md_alg,
                                 unsigned int hashlen,
diff --git a/deps/LIEF/third-party/mbedtls/include/mbedtls/sha1.h b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/include/mbedtls/private/sha1.h
similarity index 87%
rename from deps/LIEF/third-party/mbedtls/include/mbedtls/sha1.h
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/include/mbedtls/private/sha1.h
index 592ffd13f24..f3594a7df96 100644
--- a/deps/LIEF/third-party/mbedtls/include/mbedtls/sha1.h
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/include/mbedtls/private/sha1.h
@@ -18,22 +18,18 @@
 #define MBEDTLS_SHA1_H
 #include "mbedtls/private_access.h"

-#include "mbedtls/build_info.h"
+#include "tf-psa-crypto/build_info.h"

 #include <stddef.h>
 #include <stdint.h>

 /** SHA-1 input data was malformed. */
-#define MBEDTLS_ERR_SHA1_BAD_INPUT_DATA                   -0x0073
+#define MBEDTLS_ERR_SHA1_BAD_INPUT_DATA                   PSA_ERROR_INVALID_ARGUMENT

 #ifdef __cplusplus
 extern "C" {
 #endif

-#if !defined(MBEDTLS_SHA1_ALT)
-// Regular implementation
-//
-
 /**
  * \brief          The SHA-1 context structure.
  *
@@ -49,10 +45,7 @@ typedef struct mbedtls_sha1_context {
 }
 mbedtls_sha1_context;

-#else  /* MBEDTLS_SHA1_ALT */
-#include "sha1_alt.h"
-#endif /* MBEDTLS_SHA1_ALT */
-
+#if defined(MBEDTLS_DECLARE_PRIVATE_IDENTIFIERS)
 /**
  * \brief          This function initializes a SHA-1 context.
  *
@@ -150,24 +143,6 @@ int mbedtls_sha1_update(mbedtls_sha1_context *ctx,
 int mbedtls_sha1_finish(mbedtls_sha1_context *ctx,
                         unsigned char output[20]);

-/**
- * \brief          SHA-1 process data block (internal use only).
- *
- * \warning        SHA-1 is considered a weak message digest and its use
- *                 constitutes a security risk. We recommend considering
- *                 stronger message digests instead.
- *
- * \param ctx      The SHA-1 context to use. This must be initialized.
- * \param data     The data block being processed. This must be a
- *                 readable buffer of length \c 64 Bytes.
- *
- * \return         \c 0 on success.
- * \return         A negative error code on failure.
- *
- */
-int mbedtls_internal_sha1_process(mbedtls_sha1_context *ctx,
-                                  const unsigned char data[64]);
-
 /**
  * \brief          This function calculates the SHA-1 checksum of a buffer.
  *
@@ -212,6 +187,8 @@ int mbedtls_sha1_self_test(int verbose);

 #endif /* MBEDTLS_SELF_TEST */

+#endif /* MBEDTLS_DECLARE_PRIVATE_IDENTIFIERS */
+
 #ifdef __cplusplus
 }
 #endif
diff --git a/deps/LIEF/third-party/mbedtls/include/mbedtls/sha256.h b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/include/mbedtls/private/sha256.h
similarity index 87%
rename from deps/LIEF/third-party/mbedtls/include/mbedtls/sha256.h
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/include/mbedtls/private/sha256.h
index ca568e291ea..1697f8468d7 100644
--- a/deps/LIEF/third-party/mbedtls/include/mbedtls/sha256.h
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/include/mbedtls/private/sha256.h
@@ -14,22 +14,18 @@
 #define MBEDTLS_SHA256_H
 #include "mbedtls/private_access.h"

-#include "mbedtls/build_info.h"
+#include "tf-psa-crypto/build_info.h"

 #include <stddef.h>
 #include <stdint.h>

 /** SHA-256 input data was malformed. */
-#define MBEDTLS_ERR_SHA256_BAD_INPUT_DATA                 -0x0074
+#define MBEDTLS_ERR_SHA256_BAD_INPUT_DATA                 PSA_ERROR_INVALID_ARGUMENT

 #ifdef __cplusplus
 extern "C" {
 #endif

-#if !defined(MBEDTLS_SHA256_ALT)
-// Regular implementation
-//
-
 /**
  * \brief          The SHA-256 context structure.
  *
@@ -48,10 +44,7 @@ typedef struct mbedtls_sha256_context {
 }
 mbedtls_sha256_context;

-#else  /* MBEDTLS_SHA256_ALT */
-#include "sha256_alt.h"
-#endif /* MBEDTLS_SHA256_ALT */
-
+#if defined(MBEDTLS_DECLARE_PRIVATE_IDENTIFIERS)
 /**
  * \brief          This function initializes a SHA-256 context.
  *
@@ -127,21 +120,6 @@ int mbedtls_sha256_update(mbedtls_sha256_context *ctx,
 int mbedtls_sha256_finish(mbedtls_sha256_context *ctx,
                           unsigned char *output);

-/**
- * \brief          This function processes a single data block within
- *                 the ongoing SHA-256 computation. This function is for
- *                 internal use only.
- *
- * \param ctx      The SHA-256 context. This must be initialized.
- * \param data     The buffer holding one block of data. This must
- *                 be a readable buffer of length \c 64 Bytes.
- *
- * \return         \c 0 on success.
- * \return         A negative error code on failure.
- */
-int mbedtls_internal_sha256_process(mbedtls_sha256_context *ctx,
-                                    const unsigned char data[64]);
-
 /**
  * \brief          This function calculates the SHA-224 or SHA-256
  *                 checksum of a buffer.
@@ -193,6 +171,8 @@ int mbedtls_sha256_self_test(int verbose);

 #endif /* MBEDTLS_SELF_TEST */

+#endif /* MBEDTLS_DECLARE_PRIVATE_IDENTIFIERS */
+
 #ifdef __cplusplus
 }
 #endif
diff --git a/deps/LIEF/third-party/mbedtls/include/mbedtls/sha3.h b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/include/mbedtls/private/sha3.h
similarity index 94%
rename from deps/LIEF/third-party/mbedtls/include/mbedtls/sha3.h
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/include/mbedtls/private/sha3.h
index 3eeee65e66b..e1d5b951581 100644
--- a/deps/LIEF/third-party/mbedtls/include/mbedtls/sha3.h
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/include/mbedtls/private/sha3.h
@@ -16,7 +16,7 @@
 #define MBEDTLS_SHA3_H
 #include "mbedtls/private_access.h"

-#include "mbedtls/build_info.h"
+#include "tf-psa-crypto/build_info.h"

 #include <stddef.h>
 #include <stdint.h>
@@ -26,8 +26,9 @@ extern "C" {
 #endif

 /** SHA-3 input data was malformed. */
-#define MBEDTLS_ERR_SHA3_BAD_INPUT_DATA                 -0x0076
+#define MBEDTLS_ERR_SHA3_BAD_INPUT_DATA                 PSA_ERROR_INVALID_ARGUMENT

+#if defined(MBEDTLS_DECLARE_PRIVATE_IDENTIFIERS)
 /**
  * SHA-3 family id.
  *
@@ -41,6 +42,7 @@ typedef enum {
     MBEDTLS_SHA3_384, /*!< SHA3-384 */
     MBEDTLS_SHA3_512, /*!< SHA3-512 */
 } mbedtls_sha3_id;
+#endif /* MBEDTLS_DECLARE_PRIVATE_IDENTIFIERS */

 /**
  * \brief          The SHA-3 context structure.
@@ -55,6 +57,7 @@ typedef struct {
 }
 mbedtls_sha3_context;

+#if defined(MBEDTLS_DECLARE_PRIVATE_IDENTIFIERS)
 /**
  * \brief          This function initializes a SHA-3 context.
  *
@@ -165,6 +168,8 @@ int mbedtls_sha3(mbedtls_sha3_id id, const uint8_t *input,
 int mbedtls_sha3_self_test(int verbose);
 #endif /* MBEDTLS_SELF_TEST */

+#endif /* MBEDTLS_DECLARE_PRIVATE_IDENTIFIERS */
+
 #ifdef __cplusplus
 }
 #endif
diff --git a/deps/LIEF/third-party/mbedtls/include/mbedtls/sha512.h b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/include/mbedtls/private/sha512.h
similarity index 88%
rename from deps/LIEF/third-party/mbedtls/include/mbedtls/sha512.h
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/include/mbedtls/private/sha512.h
index 1c20e4c228d..fa803d4e440 100644
--- a/deps/LIEF/third-party/mbedtls/include/mbedtls/sha512.h
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/include/mbedtls/private/sha512.h
@@ -13,22 +13,18 @@
 #define MBEDTLS_SHA512_H
 #include "mbedtls/private_access.h"

-#include "mbedtls/build_info.h"
+#include "tf-psa-crypto/build_info.h"

 #include <stddef.h>
 #include <stdint.h>

 /** SHA-512 input data was malformed. */
-#define MBEDTLS_ERR_SHA512_BAD_INPUT_DATA                 -0x0075
+#define MBEDTLS_ERR_SHA512_BAD_INPUT_DATA                 PSA_ERROR_INVALID_ARGUMENT

 #ifdef __cplusplus
 extern "C" {
 #endif

-#if !defined(MBEDTLS_SHA512_ALT)
-// Regular implementation
-//
-
 /**
  * \brief          The SHA-512 context structure.
  *
@@ -47,10 +43,7 @@ typedef struct mbedtls_sha512_context {
 }
 mbedtls_sha512_context;

-#else  /* MBEDTLS_SHA512_ALT */
-#include "sha512_alt.h"
-#endif /* MBEDTLS_SHA512_ALT */
-
+#if defined(MBEDTLS_DECLARE_PRIVATE_IDENTIFIERS)
 /**
  * \brief          This function initializes a SHA-512 context.
  *
@@ -128,21 +121,6 @@ int mbedtls_sha512_update(mbedtls_sha512_context *ctx,
 int mbedtls_sha512_finish(mbedtls_sha512_context *ctx,
                           unsigned char *output);

-/**
- * \brief          This function processes a single data block within
- *                 the ongoing SHA-512 computation.
- *                 This function is for internal use only.
- *
- * \param ctx      The SHA-512 context. This must be initialized.
- * \param data     The buffer holding one block of data. This
- *                 must be a readable buffer of length \c 128 Bytes.
- *
- * \return         \c 0 on success.
- * \return         A negative error code on failure.
- */
-int mbedtls_internal_sha512_process(mbedtls_sha512_context *ctx,
-                                    const unsigned char data[128]);
-
 /**
  * \brief          This function calculates the SHA-512 or SHA-384
  *                 checksum of a buffer.
@@ -201,6 +179,8 @@ int mbedtls_sha512_self_test(int verbose);

 #endif /* MBEDTLS_SELF_TEST */

+#endif /* MBEDTLS_DECLARE_PRIVATE_IDENTIFIERS */
+
 #ifdef __cplusplus
 }
 #endif
diff --git a/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/include/mbedtls/private_access.h b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/include/mbedtls/private_access.h
new file mode 100644
index 00000000000..7232a914154
--- /dev/null
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/include/mbedtls/private_access.h
@@ -0,0 +1,53 @@
+/**
+ * \file private_access.h
+ *
+ * \brief Optionally activate declarations of private identifiers
+ *        in public headers.
+ *
+ * This header is reserved for internal use in TF-PSA-Crypto and Mbed TLS.
+ */
+/*
+ *  Copyright The Mbed TLS Contributors
+ *  SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+ */
+
+#ifndef MBEDTLS_PRIVATE_ACCESS_H
+#define MBEDTLS_PRIVATE_ACCESS_H
+
+#ifndef MBEDTLS_ALLOW_PRIVATE_ACCESS
+/* Public use: do not declare private identifiers. */
+
+/* Pseudo-hide an identifier (typically a struct or union member) by giving
+ * it the prefix `private_`.
+ *
+ * Typical usage:
+ * ```
+ * typedef struct {
+ *     int MBEDTLS_PRIVATE(foo); // private member (not part of the public API,
+ *                               // but part of the ABI)
+ *     int bar; // public member (covered by API stability guarantees)
+ * } mbedtls_some_type_t;
+ * ```
+ */
+#define MBEDTLS_PRIVATE(member) private_##member
+
+#else
+/* Private use: declare private identifiers. */
+
+#define MBEDTLS_PRIVATE(member) member
+
+/* Activate declarations guarded by this macro.
+ *
+ * Typical usage:
+ * ```
+ * typedef ... mbedtls_some_type_t; // built-in crypto type
+ * #if defined(MBEDTLS_DECLARE_PRIVATE_IDENTIFIERS)
+ * int mbedtls_some_function(...); // built-in crypto function
+ * #endif // MBEDTLS_DECLARE_PRIVATE_IDENTIFIERS
+ * ```
+ */
+#define MBEDTLS_DECLARE_PRIVATE_IDENTIFIERS
+
+#endif
+
+#endif /* MBEDTLS_PRIVATE_ACCESS_H */
diff --git a/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/CMakeLists.txt b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/CMakeLists.txt
new file mode 100644
index 00000000000..e69de29bb2d
diff --git a/deps/LIEF/third-party/mbedtls/library/aes.c b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/aes.c
similarity index 94%
rename from deps/LIEF/third-party/mbedtls/library/aes.c
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/aes.c
index b1a5c3ed104..0bb4ff48960 100644
--- a/deps/LIEF/third-party/mbedtls/library/aes.c
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/aes.c
@@ -11,16 +11,16 @@
  *  http://csrc.nist.gov/publications/fips/fips197/fips-197.pdf
  */

-#include "common.h"
+#include "tf_psa_crypto_common.h"

 #if defined(MBEDTLS_AES_C)

 #include <string.h>

-#include "mbedtls/aes.h"
+#include "mbedtls/private/aes.h"
 #include "mbedtls/platform.h"
 #include "mbedtls/platform_util.h"
-#include "mbedtls/error.h"
+#include "mbedtls/private/error_common.h"

 #if defined(MBEDTLS_AES_USE_HARDWARE_ONLY)
 #if !((defined(MBEDTLS_ARCH_IS_ARMV8_A) && defined(MBEDTLS_AESCE_C)) || \
@@ -30,21 +30,6 @@
 #endif
 #endif

-#if defined(MBEDTLS_ARCH_IS_X86)
-#if defined(MBEDTLS_PADLOCK_C)
-#if !defined(MBEDTLS_HAVE_ASM)
-#error "MBEDTLS_PADLOCK_C defined, but not all prerequisites"
-#endif
-#if defined(MBEDTLS_AES_USE_HARDWARE_ONLY)
-#error "MBEDTLS_AES_USE_HARDWARE_ONLY cannot be defined when " \
-    "MBEDTLS_PADLOCK_C is set"
-#endif
-#endif
-#endif
-
-#if defined(MBEDTLS_PADLOCK_C)
-#include "padlock.h"
-#endif
 #if defined(MBEDTLS_AESNI_C)
 #include "aesni.h"
 #endif
@@ -59,18 +44,10 @@
  * This is a convenience shorthand macro to check if we need reverse S-box and
  * reverse tables. It's private and only defined in this file.
  */
-#if (!defined(MBEDTLS_AES_DECRYPT_ALT) || \
-    (!defined(MBEDTLS_AES_SETKEY_DEC_ALT) && !defined(MBEDTLS_AES_USE_HARDWARE_ONLY))) && \
-    !defined(MBEDTLS_BLOCK_CIPHER_NO_DECRYPT)
+#if !defined(MBEDTLS_BLOCK_CIPHER_NO_DECRYPT)
 #define MBEDTLS_AES_NEED_REVERSE_TABLES
 #endif

-#if !defined(MBEDTLS_AES_ALT)
-
-#if defined(MBEDTLS_VIA_PADLOCK_HAVE_CODE)
-static int aes_padlock_ace = -1;
-#endif
-
 #if defined(MBEDTLS_AES_ROM_TABLES)
 /*
  * Forward S-box
@@ -503,6 +480,30 @@ void mbedtls_aes_free(mbedtls_aes_context *ctx)
     mbedtls_platform_zeroize(ctx, sizeof(mbedtls_aes_context));
 }

+mbedtls_aes_implementation mbedtls_aes_get_implementation(void)
+{
+#if defined(MBEDTLS_AESNI_HAVE_CODE)
+    if (mbedtls_aesni_has_support(MBEDTLS_AESNI_AES)) {
+#if MBEDTLS_AESNI_HAVE_CODE == 1
+        return MBEDTLS_AES_IMP_AESNI_ASM;
+#elif MBEDTLS_AESNI_HAVE_CODE == 2
+        return MBEDTLS_AES_IMP_AESNI_INTRINSICS;
+#endif /* MBEDTLS_AESNI_HAVE_CODE == 1 || 2 */
+    }
+#endif /* MBEDTLS_AESNI_HAVE_CODE */
+
+#if defined(MBEDTLS_AESCE_HAVE_CODE)
+    if (MBEDTLS_AESCE_HAS_SUPPORT()) {
+        return MBEDTLS_AES_IMP_AESCE;
+    }
+#endif
+
+#if !defined(MBEDTLS_AES_USE_HARDWARE_ONLY)
+    return MBEDTLS_AES_IMP_SOFTWARE;
+#endif
+    return MBEDTLS_AES_IMP_UNKNOWN;
+}
+
 #if defined(MBEDTLS_CIPHER_MODE_XTS)
 void mbedtls_aes_xts_init(mbedtls_aes_xts_context *ctx)
 {
@@ -527,8 +528,7 @@ void mbedtls_aes_xts_free(mbedtls_aes_xts_context *ctx)
  * Note that the offset is in units of elements of buf, i.e. 32-bit words,
  * i.e. an offset of 1 means 4 bytes and so on.
  */
-#if (defined(MBEDTLS_VIA_PADLOCK_HAVE_CODE)) ||        \
-    (defined(MBEDTLS_AESNI_C) && MBEDTLS_AESNI_HAVE_CODE == 2)
+#if defined(MBEDTLS_AESNI_C) && MBEDTLS_AESNI_HAVE_CODE == 2
 #define MAY_NEED_TO_ALIGN
 #endif

@@ -537,15 +537,6 @@ MBEDTLS_MAYBE_UNUSED static unsigned mbedtls_aes_rk_offset(uint32_t *buf)
 #if defined(MAY_NEED_TO_ALIGN)
     int align_16_bytes = 0;

-#if defined(MBEDTLS_VIA_PADLOCK_HAVE_CODE)
-    if (aes_padlock_ace == -1) {
-        aes_padlock_ace = mbedtls_padlock_has_support(MBEDTLS_PADLOCK_ACE);
-    }
-    if (aes_padlock_ace) {
-        align_16_bytes = 1;
-    }
-#endif
-
 #if defined(MBEDTLS_AESNI_C) && MBEDTLS_AESNI_HAVE_CODE == 2
     if (mbedtls_aesni_has_support(MBEDTLS_AESNI_AES)) {
         align_16_bytes = 1;
@@ -572,7 +563,6 @@ MBEDTLS_MAYBE_UNUSED static unsigned mbedtls_aes_rk_offset(uint32_t *buf)
 /*
  * AES key schedule (encryption)
  */
-#if !defined(MBEDTLS_AES_SETKEY_ENC_ALT)
 int mbedtls_aes_setkey_enc(mbedtls_aes_context *ctx, const unsigned char *key,
                            unsigned int keybits)
 {
@@ -678,12 +668,11 @@ int mbedtls_aes_setkey_enc(mbedtls_aes_context *ctx, const unsigned char *key,
     return 0;
 #endif /* !MBEDTLS_AES_USE_HARDWARE_ONLY */
 }
-#endif /* !MBEDTLS_AES_SETKEY_ENC_ALT */

 /*
  * AES key schedule (decryption)
  */
-#if !defined(MBEDTLS_AES_SETKEY_DEC_ALT) && !defined(MBEDTLS_BLOCK_CIPHER_NO_DECRYPT)
+#if !defined(MBEDTLS_BLOCK_CIPHER_NO_DECRYPT)
 int mbedtls_aes_setkey_dec(mbedtls_aes_context *ctx, const unsigned char *key,
                            unsigned int keybits)
 {
@@ -752,7 +741,7 @@ exit:

     return ret;
 }
-#endif /* !MBEDTLS_AES_SETKEY_DEC_ALT && !MBEDTLS_BLOCK_CIPHER_NO_DECRYPT */
+#endif /* !MBEDTLS_BLOCK_CIPHER_NO_DECRYPT */

 #if defined(MBEDTLS_CIPHER_MODE_XTS)
 static int mbedtls_aes_xts_decode_keys(const unsigned char *key,
@@ -876,13 +865,14 @@ int mbedtls_aes_xts_setkey_dec(mbedtls_aes_xts_context *ctx,
                AES_RT3(MBEDTLS_BYTE_3(Y0));     \
     } while (0)

+#if !defined(MBEDTLS_AES_USE_HARDWARE_ONLY)
 /*
  * AES-ECB block encryption
  */
-#if !defined(MBEDTLS_AES_ENCRYPT_ALT)
-int mbedtls_internal_aes_encrypt(mbedtls_aes_context *ctx,
-                                 const unsigned char input[16],
-                                 unsigned char output[16])
+MBEDTLS_CHECK_RETURN_TYPICAL
+static int mbedtls_internal_aes_encrypt(mbedtls_aes_context *ctx,
+                                        const unsigned char input[16],
+                                        unsigned char output[16])
 {
     int i;
     uint32_t *RK = ctx->buf + ctx->rk_offset;
@@ -936,15 +926,15 @@ int mbedtls_internal_aes_encrypt(mbedtls_aes_context *ctx,

     return 0;
 }
-#endif /* !MBEDTLS_AES_ENCRYPT_ALT */

+#if !defined(MBEDTLS_BLOCK_CIPHER_NO_DECRYPT)
 /*
  * AES-ECB block decryption
  */
-#if !defined(MBEDTLS_AES_DECRYPT_ALT) && !defined(MBEDTLS_BLOCK_CIPHER_NO_DECRYPT)
-int mbedtls_internal_aes_decrypt(mbedtls_aes_context *ctx,
-                                 const unsigned char input[16],
-                                 unsigned char output[16])
+MBEDTLS_CHECK_RETURN_TYPICAL
+static int mbedtls_internal_aes_decrypt(mbedtls_aes_context *ctx,
+                                        const unsigned char input[16],
+                                        unsigned char output[16])
 {
     int i;
     uint32_t *RK = ctx->buf + ctx->rk_offset;
@@ -998,15 +988,17 @@ int mbedtls_internal_aes_decrypt(mbedtls_aes_context *ctx,

     return 0;
 }
-#endif /* !MBEDTLS_AES_DECRYPT_ALT && !MBEDTLS_BLOCK_CIPHER_NO_DECRYPT */
-
-/* VIA Padlock and our intrinsics-based implementation of AESNI require
- * the round keys to be aligned on a 16-byte boundary. We take care of this
- * before creating them, but the AES context may have moved (this can happen
- * if the library is called from a language with managed memory), and in later
- * calls it might have a different alignment with respect to 16-byte memory.
- * So we may need to realign.
+#endif /* !MBEDTLS_BLOCK_CIPHER_NO_DECRYPT */
+#endif /* !MBEDTLS_AES_USE_HARDWARE_ONLY */
+/*
+ * Our intrinsics-based implementation of AESNI requires the round keys to be
+ * aligned on a 16-byte boundary. We take care of this before creating them,
+ * but the AES context may have moved (this can happen if the library is
+ * called from a language with managed memory), and in later calls it might
+ * have a different alignment with respect to 16-byte memory. So we may need
+ * to realign.
  */
+#if defined(MAY_NEED_TO_ALIGN)
 MBEDTLS_MAYBE_UNUSED static void aes_maybe_realign(mbedtls_aes_context *ctx)
 {
     unsigned new_offset = mbedtls_aes_rk_offset(ctx->buf);
@@ -1017,7 +1009,7 @@ MBEDTLS_MAYBE_UNUSED static void aes_maybe_realign(mbedtls_aes_context *ctx)
         ctx->rk_offset = new_offset;
     }
 }
-
+#endif /* MAY_NEED_TO_ALIGN */
 /*
  * AES-ECB block encryption/decryption
  */
@@ -1046,12 +1038,6 @@ int mbedtls_aes_crypt_ecb(mbedtls_aes_context *ctx,
     }
 #endif

-#if defined(MBEDTLS_VIA_PADLOCK_HAVE_CODE)
-    if (aes_padlock_ace > 0) {
-        return mbedtls_padlock_xcryptecb(ctx, mode, input, output);
-    }
-#endif
-
 #if !defined(MBEDTLS_AES_USE_HARDWARE_ONLY)
 #if !defined(MBEDTLS_BLOCK_CIPHER_NO_DECRYPT)
     if (mode == MBEDTLS_AES_DECRYPT) {
@@ -1092,18 +1078,6 @@ int mbedtls_aes_crypt_cbc(mbedtls_aes_context *ctx,
         return MBEDTLS_ERR_AES_INVALID_INPUT_LENGTH;
     }

-#if defined(MBEDTLS_VIA_PADLOCK_HAVE_CODE)
-    if (aes_padlock_ace > 0) {
-        if (mbedtls_padlock_xcryptcbc(ctx, mode, length, iv, input, output) == 0) {
-            return 0;
-        }
-
-        // If padlock data misaligned, we just fall back to
-        // unaccelerated mode
-        //
-    }
-#endif
-
     const unsigned char *ivp = iv;

     if (mode == MBEDTLS_AES_DECRYPT) {
@@ -1481,8 +1455,6 @@ exit:
 }
 #endif /* MBEDTLS_CIPHER_MODE_CTR */

-#endif /* !MBEDTLS_AES_ALT */
-
 #if defined(MBEDTLS_SELF_TEST)
 /*
  * AES test vectors from:
@@ -1845,37 +1817,25 @@ int mbedtls_aes_self_test(int verbose)
     mbedtls_aes_init(&ctx);

     if (verbose != 0) {
-#if defined(MBEDTLS_AES_ALT)
-        mbedtls_printf("  AES note: alternative implementation.\n");
-#else /* MBEDTLS_AES_ALT */
-#if defined(MBEDTLS_AESNI_HAVE_CODE)
-#if MBEDTLS_AESNI_HAVE_CODE == 1
-        mbedtls_printf("  AES note: AESNI code present (assembly implementation).\n");
-#elif MBEDTLS_AESNI_HAVE_CODE == 2
-        mbedtls_printf("  AES note: AESNI code present (intrinsics implementation).\n");
-#else
-#error "Unrecognised value for MBEDTLS_AESNI_HAVE_CODE"
-#endif
-        if (mbedtls_aesni_has_support(MBEDTLS_AESNI_AES)) {
-            mbedtls_printf("  AES note: using AESNI.\n");
-        } else
-#endif
-#if defined(MBEDTLS_VIA_PADLOCK_HAVE_CODE)
-        if (mbedtls_padlock_has_support(MBEDTLS_PADLOCK_ACE)) {
-            mbedtls_printf("  AES note: using VIA Padlock.\n");
-        } else
-#endif
-#if defined(MBEDTLS_AESCE_HAVE_CODE)
-        if (MBEDTLS_AESCE_HAS_SUPPORT()) {
-            mbedtls_printf("  AES note: using AESCE.\n");
-        } else
-#endif
-        {
-#if !defined(MBEDTLS_AES_USE_HARDWARE_ONLY)
-            mbedtls_printf("  AES note: built-in implementation.\n");
-#endif
+        mbedtls_aes_implementation aes_imp = mbedtls_aes_get_implementation();
+        switch (aes_imp) {
+            case MBEDTLS_AES_IMP_AESNI_ASM:
+                mbedtls_printf("  AES note: AESNI code present (assembly implementation).\n");
+                mbedtls_printf("  AES note: using AESNI.\n");
+                break;
+            case MBEDTLS_AES_IMP_AESNI_INTRINSICS:
+                mbedtls_printf("  AES note: AESNI code present (intrinsics implementation).\n");
+                mbedtls_printf("  AES note: using AESNI.\n");
+                break;
+            case MBEDTLS_AES_IMP_AESCE:
+                mbedtls_printf("  AES note: using AESCE.\n");
+                break;
+            case MBEDTLS_AES_IMP_SOFTWARE:
+                mbedtls_printf("  AES note: built-in implementation.\n");
+                break;
+            case MBEDTLS_AES_IMP_UNKNOWN:
+                break;
         }
-#endif /* MBEDTLS_AES_ALT */
     }

     /*
@@ -1916,11 +1876,6 @@ int mbedtls_aes_self_test(int verbose)
                 aes_tests = aes_test_ecb_enc[u];
             }

-            /*
-             * AES-192 is an optional feature that may be unavailable when
-             * there is an alternative underlying implementation i.e. when
-             * MBEDTLS_AES_ALT is defined.
-             */
             if (ret == MBEDTLS_ERR_PLATFORM_FEATURE_UNSUPPORTED && keybits == 192) {
                 mbedtls_printf("skipped\n");
                 continue;
@@ -1980,11 +1935,6 @@ int mbedtls_aes_self_test(int verbose)
                 aes_tests = aes_test_cbc_enc[u];
             }

-            /*
-             * AES-192 is an optional feature that may be unavailable when
-             * there is an alternative underlying implementation i.e. when
-             * MBEDTLS_AES_ALT is defined.
-             */
             if (ret == MBEDTLS_ERR_PLATFORM_FEATURE_UNSUPPORTED && keybits == 192) {
                 mbedtls_printf("skipped\n");
                 continue;
@@ -2047,11 +1997,7 @@ int mbedtls_aes_self_test(int verbose)

             offset = 0;
             ret = mbedtls_aes_setkey_enc(&ctx, key, keybits);
-            /*
-             * AES-192 is an optional feature that may be unavailable when
-             * there is an alternative underlying implementation i.e. when
-             * MBEDTLS_AES_ALT is defined.
-             */
+
             if (ret == MBEDTLS_ERR_PLATFORM_FEATURE_UNSUPPORTED && keybits == 192) {
                 mbedtls_printf("skipped\n");
                 continue;
@@ -2111,11 +2057,7 @@ int mbedtls_aes_self_test(int verbose)

             offset = 0;
             ret = mbedtls_aes_setkey_enc(&ctx, key, keybits);
-            /*
-             * AES-192 is an optional feature that may be unavailable when
-             * there is an alternative underlying implementation i.e. when
-             * MBEDTLS_AES_ALT is defined.
-             */
+
             if (ret == MBEDTLS_ERR_PLATFORM_FEATURE_UNSUPPORTED && keybits == 192) {
                 mbedtls_printf("skipped\n");
                 continue;
diff --git a/deps/LIEF/third-party/mbedtls/library/aesce.c b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/aesce.c
similarity index 99%
rename from deps/LIEF/third-party/mbedtls/library/aesce.c
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/aesce.c
index 6a9e0a1c6bd..f12f86c4d30 100644
--- a/deps/LIEF/third-party/mbedtls/library/aesce.c
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/aesce.c
@@ -23,7 +23,7 @@
  * By defining the macros ourselves we gain access to those declarations without
  * requiring -march on the command line.
  *
- * `arm_neon.h` is included by common.h, so we put these defines
+ * `arm_neon.h` is included by tf_psa_crypto_common.h, so we put these defines
  * at the top of this file, before any includes.
  */
 #define __ARM_FEATURE_CRYPTO 1
@@ -39,7 +39,7 @@
 #endif /* defined(__clang__) &&  (__clang_major__ >= 4) */

 #include <string.h>
-#include "common.h"
+#include "tf_psa_crypto_common.h"

 #if defined(MBEDTLS_AESCE_C)

diff --git a/deps/LIEF/third-party/mbedtls/library/aesce.h b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/aesce.h
similarity index 98%
rename from deps/LIEF/third-party/mbedtls/library/aesce.h
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/aesce.h
index a14d085efa2..ba8fccb3f0c 100644
--- a/deps/LIEF/third-party/mbedtls/library/aesce.h
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/aesce.h
@@ -14,10 +14,9 @@
 #ifndef MBEDTLS_AESCE_H
 #define MBEDTLS_AESCE_H

-#include "mbedtls/build_info.h"
-#include "common.h"
+#include "tf_psa_crypto_common.h"

-#include "mbedtls/aes.h"
+#include "mbedtls/private/aes.h"


 #if defined(MBEDTLS_AESCE_C) \
diff --git a/deps/LIEF/third-party/mbedtls/library/aesni.c b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/aesni.c
similarity index 99%
rename from deps/LIEF/third-party/mbedtls/library/aesni.c
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/aesni.c
index 2857068244d..dc4bd5d80c7 100644
--- a/deps/LIEF/third-party/mbedtls/library/aesni.c
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/aesni.c
@@ -10,7 +10,7 @@
  * [CLMUL-WP] https://www.intel.com/content/www/us/en/develop/download/intel-carry-less-multiplication-instruction-and-its-usage-for-computing-the-gcm-mode.html
  */

-#include "common.h"
+#include "tf_psa_crypto_common.h"

 #if defined(MBEDTLS_AESNI_C)

diff --git a/deps/LIEF/third-party/mbedtls/library/aesni.h b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/aesni.h
similarity index 98%
rename from deps/LIEF/third-party/mbedtls/library/aesni.h
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/aesni.h
index 59e27afd3ec..d48cf298edf 100644
--- a/deps/LIEF/third-party/mbedtls/library/aesni.h
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/aesni.h
@@ -13,9 +13,9 @@
 #ifndef MBEDTLS_AESNI_H
 #define MBEDTLS_AESNI_H

-#include "mbedtls/build_info.h"
+#include "tf-psa-crypto/build_info.h"

-#include "mbedtls/aes.h"
+#include "mbedtls/private/aes.h"

 #define MBEDTLS_AESNI_AES      0x02000000u
 #define MBEDTLS_AESNI_CLMUL    0x00000002u
diff --git a/deps/LIEF/third-party/mbedtls/library/aria.c b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/aria.c
similarity index 99%
rename from deps/LIEF/third-party/mbedtls/library/aria.c
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/aria.c
index d9f84cc59d7..da56de7b940 100644
--- a/deps/LIEF/third-party/mbedtls/library/aria.c
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/aria.c
@@ -11,18 +11,16 @@
  * [2] https://tools.ietf.org/html/rfc5794
  */

-#include "common.h"
+#include "tf_psa_crypto_common.h"

 #if defined(MBEDTLS_ARIA_C)

-#include "mbedtls/aria.h"
+#include "mbedtls/private/aria.h"

 #include <string.h>

 #include "mbedtls/platform.h"

-#if !defined(MBEDTLS_ARIA_ALT)
-
 #include "mbedtls/platform_util.h"

 /*
@@ -657,7 +655,6 @@ int mbedtls_aria_crypt_ctr(mbedtls_aria_context *ctx,
     return 0;
 }
 #endif /* MBEDTLS_CIPHER_MODE_CTR */
-#endif /* !MBEDTLS_ARIA_ALT */

 #if defined(MBEDTLS_SELF_TEST)

diff --git a/deps/LIEF/third-party/mbedtls/library/asn1parse.c b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/asn1parse.c
similarity index 87%
rename from deps/LIEF/third-party/mbedtls/library/asn1parse.c
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/asn1parse.c
index e33fdf71da6..46e62d72a94 100644
--- a/deps/LIEF/third-party/mbedtls/library/asn1parse.c
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/asn1parse.c
@@ -5,19 +5,19 @@
  *  SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
  */

-#include "common.h"
+#include "tf_psa_crypto_common.h"

-#if defined(MBEDTLS_ASN1_PARSE_C) || defined(MBEDTLS_X509_CREATE_C) || \
-    defined(MBEDTLS_PSA_UTIL_HAVE_ECDSA)
+#if defined(MBEDTLS_ASN1_PARSE_C) || defined(MBEDTLS_ASN1_WRITE_C) || \
+    defined(PSA_HAVE_ALG_SOME_ECDSA)

 #include "mbedtls/asn1.h"
 #include "mbedtls/platform_util.h"
-#include "mbedtls/error.h"
+#include "mbedtls/private/error_common.h"

 #include <string.h>

 #if defined(MBEDTLS_BIGNUM_C)
-#include "mbedtls/bignum.h"
+#include "mbedtls/private/bignum.h"
 #endif

 #include "mbedtls/platform.h"
@@ -74,7 +74,7 @@ int mbedtls_asn1_get_tag(unsigned char **p,

     return mbedtls_asn1_get_len(p, end, len);
 }
-#endif /* MBEDTLS_ASN1_PARSE_C || MBEDTLS_X509_CREATE_C || MBEDTLS_PSA_UTIL_HAVE_ECDSA */
+#endif /* MBEDTLS_ASN1_PARSE_C || MBEDTLS_ASN1_WRITE_C || PSA_HAVE_ALG_SOME_ECDSA */

 #if defined(MBEDTLS_ASN1_PARSE_C)
 int mbedtls_asn1_get_bool(unsigned char **p,
@@ -179,6 +179,55 @@ int mbedtls_asn1_get_mpi(unsigned char **p,
 }
 #endif /* MBEDTLS_BIGNUM_C */

+int mbedtls_asn1_get_integer(unsigned char **p, const unsigned char *end,
+                             unsigned char **head, size_t *length)
+{
+    int ret;
+    size_t integer_length;
+    unsigned char *start = *p;
+
+    *length = 0;
+    *head = NULL;
+
+    if ((ret = mbedtls_asn1_get_tag(p, end, &integer_length, MBEDTLS_ASN1_INTEGER)) != 0) {
+        *p = start;
+        return ret;
+    }
+
+    if (integer_length == 0) {
+        *p = start;
+        return MBEDTLS_ERR_ASN1_INVALID_DATA;
+    }
+
+    const int negative = ((**p & 0x80) != 0);
+
+    if (negative) {
+        *p = start;
+        return MBEDTLS_ERR_ASN1_INVALID_DATA;
+    }
+
+    /* Check that the integer is not overlong-encoded. We know that it is not
+     * negative so it is only overlong-encoded if the first byte is zero and
+     * the top bit of the second byte is also zero. */
+    if ((integer_length >= 2) &&
+        ((*p)[0] == 0) &&
+        (((*p)[1] & 0x80) == 0)) {
+        *p = start;
+        return MBEDTLS_ERR_ASN1_INVALID_DATA;
+    }
+
+    *head = *p;
+    *p += integer_length;
+    *length = integer_length;
+
+    if ((*head)[0] == 0) {
+        (*head)++;
+        (*length)--;
+    }
+
+    return 0;
+}
+
 int mbedtls_asn1_get_bitstring(unsigned char **p, const unsigned char *end,
                                mbedtls_asn1_bitstring *bs)
 {
@@ -416,20 +465,6 @@ int mbedtls_asn1_get_alg_null(unsigned char **p,
     return 0;
 }

-#if !defined(MBEDTLS_DEPRECATED_REMOVED)
-void mbedtls_asn1_free_named_data(mbedtls_asn1_named_data *cur)
-{
-    if (cur == NULL) {
-        return;
-    }
-
-    mbedtls_free(cur->oid.p);
-    mbedtls_free(cur->val.p);
-
-    mbedtls_platform_zeroize(cur, sizeof(mbedtls_asn1_named_data));
-}
-#endif /* MBEDTLS_DEPRECATED_REMOVED */
-
 void mbedtls_asn1_free_named_data_list(mbedtls_asn1_named_data **head)
 {
     mbedtls_asn1_named_data *cur;
diff --git a/deps/LIEF/third-party/mbedtls/library/asn1write.c b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/asn1write.c
similarity index 84%
rename from deps/LIEF/third-party/mbedtls/library/asn1write.c
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/asn1write.c
index 97f9db039be..dbbb97a70c9 100644
--- a/deps/LIEF/third-party/mbedtls/library/asn1write.c
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/asn1write.c
@@ -5,13 +5,14 @@
  *  SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
  */

-#include "common.h"
+#include "tf_psa_crypto_common.h"

-#if defined(MBEDTLS_ASN1_WRITE_C) || defined(MBEDTLS_X509_USE_C) || \
-    defined(MBEDTLS_PSA_UTIL_HAVE_ECDSA)
+#if defined(MBEDTLS_ASN1_WRITE_C) || defined(MBEDTLS_ASN1_PARSE_C) || \
+    defined(PSA_HAVE_ALG_SOME_ECDSA)

 #include "mbedtls/asn1write.h"
-#include "mbedtls/error.h"
+#include "bignum_core.h"
+#include "mbedtls/private/error_common.h"

 #include <string.h>

@@ -63,7 +64,7 @@ int mbedtls_asn1_write_tag(unsigned char **p, const unsigned char *start, unsign

     return 1;
 }
-#endif /* MBEDTLS_ASN1_WRITE_C || MBEDTLS_X509_USE_C || MBEDTLS_PSA_UTIL_HAVE_ECDSA */
+#endif /* MBEDTLS_ASN1_WRITE_C || MBEDTLS_ASN1_PARSE_C || PSA_HAVE_ALG_SOME_ECDSA */

 #if defined(MBEDTLS_ASN1_WRITE_C)
 static int mbedtls_asn1_write_len_and_tag(unsigned char **p,
@@ -437,4 +438,70 @@ mbedtls_asn1_named_data *mbedtls_asn1_store_named_data(

     return cur;
 }
+
+int mbedtls_asn1_write_integer(unsigned char **p,
+                               unsigned char *start,
+                               const unsigned char *integer,
+                               size_t integer_length)
+{
+
+    int asn1_frame_size = 0;
+    unsigned int number_of_leading_zeros = 0;
+    size_t output_buffer_size = (*p-start);
+    const unsigned char *integer_start = NULL;
+
+    // asn1 specifies that the bignum must be encoded in the minimum allowable space, so leading zeros must be removed.
+    while ((number_of_leading_zeros < integer_length)
+           && (integer[number_of_leading_zeros] == 0x0)) {
+        number_of_leading_zeros++;
+    }
+
+    if (integer != NULL) {
+        integer_start = integer + number_of_leading_zeros;
+    }
+
+    integer_length -= number_of_leading_zeros;
+
+    if (output_buffer_size < integer_length) {
+        return MBEDTLS_ERR_ASN1_BUF_TOO_SMALL;//TC3 buffer less than integer size.
+    }
+
+    memset(start, 0, output_buffer_size);
+
+    /* Special case - if integer_length is zero, the value is zero and it
+     * should be encoded as one byte. */
+    if (integer_length == 0) {
+        if (output_buffer_size < 1) {
+            return MBEDTLS_ERR_ASN1_BUF_TOO_SMALL;
+        }
+
+        *p -= 1;
+        integer_length = 1;
+
+    } else {
+
+        *p -= integer_length;
+
+        memcpy(*p, integer_start, integer_length);
+
+        // DER format assumes 2s complement for numbers, so the leftmost bit
+        // should be 0.
+        if (**p & 0x80) {
+            if (*p - start < 1) {
+                return MBEDTLS_ERR_ASN1_BUF_TOO_SMALL;
+            }
+
+            *--(*p) = 0x00;
+            integer_length += 1;
+        }
+    }
+
+    asn1_frame_size =
+        mbedtls_asn1_write_len_and_tag(p, start, integer_length, MBEDTLS_ASN1_INTEGER);
+    if (asn1_frame_size < 0) {
+        return asn1_frame_size;//TC4 mbedtls_asn1_write_len_and_tag failed.
+    }
+
+    return asn1_frame_size;
+}
 #endif /* MBEDTLS_ASN1_WRITE_C */
diff --git a/deps/LIEF/third-party/mbedtls/library/base64.c b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/base64.c
similarity index 99%
rename from deps/LIEF/third-party/mbedtls/library/base64.c
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/base64.c
index 388fa9f388e..4ccadc588c9 100644
--- a/deps/LIEF/third-party/mbedtls/library/base64.c
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/base64.c
@@ -7,14 +7,14 @@

 #include <limits.h>

-#include "common.h"
+#include "tf_psa_crypto_common.h"

 #if defined(MBEDTLS_BASE64_C)

 #include "mbedtls/base64.h"
 #include "base64_internal.h"
 #include "constant_time_internal.h"
-#include "mbedtls/error.h"
+#include "mbedtls/private/error_common.h"

 #include <stdint.h>

diff --git a/deps/LIEF/third-party/mbedtls/library/base64_internal.h b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/base64_internal.h
similarity index 97%
rename from deps/LIEF/third-party/mbedtls/library/base64_internal.h
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/base64_internal.h
index a09bd237771..ee7f2325b99 100644
--- a/deps/LIEF/third-party/mbedtls/library/base64_internal.h
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/base64_internal.h
@@ -11,7 +11,7 @@
 #ifndef MBEDTLS_BASE64_INTERNAL
 #define MBEDTLS_BASE64_INTERNAL

-#include "common.h"
+#include "tf_psa_crypto_common.h"

 #if defined(MBEDTLS_TEST_HOOKS)

diff --git a/deps/LIEF/third-party/mbedtls/library/bignum.c b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/bignum.c
similarity index 88%
rename from deps/LIEF/third-party/mbedtls/library/bignum.c
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/bignum.c
index 424490951d9..a8312de6e67 100644
--- a/deps/LIEF/third-party/mbedtls/library/bignum.c
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/bignum.c
@@ -21,16 +21,16 @@
  *
  */

-#include "common.h"
+#include "tf_psa_crypto_common.h"

 #if defined(MBEDTLS_BIGNUM_C)

-#include "mbedtls/bignum.h"
+#include "mbedtls/private/bignum.h"
 #include "bignum_core.h"
 #include "bignum_internal.h"
 #include "bn_mul.h"
 #include "mbedtls/platform_util.h"
-#include "mbedtls/error.h"
+#include "mbedtls/private/error_common.h"
 #include "constant_time_internal.h"

 #include <limits.h>
@@ -430,13 +430,6 @@ cleanup:
     return ret;
 }

-/*
- * Return the number of less significant zero-bits
- */
-size_t mbedtls_mpi_lsb(const mbedtls_mpi *X)
-{
-    size_t i;
-
 #if defined(__has_builtin)
 #if (MBEDTLS_MPI_UINT_MAX == UINT_MAX) && __has_builtin(__builtin_ctz)
     #define mbedtls_mpi_uint_ctz __builtin_ctz
@@ -447,22 +440,34 @@ size_t mbedtls_mpi_lsb(const mbedtls_mpi *X)
 #endif
 #endif

-#if defined(mbedtls_mpi_uint_ctz)
+#if !defined(mbedtls_mpi_uint_ctz)
+static size_t mbedtls_mpi_uint_ctz(mbedtls_mpi_uint x)
+{
+    size_t count = 0;
+    mbedtls_ct_condition_t done = MBEDTLS_CT_FALSE;
+
+    for (size_t i = 0; i < biL; i++) {
+        mbedtls_ct_condition_t non_zero = mbedtls_ct_bool((x >> i) & 1);
+        done = mbedtls_ct_bool_or(done, non_zero);
+        count = mbedtls_ct_size_if(done, count, i + 1);
+    }
+
+    return count;
+}
+#endif
+
+/*
+ * Return the number of less significant zero-bits
+ */
+size_t mbedtls_mpi_lsb(const mbedtls_mpi *X)
+{
+    size_t i;
+
     for (i = 0; i < X->n; i++) {
         if (X->p[i] != 0) {
             return i * biL + mbedtls_mpi_uint_ctz(X->p[i]);
         }
     }
-#else
-    size_t count = 0;
-    for (i = 0; i < X->n; i++) {
-        for (size_t j = 0; j < biL; j++, count++) {
-            if (((X->p[i] >> j) & 1) != 0) {
-                return count;
-            }
-        }
-    }
-#endif

     return 0;
 }
@@ -1743,104 +1748,122 @@ int mbedtls_mpi_exp_mod_unsafe(mbedtls_mpi *X, const mbedtls_mpi *A,
     return mbedtls_mpi_exp_mod_optionally_safe(X, A, E, MBEDTLS_MPI_IS_PUBLIC, N, prec_RR);
 }

+/* Constant-time GCD and/or modinv with odd modulus and A <= N */
+int mbedtls_mpi_gcd_modinv_odd(mbedtls_mpi *G,
+                               mbedtls_mpi *I,
+                               const mbedtls_mpi *A,
+                               const mbedtls_mpi *N)
+{
+    int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
+    mbedtls_mpi local_g;
+    mbedtls_mpi_uint *T = NULL;
+    const size_t T_factor = I != NULL ? 5 : 4;
+    const mbedtls_mpi_uint zero = 0;
+
+    /* Check requirements on A and N */
+    if (mbedtls_mpi_cmp_int(A, 0) < 0 ||
+        mbedtls_mpi_cmp_mpi(A, N) > 0 ||
+        mbedtls_mpi_get_bit(N, 0) != 1 ||
+        (I != NULL && mbedtls_mpi_cmp_int(N, 1) == 0)) {
+        return MBEDTLS_ERR_MPI_BAD_INPUT_DATA;
+    }
+
+    /* Check aliasing requirements */
+    if (A == N || (I != NULL && (I == N || G == N))) {
+        return MBEDTLS_ERR_MPI_BAD_INPUT_DATA;
+    }
+
+    mbedtls_mpi_init(&local_g);
+
+    if (G == NULL) {
+        G = &local_g;
+    }
+
+    /* We can't modify the values of G or I before use in the main function,
+     * as they could be aliased to A or N. */
+    MBEDTLS_MPI_CHK(mbedtls_mpi_grow(G, N->n));
+    if (I != NULL) {
+        MBEDTLS_MPI_CHK(mbedtls_mpi_grow(I, N->n));
+    }
+
+    T = mbedtls_calloc(sizeof(mbedtls_mpi_uint) * N->n, T_factor);
+    if (T == NULL) {
+        ret = MBEDTLS_ERR_MPI_ALLOC_FAILED;
+        goto cleanup;
+    }
+
+    mbedtls_mpi_uint *Ip = I != NULL ? I->p : NULL;
+    /* If A is 0 (null), then A->p would be null, and A->n would be 0,
+     * which would be an issue if A->p and A->n were passed to
+     * mbedtls_mpi_core_gcd_modinv_odd below. */
+    const mbedtls_mpi_uint *Ap = A->p != NULL ? A->p : &zero;
+    size_t An = A->n >= N->n ? N->n : A->p != NULL ? A->n : 1;
+    mbedtls_mpi_core_gcd_modinv_odd(G->p, Ip, Ap, An, N->p, N->n, T);
+
+    G->s = 1;
+    if (I != NULL) {
+        I->s = 1;
+    }
+
+    if (G->n > N->n) {
+        memset(G->p + N->n, 0, ciL * (G->n - N->n));
+    }
+    if (I != NULL && I->n > N->n) {
+        memset(I->p + N->n, 0, ciL * (I->n - N->n));
+    }
+
+cleanup:
+    mbedtls_mpi_free(&local_g);
+    mbedtls_free(T);
+    return ret;
+}
+
 /*
- * Greatest common divisor: G = gcd(A, B)  (HAC 14.54)
+ * Greatest common divisor: G = gcd(A, B)
+ * Wrapper around mbedtls_mpi_gcd_modinv() that removes its restrictions.
  */
 int mbedtls_mpi_gcd(mbedtls_mpi *G, const mbedtls_mpi *A, const mbedtls_mpi *B)
 {
     int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
-    size_t lz, lzt;
     mbedtls_mpi TA, TB;

     mbedtls_mpi_init(&TA); mbedtls_mpi_init(&TB);

+    /* Make copies and take absolute values */
     MBEDTLS_MPI_CHK(mbedtls_mpi_copy(&TA, A));
     MBEDTLS_MPI_CHK(mbedtls_mpi_copy(&TB, B));
+    TA.s = TB.s = 1;

-    lz = mbedtls_mpi_lsb(&TA);
-    lzt = mbedtls_mpi_lsb(&TB);
+    /* Make the two values the same (non-zero) number of limbs.
+     * This is needed to use mbedtls_mpi_core functions below. */
+    MBEDTLS_MPI_CHK(mbedtls_mpi_grow(&TA, TB.n != 0 ? TB.n : 1));
+    MBEDTLS_MPI_CHK(mbedtls_mpi_grow(&TB, TA.n)); // non-zero from above

-    /* The loop below gives the correct result when A==0 but not when B==0.
-     * So have a special case for B==0. Leverage the fact that we just
-     * calculated the lsb and lsb(B)==0 iff B is odd or 0 to make the test
-     * slightly more efficient than cmp_int(). */
-    if (lzt == 0 && mbedtls_mpi_get_bit(&TB, 0) == 0) {
-        ret = mbedtls_mpi_copy(G, A);
+    /* Handle special cases (that don't happen in crypto usage) */
+    if (mbedtls_mpi_core_check_zero_ct(TA.p, TA.n) == MBEDTLS_CT_FALSE) {
+        MBEDTLS_MPI_CHK(mbedtls_mpi_copy(G, &TB)); // GCD(0, B) = abs(B)
         goto cleanup;
     }
-
-    if (lzt < lz) {
-        lz = lzt;
+    if (mbedtls_mpi_core_check_zero_ct(TB.p, TB.n) == MBEDTLS_CT_FALSE) {
+        MBEDTLS_MPI_CHK(mbedtls_mpi_copy(G, &TA)); // GCD(A, 0) = abs(A)
+        goto cleanup;
     }

-    TA.s = TB.s = 1;
-
-    /* We mostly follow the procedure described in HAC 14.54, but with some
-     * minor differences:
-     * - Sequences of multiplications or divisions by 2 are grouped into a
-     *   single shift operation.
-     * - The procedure in HAC assumes that 0 < TB <= TA.
-     *     - The condition TB <= TA is not actually necessary for correctness.
-     *       TA and TB have symmetric roles except for the loop termination
-     *       condition, and the shifts at the beginning of the loop body
-     *       remove any significance from the ordering of TA vs TB before
-     *       the shifts.
-     *     - If TA = 0, the loop goes through 0 iterations and the result is
-     *       correctly TB.
-     *     - The case TB = 0 was short-circuited above.
-     *
-     * For the correctness proof below, decompose the original values of
-     * A and B as
-     *   A = sa * 2^a * A' with A'=0 or A' odd, and sa = +-1
-     *   B = sb * 2^b * B' with B'=0 or B' odd, and sb = +-1
-     * Then gcd(A, B) = 2^{min(a,b)} * gcd(A',B'),
-     * and gcd(A',B') is odd or 0.
-     *
-     * At the beginning, we have TA = |A| and TB = |B| so gcd(A,B) = gcd(TA,TB).
-     * The code maintains the following invariant:
-     *     gcd(A,B) = 2^k * gcd(TA,TB) for some k   (I)
-     */
+    /* Make boths inputs odd by putting powers of 2 on the side */
+    const size_t za = mbedtls_mpi_lsb(&TA);
+    const size_t zb = mbedtls_mpi_lsb(&TB);
+    MBEDTLS_MPI_CHK(mbedtls_mpi_shift_r(&TA, za));
+    MBEDTLS_MPI_CHK(mbedtls_mpi_shift_r(&TB, zb));

-    /* Proof that the loop terminates:
-     * At each iteration, either the right-shift by 1 is made on a nonzero
-     * value and the nonnegative integer bitlen(TA) + bitlen(TB) decreases
-     * by at least 1, or the right-shift by 1 is made on zero and then
-     * TA becomes 0 which ends the loop (TB cannot be 0 if it is right-shifted
-     * since in that case TB is calculated from TB-TA with the condition TB>TA).
-     */
-    while (mbedtls_mpi_cmp_int(&TA, 0) != 0) {
-        /* Divisions by 2 preserve the invariant (I). */
-        MBEDTLS_MPI_CHK(mbedtls_mpi_shift_r(&TA, mbedtls_mpi_lsb(&TA)));
-        MBEDTLS_MPI_CHK(mbedtls_mpi_shift_r(&TB, mbedtls_mpi_lsb(&TB)));
-
-        /* Set either TA or TB to |TA-TB|/2. Since TA and TB are both odd,
-         * TA-TB is even so the division by 2 has an integer result.
-         * Invariant (I) is preserved since any odd divisor of both TA and TB
-         * also divides |TA-TB|/2, and any odd divisor of both TA and |TA-TB|/2
-         * also divides TB, and any odd divisor of both TB and |TA-TB|/2 also
-         * divides TA.
-         */
-        if (mbedtls_mpi_cmp_mpi(&TA, &TB) >= 0) {
-            MBEDTLS_MPI_CHK(mbedtls_mpi_sub_abs(&TA, &TA, &TB));
-            MBEDTLS_MPI_CHK(mbedtls_mpi_shift_r(&TA, 1));
-        } else {
-            MBEDTLS_MPI_CHK(mbedtls_mpi_sub_abs(&TB, &TB, &TA));
-            MBEDTLS_MPI_CHK(mbedtls_mpi_shift_r(&TB, 1));
-        }
-        /* Note that one of TA or TB is still odd. */
-    }
+    /* Ensure A <= B: if B < A, swap them */
+    mbedtls_ct_condition_t swap = mbedtls_mpi_core_lt_ct(TB.p, TA.p, TA.n);
+    mbedtls_mpi_core_cond_swap(TA.p, TB.p, TA.n, swap);

-    /* By invariant (I), gcd(A,B) = 2^k * gcd(TA,TB) for some k.
-     * At the loop exit, TA = 0, so gcd(TA,TB) = TB.
-     * - If there was at least one loop iteration, then one of TA or TB is odd,
-     *   and TA = 0, so TB is odd and gcd(TA,TB) = gcd(A',B'). In this case,
-     *   lz = min(a,b) so gcd(A,B) = 2^lz * TB.
-     * - If there was no loop iteration, then A was 0, and gcd(A,B) = B.
-     *   In this case, lz = 0 and B = TB so gcd(A,B) = B = 2^lz * TB as well.
-     */
+    MBEDTLS_MPI_CHK(mbedtls_mpi_gcd_modinv_odd(G, NULL, &TA, &TB));

-    MBEDTLS_MPI_CHK(mbedtls_mpi_shift_l(&TB, lz));
-    MBEDTLS_MPI_CHK(mbedtls_mpi_copy(G, &TB));
+    /* Re-inject the power of 2 we had previously put aside */
+    size_t zg = za > zb ? zb : za; // zg = min(za, zb)
+    MBEDTLS_MPI_CHK(mbedtls_mpi_shift_l(G, zg));

 cleanup:

@@ -1899,91 +1922,139 @@ int mbedtls_mpi_random(mbedtls_mpi *X,
 }

 /*
- * Modular inverse: X = A^-1 mod N  (HAC 14.61 / 14.64)
+ * Modular inverse: X = A^-1 mod N with N odd (and A any range)
  */
-int mbedtls_mpi_inv_mod(mbedtls_mpi *X, const mbedtls_mpi *A, const mbedtls_mpi *N)
+int mbedtls_mpi_inv_mod_odd(mbedtls_mpi *X,
+                            const mbedtls_mpi *A,
+                            const mbedtls_mpi *N)
 {
     int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
-    mbedtls_mpi G, TA, TU, U1, U2, TB, TV, V1, V2;
+    mbedtls_mpi T, G;

-    if (mbedtls_mpi_cmp_int(N, 1) <= 0) {
-        return MBEDTLS_ERR_MPI_BAD_INPUT_DATA;
+    mbedtls_mpi_init(&T);
+    mbedtls_mpi_init(&G);
+
+    MBEDTLS_MPI_CHK(mbedtls_mpi_mod_mpi(&T, A, N));
+    MBEDTLS_MPI_CHK(mbedtls_mpi_gcd_modinv_odd(&G, &T, &T, N));
+    if (mbedtls_mpi_cmp_int(&G, 1) != 0) {
+        ret = MBEDTLS_ERR_MPI_NOT_ACCEPTABLE;
+        goto cleanup;
     }

-    mbedtls_mpi_init(&TA); mbedtls_mpi_init(&TU); mbedtls_mpi_init(&U1); mbedtls_mpi_init(&U2);
-    mbedtls_mpi_init(&G); mbedtls_mpi_init(&TB); mbedtls_mpi_init(&TV);
-    mbedtls_mpi_init(&V1); mbedtls_mpi_init(&V2);
+    MBEDTLS_MPI_CHK(mbedtls_mpi_copy(X, &T));
+
+cleanup:
+    mbedtls_mpi_free(&T);
+    mbedtls_mpi_free(&G);
+
+    return ret;
+}
+
+/*
+ * Compute X = A^-1 mod N with N even, A odd and 1 < A < N.
+ *
+ * This is not obvious because our constant-time modinv function only works with
+ * an odd modulus, and here the modulus is even. The idea is that computing a
+ * a^-1 mod b is really just computing the u coefficient in the Bézout relation
+ * a*u + b*v = 1 (assuming gcd(a,b) = 1, i.e. the inverse exists). But if we know
+ * one of u, v in this relation then the other is easy to find. So we can
+ * actually start by computing N^-1 mod A with gives us "the wrong half" of the
+ * Bézout relation, from which we'll deduce the interesting half A^-1 mod N.
+ *
+ * Return MBEDTLS_ERR_MPI_NOT_ACCEPTABLE if the inverse doesn't exist.
+ */
+int mbedtls_mpi_inv_mod_even_in_range(mbedtls_mpi *X,
+                                      mbedtls_mpi const *A,
+                                      mbedtls_mpi const *N)
+{
+    int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
+    mbedtls_mpi I, G;

-    MBEDTLS_MPI_CHK(mbedtls_mpi_gcd(&G, A, N));
+    mbedtls_mpi_init(&I);
+    mbedtls_mpi_init(&G);

+    /* Set I = N^-1 mod A */
+    MBEDTLS_MPI_CHK(mbedtls_mpi_mod_mpi(&I, N, A));
+    MBEDTLS_MPI_CHK(mbedtls_mpi_gcd_modinv_odd(&G, &I, &I, A));
     if (mbedtls_mpi_cmp_int(&G, 1) != 0) {
         ret = MBEDTLS_ERR_MPI_NOT_ACCEPTABLE;
         goto cleanup;
     }

-    MBEDTLS_MPI_CHK(mbedtls_mpi_mod_mpi(&TA, A, N));
-    MBEDTLS_MPI_CHK(mbedtls_mpi_copy(&TU, &TA));
-    MBEDTLS_MPI_CHK(mbedtls_mpi_copy(&TB, N));
-    MBEDTLS_MPI_CHK(mbedtls_mpi_copy(&TV, N));
+    /* We know N * I = 1 + k * A for some k, which we can easily compute
+     * as k = (N*I - 1) / A (we know there will be no remainder). */
+    MBEDTLS_MPI_CHK(mbedtls_mpi_mul_mpi(&I, &I, N));
+    MBEDTLS_MPI_CHK(mbedtls_mpi_sub_int(&I, &I, 1));
+    MBEDTLS_MPI_CHK(mbedtls_mpi_div_mpi(&G, NULL, &I, A));

-    MBEDTLS_MPI_CHK(mbedtls_mpi_lset(&U1, 1));
-    MBEDTLS_MPI_CHK(mbedtls_mpi_lset(&U2, 0));
-    MBEDTLS_MPI_CHK(mbedtls_mpi_lset(&V1, 0));
-    MBEDTLS_MPI_CHK(mbedtls_mpi_lset(&V2, 1));
+    /* Now we have a Bézout relation N * (previous value of I) - G * A = 1,
+     * so A^-1 mod N is -G mod N, which is N - G.
+     * Note that 0 < k < N since 0 < I < A, so G (k) is already in range. */
+    MBEDTLS_MPI_CHK(mbedtls_mpi_sub_mpi(X, N, &G));

-    do {
-        while ((TU.p[0] & 1) == 0) {
-            MBEDTLS_MPI_CHK(mbedtls_mpi_shift_r(&TU, 1));
+cleanup:
+    mbedtls_mpi_free(&I);
+    mbedtls_mpi_free(&G);
+    return ret;
+}

-            if ((U1.p[0] & 1) != 0 || (U2.p[0] & 1) != 0) {
-                MBEDTLS_MPI_CHK(mbedtls_mpi_add_mpi(&U1, &U1, &TB));
-                MBEDTLS_MPI_CHK(mbedtls_mpi_sub_mpi(&U2, &U2, &TA));
-            }
+/*
+ * Compute X = A^-1 mod N with N even and A odd (but in any range).
+ *
+ * Return MBEDTLS_ERR_MPI_NOT_ACCEPTABLE if the inverse doesn't exist.
+ */
+static int mbedtls_mpi_inv_mod_even(mbedtls_mpi *X,
+                                    mbedtls_mpi const *A,
+                                    mbedtls_mpi const *N)
+{
+    int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
+    mbedtls_mpi AA;

-            MBEDTLS_MPI_CHK(mbedtls_mpi_shift_r(&U1, 1));
-            MBEDTLS_MPI_CHK(mbedtls_mpi_shift_r(&U2, 1));
-        }
+    mbedtls_mpi_init(&AA);

-        while ((TV.p[0] & 1) == 0) {
-            MBEDTLS_MPI_CHK(mbedtls_mpi_shift_r(&TV, 1));
+    /* Bring A in the range [0, N). */
+    MBEDTLS_MPI_CHK(mbedtls_mpi_mod_mpi(&AA, A, N));

-            if ((V1.p[0] & 1) != 0 || (V2.p[0] & 1) != 0) {
-                MBEDTLS_MPI_CHK(mbedtls_mpi_add_mpi(&V1, &V1, &TB));
-                MBEDTLS_MPI_CHK(mbedtls_mpi_sub_mpi(&V2, &V2, &TA));
-            }
+    /* We know A >= 0 but the next function wants A > 1 */
+    int cmp = mbedtls_mpi_cmp_int(&AA, 1);
+    if (cmp < 0) { // AA == 0
+        ret = MBEDTLS_ERR_MPI_NOT_ACCEPTABLE;
+        goto cleanup;
+    }
+    if (cmp == 0) { // AA = 1
+        MBEDTLS_MPI_CHK(mbedtls_mpi_lset(X, 1));
+        goto cleanup;
+    }

-            MBEDTLS_MPI_CHK(mbedtls_mpi_shift_r(&V1, 1));
-            MBEDTLS_MPI_CHK(mbedtls_mpi_shift_r(&V2, 1));
-        }
+    /* Now we know 1 < A < N, N is even and AA is still odd */
+    MBEDTLS_MPI_CHK(mbedtls_mpi_inv_mod_even_in_range(X, &AA, N));

-        if (mbedtls_mpi_cmp_mpi(&TU, &TV) >= 0) {
-            MBEDTLS_MPI_CHK(mbedtls_mpi_sub_mpi(&TU, &TU, &TV));
-            MBEDTLS_MPI_CHK(mbedtls_mpi_sub_mpi(&U1, &U1, &V1));
-            MBEDTLS_MPI_CHK(mbedtls_mpi_sub_mpi(&U2, &U2, &V2));
-        } else {
-            MBEDTLS_MPI_CHK(mbedtls_mpi_sub_mpi(&TV, &TV, &TU));
-            MBEDTLS_MPI_CHK(mbedtls_mpi_sub_mpi(&V1, &V1, &U1));
-            MBEDTLS_MPI_CHK(mbedtls_mpi_sub_mpi(&V2, &V2, &U2));
-        }
-    } while (mbedtls_mpi_cmp_int(&TU, 0) != 0);
+cleanup:
+    mbedtls_mpi_free(&AA);
+    return ret;
+}

-    while (mbedtls_mpi_cmp_int(&V1, 0) < 0) {
-        MBEDTLS_MPI_CHK(mbedtls_mpi_add_mpi(&V1, &V1, N));
+/*
+ * Modular inverse: X = A^-1 mod N
+ *
+ * Wrapper around mbedtls_mpi_gcd_modinv_odd() that lifts its limitations.
+ */
+int mbedtls_mpi_inv_mod(mbedtls_mpi *X, const mbedtls_mpi *A, const mbedtls_mpi *N)
+{
+    if (mbedtls_mpi_cmp_int(N, 1) <= 0) {
+        return MBEDTLS_ERR_MPI_BAD_INPUT_DATA;
     }

-    while (mbedtls_mpi_cmp_mpi(&V1, N) >= 0) {
-        MBEDTLS_MPI_CHK(mbedtls_mpi_sub_mpi(&V1, &V1, N));
+    if (mbedtls_mpi_get_bit(N, 0) == 1) {
+        return mbedtls_mpi_inv_mod_odd(X, A, N);
     }

-    MBEDTLS_MPI_CHK(mbedtls_mpi_copy(X, &V1));
-
-cleanup:
-
-    mbedtls_mpi_free(&TA); mbedtls_mpi_free(&TU); mbedtls_mpi_free(&U1); mbedtls_mpi_free(&U2);
-    mbedtls_mpi_free(&G); mbedtls_mpi_free(&TB); mbedtls_mpi_free(&TV);
-    mbedtls_mpi_free(&V1); mbedtls_mpi_free(&V2);
+    if (mbedtls_mpi_get_bit(A, 0) == 1) {
+        return mbedtls_mpi_inv_mod_even(X, A, N);
+    }

-    return ret;
+    /* If A and N are both even, 2 divides their GCD, so no inverse. */
+    return MBEDTLS_ERR_MPI_NOT_ACCEPTABLE;
 }

 #if defined(MBEDTLS_GENPRIME)
diff --git a/deps/LIEF/third-party/mbedtls/library/bignum_core.c b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/bignum_core.c
similarity index 78%
rename from deps/LIEF/third-party/mbedtls/library/bignum_core.c
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/bignum_core.c
index 88582c2d384..07f0f8c19b5 100644
--- a/deps/LIEF/third-party/mbedtls/library/bignum_core.c
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/bignum_core.c
@@ -5,19 +5,20 @@
  *  SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
  */

-#include "common.h"
+#include "tf_psa_crypto_common.h"

 #if defined(MBEDTLS_BIGNUM_C)

 #include <string.h>

-#include "mbedtls/error.h"
+#include "mbedtls/private/error_common.h"
 #include "mbedtls/platform_util.h"
 #include "constant_time_internal.h"

 #include "mbedtls/platform.h"

 #include "bignum_core.h"
+#include "bignum_core_invasive.h"
 #include "bn_mul.h"
 #include "constant_time_internal.h"

@@ -449,9 +450,10 @@ mbedtls_mpi_uint mbedtls_mpi_core_sub(mbedtls_mpi_uint *X,
     mbedtls_mpi_uint c = 0;

     for (size_t i = 0; i < limbs; i++) {
-        mbedtls_mpi_uint z = (A[i] < c);
+        mbedtls_mpi_uint z = mbedtls_ct_mpi_uint_if(mbedtls_ct_uint_lt(A[i], c),
+                                                    1, 0);
         mbedtls_mpi_uint t = A[i] - c;
-        c = (t < B[i]) + z;
+        c = mbedtls_ct_mpi_uint_if(mbedtls_ct_uint_lt(t, B[i]), 1, 0) + z;
         X[i] = t - B[i];
     }

@@ -489,7 +491,7 @@ mbedtls_mpi_uint mbedtls_mpi_core_mla(mbedtls_mpi_uint *d, size_t d_len,

     while (excess_len--) {
         *d += c;
-        c = (*d < c);
+        c = mbedtls_ct_mpi_uint_if(mbedtls_ct_uint_lt(*d, c), 1, 0);
         d++;
     }

@@ -653,9 +655,8 @@ int mbedtls_mpi_core_random(mbedtls_mpi_uint *X,
      *
      * When N is just below a power of 2, as is the case when generating
      * a random scalar on most elliptic curves, 1 try is enough with
-     * overwhelming probability. When N is just above a power of 2,
-     * as when generating a random scalar on secp224k1, each try has
-     * a probability of failing that is almost 1/2.
+     * overwhelming probability. When N is just above a power of 2
+     * each try has a probability of failing that is almost 1/2.
      *
      * The probabilities are almost the same if min is nonzero but negligible
      * compared to N. This is always the case when N is crypto-sized, but
@@ -1019,4 +1020,221 @@ void mbedtls_mpi_core_from_mont_rep(mbedtls_mpi_uint *X,
     mbedtls_mpi_core_montmul(X, A, &Rinv, 1, N, AN_limbs, mm, T);
 }

+/*
+ * Compute X = A - B mod N.
+ * Both A and B must be in [0, N) and so will the output.
+ */
+static void mpi_core_sub_mod(mbedtls_mpi_uint *X,
+                             const mbedtls_mpi_uint *A,
+                             const mbedtls_mpi_uint *B,
+                             const mbedtls_mpi_uint *N,
+                             size_t limbs)
+{
+    mbedtls_mpi_uint c = mbedtls_mpi_core_sub(X, A, B, limbs);
+    (void) mbedtls_mpi_core_add_if(X, N, limbs, (unsigned) c);
+}
+
+/*
+ * Divide X by 2 mod N in place, assuming N is odd.
+ * The input must be in [0, N) and so will the output.
+ */
+MBEDTLS_STATIC_TESTABLE
+void mbedtls_mpi_core_div2_mod_odd(mbedtls_mpi_uint *X,
+                                   const mbedtls_mpi_uint *N,
+                                   size_t limbs)
+{
+    /* If X is odd, add N to make it even before shifting. */
+    unsigned odd = (unsigned) X[0] & 1;
+    mbedtls_mpi_uint c = mbedtls_mpi_core_add_if(X, N, limbs, odd);
+    mbedtls_mpi_core_shift_r(X, limbs, 1);
+    X[limbs - 1] |= c << (biL - 1);
+}
+
+/*
+ * Constant-time GCD and modular inversion - odd modulus.
+ *
+ * Pre-conditions: see public documentation.
+ *
+ * See https://www.jstage.jst.go.jp/article/transinf/E106.D/9/E106.D_2022ICP0009/_pdf
+ *
+ * The paper gives two computationally equivalent algorithms: Alg 7 (readable)
+ * and Alg 8 (constant-time). We use a third version that's hopefully both:
+ *
+ *  u, v = A, N  # N is called p in the paper but doesn't have to be prime
+ *  q, r = 0, 1
+ *  repeat bits(A_limbs + N_limbs) times:
+ *      d = v - u  # t1 in Alg 7
+ *      t1 = (u and v both odd) ? u : d  # t1 in Alg 8
+ *      t2 = (u and v both odd) ? d : (u odd) ? v : u  # t2 in Alg 8
+ *      t2 >>= 1
+ *      swap = t1 > t2  # similar to s, z in Alg 8
+ *      u, v = (swap) ? t2, t1 : t1, t2
+ *
+ *      d = r - q mod N  # t2 in Alg 7
+ *      t1 = (u and v both odd) ? q : d  # t3 in Alg 8
+ *      t2 = (u and v both odd) ? d : (u odd) ? r : q  # t4 Alg 8
+ *      t2 /= 2 mod N  # see below (pre_com)
+ *      q, r = (swap) ? t2, t1 : t1, t2
+ *  return v, q  # v: GCD, see Alg 6; q: no mult by pre_com, see below
+ *
+ * The ternary operators in the above pseudo-code need to be realised in a
+ * constant-time fashion. We use conditional assign for t1, t2 and conditional
+ * swap for the final update. (Note: the similarity between branches of Alg 7
+ * are highlighted in tables 2 and 3 and the surrounding text.)
+ *
+ * Also, we re-order operations, grouping things related to the inverse, which
+ * facilitates making its computation optional, and requires fewer temporaries.
+ *
+ * The only actual change from the paper is dropping the trick with pre_com,
+ * which I think complicates things for no benefit.
+ * See the comment on the big I != NULL block below for details.
+ */
+void mbedtls_mpi_core_gcd_modinv_odd(mbedtls_mpi_uint *G,
+                                     mbedtls_mpi_uint *I,
+                                     const mbedtls_mpi_uint *A,
+                                     size_t A_limbs,
+                                     const mbedtls_mpi_uint *N,
+                                     size_t N_limbs,
+                                     mbedtls_mpi_uint *T)
+{
+    /* GCD and modinv, names common to Alg 7 and Alg 8 */
+    mbedtls_mpi_uint *u = T + 0 * N_limbs;
+    mbedtls_mpi_uint *v = G;
+
+    /* GCD and modinv, my name (t1, t2 from Alg 7) */
+    mbedtls_mpi_uint *d = T + 1 * N_limbs;
+
+    /* GCD and modinv, names from Alg 8 (note: t1, t2 from Alg 7 are d above) */
+    mbedtls_mpi_uint *t1 = T + 2 * N_limbs;
+    mbedtls_mpi_uint *t2 = T + 3 * N_limbs;
+
+    /* modinv only, names common to Alg 7 and Alg 8 */
+    mbedtls_mpi_uint *q = I;
+    mbedtls_mpi_uint *r = I != NULL ? T + 4 * N_limbs : NULL;
+
+    /*
+     * Initial values:
+     * u, v = A, N
+     * q, r = 0, 1
+     *
+     * We only write to G (aka v) after reading from inputs (A and N), which
+     * allows aliasing, except with N when I != NULL, as then we'll be operating
+     * mod N on q and r later - see the public documentation.
+     */
+    if (A_limbs > N_limbs) {
+        /* Violating this precondition should not result in memory errors. */
+        A_limbs = N_limbs;
+    }
+    memcpy(u, A, A_limbs * ciL);
+    memset((char *) u + A_limbs * ciL, 0, (N_limbs - A_limbs) * ciL);
+
+    /* Avoid possible UB with memcpy when src == dst. */
+    if (v != N) {
+        memcpy(v, N, N_limbs * ciL);
+    }
+
+    if (I != NULL) {
+        memset(q, 0, N_limbs * ciL);
+
+        memset(r, 0, N_limbs * ciL);
+        r[0] = 1;
+    }
+
+    /*
+     * At each step, out of u, v, v - u we keep one, shift another, and discard
+     * the third, then update (u, v) with the ordered result.
+     * Then we mirror those actions with q, r, r - q mod N.
+     *
+     * Loop invariants:
+     *  u <= v                  (on entry: A <= N)
+     *  GCD(u, v) == GCD(A, N)  (on entry: trivial)
+     *  v = A * q mod N         (on entry: N = A * 0 mod N)
+     *  u = A * r mod N         (on entry: A = A * 1 mod N)
+     *  q, r in [0, N)          (on entry: 0, 1)
+     *
+     * On exit:
+     *  u = 0
+     *  v = GCD(A, N) = A * q mod N
+     *  if v == 1 then 1 = A * q mod N ie q is A's inverse mod N
+     *  r = 0
+     *
+     * The exit state is a fixed point of the loop's body.
+     * Alg 7 and Alg 8 use 2 * bitlen(N) iterations but Theorem 2 (above in the
+     * paper) says bitlen(A) + bitlen(N) is actually enough.
+     */
+    for (size_t i = 0; i < (A_limbs + N_limbs) * biL; i++) {
+        /* s, z in Alg 8 - use meaningful names instead */
+        mbedtls_ct_condition_t u_odd = mbedtls_ct_bool(u[0] & 1);
+        mbedtls_ct_condition_t v_odd = mbedtls_ct_bool(v[0] & 1);
+
+        /* Other conditions that will be useful below */
+        mbedtls_ct_condition_t u_odd_v_odd = mbedtls_ct_bool_and(u_odd, v_odd);
+        mbedtls_ct_condition_t v_even = mbedtls_ct_bool_not(v_odd);
+        mbedtls_ct_condition_t u_odd_v_even = mbedtls_ct_bool_and(u_odd, v_even);
+
+        /* This is called t1 in Alg 7 (no name in Alg 8).
+         * We know that u <= v so there is no carry */
+        (void) mbedtls_mpi_core_sub(d, v, u, N_limbs);
+
+        /* t1 (the thing that's kept) can be d (default) or u (if t2 is d) */
+        memcpy(t1, d, N_limbs * ciL);
+        mbedtls_mpi_core_cond_assign(t1, u, N_limbs, u_odd_v_odd);
+
+        /* t2 (the thing that's shifted) can be u (if even), or v (if even),
+         * or d (which is even if both u and v were odd) */
+        memcpy(t2, u, N_limbs * ciL);
+        mbedtls_mpi_core_cond_assign(t2, v, N_limbs, u_odd_v_even);
+        mbedtls_mpi_core_cond_assign(t2, d, N_limbs, u_odd_v_odd);
+
+        mbedtls_mpi_core_shift_r(t2, N_limbs, 1); // t2 is even
+
+        /* Update u, v and re-order them if needed */
+        memcpy(u, t1, N_limbs * ciL);
+        memcpy(v, t2, N_limbs * ciL);
+        mbedtls_ct_condition_t swap = mbedtls_mpi_core_lt_ct(v, u, N_limbs);
+        mbedtls_mpi_core_cond_swap(u, v, N_limbs, swap);
+
+        /* Now, if modinv was requested, do the same with q, r, but:
+         * - decisions still based on u and v (their initial values);
+         * - operations are now mod N;
+         * - we re-use t1, t2 for what the paper calls t3, t4 in Alg 8.
+         *
+         * Here we slightly diverge from the paper and instead do the obvious
+         * thing that preserves the invariants involving q and r: mirror
+         * operations on u and v, ie also divide by 2 here (mod N).
+         *
+         * The paper uses a trick where it replaces division by 2 with
+         * multiplication by 2 here, and compensates in the end by multiplying
+         * by pre_com, which is probably intended as an optimisation.
+         *
+         * However I believe it's not actually an optimisation, since
+         * constant-time modular multiplication by 2 (left-shift + conditional
+         * subtract) is just as costly as constant-time modular division by 2
+         * (conditional add + right-shift). So, skip it and keep things simple.
+         */
+        if (I != NULL) {
+            /* This is called t2 in Alg 7 (no name in Alg 8). */
+            mpi_core_sub_mod(d, q, r, N, N_limbs);
+
+            /* t3 (the thing that's kept) */
+            memcpy(t1, d, N_limbs * ciL);
+            mbedtls_mpi_core_cond_assign(t1, r, N_limbs, u_odd_v_odd);
+
+            /* t4 (the thing that's shifted) */
+            memcpy(t2, r, N_limbs * ciL);
+            mbedtls_mpi_core_cond_assign(t2, q, N_limbs, u_odd_v_even);
+            mbedtls_mpi_core_cond_assign(t2, d, N_limbs, u_odd_v_odd);
+
+            mbedtls_mpi_core_div2_mod_odd(t2, N, N_limbs);
+
+            /* Update and possibly swap */
+            memcpy(r, t1, N_limbs * ciL);
+            memcpy(q, t2, N_limbs * ciL);
+            mbedtls_mpi_core_cond_swap(r, q, N_limbs, swap);
+        }
+    }
+
+    /* G and I already hold the correct values by virtue of being aliased */
+}
+
 #endif /* MBEDTLS_BIGNUM_C */
diff --git a/deps/LIEF/third-party/mbedtls/library/bignum_core.h b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/bignum_core.h
similarity index 93%
rename from deps/LIEF/third-party/mbedtls/library/bignum_core.h
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/bignum_core.h
index 264ee635506..bd29ef60c8a 100644
--- a/deps/LIEF/third-party/mbedtls/library/bignum_core.h
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/bignum_core.h
@@ -68,9 +68,9 @@
 #ifndef MBEDTLS_BIGNUM_CORE_H
 #define MBEDTLS_BIGNUM_CORE_H

-#include "common.h"
+#include "tf_psa_crypto_common.h"

-#include "mbedtls/bignum.h"
+#include "mbedtls/private/bignum.h"

 #include "constant_time_internal.h"

@@ -402,6 +402,9 @@ mbedtls_mpi_uint mbedtls_mpi_core_add_if(mbedtls_mpi_uint *X,
  * \p X may be aliased to \p A or \p B, or even both, but may not overlap
  * either otherwise.
  *
+ * This function operates in constant time with respect to the values
+ * of \p A and \p B.
+ *
  * \param[out] X    The result of the subtraction.
  * \param[in] A     Little-endian presentation of left operand.
  * \param[in] B     Little-endian presentation of right operand.
@@ -423,6 +426,9 @@ mbedtls_mpi_uint mbedtls_mpi_core_sub(mbedtls_mpi_uint *X,
  *
  * This function operates modulo `2^(biL*X_limbs)`.
  *
+ * This function operates in constant time with respect to the values
+ * of \p X and \p A and \p b.
+ *
  * \param[in,out] X  The pointer to the (little-endian) array
  *                   representing the bignum to accumulate onto.
  * \param X_limbs    The number of limbs of \p X. This must be
@@ -482,6 +488,10 @@ mbedtls_mpi_uint mbedtls_mpi_core_montmul_init(const mbedtls_mpi_uint *N);
  * \p A and \p B may alias each other, if \p AN_limbs == \p B_limbs. They may
  * not alias \p N (since they must be in canonical form, they cannot == \p N).
  *
+ * This function operates in constant time with respect
+ * to the values of \p A, \p B and \p N.
+ *
+ *
  * \param[out]    X         The destination MPI, as a little-endian array of
  *                          length \p AN_limbs.
  *                          On successful completion, X contains the result of
@@ -673,6 +683,9 @@ void mbedtls_mpi_core_exp_mod_unsafe(mbedtls_mpi_uint *X,
  * \p X may be aliased to \p A, but not to \p RR or \p E, even if \p E_limbs ==
  * \p AN_limbs.
  *
+ * This function operates in constant time with respect
+ * to the values of \p A, \p N and \p E.
+ *
  * \param[out] X     The destination MPI, as a little endian array of length
  *                   \p AN_limbs.
  * \param[in] A      The base MPI, as a little endian array of length \p AN_limbs.
@@ -822,4 +835,45 @@ void mbedtls_mpi_core_from_mont_rep(mbedtls_mpi_uint *X,
                                     mbedtls_mpi_uint mm,
                                     mbedtls_mpi_uint *T);

+/** Compute GCD(A, N) and optionally the inverse of A mod N if it exists.
+ *
+ * Requires N to be odd, 0 <= A <= N and A_limbs <= N_limbs.
+ * When I != NULL, N (the modulus) must be greater than 1.
+ *
+ * A and N may not alias each other.
+ * When I == NULL (computing only the GCD), G may alias A or N.
+ * When I != NULL (computing the modular inverse), G or I may alias A
+ * but none of them may alias N (the modulus).
+ *
+ * If any of the above preconditions is not met, output values are unspecified.
+ *
+ * \param[out]    G       The GCD of \p A and \p N.
+ *                        Must have the same number of limbs as \p N.
+ * \param[out]    I       The inverse of \p A modulo \p N if it exists (that is,
+ *                        if \p G above is 1 on exit); indeterminate otherwise.
+ *                        This must either be NULL (to only compute the GCD),
+ *                        or have the same number of limbs as \p N.
+ * \param[in]     A       The 1st operand of GCD and number to invert.
+ *                        This value must be less than or equal to \p N.
+ * \param         A_limbs The number of limbs of \p A.
+ *                        Must be less than or equal to \p N_limbs.
+ * \param[in]     N       The 2nd operand of GCD and modulus for inversion.
+ *                        This value must be odd.
+ *                        If I != NULL this value must be greater than 1.
+ * \param         N_limbs The number of limbs of \p N.
+ * \param[in,out] T       Temporary storage of size at least 5 * N_limbs limbs,
+ *                        or 4 * N_limbs if \p I is NULL (GCD only).
+ *                        Its initial content is unused and
+ *                        its final content is indeterminate.
+ *                        It must not alias or otherwise overlap any of the
+ *                        other parameters.
+ */
+void mbedtls_mpi_core_gcd_modinv_odd(mbedtls_mpi_uint *G,
+                                     mbedtls_mpi_uint *I,
+                                     const mbedtls_mpi_uint *A,
+                                     size_t A_limbs,
+                                     const mbedtls_mpi_uint *N,
+                                     size_t N_limbs,
+                                     mbedtls_mpi_uint *T);
+
 #endif /* MBEDTLS_BIGNUM_CORE_H */
diff --git a/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/bignum_core_invasive.h b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/bignum_core_invasive.h
new file mode 100644
index 00000000000..a9d447f792b
--- /dev/null
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/bignum_core_invasive.h
@@ -0,0 +1,38 @@
+/**
+ * \file bignum_core_invasive.h
+ *
+ * \brief Function declarations for invasive functions of bignum core.
+ */
+/**
+ *  Copyright The Mbed TLS Contributors
+ *  SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+ */
+
+#ifndef MBEDTLS_BIGNUM_CORE_INVASIVE_H
+#define MBEDTLS_BIGNUM_CORE_INVASIVE_H
+
+#include "bignum_core.h"
+
+#if defined(MBEDTLS_TEST_HOOKS)
+
+#if !defined(MBEDTLS_THREADING_C)
+
+extern void (*mbedtls_safe_codepath_hook)(void);
+extern void (*mbedtls_unsafe_codepath_hook)(void);
+
+#endif /* !MBEDTLS_THREADING_C */
+
+/** Divide X by 2 mod N in place, assuming N is odd.
+ *
+ * \param[in,out] X     The value to divide by 2 mod \p N.
+ * \param[in]     N     The modulus. Must be odd.
+ * \param[in]     limbs The number of limbs in \p X and \p N.
+ */
+MBEDTLS_STATIC_TESTABLE
+void mbedtls_mpi_core_div2_mod_odd(mbedtls_mpi_uint *X,
+                                   const mbedtls_mpi_uint *N,
+                                   size_t limbs);
+
+#endif /* MBEDTLS_TEST_HOOKS */
+
+#endif /* MBEDTLS_BIGNUM_CORE_INVASIVE_H */
diff --git a/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/bignum_internal.h b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/bignum_internal.h
new file mode 100644
index 00000000000..ba1c69d6b1a
--- /dev/null
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/bignum_internal.h
@@ -0,0 +1,122 @@
+/**
+ * \file bignum_internal.h
+ *
+ * \brief Internal-only bignum public-key cryptosystem API.
+ *
+ * This file declares bignum-related functions that are to be used
+ * only from within the Mbed TLS library itself.
+ *
+ */
+/*
+ *  Copyright The Mbed TLS Contributors
+ *  SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+ */
+#ifndef MBEDTLS_BIGNUM_INTERNAL_H
+#define MBEDTLS_BIGNUM_INTERNAL_H
+
+/**
+ * \brief          Perform a modular exponentiation: X = A^E mod N
+ *
+ * \warning        This function is not constant time with respect to \p E (the exponent).
+ *
+ * \param X        The destination MPI. This must point to an initialized MPI.
+ *                 This must not alias E or N.
+ * \param A        The base of the exponentiation.
+ *                 This must point to an initialized MPI.
+ * \param E        The exponent MPI. This must point to an initialized MPI.
+ * \param N        The base for the modular reduction. This must point to an
+ *                 initialized MPI.
+ * \param prec_RR  A helper MPI depending solely on \p N which can be used to
+ *                 speed-up multiple modular exponentiations for the same value
+ *                 of \p N. This may be \c NULL. If it is not \c NULL, it must
+ *                 point to an initialized MPI. If it hasn't been used after
+ *                 the call to mbedtls_mpi_init(), this function will compute
+ *                 the helper value and store it in \p prec_RR for reuse on
+ *                 subsequent calls to this function. Otherwise, the function
+ *                 will assume that \p prec_RR holds the helper value set by a
+ *                 previous call to mbedtls_mpi_exp_mod(), and reuse it.
+ *
+ * \return         \c 0 if successful.
+ * \return         #MBEDTLS_ERR_MPI_ALLOC_FAILED if a memory allocation failed.
+ * \return         #MBEDTLS_ERR_MPI_BAD_INPUT_DATA if \c N is negative or
+ *                 even, or if \c E is negative.
+ * \return         Another negative error code on different kinds of failures.
+ *
+ */
+int mbedtls_mpi_exp_mod_unsafe(mbedtls_mpi *X, const mbedtls_mpi *A,
+                               const mbedtls_mpi *E, const mbedtls_mpi *N,
+                               mbedtls_mpi *prec_RR);
+
+/**
+ * \brief          A wrapper around a constant time function to compute
+ *                 GCD(A, N) and/or A^-1 mod N if it exists.
+ *
+ * \warning        Requires N to be odd, and 0 <= A <= N. Additionally, if
+ *                 I != NULL, requires N > 1.
+ *                 The wrapper part of this function is not constant time.
+ *
+ * \note           A and N must not alias each other.
+ *                 When I == NULL (computing only the GCD), G can alias A or N.
+ *                 When I != NULL (computing the modular inverse), G or I can
+ *                 alias A, but neither of them can alias N (the modulus).
+ *
+ * \param[out] G   The GCD of \p A and \p N.
+ *                 This may be NULL, to only compute I.
+ * \param[out] I   The inverse of \p A modulo \p N if it exists (that is,
+ *                 if \p G above is 1 on exit), in the range [1, \p N);
+ *                 indeterminate otherwise.
+ *                 This may be NULL, to only compute G.
+ * \param[in] A    The 1st operand of GCD and number to invert.
+ *                 This value must be less than or equal to \p N.
+ * \param[in] N    The 2nd operand of GCD and modulus for inversion.
+ *                 Must be odd or the results are indeterminate.
+ *
+ * \return         \c 0 if successful.
+ * \return         #MBEDTLS_ERR_MPI_ALLOC_FAILED if a memory allocation failed.
+ * \return         #MBEDTLS_ERR_MPI_BAD_INPUT_DATA if preconditions were not
+ *                 met.
+ */
+int mbedtls_mpi_gcd_modinv_odd(mbedtls_mpi *G,
+                               mbedtls_mpi *I,
+                               const mbedtls_mpi *A,
+                               const mbedtls_mpi *N);
+
+/**
+ * \brief          Modular inverse: X = A^-1 mod N with N odd
+ *
+ * \param[out] X   The inverse of \p A modulo \p N in the range [1, \p N)
+ *                 on success; indeterminate otherwise.
+ * \param[in] A    The number to invert.
+ * \param[in] N    The modulus. Must be odd and greater than 1.
+ *
+ * \return         \c 0 if successful.
+ * \return         #MBEDTLS_ERR_MPI_ALLOC_FAILED if a memory allocation failed.
+ * \return         #MBEDTLS_ERR_MPI_BAD_INPUT_DATA if preconditions were not
+ *                 met.
+ * \return         #MBEDTLS_ERR_MPI_NOT_ACCEPTABLE if A is not invertible mod N.
+ */
+int mbedtls_mpi_inv_mod_odd(mbedtls_mpi *X,
+                            const mbedtls_mpi *A,
+                            const mbedtls_mpi *N);
+
+/**
+ * \brief          Modular inverse: X = A^-1 mod N with N even,
+ *                 A odd and 1 < A < N.
+ *
+ * \param[out] X   The inverse of \p A modulo \p N in the range [1, \p N)
+ *                 on success; indeterminate otherwise.
+ * \param[in] A    The number to invert. Must be odd, greated than 1
+ *                 and less than \p N.
+ * \param[in] N    The modulus. Must be even and greater than 1.
+ *
+ * \return         \c 0 if successful.
+ * \return         #MBEDTLS_ERR_MPI_ALLOC_FAILED if a memory allocation failed.
+ * \return         #MBEDTLS_ERR_MPI_BAD_INPUT_DATA if preconditions were not
+ *                 met.
+ * \return         #MBEDTLS_ERR_MPI_NOT_ACCEPTABLE if A is not invertible mod N.
+ */
+int mbedtls_mpi_inv_mod_even_in_range(mbedtls_mpi *X,
+                                      mbedtls_mpi const *A,
+                                      mbedtls_mpi const *N);
+
+#endif /* bignum_internal.h */
diff --git a/deps/LIEF/third-party/mbedtls/library/bignum_mod.c b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/bignum_mod.c
similarity index 99%
rename from deps/LIEF/third-party/mbedtls/library/bignum_mod.c
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/bignum_mod.c
index dfd332a7034..63d0c483d9e 100644
--- a/deps/LIEF/third-party/mbedtls/library/bignum_mod.c
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/bignum_mod.c
@@ -5,15 +5,15 @@
  *  SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
  */

-#include "common.h"
+#include "tf_psa_crypto_common.h"

 #if defined(MBEDTLS_BIGNUM_C) && defined(MBEDTLS_ECP_WITH_MPI_UINT)

 #include <string.h>

 #include "mbedtls/platform_util.h"
-#include "mbedtls/error.h"
-#include "mbedtls/bignum.h"
+#include "mbedtls/private/error_common.h"
+#include "mbedtls/private/bignum.h"

 #include "mbedtls/platform.h"

diff --git a/deps/LIEF/third-party/mbedtls/library/bignum_mod.h b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/bignum_mod.h
similarity index 99%
rename from deps/LIEF/third-party/mbedtls/library/bignum_mod.h
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/bignum_mod.h
index 963d8881ace..0be5ecde252 100644
--- a/deps/LIEF/third-party/mbedtls/library/bignum_mod.h
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/bignum_mod.h
@@ -69,10 +69,10 @@
 #ifndef MBEDTLS_BIGNUM_MOD_H
 #define MBEDTLS_BIGNUM_MOD_H

-#include "common.h"
+#include "tf_psa_crypto_common.h"

 #if defined(MBEDTLS_BIGNUM_C)
-#include "mbedtls/bignum.h"
+#include "mbedtls/private/bignum.h"
 #endif

 /** How residues associated with a modulus are represented.
diff --git a/deps/LIEF/third-party/mbedtls/library/bignum_mod_raw.c b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/bignum_mod_raw.c
similarity index 99%
rename from deps/LIEF/third-party/mbedtls/library/bignum_mod_raw.c
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/bignum_mod_raw.c
index 5343bc650d1..559408f7686 100644
--- a/deps/LIEF/third-party/mbedtls/library/bignum_mod_raw.c
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/bignum_mod_raw.c
@@ -5,13 +5,13 @@
  *  SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
  */

-#include "common.h"
+#include "tf_psa_crypto_common.h"

 #if defined(MBEDTLS_BIGNUM_C) && defined(MBEDTLS_ECP_WITH_MPI_UINT)

 #include <string.h>

-#include "mbedtls/error.h"
+#include "mbedtls/private/error_common.h"
 #include "mbedtls/platform_util.h"

 #include "mbedtls/platform.h"
diff --git a/deps/LIEF/third-party/mbedtls/library/bignum_mod_raw.h b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/bignum_mod_raw.h
similarity index 99%
rename from deps/LIEF/third-party/mbedtls/library/bignum_mod_raw.h
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/bignum_mod_raw.h
index 7bb4ca3cf52..a49d9b6b150 100644
--- a/deps/LIEF/third-party/mbedtls/library/bignum_mod_raw.h
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/bignum_mod_raw.h
@@ -66,10 +66,10 @@
 #ifndef MBEDTLS_BIGNUM_MOD_RAW_H
 #define MBEDTLS_BIGNUM_MOD_RAW_H

-#include "common.h"
+#include "tf_psa_crypto_common.h"

 #if defined(MBEDTLS_BIGNUM_C)
-#include "mbedtls/bignum.h"
+#include "mbedtls/private/bignum.h"
 #endif

 #include "bignum_mod.h"
diff --git a/deps/LIEF/third-party/mbedtls/library/bignum_mod_raw_invasive.h b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/bignum_mod_raw_invasive.h
similarity index 93%
rename from deps/LIEF/third-party/mbedtls/library/bignum_mod_raw_invasive.h
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/bignum_mod_raw_invasive.h
index 94a0d06cf0f..338ca582a45 100644
--- a/deps/LIEF/third-party/mbedtls/library/bignum_mod_raw_invasive.h
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/bignum_mod_raw_invasive.h
@@ -12,8 +12,8 @@
 #ifndef MBEDTLS_BIGNUM_MOD_RAW_INVASIVE_H
 #define MBEDTLS_BIGNUM_MOD_RAW_INVASIVE_H

-#include "common.h"
-#include "mbedtls/bignum.h"
+#include "tf_psa_crypto_common.h"
+#include "mbedtls/private/bignum.h"
 #include "bignum_mod.h"

 #if defined(MBEDTLS_TEST_HOOKS)
diff --git a/deps/LIEF/third-party/mbedtls/library/block_cipher.c b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/block_cipher.c
similarity index 98%
rename from deps/LIEF/third-party/mbedtls/library/block_cipher.c
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/block_cipher.c
index 51cdcdf46bc..90662637e32 100644
--- a/deps/LIEF/third-party/mbedtls/library/block_cipher.c
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/block_cipher.c
@@ -9,7 +9,7 @@
  *  SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
  */

-#include "common.h"
+#include "tf_psa_crypto_common.h"

 #if defined(MBEDTLS_BLOCK_CIPHER_SOME_PSA)
 #include "psa/crypto.h"
@@ -94,7 +94,7 @@ int mbedtls_block_cipher_setup(mbedtls_block_cipher_context_t *ctx,
 #if defined(MBEDTLS_BLOCK_CIPHER_SOME_PSA)
     psa_key_type_t psa_key_type = psa_key_type_from_block_cipher_id(ctx->id);
     if (psa_key_type != PSA_KEY_TYPE_NONE &&
-        psa_can_do_cipher(psa_key_type, PSA_ALG_ECB_NO_PADDING)) {
+        psa_is_ready_for_cipher()) {
         ctx->engine = MBEDTLS_BLOCK_CIPHER_ENGINE_PSA;
         return 0;
     }
diff --git a/deps/LIEF/third-party/mbedtls/library/block_cipher_internal.h b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/block_cipher_internal.h
similarity index 96%
rename from deps/LIEF/third-party/mbedtls/library/block_cipher_internal.h
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/block_cipher_internal.h
index c57338b751e..a6226d195fd 100644
--- a/deps/LIEF/third-party/mbedtls/library/block_cipher_internal.h
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/block_cipher_internal.h
@@ -11,11 +11,11 @@
 #ifndef MBEDTLS_BLOCK_CIPHER_INTERNAL_H
 #define MBEDTLS_BLOCK_CIPHER_INTERNAL_H

-#include "mbedtls/build_info.h"
+#include "tf-psa-crypto/build_info.h"

-#include "mbedtls/cipher.h"
+#include "mbedtls/private/cipher.h"

-#include "mbedtls/block_cipher.h"
+#include "mbedtls/private/block_cipher.h"

 #ifdef __cplusplus
 extern "C" {
diff --git a/deps/LIEF/third-party/mbedtls/library/bn_mul.h b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/bn_mul.h
similarity index 99%
rename from deps/LIEF/third-party/mbedtls/library/bn_mul.h
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/bn_mul.h
index 0738469db4f..a80b2bc9d76 100644
--- a/deps/LIEF/third-party/mbedtls/library/bn_mul.h
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/bn_mul.h
@@ -24,9 +24,9 @@
 #ifndef MBEDTLS_BN_MUL_H
 #define MBEDTLS_BN_MUL_H

-#include "mbedtls/build_info.h"
+#include "tf-psa-crypto/build_info.h"

-#include "mbedtls/bignum.h"
+#include "mbedtls/private/bignum.h"


 /*
@@ -243,7 +243,7 @@
 /*
  * There are some issues around different compilers requiring different constraint
  * syntax for updating pointers from assembly code (see notes for
- * MBEDTLS_ASM_AARCH64_PTR_CONSTRAINT in common.h), especially on aarch64_32 (aka ILP32).
+ * MBEDTLS_ASM_AARCH64_PTR_CONSTRAINT in tf_psa_crypto_common.h), especially on aarch64_32 (aka ILP32).
  *
  * For this reason we cast the pointers to/from uintptr_t here.
  */
diff --git a/deps/LIEF/third-party/mbedtls/library/camellia.c b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/camellia.c
similarity index 99%
rename from deps/LIEF/third-party/mbedtls/library/camellia.c
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/camellia.c
index b1c0a08ca23..0007f792acc 100644
--- a/deps/LIEF/third-party/mbedtls/library/camellia.c
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/camellia.c
@@ -11,19 +11,17 @@
  *  http://info.isl.ntt.co.jp/crypt/eng/camellia/dl/01espec.pdf
  */

-#include "common.h"
+#include "tf_psa_crypto_common.h"

 #if defined(MBEDTLS_CAMELLIA_C)

-#include "mbedtls/camellia.h"
+#include "mbedtls/private/camellia.h"
 #include "mbedtls/platform_util.h"

 #include <string.h>

 #include "mbedtls/platform.h"

-#if !defined(MBEDTLS_CAMELLIA_ALT)
-
 static const unsigned char SIGMA_CHARS[6][8] =
 {
     { 0xa0, 0x9e, 0x66, 0x7f, 0x3b, 0xcc, 0x90, 0x8b },
@@ -657,7 +655,6 @@ int mbedtls_camellia_crypt_ctr(mbedtls_camellia_context *ctx,
     return 0;
 }
 #endif /* MBEDTLS_CIPHER_MODE_CTR */
-#endif /* !MBEDTLS_CAMELLIA_ALT */

 #if defined(MBEDTLS_SELF_TEST)

diff --git a/deps/LIEF/third-party/mbedtls/library/ccm.c b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/ccm.c
similarity index 99%
rename from deps/LIEF/third-party/mbedtls/library/ccm.c
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/ccm.c
index 969c6c781ba..6b55cfc0f3d 100644
--- a/deps/LIEF/third-party/mbedtls/library/ccm.c
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/ccm.c
@@ -14,13 +14,13 @@
  * RFC 5116 "An Interface and Algorithms for Authenticated Encryption"
  */

-#include "common.h"
+#include "tf_psa_crypto_common.h"

 #if defined(MBEDTLS_CCM_C)

-#include "mbedtls/ccm.h"
+#include "mbedtls/private/ccm.h"
 #include "mbedtls/platform_util.h"
-#include "mbedtls/error.h"
+#include "mbedtls/private/error_common.h"
 #include "mbedtls/constant_time.h"

 #if defined(MBEDTLS_BLOCK_CIPHER_C)
@@ -38,9 +38,6 @@
 #endif /* MBEDTLS_SELF_TEST && MBEDTLS_AES_C */
 #endif /* MBEDTLS_PLATFORM_C */

-#if !defined(MBEDTLS_CCM_ALT)
-
-
 /*
  * Initialize context
  */
@@ -627,7 +624,6 @@ int mbedtls_ccm_auth_decrypt(mbedtls_ccm_context *ctx, size_t length,
                             iv, iv_len, add, add_len,
                             input, output, tag, tag_len);
 }
-#endif /* !MBEDTLS_CCM_ALT */

 #if defined(MBEDTLS_SELF_TEST) && defined(MBEDTLS_CCM_GCM_CAN_AES)
 /*
diff --git a/deps/LIEF/third-party/mbedtls/library/chacha20.c b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/chacha20.c
similarity index 99%
rename from deps/LIEF/third-party/mbedtls/library/chacha20.c
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/chacha20.c
index acaae5b2e98..32147a2113c 100644
--- a/deps/LIEF/third-party/mbedtls/library/chacha20.c
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/chacha20.c
@@ -9,21 +9,19 @@
  *  SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
  */

-#include "common.h"
+#include "tf_psa_crypto_common.h"

 #if defined(MBEDTLS_CHACHA20_C)

-#include "mbedtls/chacha20.h"
+#include "mbedtls/private/chacha20.h"
 #include "mbedtls/platform_util.h"
-#include "mbedtls/error.h"
+#include "mbedtls/private/error_common.h"

 #include <stddef.h>
 #include <string.h>

 #include "mbedtls/platform.h"

-#if !defined(MBEDTLS_CHACHA20_ALT)
-
 #define ROTL32(value, amount) \
     ((uint32_t) ((value) << (amount)) | ((value) >> (32 - (amount))))

@@ -271,8 +269,6 @@ cleanup:
     return ret;
 }

-#endif /* !MBEDTLS_CHACHA20_ALT */
-
 #if defined(MBEDTLS_SELF_TEST)

 static const unsigned char test_keys[2][32] =
diff --git a/deps/LIEF/third-party/mbedtls/library/chachapoly.c b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/chachapoly.c
similarity index 98%
rename from deps/LIEF/third-party/mbedtls/library/chachapoly.c
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/chachapoly.c
index a1314eab6df..22aa7cdcc2b 100644
--- a/deps/LIEF/third-party/mbedtls/library/chachapoly.c
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/chachapoly.c
@@ -6,21 +6,19 @@
  *  Copyright The Mbed TLS Contributors
  *  SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
  */
-#include "common.h"
+#include "tf_psa_crypto_common.h"

 #if defined(MBEDTLS_CHACHAPOLY_C)

-#include "mbedtls/chachapoly.h"
+#include "mbedtls/private/chachapoly.h"
 #include "mbedtls/platform_util.h"
-#include "mbedtls/error.h"
+#include "mbedtls/private/error_common.h"
 #include "mbedtls/constant_time.h"

 #include <string.h>

 #include "mbedtls/platform.h"

-#if !defined(MBEDTLS_CHACHAPOLY_ALT)
-
 #define CHACHAPOLY_STATE_INIT       (0)
 #define CHACHAPOLY_STATE_AAD        (1)
 #define CHACHAPOLY_STATE_CIPHERTEXT (2)   /* Encrypting or decrypting */
@@ -318,8 +316,6 @@ int mbedtls_chachapoly_auth_decrypt(mbedtls_chachapoly_context *ctx,
     return 0;
 }

-#endif /* MBEDTLS_CHACHAPOLY_ALT */
-
 #if defined(MBEDTLS_SELF_TEST)

 static const unsigned char test_key[1][32] =
diff --git a/deps/LIEF/third-party/mbedtls/library/check_crypto_config.h b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/check_crypto_config.h
similarity index 69%
rename from deps/LIEF/third-party/mbedtls/library/check_crypto_config.h
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/check_crypto_config.h
index 6469e9f4393..3929125ae20 100644
--- a/deps/LIEF/third-party/mbedtls/library/check_crypto_config.h
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/check_crypto_config.h
@@ -24,8 +24,7 @@

 #if defined(PSA_WANT_ALG_CMAC) && \
     !(defined(PSA_WANT_KEY_TYPE_AES) || \
-    defined(PSA_WANT_KEY_TYPE_CAMELLIA) || \
-    defined(PSA_WANT_KEY_TYPE_DES))
+    defined(PSA_WANT_KEY_TYPE_CAMELLIA))
 #error "PSA_WANT_ALG_CMAC defined, but not all prerequisites"
 #endif

@@ -96,30 +95,6 @@
 #error "PSA_WANT_KEY_TYPE_DH_KEY_PAIR_xxx defined, but not all prerequisites"
 #endif

-#if defined(PSA_WANT_KEY_TYPE_ECC_KEY_PAIR)
-#if defined(MBEDTLS_DEPRECATED_REMOVED)
-#error "PSA_WANT_KEY_TYPE_ECC_KEY_PAIR is deprecated and will be removed in a \
-    future version of Mbed TLS. Please switch to new PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_xxx \
-    symbols, where xxx can be: USE, IMPORT, EXPORT, GENERATE, DERIVE"
-#elif defined(MBEDTLS_DEPRECATED_WARNING)
-#warning "PSA_WANT_KEY_TYPE_ECC_KEY_PAIR is deprecated and will be removed in a \
-    future version of Mbed TLS. Please switch to new PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_xxx \
-    symbols, where xxx can be: USE, IMPORT, EXPORT, GENERATE, DERIVE"
-#endif /* MBEDTLS_DEPRECATED_WARNING */
-#endif /* PSA_WANT_KEY_TYPE_ECC_KEY_PAIR */
-
-#if defined(PSA_WANT_KEY_TYPE_RSA_KEY_PAIR)
-#if defined(MBEDTLS_DEPRECATED_REMOVED)
-#error "PSA_WANT_KEY_TYPE_RSA_KEY_PAIR is deprecated and will be removed in a \
-    future version of Mbed TLS. Please switch to new PSA_WANT_KEY_TYPE_RSA_KEY_PAIR_xxx \
-    symbols, where xxx can be: USE, IMPORT, EXPORT, GENERATE, DERIVE"
-#elif defined(MBEDTLS_DEPRECATED_WARNING)
-#warning "PSA_WANT_KEY_TYPE_RSA_KEY_PAIR is deprecated and will be removed in a \
-    future version of Mbed TLS. Please switch to new PSA_WANT_KEY_TYPE_RSA_KEY_PAIR_xxx \
-    symbols, where xxx can be: USE, IMPORT, EXPORT, GENERATE, DERIVE"
-#endif /* MBEDTLS_DEPRECATED_WARNING */
-#endif /* PSA_WANT_KEY_TYPE_RSA_KEY_PAIR */
-
 #if defined(PSA_WANT_KEY_TYPE_RSA_KEY_PAIR_DERIVE)
 #error "PSA_WANT_KEY_TYPE_RSA_KEY_PAIR_DERIVE defined, but feature is not supported"
 #endif
@@ -128,11 +103,6 @@
 #error "PSA_WANT_KEY_TYPE_DH_KEY_PAIR_DERIVE defined, but feature is not supported"
 #endif

-#if defined(MBEDTLS_SSL_PROTO_TLS1_2) && defined(MBEDTLS_USE_PSA_CRYPTO) && \
-    !(defined(PSA_WANT_ALG_SHA_1) || defined(PSA_WANT_ALG_SHA_256) || defined(PSA_WANT_ALG_SHA_512))
-#error "MBEDTLS_SSL_PROTO_TLS1_2 defined, but not all prerequisites"
-#endif
-
 #if defined(PSA_WANT_ALG_TLS12_ECJPAKE_TO_PMS) && \
     !defined(PSA_WANT_ALG_SHA_256)
 #error "PSA_WANT_ALG_TLS12_ECJPAKE_TO_PMS defined, but not all prerequisites"
diff --git a/deps/LIEF/third-party/mbedtls/library/cipher.c b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/cipher.c
similarity index 83%
rename from deps/LIEF/third-party/mbedtls/library/cipher.c
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/cipher.c
index 2ae01dd84d5..54e67c156f9 100644
--- a/deps/LIEF/third-party/mbedtls/library/cipher.c
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/cipher.c
@@ -9,15 +9,15 @@
  *  SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
  */

-#include "common.h"
+#include "tf_psa_crypto_common.h"

 #if defined(MBEDTLS_CIPHER_C)

-#include "mbedtls/cipher.h"
+#include "mbedtls/private/cipher.h"
 #include "cipher_invasive.h"
 #include "cipher_wrap.h"
 #include "mbedtls/platform_util.h"
-#include "mbedtls/error.h"
+#include "mbedtls/private/error_common.h"
 #include "mbedtls/constant_time.h"
 #include "constant_time_internal.h"

@@ -25,32 +25,28 @@
 #include <string.h>

 #if defined(MBEDTLS_CHACHAPOLY_C)
-#include "mbedtls/chachapoly.h"
+#include "mbedtls/private/chachapoly.h"
 #endif

 #if defined(MBEDTLS_GCM_C)
-#include "mbedtls/gcm.h"
+#include "mbedtls/private/gcm.h"
 #endif

 #if defined(MBEDTLS_CCM_C)
-#include "mbedtls/ccm.h"
+#include "mbedtls/private/ccm.h"
 #endif

 #if defined(MBEDTLS_CHACHA20_C)
-#include "mbedtls/chacha20.h"
+#include "mbedtls/private/chacha20.h"
 #endif

 #if defined(MBEDTLS_CMAC_C)
-#include "mbedtls/cmac.h"
+#include "mbedtls/private/cmac.h"
 #endif

-#if defined(MBEDTLS_USE_PSA_CRYPTO) && !defined(MBEDTLS_DEPRECATED_REMOVED)
+#if !defined(MBEDTLS_DEPRECATED_REMOVED)
 #include "psa/crypto.h"
-#endif /* MBEDTLS_USE_PSA_CRYPTO && !MBEDTLS_DEPRECATED_REMOVED */
-
-#if defined(MBEDTLS_NIST_KW_C)
-#include "mbedtls/nist_kw.h"
-#endif
+#endif /* !MBEDTLS_DEPRECATED_REMOVED */

 #include "mbedtls/platform.h"

@@ -133,7 +129,7 @@ const mbedtls_cipher_info_t *mbedtls_cipher_info_from_values(
     return NULL;
 }

-#if defined(MBEDTLS_USE_PSA_CRYPTO) && !defined(MBEDTLS_DEPRECATED_REMOVED)
+#if !defined(MBEDTLS_DEPRECATED_REMOVED)
 static inline psa_key_type_t mbedtls_psa_translate_cipher_type(
     mbedtls_cipher_type_t cipher)
 {
@@ -197,7 +193,7 @@ static inline psa_algorithm_t mbedtls_psa_translate_cipher_mode(
             return 0;
     }
 }
-#endif /* MBEDTLS_USE_PSA_CRYPTO && !MBEDTLS_DEPRECATED_REMOVED */
+#endif /* !MBEDTLS_DEPRECATED_REMOVED */

 void mbedtls_cipher_init(mbedtls_cipher_context_t *ctx)
 {
@@ -210,7 +206,7 @@ void mbedtls_cipher_free(mbedtls_cipher_context_t *ctx)
         return;
     }

-#if defined(MBEDTLS_USE_PSA_CRYPTO) && !defined(MBEDTLS_DEPRECATED_REMOVED)
+#if !defined(MBEDTLS_DEPRECATED_REMOVED)
     if (ctx->psa_enabled == 1) {
         if (ctx->cipher_ctx != NULL) {
             mbedtls_cipher_context_psa * const cipher_psa =
@@ -227,7 +223,7 @@ void mbedtls_cipher_free(mbedtls_cipher_context_t *ctx)
         mbedtls_platform_zeroize(ctx, sizeof(mbedtls_cipher_context_t));
         return;
     }
-#endif /* MBEDTLS_USE_PSA_CRYPTO && !MBEDTLS_DEPRECATED_REMOVED */
+#endif /* !MBEDTLS_DEPRECATED_REMOVED */

 #if defined(MBEDTLS_CMAC_C)
     if (ctx->cmac_ctx) {
@@ -264,7 +260,7 @@ int mbedtls_cipher_setup(mbedtls_cipher_context_t *ctx,
     return 0;
 }

-#if defined(MBEDTLS_USE_PSA_CRYPTO) && !defined(MBEDTLS_DEPRECATED_REMOVED)
+#if !defined(MBEDTLS_DEPRECATED_REMOVED)
 int mbedtls_cipher_setup_psa(mbedtls_cipher_context_t *ctx,
                              const mbedtls_cipher_info_t *cipher_info,
                              size_t taglen)
@@ -298,7 +294,7 @@ int mbedtls_cipher_setup_psa(mbedtls_cipher_context_t *ctx,
     ctx->psa_enabled = 1;
     return 0;
 }
-#endif /* MBEDTLS_USE_PSA_CRYPTO && !MBEDTLS_DEPRECATED_REMOVED */
+#endif /* !MBEDTLS_DEPRECATED_REMOVED */

 int mbedtls_cipher_setkey(mbedtls_cipher_context_t *ctx,
                           const unsigned char *key,
@@ -318,7 +314,7 @@ int mbedtls_cipher_setkey(mbedtls_cipher_context_t *ctx,
     }
 #endif

-#if defined(MBEDTLS_USE_PSA_CRYPTO) && !defined(MBEDTLS_DEPRECATED_REMOVED)
+#if !defined(MBEDTLS_DEPRECATED_REMOVED)
     if (ctx->psa_enabled == 1) {
         mbedtls_cipher_context_psa * const cipher_psa =
             (mbedtls_cipher_context_psa *) ctx->cipher_ctx;
@@ -374,7 +370,7 @@ int mbedtls_cipher_setkey(mbedtls_cipher_context_t *ctx,
         ctx->operation = operation;
         return 0;
     }
-#endif /* MBEDTLS_USE_PSA_CRYPTO && !MBEDTLS_DEPRECATED_REMOVED */
+#endif /* !MBEDTLS_DEPRECATED_REMOVED */

     if ((ctx->cipher_info->flags & MBEDTLS_CIPHER_VARIABLE_KEY_LEN) == 0 &&
         (int) mbedtls_cipher_info_get_key_bitlen(ctx->cipher_info) != key_bitlen) {
@@ -419,14 +415,14 @@ int mbedtls_cipher_set_iv(mbedtls_cipher_context_t *ctx,
     if (ctx->cipher_info == NULL) {
         return MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA;
     }
-#if defined(MBEDTLS_USE_PSA_CRYPTO) && !defined(MBEDTLS_DEPRECATED_REMOVED)
+#if !defined(MBEDTLS_DEPRECATED_REMOVED)
     if (ctx->psa_enabled == 1) {
         /* While PSA Crypto has an API for multipart
          * operations, we currently don't make it
          * accessible through the cipher layer. */
         return MBEDTLS_ERR_CIPHER_FEATURE_UNAVAILABLE;
     }
-#endif /* MBEDTLS_USE_PSA_CRYPTO && !MBEDTLS_DEPRECATED_REMOVED */
+#endif /* !MBEDTLS_DEPRECATED_REMOVED */

     /* avoid buffer overflow in ctx->iv */
     if (iv_len > MBEDTLS_MAX_IV_LENGTH) {
@@ -515,13 +511,13 @@ int mbedtls_cipher_reset(mbedtls_cipher_context_t *ctx)
         return MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA;
     }

-#if defined(MBEDTLS_USE_PSA_CRYPTO) && !defined(MBEDTLS_DEPRECATED_REMOVED)
+#if !defined(MBEDTLS_DEPRECATED_REMOVED)
     if (ctx->psa_enabled == 1) {
         /* We don't support resetting PSA-based
          * cipher contexts, yet. */
         return MBEDTLS_ERR_CIPHER_FEATURE_UNAVAILABLE;
     }
-#endif /* MBEDTLS_USE_PSA_CRYPTO && !MBEDTLS_DEPRECATED_REMOVED */
+#endif /* !MBEDTLS_DEPRECATED_REMOVED */

     ctx->unprocessed_len = 0;

@@ -536,14 +532,14 @@ int mbedtls_cipher_update_ad(mbedtls_cipher_context_t *ctx,
         return MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA;
     }

-#if defined(MBEDTLS_USE_PSA_CRYPTO) && !defined(MBEDTLS_DEPRECATED_REMOVED)
+#if !defined(MBEDTLS_DEPRECATED_REMOVED)
     if (ctx->psa_enabled == 1) {
         /* While PSA Crypto has an API for multipart
          * operations, we currently don't make it
          * accessible through the cipher layer. */
         return MBEDTLS_ERR_CIPHER_FEATURE_UNAVAILABLE;
     }
-#endif /* MBEDTLS_USE_PSA_CRYPTO && !MBEDTLS_DEPRECATED_REMOVED */
+#endif /* !MBEDTLS_DEPRECATED_REMOVED */

 #if defined(MBEDTLS_GCM_C)
     if (MBEDTLS_MODE_GCM == ((mbedtls_cipher_mode_t) ctx->cipher_info->mode)) {
@@ -587,14 +583,14 @@ int mbedtls_cipher_update(mbedtls_cipher_context_t *ctx, const unsigned char *in
         return MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA;
     }

-#if defined(MBEDTLS_USE_PSA_CRYPTO) && !defined(MBEDTLS_DEPRECATED_REMOVED)
+#if !defined(MBEDTLS_DEPRECATED_REMOVED)
     if (ctx->psa_enabled == 1) {
         /* While PSA Crypto has an API for multipart
          * operations, we currently don't make it
          * accessible through the cipher layer. */
         return MBEDTLS_ERR_CIPHER_FEATURE_UNAVAILABLE;
     }
-#endif /* MBEDTLS_USE_PSA_CRYPTO && !MBEDTLS_DEPRECATED_REMOVED */
+#endif /* !MBEDTLS_DEPRECATED_REMOVED */

     *olen = 0;
     block_size = mbedtls_cipher_get_block_size(ctx);
@@ -846,7 +842,8 @@ static void add_pkcs_padding(unsigned char *output, size_t output_len,
  */
 MBEDTLS_STATIC_TESTABLE int mbedtls_get_pkcs_padding(unsigned char *input,
                                                      size_t input_len,
-                                                     size_t *data_len)
+                                                     size_t *data_len,
+                                                     size_t *invalid_padding)
 {
     size_t i, pad_idx;
     unsigned char padding_len;
@@ -872,131 +869,10 @@ MBEDTLS_STATIC_TESTABLE int mbedtls_get_pkcs_padding(unsigned char *input,
     /* If the padding is invalid, set the output length to 0 */
     *data_len = mbedtls_ct_if(bad, 0, input_len - padding_len);

-    return mbedtls_ct_error_if_else_0(bad, MBEDTLS_ERR_CIPHER_INVALID_PADDING);
-}
-#endif /* MBEDTLS_CIPHER_PADDING_PKCS7 */
-
-#if defined(MBEDTLS_CIPHER_PADDING_ONE_AND_ZEROS)
-/*
- * One and zeros padding: fill with 80 00 ... 00
- */
-static void add_one_and_zeros_padding(unsigned char *output,
-                                      size_t output_len, size_t data_len)
-{
-    size_t padding_len = output_len - data_len;
-    unsigned char i = 0;
-
-    output[data_len] = 0x80;
-    for (i = 1; i < padding_len; i++) {
-        output[data_len + i] = 0x00;
-    }
-}
-
-static int get_one_and_zeros_padding(unsigned char *input, size_t input_len,
-                                     size_t *data_len)
-{
-    if (NULL == input || NULL == data_len) {
-        return MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA;
-    }
-
-    mbedtls_ct_condition_t in_padding = MBEDTLS_CT_TRUE;
-    mbedtls_ct_condition_t bad = MBEDTLS_CT_TRUE;
-
-    *data_len = 0;
-
-    for (ptrdiff_t i = (ptrdiff_t) (input_len) - 1; i >= 0; i--) {
-        mbedtls_ct_condition_t is_nonzero = mbedtls_ct_bool(input[i]);
-
-        mbedtls_ct_condition_t hit_first_nonzero = mbedtls_ct_bool_and(is_nonzero, in_padding);
-
-        *data_len = mbedtls_ct_size_if(hit_first_nonzero, i, *data_len);
-
-        bad = mbedtls_ct_bool_if(hit_first_nonzero, mbedtls_ct_uint_ne(input[i], 0x80), bad);
-
-        in_padding = mbedtls_ct_bool_and(in_padding, mbedtls_ct_bool_not(is_nonzero));
-    }
-
-    return mbedtls_ct_error_if_else_0(bad, MBEDTLS_ERR_CIPHER_INVALID_PADDING);
-}
-#endif /* MBEDTLS_CIPHER_PADDING_ONE_AND_ZEROS */
-
-#if defined(MBEDTLS_CIPHER_PADDING_ZEROS_AND_LEN)
-/*
- * Zeros and len padding: fill with 00 ... 00 ll, where ll is padding length
- */
-static void add_zeros_and_len_padding(unsigned char *output,
-                                      size_t output_len, size_t data_len)
-{
-    size_t padding_len = output_len - data_len;
-    unsigned char i = 0;
-
-    for (i = 1; i < padding_len; i++) {
-        output[data_len + i - 1] = 0x00;
-    }
-    output[output_len - 1] = (unsigned char) padding_len;
-}
-
-static int get_zeros_and_len_padding(unsigned char *input, size_t input_len,
-                                     size_t *data_len)
-{
-    size_t i, pad_idx;
-    unsigned char padding_len;
-    mbedtls_ct_condition_t bad;
-
-    if (NULL == input || NULL == data_len) {
-        return MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA;
-    }
-
-    padding_len = input[input_len - 1];
-    *data_len = input_len - padding_len;
-
-    /* Avoid logical || since it results in a branch */
-    bad = mbedtls_ct_uint_gt(padding_len, input_len);
-    bad = mbedtls_ct_bool_or(bad, mbedtls_ct_uint_eq(padding_len, 0));
-
-    /* The number of bytes checked must be independent of padding_len */
-    pad_idx = input_len - padding_len;
-    for (i = 0; i < input_len - 1; i++) {
-        mbedtls_ct_condition_t is_padding = mbedtls_ct_uint_ge(i, pad_idx);
-        mbedtls_ct_condition_t nonzero_pad_byte;
-        nonzero_pad_byte = mbedtls_ct_bool_if_else_0(is_padding, mbedtls_ct_bool(input[i]));
-        bad = mbedtls_ct_bool_or(bad, nonzero_pad_byte);
-    }
-
-    return mbedtls_ct_error_if_else_0(bad, MBEDTLS_ERR_CIPHER_INVALID_PADDING);
-}
-#endif /* MBEDTLS_CIPHER_PADDING_ZEROS_AND_LEN */
-
-#if defined(MBEDTLS_CIPHER_PADDING_ZEROS)
-/*
- * Zero padding: fill with 00 ... 00
- */
-static void add_zeros_padding(unsigned char *output,
-                              size_t output_len, size_t data_len)
-{
-    memset(output + data_len, 0, output_len - data_len);
-}
-
-static int get_zeros_padding(unsigned char *input, size_t input_len,
-                             size_t *data_len)
-{
-    size_t i;
-    mbedtls_ct_condition_t done = MBEDTLS_CT_FALSE, prev_done;
-
-    if (NULL == input || NULL == data_len) {
-        return MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA;
-    }
-
-    *data_len = 0;
-    for (i = input_len; i > 0; i--) {
-        prev_done = done;
-        done = mbedtls_ct_bool_or(done, mbedtls_ct_uint_ne(input[i-1], 0));
-        *data_len = mbedtls_ct_size_if(mbedtls_ct_bool_ne(done, prev_done), i, *data_len);
-    }
-
+    *invalid_padding = mbedtls_ct_size_if_else_0(bad, SIZE_MAX);
     return 0;
 }
-#endif /* MBEDTLS_CIPHER_PADDING_ZEROS */
+#endif /* MBEDTLS_CIPHER_PADDING_PKCS7 */

 /*
  * No padding: don't pad :)
@@ -1005,35 +881,37 @@ static int get_zeros_padding(unsigned char *input, size_t input_len,
  * but a trivial get_padding function
  */
 static int get_no_padding(unsigned char *input, size_t input_len,
-                          size_t *data_len)
+                          size_t *data_len, size_t *invalid_padding)
 {
     if (NULL == input || NULL == data_len) {
         return MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA;
     }

     *data_len = input_len;
-
+    *invalid_padding = 0;
     return 0;
 }
 #endif /* MBEDTLS_CIPHER_MODE_WITH_PADDING */

-int mbedtls_cipher_finish(mbedtls_cipher_context_t *ctx,
-                          unsigned char *output, size_t *olen)
+int mbedtls_cipher_finish_padded(mbedtls_cipher_context_t *ctx,
+                                 unsigned char *output, size_t *olen,
+                                 size_t *invalid_padding)
 {
     if (ctx->cipher_info == NULL) {
         return MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA;
     }

-#if defined(MBEDTLS_USE_PSA_CRYPTO) && !defined(MBEDTLS_DEPRECATED_REMOVED)
+#if !defined(MBEDTLS_DEPRECATED_REMOVED)
     if (ctx->psa_enabled == 1) {
         /* While PSA Crypto has an API for multipart
          * operations, we currently don't make it
          * accessible through the cipher layer. */
         return MBEDTLS_ERR_CIPHER_FEATURE_UNAVAILABLE;
     }
-#endif /* MBEDTLS_USE_PSA_CRYPTO && !MBEDTLS_DEPRECATED_REMOVED */
+#endif /* !MBEDTLS_DEPRECATED_REMOVED */

     *olen = 0;
+    *invalid_padding = 0;

 #if defined(MBEDTLS_CIPHER_MODE_WITH_PADDING)
     /* CBC mode requires padding so we make sure a call to
@@ -1110,7 +988,7 @@ int mbedtls_cipher_finish(mbedtls_cipher_context_t *ctx,
         /* Set output size for decryption */
         if (MBEDTLS_DECRYPT == ctx->operation) {
             return ctx->get_padding(output, mbedtls_cipher_get_block_size(ctx),
-                                    olen);
+                                    olen, invalid_padding);
         }

         /* Set output size for encryption */
@@ -1124,6 +1002,19 @@ int mbedtls_cipher_finish(mbedtls_cipher_context_t *ctx,
     return MBEDTLS_ERR_CIPHER_FEATURE_UNAVAILABLE;
 }

+int mbedtls_cipher_finish(mbedtls_cipher_context_t *ctx,
+                          unsigned char *output, size_t *olen)
+{
+    size_t invalid_padding = 0;
+    int ret = mbedtls_cipher_finish_padded(ctx, output, olen,
+                                           &invalid_padding);
+    if (ret == 0) {
+        ret = mbedtls_ct_error_if_else_0(invalid_padding,
+                                         MBEDTLS_ERR_CIPHER_INVALID_PADDING);
+    }
+    return ret;
+}
+
 #if defined(MBEDTLS_CIPHER_MODE_WITH_PADDING)
 int mbedtls_cipher_set_padding_mode(mbedtls_cipher_context_t *ctx,
                                     mbedtls_cipher_padding_t mode)
@@ -1133,7 +1024,7 @@ int mbedtls_cipher_set_padding_mode(mbedtls_cipher_context_t *ctx,
         return MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA;
     }

-#if defined(MBEDTLS_USE_PSA_CRYPTO) && !defined(MBEDTLS_DEPRECATED_REMOVED)
+#if !defined(MBEDTLS_DEPRECATED_REMOVED)
     if (ctx->psa_enabled == 1) {
         /* While PSA Crypto knows about CBC padding
          * schemes, we currently don't make them
@@ -1144,7 +1035,7 @@ int mbedtls_cipher_set_padding_mode(mbedtls_cipher_context_t *ctx,

         return 0;
     }
-#endif /* MBEDTLS_USE_PSA_CRYPTO && !MBEDTLS_DEPRECATED_REMOVED */
+#endif /* !MBEDTLS_DEPRECATED_REMOVED */

     switch (mode) {
 #if defined(MBEDTLS_CIPHER_PADDING_PKCS7)
@@ -1152,24 +1043,6 @@ int mbedtls_cipher_set_padding_mode(mbedtls_cipher_context_t *ctx,
             ctx->add_padding = add_pkcs_padding;
             ctx->get_padding = mbedtls_get_pkcs_padding;
             break;
-#endif
-#if defined(MBEDTLS_CIPHER_PADDING_ONE_AND_ZEROS)
-        case MBEDTLS_PADDING_ONE_AND_ZEROS:
-            ctx->add_padding = add_one_and_zeros_padding;
-            ctx->get_padding = get_one_and_zeros_padding;
-            break;
-#endif
-#if defined(MBEDTLS_CIPHER_PADDING_ZEROS_AND_LEN)
-        case MBEDTLS_PADDING_ZEROS_AND_LEN:
-            ctx->add_padding = add_zeros_and_len_padding;
-            ctx->get_padding = get_zeros_and_len_padding;
-            break;
-#endif
-#if defined(MBEDTLS_CIPHER_PADDING_ZEROS)
-        case MBEDTLS_PADDING_ZEROS:
-            ctx->add_padding = add_zeros_padding;
-            ctx->get_padding = get_zeros_padding;
-            break;
 #endif
         case MBEDTLS_PADDING_NONE:
             ctx->add_padding = NULL;
@@ -1196,14 +1069,14 @@ int mbedtls_cipher_write_tag(mbedtls_cipher_context_t *ctx,
         return MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA;
     }

-#if defined(MBEDTLS_USE_PSA_CRYPTO) && !defined(MBEDTLS_DEPRECATED_REMOVED)
+#if !defined(MBEDTLS_DEPRECATED_REMOVED)
     if (ctx->psa_enabled == 1) {
         /* While PSA Crypto has an API for multipart
          * operations, we currently don't make it
          * accessible through the cipher layer. */
         return MBEDTLS_ERR_CIPHER_FEATURE_UNAVAILABLE;
     }
-#endif /* MBEDTLS_USE_PSA_CRYPTO && !MBEDTLS_DEPRECATED_REMOVED */
+#endif /* !MBEDTLS_DEPRECATED_REMOVED */

 #if defined(MBEDTLS_GCM_C)
     if (MBEDTLS_MODE_GCM == ((mbedtls_cipher_mode_t) ctx->cipher_info->mode)) {
@@ -1245,14 +1118,14 @@ int mbedtls_cipher_check_tag(mbedtls_cipher_context_t *ctx,
         return MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA;
     }

-#if defined(MBEDTLS_USE_PSA_CRYPTO) && !defined(MBEDTLS_DEPRECATED_REMOVED)
+#if !defined(MBEDTLS_DEPRECATED_REMOVED)
     if (ctx->psa_enabled == 1) {
         /* While PSA Crypto has an API for multipart
          * operations, we currently don't make it
          * accessible through the cipher layer. */
         return MBEDTLS_ERR_CIPHER_FEATURE_UNAVAILABLE;
     }
-#endif /* MBEDTLS_USE_PSA_CRYPTO && !MBEDTLS_DEPRECATED_REMOVED */
+#endif /* !MBEDTLS_DEPRECATED_REMOVED */

     /* Status to return on a non-authenticated algorithm. */
     ret = MBEDTLS_ERR_CIPHER_FEATURE_UNAVAILABLE;
@@ -1320,7 +1193,7 @@ int mbedtls_cipher_crypt(mbedtls_cipher_context_t *ctx,
     int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
     size_t finish_olen;

-#if defined(MBEDTLS_USE_PSA_CRYPTO) && !defined(MBEDTLS_DEPRECATED_REMOVED)
+#if !defined(MBEDTLS_DEPRECATED_REMOVED)
     if (ctx->psa_enabled == 1) {
         /* As in the non-PSA case, we don't check that
          * a key has been set. If not, the key slot will
@@ -1378,7 +1251,7 @@ int mbedtls_cipher_crypt(mbedtls_cipher_context_t *ctx,
         *olen += part_len;
         return 0;
     }
-#endif /* MBEDTLS_USE_PSA_CRYPTO && !MBEDTLS_DEPRECATED_REMOVED */
+#endif /* !MBEDTLS_DEPRECATED_REMOVED */

     if ((ret = mbedtls_cipher_set_iv(ctx, iv, iv_len)) != 0) {
         return ret;
@@ -1393,14 +1266,17 @@ int mbedtls_cipher_crypt(mbedtls_cipher_context_t *ctx,
         return ret;
     }

-    if ((ret = mbedtls_cipher_finish(ctx, output + *olen,
-                                     &finish_olen)) != 0) {
+    size_t invalid_padding = 0;
+    if ((ret = mbedtls_cipher_finish_padded(ctx, output + *olen,
+                                            &finish_olen,
+                                            &invalid_padding)) != 0) {
         return ret;
     }
-
     *olen += finish_olen;

-    return 0;
+    ret = mbedtls_ct_error_if_else_0(invalid_padding,
+                                     MBEDTLS_ERR_CIPHER_INVALID_PADDING);
+    return ret;
 }

 #if defined(MBEDTLS_CIPHER_MODE_AEAD)
@@ -1415,7 +1291,7 @@ static int mbedtls_cipher_aead_encrypt(mbedtls_cipher_context_t *ctx,
                                        unsigned char *output, size_t *olen,
                                        unsigned char *tag, size_t tag_len)
 {
-#if defined(MBEDTLS_USE_PSA_CRYPTO) && !defined(MBEDTLS_DEPRECATED_REMOVED)
+#if !defined(MBEDTLS_DEPRECATED_REMOVED)
     if (ctx->psa_enabled == 1) {
         /* As in the non-PSA case, we don't check that
          * a key has been set. If not, the key slot will
@@ -1446,7 +1322,7 @@ static int mbedtls_cipher_aead_encrypt(mbedtls_cipher_context_t *ctx,
         *olen -= tag_len;
         return 0;
     }
-#endif /* MBEDTLS_USE_PSA_CRYPTO && !MBEDTLS_DEPRECATED_REMOVED */
+#endif /* !MBEDTLS_DEPRECATED_REMOVED */

 #if defined(MBEDTLS_GCM_C)
     if (MBEDTLS_MODE_GCM == ((mbedtls_cipher_mode_t) ctx->cipher_info->mode)) {
@@ -1492,7 +1368,7 @@ static int mbedtls_cipher_aead_decrypt(mbedtls_cipher_context_t *ctx,
                                        unsigned char *output, size_t *olen,
                                        const unsigned char *tag, size_t tag_len)
 {
-#if defined(MBEDTLS_USE_PSA_CRYPTO) && !defined(MBEDTLS_DEPRECATED_REMOVED)
+#if !defined(MBEDTLS_DEPRECATED_REMOVED)
     if (ctx->psa_enabled == 1) {
         /* As in the non-PSA case, we don't check that
          * a key has been set. If not, the key slot will
@@ -1524,7 +1400,7 @@ static int mbedtls_cipher_aead_decrypt(mbedtls_cipher_context_t *ctx,

         return 0;
     }
-#endif /* MBEDTLS_USE_PSA_CRYPTO && !MBEDTLS_DEPRECATED_REMOVED */
+#endif /* !MBEDTLS_DEPRECATED_REMOVED */

 #if defined(MBEDTLS_GCM_C)
     if (MBEDTLS_MODE_GCM == ((mbedtls_cipher_mode_t) ctx->cipher_info->mode)) {
@@ -1584,9 +1460,9 @@ static int mbedtls_cipher_aead_decrypt(mbedtls_cipher_context_t *ctx,
 }
 #endif /* MBEDTLS_CIPHER_MODE_AEAD */

-#if defined(MBEDTLS_CIPHER_MODE_AEAD) || defined(MBEDTLS_NIST_KW_C)
+#if defined(MBEDTLS_CIPHER_MODE_AEAD)
 /*
- * Packet-oriented encryption for AEAD/NIST_KW: public function.
+ * Packet-oriented encryption for AEAD: public function.
  */
 int mbedtls_cipher_auth_encrypt_ext(mbedtls_cipher_context_t *ctx,
                                     const unsigned char *iv, size_t iv_len,
@@ -1595,32 +1471,6 @@ int mbedtls_cipher_auth_encrypt_ext(mbedtls_cipher_context_t *ctx,
                                     unsigned char *output, size_t output_len,
                                     size_t *olen, size_t tag_len)
 {
-#if defined(MBEDTLS_NIST_KW_C)
-    if (
-#if defined(MBEDTLS_USE_PSA_CRYPTO) && !defined(MBEDTLS_DEPRECATED_REMOVED)
-        ctx->psa_enabled == 0 &&
-#endif
-        (MBEDTLS_MODE_KW == ((mbedtls_cipher_mode_t) ctx->cipher_info->mode) ||
-         MBEDTLS_MODE_KWP == ((mbedtls_cipher_mode_t) ctx->cipher_info->mode))) {
-        mbedtls_nist_kw_mode_t mode =
-            (MBEDTLS_MODE_KW == ((mbedtls_cipher_mode_t) ctx->cipher_info->mode)) ?
-            MBEDTLS_KW_MODE_KW : MBEDTLS_KW_MODE_KWP;
-
-        /* There is no iv, tag or ad associated with KW and KWP,
-         * so these length should be 0 as documented. */
-        if (iv_len != 0 || tag_len != 0 || ad_len != 0) {
-            return MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA;
-        }
-
-        (void) iv;
-        (void) ad;
-
-        return mbedtls_nist_kw_wrap(ctx->cipher_ctx, mode, input, ilen,
-                                    output, olen, output_len);
-    }
-#endif /* MBEDTLS_NIST_KW_C */
-
-#if defined(MBEDTLS_CIPHER_MODE_AEAD)
     /* AEAD case: check length before passing on to shared function */
     if (output_len < ilen + tag_len) {
         return MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA;
@@ -1631,13 +1481,10 @@ int mbedtls_cipher_auth_encrypt_ext(mbedtls_cipher_context_t *ctx,
                                           output + ilen, tag_len);
     *olen += tag_len;
     return ret;
-#else
-    return MBEDTLS_ERR_CIPHER_FEATURE_UNAVAILABLE;
-#endif /* MBEDTLS_CIPHER_MODE_AEAD */
 }

 /*
- * Packet-oriented decryption for AEAD/NIST_KW: public function.
+ * Packet-oriented decryption for AEAD: public function.
  */
 int mbedtls_cipher_auth_decrypt_ext(mbedtls_cipher_context_t *ctx,
                                     const unsigned char *iv, size_t iv_len,
@@ -1646,32 +1493,6 @@ int mbedtls_cipher_auth_decrypt_ext(mbedtls_cipher_context_t *ctx,
                                     unsigned char *output, size_t output_len,
                                     size_t *olen, size_t tag_len)
 {
-#if defined(MBEDTLS_NIST_KW_C)
-    if (
-#if defined(MBEDTLS_USE_PSA_CRYPTO) && !defined(MBEDTLS_DEPRECATED_REMOVED)
-        ctx->psa_enabled == 0 &&
-#endif
-        (MBEDTLS_MODE_KW == ((mbedtls_cipher_mode_t) ctx->cipher_info->mode) ||
-         MBEDTLS_MODE_KWP == ((mbedtls_cipher_mode_t) ctx->cipher_info->mode))) {
-        mbedtls_nist_kw_mode_t mode =
-            (MBEDTLS_MODE_KW == ((mbedtls_cipher_mode_t) ctx->cipher_info->mode)) ?
-            MBEDTLS_KW_MODE_KW : MBEDTLS_KW_MODE_KWP;
-
-        /* There is no iv, tag or ad associated with KW and KWP,
-         * so these length should be 0 as documented. */
-        if (iv_len != 0 || tag_len != 0 || ad_len != 0) {
-            return MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA;
-        }
-
-        (void) iv;
-        (void) ad;
-
-        return mbedtls_nist_kw_unwrap(ctx->cipher_ctx, mode, input, ilen,
-                                      output, olen, output_len);
-    }
-#endif /* MBEDTLS_NIST_KW_C */
-
-#if defined(MBEDTLS_CIPHER_MODE_AEAD)
     /* AEAD case: check length before passing on to shared function */
     if (ilen < tag_len || output_len < ilen - tag_len) {
         return MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA;
@@ -1680,10 +1501,7 @@ int mbedtls_cipher_auth_decrypt_ext(mbedtls_cipher_context_t *ctx,
     return mbedtls_cipher_aead_decrypt(ctx, iv, iv_len, ad, ad_len,
                                        input, ilen - tag_len, output, olen,
                                        input + ilen - tag_len, tag_len);
-#else
-    return MBEDTLS_ERR_CIPHER_FEATURE_UNAVAILABLE;
-#endif /* MBEDTLS_CIPHER_MODE_AEAD */
 }
-#endif /* MBEDTLS_CIPHER_MODE_AEAD || MBEDTLS_NIST_KW_C */
+#endif /* MBEDTLS_CIPHER_MODE_AEAD */

 #endif /* MBEDTLS_CIPHER_C */
diff --git a/deps/LIEF/third-party/mbedtls/library/cipher_invasive.h b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/cipher_invasive.h
similarity index 86%
rename from deps/LIEF/third-party/mbedtls/library/cipher_invasive.h
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/cipher_invasive.h
index 702f8f73e9e..cc995147e48 100644
--- a/deps/LIEF/third-party/mbedtls/library/cipher_invasive.h
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/cipher_invasive.h
@@ -14,13 +14,14 @@
 #ifndef MBEDTLS_CIPHER_INVASIVE_H
 #define MBEDTLS_CIPHER_INVASIVE_H

-#include "common.h"
+#include "tf_psa_crypto_common.h"

 #if defined(MBEDTLS_TEST_HOOKS) && defined(MBEDTLS_CIPHER_C)

 MBEDTLS_STATIC_TESTABLE int mbedtls_get_pkcs_padding(unsigned char *input,
                                                      size_t input_len,
-                                                     size_t *data_len);
+                                                     size_t *data_len,
+                                                     size_t *invalid_padding);

 #endif

diff --git a/deps/LIEF/third-party/mbedtls/library/cipher_wrap.c b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/cipher_wrap.c
similarity index 79%
rename from deps/LIEF/third-party/mbedtls/library/cipher_wrap.c
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/cipher_wrap.c
index b4c21ee3954..4d45d6f6f5d 100644
--- a/deps/LIEF/third-party/mbedtls/library/cipher_wrap.c
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/cipher_wrap.c
@@ -9,51 +9,39 @@
  *  SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
  */

-#include "common.h"
+#include "tf_psa_crypto_common.h"

 #if defined(MBEDTLS_CIPHER_C)

 #include "cipher_wrap.h"
-#include "mbedtls/error.h"
+#include "mbedtls/private/error_common.h"

 #if defined(MBEDTLS_CHACHAPOLY_C)
-#include "mbedtls/chachapoly.h"
+#include "mbedtls/private/chachapoly.h"
 #endif

 #if defined(MBEDTLS_AES_C)
-#include "mbedtls/aes.h"
+#include "mbedtls/private/aes.h"
 #endif

 #if defined(MBEDTLS_CAMELLIA_C)
-#include "mbedtls/camellia.h"
+#include "mbedtls/private/camellia.h"
 #endif

 #if defined(MBEDTLS_ARIA_C)
-#include "mbedtls/aria.h"
-#endif
-
-#if defined(MBEDTLS_DES_C)
-#include "mbedtls/des.h"
+#include "mbedtls/private/aria.h"
 #endif

 #if defined(MBEDTLS_CHACHA20_C)
-#include "mbedtls/chacha20.h"
+#include "mbedtls/private/chacha20.h"
 #endif

 #if defined(MBEDTLS_GCM_C)
-#include "mbedtls/gcm.h"
+#include "mbedtls/private/gcm.h"
 #endif

 #if defined(MBEDTLS_CCM_C)
-#include "mbedtls/ccm.h"
-#endif
-
-#if defined(MBEDTLS_NIST_KW_C)
-#include "mbedtls/nist_kw.h"
-#endif
-
-#if defined(MBEDTLS_CIPHER_NULL_CIPHER)
-#include <string.h>
+#include "mbedtls/private/ccm.h"
 #endif

 #include "mbedtls/platform.h"
@@ -83,15 +71,6 @@ enum mbedtls_cipher_base_index {
 #if defined(MBEDTLS_CHACHAPOLY_C)
     MBEDTLS_CIPHER_BASE_INDEX_CHACHAPOLY_BASE,
 #endif
-#if defined(MBEDTLS_DES_C)
-    MBEDTLS_CIPHER_BASE_INDEX_DES_EDE3,
-#endif
-#if defined(MBEDTLS_DES_C)
-    MBEDTLS_CIPHER_BASE_INDEX_DES_EDE,
-#endif
-#if defined(MBEDTLS_DES_C)
-    MBEDTLS_CIPHER_BASE_INDEX_DES,
-#endif
 #if defined(MBEDTLS_CIPHER_HAVE_GCM_AES_VIA_LEGACY_OR_USE_PSA)
     MBEDTLS_CIPHER_BASE_INDEX_GCM_AES,
 #endif
@@ -101,12 +80,6 @@ enum mbedtls_cipher_base_index {
 #if defined(MBEDTLS_GCM_C) && defined(MBEDTLS_CAMELLIA_C)
     MBEDTLS_CIPHER_BASE_INDEX_GCM_CAMELLIA,
 #endif
-#if defined(MBEDTLS_NIST_KW_C)
-    MBEDTLS_CIPHER_BASE_INDEX_KW_AES,
-#endif
-#if defined(MBEDTLS_CIPHER_NULL_CIPHER)
-    MBEDTLS_CIPHER_BASE_INDEX_NULL_BASE,
-#endif
 #if defined(MBEDTLS_CIPHER_MODE_XTS) && defined(MBEDTLS_AES_C)
     MBEDTLS_CIPHER_BASE_INDEX_XTS_AES,
 #endif
@@ -1607,280 +1580,6 @@ static const mbedtls_cipher_info_t aria_256_ccm_star_no_tag_info = {

 #endif /* MBEDTLS_ARIA_C */

-#if defined(MBEDTLS_DES_C)
-
-static int des_crypt_ecb_wrap(void *ctx, mbedtls_operation_t operation,
-                              const unsigned char *input, unsigned char *output)
-{
-    ((void) operation);
-    return mbedtls_des_crypt_ecb((mbedtls_des_context *) ctx, input, output);
-}
-
-static int des3_crypt_ecb_wrap(void *ctx, mbedtls_operation_t operation,
-                               const unsigned char *input, unsigned char *output)
-{
-    ((void) operation);
-    return mbedtls_des3_crypt_ecb((mbedtls_des3_context *) ctx, input, output);
-}
-
-#if defined(MBEDTLS_CIPHER_MODE_CBC)
-static int des_crypt_cbc_wrap(void *ctx, mbedtls_operation_t operation, size_t length,
-                              unsigned char *iv, const unsigned char *input, unsigned char *output)
-{
-    return mbedtls_des_crypt_cbc((mbedtls_des_context *) ctx, operation, length, iv, input,
-                                 output);
-}
-#endif /* MBEDTLS_CIPHER_MODE_CBC */
-
-#if defined(MBEDTLS_CIPHER_MODE_CBC)
-static int des3_crypt_cbc_wrap(void *ctx, mbedtls_operation_t operation, size_t length,
-                               unsigned char *iv, const unsigned char *input, unsigned char *output)
-{
-    return mbedtls_des3_crypt_cbc((mbedtls_des3_context *) ctx, operation, length, iv, input,
-                                  output);
-}
-#endif /* MBEDTLS_CIPHER_MODE_CBC */
-
-static int des_setkey_dec_wrap(void *ctx, const unsigned char *key,
-                               unsigned int key_bitlen)
-{
-    ((void) key_bitlen);
-
-    return mbedtls_des_setkey_dec((mbedtls_des_context *) ctx, key);
-}
-
-static int des_setkey_enc_wrap(void *ctx, const unsigned char *key,
-                               unsigned int key_bitlen)
-{
-    ((void) key_bitlen);
-
-    return mbedtls_des_setkey_enc((mbedtls_des_context *) ctx, key);
-}
-
-static int des3_set2key_dec_wrap(void *ctx, const unsigned char *key,
-                                 unsigned int key_bitlen)
-{
-    ((void) key_bitlen);
-
-    return mbedtls_des3_set2key_dec((mbedtls_des3_context *) ctx, key);
-}
-
-static int des3_set2key_enc_wrap(void *ctx, const unsigned char *key,
-                                 unsigned int key_bitlen)
-{
-    ((void) key_bitlen);
-
-    return mbedtls_des3_set2key_enc((mbedtls_des3_context *) ctx, key);
-}
-
-static int des3_set3key_dec_wrap(void *ctx, const unsigned char *key,
-                                 unsigned int key_bitlen)
-{
-    ((void) key_bitlen);
-
-    return mbedtls_des3_set3key_dec((mbedtls_des3_context *) ctx, key);
-}
-
-static int des3_set3key_enc_wrap(void *ctx, const unsigned char *key,
-                                 unsigned int key_bitlen)
-{
-    ((void) key_bitlen);
-
-    return mbedtls_des3_set3key_enc((mbedtls_des3_context *) ctx, key);
-}
-
-static void *des_ctx_alloc(void)
-{
-    mbedtls_des_context *des = mbedtls_calloc(1, sizeof(mbedtls_des_context));
-
-    if (des == NULL) {
-        return NULL;
-    }
-
-    mbedtls_des_init(des);
-
-    return des;
-}
-
-static void des_ctx_free(void *ctx)
-{
-    mbedtls_des_free((mbedtls_des_context *) ctx);
-    mbedtls_free(ctx);
-}
-
-static void *des3_ctx_alloc(void)
-{
-    mbedtls_des3_context *des3;
-    des3 = mbedtls_calloc(1, sizeof(mbedtls_des3_context));
-
-    if (des3 == NULL) {
-        return NULL;
-    }
-
-    mbedtls_des3_init(des3);
-
-    return des3;
-}
-
-static void des3_ctx_free(void *ctx)
-{
-    mbedtls_des3_free((mbedtls_des3_context *) ctx);
-    mbedtls_free(ctx);
-}
-
-static const mbedtls_cipher_base_t des_info = {
-    MBEDTLS_CIPHER_ID_DES,
-    des_crypt_ecb_wrap,
-#if defined(MBEDTLS_CIPHER_MODE_CBC)
-    des_crypt_cbc_wrap,
-#endif
-#if defined(MBEDTLS_CIPHER_MODE_CFB)
-    NULL,
-#endif
-#if defined(MBEDTLS_CIPHER_MODE_OFB)
-    NULL,
-#endif
-#if defined(MBEDTLS_CIPHER_MODE_CTR)
-    NULL,
-#endif
-#if defined(MBEDTLS_CIPHER_MODE_XTS)
-    NULL,
-#endif
-#if defined(MBEDTLS_CIPHER_MODE_STREAM)
-    NULL,
-#endif
-    des_setkey_enc_wrap,
-    des_setkey_dec_wrap,
-    des_ctx_alloc,
-    des_ctx_free
-};
-
-static const mbedtls_cipher_info_t des_ecb_info = {
-    "DES-ECB",
-    8,
-    0 >> MBEDTLS_IV_SIZE_SHIFT,
-    MBEDTLS_KEY_LENGTH_DES >> MBEDTLS_KEY_BITLEN_SHIFT,
-    MBEDTLS_MODE_ECB,
-    MBEDTLS_CIPHER_DES_ECB,
-    0,
-    MBEDTLS_CIPHER_BASE_INDEX_DES
-};
-
-#if defined(MBEDTLS_CIPHER_MODE_CBC)
-static const mbedtls_cipher_info_t des_cbc_info = {
-    "DES-CBC",
-    8,
-    8 >> MBEDTLS_IV_SIZE_SHIFT,
-    MBEDTLS_KEY_LENGTH_DES >> MBEDTLS_KEY_BITLEN_SHIFT,
-    MBEDTLS_MODE_CBC,
-    MBEDTLS_CIPHER_DES_CBC,
-    0,
-    MBEDTLS_CIPHER_BASE_INDEX_DES
-};
-#endif /* MBEDTLS_CIPHER_MODE_CBC */
-
-static const mbedtls_cipher_base_t des_ede_info = {
-    MBEDTLS_CIPHER_ID_DES,
-    des3_crypt_ecb_wrap,
-#if defined(MBEDTLS_CIPHER_MODE_CBC)
-    des3_crypt_cbc_wrap,
-#endif
-#if defined(MBEDTLS_CIPHER_MODE_CFB)
-    NULL,
-#endif
-#if defined(MBEDTLS_CIPHER_MODE_OFB)
-    NULL,
-#endif
-#if defined(MBEDTLS_CIPHER_MODE_CTR)
-    NULL,
-#endif
-#if defined(MBEDTLS_CIPHER_MODE_XTS)
-    NULL,
-#endif
-#if defined(MBEDTLS_CIPHER_MODE_STREAM)
-    NULL,
-#endif
-    des3_set2key_enc_wrap,
-    des3_set2key_dec_wrap,
-    des3_ctx_alloc,
-    des3_ctx_free
-};
-
-static const mbedtls_cipher_info_t des_ede_ecb_info = {
-    "DES-EDE-ECB",
-    8,
-    0 >> MBEDTLS_IV_SIZE_SHIFT,
-    MBEDTLS_KEY_LENGTH_DES_EDE >> MBEDTLS_KEY_BITLEN_SHIFT,
-    MBEDTLS_MODE_ECB,
-    MBEDTLS_CIPHER_DES_EDE_ECB,
-    0,
-    MBEDTLS_CIPHER_BASE_INDEX_DES_EDE
-};
-
-#if defined(MBEDTLS_CIPHER_MODE_CBC)
-static const mbedtls_cipher_info_t des_ede_cbc_info = {
-    "DES-EDE-CBC",
-    8,
-    8 >> MBEDTLS_IV_SIZE_SHIFT,
-    MBEDTLS_KEY_LENGTH_DES_EDE >> MBEDTLS_KEY_BITLEN_SHIFT,
-    MBEDTLS_MODE_CBC,
-    MBEDTLS_CIPHER_DES_EDE_CBC,
-    0,
-    MBEDTLS_CIPHER_BASE_INDEX_DES_EDE
-};
-#endif /* MBEDTLS_CIPHER_MODE_CBC */
-
-static const mbedtls_cipher_base_t des_ede3_info = {
-    MBEDTLS_CIPHER_ID_3DES,
-    des3_crypt_ecb_wrap,
-#if defined(MBEDTLS_CIPHER_MODE_CBC)
-    des3_crypt_cbc_wrap,
-#endif
-#if defined(MBEDTLS_CIPHER_MODE_CFB)
-    NULL,
-#endif
-#if defined(MBEDTLS_CIPHER_MODE_OFB)
-    NULL,
-#endif
-#if defined(MBEDTLS_CIPHER_MODE_CTR)
-    NULL,
-#endif
-#if defined(MBEDTLS_CIPHER_MODE_XTS)
-    NULL,
-#endif
-#if defined(MBEDTLS_CIPHER_MODE_STREAM)
-    NULL,
-#endif
-    des3_set3key_enc_wrap,
-    des3_set3key_dec_wrap,
-    des3_ctx_alloc,
-    des3_ctx_free
-};
-
-static const mbedtls_cipher_info_t des_ede3_ecb_info = {
-    "DES-EDE3-ECB",
-    8,
-    0 >> MBEDTLS_IV_SIZE_SHIFT,
-    MBEDTLS_KEY_LENGTH_DES_EDE3 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    MBEDTLS_MODE_ECB,
-    MBEDTLS_CIPHER_DES_EDE3_ECB,
-    0,
-    MBEDTLS_CIPHER_BASE_INDEX_DES_EDE3
-};
-#if defined(MBEDTLS_CIPHER_MODE_CBC)
-static const mbedtls_cipher_info_t des_ede3_cbc_info = {
-    "DES-EDE3-CBC",
-    8,
-    8 >> MBEDTLS_IV_SIZE_SHIFT,
-    MBEDTLS_KEY_LENGTH_DES_EDE3 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    MBEDTLS_MODE_CBC,
-    MBEDTLS_CIPHER_DES_EDE3_CBC,
-    0,
-    MBEDTLS_CIPHER_BASE_INDEX_DES_EDE3
-};
-#endif /* MBEDTLS_CIPHER_MODE_CBC */
-#endif /* MBEDTLS_DES_C */
-
 #if defined(MBEDTLS_CHACHA20_C)

 static int chacha20_setkey_wrap(void *ctx, const unsigned char *key,
@@ -2048,207 +1747,6 @@ static const mbedtls_cipher_info_t chachapoly_info = {
 };
 #endif /* MBEDTLS_CHACHAPOLY_C */

-#if defined(MBEDTLS_CIPHER_NULL_CIPHER)
-static int null_crypt_stream(void *ctx, size_t length,
-                             const unsigned char *input,
-                             unsigned char *output)
-{
-    ((void) ctx);
-    memmove(output, input, length);
-    return 0;
-}
-
-static int null_setkey(void *ctx, const unsigned char *key,
-                       unsigned int key_bitlen)
-{
-    ((void) ctx);
-    ((void) key);
-    ((void) key_bitlen);
-
-    return 0;
-}
-
-static void *null_ctx_alloc(void)
-{
-    return (void *) 1;
-}
-
-static void null_ctx_free(void *ctx)
-{
-    ((void) ctx);
-}
-
-static const mbedtls_cipher_base_t null_base_info = {
-    MBEDTLS_CIPHER_ID_NULL,
-    NULL,
-#if defined(MBEDTLS_CIPHER_MODE_CBC)
-    NULL,
-#endif
-#if defined(MBEDTLS_CIPHER_MODE_CFB)
-    NULL,
-#endif
-#if defined(MBEDTLS_CIPHER_MODE_OFB)
-    NULL,
-#endif
-#if defined(MBEDTLS_CIPHER_MODE_CTR)
-    NULL,
-#endif
-#if defined(MBEDTLS_CIPHER_MODE_XTS)
-    NULL,
-#endif
-#if defined(MBEDTLS_CIPHER_MODE_STREAM)
-    null_crypt_stream,
-#endif
-    null_setkey,
-#if !defined(MBEDTLS_BLOCK_CIPHER_NO_DECRYPT)
-    null_setkey,
-#endif
-    null_ctx_alloc,
-    null_ctx_free
-};
-
-static const mbedtls_cipher_info_t null_cipher_info = {
-    "NULL",
-    1,
-    0 >> MBEDTLS_IV_SIZE_SHIFT,
-    0 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    MBEDTLS_MODE_STREAM,
-    MBEDTLS_CIPHER_NULL,
-    0,
-    MBEDTLS_CIPHER_BASE_INDEX_NULL_BASE
-};
-#endif /* defined(MBEDTLS_CIPHER_NULL_CIPHER) */
-
-#if defined(MBEDTLS_NIST_KW_C)
-static void *kw_ctx_alloc(void)
-{
-    void *ctx = mbedtls_calloc(1, sizeof(mbedtls_nist_kw_context));
-
-    if (ctx != NULL) {
-        mbedtls_nist_kw_init((mbedtls_nist_kw_context *) ctx);
-    }
-
-    return ctx;
-}
-
-static void kw_ctx_free(void *ctx)
-{
-    mbedtls_nist_kw_free(ctx);
-    mbedtls_free(ctx);
-}
-
-static int kw_aes_setkey_wrap(void *ctx, const unsigned char *key,
-                              unsigned int key_bitlen)
-{
-    return mbedtls_nist_kw_setkey((mbedtls_nist_kw_context *) ctx,
-                                  MBEDTLS_CIPHER_ID_AES, key, key_bitlen, 1);
-}
-
-static int kw_aes_setkey_unwrap(void *ctx, const unsigned char *key,
-                                unsigned int key_bitlen)
-{
-    return mbedtls_nist_kw_setkey((mbedtls_nist_kw_context *) ctx,
-                                  MBEDTLS_CIPHER_ID_AES, key, key_bitlen, 0);
-}
-
-static const mbedtls_cipher_base_t kw_aes_info = {
-    MBEDTLS_CIPHER_ID_AES,
-    NULL,
-#if defined(MBEDTLS_CIPHER_MODE_CBC)
-    NULL,
-#endif
-#if defined(MBEDTLS_CIPHER_MODE_CFB)
-    NULL,
-#endif
-#if defined(MBEDTLS_CIPHER_MODE_OFB)
-    NULL,
-#endif
-#if defined(MBEDTLS_CIPHER_MODE_CTR)
-    NULL,
-#endif
-#if defined(MBEDTLS_CIPHER_MODE_XTS)
-    NULL,
-#endif
-#if defined(MBEDTLS_CIPHER_MODE_STREAM)
-    NULL,
-#endif
-    kw_aes_setkey_wrap,
-    kw_aes_setkey_unwrap,
-    kw_ctx_alloc,
-    kw_ctx_free,
-};
-
-static const mbedtls_cipher_info_t aes_128_nist_kw_info = {
-    "AES-128-KW",
-    16,
-    0 >> MBEDTLS_IV_SIZE_SHIFT,
-    128 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    MBEDTLS_MODE_KW,
-    MBEDTLS_CIPHER_AES_128_KW,
-    0,
-    MBEDTLS_CIPHER_BASE_INDEX_KW_AES
-};
-
-#if !defined(MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH)
-static const mbedtls_cipher_info_t aes_192_nist_kw_info = {
-    "AES-192-KW",
-    16,
-    0 >> MBEDTLS_IV_SIZE_SHIFT,
-    192 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    MBEDTLS_MODE_KW,
-    MBEDTLS_CIPHER_AES_192_KW,
-    0,
-    MBEDTLS_CIPHER_BASE_INDEX_KW_AES
-};
-
-static const mbedtls_cipher_info_t aes_256_nist_kw_info = {
-    "AES-256-KW",
-    16,
-    0 >> MBEDTLS_IV_SIZE_SHIFT,
-    256 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    MBEDTLS_MODE_KW,
-    MBEDTLS_CIPHER_AES_256_KW,
-    0,
-    MBEDTLS_CIPHER_BASE_INDEX_KW_AES
-};
-#endif
-
-static const mbedtls_cipher_info_t aes_128_nist_kwp_info = {
-    "AES-128-KWP",
-    16,
-    0 >> MBEDTLS_IV_SIZE_SHIFT,
-    128 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    MBEDTLS_MODE_KWP,
-    MBEDTLS_CIPHER_AES_128_KWP,
-    0,
-    MBEDTLS_CIPHER_BASE_INDEX_KW_AES
-};
-
-#if !defined(MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH)
-static const mbedtls_cipher_info_t aes_192_nist_kwp_info = {
-    "AES-192-KWP",
-    16,
-    0 >> MBEDTLS_IV_SIZE_SHIFT,
-    192 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    MBEDTLS_MODE_KWP,
-    MBEDTLS_CIPHER_AES_192_KWP,
-    0,
-    MBEDTLS_CIPHER_BASE_INDEX_KW_AES
-};
-
-static const mbedtls_cipher_info_t aes_256_nist_kwp_info = {
-    "AES-256-KWP",
-    16,
-    0 >> MBEDTLS_IV_SIZE_SHIFT,
-    256 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    MBEDTLS_MODE_KWP,
-    MBEDTLS_CIPHER_AES_256_KWP,
-    0,
-    MBEDTLS_CIPHER_BASE_INDEX_KW_AES
-};
-#endif
-#endif /* MBEDTLS_NIST_KW_C */
-
 const mbedtls_cipher_definition_t mbedtls_cipher_definitions[] =
 {
 #if defined(MBEDTLS_AES_C)
@@ -2382,17 +1880,6 @@ const mbedtls_cipher_definition_t mbedtls_cipher_definitions[] =
 #endif
 #endif /* MBEDTLS_ARIA_C */

-#if defined(MBEDTLS_DES_C)
-    { MBEDTLS_CIPHER_DES_ECB,              &des_ecb_info },
-    { MBEDTLS_CIPHER_DES_EDE_ECB,          &des_ede_ecb_info },
-    { MBEDTLS_CIPHER_DES_EDE3_ECB,         &des_ede3_ecb_info },
-#if defined(MBEDTLS_CIPHER_MODE_CBC)
-    { MBEDTLS_CIPHER_DES_CBC,              &des_cbc_info },
-    { MBEDTLS_CIPHER_DES_EDE_CBC,          &des_ede_cbc_info },
-    { MBEDTLS_CIPHER_DES_EDE3_CBC,         &des_ede3_cbc_info },
-#endif
-#endif /* MBEDTLS_DES_C */
-
 #if defined(MBEDTLS_CHACHA20_C)
     { MBEDTLS_CIPHER_CHACHA20,             &chacha20_info },
 #endif
@@ -2401,23 +1888,6 @@ const mbedtls_cipher_definition_t mbedtls_cipher_definitions[] =
     { MBEDTLS_CIPHER_CHACHA20_POLY1305,    &chachapoly_info },
 #endif

-#if defined(MBEDTLS_NIST_KW_C)
-    { MBEDTLS_CIPHER_AES_128_KW,          &aes_128_nist_kw_info },
-#if !defined(MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH)
-    { MBEDTLS_CIPHER_AES_192_KW,          &aes_192_nist_kw_info },
-    { MBEDTLS_CIPHER_AES_256_KW,          &aes_256_nist_kw_info },
-#endif
-    { MBEDTLS_CIPHER_AES_128_KWP,         &aes_128_nist_kwp_info },
-#if !defined(MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH)
-    { MBEDTLS_CIPHER_AES_192_KWP,         &aes_192_nist_kwp_info },
-    { MBEDTLS_CIPHER_AES_256_KWP,         &aes_256_nist_kwp_info },
-#endif
-#endif
-
-#if defined(MBEDTLS_CIPHER_NULL_CIPHER)
-    { MBEDTLS_CIPHER_NULL,                 &null_cipher_info },
-#endif /* MBEDTLS_CIPHER_NULL_CIPHER */
-
     { MBEDTLS_CIPHER_NONE, NULL }
 };

@@ -2450,15 +1920,6 @@ const mbedtls_cipher_base_t * const mbedtls_cipher_base_lookup_table[] = {
 #if defined(MBEDTLS_CHACHAPOLY_C)
     [MBEDTLS_CIPHER_BASE_INDEX_CHACHAPOLY_BASE] = &chachapoly_base_info,
 #endif
-#if defined(MBEDTLS_DES_C)
-    [MBEDTLS_CIPHER_BASE_INDEX_DES_EDE3] = &des_ede3_info,
-#endif
-#if defined(MBEDTLS_DES_C)
-    [MBEDTLS_CIPHER_BASE_INDEX_DES_EDE] = &des_ede_info,
-#endif
-#if defined(MBEDTLS_DES_C)
-    [MBEDTLS_CIPHER_BASE_INDEX_DES] = &des_info,
-#endif
 #if defined(MBEDTLS_CIPHER_HAVE_GCM_AES_VIA_LEGACY_OR_USE_PSA)
     [MBEDTLS_CIPHER_BASE_INDEX_GCM_AES] = &gcm_aes_info,
 #endif
@@ -2468,12 +1929,6 @@ const mbedtls_cipher_base_t * const mbedtls_cipher_base_lookup_table[] = {
 #if defined(MBEDTLS_GCM_C) && defined(MBEDTLS_CAMELLIA_C)
     [MBEDTLS_CIPHER_BASE_INDEX_GCM_CAMELLIA] = &gcm_camellia_info,
 #endif
-#if defined(MBEDTLS_NIST_KW_C)
-    [MBEDTLS_CIPHER_BASE_INDEX_KW_AES] = &kw_aes_info,
-#endif
-#if defined(MBEDTLS_CIPHER_NULL_CIPHER)
-    [MBEDTLS_CIPHER_BASE_INDEX_NULL_BASE] = &null_base_info,
-#endif
 #if defined(MBEDTLS_CIPHER_MODE_XTS) && defined(MBEDTLS_AES_C)
     [MBEDTLS_CIPHER_BASE_INDEX_XTS_AES] = &xts_aes_info
 #endif
diff --git a/deps/LIEF/third-party/mbedtls/library/cipher_wrap.h b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/cipher_wrap.h
similarity index 86%
rename from deps/LIEF/third-party/mbedtls/library/cipher_wrap.h
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/cipher_wrap.h
index 9564c5efe1c..6948f7f49cb 100644
--- a/deps/LIEF/third-party/mbedtls/library/cipher_wrap.h
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/cipher_wrap.h
@@ -12,52 +12,49 @@
 #ifndef MBEDTLS_CIPHER_WRAP_H
 #define MBEDTLS_CIPHER_WRAP_H

-#include "mbedtls/build_info.h"
+#include "tf-psa-crypto/build_info.h"

-#include "mbedtls/cipher.h"
+#include "mbedtls/private/cipher.h"

-#if defined(MBEDTLS_USE_PSA_CRYPTO)
 #include "psa/crypto.h"
-#endif /* MBEDTLS_USE_PSA_CRYPTO */

 #ifdef __cplusplus
 extern "C" {
 #endif

 /* Support for GCM either through Mbed TLS SW implementation or PSA */
-#if defined(MBEDTLS_GCM_C) || \
-    (defined(MBEDTLS_USE_PSA_CRYPTO) && defined(PSA_WANT_ALG_GCM))
+#if defined(MBEDTLS_GCM_C) || defined(PSA_WANT_ALG_GCM)
 #define MBEDTLS_CIPHER_HAVE_GCM_VIA_LEGACY_OR_USE_PSA
 #endif

 #if (defined(MBEDTLS_GCM_C) && defined(MBEDTLS_AES_C)) || \
-    (defined(MBEDTLS_USE_PSA_CRYPTO) && defined(PSA_WANT_ALG_GCM) && defined(PSA_WANT_KEY_TYPE_AES))
+    (defined(PSA_WANT_ALG_GCM) && defined(PSA_WANT_KEY_TYPE_AES))
 #define MBEDTLS_CIPHER_HAVE_GCM_AES_VIA_LEGACY_OR_USE_PSA
 #endif

 #if defined(MBEDTLS_CCM_C) || \
-    (defined(MBEDTLS_USE_PSA_CRYPTO) && defined(PSA_WANT_ALG_CCM))
+    defined(PSA_WANT_ALG_CCM)
 #define MBEDTLS_CIPHER_HAVE_CCM_VIA_LEGACY_OR_USE_PSA
 #endif

 #if (defined(MBEDTLS_CCM_C) && defined(MBEDTLS_AES_C)) || \
-    (defined(MBEDTLS_USE_PSA_CRYPTO) && defined(PSA_WANT_ALG_CCM) && defined(PSA_WANT_KEY_TYPE_AES))
+    (defined(PSA_WANT_ALG_CCM) && defined(PSA_WANT_KEY_TYPE_AES))
 #define MBEDTLS_CIPHER_HAVE_CCM_AES_VIA_LEGACY_OR_USE_PSA
 #endif

 #if defined(MBEDTLS_CCM_C) || \
-    (defined(MBEDTLS_USE_PSA_CRYPTO) && defined(PSA_WANT_ALG_CCM_STAR_NO_TAG))
+    defined(PSA_WANT_ALG_CCM_STAR_NO_TAG)
 #define MBEDTLS_CIPHER_HAVE_CCM_STAR_NO_TAG_VIA_LEGACY_OR_USE_PSA
 #endif

 #if (defined(MBEDTLS_CCM_C) && defined(MBEDTLS_AES_C)) || \
-    (defined(MBEDTLS_USE_PSA_CRYPTO) && defined(PSA_WANT_ALG_CCM_STAR_NO_TAG) && \
+    (defined(PSA_WANT_ALG_CCM_STAR_NO_TAG) && \
     defined(PSA_WANT_KEY_TYPE_AES))
 #define MBEDTLS_CIPHER_HAVE_CCM_STAR_NO_TAG_AES_VIA_LEGACY_OR_USE_PSA
 #endif

 #if defined(MBEDTLS_CHACHAPOLY_C) || \
-    (defined(MBEDTLS_USE_PSA_CRYPTO) && defined(PSA_WANT_ALG_CHACHA20_POLY1305))
+    defined(PSA_WANT_ALG_CHACHA20_POLY1305)
 #define MBEDTLS_CIPHER_HAVE_CHACHAPOLY_VIA_LEGACY_OR_USE_PSA
 #endif

@@ -144,7 +141,6 @@ typedef struct {
     const mbedtls_cipher_info_t *info;
 } mbedtls_cipher_definition_t;

-#if defined(MBEDTLS_USE_PSA_CRYPTO)
 typedef enum {
     MBEDTLS_CIPHER_PSA_KEY_UNSET = 0,
     MBEDTLS_CIPHER_PSA_KEY_OWNED, /* Used for PSA-based cipher contexts which */
@@ -163,7 +159,6 @@ typedef struct {
     mbedtls_svc_key_id_t slot;
     mbedtls_cipher_psa_key_ownership slot_state;
 } mbedtls_cipher_context_psa;
-#endif /* MBEDTLS_USE_PSA_CRYPTO */

 extern const mbedtls_cipher_definition_t mbedtls_cipher_definitions[];

diff --git a/deps/LIEF/third-party/mbedtls/library/cmac.c b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/cmac.c
similarity index 84%
rename from deps/LIEF/third-party/mbedtls/library/cmac.c
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/cmac.c
index eda10d0b3dd..626cdf8920c 100644
--- a/deps/LIEF/third-party/mbedtls/library/cmac.c
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/cmac.c
@@ -26,20 +26,18 @@
  *
  */

-#include "common.h"
+#include "tf_psa_crypto_common.h"

 #if defined(MBEDTLS_CMAC_C)

-#include "mbedtls/cmac.h"
+#include "mbedtls/private/cmac.h"
 #include "mbedtls/platform_util.h"
-#include "mbedtls/error.h"
+#include "mbedtls/private/error_common.h"
 #include "mbedtls/platform.h"
 #include "constant_time_internal.h"

 #include <string.h>

-#if !defined(MBEDTLS_CMAC_ALT) || defined(MBEDTLS_SELF_TEST)
-
 /*
  * Multiplication by u in the Galois field of GF(2^n)
  *
@@ -63,14 +61,7 @@ static int cmac_multiply_by_u(unsigned char *output,

     if (blocksize == MBEDTLS_AES_BLOCK_SIZE) {
         R_n = R_128;
-    }
-#if defined(MBEDTLS_DES_C)
-    else if (blocksize == MBEDTLS_DES3_BLOCK_SIZE) {
-        const unsigned char R_64 = 0x1B;
-        R_n = R_64;
-    }
-#endif
-    else {
+    } else {
         return MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA;
     }

@@ -125,9 +116,6 @@ exit:

     return ret;
 }
-#endif /* !defined(MBEDTLS_CMAC_ALT) || defined(MBEDTLS_SELF_TEST) */
-
-#if !defined(MBEDTLS_CMAC_ALT)

 /*
  * Create padded last block from (partial) last block.
@@ -175,7 +163,6 @@ int mbedtls_cipher_cmac_starts(mbedtls_cipher_context_t *ctx,
         case MBEDTLS_CIPHER_AES_128_ECB:
         case MBEDTLS_CIPHER_AES_192_ECB:
         case MBEDTLS_CIPHER_AES_256_ECB:
-        case MBEDTLS_CIPHER_DES_EDE3_ECB:
             break;
         default:
             return MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA;
@@ -427,8 +414,6 @@ exit:
 }
 #endif /* MBEDTLS_AES_C */

-#endif /* !MBEDTLS_CMAC_ALT */
-
 #if defined(MBEDTLS_SELF_TEST)
 /*
  * CMAC test data for SP800-38B
@@ -442,7 +427,7 @@ exit:
 #define NB_CMAC_TESTS_PER_KEY 4
 #define NB_PRF_TESTS 3

-#if defined(MBEDTLS_AES_C) || defined(MBEDTLS_DES_C)
+#if defined(MBEDTLS_AES_C)
 /* All CMAC test inputs are truncated from the same 64 byte buffer. */
 static const unsigned char test_message[] = {
     /* PT */
@@ -455,7 +440,7 @@ static const unsigned char test_message[] = {
     0xf6, 0x9f, 0x24, 0x45,     0xdf, 0x4f, 0x9b, 0x17,
     0xad, 0x2b, 0x41, 0x7b,     0xe6, 0x6c, 0x37, 0x10
 };
-#endif /* MBEDTLS_AES_C || MBEDTLS_DES_C */
+#endif /* MBEDTLS_AES_C */

 #if defined(MBEDTLS_AES_C)
 /* Truncation point of message for AES CMAC tests  */
@@ -598,95 +583,6 @@ static const unsigned char aes_256_expected_result[NB_CMAC_TESTS_PER_KEY][MBEDTL
 #endif /* !MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH */
 #endif /* MBEDTLS_AES_C */

-#if defined(MBEDTLS_DES_C)
-/* Truncation point of message for 3DES CMAC tests  */
-static const unsigned int des3_message_lengths[NB_CMAC_TESTS_PER_KEY] = {
-    0,
-    16,
-    20,
-    32
-};
-
-/* CMAC-TDES (Generation) - 2 Key Test Data */
-static const unsigned char des3_2key_key[24] = {
-    /* Key1 */
-    0x01, 0x23, 0x45, 0x67,     0x89, 0xab, 0xcd, 0xef,
-    /* Key2 */
-    0x23, 0x45, 0x67, 0x89,     0xab, 0xcd, 0xEF, 0x01,
-    /* Key3 */
-    0x01, 0x23, 0x45, 0x67,     0x89, 0xab, 0xcd, 0xef
-};
-static const unsigned char des3_2key_subkeys[2][8] = {
-    {
-        /* K1 */
-        0x0d, 0xd2, 0xcb, 0x7a,     0x3d, 0x88, 0x88, 0xd9
-    },
-    {
-        /* K2 */
-        0x1b, 0xa5, 0x96, 0xf4,     0x7b, 0x11, 0x11, 0xb2
-    }
-};
-static const unsigned char des3_2key_expected_result[NB_CMAC_TESTS_PER_KEY][MBEDTLS_DES3_BLOCK_SIZE]
-    = {
-    {
-        /* Sample #1 */
-        0x79, 0xce, 0x52, 0xa7,     0xf7, 0x86, 0xa9, 0x60
-    },
-    {
-        /* Sample #2 */
-        0xcc, 0x18, 0xa0, 0xb7,     0x9a, 0xf2, 0x41, 0x3b
-    },
-    {
-        /* Sample #3 */
-        0xc0, 0x6d, 0x37, 0x7e,     0xcd, 0x10, 0x19, 0x69
-    },
-    {
-        /* Sample #4 */
-        0x9c, 0xd3, 0x35, 0x80,     0xf9, 0xb6, 0x4d, 0xfb
-    }
-    };
-
-/* CMAC-TDES (Generation) - 3 Key Test Data */
-static const unsigned char des3_3key_key[24] = {
-    /* Key1 */
-    0x01, 0x23, 0x45, 0x67,     0x89, 0xaa, 0xcd, 0xef,
-    /* Key2 */
-    0x23, 0x45, 0x67, 0x89,     0xab, 0xcd, 0xef, 0x01,
-    /* Key3 */
-    0x45, 0x67, 0x89, 0xab,     0xcd, 0xef, 0x01, 0x23
-};
-static const unsigned char des3_3key_subkeys[2][8] = {
-    {
-        /* K1 */
-        0x9d, 0x74, 0xe7, 0x39,     0x33, 0x17, 0x96, 0xc0
-    },
-    {
-        /* K2 */
-        0x3a, 0xe9, 0xce, 0x72,     0x66, 0x2f, 0x2d, 0x9b
-    }
-};
-static const unsigned char des3_3key_expected_result[NB_CMAC_TESTS_PER_KEY][MBEDTLS_DES3_BLOCK_SIZE]
-    = {
-    {
-        /* Sample #1 */
-        0x7d, 0xb0, 0xd3, 0x7d,     0xf9, 0x36, 0xc5, 0x50
-    },
-    {
-        /* Sample #2 */
-        0x30, 0x23, 0x9c, 0xf1,     0xf5, 0x2e, 0x66, 0x09
-    },
-    {
-        /* Sample #3 */
-        0x6c, 0x9f, 0x3e, 0xe4,     0x92, 0x3f, 0x6b, 0xe2
-    },
-    {
-        /* Sample #4 */
-        0x99, 0x42, 0x9b, 0xd0,     0xbF, 0x79, 0x04, 0xe5
-    }
-    };
-
-#endif /* MBEDTLS_DES_C */
-
 #if defined(MBEDTLS_AES_C)
 /* AES AES-CMAC-PRF-128 Test Data */
 static const unsigned char PRFK[] = {
@@ -855,8 +751,7 @@ static int cmac_test_wth_cipher(int verbose,
              * the selftest function to fail. */
             if ((ret == MBEDTLS_ERR_PLATFORM_FEATURE_UNSUPPORTED ||
                  ret == MBEDTLS_ERR_CIPHER_FEATURE_UNAVAILABLE) &&
-                (cipher_type == MBEDTLS_CIPHER_AES_192_ECB ||
-                 cipher_type == MBEDTLS_CIPHER_DES_EDE3_ECB)) {
+                (cipher_type == MBEDTLS_CIPHER_AES_192_ECB)) {
                 if (verbose != 0) {
                     mbedtls_printf("skipped\n");
                 }
@@ -997,57 +892,6 @@ int mbedtls_cmac_self_test(int verbose)
 #endif /* !MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH */
 #endif /* MBEDTLS_AES_C */

-#if defined(MBEDTLS_DES_C)
-    /* 3DES 2 key */
-    if ((ret = cmac_test_subkeys(verbose,
-                                 "3DES 2 key",
-                                 des3_2key_key,
-                                 192,
-                                 (const unsigned char *) des3_2key_subkeys,
-                                 MBEDTLS_CIPHER_DES_EDE3_ECB,
-                                 MBEDTLS_DES3_BLOCK_SIZE,
-                                 NB_CMAC_TESTS_PER_KEY)) != 0) {
-        return ret;
-    }
-
-    if ((ret = cmac_test_wth_cipher(verbose,
-                                    "3DES 2 key",
-                                    des3_2key_key,
-                                    192,
-                                    test_message,
-                                    des3_message_lengths,
-                                    (const unsigned char *) des3_2key_expected_result,
-                                    MBEDTLS_CIPHER_DES_EDE3_ECB,
-                                    MBEDTLS_DES3_BLOCK_SIZE,
-                                    NB_CMAC_TESTS_PER_KEY)) != 0) {
-        return ret;
-    }
-
-    /* 3DES 3 key */
-    if ((ret = cmac_test_subkeys(verbose,
-                                 "3DES 3 key",
-                                 des3_3key_key,
-                                 192,
-                                 (const unsigned char *) des3_3key_subkeys,
-                                 MBEDTLS_CIPHER_DES_EDE3_ECB,
-                                 MBEDTLS_DES3_BLOCK_SIZE,
-                                 NB_CMAC_TESTS_PER_KEY)) != 0) {
-        return ret;
-    }
-
-    if ((ret = cmac_test_wth_cipher(verbose,
-                                    "3DES 3 key",
-                                    des3_3key_key,
-                                    192,
-                                    test_message,
-                                    des3_message_lengths,
-                                    (const unsigned char *) des3_3key_expected_result,
-                                    MBEDTLS_CIPHER_DES_EDE3_ECB,
-                                    MBEDTLS_DES3_BLOCK_SIZE,
-                                    NB_CMAC_TESTS_PER_KEY)) != 0) {
-        return ret;
-    }
-#endif /* MBEDTLS_DES_C */

 #if defined(MBEDTLS_AES_C)
     if ((ret = test_aes128_cmac_prf(verbose)) != 0) {
diff --git a/deps/LIEF/third-party/mbedtls/library/constant_time.c b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/constant_time.c
similarity index 95%
rename from deps/LIEF/third-party/mbedtls/library/constant_time.c
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/constant_time.c
index d212ddfd810..f90f477f003 100644
--- a/deps/LIEF/third-party/mbedtls/library/constant_time.c
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/constant_time.c
@@ -13,10 +13,10 @@
 #include <stdint.h>
 #include <limits.h>

-#include "common.h"
+#include "tf_psa_crypto_common.h"
 #include "constant_time_internal.h"
 #include "mbedtls/constant_time.h"
-#include "mbedtls/error.h"
+#include "mbedtls/private/error_common.h"
 #include "mbedtls/platform_util.h"

 #include <string.h>
@@ -146,7 +146,7 @@ int mbedtls_ct_memcmp_partial(const void *a,

 #endif

-#if defined(MBEDTLS_PKCS1_V15) && defined(MBEDTLS_RSA_C) && !defined(MBEDTLS_RSA_ALT)
+#if defined(MBEDTLS_PKCS1_V15) && defined(MBEDTLS_RSA_C)

 void mbedtls_ct_memmove_left(void *start, size_t total, size_t offset)
 {
@@ -165,7 +165,7 @@ void mbedtls_ct_memmove_left(void *start, size_t total, size_t offset)
     }
 }

-#endif /* MBEDTLS_PKCS1_V15 && MBEDTLS_RSA_C && ! MBEDTLS_RSA_ALT */
+#endif /* MBEDTLS_PKCS1_V15 && MBEDTLS_RSA_C */

 void mbedtls_ct_memcpy_if(mbedtls_ct_condition_t condition,
                           unsigned char *dest,
@@ -227,7 +227,7 @@ void mbedtls_ct_memcpy_offset(unsigned char *dest,
     }
 }

-#if defined(MBEDTLS_PKCS1_V15) && defined(MBEDTLS_RSA_C) && !defined(MBEDTLS_RSA_ALT)
+#if defined(MBEDTLS_PKCS1_V15) && defined(MBEDTLS_RSA_C)

 void mbedtls_ct_zeroize_if(mbedtls_ct_condition_t condition, void *buf, size_t len)
 {
@@ -245,4 +245,4 @@ void mbedtls_ct_zeroize_if(mbedtls_ct_condition_t condition, void *buf, size_t l
     }
 }

-#endif /* defined(MBEDTLS_PKCS1_V15) && defined(MBEDTLS_RSA_C) && !defined(MBEDTLS_RSA_ALT) */
+#endif /* defined(MBEDTLS_PKCS1_V15) && defined(MBEDTLS_RSA_C) */
diff --git a/deps/LIEF/third-party/mbedtls/library/constant_time_impl.h b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/constant_time_impl.h
similarity index 99%
rename from deps/LIEF/third-party/mbedtls/library/constant_time_impl.h
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/constant_time_impl.h
index aeaeecb7de3..ded4f8cc625 100644
--- a/deps/LIEF/third-party/mbedtls/library/constant_time_impl.h
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/constant_time_impl.h
@@ -10,10 +10,10 @@

 #include <stddef.h>

-#include "common.h"
+#include "tf_psa_crypto_common.h"

 #if defined(MBEDTLS_BIGNUM_C)
-#include "mbedtls/bignum.h"
+#include "mbedtls/private/bignum.h"
 #endif

 /*
diff --git a/deps/LIEF/third-party/mbedtls/library/constant_time_internal.h b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/constant_time_internal.h
similarity index 98%
rename from deps/LIEF/third-party/mbedtls/library/constant_time_internal.h
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/constant_time_internal.h
index 61a5c6d4e95..53bb8ce0d52 100644
--- a/deps/LIEF/third-party/mbedtls/library/constant_time_internal.h
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/constant_time_internal.h
@@ -11,10 +11,10 @@
 #include <stdint.h>
 #include <stddef.h>

-#include "common.h"
+#include "tf_psa_crypto_common.h"

 #if defined(MBEDTLS_BIGNUM_C)
-#include "mbedtls/bignum.h"
+#include "mbedtls/private/bignum.h"
 #endif

 /* The constant-time interface provides various operations that are likely
@@ -433,7 +433,7 @@ static inline int mbedtls_ct_error_if_else_0(mbedtls_ct_condition_t condition, i
  * Block memory operations
  */

-#if defined(MBEDTLS_PKCS1_V15) && defined(MBEDTLS_RSA_C) && !defined(MBEDTLS_RSA_ALT)
+#if defined(MBEDTLS_PKCS1_V15) && defined(MBEDTLS_RSA_C)

 /** Conditionally set a block of memory to zero.
  *
@@ -466,7 +466,7 @@ void mbedtls_ct_memmove_left(void *start,
                              size_t total,
                              size_t offset);

-#endif /* defined(MBEDTLS_PKCS1_V15) && defined(MBEDTLS_RSA_C) && !defined(MBEDTLS_RSA_ALT) */
+#endif /* defined(MBEDTLS_PKCS1_V15) && defined(MBEDTLS_RSA_C) */

 /** Conditional memcpy.
  *
diff --git a/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/crypto_oid.h b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/crypto_oid.h
new file mode 100644
index 00000000000..e62ca9cbe3c
--- /dev/null
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/crypto_oid.h
@@ -0,0 +1,548 @@
+/**
+ * \file crypto_oid.h
+ *
+ * \brief Object Identifier (OID) database
+ */
+/*
+ *  Copyright The Mbed TLS Contributors
+ *  SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+ */
+#ifndef MBEDTLS_CRYPTO_OID_H
+#define MBEDTLS_CRYPTO_OID_H
+#include "mbedtls/private_access.h"
+
+#include "tf-psa-crypto/build_info.h"
+
+#include "mbedtls/asn1.h"
+#include "mbedtls/pk.h"
+#if defined(MBEDTLS_PK_HAVE_PRIVATE_HEADER)
+#include <mbedtls/private/pk_private.h>
+#endif /* MBEDTLS_PK_HAVE_PRIVATE_HEADER */
+
+#include <stddef.h>
+
+#if defined(MBEDTLS_CIPHER_C)
+#include "mbedtls/private/cipher.h"
+#endif
+
+#include "mbedtls/md.h"
+
+#define MBEDTLS_ERR_OID_NOT_FOUND                         PSA_ERROR_NOT_SUPPORTED
+
+/*
+ * Maximum number of OID components allowed
+ */
+#define MBEDTLS_OID_MAX_COMPONENTS              128
+
+/*
+ * Top level OID tuples
+ */
+#define MBEDTLS_OID_ISO_MEMBER_BODIES           "\x2a"          /* {iso(1) member-body(2)} */
+#define MBEDTLS_OID_ISO_IDENTIFIED_ORG          "\x2b"          /* {iso(1) identified-organization(3)} */
+#define MBEDTLS_OID_ISO_CCITT_DS                "\x55"          /* {joint-iso-ccitt(2) ds(5)} */
+#define MBEDTLS_OID_ISO_ITU_COUNTRY             "\x60"          /* {joint-iso-itu-t(2) country(16)} */
+
+/*
+ * ISO Member bodies OID parts
+ */
+#define MBEDTLS_OID_COUNTRY_US                  "\x86\x48"      /* {us(840)} */
+#define MBEDTLS_OID_ORG_RSA_DATA_SECURITY       "\x86\xf7\x0d"  /* {rsadsi(113549)} */
+#define MBEDTLS_OID_RSA_COMPANY                 MBEDTLS_OID_ISO_MEMBER_BODIES MBEDTLS_OID_COUNTRY_US \
+    MBEDTLS_OID_ORG_RSA_DATA_SECURITY                           /* {iso(1) member-body(2) us(840) rsadsi(113549)} */
+#define MBEDTLS_OID_ORG_ANSI_X9_62              "\xce\x3d" /* ansi-X9-62(10045) */
+#define MBEDTLS_OID_ANSI_X9_62                  MBEDTLS_OID_ISO_MEMBER_BODIES MBEDTLS_OID_COUNTRY_US \
+    MBEDTLS_OID_ORG_ANSI_X9_62
+
+/*
+ * ISO Identified organization OID parts
+ */
+#define MBEDTLS_OID_ORG_DOD                     "\x06"          /* {dod(6)} */
+#define MBEDTLS_OID_ORG_OIW                     "\x0e"
+#define MBEDTLS_OID_OIW_SECSIG                  MBEDTLS_OID_ORG_OIW "\x03"
+#define MBEDTLS_OID_OIW_SECSIG_ALG              MBEDTLS_OID_OIW_SECSIG "\x02"
+#define MBEDTLS_OID_OIW_SECSIG_SHA1             MBEDTLS_OID_OIW_SECSIG_ALG "\x1a"
+#define MBEDTLS_OID_ORG_THAWTE                  "\x65"          /* thawte(101) */
+#define MBEDTLS_OID_THAWTE                      MBEDTLS_OID_ISO_IDENTIFIED_ORG \
+    MBEDTLS_OID_ORG_THAWTE
+#define MBEDTLS_OID_ORG_CERTICOM                "\x81\x04"  /* certicom(132) */
+#define MBEDTLS_OID_CERTICOM                    MBEDTLS_OID_ISO_IDENTIFIED_ORG \
+    MBEDTLS_OID_ORG_CERTICOM
+#define MBEDTLS_OID_ORG_TELETRUST               "\x24" /* teletrust(36) */
+#define MBEDTLS_OID_TELETRUST                   MBEDTLS_OID_ISO_IDENTIFIED_ORG \
+    MBEDTLS_OID_ORG_TELETRUST
+
+/*
+ * ISO ITU OID parts
+ */
+#define MBEDTLS_OID_ORGANIZATION                "\x01"          /* {organization(1)} */
+#define MBEDTLS_OID_ISO_ITU_US_ORG              MBEDTLS_OID_ISO_ITU_COUNTRY MBEDTLS_OID_COUNTRY_US \
+    MBEDTLS_OID_ORGANIZATION                                    /* {joint-iso-itu-t(2) country(16) us(840) organization(1)} */
+
+#define MBEDTLS_OID_ORG_GOV                     "\x65"          /* {gov(101)} */
+#define MBEDTLS_OID_GOV                         MBEDTLS_OID_ISO_ITU_US_ORG MBEDTLS_OID_ORG_GOV /* {joint-iso-itu-t(2) country(16) us(840) organization(1) gov(101)} */
+
+#define MBEDTLS_OID_ORG_NETSCAPE                "\x86\xF8\x42"  /* {netscape(113730)} */
+#define MBEDTLS_OID_NETSCAPE                    MBEDTLS_OID_ISO_ITU_US_ORG MBEDTLS_OID_ORG_NETSCAPE /* Netscape OID {joint-iso-itu-t(2) country(16) us(840) organization(1) netscape(113730)} */
+
+/* ISO arc for standard certificate and CRL extensions */
+#define MBEDTLS_OID_ID_CE                       MBEDTLS_OID_ISO_CCITT_DS "\x1D" /**< id-ce OBJECT IDENTIFIER  ::=  {joint-iso-ccitt(2) ds(5) 29} */
+
+#define MBEDTLS_OID_NIST_ALG                    MBEDTLS_OID_GOV "\x03\x04" /** { joint-iso-itu-t(2) country(16) us(840) organization(1) gov(101) csor(3) nistAlgorithm(4) */
+
+/**
+ * Private Internet Extensions
+ * { iso(1) identified-organization(3) dod(6) internet(1)
+ *                      security(5) mechanisms(5) pkix(7) }
+ */
+#define MBEDTLS_OID_INTERNET                    MBEDTLS_OID_ISO_IDENTIFIED_ORG MBEDTLS_OID_ORG_DOD \
+    "\x01"
+#define MBEDTLS_OID_PKIX                        MBEDTLS_OID_INTERNET "\x05\x05\x07"
+
+/*
+ * Arc for standard naming attributes
+ */
+#define MBEDTLS_OID_AT                          MBEDTLS_OID_ISO_CCITT_DS "\x04" /**< id-at OBJECT IDENTIFIER ::= {joint-iso-ccitt(2) ds(5) 4} */
+#define MBEDTLS_OID_AT_CN                       MBEDTLS_OID_AT "\x03" /**< id-at-commonName AttributeType:= {id-at 3} */
+#define MBEDTLS_OID_AT_SUR_NAME                 MBEDTLS_OID_AT "\x04" /**< id-at-surName AttributeType:= {id-at 4} */
+#define MBEDTLS_OID_AT_SERIAL_NUMBER            MBEDTLS_OID_AT "\x05" /**< id-at-serialNumber AttributeType:= {id-at 5} */
+#define MBEDTLS_OID_AT_COUNTRY                  MBEDTLS_OID_AT "\x06" /**< id-at-countryName AttributeType:= {id-at 6} */
+#define MBEDTLS_OID_AT_LOCALITY                 MBEDTLS_OID_AT "\x07" /**< id-at-locality AttributeType:= {id-at 7} */
+#define MBEDTLS_OID_AT_STATE                    MBEDTLS_OID_AT "\x08" /**< id-at-state AttributeType:= {id-at 8} */
+#define MBEDTLS_OID_AT_ORGANIZATION             MBEDTLS_OID_AT "\x0A" /**< id-at-organizationName AttributeType:= {id-at 10} */
+#define MBEDTLS_OID_AT_ORG_UNIT                 MBEDTLS_OID_AT "\x0B" /**< id-at-organizationalUnitName AttributeType:= {id-at 11} */
+#define MBEDTLS_OID_AT_TITLE                    MBEDTLS_OID_AT "\x0C" /**< id-at-title AttributeType:= {id-at 12} */
+#define MBEDTLS_OID_AT_POSTAL_ADDRESS           MBEDTLS_OID_AT "\x10" /**< id-at-postalAddress AttributeType:= {id-at 16} */
+#define MBEDTLS_OID_AT_POSTAL_CODE              MBEDTLS_OID_AT "\x11" /**< id-at-postalCode AttributeType:= {id-at 17} */
+#define MBEDTLS_OID_AT_GIVEN_NAME               MBEDTLS_OID_AT "\x2A" /**< id-at-givenName AttributeType:= {id-at 42} */
+#define MBEDTLS_OID_AT_INITIALS                 MBEDTLS_OID_AT "\x2B" /**< id-at-initials AttributeType:= {id-at 43} */
+#define MBEDTLS_OID_AT_GENERATION_QUALIFIER     MBEDTLS_OID_AT "\x2C" /**< id-at-generationQualifier AttributeType:= {id-at 44} */
+#define MBEDTLS_OID_AT_UNIQUE_IDENTIFIER        MBEDTLS_OID_AT "\x2D" /**< id-at-uniqueIdentifier AttributeType:= {id-at 45} */
+#define MBEDTLS_OID_AT_DN_QUALIFIER             MBEDTLS_OID_AT "\x2E" /**< id-at-dnQualifier AttributeType:= {id-at 46} */
+#define MBEDTLS_OID_AT_PSEUDONYM                MBEDTLS_OID_AT "\x41" /**< id-at-pseudonym AttributeType:= {id-at 65} */
+
+#define MBEDTLS_OID_UID                         "\x09\x92\x26\x89\x93\xF2\x2C\x64\x01\x01" /** id-domainComponent AttributeType:= {itu-t(0) data(9) pss(2342) ucl(19200300) pilot(100) pilotAttributeType(1) uid(1)} */
+#define MBEDTLS_OID_DOMAIN_COMPONENT            "\x09\x92\x26\x89\x93\xF2\x2C\x64\x01\x19" /** id-domainComponent AttributeType:= {itu-t(0) data(9) pss(2342) ucl(19200300) pilot(100) pilotAttributeType(1) domainComponent(25)} */
+
+/*
+ * OIDs for standard certificate extensions
+ */
+#define MBEDTLS_OID_AUTHORITY_KEY_IDENTIFIER    MBEDTLS_OID_ID_CE "\x23" /**< id-ce-authorityKeyIdentifier OBJECT IDENTIFIER ::=  { id-ce 35 } */
+#define MBEDTLS_OID_SUBJECT_KEY_IDENTIFIER      MBEDTLS_OID_ID_CE "\x0E" /**< id-ce-subjectKeyIdentifier OBJECT IDENTIFIER ::=  { id-ce 14 } */
+#define MBEDTLS_OID_KEY_USAGE                   MBEDTLS_OID_ID_CE "\x0F" /**< id-ce-keyUsage OBJECT IDENTIFIER ::=  { id-ce 15 } */
+#define MBEDTLS_OID_CERTIFICATE_POLICIES        MBEDTLS_OID_ID_CE "\x20" /**< id-ce-certificatePolicies OBJECT IDENTIFIER ::=  { id-ce 32 } */
+#define MBEDTLS_OID_POLICY_MAPPINGS             MBEDTLS_OID_ID_CE "\x21" /**< id-ce-policyMappings OBJECT IDENTIFIER ::=  { id-ce 33 } */
+#define MBEDTLS_OID_SUBJECT_ALT_NAME            MBEDTLS_OID_ID_CE "\x11" /**< id-ce-subjectAltName OBJECT IDENTIFIER ::=  { id-ce 17 } */
+#define MBEDTLS_OID_ISSUER_ALT_NAME             MBEDTLS_OID_ID_CE "\x12" /**< id-ce-issuerAltName OBJECT IDENTIFIER ::=  { id-ce 18 } */
+#define MBEDTLS_OID_SUBJECT_DIRECTORY_ATTRS     MBEDTLS_OID_ID_CE "\x09" /**< id-ce-subjectDirectoryAttributes OBJECT IDENTIFIER ::=  { id-ce 9 } */
+#define MBEDTLS_OID_BASIC_CONSTRAINTS           MBEDTLS_OID_ID_CE "\x13" /**< id-ce-basicConstraints OBJECT IDENTIFIER ::=  { id-ce 19 } */
+#define MBEDTLS_OID_NAME_CONSTRAINTS            MBEDTLS_OID_ID_CE "\x1E" /**< id-ce-nameConstraints OBJECT IDENTIFIER ::=  { id-ce 30 } */
+#define MBEDTLS_OID_POLICY_CONSTRAINTS          MBEDTLS_OID_ID_CE "\x24" /**< id-ce-policyConstraints OBJECT IDENTIFIER ::=  { id-ce 36 } */
+#define MBEDTLS_OID_EXTENDED_KEY_USAGE          MBEDTLS_OID_ID_CE "\x25" /**< id-ce-extKeyUsage OBJECT IDENTIFIER ::= { id-ce 37 } */
+#define MBEDTLS_OID_CRL_DISTRIBUTION_POINTS     MBEDTLS_OID_ID_CE "\x1F" /**< id-ce-cRLDistributionPoints OBJECT IDENTIFIER ::=  { id-ce 31 } */
+#define MBEDTLS_OID_INIHIBIT_ANYPOLICY          MBEDTLS_OID_ID_CE "\x36" /**< id-ce-inhibitAnyPolicy OBJECT IDENTIFIER ::=  { id-ce 54 } */
+#define MBEDTLS_OID_FRESHEST_CRL                MBEDTLS_OID_ID_CE "\x2E" /**< id-ce-freshestCRL OBJECT IDENTIFIER ::=  { id-ce 46 } */
+
+/*
+ * Certificate policies
+ */
+#define MBEDTLS_OID_ANY_POLICY              MBEDTLS_OID_CERTIFICATE_POLICIES "\x00" /**< anyPolicy OBJECT IDENTIFIER ::= { id-ce-certificatePolicies 0 } */
+
+/*
+ * Netscape certificate extensions
+ */
+#define MBEDTLS_OID_NS_CERT                 MBEDTLS_OID_NETSCAPE "\x01"
+#define MBEDTLS_OID_NS_CERT_TYPE            MBEDTLS_OID_NS_CERT  "\x01"
+#define MBEDTLS_OID_NS_BASE_URL             MBEDTLS_OID_NS_CERT  "\x02"
+#define MBEDTLS_OID_NS_REVOCATION_URL       MBEDTLS_OID_NS_CERT  "\x03"
+#define MBEDTLS_OID_NS_CA_REVOCATION_URL    MBEDTLS_OID_NS_CERT  "\x04"
+#define MBEDTLS_OID_NS_RENEWAL_URL          MBEDTLS_OID_NS_CERT  "\x07"
+#define MBEDTLS_OID_NS_CA_POLICY_URL        MBEDTLS_OID_NS_CERT  "\x08"
+#define MBEDTLS_OID_NS_SSL_SERVER_NAME      MBEDTLS_OID_NS_CERT  "\x0C"
+#define MBEDTLS_OID_NS_COMMENT              MBEDTLS_OID_NS_CERT  "\x0D"
+#define MBEDTLS_OID_NS_DATA_TYPE            MBEDTLS_OID_NETSCAPE "\x02"
+#define MBEDTLS_OID_NS_CERT_SEQUENCE        MBEDTLS_OID_NS_DATA_TYPE "\x05"
+
+/*
+ * OIDs for CRL extensions
+ */
+#define MBEDTLS_OID_PRIVATE_KEY_USAGE_PERIOD    MBEDTLS_OID_ID_CE "\x10"
+#define MBEDTLS_OID_CRL_NUMBER                  MBEDTLS_OID_ID_CE "\x14" /**< id-ce-cRLNumber OBJECT IDENTIFIER ::= { id-ce 20 } */
+
+/*
+ * X.509 v3 Extended key usage OIDs
+ */
+#define MBEDTLS_OID_ANY_EXTENDED_KEY_USAGE      MBEDTLS_OID_EXTENDED_KEY_USAGE "\x00" /**< anyExtendedKeyUsage OBJECT IDENTIFIER ::= { id-ce-extKeyUsage 0 } */
+
+#define MBEDTLS_OID_KP                          MBEDTLS_OID_PKIX "\x03" /**< id-kp OBJECT IDENTIFIER ::= { id-pkix 3 } */
+#define MBEDTLS_OID_SERVER_AUTH                 MBEDTLS_OID_KP "\x01" /**< id-kp-serverAuth OBJECT IDENTIFIER ::= { id-kp 1 } */
+#define MBEDTLS_OID_CLIENT_AUTH                 MBEDTLS_OID_KP "\x02" /**< id-kp-clientAuth OBJECT IDENTIFIER ::= { id-kp 2 } */
+#define MBEDTLS_OID_CODE_SIGNING                MBEDTLS_OID_KP "\x03" /**< id-kp-codeSigning OBJECT IDENTIFIER ::= { id-kp 3 } */
+#define MBEDTLS_OID_EMAIL_PROTECTION            MBEDTLS_OID_KP "\x04" /**< id-kp-emailProtection OBJECT IDENTIFIER ::= { id-kp 4 } */
+#define MBEDTLS_OID_TIME_STAMPING               MBEDTLS_OID_KP "\x08" /**< id-kp-timeStamping OBJECT IDENTIFIER ::= { id-kp 8 } */
+#define MBEDTLS_OID_OCSP_SIGNING                MBEDTLS_OID_KP "\x09" /**< id-kp-OCSPSigning OBJECT IDENTIFIER ::= { id-kp 9 } */
+
+/**
+ * Wi-SUN Alliance Field Area Network
+ * { iso(1) identified-organization(3) dod(6) internet(1)
+ *                      private(4) enterprise(1) WiSUN(45605) FieldAreaNetwork(1) }
+ */
+#define MBEDTLS_OID_WISUN_FAN                   MBEDTLS_OID_INTERNET "\x04\x01\x82\xe4\x25\x01"
+
+#define MBEDTLS_OID_ON                          MBEDTLS_OID_PKIX "\x08" /**< id-on OBJECT IDENTIFIER ::= { id-pkix 8 } */
+#define MBEDTLS_OID_ON_HW_MODULE_NAME           MBEDTLS_OID_ON "\x04" /**< id-on-hardwareModuleName OBJECT IDENTIFIER ::= { id-on 4 } */
+
+/*
+ * PKCS definition OIDs
+ */
+
+#define MBEDTLS_OID_PKCS                MBEDTLS_OID_RSA_COMPANY "\x01" /**< pkcs OBJECT IDENTIFIER ::= { iso(1) member-body(2) us(840) rsadsi(113549) 1 } */
+#define MBEDTLS_OID_PKCS1               MBEDTLS_OID_PKCS "\x01" /**< pkcs-1 OBJECT IDENTIFIER ::= { iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1) 1 } */
+#define MBEDTLS_OID_PKCS5               MBEDTLS_OID_PKCS "\x05" /**< pkcs-5 OBJECT IDENTIFIER ::= { iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1) 5 } */
+#define MBEDTLS_OID_PKCS7               MBEDTLS_OID_PKCS "\x07" /**< pkcs-7 OBJECT IDENTIFIER ::= { iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1) 7 } */
+#define MBEDTLS_OID_PKCS9               MBEDTLS_OID_PKCS "\x09" /**< pkcs-9 OBJECT IDENTIFIER ::= { iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1) 9 } */
+
+/*
+ * PKCS#1 OIDs
+ */
+#define MBEDTLS_OID_PKCS1_RSA           MBEDTLS_OID_PKCS1 "\x01" /**< rsaEncryption OBJECT IDENTIFIER ::= { pkcs-1 1 } */
+#define MBEDTLS_OID_PKCS1_MD5           MBEDTLS_OID_PKCS1 "\x04" /**< md5WithRSAEncryption ::= { pkcs-1 4 } */
+#define MBEDTLS_OID_PKCS1_SHA1          MBEDTLS_OID_PKCS1 "\x05" /**< sha1WithRSAEncryption ::= { pkcs-1 5 } */
+#define MBEDTLS_OID_PKCS1_SHA224        MBEDTLS_OID_PKCS1 "\x0e" /**< sha224WithRSAEncryption ::= { pkcs-1 14 } */
+#define MBEDTLS_OID_PKCS1_SHA256        MBEDTLS_OID_PKCS1 "\x0b" /**< sha256WithRSAEncryption ::= { pkcs-1 11 } */
+#define MBEDTLS_OID_PKCS1_SHA384        MBEDTLS_OID_PKCS1 "\x0c" /**< sha384WithRSAEncryption ::= { pkcs-1 12 } */
+#define MBEDTLS_OID_PKCS1_SHA512        MBEDTLS_OID_PKCS1 "\x0d" /**< sha512WithRSAEncryption ::= { pkcs-1 13 } */
+
+#define MBEDTLS_OID_RSA_SHA_OBS         "\x2B\x0E\x03\x02\x1D"
+
+#define MBEDTLS_OID_PKCS9_EMAIL         MBEDTLS_OID_PKCS9 "\x01" /**< emailAddress AttributeType ::= { pkcs-9 1 } */
+
+/* RFC 4055 */
+#define MBEDTLS_OID_RSASSA_PSS          MBEDTLS_OID_PKCS1 "\x0a" /**< id-RSASSA-PSS ::= { pkcs-1 10 } */
+#define MBEDTLS_OID_MGF1                MBEDTLS_OID_PKCS1 "\x08" /**< id-mgf1 ::= { pkcs-1 8 } */
+
+/*
+ * Digest algorithms
+ */
+#define MBEDTLS_OID_DIGEST_ALG_MD5              MBEDTLS_OID_RSA_COMPANY "\x02\x05" /**< id-mbedtls_md5 OBJECT IDENTIFIER ::= { iso(1) member-body(2) us(840) rsadsi(113549) digestAlgorithm(2) 5 } */
+#define MBEDTLS_OID_DIGEST_ALG_SHA1             MBEDTLS_OID_ISO_IDENTIFIED_ORG \
+    MBEDTLS_OID_OIW_SECSIG_SHA1                                                 /**< id-mbedtls_sha1 OBJECT IDENTIFIER ::= { iso(1) identified-organization(3) oiw(14) secsig(3) algorithms(2) 26 } */
+#define MBEDTLS_OID_DIGEST_ALG_SHA224           MBEDTLS_OID_NIST_ALG "\x02\x04" /**< id-sha224 OBJECT IDENTIFIER ::= { joint-iso-itu-t(2) country(16) us(840) organization(1) gov(101) csor(3) nistalgorithm(4) hashalgs(2) 4 } */
+#define MBEDTLS_OID_DIGEST_ALG_SHA256           MBEDTLS_OID_NIST_ALG "\x02\x01" /**< id-mbedtls_sha256 OBJECT IDENTIFIER ::= { joint-iso-itu-t(2) country(16) us(840) organization(1) gov(101) csor(3) nistalgorithm(4) hashalgs(2) 1 } */
+
+#define MBEDTLS_OID_DIGEST_ALG_SHA384           MBEDTLS_OID_NIST_ALG "\x02\x02" /**< id-sha384 OBJECT IDENTIFIER ::= { joint-iso-itu-t(2) country(16) us(840) organization(1) gov(101) csor(3) nistalgorithm(4) hashalgs(2) 2 } */
+
+#define MBEDTLS_OID_DIGEST_ALG_SHA512           MBEDTLS_OID_NIST_ALG "\x02\x03" /**< id-mbedtls_sha512 OBJECT IDENTIFIER ::= { joint-iso-itu-t(2) country(16) us(840) organization(1) gov(101) csor(3) nistalgorithm(4) hashalgs(2) 3 } */
+
+#define MBEDTLS_OID_DIGEST_ALG_RIPEMD160        MBEDTLS_OID_TELETRUST "\x03\x02\x01" /**< id-ripemd160 OBJECT IDENTIFIER :: { iso(1) identified-organization(3) teletrust(36) algorithm(3) hashAlgorithm(2) ripemd160(1) } */
+
+#define MBEDTLS_OID_DIGEST_ALG_SHA3_224         MBEDTLS_OID_NIST_ALG "\x02\x07" /**< id-sha3-224 OBJECT IDENTIFIER ::= { joint-iso-itu-t(2) country(16) us(840) organization(1) gov(101) csor(3) nistAlgorithms(4) hashalgs(2) sha3-224(7) } */
+
+#define MBEDTLS_OID_DIGEST_ALG_SHA3_256         MBEDTLS_OID_NIST_ALG "\x02\x08" /**< id-sha3-256 OBJECT IDENTIFIER ::= { joint-iso-itu-t(2) country(16) us(840) organization(1) gov(101) csor(3) nistAlgorithms(4) hashalgs(2) sha3-256(8) } */
+
+#define MBEDTLS_OID_DIGEST_ALG_SHA3_384         MBEDTLS_OID_NIST_ALG "\x02\x09" /**< id-sha3-384 OBJECT IDENTIFIER ::= { joint-iso-itu-t(2) country(16) us(840) organization(1) gov(101) csor(3) nistAlgorithms(4) hashalgs(2) sha3-384(9) } */
+
+#define MBEDTLS_OID_DIGEST_ALG_SHA3_512         MBEDTLS_OID_NIST_ALG "\x02\x0a" /**< id-sha3-512 OBJECT IDENTIFIER ::= { joint-iso-itu-t(2) country(16) us(840) organization(1) gov(101) csor(3) nistAlgorithms(4) hashalgs(2) sha3-512(10) } */
+
+
+#define MBEDTLS_OID_HMAC_SHA1                   MBEDTLS_OID_RSA_COMPANY "\x02\x07" /**< id-hmacWithSHA1 OBJECT IDENTIFIER ::= { iso(1) member-body(2) us(840) rsadsi(113549) digestAlgorithm(2) 7 } */
+
+#define MBEDTLS_OID_HMAC_SHA224                 MBEDTLS_OID_RSA_COMPANY "\x02\x08" /**< id-hmacWithSHA224 OBJECT IDENTIFIER ::= { iso(1) member-body(2) us(840) rsadsi(113549) digestAlgorithm(2) 8 } */
+
+#define MBEDTLS_OID_HMAC_SHA256                 MBEDTLS_OID_RSA_COMPANY "\x02\x09" /**< id-hmacWithSHA256 OBJECT IDENTIFIER ::= { iso(1) member-body(2) us(840) rsadsi(113549) digestAlgorithm(2) 9 } */
+
+#define MBEDTLS_OID_HMAC_SHA384                 MBEDTLS_OID_RSA_COMPANY "\x02\x0A" /**< id-hmacWithSHA384 OBJECT IDENTIFIER ::= { iso(1) member-body(2) us(840) rsadsi(113549) digestAlgorithm(2) 10 } */
+
+#define MBEDTLS_OID_HMAC_SHA512                 MBEDTLS_OID_RSA_COMPANY "\x02\x0B" /**< id-hmacWithSHA512 OBJECT IDENTIFIER ::= { iso(1) member-body(2) us(840) rsadsi(113549) digestAlgorithm(2) 11 } */
+
+#define MBEDTLS_OID_HMAC_SHA3_224               MBEDTLS_OID_NIST_ALG "\x02\x0d" /**< id-hmacWithSHA3-512 OBJECT IDENTIFIER ::= { joint-iso-itu-t(2) country(16) us(840) organization(1) gov(101) csor(3) nistAlgorithms(4) hashalgs(2) hmacWithSHA3-224(13) } */
+
+#define MBEDTLS_OID_HMAC_SHA3_256               MBEDTLS_OID_NIST_ALG "\x02\x0e" /**< id-hmacWithSHA3-512 OBJECT IDENTIFIER ::= { joint-iso-itu-t(2) country(16) us(840) organization(1) gov(101) csor(3) nistAlgorithms(4) hashalgs(2) hmacWithSHA3-256(14) } */
+
+#define MBEDTLS_OID_HMAC_SHA3_384               MBEDTLS_OID_NIST_ALG "\x02\x0f" /**< id-hmacWithSHA3-512 OBJECT IDENTIFIER ::= { joint-iso-itu-t(2) country(16) us(840) organization(1) gov(101) csor(3) nistAlgorithms(4) hashalgs(2) hmacWithSHA3-384(15) } */
+
+#define MBEDTLS_OID_HMAC_SHA3_512               MBEDTLS_OID_NIST_ALG "\x02\x10" /**< id-hmacWithSHA3-512 OBJECT IDENTIFIER ::= { joint-iso-itu-t(2) country(16) us(840) organization(1) gov(101) csor(3) nistAlgorithms(4) hashalgs(2) hmacWithSHA3-512(16) } */
+
+#define MBEDTLS_OID_HMAC_RIPEMD160              MBEDTLS_OID_INTERNET "\x05\x05\x08\x01\x04" /**< id-hmacWithSHA1 OBJECT IDENTIFIER ::= {iso(1) iso-identified-organization(3) dod(6) internet(1) security(5) mechanisms(5) ipsec(8) isakmpOakley(1) hmacRIPEMD160(4)} */
+
+/*
+ * Encryption algorithms,
+ * the following standardized object identifiers are specified at
+ * https://datatracker.ietf.org/doc/html/rfc8018#appendix-C.
+ */
+#define MBEDTLS_OID_AES                         MBEDTLS_OID_NIST_ALG "\x01" /** aes OBJECT IDENTIFIER ::= { joint-iso-itu-t(2) country(16) us(840) organization(1) gov(101) csor(3) nistAlgorithm(4) 1 } */
+#define MBEDTLS_OID_AES_128_CBC                 MBEDTLS_OID_AES "\x02" /** aes128-cbc-pad OBJECT IDENTIFIER ::= { joint-iso-itu-t(2) country(16) us(840) organization(1) gov(101) csor(3) nistAlgorithms(4) aes(1) aes128-CBC-PAD(2) } */
+#define MBEDTLS_OID_AES_192_CBC                 MBEDTLS_OID_AES "\x16" /** aes192-cbc-pad OBJECT IDENTIFIER ::= { joint-iso-itu-t(2) country(16) us(840) organization(1) gov(101) csor(3) nistAlgorithms(4) aes(1) aes192-CBC-PAD(22) } */
+#define MBEDTLS_OID_AES_256_CBC                 MBEDTLS_OID_AES "\x2a" /** aes256-cbc-pad OBJECT IDENTIFIER ::= { joint-iso-itu-t(2) country(16) us(840) organization(1) gov(101) csor(3) nistAlgorithms(4) aes(1) aes256-CBC-PAD(42) } */
+
+/*
+ * Key Wrapping algorithms
+ */
+/*
+ * RFC 5649
+ */
+#define MBEDTLS_OID_AES128_KW                   MBEDTLS_OID_AES "\x05" /** id-aes128-wrap     OBJECT IDENTIFIER ::= { aes 5 } */
+#define MBEDTLS_OID_AES128_KWP                  MBEDTLS_OID_AES "\x08" /** id-aes128-wrap-pad OBJECT IDENTIFIER ::= { aes 8 } */
+#define MBEDTLS_OID_AES192_KW                   MBEDTLS_OID_AES "\x19" /** id-aes192-wrap     OBJECT IDENTIFIER ::= { aes 25 } */
+#define MBEDTLS_OID_AES192_KWP                  MBEDTLS_OID_AES "\x1c" /** id-aes192-wrap-pad OBJECT IDENTIFIER ::= { aes 28 } */
+#define MBEDTLS_OID_AES256_KW                   MBEDTLS_OID_AES "\x2d" /** id-aes256-wrap     OBJECT IDENTIFIER ::= { aes 45 } */
+#define MBEDTLS_OID_AES256_KWP                  MBEDTLS_OID_AES "\x30" /** id-aes256-wrap-pad OBJECT IDENTIFIER ::= { aes 48 } */
+/*
+ * PKCS#5 OIDs
+ */
+#define MBEDTLS_OID_PKCS5_PBKDF2                MBEDTLS_OID_PKCS5 "\x0c" /**< id-PBKDF2 OBJECT IDENTIFIER ::= {pkcs-5 12} */
+#define MBEDTLS_OID_PKCS5_PBES2                 MBEDTLS_OID_PKCS5 "\x0d" /**< id-PBES2 OBJECT IDENTIFIER ::= {pkcs-5 13} */
+#define MBEDTLS_OID_PKCS5_PBMAC1                MBEDTLS_OID_PKCS5 "\x0e" /**< id-PBMAC1 OBJECT IDENTIFIER ::= {pkcs-5 14} */
+
+/*
+ * PKCS#5 PBES1 algorithms
+ */
+#define MBEDTLS_OID_PKCS5_PBE_MD5_RC2_CBC       MBEDTLS_OID_PKCS5 "\x06" /**< pbeWithMD5AndRC2-CBC OBJECT IDENTIFIER ::= {pkcs-5 6} */
+#define MBEDTLS_OID_PKCS5_PBE_SHA1_RC2_CBC      MBEDTLS_OID_PKCS5 "\x0b" /**< pbeWithSHA1AndRC2-CBC OBJECT IDENTIFIER ::= {pkcs-5 11} */
+
+/*
+ * PKCS#7 OIDs
+ */
+#define MBEDTLS_OID_PKCS7_DATA                        MBEDTLS_OID_PKCS7 "\x01" /**< Content type is Data OBJECT IDENTIFIER ::= {pkcs-7 1} */
+#define MBEDTLS_OID_PKCS7_SIGNED_DATA                 MBEDTLS_OID_PKCS7 "\x02" /**< Content type is Signed Data OBJECT IDENTIFIER ::= {pkcs-7 2} */
+#define MBEDTLS_OID_PKCS7_ENVELOPED_DATA              MBEDTLS_OID_PKCS7 "\x03" /**< Content type is Enveloped Data OBJECT IDENTIFIER ::= {pkcs-7 3} */
+#define MBEDTLS_OID_PKCS7_SIGNED_AND_ENVELOPED_DATA   MBEDTLS_OID_PKCS7 "\x04" /**< Content type is Signed and Enveloped Data OBJECT IDENTIFIER ::= {pkcs-7 4} */
+#define MBEDTLS_OID_PKCS7_DIGESTED_DATA               MBEDTLS_OID_PKCS7 "\x05" /**< Content type is Digested Data OBJECT IDENTIFIER ::= {pkcs-7 5} */
+#define MBEDTLS_OID_PKCS7_ENCRYPTED_DATA              MBEDTLS_OID_PKCS7 "\x06" /**< Content type is Encrypted Data OBJECT IDENTIFIER ::= {pkcs-7 6} */
+
+/*
+ * PKCS#8 OIDs
+ */
+#define MBEDTLS_OID_PKCS9_CSR_EXT_REQ           MBEDTLS_OID_PKCS9 "\x0e" /**< extensionRequest OBJECT IDENTIFIER ::= {pkcs-9 14} */
+
+/*
+ * EC key algorithms from RFC 5480
+ */
+
+/* id-ecPublicKey OBJECT IDENTIFIER ::= {
+ *       iso(1) member-body(2) us(840) ansi-X9-62(10045) keyType(2) 1 } */
+#define MBEDTLS_OID_EC_ALG_UNRESTRICTED         MBEDTLS_OID_ANSI_X9_62 "\x02\01"
+
+/*   id-ecDH OBJECT IDENTIFIER ::= {
+ *     iso(1) identified-organization(3) certicom(132)
+ *     schemes(1) ecdh(12) } */
+#define MBEDTLS_OID_EC_ALG_ECDH                 MBEDTLS_OID_CERTICOM "\x01\x0c"
+
+/*
+ * ECParameters namedCurve identifiers, from RFC 5480, RFC 5639, and SEC2
+ */
+
+/* secp192r1 OBJECT IDENTIFIER ::= {
+ *   iso(1) member-body(2) us(840) ansi-X9-62(10045) curves(3) prime(1) 1 } */
+#define MBEDTLS_OID_EC_GRP_SECP192R1        MBEDTLS_OID_ANSI_X9_62 "\x03\x01\x01"
+
+/* secp256r1 OBJECT IDENTIFIER ::= {
+ *   iso(1) member-body(2) us(840) ansi-X9-62(10045) curves(3) prime(1) 7 } */
+#define MBEDTLS_OID_EC_GRP_SECP256R1        MBEDTLS_OID_ANSI_X9_62 "\x03\x01\x07"
+
+/* secp384r1 OBJECT IDENTIFIER ::= {
+ *   iso(1) identified-organization(3) certicom(132) curve(0) 34 } */
+#define MBEDTLS_OID_EC_GRP_SECP384R1        MBEDTLS_OID_CERTICOM "\x00\x22"
+
+/* secp521r1 OBJECT IDENTIFIER ::= {
+ *   iso(1) identified-organization(3) certicom(132) curve(0) 35 } */
+#define MBEDTLS_OID_EC_GRP_SECP521R1        MBEDTLS_OID_CERTICOM "\x00\x23"
+
+/* secp192k1 OBJECT IDENTIFIER ::= {
+ *   iso(1) identified-organization(3) certicom(132) curve(0) 31 } */
+#define MBEDTLS_OID_EC_GRP_SECP192K1        MBEDTLS_OID_CERTICOM "\x00\x1f"
+
+/* secp256k1 OBJECT IDENTIFIER ::= {
+ *   iso(1) identified-organization(3) certicom(132) curve(0) 10 } */
+#define MBEDTLS_OID_EC_GRP_SECP256K1        MBEDTLS_OID_CERTICOM "\x00\x0a"
+
+/* RFC 5639 4.1
+ * ecStdCurvesAndGeneration OBJECT IDENTIFIER::= {iso(1)
+ * identified-organization(3) teletrust(36) algorithm(3) signature-
+ * algorithm(3) ecSign(2) 8}
+ * ellipticCurve OBJECT IDENTIFIER ::= {ecStdCurvesAndGeneration 1}
+ * versionOne OBJECT IDENTIFIER ::= {ellipticCurve 1} */
+#define MBEDTLS_OID_EC_BRAINPOOL_V1         MBEDTLS_OID_TELETRUST "\x03\x03\x02\x08\x01\x01"
+
+/* brainpoolP256r1 OBJECT IDENTIFIER ::= {versionOne 7} */
+#define MBEDTLS_OID_EC_GRP_BP256R1          MBEDTLS_OID_EC_BRAINPOOL_V1 "\x07"
+
+/* brainpoolP384r1 OBJECT IDENTIFIER ::= {versionOne 11} */
+#define MBEDTLS_OID_EC_GRP_BP384R1          MBEDTLS_OID_EC_BRAINPOOL_V1 "\x0B"
+
+/* brainpoolP512r1 OBJECT IDENTIFIER ::= {versionOne 13} */
+#define MBEDTLS_OID_EC_GRP_BP512R1          MBEDTLS_OID_EC_BRAINPOOL_V1 "\x0D"
+
+/*
+ * SEC1 C.1
+ *
+ * prime-field OBJECT IDENTIFIER ::= { id-fieldType 1 }
+ * id-fieldType OBJECT IDENTIFIER ::= { ansi-X9-62 fieldType(1)}
+ */
+#define MBEDTLS_OID_ANSI_X9_62_FIELD_TYPE   MBEDTLS_OID_ANSI_X9_62 "\x01"
+#define MBEDTLS_OID_ANSI_X9_62_PRIME_FIELD  MBEDTLS_OID_ANSI_X9_62_FIELD_TYPE "\x01"
+
+/*
+ * ECDSA signature identifiers, from RFC 5480
+ */
+#define MBEDTLS_OID_ANSI_X9_62_SIG          MBEDTLS_OID_ANSI_X9_62 "\x04" /* signatures(4) */
+#define MBEDTLS_OID_ANSI_X9_62_SIG_SHA2     MBEDTLS_OID_ANSI_X9_62_SIG "\x03" /* ecdsa-with-SHA2(3) */
+
+/* ecdsa-with-SHA1 OBJECT IDENTIFIER ::= {
+ *   iso(1) member-body(2) us(840) ansi-X9-62(10045) signatures(4) 1 } */
+#define MBEDTLS_OID_ECDSA_SHA1              MBEDTLS_OID_ANSI_X9_62_SIG "\x01"
+
+/* ecdsa-with-SHA224 OBJECT IDENTIFIER ::= {
+ *   iso(1) member-body(2) us(840) ansi-X9-62(10045) signatures(4)
+ *   ecdsa-with-SHA2(3) 1 } */
+#define MBEDTLS_OID_ECDSA_SHA224            MBEDTLS_OID_ANSI_X9_62_SIG_SHA2 "\x01"
+
+/* ecdsa-with-SHA256 OBJECT IDENTIFIER ::= {
+ *   iso(1) member-body(2) us(840) ansi-X9-62(10045) signatures(4)
+ *   ecdsa-with-SHA2(3) 2 } */
+#define MBEDTLS_OID_ECDSA_SHA256            MBEDTLS_OID_ANSI_X9_62_SIG_SHA2 "\x02"
+
+/* ecdsa-with-SHA384 OBJECT IDENTIFIER ::= {
+ *   iso(1) member-body(2) us(840) ansi-X9-62(10045) signatures(4)
+ *   ecdsa-with-SHA2(3) 3 } */
+#define MBEDTLS_OID_ECDSA_SHA384            MBEDTLS_OID_ANSI_X9_62_SIG_SHA2 "\x03"
+
+/* ecdsa-with-SHA512 OBJECT IDENTIFIER ::= {
+ *   iso(1) member-body(2) us(840) ansi-X9-62(10045) signatures(4)
+ *   ecdsa-with-SHA2(3) 4 } */
+#define MBEDTLS_OID_ECDSA_SHA512            MBEDTLS_OID_ANSI_X9_62_SIG_SHA2 "\x04"
+
+/*
+ * EC key algorithms from RFC 8410
+ */
+
+#define MBEDTLS_OID_X25519                  MBEDTLS_OID_THAWTE "\x6e" /**< id-X25519    OBJECT IDENTIFIER ::= { 1 3 101 110 } */
+#define MBEDTLS_OID_X448                    MBEDTLS_OID_THAWTE "\x6f" /**< id-X448      OBJECT IDENTIFIER ::= { 1 3 101 111 } */
+#define MBEDTLS_OID_ED25519                 MBEDTLS_OID_THAWTE "\x70" /**< id-Ed25519   OBJECT IDENTIFIER ::= { 1 3 101 112 } */
+#define MBEDTLS_OID_ED448                   MBEDTLS_OID_THAWTE "\x71" /**< id-Ed448     OBJECT IDENTIFIER ::= { 1 3 101 113 } */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * \brief Base OID descriptor structure
+ */
+typedef struct mbedtls_oid_descriptor_t {
+    const char *MBEDTLS_PRIVATE(asn1);               /*!< OID ASN.1 representation       */
+    size_t MBEDTLS_PRIVATE(asn1_len);                /*!< length of asn1                 */
+} mbedtls_oid_descriptor_t;
+
+#if defined(MBEDTLS_PK_PARSE_C) || defined(MBEDTLS_PK_WRITE_C)
+/**
+ * \brief          Translate PublicKeyAlgorithm OID into pk_type
+ *
+ * \param oid      OID to use
+ * \param pk_alg   place to store public key algorithm
+ *
+ * \return         0 if successful, or MBEDTLS_ERR_OID_NOT_FOUND
+ */
+int mbedtls_oid_get_pk_alg(const mbedtls_asn1_buf *oid, mbedtls_pk_type_t *pk_alg);
+
+/**
+ * \brief          Translate pk_type into PublicKeyAlgorithm OID
+ *
+ * \param pk_alg   Public key type to look for
+ * \param oid      place to store ASN.1 OID string pointer
+ * \param olen     length of the OID
+ *
+ * \return         0 if successful, or MBEDTLS_ERR_OID_NOT_FOUND
+ */
+int mbedtls_oid_get_oid_by_pk_alg(mbedtls_pk_type_t pk_alg,
+                                  const char **oid, size_t *olen);
+
+#if defined(PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY)
+/**
+ * \brief          Translate NamedCurve OID into an EC group identifier
+ *
+ * \param oid      OID to use
+ * \param grp_id   place to store group id
+ *
+ * \return         0 if successful, or MBEDTLS_ERR_OID_NOT_FOUND
+ */
+int mbedtls_oid_get_ec_grp(const mbedtls_asn1_buf *oid, mbedtls_ecp_group_id *grp_id);
+
+/**
+ * \brief          Translate EC group identifier into NamedCurve OID
+ *
+ * \param grp_id   EC group identifier
+ * \param oid      place to store ASN.1 OID string pointer
+ * \param olen     length of the OID
+ *
+ * \return         0 if successful, or MBEDTLS_ERR_OID_NOT_FOUND
+ */
+int mbedtls_oid_get_oid_by_ec_grp(mbedtls_ecp_group_id grp_id,
+                                  const char **oid, size_t *olen);
+
+/**
+ * \brief          Translate AlgorithmIdentifier OID into an EC group identifier,
+ *                 for curves that are directly encoded at this level
+ *
+ * \param oid      OID to use
+ * \param grp_id   place to store group id
+ *
+ * \return         0 if successful, or MBEDTLS_ERR_OID_NOT_FOUND
+ */
+int mbedtls_oid_get_ec_grp_algid(const mbedtls_asn1_buf *oid, mbedtls_ecp_group_id *grp_id);
+
+/**
+ * \brief          Translate EC group identifier into AlgorithmIdentifier OID,
+ *                 for curves that are directly encoded at this level
+ *
+ * \param grp_id   EC group identifier
+ * \param oid      place to store ASN.1 OID string pointer
+ * \param olen     length of the OID
+ *
+ * \return         0 if successful, or MBEDTLS_ERR_OID_NOT_FOUND
+ */
+int mbedtls_oid_get_oid_by_ec_grp_algid(mbedtls_ecp_group_id grp_id,
+                                        const char **oid, size_t *olen);
+#endif /* PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY */
+#endif /* MBEDTLS_PK_PARSE_C || MBEDTLS_PK_WRITE_C */
+
+#if defined(MBEDTLS_PKCS5_C) && defined(MBEDTLS_ASN1_PARSE_C)
+/**
+ * \brief          Translate hmac algorithm OID into md_type
+ *
+ * \param oid      OID to use
+ * \param md_hmac  place to store message hmac algorithm
+ *
+ * \return         0 if successful, or MBEDTLS_ERR_OID_NOT_FOUND
+ */
+int mbedtls_oid_get_md_hmac(const mbedtls_asn1_buf *oid, mbedtls_md_type_t *md_hmac);
+
+#if defined(MBEDTLS_CIPHER_C)
+/**
+ * \brief          Translate encryption algorithm OID into cipher_type
+ *
+ * \param oid           OID to use
+ * \param cipher_alg    place to store cipher algorithm
+ *
+ * \return         0 if successful, or MBEDTLS_ERR_OID_NOT_FOUND
+ */
+int mbedtls_oid_get_cipher_alg(const mbedtls_asn1_buf *oid, mbedtls_cipher_type_t *cipher_alg);
+#endif /* MBEDTLS_CIPHER_C */
+#endif /* MBEDTLS_PKCS5_C && MBEDTLS_ASN1_PARSE_C */
+
+#if defined(MBEDTLS_RSA_C) && defined(MBEDTLS_PKCS1_V15)
+/**
+ * \brief          Translate md_type into hash algorithm OID
+ *
+ * \param md_alg   message digest algorithm
+ * \param oid      place to store ASN.1 OID string pointer
+ * \param olen     length of the OID
+ *
+ * \return         0 if successful, or MBEDTLS_ERR_OID_NOT_FOUND
+ */
+int mbedtls_oid_get_oid_by_md(mbedtls_md_type_t md_alg, const char **oid, size_t *olen);
+#endif /* MBEDTLS_RSA_C && MBEDTLS_PKCS1_V15 */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* crypto_oid.h */
diff --git a/deps/LIEF/third-party/mbedtls/library/ctr.h b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/ctr.h
similarity index 96%
rename from deps/LIEF/third-party/mbedtls/library/ctr.h
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/ctr.h
index aa48fb9e707..1f466cc17e3 100644
--- a/deps/LIEF/third-party/mbedtls/library/ctr.h
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/ctr.h
@@ -10,7 +10,7 @@
 #ifndef MBEDTLS_CTR_H
 #define MBEDTLS_CTR_H

-#include "common.h"
+#include "tf_psa_crypto_common.h"

 /**
  * \brief               Increment a big-endian 16-byte value.
diff --git a/deps/LIEF/third-party/mbedtls/library/ctr_drbg.c b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/ctr_drbg.c
similarity index 99%
rename from deps/LIEF/third-party/mbedtls/library/ctr_drbg.c
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/ctr_drbg.c
index b82044eb7d2..a1922b12fad 100644
--- a/deps/LIEF/third-party/mbedtls/library/ctr_drbg.c
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/ctr_drbg.c
@@ -10,15 +10,16 @@
  *  https://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-90r.pdf
  */

-#include "common.h"
+#include "tf_psa_crypto_common.h"

 #if defined(MBEDTLS_CTR_DRBG_C)

 #include "ctr.h"
-#include "mbedtls/ctr_drbg.h"
+#include "mbedtls/private/ctr_drbg.h"
 #include "mbedtls/platform_util.h"
-#include "mbedtls/error.h"
+#include "mbedtls/private/error_common.h"

+#include <limits.h>
 #include <string.h>

 #if defined(MBEDTLS_FS_IO)
@@ -83,7 +84,7 @@ void mbedtls_ctr_drbg_init(mbedtls_ctr_drbg_context *ctx)
      * See mbedtls_ctr_drbg_set_nonce_len(). */
     ctx->reseed_counter = -1;

-    ctx->reseed_interval = MBEDTLS_CTR_DRBG_RESEED_INTERVAL;
+    ctx->reseed_interval = MBEDTLS_PSA_RNG_RESEED_INTERVAL;
 }

 /*
@@ -108,7 +109,7 @@ void mbedtls_ctr_drbg_free(mbedtls_ctr_drbg_context *ctx)
     mbedtls_aes_free(&ctx->aes_ctx);
 #endif
     mbedtls_platform_zeroize(ctx, sizeof(mbedtls_ctr_drbg_context));
-    ctx->reseed_interval = MBEDTLS_CTR_DRBG_RESEED_INTERVAL;
+    ctx->reseed_interval = MBEDTLS_PSA_RNG_RESEED_INTERVAL;
     ctx->reseed_counter = -1;
 }

diff --git a/deps/LIEF/third-party/mbedtls/library/ecdh.c b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/ecdh.c
similarity index 98%
rename from deps/LIEF/third-party/mbedtls/library/ecdh.c
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/ecdh.c
index b276c6adadf..3cc6511f3db 100644
--- a/deps/LIEF/third-party/mbedtls/library/ecdh.c
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/ecdh.c
@@ -12,13 +12,13 @@
  * RFC 4492
  */

-#include "common.h"
+#include "tf_psa_crypto_common.h"

 #if defined(MBEDTLS_ECDH_C)

-#include "mbedtls/ecdh.h"
+#include "mbedtls/private/ecdh.h"
 #include "mbedtls/platform_util.h"
-#include "mbedtls/error.h"
+#include "mbedtls/private/error_common.h"

 #include <string.h>

@@ -43,7 +43,6 @@ int mbedtls_ecdh_can_do(mbedtls_ecp_group_id gid)
     return 1;
 }

-#if !defined(MBEDTLS_ECDH_GEN_PUBLIC_ALT)
 /*
  * Generate public key (restartable version)
  *
@@ -84,9 +83,7 @@ int mbedtls_ecdh_gen_public(mbedtls_ecp_group *grp, mbedtls_mpi *d, mbedtls_ecp_
 {
     return ecdh_gen_public_restartable(grp, d, Q, f_rng, p_rng, NULL);
 }
-#endif /* !MBEDTLS_ECDH_GEN_PUBLIC_ALT */

-#if !defined(MBEDTLS_ECDH_COMPUTE_SHARED_ALT)
 /*
  * Compute shared secret (SEC1 3.3.1)
  */
@@ -129,7 +126,6 @@ int mbedtls_ecdh_compute_shared(mbedtls_ecp_group *grp, mbedtls_mpi *z,
     return ecdh_compute_shared_restartable(grp, z, Q, d,
                                            f_rng, p_rng, NULL);
 }
-#endif /* !MBEDTLS_ECDH_COMPUTE_SHARED_ALT */

 static void ecdh_init_internal(mbedtls_ecdh_context_mbed *ctx)
 {
diff --git a/deps/LIEF/third-party/mbedtls/library/ecdsa.c b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/ecdsa.c
similarity index 92%
rename from deps/LIEF/third-party/mbedtls/library/ecdsa.c
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/ecdsa.c
index 2f7a996a7e7..90a5fe17cf9 100644
--- a/deps/LIEF/third-party/mbedtls/library/ecdsa.c
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/ecdsa.c
@@ -11,23 +11,24 @@
  * SEC1 https://www.secg.org/sec1-v2.pdf
  */

-#include "common.h"
+#include "tf_psa_crypto_common.h"

 #if defined(MBEDTLS_ECDSA_C)

-#include "mbedtls/ecdsa.h"
+#include "mbedtls/private/ecdsa.h"
 #include "mbedtls/asn1write.h"
+#include "bignum_internal.h"

 #include <string.h>

 #if defined(MBEDTLS_ECDSA_DETERMINISTIC)
-#include "mbedtls/hmac_drbg.h"
+#include "mbedtls/private/hmac_drbg.h"
 #endif

 #include "mbedtls/platform.h"

 #include "mbedtls/platform_util.h"
-#include "mbedtls/error.h"
+#include "mbedtls/private/error_common.h"

 #if defined(MBEDTLS_ECP_RESTARTABLE)

@@ -193,9 +194,6 @@ static void ecdsa_restart_det_free(mbedtls_ecdsa_restart_det_ctx *ctx)

 #endif /* MBEDTLS_ECP_RESTARTABLE */

-#if defined(MBEDTLS_ECDSA_DETERMINISTIC) || \
-    !defined(MBEDTLS_ECDSA_SIGN_ALT)     || \
-    !defined(MBEDTLS_ECDSA_VERIFY_ALT)
 /*
  * Derive a suitable integer for group grp from a buffer of length len
  * SEC1 4.1.3 step 5 aka SEC1 4.1.4 step 3
@@ -220,7 +218,6 @@ static int derive_mpi(const mbedtls_ecp_group *grp, mbedtls_mpi *x,
 cleanup:
     return ret;
 }
-#endif /* ECDSA_DETERMINISTIC || !ECDSA_SIGN_ALT || !ECDSA_VERIFY_ALT */

 int mbedtls_ecdsa_can_do(mbedtls_ecp_group_id gid)
 {
@@ -235,7 +232,6 @@ int mbedtls_ecdsa_can_do(mbedtls_ecp_group_id gid)
     }
 }

-#if !defined(MBEDTLS_ECDSA_SIGN_ALT)
 /*
  * Compute ECDSA signature of a hashed message (SEC1 4.1.3)
  * Obviously, compared to SEC1 4.1.3, we skip step 4 (hash message)
@@ -251,7 +247,7 @@ int mbedtls_ecdsa_sign_restartable(mbedtls_ecp_group *grp,
     int ret, key_tries, sign_tries;
     int *p_sign_tries = &sign_tries, *p_key_tries = &key_tries;
     mbedtls_ecp_point R;
-    mbedtls_mpi k, e, t;
+    mbedtls_mpi k, e;
     mbedtls_mpi *pk = &k, *pr = r;

     /* Fail cleanly on curves such as Curve25519 that can't be used for ECDSA */
@@ -265,7 +261,7 @@ int mbedtls_ecdsa_sign_restartable(mbedtls_ecp_group *grp,
     }

     mbedtls_ecp_point_init(&R);
-    mbedtls_mpi_init(&k); mbedtls_mpi_init(&e); mbedtls_mpi_init(&t);
+    mbedtls_mpi_init(&k); mbedtls_mpi_init(&e);

     ECDSA_RS_ENTER(sig);

@@ -340,21 +336,11 @@ modn:
         MBEDTLS_MPI_CHK(derive_mpi(grp, &e, buf, blen));

         /*
-         * Generate a random value to blind inv_mod in next step,
-         * avoiding a potential timing leak.
-         */
-        MBEDTLS_MPI_CHK(mbedtls_ecp_gen_privkey(grp, &t, f_rng_blind,
-                                                p_rng_blind));
-
-        /*
-         * Step 6: compute s = (e + r * d) / k = t (e + rd) / (kt) mod n
+         * Step 6: compute s = (e + r * d) / k
          */
         MBEDTLS_MPI_CHK(mbedtls_mpi_mul_mpi(s, pr, d));
         MBEDTLS_MPI_CHK(mbedtls_mpi_add_mpi(&e, &e, s));
-        MBEDTLS_MPI_CHK(mbedtls_mpi_mul_mpi(&e, &e, &t));
-        MBEDTLS_MPI_CHK(mbedtls_mpi_mul_mpi(pk, pk, &t));
-        MBEDTLS_MPI_CHK(mbedtls_mpi_mod_mpi(pk, pk, &grp->N));
-        MBEDTLS_MPI_CHK(mbedtls_mpi_inv_mod(s, pk, &grp->N));
+        MBEDTLS_MPI_CHK(mbedtls_mpi_gcd_modinv_odd(NULL, s, pk, &grp->N));
         MBEDTLS_MPI_CHK(mbedtls_mpi_mul_mpi(s, s, &e));
         MBEDTLS_MPI_CHK(mbedtls_mpi_mod_mpi(s, s, &grp->N));
     } while (mbedtls_mpi_cmp_int(s, 0) == 0);
@@ -367,7 +353,7 @@ modn:

 cleanup:
     mbedtls_ecp_point_free(&R);
-    mbedtls_mpi_free(&k); mbedtls_mpi_free(&e); mbedtls_mpi_free(&t);
+    mbedtls_mpi_free(&k); mbedtls_mpi_free(&e);

     ECDSA_RS_LEAVE(sig);

@@ -385,7 +371,6 @@ int mbedtls_ecdsa_sign(mbedtls_ecp_group *grp, mbedtls_mpi *r, mbedtls_mpi *s,
     return mbedtls_ecdsa_sign_restartable(grp, r, s, d, buf, blen,
                                           f_rng, p_rng, f_rng, p_rng, NULL);
 }
-#endif /* !MBEDTLS_ECDSA_SIGN_ALT */

 #if defined(MBEDTLS_ECDSA_DETERMINISTIC)
 /*
@@ -444,16 +429,9 @@ int mbedtls_ecdsa_sign_det_restartable(mbedtls_ecp_group *grp,

 sign:
 #endif
-#if defined(MBEDTLS_ECDSA_SIGN_ALT)
-    (void) f_rng_blind;
-    (void) p_rng_blind;
-    ret = mbedtls_ecdsa_sign(grp, r, s, d, buf, blen,
-                             mbedtls_hmac_drbg_random, p_rng);
-#else
     ret = mbedtls_ecdsa_sign_restartable(grp, r, s, d, buf, blen,
                                          mbedtls_hmac_drbg_random, p_rng,
                                          f_rng_blind, p_rng_blind, rs_ctx);
-#endif /* MBEDTLS_ECDSA_SIGN_ALT */

 cleanup:
     mbedtls_hmac_drbg_free(&rng_ctx);
@@ -480,7 +458,6 @@ int mbedtls_ecdsa_sign_det_ext(mbedtls_ecp_group *grp, mbedtls_mpi *r,
 }
 #endif /* MBEDTLS_ECDSA_DETERMINISTIC */

-#if !defined(MBEDTLS_ECDSA_VERIFY_ALT)
 /*
  * Verify ECDSA signature of hashed message (SEC1 4.1.4)
  * Obviously, compared to SEC1 4.1.3, we skip step 2 (hash message)
@@ -540,7 +517,7 @@ int mbedtls_ecdsa_verify_restartable(mbedtls_ecp_group *grp,
      */
     ECDSA_BUDGET(MBEDTLS_ECP_OPS_CHK + MBEDTLS_ECP_OPS_INV + 2);

-    MBEDTLS_MPI_CHK(mbedtls_mpi_inv_mod(&s_inv, s, &grp->N));
+    MBEDTLS_MPI_CHK(mbedtls_mpi_gcd_modinv_odd(NULL, &s_inv, s, &grp->N));

     MBEDTLS_MPI_CHK(mbedtls_mpi_mul_mpi(pu1, &e, &s_inv));
     MBEDTLS_MPI_CHK(mbedtls_mpi_mod_mpi(pu1, pu1, &grp->N));
@@ -601,7 +578,6 @@ int mbedtls_ecdsa_verify(mbedtls_ecp_group *grp,
 {
     return mbedtls_ecdsa_verify_restartable(grp, buf, blen, Q, r, s, NULL);
 }
-#endif /* !MBEDTLS_ECDSA_VERIFY_ALT */

 /*
  * Convert a signature (given by context) to ASN.1
@@ -660,17 +636,10 @@ int mbedtls_ecdsa_write_signature_restartable(mbedtls_ecdsa_context *ctx,
 #else
     (void) md_alg;

-#if defined(MBEDTLS_ECDSA_SIGN_ALT)
-    (void) rs_ctx;
-
-    MBEDTLS_MPI_CHK(mbedtls_ecdsa_sign(&ctx->grp, &r, &s, &ctx->d,
-                                       hash, hlen, f_rng, p_rng));
-#else
     /* Use the same RNG for both blinding and ephemeral key generation */
     MBEDTLS_MPI_CHK(mbedtls_ecdsa_sign_restartable(&ctx->grp, &r, &s, &ctx->d,
                                                    hash, hlen, f_rng, p_rng, f_rng,
                                                    p_rng, rs_ctx));
-#endif /* MBEDTLS_ECDSA_SIGN_ALT */
 #endif /* MBEDTLS_ECDSA_DETERMINISTIC */

     MBEDTLS_MPI_CHK(ecdsa_signature_to_asn1(&r, &s, sig, sig_size, slen));
@@ -741,25 +710,17 @@ int mbedtls_ecdsa_read_signature_restartable(mbedtls_ecdsa_context *ctx,
         ret += MBEDTLS_ERR_ECP_BAD_INPUT_DATA;
         goto cleanup;
     }
-#if defined(MBEDTLS_ECDSA_VERIFY_ALT)
-    (void) rs_ctx;

-    if ((ret = mbedtls_ecdsa_verify(&ctx->grp, hash, hlen,
-                                    &ctx->Q, &r, &s)) != 0) {
-        goto cleanup;
-    }
-#else
     if ((ret = mbedtls_ecdsa_verify_restartable(&ctx->grp, hash, hlen,
                                                 &ctx->Q, &r, &s, rs_ctx)) != 0) {
         goto cleanup;
     }
-#endif /* MBEDTLS_ECDSA_VERIFY_ALT */

     /* At this point we know that the buffer starts with a valid signature.
      * Return 0 if the buffer just contains the signature, and a specific
      * error code if the valid signature is followed by more data. */
     if (p != end) {
-        ret = MBEDTLS_ERR_ECP_SIG_LEN_MISMATCH;
+        ret = MBEDTLS_ERR_ECP_VERIFY_FAILED;
     }

 cleanup:
@@ -769,7 +730,6 @@ cleanup:
     return ret;
 }

-#if !defined(MBEDTLS_ECDSA_GENKEY_ALT)
 /*
  * Generate key pair
  */
@@ -785,7 +745,6 @@ int mbedtls_ecdsa_genkey(mbedtls_ecdsa_context *ctx, mbedtls_ecp_group_id gid,
     return mbedtls_ecp_gen_keypair(&ctx->grp, &ctx->d,
                                    &ctx->Q, f_rng, p_rng);
 }
-#endif /* !MBEDTLS_ECDSA_GENKEY_ALT */

 /*
  * Set context from an mbedtls_ecp_keypair
diff --git a/deps/LIEF/third-party/mbedtls/library/ecjpake.c b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/ecjpake.c
similarity index 99%
rename from deps/LIEF/third-party/mbedtls/library/ecjpake.c
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/ecjpake.c
index cdf5d7ea46e..ad1baefd5c6 100644
--- a/deps/LIEF/third-party/mbedtls/library/ecjpake.c
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/ecjpake.c
@@ -10,18 +10,16 @@
  * available to members of the Thread Group http://threadgroup.org/
  */

-#include "common.h"
+#include "tf_psa_crypto_common.h"

 #if defined(MBEDTLS_ECJPAKE_C)

-#include "mbedtls/ecjpake.h"
+#include "mbedtls/private/ecjpake.h"
 #include "mbedtls/platform_util.h"
-#include "mbedtls/error.h"
+#include "mbedtls/private/error_common.h"

 #include <string.h>

-#if !defined(MBEDTLS_ECJPAKE_ALT)
-
 /*
  * Convert a mbedtls_ecjpake_role to identifier string
  */
@@ -820,14 +818,12 @@ cleanup:
 #undef ID_MINE
 #undef ID_PEER

-#endif /* ! MBEDTLS_ECJPAKE_ALT */
-
 #if defined(MBEDTLS_SELF_TEST)

 #include "mbedtls/platform.h"

 #if !defined(MBEDTLS_ECP_DP_SECP256R1_ENABLED) || \
-    !defined(MBEDTLS_MD_CAN_SHA256)
+    !defined(PSA_WANT_ALG_SHA_256)
 int mbedtls_ecjpake_self_test(int verbose)
 {
     (void) verbose;
@@ -840,8 +836,6 @@ static const unsigned char ecjpake_test_password[] = {
     0x65, 0x73, 0x74
 };

-#if !defined(MBEDTLS_ECJPAKE_ALT)
-
 static const unsigned char ecjpake_test_x1[] = {
     0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c,
     0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18,
@@ -1016,8 +1010,6 @@ cleanup:
     return ret;
 }

-#endif /* ! MBEDTLS_ECJPAKE_ALT */
-
 /* For tests we don't need a secure RNG;
  * use the LGC from Numerical Recipes for simplicity */
 static int ecjpake_lgc(void *p, unsigned char *out, size_t len)
@@ -1116,7 +1108,6 @@ int mbedtls_ecjpake_self_test(int verbose)
         mbedtls_printf("passed\n");
     }

-#if !defined(MBEDTLS_ECJPAKE_ALT)
     /* 'reference handshake' tests can only be run against implementations
      * for which we have 100% control over how the random ephemeral keys
      * are generated. This is only the case for the internal Mbed TLS
@@ -1186,7 +1177,6 @@ int mbedtls_ecjpake_self_test(int verbose)
     if (verbose != 0) {
         mbedtls_printf("passed\n");
     }
-#endif /* ! MBEDTLS_ECJPAKE_ALT */

 cleanup:
     mbedtls_ecjpake_free(&cli);
@@ -1209,7 +1199,7 @@ cleanup:

 #undef TEST_ASSERT

-#endif /* MBEDTLS_ECP_DP_SECP256R1_ENABLED && MBEDTLS_MD_CAN_SHA256 */
+#endif /* MBEDTLS_ECP_DP_SECP256R1_ENABLED && PSA_WANT_ALG_SHA_256 */

 #endif /* MBEDTLS_SELF_TEST */

diff --git a/deps/LIEF/third-party/mbedtls/library/ecp.c b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/ecp.c
similarity index 93%
rename from deps/LIEF/third-party/mbedtls/library/ecp.c
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/ecp.c
index fdd00a59c59..1e494bb3a17 100644
--- a/deps/LIEF/third-party/mbedtls/library/ecp.c
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/ecp.c
@@ -29,55 +29,23 @@
  *     <http://eprint.iacr.org/2004/342.pdf>
  */

-#include "common.h"
-
-/**
- * \brief Function level alternative implementation.
- *
- * The MBEDTLS_ECP_INTERNAL_ALT macro enables alternative implementations to
- * replace certain functions in this module. The alternative implementations are
- * typically hardware accelerators and need to activate the hardware before the
- * computation starts and deactivate it after it finishes. The
- * mbedtls_internal_ecp_init() and mbedtls_internal_ecp_free() functions serve
- * this purpose.
- *
- * To preserve the correct functionality the following conditions must hold:
- *
- * - The alternative implementation must be activated by
- *   mbedtls_internal_ecp_init() before any of the replaceable functions is
- *   called.
- * - mbedtls_internal_ecp_free() must \b only be called when the alternative
- *   implementation is activated.
- * - mbedtls_internal_ecp_init() must \b not be called when the alternative
- *   implementation is activated.
- * - Public functions must not return while the alternative implementation is
- *   activated.
- * - Replaceable functions are guarded by \c MBEDTLS_ECP_XXX_ALT macros and
- *   before calling them an \code if( mbedtls_internal_ecp_grp_capable( grp ) )
- *   \endcode ensures that the alternative implementation supports the current
- *   group.
- */
-#if defined(MBEDTLS_ECP_INTERNAL_ALT)
-#endif
+#include "tf_psa_crypto_common.h"

 #if defined(MBEDTLS_ECP_LIGHT)

-#include "mbedtls/ecp.h"
+#include "mbedtls/private/ecp.h"
 #include "mbedtls/threading.h"
 #include "mbedtls/platform_util.h"
-#include "mbedtls/error.h"
+#include "mbedtls/private/error_common.h"

 #include "bn_mul.h"
+#include "bignum_internal.h"
 #include "ecp_invasive.h"

 #include <string.h>

-#if !defined(MBEDTLS_ECP_ALT)
-
 #include "mbedtls/platform.h"

-#include "ecp_internal_alt.h"
-
 #if defined(MBEDTLS_SELF_TEST)
 /*
  * Counts of point addition and doubling, and field multiplications.
@@ -364,12 +332,6 @@ static const mbedtls_ecp_curve_info ecp_supported_curves[] =
 #if defined(MBEDTLS_ECP_DP_BP256R1_ENABLED)
     { MBEDTLS_ECP_DP_BP256R1,      26,     256,    "brainpoolP256r1"   },
 #endif
-#if defined(MBEDTLS_ECP_DP_SECP224R1_ENABLED)
-    { MBEDTLS_ECP_DP_SECP224R1,    21,     224,    "secp224r1"         },
-#endif
-#if defined(MBEDTLS_ECP_DP_SECP224K1_ENABLED)
-    { MBEDTLS_ECP_DP_SECP224K1,    20,     224,    "secp224k1"         },
-#endif
 #if defined(MBEDTLS_ECP_DP_SECP192R1_ENABLED)
     { MBEDTLS_ECP_DP_SECP192R1,    19,     192,    "secp192r1"         },
 #endif
@@ -1173,7 +1135,7 @@ cleanup:
     MBEDTLS_MPI_CHK(mbedtls_mpi_mul_int_mod(grp, X, A, c))

 #define MPI_ECP_INV(dst, src)                                                 \
-    MBEDTLS_MPI_CHK(mbedtls_mpi_inv_mod((dst), (src), &grp->P))
+    MBEDTLS_MPI_CHK(mbedtls_mpi_gcd_modinv_odd(NULL, (dst), (src), &grp->P))

 #define MPI_ECP_MOV(X, A)                                                     \
     MBEDTLS_MPI_CHK(mbedtls_mpi_copy(X, A))
@@ -1317,15 +1279,6 @@ static int ecp_normalize_jac(const mbedtls_ecp_group *grp, mbedtls_ecp_point *pt
         return 0;
     }

-#if defined(MBEDTLS_ECP_NORMALIZE_JAC_ALT)
-    if (mbedtls_internal_ecp_grp_capable(grp)) {
-        return mbedtls_internal_ecp_normalize_jac(grp, pt);
-    }
-#endif /* MBEDTLS_ECP_NORMALIZE_JAC_ALT */
-
-#if defined(MBEDTLS_ECP_NO_FALLBACK) && defined(MBEDTLS_ECP_NORMALIZE_JAC_ALT)
-    return MBEDTLS_ERR_ECP_FEATURE_UNAVAILABLE;
-#else
     int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
     mbedtls_mpi T;
     mbedtls_mpi_init(&T);
@@ -1343,7 +1296,6 @@ cleanup:
     mbedtls_mpi_free(&T);

     return ret;
-#endif /* !defined(MBEDTLS_ECP_NO_FALLBACK) || !defined(MBEDTLS_ECP_NORMALIZE_JAC_ALT) */
 }

 /*
@@ -1364,15 +1316,6 @@ static int ecp_normalize_jac_many(const mbedtls_ecp_group *grp,
         return ecp_normalize_jac(grp, *T);
     }

-#if defined(MBEDTLS_ECP_NORMALIZE_JAC_MANY_ALT)
-    if (mbedtls_internal_ecp_grp_capable(grp)) {
-        return mbedtls_internal_ecp_normalize_jac_many(grp, T, T_size);
-    }
-#endif
-
-#if defined(MBEDTLS_ECP_NO_FALLBACK) && defined(MBEDTLS_ECP_NORMALIZE_JAC_MANY_ALT)
-    return MBEDTLS_ERR_ECP_FEATURE_UNAVAILABLE;
-#else
     int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
     size_t i;
     mbedtls_mpi *c, t;
@@ -1447,7 +1390,6 @@ cleanup:
     mbedtls_free(c);

     return ret;
-#endif /* !defined(MBEDTLS_ECP_NO_FALLBACK) || !defined(MBEDTLS_ECP_NORMALIZE_JAC_MANY_ALT) */
 }

 /*
@@ -1491,15 +1433,6 @@ static int ecp_double_jac(const mbedtls_ecp_group *grp, mbedtls_ecp_point *R,
     dbl_count++;
 #endif

-#if defined(MBEDTLS_ECP_DOUBLE_JAC_ALT)
-    if (mbedtls_internal_ecp_grp_capable(grp)) {
-        return mbedtls_internal_ecp_double_jac(grp, R, P);
-    }
-#endif /* MBEDTLS_ECP_DOUBLE_JAC_ALT */
-
-#if defined(MBEDTLS_ECP_NO_FALLBACK) && defined(MBEDTLS_ECP_DOUBLE_JAC_ALT)
-    return MBEDTLS_ERR_ECP_FEATURE_UNAVAILABLE;
-#else
     int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;

     /* Special case for A = -3 */
@@ -1557,7 +1490,6 @@ static int ecp_double_jac(const mbedtls_ecp_group *grp, mbedtls_ecp_point *R,
 cleanup:

     return ret;
-#endif /* !defined(MBEDTLS_ECP_NO_FALLBACK) || !defined(MBEDTLS_ECP_DOUBLE_JAC_ALT) */
 }

 /*
@@ -1588,15 +1520,6 @@ static int ecp_add_mixed(const mbedtls_ecp_group *grp, mbedtls_ecp_point *R,
     add_count++;
 #endif

-#if defined(MBEDTLS_ECP_ADD_MIXED_ALT)
-    if (mbedtls_internal_ecp_grp_capable(grp)) {
-        return mbedtls_internal_ecp_add_mixed(grp, R, P, Q);
-    }
-#endif /* MBEDTLS_ECP_ADD_MIXED_ALT */
-
-#if defined(MBEDTLS_ECP_NO_FALLBACK) && defined(MBEDTLS_ECP_ADD_MIXED_ALT)
-    return MBEDTLS_ERR_ECP_FEATURE_UNAVAILABLE;
-#else
     int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;

     /* NOTE: Aliasing between input and output is allowed, so one has to make
@@ -1668,7 +1591,6 @@ static int ecp_add_mixed(const mbedtls_ecp_group *grp, mbedtls_ecp_point *R,
 cleanup:

     return ret;
-#endif /* !defined(MBEDTLS_ECP_NO_FALLBACK) || !defined(MBEDTLS_ECP_ADD_MIXED_ALT) */
 }

 /*
@@ -1681,15 +1603,6 @@ cleanup:
 static int ecp_randomize_jac(const mbedtls_ecp_group *grp, mbedtls_ecp_point *pt,
                              int (*f_rng)(void *, unsigned char *, size_t), void *p_rng)
 {
-#if defined(MBEDTLS_ECP_RANDOMIZE_JAC_ALT)
-    if (mbedtls_internal_ecp_grp_capable(grp)) {
-        return mbedtls_internal_ecp_randomize_jac(grp, pt, f_rng, p_rng);
-    }
-#endif /* MBEDTLS_ECP_RANDOMIZE_JAC_ALT */
-
-#if defined(MBEDTLS_ECP_NO_FALLBACK) && defined(MBEDTLS_ECP_RANDOMIZE_JAC_ALT)
-    return MBEDTLS_ERR_ECP_FEATURE_UNAVAILABLE;
-#else
     int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
     mbedtls_mpi l;

@@ -1718,7 +1631,6 @@ cleanup:
         ret = MBEDTLS_ERR_ECP_RANDOM_FAILED;
     }
     return ret;
-#endif /* !defined(MBEDTLS_ECP_NO_FALLBACK) || !defined(MBEDTLS_ECP_RANDOMIZE_JAC_ALT) */
 }

 /*
@@ -2201,21 +2113,6 @@ static int ecp_mul_comb_after_precomp(const mbedtls_ecp_group *grp,
 final_norm:
     MBEDTLS_ECP_BUDGET(MBEDTLS_ECP_OPS_INV);
 #endif
-    /*
-     * Knowledge of the jacobian coordinates may leak the last few bits of the
-     * scalar [1], and since our MPI implementation isn't constant-flow,
-     * inversion (used for coordinate normalization) may leak the full value
-     * of its input via side-channels [2].
-     *
-     * [1] https://eprint.iacr.org/2003/191
-     * [2] https://eprint.iacr.org/2020/055
-     *
-     * Avoid the leak by randomizing coordinates before we normalize them.
-     */
-    if (f_rng != 0) {
-        MBEDTLS_MPI_CHK(ecp_randomize_jac(grp, RR, f_rng, p_rng));
-    }
-
     MBEDTLS_MPI_CHK(ecp_normalize_jac(grp, RR));

 #if defined(MBEDTLS_ECP_RESTARTABLE)
@@ -2422,15 +2319,6 @@ cleanup:
  */
 static int ecp_normalize_mxz(const mbedtls_ecp_group *grp, mbedtls_ecp_point *P)
 {
-#if defined(MBEDTLS_ECP_NORMALIZE_MXZ_ALT)
-    if (mbedtls_internal_ecp_grp_capable(grp)) {
-        return mbedtls_internal_ecp_normalize_mxz(grp, P);
-    }
-#endif /* MBEDTLS_ECP_NORMALIZE_MXZ_ALT */
-
-#if defined(MBEDTLS_ECP_NO_FALLBACK) && defined(MBEDTLS_ECP_NORMALIZE_MXZ_ALT)
-    return MBEDTLS_ERR_ECP_FEATURE_UNAVAILABLE;
-#else
     int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
     MPI_ECP_INV(&P->Z, &P->Z);
     MPI_ECP_MUL(&P->X, &P->X, &P->Z);
@@ -2438,7 +2326,6 @@ static int ecp_normalize_mxz(const mbedtls_ecp_group *grp, mbedtls_ecp_point *P)

 cleanup:
     return ret;
-#endif /* !defined(MBEDTLS_ECP_NO_FALLBACK) || !defined(MBEDTLS_ECP_NORMALIZE_MXZ_ALT) */
 }

 /*
@@ -2452,15 +2339,6 @@ cleanup:
 static int ecp_randomize_mxz(const mbedtls_ecp_group *grp, mbedtls_ecp_point *P,
                              int (*f_rng)(void *, unsigned char *, size_t), void *p_rng)
 {
-#if defined(MBEDTLS_ECP_RANDOMIZE_MXZ_ALT)
-    if (mbedtls_internal_ecp_grp_capable(grp)) {
-        return mbedtls_internal_ecp_randomize_mxz(grp, P, f_rng, p_rng);
-    }
-#endif /* MBEDTLS_ECP_RANDOMIZE_MXZ_ALT */
-
-#if defined(MBEDTLS_ECP_NO_FALLBACK) && defined(MBEDTLS_ECP_RANDOMIZE_MXZ_ALT)
-    return MBEDTLS_ERR_ECP_FEATURE_UNAVAILABLE;
-#else
     int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
     mbedtls_mpi l;
     mbedtls_mpi_init(&l);
@@ -2478,7 +2356,6 @@ cleanup:
         ret = MBEDTLS_ERR_ECP_RANDOM_FAILED;
     }
     return ret;
-#endif /* !defined(MBEDTLS_ECP_NO_FALLBACK) || !defined(MBEDTLS_ECP_RANDOMIZE_MXZ_ALT) */
 }

 /*
@@ -2502,15 +2379,6 @@ static int ecp_double_add_mxz(const mbedtls_ecp_group *grp,
                               const mbedtls_mpi *d,
                               mbedtls_mpi T[4])
 {
-#if defined(MBEDTLS_ECP_DOUBLE_ADD_MXZ_ALT)
-    if (mbedtls_internal_ecp_grp_capable(grp)) {
-        return mbedtls_internal_ecp_double_add_mxz(grp, R, S, P, Q, d);
-    }
-#endif /* MBEDTLS_ECP_DOUBLE_ADD_MXZ_ALT */
-
-#if defined(MBEDTLS_ECP_NO_FALLBACK) && defined(MBEDTLS_ECP_DOUBLE_ADD_MXZ_ALT)
-    return MBEDTLS_ERR_ECP_FEATURE_UNAVAILABLE;
-#else
     int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;

     MPI_ECP_ADD(&T[0], &P->X,   &P->Z);   /* Pp := PX + PZ                    */
@@ -2535,7 +2403,6 @@ static int ecp_double_add_mxz(const mbedtls_ecp_group *grp,
 cleanup:

     return ret;
-#endif /* !defined(MBEDTLS_ECP_NO_FALLBACK) || !defined(MBEDTLS_ECP_DOUBLE_ADD_MXZ_ALT) */
 }

 /*
@@ -2594,18 +2461,6 @@ static int ecp_mul_mxz(mbedtls_ecp_group *grp, mbedtls_ecp_point *R,
         MPI_ECP_COND_SWAP(&R->Z, &RP.Z, b);
     }

-    /*
-     * Knowledge of the projective coordinates may leak the last few bits of the
-     * scalar [1], and since our MPI implementation isn't constant-flow,
-     * inversion (used for coordinate normalization) may leak the full value
-     * of its input via side-channels [2].
-     *
-     * [1] https://eprint.iacr.org/2003/191
-     * [2] https://eprint.iacr.org/2020/055
-     *
-     * Avoid the leak by randomizing coordinates before we normalize them.
-     */
-    MBEDTLS_MPI_CHK(ecp_randomize_mxz(grp, R, f_rng, p_rng));
     MBEDTLS_MPI_CHK(ecp_normalize_mxz(grp, R));

 cleanup:
@@ -2629,9 +2484,6 @@ static int ecp_mul_restartable_internal(mbedtls_ecp_group *grp, mbedtls_ecp_poin
                                         mbedtls_ecp_restart_ctx *rs_ctx)
 {
     int ret = MBEDTLS_ERR_ECP_BAD_INPUT_DATA;
-#if defined(MBEDTLS_ECP_INTERNAL_ALT)
-    char is_grp_capable = 0;
-#endif

 #if defined(MBEDTLS_ECP_RESTARTABLE)
     /* reset ops count for this call if top-level */
@@ -2642,12 +2494,6 @@ static int ecp_mul_restartable_internal(mbedtls_ecp_group *grp, mbedtls_ecp_poin
     (void) rs_ctx;
 #endif

-#if defined(MBEDTLS_ECP_INTERNAL_ALT)
-    if ((is_grp_capable = mbedtls_internal_ecp_grp_capable(grp))) {
-        MBEDTLS_MPI_CHK(mbedtls_internal_ecp_init(grp));
-    }
-#endif /* MBEDTLS_ECP_INTERNAL_ALT */
-
     int restarting = 0;
 #if defined(MBEDTLS_ECP_RESTARTABLE)
     restarting = (rs_ctx != NULL && rs_ctx->rsm != NULL);
@@ -2676,12 +2522,6 @@ static int ecp_mul_restartable_internal(mbedtls_ecp_group *grp, mbedtls_ecp_poin

 cleanup:

-#if defined(MBEDTLS_ECP_INTERNAL_ALT)
-    if (is_grp_capable) {
-        mbedtls_internal_ecp_free(grp);
-    }
-#endif /* MBEDTLS_ECP_INTERNAL_ALT */
-
 #if defined(MBEDTLS_ECP_RESTARTABLE)
     if (rs_ctx != NULL) {
         rs_ctx->depth--;
@@ -2808,9 +2648,6 @@ int mbedtls_ecp_muladd_restartable(
     mbedtls_ecp_point *pmP = &mP;
     mbedtls_ecp_point *pR = R;
     mbedtls_mpi tmp[4];
-#if defined(MBEDTLS_ECP_INTERNAL_ALT)
-    char is_grp_capable = 0;
-#endif
     if (mbedtls_ecp_get_type(grp) != MBEDTLS_ECP_TYPE_SHORT_WEIERSTRASS) {
         return MBEDTLS_ERR_ECP_FEATURE_UNAVAILABLE;
     }
@@ -2849,12 +2686,6 @@ mul2:
 #endif
     MBEDTLS_MPI_CHK(mbedtls_ecp_mul_shortcuts(grp, pR,  n, Q, rs_ctx));

-#if defined(MBEDTLS_ECP_INTERNAL_ALT)
-    if ((is_grp_capable = mbedtls_internal_ecp_grp_capable(grp))) {
-        MBEDTLS_MPI_CHK(mbedtls_internal_ecp_init(grp));
-    }
-#endif /* MBEDTLS_ECP_INTERNAL_ALT */
-
 #if defined(MBEDTLS_ECP_RESTARTABLE)
     if (rs_ctx != NULL && rs_ctx->ma != NULL) {
         rs_ctx->ma->state = ecp_rsma_add;
@@ -2884,12 +2715,6 @@ cleanup:

     mpi_free_many(tmp, sizeof(tmp) / sizeof(mbedtls_mpi));

-#if defined(MBEDTLS_ECP_INTERNAL_ALT)
-    if (is_grp_capable) {
-        mbedtls_internal_ecp_free(grp);
-    }
-#endif /* MBEDTLS_ECP_INTERNAL_ALT */
-
     mbedtls_ecp_point_free(&mP);

     ECP_RS_LEAVE(ma);
@@ -3698,6 +3523,4 @@ cleanup:

 #endif /* MBEDTLS_SELF_TEST */

-#endif /* !MBEDTLS_ECP_ALT */
-
 #endif /* MBEDTLS_ECP_LIGHT */
diff --git a/deps/LIEF/third-party/mbedtls/library/ecp_curves.c b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/ecp_curves.c
similarity index 89%
rename from deps/LIEF/third-party/mbedtls/library/ecp_curves.c
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/ecp_curves.c
index c3cd33f47a8..387871edf85 100644
--- a/deps/LIEF/third-party/mbedtls/library/ecp_curves.c
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/ecp_curves.c
@@ -5,15 +5,15 @@
  *  SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
  */

-#include "common.h"
+#include "tf_psa_crypto_common.h"

 #if !defined(MBEDTLS_ECP_WITH_MPI_UINT)

 #if defined(MBEDTLS_ECP_LIGHT)

-#include "mbedtls/ecp.h"
+#include "mbedtls/private/ecp.h"
 #include "mbedtls/platform_util.h"
-#include "mbedtls/error.h"
+#include "mbedtls/private/error_common.h"

 #include "bn_mul.h"
 #include "bignum_core.h"
@@ -21,8 +21,6 @@

 #include <string.h>

-#if !defined(MBEDTLS_ECP_ALT)
-
 #define ECP_MPI_INIT(_p, _n) { .p = (mbedtls_mpi_uint *) (_p), .s = 1, .n = (_n) }

 #define ECP_MPI_INIT_ARRAY(x)   \
@@ -34,7 +32,6 @@
         ECP_MPI_INIT_ARRAY(x), ECP_MPI_INIT_ARRAY(y), ECP_MPI_INIT(mpi_one, 1) }

 #if defined(MBEDTLS_ECP_DP_SECP192R1_ENABLED) ||   \
-    defined(MBEDTLS_ECP_DP_SECP224R1_ENABLED) ||   \
     defined(MBEDTLS_ECP_DP_SECP256R1_ENABLED) ||   \
     defined(MBEDTLS_ECP_DP_SECP384R1_ENABLED) ||   \
     defined(MBEDTLS_ECP_DP_SECP521R1_ENABLED) ||   \
@@ -42,7 +39,6 @@
     defined(MBEDTLS_ECP_DP_BP384R1_ENABLED)   ||   \
     defined(MBEDTLS_ECP_DP_BP512R1_ENABLED)   ||   \
     defined(MBEDTLS_ECP_DP_SECP192K1_ENABLED) ||   \
-    defined(MBEDTLS_ECP_DP_SECP224K1_ENABLED) ||   \
     defined(MBEDTLS_ECP_DP_SECP256K1_ENABLED)
 /* For these curves, we build the group parameters dynamically. */
 #define ECP_LOAD_GROUP
@@ -267,256 +263,6 @@ static const mbedtls_ecp_point secp192r1_T[16] = {
 #endif
 #endif /* MBEDTLS_ECP_DP_SECP192R1_ENABLED */

-/*
- * Domain parameters for secp224r1
- */
-#if defined(MBEDTLS_ECP_DP_SECP224R1_ENABLED)
-static const mbedtls_mpi_uint secp224r1_p[] = {
-    MBEDTLS_BYTES_TO_T_UINT_8(0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00),
-};
-static const mbedtls_mpi_uint secp224r1_b[] = {
-    MBEDTLS_BYTES_TO_T_UINT_8(0xB4, 0xFF, 0x55, 0x23, 0x43, 0x39, 0x0B, 0x27),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xBA, 0xD8, 0xBF, 0xD7, 0xB7, 0xB0, 0x44, 0x50),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x56, 0x32, 0x41, 0xF5, 0xAB, 0xB3, 0x04, 0x0C),
-    MBEDTLS_BYTES_TO_T_UINT_4(0x85, 0x0A, 0x05, 0xB4),
-};
-static const mbedtls_mpi_uint secp224r1_gx[] = {
-    MBEDTLS_BYTES_TO_T_UINT_8(0x21, 0x1D, 0x5C, 0x11, 0xD6, 0x80, 0x32, 0x34),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x22, 0x11, 0xC2, 0x56, 0xD3, 0xC1, 0x03, 0x4A),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xB9, 0x90, 0x13, 0x32, 0x7F, 0xBF, 0xB4, 0x6B),
-    MBEDTLS_BYTES_TO_T_UINT_4(0xBD, 0x0C, 0x0E, 0xB7),
-};
-static const mbedtls_mpi_uint secp224r1_gy[] = {
-    MBEDTLS_BYTES_TO_T_UINT_8(0x34, 0x7E, 0x00, 0x85, 0x99, 0x81, 0xD5, 0x44),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x64, 0x47, 0x07, 0x5A, 0xA0, 0x75, 0x43, 0xCD),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xE6, 0xDF, 0x22, 0x4C, 0xFB, 0x23, 0xF7, 0xB5),
-    MBEDTLS_BYTES_TO_T_UINT_4(0x88, 0x63, 0x37, 0xBD),
-};
-static const mbedtls_mpi_uint secp224r1_n[] = {
-    MBEDTLS_BYTES_TO_T_UINT_8(0x3D, 0x2A, 0x5C, 0x5C, 0x45, 0x29, 0xDD, 0x13),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x3E, 0xF0, 0xB8, 0xE0, 0xA2, 0x16, 0xFF, 0xFF),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF),
-    MBEDTLS_BYTES_TO_T_UINT_4(0xFF, 0xFF, 0xFF, 0xFF),
-};
-#if MBEDTLS_ECP_FIXED_POINT_OPTIM == 1
-static const mbedtls_mpi_uint secp224r1_T_0_X[] = {
-    MBEDTLS_BYTES_TO_T_UINT_8(0x21, 0x1D, 0x5C, 0x11, 0xD6, 0x80, 0x32, 0x34),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x22, 0x11, 0xC2, 0x56, 0xD3, 0xC1, 0x03, 0x4A),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xB9, 0x90, 0x13, 0x32, 0x7F, 0xBF, 0xB4, 0x6B),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xBD, 0x0C, 0x0E, 0xB7, 0x00, 0x00, 0x00, 0x00),
-};
-static const mbedtls_mpi_uint secp224r1_T_0_Y[] = {
-    MBEDTLS_BYTES_TO_T_UINT_8(0x34, 0x7E, 0x00, 0x85, 0x99, 0x81, 0xD5, 0x44),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x64, 0x47, 0x07, 0x5A, 0xA0, 0x75, 0x43, 0xCD),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xE6, 0xDF, 0x22, 0x4C, 0xFB, 0x23, 0xF7, 0xB5),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x88, 0x63, 0x37, 0xBD, 0x00, 0x00, 0x00, 0x00),
-};
-static const mbedtls_mpi_uint secp224r1_T_1_X[] = {
-    MBEDTLS_BYTES_TO_T_UINT_8(0xE0, 0xF9, 0xB8, 0xD0, 0x3D, 0xD2, 0xD3, 0xFA),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x1E, 0xFD, 0x99, 0x26, 0x19, 0xFE, 0x13, 0x6E),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x1C, 0x0E, 0x4C, 0x48, 0x7C, 0xA2, 0x17, 0x01),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x3D, 0xA3, 0x13, 0x57, 0x00, 0x00, 0x00, 0x00),
-};
-static const mbedtls_mpi_uint secp224r1_T_1_Y[] = {
-    MBEDTLS_BYTES_TO_T_UINT_8(0x9F, 0x16, 0x5C, 0x8F, 0xAA, 0xED, 0x0F, 0x58),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xBF, 0xC5, 0x43, 0x34, 0x93, 0x05, 0x2A, 0x4C),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xE4, 0xE3, 0x6C, 0xCA, 0xC6, 0x14, 0xC2, 0x25),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xD3, 0x43, 0x6C, 0xD7, 0x00, 0x00, 0x00, 0x00),
-};
-static const mbedtls_mpi_uint secp224r1_T_2_X[] = {
-    MBEDTLS_BYTES_TO_T_UINT_8(0xC3, 0x5A, 0x98, 0x1E, 0xC8, 0xA5, 0x42, 0xA3),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x98, 0x49, 0x56, 0x78, 0xF8, 0xEF, 0xED, 0x65),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x1B, 0xBB, 0x64, 0xB6, 0x4C, 0x54, 0x5F, 0xD1),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x2F, 0x0C, 0x33, 0xCC, 0x00, 0x00, 0x00, 0x00),
-};
-static const mbedtls_mpi_uint secp224r1_T_2_Y[] = {
-    MBEDTLS_BYTES_TO_T_UINT_8(0xFA, 0x79, 0xCB, 0x2E, 0x08, 0xFF, 0xD8, 0xE6),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x2E, 0x1F, 0xD4, 0xD7, 0x57, 0xE9, 0x39, 0x45),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xD8, 0xD6, 0x3B, 0x0A, 0x1C, 0x87, 0xB7, 0x6A),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xEB, 0x30, 0xD8, 0x05, 0x00, 0x00, 0x00, 0x00),
-};
-static const mbedtls_mpi_uint secp224r1_T_3_X[] = {
-    MBEDTLS_BYTES_TO_T_UINT_8(0xAD, 0x79, 0x74, 0x9A, 0xE6, 0xBB, 0xC2, 0xC2),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xB4, 0x5B, 0xA6, 0x67, 0xC1, 0x91, 0xE7, 0x64),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xF0, 0xDF, 0x38, 0x82, 0x19, 0x2C, 0x4C, 0xCA),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xD1, 0x2E, 0x39, 0xC5, 0x00, 0x00, 0x00, 0x00),
-};
-static const mbedtls_mpi_uint secp224r1_T_3_Y[] = {
-    MBEDTLS_BYTES_TO_T_UINT_8(0x99, 0x36, 0x78, 0x4E, 0xAE, 0x5B, 0x02, 0x76),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x14, 0xF6, 0x8B, 0xF8, 0xF4, 0x92, 0x6B, 0x42),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xBA, 0x4D, 0x71, 0x35, 0xE7, 0x0C, 0x2C, 0x98),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x9B, 0xA5, 0x1F, 0xAE, 0x00, 0x00, 0x00, 0x00),
-};
-static const mbedtls_mpi_uint secp224r1_T_4_X[] = {
-    MBEDTLS_BYTES_TO_T_UINT_8(0xAF, 0x1C, 0x4B, 0xDF, 0x5B, 0xF2, 0x51, 0xB7),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x05, 0x74, 0xB1, 0x5A, 0xC6, 0x0F, 0x0E, 0x61),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xE8, 0x24, 0x09, 0x62, 0xAF, 0xFC, 0xDB, 0x45),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x43, 0xE1, 0x80, 0x55, 0x00, 0x00, 0x00, 0x00),
-};
-static const mbedtls_mpi_uint secp224r1_T_4_Y[] = {
-    MBEDTLS_BYTES_TO_T_UINT_8(0x3C, 0x82, 0xFE, 0xAD, 0xC3, 0xE5, 0xCF, 0xD8),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x24, 0xA2, 0x62, 0x17, 0x76, 0xF0, 0x5A, 0xFA),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x3E, 0xB8, 0xE5, 0xAC, 0xB7, 0x66, 0x38, 0xAA),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x97, 0xFD, 0x86, 0x05, 0x00, 0x00, 0x00, 0x00),
-};
-static const mbedtls_mpi_uint secp224r1_T_5_X[] = {
-    MBEDTLS_BYTES_TO_T_UINT_8(0x59, 0xD3, 0x0C, 0x3C, 0xD1, 0x66, 0xB0, 0xF1),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xBC, 0x59, 0xB4, 0x8D, 0x90, 0x10, 0xB7, 0xA2),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x96, 0x47, 0x9B, 0xE6, 0x55, 0x8A, 0xE4, 0xEE),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xB1, 0x49, 0xDB, 0x78, 0x00, 0x00, 0x00, 0x00),
-};
-static const mbedtls_mpi_uint secp224r1_T_5_Y[] = {
-    MBEDTLS_BYTES_TO_T_UINT_8(0x41, 0x97, 0xED, 0xDE, 0xFF, 0xB3, 0xDF, 0x48),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x10, 0xB9, 0x83, 0xB7, 0xEB, 0xBE, 0x40, 0x8D),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xAF, 0xD3, 0xD3, 0xCD, 0x0E, 0x82, 0x79, 0x3D),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x9B, 0x83, 0x1B, 0xF0, 0x00, 0x00, 0x00, 0x00),
-};
-static const mbedtls_mpi_uint secp224r1_T_6_X[] = {
-    MBEDTLS_BYTES_TO_T_UINT_8(0x3F, 0x22, 0xBB, 0x54, 0xD3, 0x31, 0x56, 0xFC),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x80, 0x36, 0xE5, 0xE0, 0x89, 0x96, 0x8E, 0x71),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xE1, 0xEF, 0x0A, 0xED, 0xD0, 0x11, 0x4A, 0xFF),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x15, 0x00, 0x57, 0x27, 0x00, 0x00, 0x00, 0x00),
-};
-static const mbedtls_mpi_uint secp224r1_T_6_Y[] = {
-    MBEDTLS_BYTES_TO_T_UINT_8(0x13, 0xCA, 0x3D, 0xF7, 0x64, 0x9B, 0x6E, 0x85),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x90, 0xE3, 0x70, 0x6B, 0x41, 0xD7, 0xED, 0x8F),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x02, 0x44, 0x44, 0x80, 0xCE, 0x13, 0x37, 0x92),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x94, 0x73, 0x80, 0x79, 0x00, 0x00, 0x00, 0x00),
-};
-static const mbedtls_mpi_uint secp224r1_T_7_X[] = {
-    MBEDTLS_BYTES_TO_T_UINT_8(0xB7, 0x4D, 0x70, 0x7D, 0x31, 0x0F, 0x1C, 0x58),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x6D, 0x35, 0x88, 0x47, 0xC4, 0x24, 0x78, 0x3F),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xBA, 0xF0, 0xCD, 0x91, 0x81, 0xB3, 0xDE, 0xB6),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x04, 0xCE, 0xC6, 0xF7, 0x00, 0x00, 0x00, 0x00),
-};
-static const mbedtls_mpi_uint secp224r1_T_7_Y[] = {
-    MBEDTLS_BYTES_TO_T_UINT_8(0xE9, 0x9C, 0x2D, 0xE8, 0xD2, 0x00, 0x8F, 0x10),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xD5, 0x5E, 0x7C, 0x0E, 0x0C, 0x6E, 0x58, 0x02),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xAE, 0x81, 0x21, 0xCE, 0x43, 0xF4, 0x24, 0x3D),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x9E, 0xBC, 0xF0, 0xF4, 0x00, 0x00, 0x00, 0x00),
-};
-static const mbedtls_mpi_uint secp224r1_T_8_X[] = {
-    MBEDTLS_BYTES_TO_T_UINT_8(0xD6, 0x10, 0xC2, 0x74, 0x4A, 0x8F, 0x8A, 0xCF),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x89, 0x67, 0xF4, 0x2B, 0x38, 0x2B, 0x35, 0x17),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xF5, 0xE7, 0x0C, 0xA9, 0xFA, 0x77, 0x5C, 0xBD),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xE0, 0x33, 0x19, 0x2B, 0x00, 0x00, 0x00, 0x00),
-};
-static const mbedtls_mpi_uint secp224r1_T_8_Y[] = {
-    MBEDTLS_BYTES_TO_T_UINT_8(0xE7, 0x3E, 0x96, 0x22, 0x53, 0xE1, 0xE9, 0xBE),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xE0, 0x13, 0xBC, 0xA1, 0x16, 0xEC, 0x01, 0x1A),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x9A, 0x00, 0xC9, 0x7A, 0xC3, 0x73, 0xA5, 0x45),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xE1, 0xF4, 0x5E, 0xC1, 0x00, 0x00, 0x00, 0x00),
-};
-static const mbedtls_mpi_uint secp224r1_T_9_X[] = {
-    MBEDTLS_BYTES_TO_T_UINT_8(0xA8, 0x95, 0xD6, 0xD9, 0x32, 0x30, 0x2B, 0xD0),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x77, 0x42, 0x09, 0x05, 0x61, 0x2A, 0x7E, 0x82),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x73, 0x84, 0xA2, 0x05, 0x88, 0x64, 0x65, 0xF9),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x03, 0x2D, 0x90, 0xB3, 0x00, 0x00, 0x00, 0x00),
-};
-static const mbedtls_mpi_uint secp224r1_T_9_Y[] = {
-    MBEDTLS_BYTES_TO_T_UINT_8(0x0A, 0xE7, 0x2E, 0x85, 0x55, 0x80, 0x7C, 0x79),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x0F, 0xC1, 0xAC, 0x78, 0xB4, 0xAF, 0xFB, 0x6E),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xD3, 0xC3, 0x28, 0x8E, 0x79, 0x18, 0x1F, 0x58),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x34, 0x46, 0xCF, 0x49, 0x00, 0x00, 0x00, 0x00),
-};
-static const mbedtls_mpi_uint secp224r1_T_10_X[] = {
-    MBEDTLS_BYTES_TO_T_UINT_8(0x63, 0x5F, 0xA8, 0x6C, 0x46, 0x83, 0x43, 0xFA),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xFA, 0xA9, 0x93, 0x11, 0xB6, 0x07, 0x57, 0x74),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x77, 0x2A, 0x9D, 0x03, 0x89, 0x7E, 0xD7, 0x3C),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x7B, 0x8C, 0x62, 0xCF, 0x00, 0x00, 0x00, 0x00),
-};
-static const mbedtls_mpi_uint secp224r1_T_10_Y[] = {
-    MBEDTLS_BYTES_TO_T_UINT_8(0x44, 0x2C, 0x13, 0x59, 0xCC, 0xFA, 0x84, 0x9E),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x51, 0xB9, 0x48, 0xBC, 0x57, 0xC7, 0xB3, 0x7C),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xFC, 0x0A, 0x38, 0x24, 0x2E, 0x3A, 0x28, 0x25),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xBC, 0x0A, 0x43, 0xB8, 0x00, 0x00, 0x00, 0x00),
-};
-static const mbedtls_mpi_uint secp224r1_T_11_X[] = {
-    MBEDTLS_BYTES_TO_T_UINT_8(0x59, 0x25, 0xAB, 0xC1, 0xEE, 0x70, 0x3C, 0xE1),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xF3, 0xDB, 0x45, 0x1D, 0x4A, 0x80, 0x75, 0x35),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xE8, 0x1F, 0x4D, 0x2D, 0x9A, 0x05, 0xF4, 0xCB),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x6B, 0x10, 0xF0, 0x5A, 0x00, 0x00, 0x00, 0x00),
-};
-static const mbedtls_mpi_uint secp224r1_T_11_Y[] = {
-    MBEDTLS_BYTES_TO_T_UINT_8(0x35, 0x95, 0xE1, 0xDC, 0x15, 0x86, 0xC3, 0x7B),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xEC, 0xDC, 0x27, 0xD1, 0x56, 0xA1, 0x14, 0x0D),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x59, 0x0B, 0xD6, 0x77, 0x4E, 0x44, 0xA2, 0xF8),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x94, 0x42, 0x71, 0x1F, 0x00, 0x00, 0x00, 0x00),
-};
-static const mbedtls_mpi_uint secp224r1_T_12_X[] = {
-    MBEDTLS_BYTES_TO_T_UINT_8(0x30, 0x86, 0xB2, 0xB0, 0xC8, 0x2F, 0x7B, 0xFE),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x96, 0xEF, 0xCB, 0xDB, 0xBC, 0x9E, 0x3B, 0xC5),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x1B, 0x03, 0x86, 0xDD, 0x5B, 0xF5, 0x8D, 0x46),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x58, 0x95, 0x79, 0xD6, 0x00, 0x00, 0x00, 0x00),
-};
-static const mbedtls_mpi_uint secp224r1_T_12_Y[] = {
-    MBEDTLS_BYTES_TO_T_UINT_8(0x84, 0x32, 0x14, 0xDA, 0x9B, 0x4F, 0x07, 0x39),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xB5, 0x3E, 0xFB, 0x06, 0xEE, 0xA7, 0x40, 0x40),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x76, 0x1F, 0xDF, 0x71, 0x61, 0xFD, 0x8B, 0xBE),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x80, 0x8B, 0xAB, 0x8B, 0x00, 0x00, 0x00, 0x00),
-};
-static const mbedtls_mpi_uint secp224r1_T_13_X[] = {
-    MBEDTLS_BYTES_TO_T_UINT_8(0xC9, 0x34, 0xB3, 0xB4, 0xBC, 0x9F, 0xB0, 0x5E),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xE6, 0x58, 0x48, 0xA8, 0x77, 0xBB, 0x13, 0x2F),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x41, 0xC6, 0xF7, 0x34, 0xCC, 0x89, 0x21, 0x0A),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xCA, 0x33, 0xDD, 0x1F, 0x00, 0x00, 0x00, 0x00),
-};
-static const mbedtls_mpi_uint secp224r1_T_13_Y[] = {
-    MBEDTLS_BYTES_TO_T_UINT_8(0xCC, 0x81, 0xEF, 0xA4, 0xF2, 0x10, 0x0B, 0xCD),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x83, 0xF7, 0x6E, 0x72, 0x4A, 0xDF, 0xDD, 0xE8),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x67, 0x23, 0x0A, 0x53, 0x03, 0x16, 0x62, 0xD2),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x0B, 0x76, 0xFD, 0x3C, 0x00, 0x00, 0x00, 0x00),
-};
-static const mbedtls_mpi_uint secp224r1_T_14_X[] = {
-    MBEDTLS_BYTES_TO_T_UINT_8(0xCB, 0x14, 0xA1, 0xFA, 0xA0, 0x18, 0xBE, 0x07),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x03, 0x2A, 0xE1, 0xD7, 0xB0, 0x6C, 0xA0, 0xDE),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xD1, 0xC0, 0xB0, 0xC6, 0x63, 0x24, 0xCD, 0x4E),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x33, 0x38, 0x2C, 0xB1, 0x00, 0x00, 0x00, 0x00),
-};
-static const mbedtls_mpi_uint secp224r1_T_14_Y[] = {
-    MBEDTLS_BYTES_TO_T_UINT_8(0xEE, 0xCD, 0x7D, 0x20, 0x0C, 0xFE, 0xAC, 0xC3),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x09, 0x97, 0x9F, 0xA2, 0xB6, 0x45, 0xF7, 0x7B),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xCA, 0x99, 0xF3, 0xD2, 0x20, 0x02, 0xEB, 0x04),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x43, 0x18, 0x5B, 0x7B, 0x00, 0x00, 0x00, 0x00),
-};
-static const mbedtls_mpi_uint secp224r1_T_15_X[] = {
-    MBEDTLS_BYTES_TO_T_UINT_8(0x2B, 0xDD, 0x77, 0x91, 0x60, 0xEA, 0xFD, 0xD3),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x7D, 0xD3, 0xB5, 0xD6, 0x90, 0x17, 0x0E, 0x1A),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x00, 0xF4, 0x28, 0xC1, 0xF2, 0x53, 0xF6, 0x63),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x49, 0x58, 0xDC, 0x61, 0x00, 0x00, 0x00, 0x00),
-};
-static const mbedtls_mpi_uint secp224r1_T_15_Y[] = {
-    MBEDTLS_BYTES_TO_T_UINT_8(0xA8, 0x20, 0x01, 0xFB, 0xF1, 0xBD, 0x5F, 0x45),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xD0, 0x7F, 0x06, 0xDA, 0x11, 0xCB, 0xBA, 0xA6),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xA7, 0x41, 0x00, 0xA4, 0x1B, 0x30, 0x33, 0x79),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xF4, 0xFF, 0x27, 0xCA, 0x00, 0x00, 0x00, 0x00),
-};
-static const mbedtls_ecp_point secp224r1_T[16] = {
-    ECP_POINT_INIT_XY_Z1(secp224r1_T_0_X, secp224r1_T_0_Y),
-    ECP_POINT_INIT_XY_Z0(secp224r1_T_1_X, secp224r1_T_1_Y),
-    ECP_POINT_INIT_XY_Z0(secp224r1_T_2_X, secp224r1_T_2_Y),
-    ECP_POINT_INIT_XY_Z0(secp224r1_T_3_X, secp224r1_T_3_Y),
-    ECP_POINT_INIT_XY_Z0(secp224r1_T_4_X, secp224r1_T_4_Y),
-    ECP_POINT_INIT_XY_Z0(secp224r1_T_5_X, secp224r1_T_5_Y),
-    ECP_POINT_INIT_XY_Z0(secp224r1_T_6_X, secp224r1_T_6_Y),
-    ECP_POINT_INIT_XY_Z0(secp224r1_T_7_X, secp224r1_T_7_Y),
-    ECP_POINT_INIT_XY_Z0(secp224r1_T_8_X, secp224r1_T_8_Y),
-    ECP_POINT_INIT_XY_Z0(secp224r1_T_9_X, secp224r1_T_9_Y),
-    ECP_POINT_INIT_XY_Z0(secp224r1_T_10_X, secp224r1_T_10_Y),
-    ECP_POINT_INIT_XY_Z0(secp224r1_T_11_X, secp224r1_T_11_Y),
-    ECP_POINT_INIT_XY_Z0(secp224r1_T_12_X, secp224r1_T_12_Y),
-    ECP_POINT_INIT_XY_Z0(secp224r1_T_13_X, secp224r1_T_13_Y),
-    ECP_POINT_INIT_XY_Z0(secp224r1_T_14_X, secp224r1_T_14_Y),
-    ECP_POINT_INIT_XY_Z0(secp224r1_T_15_X, secp224r1_T_15_Y),
-};
-#else
-#define secp224r1_T NULL
-#endif
-#endif /* MBEDTLS_ECP_DP_SECP224R1_ENABLED */
-
 /*
  * Domain parameters for secp256r1
  */
@@ -2381,254 +2127,6 @@ static const mbedtls_ecp_point secp192k1_T[16] = {

 #endif /* MBEDTLS_ECP_DP_SECP192K1_ENABLED */

-#if defined(MBEDTLS_ECP_DP_SECP224K1_ENABLED)
-static const mbedtls_mpi_uint secp224k1_p[] = {
-    MBEDTLS_BYTES_TO_T_UINT_8(0x6D, 0xE5, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFF),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF),
-    MBEDTLS_BYTES_TO_T_UINT_4(0xFF, 0xFF, 0xFF, 0xFF),
-};
-static const mbedtls_mpi_uint secp224k1_a[] = {
-    MBEDTLS_BYTES_TO_T_UINT_2(0x00, 0x00),
-};
-static const mbedtls_mpi_uint secp224k1_b[] = {
-    MBEDTLS_BYTES_TO_T_UINT_2(0x05, 0x00),
-};
-static const mbedtls_mpi_uint secp224k1_gx[] = {
-    MBEDTLS_BYTES_TO_T_UINT_8(0x5C, 0xA4, 0xB7, 0xB6, 0x0E, 0x65, 0x7E, 0x0F),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xA9, 0x75, 0x70, 0xE4, 0xE9, 0x67, 0xA4, 0x69),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xA1, 0x28, 0xFC, 0x30, 0xDF, 0x99, 0xF0, 0x4D),
-    MBEDTLS_BYTES_TO_T_UINT_4(0x33, 0x5B, 0x45, 0xA1),
-};
-static const mbedtls_mpi_uint secp224k1_gy[] = {
-    MBEDTLS_BYTES_TO_T_UINT_8(0xA5, 0x61, 0x6D, 0x55, 0xDB, 0x4B, 0xCA, 0xE2),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x59, 0xBD, 0xB0, 0xC0, 0xF7, 0x19, 0xE3, 0xF7),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xD6, 0xFB, 0xCA, 0x82, 0x42, 0x34, 0xBA, 0x7F),
-    MBEDTLS_BYTES_TO_T_UINT_4(0xED, 0x9F, 0x08, 0x7E),
-};
-static const mbedtls_mpi_uint secp224k1_n[] = {
-    MBEDTLS_BYTES_TO_T_UINT_8(0xF7, 0xB1, 0x9F, 0x76, 0x71, 0xA9, 0xF0, 0xCA),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x84, 0x61, 0xEC, 0xD2, 0xE8, 0xDC, 0x01, 0x00),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00),
-};
-
-#if MBEDTLS_ECP_FIXED_POINT_OPTIM == 1
-static const mbedtls_mpi_uint secp224k1_T_0_X[] = {
-    MBEDTLS_BYTES_TO_T_UINT_8(0x5C, 0xA4, 0xB7, 0xB6, 0x0E, 0x65, 0x7E, 0x0F),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xA9, 0x75, 0x70, 0xE4, 0xE9, 0x67, 0xA4, 0x69),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xA1, 0x28, 0xFC, 0x30, 0xDF, 0x99, 0xF0, 0x4D),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x33, 0x5B, 0x45, 0xA1, 0x00, 0x00, 0x00, 0x00),
-};
-static const mbedtls_mpi_uint secp224k1_T_0_Y[] = {
-    MBEDTLS_BYTES_TO_T_UINT_8(0xA5, 0x61, 0x6D, 0x55, 0xDB, 0x4B, 0xCA, 0xE2),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x59, 0xBD, 0xB0, 0xC0, 0xF7, 0x19, 0xE3, 0xF7),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xD6, 0xFB, 0xCA, 0x82, 0x42, 0x34, 0xBA, 0x7F),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xED, 0x9F, 0x08, 0x7E, 0x00, 0x00, 0x00, 0x00),
-};
-static const mbedtls_mpi_uint secp224k1_T_1_X[] = {
-    MBEDTLS_BYTES_TO_T_UINT_8(0x99, 0x6C, 0x22, 0x22, 0x40, 0x89, 0xAE, 0x7A),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x2F, 0x92, 0xE1, 0x87, 0x56, 0x35, 0xAF, 0x9B),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x88, 0xAF, 0x08, 0x35, 0x27, 0xEA, 0x04, 0xED),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xF0, 0x53, 0xFD, 0xCF, 0x00, 0x00, 0x00, 0x00),
-};
-static const mbedtls_mpi_uint secp224k1_T_1_Y[] = {
-    MBEDTLS_BYTES_TO_T_UINT_8(0xC1, 0xD0, 0x9F, 0x8D, 0xF3, 0x63, 0x54, 0x30),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x39, 0xDB, 0x0F, 0x61, 0x54, 0x26, 0xD1, 0x98),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xF5, 0x21, 0xF7, 0x1B, 0xB5, 0x1D, 0xF6, 0x7E),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xFF, 0x05, 0xDA, 0x8F, 0x00, 0x00, 0x00, 0x00),
-};
-static const mbedtls_mpi_uint secp224k1_T_2_X[] = {
-    MBEDTLS_BYTES_TO_T_UINT_8(0x10, 0x26, 0x73, 0xBC, 0xE4, 0x29, 0x62, 0x56),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x37, 0x95, 0x17, 0x8B, 0xC3, 0x9B, 0xAC, 0xCC),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xB1, 0xDB, 0x77, 0xDF, 0xDD, 0x13, 0x04, 0x98),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x02, 0xFC, 0x22, 0x93, 0x00, 0x00, 0x00, 0x00),
-};
-static const mbedtls_mpi_uint secp224k1_T_2_Y[] = {
-    MBEDTLS_BYTES_TO_T_UINT_8(0xAC, 0x65, 0xF1, 0x5A, 0x37, 0xEF, 0x79, 0xAD),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x99, 0x01, 0x37, 0xAC, 0x9A, 0x5B, 0x51, 0x65),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xFA, 0x75, 0x13, 0xA9, 0x4A, 0xAD, 0xFE, 0x9B),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x32, 0x82, 0x6F, 0x66, 0x00, 0x00, 0x00, 0x00),
-};
-static const mbedtls_mpi_uint secp224k1_T_3_X[] = {
-    MBEDTLS_BYTES_TO_T_UINT_8(0x4D, 0x5E, 0xF0, 0x40, 0xC3, 0xA6, 0xE2, 0x1E),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x34, 0x9A, 0x6F, 0xCF, 0x11, 0x26, 0x66, 0x85),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x79, 0x73, 0xA8, 0xCF, 0x2B, 0x12, 0x36, 0x37),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xB9, 0xB3, 0x0A, 0x58, 0x00, 0x00, 0x00, 0x00),
-};
-static const mbedtls_mpi_uint secp224k1_T_3_Y[] = {
-    MBEDTLS_BYTES_TO_T_UINT_8(0xD3, 0x79, 0x00, 0x55, 0x04, 0x34, 0x90, 0x1A),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x0A, 0x54, 0x1C, 0xC2, 0x45, 0x0C, 0x1B, 0x23),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x86, 0x19, 0xAB, 0xA8, 0xFC, 0x73, 0xDC, 0xEE),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x72, 0xFB, 0x93, 0xCE, 0x00, 0x00, 0x00, 0x00),
-};
-static const mbedtls_mpi_uint secp224k1_T_4_X[] = {
-    MBEDTLS_BYTES_TO_T_UINT_8(0xF8, 0x75, 0xD0, 0x66, 0x95, 0x86, 0xCA, 0x66),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x17, 0xEA, 0x29, 0x16, 0x6A, 0x38, 0xDF, 0x41),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xD8, 0xA2, 0x36, 0x2F, 0xDC, 0xBB, 0x5E, 0xF7),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xD4, 0x89, 0x59, 0x49, 0x00, 0x00, 0x00, 0x00),
-};
-static const mbedtls_mpi_uint secp224k1_T_4_Y[] = {
-    MBEDTLS_BYTES_TO_T_UINT_8(0xCA, 0xA3, 0x99, 0x9D, 0xB8, 0x77, 0x9D, 0x1D),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x0A, 0x93, 0x43, 0x47, 0xC6, 0x5C, 0xF9, 0xFD),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xAA, 0x00, 0x79, 0x42, 0x64, 0xB8, 0x25, 0x3E),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x29, 0x54, 0xB4, 0x33, 0x00, 0x00, 0x00, 0x00),
-};
-static const mbedtls_mpi_uint secp224k1_T_5_X[] = {
-    MBEDTLS_BYTES_TO_T_UINT_8(0xD9, 0x0C, 0x42, 0x90, 0x83, 0x0B, 0x31, 0x5F),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x54, 0x2E, 0xAE, 0xC8, 0xC7, 0x5F, 0xD2, 0x70),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xA9, 0xBC, 0xAD, 0x41, 0xE7, 0x32, 0x3A, 0x81),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x8A, 0x97, 0x52, 0x83, 0x00, 0x00, 0x00, 0x00),
-};
-static const mbedtls_mpi_uint secp224k1_T_5_Y[] = {
-    MBEDTLS_BYTES_TO_T_UINT_8(0x1A, 0x13, 0x7A, 0xBD, 0xAE, 0x94, 0x60, 0xFD),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x92, 0x9B, 0x95, 0xB4, 0x6E, 0x68, 0xB2, 0x1F),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x15, 0x49, 0xBE, 0x51, 0xFE, 0x66, 0x15, 0x74),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xE6, 0x37, 0xE4, 0xFE, 0x00, 0x00, 0x00, 0x00),
-};
-static const mbedtls_mpi_uint secp224k1_T_6_X[] = {
-    MBEDTLS_BYTES_TO_T_UINT_8(0xF6, 0x9B, 0xEE, 0x64, 0xC9, 0x1B, 0xBD, 0x77),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xDA, 0x5F, 0x34, 0xA9, 0x0B, 0xB7, 0x25, 0x52),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x90, 0x13, 0xB1, 0x38, 0xFB, 0x9D, 0x78, 0xED),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x39, 0xE7, 0x1B, 0xFA, 0x00, 0x00, 0x00, 0x00),
-};
-static const mbedtls_mpi_uint secp224k1_T_6_Y[] = {
-    MBEDTLS_BYTES_TO_T_UINT_8(0xFB, 0xB3, 0xB7, 0x44, 0x92, 0x6B, 0x00, 0x82),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x97, 0x82, 0x44, 0x3E, 0x18, 0x1A, 0x58, 0x6A),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x15, 0xF8, 0xC0, 0xE4, 0xEE, 0xC1, 0xBF, 0x44),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x7E, 0x32, 0x27, 0xB2, 0x00, 0x00, 0x00, 0x00),
-};
-static const mbedtls_mpi_uint secp224k1_T_7_X[] = {
-    MBEDTLS_BYTES_TO_T_UINT_8(0xF4, 0x9A, 0x42, 0x62, 0x8B, 0x26, 0x54, 0x21),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x24, 0x85, 0x74, 0xA0, 0x79, 0xA8, 0xEE, 0xBE),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x80, 0x36, 0x60, 0xB3, 0x28, 0x4D, 0x55, 0xBE),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x32, 0x27, 0x82, 0x29, 0x00, 0x00, 0x00, 0x00),
-};
-static const mbedtls_mpi_uint secp224k1_T_7_Y[] = {
-    MBEDTLS_BYTES_TO_T_UINT_8(0x0D, 0xFC, 0x73, 0x77, 0xAF, 0x5C, 0xAC, 0x78),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xCC, 0xED, 0xE5, 0xF6, 0x1D, 0xA8, 0x67, 0x43),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xF8, 0xDE, 0x33, 0x1C, 0xF1, 0x80, 0x73, 0xF8),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x2A, 0xE2, 0xDE, 0x3C, 0x00, 0x00, 0x00, 0x00),
-};
-static const mbedtls_mpi_uint secp224k1_T_8_X[] = {
-    MBEDTLS_BYTES_TO_T_UINT_8(0x57, 0x3E, 0x6B, 0xFE, 0xF0, 0x04, 0x28, 0x01),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xBB, 0xB2, 0x14, 0x9D, 0x18, 0x11, 0x7D, 0x9D),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x96, 0xC4, 0xD6, 0x2E, 0x6E, 0x57, 0x4D, 0xE1),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xEA, 0x55, 0x1B, 0xDE, 0x00, 0x00, 0x00, 0x00),
-};
-static const mbedtls_mpi_uint secp224k1_T_8_Y[] = {
-    MBEDTLS_BYTES_TO_T_UINT_8(0x07, 0xF7, 0x17, 0xBC, 0x45, 0xAB, 0x16, 0xAB),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xCD, 0xB0, 0xEF, 0x61, 0xE3, 0x20, 0x7C, 0xF8),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x6C, 0x85, 0x41, 0x4D, 0xF1, 0x7E, 0x4D, 0x41),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x99, 0xC2, 0x9B, 0x5E, 0x00, 0x00, 0x00, 0x00),
-};
-static const mbedtls_mpi_uint secp224k1_T_9_X[] = {
-    MBEDTLS_BYTES_TO_T_UINT_8(0x70, 0x2E, 0x49, 0x3D, 0x3E, 0x4B, 0xD3, 0x32),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xC8, 0x2B, 0x9D, 0xD5, 0x27, 0xFA, 0xCA, 0xE0),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xB3, 0xB3, 0x6A, 0xE0, 0x79, 0x14, 0x28, 0x0F),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x6C, 0x1E, 0xDC, 0xF5, 0x00, 0x00, 0x00, 0x00),
-};
-static const mbedtls_mpi_uint secp224k1_T_9_Y[] = {
-    MBEDTLS_BYTES_TO_T_UINT_8(0xCA, 0x44, 0x56, 0xCD, 0xFC, 0x9F, 0x09, 0xFF),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x5C, 0x8C, 0x59, 0xA4, 0x64, 0x2A, 0x3A, 0xED),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x40, 0xA0, 0xB5, 0x86, 0x4E, 0x69, 0xDA, 0x06),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x08, 0x8B, 0x11, 0x38, 0x00, 0x00, 0x00, 0x00),
-};
-static const mbedtls_mpi_uint secp224k1_T_10_X[] = {
-    MBEDTLS_BYTES_TO_T_UINT_8(0xA0, 0x17, 0x16, 0x12, 0x17, 0xDC, 0x00, 0x7E),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xE7, 0x76, 0x24, 0x6C, 0x97, 0x2C, 0xB5, 0xF9),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x82, 0x71, 0xE3, 0xB0, 0xBB, 0x4E, 0x50, 0x52),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x6E, 0x48, 0x26, 0xD5, 0x00, 0x00, 0x00, 0x00),
-};
-static const mbedtls_mpi_uint secp224k1_T_10_Y[] = {
-    MBEDTLS_BYTES_TO_T_UINT_8(0x06, 0x5F, 0x28, 0xF6, 0x01, 0x5A, 0x60, 0x41),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xAE, 0x95, 0xFE, 0xD0, 0xAD, 0x15, 0xD4, 0xD9),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xAD, 0x5B, 0x7A, 0xFD, 0x80, 0xF7, 0x9F, 0x64),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x32, 0xBC, 0x1B, 0xDF, 0x00, 0x00, 0x00, 0x00),
-};
-static const mbedtls_mpi_uint secp224k1_T_11_X[] = {
-    MBEDTLS_BYTES_TO_T_UINT_8(0xBB, 0xE6, 0xDF, 0x14, 0x29, 0xF4, 0xD4, 0x14),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xE5, 0x12, 0xDD, 0xEC, 0x5B, 0x8A, 0x59, 0xE5),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x26, 0x92, 0x3E, 0x35, 0x08, 0xE9, 0xCF, 0x0E),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xE0, 0x35, 0x29, 0x97, 0x00, 0x00, 0x00, 0x00),
-};
-static const mbedtls_mpi_uint secp224k1_T_11_Y[] = {
-    MBEDTLS_BYTES_TO_T_UINT_8(0x11, 0xDB, 0xD6, 0x6A, 0xC5, 0x43, 0xA4, 0xA1),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x61, 0x33, 0x50, 0x61, 0x70, 0xA1, 0xE9, 0xCE),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x15, 0x15, 0x6E, 0x5F, 0x01, 0x0C, 0x8C, 0xFA),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x85, 0xA1, 0x9A, 0x9D, 0x00, 0x00, 0x00, 0x00),
-};
-static const mbedtls_mpi_uint secp224k1_T_12_X[] = {
-    MBEDTLS_BYTES_TO_T_UINT_8(0x6E, 0xC6, 0xF7, 0xE2, 0x4A, 0xCD, 0x9B, 0x61),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x34, 0x4D, 0x5A, 0xB8, 0xE2, 0x6D, 0xA6, 0x50),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x32, 0x3F, 0xB6, 0x17, 0xE3, 0x2C, 0x6F, 0x65),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x1E, 0xA4, 0x59, 0x51, 0x00, 0x00, 0x00, 0x00),
-};
-static const mbedtls_mpi_uint secp224k1_T_12_Y[] = {
-    MBEDTLS_BYTES_TO_T_UINT_8(0x77, 0x4F, 0x7C, 0x49, 0xCD, 0x6E, 0xEB, 0x3C),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x05, 0xC9, 0x1F, 0xB7, 0x4D, 0x98, 0xC7, 0x67),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x4C, 0xFD, 0x98, 0x20, 0x95, 0xBB, 0x20, 0x3A),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xE0, 0xF2, 0x73, 0x92, 0x00, 0x00, 0x00, 0x00),
-};
-static const mbedtls_mpi_uint secp224k1_T_13_X[] = {
-    MBEDTLS_BYTES_TO_T_UINT_8(0xE2, 0xEF, 0xFB, 0x30, 0xFA, 0x12, 0x1A, 0xB0),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x7A, 0x4C, 0x24, 0xB4, 0x5B, 0xC9, 0x4C, 0x0F),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x7A, 0xDD, 0x5E, 0x84, 0x95, 0x4D, 0x26, 0xED),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xE3, 0xFA, 0xF9, 0x3A, 0x00, 0x00, 0x00, 0x00),
-};
-static const mbedtls_mpi_uint secp224k1_T_13_Y[] = {
-    MBEDTLS_BYTES_TO_T_UINT_8(0x6A, 0xA3, 0x2E, 0x7A, 0xDC, 0xA7, 0x53, 0xA9),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x7C, 0x9F, 0x81, 0x84, 0xB2, 0x0D, 0xFE, 0x31),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x61, 0x89, 0x1B, 0x77, 0x0C, 0x89, 0x71, 0xEC),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xFA, 0xFF, 0x7F, 0xB2, 0x00, 0x00, 0x00, 0x00),
-};
-static const mbedtls_mpi_uint secp224k1_T_14_X[] = {
-    MBEDTLS_BYTES_TO_T_UINT_8(0x28, 0xE9, 0x2C, 0x79, 0xA6, 0x3C, 0xAD, 0x93),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xD6, 0xE0, 0x23, 0x02, 0x86, 0x0F, 0x77, 0x2A),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x13, 0x93, 0x6D, 0xE9, 0xF9, 0x3C, 0xBE, 0xB9),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x04, 0xE7, 0x24, 0x92, 0x00, 0x00, 0x00, 0x00),
-};
-static const mbedtls_mpi_uint secp224k1_T_14_Y[] = {
-    MBEDTLS_BYTES_TO_T_UINT_8(0xBB, 0x3C, 0x5B, 0x4B, 0x1B, 0x25, 0x37, 0xD6),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xC9, 0xE8, 0x38, 0x1B, 0xA1, 0x5A, 0x2E, 0x68),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x03, 0x19, 0xFD, 0xF4, 0x78, 0x01, 0x6B, 0x44),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x0F, 0x69, 0x37, 0x4F, 0x00, 0x00, 0x00, 0x00),
-};
-static const mbedtls_mpi_uint secp224k1_T_15_X[] = {
-    MBEDTLS_BYTES_TO_T_UINT_8(0x1A, 0xE2, 0xBF, 0xD3, 0xEC, 0x95, 0x9C, 0x03),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xC2, 0x7B, 0xFC, 0xD5, 0xD3, 0x25, 0x5E, 0x0F),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x39, 0x55, 0x09, 0xA2, 0x58, 0x6A, 0xC9, 0xFF),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x80, 0xCC, 0x3B, 0xD9, 0x00, 0x00, 0x00, 0x00),
-};
-static const mbedtls_mpi_uint secp224k1_T_15_Y[] = {
-    MBEDTLS_BYTES_TO_T_UINT_8(0x8F, 0x08, 0x65, 0x5E, 0xCB, 0xAB, 0x48, 0xC8),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xEE, 0x79, 0x8B, 0xC0, 0x11, 0xC0, 0x69, 0x38),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xE6, 0xE8, 0x8C, 0x4C, 0xC5, 0x28, 0xE4, 0xAE),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xA5, 0x1F, 0x34, 0x5C, 0x00, 0x00, 0x00, 0x00),
-};
-static const mbedtls_ecp_point secp224k1_T[16] = {
-    ECP_POINT_INIT_XY_Z1(secp224k1_T_0_X, secp224k1_T_0_Y),
-    ECP_POINT_INIT_XY_Z0(secp224k1_T_1_X, secp224k1_T_1_Y),
-    ECP_POINT_INIT_XY_Z0(secp224k1_T_2_X, secp224k1_T_2_Y),
-    ECP_POINT_INIT_XY_Z0(secp224k1_T_3_X, secp224k1_T_3_Y),
-    ECP_POINT_INIT_XY_Z0(secp224k1_T_4_X, secp224k1_T_4_Y),
-    ECP_POINT_INIT_XY_Z0(secp224k1_T_5_X, secp224k1_T_5_Y),
-    ECP_POINT_INIT_XY_Z0(secp224k1_T_6_X, secp224k1_T_6_Y),
-    ECP_POINT_INIT_XY_Z0(secp224k1_T_7_X, secp224k1_T_7_Y),
-    ECP_POINT_INIT_XY_Z0(secp224k1_T_8_X, secp224k1_T_8_Y),
-    ECP_POINT_INIT_XY_Z0(secp224k1_T_9_X, secp224k1_T_9_Y),
-    ECP_POINT_INIT_XY_Z0(secp224k1_T_10_X, secp224k1_T_10_Y),
-    ECP_POINT_INIT_XY_Z0(secp224k1_T_11_X, secp224k1_T_11_Y),
-    ECP_POINT_INIT_XY_Z0(secp224k1_T_12_X, secp224k1_T_12_Y),
-    ECP_POINT_INIT_XY_Z0(secp224k1_T_13_X, secp224k1_T_13_Y),
-    ECP_POINT_INIT_XY_Z0(secp224k1_T_14_X, secp224k1_T_14_Y),
-    ECP_POINT_INIT_XY_Z0(secp224k1_T_15_X, secp224k1_T_15_Y),
-};
-#else
-#define secp224k1_T NULL
-#endif
-#endif /* MBEDTLS_ECP_DP_SECP224K1_ENABLED */
-
 #if defined(MBEDTLS_ECP_DP_SECP256K1_ENABLED)
 static const mbedtls_mpi_uint secp256k1_p[] = {
     MBEDTLS_BYTES_TO_T_UINT_8(0x2F, 0xFC, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFF),
@@ -4551,9 +4049,6 @@ static int ecp_group_load(mbedtls_ecp_group *grp,
 #if defined(MBEDTLS_ECP_DP_SECP192R1_ENABLED)
 static int ecp_mod_p192(mbedtls_mpi *);
 #endif
-#if defined(MBEDTLS_ECP_DP_SECP224R1_ENABLED)
-static int ecp_mod_p224(mbedtls_mpi *);
-#endif
 #if defined(MBEDTLS_ECP_DP_SECP256R1_ENABLED)
 static int ecp_mod_p256(mbedtls_mpi *);
 #endif
@@ -4579,9 +4074,6 @@ static int ecp_mod_p448(mbedtls_mpi *);
 #if defined(MBEDTLS_ECP_DP_SECP192K1_ENABLED)
 static int ecp_mod_p192k1(mbedtls_mpi *);
 #endif
-#if defined(MBEDTLS_ECP_DP_SECP224K1_ENABLED)
-static int ecp_mod_p224k1(mbedtls_mpi *);
-#endif
 #if defined(MBEDTLS_ECP_DP_SECP256K1_ENABLED)
 static int ecp_mod_p256k1(mbedtls_mpi *);
 #endif
@@ -4729,12 +4221,6 @@ int mbedtls_ecp_group_load(mbedtls_ecp_group *grp, mbedtls_ecp_group_id id)
             return LOAD_GROUP(secp192r1);
 #endif /* MBEDTLS_ECP_DP_SECP192R1_ENABLED */

-#if defined(MBEDTLS_ECP_DP_SECP224R1_ENABLED)
-        case MBEDTLS_ECP_DP_SECP224R1:
-            NIST_MODP(p224);
-            return LOAD_GROUP(secp224r1);
-#endif /* MBEDTLS_ECP_DP_SECP224R1_ENABLED */
-
 #if defined(MBEDTLS_ECP_DP_SECP256R1_ENABLED)
         case MBEDTLS_ECP_DP_SECP256R1:
             NIST_MODP(p256);
@@ -4759,12 +4245,6 @@ int mbedtls_ecp_group_load(mbedtls_ecp_group *grp, mbedtls_ecp_group_id id)
             return LOAD_GROUP_A(secp192k1);
 #endif /* MBEDTLS_ECP_DP_SECP192K1_ENABLED */

-#if defined(MBEDTLS_ECP_DP_SECP224K1_ENABLED)
-        case MBEDTLS_ECP_DP_SECP224K1:
-            grp->modp = ecp_mod_p224k1;
-            return LOAD_GROUP_A(secp224k1);
-#endif /* MBEDTLS_ECP_DP_SECP224K1_ENABLED */
-
 #if defined(MBEDTLS_ECP_DP_SECP256K1_ENABLED)
         case MBEDTLS_ECP_DP_SECP256K1:
             grp->modp = ecp_mod_p256k1;
@@ -4886,8 +4366,7 @@ cleanup:
 #undef LAST
 #endif /* MBEDTLS_ECP_DP_SECP192R1_ENABLED */

-#if defined(MBEDTLS_ECP_DP_SECP224R1_ENABLED) ||   \
-    defined(MBEDTLS_ECP_DP_SECP256R1_ENABLED) ||   \
+#if defined(MBEDTLS_ECP_DP_SECP256R1_ENABLED) ||   \
     defined(MBEDTLS_ECP_DP_SECP384R1_ENABLED)
 /*
  * The reader is advised to first understand ecp_mod_p192() since the same
@@ -5008,27 +4487,6 @@ static void mbedtls_ecp_fix_negative(mbedtls_mpi *N, signed char c, size_t bits)
     N->p[bits / 8 / sizeof(mbedtls_mpi_uint)] += msw;
 }

-#if defined(MBEDTLS_ECP_DP_SECP224R1_ENABLED)
-/*
- * Fast quasi-reduction modulo p224 (FIPS 186-3 D.2.2)
- */
-static int ecp_mod_p224(mbedtls_mpi *N)
-{
-    INIT(224);
-
-    SUB(7); SUB(11);               NEXT;      // A0 += -A7 - A11
-    SUB(8); SUB(12);               NEXT;      // A1 += -A8 - A12
-    SUB(9); SUB(13);               NEXT;      // A2 += -A9 - A13
-    SUB(10); ADD(7); ADD(11);    NEXT;        // A3 += -A10 + A7 + A11
-    SUB(11); ADD(8); ADD(12);    NEXT;        // A4 += -A11 + A8 + A12
-    SUB(12); ADD(9); ADD(13);    NEXT;        // A5 += -A12 + A9 + A13
-    SUB(13); ADD(10);               LAST;     // A6 += -A13 + A10
-
-cleanup:
-    return ret;
-}
-#endif /* MBEDTLS_ECP_DP_SECP224R1_ENABLED */
-
 #if defined(MBEDTLS_ECP_DP_SECP256R1_ENABLED)
 /*
  * Fast quasi-reduction modulo p256 (FIPS 186-3 D.2.3)
@@ -5123,8 +4581,7 @@ cleanup:
 #undef NEXT
 #undef LAST

-#endif /* MBEDTLS_ECP_DP_SECP224R1_ENABLED ||
-          MBEDTLS_ECP_DP_SECP256R1_ENABLED ||
+#endif /* MBEDTLS_ECP_DP_SECP256R1_ENABLED ||
           MBEDTLS_ECP_DP_SECP384R1_ENABLED */

 #if defined(MBEDTLS_ECP_DP_SECP521R1_ENABLED)
@@ -5300,7 +4757,6 @@ cleanup:
 #endif /* MBEDTLS_ECP_DP_CURVE448_ENABLED */

 #if defined(MBEDTLS_ECP_DP_SECP192K1_ENABLED) ||   \
-    defined(MBEDTLS_ECP_DP_SECP224K1_ENABLED) ||   \
     defined(MBEDTLS_ECP_DP_SECP256K1_ENABLED)
 /*
  * Fast quasi-reduction modulo P = 2^s - R,
@@ -5386,7 +4842,6 @@ cleanup:
     return ret;
 }
 #endif /* MBEDTLS_ECP_DP_SECP192K1_ENABLED) ||
-          MBEDTLS_ECP_DP_SECP224K1_ENABLED) ||
           MBEDTLS_ECP_DP_SECP256K1_ENABLED) */

 #if defined(MBEDTLS_ECP_DP_SECP192K1_ENABLED)
@@ -5406,28 +4861,6 @@ static int ecp_mod_p192k1(mbedtls_mpi *N)
 }
 #endif /* MBEDTLS_ECP_DP_SECP192K1_ENABLED */

-#if defined(MBEDTLS_ECP_DP_SECP224K1_ENABLED)
-/*
- * Fast quasi-reduction modulo p224k1 = 2^224 - R,
- * with R = 2^32 + 2^12 + 2^11 + 2^9 + 2^7 + 2^4 + 2 + 1 = 0x0100001A93
- */
-static int ecp_mod_p224k1(mbedtls_mpi *N)
-{
-    static const mbedtls_mpi_uint Rp[] = {
-        MBEDTLS_BYTES_TO_T_UINT_8(0x93, 0x1A, 0x00, 0x00, 0x01, 0x00, 0x00,
-                                  0x00)
-    };
-
-#if defined(MBEDTLS_HAVE_INT64)
-    return ecp_mod_koblitz(N, Rp, 4, 1, 32, 0xFFFFFFFF);
-#else
-    return ecp_mod_koblitz(N, Rp, 224 / 8 / sizeof(mbedtls_mpi_uint), 0, 0,
-                           0);
-#endif
-}
-
-#endif /* MBEDTLS_ECP_DP_SECP224K1_ENABLED */
-
 #if defined(MBEDTLS_ECP_DP_SECP256K1_ENABLED)
 /*
  * Fast quasi-reduction modulo p256k1 = 2^256 - R,
@@ -5454,7 +4887,5 @@ mbedtls_ecp_variant mbedtls_ecp_get_variant(void)

 #endif /* MBEDTLS_TEST_HOOKS */

-#endif /* !MBEDTLS_ECP_ALT */
-
 #endif /* MBEDTLS_ECP_LIGHT */
 #endif /* MBEDTLS_ECP_WITH_MPI_UINT */
diff --git a/deps/LIEF/third-party/mbedtls/library/ecp_curves_new.c b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/ecp_curves_new.c
similarity index 89%
rename from deps/LIEF/third-party/mbedtls/library/ecp_curves_new.c
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/ecp_curves_new.c
index 035b23a1b41..eae9ff42199 100644
--- a/deps/LIEF/third-party/mbedtls/library/ecp_curves_new.c
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/ecp_curves_new.c
@@ -5,16 +5,16 @@
  *  SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
  */

-#include "common.h"
+#include "tf_psa_crypto_common.h"

 #if defined(MBEDTLS_ECP_WITH_MPI_UINT)

 #if defined(MBEDTLS_ECP_LIGHT)

-#include "mbedtls/ecp.h"
+#include "mbedtls/private/ecp.h"
 #include "mbedtls/platform.h"
 #include "mbedtls/platform_util.h"
-#include "mbedtls/error.h"
+#include "mbedtls/private/error_common.h"

 #include "mbedtls/platform.h"

@@ -26,8 +26,6 @@

 #include <string.h>

-#if !defined(MBEDTLS_ECP_ALT)
-
 #define ECP_MPI_INIT(_p, _n) { .p = (mbedtls_mpi_uint *) (_p), .s = 1, .n = (_n) }

 #define ECP_MPI_INIT_ARRAY(x)   \
@@ -39,7 +37,6 @@
         ECP_MPI_INIT_ARRAY(x), ECP_MPI_INIT_ARRAY(y), ECP_MPI_INIT(mpi_one, 1) }

 #if defined(MBEDTLS_ECP_DP_SECP192R1_ENABLED) ||   \
-    defined(MBEDTLS_ECP_DP_SECP224R1_ENABLED) ||   \
     defined(MBEDTLS_ECP_DP_SECP256R1_ENABLED) ||   \
     defined(MBEDTLS_ECP_DP_SECP384R1_ENABLED) ||   \
     defined(MBEDTLS_ECP_DP_SECP521R1_ENABLED) ||   \
@@ -47,7 +44,6 @@
     defined(MBEDTLS_ECP_DP_BP384R1_ENABLED)   ||   \
     defined(MBEDTLS_ECP_DP_BP512R1_ENABLED)   ||   \
     defined(MBEDTLS_ECP_DP_SECP192K1_ENABLED) ||   \
-    defined(MBEDTLS_ECP_DP_SECP224K1_ENABLED) ||   \
     defined(MBEDTLS_ECP_DP_SECP256K1_ENABLED)
 /* For these curves, we build the group parameters dynamically. */
 #define ECP_LOAD_GROUP
@@ -272,256 +268,6 @@ static const mbedtls_ecp_point secp192r1_T[16] = {
 #endif
 #endif /* MBEDTLS_ECP_DP_SECP192R1_ENABLED */

-/*
- * Domain parameters for secp224r1
- */
-#if defined(MBEDTLS_ECP_DP_SECP224R1_ENABLED)
-static const mbedtls_mpi_uint secp224r1_p[] = {
-    MBEDTLS_BYTES_TO_T_UINT_8(0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00),
-};
-static const mbedtls_mpi_uint secp224r1_b[] = {
-    MBEDTLS_BYTES_TO_T_UINT_8(0xB4, 0xFF, 0x55, 0x23, 0x43, 0x39, 0x0B, 0x27),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xBA, 0xD8, 0xBF, 0xD7, 0xB7, 0xB0, 0x44, 0x50),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x56, 0x32, 0x41, 0xF5, 0xAB, 0xB3, 0x04, 0x0C),
-    MBEDTLS_BYTES_TO_T_UINT_4(0x85, 0x0A, 0x05, 0xB4),
-};
-static const mbedtls_mpi_uint secp224r1_gx[] = {
-    MBEDTLS_BYTES_TO_T_UINT_8(0x21, 0x1D, 0x5C, 0x11, 0xD6, 0x80, 0x32, 0x34),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x22, 0x11, 0xC2, 0x56, 0xD3, 0xC1, 0x03, 0x4A),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xB9, 0x90, 0x13, 0x32, 0x7F, 0xBF, 0xB4, 0x6B),
-    MBEDTLS_BYTES_TO_T_UINT_4(0xBD, 0x0C, 0x0E, 0xB7),
-};
-static const mbedtls_mpi_uint secp224r1_gy[] = {
-    MBEDTLS_BYTES_TO_T_UINT_8(0x34, 0x7E, 0x00, 0x85, 0x99, 0x81, 0xD5, 0x44),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x64, 0x47, 0x07, 0x5A, 0xA0, 0x75, 0x43, 0xCD),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xE6, 0xDF, 0x22, 0x4C, 0xFB, 0x23, 0xF7, 0xB5),
-    MBEDTLS_BYTES_TO_T_UINT_4(0x88, 0x63, 0x37, 0xBD),
-};
-static const mbedtls_mpi_uint secp224r1_n[] = {
-    MBEDTLS_BYTES_TO_T_UINT_8(0x3D, 0x2A, 0x5C, 0x5C, 0x45, 0x29, 0xDD, 0x13),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x3E, 0xF0, 0xB8, 0xE0, 0xA2, 0x16, 0xFF, 0xFF),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF),
-    MBEDTLS_BYTES_TO_T_UINT_4(0xFF, 0xFF, 0xFF, 0xFF),
-};
-#if MBEDTLS_ECP_FIXED_POINT_OPTIM == 1
-static const mbedtls_mpi_uint secp224r1_T_0_X[] = {
-    MBEDTLS_BYTES_TO_T_UINT_8(0x21, 0x1D, 0x5C, 0x11, 0xD6, 0x80, 0x32, 0x34),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x22, 0x11, 0xC2, 0x56, 0xD3, 0xC1, 0x03, 0x4A),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xB9, 0x90, 0x13, 0x32, 0x7F, 0xBF, 0xB4, 0x6B),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xBD, 0x0C, 0x0E, 0xB7, 0x00, 0x00, 0x00, 0x00),
-};
-static const mbedtls_mpi_uint secp224r1_T_0_Y[] = {
-    MBEDTLS_BYTES_TO_T_UINT_8(0x34, 0x7E, 0x00, 0x85, 0x99, 0x81, 0xD5, 0x44),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x64, 0x47, 0x07, 0x5A, 0xA0, 0x75, 0x43, 0xCD),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xE6, 0xDF, 0x22, 0x4C, 0xFB, 0x23, 0xF7, 0xB5),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x88, 0x63, 0x37, 0xBD, 0x00, 0x00, 0x00, 0x00),
-};
-static const mbedtls_mpi_uint secp224r1_T_1_X[] = {
-    MBEDTLS_BYTES_TO_T_UINT_8(0xE0, 0xF9, 0xB8, 0xD0, 0x3D, 0xD2, 0xD3, 0xFA),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x1E, 0xFD, 0x99, 0x26, 0x19, 0xFE, 0x13, 0x6E),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x1C, 0x0E, 0x4C, 0x48, 0x7C, 0xA2, 0x17, 0x01),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x3D, 0xA3, 0x13, 0x57, 0x00, 0x00, 0x00, 0x00),
-};
-static const mbedtls_mpi_uint secp224r1_T_1_Y[] = {
-    MBEDTLS_BYTES_TO_T_UINT_8(0x9F, 0x16, 0x5C, 0x8F, 0xAA, 0xED, 0x0F, 0x58),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xBF, 0xC5, 0x43, 0x34, 0x93, 0x05, 0x2A, 0x4C),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xE4, 0xE3, 0x6C, 0xCA, 0xC6, 0x14, 0xC2, 0x25),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xD3, 0x43, 0x6C, 0xD7, 0x00, 0x00, 0x00, 0x00),
-};
-static const mbedtls_mpi_uint secp224r1_T_2_X[] = {
-    MBEDTLS_BYTES_TO_T_UINT_8(0xC3, 0x5A, 0x98, 0x1E, 0xC8, 0xA5, 0x42, 0xA3),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x98, 0x49, 0x56, 0x78, 0xF8, 0xEF, 0xED, 0x65),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x1B, 0xBB, 0x64, 0xB6, 0x4C, 0x54, 0x5F, 0xD1),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x2F, 0x0C, 0x33, 0xCC, 0x00, 0x00, 0x00, 0x00),
-};
-static const mbedtls_mpi_uint secp224r1_T_2_Y[] = {
-    MBEDTLS_BYTES_TO_T_UINT_8(0xFA, 0x79, 0xCB, 0x2E, 0x08, 0xFF, 0xD8, 0xE6),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x2E, 0x1F, 0xD4, 0xD7, 0x57, 0xE9, 0x39, 0x45),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xD8, 0xD6, 0x3B, 0x0A, 0x1C, 0x87, 0xB7, 0x6A),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xEB, 0x30, 0xD8, 0x05, 0x00, 0x00, 0x00, 0x00),
-};
-static const mbedtls_mpi_uint secp224r1_T_3_X[] = {
-    MBEDTLS_BYTES_TO_T_UINT_8(0xAD, 0x79, 0x74, 0x9A, 0xE6, 0xBB, 0xC2, 0xC2),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xB4, 0x5B, 0xA6, 0x67, 0xC1, 0x91, 0xE7, 0x64),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xF0, 0xDF, 0x38, 0x82, 0x19, 0x2C, 0x4C, 0xCA),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xD1, 0x2E, 0x39, 0xC5, 0x00, 0x00, 0x00, 0x00),
-};
-static const mbedtls_mpi_uint secp224r1_T_3_Y[] = {
-    MBEDTLS_BYTES_TO_T_UINT_8(0x99, 0x36, 0x78, 0x4E, 0xAE, 0x5B, 0x02, 0x76),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x14, 0xF6, 0x8B, 0xF8, 0xF4, 0x92, 0x6B, 0x42),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xBA, 0x4D, 0x71, 0x35, 0xE7, 0x0C, 0x2C, 0x98),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x9B, 0xA5, 0x1F, 0xAE, 0x00, 0x00, 0x00, 0x00),
-};
-static const mbedtls_mpi_uint secp224r1_T_4_X[] = {
-    MBEDTLS_BYTES_TO_T_UINT_8(0xAF, 0x1C, 0x4B, 0xDF, 0x5B, 0xF2, 0x51, 0xB7),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x05, 0x74, 0xB1, 0x5A, 0xC6, 0x0F, 0x0E, 0x61),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xE8, 0x24, 0x09, 0x62, 0xAF, 0xFC, 0xDB, 0x45),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x43, 0xE1, 0x80, 0x55, 0x00, 0x00, 0x00, 0x00),
-};
-static const mbedtls_mpi_uint secp224r1_T_4_Y[] = {
-    MBEDTLS_BYTES_TO_T_UINT_8(0x3C, 0x82, 0xFE, 0xAD, 0xC3, 0xE5, 0xCF, 0xD8),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x24, 0xA2, 0x62, 0x17, 0x76, 0xF0, 0x5A, 0xFA),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x3E, 0xB8, 0xE5, 0xAC, 0xB7, 0x66, 0x38, 0xAA),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x97, 0xFD, 0x86, 0x05, 0x00, 0x00, 0x00, 0x00),
-};
-static const mbedtls_mpi_uint secp224r1_T_5_X[] = {
-    MBEDTLS_BYTES_TO_T_UINT_8(0x59, 0xD3, 0x0C, 0x3C, 0xD1, 0x66, 0xB0, 0xF1),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xBC, 0x59, 0xB4, 0x8D, 0x90, 0x10, 0xB7, 0xA2),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x96, 0x47, 0x9B, 0xE6, 0x55, 0x8A, 0xE4, 0xEE),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xB1, 0x49, 0xDB, 0x78, 0x00, 0x00, 0x00, 0x00),
-};
-static const mbedtls_mpi_uint secp224r1_T_5_Y[] = {
-    MBEDTLS_BYTES_TO_T_UINT_8(0x41, 0x97, 0xED, 0xDE, 0xFF, 0xB3, 0xDF, 0x48),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x10, 0xB9, 0x83, 0xB7, 0xEB, 0xBE, 0x40, 0x8D),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xAF, 0xD3, 0xD3, 0xCD, 0x0E, 0x82, 0x79, 0x3D),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x9B, 0x83, 0x1B, 0xF0, 0x00, 0x00, 0x00, 0x00),
-};
-static const mbedtls_mpi_uint secp224r1_T_6_X[] = {
-    MBEDTLS_BYTES_TO_T_UINT_8(0x3F, 0x22, 0xBB, 0x54, 0xD3, 0x31, 0x56, 0xFC),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x80, 0x36, 0xE5, 0xE0, 0x89, 0x96, 0x8E, 0x71),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xE1, 0xEF, 0x0A, 0xED, 0xD0, 0x11, 0x4A, 0xFF),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x15, 0x00, 0x57, 0x27, 0x00, 0x00, 0x00, 0x00),
-};
-static const mbedtls_mpi_uint secp224r1_T_6_Y[] = {
-    MBEDTLS_BYTES_TO_T_UINT_8(0x13, 0xCA, 0x3D, 0xF7, 0x64, 0x9B, 0x6E, 0x85),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x90, 0xE3, 0x70, 0x6B, 0x41, 0xD7, 0xED, 0x8F),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x02, 0x44, 0x44, 0x80, 0xCE, 0x13, 0x37, 0x92),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x94, 0x73, 0x80, 0x79, 0x00, 0x00, 0x00, 0x00),
-};
-static const mbedtls_mpi_uint secp224r1_T_7_X[] = {
-    MBEDTLS_BYTES_TO_T_UINT_8(0xB7, 0x4D, 0x70, 0x7D, 0x31, 0x0F, 0x1C, 0x58),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x6D, 0x35, 0x88, 0x47, 0xC4, 0x24, 0x78, 0x3F),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xBA, 0xF0, 0xCD, 0x91, 0x81, 0xB3, 0xDE, 0xB6),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x04, 0xCE, 0xC6, 0xF7, 0x00, 0x00, 0x00, 0x00),
-};
-static const mbedtls_mpi_uint secp224r1_T_7_Y[] = {
-    MBEDTLS_BYTES_TO_T_UINT_8(0xE9, 0x9C, 0x2D, 0xE8, 0xD2, 0x00, 0x8F, 0x10),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xD5, 0x5E, 0x7C, 0x0E, 0x0C, 0x6E, 0x58, 0x02),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xAE, 0x81, 0x21, 0xCE, 0x43, 0xF4, 0x24, 0x3D),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x9E, 0xBC, 0xF0, 0xF4, 0x00, 0x00, 0x00, 0x00),
-};
-static const mbedtls_mpi_uint secp224r1_T_8_X[] = {
-    MBEDTLS_BYTES_TO_T_UINT_8(0xD6, 0x10, 0xC2, 0x74, 0x4A, 0x8F, 0x8A, 0xCF),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x89, 0x67, 0xF4, 0x2B, 0x38, 0x2B, 0x35, 0x17),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xF5, 0xE7, 0x0C, 0xA9, 0xFA, 0x77, 0x5C, 0xBD),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xE0, 0x33, 0x19, 0x2B, 0x00, 0x00, 0x00, 0x00),
-};
-static const mbedtls_mpi_uint secp224r1_T_8_Y[] = {
-    MBEDTLS_BYTES_TO_T_UINT_8(0xE7, 0x3E, 0x96, 0x22, 0x53, 0xE1, 0xE9, 0xBE),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xE0, 0x13, 0xBC, 0xA1, 0x16, 0xEC, 0x01, 0x1A),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x9A, 0x00, 0xC9, 0x7A, 0xC3, 0x73, 0xA5, 0x45),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xE1, 0xF4, 0x5E, 0xC1, 0x00, 0x00, 0x00, 0x00),
-};
-static const mbedtls_mpi_uint secp224r1_T_9_X[] = {
-    MBEDTLS_BYTES_TO_T_UINT_8(0xA8, 0x95, 0xD6, 0xD9, 0x32, 0x30, 0x2B, 0xD0),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x77, 0x42, 0x09, 0x05, 0x61, 0x2A, 0x7E, 0x82),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x73, 0x84, 0xA2, 0x05, 0x88, 0x64, 0x65, 0xF9),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x03, 0x2D, 0x90, 0xB3, 0x00, 0x00, 0x00, 0x00),
-};
-static const mbedtls_mpi_uint secp224r1_T_9_Y[] = {
-    MBEDTLS_BYTES_TO_T_UINT_8(0x0A, 0xE7, 0x2E, 0x85, 0x55, 0x80, 0x7C, 0x79),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x0F, 0xC1, 0xAC, 0x78, 0xB4, 0xAF, 0xFB, 0x6E),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xD3, 0xC3, 0x28, 0x8E, 0x79, 0x18, 0x1F, 0x58),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x34, 0x46, 0xCF, 0x49, 0x00, 0x00, 0x00, 0x00),
-};
-static const mbedtls_mpi_uint secp224r1_T_10_X[] = {
-    MBEDTLS_BYTES_TO_T_UINT_8(0x63, 0x5F, 0xA8, 0x6C, 0x46, 0x83, 0x43, 0xFA),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xFA, 0xA9, 0x93, 0x11, 0xB6, 0x07, 0x57, 0x74),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x77, 0x2A, 0x9D, 0x03, 0x89, 0x7E, 0xD7, 0x3C),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x7B, 0x8C, 0x62, 0xCF, 0x00, 0x00, 0x00, 0x00),
-};
-static const mbedtls_mpi_uint secp224r1_T_10_Y[] = {
-    MBEDTLS_BYTES_TO_T_UINT_8(0x44, 0x2C, 0x13, 0x59, 0xCC, 0xFA, 0x84, 0x9E),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x51, 0xB9, 0x48, 0xBC, 0x57, 0xC7, 0xB3, 0x7C),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xFC, 0x0A, 0x38, 0x24, 0x2E, 0x3A, 0x28, 0x25),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xBC, 0x0A, 0x43, 0xB8, 0x00, 0x00, 0x00, 0x00),
-};
-static const mbedtls_mpi_uint secp224r1_T_11_X[] = {
-    MBEDTLS_BYTES_TO_T_UINT_8(0x59, 0x25, 0xAB, 0xC1, 0xEE, 0x70, 0x3C, 0xE1),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xF3, 0xDB, 0x45, 0x1D, 0x4A, 0x80, 0x75, 0x35),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xE8, 0x1F, 0x4D, 0x2D, 0x9A, 0x05, 0xF4, 0xCB),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x6B, 0x10, 0xF0, 0x5A, 0x00, 0x00, 0x00, 0x00),
-};
-static const mbedtls_mpi_uint secp224r1_T_11_Y[] = {
-    MBEDTLS_BYTES_TO_T_UINT_8(0x35, 0x95, 0xE1, 0xDC, 0x15, 0x86, 0xC3, 0x7B),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xEC, 0xDC, 0x27, 0xD1, 0x56, 0xA1, 0x14, 0x0D),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x59, 0x0B, 0xD6, 0x77, 0x4E, 0x44, 0xA2, 0xF8),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x94, 0x42, 0x71, 0x1F, 0x00, 0x00, 0x00, 0x00),
-};
-static const mbedtls_mpi_uint secp224r1_T_12_X[] = {
-    MBEDTLS_BYTES_TO_T_UINT_8(0x30, 0x86, 0xB2, 0xB0, 0xC8, 0x2F, 0x7B, 0xFE),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x96, 0xEF, 0xCB, 0xDB, 0xBC, 0x9E, 0x3B, 0xC5),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x1B, 0x03, 0x86, 0xDD, 0x5B, 0xF5, 0x8D, 0x46),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x58, 0x95, 0x79, 0xD6, 0x00, 0x00, 0x00, 0x00),
-};
-static const mbedtls_mpi_uint secp224r1_T_12_Y[] = {
-    MBEDTLS_BYTES_TO_T_UINT_8(0x84, 0x32, 0x14, 0xDA, 0x9B, 0x4F, 0x07, 0x39),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xB5, 0x3E, 0xFB, 0x06, 0xEE, 0xA7, 0x40, 0x40),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x76, 0x1F, 0xDF, 0x71, 0x61, 0xFD, 0x8B, 0xBE),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x80, 0x8B, 0xAB, 0x8B, 0x00, 0x00, 0x00, 0x00),
-};
-static const mbedtls_mpi_uint secp224r1_T_13_X[] = {
-    MBEDTLS_BYTES_TO_T_UINT_8(0xC9, 0x34, 0xB3, 0xB4, 0xBC, 0x9F, 0xB0, 0x5E),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xE6, 0x58, 0x48, 0xA8, 0x77, 0xBB, 0x13, 0x2F),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x41, 0xC6, 0xF7, 0x34, 0xCC, 0x89, 0x21, 0x0A),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xCA, 0x33, 0xDD, 0x1F, 0x00, 0x00, 0x00, 0x00),
-};
-static const mbedtls_mpi_uint secp224r1_T_13_Y[] = {
-    MBEDTLS_BYTES_TO_T_UINT_8(0xCC, 0x81, 0xEF, 0xA4, 0xF2, 0x10, 0x0B, 0xCD),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x83, 0xF7, 0x6E, 0x72, 0x4A, 0xDF, 0xDD, 0xE8),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x67, 0x23, 0x0A, 0x53, 0x03, 0x16, 0x62, 0xD2),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x0B, 0x76, 0xFD, 0x3C, 0x00, 0x00, 0x00, 0x00),
-};
-static const mbedtls_mpi_uint secp224r1_T_14_X[] = {
-    MBEDTLS_BYTES_TO_T_UINT_8(0xCB, 0x14, 0xA1, 0xFA, 0xA0, 0x18, 0xBE, 0x07),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x03, 0x2A, 0xE1, 0xD7, 0xB0, 0x6C, 0xA0, 0xDE),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xD1, 0xC0, 0xB0, 0xC6, 0x63, 0x24, 0xCD, 0x4E),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x33, 0x38, 0x2C, 0xB1, 0x00, 0x00, 0x00, 0x00),
-};
-static const mbedtls_mpi_uint secp224r1_T_14_Y[] = {
-    MBEDTLS_BYTES_TO_T_UINT_8(0xEE, 0xCD, 0x7D, 0x20, 0x0C, 0xFE, 0xAC, 0xC3),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x09, 0x97, 0x9F, 0xA2, 0xB6, 0x45, 0xF7, 0x7B),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xCA, 0x99, 0xF3, 0xD2, 0x20, 0x02, 0xEB, 0x04),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x43, 0x18, 0x5B, 0x7B, 0x00, 0x00, 0x00, 0x00),
-};
-static const mbedtls_mpi_uint secp224r1_T_15_X[] = {
-    MBEDTLS_BYTES_TO_T_UINT_8(0x2B, 0xDD, 0x77, 0x91, 0x60, 0xEA, 0xFD, 0xD3),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x7D, 0xD3, 0xB5, 0xD6, 0x90, 0x17, 0x0E, 0x1A),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x00, 0xF4, 0x28, 0xC1, 0xF2, 0x53, 0xF6, 0x63),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x49, 0x58, 0xDC, 0x61, 0x00, 0x00, 0x00, 0x00),
-};
-static const mbedtls_mpi_uint secp224r1_T_15_Y[] = {
-    MBEDTLS_BYTES_TO_T_UINT_8(0xA8, 0x20, 0x01, 0xFB, 0xF1, 0xBD, 0x5F, 0x45),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xD0, 0x7F, 0x06, 0xDA, 0x11, 0xCB, 0xBA, 0xA6),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xA7, 0x41, 0x00, 0xA4, 0x1B, 0x30, 0x33, 0x79),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xF4, 0xFF, 0x27, 0xCA, 0x00, 0x00, 0x00, 0x00),
-};
-static const mbedtls_ecp_point secp224r1_T[16] = {
-    ECP_POINT_INIT_XY_Z1(secp224r1_T_0_X, secp224r1_T_0_Y),
-    ECP_POINT_INIT_XY_Z0(secp224r1_T_1_X, secp224r1_T_1_Y),
-    ECP_POINT_INIT_XY_Z0(secp224r1_T_2_X, secp224r1_T_2_Y),
-    ECP_POINT_INIT_XY_Z0(secp224r1_T_3_X, secp224r1_T_3_Y),
-    ECP_POINT_INIT_XY_Z0(secp224r1_T_4_X, secp224r1_T_4_Y),
-    ECP_POINT_INIT_XY_Z0(secp224r1_T_5_X, secp224r1_T_5_Y),
-    ECP_POINT_INIT_XY_Z0(secp224r1_T_6_X, secp224r1_T_6_Y),
-    ECP_POINT_INIT_XY_Z0(secp224r1_T_7_X, secp224r1_T_7_Y),
-    ECP_POINT_INIT_XY_Z0(secp224r1_T_8_X, secp224r1_T_8_Y),
-    ECP_POINT_INIT_XY_Z0(secp224r1_T_9_X, secp224r1_T_9_Y),
-    ECP_POINT_INIT_XY_Z0(secp224r1_T_10_X, secp224r1_T_10_Y),
-    ECP_POINT_INIT_XY_Z0(secp224r1_T_11_X, secp224r1_T_11_Y),
-    ECP_POINT_INIT_XY_Z0(secp224r1_T_12_X, secp224r1_T_12_Y),
-    ECP_POINT_INIT_XY_Z0(secp224r1_T_13_X, secp224r1_T_13_Y),
-    ECP_POINT_INIT_XY_Z0(secp224r1_T_14_X, secp224r1_T_14_Y),
-    ECP_POINT_INIT_XY_Z0(secp224r1_T_15_X, secp224r1_T_15_Y),
-};
-#else
-#define secp224r1_T NULL
-#endif
-#endif /* MBEDTLS_ECP_DP_SECP224R1_ENABLED */
-
 /*
  * Domain parameters for secp256r1
  */
@@ -2386,254 +2132,6 @@ static const mbedtls_ecp_point secp192k1_T[16] = {

 #endif /* MBEDTLS_ECP_DP_SECP192K1_ENABLED */

-#if defined(MBEDTLS_ECP_DP_SECP224K1_ENABLED)
-static const mbedtls_mpi_uint secp224k1_p[] = {
-    MBEDTLS_BYTES_TO_T_UINT_8(0x6D, 0xE5, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFF),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF),
-    MBEDTLS_BYTES_TO_T_UINT_4(0xFF, 0xFF, 0xFF, 0xFF),
-};
-static const mbedtls_mpi_uint secp224k1_a[] = {
-    MBEDTLS_BYTES_TO_T_UINT_2(0x00, 0x00),
-};
-static const mbedtls_mpi_uint secp224k1_b[] = {
-    MBEDTLS_BYTES_TO_T_UINT_2(0x05, 0x00),
-};
-static const mbedtls_mpi_uint secp224k1_gx[] = {
-    MBEDTLS_BYTES_TO_T_UINT_8(0x5C, 0xA4, 0xB7, 0xB6, 0x0E, 0x65, 0x7E, 0x0F),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xA9, 0x75, 0x70, 0xE4, 0xE9, 0x67, 0xA4, 0x69),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xA1, 0x28, 0xFC, 0x30, 0xDF, 0x99, 0xF0, 0x4D),
-    MBEDTLS_BYTES_TO_T_UINT_4(0x33, 0x5B, 0x45, 0xA1),
-};
-static const mbedtls_mpi_uint secp224k1_gy[] = {
-    MBEDTLS_BYTES_TO_T_UINT_8(0xA5, 0x61, 0x6D, 0x55, 0xDB, 0x4B, 0xCA, 0xE2),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x59, 0xBD, 0xB0, 0xC0, 0xF7, 0x19, 0xE3, 0xF7),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xD6, 0xFB, 0xCA, 0x82, 0x42, 0x34, 0xBA, 0x7F),
-    MBEDTLS_BYTES_TO_T_UINT_4(0xED, 0x9F, 0x08, 0x7E),
-};
-static const mbedtls_mpi_uint secp224k1_n[] = {
-    MBEDTLS_BYTES_TO_T_UINT_8(0xF7, 0xB1, 0x9F, 0x76, 0x71, 0xA9, 0xF0, 0xCA),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x84, 0x61, 0xEC, 0xD2, 0xE8, 0xDC, 0x01, 0x00),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00),
-};
-
-#if MBEDTLS_ECP_FIXED_POINT_OPTIM == 1
-static const mbedtls_mpi_uint secp224k1_T_0_X[] = {
-    MBEDTLS_BYTES_TO_T_UINT_8(0x5C, 0xA4, 0xB7, 0xB6, 0x0E, 0x65, 0x7E, 0x0F),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xA9, 0x75, 0x70, 0xE4, 0xE9, 0x67, 0xA4, 0x69),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xA1, 0x28, 0xFC, 0x30, 0xDF, 0x99, 0xF0, 0x4D),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x33, 0x5B, 0x45, 0xA1, 0x00, 0x00, 0x00, 0x00),
-};
-static const mbedtls_mpi_uint secp224k1_T_0_Y[] = {
-    MBEDTLS_BYTES_TO_T_UINT_8(0xA5, 0x61, 0x6D, 0x55, 0xDB, 0x4B, 0xCA, 0xE2),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x59, 0xBD, 0xB0, 0xC0, 0xF7, 0x19, 0xE3, 0xF7),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xD6, 0xFB, 0xCA, 0x82, 0x42, 0x34, 0xBA, 0x7F),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xED, 0x9F, 0x08, 0x7E, 0x00, 0x00, 0x00, 0x00),
-};
-static const mbedtls_mpi_uint secp224k1_T_1_X[] = {
-    MBEDTLS_BYTES_TO_T_UINT_8(0x99, 0x6C, 0x22, 0x22, 0x40, 0x89, 0xAE, 0x7A),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x2F, 0x92, 0xE1, 0x87, 0x56, 0x35, 0xAF, 0x9B),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x88, 0xAF, 0x08, 0x35, 0x27, 0xEA, 0x04, 0xED),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xF0, 0x53, 0xFD, 0xCF, 0x00, 0x00, 0x00, 0x00),
-};
-static const mbedtls_mpi_uint secp224k1_T_1_Y[] = {
-    MBEDTLS_BYTES_TO_T_UINT_8(0xC1, 0xD0, 0x9F, 0x8D, 0xF3, 0x63, 0x54, 0x30),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x39, 0xDB, 0x0F, 0x61, 0x54, 0x26, 0xD1, 0x98),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xF5, 0x21, 0xF7, 0x1B, 0xB5, 0x1D, 0xF6, 0x7E),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xFF, 0x05, 0xDA, 0x8F, 0x00, 0x00, 0x00, 0x00),
-};
-static const mbedtls_mpi_uint secp224k1_T_2_X[] = {
-    MBEDTLS_BYTES_TO_T_UINT_8(0x10, 0x26, 0x73, 0xBC, 0xE4, 0x29, 0x62, 0x56),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x37, 0x95, 0x17, 0x8B, 0xC3, 0x9B, 0xAC, 0xCC),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xB1, 0xDB, 0x77, 0xDF, 0xDD, 0x13, 0x04, 0x98),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x02, 0xFC, 0x22, 0x93, 0x00, 0x00, 0x00, 0x00),
-};
-static const mbedtls_mpi_uint secp224k1_T_2_Y[] = {
-    MBEDTLS_BYTES_TO_T_UINT_8(0xAC, 0x65, 0xF1, 0x5A, 0x37, 0xEF, 0x79, 0xAD),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x99, 0x01, 0x37, 0xAC, 0x9A, 0x5B, 0x51, 0x65),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xFA, 0x75, 0x13, 0xA9, 0x4A, 0xAD, 0xFE, 0x9B),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x32, 0x82, 0x6F, 0x66, 0x00, 0x00, 0x00, 0x00),
-};
-static const mbedtls_mpi_uint secp224k1_T_3_X[] = {
-    MBEDTLS_BYTES_TO_T_UINT_8(0x4D, 0x5E, 0xF0, 0x40, 0xC3, 0xA6, 0xE2, 0x1E),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x34, 0x9A, 0x6F, 0xCF, 0x11, 0x26, 0x66, 0x85),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x79, 0x73, 0xA8, 0xCF, 0x2B, 0x12, 0x36, 0x37),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xB9, 0xB3, 0x0A, 0x58, 0x00, 0x00, 0x00, 0x00),
-};
-static const mbedtls_mpi_uint secp224k1_T_3_Y[] = {
-    MBEDTLS_BYTES_TO_T_UINT_8(0xD3, 0x79, 0x00, 0x55, 0x04, 0x34, 0x90, 0x1A),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x0A, 0x54, 0x1C, 0xC2, 0x45, 0x0C, 0x1B, 0x23),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x86, 0x19, 0xAB, 0xA8, 0xFC, 0x73, 0xDC, 0xEE),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x72, 0xFB, 0x93, 0xCE, 0x00, 0x00, 0x00, 0x00),
-};
-static const mbedtls_mpi_uint secp224k1_T_4_X[] = {
-    MBEDTLS_BYTES_TO_T_UINT_8(0xF8, 0x75, 0xD0, 0x66, 0x95, 0x86, 0xCA, 0x66),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x17, 0xEA, 0x29, 0x16, 0x6A, 0x38, 0xDF, 0x41),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xD8, 0xA2, 0x36, 0x2F, 0xDC, 0xBB, 0x5E, 0xF7),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xD4, 0x89, 0x59, 0x49, 0x00, 0x00, 0x00, 0x00),
-};
-static const mbedtls_mpi_uint secp224k1_T_4_Y[] = {
-    MBEDTLS_BYTES_TO_T_UINT_8(0xCA, 0xA3, 0x99, 0x9D, 0xB8, 0x77, 0x9D, 0x1D),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x0A, 0x93, 0x43, 0x47, 0xC6, 0x5C, 0xF9, 0xFD),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xAA, 0x00, 0x79, 0x42, 0x64, 0xB8, 0x25, 0x3E),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x29, 0x54, 0xB4, 0x33, 0x00, 0x00, 0x00, 0x00),
-};
-static const mbedtls_mpi_uint secp224k1_T_5_X[] = {
-    MBEDTLS_BYTES_TO_T_UINT_8(0xD9, 0x0C, 0x42, 0x90, 0x83, 0x0B, 0x31, 0x5F),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x54, 0x2E, 0xAE, 0xC8, 0xC7, 0x5F, 0xD2, 0x70),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xA9, 0xBC, 0xAD, 0x41, 0xE7, 0x32, 0x3A, 0x81),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x8A, 0x97, 0x52, 0x83, 0x00, 0x00, 0x00, 0x00),
-};
-static const mbedtls_mpi_uint secp224k1_T_5_Y[] = {
-    MBEDTLS_BYTES_TO_T_UINT_8(0x1A, 0x13, 0x7A, 0xBD, 0xAE, 0x94, 0x60, 0xFD),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x92, 0x9B, 0x95, 0xB4, 0x6E, 0x68, 0xB2, 0x1F),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x15, 0x49, 0xBE, 0x51, 0xFE, 0x66, 0x15, 0x74),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xE6, 0x37, 0xE4, 0xFE, 0x00, 0x00, 0x00, 0x00),
-};
-static const mbedtls_mpi_uint secp224k1_T_6_X[] = {
-    MBEDTLS_BYTES_TO_T_UINT_8(0xF6, 0x9B, 0xEE, 0x64, 0xC9, 0x1B, 0xBD, 0x77),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xDA, 0x5F, 0x34, 0xA9, 0x0B, 0xB7, 0x25, 0x52),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x90, 0x13, 0xB1, 0x38, 0xFB, 0x9D, 0x78, 0xED),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x39, 0xE7, 0x1B, 0xFA, 0x00, 0x00, 0x00, 0x00),
-};
-static const mbedtls_mpi_uint secp224k1_T_6_Y[] = {
-    MBEDTLS_BYTES_TO_T_UINT_8(0xFB, 0xB3, 0xB7, 0x44, 0x92, 0x6B, 0x00, 0x82),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x97, 0x82, 0x44, 0x3E, 0x18, 0x1A, 0x58, 0x6A),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x15, 0xF8, 0xC0, 0xE4, 0xEE, 0xC1, 0xBF, 0x44),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x7E, 0x32, 0x27, 0xB2, 0x00, 0x00, 0x00, 0x00),
-};
-static const mbedtls_mpi_uint secp224k1_T_7_X[] = {
-    MBEDTLS_BYTES_TO_T_UINT_8(0xF4, 0x9A, 0x42, 0x62, 0x8B, 0x26, 0x54, 0x21),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x24, 0x85, 0x74, 0xA0, 0x79, 0xA8, 0xEE, 0xBE),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x80, 0x36, 0x60, 0xB3, 0x28, 0x4D, 0x55, 0xBE),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x32, 0x27, 0x82, 0x29, 0x00, 0x00, 0x00, 0x00),
-};
-static const mbedtls_mpi_uint secp224k1_T_7_Y[] = {
-    MBEDTLS_BYTES_TO_T_UINT_8(0x0D, 0xFC, 0x73, 0x77, 0xAF, 0x5C, 0xAC, 0x78),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xCC, 0xED, 0xE5, 0xF6, 0x1D, 0xA8, 0x67, 0x43),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xF8, 0xDE, 0x33, 0x1C, 0xF1, 0x80, 0x73, 0xF8),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x2A, 0xE2, 0xDE, 0x3C, 0x00, 0x00, 0x00, 0x00),
-};
-static const mbedtls_mpi_uint secp224k1_T_8_X[] = {
-    MBEDTLS_BYTES_TO_T_UINT_8(0x57, 0x3E, 0x6B, 0xFE, 0xF0, 0x04, 0x28, 0x01),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xBB, 0xB2, 0x14, 0x9D, 0x18, 0x11, 0x7D, 0x9D),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x96, 0xC4, 0xD6, 0x2E, 0x6E, 0x57, 0x4D, 0xE1),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xEA, 0x55, 0x1B, 0xDE, 0x00, 0x00, 0x00, 0x00),
-};
-static const mbedtls_mpi_uint secp224k1_T_8_Y[] = {
-    MBEDTLS_BYTES_TO_T_UINT_8(0x07, 0xF7, 0x17, 0xBC, 0x45, 0xAB, 0x16, 0xAB),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xCD, 0xB0, 0xEF, 0x61, 0xE3, 0x20, 0x7C, 0xF8),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x6C, 0x85, 0x41, 0x4D, 0xF1, 0x7E, 0x4D, 0x41),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x99, 0xC2, 0x9B, 0x5E, 0x00, 0x00, 0x00, 0x00),
-};
-static const mbedtls_mpi_uint secp224k1_T_9_X[] = {
-    MBEDTLS_BYTES_TO_T_UINT_8(0x70, 0x2E, 0x49, 0x3D, 0x3E, 0x4B, 0xD3, 0x32),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xC8, 0x2B, 0x9D, 0xD5, 0x27, 0xFA, 0xCA, 0xE0),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xB3, 0xB3, 0x6A, 0xE0, 0x79, 0x14, 0x28, 0x0F),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x6C, 0x1E, 0xDC, 0xF5, 0x00, 0x00, 0x00, 0x00),
-};
-static const mbedtls_mpi_uint secp224k1_T_9_Y[] = {
-    MBEDTLS_BYTES_TO_T_UINT_8(0xCA, 0x44, 0x56, 0xCD, 0xFC, 0x9F, 0x09, 0xFF),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x5C, 0x8C, 0x59, 0xA4, 0x64, 0x2A, 0x3A, 0xED),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x40, 0xA0, 0xB5, 0x86, 0x4E, 0x69, 0xDA, 0x06),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x08, 0x8B, 0x11, 0x38, 0x00, 0x00, 0x00, 0x00),
-};
-static const mbedtls_mpi_uint secp224k1_T_10_X[] = {
-    MBEDTLS_BYTES_TO_T_UINT_8(0xA0, 0x17, 0x16, 0x12, 0x17, 0xDC, 0x00, 0x7E),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xE7, 0x76, 0x24, 0x6C, 0x97, 0x2C, 0xB5, 0xF9),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x82, 0x71, 0xE3, 0xB0, 0xBB, 0x4E, 0x50, 0x52),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x6E, 0x48, 0x26, 0xD5, 0x00, 0x00, 0x00, 0x00),
-};
-static const mbedtls_mpi_uint secp224k1_T_10_Y[] = {
-    MBEDTLS_BYTES_TO_T_UINT_8(0x06, 0x5F, 0x28, 0xF6, 0x01, 0x5A, 0x60, 0x41),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xAE, 0x95, 0xFE, 0xD0, 0xAD, 0x15, 0xD4, 0xD9),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xAD, 0x5B, 0x7A, 0xFD, 0x80, 0xF7, 0x9F, 0x64),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x32, 0xBC, 0x1B, 0xDF, 0x00, 0x00, 0x00, 0x00),
-};
-static const mbedtls_mpi_uint secp224k1_T_11_X[] = {
-    MBEDTLS_BYTES_TO_T_UINT_8(0xBB, 0xE6, 0xDF, 0x14, 0x29, 0xF4, 0xD4, 0x14),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xE5, 0x12, 0xDD, 0xEC, 0x5B, 0x8A, 0x59, 0xE5),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x26, 0x92, 0x3E, 0x35, 0x08, 0xE9, 0xCF, 0x0E),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xE0, 0x35, 0x29, 0x97, 0x00, 0x00, 0x00, 0x00),
-};
-static const mbedtls_mpi_uint secp224k1_T_11_Y[] = {
-    MBEDTLS_BYTES_TO_T_UINT_8(0x11, 0xDB, 0xD6, 0x6A, 0xC5, 0x43, 0xA4, 0xA1),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x61, 0x33, 0x50, 0x61, 0x70, 0xA1, 0xE9, 0xCE),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x15, 0x15, 0x6E, 0x5F, 0x01, 0x0C, 0x8C, 0xFA),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x85, 0xA1, 0x9A, 0x9D, 0x00, 0x00, 0x00, 0x00),
-};
-static const mbedtls_mpi_uint secp224k1_T_12_X[] = {
-    MBEDTLS_BYTES_TO_T_UINT_8(0x6E, 0xC6, 0xF7, 0xE2, 0x4A, 0xCD, 0x9B, 0x61),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x34, 0x4D, 0x5A, 0xB8, 0xE2, 0x6D, 0xA6, 0x50),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x32, 0x3F, 0xB6, 0x17, 0xE3, 0x2C, 0x6F, 0x65),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x1E, 0xA4, 0x59, 0x51, 0x00, 0x00, 0x00, 0x00),
-};
-static const mbedtls_mpi_uint secp224k1_T_12_Y[] = {
-    MBEDTLS_BYTES_TO_T_UINT_8(0x77, 0x4F, 0x7C, 0x49, 0xCD, 0x6E, 0xEB, 0x3C),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x05, 0xC9, 0x1F, 0xB7, 0x4D, 0x98, 0xC7, 0x67),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x4C, 0xFD, 0x98, 0x20, 0x95, 0xBB, 0x20, 0x3A),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xE0, 0xF2, 0x73, 0x92, 0x00, 0x00, 0x00, 0x00),
-};
-static const mbedtls_mpi_uint secp224k1_T_13_X[] = {
-    MBEDTLS_BYTES_TO_T_UINT_8(0xE2, 0xEF, 0xFB, 0x30, 0xFA, 0x12, 0x1A, 0xB0),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x7A, 0x4C, 0x24, 0xB4, 0x5B, 0xC9, 0x4C, 0x0F),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x7A, 0xDD, 0x5E, 0x84, 0x95, 0x4D, 0x26, 0xED),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xE3, 0xFA, 0xF9, 0x3A, 0x00, 0x00, 0x00, 0x00),
-};
-static const mbedtls_mpi_uint secp224k1_T_13_Y[] = {
-    MBEDTLS_BYTES_TO_T_UINT_8(0x6A, 0xA3, 0x2E, 0x7A, 0xDC, 0xA7, 0x53, 0xA9),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x7C, 0x9F, 0x81, 0x84, 0xB2, 0x0D, 0xFE, 0x31),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x61, 0x89, 0x1B, 0x77, 0x0C, 0x89, 0x71, 0xEC),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xFA, 0xFF, 0x7F, 0xB2, 0x00, 0x00, 0x00, 0x00),
-};
-static const mbedtls_mpi_uint secp224k1_T_14_X[] = {
-    MBEDTLS_BYTES_TO_T_UINT_8(0x28, 0xE9, 0x2C, 0x79, 0xA6, 0x3C, 0xAD, 0x93),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xD6, 0xE0, 0x23, 0x02, 0x86, 0x0F, 0x77, 0x2A),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x13, 0x93, 0x6D, 0xE9, 0xF9, 0x3C, 0xBE, 0xB9),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x04, 0xE7, 0x24, 0x92, 0x00, 0x00, 0x00, 0x00),
-};
-static const mbedtls_mpi_uint secp224k1_T_14_Y[] = {
-    MBEDTLS_BYTES_TO_T_UINT_8(0xBB, 0x3C, 0x5B, 0x4B, 0x1B, 0x25, 0x37, 0xD6),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xC9, 0xE8, 0x38, 0x1B, 0xA1, 0x5A, 0x2E, 0x68),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x03, 0x19, 0xFD, 0xF4, 0x78, 0x01, 0x6B, 0x44),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x0F, 0x69, 0x37, 0x4F, 0x00, 0x00, 0x00, 0x00),
-};
-static const mbedtls_mpi_uint secp224k1_T_15_X[] = {
-    MBEDTLS_BYTES_TO_T_UINT_8(0x1A, 0xE2, 0xBF, 0xD3, 0xEC, 0x95, 0x9C, 0x03),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xC2, 0x7B, 0xFC, 0xD5, 0xD3, 0x25, 0x5E, 0x0F),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x39, 0x55, 0x09, 0xA2, 0x58, 0x6A, 0xC9, 0xFF),
-    MBEDTLS_BYTES_TO_T_UINT_8(0x80, 0xCC, 0x3B, 0xD9, 0x00, 0x00, 0x00, 0x00),
-};
-static const mbedtls_mpi_uint secp224k1_T_15_Y[] = {
-    MBEDTLS_BYTES_TO_T_UINT_8(0x8F, 0x08, 0x65, 0x5E, 0xCB, 0xAB, 0x48, 0xC8),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xEE, 0x79, 0x8B, 0xC0, 0x11, 0xC0, 0x69, 0x38),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xE6, 0xE8, 0x8C, 0x4C, 0xC5, 0x28, 0xE4, 0xAE),
-    MBEDTLS_BYTES_TO_T_UINT_8(0xA5, 0x1F, 0x34, 0x5C, 0x00, 0x00, 0x00, 0x00),
-};
-static const mbedtls_ecp_point secp224k1_T[16] = {
-    ECP_POINT_INIT_XY_Z1(secp224k1_T_0_X, secp224k1_T_0_Y),
-    ECP_POINT_INIT_XY_Z0(secp224k1_T_1_X, secp224k1_T_1_Y),
-    ECP_POINT_INIT_XY_Z0(secp224k1_T_2_X, secp224k1_T_2_Y),
-    ECP_POINT_INIT_XY_Z0(secp224k1_T_3_X, secp224k1_T_3_Y),
-    ECP_POINT_INIT_XY_Z0(secp224k1_T_4_X, secp224k1_T_4_Y),
-    ECP_POINT_INIT_XY_Z0(secp224k1_T_5_X, secp224k1_T_5_Y),
-    ECP_POINT_INIT_XY_Z0(secp224k1_T_6_X, secp224k1_T_6_Y),
-    ECP_POINT_INIT_XY_Z0(secp224k1_T_7_X, secp224k1_T_7_Y),
-    ECP_POINT_INIT_XY_Z0(secp224k1_T_8_X, secp224k1_T_8_Y),
-    ECP_POINT_INIT_XY_Z0(secp224k1_T_9_X, secp224k1_T_9_Y),
-    ECP_POINT_INIT_XY_Z0(secp224k1_T_10_X, secp224k1_T_10_Y),
-    ECP_POINT_INIT_XY_Z0(secp224k1_T_11_X, secp224k1_T_11_Y),
-    ECP_POINT_INIT_XY_Z0(secp224k1_T_12_X, secp224k1_T_12_Y),
-    ECP_POINT_INIT_XY_Z0(secp224k1_T_13_X, secp224k1_T_13_Y),
-    ECP_POINT_INIT_XY_Z0(secp224k1_T_14_X, secp224k1_T_14_Y),
-    ECP_POINT_INIT_XY_Z0(secp224k1_T_15_X, secp224k1_T_15_Y),
-};
-#else
-#define secp224k1_T NULL
-#endif
-#endif /* MBEDTLS_ECP_DP_SECP224K1_ENABLED */
-
 #if defined(MBEDTLS_ECP_DP_SECP256K1_ENABLED)
 static const mbedtls_mpi_uint secp256k1_p[] = {
     MBEDTLS_BYTES_TO_T_UINT_8(0x2F, 0xFC, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFF),
@@ -4563,11 +4061,6 @@ static int ecp_mod_p192(mbedtls_mpi *);
 MBEDTLS_STATIC_TESTABLE
 int mbedtls_ecp_mod_p192_raw(mbedtls_mpi_uint *Np, size_t Nn);
 #endif
-#if defined(MBEDTLS_ECP_DP_SECP224R1_ENABLED)
-static int ecp_mod_p224(mbedtls_mpi *);
-MBEDTLS_STATIC_TESTABLE
-int mbedtls_ecp_mod_p224_raw(mbedtls_mpi_uint *X, size_t X_limbs);
-#endif
 #if defined(MBEDTLS_ECP_DP_SECP256R1_ENABLED)
 static int ecp_mod_p256(mbedtls_mpi *);
 MBEDTLS_STATIC_TESTABLE
@@ -4605,11 +4098,6 @@ static int ecp_mod_p192k1(mbedtls_mpi *);
 MBEDTLS_STATIC_TESTABLE
 int mbedtls_ecp_mod_p192k1_raw(mbedtls_mpi_uint *X, size_t X_limbs);
 #endif
-#if defined(MBEDTLS_ECP_DP_SECP224K1_ENABLED)
-static int ecp_mod_p224k1(mbedtls_mpi *);
-MBEDTLS_STATIC_TESTABLE
-int mbedtls_ecp_mod_p224k1_raw(mbedtls_mpi_uint *X, size_t X_limbs);
-#endif
 #if defined(MBEDTLS_ECP_DP_SECP256K1_ENABLED)
 static int ecp_mod_p256k1(mbedtls_mpi *);
 MBEDTLS_STATIC_TESTABLE
@@ -4771,12 +4259,6 @@ int mbedtls_ecp_group_load(mbedtls_ecp_group *grp, mbedtls_ecp_group_id id)
             return LOAD_GROUP(secp192r1);
 #endif /* MBEDTLS_ECP_DP_SECP192R1_ENABLED */

-#if defined(MBEDTLS_ECP_DP_SECP224R1_ENABLED)
-        case MBEDTLS_ECP_DP_SECP224R1:
-            NIST_MODP(p224);
-            return LOAD_GROUP(secp224r1);
-#endif /* MBEDTLS_ECP_DP_SECP224R1_ENABLED */
-
 #if defined(MBEDTLS_ECP_DP_SECP256R1_ENABLED)
         case MBEDTLS_ECP_DP_SECP256R1:
             NIST_MODP(p256);
@@ -4801,12 +4283,6 @@ int mbedtls_ecp_group_load(mbedtls_ecp_group *grp, mbedtls_ecp_group_id id)
             return LOAD_GROUP_A(secp192k1);
 #endif /* MBEDTLS_ECP_DP_SECP192K1_ENABLED */

-#if defined(MBEDTLS_ECP_DP_SECP224K1_ENABLED)
-        case MBEDTLS_ECP_DP_SECP224K1:
-            grp->modp = ecp_mod_p224k1;
-            return LOAD_GROUP_A(secp224k1);
-#endif /* MBEDTLS_ECP_DP_SECP224K1_ENABLED */
-
 #if defined(MBEDTLS_ECP_DP_SECP256K1_ENABLED)
         case MBEDTLS_ECP_DP_SECP256K1:
             grp->modp = ecp_mod_p256k1;
@@ -4963,8 +4439,7 @@ int mbedtls_ecp_mod_p192_raw(mbedtls_mpi_uint *Np, size_t Nn)
 #undef ADD_LAST
 #endif /* MBEDTLS_ECP_DP_SECP192R1_ENABLED */

-#if defined(MBEDTLS_ECP_DP_SECP224R1_ENABLED) ||   \
-    defined(MBEDTLS_ECP_DP_SECP256R1_ENABLED) ||   \
+#if defined(MBEDTLS_ECP_DP_SECP256R1_ENABLED) ||   \
     defined(MBEDTLS_ECP_DP_SECP384R1_ENABLED)

 /*
@@ -5058,59 +4533,6 @@ static inline int8_t extract_carry(int64_t cur)
     return MBEDTLS_ERR_ECP_BAD_INPUT_DATA;              \
     while (i < MAX32) { STORE0; i++; }

-#if defined(MBEDTLS_ECP_DP_SECP224R1_ENABLED)
-
-/*
- * Fast quasi-reduction modulo p224 (FIPS 186-3 D.2.2)
- */
-static int ecp_mod_p224(mbedtls_mpi *N)
-{
-    int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
-    size_t expected_width = BITS_TO_LIMBS(224) * 2;
-    MBEDTLS_MPI_CHK(mbedtls_mpi_grow(N, expected_width));
-    ret = mbedtls_ecp_mod_p224_raw(N->p, expected_width);
-cleanup:
-    return ret;
-}
-
-MBEDTLS_STATIC_TESTABLE
-int mbedtls_ecp_mod_p224_raw(mbedtls_mpi_uint *X, size_t X_limbs)
-{
-    if (X_limbs != BITS_TO_LIMBS(224) * 2) {
-        return MBEDTLS_ERR_ECP_BAD_INPUT_DATA;
-    }
-
-    INIT(224);
-
-    SUB(7);  SUB(11);           NEXT;   // A0 += -A7  - A11
-    SUB(8);  SUB(12);           NEXT;   // A1 += -A8  - A12
-    SUB(9);  SUB(13);           NEXT;   // A2 += -A9  - A13
-    SUB(10); ADD(7);  ADD(11);  NEXT;   // A3 += -A10 + A7 + A11
-    SUB(11); ADD(8);  ADD(12);  NEXT;   // A4 += -A11 + A8 + A12
-    SUB(12); ADD(9);  ADD(13);  NEXT;   // A5 += -A12 + A9 + A13
-    SUB(13); ADD(10);                   // A6 += -A13 + A10
-
-    RESET;
-
-    /* Use 2^224 = P + 2^96 - 1 to modulo reduce the final carry */
-    SUB_LAST; NEXT;                     // A0 -= last_c
-    ;         NEXT;                     // A1
-    ;         NEXT;                     // A2
-    ADD_LAST; NEXT;                     // A3 += last_c
-    ;         NEXT;                     // A4
-    ;         NEXT;                     // A5
-                                        // A6
-
-    /* The carry reduction cannot generate a carry
-     * (see commit 73e8553 for details)*/
-
-    LAST;
-
-    return 0;
-}
-
-#endif /* MBEDTLS_ECP_DP_SECP224R1_ENABLED */
-
 #if defined(MBEDTLS_ECP_DP_SECP256R1_ENABLED)

 /*
@@ -5304,8 +4726,7 @@ int mbedtls_ecp_mod_p384_raw(mbedtls_mpi_uint *X, size_t X_limbs)
 #undef RESET
 #undef LAST

-#endif /* MBEDTLS_ECP_DP_SECP224R1_ENABLED ||
-          MBEDTLS_ECP_DP_SECP256R1_ENABLED ||
+#endif /* MBEDTLS_ECP_DP_SECP256R1_ENABLED ||
           MBEDTLS_ECP_DP_SECP384R1_ENABLED */

 #if defined(MBEDTLS_ECP_DP_SECP521R1_ENABLED)
@@ -5616,7 +5037,6 @@ cleanup:
 #endif /* MBEDTLS_ECP_DP_CURVE448_ENABLED */

 #if defined(MBEDTLS_ECP_DP_SECP192K1_ENABLED) ||   \
-    defined(MBEDTLS_ECP_DP_SECP224K1_ENABLED) ||   \
     defined(MBEDTLS_ECP_DP_SECP256K1_ENABLED)

 /*
@@ -5706,7 +5126,6 @@ cleanup:
 }

 #endif /* MBEDTLS_ECP_DP_SECP192K1_ENABLED) ||
-          MBEDTLS_ECP_DP_SECP224K1_ENABLED) ||
           MBEDTLS_ECP_DP_SECP256K1_ENABLED) */

 #if defined(MBEDTLS_ECP_DP_SECP192K1_ENABLED)
@@ -5743,40 +5162,6 @@ int mbedtls_ecp_mod_p192k1_raw(mbedtls_mpi_uint *X, size_t X_limbs)

 #endif /* MBEDTLS_ECP_DP_SECP192K1_ENABLED */

-#if defined(MBEDTLS_ECP_DP_SECP224K1_ENABLED)
-
-/*
- * Fast quasi-reduction modulo p224k1 = 2^224 - R,
- * with R = 2^32 + 2^12 + 2^11 + 2^9 + 2^7 + 2^4 + 2 + 1 = 0x0100001A93
- */
-static int ecp_mod_p224k1(mbedtls_mpi *N)
-{
-    int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
-    size_t expected_width = BITS_TO_LIMBS(224) * 2;
-    MBEDTLS_MPI_CHK(mbedtls_mpi_grow(N, expected_width));
-    ret = mbedtls_ecp_mod_p224k1_raw(N->p, expected_width);
-
-cleanup:
-    return ret;
-}
-
-MBEDTLS_STATIC_TESTABLE
-int mbedtls_ecp_mod_p224k1_raw(mbedtls_mpi_uint *X, size_t X_limbs)
-{
-    static mbedtls_mpi_uint Rp[] = {
-        MBEDTLS_BYTES_TO_T_UINT_8(0x93, 0x1A, 0x00, 0x00,
-                                  0x01, 0x00, 0x00, 0x00)
-    };
-
-    if (X_limbs !=  BITS_TO_LIMBS(224) * 2) {
-        return MBEDTLS_ERR_ECP_BAD_INPUT_DATA;
-    }
-
-    return ecp_mod_koblitz(X, X_limbs, Rp, 224);
-}
-
-#endif /* MBEDTLS_ECP_DP_SECP224K1_ENABLED */
-
 #if defined(MBEDTLS_ECP_DP_SECP256K1_ENABLED)

 /*
@@ -5842,21 +5227,6 @@ int mbedtls_ecp_modulus_setup(mbedtls_mpi_mod_modulus *N,
             break;
 #endif

-#if defined(MBEDTLS_ECP_DP_SECP224R1_ENABLED)
-        case MBEDTLS_ECP_DP_SECP224R1:
-            if (ctype == (mbedtls_ecp_modulus_type) MBEDTLS_ECP_MOD_COORDINATE) {
-#if defined(MBEDTLS_ECP_NIST_OPTIM)
-                modp = &mbedtls_ecp_mod_p224_raw;
-#endif
-                p = (mbedtls_mpi_uint *) secp224r1_p;
-                p_limbs = CHARS_TO_LIMBS(sizeof(secp224r1_p));
-            } else {
-                p = (mbedtls_mpi_uint *) secp224r1_n;
-                p_limbs = CHARS_TO_LIMBS(sizeof(secp224r1_n));
-            }
-            break;
-#endif
-
 #if defined(MBEDTLS_ECP_DP_SECP256R1_ENABLED)
         case MBEDTLS_ECP_DP_SECP256R1:
             if (ctype == (mbedtls_ecp_modulus_type) MBEDTLS_ECP_MOD_COORDINATE) {
@@ -5964,19 +5334,6 @@ int mbedtls_ecp_modulus_setup(mbedtls_mpi_mod_modulus *N,
             break;
 #endif

-#if defined(MBEDTLS_ECP_DP_SECP224K1_ENABLED)
-        case MBEDTLS_ECP_DP_SECP224K1:
-            if (ctype == (mbedtls_ecp_modulus_type) MBEDTLS_ECP_MOD_COORDINATE) {
-                modp = &mbedtls_ecp_mod_p224k1_raw;
-                p = (mbedtls_mpi_uint *) secp224k1_p;
-                p_limbs = CHARS_TO_LIMBS(sizeof(secp224k1_p));
-            } else {
-                p = (mbedtls_mpi_uint *) secp224k1_n;
-                p_limbs = CHARS_TO_LIMBS(sizeof(secp224k1_n));
-            }
-            break;
-#endif
-
 #if defined(MBEDTLS_ECP_DP_SECP256K1_ENABLED)
         case MBEDTLS_ECP_DP_SECP256K1:
             if (ctype == (mbedtls_ecp_modulus_type) MBEDTLS_ECP_MOD_COORDINATE) {
@@ -6031,6 +5388,5 @@ mbedtls_ecp_variant mbedtls_ecp_get_variant(void)

 #endif /* MBEDTLS_TEST_HOOKS */

-#endif /* !MBEDTLS_ECP_ALT */
 #endif /* MBEDTLS_ECP_LIGHT */
 #endif /* MBEDTLS_ECP_WITH_MPI_UINT */
diff --git a/deps/LIEF/third-party/mbedtls/library/ecp_invasive.h b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/ecp_invasive.h
similarity index 83%
rename from deps/LIEF/third-party/mbedtls/library/ecp_invasive.h
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/ecp_invasive.h
index ff9f9ecf1d1..e4abcf74d53 100644
--- a/deps/LIEF/third-party/mbedtls/library/ecp_invasive.h
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/ecp_invasive.h
@@ -14,10 +14,10 @@
 #ifndef MBEDTLS_ECP_INVASIVE_H
 #define MBEDTLS_ECP_INVASIVE_H

-#include "common.h"
-#include "mbedtls/bignum.h"
+#include "tf_psa_crypto_common.h"
+#include "mbedtls/private/bignum.h"
 #include "bignum_mod.h"
-#include "mbedtls/ecp.h"
+#include "mbedtls/private/ecp.h"

 /*
  * Curve modulus types
@@ -91,28 +91,6 @@ int mbedtls_ecp_mod_p192_raw(mbedtls_mpi_uint *Np, size_t Nn);

 #endif /* MBEDTLS_ECP_DP_SECP192R1_ENABLED */

-#if defined(MBEDTLS_ECP_DP_SECP224R1_ENABLED)
-
-/** Fast quasi-reduction modulo p224 (FIPS 186-3 D.2.2)
- *
- * \param[in,out]   X       The address of the MPI to be converted.
- *                          Must have exact limb size that stores a 448-bit MPI
- *                          (double the bitlength of the modulus).
- *                          Upon return holds the reduced value which is
- *                          in range `0 <= X < 2 * N` (where N is the modulus).
- *                          The bitlength of the reduced value is the same as
- *                          that of the modulus (224 bits).
- * \param[in]       X_limbs The length of \p X in limbs.
- *
- * \return          \c 0 on success.
- * \return          #MBEDTLS_ERR_ECP_BAD_INPUT_DATA if \p X_limbs is not the
- *                  limb size that sores a 448-bit MPI.
- */
-MBEDTLS_STATIC_TESTABLE
-int mbedtls_ecp_mod_p224_raw(mbedtls_mpi_uint *X, size_t X_limbs);
-
-#endif /* MBEDTLS_ECP_DP_SECP224R1_ENABLED */
-
 #if defined(MBEDTLS_ECP_DP_SECP256R1_ENABLED)

 /** Fast quasi-reduction modulo p256 (FIPS 186-3 D.2.3)
@@ -203,30 +181,6 @@ int mbedtls_ecp_mod_p192k1_raw(mbedtls_mpi_uint *X, size_t X_limbs);

 #endif /* MBEDTLS_ECP_DP_SECP192K1_ENABLED */

-#if defined(MBEDTLS_ECP_DP_SECP224K1_ENABLED)
-
-/** Fast quasi-reduction modulo p224k1 = 2^224 - R,
- * with R = 2^32 + 2^12 + 2^11 + 2^9 + 2^7 + 2^4 + 2 + 1 = 0x0100001A93
- *
- * \param[in,out]   X       The address of the MPI to be converted.
- *                          Must have exact limb size that stores a 448-bit MPI
- *                          (double the bitlength of the modulus).
- *                          Upon return holds the reduced value which is
- *                          in range `0 <= X < 2 * N` (where N is the modulus).
- *                          The bitlength of the reduced value is the same as
- *                          that of the modulus (224 bits).
- * \param[in]       X_limbs The length of \p X in limbs.
- *
- * \return          \c 0 on success.
- * \return          #MBEDTLS_ERR_ECP_BAD_INPUT_DATA if \p X does not have
- *                  twice as many limbs as the modulus.
- * \return          #MBEDTLS_ERR_ECP_ALLOC_FAILED if memory allocation failed.
- */
-MBEDTLS_STATIC_TESTABLE
-int mbedtls_ecp_mod_p224k1_raw(mbedtls_mpi_uint *X, size_t X_limbs);
-
-#endif /* MBEDTLS_ECP_DP_SECP224K1_ENABLED */
-
 #if defined(MBEDTLS_ECP_DP_SECP256K1_ENABLED)

 /** Fast quasi-reduction modulo p256k1 = 2^256 - R,
diff --git a/deps/LIEF/third-party/mbedtls/library/entropy.c b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/entropy.c
similarity index 94%
rename from deps/LIEF/third-party/mbedtls/library/entropy.c
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/entropy.c
index 7dcf067a526..d69837186d3 100644
--- a/deps/LIEF/third-party/mbedtls/library/entropy.c
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/entropy.c
@@ -5,14 +5,14 @@
  *  SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
  */

-#include "common.h"
+#include "tf_psa_crypto_common.h"

 #if defined(MBEDTLS_ENTROPY_C)

-#include "mbedtls/entropy.h"
+#include "mbedtls/private/entropy.h"
 #include "entropy_poll.h"
 #include "mbedtls/platform_util.h"
-#include "mbedtls/error.h"
+#include "mbedtls/private/error_common.h"

 #include <string.h>

@@ -36,18 +36,16 @@ void mbedtls_entropy_init(mbedtls_entropy_context *ctx)
     ctx->accumulator_started = 0;
     mbedtls_md_init(&ctx->accumulator);

-    /* Reminder: Update ENTROPY_HAVE_STRONG in the test files
-     *           when adding more strong entropy sources here. */
+    /* Note: the list of sources here must remain consistent with the
+     * definitions of MBEDTLS_ENTROPY_TRUE_SOURCES in
+     * "psa/crypto_adjust_config_derived.h". */

-#if !defined(MBEDTLS_NO_DEFAULT_ENTROPY_SOURCES)
-#if !defined(MBEDTLS_NO_PLATFORM_ENTROPY)
-    mbedtls_entropy_add_source(ctx, mbedtls_platform_entropy_poll, NULL,
-                               MBEDTLS_ENTROPY_MIN_PLATFORM,
-                               MBEDTLS_ENTROPY_SOURCE_STRONG);
-#endif
-#if defined(MBEDTLS_ENTROPY_HARDWARE_ALT)
-    mbedtls_entropy_add_source(ctx, mbedtls_hardware_poll, NULL,
-                               MBEDTLS_ENTROPY_MIN_HARDWARE,
+    /* In principle, we could support both a built-in source and a custom
+     * source. However, it isn't a common need. So for now the two
+     * callback functions have the same name and there can only be one. */
+#if defined(MBEDTLS_PSA_BUILTIN_GET_ENTROPY) || defined(MBEDTLS_PSA_DRIVER_GET_ENTROPY)
+    mbedtls_entropy_add_source(ctx, mbedtls_entropy_poll_platform, NULL,
+                               MBEDTLS_ENTROPY_POLL_PLATFORM_MIN,
                                MBEDTLS_ENTROPY_SOURCE_STRONG);
 #endif
 #if defined(MBEDTLS_ENTROPY_NV_SEED)
@@ -56,7 +54,6 @@ void mbedtls_entropy_init(mbedtls_entropy_context *ctx)
                                MBEDTLS_ENTROPY_SOURCE_STRONG);
     ctx->initial_entropy_run = 0;
 #endif
-#endif /* MBEDTLS_NO_DEFAULT_ENTROPY_SOURCES */
 }

 void mbedtls_entropy_free(mbedtls_entropy_context *ctx)
@@ -494,7 +491,7 @@ static int entropy_dummy_source(void *data, unsigned char *output,
     return 0;
 }

-#if defined(MBEDTLS_ENTROPY_HARDWARE_ALT)
+#if defined(MBEDTLS_PSA_DRIVER_GET_ENTROPY)

 static int mbedtls_entropy_source_self_test_gather(unsigned char *buf, size_t buf_len)
 {
@@ -504,8 +501,8 @@ static int mbedtls_entropy_source_self_test_gather(unsigned char *buf, size_t bu
     size_t attempts = buf_len;

     while (attempts > 0 && entropy_len < buf_len) {
-        if ((ret = mbedtls_hardware_poll(NULL, buf + entropy_len,
-                                         buf_len - entropy_len, &olen)) != 0) {
+        if ((ret = mbedtls_entropy_poll_platform(NULL, buf + entropy_len,
+                                                 buf_len - entropy_len, &olen)) != 0) {
             return ret;
         }

@@ -593,7 +590,7 @@ cleanup:
     return ret != 0;
 }

-#endif /* MBEDTLS_ENTROPY_HARDWARE_ALT */
+#endif /* MBEDTLS_PSA_DRIVER_GET_ENTROPY */

 /*
  * The actual entropy quality is hard to test, but we can at least
@@ -654,7 +651,7 @@ int mbedtls_entropy_self_test(int verbose)
         }
     }

-#if defined(MBEDTLS_ENTROPY_HARDWARE_ALT)
+#if defined(MBEDTLS_PSA_DRIVER_GET_ENTROPY)
     if ((ret = mbedtls_entropy_source_self_test(0)) != 0) {
         goto cleanup;
     }
diff --git a/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/entropy_poll.c b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/entropy_poll.c
new file mode 100644
index 00000000000..df26c3e0795
--- /dev/null
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/entropy_poll.c
@@ -0,0 +1,89 @@
+/*
+ *  Platform-specific and custom entropy polling functions
+ *
+ *  Copyright The Mbed TLS Contributors
+ *  SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+ */
+
+#include "tf_psa_crypto_common.h"
+
+#include <string.h>
+
+#if defined(MBEDTLS_ENTROPY_C)
+
+#include "mbedtls/platform.h"
+#include "mbedtls/private/entropy.h"
+#include "entropy_poll.h"
+#include "mbedtls/private/error_common.h"
+#include "mbedtls/private/error_common.h"
+#include <psa/crypto_driver_random.h>
+
+/* In principle, we could support both a built-in source and a custom
+ * source. However, it isn't a common need. So for now the two
+ * callback functions have the same name and there can only be one. */
+#if defined(MBEDTLS_PSA_BUILTIN_GET_ENTROPY) || defined(MBEDTLS_PSA_DRIVER_GET_ENTROPY)
+
+/* We currently only support a single "true" entropy source (other than the
+ * "fake" source which is the NV seed). It can be either the built-in one
+ * or a user-provided callback. */
+#if defined(MBEDTLS_PSA_DRIVER_GET_ENTROPY) && defined(MBEDTLS_PSA_BUILTIN_GET_ENTROPY)
+#error "MBEDTLS_PSA_DRIVER_GET_ENTROPY and MBEDTLS_PSA_BUILTIN_GET_ENTROPY " \
+    "are currently incompatible."
+#endif
+
+int mbedtls_entropy_poll_platform(void *data, unsigned char *output, size_t len, size_t *olen)
+{
+    int ret;
+    size_t estimate_bits = 0;
+    (void) data;
+
+    /* Historically, in PolarSSL and Mbed TLS, the entropy callback provided
+     * full-entropy output, and reported how many bytes in the output buffer
+     * had useful data. Reporting the length was not very useful because
+     * we get the same amount of entropy by processing the whole output bufer,
+     * processing the whole buffer barely costs more CPU time since the buffer
+     * is small, and most entropy sources just fill the whole buffer anyway.
+     * So since TF-PSA-Crypto 1.0, we process the whole buffer.
+     */
+    *olen = len;
+
+    ret = mbedtls_platform_get_entropy(PSA_DRIVER_GET_ENTROPY_FLAGS_NONE,
+                                       &estimate_bits, output, len);
+    if (ret != 0) {
+        return ret;
+    }
+
+    if (estimate_bits < (8 * len)) {
+        return MBEDTLS_ERR_ENTROPY_SOURCE_FAILED;
+    }
+
+    return 0;
+}
+#endif /* MBEDTLS_PSA_BUILTIN_GET_ENTROPY || MBEDTLS_PSA_DRIVER_GET_ENTROPY */
+
+#if defined(MBEDTLS_ENTROPY_NV_SEED)
+int mbedtls_nv_seed_poll(void *data,
+                         unsigned char *output, size_t len, size_t *olen)
+{
+    unsigned char buf[MBEDTLS_ENTROPY_BLOCK_SIZE];
+    size_t use_len = MBEDTLS_ENTROPY_BLOCK_SIZE;
+    ((void) data);
+
+    memset(buf, 0, MBEDTLS_ENTROPY_BLOCK_SIZE);
+
+    if (mbedtls_nv_seed_read(buf, MBEDTLS_ENTROPY_BLOCK_SIZE) < 0) {
+        return MBEDTLS_ERR_ENTROPY_SOURCE_FAILED;
+    }
+
+    if (len < use_len) {
+        use_len = len;
+    }
+
+    memcpy(output, buf, use_len);
+    *olen = use_len;
+
+    return 0;
+}
+#endif /* MBEDTLS_ENTROPY_NV_SEED */
+
+#endif /* MBEDTLS_ENTROPY_C */
diff --git a/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/entropy_poll.h b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/entropy_poll.h
new file mode 100644
index 00000000000..931fdf141c1
--- /dev/null
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/entropy_poll.h
@@ -0,0 +1,44 @@
+/**
+ * \file entropy_poll.h
+ *
+ * \brief Platform-specific and custom entropy polling functions
+ */
+/*
+ *  Copyright The Mbed TLS Contributors
+ *  SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+ */
+#ifndef MBEDTLS_ENTROPY_POLL_H
+#define MBEDTLS_ENTROPY_POLL_H
+
+#include "tf-psa-crypto/build_info.h"
+
+#include <stddef.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define MBEDTLS_ENTROPY_POLL_PLATFORM_MIN        32
+
+/**
+ * This function is either provided by the library
+ * (if #MBEDTLS_PSA_BUILTIN_GET_ENTROPY is enabled)
+ * or provided externally (if #MBEDTLS_PSA_DRIVER_GET_ENTROPY is enabled).
+ */
+int mbedtls_entropy_poll_platform(void *data, unsigned char *output, size_t len, size_t *olen);
+
+#if defined(MBEDTLS_ENTROPY_NV_SEED)
+/**
+ * \brief           Entropy poll callback for a non-volatile seed file
+ *
+ * \note            This must accept NULL as its first argument.
+ */
+int mbedtls_nv_seed_poll(void *data,
+                         unsigned char *output, size_t len, size_t *olen);
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* entropy_poll.h */
diff --git a/deps/LIEF/third-party/mbedtls/library/gcm.c b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/gcm.c
similarity index 98%
rename from deps/LIEF/third-party/mbedtls/library/gcm.c
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/gcm.c
index 5dfac2349c8..b9412a7b6dc 100644
--- a/deps/LIEF/third-party/mbedtls/library/gcm.c
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/gcm.c
@@ -15,14 +15,14 @@
  * [MGV] 4.1, pp. 12-13, to enhance speed without using too much memory.
  */

-#include "common.h"
+#include "tf_psa_crypto_common.h"

 #if defined(MBEDTLS_GCM_C)

-#include "mbedtls/gcm.h"
+#include "mbedtls/private/gcm.h"
 #include "mbedtls/platform.h"
 #include "mbedtls/platform_util.h"
-#include "mbedtls/error.h"
+#include "mbedtls/private/error_common.h"
 #include "mbedtls/constant_time.h"

 #if defined(MBEDTLS_BLOCK_CIPHER_C)
@@ -39,8 +39,6 @@
 #include "aesce.h"
 #endif

-#if !defined(MBEDTLS_GCM_ALT)
-
 /* Used to select the acceleration mechanism */
 #define MBEDTLS_GCM_ACC_SMALLTABLE  0
 #define MBEDTLS_GCM_ACC_LARGETABLE  1
@@ -780,8 +778,6 @@ void mbedtls_gcm_free(mbedtls_gcm_context *ctx)
     mbedtls_platform_zeroize(ctx, sizeof(mbedtls_gcm_context));
 }

-#endif /* !MBEDTLS_GCM_ALT */
-
 #if defined(MBEDTLS_SELF_TEST) && defined(MBEDTLS_CCM_GCM_CAN_AES)
 /*
  * AES-GCM test vectors from:
@@ -1024,9 +1020,6 @@ int mbedtls_gcm_self_test(int verbose)
     size_t olen;

     if (verbose != 0) {
-#if defined(MBEDTLS_GCM_ALT)
-        mbedtls_printf("  GCM note: alternative implementation.\n");
-#else /* MBEDTLS_GCM_ALT */
 #if defined(MBEDTLS_AESNI_HAVE_CODE)
         if (mbedtls_aesni_has_support(MBEDTLS_AESNI_CLMUL)) {
             mbedtls_printf("  GCM note: using AESNI.\n");
@@ -1040,7 +1033,6 @@ int mbedtls_gcm_self_test(int verbose)
 #endif

         mbedtls_printf("  GCM note: built-in implementation.\n");
-#endif /* MBEDTLS_GCM_ALT */
     }

     static const int loop_limit =
@@ -1062,8 +1054,8 @@ int mbedtls_gcm_self_test(int verbose)
                                      key_len);
             /*
              * AES-192 is an optional feature that may be unavailable when
-             * there is an alternative underlying implementation i.e. when
-             * MBEDTLS_AES_ALT is defined.
+             * there is an alternative underlying implementation such as a
+             * PSA driver.
              */
             if (ret == MBEDTLS_ERR_PLATFORM_FEATURE_UNSUPPORTED && key_len == 192) {
                 mbedtls_printf("skipped\n");
@@ -1080,14 +1072,6 @@ int mbedtls_gcm_self_test(int verbose)
                                             add_len_test_data[i],
                                             pt_test_data[pt_index_test_data[i]],
                                             buf, 16, tag_buf);
-#if defined(MBEDTLS_GCM_ALT)
-            /* Allow alternative implementations to only support 12-byte nonces. */
-            if (ret == MBEDTLS_ERR_PLATFORM_FEATURE_UNSUPPORTED &&
-                iv_len_test_data[i] != 12) {
-                mbedtls_printf("skipped\n");
-                break;
-            }
-#endif /* defined(MBEDTLS_GCM_ALT) */
             if (ret != 0) {
                 goto exit;
             }
diff --git a/deps/LIEF/third-party/mbedtls/library/hmac_drbg.c b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/hmac_drbg.c
similarity index 96%
rename from deps/LIEF/third-party/mbedtls/library/hmac_drbg.c
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/hmac_drbg.c
index 90174d5d17d..721a9966119 100644
--- a/deps/LIEF/third-party/mbedtls/library/hmac_drbg.c
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/hmac_drbg.c
@@ -11,13 +11,13 @@
  *  References below are based on rev. 1 (January 2012).
  */

-#include "common.h"
+#include "tf_psa_crypto_common.h"

 #if defined(MBEDTLS_HMAC_DRBG_C)

-#include "mbedtls/hmac_drbg.h"
+#include "mbedtls/private/hmac_drbg.h"
 #include "mbedtls/platform_util.h"
-#include "mbedtls/error.h"
+#include "mbedtls/private/error_common.h"

 #include <string.h>

@@ -34,7 +34,7 @@ void mbedtls_hmac_drbg_init(mbedtls_hmac_drbg_context *ctx)
 {
     memset(ctx, 0, sizeof(mbedtls_hmac_drbg_context));

-    ctx->reseed_interval = MBEDTLS_HMAC_DRBG_RESEED_INTERVAL;
+    ctx->reseed_interval = MBEDTLS_PSA_RNG_RESEED_INTERVAL;
 }

 /*
@@ -100,7 +100,10 @@ int mbedtls_hmac_drbg_seed_buf(mbedtls_hmac_drbg_context *ctx,
 {
     int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;

-    if ((ret = mbedtls_md_setup(&ctx->md_ctx, md_info, 1)) != 0) {
+    if ((ret = mbedtls_md_setup(&ctx->md_ctx, md_info, 0)) != 0) {
+        return ret;
+    }
+    if ((ret = mbedtls_md_hmac_setup(&ctx->md_ctx, md_info)) != 0) {
         return ret;
     }

@@ -229,7 +232,10 @@ int mbedtls_hmac_drbg_seed(mbedtls_hmac_drbg_context *ctx,
     int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
     size_t md_size;

-    if ((ret = mbedtls_md_setup(&ctx->md_ctx, md_info, 1)) != 0) {
+    if ((ret = mbedtls_md_setup(&ctx->md_ctx, md_info, 0)) != 0) {
+        return ret;
+    }
+    if ((ret = mbedtls_md_hmac_setup(&ctx->md_ctx, md_info)) != 0) {
         return ret;
     }

@@ -419,7 +425,7 @@ void mbedtls_hmac_drbg_free(mbedtls_hmac_drbg_context *ctx)
 #endif
     mbedtls_md_free(&ctx->md_ctx);
     mbedtls_platform_zeroize(ctx, sizeof(mbedtls_hmac_drbg_context));
-    ctx->reseed_interval = MBEDTLS_HMAC_DRBG_RESEED_INTERVAL;
+    ctx->reseed_interval = MBEDTLS_PSA_RNG_RESEED_INTERVAL;
 }

 #if defined(MBEDTLS_FS_IO)
@@ -498,7 +504,7 @@ exit:

 #if defined(MBEDTLS_SELF_TEST)

-#if !defined(MBEDTLS_MD_CAN_SHA1)
+#if !defined(PSA_WANT_ALG_SHA_1)
 /* Dummy checkup routine */
 int mbedtls_hmac_drbg_self_test(int verbose)
 {
@@ -627,7 +633,7 @@ int mbedtls_hmac_drbg_self_test(int verbose)

     return 0;
 }
-#endif /* MBEDTLS_MD_CAN_SHA1 */
+#endif /* PSA_WANT_ALG_SHA_1 */
 #endif /* MBEDTLS_SELF_TEST */

 #endif /* MBEDTLS_HMAC_DRBG_C */
diff --git a/deps/LIEF/third-party/mbedtls/library/lmots.c b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/lmots.c
similarity index 98%
rename from deps/LIEF/third-party/mbedtls/library/lmots.c
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/lmots.c
index 404aa80da63..cba4d6a4594 100644
--- a/deps/LIEF/third-party/mbedtls/library/lmots.c
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/lmots.c
@@ -18,7 +18,7 @@
  *      https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-208.pdf
  */

-#include "common.h"
+#include "tf_psa_crypto_common.h"

 #if defined(MBEDTLS_LMS_C)

@@ -28,7 +28,7 @@

 #include "mbedtls/lms.h"
 #include "mbedtls/platform_util.h"
-#include "mbedtls/error.h"
+#include "mbedtls/private/error_common.h"
 #include "psa_util_internal.h"

 #include "psa/crypto.h"
@@ -695,8 +695,7 @@ exit:
 }

 int mbedtls_lmots_sign(mbedtls_lmots_private_t *ctx,
-                       int (*f_rng)(void *, unsigned char *, size_t),
-                       void *p_rng, const unsigned char *msg, size_t msg_size,
+                       const unsigned char *msg, size_t msg_size,
                        unsigned char *sig, size_t sig_size, size_t *sig_len)
 {
     unsigned char tmp_digit_array[MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT_MAX];
@@ -724,8 +723,8 @@ int mbedtls_lmots_sign(mbedtls_lmots_private_t *ctx,
         return MBEDTLS_ERR_LMS_BAD_INPUT_DATA;
     }

-    ret = f_rng(p_rng, tmp_c_random,
-                MBEDTLS_LMOTS_N_HASH_LEN(ctx->params.type));
+    ret = psa_generate_random(tmp_c_random,
+                              MBEDTLS_LMOTS_N_HASH_LEN(ctx->params.type));
     if (ret) {
         return ret;
     }
diff --git a/deps/LIEF/third-party/mbedtls/library/lmots.h b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/lmots.h
similarity index 97%
rename from deps/LIEF/third-party/mbedtls/library/lmots.h
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/lmots.h
index cf92d326c98..fb8743842bd 100644
--- a/deps/LIEF/third-party/mbedtls/library/lmots.h
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/lmots.h
@@ -14,7 +14,7 @@
 #ifndef MBEDTLS_LMOTS_H
 #define MBEDTLS_LMOTS_H

-#include "mbedtls/build_info.h"
+#include "tf-psa-crypto/build_info.h"

 #include "psa/crypto.h"

@@ -263,9 +263,6 @@ int mbedtls_lmots_calculate_public_key(mbedtls_lmots_public_t *ctx,
  *
  * \param ctx                The initialized LMOTS context from which the
  *                           private key will be read.
- * \param f_rng              The RNG function to be used for signature
- *                           generation.
- * \param p_rng              The RNG context to be passed to f_rng
  * \param msg                The buffer from which the message will be read.
  * \param msg_size           The size of the message that will be read.
  * \param sig                The buf into which the signature will be stored.
@@ -275,8 +272,7 @@ int mbedtls_lmots_calculate_public_key(mbedtls_lmots_public_t *ctx,
  * \return         A non-zero error code on failure.
  */
 int mbedtls_lmots_sign(mbedtls_lmots_private_t *ctx,
-                       int (*f_rng)(void *, unsigned char *, size_t),
-                       void *p_rng, const unsigned char *msg, size_t msg_size,
+                       const unsigned char *msg, size_t msg_size,
                        unsigned char *sig, size_t sig_size, size_t *sig_len);

 #endif /* defined(MBEDTLS_LMS_PRIVATE) */
diff --git a/deps/LIEF/third-party/mbedtls/library/lms.c b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/lms.c
similarity index 98%
rename from deps/LIEF/third-party/mbedtls/library/lms.c
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/lms.c
index 41d34bfe16a..679a1e5a327 100644
--- a/deps/LIEF/third-party/mbedtls/library/lms.c
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/lms.c
@@ -18,7 +18,7 @@
  *      https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-208.pdf
  */

-#include "common.h"
+#include "tf_psa_crypto_common.h"

 #if defined(MBEDTLS_LMS_C)

@@ -29,7 +29,7 @@
 #include "psa/crypto.h"
 #include "psa_util_internal.h"
 #include "mbedtls/lms.h"
-#include "mbedtls/error.h"
+#include "mbedtls/private/error_common.h"
 #include "mbedtls/platform_util.h"

 #include "mbedtls/platform.h"
@@ -386,7 +386,6 @@ int mbedtls_lms_verify(const mbedtls_lms_public_t *ctx,
     if (ret != 0) {
         return MBEDTLS_ERR_LMS_VERIFY_FAILED;
     }
-
     curr_node_id = MERKLE_TREE_INTERNAL_NODE_AM(ctx->params.type) +
                    q_leaf_identifier;

@@ -571,8 +570,7 @@ void mbedtls_lms_private_free(mbedtls_lms_private_t *ctx)
 int mbedtls_lms_generate_private_key(mbedtls_lms_private_t *ctx,
                                      mbedtls_lms_algorithm_type_t type,
                                      mbedtls_lmots_algorithm_type_t otstype,
-                                     int (*f_rng)(void *, unsigned char *, size_t),
-                                     void *p_rng, const unsigned char *seed,
+                                     const unsigned char *seed,
                                      size_t seed_size)
 {
     unsigned int idx = 0;
@@ -594,9 +592,8 @@ int mbedtls_lms_generate_private_key(mbedtls_lms_private_t *ctx,
     ctx->params.otstype = otstype;
     ctx->have_private_key = 1;

-    ret = f_rng(p_rng,
-                ctx->params.I_key_identifier,
-                MBEDTLS_LMOTS_I_KEY_ID_LEN);
+    ret = psa_generate_random(ctx->params.I_key_identifier,
+                              MBEDTLS_LMOTS_I_KEY_ID_LEN);
     if (ret != 0) {
         goto exit;
     }
@@ -702,8 +699,7 @@ exit:


 int mbedtls_lms_sign(mbedtls_lms_private_t *ctx,
-                     int (*f_rng)(void *, unsigned char *, size_t),
-                     void *p_rng, const unsigned char *msg,
+                     const unsigned char *msg,
                      unsigned int msg_size, unsigned char *sig, size_t sig_size,
                      size_t *sig_len)
 {
@@ -744,8 +740,6 @@ int mbedtls_lms_sign(mbedtls_lms_private_t *ctx,
     }

     ret = mbedtls_lmots_sign(&ctx->ots_private_keys[q_leaf_identifier],
-                             f_rng,
-                             p_rng,
                              msg,
                              msg_size,
                              sig + SIG_OTS_SIG_OFFSET,
diff --git a/deps/LIEF/third-party/mbedtls/library/md.c b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/md.c
similarity index 82%
rename from deps/LIEF/third-party/mbedtls/library/md.c
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/md.c
index c95846aa042..e73d58ed382 100644
--- a/deps/LIEF/third-party/mbedtls/library/md.c
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/md.c
@@ -9,7 +9,7 @@
  *  SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
  */

-#include "common.h"
+#include "tf_psa_crypto_common.h"

 /*
  * Availability of functions in this module is controlled by two
@@ -32,14 +32,14 @@
 #include "mbedtls/md.h"
 #include "md_wrap.h"
 #include "mbedtls/platform_util.h"
-#include "mbedtls/error.h"
+#include "mbedtls/private/error_common.h"

-#include "mbedtls/md5.h"
-#include "mbedtls/ripemd160.h"
-#include "mbedtls/sha1.h"
-#include "mbedtls/sha256.h"
-#include "mbedtls/sha512.h"
-#include "mbedtls/sha3.h"
+#include "mbedtls/private/md5.h"
+#include "mbedtls/private/ripemd160.h"
+#include "mbedtls/private/sha1.h"
+#include "mbedtls/private/sha256.h"
+#include "mbedtls/private/sha512.h"
+#include "mbedtls/private/sha3.h"

 #if defined(MBEDTLS_PSA_CRYPTO_CLIENT)
 #include <psa/crypto.h>
@@ -70,67 +70,67 @@
 #define MD_INFO(type, out_size, block_size) type, out_size,
 #endif

-#if defined(MBEDTLS_MD_CAN_MD5)
+#if defined(PSA_WANT_ALG_MD5)
 static const mbedtls_md_info_t mbedtls_md5_info = {
     MD_INFO(MBEDTLS_MD_MD5, 16, 64)
 };
 #endif

-#if defined(MBEDTLS_MD_CAN_RIPEMD160)
+#if defined(PSA_WANT_ALG_RIPEMD160)
 static const mbedtls_md_info_t mbedtls_ripemd160_info = {
     MD_INFO(MBEDTLS_MD_RIPEMD160, 20, 64)
 };
 #endif

-#if defined(MBEDTLS_MD_CAN_SHA1)
+#if defined(PSA_WANT_ALG_SHA_1)
 static const mbedtls_md_info_t mbedtls_sha1_info = {
     MD_INFO(MBEDTLS_MD_SHA1, 20, 64)
 };
 #endif

-#if defined(MBEDTLS_MD_CAN_SHA224)
+#if defined(PSA_WANT_ALG_SHA_224)
 static const mbedtls_md_info_t mbedtls_sha224_info = {
     MD_INFO(MBEDTLS_MD_SHA224, 28, 64)
 };
 #endif

-#if defined(MBEDTLS_MD_CAN_SHA256)
+#if defined(PSA_WANT_ALG_SHA_256)
 static const mbedtls_md_info_t mbedtls_sha256_info = {
     MD_INFO(MBEDTLS_MD_SHA256, 32, 64)
 };
 #endif

-#if defined(MBEDTLS_MD_CAN_SHA384)
+#if defined(PSA_WANT_ALG_SHA_384)
 static const mbedtls_md_info_t mbedtls_sha384_info = {
     MD_INFO(MBEDTLS_MD_SHA384, 48, 128)
 };
 #endif

-#if defined(MBEDTLS_MD_CAN_SHA512)
+#if defined(PSA_WANT_ALG_SHA_512)
 static const mbedtls_md_info_t mbedtls_sha512_info = {
     MD_INFO(MBEDTLS_MD_SHA512, 64, 128)
 };
 #endif

-#if defined(MBEDTLS_MD_CAN_SHA3_224)
+#if defined(PSA_WANT_ALG_SHA3_224) || defined(MBEDTLS_PSA_ACCEL_ALG_SHA3_224)
 static const mbedtls_md_info_t mbedtls_sha3_224_info = {
     MD_INFO(MBEDTLS_MD_SHA3_224, 28, 144)
 };
 #endif

-#if defined(MBEDTLS_MD_CAN_SHA3_256)
+#if defined(PSA_WANT_ALG_SHA3_256) || defined(MBEDTLS_PSA_ACCEL_ALG_SHA3_256)
 static const mbedtls_md_info_t mbedtls_sha3_256_info = {
     MD_INFO(MBEDTLS_MD_SHA3_256, 32, 136)
 };
 #endif

-#if defined(MBEDTLS_MD_CAN_SHA3_384)
+#if defined(PSA_WANT_ALG_SHA3_384) || defined(MBEDTLS_PSA_ACCEL_ALG_SHA3_384)
 static const mbedtls_md_info_t mbedtls_sha3_384_info = {
     MD_INFO(MBEDTLS_MD_SHA3_384, 48, 104)
 };
 #endif

-#if defined(MBEDTLS_MD_CAN_SHA3_512)
+#if defined(PSA_WANT_ALG_SHA3_512) || defined(MBEDTLS_PSA_ACCEL_ALG_SHA3_512)
 static const mbedtls_md_info_t mbedtls_sha3_512_info = {
     MD_INFO(MBEDTLS_MD_SHA3_512, 64, 72)
 };
@@ -139,47 +139,47 @@ static const mbedtls_md_info_t mbedtls_sha3_512_info = {
 const mbedtls_md_info_t *mbedtls_md_info_from_type(mbedtls_md_type_t md_type)
 {
     switch (md_type) {
-#if defined(MBEDTLS_MD_CAN_MD5)
+#if defined(PSA_WANT_ALG_MD5)
         case MBEDTLS_MD_MD5:
             return &mbedtls_md5_info;
 #endif
-#if defined(MBEDTLS_MD_CAN_RIPEMD160)
+#if defined(PSA_WANT_ALG_RIPEMD160)
         case MBEDTLS_MD_RIPEMD160:
             return &mbedtls_ripemd160_info;
 #endif
-#if defined(MBEDTLS_MD_CAN_SHA1)
+#if defined(PSA_WANT_ALG_SHA_1)
         case MBEDTLS_MD_SHA1:
             return &mbedtls_sha1_info;
 #endif
-#if defined(MBEDTLS_MD_CAN_SHA224)
+#if defined(PSA_WANT_ALG_SHA_224)
         case MBEDTLS_MD_SHA224:
             return &mbedtls_sha224_info;
 #endif
-#if defined(MBEDTLS_MD_CAN_SHA256)
+#if defined(PSA_WANT_ALG_SHA_256)
         case MBEDTLS_MD_SHA256:
             return &mbedtls_sha256_info;
 #endif
-#if defined(MBEDTLS_MD_CAN_SHA384)
+#if defined(PSA_WANT_ALG_SHA_384)
         case MBEDTLS_MD_SHA384:
             return &mbedtls_sha384_info;
 #endif
-#if defined(MBEDTLS_MD_CAN_SHA512)
+#if defined(PSA_WANT_ALG_SHA_512)
         case MBEDTLS_MD_SHA512:
             return &mbedtls_sha512_info;
 #endif
-#if defined(MBEDTLS_MD_CAN_SHA3_224)
+#if defined(PSA_WANT_ALG_SHA3_224) || defined(MBEDTLS_PSA_ACCEL_ALG_SHA3_224)
         case MBEDTLS_MD_SHA3_224:
             return &mbedtls_sha3_224_info;
 #endif
-#if defined(MBEDTLS_MD_CAN_SHA3_256)
+#if defined(PSA_WANT_ALG_SHA3_256) || defined(MBEDTLS_PSA_ACCEL_ALG_SHA3_256)
         case MBEDTLS_MD_SHA3_256:
             return &mbedtls_sha3_256_info;
 #endif
-#if defined(MBEDTLS_MD_CAN_SHA3_384)
+#if defined(PSA_WANT_ALG_SHA3_384) || defined(MBEDTLS_PSA_ACCEL_ALG_SHA3_384)
         case MBEDTLS_MD_SHA3_384:
             return &mbedtls_sha3_384_info;
 #endif
-#if defined(MBEDTLS_MD_CAN_SHA3_512)
+#if defined(PSA_WANT_ALG_SHA3_512) || defined(MBEDTLS_PSA_ACCEL_ALG_SHA3_512)
         case MBEDTLS_MD_SHA3_512:
             return &mbedtls_sha3_512_info;
 #endif
@@ -189,6 +189,14 @@ const mbedtls_md_info_t *mbedtls_md_info_from_type(mbedtls_md_type_t md_type)
 }

 #if defined(MBEDTLS_MD_SOME_PSA)
+/* This function decides whether to dispatch directly to legacy, or via PSA.
+ * For historical reasons, we dispatch to legacy unless there is a PSA driver.
+ * This was preferable in Mbed TLS 3.x to maximize backward compatibility.
+ * Going forward, in TF-PSA-Crypto, we should use PSA unconditionally.
+ * This would entail removing changing this function to be basically
+ * `return PSA_ALG_CATEGORY_HASH | info->type`
+ * and changing other functions accordingly.
+ */
 static psa_algorithm_t psa_alg_of_md(const mbedtls_md_info_t *info)
 {
     switch (info->type) {
@@ -244,11 +252,7 @@ static psa_algorithm_t psa_alg_of_md(const mbedtls_md_info_t *info)
 static int md_can_use_psa(const mbedtls_md_info_t *info)
 {
     psa_algorithm_t alg = psa_alg_of_md(info);
-    if (alg == PSA_ALG_NONE) {
-        return 0;
-    }
-
-    return psa_can_do_hash(alg);
+    return alg != PSA_ALG_NONE;
 }
 #endif /* MBEDTLS_MD_SOME_PSA */

@@ -306,13 +310,24 @@ void mbedtls_md_free(mbedtls_md_context_t *ctx)
                 mbedtls_sha512_free(ctx->md_ctx);
                 break;
 #endif
-#if defined(MBEDTLS_SHA3_C)
+#if defined(MBEDTLS_PSA_BUILTIN_ALG_SHA3_224)
             case MBEDTLS_MD_SHA3_224:
+#endif
+#if defined(MBEDTLS_PSA_BUILTIN_ALG_SHA3_256)
             case MBEDTLS_MD_SHA3_256:
+#endif
+#if defined(MBEDTLS_PSA_BUILTIN_ALG_SHA3_384)
             case MBEDTLS_MD_SHA3_384:
+#endif
+#if defined(MBEDTLS_PSA_BUILTIN_ALG_SHA3_512)
             case MBEDTLS_MD_SHA3_512:
-                mbedtls_sha3_free(ctx->md_ctx);
-                break;
+#endif
+#if defined(MBEDTLS_PSA_BUILTIN_ALG_SHA3_224) || \
+        defined(MBEDTLS_PSA_BUILTIN_ALG_SHA3_256) || \
+        defined(MBEDTLS_PSA_BUILTIN_ALG_SHA3_384) || \
+        defined(MBEDTLS_PSA_BUILTIN_ALG_SHA3_512)
+        mbedtls_sha3_free(ctx->md_ctx);
+        break;
 #endif
             default:
                 /* Shouldn't happen */
@@ -391,13 +406,24 @@ int mbedtls_md_clone(mbedtls_md_context_t *dst,
             mbedtls_sha512_clone(dst->md_ctx, src->md_ctx);
             break;
 #endif
-#if defined(MBEDTLS_SHA3_C)
+#if defined(MBEDTLS_PSA_BUILTIN_ALG_SHA3_224)
         case MBEDTLS_MD_SHA3_224:
+#endif
+#if defined(MBEDTLS_PSA_BUILTIN_ALG_SHA3_256)
         case MBEDTLS_MD_SHA3_256:
+#endif
+#if defined(MBEDTLS_PSA_BUILTIN_ALG_SHA3_384)
         case MBEDTLS_MD_SHA3_384:
+#endif
+#if defined(MBEDTLS_PSA_BUILTIN_ALG_SHA3_512)
         case MBEDTLS_MD_SHA3_512:
-            mbedtls_sha3_clone(dst->md_ctx, src->md_ctx);
-            break;
+#endif
+#if defined(MBEDTLS_PSA_BUILTIN_ALG_SHA3_224) || \
+    defined(MBEDTLS_PSA_BUILTIN_ALG_SHA3_256) || \
+    defined(MBEDTLS_PSA_BUILTIN_ALG_SHA3_384) || \
+    defined(MBEDTLS_PSA_BUILTIN_ALG_SHA3_512)
+    mbedtls_sha3_clone(dst->md_ctx, src->md_ctx);
+    break;
 #endif
         default:
             return MBEDTLS_ERR_MD_BAD_INPUT_DATA;
@@ -426,15 +452,15 @@ int mbedtls_md_setup(mbedtls_md_context_t *ctx, const mbedtls_md_info_t *md_info
         return MBEDTLS_ERR_MD_BAD_INPUT_DATA;
     }

-    ctx->md_info = md_info;
-    ctx->md_ctx = NULL;
 #if defined(MBEDTLS_MD_C)
     ctx->hmac_ctx = NULL;
-#else
+#endif
+
+    ctx->md_info = md_info;
+    ctx->md_ctx = NULL;
     if (hmac != 0) {
         return MBEDTLS_ERR_MD_BAD_INPUT_DATA;
     }
-#endif

 #if defined(MBEDTLS_MD_SOME_PSA)
     if (md_can_use_psa(ctx->md_info)) {
@@ -481,28 +507,29 @@ int mbedtls_md_setup(mbedtls_md_context_t *ctx, const mbedtls_md_info_t *md_info
             ALLOC(sha512);
             break;
 #endif
-#if defined(MBEDTLS_SHA3_C)
+#if defined(MBEDTLS_PSA_BUILTIN_ALG_SHA3_224)
         case MBEDTLS_MD_SHA3_224:
+#endif
+#if defined(MBEDTLS_PSA_BUILTIN_ALG_SHA3_256)
         case MBEDTLS_MD_SHA3_256:
+#endif
+#if defined(MBEDTLS_PSA_BUILTIN_ALG_SHA3_384)
         case MBEDTLS_MD_SHA3_384:
+#endif
+#if defined(MBEDTLS_PSA_BUILTIN_ALG_SHA3_512)
         case MBEDTLS_MD_SHA3_512:
-            ALLOC(sha3);
-            break;
+#endif
+#if defined(MBEDTLS_PSA_BUILTIN_ALG_SHA3_224) || \
+    defined(MBEDTLS_PSA_BUILTIN_ALG_SHA3_256) || \
+    defined(MBEDTLS_PSA_BUILTIN_ALG_SHA3_384) || \
+    defined(MBEDTLS_PSA_BUILTIN_ALG_SHA3_512)
+    ALLOC(sha3);
+    break;
 #endif
         default:
             return MBEDTLS_ERR_MD_BAD_INPUT_DATA;
     }

-#if defined(MBEDTLS_MD_C)
-    if (hmac != 0) {
-        ctx->hmac_ctx = mbedtls_calloc(2, md_info->block_size);
-        if (ctx->hmac_ctx == NULL) {
-            mbedtls_md_free(ctx);
-            return MBEDTLS_ERR_MD_ALLOC_FAILED;
-        }
-    }
-#endif
-
     return 0;
 }
 #undef ALLOC
@@ -553,13 +580,19 @@ int mbedtls_md_starts(mbedtls_md_context_t *ctx)
         case MBEDTLS_MD_SHA512:
             return mbedtls_sha512_starts(ctx->md_ctx, 0);
 #endif
-#if defined(MBEDTLS_SHA3_C)
+#if defined(MBEDTLS_PSA_BUILTIN_ALG_SHA3_224)
         case MBEDTLS_MD_SHA3_224:
             return mbedtls_sha3_starts(ctx->md_ctx, MBEDTLS_SHA3_224);
+#endif
+#if defined(MBEDTLS_PSA_BUILTIN_ALG_SHA3_256)
         case MBEDTLS_MD_SHA3_256:
             return mbedtls_sha3_starts(ctx->md_ctx, MBEDTLS_SHA3_256);
+#endif
+#if defined(MBEDTLS_PSA_BUILTIN_ALG_SHA3_384)
         case MBEDTLS_MD_SHA3_384:
             return mbedtls_sha3_starts(ctx->md_ctx, MBEDTLS_SHA3_384);
+#endif
+#if defined(MBEDTLS_PSA_BUILTIN_ALG_SHA3_512)
         case MBEDTLS_MD_SHA3_512:
             return mbedtls_sha3_starts(ctx->md_ctx, MBEDTLS_SHA3_512);
 #endif
@@ -612,12 +645,23 @@ int mbedtls_md_update(mbedtls_md_context_t *ctx, const unsigned char *input, siz
         case MBEDTLS_MD_SHA512:
             return mbedtls_sha512_update(ctx->md_ctx, input, ilen);
 #endif
-#if defined(MBEDTLS_SHA3_C)
+#if defined(MBEDTLS_PSA_BUILTIN_ALG_SHA3_224)
         case MBEDTLS_MD_SHA3_224:
+#endif
+#if defined(MBEDTLS_PSA_BUILTIN_ALG_SHA3_256)
         case MBEDTLS_MD_SHA3_256:
+#endif
+#if defined(MBEDTLS_PSA_BUILTIN_ALG_SHA3_384)
         case MBEDTLS_MD_SHA3_384:
+#endif
+#if defined(MBEDTLS_PSA_BUILTIN_ALG_SHA3_512)
         case MBEDTLS_MD_SHA3_512:
-            return mbedtls_sha3_update(ctx->md_ctx, input, ilen);
+#endif
+#if defined(MBEDTLS_PSA_BUILTIN_ALG_SHA3_224) || \
+    defined(MBEDTLS_PSA_BUILTIN_ALG_SHA3_256) || \
+    defined(MBEDTLS_PSA_BUILTIN_ALG_SHA3_384) || \
+    defined(MBEDTLS_PSA_BUILTIN_ALG_SHA3_512)
+    return mbedtls_sha3_update(ctx->md_ctx, input, ilen);
 #endif
         default:
             return MBEDTLS_ERR_MD_BAD_INPUT_DATA;
@@ -670,12 +714,23 @@ int mbedtls_md_finish(mbedtls_md_context_t *ctx, unsigned char *output)
         case MBEDTLS_MD_SHA512:
             return mbedtls_sha512_finish(ctx->md_ctx, output);
 #endif
-#if defined(MBEDTLS_SHA3_C)
+#if defined(MBEDTLS_PSA_BUILTIN_ALG_SHA3_224)
         case MBEDTLS_MD_SHA3_224:
+#endif
+#if defined(MBEDTLS_PSA_BUILTIN_ALG_SHA3_256)
         case MBEDTLS_MD_SHA3_256:
+#endif
+#if defined(MBEDTLS_PSA_BUILTIN_ALG_SHA3_384)
         case MBEDTLS_MD_SHA3_384:
+#endif
+#if defined(MBEDTLS_PSA_BUILTIN_ALG_SHA3_512)
         case MBEDTLS_MD_SHA3_512:
-            return mbedtls_sha3_finish(ctx->md_ctx, output, ctx->md_info->size);
+#endif
+#if defined(MBEDTLS_PSA_BUILTIN_ALG_SHA3_224) || \
+    defined(MBEDTLS_PSA_BUILTIN_ALG_SHA3_256) || \
+    defined(MBEDTLS_PSA_BUILTIN_ALG_SHA3_384) || \
+    defined(MBEDTLS_PSA_BUILTIN_ALG_SHA3_512)
+    return mbedtls_sha3_finish(ctx->md_ctx, output, ctx->md_info->size);
 #endif
         default:
             return MBEDTLS_ERR_MD_BAD_INPUT_DATA;
@@ -728,13 +783,19 @@ int mbedtls_md(const mbedtls_md_info_t *md_info, const unsigned char *input, siz
         case MBEDTLS_MD_SHA512:
             return mbedtls_sha512(input, ilen, output, 0);
 #endif
-#if defined(MBEDTLS_SHA3_C)
+#if defined(MBEDTLS_PSA_BUILTIN_ALG_SHA3_224)
         case MBEDTLS_MD_SHA3_224:
             return mbedtls_sha3(MBEDTLS_SHA3_224, input, ilen, output, md_info->size);
+#endif
+#if defined(MBEDTLS_PSA_BUILTIN_ALG_SHA3_256)
         case MBEDTLS_MD_SHA3_256:
             return mbedtls_sha3(MBEDTLS_SHA3_256, input, ilen, output, md_info->size);
+#endif
+#if defined(MBEDTLS_PSA_BUILTIN_ALG_SHA3_384)
         case MBEDTLS_MD_SHA3_384:
             return mbedtls_sha3(MBEDTLS_SHA3_384, input, ilen, output, md_info->size);
+#endif
+#if defined(MBEDTLS_PSA_BUILTIN_ALG_SHA3_512)
         case MBEDTLS_MD_SHA3_512:
             return mbedtls_sha3(MBEDTLS_SHA3_512, input, ilen, output, md_info->size);
 #endif
@@ -781,46 +842,46 @@ int mbedtls_md_error_from_psa(psa_status_t status)
  */
 static const int supported_digests[] = {

-#if defined(MBEDTLS_MD_CAN_SHA512)
+#if defined(PSA_WANT_ALG_SHA_512)
     MBEDTLS_MD_SHA512,
 #endif

-#if defined(MBEDTLS_MD_CAN_SHA384)
+#if defined(PSA_WANT_ALG_SHA_384)
     MBEDTLS_MD_SHA384,
 #endif

-#if defined(MBEDTLS_MD_CAN_SHA256)
+#if defined(PSA_WANT_ALG_SHA_256)
     MBEDTLS_MD_SHA256,
 #endif
-#if defined(MBEDTLS_MD_CAN_SHA224)
+#if defined(PSA_WANT_ALG_SHA_224)
     MBEDTLS_MD_SHA224,
 #endif

-#if defined(MBEDTLS_MD_CAN_SHA1)
+#if defined(PSA_WANT_ALG_SHA_1)
     MBEDTLS_MD_SHA1,
 #endif

-#if defined(MBEDTLS_MD_CAN_RIPEMD160)
+#if defined(PSA_WANT_ALG_RIPEMD160)
     MBEDTLS_MD_RIPEMD160,
 #endif

-#if defined(MBEDTLS_MD_CAN_MD5)
+#if defined(PSA_WANT_ALG_MD5)
     MBEDTLS_MD_MD5,
 #endif

-#if defined(MBEDTLS_MD_CAN_SHA3_224)
+#if defined(PSA_WANT_ALG_SHA3_224)
     MBEDTLS_MD_SHA3_224,
 #endif

-#if defined(MBEDTLS_MD_CAN_SHA3_256)
+#if defined(PSA_WANT_ALG_SHA3_256)
     MBEDTLS_MD_SHA3_256,
 #endif

-#if defined(MBEDTLS_MD_CAN_SHA3_384)
+#if defined(PSA_WANT_ALG_SHA3_384)
     MBEDTLS_MD_SHA3_384,
 #endif

-#if defined(MBEDTLS_MD_CAN_SHA3_512)
+#if defined(PSA_WANT_ALG_SHA3_512)
     MBEDTLS_MD_SHA3_512,
 #endif

@@ -838,43 +899,53 @@ typedef struct {
 } md_name_entry;

 static const md_name_entry md_names[] = {
-#if defined(MBEDTLS_MD_CAN_MD5)
+#if defined(PSA_WANT_ALG_MD5)
     { "MD5", MBEDTLS_MD_MD5 },
 #endif
-#if defined(MBEDTLS_MD_CAN_RIPEMD160)
+#if defined(PSA_WANT_ALG_RIPEMD160)
     { "RIPEMD160", MBEDTLS_MD_RIPEMD160 },
 #endif
-#if defined(MBEDTLS_MD_CAN_SHA1)
+#if defined(PSA_WANT_ALG_SHA_1)
     { "SHA1", MBEDTLS_MD_SHA1 },
     { "SHA", MBEDTLS_MD_SHA1 }, // compatibility fallback
 #endif
-#if defined(MBEDTLS_MD_CAN_SHA224)
+#if defined(PSA_WANT_ALG_SHA_224)
     { "SHA224", MBEDTLS_MD_SHA224 },
 #endif
-#if defined(MBEDTLS_MD_CAN_SHA256)
+#if defined(PSA_WANT_ALG_SHA_256)
     { "SHA256", MBEDTLS_MD_SHA256 },
 #endif
-#if defined(MBEDTLS_MD_CAN_SHA384)
+#if defined(PSA_WANT_ALG_SHA_384)
     { "SHA384", MBEDTLS_MD_SHA384 },
 #endif
-#if defined(MBEDTLS_MD_CAN_SHA512)
+#if defined(PSA_WANT_ALG_SHA_512)
     { "SHA512", MBEDTLS_MD_SHA512 },
 #endif
-#if defined(MBEDTLS_MD_CAN_SHA3_224)
+#if defined(PSA_WANT_ALG_SHA3_224)
     { "SHA3-224", MBEDTLS_MD_SHA3_224 },
 #endif
-#if defined(MBEDTLS_MD_CAN_SHA3_256)
+#if defined(PSA_WANT_ALG_SHA3_256)
     { "SHA3-256", MBEDTLS_MD_SHA3_256 },
 #endif
-#if defined(MBEDTLS_MD_CAN_SHA3_384)
+#if defined(PSA_WANT_ALG_SHA3_384)
     { "SHA3-384", MBEDTLS_MD_SHA3_384 },
 #endif
-#if defined(MBEDTLS_MD_CAN_SHA3_512)
+#if defined(PSA_WANT_ALG_SHA3_512)
     { "SHA3-512", MBEDTLS_MD_SHA3_512 },
 #endif
     { NULL, MBEDTLS_MD_NONE },
 };

+int mbedtls_md_hmac_setup(mbedtls_md_context_t *ctx, const mbedtls_md_info_t *md_info)
+{
+    ctx->hmac_ctx = mbedtls_calloc(2, md_info->block_size);
+    if (ctx->hmac_ctx == NULL) {
+        mbedtls_md_free(ctx);
+        return MBEDTLS_ERR_MD_ALLOC_FAILED;
+    }
+    return 0;
+}
+
 const mbedtls_md_info_t *mbedtls_md_info_from_string(const char *md_name)
 {
     if (NULL == md_name) {
@@ -1083,7 +1154,10 @@ int mbedtls_md_hmac(const mbedtls_md_info_t *md_info,

     mbedtls_md_init(&ctx);

-    if ((ret = mbedtls_md_setup(&ctx, md_info, 1)) != 0) {
+    if ((ret = mbedtls_md_setup(&ctx, md_info, 0)) != 0) {
+        goto cleanup;
+    }
+    if ((ret = mbedtls_md_hmac_setup(&ctx, md_info)) != 0) {
         goto cleanup;
     }

diff --git a/deps/LIEF/third-party/mbedtls/library/md5.c b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/md5.c
similarity index 97%
rename from deps/LIEF/third-party/mbedtls/library/md5.c
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/md5.c
index e4a87a2e093..01397b70d2b 100644
--- a/deps/LIEF/third-party/mbedtls/library/md5.c
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/md5.c
@@ -10,20 +10,18 @@
  *  http://www.ietf.org/rfc/rfc1321.txt
  */

-#include "common.h"
+#include "tf_psa_crypto_common.h"

 #if defined(MBEDTLS_MD5_C)

-#include "mbedtls/md5.h"
+#include "mbedtls/private/md5.h"
 #include "mbedtls/platform_util.h"
-#include "mbedtls/error.h"
+#include "mbedtls/private/error_common.h"

 #include <string.h>

 #include "mbedtls/platform.h"

-#if !defined(MBEDTLS_MD5_ALT)
-
 void mbedtls_md5_init(mbedtls_md5_context *ctx)
 {
     memset(ctx, 0, sizeof(mbedtls_md5_context));
@@ -60,9 +58,8 @@ int mbedtls_md5_starts(mbedtls_md5_context *ctx)
     return 0;
 }

-#if !defined(MBEDTLS_MD5_PROCESS_ALT)
-int mbedtls_internal_md5_process(mbedtls_md5_context *ctx,
-                                 const unsigned char data[64])
+static int mbedtls_internal_md5_process(mbedtls_md5_context *ctx,
+                                        const unsigned char data[64])
 {
     struct {
         uint32_t X[16], A, B, C, D;
@@ -195,8 +192,6 @@ int mbedtls_internal_md5_process(mbedtls_md5_context *ctx,
     return 0;
 }

-#endif /* !MBEDTLS_MD5_PROCESS_ALT */
-
 /*
  * MD5 process buffer
  */
@@ -309,8 +304,6 @@ exit:
     return ret;
 }

-#endif /* !MBEDTLS_MD5_ALT */
-
 /*
  * output = MD5( input buffer )
  */
diff --git a/deps/LIEF/third-party/mbedtls/library/md_psa.h b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/md_psa.h
similarity index 94%
rename from deps/LIEF/third-party/mbedtls/library/md_psa.h
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/md_psa.h
index 028ba2409cd..039778c35b9 100644
--- a/deps/LIEF/third-party/mbedtls/library/md_psa.h
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/md_psa.h
@@ -10,7 +10,7 @@
 #ifndef MBEDTLS_MD_PSA_H
 #define MBEDTLS_MD_PSA_H

-#include "common.h"
+#include "tf_psa_crypto_common.h"

 #include "mbedtls/md.h"
 #include "psa/crypto.h"
diff --git a/deps/LIEF/third-party/mbedtls/library/md_wrap.h b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/md_wrap.h
similarity index 95%
rename from deps/LIEF/third-party/mbedtls/library/md_wrap.h
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/md_wrap.h
index dad123540a1..5d71c4978f0 100644
--- a/deps/LIEF/third-party/mbedtls/library/md_wrap.h
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/md_wrap.h
@@ -14,7 +14,7 @@
 #ifndef MBEDTLS_MD_WRAP_H
 #define MBEDTLS_MD_WRAP_H

-#include "mbedtls/build_info.h"
+#include "tf-psa-crypto/build_info.h"

 #include "mbedtls/md.h"

diff --git a/deps/LIEF/third-party/mbedtls/library/memory_buffer_alloc.c b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/memory_buffer_alloc.c
similarity index 99%
rename from deps/LIEF/third-party/mbedtls/library/memory_buffer_alloc.c
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/memory_buffer_alloc.c
index 79b0a8b8fa9..df9da874397 100644
--- a/deps/LIEF/third-party/mbedtls/library/memory_buffer_alloc.c
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/memory_buffer_alloc.c
@@ -5,7 +5,7 @@
  *  SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
  */

-#include "common.h"
+#include "tf_psa_crypto_common.h"

 #if defined(MBEDTLS_MEMORY_BUFFER_ALLOC_C)
 #include "mbedtls/memory_buffer_alloc.h"
diff --git a/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/nist_kw.c b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/nist_kw.c
new file mode 100644
index 00000000000..0a56fdadd07
--- /dev/null
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/nist_kw.c
@@ -0,0 +1,458 @@
+/*
+ *  Implementation of NIST SP 800-38F key wrapping, supporting KW and KWP modes
+ *  only
+ *
+ *  Copyright The Mbed TLS Contributors
+ *  SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+ */
+/*
+ * Definition of Key Wrapping:
+ * https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-38F.pdf
+ * RFC 3394 "Advanced Encryption Standard (AES) Key Wrap Algorithm"
+ * RFC 5649 "Advanced Encryption Standard (AES) Key Wrap with Padding Algorithm"
+ *
+ * Note: RFC 3394 defines different methodology for intermediate operations for
+ * the wrapping and unwrapping operation than the definition in NIST SP 800-38F.
+ */
+
+#include "tf_psa_crypto_common.h"
+
+#if defined(MBEDTLS_NIST_KW_C)
+
+#include "mbedtls/nist_kw.h"
+#include "mbedtls/platform_util.h"
+#include "mbedtls/private/error_common.h"
+#include "mbedtls/constant_time.h"
+#include "constant_time_internal.h"
+
+#include <stdint.h>
+#include <string.h>
+
+#include "mbedtls/platform.h"
+#include "psa/crypto.h"
+
+#define KW_SEMIBLOCK_LENGTH    8
+#define MIN_SEMIBLOCKS_COUNT   3
+
+/*! The 64-bit default integrity check value (ICV) for KW mode. */
+static const unsigned char NIST_KW_ICV1[] = { 0xA6, 0xA6, 0xA6, 0xA6, 0xA6, 0xA6, 0xA6, 0xA6 };
+/*! The 32-bit default integrity check value (ICV) for KWP mode. */
+static const  unsigned char NIST_KW_ICV2[] = { 0xA6, 0x59, 0x59, 0xA6 };
+
+/*
+ * Helper function for Xoring the uint64_t "t" with the encrypted A.
+ * Defined in NIST SP 800-38F section 6.1
+ */
+static void calc_a_xor_t(unsigned char A[KW_SEMIBLOCK_LENGTH], uint64_t t)
+{
+    size_t i = 0;
+    for (i = 0; i < sizeof(t); i++) {
+        A[i] ^= (t >> ((sizeof(t) - 1 - i) * 8)) & 0xff;
+    }
+}
+
+static int verify_input(mbedtls_svc_key_id_t *key)
+{
+    int ret = PSA_SUCCESS;
+
+    psa_key_attributes_t attributes;
+    ret = psa_get_key_attributes(*key, &attributes);
+
+    if (ret == PSA_SUCCESS) {
+
+        /*
+         * Currently NIST KW only supports PSA_KEY_TYPE_AES, so verify this is
+         * set in the key attributes.
+         */
+
+        if (psa_get_key_type(&attributes) != PSA_KEY_TYPE_AES) {
+            ret = PSA_ERROR_INVALID_ARGUMENT;
+        }
+    }
+
+    psa_reset_key_attributes(&attributes);
+
+    return ret;
+}
+
+/*
+ * KW-AE as defined in SP 800-38F section 6.2
+ * KWP-AE as defined in SP 800-38F section 6.3
+ */
+psa_status_t mbedtls_nist_kw_wrap(mbedtls_svc_key_id_t key,
+                                  mbedtls_nist_kw_mode_t mode,
+                                  const unsigned char *input, size_t input_length,
+                                  unsigned char *output, size_t output_size, size_t *output_length)
+{
+    psa_status_t ret = 0;
+    size_t semiblocks = 0, s, olen, padlen = 0, update_output_length, finish_output_length;
+    uint64_t t = 0;
+    unsigned char outbuff[KW_SEMIBLOCK_LENGTH * 2];
+    unsigned char inbuff[KW_SEMIBLOCK_LENGTH * 2];
+    psa_cipher_operation_t wrap_operation = PSA_CIPHER_OPERATION_INIT;
+    *output_length = 0;
+
+    ret = verify_input(&key);
+    if (ret != PSA_SUCCESS) {
+        goto cleanup;
+    }
+
+    ret = psa_cipher_encrypt_setup(&wrap_operation, key, PSA_ALG_ECB_NO_PADDING);
+    if (ret != PSA_SUCCESS) {
+        goto cleanup;
+    }
+
+    /*
+     * Generate the String to work on
+     */
+    if (mode == MBEDTLS_KW_MODE_KW) {
+        if (output_size < input_length + KW_SEMIBLOCK_LENGTH) {
+            ret = PSA_ERROR_BUFFER_TOO_SMALL;
+            goto cleanup;
+        }
+
+        /*
+         * According to SP 800-38F Table 1, the plaintext length for KW
+         * must be between 2 to 2^54-1 semiblocks inclusive.
+         */
+        if (input_length < 16 ||
+#if SIZE_MAX > 0x1FFFFFFFFFFFFF8
+            input_length > 0x1FFFFFFFFFFFFF8 ||
+#endif
+            input_length % KW_SEMIBLOCK_LENGTH != 0) {
+            ret = PSA_ERROR_INVALID_ARGUMENT;
+            goto cleanup;
+        }
+
+        memcpy(output, NIST_KW_ICV1, KW_SEMIBLOCK_LENGTH);
+        memmove(output + KW_SEMIBLOCK_LENGTH, input, input_length);
+    } else { //MBEDTLS_KW_MODE_KWP
+        if (input_length % 8 != 0) {
+            padlen = (8 - (input_length % 8));
+        }
+
+        if (output_size < input_length + KW_SEMIBLOCK_LENGTH + padlen) {
+            ret = PSA_ERROR_BUFFER_TOO_SMALL;
+            goto cleanup;
+        }
+
+        /*
+         * According to SP 800-38F Table 1, the plaintext length for KWP
+         * must be between 1 and 2^32-1 octets inclusive.
+         */
+        if (input_length < 1
+#if SIZE_MAX > 0xFFFFFFFF
+            || input_length > 0xFFFFFFFF
+#endif
+            ) {
+            ret = PSA_ERROR_INVALID_ARGUMENT;
+            goto cleanup;
+        }
+
+        memcpy(output, NIST_KW_ICV2, KW_SEMIBLOCK_LENGTH / 2);
+        MBEDTLS_PUT_UINT32_BE((input_length & 0xffffffff), output,
+                              KW_SEMIBLOCK_LENGTH / 2);
+
+        memcpy(output + KW_SEMIBLOCK_LENGTH, input, input_length);
+        memset(output + KW_SEMIBLOCK_LENGTH + input_length, 0, padlen);
+    }
+    semiblocks = ((input_length + padlen) / KW_SEMIBLOCK_LENGTH) + 1;
+
+    s = 6 * (semiblocks - 1);
+
+    if (mode == MBEDTLS_KW_MODE_KWP
+        && input_length <= KW_SEMIBLOCK_LENGTH) {
+        memcpy(inbuff, output, 16);
+        ret = psa_cipher_update(&wrap_operation,
+                                inbuff, 16, output, output_size, &update_output_length);
+        if (ret != PSA_SUCCESS) {
+            goto cleanup;
+        }
+        ret = psa_cipher_finish(&wrap_operation,
+                                mbedtls_buffer_offset(output, update_output_length),
+                                output_size - update_output_length,
+                                &finish_output_length);
+        if (ret != PSA_SUCCESS) {
+            goto cleanup;
+        }
+        *output_length = update_output_length + finish_output_length;
+    } else {
+        unsigned char *R2 = output + KW_SEMIBLOCK_LENGTH;
+        unsigned char *A = output;
+
+        /*
+         * Do the wrapping function W, as defined in RFC 3394 section 2.2.1
+         */
+        if (semiblocks < MIN_SEMIBLOCKS_COUNT) {
+            ret = PSA_ERROR_INVALID_ARGUMENT;
+            goto cleanup;
+        }
+
+        /* Calculate intermediate values */
+        for (t = 1; t <= s; t++) {
+            memcpy(inbuff, A, KW_SEMIBLOCK_LENGTH);
+            memcpy(inbuff + KW_SEMIBLOCK_LENGTH, R2, KW_SEMIBLOCK_LENGTH);
+
+            ret = psa_cipher_update(&wrap_operation,
+                                    inbuff, 16, outbuff, sizeof(outbuff), &olen);
+            if (ret != PSA_SUCCESS) {
+                goto cleanup;
+            }
+
+            memcpy(A, outbuff, KW_SEMIBLOCK_LENGTH);
+            calc_a_xor_t(A, t);
+
+            memcpy(R2, outbuff + KW_SEMIBLOCK_LENGTH, KW_SEMIBLOCK_LENGTH);
+            R2 += KW_SEMIBLOCK_LENGTH;
+            if (R2 >= output + (semiblocks * KW_SEMIBLOCK_LENGTH)) {
+                R2 = output + KW_SEMIBLOCK_LENGTH;
+            }
+        }
+        if (olen != 16) {
+            ret = PSA_ERROR_CORRUPTION_DETECTED;
+            goto cleanup;
+        }
+    }
+
+    *output_length = semiblocks * KW_SEMIBLOCK_LENGTH;
+
+cleanup:
+
+    if (ret != PSA_SUCCESS && output != NULL) {
+        memset(output, 0, output_size);
+    }
+    psa_cipher_abort(&wrap_operation);
+    mbedtls_platform_zeroize(inbuff, KW_SEMIBLOCK_LENGTH * 2);
+    mbedtls_platform_zeroize(outbuff, KW_SEMIBLOCK_LENGTH * 2);
+
+    return ret;
+}
+
+/*
+ * W-1 function as defined in RFC 3394 section 2.2.2
+ * This function assumes the following:
+ * 1. Output buffer is at least of size ( semiblocks - 1 ) * KW_SEMIBLOCK_LENGTH.
+ * 2. The input buffer is of size semiblocks * KW_SEMIBLOCK_LENGTH.
+ * 3. Minimal number of semiblocks is 3.
+ * 4. A is a buffer to hold the first semiblock of the input buffer.
+ */
+static int unwrap(const unsigned char *input, size_t semiblocks,
+                  unsigned char A[KW_SEMIBLOCK_LENGTH],
+                  unsigned char *output, size_t *output_length, psa_cipher_operation_t *operation)
+{
+    psa_status_t ret = 0;
+    const size_t s = 6 * (semiblocks - 1);
+    size_t part_length;
+    uint64_t t = 0;
+    unsigned char outbuff[KW_SEMIBLOCK_LENGTH * 2];
+    unsigned char inbuff[KW_SEMIBLOCK_LENGTH * 2];
+    unsigned char *R = NULL;
+    *output_length = 0;
+
+    if (semiblocks < MIN_SEMIBLOCKS_COUNT) {
+        ret = PSA_ERROR_INVALID_ARGUMENT;
+        goto cleanup;
+    }
+
+    memcpy(A, input, KW_SEMIBLOCK_LENGTH);
+    memmove(output, input + KW_SEMIBLOCK_LENGTH, (semiblocks - 1) * KW_SEMIBLOCK_LENGTH);
+    R = output + (semiblocks - 2) * KW_SEMIBLOCK_LENGTH;
+
+    /* Calculate intermediate values */
+    for (t = s; t >= 1; t--) {
+        calc_a_xor_t(A, t);
+
+        memcpy(inbuff, A, KW_SEMIBLOCK_LENGTH);
+        memcpy(inbuff + KW_SEMIBLOCK_LENGTH, R, KW_SEMIBLOCK_LENGTH);
+
+        ret = psa_cipher_update(operation,
+                                inbuff, 16, outbuff, sizeof(outbuff), output_length);
+        if (ret != PSA_SUCCESS) {
+            goto cleanup;
+        }
+
+        memcpy(A, outbuff, KW_SEMIBLOCK_LENGTH);
+
+        /* Set R as LSB64 of outbuff */
+        memcpy(R, outbuff + KW_SEMIBLOCK_LENGTH, KW_SEMIBLOCK_LENGTH);
+
+        if (R == output) {
+            R = output + (semiblocks - 2) * KW_SEMIBLOCK_LENGTH;
+        } else {
+            R -= KW_SEMIBLOCK_LENGTH;
+        }
+    }
+
+    ret = psa_cipher_finish(operation,
+                            outbuff + *output_length,
+                            sizeof(outbuff) - *output_length,
+                            &part_length);
+    if (ret != PSA_SUCCESS) {
+        goto cleanup;
+    }
+    *output_length = (semiblocks - 1) * KW_SEMIBLOCK_LENGTH;
+
+cleanup:
+    if (ret != PSA_SUCCESS) {
+        memset(output, 0, (semiblocks - 1) * KW_SEMIBLOCK_LENGTH);
+    }
+    mbedtls_platform_zeroize(inbuff, sizeof(inbuff));
+    mbedtls_platform_zeroize(outbuff, sizeof(outbuff));
+
+    return ret;
+}
+
+/*
+ * KW-AD as defined in SP 800-38F section 6.2
+ * KWP-AD as defined in SP 800-38F section 6.3
+ */
+psa_status_t mbedtls_nist_kw_unwrap(mbedtls_svc_key_id_t key,
+                                    mbedtls_nist_kw_mode_t mode,
+                                    const unsigned char *input, size_t input_length,
+                                    unsigned char *output, size_t output_size,
+                                    size_t *output_length)
+{
+    psa_status_t ret = 0;
+    unsigned char A[KW_SEMIBLOCK_LENGTH];
+    int diff;
+    size_t part_length, padlen = 0, Plen;
+    psa_cipher_operation_t unwrap_operation = PSA_CIPHER_OPERATION_INIT;
+    *output_length = 0;
+
+    ret = verify_input(&key);
+    if (ret != PSA_SUCCESS) {
+        goto cleanup;
+    }
+
+    ret = psa_cipher_decrypt_setup(&unwrap_operation, key, PSA_ALG_ECB_NO_PADDING);
+    if (ret != PSA_SUCCESS) {
+        goto cleanup;
+    }
+    if (output_size < input_length - KW_SEMIBLOCK_LENGTH) {
+        ret = PSA_ERROR_BUFFER_TOO_SMALL;
+        goto cleanup;
+    }
+
+    if (mode == MBEDTLS_KW_MODE_KW) {
+        /*
+         * According to SP 800-38F Table 1, the ciphertext length for KW
+         * must be between 3 to 2^54 semiblocks inclusive.
+         */
+        if (input_length < 24 ||
+#if SIZE_MAX > 0x200000000000000
+            input_length > 0x200000000000000 ||
+#endif
+            input_length % KW_SEMIBLOCK_LENGTH != 0) {
+            ret = PSA_ERROR_INVALID_ARGUMENT;
+            goto cleanup;
+        }
+
+        ret = unwrap(input, input_length / KW_SEMIBLOCK_LENGTH,
+                     A, output, output_length, &unwrap_operation);
+        if (ret != PSA_SUCCESS) {
+            goto cleanup;
+        }
+
+        /* Check ICV in "constant-time" */
+        diff = mbedtls_ct_memcmp(NIST_KW_ICV1, A, KW_SEMIBLOCK_LENGTH);
+
+        if (diff != 0) {
+            ret = PSA_ERROR_INVALID_SIGNATURE;
+            goto cleanup;
+        }
+
+    } else if (mode == MBEDTLS_KW_MODE_KWP) {
+        /*
+         * According to SP 800-38F Table 1, the ciphertext length for KWP
+         * must be between 2 to 2^29 semiblocks inclusive.
+         */
+        if (input_length < KW_SEMIBLOCK_LENGTH * 2 ||
+#if SIZE_MAX > 0x100000000
+            input_length > 0x100000000 ||
+#endif
+            input_length % KW_SEMIBLOCK_LENGTH != 0) {
+            ret = PSA_ERROR_INVALID_ARGUMENT;
+            goto cleanup;
+        }
+
+        if (input_length == KW_SEMIBLOCK_LENGTH * 2) {
+            unsigned char outbuff[KW_SEMIBLOCK_LENGTH * 2];
+            ret = psa_cipher_update(&unwrap_operation,
+                                    input, 16, outbuff, sizeof(outbuff), output_length);
+            if (ret != PSA_SUCCESS) {
+                goto cleanup;
+            }
+            ret = psa_cipher_finish(&unwrap_operation,
+                                    outbuff + *output_length,
+                                    sizeof(outbuff) - *output_length,
+                                    &part_length);
+            if (ret != PSA_SUCCESS) {
+                goto cleanup;
+            }
+
+            memcpy(A, outbuff, KW_SEMIBLOCK_LENGTH);
+            memcpy(output, outbuff + KW_SEMIBLOCK_LENGTH, KW_SEMIBLOCK_LENGTH);
+            mbedtls_platform_zeroize(outbuff, sizeof(outbuff));
+            *output_length = KW_SEMIBLOCK_LENGTH;
+        } else {
+            /* input_length >=  KW_SEMIBLOCK_LENGTH * 3 */
+            ret = unwrap(input, input_length / KW_SEMIBLOCK_LENGTH,
+                         A, output, output_length, &unwrap_operation);
+            if (ret != PSA_SUCCESS) {
+                goto cleanup;
+            }
+        }
+
+        /* Check ICV in "constant-time" */
+        diff = mbedtls_ct_memcmp(NIST_KW_ICV2, A, KW_SEMIBLOCK_LENGTH / 2);
+
+        if (diff != 0) {
+            ret = PSA_ERROR_INVALID_SIGNATURE;
+        }
+
+        Plen = MBEDTLS_GET_UINT32_BE(A, KW_SEMIBLOCK_LENGTH / 2);
+
+        /*
+         * Plen is the length of the plaintext, when the input is valid.
+         * If Plen is larger than the plaintext and padding, padlen will be
+         * larger than 8, because of the type wrap around.
+         */
+        padlen = input_length - KW_SEMIBLOCK_LENGTH - Plen;
+        ret = mbedtls_ct_error_if(mbedtls_ct_uint_gt(padlen, 7),
+                                  PSA_ERROR_INVALID_SIGNATURE, ret);
+        padlen &= 7;
+
+        /* Check padding in "constant-time" */
+        const uint8_t zero[KW_SEMIBLOCK_LENGTH] = { 0 };
+        diff = mbedtls_ct_memcmp_partial(
+            &output[*output_length - KW_SEMIBLOCK_LENGTH], zero,
+            KW_SEMIBLOCK_LENGTH, KW_SEMIBLOCK_LENGTH - padlen, 0);
+
+        if (diff != 0) {
+            ret = PSA_ERROR_INVALID_SIGNATURE;
+        }
+
+        if (ret != PSA_SUCCESS) {
+            goto cleanup;
+        }
+        memset(output + Plen, 0, padlen);
+        *output_length = Plen;
+    } else {
+        ret = PSA_ERROR_NOT_SUPPORTED;
+        goto cleanup;
+    }
+
+cleanup:
+    if (ret != PSA_SUCCESS  && output != NULL) {
+        memset(output, 0, *output_length);
+        *output_length = 0;
+    }
+
+    psa_cipher_abort(&unwrap_operation);
+    mbedtls_platform_zeroize(&diff, sizeof(diff));
+    mbedtls_platform_zeroize(A, sizeof(A));
+
+    return ret;
+}
+
+#endif /* MBEDTLS_NIST_KW_C */
diff --git a/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/oid.c b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/oid.c
new file mode 100644
index 00000000000..67ddf166efa
--- /dev/null
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/oid.c
@@ -0,0 +1,481 @@
+/**
+ * \file oid.c
+ *
+ * \brief Object Identifier (OID) database
+ *
+ *  Copyright The Mbed TLS Contributors
+ *  SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+ */
+
+#include "tf_psa_crypto_common.h"
+
+#include "crypto_oid.h"
+#include "mbedtls/private/rsa.h"
+#include "mbedtls/private/error_common.h"
+#include "mbedtls/pk.h"
+#if defined(MBEDTLS_PK_HAVE_PRIVATE_HEADER)
+#include <mbedtls/private/pk_private.h>
+#endif /* MBEDTLS_PK_HAVE_PRIVATE_HEADER */
+
+#include <stdio.h>
+#include <string.h>
+
+#include "mbedtls/platform.h"
+
+/*
+ * Macro to automatically add the size of #define'd OIDs
+ */
+#define ADD_LEN(s)      s, MBEDTLS_OID_SIZE(s)
+
+/*
+ * Macro to generate mbedtls_oid_descriptor_t - the name and description
+ * fields are present for historical reasons and are no longer used.
+ */
+#define OID_DESCRIPTOR(s, name, description)  { ADD_LEN(s) }
+#define NULL_OID_DESCRIPTOR                   { NULL, 0 }
+
+/*
+ * Macro to generate an internal function for oid_XXX_from_asn1() (used by
+ * the other functions)
+ */
+#define FN_OID_TYPED_FROM_ASN1(TYPE_T, NAME, LIST)                    \
+    static const TYPE_T *oid_ ## NAME ## _from_asn1(                   \
+        const mbedtls_asn1_buf *oid)     \
+    {                                                                   \
+        const TYPE_T *p = (LIST);                                       \
+        const mbedtls_oid_descriptor_t *cur =                           \
+            (const mbedtls_oid_descriptor_t *) p;                       \
+        if (p == NULL || oid == NULL) return NULL;                  \
+        while (cur->asn1 != NULL) {                                    \
+            if (cur->asn1_len == oid->len &&                            \
+                memcmp(cur->asn1, oid->p, oid->len) == 0) {          \
+                return p;                                            \
+            }                                                           \
+            p++;                                                        \
+            cur = (const mbedtls_oid_descriptor_t *) p;                 \
+        }                                                               \
+        return NULL;                                                 \
+    }
+
+/*
+ * Macro to generate a function for retrieving a single attribute from an
+ * mbedtls_oid_descriptor_t wrapper.
+ */
+#define FN_OID_GET_ATTR1(FN_NAME, TYPE_T, TYPE_NAME, ATTR1_TYPE, ATTR1) \
+    int FN_NAME(const mbedtls_asn1_buf *oid, ATTR1_TYPE * ATTR1)                  \
+    {                                                                       \
+        const TYPE_T *data = oid_ ## TYPE_NAME ## _from_asn1(oid);        \
+        if (data == NULL) return MBEDTLS_ERR_OID_NOT_FOUND;            \
+        *ATTR1 = data->ATTR1;                                               \
+        return 0;                                                        \
+    }
+
+/*
+ * Macro to generate a function for retrieving two attributes from an
+ * mbedtls_oid_descriptor_t wrapper.
+ */
+#define FN_OID_GET_ATTR2(FN_NAME, TYPE_T, TYPE_NAME, ATTR1_TYPE, ATTR1,     \
+                         ATTR2_TYPE, ATTR2)                                 \
+    int FN_NAME(const mbedtls_asn1_buf *oid, ATTR1_TYPE * ATTR1,               \
+                ATTR2_TYPE * ATTR2)              \
+    {                                                                           \
+        const TYPE_T *data = oid_ ## TYPE_NAME ## _from_asn1(oid);            \
+        if (data == NULL) return MBEDTLS_ERR_OID_NOT_FOUND;                 \
+        *(ATTR1) = data->ATTR1;                                                 \
+        *(ATTR2) = data->ATTR2;                                                 \
+        return 0;                                                            \
+    }
+
+/*
+ * Macro to generate a function for retrieving the OID based on a single
+ * attribute from a mbedtls_oid_descriptor_t wrapper.
+ */
+#define FN_OID_GET_OID_BY_ATTR1(FN_NAME, TYPE_T, LIST, ATTR1_TYPE, ATTR1)   \
+    int FN_NAME(ATTR1_TYPE ATTR1, const char **oid, size_t *olen)             \
+    {                                                                           \
+        const TYPE_T *cur = (LIST);                                             \
+        while (cur->descriptor.asn1 != NULL) {                                 \
+            if (cur->ATTR1 == (ATTR1)) {                                       \
+                *oid = cur->descriptor.asn1;                                    \
+                *olen = cur->descriptor.asn1_len;                               \
+                return 0;                                                    \
+            }                                                                   \
+            cur++;                                                              \
+        }                                                                       \
+        return MBEDTLS_ERR_OID_NOT_FOUND;                                    \
+    }
+
+/* Note: while the data is shared, ideally individual functions that are used
+ * only for writing or only for parsing should depend specifically on that.
+ * See https://github.com/Mbed-TLS/TF-PSA-Crypto/issues/317
+ */
+#if defined(MBEDTLS_PK_PARSE_C) || defined(MBEDTLS_PK_WRITE_C)
+/*
+ * For PublicKeyInfo (PKCS1, RFC 5480)
+ */
+typedef struct {
+    mbedtls_oid_descriptor_t    descriptor;
+    mbedtls_pk_type_t           pk_alg;
+} oid_pk_alg_t;
+
+static const oid_pk_alg_t oid_pk_alg[] =
+{
+    {
+        OID_DESCRIPTOR(MBEDTLS_OID_PKCS1_RSA,           "rsaEncryption",    "RSA"),
+        MBEDTLS_PK_RSA,
+    },
+    {
+        OID_DESCRIPTOR(MBEDTLS_OID_EC_ALG_UNRESTRICTED, "id-ecPublicKey",   "Generic EC key"),
+        MBEDTLS_PK_ECKEY,
+    },
+    {
+        OID_DESCRIPTOR(MBEDTLS_OID_EC_ALG_ECDH,         "id-ecDH",          "EC key for ECDH"),
+        MBEDTLS_PK_ECKEY_DH,
+    },
+    {
+        NULL_OID_DESCRIPTOR,
+        MBEDTLS_PK_NONE,
+    },
+};
+
+FN_OID_TYPED_FROM_ASN1(oid_pk_alg_t, pk_alg, oid_pk_alg)
+FN_OID_GET_ATTR1(mbedtls_oid_get_pk_alg, oid_pk_alg_t, pk_alg, mbedtls_pk_type_t, pk_alg)
+FN_OID_GET_OID_BY_ATTR1(mbedtls_oid_get_oid_by_pk_alg,
+                        oid_pk_alg_t,
+                        oid_pk_alg,
+                        mbedtls_pk_type_t,
+                        pk_alg)
+
+#if defined(PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY)
+/*
+ * For elliptic curves that use namedCurve inside ECParams (RFC 5480)
+ */
+typedef struct {
+    mbedtls_oid_descriptor_t    descriptor;
+    mbedtls_ecp_group_id        grp_id;
+} oid_ecp_grp_t;
+
+static const oid_ecp_grp_t oid_ecp_grp[] =
+{
+#if defined(PSA_WANT_ECC_SECP_R1_192)
+    {
+        OID_DESCRIPTOR(MBEDTLS_OID_EC_GRP_SECP192R1, "secp192r1",    "secp192r1"),
+        MBEDTLS_ECP_DP_SECP192R1,
+    },
+#endif /* PSA_WANT_ECC_SECP_R1_192 */
+#if defined(PSA_WANT_ECC_SECP_R1_256)
+    {
+        OID_DESCRIPTOR(MBEDTLS_OID_EC_GRP_SECP256R1, "secp256r1",    "secp256r1"),
+        MBEDTLS_ECP_DP_SECP256R1,
+    },
+#endif /* PSA_WANT_ECC_SECP_R1_256 */
+#if defined(PSA_WANT_ECC_SECP_R1_384)
+    {
+        OID_DESCRIPTOR(MBEDTLS_OID_EC_GRP_SECP384R1, "secp384r1",    "secp384r1"),
+        MBEDTLS_ECP_DP_SECP384R1,
+    },
+#endif /* PSA_WANT_ECC_SECP_R1_384 */
+#if defined(PSA_WANT_ECC_SECP_R1_521)
+    {
+        OID_DESCRIPTOR(MBEDTLS_OID_EC_GRP_SECP521R1, "secp521r1",    "secp521r1"),
+        MBEDTLS_ECP_DP_SECP521R1,
+    },
+#endif /* PSA_WANT_ECC_SECP_R1_521 */
+#if defined(PSA_WANT_ECC_SECP_K1_192)
+    {
+        OID_DESCRIPTOR(MBEDTLS_OID_EC_GRP_SECP192K1, "secp192k1",    "secp192k1"),
+        MBEDTLS_ECP_DP_SECP192K1,
+    },
+#endif /* PSA_WANT_ECC_SECP_K1_192 */
+#if defined(PSA_WANT_ECC_SECP_K1_256)
+    {
+        OID_DESCRIPTOR(MBEDTLS_OID_EC_GRP_SECP256K1, "secp256k1",    "secp256k1"),
+        MBEDTLS_ECP_DP_SECP256K1,
+    },
+#endif /* PSA_WANT_ECC_SECP_K1_256 */
+#if defined(PSA_WANT_ECC_BRAINPOOL_P_R1_256)
+    {
+        OID_DESCRIPTOR(MBEDTLS_OID_EC_GRP_BP256R1,   "brainpoolP256r1", "brainpool256r1"),
+        MBEDTLS_ECP_DP_BP256R1,
+    },
+#endif /* PSA_WANT_ECC_BRAINPOOL_P_R1_256 */
+#if defined(PSA_WANT_ECC_BRAINPOOL_P_R1_384)
+    {
+        OID_DESCRIPTOR(MBEDTLS_OID_EC_GRP_BP384R1,   "brainpoolP384r1", "brainpool384r1"),
+        MBEDTLS_ECP_DP_BP384R1,
+    },
+#endif /* PSA_WANT_ECC_BRAINPOOL_P_R1_384 */
+#if defined(PSA_WANT_ECC_BRAINPOOL_P_R1_512)
+    {
+        OID_DESCRIPTOR(MBEDTLS_OID_EC_GRP_BP512R1,   "brainpoolP512r1", "brainpool512r1"),
+        MBEDTLS_ECP_DP_BP512R1,
+    },
+#endif /* PSA_WANT_ECC_BRAINPOOL_P_R1_512 */
+    {
+        NULL_OID_DESCRIPTOR,
+        MBEDTLS_ECP_DP_NONE,
+    },
+};
+
+FN_OID_TYPED_FROM_ASN1(oid_ecp_grp_t, grp_id, oid_ecp_grp)
+FN_OID_GET_ATTR1(mbedtls_oid_get_ec_grp, oid_ecp_grp_t, grp_id, mbedtls_ecp_group_id, grp_id)
+FN_OID_GET_OID_BY_ATTR1(mbedtls_oid_get_oid_by_ec_grp,
+                        oid_ecp_grp_t,
+                        oid_ecp_grp,
+                        mbedtls_ecp_group_id,
+                        grp_id)
+
+/*
+ * For Elliptic Curve algorithms that are directly
+ * encoded in the AlgorithmIdentifier (RFC 8410)
+ */
+typedef struct {
+    mbedtls_oid_descriptor_t    descriptor;
+    mbedtls_ecp_group_id        grp_id;
+} oid_ecp_grp_algid_t;
+
+static const oid_ecp_grp_algid_t oid_ecp_grp_algid[] =
+{
+#if defined(PSA_WANT_ECC_MONTGOMERY_255)
+    {
+        OID_DESCRIPTOR(MBEDTLS_OID_X25519,               "X25519",       "X25519"),
+        MBEDTLS_ECP_DP_CURVE25519,
+    },
+#endif /* PSA_WANT_ECC_MONTGOMERY_255 */
+#if defined(PSA_WANT_ECC_MONTGOMERY_448)
+    {
+        OID_DESCRIPTOR(MBEDTLS_OID_X448,                 "X448",         "X448"),
+        MBEDTLS_ECP_DP_CURVE448,
+    },
+#endif /* PSA_WANT_ECC_MONTGOMERY_448 */
+    {
+        NULL_OID_DESCRIPTOR,
+        MBEDTLS_ECP_DP_NONE,
+    },
+};
+
+FN_OID_TYPED_FROM_ASN1(oid_ecp_grp_algid_t, grp_id_algid, oid_ecp_grp_algid)
+FN_OID_GET_ATTR1(mbedtls_oid_get_ec_grp_algid,
+                 oid_ecp_grp_algid_t,
+                 grp_id_algid,
+                 mbedtls_ecp_group_id,
+                 grp_id)
+FN_OID_GET_OID_BY_ATTR1(mbedtls_oid_get_oid_by_ec_grp_algid,
+                        oid_ecp_grp_algid_t,
+                        oid_ecp_grp_algid,
+                        mbedtls_ecp_group_id,
+                        grp_id)
+#endif /* PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY */
+#endif /* MBEDTLS_PK_PARSE_C || MBEDTLS_PK_WRITE_C */
+
+/*
+ * Note: the optimal dependency would also include CIPHER_C, see
+ * https://github.com/Mbed-TLS/TF-PSA-Crypto/issues/317
+ */
+#if defined(MBEDTLS_PKCS5_C) && defined(MBEDTLS_ASN1_PARSE_C)
+/*
+ * For HMAC digestAlgorithm
+ */
+typedef struct {
+    mbedtls_oid_descriptor_t    descriptor;
+    mbedtls_md_type_t           md_hmac;
+} oid_md_hmac_t;
+
+static const oid_md_hmac_t oid_md_hmac[] =
+{
+#if defined(PSA_WANT_ALG_SHA_1)
+    {
+        OID_DESCRIPTOR(MBEDTLS_OID_HMAC_SHA1,      "hmacSHA1",      "HMAC-SHA-1"),
+        MBEDTLS_MD_SHA1,
+    },
+#endif /* PSA_WANT_ALG_SHA_1 */
+#if defined(PSA_WANT_ALG_SHA_224)
+    {
+        OID_DESCRIPTOR(MBEDTLS_OID_HMAC_SHA224,    "hmacSHA224",    "HMAC-SHA-224"),
+        MBEDTLS_MD_SHA224,
+    },
+#endif /* PSA_WANT_ALG_SHA_224 */
+#if defined(PSA_WANT_ALG_SHA_256)
+    {
+        OID_DESCRIPTOR(MBEDTLS_OID_HMAC_SHA256,    "hmacSHA256",    "HMAC-SHA-256"),
+        MBEDTLS_MD_SHA256,
+    },
+#endif /* PSA_WANT_ALG_SHA_256 */
+#if defined(PSA_WANT_ALG_SHA_384)
+    {
+        OID_DESCRIPTOR(MBEDTLS_OID_HMAC_SHA384,    "hmacSHA384",    "HMAC-SHA-384"),
+        MBEDTLS_MD_SHA384,
+    },
+#endif /* PSA_WANT_ALG_SHA_384 */
+#if defined(PSA_WANT_ALG_SHA_512)
+    {
+        OID_DESCRIPTOR(MBEDTLS_OID_HMAC_SHA512,    "hmacSHA512",    "HMAC-SHA-512"),
+        MBEDTLS_MD_SHA512,
+    },
+#endif /* PSA_WANT_ALG_SHA_512 */
+#if defined(PSA_WANT_ALG_SHA3_224)
+    {
+        OID_DESCRIPTOR(MBEDTLS_OID_HMAC_SHA3_224,    "hmacSHA3-224",    "HMAC-SHA3-224"),
+        MBEDTLS_MD_SHA3_224,
+    },
+#endif /* PSA_WANT_ALG_SHA3_224 */
+#if defined(PSA_WANT_ALG_SHA3_256)
+    {
+        OID_DESCRIPTOR(MBEDTLS_OID_HMAC_SHA3_256,    "hmacSHA3-256",    "HMAC-SHA3-256"),
+        MBEDTLS_MD_SHA3_256,
+    },
+#endif /* PSA_WANT_ALG_SHA3_256 */
+#if defined(PSA_WANT_ALG_SHA3_384)
+    {
+        OID_DESCRIPTOR(MBEDTLS_OID_HMAC_SHA3_384,    "hmacSHA3-384",    "HMAC-SHA3-384"),
+        MBEDTLS_MD_SHA3_384,
+    },
+#endif /* PSA_WANT_ALG_SHA3_384 */
+#if defined(PSA_WANT_ALG_SHA3_512)
+    {
+        OID_DESCRIPTOR(MBEDTLS_OID_HMAC_SHA3_512,    "hmacSHA3-512",    "HMAC-SHA3-512"),
+        MBEDTLS_MD_SHA3_512,
+    },
+#endif /* PSA_WANT_ALG_SHA3_512 */
+#if defined(PSA_WANT_ALG_RIPEMD160)
+    {
+        OID_DESCRIPTOR(MBEDTLS_OID_HMAC_RIPEMD160,    "hmacRIPEMD160",    "HMAC-RIPEMD160"),
+        MBEDTLS_MD_RIPEMD160,
+    },
+#endif /* PSA_WANT_ALG_RIPEMD160 */
+    {
+        NULL_OID_DESCRIPTOR,
+        MBEDTLS_MD_NONE,
+    },
+};
+
+FN_OID_TYPED_FROM_ASN1(oid_md_hmac_t, md_hmac, oid_md_hmac)
+FN_OID_GET_ATTR1(mbedtls_oid_get_md_hmac, oid_md_hmac_t, md_hmac, mbedtls_md_type_t, md_hmac)
+
+#if defined(MBEDTLS_CIPHER_C)
+/*
+ * For PKCS#5 PBES2 encryption algorithm
+ */
+typedef struct {
+    mbedtls_oid_descriptor_t    descriptor;
+    mbedtls_cipher_type_t       cipher_alg;
+} oid_cipher_alg_t;
+
+static const oid_cipher_alg_t oid_cipher_alg[] =
+{
+    {
+        OID_DESCRIPTOR(MBEDTLS_OID_AES_128_CBC,          "aes128-cbc", "AES128-CBC"),
+        MBEDTLS_CIPHER_AES_128_CBC,
+    },
+    {
+        OID_DESCRIPTOR(MBEDTLS_OID_AES_192_CBC,          "aes192-cbc", "AES192-CBC"),
+        MBEDTLS_CIPHER_AES_192_CBC,
+    },
+    {
+        OID_DESCRIPTOR(MBEDTLS_OID_AES_256_CBC,          "aes256-cbc", "AES256-CBC"),
+        MBEDTLS_CIPHER_AES_256_CBC,
+    },
+    {
+        NULL_OID_DESCRIPTOR,
+        MBEDTLS_CIPHER_NONE,
+    },
+};
+
+FN_OID_TYPED_FROM_ASN1(oid_cipher_alg_t, cipher_alg, oid_cipher_alg)
+FN_OID_GET_ATTR1(mbedtls_oid_get_cipher_alg,
+                 oid_cipher_alg_t,
+                 cipher_alg,
+                 mbedtls_cipher_type_t,
+                 cipher_alg)
+#endif /* MBEDTLS_CIPHER_C */
+#endif /* MBEDTLS_PKCS5_C && MBEDTLS_ASN1_PARSE_C */
+
+#if defined(MBEDTLS_RSA_C) && defined(MBEDTLS_PKCS1_V15)
+/*
+ * For digestAlgorithm
+ */
+typedef struct {
+    mbedtls_oid_descriptor_t    descriptor;
+    mbedtls_md_type_t           md_alg;
+} oid_md_alg_t;
+
+static const oid_md_alg_t oid_md_alg[] =
+{
+#if defined(PSA_WANT_ALG_MD5)
+    {
+        OID_DESCRIPTOR(MBEDTLS_OID_DIGEST_ALG_MD5,       "id-md5",       "MD5"),
+        MBEDTLS_MD_MD5,
+    },
+#endif
+#if defined(PSA_WANT_ALG_SHA_1)
+    {
+        OID_DESCRIPTOR(MBEDTLS_OID_DIGEST_ALG_SHA1,      "id-sha1",      "SHA-1"),
+        MBEDTLS_MD_SHA1,
+    },
+#endif
+#if defined(PSA_WANT_ALG_SHA_224)
+    {
+        OID_DESCRIPTOR(MBEDTLS_OID_DIGEST_ALG_SHA224,    "id-sha224",    "SHA-224"),
+        MBEDTLS_MD_SHA224,
+    },
+#endif
+#if defined(PSA_WANT_ALG_SHA_256)
+    {
+        OID_DESCRIPTOR(MBEDTLS_OID_DIGEST_ALG_SHA256,    "id-sha256",    "SHA-256"),
+        MBEDTLS_MD_SHA256,
+    },
+#endif
+#if defined(PSA_WANT_ALG_SHA_384)
+    {
+        OID_DESCRIPTOR(MBEDTLS_OID_DIGEST_ALG_SHA384,    "id-sha384",    "SHA-384"),
+        MBEDTLS_MD_SHA384,
+    },
+#endif
+#if defined(PSA_WANT_ALG_SHA_512)
+    {
+        OID_DESCRIPTOR(MBEDTLS_OID_DIGEST_ALG_SHA512,    "id-sha512",    "SHA-512"),
+        MBEDTLS_MD_SHA512,
+    },
+#endif
+#if defined(PSA_WANT_ALG_RIPEMD160)
+    {
+        OID_DESCRIPTOR(MBEDTLS_OID_DIGEST_ALG_RIPEMD160, "id-ripemd160", "RIPEMD-160"),
+        MBEDTLS_MD_RIPEMD160,
+    },
+#endif
+#if defined(PSA_WANT_ALG_SHA3_224)
+    {
+        OID_DESCRIPTOR(MBEDTLS_OID_DIGEST_ALG_SHA3_224,    "id-sha3-224",    "SHA-3-224"),
+        MBEDTLS_MD_SHA3_224,
+    },
+#endif
+#if defined(PSA_WANT_ALG_SHA3_256)
+    {
+        OID_DESCRIPTOR(MBEDTLS_OID_DIGEST_ALG_SHA3_256,    "id-sha3-256",    "SHA-3-256"),
+        MBEDTLS_MD_SHA3_256,
+    },
+#endif
+#if defined(PSA_WANT_ALG_SHA3_384)
+    {
+        OID_DESCRIPTOR(MBEDTLS_OID_DIGEST_ALG_SHA3_384,    "id-sha3-384",    "SHA-3-384"),
+        MBEDTLS_MD_SHA3_384,
+    },
+#endif
+#if defined(PSA_WANT_ALG_SHA3_512)
+    {
+        OID_DESCRIPTOR(MBEDTLS_OID_DIGEST_ALG_SHA3_512,    "id-sha3-512",    "SHA-3-512"),
+        MBEDTLS_MD_SHA3_512,
+    },
+#endif
+    {
+        NULL_OID_DESCRIPTOR,
+        MBEDTLS_MD_NONE,
+    },
+};
+
+FN_OID_GET_OID_BY_ATTR1(mbedtls_oid_get_oid_by_md,
+                        oid_md_alg_t,
+                        oid_md_alg,
+                        mbedtls_md_type_t,
+                        md_alg)
+#endif /* MBEDTLS_RSA_C && MBEDTLS_PKCS1_V15 */
diff --git a/deps/LIEF/third-party/mbedtls/library/pem.c b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/pem.c
similarity index 78%
rename from deps/LIEF/third-party/mbedtls/library/pem.c
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/pem.c
index 119fd59e129..9934de9c037 100644
--- a/deps/LIEF/third-party/mbedtls/library/pem.c
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/pem.c
@@ -5,34 +5,31 @@
  *  SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
  */

-#include "common.h"
+#include "tf_psa_crypto_common.h"

 #if defined(MBEDTLS_PEM_PARSE_C) || defined(MBEDTLS_PEM_WRITE_C)

 #include "mbedtls/pem.h"
 #include "mbedtls/base64.h"
-#include "mbedtls/des.h"
-#include "mbedtls/aes.h"
+#include "mbedtls/private/aes.h"
 #include "mbedtls/md.h"
-#include "mbedtls/cipher.h"
+#include "mbedtls/private/cipher.h"
 #include "mbedtls/platform_util.h"
-#include "mbedtls/error.h"
+#include "mbedtls/private/error_common.h"

 #include <string.h>

 #include "mbedtls/platform.h"

-#if defined(MBEDTLS_USE_PSA_CRYPTO)
 #include "psa/crypto.h"
-#endif

-#if defined(MBEDTLS_MD_CAN_MD5) &&  \
+#if defined(PSA_WANT_ALG_MD5) &&  \
     defined(MBEDTLS_CIPHER_MODE_CBC) &&                             \
-    (defined(MBEDTLS_DES_C) || defined(MBEDTLS_AES_C))
+    defined(MBEDTLS_AES_C)
 #define PEM_RFC1421
-#endif /* MBEDTLS_MD_CAN_MD5 &&
+#endif /* PSA_WANT_ALG_MD5 &&
           MBEDTLS_CIPHER_MODE_CBC &&
-          ( MBEDTLS_AES_C || MBEDTLS_DES_C ) */
+          MBEDTLS_AES_C */

 #if defined(MBEDTLS_PEM_PARSE_C)
 void mbedtls_pem_init(mbedtls_pem_context *ctx)
@@ -146,68 +143,6 @@ exit:
     return ret;
 }

-#if defined(MBEDTLS_DES_C)
-/*
- * Decrypt with DES-CBC, using PBKDF1 for key derivation
- */
-static int pem_des_decrypt(unsigned char des_iv[8],
-                           unsigned char *buf, size_t buflen,
-                           const unsigned char *pwd, size_t pwdlen)
-{
-    mbedtls_des_context des_ctx;
-    unsigned char des_key[8];
-    int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
-
-    mbedtls_des_init(&des_ctx);
-
-    if ((ret = pem_pbkdf1(des_key, 8, des_iv, pwd, pwdlen)) != 0) {
-        goto exit;
-    }
-
-    if ((ret = mbedtls_des_setkey_dec(&des_ctx, des_key)) != 0) {
-        goto exit;
-    }
-    ret = mbedtls_des_crypt_cbc(&des_ctx, MBEDTLS_DES_DECRYPT, buflen,
-                                des_iv, buf, buf);
-
-exit:
-    mbedtls_des_free(&des_ctx);
-    mbedtls_platform_zeroize(des_key, 8);
-
-    return ret;
-}
-
-/*
- * Decrypt with 3DES-CBC, using PBKDF1 for key derivation
- */
-static int pem_des3_decrypt(unsigned char des3_iv[8],
-                            unsigned char *buf, size_t buflen,
-                            const unsigned char *pwd, size_t pwdlen)
-{
-    mbedtls_des3_context des3_ctx;
-    unsigned char des3_key[24];
-    int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
-
-    mbedtls_des3_init(&des3_ctx);
-
-    if ((ret = pem_pbkdf1(des3_key, 24, des3_iv, pwd, pwdlen)) != 0) {
-        goto exit;
-    }
-
-    if ((ret = mbedtls_des3_set3key_dec(&des3_ctx, des3_key)) != 0) {
-        goto exit;
-    }
-    ret = mbedtls_des3_crypt_cbc(&des3_ctx, MBEDTLS_DES_DECRYPT, buflen,
-                                 des3_iv, buf, buf);
-
-exit:
-    mbedtls_des3_free(&des3_ctx);
-    mbedtls_platform_zeroize(des3_key, 24);
-
-    return ret;
-}
-#endif /* MBEDTLS_DES_C */
-
 #if defined(MBEDTLS_AES_C)
 /*
  * Decrypt with AES-XXX-CBC, using PBKDF1 for key derivation
@@ -240,7 +175,7 @@ exit:
 }
 #endif /* MBEDTLS_AES_C */

-#if defined(MBEDTLS_DES_C) || defined(MBEDTLS_AES_C)
+#if defined(MBEDTLS_AES_C)
 static int pem_check_pkcs_padding(unsigned char *input, size_t input_len, size_t *data_len)
 {
     /* input_len > 0 is not guaranteed by mbedtls_pem_read_buffer(). */
@@ -264,7 +199,7 @@ static int pem_check_pkcs_padding(unsigned char *input, size_t input_len, size_t

     return 0;
 }
-#endif /* MBEDTLS_DES_C || MBEDTLS_AES_C */
+#endif /* MBEDTLS_AES_C */

 #endif /* PEM_RFC1421 */

@@ -342,29 +277,6 @@ int mbedtls_pem_read_buffer(mbedtls_pem_context *ctx, const char *header, const
             return MBEDTLS_ERR_PEM_INVALID_DATA;
         }

-
-#if defined(MBEDTLS_DES_C)
-        if (s2 - s1 >= 23 && memcmp(s1, "DEK-Info: DES-EDE3-CBC,", 23) == 0) {
-            enc_alg = MBEDTLS_CIPHER_DES_EDE3_CBC;
-
-            s1 += 23;
-            if (s2 - s1 < 16 || pem_get_iv(s1, pem_iv, 8) != 0) {
-                return MBEDTLS_ERR_PEM_INVALID_ENC_IV;
-            }
-
-            s1 += 16;
-        } else if (s2 - s1 >= 18 && memcmp(s1, "DEK-Info: DES-CBC,", 18) == 0) {
-            enc_alg = MBEDTLS_CIPHER_DES_CBC;
-
-            s1 += 18;
-            if (s2 - s1 < 16 || pem_get_iv(s1, pem_iv, 8) != 0) {
-                return MBEDTLS_ERR_PEM_INVALID_ENC_IV;
-            }
-
-            s1 += 16;
-        }
-#endif /* MBEDTLS_DES_C */
-
 #if defined(MBEDTLS_AES_C)
         if (s2 - s1 >= 14 && memcmp(s1, "DEK-Info: AES-", 14) == 0) {
             if (s2 - s1 < 22) {
@@ -437,14 +349,6 @@ int mbedtls_pem_read_buffer(mbedtls_pem_context *ctx, const char *header, const

         ret = 0;

-#if defined(MBEDTLS_DES_C)
-        if (enc_alg == MBEDTLS_CIPHER_DES_EDE3_CBC) {
-            ret = pem_des3_decrypt(pem_iv, buf, len, pwd, pwdlen);
-        } else if (enc_alg == MBEDTLS_CIPHER_DES_CBC) {
-            ret = pem_des_decrypt(pem_iv, buf, len, pwd, pwdlen);
-        }
-#endif /* MBEDTLS_DES_C */
-
 #if defined(MBEDTLS_AES_C)
         if (enc_alg == MBEDTLS_CIPHER_AES_128_CBC) {
             ret = pem_aes_decrypt(pem_iv, 16, buf, len, pwd, pwdlen);
diff --git a/deps/LIEF/third-party/mbedtls/library/pk.c b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/pk.c
similarity index 66%
rename from deps/LIEF/third-party/mbedtls/library/pk.c
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/pk.c
index 51f0c240885..f4161f78751 100644
--- a/deps/LIEF/third-party/mbedtls/library/pk.c
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/pk.c
@@ -5,26 +5,31 @@
  *  SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
  */

-#include "common.h"
+/*
+ * This file is private and for internal
+ * use only.
+ */
+#define MBEDTLS_DECLARE_PRIVATE_IDENTIFIERS
+
+#include "tf_psa_crypto_common.h"

 #if defined(MBEDTLS_PK_C)
 #include "mbedtls/pk.h"
+#if defined(MBEDTLS_PK_HAVE_PRIVATE_HEADER)
+#include <mbedtls/private/pk_private.h>
+#endif /* MBEDTLS_PK_HAVE_PRIVATE_HEADER */
 #include "pk_wrap.h"
 #include "pkwrite.h"
 #include "pk_internal.h"

 #include "mbedtls/platform_util.h"
-#include "mbedtls/error.h"
+#include "mbedtls/private/error_common.h"

-#if defined(MBEDTLS_RSA_C)
-#include "mbedtls/rsa.h"
-#include "rsa_internal.h"
-#endif
-#if defined(MBEDTLS_PK_HAVE_ECC_KEYS)
-#include "mbedtls/ecp.h"
+#if defined(PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY)
+#include "mbedtls/private/ecp.h"
 #endif
 #if defined(MBEDTLS_ECDSA_C)
-#include "mbedtls/ecdsa.h"
+#include "mbedtls/private/ecdsa.h"
 #endif

 #if defined(MBEDTLS_PSA_CRYPTO_CLIENT)
@@ -40,17 +45,25 @@
  */
 void mbedtls_pk_init(mbedtls_pk_context *ctx)
 {
+    /*
+     * Note: if any of the fields needs to be initialized to non-zero,
+     * we need to add a call to this as the end of mbedtls_pk_free()!
+     */
     ctx->pk_info = NULL;
     ctx->pk_ctx = NULL;
-#if defined(MBEDTLS_USE_PSA_CRYPTO)
     ctx->priv_id = MBEDTLS_SVC_KEY_ID_INIT;
-#endif /* MBEDTLS_USE_PSA_CRYPTO */
-#if defined(MBEDTLS_PK_USE_PSA_EC_DATA)
+#if defined(PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY) || defined(PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY)
     memset(ctx->pub_raw, 0, sizeof(ctx->pub_raw));
     ctx->pub_raw_len = 0;
+    ctx->bits = 0;
+#endif /* PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY || PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY */
+#if defined(PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY)
     ctx->ec_family = 0;
-    ctx->ec_bits = 0;
-#endif /* MBEDTLS_PK_USE_PSA_EC_DATA */
+#endif /* PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY */
+#if defined(PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY)
+    ctx->rsa_padding = MBEDTLS_PK_RSA_PKCS_V15;
+    ctx->rsa_hash_alg = PSA_ALG_ANY_HASH;
+#endif /* PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY */
 }

 /*
@@ -66,18 +79,17 @@ void mbedtls_pk_free(mbedtls_pk_context *ctx)
         ctx->pk_info->ctx_free_func(ctx->pk_ctx);
     }

-#if defined(MBEDTLS_PK_USE_PSA_EC_DATA)
     /* The ownership of the priv_id key for opaque keys is external of the PK
      * module. It's the user responsibility to clear it after use. */
     if ((ctx->pk_info != NULL) && (ctx->pk_info->type != MBEDTLS_PK_OPAQUE)) {
         psa_destroy_key(ctx->priv_id);
     }
-#endif /* MBEDTLS_PK_USE_PSA_EC_DATA */

+    /* Leaves the context in the same state as mbedtls_pk_init(). */
     mbedtls_platform_zeroize(ctx, sizeof(mbedtls_pk_context));
 }

-#if defined(MBEDTLS_ECDSA_C) && defined(MBEDTLS_ECP_RESTARTABLE)
+#if defined(MBEDTLS_ECP_RESTARTABLE)
 /*
  * Initialize a restart context
  */
@@ -102,7 +114,7 @@ void mbedtls_pk_restart_free(mbedtls_pk_restart_ctx *ctx)
     ctx->pk_info = NULL;
     ctx->rs_ctx = NULL;
 }
-#endif /* MBEDTLS_ECDSA_C && MBEDTLS_ECP_RESTARTABLE */
+#endif /* MBEDTLS_ECP_RESTARTABLE */

 /*
  * Get pk_info structure from type
@@ -110,21 +122,20 @@ void mbedtls_pk_restart_free(mbedtls_pk_restart_ctx *ctx)
 const mbedtls_pk_info_t *mbedtls_pk_info_from_type(mbedtls_pk_type_t pk_type)
 {
     switch (pk_type) {
-#if defined(MBEDTLS_RSA_C)
+#if defined(PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY)
         case MBEDTLS_PK_RSA:
             return &mbedtls_rsa_info;
-#endif /* MBEDTLS_RSA_C */
-#if defined(MBEDTLS_PK_HAVE_ECC_KEYS)
+#endif /* PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY */
+#if defined(PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY)
         case MBEDTLS_PK_ECKEY:
             return &mbedtls_eckey_info;
         case MBEDTLS_PK_ECKEY_DH:
             return &mbedtls_eckeydh_info;
-#endif /* MBEDTLS_PK_HAVE_ECC_KEYS */
-#if defined(MBEDTLS_PK_CAN_ECDSA_SOME)
+#endif /* PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY */
+#if defined(PSA_HAVE_ALG_SOME_ECDSA)
         case MBEDTLS_PK_ECDSA:
             return &mbedtls_ecdsa_info;
-#endif /* MBEDTLS_PK_CAN_ECDSA_SOME */
-        /* MBEDTLS_PK_RSA_ALT omitted on purpose */
+#endif /* PSA_HAVE_ALG_SOME_ECDSA */
         default:
             return NULL;
     }
@@ -149,12 +160,11 @@ int mbedtls_pk_setup(mbedtls_pk_context *ctx, const mbedtls_pk_info_t *info)
     return 0;
 }

-#if defined(MBEDTLS_USE_PSA_CRYPTO)
 /*
  * Initialise a PSA-wrapping context
  */
-int mbedtls_pk_setup_opaque(mbedtls_pk_context *ctx,
-                            const mbedtls_svc_key_id_t key)
+int mbedtls_pk_wrap_psa(mbedtls_pk_context *ctx,
+                        const mbedtls_svc_key_id_t key)
 {
     const mbedtls_pk_info_t *info = NULL;
     psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT;
@@ -170,11 +180,11 @@ int mbedtls_pk_setup_opaque(mbedtls_pk_context *ctx,
     type = psa_get_key_type(&attributes);
     psa_reset_key_attributes(&attributes);

-#if defined(MBEDTLS_PK_HAVE_ECC_KEYS)
+#if defined(PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY)
     if (PSA_KEY_TYPE_IS_ECC_KEY_PAIR(type)) {
         info = &mbedtls_ecdsa_opaque_info;
     } else
-#endif /* MBEDTLS_PK_HAVE_ECC_KEYS */
+#endif /* PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY */
     if (type == PSA_KEY_TYPE_RSA_KEY_PAIR) {
         info = &mbedtls_rsa_opaque_info;
     } else {
@@ -186,40 +196,6 @@ int mbedtls_pk_setup_opaque(mbedtls_pk_context *ctx,

     return 0;
 }
-#endif /* MBEDTLS_USE_PSA_CRYPTO */
-
-#if defined(MBEDTLS_PK_RSA_ALT_SUPPORT)
-/*
- * Initialize an RSA-alt context
- */
-int mbedtls_pk_setup_rsa_alt(mbedtls_pk_context *ctx, void *key,
-                             mbedtls_pk_rsa_alt_decrypt_func decrypt_func,
-                             mbedtls_pk_rsa_alt_sign_func sign_func,
-                             mbedtls_pk_rsa_alt_key_len_func key_len_func)
-{
-    mbedtls_rsa_alt_context *rsa_alt;
-    const mbedtls_pk_info_t *info = &mbedtls_rsa_alt_info;
-
-    if (ctx->pk_info != NULL) {
-        return MBEDTLS_ERR_PK_BAD_INPUT_DATA;
-    }
-
-    if ((ctx->pk_ctx = info->ctx_alloc_func()) == NULL) {
-        return MBEDTLS_ERR_PK_ALLOC_FAILED;
-    }
-
-    ctx->pk_info = info;
-
-    rsa_alt = (mbedtls_rsa_alt_context *) ctx->pk_ctx;
-
-    rsa_alt->key = key;
-    rsa_alt->decrypt_func = decrypt_func;
-    rsa_alt->sign_func = sign_func;
-    rsa_alt->key_len_func = key_len_func;
-
-    return 0;
-}
-#endif /* MBEDTLS_PK_RSA_ALT_SUPPORT */

 /*
  * Tell if a PK can do the operations of the given type
@@ -236,7 +212,6 @@ int mbedtls_pk_can_do(const mbedtls_pk_context *ctx, mbedtls_pk_type_t type)
     return ctx->pk_info->can_do(type);
 }

-#if defined(MBEDTLS_USE_PSA_CRYPTO)
 /*
  * Tell if a PK can do the operations of the given PSA algorithm
  */
@@ -373,30 +348,197 @@ int mbedtls_pk_can_do_ext(const mbedtls_pk_context *ctx, psa_algorithm_t alg,

     return 0;
 }
-#endif /* MBEDTLS_USE_PSA_CRYPTO */

-#if defined(MBEDTLS_PSA_CRYPTO_CLIENT)
-#if defined(MBEDTLS_RSA_C)
-static psa_algorithm_t psa_algorithm_for_rsa(const mbedtls_rsa_context *rsa,
-                                             int want_crypt)
+/* Check that the specified check_alg is compatible with key's type and algorithm.
+ *
+ * check_alg: the algorithm to verify compatibility for.
+ * key_type: type of key being checked.
+ * key_alg: algorithm associated with the key. This can be the main algorithm or
+ *          the enrollment one, depending on which of the 2 is passed when calling
+ *          this function.
+ */
+static int is_alg_compatible_with_key(psa_algorithm_t check_alg,
+                                      psa_key_type_t key_type,
+                                      psa_algorithm_t key_alg)
 {
-    if (mbedtls_rsa_get_padding_mode(rsa) == MBEDTLS_RSA_PKCS_V21) {
-        if (want_crypt) {
-            mbedtls_md_type_t md_type = (mbedtls_md_type_t) mbedtls_rsa_get_md_alg(rsa);
-            return PSA_ALG_RSA_OAEP(mbedtls_md_psa_alg_from_type(md_type));
+    /* Ensure that check_alg is compatible with key type */
+    if (PSA_KEY_TYPE_IS_ECC(key_type)) {
+        psa_ecc_family_t key_ec_family = PSA_KEY_TYPE_ECC_GET_FAMILY(key_type);
+        if (PSA_ECC_FAMILY_IS_WEIERSTRASS(key_ec_family)) {
+            if (!(PSA_ALG_IS_ECDH(check_alg) || PSA_ALG_IS_ECDSA(check_alg))) {
+                return 0;
+            }
+        } else if (key_ec_family == PSA_ECC_FAMILY_MONTGOMERY) {
+            if (!PSA_ALG_IS_ECDH(check_alg)) {
+                return 0;
+            }
+        } else if (key_ec_family == PSA_ECC_FAMILY_TWISTED_EDWARDS) {
+            if (!(PSA_ALG_IS_HASH_EDDSA(check_alg) || check_alg == PSA_ALG_PURE_EDDSA)) {
+                return 0;
+            }
         } else {
-            return PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_ANY_HASH);
+            return 0;
+        }
+    } else if (PSA_KEY_TYPE_IS_RSA(key_type)) {
+        if (!(PSA_ALG_IS_RSA_PKCS1V15_SIGN(check_alg) || PSA_ALG_IS_RSA_PSS(check_alg) ||
+              PSA_ALG_IS_RSA_OAEP(check_alg) || (check_alg == PSA_ALG_RSA_PKCS1V15_CRYPT))) {
+            return 0;
         }
     } else {
-        if (want_crypt) {
-            return PSA_ALG_RSA_PKCS1V15_CRYPT;
-        } else {
-            return PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_ANY_HASH);
+        /* Unsupported key type */
+        return 0;
+    }
+
+    /* Simplest case: perfect match */
+    if (check_alg == key_alg) {
+        return 1;
+    }
+
+    /* Check for PSA_ALG_ANY_HASH wildcard. */
+    if (PSA_ALG_IS_SIGN_HASH(key_alg) && PSA_ALG_IS_SIGN_HASH(check_alg)) {
+        if ((PSA_ALG_SIGN_GET_HASH(key_alg) == PSA_ALG_ANY_HASH) &&
+            (check_alg & ~PSA_ALG_HASH_MASK) == (key_alg & ~PSA_ALG_HASH_MASK)) {
+            return 1;
         }
     }
+
+    return 0;
 }
-#endif /* MBEDTLS_RSA_C */

+static int is_psa_key_compatible_with_alg_usage(mbedtls_svc_key_id_t key_id,
+                                                psa_algorithm_t alg,
+                                                psa_key_usage_t usage)
+{
+    psa_key_attributes_t key_attr = PSA_KEY_ATTRIBUTES_INIT;
+    psa_key_type_t key_type;
+    int ret = 0;
+
+    if (psa_get_key_attributes(key_id, &key_attr) != PSA_SUCCESS) {
+        return 0;
+    }
+
+    key_type = psa_get_key_type(&key_attr);
+
+    /* PSA_KEY_USAGE_DERIVE_PUBLIC deserves a special treatment (see the
+     * definition of the symbol for further details). Therefore we skip normal
+     * checks and only verify that the key is an ECC one and that the requested
+     * algorithm is PSA_ALG_ECDH.
+     */
+    if ((usage == PSA_KEY_USAGE_DERIVE_PUBLIC) && (alg == PSA_ALG_ECDH) &&
+        PSA_KEY_TYPE_IS_ECC(key_type)) {
+        ret = 1;
+        goto exit;
+    }
+
+    ret = ((psa_get_key_usage_flags(&key_attr) & usage) == usage);
+    if (ret == 0) {
+        goto exit;
+    }
+
+    ret = is_alg_compatible_with_key(alg, key_type, psa_get_key_algorithm(&key_attr));
+#if defined(MBEDTLS_PSA_CRYPTO_C)
+    ret |= is_alg_compatible_with_key(alg, key_type, psa_get_key_enrollment_algorithm(&key_attr));
+#endif /* MBEDTLS_PSA_CRYPTO_C */
+
+exit:
+    psa_reset_key_attributes(&key_attr);
+
+    return ret;
+}
+
+int mbedtls_pk_can_do_psa(const mbedtls_pk_context *pk, psa_algorithm_t alg,
+                          psa_key_usage_t usage)
+{
+    /* A context with null pk_info is not set up yet and can't do anything. */
+    if (pk == NULL || pk->pk_info == NULL) {
+        return 0;
+    }
+
+    /* Check algorithm <-> usage compatibility. */
+    switch (usage) {
+        case PSA_KEY_USAGE_SIGN_HASH:
+        case PSA_KEY_USAGE_VERIFY_HASH:
+            if (!PSA_ALG_IS_SIGN_HASH(alg)) {
+                return 0;
+            }
+            break;
+        case PSA_KEY_USAGE_DECRYPT:
+        case PSA_KEY_USAGE_ENCRYPT:
+            if (!((alg == PSA_ALG_RSA_PKCS1V15_CRYPT) || PSA_ALG_IS_RSA_OAEP(alg))) {
+                return 0;
+            }
+            break;
+        case PSA_KEY_USAGE_DERIVE:
+        case PSA_KEY_USAGE_DERIVE_PUBLIC:
+            if (!PSA_ALG_IS_ECDH(alg)) {
+                return 0;
+            }
+            break;
+        default:
+            /* Reject unknown usages or multiple flags */
+            return 0;
+    }
+
+    /* Basic checks on private and public keys availability */
+    int has_private = !mbedtls_svc_key_id_is_null(pk->priv_id);
+    int has_public = has_private || (pk->pub_raw_len > 0);
+    int want_private = ((usage & (PSA_KEY_USAGE_SIGN_HASH |
+                                  PSA_KEY_USAGE_DECRYPT |
+                                  PSA_KEY_USAGE_DERIVE)) != 0);
+    if ((!has_public && !has_private) ||
+        (want_private && !has_private)) {
+        return 0;
+    }
+
+    if (mbedtls_pk_get_type(pk) == MBEDTLS_PK_OPAQUE) {
+        return is_psa_key_compatible_with_alg_usage(pk->priv_id, alg, usage);
+    } else if (has_private) {
+        return is_psa_key_compatible_with_alg_usage(pk->priv_id, alg, usage);
+    } else {
+        mbedtls_pk_type_t pk_type = mbedtls_pk_get_type(pk);
+        switch (pk_type) {
+#if defined(PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY)
+            case MBEDTLS_PK_RSA:
+            case MBEDTLS_PK_RSASSA_PSS:
+                if (PSA_ALG_IS_RSA_OAEP(alg) ||
+                    PSA_ALG_IS_RSA_PSS(alg) ||
+                    PSA_ALG_IS_RSA_PKCS1V15_SIGN(alg) ||
+                    (alg == PSA_ALG_RSA_PKCS1V15_CRYPT)) {
+                    return 1;
+                }
+                break;
+#endif /* PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY */
+
+#if defined(PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY)
+            case MBEDTLS_PK_ECKEY:
+                if (PSA_ALG_IS_ECDH(alg) ||
+                    (PSA_ALG_IS_ECDSA(alg) && pk->ec_family != PSA_ECC_FAMILY_MONTGOMERY)) {
+                    return 1;
+                }
+                break;
+
+            case MBEDTLS_PK_ECDSA:
+                if (PSA_ALG_IS_ECDSA(alg) && pk->ec_family != PSA_ECC_FAMILY_MONTGOMERY) {
+                    return 1;
+                }
+                break;
+
+            case MBEDTLS_PK_ECKEY_DH:
+                if (PSA_ALG_IS_ECDH(alg)) {
+                    return 1;
+                }
+                break;
+#endif /* PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY */
+
+            default:
+                return 0;
+        }
+    }
+
+    return 0;
+}
+
+#if defined(MBEDTLS_PSA_CRYPTO_CLIENT)
 int mbedtls_pk_get_psa_attributes(const mbedtls_pk_context *pk,
                                   psa_key_usage_t usage,
                                   psa_key_attributes_t *attributes)
@@ -418,28 +560,25 @@ int mbedtls_pk_get_psa_attributes(const mbedtls_pk_context *pk,
                          usage == PSA_KEY_USAGE_ENCRYPT);

     switch (pk_type) {
-#if defined(MBEDTLS_RSA_C)
+#if defined(PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY)
         case MBEDTLS_PK_RSA:
         {
-            int want_crypt = 0; /* 0: sign/verify; 1: encrypt/decrypt */
+            psa_algorithm_t alg = 0;
             switch (usage) {
                 case PSA_KEY_USAGE_SIGN_MESSAGE:
                 case PSA_KEY_USAGE_SIGN_HASH:
                 case PSA_KEY_USAGE_VERIFY_MESSAGE:
                 case PSA_KEY_USAGE_VERIFY_HASH:
-                    /* Nothing to do. */
+                    alg = PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_ANY_HASH);
                     break;
                 case PSA_KEY_USAGE_DECRYPT:
                 case PSA_KEY_USAGE_ENCRYPT:
-                    want_crypt = 1;
+                    alg = PSA_ALG_RSA_PKCS1V15_CRYPT;
                     break;
                 default:
                     return MBEDTLS_ERR_PK_TYPE_MISMATCH;
             }
-            /* Detect the presence of a private key in a way that works both
-             * in CRT and non-CRT configurations. */
-            mbedtls_rsa_context *rsa = mbedtls_pk_rsa(*pk);
-            int has_private = (mbedtls_rsa_check_privkey(rsa) == 0);
+            int has_private = !mbedtls_svc_key_id_is_null(pk->priv_id);
             if (want_private && !has_private) {
                 return MBEDTLS_ERR_PK_TYPE_MISMATCH;
             }
@@ -447,34 +586,26 @@ int mbedtls_pk_get_psa_attributes(const mbedtls_pk_context *pk,
                                           PSA_KEY_TYPE_RSA_KEY_PAIR :
                                           PSA_KEY_TYPE_RSA_PUBLIC_KEY));
             psa_set_key_bits(attributes, mbedtls_pk_get_bitlen(pk));
-            psa_set_key_algorithm(attributes,
-                                  psa_algorithm_for_rsa(rsa, want_crypt));
+            psa_set_key_algorithm(attributes, alg);
             break;
         }
-#endif /* MBEDTLS_RSA_C */
+#endif /* PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY */

-#if defined(MBEDTLS_PK_HAVE_ECC_KEYS)
+#if defined(PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY)
         case MBEDTLS_PK_ECKEY:
         case MBEDTLS_PK_ECKEY_DH:
         case MBEDTLS_PK_ECDSA:
         {
             int sign_ok = (pk_type != MBEDTLS_PK_ECKEY_DH);
             int derive_ok = (pk_type != MBEDTLS_PK_ECDSA);
-#if defined(MBEDTLS_PK_USE_PSA_EC_DATA)
             psa_ecc_family_t family = pk->ec_family;
-            size_t bits = pk->ec_bits;
+            size_t bits = pk->bits;
             int has_private = 0;
-            if (pk->priv_id != MBEDTLS_SVC_KEY_ID_INIT) {
+            psa_algorithm_t alg = 0;
+
+            if (!mbedtls_svc_key_id_is_null(pk->priv_id)) {
                 has_private = 1;
             }
-#else
-            const mbedtls_ecp_keypair *ec = mbedtls_pk_ec_ro(*pk);
-            int has_private = (ec->d.n != 0);
-            size_t bits = 0;
-            psa_ecc_family_t family =
-                mbedtls_ecc_group_to_psa(ec->grp.id, &bits);
-#endif
-            psa_algorithm_t alg = 0;
             switch (usage) {
                 case PSA_KEY_USAGE_SIGN_MESSAGE:
                 case PSA_KEY_USAGE_SIGN_HASH:
@@ -483,11 +614,7 @@ int mbedtls_pk_get_psa_attributes(const mbedtls_pk_context *pk,
                     if (!sign_ok) {
                         return MBEDTLS_ERR_PK_TYPE_MISMATCH;
                     }
-#if defined(MBEDTLS_ECDSA_DETERMINISTIC)
-                    alg = PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_ANY_HASH);
-#else
-                    alg = PSA_ALG_ECDSA(PSA_ALG_ANY_HASH);
-#endif
+                    alg = MBEDTLS_PK_ALG_ECDSA(PSA_ALG_ANY_HASH);
                     break;
                 case PSA_KEY_USAGE_DERIVE:
                     alg = PSA_ALG_ECDH;
@@ -508,14 +635,8 @@ int mbedtls_pk_get_psa_attributes(const mbedtls_pk_context *pk,
             psa_set_key_algorithm(attributes, alg);
             break;
         }
-#endif /* MBEDTLS_PK_HAVE_ECC_KEYS */
-
-#if defined(MBEDTLS_PK_RSA_ALT_SUPPORT)
-        case MBEDTLS_PK_RSA_ALT:
-            return MBEDTLS_ERR_PK_FEATURE_UNAVAILABLE;
-#endif /* MBEDTLS_PK_RSA_ALT_SUPPORT */
+#endif /* PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY */

-#if defined(MBEDTLS_USE_PSA_CRYPTO)
         case MBEDTLS_PK_OPAQUE:
         {
             psa_key_attributes_t old_attributes = PSA_KEY_ATTRIBUTES_INIT;
@@ -565,7 +686,6 @@ int mbedtls_pk_get_psa_attributes(const mbedtls_pk_context *pk,
             psa_set_key_algorithm(attributes, psa_get_key_algorithm(&old_attributes));
             break;
         }
-#endif /* MBEDTLS_USE_PSA_CRYPTO */

         default:
             return MBEDTLS_ERR_PK_BAD_INPUT_DATA;
@@ -584,7 +704,6 @@ int mbedtls_pk_get_psa_attributes(const mbedtls_pk_context *pk,
     return 0;
 }

-#if defined(MBEDTLS_PK_USE_PSA_EC_DATA) || defined(MBEDTLS_USE_PSA_CRYPTO)
 static psa_status_t export_import_into_psa(mbedtls_svc_key_id_t old_key_id,
                                            const psa_key_attributes_t *attributes,
                                            mbedtls_svc_key_id_t *new_key_id)
@@ -636,38 +755,27 @@ static int copy_into_psa(mbedtls_svc_key_id_t old_key_id,
     }
     return PSA_PK_TO_MBEDTLS_ERR(status);
 }
-#endif /* MBEDTLS_PK_USE_PSA_EC_DATA || MBEDTLS_USE_PSA_CRYPTO */

 static int import_pair_into_psa(const mbedtls_pk_context *pk,
                                 const psa_key_attributes_t *attributes,
                                 mbedtls_svc_key_id_t *key_id)
 {
     switch (mbedtls_pk_get_type(pk)) {
-#if defined(MBEDTLS_RSA_C)
+#if defined(PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY)
         case MBEDTLS_PK_RSA:
         {
             if (psa_get_key_type(attributes) != PSA_KEY_TYPE_RSA_KEY_PAIR) {
                 return MBEDTLS_ERR_PK_TYPE_MISMATCH;
             }
-            unsigned char key_buffer[
-                PSA_KEY_EXPORT_RSA_KEY_PAIR_MAX_SIZE(PSA_VENDOR_RSA_MAX_KEY_BITS)];
-            unsigned char *const key_end = key_buffer + sizeof(key_buffer);
-            unsigned char *key_data = key_end;
-            int ret = mbedtls_rsa_write_key(mbedtls_pk_rsa(*pk),
-                                            key_buffer, &key_data);
-            if (ret < 0) {
-                return ret;
+            if (mbedtls_svc_key_id_is_null(pk->priv_id)) {
+                /* We have a public key and want a key pair. */
+                return MBEDTLS_ERR_PK_TYPE_MISMATCH;
             }
-            size_t key_length = key_end - key_data;
-            ret = PSA_PK_TO_MBEDTLS_ERR(psa_import_key(attributes,
-                                                       key_data, key_length,
-                                                       key_id));
-            mbedtls_platform_zeroize(key_data, key_length);
-            return ret;
+            return copy_into_psa(pk->priv_id, attributes, key_id);
         }
-#endif /* MBEDTLS_RSA_C */
+#endif /* PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY */

-#if defined(MBEDTLS_PK_HAVE_ECC_KEYS)
+#if defined(PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY)
         case MBEDTLS_PK_ECKEY:
         case MBEDTLS_PK_ECKEY_DH:
         case MBEDTLS_PK_ECDSA:
@@ -678,54 +786,21 @@ static int import_pair_into_psa(const mbedtls_pk_context *pk,
              * and if it's specified, psa_import_key() will know from the key
              * data length and will check that the bit-size matches. */
             psa_key_type_t to_type = psa_get_key_type(attributes);
-#if defined(MBEDTLS_PK_USE_PSA_EC_DATA)
             psa_ecc_family_t from_family = pk->ec_family;
-#else /* MBEDTLS_PK_USE_PSA_EC_DATA */
-            const mbedtls_ecp_keypair *ec = mbedtls_pk_ec_ro(*pk);
-            size_t from_bits = 0;
-            psa_ecc_family_t from_family = mbedtls_ecc_group_to_psa(ec->grp.id,
-                                                                    &from_bits);
-#endif /* MBEDTLS_PK_USE_PSA_EC_DATA */
             if (to_type != PSA_KEY_TYPE_ECC_KEY_PAIR(from_family)) {
                 return MBEDTLS_ERR_PK_TYPE_MISMATCH;
             }

-#if defined(MBEDTLS_PK_USE_PSA_EC_DATA)
             if (mbedtls_svc_key_id_is_null(pk->priv_id)) {
                 /* We have a public key and want a key pair. */
                 return MBEDTLS_ERR_PK_TYPE_MISMATCH;
             }
             return copy_into_psa(pk->priv_id, attributes, key_id);
-#else /* MBEDTLS_PK_USE_PSA_EC_DATA */
-            if (ec->d.n == 0) {
-                /* Private key not set. Assume the input is a public key only.
-                 * (The other possibility is that it's an incomplete object
-                 * where the group is set but neither the public key nor
-                 * the private key. This is not possible through ecp.h
-                 * functions, so we don't bother reporting a more suitable
-                 * error in that case.) */
-                return MBEDTLS_ERR_PK_TYPE_MISMATCH;
-            }
-            unsigned char key_buffer[PSA_BITS_TO_BYTES(PSA_VENDOR_ECC_MAX_CURVE_BITS)];
-            size_t key_length = 0;
-            int ret = mbedtls_ecp_write_key_ext(ec, &key_length,
-                                                key_buffer, sizeof(key_buffer));
-            if (ret < 0) {
-                return ret;
-            }
-            ret = PSA_PK_TO_MBEDTLS_ERR(psa_import_key(attributes,
-                                                       key_buffer, key_length,
-                                                       key_id));
-            mbedtls_platform_zeroize(key_buffer, key_length);
-            return ret;
-#endif /* MBEDTLS_PK_USE_PSA_EC_DATA */
         }
-#endif /* MBEDTLS_PK_HAVE_ECC_KEYS */
+#endif /* PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY */

-#if defined(MBEDTLS_USE_PSA_CRYPTO)
         case MBEDTLS_PK_OPAQUE:
             return copy_into_psa(pk->priv_id, attributes, key_id);
-#endif /* MBEDTLS_USE_PSA_CRYPTO */

         default:
             return MBEDTLS_ERR_PK_BAD_INPUT_DATA;
@@ -737,35 +812,24 @@ static int import_public_into_psa(const mbedtls_pk_context *pk,
                                   mbedtls_svc_key_id_t *key_id)
 {
     psa_key_type_t psa_type = psa_get_key_type(attributes);
-
-#if defined(MBEDTLS_RSA_C) ||                                           \
-    (defined(MBEDTLS_PK_HAVE_ECC_KEYS) && !defined(MBEDTLS_PK_USE_PSA_EC_DATA)) || \
-    defined(MBEDTLS_USE_PSA_CRYPTO)
     unsigned char key_buffer[PSA_EXPORT_PUBLIC_KEY_MAX_SIZE];
-#endif
     unsigned char *key_data = NULL;
     size_t key_length = 0;

     switch (mbedtls_pk_get_type(pk)) {
-#if defined(MBEDTLS_RSA_C)
+#if defined(PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY)
         case MBEDTLS_PK_RSA:
         {
             if (psa_type != PSA_KEY_TYPE_RSA_PUBLIC_KEY) {
                 return MBEDTLS_ERR_PK_TYPE_MISMATCH;
             }
-            unsigned char *const key_end = key_buffer + sizeof(key_buffer);
-            key_data = key_end;
-            int ret = mbedtls_rsa_write_pubkey(mbedtls_pk_rsa(*pk),
-                                               key_buffer, &key_data);
-            if (ret < 0) {
-                return ret;
-            }
-            key_length = (size_t) ret;
+            key_data = (unsigned char *) pk->pub_raw;
+            key_length = pk->pub_raw_len;
             break;
         }
-#endif /*MBEDTLS_RSA_C */
+#endif /*PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY */

-#if defined(MBEDTLS_PK_HAVE_ECC_KEYS)
+#if defined(PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY)
         case MBEDTLS_PK_ECKEY:
         case MBEDTLS_PK_ECKEY_DH:
         case MBEDTLS_PK_ECDSA:
@@ -775,33 +839,15 @@ static int import_public_into_psa(const mbedtls_pk_context *pk,
              * We don't check the bit-size: it's optional in attributes,
              * and if it's specified, psa_import_key() will know from the key
              * data length and will check that the bit-size matches. */
-#if defined(MBEDTLS_PK_USE_PSA_EC_DATA)
             if (psa_type != PSA_KEY_TYPE_ECC_PUBLIC_KEY(pk->ec_family)) {
                 return MBEDTLS_ERR_PK_TYPE_MISMATCH;
             }
             key_data = (unsigned char *) pk->pub_raw;
             key_length = pk->pub_raw_len;
-#else /* MBEDTLS_PK_USE_PSA_EC_DATA */
-            const mbedtls_ecp_keypair *ec = mbedtls_pk_ec_ro(*pk);
-            size_t from_bits = 0;
-            psa_ecc_family_t from_family = mbedtls_ecc_group_to_psa(ec->grp.id,
-                                                                    &from_bits);
-            if (psa_type != PSA_KEY_TYPE_ECC_PUBLIC_KEY(from_family)) {
-                return MBEDTLS_ERR_PK_TYPE_MISMATCH;
-            }
-            int ret = mbedtls_ecp_write_public_key(
-                ec, MBEDTLS_ECP_PF_UNCOMPRESSED,
-                &key_length, key_buffer, sizeof(key_buffer));
-            if (ret < 0) {
-                return ret;
-            }
-            key_data = key_buffer;
-#endif /* MBEDTLS_PK_USE_PSA_EC_DATA */
             break;
         }
-#endif /* MBEDTLS_PK_HAVE_ECC_KEYS */
+#endif /* PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY */

-#if defined(MBEDTLS_USE_PSA_CRYPTO)
         case MBEDTLS_PK_OPAQUE:
         {
             psa_key_attributes_t old_attributes = PSA_KEY_ATTRIBUTES_INIT;
@@ -824,7 +870,6 @@ static int import_public_into_psa(const mbedtls_pk_context *pk,
             key_data = key_buffer;
             break;
         }
-#endif /* MBEDTLS_USE_PSA_CRYPTO */

         default:
             return MBEDTLS_ERR_PK_BAD_INPUT_DATA;
@@ -843,12 +888,6 @@ int mbedtls_pk_import_into_psa(const mbedtls_pk_context *pk,
      * if we error out before calling psa_import_key(). */
     *key_id = MBEDTLS_SVC_KEY_ID_INIT;

-#if defined(MBEDTLS_PK_RSA_ALT_SUPPORT)
-    if (mbedtls_pk_get_type(pk) == MBEDTLS_PK_RSA_ALT) {
-        return MBEDTLS_ERR_PK_FEATURE_UNAVAILABLE;
-    }
-#endif /* MBEDTLS_PK_RSA_ALT_SUPPORT */
-
     int want_public = PSA_KEY_TYPE_IS_PUBLIC_KEY(psa_get_key_type(attributes));
     if (want_public) {
         return import_public_into_psa(pk, attributes, key_id);
@@ -895,7 +934,7 @@ static int copy_from_psa(mbedtls_svc_key_id_t key_id,
     }
     key_bits = psa_get_key_bits(&key_attr);

-#if defined(MBEDTLS_RSA_C)
+#if defined(PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY)
     if ((key_type == PSA_KEY_TYPE_RSA_KEY_PAIR) ||
         (key_type == PSA_KEY_TYPE_RSA_PUBLIC_KEY)) {

@@ -905,32 +944,20 @@ static int copy_from_psa(mbedtls_svc_key_id_t key_id,
         }

         if (key_type == PSA_KEY_TYPE_RSA_KEY_PAIR) {
-            ret = mbedtls_rsa_parse_key(mbedtls_pk_rsa(*pk), exp_key, exp_key_len);
+            ret = mbedtls_pk_rsa_set_key(pk, exp_key, exp_key_len);
+            if (ret != 0) {
+                goto exit;
+            }
+            ret = mbedtls_pk_rsa_set_pubkey_from_prv(pk);
         } else {
-            ret = mbedtls_rsa_parse_pubkey(mbedtls_pk_rsa(*pk), exp_key, exp_key_len);
-        }
-        if (ret != 0) {
-            goto exit;
-        }
-
-        psa_algorithm_t alg_type = psa_get_key_algorithm(&key_attr);
-        mbedtls_md_type_t md_type = MBEDTLS_MD_NONE;
-        if (PSA_ALG_GET_HASH(alg_type) != PSA_ALG_ANY_HASH) {
-            md_type = mbedtls_md_type_from_psa_alg(alg_type);
-        }
-
-        if (PSA_ALG_IS_RSA_OAEP(alg_type) || PSA_ALG_IS_RSA_PSS(alg_type)) {
-            ret = mbedtls_rsa_set_padding(mbedtls_pk_rsa(*pk), MBEDTLS_RSA_PKCS_V21, md_type);
-        } else if (PSA_ALG_IS_RSA_PKCS1V15_SIGN(alg_type) ||
-                   alg_type == PSA_ALG_RSA_PKCS1V15_CRYPT) {
-            ret = mbedtls_rsa_set_padding(mbedtls_pk_rsa(*pk), MBEDTLS_RSA_PKCS_V15, md_type);
+            ret = mbedtls_pk_rsa_set_pubkey(pk, exp_key, exp_key_len);
         }
         if (ret != 0) {
             goto exit;
         }
     } else
-#endif /* MBEDTLS_RSA_C */
-#if defined(MBEDTLS_PK_HAVE_ECC_KEYS)
+#endif /* PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY */
+#if defined(PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY)
     if (PSA_KEY_TYPE_IS_ECC_KEY_PAIR(key_type) ||
         PSA_KEY_TYPE_IS_ECC_PUBLIC_KEY(key_type)) {
         mbedtls_ecp_group_id grp_id;
@@ -951,9 +978,7 @@ static int copy_from_psa(mbedtls_svc_key_id_t key_id,
             if (ret != 0) {
                 goto exit;
             }
-            ret = mbedtls_pk_ecc_set_pubkey_from_prv(pk, exp_key, exp_key_len,
-                                                     mbedtls_psa_get_random,
-                                                     MBEDTLS_PSA_RANDOM_STATE);
+            ret = mbedtls_pk_ecc_set_pubkey_from_prv(pk, exp_key, exp_key_len);
         } else {
             ret = mbedtls_pk_ecc_set_pubkey(pk, exp_key, exp_key_len);
         }
@@ -961,7 +986,7 @@ static int copy_from_psa(mbedtls_svc_key_id_t key_id,
             goto exit;
         }
     } else
-#endif /* MBEDTLS_PK_HAVE_ECC_KEYS */
+#endif /* PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY */
     {
         (void) key_bits;
         return MBEDTLS_ERR_PK_BAD_INPUT_DATA;
@@ -1005,12 +1030,13 @@ static inline int pk_hashlen_helper(mbedtls_md_type_t md_alg, size_t *hash_len)
     return 0;
 }

-#if defined(MBEDTLS_ECDSA_C) && defined(MBEDTLS_ECP_RESTARTABLE)
+#if defined(MBEDTLS_ECP_RESTARTABLE)
 /*
  * Helper to set up a restart context if needed
  */
 static int pk_restart_setup(mbedtls_pk_restart_ctx *ctx,
-                            const mbedtls_pk_info_t *info)
+                            const mbedtls_pk_info_t *info,
+                            mbedtls_pk_rs_op_t rs_op)
 {
     /* Don't do anything if already set up or invalid */
     if (ctx == NULL || ctx->pk_info != NULL) {
@@ -1022,7 +1048,7 @@ static int pk_restart_setup(mbedtls_pk_restart_ctx *ctx,
         return MBEDTLS_ERR_PK_BAD_INPUT_DATA;
     }

-    if ((ctx->rs_ctx = info->rs_alloc_func()) == NULL) {
+    if ((ctx->rs_ctx = info->rs_alloc_func(rs_op)) == NULL) {
         return MBEDTLS_ERR_PK_ALLOC_FAILED;
     }

@@ -1030,7 +1056,7 @@ static int pk_restart_setup(mbedtls_pk_restart_ctx *ctx,

     return 0;
 }
-#endif /* MBEDTLS_ECDSA_C && MBEDTLS_ECP_RESTARTABLE */
+#endif /* MBEDTLS_ECP_RESTARTABLE */

 /*
  * Verify a signature (restartable)
@@ -1050,14 +1076,16 @@ int mbedtls_pk_verify_restartable(mbedtls_pk_context *ctx,
         return MBEDTLS_ERR_PK_BAD_INPUT_DATA;
     }

-#if defined(MBEDTLS_ECDSA_C) && defined(MBEDTLS_ECP_RESTARTABLE)
+#if defined(MBEDTLS_ECP_RESTARTABLE)
+    int is_restartable_enabled = psa_interruptible_get_max_ops() != 0;
     /* optimization: use non-restartable version if restart disabled */
     if (rs_ctx != NULL &&
-        mbedtls_ecp_restart_is_enabled() &&
+        is_restartable_enabled &&
         ctx->pk_info->verify_rs_func != NULL) {
         int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;

-        if ((ret = pk_restart_setup(rs_ctx, ctx->pk_info)) != 0) {
+        ret = pk_restart_setup(rs_ctx, ctx->pk_info, MBEDTLS_PK_RS_OP_VERIFY);
+        if (ret != 0) {
             return ret;
         }

@@ -1070,9 +1098,9 @@ int mbedtls_pk_verify_restartable(mbedtls_pk_context *ctx,

         return ret;
     }
-#else /* MBEDTLS_ECDSA_C && MBEDTLS_ECP_RESTARTABLE */
+#else /* MBEDTLS_ECP_RESTARTABLE */
     (void) rs_ctx;
-#endif /* MBEDTLS_ECDSA_C && MBEDTLS_ECP_RESTARTABLE */
+#endif /* MBEDTLS_ECP_RESTARTABLE */

     if (ctx->pk_info->verify_func == NULL) {
         return MBEDTLS_ERR_PK_TYPE_MISMATCH;
@@ -1094,9 +1122,9 @@ int mbedtls_pk_verify(mbedtls_pk_context *ctx, mbedtls_md_type_t md_alg,
 }

 /*
- * Verify a signature with options
+ * Verify a signature, with explicit selection of the signature algorithm.
  */
-int mbedtls_pk_verify_ext(mbedtls_pk_type_t type, const void *options,
+int mbedtls_pk_verify_ext(mbedtls_pk_sigalg_t type,
                           mbedtls_pk_context *ctx, mbedtls_md_type_t md_alg,
                           const unsigned char *hash, size_t hash_len,
                           const unsigned char *sig, size_t sig_len)
@@ -1109,16 +1137,11 @@ int mbedtls_pk_verify_ext(mbedtls_pk_type_t type, const void *options,
         return MBEDTLS_ERR_PK_BAD_INPUT_DATA;
     }

-    if (!mbedtls_pk_can_do(ctx, type)) {
+    if (!mbedtls_pk_can_do(ctx, (mbedtls_pk_type_t) type)) {
         return MBEDTLS_ERR_PK_TYPE_MISMATCH;
     }

-    if (type != MBEDTLS_PK_RSASSA_PSS) {
-        /* General case: no options */
-        if (options != NULL) {
-            return MBEDTLS_ERR_PK_BAD_INPUT_DATA;
-        }
-
+    if (type != MBEDTLS_PK_SIGALG_RSA_PSS) {
         return mbedtls_pk_verify(ctx, md_alg, hash, hash_len, sig, sig_len);
     }

@@ -1128,9 +1151,7 @@ int mbedtls_pk_verify_ext(mbedtls_pk_type_t type, const void *options,
         return MBEDTLS_ERR_PK_FEATURE_UNAVAILABLE;
     }

-#if defined(MBEDTLS_RSA_C) && defined(MBEDTLS_PKCS1_V21)
-    int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
-    const mbedtls_pk_rsassa_pss_options *pss_opts;
+#if defined(PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY)

 #if SIZE_MAX > UINT_MAX
     if (md_alg == MBEDTLS_MD_NONE && UINT_MAX < hash_len) {
@@ -1138,89 +1159,66 @@ int mbedtls_pk_verify_ext(mbedtls_pk_type_t type, const void *options,
     }
 #endif

-    if (options == NULL) {
-        return MBEDTLS_ERR_PK_BAD_INPUT_DATA;
-    }
-
-    pss_opts = (const mbedtls_pk_rsassa_pss_options *) options;
-
-#if defined(MBEDTLS_USE_PSA_CRYPTO)
-    if (pss_opts->mgf1_hash_id == md_alg) {
-        unsigned char buf[MBEDTLS_PK_RSA_PUB_DER_MAX_BYTES];
-        unsigned char *p;
-        int key_len;
-        size_t signature_length;
-        psa_status_t status = PSA_ERROR_DATA_CORRUPT;
-        psa_status_t destruction_status = PSA_ERROR_DATA_CORRUPT;
-
-        psa_algorithm_t psa_md_alg = mbedtls_md_psa_alg_from_type(md_alg);
-        mbedtls_svc_key_id_t key_id = MBEDTLS_SVC_KEY_ID_INIT;
-        psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT;
-        psa_algorithm_t psa_sig_alg = PSA_ALG_RSA_PSS_ANY_SALT(psa_md_alg);
-        p = buf + sizeof(buf);
-        key_len = mbedtls_rsa_write_pubkey(mbedtls_pk_rsa(*ctx), buf, &p);
-
-        if (key_len < 0) {
-            return key_len;
-        }
-
-        psa_set_key_type(&attributes, PSA_KEY_TYPE_RSA_PUBLIC_KEY);
-        psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_VERIFY_HASH);
-        psa_set_key_algorithm(&attributes, psa_sig_alg);
-
-        status = psa_import_key(&attributes,
-                                buf + sizeof(buf) - key_len, key_len,
-                                &key_id);
-        if (status != PSA_SUCCESS) {
-            psa_destroy_key(key_id);
-            return PSA_PK_TO_MBEDTLS_ERR(status);
-        }
-
-        /* This function requires returning MBEDTLS_ERR_PK_SIG_LEN_MISMATCH
-         * on a valid signature with trailing data in a buffer, but
-         * mbedtls_psa_rsa_verify_hash requires the sig_len to be exact,
-         * so for this reason the passed sig_len is overwritten. Smaller
-         * signature lengths should not be accepted for verification. */
-        signature_length = sig_len > mbedtls_pk_get_len(ctx) ?
-                           mbedtls_pk_get_len(ctx) : sig_len;
-        status = psa_verify_hash(key_id, psa_sig_alg, hash,
-                                 hash_len, sig, signature_length);
-        destruction_status = psa_destroy_key(key_id);
-
-        if (status == PSA_SUCCESS && sig_len > mbedtls_pk_get_len(ctx)) {
-            return MBEDTLS_ERR_PK_SIG_LEN_MISMATCH;
-        }
+    size_t signature_length;
+    psa_status_t status = PSA_ERROR_DATA_CORRUPT;
+    psa_status_t destruction_status = PSA_ERROR_DATA_CORRUPT;

-        if (status == PSA_SUCCESS) {
-            status = destruction_status;
-        }
-
-        return PSA_PK_RSA_TO_MBEDTLS_ERR(status);
-    } else
-#endif /* MBEDTLS_USE_PSA_CRYPTO */
-    {
-        if (sig_len < mbedtls_pk_get_len(ctx)) {
-            return MBEDTLS_ERR_RSA_VERIFY_FAILED;
-        }
+    psa_algorithm_t psa_md_alg = mbedtls_md_psa_alg_from_type(md_alg);
+    mbedtls_svc_key_id_t key_id = MBEDTLS_SVC_KEY_ID_INIT;
+    psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT;
+    psa_algorithm_t psa_sig_alg = PSA_ALG_RSA_PSS_ANY_SALT(psa_md_alg);

-        ret = mbedtls_rsa_rsassa_pss_verify_ext(mbedtls_pk_rsa(*ctx),
-                                                md_alg, (unsigned int) hash_len, hash,
-                                                pss_opts->mgf1_hash_id,
-                                                pss_opts->expected_salt_len,
-                                                sig);
-        if (ret != 0) {
-            return ret;
-        }
+    psa_set_key_type(&attributes, PSA_KEY_TYPE_RSA_PUBLIC_KEY);
+    psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_VERIFY_HASH);
+    psa_set_key_algorithm(&attributes, psa_sig_alg);

-        if (sig_len > mbedtls_pk_get_len(ctx)) {
-            return MBEDTLS_ERR_PK_SIG_LEN_MISMATCH;
-        }
+    status = psa_import_key(&attributes,
+                            ctx->pub_raw, ctx->pub_raw_len,
+                            &key_id);
+    if (status != PSA_SUCCESS) {
+        psa_destroy_key(key_id);
+        return PSA_PK_TO_MBEDTLS_ERR(status);
+    }
+
+    /* This function must fail on a valid signature with trailing data in a
+     * buffer (checked below). Moreover mbedtls_psa_rsa_verify_hash() requires
+     * the sig_len to be exact. For this reason the passed sig_len is
+     * overwritten. Smaller signature lengths should not be accepted for
+     * verification. */
+    signature_length = sig_len > mbedtls_pk_get_len(ctx) ?
+                       mbedtls_pk_get_len(ctx) : sig_len;
+    status = psa_verify_hash(key_id, psa_sig_alg, hash,
+                             hash_len, sig, signature_length);
+    destruction_status = psa_destroy_key(key_id);
+
+    if (status == PSA_SUCCESS && sig_len > mbedtls_pk_get_len(ctx)) {
+        return MBEDTLS_ERR_PK_BAD_INPUT_DATA;
+    }

-        return 0;
+    if (status == PSA_SUCCESS) {
+        status = destruction_status;
     }
+
+    return PSA_PK_RSA_TO_MBEDTLS_ERR(status);
 #else
     return MBEDTLS_ERR_PK_FEATURE_UNAVAILABLE;
-#endif /* MBEDTLS_RSA_C && MBEDTLS_PKCS1_V21 */
+#endif /* PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY */
+}
+
+/*
+ * Verify a signature
+ */
+int mbedtls_pk_verify_new(mbedtls_pk_type_t type, mbedtls_pk_context *ctx,
+                          mbedtls_md_type_t md_alg, const unsigned char *hash,
+                          size_t hash_len, const unsigned char *sig, size_t sig_len)
+{
+    return mbedtls_pk_verify_ext((mbedtls_pk_sigalg_t) type,
+                                 ctx,
+                                 md_alg,
+                                 hash,
+                                 hash_len,
+                                 sig,
+                                 sig_len);
 }

 /*
@@ -1230,7 +1228,6 @@ int mbedtls_pk_sign_restartable(mbedtls_pk_context *ctx,
                                 mbedtls_md_type_t md_alg,
                                 const unsigned char *hash, size_t hash_len,
                                 unsigned char *sig, size_t sig_size, size_t *sig_len,
-                                int (*f_rng)(void *, unsigned char *, size_t), void *p_rng,
                                 mbedtls_pk_restart_ctx *rs_ctx)
 {
     if ((md_alg != MBEDTLS_MD_NONE || hash_len != 0) && hash == NULL) {
@@ -1241,21 +1238,23 @@ int mbedtls_pk_sign_restartable(mbedtls_pk_context *ctx,
         return MBEDTLS_ERR_PK_BAD_INPUT_DATA;
     }

-#if defined(MBEDTLS_ECDSA_C) && defined(MBEDTLS_ECP_RESTARTABLE)
+#if defined(MBEDTLS_ECP_RESTARTABLE)
+    int is_restartable_enabled = psa_interruptible_get_max_ops() != 0;
     /* optimization: use non-restartable version if restart disabled */
     if (rs_ctx != NULL &&
-        mbedtls_ecp_restart_is_enabled() &&
+        is_restartable_enabled &&
         ctx->pk_info->sign_rs_func != NULL) {
         int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;

-        if ((ret = pk_restart_setup(rs_ctx, ctx->pk_info)) != 0) {
+        ret = pk_restart_setup(rs_ctx, ctx->pk_info, MBEDTLS_PK_RS_OP_SIGN);
+        if (ret != 0) {
             return ret;
         }

         ret = ctx->pk_info->sign_rs_func(ctx, md_alg,
                                          hash, hash_len,
                                          sig, sig_size, sig_len,
-                                         f_rng, p_rng, rs_ctx->rs_ctx);
+                                         rs_ctx->rs_ctx);

         if (ret != MBEDTLS_ERR_ECP_IN_PROGRESS) {
             mbedtls_pk_restart_free(rs_ctx);
@@ -1263,9 +1262,9 @@ int mbedtls_pk_sign_restartable(mbedtls_pk_context *ctx,

         return ret;
     }
-#else /* MBEDTLS_ECDSA_C && MBEDTLS_ECP_RESTARTABLE */
+#else /* MBEDTLS_ECP_RESTARTABLE */
     (void) rs_ctx;
-#endif /* MBEDTLS_ECDSA_C && MBEDTLS_ECP_RESTARTABLE */
+#endif /* MBEDTLS_ECP_RESTARTABLE */

     if (ctx->pk_info->sign_func == NULL) {
         return MBEDTLS_ERR_PK_TYPE_MISMATCH;
@@ -1273,8 +1272,7 @@ int mbedtls_pk_sign_restartable(mbedtls_pk_context *ctx,

     return ctx->pk_info->sign_func(ctx, md_alg,
                                    hash, hash_len,
-                                   sig, sig_size, sig_len,
-                                   f_rng, p_rng);
+                                   sig, sig_size, sig_len);
 }

 /*
@@ -1282,41 +1280,36 @@ int mbedtls_pk_sign_restartable(mbedtls_pk_context *ctx,
  */
 int mbedtls_pk_sign(mbedtls_pk_context *ctx, mbedtls_md_type_t md_alg,
                     const unsigned char *hash, size_t hash_len,
-                    unsigned char *sig, size_t sig_size, size_t *sig_len,
-                    int (*f_rng)(void *, unsigned char *, size_t), void *p_rng)
+                    unsigned char *sig, size_t sig_size, size_t *sig_len)
 {
     return mbedtls_pk_sign_restartable(ctx, md_alg, hash, hash_len,
                                        sig, sig_size, sig_len,
-                                       f_rng, p_rng, NULL);
+                                       NULL);
 }

 /*
  * Make a signature given a signature type.
  */
-int mbedtls_pk_sign_ext(mbedtls_pk_type_t pk_type,
+int mbedtls_pk_sign_ext(mbedtls_pk_sigalg_t pk_type,
                         mbedtls_pk_context *ctx,
                         mbedtls_md_type_t md_alg,
                         const unsigned char *hash, size_t hash_len,
-                        unsigned char *sig, size_t sig_size, size_t *sig_len,
-                        int (*f_rng)(void *, unsigned char *, size_t),
-                        void *p_rng)
+                        unsigned char *sig, size_t sig_size, size_t *sig_len)
 {
     if (ctx->pk_info == NULL) {
         return MBEDTLS_ERR_PK_BAD_INPUT_DATA;
     }

-    if (!mbedtls_pk_can_do(ctx, pk_type)) {
+    if (!mbedtls_pk_can_do(ctx, (mbedtls_pk_type_t) pk_type)) {
         return MBEDTLS_ERR_PK_TYPE_MISMATCH;
     }

-    if (pk_type != MBEDTLS_PK_RSASSA_PSS) {
+    if (pk_type != MBEDTLS_PK_SIGALG_RSA_PSS) {
         return mbedtls_pk_sign(ctx, md_alg, hash, hash_len,
-                               sig, sig_size, sig_len, f_rng, p_rng);
+                               sig, sig_size, sig_len);
     }

-#if defined(MBEDTLS_RSA_C) && defined(MBEDTLS_PKCS1_V21)
-
-#if defined(MBEDTLS_USE_PSA_CRYPTO)
+#if defined(PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY)
     const psa_algorithm_t psa_md_alg = mbedtls_md_psa_alg_from_type(md_alg);
     if (psa_md_alg == 0) {
         return MBEDTLS_ERR_PK_BAD_INPUT_DATA;
@@ -1340,109 +1333,35 @@ int mbedtls_pk_sign_ext(mbedtls_pk_type_t pk_type,
     }

     return mbedtls_pk_psa_rsa_sign_ext(PSA_ALG_RSA_PSS(psa_md_alg),
-                                       ctx->pk_ctx, hash, hash_len,
+                                       ctx, hash, hash_len,
                                        sig, sig_size, sig_len);
-#else /* MBEDTLS_USE_PSA_CRYPTO */
-
-    if (sig_size < mbedtls_pk_get_len(ctx)) {
-        return MBEDTLS_ERR_PK_BUFFER_TOO_SMALL;
-    }
-
-    if (pk_hashlen_helper(md_alg, &hash_len) != 0) {
-        return MBEDTLS_ERR_PK_BAD_INPUT_DATA;
-    }
-
-    mbedtls_rsa_context *const rsa_ctx = mbedtls_pk_rsa(*ctx);
-
-    const int ret = mbedtls_rsa_rsassa_pss_sign_no_mode_check(rsa_ctx, f_rng, p_rng, md_alg,
-                                                              (unsigned int) hash_len, hash, sig);
-    if (ret == 0) {
-        *sig_len = rsa_ctx->len;
-    }
-    return ret;
-
-#endif /* MBEDTLS_USE_PSA_CRYPTO */
-
 #else
     return MBEDTLS_ERR_PK_FEATURE_UNAVAILABLE;
-#endif /* MBEDTLS_RSA_C && MBEDTLS_PKCS1_V21 */
-}
-
-/*
- * Decrypt message
- */
-int mbedtls_pk_decrypt(mbedtls_pk_context *ctx,
-                       const unsigned char *input, size_t ilen,
-                       unsigned char *output, size_t *olen, size_t osize,
-                       int (*f_rng)(void *, unsigned char *, size_t), void *p_rng)
-{
-    if (ctx->pk_info == NULL) {
-        return MBEDTLS_ERR_PK_BAD_INPUT_DATA;
-    }
-
-    if (ctx->pk_info->decrypt_func == NULL) {
-        return MBEDTLS_ERR_PK_TYPE_MISMATCH;
-    }
-
-    return ctx->pk_info->decrypt_func(ctx, input, ilen,
-                                      output, olen, osize, f_rng, p_rng);
-}
-
-/*
- * Encrypt message
- */
-int mbedtls_pk_encrypt(mbedtls_pk_context *ctx,
-                       const unsigned char *input, size_t ilen,
-                       unsigned char *output, size_t *olen, size_t osize,
-                       int (*f_rng)(void *, unsigned char *, size_t), void *p_rng)
-{
-    if (ctx->pk_info == NULL) {
-        return MBEDTLS_ERR_PK_BAD_INPUT_DATA;
-    }
-
-    if (ctx->pk_info->encrypt_func == NULL) {
-        return MBEDTLS_ERR_PK_TYPE_MISMATCH;
-    }
-
-    return ctx->pk_info->encrypt_func(ctx, input, ilen,
-                                      output, olen, osize, f_rng, p_rng);
+#endif /* PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY */
 }

 /*
  * Check public-private key pair
  */
 int mbedtls_pk_check_pair(const mbedtls_pk_context *pub,
-                          const mbedtls_pk_context *prv,
-                          int (*f_rng)(void *, unsigned char *, size_t),
-                          void *p_rng)
+                          const mbedtls_pk_context *prv)
 {
     if (pub->pk_info == NULL ||
         prv->pk_info == NULL) {
         return MBEDTLS_ERR_PK_BAD_INPUT_DATA;
     }

-    if (f_rng == NULL) {
-        return MBEDTLS_ERR_PK_BAD_INPUT_DATA;
-    }
-
     if (prv->pk_info->check_pair_func == NULL) {
         return MBEDTLS_ERR_PK_FEATURE_UNAVAILABLE;
     }

-    if (prv->pk_info->type == MBEDTLS_PK_RSA_ALT) {
-        if (pub->pk_info->type != MBEDTLS_PK_RSA) {
-            return MBEDTLS_ERR_PK_TYPE_MISMATCH;
-        }
-    } else {
-        if ((prv->pk_info->type != MBEDTLS_PK_OPAQUE) &&
-            (pub->pk_info != prv->pk_info)) {
-            return MBEDTLS_ERR_PK_TYPE_MISMATCH;
-        }
+    if ((prv->pk_info->type != MBEDTLS_PK_OPAQUE) &&
+        (pub->pk_info != prv->pk_info)) {
+        return MBEDTLS_ERR_PK_TYPE_MISMATCH;
     }

     return prv->pk_info->check_pair_func((mbedtls_pk_context *) pub,
-                                         (mbedtls_pk_context *) prv,
-                                         f_rng, p_rng);
+                                         (mbedtls_pk_context *) prv);
 }

 /*
diff --git a/deps/LIEF/third-party/mbedtls/library/pk_ecc.c b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/pk_ecc.c
similarity index 55%
rename from deps/LIEF/third-party/mbedtls/library/pk_ecc.c
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/pk_ecc.c
index 86218fffc89..73c805bc404 100644
--- a/deps/LIEF/third-party/mbedtls/library/pk_ecc.c
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/pk_ecc.c
@@ -5,49 +5,38 @@
  *  SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
  */

-#include "common.h"
+#include "tf_psa_crypto_common.h"

 #include "mbedtls/pk.h"
-#include "mbedtls/error.h"
-#include "mbedtls/ecp.h"
+#if defined(MBEDTLS_PK_HAVE_PRIVATE_HEADER)
+#include <mbedtls/private/pk_private.h>
+#endif /* MBEDTLS_PK_HAVE_PRIVATE_HEADER */
+#include "mbedtls/private/error_common.h"
+#include "mbedtls/private/ecp.h"
 #include "pk_internal.h"

-#if defined(MBEDTLS_PK_C) && defined(MBEDTLS_PK_HAVE_ECC_KEYS)
+#if defined(MBEDTLS_PK_C) && defined(PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY)

 int mbedtls_pk_ecc_set_group(mbedtls_pk_context *pk, mbedtls_ecp_group_id grp_id)
 {
-#if defined(MBEDTLS_PK_USE_PSA_EC_DATA)
     size_t ec_bits;
     psa_ecc_family_t ec_family = mbedtls_ecc_group_to_psa(grp_id, &ec_bits);

     /* group may already be initialized; if so, make sure IDs match */
     if ((pk->ec_family != 0 && pk->ec_family != ec_family) ||
-        (pk->ec_bits != 0 && pk->ec_bits != ec_bits)) {
+        (pk->bits != 0 && pk->bits != ec_bits)) {
         return MBEDTLS_ERR_PK_KEY_INVALID_FORMAT;
     }

     /* set group */
     pk->ec_family = ec_family;
-    pk->ec_bits = ec_bits;
+    pk->bits = ec_bits;

     return 0;
-#else /* MBEDTLS_PK_USE_PSA_EC_DATA */
-    mbedtls_ecp_keypair *ecp = mbedtls_pk_ec_rw(*pk);
-
-    /* grp may already be initialized; if so, make sure IDs match */
-    if (mbedtls_pk_ec_ro(*pk)->grp.id != MBEDTLS_ECP_DP_NONE &&
-        mbedtls_pk_ec_ro(*pk)->grp.id != grp_id) {
-        return MBEDTLS_ERR_PK_KEY_INVALID_FORMAT;
-    }
-
-    /* set group */
-    return mbedtls_ecp_group_load(&(ecp->grp), grp_id);
-#endif /* MBEDTLS_PK_USE_PSA_EC_DATA */
 }

 int mbedtls_pk_ecc_set_key(mbedtls_pk_context *pk, unsigned char *key, size_t key_len)
 {
-#if defined(MBEDTLS_PK_USE_PSA_EC_DATA)
     psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT;
     psa_key_usage_t flags;
     psa_status_t status;
@@ -61,7 +50,7 @@ int mbedtls_pk_ecc_set_key(mbedtls_pk_context *pk, unsigned char *key, size_t ke
         flags = PSA_KEY_USAGE_EXPORT;
     } else {
         psa_set_key_algorithm(&attributes,
-                              MBEDTLS_PK_PSA_ALG_ECDSA_MAYBE_DET(PSA_ALG_ANY_HASH));
+                              MBEDTLS_PK_ALG_ECDSA(PSA_ALG_ANY_HASH));
         flags = PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE |
                 PSA_KEY_USAGE_EXPORT;
     }
@@ -69,26 +58,11 @@ int mbedtls_pk_ecc_set_key(mbedtls_pk_context *pk, unsigned char *key, size_t ke

     status = psa_import_key(&attributes, key, key_len, &pk->priv_id);
     return psa_pk_status_to_mbedtls(status);
-
-#else /* MBEDTLS_PK_USE_PSA_EC_DATA */
-
-    mbedtls_ecp_keypair *eck = mbedtls_pk_ec_rw(*pk);
-    int ret = mbedtls_ecp_read_key(eck->grp.id, eck, key, key_len);
-    if (ret != 0) {
-        return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_PK_KEY_INVALID_FORMAT, ret);
-    }
-    return 0;
-#endif /* MBEDTLS_PK_USE_PSA_EC_DATA */
 }

 int mbedtls_pk_ecc_set_pubkey_from_prv(mbedtls_pk_context *pk,
-                                       const unsigned char *prv, size_t prv_len,
-                                       int (*f_rng)(void *, unsigned char *, size_t), void *p_rng)
+                                       const unsigned char *prv, size_t prv_len)
 {
-#if defined(MBEDTLS_PK_USE_PSA_EC_DATA)
-
-    (void) f_rng;
-    (void) p_rng;
     (void) prv;
     (void) prv_len;
     psa_status_t status;
@@ -96,61 +70,16 @@ int mbedtls_pk_ecc_set_pubkey_from_prv(mbedtls_pk_context *pk,
     status = psa_export_public_key(pk->priv_id, pk->pub_raw, sizeof(pk->pub_raw),
                                    &pk->pub_raw_len);
     return psa_pk_status_to_mbedtls(status);
-
-#elif defined(MBEDTLS_USE_PSA_CRYPTO) /* && !MBEDTLS_PK_USE_PSA_EC_DATA */
-
-    (void) f_rng;
-    (void) p_rng;
-    psa_status_t status;
-
-    mbedtls_ecp_keypair *eck = (mbedtls_ecp_keypair *) pk->pk_ctx;
-    size_t curve_bits;
-    psa_ecc_family_t curve = mbedtls_ecc_group_to_psa(eck->grp.id, &curve_bits);
-
-    /* Import private key into PSA, from serialized input */
-    mbedtls_svc_key_id_t key_id = MBEDTLS_SVC_KEY_ID_INIT;
-    psa_key_attributes_t key_attr = PSA_KEY_ATTRIBUTES_INIT;
-    psa_set_key_type(&key_attr, PSA_KEY_TYPE_ECC_KEY_PAIR(curve));
-    psa_set_key_usage_flags(&key_attr, PSA_KEY_USAGE_EXPORT);
-    status = psa_import_key(&key_attr, prv, prv_len, &key_id);
-    if (status != PSA_SUCCESS) {
-        return psa_pk_status_to_mbedtls(status);
-    }
-
-    /* Export public key from PSA */
-    unsigned char pub[MBEDTLS_PSA_MAX_EC_PUBKEY_LENGTH];
-    size_t pub_len;
-    status = psa_export_public_key(key_id, pub, sizeof(pub), &pub_len);
-    psa_status_t destruction_status = psa_destroy_key(key_id);
-    if (status != PSA_SUCCESS) {
-        return psa_pk_status_to_mbedtls(status);
-    } else if (destruction_status != PSA_SUCCESS) {
-        return psa_pk_status_to_mbedtls(destruction_status);
-    }
-
-    /* Load serialized public key into ecp_keypair structure */
-    return mbedtls_ecp_point_read_binary(&eck->grp, &eck->Q, pub, pub_len);
-
-#else /* MBEDTLS_USE_PSA_CRYPTO */
-
-    (void) prv;
-    (void) prv_len;
-
-    mbedtls_ecp_keypair *eck = (mbedtls_ecp_keypair *) pk->pk_ctx;
-    return mbedtls_ecp_mul(&eck->grp, &eck->Q, &eck->d, &eck->grp.G, f_rng, p_rng);
-
-#endif /* MBEDTLS_USE_PSA_CRYPTO */
 }

-#if defined(MBEDTLS_PK_USE_PSA_EC_DATA)
 /*
- * Set the public key: fallback using ECP_LIGHT in the USE_PSA_EC_DATA case.
+ * Set the public key.
  *
- * Normally, when MBEDTLS_PK_USE_PSA_EC_DATA is enabled, we only use PSA
- * functions to handle keys. However, currently psa_import_key() does not
- * support compressed points. In case that support was explicitly requested,
- * this fallback uses ECP functions to get the job done. This is the reason
- * why MBEDTLS_PK_PARSE_EC_COMPRESSED auto-enables MBEDTLS_ECP_LIGHT.
+ * Normally we only use PSA functions to handle keys. However, currently
+ * psa_import_key() does not support compressed points. In case that support
+ * was explicitly requested, this fallback uses ECP functions to get the job
+ * done. This is the reason why MBEDTLS_PK_PARSE_EC_COMPRESSED auto-enables
+ * MBEDTLS_ECP_LIGHT.
  *
  * [in/out] pk: in: must have the group set, see mbedtls_pk_ecc_set_group().
  *              out: will have the public key set.
@@ -177,7 +106,7 @@ static int pk_ecc_set_pubkey_psa_ecp_fallback(mbedtls_pk_context *pk,
     mbedtls_ecp_group_id ecp_group_id;
     int ret;

-    ecp_group_id = mbedtls_ecc_group_from_psa(pk->ec_family, pk->ec_bits);
+    ecp_group_id = mbedtls_ecc_group_from_psa(pk->ec_family, pk->bits);

     mbedtls_ecp_keypair_init(&ecp_key);
     ret = mbedtls_ecp_group_load(&(ecp_key.grp), ecp_group_id);
@@ -199,12 +128,9 @@ exit:
     return ret;
 #endif /* MBEDTLS_PK_PARSE_EC_COMPRESSED */
 }
-#endif /* MBEDTLS_PK_USE_PSA_EC_DATA */

 int mbedtls_pk_ecc_set_pubkey(mbedtls_pk_context *pk, const unsigned char *pub, size_t pub_len)
 {
-#if defined(MBEDTLS_PK_USE_PSA_EC_DATA)
-
     /* Load the key */
     if (!PSA_ECC_FAMILY_IS_WEIERSTRASS(pk->ec_family) || *pub == 0x04) {
         /* Format directly supported by PSA:
@@ -229,7 +155,7 @@ int mbedtls_pk_ecc_set_pubkey(mbedtls_pk_context *pk, const unsigned char *pub,

     psa_set_key_usage_flags(&key_attrs, 0);
     psa_set_key_type(&key_attrs, PSA_KEY_TYPE_ECC_PUBLIC_KEY(pk->ec_family));
-    psa_set_key_bits(&key_attrs, pk->ec_bits);
+    psa_set_key_bits(&key_attrs, pk->bits);

     if ((psa_import_key(&key_attrs, pk->pub_raw, pk->pub_raw_len,
                         &key_id) != PSA_SUCCESS) ||
@@ -238,18 +164,6 @@ int mbedtls_pk_ecc_set_pubkey(mbedtls_pk_context *pk, const unsigned char *pub,
     }

     return 0;
-
-#else /* MBEDTLS_PK_USE_PSA_EC_DATA */
-
-    int ret;
-    mbedtls_ecp_keypair *ec_key = (mbedtls_ecp_keypair *) pk->pk_ctx;
-    ret = mbedtls_ecp_point_read_binary(&ec_key->grp, &ec_key->Q, pub, pub_len);
-    if (ret != 0) {
-        return ret;
-    }
-    return mbedtls_ecp_check_pubkey(&ec_key->grp, &ec_key->Q);
-
-#endif /* MBEDTLS_PK_USE_PSA_EC_DATA */
 }

-#endif /* MBEDTLS_PK_C && MBEDTLS_PK_HAVE_ECC_KEYS */
+#endif /* MBEDTLS_PK_C && PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY */
diff --git a/deps/LIEF/third-party/mbedtls/library/pk_internal.h b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/pk_internal.h
similarity index 65%
rename from deps/LIEF/third-party/mbedtls/library/pk_internal.h
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/pk_internal.h
index e86a3a09d2c..84deb05c3a8 100644
--- a/deps/LIEF/third-party/mbedtls/library/pk_internal.h
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/pk_internal.h
@@ -12,9 +12,12 @@
 #define MBEDTLS_PK_INTERNAL_H

 #include "mbedtls/pk.h"
+#if defined(MBEDTLS_PK_HAVE_PRIVATE_HEADER)
+#include <mbedtls/private/pk_private.h>
+#endif /* MBEDTLS_PK_HAVE_PRIVATE_HEADER */

-#if defined(MBEDTLS_PK_HAVE_ECC_KEYS)
-#include "mbedtls/ecp.h"
+#if defined(PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY)
+#include "mbedtls/private/ecp.h"
 #endif

 #if defined(MBEDTLS_PSA_CRYPTO_CLIENT)
@@ -44,50 +47,12 @@
 #define PEM_BEGIN_ENCRYPTED_PRIVATE_KEY_PKCS8 "-----BEGIN ENCRYPTED PRIVATE KEY-----"
 #define PEM_END_ENCRYPTED_PRIVATE_KEY_PKCS8   "-----END ENCRYPTED PRIVATE KEY-----"

-#if defined(MBEDTLS_PK_HAVE_ECC_KEYS) && !defined(MBEDTLS_PK_USE_PSA_EC_DATA)
-/**
- * Public function mbedtls_pk_ec() can be used to get direct access to the
- * wrapped ecp_keypair structure pointed to the pk_ctx. However this is not
- * ideal because it bypasses the PK module on the control of its internal
- * structure (pk_context) fields.
- * For backward compatibility we keep mbedtls_pk_ec() when ECP_C is defined, but
- * we provide 2 very similar functions when only ECP_LIGHT is enabled and not
- * ECP_C.
- * These variants embed the "ro" or "rw" keywords in their name to make the
- * usage of the returned pointer explicit. Of course the returned value is
- * const or non-const accordingly.
- */
-static inline const mbedtls_ecp_keypair *mbedtls_pk_ec_ro(const mbedtls_pk_context pk)
-{
-    switch (mbedtls_pk_get_type(&pk)) {
-        case MBEDTLS_PK_ECKEY:
-        case MBEDTLS_PK_ECKEY_DH:
-        case MBEDTLS_PK_ECDSA:
-            return (const mbedtls_ecp_keypair *) (pk).MBEDTLS_PRIVATE(pk_ctx);
-        default:
-            return NULL;
-    }
-}
+#if defined(PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY)

-static inline mbedtls_ecp_keypair *mbedtls_pk_ec_rw(const mbedtls_pk_context pk)
-{
-    switch (mbedtls_pk_get_type(&pk)) {
-        case MBEDTLS_PK_ECKEY:
-        case MBEDTLS_PK_ECKEY_DH:
-        case MBEDTLS_PK_ECDSA:
-            return (mbedtls_ecp_keypair *) (pk).MBEDTLS_PRIVATE(pk_ctx);
-        default:
-            return NULL;
-    }
-}
-#endif /* MBEDTLS_PK_HAVE_ECC_KEYS && !MBEDTLS_PK_USE_PSA_EC_DATA */
-
-#if defined(MBEDTLS_PK_HAVE_ECC_KEYS)
 static inline mbedtls_ecp_group_id mbedtls_pk_get_ec_group_id(const mbedtls_pk_context *pk)
 {
     mbedtls_ecp_group_id id;

-#if defined(MBEDTLS_USE_PSA_CRYPTO)
     if (mbedtls_pk_get_type(pk) == MBEDTLS_PK_OPAQUE) {
         psa_key_attributes_t opaque_attrs = PSA_KEY_ATTRIBUTES_INIT;
         psa_key_type_t opaque_key_type;
@@ -100,23 +65,17 @@ static inline mbedtls_ecp_group_id mbedtls_pk_get_ec_group_id(const mbedtls_pk_c
         curve = PSA_KEY_TYPE_ECC_GET_FAMILY(opaque_key_type);
         id = mbedtls_ecc_group_from_psa(curve, psa_get_key_bits(&opaque_attrs));
         psa_reset_key_attributes(&opaque_attrs);
-    } else
-#endif /* MBEDTLS_USE_PSA_CRYPTO */
-    {
-#if defined(MBEDTLS_PK_USE_PSA_EC_DATA)
-        id = mbedtls_ecc_group_from_psa(pk->ec_family, pk->ec_bits);
-#else /* MBEDTLS_PK_USE_PSA_EC_DATA */
-        id = mbedtls_pk_ec_ro(*pk)->grp.id;
-#endif /* MBEDTLS_PK_USE_PSA_EC_DATA */
+    } else {
+        id = mbedtls_ecc_group_from_psa(pk->ec_family, pk->bits);
     }

     return id;
 }

 /* Helper for Montgomery curves */
-#if defined(MBEDTLS_ECP_HAVE_CURVE25519) || defined(MBEDTLS_ECP_HAVE_CURVE448)
+#if defined(PSA_WANT_ECC_MONTGOMERY_255) || defined(PSA_WANT_ECC_MONTGOMERY_448)
 #define MBEDTLS_PK_HAVE_RFC8410_CURVES
-#endif /* MBEDTLS_ECP_HAVE_CURVE25519 || MBEDTLS_ECP_DP_CURVE448 */
+#endif /* PSA_WANT_ECC_MONTGOMERY_255 || PSA_WANT_ECC_MONTGOMERY_448 */

 #define MBEDTLS_PK_IS_RFC8410_GROUP_ID(id)  \
     ((id == MBEDTLS_ECP_DP_CURVE25519) || (id == MBEDTLS_ECP_DP_CURVE448))
@@ -168,37 +127,72 @@ int mbedtls_pk_ecc_set_pubkey(mbedtls_pk_context *pk, const unsigned char *pub,
  * [in/out] pk: in: must have the private key set, see mbedtls_pk_ecc_set_key().
  *              out: will have the public key set.
  * [in] prv, prv_len: the raw private key (see note below).
- * [in] f_rng, p_rng: RNG function and context.
  *
  * Note: the private key information is always available from pk,
  * however for convenience the serialized version is also passed,
  * as it's available at each calling site, and useful in some configs
  * (as otherwise we would have to re-serialize it from the pk context).
- *
- * There are three implementations of this function:
- * 1. MBEDTLS_PK_USE_PSA_EC_DATA,
- * 2. MBEDTLS_USE_PSA_CRYPTO but not MBEDTLS_PK_USE_PSA_EC_DATA,
- * 3. not MBEDTLS_USE_PSA_CRYPTO.
  */
 int mbedtls_pk_ecc_set_pubkey_from_prv(mbedtls_pk_context *pk,
-                                       const unsigned char *prv, size_t prv_len,
-                                       int (*f_rng)(void *, unsigned char *, size_t), void *p_rng);
-#endif /* MBEDTLS_PK_HAVE_ECC_KEYS */
-
-/* Helper for (deterministic) ECDSA */
-#if defined(MBEDTLS_ECDSA_DETERMINISTIC)
-#define MBEDTLS_PK_PSA_ALG_ECDSA_MAYBE_DET  PSA_ALG_DETERMINISTIC_ECDSA
-#else
-#define MBEDTLS_PK_PSA_ALG_ECDSA_MAYBE_DET  PSA_ALG_ECDSA
-#endif
+                                       const unsigned char *prv, size_t prv_len);
+#endif /* PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY */
+
+#if defined(PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY)
+/*
+ * Parse a private RSA key.
+ */
+int mbedtls_pk_rsa_set_key(mbedtls_pk_context *pk, const unsigned char *key, size_t key_len);
+
+/*
+ * Parse an RSA public key.
+ */
+int mbedtls_pk_rsa_set_pubkey(mbedtls_pk_context *pk, const unsigned char *key, size_t key_len);
+
+/*
+ * Set the public key field in PK context by exporting it from the private key.
+ */
+int mbedtls_pk_rsa_set_pubkey_from_prv(mbedtls_pk_context *pk);
+
+/*
+ * Set the padding for the RSA key.
+ */
+static inline int mbedtls_pk_set_rsa_padding(mbedtls_pk_context *pk, mbedtls_pk_rsa_padding_t type)
+{
+    if ((type != MBEDTLS_PK_RSA_PKCS_V15) && (type != MBEDTLS_PK_RSA_PKCS_V21)) {
+        return MBEDTLS_ERR_PK_BAD_INPUT_DATA;
+    }
+
+    pk->rsa_padding = type;
+
+    return 0;
+}
+
+/*
+ * Set the hash algorithm to be used with RSA public key.
+ */
+static inline int mbedtls_pk_set_rsa_hash_alg(mbedtls_pk_context *pk, psa_algorithm_t alg)
+{
+    pk->rsa_hash_alg = alg;
+
+    return 0;
+}
+#endif /* PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY */

 #if defined(MBEDTLS_TEST_HOOKS)
+
 MBEDTLS_STATIC_TESTABLE int mbedtls_pk_parse_key_pkcs8_encrypted_der(
     mbedtls_pk_context *pk,
     unsigned char *key, size_t keylen,
-    const unsigned char *pwd, size_t pwdlen,
-    int (*f_rng)(void *, unsigned char *, size_t), void *p_rng);
-#endif
+    const unsigned char *pwd, size_t pwdlen);
+
+#if defined(MBEDTLS_PK_PARSE_C)
+MBEDTLS_STATIC_TESTABLE int mbedtls_pk_parse_key_pkcs8_unencrypted_der(
+    mbedtls_pk_context *pk,
+    const unsigned char *key,
+    size_t keylen);
+#endif /* MBEDTLS_PK_PARSE_C */
+
+#endif /* MBEDTLS_TEST_HOOKS */

 #if defined(MBEDTLS_FS_IO)
 int mbedtls_pk_load_file(const char *path, unsigned char **buf, size_t *n);
diff --git a/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/pk_rsa.c b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/pk_rsa.c
new file mode 100644
index 00000000000..47b8c846dc5
--- /dev/null
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/pk_rsa.c
@@ -0,0 +1,113 @@
+/*
+ *  RSA setters for PK.
+ *
+ *  Copyright The Mbed TLS Contributors
+ *  SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+ */
+
+#include "tf_psa_crypto_common.h"
+
+#include "mbedtls/pk.h"
+#include "mbedtls/private/error_common.h"
+#include "pk_internal.h"
+
+#if defined(PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY)
+
+int mbedtls_pk_rsa_set_key(mbedtls_pk_context *pk, const unsigned char *key, size_t key_len)
+{
+    psa_key_attributes_t attr = PSA_KEY_ATTRIBUTES_INIT;
+    psa_status_t status;
+    size_t key_bits = 0;
+
+    psa_set_key_type(&attr, PSA_KEY_TYPE_RSA_KEY_PAIR);
+    psa_set_key_usage_flags(&attr, PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE |
+                            PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE |
+                            PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_COPY);
+    psa_set_key_algorithm(&attr, PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_ANY_HASH));
+#if defined(MBEDTLS_PSA_CRYPTO_C)
+    psa_set_key_enrollment_algorithm(&attr, PSA_ALG_RSA_PSS(PSA_ALG_ANY_HASH));
+#endif
+
+    status = psa_import_key(&attr, key, key_len, &pk->priv_id);
+    if (status != PSA_SUCCESS) {
+        return psa_pk_status_to_mbedtls(status);
+    }
+
+    /* psa_import_key() will also determine the size of the key in bits during import.
+     * We use this to update the PK context structure as well. */
+    status = psa_get_key_attributes(pk->priv_id, &attr);
+    if (status != PSA_SUCCESS) {
+        psa_destroy_key(pk->priv_id);
+        return psa_pk_status_to_mbedtls(status);
+    }
+
+    key_bits = psa_get_key_bits(&attr);
+    /* If "bits" was already setup previously its value must be correct. */
+    if ((pk->bits != 0) && (pk->bits != key_bits)) {
+        psa_destroy_key(pk->priv_id);
+        return MBEDTLS_ERR_PK_BAD_INPUT_DATA;
+    }
+    pk->bits = key_bits;
+
+    psa_reset_key_attributes(&attr);
+
+    return 0;
+}
+
+int mbedtls_pk_rsa_set_pubkey(mbedtls_pk_context *pk, const unsigned char *key, size_t key_len)
+{
+    psa_key_attributes_t attr = PSA_KEY_ATTRIBUTES_INIT;
+    mbedtls_svc_key_id_t key_id = MBEDTLS_SVC_KEY_ID_INIT;
+    psa_status_t status;
+    size_t key_bits;
+
+    if (key_len > sizeof(pk->pub_raw)) {
+        return MBEDTLS_ERR_PK_INVALID_PUBKEY;
+    }
+
+    /* Try importing the key to check if it's valid. */
+    psa_set_key_type(&attr, PSA_KEY_TYPE_RSA_PUBLIC_KEY);
+    psa_set_key_usage_flags(&attr, PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE |
+                            PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_COPY);
+    psa_set_key_algorithm(&attr, PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_ANY_HASH));
+
+    status = psa_import_key(&attr, key, key_len, &key_id);
+    if (status != PSA_SUCCESS) {
+        return MBEDTLS_ERR_PK_INVALID_PUBKEY;
+    }
+
+    status = psa_get_key_attributes(key_id, &attr);
+    if (status != PSA_SUCCESS) {
+        psa_destroy_key(key_id);
+        return psa_pk_status_to_mbedtls(status);
+    }
+
+    status = psa_destroy_key(key_id);
+    if (status != PSA_SUCCESS) {
+        psa_reset_key_attributes(&attr);
+        return psa_pk_status_to_mbedtls(status);
+    }
+
+    key_bits = psa_get_key_bits(&attr);
+    psa_reset_key_attributes(&attr);
+    if ((pk->bits != 0) && (pk->bits != key_bits)) {
+        return MBEDTLS_ERR_PK_BAD_INPUT_DATA;
+    }
+    pk->bits = key_bits;
+    pk->rsa_padding = MBEDTLS_PK_RSA_PKCS_V15;
+
+    memcpy(pk->pub_raw, key, key_len);
+    pk->pub_raw_len = key_len;
+
+    return 0;
+}
+
+int mbedtls_pk_rsa_set_pubkey_from_prv(mbedtls_pk_context *pk)
+{
+    psa_status_t status;
+
+    status = psa_export_public_key(pk->priv_id, pk->pub_raw, sizeof(pk->pub_raw),
+                                   &pk->pub_raw_len);
+    return PSA_PK_TO_MBEDTLS_ERR(status);
+}
+#endif /* PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY */
diff --git a/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/pk_wrap.c b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/pk_wrap.c
new file mode 100644
index 00000000000..1ada0e99eff
--- /dev/null
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/pk_wrap.c
@@ -0,0 +1,811 @@
+/*
+ *  Public Key abstraction layer: wrapper functions
+ *
+ *  Copyright The Mbed TLS Contributors
+ *  SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+ */
+
+#include "tf_psa_crypto_common.h"
+
+#include "mbedtls/platform_util.h"
+
+#if defined(MBEDTLS_PK_C)
+#include "pk_wrap.h"
+#include "pk_internal.h"
+#include "mbedtls/private/error_common.h"
+#include "mbedtls/psa_util.h"
+
+/* Even if RSA not activated, for the sake of RSA-alt */
+#include "mbedtls/private/rsa.h"
+
+#if defined(MBEDTLS_ECP_C)
+#include "mbedtls/private/ecp.h"
+#endif
+
+#if defined(MBEDTLS_ECDSA_C)
+#include "mbedtls/private/ecdsa.h"
+#endif
+
+#include "psa_util_internal.h"
+#include "psa/crypto.h"
+#include "mbedtls/psa_util.h"
+
+#if defined(PSA_HAVE_ALG_SOME_ECDSA)
+#include "mbedtls/asn1write.h"
+#include "mbedtls/asn1.h"
+#endif
+
+#include "mbedtls/platform.h"
+
+#include <limits.h>
+#include <stdint.h>
+#include <string.h>
+
+#if defined(PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY)
+static int rsa_can_do(mbedtls_pk_type_t type)
+{
+    return type == MBEDTLS_PK_RSA ||
+           type == MBEDTLS_PK_RSASSA_PSS;
+}
+
+static size_t rsa_get_bitlen(mbedtls_pk_context *pk)
+{
+    return pk->bits;
+}
+
+static int rsa_verify_wrap(mbedtls_pk_context *pk, mbedtls_md_type_t md_alg,
+                           const unsigned char *hash, size_t hash_len,
+                           const unsigned char *sig, size_t sig_len)
+{
+    int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
+    psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT;
+    mbedtls_svc_key_id_t key_id = MBEDTLS_SVC_KEY_ID_INIT;
+    psa_status_t status;
+    psa_algorithm_t psa_alg_md;
+    size_t rsa_len = mbedtls_pk_get_len(pk);
+
+#if SIZE_MAX > UINT_MAX
+    if (md_alg == MBEDTLS_MD_NONE && UINT_MAX < hash_len) {
+        return MBEDTLS_ERR_PK_BAD_INPUT_DATA;
+    }
+#endif
+
+    if (pk->rsa_padding == MBEDTLS_PK_RSA_PKCS_V21) {
+        psa_alg_md = PSA_ALG_RSA_PSS(mbedtls_md_psa_alg_from_type(md_alg));
+    } else {
+        psa_alg_md = PSA_ALG_RSA_PKCS1V15_SIGN(mbedtls_md_psa_alg_from_type(md_alg));
+    }
+
+    if (sig_len < rsa_len) {
+        return MBEDTLS_ERR_RSA_VERIFY_FAILED;
+    }
+
+    psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_VERIFY_HASH);
+    psa_set_key_algorithm(&attributes, psa_alg_md);
+    psa_set_key_type(&attributes, PSA_KEY_TYPE_RSA_PUBLIC_KEY);
+
+    status = psa_import_key(&attributes, pk->pub_raw, pk->pub_raw_len, &key_id);
+    if (status != PSA_SUCCESS) {
+        ret = PSA_PK_TO_MBEDTLS_ERR(status);
+        goto cleanup;
+    }
+
+    status = psa_verify_hash(key_id, psa_alg_md, hash, hash_len,
+                             sig, sig_len);
+    if (status != PSA_SUCCESS) {
+        ret = PSA_PK_RSA_TO_MBEDTLS_ERR(status);
+        goto cleanup;
+    }
+    ret = 0;
+
+cleanup:
+    status = psa_destroy_key(key_id);
+    if (ret == 0 && status != PSA_SUCCESS) {
+        ret = PSA_PK_TO_MBEDTLS_ERR(status);
+    }
+
+    return ret;
+}
+
+int  mbedtls_pk_psa_rsa_sign_ext(psa_algorithm_t alg,
+                                 mbedtls_pk_context *pk,
+                                 const unsigned char *hash, size_t hash_len,
+                                 unsigned char *sig, size_t sig_size,
+                                 size_t *sig_len)
+{
+    psa_status_t status;
+
+    *sig_len = mbedtls_pk_get_len(pk);
+    if (sig_size < *sig_len) {
+        return MBEDTLS_ERR_PK_BUFFER_TOO_SMALL;
+    }
+
+    status = psa_sign_hash(pk->priv_id, alg, hash, hash_len,
+                           sig, sig_size, sig_len);
+    return PSA_PK_TO_MBEDTLS_ERR(status);
+}
+
+static int rsa_sign_wrap(mbedtls_pk_context *pk, mbedtls_md_type_t md_alg,
+                         const unsigned char *hash, size_t hash_len,
+                         unsigned char *sig, size_t sig_size, size_t *sig_len)
+{
+    psa_algorithm_t psa_md_alg;
+    psa_md_alg = mbedtls_md_psa_alg_from_type(md_alg);
+    if (psa_md_alg == 0) {
+        return MBEDTLS_ERR_PK_BAD_INPUT_DATA;
+    }
+    psa_algorithm_t psa_alg;
+    if (pk->rsa_padding == MBEDTLS_PK_RSA_PKCS_V21) {
+        psa_alg = PSA_ALG_RSA_PSS(psa_md_alg);
+    } else {
+        psa_alg = PSA_ALG_RSA_PKCS1V15_SIGN(psa_md_alg);
+    }
+
+    return mbedtls_pk_psa_rsa_sign_ext(psa_alg, pk, hash, hash_len,
+                                       sig, sig_size, sig_len);
+}
+
+static int rsa_check_pair_wrap(mbedtls_pk_context *pub, mbedtls_pk_context *prv)
+{
+    psa_status_t status;
+    uint8_t exp_pub_key[MBEDTLS_PK_MAX_RSA_PUBKEY_RAW_LEN];
+    size_t exp_pub_key_len;
+
+    status = psa_export_public_key(prv->priv_id, exp_pub_key, sizeof(exp_pub_key),
+                                   &exp_pub_key_len);
+    if (status != PSA_SUCCESS) {
+        return MBEDTLS_ERR_PK_BAD_INPUT_DATA;
+    }
+
+    if (memcmp(pub->pub_raw, exp_pub_key, exp_pub_key_len) != 0) {
+        return MBEDTLS_ERR_PK_BAD_INPUT_DATA;
+    }
+    return 0;
+}
+
+static void rsa_debug(mbedtls_pk_context *pk, mbedtls_pk_debug_item *items)
+{
+    items->type = MBEDTLS_PK_DEBUG_PSA_RSA;
+    items->name = "rsa";
+    items->value = pk;
+}
+
+const mbedtls_pk_info_t mbedtls_rsa_info = {
+    .type = MBEDTLS_PK_RSA,
+    .name = "RSA",
+    .get_bitlen = rsa_get_bitlen,
+    .can_do = rsa_can_do,
+    .verify_func = rsa_verify_wrap,
+    .sign_func = rsa_sign_wrap,
+#if defined(MBEDTLS_ECP_RESTARTABLE)
+    .verify_rs_func = NULL,
+    .sign_rs_func = NULL,
+    .rs_alloc_func = NULL,
+    .rs_free_func = NULL,
+#endif /* MBEDTLS_ECP_RESTARTABLE */
+    .check_pair_func = rsa_check_pair_wrap,
+    .ctx_alloc_func = NULL,
+    .ctx_free_func = NULL,
+    .debug_func = rsa_debug,
+};
+#endif /* PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY */
+
+#if defined(PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY)
+/*
+ * Generic EC key
+ */
+static int eckey_can_do(mbedtls_pk_type_t type)
+{
+    return type == MBEDTLS_PK_ECKEY ||
+           type == MBEDTLS_PK_ECKEY_DH ||
+           type == MBEDTLS_PK_ECDSA;
+}
+
+static size_t eckey_get_bitlen(mbedtls_pk_context *pk)
+{
+    return pk->bits;
+}
+
+#if defined(PSA_HAVE_ALG_ECDSA_VERIFY)
+/* Common helper for ECDSA verify using PSA functions. */
+static int ecdsa_verify_psa(unsigned char *key, size_t key_len,
+                            psa_ecc_family_t curve, size_t curve_bits,
+                            const unsigned char *hash, size_t hash_len,
+                            const unsigned char *sig, size_t sig_len)
+{
+    int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
+    psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT;
+    mbedtls_svc_key_id_t key_id = MBEDTLS_SVC_KEY_ID_INIT;
+    psa_algorithm_t psa_sig_md = PSA_ALG_ECDSA_ANY;
+    size_t signature_len = PSA_ECDSA_SIGNATURE_SIZE(curve_bits);
+    size_t converted_sig_len;
+    unsigned char extracted_sig[PSA_VENDOR_ECDSA_SIGNATURE_MAX_SIZE];
+    unsigned char *p;
+    psa_status_t status;
+
+    if (curve == 0) {
+        return MBEDTLS_ERR_PK_BAD_INPUT_DATA;
+    }
+
+    psa_set_key_type(&attributes, PSA_KEY_TYPE_ECC_PUBLIC_KEY(curve));
+    psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_VERIFY_HASH);
+    psa_set_key_algorithm(&attributes, psa_sig_md);
+
+    status = psa_import_key(&attributes, key, key_len, &key_id);
+    if (status != PSA_SUCCESS) {
+        ret = PSA_PK_TO_MBEDTLS_ERR(status);
+        goto cleanup;
+    }
+
+    if (signature_len > sizeof(extracted_sig)) {
+        ret = MBEDTLS_ERR_PK_BAD_INPUT_DATA;
+        goto cleanup;
+    }
+
+    p = (unsigned char *) sig;
+    ret = mbedtls_ecdsa_der_to_raw(curve_bits, p, sig_len, extracted_sig,
+                                   sizeof(extracted_sig), &converted_sig_len);
+    if (ret != 0) {
+        goto cleanup;
+    }
+
+    if (converted_sig_len != signature_len) {
+        ret = MBEDTLS_ERR_PK_BAD_INPUT_DATA;
+        goto cleanup;
+    }
+
+    status = psa_verify_hash(key_id, psa_sig_md, hash, hash_len,
+                             extracted_sig, signature_len);
+    if (status != PSA_SUCCESS) {
+        ret = PSA_PK_ECDSA_TO_MBEDTLS_ERR(status);
+        goto cleanup;
+    }
+
+    ret = 0;
+
+cleanup:
+    status = psa_destroy_key(key_id);
+    if (ret == 0 && status != PSA_SUCCESS) {
+        ret = PSA_PK_TO_MBEDTLS_ERR(status);
+    }
+
+    return ret;
+}
+
+static int ecdsa_opaque_verify_wrap(mbedtls_pk_context *pk,
+                                    mbedtls_md_type_t md_alg,
+                                    const unsigned char *hash, size_t hash_len,
+                                    const unsigned char *sig, size_t sig_len)
+{
+    (void) md_alg;
+    unsigned char key[MBEDTLS_PK_MAX_EC_PUBKEY_RAW_LEN];
+    size_t key_len;
+    psa_key_attributes_t key_attr = PSA_KEY_ATTRIBUTES_INIT;
+    psa_ecc_family_t curve;
+    size_t curve_bits;
+    psa_status_t status;
+
+    status = psa_get_key_attributes(pk->priv_id, &key_attr);
+    if (status != PSA_SUCCESS) {
+        return PSA_PK_ECDSA_TO_MBEDTLS_ERR(status);
+    }
+    curve = PSA_KEY_TYPE_ECC_GET_FAMILY(psa_get_key_type(&key_attr));
+    curve_bits = psa_get_key_bits(&key_attr);
+    psa_reset_key_attributes(&key_attr);
+
+    status = psa_export_public_key(pk->priv_id, key, sizeof(key), &key_len);
+    if (status != PSA_SUCCESS) {
+        return PSA_PK_ECDSA_TO_MBEDTLS_ERR(status);
+    }
+
+    return ecdsa_verify_psa(key, key_len, curve, curve_bits,
+                            hash, hash_len, sig, sig_len);
+}
+
+static int ecdsa_verify_wrap(mbedtls_pk_context *pk,
+                             mbedtls_md_type_t md_alg,
+                             const unsigned char *hash, size_t hash_len,
+                             const unsigned char *sig, size_t sig_len)
+{
+    (void) md_alg;
+    psa_ecc_family_t curve = pk->ec_family;
+    size_t curve_bits = pk->bits;
+
+    return ecdsa_verify_psa(pk->pub_raw, pk->pub_raw_len, curve, curve_bits,
+                            hash, hash_len, sig, sig_len);
+}
+#endif /* PSA_HAVE_ALG_ECDSA_VERIFY */
+
+#if defined(PSA_HAVE_ALG_ECDSA_SIGN)
+/* Common helper for ECDSA sign using PSA functions.
+ * Instead of extracting key's properties in order to check which kind of ECDSA
+ * signature it supports, we try both deterministic and non-deterministic.
+ */
+static int ecdsa_sign_psa(mbedtls_svc_key_id_t key_id, mbedtls_md_type_t md_alg,
+                          const unsigned char *hash, size_t hash_len,
+                          unsigned char *sig, size_t sig_size, size_t *sig_len)
+{
+    int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
+    psa_status_t status;
+    psa_key_attributes_t key_attr = PSA_KEY_ATTRIBUTES_INIT;
+    size_t key_bits = 0;
+
+    status = psa_get_key_attributes(key_id, &key_attr);
+    if (status != PSA_SUCCESS) {
+        return PSA_PK_ECDSA_TO_MBEDTLS_ERR(status);
+    }
+    key_bits = psa_get_key_bits(&key_attr);
+    psa_reset_key_attributes(&key_attr);
+
+    status = psa_sign_hash(key_id,
+                           PSA_ALG_DETERMINISTIC_ECDSA(mbedtls_md_psa_alg_from_type(md_alg)),
+                           hash, hash_len, sig, sig_size, sig_len);
+    if (status == PSA_SUCCESS) {
+        goto done;
+    } else if (status != PSA_ERROR_NOT_PERMITTED) {
+        return PSA_PK_ECDSA_TO_MBEDTLS_ERR(status);
+    }
+
+    status = psa_sign_hash(key_id,
+                           PSA_ALG_ECDSA(mbedtls_md_psa_alg_from_type(md_alg)),
+                           hash, hash_len, sig, sig_size, sig_len);
+    if (status != PSA_SUCCESS) {
+        return PSA_PK_ECDSA_TO_MBEDTLS_ERR(status);
+    }
+
+done:
+    ret = mbedtls_ecdsa_raw_to_der(key_bits, sig, *sig_len, sig, sig_size, sig_len);
+
+    return ret;
+}
+
+static int ecdsa_opaque_sign_wrap(mbedtls_pk_context *pk,
+                                  mbedtls_md_type_t md_alg,
+                                  const unsigned char *hash, size_t hash_len,
+                                  unsigned char *sig, size_t sig_size,
+                                  size_t *sig_len)
+{
+    return ecdsa_sign_psa(pk->priv_id, md_alg, hash, hash_len, sig, sig_size,
+                          sig_len);
+}
+
+#define ecdsa_sign_wrap     ecdsa_opaque_sign_wrap
+
+#endif /* PSA_HAVE_ALG_ECDSA_SIGN */
+
+#if defined(MBEDTLS_ECP_RESTARTABLE)
+
+/*
+ * Restart context for ECDSA operations with ECKEY context
+ *
+ * We need to store an actual ECDSA context, as we need to pass the same to
+ * the underlying ecdsa function, so we can't create it on the fly every time.
+ */
+typedef struct {
+    mbedtls_ecdsa_restart_ctx ecdsa_rs;
+    mbedtls_ecdsa_context ecdsa_ctx;
+} eckey_restart_ctx;
+
+#if defined(PSA_HAVE_ALG_ECDSA_SIGN) || defined(PSA_HAVE_ALG_ECDSA_VERIFY)
+static void *eckey_rs_alloc(mbedtls_pk_rs_op_t op_type)
+{
+    mbedtls_pk_psa_restartable_ctx_t *rs_ctx;
+
+    rs_ctx = mbedtls_calloc(1, sizeof(mbedtls_pk_psa_restartable_ctx_t));
+    if (rs_ctx == NULL) {
+        return NULL;
+    }
+
+    rs_ctx->op_type = op_type;
+    rs_ctx->pub_id = MBEDTLS_SVC_KEY_ID_INIT;
+    if (op_type == MBEDTLS_PK_RS_OP_VERIFY) {
+        rs_ctx->op = mbedtls_calloc(1, sizeof(psa_verify_hash_interruptible_operation_t));
+        psa_verify_hash_interruptible_operation_t *op = rs_ctx->op;
+        *op = psa_verify_hash_interruptible_operation_init();
+    } else {
+        rs_ctx->op = mbedtls_calloc(1, sizeof(psa_sign_hash_interruptible_operation_t));
+        psa_sign_hash_interruptible_operation_t *op = rs_ctx->op;
+        *op = psa_sign_hash_interruptible_operation_init();
+    }
+
+    return (void *) rs_ctx;
+}
+
+static void eckey_rs_free(void *ctx)
+{
+    mbedtls_pk_psa_restartable_ctx_t *rs_ctx = ctx;
+
+    if (rs_ctx->op_type == MBEDTLS_PK_RS_OP_VERIFY) {
+        psa_verify_hash_abort(rs_ctx->op);
+    } else {
+        psa_sign_hash_abort(rs_ctx->op);
+    }
+
+    mbedtls_free(rs_ctx->op);
+
+    if (!mbedtls_svc_key_id_is_null(rs_ctx->pub_id)) {
+        psa_destroy_key(rs_ctx->pub_id);
+        rs_ctx->pub_id = MBEDTLS_SVC_KEY_ID_INIT;
+    }
+
+    mbedtls_free(rs_ctx);
+}
+#endif /* PSA_HAVE_ALG_ECDSA_SIGN || PSA_HAVE_ALG_ECDSA_VERIFY */
+
+#if defined(PSA_HAVE_ALG_ECDSA_VERIFY)
+static int eckey_verify_rs_wrap(mbedtls_pk_context *pk, mbedtls_md_type_t md_alg,
+                                const unsigned char *hash, size_t hash_len,
+                                const unsigned char *sig, size_t sig_len,
+                                void *_rs_ctx)
+{
+    mbedtls_pk_psa_restartable_ctx_t *rs_ctx = _rs_ctx;
+    psa_verify_hash_interruptible_operation_t *op;
+    psa_status_t status_tmp = PSA_ERROR_CORRUPTION_DETECTED;
+    psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED;
+    unsigned char raw_sig[PSA_VENDOR_ECDSA_SIGNATURE_MAX_SIZE];
+    size_t raw_sig_len;
+    int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
+
+    if (rs_ctx->op_type != MBEDTLS_PK_RS_OP_VERIFY) {
+        return MBEDTLS_ERR_PK_BAD_INPUT_DATA;
+    }
+
+    ret = mbedtls_ecdsa_der_to_raw(pk->bits, sig, sig_len,
+                                   raw_sig, sizeof(raw_sig), &raw_sig_len);
+    if (ret != 0) {
+        return ret;
+    }
+
+    op = rs_ctx->op;
+
+    if (psa_verify_hash_get_num_ops(op) == 0) {
+        psa_key_attributes_t attr = PSA_KEY_ATTRIBUTES_INIT;
+        psa_algorithm_t alg = PSA_ALG_ECDSA(mbedtls_md_psa_alg_from_type(md_alg));
+        psa_set_key_algorithm(&attr, alg);
+        psa_set_key_type(&attr, PSA_KEY_TYPE_ECC_PUBLIC_KEY(pk->ec_family));
+        psa_set_key_bits(&attr, pk->bits);
+        psa_set_key_usage_flags(&attr, PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE);
+
+        status = psa_import_key(&attr, pk->pub_raw, pk->pub_raw_len, &rs_ctx->pub_id);
+        if (status != PSA_SUCCESS) {
+            return PSA_PK_TO_MBEDTLS_ERR(status);
+        }
+        status = psa_verify_hash_start(op, rs_ctx->pub_id, alg, hash, hash_len,
+                                       raw_sig, raw_sig_len);
+        if (status != PSA_SUCCESS) {
+            psa_destroy_key(rs_ctx->pub_id);
+            return PSA_PK_TO_MBEDTLS_ERR(status);
+        }
+    }
+
+    status = psa_verify_hash_complete(op);
+    if (status == PSA_OPERATION_INCOMPLETE) {
+        return MBEDTLS_ERR_ECP_IN_PROGRESS;
+    }
+
+    status_tmp = psa_verify_hash_abort(op);
+    status = (status != PSA_SUCCESS) ? status : status_tmp;
+
+    status_tmp = psa_destroy_key(rs_ctx->pub_id);
+    rs_ctx->pub_id = MBEDTLS_SVC_KEY_ID_INIT;
+    status = (status != PSA_SUCCESS) ? status : status_tmp;
+
+    return PSA_PK_TO_MBEDTLS_ERR(status);
+}
+#endif /* PSA_HAVE_ALG_ECDSA_VERIFY */
+
+#if defined(PSA_HAVE_ALG_ECDSA_SIGN)
+static int eckey_sign_rs_wrap(mbedtls_pk_context *pk, mbedtls_md_type_t md_alg,
+                              const unsigned char *hash, size_t hash_len,
+                              unsigned char *sig, size_t sig_size, size_t *sig_len,
+                              void *_rs_ctx)
+{
+    mbedtls_pk_psa_restartable_ctx_t *rs_ctx = _rs_ctx;
+    psa_sign_hash_interruptible_operation_t *op;
+    psa_status_t tmp_status = PSA_ERROR_CORRUPTION_DETECTED;
+    psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED;
+
+    if (rs_ctx->op_type != MBEDTLS_PK_RS_OP_SIGN) {
+        return MBEDTLS_ERR_PK_BAD_INPUT_DATA;
+    }
+
+    op = rs_ctx->op;
+
+    if (psa_sign_hash_get_num_ops(op) == 0) {
+        psa_algorithm_t alg =
+            MBEDTLS_PK_ALG_ECDSA(mbedtls_md_psa_alg_from_type(md_alg));
+
+        status = psa_sign_hash_start(op, pk->priv_id, alg, hash, hash_len);
+        if (status != PSA_SUCCESS) {
+            return PSA_PK_TO_MBEDTLS_ERR(status);
+        }
+    }
+
+    status = psa_sign_hash_complete(op, sig, sig_size, sig_len);
+    if (status == PSA_OPERATION_INCOMPLETE) {
+        return MBEDTLS_ERR_ECP_IN_PROGRESS;
+    }
+
+    tmp_status = psa_sign_hash_abort(op);
+    status = (status != PSA_SUCCESS) ? status : tmp_status;
+
+    if (status != PSA_SUCCESS) {
+        return PSA_PK_TO_MBEDTLS_ERR(status);
+    }
+
+    return mbedtls_ecdsa_raw_to_der(pk->bits, sig, *sig_len, sig, sig_size, sig_len);
+}
+#endif /* PSA_HAVE_ALG_ECDSA_SIGN */
+#endif /* MBEDTLS_ECP_RESTARTABLE */
+
+static int eckey_check_pair_psa(mbedtls_pk_context *pub, mbedtls_pk_context *prv)
+{
+    psa_status_t status;
+    int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
+    uint8_t prv_key_buf[MBEDTLS_PSA_MAX_EC_PUBKEY_LENGTH];
+    size_t prv_key_len;
+    mbedtls_svc_key_id_t key_id = prv->priv_id;
+
+    status = psa_export_public_key(key_id, prv_key_buf, sizeof(prv_key_buf),
+                                   &prv_key_len);
+    ret = PSA_PK_TO_MBEDTLS_ERR(status);
+    if (ret != 0) {
+        return ret;
+    }
+
+    if (memcmp(prv_key_buf, pub->pub_raw, pub->pub_raw_len) != 0) {
+        return MBEDTLS_ERR_PK_BAD_INPUT_DATA;
+    }
+
+    return 0;
+}
+
+static int eckey_check_pair_wrap(mbedtls_pk_context *pub, mbedtls_pk_context *prv)
+{
+    return eckey_check_pair_psa(pub, prv);
+}
+
+#define ecdsa_opaque_check_pair_wrap    eckey_check_pair_wrap
+
+static void eckey_debug(mbedtls_pk_context *pk, mbedtls_pk_debug_item *items)
+{
+    items->type = MBEDTLS_PK_DEBUG_PSA_EC;
+    items->name = "eckey.Q";
+    items->value = pk;
+}
+
+const mbedtls_pk_info_t mbedtls_eckey_info = {
+    .type = MBEDTLS_PK_ECKEY,
+    .name = "EC",
+    .get_bitlen = eckey_get_bitlen,
+    .can_do = eckey_can_do,
+#if defined(PSA_HAVE_ALG_ECDSA_VERIFY)
+    .verify_func = ecdsa_verify_wrap,   /* Compatible key structures */
+#else /* PSA_HAVE_ALG_ECDSA_VERIFY */
+    .verify_func = NULL,
+#endif /* PSA_HAVE_ALG_ECDSA_VERIFY */
+#if defined(PSA_HAVE_ALG_ECDSA_SIGN)
+    .sign_func = ecdsa_sign_wrap,   /* Compatible key structures */
+#else /* PSA_HAVE_ALG_ECDSA_VERIFY */
+    .sign_func = NULL,
+#endif /* PSA_HAVE_ALG_ECDSA_VERIFY */
+#if defined(MBEDTLS_ECP_RESTARTABLE)
+#if defined(PSA_HAVE_ALG_ECDSA_VERIFY)
+    .verify_rs_func = eckey_verify_rs_wrap,
+#else /* PSA_HAVE_ALG_ECDSA_VERIFY */
+    .verify_rs_func = NULL,
+#endif /* PSA_HAVE_ALG_ECDSA_VERIFY */
+#if defined(PSA_HAVE_ALG_ECDSA_SIGN)
+    .sign_rs_func = eckey_sign_rs_wrap,
+#else /* PSA_HAVE_ALG_ECDSA_SIGN */
+    .sign_rs_func = NULL,
+#endif /* PSA_HAVE_ALG_ECDSA_SIGN */
+#if defined(PSA_HAVE_ALG_ECDSA_SIGN) || defined(PSA_HAVE_ALG_ECDSA_VERIFY)
+    .rs_alloc_func = eckey_rs_alloc,
+    .rs_free_func = eckey_rs_free,
+#else /* PSA_HAVE_ALG_ECDSA_SIGN || PSA_HAVE_ALG_ECDSA_VERIFY */
+    .rs_alloc_func = NULL,
+    .rs_free_func = NULL,
+#endif /* PSA_HAVE_ALG_ECDSA_SIGN || PSA_HAVE_ALG_ECDSA_VERIFY */
+#endif /* MBEDTLS_ECP_RESTARTABLE */
+    .check_pair_func = eckey_check_pair_wrap,
+    .ctx_alloc_func = NULL,
+    .ctx_free_func = NULL,
+    .debug_func = eckey_debug,
+};
+
+/*
+ * EC key restricted to ECDH
+ */
+static int eckeydh_can_do(mbedtls_pk_type_t type)
+{
+    return type == MBEDTLS_PK_ECKEY ||
+           type == MBEDTLS_PK_ECKEY_DH;
+}
+
+const mbedtls_pk_info_t mbedtls_eckeydh_info = {
+    .type = MBEDTLS_PK_ECKEY_DH,
+    .name = "EC_DH",
+    .get_bitlen = eckey_get_bitlen,         /* Same underlying key structure */
+    .can_do = eckeydh_can_do,
+    .verify_func = NULL,
+    .sign_func = NULL,
+#if defined(MBEDTLS_ECP_RESTARTABLE)
+    .verify_rs_func = NULL,
+    .sign_rs_func = NULL,
+#endif /* MBEDTLS_ECP_RESTARTABLE */
+    .check_pair_func = eckey_check_pair_wrap,
+    .ctx_alloc_func = NULL,
+    .ctx_free_func = NULL,
+    .debug_func = eckey_debug,            /* Same underlying key structure */
+};
+
+#if defined(PSA_HAVE_ALG_SOME_ECDSA)
+static int ecdsa_can_do(mbedtls_pk_type_t type)
+{
+    return type == MBEDTLS_PK_ECDSA;
+}
+
+const mbedtls_pk_info_t mbedtls_ecdsa_info = {
+    .type = MBEDTLS_PK_ECDSA,
+    .name = "ECDSA",
+    .get_bitlen = eckey_get_bitlen,     /* Compatible key structures */
+    .can_do = ecdsa_can_do,
+#if defined(PSA_HAVE_ALG_ECDSA_VERIFY)
+    .verify_func = ecdsa_verify_wrap,   /* Compatible key structures */
+#else /* PSA_HAVE_ALG_ECDSA_VERIFY */
+    .verify_func = NULL,
+#endif /* PSA_HAVE_ALG_ECDSA_VERIFY */
+#if defined(PSA_HAVE_ALG_ECDSA_SIGN)
+    .sign_func = ecdsa_sign_wrap,   /* Compatible key structures */
+#else /* PSA_HAVE_ALG_ECDSA_SIGN */
+    .sign_func = NULL,
+#endif /* PSA_HAVE_ALG_ECDSA_SIGN */
+#if defined(MBEDTLS_ECP_RESTARTABLE)
+#if defined(PSA_HAVE_ALG_ECDSA_VERIFY)
+    .verify_rs_func = eckey_verify_rs_wrap,
+#else /* PSA_HAVE_ALG_ECDSA_VERIFY */
+    .verify_rs_func = NULL,
+#endif /* PSA_HAVE_ALG_ECDSA_VERIFY */
+#if defined(PSA_HAVE_ALG_ECDSA_SIGN)
+    .sign_rs_func = eckey_sign_rs_wrap,
+#else /* PSA_HAVE_ALG_ECDSA_SIGN */
+    .sign_rs_func = NULL,
+#endif /* PSA_HAVE_ALG_ECDSA_SIGN */
+#if defined(PSA_HAVE_ALG_ECDSA_VERIFY) || defined(PSA_HAVE_ALG_ECDSA_SIGN)
+    .rs_alloc_func = eckey_rs_alloc,
+    .rs_free_func = eckey_rs_free,
+#endif /* PSA_HAVE_ALG_ECDSA_VERIFY || PSA_HAVE_ALG_ECDSA_SIGN */
+#endif /* MBEDTLS_ECP_RESTARTABLE */
+    .check_pair_func = eckey_check_pair_wrap,   /* Compatible key structures */
+    .ctx_alloc_func = NULL,
+    .ctx_free_func = NULL,
+    .debug_func = eckey_debug,        /* Compatible key structures */
+};
+#endif /* PSA_HAVE_ALG_SOME_ECDSA */
+#endif /* PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY */
+
+static size_t opaque_get_bitlen(mbedtls_pk_context *pk)
+{
+    size_t bits;
+    psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT;
+
+    if (PSA_SUCCESS != psa_get_key_attributes(pk->priv_id, &attributes)) {
+        return 0;
+    }
+
+    bits = psa_get_key_bits(&attributes);
+    psa_reset_key_attributes(&attributes);
+    return bits;
+}
+
+#if defined(PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY)
+static int ecdsa_opaque_can_do(mbedtls_pk_type_t type)
+{
+    return type == MBEDTLS_PK_ECKEY ||
+           type == MBEDTLS_PK_ECDSA;
+}
+
+const mbedtls_pk_info_t mbedtls_ecdsa_opaque_info = {
+    .type = MBEDTLS_PK_OPAQUE,
+    .name = "Opaque",
+    .get_bitlen = opaque_get_bitlen,
+    .can_do = ecdsa_opaque_can_do,
+#if defined(PSA_HAVE_ALG_ECDSA_VERIFY)
+    .verify_func = ecdsa_opaque_verify_wrap,
+#else /* PSA_HAVE_ALG_ECDSA_VERIFY */
+    .verify_func = NULL,
+#endif /* PSA_HAVE_ALG_ECDSA_VERIFY */
+#if defined(PSA_HAVE_ALG_ECDSA_SIGN)
+    .sign_func = ecdsa_opaque_sign_wrap,
+#else /* PSA_HAVE_ALG_ECDSA_SIGN */
+    .sign_func = NULL,
+#endif /* PSA_HAVE_ALG_ECDSA_SIGN */
+#if defined(MBEDTLS_ECP_RESTARTABLE)
+    .verify_rs_func = NULL,
+    .sign_rs_func = NULL,
+    .rs_alloc_func = NULL,
+    .rs_free_func = NULL,
+#endif /* MBEDTLS_ECP_RESTARTABLE */
+    .check_pair_func = ecdsa_opaque_check_pair_wrap,
+    .ctx_alloc_func = NULL,
+    .ctx_free_func = NULL,
+    .debug_func = NULL,
+};
+#endif /* PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY */
+
+static int rsa_opaque_can_do(mbedtls_pk_type_t type)
+{
+    return type == MBEDTLS_PK_RSA ||
+           type == MBEDTLS_PK_RSASSA_PSS;
+}
+
+static int rsa_opaque_sign_wrap(mbedtls_pk_context *pk, mbedtls_md_type_t md_alg,
+                                const unsigned char *hash, size_t hash_len,
+                                unsigned char *sig, size_t sig_size, size_t *sig_len)
+{
+#if defined(PSA_WANT_KEY_TYPE_RSA_KEY_PAIR_BASIC)
+    psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT;
+    psa_algorithm_t alg;
+    psa_key_type_t type;
+    psa_status_t status;
+
+    /* PSA has its own RNG */
+
+    status = psa_get_key_attributes(pk->priv_id, &attributes);
+    if (status != PSA_SUCCESS) {
+        return PSA_PK_TO_MBEDTLS_ERR(status);
+    }
+
+    type = psa_get_key_type(&attributes);
+    alg = psa_get_key_algorithm(&attributes);
+    psa_reset_key_attributes(&attributes);
+
+    if (PSA_KEY_TYPE_IS_RSA(type)) {
+        alg = (alg & ~PSA_ALG_HASH_MASK) | mbedtls_md_psa_alg_from_type(md_alg);
+    } else {
+        return MBEDTLS_ERR_PK_FEATURE_UNAVAILABLE;
+    }
+
+    status = psa_sign_hash(pk->priv_id, alg, hash, hash_len, sig, sig_size, sig_len);
+    if (status != PSA_SUCCESS) {
+        if (PSA_KEY_TYPE_IS_RSA(type)) {
+            return PSA_PK_RSA_TO_MBEDTLS_ERR(status);
+        } else {
+            return PSA_PK_TO_MBEDTLS_ERR(status);
+        }
+    }
+
+    return 0;
+#else /* PSA_WANT_KEY_TYPE_RSA_KEY_PAIR_BASIC */
+    ((void) pk);
+    ((void) md_alg);
+    ((void) hash);
+    ((void) hash_len);
+    ((void) sig);
+    ((void) sig_size);
+    ((void) sig_len);
+    return MBEDTLS_ERR_PK_FEATURE_UNAVAILABLE;
+#endif /* PSA_WANT_KEY_TYPE_RSA_KEY_PAIR_BASIC */
+}
+
+const mbedtls_pk_info_t mbedtls_rsa_opaque_info = {
+    .type = MBEDTLS_PK_OPAQUE,
+    .name = "Opaque",
+    .get_bitlen = opaque_get_bitlen,
+    .can_do = rsa_opaque_can_do,
+    .verify_func = NULL,
+    .sign_func = rsa_opaque_sign_wrap,
+#if defined(MBEDTLS_ECP_RESTARTABLE)
+    .verify_rs_func = NULL,
+    .sign_rs_func = NULL,
+    .rs_alloc_func = NULL,
+    .rs_free_func = NULL,
+#endif /* MBEDTLS_ECP_RESTARTABLE */
+    .check_pair_func = NULL,
+    .ctx_alloc_func = NULL,
+    .ctx_free_func = NULL,
+    .debug_func = NULL,
+};
+
+#endif /* MBEDTLS_PK_C */
diff --git a/deps/LIEF/third-party/mbedtls/library/pk_wrap.h b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/pk_wrap.h
similarity index 58%
rename from deps/LIEF/third-party/mbedtls/library/pk_wrap.h
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/pk_wrap.h
index be096da53ac..3c9fa13cddc 100644
--- a/deps/LIEF/third-party/mbedtls/library/pk_wrap.h
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/pk_wrap.h
@@ -11,13 +11,25 @@
 #ifndef MBEDTLS_PK_WRAP_H
 #define MBEDTLS_PK_WRAP_H

-#include "mbedtls/build_info.h"
+#include "tf-psa-crypto/build_info.h"

 #include "mbedtls/pk.h"
+#if defined(MBEDTLS_PK_HAVE_PRIVATE_HEADER)
+#include <mbedtls/private/pk_private.h>
+#endif /* MBEDTLS_PK_HAVE_PRIVATE_HEADER */

-#if defined(MBEDTLS_USE_PSA_CRYPTO)
 #include "psa/crypto.h"
-#endif
+
+typedef enum {
+    MBEDTLS_PK_RS_OP_VERIFY,
+    MBEDTLS_PK_RS_OP_SIGN,
+} mbedtls_pk_rs_op_t;
+
+typedef struct {
+    mbedtls_pk_rs_op_t op_type;
+    void *op;
+    mbedtls_svc_key_id_t pub_id;
+} mbedtls_pk_psa_restartable_ctx_t;

 struct mbedtls_pk_info_t {
     /** Public key type */
@@ -40,11 +52,9 @@ struct mbedtls_pk_info_t {
     /** Make signature */
     int (*sign_func)(mbedtls_pk_context *pk, mbedtls_md_type_t md_alg,
                      const unsigned char *hash, size_t hash_len,
-                     unsigned char *sig, size_t sig_size, size_t *sig_len,
-                     int (*f_rng)(void *, unsigned char *, size_t),
-                     void *p_rng);
+                     unsigned char *sig, size_t sig_size, size_t *sig_len);

-#if defined(MBEDTLS_ECDSA_C) && defined(MBEDTLS_ECP_RESTARTABLE)
+#if defined(MBEDTLS_ECP_RESTARTABLE)
     /** Verify signature (restartable) */
     int (*verify_rs_func)(mbedtls_pk_context *pk, mbedtls_md_type_t md_alg,
                           const unsigned char *hash, size_t hash_len,
@@ -55,26 +65,11 @@ struct mbedtls_pk_info_t {
     int (*sign_rs_func)(mbedtls_pk_context *pk, mbedtls_md_type_t md_alg,
                         const unsigned char *hash, size_t hash_len,
                         unsigned char *sig, size_t sig_size, size_t *sig_len,
-                        int (*f_rng)(void *, unsigned char *, size_t),
-                        void *p_rng, void *rs_ctx);
-#endif /* MBEDTLS_ECDSA_C && MBEDTLS_ECP_RESTARTABLE */
-
-    /** Decrypt message */
-    int (*decrypt_func)(mbedtls_pk_context *pk, const unsigned char *input, size_t ilen,
-                        unsigned char *output, size_t *olen, size_t osize,
-                        int (*f_rng)(void *, unsigned char *, size_t),
-                        void *p_rng);
-
-    /** Encrypt message */
-    int (*encrypt_func)(mbedtls_pk_context *pk, const unsigned char *input, size_t ilen,
-                        unsigned char *output, size_t *olen, size_t osize,
-                        int (*f_rng)(void *, unsigned char *, size_t),
-                        void *p_rng);
+                        void *rs_ctx);
+#endif /* MBEDTLS_ECP_RESTARTABLE */

     /** Check public-private key pair */
-    int (*check_pair_func)(mbedtls_pk_context *pub, mbedtls_pk_context *prv,
-                           int (*f_rng)(void *, unsigned char *, size_t),
-                           void *p_rng);
+    int (*check_pair_func)(mbedtls_pk_context *pub, mbedtls_pk_context *prv);

     /** Allocate a new context */
     void * (*ctx_alloc_func)(void);
@@ -82,57 +77,40 @@ struct mbedtls_pk_info_t {
     /** Free the given context */
     void (*ctx_free_func)(void *ctx);

-#if defined(MBEDTLS_ECDSA_C) && defined(MBEDTLS_ECP_RESTARTABLE)
+#if defined(MBEDTLS_ECP_RESTARTABLE)
     /** Allocate the restart context */
-    void *(*rs_alloc_func)(void);
+    void *(*rs_alloc_func)(mbedtls_pk_rs_op_t op_type);

     /** Free the restart context */
     void (*rs_free_func)(void *rs_ctx);
-#endif /* MBEDTLS_ECDSA_C && MBEDTLS_ECP_RESTARTABLE */
+#endif /* MBEDTLS_ECP_RESTARTABLE */

     /** Interface with the debug module */
     void (*debug_func)(mbedtls_pk_context *pk, mbedtls_pk_debug_item *items);

 };
-#if defined(MBEDTLS_PK_RSA_ALT_SUPPORT)
-/* Container for RSA-alt */
-typedef struct {
-    void *key;
-    mbedtls_pk_rsa_alt_decrypt_func decrypt_func;
-    mbedtls_pk_rsa_alt_sign_func sign_func;
-    mbedtls_pk_rsa_alt_key_len_func key_len_func;
-} mbedtls_rsa_alt_context;
-#endif
-
-#if defined(MBEDTLS_RSA_C)
+#if defined(PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY)
 extern const mbedtls_pk_info_t mbedtls_rsa_info;
 #endif

-#if defined(MBEDTLS_PK_HAVE_ECC_KEYS)
+#if defined(PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY)
 extern const mbedtls_pk_info_t mbedtls_eckey_info;
 extern const mbedtls_pk_info_t mbedtls_eckeydh_info;
 #endif

-#if defined(MBEDTLS_PK_CAN_ECDSA_SOME)
+#if defined(PSA_HAVE_ALG_SOME_ECDSA)
 extern const mbedtls_pk_info_t mbedtls_ecdsa_info;
 #endif

-#if defined(MBEDTLS_PK_RSA_ALT_SUPPORT)
-extern const mbedtls_pk_info_t mbedtls_rsa_alt_info;
-#endif
-
-#if defined(MBEDTLS_USE_PSA_CRYPTO)
 extern const mbedtls_pk_info_t mbedtls_ecdsa_opaque_info;
 extern const mbedtls_pk_info_t mbedtls_rsa_opaque_info;

-#if defined(MBEDTLS_RSA_C)
+#if defined(PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY)
 int mbedtls_pk_psa_rsa_sign_ext(psa_algorithm_t psa_alg_md,
-                                mbedtls_rsa_context *rsa_ctx,
+                                mbedtls_pk_context *pk,
                                 const unsigned char *hash, size_t hash_len,
                                 unsigned char *sig, size_t sig_size,
                                 size_t *sig_len);
-#endif /* MBEDTLS_RSA_C */
-
-#endif /* MBEDTLS_USE_PSA_CRYPTO */
+#endif /* PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY */

 #endif /* MBEDTLS_PK_WRAP_H */
diff --git a/deps/LIEF/third-party/mbedtls/library/pkcs5.c b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/pkcs5.c
similarity index 97%
rename from deps/LIEF/third-party/mbedtls/library/pkcs5.c
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/pkcs5.c
index c6c53054b62..2870c980e20 100644
--- a/deps/LIEF/third-party/mbedtls/library/pkcs5.c
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/pkcs5.c
@@ -15,19 +15,19 @@
  * http://tools.ietf.org/html/rfc6070 (Test vectors)
  */

-#include "common.h"
+#include "tf_psa_crypto_common.h"

 #if defined(MBEDTLS_PKCS5_C)

-#include "mbedtls/pkcs5.h"
-#include "mbedtls/error.h"
+#include "mbedtls/private/pkcs5.h"
+#include "mbedtls/private/error_common.h"

 #if defined(MBEDTLS_ASN1_PARSE_C)
 #include "mbedtls/asn1.h"
 #if defined(MBEDTLS_CIPHER_C)
-#include "mbedtls/cipher.h"
+#include "mbedtls/private/cipher.h"
 #endif /* MBEDTLS_CIPHER_C */
-#include "mbedtls/oid.h"
+#include "crypto_oid.h"
 #endif /* MBEDTLS_ASN1_PARSE_C */

 #include <string.h>
@@ -383,7 +383,10 @@ int mbedtls_pkcs5_pbkdf2_hmac_ext(mbedtls_md_type_t md_alg,

     mbedtls_md_init(&md_ctx);

-    if ((ret = mbedtls_md_setup(&md_ctx, md_info, 1)) != 0) {
+    if ((ret = mbedtls_md_setup(&md_ctx, md_info, 0)) != 0) {
+        goto exit;
+    }
+    if ((ret = mbedtls_md_hmac_setup(&md_ctx, md_info)) != 0) {
         goto exit;
     }
     ret = pkcs5_pbkdf2_hmac(&md_ctx, password, plen, salt, slen,
@@ -395,7 +398,7 @@ exit:

 #if defined(MBEDTLS_SELF_TEST)

-#if !defined(MBEDTLS_MD_CAN_SHA1)
+#if !defined(PSA_WANT_ALG_SHA_1)
 int mbedtls_pkcs5_self_test(int verbose)
 {
     if (verbose != 0) {
@@ -493,7 +496,7 @@ int mbedtls_pkcs5_self_test(int verbose)
 exit:
     return ret;
 }
-#endif /* MBEDTLS_MD_CAN_SHA1 */
+#endif /* PSA_WANT_ALG_SHA_1 */

 #endif /* MBEDTLS_SELF_TEST */

diff --git a/deps/LIEF/third-party/mbedtls/library/pkparse.c b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/pkparse.c
similarity index 88%
rename from deps/LIEF/third-party/mbedtls/library/pkparse.c
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/pkparse.c
index 4f6ee139862..6244519485c 100644
--- a/deps/LIEF/third-party/mbedtls/library/pkparse.c
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/pkparse.c
@@ -5,44 +5,36 @@
  *  SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
  */

-#include "common.h"
+#include "tf_psa_crypto_common.h"

 #if defined(MBEDTLS_PK_PARSE_C)

 #include "mbedtls/pk.h"
+#if defined(MBEDTLS_PK_HAVE_PRIVATE_HEADER)
+#include <mbedtls/private/pk_private.h>
+#endif /* MBEDTLS_PK_HAVE_PRIVATE_HEADER */
 #include "mbedtls/asn1.h"
-#include "mbedtls/oid.h"
+#include "crypto_oid.h"
 #include "mbedtls/platform_util.h"
 #include "mbedtls/platform.h"
-#include "mbedtls/error.h"
-#include "mbedtls/ecp.h"
+#include "mbedtls/private/error_common.h"
+#include "mbedtls/private/ecp.h"
 #include "pk_internal.h"

 #include <string.h>

-#if defined(MBEDTLS_USE_PSA_CRYPTO)
 #include "mbedtls/psa_util.h"
 #include "psa/crypto.h"
-#endif
-
-/* Key types */
-#if defined(MBEDTLS_RSA_C)
-#include "mbedtls/rsa.h"
-#include "rsa_internal.h"
-#endif

 /* Extended formats */
 #if defined(MBEDTLS_PEM_PARSE_C)
 #include "mbedtls/pem.h"
 #endif
 #if defined(MBEDTLS_PKCS5_C)
-#include "mbedtls/pkcs5.h"
-#endif
-#if defined(MBEDTLS_PKCS12_C)
-#include "mbedtls/pkcs12.h"
+#include "mbedtls/private/pkcs5.h"
 #endif

-#if defined(MBEDTLS_PK_HAVE_ECC_KEYS)
+#if defined(PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY)

 /***********************************************************************
  *
@@ -427,8 +419,7 @@ static int pk_use_ecparams_rfc8410(const mbedtls_asn1_buf *params,
  * CurvePrivateKey ::= OCTET STRING
  */
 static int pk_parse_key_rfc8410_der(mbedtls_pk_context *pk,
-                                    unsigned char *key, size_t keylen, const unsigned char *end,
-                                    int (*f_rng)(void *, unsigned char *, size_t), void *p_rng)
+                                    unsigned char *key, size_t keylen, const unsigned char *end)
 {
     int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
     size_t len;
@@ -449,10 +440,10 @@ static int pk_parse_key_rfc8410_der(mbedtls_pk_context *pk,
         return ret;
     }

-    /* pk_parse_key_pkcs8_unencrypted_der() only supports version 1 PKCS8 keys,
-     * which never contain a public key. As such, derive the public key
-     * unconditionally. */
-    if ((ret = mbedtls_pk_ecc_set_pubkey_from_prv(pk, key, len, f_rng, p_rng)) != 0) {
+    /* mbedtls_pk_parse_key_pkcs8_unencrypted_der() only supports version 1
+     * PKCS8 keys, which never contain a public key. As such, derive the public
+     * key unconditionally. */
+    if ((ret = mbedtls_pk_ecc_set_pubkey_from_prv(pk, key, len)) != 0) {
         return ret;
     }

@@ -460,7 +451,7 @@ static int pk_parse_key_rfc8410_der(mbedtls_pk_context *pk,
 }
 #endif /* MBEDTLS_PK_HAVE_RFC8410_CURVES */

-#endif /* MBEDTLS_PK_HAVE_ECC_KEYS */
+#endif /* PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY */

 /* Get a PK algorithm identifier
  *
@@ -483,7 +474,7 @@ static int pk_get_pk_alg(unsigned char **p,
     }

     ret = mbedtls_oid_get_pk_alg(&alg_oid, pk_alg);
-#if defined(MBEDTLS_PK_HAVE_ECC_KEYS)
+#if defined(PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY)
     if (ret == MBEDTLS_ERR_OID_NOT_FOUND) {
         ret = mbedtls_oid_get_ec_grp_algid(&alg_oid, ec_grp_id);
         if (ret == 0) {
@@ -552,9 +543,9 @@ int mbedtls_pk_parse_subpubkey(unsigned char **p, const unsigned char *end,
         return ret;
     }

-#if defined(MBEDTLS_RSA_C)
+#if defined(PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY)
     if (pk_alg == MBEDTLS_PK_RSA) {
-        ret = mbedtls_rsa_parse_pubkey(mbedtls_pk_rsa(*pk), *p, (size_t) (end - *p));
+        ret = mbedtls_pk_rsa_set_pubkey(pk, *p, (size_t) (end - *p));
         if (ret == 0) {
             /* On success all the input has been consumed by the parsing function. */
             *p += end - *p;
@@ -566,8 +557,8 @@ int mbedtls_pk_parse_subpubkey(unsigned char **p, const unsigned char *end,
             ret = MBEDTLS_ERR_PK_INVALID_PUBKEY;
         }
     } else
-#endif /* MBEDTLS_RSA_C */
-#if defined(MBEDTLS_PK_HAVE_ECC_KEYS)
+#endif /* PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY */
+#if defined(PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY)
     if (pk_alg == MBEDTLS_PK_ECKEY_DH || pk_alg == MBEDTLS_PK_ECKEY) {
 #if defined(MBEDTLS_PK_HAVE_RFC8410_CURVES)
         if (MBEDTLS_PK_IS_RFC8410_GROUP_ID(ec_grp_id)) {
@@ -582,7 +573,7 @@ int mbedtls_pk_parse_subpubkey(unsigned char **p, const unsigned char *end,
             *p += end - *p;
         }
     } else
-#endif /* MBEDTLS_PK_HAVE_ECC_KEYS */
+#endif /* PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY */
     ret = MBEDTLS_ERR_PK_UNKNOWN_PK_ALG;

     if (ret == 0 && *p != end) {
@@ -597,13 +588,12 @@ int mbedtls_pk_parse_subpubkey(unsigned char **p, const unsigned char *end,
     return ret;
 }

-#if defined(MBEDTLS_PK_HAVE_ECC_KEYS)
+#if defined(PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY)
 /*
  * Parse a SEC1 encoded private EC key
  */
 static int pk_parse_key_sec1_der(mbedtls_pk_context *pk,
-                                 const unsigned char *key, size_t keylen,
-                                 int (*f_rng)(void *, unsigned char *, size_t), void *p_rng)
+                                 const unsigned char *key, size_t keylen)
 {
     int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
     int version, pubkey_done;
@@ -711,14 +701,14 @@ static int pk_parse_key_sec1_der(mbedtls_pk_context *pk,
     }

     if (!pubkey_done) {
-        if ((ret = mbedtls_pk_ecc_set_pubkey_from_prv(pk, d, d_len, f_rng, p_rng)) != 0) {
+        if ((ret = mbedtls_pk_ecc_set_pubkey_from_prv(pk, d, d_len)) != 0) {
             return ret;
         }
     }

     return 0;
 }
-#endif /* MBEDTLS_PK_HAVE_ECC_KEYS */
+#endif /* PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY */

 /***********************************************************************
  *
@@ -739,10 +729,9 @@ static int pk_parse_key_sec1_der(mbedtls_pk_context *pk,
  *   PK context on failure.
  *
  */
-static int pk_parse_key_pkcs8_unencrypted_der(
+MBEDTLS_STATIC_TESTABLE int mbedtls_pk_parse_key_pkcs8_unencrypted_der(
     mbedtls_pk_context *pk,
-    const unsigned char *key, size_t keylen,
-    int (*f_rng)(void *, unsigned char *, size_t), void *p_rng)
+    const unsigned char *key, size_t keylen)
 {
     int ret, version;
     size_t len;
@@ -753,11 +742,6 @@ static int pk_parse_key_pkcs8_unencrypted_der(
     mbedtls_ecp_group_id ec_grp_id = MBEDTLS_ECP_DP_NONE;
     const mbedtls_pk_info_t *pk_info;

-#if !defined(MBEDTLS_PK_HAVE_ECC_KEYS)
-    (void) f_rng;
-    (void) p_rng;
-#endif
-
     /*
      * This function parses the PrivateKeyInfo object (PKCS#8 v1.2 = RFC 5208)
      *
@@ -810,23 +794,22 @@ static int pk_parse_key_pkcs8_unencrypted_der(
         return ret;
     }

-#if defined(MBEDTLS_RSA_C)
+#if defined(PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY)
     if (pk_alg == MBEDTLS_PK_RSA) {
-        if ((ret = mbedtls_rsa_parse_key(mbedtls_pk_rsa(*pk), p, len)) != 0) {
+        if ((ret = mbedtls_pk_rsa_set_key(pk, p, len)) != 0) {
             mbedtls_pk_free(pk);
             return ret;
         }
     } else
-#endif /* MBEDTLS_RSA_C */
-#if defined(MBEDTLS_PK_HAVE_ECC_KEYS)
+#endif /* PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY */
+#if defined(PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY)
     if (pk_alg == MBEDTLS_PK_ECKEY || pk_alg == MBEDTLS_PK_ECKEY_DH) {
 #if defined(MBEDTLS_PK_HAVE_RFC8410_CURVES)
         if (MBEDTLS_PK_IS_RFC8410_GROUP_ID(ec_grp_id)) {
             if ((ret =
                      pk_use_ecparams_rfc8410(&params, ec_grp_id, pk)) != 0 ||
                 (ret =
-                     pk_parse_key_rfc8410_der(pk, p, len, end, f_rng,
-                                              p_rng)) != 0) {
+                     pk_parse_key_rfc8410_der(pk, p, len, end)) != 0) {
                 mbedtls_pk_free(pk);
                 return ret;
             }
@@ -834,13 +817,13 @@ static int pk_parse_key_pkcs8_unencrypted_der(
 #endif
         {
             if ((ret = pk_use_ecparams(&params, pk)) != 0 ||
-                (ret = pk_parse_key_sec1_der(pk, p, len, f_rng, p_rng)) != 0) {
+                (ret = pk_parse_key_sec1_der(pk, p, len)) != 0) {
                 mbedtls_pk_free(pk);
                 return ret;
             }
         }
     } else
-#endif /* MBEDTLS_PK_HAVE_ECC_KEYS */
+#endif /* PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY */
     return MBEDTLS_ERR_PK_UNKNOWN_PK_ALG;

     end = p + len;
@@ -861,22 +844,17 @@ static int pk_parse_key_pkcs8_unencrypted_der(
  * free it after use.
  *
  */
-#if defined(MBEDTLS_PKCS12_C) || defined(MBEDTLS_PKCS5_C)
+#if defined(MBEDTLS_PKCS5_C)
 MBEDTLS_STATIC_TESTABLE int mbedtls_pk_parse_key_pkcs8_encrypted_der(
     mbedtls_pk_context *pk,
     unsigned char *key, size_t keylen,
-    const unsigned char *pwd, size_t pwdlen,
-    int (*f_rng)(void *, unsigned char *, size_t), void *p_rng)
+    const unsigned char *pwd, size_t pwdlen)
 {
     int ret, decrypted = 0;
     size_t len;
     unsigned char *buf;
     unsigned char *p, *end;
     mbedtls_asn1_buf pbe_alg_oid, pbe_params;
-#if defined(MBEDTLS_PKCS12_C) && defined(MBEDTLS_CIPHER_PADDING_PKCS7) && defined(MBEDTLS_CIPHER_C)
-    mbedtls_cipher_type_t cipher_alg;
-    mbedtls_md_type_t md_alg;
-#endif
     size_t outlen = 0;

     p = key;
@@ -918,24 +896,6 @@ MBEDTLS_STATIC_TESTABLE int mbedtls_pk_parse_key_pkcs8_encrypted_der(

     buf = p;

-    /*
-     * Decrypt EncryptedData with appropriate PBE
-     */
-#if defined(MBEDTLS_PKCS12_C) && defined(MBEDTLS_CIPHER_PADDING_PKCS7) && defined(MBEDTLS_CIPHER_C)
-    if (mbedtls_oid_get_pkcs12_pbe_alg(&pbe_alg_oid, &md_alg, &cipher_alg) == 0) {
-        if ((ret = mbedtls_pkcs12_pbe_ext(&pbe_params, MBEDTLS_PKCS12_PBE_DECRYPT,
-                                          cipher_alg, md_alg,
-                                          pwd, pwdlen, p, len, buf, len, &outlen)) != 0) {
-            if (ret == MBEDTLS_ERR_PKCS12_PASSWORD_MISMATCH) {
-                return MBEDTLS_ERR_PK_PASSWORD_MISMATCH;
-            }
-
-            return ret;
-        }
-
-        decrypted = 1;
-    } else
-#endif /* MBEDTLS_PKCS12_C && MBEDTLS_CIPHER_PADDING_PKCS7 && MBEDTLS_CIPHER_C */
 #if defined(MBEDTLS_PKCS5_C) && defined(MBEDTLS_CIPHER_PADDING_PKCS7) && defined(MBEDTLS_CIPHER_C)
     if (MBEDTLS_OID_CMP(MBEDTLS_OID_PKCS5_PBES2, &pbe_alg_oid) == 0) {
         if ((ret = mbedtls_pkcs5_pbes2_ext(&pbe_params, MBEDTLS_PKCS5_DECRYPT, pwd, pwdlen,
@@ -957,9 +917,9 @@ MBEDTLS_STATIC_TESTABLE int mbedtls_pk_parse_key_pkcs8_encrypted_der(
     if (decrypted == 0) {
         return MBEDTLS_ERR_PK_FEATURE_UNAVAILABLE;
     }
-    return pk_parse_key_pkcs8_unencrypted_der(pk, buf, outlen, f_rng, p_rng);
+    return mbedtls_pk_parse_key_pkcs8_unencrypted_der(pk, buf, outlen);
 }
-#endif /* MBEDTLS_PKCS12_C || MBEDTLS_PKCS5_C */
+#endif /* MBEDTLS_PKCS5_C */

 /***********************************************************************
  *
@@ -972,8 +932,7 @@ MBEDTLS_STATIC_TESTABLE int mbedtls_pk_parse_key_pkcs8_encrypted_der(
  */
 int mbedtls_pk_parse_key(mbedtls_pk_context *pk,
                          const unsigned char *key, size_t keylen,
-                         const unsigned char *pwd, size_t pwdlen,
-                         int (*f_rng)(void *, unsigned char *, size_t), void *p_rng)
+                         const unsigned char *pwd, size_t pwdlen)
 {
     int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
     const mbedtls_pk_info_t *pk_info;
@@ -989,7 +948,7 @@ int mbedtls_pk_parse_key(mbedtls_pk_context *pk,
 #if defined(MBEDTLS_PEM_PARSE_C)
     mbedtls_pem_init(&pem);

-#if defined(MBEDTLS_RSA_C)
+#if defined(PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY)
     /* Avoid calling mbedtls_pem_read_buffer() on non-null-terminated string */
     if (key[keylen - 1] != '\0') {
         ret = MBEDTLS_ERR_PEM_NO_HEADER_FOOTER_PRESENT;
@@ -1002,8 +961,7 @@ int mbedtls_pk_parse_key(mbedtls_pk_context *pk,
     if (ret == 0) {
         pk_info = mbedtls_pk_info_from_type(MBEDTLS_PK_RSA);
         if ((ret = mbedtls_pk_setup(pk, pk_info)) != 0 ||
-            (ret = mbedtls_rsa_parse_key(mbedtls_pk_rsa(*pk),
-                                         pem.buf, pem.buflen)) != 0) {
+            (ret = mbedtls_pk_rsa_set_key(pk, pem.buf, pem.buflen)) != 0) {
             mbedtls_pk_free(pk);
         }

@@ -1016,9 +974,9 @@ int mbedtls_pk_parse_key(mbedtls_pk_context *pk,
     } else if (ret != MBEDTLS_ERR_PEM_NO_HEADER_FOOTER_PRESENT) {
         return ret;
     }
-#endif /* MBEDTLS_RSA_C */
+#endif /* PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY */

-#if defined(MBEDTLS_PK_HAVE_ECC_KEYS)
+#if defined(PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY)
     /* Avoid calling mbedtls_pem_read_buffer() on non-null-terminated string */
     if (key[keylen - 1] != '\0') {
         ret = MBEDTLS_ERR_PEM_NO_HEADER_FOOTER_PRESENT;
@@ -1033,8 +991,7 @@ int mbedtls_pk_parse_key(mbedtls_pk_context *pk,

         if ((ret = mbedtls_pk_setup(pk, pk_info)) != 0 ||
             (ret = pk_parse_key_sec1_der(pk,
-                                         pem.buf, pem.buflen,
-                                         f_rng, p_rng)) != 0) {
+                                         pem.buf, pem.buflen)) != 0) {
             mbedtls_pk_free(pk);
         }

@@ -1047,7 +1004,7 @@ int mbedtls_pk_parse_key(mbedtls_pk_context *pk,
     } else if (ret != MBEDTLS_ERR_PEM_NO_HEADER_FOOTER_PRESENT) {
         return ret;
     }
-#endif /* MBEDTLS_PK_HAVE_ECC_KEYS */
+#endif /* PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY */

     /* Avoid calling mbedtls_pem_read_buffer() on non-null-terminated string */
     if (key[keylen - 1] != '\0') {
@@ -1058,8 +1015,9 @@ int mbedtls_pk_parse_key(mbedtls_pk_context *pk,
                                       key, NULL, 0, &len);
     }
     if (ret == 0) {
-        if ((ret = pk_parse_key_pkcs8_unencrypted_der(pk,
-                                                      pem.buf, pem.buflen, f_rng, p_rng)) != 0) {
+        if ((ret = mbedtls_pk_parse_key_pkcs8_unencrypted_der(pk,
+                                                              pem.buf,
+                                                              pem.buflen)) != 0) {
             mbedtls_pk_free(pk);
         }

@@ -1069,7 +1027,7 @@ int mbedtls_pk_parse_key(mbedtls_pk_context *pk,
         return ret;
     }

-#if defined(MBEDTLS_PKCS12_C) || defined(MBEDTLS_PKCS5_C)
+#if defined(MBEDTLS_PKCS5_C)
     /* Avoid calling mbedtls_pem_read_buffer() on non-null-terminated string */
     if (key[keylen - 1] != '\0') {
         ret = MBEDTLS_ERR_PEM_NO_HEADER_FOOTER_PRESENT;
@@ -1081,7 +1039,7 @@ int mbedtls_pk_parse_key(mbedtls_pk_context *pk,
     }
     if (ret == 0) {
         if ((ret = mbedtls_pk_parse_key_pkcs8_encrypted_der(pk, pem.buf, pem.buflen,
-                                                            pwd, pwdlen, f_rng, p_rng)) != 0) {
+                                                            pwd, pwdlen)) != 0) {
             mbedtls_pk_free(pk);
         }

@@ -1090,7 +1048,7 @@ int mbedtls_pk_parse_key(mbedtls_pk_context *pk,
     } else if (ret != MBEDTLS_ERR_PEM_NO_HEADER_FOOTER_PRESENT) {
         return ret;
     }
-#endif /* MBEDTLS_PKCS12_C || MBEDTLS_PKCS5_C */
+#endif /* MBEDTLS_PKCS5_C */
 #else
     ((void) pwd);
     ((void) pwdlen);
@@ -1103,7 +1061,7 @@ int mbedtls_pk_parse_key(mbedtls_pk_context *pk,
      * We try the different DER format parsers to see if one passes without
      * error
      */
-#if defined(MBEDTLS_PKCS12_C) || defined(MBEDTLS_PKCS5_C)
+#if defined(MBEDTLS_PKCS5_C)
     if (pwdlen != 0) {
         unsigned char *key_copy;

@@ -1114,7 +1072,7 @@ int mbedtls_pk_parse_key(mbedtls_pk_context *pk,
         memcpy(key_copy, key, keylen);

         ret = mbedtls_pk_parse_key_pkcs8_encrypted_der(pk, key_copy, keylen,
-                                                       pwd, pwdlen, f_rng, p_rng);
+                                                       pwd, pwdlen);

         mbedtls_zeroize_and_free(key_copy, keylen);
     }
@@ -1129,9 +1087,9 @@ int mbedtls_pk_parse_key(mbedtls_pk_context *pk,
     if (ret == MBEDTLS_ERR_PK_PASSWORD_MISMATCH) {
         return ret;
     }
-#endif /* MBEDTLS_PKCS12_C || MBEDTLS_PKCS5_C */
+#endif /* MBEDTLS_PKCS5_C */

-    ret = pk_parse_key_pkcs8_unencrypted_der(pk, key, keylen, f_rng, p_rng);
+    ret = mbedtls_pk_parse_key_pkcs8_unencrypted_der(pk, key, keylen);
     if (ret == 0) {
         return 0;
     }
@@ -1139,35 +1097,35 @@ int mbedtls_pk_parse_key(mbedtls_pk_context *pk,
     mbedtls_pk_free(pk);
     mbedtls_pk_init(pk);

-#if defined(MBEDTLS_RSA_C)
+#if defined(PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY)

     pk_info = mbedtls_pk_info_from_type(MBEDTLS_PK_RSA);
     if (mbedtls_pk_setup(pk, pk_info) == 0 &&
-        mbedtls_rsa_parse_key(mbedtls_pk_rsa(*pk), key, keylen) == 0) {
+        mbedtls_pk_rsa_set_key(pk, key, keylen) == 0) {
         return 0;
     }

     mbedtls_pk_free(pk);
     mbedtls_pk_init(pk);
-#endif /* MBEDTLS_RSA_C */
+#endif /* PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY */

-#if defined(MBEDTLS_PK_HAVE_ECC_KEYS)
+#if defined(PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY)
     pk_info = mbedtls_pk_info_from_type(MBEDTLS_PK_ECKEY);
     if (mbedtls_pk_setup(pk, pk_info) == 0 &&
         pk_parse_key_sec1_der(pk,
-                              key, keylen, f_rng, p_rng) == 0) {
+                              key, keylen) == 0) {
         return 0;
     }
     mbedtls_pk_free(pk);
-#endif /* MBEDTLS_PK_HAVE_ECC_KEYS */
+#endif /* PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY */

-    /* If MBEDTLS_RSA_C is defined but MBEDTLS_PK_HAVE_ECC_KEYS isn't,
+    /* If PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY is defined but PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY isn't,
      * it is ok to leave the PK context initialized but not
      * freed: It is the caller's responsibility to call pk_init()
      * before calling this function, and to call pk_free()
-     * when it fails. If MBEDTLS_PK_HAVE_ECC_KEYS is defined but MBEDTLS_RSA_C
-     * isn't, this leads to mbedtls_pk_free() being called
-     * twice, once here and once by the caller, but this is
+     * when it fails. If PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY is defined but
+     * PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY isn't, this leads to mbedtls_pk_free()
+     * being called twice, once here and once by the caller, but this is
      * also ok and in line with the mbedtls_pk_free() calls
      * on failed PEM parsing attempts. */

@@ -1182,9 +1140,9 @@ int mbedtls_pk_parse_public_key(mbedtls_pk_context *ctx,
 {
     int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
     unsigned char *p;
-#if defined(MBEDTLS_RSA_C)
+#if defined(PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY)
     const mbedtls_pk_info_t *pk_info;
-#endif
+#endif /* PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY */
 #if defined(MBEDTLS_PEM_PARSE_C)
     size_t len;
     mbedtls_pem_context pem;
@@ -1196,7 +1154,7 @@ int mbedtls_pk_parse_public_key(mbedtls_pk_context *ctx,

 #if defined(MBEDTLS_PEM_PARSE_C)
     mbedtls_pem_init(&pem);
-#if defined(MBEDTLS_RSA_C)
+#if defined(PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY)
     /* Avoid calling mbedtls_pem_read_buffer() on non-null-terminated string */
     if (key[keylen - 1] != '\0') {
         ret = MBEDTLS_ERR_PEM_NO_HEADER_FOOTER_PRESENT;
@@ -1218,7 +1176,7 @@ int mbedtls_pk_parse_public_key(mbedtls_pk_context *ctx,
             return ret;
         }

-        if ((ret = mbedtls_rsa_parse_pubkey(mbedtls_pk_rsa(*ctx), p, pem.buflen)) != 0) {
+        if ((ret = mbedtls_pk_rsa_set_pubkey(ctx, p, pem.buflen)) != 0) {
             mbedtls_pk_free(ctx);
         }

@@ -1228,7 +1186,7 @@ int mbedtls_pk_parse_public_key(mbedtls_pk_context *ctx,
         mbedtls_pem_free(&pem);
         return ret;
     }
-#endif /* MBEDTLS_RSA_C */
+#endif /* PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY */

     /* Avoid calling mbedtls_pem_read_buffer() on non-null-terminated string */
     if (key[keylen - 1] != '\0') {
@@ -1255,7 +1213,7 @@ int mbedtls_pk_parse_public_key(mbedtls_pk_context *ctx,
     mbedtls_pem_free(&pem);
 #endif /* MBEDTLS_PEM_PARSE_C */

-#if defined(MBEDTLS_RSA_C)
+#if defined(PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY)
     if ((pk_info = mbedtls_pk_info_from_type(MBEDTLS_PK_RSA)) == NULL) {
         return MBEDTLS_ERR_PK_UNKNOWN_PK_ALG;
     }
@@ -1265,15 +1223,15 @@ int mbedtls_pk_parse_public_key(mbedtls_pk_context *ctx,
     }

     p = (unsigned char *) key;
-    ret = mbedtls_rsa_parse_pubkey(mbedtls_pk_rsa(*ctx), p, keylen);
+    ret = mbedtls_pk_rsa_set_pubkey(ctx, p, keylen);
     if (ret == 0) {
         return ret;
     }
     mbedtls_pk_free(ctx);
-    if (ret != MBEDTLS_ERR_ASN1_UNEXPECTED_TAG) {
+    if (ret != MBEDTLS_ERR_PK_INVALID_PUBKEY) {
         return ret;
     }
-#endif /* MBEDTLS_RSA_C */
+#endif /* PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY */
     p = (unsigned char *) key;

     ret = mbedtls_pk_parse_subpubkey(&p, p + keylen, ctx);
@@ -1345,8 +1303,7 @@ int mbedtls_pk_load_file(const char *path, unsigned char **buf, size_t *n)
  * Load and parse a private key
  */
 int mbedtls_pk_parse_keyfile(mbedtls_pk_context *ctx,
-                             const char *path, const char *pwd,
-                             int (*f_rng)(void *, unsigned char *, size_t), void *p_rng)
+                             const char *path, const char *pwd)
 {
     int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
     size_t n;
@@ -1357,10 +1314,10 @@ int mbedtls_pk_parse_keyfile(mbedtls_pk_context *ctx,
     }

     if (pwd == NULL) {
-        ret = mbedtls_pk_parse_key(ctx, buf, n, NULL, 0, f_rng, p_rng);
+        ret = mbedtls_pk_parse_key(ctx, buf, n, NULL, 0);
     } else {
         ret = mbedtls_pk_parse_key(ctx, buf, n,
-                                   (const unsigned char *) pwd, strlen(pwd), f_rng, p_rng);
+                                   (const unsigned char *) pwd, strlen(pwd));
     }

     mbedtls_zeroize_and_free(buf, n);
diff --git a/deps/LIEF/third-party/mbedtls/library/pkwrite.c b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/pkwrite.c
similarity index 77%
rename from deps/LIEF/third-party/mbedtls/library/pkwrite.c
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/pkwrite.c
index 2a698448bee..2884b7106b0 100644
--- a/deps/LIEF/third-party/mbedtls/library/pkwrite.c
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/pkwrite.c
@@ -5,145 +5,124 @@
  *  SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
  */

-#include "common.h"
+#include "tf_psa_crypto_common.h"

 #if defined(MBEDTLS_PK_WRITE_C)

 #include "mbedtls/pk.h"
+#if defined(MBEDTLS_PK_HAVE_PRIVATE_HEADER)
+#include <mbedtls/private/pk_private.h>
+#endif /* MBEDTLS_PK_HAVE_PRIVATE_HEADER */
 #include "mbedtls/asn1write.h"
-#include "mbedtls/oid.h"
+#include "crypto_oid.h"
 #include "mbedtls/platform_util.h"
-#include "mbedtls/error.h"
+#include "mbedtls/private/error_common.h"
 #include "pk_internal.h"

 #include <string.h>

 #if defined(MBEDTLS_ECP_C)
-#include "mbedtls/bignum.h"
-#include "mbedtls/ecp.h"
+#include "mbedtls/private/bignum.h"
+#include "mbedtls/private/ecp.h"
 #include "mbedtls/platform_util.h"
 #endif
-#if defined(MBEDTLS_PK_HAVE_ECC_KEYS)
+#if defined(PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY)
 #include "pk_internal.h"
 #endif
-#if defined(MBEDTLS_RSA_C) || defined(MBEDTLS_PK_HAVE_ECC_KEYS)
+#if defined(PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY) || defined(PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY)
 #include "pkwrite.h"
 #endif
 #if defined(MBEDTLS_PEM_WRITE_C)
 #include "mbedtls/pem.h"
 #endif
-#if defined(MBEDTLS_RSA_C)
-#include "rsa_internal.h"
-#endif

-#if defined(MBEDTLS_USE_PSA_CRYPTO)
 #include "psa/crypto.h"
 #include "psa_util_internal.h"
-#endif
 #include "mbedtls/platform.h"

 /* Helpers for properly sizing buffers aimed at holding public keys or
  * key-pairs based on build symbols. */
-#if defined(MBEDTLS_PK_USE_PSA_EC_DATA)
-#define PK_MAX_EC_PUBLIC_KEY_SIZE       PSA_EXPORT_PUBLIC_KEY_MAX_SIZE
-#define PK_MAX_EC_KEY_PAIR_SIZE         MBEDTLS_PSA_MAX_EC_KEY_PAIR_LENGTH
-#elif defined(MBEDTLS_USE_PSA_CRYPTO)
 #define PK_MAX_EC_PUBLIC_KEY_SIZE       PSA_EXPORT_PUBLIC_KEY_MAX_SIZE
 #define PK_MAX_EC_KEY_PAIR_SIZE         MBEDTLS_PSA_MAX_EC_KEY_PAIR_LENGTH
-#else
-#define PK_MAX_EC_PUBLIC_KEY_SIZE       MBEDTLS_ECP_MAX_PT_LEN
-#define PK_MAX_EC_KEY_PAIR_SIZE         MBEDTLS_ECP_MAX_BYTES
-#endif

 /******************************************************************************
  * Internal functions for RSA keys.
  ******************************************************************************/
-#if defined(MBEDTLS_RSA_C)
+#if defined(PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY)
 static int pk_write_rsa_der(unsigned char **p, unsigned char *buf,
                             const mbedtls_pk_context *pk)
 {
-#if defined(MBEDTLS_USE_PSA_CRYPTO)
-    if (mbedtls_pk_get_type(pk) == MBEDTLS_PK_OPAQUE) {
-        uint8_t tmp[PSA_EXPORT_KEY_PAIR_MAX_SIZE];
-        size_t tmp_len = 0;
+    uint8_t tmp[PSA_EXPORT_KEY_PAIR_MAX_SIZE];
+    size_t tmp_len = 0;

-        if (psa_export_key(pk->priv_id, tmp, sizeof(tmp), &tmp_len) != PSA_SUCCESS) {
-            return MBEDTLS_ERR_PK_BAD_INPUT_DATA;
-        }
-        /* Ensure there's enough space in the provided buffer before copying data into it. */
-        if (tmp_len > (size_t) (*p - buf)) {
-            mbedtls_platform_zeroize(tmp, sizeof(tmp));
-            return MBEDTLS_ERR_ASN1_BUF_TOO_SMALL;
-        }
-        *p -= tmp_len;
-        memcpy(*p, tmp, tmp_len);
+    if (psa_export_key(pk->priv_id, tmp, sizeof(tmp), &tmp_len) != PSA_SUCCESS) {
+        return MBEDTLS_ERR_PK_BAD_INPUT_DATA;
+    }
+    /* Ensure there's enough space in the provided buffer before copying data into it. */
+    if (tmp_len > (size_t) (*p - buf)) {
         mbedtls_platform_zeroize(tmp, sizeof(tmp));
-
-        return (int) tmp_len;
+        return MBEDTLS_ERR_ASN1_BUF_TOO_SMALL;
     }
-#endif /* MBEDTLS_USE_PSA_CRYPTO */
-    return mbedtls_rsa_write_key(mbedtls_pk_rsa(*pk), buf, p);
+    *p -= tmp_len;
+    memcpy(*p, tmp, tmp_len);
+    mbedtls_platform_zeroize(tmp, sizeof(tmp));
+
+    return (int) tmp_len;
 }
-#endif /* MBEDTLS_RSA_C */

-/******************************************************************************
- * Internal functions for EC keys.
- ******************************************************************************/
-#if defined(MBEDTLS_PK_HAVE_ECC_KEYS)
-#if defined(MBEDTLS_PK_USE_PSA_EC_DATA)
-static int pk_write_ec_pubkey(unsigned char **p, unsigned char *start,
-                              const mbedtls_pk_context *pk)
+static int pk_write_rsa_pubkey(unsigned char **p, unsigned char *start,
+                               const mbedtls_pk_context *pk)
 {
-    size_t len = 0;
-    uint8_t buf[PK_MAX_EC_PUBLIC_KEY_SIZE];
-
-    if (mbedtls_pk_get_type(pk) == MBEDTLS_PK_OPAQUE) {
-        if (psa_export_public_key(pk->priv_id, buf, sizeof(buf), &len) != PSA_SUCCESS) {
+    unsigned char tmp_key[MBEDTLS_PK_MAX_RSA_PUBKEY_RAW_LEN];
+    const unsigned char *key_ptr;
+    size_t key_len;
+
+    if (pk->pub_raw_len != 0) {
+        /* Valid public key in the PK context. */
+        key_ptr = pk->pub_raw;
+        key_len = pk->pub_raw_len;
+    } else if ((pk->pub_raw_len == 0) && !mbedtls_svc_key_id_is_null(pk->priv_id)) {
+        /* No public key in PK context, but if we have the private one we can
+         * export the public counterpart. */
+        psa_status_t status;
+
+        status = psa_export_public_key(pk->priv_id, tmp_key, sizeof(tmp_key), &key_len);
+        if (status != PSA_SUCCESS) {
             return MBEDTLS_ERR_PK_BAD_INPUT_DATA;
         }
+        key_ptr = tmp_key;
     } else {
-        len = pk->pub_raw_len;
-        memcpy(buf, pk->pub_raw, len);
+        return MBEDTLS_ERR_PK_BAD_INPUT_DATA;
     }

-    if (*p < start || (size_t) (*p - start) < len) {
+    if (key_len > (size_t) (*p - start)) {
         return MBEDTLS_ERR_ASN1_BUF_TOO_SMALL;
     }

-    *p -= len;
-    memcpy(*p, buf, len);
+    *p -= key_len;
+    memcpy(*p, key_ptr, key_len);

-    return (int) len;
+    return (int) key_len;
 }
-#else /* MBEDTLS_PK_USE_PSA_EC_DATA */
+#endif /* PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY */
+
+/******************************************************************************
+ * Internal functions for EC keys.
+ ******************************************************************************/
+#if defined(PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY)
 static int pk_write_ec_pubkey(unsigned char **p, unsigned char *start,
                               const mbedtls_pk_context *pk)
 {
     size_t len = 0;
-    unsigned char buf[PK_MAX_EC_PUBLIC_KEY_SIZE];
-    mbedtls_ecp_keypair *ec = mbedtls_pk_ec(*pk);
-    int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
+    uint8_t buf[PK_MAX_EC_PUBLIC_KEY_SIZE];

-#if defined(MBEDTLS_USE_PSA_CRYPTO)
     if (mbedtls_pk_get_type(pk) == MBEDTLS_PK_OPAQUE) {
         if (psa_export_public_key(pk->priv_id, buf, sizeof(buf), &len) != PSA_SUCCESS) {
             return MBEDTLS_ERR_PK_BAD_INPUT_DATA;
         }
-        /* Ensure there's enough space in the provided buffer before copying data into it. */
-        if (len > (size_t) (*p - start)) {
-            return MBEDTLS_ERR_ASN1_BUF_TOO_SMALL;
-        }
-        *p -= len;
-        memcpy(*p, buf, len);
-        return (int) len;
-    } else
-#endif /* MBEDTLS_USE_PSA_CRYPTO */
-    {
-        if ((ret = mbedtls_ecp_point_write_binary(&ec->grp, &ec->Q,
-                                                  MBEDTLS_ECP_PF_UNCOMPRESSED,
-                                                  &len, buf, sizeof(buf))) != 0) {
-            return ret;
-        }
+    } else {
+        len = pk->pub_raw_len;
+        memcpy(buf, pk->pub_raw, len);
     }

     if (*p < start || (size_t) (*p - start) < len) {
@@ -155,12 +134,10 @@ static int pk_write_ec_pubkey(unsigned char **p, unsigned char *start,

     return (int) len;
 }
-#endif /* MBEDTLS_PK_USE_PSA_EC_DATA */

 /*
  * privateKey  OCTET STRING -- always of length ceil(log2(n)/8)
  */
-#if defined(MBEDTLS_PK_USE_PSA_EC_DATA)
 static int pk_write_ec_private(unsigned char **p, unsigned char *start,
                                const mbedtls_pk_context *pk)
 {
@@ -188,39 +165,6 @@ exit:
     mbedtls_platform_zeroize(tmp, sizeof(tmp));
     return ret;
 }
-#else /* MBEDTLS_PK_USE_PSA_EC_DATA */
-static int pk_write_ec_private(unsigned char **p, unsigned char *start,
-                               const mbedtls_pk_context *pk)
-{
-    size_t byte_length;
-    int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
-    unsigned char tmp[PK_MAX_EC_KEY_PAIR_SIZE];
-
-#if defined(MBEDTLS_USE_PSA_CRYPTO)
-    psa_status_t status;
-    if (mbedtls_pk_get_type(pk) == MBEDTLS_PK_OPAQUE) {
-        status = psa_export_key(pk->priv_id, tmp, sizeof(tmp), &byte_length);
-        if (status != PSA_SUCCESS) {
-            ret = PSA_PK_ECDSA_TO_MBEDTLS_ERR(status);
-            return ret;
-        }
-    } else
-#endif /* MBEDTLS_USE_PSA_CRYPTO */
-    {
-        mbedtls_ecp_keypair *ec = mbedtls_pk_ec_rw(*pk);
-        byte_length = (ec->grp.pbits + 7) / 8;
-
-        ret = mbedtls_ecp_write_key_ext(ec, &byte_length, tmp, sizeof(tmp));
-        if (ret != 0) {
-            goto exit;
-        }
-    }
-    ret = mbedtls_asn1_write_octet_string(p, start, tmp, byte_length);
-exit:
-    mbedtls_platform_zeroize(tmp, sizeof(tmp));
-    return ret;
-}
-#endif /* MBEDTLS_PK_USE_PSA_EC_DATA */

 /*
  * ECParameters ::= CHOICE {
@@ -351,12 +295,11 @@ static int pk_write_ec_der(unsigned char **p, unsigned char *buf,

     return (int) len;
 }
-#endif /* MBEDTLS_PK_HAVE_ECC_KEYS */
+#endif /* PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY */

 /******************************************************************************
  * Internal functions for Opaque keys.
  ******************************************************************************/
-#if defined(MBEDTLS_USE_PSA_CRYPTO)
 static int pk_write_opaque_pubkey(unsigned char **p, unsigned char *start,
                                   const mbedtls_pk_context *pk)
 {
@@ -378,7 +321,6 @@ static int pk_write_opaque_pubkey(unsigned char **p, unsigned char *start,

     return (int) len;
 }
-#endif /* MBEDTLS_USE_PSA_CRYPTO */

 /******************************************************************************
  * Generic helpers
@@ -390,7 +332,6 @@ static mbedtls_pk_type_t pk_get_type_ext(const mbedtls_pk_context *pk)
 {
     mbedtls_pk_type_t pk_type = mbedtls_pk_get_type(pk);

-#if defined(MBEDTLS_USE_PSA_CRYPTO)
     if (pk_type == MBEDTLS_PK_OPAQUE) {
         psa_key_attributes_t opaque_attrs = PSA_KEY_ATTRIBUTES_INIT;
         psa_key_type_t opaque_key_type;
@@ -408,8 +349,8 @@ static mbedtls_pk_type_t pk_get_type_ext(const mbedtls_pk_context *pk)
         } else {
             return MBEDTLS_PK_NONE;
         }
-    } else
-#endif
+    }
+
     return pk_type;
 }

@@ -422,22 +363,21 @@ int mbedtls_pk_write_pubkey(unsigned char **p, unsigned char *start,
     int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
     size_t len = 0;

-#if defined(MBEDTLS_RSA_C)
+#if defined(PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY)
     if (mbedtls_pk_get_type(key) == MBEDTLS_PK_RSA) {
-        MBEDTLS_ASN1_CHK_ADD(len, mbedtls_rsa_write_pubkey(mbedtls_pk_rsa(*key), start, p));
+        MBEDTLS_ASN1_CHK_ADD(len, pk_write_rsa_pubkey(p, start, key));
     } else
 #endif
-#if defined(MBEDTLS_PK_HAVE_ECC_KEYS)
+#if defined(PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY)
     if (mbedtls_pk_get_type(key) == MBEDTLS_PK_ECKEY) {
         MBEDTLS_ASN1_CHK_ADD(len, pk_write_ec_pubkey(p, start, key));
     } else
 #endif
-#if defined(MBEDTLS_USE_PSA_CRYPTO)
     if (mbedtls_pk_get_type(key) == MBEDTLS_PK_OPAQUE) {
         MBEDTLS_ASN1_CHK_ADD(len, pk_write_opaque_pubkey(p, start, key));
-    } else
-#endif /* MBEDTLS_USE_PSA_CRYPTO */
-    return MBEDTLS_ERR_PK_FEATURE_UNAVAILABLE;
+    } else {
+        return MBEDTLS_ERR_PK_FEATURE_UNAVAILABLE;
+    }

     return (int) len;
 }
@@ -476,7 +416,7 @@ int mbedtls_pk_write_pubkey_der(const mbedtls_pk_context *key, unsigned char *bu

     pk_type = pk_get_type_ext(key);

-#if defined(MBEDTLS_PK_HAVE_ECC_KEYS)
+#if defined(PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY)
     if (pk_get_type_ext(key) == MBEDTLS_PK_ECKEY) {
         mbedtls_ecp_group_id ec_grp_id = mbedtls_pk_get_ec_group_id(key);
         if (MBEDTLS_PK_IS_RFC8410_GROUP_ID(ec_grp_id)) {
@@ -489,7 +429,7 @@ int mbedtls_pk_write_pubkey_der(const mbedtls_pk_context *key, unsigned char *bu
             MBEDTLS_ASN1_CHK_ADD(par_len, pk_write_ec_param(&c, buf, ec_grp_id));
         }
     }
-#endif /* MBEDTLS_PK_HAVE_ECC_KEYS */
+#endif /* PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY */

     /* At this point oid_len is not null only for EC Montgomery keys. */
     if (oid_len == 0) {
@@ -519,12 +459,12 @@ int mbedtls_pk_write_key_der(const mbedtls_pk_context *key, unsigned char *buf,

     c = buf + size;

-#if defined(MBEDTLS_RSA_C)
+#if defined(PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY)
     if (pk_get_type_ext(key) == MBEDTLS_PK_RSA) {
         return pk_write_rsa_der(&c, buf, key);
     } else
-#endif /* MBEDTLS_RSA_C */
-#if defined(MBEDTLS_PK_HAVE_ECC_KEYS)
+#endif /* PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY */
+#if defined(PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY)
     if (pk_get_type_ext(key) == MBEDTLS_PK_ECKEY) {
 #if defined(MBEDTLS_PK_HAVE_RFC8410_CURVES)
         if (mbedtls_pk_is_rfc8410(key)) {
@@ -533,7 +473,7 @@ int mbedtls_pk_write_key_der(const mbedtls_pk_context *key, unsigned char *buf,
 #endif /* MBEDTLS_PK_HAVE_RFC8410_CURVES */
         return pk_write_ec_der(&c, buf, key);
     } else
-#endif /* MBEDTLS_PK_HAVE_ECC_KEYS */
+#endif /* PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY */
     return MBEDTLS_ERR_PK_FEATURE_UNAVAILABLE;
 }

@@ -591,13 +531,13 @@ int mbedtls_pk_write_key_pem(const mbedtls_pk_context *key, unsigned char *buf,
         goto cleanup;
     }

-#if defined(MBEDTLS_RSA_C)
+#if defined(PSA_KEY_EXPORT_RSA_KEY_PAIR_MAX_SIZE)
     if (pk_get_type_ext(key) == MBEDTLS_PK_RSA) {
         begin = PEM_BEGIN_PRIVATE_KEY_RSA "\n";
         end = PEM_END_PRIVATE_KEY_RSA "\n";
     } else
-#endif
-#if defined(MBEDTLS_PK_HAVE_ECC_KEYS)
+#endif /* PSA_KEY_EXPORT_RSA_KEY_PAIR_MAX_SIZE */
+#if defined(PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY)
     if (pk_get_type_ext(key) == MBEDTLS_PK_ECKEY) {
         if (mbedtls_pk_is_rfc8410(key)) {
             begin = PEM_BEGIN_PRIVATE_KEY_PKCS8 "\n";
@@ -607,7 +547,7 @@ int mbedtls_pk_write_key_pem(const mbedtls_pk_context *key, unsigned char *buf,
             end = PEM_END_PRIVATE_KEY_EC "\n";
         }
     } else
-#endif /* MBEDTLS_PK_HAVE_ECC_KEYS */
+#endif /* PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY */
     {
         ret = MBEDTLS_ERR_PK_FEATURE_UNAVAILABLE;
         goto cleanup;
diff --git a/deps/LIEF/third-party/mbedtls/library/pkwrite.h b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/pkwrite.h
similarity index 82%
rename from deps/LIEF/third-party/mbedtls/library/pkwrite.h
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/pkwrite.h
index 01dc3d2f0ff..667fd676259 100644
--- a/deps/LIEF/third-party/mbedtls/library/pkwrite.h
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/pkwrite.h
@@ -11,19 +11,21 @@
 #ifndef MBEDTLS_PK_WRITE_H
 #define MBEDTLS_PK_WRITE_H

-#include "mbedtls/build_info.h"
+#include "tf-psa-crypto/build_info.h"

 #include "mbedtls/pk.h"
+#if defined(MBEDTLS_PK_HAVE_PRIVATE_HEADER)
+#include <mbedtls/private/pk_private.h>
+#endif /* MBEDTLS_PK_HAVE_PRIVATE_HEADER */

-#if defined(MBEDTLS_USE_PSA_CRYPTO)
 #include "psa/crypto.h"
-#endif /* MBEDTLS_USE_PSA_CRYPTO */

 /*
  * Max sizes of key per types. Shown as tag + len (+ content).
  */

-#if defined(MBEDTLS_RSA_C)
+#if defined(PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY)
+
 /*
  * RSA public keys:
  *  SubjectPublicKeyInfo  ::=  SEQUENCE  {          1 + 3
@@ -35,8 +37,12 @@
  *      modulus           INTEGER,  -- n            1 + 3 + MPI_MAX + 1
  *      publicExponent    INTEGER   -- e            1 + 3 + MPI_MAX + 1
  *  }
+ *
+ * SubjectPublicKeyInfo => 23 bytes (max)
+ * RSAPublicKey => PSA_KEY_EXPORT_RSA_PUBLIC_KEY_MAX_SIZE(PSA_VENDOR_RSA_MAX_KEY_BITS)
  */
-#define MBEDTLS_PK_RSA_PUB_DER_MAX_BYTES    (38 + 2 * MBEDTLS_MPI_MAX_SIZE)
+#define MBEDTLS_PK_RSA_PUB_DER_MAX_BYTES    \
+    23 + PSA_KEY_EXPORT_RSA_PUBLIC_KEY_MAX_SIZE(PSA_VENDOR_RSA_MAX_KEY_BITS)

 /*
  * RSA private keys:
@@ -53,31 +59,25 @@
  *      otherPrimeInfos   OtherPrimeInfos OPTIONAL  0 (not supported)
  *  }
  */
-#define MBEDTLS_MPI_MAX_SIZE_2  (MBEDTLS_MPI_MAX_SIZE / 2 + \
-                                 MBEDTLS_MPI_MAX_SIZE % 2)
-#define MBEDTLS_PK_RSA_PRV_DER_MAX_BYTES    (47 + 3 * MBEDTLS_MPI_MAX_SIZE \
-                                             + 5 * MBEDTLS_MPI_MAX_SIZE_2)
+#define MBEDTLS_PK_RSA_PRV_DER_MAX_BYTES    \
+    PSA_KEY_EXPORT_RSA_KEY_PAIR_MAX_SIZE(PSA_VENDOR_RSA_MAX_KEY_BITS)

-#else /* MBEDTLS_RSA_C */
+#else /* PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY */

 #define MBEDTLS_PK_RSA_PUB_DER_MAX_BYTES   0
 #define MBEDTLS_PK_RSA_PRV_DER_MAX_BYTES   0

-#endif /* MBEDTLS_RSA_C */
+#endif /* PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY */

-#if defined(MBEDTLS_PK_HAVE_ECC_KEYS)
+#if defined(PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY)

 /* Find the maximum number of bytes necessary to store an EC point. When USE_PSA
  * is defined this means looking for the maximum between PSA and built-in
  * supported curves. */
-#if defined(MBEDTLS_USE_PSA_CRYPTO)
 #define MBEDTLS_PK_MAX_ECC_BYTES   (PSA_BITS_TO_BYTES(PSA_VENDOR_ECC_MAX_CURVE_BITS) > \
                                     MBEDTLS_ECP_MAX_BYTES ? \
                                     PSA_BITS_TO_BYTES(PSA_VENDOR_ECC_MAX_CURVE_BITS) : \
                                     MBEDTLS_ECP_MAX_BYTES)
-#else /* MBEDTLS_USE_PSA_CRYPTO */
-#define MBEDTLS_PK_MAX_ECC_BYTES   MBEDTLS_ECP_MAX_BYTES
-#endif /* MBEDTLS_USE_PSA_CRYPTO */

 /*
  * EC public keys:
@@ -103,12 +103,12 @@
  */
 #define MBEDTLS_PK_ECP_PRV_DER_MAX_BYTES    (29 + 3 * MBEDTLS_PK_MAX_ECC_BYTES)

-#else /* MBEDTLS_PK_HAVE_ECC_KEYS */
+#else /* PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY */

 #define MBEDTLS_PK_ECP_PUB_DER_MAX_BYTES   0
 #define MBEDTLS_PK_ECP_PRV_DER_MAX_BYTES   0

-#endif /* MBEDTLS_PK_HAVE_ECC_KEYS */
+#endif /* PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY */

 /* Define the maximum available public key DER length based on the supported
  * key types (EC and/or RSA). */
diff --git a/deps/LIEF/third-party/mbedtls/library/platform.c b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/platform.c
similarity index 99%
rename from deps/LIEF/third-party/mbedtls/library/platform.c
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/platform.c
index 890c4cbaba7..047a311aebe 100644
--- a/deps/LIEF/third-party/mbedtls/library/platform.c
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/platform.c
@@ -5,13 +5,13 @@
  *  SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
  */

-#include "common.h"
+#include "tf_psa_crypto_common.h"

 #if defined(MBEDTLS_PLATFORM_C)

 #include "mbedtls/platform.h"
 #include "mbedtls/platform_util.h"
-#include "mbedtls/error.h"
+#include "mbedtls/private/error_common.h"

 /* The compile time configuration of memory allocation via the macros
  * MBEDTLS_PLATFORM_{FREE/CALLOC}_MACRO takes precedence over the runtime
diff --git a/deps/LIEF/third-party/mbedtls/library/platform_util.c b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/platform_util.c
similarity index 60%
rename from deps/LIEF/third-party/mbedtls/library/platform_util.c
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/platform_util.c
index 19ef07aead7..ae2fca0eea1 100644
--- a/deps/LIEF/third-party/mbedtls/library/platform_util.c
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/platform_util.c
@@ -20,11 +20,12 @@
 #define _GNU_SOURCE
 #endif

-#include "common.h"
+#include "tf_psa_crypto_common.h"

 #include "mbedtls/platform_util.h"
 #include "mbedtls/platform.h"
 #include "mbedtls/threading.h"
+#include "mbedtls/private/error_common.h"

 #include <stddef.h>

@@ -261,3 +262,197 @@ mbedtls_ms_time_t mbedtls_ms_time(void)
 #error "No mbedtls_ms_time available"
 #endif
 #endif /* MBEDTLS_HAVE_TIME && !MBEDTLS_PLATFORM_MS_TIME_ALT */
+
+#if defined(MBEDTLS_PSA_BUILTIN_GET_ENTROPY)
+
+#if !defined(unix) && !defined(__unix__) && !defined(__unix) && \
+    !defined(__APPLE__) && !defined(_WIN32) && !defined(__QNXNTO__) && \
+    !defined(__HAIKU__) && !defined(__midipix__) && !defined(__MVS__)
+#error \
+    "The built-in entropy sources only work on Unix and Windows. " \
+    "Please enable MBEDTLS_PSA_DRIVER_GET_ENTROPY instead of " \
+    "MBEDTLS_PSA_BUILTIN_GET_ENTROPY and implement " \
+    "mbedtls_platform_get_entropy()."
+#endif
+
+#include "mbedtls/private/entropy.h"
+
+#if defined(_WIN32) && !defined(EFIX64) && !defined(EFI32)
+
+#include <windows.h>
+#include <bcrypt.h>
+#include <intsafe.h>
+
+int mbedtls_platform_get_entropy(psa_driver_get_entropy_flags_t flags,
+                                 size_t *estimate_bits,
+                                 unsigned char *output, size_t output_size)
+{
+    /* We don't implement any flags yet. */
+    if (flags != 0) {
+        return PSA_ERROR_NOT_SUPPORTED;
+    }
+
+    /*
+     * BCryptGenRandom takes ULONG for size, which is smaller than size_t on
+     * 64-bit Windows platforms.
+     */
+    if (output_size > ULONG_MAX) {
+        return MBEDTLS_ERR_ENTROPY_SOURCE_FAILED;
+    }
+
+    if (!BCRYPT_SUCCESS(BCryptGenRandom(NULL, output, (unsigned long) output_size,
+                                        BCRYPT_USE_SYSTEM_PREFERRED_RNG))) {
+        return MBEDTLS_ERR_ENTROPY_SOURCE_FAILED;
+    }
+
+    *estimate_bits = 8 * output_size;
+
+    return 0;
+}
+#else /* _WIN32 && !EFIX64 && !EFI32 */
+
+#if defined(__linux__) || defined(__midipix__)
+/* Ensure that syscall() is available even when compiling with -std=c99 */
+#if !defined(_GNU_SOURCE)
+#define _GNU_SOURCE
+#endif
+#if !defined(__USE_MISC)
+#define __USE_MISC
+#endif
+#endif
+
+/*
+ * Test for Linux getrandom() support.
+ * Since there is no wrapper in the libc yet, use the generic syscall wrapper
+ * available in GNU libc and compatible libc's (eg uClibc).
+ */
+#if ((defined(__linux__) && defined(__GLIBC__)) || defined(__midipix__))
+#include <unistd.h>
+#include <sys/syscall.h>
+#if defined(SYS_getrandom)
+#define HAVE_GETRANDOM
+#include <errno.h>
+
+static int getrandom_wrapper(void *buf, size_t buflen, unsigned int flags)
+{
+    /* MemSan cannot understand that the syscall writes to the buffer */
+#if defined(__has_feature)
+#if __has_feature(memory_sanitizer)
+    memset(buf, 0, buflen);
+#endif
+#endif
+    return (int) syscall(SYS_getrandom, buf, buflen, flags);
+}
+#endif /* SYS_getrandom */
+#endif /* __linux__ || __midipix__ */
+
+#if defined(__FreeBSD__) || defined(__DragonFly__)
+#include <sys/param.h>
+#if (defined(__FreeBSD__) && __FreeBSD_version >= 1200000) || \
+    (defined(__DragonFly__) && __DragonFly_version >= 500700)
+#include <errno.h>
+#include <sys/random.h>
+#define HAVE_GETRANDOM
+static int getrandom_wrapper(void *buf, size_t buflen, unsigned int flags)
+{
+    return (int) getrandom(buf, buflen, flags);
+}
+#endif /* (__FreeBSD__ && __FreeBSD_version >= 1200000) ||
+          (__DragonFly__ && __DragonFly_version >= 500700) */
+#endif /* __FreeBSD__ || __DragonFly__ */
+
+/*
+ * Some BSD systems provide KERN_ARND.
+ * This is equivalent to reading from /dev/urandom, only it doesn't require an
+ * open file descriptor, and provides up to 256 bytes per call (basically the
+ * same as getentropy(), but with a longer history).
+ *
+ * Documentation: https://netbsd.gw.com/cgi-bin/man-cgi?sysctl+7
+ */
+#if (defined(__FreeBSD__) || defined(__NetBSD__)) && !defined(HAVE_GETRANDOM)
+#include <sys/param.h>
+#include <sys/sysctl.h>
+#if defined(KERN_ARND)
+#define HAVE_SYSCTL_ARND
+
+static int sysctl_arnd_wrapper(unsigned char *buf, size_t buflen)
+{
+    int name[2];
+    size_t len;
+
+    name[0] = CTL_KERN;
+    name[1] = KERN_ARND;
+
+    while (buflen > 0) {
+        len = buflen > 256 ? 256 : buflen;
+        if (sysctl(name, 2, buf, &len, NULL, 0) == -1) {
+            return -1;
+        }
+        buflen -= len;
+        buf += len;
+    }
+    return 0;
+}
+#endif /* KERN_ARND */
+#endif /* __FreeBSD__ || __NetBSD__ */
+
+#include <stdio.h>
+
+int mbedtls_platform_get_entropy(psa_driver_get_entropy_flags_t flags,
+                                 size_t *estimate_bits,
+                                 unsigned char *output, size_t output_size)
+{
+    FILE *file;
+    size_t read_len;
+    int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
+
+    /* We don't implement any flags yet. */
+    if (flags != 0) {
+        return PSA_ERROR_NOT_SUPPORTED;
+    }
+
+#if defined(HAVE_GETRANDOM)
+    ret = getrandom_wrapper(output, output_size, 0);
+    if (ret >= 0) {
+        *estimate_bits = 8 * (size_t) ret;
+        return 0;
+    } else if (errno != ENOSYS) {
+        return MBEDTLS_ERR_ENTROPY_SOURCE_FAILED;
+    }
+    /* Fall through if the system call isn't known. */
+#else
+    ((void) ret);
+#endif /* HAVE_GETRANDOM */
+
+#if defined(HAVE_SYSCTL_ARND)
+    ((void) file);
+    ((void) read_len);
+    if (sysctl_arnd_wrapper(output, output_size) == -1) {
+        return MBEDTLS_ERR_ENTROPY_SOURCE_FAILED;
+    }
+    *estimate_bits = 8 * output_size;
+    return 0;
+#else
+
+    file = fopen("/dev/urandom", "rb");
+    if (file == NULL) {
+        return MBEDTLS_ERR_ENTROPY_SOURCE_FAILED;
+    }
+
+    /* Ensure no stdio buffering of secrets, as such buffers cannot be wiped. */
+    mbedtls_setbuf(file, NULL);
+
+    read_len = fread(output, 1, output_size, file);
+    if (read_len != output_size) {
+        fclose(file);
+        return MBEDTLS_ERR_ENTROPY_SOURCE_FAILED;
+    }
+
+    fclose(file);
+    *estimate_bits = 8 * output_size;
+
+    return 0;
+#endif /* HAVE_SYSCTL_ARND */
+}
+#endif /* _WIN32 && !EFIX64 && !EFI32 */
+#endif /* MBEDTLS_PSA_BUILTIN_GET_ENTROPY */
diff --git a/deps/LIEF/third-party/mbedtls/library/poly1305.c b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/poly1305.c
similarity index 98%
rename from deps/LIEF/third-party/mbedtls/library/poly1305.c
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/poly1305.c
index c9ebe9e1daa..ba5299844d8 100644
--- a/deps/LIEF/third-party/mbedtls/library/poly1305.c
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/poly1305.c
@@ -6,20 +6,18 @@
  *  Copyright The Mbed TLS Contributors
  *  SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
  */
-#include "common.h"
+#include "tf_psa_crypto_common.h"

 #if defined(MBEDTLS_POLY1305_C)

-#include "mbedtls/poly1305.h"
+#include "mbedtls/private/poly1305.h"
 #include "mbedtls/platform_util.h"
-#include "mbedtls/error.h"
+#include "mbedtls/private/error_common.h"

 #include <string.h>

 #include "mbedtls/platform.h"

-#if !defined(MBEDTLS_POLY1305_ALT)
-
 #define POLY1305_BLOCK_SIZE_BYTES (16U)

 /*
@@ -373,8 +371,6 @@ cleanup:
     return ret;
 }

-#endif /* MBEDTLS_POLY1305_ALT */
-
 #if defined(MBEDTLS_SELF_TEST)

 static const unsigned char test_keys[2][32] =
diff --git a/deps/LIEF/third-party/mbedtls/library/psa_crypto_aead.c b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/psa_crypto_aead.c
similarity index 98%
rename from deps/LIEF/third-party/mbedtls/library/psa_crypto_aead.c
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/psa_crypto_aead.c
index a201985b4f0..9842f840cbf 100644
--- a/deps/LIEF/third-party/mbedtls/library/psa_crypto_aead.c
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/psa_crypto_aead.c
@@ -6,7 +6,7 @@
  *  SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
  */

-#include "common.h"
+#include "tf_psa_crypto_common.h"

 #if defined(MBEDTLS_PSA_CRYPTO_C)

@@ -17,11 +17,11 @@
 #include <string.h>
 #include "mbedtls/platform.h"

-#include "mbedtls/ccm.h"
-#include "mbedtls/chachapoly.h"
-#include "mbedtls/cipher.h"
-#include "mbedtls/gcm.h"
-#include "mbedtls/error.h"
+#include "mbedtls/private/ccm.h"
+#include "mbedtls/private/chachapoly.h"
+#include "mbedtls/private/cipher.h"
+#include "mbedtls/private/gcm.h"
+#include "mbedtls/private/error_common.h"

 static psa_status_t psa_aead_setup(
     mbedtls_psa_aead_operation_t *operation,
@@ -33,11 +33,10 @@ static psa_status_t psa_aead_setup(
     psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED;
     mbedtls_cipher_id_t cipher_id;
     mbedtls_cipher_mode_t mode;
-    size_t key_bits = attributes->bits;
     (void) key_buffer_size;

     status = mbedtls_cipher_values_from_psa(alg, attributes->type,
-                                            &key_bits, &mode, &cipher_id);
+                                            &mode, &cipher_id);
     if (status != PSA_SUCCESS) {
         return status;
     }
@@ -56,7 +55,7 @@ static psa_status_t psa_aead_setup(
             mbedtls_ccm_init(&operation->ctx.ccm);
             status = mbedtls_to_psa_error(
                 mbedtls_ccm_setkey(&operation->ctx.ccm, cipher_id,
-                                   key_buffer, (unsigned int) key_bits));
+                                   key_buffer, (unsigned int) attributes->bits));
             if (status != PSA_SUCCESS) {
                 return status;
             }
@@ -76,7 +75,7 @@ static psa_status_t psa_aead_setup(
             mbedtls_gcm_init(&operation->ctx.gcm);
             status = mbedtls_to_psa_error(
                 mbedtls_gcm_setkey(&operation->ctx.gcm, cipher_id,
-                                   key_buffer, (unsigned int) key_bits));
+                                   key_buffer, (unsigned int) attributes->bits));
             if (status != PSA_SUCCESS) {
                 return status;
             }
diff --git a/deps/LIEF/third-party/mbedtls/library/psa_crypto_aead.h b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/psa_crypto_aead.h
similarity index 100%
rename from deps/LIEF/third-party/mbedtls/library/psa_crypto_aead.h
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/psa_crypto_aead.h
diff --git a/deps/LIEF/third-party/mbedtls/library/psa_crypto_cipher.c b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/psa_crypto_cipher.c
similarity index 89%
rename from deps/LIEF/third-party/mbedtls/library/psa_crypto_cipher.c
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/psa_crypto_cipher.c
index efc5813ff08..b3e1ee614d5 100644
--- a/deps/LIEF/third-party/mbedtls/library/psa_crypto_cipher.c
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/psa_crypto_cipher.c
@@ -6,16 +6,17 @@
  *  SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
  */

-#include "common.h"
+#include "tf_psa_crypto_common.h"

 #if defined(MBEDTLS_PSA_CRYPTO_C)

 #include "psa_crypto_cipher.h"
 #include "psa_crypto_core.h"
 #include "psa_crypto_random_impl.h"
+#include "constant_time_internal.h"

-#include "mbedtls/cipher.h"
-#include "mbedtls/error.h"
+#include "mbedtls/private/cipher.h"
+#include "mbedtls/private/error_common.h"

 #include <string.h>

@@ -44,9 +45,6 @@ static psa_status_t mbedtls_cipher_validate_values(
 #if !defined(PSA_WANT_KEY_TYPE_CHACHA20)
     MBEDTLS_ASSUME(key_type != PSA_KEY_TYPE_CHACHA20);
 #endif
-#if !defined(PSA_WANT_KEY_TYPE_DES)
-    MBEDTLS_ASSUME(key_type != PSA_KEY_TYPE_DES);
-#endif
 #if !defined(PSA_WANT_ALG_CCM)
     MBEDTLS_ASSUME(alg != PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM, 0));
 #endif
@@ -111,7 +109,6 @@ static psa_status_t mbedtls_cipher_validate_values(
         alg == PSA_ALG_CMAC) {
         if (key_type == PSA_KEY_TYPE_AES ||
             key_type == PSA_KEY_TYPE_ARIA ||
-            key_type == PSA_KEY_TYPE_DES ||
             key_type == PSA_KEY_TYPE_CAMELLIA) {
             return PSA_SUCCESS;
         }
@@ -123,16 +120,10 @@ static psa_status_t mbedtls_cipher_validate_values(
 psa_status_t mbedtls_cipher_values_from_psa(
     psa_algorithm_t alg,
     psa_key_type_t key_type,
-    size_t *key_bits,
     mbedtls_cipher_mode_t *mode,
     mbedtls_cipher_id_t *cipher_id)
 {
     mbedtls_cipher_id_t cipher_id_tmp;
-    /* Only DES modifies key_bits */
-#if !defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_DES)
-    (void) key_bits;
-#endif
-
     if (PSA_ALG_IS_AEAD(alg)) {
         alg = PSA_ALG_AEAD_WITH_SHORTENED_TAG(alg, 0);
     }
@@ -214,23 +205,6 @@ psa_status_t mbedtls_cipher_values_from_psa(
             cipher_id_tmp = MBEDTLS_CIPHER_ID_ARIA;
             break;
 #endif
-#if defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_DES)
-        case PSA_KEY_TYPE_DES:
-            /* key_bits is 64 for Single-DES, 128 for two-key Triple-DES,
-             * and 192 for three-key Triple-DES. */
-            if (*key_bits == 64) {
-                cipher_id_tmp = MBEDTLS_CIPHER_ID_DES;
-            } else {
-                cipher_id_tmp = MBEDTLS_CIPHER_ID_3DES;
-            }
-            /* mbedtls doesn't recognize two-key Triple-DES as an algorithm,
-             * but two-key Triple-DES is functionally three-key Triple-DES
-             * with K1=K3, so that's how we present it to mbedtls. */
-            if (*key_bits == 128) {
-                *key_bits = 192;
-            }
-            break;
-#endif
 #if defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_CAMELLIA)
         case PSA_KEY_TYPE_CAMELLIA:
             cipher_id_tmp = MBEDTLS_CIPHER_ID_CAMELLIA;
@@ -262,7 +236,7 @@ const mbedtls_cipher_info_t *mbedtls_cipher_info_from_psa(
     psa_status_t status;
     mbedtls_cipher_id_t cipher_id_tmp = MBEDTLS_CIPHER_ID_NONE;

-    status = mbedtls_cipher_values_from_psa(alg, key_type, &key_bits, &mode, &cipher_id_tmp);
+    status = mbedtls_cipher_values_from_psa(alg, key_type, &mode, &cipher_id_tmp);
     if (status != PSA_SUCCESS) {
         return NULL;
     }
@@ -305,17 +279,6 @@ static psa_status_t psa_cipher_setup(
         goto exit;
     }

-#if defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_DES)
-    if (key_type == PSA_KEY_TYPE_DES && key_bits == 128) {
-        /* Two-key Triple-DES is 3-key Triple-DES with K1=K3 */
-        uint8_t keys[24];
-        memcpy(keys, key_buffer, 16);
-        memcpy(keys + 16, key_buffer, 8);
-        ret = mbedtls_cipher_setkey(&operation->ctx.cipher,
-                                    keys,
-                                    192, cipher_operation);
-    } else
-#endif
     {
         ret = mbedtls_cipher_setkey(&operation->ctx.cipher, key_buffer,
                                     (int) key_bits, cipher_operation);
@@ -551,7 +514,19 @@ psa_status_t mbedtls_psa_cipher_finish(
     uint8_t *output, size_t output_size, size_t *output_length)
 {
     psa_status_t status = PSA_ERROR_GENERIC_ERROR;
-    uint8_t temp_output_buffer[MBEDTLS_MAX_BLOCK_LENGTH];
+    size_t invalid_padding = 0;
+
+    /* We will copy output_size bytes from temp_output_buffer to the
+     * output buffer. We can't use *output_length to determine how
+     * much to copy because we must not leak that value through timing
+     * when doing decryption with unpadding. But the underlying function
+     * is not guaranteed to write beyond *output_length. To ensure we don't
+     * leak the former content of the stack to the caller, wipe that
+     * former content. */
+    uint8_t temp_output_buffer[MBEDTLS_MAX_BLOCK_LENGTH] = { 0 };
+    if (output_size > sizeof(temp_output_buffer)) {
+        output_size = sizeof(temp_output_buffer);
+    }

     if (operation->ctx.cipher.unprocessed_len != 0) {
         if (operation->alg == PSA_ALG_ECB_NO_PADDING ||
@@ -562,25 +537,34 @@ psa_status_t mbedtls_psa_cipher_finish(
     }

     status = mbedtls_to_psa_error(
-        mbedtls_cipher_finish(&operation->ctx.cipher,
-                              temp_output_buffer,
-                              output_length));
+        mbedtls_cipher_finish_padded(&operation->ctx.cipher,
+                                     temp_output_buffer,
+                                     output_length,
+                                     &invalid_padding));
     if (status != PSA_SUCCESS) {
         goto exit;
     }

-    if (*output_length == 0) {
+    if (output_size == 0) {
         ; /* Nothing to copy. Note that output may be NULL in this case. */
-    } else if (output_size >= *output_length) {
-        memcpy(output, temp_output_buffer, *output_length);
     } else {
-        status = PSA_ERROR_BUFFER_TOO_SMALL;
+        /* Do not use the value of *output_length to determine how much
+         * to copy. When decrypting a padded cipher, the output length is
+         * sensitive, and leaking it could allow a padding oracle attack. */
+        memcpy(output, temp_output_buffer, output_size);
     }

+    status = mbedtls_ct_error_if_else_0(invalid_padding,
+                                        PSA_ERROR_INVALID_PADDING);
+    mbedtls_ct_condition_t buffer_too_small =
+        mbedtls_ct_uint_lt(output_size, *output_length);
+    status = mbedtls_ct_error_if(buffer_too_small,
+                                 PSA_ERROR_BUFFER_TOO_SMALL,
+                                 status);
+
 exit:
     mbedtls_platform_zeroize(temp_output_buffer,
                              sizeof(temp_output_buffer));
-
     return status;
 }

@@ -701,17 +685,21 @@ psa_status_t mbedtls_psa_cipher_decrypt(
         &operation,
         mbedtls_buffer_offset(output, accumulated_length),
         output_size - accumulated_length, &olength);
-    if (status != PSA_SUCCESS) {
-        goto exit;
-    }

     *output_length = accumulated_length + olength;

 exit:
-    if (status == PSA_SUCCESS) {
-        status = mbedtls_psa_cipher_abort(&operation);
-    } else {
-        mbedtls_psa_cipher_abort(&operation);
+    /* C99 doesn't allow a declaration to follow a label */;
+    psa_status_t abort_status = mbedtls_psa_cipher_abort(&operation);
+    /* Normally abort shouldn't fail unless the operation is in a bad
+     * state, in which case we'd expect finish to fail with the same error.
+     * So it doesn't matter much which call's error code we pick when both
+     * fail. However, in unauthenticated decryption specifically, the
+     * distinction between PSA_SUCCESS and PSA_ERROR_INVALID_PADDING is
+     * security-sensitive (risk of a padding oracle attack), so here we
+     * must not have a code path that depends on the value of status. */
+    if (abort_status != PSA_SUCCESS) {
+        status = abort_status;
     }

     return status;
diff --git a/deps/LIEF/third-party/mbedtls/library/psa_crypto_cipher.h b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/psa_crypto_cipher.h
similarity index 98%
rename from deps/LIEF/third-party/mbedtls/library/psa_crypto_cipher.h
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/psa_crypto_cipher.h
index cc565851cc8..b565137c9b4 100644
--- a/deps/LIEF/third-party/mbedtls/library/psa_crypto_cipher.h
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/psa_crypto_cipher.h
@@ -9,7 +9,7 @@
 #ifndef PSA_CRYPTO_CIPHER_H
 #define PSA_CRYPTO_CIPHER_H

-#include <mbedtls/cipher.h>
+#include <mbedtls/private/cipher.h>
 #include <psa/crypto.h>

 /** Get Mbed TLS cipher information given the cipher algorithm PSA identifier
@@ -18,8 +18,6 @@
  *
  * \param[in]      alg          PSA cipher algorithm identifier
  * \param[in]      key_type     PSA key type
- * \param[in,out]  key_bits     Size of the key in bits. The value provided in input
- *                              might be updated if necessary.
  * \param[out]     mode         Mbed TLS cipher mode
  * \param[out]     cipher_id    Mbed TLS cipher algorithm identifier
  *
@@ -30,7 +28,7 @@
  */

 psa_status_t mbedtls_cipher_values_from_psa(psa_algorithm_t alg, psa_key_type_t key_type,
-                                            size_t *key_bits, mbedtls_cipher_mode_t *mode,
+                                            mbedtls_cipher_mode_t *mode,
                                             mbedtls_cipher_id_t *cipher_id);

 #if defined(MBEDTLS_CIPHER_C)
diff --git a/deps/LIEF/third-party/mbedtls/library/psa_crypto_ecp.c b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/psa_crypto_ecp.c
similarity index 68%
rename from deps/LIEF/third-party/mbedtls/library/psa_crypto_ecp.c
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/psa_crypto_ecp.c
index 48b90ef57d4..76569ca1b68 100644
--- a/deps/LIEF/third-party/mbedtls/library/psa_crypto_ecp.c
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/psa_crypto_ecp.c
@@ -6,7 +6,7 @@
  *  SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
  */

-#include "common.h"
+#include "tf_psa_crypto_common.h"

 #if defined(MBEDTLS_PSA_CRYPTO_C)

@@ -14,16 +14,16 @@
 #include "psa_crypto_core.h"
 #include "psa_crypto_ecp.h"
 #include "psa_crypto_random_impl.h"
-#include "mbedtls/psa_util.h"
+#include "psa_util_internal.h"

 #include <stdlib.h>
 #include <string.h>
 #include "mbedtls/platform.h"

-#include <mbedtls/ecdsa.h>
-#include <mbedtls/ecdh.h>
-#include <mbedtls/ecp.h>
-#include <mbedtls/error.h>
+#include <mbedtls/private/ecdsa.h>
+#include <mbedtls/private/ecdh.h>
+#include <mbedtls/private/ecp.h>
+#include <mbedtls/private/error_common.h>

 #if defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_ECC_KEY_PAIR_BASIC) || \
     defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_ECC_KEY_PAIR_IMPORT) || \
@@ -77,7 +77,6 @@ static int check_ecc_parameters(psa_ecc_family_t family, size_t *bits)
         case PSA_ECC_FAMILY_SECP_K1:
             switch (*bits) {
                 case 192:
-                /* secp224k1 is not and will not be supported in PSA (#3541). */
                 case 256:
                     return PSA_SUCCESS;
             }
@@ -590,5 +589,275 @@ exit:
 }
 #endif /* MBEDTLS_PSA_BUILTIN_ALG_ECDH */

+/****************************************************************/
+/* Interruptible ECC Key Generation */
+/****************************************************************/
+
+#if defined(MBEDTLS_ECP_RESTARTABLE) && \
+    defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_ECC_KEY_PAIR_GENERATE)
+
+uint32_t mbedtls_psa_generate_key_iop_get_num_ops(
+    mbedtls_psa_generate_key_iop_t *operation)
+{
+    return operation->num_ops;
+}
+
+psa_status_t mbedtls_psa_ecp_generate_key_iop_setup(
+    mbedtls_psa_generate_key_iop_t *operation,
+    const psa_key_attributes_t *attributes)
+{
+    int status = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
+
+    mbedtls_ecp_keypair_init(&operation->ecp);
+
+    psa_ecc_family_t curve = PSA_KEY_TYPE_ECC_GET_FAMILY(
+        psa_get_key_type(attributes));
+    mbedtls_ecp_group_id grp_id =
+        mbedtls_ecc_group_from_psa(curve, psa_get_key_bits(attributes));
+    if (grp_id == MBEDTLS_ECP_DP_NONE) {
+        return PSA_ERROR_NOT_SUPPORTED;
+    }
+
+    status = mbedtls_ecp_group_load(&operation->ecp.grp, grp_id);
+
+    return mbedtls_to_psa_error(status);
+}
+
+psa_status_t mbedtls_psa_ecp_generate_key_iop_complete(
+    mbedtls_psa_generate_key_iop_t *operation,
+    uint8_t *key_output,
+    size_t key_output_size,
+    size_t *key_len)
+{
+    *key_len = 0;
+    int status = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
+
+    *key_len = PSA_BITS_TO_BYTES(operation->ecp.grp.nbits);
+
+    if (*key_len > key_output_size) {
+        return PSA_ERROR_BUFFER_TOO_SMALL;
+    }
+
+    status = mbedtls_ecp_gen_privkey(&operation->ecp.grp, &operation->ecp.d,
+                                     mbedtls_psa_get_random, MBEDTLS_PSA_RANDOM_STATE);
+
+    if (status != 0) {
+        return mbedtls_to_psa_error(status);
+    }
+
+    /* Our implementation of key generation only generates the private key
+       which doesn't invlolve any ECC arithmetic operations so number of ops
+       is less than 1 but we round up to 1 to differentiate between num ops of
+       0 which means no work has been done this facilitates testing. */
+    operation->num_ops = 1;
+
+    status = mbedtls_mpi_write_binary(&operation->ecp.d, key_output, key_output_size);
+
+    return mbedtls_to_psa_error(status);
+}
+
+psa_status_t mbedtls_psa_ecp_generate_key_iop_abort(
+    mbedtls_psa_generate_key_iop_t *operation)
+{
+    mbedtls_ecp_keypair_free(&operation->ecp);
+    operation->num_ops = 0;
+    return PSA_SUCCESS;
+}
+
+#endif /* MBEDTLS_ECP_RESTARTABLE && MBEDTLS_PSA_BUILTIN_KEY_TYPE_ECC_KEY_PAIR_GENERATE */
+
+#if defined(MBEDTLS_ECP_RESTARTABLE) && \
+    (defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_ECC_KEY_PAIR_IMPORT) || \
+    defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_ECC_KEY_PAIR_EXPORT) || \
+    defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_ECC_PUBLIC_KEY))
+
+uint32_t mbedtls_psa_ecp_export_public_key_iop_get_num_ops(
+    mbedtls_psa_export_public_key_iop_t *operation)
+{
+    return operation->num_ops;
+}
+
+psa_status_t mbedtls_psa_ecp_export_public_key_iop_setup(
+    mbedtls_psa_export_public_key_iop_t *operation,
+    uint8_t *key,
+    size_t key_len,
+    const psa_key_attributes_t *key_attributes)
+{
+    psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED;
+
+    status = mbedtls_psa_ecp_load_representation(
+        psa_get_key_type(key_attributes),
+        psa_get_key_bits(key_attributes),
+        key,
+        key_len,
+        &operation->key);
+    if (status != PSA_SUCCESS) {
+        goto exit;
+    }
+
+    mbedtls_ecp_restart_init(&operation->restart_ctx);
+    operation->num_ops = 0;
+
+exit:
+    return status;
+}
+
+psa_status_t mbedtls_psa_ecp_export_public_key_iop_complete(
+    mbedtls_psa_export_public_key_iop_t *operation,
+    uint8_t *pub_key,
+    size_t pub_key_size,
+    size_t *pub_key_len)
+{
+    int ret = 0;
+
+    if (mbedtls_ecp_is_zero(&operation->key->Q)) {
+        mbedtls_psa_interruptible_set_max_ops(psa_interruptible_get_max_ops());
+
+        ret = mbedtls_ecp_mul_restartable(&operation->key->grp, &operation->key->Q,
+                                          &operation->key->d, &operation->key->grp.G,
+                                          mbedtls_psa_get_random, MBEDTLS_PSA_RANDOM_STATE,
+                                          &operation->restart_ctx);
+        operation->num_ops += operation->restart_ctx.ops_done;
+    }
+
+    if (ret == 0) {
+        ret = mbedtls_ecp_write_public_key(operation->key,
+                                           MBEDTLS_ECP_PF_UNCOMPRESSED, pub_key_len,
+                                           pub_key, pub_key_size);
+    }
+
+    return mbedtls_to_psa_error(ret);
+}
+
+psa_status_t mbedtls_psa_ecp_export_public_key_iop_abort(
+    mbedtls_psa_export_public_key_iop_t *operation)
+{
+    mbedtls_ecp_keypair_free(operation->key);
+    mbedtls_free(operation->key);
+    mbedtls_ecp_restart_free(&operation->restart_ctx);
+    operation->num_ops = 0;
+    return PSA_SUCCESS;
+}
+
+#endif /* MBEDTLS_ECP_RESTARTABLE && \
+          (MBEDTLS_PSA_BUILTIN_KEY_TYPE_ECC_KEY_PAIR_IMPORT ||
+           MBEDTLS_PSA_BUILTIN_KEY_TYPE_ECC_KEY_PAIR_EXPORT || \
+           MBEDTLS_PSA_BUILTIN_KEY_TYPE_ECC_PUBLIC_KEY) */
+
+/****************************************************************/
+/* Interruptible ECC Key Agreement */
+/****************************************************************/
+
+#if defined(MBEDTLS_PSA_BUILTIN_ALG_ECDH) && defined(MBEDTLS_ECP_RESTARTABLE)
+
+uint32_t mbedtls_psa_key_agreement_iop_get_num_ops(
+    mbedtls_psa_key_agreement_interruptible_operation_t *operation)
+{
+    return operation->num_ops;
+}
+
+psa_status_t mbedtls_psa_key_agreement_iop_setup(
+    mbedtls_psa_key_agreement_interruptible_operation_t *operation,
+    const psa_key_attributes_t *private_key_attributes,
+    const uint8_t *private_key_buffer,
+    size_t private_key_buffer_len,
+    const uint8_t *peer_key,
+    size_t peer_key_length)
+{
+    psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED;
+    mbedtls_ecp_keypair *our_key = NULL;
+    mbedtls_ecp_keypair *their_key = NULL;
+
+    mbedtls_ecdh_init(&operation->ctx);
+    mbedtls_ecdh_enable_restart(&operation->ctx);
+
+    /* We need to clear number of ops here in case there was a previous
+       complete operation which doesn't reset it after finsishing. */
+    operation->num_ops = 0;
+
+    psa_key_type_t private_key_type = psa_get_key_type(private_key_attributes);
+    if (!PSA_KEY_TYPE_IS_ECC_KEY_PAIR(private_key_type)) {
+        status = PSA_ERROR_INVALID_ARGUMENT;
+        goto exit;
+    }
+
+    status = mbedtls_psa_ecp_load_representation(
+        psa_get_key_type(private_key_attributes),
+        psa_get_key_bits(private_key_attributes),
+        private_key_buffer,
+        private_key_buffer_len,
+        &our_key);
+    if (status != PSA_SUCCESS) {
+        goto exit;
+    }
+
+    status = mbedtls_to_psa_error(
+        mbedtls_ecdh_get_params(&operation->ctx, our_key, MBEDTLS_ECDH_OURS));
+    if (status != PSA_SUCCESS) {
+        goto exit;
+    }
+
+    mbedtls_ecp_keypair_free(our_key);
+    mbedtls_free(our_key);
+    our_key = NULL;
+
+    status = mbedtls_psa_ecp_load_representation(
+        PSA_KEY_TYPE_PUBLIC_KEY_OF_KEY_PAIR(private_key_type),
+        psa_get_key_bits(private_key_attributes),
+        peer_key,
+        peer_key_length,
+        &their_key);
+    if (status != PSA_SUCCESS) {
+        goto exit;
+    }
+
+    /* mbedtls_psa_ecp_load_representation() calls mbedtls_ecp_check_pubkey() which
+       takes MBEDTLS_ECP_OPS_CHK amount of ops. */
+    operation->num_ops += MBEDTLS_ECP_OPS_CHK;
+
+    status = mbedtls_to_psa_error(
+        mbedtls_ecdh_get_params(&operation->ctx, their_key, MBEDTLS_ECDH_THEIRS));
+    if (status != PSA_SUCCESS) {
+        goto exit;
+    }
+
+exit:
+    mbedtls_ecp_keypair_free(our_key);
+    mbedtls_free(our_key);
+    mbedtls_ecp_keypair_free(their_key);
+    mbedtls_free(their_key);
+    return status;
+}
+
+psa_status_t mbedtls_psa_key_agreement_iop_complete(
+    mbedtls_psa_key_agreement_interruptible_operation_t *operation,
+    uint8_t *shared_secret,
+    size_t shared_secret_size,
+    size_t *shared_secret_length)
+{
+    psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED;
+
+    mbedtls_psa_interruptible_set_max_ops(psa_interruptible_get_max_ops());
+
+    status = mbedtls_to_psa_error(mbedtls_ecdh_calc_secret(&operation->ctx, shared_secret_length,
+                                                           shared_secret,
+                                                           shared_secret_size,
+                                                           mbedtls_psa_get_random,
+                                                           MBEDTLS_PSA_RANDOM_STATE));
+
+    operation->num_ops += operation->ctx.rs.ops_done;
+
+    return status;
+}
+
+psa_status_t mbedtls_psa_key_agreement_iop_abort(
+    mbedtls_psa_key_agreement_interruptible_operation_t *operation)
+{
+    operation->num_ops = 0;
+    mbedtls_ecdh_free(&operation->ctx);
+    return PSA_SUCCESS;
+}
+
+#endif /* MBEDTLS_PSA_BUILTIN_ALG_ECDH */

 #endif /* MBEDTLS_PSA_CRYPTO_C */
diff --git a/deps/LIEF/third-party/mbedtls/library/psa_crypto_ecp.h b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/psa_crypto_ecp.h
similarity index 67%
rename from deps/LIEF/third-party/mbedtls/library/psa_crypto_ecp.h
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/psa_crypto_ecp.h
index a9f5d59de48..2745f3a458b 100644
--- a/deps/LIEF/third-party/mbedtls/library/psa_crypto_ecp.h
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/psa_crypto_ecp.h
@@ -10,7 +10,7 @@
 #define PSA_CRYPTO_ECP_H

 #include <psa/crypto.h>
-#include <mbedtls/ecp.h>
+#include <mbedtls/private/ecp.h>

 /** Load the contents of a key buffer into an internal ECP representation
  *
@@ -120,6 +120,80 @@ psa_status_t mbedtls_psa_ecp_export_public_key(
     const uint8_t *key_buffer, size_t key_buffer_size,
     uint8_t *data, size_t data_size, size_t *data_length);

+/**
+ * \brief Get the total number of ops that an export public-key operation has taken
+ *        Since it's start.
+ *
+ * \param[in] operation                 The \c mbedtls_psa_export_public_key_iop_t to use.
+ *
+ * \return Total number of operations.
+ */
+uint32_t mbedtls_psa_ecp_export_public_key_iop_get_num_ops(
+    mbedtls_psa_export_public_key_iop_t *operation);
+
+/**
+ * \brief Setup a new interruptible export public-key operation.
+ *
+ *  \param[in] operation                 The \c mbedtls_psa_export_public_key_iop_t to use.
+ *                                       This must be initialized first.
+ *  \param[in] private_key               pointer to private key.
+ *  \param[in] private_key_len           size of \p private_key in bytes.
+ *  \param[in] private_key_attributes    Key attributes of the private key.
+ *
+ *  \retval #PSA_SUCCESS
+ *         The operation started successfully - call \c mbedtls_psa_ecp_export_public_key_iop_complete()
+ *         with the same operation to complete the operation.
+ * \retval #PSA_ERROR_NOT_SUPPORTED
+ *           Either no internal interruptible operations are
+ *           currently supported, or the key attributes are not unsupported.
+ * \retval #PSA_ERROR_INSUFFICIENT_MEMORY
+ *         There was insufficient memory to load the key representation.
+ * \retval #PSA_ERROR_INVALID_ARGUMENT \emptydescription
+ * \retval #PSA_ERROR_CORRUPTION_DETECTED \emptydescription
+ *
+ */
+psa_status_t mbedtls_psa_ecp_export_public_key_iop_setup(
+    mbedtls_psa_export_public_key_iop_t *operation,
+    uint8_t *private_key,
+    size_t private_key_len,
+    const psa_key_attributes_t *private_key_attributes);
+
+
+/**
+ * \brief Continue and eventually complete an export public-key operation.
+ *
+ * \param[in] operation                  The \c mbedtls_psa_export_public_key_iop_t to use.
+ *                                       This must be initialized first and
+ *                                       had \c mbedtls_psa_ecp_export_public_key_iop_setup()
+ *                                       called successfully.
+ * \param[out] pub_key                   Buffer where the public key data is to be written.
+ * \param[in]  pub_key_size              Size of the \p pub_key buffer in bytes.
+ * \param[out] pub_key_len               On success, the number of bytes that make up the public key data.
+ *
+ * \retval #PSA_SUCCESS
+ *         The key was exported successfully.
+ * \retval #PSA_ERROR_INVALID_ARGUMENT \emptydescription
+ * \retval #PSA_ERROR_BUFFER_TOO_SMALL \emptydescription
+ * \retval #PSA_ERROR_NOT_SUPPORTED \emptydescription
+ *
+ */
+psa_status_t mbedtls_psa_ecp_export_public_key_iop_complete(
+    mbedtls_psa_export_public_key_iop_t *operation,
+    uint8_t *pub_key,
+    size_t pub_key_size,
+    size_t *pub_key_len);
+
+/**
+ * \brief Abort an interruptible export public-key operation.
+ *
+ * \param[in] operation               The \c mbedtls_psa_export_public_key_iop_t to abort.
+ *
+ * \retval #PSA_SUCCESS
+ *         The operation was aborted successfully.
+ */
+psa_status_t mbedtls_psa_ecp_export_public_key_iop_abort(
+    mbedtls_psa_export_public_key_iop_t *operation);
+
 /**
  * \brief Generate an ECP key.
  *
@@ -143,6 +217,78 @@ psa_status_t mbedtls_psa_ecp_generate_key(
     const psa_key_attributes_t *attributes,
     uint8_t *key_buffer, size_t key_buffer_size, size_t *key_buffer_length);

+/**
+ * \brief Get the total number of ops that a key generation operation has taken
+ *        Since it's start.
+ *
+ * \param[in] operation                 The \c mbedtls_psa_generate_key_iop_t to use.
+ *                                      This must be initialized first.
+ * \return Total number of operations.
+ */
+uint32_t mbedtls_psa_generate_key_iop_get_num_ops(
+    mbedtls_psa_generate_key_iop_t *operation);
+
+/**
+ * \brief Setup a new interruptible key generation operation.
+ *
+ *  \param[in] operation                 The \c mbedtls_psa_generate_key_iop_t to use.
+ *                                       This must be initialized first.
+ *  \param[in] attributes                The desired attributes of the generated key.
+ *
+ *  \retval #PSA_SUCCESS
+ *         The operation started successfully - call \c mbedtls_psa_ecp_generate_key_iop_complete()
+ *         with the same operation to complete the operation.
+ * * \retval #PSA_ERROR_NOT_SUPPORTED
+ *           Either no internal interruptible operations are
+ *           currently supported, or the key attributes are not unsupported.
+ *  * \retval #PSA_ERROR_INSUFFICIENT_MEMORY
+ *         There was insufficient memory to load the key representation.
+ *
+ */
+psa_status_t mbedtls_psa_ecp_generate_key_iop_setup(
+    mbedtls_psa_generate_key_iop_t *operation,
+    const psa_key_attributes_t *attributes);
+
+/**
+ * \brief Continue and eventually complete a key generation operation.
+ *
+ * \note The signature of this function is that of a PSA driver
+ *       generate_key_complete entry point. This function behaves as a
+ *       generate_key_complete entry point as defined in the PSA driver
+ *       interface specification for transparent drivers.
+ *
+ * \param[in] operation                  The \c mbedtls_psa_generate_key_iop_t to use.
+ *                                       This must be initialized first and
+ *                                       had \c mbedtls_psa_ecp_generate_key_iop_setup()
+ *                                       called successfully.
+ * \param[out] key_output                The buffer to which the generated key
+ *                                       is to be written.
+ * \param[out] key_len                   On success, the number of bytes that make
+ *                                       up the returned key output.
+ * \retval #PSA_SUCCESS
+ *         The key was generated successfully.
+ * \retval #PSA_ERROR_INVALID_ARGUMENT \emptydescription
+ * \retval #PSA_ERROR_INSUFFICIENT_MEMORY \emptydescription
+ *
+ */
+psa_status_t mbedtls_psa_ecp_generate_key_iop_complete(
+    mbedtls_psa_generate_key_iop_t *operation,
+    uint8_t *key_output,
+    size_t key_output_size,
+    size_t *key_len);
+
+/**
+ * \brief Abort a key generation operation.
+ *
+ * \param[in] operation               The \c mbedtls_psa_generate_key_iop_t to abort.
+ *
+ * \retval #PSA_SUCCESS
+ *         The operation was aborted successfully.
+ *
+ */
+psa_status_t mbedtls_psa_ecp_generate_key_iop_abort(
+    mbedtls_psa_generate_key_iop_t *operation);
+
 /** Sign an already-calculated hash with ECDSA.
  *
  * \note The signature of this function is that of a PSA driver
diff --git a/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/psa_crypto_ffdh.c b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/psa_crypto_ffdh.c
new file mode 100644
index 00000000000..ec046abf25b
--- /dev/null
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/psa_crypto_ffdh.c
@@ -0,0 +1,741 @@
+/*
+ *  PSA FFDH layer on top of Mbed TLS crypto
+ */
+/*
+ *  Copyright The Mbed TLS Contributors
+ *  SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+ */
+
+#include "tf_psa_crypto_common.h"
+
+#if defined(MBEDTLS_PSA_CRYPTO_C)
+
+#include <psa/crypto.h>
+#include "psa_crypto_core.h"
+#include "psa_crypto_ffdh.h"
+#include "psa_crypto_random_impl.h"
+#include "mbedtls/platform.h"
+#include "mbedtls/private/error_common.h"
+
+
+/**
+ * RFC 7919 standardizes a number of Diffie-Hellman groups, some of which are
+ * included here for use within the psa_crypto_ffdh module.
+ *
+ * The following lists the source of the above groups in the standards:
+ * - RFC 7919 section A.1:  ffdhe2048
+ * - RFC 7919 section A.2:  ffdhe3072
+ * - RFC 7919 section A.3:  ffdhe4096
+ * - RFC 7919 section A.4:  ffdhe6144
+ * - RFC 7919 section A.5:  ffdhe8192
+ *
+ * The constants with suffix "_p" denote the chosen prime moduli, while
+ * the constants with suffix "_g" denote the chosen generator
+ * of the associated prime field.
+ *
+ * The constants further suffixed with "_bin" are provided in binary format,
+ * while all other constants represent null-terminated strings holding the
+ * hexadecimal presentation of the respective numbers.
+ *
+ * The primes from RFC 7919 have been generating by the following trust-worthy
+ * procedure:
+ * - Fix N in { 2048, 3072, 4096, 6144, 8192 } and consider the N-bit number
+ *   the first and last 64 bits are all 1, and the remaining N - 128 bits of
+ *   which are 0x7ff...ff.
+ * - Add the smallest multiple of the first N - 129 bits of the binary expansion
+ *   of e (for RFC 7919) to this intermediate bit-string such that the resulting
+ *   integer is a safe-prime.
+ * - The result is the respective RFC 7919 prime, and the corresponding
+ *   generator is always chosen to be 2 (which is a square for these prime,
+ *   hence the corresponding subgroup has order (p-1)/2 and avoids leaking a
+ *   bit in the private exponent).
+ */
+
+/*
+ * Trustworthy DHM parameters in binary form
+ */
+
+ #define MBEDTLS_DHM_RFC7919_FFDHE2048_P_BIN { \
+        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, \
+        0xAD, 0xF8, 0x54, 0x58, 0xA2, 0xBB, 0x4A, 0x9A, \
+        0xAF, 0xDC, 0x56, 0x20, 0x27, 0x3D, 0x3C, 0xF1, \
+        0xD8, 0xB9, 0xC5, 0x83, 0xCE, 0x2D, 0x36, 0x95, \
+        0xA9, 0xE1, 0x36, 0x41, 0x14, 0x64, 0x33, 0xFB, \
+        0xCC, 0x93, 0x9D, 0xCE, 0x24, 0x9B, 0x3E, 0xF9, \
+        0x7D, 0x2F, 0xE3, 0x63, 0x63, 0x0C, 0x75, 0xD8, \
+        0xF6, 0x81, 0xB2, 0x02, 0xAE, 0xC4, 0x61, 0x7A, \
+        0xD3, 0xDF, 0x1E, 0xD5, 0xD5, 0xFD, 0x65, 0x61, \
+        0x24, 0x33, 0xF5, 0x1F, 0x5F, 0x06, 0x6E, 0xD0, \
+        0x85, 0x63, 0x65, 0x55, 0x3D, 0xED, 0x1A, 0xF3, \
+        0xB5, 0x57, 0x13, 0x5E, 0x7F, 0x57, 0xC9, 0x35, \
+        0x98, 0x4F, 0x0C, 0x70, 0xE0, 0xE6, 0x8B, 0x77, \
+        0xE2, 0xA6, 0x89, 0xDA, 0xF3, 0xEF, 0xE8, 0x72, \
+        0x1D, 0xF1, 0x58, 0xA1, 0x36, 0xAD, 0xE7, 0x35, \
+        0x30, 0xAC, 0xCA, 0x4F, 0x48, 0x3A, 0x79, 0x7A, \
+        0xBC, 0x0A, 0xB1, 0x82, 0xB3, 0x24, 0xFB, 0x61, \
+        0xD1, 0x08, 0xA9, 0x4B, 0xB2, 0xC8, 0xE3, 0xFB, \
+        0xB9, 0x6A, 0xDA, 0xB7, 0x60, 0xD7, 0xF4, 0x68, \
+        0x1D, 0x4F, 0x42, 0xA3, 0xDE, 0x39, 0x4D, 0xF4, \
+        0xAE, 0x56, 0xED, 0xE7, 0x63, 0x72, 0xBB, 0x19, \
+        0x0B, 0x07, 0xA7, 0xC8, 0xEE, 0x0A, 0x6D, 0x70, \
+        0x9E, 0x02, 0xFC, 0xE1, 0xCD, 0xF7, 0xE2, 0xEC, \
+        0xC0, 0x34, 0x04, 0xCD, 0x28, 0x34, 0x2F, 0x61, \
+        0x91, 0x72, 0xFE, 0x9C, 0xE9, 0x85, 0x83, 0xFF, \
+        0x8E, 0x4F, 0x12, 0x32, 0xEE, 0xF2, 0x81, 0x83, \
+        0xC3, 0xFE, 0x3B, 0x1B, 0x4C, 0x6F, 0xAD, 0x73, \
+        0x3B, 0xB5, 0xFC, 0xBC, 0x2E, 0xC2, 0x20, 0x05, \
+        0xC5, 0x8E, 0xF1, 0x83, 0x7D, 0x16, 0x83, 0xB2, \
+        0xC6, 0xF3, 0x4A, 0x26, 0xC1, 0xB2, 0xEF, 0xFA, \
+        0x88, 0x6B, 0x42, 0x38, 0x61, 0x28, 0x5C, 0x97, \
+        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, }
+
+#define MBEDTLS_DHM_RFC7919_FFDHE2048_G_BIN { 0x02 }
+
+#define MBEDTLS_DHM_RFC7919_FFDHE3072_P_BIN { \
+        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, \
+        0xAD, 0xF8, 0x54, 0x58, 0xA2, 0xBB, 0x4A, 0x9A, \
+        0xAF, 0xDC, 0x56, 0x20, 0x27, 0x3D, 0x3C, 0xF1, \
+        0xD8, 0xB9, 0xC5, 0x83, 0xCE, 0x2D, 0x36, 0x95, \
+        0xA9, 0xE1, 0x36, 0x41, 0x14, 0x64, 0x33, 0xFB, \
+        0xCC, 0x93, 0x9D, 0xCE, 0x24, 0x9B, 0x3E, 0xF9, \
+        0x7D, 0x2F, 0xE3, 0x63, 0x63, 0x0C, 0x75, 0xD8, \
+        0xF6, 0x81, 0xB2, 0x02, 0xAE, 0xC4, 0x61, 0x7A, \
+        0xD3, 0xDF, 0x1E, 0xD5, 0xD5, 0xFD, 0x65, 0x61, \
+        0x24, 0x33, 0xF5, 0x1F, 0x5F, 0x06, 0x6E, 0xD0, \
+        0x85, 0x63, 0x65, 0x55, 0x3D, 0xED, 0x1A, 0xF3, \
+        0xB5, 0x57, 0x13, 0x5E, 0x7F, 0x57, 0xC9, 0x35, \
+        0x98, 0x4F, 0x0C, 0x70, 0xE0, 0xE6, 0x8B, 0x77, \
+        0xE2, 0xA6, 0x89, 0xDA, 0xF3, 0xEF, 0xE8, 0x72, \
+        0x1D, 0xF1, 0x58, 0xA1, 0x36, 0xAD, 0xE7, 0x35, \
+        0x30, 0xAC, 0xCA, 0x4F, 0x48, 0x3A, 0x79, 0x7A, \
+        0xBC, 0x0A, 0xB1, 0x82, 0xB3, 0x24, 0xFB, 0x61, \
+        0xD1, 0x08, 0xA9, 0x4B, 0xB2, 0xC8, 0xE3, 0xFB, \
+        0xB9, 0x6A, 0xDA, 0xB7, 0x60, 0xD7, 0xF4, 0x68, \
+        0x1D, 0x4F, 0x42, 0xA3, 0xDE, 0x39, 0x4D, 0xF4, \
+        0xAE, 0x56, 0xED, 0xE7, 0x63, 0x72, 0xBB, 0x19, \
+        0x0B, 0x07, 0xA7, 0xC8, 0xEE, 0x0A, 0x6D, 0x70, \
+        0x9E, 0x02, 0xFC, 0xE1, 0xCD, 0xF7, 0xE2, 0xEC, \
+        0xC0, 0x34, 0x04, 0xCD, 0x28, 0x34, 0x2F, 0x61, \
+        0x91, 0x72, 0xFE, 0x9C, 0xE9, 0x85, 0x83, 0xFF, \
+        0x8E, 0x4F, 0x12, 0x32, 0xEE, 0xF2, 0x81, 0x83, \
+        0xC3, 0xFE, 0x3B, 0x1B, 0x4C, 0x6F, 0xAD, 0x73, \
+        0x3B, 0xB5, 0xFC, 0xBC, 0x2E, 0xC2, 0x20, 0x05, \
+        0xC5, 0x8E, 0xF1, 0x83, 0x7D, 0x16, 0x83, 0xB2, \
+        0xC6, 0xF3, 0x4A, 0x26, 0xC1, 0xB2, 0xEF, 0xFA, \
+        0x88, 0x6B, 0x42, 0x38, 0x61, 0x1F, 0xCF, 0xDC, \
+        0xDE, 0x35, 0x5B, 0x3B, 0x65, 0x19, 0x03, 0x5B, \
+        0xBC, 0x34, 0xF4, 0xDE, 0xF9, 0x9C, 0x02, 0x38, \
+        0x61, 0xB4, 0x6F, 0xC9, 0xD6, 0xE6, 0xC9, 0x07, \
+        0x7A, 0xD9, 0x1D, 0x26, 0x91, 0xF7, 0xF7, 0xEE, \
+        0x59, 0x8C, 0xB0, 0xFA, 0xC1, 0x86, 0xD9, 0x1C, \
+        0xAE, 0xFE, 0x13, 0x09, 0x85, 0x13, 0x92, 0x70, \
+        0xB4, 0x13, 0x0C, 0x93, 0xBC, 0x43, 0x79, 0x44, \
+        0xF4, 0xFD, 0x44, 0x52, 0xE2, 0xD7, 0x4D, 0xD3, \
+        0x64, 0xF2, 0xE2, 0x1E, 0x71, 0xF5, 0x4B, 0xFF, \
+        0x5C, 0xAE, 0x82, 0xAB, 0x9C, 0x9D, 0xF6, 0x9E, \
+        0xE8, 0x6D, 0x2B, 0xC5, 0x22, 0x36, 0x3A, 0x0D, \
+        0xAB, 0xC5, 0x21, 0x97, 0x9B, 0x0D, 0xEA, 0xDA, \
+        0x1D, 0xBF, 0x9A, 0x42, 0xD5, 0xC4, 0x48, 0x4E, \
+        0x0A, 0xBC, 0xD0, 0x6B, 0xFA, 0x53, 0xDD, 0xEF, \
+        0x3C, 0x1B, 0x20, 0xEE, 0x3F, 0xD5, 0x9D, 0x7C, \
+        0x25, 0xE4, 0x1D, 0x2B, 0x66, 0xC6, 0x2E, 0x37, \
+        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF }
+
+#define MBEDTLS_DHM_RFC7919_FFDHE3072_G_BIN { 0x02 }
+
+#define MBEDTLS_DHM_RFC7919_FFDHE4096_P_BIN {        \
+        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, \
+        0xAD, 0xF8, 0x54, 0x58, 0xA2, 0xBB, 0x4A, 0x9A, \
+        0xAF, 0xDC, 0x56, 0x20, 0x27, 0x3D, 0x3C, 0xF1, \
+        0xD8, 0xB9, 0xC5, 0x83, 0xCE, 0x2D, 0x36, 0x95, \
+        0xA9, 0xE1, 0x36, 0x41, 0x14, 0x64, 0x33, 0xFB, \
+        0xCC, 0x93, 0x9D, 0xCE, 0x24, 0x9B, 0x3E, 0xF9, \
+        0x7D, 0x2F, 0xE3, 0x63, 0x63, 0x0C, 0x75, 0xD8, \
+        0xF6, 0x81, 0xB2, 0x02, 0xAE, 0xC4, 0x61, 0x7A, \
+        0xD3, 0xDF, 0x1E, 0xD5, 0xD5, 0xFD, 0x65, 0x61, \
+        0x24, 0x33, 0xF5, 0x1F, 0x5F, 0x06, 0x6E, 0xD0, \
+        0x85, 0x63, 0x65, 0x55, 0x3D, 0xED, 0x1A, 0xF3, \
+        0xB5, 0x57, 0x13, 0x5E, 0x7F, 0x57, 0xC9, 0x35, \
+        0x98, 0x4F, 0x0C, 0x70, 0xE0, 0xE6, 0x8B, 0x77, \
+        0xE2, 0xA6, 0x89, 0xDA, 0xF3, 0xEF, 0xE8, 0x72, \
+        0x1D, 0xF1, 0x58, 0xA1, 0x36, 0xAD, 0xE7, 0x35, \
+        0x30, 0xAC, 0xCA, 0x4F, 0x48, 0x3A, 0x79, 0x7A, \
+        0xBC, 0x0A, 0xB1, 0x82, 0xB3, 0x24, 0xFB, 0x61, \
+        0xD1, 0x08, 0xA9, 0x4B, 0xB2, 0xC8, 0xE3, 0xFB, \
+        0xB9, 0x6A, 0xDA, 0xB7, 0x60, 0xD7, 0xF4, 0x68, \
+        0x1D, 0x4F, 0x42, 0xA3, 0xDE, 0x39, 0x4D, 0xF4, \
+        0xAE, 0x56, 0xED, 0xE7, 0x63, 0x72, 0xBB, 0x19, \
+        0x0B, 0x07, 0xA7, 0xC8, 0xEE, 0x0A, 0x6D, 0x70, \
+        0x9E, 0x02, 0xFC, 0xE1, 0xCD, 0xF7, 0xE2, 0xEC, \
+        0xC0, 0x34, 0x04, 0xCD, 0x28, 0x34, 0x2F, 0x61, \
+        0x91, 0x72, 0xFE, 0x9C, 0xE9, 0x85, 0x83, 0xFF, \
+        0x8E, 0x4F, 0x12, 0x32, 0xEE, 0xF2, 0x81, 0x83, \
+        0xC3, 0xFE, 0x3B, 0x1B, 0x4C, 0x6F, 0xAD, 0x73, \
+        0x3B, 0xB5, 0xFC, 0xBC, 0x2E, 0xC2, 0x20, 0x05, \
+        0xC5, 0x8E, 0xF1, 0x83, 0x7D, 0x16, 0x83, 0xB2, \
+        0xC6, 0xF3, 0x4A, 0x26, 0xC1, 0xB2, 0xEF, 0xFA, \
+        0x88, 0x6B, 0x42, 0x38, 0x61, 0x1F, 0xCF, 0xDC, \
+        0xDE, 0x35, 0x5B, 0x3B, 0x65, 0x19, 0x03, 0x5B, \
+        0xBC, 0x34, 0xF4, 0xDE, 0xF9, 0x9C, 0x02, 0x38, \
+        0x61, 0xB4, 0x6F, 0xC9, 0xD6, 0xE6, 0xC9, 0x07, \
+        0x7A, 0xD9, 0x1D, 0x26, 0x91, 0xF7, 0xF7, 0xEE, \
+        0x59, 0x8C, 0xB0, 0xFA, 0xC1, 0x86, 0xD9, 0x1C, \
+        0xAE, 0xFE, 0x13, 0x09, 0x85, 0x13, 0x92, 0x70, \
+        0xB4, 0x13, 0x0C, 0x93, 0xBC, 0x43, 0x79, 0x44, \
+        0xF4, 0xFD, 0x44, 0x52, 0xE2, 0xD7, 0x4D, 0xD3, \
+        0x64, 0xF2, 0xE2, 0x1E, 0x71, 0xF5, 0x4B, 0xFF, \
+        0x5C, 0xAE, 0x82, 0xAB, 0x9C, 0x9D, 0xF6, 0x9E, \
+        0xE8, 0x6D, 0x2B, 0xC5, 0x22, 0x36, 0x3A, 0x0D, \
+        0xAB, 0xC5, 0x21, 0x97, 0x9B, 0x0D, 0xEA, 0xDA, \
+        0x1D, 0xBF, 0x9A, 0x42, 0xD5, 0xC4, 0x48, 0x4E, \
+        0x0A, 0xBC, 0xD0, 0x6B, 0xFA, 0x53, 0xDD, 0xEF, \
+        0x3C, 0x1B, 0x20, 0xEE, 0x3F, 0xD5, 0x9D, 0x7C, \
+        0x25, 0xE4, 0x1D, 0x2B, 0x66, 0x9E, 0x1E, 0xF1, \
+        0x6E, 0x6F, 0x52, 0xC3, 0x16, 0x4D, 0xF4, 0xFB, \
+        0x79, 0x30, 0xE9, 0xE4, 0xE5, 0x88, 0x57, 0xB6, \
+        0xAC, 0x7D, 0x5F, 0x42, 0xD6, 0x9F, 0x6D, 0x18, \
+        0x77, 0x63, 0xCF, 0x1D, 0x55, 0x03, 0x40, 0x04, \
+        0x87, 0xF5, 0x5B, 0xA5, 0x7E, 0x31, 0xCC, 0x7A, \
+        0x71, 0x35, 0xC8, 0x86, 0xEF, 0xB4, 0x31, 0x8A, \
+        0xED, 0x6A, 0x1E, 0x01, 0x2D, 0x9E, 0x68, 0x32, \
+        0xA9, 0x07, 0x60, 0x0A, 0x91, 0x81, 0x30, 0xC4, \
+        0x6D, 0xC7, 0x78, 0xF9, 0x71, 0xAD, 0x00, 0x38, \
+        0x09, 0x29, 0x99, 0xA3, 0x33, 0xCB, 0x8B, 0x7A, \
+        0x1A, 0x1D, 0xB9, 0x3D, 0x71, 0x40, 0x00, 0x3C, \
+        0x2A, 0x4E, 0xCE, 0xA9, 0xF9, 0x8D, 0x0A, 0xCC, \
+        0x0A, 0x82, 0x91, 0xCD, 0xCE, 0xC9, 0x7D, 0xCF, \
+        0x8E, 0xC9, 0xB5, 0x5A, 0x7F, 0x88, 0xA4, 0x6B, \
+        0x4D, 0xB5, 0xA8, 0x51, 0xF4, 0x41, 0x82, 0xE1, \
+        0xC6, 0x8A, 0x00, 0x7E, 0x5E, 0x65, 0x5F, 0x6A, \
+        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF }
+
+#define MBEDTLS_DHM_RFC7919_FFDHE4096_G_BIN { 0x02 }
+
+#define MBEDTLS_DHM_RFC7919_FFDHE6144_P_BIN {        \
+        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, \
+        0xAD, 0xF8, 0x54, 0x58, 0xA2, 0xBB, 0x4A, 0x9A, \
+        0xAF, 0xDC, 0x56, 0x20, 0x27, 0x3D, 0x3C, 0xF1, \
+        0xD8, 0xB9, 0xC5, 0x83, 0xCE, 0x2D, 0x36, 0x95, \
+        0xA9, 0xE1, 0x36, 0x41, 0x14, 0x64, 0x33, 0xFB, \
+        0xCC, 0x93, 0x9D, 0xCE, 0x24, 0x9B, 0x3E, 0xF9, \
+        0x7D, 0x2F, 0xE3, 0x63, 0x63, 0x0C, 0x75, 0xD8, \
+        0xF6, 0x81, 0xB2, 0x02, 0xAE, 0xC4, 0x61, 0x7A, \
+        0xD3, 0xDF, 0x1E, 0xD5, 0xD5, 0xFD, 0x65, 0x61, \
+        0x24, 0x33, 0xF5, 0x1F, 0x5F, 0x06, 0x6E, 0xD0, \
+        0x85, 0x63, 0x65, 0x55, 0x3D, 0xED, 0x1A, 0xF3, \
+        0xB5, 0x57, 0x13, 0x5E, 0x7F, 0x57, 0xC9, 0x35, \
+        0x98, 0x4F, 0x0C, 0x70, 0xE0, 0xE6, 0x8B, 0x77, \
+        0xE2, 0xA6, 0x89, 0xDA, 0xF3, 0xEF, 0xE8, 0x72, \
+        0x1D, 0xF1, 0x58, 0xA1, 0x36, 0xAD, 0xE7, 0x35, \
+        0x30, 0xAC, 0xCA, 0x4F, 0x48, 0x3A, 0x79, 0x7A, \
+        0xBC, 0x0A, 0xB1, 0x82, 0xB3, 0x24, 0xFB, 0x61, \
+        0xD1, 0x08, 0xA9, 0x4B, 0xB2, 0xC8, 0xE3, 0xFB, \
+        0xB9, 0x6A, 0xDA, 0xB7, 0x60, 0xD7, 0xF4, 0x68, \
+        0x1D, 0x4F, 0x42, 0xA3, 0xDE, 0x39, 0x4D, 0xF4, \
+        0xAE, 0x56, 0xED, 0xE7, 0x63, 0x72, 0xBB, 0x19, \
+        0x0B, 0x07, 0xA7, 0xC8, 0xEE, 0x0A, 0x6D, 0x70, \
+        0x9E, 0x02, 0xFC, 0xE1, 0xCD, 0xF7, 0xE2, 0xEC, \
+        0xC0, 0x34, 0x04, 0xCD, 0x28, 0x34, 0x2F, 0x61, \
+        0x91, 0x72, 0xFE, 0x9C, 0xE9, 0x85, 0x83, 0xFF, \
+        0x8E, 0x4F, 0x12, 0x32, 0xEE, 0xF2, 0x81, 0x83, \
+        0xC3, 0xFE, 0x3B, 0x1B, 0x4C, 0x6F, 0xAD, 0x73, \
+        0x3B, 0xB5, 0xFC, 0xBC, 0x2E, 0xC2, 0x20, 0x05, \
+        0xC5, 0x8E, 0xF1, 0x83, 0x7D, 0x16, 0x83, 0xB2, \
+        0xC6, 0xF3, 0x4A, 0x26, 0xC1, 0xB2, 0xEF, 0xFA, \
+        0x88, 0x6B, 0x42, 0x38, 0x61, 0x1F, 0xCF, 0xDC, \
+        0xDE, 0x35, 0x5B, 0x3B, 0x65, 0x19, 0x03, 0x5B, \
+        0xBC, 0x34, 0xF4, 0xDE, 0xF9, 0x9C, 0x02, 0x38, \
+        0x61, 0xB4, 0x6F, 0xC9, 0xD6, 0xE6, 0xC9, 0x07, \
+        0x7A, 0xD9, 0x1D, 0x26, 0x91, 0xF7, 0xF7, 0xEE, \
+        0x59, 0x8C, 0xB0, 0xFA, 0xC1, 0x86, 0xD9, 0x1C, \
+        0xAE, 0xFE, 0x13, 0x09, 0x85, 0x13, 0x92, 0x70, \
+        0xB4, 0x13, 0x0C, 0x93, 0xBC, 0x43, 0x79, 0x44, \
+        0xF4, 0xFD, 0x44, 0x52, 0xE2, 0xD7, 0x4D, 0xD3, \
+        0x64, 0xF2, 0xE2, 0x1E, 0x71, 0xF5, 0x4B, 0xFF, \
+        0x5C, 0xAE, 0x82, 0xAB, 0x9C, 0x9D, 0xF6, 0x9E, \
+        0xE8, 0x6D, 0x2B, 0xC5, 0x22, 0x36, 0x3A, 0x0D, \
+        0xAB, 0xC5, 0x21, 0x97, 0x9B, 0x0D, 0xEA, 0xDA, \
+        0x1D, 0xBF, 0x9A, 0x42, 0xD5, 0xC4, 0x48, 0x4E, \
+        0x0A, 0xBC, 0xD0, 0x6B, 0xFA, 0x53, 0xDD, 0xEF, \
+        0x3C, 0x1B, 0x20, 0xEE, 0x3F, 0xD5, 0x9D, 0x7C, \
+        0x25, 0xE4, 0x1D, 0x2B, 0x66, 0x9E, 0x1E, 0xF1, \
+        0x6E, 0x6F, 0x52, 0xC3, 0x16, 0x4D, 0xF4, 0xFB, \
+        0x79, 0x30, 0xE9, 0xE4, 0xE5, 0x88, 0x57, 0xB6, \
+        0xAC, 0x7D, 0x5F, 0x42, 0xD6, 0x9F, 0x6D, 0x18, \
+        0x77, 0x63, 0xCF, 0x1D, 0x55, 0x03, 0x40, 0x04, \
+        0x87, 0xF5, 0x5B, 0xA5, 0x7E, 0x31, 0xCC, 0x7A, \
+        0x71, 0x35, 0xC8, 0x86, 0xEF, 0xB4, 0x31, 0x8A, \
+        0xED, 0x6A, 0x1E, 0x01, 0x2D, 0x9E, 0x68, 0x32, \
+        0xA9, 0x07, 0x60, 0x0A, 0x91, 0x81, 0x30, 0xC4, \
+        0x6D, 0xC7, 0x78, 0xF9, 0x71, 0xAD, 0x00, 0x38, \
+        0x09, 0x29, 0x99, 0xA3, 0x33, 0xCB, 0x8B, 0x7A, \
+        0x1A, 0x1D, 0xB9, 0x3D, 0x71, 0x40, 0x00, 0x3C, \
+        0x2A, 0x4E, 0xCE, 0xA9, 0xF9, 0x8D, 0x0A, 0xCC, \
+        0x0A, 0x82, 0x91, 0xCD, 0xCE, 0xC9, 0x7D, 0xCF, \
+        0x8E, 0xC9, 0xB5, 0x5A, 0x7F, 0x88, 0xA4, 0x6B, \
+        0x4D, 0xB5, 0xA8, 0x51, 0xF4, 0x41, 0x82, 0xE1, \
+        0xC6, 0x8A, 0x00, 0x7E, 0x5E, 0x0D, 0xD9, 0x02, \
+        0x0B, 0xFD, 0x64, 0xB6, 0x45, 0x03, 0x6C, 0x7A, \
+        0x4E, 0x67, 0x7D, 0x2C, 0x38, 0x53, 0x2A, 0x3A, \
+        0x23, 0xBA, 0x44, 0x42, 0xCA, 0xF5, 0x3E, 0xA6, \
+        0x3B, 0xB4, 0x54, 0x32, 0x9B, 0x76, 0x24, 0xC8, \
+        0x91, 0x7B, 0xDD, 0x64, 0xB1, 0xC0, 0xFD, 0x4C, \
+        0xB3, 0x8E, 0x8C, 0x33, 0x4C, 0x70, 0x1C, 0x3A, \
+        0xCD, 0xAD, 0x06, 0x57, 0xFC, 0xCF, 0xEC, 0x71, \
+        0x9B, 0x1F, 0x5C, 0x3E, 0x4E, 0x46, 0x04, 0x1F, \
+        0x38, 0x81, 0x47, 0xFB, 0x4C, 0xFD, 0xB4, 0x77, \
+        0xA5, 0x24, 0x71, 0xF7, 0xA9, 0xA9, 0x69, 0x10, \
+        0xB8, 0x55, 0x32, 0x2E, 0xDB, 0x63, 0x40, 0xD8, \
+        0xA0, 0x0E, 0xF0, 0x92, 0x35, 0x05, 0x11, 0xE3, \
+        0x0A, 0xBE, 0xC1, 0xFF, 0xF9, 0xE3, 0xA2, 0x6E, \
+        0x7F, 0xB2, 0x9F, 0x8C, 0x18, 0x30, 0x23, 0xC3, \
+        0x58, 0x7E, 0x38, 0xDA, 0x00, 0x77, 0xD9, 0xB4, \
+        0x76, 0x3E, 0x4E, 0x4B, 0x94, 0xB2, 0xBB, 0xC1, \
+        0x94, 0xC6, 0x65, 0x1E, 0x77, 0xCA, 0xF9, 0x92, \
+        0xEE, 0xAA, 0xC0, 0x23, 0x2A, 0x28, 0x1B, 0xF6, \
+        0xB3, 0xA7, 0x39, 0xC1, 0x22, 0x61, 0x16, 0x82, \
+        0x0A, 0xE8, 0xDB, 0x58, 0x47, 0xA6, 0x7C, 0xBE, \
+        0xF9, 0xC9, 0x09, 0x1B, 0x46, 0x2D, 0x53, 0x8C, \
+        0xD7, 0x2B, 0x03, 0x74, 0x6A, 0xE7, 0x7F, 0x5E, \
+        0x62, 0x29, 0x2C, 0x31, 0x15, 0x62, 0xA8, 0x46, \
+        0x50, 0x5D, 0xC8, 0x2D, 0xB8, 0x54, 0x33, 0x8A, \
+        0xE4, 0x9F, 0x52, 0x35, 0xC9, 0x5B, 0x91, 0x17, \
+        0x8C, 0xCF, 0x2D, 0xD5, 0xCA, 0xCE, 0xF4, 0x03, \
+        0xEC, 0x9D, 0x18, 0x10, 0xC6, 0x27, 0x2B, 0x04, \
+        0x5B, 0x3B, 0x71, 0xF9, 0xDC, 0x6B, 0x80, 0xD6, \
+        0x3F, 0xDD, 0x4A, 0x8E, 0x9A, 0xDB, 0x1E, 0x69, \
+        0x62, 0xA6, 0x95, 0x26, 0xD4, 0x31, 0x61, 0xC1, \
+        0xA4, 0x1D, 0x57, 0x0D, 0x79, 0x38, 0xDA, 0xD4, \
+        0xA4, 0x0E, 0x32, 0x9C, 0xD0, 0xE4, 0x0E, 0x65, \
+        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF }
+
+#define MBEDTLS_DHM_RFC7919_FFDHE6144_G_BIN { 0x02 }
+
+#define MBEDTLS_DHM_RFC7919_FFDHE8192_P_BIN {        \
+        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, \
+        0xAD, 0xF8, 0x54, 0x58, 0xA2, 0xBB, 0x4A, 0x9A, \
+        0xAF, 0xDC, 0x56, 0x20, 0x27, 0x3D, 0x3C, 0xF1, \
+        0xD8, 0xB9, 0xC5, 0x83, 0xCE, 0x2D, 0x36, 0x95, \
+        0xA9, 0xE1, 0x36, 0x41, 0x14, 0x64, 0x33, 0xFB, \
+        0xCC, 0x93, 0x9D, 0xCE, 0x24, 0x9B, 0x3E, 0xF9, \
+        0x7D, 0x2F, 0xE3, 0x63, 0x63, 0x0C, 0x75, 0xD8, \
+        0xF6, 0x81, 0xB2, 0x02, 0xAE, 0xC4, 0x61, 0x7A, \
+        0xD3, 0xDF, 0x1E, 0xD5, 0xD5, 0xFD, 0x65, 0x61, \
+        0x24, 0x33, 0xF5, 0x1F, 0x5F, 0x06, 0x6E, 0xD0, \
+        0x85, 0x63, 0x65, 0x55, 0x3D, 0xED, 0x1A, 0xF3, \
+        0xB5, 0x57, 0x13, 0x5E, 0x7F, 0x57, 0xC9, 0x35, \
+        0x98, 0x4F, 0x0C, 0x70, 0xE0, 0xE6, 0x8B, 0x77, \
+        0xE2, 0xA6, 0x89, 0xDA, 0xF3, 0xEF, 0xE8, 0x72, \
+        0x1D, 0xF1, 0x58, 0xA1, 0x36, 0xAD, 0xE7, 0x35, \
+        0x30, 0xAC, 0xCA, 0x4F, 0x48, 0x3A, 0x79, 0x7A, \
+        0xBC, 0x0A, 0xB1, 0x82, 0xB3, 0x24, 0xFB, 0x61, \
+        0xD1, 0x08, 0xA9, 0x4B, 0xB2, 0xC8, 0xE3, 0xFB, \
+        0xB9, 0x6A, 0xDA, 0xB7, 0x60, 0xD7, 0xF4, 0x68, \
+        0x1D, 0x4F, 0x42, 0xA3, 0xDE, 0x39, 0x4D, 0xF4, \
+        0xAE, 0x56, 0xED, 0xE7, 0x63, 0x72, 0xBB, 0x19, \
+        0x0B, 0x07, 0xA7, 0xC8, 0xEE, 0x0A, 0x6D, 0x70, \
+        0x9E, 0x02, 0xFC, 0xE1, 0xCD, 0xF7, 0xE2, 0xEC, \
+        0xC0, 0x34, 0x04, 0xCD, 0x28, 0x34, 0x2F, 0x61, \
+        0x91, 0x72, 0xFE, 0x9C, 0xE9, 0x85, 0x83, 0xFF, \
+        0x8E, 0x4F, 0x12, 0x32, 0xEE, 0xF2, 0x81, 0x83, \
+        0xC3, 0xFE, 0x3B, 0x1B, 0x4C, 0x6F, 0xAD, 0x73, \
+        0x3B, 0xB5, 0xFC, 0xBC, 0x2E, 0xC2, 0x20, 0x05, \
+        0xC5, 0x8E, 0xF1, 0x83, 0x7D, 0x16, 0x83, 0xB2, \
+        0xC6, 0xF3, 0x4A, 0x26, 0xC1, 0xB2, 0xEF, 0xFA, \
+        0x88, 0x6B, 0x42, 0x38, 0x61, 0x1F, 0xCF, 0xDC, \
+        0xDE, 0x35, 0x5B, 0x3B, 0x65, 0x19, 0x03, 0x5B, \
+        0xBC, 0x34, 0xF4, 0xDE, 0xF9, 0x9C, 0x02, 0x38, \
+        0x61, 0xB4, 0x6F, 0xC9, 0xD6, 0xE6, 0xC9, 0x07, \
+        0x7A, 0xD9, 0x1D, 0x26, 0x91, 0xF7, 0xF7, 0xEE, \
+        0x59, 0x8C, 0xB0, 0xFA, 0xC1, 0x86, 0xD9, 0x1C, \
+        0xAE, 0xFE, 0x13, 0x09, 0x85, 0x13, 0x92, 0x70, \
+        0xB4, 0x13, 0x0C, 0x93, 0xBC, 0x43, 0x79, 0x44, \
+        0xF4, 0xFD, 0x44, 0x52, 0xE2, 0xD7, 0x4D, 0xD3, \
+        0x64, 0xF2, 0xE2, 0x1E, 0x71, 0xF5, 0x4B, 0xFF, \
+        0x5C, 0xAE, 0x82, 0xAB, 0x9C, 0x9D, 0xF6, 0x9E, \
+        0xE8, 0x6D, 0x2B, 0xC5, 0x22, 0x36, 0x3A, 0x0D, \
+        0xAB, 0xC5, 0x21, 0x97, 0x9B, 0x0D, 0xEA, 0xDA, \
+        0x1D, 0xBF, 0x9A, 0x42, 0xD5, 0xC4, 0x48, 0x4E, \
+        0x0A, 0xBC, 0xD0, 0x6B, 0xFA, 0x53, 0xDD, 0xEF, \
+        0x3C, 0x1B, 0x20, 0xEE, 0x3F, 0xD5, 0x9D, 0x7C, \
+        0x25, 0xE4, 0x1D, 0x2B, 0x66, 0x9E, 0x1E, 0xF1, \
+        0x6E, 0x6F, 0x52, 0xC3, 0x16, 0x4D, 0xF4, 0xFB, \
+        0x79, 0x30, 0xE9, 0xE4, 0xE5, 0x88, 0x57, 0xB6, \
+        0xAC, 0x7D, 0x5F, 0x42, 0xD6, 0x9F, 0x6D, 0x18, \
+        0x77, 0x63, 0xCF, 0x1D, 0x55, 0x03, 0x40, 0x04, \
+        0x87, 0xF5, 0x5B, 0xA5, 0x7E, 0x31, 0xCC, 0x7A, \
+        0x71, 0x35, 0xC8, 0x86, 0xEF, 0xB4, 0x31, 0x8A, \
+        0xED, 0x6A, 0x1E, 0x01, 0x2D, 0x9E, 0x68, 0x32, \
+        0xA9, 0x07, 0x60, 0x0A, 0x91, 0x81, 0x30, 0xC4, \
+        0x6D, 0xC7, 0x78, 0xF9, 0x71, 0xAD, 0x00, 0x38, \
+        0x09, 0x29, 0x99, 0xA3, 0x33, 0xCB, 0x8B, 0x7A, \
+        0x1A, 0x1D, 0xB9, 0x3D, 0x71, 0x40, 0x00, 0x3C, \
+        0x2A, 0x4E, 0xCE, 0xA9, 0xF9, 0x8D, 0x0A, 0xCC, \
+        0x0A, 0x82, 0x91, 0xCD, 0xCE, 0xC9, 0x7D, 0xCF, \
+        0x8E, 0xC9, 0xB5, 0x5A, 0x7F, 0x88, 0xA4, 0x6B, \
+        0x4D, 0xB5, 0xA8, 0x51, 0xF4, 0x41, 0x82, 0xE1, \
+        0xC6, 0x8A, 0x00, 0x7E, 0x5E, 0x0D, 0xD9, 0x02, \
+        0x0B, 0xFD, 0x64, 0xB6, 0x45, 0x03, 0x6C, 0x7A, \
+        0x4E, 0x67, 0x7D, 0x2C, 0x38, 0x53, 0x2A, 0x3A, \
+        0x23, 0xBA, 0x44, 0x42, 0xCA, 0xF5, 0x3E, 0xA6, \
+        0x3B, 0xB4, 0x54, 0x32, 0x9B, 0x76, 0x24, 0xC8, \
+        0x91, 0x7B, 0xDD, 0x64, 0xB1, 0xC0, 0xFD, 0x4C, \
+        0xB3, 0x8E, 0x8C, 0x33, 0x4C, 0x70, 0x1C, 0x3A, \
+        0xCD, 0xAD, 0x06, 0x57, 0xFC, 0xCF, 0xEC, 0x71, \
+        0x9B, 0x1F, 0x5C, 0x3E, 0x4E, 0x46, 0x04, 0x1F, \
+        0x38, 0x81, 0x47, 0xFB, 0x4C, 0xFD, 0xB4, 0x77, \
+        0xA5, 0x24, 0x71, 0xF7, 0xA9, 0xA9, 0x69, 0x10, \
+        0xB8, 0x55, 0x32, 0x2E, 0xDB, 0x63, 0x40, 0xD8, \
+        0xA0, 0x0E, 0xF0, 0x92, 0x35, 0x05, 0x11, 0xE3, \
+        0x0A, 0xBE, 0xC1, 0xFF, 0xF9, 0xE3, 0xA2, 0x6E, \
+        0x7F, 0xB2, 0x9F, 0x8C, 0x18, 0x30, 0x23, 0xC3, \
+        0x58, 0x7E, 0x38, 0xDA, 0x00, 0x77, 0xD9, 0xB4, \
+        0x76, 0x3E, 0x4E, 0x4B, 0x94, 0xB2, 0xBB, 0xC1, \
+        0x94, 0xC6, 0x65, 0x1E, 0x77, 0xCA, 0xF9, 0x92, \
+        0xEE, 0xAA, 0xC0, 0x23, 0x2A, 0x28, 0x1B, 0xF6, \
+        0xB3, 0xA7, 0x39, 0xC1, 0x22, 0x61, 0x16, 0x82, \
+        0x0A, 0xE8, 0xDB, 0x58, 0x47, 0xA6, 0x7C, 0xBE, \
+        0xF9, 0xC9, 0x09, 0x1B, 0x46, 0x2D, 0x53, 0x8C, \
+        0xD7, 0x2B, 0x03, 0x74, 0x6A, 0xE7, 0x7F, 0x5E, \
+        0x62, 0x29, 0x2C, 0x31, 0x15, 0x62, 0xA8, 0x46, \
+        0x50, 0x5D, 0xC8, 0x2D, 0xB8, 0x54, 0x33, 0x8A, \
+        0xE4, 0x9F, 0x52, 0x35, 0xC9, 0x5B, 0x91, 0x17, \
+        0x8C, 0xCF, 0x2D, 0xD5, 0xCA, 0xCE, 0xF4, 0x03, \
+        0xEC, 0x9D, 0x18, 0x10, 0xC6, 0x27, 0x2B, 0x04, \
+        0x5B, 0x3B, 0x71, 0xF9, 0xDC, 0x6B, 0x80, 0xD6, \
+        0x3F, 0xDD, 0x4A, 0x8E, 0x9A, 0xDB, 0x1E, 0x69, \
+        0x62, 0xA6, 0x95, 0x26, 0xD4, 0x31, 0x61, 0xC1, \
+        0xA4, 0x1D, 0x57, 0x0D, 0x79, 0x38, 0xDA, 0xD4, \
+        0xA4, 0x0E, 0x32, 0x9C, 0xCF, 0xF4, 0x6A, 0xAA, \
+        0x36, 0xAD, 0x00, 0x4C, 0xF6, 0x00, 0xC8, 0x38, \
+        0x1E, 0x42, 0x5A, 0x31, 0xD9, 0x51, 0xAE, 0x64, \
+        0xFD, 0xB2, 0x3F, 0xCE, 0xC9, 0x50, 0x9D, 0x43, \
+        0x68, 0x7F, 0xEB, 0x69, 0xED, 0xD1, 0xCC, 0x5E, \
+        0x0B, 0x8C, 0xC3, 0xBD, 0xF6, 0x4B, 0x10, 0xEF, \
+        0x86, 0xB6, 0x31, 0x42, 0xA3, 0xAB, 0x88, 0x29, \
+        0x55, 0x5B, 0x2F, 0x74, 0x7C, 0x93, 0x26, 0x65, \
+        0xCB, 0x2C, 0x0F, 0x1C, 0xC0, 0x1B, 0xD7, 0x02, \
+        0x29, 0x38, 0x88, 0x39, 0xD2, 0xAF, 0x05, 0xE4, \
+        0x54, 0x50, 0x4A, 0xC7, 0x8B, 0x75, 0x82, 0x82, \
+        0x28, 0x46, 0xC0, 0xBA, 0x35, 0xC3, 0x5F, 0x5C, \
+        0x59, 0x16, 0x0C, 0xC0, 0x46, 0xFD, 0x82, 0x51, \
+        0x54, 0x1F, 0xC6, 0x8C, 0x9C, 0x86, 0xB0, 0x22, \
+        0xBB, 0x70, 0x99, 0x87, 0x6A, 0x46, 0x0E, 0x74, \
+        0x51, 0xA8, 0xA9, 0x31, 0x09, 0x70, 0x3F, 0xEE, \
+        0x1C, 0x21, 0x7E, 0x6C, 0x38, 0x26, 0xE5, 0x2C, \
+        0x51, 0xAA, 0x69, 0x1E, 0x0E, 0x42, 0x3C, 0xFC, \
+        0x99, 0xE9, 0xE3, 0x16, 0x50, 0xC1, 0x21, 0x7B, \
+        0x62, 0x48, 0x16, 0xCD, 0xAD, 0x9A, 0x95, 0xF9, \
+        0xD5, 0xB8, 0x01, 0x94, 0x88, 0xD9, 0xC0, 0xA0, \
+        0xA1, 0xFE, 0x30, 0x75, 0xA5, 0x77, 0xE2, 0x31, \
+        0x83, 0xF8, 0x1D, 0x4A, 0x3F, 0x2F, 0xA4, 0x57, \
+        0x1E, 0xFC, 0x8C, 0xE0, 0xBA, 0x8A, 0x4F, 0xE8, \
+        0xB6, 0x85, 0x5D, 0xFE, 0x72, 0xB0, 0xA6, 0x6E, \
+        0xDE, 0xD2, 0xFB, 0xAB, 0xFB, 0xE5, 0x8A, 0x30, \
+        0xFA, 0xFA, 0xBE, 0x1C, 0x5D, 0x71, 0xA8, 0x7E, \
+        0x2F, 0x74, 0x1E, 0xF8, 0xC1, 0xFE, 0x86, 0xFE, \
+        0xA6, 0xBB, 0xFD, 0xE5, 0x30, 0x67, 0x7F, 0x0D, \
+        0x97, 0xD1, 0x1D, 0x49, 0xF7, 0xA8, 0x44, 0x3D, \
+        0x08, 0x22, 0xE5, 0x06, 0xA9, 0xF4, 0x61, 0x4E, \
+        0x01, 0x1E, 0x2A, 0x94, 0x83, 0x8F, 0xF8, 0x8C, \
+        0xD6, 0x8C, 0x8B, 0xB7, 0xC5, 0xC6, 0x42, 0x4C, \
+        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF }
+
+#define MBEDTLS_DHM_RFC7919_FFDHE8192_G_BIN { 0x02 }
+
+#if defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_DH_KEY_PAIR_EXPORT) ||   \
+    defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_DH_KEY_PAIR_GENERATE) ||   \
+    defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_DH_PUBLIC_KEY) || \
+    defined(MBEDTLS_PSA_BUILTIN_ALG_FFDH)
+static psa_status_t mbedtls_psa_ffdh_set_prime_generator(size_t key_size,
+                                                         mbedtls_mpi *P,
+                                                         mbedtls_mpi *G)
+{
+    const unsigned char *dhm_P = NULL;
+    const unsigned char *dhm_G = NULL;
+    size_t dhm_size_P = 0;
+    size_t dhm_size_G = 0;
+    int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
+
+    if (P == NULL && G == NULL) {
+        return PSA_ERROR_INVALID_ARGUMENT;
+    }
+
+#if defined(MBEDTLS_PSA_BUILTIN_DH_RFC7919_2048)
+    static const unsigned char dhm_P_2048[] =
+        MBEDTLS_DHM_RFC7919_FFDHE2048_P_BIN;
+    static const unsigned char dhm_G_2048[] =
+        MBEDTLS_DHM_RFC7919_FFDHE2048_G_BIN;
+#endif /* MBEDTLS_PSA_BUILTIN_DH_RFC7919_2048 */
+#if defined(MBEDTLS_PSA_BUILTIN_DH_RFC7919_3072)
+    static const unsigned char dhm_P_3072[] =
+        MBEDTLS_DHM_RFC7919_FFDHE3072_P_BIN;
+    static const unsigned char dhm_G_3072[] =
+        MBEDTLS_DHM_RFC7919_FFDHE3072_G_BIN;
+#endif /* MBEDTLS_PSA_BUILTIN_DH_RFC7919_3072 */
+#if defined(MBEDTLS_PSA_BUILTIN_DH_RFC7919_4096)
+    static const unsigned char dhm_P_4096[] =
+        MBEDTLS_DHM_RFC7919_FFDHE4096_P_BIN;
+    static const unsigned char dhm_G_4096[] =
+        MBEDTLS_DHM_RFC7919_FFDHE4096_G_BIN;
+#endif /* MBEDTLS_PSA_BUILTIN_DH_RFC7919_4096 */
+#if defined(MBEDTLS_PSA_BUILTIN_DH_RFC7919_6144)
+    static const unsigned char dhm_P_6144[] =
+        MBEDTLS_DHM_RFC7919_FFDHE6144_P_BIN;
+    static const unsigned char dhm_G_6144[] =
+        MBEDTLS_DHM_RFC7919_FFDHE6144_G_BIN;
+#endif /* MBEDTLS_PSA_BUILTIN_DH_RFC7919_6144 */
+#if defined(MBEDTLS_PSA_BUILTIN_DH_RFC7919_8192)
+    static const unsigned char dhm_P_8192[] =
+        MBEDTLS_DHM_RFC7919_FFDHE8192_P_BIN;
+    static const unsigned char dhm_G_8192[] =
+        MBEDTLS_DHM_RFC7919_FFDHE8192_G_BIN;
+#endif /* MBEDTLS_PSA_BUILTIN_DH_RFC7919_8192 */
+
+    switch (key_size) {
+#if defined(MBEDTLS_PSA_BUILTIN_DH_RFC7919_2048)
+        case sizeof(dhm_P_2048):
+            dhm_P = dhm_P_2048;
+            dhm_G = dhm_G_2048;
+            dhm_size_P = sizeof(dhm_P_2048);
+            dhm_size_G = sizeof(dhm_G_2048);
+            break;
+#endif /* MBEDTLS_PSA_BUILTIN_DH_RFC7919_2048 */
+#if defined(MBEDTLS_PSA_BUILTIN_DH_RFC7919_3072)
+        case sizeof(dhm_P_3072):
+            dhm_P = dhm_P_3072;
+            dhm_G = dhm_G_3072;
+            dhm_size_P = sizeof(dhm_P_3072);
+            dhm_size_G = sizeof(dhm_G_3072);
+            break;
+#endif /* MBEDTLS_PSA_BUILTIN_DH_RFC7919_3072 */
+#if defined(MBEDTLS_PSA_BUILTIN_DH_RFC7919_4096)
+        case sizeof(dhm_P_4096):
+            dhm_P = dhm_P_4096;
+            dhm_G = dhm_G_4096;
+            dhm_size_P = sizeof(dhm_P_4096);
+            dhm_size_G = sizeof(dhm_G_4096);
+            break;
+#endif /* MBEDTLS_PSA_BUILTIN_DH_RFC7919_4096 */
+#if defined(MBEDTLS_PSA_BUILTIN_DH_RFC7919_6144)
+        case sizeof(dhm_P_6144):
+            dhm_P = dhm_P_6144;
+            dhm_G = dhm_G_6144;
+            dhm_size_P = sizeof(dhm_P_6144);
+            dhm_size_G = sizeof(dhm_G_6144);
+            break;
+#endif /* MBEDTLS_PSA_BUILTIN_DH_RFC7919_6144 */
+#if defined(MBEDTLS_PSA_BUILTIN_DH_RFC7919_8192)
+        case sizeof(dhm_P_8192):
+            dhm_P = dhm_P_8192;
+            dhm_G = dhm_G_8192;
+            dhm_size_P = sizeof(dhm_P_8192);
+            dhm_size_G = sizeof(dhm_G_8192);
+            break;
+#endif /* MBEDTLS_PSA_BUILTIN_DH_RFC7919_8192 */
+        default:
+            return PSA_ERROR_INVALID_ARGUMENT;
+    }
+
+    if (P != NULL) {
+        MBEDTLS_MPI_CHK(mbedtls_mpi_read_binary(P, dhm_P,
+                                                dhm_size_P));
+    }
+    if (G != NULL) {
+        MBEDTLS_MPI_CHK(mbedtls_mpi_read_binary(G, dhm_G,
+                                                dhm_size_G));
+    }
+
+cleanup:
+    if (ret != 0) {
+        return mbedtls_to_psa_error(ret);
+    }
+
+    return PSA_SUCCESS;
+}
+#endif /* MBEDTLS_PSA_BUILTIN_KEY_TYPE_DH_KEY_PAIR_EXPORT ||
+          MBEDTLS_PSA_BUILTIN_KEY_TYPE_DH_KEY_PAIR_GENERATE ||
+          MBEDTLS_PSA_BUILTIN_KEY_TYPE_DH_PUBLIC_KEY ||
+          MBEDTLS_PSA_BUILTIN_ALG_FFDH */
+
+#if defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_DH_KEY_PAIR_EXPORT) || \
+    defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_DH_PUBLIC_KEY)
+psa_status_t mbedtls_psa_ffdh_export_public_key(
+    const psa_key_attributes_t *attributes,
+    const uint8_t *key_buffer,
+    size_t key_buffer_size,
+    uint8_t *data,
+    size_t data_size,
+    size_t *data_length)
+{
+    int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
+    psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED;
+    mbedtls_mpi GX, G, X, P;
+    psa_key_type_t type = attributes->type;
+
+    if (PSA_KEY_TYPE_IS_PUBLIC_KEY(type)) {
+        if (key_buffer_size > data_size) {
+            return PSA_ERROR_BUFFER_TOO_SMALL;
+        }
+        memcpy(data, key_buffer, key_buffer_size);
+        memset(data + key_buffer_size, 0,
+               data_size - key_buffer_size);
+        *data_length = key_buffer_size;
+        return PSA_SUCCESS;
+    }
+
+    mbedtls_mpi_init(&GX); mbedtls_mpi_init(&G);
+    mbedtls_mpi_init(&X); mbedtls_mpi_init(&P);
+
+    size_t key_len = PSA_BITS_TO_BYTES(attributes->bits);
+
+    status = mbedtls_psa_ffdh_set_prime_generator(key_len, &P, &G);
+
+    if (status != PSA_SUCCESS) {
+        goto cleanup;
+    }
+
+    MBEDTLS_MPI_CHK(mbedtls_mpi_read_binary(&X, key_buffer,
+                                            key_buffer_size));
+
+    MBEDTLS_MPI_CHK(mbedtls_mpi_exp_mod(&GX, &G, &X, &P, NULL));
+    MBEDTLS_MPI_CHK(mbedtls_mpi_write_binary(&GX, data, key_len));
+
+    *data_length = key_len;
+
+    ret = 0;
+cleanup:
+    mbedtls_mpi_free(&P); mbedtls_mpi_free(&G);
+    mbedtls_mpi_free(&X); mbedtls_mpi_free(&GX);
+
+    if (status == PSA_SUCCESS && ret != 0) {
+        status = mbedtls_to_psa_error(ret);
+    }
+
+    return status;
+}
+#endif /* MBEDTLS_PSA_BUILTIN_KEY_TYPE_DH_KEY_PAIR_EXPORT ||
+          MBEDTLS_PSA_BUILTIN_KEY_TYPE_DH_PUBLIC_KEY */
+
+#if defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_DH_KEY_PAIR_GENERATE)
+psa_status_t mbedtls_psa_ffdh_generate_key(
+    const psa_key_attributes_t *attributes,
+    uint8_t *key_buffer, size_t key_buffer_size, size_t *key_buffer_length)
+{
+    mbedtls_mpi X, P;
+    int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
+    psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED;
+    mbedtls_mpi_init(&P); mbedtls_mpi_init(&X);
+    (void) attributes;
+
+    status = mbedtls_psa_ffdh_set_prime_generator(key_buffer_size, &P, NULL);
+
+    if (status != PSA_SUCCESS) {
+        goto cleanup;
+    }
+
+    /* RFC7919: Traditional finite field Diffie-Hellman has each peer choose their
+        secret exponent from the range [2, P-2].
+        Select random value in range [3, P-1] and decrease it by 1. */
+    MBEDTLS_MPI_CHK(mbedtls_mpi_random(&X, 3, &P, mbedtls_psa_get_random,
+                                       MBEDTLS_PSA_RANDOM_STATE));
+    MBEDTLS_MPI_CHK(mbedtls_mpi_sub_int(&X, &X, 1));
+    MBEDTLS_MPI_CHK(mbedtls_mpi_write_binary(&X, key_buffer, key_buffer_size));
+    *key_buffer_length = key_buffer_size;
+
+cleanup:
+    mbedtls_mpi_free(&P); mbedtls_mpi_free(&X);
+    if (status == PSA_SUCCESS && ret != 0) {
+        return mbedtls_to_psa_error(ret);
+    }
+
+    return status;
+}
+#endif /* MBEDTLS_PSA_BUILTIN_KEY_TYPE_DH_KEY_PAIR_GENERATE */
+
+#if defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_DH_KEY_PAIR_IMPORT)
+psa_status_t mbedtls_psa_ffdh_import_key(
+    const psa_key_attributes_t *attributes,
+    const uint8_t *data, size_t data_length,
+    uint8_t *key_buffer, size_t key_buffer_size,
+    size_t *key_buffer_length, size_t *bits)
+{
+    (void) attributes;
+
+    if (key_buffer_size < data_length) {
+        return PSA_ERROR_BUFFER_TOO_SMALL;
+    }
+    memcpy(key_buffer, data, data_length);
+    *key_buffer_length = data_length;
+    *bits = PSA_BYTES_TO_BITS(data_length);
+
+    return PSA_SUCCESS;
+}
+#endif /* MBEDTLS_PSA_BUILTIN_KEY_TYPE_DH_KEY_PAIR_IMPORT */
+
+#if defined(MBEDTLS_PSA_BUILTIN_ALG_FFDH)
+psa_status_t mbedtls_psa_ffdh_key_agreement(
+    const psa_key_attributes_t *attributes,
+    const uint8_t *peer_key,
+    size_t peer_key_length,
+    const uint8_t *key_buffer,
+    size_t key_buffer_size,
+    uint8_t *shared_secret,
+    size_t shared_secret_size,
+    size_t *shared_secret_length)
+{
+    int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
+    psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED;
+    mbedtls_mpi P, G, X, GY, K;
+    const size_t calculated_shared_secret_size = peer_key_length;
+
+    if (peer_key_length != key_buffer_size ||
+        calculated_shared_secret_size > shared_secret_size) {
+        return PSA_ERROR_INVALID_ARGUMENT;
+    }
+
+    if (!PSA_KEY_TYPE_IS_DH_KEY_PAIR(psa_get_key_type(attributes))) {
+        return PSA_ERROR_INVALID_ARGUMENT;
+    }
+
+    mbedtls_mpi_init(&P); mbedtls_mpi_init(&G);
+    mbedtls_mpi_init(&X); mbedtls_mpi_init(&GY);
+    mbedtls_mpi_init(&K);
+
+    status = mbedtls_psa_ffdh_set_prime_generator(
+        PSA_BITS_TO_BYTES(attributes->bits), &P, &G);
+
+    if (status != PSA_SUCCESS) {
+        goto cleanup;
+    }
+
+    MBEDTLS_MPI_CHK(mbedtls_mpi_read_binary(&X, key_buffer,
+                                            key_buffer_size));
+
+    MBEDTLS_MPI_CHK(mbedtls_mpi_read_binary(&GY, peer_key,
+                                            peer_key_length));
+
+    /* Calculate shared secret public key: K = G^(XY) mod P = GY^X mod P */
+    MBEDTLS_MPI_CHK(mbedtls_mpi_exp_mod(&K, &GY, &X, &P, NULL));
+
+    MBEDTLS_MPI_CHK(mbedtls_mpi_write_binary(&K, shared_secret,
+                                             calculated_shared_secret_size));
+
+    *shared_secret_length = calculated_shared_secret_size;
+
+    ret = 0;
+
+cleanup:
+    mbedtls_mpi_free(&P); mbedtls_mpi_free(&G);
+    mbedtls_mpi_free(&X); mbedtls_mpi_free(&GY);
+    mbedtls_mpi_free(&K);
+
+    if (status == PSA_SUCCESS && ret != 0) {
+        status = mbedtls_to_psa_error(ret);
+    }
+
+    return status;
+}
+#endif /* MBEDTLS_PSA_BUILTIN_ALG_FFDH */
+
+#endif /* MBEDTLS_PSA_CRYPTO_C */
diff --git a/deps/LIEF/third-party/mbedtls/library/psa_crypto_ffdh.h b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/psa_crypto_ffdh.h
similarity index 100%
rename from deps/LIEF/third-party/mbedtls/library/psa_crypto_ffdh.h
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/psa_crypto_ffdh.h
diff --git a/deps/LIEF/third-party/mbedtls/library/psa_crypto_hash.c b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/psa_crypto_hash.c
similarity index 99%
rename from deps/LIEF/third-party/mbedtls/library/psa_crypto_hash.c
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/psa_crypto_hash.c
index eeb7666c1cb..909dd0ffafd 100644
--- a/deps/LIEF/third-party/mbedtls/library/psa_crypto_hash.c
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/psa_crypto_hash.c
@@ -6,7 +6,7 @@
  *  SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
  */

-#include "common.h"
+#include "tf_psa_crypto_common.h"

 #if defined(MBEDTLS_PSA_CRYPTO_C)

@@ -14,7 +14,7 @@
 #include "psa_crypto_core.h"
 #include "psa_crypto_hash.h"

-#include <mbedtls/error.h>
+#include <mbedtls/private/error_common.h>
 #include <string.h>

 #if defined(MBEDTLS_PSA_BUILTIN_HASH)
diff --git a/deps/LIEF/third-party/mbedtls/library/psa_crypto_hash.h b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/psa_crypto_hash.h
similarity index 100%
rename from deps/LIEF/third-party/mbedtls/library/psa_crypto_hash.h
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/psa_crypto_hash.h
diff --git a/deps/LIEF/third-party/mbedtls/library/psa_crypto_mac.c b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/psa_crypto_mac.c
similarity index 97%
rename from deps/LIEF/third-party/mbedtls/library/psa_crypto_mac.c
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/psa_crypto_mac.c
index 4464158f937..82a3a79daa7 100644
--- a/deps/LIEF/third-party/mbedtls/library/psa_crypto_mac.c
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/psa_crypto_mac.c
@@ -6,7 +6,7 @@
  *  SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
  */

-#include "common.h"
+#include "tf_psa_crypto_common.h"

 #if defined(MBEDTLS_PSA_CRYPTO_C)

@@ -16,7 +16,7 @@
 #include "psa_crypto_mac.h"
 #include <mbedtls/md.h>

-#include <mbedtls/error.h>
+#include <mbedtls/private/error_common.h>
 #include "mbedtls/constant_time.h"
 #include <string.h>

@@ -160,16 +160,6 @@ static psa_status_t cmac_setup(mbedtls_psa_mac_operation_t *operation,
 {
     int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;

-#if defined(PSA_WANT_KEY_TYPE_DES)
-    /* Mbed TLS CMAC does not accept 3DES with only two keys, nor does it accept
-     * to do CMAC with pure DES, so return NOT_SUPPORTED here. */
-    if (psa_get_key_type(attributes) == PSA_KEY_TYPE_DES &&
-        (psa_get_key_bits(attributes) == 64 ||
-         psa_get_key_bits(attributes) == 128)) {
-        return PSA_ERROR_NOT_SUPPORTED;
-    }
-#endif
-
     const mbedtls_cipher_info_t *cipher_info =
         mbedtls_cipher_info_from_psa(
             PSA_ALG_CMAC,
diff --git a/deps/LIEF/third-party/mbedtls/library/psa_crypto_mac.h b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/psa_crypto_mac.h
similarity index 100%
rename from deps/LIEF/third-party/mbedtls/library/psa_crypto_mac.h
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/psa_crypto_mac.h
diff --git a/deps/LIEF/third-party/mbedtls/library/psa_crypto_pake.c b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/psa_crypto_pake.c
similarity index 96%
rename from deps/LIEF/third-party/mbedtls/library/psa_crypto_pake.c
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/psa_crypto_pake.c
index 9ac2e8c486e..84767612294 100644
--- a/deps/LIEF/third-party/mbedtls/library/psa_crypto_pake.c
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/psa_crypto_pake.c
@@ -6,7 +6,7 @@
  *  SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
  */

-#include "common.h"
+#include "tf_psa_crypto_common.h"

 #if defined(MBEDTLS_PSA_CRYPTO_C)

@@ -15,11 +15,11 @@
 #include "psa_crypto_pake.h"
 #include "psa_crypto_slot_management.h"

-#include <mbedtls/ecjpake.h>
+#include <mbedtls/private/ecjpake.h>
 #include "psa_util_internal.h"

 #include <mbedtls/platform.h>
-#include <mbedtls/error.h>
+#include <mbedtls/private/error_common.h>
 #include <string.h>

 /*
@@ -28,7 +28,6 @@
  *   psa_pake_setup()
  *   |
  *   |-- In any order:
- *   |   | psa_pake_set_password_key()
  *   |   | psa_pake_set_user()
  *   |   | psa_pake_set_peer()
  *   |   | psa_pake_set_role()
@@ -63,7 +62,7 @@
  *   |           | psa_pake_input(PSA_PAKE_STEP_ZK_PUBLIC)
  *   |           | psa_pake_input(PSA_PAKE_STEP_ZK_PROOF)
  *   |
- *   psa_pake_get_implicit_key()
+ *   psa_pake_get_shared_key()
  *   psa_pake_abort()
  */

@@ -104,15 +103,15 @@
 #if defined(MBEDTLS_PSA_BUILTIN_ALG_JPAKE)
 static psa_status_t mbedtls_ecjpake_to_psa_error(int ret)
 {
+    /* Only legacy error codes need to be translated.
+     * Those are either a low-level error code (-127..-2)
+     * or a high-level error code (<= -0x1000). */
+    if (ret > -0x1000 && ret <= -0x80) {
+        return (psa_status_t) ret;
+    }
     switch (ret) {
-        case MBEDTLS_ERR_MPI_BAD_INPUT_DATA:
-        case MBEDTLS_ERR_ECP_BAD_INPUT_DATA:
         case MBEDTLS_ERR_ECP_INVALID_KEY:
-        case MBEDTLS_ERR_ECP_VERIFY_FAILED:
             return PSA_ERROR_DATA_INVALID;
-        case MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL:
-        case MBEDTLS_ERR_ECP_BUFFER_TOO_SMALL:
-            return PSA_ERROR_BUFFER_TOO_SMALL;
         case MBEDTLS_ERR_MD_FEATURE_UNAVAILABLE:
             return PSA_ERROR_NOT_SUPPORTED;
         case MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED:
@@ -221,11 +220,11 @@ psa_status_t mbedtls_psa_pake_setup(mbedtls_psa_pake_operation_t *operation,
     operation->alg = cipher_suite.algorithm;

 #if defined(MBEDTLS_PSA_BUILTIN_ALG_JPAKE)
-    if (cipher_suite.algorithm == PSA_ALG_JPAKE) {
+    if (PSA_ALG_IS_JPAKE(cipher_suite.algorithm)) {
         if (cipher_suite.type != PSA_PAKE_PRIMITIVE_TYPE_ECC ||
             cipher_suite.family != PSA_ECC_FAMILY_SECP_R1 ||
             cipher_suite.bits != 256 ||
-            cipher_suite.hash != PSA_ALG_SHA_256) {
+            PSA_ALG_GET_HASH(cipher_suite.algorithm) != PSA_ALG_SHA_256) {
             status = PSA_ERROR_NOT_SUPPORTED;
             goto error;
         }
@@ -305,7 +304,7 @@ static psa_status_t mbedtls_psa_pake_output_internal(
      * and data is sliced down by parsing the ECPoint records in order
      * to return the right parts on each step.
      */
-    if (operation->alg == PSA_ALG_JPAKE) {
+    if (PSA_ALG_IS_JPAKE(operation->alg)) {
         /* Initialize & write round on KEY_SHARE sequences */
         if (step == PSA_JPAKE_X1_STEP_KEY_SHARE) {
             ret = mbedtls_ecjpake_write_round_one(&operation->ctx.jpake,
@@ -425,7 +424,7 @@ static psa_status_t mbedtls_psa_pake_input_internal(
      *
      * This causes any input error to be only detected on the last step.
      */
-    if (operation->alg == PSA_ALG_JPAKE) {
+    if (PSA_ALG_IS_JPAKE(operation->alg)) {
         /*
          * Copy input to local buffer and format it as the Mbed TLS API
          * expects, i.e. as defined by draft-cragie-tls-ecjpake-01 section 7.
@@ -526,7 +525,7 @@ psa_status_t mbedtls_psa_pake_get_implicit_key(
     int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;

 #if defined(MBEDTLS_PSA_BUILTIN_ALG_JPAKE)
-    if (operation->alg == PSA_ALG_JPAKE) {
+    if (PSA_ALG_IS_JPAKE(operation->alg)) {
         ret = mbedtls_ecjpake_write_shared_key(&operation->ctx.jpake,
                                                output,
                                                output_size,
@@ -552,7 +551,7 @@ psa_status_t mbedtls_psa_pake_abort(mbedtls_psa_pake_operation_t *operation)
     operation->password_len = 0;

 #if defined(MBEDTLS_PSA_BUILTIN_ALG_JPAKE)
-    if (operation->alg == PSA_ALG_JPAKE) {
+    if (PSA_ALG_IS_JPAKE(operation->alg)) {
         operation->role = MBEDTLS_ECJPAKE_NONE;
         mbedtls_platform_zeroize(operation->buffer, sizeof(operation->buffer));
         operation->buffer_length = 0;
diff --git a/deps/LIEF/third-party/mbedtls/library/psa_crypto_pake.h b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/psa_crypto_pake.h
similarity index 100%
rename from deps/LIEF/third-party/mbedtls/library/psa_crypto_pake.h
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/psa_crypto_pake.h
diff --git a/deps/LIEF/third-party/mbedtls/library/psa_crypto_rsa.c b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/psa_crypto_rsa.c
similarity index 99%
rename from deps/LIEF/third-party/mbedtls/library/psa_crypto_rsa.c
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/psa_crypto_rsa.c
index 38dc3b8edc2..ddf4ce1feb6 100644
--- a/deps/LIEF/third-party/mbedtls/library/psa_crypto_rsa.c
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/psa_crypto_rsa.c
@@ -6,7 +6,7 @@
  *  SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
  */

-#include "common.h"
+#include "tf_psa_crypto_common.h"

 #if defined(MBEDTLS_PSA_CRYPTO_C)

@@ -18,12 +18,13 @@
 #include "psa_crypto_hash.h"
 #include "mbedtls/psa_util.h"

+#include <limits.h>
 #include <stdlib.h>
 #include <string.h>
 #include "mbedtls/platform.h"

-#include <mbedtls/rsa.h>
-#include <mbedtls/error.h>
+#include <mbedtls/private/rsa.h>
+#include <mbedtls/private/error_common.h>
 #include "rsa_internal.h"

 #if defined(MBEDTLS_PSA_BUILTIN_ALG_RSA_PKCS1V15_CRYPT) || \
@@ -204,7 +205,6 @@ psa_status_t mbedtls_psa_rsa_export_public_key(
                                             data_size,
                                             data_length);
     }
-
     mbedtls_rsa_free(rsa);
     mbedtls_free(rsa);

diff --git a/deps/LIEF/third-party/mbedtls/library/psa_crypto_rsa.h b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/psa_crypto_rsa.h
similarity index 99%
rename from deps/LIEF/third-party/mbedtls/library/psa_crypto_rsa.h
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/psa_crypto_rsa.h
index 1a780006a90..87f64b471c5 100644
--- a/deps/LIEF/third-party/mbedtls/library/psa_crypto_rsa.h
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/psa_crypto_rsa.h
@@ -10,7 +10,7 @@
 #define PSA_CRYPTO_RSA_H

 #include <psa/crypto.h>
-#include <mbedtls/rsa.h>
+#include <mbedtls/private/rsa.h>

 /** Load the contents of a key buffer into an internal RSA representation
  *
diff --git a/deps/LIEF/third-party/mbedtls/library/psa_util.c b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/psa_util.c
similarity index 89%
rename from deps/LIEF/third-party/mbedtls/library/psa_util.c
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/psa_util.c
index 014e648ad11..08e47002bbc 100644
--- a/deps/LIEF/third-party/mbedtls/library/psa_util.c
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/psa_util.c
@@ -6,10 +6,10 @@
  *  SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
  */

-#include "common.h"
+#include "tf_psa_crypto_common.h"

 /* This is needed for MBEDTLS_ERR_XXX macros */
-#include <mbedtls/error.h>
+#include <mbedtls/private/error_common.h>

 #if defined(MBEDTLS_ASN1_WRITE_C)
 #include <mbedtls/asn1write.h>
@@ -28,25 +28,23 @@
 #if defined(MBEDTLS_LMS_C)
 #include <mbedtls/lms.h>
 #endif
-#if defined(MBEDTLS_SSL_TLS_C) && \
-    (defined(MBEDTLS_USE_PSA_CRYPTO) || defined(MBEDTLS_SSL_PROTO_TLS1_3))
-#include <mbedtls/ssl.h>
-#endif
 #if defined(PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY) ||    \
     defined(PSA_WANT_KEY_TYPE_RSA_KEY_PAIR_BASIC)
-#include <mbedtls/rsa.h>
+#include <mbedtls/private/rsa.h>
 #endif
-#if defined(MBEDTLS_USE_PSA_CRYPTO) && \
-    defined(PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY)
-#include <mbedtls/ecp.h>
+#if defined(PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY)
+#include <mbedtls/private/ecp.h>
 #endif
 #if defined(MBEDTLS_PK_C)
 #include <mbedtls/pk.h>
+#if defined(MBEDTLS_PK_HAVE_PRIVATE_HEADER)
+#include <mbedtls/private/pk_private.h>
+#endif /* MBEDTLS_PK_HAVE_PRIVATE_HEADER */
 #endif
 #if defined(MBEDTLS_BLOCK_CIPHER_SOME_PSA)
-#include <mbedtls/cipher.h>
+#include <mbedtls/private/cipher.h>
 #endif
-#include <mbedtls/entropy.h>
+#include <mbedtls/private/entropy.h>

 /* PSA_SUCCESS is kept at the top of each error table since
  * it's the most common status when everything functions properly. */
@@ -79,20 +77,6 @@ const mbedtls_error_pair_t psa_to_lms_errors[] =
 };
 #endif

-#if defined(MBEDTLS_SSL_TLS_C) && \
-    (defined(MBEDTLS_USE_PSA_CRYPTO) || defined(MBEDTLS_SSL_PROTO_TLS1_3))
-const mbedtls_error_pair_t psa_to_ssl_errors[] =
-{
-    { PSA_SUCCESS,                     0 },
-    { PSA_ERROR_INSUFFICIENT_MEMORY,   MBEDTLS_ERR_SSL_ALLOC_FAILED },
-    { PSA_ERROR_NOT_SUPPORTED,         MBEDTLS_ERR_SSL_FEATURE_UNAVAILABLE },
-    { PSA_ERROR_INVALID_SIGNATURE,     MBEDTLS_ERR_SSL_INVALID_MAC },
-    { PSA_ERROR_INVALID_ARGUMENT,      MBEDTLS_ERR_SSL_BAD_INPUT_DATA },
-    { PSA_ERROR_BAD_STATE,             MBEDTLS_ERR_SSL_INTERNAL_ERROR },
-    { PSA_ERROR_BUFFER_TOO_SMALL,      MBEDTLS_ERR_SSL_BUFFER_TOO_SMALL }
-};
-#endif
-
 #if defined(PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY) ||    \
     defined(PSA_WANT_KEY_TYPE_RSA_KEY_PAIR_BASIC)
 const mbedtls_error_pair_t psa_to_pk_rsa_errors[] =
@@ -108,8 +92,7 @@ const mbedtls_error_pair_t psa_to_pk_rsa_errors[] =
 };
 #endif

-#if defined(MBEDTLS_USE_PSA_CRYPTO) && \
-    defined(PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY)
+#if defined(PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY)
 const mbedtls_error_pair_t psa_to_pk_ecdsa_errors[] =
 {
     { PSA_SUCCESS,                     0 },
@@ -190,65 +173,57 @@ psa_ecc_family_t mbedtls_ecc_group_to_psa(mbedtls_ecp_group_id grpid,
                                           size_t *bits)
 {
     switch (grpid) {
-#if defined(MBEDTLS_ECP_HAVE_SECP192R1)
+#if defined(PSA_WANT_ECC_SECP_R1_192)
         case MBEDTLS_ECP_DP_SECP192R1:
             *bits = 192;
             return PSA_ECC_FAMILY_SECP_R1;
 #endif
-#if defined(MBEDTLS_ECP_HAVE_SECP224R1)
-        case MBEDTLS_ECP_DP_SECP224R1:
-            *bits = 224;
-            return PSA_ECC_FAMILY_SECP_R1;
-#endif
-#if defined(MBEDTLS_ECP_HAVE_SECP256R1)
+#if defined(PSA_WANT_ECC_SECP_R1_256)
         case MBEDTLS_ECP_DP_SECP256R1:
             *bits = 256;
             return PSA_ECC_FAMILY_SECP_R1;
 #endif
-#if defined(MBEDTLS_ECP_HAVE_SECP384R1)
+#if defined(PSA_WANT_ECC_SECP_R1_384)
         case MBEDTLS_ECP_DP_SECP384R1:
             *bits = 384;
             return PSA_ECC_FAMILY_SECP_R1;
 #endif
-#if defined(MBEDTLS_ECP_HAVE_SECP521R1)
+#if defined(PSA_WANT_ECC_SECP_R1_521)
         case MBEDTLS_ECP_DP_SECP521R1:
             *bits = 521;
             return PSA_ECC_FAMILY_SECP_R1;
 #endif
-#if defined(MBEDTLS_ECP_HAVE_BP256R1)
+#if defined(PSA_WANT_ECC_BRAINPOOL_P_R1_256)
         case MBEDTLS_ECP_DP_BP256R1:
             *bits = 256;
             return PSA_ECC_FAMILY_BRAINPOOL_P_R1;
 #endif
-#if defined(MBEDTLS_ECP_HAVE_BP384R1)
+#if defined(PSA_WANT_ECC_BRAINPOOL_P_R1_384)
         case MBEDTLS_ECP_DP_BP384R1:
             *bits = 384;
             return PSA_ECC_FAMILY_BRAINPOOL_P_R1;
 #endif
-#if defined(MBEDTLS_ECP_HAVE_BP512R1)
+#if defined(PSA_WANT_ECC_BRAINPOOL_P_R1_512)
         case MBEDTLS_ECP_DP_BP512R1:
             *bits = 512;
             return PSA_ECC_FAMILY_BRAINPOOL_P_R1;
 #endif
-#if defined(MBEDTLS_ECP_HAVE_CURVE25519)
+#if defined(PSA_WANT_ECC_MONTGOMERY_255)
         case MBEDTLS_ECP_DP_CURVE25519:
             *bits = 255;
             return PSA_ECC_FAMILY_MONTGOMERY;
 #endif
-#if defined(MBEDTLS_ECP_HAVE_SECP192K1)
+#if defined(PSA_WANT_ECC_SECP_K1_192)
         case MBEDTLS_ECP_DP_SECP192K1:
             *bits = 192;
             return PSA_ECC_FAMILY_SECP_K1;
 #endif
-#if defined(MBEDTLS_ECP_HAVE_SECP224K1)
-    /* secp224k1 is not and will not be supported in PSA (#3541). */
-#endif
-#if defined(MBEDTLS_ECP_HAVE_SECP256K1)
+#if defined(PSA_WANT_ECC_SECP_K1_256)
         case MBEDTLS_ECP_DP_SECP256K1:
             *bits = 256;
             return PSA_ECC_FAMILY_SECP_K1;
 #endif
-#if defined(MBEDTLS_ECP_HAVE_CURVE448)
+#if defined(PSA_WANT_ECC_MONTGOMERY_448)
         case MBEDTLS_ECP_DP_CURVE448:
             *bits = 448;
             return PSA_ECC_FAMILY_MONTGOMERY;
@@ -269,10 +244,6 @@ mbedtls_ecp_group_id mbedtls_ecc_group_from_psa(psa_ecc_family_t family,
                 case 192:
                     return MBEDTLS_ECP_DP_SECP192R1;
 #endif
-#if defined(PSA_WANT_ECC_SECP_R1_224)
-                case 224:
-                    return MBEDTLS_ECP_DP_SECP224R1;
-#endif
 #if defined(PSA_WANT_ECC_SECP_R1_256)
                 case 256:
                     return MBEDTLS_ECP_DP_SECP256R1;
@@ -324,9 +295,6 @@ mbedtls_ecp_group_id mbedtls_ecc_group_from_psa(psa_ecc_family_t family,
                 case 192:
                     return MBEDTLS_ECP_DP_SECP192K1;
 #endif
-#if defined(PSA_WANT_ECC_SECP_K1_224)
-            /* secp224k1 is not and will not be supported in PSA (#3541). */
-#endif
 #if defined(PSA_WANT_ECC_SECP_K1_256)
                 case 256:
                     return MBEDTLS_ECP_DP_SECP256K1;
@@ -365,7 +333,7 @@ int mbedtls_psa_get_random(void *p_rng,

 #endif /* MBEDTLS_PSA_CRYPTO_CLIENT */

-#if defined(MBEDTLS_PSA_UTIL_HAVE_ECDSA)
+#if defined(PSA_HAVE_ALG_SOME_ECDSA)

 /**
  * \brief  Convert a single raw coordinate to DER ASN.1 format. The output der
@@ -611,4 +579,4 @@ int mbedtls_ecdsa_der_to_raw(size_t bits, const unsigned char *der, size_t der_l
     return 0;
 }

-#endif /* MBEDTLS_PSA_UTIL_HAVE_ECDSA */
+#endif /* PSA_HAVE_ALG_SOME_ECDSA */
diff --git a/deps/LIEF/third-party/mbedtls/library/psa_util_internal.h b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/psa_util_internal.h
similarity index 66%
rename from deps/LIEF/third-party/mbedtls/library/psa_util_internal.h
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/psa_util_internal.h
index 70a08a02cd8..76e52fea517 100644
--- a/deps/LIEF/third-party/mbedtls/library/psa_util_internal.h
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/psa_util_internal.h
@@ -16,6 +16,12 @@

 #include "psa/crypto.h"

+#if defined(PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY)
+
+#include "mbedtls/private/ecp.h"
+
+#endif /* PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY */
+
 #if defined(MBEDTLS_PSA_CRYPTO_CLIENT)

 /*************************************************************************
@@ -60,17 +66,12 @@ extern const mbedtls_error_pair_t psa_to_cipher_errors[4];
 extern const mbedtls_error_pair_t psa_to_lms_errors[3];
 #endif

-#if defined(MBEDTLS_USE_PSA_CRYPTO) || defined(MBEDTLS_SSL_PROTO_TLS1_3)
-extern const mbedtls_error_pair_t psa_to_ssl_errors[7];
-#endif
-
 #if defined(PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY) ||    \
     defined(PSA_WANT_KEY_TYPE_RSA_KEY_PAIR_BASIC)
 extern const mbedtls_error_pair_t psa_to_pk_rsa_errors[8];
 #endif

-#if defined(MBEDTLS_USE_PSA_CRYPTO) && \
-    defined(PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY)
+#if defined(PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY)
 extern const mbedtls_error_pair_t psa_to_pk_ecdsa_errors[7];
 #endif

@@ -97,4 +98,35 @@ int psa_pk_status_to_mbedtls(psa_status_t status);
                           fallback_f)

 #endif /* MBEDTLS_PSA_CRYPTO_CLIENT */
+#if defined(PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY)
+/** Convert an ECC curve identifier from the Mbed TLS encoding to PSA.
+ *
+ * \param grpid         An Mbed TLS elliptic curve identifier
+ *                      (`MBEDTLS_ECP_DP_xxx`).
+ * \param[out] bits     On success the bit size of the curve; 0 on failure.
+ *
+ * \return              If the curve is supported in the PSA API, this function
+ *                      returns the proper PSA curve identifier
+ *                      (`PSA_ECC_FAMILY_xxx`). This holds even if the curve is
+ *                      not supported by the ECP module.
+ * \return              \c 0 if the curve is not supported in the PSA API.
+ */
+psa_ecc_family_t mbedtls_ecc_group_to_psa(mbedtls_ecp_group_id grpid,
+                                          size_t *bits);
+
+/** Convert an ECC curve identifier from the PSA encoding to Mbed TLS.
+ *
+ * \param family        A PSA elliptic curve family identifier
+ *                      (`PSA_ECC_FAMILY_xxx`).
+ * \param bits          The bit-length of a private key on \p curve.
+ *
+ * \return              If the curve is supported in the PSA API, this function
+ *                      returns the corresponding Mbed TLS elliptic curve
+ *                      identifier (`MBEDTLS_ECP_DP_xxx`).
+ * \return              #MBEDTLS_ECP_DP_NONE if the combination of \c curve
+ *                      and \p bits is not supported.
+ */
+mbedtls_ecp_group_id mbedtls_ecc_group_from_psa(psa_ecc_family_t family,
+                                                size_t bits);
+#endif /* PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY */
 #endif /* MBEDTLS_PSA_UTIL_INTERNAL_H */
diff --git a/deps/LIEF/third-party/mbedtls/library/ripemd160.c b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/ripemd160.c
similarity index 97%
rename from deps/LIEF/third-party/mbedtls/library/ripemd160.c
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/ripemd160.c
index b4fc3cdba1f..b63e0859a51 100644
--- a/deps/LIEF/third-party/mbedtls/library/ripemd160.c
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/ripemd160.c
@@ -11,20 +11,18 @@
  *  http://ehash.iaik.tugraz.at/wiki/RIPEMD-160
  */

-#include "common.h"
+#include "tf_psa_crypto_common.h"

 #if defined(MBEDTLS_RIPEMD160_C)

-#include "mbedtls/ripemd160.h"
+#include "mbedtls/private/ripemd160.h"
 #include "mbedtls/platform_util.h"
-#include "mbedtls/error.h"
+#include "mbedtls/private/error_common.h"

 #include <string.h>

 #include "mbedtls/platform.h"

-#if !defined(MBEDTLS_RIPEMD160_ALT)
-
 void mbedtls_ripemd160_init(mbedtls_ripemd160_context *ctx)
 {
     memset(ctx, 0, sizeof(mbedtls_ripemd160_context));
@@ -61,13 +59,11 @@ int mbedtls_ripemd160_starts(mbedtls_ripemd160_context *ctx)

     return 0;
 }
-
-#if !defined(MBEDTLS_RIPEMD160_PROCESS_ALT)
 /*
  * Process one block
  */
-int mbedtls_internal_ripemd160_process(mbedtls_ripemd160_context *ctx,
-                                       const unsigned char data[64])
+static int mbedtls_internal_ripemd160_process(mbedtls_ripemd160_context *ctx,
+                                              const unsigned char data[64])
 {
     struct {
         uint32_t A, B, C, D, E, Ap, Bp, Cp, Dp, Ep, X[16];
@@ -258,8 +254,6 @@ int mbedtls_internal_ripemd160_process(mbedtls_ripemd160_context *ctx,
     return 0;
 }

-#endif /* !MBEDTLS_RIPEMD160_PROCESS_ALT */
-
 /*
  * RIPEMD-160 process buffer
  */
@@ -365,8 +359,6 @@ exit:
     return ret;
 }

-#endif /* ! MBEDTLS_RIPEMD160_ALT */
-
 /*
  * output = RIPEMD-160( input buffer )
  */
diff --git a/deps/LIEF/third-party/mbedtls/library/rsa.c b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/rsa.c
similarity index 97%
rename from deps/LIEF/third-party/mbedtls/library/rsa.c
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/rsa.c
index 557faaf3635..36ce9a9444d 100644
--- a/deps/LIEF/third-party/mbedtls/library/rsa.c
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/rsa.c
@@ -23,19 +23,19 @@
  *
  */

-#include "common.h"
+#include "tf_psa_crypto_common.h"

 #if defined(MBEDTLS_RSA_C)

-#include "mbedtls/rsa.h"
+#include "mbedtls/private/rsa.h"
 #include "bignum_core.h"
 #include "bignum_internal.h"
 #include "rsa_alt_helpers.h"
 #include "rsa_internal.h"
-#include "mbedtls/oid.h"
+#include "crypto_oid.h"
 #include "mbedtls/asn1write.h"
 #include "mbedtls/platform_util.h"
-#include "mbedtls/error.h"
+#include "mbedtls/private/error_common.h"
 #include "constant_time_internal.h"
 #include "mbedtls/constant_time.h"
 #include "md_psa.h"
@@ -156,7 +156,7 @@ int mbedtls_rsa_parse_key(mbedtls_rsa_context *rsa, const unsigned char *key, si
         goto cleanup;
     }

-#if !defined(MBEDTLS_RSA_NO_CRT) && !defined(MBEDTLS_RSA_ALT)
+#if !defined(MBEDTLS_RSA_NO_CRT)
     /*
      * The RSA CRT parameters DP, DQ and QP are nominally redundant, in
      * that they can be easily recomputed from D, P and Q. However by
@@ -412,7 +412,7 @@ end_of_export:
     return (int) len;
 }

-#if defined(MBEDTLS_PKCS1_V15) && defined(MBEDTLS_RSA_C) && !defined(MBEDTLS_RSA_ALT)
+#if defined(MBEDTLS_PKCS1_V15) && defined(MBEDTLS_RSA_C)

 /** This function performs the unpadding part of a PKCS#1 v1.5 decryption
  *  operation (EME-PKCS1-v1_5 decoding).
@@ -565,9 +565,7 @@ static int mbedtls_ct_rsaes_pkcs1_v15_unpadding(unsigned char *input,
     return ret;
 }

-#endif /* MBEDTLS_PKCS1_V15 && MBEDTLS_RSA_C && ! MBEDTLS_RSA_ALT */
-
-#if !defined(MBEDTLS_RSA_ALT)
+#endif /* MBEDTLS_PKCS1_V15 && MBEDTLS_RSA_C */

 int mbedtls_rsa_import(mbedtls_rsa_context *ctx,
                        const mbedtls_mpi *N,
@@ -1047,7 +1045,7 @@ int mbedtls_rsa_gen_key(mbedtls_rsa_context *ctx,
                         unsigned int nbits, int exponent)
 {
     int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
-    mbedtls_mpi H, G, L;
+    mbedtls_mpi H;
     int prime_quality = 0;

     /*
@@ -1060,8 +1058,6 @@ int mbedtls_rsa_gen_key(mbedtls_rsa_context *ctx,
     }

     mbedtls_mpi_init(&H);
-    mbedtls_mpi_init(&G);
-    mbedtls_mpi_init(&L);

     if (exponent < 3 || nbits % 2 != 0) {
         ret = MBEDTLS_ERR_RSA_BAD_INPUT_DATA;
@@ -1099,35 +1095,28 @@ int mbedtls_rsa_gen_key(mbedtls_rsa_context *ctx,
             mbedtls_mpi_swap(&ctx->P, &ctx->Q);
         }

-        /* Temporarily replace P,Q by P-1, Q-1 */
-        MBEDTLS_MPI_CHK(mbedtls_mpi_sub_int(&ctx->P, &ctx->P, 1));
-        MBEDTLS_MPI_CHK(mbedtls_mpi_sub_int(&ctx->Q, &ctx->Q, 1));
-        MBEDTLS_MPI_CHK(mbedtls_mpi_mul_mpi(&H, &ctx->P, &ctx->Q));
-
-        /* check GCD( E, (P-1)*(Q-1) ) == 1 (FIPS 186-4 §B.3.1 criterion 2(a)) */
-        MBEDTLS_MPI_CHK(mbedtls_mpi_gcd(&G, &ctx->E, &H));
-        if (mbedtls_mpi_cmp_int(&G, 1) != 0) {
+        /* Compute D = E^-1 mod LCM(P-1, Q-1) (FIPS 186-4 §B.3.1 criterion 3(b))
+         * if it exists (FIPS 186-4 §B.3.1 criterion 2(a)) */
+        ret = mbedtls_rsa_deduce_private_exponent(&ctx->P, &ctx->Q, &ctx->E, &ctx->D);
+        if (ret == MBEDTLS_ERR_MPI_NOT_ACCEPTABLE) {
+            mbedtls_mpi_lset(&ctx->D, 0); /* needed for the next call */
             continue;
         }
+        if (ret != 0) {
+            goto cleanup;
+        }

-        /* compute smallest possible D = E^-1 mod LCM(P-1, Q-1) (FIPS 186-4 §B.3.1 criterion 3(b)) */
-        MBEDTLS_MPI_CHK(mbedtls_mpi_gcd(&G, &ctx->P, &ctx->Q));
-        MBEDTLS_MPI_CHK(mbedtls_mpi_div_mpi(&L, NULL, &H, &G));
-        MBEDTLS_MPI_CHK(mbedtls_mpi_inv_mod(&ctx->D, &ctx->E, &L));
-
-        if (mbedtls_mpi_bitlen(&ctx->D) <= ((nbits + 1) / 2)) {      // (FIPS 186-4 §B.3.1 criterion 3(a))
+        /* (FIPS 186-4 §B.3.1 criterion 3(a)) */
+        if (mbedtls_mpi_bitlen(&ctx->D) <= ((nbits + 1) / 2)) {
             continue;
         }

         break;
     } while (1);

-    /* Restore P,Q */
-    MBEDTLS_MPI_CHK(mbedtls_mpi_add_int(&ctx->P,  &ctx->P, 1));
-    MBEDTLS_MPI_CHK(mbedtls_mpi_add_int(&ctx->Q,  &ctx->Q, 1));

+    /* N = P * Q */
     MBEDTLS_MPI_CHK(mbedtls_mpi_mul_mpi(&ctx->N, &ctx->P, &ctx->Q));
-
     ctx->len = mbedtls_mpi_size(&ctx->N);

 #if !defined(MBEDTLS_RSA_NO_CRT)
@@ -1146,8 +1135,6 @@ int mbedtls_rsa_gen_key(mbedtls_rsa_context *ctx,
 cleanup:

     mbedtls_mpi_free(&H);
-    mbedtls_mpi_free(&G);
-    mbedtls_mpi_free(&L);

     if (ret != 0) {
         mbedtls_rsa_free(ctx);
@@ -1304,33 +1291,16 @@ static int rsa_prepare_blinding(mbedtls_rsa_context *ctx,
     }

     /* Unblinding value: Vf = random number, invertible mod N */
+    mbedtls_mpi_lset(&R, 0);
     do {
         if (count++ > 10) {
             ret = MBEDTLS_ERR_RSA_RNG_FAILED;
             goto cleanup;
         }

-        MBEDTLS_MPI_CHK(mbedtls_mpi_fill_random(&ctx->Vf, ctx->len - 1, f_rng, p_rng));
-
-        /* Compute Vf^-1 as R * (R Vf)^-1 to avoid leaks from inv_mod. */
-        MBEDTLS_MPI_CHK(mbedtls_mpi_fill_random(&R, ctx->len - 1, f_rng, p_rng));
-        MBEDTLS_MPI_CHK(mbedtls_mpi_mul_mpi(&ctx->Vi, &ctx->Vf, &R));
-        MBEDTLS_MPI_CHK(mbedtls_mpi_mod_mpi(&ctx->Vi, &ctx->Vi, &ctx->N));
-
-        /* At this point, Vi is invertible mod N if and only if both Vf and R
-         * are invertible mod N. If one of them isn't, we don't need to know
-         * which one, we just loop and choose new values for both of them.
-         * (Each iteration succeeds with overwhelming probability.) */
-        ret = mbedtls_mpi_inv_mod(&ctx->Vi, &ctx->Vi, &ctx->N);
-        if (ret != 0 && ret != MBEDTLS_ERR_MPI_NOT_ACCEPTABLE) {
-            goto cleanup;
-        }
-
-    } while (ret == MBEDTLS_ERR_MPI_NOT_ACCEPTABLE);
-
-    /* Finish the computation of Vf^-1 = R * (R Vf)^-1 */
-    MBEDTLS_MPI_CHK(mbedtls_mpi_mul_mpi(&ctx->Vi, &ctx->Vi, &R));
-    MBEDTLS_MPI_CHK(mbedtls_mpi_mod_mpi(&ctx->Vi, &ctx->Vi, &ctx->N));
+        MBEDTLS_MPI_CHK(mbedtls_mpi_random(&ctx->Vf, 1, &ctx->N, f_rng, p_rng));
+        MBEDTLS_MPI_CHK(mbedtls_mpi_gcd_modinv_odd(&R, &ctx->Vi, &ctx->Vf, &ctx->N));
+    } while (mbedtls_mpi_cmp_int(&R, 1) != 0);

     /* Blinding value: Vi = Vf^(-e) mod N
      * (Vi already contains Vf^-1 at this point) */
@@ -2842,8 +2812,6 @@ void mbedtls_rsa_free(mbedtls_rsa_context *ctx)
 #endif
 }

-#endif /* !MBEDTLS_RSA_ALT */
-
 #if defined(MBEDTLS_SELF_TEST)


@@ -2923,7 +2891,7 @@ int mbedtls_rsa_self_test(int verbose)
     unsigned char rsa_plaintext[PT_LEN];
     unsigned char rsa_decrypted[PT_LEN];
     unsigned char rsa_ciphertext[KEY_LEN];
-#if defined(MBEDTLS_MD_CAN_SHA1)
+#if defined(PSA_WANT_ALG_SHA_1)
     unsigned char sha1sum[20];
 #endif

@@ -3004,7 +2972,7 @@ int mbedtls_rsa_self_test(int verbose)
         mbedtls_printf("passed\n");
     }

-#if defined(MBEDTLS_MD_CAN_SHA1)
+#if defined(PSA_WANT_ALG_SHA_1)
     if (verbose != 0) {
         mbedtls_printf("  PKCS#1 data sign  : ");
     }
@@ -3046,7 +3014,7 @@ int mbedtls_rsa_self_test(int verbose)
     if (verbose != 0) {
         mbedtls_printf("passed\n");
     }
-#endif /* MBEDTLS_MD_CAN_SHA1 */
+#endif /* PSA_WANT_ALG_SHA_1 */

     if (verbose != 0) {
         mbedtls_printf("\n");
diff --git a/deps/LIEF/third-party/mbedtls/library/rsa_alt_helpers.c b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/rsa_alt_helpers.c
similarity index 94%
rename from deps/LIEF/third-party/mbedtls/library/rsa_alt_helpers.c
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/rsa_alt_helpers.c
index 5c265a9921b..6ab058a71e3 100644
--- a/deps/LIEF/third-party/mbedtls/library/rsa_alt_helpers.c
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/rsa_alt_helpers.c
@@ -6,12 +6,13 @@
  *
  */

-#include "common.h"
+#include "tf_psa_crypto_common.h"

 #if defined(MBEDTLS_RSA_C)

-#include "mbedtls/rsa.h"
-#include "mbedtls/bignum.h"
+#include "mbedtls/private/rsa.h"
+#include "mbedtls/private/bignum.h"
+#include "bignum_internal.h"
 #include "rsa_alt_helpers.h"

 /*
@@ -117,7 +118,7 @@ int mbedtls_rsa_deduce_primes(mbedtls_mpi const *N,
         MBEDTLS_MPI_CHK(mbedtls_mpi_lset(&K, primes[attempt]));

         /* Check if gcd(K,N) = 1 */
-        MBEDTLS_MPI_CHK(mbedtls_mpi_gcd(P, &K, N));
+        MBEDTLS_MPI_CHK(mbedtls_mpi_gcd_modinv_odd(P, NULL, &K, N));
         if (mbedtls_mpi_cmp_int(P, 1) != 0) {
             continue;
         }
@@ -136,7 +137,7 @@ int mbedtls_rsa_deduce_primes(mbedtls_mpi const *N,
             }

             MBEDTLS_MPI_CHK(mbedtls_mpi_add_int(&K, &K, 1));
-            MBEDTLS_MPI_CHK(mbedtls_mpi_gcd(P, &K, N));
+            MBEDTLS_MPI_CHK(mbedtls_mpi_gcd_modinv_odd(P, NULL, &K, N));

             if (mbedtls_mpi_cmp_int(P, 1) ==  1 &&
                 mbedtls_mpi_cmp_mpi(P, N) == -1) {
@@ -197,6 +198,10 @@ int mbedtls_rsa_deduce_private_exponent(mbedtls_mpi const *P,
         return MBEDTLS_ERR_MPI_BAD_INPUT_DATA;
     }

+    if (mbedtls_mpi_get_bit(E, 0) != 1) {
+        return MBEDTLS_ERR_MPI_NOT_ACCEPTABLE;
+    }
+
     mbedtls_mpi_init(&K);
     mbedtls_mpi_init(&L);

@@ -211,8 +216,11 @@ int mbedtls_rsa_deduce_private_exponent(mbedtls_mpi const *P,
     MBEDTLS_MPI_CHK(mbedtls_mpi_mul_mpi(&K, &K, &L));
     MBEDTLS_MPI_CHK(mbedtls_mpi_div_mpi(&K, NULL, &K, D));

-    /* Compute modular inverse of E in LCM(P-1, Q-1) */
-    MBEDTLS_MPI_CHK(mbedtls_mpi_inv_mod(D, E, &K));
+    /* Compute modular inverse of E mod LCM(P-1, Q-1)
+     * This is FIPS 186-4 §B.3.1 criterion 3(b).
+     * This will return MBEDTLS_ERR_MPI_NOT_ACCEPTABLE if E is not coprime to
+     * (P-1)(Q-1), also validating FIPS 186-4 §B.3.1 criterion 2(a). */
+    MBEDTLS_MPI_CHK(mbedtls_mpi_inv_mod_even_in_range(D, E, &K));

 cleanup:

@@ -244,7 +252,7 @@ int mbedtls_rsa_deduce_crt(const mbedtls_mpi *P, const mbedtls_mpi *Q,

     /* QP = Q^{-1} mod P */
     if (QP != NULL) {
-        MBEDTLS_MPI_CHK(mbedtls_mpi_inv_mod(QP, Q, P));
+        MBEDTLS_MPI_CHK(mbedtls_mpi_inv_mod_odd(QP, Q, P));
     }

 cleanup:
diff --git a/deps/LIEF/third-party/mbedtls/library/rsa_alt_helpers.h b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/rsa_alt_helpers.h
similarity index 90%
rename from deps/LIEF/third-party/mbedtls/library/rsa_alt_helpers.h
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/rsa_alt_helpers.h
index 052b02491e1..b26edb34e45 100644
--- a/deps/LIEF/third-party/mbedtls/library/rsa_alt_helpers.h
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/rsa_alt_helpers.h
@@ -3,6 +3,12 @@
  *
  * \brief Context-independent RSA helper functions
  *
+ *  Please note: The below explanation is historical and is no longer relevant
+ *  due to there being no compelling reason to keep these functions separate
+ *  since the RSA alt interface was removed. A future refactoring will address
+ *  this which is tracked by the following issue:
+ *  https://github.com/Mbed-TLS/TF-PSA-Crypto/issues/105.
+ *
  *  This module declares some RSA-related helper functions useful when
  *  implementing the RSA interface. These functions are provided in a separate
  *  compilation unit in order to make it easy for designers of alternative RSA
@@ -41,9 +47,9 @@
 #ifndef MBEDTLS_RSA_ALT_HELPERS_H
 #define MBEDTLS_RSA_ALT_HELPERS_H

-#include "mbedtls/build_info.h"
+#include "tf-psa-crypto/build_info.h"

-#include "mbedtls/bignum.h"
+#include "mbedtls/private/bignum.h"

 #ifdef __cplusplus
 extern "C" {
@@ -89,12 +95,15 @@ int mbedtls_rsa_deduce_primes(mbedtls_mpi const *N, mbedtls_mpi const *E,
  * \param P        First prime factor of RSA modulus
  * \param Q        Second prime factor of RSA modulus
  * \param E        RSA public exponent
- * \param D        Pointer to MPI holding the private exponent on success.
- *
- * \return
- *                 - 0 if successful. In this case, D is set to a simultaneous
- *                   modular inverse of E modulo both P-1 and Q-1.
- *                 - A non-zero error code otherwise.
+ * \param D        Pointer to MPI holding the private exponent on success,
+ *                 i.e. the modular inverse of E modulo LCM(P-1,Q-1).
+ *
+ * \return         \c 0 if successful.
+ * \return         #MBEDTLS_ERR_MPI_ALLOC_FAILED if a memory allocation failed.
+ * \return         #MBEDTLS_ERR_MPI_NOT_ACCEPTABLE if E is not coprime to P-1
+ *                 and Q-1, that is, if GCD( E, (P-1)*(Q-1) ) != 1.
+ * \return         #MBEDTLS_ERR_MPI_BAD_INPUT_DATA if inputs are otherwise
+ *                 invalid.
  *
  * \note           This function does not check whether P and Q are primes.
  *
diff --git a/deps/LIEF/third-party/mbedtls/library/rsa_internal.h b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/rsa_internal.h
similarity index 99%
rename from deps/LIEF/third-party/mbedtls/library/rsa_internal.h
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/rsa_internal.h
index f79c3b71228..fd52b9d9d8f 100644
--- a/deps/LIEF/third-party/mbedtls/library/rsa_internal.h
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/rsa_internal.h
@@ -14,7 +14,7 @@
 #ifndef MBEDTLS_RSA_INTERNAL_H
 #define MBEDTLS_RSA_INTERNAL_H

-#include "mbedtls/rsa.h"
+#include "mbedtls/private/rsa.h"
 #include "mbedtls/asn1.h"

 /**
diff --git a/deps/LIEF/third-party/mbedtls/library/sha1.c b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/sha1.c
similarity index 97%
rename from deps/LIEF/third-party/mbedtls/library/sha1.c
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/sha1.c
index dfbe481f39a..643206af7f1 100644
--- a/deps/LIEF/third-party/mbedtls/library/sha1.c
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/sha1.c
@@ -10,20 +10,18 @@
  *  http://www.itl.nist.gov/fipspubs/fip180-1.htm
  */

-#include "common.h"
+#include "tf_psa_crypto_common.h"

 #if defined(MBEDTLS_SHA1_C)

-#include "mbedtls/sha1.h"
+#include "mbedtls/private/sha1.h"
 #include "mbedtls/platform_util.h"
-#include "mbedtls/error.h"
+#include "mbedtls/private/error_common.h"

 #include <string.h>

 #include "mbedtls/platform.h"

-#if !defined(MBEDTLS_SHA1_ALT)
-
 void mbedtls_sha1_init(mbedtls_sha1_context *ctx)
 {
     memset(ctx, 0, sizeof(mbedtls_sha1_context));
@@ -61,9 +59,8 @@ int mbedtls_sha1_starts(mbedtls_sha1_context *ctx)
     return 0;
 }

-#if !defined(MBEDTLS_SHA1_PROCESS_ALT)
-int mbedtls_internal_sha1_process(mbedtls_sha1_context *ctx,
-                                  const unsigned char data[64])
+static int mbedtls_internal_sha1_process(mbedtls_sha1_context *ctx,
+                                         const unsigned char data[64])
 {
     struct {
         uint32_t temp, W[16], A, B, C, D, E;
@@ -230,8 +227,6 @@ int mbedtls_internal_sha1_process(mbedtls_sha1_context *ctx,
     return 0;
 }

-#endif /* !MBEDTLS_SHA1_PROCESS_ALT */
-
 /*
  * SHA-1 process buffer
  */
@@ -346,8 +341,6 @@ exit:
     return ret;
 }

-#endif /* !MBEDTLS_SHA1_ALT */
-
 /*
  * output = SHA-1( input buffer )
  */
diff --git a/deps/LIEF/third-party/mbedtls/library/sha256.c b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/sha256.c
similarity index 95%
rename from deps/LIEF/third-party/mbedtls/library/sha256.c
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/sha256.c
index 159acccaeb3..9a120409033 100644
--- a/deps/LIEF/third-party/mbedtls/library/sha256.c
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/sha256.c
@@ -28,7 +28,7 @@
  * By defining the macros ourselves we gain access to those declarations without
  * requiring -march on the command line.
  *
- * `arm_neon.h` is included by common.h, so we put these defines
+ * `arm_neon.h` is included by tf_psa_crypto_common.h, so we put these defines
  * at the top of this file, before any includes.
  */
 #define __ARM_FEATURE_CRYPTO 1
@@ -48,13 +48,13 @@
 #define _GNU_SOURCE
 #endif

-#include "common.h"
+#include "tf_psa_crypto_common.h"

 #if defined(MBEDTLS_SHA256_C) || defined(MBEDTLS_SHA224_C)

-#include "mbedtls/sha256.h"
+#include "mbedtls/private/sha256.h"
 #include "mbedtls/platform_util.h"
-#include "mbedtls/error.h"
+#include "mbedtls/private/error_common.h"

 #include <string.h>

@@ -218,8 +218,6 @@ static int mbedtls_a64_crypto_sha256_determine_support(void)

 #endif  /* MBEDTLS_SHA256_USE_ARMV8_A_CRYPTO_IF_PRESENT */

-#if !defined(MBEDTLS_SHA256_ALT)
-
 #define SHA256_BLOCK_SIZE 64

 void mbedtls_sha256_init(mbedtls_sha256_context *ctx)
@@ -295,7 +293,6 @@ int mbedtls_sha256_starts(mbedtls_sha256_context *ctx, int is224)
     return 0;
 }

-#if !defined(MBEDTLS_SHA256_PROCESS_ALT)
 static const uint32_t K[] =
 {
     0x428A2F98, 0x71374491, 0xB5C0FBCF, 0xE9B5DBA5,
@@ -316,8 +313,6 @@ static const uint32_t K[] =
     0x90BEFFFA, 0xA4506CEB, 0xBEF9A3F7, 0xC67178F2,
 };

-#endif
-
 #if defined(MBEDTLS_SHA256_USE_ARMV8_A_CRYPTO_IF_PRESENT) || \
     defined(MBEDTLS_SHA256_USE_ARMV8_A_CRYPTO_ONLY)

@@ -421,15 +416,8 @@ static size_t mbedtls_internal_sha256_process_many_a64_crypto(
     return processed;
 }

-#if defined(MBEDTLS_SHA256_USE_ARMV8_A_CRYPTO_IF_PRESENT)
-/*
- * This function is for internal use only if we are building both C and Armv8-A
- * versions, otherwise it is renamed to be the public mbedtls_internal_sha256_process()
- */
-static
-#endif
-int mbedtls_internal_sha256_process_a64_crypto(mbedtls_sha256_context *ctx,
-                                               const unsigned char data[SHA256_BLOCK_SIZE])
+static int mbedtls_internal_sha256_process_a64_crypto(mbedtls_sha256_context *ctx,
+                                                      const unsigned char data[SHA256_BLOCK_SIZE])
 {
     return (mbedtls_internal_sha256_process_many_a64_crypto(ctx, data,
                                                             SHA256_BLOCK_SIZE) ==
@@ -453,8 +441,7 @@ int mbedtls_internal_sha256_process_a64_crypto(mbedtls_sha256_context *ctx,
 #endif


-#if !defined(MBEDTLS_SHA256_PROCESS_ALT) && \
-    !defined(MBEDTLS_SHA256_USE_ARMV8_A_CRYPTO_ONLY)
+#if !defined(MBEDTLS_SHA256_USE_ARMV8_A_CRYPTO_ONLY)

 #define  SHR(x, n) (((x) & 0xFFFFFFFF) >> (n))
 #define ROTR(x, n) (SHR(x, n) | ((x) << (32 - (n))))
@@ -482,15 +469,8 @@ int mbedtls_internal_sha256_process_a64_crypto(mbedtls_sha256_context *ctx,
         (d) += local.temp1; (h) = local.temp1 + local.temp2;        \
     } while (0)

-#if defined(MBEDTLS_SHA256_USE_ARMV8_A_CRYPTO_IF_PRESENT)
-/*
- * This function is for internal use only if we are building both C and Armv8
- * versions, otherwise it is renamed to be the public mbedtls_internal_sha256_process()
- */
-static
-#endif
-int mbedtls_internal_sha256_process_c(mbedtls_sha256_context *ctx,
-                                      const unsigned char data[SHA256_BLOCK_SIZE])
+static int mbedtls_internal_sha256_process_c(mbedtls_sha256_context *ctx,
+                                             const unsigned char data[SHA256_BLOCK_SIZE])
 {
     struct {
         uint32_t temp1, temp2, W[64];
@@ -574,11 +554,6 @@ int mbedtls_internal_sha256_process_c(mbedtls_sha256_context *ctx,
     return 0;
 }

-#endif /* !MBEDTLS_SHA256_PROCESS_ALT && !MBEDTLS_SHA256_USE_ARMV8_A_CRYPTO_ONLY */
-
-
-#if !defined(MBEDTLS_SHA256_USE_ARMV8_A_CRYPTO_ONLY)
-
 static size_t mbedtls_internal_sha256_process_many_c(
     mbedtls_sha256_context *ctx, const uint8_t *data, size_t len)
 {
@@ -626,8 +601,8 @@ static size_t mbedtls_internal_sha256_process_many(mbedtls_sha256_context *ctx,
     }
 }

-int mbedtls_internal_sha256_process(mbedtls_sha256_context *ctx,
-                                    const unsigned char data[SHA256_BLOCK_SIZE])
+static int mbedtls_internal_sha256_process(mbedtls_sha256_context *ctx,
+                                           const unsigned char data[SHA256_BLOCK_SIZE])
 {
     if (mbedtls_a64_crypto_sha256_has_support()) {
         return mbedtls_internal_sha256_process_a64_crypto(ctx, data);
@@ -765,8 +740,6 @@ exit:
     return ret;
 }

-#endif /* !MBEDTLS_SHA256_ALT */
-
 /*
  * output = SHA-256( input buffer )
  */
diff --git a/deps/LIEF/third-party/mbedtls/library/sha3.c b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/sha3.c
similarity index 93%
rename from deps/LIEF/third-party/mbedtls/library/sha3.c
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/sha3.c
index 57385595f56..dd023638624 100644
--- a/deps/LIEF/third-party/mbedtls/library/sha3.c
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/sha3.c
@@ -10,9 +10,12 @@
  *  https://nvlpubs.nist.gov/nistpubs/fips/nist.fips.202.pdf
  */

-#include "common.h"
+#include "tf_psa_crypto_common.h"

-#if defined(MBEDTLS_SHA3_C)
+#if defined(PSA_WANT_ALG_SHA3_224) || \
+    defined(PSA_WANT_ALG_SHA3_256) || \
+    defined(PSA_WANT_ALG_SHA3_384) || \
+    defined(PSA_WANT_ALG_SHA3_512)

 /*
  * These macros select manually unrolled implementations of parts of the main permutation function.
@@ -41,9 +44,9 @@
     #define MBEDTLS_SHA3_RHO_UNROLL 1 //no-check-names
 #endif

-#include "mbedtls/sha3.h"
+#include "mbedtls/private/sha3.h"
 #include "mbedtls/platform_util.h"
-#include "mbedtls/error.h"
+#include "mbedtls/private/error_common.h"

 #include <string.h>

@@ -270,22 +273,33 @@ void mbedtls_sha3_clone(mbedtls_sha3_context *dst,
 int mbedtls_sha3_starts(mbedtls_sha3_context *ctx, mbedtls_sha3_id id)
 {
     switch (id) {
+#if defined(PSA_WANT_ALG_SHA3_224)
         case MBEDTLS_SHA3_224:
             ctx->olen = 224 / 8;
             ctx->max_block_size = 1152 / 8;
             break;
+#endif
+
+#if defined(PSA_WANT_ALG_SHA3_256)
         case MBEDTLS_SHA3_256:
             ctx->olen = 256 / 8;
             ctx->max_block_size = 1088 / 8;
             break;
+#endif
+
+#if defined(PSA_WANT_ALG_SHA3_384)
         case MBEDTLS_SHA3_384:
             ctx->olen = 384 / 8;
             ctx->max_block_size = 832 / 8;
             break;
+#endif
+
+#if defined(PSA_WANT_ALG_SHA3_512)
         case MBEDTLS_SHA3_512:
             ctx->olen = 512 / 8;
             ctx->max_block_size = 576 / 8;
             break;
+#endif
         default:
             return MBEDTLS_ERR_SHA3_BAD_INPUT_DATA;
     }
@@ -419,6 +433,7 @@ static const size_t test_data_len[2] =
     3  /* "abc" */
 };

+#if defined(PSA_WANT_ALG_SHA3_224)
 static const unsigned char test_hash_sha3_224[2][28] =
 {
     { /* "" */
@@ -434,7 +449,9 @@ static const unsigned char test_hash_sha3_224[2][28] =
         0x73, 0xB4, 0x6F, 0xDF
     }
 };
+#endif

+#if defined(PSA_WANT_ALG_SHA3_256)
 static const unsigned char test_hash_sha3_256[2][32] =
 {
     { /* "" */
@@ -450,7 +467,9 @@ static const unsigned char test_hash_sha3_256[2][32] =
         0x46, 0xBF, 0xE2, 0x45, 0x11, 0x43, 0x15, 0x32
     }
 };
+#endif

+#if defined(PSA_WANT_ALG_SHA3_384)
 static const unsigned char test_hash_sha3_384[2][48] =
 {
     { /* "" */
@@ -470,7 +489,9 @@ static const unsigned char test_hash_sha3_384[2][48] =
         0x39, 0xF1, 0xED, 0xF2, 0x28, 0x37, 0x6D, 0x25
     }
 };
+#endif

+#if defined(PSA_WANT_ALG_SHA3_512)
 static const unsigned char test_hash_sha3_512[2][64] =
 {
     { /* "" */
@@ -494,7 +515,9 @@ static const unsigned char test_hash_sha3_512[2][64] =
         0x65, 0x92, 0xF8, 0x27, 0x4E, 0xEC, 0x53, 0xF0
     }
 };
+#endif

+#if defined(PSA_WANT_ALG_SHA3_224)
 static const unsigned char long_kat_hash_sha3_224[28] =
 {
     0xD6, 0x93, 0x35, 0xB9, 0x33, 0x25, 0x19, 0x2E,
@@ -502,7 +525,9 @@ static const unsigned char long_kat_hash_sha3_224[28] =
     0xB5, 0x1C, 0x6E, 0xD5, 0xC1, 0x52, 0x43, 0xE7,
     0xA7, 0xFD, 0x65, 0x3C
 };
+#endif

+#if defined(PSA_WANT_ALG_SHA3_256)
 static const unsigned char long_kat_hash_sha3_256[32] =
 {
     0x5C, 0x88, 0x75, 0xAE, 0x47, 0x4A, 0x36, 0x34,
@@ -510,7 +535,9 @@ static const unsigned char long_kat_hash_sha3_256[32] =
     0x61, 0xF3, 0x2A, 0xCA, 0x75, 0xC6, 0xD6, 0x99,
     0xD0, 0xCD, 0xCB, 0x6C, 0x11, 0x58, 0x91, 0xC1
 };
+#endif

+#if defined(PSA_WANT_ALG_SHA3_384)
 static const unsigned char long_kat_hash_sha3_384[48] =
 {
     0xEE, 0xE9, 0xE2, 0x4D, 0x78, 0xC1, 0x85, 0x53,
@@ -520,7 +547,9 @@ static const unsigned char long_kat_hash_sha3_384[48] =
     0x7A, 0xA0, 0x77, 0x4D, 0xDB, 0x90, 0xA8, 0x42,
     0x19, 0x0D, 0x2C, 0x55, 0x8B, 0x4B, 0x83, 0x40
 };
+#endif

+#if defined(PSA_WANT_ALG_SHA3_512)
 static const unsigned char long_kat_hash_sha3_512[64] =
 {
     0x3C, 0x3A, 0x87, 0x6D, 0xA1, 0x40, 0x34, 0xAB,
@@ -532,6 +561,7 @@ static const unsigned char long_kat_hash_sha3_512[64] =
     0xA8, 0xAA, 0x18, 0xAC, 0xE8, 0x28, 0x2A, 0x0E,
     0x0D, 0xB5, 0x96, 0xC9, 0x0B, 0x0A, 0x7B, 0x87
 };
+#endif

 static int mbedtls_sha3_kat_test(int verbose,
                                  const char *type_name,
@@ -554,18 +584,29 @@ static int mbedtls_sha3_kat_test(int verbose,
     }

     switch (id) {
+#if defined(PSA_WANT_ALG_SHA3_224)
         case MBEDTLS_SHA3_224:
             result = memcmp(hash, test_hash_sha3_224[test_num], 28);
             break;
+#endif
+
+#if defined(PSA_WANT_ALG_SHA3_256)
         case MBEDTLS_SHA3_256:
             result = memcmp(hash, test_hash_sha3_256[test_num], 32);
             break;
+#endif
+
+#if defined(PSA_WANT_ALG_SHA3_384)
         case MBEDTLS_SHA3_384:
             result = memcmp(hash, test_hash_sha3_384[test_num], 48);
             break;
+#endif
+
+#if defined(PSA_WANT_ALG_SHA3_512)
         case MBEDTLS_SHA3_512:
             result = memcmp(hash, test_hash_sha3_512[test_num], 64);
             break;
+#endif
         default:
             break;
     }
@@ -631,18 +672,29 @@ static int mbedtls_sha3_long_kat_test(int verbose,
     }

     switch (id) {
+#if defined(PSA_WANT_ALG_SHA3_224)
         case MBEDTLS_SHA3_224:
             result = memcmp(hash, long_kat_hash_sha3_224, 28);
             break;
+#endif
+
+#if defined(PSA_WANT_ALG_SHA3_256)
         case MBEDTLS_SHA3_256:
             result = memcmp(hash, long_kat_hash_sha3_256, 32);
             break;
+#endif
+
+#if defined(PSA_WANT_ALG_SHA3_384)
         case MBEDTLS_SHA3_384:
             result = memcmp(hash, long_kat_hash_sha3_384, 48);
             break;
+#endif
+
+#if defined(PSA_WANT_ALG_SHA3_512)
         case MBEDTLS_SHA3_512:
             result = memcmp(hash, long_kat_hash_sha3_512, 64);
             break;
+#endif
         default:
             break;
     }
@@ -668,48 +720,64 @@ int mbedtls_sha3_self_test(int verbose)

     /* SHA-3 Known Answer Tests (KAT) */
     for (i = 0; i < 2; i++) {
+
+#if defined(PSA_WANT_ALG_SHA3_224)
         if (0 != mbedtls_sha3_kat_test(verbose,
                                        "SHA3-224", MBEDTLS_SHA3_224, i)) {
             return 1;
         }
+#endif

+#if defined(PSA_WANT_ALG_SHA3_256)
         if (0 != mbedtls_sha3_kat_test(verbose,
                                        "SHA3-256", MBEDTLS_SHA3_256, i)) {
             return 1;
         }
+#endif

+#if defined(PSA_WANT_ALG_SHA3_384)
         if (0 != mbedtls_sha3_kat_test(verbose,
                                        "SHA3-384", MBEDTLS_SHA3_384, i)) {
             return 1;
         }
+#endif

+#if defined(PSA_WANT_ALG_SHA3_512)
         if (0 != mbedtls_sha3_kat_test(verbose,
                                        "SHA3-512", MBEDTLS_SHA3_512, i)) {
             return 1;
         }
+#endif
     }

     /* SHA-3 long KAT tests */
+#if defined(PSA_WANT_ALG_SHA3_224)
     if (0 != mbedtls_sha3_long_kat_test(verbose,
                                         "SHA3-224", MBEDTLS_SHA3_224)) {
         return 1;
     }
+#endif

+#if defined(PSA_WANT_ALG_SHA3_256)
     if (0 != mbedtls_sha3_long_kat_test(verbose,
                                         "SHA3-256", MBEDTLS_SHA3_256)) {
         return 1;
     }
+#endif

+#if defined(PSA_WANT_ALG_SHA3_384)
     if (0 != mbedtls_sha3_long_kat_test(verbose,
                                         "SHA3-384", MBEDTLS_SHA3_384)) {
         return 1;
     }
+#endif

+#if defined(PSA_WANT_ALG_SHA3_512)
     if (0 != mbedtls_sha3_long_kat_test(verbose,
                                         "SHA3-512", MBEDTLS_SHA3_512)) {
         return 1;
     }
-
+#endif
     if (verbose != 0) {
         mbedtls_printf("\n");
     }
@@ -718,4 +786,5 @@ int mbedtls_sha3_self_test(int verbose)
 }
 #endif /* MBEDTLS_SELF_TEST */

-#endif /* MBEDTLS_SHA3_C */
+#endif /* PSA_WANT_ALG_SHA3_224 || PSA_WANT_ALG_SHA3_256 ||
+          PSA_WANT_ALG_SHA3_384 || PSA_WANT_ALG_SHA3_512 */
diff --git a/deps/LIEF/third-party/mbedtls/library/sha512.c b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/sha512.c
similarity index 96%
rename from deps/LIEF/third-party/mbedtls/library/sha512.c
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/sha512.c
index 6dcea8da5d5..756c5c9cbe7 100644
--- a/deps/LIEF/third-party/mbedtls/library/sha512.c
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/sha512.c
@@ -19,20 +19,20 @@
  * By defining the macros ourselves we gain access to those declarations without
  * requiring -march on the command line.
  *
- * `arm_neon.h` is included by common.h, so we put these defines
+ * `arm_neon.h` is included by tf_psa_crypto_common.h, so we put these defines
  * at the top of this file, before any includes.
  */
 #define __ARM_FEATURE_SHA512 1
 #define MBEDTLS_ENABLE_ARM_SHA3_EXTENSIONS_COMPILER_FLAG
 #endif

-#include "common.h"
+#include "tf_psa_crypto_common.h"

 #if defined(MBEDTLS_SHA512_C) || defined(MBEDTLS_SHA384_C)

-#include "mbedtls/sha512.h"
+#include "mbedtls/private/sha512.h"
 #include "mbedtls/platform_util.h"
-#include "mbedtls/error.h"
+#include "mbedtls/private/error_common.h"

 #if defined(_MSC_VER) || defined(__WATCOMC__)
   #define UL64(x) x##ui64
@@ -205,8 +205,6 @@ static int mbedtls_a64_crypto_sha512_determine_support(void)

 #endif  /* MBEDTLS_SHA512_USE_A64_CRYPTO_IF_PRESENT */

-#if !defined(MBEDTLS_SHA512_ALT)
-
 #define SHA512_BLOCK_SIZE 128

 #if defined(MBEDTLS_SHA512_SMALLER)
@@ -291,8 +289,6 @@ int mbedtls_sha512_starts(mbedtls_sha512_context *ctx, int is384)
     return 0;
 }

-#if !defined(MBEDTLS_SHA512_PROCESS_ALT)
-
 /*
  * Round constants
  */
@@ -339,7 +335,6 @@ static const uint64_t K[80] =
     UL64(0x4CC5D4BECB3E42B6),  UL64(0x597F299CFC657E2A),
     UL64(0x5FCB6FAB3AD6FAEC),  UL64(0x6C44198C4A475817)
 };
-#endif

 #if defined(MBEDTLS_SHA512_USE_A64_CRYPTO_IF_PRESENT) || \
     defined(MBEDTLS_SHA512_USE_A64_CRYPTO_ONLY)
@@ -556,15 +551,8 @@ static size_t mbedtls_internal_sha512_process_many_a64_crypto(
     return processed;
 }

-#if defined(MBEDTLS_SHA512_USE_A64_CRYPTO_IF_PRESENT)
-/*
- * This function is for internal use only if we are building both C and A64
- * versions, otherwise it is renamed to be the public mbedtls_internal_sha512_process()
- */
-static
-#endif
-int mbedtls_internal_sha512_process_a64_crypto(mbedtls_sha512_context *ctx,
-                                               const unsigned char data[SHA512_BLOCK_SIZE])
+static int mbedtls_internal_sha512_process_a64_crypto(mbedtls_sha512_context *ctx,
+                                                      const unsigned char data[SHA512_BLOCK_SIZE])
 {
     return (mbedtls_internal_sha512_process_many_a64_crypto(ctx, data,
                                                             SHA512_BLOCK_SIZE) ==
@@ -589,17 +577,10 @@ int mbedtls_internal_sha512_process_a64_crypto(mbedtls_sha512_context *ctx,
 #endif


-#if !defined(MBEDTLS_SHA512_PROCESS_ALT) && !defined(MBEDTLS_SHA512_USE_A64_CRYPTO_ONLY)
+#if !defined(MBEDTLS_SHA512_USE_A64_CRYPTO_ONLY)

-#if defined(MBEDTLS_SHA512_USE_A64_CRYPTO_IF_PRESENT)
-/*
- * This function is for internal use only if we are building both C and A64
- * versions, otherwise it is renamed to be the public mbedtls_internal_sha512_process()
- */
-static
-#endif
-int mbedtls_internal_sha512_process_c(mbedtls_sha512_context *ctx,
-                                      const unsigned char data[SHA512_BLOCK_SIZE])
+static int mbedtls_internal_sha512_process_c(mbedtls_sha512_context *ctx,
+                                             const unsigned char data[SHA512_BLOCK_SIZE])
 {
     int i;
     struct {
@@ -690,11 +671,6 @@ int mbedtls_internal_sha512_process_c(mbedtls_sha512_context *ctx,
     return 0;
 }

-#endif /* !MBEDTLS_SHA512_PROCESS_ALT && !MBEDTLS_SHA512_USE_A64_CRYPTO_ONLY */
-
-
-#if !defined(MBEDTLS_SHA512_USE_A64_CRYPTO_ONLY)
-
 static size_t mbedtls_internal_sha512_process_many_c(
     mbedtls_sha512_context *ctx, const uint8_t *data, size_t len)
 {
@@ -742,8 +718,8 @@ static size_t mbedtls_internal_sha512_process_many(mbedtls_sha512_context *ctx,
     }
 }

-int mbedtls_internal_sha512_process(mbedtls_sha512_context *ctx,
-                                    const unsigned char data[SHA512_BLOCK_SIZE])
+static int mbedtls_internal_sha512_process(mbedtls_sha512_context *ctx,
+                                           const unsigned char data[SHA512_BLOCK_SIZE])
 {
     if (mbedtls_a64_crypto_sha512_has_support()) {
         return mbedtls_internal_sha512_process_a64_crypto(ctx, data);
@@ -879,8 +855,6 @@ exit:
     return ret;
 }

-#endif /* !MBEDTLS_SHA512_ALT */
-
 /*
  * output = SHA-512( input buffer )
  */
diff --git a/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/threading.c b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/threading.c
new file mode 100644
index 00000000000..d5ec41df572
--- /dev/null
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/threading.c
@@ -0,0 +1,321 @@
+/*
+ *  Threading abstraction layer
+ *
+ *  Copyright The Mbed TLS Contributors
+ *  SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+ */
+
+/*
+ * Ensure gmtime_r is available even with -std=c99; must be defined before
+ * mbedtls_config.h, which pulls in glibc's features.h. Harmless on other platforms.
+ */
+#if !defined(_POSIX_C_SOURCE)
+#define _POSIX_C_SOURCE 200112L
+#endif
+
+#include "tf_psa_crypto_common.h"
+
+#if defined(MBEDTLS_THREADING_C)
+
+#include "threading_internal.h"
+
+#include <psa/crypto_values.h>
+
+#if defined(MBEDTLS_HAVE_TIME_DATE) && !defined(MBEDTLS_PLATFORM_GMTIME_R_ALT)
+
+#if !defined(_WIN32) && (defined(unix) || \
+    defined(__unix) || defined(__unix__) || (defined(__APPLE__) && \
+    defined(__MACH__)))
+#include <unistd.h>
+#endif /* !_WIN32 && (unix || __unix || __unix__ ||
+        * (__APPLE__ && __MACH__)) */
+
+#if !((defined(_POSIX_VERSION) && _POSIX_VERSION >= 200809L) ||     \
+    (defined(_POSIX_THREAD_SAFE_FUNCTIONS) &&                     \
+    _POSIX_THREAD_SAFE_FUNCTIONS >= 200112L))
+/*
+ * This is a convenience shorthand macro to avoid checking the long
+ * preprocessor conditions above. Ideally, we could expose this macro in
+ * platform_util.h and simply use it in platform_util.c, threading.c and
+ * threading.h. However, this macro is not part of the Mbed TLS public API, so
+ * we keep it private by only defining it in this file
+ */
+
+#if !(defined(_WIN32) && !defined(EFIX64) && !defined(EFI32))
+#define THREADING_USE_GMTIME
+#endif /* ! ( defined(_WIN32) && !defined(EFIX64) && !defined(EFI32) ) */
+
+#endif /* !( ( defined(_POSIX_VERSION) && _POSIX_VERSION >= 200809L ) || \
+             ( defined(_POSIX_THREAD_SAFE_FUNCTIONS ) && \
+                _POSIX_THREAD_SAFE_FUNCTIONS >= 200112L ) ) */
+
+#endif /* MBEDTLS_HAVE_TIME_DATE && !MBEDTLS_PLATFORM_GMTIME_R_ALT */
+
+#if defined(MBEDTLS_THREADING_PTHREAD)
+static int err_from_posix(int posix_ret)
+{
+    switch (posix_ret) {
+        case 0:
+            return 0;
+        default:
+            return MBEDTLS_ERR_THREADING_USAGE_ERROR;
+    }
+}
+
+static int threading_mutex_init_pthread(mbedtls_platform_mutex_t *mutex)
+{
+    int posix_ret = pthread_mutex_init(mutex, NULL);
+    return err_from_posix(posix_ret);
+}
+
+static void threading_mutex_destroy_pthread(mbedtls_platform_mutex_t *mutex)
+{
+    (void) pthread_mutex_destroy(mutex);
+}
+
+static int threading_mutex_lock_pthread(mbedtls_platform_mutex_t *mutex)
+{
+    int posix_ret = pthread_mutex_lock(mutex);
+    return err_from_posix(posix_ret);
+}
+
+static int threading_mutex_unlock_pthread(mbedtls_platform_mutex_t *mutex)
+{
+    int posix_ret = pthread_mutex_unlock(mutex);
+    return err_from_posix(posix_ret);
+}
+
+int (*mbedtls_mutex_init_ptr)(mbedtls_platform_mutex_t *) = threading_mutex_init_pthread;
+void (*mbedtls_mutex_free_ptr)(mbedtls_platform_mutex_t *) = threading_mutex_destroy_pthread;
+int (*mbedtls_mutex_lock_ptr)(mbedtls_platform_mutex_t *) = threading_mutex_lock_pthread;
+int (*mbedtls_mutex_unlock_ptr)(mbedtls_platform_mutex_t *) = threading_mutex_unlock_pthread;
+
+/*
+ * With pthreads we can statically initialize mutexes
+ */
+#define MUTEX_INIT  = { PTHREAD_MUTEX_INITIALIZER, 1, 1 }
+
+int mbedtls_condition_variable_init(
+    mbedtls_threading_condition_variable_t *cond)
+{
+    int posix_ret = pthread_cond_init(&cond->cond, NULL);
+    return err_from_posix(posix_ret);
+}
+
+void mbedtls_condition_variable_free(
+    mbedtls_threading_condition_variable_t *cond)
+{
+    (void) pthread_cond_destroy(&cond->cond);
+}
+
+int mbedtls_condition_variable_signal(
+    mbedtls_threading_condition_variable_t *cond)
+{
+    int posix_ret = pthread_cond_signal(&cond->cond);
+    return err_from_posix(posix_ret);
+}
+
+int mbedtls_condition_variable_broadcast(
+    mbedtls_threading_condition_variable_t *cond)
+{
+    int posix_ret = pthread_cond_broadcast(&cond->cond);
+    return err_from_posix(posix_ret);
+}
+
+int mbedtls_condition_variable_wait(
+    mbedtls_threading_condition_variable_t *cond,
+    mbedtls_threading_mutex_t *mutex)
+{
+    int posix_ret = pthread_cond_wait(&cond->cond, &mutex->mutex);
+    return err_from_posix(posix_ret);
+}
+
+#endif /* MBEDTLS_THREADING_PTHREAD */
+
+#if defined(MBEDTLS_THREADING_ALT)
+static int threading_mutex_fail(mbedtls_platform_mutex_t *mutex)
+{
+    ((void) mutex);
+    return PSA_ERROR_BAD_STATE;
+}
+static void threading_mutex_dummy(mbedtls_platform_mutex_t *mutex)
+{
+    ((void) mutex);
+    return;
+}
+
+int (*mbedtls_mutex_init_ptr)(mbedtls_platform_mutex_t *) = threading_mutex_fail;
+void (*mbedtls_mutex_free_ptr)(mbedtls_platform_mutex_t *) = threading_mutex_dummy;
+int (*mbedtls_mutex_lock_ptr)(mbedtls_platform_mutex_t *) = threading_mutex_fail;
+int (*mbedtls_mutex_unlock_ptr)(mbedtls_platform_mutex_t *) = threading_mutex_fail;
+
+#endif /* MBEDTLS_THREADING_ALT */
+
+void mbedtls_mutex_init(mbedtls_threading_mutex_t *mutex)
+{
+    int ret = (*mbedtls_mutex_init_ptr)(&mutex->mutex);
+    mutex->initialized = (ret == 0);
+}
+
+void mbedtls_mutex_free(mbedtls_threading_mutex_t *mutex)
+{
+    if (!mutex->initialized) {
+        return;
+    }
+    (*mbedtls_mutex_free_ptr)(&mutex->mutex);
+    mutex->initialized = 0;
+}
+
+int mbedtls_mutex_lock(mbedtls_threading_mutex_t *mutex)
+{
+    if (!mutex->initialized) {
+        return MBEDTLS_ERR_THREADING_USAGE_ERROR;
+    }
+    return (*mbedtls_mutex_lock_ptr)(&mutex->mutex);
+}
+
+int mbedtls_mutex_unlock(mbedtls_threading_mutex_t *mutex)
+{
+    if (!mutex->initialized) {
+        return MBEDTLS_ERR_THREADING_USAGE_ERROR;
+    }
+    return (*mbedtls_mutex_unlock_ptr)(&mutex->mutex);
+}
+
+
+
+#if defined(MBEDTLS_THREADING_ALT)
+
+static int (*cond_init_ptr)(mbedtls_platform_condition_variable_t *) = NULL;
+
+int mbedtls_condition_variable_init(
+    mbedtls_threading_condition_variable_t *cond)
+{
+    if (*cond_init_ptr == NULL) {
+        return PSA_ERROR_BAD_STATE;
+    }
+    return (*cond_init_ptr)(&cond->cond);
+}
+
+static void (*cond_destroy_ptr)(mbedtls_platform_condition_variable_t *) = NULL;
+
+void mbedtls_condition_variable_free(
+    mbedtls_threading_condition_variable_t *cond)
+{
+    if (*cond_destroy_ptr == NULL) {
+        return;
+    }
+    (*cond_destroy_ptr)(&cond->cond);
+}
+
+static int (*cond_signal_ptr)(mbedtls_platform_condition_variable_t *) = NULL;
+
+int mbedtls_condition_variable_signal(
+    mbedtls_threading_condition_variable_t *cond)
+{
+    if (*cond_signal_ptr == NULL) {
+        return PSA_ERROR_BAD_STATE;
+    }
+    return (*cond_signal_ptr)(&cond->cond);
+}
+
+static int (*cond_broadcast_ptr)(mbedtls_platform_condition_variable_t *) = NULL;
+
+int mbedtls_condition_variable_broadcast(
+    mbedtls_threading_condition_variable_t *cond)
+{
+    if (*cond_broadcast_ptr == NULL) {
+        return PSA_ERROR_BAD_STATE;
+    }
+    return (*cond_broadcast_ptr)(&cond->cond);
+}
+
+static int (*cond_wait_ptr)(mbedtls_platform_condition_variable_t *,
+                            mbedtls_platform_mutex_t *) = NULL;
+
+int mbedtls_condition_variable_wait(
+    mbedtls_threading_condition_variable_t *cond,
+    mbedtls_threading_mutex_t *mutex)
+{
+    if (*cond_wait_ptr == NULL) {
+        return PSA_ERROR_BAD_STATE;
+    }
+    return (*cond_wait_ptr)(&cond->cond, &mutex->mutex);
+}
+
+/*
+ * Set functions pointers and initialize global mutexes
+ */
+void mbedtls_threading_set_alt(
+    int (*mutex_init)(mbedtls_platform_mutex_t *),
+    void (*mutex_destroy)(mbedtls_platform_mutex_t *),
+    int (*mutex_lock)(mbedtls_platform_mutex_t *),
+    int (*mutex_unlock)(mbedtls_platform_mutex_t *),
+    int (*cond_init)(mbedtls_platform_condition_variable_t *),
+    void (*cond_destroy)(mbedtls_platform_condition_variable_t *),
+    int (*cond_signal)(mbedtls_platform_condition_variable_t *),
+    int (*cond_broadcast)(mbedtls_platform_condition_variable_t *),
+    int (*cond_wait)(mbedtls_platform_condition_variable_t *,
+                     mbedtls_platform_mutex_t *))
+{
+    mbedtls_mutex_init_ptr = mutex_init;
+    mbedtls_mutex_free_ptr = mutex_destroy;
+    mbedtls_mutex_lock_ptr = mutex_lock;
+    mbedtls_mutex_unlock_ptr = mutex_unlock;
+    cond_init_ptr = cond_init;
+    cond_destroy_ptr = cond_destroy;
+    cond_signal_ptr = cond_signal;
+    cond_broadcast_ptr = cond_broadcast;
+    cond_wait_ptr = cond_wait;
+
+#if defined(MBEDTLS_FS_IO)
+    mbedtls_mutex_init(&mbedtls_threading_readdir_mutex);
+#endif
+#if defined(THREADING_USE_GMTIME)
+    mbedtls_mutex_init(&mbedtls_threading_gmtime_mutex);
+#endif
+#if defined(MBEDTLS_PSA_CRYPTO_C)
+    mbedtls_mutex_init(&mbedtls_threading_key_slot_mutex);
+    mbedtls_mutex_init(&mbedtls_threading_psa_globaldata_mutex);
+    mbedtls_mutex_init(&mbedtls_threading_psa_rngdata_mutex);
+#endif
+}
+
+/*
+ * Free global mutexes
+ */
+void mbedtls_threading_free_alt(void)
+{
+#if defined(MBEDTLS_FS_IO)
+    mbedtls_mutex_free(&mbedtls_threading_readdir_mutex);
+#endif
+#if defined(THREADING_USE_GMTIME)
+    mbedtls_mutex_free(&mbedtls_threading_gmtime_mutex);
+#endif
+#if defined(MBEDTLS_PSA_CRYPTO_C)
+    mbedtls_mutex_free(&mbedtls_threading_key_slot_mutex);
+    mbedtls_mutex_free(&mbedtls_threading_psa_globaldata_mutex);
+    mbedtls_mutex_free(&mbedtls_threading_psa_rngdata_mutex);
+#endif
+}
+#endif /* MBEDTLS_THREADING_ALT */
+
+/*
+ * Define global mutexes
+ */
+#ifndef MUTEX_INIT
+#define MUTEX_INIT
+#endif
+#if defined(MBEDTLS_FS_IO)
+mbedtls_threading_mutex_t mbedtls_threading_readdir_mutex MUTEX_INIT;
+#endif
+#if defined(THREADING_USE_GMTIME)
+mbedtls_threading_mutex_t mbedtls_threading_gmtime_mutex MUTEX_INIT;
+#endif
+#if defined(MBEDTLS_PSA_CRYPTO_C)
+mbedtls_threading_mutex_t mbedtls_threading_key_slot_mutex MUTEX_INIT;
+mbedtls_threading_mutex_t mbedtls_threading_psa_globaldata_mutex MUTEX_INIT;
+mbedtls_threading_mutex_t mbedtls_threading_psa_rngdata_mutex MUTEX_INIT;
+#endif
+
+#endif /* MBEDTLS_THREADING_C */
diff --git a/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/threading_internal.h b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/threading_internal.h
new file mode 100644
index 00000000000..8669a285e50
--- /dev/null
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/builtin/src/threading_internal.h
@@ -0,0 +1,75 @@
+/**
+ * \file threading_internal.h
+ *
+ * \brief Threading interfaces used internally in the library and
+ *        by the test framework.
+ */
+/*
+ *  Copyright The Mbed TLS Contributors
+ *  SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+ */
+
+#ifndef MBEDTLS_THREADING_INTERNAL_H
+#define MBEDTLS_THREADING_INTERNAL_H
+
+#include "tf_psa_crypto_common.h"
+
+#include <mbedtls/threading.h>
+
+/* A version number for the internal threading interface.
+ * This is meant to allow the framework to remain compatible with
+ * multiple versions, to facilitate transitions.
+ *
+ * Conventionally, this is the Mbed TLS version number when the
+ * threading interface was last changed in a way that may impact the
+ * test framework, with the lower byte incremented as necessary
+ * if multiple changes happened between releases. */
+#define MBEDTLS_THREADING_INTERNAL_VERSION 0x04000001
+
+#if defined(MBEDTLS_THREADING_C)
+
+/*
+ * The function pointers for mutex_init, mutex_free, mutex_ and mutex_unlock
+ *
+ * They are exposed for the sake of the mutex usage verification framework
+ * (see framework/tests/src/threading_helpers.c).
+ */
+extern int (*mbedtls_mutex_init_ptr)(mbedtls_platform_mutex_t *mutex);
+extern void (*mbedtls_mutex_free_ptr)(mbedtls_platform_mutex_t *mutex);
+extern int (*mbedtls_mutex_lock_ptr)(mbedtls_platform_mutex_t *mutex);
+extern int (*mbedtls_mutex_unlock_ptr)(mbedtls_platform_mutex_t *mutex);
+
+/*
+ * Global mutexes
+ */
+#if defined(MBEDTLS_PSA_CRYPTO_C)
+/*
+ * A mutex used to make the PSA subsystem thread safe.
+ *
+ * key_slot_mutex protects the registered_readers and
+ * state variable for all key slots in &global_data.key_slots.
+ *
+ * This mutex must be held when any read from or write to a state or
+ * registered_readers field is performed, i.e. when calling functions:
+ * psa_key_slot_state_transition(), psa_register_read(), psa_unregister_read(),
+ * psa_key_slot_has_readers() and psa_wipe_key_slot(). */
+extern mbedtls_threading_mutex_t mbedtls_threading_key_slot_mutex;
+
+/*
+ * A mutex used to make the non-rng PSA global_data struct members thread safe.
+ *
+ * This mutex must be held when reading or writing to any of the PSA global_data
+ * structure members, other than the rng_state or rng struct. */
+extern mbedtls_threading_mutex_t mbedtls_threading_psa_globaldata_mutex;
+
+/*
+ * A mutex used to make the PSA global_data rng data thread safe.
+ *
+ * This mutex must be held when reading or writing to the PSA
+ * global_data rng_state or rng struct members. */
+extern mbedtls_threading_mutex_t mbedtls_threading_psa_rngdata_mutex;
+#endif
+
+#endif /* MBEDTLS_THREADING_C */
+
+#endif /* MBEDTLS_THREADING_INTERNAL_H */
diff --git a/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/everest/CMakeLists.txt b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/everest/CMakeLists.txt
new file mode 100644
index 00000000000..ac02a5c690e
--- /dev/null
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/everest/CMakeLists.txt
@@ -0,0 +1,40 @@
+set(everest_target "${TF_PSA_CRYPTO_TARGET_PREFIX}everest")
+if (USE_STATIC_TF_PSA_CRYPTO_LIBRARY)
+    set(everest_static_target ${everest_target})
+endif()
+set(target_libraries ${everest_target})
+if(USE_STATIC_TF_PSA_CRYPTO_LIBRARY AND USE_SHARED_TF_PSA_CRYPTO_LIBRARY)
+    string(APPEND everest_static_target "_static")
+    list(APPEND target_libraries ${everest_static_target})
+endif()
+
+foreach (target IN LISTS target_libraries)
+    add_library(${target} OBJECT
+      library/everest.c
+      library/x25519.c
+      library/Hacl_Curve25519_joined.c)
+
+    tf_psa_crypto_set_base_compile_options(${target})
+    target_include_directories(${target}
+      PRIVATE include
+              ${TF_PSA_CRYPTO_DIR}/include
+              ${TF_PSA_CRYPTO_DIR}/drivers/builtin/include
+              include/tf-psa-crypto/private/everest
+              include/tf-psa-crypto/private/everest/kremlib
+              ${TF_PSA_CRYPTO_DIR}/core)
+    tf_psa_crypto_set_config_files_compile_definitions(${target})
+endforeach(target)
+
+if(USE_SHARED_TF_PSA_CRYPTO_LIBRARY)
+    set_property(TARGET ${everest_target} PROPERTY POSITION_INDEPENDENT_CODE ON)
+endif(USE_SHARED_TF_PSA_CRYPTO_LIBRARY)
+
+if(INSTALL_TF_PSA_CRYPTO_HEADERS)
+
+  install(DIRECTORY include/tf-psa-crypto/private/everest
+    DESTINATION include/tf-psa-crypto/private/everest
+    FILE_PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
+    DIRECTORY_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
+    FILES_MATCHING PATTERN "*.h")
+
+endif(INSTALL_TF_PSA_CRYPTO_HEADERS)
diff --git a/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/everest/Makefile.inc b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/everest/Makefile.inc
new file mode 100644
index 00000000000..8fe61d51b8c
--- /dev/null
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/everest/Makefile.inc
@@ -0,0 +1,6 @@
+THIRDPARTY_INCLUDES+=-I$(THIRDPARTY_DIR)/everest/include -I$(THIRDPARTY_DIR)/everest/include/tf-psa-crypto/private/everest -I$(THIRDPARTY_DIR)/everest/include/tf-psa-crypto/private/everest/kremlib
+
+THIRDPARTY_CRYPTO_OBJECTS+= \
+	$(THIRDPARTY_DIR)/everest/library/everest.o \
+	$(THIRDPARTY_DIR)/everest/library/x25519.o \
+	$(THIRDPARTY_DIR)/everest/library/Hacl_Curve25519_joined.o
diff --git a/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/everest/README.md b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/everest/README.md
new file mode 100644
index 00000000000..bcf12c0c057
--- /dev/null
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/everest/README.md
@@ -0,0 +1,5 @@
+The files in this directory stem from [Project Everest](https://project-everest.github.io/) and are distributed under the Apache 2.0 license.
+
+This is a formally verified implementation of Curve25519-based handshakes. The C code is automatically derived from the (verified) [original implementation](https://github.com/project-everest/hacl-star/tree/master/code/curve25519) in the [F* language](https://github.com/fstarlang/fstar) by [KreMLin](https://github.com/fstarlang/kremlin). In addition to the improved safety and security of the implementation, it is also significantly faster than the default implementation of Curve25519 in mbedTLS.
+
+The caveat is that not all platforms are supported, although the version in `everest/library/legacy` should work on most systems. The main issue is that some platforms do not provide a 128-bit integer type and KreMLin therefore has to use additional (also verified) code to simulate them, resulting in less of a performance gain overall. Explicitly supported platforms are currently `x86` and `x86_64` using gcc or clang, and Visual C (2010 and later).
diff --git a/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/everest/include/tf-psa-crypto/private/everest/Hacl_Curve25519.h b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/everest/include/tf-psa-crypto/private/everest/Hacl_Curve25519.h
new file mode 100644
index 00000000000..b438fb07b7d
--- /dev/null
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/everest/include/tf-psa-crypto/private/everest/Hacl_Curve25519.h
@@ -0,0 +1,25 @@
+/* Copyright (c) INRIA and Microsoft Corporation. All rights reserved.
+   Licensed under the Apache 2.0 License. */
+
+/* This file was generated by KreMLin <https://github.com/FStarLang/kremlin>
+ * KreMLin invocation: /mnt/e/everest/verify/kremlin/krml -fc89 -fparentheses -fno-shadow -header /mnt/e/everest/verify/hdrcLh -minimal -fbuiltin-uint128 -fc89 -fparentheses -fno-shadow -header /mnt/e/everest/verify/hdrcLh -minimal -I /mnt/e/everest/verify/hacl-star/code/lib/kremlin -I /mnt/e/everest/verify/kremlin/kremlib/compat -I /mnt/e/everest/verify/hacl-star/specs -I /mnt/e/everest/verify/hacl-star/specs/old -I . -ccopt -march=native -verbose -ldopt -flto -tmpdir x25519-c -I ../bignum -bundle Hacl.Curve25519=* -minimal -add-include "kremlib.h" -skip-compilation x25519-c/out.krml -o x25519-c/Hacl_Curve25519.c
+ * F* version: 059db0c8
+ * KreMLin version: 916c37ac
+ */
+
+
+
+#ifndef __Hacl_Curve25519_H
+#define __Hacl_Curve25519_H
+
+
+#include "kremlib.h"
+
+#if defined(MBEDTLS_DECLARE_PRIVATE_IDENTIFIERS)
+
+void Hacl_Curve25519_crypto_scalarmult(uint8_t *mypublic, uint8_t *secret, uint8_t *basepoint);
+
+#endif /* MBEDTLS_DECLARE_PRIVATE_IDENTIFIERS */
+
+#define __Hacl_Curve25519_H_DEFINED
+#endif
diff --git a/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/everest/include/tf-psa-crypto/private/everest/everest.h b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/everest/include/tf-psa-crypto/private/everest/everest.h
new file mode 100644
index 00000000000..d82053bf147
--- /dev/null
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/everest/include/tf-psa-crypto/private/everest/everest.h
@@ -0,0 +1,237 @@
+/*
+ *  Interface to code from Project Everest
+ *
+ *  Copyright 2016-2018 INRIA and Microsoft Corporation
+ *  SPDX-License-Identifier: Apache-2.0
+ *
+ *  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.
+ *
+ *  This file is part of Mbed TLS (https://tls.mbed.org).
+ */
+
+#ifndef MBEDTLS_EVEREST_H
+#define MBEDTLS_EVEREST_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * Defines the source of the imported EC key.
+ */
+typedef enum
+{
+    MBEDTLS_EVEREST_ECDH_OURS,   /**< Our key. */
+    MBEDTLS_EVEREST_ECDH_THEIRS, /**< The key of the peer. */
+} mbedtls_everest_ecdh_side;
+
+typedef struct {
+    mbedtls_x25519_context ctx;
+} mbedtls_ecdh_context_everest;
+
+#define MBEDTLS_ECDH_CONTEXT_EVEREST_INIT {MBEDTLS_X25519_CONTEXT_INIT}
+
+#if defined(MBEDTLS_DECLARE_PRIVATE_IDENTIFIERS)
+
+/**
+ * \brief           This function sets up the ECDH context with the information
+ *                  given.
+ *
+ *                  This function should be called after mbedtls_ecdh_init() but
+ *                  before mbedtls_ecdh_make_params(). There is no need to call
+ *                  this function before mbedtls_ecdh_read_params().
+ *
+ *                  This is the first function used by a TLS server for ECDHE
+ *                  ciphersuites.
+ *
+ * \param ctx       The ECDH context to set up.
+ * \param grp_id    The group id of the group to set up the context for.
+ *
+ * \return          \c 0 on success.
+ */
+int mbedtls_everest_setup( mbedtls_ecdh_context_everest *ctx, int grp_id );
+
+/**
+ * \brief           This function frees a context.
+ *
+ * \param ctx       The context to free.
+ */
+void mbedtls_everest_free( mbedtls_ecdh_context_everest *ctx );
+
+/**
+ * \brief           This function generates a public key and a TLS
+ *                  ServerKeyExchange payload.
+ *
+ *                  This is the second function used by a TLS server for ECDHE
+ *                  ciphersuites. (It is called after mbedtls_ecdh_setup().)
+ *
+ * \note            This function assumes that the ECP group (grp) of the
+ *                  \p ctx context has already been properly set,
+ *                  for example, using mbedtls_ecp_group_load().
+ *
+ * \see             ecp.h
+ *
+ * \param ctx       The ECDH context.
+ * \param olen      The number of characters written.
+ * \param buf       The destination buffer.
+ * \param blen      The length of the destination buffer.
+ * \param f_rng     The RNG function.
+ * \param p_rng     The RNG context.
+ *
+ * \return          \c 0 on success.
+ * \return          An \c MBEDTLS_ERR_ECP_XXX error code on failure.
+ */
+int mbedtls_everest_make_params( mbedtls_ecdh_context_everest *ctx, size_t *olen,
+                                 unsigned char *buf, size_t blen,
+                                 int( *f_rng )( void *, unsigned char *, size_t ),
+                                 void *p_rng );
+
+/**
+ * \brief           This function parses and processes a TLS ServerKeyExchange
+ *                  payload.
+ *
+ *                  This is the first function used by a TLS client for ECDHE
+ *                  ciphersuites.
+ *
+ * \see             ecp.h
+ *
+ * \param ctx       The ECDH context.
+ * \param buf       The pointer to the start of the input buffer.
+ * \param end       The address for one Byte past the end of the buffer.
+ *
+ * \return          \c 0 on success.
+ * \return          An \c MBEDTLS_ERR_ECP_XXX error code on failure.
+ *
+ */
+int mbedtls_everest_read_params( mbedtls_ecdh_context_everest *ctx,
+                                 const unsigned char **buf, const unsigned char *end );
+
+/**
+ * \brief           This function parses and processes a TLS ServerKeyExchange
+ *                  payload.
+ *
+ *                  This is the first function used by a TLS client for ECDHE
+ *                  ciphersuites.
+ *
+ * \see             ecp.h
+ *
+ * \param ctx       The ECDH context.
+ * \param buf       The pointer to the start of the input buffer.
+ * \param end       The address for one Byte past the end of the buffer.
+ *
+ * \return          \c 0 on success.
+ * \return          An \c MBEDTLS_ERR_ECP_XXX error code on failure.
+ *
+ */
+int mbedtls_everest_read_params( mbedtls_ecdh_context_everest *ctx,
+                                 const unsigned char **buf, const unsigned char *end );
+
+/**
+ * \brief           This function sets up an ECDH context from an EC key.
+ *
+ *                  It is used by clients and servers in place of the
+ *                  ServerKeyEchange for static ECDH, and imports ECDH
+ *                  parameters from the EC key information of a certificate.
+ *
+ * \see             ecp.h
+ *
+ * \param ctx       The ECDH context to set up.
+ * \param key       The EC key to use.
+ * \param side      Defines the source of the key: 1: Our key, or
+ *                  0: The key of the peer.
+ *
+ * \return          \c 0 on success.
+ * \return          An \c MBEDTLS_ERR_ECP_XXX error code on failure.
+ *
+ */
+int mbedtls_everest_get_params( mbedtls_ecdh_context_everest *ctx, const mbedtls_ecp_keypair *key,
+                                mbedtls_everest_ecdh_side side );
+
+/**
+ * \brief           This function generates a public key and a TLS
+ *                  ClientKeyExchange payload.
+ *
+ *                  This is the second function used by a TLS client for ECDH(E)
+ *                  ciphersuites.
+ *
+ * \see             ecp.h
+ *
+ * \param ctx       The ECDH context.
+ * \param olen      The number of Bytes written.
+ * \param buf       The destination buffer.
+ * \param blen      The size of the destination buffer.
+ * \param f_rng     The RNG function.
+ * \param p_rng     The RNG context.
+ *
+ * \return          \c 0 on success.
+ * \return          An \c MBEDTLS_ERR_ECP_XXX error code on failure.
+ */
+int mbedtls_everest_make_public( mbedtls_ecdh_context_everest *ctx, size_t *olen,
+                                 unsigned char *buf, size_t blen,
+                                 int( *f_rng )( void *, unsigned char *, size_t ),
+                                 void *p_rng );
+
+/**
+ * \brief       This function parses and processes a TLS ClientKeyExchange
+ *              payload.
+ *
+ *              This is the third function used by a TLS server for ECDH(E)
+ *              ciphersuites. (It is called after mbedtls_ecdh_setup() and
+ *              mbedtls_ecdh_make_params().)
+ *
+ * \see         ecp.h
+ *
+ * \param ctx   The ECDH context.
+ * \param buf   The start of the input buffer.
+ * \param blen  The length of the input buffer.
+ *
+ * \return      \c 0 on success.
+ * \return      An \c MBEDTLS_ERR_ECP_XXX error code on failure.
+ */
+int mbedtls_everest_read_public( mbedtls_ecdh_context_everest *ctx,
+                                 const unsigned char *buf, size_t blen );
+
+/**
+ * \brief           This function derives and exports the shared secret.
+ *
+ *                  This is the last function used by both TLS client
+ *                  and servers.
+ *
+ * \note            If \p f_rng is not NULL, it is used to implement
+ *                  countermeasures against side-channel attacks.
+ *                  For more information, see mbedtls_ecp_mul().
+ *
+ * \see             ecp.h
+ *
+ * \param ctx       The ECDH context.
+ * \param olen      The number of Bytes written.
+ * \param buf       The destination buffer.
+ * \param blen      The length of the destination buffer.
+ * \param f_rng     The RNG function.
+ * \param p_rng     The RNG context.
+ *
+ * \return          \c 0 on success.
+ * \return          An \c MBEDTLS_ERR_ECP_XXX error code on failure.
+ */
+int mbedtls_everest_calc_secret( mbedtls_ecdh_context_everest *ctx, size_t *olen,
+                                 unsigned char *buf, size_t blen,
+                                 int( *f_rng )( void *, unsigned char *, size_t ),
+                                 void *p_rng );
+
+#endif /* MBEDTLS_DECLARE_PRIVATE_IDENTIFIERS */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* MBEDTLS_EVEREST_H */
diff --git a/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/everest/include/tf-psa-crypto/private/everest/kremlib.h b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/everest/include/tf-psa-crypto/private/everest/kremlib.h
new file mode 100644
index 00000000000..f06663f0958
--- /dev/null
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/everest/include/tf-psa-crypto/private/everest/kremlib.h
@@ -0,0 +1,29 @@
+/*
+ *  Copyright 2016-2018 INRIA and Microsoft Corporation
+ *
+ *  SPDX-License-Identifier: Apache-2.0
+ *
+ *  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.
+ *
+ *  This file is part of Mbed TLS (https://tls.mbed.org) and
+ *  originated from Project Everest (https://project-everest.github.io/)
+ */
+
+#ifndef __KREMLIB_H
+#define __KREMLIB_H
+
+#include "kremlin/internal/target.h"
+#include "kremlin/internal/types.h"
+#include "kremlin/c_endianness.h"
+
+#endif     /* __KREMLIB_H */
diff --git a/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/everest/include/tf-psa-crypto/private/everest/kremlib/FStar_UInt128.h b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/everest/include/tf-psa-crypto/private/everest/kremlib/FStar_UInt128.h
new file mode 100644
index 00000000000..d71c8820bc7
--- /dev/null
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/everest/include/tf-psa-crypto/private/everest/kremlib/FStar_UInt128.h
@@ -0,0 +1,124 @@
+/* Copyright (c) INRIA and Microsoft Corporation. All rights reserved.
+   Licensed under the Apache 2.0 License. */
+
+/* This file was generated by KreMLin <https://github.com/FStarLang/kremlin>
+ * KreMLin invocation: ../krml -fc89 -fparentheses -fno-shadow -header /mnt/e/everest/verify/hdrB9w -minimal -fparentheses -fcurly-braces -fno-shadow -header copyright-header.txt -minimal -tmpdir dist/uint128 -skip-compilation -extract-uints -add-include <inttypes.h> -add-include <stdbool.h> -add-include "kremlin/internal/types.h" -bundle FStar.UInt128=* extracted/prims.krml extracted/FStar_Pervasives_Native.krml extracted/FStar_Pervasives.krml extracted/FStar_Mul.krml extracted/FStar_Squash.krml extracted/FStar_Classical.krml extracted/FStar_StrongExcludedMiddle.krml extracted/FStar_FunctionalExtensionality.krml extracted/FStar_List_Tot_Base.krml extracted/FStar_List_Tot_Properties.krml extracted/FStar_List_Tot.krml extracted/FStar_Seq_Base.krml extracted/FStar_Seq_Properties.krml extracted/FStar_Seq.krml extracted/FStar_Math_Lib.krml extracted/FStar_Math_Lemmas.krml extracted/FStar_BitVector.krml extracted/FStar_UInt.krml extracted/FStar_UInt32.krml extracted/FStar_Int.krml extracted/FStar_Int16.krml extracted/FStar_Preorder.krml extracted/FStar_Ghost.krml extracted/FStar_ErasedLogic.krml extracted/FStar_UInt64.krml extracted/FStar_Set.krml extracted/FStar_PropositionalExtensionality.krml extracted/FStar_PredicateExtensionality.krml extracted/FStar_TSet.krml extracted/FStar_Monotonic_Heap.krml extracted/FStar_Heap.krml extracted/FStar_Map.krml extracted/FStar_Monotonic_HyperHeap.krml extracted/FStar_Monotonic_HyperStack.krml extracted/FStar_HyperStack.krml extracted/FStar_Monotonic_Witnessed.krml extracted/FStar_HyperStack_ST.krml extracted/FStar_HyperStack_All.krml extracted/FStar_Date.krml extracted/FStar_Universe.krml extracted/FStar_GSet.krml extracted/FStar_ModifiesGen.krml extracted/LowStar_Monotonic_Buffer.krml extracted/LowStar_Buffer.krml extracted/Spec_Loops.krml extracted/LowStar_BufferOps.krml extracted/C_Loops.krml extracted/FStar_UInt8.krml extracted/FStar_Kremlin_Endianness.krml extracted/FStar_UInt63.krml extracted/FStar_Exn.krml extracted/FStar_ST.krml extracted/FStar_All.krml extracted/FStar_Dyn.krml extracted/FStar_Int63.krml extracted/FStar_Int64.krml extracted/FStar_Int32.krml extracted/FStar_Int8.krml extracted/FStar_UInt16.krml extracted/FStar_Int_Cast.krml extracted/FStar_UInt128.krml extracted/C_Endianness.krml extracted/FStar_List.krml extracted/FStar_Float.krml extracted/FStar_IO.krml extracted/C.krml extracted/FStar_Char.krml extracted/FStar_String.krml extracted/LowStar_Modifies.krml extracted/C_String.krml extracted/FStar_Bytes.krml extracted/FStar_HyperStack_IO.krml extracted/C_Failure.krml extracted/TestLib.krml extracted/FStar_Int_Cast_Full.krml
+ * F* version: 059db0c8
+ * KreMLin version: 916c37ac
+ */
+
+
+
+#ifndef __FStar_UInt128_H
+#define __FStar_UInt128_H
+
+
+#include <inttypes.h>
+#include <stdbool.h>
+#include "kremlin/internal/types.h"
+
+uint64_t FStar_UInt128___proj__Mkuint128__item__low(FStar_UInt128_uint128 projectee);
+
+uint64_t FStar_UInt128___proj__Mkuint128__item__high(FStar_UInt128_uint128 projectee);
+
+typedef FStar_UInt128_uint128 FStar_UInt128_t;
+
+FStar_UInt128_uint128 FStar_UInt128_add(FStar_UInt128_uint128 a, FStar_UInt128_uint128 b);
+
+FStar_UInt128_uint128
+FStar_UInt128_add_underspec(FStar_UInt128_uint128 a, FStar_UInt128_uint128 b);
+
+FStar_UInt128_uint128 FStar_UInt128_add_mod(FStar_UInt128_uint128 a, FStar_UInt128_uint128 b);
+
+FStar_UInt128_uint128 FStar_UInt128_sub(FStar_UInt128_uint128 a, FStar_UInt128_uint128 b);
+
+FStar_UInt128_uint128
+FStar_UInt128_sub_underspec(FStar_UInt128_uint128 a, FStar_UInt128_uint128 b);
+
+FStar_UInt128_uint128 FStar_UInt128_sub_mod(FStar_UInt128_uint128 a, FStar_UInt128_uint128 b);
+
+FStar_UInt128_uint128 FStar_UInt128_logand(FStar_UInt128_uint128 a, FStar_UInt128_uint128 b);
+
+FStar_UInt128_uint128 FStar_UInt128_logxor(FStar_UInt128_uint128 a, FStar_UInt128_uint128 b);
+
+FStar_UInt128_uint128 FStar_UInt128_logor(FStar_UInt128_uint128 a, FStar_UInt128_uint128 b);
+
+FStar_UInt128_uint128 FStar_UInt128_lognot(FStar_UInt128_uint128 a);
+
+FStar_UInt128_uint128 FStar_UInt128_shift_left(FStar_UInt128_uint128 a, uint32_t s);
+
+FStar_UInt128_uint128 FStar_UInt128_shift_right(FStar_UInt128_uint128 a, uint32_t s);
+
+bool FStar_UInt128_eq(FStar_UInt128_uint128 a, FStar_UInt128_uint128 b);
+
+bool FStar_UInt128_gt(FStar_UInt128_uint128 a, FStar_UInt128_uint128 b);
+
+bool FStar_UInt128_lt(FStar_UInt128_uint128 a, FStar_UInt128_uint128 b);
+
+bool FStar_UInt128_gte(FStar_UInt128_uint128 a, FStar_UInt128_uint128 b);
+
+bool FStar_UInt128_lte(FStar_UInt128_uint128 a, FStar_UInt128_uint128 b);
+
+FStar_UInt128_uint128 FStar_UInt128_eq_mask(FStar_UInt128_uint128 a, FStar_UInt128_uint128 b);
+
+FStar_UInt128_uint128 FStar_UInt128_gte_mask(FStar_UInt128_uint128 a, FStar_UInt128_uint128 b);
+
+FStar_UInt128_uint128 FStar_UInt128_uint64_to_uint128(uint64_t a);
+
+uint64_t FStar_UInt128_uint128_to_uint64(FStar_UInt128_uint128 a);
+
+extern FStar_UInt128_uint128
+(*FStar_UInt128_op_Plus_Hat)(FStar_UInt128_uint128 x0, FStar_UInt128_uint128 x1);
+
+extern FStar_UInt128_uint128
+(*FStar_UInt128_op_Plus_Question_Hat)(FStar_UInt128_uint128 x0, FStar_UInt128_uint128 x1);
+
+extern FStar_UInt128_uint128
+(*FStar_UInt128_op_Plus_Percent_Hat)(FStar_UInt128_uint128 x0, FStar_UInt128_uint128 x1);
+
+extern FStar_UInt128_uint128
+(*FStar_UInt128_op_Subtraction_Hat)(FStar_UInt128_uint128 x0, FStar_UInt128_uint128 x1);
+
+extern FStar_UInt128_uint128
+(*FStar_UInt128_op_Subtraction_Question_Hat)(
+  FStar_UInt128_uint128 x0,
+  FStar_UInt128_uint128 x1
+);
+
+extern FStar_UInt128_uint128
+(*FStar_UInt128_op_Subtraction_Percent_Hat)(FStar_UInt128_uint128 x0, FStar_UInt128_uint128 x1);
+
+extern FStar_UInt128_uint128
+(*FStar_UInt128_op_Amp_Hat)(FStar_UInt128_uint128 x0, FStar_UInt128_uint128 x1);
+
+extern FStar_UInt128_uint128
+(*FStar_UInt128_op_Hat_Hat)(FStar_UInt128_uint128 x0, FStar_UInt128_uint128 x1);
+
+extern FStar_UInt128_uint128
+(*FStar_UInt128_op_Bar_Hat)(FStar_UInt128_uint128 x0, FStar_UInt128_uint128 x1);
+
+extern FStar_UInt128_uint128
+(*FStar_UInt128_op_Less_Less_Hat)(FStar_UInt128_uint128 x0, uint32_t x1);
+
+extern FStar_UInt128_uint128
+(*FStar_UInt128_op_Greater_Greater_Hat)(FStar_UInt128_uint128 x0, uint32_t x1);
+
+extern bool (*FStar_UInt128_op_Equals_Hat)(FStar_UInt128_uint128 x0, FStar_UInt128_uint128 x1);
+
+extern bool
+(*FStar_UInt128_op_Greater_Hat)(FStar_UInt128_uint128 x0, FStar_UInt128_uint128 x1);
+
+extern bool (*FStar_UInt128_op_Less_Hat)(FStar_UInt128_uint128 x0, FStar_UInt128_uint128 x1);
+
+extern bool
+(*FStar_UInt128_op_Greater_Equals_Hat)(FStar_UInt128_uint128 x0, FStar_UInt128_uint128 x1);
+
+extern bool
+(*FStar_UInt128_op_Less_Equals_Hat)(FStar_UInt128_uint128 x0, FStar_UInt128_uint128 x1);
+
+FStar_UInt128_uint128 FStar_UInt128_mul32(uint64_t x, uint32_t y);
+
+FStar_UInt128_uint128 FStar_UInt128_mul_wide(uint64_t x, uint64_t y);
+
+#define __FStar_UInt128_H_DEFINED
+#endif
diff --git a/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/everest/include/tf-psa-crypto/private/everest/kremlib/FStar_UInt64_FStar_UInt32_FStar_UInt16_FStar_UInt8.h b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/everest/include/tf-psa-crypto/private/everest/kremlib/FStar_UInt64_FStar_UInt32_FStar_UInt16_FStar_UInt8.h
new file mode 100644
index 00000000000..21560c4a5d1
--- /dev/null
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/everest/include/tf-psa-crypto/private/everest/kremlib/FStar_UInt64_FStar_UInt32_FStar_UInt16_FStar_UInt8.h
@@ -0,0 +1,280 @@
+/* Copyright (c) INRIA and Microsoft Corporation. All rights reserved.
+   Licensed under the Apache 2.0 License. */
+
+/* This file was generated by KreMLin <https://github.com/FStarLang/kremlin>
+ * KreMLin invocation: ../krml -fc89 -fparentheses -fno-shadow -header /mnt/e/everest/verify/hdrB9w -minimal -fparentheses -fcurly-braces -fno-shadow -header copyright-header.txt -minimal -tmpdir dist/minimal -skip-compilation -extract-uints -add-include <inttypes.h> -add-include <stdbool.h> -add-include "kremlin/internal/compat.h" -add-include "kremlin/internal/types.h" -bundle FStar.UInt64+FStar.UInt32+FStar.UInt16+FStar.UInt8=* extracted/prims.krml extracted/FStar_Pervasives_Native.krml extracted/FStar_Pervasives.krml extracted/FStar_Mul.krml extracted/FStar_Squash.krml extracted/FStar_Classical.krml extracted/FStar_StrongExcludedMiddle.krml extracted/FStar_FunctionalExtensionality.krml extracted/FStar_List_Tot_Base.krml extracted/FStar_List_Tot_Properties.krml extracted/FStar_List_Tot.krml extracted/FStar_Seq_Base.krml extracted/FStar_Seq_Properties.krml extracted/FStar_Seq.krml extracted/FStar_Math_Lib.krml extracted/FStar_Math_Lemmas.krml extracted/FStar_BitVector.krml extracted/FStar_UInt.krml extracted/FStar_UInt32.krml extracted/FStar_Int.krml extracted/FStar_Int16.krml extracted/FStar_Preorder.krml extracted/FStar_Ghost.krml extracted/FStar_ErasedLogic.krml extracted/FStar_UInt64.krml extracted/FStar_Set.krml extracted/FStar_PropositionalExtensionality.krml extracted/FStar_PredicateExtensionality.krml extracted/FStar_TSet.krml extracted/FStar_Monotonic_Heap.krml extracted/FStar_Heap.krml extracted/FStar_Map.krml extracted/FStar_Monotonic_HyperHeap.krml extracted/FStar_Monotonic_HyperStack.krml extracted/FStar_HyperStack.krml extracted/FStar_Monotonic_Witnessed.krml extracted/FStar_HyperStack_ST.krml extracted/FStar_HyperStack_All.krml extracted/FStar_Date.krml extracted/FStar_Universe.krml extracted/FStar_GSet.krml extracted/FStar_ModifiesGen.krml extracted/LowStar_Monotonic_Buffer.krml extracted/LowStar_Buffer.krml extracted/Spec_Loops.krml extracted/LowStar_BufferOps.krml extracted/C_Loops.krml extracted/FStar_UInt8.krml extracted/FStar_Kremlin_Endianness.krml extracted/FStar_UInt63.krml extracted/FStar_Exn.krml extracted/FStar_ST.krml extracted/FStar_All.krml extracted/FStar_Dyn.krml extracted/FStar_Int63.krml extracted/FStar_Int64.krml extracted/FStar_Int32.krml extracted/FStar_Int8.krml extracted/FStar_UInt16.krml extracted/FStar_Int_Cast.krml extracted/FStar_UInt128.krml extracted/C_Endianness.krml extracted/FStar_List.krml extracted/FStar_Float.krml extracted/FStar_IO.krml extracted/C.krml extracted/FStar_Char.krml extracted/FStar_String.krml extracted/LowStar_Modifies.krml extracted/C_String.krml extracted/FStar_Bytes.krml extracted/FStar_HyperStack_IO.krml extracted/C_Failure.krml extracted/TestLib.krml extracted/FStar_Int_Cast_Full.krml
+ * F* version: 059db0c8
+ * KreMLin version: 916c37ac
+ */
+
+
+
+#ifndef __FStar_UInt64_FStar_UInt32_FStar_UInt16_FStar_UInt8_H
+#define __FStar_UInt64_FStar_UInt32_FStar_UInt16_FStar_UInt8_H
+
+
+#include <inttypes.h>
+#include <stdbool.h>
+#include "kremlin/internal/compat.h"
+#include "kremlin/internal/types.h"
+
+extern Prims_int FStar_UInt64_n;
+
+extern Prims_int FStar_UInt64_v(uint64_t x0);
+
+extern uint64_t FStar_UInt64_uint_to_t(Prims_int x0);
+
+extern uint64_t FStar_UInt64_add(uint64_t x0, uint64_t x1);
+
+extern uint64_t FStar_UInt64_add_underspec(uint64_t x0, uint64_t x1);
+
+extern uint64_t FStar_UInt64_add_mod(uint64_t x0, uint64_t x1);
+
+extern uint64_t FStar_UInt64_sub(uint64_t x0, uint64_t x1);
+
+extern uint64_t FStar_UInt64_sub_underspec(uint64_t x0, uint64_t x1);
+
+extern uint64_t FStar_UInt64_sub_mod(uint64_t x0, uint64_t x1);
+
+extern uint64_t FStar_UInt64_mul(uint64_t x0, uint64_t x1);
+
+extern uint64_t FStar_UInt64_mul_underspec(uint64_t x0, uint64_t x1);
+
+extern uint64_t FStar_UInt64_mul_mod(uint64_t x0, uint64_t x1);
+
+extern uint64_t FStar_UInt64_mul_div(uint64_t x0, uint64_t x1);
+
+extern uint64_t FStar_UInt64_div(uint64_t x0, uint64_t x1);
+
+extern uint64_t FStar_UInt64_rem(uint64_t x0, uint64_t x1);
+
+extern uint64_t FStar_UInt64_logand(uint64_t x0, uint64_t x1);
+
+extern uint64_t FStar_UInt64_logxor(uint64_t x0, uint64_t x1);
+
+extern uint64_t FStar_UInt64_logor(uint64_t x0, uint64_t x1);
+
+extern uint64_t FStar_UInt64_lognot(uint64_t x0);
+
+extern uint64_t FStar_UInt64_shift_right(uint64_t x0, uint32_t x1);
+
+extern uint64_t FStar_UInt64_shift_left(uint64_t x0, uint32_t x1);
+
+extern bool FStar_UInt64_eq(uint64_t x0, uint64_t x1);
+
+extern bool FStar_UInt64_gt(uint64_t x0, uint64_t x1);
+
+extern bool FStar_UInt64_gte(uint64_t x0, uint64_t x1);
+
+extern bool FStar_UInt64_lt(uint64_t x0, uint64_t x1);
+
+extern bool FStar_UInt64_lte(uint64_t x0, uint64_t x1);
+
+extern uint64_t FStar_UInt64_minus(uint64_t x0);
+
+extern uint32_t FStar_UInt64_n_minus_one;
+
+uint64_t FStar_UInt64_eq_mask(uint64_t a, uint64_t b);
+
+uint64_t FStar_UInt64_gte_mask(uint64_t a, uint64_t b);
+
+extern Prims_string FStar_UInt64_to_string(uint64_t x0);
+
+extern uint64_t FStar_UInt64_of_string(Prims_string x0);
+
+extern Prims_int FStar_UInt32_n;
+
+extern Prims_int FStar_UInt32_v(uint32_t x0);
+
+extern uint32_t FStar_UInt32_uint_to_t(Prims_int x0);
+
+extern uint32_t FStar_UInt32_add(uint32_t x0, uint32_t x1);
+
+extern uint32_t FStar_UInt32_add_underspec(uint32_t x0, uint32_t x1);
+
+extern uint32_t FStar_UInt32_add_mod(uint32_t x0, uint32_t x1);
+
+extern uint32_t FStar_UInt32_sub(uint32_t x0, uint32_t x1);
+
+extern uint32_t FStar_UInt32_sub_underspec(uint32_t x0, uint32_t x1);
+
+extern uint32_t FStar_UInt32_sub_mod(uint32_t x0, uint32_t x1);
+
+extern uint32_t FStar_UInt32_mul(uint32_t x0, uint32_t x1);
+
+extern uint32_t FStar_UInt32_mul_underspec(uint32_t x0, uint32_t x1);
+
+extern uint32_t FStar_UInt32_mul_mod(uint32_t x0, uint32_t x1);
+
+extern uint32_t FStar_UInt32_mul_div(uint32_t x0, uint32_t x1);
+
+extern uint32_t FStar_UInt32_div(uint32_t x0, uint32_t x1);
+
+extern uint32_t FStar_UInt32_rem(uint32_t x0, uint32_t x1);
+
+extern uint32_t FStar_UInt32_logand(uint32_t x0, uint32_t x1);
+
+extern uint32_t FStar_UInt32_logxor(uint32_t x0, uint32_t x1);
+
+extern uint32_t FStar_UInt32_logor(uint32_t x0, uint32_t x1);
+
+extern uint32_t FStar_UInt32_lognot(uint32_t x0);
+
+extern uint32_t FStar_UInt32_shift_right(uint32_t x0, uint32_t x1);
+
+extern uint32_t FStar_UInt32_shift_left(uint32_t x0, uint32_t x1);
+
+extern bool FStar_UInt32_eq(uint32_t x0, uint32_t x1);
+
+extern bool FStar_UInt32_gt(uint32_t x0, uint32_t x1);
+
+extern bool FStar_UInt32_gte(uint32_t x0, uint32_t x1);
+
+extern bool FStar_UInt32_lt(uint32_t x0, uint32_t x1);
+
+extern bool FStar_UInt32_lte(uint32_t x0, uint32_t x1);
+
+extern uint32_t FStar_UInt32_minus(uint32_t x0);
+
+extern uint32_t FStar_UInt32_n_minus_one;
+
+uint32_t FStar_UInt32_eq_mask(uint32_t a, uint32_t b);
+
+uint32_t FStar_UInt32_gte_mask(uint32_t a, uint32_t b);
+
+extern Prims_string FStar_UInt32_to_string(uint32_t x0);
+
+extern uint32_t FStar_UInt32_of_string(Prims_string x0);
+
+extern Prims_int FStar_UInt16_n;
+
+extern Prims_int FStar_UInt16_v(uint16_t x0);
+
+extern uint16_t FStar_UInt16_uint_to_t(Prims_int x0);
+
+extern uint16_t FStar_UInt16_add(uint16_t x0, uint16_t x1);
+
+extern uint16_t FStar_UInt16_add_underspec(uint16_t x0, uint16_t x1);
+
+extern uint16_t FStar_UInt16_add_mod(uint16_t x0, uint16_t x1);
+
+extern uint16_t FStar_UInt16_sub(uint16_t x0, uint16_t x1);
+
+extern uint16_t FStar_UInt16_sub_underspec(uint16_t x0, uint16_t x1);
+
+extern uint16_t FStar_UInt16_sub_mod(uint16_t x0, uint16_t x1);
+
+extern uint16_t FStar_UInt16_mul(uint16_t x0, uint16_t x1);
+
+extern uint16_t FStar_UInt16_mul_underspec(uint16_t x0, uint16_t x1);
+
+extern uint16_t FStar_UInt16_mul_mod(uint16_t x0, uint16_t x1);
+
+extern uint16_t FStar_UInt16_mul_div(uint16_t x0, uint16_t x1);
+
+extern uint16_t FStar_UInt16_div(uint16_t x0, uint16_t x1);
+
+extern uint16_t FStar_UInt16_rem(uint16_t x0, uint16_t x1);
+
+extern uint16_t FStar_UInt16_logand(uint16_t x0, uint16_t x1);
+
+extern uint16_t FStar_UInt16_logxor(uint16_t x0, uint16_t x1);
+
+extern uint16_t FStar_UInt16_logor(uint16_t x0, uint16_t x1);
+
+extern uint16_t FStar_UInt16_lognot(uint16_t x0);
+
+extern uint16_t FStar_UInt16_shift_right(uint16_t x0, uint32_t x1);
+
+extern uint16_t FStar_UInt16_shift_left(uint16_t x0, uint32_t x1);
+
+extern bool FStar_UInt16_eq(uint16_t x0, uint16_t x1);
+
+extern bool FStar_UInt16_gt(uint16_t x0, uint16_t x1);
+
+extern bool FStar_UInt16_gte(uint16_t x0, uint16_t x1);
+
+extern bool FStar_UInt16_lt(uint16_t x0, uint16_t x1);
+
+extern bool FStar_UInt16_lte(uint16_t x0, uint16_t x1);
+
+extern uint16_t FStar_UInt16_minus(uint16_t x0);
+
+extern uint32_t FStar_UInt16_n_minus_one;
+
+uint16_t FStar_UInt16_eq_mask(uint16_t a, uint16_t b);
+
+uint16_t FStar_UInt16_gte_mask(uint16_t a, uint16_t b);
+
+extern Prims_string FStar_UInt16_to_string(uint16_t x0);
+
+extern uint16_t FStar_UInt16_of_string(Prims_string x0);
+
+extern Prims_int FStar_UInt8_n;
+
+extern Prims_int FStar_UInt8_v(uint8_t x0);
+
+extern uint8_t FStar_UInt8_uint_to_t(Prims_int x0);
+
+extern uint8_t FStar_UInt8_add(uint8_t x0, uint8_t x1);
+
+extern uint8_t FStar_UInt8_add_underspec(uint8_t x0, uint8_t x1);
+
+extern uint8_t FStar_UInt8_add_mod(uint8_t x0, uint8_t x1);
+
+extern uint8_t FStar_UInt8_sub(uint8_t x0, uint8_t x1);
+
+extern uint8_t FStar_UInt8_sub_underspec(uint8_t x0, uint8_t x1);
+
+extern uint8_t FStar_UInt8_sub_mod(uint8_t x0, uint8_t x1);
+
+extern uint8_t FStar_UInt8_mul(uint8_t x0, uint8_t x1);
+
+extern uint8_t FStar_UInt8_mul_underspec(uint8_t x0, uint8_t x1);
+
+extern uint8_t FStar_UInt8_mul_mod(uint8_t x0, uint8_t x1);
+
+extern uint8_t FStar_UInt8_mul_div(uint8_t x0, uint8_t x1);
+
+extern uint8_t FStar_UInt8_div(uint8_t x0, uint8_t x1);
+
+extern uint8_t FStar_UInt8_rem(uint8_t x0, uint8_t x1);
+
+extern uint8_t FStar_UInt8_logand(uint8_t x0, uint8_t x1);
+
+extern uint8_t FStar_UInt8_logxor(uint8_t x0, uint8_t x1);
+
+extern uint8_t FStar_UInt8_logor(uint8_t x0, uint8_t x1);
+
+extern uint8_t FStar_UInt8_lognot(uint8_t x0);
+
+extern uint8_t FStar_UInt8_shift_right(uint8_t x0, uint32_t x1);
+
+extern uint8_t FStar_UInt8_shift_left(uint8_t x0, uint32_t x1);
+
+extern bool FStar_UInt8_eq(uint8_t x0, uint8_t x1);
+
+extern bool FStar_UInt8_gt(uint8_t x0, uint8_t x1);
+
+extern bool FStar_UInt8_gte(uint8_t x0, uint8_t x1);
+
+extern bool FStar_UInt8_lt(uint8_t x0, uint8_t x1);
+
+extern bool FStar_UInt8_lte(uint8_t x0, uint8_t x1);
+
+extern uint8_t FStar_UInt8_minus(uint8_t x0);
+
+extern uint32_t FStar_UInt8_n_minus_one;
+
+uint8_t FStar_UInt8_eq_mask(uint8_t a, uint8_t b);
+
+uint8_t FStar_UInt8_gte_mask(uint8_t a, uint8_t b);
+
+extern Prims_string FStar_UInt8_to_string(uint8_t x0);
+
+extern uint8_t FStar_UInt8_of_string(Prims_string x0);
+
+typedef uint8_t FStar_UInt8_byte;
+
+#define __FStar_UInt64_FStar_UInt32_FStar_UInt16_FStar_UInt8_H_DEFINED
+#endif
diff --git a/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/everest/include/tf-psa-crypto/private/everest/kremlin/c_endianness.h b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/everest/include/tf-psa-crypto/private/everest/kremlin/c_endianness.h
new file mode 100644
index 00000000000..1b0d0eb05b0
--- /dev/null
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/everest/include/tf-psa-crypto/private/everest/kremlin/c_endianness.h
@@ -0,0 +1,206 @@
+/* Copyright (c) INRIA and Microsoft Corporation. All rights reserved.
+   Licensed under the Apache 2.0 License. */
+
+#ifndef __KREMLIN_ENDIAN_H
+#define __KREMLIN_ENDIAN_H
+
+#include <string.h>
+#include <inttypes.h>
+
+#include "kremlin/internal/callconv.h"
+
+/******************************************************************************/
+/* Implementing C.fst (part 2: endian-ness macros)                            */
+/******************************************************************************/
+
+/* ... for Linux */
+#if defined(__linux__) || defined(__CYGWIN__)
+#  include <endian.h>
+
+/* ... for OSX */
+#elif defined(__APPLE__)
+#  include <libkern/OSByteOrder.h>
+#  define htole64(x) OSSwapHostToLittleInt64(x)
+#  define le64toh(x) OSSwapLittleToHostInt64(x)
+#  define htobe64(x) OSSwapHostToBigInt64(x)
+#  define be64toh(x) OSSwapBigToHostInt64(x)
+
+#  define htole16(x) OSSwapHostToLittleInt16(x)
+#  define le16toh(x) OSSwapLittleToHostInt16(x)
+#  define htobe16(x) OSSwapHostToBigInt16(x)
+#  define be16toh(x) OSSwapBigToHostInt16(x)
+
+#  define htole32(x) OSSwapHostToLittleInt32(x)
+#  define le32toh(x) OSSwapLittleToHostInt32(x)
+#  define htobe32(x) OSSwapHostToBigInt32(x)
+#  define be32toh(x) OSSwapBigToHostInt32(x)
+
+/* ... for Solaris */
+#elif defined(__sun__)
+#  include <sys/byteorder.h>
+#  define htole64(x) LE_64(x)
+#  define le64toh(x) LE_64(x)
+#  define htobe64(x) BE_64(x)
+#  define be64toh(x) BE_64(x)
+
+#  define htole16(x) LE_16(x)
+#  define le16toh(x) LE_16(x)
+#  define htobe16(x) BE_16(x)
+#  define be16toh(x) BE_16(x)
+
+#  define htole32(x) LE_32(x)
+#  define le32toh(x) LE_32(x)
+#  define htobe32(x) BE_32(x)
+#  define be32toh(x) BE_32(x)
+
+/* ... for the BSDs */
+#elif defined(__FreeBSD__) || defined(__NetBSD__) || defined(__DragonFly__)
+#  include <sys/endian.h>
+#elif defined(__OpenBSD__)
+#  include <endian.h>
+
+/* ... for Windows (MSVC)... not targeting XBOX 360! */
+#elif defined(_MSC_VER)
+
+#  include <stdlib.h>
+#  define htobe16(x) _byteswap_ushort(x)
+#  define htole16(x) (x)
+#  define be16toh(x) _byteswap_ushort(x)
+#  define le16toh(x) (x)
+
+#  define htobe32(x) _byteswap_ulong(x)
+#  define htole32(x) (x)
+#  define be32toh(x) _byteswap_ulong(x)
+#  define le32toh(x) (x)
+
+#  define htobe64(x) _byteswap_uint64(x)
+#  define htole64(x) (x)
+#  define be64toh(x) _byteswap_uint64(x)
+#  define le64toh(x) (x)
+
+/* ... for Windows (GCC-like, e.g. mingw or clang) */
+#elif (defined(_WIN32) || defined(_WIN64)) &&                                  \
+    (defined(__GNUC__) || defined(__clang__))
+
+#  define htobe16(x) __builtin_bswap16(x)
+#  define htole16(x) (x)
+#  define be16toh(x) __builtin_bswap16(x)
+#  define le16toh(x) (x)
+
+#  define htobe32(x) __builtin_bswap32(x)
+#  define htole32(x) (x)
+#  define be32toh(x) __builtin_bswap32(x)
+#  define le32toh(x) (x)
+
+#  define htobe64(x) __builtin_bswap64(x)
+#  define htole64(x) (x)
+#  define be64toh(x) __builtin_bswap64(x)
+#  define le64toh(x) (x)
+
+/* ... generic big-endian fallback code */
+#elif defined(__BYTE_ORDER__) && __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__
+
+/* byte swapping code inspired by:
+ * https://github.com/rweather/arduinolibs/blob/master/libraries/Crypto/utility/EndianUtil.h
+ * */
+
+#  define htobe32(x) (x)
+#  define be32toh(x) (x)
+#  define htole32(x)                                                           \
+    (__extension__({                                                           \
+      uint32_t _temp = (x);                                                    \
+      ((_temp >> 24) & 0x000000FF) | ((_temp >> 8) & 0x0000FF00) |             \
+          ((_temp << 8) & 0x00FF0000) | ((_temp << 24) & 0xFF000000);          \
+    }))
+#  define le32toh(x) (htole32((x)))
+
+#  define htobe64(x) (x)
+#  define be64toh(x) (x)
+#  define htole64(x)                                                           \
+    (__extension__({                                                           \
+      uint64_t __temp = (x);                                                   \
+      uint32_t __low = htobe32((uint32_t)__temp);                              \
+      uint32_t __high = htobe32((uint32_t)(__temp >> 32));                     \
+      (((uint64_t)__low) << 32) | __high;                                      \
+    }))
+#  define le64toh(x) (htole64((x)))
+
+/* ... generic little-endian fallback code */
+#elif defined(__BYTE_ORDER__) && __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
+
+#  define htole32(x) (x)
+#  define le32toh(x) (x)
+#  define htobe32(x)                                                           \
+    (__extension__({                                                           \
+      uint32_t _temp = (x);                                                    \
+      ((_temp >> 24) & 0x000000FF) | ((_temp >> 8) & 0x0000FF00) |             \
+          ((_temp << 8) & 0x00FF0000) | ((_temp << 24) & 0xFF000000);          \
+    }))
+#  define be32toh(x) (htobe32((x)))
+
+#  define htole64(x) (x)
+#  define le64toh(x) (x)
+#  define htobe64(x)                                                           \
+    (__extension__({                                                           \
+      uint64_t __temp = (x);                                                   \
+      uint32_t __low = htobe32((uint32_t)__temp);                              \
+      uint32_t __high = htobe32((uint32_t)(__temp >> 32));                     \
+      (((uint64_t)__low) << 32) | __high;                                      \
+    }))
+#  define be64toh(x) (htobe64((x)))
+
+/* ... couldn't determine endian-ness of the target platform */
+#else
+#  error "Please define __BYTE_ORDER__!"
+
+#endif /* defined(__linux__) || ... */
+
+/* Loads and stores. These avoid undefined behavior due to unaligned memory
+ * accesses, via memcpy. */
+
+inline static uint16_t load16(uint8_t *b) {
+  uint16_t x;
+  memcpy(&x, b, 2);
+  return x;
+}
+
+inline static uint32_t load32(uint8_t *b) {
+  uint32_t x;
+  memcpy(&x, b, 4);
+  return x;
+}
+
+inline static uint64_t load64(uint8_t *b) {
+  uint64_t x;
+  memcpy(&x, b, 8);
+  return x;
+}
+
+inline static void store16(uint8_t *b, uint16_t i) {
+  memcpy(b, &i, 2);
+}
+
+inline static void store32(uint8_t *b, uint32_t i) {
+  memcpy(b, &i, 4);
+}
+
+inline static void store64(uint8_t *b, uint64_t i) {
+  memcpy(b, &i, 8);
+}
+
+#define load16_le(b) (le16toh(load16(b)))
+#define store16_le(b, i) (store16(b, htole16(i)))
+#define load16_be(b) (be16toh(load16(b)))
+#define store16_be(b, i) (store16(b, htobe16(i)))
+
+#define load32_le(b) (le32toh(load32(b)))
+#define store32_le(b, i) (store32(b, htole32(i)))
+#define load32_be(b) (be32toh(load32(b)))
+#define store32_be(b, i) (store32(b, htobe32(i)))
+
+#define load64_le(b) (le64toh(load64(b)))
+#define store64_le(b, i) (store64(b, htole64(i)))
+#define load64_be(b) (be64toh(load64(b)))
+#define store64_be(b, i) (store64(b, htobe64(i)))
+
+#endif
diff --git a/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/everest/include/tf-psa-crypto/private/everest/kremlin/internal/builtin.h b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/everest/include/tf-psa-crypto/private/everest/kremlin/internal/builtin.h
new file mode 100644
index 00000000000..219b2668621
--- /dev/null
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/everest/include/tf-psa-crypto/private/everest/kremlin/internal/builtin.h
@@ -0,0 +1,16 @@
+/* Copyright (c) INRIA and Microsoft Corporation. All rights reserved.
+   Licensed under the Apache 2.0 License. */
+
+#ifndef __KREMLIN_BUILTIN_H
+#define __KREMLIN_BUILTIN_H
+
+/* For alloca, when using KreMLin's -falloca */
+#if (defined(_WIN32) || defined(_WIN64))
+#  include <malloc.h>
+#endif
+
+/* If some globals need to be initialized before the main, then kremlin will
+ * generate and try to link last a function with this type: */
+void kremlinit_globals(void);
+
+#endif
diff --git a/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/everest/include/tf-psa-crypto/private/everest/kremlin/internal/callconv.h b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/everest/include/tf-psa-crypto/private/everest/kremlin/internal/callconv.h
new file mode 100644
index 00000000000..8ff8ca5ae95
--- /dev/null
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/everest/include/tf-psa-crypto/private/everest/kremlin/internal/callconv.h
@@ -0,0 +1,48 @@
+/* Copyright (c) INRIA and Microsoft Corporation. All rights reserved.
+   Licensed under the Apache 2.0 License. */
+
+#ifndef __KREMLIN_CALLCONV_H
+#define __KREMLIN_CALLCONV_H
+
+/******************************************************************************/
+/* Some macros to ease compatibility                                          */
+/******************************************************************************/
+
+/* We want to generate __cdecl safely without worrying about it being undefined.
+ * When using MSVC, these are always defined. When using MinGW, these are
+ * defined too. They have no meaning for other platforms, so we define them to
+ * be empty macros in other situations. */
+#ifndef _MSC_VER
+#ifndef __cdecl
+#define __cdecl
+#endif
+#ifndef __stdcall
+#define __stdcall
+#endif
+#ifndef __fastcall
+#define __fastcall
+#endif
+#endif
+
+/* Since KreMLin emits the inline keyword unconditionally, we follow the
+ * guidelines at https://gcc.gnu.org/onlinedocs/gcc/Inline.html and make this
+ * __inline__ to ensure the code compiles with -std=c90 and earlier. */
+#if defined(__GNUC__)
+#  define inline __inline__
+#elif defined(_MSC_VER)
+#  define inline __inline
+#endif
+
+/* GCC-specific attribute syntax; everyone else gets the standard C inline
+ * attribute. */
+#ifdef __GNU_C__
+#  ifndef __clang__
+#    define force_inline inline __attribute__((always_inline))
+#  else
+#    define force_inline inline
+#  endif
+#else
+#  define force_inline inline
+#endif
+
+#endif
diff --git a/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/everest/include/tf-psa-crypto/private/everest/kremlin/internal/compat.h b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/everest/include/tf-psa-crypto/private/everest/kremlin/internal/compat.h
new file mode 100644
index 00000000000..a5b8889da85
--- /dev/null
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/everest/include/tf-psa-crypto/private/everest/kremlin/internal/compat.h
@@ -0,0 +1,34 @@
+/* Copyright (c) INRIA and Microsoft Corporation. All rights reserved.
+   Licensed under the Apache 2.0 License. */
+
+#ifndef KRML_COMPAT_H
+#define KRML_COMPAT_H
+
+#include <inttypes.h>
+
+/* A series of macros that define C implementations of types that are not Low*,
+ * to facilitate porting programs to Low*. */
+
+typedef const char *Prims_string;
+
+typedef struct {
+  uint32_t length;
+  const char *data;
+} FStar_Bytes_bytes;
+
+typedef int32_t Prims_pos, Prims_nat, Prims_nonzero, Prims_int,
+    krml_checked_int_t;
+
+#define RETURN_OR(x)                                                           \
+  do {                                                                         \
+    int64_t __ret = x;                                                         \
+    if (__ret < INT32_MIN || INT32_MAX < __ret) {                              \
+      KRML_HOST_PRINTF(                                                        \
+          "Prims.{int,nat,pos} integer overflow at %s:%d\n", __FILE__,         \
+          __LINE__);                                                           \
+      KRML_HOST_EXIT(252);                                                     \
+    }                                                                          \
+    return (int32_t)__ret;                                                     \
+  } while (0)
+
+#endif
diff --git a/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/everest/include/tf-psa-crypto/private/everest/kremlin/internal/debug.h b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/everest/include/tf-psa-crypto/private/everest/kremlin/internal/debug.h
new file mode 100644
index 00000000000..44ac22cd623
--- /dev/null
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/everest/include/tf-psa-crypto/private/everest/kremlin/internal/debug.h
@@ -0,0 +1,57 @@
+/* Copyright (c) INRIA and Microsoft Corporation. All rights reserved.
+   Licensed under the Apache 2.0 License. */
+
+#ifndef __KREMLIN_DEBUG_H
+#define __KREMLIN_DEBUG_H
+
+#include <inttypes.h>
+
+#include "kremlin/internal/target.h"
+
+/******************************************************************************/
+/* Debugging helpers - intended only for KreMLin developers                   */
+/******************************************************************************/
+
+/* In support of "-wasm -d force-c": we might need this function to be
+ * forward-declared, because the dependency on WasmSupport appears very late,
+ * after SimplifyWasm, and sadly, after the topological order has been done. */
+void WasmSupport_check_buffer_size(uint32_t s);
+
+/* A series of GCC atrocities to trace function calls (kremlin's [-d c-calls]
+ * option). Useful when trying to debug, say, Wasm, to compare traces. */
+/* clang-format off */
+#ifdef __GNUC__
+#define KRML_FORMAT(X) _Generic((X),                                           \
+  uint8_t : "0x%08" PRIx8,                                                     \
+  uint16_t: "0x%08" PRIx16,                                                    \
+  uint32_t: "0x%08" PRIx32,                                                    \
+  uint64_t: "0x%08" PRIx64,                                                    \
+  int8_t  : "0x%08" PRIx8,                                                     \
+  int16_t : "0x%08" PRIx16,                                                    \
+  int32_t : "0x%08" PRIx32,                                                    \
+  int64_t : "0x%08" PRIx64,                                                    \
+  default : "%s")
+
+#define KRML_FORMAT_ARG(X) _Generic((X),                                       \
+  uint8_t : X,                                                                 \
+  uint16_t: X,                                                                 \
+  uint32_t: X,                                                                 \
+  uint64_t: X,                                                                 \
+  int8_t  : X,                                                                 \
+  int16_t : X,                                                                 \
+  int32_t : X,                                                                 \
+  int64_t : X,                                                                 \
+  default : "unknown")
+/* clang-format on */
+
+#  define KRML_DEBUG_RETURN(X)                                                 \
+    ({                                                                         \
+      __auto_type _ret = (X);                                                  \
+      KRML_HOST_PRINTF("returning: ");                                         \
+      KRML_HOST_PRINTF(KRML_FORMAT(_ret), KRML_FORMAT_ARG(_ret));              \
+      KRML_HOST_PRINTF(" \n");                                                 \
+      _ret;                                                                    \
+    })
+#endif
+
+#endif
diff --git a/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/everest/include/tf-psa-crypto/private/everest/kremlin/internal/target.h b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/everest/include/tf-psa-crypto/private/everest/kremlin/internal/target.h
new file mode 100644
index 00000000000..b552f52b066
--- /dev/null
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/everest/include/tf-psa-crypto/private/everest/kremlin/internal/target.h
@@ -0,0 +1,102 @@
+/* Copyright (c) INRIA and Microsoft Corporation. All rights reserved.
+   Licensed under the Apache 2.0 License. */
+
+#ifndef __KREMLIN_TARGET_H
+#define __KREMLIN_TARGET_H
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <stdbool.h>
+#include <inttypes.h>
+#include <limits.h>
+
+#include "kremlin/internal/callconv.h"
+
+/******************************************************************************/
+/* Macros that KreMLin will generate.                                         */
+/******************************************************************************/
+
+/* For "bare" targets that do not have a C stdlib, the user might want to use
+ * [-add-early-include '"mydefinitions.h"'] and override these. */
+#ifndef KRML_HOST_PRINTF
+#  define KRML_HOST_PRINTF printf
+#endif
+
+#if (                                                                          \
+    (defined __STDC_VERSION__) && (__STDC_VERSION__ >= 199901L) &&             \
+    (!(defined KRML_HOST_EPRINTF)))
+#  define KRML_HOST_EPRINTF(...) fprintf(stderr, __VA_ARGS__)
+#endif
+
+#ifndef KRML_HOST_EXIT
+#  define KRML_HOST_EXIT exit
+#endif
+
+#ifndef KRML_HOST_MALLOC
+#  define KRML_HOST_MALLOC malloc
+#endif
+
+#ifndef KRML_HOST_CALLOC
+#  define KRML_HOST_CALLOC calloc
+#endif
+
+#ifndef KRML_HOST_FREE
+#  define KRML_HOST_FREE free
+#endif
+
+#ifndef KRML_HOST_TIME
+
+#  include <time.h>
+
+/* Prims_nat not yet in scope */
+inline static int32_t krml_time() {
+  return (int32_t)time(NULL);
+}
+
+#  define KRML_HOST_TIME krml_time
+#endif
+
+/* In statement position, exiting is easy. */
+#define KRML_EXIT                                                              \
+  do {                                                                         \
+    KRML_HOST_PRINTF("Unimplemented function at %s:%d\n", __FILE__, __LINE__); \
+    KRML_HOST_EXIT(254);                                                       \
+  } while (0)
+
+/* In expression position, use the comma-operator and a malloc to return an
+ * expression of the right size. KreMLin passes t as the parameter to the macro.
+ */
+#define KRML_EABORT(t, msg)                                                    \
+  (KRML_HOST_PRINTF("KreMLin abort at %s:%d\n%s\n", __FILE__, __LINE__, msg),  \
+   KRML_HOST_EXIT(255), *((t *)KRML_HOST_MALLOC(sizeof(t))))
+
+/* In FStar.Buffer.fst, the size of arrays is uint32_t, but it's a number of
+ * *elements*. Do an ugly, run-time check (some of which KreMLin can eliminate).
+ */
+
+#ifdef __GNUC__
+#  define _KRML_CHECK_SIZE_PRAGMA                                              \
+    _Pragma("GCC diagnostic ignored \"-Wtype-limits\"")
+#else
+#  define _KRML_CHECK_SIZE_PRAGMA
+#endif
+
+#define KRML_CHECK_SIZE(size_elt, sz)                                          \
+  do {                                                                         \
+    _KRML_CHECK_SIZE_PRAGMA                                                    \
+    if (((size_t)(sz)) > ((size_t)(SIZE_MAX / (size_elt)))) {                  \
+      KRML_HOST_PRINTF(                                                        \
+          "Maximum allocatable size exceeded, aborting before overflow at "    \
+          "%s:%d\n",                                                           \
+          __FILE__, __LINE__);                                                 \
+      KRML_HOST_EXIT(253);                                                     \
+    }                                                                          \
+  } while (0)
+
+#if defined(_MSC_VER) && _MSC_VER < 1900
+#  define KRML_HOST_SNPRINTF(buf, sz, fmt, arg) _snprintf_s(buf, sz, _TRUNCATE, fmt, arg)
+#else
+#  define KRML_HOST_SNPRINTF(buf, sz, fmt, arg) snprintf(buf, sz, fmt, arg)
+#endif
+
+#endif
diff --git a/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/everest/include/tf-psa-crypto/private/everest/kremlin/internal/types.h b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/everest/include/tf-psa-crypto/private/everest/kremlin/internal/types.h
new file mode 100644
index 00000000000..b936f00db5a
--- /dev/null
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/everest/include/tf-psa-crypto/private/everest/kremlin/internal/types.h
@@ -0,0 +1,61 @@
+/* Copyright (c) INRIA and Microsoft Corporation. All rights reserved.
+   Licensed under the Apache 2.0 License. */
+
+#ifndef KRML_TYPES_H
+#define KRML_TYPES_H
+
+#include <inttypes.h>
+#include <stdio.h>
+#include <stdlib.h>
+
+/* Types which are either abstract, meaning that have to be implemented in C, or
+ * which are models, meaning that they are swapped out at compile-time for
+ * hand-written C types (in which case they're marked as noextract). */
+
+typedef uint64_t FStar_UInt64_t, FStar_UInt64_t_;
+typedef int64_t FStar_Int64_t, FStar_Int64_t_;
+typedef uint32_t FStar_UInt32_t, FStar_UInt32_t_;
+typedef int32_t FStar_Int32_t, FStar_Int32_t_;
+typedef uint16_t FStar_UInt16_t, FStar_UInt16_t_;
+typedef int16_t FStar_Int16_t, FStar_Int16_t_;
+typedef uint8_t FStar_UInt8_t, FStar_UInt8_t_;
+typedef int8_t FStar_Int8_t, FStar_Int8_t_;
+
+/* Only useful when building Kremlib, because it's in the dependency graph of
+ * FStar.Int.Cast. */
+typedef uint64_t FStar_UInt63_t, FStar_UInt63_t_;
+typedef int64_t FStar_Int63_t, FStar_Int63_t_;
+
+typedef double FStar_Float_float;
+typedef uint32_t FStar_Char_char;
+typedef FILE *FStar_IO_fd_read, *FStar_IO_fd_write;
+
+typedef void *FStar_Dyn_dyn;
+
+typedef const char *C_String_t, *C_String_t_;
+
+typedef int exit_code;
+typedef FILE *channel;
+
+typedef unsigned long long TestLib_cycles;
+
+typedef uint64_t FStar_Date_dateTime, FStar_Date_timeSpan;
+
+/* The uint128 type is a special case since we offer several implementations of
+ * it, depending on the compiler and whether the user wants the verified
+ * implementation or not. */
+#if !defined(KRML_VERIFIED_UINT128) && defined(_MSC_VER) && defined(_M_X64)
+#  include <emmintrin.h>
+typedef __m128i FStar_UInt128_uint128;
+#elif !defined(KRML_VERIFIED_UINT128) && !defined(_MSC_VER)
+typedef unsigned __int128 FStar_UInt128_uint128;
+#else
+typedef struct FStar_UInt128_uint128_s {
+  uint64_t low;
+  uint64_t high;
+} FStar_UInt128_uint128;
+#endif
+
+typedef FStar_UInt128_uint128 FStar_UInt128_t, FStar_UInt128_t_, uint128_t;
+
+#endif
diff --git a/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/everest/include/tf-psa-crypto/private/everest/kremlin/internal/wasmsupport.h b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/everest/include/tf-psa-crypto/private/everest/kremlin/internal/wasmsupport.h
new file mode 100644
index 00000000000..b44fa3f75dd
--- /dev/null
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/everest/include/tf-psa-crypto/private/everest/kremlin/internal/wasmsupport.h
@@ -0,0 +1,5 @@
+/* Copyright (c) INRIA and Microsoft Corporation. All rights reserved.
+   Licensed under the Apache 2.0 License. */
+
+/* This file is automatically included when compiling with -wasm -d force-c */
+#define WasmSupport_check_buffer_size(X)
diff --git a/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/everest/include/tf-psa-crypto/private/everest/vs2013/Hacl_Curve25519.h b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/everest/include/tf-psa-crypto/private/everest/vs2013/Hacl_Curve25519.h
new file mode 100644
index 00000000000..27ebe07947c
--- /dev/null
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/everest/include/tf-psa-crypto/private/everest/vs2013/Hacl_Curve25519.h
@@ -0,0 +1,21 @@
+/* Copyright (c) INRIA and Microsoft Corporation. All rights reserved.
+   Licensed under the Apache 2.0 License. */
+
+/* This file was generated by KreMLin <https://github.com/FStarLang/kremlin>
+ * KreMLin invocation: /mnt/e/everest/verify/kremlin/krml -fc89 -fparentheses -fno-shadow -header /mnt/e/everest/verify/hdrcLh -minimal -fc89 -fparentheses -fno-shadow -header /mnt/e/everest/verify/hdrcLh -minimal -I /mnt/e/everest/verify/hacl-star/code/lib/kremlin -I /mnt/e/everest/verify/kremlin/kremlib/compat -I /mnt/e/everest/verify/hacl-star/specs -I /mnt/e/everest/verify/hacl-star/specs/old -I . -ccopt -march=native -verbose -ldopt -flto -tmpdir x25519-c -I ../bignum -bundle Hacl.Curve25519=* -minimal -add-include "kremlib.h" -skip-compilation x25519-c/out.krml -o x25519-c/Hacl_Curve25519.c
+ * F* version: 059db0c8
+ * KreMLin version: 916c37ac
+ */
+
+
+
+#ifndef __Hacl_Curve25519_H
+#define __Hacl_Curve25519_H
+
+
+#include "kremlib.h"
+
+void Hacl_Curve25519_crypto_scalarmult(uint8_t *mypublic, uint8_t *secret, uint8_t *basepoint);
+
+#define __Hacl_Curve25519_H_DEFINED
+#endif
diff --git a/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/everest/include/tf-psa-crypto/private/everest/x25519.h b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/everest/include/tf-psa-crypto/private/everest/x25519.h
new file mode 100644
index 00000000000..9c263cb1075
--- /dev/null
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/everest/include/tf-psa-crypto/private/everest/x25519.h
@@ -0,0 +1,196 @@
+/*
+ *  ECDH with curve-optimized implementation multiplexing
+ *
+ *  Copyright 2016-2018 INRIA and Microsoft Corporation
+ *  SPDX-License-Identifier: Apache-2.0
+ *
+ *  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.
+ *
+ *  This file is part of Mbed TLS (https://tls.mbed.org)
+ */
+
+#ifndef MBEDTLS_X25519_H
+#define MBEDTLS_X25519_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define MBEDTLS_ECP_TLS_CURVE25519 0x1d
+#define MBEDTLS_X25519_KEY_SIZE_BYTES 32
+
+/**
+ * Defines the source of the imported EC key.
+ */
+typedef enum
+{
+    MBEDTLS_X25519_ECDH_OURS,   /**< Our key. */
+    MBEDTLS_X25519_ECDH_THEIRS, /**< The key of the peer. */
+} mbedtls_x25519_ecdh_side;
+
+/**
+ * \brief           The x25519 context structure.
+ */
+typedef struct
+{
+  unsigned char our_secret[MBEDTLS_X25519_KEY_SIZE_BYTES];
+  unsigned char peer_point[MBEDTLS_X25519_KEY_SIZE_BYTES];
+} mbedtls_x25519_context;
+
+#define MBEDTLS_X25519_CONTEXT_INIT {{0}, {0}}
+
+#if defined(MBEDTLS_DECLARE_PRIVATE_IDENTIFIERS)
+
+/**
+ * \brief           This function initializes an x25519 context.
+ *
+ * \param ctx       The x25519 context to initialize.
+ */
+void mbedtls_x25519_init( mbedtls_x25519_context *ctx );
+
+/**
+ * \brief           This function frees a context.
+ *
+ * \param ctx       The context to free.
+ */
+void mbedtls_x25519_free( mbedtls_x25519_context *ctx );
+
+/**
+ * \brief           This function generates a public key and a TLS
+ *                  ServerKeyExchange payload.
+ *
+ *                  This is the first function used by a TLS server for x25519.
+ *
+ *
+ * \param ctx       The x25519 context.
+ * \param olen      The number of characters written.
+ * \param buf       The destination buffer.
+ * \param blen      The length of the destination buffer.
+ * \param f_rng     The RNG function.
+ * \param p_rng     The RNG context.
+ *
+ * \return          \c 0 on success.
+ * \return          An \c MBEDTLS_ERR_ECP_XXX error code on failure.
+ */
+int mbedtls_x25519_make_params( mbedtls_x25519_context *ctx, size_t *olen,
+                        unsigned char *buf, size_t blen,
+                        int( *f_rng )(void *, unsigned char *, size_t),
+                        void *p_rng );
+
+/**
+ * \brief           This function parses and processes a TLS ServerKeyExchange
+ *                  payload.
+ *
+ *
+ * \param ctx       The x25519 context.
+ * \param buf       The pointer to the start of the input buffer.
+ * \param end       The address for one Byte past the end of the buffer.
+ *
+ * \return          \c 0 on success.
+ * \return          An \c MBEDTLS_ERR_ECP_XXX error code on failure.
+ *
+ */
+int mbedtls_x25519_read_params( mbedtls_x25519_context *ctx,
+                        const unsigned char **buf, const unsigned char *end );
+
+/**
+ * \brief           This function sets up an x25519 context from an EC key.
+ *
+ *                  It is used by clients and servers in place of the
+ *                  ServerKeyEchange for static ECDH, and imports ECDH
+ *                  parameters from the EC key information of a certificate.
+ *
+ * \see             ecp.h
+ *
+ * \param ctx       The x25519 context to set up.
+ * \param key       The EC key to use.
+ * \param side      Defines the source of the key: 1: Our key, or
+ *                  0: The key of the peer.
+ *
+ * \return          \c 0 on success.
+ * \return          An \c MBEDTLS_ERR_ECP_XXX error code on failure.
+ *
+ */
+int mbedtls_x25519_get_params( mbedtls_x25519_context *ctx, const mbedtls_ecp_keypair *key,
+                               mbedtls_x25519_ecdh_side side );
+
+/**
+ * \brief           This function derives and exports the shared secret.
+ *
+ *                  This is the last function used by both TLS client
+ *                  and servers.
+ *
+ *
+ * \param ctx       The x25519 context.
+ * \param olen      The number of Bytes written.
+ * \param buf       The destination buffer.
+ * \param blen      The length of the destination buffer.
+ * \param f_rng     The RNG function.
+ * \param p_rng     The RNG context.
+ *
+ * \return          \c 0 on success.
+ * \return          An \c MBEDTLS_ERR_ECP_XXX error code on failure.
+ */
+int mbedtls_x25519_calc_secret( mbedtls_x25519_context *ctx, size_t *olen,
+                        unsigned char *buf, size_t blen,
+                        int( *f_rng )(void *, unsigned char *, size_t),
+                        void *p_rng );
+
+/**
+ * \brief           This function generates a public key and a TLS
+ *                  ClientKeyExchange payload.
+ *
+ *                  This is the second function used by a TLS client for x25519.
+ *
+ * \see             ecp.h
+ *
+ * \param ctx       The x25519 context.
+ * \param olen      The number of Bytes written.
+ * \param buf       The destination buffer.
+ * \param blen      The size of the destination buffer.
+ * \param f_rng     The RNG function.
+ * \param p_rng     The RNG context.
+ *
+ * \return          \c 0 on success.
+ * \return          An \c MBEDTLS_ERR_ECP_XXX error code on failure.
+ */
+int mbedtls_x25519_make_public( mbedtls_x25519_context *ctx, size_t *olen,
+                        unsigned char *buf, size_t blen,
+                        int( *f_rng )(void *, unsigned char *, size_t),
+                        void *p_rng );
+
+/**
+ * \brief       This function parses and processes a TLS ClientKeyExchange
+ *              payload.
+ *
+ *              This is the second function used by a TLS server for x25519.
+ *
+ * \see         ecp.h
+ *
+ * \param ctx   The x25519 context.
+ * \param buf   The start of the input buffer.
+ * \param blen  The length of the input buffer.
+ *
+ * \return      \c 0 on success.
+ * \return      An \c MBEDTLS_ERR_ECP_XXX error code on failure.
+ */
+int mbedtls_x25519_read_public( mbedtls_x25519_context *ctx,
+                        const unsigned char *buf, size_t blen );
+
+#endif /* MBEDTLS_DECLARE_PRIVATE_IDENTIFIERS */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* x25519.h */
diff --git a/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/everest/library/Hacl_Curve25519.c b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/everest/library/Hacl_Curve25519.c
new file mode 100644
index 00000000000..450b9f8ddf0
--- /dev/null
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/everest/library/Hacl_Curve25519.c
@@ -0,0 +1,760 @@
+/* Copyright (c) INRIA and Microsoft Corporation. All rights reserved.
+   Licensed under the Apache 2.0 License. */
+
+/* This file was generated by KreMLin <https://github.com/FStarLang/kremlin>
+ * KreMLin invocation: /mnt/e/everest/verify/kremlin/krml -fc89 -fparentheses -fno-shadow -header /mnt/e/everest/verify/hdrcLh -minimal -fbuiltin-uint128 -fc89 -fparentheses -fno-shadow -header /mnt/e/everest/verify/hdrcLh -minimal -I /mnt/e/everest/verify/hacl-star/code/lib/kremlin -I /mnt/e/everest/verify/kremlin/kremlib/compat -I /mnt/e/everest/verify/hacl-star/specs -I /mnt/e/everest/verify/hacl-star/specs/old -I . -ccopt -march=native -verbose -ldopt -flto -tmpdir x25519-c -I ../bignum -bundle Hacl.Curve25519=* -minimal -add-include "kremlib.h" -skip-compilation x25519-c/out.krml -o x25519-c/Hacl_Curve25519.c
+ * F* version: 059db0c8
+ * KreMLin version: 916c37ac
+ */
+
+
+#include "Hacl_Curve25519.h"
+
+extern uint64_t FStar_UInt64_eq_mask(uint64_t x0, uint64_t x1);
+
+extern uint64_t FStar_UInt64_gte_mask(uint64_t x0, uint64_t x1);
+
+extern uint128_t FStar_UInt128_add(uint128_t x0, uint128_t x1);
+
+extern uint128_t FStar_UInt128_add_mod(uint128_t x0, uint128_t x1);
+
+extern uint128_t FStar_UInt128_logand(uint128_t x0, uint128_t x1);
+
+extern uint128_t FStar_UInt128_shift_right(uint128_t x0, uint32_t x1);
+
+extern uint128_t FStar_UInt128_uint64_to_uint128(uint64_t x0);
+
+extern uint64_t FStar_UInt128_uint128_to_uint64(uint128_t x0);
+
+extern uint128_t FStar_UInt128_mul_wide(uint64_t x0, uint64_t x1);
+
+static void Hacl_Bignum_Modulo_carry_top(uint64_t *b)
+{
+  uint64_t b4 = b[4U];
+  uint64_t b0 = b[0U];
+  uint64_t b4_ = b4 & (uint64_t)0x7ffffffffffffU;
+  uint64_t b0_ = b0 + (uint64_t)19U * (b4 >> (uint32_t)51U);
+  b[4U] = b4_;
+  b[0U] = b0_;
+}
+
+inline static void Hacl_Bignum_Fproduct_copy_from_wide_(uint64_t *output, uint128_t *input)
+{
+  uint32_t i;
+  for (i = (uint32_t)0U; i < (uint32_t)5U; i = i + (uint32_t)1U)
+  {
+    uint128_t xi = input[i];
+    output[i] = (uint64_t)xi;
+  }
+}
+
+inline static void
+Hacl_Bignum_Fproduct_sum_scalar_multiplication_(uint128_t *output, uint64_t *input, uint64_t s)
+{
+  uint32_t i;
+  for (i = (uint32_t)0U; i < (uint32_t)5U; i = i + (uint32_t)1U)
+  {
+    uint128_t xi = output[i];
+    uint64_t yi = input[i];
+    output[i] = xi + (uint128_t)yi * s;
+  }
+}
+
+inline static void Hacl_Bignum_Fproduct_carry_wide_(uint128_t *tmp)
+{
+  uint32_t i;
+  for (i = (uint32_t)0U; i < (uint32_t)4U; i = i + (uint32_t)1U)
+  {
+    uint32_t ctr = i;
+    uint128_t tctr = tmp[ctr];
+    uint128_t tctrp1 = tmp[ctr + (uint32_t)1U];
+    uint64_t r0 = (uint64_t)tctr & (uint64_t)0x7ffffffffffffU;
+    uint128_t c = tctr >> (uint32_t)51U;
+    tmp[ctr] = (uint128_t)r0;
+    tmp[ctr + (uint32_t)1U] = tctrp1 + c;
+  }
+}
+
+inline static void Hacl_Bignum_Fmul_shift_reduce(uint64_t *output)
+{
+  uint64_t tmp = output[4U];
+  uint64_t b0;
+  {
+    uint32_t i;
+    for (i = (uint32_t)0U; i < (uint32_t)4U; i = i + (uint32_t)1U)
+    {
+      uint32_t ctr = (uint32_t)5U - i - (uint32_t)1U;
+      uint64_t z = output[ctr - (uint32_t)1U];
+      output[ctr] = z;
+    }
+  }
+  output[0U] = tmp;
+  b0 = output[0U];
+  output[0U] = (uint64_t)19U * b0;
+}
+
+static void
+Hacl_Bignum_Fmul_mul_shift_reduce_(uint128_t *output, uint64_t *input, uint64_t *input2)
+{
+  uint32_t i;
+  uint64_t input2i;
+  {
+    uint32_t i0;
+    for (i0 = (uint32_t)0U; i0 < (uint32_t)4U; i0 = i0 + (uint32_t)1U)
+    {
+      uint64_t input2i0 = input2[i0];
+      Hacl_Bignum_Fproduct_sum_scalar_multiplication_(output, input, input2i0);
+      Hacl_Bignum_Fmul_shift_reduce(input);
+    }
+  }
+  i = (uint32_t)4U;
+  input2i = input2[i];
+  Hacl_Bignum_Fproduct_sum_scalar_multiplication_(output, input, input2i);
+}
+
+inline static void Hacl_Bignum_Fmul_fmul(uint64_t *output, uint64_t *input, uint64_t *input2)
+{
+  uint64_t tmp[5U] = { 0U };
+  memcpy(tmp, input, (uint32_t)5U * sizeof input[0U]);
+  KRML_CHECK_SIZE(sizeof (uint128_t), (uint32_t)5U);
+  {
+    uint128_t t[5U];
+    {
+      uint32_t _i;
+      for (_i = 0U; _i < (uint32_t)5U; ++_i)
+        t[_i] = (uint128_t)(uint64_t)0U;
+    }
+    {
+      uint128_t b4;
+      uint128_t b0;
+      uint128_t b4_;
+      uint128_t b0_;
+      uint64_t i0;
+      uint64_t i1;
+      uint64_t i0_;
+      uint64_t i1_;
+      Hacl_Bignum_Fmul_mul_shift_reduce_(t, tmp, input2);
+      Hacl_Bignum_Fproduct_carry_wide_(t);
+      b4 = t[4U];
+      b0 = t[0U];
+      b4_ = b4 & (uint128_t)(uint64_t)0x7ffffffffffffU;
+      b0_ = b0 + (uint128_t)(uint64_t)19U * (uint64_t)(b4 >> (uint32_t)51U);
+      t[4U] = b4_;
+      t[0U] = b0_;
+      Hacl_Bignum_Fproduct_copy_from_wide_(output, t);
+      i0 = output[0U];
+      i1 = output[1U];
+      i0_ = i0 & (uint64_t)0x7ffffffffffffU;
+      i1_ = i1 + (i0 >> (uint32_t)51U);
+      output[0U] = i0_;
+      output[1U] = i1_;
+    }
+  }
+}
+
+inline static void Hacl_Bignum_Fsquare_fsquare__(uint128_t *tmp, uint64_t *output)
+{
+  uint64_t r0 = output[0U];
+  uint64_t r1 = output[1U];
+  uint64_t r2 = output[2U];
+  uint64_t r3 = output[3U];
+  uint64_t r4 = output[4U];
+  uint64_t d0 = r0 * (uint64_t)2U;
+  uint64_t d1 = r1 * (uint64_t)2U;
+  uint64_t d2 = r2 * (uint64_t)2U * (uint64_t)19U;
+  uint64_t d419 = r4 * (uint64_t)19U;
+  uint64_t d4 = d419 * (uint64_t)2U;
+  uint128_t s0 = (uint128_t)r0 * r0 + (uint128_t)d4 * r1 + (uint128_t)d2 * r3;
+  uint128_t s1 = (uint128_t)d0 * r1 + (uint128_t)d4 * r2 + (uint128_t)(r3 * (uint64_t)19U) * r3;
+  uint128_t s2 = (uint128_t)d0 * r2 + (uint128_t)r1 * r1 + (uint128_t)d4 * r3;
+  uint128_t s3 = (uint128_t)d0 * r3 + (uint128_t)d1 * r2 + (uint128_t)r4 * d419;
+  uint128_t s4 = (uint128_t)d0 * r4 + (uint128_t)d1 * r3 + (uint128_t)r2 * r2;
+  tmp[0U] = s0;
+  tmp[1U] = s1;
+  tmp[2U] = s2;
+  tmp[3U] = s3;
+  tmp[4U] = s4;
+}
+
+inline static void Hacl_Bignum_Fsquare_fsquare_(uint128_t *tmp, uint64_t *output)
+{
+  uint128_t b4;
+  uint128_t b0;
+  uint128_t b4_;
+  uint128_t b0_;
+  uint64_t i0;
+  uint64_t i1;
+  uint64_t i0_;
+  uint64_t i1_;
+  Hacl_Bignum_Fsquare_fsquare__(tmp, output);
+  Hacl_Bignum_Fproduct_carry_wide_(tmp);
+  b4 = tmp[4U];
+  b0 = tmp[0U];
+  b4_ = b4 & (uint128_t)(uint64_t)0x7ffffffffffffU;
+  b0_ = b0 + (uint128_t)(uint64_t)19U * (uint64_t)(b4 >> (uint32_t)51U);
+  tmp[4U] = b4_;
+  tmp[0U] = b0_;
+  Hacl_Bignum_Fproduct_copy_from_wide_(output, tmp);
+  i0 = output[0U];
+  i1 = output[1U];
+  i0_ = i0 & (uint64_t)0x7ffffffffffffU;
+  i1_ = i1 + (i0 >> (uint32_t)51U);
+  output[0U] = i0_;
+  output[1U] = i1_;
+}
+
+static void
+Hacl_Bignum_Fsquare_fsquare_times_(uint64_t *input, uint128_t *tmp, uint32_t count1)
+{
+  uint32_t i;
+  Hacl_Bignum_Fsquare_fsquare_(tmp, input);
+  for (i = (uint32_t)1U; i < count1; i = i + (uint32_t)1U)
+    Hacl_Bignum_Fsquare_fsquare_(tmp, input);
+}
+
+inline static void
+Hacl_Bignum_Fsquare_fsquare_times(uint64_t *output, uint64_t *input, uint32_t count1)
+{
+  KRML_CHECK_SIZE(sizeof (uint128_t), (uint32_t)5U);
+  {
+    uint128_t t[5U];
+    {
+      uint32_t _i;
+      for (_i = 0U; _i < (uint32_t)5U; ++_i)
+        t[_i] = (uint128_t)(uint64_t)0U;
+    }
+    memcpy(output, input, (uint32_t)5U * sizeof input[0U]);
+    Hacl_Bignum_Fsquare_fsquare_times_(output, t, count1);
+  }
+}
+
+inline static void Hacl_Bignum_Fsquare_fsquare_times_inplace(uint64_t *output, uint32_t count1)
+{
+  KRML_CHECK_SIZE(sizeof (uint128_t), (uint32_t)5U);
+  {
+    uint128_t t[5U];
+    {
+      uint32_t _i;
+      for (_i = 0U; _i < (uint32_t)5U; ++_i)
+        t[_i] = (uint128_t)(uint64_t)0U;
+    }
+    Hacl_Bignum_Fsquare_fsquare_times_(output, t, count1);
+  }
+}
+
+inline static void Hacl_Bignum_Crecip_crecip(uint64_t *out, uint64_t *z)
+{
+  uint64_t buf[20U] = { 0U };
+  uint64_t *a0 = buf;
+  uint64_t *t00 = buf + (uint32_t)5U;
+  uint64_t *b0 = buf + (uint32_t)10U;
+  uint64_t *t01;
+  uint64_t *b1;
+  uint64_t *c0;
+  uint64_t *a;
+  uint64_t *t0;
+  uint64_t *b;
+  uint64_t *c;
+  Hacl_Bignum_Fsquare_fsquare_times(a0, z, (uint32_t)1U);
+  Hacl_Bignum_Fsquare_fsquare_times(t00, a0, (uint32_t)2U);
+  Hacl_Bignum_Fmul_fmul(b0, t00, z);
+  Hacl_Bignum_Fmul_fmul(a0, b0, a0);
+  Hacl_Bignum_Fsquare_fsquare_times(t00, a0, (uint32_t)1U);
+  Hacl_Bignum_Fmul_fmul(b0, t00, b0);
+  Hacl_Bignum_Fsquare_fsquare_times(t00, b0, (uint32_t)5U);
+  t01 = buf + (uint32_t)5U;
+  b1 = buf + (uint32_t)10U;
+  c0 = buf + (uint32_t)15U;
+  Hacl_Bignum_Fmul_fmul(b1, t01, b1);
+  Hacl_Bignum_Fsquare_fsquare_times(t01, b1, (uint32_t)10U);
+  Hacl_Bignum_Fmul_fmul(c0, t01, b1);
+  Hacl_Bignum_Fsquare_fsquare_times(t01, c0, (uint32_t)20U);
+  Hacl_Bignum_Fmul_fmul(t01, t01, c0);
+  Hacl_Bignum_Fsquare_fsquare_times_inplace(t01, (uint32_t)10U);
+  Hacl_Bignum_Fmul_fmul(b1, t01, b1);
+  Hacl_Bignum_Fsquare_fsquare_times(t01, b1, (uint32_t)50U);
+  a = buf;
+  t0 = buf + (uint32_t)5U;
+  b = buf + (uint32_t)10U;
+  c = buf + (uint32_t)15U;
+  Hacl_Bignum_Fmul_fmul(c, t0, b);
+  Hacl_Bignum_Fsquare_fsquare_times(t0, c, (uint32_t)100U);
+  Hacl_Bignum_Fmul_fmul(t0, t0, c);
+  Hacl_Bignum_Fsquare_fsquare_times_inplace(t0, (uint32_t)50U);
+  Hacl_Bignum_Fmul_fmul(t0, t0, b);
+  Hacl_Bignum_Fsquare_fsquare_times_inplace(t0, (uint32_t)5U);
+  Hacl_Bignum_Fmul_fmul(out, t0, a);
+}
+
+inline static void Hacl_Bignum_fsum(uint64_t *a, uint64_t *b)
+{
+  uint32_t i;
+  for (i = (uint32_t)0U; i < (uint32_t)5U; i = i + (uint32_t)1U)
+  {
+    uint64_t xi = a[i];
+    uint64_t yi = b[i];
+    a[i] = xi + yi;
+  }
+}
+
+inline static void Hacl_Bignum_fdifference(uint64_t *a, uint64_t *b)
+{
+  uint64_t tmp[5U] = { 0U };
+  uint64_t b0;
+  uint64_t b1;
+  uint64_t b2;
+  uint64_t b3;
+  uint64_t b4;
+  memcpy(tmp, b, (uint32_t)5U * sizeof b[0U]);
+  b0 = tmp[0U];
+  b1 = tmp[1U];
+  b2 = tmp[2U];
+  b3 = tmp[3U];
+  b4 = tmp[4U];
+  tmp[0U] = b0 + (uint64_t)0x3fffffffffff68U;
+  tmp[1U] = b1 + (uint64_t)0x3ffffffffffff8U;
+  tmp[2U] = b2 + (uint64_t)0x3ffffffffffff8U;
+  tmp[3U] = b3 + (uint64_t)0x3ffffffffffff8U;
+  tmp[4U] = b4 + (uint64_t)0x3ffffffffffff8U;
+  {
+    uint32_t i;
+    for (i = (uint32_t)0U; i < (uint32_t)5U; i = i + (uint32_t)1U)
+    {
+      uint64_t xi = a[i];
+      uint64_t yi = tmp[i];
+      a[i] = yi - xi;
+    }
+  }
+}
+
+inline static void Hacl_Bignum_fscalar(uint64_t *output, uint64_t *b, uint64_t s)
+{
+  KRML_CHECK_SIZE(sizeof (uint128_t), (uint32_t)5U);
+  {
+    uint128_t tmp[5U];
+    {
+      uint32_t _i;
+      for (_i = 0U; _i < (uint32_t)5U; ++_i)
+        tmp[_i] = (uint128_t)(uint64_t)0U;
+    }
+    {
+      uint128_t b4;
+      uint128_t b0;
+      uint128_t b4_;
+      uint128_t b0_;
+      {
+        uint32_t i;
+        for (i = (uint32_t)0U; i < (uint32_t)5U; i = i + (uint32_t)1U)
+        {
+          uint64_t xi = b[i];
+          tmp[i] = (uint128_t)xi * s;
+        }
+      }
+      Hacl_Bignum_Fproduct_carry_wide_(tmp);
+      b4 = tmp[4U];
+      b0 = tmp[0U];
+      b4_ = b4 & (uint128_t)(uint64_t)0x7ffffffffffffU;
+      b0_ = b0 + (uint128_t)(uint64_t)19U * (uint64_t)(b4 >> (uint32_t)51U);
+      tmp[4U] = b4_;
+      tmp[0U] = b0_;
+      Hacl_Bignum_Fproduct_copy_from_wide_(output, tmp);
+    }
+  }
+}
+
+inline static void Hacl_Bignum_fmul(uint64_t *output, uint64_t *a, uint64_t *b)
+{
+  Hacl_Bignum_Fmul_fmul(output, a, b);
+}
+
+inline static void Hacl_Bignum_crecip(uint64_t *output, uint64_t *input)
+{
+  Hacl_Bignum_Crecip_crecip(output, input);
+}
+
+static void
+Hacl_EC_Point_swap_conditional_step(uint64_t *a, uint64_t *b, uint64_t swap1, uint32_t ctr)
+{
+  uint32_t i = ctr - (uint32_t)1U;
+  uint64_t ai = a[i];
+  uint64_t bi = b[i];
+  uint64_t x = swap1 & (ai ^ bi);
+  uint64_t ai1 = ai ^ x;
+  uint64_t bi1 = bi ^ x;
+  a[i] = ai1;
+  b[i] = bi1;
+}
+
+static void
+Hacl_EC_Point_swap_conditional_(uint64_t *a, uint64_t *b, uint64_t swap1, uint32_t ctr)
+{
+  if (!(ctr == (uint32_t)0U))
+  {
+    uint32_t i;
+    Hacl_EC_Point_swap_conditional_step(a, b, swap1, ctr);
+    i = ctr - (uint32_t)1U;
+    Hacl_EC_Point_swap_conditional_(a, b, swap1, i);
+  }
+}
+
+static void Hacl_EC_Point_swap_conditional(uint64_t *a, uint64_t *b, uint64_t iswap)
+{
+  uint64_t swap1 = (uint64_t)0U - iswap;
+  Hacl_EC_Point_swap_conditional_(a, b, swap1, (uint32_t)5U);
+  Hacl_EC_Point_swap_conditional_(a + (uint32_t)5U, b + (uint32_t)5U, swap1, (uint32_t)5U);
+}
+
+static void Hacl_EC_Point_copy(uint64_t *output, uint64_t *input)
+{
+  memcpy(output, input, (uint32_t)5U * sizeof input[0U]);
+  memcpy(output + (uint32_t)5U,
+    input + (uint32_t)5U,
+    (uint32_t)5U * sizeof (input + (uint32_t)5U)[0U]);
+}
+
+static void Hacl_EC_Format_fexpand(uint64_t *output, uint8_t *input)
+{
+  uint64_t i0 = load64_le(input);
+  uint8_t *x00 = input + (uint32_t)6U;
+  uint64_t i1 = load64_le(x00);
+  uint8_t *x01 = input + (uint32_t)12U;
+  uint64_t i2 = load64_le(x01);
+  uint8_t *x02 = input + (uint32_t)19U;
+  uint64_t i3 = load64_le(x02);
+  uint8_t *x0 = input + (uint32_t)24U;
+  uint64_t i4 = load64_le(x0);
+  uint64_t output0 = i0 & (uint64_t)0x7ffffffffffffU;
+  uint64_t output1 = i1 >> (uint32_t)3U & (uint64_t)0x7ffffffffffffU;
+  uint64_t output2 = i2 >> (uint32_t)6U & (uint64_t)0x7ffffffffffffU;
+  uint64_t output3 = i3 >> (uint32_t)1U & (uint64_t)0x7ffffffffffffU;
+  uint64_t output4 = i4 >> (uint32_t)12U & (uint64_t)0x7ffffffffffffU;
+  output[0U] = output0;
+  output[1U] = output1;
+  output[2U] = output2;
+  output[3U] = output3;
+  output[4U] = output4;
+}
+
+static void Hacl_EC_Format_fcontract_first_carry_pass(uint64_t *input)
+{
+  uint64_t t0 = input[0U];
+  uint64_t t1 = input[1U];
+  uint64_t t2 = input[2U];
+  uint64_t t3 = input[3U];
+  uint64_t t4 = input[4U];
+  uint64_t t1_ = t1 + (t0 >> (uint32_t)51U);
+  uint64_t t0_ = t0 & (uint64_t)0x7ffffffffffffU;
+  uint64_t t2_ = t2 + (t1_ >> (uint32_t)51U);
+  uint64_t t1__ = t1_ & (uint64_t)0x7ffffffffffffU;
+  uint64_t t3_ = t3 + (t2_ >> (uint32_t)51U);
+  uint64_t t2__ = t2_ & (uint64_t)0x7ffffffffffffU;
+  uint64_t t4_ = t4 + (t3_ >> (uint32_t)51U);
+  uint64_t t3__ = t3_ & (uint64_t)0x7ffffffffffffU;
+  input[0U] = t0_;
+  input[1U] = t1__;
+  input[2U] = t2__;
+  input[3U] = t3__;
+  input[4U] = t4_;
+}
+
+static void Hacl_EC_Format_fcontract_first_carry_full(uint64_t *input)
+{
+  Hacl_EC_Format_fcontract_first_carry_pass(input);
+  Hacl_Bignum_Modulo_carry_top(input);
+}
+
+static void Hacl_EC_Format_fcontract_second_carry_pass(uint64_t *input)
+{
+  uint64_t t0 = input[0U];
+  uint64_t t1 = input[1U];
+  uint64_t t2 = input[2U];
+  uint64_t t3 = input[3U];
+  uint64_t t4 = input[4U];
+  uint64_t t1_ = t1 + (t0 >> (uint32_t)51U);
+  uint64_t t0_ = t0 & (uint64_t)0x7ffffffffffffU;
+  uint64_t t2_ = t2 + (t1_ >> (uint32_t)51U);
+  uint64_t t1__ = t1_ & (uint64_t)0x7ffffffffffffU;
+  uint64_t t3_ = t3 + (t2_ >> (uint32_t)51U);
+  uint64_t t2__ = t2_ & (uint64_t)0x7ffffffffffffU;
+  uint64_t t4_ = t4 + (t3_ >> (uint32_t)51U);
+  uint64_t t3__ = t3_ & (uint64_t)0x7ffffffffffffU;
+  input[0U] = t0_;
+  input[1U] = t1__;
+  input[2U] = t2__;
+  input[3U] = t3__;
+  input[4U] = t4_;
+}
+
+static void Hacl_EC_Format_fcontract_second_carry_full(uint64_t *input)
+{
+  uint64_t i0;
+  uint64_t i1;
+  uint64_t i0_;
+  uint64_t i1_;
+  Hacl_EC_Format_fcontract_second_carry_pass(input);
+  Hacl_Bignum_Modulo_carry_top(input);
+  i0 = input[0U];
+  i1 = input[1U];
+  i0_ = i0 & (uint64_t)0x7ffffffffffffU;
+  i1_ = i1 + (i0 >> (uint32_t)51U);
+  input[0U] = i0_;
+  input[1U] = i1_;
+}
+
+static void Hacl_EC_Format_fcontract_trim(uint64_t *input)
+{
+  uint64_t a0 = input[0U];
+  uint64_t a1 = input[1U];
+  uint64_t a2 = input[2U];
+  uint64_t a3 = input[3U];
+  uint64_t a4 = input[4U];
+  uint64_t mask0 = FStar_UInt64_gte_mask(a0, (uint64_t)0x7ffffffffffedU);
+  uint64_t mask1 = FStar_UInt64_eq_mask(a1, (uint64_t)0x7ffffffffffffU);
+  uint64_t mask2 = FStar_UInt64_eq_mask(a2, (uint64_t)0x7ffffffffffffU);
+  uint64_t mask3 = FStar_UInt64_eq_mask(a3, (uint64_t)0x7ffffffffffffU);
+  uint64_t mask4 = FStar_UInt64_eq_mask(a4, (uint64_t)0x7ffffffffffffU);
+  uint64_t mask = (((mask0 & mask1) & mask2) & mask3) & mask4;
+  uint64_t a0_ = a0 - ((uint64_t)0x7ffffffffffedU & mask);
+  uint64_t a1_ = a1 - ((uint64_t)0x7ffffffffffffU & mask);
+  uint64_t a2_ = a2 - ((uint64_t)0x7ffffffffffffU & mask);
+  uint64_t a3_ = a3 - ((uint64_t)0x7ffffffffffffU & mask);
+  uint64_t a4_ = a4 - ((uint64_t)0x7ffffffffffffU & mask);
+  input[0U] = a0_;
+  input[1U] = a1_;
+  input[2U] = a2_;
+  input[3U] = a3_;
+  input[4U] = a4_;
+}
+
+static void Hacl_EC_Format_fcontract_store(uint8_t *output, uint64_t *input)
+{
+  uint64_t t0 = input[0U];
+  uint64_t t1 = input[1U];
+  uint64_t t2 = input[2U];
+  uint64_t t3 = input[3U];
+  uint64_t t4 = input[4U];
+  uint64_t o0 = t1 << (uint32_t)51U | t0;
+  uint64_t o1 = t2 << (uint32_t)38U | t1 >> (uint32_t)13U;
+  uint64_t o2 = t3 << (uint32_t)25U | t2 >> (uint32_t)26U;
+  uint64_t o3 = t4 << (uint32_t)12U | t3 >> (uint32_t)39U;
+  uint8_t *b0 = output;
+  uint8_t *b1 = output + (uint32_t)8U;
+  uint8_t *b2 = output + (uint32_t)16U;
+  uint8_t *b3 = output + (uint32_t)24U;
+  store64_le(b0, o0);
+  store64_le(b1, o1);
+  store64_le(b2, o2);
+  store64_le(b3, o3);
+}
+
+static void Hacl_EC_Format_fcontract(uint8_t *output, uint64_t *input)
+{
+  Hacl_EC_Format_fcontract_first_carry_full(input);
+  Hacl_EC_Format_fcontract_second_carry_full(input);
+  Hacl_EC_Format_fcontract_trim(input);
+  Hacl_EC_Format_fcontract_store(output, input);
+}
+
+static void Hacl_EC_Format_scalar_of_point(uint8_t *scalar, uint64_t *point)
+{
+  uint64_t *x = point;
+  uint64_t *z = point + (uint32_t)5U;
+  uint64_t buf[10U] = { 0U };
+  uint64_t *zmone = buf;
+  uint64_t *sc = buf + (uint32_t)5U;
+  Hacl_Bignum_crecip(zmone, z);
+  Hacl_Bignum_fmul(sc, x, zmone);
+  Hacl_EC_Format_fcontract(scalar, sc);
+}
+
+static void
+Hacl_EC_AddAndDouble_fmonty(
+  uint64_t *pp,
+  uint64_t *ppq,
+  uint64_t *p,
+  uint64_t *pq,
+  uint64_t *qmqp
+)
+{
+  uint64_t *qx = qmqp;
+  uint64_t *x2 = pp;
+  uint64_t *z2 = pp + (uint32_t)5U;
+  uint64_t *x3 = ppq;
+  uint64_t *z3 = ppq + (uint32_t)5U;
+  uint64_t *x = p;
+  uint64_t *z = p + (uint32_t)5U;
+  uint64_t *xprime = pq;
+  uint64_t *zprime = pq + (uint32_t)5U;
+  uint64_t buf[40U] = { 0U };
+  uint64_t *origx = buf;
+  uint64_t *origxprime0 = buf + (uint32_t)5U;
+  uint64_t *xxprime0 = buf + (uint32_t)25U;
+  uint64_t *zzprime0 = buf + (uint32_t)30U;
+  uint64_t *origxprime;
+  uint64_t *xx0;
+  uint64_t *zz0;
+  uint64_t *xxprime;
+  uint64_t *zzprime;
+  uint64_t *zzzprime;
+  uint64_t *zzz;
+  uint64_t *xx;
+  uint64_t *zz;
+  uint64_t scalar;
+  memcpy(origx, x, (uint32_t)5U * sizeof x[0U]);
+  Hacl_Bignum_fsum(x, z);
+  Hacl_Bignum_fdifference(z, origx);
+  memcpy(origxprime0, xprime, (uint32_t)5U * sizeof xprime[0U]);
+  Hacl_Bignum_fsum(xprime, zprime);
+  Hacl_Bignum_fdifference(zprime, origxprime0);
+  Hacl_Bignum_fmul(xxprime0, xprime, z);
+  Hacl_Bignum_fmul(zzprime0, x, zprime);
+  origxprime = buf + (uint32_t)5U;
+  xx0 = buf + (uint32_t)15U;
+  zz0 = buf + (uint32_t)20U;
+  xxprime = buf + (uint32_t)25U;
+  zzprime = buf + (uint32_t)30U;
+  zzzprime = buf + (uint32_t)35U;
+  memcpy(origxprime, xxprime, (uint32_t)5U * sizeof xxprime[0U]);
+  Hacl_Bignum_fsum(xxprime, zzprime);
+  Hacl_Bignum_fdifference(zzprime, origxprime);
+  Hacl_Bignum_Fsquare_fsquare_times(x3, xxprime, (uint32_t)1U);
+  Hacl_Bignum_Fsquare_fsquare_times(zzzprime, zzprime, (uint32_t)1U);
+  Hacl_Bignum_fmul(z3, zzzprime, qx);
+  Hacl_Bignum_Fsquare_fsquare_times(xx0, x, (uint32_t)1U);
+  Hacl_Bignum_Fsquare_fsquare_times(zz0, z, (uint32_t)1U);
+  zzz = buf + (uint32_t)10U;
+  xx = buf + (uint32_t)15U;
+  zz = buf + (uint32_t)20U;
+  Hacl_Bignum_fmul(x2, xx, zz);
+  Hacl_Bignum_fdifference(zz, xx);
+  scalar = (uint64_t)121665U;
+  Hacl_Bignum_fscalar(zzz, zz, scalar);
+  Hacl_Bignum_fsum(zzz, xx);
+  Hacl_Bignum_fmul(z2, zzz, zz);
+}
+
+static void
+Hacl_EC_Ladder_SmallLoop_cmult_small_loop_step(
+  uint64_t *nq,
+  uint64_t *nqpq,
+  uint64_t *nq2,
+  uint64_t *nqpq2,
+  uint64_t *q,
+  uint8_t byt
+)
+{
+  uint64_t bit0 = (uint64_t)(byt >> (uint32_t)7U);
+  uint64_t bit;
+  Hacl_EC_Point_swap_conditional(nq, nqpq, bit0);
+  Hacl_EC_AddAndDouble_fmonty(nq2, nqpq2, nq, nqpq, q);
+  bit = (uint64_t)(byt >> (uint32_t)7U);
+  Hacl_EC_Point_swap_conditional(nq2, nqpq2, bit);
+}
+
+static void
+Hacl_EC_Ladder_SmallLoop_cmult_small_loop_double_step(
+  uint64_t *nq,
+  uint64_t *nqpq,
+  uint64_t *nq2,
+  uint64_t *nqpq2,
+  uint64_t *q,
+  uint8_t byt
+)
+{
+  uint8_t byt1;
+  Hacl_EC_Ladder_SmallLoop_cmult_small_loop_step(nq, nqpq, nq2, nqpq2, q, byt);
+  byt1 = byt << (uint32_t)1U;
+  Hacl_EC_Ladder_SmallLoop_cmult_small_loop_step(nq2, nqpq2, nq, nqpq, q, byt1);
+}
+
+static void
+Hacl_EC_Ladder_SmallLoop_cmult_small_loop(
+  uint64_t *nq,
+  uint64_t *nqpq,
+  uint64_t *nq2,
+  uint64_t *nqpq2,
+  uint64_t *q,
+  uint8_t byt,
+  uint32_t i
+)
+{
+  if (!(i == (uint32_t)0U))
+  {
+    uint32_t i_ = i - (uint32_t)1U;
+    uint8_t byt_;
+    Hacl_EC_Ladder_SmallLoop_cmult_small_loop_double_step(nq, nqpq, nq2, nqpq2, q, byt);
+    byt_ = byt << (uint32_t)2U;
+    Hacl_EC_Ladder_SmallLoop_cmult_small_loop(nq, nqpq, nq2, nqpq2, q, byt_, i_);
+  }
+}
+
+static void
+Hacl_EC_Ladder_BigLoop_cmult_big_loop(
+  uint8_t *n1,
+  uint64_t *nq,
+  uint64_t *nqpq,
+  uint64_t *nq2,
+  uint64_t *nqpq2,
+  uint64_t *q,
+  uint32_t i
+)
+{
+  if (!(i == (uint32_t)0U))
+  {
+    uint32_t i1 = i - (uint32_t)1U;
+    uint8_t byte = n1[i1];
+    Hacl_EC_Ladder_SmallLoop_cmult_small_loop(nq, nqpq, nq2, nqpq2, q, byte, (uint32_t)4U);
+    Hacl_EC_Ladder_BigLoop_cmult_big_loop(n1, nq, nqpq, nq2, nqpq2, q, i1);
+  }
+}
+
+static void Hacl_EC_Ladder_cmult(uint64_t *result, uint8_t *n1, uint64_t *q)
+{
+  uint64_t point_buf[40U] = { 0U };
+  uint64_t *nq = point_buf;
+  uint64_t *nqpq = point_buf + (uint32_t)10U;
+  uint64_t *nq2 = point_buf + (uint32_t)20U;
+  uint64_t *nqpq2 = point_buf + (uint32_t)30U;
+  Hacl_EC_Point_copy(nqpq, q);
+  nq[0U] = (uint64_t)1U;
+  Hacl_EC_Ladder_BigLoop_cmult_big_loop(n1, nq, nqpq, nq2, nqpq2, q, (uint32_t)32U);
+  Hacl_EC_Point_copy(result, nq);
+}
+
+void Hacl_Curve25519_crypto_scalarmult(uint8_t *mypublic, uint8_t *secret, uint8_t *basepoint)
+{
+  uint64_t buf0[10U] = { 0U };
+  uint64_t *x0 = buf0;
+  uint64_t *z = buf0 + (uint32_t)5U;
+  uint64_t *q;
+  Hacl_EC_Format_fexpand(x0, basepoint);
+  z[0U] = (uint64_t)1U;
+  q = buf0;
+  {
+    uint8_t e[32U] = { 0U };
+    uint8_t e0;
+    uint8_t e31;
+    uint8_t e01;
+    uint8_t e311;
+    uint8_t e312;
+    uint8_t *scalar;
+    memcpy(e, secret, (uint32_t)32U * sizeof secret[0U]);
+    e0 = e[0U];
+    e31 = e[31U];
+    e01 = e0 & (uint8_t)248U;
+    e311 = e31 & (uint8_t)127U;
+    e312 = e311 | (uint8_t)64U;
+    e[0U] = e01;
+    e[31U] = e312;
+    scalar = e;
+    {
+      uint64_t buf[15U] = { 0U };
+      uint64_t *nq = buf;
+      uint64_t *x = nq;
+      x[0U] = (uint64_t)1U;
+      Hacl_EC_Ladder_cmult(nq, scalar, q);
+      Hacl_EC_Format_scalar_of_point(mypublic, nq);
+    }
+  }
+}
+
diff --git a/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/everest/library/Hacl_Curve25519_joined.c b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/everest/library/Hacl_Curve25519_joined.c
new file mode 100644
index 00000000000..17869e4d446
--- /dev/null
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/everest/library/Hacl_Curve25519_joined.c
@@ -0,0 +1,50 @@
+/*
+ *  Interface to code from Project Everest
+ *
+ *  Copyright 2016-2018 INRIA and Microsoft Corporation
+ *  SPDX-License-Identifier: Apache-2.0
+ *
+ *  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.
+ *
+ *  This file is part of Mbed TLS (https://tls.mbed.org)
+ */
+#ifndef _BSD_SOURCE
+/* Required to get htole64() from gcc/glibc's endian.h (older systems)
+ * when we compile with -std=c99 */
+#define _BSD_SOURCE
+#endif
+#ifndef _DEFAULT_SOURCE
+/* (modern version of _BSD_SOURCE) */
+#define _DEFAULT_SOURCE
+#endif
+
+#include "tf_psa_crypto_common.h"
+#include "mbedtls/private_access.h"
+
+#if defined(MBEDTLS_ECDH_VARIANT_EVEREST_ENABLED)
+
+#if defined(__SIZEOF_INT128__) && (__SIZEOF_INT128__ == 16)
+#define MBEDTLS_HAVE_INT128
+#endif
+
+#if defined(MBEDTLS_HAVE_INT128)
+#include "Hacl_Curve25519.c"
+#else
+#define KRML_VERIFIED_UINT128
+#include "kremlib/FStar_UInt128_extracted.c"
+#include "legacy/Hacl_Curve25519.c"
+#endif
+
+#include "kremlib/FStar_UInt64_FStar_UInt32_FStar_UInt16_FStar_UInt8.c"
+
+#endif /* defined(MBEDTLS_ECDH_VARIANT_EVEREST_ENABLED) */
diff --git a/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/everest/library/everest.c b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/everest/library/everest.c
new file mode 100644
index 00000000000..f58f2e3e2c2
--- /dev/null
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/everest/library/everest.c
@@ -0,0 +1,101 @@
+/*
+ *  Interface to code from Project Everest
+ *
+ *  Copyright 2016-2018 INRIA and Microsoft Corporation
+ *  SPDX-License-Identifier: Apache-2.0
+ *
+ *  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.
+ *
+ *  This file is part of Mbed TLS (https://tls.mbed.org).
+ */
+
+#include "tf_psa_crypto_common.h"
+
+#include <string.h>
+
+#include "mbedtls/private/ecdh.h"
+
+#include "x25519.h"
+#include "everest.h"
+
+#include "mbedtls/platform.h"
+
+#if defined(MBEDTLS_ECDH_VARIANT_EVEREST_ENABLED)
+
+int mbedtls_everest_setup( mbedtls_ecdh_context_everest *ctx, int grp_id )
+{
+    if( grp_id != MBEDTLS_ECP_DP_CURVE25519 )
+        return MBEDTLS_ERR_ECP_BAD_INPUT_DATA;
+    mbedtls_x25519_init( &ctx->ctx );
+    return 0;
+}
+
+void mbedtls_everest_free( mbedtls_ecdh_context_everest *ctx )
+{
+    mbedtls_x25519_free( &ctx->ctx );
+}
+
+int mbedtls_everest_make_params( mbedtls_ecdh_context_everest *ctx, size_t *olen,
+                                 unsigned char *buf, size_t blen,
+                                 int( *f_rng )( void *, unsigned char *, size_t ),
+                                 void *p_rng )
+{
+    mbedtls_x25519_context *x25519_ctx = &ctx->ctx;
+    return mbedtls_x25519_make_params( x25519_ctx, olen, buf, blen, f_rng, p_rng );
+}
+
+int mbedtls_everest_read_params( mbedtls_ecdh_context_everest *ctx,
+                                 const unsigned char **buf,
+                                 const unsigned char *end )
+{
+    mbedtls_x25519_context *x25519_ctx = &ctx->ctx;
+    return mbedtls_x25519_read_params( x25519_ctx, buf, end );
+}
+
+int mbedtls_everest_get_params( mbedtls_ecdh_context_everest *ctx,
+                                const mbedtls_ecp_keypair *key,
+                                mbedtls_everest_ecdh_side side )
+{
+    mbedtls_x25519_context *x25519_ctx = &ctx->ctx;
+    mbedtls_x25519_ecdh_side s = side == MBEDTLS_EVEREST_ECDH_OURS ?
+                                            MBEDTLS_X25519_ECDH_OURS :
+                                            MBEDTLS_X25519_ECDH_THEIRS;
+    return mbedtls_x25519_get_params( x25519_ctx, key, s );
+}
+
+int mbedtls_everest_make_public( mbedtls_ecdh_context_everest *ctx, size_t *olen,
+                                 unsigned char *buf, size_t blen,
+                                 int( *f_rng )( void *, unsigned char *, size_t ),
+                                 void *p_rng )
+{
+    mbedtls_x25519_context *x25519_ctx = &ctx->ctx;
+    return mbedtls_x25519_make_public( x25519_ctx, olen, buf, blen, f_rng, p_rng );
+}
+
+int mbedtls_everest_read_public( mbedtls_ecdh_context_everest *ctx,
+                                 const unsigned char *buf, size_t blen )
+{
+    mbedtls_x25519_context *x25519_ctx = &ctx->ctx;
+    return mbedtls_x25519_read_public ( x25519_ctx, buf, blen );
+}
+
+int mbedtls_everest_calc_secret( mbedtls_ecdh_context_everest *ctx, size_t *olen,
+                                 unsigned char *buf, size_t blen,
+                                 int( *f_rng )( void *, unsigned char *, size_t ),
+                                 void *p_rng )
+{
+    mbedtls_x25519_context *x25519_ctx = &ctx->ctx;
+    return mbedtls_x25519_calc_secret( x25519_ctx, olen, buf, blen, f_rng, p_rng );
+}
+
+#endif /* MBEDTLS_ECDH_VARIANT_EVEREST_ENABLED */
diff --git a/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/everest/library/kremlib/FStar_UInt128_extracted.c b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/everest/library/kremlib/FStar_UInt128_extracted.c
new file mode 100644
index 00000000000..1060515d927
--- /dev/null
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/everest/library/kremlib/FStar_UInt128_extracted.c
@@ -0,0 +1,413 @@
+/* Copyright (c) INRIA and Microsoft Corporation. All rights reserved.
+   Licensed under the Apache 2.0 License. */
+
+/* This file was generated by KreMLin <https://github.com/FStarLang/kremlin>
+ * KreMLin invocation: ../krml -fc89 -fparentheses -fno-shadow -header /mnt/e/everest/verify/hdrB9w -minimal -fparentheses -fcurly-braces -fno-shadow -header copyright-header.txt -minimal -tmpdir extracted -warn-error +9+11 -skip-compilation -extract-uints -add-include <inttypes.h> -add-include "kremlib.h" -add-include "kremlin/internal/compat.h" extracted/prims.krml extracted/FStar_Pervasives_Native.krml extracted/FStar_Pervasives.krml extracted/FStar_Mul.krml extracted/FStar_Squash.krml extracted/FStar_Classical.krml extracted/FStar_StrongExcludedMiddle.krml extracted/FStar_FunctionalExtensionality.krml extracted/FStar_List_Tot_Base.krml extracted/FStar_List_Tot_Properties.krml extracted/FStar_List_Tot.krml extracted/FStar_Seq_Base.krml extracted/FStar_Seq_Properties.krml extracted/FStar_Seq.krml extracted/FStar_Math_Lib.krml extracted/FStar_Math_Lemmas.krml extracted/FStar_BitVector.krml extracted/FStar_UInt.krml extracted/FStar_UInt32.krml extracted/FStar_Int.krml extracted/FStar_Int16.krml extracted/FStar_Preorder.krml extracted/FStar_Ghost.krml extracted/FStar_ErasedLogic.krml extracted/FStar_UInt64.krml extracted/FStar_Set.krml extracted/FStar_PropositionalExtensionality.krml extracted/FStar_PredicateExtensionality.krml extracted/FStar_TSet.krml extracted/FStar_Monotonic_Heap.krml extracted/FStar_Heap.krml extracted/FStar_Map.krml extracted/FStar_Monotonic_HyperHeap.krml extracted/FStar_Monotonic_HyperStack.krml extracted/FStar_HyperStack.krml extracted/FStar_Monotonic_Witnessed.krml extracted/FStar_HyperStack_ST.krml extracted/FStar_HyperStack_All.krml extracted/FStar_Date.krml extracted/FStar_Universe.krml extracted/FStar_GSet.krml extracted/FStar_ModifiesGen.krml extracted/LowStar_Monotonic_Buffer.krml extracted/LowStar_Buffer.krml extracted/Spec_Loops.krml extracted/LowStar_BufferOps.krml extracted/C_Loops.krml extracted/FStar_UInt8.krml extracted/FStar_Kremlin_Endianness.krml extracted/FStar_UInt63.krml extracted/FStar_Exn.krml extracted/FStar_ST.krml extracted/FStar_All.krml extracted/FStar_Dyn.krml extracted/FStar_Int63.krml extracted/FStar_Int64.krml extracted/FStar_Int32.krml extracted/FStar_Int8.krml extracted/FStar_UInt16.krml extracted/FStar_Int_Cast.krml extracted/FStar_UInt128.krml extracted/C_Endianness.krml extracted/FStar_List.krml extracted/FStar_Float.krml extracted/FStar_IO.krml extracted/C.krml extracted/FStar_Char.krml extracted/FStar_String.krml extracted/LowStar_Modifies.krml extracted/C_String.krml extracted/FStar_Bytes.krml extracted/FStar_HyperStack_IO.krml extracted/C_Failure.krml extracted/TestLib.krml extracted/FStar_Int_Cast_Full.krml
+ * F* version: 059db0c8
+ * KreMLin version: 916c37ac
+ */
+
+
+#include "FStar_UInt128.h"
+#include "kremlin/c_endianness.h"
+#include "FStar_UInt64_FStar_UInt32_FStar_UInt16_FStar_UInt8.h"
+
+uint64_t FStar_UInt128___proj__Mkuint128__item__low(FStar_UInt128_uint128 projectee)
+{
+  return projectee.low;
+}
+
+uint64_t FStar_UInt128___proj__Mkuint128__item__high(FStar_UInt128_uint128 projectee)
+{
+  return projectee.high;
+}
+
+static uint64_t FStar_UInt128_constant_time_carry(uint64_t a, uint64_t b)
+{
+  return (a ^ ((a ^ b) | ((a - b) ^ b))) >> (uint32_t)63U;
+}
+
+static uint64_t FStar_UInt128_carry(uint64_t a, uint64_t b)
+{
+  return FStar_UInt128_constant_time_carry(a, b);
+}
+
+FStar_UInt128_uint128 FStar_UInt128_add(FStar_UInt128_uint128 a, FStar_UInt128_uint128 b)
+{
+  FStar_UInt128_uint128
+  flat = { a.low + b.low, a.high + b.high + FStar_UInt128_carry(a.low + b.low, b.low) };
+  return flat;
+}
+
+FStar_UInt128_uint128
+FStar_UInt128_add_underspec(FStar_UInt128_uint128 a, FStar_UInt128_uint128 b)
+{
+  FStar_UInt128_uint128
+  flat = { a.low + b.low, a.high + b.high + FStar_UInt128_carry(a.low + b.low, b.low) };
+  return flat;
+}
+
+FStar_UInt128_uint128 FStar_UInt128_add_mod(FStar_UInt128_uint128 a, FStar_UInt128_uint128 b)
+{
+  FStar_UInt128_uint128
+  flat = { a.low + b.low, a.high + b.high + FStar_UInt128_carry(a.low + b.low, b.low) };
+  return flat;
+}
+
+FStar_UInt128_uint128 FStar_UInt128_sub(FStar_UInt128_uint128 a, FStar_UInt128_uint128 b)
+{
+  FStar_UInt128_uint128
+  flat = { a.low - b.low, a.high - b.high - FStar_UInt128_carry(a.low, a.low - b.low) };
+  return flat;
+}
+
+FStar_UInt128_uint128
+FStar_UInt128_sub_underspec(FStar_UInt128_uint128 a, FStar_UInt128_uint128 b)
+{
+  FStar_UInt128_uint128
+  flat = { a.low - b.low, a.high - b.high - FStar_UInt128_carry(a.low, a.low - b.low) };
+  return flat;
+}
+
+static FStar_UInt128_uint128
+FStar_UInt128_sub_mod_impl(FStar_UInt128_uint128 a, FStar_UInt128_uint128 b)
+{
+  FStar_UInt128_uint128
+  flat = { a.low - b.low, a.high - b.high - FStar_UInt128_carry(a.low, a.low - b.low) };
+  return flat;
+}
+
+FStar_UInt128_uint128 FStar_UInt128_sub_mod(FStar_UInt128_uint128 a, FStar_UInt128_uint128 b)
+{
+  return FStar_UInt128_sub_mod_impl(a, b);
+}
+
+FStar_UInt128_uint128 FStar_UInt128_logand(FStar_UInt128_uint128 a, FStar_UInt128_uint128 b)
+{
+  FStar_UInt128_uint128 flat = { a.low & b.low, a.high & b.high };
+  return flat;
+}
+
+FStar_UInt128_uint128 FStar_UInt128_logxor(FStar_UInt128_uint128 a, FStar_UInt128_uint128 b)
+{
+  FStar_UInt128_uint128 flat = { a.low ^ b.low, a.high ^ b.high };
+  return flat;
+}
+
+FStar_UInt128_uint128 FStar_UInt128_logor(FStar_UInt128_uint128 a, FStar_UInt128_uint128 b)
+{
+  FStar_UInt128_uint128 flat = { a.low | b.low, a.high | b.high };
+  return flat;
+}
+
+FStar_UInt128_uint128 FStar_UInt128_lognot(FStar_UInt128_uint128 a)
+{
+  FStar_UInt128_uint128 flat = { ~a.low, ~a.high };
+  return flat;
+}
+
+static uint32_t FStar_UInt128_u32_64 = (uint32_t)64U;
+
+static uint64_t FStar_UInt128_add_u64_shift_left(uint64_t hi, uint64_t lo, uint32_t s)
+{
+  return (hi << s) + (lo >> (FStar_UInt128_u32_64 - s));
+}
+
+static uint64_t FStar_UInt128_add_u64_shift_left_respec(uint64_t hi, uint64_t lo, uint32_t s)
+{
+  return FStar_UInt128_add_u64_shift_left(hi, lo, s);
+}
+
+static FStar_UInt128_uint128
+FStar_UInt128_shift_left_small(FStar_UInt128_uint128 a, uint32_t s)
+{
+  if (s == (uint32_t)0U)
+  {
+    return a;
+  }
+  else
+  {
+    FStar_UInt128_uint128
+    flat = { a.low << s, FStar_UInt128_add_u64_shift_left_respec(a.high, a.low, s) };
+    return flat;
+  }
+}
+
+static FStar_UInt128_uint128
+FStar_UInt128_shift_left_large(FStar_UInt128_uint128 a, uint32_t s)
+{
+  FStar_UInt128_uint128 flat = { (uint64_t)0U, a.low << (s - FStar_UInt128_u32_64) };
+  return flat;
+}
+
+FStar_UInt128_uint128 FStar_UInt128_shift_left(FStar_UInt128_uint128 a, uint32_t s)
+{
+  if (s < FStar_UInt128_u32_64)
+  {
+    return FStar_UInt128_shift_left_small(a, s);
+  }
+  else
+  {
+    return FStar_UInt128_shift_left_large(a, s);
+  }
+}
+
+static uint64_t FStar_UInt128_add_u64_shift_right(uint64_t hi, uint64_t lo, uint32_t s)
+{
+  return (lo >> s) + (hi << (FStar_UInt128_u32_64 - s));
+}
+
+static uint64_t FStar_UInt128_add_u64_shift_right_respec(uint64_t hi, uint64_t lo, uint32_t s)
+{
+  return FStar_UInt128_add_u64_shift_right(hi, lo, s);
+}
+
+static FStar_UInt128_uint128
+FStar_UInt128_shift_right_small(FStar_UInt128_uint128 a, uint32_t s)
+{
+  if (s == (uint32_t)0U)
+  {
+    return a;
+  }
+  else
+  {
+    FStar_UInt128_uint128
+    flat = { FStar_UInt128_add_u64_shift_right_respec(a.high, a.low, s), a.high >> s };
+    return flat;
+  }
+}
+
+static FStar_UInt128_uint128
+FStar_UInt128_shift_right_large(FStar_UInt128_uint128 a, uint32_t s)
+{
+  FStar_UInt128_uint128 flat = { a.high >> (s - FStar_UInt128_u32_64), (uint64_t)0U };
+  return flat;
+}
+
+FStar_UInt128_uint128 FStar_UInt128_shift_right(FStar_UInt128_uint128 a, uint32_t s)
+{
+  if (s < FStar_UInt128_u32_64)
+  {
+    return FStar_UInt128_shift_right_small(a, s);
+  }
+  else
+  {
+    return FStar_UInt128_shift_right_large(a, s);
+  }
+}
+
+bool FStar_UInt128_eq(FStar_UInt128_uint128 a, FStar_UInt128_uint128 b)
+{
+  return a.low == b.low && a.high == b.high;
+}
+
+bool FStar_UInt128_gt(FStar_UInt128_uint128 a, FStar_UInt128_uint128 b)
+{
+  return a.high > b.high || (a.high == b.high && a.low > b.low);
+}
+
+bool FStar_UInt128_lt(FStar_UInt128_uint128 a, FStar_UInt128_uint128 b)
+{
+  return a.high < b.high || (a.high == b.high && a.low < b.low);
+}
+
+bool FStar_UInt128_gte(FStar_UInt128_uint128 a, FStar_UInt128_uint128 b)
+{
+  return a.high > b.high || (a.high == b.high && a.low >= b.low);
+}
+
+bool FStar_UInt128_lte(FStar_UInt128_uint128 a, FStar_UInt128_uint128 b)
+{
+  return a.high < b.high || (a.high == b.high && a.low <= b.low);
+}
+
+FStar_UInt128_uint128 FStar_UInt128_eq_mask(FStar_UInt128_uint128 a, FStar_UInt128_uint128 b)
+{
+  FStar_UInt128_uint128
+  flat =
+    {
+      FStar_UInt64_eq_mask(a.low,
+        b.low)
+      & FStar_UInt64_eq_mask(a.high, b.high),
+      FStar_UInt64_eq_mask(a.low,
+        b.low)
+      & FStar_UInt64_eq_mask(a.high, b.high)
+    };
+  return flat;
+}
+
+FStar_UInt128_uint128 FStar_UInt128_gte_mask(FStar_UInt128_uint128 a, FStar_UInt128_uint128 b)
+{
+  FStar_UInt128_uint128
+  flat =
+    {
+      (FStar_UInt64_gte_mask(a.high, b.high) & ~FStar_UInt64_eq_mask(a.high, b.high))
+      | (FStar_UInt64_eq_mask(a.high, b.high) & FStar_UInt64_gte_mask(a.low, b.low)),
+      (FStar_UInt64_gte_mask(a.high, b.high) & ~FStar_UInt64_eq_mask(a.high, b.high))
+      | (FStar_UInt64_eq_mask(a.high, b.high) & FStar_UInt64_gte_mask(a.low, b.low))
+    };
+  return flat;
+}
+
+FStar_UInt128_uint128 FStar_UInt128_uint64_to_uint128(uint64_t a)
+{
+  FStar_UInt128_uint128 flat = { a, (uint64_t)0U };
+  return flat;
+}
+
+uint64_t FStar_UInt128_uint128_to_uint64(FStar_UInt128_uint128 a)
+{
+  return a.low;
+}
+
+FStar_UInt128_uint128
+(*FStar_UInt128_op_Plus_Hat)(FStar_UInt128_uint128 x0, FStar_UInt128_uint128 x1) =
+  FStar_UInt128_add;
+
+FStar_UInt128_uint128
+(*FStar_UInt128_op_Plus_Question_Hat)(FStar_UInt128_uint128 x0, FStar_UInt128_uint128 x1) =
+  FStar_UInt128_add_underspec;
+
+FStar_UInt128_uint128
+(*FStar_UInt128_op_Plus_Percent_Hat)(FStar_UInt128_uint128 x0, FStar_UInt128_uint128 x1) =
+  FStar_UInt128_add_mod;
+
+FStar_UInt128_uint128
+(*FStar_UInt128_op_Subtraction_Hat)(FStar_UInt128_uint128 x0, FStar_UInt128_uint128 x1) =
+  FStar_UInt128_sub;
+
+FStar_UInt128_uint128
+(*FStar_UInt128_op_Subtraction_Question_Hat)(
+  FStar_UInt128_uint128 x0,
+  FStar_UInt128_uint128 x1
+) = FStar_UInt128_sub_underspec;
+
+FStar_UInt128_uint128
+(*FStar_UInt128_op_Subtraction_Percent_Hat)(FStar_UInt128_uint128 x0, FStar_UInt128_uint128 x1) =
+  FStar_UInt128_sub_mod;
+
+FStar_UInt128_uint128
+(*FStar_UInt128_op_Amp_Hat)(FStar_UInt128_uint128 x0, FStar_UInt128_uint128 x1) =
+  FStar_UInt128_logand;
+
+FStar_UInt128_uint128
+(*FStar_UInt128_op_Hat_Hat)(FStar_UInt128_uint128 x0, FStar_UInt128_uint128 x1) =
+  FStar_UInt128_logxor;
+
+FStar_UInt128_uint128
+(*FStar_UInt128_op_Bar_Hat)(FStar_UInt128_uint128 x0, FStar_UInt128_uint128 x1) =
+  FStar_UInt128_logor;
+
+FStar_UInt128_uint128
+(*FStar_UInt128_op_Less_Less_Hat)(FStar_UInt128_uint128 x0, uint32_t x1) =
+  FStar_UInt128_shift_left;
+
+FStar_UInt128_uint128
+(*FStar_UInt128_op_Greater_Greater_Hat)(FStar_UInt128_uint128 x0, uint32_t x1) =
+  FStar_UInt128_shift_right;
+
+bool
+(*FStar_UInt128_op_Equals_Hat)(FStar_UInt128_uint128 x0, FStar_UInt128_uint128 x1) =
+  FStar_UInt128_eq;
+
+bool
+(*FStar_UInt128_op_Greater_Hat)(FStar_UInt128_uint128 x0, FStar_UInt128_uint128 x1) =
+  FStar_UInt128_gt;
+
+bool
+(*FStar_UInt128_op_Less_Hat)(FStar_UInt128_uint128 x0, FStar_UInt128_uint128 x1) =
+  FStar_UInt128_lt;
+
+bool
+(*FStar_UInt128_op_Greater_Equals_Hat)(FStar_UInt128_uint128 x0, FStar_UInt128_uint128 x1) =
+  FStar_UInt128_gte;
+
+bool
+(*FStar_UInt128_op_Less_Equals_Hat)(FStar_UInt128_uint128 x0, FStar_UInt128_uint128 x1) =
+  FStar_UInt128_lte;
+
+static uint64_t FStar_UInt128_u64_mod_32(uint64_t a)
+{
+  return a & (uint64_t)0xffffffffU;
+}
+
+static uint32_t FStar_UInt128_u32_32 = (uint32_t)32U;
+
+static uint64_t FStar_UInt128_u32_combine(uint64_t hi, uint64_t lo)
+{
+  return lo + (hi << FStar_UInt128_u32_32);
+}
+
+FStar_UInt128_uint128 FStar_UInt128_mul32(uint64_t x, uint32_t y)
+{
+  FStar_UInt128_uint128
+  flat =
+    {
+      FStar_UInt128_u32_combine((x >> FStar_UInt128_u32_32)
+        * (uint64_t)y
+        + (FStar_UInt128_u64_mod_32(x) * (uint64_t)y >> FStar_UInt128_u32_32),
+        FStar_UInt128_u64_mod_32(FStar_UInt128_u64_mod_32(x) * (uint64_t)y)),
+      ((x >> FStar_UInt128_u32_32)
+      * (uint64_t)y
+      + (FStar_UInt128_u64_mod_32(x) * (uint64_t)y >> FStar_UInt128_u32_32))
+      >> FStar_UInt128_u32_32
+    };
+  return flat;
+}
+
+typedef struct K___uint64_t_uint64_t_uint64_t_uint64_t_s
+{
+  uint64_t fst;
+  uint64_t snd;
+  uint64_t thd;
+  uint64_t f3;
+}
+K___uint64_t_uint64_t_uint64_t_uint64_t;
+
+static K___uint64_t_uint64_t_uint64_t_uint64_t
+FStar_UInt128_mul_wide_impl_t_(uint64_t x, uint64_t y)
+{
+  K___uint64_t_uint64_t_uint64_t_uint64_t
+  flat =
+    {
+      FStar_UInt128_u64_mod_32(x),
+      FStar_UInt128_u64_mod_32(FStar_UInt128_u64_mod_32(x) * FStar_UInt128_u64_mod_32(y)),
+      x
+      >> FStar_UInt128_u32_32,
+      (x >> FStar_UInt128_u32_32)
+      * FStar_UInt128_u64_mod_32(y)
+      + (FStar_UInt128_u64_mod_32(x) * FStar_UInt128_u64_mod_32(y) >> FStar_UInt128_u32_32)
+    };
+  return flat;
+}
+
+static uint64_t FStar_UInt128_u32_combine_(uint64_t hi, uint64_t lo)
+{
+  return lo + (hi << FStar_UInt128_u32_32);
+}
+
+static FStar_UInt128_uint128 FStar_UInt128_mul_wide_impl(uint64_t x, uint64_t y)
+{
+  K___uint64_t_uint64_t_uint64_t_uint64_t scrut = FStar_UInt128_mul_wide_impl_t_(x, y);
+  uint64_t u1 = scrut.fst;
+  uint64_t w3 = scrut.snd;
+  uint64_t x_ = scrut.thd;
+  uint64_t t_ = scrut.f3;
+  FStar_UInt128_uint128
+  flat =
+    {
+      FStar_UInt128_u32_combine_(u1 * (y >> FStar_UInt128_u32_32) + FStar_UInt128_u64_mod_32(t_),
+        w3),
+      x_
+      * (y >> FStar_UInt128_u32_32)
+      + (t_ >> FStar_UInt128_u32_32)
+      + ((u1 * (y >> FStar_UInt128_u32_32) + FStar_UInt128_u64_mod_32(t_)) >> FStar_UInt128_u32_32)
+    };
+  return flat;
+}
+
+FStar_UInt128_uint128 FStar_UInt128_mul_wide(uint64_t x, uint64_t y)
+{
+  return FStar_UInt128_mul_wide_impl(x, y);
+}
+
diff --git a/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/everest/library/kremlib/FStar_UInt64_FStar_UInt32_FStar_UInt16_FStar_UInt8.c b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/everest/library/kremlib/FStar_UInt64_FStar_UInt32_FStar_UInt16_FStar_UInt8.c
new file mode 100644
index 00000000000..08265248f20
--- /dev/null
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/everest/library/kremlib/FStar_UInt64_FStar_UInt32_FStar_UInt16_FStar_UInt8.c
@@ -0,0 +1,100 @@
+/* Copyright (c) INRIA and Microsoft Corporation. All rights reserved.
+   Licensed under the Apache 2.0 License. */
+
+/* This file was generated by KreMLin <https://github.com/FStarLang/kremlin>
+ * KreMLin invocation: ../krml -fc89 -fparentheses -fno-shadow -header /mnt/e/everest/verify/hdrB9w -minimal -fparentheses -fcurly-braces -fno-shadow -header copyright-header.txt -minimal -tmpdir dist/minimal -skip-compilation -extract-uints -add-include <inttypes.h> -add-include <stdbool.h> -add-include "kremlin/internal/compat.h" -add-include "kremlin/internal/types.h" -bundle FStar.UInt64+FStar.UInt32+FStar.UInt16+FStar.UInt8=* extracted/prims.krml extracted/FStar_Pervasives_Native.krml extracted/FStar_Pervasives.krml extracted/FStar_Mul.krml extracted/FStar_Squash.krml extracted/FStar_Classical.krml extracted/FStar_StrongExcludedMiddle.krml extracted/FStar_FunctionalExtensionality.krml extracted/FStar_List_Tot_Base.krml extracted/FStar_List_Tot_Properties.krml extracted/FStar_List_Tot.krml extracted/FStar_Seq_Base.krml extracted/FStar_Seq_Properties.krml extracted/FStar_Seq.krml extracted/FStar_Math_Lib.krml extracted/FStar_Math_Lemmas.krml extracted/FStar_BitVector.krml extracted/FStar_UInt.krml extracted/FStar_UInt32.krml extracted/FStar_Int.krml extracted/FStar_Int16.krml extracted/FStar_Preorder.krml extracted/FStar_Ghost.krml extracted/FStar_ErasedLogic.krml extracted/FStar_UInt64.krml extracted/FStar_Set.krml extracted/FStar_PropositionalExtensionality.krml extracted/FStar_PredicateExtensionality.krml extracted/FStar_TSet.krml extracted/FStar_Monotonic_Heap.krml extracted/FStar_Heap.krml extracted/FStar_Map.krml extracted/FStar_Monotonic_HyperHeap.krml extracted/FStar_Monotonic_HyperStack.krml extracted/FStar_HyperStack.krml extracted/FStar_Monotonic_Witnessed.krml extracted/FStar_HyperStack_ST.krml extracted/FStar_HyperStack_All.krml extracted/FStar_Date.krml extracted/FStar_Universe.krml extracted/FStar_GSet.krml extracted/FStar_ModifiesGen.krml extracted/LowStar_Monotonic_Buffer.krml extracted/LowStar_Buffer.krml extracted/Spec_Loops.krml extracted/LowStar_BufferOps.krml extracted/C_Loops.krml extracted/FStar_UInt8.krml extracted/FStar_Kremlin_Endianness.krml extracted/FStar_UInt63.krml extracted/FStar_Exn.krml extracted/FStar_ST.krml extracted/FStar_All.krml extracted/FStar_Dyn.krml extracted/FStar_Int63.krml extracted/FStar_Int64.krml extracted/FStar_Int32.krml extracted/FStar_Int8.krml extracted/FStar_UInt16.krml extracted/FStar_Int_Cast.krml extracted/FStar_UInt128.krml extracted/C_Endianness.krml extracted/FStar_List.krml extracted/FStar_Float.krml extracted/FStar_IO.krml extracted/C.krml extracted/FStar_Char.krml extracted/FStar_String.krml extracted/LowStar_Modifies.krml extracted/C_String.krml extracted/FStar_Bytes.krml extracted/FStar_HyperStack_IO.krml extracted/C_Failure.krml extracted/TestLib.krml extracted/FStar_Int_Cast_Full.krml
+ * F* version: 059db0c8
+ * KreMLin version: 916c37ac
+ */
+
+
+#include "FStar_UInt64_FStar_UInt32_FStar_UInt16_FStar_UInt8.h"
+
+uint64_t FStar_UInt64_eq_mask(uint64_t a, uint64_t b)
+{
+  uint64_t x = a ^ b;
+  uint64_t minus_x = ~x + (uint64_t)1U;
+  uint64_t x_or_minus_x = x | minus_x;
+  uint64_t xnx = x_or_minus_x >> (uint32_t)63U;
+  return xnx - (uint64_t)1U;
+}
+
+uint64_t FStar_UInt64_gte_mask(uint64_t a, uint64_t b)
+{
+  uint64_t x = a;
+  uint64_t y = b;
+  uint64_t x_xor_y = x ^ y;
+  uint64_t x_sub_y = x - y;
+  uint64_t x_sub_y_xor_y = x_sub_y ^ y;
+  uint64_t q = x_xor_y | x_sub_y_xor_y;
+  uint64_t x_xor_q = x ^ q;
+  uint64_t x_xor_q_ = x_xor_q >> (uint32_t)63U;
+  return x_xor_q_ - (uint64_t)1U;
+}
+
+uint32_t FStar_UInt32_eq_mask(uint32_t a, uint32_t b)
+{
+  uint32_t x = a ^ b;
+  uint32_t minus_x = ~x + (uint32_t)1U;
+  uint32_t x_or_minus_x = x | minus_x;
+  uint32_t xnx = x_or_minus_x >> (uint32_t)31U;
+  return xnx - (uint32_t)1U;
+}
+
+uint32_t FStar_UInt32_gte_mask(uint32_t a, uint32_t b)
+{
+  uint32_t x = a;
+  uint32_t y = b;
+  uint32_t x_xor_y = x ^ y;
+  uint32_t x_sub_y = x - y;
+  uint32_t x_sub_y_xor_y = x_sub_y ^ y;
+  uint32_t q = x_xor_y | x_sub_y_xor_y;
+  uint32_t x_xor_q = x ^ q;
+  uint32_t x_xor_q_ = x_xor_q >> (uint32_t)31U;
+  return x_xor_q_ - (uint32_t)1U;
+}
+
+uint16_t FStar_UInt16_eq_mask(uint16_t a, uint16_t b)
+{
+  uint16_t x = a ^ b;
+  uint16_t minus_x = ~x + (uint16_t)1U;
+  uint16_t x_or_minus_x = x | minus_x;
+  uint16_t xnx = x_or_minus_x >> (uint32_t)15U;
+  return xnx - (uint16_t)1U;
+}
+
+uint16_t FStar_UInt16_gte_mask(uint16_t a, uint16_t b)
+{
+  uint16_t x = a;
+  uint16_t y = b;
+  uint16_t x_xor_y = x ^ y;
+  uint16_t x_sub_y = x - y;
+  uint16_t x_sub_y_xor_y = x_sub_y ^ y;
+  uint16_t q = x_xor_y | x_sub_y_xor_y;
+  uint16_t x_xor_q = x ^ q;
+  uint16_t x_xor_q_ = x_xor_q >> (uint32_t)15U;
+  return x_xor_q_ - (uint16_t)1U;
+}
+
+uint8_t FStar_UInt8_eq_mask(uint8_t a, uint8_t b)
+{
+  uint8_t x = a ^ b;
+  uint8_t minus_x = ~x + (uint8_t)1U;
+  uint8_t x_or_minus_x = x | minus_x;
+  uint8_t xnx = x_or_minus_x >> (uint32_t)7U;
+  return xnx - (uint8_t)1U;
+}
+
+uint8_t FStar_UInt8_gte_mask(uint8_t a, uint8_t b)
+{
+  uint8_t x = a;
+  uint8_t y = b;
+  uint8_t x_xor_y = x ^ y;
+  uint8_t x_sub_y = x - y;
+  uint8_t x_sub_y_xor_y = x_sub_y ^ y;
+  uint8_t q = x_xor_y | x_sub_y_xor_y;
+  uint8_t x_xor_q = x ^ q;
+  uint8_t x_xor_q_ = x_xor_q >> (uint32_t)7U;
+  return x_xor_q_ - (uint8_t)1U;
+}
+
diff --git a/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/everest/library/legacy/Hacl_Curve25519.c b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/everest/library/legacy/Hacl_Curve25519.c
new file mode 100644
index 00000000000..babebe4f111
--- /dev/null
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/everest/library/legacy/Hacl_Curve25519.c
@@ -0,0 +1,805 @@
+/* Copyright (c) INRIA and Microsoft Corporation. All rights reserved.
+   Licensed under the Apache 2.0 License. */
+
+/* This file was generated by KreMLin <https://github.com/FStarLang/kremlin>
+ * KreMLin invocation: /mnt/e/everest/verify/kremlin/krml -fc89 -fparentheses -fno-shadow -header /mnt/e/everest/verify/hdrcLh -minimal -fc89 -fparentheses -fno-shadow -header /mnt/e/everest/verify/hdrcLh -minimal -I /mnt/e/everest/verify/hacl-star/code/lib/kremlin -I /mnt/e/everest/verify/kremlin/kremlib/compat -I /mnt/e/everest/verify/hacl-star/specs -I /mnt/e/everest/verify/hacl-star/specs/old -I . -ccopt -march=native -verbose -ldopt -flto -tmpdir x25519-c -I ../bignum -bundle Hacl.Curve25519=* -minimal -add-include "kremlib.h" -skip-compilation x25519-c/out.krml -o x25519-c/Hacl_Curve25519.c
+ * F* version: 059db0c8
+ * KreMLin version: 916c37ac
+ */
+
+
+#include "Hacl_Curve25519.h"
+
+extern uint64_t FStar_UInt64_eq_mask(uint64_t x0, uint64_t x1);
+
+extern uint64_t FStar_UInt64_gte_mask(uint64_t x0, uint64_t x1);
+
+extern FStar_UInt128_uint128
+FStar_UInt128_add(FStar_UInt128_uint128 x0, FStar_UInt128_uint128 x1);
+
+extern FStar_UInt128_uint128
+FStar_UInt128_add_mod(FStar_UInt128_uint128 x0, FStar_UInt128_uint128 x1);
+
+extern FStar_UInt128_uint128
+FStar_UInt128_logand(FStar_UInt128_uint128 x0, FStar_UInt128_uint128 x1);
+
+extern FStar_UInt128_uint128 FStar_UInt128_shift_right(FStar_UInt128_uint128 x0, uint32_t x1);
+
+extern FStar_UInt128_uint128 FStar_UInt128_uint64_to_uint128(uint64_t x0);
+
+extern uint64_t FStar_UInt128_uint128_to_uint64(FStar_UInt128_uint128 x0);
+
+extern FStar_UInt128_uint128 FStar_UInt128_mul_wide(uint64_t x0, uint64_t x1);
+
+static void Hacl_Bignum_Modulo_carry_top(uint64_t *b)
+{
+  uint64_t b4 = b[4U];
+  uint64_t b0 = b[0U];
+  uint64_t b4_ = b4 & (uint64_t)0x7ffffffffffffU;
+  uint64_t b0_ = b0 + (uint64_t)19U * (b4 >> (uint32_t)51U);
+  b[4U] = b4_;
+  b[0U] = b0_;
+}
+
+inline static void
+Hacl_Bignum_Fproduct_copy_from_wide_(uint64_t *output, FStar_UInt128_uint128 *input)
+{
+  uint32_t i;
+  for (i = (uint32_t)0U; i < (uint32_t)5U; i = i + (uint32_t)1U)
+  {
+    FStar_UInt128_uint128 xi = input[i];
+    output[i] = FStar_UInt128_uint128_to_uint64(xi);
+  }
+}
+
+inline static void
+Hacl_Bignum_Fproduct_sum_scalar_multiplication_(
+  FStar_UInt128_uint128 *output,
+  uint64_t *input,
+  uint64_t s
+)
+{
+  uint32_t i;
+  for (i = (uint32_t)0U; i < (uint32_t)5U; i = i + (uint32_t)1U)
+  {
+    FStar_UInt128_uint128 xi = output[i];
+    uint64_t yi = input[i];
+    output[i] = FStar_UInt128_add_mod(xi, FStar_UInt128_mul_wide(yi, s));
+  }
+}
+
+inline static void Hacl_Bignum_Fproduct_carry_wide_(FStar_UInt128_uint128 *tmp)
+{
+  uint32_t i;
+  for (i = (uint32_t)0U; i < (uint32_t)4U; i = i + (uint32_t)1U)
+  {
+    uint32_t ctr = i;
+    FStar_UInt128_uint128 tctr = tmp[ctr];
+    FStar_UInt128_uint128 tctrp1 = tmp[ctr + (uint32_t)1U];
+    uint64_t r0 = FStar_UInt128_uint128_to_uint64(tctr) & (uint64_t)0x7ffffffffffffU;
+    FStar_UInt128_uint128 c = FStar_UInt128_shift_right(tctr, (uint32_t)51U);
+    tmp[ctr] = FStar_UInt128_uint64_to_uint128(r0);
+    tmp[ctr + (uint32_t)1U] = FStar_UInt128_add(tctrp1, c);
+  }
+}
+
+inline static void Hacl_Bignum_Fmul_shift_reduce(uint64_t *output)
+{
+  uint64_t tmp = output[4U];
+  uint64_t b0;
+  {
+    uint32_t i;
+    for (i = (uint32_t)0U; i < (uint32_t)4U; i = i + (uint32_t)1U)
+    {
+      uint32_t ctr = (uint32_t)5U - i - (uint32_t)1U;
+      uint64_t z = output[ctr - (uint32_t)1U];
+      output[ctr] = z;
+    }
+  }
+  output[0U] = tmp;
+  b0 = output[0U];
+  output[0U] = (uint64_t)19U * b0;
+}
+
+static void
+Hacl_Bignum_Fmul_mul_shift_reduce_(
+  FStar_UInt128_uint128 *output,
+  uint64_t *input,
+  uint64_t *input2
+)
+{
+  uint32_t i;
+  uint64_t input2i;
+  {
+    uint32_t i0;
+    for (i0 = (uint32_t)0U; i0 < (uint32_t)4U; i0 = i0 + (uint32_t)1U)
+    {
+      uint64_t input2i0 = input2[i0];
+      Hacl_Bignum_Fproduct_sum_scalar_multiplication_(output, input, input2i0);
+      Hacl_Bignum_Fmul_shift_reduce(input);
+    }
+  }
+  i = (uint32_t)4U;
+  input2i = input2[i];
+  Hacl_Bignum_Fproduct_sum_scalar_multiplication_(output, input, input2i);
+}
+
+inline static void Hacl_Bignum_Fmul_fmul(uint64_t *output, uint64_t *input, uint64_t *input2)
+{
+  uint64_t tmp[5U] = { 0U };
+  memcpy(tmp, input, (uint32_t)5U * sizeof input[0U]);
+  KRML_CHECK_SIZE(sizeof (FStar_UInt128_uint128), (uint32_t)5U);
+  {
+    FStar_UInt128_uint128 t[5U];
+    {
+      uint32_t _i;
+      for (_i = 0U; _i < (uint32_t)5U; ++_i)
+        t[_i] = FStar_UInt128_uint64_to_uint128((uint64_t)0U);
+    }
+    {
+      FStar_UInt128_uint128 b4;
+      FStar_UInt128_uint128 b0;
+      FStar_UInt128_uint128 b4_;
+      FStar_UInt128_uint128 b0_;
+      uint64_t i0;
+      uint64_t i1;
+      uint64_t i0_;
+      uint64_t i1_;
+      Hacl_Bignum_Fmul_mul_shift_reduce_(t, tmp, input2);
+      Hacl_Bignum_Fproduct_carry_wide_(t);
+      b4 = t[4U];
+      b0 = t[0U];
+      b4_ = FStar_UInt128_logand(b4, FStar_UInt128_uint64_to_uint128((uint64_t)0x7ffffffffffffU));
+      b0_ =
+        FStar_UInt128_add(b0,
+          FStar_UInt128_mul_wide((uint64_t)19U,
+            FStar_UInt128_uint128_to_uint64(FStar_UInt128_shift_right(b4, (uint32_t)51U))));
+      t[4U] = b4_;
+      t[0U] = b0_;
+      Hacl_Bignum_Fproduct_copy_from_wide_(output, t);
+      i0 = output[0U];
+      i1 = output[1U];
+      i0_ = i0 & (uint64_t)0x7ffffffffffffU;
+      i1_ = i1 + (i0 >> (uint32_t)51U);
+      output[0U] = i0_;
+      output[1U] = i1_;
+    }
+  }
+}
+
+inline static void Hacl_Bignum_Fsquare_fsquare__(FStar_UInt128_uint128 *tmp, uint64_t *output)
+{
+  uint64_t r0 = output[0U];
+  uint64_t r1 = output[1U];
+  uint64_t r2 = output[2U];
+  uint64_t r3 = output[3U];
+  uint64_t r4 = output[4U];
+  uint64_t d0 = r0 * (uint64_t)2U;
+  uint64_t d1 = r1 * (uint64_t)2U;
+  uint64_t d2 = r2 * (uint64_t)2U * (uint64_t)19U;
+  uint64_t d419 = r4 * (uint64_t)19U;
+  uint64_t d4 = d419 * (uint64_t)2U;
+  FStar_UInt128_uint128
+  s0 =
+    FStar_UInt128_add(FStar_UInt128_add(FStar_UInt128_mul_wide(r0, r0),
+        FStar_UInt128_mul_wide(d4, r1)),
+      FStar_UInt128_mul_wide(d2, r3));
+  FStar_UInt128_uint128
+  s1 =
+    FStar_UInt128_add(FStar_UInt128_add(FStar_UInt128_mul_wide(d0, r1),
+        FStar_UInt128_mul_wide(d4, r2)),
+      FStar_UInt128_mul_wide(r3 * (uint64_t)19U, r3));
+  FStar_UInt128_uint128
+  s2 =
+    FStar_UInt128_add(FStar_UInt128_add(FStar_UInt128_mul_wide(d0, r2),
+        FStar_UInt128_mul_wide(r1, r1)),
+      FStar_UInt128_mul_wide(d4, r3));
+  FStar_UInt128_uint128
+  s3 =
+    FStar_UInt128_add(FStar_UInt128_add(FStar_UInt128_mul_wide(d0, r3),
+        FStar_UInt128_mul_wide(d1, r2)),
+      FStar_UInt128_mul_wide(r4, d419));
+  FStar_UInt128_uint128
+  s4 =
+    FStar_UInt128_add(FStar_UInt128_add(FStar_UInt128_mul_wide(d0, r4),
+        FStar_UInt128_mul_wide(d1, r3)),
+      FStar_UInt128_mul_wide(r2, r2));
+  tmp[0U] = s0;
+  tmp[1U] = s1;
+  tmp[2U] = s2;
+  tmp[3U] = s3;
+  tmp[4U] = s4;
+}
+
+inline static void Hacl_Bignum_Fsquare_fsquare_(FStar_UInt128_uint128 *tmp, uint64_t *output)
+{
+  FStar_UInt128_uint128 b4;
+  FStar_UInt128_uint128 b0;
+  FStar_UInt128_uint128 b4_;
+  FStar_UInt128_uint128 b0_;
+  uint64_t i0;
+  uint64_t i1;
+  uint64_t i0_;
+  uint64_t i1_;
+  Hacl_Bignum_Fsquare_fsquare__(tmp, output);
+  Hacl_Bignum_Fproduct_carry_wide_(tmp);
+  b4 = tmp[4U];
+  b0 = tmp[0U];
+  b4_ = FStar_UInt128_logand(b4, FStar_UInt128_uint64_to_uint128((uint64_t)0x7ffffffffffffU));
+  b0_ =
+    FStar_UInt128_add(b0,
+      FStar_UInt128_mul_wide((uint64_t)19U,
+        FStar_UInt128_uint128_to_uint64(FStar_UInt128_shift_right(b4, (uint32_t)51U))));
+  tmp[4U] = b4_;
+  tmp[0U] = b0_;
+  Hacl_Bignum_Fproduct_copy_from_wide_(output, tmp);
+  i0 = output[0U];
+  i1 = output[1U];
+  i0_ = i0 & (uint64_t)0x7ffffffffffffU;
+  i1_ = i1 + (i0 >> (uint32_t)51U);
+  output[0U] = i0_;
+  output[1U] = i1_;
+}
+
+static void
+Hacl_Bignum_Fsquare_fsquare_times_(
+  uint64_t *input,
+  FStar_UInt128_uint128 *tmp,
+  uint32_t count1
+)
+{
+  uint32_t i;
+  Hacl_Bignum_Fsquare_fsquare_(tmp, input);
+  for (i = (uint32_t)1U; i < count1; i = i + (uint32_t)1U)
+    Hacl_Bignum_Fsquare_fsquare_(tmp, input);
+}
+
+inline static void
+Hacl_Bignum_Fsquare_fsquare_times(uint64_t *output, uint64_t *input, uint32_t count1)
+{
+  KRML_CHECK_SIZE(sizeof (FStar_UInt128_uint128), (uint32_t)5U);
+  {
+    FStar_UInt128_uint128 t[5U];
+    {
+      uint32_t _i;
+      for (_i = 0U; _i < (uint32_t)5U; ++_i)
+        t[_i] = FStar_UInt128_uint64_to_uint128((uint64_t)0U);
+    }
+    memcpy(output, input, (uint32_t)5U * sizeof input[0U]);
+    Hacl_Bignum_Fsquare_fsquare_times_(output, t, count1);
+  }
+}
+
+inline static void Hacl_Bignum_Fsquare_fsquare_times_inplace(uint64_t *output, uint32_t count1)
+{
+  KRML_CHECK_SIZE(sizeof (FStar_UInt128_uint128), (uint32_t)5U);
+  {
+    FStar_UInt128_uint128 t[5U];
+    {
+      uint32_t _i;
+      for (_i = 0U; _i < (uint32_t)5U; ++_i)
+        t[_i] = FStar_UInt128_uint64_to_uint128((uint64_t)0U);
+    }
+    Hacl_Bignum_Fsquare_fsquare_times_(output, t, count1);
+  }
+}
+
+inline static void Hacl_Bignum_Crecip_crecip(uint64_t *out, uint64_t *z)
+{
+  uint64_t buf[20U] = { 0U };
+  uint64_t *a0 = buf;
+  uint64_t *t00 = buf + (uint32_t)5U;
+  uint64_t *b0 = buf + (uint32_t)10U;
+  uint64_t *t01;
+  uint64_t *b1;
+  uint64_t *c0;
+  uint64_t *a;
+  uint64_t *t0;
+  uint64_t *b;
+  uint64_t *c;
+  Hacl_Bignum_Fsquare_fsquare_times(a0, z, (uint32_t)1U);
+  Hacl_Bignum_Fsquare_fsquare_times(t00, a0, (uint32_t)2U);
+  Hacl_Bignum_Fmul_fmul(b0, t00, z);
+  Hacl_Bignum_Fmul_fmul(a0, b0, a0);
+  Hacl_Bignum_Fsquare_fsquare_times(t00, a0, (uint32_t)1U);
+  Hacl_Bignum_Fmul_fmul(b0, t00, b0);
+  Hacl_Bignum_Fsquare_fsquare_times(t00, b0, (uint32_t)5U);
+  t01 = buf + (uint32_t)5U;
+  b1 = buf + (uint32_t)10U;
+  c0 = buf + (uint32_t)15U;
+  Hacl_Bignum_Fmul_fmul(b1, t01, b1);
+  Hacl_Bignum_Fsquare_fsquare_times(t01, b1, (uint32_t)10U);
+  Hacl_Bignum_Fmul_fmul(c0, t01, b1);
+  Hacl_Bignum_Fsquare_fsquare_times(t01, c0, (uint32_t)20U);
+  Hacl_Bignum_Fmul_fmul(t01, t01, c0);
+  Hacl_Bignum_Fsquare_fsquare_times_inplace(t01, (uint32_t)10U);
+  Hacl_Bignum_Fmul_fmul(b1, t01, b1);
+  Hacl_Bignum_Fsquare_fsquare_times(t01, b1, (uint32_t)50U);
+  a = buf;
+  t0 = buf + (uint32_t)5U;
+  b = buf + (uint32_t)10U;
+  c = buf + (uint32_t)15U;
+  Hacl_Bignum_Fmul_fmul(c, t0, b);
+  Hacl_Bignum_Fsquare_fsquare_times(t0, c, (uint32_t)100U);
+  Hacl_Bignum_Fmul_fmul(t0, t0, c);
+  Hacl_Bignum_Fsquare_fsquare_times_inplace(t0, (uint32_t)50U);
+  Hacl_Bignum_Fmul_fmul(t0, t0, b);
+  Hacl_Bignum_Fsquare_fsquare_times_inplace(t0, (uint32_t)5U);
+  Hacl_Bignum_Fmul_fmul(out, t0, a);
+}
+
+inline static void Hacl_Bignum_fsum(uint64_t *a, uint64_t *b)
+{
+  uint32_t i;
+  for (i = (uint32_t)0U; i < (uint32_t)5U; i = i + (uint32_t)1U)
+  {
+    uint64_t xi = a[i];
+    uint64_t yi = b[i];
+    a[i] = xi + yi;
+  }
+}
+
+inline static void Hacl_Bignum_fdifference(uint64_t *a, uint64_t *b)
+{
+  uint64_t tmp[5U] = { 0U };
+  uint64_t b0;
+  uint64_t b1;
+  uint64_t b2;
+  uint64_t b3;
+  uint64_t b4;
+  memcpy(tmp, b, (uint32_t)5U * sizeof b[0U]);
+  b0 = tmp[0U];
+  b1 = tmp[1U];
+  b2 = tmp[2U];
+  b3 = tmp[3U];
+  b4 = tmp[4U];
+  tmp[0U] = b0 + (uint64_t)0x3fffffffffff68U;
+  tmp[1U] = b1 + (uint64_t)0x3ffffffffffff8U;
+  tmp[2U] = b2 + (uint64_t)0x3ffffffffffff8U;
+  tmp[3U] = b3 + (uint64_t)0x3ffffffffffff8U;
+  tmp[4U] = b4 + (uint64_t)0x3ffffffffffff8U;
+  {
+    uint32_t i;
+    for (i = (uint32_t)0U; i < (uint32_t)5U; i = i + (uint32_t)1U)
+    {
+      uint64_t xi = a[i];
+      uint64_t yi = tmp[i];
+      a[i] = yi - xi;
+    }
+  }
+}
+
+inline static void Hacl_Bignum_fscalar(uint64_t *output, uint64_t *b, uint64_t s)
+{
+  KRML_CHECK_SIZE(sizeof (FStar_UInt128_uint128), (uint32_t)5U);
+  {
+    FStar_UInt128_uint128 tmp[5U];
+    {
+      uint32_t _i;
+      for (_i = 0U; _i < (uint32_t)5U; ++_i)
+        tmp[_i] = FStar_UInt128_uint64_to_uint128((uint64_t)0U);
+    }
+    {
+      FStar_UInt128_uint128 b4;
+      FStar_UInt128_uint128 b0;
+      FStar_UInt128_uint128 b4_;
+      FStar_UInt128_uint128 b0_;
+      {
+        uint32_t i;
+        for (i = (uint32_t)0U; i < (uint32_t)5U; i = i + (uint32_t)1U)
+        {
+          uint64_t xi = b[i];
+          tmp[i] = FStar_UInt128_mul_wide(xi, s);
+        }
+      }
+      Hacl_Bignum_Fproduct_carry_wide_(tmp);
+      b4 = tmp[4U];
+      b0 = tmp[0U];
+      b4_ = FStar_UInt128_logand(b4, FStar_UInt128_uint64_to_uint128((uint64_t)0x7ffffffffffffU));
+      b0_ =
+        FStar_UInt128_add(b0,
+          FStar_UInt128_mul_wide((uint64_t)19U,
+            FStar_UInt128_uint128_to_uint64(FStar_UInt128_shift_right(b4, (uint32_t)51U))));
+      tmp[4U] = b4_;
+      tmp[0U] = b0_;
+      Hacl_Bignum_Fproduct_copy_from_wide_(output, tmp);
+    }
+  }
+}
+
+inline static void Hacl_Bignum_fmul(uint64_t *output, uint64_t *a, uint64_t *b)
+{
+  Hacl_Bignum_Fmul_fmul(output, a, b);
+}
+
+inline static void Hacl_Bignum_crecip(uint64_t *output, uint64_t *input)
+{
+  Hacl_Bignum_Crecip_crecip(output, input);
+}
+
+static void
+Hacl_EC_Point_swap_conditional_step(uint64_t *a, uint64_t *b, uint64_t swap1, uint32_t ctr)
+{
+  uint32_t i = ctr - (uint32_t)1U;
+  uint64_t ai = a[i];
+  uint64_t bi = b[i];
+  uint64_t x = swap1 & (ai ^ bi);
+  uint64_t ai1 = ai ^ x;
+  uint64_t bi1 = bi ^ x;
+  a[i] = ai1;
+  b[i] = bi1;
+}
+
+static void
+Hacl_EC_Point_swap_conditional_(uint64_t *a, uint64_t *b, uint64_t swap1, uint32_t ctr)
+{
+  if (!(ctr == (uint32_t)0U))
+  {
+    uint32_t i;
+    Hacl_EC_Point_swap_conditional_step(a, b, swap1, ctr);
+    i = ctr - (uint32_t)1U;
+    Hacl_EC_Point_swap_conditional_(a, b, swap1, i);
+  }
+}
+
+static void Hacl_EC_Point_swap_conditional(uint64_t *a, uint64_t *b, uint64_t iswap)
+{
+  uint64_t swap1 = (uint64_t)0U - iswap;
+  Hacl_EC_Point_swap_conditional_(a, b, swap1, (uint32_t)5U);
+  Hacl_EC_Point_swap_conditional_(a + (uint32_t)5U, b + (uint32_t)5U, swap1, (uint32_t)5U);
+}
+
+static void Hacl_EC_Point_copy(uint64_t *output, uint64_t *input)
+{
+  memcpy(output, input, (uint32_t)5U * sizeof input[0U]);
+  memcpy(output + (uint32_t)5U,
+    input + (uint32_t)5U,
+    (uint32_t)5U * sizeof (input + (uint32_t)5U)[0U]);
+}
+
+static void Hacl_EC_Format_fexpand(uint64_t *output, uint8_t *input)
+{
+  uint64_t i0 = load64_le(input);
+  uint8_t *x00 = input + (uint32_t)6U;
+  uint64_t i1 = load64_le(x00);
+  uint8_t *x01 = input + (uint32_t)12U;
+  uint64_t i2 = load64_le(x01);
+  uint8_t *x02 = input + (uint32_t)19U;
+  uint64_t i3 = load64_le(x02);
+  uint8_t *x0 = input + (uint32_t)24U;
+  uint64_t i4 = load64_le(x0);
+  uint64_t output0 = i0 & (uint64_t)0x7ffffffffffffU;
+  uint64_t output1 = i1 >> (uint32_t)3U & (uint64_t)0x7ffffffffffffU;
+  uint64_t output2 = i2 >> (uint32_t)6U & (uint64_t)0x7ffffffffffffU;
+  uint64_t output3 = i3 >> (uint32_t)1U & (uint64_t)0x7ffffffffffffU;
+  uint64_t output4 = i4 >> (uint32_t)12U & (uint64_t)0x7ffffffffffffU;
+  output[0U] = output0;
+  output[1U] = output1;
+  output[2U] = output2;
+  output[3U] = output3;
+  output[4U] = output4;
+}
+
+static void Hacl_EC_Format_fcontract_first_carry_pass(uint64_t *input)
+{
+  uint64_t t0 = input[0U];
+  uint64_t t1 = input[1U];
+  uint64_t t2 = input[2U];
+  uint64_t t3 = input[3U];
+  uint64_t t4 = input[4U];
+  uint64_t t1_ = t1 + (t0 >> (uint32_t)51U);
+  uint64_t t0_ = t0 & (uint64_t)0x7ffffffffffffU;
+  uint64_t t2_ = t2 + (t1_ >> (uint32_t)51U);
+  uint64_t t1__ = t1_ & (uint64_t)0x7ffffffffffffU;
+  uint64_t t3_ = t3 + (t2_ >> (uint32_t)51U);
+  uint64_t t2__ = t2_ & (uint64_t)0x7ffffffffffffU;
+  uint64_t t4_ = t4 + (t3_ >> (uint32_t)51U);
+  uint64_t t3__ = t3_ & (uint64_t)0x7ffffffffffffU;
+  input[0U] = t0_;
+  input[1U] = t1__;
+  input[2U] = t2__;
+  input[3U] = t3__;
+  input[4U] = t4_;
+}
+
+static void Hacl_EC_Format_fcontract_first_carry_full(uint64_t *input)
+{
+  Hacl_EC_Format_fcontract_first_carry_pass(input);
+  Hacl_Bignum_Modulo_carry_top(input);
+}
+
+static void Hacl_EC_Format_fcontract_second_carry_pass(uint64_t *input)
+{
+  uint64_t t0 = input[0U];
+  uint64_t t1 = input[1U];
+  uint64_t t2 = input[2U];
+  uint64_t t3 = input[3U];
+  uint64_t t4 = input[4U];
+  uint64_t t1_ = t1 + (t0 >> (uint32_t)51U);
+  uint64_t t0_ = t0 & (uint64_t)0x7ffffffffffffU;
+  uint64_t t2_ = t2 + (t1_ >> (uint32_t)51U);
+  uint64_t t1__ = t1_ & (uint64_t)0x7ffffffffffffU;
+  uint64_t t3_ = t3 + (t2_ >> (uint32_t)51U);
+  uint64_t t2__ = t2_ & (uint64_t)0x7ffffffffffffU;
+  uint64_t t4_ = t4 + (t3_ >> (uint32_t)51U);
+  uint64_t t3__ = t3_ & (uint64_t)0x7ffffffffffffU;
+  input[0U] = t0_;
+  input[1U] = t1__;
+  input[2U] = t2__;
+  input[3U] = t3__;
+  input[4U] = t4_;
+}
+
+static void Hacl_EC_Format_fcontract_second_carry_full(uint64_t *input)
+{
+  uint64_t i0;
+  uint64_t i1;
+  uint64_t i0_;
+  uint64_t i1_;
+  Hacl_EC_Format_fcontract_second_carry_pass(input);
+  Hacl_Bignum_Modulo_carry_top(input);
+  i0 = input[0U];
+  i1 = input[1U];
+  i0_ = i0 & (uint64_t)0x7ffffffffffffU;
+  i1_ = i1 + (i0 >> (uint32_t)51U);
+  input[0U] = i0_;
+  input[1U] = i1_;
+}
+
+static void Hacl_EC_Format_fcontract_trim(uint64_t *input)
+{
+  uint64_t a0 = input[0U];
+  uint64_t a1 = input[1U];
+  uint64_t a2 = input[2U];
+  uint64_t a3 = input[3U];
+  uint64_t a4 = input[4U];
+  uint64_t mask0 = FStar_UInt64_gte_mask(a0, (uint64_t)0x7ffffffffffedU);
+  uint64_t mask1 = FStar_UInt64_eq_mask(a1, (uint64_t)0x7ffffffffffffU);
+  uint64_t mask2 = FStar_UInt64_eq_mask(a2, (uint64_t)0x7ffffffffffffU);
+  uint64_t mask3 = FStar_UInt64_eq_mask(a3, (uint64_t)0x7ffffffffffffU);
+  uint64_t mask4 = FStar_UInt64_eq_mask(a4, (uint64_t)0x7ffffffffffffU);
+  uint64_t mask = (((mask0 & mask1) & mask2) & mask3) & mask4;
+  uint64_t a0_ = a0 - ((uint64_t)0x7ffffffffffedU & mask);
+  uint64_t a1_ = a1 - ((uint64_t)0x7ffffffffffffU & mask);
+  uint64_t a2_ = a2 - ((uint64_t)0x7ffffffffffffU & mask);
+  uint64_t a3_ = a3 - ((uint64_t)0x7ffffffffffffU & mask);
+  uint64_t a4_ = a4 - ((uint64_t)0x7ffffffffffffU & mask);
+  input[0U] = a0_;
+  input[1U] = a1_;
+  input[2U] = a2_;
+  input[3U] = a3_;
+  input[4U] = a4_;
+}
+
+static void Hacl_EC_Format_fcontract_store(uint8_t *output, uint64_t *input)
+{
+  uint64_t t0 = input[0U];
+  uint64_t t1 = input[1U];
+  uint64_t t2 = input[2U];
+  uint64_t t3 = input[3U];
+  uint64_t t4 = input[4U];
+  uint64_t o0 = t1 << (uint32_t)51U | t0;
+  uint64_t o1 = t2 << (uint32_t)38U | t1 >> (uint32_t)13U;
+  uint64_t o2 = t3 << (uint32_t)25U | t2 >> (uint32_t)26U;
+  uint64_t o3 = t4 << (uint32_t)12U | t3 >> (uint32_t)39U;
+  uint8_t *b0 = output;
+  uint8_t *b1 = output + (uint32_t)8U;
+  uint8_t *b2 = output + (uint32_t)16U;
+  uint8_t *b3 = output + (uint32_t)24U;
+  store64_le(b0, o0);
+  store64_le(b1, o1);
+  store64_le(b2, o2);
+  store64_le(b3, o3);
+}
+
+static void Hacl_EC_Format_fcontract(uint8_t *output, uint64_t *input)
+{
+  Hacl_EC_Format_fcontract_first_carry_full(input);
+  Hacl_EC_Format_fcontract_second_carry_full(input);
+  Hacl_EC_Format_fcontract_trim(input);
+  Hacl_EC_Format_fcontract_store(output, input);
+}
+
+static void Hacl_EC_Format_scalar_of_point(uint8_t *scalar, uint64_t *point)
+{
+  uint64_t *x = point;
+  uint64_t *z = point + (uint32_t)5U;
+  uint64_t buf[10U] = { 0U };
+  uint64_t *zmone = buf;
+  uint64_t *sc = buf + (uint32_t)5U;
+  Hacl_Bignum_crecip(zmone, z);
+  Hacl_Bignum_fmul(sc, x, zmone);
+  Hacl_EC_Format_fcontract(scalar, sc);
+}
+
+static void
+Hacl_EC_AddAndDouble_fmonty(
+  uint64_t *pp,
+  uint64_t *ppq,
+  uint64_t *p,
+  uint64_t *pq,
+  uint64_t *qmqp
+)
+{
+  uint64_t *qx = qmqp;
+  uint64_t *x2 = pp;
+  uint64_t *z2 = pp + (uint32_t)5U;
+  uint64_t *x3 = ppq;
+  uint64_t *z3 = ppq + (uint32_t)5U;
+  uint64_t *x = p;
+  uint64_t *z = p + (uint32_t)5U;
+  uint64_t *xprime = pq;
+  uint64_t *zprime = pq + (uint32_t)5U;
+  uint64_t buf[40U] = { 0U };
+  uint64_t *origx = buf;
+  uint64_t *origxprime0 = buf + (uint32_t)5U;
+  uint64_t *xxprime0 = buf + (uint32_t)25U;
+  uint64_t *zzprime0 = buf + (uint32_t)30U;
+  uint64_t *origxprime;
+  uint64_t *xx0;
+  uint64_t *zz0;
+  uint64_t *xxprime;
+  uint64_t *zzprime;
+  uint64_t *zzzprime;
+  uint64_t *zzz;
+  uint64_t *xx;
+  uint64_t *zz;
+  uint64_t scalar;
+  memcpy(origx, x, (uint32_t)5U * sizeof x[0U]);
+  Hacl_Bignum_fsum(x, z);
+  Hacl_Bignum_fdifference(z, origx);
+  memcpy(origxprime0, xprime, (uint32_t)5U * sizeof xprime[0U]);
+  Hacl_Bignum_fsum(xprime, zprime);
+  Hacl_Bignum_fdifference(zprime, origxprime0);
+  Hacl_Bignum_fmul(xxprime0, xprime, z);
+  Hacl_Bignum_fmul(zzprime0, x, zprime);
+  origxprime = buf + (uint32_t)5U;
+  xx0 = buf + (uint32_t)15U;
+  zz0 = buf + (uint32_t)20U;
+  xxprime = buf + (uint32_t)25U;
+  zzprime = buf + (uint32_t)30U;
+  zzzprime = buf + (uint32_t)35U;
+  memcpy(origxprime, xxprime, (uint32_t)5U * sizeof xxprime[0U]);
+  Hacl_Bignum_fsum(xxprime, zzprime);
+  Hacl_Bignum_fdifference(zzprime, origxprime);
+  Hacl_Bignum_Fsquare_fsquare_times(x3, xxprime, (uint32_t)1U);
+  Hacl_Bignum_Fsquare_fsquare_times(zzzprime, zzprime, (uint32_t)1U);
+  Hacl_Bignum_fmul(z3, zzzprime, qx);
+  Hacl_Bignum_Fsquare_fsquare_times(xx0, x, (uint32_t)1U);
+  Hacl_Bignum_Fsquare_fsquare_times(zz0, z, (uint32_t)1U);
+  zzz = buf + (uint32_t)10U;
+  xx = buf + (uint32_t)15U;
+  zz = buf + (uint32_t)20U;
+  Hacl_Bignum_fmul(x2, xx, zz);
+  Hacl_Bignum_fdifference(zz, xx);
+  scalar = (uint64_t)121665U;
+  Hacl_Bignum_fscalar(zzz, zz, scalar);
+  Hacl_Bignum_fsum(zzz, xx);
+  Hacl_Bignum_fmul(z2, zzz, zz);
+}
+
+static void
+Hacl_EC_Ladder_SmallLoop_cmult_small_loop_step(
+  uint64_t *nq,
+  uint64_t *nqpq,
+  uint64_t *nq2,
+  uint64_t *nqpq2,
+  uint64_t *q,
+  uint8_t byt
+)
+{
+  uint64_t bit0 = (uint64_t)(byt >> (uint32_t)7U);
+  uint64_t bit;
+  Hacl_EC_Point_swap_conditional(nq, nqpq, bit0);
+  Hacl_EC_AddAndDouble_fmonty(nq2, nqpq2, nq, nqpq, q);
+  bit = (uint64_t)(byt >> (uint32_t)7U);
+  Hacl_EC_Point_swap_conditional(nq2, nqpq2, bit);
+}
+
+static void
+Hacl_EC_Ladder_SmallLoop_cmult_small_loop_double_step(
+  uint64_t *nq,
+  uint64_t *nqpq,
+  uint64_t *nq2,
+  uint64_t *nqpq2,
+  uint64_t *q,
+  uint8_t byt
+)
+{
+  uint8_t byt1;
+  Hacl_EC_Ladder_SmallLoop_cmult_small_loop_step(nq, nqpq, nq2, nqpq2, q, byt);
+  byt1 = byt << (uint32_t)1U;
+  Hacl_EC_Ladder_SmallLoop_cmult_small_loop_step(nq2, nqpq2, nq, nqpq, q, byt1);
+}
+
+static void
+Hacl_EC_Ladder_SmallLoop_cmult_small_loop(
+  uint64_t *nq,
+  uint64_t *nqpq,
+  uint64_t *nq2,
+  uint64_t *nqpq2,
+  uint64_t *q,
+  uint8_t byt,
+  uint32_t i
+)
+{
+  if (!(i == (uint32_t)0U))
+  {
+    uint32_t i_ = i - (uint32_t)1U;
+    uint8_t byt_;
+    Hacl_EC_Ladder_SmallLoop_cmult_small_loop_double_step(nq, nqpq, nq2, nqpq2, q, byt);
+    byt_ = byt << (uint32_t)2U;
+    Hacl_EC_Ladder_SmallLoop_cmult_small_loop(nq, nqpq, nq2, nqpq2, q, byt_, i_);
+  }
+}
+
+static void
+Hacl_EC_Ladder_BigLoop_cmult_big_loop(
+  uint8_t *n1,
+  uint64_t *nq,
+  uint64_t *nqpq,
+  uint64_t *nq2,
+  uint64_t *nqpq2,
+  uint64_t *q,
+  uint32_t i
+)
+{
+  if (!(i == (uint32_t)0U))
+  {
+    uint32_t i1 = i - (uint32_t)1U;
+    uint8_t byte = n1[i1];
+    Hacl_EC_Ladder_SmallLoop_cmult_small_loop(nq, nqpq, nq2, nqpq2, q, byte, (uint32_t)4U);
+    Hacl_EC_Ladder_BigLoop_cmult_big_loop(n1, nq, nqpq, nq2, nqpq2, q, i1);
+  }
+}
+
+static void Hacl_EC_Ladder_cmult(uint64_t *result, uint8_t *n1, uint64_t *q)
+{
+  uint64_t point_buf[40U] = { 0U };
+  uint64_t *nq = point_buf;
+  uint64_t *nqpq = point_buf + (uint32_t)10U;
+  uint64_t *nq2 = point_buf + (uint32_t)20U;
+  uint64_t *nqpq2 = point_buf + (uint32_t)30U;
+  Hacl_EC_Point_copy(nqpq, q);
+  nq[0U] = (uint64_t)1U;
+  Hacl_EC_Ladder_BigLoop_cmult_big_loop(n1, nq, nqpq, nq2, nqpq2, q, (uint32_t)32U);
+  Hacl_EC_Point_copy(result, nq);
+}
+
+void Hacl_Curve25519_crypto_scalarmult(uint8_t *mypublic, uint8_t *secret, uint8_t *basepoint)
+{
+  uint64_t buf0[10U] = { 0U };
+  uint64_t *x0 = buf0;
+  uint64_t *z = buf0 + (uint32_t)5U;
+  uint64_t *q;
+  Hacl_EC_Format_fexpand(x0, basepoint);
+  z[0U] = (uint64_t)1U;
+  q = buf0;
+  {
+    uint8_t e[32U] = { 0U };
+    uint8_t e0;
+    uint8_t e31;
+    uint8_t e01;
+    uint8_t e311;
+    uint8_t e312;
+    uint8_t *scalar;
+    memcpy(e, secret, (uint32_t)32U * sizeof secret[0U]);
+    e0 = e[0U];
+    e31 = e[31U];
+    e01 = e0 & (uint8_t)248U;
+    e311 = e31 & (uint8_t)127U;
+    e312 = e311 | (uint8_t)64U;
+    e[0U] = e01;
+    e[31U] = e312;
+    scalar = e;
+    {
+      uint64_t buf[15U] = { 0U };
+      uint64_t *nq = buf;
+      uint64_t *x = nq;
+      x[0U] = (uint64_t)1U;
+      Hacl_EC_Ladder_cmult(nq, scalar, q);
+      Hacl_EC_Format_scalar_of_point(mypublic, nq);
+    }
+  }
+}
+
diff --git a/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/everest/library/x25519.c b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/everest/library/x25519.c
new file mode 100644
index 00000000000..1f07a9540c1
--- /dev/null
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/everest/library/x25519.c
@@ -0,0 +1,186 @@
+/*
+ *  ECDH with curve-optimized implementation multiplexing
+ *
+ *  Copyright 2016-2018 INRIA and Microsoft Corporation
+ *  SPDX-License-Identifier: Apache-2.0
+ *
+ *  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.
+ *
+ *  This file is part of Mbed TLS (https://tls.mbed.org)
+ */
+
+#include "tf_psa_crypto_common.h"
+
+#if defined(MBEDTLS_ECDH_C) && defined(MBEDTLS_ECDH_VARIANT_EVEREST_ENABLED)
+
+#include <mbedtls/private/ecdh.h>
+
+#if !(defined(__SIZEOF_INT128__) && (__SIZEOF_INT128__ == 16))
+#define KRML_VERIFIED_UINT128
+#endif
+
+#include <Hacl_Curve25519.h>
+#include <mbedtls/platform_util.h>
+
+#include "x25519.h"
+
+#include <string.h>
+
+/*
+ * Initialize context
+ */
+void mbedtls_x25519_init( mbedtls_x25519_context *ctx )
+{
+    mbedtls_platform_zeroize( ctx, sizeof( mbedtls_x25519_context ) );
+}
+
+/*
+ * Free context
+ */
+void mbedtls_x25519_free( mbedtls_x25519_context *ctx )
+{
+    if( ctx == NULL )
+        return;
+
+    mbedtls_platform_zeroize( ctx->our_secret, MBEDTLS_X25519_KEY_SIZE_BYTES );
+    mbedtls_platform_zeroize( ctx->peer_point, MBEDTLS_X25519_KEY_SIZE_BYTES );
+}
+
+int mbedtls_x25519_make_params( mbedtls_x25519_context *ctx, size_t *olen,
+                        unsigned char *buf, size_t blen,
+                        int( *f_rng )(void *, unsigned char *, size_t),
+                        void *p_rng )
+{
+    int ret = 0;
+
+    uint8_t base[MBEDTLS_X25519_KEY_SIZE_BYTES] = {0};
+
+    if( ( ret = f_rng( p_rng, ctx->our_secret, MBEDTLS_X25519_KEY_SIZE_BYTES ) ) != 0 )
+        return ret;
+
+    *olen = MBEDTLS_X25519_KEY_SIZE_BYTES + 4;
+    if( blen < *olen )
+        return( MBEDTLS_ERR_ECP_BUFFER_TOO_SMALL );
+
+    *buf++ = MBEDTLS_ECP_TLS_NAMED_CURVE;
+    *buf++ = MBEDTLS_ECP_TLS_CURVE25519 >> 8;
+    *buf++ = MBEDTLS_ECP_TLS_CURVE25519 & 0xFF;
+    *buf++ = MBEDTLS_X25519_KEY_SIZE_BYTES;
+
+    base[0] = 9;
+    Hacl_Curve25519_crypto_scalarmult( buf, ctx->our_secret, base );
+
+    base[0] = 0;
+    if( memcmp( buf, base, MBEDTLS_X25519_KEY_SIZE_BYTES) == 0 )
+        return MBEDTLS_ERR_ECP_RANDOM_FAILED;
+
+    return( 0 );
+}
+
+int mbedtls_x25519_read_params( mbedtls_x25519_context *ctx,
+                        const unsigned char **buf, const unsigned char *end )
+{
+    if( end - *buf < MBEDTLS_X25519_KEY_SIZE_BYTES + 1 )
+        return( MBEDTLS_ERR_ECP_BAD_INPUT_DATA );
+
+    if( ( *(*buf)++ != MBEDTLS_X25519_KEY_SIZE_BYTES ) )
+        return( MBEDTLS_ERR_ECP_BAD_INPUT_DATA );
+
+    memcpy( ctx->peer_point, *buf, MBEDTLS_X25519_KEY_SIZE_BYTES );
+    *buf += MBEDTLS_X25519_KEY_SIZE_BYTES;
+    return( 0 );
+}
+
+int mbedtls_x25519_get_params( mbedtls_x25519_context *ctx, const mbedtls_ecp_keypair *key,
+                               mbedtls_x25519_ecdh_side side )
+{
+    size_t olen = 0;
+
+    switch( side ) {
+    case MBEDTLS_X25519_ECDH_THEIRS:
+        return mbedtls_ecp_point_write_binary( &key->grp, &key->Q, MBEDTLS_ECP_PF_COMPRESSED, &olen, ctx->peer_point, MBEDTLS_X25519_KEY_SIZE_BYTES );
+    case MBEDTLS_X25519_ECDH_OURS:
+        return mbedtls_mpi_write_binary_le( &key->d, ctx->our_secret, MBEDTLS_X25519_KEY_SIZE_BYTES );
+    default:
+        return( MBEDTLS_ERR_ECP_BAD_INPUT_DATA );
+    }
+}
+
+int mbedtls_x25519_calc_secret( mbedtls_x25519_context *ctx, size_t *olen,
+                        unsigned char *buf, size_t blen,
+                        int( *f_rng )(void *, unsigned char *, size_t),
+                        void *p_rng )
+{
+    /* f_rng and p_rng are not used here because this implementation does not
+       need blinding since it has constant trace. */
+    (( void )f_rng);
+    (( void )p_rng);
+
+    *olen = MBEDTLS_X25519_KEY_SIZE_BYTES;
+
+    if( blen < *olen )
+        return( MBEDTLS_ERR_ECP_BUFFER_TOO_SMALL );
+
+    Hacl_Curve25519_crypto_scalarmult( buf, ctx->our_secret, ctx->peer_point);
+
+    /* Wipe the DH secret and don't let the peer chose a small subgroup point */
+    mbedtls_platform_zeroize( ctx->our_secret, MBEDTLS_X25519_KEY_SIZE_BYTES );
+
+    if( memcmp( buf, ctx->our_secret, MBEDTLS_X25519_KEY_SIZE_BYTES) == 0 )
+        return MBEDTLS_ERR_ECP_RANDOM_FAILED;
+
+    return( 0 );
+}
+
+int mbedtls_x25519_make_public( mbedtls_x25519_context *ctx, size_t *olen,
+                        unsigned char *buf, size_t blen,
+                        int( *f_rng )(void *, unsigned char *, size_t),
+                        void *p_rng )
+{
+    int ret = 0;
+    unsigned char base[MBEDTLS_X25519_KEY_SIZE_BYTES] = { 0 };
+
+    if( ctx == NULL )
+        return( MBEDTLS_ERR_ECP_BAD_INPUT_DATA );
+
+    if( ( ret = f_rng( p_rng, ctx->our_secret, MBEDTLS_X25519_KEY_SIZE_BYTES ) ) != 0 )
+        return ret;
+
+    *olen = MBEDTLS_X25519_KEY_SIZE_BYTES + 1;
+    if( blen < *olen )
+        return(MBEDTLS_ERR_ECP_BUFFER_TOO_SMALL);
+    *buf++ = MBEDTLS_X25519_KEY_SIZE_BYTES;
+
+    base[0] = 9;
+    Hacl_Curve25519_crypto_scalarmult( buf, ctx->our_secret, base );
+
+    base[0] = 0;
+    if( memcmp( buf, base, MBEDTLS_X25519_KEY_SIZE_BYTES ) == 0 )
+        return MBEDTLS_ERR_ECP_RANDOM_FAILED;
+
+    return( ret );
+}
+
+int mbedtls_x25519_read_public( mbedtls_x25519_context *ctx,
+                        const unsigned char *buf, size_t blen )
+{
+    if( blen < MBEDTLS_X25519_KEY_SIZE_BYTES + 1 )
+        return(MBEDTLS_ERR_ECP_BUFFER_TOO_SMALL);
+    if( (*buf++ != MBEDTLS_X25519_KEY_SIZE_BYTES) )
+        return(MBEDTLS_ERR_ECP_BAD_INPUT_DATA);
+    memcpy( ctx->peer_point, buf, MBEDTLS_X25519_KEY_SIZE_BYTES );
+    return( 0 );
+}
+
+
+#endif /* MBEDTLS_ECDH_C && MBEDTLS_ECDH_VARIANT_EVEREST_ENABLED */
diff --git a/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/p256-m/CMakeLists.txt b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/p256-m/CMakeLists.txt
new file mode 100644
index 00000000000..677ad4c21a9
--- /dev/null
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/p256-m/CMakeLists.txt
@@ -0,0 +1,29 @@
+set(p256m_target "${TF_PSA_CRYPTO_TARGET_PREFIX}p256m")
+if (USE_STATIC_TF_PSA_CRYPTO_LIBRARY)
+    set(p256m_static_target ${p256m_target})
+endif()
+set(target_libraries ${p256m_target})
+if(USE_STATIC_TF_PSA_CRYPTO_LIBRARY AND USE_SHARED_TF_PSA_CRYPTO_LIBRARY)
+    string(APPEND p256m_static_target "_static")
+    list(APPEND target_libraries ${p256m_static_target})
+endif()
+
+foreach (target IN LISTS target_libraries)
+    add_library(${target} OBJECT
+        p256-m_driver_entrypoints.c
+        p256-m/p256-m.c)
+
+    tf_psa_crypto_set_base_compile_options(${target})
+
+    target_include_directories(${target}
+      PRIVATE p256-m
+              ${TF_PSA_CRYPTO_DIR}/include
+              ${TF_PSA_CRYPTO_DIR}/core
+              ${TF_PSA_CRYPTO_DIR}/drivers/builtin/include
+              ${TF_PSA_CRYPTO_DIR}/drivers/everest/include)
+    tf_psa_crypto_set_config_files_compile_definitions(${target})
+endforeach(target)
+
+if(USE_SHARED_TF_PSA_CRYPTO_LIBRARY)
+    set_property(TARGET ${p256m_target} PROPERTY POSITION_INDEPENDENT_CODE ON)
+endif(USE_SHARED_TF_PSA_CRYPTO_LIBRARY)
diff --git a/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/p256-m/Makefile.inc b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/p256-m/Makefile.inc
new file mode 100644
index 00000000000..53bb55b5474
--- /dev/null
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/p256-m/Makefile.inc
@@ -0,0 +1,5 @@
+THIRDPARTY_INCLUDES+=-I$(THIRDPARTY_DIR)/p256-m/p256-m/include -I$(THIRDPARTY_DIR)/p256-m/p256-m/include/p256-m -I$(THIRDPARTY_DIR)/p256-m/p256-m_driver_interface
+
+THIRDPARTY_CRYPTO_OBJECTS+= \
+	$(THIRDPARTY_DIR)/p256-m//p256-m_driver_entrypoints.o \
+	$(THIRDPARTY_DIR)/p256-m//p256-m/p256-m.o
diff --git a/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/p256-m/README.md b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/p256-m/README.md
new file mode 100644
index 00000000000..ec90f344620
--- /dev/null
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/p256-m/README.md
@@ -0,0 +1,4 @@
+The files within the `p256-m/` subdirectory originate from the [p256-m GitHub repository](https://github.com/mpg/p256-m). They are distributed here under a dual Apache-2.0 OR GPL-2.0-or-later license. They are authored by Manuel Pégourié-Gonnard. p256-m is a minimalistic implementation of ECDH and ECDSA on NIST P-256, especially suited to constrained 32-bit environments. Mbed TLS documentation for integrating drivers uses p256-m as an example of a software accelerator, and describes how it can be integrated alongside Mbed TLS. It should be noted that p256-m files in the Mbed TLS repo will not be updated regularly, so they may not have fixes and improvements present in the upstream project.
+
+The files `p256-m.c`, `p256-m.h` and `README.md` have been taken from the `p256-m` repository.
+It should be noted that p256-m deliberately does not supply its own cryptographically secure RNG function. As a result, the PSA RNG is used, with `p256_generate_random()` wrapping `psa_generate_random()`.
diff --git a/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/p256-m/p256-m/README.md b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/p256-m/p256-m/README.md
new file mode 100644
index 00000000000..5e88f719dbd
--- /dev/null
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/p256-m/p256-m/README.md
@@ -0,0 +1,544 @@
+*This is the original README for the p256-m repository. Please note that as
+only a subset of p256-m's files are present in Mbed TLS, this README may refer
+to files that are not present/relevant here.*
+
+p256-m is a minimalistic implementation of ECDH and ECDSA on NIST P-256,
+especially suited to constrained 32-bit environments. It's written in standard
+C, with optional bits of assembly for Arm Cortex-M and Cortex-A CPUs.
+
+Its design is guided by the following goals in this order:
+
+1. correctness & security;
+2. low code size & RAM usage;
+3. runtime performance.
+
+Most cryptographic implementations care more about speed than footprint, and
+some might even risk weakening security for more speed. p256-m was written
+because I wanted to see what happened when reversing the usual emphasis.
+
+The result is a full implementation of ECDH and ECDSA in **less than 3KiB of
+code**, using **less than 768 bytes of RAM**, with comparable performance
+to existing implementations (see below) - in less than 700 LOC.
+
+_Contents of this Readme:_
+
+- [Correctness](#correctness)
+- [Security](#security)
+- [Code size](#code-size)
+- [RAM usage](#ram-usage)
+- [Runtime performance](#runtime-performance)
+- [Comparison with other implementations](#comparison-with-other-implementations)
+- [Design overview](#design-overview)
+- [Notes about other curves](#notes-about-other-curves)
+- [Notes about other platforms](#notes-about-other-platforms)
+
+## Correctness
+
+**API design:**
+
+- The API is minimal: only 4 public functions.
+- Each public function fully validates its inputs and returns specific errors.
+- The API uses arrays of octets for all input and output.
+
+**Testing:**
+
+- p256-m is validated against multiple test vectors from various RFCs and
+  NIST.
+- In addition, crafted inputs are used for negative testing and to reach
+  corner cases.
+- Two test suites are provided: one for closed-box testing (using only the
+  public API), one for open-box testing (for unit-testing internal functions,
+and reaching more error cases by exploiting knowledge of how the RNG is used).
+- The resulting branch coverage is maximal: closed-box testing reaches all
+  branches except four; three of them are reached by open-box testing using a
+rigged RNG; the last branch could only be reached by computing a discrete log
+on P-256... See `coverage.sh`.
+- Testing also uses dynamic analysis: valgrind, ASan, MemSan, UBSan.
+
+**Code quality:**
+
+- The code is standard C99; it builds without warnings with `clang
+  -Weverything` and `gcc -Wall -Wextra -pedantic`.
+- The code is small and well documented, including internal APIs: with the
+  header file, it's less than 700 lines of code, and more lines of comments
+than of code.
+- However it _has not been reviewed_ independently so far, as this is a
+  personal project.
+
+**Short Weierstrass pitfalls:**
+
+Its has been [pointed out](https://safecurves.cr.yp.to/) that the NIST curves,
+and indeed all Short Weierstrass curves, have a number of pitfalls including
+risk for the implementation to:
+
+- "produce incorrect results for some rare curve points" - this is avoided by
+  carefully checking the validity domain of formulas used throughout the code;
+- "leak secret data when the input isn't a curve point" - this is avoided by
+  validating that points lie on the curve every time a point is deserialized.
+
+## Security
+
+In addition to the above correctness claims, p256-m has the following
+properties:
+
+- it has no branch depending (even indirectly) on secret data;
+- it has no memory access depending (even indirectly) on secret data.
+
+These properties are checked using valgrind and MemSan with the ideas
+behind [ctgrind](https://github.com/agl/ctgrind), see `consttime.sh`.
+
+In addition to avoiding branches and memory accesses depending on secret data,
+p256-m also avoid instructions (or library functions) whose execution time
+depends on the value of operands on cores of interest. Namely, it never uses
+integer division, and for multiplication by default it only uses 16x16->32 bit
+unsigned multiplication. On cores which have a constant-time 32x32->64 bit
+unsigned multiplication instruction, the symbol `MUL64_IS_CONSTANT_TIME` can
+be defined by the user at compile-time to take advantage of it in order to
+improve performance and code size. (On Cortex-M and Cortex-A cores wtih GCC or
+Clang this is not necessary, since inline assembly is used instead.)
+
+As a result, p256-m should be secure against the following classes of attackers:
+
+1. attackers who can only manipulate the input and observe the output;
+2. attackers who can also measure the total computation time of the operation;
+3. attackers who can also observe and manipulate micro-architectural features
+   such as the cache or branch predictor with arbitrary precision.
+
+However, p256-m makes no attempt to protect against:
+
+4. passive physical attackers who can record traces of physical emissions
+   (power, EM, sound) of the CPU while it manipulates secrets;
+5. active physical attackers who can also inject faults in the computation.
+
+(Note: p256-m should actually be secure against SPA, by virtue of being fully
+constant-flow, but is not expected to resist any other physical attack.)
+
+**Warning:** p256-m requires an externally-provided RNG function. If that
+function is not cryptographically secure, then neither is p256-m's key
+generation or ECDSA signature generation.
+
+_Note:_ p256-m also follows best practices such as securely erasing secret
+data on the stack before returning.
+
+## Code size
+
+Compiled with
+[ARM-GCC 9](https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-rm/downloads),
+with `-mthumb -Os`, here are samples of code sizes reached on selected cores:
+
+- Cortex-M0: 2988 bytes
+- Cortex-M4: 2900 bytes
+- Cortex-A7: 2924 bytes
+
+Clang was also tried but tends to generate larger code (by about 10%). For
+details, see `sizes.sh`.
+
+**What's included:**
+
+- Full input validation and (de)serialisation of input/outputs to/from bytes.
+- Cleaning up secret values from the stack before returning from a function.
+- The code has no dependency on libc functions or the toolchain's runtime
+  library (such as helpers for long multiply); this can be checked for the
+Arm-GCC toolchain with the `deps.sh` script.
+
+**What's excluded:**
+
+- A secure RNG function needs to be provided externally, see
+  `p256_generate_random()` in `p256-m.h`.
+
+## RAM usage
+
+p256-m doesn't use any dynamic memory (on the heap), only the stack. Here's
+how much stack is used by each of its 4 public functions on selected cores:
+
+| Function                  | Cortex-M0 | Cortex-M4 | Cortex-A7 |
+| ------------------------- | --------: | --------: | --------: |
+| `p256_gen_keypair`        |       608 |       564 |       564 |
+| `p256_ecdh_shared_secret` |       640 |       596 |       596 |
+| `p256_ecdsa_sign`         |       664 |       604 |       604 |
+| `p256_ecdsa_verify`       |       752 |       700 |       700 |
+
+For details, see `stack.sh`, `wcs.py` and `libc.msu` (the above figures assume
+that the externally-provided RNG function uses at most 384 bytes of stack).
+
+## Runtime performance
+
+Here are the timings of each public function in milliseconds measured on
+platforms based on a selection of cores:
+
+- Cortex-M0 at  48 MHz: STM32F091 board running Mbed OS 6
+- Cortex-M4 at 100 MHz: STM32F411 board running Mbed OS 6
+- Cortex-A7 at 900 MHz: Raspberry Pi 2B running Raspbian Buster
+
+| Function                  | Cortex-M0 | Cortex-M4 | Cortex-A7 |
+| ------------------------- | --------: | --------: | --------: |
+| `p256_gen_keypair`        |       921 |       145 |        11 |
+| `p256_ecdh_shared_secret` |       922 |       144 |        11 |
+| `p256_ecdsa_sign`         |       990 |       155 |        12 |
+| `p256_ecdsa_verify`       |      1976 |       309 |        24 |
+| Sum of the above          |      4809 |       753 |        59 |
+
+The sum of these operations corresponds to a TLS handshake using ECDHE-ECDSA
+with mutual authentication based on raw public keys or directly-trusted
+certificates (otherwise, add one 'verify' for each link in the peer's
+certificate chain).
+
+_Note_: the above figures where obtained by compiling with GCC, which is able
+to use inline assembly. Without that inline assembly (22 lines for Cortex-M0,
+1 line for Cortex-M4), the code would be roughly 2 times slower on those
+platforms. (The effect is much less important on the Cortex-A7 core.)
+
+For details, see `bench.sh`, `benchmark.c` and `on-target-benchmark/`.
+
+## Comparison with other implementations
+
+The most relevant/convenient implementation for comparisons is
+[TinyCrypt](https://github.com/intel/tinycrypt), as it's also a standalone
+implementation of ECDH and ECDSA on P-256 only, that also targets constrained
+devices. Other implementations tend to implement many curves and build on a
+shared bignum/MPI module (possibly also supporting RSA), which makes fair
+comparisons less convenient.
+
+The scripts used for TinyCrypt measurements are available in [this
+branch](https://github.com/mpg/tinycrypt/tree/measurements), based on version
+0.2.8.
+
+**Code size**
+
+| Core      | p256-m | TinyCrypt |
+| --------- | -----: | --------: |
+| Cortex-M0 |   2988 |      6134 |
+| Cortex-M4 |   2900 |      5934 |
+| Cortex-A7 |   2924 |      5934 |
+
+**RAM usage**
+
+TinyCrypto also uses no heap, only the stack. Here's the RAM used by each
+operation on a Cortex-M0 core:
+
+| operation          | p256-m | TinyCrypt |
+| ------------------ | -----: | --------: |
+| key generation     |    608 |       824 |
+| ECDH shared secret |    640 |       728 |
+| ECDSA sign         |    664 |       880 |
+| ECDSA verify       |    752 |       824 |
+
+On a Cortex-M4 or Cortex-A7 core (identical numbers):
+
+| operation          | p256-m | TinyCrypt |
+| ------------------ | -----: | --------: |
+| key generation     |    564 |       796 |
+| ECDH shared secret |    596 |       700 |
+| ECDSA sign         |    604 |       844 |
+| ECDSA verify       |    700 |       808 |
+
+**Runtime performance**
+
+Here are the timings of each operation in milliseconds measured on
+platforms based on a selection of cores:
+
+_Cortex-M0_ at  48 MHz: STM32F091 board running Mbed OS 6
+
+| Operation          | p256-m | TinyCrypt |
+| ------------------ | -----: | --------: |
+| Key generation     |    921 |       979 |
+| ECDH shared secret |    922 |       975 |
+| ECDSA sign         |    990 |      1009 |
+| ECDSA verify       |   1976 |      1130 |
+| Sum of those 4     |   4809 |      4093 |
+
+_Cortex-M4_ at 100 MHz: STM32F411 board running Mbed OS 6
+
+| Operation          | p256-m | TinyCrypt |
+| ------------------ | -----: | --------: |
+| Key generation     |    145 |       178 |
+| ECDH shared secret |    144 |       177 |
+| ECDSA sign         |    155 |       188 |
+| ECDSA verify       |    309 |       210 |
+| Sum of those 4     |    753 |       753 |
+
+_Cortex-A7_ at 900 MHz: Raspberry Pi 2B running Raspbian Buster
+
+| Operation          | p256-m | TinyCrypt |
+| ------------------ | -----: | --------: |
+| Key generation     |     11 |        13 |
+| ECDH shared secret |     11 |        13 |
+| ECDSA sign         |     12 |        14 |
+| ECDSA verify       |     24 |        15 |
+| Sum of those 4     |     59 |        55 |
+
+_64-bit Intel_ (i7-6500U at 2.50GHz) laptop running Ubuntu 20.04
+
+Note: results in microseconds (previous benchmarks in milliseconds)
+
+| Operation          | p256-m | TinyCrypt |
+| ------------------ | -----: | --------: |
+| Key generation     |   1060 |      1627 |
+| ECDH shared secret |   1060 |      1611 |
+| ECDSA sign         |   1136 |      1712 |
+| ECDSA verify       |   2279 |      1888 |
+| Sum of those 4     |   5535 |      6838 |
+
+**Other differences**
+
+- While p256-m fully validates all inputs, Tinycrypt's ECDH shared secret
+  function doesn't include validation of the peer's public key, which should be
+done separately by the user for static ECDH (there are attacks [when users
+forget](https://link.springer.com/chapter/10.1007/978-3-319-24174-6_21)).
+- The two implementations have slightly different security characteristics:
+  p256-m is fully constant-time from the ground up so should be more robust
+than TinyCrypt against powerful local attackers (such as an untrusted OS
+attacking a secure enclave); on the other hand TinyCrypt includes coordinate
+randomisation which protects against some passive physical attacks (such as
+DPA, see Table 3, column C9 of [this
+paper](https://www.esat.kuleuven.be/cosic/publications/article-2293.pdf#page=12)),
+which p256-m completely ignores.
+- TinyCrypt's code looks like it could easily be expanded to support other
+  curves, while p256-m has much more hard-coded to minimize code size (see
+"Notes about other curves" below).
+- TinyCrypt uses a specialised routine for reduction modulo the curve prime,
+  exploiting its structure as a Solinas prime, which should be faster than the
+generic Montgomery reduction used by p256-m, but other factors appear to
+compensate for that.
+- TinyCrypt uses Co-Z Jacobian formulas for point operation, which should be
+  faster (though a bit larger) than the mixed affine-Jacobian formulas
+used by p256-m, but again other factors appear to compensate for that.
+- p256-m uses bits of inline assembly for 64-bit multiplication on the
+  platforms used for benchmarking, while TinyCrypt uses only C (and the
+compiler's runtime library).
+- TinyCrypt uses a specialised routine based on Shamir's trick for
+  ECDSA verification, which gives much better performance than the generic
+code that p256-m uses in order to minimize code size.
+
+## Design overview
+
+The implementation is contained in a single file to keep most functions static
+and allow for more optimisations. It is organized in multiple layers:
+
+- Fixed-width multi-precision arithmetic
+- Fixed-width modular arithmetic
+- Operations on curve points
+- Operations with scalars
+- The public API
+
+**Multi-precision arithmetic.**
+
+Large integers are represented as arrays of `uint32_t` limbs. When carries may
+occur, casts to `uint64_t` are used to nudge the compiler towards using the
+CPU's carry flag. When overflow may occur, functions return a carry flag.
+
+This layer contains optional assembly for Cortex-M and Cortex-A cores, for the
+internal `u32_muladd64()` function, as well as two pure C versions of this
+function, depending on whether `MUL64_IS_CONSTANT_TIME`.
+
+This layer's API consists of:
+
+- addition, subtraction;
+- multiply-and-add, shift by one limb (for Montgomery multiplication);
+- conditional assignment, assignment of a small value;
+- comparison of two values for equality, comparison to 0 for equality;
+- (de)serialization as big-endian arrays of bytes.
+
+**Modular arithmetic.**
+
+All modular operations are done in the Montgomery domain, that is x is
+represented by `x * 2^256 mod m`; integers need to be converted to that domain
+before computations, and back from it afterwards. Montgomery constants
+associated to the curve's p and n are pre-computed and stored in static
+structures.
+
+Modular inversion is computed using Fermat's little theorem to get
+constant-time behaviour with respect to the value being inverted.
+
+This layer's API consists of:
+
+- the curve's constants p and n (and associated Montgomery constants);
+- modular addition, subtraction, multiplication, and inversion;
+- assignment of a small value;
+- conversion to/from Montgomery domain;
+- (de)serialization to/from bytes with integrated range checking and
+  Montgomery domain conversion.
+
+**Operations on curve points.**
+
+Curve points are represented using either affine or Jacobian coordinates;
+affine coordinates are extended to represent 0 as (0,0). Individual
+coordinates are always in the Montgomery domain.
+
+Not all formulas associated with affine or Jacobian coordinates are complete;
+great care is taken to document and satisfy each function's pre-conditions.
+
+This layer's API consists of:
+
+- curve constants: b from the equation, the base point's coordinates;
+- point validity check (on the curve and not 0);
+- Jacobian to affine coordinate conversion;
+- point doubling in Jacobian coordinates (complete formulas);
+- point addition in mixed affine-Jacobian coordinates (P not in {0, Q, -Q});
+- point addition-or-doubling in affine coordinates (leaky version, only used
+  for ECDSA verify where all data is public);
+- (de)serialization to/from bytes with integrated validity checking
+
+**Scalar operations.**
+
+The crucial function here is scalar multiplication. It uses a signed binary
+ladder, which is a variant of the good old double-and-add algorithm where an
+addition/subtraction is performed at each step. Again, care is taken to make
+sure the pre-conditions for the addition formulas are always satisfied. The
+signed binary ladder only works if the scalar is odd; this is ensured by
+negating both the scalar (mod n) and the input point if necessary.
+
+This layer's API consists of:
+
+- scalar multiplication
+- de-serialization from bytes with integrated range checking
+- generation of a scalar and its associated public key
+
+**Public API.**
+
+This layer builds on the others, but unlike them, all inputs and outputs are
+byte arrays. Key generation and ECDH shared secret computation are thin
+wrappers around internal functions, just taking care of format conversions and
+errors. The ECDSA functions have more non-trivial logic.
+
+This layer's API consists of:
+
+- key-pair generation
+- ECDH shared secret computation
+- ECDSA signature creation
+- ECDSA signature verification
+
+**Testing.**
+
+A self-contained, straightforward, pure-Python implementation was first
+produced as a warm-up and to help check intermediate values. Test vectors from
+various sources are embedded and used to validate the implementation.
+
+This implementation, `p256.py`, is used by a second Python script,
+`gen-test-data.py`, to generate additional data for both positive and negative
+testing, available from a C header file, that is then used by the closed-box
+and open-box test programs.
+
+p256-m can be compiled with extra instrumentation to mark secret data and
+allow either valgrind or MemSan to check that no branch or memory access
+depends on it (even indirectly). Macros are defined for this purpose near the
+top of the file.
+
+**Tested platforms.**
+
+There are 4 versions of the internal function `u32_muladd64`: two assembly
+versions, for Cortex-M/A cores with or without the DSP extension, and two
+pure-C versions, depending on whether `MUL64_IS_CONSTANT_TIME`.
+
+Tests are run on the following platforms:
+
+- `make` on x64 tests the pure-C version without `MUL64_IS_CONSTANT_TIME`
+  (with Clang).
+- `./consttime.sh` on x64 tests both pure-C versions (with Clang).
+- `make` on Arm v7-A (Raspberry Pi 2) tests the Arm-DSP assembly version (with
+  Clang).
+- `on-target-*box` on boards based on Cortex-M0 and M4 cores test both
+  assembly versions (with GCC).
+
+In addition:
+
+- `sizes.sh` builds the code for three Arm cores with GCC and Clang.
+- `deps.sh` checks for external dependencies with GCC.
+
+## Notes about other curves
+
+It should be clear that minimal code size can only be reached by specializing
+the implementation to the curve at hand. Here's a list of things in the
+implementation that are specific to the NIST P-256 curve, and how the
+implementation could be changed to expand to other curves, layer by layer (see
+"Design Overview" above).
+
+**Fixed-width multi-precision arithmetic:**
+
+- The number of limbs is hard-coded to 8. For other 256-bit curves, nothing to
+  change. For a curve of another size, hard-code to another value. For multiple
+curves of various sizes, add a parameter to each function specifying the
+number of limbs; when declaring arrays, always use the maximum number of
+limbs.
+
+**Fixed-width modular arithmetic:**
+
+- The values of the curve's constant p and n, and their associated Montgomery
+  constants, are hard-coded. For another curve, just hard-code the new constants.
+For multiple other curves, define all the constants, and from this layer's API
+only keep the functions that already accept a `mod` parameter (that is, remove
+convenience functions `m256_xxx_p()`).
+- The number of limbs is again hard-coded to 8. See above, but it order to
+  support multiple sizes there is no need to add a new parameter to functions
+in this layer: the existing `mod` parameter can include the number of limbs as
+well.
+
+**Operations on curve points:**
+
+- The values of the curve's constants b (constant term from the equation) and
+  gx, gy (coordinates of the base point) are hard-coded. For another curve,
+  hard-code the other values. For multiple curves, define each curve's value and
+add a "curve id" parameter to all functions in this layer.
+- The value of the curve's constant a is implicitly hard-coded to `-3` by using
+  a standard optimisation to save one multiplication in the first step of
+`point_double()`. For curves that don't have a == -3, replace that with the
+normal computation.
+- The fact that b != 0 in the curve equation is used indirectly, to ensure
+  that (0, 0) is not a point on the curve and re-use that value to represent
+the point 0. As far as I know, all Short Weierstrass curves standardized so
+far have b != 0.
+- The shape of the curve is assumed to be Short Weierstrass. For other curve
+  shapes (Montgomery, (twisted) Edwards), this layer would probably look very
+different (both implementation and API).
+
+**Scalar operations:**
+
+- If multiple curves are to be supported, all function in this layer need to
+  gain a new "curve id" parameter.
+- This layer assumes that the bit size of the curve's order n is the same as
+  that of the modulus p. This is true of most curves standardized so far, the
+only exception being secp224k1. If that curve were to be supported, the
+representation of `n` and scalars would need adapting to allow for an extra
+limb.
+- The bit size of the curve's order is hard-coded in `scalar_mult()`. For
+  multiple curves, this should be deduced from the "curve id" parameter.
+- The `scalar_mult()` function exploits the fact that the second least
+  significant bit of the curve's order n is set in order to avoid a special
+case. For curve orders that don't meet this criterion, we can just handle that
+special case (multiplication by +-2) separately (always compute that and
+conditionally assign it to the result).
+- The shape of the curve is again assumed to be Short Weierstrass. For other curve
+  shapes (Montgomery, (twisted) Edwards), this layer would probably have a
+very different implementation.
+
+**Public API:**
+
+- For multiple curves, all functions in this layer would need to gain a "curve
+  id" parameter and handle variable-sized input/output.
+- The shape of the curve is again assumed to be Short Weierstrass. For other curve
+  shapes (Montgomery, (twisted) Edwards), the ECDH API would probably look
+quite similar (with differences in the size of public keys), but the ECDSA API
+wouldn't apply and an EdDSA API would look pretty different.
+
+## Notes about other platforms
+
+While p256-m is standard C99, it is written with constrained 32-bit platforms
+in mind and makes a few assumptions about the platform:
+
+- The types `uint8_t`, `uint16_t`, `uint32_t` and `uint64_t` exist.
+- 32-bit unsigned addition and subtraction with carry are constant time.
+- 16x16->32-bit unsigned multiplication is available and constant time.
+
+Also, on platforms on which 64-bit addition and subtraction with carry, or
+even 64x64->128-bit multiplication, are available, p256-m makes no use of
+them, though they could significantly improve performance.
+
+This could be improved by replacing uses of arrays of `uint32_t` with a
+defined type throughout the internal APIs, and then on 64-bit platforms define
+that type to be an array of `uint64_t` instead, and making the obvious
+adaptations in the multi-precision arithmetic layer.
+
+Finally, the optional assembly code (which boosts performance by a factor 2 on
+tested Cortex-M CPUs, while slightly reducing code size and stack usage) is
+currently only available with compilers that support GCC's extended asm
+syntax (which includes GCC and Clang).
diff --git a/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/p256-m/p256-m/p256-m.c b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/p256-m/p256-m/p256-m.c
new file mode 100644
index 00000000000..42c35b5bf57
--- /dev/null
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/p256-m/p256-m/p256-m.c
@@ -0,0 +1,1514 @@
+/*
+ * Implementation of curve P-256 (ECDH and ECDSA)
+ *
+ * Copyright The Mbed TLS Contributors
+ * Author: Manuel Pégourié-Gonnard.
+ * SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+ */
+
+#include "p256-m.h"
+#include "mbedtls/platform_util.h"
+#include "psa/crypto.h"
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#if defined (MBEDTLS_PSA_P256M_DRIVER_ENABLED)
+
+/*
+ * Zeroize memory - this should not be optimized away
+ */
+#define zeroize mbedtls_platform_zeroize
+
+/*
+ * Helpers to test constant-time behaviour with valgrind or MemSan.
+ *
+ * CT_POISON() is used for secret data. It marks the memory area as
+ * uninitialised, so that any branch or pointer dereference that depends on it
+ * (even indirectly) triggers a warning.
+ * CT_UNPOISON() is used for public data; it marks the area as initialised.
+ *
+ * These are macros in order to avoid interfering with origin tracking.
+ */
+#if defined(CT_MEMSAN)
+
+#include <sanitizer/msan_interface.h>
+#define CT_POISON   __msan_allocated_memory
+// void __msan_allocated_memory(const volatile void* data, size_t size);
+#define CT_UNPOISON __msan_unpoison
+// void __msan_unpoison(const volatile void *a, size_t size);
+
+#elif defined(CT_VALGRIND)
+
+#include <valgrind/memcheck.h>
+#define CT_POISON   VALGRIND_MAKE_MEM_UNDEFINED
+// VALGRIND_MAKE_MEM_UNDEFINED(_qzz_addr,_qzz_len)
+#define CT_UNPOISON VALGRIND_MAKE_MEM_DEFINED
+// VALGRIND_MAKE_MEM_DEFINED(_qzz_addr,_qzz_len)
+
+#else
+#define CT_POISON(p, sz)
+#define CT_UNPOISON(p, sz)
+#endif
+
+/**********************************************************************
+ *
+ * Operations on fixed-width unsigned integers
+ *
+ * Represented using 32-bit limbs, least significant limb first.
+ * That is: x = x[0] + 2^32 x[1] + ... + 2^224 x[7] for 256-bit.
+ *
+ **********************************************************************/
+
+/*
+ * 256-bit set to 32-bit value
+ *
+ * in: x in [0, 2^32)
+ * out: z = x
+ */
+static void u256_set32(uint32_t z[8], uint32_t x)
+{
+    z[0] = x;
+    for (unsigned i = 1; i < 8; i++) {
+        z[i] = 0;
+    }
+}
+
+/*
+ * 256-bit addition
+ *
+ * in: x, y in [0, 2^256)
+ * out: z = (x + y) mod 2^256
+ *      c = (x + y) div 2^256
+ * That is, z + c * 2^256 = x + y
+ *
+ * Note: as a memory area, z must be either equal to x or y, or not overlap.
+ */
+static uint32_t u256_add(uint32_t z[8],
+                         const uint32_t x[8], const uint32_t y[8])
+{
+    uint32_t carry = 0;
+
+    for (unsigned i = 0; i < 8; i++) {
+        uint64_t sum = (uint64_t) carry + x[i] + y[i];
+        z[i] = (uint32_t) sum;
+        carry = (uint32_t) (sum >> 32);
+    }
+
+    return carry;
+}
+
+/*
+ * 256-bit subtraction
+ *
+ * in: x, y in [0, 2^256)
+ * out: z = (x - y) mod 2^256
+ *      c = 0 if x >=y, 1 otherwise
+ * That is, z = c * 2^256 + x - y
+ *
+ * Note: as a memory area, z must be either equal to x or y, or not overlap.
+ */
+static uint32_t u256_sub(uint32_t z[8],
+                         const uint32_t x[8], const uint32_t y[8])
+{
+    uint32_t carry = 0;
+
+    for (unsigned i = 0; i < 8; i++) {
+        uint64_t diff = (uint64_t) x[i] - y[i] - carry;
+        z[i] = (uint32_t) diff;
+        carry = -(uint32_t) (diff >> 32);
+    }
+
+    return carry;
+}
+
+/*
+ * 256-bit conditional assignment
+ *
+ * in: x in [0, 2^256)
+ *     c in [0, 1]
+ * out: z = x if c == 1, z unchanged otherwise
+ *
+ * Note: as a memory area, z must be either equal to x, or not overlap.
+ */
+static void u256_cmov(uint32_t z[8], const uint32_t x[8], uint32_t c)
+{
+    const uint32_t x_mask = -c;
+    for (unsigned i = 0; i < 8; i++) {
+        z[i] = (z[i] & ~x_mask) | (x[i] & x_mask);
+    }
+}
+
+/*
+ * 256-bit compare for equality
+ *
+ * in: x in [0, 2^256)
+ *     y in [0, 2^256)
+ * out: 0 if x == y, unspecified non-zero otherwise
+ */
+static uint32_t u256_diff(const uint32_t x[8], const uint32_t y[8])
+{
+    uint32_t diff = 0;
+    for (unsigned i = 0; i < 8; i++) {
+        diff |= x[i] ^ y[i];
+    }
+    return diff;
+}
+
+/*
+ * 256-bit compare to zero
+ *
+ * in: x in [0, 2^256)
+ * out: 0 if x == 0, unspecified non-zero otherwise
+ */
+static uint32_t u256_diff0(const uint32_t x[8])
+{
+    uint32_t diff = 0;
+    for (unsigned i = 0; i < 8; i++) {
+        diff |= x[i];
+    }
+    return diff;
+}
+
+/*
+ * 32 x 32 -> 64-bit multiply-and-accumulate
+ *
+ * in: x, y, z, t in [0, 2^32)
+ * out: x * y + z + t in [0, 2^64)
+ *
+ * Note: this computation cannot overflow.
+ *
+ * Note: this function has two pure-C implementations (depending on whether
+ * MUL64_IS_CONSTANT_TIME), and possibly optimised asm implementations.
+ * Start with the potential asm definitions, and use the C definition only if
+ * we no have no asm for the current toolchain & CPU.
+ */
+static uint64_t u32_muladd64(uint32_t x, uint32_t y, uint32_t z, uint32_t t);
+
+/* This macro is used to mark whether an asm implentation is found */
+#undef MULADD64_ASM
+/* This macro is used to mark whether the implementation has a small
+ * code size (ie, it can be inlined even in an unrolled loop) */
+#undef MULADD64_SMALL
+
+/*
+ * Currently assembly optimisations are only supported with GCC/Clang for
+ * Arm's Cortex-A and Cortex-M lines of CPUs, which start with the v6-M and
+ * v7-M architectures. __ARM_ARCH_PROFILE is not defined for v6 and earlier.
+ * Thumb and 32-bit assembly is supported; aarch64 is not supported.
+ */
+#if defined(__GNUC__) &&\
+    defined(__ARM_ARCH) && __ARM_ARCH >= 6 && defined(__ARM_ARCH_PROFILE) && \
+    ( __ARM_ARCH_PROFILE == 77 || __ARM_ARCH_PROFILE == 65 ) /* 'M' or 'A' */ && \
+    !defined(__aarch64__)
+
+/*
+ * This set of CPUs is conveniently partitioned as follows:
+ *
+ * 1. Cores that have the DSP extension, which includes a 1-cycle UMAAL
+ *    instruction: M4, M7, M33, all A-class cores.
+ * 2. Cores that don't have the DSP extension, and also lack a constant-time
+ *    64-bit multiplication instruction:
+ *    - M0, M0+, M23: 32-bit multiplication only;
+ *    - M3: 64-bit multiplication is not constant-time.
+ */
+#if defined(__ARM_FEATURE_DSP)
+
+static uint64_t u32_muladd64(uint32_t x, uint32_t y, uint32_t z, uint32_t t)
+{
+    __asm__(
+        /* UMAAL <RdLo>, <RdHi>, <Rn>, <Rm> */
+        "umaal   %[z], %[t], %[x], %[y]"
+        : [z] "+l" (z), [t] "+l" (t)
+        : [x] "l" (x), [y] "l" (y)
+    );
+    return ((uint64_t) t << 32) | z;
+}
+#define MULADD64_ASM
+#define MULADD64_SMALL
+
+#else /* __ARM_FEATURE_DSP */
+
+/*
+ * This implementation only uses 16x16->32 bit multiplication.
+ *
+ * It decomposes the multiplicands as:
+ *      x = xh:xl = 2^16 * xh + xl
+ *      y = yh:yl = 2^16 * yh + yl
+ * and computes their product as:
+ *      x*y = xl*yl + 2**16 (xh*yl + yl*yh) + 2**32 xh*yh
+ * then adds z and t to the result.
+ */
+static uint64_t u32_muladd64(uint32_t x, uint32_t y, uint32_t z, uint32_t t)
+{
+    /* First compute x*y, using 3 temporary registers */
+    uint32_t tmp1, tmp2, tmp3;
+    __asm__(
+        ".syntax unified\n\t"
+        /* start by splitting the inputs into halves */
+        "lsrs    %[u], %[x], #16\n\t"
+        "lsrs    %[v], %[y], #16\n\t"
+        "uxth    %[x], %[x]\n\t"
+        "uxth    %[y], %[y]\n\t"
+        /* now we have %[x], %[y], %[u], %[v] = xl, yl, xh, yh */
+        /* let's compute the 4 products we can form with those */
+        "movs    %[w], %[v]\n\t"
+        "muls    %[w], %[u]\n\t"
+        "muls    %[v], %[x]\n\t"
+        "muls    %[x], %[y]\n\t"
+        "muls    %[y], %[u]\n\t"
+        /* now we have %[x], %[y], %[v], %[w] = xl*yl, xh*yl, xl*yh, xh*yh */
+        /* let's split and add the first middle product */
+        "lsls    %[u], %[y], #16\n\t"
+        "lsrs    %[y], %[y], #16\n\t"
+        "adds    %[x], %[u]\n\t"
+        "adcs    %[y], %[w]\n\t"
+        /* let's finish with the second middle product */
+        "lsls    %[u], %[v], #16\n\t"
+        "lsrs    %[v], %[v], #16\n\t"
+        "adds    %[x], %[u]\n\t"
+        "adcs    %[y], %[v]\n\t"
+        : [x] "+l" (x), [y] "+l" (y),
+          [u] "=&l" (tmp1), [v] "=&l" (tmp2), [w] "=&l" (tmp3)
+        : /* no read-only inputs */
+        : "cc"
+    );
+    (void) tmp1;
+    (void) tmp2;
+    (void) tmp3;
+
+    /* Add z and t, using one temporary register */
+    __asm__(
+        ".syntax unified\n\t"
+        "movs    %[u], #0\n\t"
+        "adds    %[x], %[z]\n\t"
+        "adcs    %[y], %[u]\n\t"
+        "adds    %[x], %[t]\n\t"
+        "adcs    %[y], %[u]\n\t"
+        : [x] "+l" (x), [y] "+l" (y), [u] "=&l" (tmp1)
+        : [z] "l" (z), [t] "l" (t)
+        : "cc"
+    );
+    (void) tmp1;
+
+    return ((uint64_t) y << 32) | x;
+}
+#define MULADD64_ASM
+
+#endif /* __ARM_FEATURE_DSP */
+
+#endif /* GCC/Clang with Cortex-M/A CPU */
+
+#if !defined(MULADD64_ASM)
+#if defined(MUL64_IS_CONSTANT_TIME)
+static uint64_t u32_muladd64(uint32_t x, uint32_t y, uint32_t z, uint32_t t)
+{
+    return (uint64_t) x * y + z + t;
+}
+#define MULADD64_SMALL
+#else
+static uint64_t u32_muladd64(uint32_t x, uint32_t y, uint32_t z, uint32_t t)
+{
+    /* x = xl + 2**16 xh, y = yl + 2**16 yh */
+    const uint16_t xl = (uint16_t) x;
+    const uint16_t yl = (uint16_t) y;
+    const uint16_t xh = x >> 16;
+    const uint16_t yh = y >> 16;
+
+    /* x*y = xl*yl + 2**16 (xh*yl + yl*yh) + 2**32 xh*yh
+     *     = lo    + 2**16 (m1    + m2   ) + 2**32 hi    */
+    const uint32_t lo = (uint32_t) xl * yl;
+    const uint32_t m1 = (uint32_t) xh * yl;
+    const uint32_t m2 = (uint32_t) xl * yh;
+    const uint32_t hi = (uint32_t) xh * yh;
+
+    uint64_t acc = lo + ((uint64_t) (hi + (m1 >> 16) + (m2 >> 16)) << 32);
+    acc += m1 << 16;
+    acc += m2 << 16;
+    acc += z;
+    acc += t;
+
+    return acc;
+}
+#endif /* MUL64_IS_CONSTANT_TIME */
+#endif /* MULADD64_ASM */
+
+/*
+ * 288 + 32 x 256 -> 288-bit multiply and add
+ *
+ * in: x in [0, 2^32)
+ *     y in [0, 2^256)
+ *     z in [0, 2^288)
+ * out: z_out = z_in + x * y mod 2^288
+ *      c     = z_in + x * y div 2^288
+ * That is, z_out + c * 2^288 = z_in + x * y
+ *
+ * Note: as a memory area, z must be either equal to y, or not overlap.
+ *
+ * This is a helper for Montgomery multiplication.
+ */
+static uint32_t u288_muladd(uint32_t z[9], uint32_t x, const uint32_t y[8])
+{
+    uint32_t carry = 0;
+
+#define U288_MULADD_STEP(i) \
+    do { \
+        uint64_t prod = u32_muladd64(x, y[i], z[i], carry); \
+        z[i] = (uint32_t) prod; \
+        carry = (uint32_t) (prod >> 32); \
+    } while( 0 )
+
+#if defined(MULADD64_SMALL)
+    U288_MULADD_STEP(0);
+    U288_MULADD_STEP(1);
+    U288_MULADD_STEP(2);
+    U288_MULADD_STEP(3);
+    U288_MULADD_STEP(4);
+    U288_MULADD_STEP(5);
+    U288_MULADD_STEP(6);
+    U288_MULADD_STEP(7);
+#else
+    for (unsigned i = 0; i < 8; i++) {
+        U288_MULADD_STEP(i);
+    }
+#endif
+
+    uint64_t sum = (uint64_t) z[8] + carry;
+    z[8] = (uint32_t) sum;
+    carry = (uint32_t) (sum >> 32);
+
+    return carry;
+}
+
+/*
+ * 288-bit in-place right shift by 32 bits
+ *
+ * in: z in [0, 2^288)
+ *     c in [0, 2^32)
+ * out: z_out = z_in div 2^32 + c * 2^256
+ *            = (z_in + c * 2^288) div 2^32
+ *
+ * This is a helper for Montgomery multiplication.
+ */
+static void u288_rshift32(uint32_t z[9], uint32_t c)
+{
+    for (unsigned i = 0; i < 8; i++) {
+        z[i] = z[i + 1];
+    }
+    z[8] = c;
+}
+
+/*
+ * 256-bit import from big-endian bytes
+ *
+ * in: p = p0, ..., p31
+ * out: z = p0 * 2^248 + p1 * 2^240 + ... + p30 * 2^8 + p31
+ */
+static void u256_from_bytes(uint32_t z[8], const uint8_t p[32])
+{
+    for (unsigned i = 0; i < 8; i++) {
+        unsigned j = 4 * (7 - i);
+        z[i] = ((uint32_t) p[j + 0] << 24) |
+               ((uint32_t) p[j + 1] << 16) |
+               ((uint32_t) p[j + 2] <<  8) |
+               ((uint32_t) p[j + 3] <<  0);
+    }
+}
+
+/*
+ * 256-bit export to big-endian bytes
+ *
+ * in: z in [0, 2^256)
+ * out: p = p0, ..., p31 such that
+ *      z = p0 * 2^248 + p1 * 2^240 + ... + p30 * 2^8 + p31
+ */
+static void u256_to_bytes(uint8_t p[32], const uint32_t z[8])
+{
+    for (unsigned i = 0; i < 8; i++) {
+        unsigned j = 4 * (7 - i);
+        p[j + 0] = (uint8_t) (z[i] >> 24);
+        p[j + 1] = (uint8_t) (z[i] >> 16);
+        p[j + 2] = (uint8_t) (z[i] >>  8);
+        p[j + 3] = (uint8_t) (z[i] >>  0);
+    }
+}
+
+/**********************************************************************
+ *
+ * Operations modulo a 256-bit prime m
+ *
+ * These are done in the Montgomery domain, that is x is represented by
+ *  x * 2^256 mod m
+ * Numbers need to be converted to that domain before computations,
+ * and back from it afterwards.
+ *
+ * Inversion is computed using Fermat's little theorem.
+ *
+ * Assumptions on m:
+ * - Montgomery operations require that m is odd.
+ * - Fermat's little theorem require it to be a prime.
+ * - m256_inv() further requires that m % 2^32 >= 2.
+ * - m256_inv() also assumes that the value of m is not a secret.
+ *
+ * In practice operations are done modulo the curve's p and n,
+ * both of which satisfy those assumptions.
+ *
+ **********************************************************************/
+
+/*
+ * Data associated to a modulus for Montgomery operations.
+ *
+ * m in [0, 2^256) - the modulus itself, must be odd
+ * R2 = 2^512 mod m
+ * ni = -m^-1 mod 2^32
+ */
+typedef struct {
+    uint32_t m[8];
+    uint32_t R2[8];
+    uint32_t ni;
+}
+m256_mod;
+
+/*
+ * Data for Montgomery operations modulo the curve's p
+ */
+static const m256_mod p256_p = {
+    {   /* the curve's p */
+        0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x00000000,
+        0x00000000, 0x00000000, 0x00000001, 0xFFFFFFFF,
+    },
+    {   /* 2^512 mod p */
+        0x00000003, 0x00000000, 0xffffffff, 0xfffffffb,
+        0xfffffffe, 0xffffffff, 0xfffffffd, 0x00000004,
+    },
+    0x00000001, /* -p^-1 mod 2^32 */
+};
+
+/*
+ * Data for Montgomery operations modulo the curve's n
+ */
+static const m256_mod p256_n = {
+    {   /* the curve's n */
+        0xFC632551, 0xF3B9CAC2, 0xA7179E84, 0xBCE6FAAD,
+        0xFFFFFFFF, 0xFFFFFFFF, 0x00000000, 0xFFFFFFFF,
+    },
+    {   /* 2^512 mod n */
+        0xbe79eea2, 0x83244c95, 0x49bd6fa6, 0x4699799c,
+        0x2b6bec59, 0x2845b239, 0xf3d95620, 0x66e12d94,
+    },
+    0xee00bc4f, /* -n^-1 mod 2^32 */
+};
+
+/*
+ * Modular addition
+ *
+ * in: x, y in [0, m)
+ *     mod must point to a valid m256_mod structure
+ * out: z = (x + y) mod m, in [0, m)
+ *
+ * Note: as a memory area, z must be either equal to x or y, or not overlap.
+ */
+static void m256_add(uint32_t z[8],
+                     const uint32_t x[8], const uint32_t y[8],
+                     const m256_mod *mod)
+{
+    uint32_t r[8];
+    uint32_t carry_add = u256_add(z, x, y);
+    uint32_t carry_sub = u256_sub(r, z, mod->m);
+    /* Need to subract m if:
+     *      x+y >= 2^256 > m (that is, carry_add == 1)
+     *   OR z >= m (that is, carry_sub == 0) */
+    uint32_t use_sub = carry_add | (1 - carry_sub);
+    u256_cmov(z, r, use_sub);
+}
+
+/*
+ * Modular addition mod p
+ *
+ * in: x, y in [0, p)
+ * out: z = (x + y) mod p, in [0, p)
+ *
+ * Note: as a memory area, z must be either equal to x or y, or not overlap.
+ */
+static void m256_add_p(uint32_t z[8],
+                       const uint32_t x[8], const uint32_t y[8])
+{
+    m256_add(z, x, y, &p256_p);
+}
+
+/*
+ * Modular subtraction
+ *
+ * in: x, y in [0, m)
+ *     mod must point to a valid m256_mod structure
+ * out: z = (x - y) mod m, in [0, m)
+ *
+ * Note: as a memory area, z must be either equal to x or y, or not overlap.
+ */
+static void m256_sub(uint32_t z[8],
+                     const uint32_t x[8], const uint32_t y[8],
+                     const m256_mod *mod)
+{
+    uint32_t r[8];
+    uint32_t carry = u256_sub(z, x, y);
+    (void) u256_add(r, z, mod->m);
+    /* Need to add m if and only if x < y, that is carry == 1.
+     * In that case z is in [2^256 - m + 1, 2^256 - 1], so the
+     * addition will have a carry as well, which cancels out. */
+    u256_cmov(z, r, carry);
+}
+
+/*
+ * Modular subtraction mod p
+ *
+ * in: x, y in [0, p)
+ * out: z = (x + y) mod p, in [0, p)
+ *
+ * Note: as a memory area, z must be either equal to x or y, or not overlap.
+ */
+static void m256_sub_p(uint32_t z[8],
+                       const uint32_t x[8], const uint32_t y[8])
+{
+    m256_sub(z, x, y, &p256_p);
+}
+
+/*
+ * Montgomery modular multiplication
+ *
+ * in: x, y in [0, m)
+ *     mod must point to a valid m256_mod structure
+ * out: z = (x * y) / 2^256 mod m, in [0, m)
+ *
+ * Note: as a memory area, z may overlap with x or y.
+ */
+static void m256_mul(uint32_t z[8],
+                     const uint32_t x[8], const uint32_t y[8],
+                     const m256_mod *mod)
+{
+    /*
+     * Algorithm 14.36 in Handbook of Applied Cryptography with:
+     * b = 2^32, n = 8, R = 2^256
+     */
+    uint32_t m_prime = mod->ni;
+    uint32_t a[9];
+
+    for (unsigned i = 0; i < 9; i++) {
+        a[i] = 0;
+    }
+
+    for (unsigned i = 0; i < 8; i++) {
+        /* the "mod 2^32" is implicit from the type */
+        uint32_t u = (a[0] + x[i] * y[0]) * m_prime;
+
+        /* a = (a + x[i] * y + u * m) div b */
+        uint32_t c = u288_muladd(a, x[i], y);
+        c += u288_muladd(a, u, mod->m);
+        u288_rshift32(a, c);
+    }
+
+    /* a = a > m ? a - m : a */
+    uint32_t carry_add = a[8];  // 0 or 1 since a < 2m, see HAC Note 14.37
+    uint32_t carry_sub = u256_sub(z, a, mod->m);
+    uint32_t use_sub = carry_add | (1 - carry_sub);     // see m256_add()
+    u256_cmov(z, a, 1 - use_sub);
+}
+
+/*
+ * Montgomery modular multiplication modulo p.
+ *
+ * in: x, y in [0, p)
+ * out: z = (x * y) / 2^256 mod p, in [0, p)
+ *
+ * Note: as a memory area, z may overlap with x or y.
+ */
+static void m256_mul_p(uint32_t z[8],
+                       const uint32_t x[8], const uint32_t y[8])
+{
+    m256_mul(z, x, y, &p256_p);
+}
+
+/*
+ * In-place conversion to Montgomery form
+ *
+ * in: z in [0, m)
+ *     mod must point to a valid m256_mod structure
+ * out: z_out = z_in * 2^256 mod m, in [0, m)
+ */
+static void m256_prep(uint32_t z[8], const m256_mod *mod)
+{
+    m256_mul(z, z, mod->R2, mod);
+}
+
+/*
+ * In-place conversion from Montgomery form
+ *
+ * in: z in [0, m)
+ *     mod must point to a valid m256_mod structure
+ * out: z_out = z_in / 2^256 mod m, in [0, m)
+ * That is, z_in was z_actual * 2^256 mod m, and z_out is z_actual
+ */
+static void m256_done(uint32_t z[8], const m256_mod *mod)
+{
+    uint32_t one[8];
+    u256_set32(one, 1);
+    m256_mul(z, z, one, mod);
+}
+
+/*
+ * Set to 32-bit value
+ *
+ * in: x in [0, 2^32)
+ *     mod must point to a valid m256_mod structure
+ * out: z = x * 2^256 mod m, in [0, m)
+ * That is, z is set to the image of x in the Montgomery domain.
+ */
+static void m256_set32(uint32_t z[8], uint32_t x, const m256_mod *mod)
+{
+    u256_set32(z, x);
+    m256_prep(z, mod);
+}
+
+/*
+ * Modular inversion in Montgomery form
+ *
+ * in: x in [0, m)
+ *     mod must point to a valid m256_mod structure
+ *     such that mod->m % 2^32 >= 2, assumed to be public.
+ * out: z = x^-1 * 2^512 mod m if x != 0,
+ *      z = 0 if x == 0
+ * That is, if x = x_actual    * 2^256 mod m, then
+ *             z = x_actual^-1 * 2^256 mod m
+ *
+ * Note: as a memory area, z may overlap with x.
+ */
+static void m256_inv(uint32_t z[8], const uint32_t x[8],
+                     const m256_mod *mod)
+{
+    /*
+     * Use Fermat's little theorem to compute x^-1 as x^(m-2).
+     *
+     * Take advantage of the fact that both p's and n's least significant limb
+     * is at least 2 to perform the subtraction on the flight (no carry).
+     *
+     * Use plain right-to-left binary exponentiation;
+     * branches are OK as the exponent is not a secret.
+     */
+    uint32_t bitval[8];
+    u256_cmov(bitval, x, 1);    /* copy x before writing to z */
+
+    m256_set32(z, 1, mod);
+
+    unsigned i = 0;
+    uint32_t limb = mod->m[i] - 2;
+    while (1) {
+        for (unsigned j = 0; j < 32; j++) {
+            if ((limb & 1) != 0) {
+                m256_mul(z, z, bitval, mod);
+            }
+            m256_mul(bitval, bitval, bitval, mod);
+            limb >>= 1;
+        }
+
+        if (i == 7)
+            break;
+
+        i++;
+        limb = mod->m[i];
+    }
+}
+
+/*
+ * Import modular integer from bytes to Montgomery domain
+ *
+ * in: p = p0, ..., p32
+ *     mod must point to a valid m256_mod structure
+ * out: z = (p0 * 2^248 + ... + p31) * 2^256 mod m, in [0, m)
+ *      return 0 if the number was already in [0, m), or -1.
+ *      z may be incorrect and must be discared when -1 is returned.
+ */
+static int m256_from_bytes(uint32_t z[8],
+                           const uint8_t p[32], const m256_mod *mod)
+{
+    u256_from_bytes(z, p);
+
+    uint32_t t[8];
+    uint32_t lt_m = u256_sub(t, z, mod->m);
+    if (lt_m != 1)
+        return -1;
+
+    m256_prep(z, mod);
+    return 0;
+}
+
+/*
+ * Export modular integer from Montgomery domain to bytes
+ *
+ * in: z in [0, 2^256)
+ *     mod must point to a valid m256_mod structure
+ * out: p = p0, ..., p31 such that
+ *      z = (p0 * 2^248 + ... + p31) * 2^256 mod m
+ */
+static void m256_to_bytes(uint8_t p[32],
+                          const uint32_t z[8], const m256_mod *mod)
+{
+    uint32_t zi[8];
+    u256_cmov(zi, z, 1);
+    m256_done(zi, mod);
+
+    u256_to_bytes(p, zi);
+}
+
+/**********************************************************************
+ *
+ * Operations on curve points
+ *
+ * Points are represented in two coordinates system:
+ *  - affine (x, y) - extended to represent 0 (see below)
+ *  - jacobian (x:y:z)
+ * In either case, coordinates are integers modulo p256_p and
+ * are always represented in the Montgomery domain.
+ *
+ * For background on jacobian coordinates, see for example [GECC] 3.2.2:
+ * - conversions go (x, y) -> (x:y:1) and (x:y:z) -> (x/z^2, y/z^3)
+ * - the curve equation becomes y^2 = x^3 - 3 x z^4 + b z^6
+ * - 0 (aka the origin aka point at infinity) is (x:y:0) with y^2 = x^3.
+ * - point negation goes -(x:y:z) = (x:-y:z)
+ *
+ * Normally 0 (the point at infinity) can't be represented in affine
+ * coordinates. However we extend affine coordinates with the convention that
+ * (0, 0) (which is normally not a point on the curve) is interpreted as 0.
+ *
+ * References:
+ * - [GECC]: Guide to Elliptic Curve Cryptography; Hankerson, Menezes,
+ *   Vanstone; Springer, 2004.
+ * - [CMO98]: Efficient Elliptic Curve Exponentiation Using Mixed Coordinates;
+ *   Cohen, Miyaji, Ono; Springer, ASIACRYPT 1998.
+ *   https://link.springer.com/content/pdf/10.1007/3-540-49649-1_6.pdf
+ * - [RCB15]: Complete addition formulas for prime order elliptic curves;
+ *   Renes, Costello, Batina; IACR e-print 2015-1060.
+ *   https://eprint.iacr.org/2015/1060.pdf
+ *
+ **********************************************************************/
+
+/*
+ * The curve's b parameter in the Short Weierstrass equation
+ *  y^2 = x^3 - 3*x + b
+ * Compared to the standard, this is converted to the Montgomery domain.
+ */
+static const uint32_t p256_b[8] = { /* b * 2^256 mod p */
+    0x29c4bddf, 0xd89cdf62, 0x78843090, 0xacf005cd,
+    0xf7212ed6, 0xe5a220ab, 0x04874834, 0xdc30061d,
+};
+
+/*
+ * The curve's conventional base point G.
+ * Compared to the standard, coordinates converted to the Montgomery domain.
+ */
+static const uint32_t p256_gx[8] = { /* G_x * 2^256 mod p */
+    0x18a9143c, 0x79e730d4, 0x5fedb601, 0x75ba95fc,
+    0x77622510, 0x79fb732b, 0xa53755c6, 0x18905f76,
+};
+static const uint32_t p256_gy[8] = { /* G_y * 2^256 mod p */
+    0xce95560a, 0xddf25357, 0xba19e45c, 0x8b4ab8e4,
+    0xdd21f325, 0xd2e88688, 0x25885d85, 0x8571ff18,
+};
+
+/*
+ * Point-on-curve check - do the coordinates satisfy the curve's equation?
+ *
+ * in: x, y in [0, p)   (Montgomery domain)
+ * out: 0 if the point lies on the curve and is not 0,
+ *      unspecified non-zero otherwise
+ */
+static uint32_t point_check(const uint32_t x[8], const uint32_t y[8])
+{
+    uint32_t lhs[8], rhs[8];
+
+    /* lhs = y^2 */
+    m256_mul_p(lhs, y, y);
+
+    /* rhs = x^3 - 3x + b */
+    m256_mul_p(rhs, x,   x);      /* x^2 */
+    m256_mul_p(rhs, rhs, x);      /* x^3 */
+    for (unsigned i = 0; i < 3; i++)
+        m256_sub_p(rhs, rhs, x);  /* x^3 - 3x */
+    m256_add_p(rhs, rhs, p256_b); /* x^3 - 3x + b */
+
+    return u256_diff(lhs, rhs);
+}
+
+/*
+ * In-place jacobian to affine coordinate conversion
+ *
+ * in: (x:y:z) must be on the curve (coordinates in Montegomery domain)
+ * out: x_out = x_in / z_in^2   (Montgomery domain)
+ *      y_out = y_in / z_in^3   (Montgomery domain)
+ *      z_out unspecified, must be disregarded
+ *
+ * Note: if z is 0 (that is, the input point is 0), x_out = y_out = 0.
+ */
+static void point_to_affine(uint32_t x[8], uint32_t y[8], uint32_t z[8])
+{
+    uint32_t t[8];
+
+    m256_inv(z, z, &p256_p);    /* z = z^-1 */
+
+    m256_mul_p(t, z, z);        /* t = z^-2 */
+    m256_mul_p(x, x, t);        /* x = x * z^-2 */
+
+    m256_mul_p(t, t, z);        /* t = z^-3 */
+    m256_mul_p(y, y, t);        /* y = y * z^-3 */
+}
+
+/*
+ * In-place point doubling in jacobian coordinates (Montgomery domain)
+ *
+ * in: P_in = (x:y:z), must be on the curve
+ * out: (x:y:z) = P_out = 2 * P_in
+ */
+static void point_double(uint32_t x[8], uint32_t y[8], uint32_t z[8])
+{
+    /*
+     * This is formula 6 from [CMO98], cited as complete in [RCB15] (table 1).
+     * Notations as in the paper, except u added and t ommited (it's x3).
+     */
+    uint32_t m[8], s[8], u[8];
+
+    /* m = 3 * x^2 + a * z^4 = 3 * (x + z^2) * (x - z^2) */
+    m256_mul_p(s, z, z);
+    m256_add_p(m, x, s);
+    m256_sub_p(u, x, s);
+    m256_mul_p(s, m, u);
+    m256_add_p(m, s, s);
+    m256_add_p(m, m, s);
+
+    /* s = 4 * x * y^2 */
+    m256_mul_p(u, y, y);
+    m256_add_p(u, u, u); /* u = 2 * y^2 (used below) */
+    m256_mul_p(s, x, u);
+    m256_add_p(s, s, s);
+
+    /* u = 8 * y^4 (not named in the paper, first term of y3) */
+    m256_mul_p(u, u, u);
+    m256_add_p(u, u, u);
+
+    /* x3 = t = m^2 - 2 * s */
+    m256_mul_p(x, m, m);
+    m256_sub_p(x, x, s);
+    m256_sub_p(x, x, s);
+
+    /* z3 = 2 * y * z */
+    m256_mul_p(z, y, z);
+    m256_add_p(z, z, z);
+
+    /* y3 = -u + m * (s - t) */
+    m256_sub_p(y, s, x);
+    m256_mul_p(y, y, m);
+    m256_sub_p(y, y, u);
+}
+
+/*
+ * In-place point addition in jacobian-affine coordinates (Montgomery domain)
+ *
+ * in: P_in = (x1:y1:z1), must be on the curve and not 0
+ *     Q = (x2, y2), must be on the curve and not P_in or -P_in or 0
+ * out: P_out = (x1:y1:z1) = P_in + Q
+ */
+static void point_add(uint32_t x1[8], uint32_t y1[8], uint32_t z1[8],
+                      const uint32_t x2[8], const uint32_t y2[8])
+{
+    /*
+     * This is formula 5 from [CMO98], with z2 == 1 substituted. We use
+     * intermediates with neutral names, and names from the paper in comments.
+     */
+    uint32_t t1[8], t2[8], t3[8];
+
+    /* u1 = x1 and s1 = y1 (no computations) */
+
+    /* t1 = u2 = x2 z1^2 */
+    m256_mul_p(t1, z1, z1);
+    m256_mul_p(t2, t1, z1);
+    m256_mul_p(t1, t1, x2);
+
+    /* t2 = s2 = y2 z1^3 */
+    m256_mul_p(t2, t2, y2);
+
+    /* t1 = h = u2 - u1 */
+    m256_sub_p(t1, t1, x1); /* t1 = x2 * z1^2 - x1 */
+
+    /* t2 = r = s2 - s1 */
+    m256_sub_p(t2, t2, y1);
+
+    /* z3 = z1 * h */
+    m256_mul_p(z1, z1, t1);
+
+    /* t1 = h^3 */
+    m256_mul_p(t3, t1, t1);
+    m256_mul_p(t1, t3, t1);
+
+    /* t3 = x1 * h^2 */
+    m256_mul_p(t3, t3, x1);
+
+    /* x3 = r^2 - 2 * x1 * h^2 - h^3 */
+    m256_mul_p(x1, t2, t2);
+    m256_sub_p(x1, x1, t3);
+    m256_sub_p(x1, x1, t3);
+    m256_sub_p(x1, x1, t1);
+
+    /* y3 = r * (x1 * h^2 - x3) - y1 h^3 */
+    m256_sub_p(t3, t3, x1);
+    m256_mul_p(t3, t3, t2);
+    m256_mul_p(t1, t1, y1);
+    m256_sub_p(y1, t3, t1);
+}
+
+/*
+ * Point addition or doubling (affine to jacobian, Montgomery domain)
+ *
+ * in: P = (x1, y1) - must be on the curve and not 0
+ *     Q = (x2, y2) - must be on the curve and not 0
+ * out: (x3, y3) = R = P + Q
+ *
+ * Note: unlike point_add(), this function works if P = +- Q;
+ * however it leaks information on its input through timing,
+ * branches taken and memory access patterns (if observable).
+ */
+static void point_add_or_double_leaky(
+                        uint32_t x3[8], uint32_t y3[8],
+                        const uint32_t x1[8], const uint32_t y1[8],
+                        const uint32_t x2[8], const uint32_t y2[8])
+{
+
+    uint32_t z3[8];
+    u256_cmov(x3, x1, 1);
+    u256_cmov(y3, y1, 1);
+    m256_set32(z3, 1, &p256_p);
+
+    if (u256_diff(x1, x2) != 0) {
+        // P != +- Q -> generic addition
+        point_add(x3, y3, z3, x2, y2);
+        point_to_affine(x3, y3, z3);
+    }
+    else if (u256_diff(y1, y2) == 0) {
+        // P == Q -> double
+        point_double(x3, y3, z3);
+        point_to_affine(x3, y3, z3);
+    } else {
+        // P == -Q -> zero
+        m256_set32(x3, 0, &p256_p);
+        m256_set32(y3, 0, &p256_p);
+    }
+}
+
+/*
+ * Import curve point from bytes
+ *
+ * in: p = (x, y) concatenated, fixed-width 256-bit big-endian integers
+ * out: x, y in Mongomery domain
+ *      return 0 if x and y are both in [0, p)
+ *                  and (x, y) is on the curve and not 0
+ *             unspecified non-zero otherwise.
+ *      x and y are unspecified and must be discarded if returning non-zero.
+ */
+static int point_from_bytes(uint32_t x[8], uint32_t y[8], const uint8_t p[64])
+{
+    int ret;
+
+    ret = m256_from_bytes(x, p, &p256_p);
+    if (ret != 0)
+        return ret;
+
+    ret = m256_from_bytes(y, p + 32, &p256_p);
+    if (ret != 0)
+        return ret;
+
+    return (int) point_check(x, y);
+}
+
+/*
+ * Export curve point to bytes
+ *
+ * in: x, y affine coordinates of a point (Montgomery domain)
+ *     must be on the curve and not 0
+ * out: p = (x, y) concatenated, fixed-width 256-bit big-endian integers
+ */
+static void point_to_bytes(uint8_t p[64],
+                           const uint32_t x[8], const uint32_t y[8])
+{
+    m256_to_bytes(p,        x, &p256_p);
+    m256_to_bytes(p + 32,   y, &p256_p);
+}
+
+/**********************************************************************
+ *
+ * Scalar multiplication and other scalar-related operations
+ *
+ **********************************************************************/
+
+/*
+ * Scalar multiplication
+ *
+ * in: P = (px, py), affine (Montgomery), must be on the curve and not 0
+ *     s in [1, n-1]
+ * out: R = s * P = (rx, ry), affine coordinates (Montgomery).
+ *
+ * Note: as memory areas, none of the parameters may overlap.
+ */
+static void scalar_mult(uint32_t rx[8], uint32_t ry[8],
+                        const uint32_t px[8], const uint32_t py[8],
+                        const uint32_t s[8])
+{
+    /*
+     * We use a signed binary ladder, see for example slides 10-14 of
+     * http://ecc2015.math.u-bordeaux1.fr/documents/hamburg.pdf but with
+     * implicit recoding, and a different loop initialisation to avoid feeding
+     * 0 to our addition formulas, as they don't support it.
+     */
+    uint32_t s_odd[8], py_neg[8], py_use[8], rz[8];
+
+    /*
+     * Make s odd by replacing it with n - s if necessary.
+     *
+     * If s was odd, we'll have s_odd = s, and define P' = P.
+     * Otherwise, we'll have s_odd = n - s and define P' = -P.
+     *
+     * Either way, we can compute s * P as s_odd * P'.
+     */
+    u256_sub(s_odd, p256_n.m, s); /* no carry, result still in [1, n-1] */
+    uint32_t negate = ~s[0] & 1;
+    u256_cmov(s_odd, s, 1 - negate);
+
+    /* Compute py_neg = - py mod p (that's the y coordinate of -P) */
+    u256_set32(py_use, 0);
+    m256_sub_p(py_neg, py_use, py);
+
+    /* Initialize R = P' = (x:(-1)^negate * y:1) */
+    u256_cmov(rx, px, 1);
+    u256_cmov(ry, py, 1);
+    m256_set32(rz, 1, &p256_p);
+    u256_cmov(ry, py_neg, negate);
+
+    /*
+     * For any odd number s_odd = b255 ... b1 1, we have
+     *      s_odd = 2^255 + 2^254 sbit(b255) + ... + 2 sbit(b2) + sbit(b1)
+     * writing
+     *      sbit(b) = 2 * b - 1 = b ? 1 : -1
+     *
+     * Use that to compute s_odd * P' by repeating R = 2 * R +- P':
+     *      s_odd * P' = 2 * ( ... (2 * P' + sbit(b255) P') ... ) + sbit(b1) P'
+     *
+     * The loop invariant is that when beginning an iteration we have
+     *      R = s_i P'
+     * with
+     *      s_i = 2^(255-i) + 2^(254-i) sbit(b_255) + ...
+     * where the sum has 256 - i terms.
+     *
+     * When updating R we need to make sure the input to point_add() is
+     * neither 0 not +-P'. Since that input is 2 s_i P', it is sufficient to
+     * see that 1 < 2 s_i < n-1. The lower bound is obvious since s_i is a
+     * positive integer, and for the upper bound we distinguish three cases.
+     *
+     * If i > 1, then s_i < 2^254, so 2 s_i < 2^255 < n-1.
+     * Otherwise, i == 1 and we have 2 s_i = s_odd - sbit(b1).
+     *      If s_odd <= n-4, then 2 s_1 <= n-3.
+     *      Otherwise, s_odd = n-2, and for this curve's value of n,
+     *      we have b1 == 1, so sbit(b1) = 1 and 2 s_1 <= n-3.
+     */
+    for (unsigned i = 255; i > 0; i--) {
+        uint32_t bit = (s_odd[i / 32] >> i % 32) & 1;
+
+        /* set (px, py_use) = sbit(bit) P' = sbit(bit) * (-1)^negate P */
+        u256_cmov(py_use, py, bit ^ negate);
+        u256_cmov(py_use, py_neg, (1 - bit) ^ negate);
+
+        /* Update R = 2 * R +- P' */
+        point_double(rx, ry, rz);
+        point_add(rx, ry, rz, px, py_use);
+    }
+
+    point_to_affine(rx, ry, rz);
+}
+
+/*
+ * Scalar import from big-endian bytes
+ *
+ * in: p = p0, ..., p31
+ * out: s = p0 * 2^248 + p1 * 2^240 + ... + p30 * 2^8 + p31
+ *      return 0 if s in [1, n-1],
+ *            -1 otherwise.
+ */
+static int scalar_from_bytes(uint32_t s[8], const uint8_t p[32])
+{
+    u256_from_bytes(s, p);
+
+    uint32_t r[8];
+    uint32_t lt_n = u256_sub(r, s, p256_n.m);
+
+    u256_set32(r, 1);
+    uint32_t lt_1 = u256_sub(r, s, r);
+
+    if (lt_n && !lt_1)
+        return 0;
+
+    return -1;
+}
+
+/* Using RNG functions from Mbed TLS as p256-m does not come with a
+ * cryptographically secure RNG function.
+ */
+int p256_generate_random(uint8_t *output, unsigned output_size)
+{
+    int ret;
+    ret = psa_generate_random(output, output_size);
+
+    if (ret != 0){
+        return P256_RANDOM_FAILED;
+    }
+    return P256_SUCCESS;
+}
+
+/*
+ * Scalar generation, with public key
+ *
+ * out: sbytes the big-endian bytes representation of the scalar
+ *      s its u256 representation
+ *      x, y the affine coordinates of s * G (Montgomery domain)
+ *      return 0 if OK, -1 on failure
+ *      sbytes, s, x, y must be discarded when returning non-zero.
+ */
+static int scalar_gen_with_pub(uint8_t sbytes[32], uint32_t s[8],
+                               uint32_t x[8], uint32_t y[8])
+{
+    /* generate a random valid scalar */
+    int ret;
+    unsigned nb_tried = 0;
+    do {
+        if (nb_tried++ >= 4)
+            return -1;
+
+        ret = p256_generate_random(sbytes, 32);
+        CT_POISON(sbytes, 32);
+        if (ret != 0)
+            return -1;
+
+        ret = scalar_from_bytes(s, sbytes);
+        CT_UNPOISON(&ret, sizeof ret);
+    }
+    while (ret != 0);
+
+    /* compute and ouput the associated public key */
+    scalar_mult(x, y, p256_gx, p256_gy, s);
+
+    /* the associated public key is not a secret */
+    CT_UNPOISON(x, 32);
+    CT_UNPOISON(y, 32);
+
+    return 0;
+}
+
+/*
+ * ECDH/ECDSA generate pair
+ */
+int p256_gen_keypair(uint8_t priv[32], uint8_t pub[64])
+{
+    uint32_t s[8], x[8], y[8];
+    int ret = scalar_gen_with_pub(priv, s, x, y);
+    zeroize(s, sizeof s);
+    if (ret != 0)
+        return P256_RANDOM_FAILED;
+
+    point_to_bytes(pub, x, y);
+    return 0;
+}
+
+/**********************************************************************
+ *
+ * ECDH
+ *
+ **********************************************************************/
+
+/*
+ * ECDH compute shared secret
+ */
+int p256_ecdh_shared_secret(uint8_t secret[32],
+                            const uint8_t priv[32], const uint8_t peer[64])
+{
+    CT_POISON(priv, 32);
+
+    uint32_t s[8], px[8], py[8], x[8], y[8];
+    int ret;
+
+    ret = scalar_from_bytes(s, priv);
+    CT_UNPOISON(&ret, sizeof ret);
+    if (ret != 0) {
+        ret = P256_INVALID_PRIVKEY;
+        goto cleanup;
+    }
+
+    ret = point_from_bytes(px, py, peer);
+    if (ret != 0) {
+        ret = P256_INVALID_PUBKEY;
+        goto cleanup;
+    }
+
+    scalar_mult(x, y, px, py, s);
+
+    m256_to_bytes(secret, x, &p256_p);
+    CT_UNPOISON(secret, 32);
+
+cleanup:
+    zeroize(s, sizeof s);
+    return ret;
+}
+
+/**********************************************************************
+ *
+ * ECDSA
+ *
+ * Reference:
+ * [SEC1] SEC 1: Elliptic Curve Cryptography, Certicom research, 2009.
+ *        http://www.secg.org/sec1-v2.pdf
+ **********************************************************************/
+
+/*
+ * Reduction mod n of a small number
+ *
+ * in: x in [0, 2^256)
+ * out: x_out = x_in mod n in [0, n)
+ */
+static void ecdsa_m256_mod_n(uint32_t x[8])
+{
+    uint32_t t[8];
+    uint32_t c = u256_sub(t, x, p256_n.m);
+    u256_cmov(x, t, 1 - c);
+}
+
+/*
+ * Import integer mod n (Montgomery domain) from hash
+ *
+ * in: h = h0, ..., h_hlen
+ *     hlen the length of h in bytes
+ * out: z = (h0 * 2^l-8 + ... + h_l) * 2^256 mod n
+ *      with l = min(32, hlen)
+ *
+ * Note: in [SEC1] this is step 5 of 4.1.3 (sign) or step 3 or 4.1.4 (verify),
+ * with obvious simplications since n's bit-length is a multiple of 8.
+ */
+static void ecdsa_m256_from_hash(uint32_t z[8],
+                                 const uint8_t *h, size_t hlen)
+{
+    /* convert from h (big-endian) */
+    /* hlen is public data so it's OK to branch on it */
+    if (hlen < 32) {
+        uint8_t p[32];
+        for (unsigned i = 0; i < 32; i++)
+            p[i] = 0;
+        for (unsigned i = 0; i < hlen; i++)
+            p[32 - hlen + i] = h[i];
+        u256_from_bytes(z, p);
+    } else {
+        u256_from_bytes(z, h);
+    }
+
+    /* ensure the result is in [0, n) */
+    ecdsa_m256_mod_n(z);
+
+    /* map to Montgomery domain */
+    m256_prep(z, &p256_n);
+}
+
+/*
+ * ECDSA sign
+ */
+int p256_ecdsa_sign(uint8_t sig[64], const uint8_t priv[32],
+                    const uint8_t *hash, size_t hlen)
+{
+    CT_POISON(priv, 32);
+
+    /*
+     * Steps and notations from [SEC1] 4.1.3
+     *
+     * Instead of retrying on r == 0 or s == 0, just abort,
+     * as those events have negligible probability.
+     */
+    int ret;
+
+    /* Temporary buffers - the first two are mostly stable, so have names */
+    uint32_t xr[8], k[8], t3[8], t4[8];
+
+    /* 1. Set ephemeral keypair */
+    uint8_t *kb = (uint8_t *) t4;
+    /* kb will be erased by re-using t4 for dU - if we exit before that, we
+     * haven't read the private key yet so we kb isn't sensitive yet */
+    ret = scalar_gen_with_pub(kb, k, xr, t3);   /* xr = x_coord(k * G) */
+    if (ret != 0)
+        return P256_RANDOM_FAILED;
+    m256_prep(k, &p256_n);
+
+    /* 2. Convert xr to an integer */
+    m256_done(xr, &p256_p);
+
+    /* 3. Reduce xr mod n (extra: output it while at it) */
+    ecdsa_m256_mod_n(xr);    /* xr = int(xr) mod n */
+
+    /* xr is public data so it's OK to use a branch */
+    if (u256_diff0(xr) == 0)
+        return P256_RANDOM_FAILED;
+
+    u256_to_bytes(sig, xr);
+
+    m256_prep(xr, &p256_n);
+
+    /* 4. Skipped - we take the hash as an input, not the message */
+
+    /* 5. Derive an integer from the hash */
+    ecdsa_m256_from_hash(t3, hash, hlen);   /* t3 = e */
+
+    /* 6. Compute s = k^-1 * (e + r * dU) */
+
+    /* Note: dU will be erased by re-using t4 for the value of s (public) */
+    ret = scalar_from_bytes(t4, priv);   /* t4 = dU (integer domain) */
+    CT_UNPOISON(&ret, sizeof ret); /* Result of input validation */
+    if (ret != 0)
+        return P256_INVALID_PRIVKEY;
+    m256_prep(t4, &p256_n);         /* t4 = dU (Montgomery domain) */
+
+    m256_inv(k, k, &p256_n);        /* k^-1 */
+    m256_mul(t4, xr, t4, &p256_n);  /* t4 = r * dU */
+    m256_add(t4, t3, t4, &p256_n);  /* t4 = e + r * dU */
+    m256_mul(t4, k, t4, &p256_n);   /* t4 = s = k^-1 * (e + r * dU) */
+    zeroize(k, sizeof k);
+
+    /* 7. Output s (r already outputed at step 3) */
+    CT_UNPOISON(t4, 32);
+    if (u256_diff0(t4) == 0) {
+        /* undo early output of r */
+        u256_to_bytes(sig, t4);
+        return P256_RANDOM_FAILED;
+    }
+    m256_to_bytes(sig + 32, t4, &p256_n);
+
+    return P256_SUCCESS;
+}
+
+/*
+ * ECDSA verify
+ */
+int p256_ecdsa_verify(const uint8_t sig[64], const uint8_t pub[64],
+                      const uint8_t *hash, size_t hlen)
+{
+    /*
+     * Steps and notations from [SEC1] 4.1.3
+     *
+     * Note: we're using public data only, so branches are OK
+     */
+    int ret;
+
+    /* 1. Validate range of r and s : [1, n-1] */
+    uint32_t r[8], s[8];
+    ret = scalar_from_bytes(r, sig);
+    if (ret != 0)
+        return P256_INVALID_SIGNATURE;
+    ret = scalar_from_bytes(s, sig + 32);
+    if (ret != 0)
+        return P256_INVALID_SIGNATURE;
+
+    /* 2. Skipped - we take the hash as an input, not the message */
+
+    /* 3. Derive an integer from the hash */
+    uint32_t e[8];
+    ecdsa_m256_from_hash(e, hash, hlen);
+
+    /* 4. Compute u1 = e * s^-1 and u2 = r * s^-1 */
+    uint32_t u1[8], u2[8];
+    m256_prep(s, &p256_n);           /* s in Montgomery domain */
+    m256_inv(s, s, &p256_n);         /* s = s^-1 mod n */
+    m256_mul(u1, e, s, &p256_n);     /* u1 = e * s^-1 mod n */
+    m256_done(u1, &p256_n);          /* u1 out of Montgomery domain */
+
+    u256_cmov(u2, r, 1);
+    m256_prep(u2, &p256_n);          /* r in Montgomery domain */
+    m256_mul(u2, u2, s, &p256_n);    /* u2 = r * s^-1 mod n */
+    m256_done(u2, &p256_n);          /* u2 out of Montgomery domain */
+
+    /* 5. Compute R (and re-use (u1, u2) to store its coordinates */
+    uint32_t px[8], py[8];
+    ret = point_from_bytes(px, py, pub);
+    if (ret != 0)
+        return P256_INVALID_PUBKEY;
+
+    scalar_mult(e, s, px, py, u2);      /* (e, s) = R2 = u2 * Qu */
+
+    if (u256_diff0(u1) == 0) {
+        /* u1 out of range for scalar_mult() - just skip it */
+        u256_cmov(u1, e, 1);
+        /* we don't care about the y coordinate */
+    } else {
+        scalar_mult(px, py, p256_gx, p256_gy, u1); /* (px, py) = R1 = u1 * G */
+
+        /* (u1, u2) = R = R1 + R2 */
+        point_add_or_double_leaky(u1, u2, px, py, e, s);
+        /* No need to check if R == 0 here: if that's the case, it will be
+         * caught when comparating rx (which will be 0) to r (which isn't). */
+    }
+
+    /* 6. Convert xR to an integer */
+    m256_done(u1, &p256_p);
+
+    /* 7. Reduce xR mod n */
+    ecdsa_m256_mod_n(u1);
+
+    /* 8. Compare xR mod n to r */
+    uint32_t diff = u256_diff(u1, r);
+    if (diff == 0)
+        return P256_SUCCESS;
+
+    return P256_INVALID_SIGNATURE;
+}
+
+/**********************************************************************
+ *
+ * Key management utilities
+ *
+ **********************************************************************/
+
+int p256_validate_pubkey(const uint8_t pub[64])
+{
+    uint32_t x[8], y[8];
+    int ret = point_from_bytes(x, y, pub);
+
+    return ret == 0 ? P256_SUCCESS : P256_INVALID_PUBKEY;
+}
+
+int p256_validate_privkey(const uint8_t priv[32])
+{
+    uint32_t s[8];
+    int ret = scalar_from_bytes(s, priv);
+    zeroize(s, sizeof(s));
+
+    return ret == 0 ? P256_SUCCESS : P256_INVALID_PRIVKEY;
+}
+
+int p256_public_from_private(uint8_t pub[64], const uint8_t priv[32])
+{
+    int ret;
+    uint32_t s[8];
+
+    ret = scalar_from_bytes(s, priv);
+    if (ret != 0)
+        return P256_INVALID_PRIVKEY;
+
+    /* compute and ouput the associated public key */
+    uint32_t x[8], y[8];
+    scalar_mult(x, y, p256_gx, p256_gy, s);
+
+    /* the associated public key is not a secret, the scalar was */
+    CT_UNPOISON(x, 32);
+    CT_UNPOISON(y, 32);
+    zeroize(s, sizeof(s));
+
+    point_to_bytes(pub, x, y);
+    return P256_SUCCESS;
+}
+
+#endif
diff --git a/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/p256-m/p256-m/p256-m.h b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/p256-m/p256-m/p256-m.h
new file mode 100644
index 00000000000..c267800248d
--- /dev/null
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/p256-m/p256-m/p256-m.h
@@ -0,0 +1,135 @@
+/*
+ * Interface of curve P-256 (ECDH and ECDSA)
+ *
+ * Copyright The Mbed TLS Contributors
+ * Author: Manuel Pégourié-Gonnard.
+ * SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+ */
+#ifndef P256_M_H
+#define P256_M_H
+
+#include <stdint.h>
+#include <stddef.h>
+
+/* Status codes */
+#define P256_SUCCESS            0
+#define P256_RANDOM_FAILED      -1
+#define P256_INVALID_PUBKEY     -2
+#define P256_INVALID_PRIVKEY    -3
+#define P256_INVALID_SIGNATURE  -4
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ * RNG function - must be provided externally and be cryptographically secure.
+ *
+ * in: output - must point to a writable buffer of at least output_size bytes.
+ *     output_size - the number of random bytes to write to output.
+ * out: output is filled with output_size random bytes.
+ *      return 0 on success, non-zero on errors.
+ */
+extern int p256_generate_random(uint8_t * output, unsigned output_size);
+
+/*
+ * ECDH/ECDSA generate key pair
+ *
+ * [in] draws from p256_generate_random()
+ * [out] priv: on success, holds the private key, as a big-endian integer
+ * [out] pub: on success, holds the public key, as two big-endian integers
+ *
+ * return:  P256_SUCCESS on success
+ *          P256_RANDOM_FAILED on failure
+ */
+int p256_gen_keypair(uint8_t priv[32], uint8_t pub[64]);
+
+/*
+ * ECDH compute shared secret
+ *
+ * [out] secret: on success, holds the shared secret, as a big-endian integer
+ * [in] priv: our private key as a big-endian integer
+ * [in] pub: the peer's public key, as two big-endian integers
+ *
+ * return:  P256_SUCCESS on success
+ *          P256_INVALID_PRIVKEY if priv is invalid
+ *          P256_INVALID_PUBKEY if pub is invalid
+ */
+int p256_ecdh_shared_secret(uint8_t secret[32],
+                            const uint8_t priv[32], const uint8_t pub[64]);
+
+/*
+ * ECDSA sign
+ *
+ * [in] draws from p256_generate_random()
+ * [out] sig: on success, holds the signature, as two big-endian integers
+ * [in] priv: our private key as a big-endian integer
+ * [in] hash: the hash of the message to be signed
+ * [in] hlen: the size of hash in bytes
+ *
+ * return:  P256_SUCCESS on success
+ *          P256_RANDOM_FAILED on failure
+ *          P256_INVALID_PRIVKEY if priv is invalid
+ */
+int p256_ecdsa_sign(uint8_t sig[64], const uint8_t priv[32],
+                    const uint8_t *hash, size_t hlen);
+
+/*
+ * ECDSA verify
+ *
+ * [in] sig: the signature to be verified, as two big-endian integers
+ * [in] pub: the associated public key, as two big-endian integers
+ * [in] hash: the hash of the message that was signed
+ * [in] hlen: the size of hash in bytes
+ *
+ * return:  P256_SUCCESS on success - the signature was verified as valid
+ *          P256_INVALID_PUBKEY if pub is invalid
+ *          P256_INVALID_SIGNATURE if the signature was found to be invalid
+ */
+int p256_ecdsa_verify(const uint8_t sig[64], const uint8_t pub[64],
+                      const uint8_t *hash, size_t hlen);
+
+/*
+ * Public key validation
+ *
+ * Note: you never need to call this function, as all other functions always
+ * validate their input; however it's availabe if you want to validate the key
+ * without performing an operation.
+ *
+ * [in] pub: the public key, as two big-endian integers
+ *
+ * return:  P256_SUCCESS if the key is valid
+ *          P256_INVALID_PUBKEY if pub is invalid
+ */
+int p256_validate_pubkey(const uint8_t pub[64]);
+
+/*
+ * Private key validation
+ *
+ * Note: you never need to call this function, as all other functions always
+ * validate their input; however it's availabe if you want to validate the key
+ * without performing an operation.
+ *
+ * [in] priv: the private key, as a big-endian integer
+ *
+ * return:  P256_SUCCESS if the key is valid
+ *          P256_INVALID_PRIVKEY if priv is invalid
+ */
+int p256_validate_privkey(const uint8_t priv[32]);
+
+/*
+ * Compute public key from private key
+ *
+ * [out] pub: the associated public key, as two big-endian integers
+ * [in] priv: the private key, as a big-endian integer
+ *
+ * return:  P256_SUCCESS on success
+ *          P256_INVALID_PRIVKEY if priv is invalid
+ */
+int p256_public_from_private(uint8_t pub[64], const uint8_t priv[32]);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* P256_M_H */
diff --git a/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/p256-m/p256-m_driver_entrypoints.c b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/p256-m/p256-m_driver_entrypoints.c
new file mode 100644
index 00000000000..d272dcbb1e0
--- /dev/null
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/p256-m/p256-m_driver_entrypoints.c
@@ -0,0 +1,312 @@
+/*
+ *  Driver entry points for p256-m
+ */
+/*
+ *  Copyright The Mbed TLS Contributors
+ *  SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+ */
+
+#include "mbedtls/platform.h"
+#include "p256-m_driver_entrypoints.h"
+#include "p256-m/p256-m.h"
+#include "psa/crypto.h"
+#include <stddef.h>
+#include <string.h>
+#include "psa_crypto_driver_wrappers_no_static.h"
+
+#if defined(MBEDTLS_PSA_P256M_DRIVER_ENABLED)
+
+/* INFORMATION ON PSA KEY EXPORT FORMATS:
+ *
+ * PSA exports SECP256R1 keys in two formats:
+ * 1. Keypair format: 32 byte string which is just the private key (public key
+ *                    can be calculated from the private key)
+ * 2. Public Key format: A leading byte 0x04 (indicating uncompressed format),
+ *                       followed by the 64 byte public key. This results in a
+ *                       total of 65 bytes.
+ *
+ * p256-m's internal format for private keys matches PSA. Its format for public
+ * keys is only 64 bytes: the same as PSA but without the leading byte (0x04).
+ * Hence, when passing public keys from PSA to p256-m, the leading byte is
+ * removed.
+ *
+ * Shared secret and signature have the same format between PSA and p256-m.
+ */
+#define PSA_PUBKEY_SIZE         65
+#define PSA_PUBKEY_HEADER_BYTE  0x04
+#define P256_PUBKEY_SIZE        64
+#define PRIVKEY_SIZE            32
+#define SHARED_SECRET_SIZE      32
+#define SIGNATURE_SIZE          64
+
+#define CURVE_BITS              256
+
+/* Convert between p256-m and PSA error codes */
+static psa_status_t p256_to_psa_error(int ret)
+{
+    switch (ret) {
+        case P256_SUCCESS:
+            return PSA_SUCCESS;
+        case P256_INVALID_PUBKEY:
+        case P256_INVALID_PRIVKEY:
+            return PSA_ERROR_INVALID_ARGUMENT;
+        case P256_INVALID_SIGNATURE:
+            return PSA_ERROR_INVALID_SIGNATURE;
+        case P256_RANDOM_FAILED:
+        default:
+            return PSA_ERROR_GENERIC_ERROR;
+    }
+}
+
+psa_status_t p256_transparent_import_key(const psa_key_attributes_t *attributes,
+                             const uint8_t *data,
+                             size_t data_length,
+                             uint8_t *key_buffer,
+                             size_t key_buffer_size,
+                             size_t *key_buffer_length,
+                             size_t *bits)
+{
+    /* Check the key size */
+    if (*bits != 0 && *bits != CURVE_BITS) {
+        return PSA_ERROR_NOT_SUPPORTED;
+    }
+
+    /* Validate the key (and its type and size) */
+    psa_key_type_t type = psa_get_key_type(attributes);
+    if (type == PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1)) {
+        if (data_length != PSA_PUBKEY_SIZE) {
+            return *bits == 0 ? PSA_ERROR_NOT_SUPPORTED : PSA_ERROR_INVALID_ARGUMENT;
+        }
+        /* See INFORMATION ON PSA KEY EXPORT FORMATS near top of file */
+        if (p256_validate_pubkey(data + 1) != P256_SUCCESS) {
+            return PSA_ERROR_INVALID_ARGUMENT;
+        }
+    } else if (type == PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1)) {
+        if (data_length != PRIVKEY_SIZE) {
+            return *bits == 0 ? PSA_ERROR_NOT_SUPPORTED : PSA_ERROR_INVALID_ARGUMENT;
+        }
+        if (p256_validate_privkey(data) != P256_SUCCESS) {
+            return PSA_ERROR_INVALID_ARGUMENT;
+        }
+    } else {
+        return PSA_ERROR_NOT_SUPPORTED;
+    }
+    *bits = CURVE_BITS;
+
+    /* We only support the export format for input, so just copy. */
+    if (key_buffer_size < data_length) {
+        return PSA_ERROR_BUFFER_TOO_SMALL;
+    }
+    memcpy(key_buffer, data, data_length);
+    *key_buffer_length = data_length;
+
+    return PSA_SUCCESS;
+}
+
+psa_status_t p256_transparent_export_public_key(const psa_key_attributes_t *attributes,
+                                    const uint8_t *key_buffer,
+                                    size_t key_buffer_size,
+                                    uint8_t *data,
+                                    size_t data_size,
+                                    size_t *data_length)
+{
+    /* Is this the right curve? */
+    size_t bits = psa_get_key_bits(attributes);
+    psa_key_type_t type = psa_get_key_type(attributes);
+    if (bits != CURVE_BITS || type != PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1)) {
+        return PSA_ERROR_NOT_SUPPORTED;
+    }
+
+    /* Validate sizes, as p256-m expects fixed-size buffers */
+    if (key_buffer_size != PRIVKEY_SIZE) {
+        return PSA_ERROR_INVALID_ARGUMENT;
+    }
+    if (data_size < PSA_PUBKEY_SIZE) {
+        return PSA_ERROR_BUFFER_TOO_SMALL;
+    }
+
+    /* See INFORMATION ON PSA KEY EXPORT FORMATS near top of file */
+    data[0] = PSA_PUBKEY_HEADER_BYTE;
+    int ret = p256_public_from_private(data + 1, key_buffer);
+    if (ret == P256_SUCCESS) {
+        *data_length = PSA_PUBKEY_SIZE;
+    }
+
+    return p256_to_psa_error(ret);
+}
+
+psa_status_t p256_transparent_generate_key(
+    const psa_key_attributes_t *attributes,
+    uint8_t *key_buffer,
+    size_t key_buffer_size,
+    size_t *key_buffer_length)
+{
+    /* We don't use this argument, but the specification mandates the signature
+     * of driver entry-points. (void) used to avoid compiler warning. */
+    (void) attributes;
+
+    /* Validate sizes, as p256-m expects fixed-size buffers */
+    if (key_buffer_size != PRIVKEY_SIZE) {
+        return PSA_ERROR_BUFFER_TOO_SMALL;
+    }
+
+    /*
+     *  p256-m's keypair generation function outputs both public and private
+     *  keys. Allocate a buffer to which the public key will be written. The
+     *  private key will be written to key_buffer, which is passed to this
+     *  function as an argument. */
+    uint8_t public_key_buffer[P256_PUBKEY_SIZE];
+
+    int ret = p256_gen_keypair(key_buffer, public_key_buffer);
+    if (ret == P256_SUCCESS) {
+        *key_buffer_length = PRIVKEY_SIZE;
+    }
+
+    return p256_to_psa_error(ret);
+}
+
+psa_status_t p256_transparent_key_agreement(
+    const psa_key_attributes_t *attributes,
+    const uint8_t *key_buffer,
+    size_t key_buffer_size,
+    psa_algorithm_t alg,
+    const uint8_t *peer_key,
+    size_t peer_key_length,
+    uint8_t *shared_secret,
+    size_t shared_secret_size,
+    size_t *shared_secret_length)
+{
+    /* We don't use these arguments, but the specification mandates the
+     * sginature of driver entry-points. (void) used to avoid compiler
+     * warning. */
+    (void) attributes;
+    (void) alg;
+
+    /* Validate sizes, as p256-m expects fixed-size buffers */
+    if (key_buffer_size != PRIVKEY_SIZE || peer_key_length != PSA_PUBKEY_SIZE) {
+        return PSA_ERROR_INVALID_ARGUMENT;
+    }
+    if (shared_secret_size < SHARED_SECRET_SIZE) {
+        return PSA_ERROR_BUFFER_TOO_SMALL;
+    }
+
+    /* See INFORMATION ON PSA KEY EXPORT FORMATS near top of file */
+    const uint8_t *peer_key_p256m = peer_key + 1;
+    int ret = p256_ecdh_shared_secret(shared_secret, key_buffer, peer_key_p256m);
+    if (ret == P256_SUCCESS) {
+        *shared_secret_length = SHARED_SECRET_SIZE;
+    }
+
+    return p256_to_psa_error(ret);
+}
+
+psa_status_t p256_transparent_sign_hash(
+    const psa_key_attributes_t *attributes,
+    const uint8_t *key_buffer,
+    size_t key_buffer_size,
+    psa_algorithm_t alg,
+    const uint8_t *hash,
+    size_t hash_length,
+    uint8_t *signature,
+    size_t signature_size,
+    size_t *signature_length)
+{
+    /* We don't use these arguments, but the specification mandates the
+     * sginature of driver entry-points. (void) used to avoid compiler
+     * warning. */
+    (void) attributes;
+    (void) alg;
+
+    /* Validate sizes, as p256-m expects fixed-size buffers */
+    if (key_buffer_size != PRIVKEY_SIZE) {
+        return PSA_ERROR_INVALID_ARGUMENT;
+    }
+    if (signature_size < SIGNATURE_SIZE) {
+        return PSA_ERROR_BUFFER_TOO_SMALL;
+    }
+
+    int ret = p256_ecdsa_sign(signature, key_buffer, hash, hash_length);
+    if (ret == P256_SUCCESS) {
+        *signature_length = SIGNATURE_SIZE;
+    }
+
+    return p256_to_psa_error(ret);
+}
+
+/*  This function expects the key buffer to contain a PSA public key,
+ *  as exported by psa_export_public_key() */
+static psa_status_t p256_verify_hash_with_public_key(
+    const uint8_t *key_buffer,
+    size_t key_buffer_size,
+    const uint8_t *hash,
+    size_t hash_length,
+    const uint8_t *signature,
+    size_t signature_length)
+{
+    /* Validate sizes, as p256-m expects fixed-size buffers */
+    if (key_buffer_size != PSA_PUBKEY_SIZE || *key_buffer != PSA_PUBKEY_HEADER_BYTE) {
+        return PSA_ERROR_INVALID_ARGUMENT;
+    }
+    if (signature_length != SIGNATURE_SIZE) {
+        return PSA_ERROR_INVALID_SIGNATURE;
+    }
+
+    /* See INFORMATION ON PSA KEY EXPORT FORMATS near top of file */
+    const uint8_t *public_key_p256m = key_buffer + 1;
+    int ret = p256_ecdsa_verify(signature, public_key_p256m, hash, hash_length);
+
+    return p256_to_psa_error(ret);
+}
+
+psa_status_t p256_transparent_verify_hash(
+    const psa_key_attributes_t *attributes,
+    const uint8_t *key_buffer,
+    size_t key_buffer_size,
+    psa_algorithm_t alg,
+    const uint8_t *hash,
+    size_t hash_length,
+    const uint8_t *signature,
+    size_t signature_length)
+{
+    /* We don't use this argument, but the specification mandates the signature
+     * of driver entry-points. (void) used to avoid compiler warning. */
+    (void) alg;
+
+    psa_status_t status;
+    uint8_t public_key_buffer[PSA_PUBKEY_SIZE];
+    size_t public_key_buffer_size = PSA_PUBKEY_SIZE;
+
+    size_t public_key_length = PSA_PUBKEY_SIZE;
+    /* As p256-m doesn't require dynamic allocation, we want to avoid it in
+     * the entrypoint functions as well. psa_driver_wrapper_export_public_key()
+     * requires size_t*, so we use a pointer to a stack variable. */
+    size_t *public_key_length_ptr = &public_key_length;
+
+    /* The contents of key_buffer may either be the 32 byte private key
+     * (keypair format), or 0x04 followed by the 64 byte public key (public
+     * key format). To ensure the key is in the latter format, the public key
+     * is exported. */
+    status = psa_driver_wrapper_export_public_key(
+        attributes,
+        key_buffer,
+        key_buffer_size,
+        public_key_buffer,
+        public_key_buffer_size,
+        public_key_length_ptr);
+    if (status != PSA_SUCCESS) {
+        goto exit;
+    }
+
+    status = p256_verify_hash_with_public_key(
+        public_key_buffer,
+        public_key_buffer_size,
+        hash,
+        hash_length,
+        signature,
+        signature_length);
+
+exit:
+    return status;
+}
+
+#endif /* MBEDTLS_PSA_P256M_DRIVER_ENABLED */
diff --git a/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/p256-m/p256-m_driver_entrypoints.h b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/p256-m/p256-m_driver_entrypoints.h
new file mode 100644
index 00000000000..c740c4522da
--- /dev/null
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/drivers/p256-m/p256-m_driver_entrypoints.h
@@ -0,0 +1,219 @@
+/*
+ *   Driver entry points for p256-m
+ */
+/*
+ *  Copyright The Mbed TLS Contributors
+ *  SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+ */
+
+#ifndef P256M_DRIVER_ENTRYPOINTS_H
+#define P256M_DRIVER_ENTRYPOINTS_H
+
+#if defined(MBEDTLS_PSA_P256M_DRIVER_ENABLED)
+#ifndef PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT
+#define PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT
+#endif /* PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT */
+#endif /* MBEDTLS_PSA_P256M_DRIVER_ENABLED */
+
+#include "psa/crypto_types.h"
+
+/** Import SECP256R1 key.
+ *
+ * \param[in]  attributes           The attributes of the key to use for the
+ *                                  operation.
+ * \param[in]  data                 The raw key material. For private keys
+ *                                  this must be a big-endian integer of 32
+ *                                  bytes; for public key this must be an
+ *                                  uncompressed ECPoint (65 bytes).
+ * \param[in]  data_length          The size of the raw key material.
+ * \param[out] key_buffer           The buffer to contain the key data in
+ *                                  output format upon successful return.
+ * \param[in]  key_buffer_size      Size of the \p key_buffer buffer in bytes.
+ * \param[out] key_buffer_length    The length of the data written in \p
+ *                                  key_buffer in bytes.
+ * \param[out] bits                 The bitsize of the key.
+ *
+ * \retval  #PSA_SUCCESS
+ *          Success. Keypair generated and stored in buffer.
+ * \retval  #PSA_ERROR_NOT_SUPPORTED
+ *          The input is not supported by this driver (not SECP256R1).
+ * \retval  #PSA_ERROR_INVALID_ARGUMENT
+ *          The input is invalid.
+ * \retval  #PSA_ERROR_BUFFER_TOO_SMALL
+ *          \p key_buffer_size is too small.
+ */
+psa_status_t p256_transparent_import_key(const psa_key_attributes_t *attributes,
+                             const uint8_t *data,
+                             size_t data_length,
+                             uint8_t *key_buffer,
+                             size_t key_buffer_size,
+                             size_t *key_buffer_length,
+                             size_t *bits);
+
+/** Export SECP256R1 public key, from the private key.
+ *
+ * \param[in]  attributes           The attributes of the key to use for the
+ *                                  operation.
+ * \param[in]  key_buffer           The private key in the export format.
+ * \param[in]  key_buffer_size      The size of the private key in bytes.
+ * \param[out] data                 The buffer to contain the public key in
+ *                                  the export format upon successful return.
+ * \param[in]  data_size            The size of the \p data buffer in bytes.
+ * \param[out] data_length          The length written to \p data in bytes.
+ *
+ * \retval  #PSA_SUCCESS
+ *          Success. Keypair generated and stored in buffer.
+ * \retval  #PSA_ERROR_NOT_SUPPORTED
+ *          The input is not supported by this driver (not SECP256R1).
+ * \retval  #PSA_ERROR_INVALID_ARGUMENT
+ *          The input is invalid.
+ * \retval  #PSA_ERROR_BUFFER_TOO_SMALL
+ *          \p key_buffer_size is too small.
+ */
+psa_status_t p256_transparent_export_public_key(const psa_key_attributes_t *attributes,
+                                    const uint8_t *key_buffer,
+                                    size_t key_buffer_size,
+                                    uint8_t *data,
+                                    size_t data_size,
+                                    size_t *data_length);
+
+/** Generate SECP256R1 ECC Key Pair.
+ *  Interface function which calls the p256-m key generation function and
+ *  places it in the key buffer provided by the caller (Mbed TLS) in the
+ *  correct format. For a SECP256R1 curve this is the 32 bit private key.
+ *
+ * \param[in]  attributes           The attributes of the key to use for the
+ *                                  operation.
+ * \param[out]  key_buffer          The buffer to contain the key data in
+ *                                  output format upon successful return.
+ * \param[in]   key_buffer_size     Size of the \p key_buffer buffer in bytes.
+ * \param[out]  key_buffer_length   The length of the data written in \p
+ *                                  key_buffer in bytes.
+ *
+ * \retval  #PSA_SUCCESS
+ *          Success. Keypair generated and stored in buffer.
+ * \retval  #PSA_ERROR_BUFFER_TOO_SMALL
+ *          \p key_buffer_size is too small.
+ * \retval  #PSA_ERROR_GENERIC_ERROR
+ *          The internal RNG failed.
+ */
+psa_status_t p256_transparent_generate_key(
+    const psa_key_attributes_t *attributes,
+    uint8_t *key_buffer,
+    size_t key_buffer_size,
+    size_t *key_buffer_length);
+
+/** Perform raw key agreement using p256-m's ECDH implementation
+ * \param[in]  attributes           The attributes of the key to use for the
+ *                                  operation.
+ * \param[in]  key_buffer           The buffer containing the private key
+ *                                  in the format specified by PSA.
+ * \param[in]  key_buffer_size      Size of the \p key_buffer buffer in bytes.
+ * \param[in]  alg                  A key agreement algorithm that is
+ *                                  compatible with the type of the key.
+ * \param[in]  peer_key             The buffer containing the peer's public
+ *                                  key in format specified by PSA.
+ * \param[in]  peer_key_length      Size of the \p peer_key buffer in
+ *                                  bytes.
+ * \param[out] shared_secret        The buffer to which the shared secret
+ *                                  is to be written.
+ * \param[in]  shared_secret_size   Size of the \p shared_secret buffer in
+ *                                  bytes.
+ * \param[out] shared_secret_length On success, the number of bytes that
+ *                                  make up the returned shared secret.
+ * \retval  #PSA_SUCCESS
+ *          Success. Shared secret successfully calculated.
+ * \retval  #PSA_ERROR_INVALID_ARGUMENT
+ *          The input is invalid.
+ * \retval  #PSA_ERROR_BUFFER_TOO_SMALL
+ *          \p shared_secret_size is too small.
+ */
+psa_status_t p256_transparent_key_agreement(
+    const psa_key_attributes_t *attributes,
+    const uint8_t *key_buffer,
+    size_t key_buffer_size,
+    psa_algorithm_t alg,
+    const uint8_t *peer_key,
+    size_t peer_key_length,
+    uint8_t *shared_secret,
+    size_t shared_secret_size,
+    size_t *shared_secret_length);
+
+/** Sign an already-calculated hash with a private key using p256-m's ECDSA
+ *  implementation
+ * \param[in]  attributes           The attributes of the key to use for the
+ *                                  operation.
+ * \param[in]  key_buffer           The buffer containing the private key
+ *                                  in the format specified by PSA.
+ * \param[in]  key_buffer_size      Size of the \p key_buffer buffer in bytes.
+ * \param[in]  alg                  A signature algorithm that is compatible
+ *                                  with the type of the key.
+ * \param[in]  hash                 The hash to sign.
+ * \param[in]  hash_length          Size of the \p hash buffer in bytes.
+ * \param[out] signature            Buffer where signature is to be written.
+ * \param[in]  signature_size       Size of the \p signature buffer in bytes.
+ * \param[out] signature_length     On success, the number of bytes
+ *                                  that make up the returned signature value.
+ *
+ * \retval  #PSA_SUCCESS
+ *          Success. Hash was signed successfully.
+ * \retval  #PSA_ERROR_INVALID_ARGUMENT
+ *          The input is invalid.
+ * \retval  #PSA_ERROR_BUFFER_TOO_SMALL
+ *          \p signature_size is too small.
+ * \retval  #PSA_ERROR_GENERIC_ERROR
+ *          The internal RNG failed.
+ */
+psa_status_t p256_transparent_sign_hash(
+    const psa_key_attributes_t *attributes,
+    const uint8_t *key_buffer,
+    size_t key_buffer_size,
+    psa_algorithm_t alg,
+    const uint8_t *hash,
+    size_t hash_length,
+    uint8_t *signature,
+    size_t signature_size,
+    size_t *signature_length);
+
+/** Verify the signature of a hash using a SECP256R1 public key using p256-m's
+ *  ECDSA implementation.
+ *
+ * \note p256-m expects a 64 byte public key, but the contents of the key
+         buffer may be the 32 byte keypair representation or the 65 byte
+         public key representation. As a result, this function calls
+         psa_driver_wrapper_export_public_key() to ensure the public key
+         can be passed to p256-m.
+ *
+ * \param[in]  attributes       The attributes of the key to use for the
+ *                              operation.
+ *
+ * \param[in]  key_buffer       The buffer containing the key
+ *                              in the format specified by PSA.
+ * \param[in]  key_buffer_size  Size of the \p key_buffer buffer in bytes.
+ * \param[in]  alg              A signature algorithm that is compatible with
+ *                              the type of the key.
+ * \param[in]  hash             The hash whose signature is to be
+ *                              verified.
+ * \param[in]  hash_length      Size of the \p hash buffer in bytes.
+ * \param[in]  signature        Buffer containing the signature to verify.
+ * \param[in]  signature_length Size of the \p signature buffer in bytes.
+ *
+ * \retval  #PSA_SUCCESS
+ *          The signature is valid.
+ * \retval  #PSA_ERROR_INVALID_SIGNATURE
+ *          The calculation was performed successfully, but the passed
+ *          signature is not a valid signature.
+ * \retval  #PSA_ERROR_INVALID_ARGUMENT
+ *          The input is invalid.
+ */
+psa_status_t p256_transparent_verify_hash(
+    const psa_key_attributes_t *attributes,
+    const uint8_t *key_buffer,
+    size_t key_buffer_size,
+    psa_algorithm_t alg,
+    const uint8_t *hash,
+    size_t hash_length,
+    const uint8_t *signature,
+    size_t signature_length);
+
+#endif /* P256M_DRIVER_ENTRYPOINTS_H */
diff --git a/deps/LIEF/third-party/mbedtls/tf-psa-crypto/include/CMakeLists.txt b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/include/CMakeLists.txt
new file mode 100644
index 00000000000..353a9b6c5c1
--- /dev/null
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/include/CMakeLists.txt
@@ -0,0 +1,24 @@
+option(INSTALL_TF_PSA_CRYPTO_HEADERS "Install TF PSA Crypto headers." ON)
+
+if(INSTALL_TF_PSA_CRYPTO_HEADERS)
+    file(GLOB psa_headers "psa/*.h")
+    file(GLOB tf-psa-crypto_headers "tf-psa-crypto/*.h")
+    file(GLOB mbedtls_crypto_headers "../drivers/builtin/include/mbedtls/*.h" "mbedtls/*.h")
+
+    install(FILES ${psa_headers}
+        DESTINATION include/psa
+        PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ)
+
+    install(FILES ${tf-psa-crypto_headers}
+        DESTINATION include/tf-psa-crypto
+        PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ)
+
+    install(FILES ${mbedtls_crypto_headers}
+        DESTINATION include/mbedtls
+        PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ)
+endif(INSTALL_TF_PSA_CRYPTO_HEADERS)
+
+# Make includes available in an out-of-source build. ssl-opt.sh requires it.
+if (ENABLE_TESTING AND NOT ${CMAKE_CURRENT_BINARY_DIR} STREQUAL ${CMAKE_CURRENT_SOURCE_DIR})
+    tf_psa_crypto_link_to_source(psa)
+endif()
diff --git a/deps/LIEF/third-party/mbedtls/include/mbedtls/asn1.h b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/include/mbedtls/asn1.h
similarity index 89%
rename from deps/LIEF/third-party/mbedtls/include/mbedtls/asn1.h
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/include/mbedtls/asn1.h
index ff019f432a3..53bd5d207c1 100644
--- a/deps/LIEF/third-party/mbedtls/include/mbedtls/asn1.h
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/include/mbedtls/asn1.h
@@ -11,13 +11,14 @@
 #define MBEDTLS_ASN1_H
 #include "mbedtls/private_access.h"

-#include "mbedtls/build_info.h"
+#include "tf-psa-crypto/build_info.h"
 #include "mbedtls/platform_util.h"
+#include "mbedtls/compat-3-crypto.h"

 #include <stddef.h>

 #if defined(MBEDTLS_BIGNUM_C)
-#include "mbedtls/bignum.h"
+#include "mbedtls/private/bignum.h"
 #endif

 /**
@@ -43,10 +44,6 @@
 #define MBEDTLS_ERR_ASN1_LENGTH_MISMATCH                  -0x0066
 /** Data is invalid. */
 #define MBEDTLS_ERR_ASN1_INVALID_DATA                     -0x0068
-/** Memory allocation failed */
-#define MBEDTLS_ERR_ASN1_ALLOC_FAILED                     -0x006A
-/** Buffer too small when writing ASN.1 data structure. */
-#define MBEDTLS_ERR_ASN1_BUF_TOO_SMALL                    -0x006C

 /** \} name ASN1 Error codes */

@@ -58,7 +55,6 @@
  * - 0x02 -- tag indicating INTEGER
  * - 0x01 -- length in octets
  * - 0x05 -- value
- * Such sequences are typically read into \c ::mbedtls_x509_buf.
  * \{
  */
 #define MBEDTLS_ASN1_BOOLEAN                 0x01
@@ -197,8 +193,8 @@ typedef struct mbedtls_asn1_named_data {
 }
 mbedtls_asn1_named_data;

-#if defined(MBEDTLS_ASN1_PARSE_C) || defined(MBEDTLS_X509_CREATE_C) || \
-    defined(MBEDTLS_PSA_UTIL_HAVE_ECDSA)
+#if defined(MBEDTLS_ASN1_PARSE_C) || defined(MBEDTLS_ASN1_WRITE_C) || \
+    defined(PSA_HAVE_ALG_SOME_ECDSA)
 /**
  * \brief       Get the length of an ASN.1 element.
  *              Updates the pointer to immediately behind the length.
@@ -207,7 +203,7 @@ mbedtls_asn1_named_data;
  *              i.e. immediately after the tag.
  *              On successful completion, \c *p points to the first byte
  *              after the length, i.e. the first byte of the content.
- *              On error, the value of \c *p is undefined.
+ *              On error, the value of \c *p is unspecified.
  * \param end   End of data.
  * \param len   On successful completion, \c *len contains the length
  *              read from the ASN.1 input.
@@ -229,7 +225,7 @@ int mbedtls_asn1_get_len(unsigned char **p,
  * \param p     On entry, \c *p points to the start of the ASN.1 element.
  *              On successful completion, \c *p points to the first byte
  *              after the length, i.e. the first byte of the content.
- *              On error, the value of \c *p is undefined.
+ *              On error, the value of \c *p is unspecified.
  * \param end   End of data.
  * \param len   On successful completion, \c *len contains the length
  *              read from the ASN.1 input.
@@ -245,7 +241,7 @@ int mbedtls_asn1_get_len(unsigned char **p,
 int mbedtls_asn1_get_tag(unsigned char **p,
                          const unsigned char *end,
                          size_t *len, int tag);
-#endif /* MBEDTLS_ASN1_PARSE_C || MBEDTLS_X509_CREATE_C || MBEDTLS_PSA_UTIL_HAVE_ECDSA */
+#endif /* MBEDTLS_ASN1_PARSE_C || MBEDTLS_ASN1_WRITE_C || PSA_HAVE_ALG_SOME_ECDSA */

 #if defined(MBEDTLS_ASN1_PARSE_C)
 /**
@@ -255,7 +251,7 @@ int mbedtls_asn1_get_tag(unsigned char **p,
  * \param p     On entry, \c *p points to the start of the ASN.1 element.
  *              On successful completion, \c *p points to the first byte
  *              beyond the ASN.1 element.
- *              On error, the value of \c *p is undefined.
+ *              On error, the value of \c *p is unspecified.
  * \param end   End of data.
  * \param val   On success, the parsed value (\c 0 or \c 1).
  *
@@ -268,13 +264,13 @@ int mbedtls_asn1_get_bool(unsigned char **p,
                           int *val);

 /**
- * \brief       Retrieve an integer ASN.1 tag and its value.
+ * \brief       Retrieve an INTEGER ASN.1 tag and its value.
  *              Updates the pointer to immediately behind the full tag.
  *
  * \param p     On entry, \c *p points to the start of the ASN.1 element.
  *              On successful completion, \c *p points to the first byte
  *              beyond the ASN.1 element.
- *              On error, the value of \c *p is undefined.
+ *              On error, the value of \c *p is unspecified.
  * \param end   End of data.
  * \param val   On success, the parsed value.
  *
@@ -288,6 +284,30 @@ int mbedtls_asn1_get_int(unsigned char **p,
                          const unsigned char *end,
                          int *val);

+/**
+ * \brief               Parse an INTEGER in DER representation and return a pointer
+ *                      to its big-endian representation and length of the representation.
+ *                      The pointers are only valid as long as the input buffer is.
+ * \param[in,out] p     On entry, \c *p points to the start of the ASN.1 element.
+ *                      On successful completion, \c *p points to the first byte
+ *                      beyond the ASN.1 element.
+ *                      On error, the value of \c *p is unchanged.
+ * \param[in] end       End of data.
+ * \param[out] head     On success, set to point to the start of the big-endian
+ *                      representation of the INTEGER without any leading zeros.
+ *                      On failure, set to NULL.
+ * \param[out] length   On success, set to the length of the big-endian representation
+ *                      of the INTEGER, measured in bytes.
+ *
+ * \return              0 if successful.
+ * \return              An ASN.1 error code if the input does not start with
+ *                      a valid ASN.1 INTEGER in DER representation.
+ * \return              #MBEDTLS_ERR_ASN1_INVALID_DATA if the parsed value is
+ *                      negative.
+ */
+
+int mbedtls_asn1_get_integer(unsigned char **p, const unsigned char *end,
+                             unsigned char **head, size_t *length);
 /**
  * \brief       Retrieve an enumerated ASN.1 tag and its value.
  *              Updates the pointer to immediately behind the full tag.
@@ -295,7 +315,7 @@ int mbedtls_asn1_get_int(unsigned char **p,
  * \param p     On entry, \c *p points to the start of the ASN.1 element.
  *              On successful completion, \c *p points to the first byte
  *              beyond the ASN.1 element.
- *              On error, the value of \c *p is undefined.
+ *              On error, the value of \c *p is unspecified.
  * \param end   End of data.
  * \param val   On success, the parsed value.
  *
@@ -315,7 +335,7 @@ int mbedtls_asn1_get_enum(unsigned char **p,
  *
  * \param p     On entry, \c *p points to the start of the ASN.1 element.
  *              On successful completion, \c *p is equal to \p end.
- *              On error, the value of \c *p is undefined.
+ *              On error, the value of \c *p is unspecified.
  * \param end   End of data.
  * \param bs    On success, ::mbedtls_asn1_bitstring information about
  *              the parsed value.
@@ -337,7 +357,7 @@ int mbedtls_asn1_get_bitstring(unsigned char **p, const unsigned char *end,
  * \param p     On entry, \c *p points to the start of the ASN.1 element.
  *              On successful completion, \c *p points to the first byte
  *              of the content of the BIT STRING.
- *              On error, the value of \c *p is undefined.
+ *              On error, the value of \c *p is unspecified.
  * \param end   End of data.
  * \param len   On success, \c *len is the length of the content in bytes.
  *
@@ -371,7 +391,7 @@ int mbedtls_asn1_get_bitstring_null(unsigned char **p,
  *
  * \param p     On entry, \c *p points to the start of the ASN.1 element.
  *              On successful completion, \c *p is equal to \p end.
- *              On error, the value of \c *p is undefined.
+ *              On error, the value of \c *p is unspecified.
  * \param end   End of data.
  * \param cur   A ::mbedtls_asn1_sequence which this function fills.
  *              When this function returns, \c *cur is the head of a linked
@@ -394,7 +414,7 @@ int mbedtls_asn1_get_bitstring_null(unsigned char **p,
  * \return      #MBEDTLS_ERR_ASN1_UNEXPECTED_TAG if the input starts with
  *              an ASN.1 SEQUENCE in which an element has a tag that
  *              is different from \p tag.
- * \return      #MBEDTLS_ERR_ASN1_ALLOC_FAILED if a memory allocation failed.
+ * \return      #PSA_ERROR_INSUFFICIENT_MEMORY if a memory allocation failed.
  * \return      An ASN.1 error code if the input does not start with
  *              a valid ASN.1 SEQUENCE.
  */
@@ -519,29 +539,6 @@ int mbedtls_asn1_traverse_sequence_of(
               unsigned char *start, size_t len),
     void *ctx);

-#if defined(MBEDTLS_BIGNUM_C)
-/**
- * \brief       Retrieve an integer ASN.1 tag and its value.
- *              Updates the pointer to immediately behind the full tag.
- *
- * \param p     On entry, \c *p points to the start of the ASN.1 element.
- *              On successful completion, \c *p points to the first byte
- *              beyond the ASN.1 element.
- *              On error, the value of \c *p is undefined.
- * \param end   End of data.
- * \param X     On success, the parsed value.
- *
- * \return      0 if successful.
- * \return      An ASN.1 error code if the input does not start with
- *              a valid ASN.1 INTEGER.
- * \return      #MBEDTLS_ERR_ASN1_INVALID_LENGTH if the parsed value does
- *              not fit in an \c int.
- * \return      An MPI error code if the parsed value is too large.
- */
-int mbedtls_asn1_get_mpi(unsigned char **p,
-                         const unsigned char *end,
-                         mbedtls_mpi *X);
-#endif /* MBEDTLS_BIGNUM_C */

 /**
  * \brief       Retrieve an AlgorithmIdentifier ASN.1 sequence.
@@ -551,7 +548,7 @@ int mbedtls_asn1_get_mpi(unsigned char **p,
  * \param p     On entry, \c *p points to the start of the ASN.1 element.
  *              On successful completion, \c *p points to the first byte
  *              beyond the AlgorithmIdentifier element.
- *              On error, the value of \c *p is undefined.
+ *              On error, the value of \c *p is unspecified.
  * \param end   End of data.
  * \param alg   The buffer to receive the OID.
  * \param params The buffer to receive the parameters.
@@ -572,7 +569,7 @@ int mbedtls_asn1_get_alg(unsigned char **p,
  * \param p     On entry, \c *p points to the start of the ASN.1 element.
  *              On successful completion, \c *p points to the first byte
  *              beyond the AlgorithmIdentifier element.
- *              On error, the value of \c *p is undefined.
+ *              On error, the value of \c *p is unspecified.
  * \param end   End of data.
  * \param alg   The buffer to receive the OID.
  *
@@ -595,22 +592,6 @@ int mbedtls_asn1_get_alg_null(unsigned char **p,
 const mbedtls_asn1_named_data *mbedtls_asn1_find_named_data(const mbedtls_asn1_named_data *list,
                                                             const char *oid, size_t len);

-#if !defined(MBEDTLS_DEPRECATED_REMOVED)
-/**
- * \brief       Free a mbedtls_asn1_named_data entry
- *
- * \deprecated  This function is deprecated and will be removed in a
- *              future version of the library.
- *              Please use mbedtls_asn1_free_named_data_list()
- *              or mbedtls_asn1_free_named_data_list_shallow().
- *
- * \param entry The named data entry to free.
- *              This function calls mbedtls_free() on
- *              `entry->oid.p` and `entry->val.p`.
- */
-void MBEDTLS_DEPRECATED mbedtls_asn1_free_named_data(mbedtls_asn1_named_data *entry);
-#endif /* MBEDTLS_DEPRECATED_REMOVED */
-
 /**
  * \brief       Free all entries in a mbedtls_asn1_named_data list.
  *
diff --git a/deps/LIEF/third-party/mbedtls/include/mbedtls/asn1write.h b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/include/mbedtls/asn1write.h
similarity index 84%
rename from deps/LIEF/third-party/mbedtls/include/mbedtls/asn1write.h
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/include/mbedtls/asn1write.h
index 0c5a85ac27f..d5cdb76b194 100644
--- a/deps/LIEF/third-party/mbedtls/include/mbedtls/asn1write.h
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/include/mbedtls/asn1write.h
@@ -10,7 +10,7 @@
 #ifndef MBEDTLS_ASN1_WRITE_H
 #define MBEDTLS_ASN1_WRITE_H

-#include "mbedtls/build_info.h"
+#include "tf-psa-crypto/build_info.h"

 #include "mbedtls/asn1.h"

@@ -36,12 +36,12 @@
 extern "C" {
 #endif

-#if defined(MBEDTLS_ASN1_WRITE_C) || defined(MBEDTLS_X509_USE_C) || \
-    defined(MBEDTLS_PSA_UTIL_HAVE_ECDSA)
+#if defined(MBEDTLS_ASN1_WRITE_C) || defined(MBEDTLS_ASN1_PARSE_C) || \
+    defined(PSA_HAVE_ALG_SOME_ECDSA)
 /**
  * \brief           Write a length field in ASN.1 format.
  *
- * \note            This function works backwards in data buffer.
+ * \note            This function works backwards within the data buffer.
  *
  * \param p         The reference to the current position pointer.
  * \param start     The start of the buffer, for bounds-checking.
@@ -55,7 +55,7 @@ int mbedtls_asn1_write_len(unsigned char **p, const unsigned char *start,
 /**
  * \brief           Write an ASN.1 tag in ASN.1 format.
  *
- * \note            This function works backwards in data buffer.
+ * \note            This function works backwards within the data buffer.
  *
  * \param p         The reference to the current position pointer.
  * \param start     The start of the buffer, for bounds-checking.
@@ -66,13 +66,13 @@ int mbedtls_asn1_write_len(unsigned char **p, const unsigned char *start,
  */
 int mbedtls_asn1_write_tag(unsigned char **p, const unsigned char *start,
                            unsigned char tag);
-#endif /* MBEDTLS_ASN1_WRITE_C || MBEDTLS_X509_USE_C || MBEDTLS_PSA_UTIL_HAVE_ECDSA*/
+#endif /* MBEDTLS_ASN1_WRITE_C || MBEDTLS_ASN1_PARSE_C || PSA_HAVE_ALG_SOME_ECDSA*/

 #if defined(MBEDTLS_ASN1_WRITE_C)
 /**
  * \brief           Write raw buffer data.
  *
- * \note            This function works backwards in data buffer.
+ * \note            This function works backwards within the data buffer.
  *
  * \param p         The reference to the current position pointer.
  * \param start     The start of the buffer, for bounds-checking.
@@ -85,30 +85,11 @@ int mbedtls_asn1_write_tag(unsigned char **p, const unsigned char *start,
 int mbedtls_asn1_write_raw_buffer(unsigned char **p, const unsigned char *start,
                                   const unsigned char *buf, size_t size);

-#if defined(MBEDTLS_BIGNUM_C)
-/**
- * \brief           Write an arbitrary-precision number (#MBEDTLS_ASN1_INTEGER)
- *                  in ASN.1 format.
- *
- * \note            This function works backwards in data buffer.
- *
- * \param p         The reference to the current position pointer.
- * \param start     The start of the buffer, for bounds-checking.
- * \param X         The MPI to write.
- *                  It must be non-negative.
- *
- * \return          The number of bytes written to \p p on success.
- * \return          A negative \c MBEDTLS_ERR_ASN1_XXX error code on failure.
- */
-int mbedtls_asn1_write_mpi(unsigned char **p, const unsigned char *start,
-                           const mbedtls_mpi *X);
-#endif /* MBEDTLS_BIGNUM_C */
-
 /**
  * \brief           Write a NULL tag (#MBEDTLS_ASN1_NULL) with zero data
  *                  in ASN.1 format.
  *
- * \note            This function works backwards in data buffer.
+ * \note            This function works backwards within the data buffer.
  *
  * \param p         The reference to the current position pointer.
  * \param start     The start of the buffer, for bounds-checking.
@@ -122,7 +103,7 @@ int mbedtls_asn1_write_null(unsigned char **p, const unsigned char *start);
  * \brief           Write an OID tag (#MBEDTLS_ASN1_OID) and data
  *                  in ASN.1 format.
  *
- * \note            This function works backwards in data buffer.
+ * \note            This function works backwards within the data buffer.
  *
  * \param p         The reference to the current position pointer.
  * \param start     The start of the buffer, for bounds-checking.
@@ -138,7 +119,7 @@ int mbedtls_asn1_write_oid(unsigned char **p, const unsigned char *start,
 /**
  * \brief           Write an AlgorithmIdentifier sequence in ASN.1 format.
  *
- * \note            This function works backwards in data buffer.
+ * \note            This function works backwards within the data buffer.
  *
  * \param p         The reference to the current position pointer.
  * \param start     The start of the buffer, for bounds-checking.
@@ -158,7 +139,7 @@ int mbedtls_asn1_write_algorithm_identifier(unsigned char **p,
 /**
  * \brief           Write an AlgorithmIdentifier sequence in ASN.1 format.
  *
- * \note            This function works backwards in data buffer.
+ * \note            This function works backwards within the data buffer.
  *
  * \param p         The reference to the current position pointer.
  * \param start     The start of the buffer, for bounds-checking.
@@ -180,7 +161,7 @@ int mbedtls_asn1_write_algorithm_identifier_ext(unsigned char **p,
  * \brief           Write a boolean tag (#MBEDTLS_ASN1_BOOLEAN) and value
  *                  in ASN.1 format.
  *
- * \note            This function works backwards in data buffer.
+ * \note            This function works backwards within the data buffer.
  *
  * \param p         The reference to the current position pointer.
  * \param start     The start of the buffer, for bounds-checking.
@@ -196,7 +177,7 @@ int mbedtls_asn1_write_bool(unsigned char **p, const unsigned char *start,
  * \brief           Write an int tag (#MBEDTLS_ASN1_INTEGER) and value
  *                  in ASN.1 format.
  *
- * \note            This function works backwards in data buffer.
+ * \note            This function works backwards within the data buffer.
  *
  * \param p         The reference to the current position pointer.
  * \param start     The start of the buffer, for bounds-checking.
@@ -212,7 +193,7 @@ int mbedtls_asn1_write_int(unsigned char **p, const unsigned char *start, int va
  * \brief           Write an enum tag (#MBEDTLS_ASN1_ENUMERATED) and value
  *                  in ASN.1 format.
  *
- * \note            This function works backwards in data buffer.
+ * \note            This function works backwards within the data buffer.
  *
  * \param p         The reference to the current position pointer.
  * \param start     The start of the buffer, for bounds-checking.
@@ -227,7 +208,7 @@ int mbedtls_asn1_write_enum(unsigned char **p, const unsigned char *start, int v
  * \brief           Write a string in ASN.1 format using a specific
  *                  string encoding tag.

- * \note            This function works backwards in data buffer.
+ * \note            This function works backwards within the data buffer.
  *
  * \param p         The reference to the current position pointer.
  * \param start     The start of the buffer, for bounds-checking.
@@ -248,7 +229,7 @@ int mbedtls_asn1_write_tagged_string(unsigned char **p, const unsigned char *sta
  * \brief           Write a string in ASN.1 format using the PrintableString
  *                  string encoding tag (#MBEDTLS_ASN1_PRINTABLE_STRING).
  *
- * \note            This function works backwards in data buffer.
+ * \note            This function works backwards within the data buffer.
  *
  * \param p         The reference to the current position pointer.
  * \param start     The start of the buffer, for bounds-checking.
@@ -267,7 +248,7 @@ int mbedtls_asn1_write_printable_string(unsigned char **p,
  * \brief           Write a UTF8 string in ASN.1 format using the UTF8String
  *                  string encoding tag (#MBEDTLS_ASN1_UTF8_STRING).
  *
- * \note            This function works backwards in data buffer.
+ * \note            This function works backwards within the data buffer.
  *
  * \param p         The reference to the current position pointer.
  * \param start     The start of the buffer, for bounds-checking.
@@ -285,7 +266,7 @@ int mbedtls_asn1_write_utf8_string(unsigned char **p, const unsigned char *start
  * \brief           Write a string in ASN.1 format using the IA5String
  *                  string encoding tag (#MBEDTLS_ASN1_IA5_STRING).
  *
- * \note            This function works backwards in data buffer.
+ * \note            This function works backwards within the data buffer.
  *
  * \param p         The reference to the current position pointer.
  * \param start     The start of the buffer, for bounds-checking.
@@ -303,7 +284,7 @@ int mbedtls_asn1_write_ia5_string(unsigned char **p, const unsigned char *start,
  * \brief           Write a bitstring tag (#MBEDTLS_ASN1_BIT_STRING) and
  *                  value in ASN.1 format.
  *
- * \note            This function works backwards in data buffer.
+ * \note            This function works backwards within the data buffer.
  *
  * \param p         The reference to the current position pointer.
  * \param start     The start of the buffer, for bounds-checking.
@@ -342,7 +323,7 @@ int mbedtls_asn1_write_named_bitstring(unsigned char **p,
  * \brief           Write an octet string tag (#MBEDTLS_ASN1_OCTET_STRING)
  *                  and value in ASN.1 format.
  *
- * \note            This function works backwards in data buffer.
+ * \note            This function works backwards within the data buffer.
  *
  * \param p         The reference to the current position pointer.
  * \param start     The start of the buffer, for bounds-checking.
@@ -381,6 +362,32 @@ mbedtls_asn1_named_data *mbedtls_asn1_store_named_data(mbedtls_asn1_named_data *
                                                        const unsigned char *val,
                                                        size_t val_len);

+/**
+ * \brief                  Encode an integer into ASN.1 and write it to a buffer.
+ *                         Write the integer given in \p integer into the buffer
+ *                         given by \p *p and \p start in DER-encoded ASN.1
+ *                         representation.
+ *
+ * \note                   This function works backwards within the data buffer.
+ *
+ * \note                   This function is not guaranteed to work when the
+ *                         input and output buffers overlap.
+ *
+ * \param p                The reference to the current position pointer.
+ * \param start            The start of the buffer, for bounds-checking.
+ * \param integer          Pointer to a big-endian representation of an integer.
+ * \param integer_length   The number of bytes in the integer buffer.
+ *
+ * \return                 An integer number of bytes written on success.
+ * \return                 An appropriate error code on failure.
+ * \return                 On success p will be set to point to the start of
+ *                         the encoded integer.
+ */
+int mbedtls_asn1_write_integer(unsigned char **p,
+                               unsigned char *start,
+                               const unsigned char *integer,
+                               size_t integer_length);
+
 #ifdef __cplusplus
 }
 #endif
diff --git a/deps/LIEF/third-party/mbedtls/include/mbedtls/base64.h b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/include/mbedtls/base64.h
similarity index 89%
rename from deps/LIEF/third-party/mbedtls/include/mbedtls/base64.h
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/include/mbedtls/base64.h
index 8f459b74c57..737c3efa4e1 100644
--- a/deps/LIEF/third-party/mbedtls/include/mbedtls/base64.h
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/include/mbedtls/base64.h
@@ -10,12 +10,11 @@
 #ifndef MBEDTLS_BASE64_H
 #define MBEDTLS_BASE64_H

-#include "mbedtls/build_info.h"
+#include "tf-psa-crypto/build_info.h"
+#include "mbedtls/compat-3-crypto.h"

 #include <stddef.h>

-/** Output buffer too small. */
-#define MBEDTLS_ERR_BASE64_BUFFER_TOO_SMALL               -0x002A
 /** Invalid character in input. */
 #define MBEDTLS_ERR_BASE64_INVALID_CHARACTER              -0x002C

@@ -32,7 +31,7 @@ extern "C" {
  * \param src      source buffer
  * \param slen     amount of data to be encoded
  *
- * \return         0 if successful, or MBEDTLS_ERR_BASE64_BUFFER_TOO_SMALL.
+ * \return         0 if successful, or #PSA_ERROR_BUFFER_TOO_SMALL.
  *                 *olen is always updated to reflect the amount
  *                 of data that has (or would have) been written.
  *                 If that length cannot be represented, then no data is
@@ -54,7 +53,7 @@ int mbedtls_base64_encode(unsigned char *dst, size_t dlen, size_t *olen,
  * \param src      source buffer
  * \param slen     amount of data to be decoded
  *
- * \return         0 if successful, MBEDTLS_ERR_BASE64_BUFFER_TOO_SMALL, or
+ * \return         0 if successful, #PSA_ERROR_BUFFER_TOO_SMALL, or
  *                 MBEDTLS_ERR_BASE64_INVALID_CHARACTER if the input data is
  *                 not correct. *olen is always updated to reflect the amount
  *                 of data that has (or would have) been written.
diff --git a/deps/LIEF/third-party/mbedtls/tf-psa-crypto/include/mbedtls/compat-3-crypto.h b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/include/mbedtls/compat-3-crypto.h
new file mode 100644
index 00000000000..c3f290df5ad
--- /dev/null
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/include/mbedtls/compat-3-crypto.h
@@ -0,0 +1,43 @@
+/**
+ * \file compat-3-crypto.h
+ *
+ * \brief Compatibility definitions for MbedTLS 3.x code built with
+ *        MbedTLS 4.x or TF-PSA-Crypto 1.x
+ *
+ */
+/*
+ *  Copyright The Mbed TLS Contributors
+ *  SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+ */
+
+#ifndef MBEDTLS_COMPAT_3_CRYPTO_H
+#define MBEDTLS_COMPAT_3_CRYPTO_H
+
+#include "psa/crypto_values.h"
+
+/** Output buffer too small. */
+#define MBEDTLS_ERR_BASE64_BUFFER_TOO_SMALL               PSA_ERROR_BUFFER_TOO_SMALL
+/** Buffer too small when writing ASN.1 data structure. */
+#define MBEDTLS_ERR_ASN1_BUF_TOO_SMALL                    PSA_ERROR_BUFFER_TOO_SMALL
+/** Input/output buffer is too small to contain requited data */
+#define MBEDTLS_ERR_LMS_BUFFER_TOO_SMALL                  PSA_ERROR_BUFFER_TOO_SMALL
+/** The output buffer is too small. */
+#define MBEDTLS_ERR_PK_BUFFER_TOO_SMALL                   PSA_ERROR_BUFFER_TOO_SMALL
+
+/** Memory allocation failed. */
+#define MBEDTLS_ERR_PK_ALLOC_FAILED                       PSA_ERROR_INSUFFICIENT_MEMORY
+/** Failed to allocate memory. */
+#define MBEDTLS_ERR_PEM_ALLOC_FAILED                      PSA_ERROR_INSUFFICIENT_MEMORY
+/** Memory allocation failed */
+#define MBEDTLS_ERR_ASN1_ALLOC_FAILED                     PSA_ERROR_INSUFFICIENT_MEMORY
+/** LMS failed to allocate space for a private key */
+#define MBEDTLS_ERR_LMS_ALLOC_FAILED                      PSA_ERROR_INSUFFICIENT_MEMORY
+
+/** Bad input parameters to function. */
+#define MBEDTLS_ERR_PK_BAD_INPUT_DATA                     PSA_ERROR_INVALID_ARGUMENT
+/** Bad input parameters to function. */
+#define MBEDTLS_ERR_PEM_BAD_INPUT_DATA                    PSA_ERROR_INVALID_ARGUMENT
+/** Bad data has been input to an LMS function */
+#define MBEDTLS_ERR_LMS_BAD_INPUT_DATA                    PSA_ERROR_INVALID_ARGUMENT
+
+#endif /* MBEDTLS_COMPAT_3_CRYPTO_H */
diff --git a/deps/LIEF/third-party/mbedtls/include/mbedtls/constant_time.h b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/include/mbedtls/constant_time.h
similarity index 100%
rename from deps/LIEF/third-party/mbedtls/include/mbedtls/constant_time.h
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/include/mbedtls/constant_time.h
diff --git a/deps/LIEF/third-party/mbedtls/include/mbedtls/lms.h b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/include/mbedtls/lms.h
similarity index 95%
rename from deps/LIEF/third-party/mbedtls/include/mbedtls/lms.h
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/include/mbedtls/lms.h
index 2f297914be2..e5197d7db31 100644
--- a/deps/LIEF/third-party/mbedtls/include/mbedtls/lms.h
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/include/mbedtls/lms.h
@@ -19,13 +19,11 @@
 #include <stddef.h>

 #include "mbedtls/private_access.h"
-#include "mbedtls/build_info.h"
+#include "tf-psa-crypto/build_info.h"
+#include "mbedtls/compat-3-crypto.h"

-#define MBEDTLS_ERR_LMS_BAD_INPUT_DATA   -0x0011 /**< Bad data has been input to an LMS function */
 #define MBEDTLS_ERR_LMS_OUT_OF_PRIVATE_KEYS -0x0013 /**< Specified LMS key has utilised all of its private keys */
 #define MBEDTLS_ERR_LMS_VERIFY_FAILED    -0x0015 /**< LMS signature verification failed */
-#define MBEDTLS_ERR_LMS_ALLOC_FAILED     -0x0017 /**< LMS failed to allocate space for a private key */
-#define MBEDTLS_ERR_LMS_BUFFER_TOO_SMALL -0x0019 /**< Input/output buffer is too small to contain requited data */

 /* Currently only defined for SHA256, 32 is the max hash output size */
 #define MBEDTLS_LMOTS_N_HASH_LEN_MAX           (32u)
@@ -352,8 +350,6 @@ void mbedtls_lms_private_free(mbedtls_lms_private_t *ctx);
  *                           into.
  * \param type               The LMS parameter set identifier.
  * \param otstype            The LMOTS parameter set identifier.
- * \param f_rng              The RNG function to be used to generate the key ID.
- * \param p_rng              The RNG context to be passed to f_rng
  * \param seed               The seed used to deterministically generate the
  *                           key.
  * \param seed_size          The length of the seed.
@@ -364,8 +360,7 @@ void mbedtls_lms_private_free(mbedtls_lms_private_t *ctx);
 int mbedtls_lms_generate_private_key(mbedtls_lms_private_t *ctx,
                                      mbedtls_lms_algorithm_type_t type,
                                      mbedtls_lmots_algorithm_type_t otstype,
-                                     mbedtls_f_rng_t *f_rng,
-                                     void *p_rng, const unsigned char *seed,
+                                     const unsigned char *seed,
                                      size_t seed_size);

 /**
@@ -411,9 +406,6 @@ int mbedtls_lms_calculate_public_key(mbedtls_lms_public_t *ctx,
  *
  * \param ctx                The initialized LMS private context from which the
  *                           private key will be read.
- * \param f_rng              The RNG function to be used for signature
- *                           generation.
- * \param p_rng              The RNG context to be passed to f_rng
  * \param msg                The buffer from which the message will be read.
  * \param msg_size           The size of the message that will be read.
  * \param sig                The buf into which the signature will be stored.
@@ -427,8 +419,7 @@ int mbedtls_lms_calculate_public_key(mbedtls_lms_public_t *ctx,
  * \return         A non-zero error code on failure.
  */
 int mbedtls_lms_sign(mbedtls_lms_private_t *ctx,
-                     mbedtls_f_rng_t *f_rng,
-                     void *p_rng, const unsigned char *msg,
+                     const unsigned char *msg,
                      unsigned int msg_size, unsigned char *sig, size_t sig_size,
                      size_t *sig_len);
 #endif /* defined(MBEDTLS_LMS_PRIVATE) */
diff --git a/deps/LIEF/third-party/mbedtls/include/mbedtls/md.h b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/include/mbedtls/md.h
similarity index 92%
rename from deps/LIEF/third-party/mbedtls/include/mbedtls/md.h
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/include/mbedtls/md.h
index 478e9f76670..07adb218984 100644
--- a/deps/LIEF/third-party/mbedtls/include/mbedtls/md.h
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/include/mbedtls/md.h
@@ -17,17 +17,20 @@

 #include <stddef.h>

-#include "mbedtls/build_info.h"
+#include "tf-psa-crypto/build_info.h"
 #include "mbedtls/platform_util.h"

 /** The selected feature is not available. */
 #define MBEDTLS_ERR_MD_FEATURE_UNAVAILABLE                -0x5080
 /** Bad input parameters to function. */
-#define MBEDTLS_ERR_MD_BAD_INPUT_DATA                     -0x5100
+#define MBEDTLS_ERR_MD_BAD_INPUT_DATA                     PSA_ERROR_INVALID_ARGUMENT
 /** Failed to allocate memory. */
-#define MBEDTLS_ERR_MD_ALLOC_FAILED                       -0x5180
+#define MBEDTLS_ERR_MD_ALLOC_FAILED                       PSA_ERROR_INSUFFICIENT_MEMORY
+
+#if defined(MBEDTLS_DECLARE_PRIVATE_IDENTIFIERS)
 /** Opening or reading of file failed. */
 #define MBEDTLS_ERR_MD_FILE_IO_ERROR                      -0x5200
+#endif

 #ifdef __cplusplus
 extern "C" {
@@ -67,46 +70,31 @@ typedef enum {
  * and legacy, then assume the buffer's size is PSA_HASH_MAX_SIZE in another
  * part of the code based on PSA.
  */
-#if defined(MBEDTLS_MD_CAN_SHA512) || defined(MBEDTLS_MD_CAN_SHA3_512)
+#if defined(PSA_WANT_ALG_SHA_512) || defined(PSA_WANT_ALG_SHA3_512)
 #define MBEDTLS_MD_MAX_SIZE         64  /* longest known is SHA512 */
-#elif defined(MBEDTLS_MD_CAN_SHA384) || defined(MBEDTLS_MD_CAN_SHA3_384)
+#elif defined(PSA_WANT_ALG_SHA_384) || defined(PSA_WANT_ALG_SHA3_384)
 #define MBEDTLS_MD_MAX_SIZE         48  /* longest known is SHA384 */
-#elif defined(MBEDTLS_MD_CAN_SHA256) || defined(MBEDTLS_MD_CAN_SHA3_256)
+#elif defined(PSA_WANT_ALG_SHA_256) || defined(PSA_WANT_ALG_SHA3_256)
 #define MBEDTLS_MD_MAX_SIZE         32  /* longest known is SHA256 */
-#elif defined(MBEDTLS_MD_CAN_SHA224) || defined(MBEDTLS_MD_CAN_SHA3_224)
+#elif defined(PSA_WANT_ALG_SHA_224) || defined(PSA_WANT_ALG_SHA3_224)
 #define MBEDTLS_MD_MAX_SIZE         28  /* longest known is SHA224 */
 #else
 #define MBEDTLS_MD_MAX_SIZE         20  /* longest known is SHA1 or RIPE MD-160
                                            or smaller (MD5 and earlier) */
 #endif

-#if defined(MBEDTLS_MD_CAN_SHA3_224)
-#define MBEDTLS_MD_MAX_BLOCK_SIZE         144 /* the longest known is SHA3-224 */
-#elif defined(MBEDTLS_MD_CAN_SHA3_256)
-#define MBEDTLS_MD_MAX_BLOCK_SIZE         136
-#elif defined(MBEDTLS_MD_CAN_SHA512) || defined(MBEDTLS_MD_CAN_SHA384)
-#define MBEDTLS_MD_MAX_BLOCK_SIZE         128
-#elif defined(MBEDTLS_MD_CAN_SHA3_384)
-#define MBEDTLS_MD_MAX_BLOCK_SIZE         104
-#elif defined(MBEDTLS_MD_CAN_SHA3_512)
-#define MBEDTLS_MD_MAX_BLOCK_SIZE         72
-#else
-#define MBEDTLS_MD_MAX_BLOCK_SIZE         64
-#endif
-
 /**
  * Opaque struct.
  *
- * Constructed using either #mbedtls_md_info_from_string or
- * #mbedtls_md_info_from_type.
+ * Constructed using #mbedtls_md_info_from_type.
  *
- * Fields can be accessed with #mbedtls_md_get_size,
- * #mbedtls_md_get_type and #mbedtls_md_get_name.
+ * Fields can be accessed with #mbedtls_md_get_size
+ * and #mbedtls_md_get_type.
  */
 /* Defined internally in library/md_wrap.h. */
 typedef struct mbedtls_md_info_t mbedtls_md_info_t;

-/**
+/*
  * Used internally to indicate whether a context uses legacy or PSA.
  *
  * Internal use only.
@@ -187,6 +175,9 @@ void mbedtls_md_free(mbedtls_md_context_t *ctx);
  *                  to use.
  * \param hmac      Defines if HMAC is used. 0: HMAC is not used (saves some memory),
  *                  or non-zero: HMAC is used with this context.
+ * \note            From TF-PSA-Crypto 1.0 and Mbed TLS 4.0 onwards, \p hmac MUST be
+ *                  set to 0. HMAC operations are no longer supported via MD and
+ *                  may only be performed via the psa_mac_ API.
  *
  * \return          \c 0 on success.
  * \return          #MBEDTLS_ERR_MD_BAD_INPUT_DATA on parameter-verification
@@ -337,6 +328,25 @@ MBEDTLS_CHECK_RETURN_TYPICAL
 int mbedtls_md(const mbedtls_md_info_t *md_info, const unsigned char *input, size_t ilen,
                unsigned char *output);

+#if defined(MBEDTLS_DECLARE_PRIVATE_IDENTIFIERS)
+
+/**
+ * \brief           This function allocates internal structures for HMAC
+ *                  operations.
+ *
+ *                  It should be called after mbedtls_md_setup(). Makes it necessary
+ *                  to call mbedtls_md_free() later.
+ *
+ * \param ctx       The context to set up.
+ * \param md_info   The information structure of the message-digest algorithm
+ *                  to use.
+ *
+ * \return          \c 0 on success.
+ * \return          #MBEDTLS_ERR_MD_ALLOC_FAILED on memory-allocation failure.
+ */
+MBEDTLS_CHECK_RETURN_TYPICAL
+int mbedtls_md_hmac_setup(mbedtls_md_context_t *ctx, const mbedtls_md_info_t *md_info);
+
 /**
  * \brief           This function returns the list of digests supported by the
  *                  generic digest module.
@@ -519,6 +529,8 @@ int mbedtls_md_hmac(const mbedtls_md_info_t *md_info, const unsigned char *key,
                     const unsigned char *input, size_t ilen,
                     unsigned char *output);

+#endif /* MBEDTLS_DECLARE_PRIVATE_IDENTIFIERS */
+
 #ifdef __cplusplus
 }
 #endif
diff --git a/deps/LIEF/third-party/mbedtls/include/mbedtls/memory_buffer_alloc.h b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/include/mbedtls/memory_buffer_alloc.h
similarity index 99%
rename from deps/LIEF/third-party/mbedtls/include/mbedtls/memory_buffer_alloc.h
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/include/mbedtls/memory_buffer_alloc.h
index b527d9b6650..fa5ebe2731e 100644
--- a/deps/LIEF/third-party/mbedtls/include/mbedtls/memory_buffer_alloc.h
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/include/mbedtls/memory_buffer_alloc.h
@@ -10,7 +10,7 @@
 #ifndef MBEDTLS_MEMORY_BUFFER_ALLOC_H
 #define MBEDTLS_MEMORY_BUFFER_ALLOC_H

-#include "mbedtls/build_info.h"
+#include "tf-psa-crypto/build_info.h"

 #include <stddef.h>

diff --git a/deps/LIEF/third-party/mbedtls/tf-psa-crypto/include/mbedtls/nist_kw.h b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/include/mbedtls/nist_kw.h
new file mode 100644
index 00000000000..eb919ce18f4
--- /dev/null
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/include/mbedtls/nist_kw.h
@@ -0,0 +1,106 @@
+/**
+ * \file nist_kw.h
+ *
+ * \brief This file provides an API for key wrapping (KW) and key wrapping with
+ *        padding (KWP) as defined in NIST SP 800-38F.
+ *        https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-38F.pdf
+ *
+ *        Key wrapping specifies a deterministic authenticated-encryption mode
+ *        of operation, according to <em>NIST SP 800-38F: Recommendation for
+ *        Block Cipher Modes of Operation: Methods for Key Wrapping</em>. Its
+ *        purpose is to protect cryptographic keys.
+ *
+ *        Its equivalent is RFC 3394 for KW, and RFC 5649 for KWP.
+ *        https://tools.ietf.org/html/rfc3394
+ *        https://tools.ietf.org/html/rfc5649
+ *
+ */
+/*
+ *  Copyright The Mbed TLS Contributors
+ *  SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+ */
+
+#ifndef MBEDTLS_NIST_KW_H
+#define MBEDTLS_NIST_KW_H
+#include "mbedtls/private_access.h"
+
+#include "tf-psa-crypto/build_info.h"
+#include "psa/crypto_types.h"
+#include "psa/crypto_values.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef enum {
+    MBEDTLS_KW_MODE_KW = 0,
+    MBEDTLS_KW_MODE_KWP = 1
+} mbedtls_nist_kw_mode_t;
+
+/**
+ * \brief                    This function encrypts a buffer using key wrapping.
+ *
+ * \param key                The key wrapping PSA key ID to use for encryption. The key should have the following attributes:
+ *                               - type: #PSA_KEY_TYPE_AES
+ *                               - algorithm: #PSA_ALG_ECB_NO_PADDING
+ *                               - usage flag: #PSA_KEY_USAGE_ENCRYPT + other flags if required by the application.
+ * \param mode               The key wrapping mode to use (#MBEDTLS_KW_MODE_KW or #MBEDTLS_KW_MODE_KWP)
+ * \param input              The buffer holding the input data.
+ * \param input_length       The length of the input data in Bytes.
+ *                           The input uses units of 8 Bytes called semiblocks.
+ *                           <ul><li>For KW mode: a multiple of 8 bytes between 16 and 2^57-8 inclusive. </li>
+ *                           <li>For KWP mode: any length between 1 and 2^32-1 inclusive.</li></ul>
+ * \param[out] output        The buffer holding the output data.
+ *                           <ul><li>For KW mode: Must be at least 8 bytes larger than \p in_len.</li>
+ *                           <li>For KWP mode: Must be at least 8 bytes larger rounded up to a multiple of
+ *                           8 bytes for KWP (15 bytes at most).</li></ul>
+ * \param output_size        The capacity of the output buffer. \c 0 on failure.
+ * \param[out] output_length On success, the number of bytes written to the output buffer. \c 0 on failure.
+ *
+ * \return                   \c 0 on success.
+ * \return                   #PSA_ERROR_INVALID_ARGUMENT for invalid input length.
+ * \return                   Another error code on failure of the underlying cipher.
+ */
+psa_status_t mbedtls_nist_kw_wrap(mbedtls_svc_key_id_t key,
+                                  mbedtls_nist_kw_mode_t mode,
+                                  const unsigned char *input, size_t input_length,
+                                  unsigned char *output, size_t output_size, size_t *output_length);
+
+/**
+ * \brief                    This function decrypts a buffer using key wrapping.
+ *
+ * \param key                The key wrapping PSA key ID to use for encryption. The key should have the following attributes:
+ *                               - type: #PSA_KEY_TYPE_AES
+ *                               - algorithm: #PSA_ALG_ECB_NO_PADDING
+ *                               - usage flag: #PSA_KEY_USAGE_DECRYPT + other flags if required by the application.
+ * \param mode               The key wrapping mode to use (#MBEDTLS_KW_MODE_KW or #MBEDTLS_KW_MODE_KWP)
+ * \param input              The buffer holding the input data.
+ * \param input_length       The length of the input data in Bytes.
+ *                           The input uses units of 8 Bytes called semiblocks.
+ *                           The input must be a multiple of semiblocks.
+ *                           <ul><li>For KW mode: a multiple of 8 bytes between 24 and 2^57 inclusive. </li>
+ *                           <li>For KWP mode: a multiple of 8 bytes between 16 and 2^32 inclusive.</li></ul>
+ * \param[out] output        The buffer holding the output data.
+ *                           The output buffer's minimal length is 8 bytes shorter than \p in_len.
+ * \param output_size    The capacity of the output buffer.
+ * \param[out] output_length The number of bytes written to the output buffer. \c 0 on failure.
+ *                           For KWP mode, the length could be up to 15 bytes shorter than \p in_len,
+ *                           depending on how much padding was added to the data.
+ *
+ * \return                   \c 0 on success.
+ * \return                   #PSA_ERROR_INVALID_ARGUMENT for invalid input length.
+ * \return                   #PSA_ERROR_INVALID_SIGNATURE for invalid ciphertext.
+ * \return                   Another error code on failure of the underlying cipher.
+ */
+psa_status_t mbedtls_nist_kw_unwrap(mbedtls_svc_key_id_t key,
+                                    mbedtls_nist_kw_mode_t mode,
+                                    const unsigned char *input, size_t input_length,
+                                    unsigned char *output, size_t output_size,
+                                    size_t *output_length);
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* MBEDTLS_NIST_KW_H */
diff --git a/deps/LIEF/third-party/mbedtls/include/mbedtls/pem.h b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/include/mbedtls/pem.h
similarity index 92%
rename from deps/LIEF/third-party/mbedtls/include/mbedtls/pem.h
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/include/mbedtls/pem.h
index 3c6a28d98d9..0664087a13a 100644
--- a/deps/LIEF/third-party/mbedtls/include/mbedtls/pem.h
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/include/mbedtls/pem.h
@@ -11,7 +11,8 @@
 #define MBEDTLS_PEM_H
 #include "mbedtls/private_access.h"

-#include "mbedtls/build_info.h"
+#include "tf-psa-crypto/build_info.h"
+#include "mbedtls/compat-3-crypto.h"

 #include <stddef.h>

@@ -25,8 +26,6 @@
 #define MBEDTLS_ERR_PEM_NO_HEADER_FOOTER_PRESENT          -0x1080
 /** PEM string is not as expected. */
 #define MBEDTLS_ERR_PEM_INVALID_DATA                      -0x1100
-/** Failed to allocate memory. */
-#define MBEDTLS_ERR_PEM_ALLOC_FAILED                      -0x1180
 /** RSA IV is not in hex-format. */
 #define MBEDTLS_ERR_PEM_INVALID_ENC_IV                    -0x1200
 /** Unsupported key encryption algorithm. */
@@ -37,8 +36,6 @@
 #define MBEDTLS_ERR_PEM_PASSWORD_MISMATCH                 -0x1380
 /** Unavailable feature, e.g. hashing/encryption combination. */
 #define MBEDTLS_ERR_PEM_FEATURE_UNAVAILABLE               -0x1400
-/** Bad input parameters to function. */
-#define MBEDTLS_ERR_PEM_BAD_INPUT_DATA                    -0x1480
 /** \} name PEM Error codes */

 #ifdef __cplusplus
@@ -75,8 +72,8 @@ void mbedtls_pem_init(mbedtls_pem_context *ctx);
  * \param pwdlen    length of password
  * \param use_len   destination for total length used from data buffer. It is
  *                  set after header is correctly read, so unless you get
- *                  MBEDTLS_ERR_PEM_BAD_INPUT_DATA or
- *                  MBEDTLS_ERR_PEM_NO_HEADER_FOOTER_PRESENT, use_len is
+ *                  #PSA_ERROR_INVALID_ARGUMENT or
+ *                  #MBEDTLS_ERR_PEM_NO_HEADER_FOOTER_PRESENT, use_len is
  *                  the length to skip.
  *
  * \note            Attempts to check password correctness by verifying if
@@ -143,7 +140,7 @@ void mbedtls_pem_free(mbedtls_pem_context *ctx);
  *                  and \p buf buffers.
  *
  * \return          \c 0 on success.
- * \return          #MBEDTLS_ERR_BASE64_BUFFER_TOO_SMALL if \p buf isn't large
+ * \return          #PSA_ERROR_BUFFER_TOO_SMALL if \p buf isn't large
  *                  enough to hold the PEM buffer. In  this case, `*olen` holds
  *                  the required minimum size of \p buf.
  * \return          Another PEM or BASE64 error code on other kinds of failure.
diff --git a/deps/LIEF/third-party/mbedtls/tf-psa-crypto/include/mbedtls/pk.h b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/include/mbedtls/pk.h
new file mode 100644
index 00000000000..8074346f123
--- /dev/null
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/include/mbedtls/pk.h
@@ -0,0 +1,898 @@
+/**
+ * \file pk.h
+ *
+ * \brief Public Key abstraction layer
+ */
+/*
+ *  Copyright The Mbed TLS Contributors
+ *  SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+ */
+
+#ifndef MBEDTLS_PK_H
+#define MBEDTLS_PK_H
+#define MBEDTLS_PK_HAVE_PRIVATE_HEADER
+
+#include "mbedtls/private_access.h"
+
+#include "tf-psa-crypto/build_info.h"
+#include "mbedtls/compat-3-crypto.h"
+
+#include "mbedtls/md.h"
+
+#if defined(MBEDTLS_PSA_CRYPTO_CLIENT)
+#include "psa/crypto.h"
+#endif
+
+/** Type mismatch, eg attempt to do ECDSA with an RSA key */
+#define MBEDTLS_ERR_PK_TYPE_MISMATCH       -0x3F00
+/** Read/write of file failed. */
+#define MBEDTLS_ERR_PK_FILE_IO_ERROR       -0x3E00
+/** Unsupported key version */
+#define MBEDTLS_ERR_PK_KEY_INVALID_VERSION -0x3D80
+/** Invalid key tag or value. */
+#define MBEDTLS_ERR_PK_KEY_INVALID_FORMAT  -0x3D00
+/** Key algorithm is unsupported (only RSA and EC are supported). */
+#define MBEDTLS_ERR_PK_UNKNOWN_PK_ALG      -0x3C80
+/** Private key password can't be empty. */
+#define MBEDTLS_ERR_PK_PASSWORD_REQUIRED   -0x3C00
+/** Given private key password does not allow for correct decryption. */
+#define MBEDTLS_ERR_PK_PASSWORD_MISMATCH   -0x3B80
+/** The pubkey tag or value is invalid (only RSA and EC are supported). */
+#define MBEDTLS_ERR_PK_INVALID_PUBKEY      -0x3B00
+/** The algorithm tag or value is invalid. */
+#define MBEDTLS_ERR_PK_INVALID_ALG         -0x3A80
+/** Elliptic curve is unsupported (only NIST curves are supported). */
+#define MBEDTLS_ERR_PK_UNKNOWN_NAMED_CURVE -0x3A00
+/** Unavailable feature, e.g. RSA disabled for RSA key. */
+#define MBEDTLS_ERR_PK_FEATURE_UNAVAILABLE -0x3980
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef enum {
+    MBEDTLS_PK_SIGALG_NONE = 0,
+    MBEDTLS_PK_SIGALG_RSA_PKCS1V15, // PSA_ALG_RSA_PKCS1V15_SIGN
+    MBEDTLS_PK_SIGALG_RSA_PSS,      // PSA_ALG_RSA_PSS_ANY_SALT
+    MBEDTLS_PK_SIGALG_ECDSA,        // MBEDTLS_PK_ALG_ECDSA
+} mbedtls_pk_sigalg_t;
+
+/**
+ * \brief   Maximum size of a signature made by mbedtls_pk_sign() and other
+ *          signature functions.
+ */
+/* We need to set MBEDTLS_PK_SIGNATURE_MAX_SIZE to the maximum signature
+ * size among the supported signature types. Do it by starting at 0,
+ * then incrementally increasing to be large enough for each supported
+ * signature mechanism.
+ *
+ * The resulting value can be 0, for example if MBEDTLS_ECDH_C is enabled
+ * (which allows the pk module to be included) but neither MBEDTLS_ECDSA_C
+ * nor MBEDTLS_RSA_C nor any PSA signature mechanism (PSA).
+ */
+#define MBEDTLS_PK_SIGNATURE_MAX_SIZE 0
+
+#if defined(MBEDTLS_RSA_C) && \
+    MBEDTLS_MPI_MAX_SIZE > MBEDTLS_PK_SIGNATURE_MAX_SIZE
+/* For RSA, the signature can be as large as the bignum module allows.*/
+#undef MBEDTLS_PK_SIGNATURE_MAX_SIZE
+#define MBEDTLS_PK_SIGNATURE_MAX_SIZE MBEDTLS_MPI_MAX_SIZE
+#endif
+
+#if defined(MBEDTLS_ECDSA_C) &&                                 \
+    MBEDTLS_ECDSA_MAX_LEN > MBEDTLS_PK_SIGNATURE_MAX_SIZE
+/* For ECDSA, the ecdsa module exports a constant for the maximum
+ * signature size. */
+#undef MBEDTLS_PK_SIGNATURE_MAX_SIZE
+#define MBEDTLS_PK_SIGNATURE_MAX_SIZE MBEDTLS_ECDSA_MAX_LEN
+#endif
+
+#if PSA_SIGNATURE_MAX_SIZE > MBEDTLS_PK_SIGNATURE_MAX_SIZE
+/* PSA_SIGNATURE_MAX_SIZE is the maximum size of a signature made
+ * through the PSA API in the PSA representation. */
+#undef MBEDTLS_PK_SIGNATURE_MAX_SIZE
+#define MBEDTLS_PK_SIGNATURE_MAX_SIZE PSA_SIGNATURE_MAX_SIZE
+#endif
+
+#if PSA_VENDOR_ECDSA_SIGNATURE_MAX_SIZE + 11 > MBEDTLS_PK_SIGNATURE_MAX_SIZE
+/* The Mbed TLS representation is different for ECDSA signatures:
+ * PSA uses the raw concatenation of r and s,
+ * whereas Mbed TLS uses the ASN.1 representation (SEQUENCE of two INTEGERs).
+ * Add the overhead of ASN.1: up to (1+2) + 2 * (1+2+1) for the
+ * types, lengths (represented by up to 2 bytes), and potential leading
+ * zeros of the INTEGERs and the SEQUENCE. */
+#undef MBEDTLS_PK_SIGNATURE_MAX_SIZE
+#define MBEDTLS_PK_SIGNATURE_MAX_SIZE (PSA_VENDOR_ECDSA_SIGNATURE_MAX_SIZE + 11)
+#endif
+
+/* Keep this symbol for backward compatibility. There is code in the framework
+ * which depends on this. Once 3.6 LTS branch will reach end-of-life framework's
+ * code can be adjusted and this define removed. */
+#define MBEDTLS_PK_USE_PSA_EC_DATA
+
+/* This is identical to MBEDTLS_PK_USE_PSA_EC_DATA above, but for RSA keys.
+ * The main reason for having it is that framework code is shared between
+ * the develoment branch and the 3.6 LTS one and we need a way to tell from which
+ * of the two we're building.
+ * This symbol is not used in builtin driver and tests and it can be removed
+ * at the same time as MBEDTLS_PK_USE_PSA_EC_DATA. */
+#define MBEDTLS_PK_USE_PSA_RSA_DATA
+
+/* Opaque internal type */
+typedef struct mbedtls_pk_info_t mbedtls_pk_info_t;
+
+#define MBEDTLS_PK_MAX_EC_PUBKEY_RAW_LEN \
+    PSA_KEY_EXPORT_ECC_PUBLIC_KEY_MAX_SIZE(PSA_VENDOR_ECC_MAX_CURVE_BITS)
+
+#define MBEDTLS_PK_MAX_RSA_PUBKEY_RAW_LEN \
+    PSA_KEY_EXPORT_RSA_PUBLIC_KEY_MAX_SIZE(PSA_VENDOR_RSA_MAX_KEY_BITS)
+
+#define MBEDTLS_PK_MAX_PUBKEY_RAW_LEN \
+    (MBEDTLS_PK_MAX_EC_PUBKEY_RAW_LEN > MBEDTLS_PK_MAX_RSA_PUBKEY_RAW_LEN) ? \
+    MBEDTLS_PK_MAX_EC_PUBKEY_RAW_LEN : MBEDTLS_PK_MAX_RSA_PUBKEY_RAW_LEN
+
+typedef enum {
+    MBEDTLS_PK_RSA_PKCS_V15 = 0,
+    MBEDTLS_PK_RSA_PKCS_V21,
+} mbedtls_pk_rsa_padding_t;
+
+/**
+ * \brief           Public key container
+ */
+typedef struct mbedtls_pk_context {
+    /* Public key information. */
+    const mbedtls_pk_info_t *MBEDTLS_PRIVATE(pk_info);
+    /* Previously: underlying public key context.
+     * Now unused (by public functions at least). */
+    void *MBEDTLS_PRIVATE(pk_ctx);
+
+    /* The following field is used to store the ID of a private key for:
+     * - EC keys (MBEDTLS_PK_ECKEY, MBEDTLS_PK_ECKEY_DH, MBEDTLS_PK_ECDSA)
+     * - Wrapped keys (EC or RSA).
+     *
+     * priv_id = MBEDTLS_SVC_KEY_ID_INIT when PK context wraps only the public
+     * key.
+     *
+     * Other keys still use the pk_ctx to store their own context. */
+    mbedtls_svc_key_id_t MBEDTLS_PRIVATE(priv_id);
+
+#if defined(PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY) || defined(PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY)
+    /* Public EC or RSA key in raw format, where raw here means the format returned
+     * by psa_export_public_key(). */
+    uint8_t MBEDTLS_PRIVATE(pub_raw)[MBEDTLS_PK_MAX_PUBKEY_RAW_LEN];
+
+    /* Lenght of the raw key above in bytes. */
+    size_t MBEDTLS_PRIVATE(pub_raw_len);
+
+    /* Bits of the private/public key. */
+    size_t MBEDTLS_PRIVATE(bits);
+#endif /* PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY || PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY */
+
+#if defined(PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY)
+    /* EC family. Only applies to EC keys. */
+    psa_ecc_family_t MBEDTLS_PRIVATE(ec_family);
+#endif /* PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY */
+
+#if defined(PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY)
+    /* Padding associated to the RSA key. It only affects RSA public key since
+     * the private one is imported into PSA with v1.5 as main algorithm and
+     * v2.1 as enrollment algorithm. */
+    mbedtls_pk_rsa_padding_t MBEDTLS_PRIVATE(rsa_padding);
+
+    /* Hash algorithm to be used with RSA public key. */
+    psa_algorithm_t MBEDTLS_PRIVATE(rsa_hash_alg);
+#endif /* PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY */
+} mbedtls_pk_context;
+
+#if defined(MBEDTLS_ECP_RESTARTABLE)
+/**
+ * \brief           Context for resuming operations
+ */
+typedef struct {
+    const mbedtls_pk_info_t *MBEDTLS_PRIVATE(pk_info);    /* Public key information         */
+    void *MBEDTLS_PRIVATE(rs_ctx);                        /* Underlying restart context     */
+} mbedtls_pk_restart_ctx;
+
+#else /* MBEDTLS_ECP_RESTARTABLE */
+/* Now we can declare functions that take a pointer to that */
+typedef void mbedtls_pk_restart_ctx;
+#endif /* MBEDTLS_ECP_RESTARTABLE */
+
+/**
+ * This helper exposes which ECDSA variant the PK module uses by default:
+ * this is deterministic ECDSA if available, or randomized otherwise.
+ *
+ * \warning This default algorithm selection might change in the future.
+ */
+#if defined(PSA_WANT_ALG_DETERMINISTIC_ECDSA)
+#define MBEDTLS_PK_ALG_ECDSA(hash_alg) PSA_ALG_DETERMINISTIC_ECDSA(hash_alg)
+#else
+#define MBEDTLS_PK_ALG_ECDSA(hash_alg) PSA_ALG_ECDSA(hash_alg)
+#endif
+
+/**
+ * \brief           Initialize a #mbedtls_pk_context (as empty).
+ *
+ *                  After this, you want to populate the context using one of the
+ *                  following functions:
+ *                  - \c mbedtls_pk_wrap_psa()
+ *                  - \c mbedtls_pk_copy_from_psa()
+ *                  - \c mbedtls_pk_copy_public_from_psa()
+ *                  - \c mbedtls_pk_parse_key()
+ *                  - \c mbedtls_pk_parse_public_key()
+ *                  - \c mbedtls_pk_parse_keyfile()
+ *                  - \c mbedtls_pk_parse_public_keyfile()
+ *
+ * \param ctx       The context to initialize.
+ *                  This must not be \c NULL.
+ */
+void mbedtls_pk_init(mbedtls_pk_context *ctx);
+
+/**
+ * \brief           Empty a #mbedtls_pk_context.
+ *                  After this, the context can be re-used as if it had been
+ *                  freshly initialized.
+ *
+ * \param ctx       The context to clear. It must have been initialized.
+ *                  If this is \c NULL, this function does nothing.
+ *
+ * \note            For contexts that have been populated with
+ *                  mbedtls_pk_wrap_psa(), this does not free the underlying
+ *                  PSA key and you still need to call psa_destroy_key()
+ *                  independently if you want to destroy that key.
+ */
+void mbedtls_pk_free(mbedtls_pk_context *ctx);
+
+#if defined(MBEDTLS_ECP_RESTARTABLE)
+/**
+ * \brief           Initialize a restart context
+ *
+ * \param ctx       The context to initialize.
+ *                  This must not be \c NULL.
+ */
+void mbedtls_pk_restart_init(mbedtls_pk_restart_ctx *ctx);
+
+/**
+ * \brief           Free the components of a restart context
+ *
+ * \param ctx       The context to clear. It must have been initialized.
+ *                  If this is \c NULL, this function does nothing.
+ */
+void mbedtls_pk_restart_free(mbedtls_pk_restart_ctx *ctx);
+#endif /* MBEDTLS_ECP_RESTARTABLE */
+
+/**
+ * \brief Populate a PK context by wrapping a PSA key pair.
+ *
+ * The PSA key must be an EC or RSA key pair (FFDH is not suported in PK).
+ *
+ * The resulting context can only perform operations that are allowed by the
+ * key's policy. Additionally, it currently has the following limitations:
+ * - restartable operations can't be used;
+ * - for RSA keys, signature verification is not supported, and neither is use
+ *   of \c mbedtls_pk_check_pair().
+ *
+ * \warning The PSA wrapped key must remain valid as long as the wrapping PK
+ *          context is in use, that is at least between the point this function
+ *          is called and the point mbedtls_pk_free() is called on this context.
+ *
+ * \param ctx The context to populate. It must be empty.
+ * \param key The PSA key to wrap, which must hold an ECC or RSA key pair.
+ *
+ * \return    \c 0 on success.
+ * \return    #PSA_ERROR_INVALID_ARGUMENT on invalid input (context already
+ *            used, invalid key identifier).
+ * \return    #MBEDTLS_ERR_PK_FEATURE_UNAVAILABLE if the key is not an ECC or
+ *            RSA key pair.
+ * \return    #PSA_ERROR_INSUFFICIENT_MEMORY on allocation failure.
+ */
+int mbedtls_pk_wrap_psa(mbedtls_pk_context *ctx,
+                        const mbedtls_svc_key_id_t key);
+
+/**
+ * \brief           Get the size in bits of the underlying key
+ *
+ * \param ctx       The context to query. It must have been populated.
+ *
+ * \return          Key size in bits, or 0 on error
+ */
+size_t mbedtls_pk_get_bitlen(const mbedtls_pk_context *ctx);
+
+/**
+ * \brief           Tell if the key wrapped in the PK context is able to perform
+ *                  the \p usage operation using the \p alg algorithm.
+ *
+ *                  The operation may be a PK function, a PSA operation on
+ *                  the underlying PSA key if the PK object wraps a PSA key,
+ *                  or a PSA operation on a key obtained with
+ *                  mbedtls_pk_import_into_psa().
+ *
+ * \note            As of TF-PSA-Crypto 1.0.0, this function returns \c 0
+ *                  if the key type and policy are suitable for the
+ *                  requested algorithm and usage, even if the key would
+ *                  not work for some other reason, for example an RSA
+ *                  key that is too small for OAEP with the specified hash.
+ *                  This behavior may change without notice in future
+ *                  versions of the library.
+ *
+ * \param pk        The context to query. It must have been populated.
+ * \param alg       PSA algorithm to check against.
+ *                  Allowed values are:
+ *                  - #PSA_ALG_RSA_PKCS1V15_SIGN(hash),
+ *                  - #PSA_ALG_RSA_PSS(hash),
+ *                  - #PSA_ALG_RSA_PSS_ANY_SALT(hash),
+ *                  - #PSA_ALG_RSA_PKCS1V15_CRYPT,
+ *                  - #PSA_ALG_RSA_OAEP(hash),
+ *                  - #PSA_ALG_ECDSA(hash),
+ *                  - #MBEDTLS_PK_ALG_ECDSA(hash),
+ *                  where hash is a specified algorithm.
+ * \param usage     PSA usage flag that the key must be verified against.
+ *                  A single flag from the following list must be specified:
+ *                  - #PSA_KEY_USAGE_SIGN_HASH,
+ *                  - #PSA_KEY_USAGE_VERIFY_HASH,
+ *                  - #PSA_KEY_USAGE_DECRYPT,
+ *                  - #PSA_KEY_USAGE_ENCRYPT,
+ *                  - #PSA_KEY_USAGE_DERIVE,
+ *                  - #PSA_KEY_USAGE_DERIVE_PUBLIC.
+ *
+ * \return          1 if the key can do operation on the given type.
+ * \return          0 if the key cannot do the operations,
+ *                  or the context has not been populated.
+ */
+int mbedtls_pk_can_do_psa(const mbedtls_pk_context *pk, psa_algorithm_t alg,
+                          psa_key_usage_t usage);
+
+#if defined(MBEDTLS_PSA_CRYPTO_CLIENT)
+/**
+ * \brief           Determine valid PSA attributes that can be used to
+ *                  import a key into PSA.
+ *
+ * The attributes determined by this function are suitable
+ * for calling mbedtls_pk_import_into_psa() to create
+ * a PSA key with the same key material.
+ *
+ * The typical flow of operations involving this function is
+ * ```
+ * psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT;
+ * int ret = mbedtls_pk_get_psa_attributes(pk, &attributes);
+ * if (ret != 0) ...; // error handling omitted
+ * // Tweak attributes if desired
+ * psa_key_id_t key_id = 0;
+ * ret = mbedtls_pk_import_into_psa(pk, &attributes, &key_id);
+ * if (ret != 0) ...; // error handling omitted
+ * ```
+ *
+ * \param[in] pk    The PK context to use. It must have been populated.
+ *                  It can either contain a key pair or just a public key.
+ * \param usage     A single `PSA_KEY_USAGE_xxx` flag among the following:
+ *                  - #PSA_KEY_USAGE_DECRYPT: \p pk must contain a
+ *                    key pair. The output \p attributes will contain a
+ *                    key pair type, and the usage policy will allow
+ *                    #PSA_KEY_USAGE_ENCRYPT as well as
+ *                    #PSA_KEY_USAGE_DECRYPT.
+ *                  - #PSA_KEY_USAGE_DERIVE: \p pk must contain a
+ *                    key pair. The output \p attributes will contain a
+ *                    key pair type.
+ *                  - #PSA_KEY_USAGE_ENCRYPT: The output
+ *                    \p attributes will contain a public key type.
+ *                  - #PSA_KEY_USAGE_SIGN_HASH: \p pk must contain a
+ *                    key pair. The output \p attributes will contain a
+ *                    key pair type, and the usage policy will allow
+ *                    #PSA_KEY_USAGE_VERIFY_HASH as well as
+ *                    #PSA_KEY_USAGE_SIGN_HASH.
+ *                  - #PSA_KEY_USAGE_SIGN_MESSAGE: \p pk must contain a
+ *                    key pair. The output \p attributes will contain a
+ *                    key pair type, and the usage policy will allow
+ *                    #PSA_KEY_USAGE_VERIFY_MESSAGE as well as
+ *                    #PSA_KEY_USAGE_SIGN_MESSAGE.
+ *                  - #PSA_KEY_USAGE_VERIFY_HASH: The output
+ *                    \p attributes will contain a public key type.
+ *                  - #PSA_KEY_USAGE_VERIFY_MESSAGE: The output
+ *                    \p attributes will contain a public key type.
+ * \param[out] attributes
+ *                  On success, valid attributes to import the key into PSA.
+ *                  - The lifetime and key identifier are unchanged. If the
+ *                    attribute structure was initialized or reset before
+ *                    calling this function, this will result in a volatile
+ *                    key. Call psa_set_key_identifier() before or after this
+ *                    function if you wish to create a persistent key. Call
+ *                    psa_set_key_lifetime() before or after this function if
+ *                    you wish to import the key in a secure element.
+ *                  - The key type and bit-size are determined by the contents
+ *                    of the PK context. If the PK context contains a key
+ *                    pair, the key type can be either a key pair type or
+ *                    the corresponding public key type, depending on
+ *                    \p usage. If the PK context contains a public key,
+ *                    the key type is a public key type.
+ *                  - The key's policy is determined by the key type and
+ *                    the \p usage parameter. The usage always allows
+ *                    \p usage, exporting and copying the key, and
+ *                    possibly other permissions as documented for the
+ *                    \p usage parameter.
+ *                    The enrolment algorithm (if available in this build) is
+ *                    left unchanged.
+ *                    For keys created with \c mbedtls_pk_wrap_psa(), the
+ *                    primary algorithm is the same as the original PSA key.
+ *                    Otherwise, it is determined as follows:
+ *                      - For RSA keys:
+ *                        #PSA_ALG_RSA_PKCS1V15_SIGN(#PSA_ALG_ANY_HASH)
+ *                        if \p usage is SIGN/VERIFY, and
+ *                        #PSA_ALG_RSA_PKCS1V15_CRYPT
+ *                        if \p usage is ENCRYPT/DECRYPT.
+ *                      - For ECC keys:
+ *                        #MBEDTLS_PK_ALG_ECDSA(#PSA_ALG_ANY_HASH)
+ *                        if \p usage is SIGN/VERIFY, and
+ *                        #PSA_ALG_ECDH if \p usage is DERIVE.
+ *
+ * \return          0 on success.
+ *                  #MBEDTLS_ERR_PK_TYPE_MISMATCH if \p pk does not contain
+ *                  a key compatible with the desired \p usage.
+ *                  Another error code on other failures.
+ */
+int mbedtls_pk_get_psa_attributes(const mbedtls_pk_context *pk,
+                                  psa_key_usage_t usage,
+                                  psa_key_attributes_t *attributes);
+
+/**
+ * \brief           Import a key into the PSA key store.
+ *
+ * This function is equivalent to calling psa_import_key()
+ * with the key material from \p pk.
+ *
+ * The typical way to use this function is:
+ * -# Call mbedtls_pk_get_psa_attributes() to obtain
+ *    attributes for the given key.
+ * -# If desired, modify the attributes, for example:
+ *     - To create a persistent key, call
+ *       psa_set_key_identifier() and optionally
+ *       psa_set_key_lifetime().
+ *     - To import only the public part of a key pair:
+ *
+ *           psa_set_key_type(&attributes,
+ *                            PSA_KEY_TYPE_PUBLIC_KEY_OF_KEY_PAIR(
+ *                                psa_get_key_type(&attributes)));
+ *     - Restrict the key usage if desired.
+ * -# Call mbedtls_pk_import_into_psa().
+ *
+ * \param[in] pk    The PK context to use. It must have been populated.
+ *                  It can either contain a key pair or just a public key.
+ * \param[in] attributes
+ *                  The attributes to use for the new key. They must be
+ *                  compatible with \p pk. In particular, the key type
+ *                  must match the content of \p pk.
+ *                  If \p pk contains a key pair, the key type in
+ *                  attributes can be either the key pair type or the
+ *                  corresponding public key type (to import only the
+ *                  public part).
+ * \param[out] key_id
+ *                  On success, the identifier of the newly created key.
+ *                  On error, this is #MBEDTLS_SVC_KEY_ID_INIT.
+ *
+ * \return          0 on success.
+ *                  #MBEDTLS_ERR_PK_TYPE_MISMATCH if \p pk does not contain
+ *                  a key of the type identified in \p attributes.
+ *                  Another error code on other failures.
+ */
+int mbedtls_pk_import_into_psa(const mbedtls_pk_context *pk,
+                               const psa_key_attributes_t *attributes,
+                               mbedtls_svc_key_id_t *key_id);
+
+/**
+ * \brief           Populate a PK context with the key material from a PSA key.
+ *
+ *                  This key:
+ *                  - must be exportable and
+ *                  - must be an RSA or EC key pair or public key
+ *                    (FFDH is not supported in PK).
+ *
+ *                  Once this function returns the PK object will be completely
+ *                  independent from the original PSA key that it was generated
+ *                  from.
+ *
+ * \note            This function only copies the key material but discards
+ *                  policy information entirely. See \c
+ *                  mbedtls_pk_get_psa_attributes() for details on which
+ *                  algorithm is going to be used by PK for contexts populated with
+ *                  this function.
+ *
+ *                  If you want to retain the PSA policy, see \c
+ *                  mbedtls_pk_wrap_psa() - but then the PSA key needs to live
+ *                  at least as long as the PK context.
+ *
+ * \param key_id    The key identifier of the key stored in PSA.
+ * \param pk        The PK context to populate. It must be empty.
+ *
+ * \return          0 on success.
+ * \return          #PSA_ERROR_INVALID_ARGUMENT in case the provided input
+ *                  parameters are not correct.
+ */
+int mbedtls_pk_copy_from_psa(mbedtls_svc_key_id_t key_id, mbedtls_pk_context *pk);
+
+/**
+ * \brief           Populate a PK context with the public key material of a PSA
+ *                  key.
+ *
+ *                  The key must be an RSA or ECC key. It can be either a
+ *                  public key or a key pair, and only the public key is copied.
+ *
+ *                  Once this function returns the PK object will be completely
+ *                  independent from the original PSA key that it was generated
+ *                  from.
+ *
+ * \note            This function only copies the key material but discards
+ *                  policy information entirely. See \c
+ *                  mbedtls_pk_get_psa_attributes() for details on which
+ *                  algorithm is going to be used by PK for contexts populated with
+ *                  this function.
+ *
+ *                  If you want to retain the PSA policy, see \c
+ *                  mbedtls_pk_wrap_psa() - but then the PSA key needs to live
+ *                  at least as long as the PK context.
+ *
+ * \param key_id    The key identifier of the key stored in PSA.
+ * \param pk        The PK context to populate. It must be empty.
+ *
+ * \return          0 on success.
+ * \return          #PSA_ERROR_INVALID_ARGUMENT in case the provided input
+ *                  parameters are not correct.
+ */
+int mbedtls_pk_copy_public_from_psa(mbedtls_svc_key_id_t key_id, mbedtls_pk_context *pk);
+#endif /* MBEDTLS_PSA_CRYPTO_CLIENT */
+
+/**
+ * \brief           Verify signature.
+ *
+ * \note            The signature algorithm used will be the one that would be
+ *                  selected by \c mbedtls_pk_get_psa_attributes() called with a
+ *                  usage of #PSA_KEY_USAGE_VERIFY_HASH - see that function's
+ *                  documentation for details.
+ *                  If you want to select a specific signature algorithm, see
+ *                  \c mbedtls_pk_verify_ext().
+ *
+ * \note            This function currently does not work on RSA keys created
+ *                  with \c mbedtls_pk_wrap_psa().
+ *
+ * \param ctx       The PK context to use. It must have been populated.
+ * \param md_alg    Hash algorithm used.
+ * \param hash      Hash of the message to sign
+ * \param hash_len  Hash length
+ * \param sig       Signature to verify
+ * \param sig_len   Signature length
+ *
+ * \return          0 on success (signature is valid),
+ *                  #PSA_ERROR_INVALID_SIGNATURE if the signature is invalid,
+ *                  or another specific error code.
+ */
+int mbedtls_pk_verify(mbedtls_pk_context *ctx, mbedtls_md_type_t md_alg,
+                      const unsigned char *hash, size_t hash_len,
+                      const unsigned char *sig, size_t sig_len);
+
+/**
+ * \brief           Restartable version of \c mbedtls_pk_verify()
+ *
+ * \note            Performs the same job as \c mbedtls_pk_verify(), but can
+ *                  return early and restart according to the limit set with
+ *                  \c psa_interruptible_set_max_ops() to reduce blocking for ECC
+ *                  operations. For RSA, same as \c mbedtls_pk_verify().
+ *
+ * \param ctx       The PK context to use. It must have been populated.
+ * \param md_alg    Hash algorithm used
+ * \param hash      Hash of the message to sign
+ * \param hash_len  Hash length
+ * \param sig       Signature to verify
+ * \param sig_len   Signature length
+ * \param rs_ctx    Restart context (NULL to disable restart)
+ *
+ * \return          See \c mbedtls_pk_verify(), or
+ * \return          #PSA_OPERATION_INCOMPLETE if maximum number of
+ *                  operations was reached: see \c psa_interruptible_set_max_ops().
+ */
+int mbedtls_pk_verify_restartable(mbedtls_pk_context *ctx,
+                                  mbedtls_md_type_t md_alg,
+                                  const unsigned char *hash, size_t hash_len,
+                                  const unsigned char *sig, size_t sig_len,
+                                  mbedtls_pk_restart_ctx *rs_ctx);
+
+/**
+ * \brief           Verify signature, selecting a specific algorithm.
+ *
+ * \param type      Signature type to verify
+ * \param ctx       The PK context to use. It must have been populated.
+ * \param md_alg    Hash algorithm used.
+ * \param hash      Hash of the message to sign
+ * \param hash_len  Hash length
+ * \param sig       Signature to verify
+ * \param sig_len   Signature length
+ *
+ * \note            If \p type is #MBEDTLS_PK_SIGALG_RSA_PSS, then any salt
+ *                  length is accepted: #PSA_ALG_RSA_PSS_ANY_SALT is used.
+ *
+ * \return          0 on success (signature is valid),
+ *                  #MBEDTLS_ERR_PK_TYPE_MISMATCH if the PK context can't be
+ *                  used for this type of signature,
+ *                  #PSA_ERROR_INVALID_SIGNATURE if the signature is invalid,
+ *                  or a specific error code.
+ *
+ */
+int mbedtls_pk_verify_ext(mbedtls_pk_sigalg_t type,
+                          mbedtls_pk_context *ctx, mbedtls_md_type_t md_alg,
+                          const unsigned char *hash, size_t hash_len,
+                          const unsigned char *sig, size_t sig_len);
+
+/**
+ * \brief           Make signature.
+ *
+ * \note            The signature algorithm used will be the one that would be
+ *                  selected by \c mbedtls_pk_get_psa_attributes() called with a
+ *                  usage of #PSA_KEY_USAGE_SIGN_HASH - see that function's
+ *                  documentation for details.
+ *                  If you want to select a specific signature algorithm, see
+ *                  \c mbedtls_pk_sign_ext().
+ *
+ * \param ctx       The PK context to use. It must have been populated
+ *                  with a private key.
+ * \param md_alg    Hash algorithm used
+ * \param hash      Hash of the message to sign
+ * \param hash_len  Hash length
+ * \param sig       Place to write the signature.
+ *                  It must have enough room for the signature.
+ *                  #MBEDTLS_PK_SIGNATURE_MAX_SIZE is always enough.
+ *                  You may use a smaller buffer if it is large enough
+ *                  given the key type.
+ * \param sig_size  The size of the \p sig buffer in bytes.
+ * \param sig_len   On successful return,
+ *                  the number of bytes written to \p sig.
+ *
+ * \return          0 on success, or a specific error code.
+ *
+ */
+int mbedtls_pk_sign(mbedtls_pk_context *ctx, mbedtls_md_type_t md_alg,
+                    const unsigned char *hash, size_t hash_len,
+                    unsigned char *sig, size_t sig_size, size_t *sig_len);
+
+/**
+ * \brief           Restartable version of \c mbedtls_pk_sign()
+ *
+ * \note            Performs the same job as \c mbedtls_pk_sign(), but can
+ *                  return early and restart according to the limit set with \c
+ *                  psa_interruptible_set_max_ops() to reduce blocking for ECC
+ *                  operations. For RSA, same as \c mbedtls_pk_sign().
+ *
+ * \note            For ECC keys, always uses #MBEDTLS_PK_ALG_ECDSA(hash), where
+ *                  hash is the PSA alg identifier corresponding to \p hash.
+ *
+ * \note            This function currently does not work on ECC keys created
+ *                  with \c mbedtls_pk_wrap_psa().
+ *
+ * \param ctx       The PK context to use. It must have been populated
+ *                  with a private key.
+ * \param md_alg    Hash algorithm used.
+ * \param hash      Hash of the message to sign
+ * \param hash_len  Hash length
+ * \param sig       Place to write the signature.
+ *                  It must have enough room for the signature.
+ *                  #MBEDTLS_PK_SIGNATURE_MAX_SIZE is always enough.
+ *                  You may use a smaller buffer if it is large enough
+ *                  given the key type.
+ * \param sig_size  The size of the \p sig buffer in bytes.
+ * \param sig_len   On successful return,
+ *                  the number of bytes written to \p sig.
+ * \param rs_ctx    Restart context (NULL to disable restart)
+ *
+ * \return          See \c mbedtls_pk_sign().
+ * \return          #PSA_OPERATION_INCOMPLETE if the maximum number of
+ *                  operations was reached: see \c
+ *                  psa_interruptible_set_max_ops().
+ */
+int mbedtls_pk_sign_restartable(mbedtls_pk_context *ctx,
+                                mbedtls_md_type_t md_alg,
+                                const unsigned char *hash, size_t hash_len,
+                                unsigned char *sig, size_t sig_size, size_t *sig_len,
+                                mbedtls_pk_restart_ctx *rs_ctx);
+
+/**
+ * \brief           Generate a signature, selecting a specific algorithm.
+ *
+ * \param sig_type  Signature type to generate.
+ * \param ctx       The PK context to use. It must have been populated
+ *                  with a private key.
+ * \param md_alg    Hash algorithm used
+ * \param hash      Hash of the message to sign
+ * \param hash_len  Hash length
+ * \param sig       Place to write the signature.
+ *                  It must have enough room for the signature.
+ *                  #MBEDTLS_PK_SIGNATURE_MAX_SIZE is always enough.
+ *                  You may use a smaller buffer if it is large enough
+ *                  given the key type.
+ * \param sig_size  The size of the \p sig buffer in bytes.
+ * \param sig_len   On successful return,
+ *                  the number of bytes written to \p sig.
+ *
+ * \return          0 on success,
+ *                  #MBEDTLS_ERR_PK_TYPE_MISMATCH if the PK context can't be
+ *                  used for this type of signature,
+ *                  or a specific error code.
+ */
+int mbedtls_pk_sign_ext(mbedtls_pk_sigalg_t sig_type,
+                        mbedtls_pk_context *ctx,
+                        mbedtls_md_type_t md_alg,
+                        const unsigned char *hash, size_t hash_len,
+                        unsigned char *sig, size_t sig_size, size_t *sig_len);
+
+/**
+ * \brief           Check if a public-private pair of keys matches.
+ *
+ * \note            This function currently does not work on keys created with
+ *                  \c mbedtls_pk_wrap_psa().
+ *
+ * \param pub       Context holding a public key.
+ * \param prv       Context holding a private (and public) key.
+ *
+ * \return          \c 0 on success (keys were checked and match each other).
+ * \return          #MBEDTLS_ERR_PK_FEATURE_UNAVAILABLE if the keys could not
+ *                  be checked - in that case they may or may not match.
+ * \return          #PSA_ERROR_INVALID_ARGUMENT if a context is invalid.
+ * \return          Another non-zero value if the keys do not match.
+ */
+int mbedtls_pk_check_pair(const mbedtls_pk_context *pub,
+                          const mbedtls_pk_context *prv);
+
+#if defined(MBEDTLS_PK_PARSE_C)
+/** \ingroup pk_module */
+/**
+ * \brief           Parse a private key in PEM or DER format
+ *
+ * \param ctx       The PK context to populate. It must be empty.
+ * \param key       Input buffer to parse.
+ *                  The buffer must contain the input exactly, with no
+ *                  extra trailing material. For PEM, the buffer must
+ *                  contain a null-terminated string.
+ * \param keylen    Size of \b key in bytes.
+ *                  For PEM data, this includes the terminating null byte,
+ *                  so \p keylen must be equal to `strlen(key) + 1`.
+ * \param pwd       Optional password for decryption.
+ *                  Pass \c NULL if expecting a non-encrypted key.
+ *                  Pass a string of \p pwdlen bytes if expecting an encrypted
+ *                  key; a non-encrypted key will also be accepted.
+ *                  The empty password is not supported.
+ * \param pwdlen    Size of the password in bytes.
+ *                  Ignored if \p pwd is \c NULL.
+ *
+ * \note            If you need a specific key type, check the result with
+ *                  \c mbedtls_pk_can_do_psa().
+ *
+ * \note            The key is also checked for correctness.
+ *
+ * \return          0 if successful, or a specific PK or PEM error code
+ */
+int mbedtls_pk_parse_key(mbedtls_pk_context *ctx,
+                         const unsigned char *key, size_t keylen,
+                         const unsigned char *pwd, size_t pwdlen);
+
+/** \ingroup pk_module */
+/**
+ * \brief           Parse a public key in PEM or DER format
+ *
+ * \param ctx       The PK context to populate. It must be empty.
+ * \param key       Input buffer to parse.
+ *                  The buffer must contain the input exactly, with no
+ *                  extra trailing material. For PEM, the buffer must
+ *                  contain a null-terminated string.
+ * \param keylen    Size of \b key in bytes.
+ *                  For PEM data, this includes the terminating null byte,
+ *                  so \p keylen must be equal to `strlen(key) + 1`.
+ *
+ * \note            If you need a specific key type, check the result with
+ *                  \c mbedtls_pk_can_do_psa().
+ *
+ * \note            The key is also checked for correctness.
+ *
+ * \return          0 if successful, or a specific PK or PEM error code
+ */
+int mbedtls_pk_parse_public_key(mbedtls_pk_context *ctx,
+                                const unsigned char *key, size_t keylen);
+
+#if defined(MBEDTLS_FS_IO)
+/** \ingroup pk_module */
+/**
+ * \brief           Load and parse a private key
+ *
+ * \param ctx       The PK context to populate. It must be empty.
+ * \param path      filename to read the private key from
+ * \param password  Optional password to decrypt the file.
+ *                  Pass \c NULL if expecting a non-encrypted key.
+ *                  Pass a null-terminated string if expecting an encrypted
+ *                  key; a non-encrypted key will also be accepted.
+ *                  The empty password is not supported.
+ *
+ * \note            If you need a specific key type, check the result with
+ *                  \c mbedtls_pk_can_do_psa().
+ *
+ * \note            The key is also checked for correctness.
+ *
+ * \return          0 if successful, or a specific PK or PEM error code
+ */
+int mbedtls_pk_parse_keyfile(mbedtls_pk_context *ctx,
+                             const char *path, const char *password);
+
+/** \ingroup pk_module */
+/**
+ * \brief           Load and parse a public key
+ *
+ * \param ctx       The PK context to populate. It must be empty.
+ * \param path      filename to read the public key from
+ *
+ * \note            If you need a specific key type, check the result with
+ *                  \c mbedtls_pk_can_do_psa().
+ *
+ * \note            The key is also checked for correctness.
+ *
+ * \return          0 if successful, or a specific PK or PEM error code
+ */
+int mbedtls_pk_parse_public_keyfile(mbedtls_pk_context *ctx, const char *path);
+#endif /* MBEDTLS_FS_IO */
+#endif /* MBEDTLS_PK_PARSE_C */
+
+#if defined(MBEDTLS_PK_WRITE_C)
+/**
+ * \brief           Write a private key to a PKCS#1 or SEC1 DER structure
+ *                  Note: data is written at the end of the buffer! Use the
+ *                        return value to determine where you should start
+ *                        using the buffer
+ *
+ * \param ctx       PK context which must contain a valid private key.
+ * \param buf       buffer to write to
+ * \param size      size of the buffer
+ *
+ * \return          length of data written if successful, or a specific
+ *                  error code
+ */
+int mbedtls_pk_write_key_der(const mbedtls_pk_context *ctx, unsigned char *buf, size_t size);
+
+/**
+ * \brief           Write a public key to a SubjectPublicKeyInfo DER structure
+ *                  Note: data is written at the end of the buffer! Use the
+ *                        return value to determine where you should start
+ *                        using the buffer
+ *
+ * \param ctx       PK context which must contain a valid public or private key.
+ * \param buf       buffer to write to
+ * \param size      size of the buffer
+ *
+ * \return          length of data written if successful, or a specific
+ *                  error code
+ */
+int mbedtls_pk_write_pubkey_der(const mbedtls_pk_context *ctx, unsigned char *buf, size_t size);
+
+#if defined(MBEDTLS_PEM_WRITE_C)
+/**
+ * \brief           Write a public key to a PEM string
+ *
+ * \param ctx       PK context which must contain a valid public or private key.
+ * \param buf       Buffer to write to. The output includes a
+ *                  terminating null byte.
+ * \param size      Size of the buffer in bytes.
+ *
+ * \return          0 if successful, or a specific error code
+ */
+int mbedtls_pk_write_pubkey_pem(const mbedtls_pk_context *ctx, unsigned char *buf, size_t size);
+
+/**
+ * \brief           Write a private key to a PKCS#1 or SEC1 PEM string
+ *
+ * \param ctx       PK context which must contain a valid private key.
+ * \param buf       Buffer to write to. The output includes a
+ *                  terminating null byte.
+ * \param size      Size of the buffer in bytes.
+ *
+ * \return          0 if successful, or a specific error code
+ */
+int mbedtls_pk_write_key_pem(const mbedtls_pk_context *ctx, unsigned char *buf, size_t size);
+#endif /* MBEDTLS_PEM_WRITE_C */
+#endif /* MBEDTLS_PK_WRITE_C */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* MBEDTLS_PK_H */
diff --git a/deps/LIEF/third-party/mbedtls/include/mbedtls/platform.h b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/include/mbedtls/platform.h
similarity index 89%
rename from deps/LIEF/third-party/mbedtls/include/mbedtls/platform.h
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/include/mbedtls/platform.h
index de3d71d9dc5..dae1301b848 100644
--- a/deps/LIEF/third-party/mbedtls/include/mbedtls/platform.h
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/include/mbedtls/platform.h
@@ -27,12 +27,14 @@
 #define MBEDTLS_PLATFORM_H
 #include "mbedtls/private_access.h"

-#include "mbedtls/build_info.h"
+#include "tf-psa-crypto/build_info.h"

 #if defined(MBEDTLS_HAVE_TIME)
 #include "mbedtls/platform_time.h"
 #endif

+#include <psa/crypto_driver_random.h>
+
 #ifdef __cplusplus
 extern "C" {
 #endif
@@ -446,6 +448,45 @@ mbedtls_platform_context;
 #include "platform_alt.h"
 #endif /* !MBEDTLS_PLATFORM_SETUP_TEARDOWN_ALT */

+/**
+ * \brief       User defined callback function that is used from the entropy
+ *              module to gather entropy data from some hardware device.
+ *
+ * \param flags                 A mask of `PSA_DRIVER_GET_ENTROPY_xxx` flags.
+ *                              As of TF-PSA-Crypto 1.0, this is always \c 0.
+ * \param[out] estimate_bits    Measure of the entropy content (in bits) of the
+ *                              data written in the \p output buffer.
+ * \param[out] output           Output buffer where the entropy data will be
+ *                              stored.
+ * \param output_size           Size of the \p output buffer in bytes.
+ *
+ * \retval 0
+ *         Success.
+ * \retval #PSA_ERROR_INSUFFICIENT_ENTROPY
+ *         The entropy source failed.
+ * \retval #PSA_ERROR_NOT_SUPPORTED
+ *         The value of \p flags is not supported.
+ *
+ * \warning     For the time being TF-PSA-Crypto only supports implementations
+ *              that return a maximum entropy output on each call, i.e.
+ *              \p estimate_bits = `8 * output_size`. Returning a smaller
+ *              entropy content is the same as returning
+ *              #PSA_ERROR_INSUFFICIENT_ENTROPY so the hardware polling will
+ *              fail.
+ *              In the future TF-PSA-Crypto will be smarter and capable to cope
+ *              with entropy sources with lower entropy content (i.e.
+ *              0 < \p estimate_bits < 8 * output_size) by calling the callback
+ *              function in loop.
+ *
+ * \note        This function is not meant to be called by application code, and
+ *              it is not guaranteed that this function will exist or will behave
+ *              in the same way in future versions of the library. Applications
+ *              should call psa_generate_random() to obtain random data.
+ */
+int mbedtls_platform_get_entropy(psa_driver_get_entropy_flags_t flags,
+                                 size_t *estimate_bits,
+                                 unsigned char *output, size_t output_size);
+
 /**
  * \brief   This function performs any platform-specific initialization
  *          operations.
diff --git a/deps/LIEF/third-party/mbedtls/include/mbedtls/platform_time.h b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/include/mbedtls/platform_time.h
similarity index 98%
rename from deps/LIEF/third-party/mbedtls/include/mbedtls/platform_time.h
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/include/mbedtls/platform_time.h
index 97f1963abaa..bd976ff80bb 100644
--- a/deps/LIEF/third-party/mbedtls/include/mbedtls/platform_time.h
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/include/mbedtls/platform_time.h
@@ -10,7 +10,7 @@
 #ifndef MBEDTLS_PLATFORM_TIME_H
 #define MBEDTLS_PLATFORM_TIME_H

-#include "mbedtls/build_info.h"
+#include "tf-psa-crypto/build_info.h"

 #ifdef __cplusplus
 extern "C" {
diff --git a/deps/LIEF/third-party/mbedtls/include/mbedtls/platform_util.h b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/include/mbedtls/platform_util.h
similarity index 74%
rename from deps/LIEF/third-party/mbedtls/include/mbedtls/platform_util.h
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/include/mbedtls/platform_util.h
index adad6bc3f85..18059140327 100644
--- a/deps/LIEF/third-party/mbedtls/include/mbedtls/platform_util.h
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/include/mbedtls/platform_util.h
@@ -11,7 +11,7 @@
 #ifndef MBEDTLS_PLATFORM_UTIL_H
 #define MBEDTLS_PLATFORM_UTIL_H

-#include "mbedtls/build_info.h"
+#include "tf-psa-crypto/build_info.h"

 #include <stddef.h>
 #if defined(MBEDTLS_HAVE_TIME_DATE)
@@ -159,56 +159,6 @@ MBEDTLS_DEPRECATED typedef int mbedtls_deprecated_numeric_constant_t;
 void mbedtls_platform_zeroize(void *buf, size_t len);
 #endif

-/** \brief              The type of custom random generator (RNG) callbacks.
- *
- *                      Many Mbed TLS functions take two parameters
- *                      `mbedtls_f_rng_t *f_rng, void *p_rng`. The
- *                      library will call \c f_rng to generate
- *                      random values.
- *
- * \note                This is typically one of the following:
- *                      - mbedtls_ctr_drbg_random() with \c p_rng
- *                        pointing to a #mbedtls_ctr_drbg_context;
- *                      - mbedtls_hmac_drbg_random() with \c p_rng
- *                        pointing to a #mbedtls_hmac_drbg_context;
- *                      - mbedtls_psa_get_random() with
- *                        `prng = MBEDTLS_PSA_RANDOM_STATE`.
- *
- * \note                Generally, given a call
- *                      `mbedtls_foo(f_rng, p_rng, ....)`, the RNG callback
- *                      and the context only need to remain valid until
- *                      the call to `mbedtls_foo` returns. However, there
- *                      are a few exceptions where the callback is stored
- *                      in for future use. Check the documentation of
- *                      the calling function.
- *
- * \warning             In a multithreaded environment, calling the
- *                      function should be thread-safe. The standard
- *                      functions provided by the library are thread-safe
- *                      when #MBEDTLS_THREADING_C is enabled.
- *
- * \warning             This function must either provide as many
- *                      bytes as requested of **cryptographic quality**
- *                      random data, or return a negative error code.
- *
- * \param p_rng         The \c p_rng argument that was passed along \c f_rng.
- *                      The library always passes \c p_rng unchanged.
- *                      This is typically a pointer to the random generator
- *                      state, or \c NULL if the custom random generator
- *                      doesn't need a context-specific state.
- * \param[out] output   On success, this must be filled with \p output_size
- *                      bytes of cryptographic-quality random data.
- * \param output_size   The number of bytes to output.
- *
- * \return              \c 0 on success, or a negative error code on failure.
- *                      Library functions will generally propagate this
- *                      error code, so \c MBEDTLS_ERR_xxx values are
- *                      recommended. #MBEDTLS_ERR_ENTROPY_SOURCE_FAILED is
- *                      typically sensible for RNG failures.
- */
-typedef int mbedtls_f_rng_t(void *p_rng,
-                            unsigned char *output, size_t output_size);
-
 #if defined(MBEDTLS_HAVE_TIME_DATE)
 /**
  * \brief      Platform-specific implementation of gmtime_r()
diff --git a/deps/LIEF/third-party/mbedtls/tf-psa-crypto/include/mbedtls/private/pk_private.h b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/include/mbedtls/private/pk_private.h
new file mode 100644
index 00000000000..28a70221cab
--- /dev/null
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/include/mbedtls/private/pk_private.h
@@ -0,0 +1,282 @@
+/**
+ * \file pk_private.h
+ *
+ * \brief Private Public Key abstraction layer
+ */
+/*
+ *  Copyright The Mbed TLS Contributors
+ *  SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+ */
+
+#ifndef MBEDTLS_PRIVATE_PK_PRIVATE_H
+#define MBEDTLS_PRIVATE_PK_PRIVATE_H
+
+#include <mbedtls/pk.h>
+
+#if defined(MBEDTLS_RSA_C)
+#include "mbedtls/private/rsa.h"
+#endif
+
+#if defined(MBEDTLS_ECP_C)
+#include "mbedtls/private/ecp.h"
+#endif
+
+#if defined(MBEDTLS_ECDSA_C)
+#include "mbedtls/private/ecdsa.h"
+#endif
+
+#if defined(MBEDTLS_DECLARE_PRIVATE_IDENTIFIERS)
+
+/**
+ * \brief          Public key types
+ */
+typedef enum {
+    MBEDTLS_PK_NONE = MBEDTLS_PK_SIGALG_NONE,
+    MBEDTLS_PK_RSA = MBEDTLS_PK_SIGALG_RSA_PKCS1V15,
+    MBEDTLS_PK_RSASSA_PSS = MBEDTLS_PK_SIGALG_RSA_PSS,
+    MBEDTLS_PK_ECDSA = MBEDTLS_PK_SIGALG_ECDSA,
+    MBEDTLS_PK_ECKEY,
+    MBEDTLS_PK_ECKEY_DH,
+    MBEDTLS_PK_OPAQUE,
+} mbedtls_pk_type_t;
+
+/**
+ * \brief           Types for interfacing with the debug module
+ */
+typedef enum {
+    MBEDTLS_PK_DEBUG_NONE = 0,
+    MBEDTLS_PK_DEBUG_MPI,
+    MBEDTLS_PK_DEBUG_ECP,
+    MBEDTLS_PK_DEBUG_PSA_EC,
+    MBEDTLS_PK_DEBUG_PSA_RSA,
+} mbedtls_pk_debug_type;
+
+/**
+ * \brief           Item to send to the debug module
+ */
+typedef struct mbedtls_pk_debug_item {
+    mbedtls_pk_debug_type MBEDTLS_PRIVATE(type);
+    const char *MBEDTLS_PRIVATE(name);
+    void *MBEDTLS_PRIVATE(value);
+} mbedtls_pk_debug_item;
+
+/** Maximum number of item send for debugging, plus 1 */
+#define MBEDTLS_PK_DEBUG_MAX_ITEMS 3
+
+/**
+ * \brief           Return information associated with the given PK type
+ *
+ * \param pk_type   PK type to search for.
+ *
+ * \return          The PK info associated with the type or NULL if not found.
+ */
+const mbedtls_pk_info_t *mbedtls_pk_info_from_type(mbedtls_pk_type_t pk_type);
+
+/**
+ * \brief           Initialize a PK context with the information given
+ *                  and allocates the type-specific PK subcontext.
+ *
+ * \param ctx       Context to initialize. It must not have been set
+ *                  up yet (type #MBEDTLS_PK_NONE).
+ * \param info      Information to use
+ *
+ * \return          0 on success,
+ *                  MBEDTLS_ERR_PK_BAD_INPUT_DATA on invalid input,
+ *                  MBEDTLS_ERR_PK_ALLOC_FAILED on allocation failure.
+ */
+int mbedtls_pk_setup(mbedtls_pk_context *ctx, const mbedtls_pk_info_t *info);
+
+/**
+ * \brief           Get the length in bytes of the underlying key
+ *
+ * \param ctx       The context to query. It must have been initialized.
+ *
+ * \return          Key length in bytes, or 0 on error
+ */
+static inline size_t mbedtls_pk_get_len(const mbedtls_pk_context *ctx)
+{
+    return (mbedtls_pk_get_bitlen(ctx) + 7) / 8;
+}
+
+/**
+ * \brief           Tell if a context can do the operation given by type
+ *
+ * \param ctx       The context to query. It must have been initialized.
+ * \param type      The desired type.
+ *
+ * \return          1 if the context can do operations on the given type.
+ * \return          0 if the context cannot do the operations on the given
+ *                  type. This is always the case for a context that has
+ *                  been initialized but not set up, or that has been
+ *                  cleared with mbedtls_pk_free().
+ */
+int mbedtls_pk_can_do(const mbedtls_pk_context *ctx, mbedtls_pk_type_t type);
+
+/**
+ * \brief           Tell if context can do the operation given by PSA algorithm
+ *
+ * \param ctx       The context to query. It must have been initialized.
+ * \param alg       PSA algorithm to check against, the following are allowed:
+ *                  PSA_ALG_RSA_PKCS1V15_SIGN(hash),
+ *                  PSA_ALG_RSA_PSS(hash),
+ *                  PSA_ALG_RSA_PKCS1V15_CRYPT,
+ *                  PSA_ALG_ECDSA(hash),
+ *                  PSA_ALG_ECDH, where hash is a specific hash.
+ * \param usage     PSA usage flag to check against, must be composed of:
+ *                  PSA_KEY_USAGE_SIGN_HASH
+ *                  PSA_KEY_USAGE_DECRYPT
+ *                  PSA_KEY_USAGE_DERIVE.
+ *                  Context key must match all passed usage flags.
+ *
+ * \warning         Since the set of allowed algorithms and usage flags may be
+ *                  expanded in the future, the return value \c 0 should not
+ *                  be taken in account for non-allowed algorithms and usage
+ *                  flags.
+ *
+ * \return          1 if the context can do operations on the given type.
+ * \return          0 if the context cannot do the operations on the given
+ *                  type, for non-allowed algorithms and usage flags, or
+ *                  for a context that has been initialized but not set up
+ *                  or that has been cleared with mbedtls_pk_free().
+ */
+int mbedtls_pk_can_do_ext(const mbedtls_pk_context *ctx, psa_algorithm_t alg,
+                          psa_key_usage_t usage);
+
+/**
+ * \brief           Export debug information
+ *
+ * \param ctx       The PK context to use. It must have been initialized.
+ * \param items     Place to write debug items
+ *
+ * \return          0 on success or MBEDTLS_ERR_PK_BAD_INPUT_DATA
+ */
+int mbedtls_pk_debug(const mbedtls_pk_context *ctx, mbedtls_pk_debug_item *items);
+
+/**
+ * \brief           Access the type name
+ *
+ * \param ctx       The PK context to use. It must have been initialized.
+ *
+ * \return          Type name on success, or "invalid PK"
+ */
+const char *mbedtls_pk_get_name(const mbedtls_pk_context *ctx);
+
+/**
+ * \brief           Get the key type
+ *
+ * \param ctx       The PK context to use. It must have been initialized.
+ *
+ * \return          Type on success.
+ * \return          #MBEDTLS_PK_NONE for a context that has not been set up.
+ */
+mbedtls_pk_type_t mbedtls_pk_get_type(const mbedtls_pk_context *ctx);
+
+#if defined(MBEDTLS_RSA_C)
+/**
+ * Quick access to an RSA context inside a PK context.
+ *
+ * \warning This function can only be used when the type of the context, as
+ * returned by mbedtls_pk_get_type(), is #MBEDTLS_PK_RSA.
+ * Ensuring that is the caller's responsibility.
+ * Alternatively, you can check whether this function returns NULL.
+ *
+ * \return The internal RSA context held by the PK context, or NULL.
+ */
+static inline mbedtls_rsa_context *mbedtls_pk_rsa(const mbedtls_pk_context pk)
+{
+    switch (mbedtls_pk_get_type(&pk)) {
+        case MBEDTLS_PK_RSA:
+            return (mbedtls_rsa_context *) (pk).MBEDTLS_PRIVATE(pk_ctx);
+        default:
+            return NULL;
+    }
+}
+#endif /* MBEDTLS_RSA_C */
+
+#if defined(MBEDTLS_ECP_C)
+/**
+ * Quick access to an EC context inside a PK context.
+ *
+ * \warning This function can only be used when the type of the context, as
+ * returned by mbedtls_pk_get_type(), is #MBEDTLS_PK_ECKEY,
+ * #MBEDTLS_PK_ECKEY_DH, or #MBEDTLS_PK_ECDSA.
+ * Ensuring that is the caller's responsibility.
+ * Alternatively, you can check whether this function returns NULL.
+ *
+ * \return The internal EC context held by the PK context, or NULL.
+ */
+static inline mbedtls_ecp_keypair *mbedtls_pk_ec(const mbedtls_pk_context pk)
+{
+    switch (mbedtls_pk_get_type(&pk)) {
+        case MBEDTLS_PK_ECKEY:
+        case MBEDTLS_PK_ECKEY_DH:
+        case MBEDTLS_PK_ECDSA:
+            return (mbedtls_ecp_keypair *) (pk).MBEDTLS_PRIVATE(pk_ctx);
+        default:
+            return NULL;
+    }
+}
+#endif /* MBEDTLS_ECP_C */
+
+#if defined(MBEDTLS_PK_PARSE_C)
+/**
+ * \brief           Parse a SubjectPublicKeyInfo DER structure
+ *
+ * \param p         the position in the ASN.1 data
+ * \param end       end of the buffer
+ * \param pk        The PK context to fill. It must have been initialized
+ *                  but not set up.
+ *
+ * \return          0 if successful, or a specific PK error code
+ */
+int mbedtls_pk_parse_subpubkey(unsigned char **p, const unsigned char *end,
+                               mbedtls_pk_context *pk);
+#endif /* MBEDTLS_PK_PARSE_C */
+
+#if defined(MBEDTLS_PK_WRITE_C)
+/**
+ * \brief           Write a subjectPublicKey to ASN.1 data
+ *                  Note: function works backwards in data buffer
+ *
+ * \param p         reference to current position pointer
+ * \param start     start of the buffer (for bounds-checking)
+ * \param key       PK context which must contain a valid public or private key.
+ *
+ * \return          the length written or a negative error code
+ */
+int mbedtls_pk_write_pubkey(unsigned char **p, unsigned char *start,
+                            const mbedtls_pk_context *key);
+#endif /* MBEDTLS_PK_WRITE_C */
+
+/**
+ * \brief           Verify signature, with explicit selection of the signature algorithm.
+ *                  (Includes verification of the padding depending on type.)
+ *
+ * \param type      Signature type (inc. possible padding type) to verify
+ * \param ctx       The PK context to use. It must have been set up.
+ * \param md_alg    Hash algorithm used (see notes)
+ * \param hash      Hash of the message to sign
+ * \param hash_len  Hash length or 0 (see notes)
+ * \param sig       Signature to verify
+ * \param sig_len   Signature length
+ *
+ * \return          0 on success (signature is valid),
+ *                  #MBEDTLS_ERR_PK_TYPE_MISMATCH if the PK context can't be
+ *                  used for this type of signatures,
+ *                  #PSA_ERROR_INVALID_SIGNATURE if there is a valid
+ *                  signature in \p sig but its length is less than \p sig_len,
+ *                  or a specific error code.
+ *
+ * \note            If hash_len is 0, then the length associated with md_alg
+ *                  is used instead, or an error returned if it is invalid.
+ *
+ * \note            \p options parameter is kept for backward compatibility.
+ *                  If key type is different from MBEDTLS_PK_RSASSA_PSS it must
+ *                  be NULL, otherwise it's just ignored.
+ */
+int mbedtls_pk_verify_new(mbedtls_pk_type_t type, mbedtls_pk_context *ctx,
+                          mbedtls_md_type_t md_alg, const unsigned char *hash,
+                          size_t hash_len, const unsigned char *sig, size_t sig_len);
+
+#endif /* MBEDTLS_DECLARE_PRIVATE_IDENTIFIERS */
+#endif /* MBEDTLS_PRIVATE_PK_PRIVATE_H */
diff --git a/deps/LIEF/third-party/mbedtls/include/mbedtls/psa_util.h b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/include/mbedtls/psa_util.h
similarity index 78%
rename from deps/LIEF/third-party/mbedtls/include/mbedtls/psa_util.h
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/include/mbedtls/psa_util.h
index b898f1f8d3e..929c9ed0a2f 100644
--- a/deps/LIEF/third-party/mbedtls/include/mbedtls/psa_util.h
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/include/mbedtls/psa_util.h
@@ -12,7 +12,7 @@
 #define MBEDTLS_PSA_UTIL_H
 #include "mbedtls/private_access.h"

-#include "mbedtls/build_info.h"
+#include "tf-psa-crypto/build_info.h"

 #include "psa/crypto.h"

@@ -69,40 +69,6 @@ int mbedtls_psa_get_random(void *p_rng,
 /** \defgroup psa_tls_helpers TLS helper functions
  * @{
  */
-#if defined(PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY)
-#include <mbedtls/ecp.h>
-
-/** Convert an ECC curve identifier from the Mbed TLS encoding to PSA.
- *
- * \param grpid         An Mbed TLS elliptic curve identifier
- *                      (`MBEDTLS_ECP_DP_xxx`).
- * \param[out] bits     On success the bit size of the curve; 0 on failure.
- *
- * \return              If the curve is supported in the PSA API, this function
- *                      returns the proper PSA curve identifier
- *                      (`PSA_ECC_FAMILY_xxx`). This holds even if the curve is
- *                      not supported by the ECP module.
- * \return              \c 0 if the curve is not supported in the PSA API.
- */
-psa_ecc_family_t mbedtls_ecc_group_to_psa(mbedtls_ecp_group_id grpid,
-                                          size_t *bits);
-
-/** Convert an ECC curve identifier from the PSA encoding to Mbed TLS.
- *
- * \param family        A PSA elliptic curve family identifier
- *                      (`PSA_ECC_FAMILY_xxx`).
- * \param bits          The bit-length of a private key on \p curve.
- *
- * \return              If the curve is supported in the PSA API, this function
- *                      returns the corresponding Mbed TLS elliptic curve
- *                      identifier (`MBEDTLS_ECP_DP_xxx`).
- * \return              #MBEDTLS_ECP_DP_NONE if the combination of \c curve
- *                      and \p bits is not supported.
- */
-mbedtls_ecp_group_id mbedtls_ecc_group_from_psa(psa_ecc_family_t family,
-                                                size_t bits);
-#endif /* PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY */
-
 /**
  * \brief           This function returns the PSA algorithm identifier
  *                  associated with the given digest type.
@@ -141,7 +107,33 @@ static inline mbedtls_md_type_t mbedtls_md_type_from_psa_alg(psa_algorithm_t psa
 }
 #endif /* MBEDTLS_PSA_CRYPTO_CLIENT */

-#if defined(MBEDTLS_PSA_UTIL_HAVE_ECDSA)
+#if defined(PSA_HAVE_ALG_SOME_ECDSA)
+
+/**
+ * \brief           Maximum size of a DER-encoded ECDSA signature for a
+ *                  given curve bit size.
+ *
+ * \param bits      Curve size in bits.
+ * \return          Maximum signature size in bytes.
+ *
+ * \note            This macro returns a compile-time constant if its argument
+ *                  is one. It may evaluate its argument multiple times.
+ */
+/*
+ *     Ecdsa-Sig-Value ::= SEQUENCE {
+ *         r       INTEGER,
+ *         s       INTEGER
+ *     }
+ *
+ * For each of r and s, the value (V) may include an extra initial "0" bit.
+ */
+#define MBEDTLS_ECDSA_DER_MAX_SIG_LEN(bits)                               \
+    (/*T,L of SEQUENCE*/ ((bits) >= 61 * 8 ? 3 : 2) +              \
+     /*T,L of r,s*/ 2 * (((bits) >= 127 * 8 ? 3 : 2) +     \
+                         /*V of r,s*/ ((bits) + 8) / 8))
+
+/** The maximal size of a DER-encoded ECDSA signature in Bytes. */
+#define MBEDTLS_ECDSA_DER_MAX_LEN  MBEDTLS_ECDSA_DER_MAX_SIG_LEN(PSA_VENDOR_ECC_MAX_CURVE_BITS)

 /** Convert an ECDSA signature from raw format to DER ASN.1 format.
  *
@@ -155,8 +147,8 @@ static inline mbedtls_md_type_t mbedtls_md_type_from_psa_alg(psa_algorithm_t psa
  *                          is at least the size of the actual output. (The size
  *                          of the output can vary depending on the presence of
  *                          leading zeros in the data.) You can use
- *                          #MBEDTLS_ECDSA_MAX_SIG_LEN(\p bits) to determine a
- *                          size that is large enough for all signatures for a
+ *                          #MBEDTLS_ECDSA_DER_MAX_SIG_LEN(\p bits) to determine
+ *                          a size that is large enough for all signatures for a
  *                          given value of \p bits.
  * \param[out]  der_len     On success it contains the amount of valid data
  *                          (in bytes) written to \p der. It's undefined
@@ -166,7 +158,7 @@ static inline mbedtls_md_type_t mbedtls_md_type_from_psa_alg(psa_algorithm_t psa
  *                          even if \p der_size is 0.
  *
  * \return                  0 if successful.
- * \return                  #MBEDTLS_ERR_ASN1_BUF_TOO_SMALL if \p der_size
+ * \return                  #PSA_ERROR_BUFFER_TOO_SMALL if \p der_size
  *                          is too small or if \p bits is larger than the
  *                          largest supported curve.
  * \return                  #MBEDTLS_ERR_ASN1_INVALID_DATA if one of the
@@ -189,7 +181,7 @@ int mbedtls_ecdsa_raw_to_der(size_t bits, const unsigned char *raw, size_t raw_l
  *                          in case of failure.
  *
  * \return                  0 if successful.
- * \return                  #MBEDTLS_ERR_ASN1_BUF_TOO_SMALL if \p raw_size
+ * \return                  #PSA_ERROR_BUFFER_TOO_SMALL if \p raw_size
  *                          is too small or if \p bits is larger than the
  *                          largest supported curve.
  * \return                  #MBEDTLS_ERR_ASN1_INVALID_DATA if the data in
@@ -200,7 +192,7 @@ int mbedtls_ecdsa_raw_to_der(size_t bits, const unsigned char *raw, size_t raw_l
 int mbedtls_ecdsa_der_to_raw(size_t bits, const unsigned char *der, size_t der_len,
                              unsigned char *raw, size_t raw_size, size_t *raw_len);

-#endif /* MBEDTLS_PSA_UTIL_HAVE_ECDSA */
+#endif /* PSA_HAVE_ALG_SOME_ECDSA */

 /**@}*/

diff --git a/deps/LIEF/third-party/mbedtls/tf-psa-crypto/include/mbedtls/threading.h b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/include/mbedtls/threading.h
new file mode 100644
index 00000000000..8c94ec99877
--- /dev/null
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/include/mbedtls/threading.h
@@ -0,0 +1,412 @@
+/**
+ * \file threading.h
+ *
+ * \brief Threading abstraction layer
+ */
+/*
+ *  Copyright The Mbed TLS Contributors
+ *  SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+ */
+#ifndef MBEDTLS_THREADING_H
+#define MBEDTLS_THREADING_H
+#include "mbedtls/private_access.h"
+
+#include "tf-psa-crypto/build_info.h"
+#include "mbedtls/compat-3-crypto.h"
+
+#include <stdlib.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/** Detected error in mutex or condition variable usage.
+ *
+ * Note that depending on the platform, many usage errors of
+ * synchronization primitives have undefined behavior. But where
+ * it is practical to detect usage errors at runtime, mutex and
+ * condition primitives can return this error code.
+ */
+#define MBEDTLS_ERR_THREADING_USAGE_ERROR                 -0x001E
+
+/** A historical alias for #MBEDTLS_ERR_THREADING_USAGE_ERROR. */
+#define MBEDTLS_ERR_THREADING_MUTEX_ERROR MBEDTLS_ERR_THREADING_USAGE_ERROR
+
+#if defined(MBEDTLS_THREADING_C)
+
+#if defined(MBEDTLS_THREADING_PTHREAD)
+#include <pthread.h>
+typedef pthread_mutex_t mbedtls_platform_mutex_t;
+typedef pthread_cond_t mbedtls_platform_condition_variable_t;
+#endif
+
+#if defined(MBEDTLS_THREADING_ALT)
+/* You should define the types mbedtls_platform_mutex_t and
+ * mbedtls_platform_condition_variable_t in your header. */
+#include "threading_alt.h"
+
+/**
+ * \brief           Set your alternate threading implementation function
+ *                  pointers and initialize global mutexes. If used, this
+ *                  function must be called once in the main thread before any
+ *                  other Mbed TLS function is called, and
+ *                  mbedtls_threading_free_alt() must be called once in the main
+ *                  thread after all other Mbed TLS functions.
+ *
+ * \note            Functions should return #MBEDTLS_ERR_THREADING_USAGE_ERROR
+ *                  if a mutex usage error is detected. However, it is
+ *                  acceptable for usage errors to result in undefined behavior
+ *                  (including deadlocks and crashes) if detecting usage errors
+ *                  is not practical on your platform.
+ *
+ * \note            The library will always unlock a mutex from the same
+ *                  thread that locked it, and will never lock a mutex
+ *                  in a thread that has already locked it.
+ *
+ * \note            Spurious wakeups on condition variables are permitted.
+ *
+ * \param mutex_init    The mutex init function implementation. <br>
+ *                      The behavior is undefined if the mutex is already
+ *                      initialized and has not been destroyed, or if this
+ *                      function is called concurrently from multiple threads.
+ * \param mutex_destroy The mutex destroy function implementation. <br>
+ *                      This function must free any resources associated
+ *                      with the mutex object. <br>
+ *                      The behavior is undefined if the mutex was not
+ *                      initialized, if it has already been destroyed,
+ *                      if it is currently locked, or if this function
+ *                      is called concurrently from multiple threads.
+ * \param mutex_lock    The mutex lock function implementation. <br>
+ *                      The behavior is undefined if the mutex was not
+ *                      initialized, if it has already been destroyed, or if
+ *                      it is currently locked by the calling thread.
+ * \param mutex_unlock  The mutex unlock function implementation. <br>
+ *                      The behavior is undefined if the mutex is not
+ *                      currently locked by the calling thread.
+ * \param cond_init     The condition variable initialization implementation. <br>
+ *                      The behavior is undefined if the variable is already
+ *                      initialized, if it has been destroyed, or if this
+ *                      function is called concurrently from multiple threads.
+ * \param cond_destroy  The condition variable destroy implementation. <br>
+ *                      This function must free any resources associated
+ *                      with the condition variable object. <br>
+ *                      The behavior is undefined if the condition variable
+ *                      was not initialized, if it has already been destroyed,
+ *                      if a thread is waiting on it, or if this function
+ *                      is called concurrently from multiple threads.
+ * \param cond_signal   The condition variable signal implementation. <br>
+ *                      The behavior is undefined if the condition variable
+ *                      was not initialized or if it has already been destroyed.
+ * \param cond_broadcast The condition variable broadcast implementation. <br>
+ *                      The behavior is undefined if the condition variable
+ *                      was not initialized or if it has already been destroyed.
+ * \param cond_wait     The condition variable wait implementation. <br>
+ *                      The behavior is undefined if the mutex and the
+ *                      condition variable have not both been initialized,
+ *                      if one of them has already been destroyed, or if the
+ *                      mutex is not currently locked by the calling thread.
+ */
+void mbedtls_threading_set_alt(
+    int (*mutex_init)(mbedtls_platform_mutex_t *),
+    void (*mutex_destroy)(mbedtls_platform_mutex_t *),
+    int (*mutex_lock)(mbedtls_platform_mutex_t *),
+    int (*mutex_unlock)(mbedtls_platform_mutex_t *),
+    int (*cond_init)(mbedtls_platform_condition_variable_t *),
+    void (*cond_destroy)(mbedtls_platform_condition_variable_t *),
+    int (*cond_signal)(mbedtls_platform_condition_variable_t *),
+    int (*cond_broadcast)(mbedtls_platform_condition_variable_t *),
+    int (*cond_wait)(mbedtls_platform_condition_variable_t *,
+                     mbedtls_platform_mutex_t *));
+
+/**
+ * \brief               Free global mutexes.
+ */
+void mbedtls_threading_free_alt(void);
+#endif /* MBEDTLS_THREADING_ALT */
+
+typedef struct mbedtls_threading_mutex_t {
+    mbedtls_platform_mutex_t MBEDTLS_PRIVATE(mutex);
+
+    /* Whether the mutex has been initialized successfully.
+     *
+     * Attempting to lock or destroy a platform mutex that hasn't been
+     * successfully initialized can cause a crash or other undefined
+     * behavior on some platforms. Keeping track of a successful
+     * initialization makes it possible to turn such misuse into
+     * a predictable error. This is especially useful because
+     * mbedtls_mutex_init() doesn't return an error code, for
+     * historical reasons, so the application cannot handle such
+     * failures by itself.
+     */
+    char MBEDTLS_PRIVATE(initialized);
+
+    /* WARNING - state should only be accessed when holding the mutex lock in
+     * framework/tests/src/threading_helpers.c, otherwise corruption can occur.
+     * state will be 0 after a failed init or a free, and nonzero after a
+     * successful init. This field is for testing only and thus not considered
+     * part of the public API of Mbed TLS and may change without notice.*/
+    char MBEDTLS_PRIVATE(state);
+
+} mbedtls_threading_mutex_t;
+
+typedef struct mbedtls_threading_condition_variable_t {
+    mbedtls_platform_condition_variable_t MBEDTLS_PRIVATE(cond);
+} mbedtls_threading_condition_variable_t;
+
+/** Initialize a mutex (mutual exclusion lock).
+ *
+ * You must call this function on a mutex object before using it for any
+ * purpose.
+ *
+ * \note            This function may fail internally, but for historical
+ *                  reasons, it does not return a value. If the mutex
+ *                  initialization fails internally, mbedtls_mutex_free()
+ *                  will still work normally, and all other mutex functions
+ *                  will fail safely with a nonzero return code.
+ *
+ * \note            The behavior is undefined if:
+ *                  - \p mutex is already initialized;
+ *                  - this function is called concurrently on the same
+ *                    object from multiple threads.
+ *
+ * \param mutex     The mutex to initialize.
+ */
+void mbedtls_mutex_init(mbedtls_threading_mutex_t *mutex);
+
+/** Destroy a mutex.
+ *
+ * After this function returns, you may call mbedtls_mutex_init()
+ * again on \p mutex.
+ *
+ * \note            The behavior is undefined if:
+ *                  - any function is called concurrently on the same
+ *                    object from another thread;
+ *                  - mbedtls_mutex_init() has never been called on the
+ *                    object, and it is not all-bits-zero or `{0}`;
+ *                  - \p mutex is locked.
+ *
+ * \note            This function does nothing if:
+ *                  - \p mutex is all-bits-zero or `{0}`.
+ *                  - The last function called on \p mutex is
+ *                    mbedtls_mutex_free() (i.e. a double free is safe).
+ *
+ * \param mutex     The mutex to destroy.
+ */
+void mbedtls_mutex_free(mbedtls_threading_mutex_t *mutex);
+
+/** Lock a mutex.
+ *
+ * It must not be already locked by the calling thread
+ * (mutexes are not recursive).
+ *
+ * \note            The behavior is undefined if:
+ *                  - \p mutex has not been initialized with
+ *                    mbedtls_mutex_init(), or has already been freed
+ *                    with mbedtls_mutex_free();
+ *                  - \p mutex is already locked by the same thread.
+ *
+ * \param mutex     The mutex to lock.
+ *
+ * \retval 0
+ *                  Success.
+ * \retval #MBEDTLS_ERR_THREADING_USAGE_ERROR
+ *                  mbedtls_mutex_init() failed,
+ *                  or a mutex usage error was detected.
+ *                  Note that depending on the platform, a mutex usage
+ *                  error may result in a deadlock, a crash or other
+ *                  undesirable behavior instead of returning an error.
+ * \retval #PSA_ERROR_INSUFFICIENT_MEMORY
+ *                  There were insufficient resources to initialize or
+ *                  lock the mutex.
+ * \retval #PSA_ERROR_BAD_STATE
+ *                  The compilation option #MBEDTLS_THREADING_ALT is
+ *                  enabled, and mbedtls_threading_set_alt() has not
+ *                  been called.
+ */
+int mbedtls_mutex_lock(mbedtls_threading_mutex_t *mutex);
+
+/** Unlock a mutex.
+ *
+ * It must be currently locked by the calling thread.
+ *
+ * \note            The behavior is undefined if:
+ *                  - \p mutex has not been initialized with
+ *                    mbedtls_mutex_init(), or has already been freed
+ *                    with mbedtls_mutex_free();
+ *                  - \p mutex is not locked;
+ *                  - \p mutex was locked by a different thread.
+ *
+ * \param mutex     The mutex to unlock.
+ *
+ * \retval 0
+ *                  Success.
+ * \retval #MBEDTLS_ERR_THREADING_USAGE_ERROR
+ *                  mbedtls_mutex_init() failed,
+ *                  or a mutex usage error was detected.
+ *                  Note that depending on the platform, a mutex usage
+ *                  error may result in a deadlock, a crash or other
+ *                  undesirable behavior instead of returning an error.
+ * \retval #PSA_ERROR_BAD_STATE
+ *                  The compilation option #MBEDTLS_THREADING_ALT is
+ *                  enabled, and mbedtls_threading_set_alt() has not
+ *                  been called.
+ */
+int mbedtls_mutex_unlock(mbedtls_threading_mutex_t *mutex);
+
+/** Initialize a condition variable.
+ *
+ * \note            The behavior is undefined if:
+ *                  - \p cond is already initialized;
+ *                  - this function is called concurrently on the same
+ *                    object from multiple threads.
+ *
+ * \param cond      The condition variable to initialize.
+ *
+ * \retval 0
+ *                  Success.
+ * \retval #MBEDTLS_ERR_THREADING_USAGE_ERROR
+ *                  The condition variable is already initialized
+ *                  (on platforms where this can be detected),
+ *                  or an unpecified error occurred.
+ * \retval #PSA_ERROR_INSUFFICIENT_MEMORY
+ *                  There were insufficient resources to initialize the object.
+ * \retval #PSA_ERROR_BAD_STATE
+ *                  The compilation option #MBEDTLS_THREADING_ALT is
+ *                  enabled, and mbedtls_threading_set_alt() has not
+ *                  been called.
+ */
+int mbedtls_condition_variable_init(
+    mbedtls_threading_condition_variable_t *cond);
+
+
+/** Destroy a condition variable.
+ *
+ * After this function returns, you may call mbedtls_condition_variable_init()
+ * again on \p cond.
+ *
+ * \note            The behavior is undefined if:
+ *                  - \p cond has not been initialized with
+ *                    mbedtls_condition_variable_init();
+ *                  - any function is called concurrently on the same
+ *                    object from another thread.
+ *
+ * \param cond      The condition variable to destroy.
+ */
+void mbedtls_condition_variable_free(
+    mbedtls_threading_condition_variable_t *cond);
+
+/** Wake up one thread that is waiting on the given condition variable.
+ *
+ * Do nothing, successfully, if no thread is waiting.
+ *
+ * \note            The behavior is undefined if:
+ *                  - \p cond has not been initialized with
+ *                    mbedtls_condition_variable_init(), or has already been
+ *                    freed with mbedtls_condition_variable_free().
+ *
+ * \param cond      The condition variable to signal.
+ *
+ * \retval 0
+ *                  Success.
+ * \retval #MBEDTLS_ERR_THREADING_USAGE_ERROR
+ *                  A usage error was detected.
+ *                  Note that depending on the platform, a condition variable
+ *                  usage error may result in a deadlock, a crash or other
+ *                  undesirable behavior instead of returning an error.
+ * \retval #PSA_ERROR_BAD_STATE
+ *                  The compilation option #MBEDTLS_THREADING_ALT is
+ *                  enabled, and mbedtls_threading_set_alt() has not
+ *                  been called.
+ */
+int mbedtls_condition_variable_signal(
+    mbedtls_threading_condition_variable_t *cond);
+
+/** Wake up all threads that are waiting on the given condition variable.
+ *
+ * \note            The behavior is undefined if:
+ *                  - \p cond has not been initialized with
+ *                    mbedtls_condition_variable_init(), or has already been
+ *                    freed with mbedtls_condition_variable_free().
+ *
+ * \param cond      The condition variable to signal.
+ *
+ * \retval 0
+ *                  Success.
+ * \retval #MBEDTLS_ERR_THREADING_USAGE_ERROR
+ *                  A usage error was detected.
+ *                  Note that depending on the platform, a condition variable
+ *                  usage error may result in a deadlock, a crash or other
+ *                  undesirable behavior instead of returning an error.
+ * \retval #PSA_ERROR_BAD_STATE
+ *                  The compilation option #MBEDTLS_THREADING_ALT is
+ *                  enabled, and mbedtls_threading_set_alt() has not
+ *                  been called.
+ */
+int mbedtls_condition_variable_broadcast(
+    mbedtls_threading_condition_variable_t *cond);
+
+/** Wait for a wakeup signal on a condition variable.
+ *
+ * On entry, this function atomically unlocks \p mutex and blocks until
+ * another thread calls mbedtls_condition_variable_signal() or
+ * mbedtls_condition_variable_broadcast() on \p cond.
+ *
+ * Before returning, this function locks \p mutex.
+ *
+ * \note            On some platforms, it is possible for this function
+ *                  to stop blocking even if no signal is raised on \p cond
+ *                  (spurious wakeup).
+ *
+ * \note            The behavior is undefined if:
+ *                  - \p mutex has not been initialized with
+ *                    mbedtls_mutex_init(), or has already been
+ *                    freed with mbedtls_mutex_free();
+ *                  - \p cond has not been initialized with
+ *                    mbedtls_condition_variable_init(), or has already been
+ *                    freed with mbedtls_condition_variable_free();
+ *                   - \p mutex is not currently locked by the calling thread.
+ *
+ * \param cond      The condition variable to wait on.
+ * \param mutex     The mutex to unlock and re-lock.
+ *                  It must currently be locked by the calling thread.
+ *
+ * \retval 0
+ *                  Success.
+ * \retval #MBEDTLS_ERR_THREADING_USAGE_ERROR
+ *                  A usage error was detected.
+ *                  Note that depending on the platform, a condition variable
+ *                  usage error may result in a deadlock, a crash or other
+ *                  undesirable behavior instead of returning an error.
+ * \retval #PSA_ERROR_BAD_STATE
+ *                  The compilation option #MBEDTLS_THREADING_ALT is
+ *                  enabled, and mbedtls_threading_set_alt() has not
+ *                  been called.
+ */
+int mbedtls_condition_variable_wait(
+    mbedtls_threading_condition_variable_t *cond,
+    mbedtls_threading_mutex_t *mutex);
+
+/*
+ * Global mutexes
+ */
+#if defined(MBEDTLS_FS_IO)
+extern mbedtls_threading_mutex_t mbedtls_threading_readdir_mutex;
+#endif
+
+#if defined(MBEDTLS_HAVE_TIME_DATE) && !defined(MBEDTLS_PLATFORM_GMTIME_R_ALT)
+/* This mutex may or may not be used in the default definition of
+ * mbedtls_platform_gmtime_r(), but in order to determine that,
+ * we need to check POSIX features, hence modify _POSIX_C_SOURCE.
+ * With the current approach, this declaration is orphaned, lacking
+ * an accompanying definition, in case mbedtls_platform_gmtime_r()
+ * doesn't need it, but that's not a problem. */
+extern mbedtls_threading_mutex_t mbedtls_threading_gmtime_mutex;
+#endif /* MBEDTLS_HAVE_TIME_DATE && !MBEDTLS_PLATFORM_GMTIME_R_ALT */
+
+#endif /* MBEDTLS_THREADING_C */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* threading.h */
diff --git a/deps/LIEF/third-party/mbedtls/include/psa/crypto.h b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/include/psa/crypto.h
similarity index 82%
rename from deps/LIEF/third-party/mbedtls/include/psa/crypto.h
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/include/psa/crypto.h
index 2fe9f35ec3c..22b8970e607 100644
--- a/deps/LIEF/third-party/mbedtls/include/psa/crypto.h
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/include/psa/crypto.h
@@ -51,7 +51,7 @@ extern "C" {
 /**
  * The minor version of this implementation of the PSA Crypto API
  */
-#define PSA_CRYPTO_API_VERSION_MINOR 0
+#define PSA_CRYPTO_API_VERSION_MINOR 2

 /**@}*/

@@ -680,10 +680,6 @@ psa_status_t psa_import_key(const psa_key_attributes_t *attributes,
  *
  * - For symmetric keys (including MAC keys), the format is the
  *   raw bytes of the key.
- * - For DES, the key data consists of 8 bytes. The parity bits must be
- *   correct.
- * - For Triple-DES, the format is the concatenation of the
- *   two or three DES keys.
  * - For RSA key pairs (#PSA_KEY_TYPE_RSA_KEY_PAIR), the format
  *   is the non-encrypted DER encoding of the representation defined by
  *   PKCS\#1 (RFC 8017) as `RSAPrivateKey`, version 0.
@@ -3683,14 +3679,6 @@ psa_status_t psa_key_derivation_output_bytes(
  *   for the output produced by psa_export_key().
  *   The following key types defined in this specification follow this scheme:
  *
- *     - #PSA_KEY_TYPE_DES.
- *       Force-set the parity bits, but discard forbidden weak keys.
- *       For 2-key and 3-key triple-DES, the three keys are generated
- *       successively (for example, for 3-key triple-DES,
- *       if the first 8 bytes specify a weak key and the next 8 bytes do not,
- *       discard the first 8 bytes, use the next 8 bytes as the first key,
- *       and continue reading output from the operation to derive the other
- *       two keys).
  *     - Finite-field Diffie-Hellman keys (#PSA_KEY_TYPE_DH_KEY_PAIR(\c group)
  *       where \c group designates any Diffie-Hellman group) and
  *       ECC keys on a Weierstrass elliptic curve
@@ -3854,88 +3842,6 @@ psa_status_t psa_key_derivation_output_key_custom(
     size_t custom_data_length,
     mbedtls_svc_key_id_t *key);

-#ifndef __cplusplus
-/* Omitted when compiling in C++, because one of the parameters is a
- * pointer to a struct with a flexible array member, and that is not
- * standard C++.
- * https://github.com/Mbed-TLS/mbedtls/issues/9020
- */
-/** Derive a key from an ongoing key derivation operation with custom
- *  production parameters.
- *
- * \note
- * This is a deprecated variant of psa_key_derivation_output_key_custom().
- * It is equivalent except that the associated variable-length data
- * is passed in `params->data` instead of a separate parameter.
- * This function will be removed in a future version of Mbed TLS.
- *
- * \param[in] attributes    The attributes for the new key.
- *                          If the key type to be created is
- *                          #PSA_KEY_TYPE_PASSWORD_HASH then the algorithm in
- *                          the policy must be the same as in the current
- *                          operation.
- * \param[in,out] operation The key derivation operation object to read from.
- * \param[in] params        Customization parameters for the key derivation.
- *                          When this is #PSA_KEY_PRODUCTION_PARAMETERS_INIT
- *                          with \p params_data_length = 0,
- *                          this function is equivalent to
- *                          psa_key_derivation_output_key().
- *                          Mbed TLS currently only supports the default
- *                          production parameters, i.e.
- *                          #PSA_KEY_PRODUCTION_PARAMETERS_INIT,
- *                          for all key types.
- * \param params_data_length
- *                          Length of `params->data` in bytes.
- * \param[out] key          On success, an identifier for the newly created
- *                          key. For persistent keys, this is the key
- *                          identifier defined in \p attributes.
- *                          \c 0 on failure.
- *
- * \retval #PSA_SUCCESS
- *         Success.
- *         If the key is persistent, the key material and the key's metadata
- *         have been saved to persistent storage.
- * \retval #PSA_ERROR_ALREADY_EXISTS
- *         This is an attempt to create a persistent key, and there is
- *         already a persistent key with the given identifier.
- * \retval #PSA_ERROR_INSUFFICIENT_DATA
- *         There was not enough data to create the desired key.
- *         Note that in this case, no output is written to the output buffer.
- *         The operation's capacity is set to 0, thus subsequent calls to
- *         this function will not succeed, even with a smaller output buffer.
- * \retval #PSA_ERROR_NOT_SUPPORTED
- *         The key type or key size is not supported, either by the
- *         implementation in general or in this particular location.
- * \retval #PSA_ERROR_INVALID_ARGUMENT
- *         The provided key attributes are not valid for the operation.
- * \retval #PSA_ERROR_NOT_PERMITTED
- *         The #PSA_KEY_DERIVATION_INPUT_SECRET or
- *         #PSA_KEY_DERIVATION_INPUT_PASSWORD input was not provided through a
- *         key; or one of the inputs was a key whose policy didn't allow
- *         #PSA_KEY_USAGE_DERIVE.
- * \retval #PSA_ERROR_INSUFFICIENT_MEMORY \emptydescription
- * \retval #PSA_ERROR_INSUFFICIENT_STORAGE \emptydescription
- * \retval #PSA_ERROR_COMMUNICATION_FAILURE \emptydescription
- * \retval #PSA_ERROR_HARDWARE_FAILURE \emptydescription
- * \retval #PSA_ERROR_CORRUPTION_DETECTED \emptydescription
- * \retval #PSA_ERROR_DATA_INVALID \emptydescription
- * \retval #PSA_ERROR_DATA_CORRUPT \emptydescription
- * \retval #PSA_ERROR_STORAGE_FAILURE \emptydescription
- * \retval #PSA_ERROR_BAD_STATE
- *         The operation state is not valid (it must be active and completed
- *         all required input steps), or the library has not been previously
- *         initialized by psa_crypto_init().
- *         It is implementation-dependent whether a failure to initialize
- *         results in this error code.
- */
-psa_status_t psa_key_derivation_output_key_ext(
-    const psa_key_attributes_t *attributes,
-    psa_key_derivation_operation_t *operation,
-    const psa_key_production_parameters_t *params,
-    size_t params_data_length,
-    mbedtls_svc_key_id_t *key);
-#endif /* !__cplusplus */
-
 /** Compare output data from a key derivation operation to an expected value.
  *
  * This function calculates output bytes from a key derivation algorithm and
@@ -4142,6 +4048,89 @@ psa_status_t psa_raw_key_agreement(psa_algorithm_t alg,
                                    size_t output_size,
                                    size_t *output_length);

+/** Perform a key agreement and return the shared secret as a derivation key.
+ *
+ * \param private_key             Identifier of the private key to use. It must
+ *                                allow the usage #PSA_KEY_USAGE_DERIVE.
+ * \param[in] peer_key            Public key of the peer. It must be
+ *                                in the same format that psa_import_key()
+ *                                accepts. The standard formats for public
+ *                                keys are documented in the documentation
+ *                                of psa_export_public_key().
+ * \param peer_key_length         Size of \p peer_key in bytes.
+ * \param alg                     The key agreement algorithm to compute
+ *                                (\c PSA_ALG_XXX value such that
+ *                                #PSA_ALG_IS_RAW_KEY_AGREEMENT(\p alg)
+ *                                is true).
+ * \param[in] attributes          The attributes for the new key. This function uses
+ *                                the attributes as follows:
+ *                                 * The key type must be one of #PSA_KEY_TYPE_DERIVE,
+ *                                   #PSA_KEY_TYPE_RAW_DATA, #PSA_KEY_TYPE_HMAC, or
+ *                                   #PSA_KEY_TYPE_PASSWORD.
+ *                                 * The size of the returned key is always the
+ *                                   bit-size of the shared secret, rounded up
+ *                                   to a whole number of bytes. The key size in
+ *                                   attributes can be zero; if it is nonzero, it
+ *                                   must be equal to the output size of the key
+ *                                   agreement, in bits.
+ *                                   The output size, in bits, of the key agreement
+ *                                   is 8 * PSA_RAW_KEY_AGREEMENT_OUTPUT_SIZE(type, bits),
+ *                                   where type and bits are the type and bit-size of
+ *                                   private_key.
+ *                                 * The key permitted-algorithm policy is required for
+ *                                   keys that will be used for a cryptographic operation.
+ *                                 * The key usage flags define what operations are
+ *                                   permitted with the key.
+ *                                 * The key lifetime and identifier are required
+ *                                   for a persistent key.
+ * \param[out] key                On success, an identifier for the newly created
+ *                                key. #PSA_KEY_ID_NULL on failure.
+ * \retval #PSA_SUCCESS
+ *         Success.
+ * \retval #PSA_ERROR_BAD_STATE
+ *         The library has not been previously initialized by psa_crypto_init().
+ * \retval #PSA_ERROR_INVALID_HANDLE
+ *          \p private_key is not a valid key identifier.
+ * \retval #PSA_ERROR_NOT_PERMITTED
+ *         \p private_key does not have the PSA_KEY_USAGE_DERIVE flag,
+ *         or it does not permit the requested algorithm.
+ * \retval #PSA_ERROR_ALREADY_EXISTS
+ *         This is an attempt to create a persistent key, and there is already
+ *         a persistent key with the given identifier.
+ * \retval #PSA_ERROR_INVALID_ARGUMENT
+ *         * \p alg is not a key agreement algorithm.
+ *         * \p private_key is not compatible with \p alg.
+ *         * \p peer_key is not valid for \p alg or not compatible with
+ *           \p private_key.
+ *         * The output key attributes in \p attributes are not valid:
+ *              * The key type is not valid for key agreement output.
+ *              * The key size is nonzero, and is not the size of the shared secret.
+ *              * The key lifetime is invalid.
+ *              * The key identifier is not valid for the key lifetime.
+ *              * The key usage flags include invalid values.
+ *              * The key’s permitted-usage algorithm is invalid.
+ *              * The key attributes, as a whole, are invalid.
+ * \retval #PSA_ERROR_NOT_SUPPORTED
+ *         * \p alg is not a supported key agreement algorithm.
+ *         * \p private_key is not supported for use with alg.
+ *         * The output key attributes, as a whole, are not supported,
+ *           either by the implementation in general or in the specified
+ *           storage location.
+ * \retval #PSA_ERROR_INSUFFICIENT_MEMORY \emptydescription
+ * \retval #PSA_ERROR_INSUFFICIENT_STORAGE \emptydescription
+ * \retval #PSA_ERROR_COMMUNICATION_FAILURE \emptydescription
+ * \retval #PSA_ERROR_HARDWARE_FAILURE \emptydescription
+ * \retval #PSA_ERROR_CORRUPTION_DETECTED \emptydescription
+ * \retval #PSA_ERROR_STORAGE_FAILURE \emptydescription
+ * \retval #PSA_ERROR_DATA_CORRUPT \emptydescription
+ * \retval #PSA_ERROR_DATA_INVALID \emptydescription
+ */
+psa_status_t psa_key_agreement(mbedtls_svc_key_id_t private_key,
+                               const uint8_t *peer_key,
+                               size_t peer_key_length,
+                               psa_algorithm_t alg,
+                               const psa_key_attributes_t *attributes,
+                               mbedtls_svc_key_id_t *key);
 /**@}*/

 /** \defgroup random Random generation
@@ -4282,63 +4271,6 @@ psa_status_t psa_generate_key_custom(const psa_key_attributes_t *attributes,
                                      size_t custom_data_length,
                                      mbedtls_svc_key_id_t *key);

-#ifndef __cplusplus
-/* Omitted when compiling in C++, because one of the parameters is a
- * pointer to a struct with a flexible array member, and that is not
- * standard C++.
- * https://github.com/Mbed-TLS/mbedtls/issues/9020
- */
-/**
- * \brief Generate a key or key pair using custom production parameters.
- *
- * \note
- * This is a deprecated variant of psa_key_derivation_output_key_custom().
- * It is equivalent except that the associated variable-length data
- * is passed in `params->data` instead of a separate parameter.
- * This function will be removed in a future version of Mbed TLS.
- *
- * \param[in] attributes    The attributes for the new key.
- * \param[in] params        Customization parameters for the key generation.
- *                          When this is #PSA_KEY_PRODUCTION_PARAMETERS_INIT
- *                          with \p params_data_length = 0,
- *                          this function is equivalent to
- *                          psa_generate_key().
- * \param params_data_length
- *                          Length of `params->data` in bytes.
- * \param[out] key          On success, an identifier for the newly created
- *                          key. For persistent keys, this is the key
- *                          identifier defined in \p attributes.
- *                          \c 0 on failure.
- *
- * \retval #PSA_SUCCESS
- *         Success.
- *         If the key is persistent, the key material and the key's metadata
- *         have been saved to persistent storage.
- * \retval #PSA_ERROR_ALREADY_EXISTS
- *         This is an attempt to create a persistent key, and there is
- *         already a persistent key with the given identifier.
- * \retval #PSA_ERROR_NOT_SUPPORTED \emptydescription
- * \retval #PSA_ERROR_INVALID_ARGUMENT \emptydescription
- * \retval #PSA_ERROR_INSUFFICIENT_MEMORY \emptydescription
- * \retval #PSA_ERROR_INSUFFICIENT_ENTROPY \emptydescription
- * \retval #PSA_ERROR_COMMUNICATION_FAILURE \emptydescription
- * \retval #PSA_ERROR_HARDWARE_FAILURE \emptydescription
- * \retval #PSA_ERROR_CORRUPTION_DETECTED \emptydescription
- * \retval #PSA_ERROR_INSUFFICIENT_STORAGE \emptydescription
- * \retval #PSA_ERROR_DATA_INVALID \emptydescription
- * \retval #PSA_ERROR_DATA_CORRUPT \emptydescription
- * \retval #PSA_ERROR_STORAGE_FAILURE \emptydescription
- * \retval #PSA_ERROR_BAD_STATE
- *         The library has not been previously initialized by psa_crypto_init().
- *         It is implementation-dependent whether a failure to initialize
- *         results in this error code.
- */
-psa_status_t psa_generate_key_ext(const psa_key_attributes_t *attributes,
-                                  const psa_key_production_parameters_t *params,
-                                  size_t params_data_length,
-                                  mbedtls_svc_key_id_t *key);
-#endif /* !__cplusplus */
-
 /**@}*/

 /** \defgroup interruptible_hash Interruptible sign/verify hash
@@ -4428,8 +4360,9 @@ typedef struct psa_verify_hash_interruptible_operation_s psa_verify_hash_interru
  *                              time. The only guarantee is that lower values
  *                              for \p max_ops means functions will block for a
  *                              lesser maximum amount of time. The functions
- *                              \c psa_sign_interruptible_get_num_ops() and
- *                              \c psa_verify_interruptible_get_num_ops() are
+ *                              \c psa_sign_interruptible_get_num_ops(),
+ *                              \c psa_verify_interruptible_get_num_ops() and
+ *                              \c psa_generate_key_iop_get_num_ops() are
  *                              provided to help with tuning this value.
  *
  * \note                        This value defaults to
@@ -4964,6 +4897,906 @@ psa_status_t psa_verify_hash_abort(
     psa_verify_hash_interruptible_operation_t *operation);


+/**@}*/
+
+/**@}*/
+
+/**
+ *  \defgroup interruptible_key_agreement Interruptible Key Agreement
+ * @{
+ */
+
+/**
+ *  The type of the state data structure for interruptible key agreement
+ *  operations.
+ *
+ *  Before calling any function on an interruptible key agreement object, the
+ *  application must initialize it by any of the following means:
+ * - Set the structure to all-bits-zero, for example:
+ *   \code
+ *   psa_key_agreement_iop_t operation;
+ *   memset(&operation, 0, sizeof(operation));
+ *   \endcode
+ * - Initialize the structure to logical zero values, for example:
+ *   \code
+ *   psa_key_agreement_iop_t operation = {0};
+ *   \endcode
+ * - Initialize the structure to the initializer #PSA_KEY_AGREEMENT_IOP_INIT,
+ *   for example:
+ * - \code
+ *   psa_key_agreement_iop_t operation = PSA_KEY_AGREEMENT_IOP_INIT;
+ *   \endcode
+ * - Assign the result of the function psa_key_agreement_iop_init() to the
+ *   structure, for example:
+ *   \code
+ *   psa_key_agreement_iop_t operation;
+ *   operation = psa_key_agreement_iop_init();
+ *   \endcode
+ *
+ * This is an implementation-defined \c struct. Applications should not
+ * make any assumptions about the content of this structure.
+ * Implementation details can change in future versions without notice.
+ */
+typedef struct psa_key_agreement_iop_s psa_key_agreement_iop_t;
+
+/**
+ * \brief                       Get the number of ops that a key agreement
+ *                              operation has taken so far. If the operation has
+ *                              completed, then this will represent the number of
+ *                              ops required for the entire operation.
+ *                              After initialization or calling \c
+ *                              psa_key_agreement_iop_abort() on the operation,
+ *                              a value of 0 will be returned.
+ *
+ * \warning                     This is a beta API, and thus subject to change
+ *                              at any point. It is not bound by the usual
+ *                              interface stability promises.
+ *
+ *                              This is a helper provided to help you tune the
+ *                              value passed to \c
+ *                              psa_interruptible_set_max_ops().
+ *
+ * \param operation             The \c psa_key_agreement_iop_t to use. This must
+ *                              be initialized first.
+ *
+ * \return                      Number of ops that the operation has taken so
+ *                              far.
+ */
+uint32_t psa_key_agreement_iop_get_num_ops(psa_key_agreement_iop_t *operation);
+
+/**
+ * \brief                       Start a key agreement operation, in an
+ *                              interruptible manner.
+ *
+ * \see                         \c psa_key_agreement_iop_complete()
+ *
+ * \warning                     This is a beta API, and thus subject to change
+ *                              at any point. It is not bound by the usual
+ *                              interface stability promises.
+ *
+ * \warning                     The raw result of a key agreement algorithm such
+ *                              elliptic curve Diffie-Hellman has biases
+ *                              and should not be used directly as key material.
+ *                              It should instead be passed as input to a key
+ *                              derivation algorithm.
+ *
+ * \note                        This function combined with \c
+ *                              psa_key_agreement_iop_complete() is equivalent
+ *                              to \c psa_raw_key_agreement() but \c
+ *                              psa_key_agreement_iop_complete() can return
+ *                              early and resume according to the limit set with
+ *                              \c psa_interruptible_set_max_ops() to reduce the
+ *                              maximum time spent in a function.
+ *
+ * \note                        Users should call
+ *                              \c psa_key_agreement_iop_complete() repeatedly
+ *                              on the same operation object after a successful
+ *                              call to this function until \c
+ *                              psa_key_agreement_iop_complete() either returns
+ *                              #PSA_SUCCESS or an error.
+ *                              \c psa_key_agreement_iop_complete() will return
+ *                              #PSA_OPERATION_INCOMPLETE if there is more work
+ *                              to do. Alternatively users can call
+ *                              \c psa_key_agreement_iop_abort() at any point
+ *                              if they no longer want the result.
+ *
+ * \note                        If this function returns an error status, the
+ *                              operation enters an error state and must be
+ *                              aborted by calling \c
+ *                              psa_key_agreement_iop_abort().
+ *
+ * \param[in, out] operation    The \c psa_key_agreement_iop_t to use. This must
+ *                              be initialized as per the documentation for
+ *                              \c psa_key_agreement_iop_t, and be inactive.
+
+ * \param private_key           Identifier of the private key to use. It must
+ *                              allow the usage #PSA_KEY_USAGE_DERIVE.
+ * \param[in] peer_key          Public key of the peer. It must be in the
+ *                              same format that psa_import_key() accepts. The
+ *                              standard formats for public keys are documented
+ *                              in the documentation of psa_export_public_key().
+ *                              The peer key data is parsed with the type
+ *                              #PSA_KEY_TYPE_PUBLIC_KEY_OF_KEY_PAIR(\c type)
+ *                              where \c type is the type of \p private_key,
+ *                              and with the same bit-size as \p private_key.
+ * \param peer_key_length       Size of \p peer_key in bytes.
+ *
+ * \param alg                   The key agreement algorithm to compute
+ *                              (a \c PSA_ALG_XXX value such that
+ *                              #PSA_ALG_IS_KEY_AGREEMENT(\p alg) is true).
+ *
+ * \param[in] attributes        The attributes for the new key.
+ *                              The following attributes are required for all
+ *                              keys:
+ *                              * The key type, which must be one of
+ *                                #PSA_KEY_TYPE_DERIVE, #PSA_KEY_TYPE_RAW_DATA,
+ *                                #PSA_KEY_TYPE_HMAC or #PSA_KEY_TYPE_PASSWORD.
+ *                              The following attributes must be set for keys
+ *                              used in cryptographic operations:
+ *                              * The key permitted-algorithm policy
+ *                              * The key usage flags
+ *                              The following attributes must be set for keys
+ *                              that do not use the default volatile lifetime:
+ *                              * The key lifetime
+ *                              * The key identifier is required for a key with
+ *                                a persistent lifetime
+ *                              The following attributes are optional:
+ *                              * If the key size is nonzero, it must be equal
+ *                               to the output size of the key agreement,
+ *                               in bits.
+ *                              The output size, in bits, of the key agreement
+ *                              is 8 * #PSA_RAW_KEY_AGREEMENT_OUTPUT_SIZE(\c
+ *                              type, \c bits), where \c type and \c bits are
+ *                              the type and bit-size of \p private_key.
+ *
+ * \note                        \p attributes is an input parameter, it is not
+ *                              updated with the final key attributes. The final
+ *                              attributes of the new key can be queried by
+ *                              calling `psa_get_key_attributes()` with
+ *                              the key's identifier.
+ *
+ * \note                        This function clears the number of ops completed
+ *                              as part of the operation. Please ensure you copy
+ *                              this value via
+ *                              \c psa_key_agreement_iop_get_num_ops() if
+ *                              required before calling.
+ *
+ * \retval #PSA_SUCCESS
+ *          The operation started successfully.
+ *          Call \c psa_key_agreement_iop_complete() with the same context to
+ *          complete the operation.
+ *
+ * \retval #PSA_ERROR_BAD_STATE
+ *          Another operation has already been started on this context, and is
+ *          still in progress.
+ *
+ * \retval #PSA_ERROR_NOT_PERMITTED
+ *          The following conditions can result in this error:
+ *          * Either the \p private_key does not have the #PSA_KEY_USAGE_DERIVE`
+ *          flag, or it does not permit the requested algorithm.
+ *
+ * \retval #PSA_ERROR_INVALID_HANDLE
+ *          \p private_key is not a valid key identifier.
+ *
+ * \retval #PSA_ERROR_ALREADY_EXISTS
+ *          This is an attempt to create a persistent key, and there is already
+ *          a persistent key with the given identifier.
+ *
+ * \retval #PSA_ERROR_INVALID_ARGUMENT
+ *          The following conditions can result in this error:
+ *          * \p alg is not a key agreement algorithm.
+ *          * \p private_key is not compatible with \p alg.
+ *          * \p peer_key is not a valid public key corresponding to
+ *            \p private_key.
+ *          * The output key attributes in \p attributes are not valid:
+ *              - The key type is not valid for key agreement output.
+ *              - The key size is nonzero, and is not the size of the shared
+ *                secret.
+ *              - The key lifetime is invalid.
+ *              - The key identifier is not valid for the key lifetime.
+ *              - The key usage flags include invalid values.
+ *              - The key's permitted-usage algorithm is invalid.
+ *              - The key attributes, as a whole, are invalid.
+ *
+ * \retval #PSA_ERROR_NOT_SUPPORTED
+ *          The following conditions can result in this error:
+ *          * \p alg is not supported.
+ *          * \p private_key is not supported for use with \p alg.
+ *          * Only elliptic curve Diffie-Hellman with ECC keys is supported, not
+ *            finite field Diffie-Hellman with DH keys.
+ *
+ * \retval #PSA_ERROR_INVALID_ARGUMENT \emptydescription
+ * \retval #PSA_ERROR_INSUFFICIENT_MEMORY \emptydescription
+ * \retval #PSA_ERROR_COMMUNICATION_FAILURE \emptydescription
+ * \retval #PSA_ERROR_HARDWARE_FAILURE \emptydescription
+ * \retval #PSA_ERROR_CORRUPTION_DETECTED \emptydescription
+ * \retval #PSA_ERROR_STORAGE_FAILURE \emptydescription
+ * \retval #PSA_ERROR_DATA_CORRUPT \emptydescription
+ * \retval #PSA_ERROR_DATA_INVALID \emptydescription
+ * \retval #PSA_ERROR_INSUFFICIENT_STORAGE \emptydescription
+ * \retval #PSA_ERROR_BAD_STATE
+ *         The following conditions can result in this error:
+ *         * The library has not been previously initialized by
+ *           \c psa_crypto_init().
+ *         * The operation state is not valid: it must be inactive.
+ */
+
+psa_status_t psa_key_agreement_iop_setup(
+    psa_key_agreement_iop_t *operation,
+    mbedtls_svc_key_id_t private_key,
+    const uint8_t *peer_key,
+    size_t peer_key_length,
+    psa_algorithm_t alg,
+    const psa_key_attributes_t *attributes);
+
+/**
+ * \brief                       Continue and eventually complete the action of
+ *                              key agreement, in an interruptible
+ *                              manner.
+ *
+ * \see                         \c psa_key_agreement_iop_setup()
+ *
+ * \warning                     This is a beta API, and thus subject to change
+ *                              at any point. It is not bound by the usual
+ *                              interface stability promises.
+ *
+ * \note                        This function combined with \c
+ *                              psa_key_agreement_iop_setup() is equivalent to
+ *                              \c psa_raw_key_agreement() but this
+ *                              function can return early and resume according
+ *                              to the limit set with \c
+ *                              psa_interruptible_set_max_ops() to reduce the
+ *                              maximum time spent in a function call.
+ *
+ * \note                        Users should call this function on the same
+ *                              operation object repeatedly while it returns
+ *                              #PSA_OPERATION_INCOMPLETE, stopping when it
+ *                              returns either #PSA_SUCCESS or an error.
+ *                              Alternatively users can call
+ *                              \c psa_key_agreement_iop_abort() at any point if
+ *                              they no longer want the result.
+ *
+ * \note                        When this function returns successfully, the
+ *                              operation becomes inactive. If this function
+ *                              returns an error status, the operation enters an
+ *                              error state and must be aborted by calling
+ *                              \c psa_key_agreement_iop_abort().
+ *
+ * \param[in, out] operation    The \c psa_key_agreement_iop_t to use. This must
+ *                              be initialized first, and have had \c
+ *                              psa_key_agreement_iop_start() called with it
+ *                              first.
+ *
+ * \param[out] key              On success, an identifier for the newly created
+ *                              key. On failure this will be set to
+ *                              #PSA_KEY_ID_NULL.
+ *
+ * \retval #PSA_SUCCESS
+ *          The operation is complete and \p key contains the shared secret.
+ *          If the key is persistent, the key material and the key's metadata
+ *          have been saved to persistent storage.
+ *
+ * \retval #PSA_OPERATION_INCOMPLETE
+ *         Operation was interrupted due to the setting of \c
+ *         psa_interruptible_set_max_ops(). There is still work to be done.
+ *         Call this function again with the same operation object.
+ *
+ * \retval #PSA_ERROR_ALREADY_EXISTS
+ *         This is an attempt to create a persistent key, and there is already a
+ *         persistent key with the given identifier.
+ * \retval #PSA_ERROR_INVALID_SIGNATURE
+ *         The calculation was performed successfully, but the passed
+ *         signature is not a valid signature.
+ * \retval #PSA_ERROR_BAD_STATE
+ *         An operation was not previously started on this context via
+ *         \c psa_key_agreement_iop_start().
+ * \retval #PSA_ERROR_NOT_SUPPORTED \emptydescription
+ * \retval #PSA_ERROR_INVALID_ARGUMENT \emptydescription
+ * \retval #PSA_ERROR_INSUFFICIENT_MEMORY \emptydescription
+ * \retval #PSA_ERROR_COMMUNICATION_FAILURE \emptydescription
+ * \retval #PSA_ERROR_HARDWARE_FAILURE \emptydescription
+ * \retval #PSA_ERROR_CORRUPTION_DETECTED \emptydescription
+ * \retval #PSA_ERROR_STORAGE_FAILURE \emptydescription
+ * \retval #PSA_ERROR_DATA_CORRUPT \emptydescription
+ * \retval #PSA_ERROR_DATA_INVALID \emptydescription
+ * \retval #PSA_ERROR_INSUFFICIENT_ENTROPY \emptydescription
+ * \retval #PSA_ERROR_BAD_STATE
+ *         The following conditions can result in this error:
+ *         * The library has not been previously initialized by
+ *           \c psa_crypto_init().
+ *         * The operation state is not valid: it must be inactive.
+ */
+psa_status_t psa_key_agreement_iop_complete(
+    psa_key_agreement_iop_t *operation,
+    mbedtls_svc_key_id_t *key);
+
+/**
+ * \brief                       Abort a key agreement operation.
+ *
+ * \warning                     This is a beta API, and thus subject to change
+ *                              at any point. It is not bound by the usual
+ *                              interface stability promises.
+ *
+ * \note                        This function clears the number of ops completed
+ *                              as part of the operation. Please ensure you copy
+ *                              this value via
+ *                              \c psa_key_agreement_iop_get_num_ops() if
+ *                              required before calling.
+ *
+ * \note                        Aborting an operation frees all
+ *                              associated resources except for the operation
+ *                              structure itself. Once aborted, the operation
+ *                              object can be reused for another operation by
+ *                              calling \c psa_key_agreement_iop_setup() again.
+ *
+ * \note                        You may call this function any time after the
+ *                              operation object has been initialized.
+ *                              In particular, calling \c
+ *                              psa_key_agreement_iop_abort() after the
+ *                              operation has already been terminated by a call
+ *                              to \c psa_key_agreement_iop_abort() or
+ *                              psa_key_agreement_iop_complete() is safe.
+ *
+ * \param[in,out] operation     The \c psa_key_agreement_iop_t to use
+ *
+ * \retval #PSA_SUCCESS
+ *          The operation was aborted successfully.
+ * \retval #PSA_ERROR_BAD_STATE
+ *          The library has not been previously initialized by
+ *          \c psa_crypto_init().
+ */
+psa_status_t psa_key_agreement_iop_abort(
+    psa_key_agreement_iop_t *operation);
+
+/**@}*/
+
+/**
+ *  \defgroup interruptible_generate_key Interruptible Key Generation
+ * @{
+ */
+
+/**
+ *  The type of the state data structure for interruptible key generation
+ *  operations.
+ *
+ *  Before calling any function on an interruptible key generation object, the
+ *  application must initialize it by any of the following means:
+ * - Set the structure to all-bits-zero, for example:
+ *   \code
+ *   psa_generate_key_iop_t operation;
+ *   memset(&operation, 0, sizeof(operation));
+ *   \endcode
+ * - Initialize the structure to logical zero values, for example:
+ *   \code
+ *   psa_generate_key_iop_t operation = {0};
+ *   \endcode
+ * - Initialize the structure to the initializer #PSA_GENERATE_KEY_IOP_INIT,
+ *   for example:
+ *   \code
+ *   psa_generate_key_iop_t operation = PSA_GENERATE_KEY_IOP_INIT;
+ *   \endcode
+ * - Assign the result of the function psa_generate_key_iop_init() to the
+ *   structure, for example:
+ *   \code
+ *   psa_generate_key_iop_t operation;
+ *   operation = psa_generate_key_iop_init();
+ *   \endcode
+ *
+ * This is an implementation-defined \c struct. Applications should not
+ * make any assumptions about the content of this structure.
+ * Implementation details can change in future versions without notice.
+ */
+typedef struct psa_generate_key_iop_s psa_generate_key_iop_t;
+
+/**
+ * \brief                       Get the number of ops that a key generation
+ *                              operation has taken so far. If the operation has
+ *                              completed, then this will represent the number
+ *                              of ops required for the entire operation. After
+ *                              initialization or calling \c
+ *                              psa_generate_key_iop_abort() on the operation,
+ *                              a value of 0 will be returned.
+ *
+ * \warning                     This is a beta API, and thus subject to change
+ *                              at any point. It is not bound by the usual
+ *                              interface stability promises.
+ *                              This is a helper provided to help you tune the
+ *                              value passed to \c
+ *                              psa_interruptible_set_max_ops().
+ *
+ * \param operation             The \c psa_generate_key_iop_t to use. This must
+ *                              be initialized first.
+ *
+ * \return                      Number of ops that the operation has taken so
+ *                              far.
+ */
+uint32_t psa_generate_key_iop_get_num_ops(psa_generate_key_iop_t *operation);
+
+/**
+ * \brief                       Start a key generation operation, in an
+ *                              interruptible manner.
+ *
+ * \see                         \c psa_generate_key_iop_complete()
+ *
+ * \warning                     This is a beta API, and thus subject to change
+ *                              at any point. It is not bound by the usual
+ *                              interface stability promises.
+ *
+ * \note                        This function combined with \c
+ *                              psa_generate_key_iop_complete() is equivalent
+ *                              to \c psa_generate_key() but \c
+ *                              psa_generate_key_iop_complete() can return
+ *                              early and resume according to the limit set with
+ *                              \c psa_interruptible_set_max_ops() to reduce the
+ *                              maximum time spent in a function.
+ *
+ * \note                        Users should call
+ *                              \c psa_generate_key_iop_complete() repeatedly
+ *                              on the same operation object after a successful
+ *                              call to this function until \c
+ *                              psa_generate_key_iop_complete() either returns
+ *                              #PSA_SUCCESS or an error.
+ *                              \c psa_generate_key_iop_complete() will return
+ *                              #PSA_OPERATION_INCOMPLETE if there is more work
+ *                              to do. Alternatively users can call
+ *                              \c psa_generate_key_iop_abort() at any point
+ *                              if they no longer want the result.
+ *
+ * \note                        This function clears the number of ops completed
+ *                              as part of the operation. Please ensure you copy
+ *                              this value via
+ *                              \c psa_generate_key_iop_get_num_ops() if
+ *                              required before calling.
+ *
+ * \note                        If this function returns an error status, the
+ *                              operation enters an error state and must be
+ *                              aborted by calling \c
+ *                              psa_generate_key_iop_abort().
+ *
+ * \note                        Only asymmetric key pairs are supported. (See \p attributes.)
+ *
+ * \param[in, out] operation    The \c psa_generate_key_iop_t to use.
+ *                              This must be initialized as per the
+ *                              documentation for
+ *                              \c psa_generate_key_iop_t, and be inactive.
+ *
+ * \param[in] attributes        The attributes for the new key.
+ *                              The following attributes are required for all
+ *                              keys:
+ *                              * The key type. It must be an asymmetric key-pair.
+ *                              * The key size. It must be a valid size for the
+ *                                key type.
+ *                              The following attributes must be set for keys
+ *                              used in cryptographic operations:
+ *                              * The key permitted-algorithm policy.
+ *                              * The key usage flags.
+ *                              The following attributes must be set for keys
+ *                              that do not use the default volatile lifetime:
+ *                              * The key lifetime.
+ *                              * The key identifier is required for a key with
+ *                                a persistent lifetime,
+ *
+ * \note                        \p attributes is an input parameter, it is not
+ *                              updated with the final key attributes. The final
+ *                              attributes of the new key can be queried by
+ *                              calling `psa_get_key_attributes()` with
+ *                              the key's identifier.
+ *
+ * \retval #PSA_SUCCESS
+ *          The operation started successfully.
+ *          Call \c psa_generate_key_iop_complete() with the same context to
+ *          complete the operation.
+ *
+ * \retval PSA_ERROR_ALREADY_EXISTS
+ *          This is an attempt to create a persistent key, and there is already
+ *          a persistent key with the given identifier
+ * \retval PSA_ERROR_NOT_SUPPORTED
+ *          The key attributes, as a whole, are not supported, either in general
+ *          or in the specified storage location.
+ * \retval PSA_ERROR_INVALID_ARGUMENT
+ *          The following conditions can result in this error:
+ *          * The key type is invalid, or is an asymmetric public key type.
+ *          * The key size is not valid for the key type.
+ *          * The key lifetime is invalid.
+ *          * The key identifier is not valid for the key lifetime.
+ *          * The key usage flags include invalid values.
+ *          * The key's permitted-usage algorithm is invalid.
+ *          * The key attributes, as a whole, are invalid.
+ * \retval PSA_ERROR_NOT_PERMITTED
+ *          Creating a key with the specified attributes is not permitted.
+ *
+ * \retval #PSA_ERROR_INSUFFICIENT_MEMORY \emptydescription
+ * \retval #PSA_ERROR_COMMUNICATION_FAILURE \emptydescription
+ * \retval #PSA_ERROR_HARDWARE_FAILURE \emptydescription
+ * \retval #PSA_ERROR_CORRUPTION_DETECTED \emptydescription
+ * \retval #PSA_ERROR_STORAGE_FAILURE \emptydescription
+ * \retval #PSA_ERROR_DATA_CORRUPT \emptydescription
+ * \retval #PSA_ERROR_DATA_INVALID \emptydescription
+ * \retval #PSA_ERROR_INSUFFICIENT_STORAGE \emptydescription
+ * \retval #PSA_ERROR_BAD_STATE
+ *         The following conditions can result in this error:
+ *         * The library has not been previously initialized by
+ *           \c psa_crypto_init().
+ *         * The operation state is not valid: it must be inactive.
+ */
+
+psa_status_t psa_generate_key_iop_setup(
+    psa_generate_key_iop_t *operation,
+    const psa_key_attributes_t *attributes);
+
+/**
+ * \brief                       Continue and eventually complete the action of
+ *                              key generation, in an interruptible
+ *                              manner.
+ *
+ * \see                         \c psa_generate_key_iop_setup()
+ *
+ * \warning                     This is a beta API, and thus subject to change
+ *                              at any point. It is not bound by the usual
+ *                              interface stability promises.
+ *
+ * \note                        This function combined with \c
+ *                              psa_generate_key_iop_setup() is equivalent to
+ *                              \c psa_generate_key() but this
+ *                              function can return early and resume according
+ *                              to the limit set with \c
+ *                              psa_interruptible_set_max_ops() to reduce the
+ *                              maximum time spent in a function call.
+ *
+ * \note                        Users should call this function on the same
+ *                              operation object repeatedly whilst it returns
+ *                              #PSA_OPERATION_INCOMPLETE, stopping when it
+ *                              returns either #PSA_SUCCESS or an error.
+ *                              Alternatively users can call
+ *                              \c psa_generate_key_iop_abort() at any
+ *                              point if they no longer want the result.
+ *
+ * \note                        When this function returns successfully, the
+ *                              operation becomes inactive. If this function
+ *                              returns an error status, the operation enters an
+ *                              error state and must be aborted by calling
+ *                              \c psa_generate_key_iop_abort().
+ *
+ * \param[in, out] operation    The \c psa_generate_key_iop_t to use.
+ *                              This must be initialized first, and have had \c
+ *                              psa_generate_key_iop_setup() called
+ *                              with it first.
+ *
+ * \param[out] key              On success, an identifier for the newly created
+ *                              key, on failure this will be set to
+ *                              #PSA_KEY_ID_NULL.
+ *
+ * \retval #PSA_SUCCESS
+ *          The operation is complete and \p key contains the new key.
+ *          If the key is persistent, the key material and the key's metadata
+ *          have been saved to persistent storage.
+ *
+ * \retval #PSA_OPERATION_INCOMPLETE
+ *         Operation was interrupted due to the setting of \c
+ *         psa_interruptible_set_max_ops(). There is still work to be done.
+ *         Call this function again with the same operation object.
+ *
+ * \retval #PSA_ERROR_ALREADY_EXISTS
+ *         This is an attempt to create a persistent key, and there is already a
+ *         persistent key with the given identifier.
+ *
+ * \retval #PSA_ERROR_NOT_SUPPORTED \emptydescription
+ * \retval #PSA_ERROR_INVALID_ARGUMENT \emptydescription
+ * \retval #PSA_ERROR_INSUFFICIENT_MEMORY \emptydescription
+ * \retval #PSA_ERROR_COMMUNICATION_FAILURE \emptydescription
+ * \retval #PSA_ERROR_HARDWARE_FAILURE \emptydescription
+ * \retval #PSA_ERROR_CORRUPTION_DETECTED \emptydescription
+ * \retval #PSA_ERROR_STORAGE_FAILURE \emptydescription
+ * \retval #PSA_ERROR_DATA_CORRUPT \emptydescription
+ * \retval #PSA_ERROR_DATA_INVALID \emptydescription
+ * \retval #PSA_ERROR_INSUFFICIENT_ENTROPY \emptydescription
+ * \retval #PSA_ERROR_BAD_STATE
+ *         The following conditions can result in this error:
+ *         * The library has not been previously initialized by
+ *           \c psa_crypto_init().
+ *         * The operation state is not valid: it must be active.
+ */
+psa_status_t psa_generate_key_iop_complete(
+    psa_generate_key_iop_t *operation,
+    mbedtls_svc_key_id_t *key);
+
+/**
+ * \brief                       Abort a key generation operation.
+ *
+ * \warning                     This is a beta API, and thus subject to change
+ *                              at any point. It is not bound by the usual
+ *                              interface stability promises.
+ *
+ * \note                        This function clears the number of ops completed
+ *                              as part of the operation. Please ensure you copy
+ *                              this value via
+ *                              \c psa_generate_key_iop_get_num_ops() if
+ *                              required before calling.
+ *
+ * \note                        Aborting an operation frees all
+ *                              associated resources except for the operation
+ *                              structure itself. Once aborted, the operation
+ *                              object can be reused for another operation by
+ *                              calling \c psa_generate_key_iop_setup() again.
+ *
+ * \note                        You may call this function any time after the
+ *                              operation object has been initialized.
+ *                              In particular, calling \c
+ *                              psa_generate_key_iop_abort() after the
+ *                              operation has already been terminated by a call
+ *                              to \c psa_generate_key_iop_abort() or
+ *                              \c psa_generate_key_iop_complete() is safe.
+ *
+ * \param[in,out] operation     The \c psa_key_agreement_iop_t to use
+ *
+ * \retval #PSA_SUCCESS
+ *          The operation was aborted successfully.
+ * \retval #PSA_ERROR_BAD_STATE
+ *          The library has not been previously initialized by
+ *          \c psa_crypto_init().
+ */
+psa_status_t psa_generate_key_iop_abort(
+    psa_generate_key_iop_t *operation);
+
+/**@}*/
+
+/**
+ *  \defgroup interruptible_export_public_key Interruptible public-key export
+ * @{
+ */
+
+/**
+ *  The type of the state data structure for interruptible public-key export
+ *  operations.
+ *
+ *  Before calling any function on an interruptible export public-key object, the
+ *  application must initialize it by any of the following means:
+ * - Set the structure to all-bits-zero, for example:
+ * \code
+ * psa_export_public_key_iop_t operation;
+ * memset(&operation, 0, sizeof(operation));
+ * \endcode
+ * - Initialize the structure to logical zero values, for example:
+ * \code
+ * psa_export_public_key_iop_t operation = {0};
+ * \endcode
+ * - Initialize the structure to the initializer #PSA_EXPORT_PUBLIC_KEY_IOP_INIT,
+ *   for example:
+ * \code
+ * psa_export_public_key_iop_t operation = PSA_EXPORT_PUBLIC_KEY_IOP_INIT;
+ * \endcode
+ * - Assign the result of the function psa_export_public_key_iop_init() to the
+ *   structure, for example:
+ * \code
+ * psa_export_public_key_iop_t operation;
+ * operation = psa_export_public_key_iop_init();
+ * \endcode
+ *
+ * This is an implementation-defined \c struct. Applications should not
+ * make any assumptions about the content of this structure.
+ * Implementation details can change in future versions without notice.
+ */
+typedef struct psa_export_public_key_iop_s psa_export_public_key_iop_t;
+
+/**
+ * \brief                       Get the number of ops that an export public-key
+ *                              operation has taken so far. If the operation has
+ *                              completed, then this will represent the number
+ *                              of ops required for the entire operation. After
+ *                              initialization or calling
+ *                              \c psa_export_public_key_iop_abort() on the operation,
+ *                              a value of 0 will be returned.
+ *
+ * \warning                     This is a beta API, and thus subject to change
+ *                              at any point. It is not bound by the usual
+ *                              interface stability promises.
+ *                              This is a helper provided to help you tune the
+ *                              value passed to
+ *                              \c psa_interruptible_set_max_ops().
+ *
+ * \param operation             The \c psa_export_public_key_iop_t to use. This must
+ *                              be initialized first.
+ *
+ * \return                      Number of ops that the operation has taken so
+ *                              far.
+ */
+uint32_t psa_export_public_key_iop_get_num_ops(psa_export_public_key_iop_t *operation);
+
+/**
+ * \brief                       Start an interruptible operation to export a
+ *                              public key or the public part of a key pair in
+ *                              binary format.
+
+ *
+ * \see                         \c psa_export_public_key_iop_complete()
+ *
+ * \warning                     This is a beta API, and thus subject to change
+ *                              at any point. It is not bound by the usual
+ *                              interface stability promises.
+ *
+ * \note                        This function combined with
+ *                              \c psa_export_public_key_iop_complete() is equivalent
+ *                              to \c psa_export_public_key() but
+ *                               \c psa_export_public_key_iop_complete() can return
+ *                              early and resume according to the limit set with
+ *                              \c psa_interruptible_set_max_ops() to reduce the
+ *                              maximum time spent in a function.
+ *
+ * \note                        Users should call
+ *                              \c psa_export_public_key_iop_complete() repeatedly
+ *                              on the same operation object after a successful
+ *                              call to this function until
+ *                              \c psa_export_public_key_iop_complete() either returns
+ *                              #PSA_SUCCESS or an error.
+ *                              \c psa_export_public_key_iop_complete() will return
+ *                              #PSA_OPERATION_INCOMPLETE if there is more work
+ *                              to do. Alternatively users can call
+ *                              \c psa_export_public_key_iop_abort() at any point
+ *                              if they no longer want the result.
+ *
+ *  \note                       This function clears the number of ops completed
+ *                              as part of the operation. Please ensure you copy
+ *                              this value via
+ *                              \c psa_export_public_key_iop_get_num_ops() if
+ *                              required before calling.
+ *
+ * \note                        If this function returns an error status, the
+ *                              operation enters an error state and must be
+ *                              aborted by calling
+ *                              \c psa_export_public_key_iop_abort().
+ *
+ * \param[in, out] operation    The \c psa_export_public_key_iop_t to use.
+ *                              This must be initialized as per the
+ *                              documentation for
+ *                              \c psa_export_public_key_iop_t, and be inactive.
+ *
+ * \param[in]      key          Identifier of the key to export.
+ *
+ * \retval #PSA_SUCCESS
+ *          The operation started successfully.
+ *          Call \c psa_export_public_key_iop_complete() with the same context to
+ *          complete the operation.
+ * \retval #PSA_ERROR_INVALID_HANDLE
+ *          \c key is not a valid key identifier.
+ * \retval #PSA_ERROR_INVALID_ARGUMENT
+ *         The key is neither a public key nor a key pair.
+ * \retval #PSA_ERROR_NOT_SUPPORTED
+ *         The following conditions can result in this error:
+ *          * The key's storage location does not support export of the key.
+ *          * The implementation does not support export of keys with this key type.
+ * \retval #PSA_ERROR_BAD_STATE
+ *         The following conditions can result in this error:
+ *         * The library has not been previously initialized by
+ *           \c psa_crypto_init().
+ *         * The operation state is not valid: it must be inactive.
+ * \retval #PSA_ERROR_COMMUNICATION_FAILURE \emptydescription
+ * \retval #PSA_ERROR_CORRUPTION_DETECTED \emptydescription
+ * \retval #PSA_ERROR_STORAGE_FAILURE \emptydescription
+ * \retval #PSA_ERROR_DATA_CORRUPT \emptydescription
+ * \retval #PSA_ERROR_DATA_INVALID \emptydescription
+ * \retval #PSA_ERROR_INSUFFICIENT_MEMORY \emptydescription
+ */
+psa_status_t psa_export_public_key_iop_setup(psa_export_public_key_iop_t *operation,
+                                             mbedtls_svc_key_id_t key);
+
+/**
+ * \brief                       Continue and eventually complete the action of
+ *                              exporting a public key, in an interruptible
+ *                              manner.
+ * \see                         \c psa_export_public_key_iop_setup()
+ *
+ * \warning                     This is a beta API, and thus subject to change
+ *                              at any point. It is not bound by the usual
+ *                              interface stability promises.
+ *
+ * \note                        This function combined with
+ *                              \c psa_export_public_key_iop_setup() is equivalent to
+ *                              \c psa_export_public_key() but this
+ *                              function can return early and resume according
+ *                              to the limit set with
+ *                              \c psa_interruptible_set_max_ops() to reduce the
+ *                              maximum time spent in a function call.
+ *
+ * \note                        Users should call this function on the same
+ *                              operation object repeatedly whilst it returns
+ *                              #PSA_OPERATION_INCOMPLETE, stopping when it
+ *                              returns either #PSA_SUCCESS or an error.
+ *                              Alternatively users can call
+ *                              \c psa_export_public_key_iop_abort() at any
+ *                              point if they no longer want the result.
+ *
+ * \note                        When this function returns successfully, the
+ *                              operation becomes inactive. If this function
+ *                              returns an error status, the operation enters an
+ *                              error state and must be aborted by calling
+ *                              \c psa_export_public_key_iop_abort().
+ *
+ * \param[in, out] operation    The \c psa_export_public_key_iop_t to use.
+ *                              This must be initialized first, and have had
+ *                              \c psa_export_public_key_iop_setup() called
+ *                              with it first.
+ *
+ * \param[out] data             Buffer where the key data is to be written.
+ *
+ * \param[in] data_size         Size of the \c data buffer in bytes.
+ *                              This must be appropriate for the key:
+ *                               * The required output size is
+ *                                 \c PSA_EXPORT_PUBLIC_KEY_OUTPUT_SIZE(type, bits)
+ *                                 where type is the key type and bits is the key
+ *                                 size in bits.
+ *                               * \c PSA_EXPORT_PUBLIC_KEY_MAX_SIZE evaluates to the maximum
+ *                                 output size of any supported public key or public part
+ *                                 of a key pair.
+ *
+ * \param[out] data_length      On success, the number of bytes that make up the key data.
+ *
+ * \retval #PSA_SUCCESS
+ *         Success. The first (*\c data_length) bytes of data contain the exported
+           public key.
+ * \retval #PSA_ERROR_BAD_STATE
+ *         The following conditions can result in this error:
+ *         * The library has not been previously initialized by
+ *           \c psa_crypto_init().
+ *         * The operation state is not valid: it must be active.
+ * \retval #PSA_ERROR_BUFFER_TOO_SMALL
+ *          The size of the data buffer is too small.
+ *          \c PSA_EXPORT_PUBLIC_KEY_OUTPUT_SIZE(),
+ *          \c PSA_EXPORT_PUBLIC_KEY_MAX_SIZE.
+ * \retval #PSA_ERROR_INSUFFICIENT_MEMORY \emptydescription
+ * \retval #PSA_ERROR_COMMUNICATION_FAILURE \emptydescription
+ * \retval #PSA_ERROR_CORRUPTION_DETECTED \emptydescription
+ * \retval #PSA_ERROR_STORAGE_FAILURE \emptydescription
+ * \retval #PSA_ERROR_DATA_CORRUPT \emptydescription
+ * \retval #PSA_ERROR_DATA_INVALID \emptydescription
+ * \retval #PSA_OPERATION_INCOMPLETE
+ *         Operation was interrupted due to the setting of
+ *         \c psa_interruptible_set_max_ops(). There is still work to be done.
+ *         Call this function again with the same operation object.
+ */
+psa_status_t psa_export_public_key_iop_complete(psa_export_public_key_iop_t *operation,
+                                                uint8_t *data,
+                                                size_t data_size,
+                                                size_t *data_length);
+
+/**
+ * \brief                       Abort an interruptible public-key export operation.
+ *
+ * \warning                     This is a beta API, and thus subject to change
+ *                              at any point. It is not bound by the usual
+ *                              interface stability promises.
+ *
+ * \note                        This function clears the number of ops completed
+ *                              as part of the operation. Please ensure you copy
+ *                              this value via
+ *                              \c psa_export_public_key_iop_get_num_ops() if
+ *                              required before calling.
+ *
+ * \note                        Aborting an operation frees all
+ *                              associated resources except for the operation
+ *                              structure itself. Once aborted, the operation
+ *                              object can be reused for another operation by
+ *                              calling \c psa_export_public_key_iop_setup() again.
+ *
+ * \note                        You may call this function any time after the
+ *                              operation object has been initialized.
+ *                              In particular, calling
+ *                              \c psa_export_public_key_iop_abort() after the
+ *                              operation has already been terminated by a call
+ *                              to \c psa_export_public_key_iop_abort() or
+ *                              \c psa_export_public_key_iop_complete() is safe.
+ *
+ * \param[in,out] operation     The \c psa_export_public_key_iop_t to use
+ *
+ * \retval #PSA_SUCCESS
+ *          The operation was aborted successfully.
+ * \retval #PSA_ERROR_BAD_STATE
+ *          The library has not been previously initialized by
+ *          \c psa_crypto_init().
+ * \retval #PSA_ERROR_CORRUPTION_DETECTED \emptydescription
+ *
+ */
+psa_status_t psa_export_public_key_iop_abort(psa_export_public_key_iop_t *operation);
+
 /**@}*/

 #ifdef __cplusplus
diff --git a/deps/LIEF/third-party/mbedtls/include/psa/crypto_adjust_auto_enabled.h b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/include/psa/crypto_adjust_auto_enabled.h
similarity index 95%
rename from deps/LIEF/third-party/mbedtls/include/psa/crypto_adjust_auto_enabled.h
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/include/psa/crypto_adjust_auto_enabled.h
index 3a2af151806..590343ba4f5 100644
--- a/deps/LIEF/third-party/mbedtls/include/psa/crypto_adjust_auto_enabled.h
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/include/psa/crypto_adjust_auto_enabled.h
@@ -15,7 +15,7 @@
 #ifndef PSA_CRYPTO_ADJUST_AUTO_ENABLED_H
 #define PSA_CRYPTO_ADJUST_AUTO_ENABLED_H

-#if !defined(MBEDTLS_CONFIG_FILES_READ)
+#if !defined(TF_PSA_CRYPTO_CONFIG_FILES_READ)
 #error "Do not include psa/crypto_adjust_*.h manually! This can lead to problems, " \
     "up to and including runtime errors such as buffer overflows. " \
     "If you're trying to fix a complaint from check_config.h, just remove " \
diff --git a/deps/LIEF/third-party/mbedtls/include/psa/crypto_adjust_config_dependencies.h b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/include/psa/crypto_adjust_config_dependencies.h
similarity index 94%
rename from deps/LIEF/third-party/mbedtls/include/psa/crypto_adjust_config_dependencies.h
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/include/psa/crypto_adjust_config_dependencies.h
index 92e9c4de287..8ed7c4de311 100644
--- a/deps/LIEF/third-party/mbedtls/include/psa/crypto_adjust_config_dependencies.h
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/include/psa/crypto_adjust_config_dependencies.h
@@ -18,7 +18,7 @@
 #ifndef PSA_CRYPTO_ADJUST_CONFIG_DEPENDENCIES_H
 #define PSA_CRYPTO_ADJUST_CONFIG_DEPENDENCIES_H

-#if !defined(MBEDTLS_CONFIG_FILES_READ)
+#if !defined(TF_PSA_CRYPTO_CONFIG_FILES_READ)
 #error "Do not include psa/crypto_adjust_*.h manually! This can lead to problems, " \
     "up to and including runtime errors such as buffer overflows. " \
     "If you're trying to fix a complaint from check_config.h, just remove " \
@@ -48,4 +48,8 @@
 #define PSA_WANT_ALG_CMAC 1
 #endif

+#if defined(MBEDTLS_NIST_KW_C)
+#define PSA_WANT_ALG_ECB_NO_PADDING 1
+#endif
+
 #endif /* PSA_CRYPTO_ADJUST_CONFIG_DEPENDENCIES_H */
diff --git a/deps/LIEF/third-party/mbedtls/tf-psa-crypto/include/psa/crypto_adjust_config_derived.h b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/include/psa/crypto_adjust_config_derived.h
new file mode 100644
index 00000000000..14417d7fb92
--- /dev/null
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/include/psa/crypto_adjust_config_derived.h
@@ -0,0 +1,101 @@
+/**
+ * \file psa/crypto_adjust_config_derived.h
+ * \brief Adjust PSA configuration by defining internal symbols
+ *
+ * This is an internal header. Do not include it directly.
+ */
+/*
+ *  Copyright The Mbed TLS Contributors
+ *  SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+ */
+
+#ifndef PSA_CRYPTO_ADJUST_CONFIG_DERIVED_H
+#define PSA_CRYPTO_ADJUST_CONFIG_DERIVED_H
+
+#if !defined(TF_PSA_CRYPTO_CONFIG_FILES_READ)
+#error "Do not include psa/crypto_adjust_*.h manually! This can lead to problems, " \
+    "up to and including runtime errors such as buffer overflows. " \
+    "If you're trying to fix a complaint from check_config.h, just remove " \
+    "it from your configuration file: since Mbed TLS 3.0, it is included " \
+    "automatically at the right point."
+#endif /* */
+
+/* The number of "true" entropy sources (excluding NV seed).
+ * This must be consistent with mbedtls_entropy_init() in entropy.c.
+ */
+/* Define auxiliary macros, because in standard C, defined(xxx) is only
+ * allowed directly on an #if or #elif line, not in recursive expansion. */
+#if defined(MBEDTLS_PSA_BUILTIN_GET_ENTROPY)
+#define MBEDTLS_PSA_BUILTIN_GET_ENTROPY_DEFINED 1
+#else
+#define MBEDTLS_PSA_BUILTIN_GET_ENTROPY_DEFINED 0
+#endif
+#if defined(MBEDTLS_PSA_DRIVER_GET_ENTROPY)
+#define MBEDTLS_PSA_DRIVER_GET_ENTROPY_DEFINED 1
+#else
+#define MBEDTLS_PSA_DRIVER_GET_ENTROPY_DEFINED 0
+#endif
+
+#define MBEDTLS_ENTROPY_TRUE_SOURCES ( \
+        MBEDTLS_PSA_BUILTIN_GET_ENTROPY_DEFINED + \
+        MBEDTLS_PSA_DRIVER_GET_ENTROPY_DEFINED + \
+        0)
+
+/* Whether there is at least one entropy source for the entropy module.
+ *
+ * Note that when MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG is enabled, the entropy
+ * module is unused and the configuration will typically not include any
+ * entropy source, so this macro will typically remain undefined.
+ */
+#if defined(MBEDTLS_ENTROPY_NV_SEED)
+#define MBEDTLS_ENTROPY_HAVE_SOURCES (MBEDTLS_ENTROPY_TRUE_SOURCES + 1)
+#elif MBEDTLS_ENTROPY_TRUE_SOURCES != 0
+#define MBEDTLS_ENTROPY_HAVE_SOURCES MBEDTLS_ENTROPY_TRUE_SOURCES
+#else
+#undef MBEDTLS_ENTROPY_HAVE_SOURCES
+#endif
+
+#if defined(PSA_WANT_ALG_ECDSA) || defined(PSA_WANT_ALG_DETERMINISTIC_ECDSA)
+#define PSA_HAVE_ALG_SOME_ECDSA
+#endif
+
+#if defined(PSA_HAVE_ALG_SOME_ECDSA) && defined(PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_BASIC)
+#define PSA_HAVE_ALG_ECDSA_SIGN
+#endif
+
+#if defined(PSA_HAVE_ALG_SOME_ECDSA) && defined(PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY)
+#define PSA_HAVE_ALG_ECDSA_VERIFY
+#endif
+
+#if defined(PSA_WANT_ALG_JPAKE)
+#define PSA_WANT_ALG_SOME_PAKE 1
+#endif
+
+/*
+ * If the RNG strength is not explicitly defined in the configuration, define
+ * it here to its default value. This ensures it is available for use in
+ * adjusting the configuration of RNG internal modules in
+ * config_adjust_legacy_crypto.h.
+ */
+#if !defined(MBEDTLS_PSA_CRYPTO_RNG_STRENGTH)
+#define MBEDTLS_PSA_CRYPTO_RNG_STRENGTH 256
+#endif
+
+#if !defined(MBEDTLS_PSA_CRYPTO_RNG_HASH)
+
+#if defined(PSA_WANT_ALG_SHA_256)
+#define MBEDTLS_PSA_CRYPTO_RNG_HASH PSA_ALG_SHA_256
+#elif defined(PSA_WANT_ALG_SHA_512)
+#define MBEDTLS_PSA_CRYPTO_RNG_HASH PSA_ALG_SHA_512
+#else
+#if (defined(MBEDTLS_PSA_CRYPTO_C) && !defined(MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG))
+#error "Not able to define MBEDTLS_PSA_CRYPTO_RNG_HASH for the entropy module."
+#endif
+#if defined(MBEDTLS_HMAC_DRBG_C)
+#error "Not able to define MBEDTLS_PSA_CRYPTO_RNG_HASH for HMAC_DRBG."
+#endif
+#endif /* !PSA_WANT_ALG_SHA_256, !PSA_WANT_ALG_SHA_512 */
+
+#endif /* !MBEDTLS_PSA_CRYPTO_RNG_HASH */
+
+#endif /* PSA_CRYPTO_ADJUST_CONFIG_DERIVED_H */
diff --git a/deps/LIEF/third-party/mbedtls/include/psa/crypto_adjust_config_key_pair_types.h b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/include/psa/crypto_adjust_config_key_pair_types.h
similarity index 98%
rename from deps/LIEF/third-party/mbedtls/include/psa/crypto_adjust_config_key_pair_types.h
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/include/psa/crypto_adjust_config_key_pair_types.h
index cec39e01ced..c33d7771eb5 100644
--- a/deps/LIEF/third-party/mbedtls/include/psa/crypto_adjust_config_key_pair_types.h
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/include/psa/crypto_adjust_config_key_pair_types.h
@@ -21,7 +21,7 @@
 #ifndef PSA_CRYPTO_ADJUST_KEYPAIR_TYPES_H
 #define PSA_CRYPTO_ADJUST_KEYPAIR_TYPES_H

-#if !defined(MBEDTLS_CONFIG_FILES_READ)
+#if !defined(TF_PSA_CRYPTO_CONFIG_FILES_READ)
 #error "Do not include psa/crypto_adjust_*.h manually! This can lead to problems, " \
     "up to and including runtime errors such as buffer overflows. " \
     "If you're trying to fix a complaint from check_config.h, just remove " \
diff --git a/deps/LIEF/third-party/mbedtls/include/psa/crypto_adjust_config_synonyms.h b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/include/psa/crypto_adjust_config_synonyms.h
similarity index 97%
rename from deps/LIEF/third-party/mbedtls/include/psa/crypto_adjust_config_synonyms.h
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/include/psa/crypto_adjust_config_synonyms.h
index 54b116f4347..c5a652e743f 100644
--- a/deps/LIEF/third-party/mbedtls/include/psa/crypto_adjust_config_synonyms.h
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/include/psa/crypto_adjust_config_synonyms.h
@@ -16,7 +16,7 @@
 #ifndef PSA_CRYPTO_ADJUST_CONFIG_SYNONYMS_H
 #define PSA_CRYPTO_ADJUST_CONFIG_SYNONYMS_H

-#if !defined(MBEDTLS_CONFIG_FILES_READ)
+#if !defined(TF_PSA_CRYPTO_CONFIG_FILES_READ)
 #error "Do not include psa/crypto_adjust_*.h manually! This can lead to problems, " \
     "up to and including runtime errors such as buffer overflows. " \
     "If you're trying to fix a complaint from check_config.h, just remove " \
diff --git a/deps/LIEF/third-party/mbedtls/include/psa/crypto_builtin_composites.h b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/include/psa/crypto_builtin_composites.h
similarity index 74%
rename from deps/LIEF/third-party/mbedtls/include/psa/crypto_builtin_composites.h
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/include/psa/crypto_builtin_composites.h
index c14f5dd110f..82ca4be8f32 100644
--- a/deps/LIEF/third-party/mbedtls/include/psa/crypto_builtin_composites.h
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/include/psa/crypto_builtin_composites.h
@@ -1,8 +1,10 @@
-/*
- *  Context structure declaration of the Mbed TLS software-based PSA drivers
- *  called through the PSA Crypto driver dispatch layer.
- *  This file contains the context structures of those algorithms which need to
- *  rely on other algorithms, i.e. are 'composite' algorithms.
+/**
+ * \file crypto_builtin_composites.h
+ *
+ * \brief Context structure declaration of the Mbed TLS software-based PSA
+ * drivers called through the PSA Crypto driver dispatch layer. This file
+ * contains the context structures of those algorithms which need to rely on
+ * other algorithms, i.e. are 'composite' algorithms.
  *
  * \note This file may not be included directly. Applications must
  * include psa/crypto.h.
@@ -24,14 +26,18 @@

 #include <psa/crypto_driver_common.h>

-#include "mbedtls/cmac.h"
+#include "mbedtls/private/cmac.h"
 #if defined(MBEDTLS_PSA_BUILTIN_ALG_GCM)
-#include "mbedtls/gcm.h"
+#include "mbedtls/private/gcm.h"
 #endif
 #if defined(MBEDTLS_PSA_BUILTIN_ALG_CCM)
-#include "mbedtls/ccm.h"
+#include "mbedtls/private/ccm.h"
+#endif
+#include "mbedtls/private/chachapoly.h"
+
+#if defined(MBEDTLS_PSA_BUILTIN_ALG_ECDH)
+#include "mbedtls/private/ecdh.h"
 #endif
-#include "mbedtls/chachapoly.h"

 /*
  * MAC multi-part operation definitions.
@@ -102,7 +108,7 @@ typedef struct {

 #define MBEDTLS_PSA_AEAD_OPERATION_INIT { 0, 0, 0, 0, { 0 } }

-#include "mbedtls/ecdsa.h"
+#include "mbedtls/private/ecdsa.h"

 /* Context structure for the Mbed TLS interruptible sign hash implementation. */
 typedef struct {
@@ -177,7 +183,7 @@ typedef struct {

 /* EC-JPAKE operation definitions */

-#include "mbedtls/ecjpake.h"
+#include "mbedtls/private/ecjpake.h"

 #if defined(MBEDTLS_PSA_BUILTIN_ALG_JPAKE)
 #define MBEDTLS_PSA_BUILTIN_PAKE  1
@@ -211,4 +217,55 @@ typedef struct {

 #define MBEDTLS_PSA_PAKE_OPERATION_INIT { { 0 } }

+typedef struct {
+#if defined(MBEDTLS_ECP_C)
+    mbedtls_ecp_keypair MBEDTLS_PRIVATE(ecp);
+    uint32_t num_ops;
+#else
+    /* Make the struct non-empty if algs not supported. */
+    unsigned MBEDTLS_PRIVATE(dummy);
+#endif
+} mbedtls_psa_generate_key_iop_t;
+
+#if defined(MBEDTLS_ECP_C)
+#define MBEDTLS_PSA_GENERATE_KEY_IOP_INIT { MBEDTLS_ECP_KEYPAIR_INIT, 0 }
+#else
+#define MBEDTLS_PSA_GENERATE_KEY_IOP_INIT { 0 }
+#endif
+
+/* Context structure for the Mbed TLS interruptible key agreement implementation. */
+typedef struct {
+#if defined(MBEDTLS_PSA_BUILTIN_ALG_ECDH) && defined(MBEDTLS_ECP_RESTARTABLE)
+    mbedtls_ecdh_context MBEDTLS_PRIVATE(ctx);
+    uint32_t MBEDTLS_PRIVATE(num_ops);
+#else
+    /* Make the struct non-empty if algs not supported. */
+    unsigned MBEDTLS_PRIVATE(dummy);
+#endif
+} mbedtls_psa_key_agreement_interruptible_operation_t;
+
+#if defined(MBEDTLS_PSA_BUILTIN_ALG_ECDH) && defined(MBEDTLS_ECP_RESTARTABLE)
+#define MBEDTLS_PSA_KEY_AGREEMENT_IOP_INIT { MBEDTLS_ECDH_CONTEXT_INIT, 0 }
+#else
+#define MBEDTLS_PSA_KEY_AGREEMENT_IOP_INIT { 0 }
+#endif
+
+/* Context structure for the Mbed TLS interruptible export public-key implementation. */
+typedef struct {
+#if defined(MBEDTLS_ECP_C) && defined(MBEDTLS_ECP_RESTARTABLE)
+    mbedtls_ecp_keypair *MBEDTLS_PRIVATE(key);
+    mbedtls_ecp_restart_ctx MBEDTLS_PRIVATE(restart_ctx);
+    uint32_t MBEDTLS_PRIVATE(num_ops);
+#else
+    /* Make the struct non-empty if algs not supported. */
+    unsigned MBEDTLS_PRIVATE(dummy);
+#endif
+} mbedtls_psa_export_public_key_iop_t;
+
+#if defined(MBEDTLS_ECP_C) && defined(MBEDTLS_ECP_RESTARTABLE)
+#define MBEDTLS_PSA_EXPORT_PUBLIC_KEY_IOP_INIT { NULL, MBEDTLS_ECP_RESTART_INIT, 0 }
+#else
+#define MBEDTLS_PSA_EXPORT_PUBLIC_KEY_IOP_INIT { 0 }
+#endif
+
 #endif /* PSA_CRYPTO_BUILTIN_COMPOSITES_H */
diff --git a/deps/LIEF/third-party/mbedtls/include/psa/crypto_builtin_key_derivation.h b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/include/psa/crypto_builtin_key_derivation.h
similarity index 93%
rename from deps/LIEF/third-party/mbedtls/include/psa/crypto_builtin_key_derivation.h
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/include/psa/crypto_builtin_key_derivation.h
index 6b91ae73f1e..1115b507928 100644
--- a/deps/LIEF/third-party/mbedtls/include/psa/crypto_builtin_key_derivation.h
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/include/psa/crypto_builtin_key_derivation.h
@@ -1,8 +1,10 @@
-/*
- *  Context structure declaration of the Mbed TLS software-based PSA drivers
- *  called through the PSA Crypto driver dispatch layer.
- *  This file contains the context structures of key derivation algorithms
- *  which need to rely on other algorithms.
+/**
+ * \file crypto_builtin_key_derivation.h
+ *
+ * \brief Context structure declaration of the Mbed TLS software-based PSA
+ * drivers called through the PSA Crypto driver dispatch layer. This file
+ * contains the context structures of key derivation algorithms which need to
+ * rely on other algorithms.
  *
  * \note This file may not be included directly. Applications must
  * include psa/crypto.h.
diff --git a/deps/LIEF/third-party/mbedtls/include/psa/crypto_builtin_primitives.h b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/include/psa/crypto_builtin_primitives.h
similarity index 85%
rename from deps/LIEF/third-party/mbedtls/include/psa/crypto_builtin_primitives.h
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/include/psa/crypto_builtin_primitives.h
index 98ab4d33398..f32ede2cf7e 100644
--- a/deps/LIEF/third-party/mbedtls/include/psa/crypto_builtin_primitives.h
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/include/psa/crypto_builtin_primitives.h
@@ -1,8 +1,10 @@
-/*
- *  Context structure declaration of the Mbed TLS software-based PSA drivers
- *  called through the PSA Crypto driver dispatch layer.
- *  This file contains the context structures of those algorithms which do not
- *  rely on other algorithms, i.e. are 'primitive' algorithms.
+/**
+ * \file crypto_builtin_primitives.h
+ *
+ * \brief Context structure declaration of the Mbed TLS software-based PSA
+ * drivers called through the PSA Crypto driver dispatch layer. This file
+ * contains the context structures of those algorithms which do not rely on
+ * other algorithms, i.e. are 'primitive' algorithms.
  *
  * \note This file may not be included directly. Applications must
  * include psa/crypto.h.
@@ -28,12 +30,12 @@
  * Hash multi-part operation definitions.
  */

-#include "mbedtls/md5.h"
-#include "mbedtls/ripemd160.h"
-#include "mbedtls/sha1.h"
-#include "mbedtls/sha256.h"
-#include "mbedtls/sha512.h"
-#include "mbedtls/sha3.h"
+#include "mbedtls/private/md5.h"
+#include "mbedtls/private/ripemd160.h"
+#include "mbedtls/private/sha1.h"
+#include "mbedtls/private/sha256.h"
+#include "mbedtls/private/sha512.h"
+#include "mbedtls/private/sha3.h"

 #if defined(MBEDTLS_PSA_BUILTIN_ALG_MD5) || \
     defined(MBEDTLS_PSA_BUILTIN_ALG_RIPEMD160) || \
@@ -85,7 +87,7 @@ typedef struct {
  * Cipher multi-part operation definitions.
  */

-#include "mbedtls/cipher.h"
+#include "mbedtls/private/cipher.h"

 #if defined(MBEDTLS_PSA_BUILTIN_ALG_STREAM_CIPHER) || \
     defined(MBEDTLS_PSA_BUILTIN_ALG_CTR) || \
diff --git a/deps/LIEF/third-party/mbedtls/tf-psa-crypto/include/psa/crypto_compat.h b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/include/psa/crypto_compat.h
new file mode 100644
index 00000000000..881516b8d5e
--- /dev/null
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/include/psa/crypto_compat.h
@@ -0,0 +1,66 @@
+/**
+ * \file psa/crypto_compat.h
+ *
+ * \brief PSA cryptography module: Backward compatibility aliases
+ *
+ * This header declares alternative names for macro and functions.
+ * New application code should not use these names.
+ * These names may be removed in a future version of Mbed TLS.
+ *
+ * \note This file may not be included directly. Applications must
+ * include psa/crypto.h.
+ */
+/*
+ *  Copyright The Mbed TLS Contributors
+ *  SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+ */
+
+#ifndef PSA_CRYPTO_COMPAT_H
+#define PSA_CRYPTO_COMPAT_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* This function is not a TF-PSA-Crypto API and may be removed without notice.
+ *
+ * Dummy version of a function removed in
+ * https://github.com/Mbed-TLS/TF-PSA-Crypto/pull/466
+ *
+ * The function needs to remain available during a transition period
+ * for the sake of the PSA simulator, which lives in Mbed TLS.
+ * Once TF-PSA-Crypto no longer needs the function,
+ * `tests/psa-client-server/psasim/src/psa_sim_crypto_server.c` will
+ * need to be updated to no longer need the function, and it will be
+ * possible to remove the corresponding RPC call altogether.
+ */
+int psa_can_do_hash(psa_algorithm_t hash_alg);
+
+/* This defition is required to provide compatibility with the PSA arch
+ * tests. Without it building the tests will fail. To remove it we would
+ * need to change the tests to remove all references to this symbol.
+ */
+#define PSA_KEY_TYPE_DES ((psa_key_type_t) 0x2301)
+
+/** The beta encoding of JPAKE algorithms, with no hash.
+ *
+ * This came from the beta version of the PSA Crypto PAKE 1.2 extension,
+ * which is what Mbed TLS 3.x implemented.
+ * Since TF-PSA-Crypto 1.0.0, we no longer support the beta version of
+ * specification, so this algorithm encoding is no longer supported in
+ * JPAKE cipher suites. Use #PSA_ALG_JPAKE instead.
+ *
+ * \note It is unspecified whether a key with #PSA_ALG_JPAKE_BETA
+ *       in its policy may be used to perform a JPAKE operation.
+ */
+/* TF-PSA-Crypto 1.x still supports using persistent keys whose policy uses
+ * this legacy encoding. As of TF-PSA-Crypto 1.0.0, we also allow this
+ * algorithm encoding in the policy of newly created keys, because it makes
+ * our implementation simpler. This may change without notice. */
+#define PSA_ALG_JPAKE_BETA PSA_ALG_JPAKE_BASE
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* PSA_CRYPTO_COMPAT_H */
diff --git a/deps/LIEF/third-party/mbedtls/tf-psa-crypto/include/psa/crypto_config.h b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/include/psa/crypto_config.h
new file mode 100644
index 00000000000..5c6d1d37e4c
--- /dev/null
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/include/psa/crypto_config.h
@@ -0,0 +1,1985 @@
+/**
+ * \file psa/crypto_config.h
+ * \brief PSA crypto configuration options (set of defines)
+ *
+ */
+/**
+ * This file determines which cryptographic mechanisms are enabled
+ * through the PSA Cryptography API (\c psa_xxx() functions).
+ *
+ * To enable a cryptographic mechanism, uncomment the definition of
+ * the corresponding \c PSA_WANT_xxx preprocessor symbol.
+ * To disable a cryptographic mechanism, comment out the definition of
+ * the corresponding \c PSA_WANT_xxx preprocessor symbol.
+ * The names of cryptographic mechanisms correspond to values
+ * defined in psa/crypto_values.h, with the prefix \c PSA_WANT_ instead
+ * of \c PSA_.
+ *
+ * Note that many cryptographic mechanisms involve two symbols: one for
+ * the key type (\c PSA_WANT_KEY_TYPE_xxx) and one for the algorithm
+ * (\c PSA_WANT_ALG_xxx). Mechanisms with additional parameters may involve
+ * additional symbols.
+ */
+
+/*
+ *  Copyright The Mbed TLS Contributors
+ *  SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+ */
+
+#ifndef PSA_CRYPTO_CONFIG_H
+#define PSA_CRYPTO_CONFIG_H
+
+/**
+ * This is an optional version symbol that enables compatibility handling of
+ * config files.
+ *
+ * It is equal to the #TF_PSA_CRYPTO_VERSION_NUMBER of the TF-PSA-Crypto
+ * version introduced the config format we want to be compatible with.
+ */
+#define TF_PSA_CRYPTO_CONFIG_VERSION 0x01000000
+
+/**
+ * \name SECTION: SECTION Cryptographic mechanism selection (PSA API)
+ *
+ * This section sets PSA API settings.
+ * \{
+ */
+
+#define PSA_WANT_ALG_CBC_NO_PADDING             1
+#define PSA_WANT_ALG_CBC_PKCS7                  1
+#define PSA_WANT_ALG_CCM                        1
+#define PSA_WANT_ALG_CCM_STAR_NO_TAG            1
+#define PSA_WANT_ALG_CMAC                       1
+#define PSA_WANT_ALG_CFB                        1
+#define PSA_WANT_ALG_CHACHA20_POLY1305          1
+#define PSA_WANT_ALG_CTR                        1
+#define PSA_WANT_ALG_DETERMINISTIC_ECDSA        1
+#define PSA_WANT_ALG_ECB_NO_PADDING             1
+#define PSA_WANT_ALG_ECDH                       1
+#define PSA_WANT_ALG_FFDH                       1
+#define PSA_WANT_ALG_ECDSA                      1
+#define PSA_WANT_ALG_JPAKE                      1
+#define PSA_WANT_ALG_GCM                        1
+#define PSA_WANT_ALG_HKDF                       1
+#define PSA_WANT_ALG_HKDF_EXTRACT               1
+#define PSA_WANT_ALG_HKDF_EXPAND                1
+#define PSA_WANT_ALG_HMAC                       1
+#define PSA_WANT_ALG_MD5                        1
+#define PSA_WANT_ALG_OFB                        1
+#define PSA_WANT_ALG_PBKDF2_HMAC                1
+#define PSA_WANT_ALG_PBKDF2_AES_CMAC_PRF_128    1
+#define PSA_WANT_ALG_RIPEMD160                  1
+#define PSA_WANT_ALG_RSA_OAEP                   1
+#define PSA_WANT_ALG_RSA_PKCS1V15_CRYPT         1
+#define PSA_WANT_ALG_RSA_PKCS1V15_SIGN          1
+#define PSA_WANT_ALG_RSA_PSS                    1
+#define PSA_WANT_ALG_SHA_1                      1
+#define PSA_WANT_ALG_SHA_224                    1
+#define PSA_WANT_ALG_SHA_256                    1
+#define PSA_WANT_ALG_SHA_384                    1
+#define PSA_WANT_ALG_SHA_512                    1
+#define PSA_WANT_ALG_SHA3_224                   1
+#define PSA_WANT_ALG_SHA3_256                   1
+#define PSA_WANT_ALG_SHA3_384                   1
+#define PSA_WANT_ALG_SHA3_512                   1
+#define PSA_WANT_ALG_STREAM_CIPHER              1
+#define PSA_WANT_ALG_TLS12_PRF                  1
+#define PSA_WANT_ALG_TLS12_PSK_TO_MS            1
+#define PSA_WANT_ALG_TLS12_ECJPAKE_TO_PMS       1
+
+#define PSA_WANT_ECC_BRAINPOOL_P_R1_256         1
+#define PSA_WANT_ECC_BRAINPOOL_P_R1_384         1
+#define PSA_WANT_ECC_BRAINPOOL_P_R1_512         1
+#define PSA_WANT_ECC_MONTGOMERY_255             1
+#define PSA_WANT_ECC_MONTGOMERY_448             1
+#define PSA_WANT_ECC_SECP_K1_256                1
+/* For secp256r1, consider enabling #MBEDTLS_PSA_P256M_DRIVER_ENABLED
+ * (see the description in psa/crypto_config.h for details). */
+#define PSA_WANT_ECC_SECP_R1_256                1
+#define PSA_WANT_ECC_SECP_R1_384                1
+#define PSA_WANT_ECC_SECP_R1_521                1
+/* These 2 curves are not part of the public API. They are kept temporarily for
+ * internal testing only and will removed in a future minor version. */
+//#define PSA_WANT_ECC_SECP_K1_192                1
+//#define PSA_WANT_ECC_SECP_R1_192                1
+
+#define PSA_WANT_DH_RFC7919_2048                1
+#define PSA_WANT_DH_RFC7919_3072                1
+#define PSA_WANT_DH_RFC7919_4096                1
+#define PSA_WANT_DH_RFC7919_6144                1
+#define PSA_WANT_DH_RFC7919_8192                1
+
+#define PSA_WANT_KEY_TYPE_DERIVE                1
+#define PSA_WANT_KEY_TYPE_PASSWORD              1
+#define PSA_WANT_KEY_TYPE_PASSWORD_HASH         1
+#define PSA_WANT_KEY_TYPE_HMAC                  1
+#define PSA_WANT_KEY_TYPE_AES                   1
+#define PSA_WANT_KEY_TYPE_ARIA                  1
+#define PSA_WANT_KEY_TYPE_CAMELLIA              1
+#define PSA_WANT_KEY_TYPE_CHACHA20              1
+#define PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY        1
+#define PSA_WANT_KEY_TYPE_DH_PUBLIC_KEY         1
+#define PSA_WANT_KEY_TYPE_RAW_DATA              1
+#define PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY        1
+
+/*
+ * The following symbols extend and deprecate the legacy
+ * PSA_WANT_KEY_TYPE_xxx_KEY_PAIR ones. They include the usage of that key in
+ * the name's suffix. "_USE" is the most generic and it can be used to describe
+ * a generic suport, whereas other ones add more features on top of that and
+ * they are more specific.
+ */
+#define PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_BASIC      1
+#define PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_IMPORT   1
+#define PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_EXPORT   1
+#define PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_GENERATE 1
+#define PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_DERIVE   1
+
+#define PSA_WANT_KEY_TYPE_RSA_KEY_PAIR_BASIC      1
+#define PSA_WANT_KEY_TYPE_RSA_KEY_PAIR_IMPORT   1
+#define PSA_WANT_KEY_TYPE_RSA_KEY_PAIR_EXPORT   1
+#define PSA_WANT_KEY_TYPE_RSA_KEY_PAIR_GENERATE 1
+//#define PSA_WANT_KEY_TYPE_RSA_KEY_PAIR_DERIVE   1 /* Not supported */
+
+#define PSA_WANT_KEY_TYPE_DH_KEY_PAIR_BASIC       1
+#define PSA_WANT_KEY_TYPE_DH_KEY_PAIR_IMPORT    1
+#define PSA_WANT_KEY_TYPE_DH_KEY_PAIR_EXPORT    1
+#define PSA_WANT_KEY_TYPE_DH_KEY_PAIR_GENERATE  1
+//#define PSA_WANT_KEY_TYPE_DH_KEY_PAIR_DERIVE    1 /* Not supported */
+/** \} name SECTION Cryptographic mechanism selection (PSA API) */
+
+/**
+ * \name SECTION: Platform abstraction layer
+ *
+ * This section sets platform specific settings.
+ * \{
+ */
+
+/**
+ * \def MBEDTLS_MEMORY_BUFFER_ALLOC_C
+ *
+ * Enable the buffer allocator implementation that makes use of a (stack)
+ * based buffer to 'allocate' dynamic memory. (replaces calloc() and free()
+ * calls)
+ *
+ * Module:  drivers/builtin/src/memory_buffer_alloc.c
+ *
+ * Requires: MBEDTLS_PLATFORM_C
+ *           MBEDTLS_PLATFORM_MEMORY (to use it within Mbed TLS)
+ *
+ * Enable this module to enable the buffer memory allocator.
+ */
+//#define MBEDTLS_MEMORY_BUFFER_ALLOC_C
+
+/**
+ * \def MBEDTLS_FS_IO
+ *
+ * Enable functions that use the filesystem.
+ */
+#define MBEDTLS_FS_IO
+
+/**
+ * \def MBEDTLS_HAVE_TIME
+ *
+ * System has time.h and time().
+ * The time does not need to be correct, only time differences are used,
+ * by contrast with MBEDTLS_HAVE_TIME_DATE
+ *
+ * Defining MBEDTLS_HAVE_TIME allows you to specify MBEDTLS_PLATFORM_TIME_ALT,
+ * MBEDTLS_PLATFORM_TIME_MACRO, MBEDTLS_PLATFORM_TIME_TYPE_MACRO and
+ * MBEDTLS_PLATFORM_STD_TIME.
+ *
+ * Comment if your system does not support time functions.
+ */
+#define MBEDTLS_HAVE_TIME
+
+/**
+ * \def MBEDTLS_HAVE_TIME_DATE
+ *
+ * System has time.h, time(), and an implementation for
+ * mbedtls_platform_gmtime_r() (see below).
+ * The time needs to be correct (not necessarily very accurate, but at least
+ * the date should be correct). This is used to verify the validity period of
+ * X.509 certificates.
+ *
+ * Comment if your system does not have a correct clock.
+ *
+ * \note mbedtls_platform_gmtime_r() is an abstraction in platform_util.h that
+ * behaves similarly to the gmtime_r() function from the C standard. Refer to
+ * the documentation for mbedtls_platform_gmtime_r() for more information.
+ *
+ * \note It is possible to configure an implementation for
+ * mbedtls_platform_gmtime_r() at compile-time by using the macro
+ * MBEDTLS_PLATFORM_GMTIME_R_ALT.
+ */
+#define MBEDTLS_HAVE_TIME_DATE
+
+/**
+ * \def MBEDTLS_MEMORY_DEBUG
+ *
+ * Enable debugging of buffer allocator memory issues. Automatically prints
+ * (to stderr) all (fatal) messages on memory allocation issues. Enables
+ * function for 'debug output' of allocated memory.
+ *
+ * Requires: MBEDTLS_MEMORY_BUFFER_ALLOC_C
+ *
+ * Uncomment this macro to let the buffer allocator print out error messages.
+ */
+//#define MBEDTLS_MEMORY_DEBUG
+
+/**
+ * \def MBEDTLS_MEMORY_BACKTRACE
+ *
+ * Include backtrace information with each allocated block.
+ *
+ * Requires: MBEDTLS_MEMORY_BUFFER_ALLOC_C
+ *           GLIBC-compatible backtrace() and backtrace_symbols() support
+ *
+ * Uncomment this macro to include backtrace information
+ */
+//#define MBEDTLS_MEMORY_BACKTRACE
+
+/**
+ * \def MBEDTLS_PLATFORM_C
+ *
+ * Enable the platform abstraction layer that allows you to re-assign
+ * functions like calloc(), free(), snprintf(), printf(), fprintf(), exit().
+ *
+ * Enabling MBEDTLS_PLATFORM_C enables to use of MBEDTLS_PLATFORM_XXX_ALT
+ * or MBEDTLS_PLATFORM_XXX_MACRO directives, allowing the functions mentioned
+ * above to be specified at runtime or compile time respectively.
+ *
+ * \note This abstraction layer must be enabled on Windows (including MSYS2)
+ * as other modules rely on it for a fixed snprintf implementation.
+ *
+ * Module:  drivers/builtin/src/platform.c
+ * Caller:  Most other .c files
+ *
+ * This module enables abstraction of common (libc) functions.
+ */
+#define MBEDTLS_PLATFORM_C
+
+/**
+ * \def MBEDTLS_PLATFORM_EXIT_ALT
+ *
+ * MBEDTLS_PLATFORM_XXX_ALT: Uncomment a macro to let Mbed TLS support the
+ * function in the platform abstraction layer.
+ *
+ * Example: In case you uncomment MBEDTLS_PLATFORM_PRINTF_ALT, Mbed TLS will
+ * provide a function "mbedtls_platform_set_printf()" that allows you to set an
+ * alternative printf function pointer.
+ *
+ * All these define require MBEDTLS_PLATFORM_C to be defined!
+ *
+ * \note MBEDTLS_PLATFORM_SNPRINTF_ALT is required on Windows;
+ * it will be enabled automatically by check_config.h
+ *
+ * \warning MBEDTLS_PLATFORM_XXX_ALT cannot be defined at the same time as
+ * MBEDTLS_PLATFORM_XXX_MACRO!
+ *
+ * Requires: MBEDTLS_PLATFORM_TIME_ALT requires MBEDTLS_HAVE_TIME
+ *
+ * Uncomment a macro to enable alternate implementation of specific base
+ * platform function
+ */
+//#define MBEDTLS_PLATFORM_SETBUF_ALT
+//#define MBEDTLS_PLATFORM_EXIT_ALT
+//#define MBEDTLS_PLATFORM_TIME_ALT
+//#define MBEDTLS_PLATFORM_FPRINTF_ALT
+//#define MBEDTLS_PLATFORM_PRINTF_ALT
+//#define MBEDTLS_PLATFORM_SNPRINTF_ALT
+//#define MBEDTLS_PLATFORM_VSNPRINTF_ALT
+//#define MBEDTLS_PLATFORM_NV_SEED_ALT
+//#define MBEDTLS_PLATFORM_SETUP_TEARDOWN_ALT
+//#define MBEDTLS_PLATFORM_MS_TIME_ALT
+
+/**
+ * Uncomment the macro to let Mbed TLS use your alternate implementation of
+ * mbedtls_platform_gmtime_r(). This replaces the default implementation in
+ * platform_util.c.
+ *
+ * gmtime() is not a thread-safe function as defined in the C standard. The
+ * library will try to use safer implementations of this function, such as
+ * gmtime_r() when available. However, if Mbed TLS cannot identify the target
+ * system, the implementation of mbedtls_platform_gmtime_r() will default to
+ * using the standard gmtime(). In this case, calls from the library to
+ * gmtime() will be guarded by the global mutex mbedtls_threading_gmtime_mutex
+ * if MBEDTLS_THREADING_C is enabled. We recommend that calls from outside the
+ * library are also guarded with this mutex to avoid race conditions. However,
+ * if the macro MBEDTLS_PLATFORM_GMTIME_R_ALT is defined, Mbed TLS will
+ * unconditionally use the implementation for mbedtls_platform_gmtime_r()
+ * supplied at compile time.
+ */
+//#define MBEDTLS_PLATFORM_GMTIME_R_ALT
+
+/**
+ * \def MBEDTLS_PLATFORM_MEMORY
+ *
+ * Enable the memory allocation layer.
+ *
+ * By default Mbed TLS uses the system-provided calloc() and free().
+ * This allows different allocators (self-implemented or provided) to be
+ * provided to the platform abstraction layer.
+ *
+ * Enabling #MBEDTLS_PLATFORM_MEMORY without the
+ * MBEDTLS_PLATFORM_{FREE,CALLOC}_MACROs will provide
+ * "mbedtls_platform_set_calloc_free()" allowing you to set an alternative calloc() and
+ * free() function pointer at runtime.
+ *
+ * Enabling #MBEDTLS_PLATFORM_MEMORY and specifying
+ * MBEDTLS_PLATFORM_{CALLOC,FREE}_MACROs will allow you to specify the
+ * alternate function at compile time.
+ *
+ * An overview of how the value of mbedtls_calloc is determined:
+ *
+ * - if !MBEDTLS_PLATFORM_MEMORY
+ *     - mbedtls_calloc = calloc
+ * - if MBEDTLS_PLATFORM_MEMORY
+ *     - if (MBEDTLS_PLATFORM_CALLOC_MACRO && MBEDTLS_PLATFORM_FREE_MACRO):
+ *         - mbedtls_calloc = MBEDTLS_PLATFORM_CALLOC_MACRO
+ *     - if !(MBEDTLS_PLATFORM_CALLOC_MACRO && MBEDTLS_PLATFORM_FREE_MACRO):
+ *         - Dynamic setup via mbedtls_platform_set_calloc_free is now possible with a default value MBEDTLS_PLATFORM_STD_CALLOC.
+ *         - How is MBEDTLS_PLATFORM_STD_CALLOC handled?
+ *         - if MBEDTLS_PLATFORM_NO_STD_FUNCTIONS:
+ *             - MBEDTLS_PLATFORM_STD_CALLOC is not set to anything;
+ *             - MBEDTLS_PLATFORM_STD_MEM_HDR can be included if present;
+ *         - if !MBEDTLS_PLATFORM_NO_STD_FUNCTIONS:
+ *             - if MBEDTLS_PLATFORM_STD_CALLOC is present:
+ *                 - User-defined MBEDTLS_PLATFORM_STD_CALLOC is respected;
+ *             - if !MBEDTLS_PLATFORM_STD_CALLOC:
+ *                 - MBEDTLS_PLATFORM_STD_CALLOC = calloc
+ *
+ *         - At this point the presence of MBEDTLS_PLATFORM_STD_CALLOC is checked.
+ *         - if !MBEDTLS_PLATFORM_STD_CALLOC
+ *             - MBEDTLS_PLATFORM_STD_CALLOC = uninitialized_calloc
+ *
+ *         - mbedtls_calloc = MBEDTLS_PLATFORM_STD_CALLOC.
+ *
+ * Defining MBEDTLS_PLATFORM_CALLOC_MACRO and #MBEDTLS_PLATFORM_STD_CALLOC at the same time is not possible.
+ * MBEDTLS_PLATFORM_CALLOC_MACRO and MBEDTLS_PLATFORM_FREE_MACRO must both be defined or undefined at the same time.
+ * #MBEDTLS_PLATFORM_STD_CALLOC and #MBEDTLS_PLATFORM_STD_FREE do not have to be defined at the same time, as, if they are used,
+ * dynamic setup of these functions is possible. See the tree above to see how are they handled in all cases.
+ * An uninitialized #MBEDTLS_PLATFORM_STD_CALLOC always fails, returning a null pointer.
+ * An uninitialized #MBEDTLS_PLATFORM_STD_FREE does not do anything.
+ *
+ * Requires: MBEDTLS_PLATFORM_C
+ *
+ * Enable this layer to allow use of alternative memory allocators.
+ */
+//#define MBEDTLS_PLATFORM_MEMORY
+
+/**
+ * \def MBEDTLS_PLATFORM_NO_STD_FUNCTIONS
+ *
+ * Do not assign standard functions in the platform layer (e.g. calloc() to
+ * MBEDTLS_PLATFORM_STD_CALLOC and printf() to MBEDTLS_PLATFORM_STD_PRINTF)
+ *
+ * This makes sure there are no linking errors on platforms that do not support
+ * these functions. You will HAVE to provide alternatives, either at runtime
+ * via the platform_set_xxx() functions or at compile time by setting
+ * the MBEDTLS_PLATFORM_STD_XXX defines, or enabling a
+ * MBEDTLS_PLATFORM_XXX_MACRO.
+ *
+ * Requires: MBEDTLS_PLATFORM_C
+ *
+ * Uncomment to prevent default assignment of standard functions in the
+ * platform layer.
+ */
+//#define MBEDTLS_PLATFORM_NO_STD_FUNCTIONS
+
+/**
+ * Uncomment the macro to let Mbed TLS use your alternate implementation of
+ * mbedtls_platform_zeroize(), to wipe sensitive data in memory. This replaces
+ * the default implementation in platform_util.c.
+ *
+ * By default, the library uses a system function such as memset_s()
+ * (optional feature of C11), explicit_bzero() (BSD and compatible), or
+ * SecureZeroMemory (Windows). If no such function is detected, the library
+ * falls back to a plain C implementation. Compilers are technically
+ * permitted to optimize this implementation out, meaning that the memory is
+ * not actually wiped. The library tries to prevent that, but the C language
+ * makes it impossible to guarantee that the memory will always be wiped.
+ *
+ * If your platform provides a guaranteed method to wipe memory which
+ * `platform_util.c` does not detect, define this macro to the name of
+ * a function that takes two arguments, a `void *` pointer and a length,
+ * and wipes that many bytes starting at the specified address. For example,
+ * if your platform has explicit_bzero() but `platform_util.c` does not
+ * detect its presence, define `MBEDTLS_PLATFORM_ZEROIZE_ALT` to be
+ * `explicit_bzero` to use that function as mbedtls_platform_zeroize().
+ */
+//#define MBEDTLS_PLATFORM_ZEROIZE_ALT
+
+/**
+ * \def MBEDTLS_THREADING_ALT
+ *
+ * Provide your own alternate implementation of threading primitives:
+ * mutexes and condition variables. If you enable this option:
+ *
+ * - Provide a header file `"threading_alt.h"`, defining the following
+ *  elements:
+ *     - The type `mbedtls_platform_mutex_t` of mutex objects.
+ *     - The type `mbedtls_platform_condition_variable_t` of
+ *       condition variable objects.
+ *
+ * - Call the function mbedtls_threading_set_alt() in your application
+ *   before calling any other library function (in particular before
+ *   calling psa_crypto_init()).
+ *
+ * See mbedtls/threading.h for more details, especially the documentation
+ * of mbedtls_threading_set_alt().
+ *
+ * Requires: MBEDTLS_THREADING_C
+ *
+ * Uncomment this to allow your own alternate threading implementation.
+ */
+//#define MBEDTLS_THREADING_ALT
+
+/**
+ * \def MBEDTLS_THREADING_PTHREAD
+ *
+ * Enable the pthread wrapper layer for the threading layer.
+ *
+ * Requires: MBEDTLS_THREADING_C
+ *
+ * Uncomment this to enable pthread mutexes.
+ */
+//#define MBEDTLS_THREADING_PTHREAD
+
+/**
+ * \def MBEDTLS_THREADING_C
+ *
+ * Enable the threading abstraction layer.
+ *
+ * \note You must enable this option if TF-PSA-Crypto runs in a
+ * multithreaded environment. Otherwise the PSA cryptography subsystem is
+ * not thread-safe. As an exception, this option can be disabled if all
+ * PSA crypto functions are ever called from a single thread. Note that
+ * this includes indirect calls, for example through PK.
+ *
+ * Module:  drivers/builtin/src/threading.c
+ *
+ * This allows different threading implementations (built-in or
+ * provided externally).
+ *
+ * You will have to enable either #MBEDTLS_THREADING_ALT or
+ * #MBEDTLS_THREADING_PTHREAD.
+ *
+ * Enable this layer to allow use of mutexes within Mbed TLS
+ */
+//#define MBEDTLS_THREADING_C
+
+/* Memory buffer allocator options */
+//#define MBEDTLS_MEMORY_ALIGN_MULTIPLE      4 /**< Align on multiples of this value */
+
+/* To use the following function macros, MBEDTLS_PLATFORM_C must be enabled. */
+/* MBEDTLS_PLATFORM_XXX_MACRO and MBEDTLS_PLATFORM_XXX_ALT cannot both be defined */
+//#define MBEDTLS_PLATFORM_CALLOC_MACRO        calloc /**< Default allocator macro to use, can be undefined. See MBEDTLS_PLATFORM_STD_CALLOC for requirements. */
+//#define MBEDTLS_PLATFORM_EXIT_MACRO            exit /**< Default exit macro to use, can be undefined */
+//#define MBEDTLS_PLATFORM_FREE_MACRO            free /**< Default free macro to use, can be undefined. See MBEDTLS_PLATFORM_STD_FREE for requirements. */
+//#define MBEDTLS_PLATFORM_FPRINTF_MACRO      fprintf /**< Default fprintf macro to use, can be undefined */
+//#define MBEDTLS_PLATFORM_MS_TIME_TYPE_MACRO   int64_t //#define MBEDTLS_PLATFORM_MS_TIME_TYPE_MACRO   int64_t /**< Default milliseconds time macro to use, can be undefined. MBEDTLS_HAVE_TIME must be enabled. It must be signed, and at least 64 bits. If it is changed from the default, MBEDTLS_PRINTF_MS_TIME must be updated to match.*/
+//#define MBEDTLS_PLATFORM_NV_SEED_READ_MACRO   mbedtls_platform_std_nv_seed_read /**< Default nv_seed_read function to use, can be undefined */
+//#define MBEDTLS_PLATFORM_NV_SEED_WRITE_MACRO  mbedtls_platform_std_nv_seed_write /**< Default nv_seed_write function to use, can be undefined */
+//#define MBEDTLS_PLATFORM_PRINTF_MACRO        printf /**< Default printf macro to use, can be undefined */
+//#define MBEDTLS_PLATFORM_SETBUF_MACRO      setbuf /**< Default setbuf macro to use, can be undefined */
+/* Note: your snprintf must correctly zero-terminate the buffer! */
+//#define MBEDTLS_PLATFORM_SNPRINTF_MACRO    snprintf /**< Default snprintf macro to use, can be undefined */
+
+/** \def MBEDTLS_PLATFORM_STD_CALLOC
+ *
+ * Default allocator to use, can be undefined.
+ * It must initialize the allocated buffer memory to zeroes.
+ * The size of the buffer is the product of the two parameters.
+ * The calloc function returns either a null pointer or a pointer to the allocated space.
+ * If the product is 0, the function may either return NULL or a valid pointer to an array of size 0 which is a valid input to the deallocation function.
+ * An uninitialized #MBEDTLS_PLATFORM_STD_CALLOC always fails, returning a null pointer.
+ * See the description of #MBEDTLS_PLATFORM_MEMORY for more details.
+ * The corresponding deallocation function is #MBEDTLS_PLATFORM_STD_FREE.
+ */
+//#define MBEDTLS_PLATFORM_STD_CALLOC        calloc
+
+//#define MBEDTLS_PLATFORM_STD_EXIT            exit /**< Default exit to use, can be undefined */
+//#define MBEDTLS_PLATFORM_STD_EXIT_FAILURE       1 /**< Default exit value to use, can be undefined */
+//#define MBEDTLS_PLATFORM_STD_EXIT_SUCCESS       0 /**< Default exit value to use, can be undefined */
+//#define MBEDTLS_PLATFORM_STD_FPRINTF      fprintf /**< Default fprintf to use, can be undefined */
+
+/** \def MBEDTLS_PLATFORM_STD_FREE
+ *
+ * Default free to use, can be undefined.
+ * NULL is a valid parameter, and the function must do nothing.
+ * A non-null parameter will always be a pointer previously returned by #MBEDTLS_PLATFORM_STD_CALLOC and not yet freed.
+ * An uninitialized #MBEDTLS_PLATFORM_STD_FREE does not do anything.
+ * See the description of #MBEDTLS_PLATFORM_MEMORY for more details (same principles as for MBEDTLS_PLATFORM_STD_CALLOC apply).
+ */
+//#define MBEDTLS_PLATFORM_STD_FREE            free
+
+//#define MBEDTLS_PLATFORM_STD_MEM_HDR   <stdlib.h> /**< Header to include if MBEDTLS_PLATFORM_NO_STD_FUNCTIONS is defined. Don't define if no header is needed. */
+//#define MBEDTLS_PLATFORM_STD_NV_SEED_FILE  "seedfile" /**< Seed file to read/write with default implementation */
+//#define MBEDTLS_PLATFORM_STD_NV_SEED_READ   mbedtls_platform_std_nv_seed_read /**< Default nv_seed_read function to use, can be undefined */
+//#define MBEDTLS_PLATFORM_STD_NV_SEED_WRITE  mbedtls_platform_std_nv_seed_write /**< Default nv_seed_write function to use, can be undefined */
+//#define MBEDTLS_PLATFORM_STD_PRINTF        printf /**< Default printf to use, can be undefined */
+//#define MBEDTLS_PLATFORM_STD_SETBUF      setbuf /**< Default setbuf to use, can be undefined */
+/* Note: your snprintf must correctly zero-terminate the buffer! */
+//#define MBEDTLS_PLATFORM_STD_SNPRINTF    snprintf /**< Default snprintf to use, can be undefined */
+//#define MBEDTLS_PLATFORM_STD_TIME            time /**< Default time to use, can be undefined. MBEDTLS_HAVE_TIME must be enabled */
+//#define MBEDTLS_PLATFORM_TIME_MACRO            time /**< Default time macro to use, can be undefined. MBEDTLS_HAVE_TIME must be enabled */
+//#define MBEDTLS_PLATFORM_TIME_TYPE_MACRO       time_t /**< Default time macro to use, can be undefined. MBEDTLS_HAVE_TIME must be enabled */
+//#define MBEDTLS_PLATFORM_VSNPRINTF_MACRO    vsnprintf /**< Default vsnprintf macro to use, can be undefined */
+//#define MBEDTLS_PRINTF_MS_TIME    PRId64 /**< Default fmt for printf. That's avoid compiler warning if mbedtls_ms_time_t is redefined */
+
+/** \} name SECTION: Platform abstraction layer */
+
+/**
+ * \name SECTION: General and test configuration options
+ *
+ * This section sets test specific settings.
+ * \{
+ */
+
+/**
+ * \def MBEDTLS_CHECK_RETURN_WARNING
+ *
+ * If this macro is defined, emit a compile-time warning if application code
+ * calls a function without checking its return value, but the return value
+ * should generally be checked in portable applications.
+ *
+ * This is only supported on platforms where #MBEDTLS_CHECK_RETURN is
+ * implemented. Otherwise this option has no effect.
+ *
+ * Uncomment to get warnings on using fallible functions without checking
+ * their return value.
+ *
+ * \note  This feature is a work in progress.
+ *        Warnings will be added to more functions in the future.
+ *
+ * \note  A few functions are considered critical, and ignoring the return
+ *        value of these functions will trigger a warning even if this
+ *        macro is not defined. To completely disable return value check
+ *        warnings, define #MBEDTLS_CHECK_RETURN with an empty expansion.
+ */
+//#define MBEDTLS_CHECK_RETURN_WARNING
+
+/**
+ * \def MBEDTLS_DEPRECATED_WARNING
+ *
+ * Mark deprecated functions and features so that they generate a warning if
+ * used. Functionality deprecated in one version will usually be removed in the
+ * next version. You can enable this to help you prepare the transition to a
+ * new major version by making sure your code is not using this functionality.
+ *
+ * This only works with GCC and Clang. With other compilers, you may want to
+ * use MBEDTLS_DEPRECATED_REMOVED
+ *
+ * Uncomment to get warnings on using deprecated functions and features.
+ */
+//#define MBEDTLS_DEPRECATED_WARNING
+
+/**
+ * \def MBEDTLS_DEPRECATED_REMOVED
+ *
+ * Remove deprecated functions and features so that they generate an error if
+ * used. Functionality deprecated in one version will usually be removed in the
+ * next version. You can enable this to help you prepare the transition to a
+ * new major version by making sure your code is not using this functionality.
+ *
+ * Uncomment to get errors on using deprecated functions and features.
+ */
+//#define MBEDTLS_DEPRECATED_REMOVED
+
+/** \def MBEDTLS_CHECK_RETURN
+ *
+ * This macro is used at the beginning of the declaration of a function
+ * to indicate that its return value should be checked. It should
+ * instruct the compiler to emit a warning or an error if the function
+ * is called without checking its return value.
+ *
+ * There is a default implementation for popular compilers in platform_util.h.
+ * You can override the default implementation by defining your own here.
+ *
+ * If the implementation here is empty, this will effectively disable the
+ * checking of functions' return values.
+ */
+//#define MBEDTLS_CHECK_RETURN __attribute__((__warn_unused_result__))
+
+/** \def MBEDTLS_IGNORE_RETURN
+ *
+ * This macro requires one argument, which should be a C function call.
+ * If that function call would cause a #MBEDTLS_CHECK_RETURN warning, this
+ * warning is suppressed.
+ */
+//#define MBEDTLS_IGNORE_RETURN( result ) ((void) !(result))
+
+/**
+ * \def TF_PSA_CRYPTO_CONFIG_FILE
+ *
+ * If defined, this is a header which will be included instead of
+ * `"psa/crypto_config.h"`.
+ * This header file specifies which cryptographic mechanisms are available
+ * through the PSA API.
+ *
+ * This macro is expanded after an <tt>\#include</tt> directive. This is a popular but
+ * non-standard feature of the C language, so this feature is only available
+ * with compilers that perform macro expansion on an <tt>\#include</tt> line.
+ *
+ * The value of this symbol is typically a path in double quotes, either
+ * absolute or relative to a directory on the include search path.
+ */
+//#define TF_PSA_CRYPTO_CONFIG_FILE "psa/crypto_config.h"
+
+/**
+ * \def TF_PSA_CRYPTO_USER_CONFIG_FILE
+ *
+ * If defined, this is a header which will be included after
+ * `"psa/crypto_config.h"` or #TF_PSA_CRYPTO_CONFIG_FILE.
+ * This allows you to modify the default configuration, including the ability
+ * to undefine options that are enabled by default.
+ *
+ * This macro is expanded after an <tt>\#include</tt> directive. This is a popular but
+ * non-standard feature of the C language, so this feature is only available
+ * with compilers that perform macro expansion on an <tt>\#include</tt> line.
+ *
+ * The value of this symbol is typically a path in double quotes, either
+ * absolute or relative to a directory on the include search path.
+ */
+//#define TF_PSA_CRYPTO_USER_CONFIG_FILE "/dev/null"
+
+/**
+ * \def MBEDTLS_SELF_TEST
+ *
+ * Enable the checkup functions (*_self_test).
+ */
+#define MBEDTLS_SELF_TEST
+
+/**
+ * \def MBEDTLS_TEST_CONSTANT_FLOW_MEMSAN
+ *
+ * Enable testing of the constant-flow nature of some sensitive functions with
+ * clang's MemorySanitizer. This causes some existing tests to also test
+ * this non-functional property of the code under test.
+ *
+ * This setting requires compiling with clang -fsanitize=memory. The test
+ * suites can then be run normally.
+ *
+ * \warning This macro is only used for extended testing; it is not considered
+ * part of the library's API, so it may change or disappear at any time.
+ *
+ * Uncomment to enable testing of the constant-flow nature of selected code.
+ */
+//#define MBEDTLS_TEST_CONSTANT_FLOW_MEMSAN
+
+/**
+ * \def MBEDTLS_TEST_CONSTANT_FLOW_VALGRIND
+ *
+ * Enable testing of the constant-flow nature of some sensitive functions with
+ * valgrind's memcheck tool. This causes some existing tests to also test
+ * this non-functional property of the code under test.
+ *
+ * This setting requires valgrind headers for building, and is only useful for
+ * testing if the tests suites are run with valgrind's memcheck. This can be
+ * done for an individual test suite with 'valgrind ./test_suite_xxx', or when
+ * using CMake, this can be done for all test suites with 'make memcheck'.
+ *
+ * \warning This macro is only used for extended testing; it is not considered
+ * part of the library's API, so it may change or disappear at any time.
+ *
+ * Uncomment to enable testing of the constant-flow nature of selected code.
+ */
+//#define MBEDTLS_TEST_CONSTANT_FLOW_VALGRIND
+
+/**
+ * \def MBEDTLS_TEST_HOOKS
+ *
+ * Enable features for invasive testing such as introspection functions and
+ * hooks for fault injection. This enables additional unit tests.
+ *
+ * Merely enabling this feature should not change the behavior of the product.
+ * It only adds new code, and new branching points where the default behavior
+ * is the same as when this feature is disabled.
+ * However, this feature increases the attack surface: there is an added
+ * risk of vulnerabilities, and more gadgets that can make exploits easier.
+ * Therefore this feature must never be enabled in production.
+ *
+ * See `docs/architecture/testing/mbed-crypto-invasive-testing.md` for more
+ * information.
+ *
+ * Uncomment to enable invasive tests.
+ */
+//#define MBEDTLS_TEST_HOOKS
+
+/**
+ * \def TF_PSA_CRYPTO_VERSION
+ *
+ * Enable run-time version information.
+ *
+ * This option enables functions for getting the version of TF-PSA-Crypto
+ * at runtime defined in include/tf-psa-crypto/version.h.
+ */
+#define TF_PSA_CRYPTO_VERSION
+
+/** \} name SECTION: General and test configuration options */
+
+/**
+ * \name SECTION: Cryptographic mechanism selection (extended API)
+ *
+ * This section sets cryptographic mechanism settings.
+ * \{
+ */
+
+/**
+ * \def MBEDTLS_LMS_C
+ *
+ * Enable the LMS stateful-hash asymmetric signature algorithm.
+ *
+ * Module:  drivers/builtin/src/lms.c
+ * Caller:
+ *
+ * Requires: MBEDTLS_PSA_CRYPTO_C
+ *
+ * Uncomment to enable the LMS verification algorithm and public key operations.
+ */
+#define MBEDTLS_LMS_C
+
+/**
+ * \def MBEDTLS_LMS_PRIVATE
+ *
+ * Enable LMS private-key operations and signing code. Functions enabled by this
+ * option are experimental, and should not be used in production.
+ *
+ * Requires: MBEDTLS_LMS_C
+ *
+ * Uncomment to enable the LMS signature algorithm and private key operations.
+ */
+//#define MBEDTLS_LMS_PRIVATE
+
+/**
+ * \def MBEDTLS_MD_C
+ *
+ * Enable the generic layer for message digest (hashing).
+ *
+ * Requires: MBEDTLS_PSA_CRYPTO_C with at least one hash.
+ * Module:  drivers/builtin/src/md.c
+ * Caller:  drivers/builtin/src/constant_time.c
+ *          drivers/builtin/src/ecdsa.c
+ *          drivers/builtin/src/ecjpake.c
+ *          drivers/builtin/src/hmac_drbg.c
+ *          drivers/builtin/src/pk.c
+ *          drivers/builtin/src/pkcs5.c
+ *          drivers/builtin/src/psa_crypto_ecp.c
+ *          drivers/builtin/src/psa_crypto_rsa.c
+ *          drivers/builtin/src/rsa.c
+ *
+ * Uncomment to enable generic message digest wrappers.
+ */
+#define MBEDTLS_MD_C
+
+/**
+ * \def MBEDTLS_NIST_KW_C
+ *
+ * Enable the 128-bit key wrapping modes from NIST SP 800-38F:
+ * KW (also known as RFC 3394) and KWP (RFC 5649).
+ * Currently these modes are only supported with AES.
+ *
+ * Module:  drivers/builtin/src/nist_kw.c
+ *
+ * Auto enables: PSA_WANT_ALG_ECB_NO_PADDING
+ */
+#define MBEDTLS_NIST_KW_C
+
+/**
+ * \def MBEDTLS_PK_C
+ *
+ * Enable the generic public (asymmetric) key layer.
+ *
+ * Module:  drivers/builtin/src/pk.c
+ * Caller:  drivers/builtin/src/psa_crypto_rsa.c
+ *
+ * Requires: MBEDTLS_MD_C, the built-in RSA or ECP implementation
+ *
+ * Uncomment to enable generic public key wrappers.
+ */
+#define MBEDTLS_PK_C
+
+/**
+ * \def MBEDTLS_PKCS5_C
+ *
+ * Enable PKCS#5 functions.
+ *
+ * Module:  drivers/builtin/src/pkcs5.c
+ *
+ * Auto-enables: MBEDTLS_MD_C
+ *
+ * This module adds support for the PKCS#5 functions.
+ */
+#define MBEDTLS_PKCS5_C
+
+/**
+ * \def MBEDTLS_PK_PARSE_C
+ *
+ * Enable the generic public (asymmetric) key parser.
+ *
+ * Module:  drivers/builtin/src/pkparse.c
+ *
+ * Requires: MBEDTLS_ASN1_PARSE_C, MBEDTLS_PK_C
+ *
+ * Uncomment to enable generic public key parse functions.
+ */
+#define MBEDTLS_PK_PARSE_C
+
+/**
+ * \def MBEDTLS_PK_PARSE_EC_EXTENDED
+ *
+ * Enhance support for reading EC keys using variants of SEC1 not allowed by
+ * RFC 5915 and RFC 5480.
+ *
+ * Currently this means parsing the SpecifiedECDomain choice of EC
+ * parameters (only known groups are supported, not arbitrary domains, to
+ * avoid validation issues).
+ *
+ * Disable if you only need to support RFC 5915 + 5480 key formats.
+ */
+#define MBEDTLS_PK_PARSE_EC_EXTENDED
+
+/**
+ * \def MBEDTLS_PK_PARSE_EC_COMPRESSED
+ *
+ * Enable the support for parsing public keys of type Short Weierstrass
+ * (PSA_ECC_FAMILY_SECP_XXX and PSA_ECC_FAMILY_BRAINPOOL_XXX) which are using the
+ * compressed point format.
+ */
+#define MBEDTLS_PK_PARSE_EC_COMPRESSED
+
+/**
+ * \def MBEDTLS_PK_WRITE_C
+ *
+ * Enable the generic public (asymmetric) key writer.
+ *
+ * Module:  drivers/builtin/src/pkwrite.c
+ *
+ * Requires: MBEDTLS_ASN1_WRITE_C, MBEDTLS_PK_C
+ *
+ * Uncomment to enable generic public key write functions.
+ */
+#define MBEDTLS_PK_WRITE_C
+
+/** \} name SECTION: Cryptographic mechanism selection (extended API) */
+
+/**
+ * \name SECTION: Data format support
+ *
+ * This section sets data-format specific settings.
+ * \{
+ */
+
+/**
+ * \def MBEDTLS_ASN1_PARSE_C
+ *
+ * Enable the generic ASN1 parser.
+ *
+ * Module:  drivers/builtin/src/asn1.c
+ * Caller:  drivers/builtin/src/pkcs5.c
+ *          drivers/builtin/src/pkparse.c
+ */
+#define MBEDTLS_ASN1_PARSE_C
+
+/**
+ * \def MBEDTLS_ASN1_WRITE_C
+ *
+ * Enable the generic ASN1 writer.
+ *
+ * Module:  drivers/builtin/src/asn1write.c
+ * Caller:  drivers/builtin/src/ecdsa.c
+ *          drivers/builtin/src/pkwrite.c
+ */
+#define MBEDTLS_ASN1_WRITE_C
+
+/**
+ * \def MBEDTLS_BASE64_C
+ *
+ * Enable the Base64 module.
+ *
+ * Module:  drivers/builtin/src/base64.c
+ * Caller:  drivers/builtin/src/pem.c
+ *
+ * This module is required for PEM support (required by X.509).
+ */
+#define MBEDTLS_BASE64_C
+
+/**
+ * \def MBEDTLS_PEM_PARSE_C
+ *
+ * Enable PEM decoding / parsing.
+ *
+ * Module:  drivers/builtin/src/pem.c
+ * Caller:  drivers/builtin/src/pkparse.c
+ *
+ * Requires: MBEDTLS_BASE64_C
+ *           optionally PSA_WANT_ALG_MD5
+ *
+ * This modules adds support for decoding / parsing PEM files.
+ */
+#define MBEDTLS_PEM_PARSE_C
+
+/**
+ * \def MBEDTLS_PEM_WRITE_C
+ *
+ * Enable PEM encoding / writing.
+ *
+ * Module:  drivers/builtin/src/pem.c
+ * Caller:  drivers/builtin/src/pkwrite.c
+ *
+ * Requires: MBEDTLS_BASE64_C
+ *
+ * This modules adds support for encoding / writing PEM files.
+ */
+#define MBEDTLS_PEM_WRITE_C
+
+/** \} name SECTION: Data format support */
+
+/**
+ * \name SECTION: PSA core
+ *
+ * This section sets PSA specific settings.
+ * \{
+ */
+
+/**
+ * \def MBEDTLS_CTR_DRBG_C
+ *
+ * Enable the CTR_DRBG AES-based random generator.
+ * The CTR_DRBG generator uses AES-256 by default.
+ * To use AES-128 instead, set #MBEDTLS_PSA_CRYPTO_RNG_STRENGTH to 128.
+ *
+ * AES support can either be achieved through built-in AES or PSA. Built-in is
+ * the default option when present otherwise PSA is used.
+ *
+ * Module:  drivers/builtin/src/ctr_drbg.c
+ *
+ * Requires: MBEDTLS_PSA_CRYPTO_C, PSA_WANT_KEY_TYPE_AES and
+ *           PSA_WANT_ALG_ECB_NO_PADDING
+ *
+ * This module provides the CTR_DRBG AES random number generator.
+ */
+#define MBEDTLS_CTR_DRBG_C
+
+/**
+ * \def MBEDTLS_ENTROPY_NO_SOURCES_OK
+ *
+ * Normally, TF-PSA-Crypto requires at least one "true" entropy source, such
+ * #MBEDTLS_PSA_BUILTIN_GET_ENTROPY or #MBEDTLS_PSA_DRIVER_GET_ENTROPY.
+ *
+ * It is possible to build the library with a seed injected during device
+ * provisioning, thanks to #MBEDTLS_ENTROPY_NV_SEED.
+ * This is only an initial entropy input: without a true entropy source,
+ * the device will not obtain additional entropy during its lifetime.
+ * Thus, if the seed value is leaked, it is impossible to recover from
+ * this compromise.
+ *
+ * Enable this option if this loss of security is acceptable to you.
+ */
+//#define MBEDTLS_ENTROPY_NO_SOURCES_OK
+
+/**
+ * \def MBEDTLS_ENTROPY_NV_SEED
+ *
+ * Enable the non-volatile (NV) seed file-based entropy source.
+ * (Also enables the NV seed read/write functions in the platform layer)
+ *
+ * This is crucial (if not required) on systems that do not have a
+ * cryptographic entropy source (in hardware or kernel) available.
+ *
+ * Requires: MBEDTLS_PSA_CRYPTO_C,
+ *           !MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG
+ *           MBEDTLS_PLATFORM_C
+ *
+ * \note The read/write functions that are used by the entropy source are
+ *       determined in the platform layer, and can be modified at runtime and/or
+ *       compile-time depending on the flags (MBEDTLS_PLATFORM_NV_SEED_*) used.
+ *
+ * \note If you use the default implementation functions that read a seedfile
+ *       with regular fopen(), please make sure you make a seedfile with the
+ *       proper name (defined in MBEDTLS_PLATFORM_STD_NV_SEED_FILE) and at
+ *       least MBEDTLS_ENTROPY_BLOCK_SIZE bytes in size that can be read from
+ *       and written to or you will get an entropy source error! The default
+ *       implementation will only use the first MBEDTLS_ENTROPY_BLOCK_SIZE
+ *       bytes from the file.
+ *
+ * \note The entropy collector will write to the seed file before entropy is
+ *       given to an external source, to update it.
+ */
+//#define MBEDTLS_ENTROPY_NV_SEED
+
+/**
+ * \def MBEDTLS_HMAC_DRBG_C
+ *
+ * Enable the HMAC_DRBG random generator.
+ *
+ * Module:  drivers/builtin/src/hmac_drbg.c
+ * Caller:
+ *
+ * Requires: MBEDTLS_MD_C
+ *
+ * Uncomment to enable the HMAC_DRBG random number generator.
+ */
+#define MBEDTLS_HMAC_DRBG_C
+
+/**
+ * \def MBEDTLS_PSA_CRYPTO_C
+ *
+ * Enable the Platform Security Architecture cryptography API.
+ *
+ * Module:  core/psa_crypto.c
+ *
+ * Requires: one of the following:
+ *           - MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG
+ *           - MBEDTLS_CTR_DRBG_C
+ *           - MBEDTLS_HMAC_DRBG_C
+ *
+ *           If MBEDTLS_CTR_DRBG_C or MBEDTLS_HMAC_DRBG_C is used as the PSA
+ *           random generator, then either PSA_WANT_ALG_SHA_256 or
+ *           PSA_WANT_ALG_SHA_512 must be enabled for the entropy module.
+ *
+ * \note The PSA crypto subsystem prioritizes DRBG mechanisms as follows:
+ *       - #MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG, if enabled
+ *       - CTR_DRBG (AES), seeded by the entropy module, if
+ *         #MBEDTLS_CTR_DRBG_C is enabled
+ *       - HMAC_DRBG, seeded by the entropy module, if
+ *         #MBEDTLS_HMAC_DRBG_C is enabled
+ *
+ *       A future version may reevaluate the prioritization of DRBG mechanisms.
+ */
+#define MBEDTLS_PSA_CRYPTO_C
+
+/**
+ * \def MBEDTLS_PSA_ASSUME_EXCLUSIVE_BUFFERS
+ *
+ * Assume all buffers passed to PSA functions are owned exclusively by the
+ * PSA function and are not stored in shared memory.
+ *
+ * This option may be enabled if all buffers passed to any PSA function reside
+ * in memory that is accessible only to the PSA function during its execution.
+ *
+ * This option MUST be disabled whenever buffer arguments are in memory shared
+ * with an untrusted party, for example where arguments to PSA calls are passed
+ * across a trust boundary.
+ *
+ * \note Enabling this option reduces memory usage and code size.
+ *
+ * \note Enabling this option causes overlap of input and output buffers
+ *       not to be supported by PSA functions.
+ */
+//#define MBEDTLS_PSA_ASSUME_EXCLUSIVE_BUFFERS
+
+/**
+ * \def MBEDTLS_PSA_BUILTIN_GET_ENTROPY
+ *
+ * Enable entropy sources for which the library has a built-in driver.
+ *
+ * Requires: MBEDTLS_PSA_CRYPTO_C, !MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG
+ *
+ * These are:
+ * - getrandom() on Linux (if syscall() is available at compile time);
+ * - getrandom() on FreeBSD and DragonFlyBSD (if available at compile time);
+ * - `sysctl(KERN_ARND)` on FreeBSD and NetBSD;
+ * - `/dev/urandom` on Unix-like platforms (unless one of the above is used);
+ * - BCryptGenRandom() on Windows.
+ *
+ * You should enable this option if your platform has one of these. If not:
+ *
+ * - You can enable #MBEDTLS_PSA_DRIVER_GET_ENTROPY instead, and provide
+ *   an entropy source callback for your platform.
+ * - If your platform has a fast cryptographic-quality random generator,
+ *   enable #MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG and provide a random generator
+ *   callback instead.
+ * - If your platform has no source of entropy at all, you can enable
+ *   #MBEDTLS_ENTROPY_NV_SEED and provide a seed in nonvolatile memory
+ *   during the provisioning of the device.
+ * - The random generator requires a random generator callback,
+ *   an entropy source or a seed in nonvolatile memory.
+ *   Builds with no random generator are not officially supported yet, except
+ *   client-only builds (#MBEDTLS_PSA_CRYPTO_CLIENT enabled and
+ *   #MBEDTLS_PSA_CRYPTO_C disabled).
+ */
+#define MBEDTLS_PSA_BUILTIN_GET_ENTROPY
+
+/** \def MBEDTLS_PSA_CRYPTO_BUILTIN_KEYS
+ *
+ * Enable support for platform built-in keys. If you enable this feature,
+ * you must implement the function mbedtls_psa_platform_get_builtin_key().
+ * See the documentation of that function for more information.
+ *
+ * Built-in keys are typically derived from a hardware unique key or
+ * stored in a secure element.
+ *
+ * Requires: MBEDTLS_PSA_CRYPTO_C.
+ *
+ * \warning This interface is experimental and may change or be removed
+ * without notice.
+ */
+//#define MBEDTLS_PSA_CRYPTO_BUILTIN_KEYS
+
+/** \def MBEDTLS_PSA_CRYPTO_CLIENT
+ *
+ * Enable support for PSA crypto client.
+ *
+ * \note This option allows to include the code necessary for a PSA
+ *       crypto client when the PSA crypto implementation is not included in
+ *       the library (MBEDTLS_PSA_CRYPTO_C disabled). The code included is the
+ *       code to set and get PSA key attributes.
+ *       The development of PSA drivers partially relying on the library to
+ *       fulfill the hardware gaps is another possible usage of this option.
+ *
+ * \warning This interface is experimental and may change or be removed
+ * without notice.
+ */
+//#define MBEDTLS_PSA_CRYPTO_CLIENT
+
+/** \def MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG
+ *
+ * Make the PSA Crypto module use an external random generator provided
+ * by a driver, instead of Mbed TLS's entropy and DRBG modules.
+ *
+ * \note This random generator must deliver random numbers with cryptographic
+ *       quality and high performance. It must supply unpredictable numbers
+ *       with a uniform distribution. The implementation of this function
+ *       is responsible for ensuring that the random generator is seeded
+ *       with sufficient entropy. If you have a hardware TRNG which is slow
+ *       or delivers non-uniform output, declare it as an entropy source
+ *       with mbedtls_entropy_add_source() instead of enabling this option.
+ *
+ * If you enable this option, you must configure the type
+ * ::mbedtls_psa_external_random_context_t in psa/crypto_platform.h
+ * and define a function called mbedtls_psa_external_get_random()
+ * with the following prototype:
+ * ```
+ * psa_status_t mbedtls_psa_external_get_random(
+ *     mbedtls_psa_external_random_context_t *context,
+ *     uint8_t *output, size_t output_size, size_t *output_length);
+ * );
+ * ```
+ * The \c context value is initialized to 0 before the first call.
+ * The function must fill the \c output buffer with \c output_size bytes
+ * of random data and set \c *output_length to \c output_size.
+ *
+ * Requires: MBEDTLS_PSA_CRYPTO_C
+ *
+ * \warning If you enable this option, code that uses the PSA cryptography
+ *          interface will not use any of the entropy sources set up for
+ *          the entropy module, nor the NV seed that MBEDTLS_ENTROPY_NV_SEED
+ *          enables.
+ *
+ * \note This option is experimental and may be removed without notice.
+ */
+//#define MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG
+
+/* MBEDTLS_PSA_CRYPTO_KEY_ID_ENCODES_OWNER
+ *
+ * Enable key identifiers that encode a key owner identifier.
+ *
+ * The owner of a key is identified by a value of type ::mbedtls_key_owner_id_t
+ * which is currently hard-coded to be int32_t.
+ *
+ * Note that this option is meant for internal use only and may be removed
+ * without notice.
+ */
+//#define MBEDTLS_PSA_CRYPTO_KEY_ID_ENCODES_OWNER
+
+/**
+ * \def MBEDTLS_PSA_CRYPTO_SPM
+ *
+ * When MBEDTLS_PSA_CRYPTO_SPM is defined, the code is built for SPM (Secure
+ * Partition Manager) integration which separates the code into two parts: a
+ * NSPE (Non-Secure Process Environment) and an SPE (Secure Process
+ * Environment).
+ *
+ * If you enable this option, your build environment must include a header
+ * file `"crypto_spe.h"` (either in the `psa` subdirectory of the Mbed TLS
+ * header files, or in another directory on the compiler's include search
+ * path). Alternatively, your platform may customize the header
+ * `psa/crypto_platform.h`, in which case it can skip or replace the
+ * inclusion of `"crypto_spe.h"`.
+ *
+ * Module:  core/psa_crypto.c
+ * Requires: MBEDTLS_PSA_CRYPTO_C
+ *
+ */
+//#define MBEDTLS_PSA_CRYPTO_SPM
+
+/**
+ * \def MBEDTLS_PSA_CRYPTO_STORAGE_C
+ *
+ * Enable the Platform Security Architecture persistent key storage.
+ *
+ * Module:  core/psa_crypto_storage.c
+ *
+ * Requires: MBEDTLS_PSA_CRYPTO_C,
+ *           either MBEDTLS_PSA_ITS_FILE_C or a native implementation of
+ *           the PSA ITS interface
+ */
+#define MBEDTLS_PSA_CRYPTO_STORAGE_C
+
+/**
+ * \def MBEDTLS_PSA_DRIVER_GET_ENTROPY
+ *
+ * Requires: MBEDTLS_PSA_CRYPTO_C, !MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG
+ *
+ * Enable the custom entropy callback mbedtls_platform_get_entropy()
+ * (declared in mbedtls/platform.h). You need to provide this callback
+ * if you need an entropy source and the built-in entropy callback
+ * provided by #MBEDTLS_PSA_BUILTIN_GET_ENTROPY does not work on your platform.
+ *
+ * Enabling both #MBEDTLS_PSA_BUILTIN_GET_ENTROPY and
+ * #MBEDTLS_PSA_DRIVER_GET_ENTROPY is currently not supported.
+ *
+ * You do not need any entropy source in the following circumstances:
+ *
+ * - If your platform has a fast cryptographic-quality random generator, and
+ *   you enable #MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG and provide a random generator
+ *   callback instead.
+ * - If your platform has no source of entropy at all, and you enable
+ *   #MBEDTLS_ENTROPY_NV_SEED and provide a seed in nonvolatile memory
+ *   during the provisioning of the device.
+ * - If you build the library with no random generator.
+ *   Builds with no random generator are not officially supported yet, except
+ *   client-only builds (#MBEDTLS_PSA_CRYPTO_CLIENT enabled and
+ *   #MBEDTLS_PSA_CRYPTO_C disabled).
+ */
+//#define MBEDTLS_PSA_DRIVER_GET_ENTROPY
+
+/**
+ * \def MBEDTLS_PSA_ITS_FILE_C
+ *
+ * Enable the emulation of the Platform Security Architecture
+ * Internal Trusted Storage (PSA ITS) over files.
+ *
+ * Module:  core/psa_its_file.c
+ *
+ * Requires: MBEDTLS_FS_IO
+ */
+#define MBEDTLS_PSA_ITS_FILE_C
+
+/**
+ * \def MBEDTLS_PSA_KEY_STORE_DYNAMIC
+ *
+ * Dynamically resize the PSA key store to accommodate any number of
+ * volatile keys (until the heap memory is exhausted).
+ *
+ * If this option is disabled, the key store has a fixed size
+ * #MBEDTLS_PSA_KEY_SLOT_COUNT for volatile keys and loaded persistent keys
+ * together.
+ *
+ * This option has no effect when #MBEDTLS_PSA_CRYPTO_C is disabled.
+ *
+ * Module:  core/psa_crypto.c
+ * Requires: MBEDTLS_PSA_CRYPTO_C
+ */
+#define MBEDTLS_PSA_KEY_STORE_DYNAMIC
+
+/**
+ * \def MBEDTLS_PSA_STATIC_KEY_SLOTS
+ *
+ * Statically preallocate memory to store keys' material in PSA instead
+ * of allocating it dynamically when required. This allows builds without a
+ * heap, if none of the enabled cryptographic implementations or other features
+ * require it.
+ * This feature affects both volatile and persistent keys which means that
+ * it's not possible to persistently store a key which is larger than
+ * #MBEDTLS_PSA_STATIC_KEY_SLOT_BUFFER_SIZE.
+ *
+ * \note This feature comes with a (potentially) higher RAM usage since:
+ *       - All the key slots are allocated no matter if they are used or not.
+ *       - Each key buffer's length is #MBEDTLS_PSA_STATIC_KEY_SLOT_BUFFER_SIZE bytes.
+ *
+ * Requires: MBEDTLS_PSA_CRYPTO_C
+ *
+ */
+//#define MBEDTLS_PSA_STATIC_KEY_SLOTS
+
+/* Entropy options */
+
+/**
+ * \def MBEDTLS_PSA_CRYPTO_PLATFORM_FILE
+ *
+ * If defined, this is a header which will be included instead of
+ * `"psa/crypto_platform.h"`. This file should declare the same identifiers
+ * as the one in Mbed TLS, but with definitions adapted to the platform on
+ * which the library code will run.
+ *
+ * \note The required content of this header can vary from one version of
+ *       Mbed TLS to the next. Integrators who provide an alternative file
+ *       should review the changes in the original file whenever they
+ *       upgrade Mbed TLS.
+ *
+ * This macro is expanded after an <tt>\#include</tt> directive. This is a popular but
+ * non-standard feature of the C language, so this feature is only available
+ * with compilers that perform macro expansion on an <tt>\#include</tt> line.
+ *
+ * The value of this symbol is typically a path in double quotes, either
+ * absolute or relative to a directory on the include search path.
+ */
+//#define MBEDTLS_PSA_CRYPTO_PLATFORM_FILE "psa/crypto_platform_alt.h"
+
+/**
+ * \def MBEDTLS_PSA_CRYPTO_STRUCT_FILE
+ *
+ * If defined, this is a header which will be included instead of
+ * `"psa/crypto_struct.h"`. This file should declare the same identifiers
+ * as the one in Mbed TLS, but with definitions adapted to the environment
+ * in which the library code will run. The typical use for this feature
+ * is to provide alternative type definitions on the client side in
+ * client-server integrations of PSA crypto, where operation structures
+ * contain handles instead of cryptographic data.
+ *
+ * \note The required content of this header can vary from one version of
+ *       Mbed TLS to the next. Integrators who provide an alternative file
+ *       should review the changes in the original file whenever they
+ *       upgrade Mbed TLS.
+ *
+ * This macro is expanded after an <tt>\#include</tt> directive. This is a popular but
+ * non-standard feature of the C language, so this feature is only available
+ * with compilers that perform macro expansion on an <tt>\#include</tt> line.
+ *
+ * The value of this symbol is typically a path in double quotes, either
+ * absolute or relative to a directory on the include search path.
+ */
+//#define MBEDTLS_PSA_CRYPTO_STRUCT_FILE "psa/crypto_struct_alt.h"
+
+/** \def MBEDTLS_PSA_KEY_SLOT_COUNT
+ *
+ * When #MBEDTLS_PSA_KEY_STORE_DYNAMIC is disabled,
+ * the maximum amount of PSA keys simultaneously in memory. This counts all
+ * volatile keys, plus loaded persistent keys.
+ *
+ * When #MBEDTLS_PSA_KEY_STORE_DYNAMIC is enabled,
+ * the maximum number of loaded persistent keys.
+ *
+ * Currently, persistent keys do not need to be loaded all the time while
+ * a multipart operation is in progress, only while the operation is being
+ * set up. This may change in future versions of the library.
+ *
+ * Currently, the library traverses of the whole table on each access to a
+ * persistent key. Therefore large values may cause poor performance.
+ *
+ * This option has no effect when #MBEDTLS_PSA_CRYPTO_C is disabled.
+ */
+//#define MBEDTLS_PSA_KEY_SLOT_COUNT 32
+
+/**
+ * \def MBEDTLS_PSA_STATIC_KEY_SLOT_BUFFER_SIZE
+ *
+ * Define the size (in bytes) of each static key buffer when
+ * #MBEDTLS_PSA_STATIC_KEY_SLOTS is set. If not
+ * explicitly defined then it's automatically guessed from available PSA keys
+ * enabled in the build through PSA_WANT_xxx symbols.
+ * If required by the application this parameter can be set to higher values
+ * in order to store larger objects (ex: raw keys), but please note that this
+ * will increase RAM usage.
+ */
+//#define MBEDTLS_PSA_STATIC_KEY_SLOT_BUFFER_SIZE       256
+
+/**
+ * \def MBEDTLS_PSA_CRYPTO_RNG_STRENGTH
+ *
+ * Minimum security strength (in bits) of the PSA RNG.
+ *
+ * \note Valid values: 128 or default of 256.
+ */
+//#define MBEDTLS_PSA_CRYPTO_RNG_STRENGTH               256
+
+/**
+ * \def MBEDTLS_PSA_CRYPTO_RNG_HASH
+ *
+ * \brief Hash algorithm to use for the entropy module and for HMAC_DRBG if configured.
+ *
+ * The hash size (in bits) must be at least #MBEDTLS_PSA_CRYPTO_RNG_STRENGTH.
+ *
+ * In addition, if the entropy module is enabled (#MBEDTLS_PSA_CRYPTO_C is enabled
+ * and #MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG is disabled):
+ * - The hash size must be at least 32 bytes (i.e., 256 bits).
+ * - Only two values are currently allowed: PSA_ALG_SHA_256 and PSA_ALG_SHA_512.
+ *   A future version may lift this limitation.
+ *
+ * If #MBEDTLS_PSA_CRYPTO_RNG_HASH is not explicitly set in the configuration,
+ * a default hash that satisfies the above constraints is selected automatically.
+ * If no suitable default can be selected, this will result in a build error.
+ */
+//#define MBEDTLS_PSA_CRYPTO_RNG_HASH PSA_ALG_SHA_256
+
+/**
+ * \def MBEDTLS_PSA_RNG_RESEED_INTERVAL
+ *
+ * In CTR_DRBG and HMAC_DRBG, the interval before the DRBG is reseeded from entropy.
+ * The interval is the number of requests to the random generator, for any purpose.
+ *
+ * \note Requests have a maximum size (which depends on the library configuration
+ * and is currently unspecified), so the maximum number of bytes before a reseed
+ * is the interval multiplied by the maximum request size.
+ */
+//#define MBEDTLS_PSA_RNG_RESEED_INTERVAL 1000
+
+/** \} name SECTION: PSA core */
+
+/**
+ * \name SECTION: Builtin drivers
+ *
+ * This section sets driver specific settings.
+ * \{
+ */
+
+/**
+ * \def MBEDTLS_AESNI_C
+ *
+ * Enable AES-NI support on x86-64 or x86-32.
+ *
+ * \note AESNI is only supported with certain compilers and target options:
+ * - Visual Studio: supported
+ * - GCC, x86-64, target not explicitly supporting AESNI:
+ *   requires MBEDTLS_HAVE_ASM.
+ * - GCC, x86-32, target not explicitly supporting AESNI:
+ *   not supported.
+ * - GCC, x86-64 or x86-32, target supporting AESNI: supported.
+ *   For this assembly-less implementation, you must currently compile
+ *   `drivers/builtin/src/aesni.c` and `drivers/builtin/src/aes.c` with machine
+ *   options to enable SSE2 and AESNI instructions: `gcc -msse2 -maes -mpclmul`
+ *   or `clang -maes -mpclmul`.
+ * - Non-x86 targets: this option is silently ignored.
+ * - Other compilers: this option is silently ignored.
+ *
+ * \note
+ * Above, "GCC" includes compatible compilers such as Clang.
+ * The limitations on target support are likely to be relaxed in the future.
+ *
+ * Module:  drivers/builtin/src/aesni.c
+ * Caller:  drivers/builtin/src/aes.c
+ *
+ * Requires: MBEDTLS_HAVE_ASM (on some platforms, see note)
+ *
+ * This modules adds support for the AES-NI instructions on x86.
+ */
+#define MBEDTLS_AESNI_C
+
+/**
+ * \def MBEDTLS_AESCE_C
+ *
+ * Enable AES cryptographic extension support on Armv8.
+ *
+ * Module:  drivers/builtin/src/aesce.c
+ * Caller:  drivers/builtin/src/aes.c
+ *
+ * Requires: The AES built-in implementation
+ *
+ * \warning Runtime detection only works on Linux. For non-Linux operating
+ *          system, Armv8-A Cryptographic Extensions must be supported by
+ *          the CPU when this option is enabled.
+ *
+ * \note    Minimum compiler versions for this feature when targeting aarch64
+ *          are Clang 4.0; armclang 6.6; GCC 6.0; or MSVC 2019 version 16.11.2.
+ *          Minimum compiler versions for this feature when targeting 32-bit
+ *          Arm or Thumb are Clang 11.0; armclang 6.20; or GCC 6.0.
+ *
+ * \note \c CFLAGS must be set to a minimum of \c -march=armv8-a+crypto for
+ * armclang <= 6.9
+ *
+ * This module adds support for the AES Armv8-A Cryptographic Extensions on Armv8 systems.
+ */
+#define MBEDTLS_AESCE_C
+
+/**
+ * \def MBEDTLS_AES_ROM_TABLES
+ *
+ * Use precomputed AES tables stored in ROM.
+ *
+ * Uncomment this macro to use precomputed AES tables stored in ROM.
+ * Comment this macro to generate AES tables in RAM at runtime.
+ *
+ * Tradeoff: Using precomputed ROM tables reduces RAM usage by ~8kb
+ * (or ~2kb if \c MBEDTLS_AES_FEWER_TABLES is used) and reduces the
+ * initialization time before the first AES operation can be performed.
+ * It comes at the cost of additional ~8kb ROM use (resp. ~2kb if \c
+ * MBEDTLS_AES_FEWER_TABLES below is used), and potentially degraded
+ * performance if ROM access is slower than RAM access.
+ *
+ * This option is independent of \c MBEDTLS_AES_FEWER_TABLES.
+ */
+//#define MBEDTLS_AES_ROM_TABLES
+
+/**
+ * \def MBEDTLS_AES_FEWER_TABLES
+ *
+ * Use less ROM/RAM for AES tables.
+ *
+ * Uncommenting this macro omits 75% of the AES tables from
+ * ROM / RAM (depending on the value of \c MBEDTLS_AES_ROM_TABLES)
+ * by computing their values on the fly during operations
+ * (the tables are entry-wise rotations of one another).
+ *
+ * Tradeoff: Uncommenting this reduces the RAM / ROM footprint
+ * by ~6kb but at the cost of more arithmetic operations during
+ * runtime. Specifically, one has to compare 4 accesses within
+ * different tables to 4 accesses with additional arithmetic
+ * operations within the same table. The performance gain/loss
+ * depends on the system and memory details.
+ *
+ * This option is independent of \c MBEDTLS_AES_ROM_TABLES.
+ */
+//#define MBEDTLS_AES_FEWER_TABLES
+
+/**
+ * \def MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
+ *
+ * Use only 128-bit keys in AES operations to save ROM.
+ *
+ * Uncomment this macro to remove support for AES operations that use 192-
+ * or 256-bit keys.
+ *
+ * Uncommenting this macro reduces the size of AES code by ~300 bytes
+ * on v8-M/Thumb2.
+ *
+ * Module:  drivers/builtin/src/aes.c
+ *
+ * Requires: The AES built-in implementation
+ */
+//#define MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
+
+/*
+ * Disable plain C implementation for AES.
+ *
+ * When the plain C implementation is enabled, and an implementation using a
+ * special CPU feature (such as MBEDTLS_AESCE_C) is also enabled, runtime
+ * detection will be used to select between them.
+ *
+ * If only one implementation is present, runtime detection will not be used.
+ * This configuration will crash at runtime if running on a CPU without the
+ * necessary features. It will not build unless at least one of MBEDTLS_AESCE_C
+ * and/or MBEDTLS_AESNI_C is enabled & present in the build.
+ */
+//#define MBEDTLS_AES_USE_HARDWARE_ONLY
+
+/**
+ * \def MBEDTLS_BLOCK_CIPHER_NO_DECRYPT
+ *
+ * Remove decryption operation for AES, ARIA and Camellia block cipher.
+ *
+ * \note  This feature is incompatible with PSA_WANT_ALG_ECB_NO_PADDING,
+ *        PSA_WANT_ALG_CBC_NO_PADDING, PSA_WANT_ALG_CBC_PKCS7 and
+ *        MBEDTLS_NIST_KW_C.
+ *
+ * Module:  drivers/builtin/src/aes.c
+ *          drivers/builtin/src/aesce.c
+ *          drivers/builtin/src/aesni.c
+ *          drivers/builtin/src/aria.c
+ *          drivers/builtin/src/camellia.c
+ *          drivers/builtin/src/cipher.c
+ */
+//#define MBEDTLS_BLOCK_CIPHER_NO_DECRYPT
+
+/**
+ * \def MBEDTLS_CAMELLIA_SMALL_MEMORY
+ *
+ * Use less ROM for the Camellia implementation (saves about 768 bytes).
+ *
+ * Uncomment this macro to use less memory for Camellia.
+ */
+//#define MBEDTLS_CAMELLIA_SMALL_MEMORY
+
+/**
+ * Enable the verified implementations of ECDH primitives from Project Everest
+ * (currently only Curve25519). This feature changes the layout of ECDH
+ * contexts and therefore is a compatibility break for applications that access
+ * fields of a mbedtls_ecdh_context structure directly. See also
+ * MBEDTLS_ECDH_LEGACY_CONTEXT in drivers/builtin/include/mbedtls/private/ecdh.h.
+ *
+ * The Everest code is provided under the Apache 2.0 license only; therefore enabling this
+ * option is not compatible with taking the library under the GPL v2.0-or-later license.
+ */
+//#define MBEDTLS_ECDH_VARIANT_EVEREST_ENABLED
+
+/**
+ * \def MBEDTLS_ECP_NIST_OPTIM
+ *
+ * Enable specific 'modulo p' routines for each NIST prime.
+ * Depending on the prime and architecture, makes operations 4 to 8 times
+ * faster on the corresponding curve.
+ *
+ * Comment this macro to disable NIST curves optimisation.
+ */
+#define MBEDTLS_ECP_NIST_OPTIM
+
+/**
+ * \def MBEDTLS_ECP_RESTARTABLE
+ *
+ * Enable "non-blocking" ECC operations that can return early and be resumed.
+ *
+ * This allows various functions to pause by returning
+ * #PSA_OPERATION_INCOMPLETE and then be called later again in
+ * order to further progress and eventually complete their operation. This is
+ * controlled through mbedtls_ecp_set_max_ops() which limits the maximum
+ * number of ECC operations a function may perform before pausing; see
+ * mbedtls_ecp_set_max_ops() for more information.
+ *
+ * This is useful in non-threaded environments if you want to avoid blocking
+ * for too long on ECC (and, hence, X.509 or SSL/TLS) operations.
+ *
+ * This option:
+ * - Adds xxx_restartable() variants of existing operations in the
+ *   following modules, with corresponding restart context types:
+ *   - ECP (for Short Weierstrass curves only): scalar multiplication (mul),
+ *     linear combination (muladd);
+ *   - ECDSA: signature generation & verification;
+ *   - PK: signature generation & verification;
+ *   - X509: certificate chain verification.
+ * - Adds mbedtls_ecdh_enable_restart() in the ECDH module.
+ * - Changes the behaviour of TLS 1.2 clients (not servers) when using the
+ *   ECDHE-ECDSA key exchange (not other key exchanges) to make all ECC
+ *   computations restartable:
+ *   - verification of the server's key exchange signature;
+ *   - verification of the server's certificate chain;
+ *   - generation of the client's signature if client authentication is used,
+ *     with an ECC key/certificate.
+ *
+ * \note  When this option is enabled, restartable operations in PK, X.509
+ *        and TLS (see above) are not using PSA. On the other hand, ECDH
+ *        computations in TLS are using PSA, and are not restartable. These
+ *        are temporary limitations that should be lifted in the future. (See
+ *        https://github.com/Mbed-TLS/mbedtls/issues/9784 and
+ *        https://github.com/Mbed-TLS/mbedtls/issues/9817)
+ *
+ * Requires: Builtin support of Elliptic Curves.
+ *
+ * Uncomment this macro to enable restartable ECC computations.
+ */
+//#define MBEDTLS_ECP_RESTARTABLE
+
+/**
+ * Uncomment to enable using new bignum code in the ECC modules.
+ *
+ * \warning This is currently experimental, incomplete and therefore should not
+ * be used in production.
+ */
+//#define MBEDTLS_ECP_WITH_MPI_UINT
+
+/**
+ * \def MBEDTLS_GCM_LARGE_TABLE
+ *
+ * Enable large pre-computed tables for  Galois/Counter Mode (GCM).
+ * Can significantly increase throughput on systems without GCM hardware
+ * acceleration (e.g., AESNI, AESCE).
+ *
+ * The mbedtls_gcm_context size will increase by 3840 bytes.
+ * The code size will increase by roughly 344 bytes.
+ *
+ * Module:  drivers/builtin/src/gcm.c
+ *
+ * Requires: The GCM built-in implementation
+ */
+//#define MBEDTLS_GCM_LARGE_TABLE
+
+/**
+ * \def MBEDTLS_HAVE_ASM
+ *
+ * The compiler has support for asm().
+ *
+ * Requires support for asm() in compiler.
+ *
+ * Used in:
+ *      drivers/builtin/src/aesni.h
+ *      drivers/builtin/src/aria.c
+ *      drivers/builtin/src/bn_mul.h
+ *      drivers/builtin/src/constant_time.c
+ *
+ * Required by:
+ *      MBEDTLS_AESCE_C
+ *      MBEDTLS_AESNI_C (on some platforms)
+ *
+ * Comment to disable the use of assembly code.
+ */
+#define MBEDTLS_HAVE_ASM
+
+/**
+ * \def MBEDTLS_HAVE_SSE2
+ *
+ * CPU supports SSE2 instruction set.
+ *
+ * Uncomment if the CPU supports SSE2 (IA-32 specific).
+ */
+//#define MBEDTLS_HAVE_SSE2
+
+/**
+ * \def MBEDTLS_NO_UDBL_DIVISION
+ *
+ * The platform lacks support for double-width integer division (64-bit
+ * division on a 32-bit platform, 128-bit division on a 64-bit platform).
+ *
+ * Used in:
+ *      include/mbedtls/bignum.h
+ *      drivers/builtin/src/bignum.c
+ *
+ * The bignum code uses double-width division to speed up some operations.
+ * Double-width division is often implemented in software that needs to
+ * be linked with the program. The presence of a double-width integer
+ * type is usually detected automatically through preprocessor macros,
+ * but the automatic detection cannot know whether the code needs to
+ * and can be linked with an implementation of division for that type.
+ * By default division is assumed to be usable if the type is present.
+ * Uncomment this option to prevent the use of double-width division.
+ *
+ * Note that division for the native integer type is always required.
+ * Furthermore, a 64-bit type is always required even on a 32-bit
+ * platform, but it need not support multiplication or division. In some
+ * cases it is also desirable to disable some double-width operations. For
+ * example, if double-width division is implemented in software, disabling
+ * it can reduce code size in some embedded targets.
+ */
+//#define MBEDTLS_NO_UDBL_DIVISION
+
+/**
+ * \def MBEDTLS_NO_64BIT_MULTIPLICATION
+ *
+ * The platform lacks support for 32x32 -> 64-bit multiplication.
+ *
+ * Used in:
+ *      drivers/builtin/src/poly1305.c
+ *
+ * Some parts of the library may use multiplication of two unsigned 32-bit
+ * operands with a 64-bit result in order to speed up computations. On some
+ * platforms, this is not available in hardware and has to be implemented in
+ * software, usually in a library provided by the toolchain.
+ *
+ * Sometimes it is not desirable to have to link to that library. This option
+ * removes the dependency of that library on platforms that lack a hardware
+ * 64-bit multiplier by embedding a software implementation in Mbed TLS.
+ *
+ * Note that depending on the compiler, this may decrease performance compared
+ * to using the library function provided by the toolchain.
+ */
+//#define MBEDTLS_NO_64BIT_MULTIPLICATION
+
+/**
+ * Uncomment to enable p256-m. This is an alternative implementation of
+ * key generation, ECDH and (randomized) ECDSA on the curve SECP256R1.
+ * Compared to the default implementation:
+ *
+ * - p256-m has a much smaller code size and RAM footprint.
+ * - p256-m is only available via the PSA API. This includes the pk module.
+ * - p256-m does not support deterministic ECDSA, EC-JPAKE, custom protocols
+ *   over the core arithmetic, or deterministic derivation of keys.
+ *
+ * We recommend enabling this option if your application uses the PSA API
+ * and the only elliptic curve support it needs is ECDH and ECDSA over
+ * SECP256R1.
+ *
+ * If you enable this option, you do not need to enable any ECC-related
+ * MBEDTLS_xxx option. You do need to separately request support for the
+ * cryptographic mechanisms through the PSA API:
+ * - #MBEDTLS_PSA_CRYPTO_C for PSA-based configuration;
+ * - #PSA_WANT_ECC_SECP_R1_256;
+ * - #PSA_WANT_ALG_ECDH and/or #PSA_WANT_ALG_ECDSA as needed;
+ * - #PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY, #PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_BASIC,
+ *   #PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_IMPORT,
+ *   #PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_EXPORT and/or
+ *   #PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_GENERATE as needed.
+ *
+ * \note To benefit from the smaller code size of p256-m, make sure that you
+ *       do not enable any ECC-related option not supported by p256-m: this
+ *       would cause the built-in ECC implementation to be built as well, in
+ *       order to provide the required option.
+ *       Make sure #PSA_WANT_ALG_DETERMINISTIC_ECDSA, #PSA_WANT_ALG_JPAKE and
+ *       #PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_DERIVE, and curves other than
+ *       SECP256R1 are disabled as they are not supported by this driver.
+ *       Also, avoid defining #MBEDTLS_PK_PARSE_EC_COMPRESSED or
+ *       #MBEDTLS_PK_PARSE_EC_EXTENDED as those currently require a subset of
+ *       the built-in ECC implementation, see docs/driver-only-builds.md.
+ */
+//#define MBEDTLS_PSA_P256M_DRIVER_ENABLED
+
+/**
+ * \def MBEDTLS_RSA_NO_CRT
+ *
+ * Do not use the Chinese Remainder Theorem
+ * for the RSA private operation.
+ *
+ * Uncomment this macro to disable the use of CRT in RSA.
+ *
+ */
+//#define MBEDTLS_RSA_NO_CRT
+
+/**
+ * \def MBEDTLS_SHA256_SMALLER
+ *
+ * Enable an implementation of SHA-256 that has lower ROM footprint but also
+ * lower performance.
+ *
+ * The default implementation is meant to be a reasonable compromise between
+ * performance and size. This version optimizes more aggressively for size at
+ * the expense of performance. Eg on Cortex-M4 it reduces the size of
+ * mbedtls_sha256_process() from ~2KB to ~0.5KB for a performance hit of about
+ * 30%.
+ *
+ * Uncomment to enable the smaller implementation of SHA256.
+ */
+//#define MBEDTLS_SHA256_SMALLER
+
+/**
+ * \def MBEDTLS_SHA256_USE_ARMV8_A_CRYPTO_IF_PRESENT
+ *
+ * Enable acceleration of the SHA-256 and SHA-224 cryptographic hash algorithms
+ * with the ARMv8 cryptographic extensions if they are available at runtime.
+ * If not, the library will fall back to the C implementation.
+ *
+ * \note MBEDTLS_SHA256_USE_ARMV8_A_CRYPTO_IF_PRESENT requires the built-in
+ * SHA-256 implementation to be present in the build. This implementation is
+ * included only if PSA_WANT_ALG_SHA_256 is enabled and this results in
+ * MBEDTLS_PSA_BUILTIN_ALG_SHA_256 being defined internally (i.e., no
+ * fully-featured, fallback-free accelerator driver is present).
+ *
+ * \note If MBEDTLS_SHA256_USE_ARMV8_A_CRYPTO_IF_PRESENT is defined when building
+ * for a non-Armv8-A build it will be silently ignored.
+ *
+ * \note    Minimum compiler versions for this feature are Clang 4.0,
+ * armclang 6.6 or GCC 6.0.
+ *
+ * \note \c CFLAGS must be set to a minimum of \c -march=armv8-a+crypto for
+ * armclang <= 6.9
+ *
+ * \warning MBEDTLS_SHA256_USE_ARMV8_A_CRYPTO_IF_PRESENT cannot be defined at the
+ * same time as MBEDTLS_SHA256_USE_ARMV8_A_CRYPTO_ONLY.
+ *
+ * Requires: The SHA-256 built-in implementation
+ *
+ * Module:  drivers/builtin/src/sha256.c
+ *
+ * Uncomment to have the library check for the Armv8-A SHA-256 crypto extensions
+ * and use them if available.
+ */
+//#define MBEDTLS_SHA256_USE_ARMV8_A_CRYPTO_IF_PRESENT
+
+
+/**
+ * \def MBEDTLS_SHA256_USE_ARMV8_A_CRYPTO_ONLY
+ *
+ * Enable acceleration of the SHA-256 and SHA-224 cryptographic hash algorithms
+ * with the ARMv8 cryptographic extensions, which must be available at runtime
+ * or else an illegal instruction fault will occur.
+ *
+ * \note MBEDTLS_SHA256_USE_ARMV8_A_CRYPTO_ONLY requires the built-in SHA-256
+ * implementation to be present in the build. This implementation is included
+ * only if PSA_WANT_ALG_SHA_256 is enabled and this results in
+ * MBEDTLS_PSA_BUILTIN_ALG_SHA_256 being defined internally (i.e., no
+ * fully-featured, fallback-free accelerator driver is present).
+ *
+ * \note This allows builds with a smaller code size than with
+ * MBEDTLS_SHA256_USE_ARMV8_A_CRYPTO_IF_PRESENT
+ *
+ * \note    Minimum compiler versions for this feature are Clang 4.0,
+ * armclang 6.6 or GCC 6.0.
+ *
+ * \note \c CFLAGS must be set to a minimum of \c -march=armv8-a+crypto for
+ * armclang <= 6.9
+ *
+ * \warning MBEDTLS_SHA256_USE_ARMV8_A_CRYPTO_ONLY cannot be defined at the same
+ * time as MBEDTLS_SHA256_USE_ARMV8_A_CRYPTO_IF_PRESENT.
+ *
+ * Requires: The SHA-256 built-in implementation
+ *
+ * Module:  drivers/builtin/src/sha256.c
+ *
+ * Uncomment to have the library use the Armv8-A SHA-256 crypto extensions
+ * unconditionally.
+ */
+//#define MBEDTLS_SHA256_USE_ARMV8_A_CRYPTO_ONLY
+
+/**
+ * \def MBEDTLS_SHA512_SMALLER
+ *
+ * Enable an implementation of SHA-512 that has lower ROM footprint but also
+ * lower performance.
+ *
+ * Uncomment to enable the smaller implementation of SHA512.
+ */
+//#define MBEDTLS_SHA512_SMALLER
+
+/**
+ * \def MBEDTLS_SHA512_USE_A64_CRYPTO_IF_PRESENT
+ *
+ * Enable acceleration of the SHA-512 and SHA-384 cryptographic hash algorithms
+ * with the ARMv8 cryptographic extensions if they are available at runtime.
+ * If not, the library will fall back to the C implementation.
+ *
+ * \note MBEDTLS_SHA512_USE_A64_CRYPTO_IF_PRESENT requires the built-in
+ * SHA-512 implementation to be present in the build. This implementation is
+ * included only if PSA_WANT_ALG_SHA_512 is enabled and this results in
+ * MBEDTLS_PSA_BUILTIN_ALG_SHA_512 being defined internally (i.e., no
+ * fully-featured, fallback-free accelerator driver is present).
+ *
+ * \note If MBEDTLS_SHA512_USE_A64_CRYPTO_IF_PRESENT is defined when building
+ * for a non-Aarch64 build it will be silently ignored.
+ *
+ * \note    Minimum compiler versions for this feature are Clang 7.0,
+ * armclang 6.9 or GCC 8.0.
+ *
+ * \note \c CFLAGS must be set to a minimum of \c -march=armv8.2-a+sha3 for
+ * armclang 6.9
+ *
+ * \warning MBEDTLS_SHA512_USE_A64_CRYPTO_IF_PRESENT cannot be defined at the
+ * same time as MBEDTLS_SHA512_USE_A64_CRYPTO_ONLY.
+ *
+ * Requires: The SHA-512 built-in implementation
+ *
+ * Module:  drivers/builtin/src/sha512.c
+ *
+ * Uncomment to have the library check for the A64 SHA-512 crypto extensions
+ * and use them if available.
+ */
+//#define MBEDTLS_SHA512_USE_A64_CRYPTO_IF_PRESENT
+
+/**
+ * \def MBEDTLS_SHA512_USE_A64_CRYPTO_ONLY
+ *
+ * Enable acceleration of the SHA-512 and SHA-384 cryptographic hash algorithms
+ * with the ARMv8 cryptographic extensions, which must be available at runtime
+ * or else an illegal instruction fault will occur.
+ *
+ * \note MBEDTLS_SHA512_USE_A64_CRYPTO_IF_PRESENT requires the built-in
+ * SHA-512 implementation to be present in the build. This implementation is
+ * included only if PSA_WANT_ALG_SHA_512 is enabled and this results in
+ * MBEDTLS_PSA_BUILTIN_ALG_SHA_512 being defined internally (i.e., no
+ * fully-featured, fallback-free accelerator driver is present).
+ *
+ * \note This allows builds with a smaller code size than with
+ * MBEDTLS_SHA512_USE_A64_CRYPTO_IF_PRESENT
+ *
+ * \note    Minimum compiler versions for this feature are Clang 7.0,
+ * armclang 6.9 or GCC 8.0.
+ *
+ * \note \c CFLAGS must be set to a minimum of \c -march=armv8.2-a+sha3 for
+ * armclang 6.9
+ *
+ * \warning MBEDTLS_SHA512_USE_A64_CRYPTO_ONLY cannot be defined at the same
+ * time as MBEDTLS_SHA512_USE_A64_CRYPTO_IF_PRESENT.
+ *
+ * Requires: The SHA-512 built-in implementation
+ *
+ * Module:  drivers/builtin/src/sha512.c
+ *
+ * Uncomment to have the library use the A64 SHA-512 crypto extensions
+ * unconditionally.
+ */
+//#define MBEDTLS_SHA512_USE_A64_CRYPTO_ONLY
+
+/* ECP options */
+//#define MBEDTLS_ECP_FIXED_POINT_OPTIM      1 /**< Enable fixed-point speed-up */
+//#define MBEDTLS_ECP_WINDOW_SIZE            4 /**< Maximum window size used */
+
+/* MPI / BIGNUM options */
+//#define MBEDTLS_MPI_MAX_SIZE            1024 /**< Maximum number of bytes for usable MPIs. */
+//#define MBEDTLS_MPI_WINDOW_SIZE            2 /**< Maximum window size used. */
+
+/* RSA OPTIONS */
+//#define MBEDTLS_RSA_GEN_KEY_MIN_BITS            1024 /**<  Minimum RSA key size that can be generated in bits (Minimum possible value is 128 bits) */
+
+/** \} name SECTION: Builtin drivers */
+
+/* Do not enable except for testing. Will be removed in a future minor version.
+ */
+//#define TF_PSA_CRYPTO_ALLOW_REMOVED_MECHANISMS
+#endif /* PSA_CRYPTO_CONFIG_H */
diff --git a/deps/LIEF/third-party/mbedtls/include/psa/crypto_driver_common.h b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/include/psa/crypto_driver_common.h
similarity index 88%
rename from deps/LIEF/third-party/mbedtls/include/psa/crypto_driver_common.h
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/include/psa/crypto_driver_common.h
index cc11d3b9a2d..9afabb5ea89 100644
--- a/deps/LIEF/third-party/mbedtls/include/psa/crypto_driver_common.h
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/include/psa/crypto_driver_common.h
@@ -4,9 +4,7 @@
  *
  * This file contains common definitions shared by all PSA crypto drivers.
  * Do not include it directly: instead, include the header file(s) for
- * the type(s) of driver that you are implementing. For example, if
- * you are writing a dynamically registered driver for a secure element,
- * include `psa/crypto_se_driver.h`.
+ * the type(s) of driver that you are implementing.
  *
  * This file is part of the PSA Crypto Driver Model, containing functions for
  * driver developers to implement to enable hardware to be called in a
diff --git a/deps/LIEF/third-party/mbedtls/include/psa/crypto_driver_contexts_composites.h b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/include/psa/crypto_driver_contexts_composites.h
similarity index 95%
rename from deps/LIEF/third-party/mbedtls/include/psa/crypto_driver_contexts_composites.h
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/include/psa/crypto_driver_contexts_composites.h
index d717c519091..eade6f31463 100644
--- a/deps/LIEF/third-party/mbedtls/include/psa/crypto_driver_contexts_composites.h
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/include/psa/crypto_driver_contexts_composites.h
@@ -1,10 +1,12 @@
-/*
- *  Declaration of context structures for use with the PSA driver wrapper
+/**
+ * \file crypto_driver_contexts_composites.h
+ *
+ * \brief Declaration of context structures for use with the PSA driver wrapper
  *  interface. This file contains the context structures for 'composite'
  *  operations, i.e. those operations which need to make use of other operations
  *  from the primitives (crypto_driver_contexts_primitives.h)
  *
- *  Warning: This file will be auto-generated in the future.
+ * \warning This file will be auto-generated in the future.
  *
  * \note This file may not be included directly. Applications must
  * include psa/crypto.h.
@@ -31,7 +33,7 @@
  * declared during the autogeneration process. */

 #if defined(MBEDTLS_TEST_LIBTESTDRIVER1)
-#include <libtestdriver1/include/psa/crypto.h>
+#include <libtestdriver1/tf-psa-crypto/include/psa/crypto.h>
 #endif

 #if defined(PSA_CRYPTO_DRIVER_TEST)
diff --git a/deps/LIEF/third-party/mbedtls/include/psa/crypto_driver_contexts_key_derivation.h b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/include/psa/crypto_driver_contexts_key_derivation.h
similarity index 86%
rename from deps/LIEF/third-party/mbedtls/include/psa/crypto_driver_contexts_key_derivation.h
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/include/psa/crypto_driver_contexts_key_derivation.h
index 21190515cee..f43d850a9b8 100644
--- a/deps/LIEF/third-party/mbedtls/include/psa/crypto_driver_contexts_key_derivation.h
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/include/psa/crypto_driver_contexts_key_derivation.h
@@ -1,9 +1,11 @@
-/*
- *  Declaration of context structures for use with the PSA driver wrapper
- *  interface. This file contains the context structures for key derivation
- *  operations.
+/**
+ * \file crypto_driver_contexts_key_derivation.h
  *
- *  Warning: This file will be auto-generated in the future.
+ * \brief Declaration of context structures for use with the PSA driver wrapper
+ * interface. This file contains the context structures for key derivation
+ * operations.
+ *
+ * \warning This file will be auto-generated in the future.
  *
  * \note This file may not be included directly. Applications must
  * include psa/crypto.h.
diff --git a/deps/LIEF/third-party/mbedtls/include/psa/crypto_driver_contexts_primitives.h b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/include/psa/crypto_driver_contexts_primitives.h
similarity index 90%
rename from deps/LIEF/third-party/mbedtls/include/psa/crypto_driver_contexts_primitives.h
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/include/psa/crypto_driver_contexts_primitives.h
index c90a5fbe742..303d88b4c38 100644
--- a/deps/LIEF/third-party/mbedtls/include/psa/crypto_driver_contexts_primitives.h
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/include/psa/crypto_driver_contexts_primitives.h
@@ -1,9 +1,11 @@
-/*
- *  Declaration of context structures for use with the PSA driver wrapper
- *  interface. This file contains the context structures for 'primitive'
- *  operations, i.e. those operations which do not rely on other contexts.
+/**
+ * \file crypto_driver_contexts_primitives.h
  *
- *  Warning: This file will be auto-generated in the future.
+ * \brief Declaration of context structures for use with the PSA driver wrapper
+ * interface. This file contains the context structures for 'primitive'
+ * operations, i.e. those operations which do not rely on other contexts.
+ *
+ * \warning This file will be auto-generated in the future.
  *
  * \note This file may not be included directly. Applications must
  * include psa/crypto.h.
@@ -30,7 +32,7 @@
  * declared during the autogeneration process. */

 #if defined(MBEDTLS_TEST_LIBTESTDRIVER1)
-#include <libtestdriver1/include/psa/crypto.h>
+#include <libtestdriver1/tf-psa-crypto/include/psa/crypto.h>
 #endif

 #if defined(PSA_CRYPTO_DRIVER_TEST)
diff --git a/deps/LIEF/third-party/mbedtls/tf-psa-crypto/include/psa/crypto_driver_random.h b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/include/psa/crypto_driver_random.h
new file mode 100644
index 00000000000..271065c8b26
--- /dev/null
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/include/psa/crypto_driver_random.h
@@ -0,0 +1,49 @@
+/**
+ * \file psa/crypto_driver_random.h
+ * \brief Definitions for PSA random and entropy drivers
+ *
+ * This file is part of the PSA Crypto Driver Model, containing functions for
+ * driver developers to implement to enable hardware to be called in a
+ * standardized way by a PSA Cryptographic API implementation. The functions
+ * comprising the driver model, which driver authors implement, are not
+ * intended to be called by application developers.
+ */
+
+/*
+ *  Copyright The Mbed TLS Contributors
+ *  SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+ */
+#ifndef PSA_CRYPTO_DRIVER_RANDOM_H
+#define PSA_CRYPTO_DRIVER_RANDOM_H
+
+#include "crypto_driver_common.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/** \defgroup driver_random Random and entropy drivers
+ * @{
+ */
+
+/** The type of the \p flags argument to `"get_entropy"` driver entry points.
+ *
+ * This implementation does not support any flags yet.
+ *
+ */
+typedef uint32_t psa_driver_get_entropy_flags_t;
+
+/** Flags requesting the default behavior for a `"get_entropy"` driver entry
+ * point. This is equivalent to \c 0.
+ *
+ * \see ::psa_driver_get_entropy_flags_t
+ */
+#define PSA_DRIVER_GET_ENTROPY_FLAGS_NONE ((psa_driver_get_entropy_flags_t) 0)
+
+/**@}*/
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* PSA_CRYPTO_DRIVER_COMMON_H */
diff --git a/deps/LIEF/third-party/mbedtls/include/psa/crypto_extra.h b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/include/psa/crypto_extra.h
similarity index 76%
rename from deps/LIEF/third-party/mbedtls/include/psa/crypto_extra.h
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/include/psa/crypto_extra.h
index 70740901e1f..f80889cc6c5 100644
--- a/deps/LIEF/third-party/mbedtls/include/psa/crypto_extra.h
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/include/psa/crypto_extra.h
@@ -19,6 +19,7 @@

 #include "crypto_types.h"
 #include "crypto_compat.h"
+#include "crypto_values.h"

 #ifdef __cplusplus
 extern "C" {
@@ -84,130 +85,6 @@ static inline psa_algorithm_t psa_get_key_enrollment_algorithm(
     return attributes->MBEDTLS_PRIVATE(policy).MBEDTLS_PRIVATE(alg2);
 }

-#if defined(MBEDTLS_PSA_CRYPTO_SE_C)
-
-/** Retrieve the slot number where a key is stored.
- *
- * A slot number is only defined for keys that are stored in a secure
- * element.
- *
- * This information is only useful if the secure element is not entirely
- * managed through the PSA Cryptography API. It is up to the secure
- * element driver to decide how PSA slot numbers map to any other interface
- * that the secure element may have.
- *
- * \param[in] attributes        The key attribute structure to query.
- * \param[out] slot_number      On success, the slot number containing the key.
- *
- * \retval #PSA_SUCCESS
- *         The key is located in a secure element, and \p *slot_number
- *         indicates the slot number that contains it.
- * \retval #PSA_ERROR_NOT_PERMITTED
- *         The caller is not permitted to query the slot number.
- *         Mbed TLS currently does not return this error.
- * \retval #PSA_ERROR_INVALID_ARGUMENT
- *         The key is not located in a secure element.
- */
-psa_status_t psa_get_key_slot_number(
-    const psa_key_attributes_t *attributes,
-    psa_key_slot_number_t *slot_number);
-
-/** Choose the slot number where a key is stored.
- *
- * This function declares a slot number in the specified attribute
- * structure.
- *
- * A slot number is only meaningful for keys that are stored in a secure
- * element. It is up to the secure element driver to decide how PSA slot
- * numbers map to any other interface that the secure element may have.
- *
- * \note Setting a slot number in key attributes for a key creation can
- *       cause the following errors when creating the key:
- *       - #PSA_ERROR_NOT_SUPPORTED if the selected secure element does
- *         not support choosing a specific slot number.
- *       - #PSA_ERROR_NOT_PERMITTED if the caller is not permitted to
- *         choose slot numbers in general or to choose this specific slot.
- *       - #PSA_ERROR_INVALID_ARGUMENT if the chosen slot number is not
- *         valid in general or not valid for this specific key.
- *       - #PSA_ERROR_ALREADY_EXISTS if there is already a key in the
- *         selected slot.
- *
- * \param[out] attributes       The attribute structure to write to.
- * \param slot_number           The slot number to set.
- */
-static inline void psa_set_key_slot_number(
-    psa_key_attributes_t *attributes,
-    psa_key_slot_number_t slot_number)
-{
-    attributes->MBEDTLS_PRIVATE(has_slot_number) = 1;
-    attributes->MBEDTLS_PRIVATE(slot_number) = slot_number;
-}
-
-/** Remove the slot number attribute from a key attribute structure.
- *
- * This function undoes the action of psa_set_key_slot_number().
- *
- * \param[out] attributes       The attribute structure to write to.
- */
-static inline void psa_clear_key_slot_number(
-    psa_key_attributes_t *attributes)
-{
-    attributes->MBEDTLS_PRIVATE(has_slot_number) = 0;
-}
-
-/** Register a key that is already present in a secure element.
- *
- * The key must be located in a secure element designated by the
- * lifetime field in \p attributes, in the slot set with
- * psa_set_key_slot_number() in the attribute structure.
- * This function makes the key available through the key identifier
- * specified in \p attributes.
- *
- * \param[in] attributes        The attributes of the existing key.
- *                              - The lifetime must be a persistent lifetime
- *                                in a secure element. Volatile lifetimes are
- *                                not currently supported.
- *                              - The key identifier must be in the valid
- *                                range for persistent keys.
- *                              - The key type and size must be specified and
- *                                must be consistent with the key material
- *                                in the secure element.
- *
- * \retval #PSA_SUCCESS
- *         The key was successfully registered.
- *         Note that depending on the design of the driver, this may or may
- *         not guarantee that a key actually exists in the designated slot
- *         and is compatible with the specified attributes.
- * \retval #PSA_ERROR_ALREADY_EXISTS
- *         There is already a key with the identifier specified in
- *         \p attributes.
- * \retval #PSA_ERROR_NOT_SUPPORTED
- *         The secure element driver for the specified lifetime does not
- *         support registering a key.
- * \retval #PSA_ERROR_INVALID_ARGUMENT
- *         The identifier in \p attributes is invalid, namely the identifier is
- *         not in the user range, or
- *         \p attributes specifies a lifetime which is not located
- *         in a secure element, or no slot number is specified in \p attributes,
- *         or the specified slot number is not valid.
- * \retval #PSA_ERROR_NOT_PERMITTED
- *         The caller is not authorized to register the specified key slot.
- * \retval #PSA_ERROR_INSUFFICIENT_MEMORY \emptydescription
- * \retval #PSA_ERROR_INSUFFICIENT_STORAGE \emptydescription
- * \retval #PSA_ERROR_COMMUNICATION_FAILURE \emptydescription
- * \retval #PSA_ERROR_DATA_INVALID \emptydescription
- * \retval #PSA_ERROR_DATA_CORRUPT \emptydescription
- * \retval #PSA_ERROR_CORRUPTION_DETECTED \emptydescription
- * \retval #PSA_ERROR_BAD_STATE
- *         The library has not been previously initialized by psa_crypto_init().
- *         It is implementation-dependent whether a failure to initialize
- *         results in this error code.
- */
-psa_status_t mbedtls_psa_register_se_key(
-    const psa_key_attributes_t *attributes);
-
-#endif /* MBEDTLS_PSA_CRYPTO_SE_C */
-
 /**@}*/

 /**
@@ -261,78 +138,6 @@ typedef struct mbedtls_psa_stats_s {
  */
 void mbedtls_psa_get_stats(mbedtls_psa_stats_t *stats);

-/**
- * \brief Inject an initial entropy seed for the random generator into
- *        secure storage.
- *
- * This function injects data to be used as a seed for the random generator
- * used by the PSA Crypto implementation. On devices that lack a trusted
- * entropy source (preferably a hardware random number generator),
- * the Mbed PSA Crypto implementation uses this value to seed its
- * random generator.
- *
- * On devices without a trusted entropy source, this function must be
- * called exactly once in the lifetime of the device. On devices with
- * a trusted entropy source, calling this function is optional.
- * In all cases, this function may only be called before calling any
- * other function in the PSA Crypto API, including psa_crypto_init().
- *
- * When this function returns successfully, it populates a file in
- * persistent storage. Once the file has been created, this function
- * can no longer succeed.
- *
- * If any error occurs, this function does not change the system state.
- * You can call this function again after correcting the reason for the
- * error if possible.
- *
- * \warning This function **can** fail! Callers MUST check the return status.
- *
- * \warning If you use this function, you should use it as part of a
- *          factory provisioning process. The value of the injected seed
- *          is critical to the security of the device. It must be
- *          *secret*, *unpredictable* and (statistically) *unique per device*.
- *          You should be generate it randomly using a cryptographically
- *          secure random generator seeded from trusted entropy sources.
- *          You should transmit it securely to the device and ensure
- *          that its value is not leaked or stored anywhere beyond the
- *          needs of transmitting it from the point of generation to
- *          the call of this function, and erase all copies of the value
- *          once this function returns.
- *
- * This is an Mbed TLS extension.
- *
- * \note This function is only available on the following platforms:
- * * If the compile-time option MBEDTLS_PSA_INJECT_ENTROPY is enabled.
- *   Note that you must provide compatible implementations of
- *   mbedtls_nv_seed_read and mbedtls_nv_seed_write.
- * * In a client-server integration of PSA Cryptography, on the client side,
- *   if the server supports this feature.
- * \param[in] seed          Buffer containing the seed value to inject.
- * \param[in] seed_size     Size of the \p seed buffer.
- *                          The size of the seed in bytes must be greater
- *                          or equal to both #MBEDTLS_ENTROPY_BLOCK_SIZE
- *                          and the value of \c MBEDTLS_ENTROPY_MIN_PLATFORM
- *                          in `library/entropy_poll.h` in the Mbed TLS source
- *                          code.
- *                          It must be less or equal to
- *                          #MBEDTLS_ENTROPY_MAX_SEED_SIZE.
- *
- * \retval #PSA_SUCCESS
- *         The seed value was injected successfully. The random generator
- *         of the PSA Crypto implementation is now ready for use.
- *         You may now call psa_crypto_init() and use the PSA Crypto
- *         implementation.
- * \retval #PSA_ERROR_INVALID_ARGUMENT
- *         \p seed_size is out of range.
- * \retval #PSA_ERROR_STORAGE_FAILURE
- *         There was a failure reading or writing from storage.
- * \retval #PSA_ERROR_NOT_PERMITTED
- *         The library has already been initialized. It is no longer
- *         possible to call this function.
- */
-psa_status_t mbedtls_psa_inject_entropy(const uint8_t *seed,
-                                        size_t seed_size);
-
 /** \addtogroup crypto_types
  * @{
  */
@@ -595,21 +400,6 @@ psa_status_t mbedtls_psa_platform_get_builtin_key(
  * @{
  */

-/** Check if PSA is capable of handling the specified hash algorithm.
- *
- * This means that PSA core was built with the corresponding PSA_WANT_ALG_xxx
- * set and that psa_crypto_init has already been called.
- *
- * \note When using Mbed TLS version of PSA core (i.e. MBEDTLS_PSA_CRYPTO_C is
- *       set) for now this function only checks the state of the driver
- *       subsystem, not the algorithm. This might be improved in the future.
- *
- * \param hash_alg  The hash algorithm.
- *
- * \return 1 if the PSA can handle \p hash_alg, 0 otherwise.
- */
-int psa_can_do_hash(psa_algorithm_t hash_alg);
-
 /**@}*/

 /** \addtogroup crypto_types
@@ -630,6 +420,8 @@ int psa_can_do_hash(psa_algorithm_t hash_alg);
 #define PSA_ALG_IS_PAKE(alg)                                        \
     (((alg) & PSA_ALG_CATEGORY_MASK) == PSA_ALG_CATEGORY_PAKE)

+#define PSA_ALG_JPAKE_BASE                      ((psa_algorithm_t) 0x0a000100)
+
 /** The Password-authenticated key exchange by juggling (J-PAKE) algorithm.
  *
  * This is J-PAKE as defined by RFC 8236, instantiated with the following
@@ -647,7 +439,6 @@ int psa_can_do_hash(psa_algorithm_t hash_alg);
  * psa_pake_cs_set_algorithm(cipher_suite, PSA_ALG_JPAKE);
  * psa_pake_cs_set_primitive(cipher_suite,
  *                           PSA_PAKE_PRIMITIVE(type, family, bits));
- * psa_pake_cs_set_hash(cipher_suite, hash);
  * \endcode
  *
  * For more information on how to set a specific curve or field, refer to the
@@ -659,7 +450,6 @@ int psa_can_do_hash(psa_algorithm_t hash_alg);
  * psa_pake_setup(operation, cipher_suite);
  * psa_pake_set_user(operation, ...);
  * psa_pake_set_peer(operation, ...);
- * psa_pake_set_password_key(operation, ...);
  * \endcode
  *
  * The password is provided as a key. This can be the password text itself,
@@ -670,7 +460,7 @@ int psa_can_do_hash(psa_algorithm_t hash_alg);
  * Section 2.3.8 of _SEC 1: Elliptic Curve Cryptography_
  * (https://www.secg.org/sec1-v2.pdf), before reducing it modulo \c q. Here
  * \c q is order of the group defined by the primitive set in the cipher suite.
- * The \c psa_pake_set_password_key() function returns an error if the result
+ * The \c psa_pake_setup() function returns an error if the result
  * of the reduction is 0.)
  *
  * The key exchange flow for J-PAKE is as follows:
@@ -727,7 +517,7 @@ int psa_can_do_hash(psa_algorithm_t hash_alg);
  * -# To access the shared secret call
  *    \code
  *    // Get Ka=Kb=K
- *    psa_pake_get_implicit_key()
+ *    psa_pake_get_shared_key()
  *    \endcode
  *
  * For more information consult the documentation of the individual
@@ -744,8 +534,107 @@ int psa_can_do_hash(psa_algorithm_t hash_alg);
  * To make the authentication explicit there are various methods, see Section 5
  * of RFC 8236 for two examples.
  *
+ * \note As of TF-PSA-Crypto 1.0.0, the JPAKE implementation has the
+ *       following limitations:
+ *       - The only supported primitive is ECC on the curve secp256r1, i.e.
+ *         `PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC,
+ *          PSA_ECC_FAMILY_SECP_R1, 256)`.
+ *       - The only supported hash algorithm is SHA-256, i.e.
+ *         `PSA_ALG_SHA_256`.
+ *       - When using the built-in implementation, the user ID and the peer ID
+ *         must be `"client"` (6-byte string) and `"server"` (6-byte string),
+ *         or the other way round.
+ *         Third-party drivers may or may not have this limitation.
+ *
+ */
+#define PSA_ALG_JPAKE(hash_alg) \
+    (PSA_ALG_JPAKE_BASE | ((hash_alg) & (PSA_ALG_HASH_MASK)))
+
+/** Whether the specified algorithm is a JPAKE algorithm.
+ *
+ * \param alg An algorithm identifier (value of type #psa_algorithm_t).
+ *
+ * \return 1 if \p alg is of the form #PSA_ALG_JPAKE(\c hash_alg)
+ *         for some hash algorithm \c hash_alg, 0 otherwise.
+ *         This macro may return either 0 or 1 if \p alg is not a supported
+ *         algorithm identifier.
+ */
+#define PSA_ALG_IS_JPAKE(alg) \
+    (((alg) & (~(PSA_ALG_HASH_MASK))) == PSA_ALG_JPAKE_BASE)
+
+#define PSA_KEY_TYPE_SPAKE2P_PUBLIC_KEY_BASE        ((psa_key_type_t) 0x4400)
+#define PSA_KEY_TYPE_SPAKE2P_KEY_PAIR_BASE          ((psa_key_type_t) 0x7400)
+
+/** SPAKE2+ key pair.
+ *
+ * Not implemented yet.
+ */
+#define PSA_KEY_TYPE_SPAKE2P_KEY_PAIR(curve)            \
+    (PSA_KEY_TYPE_SPAKE2P_KEY_PAIR_BASE | (curve))
+
+/** SPAKE2+ public key.
+ *
+ * Not implemented yet.
+ */
+#define PSA_KEY_TYPE_SPAKE2P_PUBLIC_KEY(curve)          \
+    (PSA_KEY_TYPE_SPAKE2P_PUBLIC_KEY_BASE | (curve))
+
+/** Whether a key type is a SPAKE2+ key pair type. */
+#define PSA_KEY_TYPE_IS_SPAKE2P_KEY_PAIR(type)          \
+    (((type) & ~PSA_KEY_TYPE_ECC_CURVE_MASK) ==         \
+     PSA_KEY_TYPE_SPAKE2P_KEY_PAIR_BASE)
+
+/** Whether a key type is a SPAKE2+ public key type. */
+#define PSA_KEY_TYPE_IS_SPAKE2P_PUBLIC_KEY(type)        \
+    (((type) & ~PSA_KEY_TYPE_ECC_CURVE_MASK) ==         \
+     PSA_KEY_TYPE_SPAKE2P_PUBLIC_KEY_BASE)
+
+/** Whether a key type is a SPAKE2+ key pair or public key type. */
+#define PSA_KEY_TYPE_IS_SPAKE2P(type)                   \
+    ((PSA_KEY_TYPE_PUBLIC_KEY_OF_KEY_PAIR(type) &       \
+      ~PSA_KEY_TYPE_ECC_CURVE_MASK) == PSA_KEY_TYPE_SPAKE2P_PUBLIC_KEY_BASE)
+
+#define PSA_ALG_SPAKE2P_HMAC_BASE               ((psa_algorithm_t) 0x0a000400)
+
+/** SPAKE2+ algorithm using HMAC for key confirmation.
+ *
+ * Not implemented yet.
+ */
+#define PSA_ALG_SPAKE2P_HMAC(hash_alg)                                  \
+    (PSA_ALG_SPAKE2P_HMAC_BASE | ((hash_alg) & (PSA_ALG_HASH_MASK)))
+#define PSA_ALG_IS_SPAKE2P_HMAC(alg)                                    \
+    (((alg) & (~(PSA_ALG_HASH_MASK))) == PSA_ALG_SPAKE2P_HMAC_BASE)
+
+/** SPAKE2+ algorithm using CMAC for key confirmation.
+ *
+ * Not implemented yet.
+ */
+#define PSA_ALG_SPAKE2P_CMAC_BASE               ((psa_algorithm_t) 0x0a000500)
+#define PSA_ALG_SPAKE2P_CMAC(hash_alg)                          \
+    (PSA_ALG_SPAKE2P_CMAC_BASE | ((hash_alg) & (PSA_ALG_HASH_MASK)))
+#define PSA_ALG_IS_SPAKE2P_CMAC(alg)                            \
+    (((alg) & (~(PSA_ALG_HASH_MASK))) == PSA_ALG_SPAKE2P_CMAC_BASE)
+
+/** SPAKE2+ algorithm variant used by the Matter specification version 1.2.
+ *
+ * Not implemented yet.
  */
-#define PSA_ALG_JPAKE                   ((psa_algorithm_t) 0x0a000100)
+#define PSA_ALG_SPAKE2P_MATTER                  ((psa_algorithm_t) 0x0a000609)
+
+/** Whether the specified algorithm is any SPAKE2+ algorithm variant.
+ *
+ * \param alg An algorithm identifier (value of type #psa_algorithm_t).
+ *
+ * \return 1 if \p alg is of the form #PSA_ALG_SPAKE2P_CMAC(\c hash_alg),
+ *         #PSA_ALG_SPAKE2P_HMAC(\c hash_alg) or #PSA_ALG_SPAKE2P_MATTER
+ *         for some hash algorithm \c hash_alg, 0 otherwise.
+ *         This macro may return either 0 or 1 if \p alg is not a supported
+ *         algorithm identifier.
+ */
+#define PSA_ALG_IS_SPAKE2P(alg)         \
+    (PSA_ALG_IS_SPAKE2P_HMAC(alg) ||    \
+     PSA_ALG_IS_SPAKE2P_CMAC(alg) ||    \
+     (alg) == PSA_ALG_SPAKE2P_MATTER)

 /** @} */

@@ -896,9 +785,9 @@ typedef uint32_t psa_pake_primitive_t;
  *         ::psa_pake_primitive_t.
  */
 #define PSA_PAKE_PRIMITIVE(pake_type, pake_family, pake_bits) \
-    ((pake_bits & 0xFFFF) != pake_bits) ? 0 :                 \
-    ((psa_pake_primitive_t) (((pake_type) << 24 |             \
-                              (pake_family) << 16) | (pake_bits)))
+    (((pake_bits & 0xFFFF) != pake_bits) ? 0 :                 \
+     ((psa_pake_primitive_t) (((pake_type) << 24 |             \
+                               (pake_family) << 16) | (pake_bits))))

 /** The key share being sent to or received from the peer.
  *
@@ -952,6 +841,16 @@ typedef uint32_t psa_pake_primitive_t;
  */
 #define PSA_PAKE_STEP_ZK_PROOF                  ((psa_pake_step_t) 0x03)

+/** The key confirmation value.
+ *
+ * This is only used with PAKE algorithms with an explicit key confirmation
+ * phase.
+ *
+ * Refer to the documentation of the PAKE algorithm for information about
+ * the input format.
+ */
+#define PSA_PAKE_STEP_CONFIRM                   ((psa_pake_step_t) 0x04)
+
 /**@}*/

 /** A sufficient output buffer size for psa_pake_output().
@@ -975,7 +874,7 @@ typedef uint32_t psa_pake_primitive_t;
  *                      return 0.
  */
 #define PSA_PAKE_OUTPUT_SIZE(alg, primitive, output_step)               \
-    (alg == PSA_ALG_JPAKE &&                                           \
+    (PSA_ALG_IS_JPAKE(alg) &&                                           \
      primitive == PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC,      \
                                      PSA_ECC_FAMILY_SECP_R1, 256) ?    \
      (                                                                 \
@@ -1005,7 +904,7 @@ typedef uint32_t psa_pake_primitive_t;
  *                      the parameters are incompatible, return 0.
  */
 #define PSA_PAKE_INPUT_SIZE(alg, primitive, input_step)                 \
-    (alg == PSA_ALG_JPAKE &&                                           \
+    (PSA_ALG_IS_JPAKE(alg) &&                                           \
      primitive == PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC,      \
                                      PSA_ECC_FAMILY_SECP_R1, 256) ?    \
      (                                                                 \
@@ -1042,7 +941,7 @@ typedef uint32_t psa_pake_primitive_t;
 /** Returns a suitable initializer for a PAKE cipher suite object of type
  * psa_pake_cipher_suite_t.
  */
-#define PSA_PAKE_CIPHER_SUITE_INIT { PSA_ALG_NONE, 0, 0, 0, PSA_ALG_NONE }
+#define PSA_PAKE_CIPHER_SUITE_INIT { PSA_ALG_NONE, 0, 0, 0, 0 }

 /** Returns a suitable initializer for a PAKE operation object of type
  * psa_pake_operation_t.
@@ -1054,12 +953,37 @@ typedef uint32_t psa_pake_primitive_t;
                                   { 0 }, { { 0 } } }
 #endif

+/**
+ * A key confirmation value that indicates an confirmed key in a PAKE cipher suite.
+ *
+ * This key confirmation value will result in the PAKE algorithm exchanging data
+ * to verify that the shared key is identical for both parties. This is the default
+ * key confirmation value in an initialized PAKE cipher suite object.
+ *
+ * Some algorithms do not include confirmation of the shared key.
+ */
+#define PSA_PAKE_CONFIRMED_KEY 0
+
+/**
+ * A key confirmation value that indicates an unconfirmed key in a PAKE cipher suite.
+ *
+ * This key confirmation value will result in the PAKE algorithm terminating prior to
+ * confirming that the resulting shared key is identical for both parties.
+ *
+ * Some algorithms do not support returning an unconfirmed shared key.
+ *
+ * \warning When the shared key is not confirmed as part of the PAKE operation, the
+ *          application is responsible for mitigating risks that arise from the possible
+ *          mismatch in the output keys.
+ */
+#define PSA_PAKE_UNCONFIRMED_KEY 1
+
 struct psa_pake_cipher_suite_s {
     psa_algorithm_t algorithm;
     psa_pake_primitive_type_t type;
     psa_pake_family_t family;
     uint16_t  bits;
-    psa_algorithm_t hash;
+    uint32_t key_confirmation;
 };

 struct psa_crypto_driver_pake_inputs_s {
@@ -1180,6 +1104,8 @@ static psa_algorithm_t psa_pake_cs_get_algorithm(
  * This function overwrites any PAKE algorithm
  * previously set in \p cipher_suite.
  *
+ * \note For #PSA_ALG_JPAKE, the only supported hash algorithm is SHA-256.
+ *
  * \param[out] cipher_suite    The cipher suite structure to write to.
  * \param algorithm            The PAKE algorithm to write.
  *                             (`PSA_ALG_XXX` values of type ::psa_algorithm_t
@@ -1203,6 +1129,10 @@ static psa_pake_primitive_t psa_pake_cs_get_primitive(
  *
  * This function overwrites any primitive previously set in \p cipher_suite.
  *
+ * \note For #PSA_ALG_JPAKE, the only supported primitive is ECC on the curve
+ *       secp256r1, i.e. `PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC,
+ *       PSA_ECC_FAMILY_SECP_R1, 256)`.
+ *
  * \param[out] cipher_suite    The cipher suite structure to write to.
  * \param primitive            The primitive to write. If this is 0, the
  *                             primitive type in \p cipher_suite becomes
@@ -1229,35 +1159,28 @@ static psa_pake_family_t psa_pake_cs_get_family(
 static uint16_t psa_pake_cs_get_bits(
     const psa_pake_cipher_suite_t *cipher_suite);

-/** Retrieve the hash algorithm from a PAKE cipher suite.
+/** Retrieve the key confirmation from a PAKE cipher suite.
  *
  * \param[in] cipher_suite      The cipher suite structure to query.
  *
- * \return The hash algorithm stored in the cipher suite structure. The return
- *         value is 0 if the PAKE is not parametrised by a hash algorithm or if
- *         the hash algorithm is not set.
+ * \return A key confirmation value: either #PSA_PAKE_CONFIRMED_KEY or
+ *         #PSA_PAKE_UNCONFIRMED_KEY.
  */
-static psa_algorithm_t psa_pake_cs_get_hash(
-    const psa_pake_cipher_suite_t *cipher_suite);
+static uint32_t psa_pake_cs_get_key_confirmation(const psa_pake_cipher_suite_t *cipher_suite);

-/** Declare the hash algorithm for a PAKE cipher suite.
+/** Declare the key confirmation for a PAKE cipher suite.
  *
- * This function overwrites any hash algorithm
- * previously set in \p cipher_suite.
+ * This function overwrites any key confirmation previously set in \p cipher_suite.
  *
- * Refer to the documentation of individual PAKE algorithm types (`PSA_ALG_XXX`
- * values of type ::psa_algorithm_t such that #PSA_ALG_IS_PAKE(\c alg) is true)
- * for more information.
+ * The documentation of individual PAKE algorithms specifies which key confirmation values
+ * are valid for the algorithm.
  *
  * \param[out] cipher_suite     The cipher suite structure to write to.
- * \param hash                  The hash involved in the cipher suite.
- *                              (`PSA_ALG_XXX` values of type ::psa_algorithm_t
- *                              such that #PSA_ALG_IS_HASH(\c alg) is true.)
- *                              If this is 0, the hash algorithm in
- *                              \p cipher_suite becomes unspecified.
+ * \param[in]  key_confirmation The key confirmation value to write: either
+ *                              #PSA_PAKE_CONFIRMED_KEY or #PSA_PAKE_UNCONFIRMED_KEY.
  */
-static void psa_pake_cs_set_hash(psa_pake_cipher_suite_t *cipher_suite,
-                                 psa_algorithm_t hash);
+static void psa_pake_cs_set_key_confirmation(psa_pake_cipher_suite_t *cipher_suite,
+                                             uint32_t key_confirmation);

 /** The type of the state data structure for PAKE operations.
  *
@@ -1407,126 +1330,107 @@ psa_status_t psa_crypto_driver_pake_get_cipher_suite(
     const psa_crypto_driver_pake_inputs_t *inputs,
     psa_pake_cipher_suite_t *cipher_suite);

-/** Set the session information for a password-authenticated key exchange.
+/** Setup a password-authenticated key exchange.
  *
  * The sequence of operations to set up a password-authenticated key exchange
- * is as follows:
- * -# Allocate an operation object which will be passed to all the functions
+ * operation is as follows:
+ * -# Allocate a PAKE operation object which will be passed to all the functions
  *    listed here.
  * -# Initialize the operation object with one of the methods described in the
- *    documentation for #psa_pake_operation_t, e.g.
+ *    documentation for #psa_pake_operation_t. For example, using
  *    #PSA_PAKE_OPERATION_INIT.
- * -# Call psa_pake_setup() to specify the cipher suite.
+ * -# Call #psa_pake_setup() to specify the cipher suite.
  * -# Call \c psa_pake_set_xxx() functions on the operation to complete the
  *    setup. The exact sequence of \c psa_pake_set_xxx() functions that needs
  *    to be called depends on the algorithm in use.
  *
- * Refer to the documentation of individual PAKE algorithm types (`PSA_ALG_XXX`
- * values of type ::psa_algorithm_t such that #PSA_ALG_IS_PAKE(\c alg) is true)
- * for more information.
- *
  * A typical sequence of calls to perform a password-authenticated key
  * exchange:
- * -# Call psa_pake_output(operation, #PSA_PAKE_STEP_KEY_SHARE, ...) to get the
+ * -# Call #psa_pake_output(operation, #PSA_PAKE_STEP_KEY_SHARE, ...) to get the
  *    key share that needs to be sent to the peer.
- * -# Call psa_pake_input(operation, #PSA_PAKE_STEP_KEY_SHARE, ...) to provide
+ * -# Call #psa_pake_input(operation, #PSA_PAKE_STEP_KEY_SHARE, ...) to provide
  *    the key share that was received from the peer.
- * -# Depending on the algorithm additional calls to psa_pake_output() and
- *    psa_pake_input() might be necessary.
- * -# Call psa_pake_get_implicit_key() for accessing the shared secret.
- *
- * Refer to the documentation of individual PAKE algorithm types (`PSA_ALG_XXX`
- * values of type ::psa_algorithm_t such that #PSA_ALG_IS_PAKE(\c alg) is true)
- * for more information.
- *
- * If an error occurs at any step after a call to psa_pake_setup(),
- * the operation will need to be reset by a call to psa_pake_abort(). The
- * application may call psa_pake_abort() at any time after the operation
- * has been initialized.
- *
- * After a successful call to psa_pake_setup(), the application must
- * eventually terminate the operation. The following events terminate an
- * operation:
- * - A call to psa_pake_abort().
- * - A successful call to psa_pake_get_implicit_key().
- *
- * \param[in,out] operation     The operation object to set up. It must have
- *                              been initialized but not set up yet.
- * \param[in] cipher_suite      The cipher suite to use. (A cipher suite fully
- *                              characterizes a PAKE algorithm and determines
- *                              the algorithm as well.)
+ * -# Depending on the algorithm additional calls to #psa_pake_output() and
+ *    #psa_pake_input() might be necessary.
+ * -# Call #psa_pake_get_shared_key() to access the shared secret.
+ *
+ * Refer to the documentation of individual PAKE algorithms for details on the
+ * required set up and operation for each algorithm, and for constraints on the
+ * format and content of valid passwords. See PAKE algorithms.
+ *
+ * After a successful call to #psa_pake_setup(), the operation is active, and
+ * the application must eventually terminate the operation. The following events
+ * terminate an operation:
+ * - A successful call to #psa_pake_get_shared_key().
+ * - A call to #psa_pake_abort().
+ *
+ * If #psa_pake_setup() returns an error, the operation object is unchanged. If
+ * a subsequent function call with an active operation returns an error, the operation
+ * enters an error state.
+ *
+ * To abandon an active operation, or reset an operation in an error state, call
+ * #psa_pake_abort().
+ *
+ * \param[in,out] operation     The operation object to set up. It must have been
+ *                              initialized as per the documentation for
+ *                              #psa_pake_operation_t and not yet in use.
+ * \param[in] password_key      Identifier of the key holding the password or a
+ *                              value derived from the password. It must remain
+ *                              valid until the operation terminates.
+ *
+ *                              The valid key types depend on the PAKE algorithm,
+ *                              and participant role. Refer to the documentation of
+ *                              individual PAKE algorithms for more information, see
+ *                              PAKE algorithms.
+ *
+ *                              The key must permit the usage #PSA_KEY_USAGE_DERIVE.
+ * \param[in] cipher_suite      The cipher suite to use. A PAKE cipher suite fully
+ *                              characterizes a PAKE algorithm, including the PAKE
+ *                              algorithm.
+ *
+ *                              The cipher suite must be compatible with the key type
+ *                              of \p password_key.
  *
  * \retval #PSA_SUCCESS
- *         Success.
- * \retval #PSA_ERROR_INVALID_ARGUMENT
- *         The algorithm in \p cipher_suite is not a PAKE algorithm, or the
- *         PAKE primitive in \p cipher_suite is not compatible with the
- *         PAKE algorithm, or the hash algorithm in \p cipher_suite is invalid
- *         or not compatible with the PAKE algorithm and primitive.
- * \retval #PSA_ERROR_NOT_SUPPORTED
- *         The algorithm in \p cipher_suite is not a supported PAKE algorithm,
- *         or the PAKE primitive in \p cipher_suite is not supported or not
- *         compatible with the PAKE algorithm, or the hash algorithm in
- *         \p cipher_suite is not supported or not compatible with the PAKE
- *         algorithm and primitive.
- * \retval #PSA_ERROR_COMMUNICATION_FAILURE \emptydescription
- * \retval #PSA_ERROR_CORRUPTION_DETECTED \emptydescription
+ *         Success. The operation is now active.
  * \retval #PSA_ERROR_BAD_STATE
- *         The operation state is not valid, or
- *         the library has not been previously initialized by psa_crypto_init().
- *         It is implementation-dependent whether a failure to initialize
- *         results in this error code.
- */
-psa_status_t psa_pake_setup(psa_pake_operation_t *operation,
-                            const psa_pake_cipher_suite_t *cipher_suite);
-
-/** Set the password for a password-authenticated key exchange from key ID.
- *
- * Call this function when the password, or a value derived from the password,
- * is already present in the key store.
- *
- * \param[in,out] operation     The operation object to set the password for. It
- *                              must have been set up by psa_pake_setup() and
- *                              not yet in use (neither psa_pake_output() nor
- *                              psa_pake_input() has been called yet). It must
- *                              be on operation for which the password hasn't
- *                              been set yet (psa_pake_set_password_key()
- *                              hasn't been called yet).
- * \param password              Identifier of the key holding the password or a
- *                              value derived from the password (eg. by a
- *                              memory-hard function).  It must remain valid
- *                              until the operation terminates. It must be of
- *                              type #PSA_KEY_TYPE_PASSWORD or
- *                              #PSA_KEY_TYPE_PASSWORD_HASH. It has to allow
- *                              the usage #PSA_KEY_USAGE_DERIVE.
- *
- * \retval #PSA_SUCCESS
- *         Success.
+ *         The following conditions can result in this error:
+ *         - The operation state is not valid: it must be inactive.
+ *         - The library requires initializing by a call to #psa_crypto_init().
  * \retval #PSA_ERROR_INVALID_HANDLE
- *         \p password is not a valid key identifier.
+ *         \p password_key is not a valid key identifier.
  * \retval #PSA_ERROR_NOT_PERMITTED
- *         The key does not have the #PSA_KEY_USAGE_DERIVE flag, or it does not
- *         permit the \p operation's algorithm.
+ *         \p password_key does not have the #PSA_KEY_USAGE_DERIVE flag, or it does
+ *         not permit the algorithm in \p cipher_suite.
  * \retval #PSA_ERROR_INVALID_ARGUMENT
- *         The key type for \p password is not #PSA_KEY_TYPE_PASSWORD or
- *         #PSA_KEY_TYPE_PASSWORD_HASH, or \p password is not compatible with
- *         the \p operation's cipher suite.
+ *         The following conditions can result in this error:
+ *         - The algorithm in \p cipher_suite is not a PAKE algorithm, or encodes an
+ *           invalid hash algorithm.
+ *         - The PAKE primitive in \p cipher_suite is not compatible with the PAKE
+ *           algorithm.
+ *         - The key confirmation value in \p cipher_suite is not compatible with the
+ *           PAKE algorithm and primitive.
+ *         - The key type or key size of \p password_key is not compatible with
+ *           \p cipher_suite.
  * \retval #PSA_ERROR_NOT_SUPPORTED
- *         The key type or key size of \p password is not supported with the
- *         \p operation's cipher suite.
+ *         The following conditions can result in this error:
+ *         - The algorithm in \p cipher_suite is not a supported PAKE algorithm, or
+ *           encodes an unsupported hash algorithm.
+ *         - The PAKE primitive in \p cipher_suite is not supported or not compatible
+ *           with the PAKE algorithm.
+ *         - The key confirmation value in \p cipher_suite is not supported, or not
+ *           compatible, with the PAKE algorithm and primitive.
+ *         - The key type or key size of \p password_key is not supported with
+ *           \p cipher_suite.
  * \retval #PSA_ERROR_COMMUNICATION_FAILURE \emptydescription
  * \retval #PSA_ERROR_CORRUPTION_DETECTED \emptydescription
  * \retval #PSA_ERROR_STORAGE_FAILURE \emptydescription
  * \retval #PSA_ERROR_DATA_CORRUPT \emptydescription
  * \retval #PSA_ERROR_DATA_INVALID \emptydescription
- * \retval #PSA_ERROR_BAD_STATE
- *         The operation state is not valid (it must have been set up.), or
- *         the library has not been previously initialized by psa_crypto_init().
- *         It is implementation-dependent whether a failure to initialize
- *         results in this error code.
  */
-psa_status_t psa_pake_set_password_key(psa_pake_operation_t *operation,
-                                       mbedtls_svc_key_id_t password);
+psa_status_t psa_pake_setup(psa_pake_operation_t *operation,
+                            mbedtls_svc_key_id_t password_key,
+                            const psa_pake_cipher_suite_t *cipher_suite);

 /** Set the user ID for a password-authenticated key exchange.
  *
@@ -1539,6 +1443,10 @@ psa_status_t psa_pake_set_password_key(psa_pake_operation_t *operation,
  * values of type ::psa_algorithm_t such that #PSA_ALG_IS_PAKE(\c alg) is true)
  * for more information.
  *
+ * \note When using the built-in implementation of #PSA_ALG_JPAKE, the user ID
+ *       must be `"client"` (6-byte string) or `"server"` (6-byte string).
+ *       Third-party drivers may or may not have this limitation.
+ *
  * \param[in,out] operation     The operation object to set the user ID for. It
  *                              must have been set up by psa_pake_setup() and
  *                              not yet in use (neither psa_pake_output() nor
@@ -1580,6 +1488,10 @@ psa_status_t psa_pake_set_user(psa_pake_operation_t *operation,
  * values of type ::psa_algorithm_t such that #PSA_ALG_IS_PAKE(\c alg) is true)
  * for more information.
  *
+ * \note When using the built-in implementation of #PSA_ALG_JPAKE, the peer ID
+ *       must be `"client"` (6-byte string) or `"server"` (6-byte string).
+ *       Third-party drivers may or may not have this limitation.
+ *
  * \param[in,out] operation     The operation object to set the peer ID for. It
  *                              must have been set up by psa_pake_setup() and
  *                              not yet in use (neither psa_pake_output() nor
@@ -1652,6 +1564,41 @@ psa_status_t psa_pake_set_peer(psa_pake_operation_t *operation,
 psa_status_t psa_pake_set_role(psa_pake_operation_t *operation,
                                psa_pake_role_t role);

+/** Set the context data for a password-authenticated key exchange.
+ *
+ * Not all PAKE algorithms use context data. Only call this function
+ * for algorithms that need it.
+ *
+ * \param[in,out] operation     The operation object to specify the
+ *                              application's role for. It must have been set up
+ *                              by psa_pake_setup() and not yet in use (neither
+ *                              psa_pake_output() nor psa_pake_input() has been
+ *                              called yet). It must be an operation for which
+ *                              the context hasn't been specified
+ *                              (psa_pake_set_context() hasn't been called yet).
+ * \param[in] context           The context to set.
+ * \param context_len           The length of \p context in bytes.
+ *
+ * \retval #PSA_SUCCESS
+ *         Success.
+ * \retval #PSA_ERROR_INVALID_ARGUMENT
+ *         The algorithm in \p operation does not use a context.
+ * \retval #PSA_ERROR_NOT_SUPPORTED
+ *         The library configuration does not support PAKE algorithms with
+ *         a context, or this specific context value is not supported for
+ *         the given \p operation.
+ * \retval #PSA_ERROR_COMMUNICATION_FAILURE \emptydescription
+ * \retval #PSA_ERROR_CORRUPTION_DETECTED \emptydescription
+ * \retval #PSA_ERROR_BAD_STATE
+ *         The operation state is not valid, or
+ *         the library has not been previously initialized by psa_crypto_init().
+ *         It is implementation-dependent whether a failure to initialize
+ *         results in this error code.
+ */
+psa_status_t psa_pake_set_context(psa_pake_operation_t *operation,
+                                  const uint8_t *context,
+                                  size_t context_len);
+
 /** Get output for a step of a password-authenticated key exchange.
  *
  * Depending on the algorithm being executed, you might need to call this
@@ -1767,66 +1714,134 @@ psa_status_t psa_pake_input(psa_pake_operation_t *operation,
                             const uint8_t *input,
                             size_t input_length);

-/** Get implicitly confirmed shared secret from a PAKE.
- *
- * At this point there is a cryptographic guarantee that only the authenticated
- * party who used the same password is able to compute the key. But there is no
- * guarantee that the peer is the party it claims to be and was able to do so.
- *
- * That is, the authentication is only implicit. Since the peer is not
- * authenticated yet, no action should be taken yet that assumes that the peer
- * is who it claims to be. For example, do not access restricted files on the
- * peer's behalf until an explicit authentication has succeeded.
- *
- * This function can be called after the key exchange phase of the operation
- * has completed. It imports the shared secret output of the PAKE into the
- * provided derivation operation. The input step
- * #PSA_KEY_DERIVATION_INPUT_SECRET is used when placing the shared key
- * material in the key derivation operation.
- *
- * The exact sequence of calls to perform a password-authenticated key
- * exchange depends on the algorithm in use.  Refer to the documentation of
- * individual PAKE algorithm types (`PSA_ALG_XXX` values of type
- * ::psa_algorithm_t such that #PSA_ALG_IS_PAKE(\c alg) is true) for more
- * information.
- *
- * When this function returns successfully, \p operation becomes inactive.
- * If this function returns an error status, both \p operation
- * and \c key_derivation operations enter an error state and must be aborted by
- * calling psa_pake_abort() and psa_key_derivation_abort() respectively.
- *
- * \param[in,out] operation    Active PAKE operation.
- * \param[out] output          A key derivation operation that is ready
- *                             for an input step of type
- *                             #PSA_KEY_DERIVATION_INPUT_SECRET.
+/** Extract the shared secret from the PAKE as a key.
+ *
+ * This is the final call in a PAKE operation, which retrieves the shared
+ * secret as a key. It is recommended that this key is used as an input to
+ * a key derivation operation to produce additional cryptographic keys. For
+ * some PAKE algorithms, the shared secret is also suitable for use as a key
+ * in cryptographic operations such as encryption. Refer to the documentation
+ * of individual PAKE algorithms for more information, see PAKE algorithms.
+ *
+ * Depending on the key confirmation requested in the cipher suite,
+ * #psa_pake_get_shared_key() must be called either before or after the
+ * key-confirmation output and input steps for the PAKE algorithm. The key
+ * confirmation affects the guarantees that can be made about the shared key:
+ *
+ * Unconfirmed key:
+ *
+ * If the cipher suite used to set up the operation requested an unconfirmed
+ * key, the application must call #psa_pake_get_shared_key() after the
+ * key-exchange output and input steps are completed. The PAKE algorithm
+ * provides a cryptographic guarantee that only a peer who used the same
+ * password and identity inputs is able to compute the same key. However,
+ * there is no guarantee that the peer is the participant it claims to be
+ * and was able to compute the same key.
+ *
+ * Since the peer is not authenticated, no action should be taken that assumes
+ * that the peer is who it claims to be. For example, do not access restricted
+ * resources on the peer’s behalf until an explicit authentication has succeeded.
+ *
+ * \note Some PAKE algorithms do not enable the output of the shared secret
+ * until it has been confirmed.
+ *
+ * Confirmed key:
+ *
+ * If the cipher suite used to set up the operation requested a confirmed key,
+ * the application must call #psa_pake_get_shared_key() after the key-exchange
+ * and key-confirmation output and input steps are completed.
+ *
+ * Following key confirmation, the PAKE algorithm provides a cryptographic
+ * guarantee that the peer used the same password and identity inputs, and
+ * has computed the identical shared secret key.
+ *
+ * Since the peer is not authenticated, no action should be taken that assumes
+ * that the peer is who it claims to be. For example, do not access restricted
+ * resources on the peer’s behalf until an explicit authentication has succeeded.
+ *
+ * \note Some PAKE algorithms do not include any key-confirmation steps.
+ *
+ * The exact sequence of calls to perform a password-authenticated key exchange
+ * depends on the algorithm in use. Refer to the documentation of individual PAKE
+ * algorithms for more information. See PAKE algorithms.
+ *
+ * When this function returns successfully, the operation becomes inactive. If this
+ * function returns an error status, the operation enters an error state and must
+ * be aborted by calling #psa_pake_abort().
+ *
+ * \param[in,out]   operation   Active PAKE operation.
+ * \param[in]       attributes  The attributes for the new key. This function uses
+ *                              the attributes as follows:
+ *                              The key type is required. All PAKE algorithms can
+ *                              output a key of type #PSA_KEY_TYPE_DERIVE or
+ *                              #PSA_KEY_TYPE_HMAC. PAKE algorithms that produce a
+ *                              pseudo-random shared secret, can also output
+ *                              block-cipher key types, for example
+ *                              #PSA_KEY_TYPE_AES. Refer to the documentation of
+ *                              individual PAKE algorithms for more information.
+ *                              See PAKE algorithms.
+ *
+ *                              The key size in attributes must be zero. The
+ *                              returned key size is always determined from the
+ *                              PAKE shared secret.
+ *
+ *                              The key permitted-algorithm policy is required for
+ *                              keys that will be used for a cryptographic operation.
+ *
+ *                              The key usage flags define what operations are permitted
+ *                              with the key.
+ *
+ *                              The key lifetime and identifier are required for a
+ *                              persistent key.
+ *
+ *                              \note This is an input parameter: It is not updated
+ *                              with the final key attributes. The final attributes
+ *                              of the new key can be queried by calling
+ *                              #psa_get_key_attributes() with the key’s identifier.
+ * \param[out]      key         On success, an identifier for the newly created key.
+ *                              #PSA_KEY_ID_NULL on failure.
  *
  * \retval #PSA_SUCCESS
- *         Success.
+ *         Success. If the key is persistent, the key material and the key’s metadata have
+ *         been saved to persistent storage.
+ * \retval #PSA_ERROR_BAD_STATE
+ *         The following conditions can result in this error:
+ *         The state of PAKE operation \p operation is not valid: It must be ready to return
+ *         the shared secret.
+ *         For an unconfirmed key, this will be when the key-exchange output and input
+ *         steps are complete, but prior to any key-confirmation output and input steps.
+ *         For a confirmed key, this will be when all key-exchange and key-confirmation
+ *         output and input steps are complete.
+ *         The library requires initializing by a call to #psa_crypto_init().
+ * \retval #PSA_ERROR_NOT_PERMITTED
+ *         The implementation does not permit creating a key with the specified attributes
+ *         due to some implementation-specific policy.
+ * \retval #PSA_ERROR_ALREADY_EXISTS
+ *         This is an attempt to create a persistent key, and there is already a persistent
+ *         key with the given identifier.
+ *
  * \retval #PSA_ERROR_INVALID_ARGUMENT
- *         #PSA_KEY_DERIVATION_INPUT_SECRET is not compatible with the
- *         algorithm in the \p output key derivation operation.
+ *         The following conditions can result in this error:
+ *         The \p key type is not valid for output from this \p operation’s algorithm.
+ *         The \p key size is nonzero.
+ *         The \p key lifetime is invalid.
+ *         The \p key identifier is not valid for the key lifetime.
+ *         The \p key usage flags include invalid values.
+ *         The \p key’s permitted-usage algorithm is invalid.
+ *         The \p key attributes, as a whole, are invalid.
  * \retval #PSA_ERROR_NOT_SUPPORTED
- *         Input from a PAKE is not supported by the algorithm in the \p output
- *         key derivation operation.
+ *         The \p key attributes, as a whole, are not supported for creation from a PAKE secret,
+ *         either by the implementation in general or in the specified storage location.
  * \retval #PSA_ERROR_INSUFFICIENT_MEMORY \emptydescription
  * \retval #PSA_ERROR_COMMUNICATION_FAILURE \emptydescription
  * \retval #PSA_ERROR_CORRUPTION_DETECTED \emptydescription
  * \retval #PSA_ERROR_STORAGE_FAILURE \emptydescription
  * \retval #PSA_ERROR_DATA_CORRUPT \emptydescription
  * \retval #PSA_ERROR_DATA_INVALID \emptydescription
- * \retval #PSA_ERROR_BAD_STATE
- *         The PAKE operation state is not valid (it must be active, but beyond
- *         that validity is specific to the algorithm), or
- *         the library has not been previously initialized by psa_crypto_init(),
- *         or the state of \p output is not valid for
- *         the #PSA_KEY_DERIVATION_INPUT_SECRET step. This can happen if the
- *         step is out of order or the application has done this step already
- *         and it may not be repeated.
- *         It is implementation-dependent whether a failure to initialize
- *         results in this error code.
  */
-psa_status_t psa_pake_get_implicit_key(psa_pake_operation_t *operation,
-                                       psa_key_derivation_operation_t *output);
+psa_status_t psa_pake_get_shared_key(psa_pake_operation_t *operation,
+                                     const psa_key_attributes_t *attributes,
+                                     mbedtls_svc_key_id_t *key);

 /** Abort a PAKE operation.
  *
@@ -1838,7 +1853,7 @@ psa_status_t psa_pake_get_implicit_key(psa_pake_operation_t *operation,
  * object has been initialized as described in #psa_pake_operation_t.
  *
  * In particular, calling psa_pake_abort() after the operation has been
- * terminated by a call to psa_pake_abort() or psa_pake_get_implicit_key()
+ * terminated by a call to #psa_pake_abort() or #psa_pake_get_shared_key()
  * is safe and has no effect.
  *
  * \param[in,out] operation    The operation to abort.
@@ -1901,20 +1916,16 @@ static inline uint16_t psa_pake_cs_get_bits(
     return cipher_suite->bits;
 }

-static inline psa_algorithm_t psa_pake_cs_get_hash(
-    const psa_pake_cipher_suite_t *cipher_suite)
+
+static inline uint32_t psa_pake_cs_get_key_confirmation(const psa_pake_cipher_suite_t *cipher_suite)
 {
-    return cipher_suite->hash;
+    return cipher_suite->key_confirmation;
 }

-static inline void psa_pake_cs_set_hash(psa_pake_cipher_suite_t *cipher_suite,
-                                        psa_algorithm_t hash)
+static inline void psa_pake_cs_set_key_confirmation(psa_pake_cipher_suite_t *cipher_suite,
+                                                    uint32_t key_confirmation)
 {
-    if (!PSA_ALG_IS_HASH(hash)) {
-        cipher_suite->hash = 0;
-    } else {
-        cipher_suite->hash = hash;
-    }
+    cipher_suite->key_confirmation = key_confirmation;
 }

 static inline struct psa_pake_cipher_suite_s psa_pake_cipher_suite_init(void)
diff --git a/deps/LIEF/third-party/mbedtls/include/psa/crypto_platform.h b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/include/psa/crypto_platform.h
similarity index 90%
rename from deps/LIEF/third-party/mbedtls/include/psa/crypto_platform.h
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/include/psa/crypto_platform.h
index a871ee12468..10f109e4c1b 100644
--- a/deps/LIEF/third-party/mbedtls/include/psa/crypto_platform.h
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/include/psa/crypto_platform.h
@@ -21,15 +21,7 @@
 #ifndef PSA_CRYPTO_PLATFORM_H
 #define PSA_CRYPTO_PLATFORM_H
 #include "mbedtls/private_access.h"
-
-/*
- * Include the build-time configuration information header. Here, we do not
- * include `"mbedtls/build_info.h"` directly but `"psa/build_info.h"`, which
- * is basically just an alias to it. This is to ease the maintenance of the
- * TF-PSA-Crypto repository which has a different build system and
- * configuration.
- */
-#include "psa/build_info.h"
+#include "tf-psa-crypto/build_info.h"

 /* PSA requires several types which C99 provides in stdint.h. */
 #include <stdint.h>
diff --git a/deps/LIEF/third-party/mbedtls/include/psa/crypto_sizes.h b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/include/psa/crypto_sizes.h
similarity index 98%
rename from deps/LIEF/third-party/mbedtls/include/psa/crypto_sizes.h
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/include/psa/crypto_sizes.h
index 87b8c39fa6d..431bccde111 100644
--- a/deps/LIEF/third-party/mbedtls/include/psa/crypto_sizes.h
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/include/psa/crypto_sizes.h
@@ -28,14 +28,7 @@
 #ifndef PSA_CRYPTO_SIZES_H
 #define PSA_CRYPTO_SIZES_H

-/*
- * Include the build-time configuration information header. Here, we do not
- * include `"mbedtls/build_info.h"` directly but `"psa/build_info.h"`, which
- * is basically just an alias to it. This is to ease the maintenance of the
- * TF-PSA-Crypto repository which has a different build system and
- * configuration.
- */
-#include "psa/build_info.h"
+#include "tf-psa-crypto/build_info.h"

 #define PSA_BITS_TO_BYTES(bits) (((bits) + 7u) / 8u)
 #define PSA_BYTES_TO_BITS(bytes) ((bytes) * 8u)
@@ -259,10 +252,6 @@
 #define PSA_VENDOR_ECC_MAX_CURVE_BITS 256u
 #elif defined(PSA_WANT_ECC_MONTGOMERY_255)
 #define PSA_VENDOR_ECC_MAX_CURVE_BITS 255u
-#elif defined(PSA_WANT_ECC_SECP_R1_224)
-#define PSA_VENDOR_ECC_MAX_CURVE_BITS 224u
-#elif defined(PSA_WANT_ECC_SECP_K1_224)
-#define PSA_VENDOR_ECC_MAX_CURVE_BITS 224u
 #elif defined(PSA_WANT_ECC_SECP_R1_192)
 #define PSA_VENDOR_ECC_MAX_CURVE_BITS 192u
 #elif defined(PSA_WANT_ECC_SECP_K1_192)
@@ -1104,8 +1093,6 @@
 #if (defined(PSA_WANT_KEY_TYPE_AES) || defined(PSA_WANT_KEY_TYPE_ARIA) || \
     defined(PSA_WANT_KEY_TYPE_CAMELLIA) || defined(PSA_WANT_KEY_TYPE_CHACHA20))
 #define PSA_CIPHER_MAX_KEY_LENGTH       32u
-#elif defined(PSA_WANT_KEY_TYPE_DES)
-#define PSA_CIPHER_MAX_KEY_LENGTH       24u
 #else
 #define PSA_CIPHER_MAX_KEY_LENGTH       0u
 #endif
diff --git a/deps/LIEF/third-party/mbedtls/include/psa/crypto_struct.h b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/include/psa/crypto_struct.h
similarity index 79%
rename from deps/LIEF/third-party/mbedtls/include/psa/crypto_struct.h
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/include/psa/crypto_struct.h
index 362e921a364..0cc32e7f8bd 100644
--- a/deps/LIEF/third-party/mbedtls/include/psa/crypto_struct.h
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/include/psa/crypto_struct.h
@@ -54,14 +54,7 @@
 extern "C" {
 #endif

-/*
- * Include the build-time configuration information header. Here, we do not
- * include `"mbedtls/build_info.h"` directly but `"psa/build_info.h"`, which
- * is basically just an alias to it. This is to ease the maintenance of the
- * TF-PSA-Crypto repository which has a different build system and
- * configuration.
- */
-#include "psa/build_info.h"
+#include "tf-psa-crypto/build_info.h"

 /* Include the context definition for the compiled-in drivers for the primitive
  * algorithms. */
@@ -237,34 +230,6 @@ struct psa_custom_key_parameters_s {
  */
 #define PSA_CUSTOM_KEY_PARAMETERS_INIT { 0 }

-#ifndef __cplusplus
-/* Omitted when compiling in C++, because one of the parameters is a
- * pointer to a struct with a flexible array member, and that is not
- * standard C++.
- * https://github.com/Mbed-TLS/mbedtls/issues/9020
- */
-/* This is a deprecated variant of `struct psa_custom_key_parameters_s`.
- * It has exactly the same layout, plus an extra field which is a flexible
- * array member. Thus a `const struct psa_key_production_parameters_s *`
- * can be passed to any function that reads a
- * `const struct psa_custom_key_parameters_s *`.
- */
-struct psa_key_production_parameters_s {
-    uint32_t flags;
-    uint8_t data[];
-};
-
-/** The default production parameters for key generation or key derivation.
- *
- * Calling psa_generate_key_ext() or psa_key_derivation_output_key_ext()
- * with `params=PSA_KEY_PRODUCTION_PARAMETERS_INIT` and
- * `params_data_length == 0` is equivalent to
- * calling psa_generate_key() or psa_key_derivation_output_key()
- * respectively.
- */
-#define PSA_KEY_PRODUCTION_PARAMETERS_INIT { 0 }
-#endif /* !__cplusplus */
-
 struct psa_key_policy_s {
     psa_key_usage_t MBEDTLS_PRIVATE(usage);
     psa_algorithm_t MBEDTLS_PRIVATE(alg);
@@ -293,10 +258,6 @@ typedef uint16_t psa_key_bits_t;
 #define PSA_MAX_KEY_BITS 0xfff8

 struct psa_key_attributes_s {
-#if defined(MBEDTLS_PSA_CRYPTO_SE_C)
-    psa_key_slot_number_t MBEDTLS_PRIVATE(slot_number);
-    int MBEDTLS_PRIVATE(has_slot_number);
-#endif /* MBEDTLS_PSA_CRYPTO_SE_C */
     psa_key_type_t MBEDTLS_PRIVATE(type);
     psa_key_bits_t MBEDTLS_PRIVATE(bits);
     psa_key_lifetime_t MBEDTLS_PRIVATE(lifetime);
@@ -315,16 +276,10 @@ struct psa_key_attributes_s {
     mbedtls_svc_key_id_t MBEDTLS_PRIVATE(id);
 };

-#if defined(MBEDTLS_PSA_CRYPTO_SE_C)
-#define PSA_KEY_ATTRIBUTES_MAYBE_SLOT_NUMBER 0, 0,
-#else
-#define PSA_KEY_ATTRIBUTES_MAYBE_SLOT_NUMBER
-#endif
-#define PSA_KEY_ATTRIBUTES_INIT { PSA_KEY_ATTRIBUTES_MAYBE_SLOT_NUMBER \
-                                      PSA_KEY_TYPE_NONE, 0,            \
-                                      PSA_KEY_LIFETIME_VOLATILE,       \
-                                      PSA_KEY_POLICY_INIT,             \
-                                      MBEDTLS_SVC_KEY_ID_INIT }
+#define PSA_KEY_ATTRIBUTES_INIT { PSA_KEY_TYPE_NONE, 0,            \
+                                  PSA_KEY_LIFETIME_VOLATILE,       \
+                                  PSA_KEY_POLICY_INIT,             \
+                                  MBEDTLS_SVC_KEY_ID_INIT }

 static inline struct psa_key_attributes_s psa_key_attributes_init(void)
 {
@@ -520,6 +475,118 @@ psa_verify_hash_interruptible_operation_init(void)
     return v;
 }

+/**
+ * \brief The context for PSA interruptible key agreement.
+ */
+struct psa_key_agreement_iop_s {
+#if defined(MBEDTLS_PSA_CRYPTO_CLIENT) && !defined(MBEDTLS_PSA_CRYPTO_C)
+    mbedtls_psa_client_handle_t handle;
+#else
+    /**
+     *  Unique ID indicating which driver got assigned to do the
+     * operation. Since driver contexts are driver-specific, swapping
+     * drivers halfway through the operation is not supported.
+     * ID values are auto-generated in psa_crypto_driver_wrappers.h
+     * ID value zero means the context is not valid or not assigned to
+     * any driver (i.e. none of the driver contexts are active).
+     */
+    unsigned int MBEDTLS_PRIVATE(id);
+    mbedtls_psa_key_agreement_interruptible_operation_t MBEDTLS_PRIVATE(mbedtls_ctx);
+    uint32_t MBEDTLS_PRIVATE(num_ops);
+    psa_key_attributes_t MBEDTLS_PRIVATE(attributes);
+    unsigned int MBEDTLS_PRIVATE(error_occurred) : 1;
+#endif
+};
+
+#if defined(MBEDTLS_PSA_CRYPTO_CLIENT) && !defined(MBEDTLS_PSA_CRYPTO_C)
+#define PSA_KEY_AGREEMENT_IOP_INIT { 0 }
+#else
+#define PSA_KEY_AGREEMENT_IOP_INIT { 0, MBEDTLS_PSA_KEY_AGREEMENT_IOP_INIT, 0, \
+                                     PSA_KEY_ATTRIBUTES_INIT, 0 }
+#endif
+
+static inline struct psa_key_agreement_iop_s
+psa_key_agreement_iop_init(void)
+{
+    const struct psa_key_agreement_iop_s v = PSA_KEY_AGREEMENT_IOP_INIT;
+
+    return v;
+}
+
+/**
+ * \brief The context for PSA interruptible key generation.
+ */
+struct psa_generate_key_iop_s {
+#if defined(MBEDTLS_PSA_CRYPTO_CLIENT) && !defined(MBEDTLS_PSA_CRYPTO_C)
+    mbedtls_psa_client_handle_t handle;
+#else
+    /**
+     *  Unique ID indicating which driver got assigned to do the
+     * operation. Since driver contexts are driver-specific, swapping
+     * drivers halfway through the operation is not supported.
+     * ID values are auto-generated in psa_crypto_driver_wrappers.h
+     * ID value zero means the context is not valid or not assigned to
+     * any driver (i.e. none of the driver contexts are active).
+     */
+    unsigned int MBEDTLS_PRIVATE(id);
+    mbedtls_psa_generate_key_iop_t MBEDTLS_PRIVATE(ctx);
+    psa_key_attributes_t MBEDTLS_PRIVATE(attributes);
+    unsigned int MBEDTLS_PRIVATE(error_occurred) : 1;
+    uint32_t MBEDTLS_PRIVATE(num_ops);
+#endif
+};
+
+#if defined(MBEDTLS_PSA_CRYPTO_CLIENT) && !defined(MBEDTLS_PSA_CRYPTO_C)
+#define PSA_GENERATE_KEY_IOP_INIT { 0 }
+#else
+#define PSA_GENERATE_KEY_IOP_INIT { 0, MBEDTLS_PSA_GENERATE_KEY_IOP_INIT, PSA_KEY_ATTRIBUTES_INIT, \
+                                    0, 0 }
+#endif
+
+static inline struct psa_generate_key_iop_s
+psa_generate_key_iop_init(void)
+{
+    const struct psa_generate_key_iop_s v = PSA_GENERATE_KEY_IOP_INIT;
+
+    return v;
+}
+
+/**
+ * \brief The context for PSA interruptible export public-key.
+ */
+struct psa_export_public_key_iop_s {
+#if defined(MBEDTLS_PSA_CRYPTO_CLIENT) && !defined(MBEDTLS_PSA_CRYPTO_C)
+    mbedtls_psa_client_handle_t handle;
+#else
+    /**
+     *  Unique ID indicating which driver got assigned to do the
+     * operation. Since driver contexts are driver-specific, swapping
+     * drivers halfway through the operation is not supported.
+     * ID values are auto-generated in psa_crypto_driver_wrappers.h
+     * ID value zero means the context is not valid or not assigned to
+     * any driver (i.e. none of the driver contexts are active).
+     */
+    unsigned int MBEDTLS_PRIVATE(id);
+    mbedtls_psa_export_public_key_iop_t MBEDTLS_PRIVATE(ctx);
+    unsigned int MBEDTLS_PRIVATE(error_occurred) : 1;
+    uint32_t MBEDTLS_PRIVATE(num_ops);
+#endif
+};
+
+#if defined(MBEDTLS_PSA_CRYPTO_CLIENT) && !defined(MBEDTLS_PSA_CRYPTO_C)
+#define PSA_EXPORT_PUBLIC_KEY_IOP_INIT { 0 }
+#else
+#define PSA_EXPORT_PUBLIC_KEY_IOP_INIT { 0, MBEDTLS_PSA_EXPORT_PUBLIC_KEY_IOP_INIT, 0, 0 }
+#endif
+
+static inline struct psa_export_public_key_iop_s
+psa_export_public_key_iop_init(void)
+{
+    const struct psa_export_public_key_iop_s v = PSA_EXPORT_PUBLIC_KEY_IOP_INIT;
+
+    return v;
+}
+
 #ifdef __cplusplus
 }
 #endif
diff --git a/deps/LIEF/third-party/mbedtls/include/psa/crypto_types.h b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/include/psa/crypto_types.h
similarity index 91%
rename from deps/LIEF/third-party/mbedtls/include/psa/crypto_types.h
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/include/psa/crypto_types.h
index f831486f4e4..c4760fd4c03 100644
--- a/deps/LIEF/third-party/mbedtls/include/psa/crypto_types.h
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/include/psa/crypto_types.h
@@ -21,14 +21,7 @@
 #ifndef PSA_CRYPTO_TYPES_H
 #define PSA_CRYPTO_TYPES_H

-/*
- * Include the build-time configuration information header. Here, we do not
- * include `"mbedtls/build_info.h"` directly but `"psa/build_info.h"`, which
- * is basically just an alias to it. This is to ease the maintenance of the
- * TF-PSA-Crypto repository which has a different build system and
- * configuration.
- */
-#include "psa/build_info.h"
+#include "tf-psa-crypto/build_info.h"

 /* Define the MBEDTLS_PRIVATE macro. */
 #include "mbedtls/private_access.h"
@@ -431,17 +424,6 @@ typedef uint32_t psa_key_usage_t;
  */
 typedef struct psa_key_attributes_s psa_key_attributes_t;

-
-#ifndef __DOXYGEN_ONLY__
-#if defined(MBEDTLS_PSA_CRYPTO_SE_C)
-/* Mbed TLS defines this type in crypto_types.h because it is also
- * visible to applications through an implementation-specific extension.
- * For the PSA Cryptography specification, this type is only visible
- * via crypto_se_driver.h. */
-typedef uint64_t psa_key_slot_number_t;
-#endif /* MBEDTLS_PSA_CRYPTO_SE_C */
-#endif /* !__DOXYGEN_ONLY__ */
-
 /**@}*/

 /** \defgroup derivation Key derivation
@@ -479,30 +461,6 @@ typedef uint16_t psa_key_derivation_step_t;
  */
 typedef struct psa_custom_key_parameters_s psa_custom_key_parameters_t;

-/** \brief Custom parameters for key generation or key derivation.
- *
- * This is a structure type with at least the following fields:
- *
- * - \c flags: an unsigned integer type. 0 for the default production parameters.
- * - \c data: a flexible array of bytes.
- *
- * The interpretation of this structure depend on the type of the
- * created key.
- *
- * - #PSA_KEY_TYPE_RSA_KEY_PAIR:
- *     - \c flags: must be 0.
- *     - \c data: the public exponent, in little-endian order.
- *       This must be an odd integer and must not be 1.
- *       Implementations must support 65537, should support 3 and may
- *       support other values.
- *       When not using a driver, Mbed TLS supports values up to \c INT_MAX.
- *       If this is empty or if the custom production parameters are omitted
- *       altogether, the default value 65537 is used.
- * - Other key types: reserved for future use. \c flags must be 0.
- *
- */
-typedef struct psa_key_production_parameters_s psa_key_production_parameters_t;
-
 /**@}*/

 #endif /* PSA_CRYPTO_TYPES_H */
diff --git a/deps/LIEF/third-party/mbedtls/include/psa/crypto_values.h b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/include/psa/crypto_values.h
similarity index 98%
rename from deps/LIEF/third-party/mbedtls/include/psa/crypto_values.h
rename to deps/LIEF/third-party/mbedtls/tf-psa-crypto/include/psa/crypto_values.h
index 1d678dbfc29..33c35e5fafd 100644
--- a/deps/LIEF/third-party/mbedtls/include/psa/crypto_values.h
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/include/psa/crypto_values.h
@@ -27,6 +27,7 @@
 #ifndef PSA_CRYPTO_VALUES_H
 #define PSA_CRYPTO_VALUES_H
 #include "mbedtls/private_access.h"
+#include <psa/crypto_types.h>

 /** \defgroup error Error codes
  * @{
@@ -502,17 +503,6 @@
  * ARIA block cipher. */
 #define PSA_KEY_TYPE_ARIA                           ((psa_key_type_t) 0x2406)

-/** Key for a cipher or MAC algorithm based on DES or 3DES (Triple-DES).
- *
- * The size of the key can be 64 bits (single DES), 128 bits (2-key 3DES) or
- * 192 bits (3-key 3DES).
- *
- * Note that single DES and 2-key 3DES are weak and strongly
- * deprecated and should only be used to decrypt legacy data. 3-key 3DES
- * is weak and deprecated and should only be used in legacy protocols.
- */
-#define PSA_KEY_TYPE_DES                            ((psa_key_type_t) 0x2301)
-
 /** Key for a cipher, AEAD or MAC algorithm based on the
  * Camellia block cipher. */
 #define PSA_KEY_TYPE_CAMELLIA                       ((psa_key_type_t) 0x2403)
@@ -583,9 +573,12 @@
     (((type) & ~PSA_KEY_TYPE_ECC_CURVE_MASK) ==                         \
      PSA_KEY_TYPE_ECC_PUBLIC_KEY_BASE)

+#define PSA_KEY_TYPE_HAS_ECC_FAMILY(type)       \
+    (PSA_KEY_TYPE_IS_ECC(type) || PSA_KEY_TYPE_IS_SPAKE2P(type))
+
 /** Extract the curve from an elliptic curve key type. */
 #define PSA_KEY_TYPE_ECC_GET_FAMILY(type)                        \
-    ((psa_ecc_family_t) (PSA_KEY_TYPE_IS_ECC(type) ?             \
+    ((psa_ecc_family_t) (PSA_KEY_TYPE_HAS_ECC_FAMILY(type) ?      \
                          ((type) & PSA_KEY_TYPE_ECC_CURVE_MASK) : \
                          0))

@@ -595,21 +588,17 @@
 /** SEC Koblitz curves over prime fields.
  *
  * This family comprises the following curves:
- * secp192k1, secp224k1, secp256k1.
+ * secp192k1, secp256k1.
  * They are defined in _Standards for Efficient Cryptography_,
  * _SEC 2: Recommended Elliptic Curve Domain Parameters_.
  * https://www.secg.org/sec2-v2.pdf
- *
- * \note For secp224k1, the bit-size is 225 (size of a private value).
- *
- * \note Mbed TLS only supports secp192k1 and secp256k1.
  */
 #define PSA_ECC_FAMILY_SECP_K1           ((psa_ecc_family_t) 0x17)

 /** SEC random curves over prime fields.
  *
  * This family comprises the following curves:
- * secp192r1, secp224r1, secp256r1, secp384r1, secp521r1.
+ * secp192r1, secp256r1, secp384r1, secp521r1.
  * They are defined in _Standards for Efficient Cryptography_,
  * _SEC 2: Recommended Elliptic Curve Domain Parameters_.
  * https://www.secg.org/sec2-v2.pdf
@@ -2010,9 +1999,9 @@
  * the other secret depends on the key exchange specified in the cipher suite:
  * - for a plain PSK cipher suite (RFC 4279, Section 2), omit
  *   PSA_KEY_DERIVATION_INPUT_OTHER_SECRET
- * - for a DHE-PSK (RFC 4279, Section 3) or ECDHE-PSK cipher suite
- *   (RFC 5489, Section 2), the other secret should be the output of the
- *   PSA_ALG_FFDH or PSA_ALG_ECDH key agreement performed with the peer.
+ * - for a ECDHE-PSK cipher suite (RFC 5489, Section 2), the other secret
+ *   should be the output of the PSA_ALG_FFDH or PSA_ALG_ECDH key agreement
+ *   performed with the peer.
  *   The recommended way to pass this input is to use a key derivation
  *   algorithm constructed as
  *   PSA_ALG_KEY_AGREEMENT(ka_alg, PSA_ALG_TLS12_PSK_TO_MS(hash_alg))
@@ -2020,13 +2009,6 @@
  *   this input may be an output of `psa_raw_key_agreement()` passed with
  *   psa_key_derivation_input_bytes(), or an equivalent input passed with
  *   psa_key_derivation_input_bytes() or psa_key_derivation_input_key().
- * - for a RSA-PSK cipher suite (RFC 4279, Section 4), the other secret
- *   should be the 48-byte client challenge (the PreMasterSecret of
- *   (RFC 5246, Section 7.4.7.1)) concatenation of the TLS version and
- *   a 46-byte random string chosen by the client. On the server, this is
- *   typically an output of psa_asymmetric_decrypt() using
- *   PSA_ALG_RSA_PKCS1V15_CRYPT, passed to the key derivation operation
- *   with `psa_key_derivation_input_bytes()`.
  *
  * For example, `PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)` represents the
  * TLS-1.2 PSK to MasterSecret derivation PRF using HMAC-SHA-256.
@@ -2561,6 +2543,25 @@ static inline int mbedtls_svc_key_id_is_null(mbedtls_svc_key_id_t key)
  */
 #define PSA_KEY_USAGE_COPY                      ((psa_key_usage_t) 0x00000002)

+/** Whether the key may be used the public side of a key agreement or PAKE.
+ *
+ * This macro can be used when checking a key's capabilities, for example
+ * with mbedtls_pk_can_do_psa().
+ *
+ * \note Currently, no API function requires this flag.
+ *       Key agreement functions (psa_raw_key_agreement(), psa_key_agreement(),
+ *       psa_key_derivation_key_agreement()) and psa_pake_input() take the
+ *       public key in exported form, not as a key object, so no usage flag
+ *       is involved.
+ *       For PAKE algorithms with a verifier role such as SPAKE2+,
+ *       psa_pake_setup() requires #PSA_KEY_USAGE_DERIVE even when passing
+ *       a public key in the verifier role.
+ *
+ * \note The value of this macro is determined by a draft version of the
+ *       PSA Cryptography API, and may change before this draft is finalized.
+ */
+#define PSA_KEY_USAGE_DERIVE_PUBLIC            ((psa_key_usage_t) 0x00000080)
+
 /** Whether the key may be used to encrypt a message.
  *
  * This flag allows the key to be used for a symmetric encryption operation,
diff --git a/deps/LIEF/third-party/mbedtls/tf-psa-crypto/include/tf-psa-crypto/build_info.h b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/include/tf-psa-crypto/build_info.h
new file mode 100644
index 00000000000..f0181487da0
--- /dev/null
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/include/tf-psa-crypto/build_info.h
@@ -0,0 +1,180 @@
+/**
+ * \file tf-psa-crypto/build_info.h
+ *
+ * \brief Build-time configuration info
+ *
+ *  Include this file if you need to depend on the
+ *  configuration options defined in crypto_config.h or TF_PSA_CRYPTO_CONFIG_FILE.
+ */
+/*
+ *  Copyright The Mbed TLS Contributors
+ *  SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+ */
+
+#ifndef TF_PSA_CRYPTO_BUILD_INFO_H
+#define TF_PSA_CRYPTO_BUILD_INFO_H
+
+/*
+ * Version macros are defined in build_info.h rather than in version.h so that
+ * the user config files have access to them. That way, for example, users who
+ * deploy applications to multiple devices with different versions of
+ * TF-PSA-Crypto can write configurations that depend on the version.
+ */
+/**
+ * The version number x.y.z is split into three parts.
+ * Major, Minor, Patchlevel
+ */
+#define TF_PSA_CRYPTO_VERSION_MAJOR  1
+#define TF_PSA_CRYPTO_VERSION_MINOR  0
+#define TF_PSA_CRYPTO_VERSION_PATCH  0
+
+/**
+ * The single version number has the following structure:
+ *    MMNNPP00
+ *    Major version | Minor version | Patch version
+ */
+#define TF_PSA_CRYPTO_VERSION_NUMBER        0x01000000
+#define TF_PSA_CRYPTO_VERSION_STRING        "1.0.0"
+#define TF_PSA_CRYPTO_VERSION_STRING_FULL   "TF-PSA-Crypto 1.0.0"
+
+/* Macros for build-time platform detection */
+
+#if !defined(MBEDTLS_ARCH_IS_ARM64) && \
+    (defined(__aarch64__) || defined(_M_ARM64) || defined(_M_ARM64EC))
+#define MBEDTLS_ARCH_IS_ARM64
+#endif
+
+#if !defined(MBEDTLS_ARCH_IS_ARM32) && \
+    (defined(__arm__) || defined(_M_ARM) || \
+    defined(_M_ARMT) || defined(__thumb__) || defined(__thumb2__))
+#define MBEDTLS_ARCH_IS_ARM32
+#endif
+
+#if !defined(MBEDTLS_ARCH_IS_X64) && \
+    (defined(__amd64__) || defined(__x86_64__) || \
+    ((defined(_M_X64) || defined(_M_AMD64)) && !defined(_M_ARM64EC)))
+#define MBEDTLS_ARCH_IS_X64
+#endif
+
+#if !defined(MBEDTLS_ARCH_IS_X86) && \
+    (defined(__i386__) || defined(_X86_) || \
+    (defined(_M_IX86) && !defined(_M_I86)))
+#define MBEDTLS_ARCH_IS_X86
+#endif
+
+#if !defined(MBEDTLS_PLATFORM_IS_WINDOWS_ON_ARM64) && \
+    (defined(_M_ARM64) || defined(_M_ARM64EC))
+#define MBEDTLS_PLATFORM_IS_WINDOWS_ON_ARM64
+#endif
+
+/* This is defined if the architecture is Armv8-A, or higher */
+#if !defined(MBEDTLS_ARCH_IS_ARMV8_A)
+#if defined(__ARM_ARCH) && defined(__ARM_ARCH_PROFILE)
+#if (__ARM_ARCH >= 8) && (__ARM_ARCH_PROFILE == 'A')
+/* GCC, clang, armclang and IAR */
+#define MBEDTLS_ARCH_IS_ARMV8_A
+#endif
+#elif defined(__ARM_ARCH_8A)
+/* Alternative defined by clang */
+#define MBEDTLS_ARCH_IS_ARMV8_A
+#elif defined(_M_ARM64) || defined(_M_ARM64EC)
+/* MSVC ARM64 is at least Armv8.0-A */
+#define MBEDTLS_ARCH_IS_ARMV8_A
+#endif
+#endif
+
+#if defined(__GNUC__) && !defined(__ARMCC_VERSION) && !defined(__clang__) \
+    && !defined(__llvm__) && !defined(__INTEL_COMPILER)
+/* Defined if the compiler really is gcc and not clang, etc */
+#define MBEDTLS_COMPILER_IS_GCC
+#define MBEDTLS_GCC_VERSION \
+    (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__)
+#endif
+
+#if defined(_MSC_VER) && !defined(_CRT_SECURE_NO_DEPRECATE)
+#define _CRT_SECURE_NO_DEPRECATE 1
+#endif
+
+/* Define `inline` on some non-C99-compliant compilers. */
+#if (defined(__ARMCC_VERSION) || defined(_MSC_VER)) && \
+    !defined(inline) && !defined(__cplusplus)
+#define inline __inline
+#endif
+
+#if defined(TF_PSA_CRYPTO_CONFIG_FILES_READ)
+#error \
+    "Something went wrong: TF_PSA_CRYPTO_CONFIG_FILES_READ defined before reading the config files!"
+#endif
+#if defined(TF_PSA_CRYPTO_CONFIG_IS_FINALIZED)
+#error \
+    "Something went wrong: TF_PSA_CRYPTO_CONFIG_IS_FINALIZED defined before reading the config files!"
+#endif
+
+/* PSA crypto configuration */
+#if defined(TF_PSA_CRYPTO_CONFIG_FILE)
+#include TF_PSA_CRYPTO_CONFIG_FILE
+#else
+#include "psa/crypto_config.h"
+#endif
+#if defined(TF_PSA_CRYPTO_USER_CONFIG_FILE)
+#include TF_PSA_CRYPTO_USER_CONFIG_FILE
+#endif
+
+/* For the sake of consistency checks in tf_psa_crypto_config.c */
+#if defined(TF_PSA_CRYPTO_INCLUDE_AFTER_RAW_CONFIG)
+#include TF_PSA_CRYPTO_INCLUDE_AFTER_RAW_CONFIG
+#endif
+
+/* Indicate that all configuration files have been read.
+ * It is now time to adjust the configuration (follow through on dependencies,
+ * make PSA and legacy crypto consistent, etc.).
+ */
+#define TF_PSA_CRYPTO_CONFIG_FILES_READ
+
+#if defined(TF_PSA_CRYPTO_CONFIG_VERSION)
+#if (TF_PSA_CRYPTO_CONFIG_VERSION < 0x01000000) ||                      \
+    (TF_PSA_CRYPTO_CONFIG_VERSION > TF_PSA_CRYPTO_VERSION_NUMBER)
+#error "Invalid config version, defined value of TF_PSA_CRYPTO_CONFIG_VERSION is unsupported"
+#endif
+#endif
+
+/* Auto-enable MBEDTLS_MD_C if needed by a module that didn't require it
+ * in a previous release, to ensure backwards compatibility.
+ */
+#if defined(MBEDTLS_PKCS5_C)
+#define MBEDTLS_MD_C
+#endif
+
+/* PSA crypto specific configuration options
+ * - If config_psa.h reads a configuration option in preprocessor directive,
+ *   this symbol should be set before its inclusion. (e.g. MBEDTLS_MD_C)
+ * - If config_psa.h writes a configuration option in conditional directive,
+ *   this symbol should be consulted after its inclusion.
+ *   (e.g. MBEDTLS_MD_LIGHT)
+ */
+#include "mbedtls/private/config_psa.h"
+
+#include "mbedtls/config_adjust_legacy_crypto.h"
+
+/* Indicate that all configuration symbols are set,
+ * even the ones that are calculated programmatically.
+ * It is now safe to query the configuration (to check it, to size buffers,
+ * etc.).
+ */
+#define TF_PSA_CRYPTO_CONFIG_IS_FINALIZED
+
+/* Up to Mbed TLS 3.6, build_info.h included check_config.h which included
+ * <limits.h>. Keep including it until it's explicitly included everywhere
+ * that uses definitions from <limits.h>.
+ * https://github.com/Mbed-TLS/mbedtls/issues/10305
+ */
+#include <limits.h>
+
+/*
+ * Avoid warning from -pedantic. This is a convenient place for this
+ * workaround since this is included by every single file before the
+ * #if defined(MBEDTLS_xxx_C) that results in empty translation units.
+ */
+typedef int mbedtls_iso_c_forbids_empty_translation_units;
+
+#endif /* TF_PSA_CRYPTO_BUILD_INFO_H */
diff --git a/deps/LIEF/third-party/mbedtls/tf-psa-crypto/include/tf-psa-crypto/version.h b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/include/tf-psa-crypto/version.h
new file mode 100644
index 00000000000..ef768f6471f
--- /dev/null
+++ b/deps/LIEF/third-party/mbedtls/tf-psa-crypto/include/tf-psa-crypto/version.h
@@ -0,0 +1,44 @@
+/**
+ * \file tf-psa-crypto/version.h
+ *
+ * \brief Run-time version information
+ */
+/*
+ *  Copyright The Mbed TLS Contributors
+ *  SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+ */
+/*
+ * This set of run-time variables can be used to determine the version number of
+ * the Mbed TLS library used. Compile-time version defines for the same can be
+ * found in build_info.h
+ */
+#ifndef TF_PSA_CRYPTO_VERSION_H
+#define TF_PSA_CRYPTO_VERSION_H
+
+#include "tf-psa-crypto/build_info.h"
+
+#if defined(TF_PSA_CRYPTO_VERSION)
+
+/**
+ * Get the version number.
+ *
+ * \return          The constructed version number in the format
+ *                  MMNNPP00 (Major, Minor, Patch).
+ */
+unsigned int tf_psa_crypto_version_get_number(void);
+
+/**
+ * Get a pointer to the version string ("x.y.z").
+ *
+ */
+const char *tf_psa_crypto_version_get_string(void);
+
+/**
+ * Get a pointer to the full version string ("TF-PSA-Crypto x.y.z").
+ *
+ */
+const char *tf_psa_crypto_version_get_string_full(void);
+
+#endif /* TF_PSA_CRYPTO_VERSION */
+
+#endif /* TF_PSA_CRYPTO_VERSION_H */
diff --git a/deps/LIEF/third-party/spdlog/LICENSE b/deps/LIEF/third-party/spdlog/LICENSE
index 3e696a7c81c..4b1b23357f9 100644
--- a/deps/LIEF/third-party/spdlog/LICENSE
+++ b/deps/LIEF/third-party/spdlog/LICENSE
@@ -1,26 +1,25 @@
-The MIT License (MIT)
-
-Copyright (c) 2016 Gabi Melman.
-
-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.
-
--- NOTE: Third party dependency used by this software --
-This software depends on the fmt lib (MIT License),
-and users must comply to its license: https://raw.githubusercontent.com/fmtlib/fmt/master/LICENSE
-
+The MIT License (MIT)
+
+Copyright (c) 2016 - present, Gabi Melman and spdlog contributors.
+
+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.
+
+-- NOTE: Third party dependency used by this software --
+This software depends on the fmt lib (MIT License),
+and users must comply to its license: https://raw.githubusercontent.com/fmtlib/fmt/master/LICENSE
diff --git a/deps/LIEF/third-party/spdlog/README.md b/deps/LIEF/third-party/spdlog/README.md
index c8644915bc8..a558a6e4f00 100644
--- a/deps/LIEF/third-party/spdlog/README.md
+++ b/deps/LIEF/third-party/spdlog/README.md
@@ -80,7 +80,7 @@ int main()
     spdlog::info("Positional args are {1} {0}..", "too", "supported");
     spdlog::info("{:<30}", "left aligned");

-    spdlog::set_level(spdlog::level::debug); // Set global log level to debug
+    spdlog::set_level(spdlog::level::debug); // Set *global* log level to debug
     spdlog::debug("This message should be displayed..");

     // change log pattern
@@ -224,7 +224,7 @@ void binary_example()
 ```c++

 // create a logger with 2 targets, with different log levels and formats.
-// The console will show only warnings or errors, while the file will log all.
+// The console will show only warnings or errors, while the file will log all.
 void multi_sink_example()
 {
     auto console_sink = std::make_shared<spdlog::sinks::stdout_color_sink_mt>();
@@ -241,6 +241,29 @@ void multi_sink_example()
 }
 ```

+---
+#### Register several loggers - change global level
+```c++
+
+// Creation of loggers. Set levels to all registered loggers.
+void set_level_example()
+{
+    auto logger1 = spdlog::basic_logger_mt("logger1", "logs/logger1.txt");
+    auto logger2 = spdlog::basic_logger_mt("logger2", "logs/logger2.txt");
+
+    spdlog::set_default_logger(logger2);
+    spdlog::default_logger()->set_level(spdlog::level::trace); // set level for the default logger (logger2) to trace
+
+    spdlog::trace("trace message to the logger2 (specified as default)");
+
+    spdlog::set_level(spdlog::level::off) // (sic!) set level for *all* registered loggers to off (disable)
+
+    logger1.warn("warn message will not appear because the level set to off");
+    logger2.warn("warn message will not appear because the level set to off");
+    spdlog::warn("warn message will not appear because the level set to off");
+}
+```
+
 ---
 #### User-defined callbacks about log events
 ```c++
@@ -524,6 +547,7 @@ Documentation can be found in the [wiki](https://github.com/gabime/spdlog/wiki)

 ---

-Thanks to [JetBrains](https://www.jetbrains.com/?from=spdlog) for donating product licenses to help develop **spdlog** <a href="https://www.jetbrains.com/?from=spdlog"><img src="logos/jetbrains-variant-4.svg" width="94" align="center" /></a>
-
-
+### Powered by
+<a href="https://jb.gg/OpenSource">
+  <img src="https://resources.jetbrains.com/storage/products/company/brand/logos/jetbrains.svg" alt="JetBrains logo" width="200">
+</a>
diff --git a/deps/LIEF/third-party/spdlog/include/spdlog/async_logger-inl.h b/deps/LIEF/third-party/spdlog/include/spdlog/async_logger-inl.h
index a681d97c6d4..cde73f90b45 100644
--- a/deps/LIEF/third-party/spdlog/include/spdlog/async_logger-inl.h
+++ b/deps/LIEF/third-party/spdlog/include/spdlog/async_logger-inl.h
@@ -4,7 +4,7 @@
 #pragma once

 #ifndef SPDLOG_HEADER_ONLY
-    #include <spdlog/async_logger.h>
+#include <spdlog/async_logger.h>
 #endif

 #include <spdlog/details/thread_pool.h>
diff --git a/deps/LIEF/third-party/spdlog/include/spdlog/async_logger.h b/deps/LIEF/third-party/spdlog/include/spdlog/async_logger.h
index 846c4c6f080..be361538437 100644
--- a/deps/LIEF/third-party/spdlog/include/spdlog/async_logger.h
+++ b/deps/LIEF/third-party/spdlog/include/spdlog/async_logger.h
@@ -70,5 +70,5 @@ private:
 }  // namespace spdlog

 #ifdef SPDLOG_HEADER_ONLY
-    #include "async_logger-inl.h"
+#include "async_logger-inl.h"
 #endif
diff --git a/deps/LIEF/third-party/spdlog/include/spdlog/cfg/helpers-inl.h b/deps/LIEF/third-party/spdlog/include/spdlog/cfg/helpers-inl.h
index 93650a2e843..6ed869558bd 100644
--- a/deps/LIEF/third-party/spdlog/include/spdlog/cfg/helpers-inl.h
+++ b/deps/LIEF/third-party/spdlog/include/spdlog/cfg/helpers-inl.h
@@ -4,12 +4,11 @@
 #pragma once

 #ifndef SPDLOG_HEADER_ONLY
-    #include <spdlog/cfg/helpers.h>
+#include <spdlog/cfg/helpers.h>
 #endif

 #include <spdlog/details/os.h>
 #include <spdlog/details/registry.h>
-#include <spdlog/spdlog.h>

 #include <algorithm>
 #include <sstream>
@@ -36,7 +35,7 @@ inline std::string &trim_(std::string &str) {
     return str;
 }

-// return (name,value) trimmed pair from given "name=value" string.
+// return (name,value) trimmed pair from the given "name = value" string.
 // return empty string on missing parts
 // "key=val" => ("key", "val")
 // " key  =  val " => ("key", "val")
@@ -55,7 +54,7 @@ inline std::pair<std::string, std::string> extract_kv_(char sep, const std::stri
     return std::make_pair(trim_(k), trim_(v));
 }

-// return vector of key/value pairs from sequence of "K1=V1,K2=V2,.."
+// return vector of key/value pairs from a sequence of "K1=V1,K2=V2,.."
 // "a=AAA,b=BBB,c=CCC,.." => {("a","AAA"),("b","BBB"),("c", "CCC"),...}
 inline std::unordered_map<std::string, std::string> extract_key_vals_(const std::string &str) {
     std::string token;
@@ -72,7 +71,7 @@ inline std::unordered_map<std::string, std::string> extract_key_vals_(const std:
 }

 SPDLOG_INLINE void load_levels(const std::string &input) {
-    if (input.empty() || input.size() > 512) {
+    if (input.empty() || input.size() >= 32768) {
         return;
     }

@@ -82,14 +81,14 @@ SPDLOG_INLINE void load_levels(const std::string &input) {
     bool global_level_found = false;

     for (auto &name_level : key_vals) {
-        auto &logger_name = name_level.first;
-        auto level_name = to_lower_(name_level.second);
+        const auto &logger_name = name_level.first;
+        const auto &level_name = to_lower_(name_level.second);
         auto level = level::from_str(level_name);
         // ignore unrecognized level names
         if (level == level::off && level_name != "off") {
             continue;
         }
-        if (logger_name.empty())  // no logger name indicate global level
+        if (logger_name.empty())  // no logger name indicates global level
         {
             global_level_found = true;
             global_level = level;
diff --git a/deps/LIEF/third-party/spdlog/include/spdlog/cfg/helpers.h b/deps/LIEF/third-party/spdlog/include/spdlog/cfg/helpers.h
index c02381891c3..d09a1e97840 100644
--- a/deps/LIEF/third-party/spdlog/include/spdlog/cfg/helpers.h
+++ b/deps/LIEF/third-party/spdlog/include/spdlog/cfg/helpers.h
@@ -25,5 +25,5 @@ SPDLOG_API void load_levels(const std::string &txt);
 }  // namespace spdlog

 #ifdef SPDLOG_HEADER_ONLY
-    #include "helpers-inl.h"
+#include "helpers-inl.h"
 #endif  // SPDLOG_HEADER_ONLY
diff --git a/deps/LIEF/third-party/spdlog/include/spdlog/common-inl.h b/deps/LIEF/third-party/spdlog/include/spdlog/common-inl.h
index a8a0453c14d..f35901c5a19 100644
--- a/deps/LIEF/third-party/spdlog/include/spdlog/common-inl.h
+++ b/deps/LIEF/third-party/spdlog/include/spdlog/common-inl.h
@@ -4,7 +4,7 @@
 #pragma once

 #ifndef SPDLOG_HEADER_ONLY
-    #include <spdlog/common.h>
+#include <spdlog/common.h>
 #endif

 #include <algorithm>
diff --git a/deps/LIEF/third-party/spdlog/include/spdlog/common.h b/deps/LIEF/third-party/spdlog/include/spdlog/common.h
index ba9a2e75f1d..20dbca453eb 100644
--- a/deps/LIEF/third-party/spdlog/include/spdlog/common.h
+++ b/deps/LIEF/third-party/spdlog/include/spdlog/common.h
@@ -17,57 +17,57 @@
 #include <type_traits>

 #ifdef SPDLOG_USE_STD_FORMAT
-    #include <version>
-    #if __cpp_lib_format >= 202207L
-        #include <format>
-    #else
-        #include <string_view>
-    #endif
+#include <version>
+#if __cpp_lib_format >= 202207L
+#include <format>
+#else
+#include <string_view>
+#endif
 #endif

 #ifdef SPDLOG_COMPILED_LIB
-    #undef SPDLOG_HEADER_ONLY
-    #if defined(SPDLOG_SHARED_LIB)
-        #if defined(_WIN32)
-            #ifdef spdlog_EXPORTS
-                #define SPDLOG_API __declspec(dllexport)
-            #else  // !spdlog_EXPORTS
-                #define SPDLOG_API __declspec(dllimport)
-            #endif
-        #else  // !defined(_WIN32)
-            #define SPDLOG_API __attribute__((visibility("default")))
-        #endif
-    #else  // !defined(SPDLOG_SHARED_LIB)
-        #define SPDLOG_API
-    #endif
-    #define SPDLOG_INLINE
+#undef SPDLOG_HEADER_ONLY
+#if defined(SPDLOG_SHARED_LIB)
+#if defined(_WIN32)
+#ifdef spdlog_EXPORTS
+#define SPDLOG_API __declspec(dllexport)
+#else  // !spdlog_EXPORTS
+#define SPDLOG_API __declspec(dllimport)
+#endif
+#else  // !defined(_WIN32)
+#define SPDLOG_API __attribute__((visibility("default")))
+#endif
+#else  // !defined(SPDLOG_SHARED_LIB)
+#define SPDLOG_API
+#endif
+#define SPDLOG_INLINE
 #else  // !defined(SPDLOG_COMPILED_LIB)
-    #define SPDLOG_API
-    #define SPDLOG_HEADER_ONLY
-    #define SPDLOG_INLINE inline
+#define SPDLOG_API
+#define SPDLOG_HEADER_ONLY
+#define SPDLOG_INLINE inline
 #endif  // #ifdef SPDLOG_COMPILED_LIB

 #include <spdlog/fmt/fmt.h>

 #if !defined(SPDLOG_USE_STD_FORMAT) && \
     FMT_VERSION >= 80000  // backward compatibility with fmt versions older than 8
-    #define SPDLOG_FMT_RUNTIME(format_string) fmt::runtime(format_string)
-    #define SPDLOG_FMT_STRING(format_string) FMT_STRING(format_string)
-    #if defined(SPDLOG_WCHAR_FILENAMES) || defined(SPDLOG_WCHAR_TO_UTF8_SUPPORT)
-        #include <spdlog/fmt/xchar.h>
-    #endif
+#define SPDLOG_FMT_RUNTIME(format_string) fmt::runtime(format_string)
+#define SPDLOG_FMT_STRING(format_string) FMT_STRING(format_string)
+#if defined(SPDLOG_WCHAR_FILENAMES) || defined(SPDLOG_WCHAR_TO_UTF8_SUPPORT)
+#include <spdlog/fmt/xchar.h>
+#endif
 #else
-    #define SPDLOG_FMT_RUNTIME(format_string) format_string
-    #define SPDLOG_FMT_STRING(format_string) format_string
+#define SPDLOG_FMT_RUNTIME(format_string) format_string
+#define SPDLOG_FMT_STRING(format_string) format_string
 #endif

 // visual studio up to 2013 does not support noexcept nor constexpr
 #if defined(_MSC_VER) && (_MSC_VER < 1900)
-    #define SPDLOG_NOEXCEPT _NOEXCEPT
-    #define SPDLOG_CONSTEXPR
+#define SPDLOG_NOEXCEPT _NOEXCEPT
+#define SPDLOG_CONSTEXPR
 #else
-    #define SPDLOG_NOEXCEPT noexcept
-    #define SPDLOG_CONSTEXPR constexpr
+#define SPDLOG_NOEXCEPT noexcept
+#define SPDLOG_CONSTEXPR constexpr
 #endif

 // If building with std::format, can just use constexpr, otherwise if building with fmt
@@ -76,48 +76,48 @@
 // depending on the compiler
 // If fmt determines it can't use constexpr, we should inline the function instead
 #ifdef SPDLOG_USE_STD_FORMAT
-    #define SPDLOG_CONSTEXPR_FUNC constexpr
+#define SPDLOG_CONSTEXPR_FUNC constexpr
 #else  // Being built with fmt
-    #if FMT_USE_CONSTEXPR
-        #define SPDLOG_CONSTEXPR_FUNC FMT_CONSTEXPR
-    #else
-        #define SPDLOG_CONSTEXPR_FUNC inline
-    #endif
+#if FMT_USE_CONSTEXPR
+#define SPDLOG_CONSTEXPR_FUNC FMT_CONSTEXPR
+#else
+#define SPDLOG_CONSTEXPR_FUNC inline
+#endif
 #endif

 #if defined(__GNUC__) || defined(__clang__)
-    #define SPDLOG_DEPRECATED __attribute__((deprecated))
+#define SPDLOG_DEPRECATED __attribute__((deprecated))
 #elif defined(_MSC_VER)
-    #define SPDLOG_DEPRECATED __declspec(deprecated)
+#define SPDLOG_DEPRECATED __declspec(deprecated)
 #else
-    #define SPDLOG_DEPRECATED
+#define SPDLOG_DEPRECATED
 #endif

 // disable thread local on msvc 2013
 #ifndef SPDLOG_NO_TLS
-    #if (defined(_MSC_VER) && (_MSC_VER < 1900)) || defined(__cplusplus_winrt)
-        #define SPDLOG_NO_TLS 1
-    #endif
+#if (defined(_MSC_VER) && (_MSC_VER < 1900)) || defined(__cplusplus_winrt)
+#define SPDLOG_NO_TLS 1
+#endif
 #endif

 #ifndef SPDLOG_FUNCTION
-    #define SPDLOG_FUNCTION static_cast<const char *>(__FUNCTION__)
+#define SPDLOG_FUNCTION static_cast<const char *>(__FUNCTION__)
 #endif

 #ifdef SPDLOG_NO_EXCEPTIONS
-    #define SPDLOG_TRY
-    #define SPDLOG_THROW(ex)                               \
-        do {                                               \
-            printf("spdlog fatal error: %s\n", ex.what()); \
-            std::abort();                                  \
-        } while (0)
-    #define SPDLOG_CATCH_STD
+#define SPDLOG_TRY
+#define SPDLOG_THROW(ex)                               \
+    do {                                               \
+        printf("spdlog fatal error: %s\n", ex.what()); \
+        std::abort();                                  \
+    } while (0)
+#define SPDLOG_CATCH_STD
 #else
-    #define SPDLOG_TRY try
-    #define SPDLOG_THROW(ex) throw(ex)
-    #define SPDLOG_CATCH_STD             \
-        catch (const std::exception &) { \
-        }
+#define SPDLOG_TRY try
+#define SPDLOG_THROW(ex) throw(ex)
+#define SPDLOG_CATCH_STD             \
+    catch (const std::exception &) { \
+    }
 #endif

 namespace spdlog {
@@ -130,12 +130,12 @@ class sink;

 #if defined(_WIN32) && defined(SPDLOG_WCHAR_FILENAMES)
 using filename_t = std::wstring;
-    // allow macro expansion to occur in SPDLOG_FILENAME_T
-    #define SPDLOG_FILENAME_T_INNER(s) L##s
-    #define SPDLOG_FILENAME_T(s) SPDLOG_FILENAME_T_INNER(s)
+// allow macro expansion to occur in SPDLOG_FILENAME_T
+#define SPDLOG_FILENAME_T_INNER(s) L##s
+#define SPDLOG_FILENAME_T(s) SPDLOG_FILENAME_T_INNER(s)
 #else
 using filename_t = std::string;
-    #define SPDLOG_FILENAME_T(s) s
+#define SPDLOG_FILENAME_T(s) s
 #endif

 using log_clock = std::chrono::system_clock;
@@ -149,28 +149,28 @@ using string_view_t = std::string_view;
 using memory_buf_t = std::string;

 template <typename... Args>
-    #if __cpp_lib_format >= 202207L
+#if __cpp_lib_format >= 202207L
 using format_string_t = std::format_string<Args...>;
-    #else
+#else
 using format_string_t = std::string_view;
-    #endif
+#endif

 template <class T, class Char = char>
 struct is_convertible_to_basic_format_string
     : std::integral_constant<bool, std::is_convertible<T, std::basic_string_view<Char>>::value> {};

-    #if defined(SPDLOG_WCHAR_FILENAMES) || defined(SPDLOG_WCHAR_TO_UTF8_SUPPORT)
+#if defined(SPDLOG_WCHAR_FILENAMES) || defined(SPDLOG_WCHAR_TO_UTF8_SUPPORT)
 using wstring_view_t = std::wstring_view;
 using wmemory_buf_t = std::wstring;

 template <typename... Args>
-        #if __cpp_lib_format >= 202207L
+#if __cpp_lib_format >= 202207L
 using wformat_string_t = std::wformat_string<Args...>;
-        #else
+#else
 using wformat_string_t = std::wstring_view;
-        #endif
-    #endif
-    #define SPDLOG_BUF_TO_STRING(x) x
+#endif
+#endif
+#define SPDLOG_BUF_TO_STRING(x) x
 #else  // use fmt lib instead of std::format
 namespace fmt_lib = fmt;

@@ -184,11 +184,11 @@ template <class T>
 using remove_cvref_t = typename std::remove_cv<typename std::remove_reference<T>::type>::type;

 template <typename Char>
-    #if FMT_VERSION >= 90101
+#if FMT_VERSION >= 90101
 using fmt_runtime_string = fmt::runtime_format_string<Char>;
-    #else
+#else
 using fmt_runtime_string = fmt::basic_runtime<Char>;
-    #endif
+#endif

 // clang doesn't like SFINAE disabled constructor in std::is_convertible<> so have to repeat the
 // condition from basic_format_string here, in addition, fmt::basic_runtime<Char> is only
@@ -200,21 +200,21 @@ struct is_convertible_to_basic_format_string
                                  std::is_same<remove_cvref_t<T>, fmt_runtime_string<Char>>::value> {
 };

-    #if defined(SPDLOG_WCHAR_FILENAMES) || defined(SPDLOG_WCHAR_TO_UTF8_SUPPORT)
+#if defined(SPDLOG_WCHAR_FILENAMES) || defined(SPDLOG_WCHAR_TO_UTF8_SUPPORT)
 using wstring_view_t = fmt::basic_string_view<wchar_t>;
 using wmemory_buf_t = fmt::basic_memory_buffer<wchar_t, 250>;

 template <typename... Args>
 using wformat_string_t = fmt::wformat_string<Args...>;
-    #endif
-    #define SPDLOG_BUF_TO_STRING(x) fmt::to_string(x)
+#endif
+#define SPDLOG_BUF_TO_STRING(x) fmt::to_string(x)
 #endif

 #ifdef SPDLOG_WCHAR_TO_UTF8_SUPPORT
-    #ifndef _WIN32
-        #error SPDLOG_WCHAR_TO_UTF8_SUPPORT only supported on windows
-    #endif  // _WIN32
-#endif      // SPDLOG_WCHAR_TO_UTF8_SUPPORT
+#ifndef _WIN32
+#error SPDLOG_WCHAR_TO_UTF8_SUPPORT only supported on windows
+#endif  // _WIN32
+#endif  // SPDLOG_WCHAR_TO_UTF8_SUPPORT

 template <class T>
 struct is_convertible_to_any_format_string
@@ -237,7 +237,7 @@ using level_t = std::atomic<int>;
 #define SPDLOG_LEVEL_OFF 6

 #if !defined(SPDLOG_ACTIVE_LEVEL)
-    #define SPDLOG_ACTIVE_LEVEL SPDLOG_LEVEL_INFO
+#define SPDLOG_ACTIVE_LEVEL SPDLOG_LEVEL_INFO
 #endif

 // Log level enum
@@ -262,18 +262,18 @@ enum level_enum : int {
 #define SPDLOG_LEVEL_NAME_OFF spdlog::string_view_t("off", 3)

 #if !defined(SPDLOG_LEVEL_NAMES)
-    #define SPDLOG_LEVEL_NAMES                                                                  \
-        {                                                                                       \
-            SPDLOG_LEVEL_NAME_TRACE, SPDLOG_LEVEL_NAME_DEBUG, SPDLOG_LEVEL_NAME_INFO,           \
-                SPDLOG_LEVEL_NAME_WARNING, SPDLOG_LEVEL_NAME_ERROR, SPDLOG_LEVEL_NAME_CRITICAL, \
-                SPDLOG_LEVEL_NAME_OFF                                                           \
-        }
+#define SPDLOG_LEVEL_NAMES                                                                  \
+    {                                                                                       \
+        SPDLOG_LEVEL_NAME_TRACE, SPDLOG_LEVEL_NAME_DEBUG, SPDLOG_LEVEL_NAME_INFO,           \
+            SPDLOG_LEVEL_NAME_WARNING, SPDLOG_LEVEL_NAME_ERROR, SPDLOG_LEVEL_NAME_CRITICAL, \
+            SPDLOG_LEVEL_NAME_OFF                                                           \
+    }
 #endif

 #if !defined(SPDLOG_SHORT_LEVEL_NAMES)

-    #define SPDLOG_SHORT_LEVEL_NAMES \
-        { "T", "D", "I", "W", "E", "C", "O" }
+#define SPDLOG_SHORT_LEVEL_NAMES \
+    { "T", "D", "I", "W", "E", "C", "O" }
 #endif

 SPDLOG_API const string_view_t &to_string_view(spdlog::level::level_enum l) SPDLOG_NOEXCEPT;
@@ -402,5 +402,5 @@ constexpr T conditional_static_cast(U value) {
 }  // namespace spdlog

 #ifdef SPDLOG_HEADER_ONLY
-    #include "common-inl.h"
+#include "common-inl.h"
 #endif
diff --git a/deps/LIEF/third-party/spdlog/include/spdlog/details/backtracer-inl.h b/deps/LIEF/third-party/spdlog/include/spdlog/details/backtracer-inl.h
index 43d1002478c..baa06b6afcb 100644
--- a/deps/LIEF/third-party/spdlog/include/spdlog/details/backtracer-inl.h
+++ b/deps/LIEF/third-party/spdlog/include/spdlog/details/backtracer-inl.h
@@ -4,7 +4,7 @@
 #pragma once

 #ifndef SPDLOG_HEADER_ONLY
-    #include <spdlog/details/backtracer.h>
+#include <spdlog/details/backtracer.h>
 #endif
 namespace spdlog {
 namespace details {
diff --git a/deps/LIEF/third-party/spdlog/include/spdlog/details/backtracer.h b/deps/LIEF/third-party/spdlog/include/spdlog/details/backtracer.h
index 541339cdc32..f9eb4b43cd0 100644
--- a/deps/LIEF/third-party/spdlog/include/spdlog/details/backtracer.h
+++ b/deps/LIEF/third-party/spdlog/include/spdlog/details/backtracer.h
@@ -41,5 +41,5 @@ public:
 }  // namespace spdlog

 #ifdef SPDLOG_HEADER_ONLY
-    #include "backtracer-inl.h"
+#include "backtracer-inl.h"
 #endif
diff --git a/deps/LIEF/third-party/spdlog/include/spdlog/details/file_helper-inl.h b/deps/LIEF/third-party/spdlog/include/spdlog/details/file_helper-inl.h
index 8742b96c7dc..c7260ec3b04 100644
--- a/deps/LIEF/third-party/spdlog/include/spdlog/details/file_helper-inl.h
+++ b/deps/LIEF/third-party/spdlog/include/spdlog/details/file_helper-inl.h
@@ -4,17 +4,15 @@
 #pragma once

 #ifndef SPDLOG_HEADER_ONLY
-    #include <spdlog/details/file_helper.h>
+#include <spdlog/details/file_helper.h>
 #endif

 #include <spdlog/common.h>
 #include <spdlog/details/os.h>

 #include <cerrno>
-#include <chrono>
 #include <cstdio>
 #include <string>
-#include <thread>
 #include <tuple>

 namespace spdlog {
diff --git a/deps/LIEF/third-party/spdlog/include/spdlog/details/file_helper.h b/deps/LIEF/third-party/spdlog/include/spdlog/details/file_helper.h
index f0e5d180e33..aba0be476fd 100644
--- a/deps/LIEF/third-party/spdlog/include/spdlog/details/file_helper.h
+++ b/deps/LIEF/third-party/spdlog/include/spdlog/details/file_helper.h
@@ -57,5 +57,5 @@ private:
 }  // namespace spdlog

 #ifdef SPDLOG_HEADER_ONLY
-    #include "file_helper-inl.h"
+#include "file_helper-inl.h"
 #endif
diff --git a/deps/LIEF/third-party/spdlog/include/spdlog/details/fmt_helper.h b/deps/LIEF/third-party/spdlog/include/spdlog/details/fmt_helper.h
index 61306003b21..b629b894d79 100644
--- a/deps/LIEF/third-party/spdlog/include/spdlog/details/fmt_helper.h
+++ b/deps/LIEF/third-party/spdlog/include/spdlog/details/fmt_helper.h
@@ -9,8 +9,8 @@
 #include <type_traits>

 #ifdef SPDLOG_USE_STD_FORMAT
-    #include <charconv>
-    #include <limits>
+#include <charconv>
+#include <limits>
 #endif

 // Some fmt helpers to efficiently format and pad ints and strings
@@ -70,13 +70,13 @@ inline unsigned int count_digits(T n) {
     return count_digits_fallback(static_cast<count_type>(n));
 #else
     return static_cast<unsigned int>(fmt::
-    // fmt 7.0.0 renamed the internal namespace to detail.
-    // See: https://github.com/fmtlib/fmt/issues/1538
-    #if FMT_VERSION < 70000
+// fmt 7.0.0 renamed the internal namespace to detail.
+// See: https://github.com/fmtlib/fmt/issues/1538
+#if FMT_VERSION < 70000
                                          internal
-    #else
+#else
                                          detail
-    #endif
+#endif
                                      ::count_digits(static_cast<count_type>(n)));
 #endif
 }
diff --git a/deps/LIEF/third-party/spdlog/include/spdlog/details/log_msg-inl.h b/deps/LIEF/third-party/spdlog/include/spdlog/details/log_msg-inl.h
index aa3a957682e..3a23dcf1797 100644
--- a/deps/LIEF/third-party/spdlog/include/spdlog/details/log_msg-inl.h
+++ b/deps/LIEF/third-party/spdlog/include/spdlog/details/log_msg-inl.h
@@ -4,7 +4,7 @@
 #pragma once

 #ifndef SPDLOG_HEADER_ONLY
-    #include <spdlog/details/log_msg.h>
+#include <spdlog/details/log_msg.h>
 #endif

 #include <spdlog/details/os.h>
diff --git a/deps/LIEF/third-party/spdlog/include/spdlog/details/log_msg.h b/deps/LIEF/third-party/spdlog/include/spdlog/details/log_msg.h
index 87df1e83327..64b4bf6f46d 100644
--- a/deps/LIEF/third-party/spdlog/include/spdlog/details/log_msg.h
+++ b/deps/LIEF/third-party/spdlog/include/spdlog/details/log_msg.h
@@ -36,5 +36,5 @@ struct SPDLOG_API log_msg {
 }  // namespace spdlog

 #ifdef SPDLOG_HEADER_ONLY
-    #include "log_msg-inl.h"
+#include "log_msg-inl.h"
 #endif
diff --git a/deps/LIEF/third-party/spdlog/include/spdlog/details/log_msg_buffer-inl.h b/deps/LIEF/third-party/spdlog/include/spdlog/details/log_msg_buffer-inl.h
index 2eb242859ea..45c33835c10 100644
--- a/deps/LIEF/third-party/spdlog/include/spdlog/details/log_msg_buffer-inl.h
+++ b/deps/LIEF/third-party/spdlog/include/spdlog/details/log_msg_buffer-inl.h
@@ -4,7 +4,7 @@
 #pragma once

 #ifndef SPDLOG_HEADER_ONLY
-    #include <spdlog/details/log_msg_buffer.h>
+#include <spdlog/details/log_msg_buffer.h>
 #endif

 namespace spdlog {
diff --git a/deps/LIEF/third-party/spdlog/include/spdlog/details/log_msg_buffer.h b/deps/LIEF/third-party/spdlog/include/spdlog/details/log_msg_buffer.h
index 1143b3ba450..c926cfaa817 100644
--- a/deps/LIEF/third-party/spdlog/include/spdlog/details/log_msg_buffer.h
+++ b/deps/LIEF/third-party/spdlog/include/spdlog/details/log_msg_buffer.h
@@ -28,5 +28,5 @@ public:
 }  // namespace spdlog

 #ifdef SPDLOG_HEADER_ONLY
-    #include "log_msg_buffer-inl.h"
+#include "log_msg_buffer-inl.h"
 #endif
diff --git a/deps/LIEF/third-party/spdlog/include/spdlog/details/mpmc_blocking_q.h b/deps/LIEF/third-party/spdlog/include/spdlog/details/mpmc_blocking_q.h
index 5848cca83f9..f153f6c2a78 100644
--- a/deps/LIEF/third-party/spdlog/include/spdlog/details/mpmc_blocking_q.h
+++ b/deps/LIEF/third-party/spdlog/include/spdlog/details/mpmc_blocking_q.h
@@ -5,8 +5,8 @@

 // multi producer-multi consumer blocking queue.
 // enqueue(..) - will block until room found to put the new message.
-// enqueue_nowait(..) - will return immediately with false if no room left in
-// the queue.
+// enqueue_nowait(..) - enqueue immediately. overruns oldest message if no
+// room left.
 // dequeue_for(..) - will block until the queue is not empty or timeout have
 // passed.

diff --git a/deps/LIEF/third-party/spdlog/include/spdlog/details/os-inl.h b/deps/LIEF/third-party/spdlog/include/spdlog/details/os-inl.h
index 3aaa6b54513..92dfe129ee1 100644
--- a/deps/LIEF/third-party/spdlog/include/spdlog/details/os-inl.h
+++ b/deps/LIEF/third-party/spdlog/include/spdlog/details/os-inl.h
@@ -4,7 +4,7 @@
 #pragma once

 #ifndef SPDLOG_HEADER_ONLY
-    #include <spdlog/details/os.h>
+#include <spdlog/details/os.h>
 #endif

 #include <spdlog/common.h>
@@ -22,51 +22,50 @@
 #include <thread>

 #ifdef _WIN32
-    #include <spdlog/details/windows_include.h>
-    #include <fileapi.h>  // for FlushFileBuffers
-    #include <io.h>       // for _get_osfhandle, _isatty, _fileno
-    #include <process.h>  // for _get_pid
+#include <spdlog/details/windows_include.h>
+#include <io.h>       // for _get_osfhandle, _isatty, _fileno
+#include <process.h>  // for _get_pid

-    #ifdef __MINGW32__
-        #include <share.h>
-    #endif
+#ifdef __MINGW32__
+#include <share.h>
+#endif

-    #if defined(SPDLOG_WCHAR_TO_UTF8_SUPPORT) || defined(SPDLOG_WCHAR_FILENAMES)
-        #include <cassert>
-        #include <limits>
-    #endif
+#if defined(SPDLOG_WCHAR_TO_UTF8_SUPPORT) || defined(SPDLOG_WCHAR_FILENAMES)
+#include <cassert>
+#include <limits>
+#endif

-    #include <direct.h>  // for _mkdir/_wmkdir
+#include <direct.h>  // for _mkdir/_wmkdir

 #else  // unix

-    #include <fcntl.h>
-    #include <unistd.h>
+#include <fcntl.h>
+#include <unistd.h>

-    #ifdef __linux__
-        #include <sys/syscall.h>  //Use gettid() syscall under linux to get thread id
+#ifdef __linux__
+#include <sys/syscall.h>  //Use gettid() syscall under linux to get thread id

-    #elif defined(_AIX)
-        #include <pthread.h>  // for pthread_getthrds_np
+#elif defined(_AIX)
+#include <pthread.h>  // for pthread_getthrds_np

-    #elif defined(__DragonFly__) || defined(__FreeBSD__)
-        #include <pthread_np.h>  // for pthread_getthreadid_np
+#elif defined(__DragonFly__) || defined(__FreeBSD__)
+#include <pthread_np.h>  // for pthread_getthreadid_np

-    #elif defined(__NetBSD__)
-        #include <lwp.h>  // for _lwp_self
+#elif defined(__NetBSD__)
+#include <lwp.h>  // for _lwp_self

-    #elif defined(__sun)
-        #include <thread.h>  // for thr_self
-    #endif
+#elif defined(__sun)
+#include <thread.h>  // for thr_self
+#endif

 #endif  // unix

 #if defined __APPLE__
-    #include <AvailabilityMacros.h>
+#include <AvailabilityMacros.h>
 #endif

-#ifndef __has_feature           // Clang - feature checking macros.
-    #define __has_feature(x) 0  // Compatibility with non-clang compilers.
+#ifndef __has_feature       // Clang - feature checking macros.
+#define __has_feature(x) 0  // Compatibility with non-clang compilers.
 #endif

 namespace spdlog {
@@ -120,12 +119,12 @@ SPDLOG_INLINE std::tm gmtime() SPDLOG_NOEXCEPT {
 // fopen_s on non windows for writing
 SPDLOG_INLINE bool fopen_s(FILE **fp, const filename_t &filename, const filename_t &mode) {
 #ifdef _WIN32
-    #ifdef SPDLOG_WCHAR_FILENAMES
+#ifdef SPDLOG_WCHAR_FILENAMES
     *fp = ::_wfsopen((filename.c_str()), mode.c_str(), _SH_DENYNO);
-    #else
+#else
     *fp = ::_fsopen((filename.c_str()), mode.c_str(), _SH_DENYNO);
-    #endif
-    #if defined(SPDLOG_PREVENT_CHILD_FD)
+#endif
+#if defined(SPDLOG_PREVENT_CHILD_FD)
     if (*fp != nullptr) {
         auto file_handle = reinterpret_cast<HANDLE>(_get_osfhandle(::_fileno(*fp)));
         if (!::SetHandleInformation(file_handle, HANDLE_FLAG_INHERIT, 0)) {
@@ -133,9 +132,9 @@ SPDLOG_INLINE bool fopen_s(FILE **fp, const filename_t &filename, const filename
             *fp = nullptr;
         }
     }
-    #endif
+#endif
 #else  // unix
-    #if defined(SPDLOG_PREVENT_CHILD_FD)
+#if defined(SPDLOG_PREVENT_CHILD_FD)
     const int mode_flag = mode == SPDLOG_FILENAME_T("ab") ? O_APPEND : O_TRUNC;
     const int fd =
         ::open((filename.c_str()), O_CREAT | O_WRONLY | O_CLOEXEC | mode_flag, mode_t(0644));
@@ -146,9 +145,9 @@ SPDLOG_INLINE bool fopen_s(FILE **fp, const filename_t &filename, const filename
     if (*fp == nullptr) {
         ::close(fd);
     }
-    #else
+#else
     *fp = ::fopen((filename.c_str()), mode.c_str());
-    #endif
+#endif
 #endif

     return *fp == nullptr;
@@ -178,11 +177,11 @@ SPDLOG_INLINE int rename(const filename_t &filename1, const filename_t &filename
 SPDLOG_INLINE bool path_exists(const filename_t &filename) SPDLOG_NOEXCEPT {
 #ifdef _WIN32
     struct _stat buffer;
-    #ifdef SPDLOG_WCHAR_FILENAMES
+#ifdef SPDLOG_WCHAR_FILENAMES
     return (::_wstat(filename.c_str(), &buffer) == 0);
-    #else
+#else
     return (::_stat(filename.c_str(), &buffer) == 0);
-    #endif
+#endif
 #else  // common linux/unix all have the stat system call
     struct stat buffer;
     return (::stat(filename.c_str(), &buffer) == 0);
@@ -190,9 +189,9 @@ SPDLOG_INLINE bool path_exists(const filename_t &filename) SPDLOG_NOEXCEPT {
 }

 #ifdef _MSC_VER
-    // avoid warning about unreachable statement at the end of filesize()
-    #pragma warning(push)
-    #pragma warning(disable : 4702)
+// avoid warning about unreachable statement at the end of filesize()
+#pragma warning(push)
+#pragma warning(disable : 4702)
 #endif

 // Return file size according to open FILE* object
@@ -202,108 +201,72 @@ SPDLOG_INLINE size_t filesize(FILE *f) {
     }
 #if defined(_WIN32) && !defined(__CYGWIN__)
     int fd = ::_fileno(f);
-    #if defined(_WIN64)  // 64 bits
+#if defined(_WIN64)  // 64 bits
     __int64 ret = ::_filelengthi64(fd);
     if (ret >= 0) {
         return static_cast<size_t>(ret);
     }

-    #else  // windows 32 bits
+#else  // windows 32 bits
     long ret = ::_filelength(fd);
     if (ret >= 0) {
         return static_cast<size_t>(ret);
     }
-    #endif
+#endif

 #else  // unix
-    // OpenBSD and AIX doesn't compile with :: before the fileno(..)
-    #if defined(__OpenBSD__) || defined(_AIX)
+// OpenBSD and AIX doesn't compile with :: before the fileno(..)
+#if defined(__OpenBSD__) || defined(_AIX)
     int fd = fileno(f);
-    #else
+#else
     int fd = ::fileno(f);
-    #endif
-    // 64 bits(but not in osx, linux/musl or cygwin, where fstat64 is deprecated)
-    #if ((defined(__linux__) && defined(__GLIBC__)) || defined(__sun) || defined(_AIX)) && \
-        (defined(__LP64__) || defined(_LP64))
+#endif
+// 64 bits(but not in osx, linux/musl or cygwin, where fstat64 is deprecated)
+#if ((defined(__linux__) && defined(__GLIBC__)) || defined(__sun) || defined(_AIX)) && \
+    (defined(__LP64__) || defined(_LP64))
     struct stat64 st;
     if (::fstat64(fd, &st) == 0) {
         return static_cast<size_t>(st.st_size);
     }
-    #else  // other unix or linux 32 bits or cygwin
+#else  // other unix or linux 32 bits or cygwin
     struct stat st;
     if (::fstat(fd, &st) == 0) {
         return static_cast<size_t>(st.st_size);
     }
-    #endif
+#endif
 #endif
     throw_spdlog_ex("Failed getting file size from fd", errno);
     return 0;  // will not be reached.
 }

 #ifdef _MSC_VER
-    #pragma warning(pop)
+#pragma warning(pop)
 #endif

-// Return utc offset in minutes or throw spdlog_ex on failure
-SPDLOG_INLINE int utc_minutes_offset(const std::tm &tm) {
+#if !defined(SPDLOG_NO_TZ_OFFSET)
 #ifdef _WIN32
-    #if _WIN32_WINNT < _WIN32_WINNT_WS08
-    TIME_ZONE_INFORMATION tzinfo;
-    auto rv = ::GetTimeZoneInformation(&tzinfo);
-    #else
-    DYNAMIC_TIME_ZONE_INFORMATION tzinfo;
-    auto rv = ::GetDynamicTimeZoneInformation(&tzinfo);
-    #endif
-    if (rv == TIME_ZONE_ID_INVALID) throw_spdlog_ex("Failed getting timezone info. ", errno);
-
-    int offset = -tzinfo.Bias;
-    if (tm.tm_isdst) {
-        offset -= tzinfo.DaylightBias;
-    } else {
-        offset -= tzinfo.StandardBias;
+// Compare the timestamp as Local (mktime) vs UTC (_mkgmtime) to get the offset.
+SPDLOG_INLINE int utc_minutes_offset(const std::tm &tm) {
+    std::tm local_tm = tm;  // copy since mktime might adjust it (normalize dates, set tm_isdst)
+    std::time_t local_time_t = std::mktime(&local_tm);
+    if (local_time_t == -1) {
+        return 0; // fallback
     }
-    return offset;
-#else
-
-    #if defined(sun) || defined(__sun) || defined(_AIX) ||                        \
-        (defined(__NEWLIB__) && !defined(__TM_GMTOFF)) ||                         \
-        (!defined(__APPLE__) && !defined(_BSD_SOURCE) && !defined(_GNU_SOURCE) && \
-         (!defined(_POSIX_VERSION) || (_POSIX_VERSION < 202405L)))
-    // 'tm_gmtoff' field is BSD extension and it's missing on SunOS/Solaris
-    struct helper {
-        static long int calculate_gmt_offset(const std::tm &localtm = details::os::localtime(),
-                                             const std::tm &gmtm = details::os::gmtime()) {
-            int local_year = localtm.tm_year + (1900 - 1);
-            int gmt_year = gmtm.tm_year + (1900 - 1);
-
-            long int days = (
-                // difference in day of year
-                localtm.tm_yday -
-                gmtm.tm_yday
-
-                // + intervening leap days
-                + ((local_year >> 2) - (gmt_year >> 2)) - (local_year / 100 - gmt_year / 100) +
-                ((local_year / 100 >> 2) - (gmt_year / 100 >> 2))
-
-                // + difference in years * 365 */
-                + static_cast<long int>(local_year - gmt_year) * 365);
-
-            long int hours = (24 * days) + (localtm.tm_hour - gmtm.tm_hour);
-            long int mins = (60 * hours) + (localtm.tm_min - gmtm.tm_min);
-            long int secs = (60 * mins) + (localtm.tm_sec - gmtm.tm_sec);
-
-            return secs;
-        }
-    };
-
-    auto offset_seconds = helper::calculate_gmt_offset(tm);
-    #else
-    auto offset_seconds = tm.tm_gmtoff;
-    #endif

+    std::time_t utc_time_t = _mkgmtime(&local_tm);
+    if (utc_time_t == -1) {
+        return 0; // fallback
+    }
+    auto offset_seconds = utc_time_t - local_time_t;
     return static_cast<int>(offset_seconds / 60);
-#endif
 }
+#else
+// On unix simply use tm_gmtoff
+SPDLOG_INLINE int utc_minutes_offset(const std::tm &tm) {
+    return static_cast<int>(tm.tm_gmtoff / 60);
+}
+#endif  // _WIN32
+#endif  // SPDLOG_NO_TZ_OFFSET

 // Return current thread id as size_t
 // It exists because the std::this_thread::get_id() is much slower(especially
@@ -312,9 +275,9 @@ SPDLOG_INLINE size_t _thread_id() SPDLOG_NOEXCEPT {
 #ifdef _WIN32
     return static_cast<size_t>(::GetCurrentThreadId());
 #elif defined(__linux__)
-    #if defined(__ANDROID__) && defined(__ANDROID_API__) && (__ANDROID_API__ < 21)
-        #define SYS_gettid __NR_gettid
-    #endif
+#if defined(__ANDROID__) && defined(__ANDROID_API__) && (__ANDROID_API__ < 21)
+#define SYS_gettid __NR_gettid
+#endif
     return static_cast<size_t>(::syscall(SYS_gettid));
 #elif defined(_AIX)
     struct __pthrdsinfo buf;
@@ -333,25 +296,25 @@ SPDLOG_INLINE size_t _thread_id() SPDLOG_NOEXCEPT {
     return static_cast<size_t>(::thr_self());
 #elif __APPLE__
     uint64_t tid;
-    // There is no pthread_threadid_np prior to Mac OS X 10.6, and it is not supported on any PPC,
-    // including 10.6.8 Rosetta. __POWERPC__ is Apple-specific define encompassing ppc and ppc64.
-    #ifdef MAC_OS_X_VERSION_MAX_ALLOWED
+// There is no pthread_threadid_np prior to Mac OS X 10.6, and it is not supported on any PPC,
+// including 10.6.8 Rosetta. __POWERPC__ is Apple-specific define encompassing ppc and ppc64.
+#ifdef MAC_OS_X_VERSION_MAX_ALLOWED
     {
-        #if (MAC_OS_X_VERSION_MAX_ALLOWED < 1060) || defined(__POWERPC__)
+#if (MAC_OS_X_VERSION_MAX_ALLOWED < 1060) || defined(__POWERPC__)
         tid = pthread_mach_thread_np(pthread_self());
-        #elif MAC_OS_X_VERSION_MIN_REQUIRED < 1060
+#elif MAC_OS_X_VERSION_MIN_REQUIRED < 1060
         if (&pthread_threadid_np) {
             pthread_threadid_np(nullptr, &tid);
         } else {
             tid = pthread_mach_thread_np(pthread_self());
         }
-        #else
+#else
         pthread_threadid_np(nullptr, &tid);
-        #endif
+#endif
     }
-    #else
+#else
     pthread_threadid_np(nullptr, &tid);
-    #endif
+#endif
     return static_cast<size_t>(tid);
 #else  // Default to standard C++11 (other Unix)
     return static_cast<size_t>(std::hash<std::thread::id>()(std::this_thread::get_id()));
@@ -490,7 +453,7 @@ SPDLOG_INLINE void utf8_to_wstrbuf(string_view_t str, wmemory_buf_t &target) {
         result_size =
             ::MultiByteToWideChar(CP_UTF8, 0, str.data(), str_size, target.data(), result_size);
         if (result_size > 0) {
-            assert(result_size == target.size());
+            assert(result_size == static_cast<int>(target.size()));
             return;
         }
     }
@@ -504,11 +467,11 @@ SPDLOG_INLINE void utf8_to_wstrbuf(string_view_t str, wmemory_buf_t &target) {
 // return true on success
 static SPDLOG_INLINE bool mkdir_(const filename_t &path) {
 #ifdef _WIN32
-    #ifdef SPDLOG_WCHAR_FILENAMES
+#ifdef SPDLOG_WCHAR_FILENAMES
     return ::_wmkdir(path.c_str()) == 0;
-    #else
+#else
     return ::_mkdir(path.c_str()) == 0;
-    #endif
+#endif
 #else
     return ::mkdir(path.c_str(), mode_t(0755)) == 0;
 #endif
@@ -563,21 +526,22 @@ SPDLOG_INLINE filename_t dir_name(const filename_t &path) {
     return pos != filename_t::npos ? path.substr(0, pos) : filename_t{};
 }

+#ifdef _MSC_VER
+#pragma warning(push)
+#pragma warning(disable : 4996)
+#endif  // _MSC_VER
 std::string SPDLOG_INLINE getenv(const char *field) {
-#if defined(_MSC_VER)
-    #if defined(__cplusplus_winrt)
+#if defined(_MSC_VER) && defined(WINAPI_FAMILY) && defined(WINAPI_FAMILY_DESKTOP_APP) && \
+    (WINAPI_FAMILY != WINAPI_FAMILY_DESKTOP_APP)
     return std::string{};  // not supported under uwp
-    #else
-    size_t len = 0;
-    char buf[128];
-    bool ok = ::getenv_s(&len, buf, sizeof(buf), field) == 0;
-    return ok ? buf : std::string{};
-    #endif
-#else  // revert to getenv
-    char *buf = ::getenv(field);
+#else
+    char *buf = std::getenv(field);
     return buf ? buf : std::string{};
 #endif
 }
+#ifdef _MSC_VER
+#pragma warning(pop)
+#endif  // _MSC_VER

 // Do fsync by FILE handlerpointer
 // Return true on success
diff --git a/deps/LIEF/third-party/spdlog/include/spdlog/details/os.h b/deps/LIEF/third-party/spdlog/include/spdlog/details/os.h
index 5fd12bac1ea..8bb8d14ac3f 100644
--- a/deps/LIEF/third-party/spdlog/include/spdlog/details/os.h
+++ b/deps/LIEF/third-party/spdlog/include/spdlog/details/os.h
@@ -22,22 +22,22 @@ SPDLOG_API std::tm gmtime() SPDLOG_NOEXCEPT;

 // eol definition
 #if !defined(SPDLOG_EOL)
-    #ifdef _WIN32
-        #define SPDLOG_EOL "\r\n"
-    #else
-        #define SPDLOG_EOL "\n"
-    #endif
+#ifdef _WIN32
+#define SPDLOG_EOL "\r\n"
+#else
+#define SPDLOG_EOL "\n"
+#endif
 #endif

 SPDLOG_CONSTEXPR static const char *default_eol = SPDLOG_EOL;

 // folder separator
 #if !defined(SPDLOG_FOLDER_SEPS)
-    #ifdef _WIN32
-        #define SPDLOG_FOLDER_SEPS "\\/"
-    #else
-        #define SPDLOG_FOLDER_SEPS "/"
-    #endif
+#ifdef _WIN32
+#define SPDLOG_FOLDER_SEPS "\\/"
+#else
+#define SPDLOG_FOLDER_SEPS "/"
+#endif
 #endif

 SPDLOG_CONSTEXPR static const char folder_seps[] = SPDLOG_FOLDER_SEPS;
@@ -123,5 +123,5 @@ SPDLOG_API bool fwrite_bytes(const void *ptr, const size_t n_bytes, FILE *fp);
 }  // namespace spdlog

 #ifdef SPDLOG_HEADER_ONLY
-    #include "os-inl.h"
+#include "os-inl.h"
 #endif
diff --git a/deps/LIEF/third-party/spdlog/include/spdlog/details/periodic_worker-inl.h b/deps/LIEF/third-party/spdlog/include/spdlog/details/periodic_worker-inl.h
index 18f11fbec8c..c12e9e12386 100644
--- a/deps/LIEF/third-party/spdlog/include/spdlog/details/periodic_worker-inl.h
+++ b/deps/LIEF/third-party/spdlog/include/spdlog/details/periodic_worker-inl.h
@@ -4,7 +4,7 @@
 #pragma once

 #ifndef SPDLOG_HEADER_ONLY
-    #include <spdlog/details/periodic_worker.h>
+#include <spdlog/details/periodic_worker.h>
 #endif

 namespace spdlog {
diff --git a/deps/LIEF/third-party/spdlog/include/spdlog/details/periodic_worker.h b/deps/LIEF/third-party/spdlog/include/spdlog/details/periodic_worker.h
index d647b66ee17..2f59bb33aae 100644
--- a/deps/LIEF/third-party/spdlog/include/spdlog/details/periodic_worker.h
+++ b/deps/LIEF/third-party/spdlog/include/spdlog/details/periodic_worker.h
@@ -54,5 +54,5 @@ private:
 }  // namespace spdlog

 #ifdef SPDLOG_HEADER_ONLY
-    #include "periodic_worker-inl.h"
+#include "periodic_worker-inl.h"
 #endif
diff --git a/deps/LIEF/third-party/spdlog/include/spdlog/details/registry-inl.h b/deps/LIEF/third-party/spdlog/include/spdlog/details/registry-inl.h
index 4cbdeb753b3..576eebe08fb 100644
--- a/deps/LIEF/third-party/spdlog/include/spdlog/details/registry-inl.h
+++ b/deps/LIEF/third-party/spdlog/include/spdlog/details/registry-inl.h
@@ -4,7 +4,7 @@
 #pragma once

 #ifndef SPDLOG_HEADER_ONLY
-    #include <spdlog/details/registry.h>
+#include <spdlog/details/registry.h>
 #endif

 #include <spdlog/common.h>
@@ -13,12 +13,12 @@
 #include <spdlog/pattern_formatter.h>

 #ifndef SPDLOG_DISABLE_DEFAULT_LOGGER
-    // support for the default stdout color logger
-    #ifdef _WIN32
-        #include <spdlog/sinks/wincolor_sink.h>
-    #else
-        #include <spdlog/sinks/ansicolor_sink.h>
-    #endif
+// support for the default stdout color logger
+#ifdef _WIN32
+#include <spdlog/sinks/wincolor_sink.h>
+#else
+#include <spdlog/sinks/ansicolor_sink.h>
+#endif
 #endif  // SPDLOG_DISABLE_DEFAULT_LOGGER

 #include <chrono>
@@ -33,12 +33,12 @@ namespace details {
 SPDLOG_INLINE registry::registry()
     : formatter_(new pattern_formatter()) {
 #ifndef SPDLOG_DISABLE_DEFAULT_LOGGER
-    // create default logger (ansicolor_stdout_sink_mt or wincolor_stdout_sink_mt in windows).
-    #ifdef _WIN32
+// create default logger (ansicolor_stdout_sink_mt or wincolor_stdout_sink_mt in windows).
+#ifdef _WIN32
     auto color_sink = std::make_shared<sinks::wincolor_stdout_sink_mt>();
-    #else
+#else
     auto color_sink = std::make_shared<sinks::ansicolor_stdout_sink_mt>();
-    #endif
+#endif

     const char *default_logger_name = "";
     default_logger_ = std::make_shared<spdlog::logger>(default_logger_name, std::move(color_sink));
@@ -101,7 +101,7 @@ SPDLOG_INLINE std::shared_ptr<logger> registry::default_logger() {
 SPDLOG_INLINE logger *registry::get_default_raw() { return default_logger_.get(); }

 // set default logger.
-// default logger is stored in default_logger_ (for faster retrieval) and in the loggers_ map.
+// the default logger is stored in default_logger_ (for faster retrieval) and in the loggers_ map.
 SPDLOG_INLINE void registry::set_default_logger(std::shared_ptr<logger> new_default_logger) {
     std::lock_guard<std::mutex> lock(logger_map_mutex_);
     if (new_default_logger != nullptr) {
diff --git a/deps/LIEF/third-party/spdlog/include/spdlog/details/registry.h b/deps/LIEF/third-party/spdlog/include/spdlog/details/registry.h
index 72c70b82bf7..576803eebdc 100644
--- a/deps/LIEF/third-party/spdlog/include/spdlog/details/registry.h
+++ b/deps/LIEF/third-party/spdlog/include/spdlog/details/registry.h
@@ -127,5 +127,5 @@ private:
 }  // namespace spdlog

 #ifdef SPDLOG_HEADER_ONLY
-    #include "registry-inl.h"
+#include "registry-inl.h"
 #endif
diff --git a/deps/LIEF/third-party/spdlog/include/spdlog/details/tcp_client-windows.h b/deps/LIEF/third-party/spdlog/include/spdlog/details/tcp_client-windows.h
index bf8f7b8791b..956f9f9b62c 100644
--- a/deps/LIEF/third-party/spdlog/include/spdlog/details/tcp_client-windows.h
+++ b/deps/LIEF/third-party/spdlog/include/spdlog/details/tcp_client-windows.h
@@ -58,8 +58,81 @@ public:

     SOCKET fd() const { return socket_; }

+    int connect_socket_with_timeout(SOCKET sockfd,
+                                    const struct sockaddr *addr,
+                                    int addrlen,
+                                    const timeval &tv) {
+        // If no timeout requested, do a normal blocking connect.
+        if (tv.tv_sec == 0 && tv.tv_usec == 0) {
+            int rv = ::connect(sockfd, addr, addrlen);
+            if (rv == SOCKET_ERROR && WSAGetLastError() == WSAEISCONN) {
+                return 0;
+            }
+            return rv;
+        }
+
+        // Switch to non‐blocking mode
+        u_long mode = 1UL;
+        if (::ioctlsocket(sockfd, FIONBIO, &mode) == SOCKET_ERROR) {
+            return SOCKET_ERROR;
+        }
+
+        int rv = ::connect(sockfd, addr, addrlen);
+        int last_error = WSAGetLastError();
+        if (rv == 0 || last_error == WSAEISCONN) {
+            mode = 0UL;
+            if (::ioctlsocket(sockfd, FIONBIO, &mode) == SOCKET_ERROR) {
+                return SOCKET_ERROR;
+            }
+            return 0;
+        }
+        if (last_error != WSAEWOULDBLOCK) {
+            // Real error
+            mode = 0UL;
+            if (::ioctlsocket(sockfd, FIONBIO, &mode)) {
+                return SOCKET_ERROR;
+            }
+            return SOCKET_ERROR;
+        }
+
+        // Wait until socket is writable or timeout expires
+        fd_set wfds;
+        FD_ZERO(&wfds);
+        FD_SET(sockfd, &wfds);
+
+        rv = ::select(0, nullptr, &wfds, nullptr, const_cast<timeval *>(&tv));
+
+        // Restore blocking mode regardless of select result
+        mode = 0UL;
+        if (::ioctlsocket(sockfd, FIONBIO, &mode) == SOCKET_ERROR) {
+            return SOCKET_ERROR;
+        }
+
+        if (rv == 0) {
+            WSASetLastError(WSAETIMEDOUT);
+            return SOCKET_ERROR;
+        }
+        if (rv == SOCKET_ERROR) {
+            return SOCKET_ERROR;
+        }
+
+        int so_error = 0;
+        int len = sizeof(so_error);
+        if (::getsockopt(sockfd, SOL_SOCKET, SO_ERROR, reinterpret_cast<char *>(&so_error), &len) ==
+            SOCKET_ERROR) {
+            return SOCKET_ERROR;
+        }
+        if (so_error != 0 && so_error != WSAEISCONN) {
+            // connection failed
+            WSASetLastError(so_error);
+            return SOCKET_ERROR;
+        }
+
+        return 0;  // success
+    }
+
     // try to connect or throw on failure
-    void connect(const std::string &host, int port) {
+    void connect(const std::string &host, int port, int timeout_ms = 0) {
         if (is_connected()) {
             close();
         }
@@ -71,6 +144,10 @@ public:
         hints.ai_flags = AI_NUMERICSERV;  // port passed as as numeric value
         hints.ai_protocol = 0;

+        timeval tv;
+        tv.tv_sec = timeout_ms / 1000;
+        tv.tv_usec = (timeout_ms % 1000) * 1000;
+
         auto port_str = std::to_string(port);
         struct addrinfo *addrinfo_result;
         auto rv = ::getaddrinfo(host.c_str(), port_str.c_str(), &hints, &addrinfo_result);
@@ -82,7 +159,6 @@ public:
         }

         // Try each address until we successfully connect(2).
-
         for (auto *rp = addrinfo_result; rp != nullptr; rp = rp->ai_next) {
             socket_ = socket(rp->ai_family, rp->ai_socktype, rp->ai_protocol);
             if (socket_ == INVALID_SOCKET) {
@@ -90,18 +166,24 @@ public:
                 WSACleanup();
                 continue;
             }
-            if (::connect(socket_, rp->ai_addr, (int)rp->ai_addrlen) == 0) {
+            if (connect_socket_with_timeout(socket_, rp->ai_addr, (int)rp->ai_addrlen, tv) == 0) {
+                last_error = 0;
                 break;
-            } else {
-                last_error = ::WSAGetLastError();
-                close();
             }
+            last_error = WSAGetLastError();
+            ::closesocket(socket_);
+            socket_ = INVALID_SOCKET;
         }
         ::freeaddrinfo(addrinfo_result);
         if (socket_ == INVALID_SOCKET) {
             WSACleanup();
             throw_winsock_error_("connect failed", last_error);
         }
+        if (timeout_ms > 0) {
+            DWORD tv = static_cast<DWORD>(timeout_ms);
+            ::setsockopt(socket_, SOL_SOCKET, SO_RCVTIMEO, (const char *)&tv, sizeof(tv));
+            ::setsockopt(socket_, SOL_SOCKET, SO_SNDTIMEO, (const char *)&tv, sizeof(tv));
+        }

         // set TCP_NODELAY
         int enable_flag = 1;
diff --git a/deps/LIEF/third-party/spdlog/include/spdlog/details/tcp_client.h b/deps/LIEF/third-party/spdlog/include/spdlog/details/tcp_client.h
index 9d3c40d525e..a6f9b80dbf3 100644
--- a/deps/LIEF/third-party/spdlog/include/spdlog/details/tcp_client.h
+++ b/deps/LIEF/third-party/spdlog/include/spdlog/details/tcp_client.h
@@ -4,7 +4,7 @@
 #pragma once

 #ifdef _WIN32
-    #error include tcp_client-windows.h instead
+#error include tcp_client-windows.h instead
 #endif

 // tcp client helper
@@ -17,6 +17,7 @@
 #include <netinet/tcp.h>
 #include <sys/socket.h>
 #include <unistd.h>
+#include <fcntl.h>

 #include <string>

@@ -39,8 +40,72 @@ public:

     ~tcp_client() { close(); }

+    int connect_socket_with_timeout(int sockfd,
+                                    const struct sockaddr *addr,
+                                    socklen_t addrlen,
+                                    const timeval &tv) {
+        // Blocking connect if timeout is zero
+        if (tv.tv_sec == 0 && tv.tv_usec == 0) {
+            int rv = ::connect(sockfd, addr, addrlen);
+            if (rv < 0 && errno == EISCONN) {
+                // already connected, treat as success
+                return 0;
+            }
+            return rv;
+        }
+
+        // Non-blocking path
+        int orig_flags = ::fcntl(sockfd, F_GETFL, 0);
+        if (orig_flags < 0) {
+            return -1;
+        }
+        if (::fcntl(sockfd, F_SETFL, orig_flags | O_NONBLOCK) < 0) {
+            return -1;
+        }
+
+        int rv = ::connect(sockfd, addr, addrlen);
+        if (rv == 0 || (rv < 0 && errno == EISCONN)) {
+            // immediate connect or already connected
+            ::fcntl(sockfd, F_SETFL, orig_flags);
+            return 0;
+        }
+        if (errno != EINPROGRESS) {
+            ::fcntl(sockfd, F_SETFL, orig_flags);
+            return -1;
+        }
+
+        // wait for writability
+        fd_set wfds;
+        FD_ZERO(&wfds);
+        FD_SET(sockfd, &wfds);
+
+        struct timeval tv_copy = tv;
+        rv = ::select(sockfd + 1, nullptr, &wfds, nullptr, &tv_copy);
+        if (rv <= 0) {
+            // timeout or error
+            ::fcntl(sockfd, F_SETFL, orig_flags);
+            if (rv == 0) errno = ETIMEDOUT;
+            return -1;
+        }
+
+        // check socket error
+        int so_error = 0;
+        socklen_t len = sizeof(so_error);
+        if (::getsockopt(sockfd, SOL_SOCKET, SO_ERROR, &so_error, &len) < 0) {
+            ::fcntl(sockfd, F_SETFL, orig_flags);
+            return -1;
+        }
+        ::fcntl(sockfd, F_SETFL, orig_flags);
+        if (so_error != 0 && so_error != EISCONN) {
+            errno = so_error;
+            return -1;
+        }
+
+        return 0;
+    }
+
     // try to connect or throw on failure
-    void connect(const std::string &host, int port) {
+    void connect(const std::string &host, int port, int timeout_ms = 0) {
         close();
         struct addrinfo hints {};
         memset(&hints, 0, sizeof(struct addrinfo));
@@ -49,6 +114,10 @@ public:
         hints.ai_flags = AI_NUMERICSERV;  // port passed as as numeric value
         hints.ai_protocol = 0;

+        struct timeval tv;
+        tv.tv_sec = timeout_ms / 1000;
+        tv.tv_usec = (timeout_ms % 1000) * 1000;
+
         auto port_str = std::to_string(port);
         struct addrinfo *addrinfo_result;
         auto rv = ::getaddrinfo(host.c_str(), port_str.c_str(), &hints, &addrinfo_result);
@@ -69,8 +138,9 @@ public:
                 last_errno = errno;
                 continue;
             }
-            rv = ::connect(socket_, rp->ai_addr, rp->ai_addrlen);
-            if (rv == 0) {
+            ::fcntl(socket_, F_SETFD, FD_CLOEXEC);
+            if (connect_socket_with_timeout(socket_, rp->ai_addr, rp->ai_addrlen, tv) == 0) {
+                last_errno = 0;
                 break;
             }
             last_errno = errno;
@@ -82,6 +152,12 @@ public:
             throw_spdlog_ex("::connect failed", last_errno);
         }

+        if (timeout_ms > 0) {
+            // Set timeouts for send and recv
+            ::setsockopt(socket_, SOL_SOCKET, SO_RCVTIMEO, (const char *)&tv, sizeof(tv));
+            ::setsockopt(socket_, SOL_SOCKET, SO_SNDTIMEO, (const char *)&tv, sizeof(tv));
+        }
+
         // set TCP_NODELAY
         int enable_flag = 1;
         ::setsockopt(socket_, IPPROTO_TCP, TCP_NODELAY, reinterpret_cast<char *>(&enable_flag),
@@ -94,7 +170,7 @@ public:
 #endif

 #if !defined(SO_NOSIGPIPE) && !defined(MSG_NOSIGNAL)
-    #error "tcp_sink would raise SIGPIPE since neither SO_NOSIGPIPE nor MSG_NOSIGNAL are available"
+#error "tcp_sink would raise SIGPIPE since neither SO_NOSIGPIPE nor MSG_NOSIGNAL are available"
 #endif
     }

diff --git a/deps/LIEF/third-party/spdlog/include/spdlog/details/thread_pool-inl.h b/deps/LIEF/third-party/spdlog/include/spdlog/details/thread_pool-inl.h
index 68b55369f07..3fefc6762a4 100644
--- a/deps/LIEF/third-party/spdlog/include/spdlog/details/thread_pool-inl.h
+++ b/deps/LIEF/third-party/spdlog/include/spdlog/details/thread_pool-inl.h
@@ -4,7 +4,7 @@
 #pragma once

 #ifndef SPDLOG_HEADER_ONLY
-    #include <spdlog/details/thread_pool.h>
+#include <spdlog/details/thread_pool.h>
 #endif

 #include <cassert>
@@ -35,7 +35,7 @@ SPDLOG_INLINE thread_pool::thread_pool(size_t q_max_items,
 SPDLOG_INLINE thread_pool::thread_pool(size_t q_max_items,
                                        size_t threads_n,
                                        std::function<void()> on_thread_start)
-    : thread_pool(q_max_items, threads_n, on_thread_start, [] {}) {}
+    : thread_pool(q_max_items, threads_n, std::move(on_thread_start), [] {}) {}

 SPDLOG_INLINE thread_pool::thread_pool(size_t q_max_items, size_t threads_n)
     : thread_pool(q_max_items, threads_n, [] {}, [] {}) {}
@@ -94,8 +94,7 @@ void SPDLOG_INLINE thread_pool::worker_loop_() {
 }

 // process next message in the queue
-// return true if this thread should still be active (while no terminate msg
-// was received)
+// returns true if this thread should still be active (while no terminated msg was received)
 bool SPDLOG_INLINE thread_pool::process_next_msg_() {
     async_msg incoming_async_msg;
     q_.dequeue(incoming_async_msg);
diff --git a/deps/LIEF/third-party/spdlog/include/spdlog/details/thread_pool.h b/deps/LIEF/third-party/spdlog/include/spdlog/details/thread_pool.h
index f22b0782103..b9303cf8d79 100644
--- a/deps/LIEF/third-party/spdlog/include/spdlog/details/thread_pool.h
+++ b/deps/LIEF/third-party/spdlog/include/spdlog/details/thread_pool.h
@@ -113,5 +113,5 @@ private:
 }  // namespace spdlog

 #ifdef SPDLOG_HEADER_ONLY
-    #include "thread_pool-inl.h"
+#include "thread_pool-inl.h"
 #endif
diff --git a/deps/LIEF/third-party/spdlog/include/spdlog/details/udp_client-windows.h b/deps/LIEF/third-party/spdlog/include/spdlog/details/udp_client-windows.h
index 8b7c22324e0..fd60f280e70 100644
--- a/deps/LIEF/third-party/spdlog/include/spdlog/details/udp_client-windows.h
+++ b/deps/LIEF/third-party/spdlog/include/spdlog/details/udp_client-windows.h
@@ -16,9 +16,9 @@
 #include <ws2tcpip.h>

 #if defined(_MSC_VER)
-    #pragma comment(lib, "Ws2_32.lib")
-    #pragma comment(lib, "Mswsock.lib")
-    #pragma comment(lib, "AdvApi32.lib")
+#pragma comment(lib, "Ws2_32.lib")
+#pragma comment(lib, "Mswsock.lib")
+#pragma comment(lib, "AdvApi32.lib")
 #endif

 namespace spdlog {
diff --git a/deps/LIEF/third-party/spdlog/include/spdlog/details/udp_client.h b/deps/LIEF/third-party/spdlog/include/spdlog/details/udp_client.h
index 95826f5d91d..8d9c71faba3 100644
--- a/deps/LIEF/third-party/spdlog/include/spdlog/details/udp_client.h
+++ b/deps/LIEF/third-party/spdlog/include/spdlog/details/udp_client.h
@@ -7,7 +7,7 @@
 // Will throw on construction if the socket creation failed.

 #ifdef _WIN32
-    #error "include udp_client-windows.h instead"
+#error "include udp_client-windows.h instead"
 #endif

 #include <arpa/inet.h>
diff --git a/deps/LIEF/third-party/spdlog/include/spdlog/details/windows_include.h b/deps/LIEF/third-party/spdlog/include/spdlog/details/windows_include.h
index bbab59b1c76..10e04fc4d89 100644
--- a/deps/LIEF/third-party/spdlog/include/spdlog/details/windows_include.h
+++ b/deps/LIEF/third-party/spdlog/include/spdlog/details/windows_include.h
@@ -1,11 +1,11 @@
 #pragma once

 #ifndef NOMINMAX
-    #define NOMINMAX  // prevent windows redefining min/max
+#define NOMINMAX  // prevent windows redefining min/max
 #endif

 #ifndef WIN32_LEAN_AND_MEAN
-    #define WIN32_LEAN_AND_MEAN
+#define WIN32_LEAN_AND_MEAN
 #endif

 #include <windows.h>
diff --git a/deps/LIEF/third-party/spdlog/include/spdlog/fmt/bin_to_hex.h b/deps/LIEF/third-party/spdlog/include/spdlog/fmt/bin_to_hex.h
index 6ed68e427fa..57ef3020f1e 100644
--- a/deps/LIEF/third-party/spdlog/include/spdlog/fmt/bin_to_hex.h
+++ b/deps/LIEF/third-party/spdlog/include/spdlog/fmt/bin_to_hex.h
@@ -9,13 +9,13 @@
 #include <spdlog/common.h>

 #if defined(__has_include)
-    #if __has_include(<version>)
-        #include <version>
-    #endif
+#if __has_include(<version>)
+#include <version>
+#endif
 #endif

 #if __cpp_lib_span >= 202002L
-    #include <span>
+#include <span>
 #endif

 //
diff --git a/deps/LIEF/third-party/spdlog/include/spdlog/fmt/bundled/args.h b/deps/LIEF/third-party/spdlog/include/spdlog/fmt/bundled/args.h
index 3ff47880748..5e5f40f9ebf 100644
--- a/deps/LIEF/third-party/spdlog/include/spdlog/fmt/bundled/args.h
+++ b/deps/LIEF/third-party/spdlog/include/spdlog/fmt/bundled/args.h
@@ -71,7 +71,7 @@ class dynamic_arg_list {
  * It can be implicitly converted into `fmt::basic_format_args` for passing
  * into type-erased formatting functions such as `fmt::vformat`.
  */
-template <typename Context> class dynamic_format_arg_store {
+FMT_EXPORT template <typename Context> class dynamic_format_arg_store {
  private:
   using char_type = typename Context::char_type;

@@ -212,7 +212,7 @@ template <typename Context> class dynamic_format_arg_store {
   }

   /// Returns the number of elements in the store.
-  size_t size() const noexcept { return data_.size(); }
+  auto size() const noexcept -> size_t { return data_.size(); }
 };

 FMT_END_NAMESPACE
diff --git a/deps/LIEF/third-party/spdlog/include/spdlog/fmt/bundled/base.h b/deps/LIEF/third-party/spdlog/include/spdlog/fmt/bundled/base.h
index 87b3fd7cb48..620456b4174 100644
--- a/deps/LIEF/third-party/spdlog/include/spdlog/fmt/bundled/base.h
+++ b/deps/LIEF/third-party/spdlog/include/spdlog/fmt/bundled/base.h
@@ -21,7 +21,7 @@
 #endif

 // The fmt library version in the form major * 10000 + minor * 100 + patch.
-#define FMT_VERSION 110200
+#define FMT_VERSION 120100

 // Detect compiler versions.
 #if defined(__clang__) && !defined(__ibmxl__)
@@ -114,7 +114,9 @@
 #endif

 // Detect consteval, C++20 constexpr extensions and std::is_constant_evaluated.
-#if !defined(__cpp_lib_is_constant_evaluated)
+#ifdef FMT_USE_CONSTEVAL
+// Use the provided definition.
+#elif !defined(__cpp_lib_is_constant_evaluated)
 #  define FMT_USE_CONSTEVAL 0
 #elif FMT_CPLUSPLUS < 201709L
 #  define FMT_USE_CONSTEVAL 0
@@ -201,14 +203,6 @@
 #  define FMT_NODISCARD
 #endif

-#ifdef FMT_DEPRECATED
-// Use the provided definition.
-#elif FMT_HAS_CPP14_ATTRIBUTE(deprecated)
-#  define FMT_DEPRECATED [[deprecated]]
-#else
-#  define FMT_DEPRECATED /* deprecated */
-#endif
-
 #if FMT_GCC_VERSION || FMT_CLANG_VERSION
 #  define FMT_VISIBILITY(value) __attribute__((visibility(value)))
 #else
@@ -242,6 +236,7 @@ FMT_PRAGMA_GCC(optimize("Og"))
 #  define FMT_GCC_OPTIMIZED
 #endif
 FMT_PRAGMA_CLANG(diagnostic push)
+FMT_PRAGMA_GCC(diagnostic push)

 #ifdef FMT_ALWAYS_INLINE
 // Use the provided definition.
@@ -260,7 +255,7 @@ FMT_PRAGMA_CLANG(diagnostic push)
 #ifndef FMT_BEGIN_NAMESPACE
 #  define FMT_BEGIN_NAMESPACE \
     namespace fmt {           \
-    inline namespace v11 {
+    inline namespace v12 {
 #  define FMT_END_NAMESPACE \
     }                       \
     }
@@ -356,6 +351,9 @@ template <typename T> constexpr auto max_of(T a, T b) -> T {
   return a > b ? a : b;
 }

+FMT_NORETURN FMT_API void assert_fail(const char* file, int line,
+                                      const char* message);
+
 namespace detail {
 // Suppresses "unused variable" warnings with the method described in
 // https://herbsutter.com/2009/10/18/mailbag-shutting-up-compiler-warnings/.
@@ -396,7 +394,7 @@ FMT_NORETURN FMT_API void assert_fail(const char* file, int line,
 #  define FMT_ASSERT(condition, message)                                    \
     ((condition) /* void() fails with -Winvalid-constexpr on clang 4.0.1 */ \
          ? (void)0                                                          \
-         : fmt::detail::assert_fail(__FILE__, __LINE__, (message)))
+         : ::fmt::assert_fail(__FILE__, __LINE__, (message)))
 #endif

 #ifdef FMT_USE_INT128
@@ -419,8 +417,12 @@ inline auto map(int128_opt) -> monostate { return {}; }
 inline auto map(uint128_opt) -> monostate { return {}; }
 #endif

-#ifndef FMT_USE_BITINT
-#  define FMT_USE_BITINT (FMT_CLANG_VERSION >= 1500)
+#ifdef FMT_USE_BITINT
+// Use the provided definition.
+#elif FMT_CLANG_VERSION >= 1500 && !defined(__CUDACC__)
+#  define FMT_USE_BITINT 1
+#else
+#  define FMT_USE_BITINT 0
 #endif

 #if FMT_USE_BITINT
@@ -463,12 +465,13 @@ enum { use_utf8 = !FMT_WIN32 || is_utf8_enabled };
 static_assert(!FMT_UNICODE || use_utf8,
               "Unicode support requires compiling with /utf-8");

-template <typename T> constexpr const char* narrow(const T*) { return nullptr; }
-constexpr FMT_ALWAYS_INLINE const char* narrow(const char* s) { return s; }
+template <typename T> constexpr auto narrow(T*) -> char* { return nullptr; }
+constexpr FMT_ALWAYS_INLINE auto narrow(const char* s) -> const char* {
+  return s;
+}

 template <typename Char>
-FMT_CONSTEXPR auto compare(const Char* s1, const Char* s2, std::size_t n)
-    -> int {
+FMT_CONSTEXPR auto compare(const Char* s1, const Char* s2, size_t n) -> int {
   if (!is_constant_evaluated() && sizeof(Char) == 1) return memcmp(s1, s2, n);
   for (; n != 0; ++s1, ++s2, --n) {
     if (*s1 < *s2) return -1;
@@ -540,7 +543,7 @@ template <typename Char> class basic_string_view {
   FMT_CONSTEXPR20 basic_string_view(const Char* s) : data_(s) {
 #if FMT_HAS_BUILTIN(__builtin_strlen) || FMT_GCC_VERSION || FMT_CLANG_VERSION
     if (std::is_same<Char, char>::value && !detail::is_constant_evaluated()) {
-      size_ = __builtin_strlen(detail::narrow(s));  // strlen is not costexpr.
+      size_ = __builtin_strlen(detail::narrow(s));  // strlen is not constexpr.
       return;
     }
 #endif
@@ -616,19 +619,6 @@ template <typename Char> class basic_string_view {

 using string_view = basic_string_view<char>;

-// DEPRECATED! Will be merged with is_char and moved to detail.
-template <typename T> struct is_xchar : std::false_type {};
-template <> struct is_xchar<wchar_t> : std::true_type {};
-template <> struct is_xchar<char16_t> : std::true_type {};
-template <> struct is_xchar<char32_t> : std::true_type {};
-#ifdef __cpp_char8_t
-template <> struct is_xchar<char8_t> : std::true_type {};
-#endif
-
-// Specifies if `T` is a character (code unit) type.
-template <typename T> struct is_char : is_xchar<T> {};
-template <> struct is_char<char> : std::true_type {};
-
 template <typename T> class basic_appender;
 using appender = basic_appender<char>;

@@ -781,7 +771,7 @@ class basic_specs {
             (static_cast<unsigned>(p) << precision_shift);
   }

-  constexpr bool dynamic() const {
+  constexpr auto dynamic() const -> bool {
     return (data_ & (width_mask | precision_mask)) != 0;
   }

@@ -921,14 +911,50 @@ template <typename Char = char> class parse_context {
   FMT_CONSTEXPR void check_dynamic_spec(int arg_id);
 };

+#ifndef FMT_USE_LOCALE
+#  define FMT_USE_LOCALE (FMT_OPTIMIZE_SIZE <= 1)
+#endif
+
+// A type-erased reference to std::locale to avoid the heavy <locale> include.
+class locale_ref {
+#if FMT_USE_LOCALE
+ private:
+  const void* locale_;  // A type-erased pointer to std::locale.
+
+ public:
+  constexpr locale_ref() : locale_(nullptr) {}
+
+  template <typename Locale, FMT_ENABLE_IF(sizeof(Locale::collate) != 0)>
+  locale_ref(const Locale& loc) : locale_(&loc) {
+    // Check if std::isalpha is found via ADL to reduce the chance of misuse.
+    detail::ignore_unused(isalpha('x', loc));
+  }
+
+  inline explicit operator bool() const noexcept { return locale_ != nullptr; }
+#endif  // FMT_USE_LOCALE
+
+ public:
+  template <typename Locale> auto get() const -> Locale;
+};
+
 FMT_END_EXPORT

 namespace detail {

+// Specifies if `T` is a code unit type.
+template <typename T> struct is_code_unit : std::false_type {};
+template <> struct is_code_unit<char> : std::true_type {};
+template <> struct is_code_unit<wchar_t> : std::true_type {};
+template <> struct is_code_unit<char16_t> : std::true_type {};
+template <> struct is_code_unit<char32_t> : std::true_type {};
+#ifdef __cpp_char8_t
+template <> struct is_code_unit<char8_t> : bool_constant<is_utf8_enabled> {};
+#endif
+
 // Constructs fmt::basic_string_view<Char> from types implicitly convertible
 // to it, deducing Char. Explicitly convertible types such as the ones returned
 // from FMT_STRING are intentionally excluded.
-template <typename Char, FMT_ENABLE_IF(is_char<Char>::value)>
+template <typename Char, FMT_ENABLE_IF(is_code_unit<Char>::value)>
 constexpr auto to_string_view(const Char* s) -> basic_string_view<Char> {
   return s;
 }
@@ -1057,11 +1083,11 @@ template <bool B1, bool B2, bool... Tail> constexpr auto count() -> int {
   return (B1 ? 1 : 0) + count<B2, Tail...>();
 }

-template <typename... Args> constexpr auto count_named_args() -> int {
-  return count<is_named_arg<Args>::value...>();
+template <typename... T> constexpr auto count_named_args() -> int {
+  return count<is_named_arg<T>::value...>();
 }
-template <typename... Args> constexpr auto count_static_named_args() -> int {
-  return count<is_static_named_arg<Args>::value...>();
+template <typename... T> constexpr auto count_static_named_args() -> int {
+  return count<is_static_named_arg<T>::value...>();
 }

 template <typename Char> struct named_arg_info {
@@ -1069,7 +1095,7 @@ template <typename Char> struct named_arg_info {
   int id;
 };

-// named_args is non-const to suppress a bogus -Wmaybe-uninitalized in gcc 13.
+// named_args is non-const to suppress a bogus -Wmaybe-uninitialized in gcc 13.
 template <typename Char>
 FMT_CONSTEXPR void check_for_duplicate(named_arg_info<Char>* named_args,
                                        int named_arg_index,
@@ -1173,7 +1199,7 @@ template <typename Char> struct type_mapper {
   static auto map(ubitint<N>)
       -> conditional_t<N <= 64, unsigned long long, void>;

-  template <typename T, FMT_ENABLE_IF(is_char<T>::value)>
+  template <typename T, FMT_ENABLE_IF(is_code_unit<T>::value)>
   static auto map(T) -> conditional_t<
       std::is_same<T, char>::value || std::is_same<T, Char>::value, Char, void>;

@@ -1679,12 +1705,12 @@ template <typename... T> struct arg_pack {};
 template <typename Char, int NUM_ARGS, int NUM_NAMED_ARGS, bool DYNAMIC_NAMES>
 class format_string_checker {
  private:
-  type types_[max_of(1, NUM_ARGS)];
-  named_arg_info<Char> named_args_[max_of(1, NUM_NAMED_ARGS)];
+  type types_[max_of<size_t>(1, NUM_ARGS)];
+  named_arg_info<Char> named_args_[max_of<size_t>(1, NUM_NAMED_ARGS)];
   compile_parse_context<Char> context_;

   using parse_func = auto (*)(parse_context<Char>&) -> const Char*;
-  parse_func parse_funcs_[max_of(1, NUM_ARGS)];
+  parse_func parse_funcs_[max_of<size_t>(1, NUM_ARGS)];

  public:
   template <typename... T>
@@ -1828,12 +1854,17 @@ template <typename T> class buffer {
       void
       append(const U* begin, const U* end) {
     while (begin != end) {
+      auto size = size_;
+      auto free_cap = capacity_ - size;
       auto count = to_unsigned(end - begin);
-      try_reserve(size_ + count);
-      auto free_cap = capacity_ - size_;
-      if (free_cap < count) count = free_cap;
+      if (free_cap < count) {
+        grow_(*this, size + count);
+        size = size_;
+        free_cap = capacity_ - size;
+        count = count < free_cap ? count : free_cap;
+      }
       // A loop is faster than memcpy on small sizes.
-      T* out = ptr_ + size_;
+      T* out = ptr_ + size;
       for (size_t i = 0; i < count; ++i) out[i] = begin[i];
       size_ += count;
       begin += count;
@@ -2033,6 +2064,17 @@ struct has_back_insert_iterator_container_append<
                         .append(std::declval<InputIt>(),
                                 std::declval<InputIt>()))>> : std::true_type {};

+template <typename OutputIt, typename InputIt, typename = void>
+struct has_back_insert_iterator_container_insert_at_end : std::false_type {};
+
+template <typename OutputIt, typename InputIt>
+struct has_back_insert_iterator_container_insert_at_end<
+    OutputIt, InputIt,
+    void_t<decltype(get_container(std::declval<OutputIt>())
+                        .insert(get_container(std::declval<OutputIt>()).end(),
+                                std::declval<InputIt>(),
+                                std::declval<InputIt>()))>> : std::true_type {};
+
 // An optimized version of std::copy with the output value type (T).
 template <typename T, typename InputIt, typename OutputIt,
           FMT_ENABLE_IF(is_back_insert_iterator<OutputIt>::value&&
@@ -2047,6 +2089,8 @@ FMT_CONSTEXPR20 auto copy(InputIt begin, InputIt end, OutputIt out)
 template <typename T, typename InputIt, typename OutputIt,
           FMT_ENABLE_IF(is_back_insert_iterator<OutputIt>::value &&
                         !has_back_insert_iterator_container_append<
+                            OutputIt, InputIt>::value &&
+                        has_back_insert_iterator_container_insert_at_end<
                             OutputIt, InputIt>::value)>
 FMT_CONSTEXPR20 auto copy(InputIt begin, InputIt end, OutputIt out)
     -> OutputIt {
@@ -2056,7 +2100,11 @@ FMT_CONSTEXPR20 auto copy(InputIt begin, InputIt end, OutputIt out)
 }

 template <typename T, typename InputIt, typename OutputIt,
-          FMT_ENABLE_IF(!is_back_insert_iterator<OutputIt>::value)>
+          FMT_ENABLE_IF(!(is_back_insert_iterator<OutputIt>::value &&
+                          (has_back_insert_iterator_container_append<
+                               OutputIt, InputIt>::value ||
+                           has_back_insert_iterator_container_insert_at_end<
+                               OutputIt, InputIt>::value)))>
 FMT_CONSTEXPR auto copy(InputIt begin, InputIt end, OutputIt out) -> OutputIt {
   while (begin != end) *out++ = static_cast<T>(*begin++);
   return out;
@@ -2176,7 +2224,7 @@ template <typename Context> class value {
     static_assert(N <= 64, "unsupported _BitInt");
   }

-  template <typename T, FMT_ENABLE_IF(is_char<T>::value)>
+  template <typename T, FMT_ENABLE_IF(is_code_unit<T>::value)>
   constexpr FMT_INLINE value(T x FMT_BUILTIN) : char_value(x) {
     static_assert(
         std::is_same<T, char>::value || std::is_same<T, char_type>::value,
@@ -2252,7 +2300,7 @@ template <typename Context> class value {
         custom.value = const_cast<value_type*>(&x);
 #endif
     }
-    custom.format = format_custom<value_type, formatter<value_type, char_type>>;
+    custom.format = format_custom<value_type>;
   }

   template <typename T, FMT_ENABLE_IF(!has_formatter<T, char_type>())>
@@ -2263,10 +2311,10 @@ template <typename Context> class value {
   }

   // Formats an argument of a custom type, such as a user-defined class.
-  template <typename T, typename Formatter>
+  template <typename T>
   static void format_custom(void* arg, parse_context<char_type>& parse_ctx,
                             Context& ctx) {
-    auto f = Formatter();
+    auto f = formatter<T, char_type>();
     parse_ctx.advance_to(f.parse(parse_ctx));
     using qualified_type =
         conditional_t<has_formatter<const T, char_type>(), const T, T>;
@@ -2293,35 +2341,14 @@ struct is_output_iterator<
     enable_if_t<std::is_assignable<decltype(*std::declval<decay_t<It>&>()++),
                                    T>::value>> : std::true_type {};

-#ifndef FMT_USE_LOCALE
-#  define FMT_USE_LOCALE (FMT_OPTIMIZE_SIZE <= 1)
-#endif
-
-// A type-erased reference to an std::locale to avoid a heavy <locale> include.
-class locale_ref {
-#if FMT_USE_LOCALE
- private:
-  const void* locale_;  // A type-erased pointer to std::locale.
-
- public:
-  constexpr locale_ref() : locale_(nullptr) {}
-  template <typename Locale> locale_ref(const Locale& loc);
-
-  inline explicit operator bool() const noexcept { return locale_ != nullptr; }
-#endif  // FMT_USE_LOCALE
-
- public:
-  template <typename Locale> auto get() const -> Locale;
-};
-
 template <typename> constexpr auto encode_types() -> unsigned long long {
   return 0;
 }

-template <typename Context, typename Arg, typename... Args>
+template <typename Context, typename First, typename... T>
 constexpr auto encode_types() -> unsigned long long {
-  return static_cast<unsigned>(stored_type_constant<Arg, Context>::value) |
-         (encode_types<Context, Args...>() << packed_arg_bits);
+  return static_cast<unsigned>(stored_type_constant<First, Context>::value) |
+         (encode_types<Context, T...>() << packed_arg_bits);
 }

 template <typename Context, typename... T, size_t NUM_ARGS = sizeof...(T)>
@@ -2338,8 +2365,9 @@ template <typename Context, int NUM_ARGS, int NUM_NAMED_ARGS,
           unsigned long long DESC>
 struct named_arg_store {
   // args_[0].named_args points to named_args to avoid bloating format_args.
-  arg_t<Context, NUM_ARGS> args[1 + NUM_ARGS];
-  named_arg_info<typename Context::char_type> named_args[NUM_NAMED_ARGS];
+  arg_t<Context, NUM_ARGS> args[1u + NUM_ARGS];
+  named_arg_info<typename Context::char_type>
+      named_args[static_cast<size_t>(NUM_NAMED_ARGS)];

   template <typename... T>
   FMT_CONSTEXPR FMT_ALWAYS_INLINE named_arg_store(T&... values)
@@ -2358,8 +2386,8 @@ struct named_arg_store {
   }

   named_arg_store(const named_arg_store& rhs) = delete;
-  named_arg_store& operator=(const named_arg_store& rhs) = delete;
-  named_arg_store& operator=(named_arg_store&& rhs) = delete;
+  auto operator=(const named_arg_store& rhs) -> named_arg_store& = delete;
+  auto operator=(named_arg_store&& rhs) -> named_arg_store& = delete;
   operator const arg_t<Context, NUM_ARGS>*() const { return args + 1; }
 };

@@ -2372,7 +2400,7 @@ struct format_arg_store {
   // +1 to workaround a bug in gcc 7.5 that causes duplicated-branches warning.
   using type =
       conditional_t<NUM_NAMED_ARGS == 0,
-                    arg_t<Context, NUM_ARGS>[max_of(1, NUM_ARGS)],
+                    arg_t<Context, NUM_ARGS>[max_of<size_t>(1, NUM_ARGS)],
                     named_arg_store<Context, NUM_ARGS, NUM_NAMED_ARGS, DESC>>;
   type args;
 };
@@ -2656,22 +2684,17 @@ class context {
  private:
   appender out_;
   format_args args_;
-  FMT_NO_UNIQUE_ADDRESS detail::locale_ref loc_;
+  FMT_NO_UNIQUE_ADDRESS locale_ref loc_;

  public:
-  /// The character type for the output.
-  using char_type = char;
-
+  using char_type = char;  ///< The character type for the output.
   using iterator = appender;
   using format_arg = basic_format_arg<context>;
-  using parse_context_type FMT_DEPRECATED = parse_context<>;
-  template <typename T> using formatter_type FMT_DEPRECATED = formatter<T>;
   enum { builtin_types = FMT_BUILTIN_TYPES };

   /// Constructs a `context` object. References to the arguments are stored
   /// in the object so make sure they have appropriate lifetimes.
-  FMT_CONSTEXPR context(iterator out, format_args args,
-                        detail::locale_ref loc = {})
+  FMT_CONSTEXPR context(iterator out, format_args args, locale_ref loc = {})
       : out_(out), args_(args), loc_(loc) {}
   context(context&&) = default;
   context(const context&) = delete;
@@ -2692,7 +2715,7 @@ class context {
   // Advances the begin iterator to `it`.
   FMT_CONSTEXPR void advance_to(iterator) {}

-  FMT_CONSTEXPR auto locale() const -> detail::locale_ref { return loc_; }
+  FMT_CONSTEXPR auto locale() const -> locale_ref { return loc_; }
 };

 template <typename Char = char> struct runtime_format_string {
@@ -2779,9 +2802,6 @@ template <typename T, typename Char = char>
 concept formattable = is_formattable<remove_reference_t<T>, Char>::value;
 #endif

-template <typename T, typename Char>
-using has_formatter FMT_DEPRECATED = std::is_constructible<formatter<T, Char>>;
-
 // A formatter specialization for natively supported types.
 template <typename T, typename Char>
 struct formatter<T, Char,
@@ -2978,9 +2998,10 @@ FMT_INLINE void println(format_string<T...> fmt, T&&... args) {
   return fmt::println(stdout, fmt, static_cast<T&&>(args)...);
 }

-FMT_END_EXPORT
+FMT_PRAGMA_GCC(diagnostic pop)
 FMT_PRAGMA_CLANG(diagnostic pop)
 FMT_PRAGMA_GCC(pop_options)
+FMT_END_EXPORT
 FMT_END_NAMESPACE

 #ifdef FMT_HEADER_ONLY
diff --git a/deps/LIEF/third-party/spdlog/include/spdlog/fmt/bundled/chrono.h b/deps/LIEF/third-party/spdlog/include/spdlog/fmt/bundled/chrono.h
index e0c81589ea1..9fbeeed6798 100644
--- a/deps/LIEF/third-party/spdlog/include/spdlog/fmt/bundled/chrono.h
+++ b/deps/LIEF/third-party/spdlog/include/spdlog/fmt/bundled/chrono.h
@@ -38,6 +38,7 @@ FMT_BEGIN_NAMESPACE
 // Copyright Paul Dreik 2019
 namespace safe_duration_cast {

+// DEPRECATED!
 template <typename To, typename From,
           FMT_ENABLE_IF(!std::is_same<From, To>::value &&
                         std::numeric_limits<From>::is_signed ==
@@ -161,17 +162,6 @@ auto safe_duration_cast(std::chrono::duration<FromRep, FromPeriod> from,
                         int& ec) -> To {
   using From = std::chrono::duration<FromRep, FromPeriod>;
   ec = 0;
-  if (std::isnan(from.count())) {
-    // nan in, gives nan out. easy.
-    return To{std::numeric_limits<typename To::rep>::quiet_NaN()};
-  }
-  // maybe we should also check if from is denormal, and decide what to do about
-  // it.
-
-  // +-inf should be preserved.
-  if (std::isinf(from.count())) {
-    return To{from.count()};
-  }

   // the basic idea is that we need to convert from count() in the from type
   // to count() in the To type, by multiplying it with this:
@@ -282,8 +272,6 @@ namespace detail {
 #define FMT_NOMACRO

 template <typename T = void> struct null {};
-inline auto localtime_r FMT_NOMACRO(...) -> null<> { return null<>(); }
-inline auto localtime_s(...) -> null<> { return null<>(); }
 inline auto gmtime_r(...) -> null<> { return null<>(); }
 inline auto gmtime_s(...) -> null<> { return null<>(); }

@@ -326,7 +314,7 @@ inline auto get_classic_locale() -> const std::locale& {
 }

 template <typename CodeUnit> struct codecvt_result {
-  static constexpr const size_t max_size = 32;
+  static constexpr size_t max_size = 32;
   CodeUnit buf[max_size];
   CodeUnit* end;
 };
@@ -443,11 +431,7 @@ auto duration_cast(std::chrono::duration<FromRep, FromPeriod> from) -> To {

   using common_rep = typename std::common_type<FromRep, typename To::rep,
                                                decltype(factor::num)>::type;
-
-  int ec = 0;
-  auto count = safe_duration_cast::lossless_integral_conversion<common_rep>(
-      from.count(), ec);
-  if (ec) throw_duration_error();
+  common_rep count = from.count();  // This conversion is lossless.

   // Multiply from.count() by factor and check for overflow.
   if (const_check(factor::num != 1)) {
@@ -458,6 +442,7 @@ auto duration_cast(std::chrono::duration<FromRep, FromPeriod> from) -> To {
     count *= factor::num;
   }
   if (const_check(factor::den != 1)) count /= factor::den;
+  int ec = 0;
   auto to =
       To(safe_duration_cast::lossless_integral_conversion<typename To::rep>(
           count, ec));
@@ -471,6 +456,8 @@ template <typename To, typename FromRep, typename FromPeriod,
                             std::is_floating_point<typename To::rep>::value)>
 auto duration_cast(std::chrono::duration<FromRep, FromPeriod> from) -> To {
 #if FMT_SAFE_DURATION_CAST
+  // Preserve infinity and NaN.
+  if (!isfinite(from.count())) return static_cast<To>(from.count());
   // Throwing version of safe_duration_cast is only available for
   // integer to integer or float to float casts.
   int ec;
@@ -487,7 +474,7 @@ template <typename To, typename FromRep, typename FromPeriod,
           FMT_ENABLE_IF(
               !is_similar_arithmetic_type<FromRep, typename To::rep>::value)>
 auto duration_cast(std::chrono::duration<FromRep, FromPeriod> from) -> To {
-  // Mixed integer <-> float cast is not supported by safe_duration_cast.
+  // Mixed integer <-> float cast is not supported by safe duration_cast.
   return std::chrono::duration_cast<To>(from);
 }

@@ -501,86 +488,10 @@ auto to_time_t(sys_time<Duration> time_point) -> std::time_t {
       .count();
 }

-namespace tz {
-
-// DEPRECATED!
-struct time_zone {
-  template <typename Duration, typename LocalTime>
-  auto to_sys(LocalTime) -> sys_time<Duration> {
-    return {};
-  }
-};
-template <typename... T> auto current_zone(T...) -> time_zone* {
-  return nullptr;
-}
-
-template <typename... T> void _tzset(T...) {}
-}  // namespace tz
-
-// DEPRECATED!
-inline void tzset_once() {
-  static bool init = []() {
-    using namespace tz;
-    _tzset();
-    return false;
-  }();
-  ignore_unused(init);
-}
 }  // namespace detail

 FMT_BEGIN_EXPORT

-/**
- * Converts given time since epoch as `std::time_t` value into calendar time,
- * expressed in local time. Unlike `std::localtime`, this function is
- * thread-safe on most platforms.
- */
-FMT_DEPRECATED inline auto localtime(std::time_t time) -> std::tm {
-  struct dispatcher {
-    std::time_t time_;
-    std::tm tm_;
-
-    inline dispatcher(std::time_t t) : time_(t) {}
-
-    inline auto run() -> bool {
-      using namespace fmt::detail;
-      return handle(localtime_r(&time_, &tm_));
-    }
-
-    inline auto handle(std::tm* tm) -> bool { return tm != nullptr; }
-
-    inline auto handle(detail::null<>) -> bool {
-      using namespace fmt::detail;
-      return fallback(localtime_s(&tm_, &time_));
-    }
-
-    inline auto fallback(int res) -> bool { return res == 0; }
-
-#if !FMT_MSC_VERSION
-    inline auto fallback(detail::null<>) -> bool {
-      using namespace fmt::detail;
-      std::tm* tm = std::localtime(&time_);
-      if (tm) tm_ = *tm;
-      return tm != nullptr;
-    }
-#endif
-  };
-  dispatcher lt(time);
-  // Too big time values may be unsupported.
-  if (!lt.run()) FMT_THROW(format_error("time_t value out of range"));
-  return lt.tm_;
-}
-
-#if FMT_USE_LOCAL_TIME
-template <typename Duration>
-FMT_DEPRECATED auto localtime(std::chrono::local_time<Duration> time)
-    -> std::tm {
-  using namespace std::chrono;
-  using namespace detail::tz;
-  return localtime(detail::to_time_t(current_zone()->to_sys<Duration>(time)));
-}
-#endif
-
 /**
  * Converts given time since epoch as `std::time_t` value into calendar time,
  * expressed in Coordinated Universal Time (UTC). Unlike `std::gmtime`, this
@@ -652,7 +563,7 @@ inline void write_digit2_separated(char* buf, unsigned a, unsigned b,
   // Add ASCII '0' to each digit byte and insert separators.
   digits |= 0x3030003030003030 | (usep << 16) | (usep << 40);

-  constexpr const size_t len = 8;
+  constexpr size_t len = 8;
   if (const_check(is_big_endian())) {
     char tmp[len];
     std::memcpy(tmp, &digits, len);
@@ -1000,16 +911,16 @@ template <typename T>
 struct has_tm_zone<T, void_t<decltype(T::tm_zone)>> : std::true_type {};

 template <typename T, FMT_ENABLE_IF(has_tm_zone<T>::value)>
-bool set_tm_zone(T& time, char* tz) {
+auto set_tm_zone(T& time, char* tz) -> bool {
   time.tm_zone = tz;
   return true;
 }
 template <typename T, FMT_ENABLE_IF(!has_tm_zone<T>::value)>
-bool set_tm_zone(T&, char*) {
+auto set_tm_zone(T&, char*) -> bool {
   return false;
 }

-inline char* utc() {
+inline auto utc() -> char* {
   static char tz[] = "UTC";
   return tz;
 }
@@ -1683,8 +1594,13 @@ class get_locale {

  public:
   inline get_locale(bool localized, locale_ref loc) : has_locale_(localized) {
-    if (localized)
-      ::new (&locale_) std::locale(loc.template get<std::locale>());
+    if (!localized) return;
+    ignore_unused(loc);
+    ::new (&locale_) std::locale(
+#if FMT_USE_LOCALE
+        loc.template get<std::locale>()
+#endif
+    );
   }
   inline ~get_locale() {
     if (has_locale_) locale_.~locale();
@@ -2230,7 +2146,7 @@ template <typename Char> struct formatter<std::tm, Char> {
     detail::handle_dynamic_spec(specs.dynamic_width(), specs.width, width_ref_,
                                 ctx);

-    auto loc_ref = specs.localized() ? ctx.locale() : detail::locale_ref();
+    auto loc_ref = specs.localized() ? ctx.locale() : locale_ref();
     detail::get_locale loc(static_cast<bool>(loc_ref), loc_ref);
     auto w = detail::tm_writer<basic_appender<Char>, Char, Duration>(
         loc, out, tm, subsecs);
diff --git a/deps/LIEF/third-party/spdlog/include/spdlog/fmt/bundled/color.h b/deps/LIEF/third-party/spdlog/include/spdlog/fmt/bundled/color.h
index 638f15b43f3..2cbc53ca304 100644
--- a/deps/LIEF/third-party/spdlog/include/spdlog/fmt/bundled/color.h
+++ b/deps/LIEF/third-party/spdlog/include/spdlog/fmt/bundled/color.h
@@ -375,19 +375,17 @@ template <typename Char> struct ansi_color_escape {
       // 10 more.
       if (is_background) value += 10u;

-      size_t index = 0;
-      buffer[index++] = static_cast<Char>('\x1b');
-      buffer[index++] = static_cast<Char>('[');
+      buffer[size++] = static_cast<Char>('\x1b');
+      buffer[size++] = static_cast<Char>('[');

       if (value >= 100u) {
-        buffer[index++] = static_cast<Char>('1');
+        buffer[size++] = static_cast<Char>('1');
         value %= 100u;
       }
-      buffer[index++] = static_cast<Char>('0' + value / 10u);
-      buffer[index++] = static_cast<Char>('0' + value % 10u);
+      buffer[size++] = static_cast<Char>('0' + value / 10u);
+      buffer[size++] = static_cast<Char>('0' + value % 10u);

-      buffer[index++] = static_cast<Char>('m');
-      buffer[index++] = static_cast<Char>('\0');
+      buffer[size++] = static_cast<Char>('m');
       return;
     }

@@ -398,7 +396,7 @@ template <typename Char> struct ansi_color_escape {
     to_esc(color.r, buffer + 7, ';');
     to_esc(color.g, buffer + 11, ';');
     to_esc(color.b, buffer + 15, 'm');
-    buffer[19] = static_cast<Char>(0);
+    size = 19;
   }
   FMT_CONSTEXPR ansi_color_escape(emphasis em) noexcept {
     uint8_t em_codes[num_emphases] = {};
@@ -411,26 +409,28 @@ template <typename Char> struct ansi_color_escape {
     if (has_emphasis(em, emphasis::conceal)) em_codes[6] = 8;
     if (has_emphasis(em, emphasis::strikethrough)) em_codes[7] = 9;

-    size_t index = 0;
+    buffer[size++] = static_cast<Char>('\x1b');
+    buffer[size++] = static_cast<Char>('[');
+
     for (size_t i = 0; i < num_emphases; ++i) {
       if (!em_codes[i]) continue;
-      buffer[index++] = static_cast<Char>('\x1b');
-      buffer[index++] = static_cast<Char>('[');
-      buffer[index++] = static_cast<Char>('0' + em_codes[i]);
-      buffer[index++] = static_cast<Char>('m');
+      buffer[size++] = static_cast<Char>('0' + em_codes[i]);
+      buffer[size++] = static_cast<Char>(';');
     }
-    buffer[index++] = static_cast<Char>(0);
+
+    buffer[size - 1] = static_cast<Char>('m');
   }
   FMT_CONSTEXPR operator const Char*() const noexcept { return buffer; }

   FMT_CONSTEXPR auto begin() const noexcept -> const Char* { return buffer; }
-  FMT_CONSTEXPR20 auto end() const noexcept -> const Char* {
-    return buffer + basic_string_view<Char>(buffer).size();
+  FMT_CONSTEXPR auto end() const noexcept -> const Char* {
+    return buffer + size;
   }

  private:
   static constexpr size_t num_emphases = 8;
-  Char buffer[7u + 3u * num_emphases + 1u];
+  Char buffer[7u + 4u * num_emphases] = {};
+  size_t size = 0;

   static FMT_CONSTEXPR void to_esc(uint8_t c, Char* out,
                                    char delimiter) noexcept {
diff --git a/deps/LIEF/third-party/spdlog/include/spdlog/fmt/bundled/compile.h b/deps/LIEF/third-party/spdlog/include/spdlog/fmt/bundled/compile.h
index 08d9427ff24..64eb7a20dc8 100644
--- a/deps/LIEF/third-party/spdlog/include/spdlog/fmt/bundled/compile.h
+++ b/deps/LIEF/third-party/spdlog/include/spdlog/fmt/bundled/compile.h
@@ -15,15 +15,14 @@
 #include "format.h"

 FMT_BEGIN_NAMESPACE
+FMT_BEGIN_EXPORT

 // A compile-time string which is compiled into fast formatting code.
-FMT_EXPORT class compiled_string {};
+class compiled_string {};

 template <typename S>
 struct is_compiled_string : std::is_base_of<compiled_string, S> {};

-namespace detail {
-
 /**
  * Converts a string literal `s` into a format string that will be parsed at
  * compile time and converted into efficient formatting code. Requires C++17
@@ -41,18 +40,42 @@ namespace detail {
 #  define FMT_COMPILE(s) FMT_STRING(s)
 #endif

+/**
+ * Converts a string literal into a format string that will be parsed at
+ * compile time and converted into efficient formatting code. Requires support
+ * for class types in constant template parameters (a C++20 feature).
+ *
+ *  **Example**:
+ *
+ *     // Converts 42 into std::string using the most efficient method and no
+ *     // runtime format string processing.
+ *     using namespace fmt::literals;
+ *     std::string s = fmt::format("{}"_cf, 42);
+ */
+#if FMT_USE_NONTYPE_TEMPLATE_ARGS
+inline namespace literals {
+template <detail::fixed_string Str> constexpr auto operator""_cf() {
+  return FMT_COMPILE(Str.data);
+}
+}  // namespace literals
+#endif
+
+FMT_END_EXPORT
+
+namespace detail {
+
 template <typename T, typename... Tail>
-auto first(const T& value, const Tail&...) -> const T& {
+constexpr auto first(const T& value, const Tail&...) -> const T& {
   return value;
 }

 #if defined(__cpp_if_constexpr) && defined(__cpp_return_type_deduction)
-template <typename... Args> struct type_list {};
+template <typename... T> struct type_list {};

 // Returns a reference to the argument at index N from [first, rest...].
 template <int N, typename T, typename... Args>
-constexpr const auto& get([[maybe_unused]] const T& first,
-                          [[maybe_unused]] const Args&... rest) {
+constexpr auto get([[maybe_unused]] const T& first,
+                   [[maybe_unused]] const Args&... rest) -> const auto& {
   static_assert(N < 1 + sizeof...(Args), "index is out of bounds");
   if constexpr (N == 0)
     return first;
@@ -84,8 +107,8 @@ FMT_CONSTEXPR auto get_arg_index_by_name(basic_string_view<Char> name) -> int {
 }

 template <typename Char, typename... Args>
-constexpr int get_arg_index_by_name(basic_string_view<Char> name,
-                                    type_list<Args...>) {
+constexpr auto get_arg_index_by_name(basic_string_view<Char> name,
+                                     type_list<Args...>) -> int {
   return get_arg_index_by_name<Args...>(name);
 }

@@ -105,8 +128,8 @@ template <typename Char> struct text {
   basic_string_view<Char> data;
   using char_type = Char;

-  template <typename OutputIt, typename... Args>
-  constexpr OutputIt format(OutputIt out, const Args&...) const {
+  template <typename OutputIt, typename... T>
+  constexpr auto format(OutputIt out, const T&...) const -> OutputIt {
     return write<Char>(out, data);
   }
 };
@@ -115,8 +138,8 @@ template <typename Char>
 struct is_compiled_format<text<Char>> : std::true_type {};

 template <typename Char>
-constexpr text<Char> make_text(basic_string_view<Char> s, size_t pos,
-                               size_t size) {
+constexpr auto make_text(basic_string_view<Char> s, size_t pos, size_t size)
+    -> text<Char> {
   return {{&s[pos], size}};
 }

@@ -124,8 +147,8 @@ template <typename Char> struct code_unit {
   Char value;
   using char_type = Char;

-  template <typename OutputIt, typename... Args>
-  constexpr OutputIt format(OutputIt out, const Args&...) const {
+  template <typename OutputIt, typename... T>
+  constexpr auto format(OutputIt out, const T&...) const -> OutputIt {
     *out++ = value;
     return out;
   }
@@ -133,7 +156,7 @@ template <typename Char> struct code_unit {

 // This ensures that the argument type is convertible to `const T&`.
 template <typename T, int N, typename... Args>
-constexpr const T& get_arg_checked(const Args&... args) {
+constexpr auto get_arg_checked(const Args&... args) -> const T& {
   const auto& arg = detail::get<N>(args...);
   if constexpr (detail::is_named_arg<remove_cvref_t<decltype(arg)>>()) {
     return arg.value;
@@ -146,13 +169,13 @@ template <typename Char>
 struct is_compiled_format<code_unit<Char>> : std::true_type {};

 // A replacement field that refers to argument N.
-template <typename Char, typename T, int N> struct field {
+template <typename Char, typename V, int N> struct field {
   using char_type = Char;

-  template <typename OutputIt, typename... Args>
-  constexpr OutputIt format(OutputIt out, const Args&... args) const {
-    const T& arg = get_arg_checked<T, N>(args...);
-    if constexpr (std::is_convertible<T, basic_string_view<Char>>::value) {
+  template <typename OutputIt, typename... T>
+  constexpr auto format(OutputIt out, const T&... args) const -> OutputIt {
+    const V& arg = get_arg_checked<V, N>(args...);
+    if constexpr (std::is_convertible<V, basic_string_view<Char>>::value) {
       auto s = basic_string_view<Char>(arg);
       return copy<Char>(s.begin(), s.end(), out);
     } else {
@@ -170,10 +193,10 @@ template <typename Char> struct runtime_named_field {
   basic_string_view<Char> name;

   template <typename OutputIt, typename T>
-  constexpr static bool try_format_argument(
+  constexpr static auto try_format_argument(
       OutputIt& out,
       // [[maybe_unused]] due to unused-but-set-parameter warning in GCC 7,8,9
-      [[maybe_unused]] basic_string_view<Char> arg_name, const T& arg) {
+      [[maybe_unused]] basic_string_view<Char> arg_name, const T& arg) -> bool {
     if constexpr (is_named_arg<typename std::remove_cv<T>::type>::value) {
       if (arg_name == arg.name) {
         out = write<Char>(out, arg.value);
@@ -183,8 +206,8 @@ template <typename Char> struct runtime_named_field {
     return false;
   }

-  template <typename OutputIt, typename... Args>
-  constexpr OutputIt format(OutputIt out, const Args&... args) const {
+  template <typename OutputIt, typename... T>
+  constexpr auto format(OutputIt out, const T&... args) const -> OutputIt {
     bool found = (try_format_argument(out, name, args) || ...);
     if (!found) {
       FMT_THROW(format_error("argument with specified name is not found"));
@@ -197,17 +220,17 @@ template <typename Char>
 struct is_compiled_format<runtime_named_field<Char>> : std::true_type {};

 // A replacement field that refers to argument N and has format specifiers.
-template <typename Char, typename T, int N> struct spec_field {
+template <typename Char, typename V, int N> struct spec_field {
   using char_type = Char;
-  formatter<T, Char> fmt;
+  formatter<V, Char> fmt;

-  template <typename OutputIt, typename... Args>
-  constexpr FMT_INLINE OutputIt format(OutputIt out,
-                                       const Args&... args) const {
+  template <typename OutputIt, typename... T>
+  constexpr FMT_INLINE auto format(OutputIt out, const T&... args) const
+      -> OutputIt {
     const auto& vargs =
         fmt::make_format_args<basic_format_context<OutputIt, Char>>(args...);
     basic_format_context<OutputIt, Char> ctx(out, vargs);
-    return fmt.format(get_arg_checked<T, N>(args...), ctx);
+    return fmt.format(get_arg_checked<V, N>(args...), ctx);
   }
 };

@@ -219,8 +242,8 @@ template <typename L, typename R> struct concat {
   R rhs;
   using char_type = typename L::char_type;

-  template <typename OutputIt, typename... Args>
-  constexpr OutputIt format(OutputIt out, const Args&... args) const {
+  template <typename OutputIt, typename... T>
+  constexpr auto format(OutputIt out, const T&... args) const -> OutputIt {
     out = lhs.format(out, args...);
     return rhs.format(out, args...);
   }
@@ -230,14 +253,14 @@ template <typename L, typename R>
 struct is_compiled_format<concat<L, R>> : std::true_type {};

 template <typename L, typename R>
-constexpr concat<L, R> make_concat(L lhs, R rhs) {
+constexpr auto make_concat(L lhs, R rhs) -> concat<L, R> {
   return {lhs, rhs};
 }

 struct unknown_format {};

 template <typename Char>
-constexpr size_t parse_text(basic_string_view<Char> str, size_t pos) {
+constexpr auto parse_text(basic_string_view<Char> str, size_t pos) -> size_t {
   for (size_t size = str.size(); pos != size; ++pos) {
     if (str[pos] == '{' || str[pos] == '}') break;
   }
@@ -270,8 +293,8 @@ template <typename T, typename Char> struct parse_specs_result {
 enum { manual_indexing_id = -1 };

 template <typename T, typename Char>
-constexpr parse_specs_result<T, Char> parse_specs(basic_string_view<Char> str,
-                                                  size_t pos, int next_arg_id) {
+constexpr auto parse_specs(basic_string_view<Char> str, size_t pos,
+                           int next_arg_id) -> parse_specs_result<T, Char> {
   str.remove_prefix(pos);
   auto ctx =
       compile_parse_context<Char>(str, max_value<int>(), nullptr, next_arg_id);
@@ -285,16 +308,16 @@ template <typename Char> struct arg_id_handler {
   arg_id_kind kind;
   arg_ref<Char> arg_id;

-  constexpr int on_auto() {
+  constexpr auto on_auto() -> int {
     FMT_ASSERT(false, "handler cannot be used with automatic indexing");
     return 0;
   }
-  constexpr int on_index(int id) {
+  constexpr auto on_index(int id) -> int {
     kind = arg_id_kind::index;
     arg_id = arg_ref<Char>(id);
     return 0;
   }
-  constexpr int on_name(basic_string_view<Char> id) {
+  constexpr auto on_name(basic_string_view<Char> id) -> int {
     kind = arg_id_kind::name;
     arg_id = arg_ref<Char>(id);
     return 0;
@@ -433,27 +456,28 @@ FMT_BEGIN_EXPORT

 #if defined(__cpp_if_constexpr) && defined(__cpp_return_type_deduction)

-template <typename CompiledFormat, typename... Args,
+template <typename CompiledFormat, typename... T,
           typename Char = typename CompiledFormat::char_type,
           FMT_ENABLE_IF(detail::is_compiled_format<CompiledFormat>::value)>
-FMT_INLINE std::basic_string<Char> format(const CompiledFormat& cf,
-                                          const Args&... args) {
+FMT_INLINE FMT_CONSTEXPR_STRING auto format(const CompiledFormat& cf,
+                                            const T&... args)
+    -> std::basic_string<Char> {
   auto s = std::basic_string<Char>();
   cf.format(std::back_inserter(s), args...);
   return s;
 }

-template <typename OutputIt, typename CompiledFormat, typename... Args,
+template <typename OutputIt, typename CompiledFormat, typename... T,
           FMT_ENABLE_IF(detail::is_compiled_format<CompiledFormat>::value)>
-constexpr FMT_INLINE OutputIt format_to(OutputIt out, const CompiledFormat& cf,
-                                        const Args&... args) {
+constexpr FMT_INLINE auto format_to(OutputIt out, const CompiledFormat& cf,
+                                    const T&... args) -> OutputIt {
   return cf.format(out, args...);
 }

-template <typename S, typename... Args,
+template <typename S, typename... T,
           FMT_ENABLE_IF(is_compiled_string<S>::value)>
-FMT_INLINE std::basic_string<typename S::char_type> format(const S&,
-                                                           Args&&... args) {
+FMT_INLINE FMT_CONSTEXPR_STRING auto format(const S&, T&&... args)
+    -> std::basic_string<typename S::char_type> {
   if constexpr (std::is_same<typename S::char_type, char>::value) {
     constexpr auto str = basic_string_view<typename S::char_type>(S());
     if constexpr (str.size() == 2 && str[0] == '{' && str[1] == '}') {
@@ -466,72 +490,97 @@ FMT_INLINE std::basic_string<typename S::char_type> format(const S&,
       }
     }
   }
-  constexpr auto compiled = detail::compile<Args...>(S());
+  constexpr auto compiled = detail::compile<T...>(S());
   if constexpr (std::is_same<remove_cvref_t<decltype(compiled)>,
                              detail::unknown_format>()) {
     return fmt::format(
         static_cast<basic_string_view<typename S::char_type>>(S()),
-        std::forward<Args>(args)...);
+        std::forward<T>(args)...);
   } else {
-    return fmt::format(compiled, std::forward<Args>(args)...);
+    return fmt::format(compiled, std::forward<T>(args)...);
   }
 }

-template <typename OutputIt, typename S, typename... Args,
+template <typename OutputIt, typename S, typename... T,
           FMT_ENABLE_IF(is_compiled_string<S>::value)>
-FMT_CONSTEXPR OutputIt format_to(OutputIt out, const S&, Args&&... args) {
-  constexpr auto compiled = detail::compile<Args...>(S());
+FMT_CONSTEXPR auto format_to(OutputIt out, const S&, T&&... args) -> OutputIt {
+  constexpr auto compiled = detail::compile<T...>(S());
   if constexpr (std::is_same<remove_cvref_t<decltype(compiled)>,
                              detail::unknown_format>()) {
     return fmt::format_to(
         out, static_cast<basic_string_view<typename S::char_type>>(S()),
-        std::forward<Args>(args)...);
+        std::forward<T>(args)...);
   } else {
-    return fmt::format_to(out, compiled, std::forward<Args>(args)...);
+    return fmt::format_to(out, compiled, std::forward<T>(args)...);
   }
 }
 #endif

-template <typename OutputIt, typename S, typename... Args,
+template <typename OutputIt, typename S, typename... T,
           FMT_ENABLE_IF(is_compiled_string<S>::value)>
-auto format_to_n(OutputIt out, size_t n, const S& fmt, Args&&... args)
+auto format_to_n(OutputIt out, size_t n, const S& fmt, T&&... args)
     -> format_to_n_result<OutputIt> {
   using traits = detail::fixed_buffer_traits;
   auto buf = detail::iterator_buffer<OutputIt, char, traits>(out, n);
-  fmt::format_to(std::back_inserter(buf), fmt, std::forward<Args>(args)...);
+  fmt::format_to(std::back_inserter(buf), fmt, std::forward<T>(args)...);
   return {buf.out(), buf.count()};
 }

-template <typename S, typename... Args,
+template <typename S, typename... T,
           FMT_ENABLE_IF(is_compiled_string<S>::value)>
-FMT_CONSTEXPR20 auto formatted_size(const S& fmt, const Args&... args)
-    -> size_t {
+FMT_CONSTEXPR20 auto formatted_size(const S& fmt, T&&... args) -> size_t {
   auto buf = detail::counting_buffer<>();
-  fmt::format_to(appender(buf), fmt, args...);
+  fmt::format_to(appender(buf), fmt, std::forward<T>(args)...);
   return buf.count();
 }

-template <typename S, typename... Args,
+template <typename S, typename... T,
           FMT_ENABLE_IF(is_compiled_string<S>::value)>
-void print(std::FILE* f, const S& fmt, const Args&... args) {
+void print(std::FILE* f, const S& fmt, T&&... args) {
   auto buf = memory_buffer();
-  fmt::format_to(appender(buf), fmt, args...);
+  fmt::format_to(appender(buf), fmt, std::forward<T>(args)...);
   detail::print(f, {buf.data(), buf.size()});
 }

-template <typename S, typename... Args,
+template <typename S, typename... T,
           FMT_ENABLE_IF(is_compiled_string<S>::value)>
-void print(const S& fmt, const Args&... args) {
-  print(stdout, fmt, args...);
+void print(const S& fmt, T&&... args) {
+  print(stdout, fmt, std::forward<T>(args)...);
 }

-#if FMT_USE_NONTYPE_TEMPLATE_ARGS
-inline namespace literals {
-template <detail::fixed_string Str> constexpr auto operator""_cf() {
-  return FMT_COMPILE(Str.data);
-}
-}  // namespace literals
-#endif
+template <size_t N> class static_format_result {
+ private:
+  char data[N];
+
+ public:
+  template <typename S, typename... T,
+            FMT_ENABLE_IF(is_compiled_string<S>::value)>
+  explicit FMT_CONSTEXPR static_format_result(const S& fmt, T&&... args) {
+    *fmt::format_to(data, fmt, std::forward<T>(args)...) = '\0';
+  }
+
+  auto str() const -> fmt::string_view { return {data, N - 1}; }
+  auto c_str() const -> const char* { return data; }
+};
+
+/**
+ * Formats arguments according to the format string `fmt_str` and produces
+ * a string of the exact required size at compile time. Both the format string
+ * and the arguments must be compile-time expressions.
+ *
+ * The resulting string can be accessed as a C string via `c_str()` or as
+ * a `fmt::string_view` via `str()`.
+ *
+ * **Example**:
+ *
+ *     // Produces the static string "42" at compile time.
+ *     static constexpr auto result = FMT_STATIC_FORMAT("{}", 42);
+ *     const char* s = result.c_str();
+ */
+#define FMT_STATIC_FORMAT(fmt_str, ...)                            \
+  fmt::static_format_result<                                       \
+      fmt::formatted_size(FMT_COMPILE(fmt_str), __VA_ARGS__) + 1>( \
+      FMT_COMPILE(fmt_str), __VA_ARGS__)

 FMT_END_EXPORT
 FMT_END_NAMESPACE
diff --git a/deps/LIEF/third-party/spdlog/include/spdlog/fmt/bundled/format-inl.h b/deps/LIEF/third-party/spdlog/include/spdlog/fmt/bundled/format-inl.h
index a1e01661178..945cb912a60 100644
--- a/deps/LIEF/third-party/spdlog/include/spdlog/fmt/bundled/format-inl.h
+++ b/deps/LIEF/third-party/spdlog/include/spdlog/fmt/bundled/format-inl.h
@@ -22,7 +22,7 @@

 #include "format.h"

-#if FMT_USE_LOCALE
+#if FMT_USE_LOCALE && !defined(FMT_MODULE)
 #  include <locale>
 #endif

@@ -31,14 +31,44 @@
 #endif

 FMT_BEGIN_NAMESPACE
-namespace detail {

+#ifndef FMT_CUSTOM_ASSERT_FAIL
 FMT_FUNC void assert_fail(const char* file, int line, const char* message) {
   // Use unchecked std::fprintf to avoid triggering another assertion when
   // writing to stderr fails.
-  fprintf(stderr, "%s:%d: assertion failed: %s", file, line, message);
+  std::fprintf(stderr, "%s:%d: assertion failed: %s", file, line, message);
   abort();
 }
+#endif
+
+#if FMT_USE_LOCALE
+namespace detail {
+using std::locale;
+using std::numpunct;
+using std::use_facet;
+}  // namespace detail
+#else
+namespace detail {
+struct locale {};
+template <typename Char> struct numpunct {
+  auto grouping() const -> std::string { return "\03"; }
+  auto thousands_sep() const -> Char { return ','; }
+  auto decimal_point() const -> Char { return '.'; }
+};
+template <typename Facet> Facet use_facet(locale) { return {}; }
+}  // namespace detail
+#endif  // FMT_USE_LOCALE
+
+template <typename Locale> auto locale_ref::get() const -> Locale {
+  using namespace detail;
+  static_assert(std::is_same<Locale, locale>::value, "");
+#if FMT_USE_LOCALE
+  if (locale_) return *static_cast<const locale*>(locale_);
+#endif
+  return locale();
+}
+
+namespace detail {

 FMT_FUNC void format_error_code(detail::buffer<char>& out, int error_code,
                                 string_view message) noexcept {
@@ -79,33 +109,6 @@ inline void fwrite_all(const void* ptr, size_t count, FILE* stream) {
     FMT_THROW(system_error(errno, FMT_STRING("cannot write to file")));
 }

-#if FMT_USE_LOCALE
-using std::locale;
-using std::numpunct;
-using std::use_facet;
-
-template <typename Locale>
-locale_ref::locale_ref(const Locale& loc) : locale_(&loc) {
-  static_assert(std::is_same<Locale, locale>::value, "");
-}
-#else
-struct locale {};
-template <typename Char> struct numpunct {
-  auto grouping() const -> std::string { return "\03"; }
-  auto thousands_sep() const -> Char { return ','; }
-  auto decimal_point() const -> Char { return '.'; }
-};
-template <typename Facet> Facet use_facet(locale) { return {}; }
-#endif  // FMT_USE_LOCALE
-
-template <typename Locale> auto locale_ref::get() const -> Locale {
-  static_assert(std::is_same<Locale, locale>::value, "");
-#if FMT_USE_LOCALE
-  if (locale_) return *static_cast<const locale*>(locale_);
-#endif
-  return locale();
-}
-
 template <typename Char>
 FMT_FUNC auto thousands_sep_impl(locale_ref loc) -> thousands_sep_result<Char> {
   auto&& facet = use_facet<numpunct<Char>>(loc.get<locale>());
@@ -133,14 +136,13 @@ FMT_FUNC auto write_loc(appender out, loc_value value,
 }  // namespace detail

 FMT_FUNC void report_error(const char* message) {
-#if FMT_USE_EXCEPTIONS
-  // Use FMT_THROW instead of throw to avoid bogus unreachable code warnings
-  // from MSVC.
-  FMT_THROW(format_error(message));
-#else
-  fputs(message, stderr);
-  abort();
+#if FMT_MSC_VERSION || defined(__NVCC__)
+  // Silence unreachable code warnings in MSVC and NVCC because these
+  // are nearly impossible to fix in a generic code.
+  volatile bool b = true;
+  if (!b) return;
 #endif
+  FMT_THROW(format_error(message));
 }

 template <typename Locale> typename Locale::id format_facet<Locale>::id;
@@ -174,11 +176,11 @@ inline auto operator==(basic_fp<F> x, basic_fp<F> y) -> bool {
 }

 // Compilers should be able to optimize this into the ror instruction.
-FMT_CONSTEXPR inline auto rotr(uint32_t n, uint32_t r) noexcept -> uint32_t {
+FMT_INLINE auto rotr(uint32_t n, uint32_t r) noexcept -> uint32_t {
   r &= 31;
   return (n >> r) | (n << (32 - r));
 }
-FMT_CONSTEXPR inline auto rotr(uint64_t n, uint32_t r) noexcept -> uint64_t {
+FMT_INLINE auto rotr(uint64_t n, uint32_t r) noexcept -> uint64_t {
   r &= 63;
   return (n >> r) | (n << (64 - r));
 }
@@ -275,7 +277,7 @@ template <> struct cache_accessor<float> {
   static auto get_cached_power(int k) noexcept -> uint64_t {
     FMT_ASSERT(k >= float_info<float>::min_k && k <= float_info<float>::max_k,
                "k is out of range");
-    static constexpr const uint64_t pow10_significands[] = {
+    static constexpr uint64_t pow10_significands[] = {
         0x81ceb32c4b43fcf5, 0xa2425ff75e14fc32, 0xcad2f7f5359a3b3f,
         0xfd87b5f28300ca0e, 0x9e74d1b791e07e49, 0xc612062576589ddb,
         0xf79687aed3eec552, 0x9abe14cd44753b53, 0xc16d9a0095928a28,
@@ -370,7 +372,7 @@ template <> struct cache_accessor<double> {
     FMT_ASSERT(k >= float_info<double>::min_k && k <= float_info<double>::max_k,
                "k is out of range");

-    static constexpr const uint128_fallback pow10_significands[] = {
+    static constexpr uint128_fallback pow10_significands[] = {
 #if FMT_USE_FULL_CACHE_DRAGONBOX
       {0xff77b1fcbebcdc4f, 0x25e8e89c13bb0f7b},
       {0x9faacf3df73609b1, 0x77b191618c54e9ad},
@@ -1037,7 +1039,7 @@ template <> struct cache_accessor<double> {
 #if FMT_USE_FULL_CACHE_DRAGONBOX
     return pow10_significands[k - float_info<double>::min_k];
 #else
-    static constexpr const uint64_t powers_of_5_64[] = {
+    static constexpr uint64_t powers_of_5_64[] = {
         0x0000000000000001, 0x0000000000000005, 0x0000000000000019,
         0x000000000000007d, 0x0000000000000271, 0x0000000000000c35,
         0x0000000000003d09, 0x000000000001312d, 0x000000000005f5e1,
@@ -1149,8 +1151,8 @@ auto is_left_endpoint_integer_shorter_interval(int exponent) noexcept -> bool {
          exponent <= case_shorter_interval_left_endpoint_upper_threshold;
 }

-// Remove trailing zeros from n and return the number of zeros removed (float)
-FMT_INLINE int remove_trailing_zeros(uint32_t& n, int s = 0) noexcept {
+// Remove trailing zeros from n and return the number of zeros removed (float).
+FMT_INLINE auto remove_trailing_zeros(uint32_t& n, int s = 0) noexcept -> int {
   FMT_ASSERT(n != 0, "");
   // Modular inverse of 5 (mod 2^32): (mod_inv_5 * 5) mod 2^32 = 1.
   constexpr uint32_t mod_inv_5 = 0xcccccccd;
@@ -1170,22 +1172,19 @@ FMT_INLINE int remove_trailing_zeros(uint32_t& n, int s = 0) noexcept {
   return s;
 }

-// Removes trailing zeros and returns the number of zeros removed (double)
-FMT_INLINE int remove_trailing_zeros(uint64_t& n) noexcept {
+// Removes trailing zeros and returns the number of zeros removed (double).
+FMT_INLINE auto remove_trailing_zeros(uint64_t& n) noexcept -> int {
   FMT_ASSERT(n != 0, "");

-  // This magic number is ceil(2^90 / 10^8).
-  constexpr uint64_t magic_number = 12379400392853802749ull;
-  auto nm = umul128(n, magic_number);
-
   // Is n is divisible by 10^8?
-  if ((nm.high() & ((1ull << (90 - 64)) - 1)) == 0 && nm.low() < magic_number) {
+  constexpr uint32_t ten_pow_8 = 100000000u;
+  if ((n % ten_pow_8) == 0) {
     // If yes, work with the quotient...
-    auto n32 = static_cast<uint32_t>(nm.high() >> (90 - 64));
+    auto n32 = static_cast<uint32_t>(n / ten_pow_8);
     // ... and use the 32 bit variant of the function
-    int s = remove_trailing_zeros(n32, 8);
+    int num_zeros = remove_trailing_zeros(n32, 8);
     n = n32;
-    return s;
+    return num_zeros;
   }

   // If n is not divisible by 10^8, work with n itself.
@@ -1210,7 +1209,7 @@ FMT_INLINE int remove_trailing_zeros(uint64_t& n) noexcept {

 // The main algorithm for shorter interval case
 template <typename T>
-FMT_INLINE decimal_fp<T> shorter_interval_case(int exponent) noexcept {
+FMT_INLINE auto shorter_interval_case(int exponent) noexcept -> decimal_fp<T> {
   decimal_fp<T> ret_value;
   // Compute k and beta
   const int minus_k = floor_log10_pow2_minus_log10_4_over_3(exponent);
@@ -1454,8 +1453,8 @@ FMT_FUNC void vformat_to(buffer<char>& buf, string_view fmt, format_args args,
   auto out = appender(buf);
   if (fmt.size() == 2 && equal2(fmt.data(), "{}"))
     return args.get(0).visit(default_arg_formatter<char>{out});
-  parse_format_string(
-      fmt, format_handler<char>{parse_context<char>(fmt), {out, args, loc}});
+  parse_format_string(fmt,
+                      format_handler<>{parse_context<>(fmt), {out, args, loc}});
 }

 template <typename T> struct span {
@@ -1546,10 +1545,11 @@ template <typename F> class glibc_file : public file_base<F> {

   void advance_write_buffer(size_t size) { this->file_->_IO_write_ptr += size; }

-  bool needs_flush() const {
+  auto needs_flush() const -> bool {
     if ((this->file_->_flags & line_buffered) == 0) return false;
     char* end = this->file_->_IO_write_end;
-    return memchr(end, '\n', to_unsigned(this->file_->_IO_write_ptr - end));
+    auto size = max_of<ptrdiff_t>(this->file_->_IO_write_ptr - end, 0);
+    return memchr(end, '\n', static_cast<size_t>(size));
   }

   void flush() { fflush_unlocked(this->file_); }
@@ -1573,7 +1573,7 @@ template <typename F> class apple_file : public file_base<F> {
   void init_buffer() {
     if (this->file_->_p) return;
     // Force buffer initialization by placing and removing a char in a buffer.
-    putc_unlocked(0, this->file_);
+    if (!FMT_CLANG_ANALYZER) putc_unlocked(0, this->file_);
     --this->file_->_p;
     ++this->file_->_w;
   }
@@ -1594,7 +1594,7 @@ template <typename F> class apple_file : public file_base<F> {
     this->file_->_w -= size;
   }

-  bool needs_flush() const {
+  auto needs_flush() const -> bool {
     if ((this->file_->_flags & line_buffered) == 0) return false;
     return memchr(this->file_->_p + this->file_->_w, '\n',
                   to_unsigned(-this->file_->_w));
diff --git a/deps/LIEF/third-party/spdlog/include/spdlog/fmt/bundled/format.h b/deps/LIEF/third-party/spdlog/include/spdlog/fmt/bundled/format.h
index 50e571442e5..4a6530072f8 100644
--- a/deps/LIEF/third-party/spdlog/include/spdlog/fmt/bundled/format.h
+++ b/deps/LIEF/third-party/spdlog/include/spdlog/fmt/bundled/format.h
@@ -40,7 +40,15 @@

 #include "base.h"

+// libc++ supports string_view in pre-c++17.
+#if FMT_HAS_INCLUDE(<string_view>) && \
+    (FMT_CPLUSPLUS >= 201703L || defined(_LIBCPP_VERSION))
+#  define FMT_USE_STRING_VIEW
+#endif
+
 #ifndef FMT_MODULE
+#  include <stdlib.h>  // malloc, free
+
 #  include <cmath>    // std::signbit
 #  include <cstddef>  // std::byte
 #  include <cstdint>  // uint32_t
@@ -60,11 +68,8 @@
 #    include <bit>  // std::bit_cast
 #  endif

-// libc++ supports string_view in pre-c++17.
-#  if FMT_HAS_INCLUDE(<string_view>) && \
-      (FMT_CPLUSPLUS >= 201703L || defined(_LIBCPP_VERSION))
+#  if defined(FMT_USE_STRING_VIEW)
 #    include <string_view>
-#    define FMT_USE_STRING_VIEW
 #  endif

 #  if FMT_MSC_VERSION
@@ -117,6 +122,41 @@
 #  define FMT_NOINLINE
 #endif

+#ifdef FMT_DEPRECATED
+// Use the provided definition.
+#elif FMT_HAS_CPP14_ATTRIBUTE(deprecated)
+#  define FMT_DEPRECATED [[deprecated]]
+#else
+#  define FMT_DEPRECATED /* deprecated */
+#endif
+
+// Detect constexpr std::string.
+#if !FMT_USE_CONSTEVAL
+#  define FMT_USE_CONSTEXPR_STRING 0
+#elif defined(__cpp_lib_constexpr_string) && \
+    __cpp_lib_constexpr_string >= 201907L
+#  if FMT_CLANG_VERSION && FMT_GLIBCXX_RELEASE
+// clang + libstdc++ are able to work only starting with gcc13.3
+// https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113294
+#    if FMT_GLIBCXX_RELEASE < 13
+#      define FMT_USE_CONSTEXPR_STRING 0
+#    elif FMT_GLIBCXX_RELEASE == 13 && __GLIBCXX__ < 20240521
+#      define FMT_USE_CONSTEXPR_STRING 0
+#    else
+#      define FMT_USE_CONSTEXPR_STRING 1
+#    endif
+#  else
+#    define FMT_USE_CONSTEXPR_STRING 1
+#  endif
+#else
+#  define FMT_USE_CONSTEXPR_STRING 0
+#endif
+#if FMT_USE_CONSTEXPR_STRING
+#  define FMT_CONSTEXPR_STRING constexpr
+#else
+#  define FMT_CONSTEXPR_STRING
+#endif
+
 // GCC 4.9 doesn't support qualified names in specializations.
 namespace std {
 template <typename T> struct iterator_traits<fmt::basic_appender<T>> {
@@ -129,28 +169,19 @@ template <typename T> struct iterator_traits<fmt::basic_appender<T>> {
 };
 }  // namespace std

-#ifndef FMT_THROW
-#  if FMT_USE_EXCEPTIONS
-#    if FMT_MSC_VERSION || defined(__NVCC__)
-FMT_BEGIN_NAMESPACE
-namespace detail {
-template <typename Exception> inline void do_throw(const Exception& x) {
-  // Silence unreachable code warnings in MSVC and NVCC because these
-  // are nearly impossible to fix in a generic code.
-  volatile bool b = true;
-  if (b) throw x;
-}
-}  // namespace detail
-FMT_END_NAMESPACE
-#      define FMT_THROW(x) detail::do_throw(x)
-#    else
-#      define FMT_THROW(x) throw x
-#    endif
-#  else
-#    define FMT_THROW(x) \
-      ::fmt::detail::assert_fail(__FILE__, __LINE__, (x).what())
-#  endif  // FMT_USE_EXCEPTIONS
-#endif    // FMT_THROW
+#ifdef FMT_THROW
+// Use the provided definition.
+#elif FMT_USE_EXCEPTIONS
+#  define FMT_THROW(x) throw x
+#else
+#  define FMT_THROW(x) ::fmt::assert_fail(__FILE__, __LINE__, (x).what())
+#endif
+
+#ifdef __clang_analyzer__
+#  define FMT_CLANG_ANALYZER 1
+#else
+#  define FMT_CLANG_ANALYZER 0
+#endif

 // Defining FMT_REDUCE_INT_INSTANTIATIONS to 1, will reduce the number of
 // integer formatter template instantiations to just one by only using the
@@ -491,6 +522,11 @@ template <typename T, typename OutputIt>
 constexpr auto to_pointer(OutputIt, size_t) -> T* {
   return nullptr;
 }
+template <typename T> FMT_CONSTEXPR auto to_pointer(T*& ptr, size_t n) -> T* {
+  T* begin = ptr;
+  ptr += n;
+  return begin;
+}
 template <typename T>
 FMT_CONSTEXPR20 auto to_pointer(basic_appender<T> it, size_t n) -> T* {
   buffer<T>& buf = get_container(it);
@@ -526,6 +562,8 @@ FMT_CONSTEXPR auto fill_n(OutputIt out, Size count, const T& value)
 template <typename T, typename Size>
 FMT_CONSTEXPR20 auto fill_n(T* out, Size count, char value) -> T* {
   if (is_constant_evaluated()) return fill_n<T*, Size, T>(out, count, value);
+  static_assert(sizeof(T) == 1,
+                "sizeof(T) must be 1 to use char for initialization");
   std::memset(out, value, to_unsigned(count));
   return out + count;
 }
@@ -555,10 +593,10 @@ FMT_CONSTEXPR FMT_NOINLINE auto copy_noinline(InputIt begin, InputIt end,
  */
 FMT_CONSTEXPR inline auto utf8_decode(const char* s, uint32_t* c, int* e)
     -> const char* {
-  constexpr const int masks[] = {0x00, 0x7f, 0x1f, 0x0f, 0x07};
-  constexpr const uint32_t mins[] = {4194304, 0, 128, 2048, 65536};
-  constexpr const int shiftc[] = {0, 18, 12, 6, 0};
-  constexpr const int shifte[] = {0, 6, 4, 2, 0};
+  constexpr int masks[] = {0x00, 0x7f, 0x1f, 0x0f, 0x07};
+  constexpr uint32_t mins[] = {4194304, 0, 128, 2048, 65536};
+  constexpr int shiftc[] = {0, 18, 12, 6, 0};
+  constexpr int shifte[] = {0, 6, 4, 2, 0};

   int len = "\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\0\0\0\0\0\0\0\0\2\2\2\2\3\3\4"
       [static_cast<unsigned char>(*s) >> 3];
@@ -629,21 +667,9 @@ FMT_CONSTEXPR void for_each_codepoint(string_view s, F f) {
   } while (buf_ptr < buf + num_chars_left);
 }

-template <typename Char>
-inline auto compute_width(basic_string_view<Char> s) -> size_t {
-  return s.size();
-}
-
-// Computes approximate display width of a UTF-8 string.
-FMT_CONSTEXPR inline auto compute_width(string_view s) -> size_t {
-  size_t num_code_points = 0;
-  // It is not a lambda for compatibility with C++14.
-  struct count_code_points {
-    size_t* count;
-    FMT_CONSTEXPR auto operator()(uint32_t cp, string_view) const -> bool {
-      *count += to_unsigned(
-          1 +
-          (cp >= 0x1100 &&
+FMT_CONSTEXPR inline auto display_width_of(uint32_t cp) noexcept -> size_t {
+  return to_unsigned(
+      1 + (cp >= 0x1100 &&
            (cp <= 0x115f ||  // Hangul Jamo init. consonants
             cp == 0x2329 ||  // LEFT-POINTING ANGLE BRACKET
             cp == 0x232a ||  // RIGHT-POINTING ANGLE BRACKET
@@ -661,32 +687,6 @@ FMT_CONSTEXPR inline auto compute_width(string_view s) -> size_t {
             (cp >= 0x1f300 && cp <= 0x1f64f) ||
             // Supplemental Symbols and Pictographs:
             (cp >= 0x1f900 && cp <= 0x1f9ff))));
-      return true;
-    }
-  };
-  // We could avoid branches by using utf8_decode directly.
-  for_each_codepoint(s, count_code_points{&num_code_points});
-  return num_code_points;
-}
-
-template <typename Char>
-inline auto code_point_index(basic_string_view<Char> s, size_t n) -> size_t {
-  return min_of(n, s.size());
-}
-
-// Calculates the index of the nth code point in a UTF-8 string.
-inline auto code_point_index(string_view s, size_t n) -> size_t {
-  size_t result = s.size();
-  const char* begin = s.begin();
-  for_each_codepoint(s, [begin, &n, &result](uint32_t, string_view sv) {
-    if (n != 0) {
-      --n;
-      return true;
-    }
-    result = to_unsigned(sv.begin() - begin);
-    return false;
-  });
-  return result;
 }

 template <typename T> struct is_integral : std::is_integral<T> {};
@@ -730,6 +730,9 @@ struct is_fast_float : bool_constant<std::numeric_limits<T>::is_iec559 &&
                                      sizeof(T) <= sizeof(double)> {};
 template <typename T> struct is_fast_float<T, false> : std::false_type {};

+template <typename T>
+using fast_float_t = conditional_t<sizeof(T) == sizeof(double), double, float>;
+
 template <typename T>
 using is_double_double = bool_constant<std::numeric_limits<T>::digits == 106>;

@@ -738,11 +741,12 @@ using is_double_double = bool_constant<std::numeric_limits<T>::digits == 106>;
 #endif

 // An allocator that uses malloc/free to allow removing dependency on the C++
-// standard libary runtime.
-template <typename T> struct allocator {
+// standard libary runtime. std::decay is used for back_inserter to be found by
+// ADL when applied to memory_buffer.
+template <typename T> struct allocator : private std::decay<void> {
   using value_type = T;

-  T* allocate(size_t n) {
+  auto allocate(size_t n) -> T* {
     FMT_ASSERT(n <= max_value<size_t>() / sizeof(T), "");
     T* p = static_cast<T*>(malloc(n * sizeof(T)));
     if (!p) FMT_THROW(std::bad_alloc());
@@ -750,8 +754,23 @@ template <typename T> struct allocator {
   }

   void deallocate(T* p, size_t) { free(p); }
+
+  constexpr friend auto operator==(allocator, allocator) noexcept -> bool {
+    return true;  // All instances of this allocator are equivalent.
+  }
+  constexpr friend auto operator!=(allocator, allocator) noexcept -> bool {
+    return false;
+  }
 };

+template <typename Formatter>
+FMT_CONSTEXPR auto maybe_set_debug_format(Formatter& f, bool set)
+    -> decltype(f.set_debug_format(set)) {
+  f.set_debug_format(set);
+}
+template <typename Formatter>
+FMT_CONSTEXPR void maybe_set_debug_format(Formatter&, ...) {}
+
 }  // namespace detail

 FMT_BEGIN_EXPORT
@@ -825,11 +844,32 @@ class basic_memory_buffer : public detail::buffer<T> {
   FMT_CONSTEXPR20 ~basic_memory_buffer() { deallocate(); }

  private:
+  template <typename Alloc = Allocator,
+            FMT_ENABLE_IF(std::allocator_traits<Alloc>::
+                              propagate_on_container_move_assignment::value)>
+  FMT_CONSTEXPR20 auto move_alloc(basic_memory_buffer& other) -> bool {
+    alloc_ = std::move(other.alloc_);
+    return true;
+  }
+  // If the allocator does not propagate then copy the data from other.
+  template <typename Alloc = Allocator,
+            FMT_ENABLE_IF(!std::allocator_traits<Alloc>::
+                              propagate_on_container_move_assignment::value)>
+  FMT_CONSTEXPR20 auto move_alloc(basic_memory_buffer& other) -> bool {
+    T* data = other.data();
+    if (alloc_ == other.alloc_ || data == other.store_) return true;
+    size_t size = other.size();
+    // Perform copy operation, allocators are different.
+    this->resize(size);
+    detail::copy<T>(data, data + size, this->data());
+    return false;
+  }
+
   // Move data from other to this buffer.
   FMT_CONSTEXPR20 void move(basic_memory_buffer& other) {
-    alloc_ = std::move(other.alloc_);
     T* data = other.data();
     size_t size = other.size(), capacity = other.capacity();
+    if (!move_alloc(other)) return;
     if (data == other.store_) {
       this->set(store_, capacity);
       detail::copy<T>(other.store_, other.store_ + size, store_);
@@ -918,7 +958,7 @@ class string_buffer {
   inline string_buffer() : buf_(str_) {}

   inline operator writer() { return buf_; }
-  inline std::string& str() { return str_; }
+  inline auto str() -> std::string& { return str_; }
 };

 template <typename T, size_t SIZE, typename Allocator>
@@ -1044,7 +1084,7 @@ inline auto do_count_digits(uint64_t n) -> int {
       10, 11, 11, 11, 12, 12, 12, 13, 13, 13, 13, 14, 14, 14, 15, 15,
       15, 16, 16, 16, 16, 17, 17, 17, 18, 18, 18, 19, 19, 19, 19, 20};
   auto t = bsr2log10[FMT_BUILTIN_CLZLL(n | 1) ^ 63];
-  static constexpr const uint64_t zero_or_powers_of_10[] = {
+  static constexpr uint64_t zero_or_powers_of_10[] = {
       0, 0, FMT_POWERS_OF_10(1U), FMT_POWERS_OF_10(1000000000ULL),
       10000000000000000000ULL};
   return t - (n < zero_or_powers_of_10[t]);
@@ -1225,7 +1265,7 @@ FMT_CONSTEXPR auto do_format_base2e(int base_bits, Char* out, UInt value,
   out += size;
   do {
     const char* digits = upper ? "0123456789ABCDEF" : "0123456789abcdef";
-    unsigned digit = static_cast<unsigned>(value & ((1 << base_bits) - 1));
+    unsigned digit = static_cast<unsigned>(value & ((1u << base_bits) - 1));
     *--out = static_cast<Char>(base_bits < 4 ? static_cast<char>('0' + digit)
                                              : digits[digit]);
   } while ((value >>= base_bits) != 0);
@@ -1283,10 +1323,11 @@ template <typename WChar, typename Buffer = memory_buffer> class to_utf8 {
   explicit to_utf8(basic_string_view<WChar> s,
                    to_utf8_error_policy policy = to_utf8_error_policy::abort) {
     static_assert(sizeof(WChar) == 2 || sizeof(WChar) == 4,
-                  "Expect utf16 or utf32");
-    if (!convert(s, policy))
+                  "expected utf16 or utf32");
+    if (!convert(s, policy)) {
       FMT_THROW(std::runtime_error(sizeof(WChar) == 2 ? "invalid utf16"
                                                       : "invalid utf32"));
+    }
   }
   operator string_view() const { return string_view(&buffer_[0], size()); }
   auto size() const -> size_t { return buffer_.size() - 1; }
@@ -1316,9 +1357,8 @@ template <typename WChar, typename Buffer = memory_buffer> class to_utf8 {
           buf.append(string_view("\xEF\xBF\xBD"));
           --p;
           continue;
-        } else {
-          c = (c << 10) + static_cast<uint32_t>(*p) - 0x35fdc00;
         }
+        c = (c << 10) + static_cast<uint32_t>(*p) - 0x35fdc00;
       }
       if (c < 0x80) {
         buf.push_back(static_cast<char>(c));
@@ -1343,7 +1383,7 @@ template <typename WChar, typename Buffer = memory_buffer> class to_utf8 {
 };

 // Computes 128-bit result of multiplication of two 64-bit unsigned integers.
-inline auto umul128(uint64_t x, uint64_t y) noexcept -> uint128_fallback {
+FMT_INLINE auto umul128(uint64_t x, uint64_t y) noexcept -> uint128_fallback {
 #if FMT_USE_INT128
   auto p = static_cast<uint128_opt>(x) * static_cast<uint128_opt>(y);
   return {static_cast<uint64_t>(p >> 64), static_cast<uint64_t>(p)};
@@ -1487,6 +1527,13 @@ template <typename Float> constexpr auto exponent_bias() -> int {
                               : std::numeric_limits<Float>::max_exponent - 1;
 }

+FMT_CONSTEXPR inline auto compute_exp_size(int exp) -> int {
+  auto prefix_size = 2;  // sign + 'e'
+  auto abs_exp = exp >= 0 ? exp : -exp;
+  if (abs_exp < 100) return prefix_size + 2;
+  return prefix_size + (abs_exp >= 1000 ? 4 : 3);
+}
+
 // Writes the exponent exp in the form "[+-]d{2,3}" to buffer.
 template <typename Char, typename OutputIt>
 FMT_CONSTEXPR auto write_exponent(int exp, OutputIt out) -> OutputIt {
@@ -1519,7 +1566,7 @@ template <typename F> struct basic_fp {
   F f;
   int e;

-  static constexpr const int num_significand_bits =
+  static constexpr int num_significand_bits =
       static_cast<int>(sizeof(F) * num_bits<unsigned char>());

   constexpr basic_fp() : f(0), e(0) {}
@@ -1612,6 +1659,15 @@ constexpr auto convert_float(T value) -> convert_float_result<T> {
   return static_cast<convert_float_result<T>>(value);
 }

+template <bool C, typename T, typename F, FMT_ENABLE_IF(C)>
+auto select(T true_value, F) -> T {
+  return true_value;
+}
+template <bool C, typename T, typename F, FMT_ENABLE_IF(!C)>
+auto select(T, F false_value) -> F {
+  return false_value;
+}
+
 template <typename Char, typename OutputIt>
 FMT_CONSTEXPR FMT_NOINLINE auto fill(OutputIt it, size_t n,
                                      const basic_specs& specs) -> OutputIt {
@@ -1808,16 +1864,6 @@ FMT_CONSTEXPR auto write_char(OutputIt out, Char value,
     return it;
   });
 }
-template <typename Char, typename OutputIt>
-FMT_CONSTEXPR auto write(OutputIt out, Char value, const format_specs& specs,
-                         locale_ref loc = {}) -> OutputIt {
-  // char is formatted as unsigned char for consistency across platforms.
-  using unsigned_type =
-      conditional_t<std::is_same<Char, char>::value, unsigned char, unsigned>;
-  return check_char_specs(specs)
-             ? write_char<Char>(out, value, specs)
-             : write<Char>(out, static_cast<unsigned_type>(value), specs, loc);
-}

 template <typename Char> class digit_grouping {
  private:
@@ -1841,9 +1887,7 @@ template <typename Char> class digit_grouping {
   }

  public:
-  template <typename Locale,
-            FMT_ENABLE_IF(std::is_same<Locale, locale_ref>::value)>
-  explicit digit_grouping(Locale loc, bool localized = true) {
+  explicit digit_grouping(locale_ref loc, bool localized = true) {
     if (!localized) return;
     auto sep = thousands_sep<Char>(loc);
     grouping_ = sep.grouping;
@@ -1861,7 +1905,7 @@ template <typename Char> class digit_grouping {
     return count;
   }

-  // Applies grouping to digits and write the output to out.
+  // Applies grouping to digits and writes the output to out.
   template <typename Out, typename C>
   auto apply(Out out, basic_string_view<C> digits) const -> Out {
     auto num_digits = static_cast<int>(digits.size());
@@ -1943,6 +1987,8 @@ auto write_int(OutputIt out, UInt value, unsigned prefix,
 // Writes a localized value.
 FMT_API auto write_loc(appender out, loc_value value, const format_specs& specs,
                        locale_ref loc) -> bool;
+auto write_loc(basic_appender<wchar_t> out, loc_value value,
+               const format_specs& specs, locale_ref loc) -> bool;
 #endif
 template <typename OutputIt>
 inline auto write_loc(OutputIt, const loc_value&, const format_specs&,
@@ -1964,8 +2010,7 @@ FMT_CONSTEXPR auto make_write_int_arg(T value, sign s)
     prefix = 0x01000000 | '-';
     abs_value = 0 - abs_value;
   } else {
-    constexpr const unsigned prefixes[4] = {0, 0, 0x1000000u | '+',
-                                            0x1000000u | ' '};
+    constexpr unsigned prefixes[4] = {0, 0, 0x1000000u | '+', 0x1000000u | ' '};
     prefix = prefixes[static_cast<int>(s)];
   }
   return {abs_value, prefix};
@@ -2018,7 +2063,7 @@ FMT_CONSTEXPR FMT_INLINE auto write_int(OutputIt out, write_int_arg<T> arg,
                                         const format_specs& specs) -> OutputIt {
   static_assert(std::is_same<T, uint32_or_64_or_128_t<T>>::value, "");

-  constexpr int buffer_size = num_bits<T>();
+  constexpr size_t buffer_size = num_bits<T>();
   char buffer[buffer_size];
   if (is_constant_evaluated()) fill_n(buffer, buffer_size, '\0');
   const char* begin = nullptr;
@@ -2111,12 +2156,108 @@ FMT_CONSTEXPR FMT_INLINE auto write(OutputIt out, T value,
 }

 template <typename Char, typename OutputIt>
+FMT_CONSTEXPR auto write(OutputIt out, Char value, const format_specs& specs,
+                         locale_ref loc = {}) -> OutputIt {
+  // char is formatted as unsigned char for consistency across platforms.
+  using unsigned_type =
+      conditional_t<std::is_same<Char, char>::value, unsigned char, unsigned>;
+  return check_char_specs(specs)
+             ? write_char<Char>(out, value, specs)
+             : write<Char>(out, static_cast<unsigned_type>(value), specs, loc);
+}
+
+template <typename Char, typename OutputIt,
+          FMT_ENABLE_IF(std::is_same<Char, char>::value)>
+FMT_CONSTEXPR auto write(OutputIt out, basic_string_view<Char> s,
+                         const format_specs& specs) -> OutputIt {
+  bool is_debug = specs.type() == presentation_type::debug;
+  if (specs.precision < 0 && specs.width == 0) {
+    auto&& it = reserve(out, s.size());
+    return is_debug ? write_escaped_string(it, s) : copy<char>(s, it);
+  }
+
+  size_t display_width_limit =
+      specs.precision < 0 ? SIZE_MAX : to_unsigned(specs.precision);
+  size_t display_width =
+      !is_debug || specs.precision == 0 ? 0 : 1;  // Account for opening '"'.
+  size_t size = !is_debug || specs.precision == 0 ? 0 : 1;
+  for_each_codepoint(s, [&](uint32_t cp, string_view sv) {
+    if (is_debug && needs_escape(cp)) {
+      counting_buffer<char> buf;
+      write_escaped_cp(basic_appender<char>(buf),
+                       find_escape_result<char>{sv.begin(), sv.end(), cp});
+      // We're reinterpreting bytes as display width. That's okay
+      // because write_escaped_cp() only writes ASCII characters.
+      size_t cp_width = buf.count();
+      if (display_width + cp_width <= display_width_limit) {
+        display_width += cp_width;
+        size += cp_width;
+        // If this is the end of the string, account for closing '"'.
+        if (display_width < display_width_limit && sv.end() == s.end()) {
+          ++display_width;
+          ++size;
+        }
+        return true;
+      }
+
+      size += display_width_limit - display_width;
+      display_width = display_width_limit;
+      return false;
+    }
+
+    size_t cp_width = display_width_of(cp);
+    if (cp_width + display_width <= display_width_limit) {
+      display_width += cp_width;
+      size += sv.size();
+      // If this is the end of the string, account for closing '"'.
+      if (is_debug && display_width < display_width_limit &&
+          sv.end() == s.end()) {
+        ++display_width;
+        ++size;
+      }
+      return true;
+    }
+
+    return false;
+  });
+
+  struct bounded_output_iterator {
+    reserve_iterator<OutputIt> underlying_iterator;
+    size_t bound;
+
+    FMT_CONSTEXPR auto operator*() -> bounded_output_iterator& { return *this; }
+    FMT_CONSTEXPR auto operator++() -> bounded_output_iterator& {
+      return *this;
+    }
+    FMT_CONSTEXPR auto operator++(int) -> bounded_output_iterator& {
+      return *this;
+    }
+    FMT_CONSTEXPR auto operator=(char c) -> bounded_output_iterator& {
+      if (bound > 0) {
+        *underlying_iterator++ = c;
+        --bound;
+      }
+      return *this;
+    }
+  };
+
+  return write_padded<char>(
+      out, specs, size, display_width, [=](reserve_iterator<OutputIt> it) {
+        return is_debug
+                   ? write_escaped_string(bounded_output_iterator{it, size}, s)
+                         .underlying_iterator
+                   : copy<char>(s.data(), s.data() + size, it);
+      });
+}
+
+template <typename Char, typename OutputIt,
+          FMT_ENABLE_IF(!std::is_same<Char, char>::value)>
 FMT_CONSTEXPR auto write(OutputIt out, basic_string_view<Char> s,
                          const format_specs& specs) -> OutputIt {
   auto data = s.data();
   auto size = s.size();
   if (specs.precision >= 0 && to_unsigned(specs.precision) < size)
-    size = code_point_index(s, to_unsigned(specs.precision));
+    size = to_unsigned(specs.precision);

   bool is_debug = specs.type() == presentation_type::debug;
   if (is_debug) {
@@ -2125,22 +2266,19 @@ FMT_CONSTEXPR auto write(OutputIt out, basic_string_view<Char> s,
     size = buf.count();
   }

-  size_t width = 0;
-  if (specs.width != 0) {
-    width =
-        is_debug ? size : compute_width(basic_string_view<Char>(data, size));
-  }
   return write_padded<Char>(
-      out, specs, size, width, [=](reserve_iterator<OutputIt> it) {
+      out, specs, size, [=](reserve_iterator<OutputIt> it) {
         return is_debug ? write_escaped_string(it, s)
                         : copy<Char>(data, data + size, it);
       });
 }
+
 template <typename Char, typename OutputIt>
 FMT_CONSTEXPR auto write(OutputIt out, basic_string_view<Char> s,
                          const format_specs& specs, locale_ref) -> OutputIt {
   return write<Char>(out, s, specs);
 }
+
 template <typename Char, typename OutputIt>
 FMT_CONSTEXPR auto write(OutputIt out, const Char* s, const format_specs& specs,
                          locale_ref) -> OutputIt {
@@ -2274,7 +2412,7 @@ inline auto write_significand(Char* out, UInt significand, int significand_size,
   int floating_size = significand_size - integral_size;
   for (int i = floating_size / 2; i > 0; --i) {
     out -= 2;
-    write2digits(out, static_cast<std::size_t>(significand % 100));
+    write2digits(out, static_cast<size_t>(significand % 100));
     significand /= 100;
   }
   if (floating_size % 2 != 0) {
@@ -2328,93 +2466,80 @@ FMT_CONSTEXPR20 auto write_significand(OutputIt out, T significand,
                                      buffer.end(), out);
 }

-template <typename Char, typename OutputIt, typename DecimalFP,
-          typename Grouping = digit_grouping<Char>>
-FMT_CONSTEXPR20 auto do_write_float(OutputIt out, const DecimalFP& f,
-                                    const format_specs& specs, sign s,
-                                    int exp_upper, locale_ref loc) -> OutputIt {
-  auto significand = f.significand;
-  int significand_size = get_significand_size(f);
-  const Char zero = static_cast<Char>('0');
-  size_t size = to_unsigned(significand_size) + (s != sign::none ? 1 : 0);
-  using iterator = reserve_iterator<OutputIt>;
+// Numbers with exponents greater or equal to the returned value will use
+// the exponential notation.
+template <typename T> FMT_CONSTEVAL auto exp_upper() -> int {
+  return std::numeric_limits<T>::digits10 != 0
+             ? min_of(16, std::numeric_limits<T>::digits10 + 1)
+             : 16;
+}

-  Char decimal_point = specs.localized() ? detail::decimal_point<Char>(loc)
-                                         : static_cast<Char>('.');
-
-  int output_exp = f.exponent + significand_size - 1;
-  auto use_exp_format = [=]() {
-    if (specs.type() == presentation_type::exp) return true;
-    if (specs.type() == presentation_type::fixed) return false;
-    // Use the fixed notation if the exponent is in [exp_lower, exp_upper),
-    // e.g. 0.0001 instead of 1e-04. Otherwise use the exponent notation.
-    const int exp_lower = -4;
-    return output_exp < exp_lower ||
-           output_exp >= (specs.precision > 0 ? specs.precision : exp_upper);
-  };
-  if (use_exp_format()) {
-    int num_zeros = 0;
-    if (specs.alt()) {
-      num_zeros = specs.precision - significand_size;
-      if (num_zeros < 0) num_zeros = 0;
-      size += to_unsigned(num_zeros);
-    } else if (significand_size == 1) {
-      decimal_point = Char();
-    }
-    auto abs_output_exp = output_exp >= 0 ? output_exp : -output_exp;
-    int exp_digits = 2;
-    if (abs_output_exp >= 100) exp_digits = abs_output_exp >= 1000 ? 4 : 3;
-
-    size += to_unsigned((decimal_point ? 1 : 0) + 2 + exp_digits);
-    char exp_char = specs.upper() ? 'E' : 'e';
-    auto write = [=](iterator it) {
-      if (s != sign::none) *it++ = detail::getsign<Char>(s);
-      // Insert a decimal point after the first digit and add an exponent.
-      it = write_significand(it, significand, significand_size, 1,
-                             decimal_point);
-      if (num_zeros > 0) it = detail::fill_n(it, num_zeros, zero);
-      *it++ = static_cast<Char>(exp_char);
-      return write_exponent<Char>(output_exp, it);
-    };
-    return specs.width > 0
-               ? write_padded<Char, align::right>(out, specs, size, write)
-               : base_iterator(out, write(reserve(out, size)));
+// Use the fixed notation if the exponent is in [-4, exp_upper),
+// e.g. 0.0001 instead of 1e-04. Otherwise use the exponent notation.
+constexpr auto use_fixed(int exp, int exp_upper) -> bool {
+  return exp >= -4 && exp < exp_upper;
+}
+
+template <typename Char> class fallback_digit_grouping {
+ public:
+  constexpr fallback_digit_grouping(locale_ref, bool) {}
+
+  constexpr auto has_separator() const -> bool { return false; }
+
+  constexpr auto count_separators(int) const -> int { return 0; }
+
+  template <typename Out, typename C>
+  constexpr auto apply(Out out, basic_string_view<C>) const -> Out {
+    return out;
   }
+};
+
+template <typename Char, typename Grouping, typename OutputIt,
+          typename DecimalFP>
+FMT_CONSTEXPR20 auto write_fixed(OutputIt out, const DecimalFP& f,
+                                 int significand_size, Char decimal_point,
+                                 const format_specs& specs, sign s,
+                                 locale_ref loc = {}) -> OutputIt {
+  using iterator = reserve_iterator<OutputIt>;

   int exp = f.exponent + significand_size;
+  long long size = significand_size + (s != sign::none ? 1 : 0);
   if (f.exponent >= 0) {
     // 1234e5 -> 123400000[.0+]
-    size += to_unsigned(f.exponent);
+    size += f.exponent;
     int num_zeros = specs.precision - exp;
     abort_fuzzing_if(num_zeros > 5000);
     if (specs.alt()) {
       ++size;
       if (num_zeros <= 0 && specs.type() != presentation_type::fixed)
         num_zeros = 0;
-      if (num_zeros > 0) size += to_unsigned(num_zeros);
+      if (num_zeros > 0) size += num_zeros;
     }
     auto grouping = Grouping(loc, specs.localized());
-    size += to_unsigned(grouping.count_separators(exp));
-    return write_padded<Char, align::right>(out, specs, size, [&](iterator it) {
-      if (s != sign::none) *it++ = detail::getsign<Char>(s);
-      it = write_significand<Char>(it, significand, significand_size,
-                                   f.exponent, grouping);
-      if (!specs.alt()) return it;
-      *it++ = decimal_point;
-      return num_zeros > 0 ? detail::fill_n(it, num_zeros, zero) : it;
-    });
-  } else if (exp > 0) {
+    size += grouping.count_separators(exp);
+    return write_padded<Char, align::right>(
+        out, specs, static_cast<size_t>(size), [&](iterator it) {
+          if (s != sign::none) *it++ = detail::getsign<Char>(s);
+          it = write_significand<Char>(it, f.significand, significand_size,
+                                       f.exponent, grouping);
+          if (!specs.alt()) return it;
+          *it++ = decimal_point;
+          return num_zeros > 0 ? detail::fill_n(it, num_zeros, Char('0')) : it;
+        });
+  }
+  if (exp > 0) {
     // 1234e-2 -> 12.34[0+]
     int num_zeros = specs.alt() ? specs.precision - significand_size : 0;
-    size += 1 + static_cast<unsigned>(max_of(num_zeros, 0));
+    size += 1 + max_of(num_zeros, 0);
     auto grouping = Grouping(loc, specs.localized());
-    size += to_unsigned(grouping.count_separators(exp));
-    return write_padded<Char, align::right>(out, specs, size, [&](iterator it) {
-      if (s != sign::none) *it++ = detail::getsign<Char>(s);
-      it = write_significand(it, significand, significand_size, exp,
-                             decimal_point, grouping);
-      return num_zeros > 0 ? detail::fill_n(it, num_zeros, zero) : it;
-    });
+    size += grouping.count_separators(exp);
+    return write_padded<Char, align::right>(
+        out, specs, to_unsigned(size), [&](iterator it) {
+          if (s != sign::none) *it++ = detail::getsign<Char>(s);
+          it = write_significand(it, f.significand, significand_size, exp,
+                                 decimal_point, grouping);
+          return num_zeros > 0 ? detail::fill_n(it, num_zeros, Char('0')) : it;
+        });
   }
   // 1234e-6 -> 0.001234
   int num_zeros = -exp;
@@ -2423,41 +2548,68 @@ FMT_CONSTEXPR20 auto do_write_float(OutputIt out, const DecimalFP& f,
     num_zeros = specs.precision;
   }
   bool pointy = num_zeros != 0 || significand_size != 0 || specs.alt();
-  size += 1 + (pointy ? 1 : 0) + to_unsigned(num_zeros);
-  return write_padded<Char, align::right>(out, specs, size, [&](iterator it) {
-    if (s != sign::none) *it++ = detail::getsign<Char>(s);
-    *it++ = zero;
-    if (!pointy) return it;
-    *it++ = decimal_point;
-    it = detail::fill_n(it, num_zeros, zero);
-    return write_significand<Char>(it, significand, significand_size);
-  });
+  size += 1 + (pointy ? 1 : 0) + num_zeros;
+  return write_padded<Char, align::right>(
+      out, specs, to_unsigned(size), [&](iterator it) {
+        if (s != sign::none) *it++ = detail::getsign<Char>(s);
+        *it++ = Char('0');
+        if (!pointy) return it;
+        *it++ = decimal_point;
+        it = detail::fill_n(it, num_zeros, Char('0'));
+        return write_significand<Char>(it, f.significand, significand_size);
+      });
 }

-template <typename Char> class fallback_digit_grouping {
- public:
-  constexpr fallback_digit_grouping(locale_ref, bool) {}
-
-  constexpr auto has_separator() const -> bool { return false; }
-
-  constexpr auto count_separators(int) const -> int { return 0; }
-
-  template <typename Out, typename C>
-  constexpr auto apply(Out out, basic_string_view<C>) const -> Out {
-    return out;
-  }
-};
+template <typename Char, typename Grouping, typename OutputIt,
+          typename DecimalFP>
+FMT_CONSTEXPR20 auto do_write_float(OutputIt out, const DecimalFP& f,
+                                    const format_specs& specs, sign s,
+                                    int exp_upper, locale_ref loc) -> OutputIt {
+  Char point = specs.localized() ? detail::decimal_point<Char>(loc) : Char('.');
+  int significand_size = get_significand_size(f);
+  int exp = f.exponent + significand_size - 1;
+  if (specs.type() == presentation_type::fixed ||
+      (specs.type() != presentation_type::exp &&
+       use_fixed(exp, specs.precision > 0 ? specs.precision : exp_upper))) {
+    return write_fixed<Char, Grouping>(out, f, significand_size, point, specs,
+                                       s, loc);
+  }
+
+  // Write value in the exponential format.
+  int num_zeros = 0;
+  long long size = significand_size + (s != sign::none ? 1 : 0);
+  if (specs.alt()) {
+    num_zeros = max_of(specs.precision - significand_size, 0);
+    size += num_zeros;
+  } else if (significand_size == 1) {
+    point = Char();
+  }
+  size += (point ? 1 : 0) + compute_exp_size(exp);
+  char exp_char = specs.upper() ? 'E' : 'e';
+  auto write = [=](reserve_iterator<OutputIt> it) {
+    if (s != sign::none) *it++ = detail::getsign<Char>(s);
+    // Insert a decimal point after the first digit and add an exponent.
+    it = write_significand(it, f.significand, significand_size, 1, point);
+    if (num_zeros > 0) it = detail::fill_n(it, num_zeros, Char('0'));
+    *it++ = Char(exp_char);
+    return write_exponent<Char>(exp, it);
+  };
+  auto usize = to_unsigned(size);
+  return specs.width > 0
+             ? write_padded<Char, align::right>(out, specs, usize, write)
+             : base_iterator(out, write(reserve(out, usize)));
+}

 template <typename Char, typename OutputIt, typename DecimalFP>
 FMT_CONSTEXPR20 auto write_float(OutputIt out, const DecimalFP& f,
                                  const format_specs& specs, sign s,
                                  int exp_upper, locale_ref loc) -> OutputIt {
   if (is_constant_evaluated()) {
-    return do_write_float<Char, OutputIt, DecimalFP,
-                          fallback_digit_grouping<Char>>(out, f, specs, s,
-                                                         exp_upper, loc);
+    return do_write_float<Char, fallback_digit_grouping<Char>>(out, f, specs, s,
+                                                               exp_upper, loc);
   } else {
-    return do_write_float<Char>(out, f, specs, s, exp_upper, loc);
+    return do_write_float<Char, digit_grouping<Char>>(out, f, specs, s,
+                                                      exp_upper, loc);
   }
 }

@@ -2488,7 +2640,7 @@ FMT_CONSTEXPR auto isfinite(T value) -> bool {
 }

 template <typename T, FMT_ENABLE_IF(is_floating_point<T>::value)>
-FMT_INLINE FMT_CONSTEXPR bool signbit(T value) {
+FMT_INLINE FMT_CONSTEXPR auto signbit(T value) -> bool {
   if (is_constant_evaluated()) {
 #ifdef __cpp_if_constexpr
     if constexpr (std::numeric_limits<double>::is_iec559) {
@@ -2728,7 +2880,7 @@ class bigint {
     bigits_.resize(to_unsigned(num_bigits + exp_difference));
     for (int i = num_bigits - 1, j = i + exp_difference; i >= 0; --i, --j)
       bigits_[j] = bigits_[i];
-    memset(bigits_.data(), 0, to_unsigned(exp_difference) * sizeof(bigit));
+    fill_n(bigits_.data(), to_unsigned(exp_difference), 0U);
     exp_ -= exp_difference;
   }

@@ -3289,17 +3441,12 @@ FMT_CONSTEXPR20 auto format_float(Float value, int precision,
   return exp;
 }

-// Numbers with exponents greater or equal to the returned value will use
-// the exponential notation.
-template <typename T> constexpr auto exp_upper() -> int {
-  return std::numeric_limits<T>::digits10 != 0
-             ? min_of(16, std::numeric_limits<T>::digits10 + 1)
-             : 16;
-}
+template <typename Char, typename OutputIt, typename T,
+          FMT_ENABLE_IF(is_floating_point<T>::value)>
+FMT_CONSTEXPR20 auto write(OutputIt out, T value, format_specs specs,
+                           locale_ref loc = {}) -> OutputIt {
+  if (specs.localized() && write_loc(out, value, specs, loc)) return out;

-template <typename Char, typename OutputIt, typename T>
-FMT_CONSTEXPR20 auto write_float(OutputIt out, T value, format_specs specs,
-                                 locale_ref loc) -> OutputIt {
   // Use signbit because value < 0 is false for NaN.
   sign s = detail::signbit(value) ? sign::minus : specs.sign();

@@ -3312,15 +3459,14 @@ FMT_CONSTEXPR20 auto write_float(OutputIt out, T value, format_specs specs,
     if (specs.width != 0) --specs.width;
   }

-  constexpr int exp_upper = detail::exp_upper<T>();
+  const int exp_upper = detail::exp_upper<T>();
   int precision = specs.precision;
   if (precision < 0) {
     if (specs.type() != presentation_type::none) {
       precision = 6;
     } else if (is_fast_float<T>::value && !is_constant_evaluated()) {
       // Use Dragonbox for the shortest format.
-      using floaty = conditional_t<sizeof(T) >= sizeof(double), double, float>;
-      auto dec = dragonbox::to_decimal(static_cast<floaty>(value));
+      auto dec = dragonbox::to_decimal(static_cast<fast_float_t<T>>(value));
       return write_float<Char>(out, dec, specs, s, exp_upper, loc);
     }
   }
@@ -3352,38 +3498,77 @@ FMT_CONSTEXPR20 auto write_float(OutputIt out, T value, format_specs specs,
   return write_float<Char>(out, f, specs, s, exp_upper, loc);
 }

-template <typename Char, typename OutputIt, typename T,
-          FMT_ENABLE_IF(is_floating_point<T>::value)>
-FMT_CONSTEXPR20 auto write(OutputIt out, T value, format_specs specs,
-                           locale_ref loc = {}) -> OutputIt {
-  return specs.localized() && write_loc(out, value, specs, loc)
-             ? out
-             : write_float<Char>(out, value, specs, loc);
-}
-
 template <typename Char, typename OutputIt, typename T,
           FMT_ENABLE_IF(is_fast_float<T>::value)>
 FMT_CONSTEXPR20 auto write(OutputIt out, T value) -> OutputIt {
   if (is_constant_evaluated()) return write<Char>(out, value, format_specs());

   auto s = detail::signbit(value) ? sign::minus : sign::none;
-
-  constexpr auto specs = format_specs();
-  using floaty = conditional_t<sizeof(T) >= sizeof(double), double, float>;
-  using floaty_uint = typename dragonbox::float_info<floaty>::carrier_uint;
-  floaty_uint mask = exponent_mask<floaty>();
-  if ((bit_cast<floaty_uint>(value) & mask) == mask)
-    return write_nonfinite<Char>(out, std::isnan(value), specs, s);
-
-  auto dec = dragonbox::to_decimal(static_cast<floaty>(value));
-  return write_float<Char>(out, dec, specs, s, exp_upper<T>(), {});
+  auto mask = exponent_mask<fast_float_t<T>>();
+  if ((bit_cast<decltype(mask)>(value) & mask) == mask)
+    return write_nonfinite<Char>(out, std::isnan(value), {}, s);
+
+  auto dec = dragonbox::to_decimal(static_cast<fast_float_t<T>>(value));
+  auto significand = dec.significand;
+  int significand_size = count_digits(significand);
+  int exponent = dec.exponent + significand_size - 1;
+  if (use_fixed(exponent, detail::exp_upper<T>())) {
+    return write_fixed<Char, fallback_digit_grouping<Char>>(
+        out, dec, significand_size, Char('.'), {}, s);
+  }
+
+  // Write value in the exponential format.
+  const char* prefix = "e+";
+  int abs_exponent = exponent;
+  if (exponent < 0) {
+    abs_exponent = -exponent;
+    prefix = "e-";
+  }
+  auto has_decimal_point = significand_size != 1;
+  size_t size = std::is_pointer<OutputIt>::value
+                    ? 0u
+                    : to_unsigned((s != sign::none ? 1 : 0) + significand_size +
+                                  (has_decimal_point ? 1 : 0) +
+                                  (abs_exponent >= 100 ? 5 : 4));
+  if (auto ptr = to_pointer<Char>(out, size)) {
+    if (s != sign::none) *ptr++ = Char('-');
+    if (has_decimal_point) {
+      auto begin = ptr;
+      ptr = format_decimal<Char>(ptr, significand, significand_size + 1);
+      *begin = begin[1];
+      begin[1] = '.';
+    } else {
+      *ptr++ = static_cast<Char>('0' + significand);
+    }
+    if (std::is_same<Char, char>::value) {
+      memcpy(ptr, prefix, 2);
+      ptr += 2;
+    } else {
+      *ptr++ = prefix[0];
+      *ptr++ = prefix[1];
+    }
+    if (abs_exponent >= 100) {
+      *ptr++ = static_cast<Char>('0' + abs_exponent / 100);
+      abs_exponent %= 100;
+    }
+    write2digits(ptr, static_cast<unsigned>(abs_exponent));
+    return select<std::is_pointer<OutputIt>::value>(ptr + 2, out);
+  }
+  auto it = reserve(out, size);
+  if (s != sign::none) *it++ = Char('-');
+  // Insert a decimal point after the first digit and add an exponent.
+  it = write_significand(it, significand, significand_size, 1,
+                         has_decimal_point ? Char('.') : Char());
+  *it++ = Char('e');
+  it = write_exponent<Char>(exponent, it);
+  return base_iterator(out, it);
 }

 template <typename Char, typename OutputIt, typename T,
           FMT_ENABLE_IF(is_floating_point<T>::value &&
                         !is_fast_float<T>::value)>
 inline auto write(OutputIt out, T value) -> OutputIt {
-  return write<Char>(out, value, format_specs());
+  return write<Char>(out, value, {});
 }

 template <typename Char, typename OutputIt>
@@ -3523,32 +3708,18 @@ struct dynamic_spec_getter {
   }
 };

-template <typename Context, typename ID>
-FMT_CONSTEXPR auto get_arg(Context& ctx, ID id) -> basic_format_arg<Context> {
-  auto arg = ctx.arg(id);
-  if (!arg) report_error("argument not found");
-  return arg;
-}
-
 template <typename Context>
-FMT_CONSTEXPR int get_dynamic_spec(
-    arg_id_kind kind, const arg_ref<typename Context::char_type>& ref,
-    Context& ctx) {
-  FMT_ASSERT(kind != arg_id_kind::none, "");
+FMT_CONSTEXPR void handle_dynamic_spec(
+    arg_id_kind kind, int& value,
+    const arg_ref<typename Context::char_type>& ref, Context& ctx) {
+  if (kind == arg_id_kind::none) return;
   auto arg =
       kind == arg_id_kind::index ? ctx.arg(ref.index) : ctx.arg(ref.name);
   if (!arg) report_error("argument not found");
-  unsigned long long value = arg.visit(dynamic_spec_getter());
-  if (value > to_unsigned(max_value<int>()))
+  unsigned long long result = arg.visit(dynamic_spec_getter());
+  if (result > to_unsigned(max_value<int>()))
     report_error("width/precision is out of range");
-  return static_cast<int>(value);
-}
-
-template <typename Context>
-FMT_CONSTEXPR void handle_dynamic_spec(
-    arg_id_kind kind, int& value,
-    const arg_ref<typename Context::char_type>& ref, Context& ctx) {
-  if (kind != arg_id_kind::none) value = get_dynamic_spec(kind, ref, ctx);
+  value = static_cast<int>(result);
 }

 #if FMT_USE_NONTYPE_TEMPLATE_ARGS
@@ -3586,7 +3757,7 @@ template <typename Char> struct udl_arg {
 };
 #endif  // FMT_USE_NONTYPE_TEMPLATE_ARGS

-template <typename Char> struct format_handler {
+template <typename Char = char> struct format_handler {
   parse_context<Char> parse_ctx;
   buffered_context<Char> ctx;

@@ -3612,7 +3783,8 @@ template <typename Char> struct format_handler {

   auto on_format_specs(int id, const Char* begin, const Char* end)
       -> const Char* {
-    auto arg = get_arg(ctx, id);
+    auto arg = ctx.arg(id);
+    if (!arg) report_error("argument not found");
     // Not using a visitor for custom types gives better codegen.
     if (arg.format_custom(begin, parse_ctx, ctx)) return parse_ctx.begin();

@@ -3632,6 +3804,7 @@ template <typename Char> struct format_handler {
   FMT_NORETURN void on_error(const char* message) { report_error(message); }
 };

+// It is used in format-inl.h and os.cc.
 using format_func = void (*)(detail::buffer<char>&, int, const char*);
 FMT_API void do_report_error(format_func func, int error_code,
                              const char* message) noexcept;
@@ -3652,28 +3825,6 @@ FMT_CONSTEXPR auto native_formatter<T, Char, TYPE>::format(
                       specs_.precision_ref, ctx);
   return write<Char>(ctx.out(), val, specs, ctx.locale());
 }
-
-// DEPRECATED! https://github.com/fmtlib/fmt/issues/4292.
-template <typename T, typename Enable = void>
-struct is_locale : std::false_type {};
-template <typename T>
-struct is_locale<T, void_t<decltype(T::classic())>> : std::true_type {};
-
-// DEPRECATED!
-template <typename Char = char> struct vformat_args {
-  using type = basic_format_args<buffered_context<Char>>;
-};
-template <> struct vformat_args<char> {
-  using type = format_args;
-};
-
-template <typename Char>
-void vformat_to(buffer<Char>& buf, basic_string_view<Char> fmt,
-                typename vformat_args<Char>::type args, locale_ref loc = {}) {
-  auto out = basic_appender<Char>(buf);
-  parse_format_string(
-      fmt, format_handler<Char>{parse_context<Char>(fmt), {out, args, loc}});
-}
 }  // namespace detail

 FMT_BEGIN_EXPORT
@@ -3685,19 +3836,16 @@ template <typename OutputIt, typename Char> class generic_context {
  private:
   OutputIt out_;
   basic_format_args<generic_context> args_;
-  detail::locale_ref loc_;
+  locale_ref loc_;

  public:
   using char_type = Char;
   using iterator = OutputIt;
-  using parse_context_type FMT_DEPRECATED = parse_context<Char>;
-  template <typename T>
-  using formatter_type FMT_DEPRECATED = formatter<T, Char>;
   enum { builtin_types = FMT_BUILTIN_TYPES };

   constexpr generic_context(OutputIt out,
                             basic_format_args<generic_context> args,
-                            detail::locale_ref loc = {})
+                            locale_ref loc = {})
       : out_(out), args_(args), loc_(loc) {}
   generic_context(generic_context&&) = default;
   generic_context(const generic_context&) = delete;
@@ -3720,7 +3868,7 @@ template <typename OutputIt, typename Char> class generic_context {
     if (!detail::is_back_insert_iterator<iterator>()) out_ = it;
   }

-  constexpr auto locale() const -> detail::locale_ref { return loc_; }
+  constexpr auto locale() const -> locale_ref { return loc_; }
 };

 class loc_value {
@@ -3825,7 +3973,7 @@ struct formatter<T, Char, void_t<detail::format_as_result<T>>>
  *     auto s = fmt::format("{}", fmt::ptr(p));
  */
 template <typename T> auto ptr(T p) -> const void* {
-  static_assert(std::is_pointer<T>::value, "");
+  static_assert(std::is_pointer<T>::value, "fmt::ptr used with non-pointer");
   return detail::bit_cast<const void*>(p);
 }

@@ -3850,13 +3998,14 @@ constexpr auto format_as(Enum e) noexcept -> underlying_t<Enum> {
 }  // namespace enums

 #ifdef __cpp_lib_byte
-template <> struct formatter<std::byte> : formatter<unsigned> {
+template <typename Char>
+struct formatter<std::byte, Char> : formatter<unsigned, Char> {
   static auto format_as(std::byte b) -> unsigned char {
     return static_cast<unsigned char>(b);
   }
   template <typename Context>
   auto format(std::byte b, Context& ctx) const -> decltype(ctx.out()) {
-    return formatter<unsigned>::format(format_as(b), ctx);
+    return formatter<unsigned, Char>::format(format_as(b), ctx);
   }
 };
 #endif
@@ -4070,21 +4219,26 @@ class format_int {
   inline auto str() const -> std::string { return {str_, size()}; }
 };

-#define FMT_STRING_IMPL(s, base)                                              \
-  [] {                                                                        \
-    /* Use the hidden visibility as a workaround for a GCC bug (#1973). */    \
-    /* Use a macro-like name to avoid shadowing warnings. */                  \
-    struct FMT_VISIBILITY("hidden") FMT_COMPILE_STRING : base {               \
-      using char_type = fmt::remove_cvref_t<decltype(s[0])>;                  \
-      constexpr explicit operator fmt::basic_string_view<char_type>() const { \
-        return fmt::detail::compile_string_to_view<char_type>(s);             \
-      }                                                                       \
-    };                                                                        \
-    using FMT_STRING_VIEW =                                                   \
-        fmt::basic_string_view<typename FMT_COMPILE_STRING::char_type>;       \
-    fmt::detail::ignore_unused(FMT_STRING_VIEW(FMT_COMPILE_STRING()));        \
-    return FMT_COMPILE_STRING();                                              \
-  }()
+#if FMT_CLANG_ANALYZER
+#  define FMT_STRING_IMPL(s, base) s
+#else
+#  define FMT_STRING_IMPL(s, base)                                           \
+    [] {                                                                     \
+      /* Use the hidden visibility as a workaround for a GCC bug (#1973). */ \
+      /* Use a macro-like name to avoid shadowing warnings. */               \
+      struct FMT_VISIBILITY("hidden") FMT_COMPILE_STRING : base {            \
+        using char_type = fmt::remove_cvref_t<decltype(s[0])>;               \
+        constexpr explicit operator fmt::basic_string_view<char_type>()      \
+            const {                                                          \
+          return fmt::detail::compile_string_to_view<char_type>(s);          \
+        }                                                                    \
+      };                                                                     \
+      using FMT_STRING_VIEW =                                                \
+          fmt::basic_string_view<typename FMT_COMPILE_STRING::char_type>;    \
+      fmt::detail::ignore_unused(FMT_STRING_VIEW(FMT_COMPILE_STRING()));     \
+      return FMT_COMPILE_STRING();                                           \
+    }()
+#endif  // FMT_CLANG_ANALYZER

 /**
  * Constructs a legacy compile-time format string from a string literal `s`.
@@ -4140,46 +4294,41 @@ FMT_API void format_system_error(detail::buffer<char>& out, int error_code,
 // Can be used to report errors from destructors.
 FMT_API void report_system_error(int error_code, const char* message) noexcept;

-template <typename Locale, FMT_ENABLE_IF(detail::is_locale<Locale>::value)>
-inline auto vformat(const Locale& loc, string_view fmt, format_args args)
+inline auto vformat(locale_ref loc, string_view fmt, format_args args)
     -> std::string {
   auto buf = memory_buffer();
-  detail::vformat_to(buf, fmt, args, detail::locale_ref(loc));
+  detail::vformat_to(buf, fmt, args, loc);
   return {buf.data(), buf.size()};
 }

-template <typename Locale, typename... T,
-          FMT_ENABLE_IF(detail::is_locale<Locale>::value)>
-FMT_INLINE auto format(const Locale& loc, format_string<T...> fmt, T&&... args)
+template <typename... T>
+FMT_INLINE auto format(locale_ref loc, format_string<T...> fmt, T&&... args)
     -> std::string {
   return vformat(loc, fmt.str, vargs<T...>{{args...}});
 }

-template <typename OutputIt, typename Locale,
+template <typename OutputIt,
           FMT_ENABLE_IF(detail::is_output_iterator<OutputIt, char>::value)>
-auto vformat_to(OutputIt out, const Locale& loc, string_view fmt,
-                format_args args) -> OutputIt {
+auto vformat_to(OutputIt out, locale_ref loc, string_view fmt, format_args args)
+    -> OutputIt {
   auto&& buf = detail::get_buffer<char>(out);
-  detail::vformat_to(buf, fmt, args, detail::locale_ref(loc));
+  detail::vformat_to(buf, fmt, args, loc);
   return detail::get_iterator(buf, out);
 }

-template <typename OutputIt, typename Locale, typename... T,
-          FMT_ENABLE_IF(detail::is_output_iterator<OutputIt, char>::value&&
-                            detail::is_locale<Locale>::value)>
-FMT_INLINE auto format_to(OutputIt out, const Locale& loc,
-                          format_string<T...> fmt, T&&... args) -> OutputIt {
+template <typename OutputIt, typename... T,
+          FMT_ENABLE_IF(detail::is_output_iterator<OutputIt, char>::value)>
+FMT_INLINE auto format_to(OutputIt out, locale_ref loc, format_string<T...> fmt,
+                          T&&... args) -> OutputIt {
   return fmt::vformat_to(out, loc, fmt.str, vargs<T...>{{args...}});
 }

-template <typename Locale, typename... T,
-          FMT_ENABLE_IF(detail::is_locale<Locale>::value)>
-FMT_NODISCARD FMT_INLINE auto formatted_size(const Locale& loc,
+template <typename... T>
+FMT_NODISCARD FMT_INLINE auto formatted_size(locale_ref loc,
                                              format_string<T...> fmt,
                                              T&&... args) -> size_t {
   auto buf = detail::counting_buffer<>();
-  detail::vformat_to(buf, fmt.str, vargs<T...>{{args...}},
-                     detail::locale_ref(loc));
+  detail::vformat_to(buf, fmt.str, vargs<T...>{{args...}}, loc);
   return buf.count();
 }

@@ -4208,7 +4357,7 @@ FMT_NODISCARD FMT_INLINE auto format(format_string<T...> fmt, T&&... args)
  *     std::string answer = fmt::to_string(42);
  */
 template <typename T, FMT_ENABLE_IF(std::is_integral<T>::value)>
-FMT_NODISCARD auto to_string(T value) -> std::string {
+FMT_NODISCARD FMT_CONSTEXPR_STRING auto to_string(T value) -> std::string {
   // The buffer should be large enough to store the number including the sign
   // or "false" for bool.
   char buffer[max_of(detail::digits10<T>() + 2, 5)];
@@ -4216,13 +4365,15 @@ FMT_NODISCARD auto to_string(T value) -> std::string {
 }

 template <typename T, FMT_ENABLE_IF(detail::use_format_as<T>::value)>
-FMT_NODISCARD auto to_string(const T& value) -> std::string {
+FMT_NODISCARD FMT_CONSTEXPR_STRING auto to_string(const T& value)
+    -> std::string {
   return to_string(format_as(value));
 }

 template <typename T, FMT_ENABLE_IF(!std::is_integral<T>::value &&
                                     !detail::use_format_as<T>::value)>
-FMT_NODISCARD auto to_string(const T& value) -> std::string {
+FMT_NODISCARD FMT_CONSTEXPR_STRING auto to_string(const T& value)
+    -> std::string {
   auto buffer = memory_buffer();
   detail::write<char>(appender(buffer), value);
   return {buffer.data(), buffer.size()};
diff --git a/deps/LIEF/third-party/spdlog/include/spdlog/fmt/bundled/os.h b/deps/LIEF/third-party/spdlog/include/spdlog/fmt/bundled/os.h
index b2cc5e4b85f..94d730de281 100644
--- a/deps/LIEF/third-party/spdlog/include/spdlog/fmt/bundled/os.h
+++ b/deps/LIEF/third-party/spdlog/include/spdlog/fmt/bundled/os.h
@@ -29,7 +29,8 @@
 #  if (FMT_HAS_INCLUDE(<fcntl.h>) || defined(__APPLE__) || \
        defined(__linux__)) &&                              \
       (!defined(WINAPI_FAMILY) ||                          \
-       (WINAPI_FAMILY == WINAPI_FAMILY_DESKTOP_APP))
+       (WINAPI_FAMILY == WINAPI_FAMILY_DESKTOP_APP)) &&    \
+      !defined(__wasm__)
 #    include <fcntl.h>  // for O_RDONLY
 #    define FMT_USE_FCNTL 1
 #  else
@@ -135,10 +136,9 @@ FMT_API std::system_error vwindows_error(int error_code, string_view fmt,
  * **Example**:
  *
  *     // This throws a system_error with the description
- *     //   cannot open file 'madeup': The system cannot find the file
- * specified.
- *     // or similar (system message may vary).
- *     const char *filename = "madeup";
+ *     //   cannot open file 'foo': The system cannot find the file specified.
+ *     // or similar (system message may vary) if the file doesn't exist.
+ *     const char *filename = "foo";
  *     LPOFSTRUCT of = LPOFSTRUCT();
  *     HFILE file = OpenFile(filename, &of, OF_READ);
  *     if (file == HFILE_ERROR) {
@@ -364,17 +364,17 @@ FMT_INLINE_VARIABLE constexpr auto buffer_size = detail::buffer_size();

 /// A fast buffered output stream for writing from a single thread. Writing from
 /// multiple threads without external synchronization may result in a data race.
-class FMT_API ostream : private detail::buffer<char> {
+class ostream : private detail::buffer<char> {
  private:
   file file_;

-  ostream(cstring_view path, const detail::ostream_params& params);
+  FMT_API ostream(cstring_view path, const detail::ostream_params& params);

-  static void grow(buffer<char>& buf, size_t);
+  FMT_API static void grow(buffer<char>& buf, size_t);

  public:
-  ostream(ostream&& other) noexcept;
-  ~ostream();
+  FMT_API ostream(ostream&& other) noexcept;
+  FMT_API ~ostream();

   operator writer() {
     detail::buffer<char>& buf = *this;
diff --git a/deps/LIEF/third-party/spdlog/include/spdlog/fmt/bundled/ostream.h b/deps/LIEF/third-party/spdlog/include/spdlog/fmt/bundled/ostream.h
index 7bec4efe2b3..bf2371b7998 100644
--- a/deps/LIEF/third-party/spdlog/include/spdlog/fmt/bundled/ostream.h
+++ b/deps/LIEF/third-party/spdlog/include/spdlog/fmt/bundled/ostream.h
@@ -33,8 +33,8 @@
 FMT_BEGIN_NAMESPACE
 namespace detail {

-// Generate a unique explicit instantion in every translation unit using a tag
-// type in an anonymous namespace.
+// Generate a unique explicit instantiation in every translation unit using a
+// tag type in an anonymous namespace.
 namespace {
 struct file_access_tag {};
 }  // namespace
diff --git a/deps/LIEF/third-party/spdlog/include/spdlog/fmt/bundled/printf.h b/deps/LIEF/third-party/spdlog/include/spdlog/fmt/bundled/printf.h
index e7268401854..cc066d8c07c 100644
--- a/deps/LIEF/third-party/spdlog/include/spdlog/fmt/bundled/printf.h
+++ b/deps/LIEF/third-party/spdlog/include/spdlog/fmt/bundled/printf.h
@@ -9,7 +9,7 @@
 #define FMT_PRINTF_H_

 #ifndef FMT_MODULE
-#  include <algorithm>  // std::max
+#  include <algorithm>  // std::find
 #  include <limits>     // std::numeric_limits
 #endif

@@ -18,10 +18,6 @@
 FMT_BEGIN_NAMESPACE
 FMT_BEGIN_EXPORT

-template <typename T> struct printf_formatter {
-  printf_formatter() = delete;
-};
-
 template <typename Char> class basic_printf_context {
  private:
   basic_appender<Char> out_;
@@ -33,8 +29,6 @@ template <typename Char> class basic_printf_context {

  public:
   using char_type = Char;
-  using parse_context_type = parse_context<Char>;
-  template <typename T> using formatter_type = printf_formatter<T>;
   enum { builtin_types = 1 };

   /// Constructs a `printf_context` object. References to the arguments are
@@ -46,7 +40,7 @@ template <typename Char> class basic_printf_context {
   auto out() -> basic_appender<Char> { return out_; }
   void advance_to(basic_appender<Char>) {}

-  auto locale() -> detail::locale_ref { return {}; }
+  auto locale() -> locale_ref { return {}; }

   auto arg(int id) const -> basic_format_arg<basic_printf_context> {
     return args_.get(id);
@@ -74,10 +68,9 @@ inline auto find<false, char>(const char* first, const char* last, char value,

 // Checks if a value fits in int - used to avoid warnings about comparing
 // signed and unsigned integers.
-template <bool IsSigned> struct int_checker {
+template <bool IS_SIGNED> struct int_checker {
   template <typename T> static auto fits_in_int(T value) -> bool {
-    unsigned max = to_unsigned(max_value<int>());
-    return value <= max;
+    return value <= to_unsigned(max_value<int>());
   }
   inline static auto fits_in_int(bool) -> bool { return true; }
 };
@@ -95,7 +88,7 @@ struct printf_precision_handler {
   auto operator()(T value) -> int {
     if (!int_checker<std::numeric_limits<T>::is_signed>::fits_in_int(value))
       report_error("number is too big");
-    return (std::max)(static_cast<int>(value), 0);
+    return max_of(static_cast<int>(value), 0);
   }

   template <typename T, FMT_ENABLE_IF(!std::is_integral<T>::value)>
@@ -410,7 +403,9 @@ void vprintf(buffer<Char>& buf, basic_string_view<Char> format,
       arg_index = parse_ctx.next_arg_id();
     else
       parse_ctx.check_arg_id(--arg_index);
-    return detail::get_arg(context, arg_index);
+    auto arg = context.arg(arg_index);
+    if (!arg) report_error("argument not found");
+    return arg;
   };

   const Char* start = parse_ctx.begin();
@@ -571,15 +566,19 @@ inline auto vsprintf(basic_string_view<Char> fmt,
  *
  *     std::string message = fmt::sprintf("The answer is %d", 42);
  */
-template <typename S, typename... T, typename Char = detail::char_t<S>>
-inline auto sprintf(const S& fmt, const T&... args) -> std::basic_string<Char> {
-  return vsprintf(detail::to_string_view(fmt),
-                  fmt::make_format_args<basic_printf_context<Char>>(args...));
+template <typename... T>
+inline auto sprintf(string_view fmt, const T&... args) -> std::string {
+  return vsprintf(fmt, make_printf_args(args...));
+}
+template <typename... T>
+FMT_DEPRECATED auto sprintf(basic_string_view<wchar_t> fmt, const T&... args)
+    -> std::wstring {
+  return vsprintf(fmt, make_printf_args<wchar_t>(args...));
 }

 template <typename Char>
-inline auto vfprintf(std::FILE* f, basic_string_view<Char> fmt,
-                     typename vprintf_args<Char>::type args) -> int {
+auto vfprintf(std::FILE* f, basic_string_view<Char> fmt,
+              typename vprintf_args<Char>::type args) -> int {
   auto buf = basic_memory_buffer<Char>();
   detail::vprintf(buf, fmt, args);
   size_t size = buf.size();
@@ -596,17 +595,14 @@ inline auto vfprintf(std::FILE* f, basic_string_view<Char> fmt,
  *
  *     fmt::fprintf(stderr, "Don't %s!", "panic");
  */
-template <typename S, typename... T, typename Char = detail::char_t<S>>
-inline auto fprintf(std::FILE* f, const S& fmt, const T&... args) -> int {
-  return vfprintf(f, detail::to_string_view(fmt),
-                  make_printf_args<Char>(args...));
+template <typename... T>
+inline auto fprintf(std::FILE* f, string_view fmt, const T&... args) -> int {
+  return vfprintf(f, fmt, make_printf_args(args...));
 }
-
-template <typename Char>
-FMT_DEPRECATED inline auto vprintf(basic_string_view<Char> fmt,
-                                   typename vprintf_args<Char>::type args)
-    -> int {
-  return vfprintf(stdout, fmt, args);
+template <typename... T>
+FMT_DEPRECATED auto fprintf(std::FILE* f, basic_string_view<wchar_t> fmt,
+                            const T&... args) -> int {
+  return vfprintf(f, fmt, make_printf_args<wchar_t>(args...));
 }

 /**
@@ -621,11 +617,6 @@ template <typename... T>
 inline auto printf(string_view fmt, const T&... args) -> int {
   return vfprintf(stdout, fmt, make_printf_args(args...));
 }
-template <typename... T>
-FMT_DEPRECATED inline auto printf(basic_string_view<wchar_t> fmt,
-                                  const T&... args) -> int {
-  return vfprintf(stdout, fmt, make_printf_args<wchar_t>(args...));
-}

 FMT_END_EXPORT
 FMT_END_NAMESPACE
diff --git a/deps/LIEF/third-party/spdlog/include/spdlog/fmt/bundled/ranges.h b/deps/LIEF/third-party/spdlog/include/spdlog/fmt/bundled/ranges.h
index 23ff7de0913..36b38e29636 100644
--- a/deps/LIEF/third-party/spdlog/include/spdlog/fmt/bundled/ranges.h
+++ b/deps/LIEF/third-party/spdlog/include/spdlog/fmt/bundled/ranges.h
@@ -11,7 +11,6 @@
 #ifndef FMT_MODULE
 #  include <initializer_list>
 #  include <iterator>
-#  include <string>
 #  include <tuple>
 #  include <type_traits>
 #  include <utility>
@@ -19,6 +18,13 @@

 #include "format.h"

+#if FMT_HAS_CPP_ATTRIBUTE(clang::lifetimebound)
+#  define FMT_LIFETIMEBOUND [[clang::lifetimebound]]
+#else
+#  define FMT_LIFETIMEBOUND
+#endif
+FMT_PRAGMA_CLANG(diagnostic error "-Wreturn-stack-address")
+
 FMT_BEGIN_NAMESPACE

 FMT_EXPORT
@@ -31,7 +37,7 @@ template <typename T> class is_map {
   template <typename> static void check(...);

  public:
-  static constexpr const bool value =
+  static constexpr bool value =
       !std::is_void<decltype(check<T>(nullptr))>::value;
 };

@@ -40,17 +46,16 @@ template <typename T> class is_set {
   template <typename> static void check(...);

  public:
-  static constexpr const bool value =
+  static constexpr bool value =
       !std::is_void<decltype(check<T>(nullptr))>::value && !is_map<T>::value;
 };

 // C array overload
-template <typename T, std::size_t N>
+template <typename T, size_t N>
 auto range_begin(const T (&arr)[N]) -> const T* {
   return arr;
 }
-template <typename T, std::size_t N>
-auto range_end(const T (&arr)[N]) -> const T* {
+template <typename T, size_t N> auto range_end(const T (&arr)[N]) -> const T* {
   return arr + N;
 }

@@ -120,7 +125,7 @@ template <typename T> class is_tuple_like_ {
   template <typename> static void check(...);

  public:
-  static constexpr const bool value =
+  static constexpr bool value =
       !std::is_void<decltype(check<T>(nullptr))>::value;
 };

@@ -154,7 +159,7 @@ using tuple_index_sequence = make_index_sequence<std::tuple_size<T>::value>;
 template <typename T, typename C, bool = is_tuple_like_<T>::value>
 class is_tuple_formattable_ {
  public:
-  static constexpr const bool value = false;
+  static constexpr bool value = false;
 };
 template <typename T, typename C> class is_tuple_formattable_<T, C, true> {
   template <size_t... Is>
@@ -170,7 +175,7 @@ template <typename T, typename C> class is_tuple_formattable_<T, C, true> {
                                        C>::value)...>{}));

  public:
-  static constexpr const bool value =
+  static constexpr bool value =
       decltype(check(tuple_index_sequence<T>{}))::value;
 };

@@ -208,7 +213,7 @@ template <typename Char, typename... T>
 using result_t = std::tuple<formatter<remove_cvref_t<T>, Char>...>;

 using std::get;
-template <typename Tuple, typename Char, std::size_t... Is>
+template <typename Tuple, typename Char, size_t... Is>
 auto get_formatters(index_sequence<Is...>)
     -> result_t<Char, decltype(get<Is>(std::declval<Tuple>()))...>;
 }  // namespace tuple
@@ -219,7 +224,7 @@ template <typename R> struct range_reference_type_impl {
   using type = decltype(*detail::range_begin(std::declval<R&>()));
 };

-template <typename T, std::size_t N> struct range_reference_type_impl<T[N]> {
+template <typename T, size_t N> struct range_reference_type_impl<T[N]> {
   using type = T&;
 };

@@ -236,14 +241,6 @@ using range_reference_type =
 template <typename Range>
 using uncvref_type = remove_cvref_t<range_reference_type<Range>>;

-template <typename Formatter>
-FMT_CONSTEXPR auto maybe_set_debug_format(Formatter& f, bool set)
-    -> decltype(f.set_debug_format(set)) {
-  f.set_debug_format(set);
-}
-template <typename Formatter>
-FMT_CONSTEXPR void maybe_set_debug_format(Formatter&, ...) {}
-
 template <typename T>
 struct range_format_kind_
     : std::integral_constant<range_format,
@@ -281,14 +278,15 @@ template <typename FormatContext> struct format_tuple_element {

 }  // namespace detail

+FMT_EXPORT
 template <typename T> struct is_tuple_like {
-  static constexpr const bool value =
+  static constexpr bool value =
       detail::is_tuple_like_<T>::value && !detail::is_range_<T>::value;
 };

+FMT_EXPORT
 template <typename T, typename C> struct is_tuple_formattable {
-  static constexpr const bool value =
-      detail::is_tuple_formattable_<T, C>::value;
+  static constexpr bool value = detail::is_tuple_formattable_<T, C>::value;
 };

 template <typename Tuple, typename Char>
@@ -343,8 +341,9 @@ struct formatter<Tuple, Char,
   }
 };

+FMT_EXPORT
 template <typename T, typename Char> struct is_range {
-  static constexpr const bool value =
+  static constexpr bool value =
       detail::is_range_<T>::value && !detail::has_to_string_view<T>::value;
 };

@@ -368,6 +367,7 @@ template <typename P1, typename... Pn>
 struct conjunction<P1, Pn...>
     : conditional_t<bool(P1::value), conjunction<Pn...>, P1> {};

+FMT_EXPORT
 template <typename T, typename Char, typename Enable = void>
 struct range_formatter;

@@ -670,7 +670,8 @@ struct formatter<join_view<It, Sentinel, Char>, Char> {
   }
 };

-template <typename Char, typename Tuple> struct tuple_join_view : detail::view {
+FMT_EXPORT
+template <typename Tuple, typename Char> struct tuple_join_view : detail::view {
   const Tuple& tuple;
   basic_string_view<Char> sep;

@@ -685,15 +686,15 @@ template <typename Char, typename Tuple> struct tuple_join_view : detail::view {
 #  define FMT_TUPLE_JOIN_SPECIFIERS 0
 #endif

-template <typename Char, typename Tuple>
-struct formatter<tuple_join_view<Char, Tuple>, Char,
+template <typename Tuple, typename Char>
+struct formatter<tuple_join_view<Tuple, Char>, Char,
                  enable_if_t<is_tuple_like<Tuple>::value>> {
   FMT_CONSTEXPR auto parse(parse_context<Char>& ctx) -> const Char* {
     return do_parse(ctx, std::tuple_size<Tuple>());
   }

   template <typename FormatContext>
-  auto format(const tuple_join_view<Char, Tuple>& value,
+  auto format(const tuple_join_view<Tuple, Char>& value,
               FormatContext& ctx) const -> typename FormatContext::iterator {
     return do_format(value, ctx, std::tuple_size<Tuple>());
   }
@@ -725,14 +726,14 @@ struct formatter<tuple_join_view<Char, Tuple>, Char,
   }

   template <typename FormatContext>
-  auto do_format(const tuple_join_view<Char, Tuple>&, FormatContext& ctx,
+  auto do_format(const tuple_join_view<Tuple, Char>&, FormatContext& ctx,
                  std::integral_constant<size_t, 0>) const ->
       typename FormatContext::iterator {
     return ctx.out();
   }

   template <typename FormatContext, size_t N>
-  auto do_format(const tuple_join_view<Char, Tuple>& value, FormatContext& ctx,
+  auto do_format(const tuple_join_view<Tuple, Char>& value, FormatContext& ctx,
                  std::integral_constant<size_t, N>) const ->
       typename FormatContext::iterator {
     using std::get;
@@ -754,7 +755,7 @@ template <typename T> class is_container_adaptor_like {
   template <typename> static void check(...);

  public:
-  static constexpr const bool value =
+  static constexpr bool value =
       !std::is_void<decltype(check<T>(nullptr))>::value;
 };

@@ -819,13 +820,13 @@ auto join(Range&& r, string_view sep)
  *
  * **Example**:
  *
- *     auto t = std::tuple<int, char>{1, 'a'};
+ *     auto t = std::tuple<int, char>(1, 'a');
  *     fmt::print("{}", fmt::join(t, ", "));
  *     // Output: 1, a
  */
 template <typename Tuple, FMT_ENABLE_IF(is_tuple_like<Tuple>::value)>
-FMT_CONSTEXPR auto join(const Tuple& tuple, string_view sep)
-    -> tuple_join_view<char, Tuple> {
+FMT_CONSTEXPR auto join(const Tuple& tuple FMT_LIFETIMEBOUND, string_view sep)
+    -> tuple_join_view<Tuple, char> {
   return {tuple, sep};
 }

diff --git a/deps/LIEF/third-party/spdlog/include/spdlog/fmt/bundled/std.h b/deps/LIEF/third-party/spdlog/include/spdlog/fmt/bundled/std.h
index f43dc74d21c..184c6d26d60 100644
--- a/deps/LIEF/third-party/spdlog/include/spdlog/fmt/bundled/std.h
+++ b/deps/LIEF/third-party/spdlog/include/spdlog/fmt/bundled/std.h
@@ -15,15 +15,13 @@
 #  include <atomic>
 #  include <bitset>
 #  include <complex>
-#  include <cstdlib>
 #  include <exception>
-#  include <functional>
+#  include <functional>  // std::reference_wrapper
 #  include <memory>
 #  include <thread>
 #  include <type_traits>
-#  include <typeinfo>
-#  include <utility>
-#  include <vector>
+#  include <typeinfo>  // std::type_info
+#  include <utility>   // std::make_index_sequence

 // Check FMT_CPLUSPLUS to suppress a bogus warning in MSVC.
 #  if FMT_CPLUSPLUS >= 201703L
@@ -62,28 +60,27 @@
 #  endif
 #endif

-// For older Xcode versions, __cpp_lib_xxx flags are inaccurately defined.
-#ifndef FMT_CPP_LIB_FILESYSTEM
-#  ifdef __cpp_lib_filesystem
-#    define FMT_CPP_LIB_FILESYSTEM __cpp_lib_filesystem
-#  else
-#    define FMT_CPP_LIB_FILESYSTEM 0
-#  endif
+#ifdef FMT_CPP_LIB_FILESYSTEM
+// Use the provided definition.
+#elif defined(__cpp_lib_filesystem)
+#  define FMT_CPP_LIB_FILESYSTEM __cpp_lib_filesystem
+#else
+#  define FMT_CPP_LIB_FILESYSTEM 0
 #endif

-#ifndef FMT_CPP_LIB_VARIANT
-#  ifdef __cpp_lib_variant
-#    define FMT_CPP_LIB_VARIANT __cpp_lib_variant
-#  else
-#    define FMT_CPP_LIB_VARIANT 0
-#  endif
+#ifdef FMT_CPP_LIB_VARIANT
+// Use the provided definition.
+#elif defined(__cpp_lib_variant)
+#  define FMT_CPP_LIB_VARIANT __cpp_lib_variant
+#else
+#  define FMT_CPP_LIB_VARIANT 0
 #endif

-#if FMT_CPP_LIB_FILESYSTEM
 FMT_BEGIN_NAMESPACE
-
 namespace detail {

+#if FMT_CPP_LIB_FILESYSTEM
+
 template <typename Char, typename PathChar>
 auto get_path_string(const std::filesystem::path& p,
                      const std::basic_string<PathChar>& native) {
@@ -111,8 +108,180 @@ void write_escaped_path(basic_memory_buffer<Char>& quoted,
   }
 }

+#endif  // FMT_CPP_LIB_FILESYSTEM
+
+#if defined(__cpp_lib_expected) || FMT_CPP_LIB_VARIANT
+
+template <typename Char, typename OutputIt, typename T, typename FormatContext>
+auto write_escaped_alternative(OutputIt out, const T& v, FormatContext& ctx)
+    -> OutputIt {
+  if constexpr (has_to_string_view<T>::value)
+    return write_escaped_string<Char>(out, detail::to_string_view(v));
+  if constexpr (std::is_same_v<T, Char>) return write_escaped_char(out, v);
+
+  formatter<std::remove_cv_t<T>, Char> underlying;
+  maybe_set_debug_format(underlying, true);
+  return underlying.format(v, ctx);
+}
+#endif
+
+#if FMT_CPP_LIB_VARIANT
+
+template <typename> struct is_variant_like_ : std::false_type {};
+template <typename... Types>
+struct is_variant_like_<std::variant<Types...>> : std::true_type {};
+
+template <typename Variant, typename Char> class is_variant_formattable {
+  template <size_t... Is>
+  static auto check(std::index_sequence<Is...>) -> std::conjunction<
+      is_formattable<std::variant_alternative_t<Is, Variant>, Char>...>;
+
+ public:
+  static constexpr bool value = decltype(check(
+      std::make_index_sequence<std::variant_size<Variant>::value>()))::value;
+};
+
+#endif  // FMT_CPP_LIB_VARIANT
+
+#if FMT_USE_RTTI
+inline auto normalize_libcxx_inline_namespaces(string_view demangled_name_view,
+                                               char* begin) -> string_view {
+  // Normalization of stdlib inline namespace names.
+  // libc++ inline namespaces.
+  //  std::__1::*       -> std::*
+  //  std::__1::__fs::* -> std::*
+  // libstdc++ inline namespaces.
+  //  std::__cxx11::*             -> std::*
+  //  std::filesystem::__cxx11::* -> std::filesystem::*
+  if (demangled_name_view.starts_with("std::")) {
+    char* to = begin + 5;  // std::
+    for (const char *from = to, *end = begin + demangled_name_view.size();
+         from < end;) {
+      // This is safe, because demangled_name is NUL-terminated.
+      if (from[0] == '_' && from[1] == '_') {
+        const char* next = from + 1;
+        while (next < end && *next != ':') next++;
+        if (next[0] == ':' && next[1] == ':') {
+          from = next + 2;
+          continue;
+        }
+      }
+      *to++ = *from++;
+    }
+    demangled_name_view = {begin, detail::to_unsigned(to - begin)};
+  }
+  return demangled_name_view;
+}
+
+template <class OutputIt>
+auto normalize_msvc_abi_name(string_view abi_name_view, OutputIt out)
+    -> OutputIt {
+  const string_view demangled_name(abi_name_view);
+  for (size_t i = 0; i < demangled_name.size(); ++i) {
+    auto sub = demangled_name;
+    sub.remove_prefix(i);
+    if (sub.starts_with("enum ")) {
+      i += 4;
+      continue;
+    }
+    if (sub.starts_with("class ") || sub.starts_with("union ")) {
+      i += 5;
+      continue;
+    }
+    if (sub.starts_with("struct ")) {
+      i += 6;
+      continue;
+    }
+    if (*sub.begin() != ' ') *out++ = *sub.begin();
+  }
+  return out;
+}
+
+template <typename OutputIt>
+auto write_demangled_name(OutputIt out, const std::type_info& ti) -> OutputIt {
+#  ifdef FMT_HAS_ABI_CXA_DEMANGLE
+  int status = 0;
+  size_t size = 0;
+  std::unique_ptr<char, void (*)(void*)> demangled_name_ptr(
+      abi::__cxa_demangle(ti.name(), nullptr, &size, &status), &free);
+
+  string_view demangled_name_view;
+  if (demangled_name_ptr) {
+    demangled_name_view = normalize_libcxx_inline_namespaces(
+        demangled_name_ptr.get(), demangled_name_ptr.get());
+  } else {
+    demangled_name_view = string_view(ti.name());
+  }
+  return detail::write_bytes<char>(out, demangled_name_view);
+#  elif FMT_MSC_VERSION && defined(_MSVC_STL_UPDATE)
+  return normalize_msvc_abi_name(ti.name(), out);
+#  elif FMT_MSC_VERSION && defined(_LIBCPP_VERSION)
+  const string_view demangled_name = ti.name();
+  std::string name_copy(demangled_name.size(), '\0');
+  // normalize_msvc_abi_name removes class, struct, union etc that MSVC has in
+  // front of types
+  name_copy.erase(normalize_msvc_abi_name(demangled_name, name_copy.begin()),
+                  name_copy.end());
+  // normalize_libcxx_inline_namespaces removes the inline __1, __2, etc
+  // namespaces libc++ uses for ABI versioning On MSVC ABI + libc++
+  // environments, we need to eliminate both of them.
+  const string_view normalized_name =
+      normalize_libcxx_inline_namespaces(name_copy, name_copy.data());
+  return detail::write_bytes<char>(out, normalized_name);
+#  else
+  return detail::write_bytes<char>(out, string_view(ti.name()));
+#  endif
+}
+
+#endif  // FMT_USE_RTTI
+
+template <typename T, typename Enable = void>
+struct has_flip : std::false_type {};
+
+template <typename T>
+struct has_flip<T, void_t<decltype(std::declval<T>().flip())>>
+    : std::true_type {};
+
+template <typename T> struct is_bit_reference_like {
+  static constexpr bool value = std::is_convertible<T, bool>::value &&
+                                std::is_nothrow_assignable<T, bool>::value &&
+                                has_flip<T>::value;
+};
+
+// Workaround for libc++ incompatibility with C++ standard.
+// According to the Standard, `bitset::operator[] const` returns bool.
+#if defined(_LIBCPP_VERSION) && !defined(FMT_IMPORT_STD)
+template <typename C>
+struct is_bit_reference_like<std::__bit_const_reference<C>> {
+  static constexpr bool value = true;
+};
+#endif
+
+template <typename T, typename Enable = void>
+struct has_format_as : std::false_type {};
+template <typename T>
+struct has_format_as<T, void_t<decltype(format_as(std::declval<const T&>()))>>
+    : std::true_type {};
+
+template <typename T, typename Enable = void>
+struct has_format_as_member : std::false_type {};
+template <typename T>
+struct has_format_as_member<
+    T, void_t<decltype(formatter<T>::format_as(std::declval<const T&>()))>>
+    : std::true_type {};
+
 }  // namespace detail

+template <typename T, typename Deleter>
+auto ptr(const std::unique_ptr<T, Deleter>& p) -> const void* {
+  return p.get();
+}
+template <typename T> auto ptr(const std::shared_ptr<T>& p) -> const void* {
+  return p.get();
+}
+
+#if FMT_CPP_LIB_FILESYSTEM
+
 template <typename Char> struct formatter<std::filesystem::path, Char> {
  private:
   format_specs specs_;
@@ -177,24 +346,20 @@ class path : public std::filesystem::path {
   auto generic_system_string() const -> std::string { return generic_string(); }
 };

-FMT_END_NAMESPACE
 #endif  // FMT_CPP_LIB_FILESYSTEM

-FMT_BEGIN_NAMESPACE
-template <std::size_t N, typename Char>
+template <size_t N, typename Char>
 struct formatter<std::bitset<N>, Char>
     : nested_formatter<basic_string_view<Char>, Char> {
  private:
-  // Functor because C++11 doesn't support generic lambdas.
+  // This is a functor because C++11 doesn't support generic lambdas.
   struct writer {
     const std::bitset<N>& bs;

     template <typename OutputIt>
     FMT_CONSTEXPR auto operator()(OutputIt out) -> OutputIt {
-      for (auto pos = N; pos > 0; --pos) {
+      for (auto pos = N; pos > 0; --pos)
         out = detail::write<Char>(out, bs[pos - 1] ? Char('1') : Char('0'));
-      }
-
       return out;
     }
   };
@@ -209,33 +374,22 @@ struct formatter<std::bitset<N>, Char>

 template <typename Char>
 struct formatter<std::thread::id, Char> : basic_ostream_formatter<Char> {};
-FMT_END_NAMESPACE

 #ifdef __cpp_lib_optional
-FMT_BEGIN_NAMESPACE
 template <typename T, typename Char>
 struct formatter<std::optional<T>, Char,
                  std::enable_if_t<is_formattable<T, Char>::value>> {
  private:
-  formatter<T, Char> underlying_;
+  formatter<std::remove_cv_t<T>, Char> underlying_;
   static constexpr basic_string_view<Char> optional =
       detail::string_literal<Char, 'o', 'p', 't', 'i', 'o', 'n', 'a', 'l',
                              '('>{};
   static constexpr basic_string_view<Char> none =
       detail::string_literal<Char, 'n', 'o', 'n', 'e'>{};

-  template <class U>
-  FMT_CONSTEXPR static auto maybe_set_debug_format(U& u, bool set)
-      -> decltype(u.set_debug_format(set)) {
-    u.set_debug_format(set);
-  }
-
-  template <class U>
-  FMT_CONSTEXPR static void maybe_set_debug_format(U&, ...) {}
-
  public:
   FMT_CONSTEXPR auto parse(parse_context<Char>& ctx) {
-    maybe_set_debug_format(underlying_, true);
+    detail::maybe_set_debug_format(underlying_, true);
     return underlying_.parse(ctx);
   }

@@ -251,30 +405,9 @@ struct formatter<std::optional<T>, Char,
     return detail::write(out, ')');
   }
 };
-FMT_END_NAMESPACE
 #endif  // __cpp_lib_optional

-#if defined(__cpp_lib_expected) || FMT_CPP_LIB_VARIANT
-
-FMT_BEGIN_NAMESPACE
-namespace detail {
-
-template <typename Char, typename OutputIt, typename T>
-auto write_escaped_alternative(OutputIt out, const T& v) -> OutputIt {
-  if constexpr (has_to_string_view<T>::value)
-    return write_escaped_string<Char>(out, detail::to_string_view(v));
-  if constexpr (std::is_same_v<T, Char>) return write_escaped_char(out, v);
-  return write<Char>(out, v);
-}
-
-}  // namespace detail
-
-FMT_END_NAMESPACE
-#endif
-
 #ifdef __cpp_lib_expected
-FMT_BEGIN_NAMESPACE
-
 template <typename T, typename E, typename Char>
 struct formatter<std::expected<T, E>, Char,
                  std::enable_if_t<(std::is_void<T>::value ||
@@ -292,20 +425,18 @@ struct formatter<std::expected<T, E>, Char,
     if (value.has_value()) {
       out = detail::write<Char>(out, "expected(");
       if constexpr (!std::is_void<T>::value)
-        out = detail::write_escaped_alternative<Char>(out, *value);
+        out = detail::write_escaped_alternative<Char>(out, *value, ctx);
     } else {
       out = detail::write<Char>(out, "unexpected(");
-      out = detail::write_escaped_alternative<Char>(out, value.error());
+      out = detail::write_escaped_alternative<Char>(out, value.error(), ctx);
     }
     *out++ = ')';
     return out;
   }
 };
-FMT_END_NAMESPACE
 #endif  // __cpp_lib_expected

 #ifdef __cpp_lib_source_location
-FMT_BEGIN_NAMESPACE
 template <> struct formatter<std::source_location> {
   FMT_CONSTEXPR auto parse(parse_context<>& ctx) { return ctx.begin(); }

@@ -323,42 +454,12 @@ template <> struct formatter<std::source_location> {
     return out;
   }
 };
-FMT_END_NAMESPACE
 #endif

 #if FMT_CPP_LIB_VARIANT
-FMT_BEGIN_NAMESPACE
-namespace detail {
-
-template <typename T>
-using variant_index_sequence =
-    std::make_index_sequence<std::variant_size<T>::value>;
-
-template <typename> struct is_variant_like_ : std::false_type {};
-template <typename... Types>
-struct is_variant_like_<std::variant<Types...>> : std::true_type {};
-
-// formattable element check.
-template <typename T, typename C> class is_variant_formattable_ {
-  template <std::size_t... Is>
-  static std::conjunction<
-      is_formattable<std::variant_alternative_t<Is, T>, C>...>
-      check(std::index_sequence<Is...>);
-
- public:
-  static constexpr const bool value =
-      decltype(check(variant_index_sequence<T>{}))::value;
-};
-
-}  // namespace detail

 template <typename T> struct is_variant_like {
-  static constexpr const bool value = detail::is_variant_like_<T>::value;
-};
-
-template <typename T, typename C> struct is_variant_formattable {
-  static constexpr const bool value =
-      detail::is_variant_formattable_<T, C>::value;
+  static constexpr bool value = detail::is_variant_like_<T>::value;
 };

 template <typename Char> struct formatter<std::monostate, Char> {
@@ -374,10 +475,10 @@ template <typename Char> struct formatter<std::monostate, Char> {
 };

 template <typename Variant, typename Char>
-struct formatter<
-    Variant, Char,
-    std::enable_if_t<std::conjunction_v<
-        is_variant_like<Variant>, is_variant_formattable<Variant, Char>>>> {
+struct formatter<Variant, Char,
+                 std::enable_if_t<std::conjunction_v<
+                     is_variant_like<Variant>,
+                     detail::is_variant_formattable<Variant, Char>>>> {
   FMT_CONSTEXPR auto parse(parse_context<Char>& ctx) -> const Char* {
     return ctx.begin();
   }
@@ -391,7 +492,7 @@ struct formatter<
     FMT_TRY {
       std::visit(
           [&](const auto& v) {
-            out = detail::write_escaped_alternative<Char>(out, v);
+            out = detail::write_escaped_alternative<Char>(out, v, ctx);
           },
           value);
     }
@@ -402,10 +503,9 @@ struct formatter<
     return out;
   }
 };
-FMT_END_NAMESPACE
+
 #endif  // FMT_CPP_LIB_VARIANT

-FMT_BEGIN_NAMESPACE
 template <> struct formatter<std::error_code> {
  private:
   format_specs specs_;
@@ -413,6 +513,8 @@ template <> struct formatter<std::error_code> {
   bool debug_ = false;

  public:
+  FMT_CONSTEXPR void set_debug_format(bool set = true) { debug_ = set; }
+
   FMT_CONSTEXPR auto parse(parse_context<>& ctx) -> const char* {
     auto it = ctx.begin(), end = ctx.end();
     if (it == end) return it;
@@ -459,101 +561,29 @@ template <> struct formatter<std::error_code> {
 };

 #if FMT_USE_RTTI
-namespace detail {
-
-template <typename Char, typename OutputIt>
-auto write_demangled_name(OutputIt out, const std::type_info& ti) -> OutputIt {
-#  ifdef FMT_HAS_ABI_CXA_DEMANGLE
-  int status = 0;
-  std::size_t size = 0;
-  std::unique_ptr<char, void (*)(void*)> demangled_name_ptr(
-      abi::__cxa_demangle(ti.name(), nullptr, &size, &status), &std::free);
-
-  string_view demangled_name_view;
-  if (demangled_name_ptr) {
-    demangled_name_view = demangled_name_ptr.get();
-
-    // Normalization of stdlib inline namespace names.
-    // libc++ inline namespaces.
-    //  std::__1::*       -> std::*
-    //  std::__1::__fs::* -> std::*
-    // libstdc++ inline namespaces.
-    //  std::__cxx11::*             -> std::*
-    //  std::filesystem::__cxx11::* -> std::filesystem::*
-    if (demangled_name_view.starts_with("std::")) {
-      char* begin = demangled_name_ptr.get();
-      char* to = begin + 5;  // std::
-      for (char *from = to, *end = begin + demangled_name_view.size();
-           from < end;) {
-        // This is safe, because demangled_name is NUL-terminated.
-        if (from[0] == '_' && from[1] == '_') {
-          char* next = from + 1;
-          while (next < end && *next != ':') next++;
-          if (next[0] == ':' && next[1] == ':') {
-            from = next + 2;
-            continue;
-          }
-        }
-        *to++ = *from++;
-      }
-      demangled_name_view = {begin, detail::to_unsigned(to - begin)};
-    }
-  } else {
-    demangled_name_view = string_view(ti.name());
-  }
-  return detail::write_bytes<Char>(out, demangled_name_view);
-#  elif FMT_MSC_VERSION
-  const string_view demangled_name(ti.name());
-  for (std::size_t i = 0; i < demangled_name.size(); ++i) {
-    auto sub = demangled_name;
-    sub.remove_prefix(i);
-    if (sub.starts_with("enum ")) {
-      i += 4;
-      continue;
-    }
-    if (sub.starts_with("class ") || sub.starts_with("union ")) {
-      i += 5;
-      continue;
-    }
-    if (sub.starts_with("struct ")) {
-      i += 6;
-      continue;
-    }
-    if (*sub.begin() != ' ') *out++ = *sub.begin();
-  }
-  return out;
-#  else
-  return detail::write_bytes<Char>(out, string_view(ti.name()));
-#  endif
-}
-
-}  // namespace detail
-
-template <typename Char>
-struct formatter<std::type_info, Char  // DEPRECATED! Mixing code unit types.
-                 > {
+template <> struct formatter<std::type_info> {
  public:
-  FMT_CONSTEXPR auto parse(parse_context<Char>& ctx) -> const Char* {
+  FMT_CONSTEXPR auto parse(parse_context<>& ctx) -> const char* {
     return ctx.begin();
   }

   template <typename Context>
   auto format(const std::type_info& ti, Context& ctx) const
       -> decltype(ctx.out()) {
-    return detail::write_demangled_name<Char>(ctx.out(), ti);
+    return detail::write_demangled_name(ctx.out(), ti);
   }
 };
-#endif
+#endif  // FMT_USE_RTTI

-template <typename T, typename Char>
+template <typename T>
 struct formatter<
-    T, Char,  // DEPRECATED! Mixing code unit types.
+    T, char,
     typename std::enable_if<std::is_base_of<std::exception, T>::value>::type> {
  private:
   bool with_typename_ = false;

  public:
-  FMT_CONSTEXPR auto parse(parse_context<Char>& ctx) -> const Char* {
+  FMT_CONSTEXPR auto parse(parse_context<>& ctx) -> const char* {
     auto it = ctx.begin();
     auto end = ctx.end();
     if (it == end || *it == '}') return it;
@@ -570,43 +600,15 @@ struct formatter<
     auto out = ctx.out();
 #if FMT_USE_RTTI
     if (with_typename_) {
-      out = detail::write_demangled_name<Char>(out, typeid(ex));
+      out = detail::write_demangled_name(out, typeid(ex));
       *out++ = ':';
       *out++ = ' ';
     }
 #endif
-    return detail::write_bytes<Char>(out, string_view(ex.what()));
+    return detail::write_bytes<char>(out, string_view(ex.what()));
   }
 };

-namespace detail {
-
-template <typename T, typename Enable = void>
-struct has_flip : std::false_type {};
-
-template <typename T>
-struct has_flip<T, void_t<decltype(std::declval<T>().flip())>>
-    : std::true_type {};
-
-template <typename T> struct is_bit_reference_like {
-  static constexpr const bool value =
-      std::is_convertible<T, bool>::value &&
-      std::is_nothrow_assignable<T, bool>::value && has_flip<T>::value;
-};
-
-#ifdef _LIBCPP_VERSION
-
-// Workaround for libc++ incompatibility with C++ standard.
-// According to the Standard, `bitset::operator[] const` returns bool.
-template <typename C>
-struct is_bit_reference_like<std::__bit_const_reference<C>> {
-  static constexpr const bool value = true;
-};
-
-#endif
-
-}  // namespace detail
-
 // We can't use std::vector<bool, Allocator>::reference and
 // std::bitset<N>::reference because the compiler can't deduce Allocator and N
 // in partial specialization.
@@ -621,14 +623,6 @@ struct formatter<BitRef, Char,
   }
 };

-template <typename T, typename Deleter>
-auto ptr(const std::unique_ptr<T, Deleter>& p) -> const void* {
-  return p.get();
-}
-template <typename T> auto ptr(const std::shared_ptr<T>& p) -> const void* {
-  return p.get();
-}
-
 template <typename T, typename Char>
 struct formatter<std::atomic<T>, Char,
                  enable_if_t<is_formattable<T, Char>::value>>
@@ -715,7 +709,11 @@ template <typename T, typename Char> struct formatter<std::complex<T>, Char> {

 template <typename T, typename Char>
 struct formatter<std::reference_wrapper<T>, Char,
-                 enable_if_t<is_formattable<remove_cvref_t<T>, Char>::value>>
+                 // Guard against format_as because reference_wrapper is
+                 // implicitly convertible to T&.
+                 enable_if_t<is_formattable<remove_cvref_t<T>, Char>::value &&
+                             !detail::has_format_as<T>::value &&
+                             !detail::has_format_as_member<T>::value>>
     : formatter<remove_cvref_t<T>, Char> {
   template <typename FormatContext>
   auto format(std::reference_wrapper<T> ref, FormatContext& ctx) const
@@ -725,4 +723,5 @@ struct formatter<std::reference_wrapper<T>, Char,
 };

 FMT_END_NAMESPACE
+
 #endif  // FMT_STD_H_
diff --git a/deps/LIEF/third-party/spdlog/include/spdlog/fmt/bundled/xchar.h b/deps/LIEF/third-party/spdlog/include/spdlog/fmt/bundled/xchar.h
index 90994fff6e2..9334b87fdc1 100644
--- a/deps/LIEF/third-party/spdlog/include/spdlog/fmt/bundled/xchar.h
+++ b/deps/LIEF/third-party/spdlog/include/spdlog/fmt/bundled/xchar.h
@@ -55,6 +55,16 @@ inline auto write_loc(basic_appender<wchar_t> out, loc_value value,
 #endif
   return false;
 }
+
+template <typename Char>
+void vformat_to(buffer<Char>& buf, basic_string_view<Char> fmt,
+                basic_format_args<buffered_context<Char>> args,
+                locale_ref loc = {}) {
+  static_assert(!std::is_same<Char, char>::value, "");
+  auto out = basic_appender<Char>(buf);
+  parse_format_string(
+      fmt, format_handler<Char>{parse_context<Char>(fmt), {out, args, loc}});
+}
 }  // namespace detail

 FMT_BEGIN_EXPORT
@@ -112,10 +122,6 @@ inline auto runtime(wstring_view s) -> runtime_format_string<wchar_t> {
   return {{s}};
 }

-#ifdef __cpp_char8_t
-template <> struct is_char<char8_t> : bool_constant<detail::is_utf8_enabled> {};
-#endif
-
 template <typename... T>
 constexpr auto make_wformat_args(T&... args)
     -> decltype(fmt::make_format_args<wformat_context>(args...)) {
@@ -151,13 +157,13 @@ auto join(std::initializer_list<T> list, wstring_view sep)

 template <typename Tuple, FMT_ENABLE_IF(is_tuple_like<Tuple>::value)>
 auto join(const Tuple& tuple, basic_string_view<wchar_t> sep)
-    -> tuple_join_view<wchar_t, Tuple> {
+    -> tuple_join_view<Tuple, wchar_t> {
   return {tuple, sep};
 }

 template <typename Char, FMT_ENABLE_IF(!std::is_same<Char, char>::value)>
 auto vformat(basic_string_view<Char> fmt,
-             typename detail::vformat_args<Char>::type args)
+             basic_format_args<buffered_context<Char>> args)
     -> std::basic_string<Char> {
   auto buf = basic_memory_buffer<Char>();
   detail::vformat_to(buf, fmt, args);
@@ -187,24 +193,20 @@ auto format(const S& fmt, T&&... args) -> std::basic_string<Char> {
                  fmt::make_format_args<buffered_context<Char>>(args...));
 }

-template <typename Locale, typename S,
-          typename Char = detail::format_string_char_t<S>,
-          FMT_ENABLE_IF(detail::is_locale<Locale>::value&&
-                            detail::is_exotic_char<Char>::value)>
-inline auto vformat(const Locale& loc, const S& fmt,
-                    typename detail::vformat_args<Char>::type args)
+template <typename S, typename Char = detail::format_string_char_t<S>,
+          FMT_ENABLE_IF(detail::is_exotic_char<Char>::value)>
+inline auto vformat(locale_ref loc, const S& fmt,
+                    basic_format_args<buffered_context<Char>> args)
     -> std::basic_string<Char> {
   auto buf = basic_memory_buffer<Char>();
-  detail::vformat_to(buf, detail::to_string_view(fmt), args,
-                     detail::locale_ref(loc));
+  detail::vformat_to(buf, detail::to_string_view(fmt), args, loc);
   return {buf.data(), buf.size()};
 }

-template <typename Locale, typename S, typename... T,
+template <typename S, typename... T,
           typename Char = detail::format_string_char_t<S>,
-          FMT_ENABLE_IF(detail::is_locale<Locale>::value&&
-                            detail::is_exotic_char<Char>::value)>
-inline auto format(const Locale& loc, const S& fmt, T&&... args)
+          FMT_ENABLE_IF(detail::is_exotic_char<Char>::value)>
+inline auto format(locale_ref loc, const S& fmt, T&&... args)
     -> std::basic_string<Char> {
   return vformat(loc, detail::to_string_view(fmt),
                  fmt::make_format_args<buffered_context<Char>>(args...));
@@ -215,7 +217,7 @@ template <typename OutputIt, typename S,
           FMT_ENABLE_IF(detail::is_output_iterator<OutputIt, Char>::value&&
                             detail::is_exotic_char<Char>::value)>
 auto vformat_to(OutputIt out, const S& fmt,
-                typename detail::vformat_args<Char>::type args) -> OutputIt {
+                basic_format_args<buffered_context<Char>> args) -> OutputIt {
   auto&& buf = detail::get_buffer<Char>(out);
   detail::vformat_to(buf, detail::to_string_view(fmt), args);
   return detail::get_iterator(buf, out);
@@ -231,27 +233,24 @@ inline auto format_to(OutputIt out, const S& fmt, T&&... args) -> OutputIt {
                     fmt::make_format_args<buffered_context<Char>>(args...));
 }

-template <typename Locale, typename S, typename OutputIt, typename... Args,
+template <typename S, typename OutputIt, typename... Args,
           typename Char = detail::format_string_char_t<S>,
           FMT_ENABLE_IF(detail::is_output_iterator<OutputIt, Char>::value&&
-                            detail::is_locale<Locale>::value&&
-                                detail::is_exotic_char<Char>::value)>
-inline auto vformat_to(OutputIt out, const Locale& loc, const S& fmt,
-                       typename detail::vformat_args<Char>::type args)
+                            detail::is_exotic_char<Char>::value)>
+inline auto vformat_to(OutputIt out, locale_ref loc, const S& fmt,
+                       basic_format_args<buffered_context<Char>> args)
     -> OutputIt {
   auto&& buf = detail::get_buffer<Char>(out);
-  vformat_to(buf, detail::to_string_view(fmt), args, detail::locale_ref(loc));
+  vformat_to(buf, detail::to_string_view(fmt), args, loc);
   return detail::get_iterator(buf, out);
 }

-template <typename Locale, typename OutputIt, typename S, typename... T,
+template <typename OutputIt, typename S, typename... T,
           typename Char = detail::format_string_char_t<S>,
           bool enable = detail::is_output_iterator<OutputIt, Char>::value &&
-                        detail::is_locale<Locale>::value &&
                         detail::is_exotic_char<Char>::value>
-inline auto format_to(OutputIt out, const Locale& loc, const S& fmt,
-                      T&&... args) ->
-    typename std::enable_if<enable, OutputIt>::type {
+inline auto format_to(OutputIt out, locale_ref loc, const S& fmt, T&&... args)
+    -> typename std::enable_if<enable, OutputIt>::type {
   return vformat_to(out, loc, detail::to_string_view(fmt),
                     fmt::make_format_args<buffered_context<Char>>(args...));
 }
@@ -260,7 +259,7 @@ template <typename OutputIt, typename Char, typename... Args,
           FMT_ENABLE_IF(detail::is_output_iterator<OutputIt, Char>::value&&
                             detail::is_exotic_char<Char>::value)>
 inline auto vformat_to_n(OutputIt out, size_t n, basic_string_view<Char> fmt,
-                         typename detail::vformat_args<Char>::type args)
+                         basic_format_args<buffered_context<Char>> args)
     -> format_to_n_result<OutputIt> {
   using traits = detail::fixed_buffer_traits;
   auto buf = detail::iterator_buffer<OutputIt, Char, traits>(out, n);
@@ -331,18 +330,6 @@ inline auto format(text_style ts, wformat_string<T...> fmt, T&&... args)
   return fmt::vformat(ts, fmt, fmt::make_wformat_args(args...));
 }

-template <typename... T>
-FMT_DEPRECATED void print(std::FILE* f, text_style ts, wformat_string<T...> fmt,
-                          const T&... args) {
-  vprint(f, ts, fmt, fmt::make_wformat_args(args...));
-}
-
-template <typename... T>
-FMT_DEPRECATED void print(text_style ts, wformat_string<T...> fmt,
-                          const T&... args) {
-  return print(stdout, ts, fmt, args...);
-}
-
 inline void vprint(std::wostream& os, wstring_view fmt, wformat_args args) {
   auto buffer = basic_memory_buffer<wchar_t>();
   detail::vformat_to(buffer, fmt, args);
diff --git a/deps/LIEF/third-party/spdlog/include/spdlog/fmt/chrono.h b/deps/LIEF/third-party/spdlog/include/spdlog/fmt/chrono.h
index a72a5bd6410..4da092b8620 100644
--- a/deps/LIEF/third-party/spdlog/include/spdlog/fmt/chrono.h
+++ b/deps/LIEF/third-party/spdlog/include/spdlog/fmt/chrono.h
@@ -10,14 +10,14 @@
 #include <spdlog/tweakme.h>

 #if !defined(SPDLOG_USE_STD_FORMAT)
-    #if !defined(SPDLOG_FMT_EXTERNAL)
-        #ifdef SPDLOG_HEADER_ONLY
-            #ifndef FMT_HEADER_ONLY
-                #define FMT_HEADER_ONLY
-            #endif
-        #endif
-        #include <spdlog/fmt/bundled/chrono.h>
-    #else
-        #include <fmt/chrono.h>
-    #endif
+#if !defined(SPDLOG_FMT_EXTERNAL)
+#ifdef SPDLOG_HEADER_ONLY
+#ifndef FMT_HEADER_ONLY
+#define FMT_HEADER_ONLY
+#endif
+#endif
+#include <spdlog/fmt/bundled/chrono.h>
+#else
+#include <fmt/chrono.h>
+#endif
 #endif
diff --git a/deps/LIEF/third-party/spdlog/include/spdlog/fmt/compile.h b/deps/LIEF/third-party/spdlog/include/spdlog/fmt/compile.h
index 3c9c25d8b19..795e6a3d023 100644
--- a/deps/LIEF/third-party/spdlog/include/spdlog/fmt/compile.h
+++ b/deps/LIEF/third-party/spdlog/include/spdlog/fmt/compile.h
@@ -10,14 +10,14 @@
 #include <spdlog/tweakme.h>

 #if !defined(SPDLOG_USE_STD_FORMAT)
-    #if !defined(SPDLOG_FMT_EXTERNAL)
-        #ifdef SPDLOG_HEADER_ONLY
-            #ifndef FMT_HEADER_ONLY
-                #define FMT_HEADER_ONLY
-            #endif
-        #endif
-        #include <spdlog/fmt/bundled/compile.h>
-    #else
-        #include <fmt/compile.h>
-    #endif
+#if !defined(SPDLOG_FMT_EXTERNAL)
+#ifdef SPDLOG_HEADER_ONLY
+#ifndef FMT_HEADER_ONLY
+#define FMT_HEADER_ONLY
+#endif
+#endif
+#include <spdlog/fmt/bundled/compile.h>
+#else
+#include <fmt/compile.h>
+#endif
 #endif
diff --git a/deps/LIEF/third-party/spdlog/include/spdlog/fmt/fmt.h b/deps/LIEF/third-party/spdlog/include/spdlog/fmt/fmt.h
index 81159e3c174..6b1936d397e 100644
--- a/deps/LIEF/third-party/spdlog/include/spdlog/fmt/fmt.h
+++ b/deps/LIEF/third-party/spdlog/include/spdlog/fmt/fmt.h
@@ -12,19 +12,15 @@
 #include <spdlog/tweakme.h>

 #if defined(SPDLOG_USE_STD_FORMAT)  // SPDLOG_USE_STD_FORMAT is defined - use std::format
-    #include <format>
+#include <format>
 #elif !defined(SPDLOG_FMT_EXTERNAL)
-    #if !defined(SPDLOG_COMPILED_LIB) && !defined(FMT_HEADER_ONLY)
-        #define FMT_HEADER_ONLY
-    #endif
-    #ifndef FMT_USE_WINDOWS_H
-        #define FMT_USE_WINDOWS_H 0
-    #endif
-
-    #include <spdlog/fmt/bundled/base.h>
-    #include <spdlog/fmt/bundled/format.h>
-
+#if !defined(SPDLOG_COMPILED_LIB) && !defined(FMT_HEADER_ONLY)
+#define FMT_HEADER_ONLY
+#endif
+#ifndef FMT_USE_WINDOWS_H
+#define FMT_USE_WINDOWS_H 0
+#endif
+#include <spdlog/fmt/bundled/format.h>
 #else  // SPDLOG_FMT_EXTERNAL is defined - use external fmtlib
-    #include <fmt/base.h>
-    #include <fmt/format.h>
+#include <fmt/format.h>
 #endif
diff --git a/deps/LIEF/third-party/spdlog/include/spdlog/fmt/ostr.h b/deps/LIEF/third-party/spdlog/include/spdlog/fmt/ostr.h
index 2b901055f3c..a9e50e1f531 100644
--- a/deps/LIEF/third-party/spdlog/include/spdlog/fmt/ostr.h
+++ b/deps/LIEF/third-party/spdlog/include/spdlog/fmt/ostr.h
@@ -10,14 +10,14 @@
 #include <spdlog/tweakme.h>

 #if !defined(SPDLOG_USE_STD_FORMAT)
-    #if !defined(SPDLOG_FMT_EXTERNAL)
-        #ifdef SPDLOG_HEADER_ONLY
-            #ifndef FMT_HEADER_ONLY
-                #define FMT_HEADER_ONLY
-            #endif
-        #endif
-        #include <spdlog/fmt/bundled/ostream.h>
-    #else
-        #include <fmt/ostream.h>
-    #endif
+#if !defined(SPDLOG_FMT_EXTERNAL)
+#ifdef SPDLOG_HEADER_ONLY
+#ifndef FMT_HEADER_ONLY
+#define FMT_HEADER_ONLY
+#endif
+#endif
+#include <spdlog/fmt/bundled/ostream.h>
+#else
+#include <fmt/ostream.h>
+#endif
 #endif
diff --git a/deps/LIEF/third-party/spdlog/include/spdlog/fmt/ranges.h b/deps/LIEF/third-party/spdlog/include/spdlog/fmt/ranges.h
index 5bb91e9acb7..117a9e46e7a 100644
--- a/deps/LIEF/third-party/spdlog/include/spdlog/fmt/ranges.h
+++ b/deps/LIEF/third-party/spdlog/include/spdlog/fmt/ranges.h
@@ -10,14 +10,14 @@
 #include <spdlog/tweakme.h>

 #if !defined(SPDLOG_USE_STD_FORMAT)
-    #if !defined(SPDLOG_FMT_EXTERNAL)
-        #ifdef SPDLOG_HEADER_ONLY
-            #ifndef FMT_HEADER_ONLY
-                #define FMT_HEADER_ONLY
-            #endif
-        #endif
-        #include <spdlog/fmt/bundled/ranges.h>
-    #else
-        #include <fmt/ranges.h>
-    #endif
+#if !defined(SPDLOG_FMT_EXTERNAL)
+#ifdef SPDLOG_HEADER_ONLY
+#ifndef FMT_HEADER_ONLY
+#define FMT_HEADER_ONLY
+#endif
+#endif
+#include <spdlog/fmt/bundled/ranges.h>
+#else
+#include <fmt/ranges.h>
+#endif
 #endif
diff --git a/deps/LIEF/third-party/spdlog/include/spdlog/fmt/std.h b/deps/LIEF/third-party/spdlog/include/spdlog/fmt/std.h
index dabe6f69d8b..4a3b828c041 100644
--- a/deps/LIEF/third-party/spdlog/include/spdlog/fmt/std.h
+++ b/deps/LIEF/third-party/spdlog/include/spdlog/fmt/std.h
@@ -11,14 +11,14 @@
 #include <spdlog/tweakme.h>

 #if !defined(SPDLOG_USE_STD_FORMAT)
-    #if !defined(SPDLOG_FMT_EXTERNAL)
-        #ifdef SPDLOG_HEADER_ONLY
-            #ifndef FMT_HEADER_ONLY
-                #define FMT_HEADER_ONLY
-            #endif
-        #endif
-        #include <spdlog/fmt/bundled/std.h>
-    #else
-        #include <fmt/std.h>
-    #endif
+#if !defined(SPDLOG_FMT_EXTERNAL)
+#ifdef SPDLOG_HEADER_ONLY
+#ifndef FMT_HEADER_ONLY
+#define FMT_HEADER_ONLY
+#endif
+#endif
+#include <spdlog/fmt/bundled/std.h>
+#else
+#include <fmt/std.h>
+#endif
 #endif
diff --git a/deps/LIEF/third-party/spdlog/include/spdlog/fmt/xchar.h b/deps/LIEF/third-party/spdlog/include/spdlog/fmt/xchar.h
index 2525f058648..8ce1798830d 100644
--- a/deps/LIEF/third-party/spdlog/include/spdlog/fmt/xchar.h
+++ b/deps/LIEF/third-party/spdlog/include/spdlog/fmt/xchar.h
@@ -10,14 +10,14 @@
 #include <spdlog/tweakme.h>

 #if !defined(SPDLOG_USE_STD_FORMAT)
-    #if !defined(SPDLOG_FMT_EXTERNAL)
-        #ifdef SPDLOG_HEADER_ONLY
-            #ifndef FMT_HEADER_ONLY
-                #define FMT_HEADER_ONLY
-            #endif
-        #endif
-        #include <spdlog/fmt/bundled/xchar.h>
-    #else
-        #include <fmt/xchar.h>
-    #endif
+#if !defined(SPDLOG_FMT_EXTERNAL)
+#ifdef SPDLOG_HEADER_ONLY
+#ifndef FMT_HEADER_ONLY
+#define FMT_HEADER_ONLY
+#endif
+#endif
+#include <spdlog/fmt/bundled/xchar.h>
+#else
+#include <fmt/xchar.h>
+#endif
 #endif
diff --git a/deps/LIEF/third-party/spdlog/include/spdlog/logger-inl.h b/deps/LIEF/third-party/spdlog/include/spdlog/logger-inl.h
index 5218fe4c440..768cee3711e 100644
--- a/deps/LIEF/third-party/spdlog/include/spdlog/logger-inl.h
+++ b/deps/LIEF/third-party/spdlog/include/spdlog/logger-inl.h
@@ -4,7 +4,7 @@
 #pragma once

 #ifndef SPDLOG_HEADER_ONLY
-    #include <spdlog/logger.h>
+#include <spdlog/logger.h>
 #endif

 #include <spdlog/details/backtracer.h>
@@ -57,7 +57,7 @@ SPDLOG_INLINE void logger::swap(spdlog::logger &other) SPDLOG_NOEXCEPT {
     std::swap(tracer_, other.tracer_);
 }

-SPDLOG_INLINE void swap(logger &a, logger &b) { a.swap(b); }
+SPDLOG_INLINE void swap(logger &a, logger &b) noexcept { a.swap(b); }

 SPDLOG_INLINE void logger::set_level(level::level_enum log_level) { level_.store(log_level); }

@@ -163,12 +163,12 @@ SPDLOG_INLINE void logger::dump_backtrace_() {
     }
 }

-SPDLOG_INLINE bool logger::should_flush_(const details::log_msg &msg) {
+SPDLOG_INLINE bool logger::should_flush_(const details::log_msg &msg) const {
     auto flush_level = flush_level_.load(std::memory_order_relaxed);
     return (msg.level >= flush_level) && (msg.level != level::off);
 }

-SPDLOG_INLINE void logger::err_handler_(const std::string &msg) {
+SPDLOG_INLINE void logger::err_handler_(const std::string &msg) const {
     if (custom_err_handler_) {
         custom_err_handler_(msg);
     } else {
diff --git a/deps/LIEF/third-party/spdlog/include/spdlog/logger.h b/deps/LIEF/third-party/spdlog/include/spdlog/logger.h
index f49bdc009a3..9db3c6b3976 100644
--- a/deps/LIEF/third-party/spdlog/include/spdlog/logger.h
+++ b/deps/LIEF/third-party/spdlog/include/spdlog/logger.h
@@ -19,30 +19,30 @@
 #include <spdlog/details/log_msg.h>

 #ifdef SPDLOG_WCHAR_TO_UTF8_SUPPORT
-    #ifndef _WIN32
-        #error SPDLOG_WCHAR_TO_UTF8_SUPPORT only supported on windows
-    #endif
-    #include <spdlog/details/os.h>
+#ifndef _WIN32
+#error SPDLOG_WCHAR_TO_UTF8_SUPPORT only supported on windows
+#endif
+#include <spdlog/details/os.h>
 #endif

 #include <vector>

 #ifndef SPDLOG_NO_EXCEPTIONS
-    #define SPDLOG_LOGGER_CATCH(location)                                                 \
-        catch (const std::exception &ex) {                                                \
-            if (location.filename) {                                                      \
-                err_handler_(fmt_lib::format(SPDLOG_FMT_STRING("{} [{}({})]"), ex.what(), \
-                                             location.filename, location.line));          \
-            } else {                                                                      \
-                err_handler_(ex.what());                                                  \
-            }                                                                             \
-        }                                                                                 \
-        catch (...) {                                                                     \
-            err_handler_("Rethrowing unknown exception in logger");                       \
-            throw;                                                                        \
-        }
+#define SPDLOG_LOGGER_CATCH(location)                                                 \
+    catch (const std::exception &ex) {                                                \
+        if (location.filename) {                                                      \
+            err_handler_(fmt_lib::format(SPDLOG_FMT_STRING("{} [{}({})]"), ex.what(), \
+                                         location.filename, location.line));          \
+        } else {                                                                      \
+            err_handler_(ex.what());                                                  \
+        }                                                                             \
+    }                                                                                 \
+    catch (...) {                                                                     \
+        err_handler_("Rethrowing unknown exception in logger");                       \
+        throw;                                                                        \
+    }
 #else
-    #define SPDLOG_LOGGER_CATCH(location)
+#define SPDLOG_LOGGER_CATCH(location)
 #endif

 namespace spdlog {
@@ -363,17 +363,17 @@ protected:
     virtual void sink_it_(const details::log_msg &msg);
     virtual void flush_();
     void dump_backtrace_();
-    bool should_flush_(const details::log_msg &msg);
+    bool should_flush_(const details::log_msg &msg) const;

     // handle errors during logging.
     // default handler prints the error to stderr at max rate of 1 message/sec.
-    void err_handler_(const std::string &msg);
+    void err_handler_(const std::string &msg) const;
 };

-void swap(logger &a, logger &b);
+void swap(logger &a, logger &b) noexcept;

 }  // namespace spdlog

 #ifdef SPDLOG_HEADER_ONLY
-    #include "logger-inl.h"
+#include "logger-inl.h"
 #endif
diff --git a/deps/LIEF/third-party/spdlog/include/spdlog/mdc.h b/deps/LIEF/third-party/spdlog/include/spdlog/mdc.h
index bc131746e86..2f2665a7819 100644
--- a/deps/LIEF/third-party/spdlog/include/spdlog/mdc.h
+++ b/deps/LIEF/third-party/spdlog/include/spdlog/mdc.h
@@ -4,7 +4,7 @@
 #pragma once

 #if defined(SPDLOG_NO_TLS)
-    #error "This header requires thread local storage support, but SPDLOG_NO_TLS is defined."
+#error "This header requires thread local storage support, but SPDLOG_NO_TLS is defined."
 #endif

 #include <map>
diff --git a/deps/LIEF/third-party/spdlog/include/spdlog/pattern_formatter-inl.h b/deps/LIEF/third-party/spdlog/include/spdlog/pattern_formatter-inl.h
index fd408ed527a..5204f58f01a 100644
--- a/deps/LIEF/third-party/spdlog/include/spdlog/pattern_formatter-inl.h
+++ b/deps/LIEF/third-party/spdlog/include/spdlog/pattern_formatter-inl.h
@@ -4,7 +4,7 @@
 #pragma once

 #ifndef SPDLOG_HEADER_ONLY
-    #include <spdlog/pattern_formatter.h>
+#include <spdlog/pattern_formatter.h>
 #endif

 #include <spdlog/details/fmt_helper.h>
@@ -12,7 +12,7 @@
 #include <spdlog/details/os.h>

 #ifndef SPDLOG_NO_TLS
-    #include <spdlog/mdc.h>
+#include <spdlog/mdc.h>
 #endif

 #include <spdlog/fmt/fmt.h>
@@ -510,11 +510,13 @@ public:
 };

 // ISO 8601 offset from UTC in timezone (+-HH:MM)
+// If SPDLOG_NO_TZ_OFFSET is defined, print "+??.??" instead.
 template <typename ScopedPadder>
 class z_formatter final : public flag_formatter {
 public:
-    explicit z_formatter(padding_info padinfo)
-        : flag_formatter(padinfo) {}
+    explicit z_formatter(padding_info padinfo, pattern_time_type time_type)
+        : flag_formatter(padinfo),
+          time_type_(time_type) {}

     z_formatter() = default;
     z_formatter(const z_formatter &) = delete;
@@ -523,7 +525,15 @@ public:
     void format(const details::log_msg &msg, const std::tm &tm_time, memory_buf_t &dest) override {
         const size_t field_size = 6;
         ScopedPadder p(field_size, padinfo_, dest);
-
+#ifdef SPDLOG_NO_TZ_OFFSET
+        const char *str = "+??:??";
+        dest.append(str, str + 6);
+#else
+        if (time_type_ == pattern_time_type::utc) {
+            const char *zeroes = "+00:00";
+            dest.append(zeroes, zeroes + 6);
+            return;
+        }
         auto total_minutes = get_cached_offset(msg, tm_time);
         bool is_negative = total_minutes < 0;
         if (is_negative) {
@@ -536,9 +546,11 @@ public:
         fmt_helper::pad2(total_minutes / 60, dest);  // hours
         dest.push_back(':');
         fmt_helper::pad2(total_minutes % 60, dest);  // minutes
+#endif  // SPDLOG_NO_TZ_OFFSET
     }

 private:
+    pattern_time_type time_type_;
     log_clock::time_point last_update_{std::chrono::seconds(0)};
     int offset_minutes_{0};

@@ -696,9 +708,9 @@ public:
         : flag_formatter(padinfo) {}

 #ifdef _MSC_VER
-    #pragma warning(push)
-    #pragma warning(disable : 4127)  // consider using 'if constexpr' instead
-#endif                               // _MSC_VER
+#pragma warning(push)
+#pragma warning(disable : 4127)  // consider using 'if constexpr' instead
+#endif                           // _MSC_VER
     static const char *basename(const char *filename) {
         // if the size is 2 (1 character + null terminator) we can use the more efficient strrchr
         // the branch will be elided by optimizations
@@ -715,7 +727,7 @@ public:
         }
     }
 #ifdef _MSC_VER
-    #pragma warning(pop)
+#pragma warning(pop)
 #endif  // _MSC_VER

     void format(const details::log_msg &msg, const std::tm &, memory_buf_t &dest) override {
@@ -1154,12 +1166,11 @@ SPDLOG_INLINE void pattern_formatter::handle_flag_(char flag, details::padding_i
             formatters_.push_back(details::make_unique<details::T_formatter<Padder>>(padding));
             need_localtime_ = true;
             break;
-
         case ('z'):  // timezone
-            formatters_.push_back(details::make_unique<details::z_formatter<Padder>>(padding));
+            formatters_.push_back(
+                details::make_unique<details::z_formatter<Padder>>(padding, pattern_time_type_));
             need_localtime_ = true;
             break;
-
         case ('P'):  // pid
             formatters_.push_back(details::make_unique<details::pid_formatter<Padder>>(padding));
             break;
diff --git a/deps/LIEF/third-party/spdlog/include/spdlog/pattern_formatter.h b/deps/LIEF/third-party/spdlog/include/spdlog/pattern_formatter.h
index ececd67322f..0658161c9b2 100644
--- a/deps/LIEF/third-party/spdlog/include/spdlog/pattern_formatter.h
+++ b/deps/LIEF/third-party/spdlog/include/spdlog/pattern_formatter.h
@@ -114,5 +114,5 @@ private:
 }  // namespace spdlog

 #ifdef SPDLOG_HEADER_ONLY
-    #include "pattern_formatter-inl.h"
+#include "pattern_formatter-inl.h"
 #endif
diff --git a/deps/LIEF/third-party/spdlog/include/spdlog/sinks/android_sink.h b/deps/LIEF/third-party/spdlog/include/spdlog/sinks/android_sink.h
index 4435a560a00..c9e1d27b820 100644
--- a/deps/LIEF/third-party/spdlog/include/spdlog/sinks/android_sink.h
+++ b/deps/LIEF/third-party/spdlog/include/spdlog/sinks/android_sink.h
@@ -5,22 +5,22 @@

 #ifdef __ANDROID__

-    #include <spdlog/details/fmt_helper.h>
-    #include <spdlog/details/null_mutex.h>
-    #include <spdlog/details/os.h>
-    #include <spdlog/details/synchronous_factory.h>
-    #include <spdlog/sinks/base_sink.h>
-
-    #include <android/log.h>
-    #include <chrono>
-    #include <mutex>
-    #include <string>
-    #include <thread>
-    #include <type_traits>
-
-    #if !defined(SPDLOG_ANDROID_RETRIES)
-        #define SPDLOG_ANDROID_RETRIES 2
-    #endif
+#include <spdlog/details/fmt_helper.h>
+#include <spdlog/details/null_mutex.h>
+#include <spdlog/details/os.h>
+#include <spdlog/details/synchronous_factory.h>
+#include <spdlog/sinks/base_sink.h>
+
+#include <android/log.h>
+#include <chrono>
+#include <mutex>
+#include <string>
+#include <thread>
+#include <type_traits>
+
+#if !defined(SPDLOG_ANDROID_RETRIES)
+#define SPDLOG_ANDROID_RETRIES 2
+#endif

 namespace spdlog {
 namespace sinks {
diff --git a/deps/LIEF/third-party/spdlog/include/spdlog/sinks/ansicolor_sink-inl.h b/deps/LIEF/third-party/spdlog/include/spdlog/sinks/ansicolor_sink-inl.h
index 6a23f6c70f5..1d2c5447ca7 100644
--- a/deps/LIEF/third-party/spdlog/include/spdlog/sinks/ansicolor_sink-inl.h
+++ b/deps/LIEF/third-party/spdlog/include/spdlog/sinks/ansicolor_sink-inl.h
@@ -4,7 +4,7 @@
 #pragma once

 #ifndef SPDLOG_HEADER_ONLY
-    #include <spdlog/sinks/ansicolor_sink.h>
+#include <spdlog/sinks/ansicolor_sink.h>
 #endif

 #include <spdlog/details/os.h>
diff --git a/deps/LIEF/third-party/spdlog/include/spdlog/sinks/ansicolor_sink.h b/deps/LIEF/third-party/spdlog/include/spdlog/sinks/ansicolor_sink.h
index 19aa421e6c6..542888fbd20 100644
--- a/deps/LIEF/third-party/spdlog/include/spdlog/sinks/ansicolor_sink.h
+++ b/deps/LIEF/third-party/spdlog/include/spdlog/sinks/ansicolor_sink.h
@@ -40,7 +40,7 @@ public:

     void log(const details::log_msg &msg) override;
     void flush() override;
-    void set_pattern(const std::string &pattern) final override;
+    void set_pattern(const std::string &pattern) override;
     void set_formatter(std::unique_ptr<spdlog::formatter> sink_formatter) override;

     // Formatting codes
@@ -78,8 +78,10 @@ public:
     const string_view_t red_bold = "\033[31m\033[1m";
     const string_view_t bold_on_red = "\033[1m\033[41m";

-private:
+protected:
     FILE *target_file_;
+
+private:
     mutex_t &mutex_;
     bool should_do_colors_;
     std::unique_ptr<spdlog::formatter> formatter_;
@@ -112,5 +114,5 @@ using ansicolor_stderr_sink_st = ansicolor_stderr_sink<details::console_nullmute
 }  // namespace spdlog

 #ifdef SPDLOG_HEADER_ONLY
-    #include "ansicolor_sink-inl.h"
+#include "ansicolor_sink-inl.h"
 #endif
diff --git a/deps/LIEF/third-party/spdlog/include/spdlog/sinks/base_sink-inl.h b/deps/LIEF/third-party/spdlog/include/spdlog/sinks/base_sink-inl.h
index ada161bcc1d..4c3625e53bb 100644
--- a/deps/LIEF/third-party/spdlog/include/spdlog/sinks/base_sink-inl.h
+++ b/deps/LIEF/third-party/spdlog/include/spdlog/sinks/base_sink-inl.h
@@ -4,7 +4,7 @@
 #pragma once

 #ifndef SPDLOG_HEADER_ONLY
-    #include <spdlog/sinks/base_sink.h>
+#include <spdlog/sinks/base_sink.h>
 #endif

 #include <spdlog/common.h>
diff --git a/deps/LIEF/third-party/spdlog/include/spdlog/sinks/base_sink.h b/deps/LIEF/third-party/spdlog/include/spdlog/sinks/base_sink.h
index 1b4bb0689b8..c4fb4fcef65 100644
--- a/deps/LIEF/third-party/spdlog/include/spdlog/sinks/base_sink.h
+++ b/deps/LIEF/third-party/spdlog/include/spdlog/sinks/base_sink.h
@@ -47,5 +47,5 @@ protected:
 }  // namespace spdlog

 #ifdef SPDLOG_HEADER_ONLY
-    #include "base_sink-inl.h"
+#include "base_sink-inl.h"
 #endif
diff --git a/deps/LIEF/third-party/spdlog/include/spdlog/sinks/basic_file_sink-inl.h b/deps/LIEF/third-party/spdlog/include/spdlog/sinks/basic_file_sink-inl.h
index ce0ddad0068..8aec33c75f4 100644
--- a/deps/LIEF/third-party/spdlog/include/spdlog/sinks/basic_file_sink-inl.h
+++ b/deps/LIEF/third-party/spdlog/include/spdlog/sinks/basic_file_sink-inl.h
@@ -4,7 +4,7 @@
 #pragma once

 #ifndef SPDLOG_HEADER_ONLY
-    #include <spdlog/sinks/basic_file_sink.h>
+#include <spdlog/sinks/basic_file_sink.h>
 #endif

 #include <spdlog/common.h>
diff --git a/deps/LIEF/third-party/spdlog/include/spdlog/sinks/basic_file_sink.h b/deps/LIEF/third-party/spdlog/include/spdlog/sinks/basic_file_sink.h
index 48c07671aa4..23ac6c1ac4b 100644
--- a/deps/LIEF/third-party/spdlog/include/spdlog/sinks/basic_file_sink.h
+++ b/deps/LIEF/third-party/spdlog/include/spdlog/sinks/basic_file_sink.h
@@ -62,5 +62,5 @@ inline std::shared_ptr<logger> basic_logger_st(const std::string &logger_name,
 }  // namespace spdlog

 #ifdef SPDLOG_HEADER_ONLY
-    #include "basic_file_sink-inl.h"
+#include "basic_file_sink-inl.h"
 #endif
diff --git a/deps/LIEF/third-party/spdlog/include/spdlog/sinks/msvc_sink.h b/deps/LIEF/third-party/spdlog/include/spdlog/sinks/msvc_sink.h
index c28d6ebd738..1fe9892c40f 100644
--- a/deps/LIEF/third-party/spdlog/include/spdlog/sinks/msvc_sink.h
+++ b/deps/LIEF/third-party/spdlog/include/spdlog/sinks/msvc_sink.h
@@ -5,21 +5,21 @@

 #if defined(_WIN32)

-    #include <spdlog/details/null_mutex.h>
-    #if defined(SPDLOG_WCHAR_TO_UTF8_SUPPORT)
-        #include <spdlog/details/os.h>
-    #endif
-    #include <spdlog/sinks/base_sink.h>
+#include <spdlog/details/null_mutex.h>
+#if defined(SPDLOG_WCHAR_TO_UTF8_SUPPORT)
+#include <spdlog/details/os.h>
+#endif
+#include <spdlog/sinks/base_sink.h>

-    #include <mutex>
-    #include <string>
+#include <mutex>
+#include <string>

-    // Avoid including windows.h (https://stackoverflow.com/a/30741042)
-    #if defined(SPDLOG_WCHAR_TO_UTF8_SUPPORT)
+// Avoid including windows.h (https://stackoverflow.com/a/30741042)
+#if defined(SPDLOG_WCHAR_TO_UTF8_SUPPORT)
 extern "C" __declspec(dllimport) void __stdcall OutputDebugStringW(const wchar_t *lpOutputString);
-    #else
+#else
 extern "C" __declspec(dllimport) void __stdcall OutputDebugStringA(const char *lpOutputString);
-    #endif
+#endif
 extern "C" __declspec(dllimport) int __stdcall IsDebuggerPresent();

 namespace spdlog {
@@ -42,13 +42,13 @@ protected:
         memory_buf_t formatted;
         base_sink<Mutex>::formatter_->format(msg, formatted);
         formatted.push_back('\0');  // add a null terminator for OutputDebugString
-    #if defined(SPDLOG_WCHAR_TO_UTF8_SUPPORT)
+#if defined(SPDLOG_WCHAR_TO_UTF8_SUPPORT)
         wmemory_buf_t wformatted;
         details::os::utf8_to_wstrbuf(string_view_t(formatted.data(), formatted.size()), wformatted);
         OutputDebugStringW(wformatted.data());
-    #else
+#else
         OutputDebugStringA(formatted.data());
-    #endif
+#endif
     }

     void flush_() override {}
diff --git a/deps/LIEF/third-party/spdlog/include/spdlog/sinks/qt_sinks.h b/deps/LIEF/third-party/spdlog/include/spdlog/sinks/qt_sinks.h
index d319e84734c..ce74f888336 100644
--- a/deps/LIEF/third-party/spdlog/include/spdlog/sinks/qt_sinks.h
+++ b/deps/LIEF/third-party/spdlog/include/spdlog/sinks/qt_sinks.h
@@ -160,20 +160,24 @@ protected:
             payload = QString::fromUtf8(str.data(), static_cast<int>(str.size()));
             // convert color ranges from byte index to character index.
             if (msg.color_range_start < msg.color_range_end) {
-                color_range_start = QString::fromUtf8(str.data(), msg.color_range_start).size();
-                color_range_end = QString::fromUtf8(str.data(), msg.color_range_end).size();
+                color_range_start =
+                    QString::fromUtf8(str.data(), static_cast<qsizetype>(msg.color_range_start))
+                        .size();
+                color_range_end =
+                    QString::fromUtf8(str.data(), static_cast<qsizetype>(msg.color_range_end))
+                        .size();
             }
         } else {
             payload = QString::fromLatin1(str.data(), static_cast<int>(str.size()));
         }

-        invoke_params params{max_lines_,             // max lines
-                             qt_text_edit_,          // text edit to append to
-                             std::move(payload),     // text to append
-                             default_color_,         // default color
-                             colors_.at(msg.level),  // color to apply
-                             color_range_start,      // color range start
-                             color_range_end};       // color range end
+        invoke_params params{max_lines_,                                  // max lines
+                             qt_text_edit_,                               // text edit to append to
+                             std::move(payload),                          // text to append
+                             default_color_,                              // default color
+                             colors_.at(static_cast<size_t>(msg.level)),  // color to apply
+                             color_range_start,                           // color range start
+                             color_range_end};                            // color range end

         QMetaObject::invokeMethod(
             qt_text_edit_, [params]() { invoke_method_(params); }, Qt::AutoConnection);
diff --git a/deps/LIEF/third-party/spdlog/include/spdlog/sinks/ringbuffer_sink.h b/deps/LIEF/third-party/spdlog/include/spdlog/sinks/ringbuffer_sink.h
index 6156c6a516b..bcdf0ffca2d 100644
--- a/deps/LIEF/third-party/spdlog/include/spdlog/sinks/ringbuffer_sink.h
+++ b/deps/LIEF/third-party/spdlog/include/spdlog/sinks/ringbuffer_sink.h
@@ -21,7 +21,11 @@ template <typename Mutex>
 class ringbuffer_sink final : public base_sink<Mutex> {
 public:
     explicit ringbuffer_sink(size_t n_items)
-        : q_{n_items} {}
+        : q_{n_items} {
+        if (n_items == 0) {
+            throw_spdlog_ex("ringbuffer_sink: n_items cannot be zero");
+        }
+    }

     std::vector<details::log_msg_buffer> last_raw(size_t lim = 0) {
         std::lock_guard<Mutex> lock(base_sink<Mutex>::mutex_);
diff --git a/deps/LIEF/third-party/spdlog/include/spdlog/sinks/rotating_file_sink-inl.h b/deps/LIEF/third-party/spdlog/include/spdlog/sinks/rotating_file_sink-inl.h
index a3694d86675..370fa7c29d2 100644
--- a/deps/LIEF/third-party/spdlog/include/spdlog/sinks/rotating_file_sink-inl.h
+++ b/deps/LIEF/third-party/spdlog/include/spdlog/sinks/rotating_file_sink-inl.h
@@ -4,7 +4,7 @@
 #pragma once

 #ifndef SPDLOG_HEADER_ONLY
-    #include <spdlog/sinks/rotating_file_sink.h>
+#include <spdlog/sinks/rotating_file_sink.h>
 #endif

 #include <spdlog/common.h>
diff --git a/deps/LIEF/third-party/spdlog/include/spdlog/sinks/rotating_file_sink.h b/deps/LIEF/third-party/spdlog/include/spdlog/sinks/rotating_file_sink.h
index 72302e69dc6..522dab63a3b 100644
--- a/deps/LIEF/third-party/spdlog/include/spdlog/sinks/rotating_file_sink.h
+++ b/deps/LIEF/third-party/spdlog/include/spdlog/sinks/rotating_file_sink.h
@@ -89,5 +89,5 @@ std::shared_ptr<logger> rotating_logger_st(const std::string &logger_name,
 }  // namespace spdlog

 #ifdef SPDLOG_HEADER_ONLY
-    #include "rotating_file_sink-inl.h"
+#include "rotating_file_sink-inl.h"
 #endif
diff --git a/deps/LIEF/third-party/spdlog/include/spdlog/sinks/sink-inl.h b/deps/LIEF/third-party/spdlog/include/spdlog/sinks/sink-inl.h
index e4b271404fd..7ffb33e94b5 100644
--- a/deps/LIEF/third-party/spdlog/include/spdlog/sinks/sink-inl.h
+++ b/deps/LIEF/third-party/spdlog/include/spdlog/sinks/sink-inl.h
@@ -4,7 +4,7 @@
 #pragma once

 #ifndef SPDLOG_HEADER_ONLY
-    #include <spdlog/sinks/sink.h>
+#include <spdlog/sinks/sink.h>
 #endif

 #include <spdlog/common.h>
diff --git a/deps/LIEF/third-party/spdlog/include/spdlog/sinks/sink.h b/deps/LIEF/third-party/spdlog/include/spdlog/sinks/sink.h
index 58506853640..9c39522f4c1 100644
--- a/deps/LIEF/third-party/spdlog/include/spdlog/sinks/sink.h
+++ b/deps/LIEF/third-party/spdlog/include/spdlog/sinks/sink.h
@@ -30,5 +30,5 @@ protected:
 }  // namespace spdlog

 #ifdef SPDLOG_HEADER_ONLY
-    #include "sink-inl.h"
+#include "sink-inl.h"
 #endif
diff --git a/deps/LIEF/third-party/spdlog/include/spdlog/sinks/stdout_color_sinks-inl.h b/deps/LIEF/third-party/spdlog/include/spdlog/sinks/stdout_color_sinks-inl.h
index 166e386145f..74c811309a1 100644
--- a/deps/LIEF/third-party/spdlog/include/spdlog/sinks/stdout_color_sinks-inl.h
+++ b/deps/LIEF/third-party/spdlog/include/spdlog/sinks/stdout_color_sinks-inl.h
@@ -4,7 +4,7 @@
 #pragma once

 #ifndef SPDLOG_HEADER_ONLY
-    #include <spdlog/sinks/stdout_color_sinks.h>
+#include <spdlog/sinks/stdout_color_sinks.h>
 #endif

 #include <spdlog/common.h>
diff --git a/deps/LIEF/third-party/spdlog/include/spdlog/sinks/stdout_color_sinks.h b/deps/LIEF/third-party/spdlog/include/spdlog/sinks/stdout_color_sinks.h
index 72991fe0ed4..9ce26724a4f 100644
--- a/deps/LIEF/third-party/spdlog/include/spdlog/sinks/stdout_color_sinks.h
+++ b/deps/LIEF/third-party/spdlog/include/spdlog/sinks/stdout_color_sinks.h
@@ -4,9 +4,9 @@
 #pragma once

 #ifdef _WIN32
-    #include <spdlog/sinks/wincolor_sink.h>
+#include <spdlog/sinks/wincolor_sink.h>
 #else
-    #include <spdlog/sinks/ansicolor_sink.h>
+#include <spdlog/sinks/ansicolor_sink.h>
 #endif

 #include <spdlog/details/synchronous_factory.h>
@@ -45,5 +45,5 @@ std::shared_ptr<logger> stderr_color_st(const std::string &logger_name,
 }  // namespace spdlog

 #ifdef SPDLOG_HEADER_ONLY
-    #include "stdout_color_sinks-inl.h"
+#include "stdout_color_sinks-inl.h"
 #endif
diff --git a/deps/LIEF/third-party/spdlog/include/spdlog/sinks/stdout_sinks-inl.h b/deps/LIEF/third-party/spdlog/include/spdlog/sinks/stdout_sinks-inl.h
index dcb21d84a73..74ec1414d16 100644
--- a/deps/LIEF/third-party/spdlog/include/spdlog/sinks/stdout_sinks-inl.h
+++ b/deps/LIEF/third-party/spdlog/include/spdlog/sinks/stdout_sinks-inl.h
@@ -4,7 +4,7 @@
 #pragma once

 #ifndef SPDLOG_HEADER_ONLY
-    #include <spdlog/sinks/stdout_sinks.h>
+#include <spdlog/sinks/stdout_sinks.h>
 #endif

 #include <memory>
@@ -13,17 +13,17 @@
 #include <spdlog/details/os.h>

 #ifdef _WIN32
-    // under windows using fwrite to non-binary stream results in \r\r\n (see issue #1675)
-    // so instead we use ::FileWrite
-    #include <spdlog/details/windows_include.h>
+// under windows using fwrite to non-binary stream results in \r\r\n (see issue #1675)
+// so instead we use ::FileWrite
+#include <spdlog/details/windows_include.h>

-    #ifndef _USING_V110_SDK71_  // fileapi.h doesn't exist in winxp
-        #include <fileapi.h>    // WriteFile (..)
-    #endif
+#ifndef _USING_V110_SDK71_  // fileapi.h doesn't exist in winxp
+#include <fileapi.h>        // WriteFile (..)
+#endif

-    #include <io.h>     // _get_osfhandle(..)
-    #include <stdio.h>  // _fileno(..)
-#endif                  // _WIN32
+#include <io.h>     // _get_osfhandle(..)
+#include <stdio.h>  // _fileno(..)
+#endif              // _WIN32

 namespace spdlog {

diff --git a/deps/LIEF/third-party/spdlog/include/spdlog/sinks/stdout_sinks.h b/deps/LIEF/third-party/spdlog/include/spdlog/sinks/stdout_sinks.h
index 6ef09968a45..0b36c16f9ce 100644
--- a/deps/LIEF/third-party/spdlog/include/spdlog/sinks/stdout_sinks.h
+++ b/deps/LIEF/third-party/spdlog/include/spdlog/sinks/stdout_sinks.h
@@ -9,7 +9,7 @@
 #include <spdlog/sinks/sink.h>

 #ifdef _WIN32
-    #include <spdlog/details/windows_include.h>
+#include <spdlog/details/windows_include.h>
 #endif

 namespace spdlog {
@@ -80,5 +80,5 @@ std::shared_ptr<logger> stderr_logger_st(const std::string &logger_name);
 }  // namespace spdlog

 #ifdef SPDLOG_HEADER_ONLY
-    #include "stdout_sinks-inl.h"
+#include "stdout_sinks-inl.h"
 #endif
diff --git a/deps/LIEF/third-party/spdlog/include/spdlog/sinks/systemd_sink.h b/deps/LIEF/third-party/spdlog/include/spdlog/sinks/systemd_sink.h
index d2cd55f2e91..1ad32ce7752 100644
--- a/deps/LIEF/third-party/spdlog/include/spdlog/sinks/systemd_sink.h
+++ b/deps/LIEF/third-party/spdlog/include/spdlog/sinks/systemd_sink.h
@@ -10,7 +10,7 @@

 #include <array>
 #ifndef SD_JOURNAL_SUPPRESS_LOCATION
-    #define SD_JOURNAL_SUPPRESS_LOCATION
+#define SD_JOURNAL_SUPPRESS_LOCATION
 #endif
 #include <systemd/sd-journal.h>

diff --git a/deps/LIEF/third-party/spdlog/include/spdlog/sinks/tcp_sink.h b/deps/LIEF/third-party/spdlog/include/spdlog/sinks/tcp_sink.h
index 2534964549a..cffd4339aac 100644
--- a/deps/LIEF/third-party/spdlog/include/spdlog/sinks/tcp_sink.h
+++ b/deps/LIEF/third-party/spdlog/include/spdlog/sinks/tcp_sink.h
@@ -7,9 +7,9 @@
 #include <spdlog/details/null_mutex.h>
 #include <spdlog/sinks/base_sink.h>
 #ifdef _WIN32
-    #include <spdlog/details/tcp_client-windows.h>
+#include <spdlog/details/tcp_client-windows.h>
 #else
-    #include <spdlog/details/tcp_client.h>
+#include <spdlog/details/tcp_client.h>
 #endif

 #include <chrono>
@@ -31,6 +31,8 @@ namespace sinks {
 struct tcp_sink_config {
     std::string server_host;
     int server_port;
+    int timeout_ms =
+        0;  // The timeout for all 3 major socket operations that is connect, send, and recv
     bool lazy_connect = false;  // if true connect on first log call instead of on construction

     tcp_sink_config(std::string host, int port)
@@ -44,10 +46,22 @@ public:
     // connect to tcp host/port or throw if failed
     // host can be hostname or ip address

+    explicit tcp_sink(const std::string &host,
+                      int port,
+                      int timeout_ms = 0,
+                      bool lazy_connect = false)
+        : config_{host, port} {
+        config_.timeout_ms = timeout_ms;
+        config_.lazy_connect = lazy_connect;
+        if (!config_.lazy_connect) {
+            client_.connect(config_.server_host, config_.server_port, config_.timeout_ms);
+        }
+    }
+
     explicit tcp_sink(tcp_sink_config sink_config)
         : config_{std::move(sink_config)} {
         if (!config_.lazy_connect) {
-            this->client_.connect(config_.server_host, config_.server_port);
+            client_.connect(config_.server_host, config_.server_port, config_.timeout_ms);
         }
     }

@@ -58,7 +72,7 @@ protected:
         spdlog::memory_buf_t formatted;
         spdlog::sinks::base_sink<Mutex>::formatter_->format(msg, formatted);
         if (!client_.is_connected()) {
-            client_.connect(config_.server_host, config_.server_port);
+            client_.connect(config_.server_host, config_.server_port, config_.timeout_ms);
         }
         client_.send(formatted.data(), formatted.size());
     }
diff --git a/deps/LIEF/third-party/spdlog/include/spdlog/sinks/udp_sink.h b/deps/LIEF/third-party/spdlog/include/spdlog/sinks/udp_sink.h
index 4bff0fd2c00..6f287719004 100644
--- a/deps/LIEF/third-party/spdlog/include/spdlog/sinks/udp_sink.h
+++ b/deps/LIEF/third-party/spdlog/include/spdlog/sinks/udp_sink.h
@@ -7,9 +7,9 @@
 #include <spdlog/details/null_mutex.h>
 #include <spdlog/sinks/base_sink.h>
 #ifdef _WIN32
-    #include <spdlog/details/udp_client-windows.h>
+#include <spdlog/details/udp_client-windows.h>
 #else
-    #include <spdlog/details/udp_client.h>
+#include <spdlog/details/udp_client.h>
 #endif

 #include <chrono>
diff --git a/deps/LIEF/third-party/spdlog/include/spdlog/sinks/wincolor_sink-inl.h b/deps/LIEF/third-party/spdlog/include/spdlog/sinks/wincolor_sink-inl.h
index a9c0fa25c76..910115c5d3d 100644
--- a/deps/LIEF/third-party/spdlog/include/spdlog/sinks/wincolor_sink-inl.h
+++ b/deps/LIEF/third-party/spdlog/include/spdlog/sinks/wincolor_sink-inl.h
@@ -4,7 +4,7 @@
 #pragma once

 #ifndef SPDLOG_HEADER_ONLY
-    #include <spdlog/sinks/wincolor_sink.h>
+#include <spdlog/sinks/wincolor_sink.h>
 #endif

 #include <spdlog/details/windows_include.h>
diff --git a/deps/LIEF/third-party/spdlog/include/spdlog/sinks/wincolor_sink.h b/deps/LIEF/third-party/spdlog/include/spdlog/sinks/wincolor_sink.h
index 8ba594cc2b9..743241c8bc9 100644
--- a/deps/LIEF/third-party/spdlog/include/spdlog/sinks/wincolor_sink.h
+++ b/deps/LIEF/third-party/spdlog/include/spdlog/sinks/wincolor_sink.h
@@ -31,10 +31,10 @@ public:

     // change the color for the given level
     void set_color(level::level_enum level, std::uint16_t color);
-    void log(const details::log_msg &msg) final override;
-    void flush() final override;
-    void set_pattern(const std::string &pattern) override final;
-    void set_formatter(std::unique_ptr<spdlog::formatter> sink_formatter) override final;
+    void log(const details::log_msg &msg) override;
+    void flush() override;
+    void set_pattern(const std::string &pattern) override;
+    void set_formatter(std::unique_ptr<spdlog::formatter> sink_formatter) override;
     void set_color_mode(color_mode mode);

 protected:
@@ -78,5 +78,5 @@ using wincolor_stderr_sink_st = wincolor_stderr_sink<details::console_nullmutex>
 }  // namespace spdlog

 #ifdef SPDLOG_HEADER_ONLY
-    #include "wincolor_sink-inl.h"
+#include "wincolor_sink-inl.h"
 #endif
diff --git a/deps/LIEF/third-party/spdlog/include/spdlog/spdlog-inl.h b/deps/LIEF/third-party/spdlog/include/spdlog/spdlog-inl.h
index e02081fe393..56f191689cf 100644
--- a/deps/LIEF/third-party/spdlog/include/spdlog/spdlog-inl.h
+++ b/deps/LIEF/third-party/spdlog/include/spdlog/spdlog-inl.h
@@ -4,7 +4,7 @@
 #pragma once

 #ifndef SPDLOG_HEADER_ONLY
-    #include <spdlog/spdlog.h>
+#include <spdlog/spdlog.h>
 #endif

 #include <spdlog/common.h>
diff --git a/deps/LIEF/third-party/spdlog/include/spdlog/spdlog.h b/deps/LIEF/third-party/spdlog/include/spdlog/spdlog.h
index 1a927ffc924..681045e190c 100644
--- a/deps/LIEF/third-party/spdlog/include/spdlog/spdlog.h
+++ b/deps/LIEF/third-party/spdlog/include/spdlog/spdlog.h
@@ -289,69 +289,66 @@ inline void critical(const T &msg) {
 //

 #ifndef SPDLOG_NO_SOURCE_LOC
-    #define SPDLOG_LOGGER_CALL(logger, level, ...) \
-        (logger)->log(spdlog::source_loc{__FILE__, __LINE__, SPDLOG_FUNCTION}, level, __VA_ARGS__)
+#define SPDLOG_LOGGER_CALL(logger, level, ...) \
+    (logger)->log(spdlog::source_loc{__FILE__, __LINE__, SPDLOG_FUNCTION}, level, __VA_ARGS__)
 #else
-    #define SPDLOG_LOGGER_CALL(logger, level, ...) \
-        (logger)->log(spdlog::source_loc{}, level, __VA_ARGS__)
+#define SPDLOG_LOGGER_CALL(logger, level, ...) \
+    (logger)->log(spdlog::source_loc{}, level, __VA_ARGS__)
 #endif

 #if SPDLOG_ACTIVE_LEVEL <= SPDLOG_LEVEL_TRACE
-    #define SPDLOG_LOGGER_TRACE(logger, ...) \
-        SPDLOG_LOGGER_CALL(logger, spdlog::level::trace, __VA_ARGS__)
-    #define SPDLOG_TRACE(...) SPDLOG_LOGGER_TRACE(spdlog::default_logger_raw(), __VA_ARGS__)
+#define SPDLOG_LOGGER_TRACE(logger, ...) \
+    SPDLOG_LOGGER_CALL(logger, spdlog::level::trace, __VA_ARGS__)
+#define SPDLOG_TRACE(...) SPDLOG_LOGGER_TRACE(spdlog::default_logger_raw(), __VA_ARGS__)
 #else
-    #define SPDLOG_LOGGER_TRACE(logger, ...) (void)0
-    #define SPDLOG_TRACE(...) (void)0
+#define SPDLOG_LOGGER_TRACE(logger, ...) (void)0
+#define SPDLOG_TRACE(...) (void)0
 #endif

 #if SPDLOG_ACTIVE_LEVEL <= SPDLOG_LEVEL_DEBUG
-    #define SPDLOG_LOGGER_DEBUG(logger, ...) \
-        SPDLOG_LOGGER_CALL(logger, spdlog::level::debug, __VA_ARGS__)
-    #define SPDLOG_DEBUG(...) SPDLOG_LOGGER_DEBUG(spdlog::default_logger_raw(), __VA_ARGS__)
+#define SPDLOG_LOGGER_DEBUG(logger, ...) \
+    SPDLOG_LOGGER_CALL(logger, spdlog::level::debug, __VA_ARGS__)
+#define SPDLOG_DEBUG(...) SPDLOG_LOGGER_DEBUG(spdlog::default_logger_raw(), __VA_ARGS__)
 #else
-    #define SPDLOG_LOGGER_DEBUG(logger, ...) (void)0
-    #define SPDLOG_DEBUG(...) (void)0
+#define SPDLOG_LOGGER_DEBUG(logger, ...) (void)0
+#define SPDLOG_DEBUG(...) (void)0
 #endif

 #if SPDLOG_ACTIVE_LEVEL <= SPDLOG_LEVEL_INFO
-    #define SPDLOG_LOGGER_INFO(logger, ...) \
-        SPDLOG_LOGGER_CALL(logger, spdlog::level::info, __VA_ARGS__)
-    #define SPDLOG_INFO(...) SPDLOG_LOGGER_INFO(spdlog::default_logger_raw(), __VA_ARGS__)
+#define SPDLOG_LOGGER_INFO(logger, ...) SPDLOG_LOGGER_CALL(logger, spdlog::level::info, __VA_ARGS__)
+#define SPDLOG_INFO(...) SPDLOG_LOGGER_INFO(spdlog::default_logger_raw(), __VA_ARGS__)
 #else
-    #define SPDLOG_LOGGER_INFO(logger, ...) (void)0
-    #define SPDLOG_INFO(...) (void)0
+#define SPDLOG_LOGGER_INFO(logger, ...) (void)0
+#define SPDLOG_INFO(...) (void)0
 #endif

 #if SPDLOG_ACTIVE_LEVEL <= SPDLOG_LEVEL_WARN
-    #define SPDLOG_LOGGER_WARN(logger, ...) \
-        SPDLOG_LOGGER_CALL(logger, spdlog::level::warn, __VA_ARGS__)
-    #define SPDLOG_WARN(...) SPDLOG_LOGGER_WARN(spdlog::default_logger_raw(), __VA_ARGS__)
+#define SPDLOG_LOGGER_WARN(logger, ...) SPDLOG_LOGGER_CALL(logger, spdlog::level::warn, __VA_ARGS__)
+#define SPDLOG_WARN(...) SPDLOG_LOGGER_WARN(spdlog::default_logger_raw(), __VA_ARGS__)
 #else
-    #define SPDLOG_LOGGER_WARN(logger, ...) (void)0
-    #define SPDLOG_WARN(...) (void)0
+#define SPDLOG_LOGGER_WARN(logger, ...) (void)0
+#define SPDLOG_WARN(...) (void)0
 #endif

 #if SPDLOG_ACTIVE_LEVEL <= SPDLOG_LEVEL_ERROR
-    #define SPDLOG_LOGGER_ERROR(logger, ...) \
-        SPDLOG_LOGGER_CALL(logger, spdlog::level::err, __VA_ARGS__)
-    #define SPDLOG_ERROR(...) SPDLOG_LOGGER_ERROR(spdlog::default_logger_raw(), __VA_ARGS__)
+#define SPDLOG_LOGGER_ERROR(logger, ...) SPDLOG_LOGGER_CALL(logger, spdlog::level::err, __VA_ARGS__)
+#define SPDLOG_ERROR(...) SPDLOG_LOGGER_ERROR(spdlog::default_logger_raw(), __VA_ARGS__)
 #else
-    #define SPDLOG_LOGGER_ERROR(logger, ...) (void)0
-    #define SPDLOG_ERROR(...) (void)0
+#define SPDLOG_LOGGER_ERROR(logger, ...) (void)0
+#define SPDLOG_ERROR(...) (void)0
 #endif

 #if SPDLOG_ACTIVE_LEVEL <= SPDLOG_LEVEL_CRITICAL
-    #define SPDLOG_LOGGER_CRITICAL(logger, ...) \
-        SPDLOG_LOGGER_CALL(logger, spdlog::level::critical, __VA_ARGS__)
-    #define SPDLOG_CRITICAL(...) SPDLOG_LOGGER_CRITICAL(spdlog::default_logger_raw(), __VA_ARGS__)
+#define SPDLOG_LOGGER_CRITICAL(logger, ...) \
+    SPDLOG_LOGGER_CALL(logger, spdlog::level::critical, __VA_ARGS__)
+#define SPDLOG_CRITICAL(...) SPDLOG_LOGGER_CRITICAL(spdlog::default_logger_raw(), __VA_ARGS__)
 #else
-    #define SPDLOG_LOGGER_CRITICAL(logger, ...) (void)0
-    #define SPDLOG_CRITICAL(...) (void)0
+#define SPDLOG_LOGGER_CRITICAL(logger, ...) (void)0
+#define SPDLOG_CRITICAL(...) (void)0
 #endif

 #ifdef SPDLOG_HEADER_ONLY
-    #include "spdlog-inl.h"
+#include "spdlog-inl.h"
 #endif

 #endif  // SPDLOG_H
diff --git a/deps/LIEF/third-party/spdlog/include/spdlog/version.h b/deps/LIEF/third-party/spdlog/include/spdlog/version.h
index d89947b59ca..f8e0806cce3 100644
--- a/deps/LIEF/third-party/spdlog/include/spdlog/version.h
+++ b/deps/LIEF/third-party/spdlog/include/spdlog/version.h
@@ -4,8 +4,8 @@
 #pragma once

 #define SPDLOG_VER_MAJOR 1
-#define SPDLOG_VER_MINOR 15
-#define SPDLOG_VER_PATCH 3
+#define SPDLOG_VER_MINOR 17
+#define SPDLOG_VER_PATCH 0

 #define SPDLOG_TO_VERSION(major, minor, patch) (major * 10000 + minor * 100 + patch)
 #define SPDLOG_VERSION SPDLOG_TO_VERSION(SPDLOG_VER_MAJOR, SPDLOG_VER_MINOR, SPDLOG_VER_PATCH)
diff --git a/deps/LIEF/third-party/spdlog/src/async.cpp b/deps/LIEF/third-party/spdlog/src/async.cpp
index 026185ac49c..77a072992d5 100644
--- a/deps/LIEF/third-party/spdlog/src/async.cpp
+++ b/deps/LIEF/third-party/spdlog/src/async.cpp
@@ -2,7 +2,7 @@
 // Distributed under the MIT License (http://opensource.org/licenses/MIT)

 #ifndef SPDLOG_COMPILED_LIB
-    #error Please define SPDLOG_COMPILED_LIB to compile this file.
+#error Please define SPDLOG_COMPILED_LIB to compile this file.
 #endif

 #include <spdlog/async.h>
diff --git a/deps/LIEF/third-party/spdlog/src/bundled_fmtlib_format.cpp b/deps/LIEF/third-party/spdlog/src/bundled_fmtlib_format.cpp
index 267a8ed1d2a..8ec479cb187 100644
--- a/deps/LIEF/third-party/spdlog/src/bundled_fmtlib_format.cpp
+++ b/deps/LIEF/third-party/spdlog/src/bundled_fmtlib_format.cpp
@@ -3,44 +3,43 @@
 // All rights reserved.

 #ifndef SPDLOG_COMPILED_LIB
-    #error Please define SPDLOG_COMPILED_LIB to compile this file.
+#error Please define SPDLOG_COMPILED_LIB to compile this file.
 #endif

 #if !defined(SPDLOG_FMT_EXTERNAL) && !defined(SPDLOG_USE_STD_FORMAT)

-    #include <spdlog/fmt/bundled/format-inl.h>
+#include <spdlog/fmt/bundled/format-inl.h>

 FMT_BEGIN_NAMESPACE
-namespace detail {
-
-template FMT_API auto dragonbox::to_decimal(float x) noexcept -> dragonbox::decimal_fp<float>;
-template FMT_API auto dragonbox::to_decimal(double x) noexcept -> dragonbox::decimal_fp<double>;

-    #if FMT_USE_LOCALE
-// DEPRECATED! locale_ref in the detail namespace
-template FMT_API locale_ref::locale_ref(const std::locale& loc);
+#if FMT_USE_LOCALE
+template FMT_API locale_ref::locale_ref(const std::locale& loc);  // DEPRECATED!
 template FMT_API auto locale_ref::get<std::locale>() const -> std::locale;
-    #endif
+#endif
+
+namespace detail {
+
+template FMT_API auto dragonbox::to_decimal(float x) noexcept
+    -> dragonbox::decimal_fp<float>;
+template FMT_API auto dragonbox::to_decimal(double x) noexcept
+    -> dragonbox::decimal_fp<double>;

 // Explicit instantiations for char.

-template FMT_API auto thousands_sep_impl(locale_ref) -> thousands_sep_result<char>;
+template FMT_API auto thousands_sep_impl(locale_ref)
+    -> thousands_sep_result<char>;
 template FMT_API auto decimal_point_impl(locale_ref) -> char;

 // DEPRECATED!
 template FMT_API void buffer<char>::append(const char*, const char*);

-// DEPRECATED!
-template FMT_API void vformat_to(buffer<char>&,
-                                 string_view,
-                                 typename vformat_args<>::type,
-                                 locale_ref);
-
 // Explicit instantiations for wchar_t.

-template FMT_API auto thousands_sep_impl(locale_ref) -> thousands_sep_result<wchar_t>;
+template FMT_API auto thousands_sep_impl(locale_ref)
+    -> thousands_sep_result<wchar_t>;
 template FMT_API auto decimal_point_impl(locale_ref) -> wchar_t;

+// DEPRECATED!
 template FMT_API void buffer<wchar_t>::append(const wchar_t*, const wchar_t*);

 }  // namespace detail
diff --git a/deps/LIEF/third-party/spdlog/src/cfg.cpp b/deps/LIEF/third-party/spdlog/src/cfg.cpp
index ebdea166123..98a96ca2f6e 100644
--- a/deps/LIEF/third-party/spdlog/src/cfg.cpp
+++ b/deps/LIEF/third-party/spdlog/src/cfg.cpp
@@ -2,7 +2,7 @@
 // Distributed under the MIT License (http://opensource.org/licenses/MIT)

 #ifndef SPDLOG_COMPILED_LIB
-    #error Please define SPDLOG_COMPILED_LIB to compile this file.
+#error Please define SPDLOG_COMPILED_LIB to compile this file.
 #endif

 #include <spdlog/cfg/helpers-inl.h>
diff --git a/deps/LIEF/third-party/spdlog/src/color_sinks.cpp b/deps/LIEF/third-party/spdlog/src/color_sinks.cpp
index c44db197462..6ee94327d0f 100644
--- a/deps/LIEF/third-party/spdlog/src/color_sinks.cpp
+++ b/deps/LIEF/third-party/spdlog/src/color_sinks.cpp
@@ -2,7 +2,7 @@
 // Distributed under the MIT License (http://opensource.org/licenses/MIT)

 #ifndef SPDLOG_COMPILED_LIB
-    #error Please define SPDLOG_COMPILED_LIB to compile this file.
+#error Please define SPDLOG_COMPILED_LIB to compile this file.
 #endif

 #include <mutex>
@@ -13,7 +13,7 @@
 // color sinks
 //
 #ifdef _WIN32
-    #include <spdlog/sinks/wincolor_sink-inl.h>
+#include <spdlog/sinks/wincolor_sink-inl.h>
 template class SPDLOG_API spdlog::sinks::wincolor_sink<spdlog::details::console_mutex>;
 template class SPDLOG_API spdlog::sinks::wincolor_sink<spdlog::details::console_nullmutex>;
 template class SPDLOG_API spdlog::sinks::wincolor_stdout_sink<spdlog::details::console_mutex>;
@@ -21,7 +21,7 @@ template class SPDLOG_API spdlog::sinks::wincolor_stdout_sink<spdlog::details::c
 template class SPDLOG_API spdlog::sinks::wincolor_stderr_sink<spdlog::details::console_mutex>;
 template class SPDLOG_API spdlog::sinks::wincolor_stderr_sink<spdlog::details::console_nullmutex>;
 #else
-    #include "spdlog/sinks/ansicolor_sink-inl.h"
+#include "spdlog/sinks/ansicolor_sink-inl.h"
 template class SPDLOG_API spdlog::sinks::ansicolor_sink<spdlog::details::console_mutex>;
 template class SPDLOG_API spdlog::sinks::ansicolor_sink<spdlog::details::console_nullmutex>;
 template class SPDLOG_API spdlog::sinks::ansicolor_stdout_sink<spdlog::details::console_mutex>;
diff --git a/deps/LIEF/third-party/spdlog/src/file_sinks.cpp b/deps/LIEF/third-party/spdlog/src/file_sinks.cpp
index 04cb6c10762..809883f05ed 100644
--- a/deps/LIEF/third-party/spdlog/src/file_sinks.cpp
+++ b/deps/LIEF/third-party/spdlog/src/file_sinks.cpp
@@ -2,7 +2,7 @@
 // Distributed under the MIT License (http://opensource.org/licenses/MIT)

 #ifndef SPDLOG_COMPILED_LIB
-    #error Please define SPDLOG_COMPILED_LIB to compile this file.
+#error Please define SPDLOG_COMPILED_LIB to compile this file.
 #endif

 #include <spdlog/details/file_helper-inl.h>
diff --git a/deps/LIEF/third-party/spdlog/src/spdlog.cpp b/deps/LIEF/third-party/spdlog/src/spdlog.cpp
index 9f8390bc024..c6c85149b91 100644
--- a/deps/LIEF/third-party/spdlog/src/spdlog.cpp
+++ b/deps/LIEF/third-party/spdlog/src/spdlog.cpp
@@ -2,7 +2,7 @@
 // Distributed under the MIT License (http://opensource.org/licenses/MIT)

 #ifndef SPDLOG_COMPILED_LIB
-    #error Please define SPDLOG_COMPILED_LIB to compile this file.
+#error Please define SPDLOG_COMPILED_LIB to compile this file.
 #endif

 #include <spdlog/common-inl.h>
diff --git a/deps/LIEF/third-party/spdlog/src/stdout_sinks.cpp b/deps/LIEF/third-party/spdlog/src/stdout_sinks.cpp
index bf4cfae286e..d9d8ba4f75e 100644
--- a/deps/LIEF/third-party/spdlog/src/stdout_sinks.cpp
+++ b/deps/LIEF/third-party/spdlog/src/stdout_sinks.cpp
@@ -2,7 +2,7 @@
 // Distributed under the MIT License (http://opensource.org/licenses/MIT)

 #ifndef SPDLOG_COMPILED_LIB
-    #error Please define SPDLOG_COMPILED_LIB to compile this file.
+#error Please define SPDLOG_COMPILED_LIB to compile this file.
 #endif

 #include <mutex>
diff --git a/deps/LIEF/third-party/utfcpp/source/utf8/checked.h b/deps/LIEF/third-party/utfcpp/source/utf8/checked.h
index 98949f8bca1..96ceb4d5041 100644
--- a/deps/LIEF/third-party/utfcpp/source/utf8/checked.h
+++ b/deps/LIEF/third-party/utfcpp/source/utf8/checked.h
@@ -129,7 +129,7 @@ namespace utf8
     template <typename octet_iterator, typename output_iterator>
     inline output_iterator replace_invalid(octet_iterator start, octet_iterator end, output_iterator out)
     {
-        static const utfchar32_t replacement_marker = utf8::internal::mask16(0xfffd);
+        static const utfchar32_t replacement_marker = static_cast<utfchar32_t>(utf8::internal::mask16(0xfffd));
         return utf8::replace_invalid(start, end, out, replacement_marker);
     }

@@ -227,11 +227,11 @@ namespace utf8
     octet_iterator utf16to8 (u16bit_iterator start, u16bit_iterator end, octet_iterator result)
     {
         while (start != end) {
-            utfchar32_t cp = utf8::internal::mask16(*start++);
+            utfchar32_t cp = static_cast<utfchar32_t>(utf8::internal::mask16(*start++));
             // Take care of surrogate pairs first
             if (utf8::internal::is_lead_surrogate(cp)) {
                 if (start != end) {
-                    const utfchar32_t trail_surrogate = utf8::internal::mask16(*start++);
+                    const utfchar32_t trail_surrogate = static_cast<utfchar32_t>(utf8::internal::mask16(*start++));
                     if (utf8::internal::is_trail_surrogate(trail_surrogate))
                         cp = (cp << 10) + trail_surrogate + internal::SURROGATE_OFFSET;
                     else
diff --git a/deps/LIEF/third-party/utfcpp/source/utf8/core.h b/deps/LIEF/third-party/utfcpp/source/utf8/core.h
index 627133c6188..8e128c1802c 100644
--- a/deps/LIEF/third-party/utfcpp/source/utf8/core.h
+++ b/deps/LIEF/third-party/utfcpp/source/utf8/core.h
@@ -43,9 +43,12 @@ DEALINGS IN THE SOFTWARE.
 #if UTF_CPP_CPLUSPLUS >= 201103L // C++ 11 or later
     #define UTF_CPP_OVERRIDE override
     #define UTF_CPP_NOEXCEPT noexcept
+    #define UTF_CPP_STATIC_ASSERT(condition) static_assert(condition, "UTFCPP static assert");
 #else // C++ 98/03
     #define UTF_CPP_OVERRIDE
     #define UTF_CPP_NOEXCEPT throw()
+    // Not worth simulating static_assert:
+    #define UTF_CPP_STATIC_ASSERT(condition) (void)(condition);
 #endif // C++ 11 or later


@@ -87,6 +90,7 @@ namespace internal
     {
         return static_cast<utfchar8_t>(0xff & oc);
     }
+
     template<typename u16_type>
     inline utfchar16_t mask16(u16_type oc)
     {
@@ -101,17 +105,17 @@ namespace internal

     inline bool is_lead_surrogate(utfchar32_t cp)
     {
-        return (cp >= LEAD_SURROGATE_MIN && cp <= LEAD_SURROGATE_MAX);
+        return (cp >= static_cast<utfchar32_t>(LEAD_SURROGATE_MIN) && cp <= static_cast<utfchar32_t>(LEAD_SURROGATE_MAX));
     }

     inline bool is_trail_surrogate(utfchar32_t cp)
     {
-        return (cp >= TRAIL_SURROGATE_MIN && cp <= TRAIL_SURROGATE_MAX);
+        return (cp >= static_cast<utfchar32_t>(TRAIL_SURROGATE_MIN) && cp <= static_cast<utfchar32_t>(TRAIL_SURROGATE_MAX));
     }

     inline bool is_surrogate(utfchar32_t cp)
     {
-        return (cp >= LEAD_SURROGATE_MIN && cp <= TRAIL_SURROGATE_MAX);
+        return (cp >= static_cast<utfchar32_t>(LEAD_SURROGATE_MIN) && cp <= static_cast<utfchar32_t>(TRAIL_SURROGATE_MAX));
     }

     inline bool is_code_point_valid(utfchar32_t cp)
@@ -143,15 +147,15 @@ namespace internal
     inline bool is_overlong_sequence(utfchar32_t cp, int length)
     {
         if (cp < 0x80) {
-            if (length != 1)
+            if (length != 1)
                 return true;
         }
         else if (cp < 0x800) {
-            if (length != 2)
+            if (length != 2)
                 return true;
         }
         else if (cp < 0x10000) {
-            if (length != 3)
+            if (length != 3)
                 return true;
         }
         return false;
@@ -181,7 +185,7 @@ namespace internal
         if (it == end)
             return NOT_ENOUGH_ROOM;

-        code_point = utf8::internal::mask8(*it);
+        code_point = static_cast<utfchar32_t>(utf8::internal::mask8(*it));

         return UTF8_OK;
     }
@@ -189,10 +193,10 @@ namespace internal
     template <typename octet_iterator>
     utf_error get_sequence_2(octet_iterator& it, octet_iterator end, utfchar32_t& code_point)
     {
-        if (it == end)
+        if (it == end)
             return NOT_ENOUGH_ROOM;

-        code_point = utf8::internal::mask8(*it);
+        code_point = static_cast<utfchar32_t>(utf8::internal::mask8(*it));

         UTF8_CPP_INCREASE_AND_RETURN_ON_ERROR(it, end)

@@ -206,8 +210,8 @@ namespace internal
     {
         if (it == end)
             return NOT_ENOUGH_ROOM;
-
-        code_point = utf8::internal::mask8(*it);
+
+        code_point = static_cast<utfchar32_t>(utf8::internal::mask8(*it));

         UTF8_CPP_INCREASE_AND_RETURN_ON_ERROR(it, end)

@@ -226,7 +230,7 @@ namespace internal
         if (it == end)
            return NOT_ENOUGH_ROOM;

-        code_point = utf8::internal::mask8(*it);
+        code_point = static_cast<utfchar32_t>(utf8::internal::mask8(*it));

         UTF8_CPP_INCREASE_AND_RETURN_ON_ERROR(it, end)

@@ -290,7 +294,7 @@ namespace internal
                 else
                     err = OVERLONG_SEQUENCE;
             }
-            else
+            else
                 err = INVALID_CODE_POINT;
         }

@@ -308,6 +312,10 @@ namespace internal
     template <typename word_iterator>
     utf_error validate_next16(word_iterator& it, word_iterator end, utfchar32_t& code_point)
     {
+        // Make sure the iterator dereferences a large enough type
+        typedef typename std::iterator_traits<word_iterator>::value_type word_type;
+        UTF_CPP_STATIC_ASSERT(sizeof(word_type) >= sizeof(utfchar16_t));
+        // Check the edge case:
         if (it == end)
             return NOT_ENOUGH_ROOM;
         // Save the original value of it so we can go back in case of failure
@@ -326,14 +334,14 @@ namespace internal
                 err = NOT_ENOUGH_ROOM;
             else if (is_lead_surrogate(first_word)) {
                 const utfchar16_t second_word = *it++;
-                if (is_trail_surrogate(second_word)) {
-                    code_point = static_cast<utfchar32_t>(first_word << 10) + second_word + SURROGATE_OFFSET;
+                if (is_trail_surrogate(static_cast<utfchar32_t>(second_word))) {
+                    code_point = static_cast<utfchar32_t>(first_word << 10) +  static_cast<utfchar32_t>(second_word) + SURROGATE_OFFSET;
                     return UTF8_OK;
-                } else
-                    err = INCOMPLETE_SEQUENCE;
-
+                } else
+                    err = INCOMPLETE_SEQUENCE;
+
             } else {
-                err = INVALID_LEAD;
+                err = INVALID_LEAD;
             }
         }
         // error branch
@@ -365,7 +373,7 @@ namespace internal
         }
         return result;
     }
-
+
     // One of the following overloads will be invoked from the API calls

     // A simple (but dangerous) case: the caller appends byte(s) to a char array
@@ -395,6 +403,7 @@ namespace internal
     // the word_type.
     template <typename word_iterator, typename word_type>
     word_iterator append16(utfchar32_t cp, word_iterator result) {
+        UTF_CPP_STATIC_ASSERT(sizeof(word_type) >= sizeof(utfchar16_t));
         if (is_in_bmp(cp))
             *(result++) = static_cast<word_type>(cp);
         else {
@@ -444,7 +453,7 @@ namespace internal
     inline const char* find_invalid(const char* str)
     {
         const char* end = str + std::strlen(str);
-        return find_invalid(str, end);
+        return find_invalid(str, end);
     }

     inline std::size_t find_invalid(const std::string& s)
@@ -484,9 +493,8 @@ namespace internal
     inline bool starts_with_bom(const std::string& s)
     {
         return starts_with_bom(s.begin(), s.end());
-    }
+    }
 } // namespace utf8

 #endif // header guard

-
diff --git a/deps/LIEF/third-party/utfcpp/source/utf8/cpp17.h b/deps/LIEF/third-party/utfcpp/source/utf8/cpp17.h
index 6e2fcc238af..075873003ef 100644
--- a/deps/LIEF/third-party/utfcpp/source/utf8/cpp17.h
+++ b/deps/LIEF/third-party/utfcpp/source/utf8/cpp17.h
@@ -89,7 +89,7 @@ namespace utf8
     {
         return starts_with_bom(s.begin(), s.end());
     }
-
+
 } // namespace utf8

 #endif // header guard
diff --git a/deps/LIEF/third-party/utfcpp/source/utf8/unchecked.h b/deps/LIEF/third-party/utfcpp/source/utf8/unchecked.h
index bf29178939e..173d0302e14 100644
--- a/deps/LIEF/third-party/utfcpp/source/utf8/unchecked.h
+++ b/deps/LIEF/third-party/utfcpp/source/utf8/unchecked.h
@@ -82,7 +82,7 @@ namespace utf8
         template <typename octet_iterator, typename output_iterator>
         inline output_iterator replace_invalid(octet_iterator start, octet_iterator end, output_iterator out)
         {
-            static const utfchar32_t replacement_marker = utf8::internal::mask16(0xfffd);
+            static const utfchar32_t replacement_marker = static_cast<utfchar32_t>(utf8::internal::mask16(0xfffd));
             return utf8::unchecked::replace_invalid(start, end, out, replacement_marker);
         }

@@ -108,22 +108,22 @@ namespace utf8
                 case 1:
                     break;
                 case 2:
-                    it++;
+                    ++it;
                     cp = ((cp << 6) & 0x7ff) + ((*it) & 0x3f);
                     break;
                 case 3:
-                    ++it;
+                    ++it;
                     cp = ((cp << 12) & 0xffff) + ((utf8::internal::mask8(*it) << 6) & 0xfff);
                     ++it;
                     cp = static_cast<utfchar32_t>(cp + ((*it) & 0x3f));
                     break;
                 case 4:
                     ++it;
-                    cp = ((cp << 18) & 0x1fffff) + ((utf8::internal::mask8(*it) << 12) & 0x3ffff);
+                    cp = ((cp << 18) & 0x1fffff) + ((utf8::internal::mask8(*it) << 12) & 0x3ffff);
                     ++it;
                     cp = static_cast<utfchar32_t>(cp + ((utf8::internal::mask8(*it) << 6) & 0xfff));
                     ++it;
-                    cp = static_cast<utfchar32_t>(cp + ((*it) & 0x3f));
+                    cp = static_cast<utfchar32_t>(cp + ((*it) & 0x3f));
                     break;
             }
             ++it;
@@ -173,7 +173,7 @@ namespace utf8
         distance(octet_iterator first, octet_iterator last)
         {
             typename std::iterator_traits<octet_iterator>::difference_type dist;
-            for (dist = 0; first < last; ++dist)
+            for (dist = 0; first < last; ++dist)
                 utf8::unchecked::next(first);
             return dist;
         }
@@ -247,15 +247,15 @@ namespace utf8
                 octet_iterator temp = it;
                 return utf8::unchecked::next(temp);
             }
-            bool operator == (const iterator& rhs) const
-            {
+            bool operator == (const iterator& rhs) const
+            {
                 return (it == rhs.it);
             }
             bool operator != (const iterator& rhs) const
             {
                 return !(operator == (rhs));
             }
-            iterator& operator ++ ()
+            iterator& operator ++ ()
             {
                 ::std::advance(it, utf8::internal::sequence_length(it));
                 return *this;
@@ -265,7 +265,7 @@ namespace utf8
                 iterator temp = *this;
                 ::std::advance(it, utf8::internal::sequence_length(it));
                 return temp;
-            }
+            }
             iterator& operator -- ()
             {
                 utf8::unchecked::prior(it);
@@ -280,8 +280,7 @@ namespace utf8
           }; // class iterator

     } // namespace utf8::unchecked
-} // namespace utf8
-
+} // namespace utf8

 #endif // header guard